From 653c11d8ddd44a6c286efd41d039aba851cbd941 Mon Sep 17 00:00:00 2001 From: Yaroslav Halchenko Date: Sun, 20 Nov 2016 00:37:43 +0000 Subject: [PATCH] Import statsmodels_0.8.0~rc1+git59-gef47cd9.orig.tar.gz [dgit import orig statsmodels_0.8.0~rc1+git59-gef47cd9.orig.tar.gz] --- .bzrignore | 29 + .coveragerc | 26 + .gitattributes | 2 + .gitignore | 66 + .mailmap | 97 + .travis.yml | 124 + .travis_coveragerc | 31 + CHANGES.md | 4 + CONTRIBUTING.rst | 62 + COPYRIGHTS.txt | 249 + INSTALL.txt | 128 + LICENSE.txt | 34 + MANIFEST.in | 35 + README.rst | 158 + README_l1.txt | 40 + appveyor.yml | 28 + build_bdists.bat | 9 + docs/GLMNotes.lyx | 1155 + docs/GLMNotes.pdf | Bin 0 -> 76810 bytes docs/Makefile | 168 + docs/README.md | 37 + docs/fix_longtable.py | 22 + docs/make.bat | 187 + docs/source/_static/blogger.png | Bin 0 -> 5547 bytes docs/source/_static/blogger_sm.png | Bin 0 -> 773 bytes docs/source/_static/bullet.gif | Bin 0 -> 62 bytes docs/source/_static/closelabel.png | Bin 0 -> 168 bytes docs/source/_static/examples.css | 113 + docs/source/_static/facebox.css | 80 + docs/source/_static/facebox.js | 312 + docs/source/_static/gettingstarted_0.png | Bin 0 -> 48467 bytes docs/source/_static/images/anova.png | Bin 0 -> 27369 bytes .../images/categorical_interaction_plot.png | Bin 0 -> 19148 bytes docs/source/_static/images/contrasts.png | Bin 0 -> 32294 bytes .../_static/images/discrete_overview.png | Bin 0 -> 42187 bytes docs/source/_static/images/fairs_data.png | Bin 0 -> 38555 bytes docs/source/_static/images/formulas_intro.png | Bin 0 -> 29954 bytes docs/source/_static/images/generic_mle.png | Bin 0 -> 43888 bytes docs/source/_static/images/glm_formulas.png | Bin 0 -> 35573 bytes docs/source/_static/images/glm_overview.png | Bin 0 -> 22413 bytes docs/source/_static/images/gls.png | Bin 0 -> 30533 bytes docs/source/_static/images/kde_overview.png | Bin 0 -> 17593 bytes .../_static/images/markov_autoregression.png | Bin 0 -> 127845 bytes .../_static/images/markov_regression.png | Bin 0 -> 90452 bytes docs/source/_static/images/mixed_lm.png | Bin 0 -> 61676 bytes docs/source/_static/images/ols.png | Bin 0 -> 33254 bytes docs/source/_static/images/prediction.png | Bin 0 -> 32207 bytes .../_static/images/quantile_regression.png | Bin 0 -> 57551 bytes docs/source/_static/images/recursive_ls.png | Bin 0 -> 111972 bytes .../_static/images/regression_diagnostics.png | Bin 0 -> 24257 bytes .../_static/images/regression_plots.png | Bin 0 -> 39728 bytes docs/source/_static/images/rlm.png | Bin 0 -> 29866 bytes docs/source/_static/images/rlm_overview.png | Bin 0 -> 26439 bytes .../_static/images/statespace_arma0.png | Bin 0 -> 15478 bytes .../_static/images/statespace_cycles.png | Bin 0 -> 109783 bytes .../images/statespace_dfm_coincident.png | Bin 0 -> 87568 bytes .../images/statespace_local_linear_trend.png | Bin 0 -> 72543 bytes .../images/statespace_sarimax_internet.png | Bin 0 -> 126005 bytes .../images/statespace_sarimax_stata.png | Bin 0 -> 241053 bytes .../statespace_structural_harvey_jaeger.png | Bin 0 -> 199300 bytes .../_static/images/statespace_varmax.png | Bin 0 -> 51300 bytes docs/source/_static/images/tsa_arma0.png | Bin 0 -> 15478 bytes docs/source/_static/images/tsa_arma1.png | Bin 0 -> 39111 bytes docs/source/_static/images/tsa_dates.png | Bin 0 -> 31404 bytes docs/source/_static/images/tsa_filters.png | Bin 0 -> 38917 bytes docs/source/_static/images/wls.png | Bin 0 -> 37322 bytes docs/source/_static/ipython.min.css | 197 + docs/source/_static/loading.gif | Bin 0 -> 2767 bytes docs/source/_static/minus.gif | Bin 0 -> 87 bytes docs/source/_static/mktree.css | 23 + docs/source/_static/mktree.js | 168 + docs/source/_static/nbviewer.pygments.css | 62 + docs/source/_static/plus.gif | Bin 0 -> 89 bytes docs/source/_static/scripts.js | 52 + docs/source/_templates/autosummary/class.rst | 32 + .../_templates/autosummary/glmfamilies.rst | 21 + docs/source/about.rst | 57 + docs/source/anova.rst | 39 + docs/source/conf.py | 321 + docs/source/contingency_tables.rst | 295 + docs/source/contrasts.rst | 234 + docs/source/datasets/dataset_proposal.rst | 154 + docs/source/datasets/index.rst | 148 + docs/source/dev/dataset_notes.rst | 69 + docs/source/dev/examples.rst | 40 + docs/source/dev/get_involved.rst | 26 + docs/source/dev/git_notes.rst | 270 + docs/source/dev/images/git_merge.png | Bin 0 -> 35680 bytes docs/source/dev/index.rst | 71 + docs/source/dev/internal.rst | 79 + docs/source/dev/maintainer_notes.rst | 192 + docs/source/dev/naming_conventions.rst | 96 + docs/source/dev/test_notes.rst | 114 + docs/source/dev/testing.rst | 12 + docs/source/dev/vbench.rst | 141 + docs/source/diagnostic.rst | 227 + docs/source/discretemod.rst | 101 + docs/source/distributions.rst | 88 + docs/source/duration.rst | 225 + docs/source/emplike.rst | 68 + docs/source/endog_exog.rst | 86 + docs/source/example_formulas.rst | 177 + docs/source/examples/README | 1 + docs/source/examples/index.rst | 24 + docs/source/examples/landing.json | 239 + docs/source/extending.rst.TXT | 0 docs/source/faq.rst | 41 + docs/source/gee.rst | 150 + docs/source/genericmle.rst.TXT | 0 docs/source/gettingstarted.rst | 183 + docs/source/glm.rst | 125 + docs/source/glm_techn1.rst.TXT | 12 + docs/source/glm_techn2.rst.TXT | 12 + docs/source/gmm.rst | 40 + docs/source/gmm_techn1.rst.TXT | 53 + docs/source/graphics.rst | 82 + docs/source/images/aw.png | Bin 0 -> 22376 bytes docs/source/images/hl.png | Bin 0 -> 15893 bytes docs/source/images/ht.png | Bin 0 -> 17824 bytes docs/source/images/ls.png | Bin 0 -> 9237 bytes docs/source/images/re.png | Bin 0 -> 18046 bytes .../source/images/statsmodels_hybi_banner.png | Bin 0 -> 41918 bytes .../source/images/statsmodels_hybi_banner.svg | 316 + .../source/images/statsmodels_hybi_favico.ico | Bin 0 -> 7358 bytes docs/source/images/tk.png | Bin 0 -> 17535 bytes docs/source/images/tm.png | Bin 0 -> 12276 bytes docs/source/importpaths.rst | 134 + docs/source/imputation.rst | 49 + docs/source/index.rst | 139 + docs/source/install.rst | 127 + docs/source/iolib.rst | 44 + docs/source/miscmodels.rst | 57 + docs/source/missing.rst | 35 + docs/source/mixed_linear.rst | 176 + docs/source/multivariate.rst | 19 + docs/source/nonparametric.rst | 113 + docs/source/pitfalls.rst | 94 + docs/source/plots/arma_predict_plot.py | 11 + docs/source/plots/bkf_plot.py | 9 + docs/source/plots/cff_plot.py | 9 + .../source/plots/graphics_boxplot_beanplot.py | 30 + .../plots/graphics_boxplot_violinplot.py | 29 + .../plots/graphics_functional_fboxplot.py | 35 + .../plots/graphics_functional_rainbowplot.py | 30 + docs/source/plots/graphics_gofplots_qqplot.py | 68 + docs/source/plots/graphics_month_plot.py | 11 + docs/source/plots/graphics_plot_fit_ex.py | 35 + docs/source/plots/hpf_plot.py | 13 + docs/source/plots/load_macrodata.py | 6 + docs/source/plots/var_plot_acorr.py | 2 + docs/source/plots/var_plot_fevd.py | 2 + docs/source/plots/var_plot_forecast.py | 2 + docs/source/plots/var_plot_input.py | 2 + docs/source/plots/var_plot_irf.py | 2 + docs/source/plots/var_plot_irf_cum.py | 2 + docs/source/plots/var_plots.py | 40 + docs/source/regression.rst | 183 + docs/source/regression_techn1.rst.TXT | 12 + docs/source/release/github-stats-0.5.rst | 399 + docs/source/release/github-stats-0.6.rst | 548 + docs/source/release/index.rst | 26 + docs/source/release/old_changes.rst | 243 + docs/source/release/version0.5.rst | 232 + docs/source/release/version0.6.rst | 267 + docs/source/release/version0.7.rst | 258 + docs/source/release/version0.8.rst | 330 + docs/source/rlm.rst | 104 + docs/source/rlm_techn1.rst | 37 + docs/source/sandbox.rst | 177 + docs/source/statespace.rst | 485 + docs/source/stats.rst | 388 + docs/source/tools.rst | 100 + docs/source/tsa.rst | 237 + docs/source/tsastats.rst.TXT | 22 + docs/source/vector_ar.rst | 333 + docs/sphinxext/LICENSE.txt | 97 + docs/sphinxext/MANIFEST.in | 2 + docs/sphinxext/README.txt | 26 + docs/sphinxext/github.py | 155 + .../sphinxext/ipython_console_highlighting.py | 114 + docs/sphinxext/ipython_directive.py | 1188 + docs/sphinxext/numpy_ext/__init__.py | 0 docs/sphinxext/numpy_ext/docscrape.py | 501 + docs/sphinxext/numpy_ext/docscrape_sphinx.py | 226 + docs/sphinxext/numpy_ext/plot_directive.py | 638 + docs/themes/statsmodels/indexsidebar.html | 31 + docs/themes/statsmodels/layout.html | 71 + docs/themes/statsmodels/page.html | 51 + docs/themes/statsmodels/relations.html | 32 + docs/themes/statsmodels/sidelinks.html | 2 + docs/themes/statsmodels/static/nature.css_t | 291 + .../static/statsmodels_hybi_banner.png | Bin 0 -> 31211 bytes docs/themes/statsmodels/theme.conf | 4 + examples/incomplete/arima.py | 53 + examples/incomplete/arma2.py | 28 + examples/incomplete/dates.py | 45 + examples/incomplete/glsar.py | 156 + examples/incomplete/ols_table.py | 69 + examples/incomplete/ols_tftest.py | 199 + examples/incomplete/wls_extended.py | 401 + .../categorical_interaction_plot.ipynb | 82 + examples/notebooks/chi2_fitting.ipynb | 232 + examples/notebooks/contrasts.ipynb | 546 + .../notebooks/discrete_choice_example.ipynb | 698 + .../notebooks/discrete_choice_overview.ipynb | 336 + examples/notebooks/formulas.ipynb | 392 + examples/notebooks/generic_mle.ipynb | 500 + examples/notebooks/glm.ipynb | 450 + examples/notebooks/glm_formula.ipynb | 124 + examples/notebooks/gls.ipynb | 234 + examples/notebooks/interactions_anova.ipynb | 882 + examples/notebooks/kernel_density.ipynb | 257 + .../notebooks/markov_autoregression.ipynb | 411 + examples/notebooks/markov_regression.ipynb | 409 + examples/notebooks/mixed_lm_example.ipynb | 422 + examples/notebooks/ols.ipynb | 572 + .../notebooks/pca_fertility_factors.ipynb | 304 + examples/notebooks/plots_boxplots.ipynb | 369 + examples/notebooks/predict.ipynb | 222 + examples/notebooks/quantile_regression.ipynb | 212 + examples/notebooks/recursive_ls.ipynb | 291 + .../notebooks/regression_diagnostics.ipynb | 261 + examples/notebooks/regression_plots.ipynb | 598 + examples/notebooks/robust_models_0.ipynb | 303 + examples/notebooks/robust_models_1.ipynb | 1095 + examples/notebooks/star_diagram.png | Bin 0 -> 175558 bytes examples/notebooks/statespace_arma_0.ipynb | 357 + examples/notebooks/statespace_cycles.ipynb | 209 + .../notebooks/statespace_dfm_coincident.ipynb | 895 + .../statespace_local_linear_trend.ipynb | 279 + .../statespace_sarimax_internet.ipynb | 263 + .../notebooks/statespace_sarimax_stata.ipynb | 621 + .../statespace_structural_harvey_jaeger.ipynb | 436 + examples/notebooks/statespace_varmax.ipynb | 173 + examples/notebooks/tsa_arma_0.ipynb | 580 + examples/notebooks/tsa_arma_1.ipynb | 147 + examples/notebooks/tsa_dates.ipynb | 187 + examples/notebooks/tsa_filters.ipynb | 340 + examples/notebooks/wls.ipynb | 243 + .../python/categorical_interaction_plot.py | 23 + examples/python/contrasts.py | 186 + examples/python/discrete_choice_example.py | 231 + examples/python/discrete_choice_overview.py | 110 + examples/python/formulas.py | 138 + examples/python/generic_mle.py | 214 + examples/python/glm.py | 167 + examples/python/glm_formula.py | 40 + examples/python/gls.py | 84 + examples/python/interactions_anova.py | 392 + examples/python/kernel_density.py | 83 + examples/python/ols.py | 227 + examples/python/predict.py | 73 + examples/python/quantile_regression.py | 110 + examples/python/regression_diagnostics.py | 95 + examples/python/regression_plots.py | 232 + examples/python/robust_models_0.py | 120 + examples/python/robust_models_1.py | 386 + examples/python/tsa_arma_0.py | 193 + examples/python/tsa_arma_1.py | 32 + examples/python/tsa_dates.py | 51 + examples/python/tsa_filters.py | 130 + examples/python/wls.py | 103 + examples/run_all.py | 55 + ez_setup.py | 264 + setup.py | 475 + statsmodels/LICENSE.txt | 36 + statsmodels/TODO.txt | 19 + statsmodels/__init__.py | 81 + statsmodels/api.py | 49 + statsmodels/base/__init__.py | 2 + statsmodels/base/_constraints.py | 312 + statsmodels/base/_penalties.py | 176 + statsmodels/base/covtype.py | 302 + statsmodels/base/data.py | 630 + statsmodels/base/elastic_net.py | 344 + statsmodels/base/l1_cvxopt.py | 193 + statsmodels/base/l1_slsqp.py | 166 + statsmodels/base/l1_solvers_common.py | 157 + statsmodels/base/model.py | 2094 ++ statsmodels/base/optimizer.py | 553 + statsmodels/base/tests/__init__.py | 0 statsmodels/base/tests/test_data.py | 893 + .../base/tests/test_generic_methods.py | 531 + statsmodels/base/tests/test_optimize.py | 80 + statsmodels/base/tests/test_shrink_pickle.py | 286 + statsmodels/base/wrapper.py | 149 + statsmodels/compat/__init__.py | 1 + statsmodels/compat/collections.py | 19 + statsmodels/compat/counter.py | 199 + statsmodels/compat/numpy.py | 452 + statsmodels/compat/ordereddict.py | 262 + statsmodels/compat/pandas.py | 47 + statsmodels/compat/python.py | 265 + statsmodels/compat/scipy.py | 208 + statsmodels/compat/tests/__init__.py | 0 statsmodels/compat/tests/test_collections.py | 11 + statsmodels/compat/tests/test_itercompat.py | 42 + statsmodels/compat/tests/test_scipy_compat.py | 85 + statsmodels/datasets/COPYING | 35 + statsmodels/datasets/README.txt | 32 + statsmodels/datasets/__init__.py | 9 + statsmodels/datasets/anes96/__init__.py | 1 + statsmodels/datasets/anes96/anes96.csv | 945 + statsmodels/datasets/anes96/data.py | 126 + statsmodels/datasets/anes96/src/anes96.csv | 945 + statsmodels/datasets/cancer/__init__.py | 1 + statsmodels/datasets/cancer/cancer.csv | 302 + statsmodels/datasets/cancer/data.py | 59 + statsmodels/datasets/ccard/R_wls.s | 13 + statsmodels/datasets/ccard/__init__.py | 1 + statsmodels/datasets/ccard/ccard.csv | 73 + statsmodels/datasets/ccard/data.py | 59 + statsmodels/datasets/ccard/src/ccard.csv | 101 + statsmodels/datasets/ccard/src/names.txt | 14 + .../datasets/china_smoking/__init__.py | 1 + .../datasets/china_smoking/china_smoking.csv | 9 + statsmodels/datasets/china_smoking/data.py | 59 + statsmodels/datasets/co2/__init__.py | 1 + statsmodels/datasets/co2/co2.csv | 2285 ++ statsmodels/datasets/co2/data.py | 80 + statsmodels/datasets/co2/src/maunaloa_c.dat | 2252 ++ statsmodels/datasets/committee/R_committee.s | 11 + statsmodels/datasets/committee/__init__.py | 1 + statsmodels/datasets/committee/committee.csv | 21 + statsmodels/datasets/committee/data.py | 72 + .../datasets/committee/src/committee.dat | 21 + statsmodels/datasets/copper/__init__.py | 1 + statsmodels/datasets/copper/copper.csv | 26 + statsmodels/datasets/copper/data.py | 75 + statsmodels/datasets/copper/src/copper.dat | 26 + statsmodels/datasets/cpunish/R_cpunish.s | 15 + statsmodels/datasets/cpunish/__init__.py | 1 + statsmodels/datasets/cpunish/cpunish.csv | 18 + statsmodels/datasets/cpunish/data.py | 78 + statsmodels/datasets/cpunish/src/cpunish.dat | 18 + statsmodels/datasets/elnino/__init__.py | 1 + statsmodels/datasets/elnino/data.py | 74 + statsmodels/datasets/elnino/elnino.csv | 62 + statsmodels/datasets/elnino/src/elnino.dat | 733 + statsmodels/datasets/engel/__init__.py | 1 + statsmodels/datasets/engel/data.py | 65 + statsmodels/datasets/engel/engel.csv | 236 + statsmodels/datasets/fair/__init__.py | 1 + statsmodels/datasets/fair/data.py | 83 + statsmodels/datasets/fair/fair.csv | 6367 ++++ statsmodels/datasets/fair/src/1978ADAT.asc | 6984 +++++ statsmodels/datasets/fertility/__init__.py | 1 + statsmodels/datasets/fertility/data.py | 83 + statsmodels/datasets/fertility/fertility.csv | 220 + statsmodels/datasets/grunfeld/__init__.py | 1 + statsmodels/datasets/grunfeld/data.py | 94 + statsmodels/datasets/grunfeld/grunfeld.csv | 221 + .../datasets/grunfeld/src/grunfeld.csv | 221 + statsmodels/datasets/heart/__init__.py | 1 + statsmodels/datasets/heart/data.py | 63 + statsmodels/datasets/heart/heart.csv | 70 + statsmodels/datasets/longley/R_gls.s | 37 + statsmodels/datasets/longley/R_lm.s | 6 + statsmodels/datasets/longley/__init__.py | 1 + statsmodels/datasets/longley/data.py | 75 + statsmodels/datasets/longley/longley.csv | 17 + statsmodels/datasets/macrodata/__init__.py | 1 + statsmodels/datasets/macrodata/data.py | 90 + statsmodels/datasets/macrodata/macrodata.csv | 204 + statsmodels/datasets/macrodata/macrodata.dta | Bin 0 -> 13255 bytes .../macrodata/src/macrodata.xls/macrodata.xls | Bin 0 -> 109056 bytes statsmodels/datasets/macrodata/src/unemp.csv | 214 + statsmodels/datasets/modechoice/__init__.py | 1 + statsmodels/datasets/modechoice/data.py | 90 + .../datasets/modechoice/modechoice.csv | 841 + .../datasets/modechoice/src/TableF18-2.csv | 841 + statsmodels/datasets/nile/__init__.py | 1 + statsmodels/datasets/nile/data.py | 66 + statsmodels/datasets/nile/nile.csv | 101 + statsmodels/datasets/randhie/__init__.py | 1 + statsmodels/datasets/randhie/data.py | 88 + statsmodels/datasets/randhie/randhie.csv | 20191 +++++++++++++ statsmodels/datasets/randhie/src/randdesc.txt | 49 + statsmodels/datasets/randhie/src/randhie.csv | 20191 +++++++++++++ statsmodels/datasets/scotland/R_scotvote.s | 17 + statsmodels/datasets/scotland/__init__.py | 1 + statsmodels/datasets/scotland/data.py | 87 + statsmodels/datasets/scotland/scotvote.csv | 33 + .../datasets/scotland/src/scotland.readme | 27 + .../scotland/src/scotland_births.html | 312 + .../scotland/src/scotland_changes.html | 364 + .../scotland/src/scotland_devolution.html | 233 + .../scotland/src/scotland_econ_summary.html | 234 + .../scotland/src/scotland_economics.html | 332 + .../scotland/src/scotland_education.html | 337 + .../scotland/src/scotland_housing.html | 333 + .../scotland/src/scotland_population.csv | 59 + .../scotland/src/scotland_population.html | 326 + .../datasets/scotland/src/scotvote.csv | 33 + .../datasets/scotland/src/scotvote.dat | 33 + statsmodels/datasets/spector/__init__.py | 1 + statsmodels/datasets/spector/data.py | 69 + statsmodels/datasets/spector/spector.csv | 33 + statsmodels/datasets/stackloss/R_stackloss.s | 30 + statsmodels/datasets/stackloss/__init__.py | 1 + statsmodels/datasets/stackloss/data.py | 66 + statsmodels/datasets/stackloss/stackloss.csv | 22 + statsmodels/datasets/star98/__init__.py | 1 + statsmodels/datasets/star98/data.py | 107 + statsmodels/datasets/star98/r_glm.s | 37 + statsmodels/datasets/star98/src/star.bi.dat | 303 + statsmodels/datasets/star98/src/star98.dat | 304 + statsmodels/datasets/star98/src/star98.names | 205 + statsmodels/datasets/star98/star98.csv | 304 + statsmodels/datasets/statecrime/__init__.py | 1 + statsmodels/datasets/statecrime/data.py | 87 + .../datasets/statecrime/statecrime.csv | 52 + statsmodels/datasets/strikes/__init__.py | 1 + statsmodels/datasets/strikes/data.py | 71 + statsmodels/datasets/strikes/strikes.csv | 63 + statsmodels/datasets/sunspots/R_sunspots.s | 9 + statsmodels/datasets/sunspots/__init__.py | 1 + statsmodels/datasets/sunspots/arima_mod.R | 3 + statsmodels/datasets/sunspots/data.py | 71 + .../sunspots/src/sunspots_monthly.dat | 323 + .../datasets/sunspots/src/sunspots_yearly.dat | 309 + statsmodels/datasets/sunspots/sunspots.csv | 310 + statsmodels/datasets/template_data.py | 63 + statsmodels/datasets/tests/__init__.py | 0 ...ck,Rdatasets,master,csv,car,Duncan.csv.zip | 2 + ...lbundock,Rdatasets,master,datasets.csv.zip | Bin 0 -> 16578 bytes ...datasets,master,doc,car,rst,Duncan.rst.zip | Bin 0 -> 633 bytes statsmodels/datasets/tests/test_data.py | 40 + statsmodels/datasets/tests/test_utils.py | 38 + statsmodels/datasets/utils.py | 337 + statsmodels/discrete/__init__.py | 2 + statsmodels/discrete/discrete_margins.py | 694 + statsmodels/discrete/discrete_model.py | 3190 ++ statsmodels/discrete/tests/__init__.py | 0 .../discrete/tests/results/__init__.py | 0 .../tests/results/mn_logit_summary.txt | 49 + .../discrete/tests/results/mnlogit_resid.csv | 1 + .../discrete/tests/results/nbinom_resids.csv | 20 + .../discrete/tests/results/phat_mnlogit.csv | 944 + .../discrete/tests/results/poisson_resid.csv | 1 + .../tests/results/predict_prob_poisson.csv | 100 + .../results/results_count_robust_cluster.py | 695 + .../tests/results/results_discrete.py | 960 + .../results/results_glm_logit_constrained.py | 704 + .../results/results_poisson_constrained.py | 649 + statsmodels/discrete/tests/results/ships.csv | 41 + .../discrete/tests/results/yhat_mnlogit.csv | 944 + .../discrete/tests/results/yhat_poisson.csv | 20190 +++++++++++++ .../discrete/tests/test_constrained.py | 519 + statsmodels/discrete/tests/test_discrete.py | 1429 + .../discrete/tests/test_sandwich_cov.py | 691 + statsmodels/distributions/__init__.py | 3 + statsmodels/distributions/edgeworth.py | 213 + .../distributions/empirical_distribution.py | 183 + statsmodels/distributions/mixture_rvs.py | 282 + statsmodels/distributions/tests/__init__.py | 0 statsmodels/distributions/tests/test_ecdf.py | 44 + .../distributions/tests/test_edgeworth.py | 194 + .../distributions/tests/test_mixture.py | 111 + statsmodels/duration/__init__.py | 0 statsmodels/duration/api.py | 3 + statsmodels/duration/hazard_regression.py | 1725 ++ statsmodels/duration/survfunc.py | 673 + statsmodels/duration/tests/__init__.py | 0 statsmodels/duration/tests/phreg_gentests.py | 60 + .../duration/tests/results/__init__.py | 0 statsmodels/duration/tests/results/bmt.csv | 138 + .../duration/tests/results/bmt_results.csv | 24 + .../tests/results/survival_data_1000_10.csv | 1000 + .../tests/results/survival_data_100_5.csv | 100 + .../tests/results/survival_data_20_1.csv | 20 + .../tests/results/survival_data_50_1.csv | 50 + .../tests/results/survival_data_50_2.csv | 50 + statsmodels/duration/tests/survival.R | 68 + .../duration/tests/survival_enet_r_results.py | 10 + .../duration/tests/survival_r_results.py | 321 + .../duration/tests/survival_regularized.R | 35 + statsmodels/duration/tests/test_phreg.py | 420 + statsmodels/duration/tests/test_survfunc.py | 334 + statsmodels/emplike/__init__.py | 2 + statsmodels/emplike/aft_el.py | 561 + statsmodels/emplike/api.py | 12 + statsmodels/emplike/descriptive.py | 1149 + statsmodels/emplike/elanova.py | 126 + statsmodels/emplike/elregress.py | 93 + statsmodels/emplike/heartdata.csv | 69 + statsmodels/emplike/koul_and_mc.py | 36 + statsmodels/emplike/originregress.py | 259 + statsmodels/emplike/tests/__init__.py | 1 + statsmodels/emplike/tests/results/__init__.py | 1 + .../emplike/tests/results/el_results.py | 373 + statsmodels/emplike/tests/test_aft.py | 48 + statsmodels/emplike/tests/test_anova.py | 24 + statsmodels/emplike/tests/test_descriptive.py | 122 + statsmodels/emplike/tests/test_origin.py | 44 + statsmodels/emplike/tests/test_regression.py | 157 + statsmodels/examples/es_misc_poisson2.py | 62 + statsmodels/examples/ex_arch_canada.py | 159 + statsmodels/examples/ex_emplike_1.py | 99 + statsmodels/examples/ex_emplike_2.py | 92 + statsmodels/examples/ex_emplike_3.py | 28 + statsmodels/examples/ex_feasible_gls_het.py | 124 + statsmodels/examples/ex_feasible_gls_het_0.py | 174 + statsmodels/examples/ex_generic_mle.py | 384 + statsmodels/examples/ex_generic_mle_t.py | 271 + statsmodels/examples/ex_generic_mle_tdist.py | 1095 + statsmodels/examples/ex_grangercausality.py | 42 + statsmodels/examples/ex_inter_rater.py | 112 + statsmodels/examples/ex_kde_confint.py | 65 + .../examples/ex_kde_normalreference.py | 59 + statsmodels/examples/ex_kernel_regression.py | 64 + statsmodels/examples/ex_kernel_regression2.py | 57 + statsmodels/examples/ex_kernel_regression3.py | 77 + .../ex_kernel_regression_censored2.py | 38 + .../examples/ex_kernel_regression_dgp.py | 46 + .../examples/ex_kernel_regression_sigtest.py | 108 + .../examples/ex_kernel_semilinear_dgp.py | 129 + .../examples/ex_kernel_singleindex_dgp.py | 93 + .../examples/ex_kernel_test_functional.py | 71 + .../ex_kernel_test_functional_li_wang.py | 141 + statsmodels/examples/ex_lowess.py | 75 + statsmodels/examples/ex_misc_tarma.py | 76 + statsmodels/examples/ex_misc_tmodel.py | 85 + statsmodels/examples/ex_multivar_kde.py | 56 + statsmodels/examples/ex_nearest_corr.py | 100 + statsmodels/examples/ex_ols_robustcov.py | 64 + statsmodels/examples/ex_outliers_influence.py | 122 + statsmodels/examples/ex_pairwise.py | 204 + statsmodels/examples/ex_pandas.py | 151 + statsmodels/examples/ex_pareto_plot.py | 35 + statsmodels/examples/ex_predict_results.py | 96 + statsmodels/examples/ex_proportion.py | 57 + statsmodels/examples/ex_regressionplots.py | 142 + statsmodels/examples/ex_rootfinding.py | 105 + statsmodels/examples/ex_sandwich.py | 80 + statsmodels/examples/ex_sandwich2.py | 73 + statsmodels/examples/ex_sandwich3.py | 63 + statsmodels/examples/ex_scatter_ellipse.py | 50 + statsmodels/examples/ex_shrink_pickle.py | 90 + statsmodels/examples/ex_univar_kde.py | 156 + statsmodels/examples/ex_wald_anova.py | 48 + statsmodels/examples/example_discrete_mnl.py | 68 + .../examples/example_enhanced_boxplots.py | 100 + .../examples/example_functional_plots.py | 52 + statsmodels/examples/example_kde.py | 32 + .../examples/example_ols_minimal_comp.py | 36 + statsmodels/examples/example_rpy.py | 52 + statsmodels/examples/l1_demo/demo.py | 357 + statsmodels/examples/l1_demo/short_demo.py | 117 + .../examples/l1_demo/sklearn_compare.py | 103 + statsmodels/examples/run_all.py | 69 + statsmodels/examples/t_est_rlm.py | 45 + statsmodels/examples/try_2regress.py | 63 + statsmodels/examples/try_fit_constrained.py | 191 + statsmodels/examples/try_gee.py | 97 + statsmodels/examples/try_gof_chisquare.py | 101 + statsmodels/examples/try_polytrend.py | 66 + statsmodels/examples/try_power.py | 69 + statsmodels/examples/try_power2.py | 58 + statsmodels/examples/try_tukey_hsd.py | 223 + statsmodels/examples/tsa/ar1cholesky.py | 43 + statsmodels/examples/tsa/arma_plots.py | 77 + statsmodels/examples/tsa/compare_arma.py | 78 + statsmodels/examples/tsa/ex_arma.py | 102 + statsmodels/examples/tsa/ex_arma_all.py | 74 + statsmodels/examples/tsa/ex_coint.py | 9 + statsmodels/examples/tsa/ex_var.py | 46 + statsmodels/examples/tsa/ex_var_reorder.py | 7 + statsmodels/examples/tsa/lagpolynomial.py | 47 + statsmodels/examples/tsa/try_ar.py | 81 + statsmodels/examples/tut_ols_ancova.py | 102 + statsmodels/examples/tut_ols_rlm_short.py | 63 + statsmodels/formula/__init__.py | 4 + statsmodels/formula/api.py | 33 + statsmodels/formula/formulatools.py | 109 + statsmodels/formula/tests/__init__.py | 0 statsmodels/formula/tests/test_formula.py | 103 + statsmodels/genmod/__init__.py | 2 + statsmodels/genmod/_prediction.py | 271 + .../genmod/_tweedie_compound_poisson.py | 95 + statsmodels/genmod/api.py | 4 + statsmodels/genmod/cov_struct.py | 1413 + statsmodels/genmod/families/__init__.py | 16 + statsmodels/genmod/families/family.py | 1707 ++ statsmodels/genmod/families/links.py | 953 + statsmodels/genmod/families/tests/__init__.py | 0 .../genmod/families/tests/test_link.py | 133 + statsmodels/genmod/families/varfuncs.py | 281 + .../generalized_estimating_equations.py | 2724 ++ .../genmod/generalized_linear_model.py | 1664 + statsmodels/genmod/tests/__init__.py | 0 .../tests/gee_categorical_simulation_check.py | 288 + .../gee_categorical_simulation_check.txt | 5 + .../tests/gee_gaussian_simulation_check.py | 337 + .../tests/gee_gaussian_simulation_check.txt | 283 + .../tests/gee_poisson_simulation_check.py | 284 + .../tests/gee_poisson_simulation_check.txt | 67 + .../genmod/tests/gee_simulation_check.py | 339 + statsmodels/genmod/tests/glmnet_r_results.py | 37 + statsmodels/genmod/tests/results/__init__.py | 0 .../genmod/tests/results/elastic_net.R | 37 + .../results/elastic_net_generate_tests.py | 24 + .../genmod/tests/results/enet_binomial.csv | 200 + .../genmod/tests/results/enet_poisson.csv | 200 + statsmodels/genmod/tests/results/epil.csv | 237 + .../tests/results/gee_generate_tests.py | 239 + .../genmod/tests/results/gee_linear_1.csv | 413 + .../genmod/tests/results/gee_logistic_1.csv | 405 + .../tests/results/gee_nested_linear_1.csv | 2000 ++ .../genmod/tests/results/gee_nominal_1.csv | 796 + .../genmod/tests/results/gee_ordinal_1.csv | 787 + .../genmod/tests/results/gee_poisson_1.csv | 399 + .../genmod/tests/results/glm_test_resids.py | 37 + .../tests/results/igaussident_resids.csv | 3676 +++ .../genmod/tests/results/inv_gaussian.csv | 25001 ++++++++++++++++ statsmodels/genmod/tests/results/iris.csv | 151 + .../genmod/tests/results/medparlogresids.csv | 3676 +++ .../tests/results/poisson_weights_v2.do | 447 + .../genmod/tests/results/results_glm.py | 4114 +++ .../results/results_glm_poisson_weights.py | 2345 ++ .../genmod/tests/results/stata_cancer_glm.csv | 49 + .../genmod/tests/results/stata_lbw_glm.csv | 191 + .../tests/results/stata_medpar1_glm.csv | 3677 +++ statsmodels/genmod/tests/test_gee.py | 1667 ++ statsmodels/genmod/tests/test_glm.py | 1818 ++ statsmodels/genmod/tests/test_glm_weights.py | 184 + statsmodels/graphics/__init__.py | 2 + statsmodels/graphics/_regressionplots_doc.py | 102 + statsmodels/graphics/api.py | 11 + statsmodels/graphics/boxplots.py | 412 + statsmodels/graphics/correlation.py | 219 + statsmodels/graphics/dotplots.py | 492 + statsmodels/graphics/factorplots.py | 200 + statsmodels/graphics/functional.py | 395 + statsmodels/graphics/gofplots.py | 743 + statsmodels/graphics/mosaicplot.py | 658 + statsmodels/graphics/plot_grids.py | 167 + statsmodels/graphics/plottools.py | 26 + statsmodels/graphics/regressionplots.py | 1171 + statsmodels/graphics/tests/__init__.py | 0 statsmodels/graphics/tests/test_boxplots.py | 77 + .../graphics/tests/test_correlation.py | 43 + statsmodels/graphics/tests/test_dotplot.py | 421 + .../graphics/tests/test_factorplots.py | 88 + statsmodels/graphics/tests/test_functional.py | 92 + statsmodels/graphics/tests/test_gofplots.py | 181 + statsmodels/graphics/tests/test_mosaicplot.py | 446 + .../graphics/tests/test_regressionplots.py | 346 + statsmodels/graphics/tests/test_tsaplots.py | 160 + statsmodels/graphics/tsaplots.py | 326 + statsmodels/graphics/tukeyplot.py | 78 + statsmodels/graphics/utils.py | 149 + statsmodels/imputation/__init__.py | 0 statsmodels/imputation/mice.py | 1335 + statsmodels/imputation/ros.py | 592 + statsmodels/imputation/tests/__init__.py | 0 statsmodels/imputation/tests/test_mice.py | 351 + statsmodels/imputation/tests/test_ros.py | 662 + statsmodels/info.py | 26 + statsmodels/interface/__init__.py | 0 statsmodels/iolib/__init__.py | 6 + statsmodels/iolib/api.py | 4 + statsmodels/iolib/foreign.py | 1188 + statsmodels/iolib/notes_table_update.txt | 12 + statsmodels/iolib/openfile.py | 71 + statsmodels/iolib/smpickle.py | 33 + statsmodels/iolib/stata_summary_examples.py | 84 + statsmodels/iolib/summary.py | 943 + statsmodels/iolib/summary2.py | 558 + statsmodels/iolib/table.py | 904 + statsmodels/iolib/tableformatting.py | 149 + statsmodels/iolib/tests/__init__.py | 0 statsmodels/iolib/tests/gen_dates.do | 9 + statsmodels/iolib/tests/results/__init__.py | 0 .../iolib/tests/results/data_missing.dta | Bin 0 -> 1130 bytes statsmodels/iolib/tests/results/macrodata.py | 210 + .../tests/results/time_series_examples.dta | Bin 0 -> 1760 bytes statsmodels/iolib/tests/stata_dates.csv | 3 + statsmodels/iolib/tests/test_data.csv | 2 + statsmodels/iolib/tests/test_foreign.py | 195 + statsmodels/iolib/tests/test_pickle.py | 28 + statsmodels/iolib/tests/test_summary.py | 65 + statsmodels/iolib/tests/test_summary_old.py | 80 + statsmodels/iolib/tests/test_table.py | 226 + statsmodels/iolib/tests/test_table_econpy.py | 143 + statsmodels/miscmodels/__init__.py | 3 + statsmodels/miscmodels/api.py | 4 + statsmodels/miscmodels/count.py | 338 + statsmodels/miscmodels/nonlinls.py | 309 + statsmodels/miscmodels/tests/__init__.py | 0 .../miscmodels/tests/results_tmodel.py | 177 + .../miscmodels/tests/test_generic_mle.py | 151 + statsmodels/miscmodels/tests/test_poisson.py | 180 + statsmodels/miscmodels/tests/test_tarma.py | 118 + statsmodels/miscmodels/tests/test_tmodel.py | 184 + statsmodels/miscmodels/tmodel.py | 227 + statsmodels/miscmodels/try_mlecov.py | 235 + statsmodels/multivariate/__init__.py | 0 statsmodels/multivariate/pca.py | 840 + statsmodels/multivariate/tests/__init__.py | 0 .../multivariate/tests/results/__init__.py | 0 .../multivariate/tests/results/datamlw.py | 288 + statsmodels/multivariate/tests/test_pca.py | 383 + statsmodels/nonparametric/__init__.py | 8 + statsmodels/nonparametric/_kernel_base.py | 518 + .../nonparametric/_smoothers_lowess.pyx | 615 + statsmodels/nonparametric/api.py | 8 + statsmodels/nonparametric/bandwidths.py | 179 + statsmodels/nonparametric/kde.py | 556 + statsmodels/nonparametric/kdetools.py | 57 + statsmodels/nonparametric/kernel_density.py | 689 + .../nonparametric/kernel_regression.py | 940 + statsmodels/nonparametric/kernels.py | 207 + statsmodels/nonparametric/linbin.pyx | 38 + statsmodels/nonparametric/smoothers_lowess.py | 188 + .../nonparametric/smoothers_lowess_old.py | 361 + .../nonparametric/tests/Xi_test_data.csv | 200 + statsmodels/nonparametric/tests/__init__.py | 0 .../nonparametric/tests/results/__init__.py | 0 .../tests/results/results_kcde.csv | 201 + .../tests/results/results_kde.csv | 201 + .../tests/results/results_kde_fft.csv | 512 + .../results/results_kde_univ_weights.csv | 61 + .../tests/results/results_kde_weights.csv | 51 + .../results/results_kernel_regression.csv | 41 + .../tests/results/test_lowess_delta.csv | 134 + .../tests/results/test_lowess_frac.csv | 31 + .../tests/results/test_lowess_iter.csv | 21 + .../tests/results/test_lowess_r_outputs.R | 93 + .../tests/results/test_lowess_simple.csv | 21 + .../nonparametric/tests/test_bandwidths.py | 78 + statsmodels/nonparametric/tests/test_kde.py | 338 + .../tests/test_kernel_density.py | 395 + .../tests/test_kernel_regression.py | 337 + .../nonparametric/tests/test_kernels.py | 154 + .../nonparametric/tests/test_lowess.py | 150 + statsmodels/regression/__init__.py | 4 + statsmodels/regression/_prediction.py | 177 + statsmodels/regression/feasible_gls.py | 213 + statsmodels/regression/linear_model.py | 2646 ++ statsmodels/regression/mixed_linear_model.py | 2582 ++ statsmodels/regression/quantile_regression.py | 445 + statsmodels/regression/recursive_ls.py | 697 + statsmodels/regression/tests/__init__.py | 0 .../regression/tests/generate_lasso.py | 27 + statsmodels/regression/tests/generate_lme.py | 76 + .../regression/tests/glmnet_r_results.py | 164 + .../regression/tests/lasso_r_results.R | 40 + statsmodels/regression/tests/lme_examples.R | 6 + statsmodels/regression/tests/lme_r_results.py | 458 + statsmodels/regression/tests/lme_results.R | 90 + .../regression/tests/results/__init__.py | 0 .../regression/tests/results/lasso_data.csv | 300 + .../leverage_influence_ols_nostars.txt | 209 + .../regression/tests/results/lme00.csv | 241 + .../regression/tests/results/lme01.csv | 255 + .../regression/tests/results/lme02.csv | 236 + .../regression/tests/results/lme03.csv | 230 + .../regression/tests/results/lme04.csv | 253 + .../regression/tests/results/lme05.csv | 269 + .../regression/tests/results/lme06.csv | 261 + .../regression/tests/results/lme07.csv | 262 + .../regression/tests/results/lme08.csv | 250 + .../regression/tests/results/lme09.csv | 256 + .../regression/tests/results/lme10.csv | 263 + .../regression/tests/results/lme11.csv | 262 + .../tests/results/macro_gr_corc_stata.py | 517 + .../regression/tests/results/pastes.csv | 61 + .../results_grunfeld_ols_robust_cluster.py | 823 + .../tests/results/results_macro_ols_robust.py | 455 + .../tests/results/results_regression.py | 201 + .../tests/results/results_rls_R.csv | 202 + .../tests/results/results_rls_stata.csv | 204 + .../regression/tests/results/test_rls.R | 15 + .../regression/tests/results/test_rls.do | 9 + .../tests/results_quantile_regression.py | 638 + statsmodels/regression/tests/test_cov.py | 39 + .../regression/tests/test_glsar_gretl.py | 644 + .../regression/tests/test_glsar_stata.py | 100 + statsmodels/regression/tests/test_lme.py | 734 + .../tests/test_quantile_regression.py | 255 + .../regression/tests/test_recursive_ls.py | 259 + .../regression/tests/test_regression.py | 1105 + .../regression/tests/test_robustcov.py | 902 + statsmodels/regression/tests/tests_predict.py | 215 + statsmodels/resampling/__init__.py | 0 statsmodels/robust/__init__.py | 8 + statsmodels/robust/norms.py | 853 + statsmodels/robust/robust_linear_model.py | 682 + statsmodels/robust/scale.py | 241 + statsmodels/robust/tests/__init__.py | 0 statsmodels/robust/tests/results/__init__.py | 0 .../robust/tests/results/results_rlm.py | 396 + statsmodels/robust/tests/test_rlm.py | 315 + statsmodels/robust/tests/test_scale.py | 116 + statsmodels/sandbox/__init__.py | 3 + statsmodels/sandbox/archive/__init__.py | 0 statsmodels/sandbox/archive/linalg_covmat.py | 282 + .../sandbox/archive/linalg_decomp_1.py | 334 + statsmodels/sandbox/archive/tsa.py | 50 + statsmodels/sandbox/bspline.py | 664 + statsmodels/sandbox/contrast_old.py | 169 + statsmodels/sandbox/cox.py | 303 + statsmodels/sandbox/datarich/__init__.py | 165 + statsmodels/sandbox/datarich/factormodels.py | 193 + statsmodels/sandbox/dataset_notes.rst | 66 + statsmodels/sandbox/descstats.py | 187 + statsmodels/sandbox/distributions/__init__.py | 23 + statsmodels/sandbox/distributions/copula.py | 316 + .../sandbox/distributions/estimators.py | 694 + .../distributions/examples/__init__.py | 1 + .../distributions/examples/ex_extras.py | 127 + .../distributions/examples/ex_fitfr.py | 29 + .../sandbox/distributions/examples/ex_gof.py | 13 + .../distributions/examples/ex_mvelliptical.py | 164 + .../distributions/examples/ex_transf2.py | 316 + .../distributions/examples/matchdist.py | 263 + statsmodels/sandbox/distributions/extras.py | 1147 + .../sandbox/distributions/genpareto.py | 239 + statsmodels/sandbox/distributions/gof_new.py | 706 + .../sandbox/distributions/multivariate.py | 175 + .../sandbox/distributions/mv_measures.py | 197 + .../sandbox/distributions/mv_normal.py | 1278 + .../sandbox/distributions/otherdist.py | 313 + statsmodels/sandbox/distributions/quantize.py | 145 + statsmodels/sandbox/distributions/sppatch.py | 722 + .../sandbox/distributions/tests/__init__.py | 165 + .../sandbox/distributions/tests/_est_fit.py | 70 + .../distributions/tests/check_moments.py | 159 + .../sandbox/distributions/tests/distparams.py | 121 + .../distributions/tests/test_extras.py | 120 + .../distributions/tests/test_multivariate.py | 174 + .../distributions/tests/test_norm_expan.py | 94 + .../sandbox/distributions/tests/testtransf.py | 179 + .../distributions/transform_functions.py | 191 + .../sandbox/distributions/transformed.py | 459 + statsmodels/sandbox/distributions/try_max.py | 75 + statsmodels/sandbox/distributions/try_pot.py | 73 + statsmodels/sandbox/examples/bayesprior.py | 246 + statsmodels/sandbox/examples/dji_table.csv | 20434 +++++++++++++ statsmodels/sandbox/examples/ex_cusum.py | 110 + statsmodels/sandbox/examples/ex_formula.py | 249 + .../sandbox/examples/ex_formula_factor.py | 48 + .../sandbox/examples/ex_gam_results.py | 59 + .../sandbox/examples/ex_kaplan_meier.py | 124 + .../sandbox/examples/ex_mixed_lls_0.py | 155 + .../sandbox/examples/ex_mixed_lls_re.py | 159 + .../sandbox/examples/ex_mixed_lls_timecorr.py | 211 + statsmodels/sandbox/examples/ex_onewaygls.py | 196 + .../sandbox/examples/ex_random_panel.py | 151 + .../sandbox/examples/example_crossval.py | 67 + statsmodels/sandbox/examples/example_gam.py | 100 + statsmodels/sandbox/examples/example_gam_0.py | 169 + statsmodels/sandbox/examples/example_garch.py | 68 + .../sandbox/examples/example_maxent.py | 50 + statsmodels/sandbox/examples/example_mle.py | 68 + statsmodels/sandbox/examples/example_nbin.py | 363 + statsmodels/sandbox/examples/example_pca.py | 21 + .../examples/example_pca_regression.py | 111 + .../sandbox/examples/example_sysreg.py | 208 + statsmodels/sandbox/examples/gspc_table.csv | 15127 ++++++++++ statsmodels/sandbox/examples/run_all.py | 36 + .../examples/thirdparty/ex_ratereturn.py | 146 + .../sandbox/examples/thirdparty/findow_0.py | 81 + .../sandbox/examples/thirdparty/findow_1.py | 93 + .../examples/thirdparty/try_interchange.py | 75 + statsmodels/sandbox/examples/try_gmm_other.py | 142 + statsmodels/sandbox/examples/try_multiols.py | 44 + .../examples/try_quantile_regression.py | 49 + .../examples/try_quantile_regression1.py | 45 + statsmodels/sandbox/examples/try_smoothers.py | 99 + statsmodels/sandbox/formula.py | 766 + statsmodels/sandbox/gam.py | 434 + statsmodels/sandbox/infotheo.py | 519 + statsmodels/sandbox/km_class.py | 240 + statsmodels/sandbox/mcevaluate/__init__.py | 165 + statsmodels/sandbox/mcevaluate/arma.py | 147 + .../sandbox/mcevaluate/mcresuts_arma1.txt | 325 + statsmodels/sandbox/mle.py | 65 + statsmodels/sandbox/mlogitmath.lyx | 219 + statsmodels/sandbox/multilinear.py | 326 + statsmodels/sandbox/nonparametric/__init__.py | 2 + .../sandbox/nonparametric/densityorthopoly.py | 570 + .../sandbox/nonparametric/dgp_examples.py | 213 + statsmodels/sandbox/nonparametric/kde2.py | 114 + .../sandbox/nonparametric/kdecovclass.py | 163 + .../sandbox/nonparametric/kernel_extras.py | 416 + statsmodels/sandbox/nonparametric/kernels.py | 566 + .../sandbox/nonparametric/smoothers.py | 409 + statsmodels/sandbox/nonparametric/testdata.py | 56 + .../sandbox/nonparametric/tests/__init__.py | 0 .../nonparametric/tests/ex_gam_am_new.py | 96 + .../sandbox/nonparametric/tests/ex_gam_new.py | 136 + .../nonparametric/tests/ex_smoothers.py | 64 + .../nonparametric/tests/test_kernel_extras.py | 80 + .../nonparametric/tests/test_smoothers.py | 108 + statsmodels/sandbox/nos4.mtx | 349 + statsmodels/sandbox/panel/__init__.py | 0 .../sandbox/panel/correlation_structures.py | 205 + statsmodels/sandbox/panel/mixed.py | 673 + statsmodels/sandbox/panel/panel_short.py | 247 + statsmodels/sandbox/panel/panelmod.py | 439 + statsmodels/sandbox/panel/random_panel.py | 157 + .../sandbox/panel/sandwich_covariance.py | 15 + .../panel/sandwich_covariance_generic.py | 124 + statsmodels/sandbox/panel/tests/__init__.py | 0 .../sandbox/panel/tests/test_random_panel.py | 146 + statsmodels/sandbox/pca.py | 227 + statsmodels/sandbox/predict_functional.py | 441 + statsmodels/sandbox/regression/__init__.py | 5 + .../sandbox/regression/anova_nistcertified.py | 105 + statsmodels/sandbox/regression/ar_panel.py | 114 + .../sandbox/regression/data/AtmWtAg.dat | 108 + .../sandbox/regression/data/Longley.dat | 76 + .../sandbox/regression/data/SiRstv.dat | 85 + .../sandbox/regression/data/SmLs01.dat | 249 + .../sandbox/regression/data/SmLs02.dat | 1869 ++ .../sandbox/regression/data/SmLs03.dat | 18069 +++++++++++ .../sandbox/regression/data/SmLs04.dat | 249 + .../sandbox/regression/data/SmLs05.dat | 1869 ++ .../sandbox/regression/data/SmLs06.dat | 18069 +++++++++++ .../sandbox/regression/data/SmLs07.dat | 249 + .../sandbox/regression/data/SmLs08.dat | 1869 ++ .../sandbox/regression/data/SmLs09.dat | 18069 +++++++++++ .../sandbox/regression/example_kernridge.py | 34 + statsmodels/sandbox/regression/gmm.py | 1801 ++ .../regression/kernridgeregress_class.py | 209 + .../sandbox/regression/notes_runmnl.txt | 34 + .../sandbox/regression/ols_anova_original.py | 334 + statsmodels/sandbox/regression/onewaygls.py | 382 + statsmodels/sandbox/regression/penalized.py | 364 + statsmodels/sandbox/regression/predstd.py | 101 + statsmodels/sandbox/regression/runmnl.py | 374 + statsmodels/sandbox/regression/sympy_diff.py | 61 + .../sandbox/regression/tests/__init__.py | 0 .../sandbox/regression/tests/griliches76.dta | Bin 0 -> 64736 bytes .../tests/racd10data_with_transformed.csv | 3630 +++ .../regression/tests/results_gmm_griliches.py | 280 + .../tests/results_gmm_griliches_iter.py | 141 + .../regression/tests/results_gmm_poisson.py | 582 + .../tests/results_ivreg2_griliches.py | 828 + .../sandbox/regression/tests/test_gmm.py | 743 + .../regression/tests/test_gmm_poisson.py | 409 + statsmodels/sandbox/regression/tools.py | 401 + .../sandbox/regression/treewalkerclass.py | 620 + statsmodels/sandbox/regression/try_catdata.py | 132 + .../sandbox/regression/try_ols_anova.py | 288 + .../sandbox/regression/try_treewalker.py | 147 + statsmodels/sandbox/rls.py | 152 + statsmodels/sandbox/rlsdata.txt | 50 + statsmodels/sandbox/stats/__init__.py | 23 + statsmodels/sandbox/stats/contrast_tools.py | 967 + statsmodels/sandbox/stats/diagnostic.py | 1628 + statsmodels/sandbox/stats/ex_newtests.py | 33 + statsmodels/sandbox/stats/multicomp.py | 1977 ++ statsmodels/sandbox/stats/notes_fdr.txt | 128 + statsmodels/sandbox/stats/runs.py | 635 + statsmodels/sandbox/stats/stats_dhuard.py | 341 + .../sandbox/stats/stats_mstats_short.py | 383 + statsmodels/sandbox/stats/tests/__init__.py | 165 + statsmodels/sandbox/survival.py | 18 + statsmodels/sandbox/survival2.py | 499 + statsmodels/sandbox/sysreg.py | 377 + statsmodels/sandbox/tests/GreeneEx15_1.s | 35 + statsmodels/sandbox/tests/__init__.py | 165 + statsmodels/sandbox/tests/datamlw.py | 288 + statsmodels/sandbox/tests/macrodata.s | 35 + .../sandbox/tests/maketests_mlabwrap.py | 246 + statsmodels/sandbox/tests/model_results.py | 10 + statsmodels/sandbox/tests/savervs.py | 37 + statsmodels/sandbox/tests/sysreg.s | 56 + statsmodels/sandbox/tests/test_bspline.py.txt | 55 + statsmodels/sandbox/tests/test_formula.py | 314 + statsmodels/sandbox/tests/test_gam.py | 311 + statsmodels/sandbox/tests/test_pca.py | 72 + .../sandbox/tests/test_predict_functional.py | 350 + statsmodels/sandbox/tools/TODO.txt | 76 + statsmodels/sandbox/tools/__init__.py | 10 + statsmodels/sandbox/tools/cross_val.py | 372 + statsmodels/sandbox/tools/mctools.py | 529 + statsmodels/sandbox/tools/tools_pca.py | 148 + statsmodels/sandbox/tools/try_mctools.py | 70 + statsmodels/sandbox/tsa/__init__.py | 52 + statsmodels/sandbox/tsa/diffusion.py | 591 + statsmodels/sandbox/tsa/diffusion2.py | 505 + statsmodels/sandbox/tsa/example_arma.py | 409 + .../sandbox/tsa/examples/ex_mle_arma.py | 146 + .../sandbox/tsa/examples/ex_mle_garch.py | 330 + .../sandbox/tsa/examples/example_var.py | 55 + .../sandbox/tsa/examples/try_ld_nitime.py | 56 + statsmodels/sandbox/tsa/fftarma.py | 540 + statsmodels/sandbox/tsa/garch.py | 1555 + statsmodels/sandbox/tsa/movstat.py | 415 + statsmodels/sandbox/tsa/notes_organize.txt | 227 + statsmodels/sandbox/tsa/try_arma_more.py | 165 + statsmodels/sandbox/tsa/try_fi.py | 80 + statsmodels/sandbox/tsa/try_var_convolve.py | 360 + statsmodels/sandbox/tsa/varma.py | 176 + statsmodels/sandbox/utils_old.py | 155 + statsmodels/src/__init__.py | 0 statsmodels/src/blas_lapack.pxd | 881 + statsmodels/src/bspline_ext.c | 134 + statsmodels/src/bspline_impl.c | 271 + statsmodels/src/capsule.h | 24 + statsmodels/stats/__init__.py | 3 + statsmodels/stats/_adnorm.py | 136 + statsmodels/stats/_lilliefors.py | 364 + statsmodels/stats/anova.py | 386 + statsmodels/stats/api.py | 61 + statsmodels/stats/base.py | 102 + statsmodels/stats/contingency_tables.py | 1404 + statsmodels/stats/contrast.py | 412 + statsmodels/stats/correlation_tools.py | 867 + statsmodels/stats/descriptivestats.py | 394 + statsmodels/stats/diagnostic.py | 13 + statsmodels/stats/gof.py | 487 + statsmodels/stats/inter_rater.py | 487 + statsmodels/stats/libqsturng/CH.r | 92 + statsmodels/stats/libqsturng/LICENSE.txt | 29 + statsmodels/stats/libqsturng/__init__.py | 5 + statsmodels/stats/libqsturng/make_tbls.py | 467 + statsmodels/stats/libqsturng/qsturng_.py | 899 + .../stats/libqsturng/tests/__init__.py | 0 .../stats/libqsturng/tests/bootleg.dat | 9265 ++++++ .../stats/libqsturng/tests/test_qsturng.py | 199 + statsmodels/stats/mediation.py | 402 + statsmodels/stats/moment_helpers.py | 239 + statsmodels/stats/multicomp.py | 38 + statsmodels/stats/multitest.py | 687 + statsmodels/stats/multivariate_tools.py | 251 + statsmodels/stats/outliers_influence.py | 741 + statsmodels/stats/power.py | 1136 + statsmodels/stats/proportion.py | 1004 + statsmodels/stats/sandwich_covariance.py | 899 + statsmodels/stats/stattools.py | 451 + statsmodels/stats/tabledist.py | 320 + statsmodels/stats/tests/__init__.py | 165 + .../stats/tests/gen_contingency_table_tests.R | 74 + statsmodels/stats/tests/results/__init__.py | 0 statsmodels/stats/tests/results/anova.R | 92 + statsmodels/stats/tests/results/bootleg.csv | 9265 ++++++ .../results/contingency_table_r_results.csv | 4 + statsmodels/stats/tests/results/data.dat | 61 + statsmodels/stats/tests/results/framing.csv | 266 + .../tests/results/influence_lsdiag_R.json | 1 + .../tests/results/influence_measures_R.csv | 203 + .../results/influence_measures_bool_R.csv | 203 + .../results_multinomial_proportions.py | 71 + .../tests/results/results_panelrobust.py | 79 + .../stats/tests/results/results_power.py | 129 + .../stats/tests/results/results_proportion.py | 89 + statsmodels/stats/tests/test_anova.py | 520 + .../stats/tests/test_contingency_tables.py | 527 + statsmodels/stats/tests/test_contrast.py | 38 + statsmodels/stats/tests/test_corrpsd.py | 479 + statsmodels/stats/tests/test_data.txt | 5000 +++ .../stats/tests/test_descriptivestats.py | 11 + statsmodels/stats/tests/test_diagnostic.py | 952 + statsmodels/stats/tests/test_gof.py | 105 + statsmodels/stats/tests/test_groups_sw.py | 78 + statsmodels/stats/tests/test_inter_rater.py | 323 + statsmodels/stats/tests/test_mediation.py | 164 + .../stats/tests/test_moment_helpers.py | 109 + statsmodels/stats/tests/test_multi.py | 423 + statsmodels/stats/tests/test_nonparametric.py | 262 + statsmodels/stats/tests/test_pairwise.py | 350 + .../stats/tests/test_panel_robustcov.py | 73 + statsmodels/stats/tests/test_power.py | 762 + statsmodels/stats/tests/test_proportion.py | 526 + statsmodels/stats/tests/test_qsturng.py | 26 + statsmodels/stats/tests/test_sandwich.py | 95 + statsmodels/stats/tests/test_statstools.py | 307 + statsmodels/stats/tests/test_tost.py | 568 + statsmodels/stats/tests/test_weightstats.py | 746 + statsmodels/stats/weightstats.py | 1465 + statsmodels/tools/__init__.py | 1 + statsmodels/tools/_testing.py | 135 + statsmodels/tools/catadd.py | 57 + statsmodels/tools/data.py | 122 + statsmodels/tools/decorators.py | 278 + statsmodels/tools/dump2module.py | 175 + statsmodels/tools/eval_measures.py | 585 + statsmodels/tools/grouputils.py | 658 + statsmodels/tools/linalg.py | 287 + statsmodels/tools/numdiff.py | 460 + statsmodels/tools/parallel.py | 75 + statsmodels/tools/print_version.py | 270 + statsmodels/tools/rootfinding.py | 220 + statsmodels/tools/sm_exceptions.py | 117 + statsmodels/tools/testing.py | 46 + statsmodels/tools/tests/__init__.py | 0 statsmodels/tools/tests/test_catadd.py | 23 + statsmodels/tools/tests/test_data.py | 51 + statsmodels/tools/tests/test_eval_measures.py | 104 + statsmodels/tools/tests/test_grouputils.py | 250 + statsmodels/tools/tests/test_linalg.py | 23 + statsmodels/tools/tests/test_numdiff.py | 377 + statsmodels/tools/tests/test_parallel.py | 13 + statsmodels/tools/tests/test_rootfinding.py | 93 + statsmodels/tools/tests/test_tools.py | 582 + .../tools/tests/test_transform_model.py | 71 + statsmodels/tools/tests/test_web.py | 33 + statsmodels/tools/tools.py | 558 + statsmodels/tools/transform_model.py | 99 + statsmodels/tools/web.py | 77 + statsmodels/tools/wrappers.py | 53 + statsmodels/tsa/__init__.py | 2 + statsmodels/tsa/_bds.py | 248 + statsmodels/tsa/adfvalues.py | 387 + statsmodels/tsa/api.py | 25 + statsmodels/tsa/ar_model.py | 910 + statsmodels/tsa/arima_model.py | 1980 ++ statsmodels/tsa/arima_process.py | 1031 + statsmodels/tsa/arma_mle.py | 377 + statsmodels/tsa/base/__init__.py | 0 statsmodels/tsa/base/datetools.py | 293 + statsmodels/tsa/base/tests/__init__.py | 0 statsmodels/tsa/base/tests/test_base.py | 108 + statsmodels/tsa/base/tests/test_datetools.py | 141 + statsmodels/tsa/base/tsa_model.py | 301 + statsmodels/tsa/descriptivestats.py | 82 + statsmodels/tsa/filters/__init__.py | 0 statsmodels/tsa/filters/_utils.py | 149 + statsmodels/tsa/filters/api.py | 4 + statsmodels/tsa/filters/bk_filter.py | 96 + statsmodels/tsa/filters/cf_filter.py | 109 + statsmodels/tsa/filters/filtertools.py | 371 + statsmodels/tsa/filters/hp_filter.py | 102 + statsmodels/tsa/filters/tests/__init__.py | 0 .../tsa/filters/tests/results/__init__.py | 0 .../tsa/filters/tests/results/filter.R | 49 + .../filters/tests/results/filter_results.py | 24 + statsmodels/tsa/filters/tests/test_filters.py | 742 + statsmodels/tsa/interp/__init__.py | 1 + statsmodels/tsa/interp/denton.py | 313 + statsmodels/tsa/interp/tests/__init__.py | 0 statsmodels/tsa/interp/tests/test_denton.py | 27 + statsmodels/tsa/kalmanf/__init__.py | 1 + statsmodels/tsa/kalmanf/kalman_loglike.pyx | 363 + statsmodels/tsa/kalmanf/kalmanfilter.py | 876 + statsmodels/tsa/mlemodel.py | 83 + statsmodels/tsa/regime_switching/__init__.py | 2 + .../regime_switching/_hamilton_filter.pyx.in | 84 + .../regime_switching/markov_autoregression.py | 496 + .../tsa/regime_switching/markov_regression.py | 464 + .../tsa/regime_switching/markov_switching.py | 2218 ++ .../tsa/regime_switching/tests/__init__.py | 0 .../tests/results/__init__.py | 0 .../tests/results/mar_filardo.csv | 1 + .../results/results_predict_fedfunds.csv | 227 + .../tests/results/results_predict_rgnp.csv | 137 + .../tests/test_markov_autoregression.py | 847 + .../tests/test_markov_regression.py | 1115 + .../tests/test_markov_switching.py | 317 + statsmodels/tsa/seasonal.py | 168 + statsmodels/tsa/statespace/__init__.py | 2 + statsmodels/tsa/statespace/_statespace.pyx.in | 2113 ++ statsmodels/tsa/statespace/api.py | 3 + statsmodels/tsa/statespace/dynamic_factor.py | 1383 + statsmodels/tsa/statespace/kalman_filter.py | 1757 ++ statsmodels/tsa/statespace/kalman_smoother.py | 802 + statsmodels/tsa/statespace/mlemodel.py | 2829 ++ statsmodels/tsa/statespace/representation.py | 844 + statsmodels/tsa/statespace/sarimax.py | 1995 ++ statsmodels/tsa/statespace/structural.py | 1572 + statsmodels/tsa/statespace/tests/__init__.py | 0 .../tsa/statespace/tests/results/__init__.py | 0 .../statespace/tests/results/clark1989.csv | 195 + .../tests/results/example_ssm_wpi1.m | 53 + .../tsa/statespace/tests/results/manufac.dta | Bin 0 -> 19146 bytes .../tests/results/results_clark1989_R.csv | 192 + .../tests/results/results_dynamic_factor.py | 217 + .../results/results_dynamic_factor_stata.csv | 93 + .../tests/results/results_kalman_filter.py | 807 + .../tests/results/results_realgdpar_stata.csv | 270 + .../tests/results/results_sarimax.py | 314 + .../results/results_sarimax_coverage.csv | 54 + .../tests/results/results_smoothing_R.csv | 203 + .../tests/results/results_structural.py | 246 + .../tests/results/results_var_stata.csv | 93 + .../tests/results/results_varmax.py | 234 + .../tests/results/results_varmax_stata.csv | 450 + .../results/results_wpi1_ar3_matlab_ssm.csv | 123 + .../results/results_wpi1_ar3_regression.csv | 1 + .../tests/results/results_wpi1_ar3_stata.csv | 1 + .../results_wpi1_missing_ar3_matlab_ssm.csv | 123 + .../results_wpi1_missing_ar3_regression.csv | 125 + .../tests/results/test_clark1989_r.R | 98 + .../results/test_dynamic_factor_stata.do | 149 + .../tests/results/test_realgdpar_r.R | 51 + .../tests/results/test_realgdpar_stata.do | 70 + .../tests/results/test_sarimax_coverage.do | 273 + .../tests/results/test_sarimax_stata.do | 54 + .../statespace/tests/results/test_smoothing.R | 53 + .../tsa/statespace/tests/results/test_ucm.R | 134 + .../tests/results/test_varmax_stata.do | 148 + .../tests/results/test_wpi1_stata.do | 22 + .../statespace/tests/test_dynamic_factor.py | 625 + .../tests/test_impulse_responses.py | 311 + .../tsa/statespace/tests/test_kalman.py | 706 + .../tsa/statespace/tests/test_mlemodel.py | 784 + .../tsa/statespace/tests/test_options.py | 220 + .../tsa/statespace/tests/test_prediction.py | 61 + .../statespace/tests/test_representation.py | 1294 + .../tsa/statespace/tests/test_sarimax.py | 1991 ++ .../tsa/statespace/tests/test_simulate.py | 459 + .../tsa/statespace/tests/test_smoothing.py | 367 + .../tsa/statespace/tests/test_structural.py | 348 + .../tsa/statespace/tests/test_tools.py | 421 + .../tsa/statespace/tests/test_varmax.py | 827 + statsmodels/tsa/statespace/tools.py | 1413 + statsmodels/tsa/statespace/varmax.py | 956 + statsmodels/tsa/stattools.py | 1279 + statsmodels/tsa/tests/__init__.py | 0 statsmodels/tsa/tests/arima.do | 190 + statsmodels/tsa/tests/arima112.do | 185 + statsmodels/tsa/tests/arima211.do | 184 + .../tests/results/ARMLEConstantPredict.csv | 334 + .../tests/results/AROLSConstantPredict.csv | 416 + .../tests/results/AROLSNoConstantPredict.csv | 416 + statsmodels/tsa/tests/results/__init__.py | 0 statsmodels/tsa/tests/results/arima.R | 21 + .../tsa/tests/results/arima111_css_results.py | 1281 + .../tsa/tests/results/arima111_forecasts.csv | 224 + .../tsa/tests/results/arima111_results.py | 1281 + .../tests/results/arima111nc_css_results.py | 1273 + .../tsa/tests/results/arima111nc_results.py | 1273 + .../tsa/tests/results/arima112_css_results.py | 1291 + .../tsa/tests/results/arima112_results.py | 1291 + .../tests/results/arima112nc_css_results.py | 1281 + .../tsa/tests/results/arima112nc_results.py | 1077 + .../tsa/tests/results/arima211_css_results.py | 1291 + .../tsa/tests/results/arima211_results.py | 1291 + .../tests/results/arima211nc_css_results.py | 1281 + .../tsa/tests/results/arima211nc_results.py | 1077 + .../tsa/tests/results/arima212_forecast.csv | 224 + .../tsa/tests/results/arima_forecast.inp | 26 + .../tsa/tests/results/arma_forecast.inp | 32 + statsmodels/tsa/tests/results/bds_data.csv | 265 + statsmodels/tsa/tests/results/bds_results.csv | 20 + statsmodels/tsa/tests/results/corrgram.do | 16 + statsmodels/tsa/tests/results/datamlw_tls.py | 376 + statsmodels/tsa/tests/results/make_arma.py | 41 + .../tsa/tests/results/resids_css_c.csv | 251 + .../tsa/tests/results/resids_css_nc.csv | 251 + .../tsa/tests/results/resids_exact_c.csv | 251 + .../tsa/tests/results/resids_exact_nc.csv | 251 + statsmodels/tsa/tests/results/results_ar.py | 218 + .../results_ar_forecast_mle_dynamic.csv | 335 + .../tsa/tests/results/results_arima.py | 438 + .../results_arima_exog_forecasts_css.csv | 127 + .../results_arima_exog_forecasts_mle.csv | 126 + .../tests/results/results_arima_forecasts.csv | 65 + .../results_arima_forecasts_all_css.csv | 231 + .../results_arima_forecasts_all_css_diff.csv | 229 + .../results_arima_forecasts_all_mle.csv | 229 + .../results_arima_forecasts_all_mle_diff.csv | 229 + statsmodels/tsa/tests/results/results_arma.py | 726 + .../tests/results/results_arma_forecasts.csv | 11 + .../tsa/tests/results/results_corrgram.csv | 41 + .../tsa/tests/results/results_process.py | 56 + statsmodels/tsa/tests/results/savedrvs.py | 250 + statsmodels/tsa/tests/results/test_bds.m | 43 + statsmodels/tsa/tests/results/y_arma_data.csv | 251 + statsmodels/tsa/tests/results/yhat_css_c.csv | 251 + statsmodels/tsa/tests/results/yhat_css_nc.csv | 251 + .../tsa/tests/results/yhat_exact_c.csv | 251 + .../tsa/tests/results/yhat_exact_nc.csv | 251 + statsmodels/tsa/tests/test_adfuller_lag.py | 49 + statsmodels/tsa/tests/test_ar.py | 335 + statsmodels/tsa/tests/test_arima.py | 2256 ++ statsmodels/tsa/tests/test_arima_process.py | 138 + statsmodels/tsa/tests/test_bds.py | 104 + statsmodels/tsa/tests/test_seasonal.py | 248 + statsmodels/tsa/tests/test_stattools.py | 527 + statsmodels/tsa/tests/test_tsa_tools.py | 665 + statsmodels/tsa/tests/test_x13.py | 59 + statsmodels/tsa/tsatools.py | 758 + statsmodels/tsa/varma_process.py | 726 + statsmodels/tsa/vector_ar/__init__.py | 2 + statsmodels/tsa/vector_ar/api.py | 5 + statsmodels/tsa/vector_ar/data/e1.dat | 99 + statsmodels/tsa/vector_ar/data/e2.dat | 113 + statsmodels/tsa/vector_ar/data/e3.dat | 146 + statsmodels/tsa/vector_ar/data/e4.dat | 121 + statsmodels/tsa/vector_ar/data/e5.dat | 345 + statsmodels/tsa/vector_ar/data/e6.dat | 118 + statsmodels/tsa/vector_ar/dynamic.py | 366 + statsmodels/tsa/vector_ar/irf.py | 693 + statsmodels/tsa/vector_ar/output.py | 278 + statsmodels/tsa/vector_ar/plotting.py | 261 + statsmodels/tsa/vector_ar/svar_model.py | 741 + statsmodels/tsa/vector_ar/tests/__init__.py | 0 .../tsa/vector_ar/tests/example_svar.py | 23 + .../tsa/vector_ar/tests/results/__init__.py | 1 + .../vector_ar/tests/results/results_svar.py | 14 + .../tests/results/results_svar_st.py | 741 + .../vector_ar/tests/results/results_var.py | 71 + .../tests/results/results_var_data.py | 97 + .../vector_ar/tests/results/vars_results.npz | Bin 0 -> 5696 bytes statsmodels/tsa/vector_ar/tests/svar.do | 19 + statsmodels/tsa/vector_ar/tests/svartest.R | 22 + statsmodels/tsa/vector_ar/tests/test_svar.py | 64 + statsmodels/tsa/vector_ar/tests/test_var.py | 645 + statsmodels/tsa/vector_ar/tests/var.R | 97 + statsmodels/tsa/vector_ar/util.py | 243 + statsmodels/tsa/vector_ar/var_model.py | 1698 ++ statsmodels/tsa/x13.py | 634 + tools/R2nparray/DESCRIPTION | 13 + tools/R2nparray/NAMESPACE | 1 + tools/R2nparray/R/R2nparray-package.R | 5 + tools/R2nparray/R/R2nparray.R | 230 + tools/R2nparray/R/ex_sur.R | 47 + tools/R2nparray/README.txt | 35 + tools/README.txt | 45 + tools/backport_pr.py | 171 + tools/binstar/README.md | 27 + tools/binstar/binstar_unix.sh | 26 + tools/binstar/binstar_windows.bat | 37 + tools/binstar/bld.bat | 1 + tools/binstar/build.sh | 3 + tools/binstar/meta.yaml | 35 + tools/binstar/python2_setup.bat | 9 + tools/binstar/python3_setup.bat | 6 + tools/build_win_bdist32-py26.bat | 6 + tools/build_win_bdist32-py27.bat | 6 + tools/build_win_bdist32-py32.bat | 5 + tools/build_win_bdist32-py33.bat | 5 + tools/build_win_bdist32-py34.bat | 5 + tools/build_win_bdist64-py26.bat | 5 + tools/build_win_bdist64-py27.bat | 5 + tools/build_win_bdist64-py32.bat | 5 + tools/build_win_bdist64-py33.bat | 5 + tools/build_win_bdist64-py34.bat | 5 + tools/check_dirs.py | 23 + tools/code_maintenance.py | 84 + tools/cythonize.py | 198 + tools/dataset_rst.py | 71 + tools/estmat2nparray.ado | 141 + tools/examples_rst.py | 168 + tools/fold_toc.py | 57 + tools/generate_formula_api.py | 74 + tools/gh_api.py | 281 + tools/github_stats.py | 202 + tools/hash_funcs.py | 49 + tools/km_cox1.do | 78 + tools/matplotlibrc | 385 + tools/migrate_issues_gh.py | 371 + tools/nbgenerate.py | 166 + tools/notebook2python.tpl | 46 + tools/notebook_output_template.py | 48 + tools/update_web.py | 371 + 1352 files changed, 567822 insertions(+) create mode 100644 .bzrignore create mode 100644 .coveragerc create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 .mailmap create mode 100644 .travis.yml create mode 100644 .travis_coveragerc create mode 100644 CHANGES.md create mode 100644 CONTRIBUTING.rst create mode 100644 COPYRIGHTS.txt create mode 100644 INSTALL.txt create mode 100644 LICENSE.txt create mode 100644 MANIFEST.in create mode 100644 README.rst create mode 100644 README_l1.txt create mode 100644 appveyor.yml create mode 100644 build_bdists.bat create mode 100644 docs/GLMNotes.lyx create mode 100644 docs/GLMNotes.pdf create mode 100644 docs/Makefile create mode 100644 docs/README.md create mode 100644 docs/fix_longtable.py create mode 100644 docs/make.bat create mode 100644 docs/source/_static/blogger.png create mode 100644 docs/source/_static/blogger_sm.png create mode 100644 docs/source/_static/bullet.gif create mode 100644 docs/source/_static/closelabel.png create mode 100644 docs/source/_static/examples.css create mode 100644 docs/source/_static/facebox.css create mode 100644 docs/source/_static/facebox.js create mode 100644 docs/source/_static/gettingstarted_0.png create mode 100644 docs/source/_static/images/anova.png create mode 100644 docs/source/_static/images/categorical_interaction_plot.png create mode 100644 docs/source/_static/images/contrasts.png create mode 100644 docs/source/_static/images/discrete_overview.png create mode 100644 docs/source/_static/images/fairs_data.png create mode 100644 docs/source/_static/images/formulas_intro.png create mode 100644 docs/source/_static/images/generic_mle.png create mode 100644 docs/source/_static/images/glm_formulas.png create mode 100644 docs/source/_static/images/glm_overview.png create mode 100644 docs/source/_static/images/gls.png create mode 100644 docs/source/_static/images/kde_overview.png create mode 100644 docs/source/_static/images/markov_autoregression.png create mode 100644 docs/source/_static/images/markov_regression.png create mode 100644 docs/source/_static/images/mixed_lm.png create mode 100644 docs/source/_static/images/ols.png create mode 100644 docs/source/_static/images/prediction.png create mode 100644 docs/source/_static/images/quantile_regression.png create mode 100644 docs/source/_static/images/recursive_ls.png create mode 100644 docs/source/_static/images/regression_diagnostics.png create mode 100644 docs/source/_static/images/regression_plots.png create mode 100644 docs/source/_static/images/rlm.png create mode 100644 docs/source/_static/images/rlm_overview.png create mode 100644 docs/source/_static/images/statespace_arma0.png create mode 100644 docs/source/_static/images/statespace_cycles.png create mode 100644 docs/source/_static/images/statespace_dfm_coincident.png create mode 100644 docs/source/_static/images/statespace_local_linear_trend.png create mode 100644 docs/source/_static/images/statespace_sarimax_internet.png create mode 100644 docs/source/_static/images/statespace_sarimax_stata.png create mode 100644 docs/source/_static/images/statespace_structural_harvey_jaeger.png create mode 100644 docs/source/_static/images/statespace_varmax.png create mode 100644 docs/source/_static/images/tsa_arma0.png create mode 100644 docs/source/_static/images/tsa_arma1.png create mode 100644 docs/source/_static/images/tsa_dates.png create mode 100644 docs/source/_static/images/tsa_filters.png create mode 100644 docs/source/_static/images/wls.png create mode 100644 docs/source/_static/ipython.min.css create mode 100755 docs/source/_static/loading.gif create mode 100644 docs/source/_static/minus.gif create mode 100644 docs/source/_static/mktree.css create mode 100644 docs/source/_static/mktree.js create mode 100644 docs/source/_static/nbviewer.pygments.css create mode 100644 docs/source/_static/plus.gif create mode 100644 docs/source/_static/scripts.js create mode 100644 docs/source/_templates/autosummary/class.rst create mode 100644 docs/source/_templates/autosummary/glmfamilies.rst create mode 100644 docs/source/about.rst create mode 100644 docs/source/anova.rst create mode 100644 docs/source/conf.py create mode 100644 docs/source/contingency_tables.rst create mode 100644 docs/source/contrasts.rst create mode 100644 docs/source/datasets/dataset_proposal.rst create mode 100644 docs/source/datasets/index.rst create mode 100644 docs/source/dev/dataset_notes.rst create mode 100644 docs/source/dev/examples.rst create mode 100644 docs/source/dev/get_involved.rst create mode 100644 docs/source/dev/git_notes.rst create mode 100644 docs/source/dev/images/git_merge.png create mode 100644 docs/source/dev/index.rst create mode 100644 docs/source/dev/internal.rst create mode 100644 docs/source/dev/maintainer_notes.rst create mode 100644 docs/source/dev/naming_conventions.rst create mode 100644 docs/source/dev/test_notes.rst create mode 100644 docs/source/dev/testing.rst create mode 100644 docs/source/dev/vbench.rst create mode 100644 docs/source/diagnostic.rst create mode 100644 docs/source/discretemod.rst create mode 100644 docs/source/distributions.rst create mode 100644 docs/source/duration.rst create mode 100644 docs/source/emplike.rst create mode 100644 docs/source/endog_exog.rst create mode 100644 docs/source/example_formulas.rst create mode 100644 docs/source/examples/README create mode 100644 docs/source/examples/index.rst create mode 100644 docs/source/examples/landing.json create mode 100644 docs/source/extending.rst.TXT create mode 100644 docs/source/faq.rst create mode 100644 docs/source/gee.rst create mode 100644 docs/source/genericmle.rst.TXT create mode 100644 docs/source/gettingstarted.rst create mode 100644 docs/source/glm.rst create mode 100644 docs/source/glm_techn1.rst.TXT create mode 100644 docs/source/glm_techn2.rst.TXT create mode 100644 docs/source/gmm.rst create mode 100644 docs/source/gmm_techn1.rst.TXT create mode 100644 docs/source/graphics.rst create mode 100644 docs/source/images/aw.png create mode 100644 docs/source/images/hl.png create mode 100644 docs/source/images/ht.png create mode 100644 docs/source/images/ls.png create mode 100644 docs/source/images/re.png create mode 100644 docs/source/images/statsmodels_hybi_banner.png create mode 100644 docs/source/images/statsmodels_hybi_banner.svg create mode 100644 docs/source/images/statsmodels_hybi_favico.ico create mode 100644 docs/source/images/tk.png create mode 100644 docs/source/images/tm.png create mode 100644 docs/source/importpaths.rst create mode 100644 docs/source/imputation.rst create mode 100644 docs/source/index.rst create mode 100644 docs/source/install.rst create mode 100644 docs/source/iolib.rst create mode 100644 docs/source/miscmodels.rst create mode 100644 docs/source/missing.rst create mode 100644 docs/source/mixed_linear.rst create mode 100644 docs/source/multivariate.rst create mode 100644 docs/source/nonparametric.rst create mode 100644 docs/source/pitfalls.rst create mode 100644 docs/source/plots/arma_predict_plot.py create mode 100644 docs/source/plots/bkf_plot.py create mode 100644 docs/source/plots/cff_plot.py create mode 100644 docs/source/plots/graphics_boxplot_beanplot.py create mode 100644 docs/source/plots/graphics_boxplot_violinplot.py create mode 100644 docs/source/plots/graphics_functional_fboxplot.py create mode 100644 docs/source/plots/graphics_functional_rainbowplot.py create mode 100644 docs/source/plots/graphics_gofplots_qqplot.py create mode 100644 docs/source/plots/graphics_month_plot.py create mode 100644 docs/source/plots/graphics_plot_fit_ex.py create mode 100644 docs/source/plots/hpf_plot.py create mode 100644 docs/source/plots/load_macrodata.py create mode 100644 docs/source/plots/var_plot_acorr.py create mode 100644 docs/source/plots/var_plot_fevd.py create mode 100644 docs/source/plots/var_plot_forecast.py create mode 100644 docs/source/plots/var_plot_input.py create mode 100644 docs/source/plots/var_plot_irf.py create mode 100644 docs/source/plots/var_plot_irf_cum.py create mode 100644 docs/source/plots/var_plots.py create mode 100644 docs/source/regression.rst create mode 100644 docs/source/regression_techn1.rst.TXT create mode 100644 docs/source/release/github-stats-0.5.rst create mode 100644 docs/source/release/github-stats-0.6.rst create mode 100644 docs/source/release/index.rst create mode 100644 docs/source/release/old_changes.rst create mode 100644 docs/source/release/version0.5.rst create mode 100644 docs/source/release/version0.6.rst create mode 100644 docs/source/release/version0.7.rst create mode 100644 docs/source/release/version0.8.rst create mode 100644 docs/source/rlm.rst create mode 100644 docs/source/rlm_techn1.rst create mode 100644 docs/source/sandbox.rst create mode 100644 docs/source/statespace.rst create mode 100644 docs/source/stats.rst create mode 100644 docs/source/tools.rst create mode 100644 docs/source/tsa.rst create mode 100644 docs/source/tsastats.rst.TXT create mode 100644 docs/source/vector_ar.rst create mode 100644 docs/sphinxext/LICENSE.txt create mode 100644 docs/sphinxext/MANIFEST.in create mode 100644 docs/sphinxext/README.txt create mode 100644 docs/sphinxext/github.py create mode 100644 docs/sphinxext/ipython_console_highlighting.py create mode 100644 docs/sphinxext/ipython_directive.py create mode 100644 docs/sphinxext/numpy_ext/__init__.py create mode 100644 docs/sphinxext/numpy_ext/docscrape.py create mode 100644 docs/sphinxext/numpy_ext/docscrape_sphinx.py create mode 100644 docs/sphinxext/numpy_ext/plot_directive.py create mode 100644 docs/themes/statsmodels/indexsidebar.html create mode 100644 docs/themes/statsmodels/layout.html create mode 100644 docs/themes/statsmodels/page.html create mode 100644 docs/themes/statsmodels/relations.html create mode 100644 docs/themes/statsmodels/sidelinks.html create mode 100644 docs/themes/statsmodels/static/nature.css_t create mode 100644 docs/themes/statsmodels/static/statsmodels_hybi_banner.png create mode 100644 docs/themes/statsmodels/theme.conf create mode 100644 examples/incomplete/arima.py create mode 100644 examples/incomplete/arma2.py create mode 100644 examples/incomplete/dates.py create mode 100644 examples/incomplete/glsar.py create mode 100644 examples/incomplete/ols_table.py create mode 100644 examples/incomplete/ols_tftest.py create mode 100644 examples/incomplete/wls_extended.py create mode 100644 examples/notebooks/categorical_interaction_plot.ipynb create mode 100644 examples/notebooks/chi2_fitting.ipynb create mode 100644 examples/notebooks/contrasts.ipynb create mode 100644 examples/notebooks/discrete_choice_example.ipynb create mode 100644 examples/notebooks/discrete_choice_overview.ipynb create mode 100644 examples/notebooks/formulas.ipynb create mode 100644 examples/notebooks/generic_mle.ipynb create mode 100644 examples/notebooks/glm.ipynb create mode 100644 examples/notebooks/glm_formula.ipynb create mode 100644 examples/notebooks/gls.ipynb create mode 100644 examples/notebooks/interactions_anova.ipynb create mode 100644 examples/notebooks/kernel_density.ipynb create mode 100644 examples/notebooks/markov_autoregression.ipynb create mode 100644 examples/notebooks/markov_regression.ipynb create mode 100644 examples/notebooks/mixed_lm_example.ipynb create mode 100644 examples/notebooks/ols.ipynb create mode 100644 examples/notebooks/pca_fertility_factors.ipynb create mode 100644 examples/notebooks/plots_boxplots.ipynb create mode 100644 examples/notebooks/predict.ipynb create mode 100644 examples/notebooks/quantile_regression.ipynb create mode 100644 examples/notebooks/recursive_ls.ipynb create mode 100644 examples/notebooks/regression_diagnostics.ipynb create mode 100644 examples/notebooks/regression_plots.ipynb create mode 100644 examples/notebooks/robust_models_0.ipynb create mode 100644 examples/notebooks/robust_models_1.ipynb create mode 100644 examples/notebooks/star_diagram.png create mode 100644 examples/notebooks/statespace_arma_0.ipynb create mode 100644 examples/notebooks/statespace_cycles.ipynb create mode 100644 examples/notebooks/statespace_dfm_coincident.ipynb create mode 100644 examples/notebooks/statespace_local_linear_trend.ipynb create mode 100644 examples/notebooks/statespace_sarimax_internet.ipynb create mode 100644 examples/notebooks/statespace_sarimax_stata.ipynb create mode 100644 examples/notebooks/statespace_structural_harvey_jaeger.ipynb create mode 100644 examples/notebooks/statespace_varmax.ipynb create mode 100644 examples/notebooks/tsa_arma_0.ipynb create mode 100644 examples/notebooks/tsa_arma_1.ipynb create mode 100644 examples/notebooks/tsa_dates.ipynb create mode 100644 examples/notebooks/tsa_filters.ipynb create mode 100644 examples/notebooks/wls.ipynb create mode 100644 examples/python/categorical_interaction_plot.py create mode 100644 examples/python/contrasts.py create mode 100644 examples/python/discrete_choice_example.py create mode 100644 examples/python/discrete_choice_overview.py create mode 100644 examples/python/formulas.py create mode 100644 examples/python/generic_mle.py create mode 100644 examples/python/glm.py create mode 100644 examples/python/glm_formula.py create mode 100644 examples/python/gls.py create mode 100644 examples/python/interactions_anova.py create mode 100644 examples/python/kernel_density.py create mode 100644 examples/python/ols.py create mode 100644 examples/python/predict.py create mode 100644 examples/python/quantile_regression.py create mode 100644 examples/python/regression_diagnostics.py create mode 100644 examples/python/regression_plots.py create mode 100644 examples/python/robust_models_0.py create mode 100644 examples/python/robust_models_1.py create mode 100644 examples/python/tsa_arma_0.py create mode 100644 examples/python/tsa_arma_1.py create mode 100644 examples/python/tsa_dates.py create mode 100644 examples/python/tsa_filters.py create mode 100644 examples/python/wls.py create mode 100644 examples/run_all.py create mode 100644 ez_setup.py create mode 100644 setup.py create mode 100644 statsmodels/LICENSE.txt create mode 100644 statsmodels/TODO.txt create mode 100644 statsmodels/__init__.py create mode 100644 statsmodels/api.py create mode 100644 statsmodels/base/__init__.py create mode 100644 statsmodels/base/_constraints.py create mode 100644 statsmodels/base/_penalties.py create mode 100644 statsmodels/base/covtype.py create mode 100644 statsmodels/base/data.py create mode 100644 statsmodels/base/elastic_net.py create mode 100644 statsmodels/base/l1_cvxopt.py create mode 100644 statsmodels/base/l1_slsqp.py create mode 100644 statsmodels/base/l1_solvers_common.py create mode 100644 statsmodels/base/model.py create mode 100644 statsmodels/base/optimizer.py create mode 100644 statsmodels/base/tests/__init__.py create mode 100644 statsmodels/base/tests/test_data.py create mode 100644 statsmodels/base/tests/test_generic_methods.py create mode 100644 statsmodels/base/tests/test_optimize.py create mode 100644 statsmodels/base/tests/test_shrink_pickle.py create mode 100644 statsmodels/base/wrapper.py create mode 100644 statsmodels/compat/__init__.py create mode 100644 statsmodels/compat/collections.py create mode 100644 statsmodels/compat/counter.py create mode 100644 statsmodels/compat/numpy.py create mode 100644 statsmodels/compat/ordereddict.py create mode 100644 statsmodels/compat/pandas.py create mode 100644 statsmodels/compat/python.py create mode 100644 statsmodels/compat/scipy.py create mode 100644 statsmodels/compat/tests/__init__.py create mode 100644 statsmodels/compat/tests/test_collections.py create mode 100644 statsmodels/compat/tests/test_itercompat.py create mode 100644 statsmodels/compat/tests/test_scipy_compat.py create mode 100644 statsmodels/datasets/COPYING create mode 100644 statsmodels/datasets/README.txt create mode 100644 statsmodels/datasets/__init__.py create mode 100644 statsmodels/datasets/anes96/__init__.py create mode 100644 statsmodels/datasets/anes96/anes96.csv create mode 100644 statsmodels/datasets/anes96/data.py create mode 100644 statsmodels/datasets/anes96/src/anes96.csv create mode 100644 statsmodels/datasets/cancer/__init__.py create mode 100755 statsmodels/datasets/cancer/cancer.csv create mode 100755 statsmodels/datasets/cancer/data.py create mode 100644 statsmodels/datasets/ccard/R_wls.s create mode 100644 statsmodels/datasets/ccard/__init__.py create mode 100644 statsmodels/datasets/ccard/ccard.csv create mode 100644 statsmodels/datasets/ccard/data.py create mode 100644 statsmodels/datasets/ccard/src/ccard.csv create mode 100644 statsmodels/datasets/ccard/src/names.txt create mode 100644 statsmodels/datasets/china_smoking/__init__.py create mode 100644 statsmodels/datasets/china_smoking/china_smoking.csv create mode 100644 statsmodels/datasets/china_smoking/data.py create mode 100644 statsmodels/datasets/co2/__init__.py create mode 100644 statsmodels/datasets/co2/co2.csv create mode 100644 statsmodels/datasets/co2/data.py create mode 100644 statsmodels/datasets/co2/src/maunaloa_c.dat create mode 100644 statsmodels/datasets/committee/R_committee.s create mode 100644 statsmodels/datasets/committee/__init__.py create mode 100644 statsmodels/datasets/committee/committee.csv create mode 100644 statsmodels/datasets/committee/data.py create mode 100644 statsmodels/datasets/committee/src/committee.dat create mode 100644 statsmodels/datasets/copper/__init__.py create mode 100644 statsmodels/datasets/copper/copper.csv create mode 100644 statsmodels/datasets/copper/data.py create mode 100644 statsmodels/datasets/copper/src/copper.dat create mode 100644 statsmodels/datasets/cpunish/R_cpunish.s create mode 100644 statsmodels/datasets/cpunish/__init__.py create mode 100644 statsmodels/datasets/cpunish/cpunish.csv create mode 100644 statsmodels/datasets/cpunish/data.py create mode 100644 statsmodels/datasets/cpunish/src/cpunish.dat create mode 100644 statsmodels/datasets/elnino/__init__.py create mode 100644 statsmodels/datasets/elnino/data.py create mode 100644 statsmodels/datasets/elnino/elnino.csv create mode 100644 statsmodels/datasets/elnino/src/elnino.dat create mode 100644 statsmodels/datasets/engel/__init__.py create mode 100644 statsmodels/datasets/engel/data.py create mode 100644 statsmodels/datasets/engel/engel.csv create mode 100644 statsmodels/datasets/fair/__init__.py create mode 100644 statsmodels/datasets/fair/data.py create mode 100644 statsmodels/datasets/fair/fair.csv create mode 100644 statsmodels/datasets/fair/src/1978ADAT.asc create mode 100644 statsmodels/datasets/fertility/__init__.py create mode 100644 statsmodels/datasets/fertility/data.py create mode 100644 statsmodels/datasets/fertility/fertility.csv create mode 100644 statsmodels/datasets/grunfeld/__init__.py create mode 100644 statsmodels/datasets/grunfeld/data.py create mode 100644 statsmodels/datasets/grunfeld/grunfeld.csv create mode 100644 statsmodels/datasets/grunfeld/src/grunfeld.csv create mode 100644 statsmodels/datasets/heart/__init__.py create mode 100644 statsmodels/datasets/heart/data.py create mode 100644 statsmodels/datasets/heart/heart.csv create mode 100644 statsmodels/datasets/longley/R_gls.s create mode 100644 statsmodels/datasets/longley/R_lm.s create mode 100644 statsmodels/datasets/longley/__init__.py create mode 100644 statsmodels/datasets/longley/data.py create mode 100644 statsmodels/datasets/longley/longley.csv create mode 100644 statsmodels/datasets/macrodata/__init__.py create mode 100644 statsmodels/datasets/macrodata/data.py create mode 100644 statsmodels/datasets/macrodata/macrodata.csv create mode 100644 statsmodels/datasets/macrodata/macrodata.dta create mode 100644 statsmodels/datasets/macrodata/src/macrodata.xls/macrodata.xls create mode 100644 statsmodels/datasets/macrodata/src/unemp.csv create mode 100644 statsmodels/datasets/modechoice/__init__.py create mode 100644 statsmodels/datasets/modechoice/data.py create mode 100644 statsmodels/datasets/modechoice/modechoice.csv create mode 100644 statsmodels/datasets/modechoice/src/TableF18-2.csv create mode 100644 statsmodels/datasets/nile/__init__.py create mode 100644 statsmodels/datasets/nile/data.py create mode 100644 statsmodels/datasets/nile/nile.csv create mode 100644 statsmodels/datasets/randhie/__init__.py create mode 100644 statsmodels/datasets/randhie/data.py create mode 100644 statsmodels/datasets/randhie/randhie.csv create mode 100644 statsmodels/datasets/randhie/src/randdesc.txt create mode 100644 statsmodels/datasets/randhie/src/randhie.csv create mode 100644 statsmodels/datasets/scotland/R_scotvote.s create mode 100644 statsmodels/datasets/scotland/__init__.py create mode 100644 statsmodels/datasets/scotland/data.py create mode 100644 statsmodels/datasets/scotland/scotvote.csv create mode 100644 statsmodels/datasets/scotland/src/scotland.readme create mode 100644 statsmodels/datasets/scotland/src/scotland_births.html create mode 100644 statsmodels/datasets/scotland/src/scotland_changes.html create mode 100644 statsmodels/datasets/scotland/src/scotland_devolution.html create mode 100644 statsmodels/datasets/scotland/src/scotland_econ_summary.html create mode 100644 statsmodels/datasets/scotland/src/scotland_economics.html create mode 100644 statsmodels/datasets/scotland/src/scotland_education.html create mode 100644 statsmodels/datasets/scotland/src/scotland_housing.html create mode 100644 statsmodels/datasets/scotland/src/scotland_population.csv create mode 100644 statsmodels/datasets/scotland/src/scotland_population.html create mode 100644 statsmodels/datasets/scotland/src/scotvote.csv create mode 100644 statsmodels/datasets/scotland/src/scotvote.dat create mode 100644 statsmodels/datasets/spector/__init__.py create mode 100644 statsmodels/datasets/spector/data.py create mode 100644 statsmodels/datasets/spector/spector.csv create mode 100644 statsmodels/datasets/stackloss/R_stackloss.s create mode 100644 statsmodels/datasets/stackloss/__init__.py create mode 100644 statsmodels/datasets/stackloss/data.py create mode 100644 statsmodels/datasets/stackloss/stackloss.csv create mode 100644 statsmodels/datasets/star98/__init__.py create mode 100644 statsmodels/datasets/star98/data.py create mode 100644 statsmodels/datasets/star98/r_glm.s create mode 100644 statsmodels/datasets/star98/src/star.bi.dat create mode 100644 statsmodels/datasets/star98/src/star98.dat create mode 100644 statsmodels/datasets/star98/src/star98.names create mode 100644 statsmodels/datasets/star98/star98.csv create mode 100644 statsmodels/datasets/statecrime/__init__.py create mode 100644 statsmodels/datasets/statecrime/data.py create mode 100644 statsmodels/datasets/statecrime/statecrime.csv create mode 100644 statsmodels/datasets/strikes/__init__.py create mode 100644 statsmodels/datasets/strikes/data.py create mode 100644 statsmodels/datasets/strikes/strikes.csv create mode 100644 statsmodels/datasets/sunspots/R_sunspots.s create mode 100644 statsmodels/datasets/sunspots/__init__.py create mode 100644 statsmodels/datasets/sunspots/arima_mod.R create mode 100644 statsmodels/datasets/sunspots/data.py create mode 100644 statsmodels/datasets/sunspots/src/sunspots_monthly.dat create mode 100644 statsmodels/datasets/sunspots/src/sunspots_yearly.dat create mode 100644 statsmodels/datasets/sunspots/sunspots.csv create mode 100644 statsmodels/datasets/template_data.py create mode 100644 statsmodels/datasets/tests/__init__.py create mode 100644 statsmodels/datasets/tests/raw.github.com,vincentarelbundock,Rdatasets,master,csv,car,Duncan.csv.zip create mode 100644 statsmodels/datasets/tests/raw.github.com,vincentarelbundock,Rdatasets,master,datasets.csv.zip create mode 100644 statsmodels/datasets/tests/raw.github.com,vincentarelbundock,Rdatasets,master,doc,car,rst,Duncan.rst.zip create mode 100644 statsmodels/datasets/tests/test_data.py create mode 100644 statsmodels/datasets/tests/test_utils.py create mode 100644 statsmodels/datasets/utils.py create mode 100644 statsmodels/discrete/__init__.py create mode 100644 statsmodels/discrete/discrete_margins.py create mode 100644 statsmodels/discrete/discrete_model.py create mode 100644 statsmodels/discrete/tests/__init__.py create mode 100644 statsmodels/discrete/tests/results/__init__.py create mode 100644 statsmodels/discrete/tests/results/mn_logit_summary.txt create mode 100644 statsmodels/discrete/tests/results/mnlogit_resid.csv create mode 100644 statsmodels/discrete/tests/results/nbinom_resids.csv create mode 100644 statsmodels/discrete/tests/results/phat_mnlogit.csv create mode 100644 statsmodels/discrete/tests/results/poisson_resid.csv create mode 100644 statsmodels/discrete/tests/results/predict_prob_poisson.csv create mode 100644 statsmodels/discrete/tests/results/results_count_robust_cluster.py create mode 100644 statsmodels/discrete/tests/results/results_discrete.py create mode 100644 statsmodels/discrete/tests/results/results_glm_logit_constrained.py create mode 100644 statsmodels/discrete/tests/results/results_poisson_constrained.py create mode 100644 statsmodels/discrete/tests/results/ships.csv create mode 100644 statsmodels/discrete/tests/results/yhat_mnlogit.csv create mode 100644 statsmodels/discrete/tests/results/yhat_poisson.csv create mode 100644 statsmodels/discrete/tests/test_constrained.py create mode 100644 statsmodels/discrete/tests/test_discrete.py create mode 100644 statsmodels/discrete/tests/test_sandwich_cov.py create mode 100644 statsmodels/distributions/__init__.py create mode 100644 statsmodels/distributions/edgeworth.py create mode 100644 statsmodels/distributions/empirical_distribution.py create mode 100644 statsmodels/distributions/mixture_rvs.py create mode 100644 statsmodels/distributions/tests/__init__.py create mode 100644 statsmodels/distributions/tests/test_ecdf.py create mode 100644 statsmodels/distributions/tests/test_edgeworth.py create mode 100644 statsmodels/distributions/tests/test_mixture.py create mode 100644 statsmodels/duration/__init__.py create mode 100644 statsmodels/duration/api.py create mode 100644 statsmodels/duration/hazard_regression.py create mode 100644 statsmodels/duration/survfunc.py create mode 100644 statsmodels/duration/tests/__init__.py create mode 100644 statsmodels/duration/tests/phreg_gentests.py create mode 100644 statsmodels/duration/tests/results/__init__.py create mode 100644 statsmodels/duration/tests/results/bmt.csv create mode 100644 statsmodels/duration/tests/results/bmt_results.csv create mode 100644 statsmodels/duration/tests/results/survival_data_1000_10.csv create mode 100644 statsmodels/duration/tests/results/survival_data_100_5.csv create mode 100644 statsmodels/duration/tests/results/survival_data_20_1.csv create mode 100644 statsmodels/duration/tests/results/survival_data_50_1.csv create mode 100644 statsmodels/duration/tests/results/survival_data_50_2.csv create mode 100644 statsmodels/duration/tests/survival.R create mode 100644 statsmodels/duration/tests/survival_enet_r_results.py create mode 100644 statsmodels/duration/tests/survival_r_results.py create mode 100644 statsmodels/duration/tests/survival_regularized.R create mode 100644 statsmodels/duration/tests/test_phreg.py create mode 100644 statsmodels/duration/tests/test_survfunc.py create mode 100644 statsmodels/emplike/__init__.py create mode 100644 statsmodels/emplike/aft_el.py create mode 100644 statsmodels/emplike/api.py create mode 100644 statsmodels/emplike/descriptive.py create mode 100644 statsmodels/emplike/elanova.py create mode 100644 statsmodels/emplike/elregress.py create mode 100644 statsmodels/emplike/heartdata.csv create mode 100644 statsmodels/emplike/koul_and_mc.py create mode 100644 statsmodels/emplike/originregress.py create mode 100644 statsmodels/emplike/tests/__init__.py create mode 100644 statsmodels/emplike/tests/results/__init__.py create mode 100644 statsmodels/emplike/tests/results/el_results.py create mode 100644 statsmodels/emplike/tests/test_aft.py create mode 100644 statsmodels/emplike/tests/test_anova.py create mode 100644 statsmodels/emplike/tests/test_descriptive.py create mode 100644 statsmodels/emplike/tests/test_origin.py create mode 100644 statsmodels/emplike/tests/test_regression.py create mode 100644 statsmodels/examples/es_misc_poisson2.py create mode 100644 statsmodels/examples/ex_arch_canada.py create mode 100644 statsmodels/examples/ex_emplike_1.py create mode 100644 statsmodels/examples/ex_emplike_2.py create mode 100644 statsmodels/examples/ex_emplike_3.py create mode 100644 statsmodels/examples/ex_feasible_gls_het.py create mode 100644 statsmodels/examples/ex_feasible_gls_het_0.py create mode 100644 statsmodels/examples/ex_generic_mle.py create mode 100644 statsmodels/examples/ex_generic_mle_t.py create mode 100644 statsmodels/examples/ex_generic_mle_tdist.py create mode 100644 statsmodels/examples/ex_grangercausality.py create mode 100644 statsmodels/examples/ex_inter_rater.py create mode 100644 statsmodels/examples/ex_kde_confint.py create mode 100644 statsmodels/examples/ex_kde_normalreference.py create mode 100644 statsmodels/examples/ex_kernel_regression.py create mode 100644 statsmodels/examples/ex_kernel_regression2.py create mode 100644 statsmodels/examples/ex_kernel_regression3.py create mode 100644 statsmodels/examples/ex_kernel_regression_censored2.py create mode 100644 statsmodels/examples/ex_kernel_regression_dgp.py create mode 100644 statsmodels/examples/ex_kernel_regression_sigtest.py create mode 100644 statsmodels/examples/ex_kernel_semilinear_dgp.py create mode 100644 statsmodels/examples/ex_kernel_singleindex_dgp.py create mode 100644 statsmodels/examples/ex_kernel_test_functional.py create mode 100644 statsmodels/examples/ex_kernel_test_functional_li_wang.py create mode 100644 statsmodels/examples/ex_lowess.py create mode 100644 statsmodels/examples/ex_misc_tarma.py create mode 100644 statsmodels/examples/ex_misc_tmodel.py create mode 100644 statsmodels/examples/ex_multivar_kde.py create mode 100644 statsmodels/examples/ex_nearest_corr.py create mode 100644 statsmodels/examples/ex_ols_robustcov.py create mode 100644 statsmodels/examples/ex_outliers_influence.py create mode 100644 statsmodels/examples/ex_pairwise.py create mode 100644 statsmodels/examples/ex_pandas.py create mode 100644 statsmodels/examples/ex_pareto_plot.py create mode 100644 statsmodels/examples/ex_predict_results.py create mode 100644 statsmodels/examples/ex_proportion.py create mode 100644 statsmodels/examples/ex_regressionplots.py create mode 100644 statsmodels/examples/ex_rootfinding.py create mode 100644 statsmodels/examples/ex_sandwich.py create mode 100644 statsmodels/examples/ex_sandwich2.py create mode 100644 statsmodels/examples/ex_sandwich3.py create mode 100644 statsmodels/examples/ex_scatter_ellipse.py create mode 100644 statsmodels/examples/ex_shrink_pickle.py create mode 100644 statsmodels/examples/ex_univar_kde.py create mode 100644 statsmodels/examples/ex_wald_anova.py create mode 100644 statsmodels/examples/example_discrete_mnl.py create mode 100644 statsmodels/examples/example_enhanced_boxplots.py create mode 100644 statsmodels/examples/example_functional_plots.py create mode 100644 statsmodels/examples/example_kde.py create mode 100644 statsmodels/examples/example_ols_minimal_comp.py create mode 100644 statsmodels/examples/example_rpy.py create mode 100644 statsmodels/examples/l1_demo/demo.py create mode 100644 statsmodels/examples/l1_demo/short_demo.py create mode 100644 statsmodels/examples/l1_demo/sklearn_compare.py create mode 100644 statsmodels/examples/run_all.py create mode 100644 statsmodels/examples/t_est_rlm.py create mode 100644 statsmodels/examples/try_2regress.py create mode 100644 statsmodels/examples/try_fit_constrained.py create mode 100644 statsmodels/examples/try_gee.py create mode 100644 statsmodels/examples/try_gof_chisquare.py create mode 100644 statsmodels/examples/try_polytrend.py create mode 100644 statsmodels/examples/try_power.py create mode 100644 statsmodels/examples/try_power2.py create mode 100644 statsmodels/examples/try_tukey_hsd.py create mode 100644 statsmodels/examples/tsa/ar1cholesky.py create mode 100644 statsmodels/examples/tsa/arma_plots.py create mode 100644 statsmodels/examples/tsa/compare_arma.py create mode 100644 statsmodels/examples/tsa/ex_arma.py create mode 100644 statsmodels/examples/tsa/ex_arma_all.py create mode 100644 statsmodels/examples/tsa/ex_coint.py create mode 100644 statsmodels/examples/tsa/ex_var.py create mode 100644 statsmodels/examples/tsa/ex_var_reorder.py create mode 100644 statsmodels/examples/tsa/lagpolynomial.py create mode 100644 statsmodels/examples/tsa/try_ar.py create mode 100644 statsmodels/examples/tut_ols_ancova.py create mode 100644 statsmodels/examples/tut_ols_rlm_short.py create mode 100644 statsmodels/formula/__init__.py create mode 100644 statsmodels/formula/api.py create mode 100644 statsmodels/formula/formulatools.py create mode 100644 statsmodels/formula/tests/__init__.py create mode 100644 statsmodels/formula/tests/test_formula.py create mode 100644 statsmodels/genmod/__init__.py create mode 100644 statsmodels/genmod/_prediction.py create mode 100644 statsmodels/genmod/_tweedie_compound_poisson.py create mode 100644 statsmodels/genmod/api.py create mode 100644 statsmodels/genmod/cov_struct.py create mode 100644 statsmodels/genmod/families/__init__.py create mode 100644 statsmodels/genmod/families/family.py create mode 100644 statsmodels/genmod/families/links.py create mode 100644 statsmodels/genmod/families/tests/__init__.py create mode 100644 statsmodels/genmod/families/tests/test_link.py create mode 100644 statsmodels/genmod/families/varfuncs.py create mode 100644 statsmodels/genmod/generalized_estimating_equations.py create mode 100644 statsmodels/genmod/generalized_linear_model.py create mode 100644 statsmodels/genmod/tests/__init__.py create mode 100644 statsmodels/genmod/tests/gee_categorical_simulation_check.py create mode 100644 statsmodels/genmod/tests/gee_categorical_simulation_check.txt create mode 100644 statsmodels/genmod/tests/gee_gaussian_simulation_check.py create mode 100644 statsmodels/genmod/tests/gee_gaussian_simulation_check.txt create mode 100644 statsmodels/genmod/tests/gee_poisson_simulation_check.py create mode 100644 statsmodels/genmod/tests/gee_poisson_simulation_check.txt create mode 100644 statsmodels/genmod/tests/gee_simulation_check.py create mode 100644 statsmodels/genmod/tests/glmnet_r_results.py create mode 100644 statsmodels/genmod/tests/results/__init__.py create mode 100644 statsmodels/genmod/tests/results/elastic_net.R create mode 100644 statsmodels/genmod/tests/results/elastic_net_generate_tests.py create mode 100644 statsmodels/genmod/tests/results/enet_binomial.csv create mode 100644 statsmodels/genmod/tests/results/enet_poisson.csv create mode 100644 statsmodels/genmod/tests/results/epil.csv create mode 100644 statsmodels/genmod/tests/results/gee_generate_tests.py create mode 100644 statsmodels/genmod/tests/results/gee_linear_1.csv create mode 100644 statsmodels/genmod/tests/results/gee_logistic_1.csv create mode 100644 statsmodels/genmod/tests/results/gee_nested_linear_1.csv create mode 100644 statsmodels/genmod/tests/results/gee_nominal_1.csv create mode 100644 statsmodels/genmod/tests/results/gee_ordinal_1.csv create mode 100644 statsmodels/genmod/tests/results/gee_poisson_1.csv create mode 100644 statsmodels/genmod/tests/results/glm_test_resids.py create mode 100644 statsmodels/genmod/tests/results/igaussident_resids.csv create mode 100644 statsmodels/genmod/tests/results/inv_gaussian.csv create mode 100644 statsmodels/genmod/tests/results/iris.csv create mode 100644 statsmodels/genmod/tests/results/medparlogresids.csv create mode 100644 statsmodels/genmod/tests/results/poisson_weights_v2.do create mode 100644 statsmodels/genmod/tests/results/results_glm.py create mode 100644 statsmodels/genmod/tests/results/results_glm_poisson_weights.py create mode 100644 statsmodels/genmod/tests/results/stata_cancer_glm.csv create mode 100644 statsmodels/genmod/tests/results/stata_lbw_glm.csv create mode 100644 statsmodels/genmod/tests/results/stata_medpar1_glm.csv create mode 100644 statsmodels/genmod/tests/test_gee.py create mode 100644 statsmodels/genmod/tests/test_glm.py create mode 100644 statsmodels/genmod/tests/test_glm_weights.py create mode 100644 statsmodels/graphics/__init__.py create mode 100644 statsmodels/graphics/_regressionplots_doc.py create mode 100644 statsmodels/graphics/api.py create mode 100644 statsmodels/graphics/boxplots.py create mode 100644 statsmodels/graphics/correlation.py create mode 100644 statsmodels/graphics/dotplots.py create mode 100644 statsmodels/graphics/factorplots.py create mode 100644 statsmodels/graphics/functional.py create mode 100644 statsmodels/graphics/gofplots.py create mode 100644 statsmodels/graphics/mosaicplot.py create mode 100644 statsmodels/graphics/plot_grids.py create mode 100644 statsmodels/graphics/plottools.py create mode 100644 statsmodels/graphics/regressionplots.py create mode 100644 statsmodels/graphics/tests/__init__.py create mode 100644 statsmodels/graphics/tests/test_boxplots.py create mode 100644 statsmodels/graphics/tests/test_correlation.py create mode 100644 statsmodels/graphics/tests/test_dotplot.py create mode 100644 statsmodels/graphics/tests/test_factorplots.py create mode 100644 statsmodels/graphics/tests/test_functional.py create mode 100644 statsmodels/graphics/tests/test_gofplots.py create mode 100644 statsmodels/graphics/tests/test_mosaicplot.py create mode 100644 statsmodels/graphics/tests/test_regressionplots.py create mode 100644 statsmodels/graphics/tests/test_tsaplots.py create mode 100644 statsmodels/graphics/tsaplots.py create mode 100644 statsmodels/graphics/tukeyplot.py create mode 100644 statsmodels/graphics/utils.py create mode 100644 statsmodels/imputation/__init__.py create mode 100644 statsmodels/imputation/mice.py create mode 100644 statsmodels/imputation/ros.py create mode 100644 statsmodels/imputation/tests/__init__.py create mode 100644 statsmodels/imputation/tests/test_mice.py create mode 100644 statsmodels/imputation/tests/test_ros.py create mode 100644 statsmodels/info.py create mode 100644 statsmodels/interface/__init__.py create mode 100644 statsmodels/iolib/__init__.py create mode 100644 statsmodels/iolib/api.py create mode 100644 statsmodels/iolib/foreign.py create mode 100644 statsmodels/iolib/notes_table_update.txt create mode 100644 statsmodels/iolib/openfile.py create mode 100644 statsmodels/iolib/smpickle.py create mode 100644 statsmodels/iolib/stata_summary_examples.py create mode 100644 statsmodels/iolib/summary.py create mode 100644 statsmodels/iolib/summary2.py create mode 100644 statsmodels/iolib/table.py create mode 100644 statsmodels/iolib/tableformatting.py create mode 100644 statsmodels/iolib/tests/__init__.py create mode 100644 statsmodels/iolib/tests/gen_dates.do create mode 100644 statsmodels/iolib/tests/results/__init__.py create mode 100644 statsmodels/iolib/tests/results/data_missing.dta create mode 100644 statsmodels/iolib/tests/results/macrodata.py create mode 100644 statsmodels/iolib/tests/results/time_series_examples.dta create mode 100644 statsmodels/iolib/tests/stata_dates.csv create mode 100644 statsmodels/iolib/tests/test_data.csv create mode 100644 statsmodels/iolib/tests/test_foreign.py create mode 100644 statsmodels/iolib/tests/test_pickle.py create mode 100644 statsmodels/iolib/tests/test_summary.py create mode 100644 statsmodels/iolib/tests/test_summary_old.py create mode 100644 statsmodels/iolib/tests/test_table.py create mode 100644 statsmodels/iolib/tests/test_table_econpy.py create mode 100644 statsmodels/miscmodels/__init__.py create mode 100644 statsmodels/miscmodels/api.py create mode 100644 statsmodels/miscmodels/count.py create mode 100644 statsmodels/miscmodels/nonlinls.py create mode 100644 statsmodels/miscmodels/tests/__init__.py create mode 100644 statsmodels/miscmodels/tests/results_tmodel.py create mode 100644 statsmodels/miscmodels/tests/test_generic_mle.py create mode 100644 statsmodels/miscmodels/tests/test_poisson.py create mode 100644 statsmodels/miscmodels/tests/test_tarma.py create mode 100644 statsmodels/miscmodels/tests/test_tmodel.py create mode 100644 statsmodels/miscmodels/tmodel.py create mode 100644 statsmodels/miscmodels/try_mlecov.py create mode 100644 statsmodels/multivariate/__init__.py create mode 100644 statsmodels/multivariate/pca.py create mode 100644 statsmodels/multivariate/tests/__init__.py create mode 100644 statsmodels/multivariate/tests/results/__init__.py create mode 100644 statsmodels/multivariate/tests/results/datamlw.py create mode 100644 statsmodels/multivariate/tests/test_pca.py create mode 100644 statsmodels/nonparametric/__init__.py create mode 100644 statsmodels/nonparametric/_kernel_base.py create mode 100644 statsmodels/nonparametric/_smoothers_lowess.pyx create mode 100644 statsmodels/nonparametric/api.py create mode 100644 statsmodels/nonparametric/bandwidths.py create mode 100644 statsmodels/nonparametric/kde.py create mode 100644 statsmodels/nonparametric/kdetools.py create mode 100644 statsmodels/nonparametric/kernel_density.py create mode 100644 statsmodels/nonparametric/kernel_regression.py create mode 100644 statsmodels/nonparametric/kernels.py create mode 100644 statsmodels/nonparametric/linbin.pyx create mode 100644 statsmodels/nonparametric/smoothers_lowess.py create mode 100644 statsmodels/nonparametric/smoothers_lowess_old.py create mode 100644 statsmodels/nonparametric/tests/Xi_test_data.csv create mode 100644 statsmodels/nonparametric/tests/__init__.py create mode 100644 statsmodels/nonparametric/tests/results/__init__.py create mode 100644 statsmodels/nonparametric/tests/results/results_kcde.csv create mode 100644 statsmodels/nonparametric/tests/results/results_kde.csv create mode 100644 statsmodels/nonparametric/tests/results/results_kde_fft.csv create mode 100644 statsmodels/nonparametric/tests/results/results_kde_univ_weights.csv create mode 100644 statsmodels/nonparametric/tests/results/results_kde_weights.csv create mode 100644 statsmodels/nonparametric/tests/results/results_kernel_regression.csv create mode 100644 statsmodels/nonparametric/tests/results/test_lowess_delta.csv create mode 100644 statsmodels/nonparametric/tests/results/test_lowess_frac.csv create mode 100644 statsmodels/nonparametric/tests/results/test_lowess_iter.csv create mode 100644 statsmodels/nonparametric/tests/results/test_lowess_r_outputs.R create mode 100644 statsmodels/nonparametric/tests/results/test_lowess_simple.csv create mode 100644 statsmodels/nonparametric/tests/test_bandwidths.py create mode 100644 statsmodels/nonparametric/tests/test_kde.py create mode 100644 statsmodels/nonparametric/tests/test_kernel_density.py create mode 100644 statsmodels/nonparametric/tests/test_kernel_regression.py create mode 100644 statsmodels/nonparametric/tests/test_kernels.py create mode 100644 statsmodels/nonparametric/tests/test_lowess.py create mode 100644 statsmodels/regression/__init__.py create mode 100644 statsmodels/regression/_prediction.py create mode 100644 statsmodels/regression/feasible_gls.py create mode 100644 statsmodels/regression/linear_model.py create mode 100644 statsmodels/regression/mixed_linear_model.py create mode 100644 statsmodels/regression/quantile_regression.py create mode 100644 statsmodels/regression/recursive_ls.py create mode 100644 statsmodels/regression/tests/__init__.py create mode 100644 statsmodels/regression/tests/generate_lasso.py create mode 100644 statsmodels/regression/tests/generate_lme.py create mode 100644 statsmodels/regression/tests/glmnet_r_results.py create mode 100644 statsmodels/regression/tests/lasso_r_results.R create mode 100644 statsmodels/regression/tests/lme_examples.R create mode 100644 statsmodels/regression/tests/lme_r_results.py create mode 100644 statsmodels/regression/tests/lme_results.R create mode 100644 statsmodels/regression/tests/results/__init__.py create mode 100644 statsmodels/regression/tests/results/lasso_data.csv create mode 100644 statsmodels/regression/tests/results/leverage_influence_ols_nostars.txt create mode 100644 statsmodels/regression/tests/results/lme00.csv create mode 100644 statsmodels/regression/tests/results/lme01.csv create mode 100644 statsmodels/regression/tests/results/lme02.csv create mode 100644 statsmodels/regression/tests/results/lme03.csv create mode 100644 statsmodels/regression/tests/results/lme04.csv create mode 100644 statsmodels/regression/tests/results/lme05.csv create mode 100644 statsmodels/regression/tests/results/lme06.csv create mode 100644 statsmodels/regression/tests/results/lme07.csv create mode 100644 statsmodels/regression/tests/results/lme08.csv create mode 100644 statsmodels/regression/tests/results/lme09.csv create mode 100644 statsmodels/regression/tests/results/lme10.csv create mode 100644 statsmodels/regression/tests/results/lme11.csv create mode 100644 statsmodels/regression/tests/results/macro_gr_corc_stata.py create mode 100644 statsmodels/regression/tests/results/pastes.csv create mode 100644 statsmodels/regression/tests/results/results_grunfeld_ols_robust_cluster.py create mode 100644 statsmodels/regression/tests/results/results_macro_ols_robust.py create mode 100644 statsmodels/regression/tests/results/results_regression.py create mode 100644 statsmodels/regression/tests/results/results_rls_R.csv create mode 100644 statsmodels/regression/tests/results/results_rls_stata.csv create mode 100644 statsmodels/regression/tests/results/test_rls.R create mode 100644 statsmodels/regression/tests/results/test_rls.do create mode 100644 statsmodels/regression/tests/results_quantile_regression.py create mode 100644 statsmodels/regression/tests/test_cov.py create mode 100644 statsmodels/regression/tests/test_glsar_gretl.py create mode 100644 statsmodels/regression/tests/test_glsar_stata.py create mode 100644 statsmodels/regression/tests/test_lme.py create mode 100644 statsmodels/regression/tests/test_quantile_regression.py create mode 100644 statsmodels/regression/tests/test_recursive_ls.py create mode 100644 statsmodels/regression/tests/test_regression.py create mode 100644 statsmodels/regression/tests/test_robustcov.py create mode 100644 statsmodels/regression/tests/tests_predict.py create mode 100644 statsmodels/resampling/__init__.py create mode 100644 statsmodels/robust/__init__.py create mode 100644 statsmodels/robust/norms.py create mode 100644 statsmodels/robust/robust_linear_model.py create mode 100644 statsmodels/robust/scale.py create mode 100644 statsmodels/robust/tests/__init__.py create mode 100644 statsmodels/robust/tests/results/__init__.py create mode 100644 statsmodels/robust/tests/results/results_rlm.py create mode 100644 statsmodels/robust/tests/test_rlm.py create mode 100644 statsmodels/robust/tests/test_scale.py create mode 100644 statsmodels/sandbox/__init__.py create mode 100644 statsmodels/sandbox/archive/__init__.py create mode 100644 statsmodels/sandbox/archive/linalg_covmat.py create mode 100644 statsmodels/sandbox/archive/linalg_decomp_1.py create mode 100644 statsmodels/sandbox/archive/tsa.py create mode 100644 statsmodels/sandbox/bspline.py create mode 100644 statsmodels/sandbox/contrast_old.py create mode 100644 statsmodels/sandbox/cox.py create mode 100644 statsmodels/sandbox/datarich/__init__.py create mode 100644 statsmodels/sandbox/datarich/factormodels.py create mode 100644 statsmodels/sandbox/dataset_notes.rst create mode 100644 statsmodels/sandbox/descstats.py create mode 100644 statsmodels/sandbox/distributions/__init__.py create mode 100644 statsmodels/sandbox/distributions/copula.py create mode 100644 statsmodels/sandbox/distributions/estimators.py create mode 100644 statsmodels/sandbox/distributions/examples/__init__.py create mode 100644 statsmodels/sandbox/distributions/examples/ex_extras.py create mode 100644 statsmodels/sandbox/distributions/examples/ex_fitfr.py create mode 100644 statsmodels/sandbox/distributions/examples/ex_gof.py create mode 100644 statsmodels/sandbox/distributions/examples/ex_mvelliptical.py create mode 100644 statsmodels/sandbox/distributions/examples/ex_transf2.py create mode 100644 statsmodels/sandbox/distributions/examples/matchdist.py create mode 100644 statsmodels/sandbox/distributions/extras.py create mode 100644 statsmodels/sandbox/distributions/genpareto.py create mode 100644 statsmodels/sandbox/distributions/gof_new.py create mode 100644 statsmodels/sandbox/distributions/multivariate.py create mode 100644 statsmodels/sandbox/distributions/mv_measures.py create mode 100644 statsmodels/sandbox/distributions/mv_normal.py create mode 100644 statsmodels/sandbox/distributions/otherdist.py create mode 100644 statsmodels/sandbox/distributions/quantize.py create mode 100644 statsmodels/sandbox/distributions/sppatch.py create mode 100644 statsmodels/sandbox/distributions/tests/__init__.py create mode 100644 statsmodels/sandbox/distributions/tests/_est_fit.py create mode 100644 statsmodels/sandbox/distributions/tests/check_moments.py create mode 100644 statsmodels/sandbox/distributions/tests/distparams.py create mode 100644 statsmodels/sandbox/distributions/tests/test_extras.py create mode 100644 statsmodels/sandbox/distributions/tests/test_multivariate.py create mode 100644 statsmodels/sandbox/distributions/tests/test_norm_expan.py create mode 100644 statsmodels/sandbox/distributions/tests/testtransf.py create mode 100644 statsmodels/sandbox/distributions/transform_functions.py create mode 100644 statsmodels/sandbox/distributions/transformed.py create mode 100644 statsmodels/sandbox/distributions/try_max.py create mode 100644 statsmodels/sandbox/distributions/try_pot.py create mode 100644 statsmodels/sandbox/examples/bayesprior.py create mode 100644 statsmodels/sandbox/examples/dji_table.csv create mode 100644 statsmodels/sandbox/examples/ex_cusum.py create mode 100644 statsmodels/sandbox/examples/ex_formula.py create mode 100644 statsmodels/sandbox/examples/ex_formula_factor.py create mode 100644 statsmodels/sandbox/examples/ex_gam_results.py create mode 100644 statsmodels/sandbox/examples/ex_kaplan_meier.py create mode 100644 statsmodels/sandbox/examples/ex_mixed_lls_0.py create mode 100644 statsmodels/sandbox/examples/ex_mixed_lls_re.py create mode 100644 statsmodels/sandbox/examples/ex_mixed_lls_timecorr.py create mode 100644 statsmodels/sandbox/examples/ex_onewaygls.py create mode 100644 statsmodels/sandbox/examples/ex_random_panel.py create mode 100644 statsmodels/sandbox/examples/example_crossval.py create mode 100644 statsmodels/sandbox/examples/example_gam.py create mode 100644 statsmodels/sandbox/examples/example_gam_0.py create mode 100644 statsmodels/sandbox/examples/example_garch.py create mode 100644 statsmodels/sandbox/examples/example_maxent.py create mode 100644 statsmodels/sandbox/examples/example_mle.py create mode 100644 statsmodels/sandbox/examples/example_nbin.py create mode 100644 statsmodels/sandbox/examples/example_pca.py create mode 100644 statsmodels/sandbox/examples/example_pca_regression.py create mode 100644 statsmodels/sandbox/examples/example_sysreg.py create mode 100644 statsmodels/sandbox/examples/gspc_table.csv create mode 100644 statsmodels/sandbox/examples/run_all.py create mode 100644 statsmodels/sandbox/examples/thirdparty/ex_ratereturn.py create mode 100644 statsmodels/sandbox/examples/thirdparty/findow_0.py create mode 100644 statsmodels/sandbox/examples/thirdparty/findow_1.py create mode 100644 statsmodels/sandbox/examples/thirdparty/try_interchange.py create mode 100644 statsmodels/sandbox/examples/try_gmm_other.py create mode 100644 statsmodels/sandbox/examples/try_multiols.py create mode 100644 statsmodels/sandbox/examples/try_quantile_regression.py create mode 100644 statsmodels/sandbox/examples/try_quantile_regression1.py create mode 100644 statsmodels/sandbox/examples/try_smoothers.py create mode 100644 statsmodels/sandbox/formula.py create mode 100644 statsmodels/sandbox/gam.py create mode 100644 statsmodels/sandbox/infotheo.py create mode 100644 statsmodels/sandbox/km_class.py create mode 100644 statsmodels/sandbox/mcevaluate/__init__.py create mode 100644 statsmodels/sandbox/mcevaluate/arma.py create mode 100644 statsmodels/sandbox/mcevaluate/mcresuts_arma1.txt create mode 100644 statsmodels/sandbox/mle.py create mode 100644 statsmodels/sandbox/mlogitmath.lyx create mode 100644 statsmodels/sandbox/multilinear.py create mode 100644 statsmodels/sandbox/nonparametric/__init__.py create mode 100644 statsmodels/sandbox/nonparametric/densityorthopoly.py create mode 100644 statsmodels/sandbox/nonparametric/dgp_examples.py create mode 100644 statsmodels/sandbox/nonparametric/kde2.py create mode 100644 statsmodels/sandbox/nonparametric/kdecovclass.py create mode 100644 statsmodels/sandbox/nonparametric/kernel_extras.py create mode 100644 statsmodels/sandbox/nonparametric/kernels.py create mode 100644 statsmodels/sandbox/nonparametric/smoothers.py create mode 100644 statsmodels/sandbox/nonparametric/testdata.py create mode 100644 statsmodels/sandbox/nonparametric/tests/__init__.py create mode 100644 statsmodels/sandbox/nonparametric/tests/ex_gam_am_new.py create mode 100644 statsmodels/sandbox/nonparametric/tests/ex_gam_new.py create mode 100644 statsmodels/sandbox/nonparametric/tests/ex_smoothers.py create mode 100644 statsmodels/sandbox/nonparametric/tests/test_kernel_extras.py create mode 100644 statsmodels/sandbox/nonparametric/tests/test_smoothers.py create mode 100644 statsmodels/sandbox/nos4.mtx create mode 100644 statsmodels/sandbox/panel/__init__.py create mode 100644 statsmodels/sandbox/panel/correlation_structures.py create mode 100644 statsmodels/sandbox/panel/mixed.py create mode 100644 statsmodels/sandbox/panel/panel_short.py create mode 100644 statsmodels/sandbox/panel/panelmod.py create mode 100644 statsmodels/sandbox/panel/random_panel.py create mode 100644 statsmodels/sandbox/panel/sandwich_covariance.py create mode 100644 statsmodels/sandbox/panel/sandwich_covariance_generic.py create mode 100644 statsmodels/sandbox/panel/tests/__init__.py create mode 100644 statsmodels/sandbox/panel/tests/test_random_panel.py create mode 100644 statsmodels/sandbox/pca.py create mode 100644 statsmodels/sandbox/predict_functional.py create mode 100644 statsmodels/sandbox/regression/__init__.py create mode 100644 statsmodels/sandbox/regression/anova_nistcertified.py create mode 100644 statsmodels/sandbox/regression/ar_panel.py create mode 100644 statsmodels/sandbox/regression/data/AtmWtAg.dat create mode 100644 statsmodels/sandbox/regression/data/Longley.dat create mode 100644 statsmodels/sandbox/regression/data/SiRstv.dat create mode 100644 statsmodels/sandbox/regression/data/SmLs01.dat create mode 100644 statsmodels/sandbox/regression/data/SmLs02.dat create mode 100644 statsmodels/sandbox/regression/data/SmLs03.dat create mode 100644 statsmodels/sandbox/regression/data/SmLs04.dat create mode 100644 statsmodels/sandbox/regression/data/SmLs05.dat create mode 100644 statsmodels/sandbox/regression/data/SmLs06.dat create mode 100644 statsmodels/sandbox/regression/data/SmLs07.dat create mode 100644 statsmodels/sandbox/regression/data/SmLs08.dat create mode 100644 statsmodels/sandbox/regression/data/SmLs09.dat create mode 100644 statsmodels/sandbox/regression/example_kernridge.py create mode 100644 statsmodels/sandbox/regression/gmm.py create mode 100644 statsmodels/sandbox/regression/kernridgeregress_class.py create mode 100644 statsmodels/sandbox/regression/notes_runmnl.txt create mode 100644 statsmodels/sandbox/regression/ols_anova_original.py create mode 100644 statsmodels/sandbox/regression/onewaygls.py create mode 100644 statsmodels/sandbox/regression/penalized.py create mode 100644 statsmodels/sandbox/regression/predstd.py create mode 100644 statsmodels/sandbox/regression/runmnl.py create mode 100644 statsmodels/sandbox/regression/sympy_diff.py create mode 100644 statsmodels/sandbox/regression/tests/__init__.py create mode 100644 statsmodels/sandbox/regression/tests/griliches76.dta create mode 100644 statsmodels/sandbox/regression/tests/racd10data_with_transformed.csv create mode 100644 statsmodels/sandbox/regression/tests/results_gmm_griliches.py create mode 100644 statsmodels/sandbox/regression/tests/results_gmm_griliches_iter.py create mode 100644 statsmodels/sandbox/regression/tests/results_gmm_poisson.py create mode 100644 statsmodels/sandbox/regression/tests/results_ivreg2_griliches.py create mode 100644 statsmodels/sandbox/regression/tests/test_gmm.py create mode 100644 statsmodels/sandbox/regression/tests/test_gmm_poisson.py create mode 100644 statsmodels/sandbox/regression/tools.py create mode 100644 statsmodels/sandbox/regression/treewalkerclass.py create mode 100644 statsmodels/sandbox/regression/try_catdata.py create mode 100644 statsmodels/sandbox/regression/try_ols_anova.py create mode 100644 statsmodels/sandbox/regression/try_treewalker.py create mode 100644 statsmodels/sandbox/rls.py create mode 100644 statsmodels/sandbox/rlsdata.txt create mode 100644 statsmodels/sandbox/stats/__init__.py create mode 100644 statsmodels/sandbox/stats/contrast_tools.py create mode 100644 statsmodels/sandbox/stats/diagnostic.py create mode 100644 statsmodels/sandbox/stats/ex_newtests.py create mode 100644 statsmodels/sandbox/stats/multicomp.py create mode 100644 statsmodels/sandbox/stats/notes_fdr.txt create mode 100644 statsmodels/sandbox/stats/runs.py create mode 100644 statsmodels/sandbox/stats/stats_dhuard.py create mode 100644 statsmodels/sandbox/stats/stats_mstats_short.py create mode 100644 statsmodels/sandbox/stats/tests/__init__.py create mode 100644 statsmodels/sandbox/survival.py create mode 100644 statsmodels/sandbox/survival2.py create mode 100644 statsmodels/sandbox/sysreg.py create mode 100644 statsmodels/sandbox/tests/GreeneEx15_1.s create mode 100644 statsmodels/sandbox/tests/__init__.py create mode 100644 statsmodels/sandbox/tests/datamlw.py create mode 100644 statsmodels/sandbox/tests/macrodata.s create mode 100644 statsmodels/sandbox/tests/maketests_mlabwrap.py create mode 100644 statsmodels/sandbox/tests/model_results.py create mode 100644 statsmodels/sandbox/tests/savervs.py create mode 100644 statsmodels/sandbox/tests/sysreg.s create mode 100644 statsmodels/sandbox/tests/test_bspline.py.txt create mode 100644 statsmodels/sandbox/tests/test_formula.py create mode 100644 statsmodels/sandbox/tests/test_gam.py create mode 100644 statsmodels/sandbox/tests/test_pca.py create mode 100644 statsmodels/sandbox/tests/test_predict_functional.py create mode 100644 statsmodels/sandbox/tools/TODO.txt create mode 100644 statsmodels/sandbox/tools/__init__.py create mode 100644 statsmodels/sandbox/tools/cross_val.py create mode 100644 statsmodels/sandbox/tools/mctools.py create mode 100644 statsmodels/sandbox/tools/tools_pca.py create mode 100644 statsmodels/sandbox/tools/try_mctools.py create mode 100644 statsmodels/sandbox/tsa/__init__.py create mode 100644 statsmodels/sandbox/tsa/diffusion.py create mode 100644 statsmodels/sandbox/tsa/diffusion2.py create mode 100644 statsmodels/sandbox/tsa/example_arma.py create mode 100644 statsmodels/sandbox/tsa/examples/ex_mle_arma.py create mode 100644 statsmodels/sandbox/tsa/examples/ex_mle_garch.py create mode 100644 statsmodels/sandbox/tsa/examples/example_var.py create mode 100644 statsmodels/sandbox/tsa/examples/try_ld_nitime.py create mode 100644 statsmodels/sandbox/tsa/fftarma.py create mode 100644 statsmodels/sandbox/tsa/garch.py create mode 100644 statsmodels/sandbox/tsa/movstat.py create mode 100644 statsmodels/sandbox/tsa/notes_organize.txt create mode 100644 statsmodels/sandbox/tsa/try_arma_more.py create mode 100644 statsmodels/sandbox/tsa/try_fi.py create mode 100644 statsmodels/sandbox/tsa/try_var_convolve.py create mode 100644 statsmodels/sandbox/tsa/varma.py create mode 100644 statsmodels/sandbox/utils_old.py create mode 100644 statsmodels/src/__init__.py create mode 100644 statsmodels/src/blas_lapack.pxd create mode 100644 statsmodels/src/bspline_ext.c create mode 100644 statsmodels/src/bspline_impl.c create mode 100644 statsmodels/src/capsule.h create mode 100644 statsmodels/stats/__init__.py create mode 100644 statsmodels/stats/_adnorm.py create mode 100644 statsmodels/stats/_lilliefors.py create mode 100644 statsmodels/stats/anova.py create mode 100644 statsmodels/stats/api.py create mode 100644 statsmodels/stats/base.py create mode 100644 statsmodels/stats/contingency_tables.py create mode 100644 statsmodels/stats/contrast.py create mode 100644 statsmodels/stats/correlation_tools.py create mode 100644 statsmodels/stats/descriptivestats.py create mode 100644 statsmodels/stats/diagnostic.py create mode 100644 statsmodels/stats/gof.py create mode 100644 statsmodels/stats/inter_rater.py create mode 100644 statsmodels/stats/libqsturng/CH.r create mode 100644 statsmodels/stats/libqsturng/LICENSE.txt create mode 100644 statsmodels/stats/libqsturng/__init__.py create mode 100644 statsmodels/stats/libqsturng/make_tbls.py create mode 100644 statsmodels/stats/libqsturng/qsturng_.py create mode 100644 statsmodels/stats/libqsturng/tests/__init__.py create mode 100644 statsmodels/stats/libqsturng/tests/bootleg.dat create mode 100644 statsmodels/stats/libqsturng/tests/test_qsturng.py create mode 100644 statsmodels/stats/mediation.py create mode 100644 statsmodels/stats/moment_helpers.py create mode 100644 statsmodels/stats/multicomp.py create mode 100644 statsmodels/stats/multitest.py create mode 100644 statsmodels/stats/multivariate_tools.py create mode 100644 statsmodels/stats/outliers_influence.py create mode 100644 statsmodels/stats/power.py create mode 100644 statsmodels/stats/proportion.py create mode 100644 statsmodels/stats/sandwich_covariance.py create mode 100644 statsmodels/stats/stattools.py create mode 100644 statsmodels/stats/tabledist.py create mode 100644 statsmodels/stats/tests/__init__.py create mode 100644 statsmodels/stats/tests/gen_contingency_table_tests.R create mode 100644 statsmodels/stats/tests/results/__init__.py create mode 100644 statsmodels/stats/tests/results/anova.R create mode 100644 statsmodels/stats/tests/results/bootleg.csv create mode 100644 statsmodels/stats/tests/results/contingency_table_r_results.csv create mode 100644 statsmodels/stats/tests/results/data.dat create mode 100644 statsmodels/stats/tests/results/framing.csv create mode 100644 statsmodels/stats/tests/results/influence_lsdiag_R.json create mode 100644 statsmodels/stats/tests/results/influence_measures_R.csv create mode 100644 statsmodels/stats/tests/results/influence_measures_bool_R.csv create mode 100644 statsmodels/stats/tests/results/results_multinomial_proportions.py create mode 100644 statsmodels/stats/tests/results/results_panelrobust.py create mode 100644 statsmodels/stats/tests/results/results_power.py create mode 100644 statsmodels/stats/tests/results/results_proportion.py create mode 100644 statsmodels/stats/tests/test_anova.py create mode 100644 statsmodels/stats/tests/test_contingency_tables.py create mode 100644 statsmodels/stats/tests/test_contrast.py create mode 100644 statsmodels/stats/tests/test_corrpsd.py create mode 100644 statsmodels/stats/tests/test_data.txt create mode 100644 statsmodels/stats/tests/test_descriptivestats.py create mode 100644 statsmodels/stats/tests/test_diagnostic.py create mode 100644 statsmodels/stats/tests/test_gof.py create mode 100644 statsmodels/stats/tests/test_groups_sw.py create mode 100644 statsmodels/stats/tests/test_inter_rater.py create mode 100644 statsmodels/stats/tests/test_mediation.py create mode 100644 statsmodels/stats/tests/test_moment_helpers.py create mode 100644 statsmodels/stats/tests/test_multi.py create mode 100644 statsmodels/stats/tests/test_nonparametric.py create mode 100644 statsmodels/stats/tests/test_pairwise.py create mode 100644 statsmodels/stats/tests/test_panel_robustcov.py create mode 100644 statsmodels/stats/tests/test_power.py create mode 100644 statsmodels/stats/tests/test_proportion.py create mode 100644 statsmodels/stats/tests/test_qsturng.py create mode 100644 statsmodels/stats/tests/test_sandwich.py create mode 100644 statsmodels/stats/tests/test_statstools.py create mode 100644 statsmodels/stats/tests/test_tost.py create mode 100644 statsmodels/stats/tests/test_weightstats.py create mode 100644 statsmodels/stats/weightstats.py create mode 100644 statsmodels/tools/__init__.py create mode 100644 statsmodels/tools/_testing.py create mode 100644 statsmodels/tools/catadd.py create mode 100644 statsmodels/tools/data.py create mode 100644 statsmodels/tools/decorators.py create mode 100644 statsmodels/tools/dump2module.py create mode 100644 statsmodels/tools/eval_measures.py create mode 100644 statsmodels/tools/grouputils.py create mode 100644 statsmodels/tools/linalg.py create mode 100644 statsmodels/tools/numdiff.py create mode 100644 statsmodels/tools/parallel.py create mode 100755 statsmodels/tools/print_version.py create mode 100644 statsmodels/tools/rootfinding.py create mode 100644 statsmodels/tools/sm_exceptions.py create mode 100644 statsmodels/tools/testing.py create mode 100644 statsmodels/tools/tests/__init__.py create mode 100644 statsmodels/tools/tests/test_catadd.py create mode 100644 statsmodels/tools/tests/test_data.py create mode 100644 statsmodels/tools/tests/test_eval_measures.py create mode 100644 statsmodels/tools/tests/test_grouputils.py create mode 100644 statsmodels/tools/tests/test_linalg.py create mode 100644 statsmodels/tools/tests/test_numdiff.py create mode 100644 statsmodels/tools/tests/test_parallel.py create mode 100644 statsmodels/tools/tests/test_rootfinding.py create mode 100644 statsmodels/tools/tests/test_tools.py create mode 100644 statsmodels/tools/tests/test_transform_model.py create mode 100644 statsmodels/tools/tests/test_web.py create mode 100644 statsmodels/tools/tools.py create mode 100644 statsmodels/tools/transform_model.py create mode 100644 statsmodels/tools/web.py create mode 100644 statsmodels/tools/wrappers.py create mode 100644 statsmodels/tsa/__init__.py create mode 100644 statsmodels/tsa/_bds.py create mode 100644 statsmodels/tsa/adfvalues.py create mode 100644 statsmodels/tsa/api.py create mode 100644 statsmodels/tsa/ar_model.py create mode 100644 statsmodels/tsa/arima_model.py create mode 100644 statsmodels/tsa/arima_process.py create mode 100644 statsmodels/tsa/arma_mle.py create mode 100644 statsmodels/tsa/base/__init__.py create mode 100644 statsmodels/tsa/base/datetools.py create mode 100644 statsmodels/tsa/base/tests/__init__.py create mode 100644 statsmodels/tsa/base/tests/test_base.py create mode 100644 statsmodels/tsa/base/tests/test_datetools.py create mode 100644 statsmodels/tsa/base/tsa_model.py create mode 100644 statsmodels/tsa/descriptivestats.py create mode 100644 statsmodels/tsa/filters/__init__.py create mode 100644 statsmodels/tsa/filters/_utils.py create mode 100644 statsmodels/tsa/filters/api.py create mode 100644 statsmodels/tsa/filters/bk_filter.py create mode 100644 statsmodels/tsa/filters/cf_filter.py create mode 100644 statsmodels/tsa/filters/filtertools.py create mode 100644 statsmodels/tsa/filters/hp_filter.py create mode 100644 statsmodels/tsa/filters/tests/__init__.py create mode 100644 statsmodels/tsa/filters/tests/results/__init__.py create mode 100644 statsmodels/tsa/filters/tests/results/filter.R create mode 100644 statsmodels/tsa/filters/tests/results/filter_results.py create mode 100644 statsmodels/tsa/filters/tests/test_filters.py create mode 100644 statsmodels/tsa/interp/__init__.py create mode 100644 statsmodels/tsa/interp/denton.py create mode 100644 statsmodels/tsa/interp/tests/__init__.py create mode 100644 statsmodels/tsa/interp/tests/test_denton.py create mode 100644 statsmodels/tsa/kalmanf/__init__.py create mode 100644 statsmodels/tsa/kalmanf/kalman_loglike.pyx create mode 100644 statsmodels/tsa/kalmanf/kalmanfilter.py create mode 100644 statsmodels/tsa/mlemodel.py create mode 100644 statsmodels/tsa/regime_switching/__init__.py create mode 100644 statsmodels/tsa/regime_switching/_hamilton_filter.pyx.in create mode 100644 statsmodels/tsa/regime_switching/markov_autoregression.py create mode 100644 statsmodels/tsa/regime_switching/markov_regression.py create mode 100644 statsmodels/tsa/regime_switching/markov_switching.py create mode 100644 statsmodels/tsa/regime_switching/tests/__init__.py create mode 100644 statsmodels/tsa/regime_switching/tests/results/__init__.py create mode 100644 statsmodels/tsa/regime_switching/tests/results/mar_filardo.csv create mode 100644 statsmodels/tsa/regime_switching/tests/results/results_predict_fedfunds.csv create mode 100644 statsmodels/tsa/regime_switching/tests/results/results_predict_rgnp.csv create mode 100644 statsmodels/tsa/regime_switching/tests/test_markov_autoregression.py create mode 100644 statsmodels/tsa/regime_switching/tests/test_markov_regression.py create mode 100644 statsmodels/tsa/regime_switching/tests/test_markov_switching.py create mode 100644 statsmodels/tsa/seasonal.py create mode 100644 statsmodels/tsa/statespace/__init__.py create mode 100644 statsmodels/tsa/statespace/_statespace.pyx.in create mode 100644 statsmodels/tsa/statespace/api.py create mode 100644 statsmodels/tsa/statespace/dynamic_factor.py create mode 100644 statsmodels/tsa/statespace/kalman_filter.py create mode 100644 statsmodels/tsa/statespace/kalman_smoother.py create mode 100644 statsmodels/tsa/statespace/mlemodel.py create mode 100644 statsmodels/tsa/statespace/representation.py create mode 100644 statsmodels/tsa/statespace/sarimax.py create mode 100644 statsmodels/tsa/statespace/structural.py create mode 100644 statsmodels/tsa/statespace/tests/__init__.py create mode 100644 statsmodels/tsa/statespace/tests/results/__init__.py create mode 100644 statsmodels/tsa/statespace/tests/results/clark1989.csv create mode 100644 statsmodels/tsa/statespace/tests/results/example_ssm_wpi1.m create mode 100644 statsmodels/tsa/statespace/tests/results/manufac.dta create mode 100644 statsmodels/tsa/statespace/tests/results/results_clark1989_R.csv create mode 100644 statsmodels/tsa/statespace/tests/results/results_dynamic_factor.py create mode 100644 statsmodels/tsa/statespace/tests/results/results_dynamic_factor_stata.csv create mode 100644 statsmodels/tsa/statespace/tests/results/results_kalman_filter.py create mode 100644 statsmodels/tsa/statespace/tests/results/results_realgdpar_stata.csv create mode 100644 statsmodels/tsa/statespace/tests/results/results_sarimax.py create mode 100644 statsmodels/tsa/statespace/tests/results/results_sarimax_coverage.csv create mode 100644 statsmodels/tsa/statespace/tests/results/results_smoothing_R.csv create mode 100644 statsmodels/tsa/statespace/tests/results/results_structural.py create mode 100644 statsmodels/tsa/statespace/tests/results/results_var_stata.csv create mode 100644 statsmodels/tsa/statespace/tests/results/results_varmax.py create mode 100644 statsmodels/tsa/statespace/tests/results/results_varmax_stata.csv create mode 100644 statsmodels/tsa/statespace/tests/results/results_wpi1_ar3_matlab_ssm.csv create mode 100644 statsmodels/tsa/statespace/tests/results/results_wpi1_ar3_regression.csv create mode 100644 statsmodels/tsa/statespace/tests/results/results_wpi1_ar3_stata.csv create mode 100644 statsmodels/tsa/statespace/tests/results/results_wpi1_missing_ar3_matlab_ssm.csv create mode 100644 statsmodels/tsa/statespace/tests/results/results_wpi1_missing_ar3_regression.csv create mode 100644 statsmodels/tsa/statespace/tests/results/test_clark1989_r.R create mode 100644 statsmodels/tsa/statespace/tests/results/test_dynamic_factor_stata.do create mode 100644 statsmodels/tsa/statespace/tests/results/test_realgdpar_r.R create mode 100644 statsmodels/tsa/statespace/tests/results/test_realgdpar_stata.do create mode 100644 statsmodels/tsa/statespace/tests/results/test_sarimax_coverage.do create mode 100644 statsmodels/tsa/statespace/tests/results/test_sarimax_stata.do create mode 100644 statsmodels/tsa/statespace/tests/results/test_smoothing.R create mode 100644 statsmodels/tsa/statespace/tests/results/test_ucm.R create mode 100644 statsmodels/tsa/statespace/tests/results/test_varmax_stata.do create mode 100644 statsmodels/tsa/statespace/tests/results/test_wpi1_stata.do create mode 100644 statsmodels/tsa/statespace/tests/test_dynamic_factor.py create mode 100644 statsmodels/tsa/statespace/tests/test_impulse_responses.py create mode 100644 statsmodels/tsa/statespace/tests/test_kalman.py create mode 100644 statsmodels/tsa/statespace/tests/test_mlemodel.py create mode 100644 statsmodels/tsa/statespace/tests/test_options.py create mode 100644 statsmodels/tsa/statespace/tests/test_prediction.py create mode 100644 statsmodels/tsa/statespace/tests/test_representation.py create mode 100644 statsmodels/tsa/statespace/tests/test_sarimax.py create mode 100644 statsmodels/tsa/statespace/tests/test_simulate.py create mode 100644 statsmodels/tsa/statespace/tests/test_smoothing.py create mode 100644 statsmodels/tsa/statespace/tests/test_structural.py create mode 100644 statsmodels/tsa/statespace/tests/test_tools.py create mode 100644 statsmodels/tsa/statespace/tests/test_varmax.py create mode 100644 statsmodels/tsa/statespace/tools.py create mode 100644 statsmodels/tsa/statespace/varmax.py create mode 100644 statsmodels/tsa/stattools.py create mode 100644 statsmodels/tsa/tests/__init__.py create mode 100644 statsmodels/tsa/tests/arima.do create mode 100644 statsmodels/tsa/tests/arima112.do create mode 100644 statsmodels/tsa/tests/arima211.do create mode 100644 statsmodels/tsa/tests/results/ARMLEConstantPredict.csv create mode 100644 statsmodels/tsa/tests/results/AROLSConstantPredict.csv create mode 100644 statsmodels/tsa/tests/results/AROLSNoConstantPredict.csv create mode 100644 statsmodels/tsa/tests/results/__init__.py create mode 100644 statsmodels/tsa/tests/results/arima.R create mode 100644 statsmodels/tsa/tests/results/arima111_css_results.py create mode 100644 statsmodels/tsa/tests/results/arima111_forecasts.csv create mode 100644 statsmodels/tsa/tests/results/arima111_results.py create mode 100644 statsmodels/tsa/tests/results/arima111nc_css_results.py create mode 100644 statsmodels/tsa/tests/results/arima111nc_results.py create mode 100644 statsmodels/tsa/tests/results/arima112_css_results.py create mode 100644 statsmodels/tsa/tests/results/arima112_results.py create mode 100644 statsmodels/tsa/tests/results/arima112nc_css_results.py create mode 100644 statsmodels/tsa/tests/results/arima112nc_results.py create mode 100644 statsmodels/tsa/tests/results/arima211_css_results.py create mode 100644 statsmodels/tsa/tests/results/arima211_results.py create mode 100644 statsmodels/tsa/tests/results/arima211nc_css_results.py create mode 100644 statsmodels/tsa/tests/results/arima211nc_results.py create mode 100644 statsmodels/tsa/tests/results/arima212_forecast.csv create mode 100644 statsmodels/tsa/tests/results/arima_forecast.inp create mode 100644 statsmodels/tsa/tests/results/arma_forecast.inp create mode 100644 statsmodels/tsa/tests/results/bds_data.csv create mode 100644 statsmodels/tsa/tests/results/bds_results.csv create mode 100644 statsmodels/tsa/tests/results/corrgram.do create mode 100644 statsmodels/tsa/tests/results/datamlw_tls.py create mode 100644 statsmodels/tsa/tests/results/make_arma.py create mode 100644 statsmodels/tsa/tests/results/resids_css_c.csv create mode 100644 statsmodels/tsa/tests/results/resids_css_nc.csv create mode 100644 statsmodels/tsa/tests/results/resids_exact_c.csv create mode 100644 statsmodels/tsa/tests/results/resids_exact_nc.csv create mode 100644 statsmodels/tsa/tests/results/results_ar.py create mode 100644 statsmodels/tsa/tests/results/results_ar_forecast_mle_dynamic.csv create mode 100644 statsmodels/tsa/tests/results/results_arima.py create mode 100644 statsmodels/tsa/tests/results/results_arima_exog_forecasts_css.csv create mode 100644 statsmodels/tsa/tests/results/results_arima_exog_forecasts_mle.csv create mode 100644 statsmodels/tsa/tests/results/results_arima_forecasts.csv create mode 100644 statsmodels/tsa/tests/results/results_arima_forecasts_all_css.csv create mode 100644 statsmodels/tsa/tests/results/results_arima_forecasts_all_css_diff.csv create mode 100644 statsmodels/tsa/tests/results/results_arima_forecasts_all_mle.csv create mode 100644 statsmodels/tsa/tests/results/results_arima_forecasts_all_mle_diff.csv create mode 100644 statsmodels/tsa/tests/results/results_arma.py create mode 100644 statsmodels/tsa/tests/results/results_arma_forecasts.csv create mode 100644 statsmodels/tsa/tests/results/results_corrgram.csv create mode 100644 statsmodels/tsa/tests/results/results_process.py create mode 100644 statsmodels/tsa/tests/results/savedrvs.py create mode 100644 statsmodels/tsa/tests/results/test_bds.m create mode 100644 statsmodels/tsa/tests/results/y_arma_data.csv create mode 100644 statsmodels/tsa/tests/results/yhat_css_c.csv create mode 100644 statsmodels/tsa/tests/results/yhat_css_nc.csv create mode 100644 statsmodels/tsa/tests/results/yhat_exact_c.csv create mode 100644 statsmodels/tsa/tests/results/yhat_exact_nc.csv create mode 100644 statsmodels/tsa/tests/test_adfuller_lag.py create mode 100644 statsmodels/tsa/tests/test_ar.py create mode 100644 statsmodels/tsa/tests/test_arima.py create mode 100644 statsmodels/tsa/tests/test_arima_process.py create mode 100644 statsmodels/tsa/tests/test_bds.py create mode 100644 statsmodels/tsa/tests/test_seasonal.py create mode 100644 statsmodels/tsa/tests/test_stattools.py create mode 100644 statsmodels/tsa/tests/test_tsa_tools.py create mode 100644 statsmodels/tsa/tests/test_x13.py create mode 100644 statsmodels/tsa/tsatools.py create mode 100644 statsmodels/tsa/varma_process.py create mode 100644 statsmodels/tsa/vector_ar/__init__.py create mode 100644 statsmodels/tsa/vector_ar/api.py create mode 100644 statsmodels/tsa/vector_ar/data/e1.dat create mode 100644 statsmodels/tsa/vector_ar/data/e2.dat create mode 100644 statsmodels/tsa/vector_ar/data/e3.dat create mode 100644 statsmodels/tsa/vector_ar/data/e4.dat create mode 100644 statsmodels/tsa/vector_ar/data/e5.dat create mode 100644 statsmodels/tsa/vector_ar/data/e6.dat create mode 100644 statsmodels/tsa/vector_ar/dynamic.py create mode 100644 statsmodels/tsa/vector_ar/irf.py create mode 100644 statsmodels/tsa/vector_ar/output.py create mode 100644 statsmodels/tsa/vector_ar/plotting.py create mode 100644 statsmodels/tsa/vector_ar/svar_model.py create mode 100644 statsmodels/tsa/vector_ar/tests/__init__.py create mode 100644 statsmodels/tsa/vector_ar/tests/example_svar.py create mode 100644 statsmodels/tsa/vector_ar/tests/results/__init__.py create mode 100644 statsmodels/tsa/vector_ar/tests/results/results_svar.py create mode 100644 statsmodels/tsa/vector_ar/tests/results/results_svar_st.py create mode 100644 statsmodels/tsa/vector_ar/tests/results/results_var.py create mode 100644 statsmodels/tsa/vector_ar/tests/results/results_var_data.py create mode 100644 statsmodels/tsa/vector_ar/tests/results/vars_results.npz create mode 100644 statsmodels/tsa/vector_ar/tests/svar.do create mode 100644 statsmodels/tsa/vector_ar/tests/svartest.R create mode 100644 statsmodels/tsa/vector_ar/tests/test_svar.py create mode 100644 statsmodels/tsa/vector_ar/tests/test_var.py create mode 100644 statsmodels/tsa/vector_ar/tests/var.R create mode 100644 statsmodels/tsa/vector_ar/util.py create mode 100644 statsmodels/tsa/vector_ar/var_model.py create mode 100644 statsmodels/tsa/x13.py create mode 100644 tools/R2nparray/DESCRIPTION create mode 100644 tools/R2nparray/NAMESPACE create mode 100644 tools/R2nparray/R/R2nparray-package.R create mode 100644 tools/R2nparray/R/R2nparray.R create mode 100644 tools/R2nparray/R/ex_sur.R create mode 100644 tools/R2nparray/README.txt create mode 100644 tools/README.txt create mode 100644 tools/backport_pr.py create mode 100644 tools/binstar/README.md create mode 100644 tools/binstar/binstar_unix.sh create mode 100644 tools/binstar/binstar_windows.bat create mode 100644 tools/binstar/bld.bat create mode 100644 tools/binstar/build.sh create mode 100644 tools/binstar/meta.yaml create mode 100644 tools/binstar/python2_setup.bat create mode 100644 tools/binstar/python3_setup.bat create mode 100644 tools/build_win_bdist32-py26.bat create mode 100644 tools/build_win_bdist32-py27.bat create mode 100644 tools/build_win_bdist32-py32.bat create mode 100644 tools/build_win_bdist32-py33.bat create mode 100644 tools/build_win_bdist32-py34.bat create mode 100644 tools/build_win_bdist64-py26.bat create mode 100644 tools/build_win_bdist64-py27.bat create mode 100644 tools/build_win_bdist64-py32.bat create mode 100644 tools/build_win_bdist64-py33.bat create mode 100644 tools/build_win_bdist64-py34.bat create mode 100644 tools/check_dirs.py create mode 100644 tools/code_maintenance.py create mode 100755 tools/cythonize.py create mode 100755 tools/dataset_rst.py create mode 100644 tools/estmat2nparray.ado create mode 100755 tools/examples_rst.py create mode 100755 tools/fold_toc.py create mode 100755 tools/generate_formula_api.py create mode 100644 tools/gh_api.py create mode 100644 tools/github_stats.py create mode 100644 tools/hash_funcs.py create mode 100644 tools/km_cox1.do create mode 100644 tools/matplotlibrc create mode 100644 tools/migrate_issues_gh.py create mode 100755 tools/nbgenerate.py create mode 100644 tools/notebook2python.tpl create mode 100644 tools/notebook_output_template.py create mode 100755 tools/update_web.py diff --git a/.bzrignore b/.bzrignore new file mode 100644 index 0000000..f4a908e --- /dev/null +++ b/.bzrignore @@ -0,0 +1,29 @@ +*.py[oc] +# setup.py working directory +build +# setup.py dist directory +./dist +# Editor temporary/working/backup files +*$ +.*.sw[nop] +.sw[nop] +*~ +[#]*# +.#* +*.bak +*.tmp +*.tgz +*.rej +*.org +.project +*.diff +.settings/ +*.svn/ +*.log.py +# Egg metadata +./*.egg-info +# The shelf plugin uses this dir +./.shelf +# Mac droppings +.DS_Store +help diff --git a/.coveragerc b/.coveragerc new file mode 100644 index 0000000..5b264a6 --- /dev/null +++ b/.coveragerc @@ -0,0 +1,26 @@ +# .coveragerc to control coverage.py +[run] +branch = False + +[report] +# Regexes for lines to exclude from consideration +exclude_lines = + # Have to re-enable the standard pragma + pragma: no cover + + # Don't complain about missing debug-only code: + def __repr__ + if self\.debug + + # Don't complain if tests don't hit defensive assertion code: + raise AssertionError + raise NotImplementedError + + # Don't complain if non-runnable code isn't run: + if 0: + if __name__ == .__main__.: + +ignore_errors = False + +[html] +directory = coverage_html_report \ No newline at end of file diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..032c1bd --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +* text=auto + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..13cce9d --- /dev/null +++ b/.gitignore @@ -0,0 +1,66 @@ +*.py[oc] +# setup.py working directory +build +# setup.py dist directory +./dist +dist +#docs build and others +#generated #not yet? generated for dataset not rebuild +docs/source/generated +docs/source/dev/generated +docs/source/examples/generated +docs/source/examples/notebooks/generated +docs/source/datasets +docs/gettingstarted_0.png +examples/executed + +# generated c source and built extensions +*.c +*.so +*.pyd + +# repository directories for bzr-git +.bzr +.git +marks.git +marks.bzr + +# virtualenv stuff +.venv + +# Editor temporary/working/backup files +*$ +.*.sw[nop] +.sw[nop] +*~ +[#]*# +.#* +*.bak +*.tmp +*.tgz +*.rej +*.org +.project +*.diff +.settings/ +*.svn/ +*.log.py +# Egg metadata +./*.egg-info +# The shelf plugin uses this dir +./.shelf +# Mac droppings +.DS_Store +help + +# Project specific +statsmodels/version.py +cythonize.dat +statsmodels.egg-info/ +iterate.dat +hash_dict.pickle +rehab.table +salary.table +.ipynb_checkpoints +statsmodels/tsa/statespace/_statespace.pyx +statsmodels/tsa/regime_switching/_hamilton_filter.pyx diff --git a/.mailmap b/.mailmap new file mode 100644 index 0000000..a772d25 --- /dev/null +++ b/.mailmap @@ -0,0 +1,97 @@ +Alexander W Blocker Alexander W Blocker +Alex Griffing alex +Alexis Roche Alexis Roche +Ana Martinez Pardo Ana Martinez Pardo +Ana Martinez Pardo Ana Martinez Pardo +anov anov +avishaylivne avishaylivne +Bart Baker Bart Baker +Bart Baker bartbkr +Bart Baker bartbkr@gmail.com +Ben Duffield benduffield +Benjamin Thyreau benjamin.thyreau <> +brian.hawthorne <> brian.hawthorne <> +Bruno Rodrigues Bruno Rodrigues +Carl Vogel Carl Vogel +Chad Fulton Chad Fulton +Chris Jordan-Squire Chris Jordan-Squire +Christian Prinoth Christian Prinoth +Christopher Burns cburns <> +Christopher Burns Chris +Christopher Burns Christopher Burns +Cindee Madison Cindee Madison +Daniel B. Smith Daniel B. Smith +davclark <> davclark <> +dengemann dengemann +Dieter Vandenbussche Dieter Vandenbussche +Dougal Sutherland Dougal Sutherland +Enrico Giampieri Enrico Giampieri +Eric Chiang ericchiang +evelynmitchell evelynmitchell +Evgeni Burovski Zhenya +Fernando Perez fdo.perez <> +Fernando Perez Fernando Perez +Gael Varoquaux Gael Varoquaux +George Panterov George Panterov +Grayson Grayson +Jan Schulz Jan Schulz +Jarrod Millman jarrod.millman <> +Jarrod Millman Jarrod Millman +Jeff Reback jreback +Jonathan Taylor jonathan.taylor <> +Jonathan Taylor Jonathan Taylor +Jonathan Taylor Jonathan Taylor +Jonathan Taylor Jonathan Taylor +Jonathan Taylor Jonathan Taylor +Jonathan Taylor jtaylo +Josef Perktold Josef Perktold +Justin Grana Justin Grana +langmore langmore +Matthew Brett matthew.brett <> +Matthew Brett Matthew Brett <> +Matthew Brett Matthew Brett +Matthew Brett Matthew Brett +Matthieu Brucher Matthieu Brucher +michael.castelle <> michael.castelle <> +Mike Crowe Mike Crowe +Mike Crowe Mike Crowe +Mike Crowe Mike +Nathaniel J. Smith Nathaniel J. Smith +otterb otterb +Padarn Wilson padarn +Padarn Wilson Padarn +Paris Sprint Account Paris Sprint Account +Paul Hobson Paul Hobson +Peter Prettenhofer Peter Prettenhofer +Pietro Battiston Pietro Battiston +Ralf Gommers Ralf Gommers +Richard T. Guy Richard T. Guy +Robert Cimrman Robert Cimrman +Roger Lew Roger Lew +scottpiraino scottpiraino +sebastien.meriaux <> sebastien.meriaux <> +Skipper Seabold jsseabold <> +Skipper Seabold jsseabold +Skipper Seabold Skipper Seabold +skipper seabold skipper seabold +Skipper Seabold skipper +Skipper Seabold skipper +Steve Genoud Steve Genoud +Thomas Haslwanter Thomas Haslwanter +Thomas Kluyver Thomas Kluyver +tim.leslie <> tim.leslie <> +timmie timmie +Tom Augspurger TomAugspurger +Tom Augspurger Tom Augspurger +Tom Waite Tom Waite +Tom Waite twaite +Trent Hauck Trent Hauck +Trent Hauck tshauck +tylerhartley tylerhartley +Vincent Arel-Bundock Vincent Arel-Bundock +Vincent Davis Vincent Davis +VirgileFritsch VirgileFritsch +Wes McKinney Wes McKinney +Wes McKinney Wes McKinney +Yaroslav Halchenko Yaroslav Halchenko +zed zed diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..b0f4a69 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,124 @@ +# Travis script that uses miniconda in place of the system installed python +# versions. Allows substantial flexability for choosing versions of +# required packages and is simpler to use to test up-to-date scientific Python +# stack +language: python +sudo: required + +services: + - docker + +before_install: + - docker pull ubuntu:14.04 + +env: + # Default values for common packages, override as needed + global: + - OPTIONAL= + - COVERAGE=false + - USEMPL=true + +matrix: + fast_finish: true + include: + - python: 2.7 + env: + - PYTHON=2.6 + - dateutil= + - NUMPY="1.6.2=py26_4" + - SCIPY="0.11.0=np16py26_3" + - MATPLOTLIB=1.2 + - python: 2.7 + env: + - PYTHON=2.7 + - dateutil= + - NUMPY=1.7 + - SCIPY=0.12 + - OPTIONAL="mkl mkl-rt libgfortran=1.0" + - COVERAGE=true + - python: 2.7 + env: + - PYTHON=3.3 + - dateutil= + - NUMPY=1.8 + - SCIPY=0.13 + - MATPLOTLIB=1.3 + - PANDAS=0.13 + - python: 2.7 + env: + - PYTHON=3.4 + - dateutil= + - NUMPY=1.9 + - SCIPY=0.14 + - PANDAS=0.14 + - MATPLOTLIB=1.4 + - OPTIONAL=libgfortran=1.0 + - python: 2.7 + env: + - PYTHON=2.7 + - dateutil= + - NUMPY= + - SCIPY= + - USEMPL=false + - PANDAS= + - python: 2.7 + env: + - PYTHON=3.5 + - python-dateutil= + - NUMPY= + - SCIPY= + - PANDAS= + - MATPLOTLIB=1.4 + +notifications: + email: + on_success: always + +# Setup anaconda +before_install: + - wget http://repo.continuum.io/miniconda/Miniconda-latest-Linux-x86_64.sh -O miniconda.sh + - chmod +x miniconda.sh + - ./miniconda.sh -b + - export PATH=/home/travis/miniconda/bin:$PATH + - export PATH=/home/travis/miniconda2/bin:$PATH + - conda update --yes --quiet conda + # Fix for headless TravisCI + - "export DISPLAY=:99.0" + - "sh -e /etc/init.d/xvfb start" + # Avoid noise from matplotlib + - mkdir $HOME/.config + - mkdir $HOME/.config/matplotlib + - SRCDIR=$PWD + - cp $SRCDIR/tools/matplotlibrc $HOME/.config/matplotlib/matplotlibrc + # Location for older version of matplotlib + - if [ ${MATPLOTLIB} = "1.2" ]; then mkdir $HOME/.matplotlib; fi + - if [ ${MATPLOTLIB} = "1.2" ]; then cp ${SRCDIR}/tools/matplotlibrc $HOME/.matplotlib/matplotlibrc; fi + # Build package list to avoid empty package=versions; only needed for versioned pacakges + - PKGS="python=${PYTHON}" + - PKGS="${PKGS} numpy"; if [ ${NUMPY} ]; then PKGS="${PKGS}=${NUMPY}"; fi + - PKGS="${PKGS} scipy"; if [ ${SCIPY} ]; then PKGS="${PKGS}=${SCIPY}"; fi + - PKGS="${PKGS} patsy"; if [ ${PATSY} ]; then PKGS="${PKGS}=${PATSY}"; fi + - PKGS="${PKGS} pandas"; if [ ${PANDAS} ]; then PKGS="${PKGS}=${PANDAS}"; fi + - PKGS="${PKGS} Cython"; if [ ${CYTHON} ]; then PKGS="${PKGS}=${CYTHON}"; fi + - if [ ${USEMPL} = true ]; then PKGS="${PKGS} matplotlib"; if [ ${MATPLOTLIB} ]; then PKGS="${PKGS}=${MATPLOTLIB}"; fi; fi + +# Install packages +install: + - conda create --yes --quiet -n statsmodels-test ${PKGS} ${OPTIONAL} nose pip pyyaml setuptools + - source activate statsmodels-test + - if [ ${COVERAGE} = true ]; then pip install coverage coveralls; fi + - python setup.py install + +script: + - SRCDIR=$PWD + - python setup.py install + - mkdir -p "${SRCDIR}/travis-test"; cd "${SRCDIR}/travis-test" + # Show versions + - python -c 'import statsmodels.api as sm; sm.show_versions();' + # Compose a script to run testing with coverage + - echo 'import statsmodels as sm; a=sm.test(label="full", verbose=3); import sys; sys.exit((len(a.failures)+len(a.errors))>0)' > test.py + - if [ ${COVERAGE} = true ]; then coverage run --rcfile=${SRCDIR}/.travis_coveragerc test.py; else python test.py; fi + +after_success: + # Coverage only for 2.7 + - if [ ${COVERAGE} = true ]; then coveralls --rcfile=${SRCDIR}/.travis_coveragerc; fi diff --git a/.travis_coveragerc b/.travis_coveragerc new file mode 100644 index 0000000..b68a8f4 --- /dev/null +++ b/.travis_coveragerc @@ -0,0 +1,31 @@ +[run] +branch = True +include = + */statsmodels/* + +omit = + # print_version is untestable + */print_version.py + # skip compatability code + */compat/* + # Unused file + */results/gee_generate_tests.py + +[report] +# Regexes for lines to exclude from consideration +exclude_lines = + # Have to re-enable the standard pragma + pragma: no cover + + # Don't complain about missing debug-only code: + def __repr__ + if self\.debug + + # Don't complain if tests don't hit defensive assertion code: + raise AssertionError + raise NotImplementedError + + # Don't complain if non-runnable code isn't run: + if 0: + if __name__ == .__main__.: + if name == .__main__.: \ No newline at end of file diff --git a/CHANGES.md b/CHANGES.md new file mode 100644 index 0000000..073458c --- /dev/null +++ b/CHANGES.md @@ -0,0 +1,4 @@ +Release Notes +============= + +The list of changes for each statsmodels release can be found [here](http://www.statsmodels.org/devel/release/index.html). Full details are available in the [commit logs](https://github.com/statsmodels/statsmodels). diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst new file mode 100644 index 0000000..2cf3d85 --- /dev/null +++ b/CONTRIBUTING.rst @@ -0,0 +1,62 @@ +Contributing guidelines +======================= + +This page explains how you can contribute to the development of `statsmodels` +by submitting patches, statistical tests, new models, or examples. + +`statsmodels` is developed on `Github `_ +using the `Git `_ version control system. + +Submitting a Bug Report +~~~~~~~~~~~~~~~~~~~~~~~ + +- Include a short, self-contained code snippet that reproduces the problem +- Specify the statsmodels version used. You can do this with ``sm.version.full_version`` +- If the issue looks to involve other dependencies, also include the output of ``sm.show_versions()`` + +Making Changes to the Code +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +For a pull request to be accepted, you must meet the below requirements. This greatly helps in keeping the job of maintaining and releasing the software a shared effort. + +- **One branch. One feature.** Branches are cheap and github makes it easy to merge and delete branches with a few clicks. Avoid the temptation to lump in a bunch of unrelated changes when working on a feature, if possible. This helps us keep track of what has changed when preparing a release. +- Commit messages should be clear and concise. This means a subject line of less than 80 characters, and, if necessary, a blank line followed by a commit message body. We have an `informal commit format standard `_ that we try to adhere to. You can see what this looks like in practice by ``git log --oneline -n 10``. If your commit references or closes a specific issue, you can close it by mentioning it in the `commit message `_. (*For maintainers*: These suggestions go for Merge commit comments too. These are partially the record for release notes.) +- Code submissions must always include tests. See our `notes on testing `_. +- Each function, class, method, and attribute needs to be documented using docstrings. We conform to the `numpy docstring standard `_. +- If you are adding new functionality, you need to add it to the documentation by editing (or creating) the appropriate file in ``docs/source``. +- Make sure your documentation changes parse correctly. Change into the top-level ``docs/`` directory and type:: + + make clean + make html + + Check that the build output does not have *any* warnings due to your changes. +- Finally, please add your changes to the release notes. Open the ``docs/source/release/versionX.X.rst`` file that has the version number of the next release and add your changes to the appropriate section. + +How to Submit a Pull Request +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +So you want to submit a patch to `statsmodels` but aren't too familiar with github? Here are the steps you need to take. + +1. `Fork `_ the `statsmodels repository `_ on Github. +2. `Create a new feature branch `_. Each branch must be self-contained, with a single new feature or bugfix. +3. Make sure the test suite passes. This includes testing on Python 3. The easiest way to do this is to either enable `Travis-CI `_ on your fork, or to make a pull request and check there. +4. Document your changes by editing the appropriate file in ``docs/source/``. If it is a big, new feature add a note and an example to the latest ``docs/source/release/versionX.X.rst`` file. See older versions for examples. If it's a minor change, it will be included automatically in our relase notes. +5. Add an example. If it is a big, new feature please submit an example notebook by following `these instructions `_. +6. `Submit a pull request `_ + +Mailing List +~~~~~~~~~~~~ + +Conversations about development take place on the `statsmodels mailing list `__. + +Learn More +~~~~~~~~~~ + +The ``statsmodels`` documentation's `developer page `_ +offers much more detailed information about the process. + +License +~~~~~~~ + +Statsmodels is released under the +`Modified (3-clause) BSD license `_. diff --git a/COPYRIGHTS.txt b/COPYRIGHTS.txt new file mode 100644 index 0000000..ac4447a --- /dev/null +++ b/COPYRIGHTS.txt @@ -0,0 +1,249 @@ + +The license of statsmodels can be found in LICENSE.txt + +statsmodels contains code or derivative code from several other +packages. Some modules also note the author of individual contributions, or +author of code that formed the basis for the derived or translated code. +The copyright statements for the datasets are attached to the individual +datasets, most datasets are in public domain, and we don't claim any copyright +on any of them. + +In the following, we collect copyright statements of code from other packages, +all of which are either a version of BSD or MIT licensed: + +numpy +scipy +pandas +matplotlib +scikit-learn +qsturng-py http://code.google.com/p/qsturng-py/ + + +numpy (statsmodels.compatnp contains copy of entire model) +---------------------------------------------------------- +Copyright (c) 2005-2009, NumPy Developers. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of the NumPy Developers nor the names of any + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +--------------------------------------------------------------------- + +scipy +----- +Copyright (c) 2001, 2002 Enthought, Inc. +All rights reserved. + +Copyright (c) 2003-2009 SciPy Developers. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + a. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + b. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + c. Neither the name of the Enthought nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. +--------------------------------------------------------------------------- + + +pandas +------ + +Copyright (c) 2008-2009 AQR Capital Management, LLC +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of the copyright holder nor the names of any + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +---------------------------------------------------------------------- + + +matplotlib (copied from license.py) +----------------------------------- + + +LICENSE AGREEMENT FOR MATPLOTLIB %(version)s +-------------------------------------- + +1. This LICENSE AGREEMENT is between John D. Hunter ("JDH"), and the +Individual or Organization ("Licensee") accessing and otherwise using +matplotlib software in source or binary form and its associated +documentation. + +2. Subject to the terms and conditions of this License Agreement, JDH +hereby grants Licensee a nonexclusive, royalty-free, world-wide license +to reproduce, analyze, test, perform and/or display publicly, prepare +derivative works, distribute, and otherwise use matplotlib %(version)s +alone or in any derivative version, provided, however, that JDH's +License Agreement and JDH's notice of copyright, i.e., "Copyright (c) +2002-%(year)d John D. Hunter; All Rights Reserved" are retained in +matplotlib %(version)s alone or in any derivative version prepared by +Licensee. + +3. In the event Licensee prepares a derivative work that is based on or +incorporates matplotlib %(version)s or any part thereof, and wants to +make the derivative work available to others as provided herein, then +Licensee hereby agrees to include in any such work a brief summary of +the changes made to matplotlib %(version)s. + +4. JDH is making matplotlib %(version)s available to Licensee on an "AS +IS" basis. JDH MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, JDH MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF MATPLOTLIB %(version)s +WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. + +5. JDH SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF MATPLOTLIB +%(version)s FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR +LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING +MATPLOTLIB %(version)s, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF +THE POSSIBILITY THEREOF. + +6. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +7. Nothing in this License Agreement shall be deemed to create any +relationship of agency, partnership, or joint venture between JDH and +Licensee. This License Agreement does not grant permission to use JDH +trademarks or trade name in a trademark sense to endorse or promote +products or services of Licensee, or any third party. + +8. By copying, installing or otherwise using matplotlib %(version)s, +Licensee agrees to be bound by the terms and conditions of this License +Agreement. +-------------------------------------------------------------------------- + +scikits-learn +------------- + +New BSD License + +Copyright (c) 2007 - 2010 Scikit-Learn Developers. +All rights reserved. + + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + a. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + b. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + c. Neither the name of the Scikit-learn Developers nor the names of + its contributors may be used to endorse or promote products + derived from this software without specific prior written + permission. + + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. +--------------------------------------------------------------------------- + +qsturng-py (code included in statsmodels.stats.libqsturng) +-------------------------------------------------------------- +Copyright (c) 2011, Roger Lew [see LICENSE.txt] +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of the organizations affiliated with the + contributors or the names of its contributors themselves may be + used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +---------------------------------------------------------- diff --git a/INSTALL.txt b/INSTALL.txt new file mode 100644 index 0000000..8c4a69c --- /dev/null +++ b/INSTALL.txt @@ -0,0 +1,128 @@ +Dependencies +------------ + +python >= 2.6 + + www.python.org + +numpy >= 1.5.1 + + www.numpy.org + +scipy >= 0.9.0 + + www.scipy.org + +pandas >= 0.7.1 + + pandas.pydata.org + +patsy >= 0.3.0 + + patsy.readthedocs.org + + +cython >= 0.20.1 + + http://cython.org/ + + Cython is required if you are building the source from github. However, + if you have are building from source distribution archive then the + generated C files are included and Cython is not necessary. If you are + building for Python 3.4, then you must use Cython >= 0.20.1. Earlier + versions may be ok for Python < 3.4. + +Optional Dependencies +--------------------- + +X-12-ARIMA or X-13ARIMA-SEATS + + http://www.census.gov/srd/www/x13as/ + + If available, time-series analysis can be conducted using either + X-12-ARIMA or the newer X-13ARIMA-SEATS. You should place the + appropriate executable on your PATH or set the X12PATH or X13PATH + environmental variable to take advantage. + +matplotlib >= 1.1 + + http://matplotlib.sf.net/ + + Matplotlib is needed for plotting functionality and running many of the + examples. + +sphinx >= 1.0.0 + + http://sphinx.pocoo.org/ + + Sphinx is used to build the documentation. + +nose >= 1.0.0 + + http://readthedocs.org/docs/nose/en/latest/ + + Nose is needed to run the tests. + +IPython >= 1.0 + + Needed to build the docs. + + +Easy Install +------------ + +To get the latest release using easy_install you need setuptools (easy_install): + + http://peak.telecommunity.com/DevCenter/EasyInstall + +Then you can do (with proper permissions): + + easy_install -U statsmodels + + +Ubuntu/Debian +------------- + +On Ubuntu you can get dependencies through: + + sudo apt-get install python python-dev python-setuptools python-numpy python-scipy + easy_install -U pandas + easy_install -U cython + +Alternatively, you can install from the NeuroDebian repository: + + http://neuro.debian.net + + +Installing from Source +---------------------- + +Download and extract the source distribution from PyPI or github + + http://pypi.python.org/pypi/statsmodels + https://github.com/statsmodels/statsmodels/tags + +Or clone the bleeding edge code from our repository on github at + + git clone git://github.com/statsmodels/statsmodels.git + +In the statsmodels directory do (with proper permissions) + + python setup.py build + python setup.py install + +You will need a C compiler installed. + +Installing from Source on Windows +--------------------------------- + +See http://statsmodels.sf.net/devel/install.html#windows. + + +Documentation +------------- + +You may find more information about the project and installation in our +documentation + +http://statsmodels.sf.net/devel/install.html diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..ad7c736 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,34 @@ +Copyright (C) 2006, Jonathan E. Taylor +All rights reserved. + +Copyright (c) 2006-2008 Scipy Developers. +All rights reserved. + +Copyright (c) 2009-2012 Statsmodels Developers. +All rights reserved. + + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + a. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + b. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + c. Neither the name of Statsmodels nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL STATSMODELS OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 0000000..dd617b4 --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,35 @@ +global-include *.csv *.py *.txt *.pyx *.pxd *.pxi *.c *.h +include MANIFEST.in +include README.rst + +recursive-exclude build * +recursive-exclude dist * +recursive-exclude tools * +include tools/examples_rst.py +include tools/hash_funcs.py +include tools/cythonize.py + +graft statsmodels/datasets +graft statsmodels/tests +graft statsmodels/sandbox/regression/data +graft statsmodels/sandbox/tests +graft statsmodels/sandbox/tsa/examples +graft statsmodels/tsa/vector_ar/data +recursive-include docs/source * +exclude docs/source/generated/* +recursive-include docs/sphinxext * +recursive-include docs/themes * +recursive-exclude docs/build * +recursive-exclude docs/build/htmlhelp * +include statsmodels/statsmodelsdoc.chm +include docs/make.bat +include docs/Makefile + +recursive-include examples * + +# Cached Cython signatures +include cythonize.dat + +prune */__pycache__ + +global-exclude *~ *.swp *.pyc *.pyo *.bak diff --git a/README.rst b/README.rst new file mode 100644 index 0000000..36d413f --- /dev/null +++ b/README.rst @@ -0,0 +1,158 @@ +|Travis Build Status| |Appveyor Build Status| |Coveralls Coverage| + +About Statsmodels +================= + +Statsmodels is a Python package that provides a complement to scipy for +statistical computations including descriptive statistics and estimation +and inference for statistical models. + + +Documentation +============= + +The documentation for the latest release is at + + http://www.statsmodels.org/stable/ + +The documentation for the development version is at + + http://www.statsmodels.org/dev/ + +Recent improvements are highlighted in the release notes + + http://www.statsmodels.org/stable/release/version0.8.html + +Backups of documentation are available at http://statsmodels.github.io/stable/ +and http://statsmodels.github.io/dev/. + + + +Main Features +============= + +* Linear regression models: + + - Ordinary least squares + - Generalized least squares + - Weighted least squares + - Least squares with autoregressive errors + - Quantile regression + +* Mixed Linear Model with mixed effects and variance components +* GLM: Generalized linear models with support for all of the one-parameter + exponential family distributions +* GEE: Generalized Estimating Equations for one-way clustered or longitudinal data +* Discrete models: + + - Logit and Probit + - Multinomial logit (MNLogit) + - Poisson regresion + - Negative Binomial regression + +* RLM: Robust linear models with support for several M-estimators. +* Time Series Analysis: models for time series analysis + + - Complete StateSpace modeling framework + + - Seasonal ARIMA and ARIMAX models + - VARMA and VARMAX models + - Dynamic Factor models + + - Markov switching models (MSAR), also known as Hidden Markov Models (HMM) + - Univariate time series analysis: AR, ARIMA + - Vector autoregressive models, VAR and structural VAR + - Hypothesis tests for time series: unit root, cointegration and others + - Descriptive statistics and process models for time series analysis + +* Survival analysis: + + - Proportional hazards regression (Cox models) + - Survivor function estimation (Kaplan-Meier) + - Cumulative incidence function estimation + +* Nonparametric statistics: (Univariate) kernel density estimators +* Datasets: Datasets used for examples and in testing +* Statistics: a wide range of statistical tests + + - diagnostics and specification tests + - goodness-of-fit and normality tests + - functions for multiple testing + - various additional statistical tests + +* Imputation with MICE and regression on order statistic +* Mediation analysis +* Principal Component Analysis with missing data +* I/O + + - Tools for reading Stata .dta files into numpy arrays. + - Table output to ascii, latex, and html + +* Miscellaneous models +* Sandbox: statsmodels contains a sandbox folder with code in various stages of + developement and testing which is not considered "production ready". This covers + among others + + - Generalized method of moments (GMM) estimators + - Kernel regression + - Various extensions to scipy.stats.distributions + - Panel data models + - Information theoretic measures + +How to get it +============= +The master branch on GitHub is the most up to date code + + https://www.github.com/statsmodels/statsmodels + +Source download of release tags are available on GitHub + + https://github.com/statsmodels/statsmodels/tags + +Binaries and source distributions are available from PyPi + + http://pypi.python.org/pypi/statsmodels/ + +Binaries can be installed in Anaconda + + conda install statsmodels + +Development snapshots are also available in Anaconda (infrequently updated) + + conda install -c https://conda.binstar.org/statsmodels statsmodels + +Installing from sources +======================= + +See INSTALL.txt for requirements or see the documentation + + http://statsmodels.github.io/dev/install.html + +License +======= + +Modified BSD (3-clause) + +Discussion and Development +========================== + +Discussions take place on our mailing list. + + http://groups.google.com/group/pystatsmodels + +We are very interested in feedback about usability and suggestions for +improvements. + +Bug Reports +=========== + +Bug reports can be submitted to the issue tracker at + + https://github.com/statsmodels/statsmodels/issues + +.. |Travis Build Status| image:: https://travis-ci.org/statsmodels/statsmodels.svg?branch=master + :target: https://travis-ci.org/statsmodels/statsmodels +.. |Appveyor Build Status| image:: https://ci.appveyor.com/api/projects/status/gx18sd2wc63mfcuc/branch/master?svg=true + :target: https://ci.appveyor.com/project/josef-pkt/statsmodels/branch/master +.. |Coveralls Coverage| image:: https://coveralls.io/repos/github/statsmodels/statsmodels/badge.svg?branch=master + :target: https://coveralls.io/github/statsmodels/statsmodels?branch=master diff --git a/README_l1.txt b/README_l1.txt new file mode 100644 index 0000000..4f28f0d --- /dev/null +++ b/README_l1.txt @@ -0,0 +1,40 @@ +What the l1 addition is +======================= +A slight modification that allows l1 regularized LikelihoodModel. + +Regularization is handled by a fit_regularized method. + +Main Files +========== + +l1_demo/demo.py + $ python demo.py --get_l1_slsqp_results logit + does a quick demo of the regularization using logistic regression. + +l1_demo/sklearn_compare.py + $ python sklearn_compare.py + Plots a comparison of regularization paths. Modify the source to use + different datasets. + +statsmodels/base/l1_cvxopt.py + fit_l1_cvxopt_cp() + Fit likelihood model using l1 regularization. Use the CVXOPT package. + Lots of small functions supporting fit_l1_cvxopt_cp + +statsmodels/base/l1_slsqp.py + fit_l1_slsqp() + Fit likelihood model using l1 regularization. Use scipy.optimize + Lots of small functions supporting fit_l1_slsqp + +statsmodels/base/l1_solvers_common.py + Common methods used by l1 solvers + +statsmodels/base/model.py + Likelihoodmodel.fit() + 3 lines modified to allow for importing and calling of l1 fitting functions + +statsmodels/discrete/discrete_model.py + L1MultinomialResults class + Child of MultinomialResults + MultinomialModel.fit() + 3 lines re-directing l1 fit results to the L1MultinomialResults class diff --git a/appveyor.yml b/appveyor.yml new file mode 100644 index 0000000..398d5e1 --- /dev/null +++ b/appveyor.yml @@ -0,0 +1,28 @@ +skip_tags: true +clone_depth: 50 + +os: Visual Studio 2015 + +environment: + matrix: + - PY_MAJOR_VER: 2 + PYTHON_ARCH: "x86_64" + - PY_MAJOR_VER: 3 + PYTHON_ARCH: "x86_64" + +platform: + - x64 + +build_script: + - ps: Start-FileDownload "https://repo.continuum.io/miniconda/Miniconda$env:PY_MAJOR_VER-latest-Windows-$env:PYTHON_ARCH.exe" C:\Miniconda.exe; echo "Finished downloading miniconda" + - cmd: C:\Miniconda.exe /S /D=C:\Py + - SET PATH=C:\Py;C:\Py\Scripts;C:\Py\Library\bin;%PATH% + - conda config --set always_yes yes + - conda update conda --quiet + - conda install numpy scipy cython pandas pip nose patsy --quiet + - python setup.py develop + - set "GIT_DIR=%cd%" + +test_script: + - cd .. + - nosetests --exe -v -A "not slow" statsmodels \ No newline at end of file diff --git a/build_bdists.bat b/build_bdists.bat new file mode 100644 index 0000000..e28505f --- /dev/null +++ b/build_bdists.bat @@ -0,0 +1,9 @@ +call tools\build_win_bdist64-py26.bat +call tools\build_win_bdist32-py26.bat +call tools\build_win_bdist64-py27.bat +call tools\build_win_bdist32-py27.bat +call tools\build_win_bdist32-py32.bat +call tools\build_win_bdist64-py32.bat +call tools\build_win_bdist32-py34.bat +call tools\build_win_bdist64-py34.bat +call python setup.py sdist --formats=zip,gztar diff --git a/docs/GLMNotes.lyx b/docs/GLMNotes.lyx new file mode 100644 index 0000000..3307099 --- /dev/null +++ b/docs/GLMNotes.lyx @@ -0,0 +1,1155 @@ +#LyX 1.6.2 created this file. For more info see http://www.lyx.org/ +\lyxformat 345 +\begin_document +\begin_header +\textclass article +\use_default_options true +\language english +\inputencoding auto +\font_roman default +\font_sans default +\font_typewriter default +\font_default_family default +\font_sc false +\font_osf false +\font_sf_scale 100 +\font_tt_scale 100 + +\graphics default +\paperfontsize default +\spacing single +\use_hyperref false +\papersize default +\use_geometry true +\use_amsmath 1 +\use_esint 1 +\cite_engine basic +\use_bibtopic false +\paperorientation portrait +\leftmargin 1in +\topmargin 1in +\rightmargin 1in +\bottommargin 1in +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\defskip medskip +\quotes_language english +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\author "" +\author "" +\end_header + +\begin_body + +\begin_layout Standard +Variance Functions: +\end_layout + +\begin_layout Standard +Constant: +\begin_inset Formula $\boldsymbol{1}$ +\end_inset + + +\end_layout + +\begin_layout Standard +Power: +\begin_inset Formula $\boldsymbol{X}^{2}$ +\end_inset + + +\end_layout + +\begin_layout Standard +Binomial: +\begin_inset Formula $np(1-p)\text{ where }p=\frac{\mu}{n};\,\, V(\mu)=np(1-p)$ +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset Formula $\frac{\partial\mu}{\partial\eta}$ +\end_inset + + +\end_layout + +\begin_layout Standard +Links: initialization of base class returns the actual mean vector +\begin_inset Formula $\boldsymbol{\mu}$ +\end_inset + +; +\begin_inset Formula $p$ +\end_inset + + in the logit and subclasses; +\begin_inset Formula $x$ +\end_inset + + elsewhere. +\end_layout + +\begin_layout Standard +\begin_inset Float table +placement H +wide false +sideways false +status open + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +Link +\begin_inset Formula $g(p)$ +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +Inverse +\begin_inset Formula $g^{-1}(p)$ +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +Analytic Derivative +\begin_inset Formula $g^{\prime}(p)$ +\end_inset + + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +Logit +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula $z=\log\frac{p}{1-p}$ +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula $p=\frac{e^{z}}{1+e^{z}}$ +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula $g^{\prime}(p)=\frac{1}{p(1-p)}$ +\end_inset + + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +Power +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula $z=x^{\text{pow}}$ +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula $x=z^{\frac{1}{\text{pow}}}$ +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula $g^{\prime}(x)=\text{pow}\cdot x^{\text{power}-1}$ +\end_inset + + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +Inverse +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +same as above with +\begin_inset Formula $\text{pow}=-1$ +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +Square Root +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula $\text{pow}=0.5$ +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +Identity +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula $\text{pow}=1$ +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +Log +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula $z=\log x$ +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula $g^{-1}(z)=e^{z}$ +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula $g^{\prime}(x)=\frac{1}{x}$ +\end_inset + + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +CDFLink/Probit +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula $z=\Phi^{-1}(p)$ +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula $p=\Phi(z)$ +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula $g^{\prime}(x)=\frac{1}{\int_{-\infty}^{p}f(t)dt}$ +\end_inset + + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +Cauchy +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +same as the above with the Cauchy distribution +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +CLogLog +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula $z=\log(-\log p)$ +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula $p=e^{-e^{z}}$ +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula $g^{\prime}(p)=-\frac{1}{p\log p}$ +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +\begin_inset Caption + +\begin_layout Plain Layout +Link Functions +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +Initializing the family sets a link property and a variance based on the + link(?) +\end_layout + +\begin_layout Standard +\begin_inset Float table +placement H +wide false +sideways false +status open + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + + + + + +\begin_inset Text + +\begin_layout Plain Layout +Family +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +Weights +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +Deviance +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +DevResid +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +Fitted +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +Predict +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +Base Class +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula $\frac{1}{(g^{\prime}(\mu))^{2}\cdot V(\mu)}$ +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula $\frac{\sum_{i}\text{DevResid}^{2}}{\text{scale}}$ +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula $\left(Y-\mu\right)\cdot\sqrt{\text{weights}}$ +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula $\mu=g^{-1}(\eta)$ +\end_inset + +* +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula $\eta=g(\mu)$ +\end_inset + + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +Poisson +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula $\text{sign}\left(Y-\mu\right)\sqrt{2Y\log\frac{Y}{\mu}-2(Y-\mu)}$ +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +Gaussian +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula $\frac{\left(Y-\mu\right)}{\text{\sqrt{\text{scale}\cdot V\left(\mu\right)}}}$ +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +Gamma +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +Bug? +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +Binomial +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Formula $\text{sign}\left(Y-\mu\right)\sqrt{-2Y\log\frac{\mu}{n}+\left(n-Y\right)\log\left(1-\frac{\mu}{n}\right)}$ +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +Inverse Gaussian +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +? +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +\begin_inset Caption + +\begin_layout Plain Layout +Families +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +* +\begin_inset Formula $\eta$ +\end_inset + + is the linear predictor ie., +\begin_inset Formula $X\beta$ +\end_inset + + in the generalized linear model +\end_layout + +\end_inset + + +\end_layout + +\end_body +\end_document diff --git a/docs/GLMNotes.pdf b/docs/GLMNotes.pdf new file mode 100644 index 0000000000000000000000000000000000000000..cd8e6a68523e96884ff6f89df78ed505dc01d4a0 GIT binary patch literal 76810 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 y4pOY#9d3wUVN3-$Czzz)2+*SrMr+I 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 U_B|#iVo4Y>r=+Bop*H9L0Oa-Jq5uE@ literal 0 HcmV?d00001 diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 0000000..a3d0a52 --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,168 @@ +# Makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +PAPER = +BUILDDIR = build +TOOLSPATH = ../tools/ +DATASETBUILD = dataset_rst.py +EXAMPLEBUILD = examples_rst.py +NOTEBOOKBUILD = nbgenerate.py +FOLDTOC = fold_toc.py + +# Internal variables. +PAPEROPT_a4 = -D latex_paper_size=a4 +PAPEROPT_letter = -D latex_paper_size=letter +ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source + +.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest + +help: + @echo "Please use \`make ' where is one of" + @echo " html to make standalone HTML files" + @echo " dirhtml to make HTML files named index.html in directories" + @echo " singlehtml to make a single large HTML file" + @echo " pickle to make pickle files" + @echo " json to make JSON files" + @echo " htmlhelp to make HTML files and a HTML help project" + @echo " qthelp to make HTML files and a qthelp project" + @echo " devhelp to make HTML files and a Devhelp project" + @echo " epub to make an epub" + @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" + @echo " latexpdf to make LaTeX files and run them through pdflatex" + @echo " text to make text files" + @echo " man to make manual pages" + @echo " changes to make an overview of all changed/added/deprecated items" + @echo " linkcheck to check all external links for integrity" + @echo " doctest to run all doctests embedded in the documentation (if enabled)" + +clean: + -rm -rf $(BUILDDIR)/* + -rm -rf source/generated/ + -rm -rf source/generated/examples/notebooks/ + -rm -rf source/dev/generated/ + -rm -rf ../examples/executed/ + +cleanall: clean cleancache + +cleancache: + -rm source/examples/generated/* + -rm -rf source/examples/notebooks/generated/* + -rm -rf ../tools/hash_dict.pickle + -rm -rf source/datasets/generated/* + +notebooks: + @echo "Generating notebooks from examples/notebooks folder" + $(TOOLSPATH)$(NOTEBOOKBUILD) --execute=True --allow_errors=True + +html: + # generate the examples rst files + @echo "Generating reST from examples folder" + #$(TOOLSPATH)$(EXAMPLEBUILD) + @echo "Generating datasets from installed statsmodels.datasets" + $(TOOLSPATH)$(DATASETBUILD) + @echo "Generating notebooks from examples/notebooks folder" + $(TOOLSPATH)$(NOTEBOOKBUILD) --execute=True --allow_errors=True + @echo "Running sphinx-build" + $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html + @echo "Copying rendered example notebooks" + mkdir -p $(BUILDDIR)/html/examples/notebooks/generated + cp source/examples/notebooks/generated/*html $(BUILDDIR)/html/examples/notebooks/generated + #$(TOOLSPATH)$(EXAMPLEBUILD) + $(TOOLSPATH)$(FOLDTOC) $(BUILDDIR)/html/index.html + #$(TOOLSPATH)$(FOLDTOC) $(BUILDDIR)/html/examples/index.html ../_static + $(TOOLSPATH)$(FOLDTOC) $(BUILDDIR)/html/dev/index.html ../_static + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." + +dirhtml: + $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." + +singlehtml: + $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml + @echo + @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." + +pickle: + $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle + @echo + @echo "Build finished; now you can process the pickle files." + +json: + $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json + @echo + @echo "Build finished; now you can process the JSON files." + +htmlhelp: + $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp + @echo + @echo "Build finished; now you can run HTML Help Workshop with the" \ + ".hhp project file in $(BUILDDIR)/htmlhelp." + +qthelp: + $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp + @echo + @echo "Build finished; now you can run "qcollectiongenerator" with the" \ + ".qhcp project file in $(BUILDDIR)/qthelp, like this:" + @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/esip.qhcp" + @echo "To view the help file:" + @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/esip.qhc" + +devhelp: + $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp + @echo + @echo "Build finished." + @echo "To view the help file:" + @echo "# mkdir -p $$HOME/.local/share/devhelp/esip" + @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/esip" + @echo "# devhelp" + +epub: + $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub + @echo + @echo "Build finished. The epub file is in $(BUILDDIR)/epub." + +latex: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + ./fix_longtable.py $(BUILDDIR) + @echo + @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." + @echo "Run \`make' in that directory to run these through (pdf)latex" \ + "(use \`make latexpdf' here to do that automatically)." + +latexpdf: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + ./fix_longtable.py $(BUILDDIR) + @echo "Running LaTeX files through pdflatex..." + make -C $(BUILDDIR)/latex all-pdf + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." + +text: + $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text + @echo + @echo "Build finished. The text files are in $(BUILDDIR)/text." + +man: + $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man + @echo + @echo "Build finished. The manual pages are in $(BUILDDIR)/man." + +changes: + $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes + @echo + @echo "The overview file is in $(BUILDDIR)/changes." + +linkcheck: + $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck + @echo + @echo "Link check complete; look for any errors in the above output " \ + "or in $(BUILDDIR)/linkcheck/output.txt." + +doctest: + $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest + @echo "Testing of doctests in the sources finished, look at the " \ + "results in $(BUILDDIR)/doctest/output.txt." diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..08b71f3 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,37 @@ +# Documentation Documentation + +We use a combination of sphinx and Jupyter notebooks for the documentation. +Jupyter notebooks should be used for longer, self-contained examples demonstrating +a topic. +Sphinx is nice because we get the tables of contents and API documentation. + +## Build Process + +Building the docs requires a few additional dependencies. You can get most +of these with + +```bash + + pip install -e .[docs] + +``` + +From the root of the project. +Some of the examples rely on `rpy2` to execute R code from the notebooks. +It's not included in the setup requires since it's known to be difficult to +install. + +To generate the HTML docs, run ``make html`` from the ``docs`` directory. +This executes a few distinct builds + +1. datasets +2. notebooks +3. sphinx + +# Notebook Builds + +We're using `nbconvert` to execute the notebooks, and then convert them +to HTML. The conversion is handled by `statsmodels/tools/nbgenerate.py`. +The default python kernel (embedded in the notebook) is `python3`. +You need at least `nbconvert==4.2.0` to specify a non-default kernel, +which can be passed in the Makefile. diff --git a/docs/fix_longtable.py b/docs/fix_longtable.py new file mode 100644 index 0000000..2dd73e4 --- /dev/null +++ b/docs/fix_longtable.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python +import sys +import os + + +BUILDDIR = sys.argv[-1] +read_file_path = os.path.join(BUILDDIR,'latex','statsmodels.tex') +write_file_path = os.path.join(BUILDDIR, 'latex','statsmodels_tmp.tex') + +read_file = open(read_file_path,'r') +write_file = open(write_file_path, 'w') + +for line in read_file: + if 'longtable}{LL' in line: + line = line.replace('longtable}{LL', 'longtable}{|l|l|') + write_file.write(line) + +read_file.close() +write_file.close() + +os.remove(read_file_path) +os.rename(write_file_path, read_file_path) diff --git a/docs/make.bat b/docs/make.bat new file mode 100644 index 0000000..32a3b6f --- /dev/null +++ b/docs/make.bat @@ -0,0 +1,187 @@ +@ECHO OFF + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set BUILDDIR=build +set TOOLSPATH=../tools +set EXAMPLEBUILD=examples_rst.py +set NOTEBOOKBUILD=nbgenerate.py +set FOLDTOC=fold_toc.py +set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% source +if NOT "%PAPER%" == "" ( + set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS% +) + +if "%1" == "" goto help + +if "%1" == "help" ( + :help + echo.Please use `make ^` where ^ is one of + echo. html to make standalone HTML files + echo. dirhtml to make HTML files named index.html in directories + echo. singlehtml to make a single large HTML file + echo. pickle to make pickle files + echo. json to make JSON files + echo. htmlhelp to make HTML files and a HTML help project + echo. qthelp to make HTML files and a qthelp project + echo. devhelp to make HTML files and a Devhelp project + echo. epub to make an epub + echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter + echo. text to make text files + echo. man to make manual pages + echo. changes to make an overview over all changed/added/deprecated items + echo. linkcheck to check all external links for integrity + echo. doctest to run all doctests embedded in the documentation if enabled + goto end +) + +if "%1" == "clean" ( + for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i + del /q /s %BUILDDIR%\* + goto end +) + +if "%1" == "html" ( + REM python %TOOLSPATH%/%EXAMPLEBUILD% + echo python %TOOLSPATH%/%NOTEBOOKBUILD% --execute=True --allow_errors=True + python %TOOLSPATH%/%NOTEBOOKBUILD% --execute=True --allow_errors=True + echo %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html + %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html + if errorlevel 1 exit /b 1 + xcopy /s source/examples/notebooks/generated/*.html %BUILDDIR%/html/examples/notebooks/generated + echo python %TOOLSPATH%/%FOLDTOC% %BUILDDIR%/html/index.html + python %TOOLSPATH%/%FOLDTOC% %BUILDDIR%/html/index.html + echo python %TOOLSPATH%/%FOLDTOC% %BUILDDIR%/html/examples/index.html ../_static + python %TOOLSPATH%/%FOLDTOC% %BUILDDIR%/html/examples/index.html ../_static + echo python %TOOLSPATH%/%FOLDTOC% %BUILDDIR%/html/dev/index.html ../_static + python %TOOLSPATH%/%FOLDTOC% %BUILDDIR%/html/dev/index.html ../_static + if NOT EXIST %BUILDDIR%/html/examples/notebooks/generated mkdir %BUILDDIR%\html\examples\notebooks\generated + echo. + echo.Build finished. The HTML pages are in %BUILDDIR%/html. + goto end +) + +if "%1" == "dirhtml" ( + %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml. + goto end +) + +if "%1" == "singlehtml" ( + %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml. + goto end +) + +if "%1" == "pickle" ( + %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; now you can process the pickle files. + goto end +) + +if "%1" == "json" ( + %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; now you can process the JSON files. + goto end +) + +if "%1" == "htmlhelp" ( + %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; now you can run HTML Help Workshop with the ^ +.hhp project file in %BUILDDIR%/htmlhelp. + goto end +) + +if "%1" == "qthelp" ( + %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; now you can run "qcollectiongenerator" with the ^ +.qhcp project file in %BUILDDIR%/qthelp, like this: + echo.^> qcollectiongenerator %BUILDDIR%\qthelp\esip.qhcp + echo.To view the help file: + echo.^> assistant -collectionFile %BUILDDIR%\qthelp\esip.ghc + goto end +) + +if "%1" == "devhelp" ( + %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. + goto end +) + +if "%1" == "epub" ( + %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The epub file is in %BUILDDIR%/epub. + goto end +) + +if "%1" == "latex" ( + %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex + if errorlevel 1 exit /b 1 + start python fix_longtable.py %BUILDDIR% + echo. + echo.Build finished; the LaTeX files are in %BUILDDIR%/latex. + goto end +) + +if "%1" == "text" ( + %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The text files are in %BUILDDIR%/text. + goto end +) + +if "%1" == "man" ( + %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The manual pages are in %BUILDDIR%/man. + goto end +) + +if "%1" == "changes" ( + %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes + if errorlevel 1 exit /b 1 + echo. + echo.The overview file is in %BUILDDIR%/changes. + goto end +) + +if "%1" == "linkcheck" ( + %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck + if errorlevel 1 exit /b 1 + echo. + echo.Link check complete; look for any errors in the above output ^ +or in %BUILDDIR%/linkcheck/output.txt. + goto end +) + +if "%1" == "doctest" ( + %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest + if errorlevel 1 exit /b 1 + echo. + echo.Testing of doctests in the sources finished, look at the ^ +results in %BUILDDIR%/doctest/output.txt. + goto end +) + +:end diff --git a/docs/source/_static/blogger.png b/docs/source/_static/blogger.png new file mode 100644 index 0000000000000000000000000000000000000000..7557cf91c46182c08a6a9aeca53ad9889d8e88c6 GIT binary patch literal 5547 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 D`l?O~ literal 0 HcmV?d00001 diff --git a/docs/source/_static/bullet.gif b/docs/source/_static/bullet.gif new file mode 100644 index 0000000000000000000000000000000000000000..6305baea0d4abcf93396243e8f8964c5c392ed0a GIT binary patch literal 62 zcmZ?wbhEHb6lM@+XkcUjf_LxUDgI;uG8q|kKzxu41CwY^|H{*E`4`XGqSv6wW_6pt L?U9EQD}yxv$P^G% literal 0 HcmV?d00001 diff --git a/docs/source/_static/closelabel.png b/docs/source/_static/closelabel.png new file mode 100644 index 0000000000000000000000000000000000000000..c339e59333e4c3b5bc5fd910796fda5469a2515f GIT binary patch literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XygXeTLn>}1B_t#Wus+)Bu;yq3!!CzC+*<6@{_r1Jzd&eL zz_O}6Q6nrOf&;;F`V=YhW2-H5dcFFa li { + float: left; + margin-bottom: 20px; + margin-left: 20px; +} + +.thumbnail { + display: block; + padding: 4px; + line-height: 20px; + border: 1px solid #ddd; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + -webkit-transition: all 0.2s ease-in-out; + -moz-transition: all 0.2s ease-in-out; + -o-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; +} + +a.thumbnail:hover, +a.thumbnail:focus { + border-color: #0088cc; + -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); +} + +.thumbnail > img { + display: block; + width: 360px; + max-width: 100%; + height: auto; + margin-right: auto; + margin-left: auto; +} + +.thumbnail .caption { + padding: 9px; + color: #555555; +} diff --git a/docs/source/_static/facebox.css b/docs/source/_static/facebox.css new file mode 100644 index 0000000..3f33b9f --- /dev/null +++ b/docs/source/_static/facebox.css @@ -0,0 +1,80 @@ +#facebox { + position: absolute; + top: 0; + left: 0; + z-index: 100; + text-align: left; +} + + +#facebox .popup{ + position:relative; + border:3px solid rgba(0,0,0,0); + -webkit-border-radius:5px; + -moz-border-radius:5px; + border-radius:5px; + -webkit-box-shadow:0 0 18px rgba(0,0,0,0.4); + -moz-box-shadow:0 0 18px rgba(0,0,0,0.4); + box-shadow:0 0 18px rgba(0,0,0,0.4); +} + +#facebox .content { + display:table; + width: 370px; + padding: 10px; + background: #fff; + -webkit-border-radius:4px; + -moz-border-radius:4px; + border-radius:4px; +} + +#facebox .content > p:first-child{ + margin-top:0; +} +#facebox .content > p:last-child{ + margin-bottom:0; +} + +#facebox .close{ + position:absolute; + top:5px; + right:5px; + padding:2px; + background:#fff; +} +#facebox .close img{ + opacity:0.3; +} +#facebox .close:hover img{ + opacity:1.0; +} + +#facebox .loading { + text-align: center; +} + +#facebox .image { + text-align: center; +} + +#facebox img { + border: 0; + margin: 0; +} + +#facebox_overlay { + position: fixed; + top: 0px; + left: 0px; + height:100%; + width:100%; +} + +.facebox_hide { + z-index:-100; +} + +.facebox_overlayBG { + background-color: #000; + z-index: 99; +} \ No newline at end of file diff --git a/docs/source/_static/facebox.js b/docs/source/_static/facebox.js new file mode 100644 index 0000000..7a4623e --- /dev/null +++ b/docs/source/_static/facebox.js @@ -0,0 +1,312 @@ +/* + * Facebox (for jQuery) + * version: 1.2 (05/05/2008) + * @requires jQuery v1.2 or later + * + * Examples at http://famspam.com/facebox/ + * + * Licensed under the MIT: + * http://www.opensource.org/licenses/mit-license.php + * + * Copyright 2007, 2008 Chris Wanstrath [ chris@ozmm.org ] + * + * Usage: + * + * jQuery(document).ready(function() { + * jQuery('a[rel*=facebox]').facebox() + * }) + * + * Terms + * Loads the #terms div in the box + * + * Terms + * Loads the terms.html page in the box + * + * Terms + * Loads the terms.png image in the box + * + * + * You can also use it programmatically: + * + * jQuery.facebox('some html') + * jQuery.facebox('some html', 'my-groovy-style') + * + * The above will open a facebox with "some html" as the content. + * + * jQuery.facebox(function($) { + * $.get('blah.html', function(data) { $.facebox(data) }) + * }) + * + * The above will show a loading screen before the passed function is called, + * allowing for a better ajaxy experience. + * + * The facebox function can also display an ajax page, an image, or the contents of a div: + * + * jQuery.facebox({ ajax: 'remote.html' }) + * jQuery.facebox({ ajax: 'remote.html' }, 'my-groovy-style') + * jQuery.facebox({ image: 'stairs.jpg' }) + * jQuery.facebox({ image: 'stairs.jpg' }, 'my-groovy-style') + * jQuery.facebox({ div: '#box' }) + * jQuery.facebox({ div: '#box' }, 'my-groovy-style') + * + * Want to close the facebox? Trigger the 'close.facebox' document event: + * + * jQuery(document).trigger('close.facebox') + * + * Facebox also has a bunch of other hooks: + * + * loading.facebox + * beforeReveal.facebox + * reveal.facebox (aliased as 'afterReveal.facebox') + * init.facebox + * afterClose.facebox + * + * Simply bind a function to any of these hooks: + * + * $(document).bind('reveal.facebox', function() { ...stuff to do after the facebox and contents are revealed... }) + * + */ +(function($) { + $.facebox = function(data, klass) { + $.facebox.loading() + + if (data.ajax) fillFaceboxFromAjax(data.ajax, klass) + else if (data.image) fillFaceboxFromImage(data.image, klass) + else if (data.div) fillFaceboxFromHref(data.div, klass) + else if ($.isFunction(data)) data.call($) + else $.facebox.reveal(data, klass) + } + + /* + * Public, $.facebox methods + */ + + $.extend($.facebox, { + settings: { + opacity : 0.2, + overlay : true, + /* I don't know why absolute paths don't work. If you try to use facebox + * outside of the examples folder these images won't show up. + */ + loadingImage : '../../_static/loading.gif', + closeImage : '../../_static/closelabel.png', + imageTypes : [ 'png', 'jpg', 'jpeg', 'gif' ], + faceboxHtml : '\ + ' + }, + + loading: function() { + init() + if ($('#facebox .loading').length == 1) return true + showOverlay() + + $('#facebox .content').empty() + $('#facebox .body').children().hide().end(). + append('
') + + $('#facebox').css({ + top: getPageScroll()[1] + (getPageHeight() / 10), + left: $(window).width() / 2 - 205 + }).show() + + $(document).bind('keydown.facebox', function(e) { + if (e.keyCode == 27) $.facebox.close() + return true + }) + $(document).trigger('loading.facebox') + }, + + reveal: function(data, klass) { + $(document).trigger('beforeReveal.facebox') + if (klass) $('#facebox .content').addClass(klass) + $('#facebox .content').append(data) + $('#facebox .loading').remove() + $('#facebox .body').children().fadeIn('normal') + $('#facebox').css('left', $(window).width() / 2 - ($('#facebox .popup').width() / 2)) + $(document).trigger('reveal.facebox').trigger('afterReveal.facebox') + }, + + close: function() { + $(document).trigger('close.facebox') + return false + } + }) + + /* + * Public, $.fn methods + */ + + $.fn.facebox = function(settings) { + if ($(this).length == 0) return + + init(settings) + + function clickHandler() { + $.facebox.loading(true) + + // support for rel="facebox.inline_popup" syntax, to add a class + // also supports deprecated "facebox[.inline_popup]" syntax + var klass = this.rel.match(/facebox\[?\.(\w+)\]?/) + if (klass) klass = klass[1] + + fillFaceboxFromHref(this.href, klass) + return false + } + + return this.bind('click.facebox', clickHandler) + } + + /* + * Private methods + */ + + // called one time to setup facebox on this page + function init(settings) { + if ($.facebox.settings.inited) return true + else $.facebox.settings.inited = true + + $(document).trigger('init.facebox') + makeCompatible() + + var imageTypes = $.facebox.settings.imageTypes.join('|') + $.facebox.settings.imageTypesRegexp = new RegExp('\.(' + imageTypes + ')$', 'i') + + if (settings) $.extend($.facebox.settings, settings) + $('body').append($.facebox.settings.faceboxHtml) + + var preload = [ new Image(), new Image() ] + preload[0].src = $.facebox.settings.closeImage + preload[1].src = $.facebox.settings.loadingImage + + $('#facebox').find('.b:first, .bl').each(function() { + preload.push(new Image()) + preload.slice(-1).src = $(this).css('background-image').replace(/url\((.+)\)/, '$1') + }) + + $('#facebox .close').click($.facebox.close) + $('#facebox .close_image').attr('src', $.facebox.settings.closeImage) + } + + // getPageScroll() by quirksmode.com + function getPageScroll() { + var xScroll, yScroll; + if (self.pageYOffset) { + yScroll = self.pageYOffset; + xScroll = self.pageXOffset; + } else if (document.documentElement && document.documentElement.scrollTop) { // Explorer 6 Strict + yScroll = document.documentElement.scrollTop; + xScroll = document.documentElement.scrollLeft; + } else if (document.body) {// all other Explorers + yScroll = document.body.scrollTop; + xScroll = document.body.scrollLeft; + } + return new Array(xScroll,yScroll) + } + + // Adapted from getPageSize() by quirksmode.com + function getPageHeight() { + var windowHeight + if (self.innerHeight) { // all except Explorer + windowHeight = self.innerHeight; + } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode + windowHeight = document.documentElement.clientHeight; + } else if (document.body) { // other Explorers + windowHeight = document.body.clientHeight; + } + return windowHeight + } + + // Backwards compatibility + function makeCompatible() { + var $s = $.facebox.settings + + $s.loadingImage = $s.loading_image || $s.loadingImage + $s.closeImage = $s.close_image || $s.closeImage + $s.imageTypes = $s.image_types || $s.imageTypes + $s.faceboxHtml = $s.facebox_html || $s.faceboxHtml + } + + // Figures out what you want to display and displays it + // formats are: + // div: #id + // image: blah.extension + // ajax: anything else + function fillFaceboxFromHref(href, klass) { + // div + if (href.match(/#/)) { + var url = window.location.href.split('#')[0] + var target = href.replace(url,'') + if (target == '#') return + $.facebox.reveal($(target).html(), klass) + + // image + } else if (href.match($.facebox.settings.imageTypesRegexp)) { + fillFaceboxFromImage(href, klass) + // ajax + } else { + fillFaceboxFromAjax(href, klass) + } + } + + function fillFaceboxFromImage(href, klass) { + var image = new Image() + image.onload = function() { + $.facebox.reveal('
', klass) + } + image.src = href + } + + function fillFaceboxFromAjax(href, klass) { + $.get(href, function(data) { $.facebox.reveal(data, klass) }) + } + + function skipOverlay() { + return $.facebox.settings.overlay == false || $.facebox.settings.opacity === null + } + + function showOverlay() { + if (skipOverlay()) return + + if ($('#facebox_overlay').length == 0) + $("body").append('
') + + $('#facebox_overlay').hide().addClass("facebox_overlayBG") + .css('opacity', $.facebox.settings.opacity) + .click(function() { $(document).trigger('close.facebox') }) + .fadeIn(200) + return false + } + + function hideOverlay() { + if (skipOverlay()) return + + $('#facebox_overlay').fadeOut(200, function(){ + $("#facebox_overlay").removeClass("facebox_overlayBG") + $("#facebox_overlay").addClass("facebox_hide") + $("#facebox_overlay").remove() + }) + + return false + } + + /* + * Bindings + */ + + $(document).bind('close.facebox', function() { + $(document).unbind('keydown.facebox') + $('#facebox').fadeOut(function() { + $('#facebox .content').removeClass().addClass('content') + $('#facebox .loading').remove() + $(document).trigger('afterClose.facebox') + }) + hideOverlay() + }) + +})(jQuery); diff --git a/docs/source/_static/gettingstarted_0.png b/docs/source/_static/gettingstarted_0.png new file mode 100644 index 0000000000000000000000000000000000000000..5105c975742e91cfd7c582436bdb967a145bbfbf GIT binary patch literal 48467 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 B;|Tx& literal 0 HcmV?d00001 diff --git a/docs/source/_static/images/categorical_interaction_plot.png b/docs/source/_static/images/categorical_interaction_plot.png new file mode 100644 index 0000000000000000000000000000000000000000..5759c5b1180ca895c935d9be6539868952010ce9 GIT binary patch literal 19148 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 NFMIJ!x{Sfy{|DtAd=&ry literal 0 HcmV?d00001 diff --git a/docs/source/_static/images/contrasts.png b/docs/source/_static/images/contrasts.png new file mode 100644 index 0000000000000000000000000000000000000000..2ff7fcab9259a5f9612dda3b1971a2a76565e326 GIT binary patch literal 32294 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

1XFhPFg+*g2T6b9`HK>8aXN^d~}p{%T& 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 literal 0 HcmV?d00001 diff --git a/docs/source/_static/images/fairs_data.png b/docs/source/_static/images/fairs_data.png new file mode 100644 index 0000000000000000000000000000000000000000..47bcb2e0ba94a1823b249381ccebe60c9c330add GIT binary patch literal 38555 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 oGfsU84GYsv(H41km@|p?am<*VLt8{nQGnV)K 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 J{OOn9{ucqhpS=J8 literal 0 HcmV?d00001 diff --git a/docs/source/_static/images/generic_mle.png b/docs/source/_static/images/generic_mle.png new file mode 100644 index 0000000000000000000000000000000000000000..e2aa31f3229e8730c7baf0707cc55c964e80c5d5 GIT binary patch literal 43888 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 literal 0 HcmV?d00001 diff --git a/docs/source/_static/images/glm_formulas.png b/docs/source/_static/images/glm_formulas.png new file mode 100644 index 0000000000000000000000000000000000000000..46fa9349b703479b903810d099a4fd7152e74d22 GIT binary patch literal 35573 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 literal 0 HcmV?d00001 diff --git a/docs/source/_static/images/glm_overview.png b/docs/source/_static/images/glm_overview.png new file mode 100644 index 0000000000000000000000000000000000000000..0d6afe03422ca65d7863107e71c569c914d4063f GIT binary patch literal 22413 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 Y@7_Gk@IGZrJ-*57=%M4uBu9AlABOr`(EtDd literal 0 HcmV?d00001 diff --git a/docs/source/_static/images/gls.png b/docs/source/_static/images/gls.png new file mode 100644 index 0000000000000000000000000000000000000000..52e552ce2e5d202017cc3ccc43ba75573029684b GIT binary patch literal 30533 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 G$bSGR-qN-J literal 0 HcmV?d00001 diff --git a/docs/source/_static/images/kde_overview.png b/docs/source/_static/images/kde_overview.png new file mode 100644 index 0000000000000000000000000000000000000000..d77c2ca0cad842416701c99b5f6f6b93a69aec87 GIT binary patch literal 17593 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 F_&;RgAbS7+ literal 0 HcmV?d00001 diff --git a/docs/source/_static/images/markov_autoregression.png b/docs/source/_static/images/markov_autoregression.png new file mode 100644 index 0000000000000000000000000000000000000000..c9370ed37c583ee59e85be97ca8028107efaa460 GIT binary patch literal 127845 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 z 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%0D0a~BJQ5r6~ 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 ff3xR<5AQKlNT!-ZGvRC)=Wev*7;$p~D`L literal 0 HcmV?d00001 diff --git a/docs/source/_static/images/markov_regression.png b/docs/source/_static/images/markov_regression.png new file mode 100644 index 0000000000000000000000000000000000000000..1127884ea67159697d3bc400ba3ca6a6b19bb8c0 GIT binary patch literal 90452 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 GZvP98xEsd+ literal 0 HcmV?d00001 diff --git a/docs/source/_static/images/mixed_lm.png b/docs/source/_static/images/mixed_lm.png new file mode 100644 index 0000000000000000000000000000000000000000..2c0fbed8ba260ce3f2d62a9c04a8e8f5173c2f35 GIT binary patch literal 61676 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 O=Vuz38^#+r?)(o*D~wkF literal 0 HcmV?d00001 diff --git a/docs/source/_static/images/ols.png b/docs/source/_static/images/ols.png new file mode 100644 index 0000000000000000000000000000000000000000..2978f95b721dfcf1f3e826ba07cd3ea7aa21582b GIT binary patch literal 33254 zcmb@u1z1*V+b#ME3J6G-Qqo8W(nvP~l2X!0NlSO9C@Ba6BB2OKDAFa}D4{e+cXyu~ z*ZR)?#s8nZ_qq1G))IJu`OZ0?JH|c6cnDWkl(~U^3mt(#+;|`>sfs`#{XihDG@v2D zD-RlT=u@45H~-7I{$GVQgB|z<^!u5-NMql zjP}jX%QHX4G$#NR9ZcO4dpXidDH=Xa|r^O0I z#;bJOn$D1lpdDXseD(S@@3U!1QyG68akM)(wTG|V4#E-tc+nVyOa-4fgkDD#N23aw z#lnyD32Tthun7qX@o;x<&n-C@dp^U`do!lh{gEIWTVYWV`{hYgg%$XY(-RJ8$CZbI zUp5;{NlS+W1?}>2RmgL5$6I;pt5TY~mnnHMPDCYGTE4NgJpR_PJe8f65FApQpNC(U z`gWBVAucW+Ng*^cHpZf&hL(PgijOr=6BKk+M@Q$$lP9LA0a*)OhI}R_3ilmM5W%r^ zUhboLn$L#|KY#w5pKl{B9$@SeinCn8KBfG|aiJ$EIoZn6va+g5^U))mVEF`=sR>^! zY;1!{r<_G;Mgln#ldOV*yDz0N(9jlFR|)hk)<(;Ge0;cWy_C*8IyosTD{~yBvb962 z4o!RY>Z|>f_ypdA8G@Gj`l}{HpmjddSbukA;O*O{dy)=g0ETJl~TwUSobbI@A5t;l2_Y zg>K*TMvv2>`@$2)+jAf4&U5)4rAyZ$Zf~A8ob2pvPBo5=jm0r2;RQc?_H3}wpw4-P zD6n2xMP<0mE^V>pPCyvts4R9=WtD6A+z2UeS4JjzUw^3Yu1fn`A<1;kz^N`nd*U!t z+&w8rd;7Nbc3cs`AmuvA2LHNQxfK68EtZ70Zzu8&%F3fCMcyVSV<3M0`bElXOHjia zEMDPxP>`BRjxaGZvmGs6J3l+AwmMQp6%eR;(i(}o$H~EQdV0#i$tg9!VDa>+y1IH! zUfvFo96>faTxV%Xi77itAj*y7**GO0n~~Y6DJnfRq&YYDo9n}z0}V)sTMmx$`)kFu zUfLmR_(9~nNE=6U0tPyz)(@1FP!XD%gK*ooNJtRhB8b^iQc|8rL^N9)kio)KKaeoD zvZ}19d7@8Yml`=gkIBFw^R~;+j#*f51*6gUvy-#)O4ABo0M2sZqgUkLP;wN8%$74P8dv^9J;@-V`(_E&<=PqSQN!m}J<}7y1&CONsb#`{rp;s|HL(j^| zS(=`XO-T`SoL9J?D(rpil#`4Xrl-z5^dnk}!rFv(p2qJj{xcuz zrx47WeKUrh*KikJ6Z3w)9oJq`QetUoXwfby zPm_|*UNq$cIy!pTHI%@6Mh#ad)CtgoyUlhI7FSj{Cnjml*-4I%kE^ZJA3Ykm=A8Gn zw3L4R^ng~;C?z$OQpAUhn3&h<*Qd8%X`)9G?|q8JGp?w}lCpRmTMk9k1KCmmyez(u>ir2Wc)F3gvkkI(! z>Vd0N15ri|>16cu^iZf+Sy>_Ru3Wh?ww;lY(bOafkC~D(4L+GbJ^HqD_j=)Ym8&L1 zsk-_#RMbN4;t<#Pii)G9{%nE!_si)zU$ZUz!bV4bTxxyO?(Er2OLJ@M&MyWxH#evT z;boG~`J}Weot6sg&PTYX7LO7&2aa|+8yj_!x-{sESp-w=+r8z}c~Ci7(5gLj6kL~f zxm!A)Qe9xv&k9IO;qVy{qObrch zmkHj!ZMgC)AC?r3^Ye27m(|76oC?PU#bloDmX;PMA)}+ouIiGKl8+v}3JF0u*sgds zBaM%bPkMPIKZv8>a^4qo+cdPd-~5p-adfxr?c29b_iH|WluhAVSy{Q_x1k?l0gouV z*Fx=s!W8SPjMM^YHiH6TqlU(#9m<|Gk)dyfyW4Z)w$#l&RTSn%3&e=|?qpt@5iaO4 z7#I<3wTA(WDI&h-A08%a6zU6E4lw%qUJx>CgxMOPLryQbxL_JgVi9#tcO{9@NF)5V z&d*97JXq@gKxjMqp~^>Sl76Pljx8#zT*MUpphT;8?-~;ei`U`i6g-Oekz`Z@BENN* zw&^yOmORhT0}>k=8v6SB?nZ1qmvM61Ezql4AFFs`WJF~KXPFdsobUR+Arlf^NuH$q z%jbkyNl8gYrWM*0vj9#|bgWUf3N6tV8wo^JC^jY0g=M!{aoxrF2`qkP=vv$JFZ-hg z5FX3|SA&!b{jQ_Netz)+Gkn?V>C^5Men|? zo$c*uMW+`ystTT$*?BtJux>f?E1lT zBDUb7okN4_vXiVLn9-%NJ-&t2bAm?(g}sA@&!pqNk>OU z=xJ%a&W{$JkHNKX*fVxR5OsBTb8~Z#kB>7mF@-hI$tT!v9E601vguVma-tzXr{myI z)zo|~oq6r*RVM-W(a|!yv(r@qSj$vFx9H!a?2D?-_G=flrn44&)PUt*%{oVq8KvE6}tcDp!p2k>KSyWSqh z5H9{83R?;%MC6xmMcg%YfYJ5_&GE{MI-cdXOJObCQ z8XAfdi-l!#*I*jcrpNg6?(VLBjfd2!+v(vmV;>bOE34WH#mWq2M%RsrlHy`yzpkz> zo6*woI^Q%`)=9eIo}Trg&rc-JAofK>>bklVaQCi1e*75f>+K zo0u){!~%tnX5$_v^MrGDzW&B{hd}P}<2Ui~@nLVqDE0L8l->$HH8eyZ*z~LI9UP{U zeG5Wi30Zy4oIeI%LvYQ`#rs^;sOzR+juJoI^*gAZpXzl-qlJB4KwVk2xyO5EjNkBnCjuPJJ?Boq|b>glB_2qTHh zDh!26@G~(p1BO&nQ!}XbYA>^F47s7GsEEM9$EQ(L`>=_I}wh3hAv{ z9d-`OoKLUZPw;TJyl2jYU&Y7ccB1nMQ)BXQ;1!$6Yu_AiMCK#AeQr-3GfP4w{?YvZ z7g7ko`|puL93Se9TeQZkWsT^F==Rx>k;mNJC2v<1y=dQJP}yA|2k*Tmfa_|0$U-Y5 zj70fP)|)tpc3aTFt%oMMJrbKTR$ZOWvhKr&5V`kq#H8Y~mY0w1OL1{vKmcTVxFj`& zf;~B(yjpFd}n#q)jEd{`9Yh%M&{2NDnx;{vPAF|o_$rGK&kGFSrkdcte=cJ^h!o$Ob z{~Yj%7dgh&{pQgcPuD-#K^>GXr(LcpW*|p1phb&a^XO>lY=j zt*)1spq+O>XlUzu`PXjpSz&5H@X7h{O5rpES;O?I=XF5%2HsKep}X=a;Wj23Z6L%xN1#pEE~4%=e@UKoskDmD0DXt?fsD|IY5NZka84nb-O0Q8JIs z;~I~>k1Cm`XJ?w9w0h$Xul2b&cIuV0xAr@>Wj(kbK`cKWNwDQ4w9!y&hhVpxsD9f2 zVHg5iOUrAknOHJCY=)-D+nsZ$B#(-hx3PWc``(JP+ZU5H?PBRdUF~vj&yj%~x|4&b zHzIYTAJ8!{D22WF3|_oJqZ)1~do(MbQufG0JY)kSjEIORAtAx#XnW4qN?Jx{W29sS z9tpf^%;R&izXrK~db;ynC_;rNE6kw4Lr2g%H9I>yGjnEtZ8V-7O`MW!mFsyE^*P(( z(9lq0D0YOevq|yrr0>Pqpn)%|jRgn&)6?x=qti<((=#*iZ3yY7hU%&qJc!dtY5YN*-T4(3I0#vzsY+iC@#O^7R*hvJf zY8f<>C*O%DO{$UP35q8Rs;jFT+@$rzyl-7%lmQ7L^poH=A12L@7vJohJRJax)!*Ie?px3__uK~G8gZd6gA`MfGp)X&&aB^}g(68xW74bSOf=r8yj4Ug2Ra3)PIh<{egPO6lvVu*@ z)79G>BY-muC{#25@%y|y0gE5EB_tYWTBFi{6WCRRo+%@Px+NHVu!Am$)DRgJHbc*T z4s#Q^fXfdHEEA|3Z~)U*o< zmiG6h{Qb#UepU7L^z=!D_N}b}7R!6`#9e28LUL;K$=XZOiU{J#vaemots-xmo3}KG z%Hy+62#x9ku0440z*s}N=H~xpm{p5pcQOB8FbnN9n}MRNtlRFQ%A-dFDtN@iu4l)4 z5E}PLFbN6cy-)UW=a@AMQec<|O#D{Fmx74MWq(!M|Aw&dxo(ts?biZHFMWU4y5OJ0 z8h2UF(|phQd3j$eW{bFO`W-Bk^Kl`sLv~)?16X6p^r9ISOevh}0VgMXy?RkQomPX(s%qJQPxp?UW1q`4pOC$F zU)RMCG$N<8bDk1k+gquAiI$?V3E0&X6+3eDOEZvT?f34zba(fPKbog`Wn4!M&~kQm zHcb2Go*CcQ3a@a^uly0sef|BOd&`7dGg~vQ;YWh``T0ll_m`fFr;pWm4)*k5A%L(c zvl(@{IQO0?@fuY8U$Z%jQPBwrW~QdiI*ZH89^11I04pJY?+lKM!@nmo))qqpeYy1| zDMLp6{QP{B$hlkphljulF1ZXgP^6;i(tYw7bTHZy;Nv6XcL?%4HSbCkvrdeSb=dq} z4-0eU+l!l=(64?vGYQmggnv8Rj<@$+ZQojjU{%Y*APz}PYPTc)LOp$g@D(}tx>$#i zT3jKUWtA_Yzn1T^ghY5SB#%GR)pc2n4#~->Umw3c%eUZtUeTT|LE!C;u*l2r)~Os= zpMQvG(<}e+d(A((W6*3p4aVq|G2ZoqI&%%*Q`Wi@J3 zN~PH_&Bn|;BXmA?48W3E7{+QjwVAInxwKE66#2i4R;o1 zW}1Xxa`T(i6gts>Pn?~keNI0YL}9zC56+CKYDgb!BCr<5YoZSr%HDr*C`wN+%C9sg zB*H2#Arz6-UL)S)OtfbVjf#qT|K3zXgD76kw0IaUa7_KijT_cH$&%FETwE5GmU08u zW!`*Q67N-k`Nf>P_;7odR#6z(y=i8ue^5_eb1>6g_QHPX<=fklWc<@hOYQ*Z)<^pK zRDsZjS#o`{u8v`AH>Kz>SOu=u!J*Q9hd#9NnS+BWAj}RaFQv-nwRbes6uqr#8nSvl zY^P_YS0_XqgX5Wl6I;`gwPZaet_h3cdJ{`F-NUs{X*X#N#ctoIQ+!U-e+Fcka?Yb9 zuHaV~C-#go(2tarab8N(#K<-UUN1mK#R6DqwzvEf6^jffJ0~Cj$=JW%aPy(DV!ASr zZ+79ewZb!JY%C~&>4k;gt2Csff)ALQO>Jx*j@?^-kb-ybFOsUCM%uDzk=j}1z zMn!)dLGPNKaKFpKvdTk&<0Clt@?;=w1D)xU?v+XkCEQkn-*p1Gt=fhstO0HFjX0iU zBDGt+G*{+4JT6(Zq`kvuWowvk`L=GP-nC|Z`VG-DS$FYegpCT=F~C7x9Uplc|2Ob$ zHMXDsLMobmmFq@9?&X1wg{5C?c4LFd(QyavY9~_m^M8YHy#{ev1O)}}>Qy%BP)nuY z0eX){jLS*V9*yQtvwhMQQ<} zg|_xEH0`RFGDBOmyQQCVuht4t1!Qfx3cbBdjJm2n^jkw@anb&q&FV-Ao#z3Mu*U!Z z#KhOFZWo1t%X8`!xV;@FrN0IQaWh-X3Zj&j{E_#tDV&P5Sb>J|JlHN!|C@x{sW2%q z5ZBdB2@MTRj8`dai5UyVAkG>Bu_rm1c{3_;b=6uxKmb@08k$UCs~b-0oB_5u&bHwi z9|46AbkovtHnzb7S=qKQT$&Ip^2(?E^v0OX1t$j^N-2CXhmL8C0B2s7l^p>67K%l_ zytZ~W-%UDkOng_Dgx8krnQvm*DUh)Mv!Jh!;o&}mU`Kolx{iOlr^-r}|dlm-m{yby<1q5}QK<7Y0cMda&`jap?4E504V z5&=WcWj(}hW3xu-dm2-i3Y6f(H(bDb4jlyj*gKtHSb*wbN^)q?**Ez(`uw8DgjS}n#UIWOzO!Z%o z`%>_eU1y(K49!YGlgs+?Lz#_@O}pfmdf}}Nu{)QjdY1DiACQA6m+*Y-^;6PA&+0an?ybAwMP>Jey4TFf5j;=k^6t4Qd0^cioDypfz_n=sE z+uGXJ*49cI0U7P(f*t-;tZWvsv(otT)IkRYAi@95y5n0lYC(&5pgM`B`EQWd`g z%KiR5Dl(G3qaw=is&FKbF3;@kf3wC=D;ixDK6~css-&n$p8(~?J)2l1V`O%=ok4L( zx8||q{0qSm*FVx%j7%pQRhHBL0F~VD094|&9b@#+K@WB~Sl5HxL9}&sjg{Jro}C=H z4{qyquC1;{k_$)=d~a*p+}Y{u>LO4{d-wi5l&tp!1wA^9DkVUXT{WU%q^N#FX6qtFLdm0E($$@h~kO zun}Uwe`T0etu<1SGsQnvQ+r}z(WWyL$5-_}H+Ok<)@f({Ay(+j>}*zUF4KAGSmYfJ znOj^Rt*ACm=zB1w%jT#DF5B+_#nmtz@fu=a7-CXWy{8(2sU$)Wh%Li_m2dvYpaW46 zL4~NY0mAg#!~_L`1hWN-n46{wBLPoxK8UWYy@P|GC^gX#{?&(d45Xyq*VO1q1z+eG z+1RAMecSWe9>Ou}vcRs5aASqS1fF8c47lXi&!4#NIz~q6U4gjC<1fKB@Rt`rOpAlc zEViEcPhYHT#ia^TwhM}S^s2F`iI#__^!C^0$N z)6;XO;5n$(&!6}G`0-oc7Q)%W*cjL?I5=VCukCpY5DgOxi{ic$HoI`V^BM0)4jO32ftED71K#K!c2;a$jpl-7|trO8ajq5CV!XmYiH%1D&1n8u`vYT|K5s zT=ZbPn>Rr=m(T1)LPDxctzP?AuY}_QKR(YG1J#{7Pa&16>0(>%9Md?B&%jK%v$GRE z2fYO5efja)Pg!r?Xr$eb=XW%#tU1dYEt~rs@qb){r>4eBA@2WoiZJa};kRHX_@^R# z!+_9rbbAo75h zmhY1`VFtv#3?<3T%)ycp0p^Fllz>wg@al8~xbnTq{PM*Cm_82=4+3;49i8N|yx$== zNJ%bhuvVQ<4d270+6^BIGc%3HkC`eR+}-)@&bGH5o@TseQVcIIFDD=%7#O@fI7u*x ziHVao#L)v^zIX+s9@?HdU*AWE!^1^q;_3r)qX1$+3eta`4en6`#ArbiD z!w1Q3m(fs(`;VAPpcwx65nWcq@XSSCUHxZ!`x4-5GOX72_6JamO4sB=xh#|i#U~CP zrrdmC+bQ)iCnsGsM+gmvD#(Kkf{#W(-~<#mi4e>yi0S&PgZ{{uy);<`zLx7&#t)Zqi^GDMs!JLjk53K(&IJl5sn32&pF;S4waFJhBTB@j| zv>?w13Z5!J+6tGoTcMXusK~@*r?YDG+bl^qobA8k|M2VMGtdS;@;1mYbr=~N<3Vcl z^~I*8QR3iyV`T%eOF?0G>+%3Gjpgp$`Ej}5LmK})fzWdx?*27@xH>u6%O|iI^yE_# z5PY>B=9oC1X?YnD6}6DB1bSS#(-NLtIKeZyj`49JI=VSvq^A!^){fmxNurRNnw#C- z+!zJW|IWvmrf~d)?`f1m9=jd!mzqz-92f?Ggiwd(r=|va<>colGG!0Dp)!wreageb z1KB$1_lCf?{IbB-`xc@2vmgW zCT#-)Y=qarU4#tDzlhgRcUBwyfo=|F z=i%9h@?5j9JTW?rOD`;}KTHK@Co^jBH(>z=SCJKCC6wxzBIZ?)QgL8uJ zSZ$!C*J9vf(c$pXFi$U+w1!^$BpcrrT}IUug&q+n%QpMk1kFnOw~xd`2$?$n2xd1D zFTA}G6n9zO>&ST40yZ!CTRN~LlV0$*l%|%#ORs=L{}@#tlsU-%@BHb|@bFC%6502v z(63;5+%~2#J}IRupPx)#0EuDw^l3$9rLfOw;%E=xHXv#t-NBqDI4$D3o>Ea!0qF+4 zSxV}fO1VjUY*CTx!PMWC+4)3HQ24=YRxmk6^Y!h2t;v`EHBCBtdYB);Zh_Z0D(_A9 zFRJw02Pe58K07!+EGuI}$6Pi19478!ItSJ!lluabWkqdz)#W_=NsLO|+;bBxzwf$Q ziM0mMI>Zjd&;$u9Kr6cYpF%LD3I!N7z(NAUF?chgqkq_VUvf}j4axiXF%iZ$z^P#k z|4dhkrWi?pKWu{be+9j#rtruUY()xoi!fbt(%zhM>~>J|4D78+li}w z;Cxv*bSwG%B)EjWcdV4fa4C1`*XI?F!#gD{Ckj3fTs|GLbEIDH&A0N{Qr3-H|7`&GjOr zx1JQXTptTbA^TK$xMZj1zEwcbQ%Z3t9; zk&_$P-JOv7OE*SZ!A|0Pw)@3YdeYaPqwmuGk}fNa)54o0~3=4_|Srai7HpSvb|vK5=)Sk?V+oKprx!F-6ev%H7_ME zFAu3FDvBtp{`isc-o4(|%Yy+jZ&9|M?o*VBoq#Y!D#dFQT|9;!Fg9*X)KvW;@W6MWqgUTn{G z0!Iy*aKQwX-zeEVwzig)`uwXsnL_TOh_Pd02?TZH=nNB8%N?QQpIS0Cz4 zebTmDSw=6jvoqyDB_&-sKE#=OqLH6_d}Q7--;K=86#|6By;VDj;K<3^n$_R+4R*Cx zu(C%dGJ~@kLT5wGM|L&1w|Trd=Zz!$Xx0A zB;$IaAgcR)m;1JMlLeQojW?#S>JsO#0zDmF-P7Z}6-u8&qls$w4y^1!m9DMfiP|%X z9v<*Gu~HP@2#O{EVu=&HnR_sl0W$>c2o)8TSs+CpH3}PWrrDvaRPF4R>>pCfaTDtw zZu9@wZT1g=cs4?k+Br<6ZVG>;FGJLF7b0w;8aQVD-2h$i^!05#Yh*bXnD6 zzC7|EG4BY7UQ%}+OdVK=n#>O$Tu%0FKquedcVS@22Cf$B8#p9vVGJKmzclj;1-tTj z;6i*NEUc_n78gmtLx8a7BQr&XGK$uYpeL)5H8;-&h9O=q6`D{|(oKY$>j5eb`9=P*DyI3m6{`WaPluSUgjiE&m1qvKlF{yljnS z!IjX_HFtC@g9EK87wl&cKsy?DSy|_94!4ka- zgF$vdfw0r!58y1o^81$WnYd)@PZ-}glE#LIbK2109`^7O?Qbu|$YufS0$^Xz`t90-<-)15_@~%JOuaUv+UF2l{CpzHk`1ih$n$px_CM2a^F58`xI> zaRuwRw6wG~UiJFp%=9!80)h_`4WJyX75wtRuU{1W4zte*nIYwA#?2)m8ySA{k)3G( z;Vn`(+t)`K27d8C#J9#qsnX=lH$WkQ?+(TlhKFx<(=JY1ySi3Ebxq{9N_hW%4(zb- zEhzREpdWA~VItsNKurM+@v{1t+fTg}@;pEK?kjf&Yzf+)1FZ1meUIJyyv_(ecq?ie zHIv%wX+S!|6swdbJl@rXi2w(v$jNFk%xB`SL+_xVpa6#pavEIu{=osmGGy>_;U<<$ z-OrH@Ux(qr7Ohv%5f&rd( z1g<5$_S%O1u1;?5nirj=B{`f#6VNA|2fQ>OE&=ldeM29naGx`e>288rqh_G?xedSh zi2xh`uQ5<^EoGW8b^102WloM%yO;Wl;T*^y2kO<<7Q;<#y~|2ZpMtp$K=KiMfaDq* z7~ldAu~;AqG~QGp&jeX+=}58%^l{L8!*75rf&z^PA_j0J?8aFVrn$UIBnVF(Npm29 z4S78M-aHO1Ec7fJ7kNKq0t*itL`*n_ySgA@ZNUAA>Ibe-Fim=&?G0Wkgy0~DSFecb z=?O71w)OUYuBka2DY2ULJ{X6b0;<8x#N?}S^K!S`%W)3g=p*~h{9 zibv7A5WZo-U@k}#bawy_w%Q6xs`{f%j1Z`JhzyU zi<>(X^X3=0l1ZPFhxKCAAVaWwHBDT^$o5&&?OpAmf#HD5B03BmM15;p+tSaU-Ro!+ zp;o^Vkbne~F>L6)c#wKuHnb`3HztK(c|}E%me2m`&Cl=h^B<-wlVFB`i$|OWel|<+ zQ1)6o*gd5n%zb=>le;I1&9PNv>Er5-m-AS4N~^t&@DOn6Q0@!57~#^}fwGisaoey5 zrW3XUm0cXRihv6dwo6px!A3328#l7SC~G}b1adVYF){NUEvWnG;&}TM{%Bwp(EVx= zBbXs(OdWHmq&tW=KuAFsBy4{uFB<;;(d_@LSt|QBO^Ip{eJy1YzzUkEzuc8}oa%Y- z?I+>t+SIbTX=uO?0Vsk%0mLR(qxXYyC67{X9#Ww~ppucAUEzJi# z6L9>km!&RikBK7ao?-x8C)t2HTv1e{tX1L*^8jc*LeB})eU^?KO=bL|Ve8By>yUM6 zO-&7yG;nHx{CnjcO!Po%0i9lK{@v&7xa12mfuAI`9<-^?pYJg+geqolOxC4U<${9H zC2gN*6qL0!d;OChhS~?w!qYiFWlb2jiC~Ne0j#I9(-Zi1z|8O~zKcJojEy;YdCNeK z1z4aW9Yt{lfa~IDAK_GH|82B*-w#V7n2tnES zE`0K$+YCP#Nc!HNKj{(xWe~%}1$!Srwlpx91mb6JWe{j^E6}u`KD{CeC6ag2E3>dr zDYF*>;F}FC3yU>e6YRG-n|p0Q;Ejf(n%E(yRfc74Bc@6G{JE%_+VB-BTF?dm4TiWG z8&89c{)!>^9bjDRh*V^sK9@8#odZms|LGIrHrVR~1d{6wXXodA0E>v6?E+#QuXJ7k zlJNirhtg6WC8h81)6fUNmCbkeZltS=HUfzJL(ui1zZigOr>A!Y&jS#^7N9|xxIvV> z1VcC^BwDJfK=&D_s;cVg)xeGmL^&+9o7*9vbJ)mbH&&khBG5njRIe5@A%WeCkAS$b z)_dHXbmf~DE-6FLc$hHTXwgy?(KH2JfvU#+ORdQ)*q zwB;L2`}Dwz_V+u2YyeSHP*4CY8Im86c(AfC616lneFE49rdwLPr(iRHm!Koxym=Ew z78tRRQ82ZjF%IOY9gVTU6l9UYk@L@ihO2TD* z>}b@k?#j2LorSu?X$}RhK<@l=+7E9-zgS7V)nQEcNV0+KBSHT z&DX3arCq1Zn?qGaWoyItLV$xK_HYY=Re?UPaSAL{Av)UNsxIvA=#YbfmP6Zu=@dq= z`FS(wvePnHq5Z?d*Aei;$+e41OW|mw>B0(Kf`OfFXbuju_~_!Xmjv5Q9_vIfEkpOo zd9(}}1$uB?I~lhnfkBDT1}BQJEIE&$8`UBuD%)5nkOTwJsH@AC3ac9;60cwRw9ak9Zjd@U&f_8Hjb z-rlKkW!U@yKKdpO*DLA5tKFoB3nE6pSnQo%)#B37^!oC6p+Sp z1Ugi``ml%4z~K9o{hQ=uh#82k&tUX}#C^t>5{Qb8a`oz_#=6IJ(A$nD_w_V2c{w@3&Q_e06YiGw9%?l8Ub5os@=8% z8mAtC$BBUf-x(e&Xu6-Z0DmvM%sR=0T||99z75x(0G6nKK9ol6YH5PX;Rc0f#Txk6^bdB*pULB8&Eytk0ig8mE3NIYD8%apNUe)P44c z&BuZyU_Z~$GAslzjX+ob0Gzk8Gh@#OPl1Ah0+2a$&slpuYaY+R0=-Mu$$h8AtOs%6 z3l6`5O@3c8vlkL}2O#sNl=!zv?vG_ww(~(D4$?2DS#(sGrx1K-M*>h1tqN$Rb%@&dY#%z|=oI?I6W zWTR0YcFvX3^%VZ9LW9YRgV^6zgS88V2lF>DN$DF&PPi`5^Jg;fcu6H8x~gLGSm(&s zzjzq=>OiA4@*dXVV-|oB4|GTc-KqC}<>sEw9OdRX@3PzunnlBh0YbHW--XW^onA30 z3@vAL=-==pE}6K4f7BzG7X9zv|Gla`REF*3OvOXw!Ool>8j1m99tynGz`%Vk@9}WF zAPxu>QQ|JGE@X0mf*LRl_?@E&&Nd z5I43YqCu~&oMbV%dez$E+!f0SM)DPQKKjWD=MZNMZ+*)2YNta897y!7a0~U zLu1(_Qt}PY1E$)YCh&9aa<{JbU+}+C6Di6iM|>M1k&`1JlP*-#!O$#V6bQq z{qO_%K&X-VIz}fhZJo$$Y*NCaMjTULR${KuqkPr$byy$sG~UEUAarz~Yf*@3Xpz(? z>XBc)<{y6D#Pp89D{SzVgZv)(#YJHJ z#OP;EuSD!Wya2$BA;?pk$JA%?xp-gRR~o#U$d5lZMnI-zXJm9`c$nR%`pb;yCH{#X zpb+$HkBjHlZr^FW;mV_DIN3hLwY()J?_45eE~XY&77&9=K#UxUOz9NmAR_}9Wujh& z3GSt0*C|nmRO6F!$I6HAl)SY3crEZ-7ZJ>pq15GHWkCtt?I02 zqX}3vnPti;YXi>)zfK?Y6jsw(8b#+!z00OUAf7%gvQE;?cvLW4Jay{c#dCc1PgX_C zL>bm24VB2>5%3+R7D*PI> zPVL(a)sml|*%|FrFwl()c*Vt2D<2iyz@sQ zb|2y`R1Xsq_GBT^hxv_zgL+*e!xi7XEiK9PYd8Q9vaF8XkxJ<>w`MVGemikP+#v-1 zHpgP4niks0KAgPBhV-n5U|tw2mVrY$em#m27h?T2F6*w`-*ZFo)E11$`y8!a|6@m=(w_z zMR4HBWu^<$1_y7R9Yn_>ouAuJU$wB19r1J0H7+ImmE+SfqQwckCg~@c@m3?J&a(ZmPNNwa~pS)l`u&8VsAGG&-MIM`P5K`fSK91DZk7a zT*U9l$vqUVxskN3jg8W1xd$E?A7JO6pbutz{Pt)e7muBWLh01PYp=6oANLKkaM*1P zZaJpAA?kVGT2ONH2e##t`*kD}k7lRi!zchaBb$D%meuhS$GS`Bju-Z%H!MC@<4 z9`7g>mD-QaU*j}0=|Q(-^1?(Inp{mv+8!xHv$5GM^sV7gPQ&q?pAMx#na<402c}__9b*S5v-dROL_&F`j z5%!yL1I`k^ENbV!irKC4pBVkQO`oRj8**}n2e#Cs2yJXkCLGtV$_RVbGpWX(M55nt z^wIGMt~NLSo@s|7|9UQaS=>U1NM(v4TcD&a~RO54Wye+x+eu&@*)9A1z2P zbW=6xL7d_3i^;7_k&=ml?I${<-xBX_9+!xlyG>T8Y3E2kyLY;Ytn6azpFtf#Lp3EM z!q4BYaL?$r|79)Td+2+1tuvv1t~0}`{b~8iJe`&P4RR4(1Bn&q;i^Xx3upI@(b(M0 zNy*9W&jsDw#RM);S1o_s{_!*T%a?=Ver~Qd=G;=A-}dJk9HL^yN%m?l**Lx5K6E;x zI*7wX)<;IXxG7;`NI`M;8E+#2J|^BJR8%&Q$hy^^-T3OxW|VJO!RSu=_d^`JcOP~6 zI5R%$-gq3S?SCQ9O^{hbu9z0m9!EuuR9(|topE7@UY1BgBJ_A)rKD8ciHqcxxNX5I zDRFqR^VPs1*QQu zAf0E88yI++Y7fmESIKX4s%wyQ)4D~`Q(Y;w3GB_BT2ujwsWR;vJu^m2WN>fh%NOs; zA!X4U%o^L{>=$tolN*~O;4g!ujiY^ABl1{`^K9+f$5LPp9j}@i<44TxrHfJ9)4EPI zT)R^$&OtjKF7ffZmDLOxf5TG?A1IvWqjry%9Yd-k`j zCqA{2v@|ULR8~gZzyD++KYCo(Dqte>I*~`*lNQYO$GjW?v3Q8YPiLQK^GHO0 zZOq*wZJg^gv|^qy3!dELcV=?zBq|9Bu?wTTFwr$(NwIvkGjdVc(cyGUkXGWdVteGt zMESJ`@jJfyvNLIHt9W|65?N-sGcd4vQL$0HXS{bBZ5(|seWRC)yZ*aKqozUq@A}x# zi?=bjy@kKrM3-^{$PqXDc!v*+m=rqHLlkAOd*oc+5B#3)(xj* zd1j18ymtzG;p`nHE&u)|7MWjTs8I{%;c77j9a%_76FF9HX1e9*%)FVhChFlDZz3=D zz)w1>+=`ouDF|fbL|&yX)+`F={1v^ly_MqRS{?*CI!3 zUe3ORa&rc*3x7EZ)AgKN00ofg`b4nff}eEUem~;dNlYzY%9Z<>kJ|0h1U~`AP-pOE z3jRdV;g$?LyWhzH{Oy^ovN(@{k^)!n4<)98oQ@|$%QtU*WxqZqu)Ss{<;rk3u$bYSIeAm{m50wl zFyd^Z?@b(7tZKd2e{(BWW!TV!b{usoJLh_uH;OfnGUIoy7jH!v?>Uxwz7E#Xa;kH; zVkYB9!o~f)irL=IZu(qOfY@79QqX3qW@QHRpf<23?v^7;!An0vW;1;yrA>^-8prDc z7NkMP$CdH~gqKeK%c~5(di^^31cOyD_KxCK+`_Wug!#q=x46s#v72u_4ZSN}ZupM* z*MYzn?XGX)(|oAUCnY(pJG?Os8R`)W$S9)D++*ce;@&6iDKuTd-TL}I1F3EHrHO;1 z(*hCaVLuW@@JoAZp_{xO=L&}gK13AVJgFau?oK}4jJAHTWrk5pl;_l!$`|B8POp|E zz~)ix`~Ot-l~GkiU9^M(N?wo@iHnFdNVmYH`_kPYASK;MT^bRP1}W*3l5Uie?nb($ z`)$8(d}F-v{=M@X_SyHGefC~!&bj6qTpLFoTWbE);Lh%*o~Wtr7VZh`97>Cd`N|E> zZUaNNdlD@>EDSdtc+(#24~N#Wi>^id{g6a~uZ)=^qp6A`GX4cj2Psbejz0N|35yx6 z(MB9*%5u0|40Ps1y4EOc*VIAG82vB?^x{@RPYN)}+_9yS`IB^yYqT{JnG7LvcuwSEE@m z-ekRl?6_!ms?zR7M<;|Rgxxg$M1Ml+qLg05JK!k;qeEb*~noIaRqV26-OC+t_ z@;a^K>?bMglMFjCXQroi3RkCPO8GX_wvt1UB8FU)uU%7f?ltwB!)t6R?I|q=JGvv- zcr=$Al?UQ>He6jNOC>`DAKr%-F70}KCSDJ6RxsM(_^1j~A=gJt!B(*NH zTYLuSYWJ4KdF8p{olu;a88Ppr8Anf=xJ(bOi*c8$W3qh6>vLN!G2^T)1vOO_>i08H zHI1hMM)s^}f>*ySrDBLIeiN}6eyNhuEPuMVD3;2N+ZiQvuuV$1TgxlbtF%`@-HEG2 zxXMiE0&rh&A-7FW*8|fNz*8Vmsm*OA7yRJhC|;AHoecY|j{f@>(WL$G6HM`Jl?E3H ztTJTLlXaJJLf!6J-h_nVJIfzA-_(xbk!36zCI0zzOiX6F_1GlJ>oekrmvf>N>b1IF z7y5cFCHDN4cSrX&gLYG`D2aeU(7W=IBsFp89Q@vE4-=}2N3I-QYPVu*csQ*!ehdBQS; zp((sZ^z&ynEBxErc-QuC6}4X!mPqm*bVUcY{RC;%XFu6PmnvySM=LC_e|>>Y}FmdbEa4F{>6-GX%()e_$<@TF?9}347?U8M>$q@H9P=OV?O7~>Tqy!##l+l#E0go@w=Opblpc%ahEjlxE)w1t~zsACU+I_{k z>GAp@v+5VL+t52_boBwFBQ8(o^WGjAa43918Wu+v`x)x0t492I!^dH?fCMsZJm9e`#&CMMvF zC!Fb-oo(AFb+{Gu1Rr3o(VdyumgaklUe69<=x)jNN{L}%#Nl@L3qJe)y;0Bks5`B()e#0M(U@!Wm z@LPn_#K$rY-PgAxXQWNjkPxZ;mrT8z(nn10+2gg2zw2<$Tv$TFV^3QGT*e<64e!~3 zNy)>(ELWvMDk6gT;rr0fX0L$!e3*UTSYLm!@G2tzsbf%JDB1Rkcu=tMzK-AxQ-)tl zWx3t;Kv*j2g^~g;X?(>@_GZCYW$?xwg;K(&61Kb&t(^o$t*Sqi9Qfmz(L=t7iBcAI z9B0j0S{kScu=|KIH#SV}y{BhZ29jH|gQgUXk^Eu23Lc+^+p3KEPVaAy{)$CdcynC; zBC-qrEQPJAs&}<2?a)pqz{X6*f`q?v$|9DaEmCTLz-gZ(aywWar}sX7?0NdB%*y&D z8VxmzND! zt+ahk5#s<35cMds?QN}QGTYu}XVNUsdLYhvVQu(7VP!sW?LuhmOwl#6n9)SVt)pH;$*0hw_!O z9qr$uN64+W0a@bgmN<3`_<2vZ35ixk9*~VpP{hUmY;Ye;C}m3`WVOfLt1C1#-A<b`}*##uEH#AI4h9N zr{PluSS@^3SDJ%p@!8$Ylj-&nFExB*wRf#{!7+V%8V7*e;rtkYODU^l{n;%ZZuSz} zovccEZ|HU=a<3{*T-Yb)9^CRm)y|GyOBb`er6`4~jE}G5_Damehfs+vf9&-nsUN{A$+jL z%j!JL?Noktb(9tWR3LRebR^{CyF3z~p2=z=*Kd@a<)n{6yW@qZ5Nz+P?rFcDdv!b@ zFk>Gl>~qvsVY>c{!&V;+iR+MRXJrMbefqYxKvJX`{>Dzk3V$f0yDN;0kn0bH{ffr? zOvBb~9=~F|RMe2|Q!^EDzYWgZZ>v8xk*s*!nw`J~6B8cvijIc&a(f@C@W*f$B?Hv@ zYgN^bR1u*9ezKr728x*z*FfeWbO9$jz`w80kKAfRj3Xx`(p#b=DrzV%MYBjPm8iix zu=2i_63Rt5mJgh;b_Vs4x3;s)<#Kb4#$HKAZ74eVRfiVfB(fN9$k)r(rz~fNFDCis z+s2Ht{3iYK=U0BPFqBcAey5yMw5>hR{oaFI@U;o!&c=e9xm=3wobK~Y4P5fS1?(In z0(FV~I~+LzJL{rS=%zh_g}l&qUDc?tCzIuf;9zIw&+kZhL#ySj8NMlY4`*#nVx!|o zFZqH{IdrA?>|%dU%i&CWrEgYX@$>zPj&|5#D1) zvoD##AI!dj$UHQ3y2y#E%;)d=SJ&-pIukWE6;z-$8Ols-Q2G266+M<)y8>xwXlvnl zA`3MY(hGj+8Fxh-U-HTp30B6FMq);E+{d};*htGg*n$s&8l@fKgn)x9Z(U5Q6;=5R zM#pU(!0K3?o?Zu0#y5HPy{U3}Vdn9ARYnq0Fse?Mz`N@*2s zUBz^k6EJC`A9`}=a_2?W6qRu8?BF~_7P4{=$CV;D=zd&>yGhlp*D!1=HI3DpDK_h8 zaMh8*I9Sx@a5e`#E2wB&rRj7nwt(wbbGZa(YMwja`~J0up~9qviFYeu4iN_U(Pl^m zC0*@-uUUF@?PX@mX5$FoFQD1$<`TERd)k2zyxE4T+rsjTBgXQ71U7v!TBaI>#k~T2 z36pmA=a|3qr#JbFPe{`$etgfe`yH-ZkLJC~yiGZXjtgbOyS~l#Ia3H z-nLIoJ_sN|S}8?56`sr8eXFf~rtg}}U5!Q;g>RL1>kU50q4dsbEBr$n2HlU@Q~k5I zcGl(t$J{lENBF^1%WcTK{3e5BB?eI<4{9q7hFl4890jKa4i#QDV@ya^w#;WO^RGuH z>A-utyI}XO-`GP)MRm1_<~o8f>#HdKl1yyE(RH8j^qyT29>J#bvF>+>kh(J6PTdlP zMAVeQ*hX?zO;x3+ByglWX^V_II^FYN?)LeN*ox}Q4rvyetrmqnS|Tp()@6W^(Xrsr zNXbsl2G%t@WsjB5b6WFp+@=rYeMzUh;|~iBU8th1sva*}&jsQ%JNPYWX-;6Nu7rJ_ zwwK;QQ*Clq%u)>zv+fthP5rqFWKq#1E=(({G@_z)@DXti^(DNfkNujSnj9=jT}rp7 z=$8fUA#-TnjT(yaMM%K9uCMM=l7Hx&vvG`3`hVs?P%W=YOwZ7tq>%ldB}-%x#j_^2 zz+2aMa_K(ZjwE}u2&W!>dwul79hZ!9F)GdnhxqTs?)iZX3!VIR>WYEP%1#By|I416-;dHC3)<|Ebv@Z z^zuMpAnD^%^QMv9Fy0Q)T$OlX1_}t|rXBs50BT<4MYgoCr> z=$JGwjWp-h{M9%9#Tp%{q0zCd;)wWX2UJRDCg6Lcs;opVyun!>E9!mLm`Ghr)Nr9! z{xog~DctB06-4n6I-X_reJ`y+YFS7yjS!bK031k_)`Ts0M8Addmn900t-YqK$p&>c zR#vbqEqUeOJdr6P|5gMQJA23hEBCQMNQut72m_4`H&ve7*;b`Y3?x;&7W53e&^|;M zKtMh$!HBp*aJmB?ADwi5|IK|Ckc(9{QleNtLE&aD70-d0RQ*H>tXgU3>cMcrcGWY& z#>8WzzXP8`b6z~PbFL*dBz2m%f+-<^4BGYv4#-1r&VUW( z9;@%ntG@&n`eX) zEL|S?WT=F=&QK2;DJgb}m*XamXD=+I_J3M{3t&Bf_KR5lbJ_WmCpGW`CZo|;Smdyj z>;eq?mYJh5r?JDs>p!b~Kidrqq!mN*Xg?AE2V{}0p3-^G#P9resRdpwp{}h9Twg>j zUH3vGh>fkEw&i%ag9PZU$yz7%jP+i8#>iv|z8^H;WHrZCbuKC`iSr>>|d+d>7g zdK&G3$K~XA|3r7Lh=#Nulc-u>PssM|Hivk*A)-~JuNXlB%_ajcwIJE+T>Jg}Yd_~r zoHG5u98+vM23w1Fia3)c?L+B6f|8f_t~~|Lu7=l&Eh05t- zu{D?qG&xJ&fo_ZK|A8ED;jmoue}|c@9=T*B-u}+<@oU!JV9c#~?P~5&X%0sm^jOKT zsNnDJx}gtC561mO->{)@BveF0J<#3)kMC)q!Ef=ov74!S+y>m%K>;U_j4jO1gJKc2 z1yO4>3bTb>?}J3qz9=)Yx%(u%;=rVs9dUP$`$c6F<_R7|JF`fu=4%t}}0l2XUh0{jMWz_w)x1K%G2Z6X0( z^~J%$4XF4471`k4D9h{XE)_clqp&yY>kiH(4Wc^7tRo&cED8-4DiCfvkire6i|dga zc$J3vyo7#U$yKRw0>W9K(gfP?OQ47a`nrEr5TJyjaK|_Hn$L%fkdTcto{~)=jNb4# zc$IkISGzwl3I8*x=&yz%w5Oj!x7g8e&fr>Fyv7|t%gf84K=&suz)!XWYYN@ozV+Y3 z1pWYt4CbXW5ilvu1+jJG^L<6!GS{^0rd8tVinfuQtqHj&J~Z&>pynG~MF)@B9SY+9 z3v$T=8!TXp^>0SNl$Du@>BEN)z$c+7oe7sbx7oym4V1f%B)o8}o5Om(C}VhxxwFM) z`)Q-_T2tG|=&S5a_5?3NTpuHV4fHht{(r!E>Q{6VaHj>>Clb&kn?ZuMAfh13S4=Bt zc*M@+H!8Dfx?jUwP?a$=#v2fWHS7)*T& zBVc%XY7dC70rY5c8bSuVz+-u$Ikn7b?JKo*ts+`fHuI`CgKyG zn%cOdiFlo|_II>@(Fb1aDOmU8a1XwYj^Scr*TbHJ1zu+iPfwRL1E*zxC^X^VL%9Cs zFFHCkPYr#;%3C^OX-N3151fLVZh8EY_5`#0(zl&9msgNAHJ=ej%qc;$LyVWH;Bpbf zG_Sr{>zDKYIS{ea@hI+fim{K!K#`0IDQ1MjzXnCAhla-c2e*cf`%|f9YK~NycN+R^ z`i;!g(q!sU(V%*I9-XY|f$xlx9LPQBMc=AD3&94o?Nh_fEwjjWM)e-C?3|U=4zR&k z2LtA#h~Pz(l5l&eE;yZkGd7_2-Q8@s!Aq9NZvTW1B!0qcg=rgXBnK>3 z$;iDEl*4HJSWmF2!-HM-i|kHkpN+IWKX*MWi2iVum0syXq(Dub}vtn+|wkU#sx#Tf&al08KJmTe@Eo z8mcAIYRJK%*-v3%agBO(N-Fi0}?@0lJt%B!(|FMka{+6KOERxD@ z2A^K(Ik3poLGLzVVWDY2pu}L+T6;U0p^i9X;piq0%U6 zoucEMe0)b|An(Qtx>mZ+|H9l~{DPgckb2)jn@mnfWcz8+*7KGxJczNBRt$o!`siVz&eC(Luqu;xX(Ca;Hb?~~R zk&KZvpzxP!?EipC2!+cv<%#8f`Yqf^mua-4_Agb1SK9ovi~YYtTiRADc<(Yg5(dis z;R6=MA2*h!FvHKw`%%qa>>pl|zaZRw0*RgeH;*^YuZJ?FrpgqWA`u9usD3yQyT0ML zTX$10Dfx1F8TnZx)kWO0Zc(h4sGBwM?kOEzPzXvJ$8XL`j{iP;_)mZ2Y=f5C_LveT zkXBEz45abp`u(-L^rGQ>_Ucu(Ye;CpHn`JHTq2@WcV#yMma8IothodP$MI7 z%x45dqRHyrAr=-$@)d6O1iIAF&uAcE*gsg3a$pMxJf5|A%~D3=z}Xz6IoJ~|p{HlA za*Ui`v-m)0F*xZ#&J`M(LRto=E|M{(o-7Nl;Tj!tTz%AX_3dEk1X~-hI$>cXT(Z30 zBo_zUU%pJ=`aro9Ebp#oy+$r2e!yVxRSa|$g`u?etCP?uTO;j=2F*$ahq`rxfve8E zhp9sR^5v;F=yW%xSp}vUlCIqI3y$}KQ(gG6v*24O`V|U^nmuif20y5I?!y{dKtP4l zW=S%~vE$bBql?LME1h=}cm!tUyYI}q!3Vw*S*I52pAG%9$+M2)5`R?mU>8xxgND^s zTyBy7=jsxiJtSlRS9;FyjjNaQ{=5Ir@6dq??X;Y+3; zOC~4n?MfF*@b-fbW0_f`<;8e`A~$yFk~&w{Y46p$dXnl@2C$%Qz^+(o_C7L+DYY(6P*qN5Z^pyoEJcuBqH$m7|3nV{SIlQnu87;Go(V__jkaU>sb!Z z_*;Jd@Fqu{ofUEKJ1!Q(o(7kq?Y1xi3@oNbXZ42<{Qlo-Gt$@2t8`w+${zhYpb&wa zQ=JG6O1dUMF`+w_zl=>6sw%$>MQ?st&C4z&MTiBSge)F@y@bF(@+jBFzAZXguV zod|ZbP+8RABojMMITXL|tGafMsXk~ub91GI?sxHl z0m36Ho#;YvHCJh$8*p$Ie_bd~`jP7}zh;$%XJa{4&x`dUoak2c71X5{f-|b@wDFq9 z_Ny_MxE!M4r3lA$u z<&&2&WGgEen4R{m0O8oFiS&N&QbLMz|TdlwJA_YI4!Ap+UBdb&g-re z(rW;#9<5Y-@AOB8b4tO+&9KPF1+T7GJ8|>uCp$ZTRNFLuY0Z4hRxij$KlqkQf(sZF z?U86sxKuB3~i@_AAYm~5#e?$82laO|A@ zCm0#|P8Ut7seq0TPB??}l{=65%pKQVCVS3Z9^>Kp9trRwG3d6{~1Bc%A$aJuxSw8gJLNWpKlxX?w3c@is>E0SqxUUJ=pQQ*mZqE z$Y0GO^H->4h%(ficAho3N#!dtyi1XGvbsm)ldWMO$Vh?NC$QTurWjeI#6m?)$c-vt z8c2^=Z0^7BD@OV>Ir(OTnRUAn83`4Q%@!~AmGQE&4XANDKR*Xi{6K%ds*52^RVVzn zNNI^xiMO?Hw9o@y_-YSjPFqXj6L}F&X ztH7alj4&8OcUxA=qSs+FC=Lgn^T0syFQ^ZLySTxW;r}WiY@LyMTr*F&J=#6S}JLwo?Lk1~|Y`l-|F{;w-E#? zgz66rm{?e9R)*DN|A=~ESO?thffMCFD+NQJvk72Q2D}wOZwX2Qg73f>SN%e<(Afn- z&SX9NmU%>!o4NY1f5Q@es8(s_&iP4skw7)_e*^<-MYlsg>WzlT|LvL-c z+5r?F743w57IOE;BxZB3=o$o?D|3r$ON%m!Z~|JkrW<*)2qLHJi{27#X@vyBi2~zt zt{I`kPoKDZMlBkxa4B6k|@jJg8bpb&F2O18(sxh_j13B2gdZH7A z9o*e{>ssC0Ev!;&^SZ6BxpVA$XJ=eM)$jGLn}<6u50}|b3>4q%CyW|j>q!8V2V_Zu zB)rn(j~`Dr5T%`*oWZ0`$mY+fF-PA${LnTu-QTQTe@ zCVG#{`=+~nOFykG!Uf|r4_~yjG%U9u?&i{v1_xxDDS-Ez_Bh}^gF@LHK52Dyj$~gy z=vQ@+{LL!@n4i0#rI@jj;mNsepvVI`{=McZ6VJ>2kIACEP0bK8hHc-2yBiwzSe3v~ z>FCa;Tr6Bl4UxZUvu_83*;8~>@v0SOCpU( z>$NC&YuOAWyaiSV^X;Q~6;)!!#?71IDyse08bjp{&jTs-@i@p@-v?f_ebmjHn>hnV z?G>%(c^9#v^e6>H#i_eZH2nI;o=FF^vAn(GSzR@HuXo58ucx}(^`!m>bMxh$u=^_$ zJisqEM-1269y0n4hA=XB*Vn|f>>C?v53fX}6nuk?nf&gvyH`SVrWX|M4b*+(*3GY78j1jOpZ>!461mZp`VBsf z7zCkXNyTy4iA;?-3d88HnBnWuFwlc(MWjtgC$C=zfMl~^a)ue57BiGuC zR`>#Vtj$-a*FgHTg5;G+H$nV_KdtB#(} zT)Oe!wQBlX3p6s6h!Tqa>4qD6L*x>K~YQ(_=tRcraE~>)+|03 zMo{s+pMmpNtI0U}<^N*Sz8yvE|K={{ZtAmZ2k75aLk9GjOuS$)otTf}jd%9~8f9HS zoGx#j%pXVh><<%B#>0Y5wV~Sw-x!`8w1}TZO`6?3xjD^YPYyG6Qd}2$ zfL~~$Ma+Vu_sd$YiY*~AIuDP0O3;)+XP%tulsrTPGf&Qf}_$Sw! zWaPp^Em9K`cj-T1JiDcH-uwPVrzQCp=2P54c{k-E?Ze8al3}6MBvQQ9qk-s2B9u-W zAfF>4d3`Z^_Ph7=yeF9>ftY2_O=nY;Ex)f?`N{rFV3QzN-3JSKwn?GVa_kQ8@+M1< zH#4F7jf+=Fc{1C~N*Uvi-`l@Xl08vZs2Ro;R+cD+!Db`s)T;fdmNyiB=@fe)YOCHL zX>0#CqCtx1-;ERzlEXU^v^t6@e*C!HqB%W?`fe#<9}yaA-K)z$ zR@6k^=w>=dR&5)>Wy9uKZIWnpilT|+k3f6}d|wXXYid$~(!0&WG;UiWxN3r7N3jMU zpH?e{u`z%Vh*`cmS&rzwgl5lzUt6GQC}Bkp^1(jF;SrTRG8d4nGe)SXEzej6>-t$f zpR135V7K#69v>4^$_Pq*{!PJjoC*pjz#=EJ-W>Y&5K?aSarcdOMS(zs+4@#iz3CJ} zTmQg7nv7%0L0q+$gG^|6b=m)qnU)TBCCIPfL})lsR2UNo_IUOTL}4x?!CXfT4{Z-H38wtO9r%P3r1F4Mvdhkn}BTr zfntWi9jjGt3UNJ(dzwT`@2=bMJ%#~`|M9OlCo>h(PPC+CPOYlN5GTSr&Mcog>^-5;}-c$?2Am4jPT`43VBg@#9azCQEy z1$A~!Cpd7pk#UwoBbYoknEdV^8K5s~b0SPeLw?)Rc1G{>H{4aL^@56i^o0})nH&3T zi_z`N?lH8Tw68i~Pe9VpklVP77VEK+1ZRmw(8rt^Ylqpl>8(T0caN)wAAh$n{`+9j zxzyQjO!|tyy&vPTrb1M%L3ojyGb~43p)WzJ%o|bOjrKj1~n? z_aj8^l|O(z<0W&n!@J=8d{Kab6m4=1xeMdtv|vEKoOh(P1h(eZI&5y-DfbYH;buxxDBuxdC`-+na`LPq}iPAJz89- zYHZzSodtuDiA&)H^|V<0zj-Nkd_r(kv8?O<$XSYQg%R=q)?WbM3@g)fyCrxvxH5o@ zD(rei#$^oy9T~~uHz*gcj2@wzTrs@=Z8pi&nag%KQXBs6F?r0d%+bcA4o_nDiQr7uvZLkoo#Iwph@MZ_SAZLa>* zxoOCU{}{!7n;aN-N12767uEXE(-905Al==(9-sfM`|tlYqj^1#@qe4&kkuETK09~M z9ZJ;>0~_oQ%SfJQVxq`EsAHL#Wur+?2F9OQVJ5VVSD!!Tk-w=o`kV;zd^_62BWoa? zb=bgaa7!$c0AC1jE+iEPgi)l}_+-$*{7%9VenoGihU#<_H#7;pUyO8ITVAG8i2#4+OTx=3dnUA{a0=wlou1`4Q<?l;CPs*kKo0&JM+CC*Bf^owexhXYo6Y0oJ4qbNf%% z%s{+RaAakIeHWx@=^z4Y`VmyNV^odg3zLw9=GvLu07?nq0Ybu=(@0F5t@kN*DU2W@K4 zzOSvVY-k8y?WeEXJ2xI9RBX}*ncCl3$0k)53{=(T43TchP~pKrd4@MEVU zHOycDZJOpA0*niZb3(8vI%l97#-Ne-hxbevk)|$ zkdyUXr715HIQuPl>NxC@P;(0{D+PXGM8AP>(} zM+XqZ_wE&HRSwL623T+XA%re|aM2l5X}fOcZe&ecU;qFChCduLOIxR{u_ z^$x~bTGRE8YehnhZ@47F)Abn{D!h0Ak!3 z$6w$h2ioKU*OzlJ4y#Tz=tJ5E+#a?@asZK2aohs|4Z)ob&%({=ee|8U?Q=O!vP!MBqCa^QYz8*z2G!-bY?FsC-9JvkhNuCqH1Q~!ORE& z=cpo5FrW2O;)Gd3N)W zr|j;i1I3DQCt!~@231|`LqnyD!DAv&S8MA<_qtfUy8zbp-4ynK{dX~09)@{(k_eJ8 zYG#{C0fsv?6vJqFSj)hm=l~f486imP9JyUzUqMi+Ej$6wvVqNk)AI3St(vEklVI6k z1QdCJqe+bstTvlYG%Z~kF2W~IrfZ`F8u1~q{A=VO3}A;y#bhf{s$YN)slXRJlgSpJ z{|v4oe*EPrXyF(J_f;31gDM|?fQqm0~tu#_95(ZrYQqtX^pwitSQqm2> z@b2-Pd!KvHJ_{QFAueJ7s-ceN`#G}DOAP|JNZ^_<8AkK6n5ExB3 z=irsL6x2)j=bW*Uf-K?`{U^CLD;i$Gb+~ok8G#^bLH~yl!$Cv~FJimgR*}P=#Ka=M zin;PM<`V+Jh`22)rSW9+*M$26GIJF6hT03JWJY6-9=s21>=buy5;dlM(&flYee7EM zyaKiOyi}1(TCS{I>%!n5-snJ8eraNIx3RcZZm!cUgd;vVv8>z&x3C8ndFv&0GjT7! zc!7|TTp!}#iFW__#yxRe%zsMx=L;M^#-}0ZuYThO5)xAQ;(Nxz1YgEyRAk|+1?%na z!?^tDW29sj=wnPQ-2@o_{xkZ$vdYP!=r_mTBtswk=ZW$x&xXq0T{nC95W&pMtfQ;j zG%`Z1S7!5!5r=)na%C`2FaDYtUb(^b-uXTB**#LXE~nUK=E@sqL^d?sv>C4;J$LTh z?y_Zt;@N7q^)}?;w&ThmS6-~lvb}lR8@S?!v*#@k!xfIqsH36!W&TSh#_hlF`-6a` zD^Up}4ha^<@tTkR>e)()o?B>M8@3*PpC_)*@Ha1}NYT|+#d zNq42QdHkCmL+toh@nUxhW)K0j-@(C?n9eHa1tLFx|DH4jVk%nN=AItXQ{;kVOqrmd zAmw%Q?-$0bEi6Lv^{Zzy;tZNnWP&yFnFR#MiHL~MXK9P1*DH8n@c8kKOqF-%tgWr7 zsHq!=hpB2kcAHiT>LY7v#1h&zH|N@Q%I)aUmyDzrZ5kh^tE;OM@;cz%e*kk}CGHo5 z2;niq!^dxRa(3R9U#Z=n^z@TuQfG_v_1^lzsunwy&9{QUWoeGLER!G8T|o(p|h zS=sEddYXLpxPd~{Me^|Qa1HMIds(W|^7297XAfq>c-Zqy9zJBeeB}x*dX?o#vEsV8 zx|VLhv*59+C0-B{7jJcPbK5_+LND&2@&1vqG1KMCmvLfZVx*;|{T{-PEK2w9-?w7j z=rDz=!&*9nNP)?ae)K5QVc|Qy(bkVIv!4d@^>d3K@2*Yg-BMB_V`pa%2noRnyavN} z>B<$kgZVhafIxi8=Y7Eh)Tu7_=|vx3c)T`#b-db5ZMf1oOZtotj6l)%LZfCZgtVz? z`o?ybB!1LI@$-s`iUEa%ypBGstgIO;RJ;$LIxO{GnQ4olZCdKf(rk0zm~NacnW%Qd zpP!$XwzSONi1J0sykDD}ODh(7`|cgSq3=oQ9bH}a2bE58RM#Jc>)dczyt7sdBhkNi zezDB}y)tN(y|Ppj*j2+qLhk59dCdx&f2YekzxebiqDU3SK(xXR@6yr*bTk!&S3k+&?IgdLHQN0#Zot>SnhoUZv$u9JI<#w7Y zVXu%q=7&BXQf=w#kCr(CMJg*R6@4cd(fgI@{31LGzJP!LA&co&77_AbE(&kuaI>AE z^_r-tDBOratw*S<-FQXMB675BWp8zCb_eGA>T7aJN)E2*TbC8%TxXij2JRYGx!j)V z$2WtwUivjrt&KxSs40{nJK_4_d2wxRZPU&(Ol&+pKE9@J?*!jni5x00)c$Z!T|LEt z1{)%dx^?%6?XS^t`zUVxs)y4J&*H^B(R(11x8T!QDm5+bT%$iW;%RU1UD&9h+vD}V z46qbuyE)=56uK*-C>6Sm3u=$e^b36F?q z?LtrNO1b^iMNLgjS25)Z4Hf$DUD`t-@eT$UAuZO zv!SB{k3&1ZWu`fJ^I+42uVQEWa=+hxGcSDT9}7?m5rUH>b9(phhrW10QX9?;)6_%u z@@92qW#~E#VE!GJQ}^LQqgl_xw71I_Gxjz&NvD#89HlP_=hZG078e(5ty*!z*|iRk zC;L+zt8rebTvPe)-_r#ib*#Bhyk@S3i?qGIdauyu#KY9gEVOTa{UlG#@iIJHFSRW< zQ-7I(v2m)lJmBYwP8zK9_MCZVUq{-}*%`QAcdS}iSa_$( z=MWz`>2qwGQc|KJtar{;;HzuPtrKK{LU-=+Xuy!nEft>?Ncr^i#L`A+n6 zZ4tTqjN~d~0}pUZqN1XDck544$9SEG=vewGPfJT{_Bc%;>V~lTw=Z8v6Ft|2V^)^B zQ~X~fCQjNon*L7e%E`X_Q>Q5Hcwy(vhbAV>kREXLt6WG?J6V!fYlk)laW_1m|=B9r!Gnwav(C=WjROOkkUtVOHfCfpwyk^fe<~((K+wFR z6pI7PjSO}nPenxq&Xm`7MDL!@>B+udd3pImBcn?$i``NidwUdRHY2GHr>2sUl6mLh zk_C7vDJe}2&oBd36GU*k#J0oH_lAXqg>!g#_>D$^r5iR!Ix&A;1ie6g=6DWz&_Z;B zFl27R>wm#1>ekmyadwEiJke05*HG-gV;S`C{{y>({1xc@>%o5qHh_Zu_k(|dPyha# ze>wQ?m;A2>|NWBx|K6-+!;4GZJj55p8X!-o!v=NlEBf z+wk=(0mL=}JT&ejv$&g)oQzl}(<9-8 znNc*GGfPfRtoxk2@TBi4)!usj(B~FTdT|9#RQ%De}?hHe?WRLnfx9%3D#8S!flL=gInG#hUODZfhD% z&2vfdyeX2A^zR}Tk_4M8oy&`CM%4M9*_EDtbpLS}+KvU8_?B31X#Zt{K{)G=xqB(1pbvmM35NmBT0_!|0n zmG2;ZXC#+DLdues;-YQ{YUMc1L_?v7%XKUxCy)Ku+}Q8Ub@Nou{j~$g(|kV2Cob!g z=p;|RFjDEvN=Hv`WMuRVHvMcz3brfo#E>4oh!r0ia)Ox6Cbd=_9_62y$hwN;1 zQ50mtCP)C6Vie&o>G|`1?NJQ5wLY#U-FIq7_aN>YeR*|-rnJ5Y<>~G|)1Q5Bc42({ z0Rf#*p-QX0_n^lPGL;p5$EfNP$N3@2w)WCq>-aZ9WMziKO~$2XgET6T$_zW=dD)L zU&q@LuV2SJTsbY9UBNY+GZ+w;%~Ig_I+W$i5I{`WzBJp1XQubvPRhlDU%FPBbea75 z;*N!laJAf0)%OYEV9Y+EWK(tASPve}(Yn#Dw{(2IC%Z#Mt}9wz0E2Oeh#&`xlF*+h z(2|jny?pWFDP+lmqa))+zq7s{3qIWybJ9DmTYEX4o_-nf%T1Q(OB@{d?*#1!AJ()o z0i3_~hJc!y`tz4BQV$-ymtV1Wp%uKFRd({`&705PzqbK;;n($%IU&ZuX@KjrbOjSL zv_Z8os)6*W*=6p1lx1|>vMQwGKoUm8bCl+L8zV%LGRl^$Z06Btm5<(*Tzkk81@p~5 z)3F<+zUVEXYt6^UlcL6;6#s_WXsOpo$or`3d#t|B0e-&02{}&<3BJi(R8RH3xlYv% z4m$_KimP&v3&Y*@lilOzj_$S%*74)M*AUakO1@r8!%rT~+0UPxvK1s~4ZZEL?k>Kk z7Ek@=QZMUW^Hl~3FQJ;+S_}lULS#U7wP?OUEqko*_BX-Bv2q?|6%|rCx{nSm8uUqC zTeu(d^3bJ@7jm^_DyJ7?4BGpHVk6Chsri0gBTdTw(friJ?!9`=97QPoc< zbZr`>p#2>jba{4GhUC2LEiL^#_j6pze!Zo^&?`@DjifJ_i8E|+Tj1JPsZpCja^J@r$M$e{w|fflrap$?QZJ0+CCkW$eCMQgx)eXB)dm z3w7J@u+EJ4s(O|6P`*)HICWuB(X-G{Tr}p;(9p0b@xsQ&-aLVn=Li)6VVwr~V6LH# z&Ty(p-P#d89-hmfFFrm#0fPh`Ht|JScXwgaYt-`LR6UPo<2*SiP0FJJT_P^fr-~pD zKG{cdoD375{D=ncVo_Ads+ta~Ua*2dl&%dDih44O+J_dyUf%%a5$V*U$ZIyFwV|v` zg;mhfdT7*@C>BYB2s+2*dt!O#4vCG8jl z$G;i?8uLBbclzc3LM>OL}@ z1qqow$*=gk3Ohc3h7^yLe)lTW(w~ZpHNA?iX;cWQ7}(k6A4u@<5Z8L{=L<%`z~{!%>C$YPi`{?cEdK+q1 z2$g9aKVB_*`1uUoJ6D1)_o6Wn$2_Y;?nv6PI+axhG?y{x+1MyULRCRrSy{d@EhWHh zP!s09{ff`B7ZDMg))|K5YSyLZN#e_W5yAW2?!A!rTJlt6TWeC7LQ^GHpyk`b)g8UN zF0-S!31!uW^*+O&%<$PcI9^6a`$KV7?P(~KA0g~j3WhcOh;BpJBxbE-u@^qpqk%QA*j zDUw-uha|B-PFO`CKAopVx$YV6cAU5!%V;q*H!lbCTA5=Z3d>7|*imnH49EV6tP#;& zv8uA|k*of1t|x4aT30``t2>h>Z!1+`K%rCXp`6Ip%vg)Sj~P^1wjU7%&|!=N2^e^^xW0=R3H#w2W8o)-$%Wv@ik`g+di? z*B?j`z}6L2RZRl})dcR?Qu(#7H zUmqb7m6U_B9+LzRnMS8ck{A$uzC@|lx^yqCrt7`1KkDS&`Xw&4W9EjWJ=TWou~P=0 z0}OQZg5sW9axW<){zdw!euKvs1^?v)1o$hzO%nZ1&D`zgU*8K{C!}= z`ui`yotyIlrqy_|tTxll`pp{;UDJ|UMk)L~t@d~P+&?+DzdQI(^6od*`rnwn{{qBV zy4A`sv56iwJjDQZConWLwAWojh4n*t98$?}>>z!Ihn*ddj8*lcp!aM`s7|RBIre2z z(j|dVMw~Ov$qe6r581Jx$P_+L&C@Q4V*;MK1116j0u2^rKyUGMDB#)J-Zrwb>S(+LNHkO-c`Ui9NjjWHK+$ZA z;OUp^OL;9VvK5t;14@Y)4U>}>?dM!^q@P1{ZSF)=Nwy2_T=!N{ zA%sGR3OAxh6NWaJaZ=p`0L6DmPdD zcvTmYlMH(d6DKDDFdsDS^+iItPKR4&%1IJvPHVA0n+)<_k=wdK;5>(3R?R=r5Z>xg zneX4?ris(GBW(_0Vd`jBHLa1z+tDnSgoWRTiv1>2S2eY?o-4#!PYsFpezeieI$b#Cef@Crsyz6*KoaRLMLOfy#tUF!C*)s?Pxef=s6 zjN%R3(ez?eYg^lYK$p=I?Q&l@*T&Y?-4P-l9v&#h9fMh!m}=43Kcs5mX09_)&L?*- zFE0{$dO~7iV#G}k4-xrDx)GZ!&)0Er&24Sx+}6fPvmnk9jf{*S5R{aZSlHO*I$kQu z$__xURa94pofy_U;Zsc%%U1V#=RvgL+$A0y9!{|HYvkVQe23b-L6lq=#U-E~Sx=nZ z+}bG(y)F%^DJeArM17f&&v2?PrjzXi#I2M?xKR`5e*dw=XvUbwLM(Kj$KaCe!Kf}+gg6c*#?nZ%~e z*OuQI==}Wrpw#v6%Th~AO_g3EZ2^KxLsN4G$SO82t^td~DxttMZk6w(gM-h>IUEi) zjKZn-&cyK;%HO<+nDp9KiP`Q<^8M(9eS_D+`K0*MCuv8=qK^3sl$6aK9nVEM(5okN za41WS0Zq*P#@`9tlFZDQ5M5p$pm(-X zU6;GN`{G1(d9Q43PLAUIH3CAy0Y$qQM<=HyTKk%3z@!7NeK?e_Z~O+HuqiImdEvX| zxR33T`M+l3-TD;NfRm#mshX%d3vkuk+}z_vK)vJgm)1e{3J4BPD=Z`dLa!a0!7JIN zF7x8R>QDg#kOY1m9g07G{9xqdR8A3-lw`Pl`!)_9o-`npSFc_C?`UWQ zq^2@KCNT!8Yxk!kqz{l5)b;iAT&RJ*Z>jS>)`-o0KE+W`&7gOF)=Y+2kWV?KVs_#x}jlbsc&G-*W@I3eqkXP z_>h<}HVKJ~K0ZEwK8ZkmRTh8$2^|#`4lM5{Po6Y%cH*N@C|-UIF+$X2ttTRR=d+o~ ze+Ad3^xBVwg&_{$#pteG zzs_gWgtZ0?NP77bN+R*pHGLtM`J>&Hjon>MAx%bZZX%^P?pCNGAq^v2yc?gqV&LtI zJu0^vV29<>U#(VBUoQ#qk(7p}LlWmVfwRN>jEI1s1%^Hhqz&Vx-i*cJBIeZ8)D|Z- zHMOtr1c@;)FqC;mARRN^^(!y(>sHo|CLb|J|(^7(T-l=^R(Z72AT zgw;4XX)srngyXD-|1^DlWJ?l0o?$n@Hs*b z&3pBiIxnaSiHI~cHJveOk8F+M&~EtzEHE3ghL)Z_0^ndytqs(s=vyBg9E2SYTRMWZTfP^@%7e2L=xr!DZw_f2NcFTu7?0$w*ZKdNk8^bDW_+I@POCXo z5N1}YP&f}c@A>#0Z&#JK{J5aKAx&=me)5?3_z>8K=tws-M2SzqNz!R-Y)nE)8T{(i z`PZ*sqhVuDPY(^3D@o69KClL?K32R%}N{N8?JQ z+6Ljt<)oOHvphTn9(}GolD0rWJ_OQpcA+_#*yL+GA6FS_wxC}AFc9Biq@0-Bb3gT0 zR??jsTfKMGNn3Lq*RPX7@&XAkT8DyxAxb8gXlAh|?Q>_Re@e(f>Ltwz! z$EU&*S#fZ<=Zo@x=IFSgs3NzJBICGuvfuj2$laYPHZE(UZm(EmSKyE-E+(c`G6=M< zko{+a%x@>Lt7>ZKU_Vzd?~`p;xvsoONFYQwI66w9(J=03D9~os)`$?d)YRH%Tf-bd z;PTkMs^m2>F|pZ7X&AEG*V|j@Fe9Cwm6fYmADfYJ1%$kZR#v(N$`dGo_Irmuhx3$x zp)Nsn1-u@WpdH=Mt|Vef$$AQEhWli!sa?nG&B%R)k8zL8=VpT$nlir66~22{Rg@1|JA+!Ys__Wr3{ zdzj0?{^I8x=DNt2kDun*(sJrV981f}+9p`uCjpwRYGfrXy98NA=E)Nw)%QZrfUvrn zU_M#nzOlK9f$%z) zMLa-0%<|zDMZ4PMcqpr%%-s<<CON zS^;f)m6EbFF2nXjx3#sk@YAQ+r_4-Na$?w3gkS!pq7Hq+?q4(C8D|1X69)&!qIZG~ z^xoF}evkT9|D2U|mHI@%S2ePiWtp zP*jy)nBq~a_1)vN@%J~{8Fzjv>vyfP?sIgBb=JNmZD;g8_L4=OzN`5#D9keyxzdg;O#OqG4XmI?Re~Z?)?h&KHeM1 zHSFx_BF4qV-ObD$lXN}LYs<~~4&=Kskgcvgv&#?m)=`On+O%jP#&)&Q|JC^mvI@;s z$ODS?`kd9N;RB5ubuh23pI|r4!0Ok~OhJbg67mdWm}=C;3hx8n0Fl*uRN>oU7sI;#C#I>Ydh|6OBU=NHl{L%5tV*YjeZu_fQ_Jb;YOjTyyD>&>X8T+Qdct2LK5%BV$o+0CNW^3CU9c0O))KUIz`&lPZU%MvUyW zwaRfa~Ngwk-hJ|s&Ipp6t?it#@no{fn&qj zdi9qUz9+~$dc?w_9N!=rf)1f>Gu;qE17(KZuB@F?Df$DEJS>P@=Ou;A0ZxtC;UW_U z)QKI%+oPFahCBnzM*TY=9PFxUfLbq34@L$^Dk zU)&UM`}A>Te#Hq{ws&N0a!*j6m5xrMPS?bSO>Z6EzInKiw5@vveX?|GsP`S5o&72SM54fc#E;+JKE0wkZMshlgRm{CZru>k zaso9Jo>DAlcDZlKVbG_`8WI?M?y%jvQQx#TQA3@j5Gk7zjJ?&| ztgdg6??}s{@;2bd4^tE$E2v%lPUrtB4;bH9RwkI8oxOASt{>nP*oRCaBD!hwtbZ-d zM_o-!OkRQ&WarOn;jnwy&gcKZ^YxW@$u^Su20Ex`;v!>M!IdoP)(YCHuW zkdZk`@(^FCek{&+9EU``1h>SmUpA1+Z<}uxcqY0yCtUYFo|dX9G{Stazpk)ZW@|N6 z?K+KEOBBM$vK{07(S7L_0imPW>L`mh>9>xKSq5h&tG)w9a`Dt9e+^L1jiBCzIwGVG zDzsoYHR5Sl7(N)D1dfQ22b*&aZf@8J04FA!v#mnzTc)*#udn#5t*xQWKrKfA@O3I2 zEc@mLGc!Vt zvsiW$RT(ac?%O{b0W~2uz<*>_Lxf$KWCMP)5U8!P^~(X#7@Pp8NNBq`hO&eb@(e)K zcAyRTtoqpi*aA%;y|B{rqlCmAG<1i@kAoO-W;+{_&3sLlyR*6&){pn(=1Z;B`cay0 zUTBU&6FD#{4+taMz)T9m)W_#3BXaKyA~e7^J`@V|rSjxtMgkgs9H5+nVq(Yv7(4{O z60e%2%dL8{#BW(#J*tQ zC@d@tP*Y_?}j3&*;5NF{=HcmI&uQD6Ysq&dM`t4w?ZT2^fQRK=kkS@=9N#a*d6Q zQZ|bBf&018vAVhn6=+Y6NeQwkP;%0+2FHZS7^%TAIz=5Xusg=d)9YIviAiy54 z3GFaC6~61uX@)+elG^=;yI<0^dB!C@wN`f1Gc%i7TLXQ&(W71(?sIZv)EUe5;p0bH zRaGKDkrz6)x3^!uejNbwfpzxmrK?wOFC7*T>c^MZj9j|_a2CV^xDjwaJ+5^JJr^xj zg0+c5If>6CNcsePZNO318k{7Gdm2yGdG9U{0i`MfX1Us>>K{pb03 zs((PDww9YYrYBXmo|anH=WLD*qcUtxaR>M!&v)@37j*qpq(Nl#{FNSos}O z%>(P)>?}6JG-{;ygZl}j(W)d z7WJ?U*uyY=G^nM4=!Dk!fZdpUGDjG=g-gcr5J)P();FPgL8CEH-xua>;Pt=9J%r@O zLnLi6At8%j8pno7qs0h8a^!ssh)3;jxSG^ay(WPL@ql??ZjAuta7`+BPo1lJZfM=2 z%>Y=4GGZComG9*8dVSu>Y4Ht{(u{3P@5V5k-CNd%vLC*DPyHrb zA29$FwZbXt#PP>x(&4eO@;5$99>Oa6b|#yBEOkKcw1P#-&GgZuvJUsD(fm`ur9f@T z`S?hHb}hi|`)a>4%LrLEV7tZ7+P$^e7k2^)!(U77?m(H3bGWeg;jua`tr=g{oA{92 zm7%np3aYj)N#b|)CxrU#QQAD20s?F!#n_VTqk$c{+LvD5>i+VLaKik1KwzA9^k@fj zce)$k1(^KI{ZrwxfdfmjDK*KH63vS#`MJAeV`I(Vz7YZ*Q(@046ZgrsokJb(908pl z2+UF)gEv;ey{ztie`1G2hSLU~r6sEY9-Yeb`>OAsp0Fl0Z2!1jK`(^Jy&dhK61E`B z`^?S+tgN`eFY4&%JOubq;WYnT=Z0Cwg}|hO)U-4{a41LA2?HemKjV*n#ovS~B9~Xtyu-pmY$G8%ah) zR8i-Cy;mVZ8c^UGFg@?SFd#z4hW-H{y=g~%zU3Xfv+w5MzmPCK-koov;6if^t9HsA z`^s2Zw&p1me#5>2+j(se<<*Tt=x3>4>;mmki`KD(kD5AcD z$vGKF1kf9F3Liexp&%pk2QnULujKS}tfHc#kjThEi$kEx0q;D6>QhUL;)ea?$Hx<3 zOZf5gr!-hmAWsSl3xh;N*2%%a(VFzwYKr4Hn-v@?2JAj}54SpbNP)uw&aweC*)U3; z!TZOwdZ>^0i+PP(aNdi1QV80OH{@vMZhRA*vgof5Dl>F)x;6<$Z?BC;Y&LdwX_&>{ z-rm-LK-vJIBTXGi!#>n{&=bTx2xamI6Y7=;gtn(a zqmnkmyx`9DSb6=$6zHNJn6aNQV`JFFvw?)P(^bBb&j*y(b}sq8n5z5Jc*9cp<5SUU z)^`jnO&-_RCkM=5^&ecwd{bRHgE~cJX`MWN^oZ?viFLJX^-s*ax7vI%{@^BK?aPD& zE)6ZMoRcc=<1!%Ca(Hcbmj{{vjR$~|fb*M=Bz}t4vo^PZAIE}PJ7fE5?)u{5hdZYL z#7W-2f8U>PczlhIk92LkGOfe_eCh{>z^zL|DJx*-D{}&>KiYuqbF{=-8r%1Jbzx@a z5*Uqh8|Qt{MoSP=U&O{{IwJe8YP%snj47xXj()5!T4iN$1CQLfawVC06>mr6jr9Yr zt5-=AeNpbejj7;A2n4}QeYn^>N`CV!Bk=TW`USzk!5ec?lFyS0KnI1*5SD~ZNTad7 zp2WRR=6W>Ly=VX71QuJ9-&y*`bXu{wwecRh~<_D>0ekN3#g*QT`NwbXUl>DI=y!@Xs83s%Qi>0F)8f0}$E zQ&HlW=AdL}sO~m4`Qo_Rm03V@+FxVz1(day#Kh=WRo^#&Z20>7b^A%N&5%YA1F|Nfe*knRTDBr!huN@ild+~t&J6h&BywxkS$GaE4twm9&b(<2yRKLU59CX3Wn46gGYvq1q| zJbU)6m3{rAtoak}MDL|5@vsEficHv!Hx-aI=EQgI`TMA=FK!%LDn{6iNqAob}u%e&lrw)abP&qD3~^d~o-kARbY1P2QWXDTO;y?_cDFvd;LJeXcGii%cGihaKRP&k&Uc&qnPM==qhBqqRpXU!XJ$ms-b-o>FEh7#Rtyv;^KP;$E@|-`j#Jk zM@yz!ThF4~Klot1)j)9!3reQ;epQYa7P%p;l@LtS3hZU+0#95uTRC!8j-}i7_NwM8L=m(rQAa0U+8tmI zh^-_SE}%;eAX#Ss4zbtcvKRlqEI6W#(^Ze(c@*z!8@QiEyWH;Ir&d%_f}}$X?J}ju zL&JOcgoLf2VQeOyBC&y~L3_9+Jy!CL6of9HN4JKp3>7FqfNa~mrG7iG+m20l1TRy$&3Hk2SCcL4>rKZkv4zC)(P$g*R63?VdWD92b0ArKO_! zu(xMzb27So!^rU}B32hAWX+5& zar+!x;)DRadgDQ4D4J1*DoV;onSh7MMv0R25%ewr2jU087L8uOwkM9q`m27YSEVtKl z#N)tkklRhwlIJC`?{cWnKD~1LS9&jQ^pgAsYQ;umg-!Q@UEhJJGP=O7;_Hzwo z`qI^Z6ZNq+1m6P%C|)dR2PJZ!FyaBC6uda-Qoac~X_z70=nU6+SL?vzvV2XFGz1?` z^v18^E<9*47+gZ7sGic$k`b0lUcY`1oDWUtW(UAGIOjuUXHsRoLkz9g>X!{HGF80w zOVkEVyCPQW5dlEArU2z44Lw!?;H$xbPAv$@ZG#12+B0RgO}@dzltlZh97wkooSBYD zdb}d--JFjfFFcQ;BQ-5H$5%*rA8@*}&hws1`0jz_p;OAQHT}}^)z%83ncznMK<3Cu zX*<*O23FGLmxDg%QzXO%tOs&50k!okYTfZ#jyu}4R`eS9S91FClnhP9ukrpC)Nb`s?2YSJn_Om>1lEQ6qElUqy44O$FpsrOYbkSfL9QC8c`@XOfpQ^2Zb+A8xEoIH)MM zoYaWD{xy0fc0$Af;imTfXiWwv@;wO^_c92Z9kH=+?+Ub?*qL&D#Bd~=0VWgS!Bz<>yR0O$z!zRYey z#MImz69L9867Z%wifT;o`u;sVOpJgkLdwO3UrbC4fmm8vq7rsWulU%u{4PG85exuC z^$g_TO6E3rGIJKtRaod4MCfyFZf=O1(12{_G1j;!St8(X{mU!$pp#@n@_B7fvPtGZ-GlsS9cZ^ zz}W>qzcYN5T4i3g(8w9=gw_>{~925yr;OZN>B4Vzo71U z??=wpr#ocNQM){1q8|K5gTgBEdVebCM7M#I;!4Dv2ts>Bn3&E$2Mi<(F-@6CXjI_y z+_OQOM4(YYMHMR-T<9v$>IMRLP=^N^&PGY1*nGZ!`!?{w#{_hS7p!i}QWNt-V1|=| z>agvkxU^JL$LBZkEUAA60YK6L3>)X7O*LbV&gB2Y3&7(V)2YvY-)EC4+|~wV;Z|T! z;k#$!zbm@89<|n&mA04aUQz1ndy-zGFN)*J9oa8yWyKEbxk3gEQDhdqzNK#7 z|CL4-tFN#-Gt%927sw!+i7ImFQOE0}T``kGuh>YO* ztMEAykvN#fj93=@xjSU20D3X_NgP&31psKXC3O9vqSNf#gU+r~W_O#iE@$s9-?CS|ZaRVuW88m1R|9YN?|BvZTnu#B*ZvZVAz>c;!TFL>$ zIj{3iK>*$EdbIa89@HlPm zDaPX7g5;_C4G;dRuD5~CDJi#rq^AT)T%T2$1Pq}kt`}^_Lp1E|O(SW8k1Hz|3w~rj ztCf~fry}!@R#l~$Y6Ix!{Q2wG7OcwMj$Co`TEI|fC*xvhYqi57#K)$T^?bv6B11#N z_o8n3twXhcNaY`D2IvJM{%POKDG~d3@>uq_)J;aVcn<5_x!DP~DLH_LMJ`Ksp<#p+ zRD|&gHQfI(^bwpRB^56M4`FXMDARMGbG3nrwF$|E`P#KtQtr<`OX>sxNqoDNx!dE% zZPDL|V)1rM7!E{o^gRCgVG};Hw=ci)*k}3u=@rmj==bIgHQLyF6aA?c;EQ(^J4J3+ zKv0IK_Wz$&MzkB?`ahZ+)zzOt``UFzShoL=-AB0-n*c%lt8eg6D1+`>1Ys9_>>qCi zx#oXA_|H52eTRSf&3`}mmmbjgo01qmzrMkQS{;0T&-IEfEV;qx{MeNTPBqAxoy zh7NW>wNP;~F%d$4`wWzA1Xw-yo+~6L-9dj!2CQhXE#kn|irI#SV_ZMRjVm}$)@%2v zu-p8K9&+}3Y&Kw`LE;>=y#>L?S}=hD3oMK1va1kK%j=jJBk&eci9O*3t@w{;rk}n_ zr}h*Wg`syh;6o42!BPqNK)r#(-?I)}^A|>5itw{0QnLMQznc&?E)XL^vFOgo$|A>Z z%P!B6TKvr{{_R}+V~YRw;9q(v{#zG@x}Nc85|W;1cHzVN1LU^MlZ^(F)iKF7J^KiZ zryhMsWYBe;2=^TvHV({0_jA10j#dpr0~{}*9RxSNy}6DJ?niXYK|y4|Ks;WbjDR*c z2DHURUj7_JdMY-LdO#T`wEdOfy|9>b*PAKf;7c+M%`ypUvKNxCoUTk%3j*;4lgm8!NyK#- zZB8`sSh^zcVmKZ4xbh73^kUDo2GKX%O1GZGeg6D{6JuBxp>~Vvds~EPy!f$0Y^VK& zCj9gr7oDmLEGmA6KF=2+vn}BX%c|`(>->Vt>}vGU%g5+a`8IvyVYXy2D0;$X0t6qxp4~e+#Ga- zl(hH))?kN)4_cuULNIv078dhYubY{Eh&9iyIlbLwG{8Pw*of1cA zGjGhPdNLhj5o>eT!|f*CUiW-F*y-=5yU;0kUXWcbG@Rg4p~^iIr|B1$NGRkrGLAzR zFTPyb1E$2}*Kl4y@H;m3S$lS^@mIAVERr1@(_Xp6r6;Y3hlNc!>_b6Is|2_YH7zTP zF{-7*8Eb=W@zU?-BMd$f5B_K5id0u{!R1`^^8qfcT(}JF>=1clC;s=>{!a7BUhZ>- z3)e$=ZD~{_X}+;!r79QH#$;S{O^FwmlFGv+u#ul@+oWzB9}(u7+d>}5H?_{E4$Sqv z;_5EW;+v(TRqC(1ci*nweVaI5IZN2Hj6gg8_3UC#6>@i|Pxu}G(j2CvV|QvGY3kII zw3~ayE7+6}ma-)!NNFE^LTXpN@+yFKiI&z@@aW!FjN|_H`6ct_&dy~vwh*9dX4lqK zfh0$NOwgyth-h3_jH{o$yqiP9I*(Wi-M4v-J+=G=r$h05 zvG(kH+t>7ee!o8}wtTN^A0u9z_BloE%<9Cr{Hxa&tmZev1=&U(FTNm6_1t+%%8Z8! z%le+cbVG%?JFo$OM4rK9iVU_uyig`hMrH zptyvy8!)tlZnUIi^LTBS7R7F>*x6rOE%k7ZWL1gfu@9Fmw=xTtjiSkj(1A6eEBnK) z!spY&`$WYpOHzulTQf`NC7nHTX~BkGyN}xUCck=yr{6X!ONYff_f~k$R|;ExQl>sQT=13I87{)>VY2`XY%5qA8wkPxkKP(9S83imuCOTnMMe zTpgpO4f&Bm8-d3l;_@DK5_g_#o5<18sHLR_{C0SglLh7?-{Z#@6&^mko_Z|V)bEdf z^>Dz&%8)FPnEu+&19A?q{l~PKR-RZF2(-7GR}382Udd3TzU0x0hl8t*P4V)~ZGrBx zNeqp4*1*=@jP6=drRuKK z_-MqPGm9o2`!e0PIOfyysgtGrDcLl0z6wOsMr?egG^C)oo7)~%Uf z3MCJZ{8L?}*cSMRo*=WMH}HSmHGt*=N#*X_-Cx~aB-#}P1n6)|NKkZsPk596R$>Ce zXI@oU*H|nUMOa*1>(-dPh}-j9&r)eDNUsiq#@Cxqe~(txXem%(q!8nQzVl;BLH3x6 z$EolA{nbAme`fB^r>{A=QFCNvt-LZsD>Gp|L}SffUA-_`@YwbB{?V0fsB59CWo7ft z@+%(0AWFjk$y0uxGT$2tMLOYACLOPR-B#8^{^Xop#Y%E%sMG3L^T~d5pIY-^9{&Q#6MKOZ)#^f81-7U5k zlPxhEKynv)i*nxI>H>}CvDCtM`M0ODVWN7m;HCzTMM1sYuY-NHr)r9RtV#UR+uDZI zn0+G?$@7uIo)j0oNP>t22FC|0?*Z_T<2l1rNtSrLZ>TsGpmEVy9D{Q{@tX4i(mAP` z0>w#TA{D77SsM`5b%BoVyZTqYK%8>#0~;ONUthO|P27)V($lFLx5w-w0=&NEFt$fF z&P6rL5L3^$?d_e`E`QeFUP$V$5#}_oK{lWlkwk_oOkx87)D(}VG#4Wx`oq{xp_lQ) z?>>JvbK|=u1(_y2L$3JIx0|!GO$UyL$5=Lb9Y>VdRAV$mw2uPDYYIID#g5p1jbPTF z#9kF+y-cO;y78>FOL zM35AaZjdf%P*S9&4$>_h(k%Fu)m622Y43O<6|}#E9vBuH2~4^8^pF+p zat;;Hbx&DmIk0c&YChMhw7@p)tD4(iWf`HRRZv_mF|&F3lrDScCbiJ!i#H76Vsfp$ zw4t32*SWu5od5CqHF3pq*r%~kF=`;~UQFuTPidE5{4c6|vHL))X-2}K*rqQT;8=b! zoS~J4>puqmdwvDy*QsS7@Xr!zGr5t*dRP4(M}i;`qkzEene)0~jMW-Dj(6dW7pAo6 zbx}JK?n-&x0y??EAzlZMDMWW`Ywu+}ZhOAi)z(NrP4!1(=l7OOr){Q8ThptZpZ>Xw z9tY8-#fNR7Cl)&v$)eI$iB1e;5gwhL?Bt}Y9*>B!2NTIFFm@G_HysOqQBV*Q8!mQy zr{^KKQnih?_e4UjvBcr9t;yg{S9$=xFOj&9PCc%^?8-R#a7n=CR4A?9hKeg2M3@W= zYJvyYgoim}CFnINpC3}leEMFY?TCJrW+TYEOdR`O` z_Oxv|Tbl=jD{yAZTfQFCI!Txr85N*8?wdj%Ddyi@SR2~j?QUCf7|0OlS0o_~rHal| z4o%j7^}mK`G~bdHPiOH>yhQMGBV~yBj7OrRgLz8~wfZ@AX!`oob4I@$d4J3nnO}GJ zZ3|U^mYLwj6m`sM=(jgG=zNyLA&cFivmR$PrOM8IDbEVyLLFm<3PR=8Vz?XEqj13h zD*6mlrunQ7<`6-pQOtApa|#nt6sUIzy=9;{P0*Lwc;b|$NMr0Z>6 zNJL9Vq*`!GGPpxKeT>3i5|HBW!oqrAje*3>_THW$6m9@h8VR+8+;k@0&t3$^5(X|o zTPxNn-3#pgqA1KscW!(NG{?2?Wp3w;;USA(FB@(j9-;?L&a;^p~3|pt&7xbV34K@;1_AbzEL-bB<|nrKLbR;Mux&>uP_q z)67FH)xsA+BAo|1uC2NH=2KL?DXQ*)ffyAFVZe1%JWWmi0$eYLjnO;&K?_eHIzf_> zChtplTjpI|N{(YI;{liP>Z}h#zp0*BI5(Y{e8V=IrWvpFTQI5&2%J>ZXzRs_lVgz+ zjQ54wb<9pZ=nDX#%7U+Uo?c|Te%NRd#ds z9f9}-h1{%Do1#RnY1f+GH?Ddd>IllP$vW0QgvUoYaeQ6M6Wnox?+x zJ9i@5Z@7mvUYvGY)Tmv5FWNbt&Alx)P^ItIzhAQ#?peD7~fc zqE!Py5N}r@@%9f=1ynOYLS5I3s^f$mSZJ;C;#77WT^hW4mNUJHvQHLItX$nNIMhar z1{o@&7JM=pzo**B-P#zu!XjT5;a@7f@bVw*SM-QxDd2MeV$TG18xx?URM^a91vwNyGC6 z9F0c32h_nWXgZ%ODe-<#SoLA6D*6k3TCr?=vfX>9m7?0((3M(8)OV$efEw9{w zvvDnAQok}=DD^4oi&I_|mX!$~J*ta}MvHs*pC@iyivsa-Z6Cj~$fr4&2EOw(A8hJ= zV$Fycj$IpfuADZmX7yN`gA$U z`I&;5D_5w|wbIp*AP6_SfWLKQSdw}|qPmJIWy_*|KZKIUoTOY=y(Os+^`cP+kEugj zkC)PM0PF|zz&2{Tm3Pdp@R)023`LE6lxvjPar`zbp zga>A|yYs&b4{+Zaa$rTGpyrR&Qw*22^z_QDLT}Dgx~*1P&Ydie@w(w?-?!KuRKV>6 zcK4^TJRB*j2T#|tY@VyApw1KOn#^^*vD_R#w!S}wN+<#KS}oLdA@pEJ15drPLz%M5 zo2fI-t?+fP&r{rJ;j?s|?cx)bGhrOooUMnC-i?p~l;d)WMVfUzW^Pztwo$dt=~`)Z zg@Np2+~6(GH){c0+hj94S1RuoclE6+2P0|7SQeF81jcRV)))R9T!dV@7tZ9xyv7&j zx0DuU=F2s?J-a!aXi(U+qCa0g&Avk|9IlyNu=nfq2b2`yX!=LBVyus}1d)Rh>?d>W zTghE*gO$felZN82$M9pnvv4KoCysqvle>@0AzghDgCekTZ1xSSXt&sTTj7gk4dZ(M)Y zY)tI*l6-D8Ctc$%qrR^ExTO70VM5Na*HfkrY~oH=aHKtJR0@cVQ%>lPP`~h03pBJt zgeN$hK7MSfbLFvPNJ4e`D>P>8RN`j`I}w-o)Qv9+f|83}>S29ajT?`)3yJdjH}u1LN1LZls88-Ln0h>zZp(_J zl|J)e|G9-1E^cvYjY0aty*2DXfL<3FMBIiCf~sdsGDqfLtyw5cRPlH>Pz;|_(io%8+G-Hr!aN48+&$AMkKlwPJ=m#XXLUVKI>i6?1 zPZ!t2tG00!iSux8M%xB1 z0F3LwZ`Rv|R&>4R5_RplT@7z8PNZYz3;+FvVyHA5-FXhqB5Y8Jx+&g(H8?+BwuH;X z>eq7FHt7l>Uef?^S8PDBHa#!NaM71ma#5)D!{uiZq!GE~Ykj-0vE;gH)j7`kaOqOC z`L^k>A-sv5s3_t1L<=Sng)SzR(bjT(*54n)<@qJ`qQgHR01#EQn~i_GK=x$l<_Q#m z`m+fF|f9OwcZdq4xgahxkgOP9tf`W z>TeLtfM~@89)?!8*DDI@PCISXe~Nnw-tnCHwPMt}-HUEC#GV?&RECf-H)1(FF_~QS zg2M_^ZPSoqZcd}>DelhSA{K7H#oMo|0R74UD9ahNo}jfdSZ4g>2Edr*vS{3hJLvA; z*Xzsp_5G>UyVWn3rI^)UTB-=2N zB}Qlb&try-?v)yk5OIaj2rGpm*^~beCpbSekdxi ze4Qj7W?2`ukCR9BzL+*3)V|AQ(?5GTGV<|qw<>2w#!r6rXHv^gi4${(%_2mbG}POk zO`A$Y$32LZi~Uj?ZMwg5ZA_>A_C22h5LGy+J$$-f?7(b(;k!a2L*z&S3=9f(pVsL zJ<^WbqzY+SZy`@XPCd_%Wbh=q`(aaa-jlq|nkzbcgW3P@2kll#P>Qb9ig_1gW96ii zQ$uVFh+C&mhfPB9xblX~69k3eD!L#$ZDo_ek6}GeE1AhwyZKXkMNyyGK}+|m`4OGQ zk@|l>XGc#6wPkwGmr!-3TGT+wft~$hW}(s4rX~{$8e)hoKVG$cMjE(~vbU^1m@AF4 zTf}auvT52?h*r7()fUa)jF=df&EL;Z%Vuz2gg!QaXTOV;a&8Q}e~W~&R*nFapy5-W zOo3Fj0z~3K2O)&!BRz<^hepcwCi{ue-EL~=U~b5H5VPK6;?576FGzl23L1LzAmVNc z=s2sHhUAJ0zJ`laOMbZ<@jT+815P$~zbrBOuy-H80kZ&^Gq|6feLy<}**Yc=?E<-J zAfvE9FHWLjAxaV_XqQL`l|6_=iR>Cf71H$cbh|0Vy?b63Y=2iDg^hOyTH;s)R8k=5 z1Hdf$n>T&biZt@{cO{Rn#NyobpWB_2!${=EjC$A6arL{2ds6ZsHm*ex&YQo{M&t}L z6B7@>5&+*C0AM1JPsT@jxS+My^GXYV?`=nr)qpH%{*L`D(0?d)F1J#v1(?V@B>a1M zlmdZ${2x0bxh{F#0$$p1tjrk1&d7a06|5A%QQ{{HQQo3H!@Tv@Em%4~d-^uBq&ANF zYf7o4zFpHnLGD^=4(+sW7Q=;|0MG=Pp-m*aXYcj>nR>)en1d;X^I zxv0}g!tMiM&JCJ=et;s>H#Kd?BtkU>b2sF^?UbhTXWkJov^%lQq5^>5H<{cwEnqXm z-_{xbK5D5;NWWA$5!`*oJ#-T}eXw6E(vmMtBu7Z=sz0$vd(T`_&Ck7uoM`wx5XEUi z@!;9~m!s14arHTMc;4`|l;tHP;FnQ+`RG}IUr1=4!hl$#Uv)LyHn``d^a)aIk@C=> zgMVy$`bu4AtS;qT;ZoW1h&F_0Ow6t5tT`$WdRAVP{~H!T`);uDj}i&Vbe4#yxh$Lf z2$t>3sUsS(Q^htr9Gtdm)6fxMVDOK9EM!%WxnkI1g@a9TPwu-Y+V^>NfjuhN@W+8d zF?}|b8Ca71`R*76@dmls{&5e*0{VhUi=P`wF~lDj8DsSYCQP-m;h6pJXKu<)7P(9u z-FCO88CUE1c`m>=ko+$xrj+!AXnqFO_Nn5CUEDDg*)}N^Oiuf|jeiI$m+;#goE35v zAN-YjzBTvhgfK0f-loIAcO>Dgt43l%X`@MZcC%RK@6)81X&3~{j7t5Nt1r*<&C&in zFr8^6gv1a@ z;=dfLGv1um;=Om5GyanuOYm=^EB&Xvuo)O;BZRzTYMPjEtN6$41w7nYwqnUqK%@feMkMLJO6gfSOP& zQ1T!6%BU@l|+`dLJ zetXz*h6KP?0Hs4=&F$m2*s+{qvy5HmVD8uBL`q6avL;Q4tp z0d)#(Nfr?i5z8x|cH$Q})FiEbhf`=+qe~06`qi`G1w9ndK~>@g1j;Mp1Q5iDI&*=T zqS^y3(;lk0!v%xv>y)w)mo5MLMJ9K|J80Kv*SSPIj=qHmC4%x;xf2>St@KzO<$cY< zpPDIc>?Sy<<1~@rK%+mc%HW&8$z#=Hk4Dmprg`tp9N!tD%em~3rpn=Xi5Q8M%jB79 z3`ik%fIBevJzh!ctccw*_|hz&VdPijqQbp+f!BBbo12+_PP@zY&Cpr69W&KV;1hO? zArx#Nc#24Mmt$VI#;w7mx0!wVTp~(Y-(I~+i2ILxfBQL(TW~Z`+{TuJrGOM64D-MFNve3fyQ1fjLQfk+Tm55Ao7C zNk{?gEDTu?2Cb#Qp=Ze{gi$Qbx&3_80*=e8$`XT#tGBZp+dL;7`W%u(__@31FJF3d zl~zn6`GFMfKD_B}m`ob;3_P}zECro}1Or5x2xGbAYnRIAm{=#u-6~;F%(bjnYl<=B z&TZ#6+*7zN@EbR5Jmt~o-UdH`9H;Bl#iV@L5BxN^F7_rRr9#I+Kw2Pv^PgG=-rlF~ zI||bsOsB+;uFkkC$Kn~une%lWcb4t$;nAd zMKtP+-OOQHOD7EBgWM;4*W^$wf`!@a8@`U~g|Ws=O!$q(d`95@iVhI07~*aJe470D zNZq7QJc+&kVy9h-ihnmt>YYn(%DJ;aYVs5&G^%F4*oDO&f6!wX^<+-I_g#ELcGg^@Sj=xkw{6tL1)Ab5=u?q4xE|FPb9NSXZ6Ax|QMJ;7w^9++EBxZ|`X1f8UFY zcbFB+3#%?=r!kVIJ(a?3O9Ra~$0v~*bs_ZT?fr5S7f3YdR%{kiRAQh&!Qd+Ww~D>_ zwf((p_{35Y{q=(fWna(({wYa0dWWjf8yYHGjIc zi^&nU3Sa7iik_^NxYqr>GGp^%76gWO*{oDG=c#Wh9ct%N2-RgLCrNu=UqxL~7kf@Q zO6aS!ib)6MmcqSZnkiQ%eW)Yie(mf$U7ngk>@;<|&YYCb3~jj&T9}Zx*L$qscgOH1iiUx4u6B9tx_x%onPv%A`XjwR|H zs5$j#NaKM_iGr2YZD8}50t;C#QGiqPDE%K0^}K9W>kFU~giT@6n`Dj}17b3CpjQpK zUZ7D6evRSOQ=syz;#$JzcZp|*J0t|&OW{3P$M$67pMT^uTUnX#uXH$}^@jeg=^7e} z288U~uU|b-vi}afeWacZx@mgAK7xnto$d9JQc>YbmYcMl$FeD6_#nP)aZwsR!x+#| zV70*JMIuL(#B)d_jBd@beLLKodICcMRsr)xgxW@fl$#k)ihVb>pp^BCKkg1@(B~J> z4BUBG|M2?Kd#5RPe$!<>v3p8@?)hef+aPo72?#J_=Y8?w5fCTniskMDU?H1Molv=H z-x3rdK*sY9h{jyw)VPE|4tb}wQYE}o0&cir`+!zZ6bL7#dS7&cObQMj-e43bgFPwi z(l;e#<*_=~yC7fu(QdvC)USM?>%n93BUi3n`?taBU-Xkr7+tr4uh)5+yR+Fpmneua z5(Vrw20K5{iHIocZSPRZJbPw|EcD~Y7ZS!x3#8GLHAI$OF`V5X`CvAEHe($KwTcIj zI|Ji76W&|xi6F?~A_8`x6dDY|btb~H*#8%aUtalI4At}x+`1_M#>DI|HIxMeb<|?b zB!zW?1fAC(T9Y0O7KOJq4ZcGKIBe>X+ZnBaA^87mqi>P9y*0i)YsX-fmLbkK+3f(bFcpqpq1 z*HZ_)V~DDt9E)0$nrJ#-4sNPPPH zp8=~#4&eR3Cnw|9Ndk7!C(zr1^Da~Uaw?8T9|LMU&sZfziIMDR!TzC;BktxGqKwQr z^y;akFC|=|O4VhF7V%-0)2NWqQ6By(2#uh+ONN{88>2}A+mFU& z!Sf=P8RZvK_^+K;bXgjDK2m0*dzXZiTG={Y(4F+D!^Rk^y{G*LaD5NGGD!%*a93~N zG5Qx{hMsl{r*N76hCZh%rU?YJvPjL0MfSuTBYpJy%-hkY63_lzEw$G0e_+3{p`>)V;6)nNADM8A|>qwVR-u1J`o;S6#X7nvpMEc5XAVWH49SoJ7 z?Xzedode7wOiqIdJ`B!3c@{$^qZ7|fEwvm@lg6Ho^|2NxO6|r&GZHb6phd@~oQ)6g zY<+-{^VJvs=<4ka112Wg`^dRot@R<2R-rQ&N={MX@_?vI-WU0Tl*lQ%oRK450Rl_IV9}L-!$0gZc3X zG(8w(`0CeqGz=Y7Q26wBJ^Ad)X@;_F!tn{K0o3@{2Ql)o=2OV2}LXm|Le9rtIAOiFpPlHS| zXpLVS&l7chV9#tLCGJEYlI$kvNya-^YxcCv2091)C~h2}g8?DYh`j7~le?fz@+al& z*9J1s1SS#80)r8aM%)8v>lFM+$dauKv}$=B*N3z2`C*}sXZ^++l3Ow8yz%{Bmq@w@ z;ZuEVBkNo)rt^i-C?dcn6o42c11ceW0D2v~14dyH2E{Fc0%6Jzez&{VXe5yb9r)Wx4DBsVzIr)F>i<4h z;OE+|3T)3pCu^z^SW$J1{mQ$0)B^j)(RyAK` zu6o9+`*6q3PS1vj=v<_8wDF4yJAcN%;rnFA2loE06EZnN)|Rel3xr8R%u!MI8qIct z0x)v*LEd-UQ^EXasE9pE@1gOq%rbq*4mZci#(w;KP5gO^wJLrn0b@L)EjDz&t! z+-tA%A2%6JCP5J-7mAT^7Bl7Id4U5I4pEyrLH3Ady&HcxY8M+W!Ysf(=Dh#>rh@?T zGe={4rDpK+!WR)BXlFVWdFBROaB#%*gT~-4dk!^@knOae_~)P5@;<#;!^UP`%>Jq( zDrqJKY#DQLs2&NNCuCNT#(xghfN zb7A4tgv4_osin{$CUfG`D|Q#xdqp*!0KuD0`^P2X>=rxwI~ZWX@-!(B2tmNQRmoR* zce1x!ZZjip(w9PD+rk?NVS+wyybFvNpci{-vtME3wZ%lh0kW11}37y z0TG6HugwuEwk=@T_V-_*K@ubn{{pGMfIt=M;D<63E9)M}-#dWZ6OYbg)z4vMXjt;Q$*!>ha?skyxl5JUNt)$7mMoYd$-< zU80o;0Mz5tx5QU@Ugzez@V|d3UIt8bFboP}2P)a!!Q>n=uxmhg8?D{=B0;wYVlT5}rm2e%UI5SCAH*y{wk5{y9Hs>JfZ7ux*!W0J?jwAZy7R*c z_@TG3*!MZ9UJ1~6Lr2K{RDv(RLqQw#;t|U(NW%&5ENW67FL80~2Lh{iVT?i0HO|Mt zRE3!`iy+zno3EHH7cX~I3X@qszgoQylXYN*>PPuR0Z>#JdA}AD@7(1#xrwq>A%xxdw@La*_S3QT*0{R+rkxVXCN zo5mjOgCbtCxzq?1Xxylk=!A9}W!TI#AgCs&Q#-&}q@K=($*;)vfCSebOnEXCNK}V3 zOooDhkT4r2oS#ZwO zWV=D>9BB%IA&2~Aes=bKX>fk!d`Z0(NJUpzPsD&CzJZNRA9%f5s89m~wnvCXNQeSt z%>bGNDlFPzF=u4RX%D)t*&V%2MCqMJgM+hW@|o*zZWfytAyvjwHF?qn;@I3Uh$3Eb z$<}k_wtCru_q1$J0)M=?rwAxn7{S2?R@57aDJQp&fhDTD*U&5l&=_G5#cnemdAc$I zLo#7HA^|W4DRnJ}3lW)cWYh_y@Id6@4TI1ya;P2UvV9XyFp|L4goe=w-v@JX_xwBg zEtOfgr18^MT8jV{1rhfjISAadtYod3jF7HT>N_)0!AN4yp#@WfM+UU%;6noO`?XxG zZjG%k%m~n^vWn0AU7(nW1#tkfSV7bhd=ttUaGi*>7Gy1n>}fixr3TWUows_y>GL)~ z#@PqbZjTTL;IM=bRHS%}>PnI@T=H9hP+OJb2!7#?vIN=K_KWl1C9WlgbMV9u9M5~# zcCs~(nIs`HYi+CVVwI~wMSjbaEz;TANXnKW>13UpngSEg45SAL|LsBg1&&91d7tQi}* zySBkn48okD-W0KJ(9;hL7wqap*couwAXg}Jn=nmreG3W(YG6I#?-8v&5DG`_b}*`i zH%2@D-3lu$JT>0LmoDzHP3@*G|F4kSDT^orB12$79U}y~HE^qWAjE?{F*$@n7;U+0 zki|k1C>;VmGER*T7DM?kkf96YcU)J}1CUG?bnw$bAT)$dVtUOmUXBGsW%}w|_qO-< z7Ya%me!>Wamg(tJR%OV>O(AHkgD?uYb-)7Tg*n9`kx^iPkb$WnFbLrq861J{yDrb+ z^x{EF9vV20Kz0KvsAwT1A9|BTl`Ab&;a`F+`ewvyJPAcGD$qkp1SuFuh#sk^kbyE- z+Z+}LzP7t2al{6X`u^}l6%?7jNuBOcrCz;y_5NS#L^trM?3|u5vUP+by*;+l&PIad z8~Q-8-y@#7xWMfLl}Vk2aWju`(vT_x5P%#!#C&ZVS6xo9qp0y LQ>o(ndawTng)W`d literal 0 HcmV?d00001 diff --git a/docs/source/_static/images/quantile_regression.png b/docs/source/_static/images/quantile_regression.png new file mode 100644 index 0000000000000000000000000000000000000000..799b1b5753fe90b752ca15635b421c2d4222af42 GIT binary patch literal 57551 zcmbrmbzD{9w>NkYMMMb|kwydo0YSP!N2_& zJ>-d6JhSoQ^773aH?myVsi~{{xMeMtWX zfxz(5T_4F4`$k+;T6*58eYv|Va8;R?C)K<|j3uV}cGSSQ^wH-T@m z%o*`rE%fs6($3EAIvQGfdO8{!8m%MVg9qJlTqQq#jQ#rc%X6Dj2py9b7mfH=3fF93 z_k3%hp02LHzyBTe4Nsk+Bcr3Osnyk0qn=qOHUpmRX`(Ef;u3E`2Yy)3rt=!opa1n$+jU3O#icr- zKH%~`AEIGVERs4gs_R7Mh<5na`gGm7LxTzmRw9qL2a$W-KJR#9P|)9TqeOc5TGO{;{$*YCAF|lx`savzcaWkqW zWwM7#ZZIrVVa#yj^=k&Untp5jp5PQ8v33O%6qMlL;N_lp7I`-uAvA9kKa)7#_so=( z-kpm*(JUFs$sac~%FUyT-JD>KJ0lrKHN;g_$2-F5YHMnUiHWJCVuskrhcgo0*Vfm0 z%*P6U{P=Nr=uoUMF4I^jBQklK>7t4F3oFFM*}1B!%5u6!HA&VuKf~}LgT|X0C#Fz} z;Yw2C-(e9Ee2!b)g@xx2=tLG5J2D6r6!sz*YVQ&{yDW80Ea(@9M!b5>fBcAomX?Ax zd%qdmBwA9n=K_<6nMykM_)ma~*{Gpp+?%6)mA}X91y(Y#5qBRb)!64~&(T3OU_3&8!yNKA$gZT2O{hCka{K$lah2!Jm(xqY#|IRh%FM4(?3pOuj zx5{9N`RqQm@TiZB(1>AneN_=(UE&}haDL(;eX%Tl7HrPq@X1zupoVg>BmnPOmG#`U z5=Sg@{a5(bQNLirNGI}ZYHE_)zrQ!4ZWSC)=5fAL=XPfL?>gL?sy6B+?e?iTUCU9( zkgjz(veeX^g3kt$2}mEp&epE7Tispk^zrdoT3RA={fjbQu#x?C>{+sf+fXe7g45&D z)!EruT3T95YkIEPk8M<;1Zu|0iZPX#sqEgxQOeO)ywgRM+nYD50+)gg?3$HLla;m$ zrw9EUR^Pa+zdsX5+$i98kUajYb39%$XVgG8an%TZPR?yJ8> ziAtp0*AbZY=S}tQZX1p>U+e8YGjkLipWE`8O@6JKnV+t8xs8EQTvAd}T)g$WvczhJ zfAQ%}EMjqK>HN&hD9(3(60gpUx)(FgH0=3A%lJivgqpgdS=!z0>$QgwqP81nwkN%2 z!Xw!(?A+Yk92^x#j+o^7rcr*)pQ0A#a4>u*UVbq)HGPa-f4EYpF-{iK+;On!8V*5QF zoy+cxe7t9WzjcwMeH_qXZ;n8tcjH*o{B{zGFG_<8i)8o2mFfwFwAt?c%`AcQIqXns88lDSn^^m5(i$2Xii(Pol9I;8#!gO7l9G2sS7>B-aQ{C-)@Q2dlrM@i=ZtN=QU=+nYim zTN}=~I&KvRxuD0(DJqhq!F8~+`y}!>iBu206#10H;k&<5)cIf!S6_PN6LtKKN@5RS zdrG~0^6?t8`~mz)p%p-2YoS$8)f(()VWp1#uACjr8Wzhz)Tm^ z9!|h5I&Q4+E7yzZwSLpAu$+PdGB7wO6VEN`fOh@5zJWm&Ps{J$8eDOODuipzbJjm~ z-;MGSYN<31##-v=Bn1XyhdO6R$awqtg_06@mE6KGZSPT@vRa%Yr+-R5N%G{0GAU_H z=bV#E#Z;}?@#(>@&d!{_CcSd-y^)a*Lra{`dH0VibIg_}E6NDJd5wt?D<`zEzFhKzN*VYQz48YuaVImd$MBc~*w$$xpy6 zGKu_CW{dW-1Z3J(dSZLsu{KGvidtH`74^Xv`FqQe+v5~jS;0d?e-Ag_ZCbER%$bdZ zoo`xMIBwHYhLoS5H*w79+t}yXWE~g}XDf9ay+1qLq*KY)w~1I=7Mxms75{)vx#n=f z%yzkFvs`;`JF@aP=-57M9U~UwiH$_o_x*Uf?XIKv0#|k}F4cnp^dxt5nCr26kE<+& zjNemJ+HMEKdFmCkM^@v-i!vUkq2b7D*cX$C-D*0wGOl9U*$i55vmZA0ty}G#ojf)R z=;Hz&m**TauC@nj!wd`z(8rt>!&Ryh%HSrBrd@icr|U*1W0y`{&v#k@!_vdF@Tid(&U$vK~>ym3(YWziS8$WJrZ2bA7+Z|3Fc2XBbc}d9ZR@FO_ zx0vV}vh&;4QQKq6Vc)oT#%-9^j4UzkWY2b~w_@kOUc2m-EtjyK9y~>v@nHJ?&irfs z^FD)1*X~wS1c6GD`B{HAkyXuIe0==7$cxEzC{ybu$^GoaoA!x0`BP+?6$KiV#qZ`{ z4qx8wuAd=&ciBR&S|3J)cy6|k`#_LRS?kSe@u-3HE-@odL45Bvr3~z`#f60~qrX^C z&9IEJ@bBj1nNh;3l$Md%jv@P_T46O)2NgrJ*4h5|k9X<$ohAB>A8&+GNllcRgl5rw z#91Thkr(Vu_~7Wp1x*8>i+{gwc~1hL*&6L5@2DnEy+Vc2BHfz(VR7WdNNV2j#$jf- z!->XohaLdq0SYmzKm1Le0x*mmfa6O)l$!%s%^N{e(oE(jWN!QYO+L4yBTe4aN*8QW zE3Tj94%LVuyH=)LO53$cH`mp=`eg3g4;d60X20~Y+(i8*DAsEw<4e~~Sm2r@dkkO+ z)^;ZU@TTu88!NjrCfBct@7(?-;4j=G;;=mb6TmnzIeBotagexzf?yD+;ywAPZ}97G z8n@2WWaJFiF>S+~t>0g(=HAEz>N5bK{AU{_-@bk0FL)}1=IQmapJfSl1%SSe;WpOw zDsg(}^qH?vehF9%pR2y?nf>xmYrCq}taX8;B-F@pYMjzE#>S?Dcji3+Ae)MJj7tx% zHb-W(cHM3vu3fwKn1Z4=o~J^$1%pEA7WsT59@Ze|`(1r;arDT}corjRQPCUYmFDBj z1}>`!d@d1;+WD11#l^+pbSlp8-*a(tO2)8enLW;x5x5u{9d#Tl)Oq*r9TWn6qd=3# zY@fb;t9!pkHO@dogMY!gmtJ0Q8^M2dZYv`rqoOj}9m_$7i_v{Bv;pHC@Q~5aCY8HX zQEj*JCV`wB{7NHp7Z=c!5Sen9rFrGJ+40H0ip^wTKEs5A&E@=Hv?4>Q^OHaAbd}Pj zU4LEy`iNK3=AJqqjx`KE!_3)L9d53&6o5_DMZm(GoE(#{(XSyROrEGzsUdx;5SFN( zrFh!Iv;CtId0C7V3RXV8^Z$lDwVP+;0zIA*Dklsc?zx(@r#)@Xu$!#pF+198PP|$k z^7vLt*3Pcy$LUAe{aT*C+PFU%R@8HsWt=tb=d;hhLLrFfcLT)DO+~eom%)(`C~)aC zQ|HF^?}C~zRbmvlB%}q!2g(qDw~G9HOZaSSAQ|;pXlN*-W|iH^?qXAukge?=Hvh5b zhKhsI^9?-JTIYk$_o>?)UcKtbRV}dtbZ>omezL#69~T!_Q&R(F$_&swJYau+zvMT? zjMFhDK&Ep>y}pTDgYH-E2aYo))7rMX`Yt+1%&GJF^Vdj*12y+%#`?bn+GJ-_j`NI~ z$z9!a{8w=sM^kmRr`6k(2L~air)zqxt`!yv2?J3Pco9+f?uX{;f`U@=Axk!h?@MRf zV%t+ZJE!(%g@pqi=P9GkA@*j~!wQvq?b+pB69R;cTErzD9zSISp3abA92(chZbXCFjZ-51jEyzfJMw16c?uOkW$Z_ZZclZ?N)~#DCMm>~g z!)^&msJPulm%WPu1(>QiTjMJ$E6{<5FVrw|gxV;dmsQ?nlCWUF#Sr^~-#;`YLh639 z7^xpW{P*u)t|L& zvcOKiUykqUlC;qW9%F6&9N6MHlin{y6%{iYv8kD0UxiP|);d;1@#IO%^famS8LyeM z$3h|IBR2&msd5cz>)pLEHgtcJTlVpLL;26Isy?U>9=s*5Zpzgi?po{8+K;+uZI#0KyI_!t`# zv)1jbJSQjT4ZVYnjXeMGKaBj;-_*il(WWw{a~#O4{{uQ^X6D_!y{m%)k7sWRXFD0| zuOsjRhR4Q?4Ghveltw{|+4i`a?COGb+BGtwyo?0Q0dFdhTwhs5<&3YkQPn0A`MHb$x`bQ(slE@&r-Iw z#l1io8qQJiIGS=yNJ!|2U*qrPJG3+YgdLX`FA#ef?H7L&actvu#de{6KTt*yjd*x? zI6puCjy9pt1;)3z=O1!&bAbg^S60g5igL?_Ic$vWOqdnqY1KNnUR~bI?HMc58-*nZ zhyf}XQ1IY*5JXf}RoA4MI5;A+ev1yhzdTtc<9CgUiz6l?n%sPfVtq zECXfuCaOp6cXTU6185JoHmkH%a|=_w_x4HClj0Hzat!!xb#&#bE9zJpQ9nR$a}YBz z*&ZD(PVoJ+xTthodLyT>u&=W-pk0;E{nF)}=YQhzW!3+N%j^C(E>F6=1+$NS=MJyU z!Y6UcD%e*M&(y=t0s;a6jg$Sm09c+_k~Cy{HEFr-v_M-euc)XfFQ=lW4kY1;*wC(b zzW~%7A0Ph=FMx%GrTS|n0idYy5~D>MuI32_?Yi@`?RphVP9Y(ox{Jff{KbC)P-Oji z+COx@R(mw9USf#(kCAl6^BnE34&I@gp%^{c>pa>37%pyV>g00xqi$cG@$4Z3{nfFa zgw)s6s;b9 zORNaAy+b1W-r>W|NtJw!_67Rk-ukL~3VY?;H^^mUPtq%5e96o5knCPPgT1DXLXrr> z(+6R7wu|v6b$j8xFh)6Agw}mD&UkMl{cml|)L(UT%pmpFKdY-qEokxKAdL6reuh9W z)i~gLb5O(f)+ViL5AdS-)@Ns*8+3$G$QTLrBns3gCFuaT2POcOX1wOT?P!Su$SNj- z>98LF_E25ab*`Mv@3xRuA*FA`c#L?Jc8vc3Qd5*O`VdT{LUCt7^yvSHDFu zu-rO1o2fWt75ko(R8%C-UvE4}1@j^G!qdo=cf9wt_}}xXZSm3OzoXiWQ)Omdmlrb9 z(M%LpJGwrSOXY7H3o{0jhQm|7RXIDvj=o|KOHr@ku=un2Teb8ZMIY<PPs(| zl}x#vZTpYQ(jS^SNmgR>B2UAP-S-ZlGntf)e0@7712DX8eYX#B7L!-_rM zV32&;@OE8B5FJyR^YxAYVjMs~yuV_<&wdZQ9UMTtz;ShS zbPz8FOS5voX+XcgHlM?PG%zp#yZ07CgCVjPcG`)D16u)O zJe%bnk_o%Z)6x2vziU(<7~em~H)pK0(z1H}`n9rhM1qfan!Jxtk`XzEPjYGL5bn%r zFXbK1g!frlS?U#*2YY+AHa5vL{`=XfX=(2&fA{stc4JFv*n8s)Bt%C?3nlfH1R+&x z0P$7vuLte)^e7OrxM@agXb(2z-!H*vhwg{a1nZ>gZC6Dav?&>l(HwTpW z-AInH=I^!G?vc&kAYs3bWXO9{bPW|N4>rr%LlD~y*J$_IT-&`G-@3HFbgMNmFaYnT zza%I(mp)khIwB$>g4^#l07HC>70=|dxc;E9uu}c@dlbWH(KwZBb#g2?1cP!HJye1IkTU zw)3WzmZbRIh_SE9*u>2r{y!Er>c|Jwn~xtqenTITm^cG6YWSHdy|S5^S%sIat*xG( zo+^DrXy{;ts)XX@qVQ&skGi`PCpVqyY-!NJTd-@F6=1UAk~ zT9BLD)!u&VJ|!XE(%cJ~S#uljpx~&5b)VLGz}q`cHNg~Ow2r4ICl(;4!3w9xd;JK< zPO44t+jb1A+u_FeLq@F)we+>yjaJf2g+8E7^dZ7xVh91YuuUL50r#e*rtUk{1R}3q zAaAfL+Y&7M(FX4SyF*F8IEAKnY@0ym%i>AuO$n|?3?VPRoyZQ=p~^*?|93=6}Z8VMKW zYceTXxfS=@2ZuQXW$$2M)2ENMTek@9*XwoEu_ol&SWV8(?if;Xig=5BGW6A^!NI}* z^FtGIIyyQYo=Momhf%Rr*O0SMACnHNLrU{D>TPuN!otGm_RkXd{#8`wWbn%rR2mz= zO_S90F}nAkh00ruK`1H*kd)0{Q?}mo-y%f~?OgQ3B3WBmd4x?uLXw5j2qe4IYJ&yy zUmrj-G&DQ}M4+y&9_r`HpE#1BNIN`7f6=@7it-)_r}Ya}!o*&VO`c{1s_0 z4o0=pZ)j+} zUwkmtL&D>*vDYh5u$NZ-SV8WNJg&SCO6v<8GP3RY`4m@iH6ABkEqLnoQ0gU})P?`b z0<`lokdY-04Gke#L}5HHtCG)MAykCaASNaz;)PsTb#*n?lcA9jT3hef=x7uBt;NpB z0DphGADP*|e!U!c_Gf#0du~oAh&h-Rq{bLnAy!saU;)B~z(K#RkBWe%Q^m)s`V7XA z|HF%*kdWkFbTlkKJu|bM$x3J|tajBqX4viELf_@U|_8yu%M>;rOO6&VZnvUP`gBa>ZS2 z=$Oz&xZ}hJ?Ua9wl*>{lK+Xw%a^7ufsyU{&|7dtp%*D6 zzNQ-=8>3e*m#p}ZuTr3;WQZ@^r9=Ad!y_0Me*R0S6aE1KsGd{Rj%UZmAT^Ykjb1}S z3pZC+nAbq;aBFrhA#v1@W%UY0f}im`jz2W=u^L|)87%`e1l+v8A&lZVF);zN0dvIH zDc1zm7OJ7lY$B$RxEE-f;J^ZJTGtSI{~j_Hn|(>b_M9s8c}sP+&0~ zqPYl=r@;k$Pa*d0r#a1nTnTDeNMY$|I~ zQkr{udIkoVA3qj?A;!h9SzR5>SXYo%fow<~IIV1E5lI-ty#LyctRt&b=b{Y)bS^9` ztdY5WsH@B#N|R1$KYkoTBxORYsFmCGU|8kahZk4L-(L%*6zR2QOYaCv{wt@M)zE6p zM)Ox)xg{L(CsRY@QeJi^@To7qcFb!AN#YKh?mV!@R0ZD_U7cyHskf0BQ0%urw6Q1R z?H?I2G%~u0ND&JhS^GIzVKq56_Jx#Bt#=Z-+8I!NK!Y^?#YIK^8JYR;Zz#HVlqP1q zpCNm6LM9kcIXS2ZDAl)b-?or}m4y^UO*+dK!JIPUXZqMY2SjTHhVGLHQg972Pt{;} zNW{MH{jcLtL$f^~*newjS?92+mX}_rtgIYTCKneUZ?Dyci4b{w_f|M~S--xKm<7!? zbaZq~P7=-E5&qZm(0B~C+oPEDuA!oq@oCcFYSlOemtHsK5!nZI7ELv)EIWG**6C>^ zD&p(culkFx{gXd>d9ht5*4KEZi{1+0yzi|eP)1m$zTVy|4%~jtJAeQ7Wk2yuH?cXt z%~dY))q_H4qa#B@_zV7C*O6hEzPAtW-c8zM-T@qI zXJ$r+D14I(lH7A_&IOwjxCd}mOKX#}6WvdrYmXl8 zY`3>0#f%|R0@}pz$jCKM$Ub0MO}zC*jxVNs{pD#6fBdy(UrhBP-5Y!JExPX<9N5P} zqZmD@!tnXyN9O+Mq$Mvmcb|Aj!Z-I?1N0$2US4NDep=d&@p08eIxID0*X?`6X1gS5 z@lX-f6J`PGS+GT(nA?(`P0P6e~wXMTOq3PIX2YFaFm{z>NE1kz{YGf~2A!l>vV$Z$1VZBXD(IQXZ)=+}|%JEBiL6 zMGr(8M(sMua<&ESf`S5%^J6ANRCKhDpP!x(7T;Xy8*dy!Tp%T0UZ|pSpu&&N?Smri zBLwbUuZc@Cd<*C}SSpmpF%hrQpn6PCyHD4==Z+j4{&bf@LsQd*Px28CPz5Sf9-RCC zP!1}Y)F7mEjLpr5D!nr^Ga**8)cOz?_jk1;HiE`~z^G5y-Mx;#v&}v{I9M>`%R5eD z%z!FT;DQ~(JUtN>D&B&G0P|tmTyaJ7G%Dr&q(8uhABWJ@EEt%e| zsD8erkEM>hmG2Nr1MBy}sziS`r0Poj*}swSyc|*LzbQ4ixVV^VCM6OrqD1hm%JuGY^Y9?8`|vat`3D)@ zvuM@oV}(1*+KZcn0AwIOQxjmgiotN;J14I0fTfn2*Vfj)RE^O6H&_e$03cg{wUpSP z9SjZ(4DpGe^QGuBtD2ZR9UozzKp=>SVu8Re^}hrWT1ST*Io2}1*ua03w zU|p-OT>3BYt?yh1AkELuug?Q9)bryVL?J+DpfUh>xwyHJI*N>`=^9ufZG@i}l5VYk z!5Ikk^76tWc?_N-NOd~yt}ZS-CgRrMDDLhK zI~M_2o-XhS|MCRf9U31$H8cdV#tKNsA(1e^(}gSums(;=DZlm($_KCm@razgRZ>z? zNZ{$ZpL<;Hk&y;w>@A|-z8!FU?BvF+8`j^vF zczSwzZ>f85*=EAT*i+y`r&+NY zb8N<^x)hRmdrIhingsO$HZv^iH3x2~!LBnAs4~d%2};9ic|!DyN7mNXeI9>*ekI~K zzqnv?B(isK(5iFg0wN;A5;jwNn~42|#WUA)rmh63!#NIWTTWk4D^3}KrI8R4fe|a6 z9uYL@Au2i?PUo1fRSRmMo{R?uPtu4hQ8(Z1Y)~&oe zue{usi;HYIJ$}&OuOJp}m!G|Rbp{eY(<;hpuq0Kr?K0NWj@DMODeL?Ei83KM^0;i^ zg4G#M2Z_%nUU|>HEiCsIheiHZwP;w0Hnus{{-n9y2p_ z3k$#KSoJq=3iEO`hzQlH;}nf_x6Or5NlD_`M3Ouh`@8p zPrec3TVkZsh5y3=({kEdh95<&HNUr0zxY12^uC+{+Vw9(I6|2-pFe%-o4a&_GA0p9 z^>mUQosMoVor=km57DNt%YG)2^FmWI{>3A3uTp9JPp(H;fu*N&cCY)JM1FVpd z@g{hhX~GRf5TXD%4B_Nbt^Q_cWK?BnG;(r`6_f080TGjKuazI)yG-{`Z-6=l1Y?k2 z*A5C{Nox&86G^)9{cLT{RV}o8y0Dz{k_bR6M6>nPmo>JL%J3s^Sq~jU!x1y*97|k` zmS`3u!`=i7GqXv(FS-T>4@gKTanNb}ZS08iWoc67v*5d9V`EM2nu1^+_!U_6nE{~? zh{}OANr)G;4(bny@Pr{*f3V24L^rfsw+fxva36Zbuu?(=bmP{tM?eY(q)sLP`&%2;&$6 zK?dN8or41@kHZ(mH^QawAOllc%35r(Z=8~kHInZGag%Z8woZkw?5|$E0`EwuoR5$1 zK-B{a1u1~)(*h*0u&_Y9H8IKB#F2abx^w38u%au&@A%{ds;P;lC<1W|d#o)=%8jb7 zczgpu*OA)X_wV1A6Fsz+bDlrJ6BfGmg%lGDOIG8K$FXqWI2*+H(k)8v48n3~ihOv1K(Mp3Lt}iI+x5r`$&?6u6lpC$f;Ttc zU_VnNV33UCl$$)kg48f9gFEVk`pn}%XG9(cD@Q*1sk?)uHcAJofU%h zW5iCE@vFbU#3J=BF-pp~#f&Q|6~o#N%V{N?z!h1V$eTmODIt#9+hf_=VcOYMGh<&U zYGY#qI*)Q%`=ZT2R-~rMG4wPe zB~vKuVq&ep_79xC$kIs4$WTv0=(~^01)rj<4CmoZ#u@~jijWrR&!2WKm;EWoOx^8q z2S-OEW)0ya*?rB4K@^mK!(6kwYg#lmJpMj4AfQ5)Gqt$*QThSF@G-9#MDXcazhe_*X7x4N1baaq(i| zVd#^SlPI%0^Q|4Y$=tH+5t7l&qMAa%>FHGW20?Wd5fxpnkE>N<#gveEZi=gK*p#PU z=)#e?KM@BxJH=lE10i#q;l93TyDs~OhwgAp=8o1n%AJ4X!)s*3lT@fo722*ZADjub z5>63iR933y2!S?swU>DHoc9N`_SDqt!1LDFrhW(|t!!Lpp9~?EkyA#}cu3-A=}6u0 zhVBW%?DV?i6v$z9Z3+pow-qv){K%SAv>T&YW|v3j<)Ai9O_hgCBi=G@)gj*yU-cmWvb)&%?-k@{moNwV~KEHxBx$|fQ*QYMZwSZ8j0+~-=O zte9Bjw{M3xvEA``MyvpSax30L;9}fZb(LG%kZ)Puvp1gT7nQ;^pTQEiy5n)hldGCC z@j+fe!4?b`2pzL9%F~9kv#}jS-6E~$if;Z_BK?CY_>8*nTbCm_IgKL`DP?8hl96Ra zMLGk@f`*L{)ME-{M?9kZIoketW-RKp9PCluQj*5+`*1{r%>DR-c}@VeaZDW?`iM3& z1$Ad*427Khxg8DeLtzb#z-Bhs&}Ggki0}FN(uoOFBC~%ipv=(I&8g{-p(42Md(5upXOU_i$df)P+neEJ8k@*}=cV{hXz(5V{d;3&1)V$Z zEhz~}-f&}88X|+Hqq$jlxjhs5z~12@DU+@@G@7ckd7v>Kr>hyGS}vITo$?a_8|H87 zNhc=fVy)gzu-c1BMLqv;{xXV=p1!oae1vP2U=0oF5w|q}sI{>vE+?pvmzM`qrr8T@ zk@h}OfH-+n1+=&j=D{c?AtuhXRg=-yp3&O=37rU{)I)i$FSB#z%0}N#^S&uTv$0W3 z`3e9ZDWqEzzp*S3g-m`}czE#ULoFwi6in2nf19i8_wRGZ`m=c7FY0`R9G1j;4rc(d zSMcaSnFE<&y?moulByGqQ|M9pVUy)=-2l0R1wuXMCFABK3`0D@==|q6LP8DQnEnBC zj`i#Be)y)O%nxNLl+nJS!G*;~lpeC;@t?sX4;E+8tOA2rFqYJNZOzo?402(s2Zy;` z=@0PnGdFe3_06-se(eUQ%)WD_MYjkd_!W|y*`R^3IPV*ibQpQ3&n-xxV|+Y!ZR_}` zS^eS(=6fJZAf}7^5MYhc(9qxnv>;{y@w=Vcd5seOry}1&e>F{+C;C!Cl_V6pxYive^i8~l|A@44B^iXiF3EoyLF8`YSA~P|K$< zswBISkK%Pmp{WmuiiwHI$;ml6aUz~~843>C85lfK)piG^Dh3-bparmxmX;Q-s7b6n zbQeD`u)w(Wvs3EOiiJ#&gGJHG#s(#ym^piOQ4w%*pkCIM8hORO#&d@jud z@X(qB-sL?wxMgZ;YDbe8+!{Dn zQSak(o1CAtxL7d-Ggy2dB1}QwKXfiKuhRb6JAr=xcoJxu2E*uV*~{7{&lC>{Y3akg zJz#I}XyD&NQisQG1t;`=h57h^MK7FY3pYqlOC#ZRDs1&bC$|U=#!Sr+&JjcfZ5(-? zkhkvxgqG@Za@OHESXnmyEnFJ^7!Iq1@=(KDz~3XaoU)Tk749 zid5l(l(_)gdcj&+3M&6G;@4NNyA$dQ&FKIfGmRH*0cV?_>l_~ zY`~Xg+&(}7t}_V)hqgAkL>Nis3{Gxt>1bvj9rZTIvf9NScP!dKbTehL(!s%j@K;3f zxVf!uk>UiGK?iqmrdM|ap%d0$fD<~X;%V0BoRSH-TbZCrSrn`TXXO|SzY79!e;@== zK)bJ;?13cGq?T(ATTqdt$8AFv9BQF ztzxv?{OgxcWew}&CiRM^EPR={-YQxjS_0;d>is4wlu|IW6rJG!;J|lXE2~~gXK*9L zrKFxrUS3{0=lcZQK}Y@OP6=66I=Y<6o{bH2GPd#kAvr1ms^?EJg-+-9PCD3X@v{pG z>K(VCeL<4L(jyz--I}hC78@(;K6lpet2QM-tZxyLXJjuVEgfr~{ zXGj|-iTnc~xo6qT)>aKwmI;n%<}rWb1bh)|h8Yw4>!V&8Sk%%DsS;BOis^`*qodLCQNyk%CbvVGA%L5ZXPDp^C6qOO z_JoSc)CEH~GcC=>d|_dM5>7-cEC5*Jz z_+2?jsnYu76OR17&mzzS!9nekF)=k|26Sfw#PD5ad54p|e58Svdo8GC^EVYe7ChTB~#EJ-S6B z`IqM5{z}nx`8scu3uZc9tV_#h|>XgcXzNxKkm7OCHV0}kSfLW)>8{$A#R@=}{?1}bE;eeRJ zFh-K#r}zGZiyq5xQ!#;Ior}<0VVy#6Wh?ORT}GNma3UW*B*KJXD7ZU=y}dHcK{6j+ z^o@;)D?2fz?%P32rNNMn|G1p6ewe!J2DsPI$z<^<9Dm)yu54FVQ+w``rCj(rjqIJB z9c7-ark?9=;iROBUW2coHzeW5%^l#3!kz+y#t$4~;x2tsLt$ZIXXjJ!8O!p*g_3{_ zj_44uBTpYYT3fF$4Z)dZWYA@ckDQe6W1jllsr^_Hs&byZl#KM?K9Jbu-o##B%gmgd z*Af!%;Sk>)O_fbRNe~pvS^wmMw2M%&_OD-#KY{}ht%fBa$3!PKE$;!0W}PXozIfOu z>*iJ~PPw~gGLmV?9K8YC5}sv5BL_~Z07tB>t~OJzquSgI3PQLXHK|)Qrb~SvI7@M* zi;0b`)UYhD3J^*HY~#uU`;CC=#;3zJM+#9nSQUkZ*07m6V&?ys%E>zRS>$o?M>sJ+ z*KC}UoBJhKd2L}K^`uTqR`$E3Yt{qMjYme(n?FMe30k}U4Nj$dpS{iLHGcF3_4^8; zh<$q@ixU3lm z6&o91;(V7mTeZZH=?i<9)H-a2U5R!|mlTIax9Hop`6= z7?*fCECNj8WXxBbzA4)G(XT@l16-;N`f^c$4_~lxA(%`%ySutkTto;k>|v21-@1b8 z%66vGwiWzjzbqgKLOCw6Z|K2~7>yf9F-y1hGO_a0tbRMg?{sD{R(eZu$&7}G{hyyK zTmU4JmW_plqCoR;aFl+yN=!N#pEIlOPxM_k$n_M|-$pJ|;d1w{or`s6Th)+rWU?2< zA@l_QQQ4Li90ORC8C(;O)?=2VRF(C!c2&sNT zg8aMq=no!PFJqk_6lC|mR8mrsm%le|$jpiRPnq;JLwMdA4eRacp%ONt@o!SbY=$Yh zWZ>d@4>^{#UmgTFzgCTdf?lPmJ(~wj)rmJDF_A3P3vw{rW+U_@#c~iWFtx`s5%_MR zMjM{3E_nb79-NV6x9;#K;&^-ETv+HSBXA=;_;H6arjHPqWIf=`+njJO{`gv_qN@5d z{8gD|WNZUOf2{kA1#C|DS1nzj07H&fLiwFAI)R9;?jJZQ6qQjHBu)v(>X2n-fVdcr zNiOwEs;d(Pw!%?PVubMni#GjYaO->H&vf6xFu#JhR3OoE#sn=64$j-QF2%*gLWA4- z`Y(j8)toc$4;jCM9|Z*#EXR*6x=f$hA#mbxJm&`oo)Ml|$(RVBRr)=5nQ6`ER>Yjm z>uzIX%ScLYc)d%(&qxszqQ?u(x>>6mB_K={3fbphKYtnzTVF$faRVUCP5Q}g>ibYq z-@muV!unudp7x?|cD4_nfC~fREu;fAS46}c%OHDr1g+YkvHl8ky9Skr!xTTie_#O6 z*35b=6)wiOIs5zSQj!u~ntPuYfP-rMuue))X+Wrxr6S*2CKv_p zPRds>tU)6({t?->xZ4_-^ZFGnth(xIp1m_=Bclvin(GM2Gv+0Kg}nn>L68OX3xAup zCC^YiJMAq^?*(VaL`MfdFo=Gb^H~T*+XGWjP*(Mp<5t7fMWShGe_x;V#u!s^x4tzE zA~iidWLW*h855mzvPsOoEEIeA;kqxs)_DWI(S@?5r8R9~1if3%2AhI43OwGvzDM^y zMGFV6ylfbg@t@oc0H|sdVKBp{rC^ZQ0?W2$$ zN&d_}$`6&?Eoj8uKRI0{v1j2J;+DlB;2aP#Ta=cTDk@2snt@w=_i?0cfWJEle@$d= ze22RqSbWCzi7tO$#8h^&W5EK6>xM!ral-?N{<97qH#u`+{sbW?=S$69D$F#5WE} zzUU;ADiGOR%YcrwC`SLpDYuSFU>|tif|RD1cY*|{7_nA${j`Fd ziM=Wo#)|M3NPf-n&vl-tHYz1~YPm4=K;TbF>4r=wItw*kK=?^p_3ps|#%&_P2WP`FML9E1CCBOuU_B|MbPXNG~Z<+}=8K*FZX+Td8u%LQ3j>09#jMV|&jxGmFiW z6}gn%Vs9B{v0JOc1 zpl9le^wq$caYfy(MLK_aH$n3!g-~)xSlIsQdV!-$%Bxqj9UYv~(hLZQ1M=D#D~Pv+ zs{RBTyL)uRA;Gc2<2No@(&+Q-lgDm{z925zY6v;yqQnxW}kSahWnqNpG5=k4#qAS zBRkuJ?s`p$6=-^45;aT^@}FG)6}Wwv%ACZ50AVJ($MFG%&+6(E+(l_Q`mFt(;~i4a zaQ*0We8VFm*x?;RmZJ6Ty^zonA8QbVfgs49gDQqa!kxMm1zEbf+s*q@*m%T~EhRKy{0E8~kJ8gTQ&c-9AcvuUVfzAI*)k z?SIY{c>%@-c}2yRvU9sx^&o^81( zg$t(}J}}h({dJ4j5zw(6Q4ZI*jJm-nF)~cti*t`3`OT(pDDB!DB`5Ngg8o$&6zDYW zXd}IgE|VsgmhiZspekrnVaZj{*VnhevOq#vc@w@bGQzE#^Q+zgjB^nnzXd9XEjBTyj*P?HD0u5uY%Dnexgh=h zI@%7)e)i_(DNu6G1XWpOViN*V1q4me zc~c`BDu*tlH2mFi3f}w+P2bgoCtkqu0t37rlF-QMiK(cZt$O42(^NG16*3I~y5L;} zOijxw=?Dy+|0$Qorj@1TAm|2|?nWfJQ&^!4vvZNaN+R_OsuCg;&ZJ6BOMCEVn6$Js zFfCKTKDTS<9UmITd0)hjo0g{F&PFPRvq(DPJ<*ioz=3#`#z@o2Ijy*)L||UW)APlyUVlx6Ith-vmwyha zWN~wGeVAM#TGTE94&UC|#N~tz6Af=(@d1s^WQc8``%gW}uBD~rcq4M+pen?&FJ3sR zT$}m3@)OULV2jNUVN(3@-%Ew=?qSd_u5ACx@U>!}%-F7#N}%7lLxX4T)DX+FdS;bz zl9`mZI=}klbkbu^3HWr6T=GsFZZ@bGcK_tSAmHA;>Gi5q|6;z2z8>AA^mP`7kqOB) zySIV6vN!HIO{}$yKcP~%<4$)yYmGZdS&FSgso|4S)}KtbYsP_Z-WIfGG}%|p&=+<& zyJ>ekI+6U<&9HJ_{iKlvm5U2cqWV=SrR~?b1LEl&#MnD?VM5*bqLM@_3k`XG`8y}} z3A3 zUyr|geZ4Z$%)2F3>P|8RkeA7<#`H^}VIw=Dgs_8x*CT^dOutO6{6%%s=QLL%*x&vM z(lX-$LP+PN>ffnc^Yg++&qfz`St8U`h5Su~_Qf7=u;o}>T0(KRX5>mBsMEumc=goX zQ@LHJmxEV6KC2gRUsw=lL#{#pFete|V1ab^$E9p9$p&(-F%m z5fdSw)idupBYO(7-waF0ea?FfrdcWe2!N*p2M!SG#yq~1*r=ZWLI(T~89~x#VQ@IS z#^AK$dbjX zy5i8s!piCba9vPvVZp6pU3bk~nCb4L(4Fjug@m9}#+kzrC(RaxufY0;X?b%G zA5Os25WPW#04D_*85vIQ%-26rf`PHp9tWsOn3|qepB8~26k2)Sc%?tz6Jyh57COnx zjGkE(b>|6~7kz=21JW-&f0@Kqz9d~3(3Gn@5rF3IUNpH@=aQZYqZ$Z8W&GC6?-7-` zPpC3|$!}=*%pQ5y;T15Pm*}aGQCnNPk?2xB0Dqo4kcYXAceRKS!uybNony3W=ZL&A z#U!IICw{_ARk!{4f~b^ZNspl~!-Is19-%F#Pw)FXd~vw?G;cf(wg=o1?oz$|F}uPR zHPC`iO$qL$&*amz5N0yrZb&+!k=unQnr-y%#}#E0b^<*!GcywisQP#J7y2CH7vGf8>45yU{S1s-t6JrtsN?=<_qg zwH%=QwzV;zRTA5u(oarJH~+0_GP4lc=izj>`iqZOs}4i?VUVd5)eIW@jM!WIQXpy* z>6fUesduOeGntv1LParf$-e&j89{NHaXT)4zq^x*KDgAqubLYg?$+<-Qqhq;as-CF zg8~AHeAB+?=$N8^wE1=o4-a>BL7hUkprv>Y*2?RoKH@C{aUuB(Nw+cWKCyUv{(y;W^-aJ!@_JW3% z*7xjtNhPI!00FLEtwXF=d}ijHoglpCY6y|jNdQp6Wk4XnsbO7^dZ~6(24Z9dg|x=8 zAwT(&HeH_yR!Z9Nl3Mcf%o-82p*%s$x!n2};<{YRQF;(fe3akvR3_Xtx|ad(BAo;9 z!sJ1F32HWBx!080MwLTns{e@?oj$$t>4ex0m~8L7|3P?QBGg5~JAk7uQ%THTeCY(j z{sg|MJu=oeFu2uZAIdYNntN%evMVu-flw!|r>RMj)w%X@_7jo;=qd3mP|Fd}1FaNNbSm&UGB+>f~6iDxeM4Fox zVyEv0w7$nNU z@fxn$P#&wzVW+UBF@*w<9>v9(^Jj#Whzp;PkO0{+Sp94BUzLAIOy#R?7NpB&D)~OI zs924W{p#~AN&uT9%YUv4A_XncWF#*Fu!fYW;>i#Ikg5|acxCdY8=s_S zqpn;D?V)Okt&bLKAlY3>)k_Eg95QmXQ<*pZoo3WM?6~YlldH)2gcD(HBv@6Q9@Wj& zt6gWBw&H&wbmo3IlVTf2@4L^D(>jDB%- zP1WPy&0b){xY8<+DHZpU z4f0_n|Bm}mK~{o6TAzVbot{*`8}c}ukCCCCMmpM3|jDt#`s>F>(Y zZsh?>-QT}{opCl5Zf9VuC^VxbZ?wGh=EsY_l?U(|L(HZ*?$SfvDE@dCM|6|lLOn%B zgf5VFa7H&>sXkt4Laa|*vOdF3jf?=L zs2|G@`44I2cegq|hpO6;4zWH;hzrr&t^9o*u>w>yG_Q-A(3#t8?FAP`#~B*@S0I0k zjZY_sTlh)l+*Sar-FqlWub%QmOhvgxjH`=}z2_OyQN{d8Tk1$}s0=di-xsE*#BTHR z_lF{S#AiI_PbMR|lvIjdUNp01XBM}-f5po;Z(6RUS9s~rQc?YOjDm~KqUcLcA^41n zkQ$es=Dt1_*REgl^QuJyYWoim=-JtS3N?NM`_0A9el?gY*}P~WUsc^tfhFeS02MZJ zE-+Vcji1M3cqnCE8^1hsZ@RS)B-Ts0N9hmq^CtoAI|m3nrft{1P8P|GpRxwU0-~<) zdpvDU=;;X`I#i!VQYJSw!zRvl;AoC?ykObOPjMP}2ttdK?%xmSR9udg4*`nxP%eeeR$m5=w+J8U9fO5Q?(wUwL3Eq&Mnh71*q`UUZ!@}ADQbV}% z;*?iYHl!qI98N?oKGYe!T_@fSm87g&pSW!DlFULz_tj_NjnM!_W6zF3vyD_A-_+gY zQe~tROP^hd))KAmwuuS;?`#WqkmJ~^f2bYh4GUJ-~Zg8h1vU5_gLyne)Cg4|T%SA2scRv=yws*42)O{(!60Z%*YPlORhBK9cKZSY3 zz`q7(FO-(|nm}ze%T_kgSdb&Rxb)Xyi=aH(F z@&36IOZ%_*guUm*t&&^66HK(VDRo3ITUx>>6h)s@7N_=|1^+$m+dfsYMaU!X@SC za5(sU_J9`z>#+bE^T^;JH9_~$^VhHcC7GQimQ(?Tv|*_`&@BG`!Ft$C8?lpo`}fOW zcS;l+751F1{;a6Nr6kYlH~s0EM)tGty9z(hasv&VD^Zj`^wL7BreW&zat*_>pU!Jnje~1VW}dXUbnE#>ekj z4pbwXpM07>$BT=9{u{Vu5X86$!5~#s068EgK`tpDqH*GfiT&D0YK9$4Vb8x|@0O>g ziG>c3a)~fe6A)guWZiKJ zxNqM%M@O7$uM;8PFa(YigMw3~Xg{r#2zn>xlA6CyKzBqpp)Ij5O=+^gflX#QHZekZ$w0AWL0d%LGnh+PUwV9VB^f4@(>`w-EoTDzxs?19&v4D!Gn;qzQf z{xsx`2-9a?u5x;%@drpEV2F=CrtkBtxS0O07Qn}6AHI!7C_pBn$;MkHng-?SO*44^ z(C5Jn1K1I4E9$5yflN7{1)eV)DdExX>S%H@Dwg>g#i_y@Iy=RV9NDj|d|CIfFRo?~ z8tHN#hFV(T9n_;-X?Y_7OZxe%dvT)*Q{hR$Em$M3>1WA46ez2-MDuUX+vD$xZVy^O z9u^k2be;YHk5H(sw^fVHl&9ZbH{n@FD$QO7hD&2_h^=y8!AN$@6Ku(SLt9Pan_`mGz8|&k7T|R9IarXKI9#z%tiO&&D zJGVDSLK-+BYqi;Ga;enDI%sN!b)OitWpVQKWQ>9LORms07q*)TWl*~voH+nd{}5r7 zO9L-j8*2hn26v#cCk|GKeK`!@KXQQE-v@}NSVEN#Ude?)(H#W*ECd}rg|N-xlc{tx zfv@V~u)^+Br?q(FyOkIt>|(i9i@Thao2%ve9ft|U?C;paDMV^pR41%PCZF( zSKsjPZ1$lXNM<@Gkwz<5^H!Y3V&GC6CkcoMs_nle;^KtbZDqHSxn=sY{(xT)HBiu1 z8ro@*^-k6`tDQ7~uN=4B#cJ&t4edw92*o`H9d^1pZRGs@%rMkZV^MGUDedpI?HbRb zomed`>dzEMBcP%(r>h2|^4iLZyLV~OU~cbEv9qr$&%I|d6dmsEot&Ixp7>ew zih<-*7EARmpnemfCk# z+Ukv8Qp-5%1^o-f&KEDDpdNyfMBpl{8fZXbXTF2U(8v}S5kawQh-RV=Xk_gsJKsTd zeOkG~o9CpQoIt8dLSl9MUu z-O8K8BPJ}0E_-cellDrX3bV75VuTG07s9GKERz5-$l%9A}S$sDl9m?(Vy&2nm8>V&Kam55y;Z zzQ9ggwCg7Tx|P+O`a>vz1nbl7SQ4Y&Pg3k4WN|x+d)(F@|M-#qNd*FJhAi1?w*FrD z9>7Q0u=yK~!D|qBwQMqKoi;PeHGjOY;9X#2eCjkhX?4AI3na26x z-KnW{V`|4J{&lO$lSl4ULryAa@vgqpLbtRX?zUEU?L4&ioc6I}{tA)llXN<&*@81b zJsvB#q7wp~JK?X*k_^wDm`p>64Nsl0DopcGt#n)57l|^^iMrW{gT}b2q*1|-OWVbbxG^^|Y#ca!Dn{at@?s?o9UR7md%ixS04%Nq zS@t92>4`31ban$rgrud}2slD5hRw~VoT(I$ojx^6!h^bab*p*zfiftiG4er1W2+L zD__D1#&Z(sF#%hj=LEEKOCg|&8CLxUmnq7`w#J+Zuq&PeEuZ8g3P~`Ur0_T zK`LrPLpvLEqnzSw2U%H9jq~mb{peagckb;-gOC>SMoa&3rpR=#;RwXRv&w8T+b8h- zjg1oqJ3Yq}7N+x`IqotsYplAuFmPc(_I(>(Bln`uZn532jm1{1r-hQxhpi1=joVnl z$;cHa>tE3dqbH_mNF&ZQd(|cmwA71fTp{Z!)0|{X9ACA-Il#1|#&cX(cV>20L{u~g zQ&lGXjZ+lqZsq*lh_tZuC#Q%!+1!Gm0Z?*u!NLlo36MK6vCW!|FUU!?c`4ez`n^N^ zcD*fuAe!voYwcYnuLDe4U%%r;?@pL&e@H(gIU=eq=IdzS>>3)nbG^S4TzF`wO4ti& z3^37V+}e_;sR`=n$TDWU`29*Sn%Qnqf0Etq2QoaRaG4V*zjfB!KV9TW0>oluPWkGZy2Amv_td#AC^Ys{@~UogS6Zn=|G2maVR@$X z{Z~gQLs{6^G+3LW<4Q{?Q!0MVmJ*`RuVkn$T$H|Tr5 zLp7}ITjCCX;aR}^78WzD{Nz$(VfErN+Tr0%6r_|54d49zkMJi(bxs=oOhN7dQYpO4 z+c7x!=V9O91$%9KpsJlzF(=DBT+;n$_AnOc_$|YE`+hwB4BB)jErE* zvcB%{uKmV*O&B%v=vpmB)?zpSWNk1)@1-=lR)nzZ$ z&{Xx8rL~J;lM=@&vEfh6%g^te4-hY-B31<#FV11x<^Lk0J{8JtIyzCaDZu;gY6~(& zqci}#bBAGgdZIm;yuBf^Wjs7Gk%584qUcr!oq3s4_{I}moZvZvW)?gCm=3+>teV-u zgFHZea^XgCV*Ene`xFiM9~5?BMncVVEr$bc{X4h+WO;n2#QjuIU=SxHCU)$HCS|B? zsX1~?k!ZuuKcM1VT3+76^c-?G`A0f~?!1YuZig>p8{Uk*_=0**S|0osADQ`ug?|wV zuz6Oy2})w4iL#tSC4e|oVt#g(jPS_#49r|@hf6qsu`ea|^&UsEwP&q-Zg-3DUdm8P zx>Zca+eanvybReDqJw$4#y{Y704jJYa~>fFC)=H%tzbX@y2o`BNrUc93K{l46)J+a zgYx}&0U_lkWQ>m+8SfmdsQ>!r<3~bxxOVQzN5=g&oZ;m=>wpwXyALno#@@Zr?i<_c zsF5Yh$L9$4TFU>oZ_BEUyrg7k+F(4N{P+)3iL=zil|cR^VwM8FzuWU&xbyw{L0AD0 zJdqW++MlklyI3QvD)4B|onODcS5`WkO|u|u2?IFd3twV#R%>b9W92E!Hm5RliIdHt zl8Arnt=-xeGpkRD_Z`G?4Dnd^e8Ql|@AG4y`Eyd}W6Bt|7P+r?aB(MNqMg_Dr?>rO z84L`P1Qt%t@+yAo)Wc6re^PJ*6$x;^53Ol`31Bn-!S8KkNDEX_IFUNk?_{U(74ZTor=y$KddZ1ipeU zXXmucJQohCULs5W0chj?9}(rK;cZ^YAe8@kKS!AQDVvehtj=Auv>DfQ-DLcc>cI7* z)`v#&1y4(N<8D=@vf|V~S_LLTj8rDeZkvBsx~Ce#HPIA%d94I=+K=I6l}$hj{d?Ly z|D&y5K?f6c)Y#noo%rqUj{h~Chvv(7(Y0r^qLcuA2+`m4L<%6WBwb=c6#d(~dh`)? zTmL3i=W!AYd}ZQ|fBY`{%`0V)_*SB_|MevP9Yx*K%YIO_<6Z4$&Tw-MIiGpGRR<=x znh{f^aDJ3d?wBB`U0q7nebnP z_~e)(2cAtEWEcn}w%!>v*DGe&IQAUeOU0j=|dx-@Uv4;6ZzH^JPmG ziauWfM4^7XbUqKb1v<3Hk1dRiKiNO&bC+g|+3AuS2x%Jx=HIJy_S(6n>;ueP_~nfPvRWakzRsys_(ZZcA|)Q1JP|22 z+(~dM`_rDfIyx$B5_UA(dHA*bu)h1Ljnk=ot*o8ysbUD7dD1;Sw?Mc`#53H+Qi2m^ zxtcy&x2~>e*_;dIfhJ}0{FRiZ_e6RgnoE`akFvAXb4#aI;)8-DBvUmC-_&?c$21dt zEy!((Q~G_gaLt%8{Bu;G*3$j^Hx8TeF)#!~Nbn#01Kd?#PY>AgJl^-V!6e-uc#~jD zHl)9yST3PJrMfL2@aN#a-^mN(++k9OqYd(x*48LOa&mZEPA&fVN6Y>kFFI0>(mUvA zXi{XZbi0;I(ok@s)F8+Kt4SLDIPD3Ku-KtP>LN}WNEVuiFJDxuhIkl%-xJpH5O!FByBuDgyoZ%fyQ@QN|7+8*9VqEOc#skmLBtAA zkTGZV*{UK&L#$%&cB->p`Bzq@xeojm{yR=Kwwa0kWz^=l;n}G^xw%YpvDhy8?94s6 zhue@kJRrAgs%_7KB;8ll)kO8ytaQ7RRAl32Xa>I-dwv z5u(W|J24rh=yZXJC1--uC010yDk`yCa$FJbe57#c004hS`>@BA`PBXx*8hG^%f{D~ z|6zQ0GlY_;g3~3Wj)OkY)a)$3FkVvwean=z{Ezr!T&1n?u;X60b+flWDoArXI=VER z^(5mD!86zwL!Jg$;*#La3+Tp>?-ux$q){9K1L%O1xH_#}hU51TdzzmmV`jCXE!^He z)YN}|LzJMgPff^rRB{-y-S>wSQ=_zkTF9uQf0j%AIECPn^cuX=c4kN_ZeRGy8HxJ7ccj zZS^)~EQ+w4D|T>+#*zgvGr{Qrd{lcJUcIK47Ge<{y$dw7D5ia3z9bJl3wK{t%;FdOABhPtS@a=^`XBbS8ArL7ENu zro)tso_2zV!!#qI_&pog<5C#`B*k3#o%5KGRalN7nuIH--KM3anjn+`W8T%u%xhW* z+04Gv6sXY{wM5dcI9?^xT=k>7R^Y>oI_Uo;)_XZ*LI&5=eD8E9`Y+aqc->bZ?2L@) z)l)>6q$0;1$}M)>2I?<(Hi73RkhQ+r47(I!J6HT_ZZB2148?VW`~$7FbS)GZq;|u2 zT98l~x468r;>D)yDw9q@PCm3NcEG~tugk~j(G2f8uhK}+n5F%{{{0K^aPLDbr%7SY zKZwn$EJ!CxP#nw)Q>YGYw8N0ahp>6R zn97IyF0Zf6wzVb2t^fUf?s?ZQH+~@@U7-wTH;!{GDj}kZmI&Sc8niJhkQMOBg=QMX zjickkO{yXzLD91uyQxn=Xg5?P3o{NCb+5vkzi;0{=n|VG@WMhwoxZz|L|c1wWSi3< zD*`&W)!C~vYNb7$*G@6%i6$R7ALD-6%e$)o6 zEB=Ep;#J0gn<-Dz+`ddgT!h%M1yS(!n8l)=;0O<gIpI=?5a}uwEu(Q9Po^=;AHo>*0%I(T6Ao&V3VSJlJ zq?w3Ye~gV(-RH3k=)fQE1N{P}b@Dtt&G`~`Y(xVR{we4N5=HE2`Titb3i68qU;=qL za;~SIASxkHZVF*^();&tzN<@cV2l)EoBlzOIK*s`x#yXIjWh}*I0K+mm!#?b>}kzk zMo;Qq{>1$0_mB|!3K5V)zNk= zuz??2dUbgGKDw^c5>^f39^Xhg6i5qA>kpTx+2@S!U(IGI{%xSopLn+97;WFh{jy$e zZcj_Qg!VQOLV8@geh!)z={m8HYgMDjl0De|hG}p_oi`r3Wf0qcGP}O*_&;}oJ=8Py zrIi?F5Of~SVdH|=ek(I>Hk{jTOtgakt|Hdp-9^A^2*J>gIm%aE+WyXwv(PkrZFLne z)j&y0_e^vN|#)UnZpLbqvLpYXu5x=k=4S_r?mdCH?OY5CGcfwyCKg@XR z_wOqvd_gsn&nf>aPa(YI(fN(a_tmx8=Oa*XwPG5kNs6y&y=uA^@UF{ji?}wQJQ>i? zc)lxCJe^i32|nqEhngg?SBTD&W88tCr=LIU{drCj!1?`6gRpv@#MWIqA$CNMe#bo3 z-sG8k^{-_aC7Mpv-APFhYSlT!U6*RgH7z_TSyX656Jdvv9)QH9VEspekViYX-7e}n zuBm}F(h_@n_5#o=85x9IBfloX4p2#he$L_*qM`?<3+v+s#9tRMxDWVpRDm(f zj;ON8MnuYuCVLT^%o;b=xR%5s%j9RHpCe|2)gKvW&+v3dPT7lJ-APoaAPKe&#f~?a zLqq{UAzE$``0Z`f|A8wo?L1?)&>^FS(u3O$&+&x?N%H&Hn>U|{3>p`hK}Z|qCW*=7{0xU&obf4-df;d_01L-mGr zWrXe{NwydzuDH(0pPmYLBfkkTYJyQI9{|f>#{I_$a>3Sj?>tTk_q<2qElpNuRvrVb zllFhx#0!WDI{8(cAQhz*8PGyqeIO%F&0N+$^!013u6m_0J8BS=V}N@~6%jERYta&s z|9`ar%GT}>e8D*P)tL z9Q?J_X&B_|G{Wy%FMWYHC2(C6MF!@?D`fOJk zh8!Flj7!cnE@*CUzT?>5*_p*J$sCrd3Mq|fESE9@GR6i5EMVtmiZ**{K2}^#N=||i z1$z8fvtr@P&bzTA^?!|&!BOJpMxpFQP~NBGUcP%b`oW+eE9-bkFI&uk)xsbg5#3B8 z;?ks@s@#FqIVIoC(l)XP3Eu_zJrzj&x*R3FJO%%4I&A(UmF6rklE$>V@?>G~Fpv!0 zBZfvhy1G6oO!YSaYXItjWVaH5K>aSzg`49*^82n2Wcl~Ry&2^q8h;}96~)7D-5t?>Jq{{cLTWkzCEK`Qsv3otPM+hEr9A?~K29Z;Al=cw{ zz_{Rl<76lIpfS!+RsGmi@8T@p+v8>1aakZNO#2O`)jIXK{NC2O@(XQ`AJY`}yu)uTOLqjpHq<4@o_xwqsfuM6_^x3@NE$u%!r$TD`Jp_}-#PH*gTQ;nXAppemQ z??Sa}(feS6($ON*^bV)xMdd>Z-wyWWA>f#ufnmIvY$E)=Vy_;3YfX(3;f}7q+0#+6 zp%klpBI6`{dt{Ka0mV0z&ei~-jg6m!nnGiVfrg0Z;85^%uE~#BWNLR>8Xe^!+>U*6 zfcI0MTWm=Qw+`l_l+O}RL7hj&1VFc^IC!ClE6$vN0mjBAtMHbXYx!Tqk;lq@fvgCM zet}CY95=YP=(z&uGySMUZO9`ftxzbJ^ya=tX31CYkwBtr$@J+vLBV&{HA;vdJyXOK z^?k1v7^3LojMvg#NeF-O+1Tjv$$lJz`?EXWFn19%5}58m{}~mpl~}*}Pg4l!Wl1q>aKDO*&z0w$&eG1(x-ynE^z0vPov4Un4Qw_k z5nwIoFiApQykIG-x`eTvLP<9wW{_@akgwSSXXt=Hlo2CxiA+&@3985 ze7~2^pMP=^T33{&ov+ zeG5RZ26X3#tG`>)l_9YY?ZQop3xj+*33qiLO_gAJ(YVk_XZ1TNEUz4+#B_9blC&%> zCFUKsYv&|GCCdv%)$PMjIhWYfs{GLDwG{_-n!p#Xv0o=)9;CLl_wYVgkY45cf2zK1 zhddX&RWvwGhhqpouwo1QPl9;9)KmI!m)9wt`Z@$6L`X^$fAxhv?QjK3q=N z??0(7?h6P>jVvr&YxALag!T)~+rP3!Cq4c|2)?PQuX=@8iIx=2o=+hV0&H!-+5?WTUOWh0gP)P219=tfhfT?(222=s@XhJ`Exejt-h zO)aF`@!r-}c7@D7o!_k58R_g?Tywum6ewuu=$@MsNB$8${#-eGFho2vgs48U7Fq() zeL&ZXBm`MDZ9je^n2?w>XJP`4S=CAQlz#2Pp4i*B5j>Rse3p2E41-cT1N8PFrl&vRPdp?j=nRchu`ma+e{u9z=tnsoFQVHMW!%^xsjXdk z*!1bq+2Ps6m6bpwPS@tkxQ($LI`pxBSDea>kkvRuwiZQH`Vl;ogfDmfrPb;2;9mNU zV_E|+uw&yOP4ZnEZN*=_JglK9rJ*@a7WyJDFWy(@^NT=QShzX{!+Xe`E{Bn|{7Xzu zHamU#++YBRT%24`mUxVnXoXpcss`7*tYUS&;I*>CnRy`=1S<>&Et`lvJpbWE&*x>E z%8$_Ww~OEIX`8qbxTDU#>u?ektc^hKm(2hlv#}W!(8M2ioY(Jl?cm!rJDWt)=uvfD z_+E*A0q}?ZTlN3m+&QSpq9um zZSdebeE3AR(S6ksdzn-4ejYlsD6J0;G(&lil`E5tJw31YLdS#(SKQ>}u?yv{Dyl|> zN$fOuarP$(-Dn6obP+Vh5fv4mjTDL7qXXN8rSpsVO2>m zRHY@|!5u_de8CEPi+J{R=bPM_9ie(}l`A&cL@?=OyUZ2m~Lx!C{w zppw#ko|`T)q^L~aADQuF3*IIqxk`$EJV%n23jGw$YJdpz&^NP2adxLD(hJKm?f?HZ z26kVxpCFW_t}eYQeG<>-ZNVON>{w)zed~u0Uw*EbmC*h6u~$_c$;{keR^@MN`|qFc zpD95x{)rbFb{|^L2qkv|`L?`gZWC3xRZqEUR;E(yQD&X0FaXFD65pvG)Y4AZm*Uta zjj@mW<$}4+`t9QKeOo}HRoH`w9?@j>y?cLSJ->YRq@XyD8m+AVA?BHVy|0__9m4*K zi^FY`OT>pHVrYzMVI(SCQ0*I+P*{goh~_rtU75S)wQob%e9Cnqgvvz9)-Q1*H2k zb6oUP4to3tblONrP7QI3F;aDH-^Caom+UNVZi0q}eOmhAW5)u&eUmv;#GvhviNx0^ zSSb^l?2pLET#+AQ##Bh?v_x2nSR~X3dlHOj3i~}>iyzH!%bC6Ws z$mA#j%a0yS(a2Wo973MV^t5Rxj}h0c<9r(D)Gj^fX&7r6;}Jw z@=l(XARO1x>6-S0r&l3{{A(cdr%w-FGPAK;hhNY$FvwZN6jq|M1?>V|i>>$+!PfSH zuiI0y4ul2=8+Q0Wjt_vbBGjSKOmX_)Px-QZ86;h={Os+jgmhVE$zLKxiv*&Vrr8lv zYy?O{aN}P2dN@fpojDkW;XNS}yh7dEeUMKv)2{-#>GL7cn^I zDQARcQ&U(ZS@<9jAR}EjFwg~+rKwraQy3Voaj(mnlt335mcxrVPQFSp7Rm+PNYe>= zJHCr#rv?cLS$1}-rlv)3aH8%J7xbs>s^eEyPBk#IMBpK0yI|l~b#-jDLgT1Sv3c^O z<@Wk9L9xiSk;p#td?~>E;JsO&xAg@_%5!{ZONwIjvgUuqPoE-l>8!uvhzC>j!M#zh zD>jlvm;eMpzbTF3h*xco)!Q_6E0WM*yP3%q(6-bk3HFi{~Z;CCzH z*48Z$McRNQigNDoitn%4>@lZEX!FFg2SAai+{GL(lhwA}5Cy;<)w3uVt<>kCp+ z4BJk#;_%yyj@n|tL0gLMBV+e;-t91(-|3=odlO$oWApXx4L+e;L{wvQW6ki7HhOgU*zjf82Q5VAYqu_JTF$p|`R2_tU$X4uC@USF zZYOe&OiXwW$>>Im8TW%TM|2ii)l1o@(wgkmFD65dR5IK6wXZJ)k?`Y-_`~3+uQg(8 zu)FyG$7_c=Y{~mAPqk;#v(BD$bOzz!?k>Uxm$f8Km<$Yk%$~;{HvxcV=S+%;HCXUb zk|is`W|%#3$+PIden3$;Bx2JxxpA`ISd}{OUw}X53 zbkzTxFZG3(WBU8CK!pgb>#H8j^ID?GyQJyP>Q*&ohv-=3V*%!0jjpk`_jVdZRsmt z{NerHV`c+*>q-?zzX8IwAl?w!eXT8z*6M+G?8(BOWU;lKNB5Gdcjx~3v+GoYBA8Ct zsvryH9Qm1IhpDvi@>&$7rre>WE%kZrQFcaP?===CU|9<`Qk(D?c3;Qmx*SmH0Wgb54h-U;RhwQKW^HH|1cm7Xu z4nkiwU4A0N`|J2p83V)B9cqsfBEwtDp4arcpwLF?Z>f43&RBqA`A z)wZ-4RZw^#>K2vFbG~Rkoq`vN2g99Rjl;tq{r1_Rtn5zJ^!@jbpSwbla+d83_4GXw z!tyGbTaQ1I94a*aYoSuP;q|s4$uC+|NYX6fotlF%!}++33Kzl+?WAX7nloeAyOldb zHfIV;B&DR#)hH_keE{MIwJ|J`1Y5~exBb;DG(>=YtHV~j8^7?vV)iz3-G>hAL-cPS zNa!R~Sl+9*g;J70&&K9D@@BZR^AhAGr@qL0<{!|JJaE89u$^jG6eZ2=lLh}wgnYfd zW9lEg3aEON+xYQ|%#$A1og|tjLj6tA^O7_U(leWzRS&xAYLV}51uXL8S30;)P235P zlWBT;zwAyn8lY6CC(^n`f*kDK;Wv)P^G#2-wW@#8z_Wvy z^rYD^h^M^&VPAf|erV_V`LOy*2S>+WzxqF1os78PYSH7mGMn`bcB$zogryaFnG~5i zmkWj23Gz>9)66621+(znTGI9Mwzh%@Je0ir{LNb?c#(p)ma^g}o>{QcwM6pVeEe7~ zM*E^TR5~o&wR7W%-{!@5Z%%#ra`KjBULN_|X3>oM9MUr-lQNm%FQi$xA};ifPO4Iz z*Q$SHe2DF-^(&@>%KF)_UTq+q+?j)(UXA`n+-?_1)-J9z8H4ou8r{;aRo~p92S#QT zAWh=ntr0i`13D?g&h**VU$3uxYb!2&M4y!G+^wT790takn)9<+SCNgI+eN@3IGT23 zasPhF>uPCP+%Yp{I*%AQVvqCZ`uqKjPcRZnB2sXM2N|g_uGGj=%k8NeKf8G9GO0xB zodo=PsVSake4rI(@)lu5lp()+)|bi5r7Q|(b|FWV<;iv zja1&+=um+0=D5=y(o&+{Oys--OS?!&nTa?{GE0nh=)$qisi2^MR2nF>ih2^Ch5MqY zZmN(%wz|M%vtIyGd#9$RzL*|~-uGc_{Y8aA!gpJHdn*Kv-3`cr(mul=IWyCM{zlPl zfIb}RG^;D+f{dK6yj7tQg~UnkT8E=#bJM|vKOB#YpSzyEhhi5>G>;V_j5Pamonl~M zhvNpwR3fyNu(5E6lj;_!C`XG}+A~ z?2P6m2tMFmhCes2pRJWu1S$2<*adJb0r|y>T;evK-rk6Dnja{qCK#RBLqje#{=cmU zbDga0lhV?dJo%uY&(F{4bl0}9f_omUp!F)<|&`H_^wnb@$iHoApKYZFGMbF;J)`Z1Aq21rq0r5$O6K2?LOb&`> z7({X~0Q8SdYMY>jmuYt3h)JC^vMOMBsX2e6Uiiwh(K_3q{d>bN_V0BoHOJiW7YA)R zoUUG)f2QrQmuhqGUi;$-99&$nw{G!L@=8m8zSdV)=V6(CNKUTDUINk1i;x_>ZEoI4 z$Pyb}^yBAmce_RzeK0P1Bl8);^E9qqs|eg1*+KmbX*+{M2n+%dVHhXL$9GssDbdD~ z^UsiBfCkCv=R@YD4XbAp_~bdn)AdzUtRn0L+dSrmk^peD+#xG6{W(8xNPiSsadY9C zepT!l-^mPbbpH@U32>p0f7s=WEEqMOlo(MyY5fCPbm<+~B8*z4=1(m}U&YqjDp63x z*o$}9*_RT;VS)?%Jgi6{Y9rXRD{j*H_+9g`E%ns8Jjk28O8;)Dj-L`zd4;mz5>vuzZ~g zS?{M{I6EZJzrnDQY%@?uOFTja1hliA+1XrEQ>OF`R{e=@5czS;W5_Lp8rWB1>h0Sb zx{r3E$X@z<%FvgkIJ?XFL&nd?h27TG(p{fFA7TGNYj9sqLQam7z^8*mnjRNc6=X2D!@xMO!LQLbLHWE{Bn%3=C5V!JF3`_j#uVFSO-YFU`>?gtQE$t+GZMnW&g zg({Pe^`OQ0UDH7Bb3K5q83t*>um!+~7XFnph%KVQjwHs}41 zX+vOR!=R94art;FnanC=);IFSye{d%!$iaD{`6hHN-_@*7nhBL1H!^FrJi-WX9@9` zbcoZi;ZnrzL+5ugfC&&X71vsWW{05h3U4ijtdu?5>mppXJv-U%wZ(uZ!%;eAn!gAM z1XP3s1?%1$)6>$LHhZm$9n3t!=dK=}n6Pz>T5mG`W+woKT)9OMB#>S6&|2H4Fq@+p zF6JD+u-z74oNgSHS;);m<6UdRz*Gorql_*ncTh;-^f9Wpx;?4#^OO6({q~lVJ~^Sm z*{qhqwg6OX@9$aW%}-y8onwkpjeoLdc`=vOQdY+zQX~xiJqVR@6aD8{>o=CY8>2@d z!vyy*2d`iI(B+x4N4u*-VZ`BNl{>WBG<6#Z?c)i+lloS7#g?0KZ3@gLHvAjAjc&%= z$?NRw?^mx*JS@~mRfJf~8@}e?UwXvPpBNeWYi;dS*RZ69*Fp_oaYaO$VV<7u=;ALz zfUt7uq^6R?x|G}tW)S>*Ws8j8pzV2a^P!|8$BVwsELWzAif+XCoz3cGE$U&yKV4my ztgM@lsy+Aj$s=8_L`cQSMHH;vRx0@9{>plC@4&AqP_D3l*>Kb$_K#nZ#Yav1-rE7R zh@>!WFc6>{2_qC0#g7&xiM=X5TqDA176jqxzWO}DR_Co;>RWg74-?bVS0Rb~{ky!B zEH_3R^!|Q^7Vof<9Q2R_pZPV7Z&Uukdw-4sd8ztsYE4~(&yGvHM6x>7H+Eml$Plc; z(B~1O$)cqcpkpBsDNHhtH+Tos7bk(@2(WhSTwOadm4|A;ZkKlTDK=lm?pT>h`uFDL zaQ!qfNHi4UF3>FlU;V`?X#-|>o+DAbo8&hg1(sw16&S{Y9vLLkaQy%3bY2w(?wDmS zZcVb}zFUv(*t_orm8kkrQ}bmIuu;%xj54HB+#z^CEMBTjgM-N$18pJUcz8_X6Yk40 z(FqkY63gFAT*f7&iV9k&?s?I1a{oBJBPMXcenBmSy~Vet8@#d5Oab&?I*VluCxZeX zMeOxBIphOi=y_%*fjc%Uri7x-9DJjFUSCg5&;|P(-hNLdNtDIiyYaxFJz-0;z8=-d zO8||$V$UYpgq{b)n1eZz-?*+^Uej$E)L$UjoGe_uI4q>6yV!D_voQDpLXC_S*zA%&QiWgoRE!tpKPWq_%y({``HPKEyNbz=b1yuuq5;A%%oaI<*(n&;na( zZ2EriukT;}{&li=x0Jm8>lXxMFU12f8#^}f!M6(B|1J@92#;3?9#uOj7Gce}0ARZ9 zzK@HszZ5fxHC3BwRnZ$`zUbq?YuSS@`)*NCnuwURfY8r||Hcq*7($8jT<+%h_eKl* zD6sVSU!198=F2igYG!b8pR-PWwBqXx2#`|3S7%=h`QwTj5d_T)@~mgLsY%jgHkVWW z-s6qY=Es|V{eu=b9zV9mi}bOvX)O2%PAlLE>0Md!kSTPpZp1|L#?opy+Xc3lV!%BD zd3(I&5bBeAzv1Q3(D?>PW3i?t!)A1U0w5$ zlphKcY*=is4Ly|5`M#J_@J5~W(?F8wpD#E2s1q#op)GcJXwYQrFRR0RM3a1hB=t@`)dh3A^T-!?)YXJWZ*mlab*{8q57MX-#(pFb>>@! zyn0uTVwZ>3_JXz2}!S)KM-3Z^=a={n@i=1C z=53je4PQ-hF`=_FsMu+`*31I72wlV?^*L7x2)VxiSwc;0pX>l$N|>;I54-_zrTVSu zT_=iHV)*UP-Bge3xB z>1sJ?qKQ5HQgx^K?qwJm|20`JbcZ?Nu>8pxfBrX1PC*kR$EHu+(Dj@d$>Cr(gx#wG zOSM$;8+o2RwG<{!_?PA5yN=?daq)Hah6v(Nmr1j+T5srVZ=dnfZE%25nCLLjnI+=u zG84gK{@TMTVR5rJn)d0H3=k6ll@^Vl6M~S{|C7`pTi>vhI5ChZyRzNhCn$)89@hV> z)tH-&lK{dbfSrtdfN|U{ide3+W%?hGX-)L>0V^4hcZzyx(_i#j0r_uycv$Mv-EVKv z^bm|Ja^3zx*ARx>bT#GYS<0W)+-R<0+B=oMGweDFG-csvpO;s#`1hoEUHS^IZ~(eg z0}mCfkv*}OnIW1C^SGGdRvw0|qcPnzzM|!*g+3PGWs){1dIpP6&a`%JUnFR681u0e z+YddsI(8+(6Z4uTYk$UbpMlJkA~rG@endVWHs+>G=-J;DK5ht^<`cmKb{c4u@jra| z^1i2QargC6Ye#(=D|bDh!wyacZ1|CR7_YXNFT#xx$!>oYhr(-ITbgMyDB7m;xuA`@9l0) z`;3i$r6W2>R@1F8s4Z?aCd1pGKRn$S^N*9mKmfq;bG$~8nFJgWVue0VoF~6(;hlQt zLPte|ksyvo46H{#(f6jVdS&~D&fQB^FQ#{wU@*DbaPLL}z~?-A01yKq7mq;Jp{lHm zfRzrU-YC>-Lz61h*i-46j0`^{6jDF&7OVAHlNFvybGMw;-1x_L4Rd%Jh^7-`W6-ZO z?!tb`uvQ##la~1JozI_J6|Kp0c_fLMiSx$G*|bWvBO;Q6JH)eeAbOHC+Ou=Mwc8TV zaVx<~08%9+RDqFqJ~3%RNlYv`sFa~By!_Slw-b~b7O!q5_s&yAolke9ieHHOt}*h8 z;1NW9gpncx&V@wP^CYVrYlAw&Gq9SNzMG6}E~1Y$BEvxJppV(_@>=t{xLG%0vwTse zn=cju8e{l8xf#1wwTxLRy4qIl{Uwc0q#t`jLW62a)7Ld#4UBNz8^Ryar063GUdmf} zTP>*|NcfI@=AccjIDG|*T!EP{d$7LorCEcE2_uXcM0Y=t#>MT6(Dm|0zh%dk-96uV z%I$)K2_?)D(9fX2_OuyYw1EAb2zAei9)-cb}I33#R(z^98FmIK3M{z zf&cDfWzIpa>_lMRSx*9pOPl@5C8{5g0_mvxRTBa8AJBg57ip4@Jp5!SnycpKSHA9L zTzYCJC&x@OHkMjpsAFAgP+1(~*U1yS8|x-afB+8}I`qvf3Aj?&l7GZYRpS8Q=@3K(0curW3n0wE37bvJbmX-s%O{Sa^^e^@Lzv6~pBIn;*;YY?zhh znLgk3@2yRfE*EbMDZ6+{Ne7RPm}AgyBs2mfsLhl|sL_%y15C2LdpzLexOFQU@)Qx? z$Z&R!GU1C%wf=Q4JWO<#(bd}AGfw3zk$LygF4ypaq+To78QA$&_B^X!0>DIDJ7q!m z_bz9%@r@D`7xB`^g{$ERb_%Q?UY&5N^N$uJlt>~ zh(Ze)!o@*mxZNg{H|DVZLT_hF!j+EdOVDx^b5$!kcl+5xk?h}_o0nB)dK?-7Q9KbL zmw>>p*R1TcIV+0!A?1();`IHURM{94jwaQZKAzNz%*>i3l5h*EYW={YtWh)R|GB>1 z^Q3Z?{6>e4MN90ZVOr&5X(>XxGAv+Iho@KJ(B=N>60<3~uos=Az}UC)=SZD*4Lk2u z0c-X5x5J>FKp1Y`yx!K%Ny2z`?%rbZfw%qUL)Of}DziC54UHIvXWGwLgHP1DJC5T^ zDi-H*1FCI2{pb|F4&nroMf0Vkw?Wfya~SqM$K4GO*?fR6>XX?YtEZ{R^>xe=}cfVO2^) z#~{Knbb%QTcq%U6ho9~lLzKC>w?A5(eu~CLBn7kfPwrwelHxt?WtO02`Pw&u0AQ}7 zO6VceVr{M1@Y-wDp8LLTK*3&>&X4r@aXqeQQ9wmaMTPskI(=q0?>yv;XNCS;%KP}G zoyyTvT^R?v!;%MiA9Z*q4gzebrlxz9cVLw@tA7{yNHD9Z=+^SGY+$<()hk>~7M0?e znh{e0l@7?QGQQ_lJ85iY780~g2lqP4qVYN@ne6qbg&aEBVf?{asPvwOR)ydg4lcO4 z`H`T9ec1AbX+%^fZa8@?<>IbzUrl#63vKSh7p2-?87WGXl*onSS3T}UNOkztK4B;a zV$D;DnTv&|co7z{b85Jei2#20IjA@89=h-un1AY-dz^LkcZl0ov1Yp@Lwa9wZvsW= zJI=TQxD4iA;LAbKnRQkfILaXk%6YmT4YA@o8co6OsUFeXGw~T?PF5h3UH0%}?20fl zi?PrT3Oc*n`=K!q46pv+-GqV^$e~->Fy^CjE0+WTEO$BwNwg?noRCmRwt%#h5|m%3 z)*FUYMGGnzrY-$R@b=|lXaBkTaoA3mIce9IDXRMOqI;yYhE9=InL)0rR1u!Gw*KbE zR}*eMNPz;4J$Ir!GfD3bBr|=KWs>D?c-Q!{luhWakI&=N1^VKRiMG82SBfgb*e8^@ z;jpq66&>^2&X8Fb*vDAUqD!$MlB{H=ZvUk6)j<^vNCJx1t}fhYh_|}e5wcO)@)jze z5e~31v0UyX1{f~dA0bc*0RG^&M?xXHjGkg7l)>)$<@L=S4f=p8YUd+94*>yz8)_AB z1dm0sS92juXYSYMAJTAMgh2x|eiq=T@VfYOlKj$Ppf(Htvd4lxC!}j`Y}WDfUvFv4 zu=q$${?<+SvZpAUg8)$Ik6)OamVyR%#lLf#i)l0eqrLZ1_l_2GkN0U5|JopkN(m-9 zAtG6%Is2HB0!K!JZ1+UU!sw{z2b^yKUjqPWVjLivgOCreOq(1XjR?WPtQodTIVpv@ zO6RwOvvW63`}{IBJEtfbLPqiBgB?bA-d<UK&sS6}K2%@U%|lfpVN4+D$e$mc*iE=&?wxVr*Zi@rz@lJz+x-^9_cIZa*8%$8?{vFAlMPw+LV z7mkh1OC%%fe=m1N+uR`7746V+0@_e*JJonq| zD_T=ui3d$V%AHgFUSXU(bHVVN@^Q^DhPcJnOlk;%yq2!VnB04M{!H7j5M>Z4ZNR&h z{qkkBTp*nwTs(w+kRd3BzvsNY>btHX#>HmiEB2tIu3PxcB3&e>)?J` z@<`FNC&9DE$6w^ud)pE)vnlIToc8!;6}(k#-Gp0JL7Oc}Npa{>rukp=Idu?lkU=mH zg3Q>sie$(4EM}XTL@@VSk$@18IJU^LT7X!d7_+nH*N4z#1|+_gi>qjBt5}kOo7kM2 zGE1?ju{C+~U~;I2Qw25i3pdIl(!bd4A7(QK-93*>iJ?#nc>_JXXfObd>VuJ8Du}%l zi;~L5AtJZY!teJbc)cUSj&WZ9I#pCgw#hRYoD2dUE)(%5Fc*W`o%oYYZT3Y3#OHC2 zGd|;^QqHq85pf={l3o{xx49OS>O@Djd!Ldj9TW-FZNj9F>WS5=m_XEX2`~T$Q%L%0-)R?1H-q}P*S&Zyl%WC_lsMRllKb{Qi9Gw5{QQ8KLPwxg_*6%L0jHUIht8^qjf)F<2f#gn zY(wK8@Mo@idg+>_P7V$t7hXjLtX~%y2`(o%^31qc$&r58gEtdIYn(>Wka;hW1iDR& zNtUFg63r=X2c*XYA3r0|l#9ZVEap)sgQ;1ENEYGJUcubiZy&%s-q)SPoI8#wJeW<+ z>ezYkKq0TD`(owLxl}ax_$fYKm ziy&n!XKaC$&%yS_=Jx8IEIQiP)iU04ZBE!x(9t0M3gj`49-DuTL@8U~2qyd(9lFrr z#^;z4s{nuiH17Au4uoE$j9f*8JB`Qu_QzqCYP1rlyd&M^Kb%J9v+a2|bl(){XgE`|D%#V{)d%XBJeL zQjOC&$}H(v50uE0Zijb%+g&V_&c~IlB_za3=lE3Pov)4wC{hYX$Lk>2+dqi2cu9Y8 z*kgA1kosi*{UEa*#hfFk2_=y@b-WEM%!n|#-30hRoDE>!3FYDU&>AAWxO)>-c~oc1w&^3BE1iSc=HA{bleS&X&bqZtPkNH&H`1^O zIr|{?_xqMNne1hn#2u0JlQ&LSD#u@OlB)M6$vd56#07bVTeUG%=Xx|(-CV$nDM zReHCjG_e(^&e^+Z<44p488lvs864|TKNo~I>Bjtu^EbuCeU?!N{FnmieECvNeyUMu z)C2G2u>iG+x3w_sinkiPXu$5SttFLuQNScCvW53F;K|3xmfs%W42`4Fv#mX2(Xuls zYFulXyXG`UKIM((RuZ-cZLbT8?tsb~n`E*U`n z;N&aJm72M-ihZ5MbGwaehL3b&$!eI!b*KHr#Cs^`9Gl*0rluRFAJ4yum_U1q0)Nvh zF)GRur33cxD&8;ny1{XRcwAda~%4MhBh4}r)@|Qk?G)Vh|BnKRVHMmy^B3Dk&+0q`n z%eFPz0R(h%@+dLUb8qiPnl;2`JMdC9eqWNFa6dZcCwfn13YBjyCs31o|@{59MkfRt6UTu3Yy#d zSeJYNI{`xjgAF&bfVTYe^Ar@@#(K1>+7P$1ADAqQG$$5w)XBP2rC0Zk;JDF471eop z>Z8G0fwwl!n0xMBK3|41)3e4BTbA@b_ak^diHKCMpeHpoNmbM{XY`Mbra%(WH-P~z zIco!Nw;gTwYGqDt3`AXFhBQSL5Ixaj`qs#*?hb}oIIP474;E4!+%zHkl1 z2t4XbwDWpX@~~>6W!5zOi({Q;?d10nY3Q1b2t*W!XOvT)+LHTatCACNtCJ-EIIt5|F=B(?ie$2AlE8HBG;hotB)Xc5{}d*SH*5@rn?B&^cz+hL@3u#Q}+ZX2e4Vl@i^?9ofX5Q*J6B6nI@6~&#?d%^zpMweuq<7sz zn8QBgsp?rb;1_AyJ3DXP{>>??kxyJYmU-FAVxl7JvAn~5_X)?JP7|y`LTG-92uI*o z2tYHw6Pwl)bBf}!NOq8egS&%640A7>e0!}L9a9vo1@C7m z?tii*4GiYaV6K^bHAfFJ7=!RPJ?}D)j(iOaF#7!2*?-m5{W(4^W6wc@K_^t$F<&td z{j^)pzLizAe+}w`K#r|{Wr2Y>Fo3*rK8sO7%-QEJdZTO%4-pRG=Z~^5G#m$3E(v1D z(&au=Ip!emp zb$#`e+lgQFD%kJ&d%Y^Y#i>L_zPqsj>mt~b?t424rWaCu78Rk!kFHFAz%&aLK8w-c6xS#Srmn*7y*6k3JnU%d&JKYCo4a9~3q)M#=x*g@a zO~#ci0eq>NNa(X}Qpa&^w|lJVU?1z^1zLs`pRO*ov!D$3gr|}R2!mauF1K8qYW>qs zq-qFc0B62>weL$(Te~M>ViI)Lh1p3&^v`*6Wc1s+ax7Z9I?e;Ddk8|iIxK*TU?5*s6%wDRlsqDUruci)?G(-Rx#l{BDzkQuvyb5k z3|{_ixCn6^-t6!0uU|)$4h{g&XH(l$U48BHU>vpSuEdBFUdaeEj)n#qrd@b1E&+Iv zz$WUQJn}=6!Wqn7Ls$0L#MN`_)zg;-HcCGwzOeR zx7>gqfPMGwy`4y>y)P(39QE_3Vw3SCioZ5E2weIZAUB@g`j15aEPx`3c_^DEpH-K= zLQ+G`-d>Km1`Q#=Y8#_=YYF(ddp%LU7-cctAiI$3DrZiJRpp zf5paL9WOuXr*WnAXtFY_xR=Q4D4ig5)14I zg`63`ZI=S<}9Qm4r9hYuO##swbYw3 zFmx@v>1Jxs_cC7o7Q3a^H@r#CJ;Bt_VkELv@m7=Pj9Vco5}Ri!<-b$x*ewT&psDAK7ZoA zo1HC}{(Gv^T>Lk%L)s!E6E8;Q)HuFi{hjG9)46dMUn z%2D9?pNW^8)_m7hiZ7_xrni4`5*-p-*o(h(bxYSX^3)s($00z>4~}(jewBxt)6^ zG4lXtJDk|#=?~1Kmu<@xR{X1 z!a!TA?n##g?DqhXL?p#?Z!6>&b2BP1WvSeG&YC;)v}*w}3%~)PPz0wS z^S@t4lj*(LJY=>hgFU1z1+#kes&v7P1ll%`xySMI|B$!RsQ65XWiOsff-{O9*7)A5 zLWT(>>5vu=4tbFHA|ITq3_qx>LI1B*duG~*lPmyZy7+%<0bH0Bb`Kk;&GYoVkML6Z z06an&+YJO^ECh1lTbi@5;ke)!2G7W*N7G763kF${wZYP8DeCTB!8$`+Nv7PPy-P(7 z1F`xf=d}b#HH#I=Ch6I2ZWgHwPm3xL;5pB8xCraoG8z;JG|ErQKf2yB`ziIT9WDS3 ziHjqjA?4z1Z2i$&P*Ch7$VE|NRZ{>{V`Y|E7x2gJk383opV$<0|M>|dGH2&+x;1HV zUSE^>%3GuFq+ZI|Q6OHdSqhXt?k5f|E>Y7B(!}pIJAH)K#+SYPlN2fxb?`&kY3o@? z@M4P$Sj&AxC@JNx{NjogpTS{bZ?8g3 z0dfhQ-R+^rhEd2HIY_Hd!NU~K;GCLqB8`?wN7Wf~_t4D?$1~tGY|=zotYQlh!*hZ` zyAbMPf`iU?9aK!OQCbdlG*Y7oQmvn;Jcxlnwq}II_s?-Ez%I$+`sm(MpqFwqTSXJH zH&mLGv^aNGX^#@jH>#OsynJem<;qmvH(cmNt3_Erz!osQq6=7K3cOq5rhQ+xv;??t z+t$uTT2M*7#=^E0ba7e=w(|BKH|GWN)s9Ayr@7$f>PoT4y$Vwv>0w})Eb_Jd>oYsQ z#5IEkWoQ);duDwtSnymZU9KI#8jUGn&2{x~zY}e72T75Y#X=<6$?s6hBB5~pXqX5`QRey&NAZf;Mw*kG=lkM222?swed{3)8MlvAsW~ioo*ly>jSiVLi z<2ln8W+^+SYopr-_5$tM_xF`*Z~2Ovis#xIKqEL&9`l2=xZ0nia9_~^&1fEzTKpb& zXk|p>gNa1XBxPuoay;w5o#Q?sfpDJD;ICh&pJW1USW;AN6_x5zQweu{KiS-*CEDyw z7DJ(`tw^3oi?ju6Fs6{7onzDWh@5N+?Vsi9b=%yHvQbj(@3r~^<;nTXs<@u1%dY=J zJ44^!GvTwp)l10)jf|KU2%mO|WWym1_!(KsEMb!B`cIiiqN%C>0Z)3m2=U#AD&fW05QN=b4x>xbsx#`W(O_~Hcn!-0J#-^?U ziZ-@GL`2*$@1??u>#lt9D9225Vc#~iMpcODtMitOVa2l;9O z5JX^?x{0G{Y}`MPFG-9!yI}qSZPrjei2!p&v((pqeM&hBf{*a944yu4KRv957BhON z`Af;WWg&mNxa^n?r`pWaDh!@7pkg03-+BHj)8n(Hc$CJDFHxBeHPO()KO*PJ8fw`) zwM~%pKp`cwEKQ30Ad`io7>wI3NTLBbDW03afMe{74q4nMwY|Zmr#j|h$Zj~Py4Q0xRK}8vJxNtHCo3akVfVd?ieNR>(w=?d zv(*D0{R;0?#X`;f+a&gF?Yi7m7)Z#0$wcPeO(?QTwF=?#W4l3RR;)DfSGfcg6eOPd zHf@OVNmqOI9X%~A>xGu8wtt3NT3Wz;M$88??@pYl!Y7^8z5J{sFspj>sMhk1shL^5 zjmrA`Jb_dm-j%oN^Txr}+&Q}Khh+owt)AtUXM1X=sf9&$5mHk>ejE$KYG@K)jKsm`WqrG}cLhOG73m55!9n(O*B3Mx$UGqP!b6QsqraercH`06td ztEdjDs7C!gmLuSQjoQN*p-cb_=;-)w?NR~LZRN*z%XG`&O*#gC@ZQlWAi)qx_iAT< zf5D8`f#S*x^MqFqZYRq{V~&p1MRjT94!KspSYs^7iyJ>0QJya=@TL^eEy zJ@Q|uRoD>G2Orcu zb!OZ}Z|Iec&A5Ysq1#eP%~kazP2c!=dRo1n&RDIJ09F5E@0{l{NoWm?`?Cj9L1N$5 zU-b5VDQpQ2nNO{?O=iAsO;s{1Kjq{dCTVOGP}Re)jMC=Aeg4@d+UkME@R?zS1}igD zBGSO4kpK5e7cU&hvx~C_@3}~j!BY9noHCk#6I{?TZ{TyhV58B12NV44t=h!oREanYg&dbjt)Ovf^Z*S|*U~ zt~2D1vVSgz-6aqF>pRN5`Jv>-sOweCx8rY{1xgto4 z;;jR}>#^Me)P#paZp_qi9wka*7pHqOonYD&a{UqLO!Ju+$YPcPieIc62W%j7Nd{ch z1{t@=L?{W04bm$6;$2TWd8A^F8wls9g|suYZvVX4U5U8r&75o{Qo+W~muw}P?xSF~C?2E+~d>hh?+X9sgbklUT}s#6^e z@>$!bw;-V9>#_%?6m7ia(?Ti)M2Y%>Q5O0lbcC42XvpmBjpR}csTVN&cbq6#RjYyO z%2wpRvEoA)Zw?m;-g$ldS1{9BCwSTgBnx=ZplAUzqj8$u!-v>?H8Z7s%RiIurLkku zPIP^G;^|G1EKd*{yKCol3-C)JH`Xx4$x00Nh zo1pEa(nA`3qii3=Lb|daWj|FlOjR)aq_4Z+O$76z@bA9WWD%3po;@jrX!hJ8Oa1pS z9(LiOq1&(JG-Lgn#N1s23!6_%@~*E8({;0sc2%ZCPUn2-&d-)ow3I7*R^qwu4JW=> z;ei;yh=TGav`!eF)&5nhxeT!ps^e-P6)vh7`2|HNq!8kSe_C{hAI;0lV-h5Wh`=}*Lh3)o&c{h z>20~|So*{pWQ~u0%){2{n6ANbz*=lH`zA?0~=KP_%FK|^poEI6X^^AcK}#ye~Hv#HAfRK#e`hvHWSa?-k?S~(1dqh zr_}@OE-Mde^p%*-zgqh6@$tF4LK1&ct3WbRHQ}=}k6oJb*n;r^u~gw5^XeJEgc1{B zv)rBo^Q=GynJEufV#@R9m>SwFiM|dF)J%!%`(?JoKU%asD;Ffq+6+<`!K$RqJ%ojg?cKJEF}?KddveII zk&%wJrdAGYrX$I>)ownkY1Ai8c&MoO-lNIS{mz#6(=i9lD!nBSgBuAf3Lb$oV!ZF( zOw3u=IjpWw$a`p%rs(RV^58=y2+?=Na^fN)DSg$NY-8iPw<%(2XzCuuw^AlN&B`>~ z*!T+Gs#}>{6tPN*^KYP<|5k@qqMesuJP{_9SzK*Q6nJscFLAMVcubcg5n}pUC_bUX zR?ui_x(`CF5vg)&P%UW6J@R)SMom22+@~Rp9-XZ1(W^+(uTYFJv@&SdZ4u94E-uMt zzBl>fN4>Z6Sk0%QBAjrDLKR5;s19*oLy+Z50F6PA@h%Dz3AslytZj6%rS@Sz6wcd> zw0KE+8%Ep>dw!z7KA`Q)czPL4J6@b+nTFjF|4rF1d~|9KlC@ybtzD|_pZWqZMir;V zs-YI5EhfoB0d z-`>H?>kf4s2$jThuR6j20dv-u_uxjeDVXB+j`CV)%8jtwFM@ovEd^P1b1#iX$E=@Y0Rqc2~f zxJ2fozL2wt5~gcQPbFTp_~@v zqVYwVLrtfarP`VabEW@bSf%bPNrZCBTb=EX- zdjVY#XIy(Oe%*3hP^T^ zUcw#=%rS@k?X6=I&MiftZ&$K~x;(=S-v z?tufD5Yu*tU~zZ8N(5ey0nE9`e8Dt54f^Tyd!G;zxT~od17&sp3>UQ0{ zGF4R!3R89hK%>m;f$e)@~zFms{0Dw*23*(f9lWK=hp6;^yFRbmpR`_qk2d z6i=ii+ijwhEM}0l_3PJVwCeQMEu6j2an1+>_r!BWa$ah}$Uad1xS!h0Tm?1Yn%d3Fo0vmS$Pqv=ch=0UBO_Y(O)Qkdjc@ ztTPm$l?#_b3!iU#mC)meh0FjAZ>CF7NRK;+BBp>U3UYRF!ojkVS^TK_xw7sP2GAq* z=tRqm*tITXL#H8JoJg5EvXbyTN9^OI!QZ`H+iO-%P5>Am9J>1AwPOAU*@DJ7iM!(G zBJqz9BwEG;O4{@ksu6oN!2n%O(`VgS3Q0q}KLbsv5_-@O2m+@if&dBYArF9ON~_vw zX(g+(YO_9B_ewcY*nCEAEZLo`5Qa?(z}T-iLiPQ^O)G(qCGZv2ESEcV9|cN+f~CE&Hx0d;`N1v z>h*Qngoj$AuT>kSHdO#o1b7nim{4iP5by;9%#IANyV9iM>DARj4K-`)Cc_G)qMrm^ z1cU=h%&BClq<9r@k#TW>&@C40KDyQKCu*vsq{EU7OAmKoBwVU>CmZ?NlsrrF#UGvv zfDnKNH}^s`oUF>U&6Ghsk-4g5)#b6j|R&QM+CIGoMGez zl|?>x_0TiJ_vgh((Zm<1kRbhPlGx; zSFg=pr}@>~?JnN_)x8qbR8mq^p51!?b9`MUcwh|CpxQQ}@oziV$~{ie=fpxl0_8PD zNr0tJ)@y?yE6b4h?CbJpd8NS*+BTkCQady>S*eO;m-$yOl_|30 zo|jXBCoylDx_=?G5@zi}kZyah$Q%TIm-+G1s}1`fX3Rb(!5 zc8*WH)?ljk*%H5W)H3J{vQCUk%UPW)lT_g_Sq(N&XjSfkoibP6>N-oII;%BbwQkum zw-$RUG}FPs8NcY}ixJLXXARR!ue!kYHv#YT%d&XB!` zg7QJMj5-7HE3x|vULv!v=k@{ZG^60zNEvKx0)-q`@`bV&s{f@*+MD` zKI&BDji8G$^kaH!GD}Ne53SPECpgrNiI_xd8r&286^X9~_wu&@IDVQ9rSsjkroNi< z_SZD(IzmIF_x0Sms1nNYlO=x4XA|!5p`mpzR)is0frlH5l9G~(Ldk;O4^~9GZm`mP zyURd^r^3>;vy(TsozQKmqC!M=H<4MsM6A18v9OvYgWxqvp<^y!V^oHjiH7!xSK;3l`Nb_s^H8Nnn{o#P^`||zH?D6IM6&+BzYO#N-+nsW> zeLZrb!+x`iw?wVu;1elK9hF%gL`mPEy*e?fJujT2tmz+g#YZfB2e`UT&Oj>+ccFsj zS{m;%+!kL80b(8<~Jvq)v*DN9a+OT3JzH4Ep2)ZPs zRT1*cBV%JA%HjF%Ix3>|de*%>I?B9TX4k!b&vjgoxG&)y5}Hk!rT1O=9jf-GYPw8+1ZhCw?(E;D&0j#+fcpfPMf1piyI7&{Fca3f&WUpu?u6$`Mxw}f zaJ|~WIU<~`iiAR((Arw#cc}C?;P+nVHo0HkCvf^ekOep2{f#k>#yKo;5kVJ-vTtctq;y)tFYm@7aGmp!~F#6d2_HS38HbT(v(|6%5kb%j=nrr+I1OjVIO62u(}4=(4d5d1eoI96>T=e5`lu zeL*PE(ZO*}PM6Sgl~x!*+(fb?-LuJ0%>vKhFm?%I%iAOZYbm@ p)TX8f-&fo}=E zf@$J&*-`jEuNHhoYJv`ISvbxA;N7`JCQBOqX#i|+QVn=;_5Zj3#Ka85EAW!do%}fX z`t|Fm!#<1+(}NEj%}z4A7Qg}t#)8%Q`>TQ50dtBl#Yii{;Y+)%(vi(Nvv_-Z+u_^RPvQ7QVFxFw z&%UC%i#41@De$qn_x)!j?DX`o>zs||0?|&d=?Noiw~Bs+g!T%kuoV$o)=uIua&vQQ zpUuzbRc^vC>dzmhCu?(lxLxYb<;{=j7X(zaaCWO?$C~Ujc?nvGq=-|jdyV)%+z6UJ zz(o!(XyW7~DEn#z2nx-v6JWjl5tq8)#`@&&@NkV%B46Zt{Vb0nTiM%VOKjx+!+GQ# zJ;WP5o~?2cq(KSjsIT?JzJ2>i;^voC&OXiAW=T|i1@TV^(-bNpG7p&1MB6dblDM$7 zwUvJM+hDM{atxoXaubj720eYtRx-0Y?ds;4&OB?(&mBOPx(5Wbbg?1dDK0Ot=x6s3 zXJ2z`>))UYc>mYdfH;{^d>s>*VmMvAF$D#z#uF+@OAuW;v^UhUe?96>wrbEE*gh*a zSNw8{*FBnMmdg>R=nrU;`1@9NA>X*XQ%g!pgyWN$+4@HIAjz=kcNQlF{&amZGu*%U z#U;OBfB)k?myY{uz?-rY(4=#kHswwSFjE65<~#DE)DHY0gS35mVQd6ByqU8Aj;^U| z@TP@&!?T3s(S>0kh#mZV{{O#xLX}htfBlAnjFk5O>t7zwHJ+XaGYyiR!rw#`WL0G< IrOm_t2h7@gk^lez literal 0 HcmV?d00001 diff --git a/docs/source/_static/images/recursive_ls.png b/docs/source/_static/images/recursive_ls.png new file mode 100644 index 0000000000000000000000000000000000000000..defe12aef1fd93b972de980125f38f700b6044e2 GIT binary patch literal 111972 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

n#`)WZA0w{X5 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

xOdLP2# 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 literal 0 HcmV?d00001 diff --git a/docs/source/_static/images/regression_plots.png b/docs/source/_static/images/regression_plots.png new file mode 100644 index 0000000000000000000000000000000000000000..48d8400ee5f8921a3f8a719fecf272ac2f6e3361 GIT binary patch literal 39728 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 IeGvSA0AK;>U;qFB literal 0 HcmV?d00001 diff --git a/docs/source/_static/images/rlm.png b/docs/source/_static/images/rlm.png new file mode 100644 index 0000000000000000000000000000000000000000..89b74ae5aac5f43baba881138387ddc725ef2628 GIT binary patch literal 29866 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 D5ocUQ literal 0 HcmV?d00001 diff --git a/docs/source/_static/images/rlm_overview.png b/docs/source/_static/images/rlm_overview.png new file mode 100644 index 0000000000000000000000000000000000000000..40bcbf724eb3f7de543e4ed96656f400553d681e GIT binary patch literal 26439 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 B+64dr literal 0 HcmV?d00001 diff --git a/docs/source/_static/images/statespace_arma0.png b/docs/source/_static/images/statespace_arma0.png new file mode 100644 index 0000000000000000000000000000000000000000..36a83c8e3fffb5384eb05bc10b77c17b247b4fda GIT binary patch literal 15478 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

IZ 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 z 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 literal 0 HcmV?d00001 diff --git a/docs/source/_static/images/statespace_dfm_coincident.png b/docs/source/_static/images/statespace_dfm_coincident.png new file mode 100644 index 0000000000000000000000000000000000000000..8b9f7559acf63a77a5ad5aba5c8b2398e82e8179 GIT binary patch literal 87568 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∈)J^3Ft)i_nQ-vKs3>GwhJnODFEUQ&|)Eu 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 z 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%0AAAS{TGr-A&YpDuF8_h@q3nMdizg#@`bvZ_ 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

77r!)cox?%Hi#zuNY{^RM>fUmmvY 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 z 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%0D1T!WD^Yd3lv&r#b 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

  • 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 literal 0 HcmV?d00001 diff --git a/docs/source/_static/images/tsa_arma0.png b/docs/source/_static/images/tsa_arma0.png new file mode 100644 index 0000000000000000000000000000000000000000..36a83c8e3fffb5384eb05bc10b77c17b247b4fda GIT binary patch literal 15478 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 YImv3qHQbULDPKQ&NLfDhfZ^r;2kM?hWdHyG literal 0 HcmV?d00001 diff --git a/docs/source/_static/images/tsa_dates.png b/docs/source/_static/images/tsa_dates.png new file mode 100644 index 0000000000000000000000000000000000000000..d8067e1c1d83c6bec69356a739106feffa8064f5 GIT binary patch literal 31404 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 oB9a*rQ1iFOyKwzK0DZ45u>b%7 literal 0 HcmV?d00001 diff --git a/docs/source/_static/images/tsa_filters.png b/docs/source/_static/images/tsa_filters.png new file mode 100644 index 0000000000000000000000000000000000000000..f8a6ad6464977af7bcce2719e6c8ef0504cd389a GIT binary patch literal 38917 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 literal 0 HcmV?d00001 diff --git a/docs/source/images/statsmodels_hybi_banner.png b/docs/source/images/statsmodels_hybi_banner.png new file mode 100644 index 0000000000000000000000000000000000000000..7d15ff99b4176a91ea4e4d0044203958f980801a GIT binary patch literal 41918 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 literal 0 HcmV?d00001 diff --git a/docs/source/images/statsmodels_hybi_banner.svg b/docs/source/images/statsmodels_hybi_banner.svg new file mode 100644 index 0000000..6fc0fa8 --- /dev/null +++ b/docs/source/images/statsmodels_hybi_banner.svg @@ -0,0 +1,316 @@ + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + SM + + + + StatsModels Statistics in Python + + + + diff --git a/docs/source/images/statsmodels_hybi_favico.ico b/docs/source/images/statsmodels_hybi_favico.ico new file mode 100644 index 0000000000000000000000000000000000000000..4a0469ecad3679ddb40289ab15121414c01288a6 GIT binary patch literal 7358 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 SVd1TSr>4J){eQe}H1HEjpHY7R literal 0 HcmV?d00001 diff --git a/docs/source/images/tk.png b/docs/source/images/tk.png new file mode 100644 index 0000000000000000000000000000000000000000..fbf8b144e67ad089bf86b6d2781962f990d8e9c2 GIT binary patch literal 17535 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 MX({HMvAXr&0B^4R)c^nh literal 0 HcmV?d00001 diff --git a/docs/source/images/tm.png b/docs/source/images/tm.png new file mode 100644 index 0000000000000000000000000000000000000000..d3900bbca44b9d9cb7f23d584dd0303efd81baaa GIT binary patch literal 12276 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 dir(sm) + ['GLM', 'GLS', 'GLSAR', 'Logit', 'MNLogit', 'OLS', 'Poisson', 'Probit', 'RLM', + 'WLS', '__builtins__', '__doc__', '__file__', '__name__', '__package__', + 'add_constant', 'categorical', 'datasets', 'distributions', 'families', + 'graphics', 'iolib', 'nonparametric', 'qqplot', 'regression', 'robust', + 'stats', 'test', 'tools', 'tsa', 'version'] + + >>> dir(sm.graphics) + ['__builtins__', '__doc__', '__file__', '__name__', '__package__', + 'abline_plot', 'beanplot', 'fboxplot', 'interaction_plot', 'qqplot', + 'rainbow', 'rainbowplot', 'violinplot'] + + >>> dir(sm.tsa) + ['AR', 'ARMA', 'DynamicVAR', 'SVAR', 'VAR', '__builtins__', '__doc__', + '__file__', '__name__', '__package__', 'acf', 'acovf', 'add_lag', + 'add_trend', 'adfuller', 'ccf', 'ccovf', 'datetools', 'detrend', + 'filters', 'grangercausalitytests', 'interp', 'lagmat', 'lagmat2ds', + 'pacf', 'pacf_ols', 'pacf_yw', 'periodogram', 'q_stat', 'stattools', + 'tsatools', 'var'] + +Notes +^^^^^ + +The `api` modules may not include all the public functionality of statsmodels. If +you find something that should be added to the api, please file an issue on +github or report it to the mailing list. + +The subpackages of statsmodels include `api.py` modules that are mainly +intended to collect the imports needed for those subpackages. The `subpackage/api.py` +files are imported into statsmodels api, for example :: + + from .nonparametric import api as nonparametric + +Users do not need to load the `subpackage/api.py` modules directly. + +Direct import for programs +-------------------------- + +``statsmodels`` submodules are arranged by topic (e.g. `discrete` for discrete +choice models, or `tsa` for time series analysis). Our directory tree (stripped +down) looks something like this:: + + statsmodels/ + __init__.py + api.py + discrete/ + __init__.py + discrete_model.py + tests/ + results/ + tsa/ + __init__.py + api.py + tsatools.py + stattools.py + arima_model.py + arima_process.py + vector_ar/ + __init__.py + var_model.py + tests/ + results/ + tests/ + results/ + stats/ + __init__.py + api.py + stattools.py + tests/ + tools/ + __init__.py + tools.py + decorators.py + tests/ + +The submodules that can be import heavy contain an empty `__init__.py`, except +for some testing code for running tests for the submodules. The intention is to +change all directories to have an `api.py` and empty `__init__.py` in the next +release. + +Import examples +^^^^^^^^^^^^^^^ + +Functions and classes:: + + from statsmodels.regression.linear_model import OLS, WLS + from statsmodels.tools.tools import rank, add_constant + +Modules :: + + from statsmodels.datasets import macrodata + import statsmodels.stats import diagnostic + +Modules with aliases :: + + import statsmodels.regression.linear_model as lm + import statsmodels.stats.diagnostic as smsdia + import statsmodels.stats.outliers_influence as oi + +We do not have currently a convention for aliases of submodules. + diff --git a/docs/source/imputation.rst b/docs/source/imputation.rst new file mode 100644 index 0000000..112742e --- /dev/null +++ b/docs/source/imputation.rst @@ -0,0 +1,49 @@ +.. currentmodule:: statsmodels.imputation.mice + +.. _imputation: + + +Multiple Imputation with Chained Equations +========================================== + +The MICE module allows most Statsmodels models to be fit to a dataset +with missing values on the independent and/or dependent variables, and +provides rigorous standard errors for the fitted parameters. The +basic idea is to treat each variable with missing values as the +dependent variable in a regression, with some or all of the remaining +variables as its predictors. The MICE procedure cycles through these +models, fitting each in turn, then uses a procedure called "predictive +mean matching" (PMM) to generate random draws from the predictive +distributions determined by the fitted models. These random draws +become the imputed values for one imputed data set. + +By default, each variable with missing variables is modeled using a +linear regression with main effects for all other variables in the +data set. Note that even when the imputation model is linear, the PMM +procedure preserves the domain of each variable. Thus, for example, +if all observed values for a given variable are positive, all imputed +values for the variable will always be positive. The user also has +the option to specify which model is used to produce imputed values +for each variable. + +.. code + + +Classes +------- + +.. currentmodule:: statsmodels.imputation.mice + +.. autosummary:: + :toctree: generated/ + + MICE + MICEData + + +Implementation Details +---------------------- + +Internally, this function uses +`pandas.isnull `_. +Anything that returns True from this function will be treated as missing data. diff --git a/docs/source/index.rst b/docs/source/index.rst new file mode 100644 index 0000000..6f544a2 --- /dev/null +++ b/docs/source/index.rst @@ -0,0 +1,139 @@ +.. :tocdepth: 2 + +Welcome to Statsmodels's Documentation +====================================== + +:mod:`statsmodels` is a Python module that provides classes and functions for the estimation +of many different statistical models, as well as for conducting statistical tests, and statistical +data exploration. An extensive list of result statistics are available for each estimator. +The results are tested against existing statistical packages to ensure that they are correct. The +package is released under the open source Modified BSD (3-clause) license. +The online documentation is hosted at `statsmodels.org `__. + + +Minimal Examples +---------------- + +Since version ``0.5.0`` of ``statsmodels``, you can use R-style formulas +together with ``pandas`` data frames to fit your models. Here is a simple +example using ordinary least squares: + +.. ipython:: python + + import numpy as np + import statsmodels.api as sm + import statsmodels.formula.api as smf + + # Load data + dat = sm.datasets.get_rdataset("Guerry", "HistData").data + + # Fit regression model (using the natural log of one of the regressors) + results = smf.ols('Lottery ~ Literacy + np.log(Pop1831)', data=dat).fit() + + # Inspect the results + print(results.summary()) + +You can also use ``numpy`` arrays instead of formulas: + +.. ipython:: python + + import numpy as np + import statsmodels.api as sm + + # Generate artificial data (2 regressors + constant) + nobs = 100 + X = np.random.random((nobs, 2)) + X = sm.add_constant(X) + beta = [1, .1, .5] + e = np.random.random(nobs) + y = np.dot(X, beta) + e + + # Fit regression model + results = sm.OLS(y, X).fit() + + # Inspect the results + print(results.summary()) + +Have a look at `dir(results)` to see available results. Attributes are +described in `results.__doc__` and results methods have their own docstrings. + +Citation +-------- + +When using statsmodels in scientific publication, please consider using the +following citation: + + Seabold, Skipper, and Josef Perktold. "`Statsmodels: Econometric and statistical modeling with python. `_" *Proceedings of the 9th Python in Science Conference.* 2010. + +Bibtex entry:: + + @inproceedings{seabold2010statsmodels, + title={Statsmodels: Econometric and statistical modeling with python}, + author={Seabold, Skipper and Perktold, Josef}, + booktitle={9th Python in Science Conference}, + year={2010}, + } + +Basic Documentation +------------------- + +.. toctree:: + :maxdepth: 3 + + release/index + gettingstarted + example_formulas + install + about + +Information about the structure and development of +statsmodels: + +.. toctree:: + :maxdepth: 1 + + endog_exog + importpaths + pitfalls + dev/index + dev/internal + +Table of Contents +----------------- + +.. toctree:: + :maxdepth: 3 + + regression + glm + gee + rlm + mixed_linear + discretemod + anova + tsa + statespace + duration + stats + nonparametric + gmm + contingency_tables + imputation + multivariate + emplike + miscmodels + distributions + graphics + iolib + tools + datasets/index + sandbox + + +Indices and tables +------------------ + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` + diff --git a/docs/source/install.rst b/docs/source/install.rst new file mode 100644 index 0000000..0506781 --- /dev/null +++ b/docs/source/install.rst @@ -0,0 +1,127 @@ +:orphan: + +.. _install: + +Installation +------------ + +Using setuptools +~~~~~~~~~~~~~~~~ + +To obtain the latest released version of statsmodels using `setuptools `__:: + + pip install -U statsmodels + +Or follow `this link to our PyPI page `__. + +Statsmodels is also available in `Anaconda `__:: + + conda install statsmodels + +Obtaining the Source +~~~~~~~~~~~~~~~~~~~~ + +We do not release very often but the master branch of our source code is +usually fine for everyday use. You can get the latest source from our +`github repository `__. Or if you have git installed:: + + git clone git://github.com/statsmodels/statsmodels.git + +If you want to keep up to date with the source on github just periodically do:: + + git pull + +in the statsmodels directory. + +Windows Nightly Binaries +~~~~~~~~~~~~~~~~~~~~~~~~ + +If you are not able to follow the build instructions below, we upload nightly builds of the GitHub repository to `http://www.statsmodels.org/binaries/ `__. + +Installation from Source +~~~~~~~~~~~~~~~~~~~~~~~~ + +You will need a C compiler installed to build statsmodels. If you are building from the github source and not a source release, then you will also need Cython. You can follow the instructions below to get a C compiler setup for Windows. + +Linux +^^^^^ + +Once you have obtained the source, you can do (with appropriate permissions):: + + python setup.py install + +Or:: + + python setup.py build + python setup.py install + +Windows +^^^^^^^ + +You can build 32-bit version of the code on windows using mingw32. + +First, get and install `mingw32 `__. Then, you'll need to edit distutils.cfg. This is usually found somewhere like C:\Python27\Lib\distutils\distutils.cfg. Add these lines:: + + [build] + compiler=mingw32 + +Then in the statsmodels directory do:: + + python setup.py build + python setup.py install + +OR + +You can build 32-bit or 64-bit versions of the code using the Microsoft SDK. Detailed instructions can be found on the Cython wiki `here `__. The gist of these instructions follow. You will need to download the free Windows SDK C/C++ compiler from Microsoft. You must use the **Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1** to be comptible with Python 2.6, 2.7, 3.1, and 3.2. The link for the 3.5 SP1 version is + +`http://www.microsoft.com/downloads/en/details.aspx?familyid=71DEB800-C591-4F97-A900-BEA146E4FAE1&displaylang=en `__ + +For Python 3.3, you need to use the **Microsoft Windows SDK for Windows 7 and .NET Framework 4**, available from + +`http://www.microsoft.com/en-us/download/details.aspx?id=8279 `__ + +For 7.0, get the ISO file GRMSDKX_EN_DVD.iso for AMD64. After you install this, open the SDK Command Shell (Start -> All Programs -> Microsoft Windows SDK v7.0 -> CMD Shell). CD to the statsmodels directory and type:: + + set DISTUTILS_USE_SDK=1 + +To build a 64-bit application type:: + + setenv /x64 /release + +To build a 32-bit application type:: + + setenv /x86 /release + +The prompt should change colors to green. Then proceed as usual to install:: + + python setup.py build + python setup.py install + +For 7.1, the instructions are exactly the same, except you use the download link provided above and make sure you are using SDK 7.1. + +If you want to accomplish the same without opening up the SDK CMD SHELL, then you can use these commands at the CMD Prompt or in a batch file.:: + + setlocal EnableDelayedExpansion + CALL "C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin\SetEnv.cmd" /x64 /release + set DISTUTILS_USE_SDK=1 + +Replace `/x64` with `/x86` and `v7.0` with `v7.1` as needed. + + +Dependencies +~~~~~~~~~~~~ + +* `Python `__ >= 2.6, including Python 3.x +* `NumPy `__ >= 1.5.1 +* `SciPy `__ >= 0.9.0 +* `Pandas `__ >= 0.7.1 +* `Patsy `__ >= 0.3.0 +* `Cython `__ >= 20.1, Needed if you want to build the code from github and not a source distribution. You must use Cython >= 0.20.1 if you're on Python 3.4. Earlier versions may work for Python < 3.4. + +Optional Dependencies +~~~~~~~~~~~~~~~~~~~~~ + +* `Matplotlib `__ >= 1.1 is needed for plotting functions and running many of the examples. +* If installed, `X-12-ARIMA `__ or `X-13ARIMA-SEATS `__ can be used for time-series analysis. +* `Nose `__ is required to run the test suite. +* `IPython `__ >= 1.0 is required to build the docs locally. diff --git a/docs/source/iolib.rst b/docs/source/iolib.rst new file mode 100644 index 0000000..006f810 --- /dev/null +++ b/docs/source/iolib.rst @@ -0,0 +1,44 @@ +.. currentmodule:: statsmodels.iolib + +.. _iolib: + +Input-Output :mod:`iolib` +========================= + +``statsmodels`` offers some functions for input and output. These include a +reader for STATA files, a class for generating tables for printing in several +formats and two helper functions for pickling. + +Users can also leverage the powerful input/output functions provided by :ref:`pandas.io `. Among other things, ``pandas`` (a ``statsmodels`` dependency) allows reading and writing to Excel, CSV, and HDF5 (PyTables). + +Examples +-------- + + `SimpleTable: Basic example `__ + +Module Reference +---------------- + + +.. autosummary:: + :toctree: generated/ + + foreign.StataReader + foreign.StataWriter + foreign.genfromdta + foreign.savetxt + table.SimpleTable + table.csv2st + smpickle.save_pickle + smpickle.load_pickle + + +The following are classes and functions used to return the summary of +estimation results, and mostly intended for internal use. There are currently +two versions for creating summaries. + +.. autosummary:: + :toctree: generated/ + + summary.Summary + summary2.Summary diff --git a/docs/source/miscmodels.rst b/docs/source/miscmodels.rst new file mode 100644 index 0000000..591fee1 --- /dev/null +++ b/docs/source/miscmodels.rst @@ -0,0 +1,57 @@ + + +.. currentmodule:: statsmodels.miscmodels + + +.. _miscmodels: + + +Other Models :mod:`miscmodels` +============================== + +:mod:`statsmodels.miscmodels` contains model classes and that do not yet fit into +any other category, or are basic implementations that are not yet polished and will most +likely still change. Some of these models were written as examples for the generic +maximum likelihood framework, and there will be others that might be based on general +method of moments. + +The models in this category have been checked for basic cases, but might be more exposed +to numerical problems than the complete implementation. For example, count.Poisson has +been added using only the generic maximum likelihood framework, the standard errors +are based on the numerical evaluation of the Hessian, while discretemod.Poisson uses +analytical Gradients and Hessian and will be more precise, especially in cases when there +is strong multicollinearity. +On the other hand, by subclassing GenericLikelihoodModel, it is easy to add new models, +another example can be seen in the zero inflated Poisson model, miscmodels.count. + + +Count Models :mod:`count` +-------------------------- + +.. currentmodule:: statsmodels.miscmodels.count + +.. autosummary:: + :toctree: generated/ + + PoissonGMLE + PoissonOffsetGMLE + PoissonZiGMLE + +Linear Model with t-distributed errors +-------------------------------------- + +This is a class that shows that a new model can be defined by only specifying the +method for the loglikelihood. All result statistics are inherited from the generic +likelihood model and result classes. The results have been checked against R for a +simple case. + +.. currentmodule:: statsmodels.miscmodels.tmodel + +.. autosummary:: + :toctree: generated/ + + TLinearModel + + + + diff --git a/docs/source/missing.rst b/docs/source/missing.rst new file mode 100644 index 0000000..20e134d --- /dev/null +++ b/docs/source/missing.rst @@ -0,0 +1,35 @@ +:orphan: + +.. _missing_data: + +Missing Data +------------ +All of the models can handle missing data. For performance reasons, the default is not to do any checking for missing data. If, however, you would like for missing data to be handled internally, you can do so by using the missing keyword argument. The default is to do nothing + +.. ipython:: python + + import statsmodels.api as sm + data = sm.datasets.longley.load() + data.exog = sm.add_constant(data.exog) + # add in some missing data + missing_idx = np.array([False] * len(data.endog)) + missing_idx[[4, 10, 15]] = True + data.endog[missing_idx] = np.nan + ols_model = sm.OLS(data.endog, data.exog) + ols_fit = ols_model.fit() + print(ols_fit.params) + +This silently fails and all of the model parameters are NaN, which is probably not what you expected. If you are not sure whether or not you have missing data you can use `missing = 'raise'`. This will raise a `MissingDataError` during model instantiation if missing data is present so that you know something was wrong in your input data. + +.. ipython:: python + :okexcept: + + ols_model = sm.OLS(data.endog, data.exog, missing='raise') + +If you want statsmodels to handle the missing data by dropping the observations, use `missing = 'drop'`. + +.. ipython:: python + + ols_model = sm.OLS(data.endog, data.exog, missing='drop') + +We are considering adding a configuration framework so that you can set the option with a global setting. diff --git a/docs/source/mixed_linear.rst b/docs/source/mixed_linear.rst new file mode 100644 index 0000000..cd2bc42 --- /dev/null +++ b/docs/source/mixed_linear.rst @@ -0,0 +1,176 @@ +.. currentmodule:: statsmodels.regression.mixed_linear_model + + +.. _mixedlmmod: + +Linear Mixed Effects Models +=========================== + + +Linear Mixed Effects models are used for regression analyses involving +dependent data. Such data arise when working with longitudinal and +other study designs in which multiple observations are made on each +subject. Two specific mixed effects models are *random intercepts +models*, where all responses in a single group are additively shifted +by a value that is specific to the group, and *random slopes models*, +where the values follow a mean trajectory that is linear in observed +covariates, with both the slopes and intercept being specific to the +group. The Statsmodels MixedLM implementation allows arbitrary random +effects design matrices to be specified for the groups, so these and +other types of random effects models can all be fit. + +The Statsmodels LME framework currently supports post-estimation +inference via Wald tests and confidence intervals on the coefficients, +profile likelihood analysis, likelihood ratio testing, and AIC. Some +limitations of the current implementation are that it does not support +structure more complex on the residual errors (they are always +homoscedastic), and it does not support crossed random effects. We +hope to implement these features for the next release. + +Examples +-------- + +.. ipython:: python + + import statsmodels.api as sm + import statsmodels.formula.api as smf + + data = sm.datasets.get_rdataset("dietox", "geepack").data + + md = smf.mixedlm("Weight ~ Time", data, groups=data["Pig"]) + mdf = md.fit() + print(mdf.summary()) + +Detailed examples can be found here + +* `Mixed LM `__ + +There some notebook examples on the Wiki: +`Wiki notebooks for MixedLM `_ + + + +Technical Documentation +----------------------- + +The data are partitioned into disjoint groups. +The probability model for group :math:`i` is: + +.. math:: + + Y = X\beta + Z\gamma + \epsilon + +where + +* :math:`n_i` is the number of observations in group :math:`i` +* :math:`Y` is a :math:`n_i` dimensional response vector +* :math:`X` is a :math:`n_i * k_{fe}` dimensional matrix of fixed effects + coefficients +* :math:`\beta` is a :math:`k_{fe}`-dimensional vector of fixed effects slopes +* :math:`Z` is a :math:`n_i * k_{re}` dimensional matrix of random effects + coefficients +* :math:`\gamma` is a :math:`k_{re}`-dimensional random vector with mean 0 + and covariance matrix :math:`\Psi`; note that each group + gets its own independent realization of gamma. +* :math:`\epsilon` is a :math:`n_i` dimensional vector of i.i.d normal + errors with mean 0 and variance :math:`\sigma^2`; the :math:`\epsilon` + values are independent both within and between groups + +:math:`Y, X` and :math:`Z` must be entirely observed. +:math:`\beta, \Psi,` and :math:`\sigma^2` are estimated using ML or REML estimation, +and :math:`\gamma` and :math:`\epsilon` are random so define the probability model. + +The mean structure is :math:`E[Y|X,Z] = X*\beta`. If only the mean structure +is of interest, GEE is a good alternative to mixed models. + + +Notation: + +* :math:`cov_{re}` is the random effects covariance matrix (referred to above + as :math:`\Psi`) and :math:`scale` is the (scalar) error variance. For a single + group, the marginal covariance matrix of endog given exog is :math:`scale*I + + Z * cov_{re} * Z`, where :math:`Z` is the design matrix for the random + effects in one group. + +Notes +^^^^^ + +1. Three different parameterizations are used here in different +places. The regression slopes (usually called :math:`fe_{params}`) are +identical in all three parameterizations, but the variance parameters +differ. The parameterizations are: + +* The *natural parameterization* in which :math:`cov(endog) = scale*I + Z * + cov_{re} * Z`, as described above. This is the main parameterization + visible to the user. + +* The *profile parameterization* in which :math:`cov(endog) = I + + Z * cov_{re1} * Z`. This is the parameterization of the profile + likelihood that is maximized to produce parameter estimates. + (see Lindstrom and Bates for details). The *natural* :math:`cov_{re}` is + equal to the *profile* :math:`cov_{re1}` times scale. + +* The *square root parameterization* in which we work with the + Cholesky factor of :math:`cov_{re1}` instead of :math:`cov_{re1}` directly. + +All three parameterizations can be *packed* by concatenating :math:`fe_{params}` +together with the lower triangle of the dependence structure. Note +that when unpacking, it is important to either square or reflect the +dependence structure depending on which parameterization is being +used. + +2. The situation where the random effects covariance matrix is +singular is numerically challenging. Small changes in the covariance +parameters may lead to large changes in the likelihood and +derivatives. + +3. The optimization strategy is to optionally perform a few EM steps, +followed by optionally performing a few steepest descent steps, +followed by conjugate gradient descent using one of the scipy gradient +optimizers. The EM and steepest descent steps are used to get +adequate starting values for the conjugate gradient optimization, +which is much faster. + +References +^^^^^^^^^^ + +The primary reference for the implementation details is: + +* MJ Lindstrom, DM Bates (1988). *Newton Raphson and EM algorithms for + linear mixed effects models for repeated measures data*. Journal of + the American Statistical Association. Volume 83, Issue 404, pages 1014-1022. + +See also this more recent document: + +* http://econ.ucsb.edu/~doug/245a/Papers/Mixed%20Effects%20Implement.pdf + +All the likelihood, gradient, and Hessian calculations closely follow +Lindstrom and Bates. + +The following two documents are written more from the perspective of +users: + +* http://lme4.r-forge.r-project.org/lMMwR/lrgprt.pdf + +* http://lme4.r-forge.r-project.org/slides/2009-07-07-Rennes/3Longitudinal-4.pdf + +.. Class hierachy: TODO + + General references for this class of models are + +Module Reference +---------------- + +The model class is: + +.. autosummary:: + :toctree: generated/ + + MixedLM + +The result classe are: + +.. autosummary:: + :toctree: generated/ + + MixedLMResults diff --git a/docs/source/multivariate.rst b/docs/source/multivariate.rst new file mode 100644 index 0000000..d08d36c --- /dev/null +++ b/docs/source/multivariate.rst @@ -0,0 +1,19 @@ +.. currentmodule:: statsmodels.multivariate + +.. _multivariate: + + +Multivariate Statistics :mod:`multivariate` +=========================================== + +This section includes methods and algorithms from multivariate statistics. + + +Principal Component Analysis +---------------------------- + +.. autosummary:: + :toctree: generated/ + + pca.PCA + pca.pca diff --git a/docs/source/nonparametric.rst b/docs/source/nonparametric.rst new file mode 100644 index 0000000..5618621 --- /dev/null +++ b/docs/source/nonparametric.rst @@ -0,0 +1,113 @@ +.. currentmodule:: statsmodels.nonparametric + +.. _nonparametric: + + +Nonparametric Methods :mod:`nonparametric` +========================================== + +This section collects various methods in nonparametric statistics. This +includes kernel density estimation for univariate and multivariate data, +kernel regression and locally weighted scatterplot smoothing (lowess). + +sandbox.nonparametric contains additional functions that are work in progress +or don't have unit tests yet. We are planning to include here nonparametric +density estimators, especially based on kernel or orthogonal polynomials, +smoothers, and tools for nonparametric models and methods in other parts of +statsmodels. + + +Kernel density estimation +------------------------- + +The kernel density estimation (KDE) functionality is split between univariate +and multivariate estimation, which are implemented in quite different ways. + +Univariate estimation (as provided by `KDEUnivariate`) uses FFT transforms, +which makes it quite fast. Therefore it should be preferred for *continuous, +univariate* data if speed is important. It supports using different kernels; +bandwidth estimation is done only by a rule of thumb (Scott or Silverman). + +Multivariate estimation (as provided by `KDEMultivariate`) uses product +kernels. It supports least squares and maximum likelihood cross-validation +for bandwidth estimation, as well as estimating mixed continuous, ordered and +unordered data. The default kernels (Gaussian, Wang-Ryzin and +Aitchison-Aitken) cannot be altered at the moment however. Direct estimation +of the conditional density (:math:`P(X | Y) = P(X, Y) / P(Y)`) is supported +by `KDEMultivariateConditional`. + +`KDEMultivariate` can do univariate estimation as well, but is up to two orders +of magnitude slower than `KDEUnivariate`. + + +Kernel regression +----------------- + +Kernel regression (as provided by `KernelReg`) is based on the same product +kernel approach as `KDEMultivariate`, and therefore has the same set of +features (mixed data, cross-validated bandwidth estimation, kernels) as +described above for `KDEMultivariate`. Censored regression is provided by +`KernelCensoredReg`. + +Note that code for semi-parametric partial linear models and single index +models, based on `KernelReg`, can be found in the sandbox. + + +References +---------- + +* B.W. Silverman, "Density Estimation for Statistics and Data Analysis" +* J.S. Racine, "Nonparametric Econometrics: A Primer," Foundation and + Trends in Econometrics, Vol. 3, No. 1, pp. 1-88, 2008. +* Q. Li and J.S. Racine, "Nonparametric econometrics: theory and practice", + Princeton University Press, 2006. +* Hastie, Tibshirani and Friedman, "The Elements of Statistical Learning: + Data Mining, Inference, and Prediction", Springer, 2009. +* Racine, J., Li, Q. "Nonparametric Estimation of Distributions + with Categorical and Continuous Data." Working Paper. (2000) +* Racine, J. Li, Q. "Kernel Estimation of Multivariate Conditional + Distributions Annals of Economics and Finance 5, 211-235 (2004) +* Liu, R., Yang, L. "Kernel estimation of multivariate + cumulative distribution function." Journal of Nonparametric Statistics + (2008) +* Li, R., Ju, G. "Nonparametric Estimation of Multivariate CDF + with Categorical and Continuous Data." Working Paper +* Li, Q., Racine, J. "Cross-validated local linear nonparametric + regression" Statistica Sinica 14(2004), pp. 485-512 +* Racine, J.: "Consistent Significance Testing for Nonparametric + Regression" Journal of Business & Economics Statistics +* Racine, J., Hart, J., Li, Q., "Testing the Significance of + Categorical Predictor Variables in Nonparametric Regression + Models", 2006, Econometric Reviews 25, 523-544 + + +Module Reference +---------------- + +The public functions and classes are + +.. autosummary:: + :toctree: generated/ + + smoothers_lowess.lowess + kde.KDEUnivariate + kernel_density.KDEMultivariate + kernel_density.KDEMultivariateConditional + kernel_density.EstimatorSettings + kernel_regression.KernelReg + kernel_regression.KernelCensoredReg + +helper functions for kernel bandwidths + +.. autosummary:: + :toctree: generated/ + + bandwidths.bw_scott + bandwidths.bw_silverman + bandwidths.select_bandwidth + +There are some examples for nonlinear functions in +:mod:`statsmodels.nonparametric.dgp_examples` + +The sandbox.nonparametric contains additional insufficiently tested classes +for testing functional form and for semi-linear and single index models. diff --git a/docs/source/pitfalls.rst b/docs/source/pitfalls.rst new file mode 100644 index 0000000..c5c2549 --- /dev/null +++ b/docs/source/pitfalls.rst @@ -0,0 +1,94 @@ +Pitfalls +======== + +This page lists issues which may arise while using statsmodels. These +can be the result of data-related or statistical problems, software design, +"non-standard" use of models, or edge cases. + +statsmodels provides several warnings and helper functions for diagnostic +checking (see this `blog article +`_ +for an example of misspecification checks in linear regression). The coverage +is of course not comprehensive, but more warnings and diagnostic functions will +be added over time. + +While the underlying statistical problems are the same for all statistical +packages, software implementations differ in the way extreme or corner cases +are handled. Please report corner cases for which the models might not work, so +we can treat them appropriately. + +Repeated calls to fit with different parameters +----------------------------------------------- + +Result instances often need to access attributes from the corresponding model +instance. Fitting a model multiple times with different arguments can change +model attributes. This means that the result instance may no longer point to +the correct model attributes after the model has been re-fit. + +It is therefore best practice to create separate model instances when we want +to fit a model using different fit function arguments. + +For example, this works without problem because we are not keeping the results +instance for further use :: + + mod = AR(endog) + aic = [] + for lag in range(1,11): + res = mod.fit(maxlag=lag) + aic.append(res.aic) + + +However, when we want to hold on to two different estimation results, then it +is recommended to create two separate model instances. :: + + mod1 = RLM(endog, exog) + res1 = mod1.fit(scale_est='mad') + mod2 = RLM(endog, exog) + res2 = mod2.fit(scale_est='stand_mad') + + +Unidentified Parameters +----------------------- + +Rank deficient exog, perfect multicollinearity +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Models based on linear models, GLS, RLM, GLM and similar, use a generalized +inverse. This means that: + ++ Rank deficient matrices will not raise an error ++ Cases of almost perfect multicollinearity or ill-conditioned design matrices might produce numerically unstable results. Users need to manually check the rank or condition number of the matrix if this is not the desired behavior + +Note: Statsmodels currently fails on the NIST benchmark case for Filip if the +data is not rescaled, see `this blog `_ + +Incomplete convergence in maximum likelihood estimation +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +In some cases, the maximum likelihood estimator might not exist, parameters +might be infinite or not unique (e.g. (quasi-)separation in models with binary +endogenous variable). Under the default settings, statsmodels will print +a warning if the optimization algorithm stops without reaching convergence. +However, it is important to know that the convergence criteria may sometimes +falsely indicate convergence (e.g. if the value of the objective function +converged but not the parameters). In general, a user needs to verify +convergence. + +For binary Logit and Probit models, statsmodels raises an exception if perfect +prediction is detected. There is, however, no check for quasi-perfect +prediction. + +Other Problems +-------------- + +Insufficient variation in the data +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +It is possible that there is insufficient variation in the data for small +datasets or for data with small groups in categorical variables. In these +cases, the results might not be identified or some hidden problems might occur. + +The only currently known case is a perfect fit in robust linear model estimation. +For RLM, if residuals are equal to zero, then it does not cause an exception, +but having this perfect fit can produce NaNs in some results (scale=0 and 0/0 +division) (issue #55). diff --git a/docs/source/plots/arma_predict_plot.py b/docs/source/plots/arma_predict_plot.py new file mode 100644 index 0000000..3c62ba3 --- /dev/null +++ b/docs/source/plots/arma_predict_plot.py @@ -0,0 +1,11 @@ +import statsmodels.api as sm +import matplotlib.pyplot as plt +import pandas as pd + +dta = sm.datasets.sunspots.load_pandas().data[['SUNACTIVITY']] +dta.index = pd.DatetimeIndex(start='1700', end='2009', freq='A') +res = sm.tsa.ARMA(dta, (3, 0)).fit(disp=0) +fig, ax = plt.subplots() +ax = dta.ix['1950':].plot(ax=ax) +res.plot_predict('1990', '2012', dynamic=True, ax=ax, + plot_insample=False) diff --git a/docs/source/plots/bkf_plot.py b/docs/source/plots/bkf_plot.py new file mode 100644 index 0000000..944afda --- /dev/null +++ b/docs/source/plots/bkf_plot.py @@ -0,0 +1,9 @@ +import statsmodels.api as sm + +from load_macrodata import dta + +cycles = sm.tsa.filters.bkfilter(dta[['realinv']], 6, 24, 12) + +import matplotlib.pyplot as plt +fig, ax = plt.subplots() +cycles.plot(ax=ax, style=['r--', 'b-']) diff --git a/docs/source/plots/cff_plot.py b/docs/source/plots/cff_plot.py new file mode 100644 index 0000000..313b7e1 --- /dev/null +++ b/docs/source/plots/cff_plot.py @@ -0,0 +1,9 @@ +import statsmodels.api as sm + +from load_macrodata import dta + +cf_cycles, cf_trend = sm.tsa.filters.cffilter(dta[["infl", "unemp"]]) + +import matplotlib.pyplot as plt +fig, ax = plt.subplots() +cf_cycles.plot(ax=ax, style=['r--', 'b-']) diff --git a/docs/source/plots/graphics_boxplot_beanplot.py b/docs/source/plots/graphics_boxplot_beanplot.py new file mode 100644 index 0000000..efcd82c --- /dev/null +++ b/docs/source/plots/graphics_boxplot_beanplot.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +""" + +Created on Fri May 04 00:22:40 2012 + +Author: Ralf Gommers + +""" + +import numpy as np +import matplotlib.pyplot as plt +import statsmodels.api as sm +data = sm.datasets.anes96.load_pandas() +party_ID = np.arange(7) +labels = ["Strong Democrat", "Weak Democrat", "Independent-Democrat", + "Independent-Indpendent", "Independent-Republican", + "Weak Republican", "Strong Republican"] + +plt.rcParams['figure.subplot.bottom'] = 0.23 # keep labels visible +age = [data.exog['age'][data.endog == id] for id in party_ID] +fig = plt.figure() +ax = fig.add_subplot(111) +sm.graphics.beanplot(age, ax=ax, labels=labels, + plot_opts={'cutoff_val':5, 'cutoff_type':'abs', + 'label_fontsize':'small', + 'label_rotation':30}) +ax.set_xlabel("Party identification of respondent.") +ax.set_ylabel("Age") + +#plt.show() diff --git a/docs/source/plots/graphics_boxplot_violinplot.py b/docs/source/plots/graphics_boxplot_violinplot.py new file mode 100644 index 0000000..88a3101 --- /dev/null +++ b/docs/source/plots/graphics_boxplot_violinplot.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +""" + +Created on Fri May 04 00:11:32 2012 + +Author: Ralf Gommers + +""" +import numpy as np +import matplotlib.pyplot as plt +import statsmodels.api as sm + +data = sm.datasets.anes96.load_pandas() +party_ID = np.arange(7) +labels = ["Strong Democrat", "Weak Democrat", "Independent-Democrat", + "Independent-Indpendent", "Independent-Republican", + "Weak Republican", "Strong Republican"] +plt.rcParams['figure.subplot.bottom'] = 0.23 # keep labels visible +age = [data.exog['age'][data.endog == id] for id in party_ID] +fig = plt.figure() +ax = fig.add_subplot(111) +sm.graphics.violinplot(age, ax=ax, labels=labels, + plot_opts={'cutoff_val':5, 'cutoff_type':'abs', + 'label_fontsize':'small', + 'label_rotation':30}) +ax.set_xlabel("Party identification of respondent.") +ax.set_ylabel("Age") + +#plt.show() diff --git a/docs/source/plots/graphics_functional_fboxplot.py b/docs/source/plots/graphics_functional_fboxplot.py new file mode 100644 index 0000000..4a5a795 --- /dev/null +++ b/docs/source/plots/graphics_functional_fboxplot.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +""" + +Created on Fri May 04 11:10:51 2012 + +Author: Ralf Gommers + +""" + +#Load the El Nino dataset. Consists of 60 years worth of Pacific Ocean sea +#surface temperature data. + +import numpy as np +import matplotlib.pyplot as plt +import statsmodels.api as sm +data = sm.datasets.elnino.load() + +#Create a functional boxplot. We see that the years 1982-83 and 1997-98 are +#outliers; these are the years where El Nino (a climate pattern +#characterized by warming up of the sea surface and higher air pressures) +#occurred with unusual intensity. + +fig = plt.figure() +ax = fig.add_subplot(111) +res = sm.graphics.fboxplot(data.raw_data[:, 1:], wfactor=2.58, + labels=data.raw_data[:, 0].astype(int), + ax=ax) + +ax.set_xlabel("Month of the year") +ax.set_ylabel("Sea surface temperature (C)") +ax.set_xticks(np.arange(13, step=3) - 1) +ax.set_xticklabels(["", "Mar", "Jun", "Sep", "Dec"]) +ax.set_xlim([-0.2, 11.2]) + +#plt.show() diff --git a/docs/source/plots/graphics_functional_rainbowplot.py b/docs/source/plots/graphics_functional_rainbowplot.py new file mode 100644 index 0000000..8d6c0cc --- /dev/null +++ b/docs/source/plots/graphics_functional_rainbowplot.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +""" + +Created on Fri May 04 11:08:56 2012 + +Author: Ralf Gommers + +""" + +#Load the El Nino dataset. Consists of 60 years worth of Pacific Ocean sea +#surface temperature data. + +import numpy as np +import matplotlib.pyplot as plt +import statsmodels.api as sm +data = sm.datasets.elnino.load() + +#Create a rainbow plot: + +fig = plt.figure() +ax = fig.add_subplot(111) +res = sm.graphics.rainbowplot(data.raw_data[:, 1:], ax=ax) + +ax.set_xlabel("Month of the year") +ax.set_ylabel("Sea surface temperature (C)") +ax.set_xticks(np.arange(13, step=3) - 1) +ax.set_xticklabels(["", "Mar", "Jun", "Sep", "Dec"]) +ax.set_xlim([-0.2, 11.2]) + +#plt.show() diff --git a/docs/source/plots/graphics_gofplots_qqplot.py b/docs/source/plots/graphics_gofplots_qqplot.py new file mode 100644 index 0000000..ae0cd3f --- /dev/null +++ b/docs/source/plots/graphics_gofplots_qqplot.py @@ -0,0 +1,68 @@ +# -*- coding: utf-8 -*- +""" +Created on Sun May 06 05:32:15 2012 + +Author: Josef Perktold +editted by: Paul Hobson (2012-08-19) +""" +from scipy import stats +from matplotlib import pyplot as plt +import statsmodels.api as sm + +#example from docstring +data = sm.datasets.longley.load() +data.exog = sm.add_constant(data.exog, prepend=True) +mod_fit = sm.OLS(data.endog, data.exog).fit() +res = mod_fit.resid + +left = -1.8 #x coordinate for text insert + +fig = plt.figure() + +ax = fig.add_subplot(2, 2, 1) +sm.graphics.qqplot(res, ax=ax) +top = ax.get_ylim()[1] * 0.75 +txt = ax.text(left, top, 'no keywords', verticalalignment='top') +txt.set_bbox(dict(facecolor='k', alpha=0.1)) + +ax = fig.add_subplot(2, 2, 2) +sm.graphics.qqplot(res, line='s', ax=ax) +top = ax.get_ylim()[1] * 0.75 +txt = ax.text(left, top, "line='s'", verticalalignment='top') +txt.set_bbox(dict(facecolor='k', alpha=0.1)) + +ax = fig.add_subplot(2, 2, 3) +sm.graphics.qqplot(res, line='45', fit=True, ax=ax) +ax.set_xlim(-2, 2) +top = ax.get_ylim()[1] * 0.75 +txt = ax.text(left, top, "line='45', \nfit=True", verticalalignment='top') +txt.set_bbox(dict(facecolor='k', alpha=0.1)) + +ax = fig.add_subplot(2, 2, 4) +sm.graphics.qqplot(res, dist=stats.t, line='45', fit=True, ax=ax) +ax.set_xlim(-2, 2) +top = ax.get_ylim()[1] * 0.75 +txt = ax.text(left, top, "dist=stats.t, \nline='45', \nfit=True", + verticalalignment='top') +txt.set_bbox(dict(facecolor='k', alpha=0.1)) + +fig.tight_layout() + +plt.gcf() + + +# example with the new ProbPlot class +import numpy as np +x = np.random.normal(loc=8.25, scale=3.5, size=37) +y = np.random.normal(loc=8.00, scale=3.25, size=37) +pp_x = sm.ProbPlot(x, fit=True) +pp_y = sm.ProbPlot(y, fit=True) + +# probability of exceedance +fig2 = pp_x.probplot(exceed=True) + +# compare x quantiles to y quantiles +fig3 = pp_x.qqplot(other=pp_y, line='45') + +# same as above with probabilities/percentiles +fig4 = pp_x.ppplot(other=pp_y, line='45') diff --git a/docs/source/plots/graphics_month_plot.py b/docs/source/plots/graphics_month_plot.py new file mode 100644 index 0000000..52dde92 --- /dev/null +++ b/docs/source/plots/graphics_month_plot.py @@ -0,0 +1,11 @@ +import statsmodels.api as sm +import pandas as pd + +dta = sm.datasets.elnino.load_pandas().data +dta['YEAR'] = dta.YEAR.astype(int).astype(str) +dta = dta.set_index('YEAR').T.unstack() +dates = pd.to_datetime(list(map(lambda x : '-'.join(x) + '-1', dta.index.values))) + +dta.index = pd.DatetimeIndex(list(dates), freq='M') +dta.name = 'temp' +fig = sm.graphics.tsa.month_plot(dta) diff --git a/docs/source/plots/graphics_plot_fit_ex.py b/docs/source/plots/graphics_plot_fit_ex.py new file mode 100644 index 0000000..8b24042 --- /dev/null +++ b/docs/source/plots/graphics_plot_fit_ex.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +""" + +Created on Monday April 1st 2013 + +Author: Padarn Wilson + +""" + +# Load the Statewide Crime data set and perform linear regression with +# 'poverty' and 'hs_grad' as variables and 'muder' as the response + + +import statsmodels.api as sm +import matplotlib.pyplot as plt +import numpy as np + +data = sm.datasets.statecrime.load_pandas().data +murder = data['murder'] +X = data[['poverty', 'hs_grad']] +X["constant"] = 1 + +y = murder +model = sm.OLS(y, X) +results = model.fit() + +# Create a plot just for the variable 'Poverty': + +fig, ax = plt.subplots() +fig = sm.graphics.plot_fit(results, 0, ax=ax) +ax.set_ylabel("Murder Rate") +ax.set_xlabel("Poverty Level") +ax.set_title("Linear Regression") + +plt.show() diff --git a/docs/source/plots/hpf_plot.py b/docs/source/plots/hpf_plot.py new file mode 100644 index 0000000..3a819be --- /dev/null +++ b/docs/source/plots/hpf_plot.py @@ -0,0 +1,13 @@ +import statsmodels.api as sm +import pandas as pd +from load_macrodata import dta + +cycle, trend = sm.tsa.filters.hpfilter(dta.realgdp, 1600) +gdp_decomp = dta[['realgdp']] +gdp_decomp["cycle"] = cycle +gdp_decomp["trend"] = trend + +import matplotlib.pyplot as plt +fig, ax = plt.subplots() +gdp_decomp[["realgdp", "trend"]]["2000-03-31":].plot(ax=ax, + fontsize=16) diff --git a/docs/source/plots/load_macrodata.py b/docs/source/plots/load_macrodata.py new file mode 100644 index 0000000..624509f --- /dev/null +++ b/docs/source/plots/load_macrodata.py @@ -0,0 +1,6 @@ +import statsmodels.api as sm +import pandas as pd +dta = sm.datasets.macrodata.load_pandas().data +dates = sm.tsa.datetools.dates_from_range('1959Q1', '2009Q3') +index = pd.DatetimeIndex(dates) +dta.set_index(index, inplace=True) diff --git a/docs/source/plots/var_plot_acorr.py b/docs/source/plots/var_plot_acorr.py new file mode 100644 index 0000000..2195941 --- /dev/null +++ b/docs/source/plots/var_plot_acorr.py @@ -0,0 +1,2 @@ +from var_plots import plot_acorr +plot_acorr() diff --git a/docs/source/plots/var_plot_fevd.py b/docs/source/plots/var_plot_fevd.py new file mode 100644 index 0000000..ff71b5a --- /dev/null +++ b/docs/source/plots/var_plot_fevd.py @@ -0,0 +1,2 @@ +from var_plots import plot_fevd +plot_fevd() diff --git a/docs/source/plots/var_plot_forecast.py b/docs/source/plots/var_plot_forecast.py new file mode 100644 index 0000000..188553f --- /dev/null +++ b/docs/source/plots/var_plot_forecast.py @@ -0,0 +1,2 @@ +from var_plots import plot_forecast +plot_forecast() diff --git a/docs/source/plots/var_plot_input.py b/docs/source/plots/var_plot_input.py new file mode 100644 index 0000000..889cddf --- /dev/null +++ b/docs/source/plots/var_plot_input.py @@ -0,0 +1,2 @@ +from var_plots import plot_input +plot_input() diff --git a/docs/source/plots/var_plot_irf.py b/docs/source/plots/var_plot_irf.py new file mode 100644 index 0000000..0537a22 --- /dev/null +++ b/docs/source/plots/var_plot_irf.py @@ -0,0 +1,2 @@ +from var_plots import plot_irf +plot_irf() diff --git a/docs/source/plots/var_plot_irf_cum.py b/docs/source/plots/var_plot_irf_cum.py new file mode 100644 index 0000000..ec79a48 --- /dev/null +++ b/docs/source/plots/var_plot_irf_cum.py @@ -0,0 +1,2 @@ +from var_plots import plot_irf_cum +plot_irf_cum() diff --git a/docs/source/plots/var_plots.py b/docs/source/plots/var_plots.py new file mode 100644 index 0000000..db77a6b --- /dev/null +++ b/docs/source/plots/var_plots.py @@ -0,0 +1,40 @@ +import numpy as np + +from statsmodels.tsa.api import VAR +from statsmodels.api import datasets as ds +from statsmodels.tsa.base.datetools import dates_from_str + + +import pandas +mdata = ds.macrodata.load_pandas().data + +# prepare the dates index +dates = mdata[['year', 'quarter']].astype(int).astype('S4') +quarterly = dates["year"] + "Q" + dates["quarter"] +quarterly = dates_from_str(quarterly) + +mdata = mdata[['realgdp','realcons','realinv']] +mdata.index = pandas.DatetimeIndex(quarterly) +data = np.log(mdata).diff().dropna() + +model = VAR(data) +est = model.fit(maxlags=2) + +def plot_input(): + est.plot() + +def plot_acorr(): + est.plot_acorr() + +def plot_irf(): + est.irf().plot() + +def plot_irf_cum(): + irf = est.irf() + irf.plot_cum_effects() + +def plot_forecast(): + est.plot_forecast(10) + +def plot_fevd(): + est.fevd(20).plot() diff --git a/docs/source/regression.rst b/docs/source/regression.rst new file mode 100644 index 0000000..9187c69 --- /dev/null +++ b/docs/source/regression.rst @@ -0,0 +1,183 @@ +.. currentmodule:: statsmodels.regression.linear_model + + +.. _regression: + +Linear Regression +================= + +Linear models with independently and identically distributed errors, and for +errors with heteroscedasticity or autocorrelation. This module allows +estimation by ordinary least squares (OLS), weighted least squares (WLS), +generalized least squares (GLS), and feasible generalized least squares with +autocorrelated AR(p) errors. + +See `Module Reference`_ for commands and arguments. + +Examples +-------- + +.. ipython:: python + + # Load modules and data + import numpy as np + import statsmodels.api as sm + spector_data = sm.datasets.spector.load() + spector_data.exog = sm.add_constant(spector_data.exog, prepend=False) + + # Fit and summarize OLS model + mod = sm.OLS(spector_data.endog, spector_data.exog) + res = mod.fit() + print(res.summary()) + +Detailed examples can be found here: + + +* `OLS `__ +* `WLS `__ +* `GLS `__ +* `Recursive LS `__ + +Technical Documentation +----------------------- + +The statistical model is assumed to be + + :math:`Y = X\beta + \mu`, where :math:`\mu\sim N\left(0,\Sigma\right).` + +Depending on the properties of :math:`\Sigma`, we have currently four classes available: + +* GLS : generalized least squares for arbitrary covariance :math:`\Sigma` +* OLS : ordinary least squares for i.i.d. errors :math:`\Sigma=\textbf{I}` +* WLS : weighted least squares for heteroskedastic errors :math:`\text{diag}\left (\Sigma\right)` +* GLSAR : feasible generalized least squares with autocorrelated AR(p) errors + :math:`\Sigma=\Sigma\left(\rho\right)` + +All regression models define the same methods and follow the same structure, +and can be used in a similar fashion. Some of them contain additional model +specific methods and attributes. + +GLS is the superclass of the other regression classes except for RecursiveLS. + +.. Class hierachy: TODO + +.. yule_walker is not a full model class, but a function that estimate the +.. parameters of a univariate autoregressive process, AR(p). It is used in GLSAR, +.. but it can also be used independently of any models. yule_walker only +.. calculates the estimates and the standard deviation of the lag parameters but +.. not the additional regression statistics. We hope to include yule-walker in +.. future in a separate univariate time series class. A similar result can be +.. obtained with GLSAR if only the constant is included as regressors. In this +.. case the parameter estimates of the lag estimates are not reported, however +.. additional statistics, for example aic, become available. + +References +^^^^^^^^^^ + +General reference for regression models: + +* D.C. Montgomery and E.A. Peck. "Introduction to Linear Regression Analysis." 2nd. Ed., Wiley, 1992. + +Econometrics references for regression models: + +* R.Davidson and J.G. MacKinnon. "Econometric Theory and Methods," Oxford, 2004. +* W.Green. "Econometric Analysis," 5th ed., Pearson, 2003. + +.. toctree:: +.. :maxdepth: 1 +.. +.. regression_techn1 + +Attributes +^^^^^^^^^^ + +The following is more verbose description of the attributes which is mostly +common to all regression classes + +pinv_wexog : array + The `p` x `n` Moore-Penrose pseudoinverse of the whitened design matrix. + It is approximately equal to + :math:`\left(X^{T}\Sigma^{-1}X\right)^{-1}X^{T}\Psi`, where + :math:`\Psi` is defined such that :math:`\Psi\Psi^{T}=\Sigma^{-1}`. +cholsimgainv : array + The `n` x `n` upper triangular matrix :math:`\Psi^{T}` that satisfies + :math:`\Psi\Psi^{T}=\Sigma^{-1}`. +df_model : float + The model degrees of freedom. This is equal to `p` - 1, where `p` is the + number of regressors. Note that the intercept is not counted as using a + degree of freedom here. +df_resid : float + The residual degrees of freedom. This is equal `n - p` where `n` is the + number of observations and `p` is the number of parameters. Note that the + intercept is counted as using a degree of freedom here. +llf : float + The value of the likelihood function of the fitted model. +nobs : float + The number of observations `n` +normalized_cov_params : array + A `p` x `p` array equal to :math:`(X^{T}\Sigma^{-1}X)^{-1}`. +sigma : array + The `n` x `n` covariance matrix of the error terms: + :math:`\mu\sim N\left(0,\Sigma\right)`. +wexog : array + The whitened design matrix :math:`\Psi^{T}X`. +wendog : array + The whitened response variable :math:`\Psi^{T}Y`. + +Module Reference +---------------- + +Model Classes +^^^^^^^^^^^^^ + +.. autosummary:: + :toctree: generated/ + + OLS + GLS + WLS + GLSAR + yule_walker + +.. currentmodule:: statsmodels.regression.quantile_regression + +.. autosummary:: + :toctree: generated/ + + QuantReg + +.. currentmodule:: statsmodels.regression.recursive_ls + +.. autosummary:: + :toctree: generated/ + + RecursiveLS + +Results Classes +^^^^^^^^^^^^^^^ + +Fitting a linear regression model returns a results class. OLS has a +specific results class with some additional methods compared to the +results class of the other linear models. + +.. currentmodule:: statsmodels.regression.linear_model + +.. autosummary:: + :toctree: generated/ + + RegressionResults + OLSResults + +.. currentmodule:: statsmodels.regression.quantile_regression + +.. autosummary:: + :toctree: generated/ + + QuantRegResults + +.. currentmodule:: statsmodels.regression.recursive_ls + +.. autosummary:: + :toctree: generated/ + + RecursiveLSResults diff --git a/docs/source/regression_techn1.rst.TXT b/docs/source/regression_techn1.rst.TXT new file mode 100644 index 0000000..fc215a5 --- /dev/null +++ b/docs/source/regression_techn1.rst.TXT @@ -0,0 +1,12 @@ +.. currentmodule:: statsmodels.regression + + +.. _regression-techn1: + +Technical Documentation +======================= + +Introduction +------------ + +Just a placeholder diff --git a/docs/source/release/github-stats-0.5.rst b/docs/source/release/github-stats-0.5.rst new file mode 100644 index 0000000..d3b0f36 --- /dev/null +++ b/docs/source/release/github-stats-0.5.rst @@ -0,0 +1,399 @@ +.. _issues_list_05: + +Issues closed in the 0.5.0 development cycle +============================================ + +Issued closed in 0.5.0 +----------------------- + +GitHub stats for release 0.5.0 (07/02/2012/ - 08/14/2013/). + +We closed a total of 380 issues, 172 pull requests and 208 regular issues. This is the full list (generated with the script :file:`tools/github_stats.py`): + +This list is automatically generated, and may be incomplete: + +Pull Requests (172): + +* :ghpull:`1015`: DOC: Bump version. Remove done tasks. +* :ghpull:`1010`: DOC/RLS: Update release notes workflow. Help Needed! +* :ghpull:`1014`: DOC: nbgenerate does not like the comment at end of line. +* :ghpull:`1012`: DOC: Add link to notebook and crosslink ref. Closes #924. +* :ghpull:`997`: misc, tests, diagnostic +* :ghpull:`1009`: MAINT: Add .mailmap file. +* :ghpull:`817`: Add 3 new unit tests for arima_process +* :ghpull:`1001`: BUG include_package_data for install closes #907 +* :ghpull:`1005`: GITHUB: Contributing guidlines +* :ghpull:`1007`: Cleanup docs for release +* :ghpull:`1003`: BUG: Workaround for bug in sphinx 1.1.3. See #1002. +* :ghpull:`1004`: DOC: Update maintainer notes with branching instructions. +* :ghpull:`1000`: BUG: Support pandas 0.8.0. +* :ghpull:`996`: BUG: Handle combo of pandas 0.8.0 and dateutils 1.5.0 +* :ghpull:`995`: ENH: Print dateutil version. +* :ghpull:`994`: ENH: Fail gracefully for version not found. +* :ghpull:`993`: More conservative error catching in TimeSeriesModel +* :ghpull:`992`: Misc fixes 12: adjustments to unit test +* :ghpull:`985`: MAINT: Print versions script. +* :ghpull:`986`: ENH: Prefer to_offset to get_offset. Closes #964. +* :ghpull:`984`: COMPAT: Pandas 0.8.1 compatibility. Closes #983. +* :ghpull:`982`: Misc fixes 11 +* :ghpull:`978`: TST: generic mle pareto disable bsejac tests with estimated loc +* :ghpull:`977`: BUG python 3.3 fix for numpy str TypeError, see #633 +* :ghpull:`975`: Misc fixes 10 numdiff +* :ghpull:`970`: BUG: array too long, raises exception with newer numpy closes #967 +* :ghpull:`965`: Vincent summary2 rebased +* :ghpull:`933`: Update and improve GenericlikelihoodModel and miscmodels +* :ghpull:`950`: BUG/REF mcnemar fix exact pvalue, allow table as input +* :ghpull:`951`: Pylint emplike formula genmod +* :ghpull:`956`: Fix a docstring in KDEMultivariateConditional. +* :ghpull:`949`: BUG fix lowess sort when nans closes #946 +* :ghpull:`932`: ENH: support basinhopping solver in LikelihoodModel.fit() +* :ghpull:`927`: DOC: clearer minimal example +* :ghpull:`919`: Ols summary crash +* :ghpull:`918`: Fixes10 emplike lowess +* :ghpull:`909`: Bugs in GLM pvalues, more tests, pylint +* :ghpull:`906`: ENH: No fmax with Windows SDK so define inline. +* :ghpull:`905`: MAINT more fixes +* :ghpull:`898`: Misc fixes 7 +* :ghpull:`896`: Quantreg rebase2 +* :ghpull:`895`: Fixes issue #832 +* :ghpull:`893`: ENH: Remove unneeded restriction on low. Closes #867. +* :ghpull:`894`: MAINT: Remove broken function. Keep deprecation. Closes #781. +* :ghpull:`856`: Carljv improved lowess rebased2 +* :ghpull:`884`: Pyflakes cleanup +* :ghpull:`887`: BUG: Fix kde caching +* :ghpull:`883`: Fixed pyflakes issue in discrete module +* :ghpull:`882`: Update predstd.py +* :ghpull:`871`: Update of sandbox doc +* :ghpull:`631`: WIP: Correlation positive semi definite +* :ghpull:`857`: BLD: apt get dependencies from Neurodebian, whitespace cleanup +* :ghpull:`855`: AnaMP issue 783 mixture rvs tests rebased +* :ghpull:`854`: Enrico multinear rebased +* :ghpull:`849`: Tyler tukeyhsd rebased +* :ghpull:`848`: BLD TravisCI use python-dateutil package +* :ghpull:`784`: Misc07 cleanup multipletesting and proportions +* :ghpull:`841`: ENH: Add load function to main API. Closes #840. +* :ghpull:`820`: Ensure that tuples are not considered as data, not as data containers +* :ghpull:`822`: DOC: Update for Cython changes. +* :ghpull:`765`: Fix build issues +* :ghpull:`800`: Automatically generate output from notebooks +* :ghpull:`802`: BUG: Use two- not one-sided t-test in t_test. Closes #740. +* :ghpull:`806`: ENH: Import formula.api in statsmodels.api namespace. +* :ghpull:`803`: ENH: Fix arima error message for bad start_params +* :ghpull:`801`: DOC: Fix ANOVA section titles +* :ghpull:`795`: Negative Binomial Rebased +* :ghpull:`787`: Origintests +* :ghpull:`794`: ENH: Allow pandas-in/pandas-out in tsa.filters +* :ghpull:`791`: Github stats for release notes +* :ghpull:`779`: added np.asarray call to durbin_watson in stattools +* :ghpull:`772`: Anova docs +* :ghpull:`776`: BUG: Fix dates_from_range with length. Closes #775. +* :ghpull:`774`: BUG: Attach prediction start date in AR. Closes #773. +* :ghpull:`767`: MAINT: Remove use of deprecated from examples and docs. +* :ghpull:`762`: ENH: Add new residuals to wrapper +* :ghpull:`754`: Fix arima predict +* :ghpull:`760`: ENH: Adjust for k_trend in information criteria. Closes #324. +* :ghpull:`761`: ENH: Fixes and tests sign_test. Closes #642. +* :ghpull:`759`: Fix 236 +* :ghpull:`758`: DOC: Update VAR docs. Closes #537. +* :ghpull:`752`: Discrete cleanup +* :ghpull:`750`: VAR with 1d array +* :ghpull:`748`: Remove reference to new_t_test and new_f_test. +* :ghpull:`739`: DOC: Remove outdated note in docstring +* :ghpull:`732`: BLD: Check for patsy dependency at build time + docs +* :ghpull:`731`: Handle wrapped +* :ghpull:`730`: Fix opt fulloutput +* :ghpull:`729`: Get rid of warnings in docs build +* :ghpull:`698`: update url for hsb2 dataset +* :ghpull:`727`: DOC: Fix indent and add missing params to linear models. Closes #709. +* :ghpull:`726`: CLN: Remove unused method. Closes #694 +* :ghpull:`725`: BUG: Should call anova_single. Closes #702. +* :ghpull:`723`: Rootfinding for Power +* :ghpull:`722`: Handle pandas.Series with names in make_lags +* :ghpull:`714`: Fix 712 +* :ghpull:`668`: Allow for any pandas frequency to be used in TimeSeriesModel. +* :ghpull:`711`: Misc06 - bug fixes +* :ghpull:`708`: BUG: Fix one regressor case for conf_int. Closes #706. +* :ghpull:`700`: Bugs rebased +* :ghpull:`680`: BUG: Swap arguments in fftconvolve for scipy >= 0.12.0 +* :ghpull:`640`: Misc fixes 05 +* :ghpull:`663`: a typo in runs.py doc string for mcnemar test +* :ghpull:`652`: WIP: fixing pyflakes / pep8, trying to improve readability +* :ghpull:`619`: DOC: intro to formulas +* :ghpull:`648`: BF: Make RLM stick to Huber's description +* :ghpull:`649`: Bug Fix +* :ghpull:`637`: Pyflakes cleanup +* :ghpull:`634`: VAR DOC typo +* :ghpull:`623`: Slowtests +* :ghpull:`621`: MAINT: in setup.py, only catch ImportError for pandas. +* :ghpull:`590`: Cleanup test output +* :ghpull:`591`: Interrater agreement and reliability measures +* :ghpull:`618`: Docs fix the main warnings and errors during sphinx build +* :ghpull:`610`: nonparametric examples and some fixes +* :ghpull:`578`: Fix 577 +* :ghpull:`575`: MNT: Remove deprecated scikits namespace +* :ghpull:`499`: WIP: Handle constant +* :ghpull:`567`: Remove deprecated +* :ghpull:`571`: Dataset docs +* :ghpull:`561`: Grab rdatasets +* :ghpull:`570`: DOC: Fixed links to Rdatasets +* :ghpull:`524`: DOC: Clean up discrete model documentation. +* :ghpull:`506`: ENH: Re-use effects if model fit with QR +* :ghpull:`556`: WIP: L1 doc fix +* :ghpull:`564`: TST: Use native integer to avoid issues in dtype asserts +* :ghpull:`543`: Travis CI using M.Brett nipy hack +* :ghpull:`558`: Plot cleanup +* :ghpull:`541`: Replace pandas DataMatrix with DataFrame +* :ghpull:`534`: Stata test fixes +* :ghpull:`532`: Compat 323 +* :ghpull:`531`: DOC: Add ECDF to distributions docs +* :ghpull:`526`: ENH: Add class to write Stata binary dta files +* :ghpull:`521`: DOC: Add abline plot to docs +* :ghpull:`518`: Small fixes: interaction_plot +* :ghpull:`508`: ENH: Avoid taking cholesky decomposition of diagonal matrix +* :ghpull:`509`: DOC: Add ARIMA to docs +* :ghpull:`510`: DOC: realdpi is disposable personal income. Closes #394. +* :ghpull:`507`: ENH: Protect numdifftools import. Closes #45 +* :ghpull:`504`: Fix weights +* :ghpull:`498`: DOC: Add patys requirement to install docs +* :ghpull:`491`: Make _data a public attribute. +* :ghpull:`494`: DOC: Fix pandas links +* :ghpull:`492`: added intersphinx for pandas +* :ghpull:`422`: Handle missing data +* :ghpull:`485`: ENH: Improve error message for pandas objects without dates in index +* :ghpull:`428`: Remove other data +* :ghpull:`483`: Arima predict bug +* :ghpull:`482`: TST: Do array-array comparison when using numpy.testing +* :ghpull:`471`: Formula rename df -> data +* :ghpull:`473`: Vincent docs tweak rebased +* :ghpull:`468`: Docs 050 +* :ghpull:`462`: El aft rebased +* :ghpull:`461`: TST: numpy 1.5.1 compatibility +* :ghpull:`460`: Emplike desc reg rebase +* :ghpull:`410`: Discrete model marginal effects +* :ghpull:`417`: Numdiff cleanup +* :ghpull:`398`: Improved plot_corr and plot_corr_grid functions. +* :ghpull:`401`: BUG: Finish refactoring margeff for dummy. Closes #399. +* :ghpull:`400`: MAINT: remove lowess.py, which was kept in 0.4.x for backwards compatibi... +* :ghpull:`371`: BF+TEST: fixes, checks and tests for isestimable +* :ghpull:`351`: ENH: Copy diagonal before write for upcoming numpy changes +* :ghpull:`384`: REF: Move mixture_rvs out of sandbox. +* :ghpull:`368`: ENH: Add polished version of acf/pacf plots with confidence intervals +* :ghpull:`378`: Infer freq +* :ghpull:`374`: ENH: Add Fair's extramarital affair dataset. From tobit-model branch. +* :ghpull:`358`: ENH: Add method to OLSResults for outlier detection +* :ghpull:`369`: ENH: allow predict to pass through patsy for transforms +* :ghpull:`352`: Formula integration rebased +* :ghpull:`360`: REF: Deprecate order in fit and move to ARMA init +* :ghpull:`366`: Version fixes +* :ghpull:`359`: DOC: Fix sphinx warnings + +Issues (208): + +* :ghissue:`1036`: Series no longer inherits from ndarray +* :ghissue:`1038`: DataFrame with integer names not handled in ARIMA +* :ghissue:`1028`: Test fail with windows and Anaconda - Low priority +* :ghissue:`676`: acorr_breush_godfrey undefined nlags +* :ghissue:`922`: lowess returns inconsistent with option +* :ghissue:`425`: no bse in robust with norm=TrimmedMean +* :ghissue:`1025`: add_constant incorrectly detects constant column +* :ghissue:`533`: py3 compatibility ``pandas.read_csv(urlopen(...))`` +* :ghissue:`662`: doc: install instruction: explicit about removing scikits.statsmodels +* :ghissue:`910`: test failure Ubuntu TestARMLEConstant.test_dynamic_predict +* :ghissue:`80`: t_model: f_test, t_test don't work +* :ghissue:`432`: GenericLikelihoodModel change default for score and hessian +* :ghissue:`454`: BUG/ENH: HuberScale instance is not used, allow user defined scale estimator +* :ghissue:`98`: check connection or connect summary to variable names in wrappers +* :ghissue:`418`: BUG: MNLogit loglikeobs, jac +* :ghissue:`1017`: nosetests warnings +* :ghissue:`924`: DOCS link in notebooks to notebook for download +* :ghissue:`1011`: power ttest endless loop possible +* :ghissue:`907`: BLD data_files for stats.libqsturng +* :ghissue:`328`: consider moving example scripts into IPython notebooks +* :ghissue:`1002`: Docs won't build with Sphinx 1.1.3 +* :ghissue:`69`: Make methods like compare_ftest work with wrappers +* :ghissue:`503`: summary_old in RegressionResults +* :ghissue:`991`: TST precision of normal_power +* :ghissue:`945`: Installing statsmodels from github? +* :ghissue:`964`: Prefer to_offset not get_offset in tsa stuff +* :ghissue:`983`: bug: pandas 0.8.1 incompatibility +* :ghissue:`899`: build_ext inplace doesn't cythonize +* :ghissue:`923`: location of initialization code +* :ghissue:`980`: auto lag selection in S_hac_simple +* :ghissue:`968`: genericMLE Ubuntu test failure +* :ghissue:`633`: python 3.3 compatibility +* :ghissue:`728`: test failure for solve_power with fsolve +* :ghissue:`971`: numdiff test cases +* :ghissue:`976`: VAR Model does not work in 1D +* :ghissue:`972`: numdiff: epsilon has no minimum value +* :ghissue:`967`: lowes test failure Ubuntu +* :ghissue:`948`: nonparametric tests: mcnemar, cochranq unit test +* :ghissue:`963`: BUG in runstest_2sample +* :ghissue:`946`: Issue with lowess() smoother in statsmodels +* :ghissue:`868`: k_vars > nobs +* :ghissue:`917`: emplike emplikeAFT stray dimensions +* :ghissue:`264`: version comparisons need to be made more robust (may be just use LooseVersion) +* :ghissue:`674`: failure in test_foreign, pandas testing +* :ghissue:`828`: GLMResults inconsistent distribution in pvalues +* :ghissue:`908`: RLM missing test for tvalues, pvalues +* :ghissue:`463`: formulas missing in docs +* :ghissue:`256`: discrete Nbin has zero test coverage +* :ghissue:`831`: test errors running bdist +* :ghissue:`733`: Docs: interrater cohens_kappa is missing +* :ghissue:`897`: lowess failure - sometimes +* :ghissue:`902`: test failure tsa.filters precision too high +* :ghissue:`901`: test failure stata_writer_pandas, newer versions of pandas +* :ghissue:`900`: ARIMA.__new__ errors on python 3.3 +* :ghissue:`832`: notebook errors +* :ghissue:`867`: Baxter King has unneeded limit on value for low? +* :ghissue:`781`: discreteResults margeff method not tests, obsolete +* :ghissue:`870`: discrete unit tests duplicates +* :ghissue:`630`: problems in regression plots +* :ghissue:`885`: Caching behavior for KDEUnivariate icdf +* :ghissue:`869`: sm.tsa.ARMA(..., order=(p,q)) gives "__init__() got an unexpected keyword argument 'order'" error +* :ghissue:`783`: statsmodels\distributions\mixture_rvs.py no unit tests +* :ghissue:`824`: Multicomparison w/Pandas Series +* :ghissue:`789`: presentation of multiple comparison results +* :ghissue:`764`: BUG: multipletests incorrect reject for Holm-Sidak +* :ghissue:`766`: multipletests - status and tests of 2step FDR procedures +* :ghissue:`763`: Bug: multipletests raises exception with empty array +* :ghissue:`840`: sm.load should be in the main API namespace +* :ghissue:`830`: invalid version number +* :ghissue:`821`: Fail gracefully when extensions are not built +* :ghissue:`204`: Cython extensions built twice? +* :ghissue:`689`: tutorial notebooks +* :ghissue:`740`: why does t_test return one-sided p-value +* :ghissue:`804`: What goes in statsmodels.formula.api? +* :ghissue:`675`: Improve error message for ARMA SVD convergence failure. +* :ghissue:`15`: arma singular matrix +* :ghissue:`559`: Add Rdatasets to optional dependencies list +* :ghissue:`796`: Prediction Standard Errors +* :ghissue:`793`: filters are not pandas aware +* :ghissue:`785`: Negative R-squared +* :ghissue:`777`: OLS residuals returned as Pandas series when endog and exog are Pandas series +* :ghissue:`770`: Add ANOVA to docs +* :ghissue:`775`: Bug in dates_from_range +* :ghissue:`773`: AR model pvalues error with Pandas +* :ghissue:`768`: multipletests: numerical problems at threshold +* :ghissue:`355`: add draw if interactive to plotting functions +* :ghissue:`625`: Exog is not correctly handled in ARIMA predict +* :ghissue:`626`: ARIMA summary does not print exogenous variable coefficients +* :ghissue:`657`: order (0,1) breaks ARMA forecast +* :ghissue:`736`: ARIMA predict problem for ARMA model +* :ghissue:`324`: ic in ARResults, aic, bic, hqic, fpe inconsistent definition? +* :ghissue:`642`: sign_test check +* :ghissue:`236`: AR start_params broken +* :ghissue:`235`: tests hang on Windows +* :ghissue:`156`: matplotlib deprecated legend ? var plots +* :ghissue:`331`: Remove stale tests +* :ghissue:`592`: test failures in datetools +* :ghissue:`537`: Var Models +* :ghissue:`755`: Unable to access AR fit parameters when model is estimated with pandas.DataFrame +* :ghissue:`670`: discrete: numerically useless clipping +* :ghissue:`515`: MNLogit residuals raise a TypeError +* :ghissue:`225`: discrete models only define deviance residuals +* :ghissue:`594`: remove skiptest in TestProbitCG +* :ghissue:`681`: Dimension Error in discrete_model.py When Running test_dummy_* +* :ghissue:`744`: DOC: new_f_test +* :ghissue:`549`: Ship released patsy source in statsmodels +* :ghissue:`588`: patsy is a hard dependency? +* :ghissue:`716`: Tests missing for functions if pandas is used +* :ghissue:`715`: statmodels regression plots not working with pandas datatypes +* :ghissue:`450`: BUG: full_output in optimizers Likelihood model +* :ghissue:`709`: DOCstrings linear models don't have missing params +* :ghissue:`370`: BUG weightstats has wrong cov +* :ghissue:`694`: DiscreteMargins duplicate method +* :ghissue:`702`: bug, pylint stats.anova +* :ghissue:`423`: Handling of constant across models +* :ghissue:`456`: BUG: ARMA date handling incompatibility with recent pandas +* :ghissue:`514`: NaNs in Multinomial +* :ghissue:`405`: Check for existing old version of scikits.statsmodels? +* :ghissue:`586`: Segmentation fault with OLS +* :ghissue:`721`: Unable to run AR on named time series objects +* :ghissue:`125`: caching pinv_wexog broke iterative fit - GLSAR +* :ghissue:`712`: TSA bug with frequency inference +* :ghissue:`319`: Timeseries Frequencies +* :ghissue:`707`: .summary with alpha ignores parsed value +* :ghissue:`673`: nonparametric: bug in _kernel_base +* :ghissue:`710`: test_power failures +* :ghissue:`706`: .conf_int() fails on linear regression without intercept +* :ghissue:`679`: Test Baxter King band-pass filter fails with scipy 0.12 beta1 +* :ghissue:`552`: influence outliers breaks when regressing on constant +* :ghissue:`639`: test folders not on python path +* :ghissue:`565`: omni_normtest doesn't propagate the axis argument +* :ghissue:`563`: error in doc generation for AR.fit +* :ghissue:`109`: TestProbitCG failure on Ubuntu +* :ghissue:`661`: from scipy import comb fails on the latest scipy 0.11.0 +* :ghissue:`413`: DOC: example_discrete.py missing from 0.5 documentation +* :ghissue:`644`: FIX: factor plot + examples broken +* :ghissue:`645`: STY: pep8 violations in many examples +* :ghissue:`173`: doc sphinx warnings +* :ghissue:`601`: bspline.py dependency on old scipy.stats.models +* :ghissue:`103`: ecdf and step function conventions +* :ghissue:`18`: Newey-West sandwich covariance is missing +* :ghissue:`279`: cov_nw_panel not tests, example broken +* :ghissue:`150`: precision in test_discrete.TestPoissonNewton.test_jac ? +* :ghissue:`480`: rescale loglike for optimization +* :ghissue:`627`: Travis-CI support for scipy +* :ghissue:`622`: mark tests as slow in emplike +* :ghissue:`589`: OLS F-statistic error +* :ghissue:`572`: statsmodels/tools/data.py Stuck looking for la.py +* :ghissue:`580`: test errors in graphics +* :ghissue:`577`: PatsyData detection buglet +* :ghissue:`470`: remove deprecated features +* :ghissue:`573`: lazy imports are (possibly) very slow +* :ghissue:`438`: New results instances are not in online documentation +* :ghissue:`542`: Regression plots fail when Series objects passed to sm.OLS +* :ghissue:`239`: release 0.4.x +* :ghissue:`530`: l1 docs issues +* :ghissue:`539`: test for statwriter (failure) +* :ghissue:`490`: Travis CI on PRs +* :ghissue:`252`: doc: distributions.rst refers to sandbox only +* :ghissue:`85`: release 0.4 +* :ghissue:`65`: MLE fit of AR model has no tests +* :ghissue:`522`: ``test`` doesn't propagate arguments to nose +* :ghissue:`517`: missing array conversion or shape in linear model +* :ghissue:`523`: test failure with ubuntu decimals too large +* :ghissue:`520`: web site documentation, source not updated +* :ghissue:`488`: Avoid cholesky decomposition of diagonal matrices in linear regression models +* :ghissue:`394`: Definition in macrodata NOTE +* :ghissue:`45`: numdifftools dependency +* :ghissue:`501`: WLS/GLS post estimation results +* :ghissue:`500`: WLS fails if weights is a pandas.Series +* :ghissue:`27`: add hasconstant indicator for R-squared and df calculations +* :ghissue:`497`: DOC: add patsy? +* :ghissue:`495`: ENH: add footer SimpleTable +* :ghissue:`402`: model._data -> model.data? +* :ghissue:`477`: VAR NaN Bug +* :ghissue:`421`: Enhancment: Handle Missing Data +* :ghissue:`489`: Expose model._data as model.data +* :ghissue:`315`: tsa models assume pandas object indices are dates +* :ghissue:`440`: arima predict is broken for steps > q and q != 1 +* :ghissue:`458`: TST BUG? comparing pandas and array in tests, formula +* :ghissue:`464`: from_formula signature +* :ghissue:`245`: examples in docs: make nicer +* :ghissue:`466`: broken example, pandas +* :ghissue:`57`: Unhelpful error from bad exog matrix in model.py +* :ghissue:`271`: ARMA.geterrors requires model to be fit +* :ghissue:`350`: Writing to array returned np.diag +* :ghissue:`354`: example_rst does not copy unchanged files over +* :ghissue:`467`: Install issues with Pandas +* :ghissue:`444`: ARMA example on stable release website not working +* :ghissue:`377`: marginal effects count and discrete adjustments +* :ghissue:`426`: "svd" method not supported for OLS.fit() +* :ghissue:`409`: Move numdiff out of the sandbox +* :ghissue:`416`: Switch to complex-step Hessian for AR(I)MA +* :ghissue:`415`: bug in kalman_loglike_complex +* :ghissue:`397`: plot_corr axis text labeling not working (with fix) +* :ghissue:`399`: discrete errors due to incorrect in-place operation +* :ghissue:`389`: VAR test_normality is broken with KeyError +* :ghissue:`388`: Add tsaplots to graphics.api as graphics.tsa +* :ghissue:`387`: predict date wasn't getting set with start = None +* :ghissue:`386`: p-values not returned from acf +* :ghissue:`385`: Allow AR.select_order to work without model being fit +* :ghissue:`383`: Move mixture_rvs out of sandbox. +* :ghissue:`248`: ARMA breaks with a 1d exog +* :ghissue:`273`: When to give order for AR/AR(I)MA +* :ghissue:`363`: examples folder -> tutorials folder +* :ghissue:`346`: docs in sitepackages +* :ghissue:`353`: PACF docs raise a sphinx warning +* :ghissue:`348`: python 3.2.3 test failure zip_longest diff --git a/docs/source/release/github-stats-0.6.rst b/docs/source/release/github-stats-0.6.rst new file mode 100644 index 0000000..27b7889 --- /dev/null +++ b/docs/source/release/github-stats-0.6.rst @@ -0,0 +1,548 @@ +.. _issues_list_06: + +Issues closed in the 0.6.0 development cycle +============================================ + +Issues closed in 0.6.0 +---------------------- + +GitHub stats for 2013/08/14 - 2014/10/15 (tag: v0.5.0) + +We closed a total of 528 issues, 276 pull requests and 252 regular issues; +this is the full list (generated with the script :file:`tools/github_stats.py`): + +This list is automatically generated and may be incomplete. + +Pull Requests (276): + +* :ghpull:`2044`: ENH: Allow unit interval for binary models. Closes #2040. +* :ghpull:`1426`: ENH: Import arima_process stuff into tsa.api +* :ghpull:`2042`: Fix two minor typos in contrast.py +* :ghpull:`2034`: ENH: Handle missing for extra data with formulas +* :ghpull:`2035`: MAINT: Remove deprecated code for 0.6 +* :ghpull:`1325`: ENH: add the Edgeworth expansion based on the normal distribution +* :ghpull:`2032`: DOC: What it is what it is. +* :ghpull:`2031`: ENH: Expose patsy eval_env to users. +* :ghpull:`2028`: ENH: Fix numerical issues in links and families. +* :ghpull:`2029`: DOC: Fix versions to match other docs. +* :ghpull:`1647`: ENH: Warn on non-convergence. +* :ghpull:`2014`: BUG: Fix forecasting for ARIMA with d == 2 +* :ghpull:`2013`: ENH: Better error message on object dtype +* :ghpull:`2012`: BUG: 2d 1 columns -> 1d. Closes #322. +* :ghpull:`2009`: DOC: Update after refactor. Use code block. +* :ghpull:`2008`: ENH: Add wrapper for MixedLM +* :ghpull:`1954`: ENH: PHReg formula improvements +* :ghpull:`2007`: BLD: Fix build issues +* :ghpull:`2006`: BLD: Do not generate cython on clean. Closes #1852. +* :ghpull:`2000`: BLD: Let pip/setuptools handle dependencies that aren't installed at all. +* :ghpull:`1999`: Gee offset exposure 1994 rebased +* :ghpull:`1998`: BUG/ENH Lasso emptymodel rebased +* :ghpull:`1989`: BUG/ENH: WLS generic robust cov_type didn't use whitened, +* :ghpull:`1587`: ENH: Wrap X12/X13-ARIMA AUTOMDL. Closes #442. +* :ghpull:`1563`: ENH: Add plot_predict method to ARIMA models. +* :ghpull:`1995`: BUG: Fix issue #1993 +* :ghpull:`1981`: ENH: Add api for covstruct. Clear __init__. Closes #1917. +* :ghpull:`1996`: DEV: Ignore .venv file. +* :ghpull:`1982`: REF: Rename jac -> score_obs. Closes #1785. +* :ghpull:`1987`: BUG tsa pacf, base bootstrap +* :ghpull:`1986`: Bug multicomp 1927 rebased +* :ghpull:`1984`: Docs add gee.rst +* :ghpull:`1985`: Bug uncentered latex table 1929 rebased +* :ghpull:`1983`: BUG: Fix compat asunicode +* :ghpull:`1574`: DOC: Fix math. +* :ghpull:`1980`: DOC: Documentation fixes +* :ghpull:`1974`: REF/Doc beanplot change default color, add notebook +* :ghpull:`1978`: ENH: Check input to binary models +* :ghpull:`1979`: BUG: Typo +* :ghpull:`1976`: ENH: Add _repr_html_ to SimpleTable +* :ghpull:`1977`: BUG: Fix import refactor victim. +* :ghpull:`1975`: BUG: Yule walker cast to float +* :ghpull:`1973`: REF: Move and expose webuse +* :ghpull:`1972`: TST: Add testing against NumPy 1.9 and matplotlib 1.4 +* :ghpull:`1939`: ENH: Binstar build files +* :ghpull:`1952`: REF/DOC: Misc +* :ghpull:`1940`: REF: refactor and speedup of mixed LME +* :ghpull:`1937`: ENH: Quick access to online documentation +* :ghpull:`1942`: DOC: Rename Change README type to rst +* :ghpull:`1938`: ENH: Enable Python 3.4 testing +* :ghpull:`1924`: Bug gee cov type 1906 rebased +* :ghpull:`1870`: robust covariance, cov_type in fit +* :ghpull:`1859`: BUG: Don't use negative indexing with k_ar == 0. Closes #1858. +* :ghpull:`1914`: BUG: LikelihoodModelResults.pvalues use df_resid_inference +* :ghpull:`1899`: TST: fix assert_equal for pandas index +* :ghpull:`1895`: Bug multicomp pandas +* :ghpull:`1894`: BUG fix more ix indexing cases for pandas compat +* :ghpull:`1889`: BUG: fix ytick positions closes #1561 +* :ghpull:`1887`: Bug pandas compat asserts +* :ghpull:`1888`: TST test_corrpsd Test_Factor: add noise to data +* :ghpull:`1886`: BUG pandas 0.15 compatibility in grouputils labels +* :ghpull:`1885`: TST: corr_nearest_factor, more informative tests +* :ghpull:`1884`: Fix: Add compat code for pd.Categorical in pandas>=0.15 +* :ghpull:`1883`: BUG: add _ctor_param to TransfGen distributions +* :ghpull:`1872`: TST: fix _infer_freq for pandas .14+ compat +* :ghpull:`1867`: Ref covtype fit +* :ghpull:`1865`: Disable tst distribution 1864 +* :ghpull:`1856`: _spg_optim returns history of objective function values +* :ghpull:`1854`: BLD: Don't hard-code path for building notebooks. Closes #1249 +* :ghpull:`1851`: MAINT: Cor nearest factor tests +* :ghpull:`1847`: Newton regularize +* :ghpull:`1623`: BUG Negbin fit regularized +* :ghpull:`1797`: BUG/ENH: fix and improve constant detection +* :ghpull:`1770`: TST: anova with `-1` noconstant, add tests +* :ghpull:`1837`: Allow group variable to be passed as variable name when using formula +* :ghpull:`1839`: BUG: GEE score +* :ghpull:`1830`: BUG/ENH Use t +* :ghpull:`1832`: TST error with scipy 0.14 location distribution class +* :ghpull:`1827`: fit_regularized for linear models rebase 1674 +* :ghpull:`1825`: Phreg 1312 rebased +* :ghpull:`1826`: Lme api docs +* :ghpull:`1824`: Lme profile 1695 rebased +* :ghpull:`1823`: Gee cat subclass 1694 rebase +* :ghpull:`1781`: ENH: Glm add score_obs +* :ghpull:`1821`: Glm maint #1734 rebased +* :ghpull:`1820`: BUG: revert change to conf_int in PR #1819 +* :ghpull:`1819`: Docwork +* :ghpull:`1772`: REF: cov_params allow case of only cov_params_default is defined +* :ghpull:`1771`: REF numpy >1.9 compatibility, indexing into empty slice closes #1754 +* :ghpull:`1769`: Fix ttest 1d +* :ghpull:`1766`: TST: TestProbitCG increase bound for fcalls closes #1690 +* :ghpull:`1709`: BLD: Made build extensions more flexible +* :ghpull:`1714`: WIP: fit_constrained +* :ghpull:`1706`: REF: Use fixed params in test. Closes #910. +* :ghpull:`1701`: BUG: Fix faulty logic. Do not raise when missing='raise' and no missing data. +* :ghpull:`1699`: TST/ENH StandardizeTransform, reparameterize TestProbitCG +* :ghpull:`1697`: Fix for statsmodels/statsmodels#1689 +* :ghpull:`1692`: OSL Example: redundant cell in example removed +* :ghpull:`1688`: Kshedden mixed rebased of #1398 +* :ghpull:`1629`: Pull request to fix bandwidth bug in issue 597 +* :ghpull:`1666`: Include pyx in sdist but don't install +* :ghpull:`1683`: TST: GLM shorten random seed closes #1682 +* :ghpull:`1681`: Dotplot kshedden rebased of 1294 +* :ghpull:`1679`: BUG: Fix problems with predict handling offset and exposure +* :ghpull:`1677`: Update docstring of RegressionModel.predict() +* :ghpull:`1635`: Allow offset and exposure to be used together with log link; raise excep... +* :ghpull:`1676`: Tests for SVAR +* :ghpull:`1671`: ENH: avoid hard-listed bandwidths -- use present dictionary (+typos fixed) +* :ghpull:`1643`: Allow matrix structure in covariance matrices to be exploited +* :ghpull:`1657`: BUG: Fix refactor victim. +* :ghpull:`1630`: DOC: typo, "interecept" +* :ghpull:`1619`: MAINT: Dataset docs cleanup and automatic build of docs +* :ghpull:`1612`: BUG/ENH Fix negbin exposure #1611 +* :ghpull:`1610`: BUG/ENH fix llnull, extra kwds to recreate model +* :ghpull:`1582`: BUG: wls_prediction_std fix weight handling, see 987 +* :ghpull:`1613`: BUG: Fix proportions allpairs #1493 +* :ghpull:`1607`: TST: adjust precision, CI Debian, Ubuntu testing +* :ghpull:`1603`: ENH: Allow start_params in GLM +* :ghpull:`1600`: CLN: Regression plots fixes +* :ghpull:`1592`: DOC: Additions and fixes +* :ghpull:`1520`: CLN: Refactored so that there is no longer a need for 2to3 +* :ghpull:`1585`: Cor nearest 1384 rebased +* :ghpull:`1553`: Gee maint 1528 rebased +* :ghpull:`1583`: BUG: For ARMA(0,0) ensure 1d bse and fix summary. +* :ghpull:`1580`: DOC: Fix links. [skip ci] +* :ghpull:`1572`: DOC: Fix link title [skip ci] +* :ghpull:`1566`: BLD: Fix copy paste path error for >= 3.3 Windows builds +* :ghpull:`1524`: ENH: Optimize Cython code. Use scipy blas function pointers. +* :ghpull:`1560`: ENH: Allow ARMA(0,0) in order selection +* :ghpull:`1559`: MAINT: Recover lost commits from vbench PR +* :ghpull:`1554`: Silenced test output introduced in medcouple +* :ghpull:`1234`: ENH: Robust skewness, kurtosis and medcouple measures +* :ghpull:`1484`: ENH: Add naive seasonal decomposition function +* :ghpull:`1551`: COMPAT: Fix failing test on Python 2.6 +* :ghpull:`1472`: ENH: using human-readable group names instead of integer ids in MultiComparison +* :ghpull:`1437`: ENH: accept non-int definitions of cluster groups +* :ghpull:`1550`: Fix test gmm poisson +* :ghpull:`1549`: TST: Fix locally failing tests. +* :ghpull:`1121`: WIP: Refactor optimization code. +* :ghpull:`1547`: COMPAT: Correct bit_length for 2.6 +* :ghpull:`1545`: MAINT: Fix missed usage of deprecated tools.rank +* :ghpull:`1196`: REF: ensure O(N log N) when using fft for acf +* :ghpull:`1154`: DOC: Add links for build machines. +* :ghpull:`1546`: DOC: Fix link to wrong notebook +* :ghpull:`1383`: MAINT: Deprecate rank in favor of np.linalg.matrix_rank +* :ghpull:`1432`: COMPAT: Add NumpyVersion from scipy +* :ghpull:`1438`: ENH: Option to avoid "center" environment. +* :ghpull:`1544`: BUG: Travis miniconda +* :ghpull:`1510`: CLN: Improve warnings to avoid generic warnings messages +* :ghpull:`1543`: TST: Suppress RuntimeWarning for L-BFGS-B +* :ghpull:`1507`: CLN: Silence test output +* :ghpull:`1540`: BUG: Correct derivative for exponential transform. +* :ghpull:`1536`: BUG: Restores coveralls for a single build +* :ghpull:`1535`: BUG: Fixes for 2.6 test failures, replacing astype(str) with apply(str) +* :ghpull:`1523`: Travis miniconda +* :ghpull:`1533`: DOC: Fix link to code on github +* :ghpull:`1531`: DOC: Fix stale links with linkcheck +* :ghpull:`1530`: DOC: Fix link +* :ghpull:`1527`: DOCS: Update docs add FAQ page +* :ghpull:`1525`: DOC: Update with Python 3.4 build notes +* :ghpull:`1518`: DOC: Ask for release notes and example. +* :ghpull:`1516`: DOC: Update examples contributing docs for current practice. +* :ghpull:`1517`: DOC: Be clear about data attribute of Datasets +* :ghpull:`1515`: DOC: Fix broken link +* :ghpull:`1514`: DOC: Fix formula import convention. +* :ghpull:`1506`: BUG: Format and decode errors in Python 2.6 +* :ghpull:`1505`: TST: Test co2 load_data for Python 3. +* :ghpull:`1504`: BLD: New R versions require NAMESPACE file. Closes #1497. +* :ghpull:`1483`: ENH: Some utility functions for working with dates +* :ghpull:`1482`: REF: Prefer filters.api to __init__ +* :ghpull:`1481`: ENH: Add weekly co2 dataset +* :ghpull:`1474`: DOC: Add plots for standard filter methods. +* :ghpull:`1471`: DOC: Fix import +* :ghpull:`1470`: DOC/BLD: Log code exceptions from nbgenerate +* :ghpull:`1469`: DOC: Fix bad links +* :ghpull:`1468`: MAINT: CSS fixes +* :ghpull:`1463`: DOC: Remove defunct argument. Change default kw. Closes #1462. +* :ghpull:`1452`: STY: import pandas as pd +* :ghpull:`1458`: BUG/BLD: exclude sandbox in relative path, not absolute +* :ghpull:`1447`: DOC: Only build and upload docs if we need to. +* :ghpull:`1445`: DOCS: Example landing page +* :ghpull:`1436`: DOC: Fix auto doc builds. +* :ghpull:`1431`: DOC: Add default for getenv. Fix paths. Add print_info +* :ghpull:`1429`: MAINT: Use ip_directive shipped with IPython +* :ghpull:`1427`: TST: Make tests fit quietly +* :ghpull:`1424`: ENH: Consistent results for transform_slices +* :ghpull:`1421`: ENH: Add grouping utilities code +* :ghpull:`1419`: Gee 1314 rebased +* :ghpull:`1414`: TST temporarily rename tests probplot other to skip them +* :ghpull:`1403`: Bug norm expan shapes +* :ghpull:`1417`: REF: Let subclasses keep kwds attached to data. +* :ghpull:`1416`: ENH: Make handle_data overwritable by subclasses. +* :ghpull:`1410`: ENH: Handle missing is none +* :ghpull:`1402`: REF: Expose missing data handling as classmethod +* :ghpull:`1387`: MAINT: Fix failing tests +* :ghpull:`1406`: MAINT: Tools improvements +* :ghpull:`1404`: Tst fix genmod link tests +* :ghpull:`1396`: REF: Multipletests reduce memory usage +* :ghpull:`1380`: DOC :Update vector_ar.rst +* :ghpull:`1381`: BLD: Don't check dependencies on egg_info for pip. Closes #1267. +* :ghpull:`1302`: BUG: Fix typo. +* :ghpull:`1375`: STY: Remove unused imports and comment out unused libraries in setup.py +* :ghpull:`1143`: DOC: Update backport notes for new workflow. +* :ghpull:`1374`: ENH: Import tsaplots into tsa namespace. Closes #1359. +* :ghpull:`1369`: STY: Pep-8 cleanup +* :ghpull:`1370`: ENH: Support ARMA(0,0) models. +* :ghpull:`1368`: STY: Pep 8 cleanup +* :ghpull:`1367`: ENH: Make sure mle returns attach to results. +* :ghpull:`1365`: STY: Import and pep 8 cleanup +* :ghpull:`1364`: ENH: Get rid of hard-coded lbfgs. Closes #988. +* :ghpull:`1363`: BUG: Fix typo. +* :ghpull:`1361`: ENH: Attach mlefit to results not model. +* :ghpull:`1360`: ENH: Import adfuller into tsa namespace +* :ghpull:`1346`: STY: PEP-8 Cleanup +* :ghpull:`1344`: BUG: Use missing keyword given to ARMA. +* :ghpull:`1340`: ENH: Protect against ARMA convergence failures. +* :ghpull:`1334`: ENH: ARMA order select convenience function +* :ghpull:`1339`: Fix typos +* :ghpull:`1336`: REF: Get rid of plain assert. +* :ghpull:`1333`: STY: __all__ should be after imports. +* :ghpull:`1332`: ENH: Add Bunch object to tools. +* :ghpull:`1331`: ENH: Always use unicode. +* :ghpull:`1329`: BUG: Decode metadata to utf-8. Closes #1326. +* :ghpull:`1330`: DOC: Fix typo. Closes #1327. +* :ghpull:`1185`: Added support for pandas when pandas was installed directly from git trunk +* :ghpull:`1315`: MAINT: Change back to path for build box +* :ghpull:`1305`: TST: Update hard-coded path. +* :ghpull:`1290`: ENH: Add seasonal plotting. +* :ghpull:`1296`: BUG/TST: Fix ARMA forecast when start == len(endog). Closes #1295 +* :ghpull:`1292`: DOC: cleanup examples folder and webpage +* :ghpull:`1286`: Make sure PeriodIndex passes through tsa. Closes #1285. +* :ghpull:`1271`: Silverman enhancement - Issue #1243 +* :ghpull:`1264`: Doc work GEE, GMM, sphinx warnings +* :ghpull:`1179`: REF/TST: `ProbPlot` now uses `resettable_cache` and added some kwargs to plotting fxns +* :ghpull:`1225`: Sandwich mle +* :ghpull:`1258`: Gmm new rebased +* :ghpull:`1255`: ENH add GEE to genmod +* :ghpull:`1254`: REF: Results.predict convert to array and adjust shape +* :ghpull:`1192`: TST: enable tests for llf after change to WLS.loglike see #1170 +* :ghpull:`1253`: Wls llf fix +* :ghpull:`1233`: sandbox kernels bugs uniform kernel and confint +* :ghpull:`1240`: Kde weights 1103 823 +* :ghpull:`1228`: Add default value tags to adfuller() docs +* :ghpull:`1198`: fix typo +* :ghpull:`1230`: BUG: numerical precision in resid_pearson with perfect fit #1229 +* :ghpull:`1214`: Compare lr test rebased +* :ghpull:`1200`: BLD: do not install \*.pyx \*.c MANIFEST.in +* :ghpull:`1202`: MAINT: Sort backports to make applying easier. +* :ghpull:`1157`: Tst precision master +* :ghpull:`1161`: add a fitting interface for simultaneous log likelihood and score, for lbfgs, tested with MNLogit +* :ghpull:`1160`: DOC: update scipy version from 0.7 to 0.9.0 +* :ghpull:`1147`: ENH: add lbfgs for fitting +* :ghpull:`1156`: ENH: Raise on 0,0 order models in AR(I)MA. Closes #1123 +* :ghpull:`1149`: BUG: Fix small data issues for ARIMA. +* :ghpull:`1092`: Fixed duplicate svd in RegressionModel +* :ghpull:`1139`: TST: Silence tests +* :ghpull:`1135`: Misc style +* :ghpull:`1088`: ENH: add predict_prob to poisson +* :ghpull:`1125`: REF/BUG: Some GLM cleanup. Used trimmed results in NegativeBinomial variance. +* :ghpull:`1124`: BUG: Fix ARIMA prediction when fit without a trend. +* :ghpull:`1118`: DOC: Update gettingstarted.rst +* :ghpull:`1117`: Update ex_arma2.py +* :ghpull:`1107`: REF: Deprecate stand_mad. Add center keyword to mad. Closes #658. +* :ghpull:`1089`: ENH: exp(poisson.logpmf()) for poisson better behaved. +* :ghpull:`1077`: BUG: Allow 1d exog in ARMAX forecasting. +* :ghpull:`1075`: BLD: Fix build issue on some versions of easy_install. +* :ghpull:`1071`: Update setup.py to fix broken install on OSX +* :ghpull:`1052`: DOC: Updating contributing docs +* :ghpull:`1136`: RLS: Add IPython tools for easier backporting of issues. +* :ghpull:`1091`: DOC: minor git typo +* :ghpull:`1082`: coveralls support +* :ghpull:`1072`: notebook examples title cell +* :ghpull:`1056`: Example: reg diagnostics +* :ghpull:`1057`: COMPAT: Fix py3 caching for get_rdatasets. +* :ghpull:`1045`: DOC/BLD: Update from nbconvert to IPython 1.0. +* :ghpull:`1026`: DOC/BLD: Add LD_LIBRARY_PATH to env for docs build. + +Issues (252): + +* :ghissue:`2040`: enh: fractional Logit, Probit +* :ghissue:`1220`: missing in extra data (example sandwiches, robust covariances) +* :ghissue:`1877`: error with GEE on missing data. +* :ghissue:`805`: nan with categorical in formula +* :ghissue:`2036`: test in links require exact class so Logit can't work in place of logit +* :ghissue:`2010`: Go over deprecations again for 0.6. +* :ghissue:`1303`: patsy library not automatically installed +* :ghissue:`2024`: genmod Links numerical improvements +* :ghissue:`2025`: GEE requires exact import for cov_struct +* :ghissue:`2017`: Matplotlib warning about too many figures +* :ghissue:`724`: check warnings +* :ghissue:`1562`: ARIMA forecasts are hard-coded for d=1 +* :ghissue:`880`: DataFrame with bool type not cast correctly. +* :ghissue:`1992`: MixedLM style +* :ghissue:`322`: acf / pacf do not work on pandas objects +* :ghissue:`1317`: AssertionError: attr is not equal [dtype]: dtype('object') != dtype('datetime64[ns]') +* :ghissue:`1875`: dtype bug object arrays (raises in clustered standard errors code) +* :ghissue:`1842`: dtype object, glm.fit() gives AttributeError: sqrt +* :ghissue:`1300`: Doc errors, missing +* :ghissue:`1164`: RLM cov_params, t_test, f_test don't use bcov_scaled +* :ghissue:`1019`: 0.6.0 Roadmap +* :ghissue:`554`: Prediction Standard Errors +* :ghissue:`333`: ENH tools: squeeze in R export file +* :ghissue:`1990`: MixedLM does not have a wrapper +* :ghissue:`1897`: Consider depending on setuptools in setup.py +* :ghissue:`2003`: pip install now fails silently +* :ghissue:`1852`: do not cythonize when cleaning up +* :ghissue:`1991`: GEE formula interface does not take offset/exposure +* :ghissue:`442`: Wrap x-12 arima +* :ghissue:`1993`: MixedLM bug +* :ghissue:`1917`: API: GEE access to genmod.covariance_structure through api +* :ghissue:`1785`: REF: rename jac -> score_obs +* :ghissue:`1969`: pacf has incorrect standard errors for lag 0 +* :ghissue:`1434`: A small bug in GenericLikelihoodModelResults.bootstrap() +* :ghissue:`1408`: BUG test failure with tsa_plots +* :ghissue:`1337`: DOC: HCCM are now available for WLS +* :ghissue:`546`: influence and outlier documentation +* :ghissue:`1532`: DOC: Related page is out of date +* :ghissue:`1386`: Add minimum matplotlib to docs +* :ghissue:`1068`: DOC: keeping documentation of old versions on sourceforge +* :ghissue:`329`: link to examples and datasets from module pages +* :ghissue:`1804`: PDF documentation for statsmodels +* :ghissue:`202`: Extend robust standard errors for WLS/GLS +* :ghissue:`1519`: Link to user-contributed examples in docs +* :ghissue:`1053`: inconvenient: logit when endog is (1,2) instead of (0,1) +* :ghissue:`1555`: SimpleTable: add repr html for ipython notebook +* :ghissue:`1366`: Change default start_params to .1 in ARMA +* :ghissue:`1869`: yule_walker (from `statsmodels.regression`) raises exception when given an integer array +* :ghissue:`1651`: statsmodels.tsa.ar_model.ARResults.predict +* :ghissue:`1738`: GLM robust sandwich covariance matrices +* :ghissue:`1779`: Some directories under statsmodels dont have __init_.py +* :ghissue:`1242`: No support for (0, 1, 0) ARIMA Models +* :ghissue:`1571`: expose webuse, use cache +* :ghissue:`1860`: ENH/BUG/DOC: Bean plot should allow for separate widths of bean and violins. +* :ghissue:`1831`: TestRegressionNM.test_ci_beta2 i386 AssertionError +* :ghissue:`1079`: bugfix release 0.5.1 +* :ghissue:`1338`: Raise Warning for HCCM use in WLS/GLS +* :ghissue:`1430`: scipy min version / issue +* :ghissue:`276`: memoize, last argument wins, how to attach sandwich to Results? +* :ghissue:`1943`: REF/ENH: LikelihoodModel.fit optimization, make hessian optional +* :ghissue:`1957`: BUG: Re-create OLS model using _init_keys +* :ghissue:`1905`: Docs: online docs are missing GEE +* :ghissue:`1898`: add python 3.4 to continuous integration testing +* :ghissue:`1684`: BUG: GLM NegativeBinomial: llf ignores offset and exposure +* :ghissue:`1256`: REF: GEE handling of default covariance matrices +* :ghissue:`1760`: Changing covariance_type on results +* :ghissue:`1906`: BUG: GEE default covariance is not used +* :ghissue:`1931`: BUG: GEE subclasses NominalGEE don't work with pandas exog +* :ghissue:`1904`: GEE Results doesn't have a Wrapper +* :ghissue:`1918`: GEE: required attributes missing, df_resid +* :ghissue:`1919`: BUG GEE.predict uses link instead of link.inverse +* :ghissue:`1858`: BUG: arimax forecast should special case k_ar == 0 +* :ghissue:`1903`: BUG: pvalues for cluster robust, with use_t don't use df_resid_inference +* :ghissue:`1243`: kde silverman bandwidth for non-gaussian kernels +* :ghissue:`1866`: Pip dependencies +* :ghissue:`1850`: TST test_corr_nearest_factor fails on Ubuntu +* :ghissue:`292`: python 3 examples +* :ghissue:`1868`: ImportError: No module named compat [ from statsmodels.compat import lmap ] +* :ghissue:`1890`: BUG tukeyhsd nan in group labels +* :ghissue:`1891`: TST test_gmm outdated pandas, compat +* :ghissue:`1561`: BUG plot for tukeyhsd, MultipleComparison +* :ghissue:`1864`: test failure sandbox distribution transformation with scipy 0.14.0 +* :ghissue:`576`: Add contributing guidelines +* :ghissue:`1873`: GenericLikelihoodModel is not picklable +* :ghissue:`1822`: TST failure on Ubuntu pandas 0.14.0 , problems with frequency +* :ghissue:`1249`: Source directory problem for notebook examples +* :ghissue:`1855`: anova_lm throws error on models created from api.ols but not formula.api.ols +* :ghissue:`1853`: a large number of hardcoded paths +* :ghissue:`1792`: R² adjusted strange after including interaction term +* :ghissue:`1794`: REF: has_constant, k_constant, include implicit constant detection in base +* :ghissue:`1454`: NegativeBinomial missing fit_regularized method +* :ghissue:`1615`: REF DRYing fit methods +* :ghissue:`1453`: Discrete NegativeBinomialModel regularized_fit ValueError: matrices are not aligned +* :ghissue:`1836`: BUG Got an TypeError trying to import statsmodels.api +* :ghissue:`1829`: BUG: GLM summary show "t" use_t=True for summary +* :ghissue:`1828`: BUG summary2 doesn't propagate/use use_t +* :ghissue:`1812`: BUG/ REF conf_int and use_t +* :ghissue:`1835`: Problems with installation using easy_install +* :ghissue:`1801`: BUG 'f_gen' missing in scipy 0.14.0 +* :ghissue:`1803`: Error revealed by numpy 1.9.0r1 +* :ghissue:`1834`: stackloss +* :ghissue:`1728`: GLM.fit maxiter=0 incorrect +* :ghissue:`1795`: singular design with offset ? +* :ghissue:`1730`: ENH/Bug cov_params, generalize, avoid ValueError +* :ghissue:`1754`: BUG/REF: assignment to slices in numpy >= 1.9 (emplike) +* :ghissue:`1409`: GEE test errors on Debian Wheezy +* :ghissue:`1521`: ubuntu failues: tsa_plot and grouputils +* :ghissue:`1415`: test failure test_arima.test_small_data +* :ghissue:`1213`: df_diff in anova_lm +* :ghissue:`1323`: Contrast Results after t_test summary broken for 1 parameter +* :ghissue:`109`: TestProbitCG failure on Ubuntu +* :ghissue:`1690`: TestProbitCG: 8 failing tests (Python 3.4 / Ubuntu 12.04) +* :ghissue:`1763`: Johansen method doesn't give correct index values +* :ghissue:`1761`: doc build failures: ipython version ? ipython directive +* :ghissue:`1762`: Unable to build +* :ghissue:`1745`: UnicodeDecodeError raised by get_rdataset("Guerry", "HistData") +* :ghissue:`611`: test failure foreign with pandas 0.7.3 +* :ghissue:`1700`: faulty logic in missing handling +* :ghissue:`1648`: ProbitCG failures +* :ghissue:`1689`: test_arima.test_small_data: SVD fails to converge (Python 3.4 / Ubuntu 12.04) +* :ghissue:`597`: BUG: nonparametric: kernel, efficient=True changes bw even if given +* :ghissue:`1606`: BUILD from sdist broken if cython available +* :ghissue:`1246`: test failure test_anova.TestAnova2.test_results +* :ghissue:`50`: t_test, f_test, model.py for normal instead of t-distribution +* :ghissue:`1655`: newey-west different than R? +* :ghissue:`1682`: TST test failure on Ubuntu, random.seed +* :ghissue:`1614`: docstring for regression.linear_model.RegressionModel.predict() does not match implementation +* :ghissue:`1318`: GEE and GLM scale parameter +* :ghissue:`519`: L1 fit_regularized cleanup, comments +* :ghissue:`651`: add structure to example page +* :ghissue:`1067`: Kalman Filter convergence. How close is close enough? +* :ghissue:`1281`: Newton convergence failure prints warnings instead of warning +* :ghissue:`1628`: Unable to install statsmodels in the same requirements file as numpy, pandas, etc. +* :ghissue:`617`: Problem in installing statsmodel in Fedora 17 64-bit +* :ghissue:`935`: ll_null in likelihoodmodels discrete +* :ghissue:`704`: datasets.sunspot: wrong link in description +* :ghissue:`1222`: NegativeBinomial ignores exposure +* :ghissue:`1611`: BUG NegativeBinomial ignores exposure and offset +* :ghissue:`1608`: BUG: NegativeBinomial, llnul is always default 'nb2' +* :ghissue:`1221`: llnull with exposure ? +* :ghissue:`1493`: statsmodels.stats.proportion.proportions_chisquare_allpairs has hardcoded value +* :ghissue:`1260`: GEE test failure on Debian +* :ghissue:`1261`: test failure on Debian +* :ghissue:`443`: GLM.fit does not allow start_params +* :ghissue:`1602`: Fitting GLM with a pre-assigned starting parameter +* :ghissue:`1601`: Fitting GLM with a pre-assigned starting parameter +* :ghissue:`890`: regression_plots problems (pylint) and missing test coverage +* :ghissue:`1598`: Is "old" string formatting Python 3 compatible? +* :ghissue:`1589`: AR vs ARMA order specification +* :ghissue:`1134`: Mark knownfails +* :ghissue:`1259`: Parameterless models +* :ghissue:`616`: python 2.6, python 3 in single codebase +* :ghissue:`1586`: Kalman Filter errors with new pyx +* :ghissue:`1565`: build_win_bdist*_py3*.bat are using the wrong compiler +* :ghissue:`843`: UnboundLocalError When trying to install OS X +* :ghissue:`713`: arima.fit performance +* :ghissue:`367`: unable to install on RHEL 5.6 +* :ghissue:`1548`: testtransf error +* :ghissue:`1478`: is sm.tsa.filters.arfilter an AR filter? +* :ghissue:`1420`: GMM poisson test failures +* :ghissue:`1145`: test_multi noise +* :ghissue:`1539`: NegativeBinomial strange results with bfgs +* :ghissue:`936`: vbench for statsmodels +* :ghissue:`1153`: Where are all our testing machines? +* :ghissue:`1500`: Use Miniconda for test builds +* :ghissue:`1526`: Out of date docs +* :ghissue:`1311`: BUG/BLD 3.4 compatibility of cython c files +* :ghissue:`1513`: build on osx -python-3.4 +* :ghissue:`1497`: r2nparray needs NAMESPACE file +* :ghissue:`1502`: coveralls coverage report for files is broken +* :ghissue:`1501`: pandas in/out in predict +* :ghissue:`1494`: truncated violin plots +* :ghissue:`1443`: Crash from python.exe using linear regression of statsmodels +* :ghissue:`1462`: qqplot line kwarg is broken/docstring is wrong +* :ghissue:`1457`: BUG/BLD: Failed build if "sandbox" anywhere in statsmodels path +* :ghissue:`1441`: wls function: syntax error "unexpected EOF while parsing" occurs when name of dependent variable starts with digits +* :ghissue:`1428`: ipython_directive doesn't work with ipython master +* :ghissue:`1385`: SimpleTable in Summary (e.g. OLS) is slow for large models +* :ghissue:`1399`: UnboundLocalError: local variable 'fittedvalues' referenced before assignment +* :ghissue:`1377`: TestAnova2.test_results fails with pandas 0.13.1 +* :ghissue:`1394`: multipletests: reducing memory consumption +* :ghissue:`1267`: Packages cannot have both pandas and statsmodels in install_requires +* :ghissue:`1359`: move graphics.tsa to tsa.graphics +* :ghissue:`356`: docs take up a lot of space +* :ghissue:`988`: AR.fit no precision options for fmin_l_bfgs_b +* :ghissue:`990`: AR fit with bfgs: large score +* :ghissue:`14`: arma with exog +* :ghissue:`1348`: reset_index + set_index with drop=False +* :ghissue:`1343`: ARMA doesn't pass missing keyword up to TimeSeriesModel +* :ghissue:`1326`: formula example notebook broken +* :ghissue:`1327`: typo in docu-code for "Outlier and Influence Diagnostic Measures" +* :ghissue:`1309`: Box-Cox transform (some code needed: lambda estimator) +* :ghissue:`1059`: sm.tsa.ARMA making ma invertibility +* :ghissue:`1295`: Bug in ARIMA forecasting when start is int len(endog) and dates are given +* :ghissue:`1285`: tsa models fail on PeriodIndex with pandas +* :ghissue:`1269`: KPSS test for stationary processes +* :ghissue:`1268`: Feature request: Exponential smoothing +* :ghissue:`1250`: DOCs error in var_plots +* :ghissue:`1032`: Poisson predict breaks on list +* :ghissue:`347`: minimum number of observations - document or check ? +* :ghissue:`1170`: WLS log likelihood, aic and bic +* :ghissue:`1187`: sm.tsa.acovf fails when both unbiased and fft are True +* :ghissue:`1239`: sandbox kernels, problems with inDomain +* :ghissue:`1231`: sandbox kernels confint missing alpha +* :ghissue:`1245`: kernels cosine differs from Stata +* :ghissue:`823`: KDEUnivariate with weights +* :ghissue:`1229`: precision problems in degenerate case +* :ghissue:`1219`: select_order +* :ghissue:`1206`: REF: RegressionResults cov-HCx into cached attributes +* :ghissue:`1152`: statsmodels failing tests with pandas master +* :ghissue:`1195`: pyximport.install() before import api crash +* :ghissue:`1066`: gmm.IV2SLS has wrong predict signature +* :ghissue:`1186`: OLS when exog is 1d +* :ghissue:`1113`: TST: precision too high in test_normality +* :ghissue:`1159`: scipy version is still >= 0.7? +* :ghissue:`1108`: SyntaxError: unqualified exec is not allowed in function 'test_EvalEnvironment_capture_flag +* :ghissue:`1116`: Typo in Example Doc? +* :ghissue:`1123`: BUG : arima_model._get_predict_out_of_sample, ignores exogenous of there is no trend ? +* :ghissue:`1155`: ARIMA - The computed initial AR coefficients are not stationary +* :ghissue:`979`: Win64 binary can't find Python installation +* :ghissue:`1046`: TST: test_arima_small_data_bug on current master +* :ghissue:`1146`: ARIMA fit failing for small set of data due to invalid maxlag +* :ghissue:`1081`: streamline linear algebra for linear model +* :ghissue:`1138`: BUG: pacf_yw doesn't demean +* :ghissue:`1127`: Allow linear link model with Binomial families +* :ghissue:`1122`: no data cleaning for statsmodels.genmod.families.varfuncs.NegativeBinomial() +* :ghissue:`658`: robust.mad is not being computed correctly or is non-standard definition; it returns the median +* :ghissue:`1076`: Some issues with ARMAX forecasting +* :ghissue:`1073`: easy_install sandbox violation +* :ghissue:`1115`: EasyInstall Problem +* :ghissue:`1106`: bug in robust.scale.mad? +* :ghissue:`1102`: Installation Problem +* :ghissue:`1084`: DataFrame.sort_index does not use ascending when then value is a list with a single element +* :ghissue:`393`: marginal effects in discrete choice do not have standard errors defined +* :ghissue:`1078`: Use pandas.version.short_version +* :ghissue:`96`: deepcopy breaks on ResettableCache +* :ghissue:`1055`: datasets.get_rdataset string decode error on python 3 +* :ghissue:`46`: tsa.stattools.acf confint needs checking and tests +* :ghissue:`957`: ARMA start estimate with numpy master +* :ghissue:`62`: GLSAR incorrect initial condition in whiten +* :ghissue:`1021`: from_formula() throws error - problem installing +* :ghissue:`911`: noise in stats.power tests +* :ghissue:`472`: Update roadmap for 0.5 +* :ghissue:`238`: release 0.5 +* :ghissue:`1006`: update nbconvert to IPython 1.0 +* :ghissue:`1038`: DataFrame with integer names not handled in ARIMA +* :ghissue:`1036`: Series no longer inherits from ndarray +* :ghissue:`1028`: Test fail with windows and Anaconda - Low priority +* :ghissue:`676`: acorr_breush_godfrey undefined nlags +* :ghissue:`922`: lowess returns inconsistent with option +* :ghissue:`425`: no bse in robust with norm=TrimmedMean +* :ghissue:`1025`: add_constant incorrectly detects constant column diff --git a/docs/source/release/index.rst b/docs/source/release/index.rst new file mode 100644 index 0000000..cdeb0c6 --- /dev/null +++ b/docs/source/release/index.rst @@ -0,0 +1,26 @@ +.. During each release add in this folder information about important changes. +.. Each versionx.x.rst file should have four main sections. +.. (1) Major features (2) Important bug fixes (3) API breakage (4) Credits + +.. The github-stats-x.x.rst files are generated by tools/github_stats.py with +.. some cleanup afterwards. I do python github_stats.py > github-stats-x.x.rst. +.. As of the 0.5 release, this script asks for your github name and password +.. to download the statistics. + +.. _whatsnew_index: + +========================= +What's new in Statsmodels +========================= + +.. toctree:: + :maxdepth: 1 + + version0.8 + version0.7 + version0.6 + github-stats-0.6 + version0.5 + github-stats-0.5 + +For an overview of changes that occured previous to the 0.5.0 release see :ref:`old_changes`. diff --git a/docs/source/release/old_changes.rst b/docs/source/release/old_changes.rst new file mode 100644 index 0000000..f36e1e4 --- /dev/null +++ b/docs/source/release/old_changes.rst @@ -0,0 +1,243 @@ +:orphan: + +.. _old_changes: + +Pre 0.5.0 Release History +========================= + +0.5.0 +----- +*Main Changes and Additions* +* Add patsy dependency + +*Compatibility and Deprecation* + +* cleanup of import paths (lowess) +* + +*Bug Fixes* + +* input shapes of tools.isestimable +* + +*Enhancements and Additions* + +* formula integration based on patsy (new dependency) +* Time series analysis + - ARIMA modeling + - enhanced forecasting based on pandas datetime handling +* expanded margins for discrete models +* OLS outlier test + +* empirical likelihood - Google Summer of Code 2012 project + - inference for descriptive statistics + - inference for regression models + - accelerated failure time models + +* expanded probability plots +* improved graphics + - plotcorr + - acf and pacf +* new datasets +* new and improved tools + - numdiff numerical differentiation + + + +0.4.3 +----- + +The only change compared to 0.4.2 is for compatibility with python 3.2.3 +(changed behavior of 2to3) + + +0.4.2 +----- + +This is a bug-fix release, that affects mainly Big-Endian machines. + +*Bug Fixes* + +* discrete_model.MNLogit fix summary method +* tsa.filters.hp_filter don't use umfpack on Big-Endian machine (scipy bug) +* the remaining fixes are in the test suite, either precision problems + on some machines or incorrect testing on Big-Endian machines. + + + +0.4.1 +----- + +This is a backwards compatible (according to our test suite) release with +bug fixes and code cleanup. + +*Bug Fixes* + +* build and distribution fixes +* lowess correct distance calculation +* genmod correction CDFlink derivative +* adfuller _autolag correct calculation of optimal lag +* het_arch, het_lm : fix autolag and store options +* GLSAR: incorrect whitening for lag>1 + +*Other Changes* + +* add lowess and other functions to api and documentation +* rename lowess module (old import path will be removed at next release) +* new robust sandwich covariance estimators, moved out of sandbox +* compatibility with pandas 0.8 +* new plots in statsmodels.graphics + - ABLine plot + - interaction plot + + +0.4.0 +----- + +*Main Changes and Additions* + +* Added pandas dependency. +* Cython source is built automatically if cython and compiler are present +* Support use of dates in timeseries models +* Improved plots + - Violin plots + - Bean Plots + - QQ Plots +* Added lowess function +* Support for pandas Series and DataFrame objects. Results instances return + pandas objects if the models are fit using pandas objects. +* Full Python 3 compatibility +* Fix bugs in genfromdta. Convert Stata .dta format to structured array + preserving all types. Conversion is much faster now. +* Improved documentation +* Models and results are pickleable via save/load, optionally saving the model + data. +* Kernel Density Estimation now uses Cython and is considerably faster. +* Diagnostics for outlier and influence statistics in OLS +* Added El Nino Sea Surface Temperatures dataset +* Numerous bug fixes +* Internal code refactoring +* Improved documentation including examples as part of HTML + +*Changes that break backwards compatibility* + +* Deprecated scikits namespace. The recommended import is now:: + + import statsmodels.api as sm + +* model.predict methods signature is now (params, exog, ...) where before + it assumed that the model had been fit and omitted the params argument. +* For consistency with other multi-equation models, the parameters of MNLogit + are now transposed. +* tools.tools.ECDF -> distributions.ECDF +* tools.tools.monotone_fn_inverter -> distributions.monotone_fn_inverter +* tools.tools.StepFunction -> distributions.StepFunction + + +0.3.1 +----- + +* Removed academic-only WFS dataset. +* Fix easy_install issue on Windows. + +0.3.0 +----- + +*Changes that break backwards compatibility* + +Added api.py for importing. So the new convention for importing is:: + + import statsmodels.api as sm + +Importing from modules directly now avoids unnecessary imports and increases +the import speed if a library or user only needs specific functions. + +* sandbox/output.py -> iolib/table.py +* lib/io.py -> iolib/foreign.py (Now contains Stata .dta format reader) +* family -> families +* families.links.inverse -> families.links.inverse_power +* Datasets' Load class is now load function. +* regression.py -> regression/linear_model.py +* discretemod.py -> discrete/discrete_model.py +* rlm.py -> robust/robust_linear_model.py +* glm.py -> genmod/generalized_linear_model.py +* model.py -> base/model.py +* t() method -> tvalues attribute (t() still exists but raises a warning) + +*Main changes and additions* + +* Numerous bugfixes. +* Time Series Analysis model (tsa) + + - Vector Autoregression Models VAR (tsa.VAR) + - Autogressive Models AR (tsa.AR) + - Autoregressive Moving Average Models ARMA (tsa.ARMA) + optionally uses Cython for Kalman Filtering + use setup.py install with option --with-cython + - Baxter-King band-pass filter (tsa.filters.bkfilter) + - Hodrick-Prescott filter (tsa.filters.hpfilter) + - Christiano-Fitzgerald filter (tsa.filters.cffilter) + +* Improved maximum likelihood framework uses all available scipy.optimize solvers +* Refactor of the datasets sub-package. +* Added more datasets for examples. +* Removed RPy dependency for running the test suite. +* Refactored the test suite. +* Refactored codebase/directory structure. +* Support for offset and exposure in GLM. +* Removed data_weights argument to GLM.fit for Binomial models. +* New statistical tests, especially diagnostic and specification tests +* Multiple test correction +* General Method of Moment framework in sandbox +* Improved documentation +* and other additions + + +0.2.0 +----- + +*Main changes* + + * renames for more consistency + RLM.fitted_values -> RLM.fittedvalues + GLMResults.resid_dev -> GLMResults.resid_deviance + * GLMResults, RegressionResults: + lazy calculations, convert attributes to properties with _cache + * fix tests to run without rpy + * expanded examples in examples directory + * add PyDTA to lib.io -- functions for reading Stata .dta binary files + and converting + them to numpy arrays + * made tools.categorical much more robust + * add_constant now takes a prepend argument + * fix GLS to work with only a one column design + +*New* + + * add four new datasets + + - A dataset from the American National Election Studies (1996) + - Grunfeld (1950) investment data + - Spector and Mazzeo (1980) program effectiveness data + - A US macroeconomic dataset + * add four new Maximum Likelihood Estimators for models with a discrete + dependent variables with examples + + - Logit + - Probit + - MNLogit (multinomial logit) + - Poisson + +*Sandbox* + + * add qqplot in sandbox.graphics + * add sandbox.tsa (time series analysis) and sandbox.regression (anova) + * add principal component analysis in sandbox.tools + * add Seemingly Unrelated Regression (SUR) and Two-Stage Least Squares + for systems of equations in sandbox.sysreg.Sem2SLS + * add restricted least squares (RLS) + + +0.1.0b1 +------- + * initial release diff --git a/docs/source/release/version0.5.rst b/docs/source/release/version0.5.rst new file mode 100644 index 0000000..19a364c --- /dev/null +++ b/docs/source/release/version0.5.rst @@ -0,0 +1,232 @@ +=========== +0.5 Release +=========== + +Release 0.5.0 +============= + +Statsmodels 0.5 is a large and very exciting release that brings together a year of work done by 38 authors, including over 2000 commits. It contains many new features and a large amount of bug fixes detailed below. + +See the :ref:`list of fixed issues ` for specific closed issues. + +The following major new features appear in this version. + +Support for Model Formulas via Patsy +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Statsmodels now supports fitting models with a formula. This functionality is provided by `patsy `_. Patsy is now a dependency for statsmodels. Models can be individually imported from the ``statsmodels.formula.api`` namespace or you can import them all as:: + + import statsmodels.formula.api as smf + +Alternatively, each model in the usual ``statsmodels.api`` namespace has a ``from_formula`` classmethod that will create a model using a formula. Formulas are also available for specifying linear hypothesis tests using the ``t_test`` and ``f_test`` methods after model fitting. A typical workflow can now look something like this. + +.. code-block:: python + + import numpy as np + import pandas as pd + import statsmodels.formula.api as smf + + url = 'http://vincentarelbundock.github.io/Rdatasets/csv/HistData/Guerry.csv' + data = pd.read_csv(url) + + # Fit regression model (using the natural log of one of the regressors) + results = smf.ols('Lottery ~ Literacy + np.log(Pop1831)', data=data).fit() + +See :ref:`here for some more documentation of using formulas in statsmodels ` + +Empirical Likelihood (Google Summer of Code 2012 project) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Empirical Likelihood-Based Inference for moments of univariate and multivariate variables is available as well as EL-based ANOVA tests. EL-based linear regression, including the regression through the origin model. In addition, the accelerated failure time model for inference on a linear regression model with a randomly right censored endogenous variable is available. + +Analysis of Variance (ANOVA) Modeling +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Support for ANOVA is now available including type I, II, and III sums of squares. See :ref:`anova`. + +.. currentmodule:: statsmodels.nonparametric + +Multivariate Kernel Density Estimators (GSoC 2012 project) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Kernel density estimation has been extended to handle multivariate estimation as well via product kernels. It is available as :class:`sm.nonparametric.KDEMultivariate `. It supports least squares and maximum likelihood cross-validation for bandwidth estimation, as well as mixed continuous, ordered, and unordered categorical data. Conditional density estimation is also available via :class:`sm.nonparametric.KDEMUltivariateConditional `. + +Nonparameteric Regression (GSoC 2012 project) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Kernel regression models are now available via :class:`sm.nonparametric.KernelReg `. It is based on the product kernel mentioned above, so it also has the same set of features including support for cross-validation as well as support for estimation mixed continuous and categorical variables. Censored kernel regression is also provided by `kernel_regression.KernelCensoredReg`. + +Quantile Regression Model +~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. currentmodule:: statsmodels.regression.quantile_regression + +Quantile regression is supported via the :class:`sm.QuantReg ` class. Kernel and bandwidth selection options are available for estimating the asymptotic covariance matrix using a kernel density estimator. + +Negative Binomial Regression Model +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. currentmodule:: statsmodels.discrete.discrete_model + +It is now possible to fit negative binomial models for count data via maximum-likelihood using the :class:`sm.NegativeBinomial ` class. ``NB1``, ``NB2``, and ``geometric`` variance specifications are available. + +l1-penalized Discrete Choice Models +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +A new optimization method has been added to the discrete models, which includes Logit, Probit, MNLogit and Poisson, that makes it possible to estimate the models with an l1, linear, penalization. This shrinks parameters towards zero and can set parameters that are not very different from zero to zero. This is especially useful if there are a large number of explanatory variables and a large associated number of parameters. `CVXOPT `_ is now an optional dependency that can be used for fitting these models. + +New and Improved Graphics +~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. currentmodule:: statsmodels.graphics + +* **ProbPlot**: A new `ProbPlot` object has been added to provide a simple interface to create P-P, Q-Q, and probability plots with options to fit a distribution and show various reference lines. In the case of Q-Q and P-P plots, two different samples can be compared with the `other` keyword argument. :func:`sm.graphics.ProbPlot ` + +.. code-block:: python + + import numpy as np + import statsmodels.api as sm + x = np.random.normal(loc=1.12, scale=0.25, size=37) + y = np.random.normal(loc=0.75, scale=0.45, size=37) + ppx = sm.ProbPlot(x) + ppy = sm.ProbPlot(y) + fig1 = ppx.qqplot() + fig2 = ppx.qqplot(other=ppy) + +* **Mosaic Plot**: Create a mosaic plot from a contingency table. This allows you to visualize multivariate categorical data in a rigorous and informative way. Available with :func:`sm.graphics.mosaic `. + +* **Interaction Plot**: Interaction plots now handle categorical factors as well as other improviments. :func:`sm.graphics.interaction_plot `. + +* **Regression Plots**: The regression plots have been refactored and improved. They can now handle pandas objects and regression results instances appropriately. See :func:`sm.graphics.plot_fit `, :func:`sm.graphics.plot_regress_exog `, :func:`sm.graphics.plot_partregress `, :func:`sm.graphics.plot_ccpr `, :func:`sm.graphics.abline_plot `, :func:`sm.graphics.influence_plot `, and :func:`sm.graphics.plot_leverage_resid2 `. + +.. currentmodule:: statsmodels.stats.power + +Power and Sample Size Calculations +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The power module (``statsmodel.stats.power``) currently implements power and sample size calculations for the t-tests (:class:`sm.stats.TTestPower `, :class:`sm.stats.TTestIndPower `), normal based test (:class:`sm.stats.NormIndPower `), F-tests (:class:`sm.stats.FTestPower `, `:class:sm.stats.FTestAnovaPower `) and Chisquare goodness of fit (:class:`sm.stats.GofChisquarePower `) test. The implementation is class based, but the module also provides three shortcut functions, :func:`sm.stats.tt_solve_power `, :func:`sm.stats.tt_ind_solve_power ` and :func:`sm.stats.zt_ind_solve_power ` to solve for any one of the parameters of the power equations. See this `blog post `_ for a more in-depth description of the additions. + + +Other important new features +---------------------------- +* **IPython notebook examples**: Many of our examples have been converted or added as IPython notebooks now. They are available `here `_. + +* **Improved marginal effects for discrete choice models**: Expanded options for obtaining marginal effects after the estimation of nonlinear discrete choice models are available. See :py:meth:`get_margeff `. + +* **OLS influence outlier measures**: After the estimation of a model with OLS, the common set of influence and outlier measures and a outlier test are now available attached as methods ``get_influnce`` and ``outlier_test`` to the Results instance. See :py:class:`OLSInfluence ` and :func:`outlier_test `. + +* **New datasets**: New :ref:`datasets ` are available for examples. + +* **Access to R datasets**: We now have access to many of the same datasets available to R users through the `Rdatasets project `_. You can access these using the :func:`sm.datasets.get_rdataset ` function. This function also includes caching of these datasets. + +* **Improved numerical differentiation tools**: Numerical differentiation routines have been greatly improved and expanded to cover all the routines discussed in:: + + Ridout, M.S. (2009) Statistical applications of the complex-step method + of numerical differentiation. The American Statistician, 63, 66-74 + + See the :ref:`sm.tools.numdiff ` module. + +* **Consistent constant handling across models**: Result statistics no longer rely on the assumption that a constant is present in the model. + +* **Missing value handling across models**: Users can now control what models do in the presence of missing values via the ``missing`` keyword available in the instantiation of every model. The options are ``'none'``, ``'drop'``, and ``'raise'``. The default is ``'none'``, which does no missing value checks. To drop missing values use ``'drop'``. And ``'raise'`` will raise an error in the presence of any missing data. + +.. currentmodule:: statsmodels.iolib + +* **Ability to write Stata datasets**: Added the ability to write Stata ``.dta`` files. See :class:`sm.iolib.StataWriter `. + +.. currentmodule:: statsmodels.tsa.arima_model + +* **ARIMA modeling**: Statsmodels now has support for fitting Autoregressive Integrated Moving Average (ARIMA) models. See :class:`ARIMA` and :class:`ARIMAResults` for more information. + +* **Support for dynamic prediction in AR(I)MA models**: It is now possible to obtain dynamic in-sample forecast values in :class:`ARMA` and :class:`ARIMA` models. + +* **Improved Pandas integration**: Statsmodels now supports all frequencies available in pandas for time-series modeling. These are used for intelligent dates handling for prediction. These features are available, if you pass a pandas Series or DataFrame with a DatetimeIndex to a time-series model. + +.. currentmodule:: statsmodels + +* **New statistical hypothesis tests**: Added statistics for calculating interrater agreement including Cohen's kappa and Fleiss' kappa (See :ref:`interrater`), statistics and hypothesis tests for proportions (See :ref:`proportion stats `), Tukey HSD (with plot) was added as an enhancement to the multiple comparison tests (:class:`sm.stats.multicomp.MultiComparison `, :func:`sm.stats.multicomp.pairwise_tukeyhsd `). Weighted statistics and t tests were enhanced with new options. Tests of equivalence for one sample and two independent or paired samples were added based on t tests and z tests (See :ref:`tost`). + + +Major Bugs fixed +---------------- + +* Post-estimation statistics for weighted least squares that depended on the centered total sum of squares were not correct. These are now correct and tested. See :ghissue:`501`. + +* Regression through the origin models now correctly use uncentered total sum of squares in post-estimation statistics. This affected the :math:`R^2` value in linear models without a constant. See :ghissue:`27`. + +Backwards incompatible changes and deprecations +----------------------------------------------- + +* Cython code is now non-optional. You will need a C compiler to build from source. If building from github and not a source release, you will also need Cython installed. See the :ref:`installation documentation `. + +* The ``q_matrix`` keyword to `t_test` and `f_test` for linear models is deprecated. You can now specify linear hypotheses using formulas. + +.. currentmodule:: statsmodels.tsa + +* The ``conf_int`` keyword to :func:`sm.tsa.acf ` is deprecated. + +* The ``names`` argument is deprecated in :class:`sm.tsa.VAR ` and `sm.tsa.SVAR `. This is now automatically detected and handled. + +.. currentmodule:: statsmodels.tsa + +* The ``order`` keyword to :py:meth:`sm.tsa.ARMA.fit ` is deprecated. It is now passed in during model instantiation. + +.. currentmodule:: statsmodels.distributions + +* The empirical distribution function (:class:`sm.distributions.ECDF `) and supporting functions have been moved to ``statsmodels.distributions``. Their old paths have been deprecated. + +* The ``margeff`` method of the discrete choice models has been deprecated. Use ``get_margeff`` instead. See above. Also, the vague ``resid`` attribute of the discrete choice models has been deprecated in favor of the more descriptive ``resid_dev`` to indicate that they are deviance residuals. + +.. currentmodule:: statsmodels.nonparametric.kde + +* The class ``KDE`` has been deprecated and renamed to :class:`KDEUnivariate` to distinguish it from the new ``KDEMultivariate``. See above. + +Development summary and credits +------------------------------- + +The previous version (statsmodels 0.4.3) was released on July 2, 2012. Since then we have closed a total of 380 issues, 172 pull requests and 208 regular issues. The :ref:`detailed list` can be viewed. + +This release is a result of the work of the following 38 authors who contributed total of 2032 commits. If for any reason, we've failed to list your name in the below, please contact us: + +* Ana Martinez Pardo +* anov +* avishaylivne +* Bruno Rodrigues +* Carl Vogel +* Chad Fulton +* Christian Prinoth +* Daniel B. Smith +* dengemann +* Dieter Vandenbussche +* Dougal Sutherland +* Enrico Giampieri +* evelynmitchell +* George Panterov +* Grayson +* Jan Schulz +* Josef Perktold +* Jeff Reback +* Justin Grana +* langmore +* Matthew Brett +* Nathaniel J. Smith +* otterb +* padarn +* Paul Hobson +* Pietro Battiston +* Ralf Gommers +* Richard T. Guy +* Robert Cimrman +* Skipper Seabold +* Thomas Haslwanter +* timmie +* Tom Augspurger +* Trent Hauck +* tylerhartley +* Vincent Arel-Bundock +* VirgileFritsch +* Zhenya + +.. note:: + + Obtained by running ``git log v0.4.3..HEAD --format='* %aN <%aE>' | sed 's/@/\-at\-/' | sed 's/<>//' | sort -u``. + diff --git a/docs/source/release/version0.6.rst b/docs/source/release/version0.6.rst new file mode 100644 index 0000000..1f3c7ad --- /dev/null +++ b/docs/source/release/version0.6.rst @@ -0,0 +1,267 @@ +:orphan: + +=========== +0.6 Release +=========== + +Release 0.6.1 +============= + +Statsmodels 0.6.1 is a bugfix release. All users are encouraged to upgrade to 0.6.1. + +See the :ref:`list of fixed issues ` for specific backported fixes. + +Release 0.6.0 +============= + +Statsmodels 0.6.0 is another large release. It is the result of the work of 37 authors over the last year and includes over 1500 commits. It contains many new features, improvements, and bug fixes detailed below. + + +See the :ref:`list of fixed issues ` for specific closed issues. + +The following major new features appear in this version. + +Generalized Estimating Equations +-------------------------------- + +Generalized Estimating Equations (GEE) provide an approach to handling +dependent data in a regression analysis. Dependent data arise +commonly in practice, such as in a longitudinal study where repeated +observations are collected on subjects. GEE can be viewed as an +extension of the generalized linear modeling (GLM) framework to the +dependent data setting. The familiar GLM families such as the +Gaussian, Poisson, and logistic families can be used to accommodate +dependent variables with various distributions. + +Here is an example of GEE Poisson regression in a data set with four +count-type repeated measures per subject, and three explanatory +covariates. + +.. code-block:: python + + import numpy as np + import statsmodels.api as sm + import statsmodels.formula.api as smf + + data = sm.datasets.get_rdataset("epil", "MASS").data + + md = smf.gee("y ~ age + trt + base", "subject", data, + cov_struct=sm.cov_struct.Independence(), + family=sm.families.Poisson()) + mdf = md.fit() + print mdf.summary() + + +The dependence structure in a GEE is treated as a nuisance parameter +and is modeled in terms of a "working dependence structure". The +statsmodels GEE implementation currently includes five working +dependence structures (independent, exchangeable, autoregressive, +nested, and a global odds ratio for working with categorical data). +Since the GEE estimates are not maximum likelihood estimates, +alternative approaches to some common inference procedures have been +developed. The statsmodels GEE implementation currently provides +standard errors, Wald tests, score tests for arbitrary parameter +contrasts, and estimates and tests for marginal effects. Several +forms of standard errors are provided, including robust standard +errors that are approximately correct even if the working dependence +structure is misspecified. + +Seasonality Plots +----------------- + +Adding functionality to look at seasonality in plots. Two new functions are :func:`sm.graphics.tsa.month_plot` and :func:`sm.graphics.tsa.quarter_plot`. Another function :func:`sm.graphics.tsa.seasonal_plot` is available for power users. + +.. code-block:: python + + import statsmodels.api as sm + import pandas as pd + + dta = sm.datasets.elnino.load_pandas().data + dta['YEAR'] = dta.YEAR.astype(int).astype(str) + dta = dta.set_index('YEAR').T.unstack() + dates = map(lambda x : pd.datetools.parse('1 '+' '.join(x)), + dta.index.values) + + dta.index = pd.DatetimeIndex(dates, freq='M') + fig = sm.tsa.graphics.month_plot(dta) + +.. currentmodule:: statsmodels.tsa + +Seasonal Decomposition +---------------------- + +We added a naive seasonal decomposition tool in the same vein as R's ``decompose``. This function can be found as :func:`sm.tsa.seasonal_decompose `. + + +.. plot:: + :include-source: + + import statsmodels.api as sm + + dta = sm.datasets.co2.load_pandas().data + # deal with missing values. see issue + dta.co2.interpolate(inplace=True) + + res = sm.tsa.seasonal_decompose(dta.co2) + res.plot() + + +Addition of Linear Mixed Effects Models (MixedLM) + +Linear Mixed Effects Models +--------------------------- + +Linear Mixed Effects models are used for regression analyses involving +dependent data. Such data arise when working with longitudinal and +other study designs in which multiple observations are made on each +subject. Two specific mixed effects models are "random intercepts +models", where all responses in a single group are additively shifted +by a value that is specific to the group, and "random slopes models", +where the values follow a mean trajectory that is linear in observed +covariates, with both the slopes and intercept being specific to the +group. The Statsmodels MixedLM implementation allows arbitrary random +effects design matrices to be specified for the groups, so these and +other types of random effects models can all be fit. + +Here is an example of fitting a random intercepts model to data from a +longitudinal study: + +.. code-block:: python + + import statsmodels.api as sm + import statsmodels.formula.api as smf + data = sm.datasets.get_rdataset('dietox', 'geepack', cache=True).data + md = smf.mixedlm("Weight ~ Time", data, groups=data["Pig"]) + mdf = md.fit() + print mdf.summary() + +The Statsmodels LME framework currently supports post-estimation +inference via Wald tests and confidence intervals on the coefficients, +profile likelihood analysis, likelihood ratio testing, and AIC. Some +limitations of the current implementation are that it does not support +structure more complex on the residual errors (they are always +homoscedastic), and it does not support crossed random effects. We +hope to implement these features for the next release. + +Wrapping X-12-ARIMA/X-13-ARIMA +------------------------------ + +It is now possible to call out to X-12-ARIMA or X-13ARIMA-SEATS from statsmodels. These libraries must be installed separately. + +.. plot:: + :include-source: + + import statsmodels.api as sm + + dta = sm.datasets.co2.load_pandas().data + dta.co2.interpolate(inplace=True) + dta = dta.resample('M').last() + + res = sm.tsa.x13_arima_select_order(dta.co2) + print(res.order, res.sorder) + + results = sm.tsa.x13_arima_analysis(dta.co2) + + fig = results.plot() + fig.set_size_inches(12, 5) + fig.tight_layout() + + +Other important new features +---------------------------- + +* The AR(I)MA models now have a :func:`plot_predict ` method to plot forecasts and confidence intervals. +* The Kalman filter Cython code underlying AR(I)MA estimation has been substantially optimized. You can expect speed-ups of one to two orders of magnitude. + +* Added :func:`sm.tsa.arma_order_select_ic`. A convenience function to quickly get the information criteria for use in tentative order selection of ARMA processes. + +* Plotting functions for timeseries is now imported under the ``sm.tsa.graphics`` namespace in addition to ``sm.graphics.tsa``. + +* New `distributions.ExpandedNormal` class implements the Edgeworth expansion for weakly non-normal distributions. + +* **New datasets**: Added new :ref:`datasets ` for examples. ``sm.datasets.co2`` is a univariate time-series dataset of weekly co2 readings. It exhibits a trend and seasonality and has missing values. + +* Added robust skewness and kurtosis estimators in :func:`sm.stats.stattools.robust_skewness` and :func:`sm.stats.stattools.robust_kurtosis`, respectively. An alternative robust measure of skewness has been added in :func:`sm.stats.stattools.medcouple`. + +* New functions added to correlation tools: `corr_nearest_factor` + finds the closest factor-structured correlation matrix to a given + square matrix in the Frobenius norm; `corr_thresholded` efficiently + constructs a hard-thresholded correlation matrix using sparse matrix + operations. + +* New `dot_plot` in graphics: A dotplot is a way to visualize a small dataset + in a way that immediately conveys the identity of every point in the plot. + Dotplots are commonly seen in meta-analyses, where they are known + as "forest plots", but can be used in many other settings as well. + Most tables that appear in research papers can be represented + graphically as a dotplot. +* Statsmodels has added custom warnings to ``statsmodels.tools.sm_exceptions``. By default all of these warnings will be raised whenever appropriate. Use ``warnings.simplefilter`` to turn them off, if desired. +* Allow control over the namespace used to evaluate formulas with patsy via the ``eval_env`` keyword argument. See the :ref:`patsy-namespaces` documentation for more information. + + +Major Bugs fixed +---------------- + +* NA-handling with formulas is now correctly handled. :ghissue:`805`, :ghissue:`1877`. +* Better error messages when an array with an object dtype is used. :ghissue:`2013`. +* ARIMA forecasts were hard-coded for order of integration with ``d = 1``. :ghissue:`1562`. + +.. currentmodule:: statsmodels.tsa + +Backwards incompatible changes and deprecations +----------------------------------------------- + +* RegressionResults.norm_resid is now a readonly property, rather than a function. +* The function ``statsmodels.tsa.filters.arfilter`` has been removed. This did not compute a recursive AR filter but was instead a convolution filter. Two new functions have been added with clearer names :func:`sm.tsa.filters.recursive_filter ` and :func:`sm.tsa.filters.convolution_filter `. + +Development summary and credits +------------------------------- + +The previous version (0.5.0) was released August 14, 2014. Since then we have closed a total of 528 issues, 276 pull requests, and 252 regular issues. Refer to the :ref:`detailed list` for more information. + +This release is a result of the work of the following 37 authors who contributed a total of 1531 commits. If for any reason we have failed to list your name in the below, please contact us: + +A blurb about the number of changes and the contributors list. + +* Alex Griffing +* Alex Parij +* Ana Martinez Pardo +* Andrew Clegg +* Ben Duffield +* Chad Fulton +* Chris Kerr +* Eric Chiang +* Evgeni Burovski +* gliptak +* Hans-Martin von Gaudecker +* Jan Schulz +* jfoo +* Joe Hand +* Josef Perktold +* jsphon +* Justin Grana +* Kerby Shedden +* Kevin Sheppard +* Kyle Beauchamp +* Lars Buitinck +* Max Linke +* Miroslav Batchkarov +* m +* Padarn Wilson +* Paul Hobson +* Pietro Battiston +* Radim Řehůřek +* Ralf Gommers +* Richard T. Guy +* Roy Hyunjin Han +* Skipper Seabold +* Tom Augspurger +* Trent Hauck +* Valentin Haenel +* Vincent Arel-Bundock +* Yaroslav Halchenko + +.. note:: + + Obtained by running ``git log v0.5.0..HEAD --format='* %aN <%aE>' | sed 's/@/\-at\-/' | sed 's/<>//' | sort -u``. + diff --git a/docs/source/release/version0.7.rst b/docs/source/release/version0.7.rst new file mode 100644 index 0000000..cd1b61e --- /dev/null +++ b/docs/source/release/version0.7.rst @@ -0,0 +1,258 @@ +:orphan: + +=========== +0.7 Release +=========== + +Release 0.7.0 +============= + +Release summary +--------------- + +**Note:** This version has never been officially released. Several models have +been refactored, improved or bugfixed in 0.8. + + +The following major new features appear in this version. + +Principal Component Analysis +---------------------------- + +Author: Kevin Sheppard + +A new class-based Principal Component Analysis has been added. This +class replaces the function-based PCA that previously existed in the +sandbox. This change bring a number of new features, including: + +* Options to control the standardization (demeaning/studentizing) +* Scree plotting +* Information criteria for selecting the number of factors +* R-squared plots to assess component fit +* NIPALS implementation when only a small number of components are required and the dataset is large +* Missing-value filling using the EM algorithm + +.. code-block:: python + + import statsmodels.api as sm + from statsmodels.tools.pca import PCA + + data = sm.datasets.fertility.load_pandas().data + + columns = map(str, range(1960, 2012)) + data.set_index('Country Name', inplace=True) + dta = data[columns] + dta = dta.dropna() + + pca_model = PCA(dta.T, standardize=False, demean=True) + pca_model.plot_scree() + +*Note* : A function version is also available which is compatible with the +call in the sandbox. The function version is just a thin wrapper around the +class-based PCA implementation. + +Regression graphics for GLM/GEE +------------------------------- + +Author: Kerby Shedden + +Added variable plots, partial residual plots, and CERES residual plots +are available for GLM and GEE models by calling the methods +`plot_added_variable`, `plot_partial_residuals`, and +`plot_ceres_residuals` that are attached to the results classes. + +State Space Models +------------------ + +Author: Chad Fulton + +State space methods provide a flexible structure for the estimation and +analysis of a wide class of time series models. The Statsmodels implementation +allows specification of state models, fast Kalman filtering, and built-in +methods to facilitate maximum likelihood estimation of arbitrary models. One of +the primary goals of this module is to allow end users to create and estimate +their own models. Below is a short example demonstrating the ease with which a +local level model can be specified and estimated: + +.. code-block:: python + + import numpy as np + import statsmodels.api as sm + import pandas as pd + + data = sm.datasets.nile.load_pandas().data + data.index = pd.DatetimeIndex(data.year.astype(int).astype(str), freq='AS') + + # Setup the state space representation + class LocalLevel(sm.tsa.statespace.MLEModel): + def __init__(self, endog): + # Initialize the state space model + super(LocalLevel, self).__init__( + endog, k_states=1, initialization='approximate_diffuse') + + # Setup known components of state space representation matrices + self.ssm['design', :] = 1. + self.ssm['transition', :] = 1. + self.ssm['selection', :] = 1. + + # Describe how parameters enter the model + def update(self, params, transformed=True): + params = super(LocalLevel, self).update(params, transformed) + self.ssm['obs_cov', 0, 0] = params[0] + self.ssm['state_cov', 0, 0] = params[1] + + def transform_params(self, params): + return params**2 # force variance parameters to be positive + + # Specify start parameters and parameter names + @property + def start_params(self): + return [np.std(self.endog)]*2 + + @property + def param_names(self): + return ['sigma2.measurement', 'sigma2.level'] + + # Fit the model with maximum likelihood estimation + mod = LocalLevel(data['volume']) + res = mod.fit() + print res.summary() + +The documentation and example notebooks provide further examples of how to +form state space models. Included in this release is a full-fledged +model making use of the state space infrastructure to estimate SARIMAX +models. See below for more details. + +Time Series Models (ARIMA) with Seasonal Effects +------------------------------------------------ + +Author: Chad Fulton + +A model for estimating seasonal autoregressive integrated moving average models +with exogenous regressors (SARIMAX) has been added by taking advantage of the +new state space functionality. It can be used very similarly to the existing +`ARIMA` model, but works on a wider range of specifications, including: + +* Additive and multiplicative seasonal effects +* Flexible trend specications +* Regression with SARIMA errors +* Regression with time-varying coefficients +* Measurement error in the endogenous variables + +Below is a short example fitting a model with a number of these components, +including exogenous data, a linear trend, and annual multiplicative seasonal +effects. + +.. code-block:: python + + import statsmodels.api as sm + import pandas as pd + + data = sm.datasets.macrodata.load_pandas().data + data.index = pd.DatetimeIndex(start='1959-01-01', end='2009-09-01', + freq='QS') + endog = data['realcons'] + exog = data['m1'] + + mod = sm.tsa.SARIMAX(endog, exog=exog, order=(1,1,1), + trend='t', seasonal_order=(0,0,1,4)) + res = mod.fit() + print res.summary() + + +Generalized Estimating Equations GEE +------------------------------------ + +Author: Kerby Shedden + +Enhancements and performance improvements for GEE: + +* EquivalenceClass covariance structure allows covariances to be specified by + arbitrary collections of equality constraints #2188 +* add weights #2090 +* refactored margins #2158 + + +MixedLM +------- + +Author: Kerby Shedden with Saket Choudhary + +Enhancements to MixedLM (#2363): added variance components support for +MixedLM allowing a wider range of random effects structures to be specified; +also performance improvements from use of sparse matrices internally for +random effects design matrices. + + +Other important new features +---------------------------- + +* GLM: add scipy-based gradient optimization to fit #1961 (Kerby Shedden) +* wald_test_terms: new method of LikelihoodModels to compute wald tests (F or chi-square) + for terms or sets of coefficients #2132 (Josef Perktold) +* add cov_type with fixed scale in WLS to allow chi2-fitting #2137 #2143 + (Josef Perktold, Christoph Deil) +* VAR: allow generalized IRF and FEVD computation #2067 (Josef Perktold) +* get_prediction new method for full prediction results (new API convention) + + + +Major Bugs fixed +---------------- + +* see github issues for a full list +* bug in ARMA/ARIMA predict with `exog` #2470 +* bugs in VAR +* x13: python 3 compatibility + + + +Backwards incompatible changes and deprecations +----------------------------------------------- + +* List backwards incompatible changes + + +Development summary and credits +------------------------------- + + + +.. note:: + +Thanks to all of the contributors for the 0.7 release: + +.. note:: + + * Alex Griffing + * Antony Lee + * Chad Fulton + * Christoph Deil + * Daniel Sullivan + * Hans-Martin von Gaudecker + * Jan Schulz + * Joey Stockermans + * Josef Perktold + * Kerby Shedden + * Kevin Sheppard + * Kiyoto Tamura + * Louis-Philippe Lemieux Perreault + * Padarn Wilson + * Ralf Gommers + * Saket Choudhary + * Skipper Seabold + * Tom Augspurger + * Trent Hauck + * Vincent Arel-Bundock + * chebee7i + * donbeo + * gliptak + * hlin117 + * jerry dumblauskas + * jonahwilliams + * kiyoto + * neilsummers + * waynenilsen + +These lists of names are automatically generated based on git log, and may not be +complete. diff --git a/docs/source/release/version0.8.rst b/docs/source/release/version0.8.rst new file mode 100644 index 0000000..568cec1 --- /dev/null +++ b/docs/source/release/version0.8.rst @@ -0,0 +1,330 @@ +:orphan: + +=========== +0.8 Release +=========== + +Release 0.8.0 +============= + +See also changes in the unreleased 0.7 + +Release summary +--------------- + +The main features of this release are several new time series models based +on the statespace framework, multiple imputation using MICE as well as many +other enhancements. The codebase also has been updated to be compatible with +recent numpy and pandas releases. + +Statsmodels is using now github to store the updated documentation which +is available under +http://www.statsmodels.org/stable for the last release, and +http://www.statsmodels.org/dev/ for the development version. + +This is the last release that supports Python 2.6. + + +**Warning** + +API stability is not guaranteed for new features, although even in this case +changes will be made in a backwards compatible way if possible. The stability +of a new feature depends on how much time it was already in statsmodels master +and how much usage it has already seen. +If there are specific known problems or limitations, then they are mentioned +in the docstrings. + + +The following major new features appear in this version. + +Statespace Models +----------------- + +Building on the statespace framework and models added in 0.7, this release +includes additional models that build on it. +Authored by Chad Fulton largely during GSOC 2015 + +Kalman Smoother +^^^^^^^^^^^^^^^ + +The Kalman smoother (introduced in #2434) allows making inference on the +unobserved state vector at each point in time using data from the entire +sample. In addition to this improved inference, the Kalman smoother is required +for future improvements such as simulation smoothing and the expectation +maximization (EM) algorithm. + +As a result of this improvement, all state space models now inherit a `smooth` +method for producing results with smoothed state estimates. In addition, the +`fit` method will return results with smoothed estimates at the maximum +likelihood estimates. + +Postestimation +^^^^^^^^^^^^^^ + +Improved post-estimation output is now available to all state space models +(introduced in #2566). This includes the new methods `get_prediction` and +`get_forecast`, providing standard errors and confidence intervals as well +as point estimates, `simulate`, providing simulation of time series following +the given state space process, and `impulse_responses`, allowing computation +of impulse responses due to innovations to the state vector. + +Diagnostics +^^^^^^^^^^^ + +A number of general diagnostic tests on the residuals from state space +estimation are now available to all state space models (introduced in #2431). +These include: + +* `test_normality` implements the Jarque-Bera test for normality of residuals +* `test_heteroskedasticity` implements a test for homoskedasticity of + residuals similar to the Goldfeld-Quandt test +* `test_serial_correlation` implements the Ljung-Box (or Box-Pierce) test for + serial correlation of residuals + +These test statistics are also now included in the `summary` method output. In +addition, a `plot_diagnostics` method is available which provides four plots +to visually assess model fit. + +Unobserved Components +^^^^^^^^^^^^^^^^^^^^^ + +The class of univariate Unobserved Components models (also known as structural +time series models) are now available (introduced in #2432). This includes as +special cases the local level model and local linear trend model. Generically +it allows decomposing a time series into trend, cycle, seasonal, and +irregular components, optionally with exogenous regressors and / or +autoregressive errors. + +Multivariate Models +^^^^^^^^^^^^^^^^^^^ + +Two standard multivariate econometric models - vector autoregressive +moving-average model with exogenous regressors (VARMAX) and Dynamic Factors +models - are now available (introduced in #2563). The first is a popular +reduced form method of exploring the covariance in several time series, and the +second is a popular reduced form method of extracting a small number of common +factors from a large dataset of observed series. + +Recursive least squares +^^^^^^^^^^^^^^^^^^^^^^^ + +A model for recursive least squares, also known as expanding-window OLS, is +now available in `statsmodels.regression` (introduced in #2830). + +Miscellaneous +^^^^^^^^^^^^^ + +Other improvements to the state space framework include: + +* Improved missing data handling #2770, #2809 +* Ongoing refactoring and bug fixes in fringes and corner cases + + +New functionality in statistics +------------------------------- + +Contingency Tables #2418 (Kerby Shedden) + +Local FDR, multiple testing #2297 (Kerby Shedden) + +Mediation Analysis #2352 (Kerby Shedden) + +other: + +* weighted quantiles in DescrStatsW #2707 (Kerby Shedden) + + +Duration +-------- + +Kaplan Meier Survival Function #2614 (Kerby Shedden) + +Cumulative incidence rate function #3016 (Kerby Shedden) + +other: + +* frequency weights in Kaplan-Meier #2992 (Kerby Shedden) + + +Imputation +---------- + +new subpackage in `statsmodels.imputation` + +MICE #2076 (Frank Cheng GSOC 2014 and Kerby Shedden) + +Imputation by regression on Order Statistic #3019 (Paul Hobson) + + +Time Series Analysis +-------------------- + +Markov Switching Models +^^^^^^^^^^^^^^^^^^^^^^^ + +Markov switching dynamic regression and autoregression models are now +available (introduced in #2980 by Chad Fulton). These models allow regression +effects and / or autoregressive dynamics to differ depending on an unobserved +"regime"; in Markov switching models, the regimes are assumed to transition +according to a Markov process. + +Statistics +^^^^^^^^^^ + +* KPSS stationarity, unit root test #2775 (N-Wouda) +* The Brock Dechert Scheinkman (BDS) test for nonlinear dependence is now + available (introduced in #934 by Chad Fulton) + + +Penalized Estimation +-------------------- + +Elastic net: fit_regularized with L1/L2 penalization has been added to +OLS, GLM and PHReg (Kerby Shedden) + + +GLM +--- + +Tweedie is now available as new family #2872 (Peter Quackenbush, Josef Perktold) + +other: + +* frequency weights for GLM (currently without full support) # +* more flexible convergence options #2803 (Peter Quackenbush) + + +Multivariate +------------ + +new subpackage that currently contains PCA + +PCA was added in 0.7 to statsmodels.tools and is now in statsmodels.multivariate + + +Documentation +------------- + +New doc build with latest jupyter and Python 3 compatibility (Tom Augspurger) + + +Other important improvements +---------------------------- + +several existing functions have received improvements + + +* seasonal_decompose: improved periodicity handling #2987 (ssktotoro ?) +* tools add_constant, add_trend: refactoring and pandas compatibility #2240 (Kevin Sheppard) +* acf, pacf, acovf: option for missing handling #3020 (joesnacks ?) +* acf, pacf plots: allow array of lags #2989 (Kevin Sheppard) +* io SimpleTable (summary): allow names with special characters #3015 (tvanessa ?) +* tsa tools lagmat, lagmat2ds: pandas support #2310 #3042 (Kevin Sheppard) +* CompareMeans: from_data, summary methods #2754 (Valery Tyumen) + + + +Major Bugs fixed +---------------- + +* see github issues + +Backwards incompatible changes and deprecations +----------------------------------------------- + +* ??? +* predict now returns a pandas Series if the exog argument is a DataFrame +* PCA moved to multivariate compared to 0.7 + + +Development summary and credits +------------------------------- + +Besides receiving contributions for new and improved features and for bugfixes, +important contributions to general maintenance came from + +* Kevin Sheppard +* Pierre Barbier de Reuille +* Tom Augsburger + +and the general maintainer and code reviewer + +* Josef Perktold + +Additionally, many users contributed by participation in github issues and +providing feedback. + +Thanks to all of the contributors for the 0.8 release: + +.. note:: + + * Ashish + * Brendan + * Brendan Condon + * BrianLondon + * Chad Fulton + * Chris Fonnesbeck + * Christoph T. Weidemann + * James Kerns + * Josef Perktold + * Kerby Shedden + * Kevin Sheppard + * Leoyzen + * Matthew Brett + * Niels Wouda + * Paul Hobson + * Pierre Barbier de Reuille + * Pietro Battiston + * Ralf Gommers + * Roman Ring + * Skipper Seabold + * Soren Fuglede Jorgensen + * Thomas Cokelaer + * Tom Augspurger + * ValeryTyumen + * Vanessa + * Yaroslav Halchenko + * joesnacks + * kokes + * matiumerca + * rlan + * ssktotoro + * thequackdaddy + * vegcev + +Thanks to all of the contributors for the 0.7 release: + +.. note:: + + * Alex Griffing + * Antony Lee + * Chad Fulton + * Christoph Deil + * Daniel Sullivan + * Hans-Martin von Gaudecker + * Jan Schulz + * Joey Stockermans + * Josef Perktold + * Kerby Shedden + * Kevin Sheppard + * Kiyoto Tamura + * Louis-Philippe Lemieux Perreault + * Padarn Wilson + * Ralf Gommers + * Saket Choudhary + * Skipper Seabold + * Tom Augspurger + * Trent Hauck + * Vincent Arel-Bundock + * chebee7i + * donbeo + * gliptak + * hlin117 + * jerry dumblauskas + * jonahwilliams + * kiyoto + * neilsummers + * waynenilsen + +These lists of names are automatically generated based on git log, and may not be +complete. diff --git a/docs/source/rlm.rst b/docs/source/rlm.rst new file mode 100644 index 0000000..c8ebd52 --- /dev/null +++ b/docs/source/rlm.rst @@ -0,0 +1,104 @@ +.. currentmodule:: statsmodels.robust + + +.. _rlm: + +Robust Linear Models +==================== + +Robust linear models with support for the M-estimators listed under `Norms`_. + +See `Module Reference`_ for commands and arguments. + +Examples +-------- + +.. ipython:: python + + # Load modules and data + import statsmodels.api as sm + data = sm.datasets.stackloss.load() + data.exog = sm.add_constant(data.exog) + + # Fit model and print summary + rlm_model = sm.RLM(data.endog, data.exog, M=sm.robust.norms.HuberT()) + rlm_results = rlm_model.fit() + print(rlm_results.params) + +Detailed examples can be found here: + +* `Robust Models 1 `__ +* `Robust Models 2 `__ + +Technical Documentation +----------------------- + +.. toctree:: + :maxdepth: 1 + + rlm_techn1 + +References +^^^^^^^^^^ + +* PJ Huber. ‘Robust Statistics’ John Wiley and Sons, Inc., New York. 1981. +* PJ Huber. 1973, ‘The 1972 Wald Memorial Lectures: Robust Regression: Asymptotics, Conjectures, and Monte Carlo.’ The Annals of Statistics, 1.5, 799-821. +* R Venables, B Ripley. ‘Modern Applied Statistics in S’ Springer, New York, + +Module Reference +---------------- + +Model Classes +^^^^^^^^^^^^^ + +.. currentmodule:: statsmodels.robust.robust_linear_model + +.. autosummary:: + :toctree: generated/ + + RLM + +Model Results +^^^^^^^^^^^^^ + +.. autosummary:: + :toctree: generated/ + + RLMResults + +.. _norms: + +Norms +^^^^^ + +.. currentmodule:: statsmodels.robust.norms + +.. autosummary:: + :toctree: generated/ + + AndrewWave + Hampel + HuberT + LeastSquares + RamsayE + RobustNorm + TrimmedMean + TukeyBiweight + estimate_location + + +Scale +^^^^^ + +.. currentmodule:: statsmodels.robust.scale + +.. autosummary:: + :toctree: generated/ + + Huber + HuberScale + mad + huber + hubers_scale + stand_mad + diff --git a/docs/source/rlm_techn1.rst b/docs/source/rlm_techn1.rst new file mode 100644 index 0000000..bca35f3 --- /dev/null +++ b/docs/source/rlm_techn1.rst @@ -0,0 +1,37 @@ +.. currentmodule:: statsmodels.rlm + + +.. _rlm_techn1: + +Weight Functions +---------------- + +Andrew's Wave + +.. image:: images/aw.png + +Hampel 17A + +.. image:: images/hl.png + +Huber's t + +.. image:: images/ht.png + +Least Squares + +.. image:: images/ls.png + +Ramsay's Ea + +.. image:: images/re.png + +Trimmed Mean + +.. image:: images/tm.png + +Tukey's Biweight + +.. image:: images/tk.png + + diff --git a/docs/source/sandbox.rst b/docs/source/sandbox.rst new file mode 100644 index 0000000..6738d37 --- /dev/null +++ b/docs/source/sandbox.rst @@ -0,0 +1,177 @@ +.. _sandbox: + + +Sandbox +======= + +This sandbox contains code that is for various resons not ready to be +included in statsmodels proper. It contains modules from the old stats.models +code that have not been tested, verified and updated to the new statsmodels +structure: cox survival model, mixed effects model with repeated measures, +generalized additive model and the formula framework. The sandbox also +contains code that is currently being worked on until it fits the pattern +of statsmodels or is sufficiently tested. + +All sandbox modules have to be explicitly imported to indicate that they are +not yet part of the core of statsmodels. The quality and testing of the +sandbox code varies widely. + + +Examples +-------- + +There are some examples in the `sandbox.examples` folder. Additional +examples are directly included in the modules and in subfolders of +the sandbox. + + +Module Reference +---------------- + + +Time Series analysis :mod:`tsa` +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +In this part we develop models and functions that will be useful for time +series analysis. Most of the models and function have been moved to +:mod:`statsmodels.tsa`. Currently, GARCH models remain in development stage in +`sandbox.tsa`. + +Moving Window Statistics +"""""""""""""""""""""""" + + +Most moving window statistics, like rolling mean, moments (up to 4th order), min, +max, mean, and variance, are covered by the functions for `Moving (rolling) +statistics/moments `_ in Pandas. + +.. currentmodule:: statsmodels.sandbox.tsa + +.. autosummary:: + :toctree: generated/ + + movstat.movorder + movstat.movmean + movstat.movvar + movstat.movmoment + + +Regression and ANOVA +^^^^^^^^^^^^^^^^^^^^ + +.. currentmodule:: statsmodels.sandbox.regression.anova_nistcertified + +The following two ANOVA functions are fully tested against the NIST test data +for balanced one-way ANOVA. ``anova_oneway`` follows the same pattern as the +oneway anova function in scipy.stats but with higher precision for badly +scaled problems. ``anova_ols`` produces the same results as the one way anova +however using the OLS model class. It also verifies against the NIST tests, +with some problems in the worst scaled cases. It shows how to do simple ANOVA +using statsmodels in three lines and is also best taken as a recipe. + + +.. autosummary:: + :toctree: generated/ + + anova_oneway + anova_ols + + +The following are helper functions for working with dummy variables and +generating ANOVA results with OLS. They are best considered as recipes since +they were written with a specific use in mind. These function will eventually +be rewritten or reorganized. + +.. currentmodule:: statsmodels.sandbox.regression + +.. autosummary:: + :toctree: generated/ + + try_ols_anova.data2dummy + try_ols_anova.data2groupcont + try_ols_anova.data2proddummy + try_ols_anova.dropname + try_ols_anova.form2design + +The following are helper functions for group statistics where groups are +defined by a label array. The qualifying comments for the previous group +apply also to this group of functions. + + +.. autosummary:: + :toctree: generated/ + + try_catdata.cat2dummy + try_catdata.convertlabels + try_catdata.groupsstats_1d + try_catdata.groupsstats_dummy + try_catdata.groupstatsbin + try_catdata.labelmeanfilter + try_catdata.labelmeanfilter_nd + try_catdata.labelmeanfilter_str + +Additional to these functions, sandbox regression still contains several +examples, that are illustrative of the use of the regression models of +statsmodels. + + + +Systems of Regression Equations and Simultaneous Equations +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The following are for fitting systems of equations models. Though the returned +parameters have been verified as accurate, this code is still very +experimental, and the usage of the models will very likely change significantly +before they are added to the main codebase. + +.. currentmodule:: statsmodels.sandbox.sysreg + +.. autosummary:: + :toctree: generated/ + + SUR + Sem2SLS + +Miscellaneous +^^^^^^^^^^^^^ + .. currentmodule:: statsmodels.sandbox.tools.tools_tsa + + +Descriptive Statistics Printing +""""""""""""""""""""""""""""""" + +.. currentmodule:: statsmodels.sandbox + +.. autosummary:: + :toctree: generated/ + + descstats.sign_test + descstats.descstats + + + + +Original stats.models +^^^^^^^^^^^^^^^^^^^^^ + +None of these are fully working. The formula framework is used by cox and +mixed. + +**Mixed Effects Model with Repeated Measures using an EM Algorithm** + +:mod:`statsmodels.sandbox.mixed` + + +**Cox Proportional Hazards Model** + +:mod:`statsmodels.sandbox.cox` + +**Generalized Additive Models** + +:mod:`statsmodels.sandbox.gam` + +**Formula** + +:mod:`statsmodels.sandbox.formula` + + diff --git a/docs/source/statespace.rst b/docs/source/statespace.rst new file mode 100644 index 0000000..90e8568 --- /dev/null +++ b/docs/source/statespace.rst @@ -0,0 +1,485 @@ +.. currentmodule:: statsmodels.tsa.statespace + + +.. _statespace: + + +Time Series Analysis by State Space Methods :mod:`statespace` +============================================================= + +:mod:`statsmodels.tsa.statespace` contains classes and functions that are +useful for time series analysis using state space methods. + +A general state space model is of the form + +.. math:: + + y_t & = Z_t \alpha_t + d_t + \varepsilon_t \\ + \alpha_t & = T_t \alpha_{t-1} + c_t + R_t \eta_t \\ + +where :math:`y_t` refers to the observation vector at time :math:`t`, +:math:`\alpha_t` refers to the (unobserved) state vector at time +:math:`t`, and where the irregular components are defined as + +.. math:: + + \varepsilon_t \sim N(0, H_t) \\ + \eta_t \sim N(0, Q_t) \\ + +The remaining variables (:math:`Z_t, d_t, H_t, T_t, c_t, R_t, Q_t`) in the +equations are matrices describing the process. Their variable names and +dimensions are as follows + +Z : `design` :math:`(k\_endog \times k\_states \times nobs)` + +d : `obs_intercept` :math:`(k\_endog \times nobs)` + +H : `obs_cov` :math:`(k\_endog \times k\_endog \times nobs)` + +T : `transition` :math:`(k\_states \times k\_states \times nobs)` + +c : `state_intercept` :math:`(k\_states \times nobs)` + +R : `selection` :math:`(k\_states \times k\_posdef \times nobs)` + +Q : `state_cov` :math:`(k\_posdef \times k\_posdef \times nobs)` + +In the case that one of the matrices is time-invariant (so that, for +example, :math:`Z_t = Z_{t+1} ~ \forall ~ t`), its last dimension may +be of size :math:`1` rather than size `nobs`. + +This generic form encapsulates many of the most popular linear time series +models (see below) and is very flexible, allowing estimation with missing +observations, forecasting, impulse response functions, and much more. + +Example: AR(2) model +^^^^^^^^^^^^^^^^^^^^ + +An autoregressive model is a good introductory example to putting models in +state space form. Recall that an AR(2) model is often written as: + +.. math:: + + y_t = \phi_1 y_{t-1} + \phi_2 y_{t-2} + \epsilon_t + +This can be put into state space form in the following way: + +.. math:: + + y_t & = \begin{bmatrix} 1 & 0 \end{bmatrix} \alpha_t \\ + \alpha_t & = \begin{bmatrix} + \phi_1 & \phi_2 \\ + 1 & 0 + \end{bmatrix} \alpha_{t-1} + \begin{bmatrix} 1 \\ 0 \end{bmatrix} \eta_t + +Where + +.. math:: + + Z_t \equiv Z = \begin{bmatrix} 1 & 0 \end{bmatrix} + +and + +.. math:: + + T_t \equiv T & = \begin{bmatrix} + \phi_1 & \phi_2 \\ + 1 & 0 + \end{bmatrix} \\ + R_t \equiv R & = \begin{bmatrix} 1 \\ 0 \end{bmatrix} \\ + \eta_t & \sim N(0, \sigma^2) + +There are three unknown parameters in this model: +:math:`\phi_1, \phi_2, \sigma^2`. + +Models and Estimation +--------------------- + +The following are the main estimation classes, which can be accessed through +`statsmodels.tsa.statespace.api` and their result classes. + +Seasonal Autoregressive Integrated Moving-Average with eXogenous regressors (SARIMAX) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The `SARIMAX` class is an example of a fully fledged model created using the +statespace backend for estimation. `SARIMAX` can be used very similarly to +:ref:`tsa ` models, but works on a wider range of models by adding the +estimation of additive and multiplicative seasonal effects, as well as +arbitrary trend polynomials. + +.. autosummary:: + :toctree: generated/ + + sarimax.SARIMAX + sarimax.SARIMAXResults + +For an example of the use of this model, see the +`SARIMAX example notebook `__ +or the very brief code snippet below: + + +.. code-block:: python + + # Load the statsmodels api + import statsmodels.api as sm + + # Load your dataset + endog = pd.read_csv('your/dataset/here.csv') + + # We could fit an AR(2) model, described above + mod_ar2 = sm.tsa.SARIMAX(endog, order=(2,0,0)) + # Note that mod_ar2 is an instance of the SARIMAX class + + # Fit the model via maximum likelihood + res_ar2 = mod_ar2.fit() + # Note that res_ar2 is an instance of the SARIMAXResults class + + # Show the summary of results + print(res_ar2.summary()) + + # We could also fit a more complicated model with seasonal components. + # As an example, here is an SARIMA(1,1,1) x (0,1,1,4): + mod_sarimax = sm.tsa.SARIMAX(endog, order=(1,1,1), + seasonal_order=(0,1,1,4)) + res_sarimax = mod_sarimax.fit() + + # Show the summary of results + print(res_sarimax.summary()) + +The results object has many of the attributes and methods you would expect from +other Statsmodels results objects, including standard errors, z-statistics, +and prediction / forecasting. + +Behind the scenes, the `SARIMAX` model creates the design and transition +matrices (and sometimes some of the other matrices) based on the model +specification. + +Unobserved Components +^^^^^^^^^^^^^^^^^^^^^ + +The `UnobservedComponents` class is another example of a statespace model. + +.. autosummary:: + :toctree: generated/ + + structural.UnobservedComponents + structural.UnobservedComponentsResults + +For examples of the use of this model, see the `example notebook `__ or a notebook on using the unobserved components model to `decompose a time series into a trend and cycle `__ or the very brief code snippet below: + +.. code-block:: python + + # Load the statsmodels api + import statsmodels.api as sm + + # Load your dataset + endog = pd.read_csv('your/dataset/here.csv') + + # Fit a local level model + mod_ll = sm.tsa.UnobservedComponents(endog, 'local level') + # Note that mod_ll is an instance of the UnobservedComponents class + + # Fit the model via maximum likelihood + res_ll = mod_ll.fit() + # Note that res_ll is an instance of the UnobservedComponentsResults class + + # Show the summary of results + print(res_ll.summary()) + + # Show a plot of the estimated level and trend component series + fig_ll = res_ll.plot_components() + + # We could further add a damped stochastic cycle as follows + mod_cycle = sm.tsa.UnobservedComponents(endog, 'local level', cycle=True, + damped_cycle=true, + stochastic_cycle=True) + res_cycle = mod_cycle.fit() + + # Show the summary of results + print(res_cycle.summary()) + + # Show a plot of the estimated level, trend, and cycle component series + fig_cycle = res_cycle.plot_components() + +Vector Autoregressive Moving-Average with eXogenous regressors (VARMAX) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The `VARMAX` class is an example of a multivariate statespace model. + +.. autosummary:: + :toctree: generated/ + + varmax.VARMAX + varmax.VARMAXResults + +For an example of the use of this model, see the `VARMAX example notebook `__ or the very brief code snippet below: + +.. code-block:: python + + # Load the statsmodels api + import statsmodels.api as sm + + # Load your (multivariate) dataset + endog = pd.read_csv('your/dataset/here.csv') + + # Fit a local level model + mod_var1 = sm.tsa.VARMAX(endog, order=(1,0)) + # Note that mod_var1 is an instance of the VARMAX class + + # Fit the model via maximum likelihood + res_var1 = mod_var1.fit() + # Note that res_var1 is an instance of the VARMAXResults class + + # Show the summary of results + print(res_var1.summary()) + + # Construct impulse responses + irfs = res_ll.impulse_responses(steps=10) + +Dynamic Factor Models +^^^^^^^^^^^^^^^^^^^^^ + +The `DynamicFactor` class is another example of a multivariate statespace +model. + +.. autosummary:: + :toctree: generated/ + + dynamic_factor.DynamicFactor + dynamic_factor.DynamicFactorResults + +For an example of the use of this model, see the `Dynamic Factor example notebook `__ or the very brief code snippet below: + +.. code-block:: python + + # Load the statsmodels api + import statsmodels.api as sm + + # Load your dataset + endog = pd.read_csv('your/dataset/here.csv') + + # Fit a local level model + mod_dfm = sm.tsa.DynamicFactor(endog, k_factors=1, factor_order=2) + # Note that mod_dfm is an instance of the DynamicFactor class + + # Fit the model via maximum likelihood + res_dfm = mod_dfm.fit() + # Note that res_dfm is an instance of the DynamicFactorResults class + + # Show the summary of results + print(res_ll.summary()) + + # Show a plot of the r^2 values from regressions of + # individual estimated factors on endogenous variables. + fig_dfm = res_ll.plot_coefficients_of_determination() + +Custom state space models +^^^^^^^^^^^^^^^^^^^^^^^^^ + +The true power of the state space model is to allow the creation and estimation +of custom models. Usually that is done by extending the following two classes, +which bundle all of state space representation, Kalman filtering, and maximum +likelihood fitting functionality for estimation and results output. + +.. autosummary:: + :toctree: generated/ + + mlemodel.MLEModel + mlemodel.MLEResults + +For a basic example demonstrating creating and estimating a custom state space +model, see the `Local Linear Trend example notebook `__. +For a more sophisticated example, see the source code for the `SARIMAX` and +`SARIMAXResults` classes, which are built by extending `MLEModel` and +`MLEResults`. + +In simple cases, the model can be constructed entirely using the MLEModel +class. For example, the AR(2) model from above could be constructed and +estimated using only the following code: + +.. code-block:: python + + import numpy as np + from scipy.signal import lfilter + import statsmodels.api as sm + + # True model parameters + nobs = 1e3 + true_phi = np.r_[0.5, -0.2] + true_sigma = 1**0.5 + + # Simulate a time series + np.random.seed(1234) + disturbances = np.random.normal(0, true_sigma, size=(nobs,)) + endog = lfilter([1], np.r_[1, -true_phi], disturbances) + + # Construct the model + class AR2(sm.tsa.statespace.MLEModel): + def __init__(self, endog): + # Initialize the state space model + super(AR2, self).__init__(endog, k_states=2, k_posdef=1, + initialization='stationary') + + # Setup the fixed components of the state space representation + self['design'] = [1, 0] + self['transition'] = [[0, 0], + [1, 0]] + self['selection', 0, 0] = 1 + + # Describe how parameters enter the model + def update(self, params, transformed=True): + params = super(AR2, self).update(params, transformed) + + self['transition', 0, :] = params[:2] + self['state_cov', 0, 0] = params[2] + + # Specify start parameters and parameter names + @property + def start_params(self): + return [0,0,1] # these are very simple + + # Create and fit the model + mod = AR2(endog) + res = mod.fit() + print(res.summary()) + +This results in the following summary table:: + + Statespace Model Results + ============================================================================== + Dep. Variable: y No. Observations: 1000 + Model: AR2 Log Likelihood -1389.437 + Date: Sat, 13 Feb 2016 AIC 2784.874 + Time: 00:25:30 BIC 2799.598 + Sample: 0 HQIC 2790.470 + - 1000 + Covariance Type: opg + ============================================================================== + coef std err z P>|z| [0.025 0.975] + ------------------------------------------------------------------------------ + param.0 0.4395 0.030 14.729 0.000 0.381 0.498 + param.1 -0.2055 0.032 -6.523 0.000 -0.267 -0.144 + param.2 0.9425 0.042 22.413 0.000 0.860 1.025 + =================================================================================== + Ljung-Box (Q): 24.25 Jarque-Bera (JB): 0.22 + Prob(Q): 0.98 Prob(JB): 0.90 + Heteroskedasticity (H): 1.05 Skew: -0.04 + Prob(H) (two-sided): 0.66 Kurtosis: 3.02 + =================================================================================== + + Warnings: + [1] Covariance matrix calculated using the outer product of gradients. + +The results object has many of the attributes and methods you would expect from +other Statsmodels results objects, including standard errors, z-statistics, +and prediction / forecasting. + +More advanced usage is possible, including specifying parameter +transformations, and specifing names for parameters for a more informative +output summary. + +State space representation and Kalman filtering +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +While creation of custom models will almost always be done by extending +`MLEModel` and `MLEResults`, it can be useful to understand the superstructure +behind those classes. + +Maximum likelihood estimation requires evaluating the likelihood function of +the model, and for models in state space form the likelihood function is +evaluted as a byproduct of running the Kalman filter. + +There are two classes used by `MLEModel` that facilitate specification of the +state space model and Kalman filtering: `Representation` and `KalmanFilter`. + +The `Representation` class is the piece where the state space model +representation is defined. In simple terms, it holds the state space matrices +(`design`, `obs_intercept`, etc.; see the introduction to state space models, +above) and allows their manipulation. + +`FrozenRepresentation` is the most basic results-type class, in that it takes a +"snapshot" of the state space representation at any given time. See the class +documentation for the full list of available attributes. + +.. autosummary:: + :toctree: generated/ + + representation.Representation + representation.FrozenRepresentation + +The `KalmanFilter` class is a subclass of Representation that provides +filtering capabilities. Once the state space representation matrices have been +constructed, the :py:meth:`filter ` +method can be called, producing a `FilterResults` instance; `FilterResults` is +a subclass of `FrozenRepresentation`. + +The `FilterResults` class not only holds a frozen representation of the state +space model (the design, transition, etc. matrices, as well as model +dimensions, etc.) but it also holds the filtering output, including the +:py:attr:`filtered state ` and +loglikelihood (see the class documentation for the full list of available +results). It also provides a +:py:meth:`predict ` method, which allows +in-sample prediction or out-of-sample forecasting. A similar method, +:py:meth:`predict `, provides +additional prediction or forecasting results, including confidence intervals. + +.. autosummary:: + :toctree: generated/ + + kalman_filter.KalmanFilter + kalman_filter.FilterResults + +The `KalmanSmoother` class is a subclass of `KalmanFilter` that provides +smoothing capabilities. Once the state space representation matrices have been +constructed, the :py:meth:`filter ` +method can be called, producing a `SmootherResults` instance; `SmootherResults` +is a subclass of `FilterResults`. + +The `SmootherResults` class holds all the output from `FilterResults`, but +also includes smoothing output, including the +:py:attr:`smoothed state ` and +loglikelihood (see the class documentation for the full list of available +results). Whereas "filtered" output at time `t` refers to estimates conditional +on observations up through time `t`, "smoothed" output refers to estimates +conditional on the entire set of observations in the dataset. + +.. autosummary:: + :toctree: generated/ + + kalman_smoother.KalmanSmoother + kalman_smoother.SmootherResults + +Statespace diagnostics +---------------------- + +Three diagnostic tests are available after estimation of any statespace model, +whether built in or custom, to help assess whether the model conforms to the +underlying statistical assumptions. These tests are: + +- :py:meth:`test_normality ` +- :py:meth:`test_heteroskedasticity ` +- :py:meth:`test_serial_correlation ` + +A number of standard plots of regression residuals are available for the same +purpose. These can be produced using the command +:py:meth:`plot_diagnostics `. + +Statespace Tools +---------------- + +There are a variety of tools used for state space modeling or by the SARIMAX +class: + +.. autosummary:: + :toctree: generated/ + + tools.companion_matrix + tools.diff + tools.is_invertible + tools.constrain_stationary_univariate + tools.unconstrain_stationary_univariate + tools.constrain_stationary_multivariate + tools.unconstrain_stationary_multivariate + tools.validate_matrix_shape + tools.validate_vector_shape diff --git a/docs/source/stats.rst b/docs/source/stats.rst new file mode 100644 index 0000000..885a369 --- /dev/null +++ b/docs/source/stats.rst @@ -0,0 +1,388 @@ +.. currentmodule:: statsmodels.stats + +.. _stats: + + +Statistics :mod:`stats` +======================= + +This section collects various statistical tests and tools. +Some can be used independently of any models, some are intended as extension to the +models and model results. + +API Warning: The functions and objects in this category are spread out in +various modules and might still be moved around. We expect that in future the +statistical tests will return class instances with more informative reporting +instead of only the raw numbers. + + +.. _stattools: + + +Residual Diagnostics and Specification Tests +-------------------------------------------- + +.. currentmodule:: statsmodels.stats.stattools + +.. autosummary:: + :toctree: generated/ + + durbin_watson + jarque_bera + omni_normtest + medcouple + robust_skewness + robust_kurtosis + expected_robust_kurtosis + +.. currentmodule:: statsmodels.stats.diagnostic + +.. autosummary:: + :toctree: generated/ + + acorr_ljungbox + acorr_breusch_godfrey + + HetGoldfeldQuandt + het_goldfeldquandt + het_breuschpagan + het_white + het_arch + + linear_harvey_collier + linear_rainbow + linear_lm + + breaks_cusumolsresid + breaks_hansen + recursive_olsresiduals + + CompareCox + compare_cox + CompareJ + compare_j + + unitroot_adf + + normal_ad + kstest_normal + lilliefors + +Outliers and influence measures +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. currentmodule:: statsmodels.stats.outliers_influence + +.. autosummary:: + :toctree: generated/ + + OLSInfluence + variance_inflation_factor + +See also the notes on :ref:`notes on regression diagnostics ` + +Sandwich Robust Covariances +--------------------------- + +The following functions calculate covariance matrices and standard errors for +the parameter estimates that are robust to heteroscedasticity and +autocorrelation in the errors. Similar to the methods that are available +for the LinearModelResults, these methods are designed for use with OLS. + +.. currentmodule:: statsmodels.stats + +.. autosummary:: + :toctree: generated/ + + sandwich_covariance.cov_hac + sandwich_covariance.cov_nw_panel + sandwich_covariance.cov_nw_groupsum + sandwich_covariance.cov_cluster + sandwich_covariance.cov_cluster_2groups + sandwich_covariance.cov_white_simple + +The following are standalone versions of the heteroscedasticity robust +standard errors attached to LinearModelResults + +.. autosummary:: + :toctree: generated/ + + sandwich_covariance.cov_hc0 + sandwich_covariance.cov_hc1 + sandwich_covariance.cov_hc2 + sandwich_covariance.cov_hc3 + + sandwich_covariance.se_cov + + +Goodness of Fit Tests and Measures +---------------------------------- + +some tests for goodness of fit for univariate distributions + +.. currentmodule:: statsmodels.stats.gof + +.. autosummary:: + :toctree: generated/ + + powerdiscrepancy + gof_chisquare_discrete + gof_binning_discrete + chisquare_effectsize + +.. currentmodule:: statsmodels.stats.diagnostic + +.. autosummary:: + :toctree: generated/ + + normal_ad + kstest_normal + lilliefors + +Non-Parametric Tests +-------------------- + +.. currentmodule:: statsmodels.sandbox.stats.runs + +.. autosummary:: + :toctree: generated/ + + mcnemar + symmetry_bowker + median_test_ksample + runstest_1samp + runstest_2samp + cochrans_q + Runs + +.. currentmodule:: statsmodels.stats.descriptivestats + +.. autosummary:: + :toctree: generated/ + + sign_test + +.. _interrater: + +Interrater Reliability and Agreement +------------------------------------ + +The main function that statsmodels has currently available for interrater +agreement measures and tests is Cohen's Kappa. Fleiss' Kappa is currently +only implemented as a measures but without associated results statistics. + +.. currentmodule:: statsmodels.stats.inter_rater + +.. autosummary:: + :toctree: generated/ + + cohens_kappa + fleiss_kappa + to_table + aggregate_raters + +Multiple Tests and Multiple Comparison Procedures +------------------------------------------------- + +`multipletests` is a function for p-value correction, which also includes p-value +correction based on fdr in `fdrcorrection`. +`tukeyhsd` performs simulatenous testing for the comparison of (independent) means. +These three functions are verified. +GroupsStats and MultiComparison are convenience classes to multiple comparisons similar +to one way ANOVA, but still in developement + +.. currentmodule:: statsmodels.sandbox.stats.multicomp + +.. autosummary:: + :toctree: generated/ + + multipletests + fdrcorrection0 + + GroupsStats + MultiComparison + TukeyHSDResults + +.. currentmodule:: statsmodels.stats.multicomp + +.. autosummary:: + :toctree: generated/ + + pairwise_tukeyhsd + +The following functions are not (yet) public + +.. currentmodule:: statsmodels.sandbox.stats.multicomp + +.. autosummary:: + :toctree: generated/ + + varcorrection_pairs_unbalanced + varcorrection_pairs_unequal + varcorrection_unbalanced + varcorrection_unequal + + StepDown + catstack + ccols + compare_ordered + distance_st_range + ecdf + get_tukeyQcrit + homogeneous_subsets + maxzero + maxzerodown + mcfdr + qcrit + randmvn + rankdata + rejectionline + set_partition + set_remove_subs + tiecorrect + +.. _tost: + +Basic Statistics and t-Tests with frequency weights +--------------------------------------------------- + +Besides basic statistics, like mean, variance, covariance and correlation for +data with case weights, the classes here provide one and two sample tests +for means. The t-tests have more options than those in scipy.stats, but are +more restrictive in the shape of the arrays. Confidence intervals for means +are provided based on the same assumptions as the t-tests. + +Additionally, tests for equivalence of means are available for one sample and +for two, either paired or independent, samples. These tests are based on TOST, +two one-sided tests, which have as null hypothesis that the means are not +"close" to each other. + +.. currentmodule:: statsmodels.stats.weightstats + +.. autosummary:: + :toctree: generated/ + + DescrStatsW + CompareMeans + ttest_ind + ttost_ind + ttost_paired + ztest + ztost + zconfint + +weightstats also contains tests and confidence intervals based on summary +data + +.. currentmodule:: statsmodels.stats.weightstats + +.. autosummary:: + :toctree: generated/ + + _tconfint_generic + _tstat_generic + _zconfint_generic + _zstat_generic + _zstat_generic2 + + +Power and Sample Size Calculations +---------------------------------- + +The :mod:`power` module currently implements power and sample size calculations +for the t-tests, normal based test, F-tests and Chisquare goodness of fit test. +The implementation is class based, but the module also provides +three shortcut functions, ``tt_solve_power``, ``tt_ind_solve_power`` and +``zt_ind_solve_power`` to solve for any one of the parameters of the power +equations. + + +.. currentmodule:: statsmodels.stats.power + +.. autosummary:: + :toctree: generated/ + + TTestIndPower + TTestPower + GofChisquarePower + NormalIndPower + FTestAnovaPower + FTestPower + tt_solve_power + tt_ind_solve_power + zt_ind_solve_power + + +.. _proportion_stats: + +Proportion +---------- + + +Also available are hypothesis test, confidence intervals and effect size for +proportions that can be used with NormalIndPower. + +.. currentmodule:: statsmodels.stats.proportion + +.. autosummary:: + :toctree: generated + + proportion_confint + proportion_effectsize + + binom_test + binom_test_reject_interval + binom_tost + binom_tost_reject_interval + + multinomial_proportions_confint + + proportions_ztest + proportions_ztost + proportions_chisquare + proportions_chisquare_allpairs + proportions_chisquare_pairscontrol + + proportion_effectsize + power_binom_tost + power_ztost_prop + samplesize_confint_proportion + + +Moment Helpers +-------------- + +When there are missing values, then it is possible that a correlation or +covariance matrix is not positive semi-definite. The following three +functions can be used to find a correlation or covariance matrix that is +positive definite and close to the original matrix. + +.. currentmodule:: statsmodels.stats.correlation_tools + +.. autosummary:: + :toctree: generated/ + + corr_nearest + corr_clipped + cov_nearest + +These are utility functions to convert between central and non-central moments, skew, +kurtosis and cummulants. + +.. currentmodule:: statsmodels.stats.moment_helpers + +.. autosummary:: + :toctree: generated/ + + cum2mc + mc2mnc + mc2mvsk + mnc2cum + mnc2mc + mnc2mvsk + mvsk2mc + mvsk2mnc + cov2corr + corr2cov + se_cov + diff --git a/docs/source/tools.rst b/docs/source/tools.rst new file mode 100644 index 0000000..953f384 --- /dev/null +++ b/docs/source/tools.rst @@ -0,0 +1,100 @@ +.. currentmodule:: statsmodels.tools + + +.. _tools: + +Tools +===== + +Our tool collection contains some convenience functions for users and +functions that were written mainly for internal use. + +Additional to this tools directory, several other subpackages have their own +tools modules, for example :mod:`statsmodels.tsa.tsatools` + + +Module Reference +---------------- + +Basic tools :mod:`tools` +^^^^^^^^^^^^^^^^^^^^^^^^ + +These are basic and miscellaneous tools. The full import path is +`statsmodels.tools.tools`. + +.. autosummary:: + :toctree: generated/ + + tools.add_constant + +The next group are mostly helper functions that are not separately tested or +insufficiently tested. + +.. autosummary:: + :toctree: generated/ + + tools.categorical + tools.clean0 + tools.fullrank + tools.isestimable + tools.rank + tools.recipr + tools.recipr0 + tools.unsqueeze + +.. currentmodule:: statsmodels.tools + +.. _numdiff: + +Numerical Differentiation +^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. autosummary:: + :toctree: generated/ + + numdiff.approx_fprime + numdiff.approx_fprime_cs + numdiff.approx_hess1 + numdiff.approx_hess2 + numdiff.approx_hess3 + numdiff.approx_hess_cs + +Measure for fit performance :mod:`eval_measures` +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The first group of function in this module are standalone versions of +information criteria, aic bic and hqic. The function with `_sigma` suffix +take the error sum of squares as argument, those without, take the value +of the log-likelihood, `llf`, as argument. + +The second group of function are measures of fit or prediction performance, +which are mostly one liners to be used as helper functions. All of those +calculate a performance or distance statistic for the difference between two +arrays. For example in the case of Monte Carlo or cross-validation, the first +array would be the estimation results for the different replications or draws, +while the second array would be the true or observed values. + +.. currentmodule:: statsmodels.tools + +.. autosummary:: + :toctree: generated/ + + eval_measures.aic + eval_measures.aic_sigma + eval_measures.aicc + eval_measures.aicc_sigma + eval_measures.bic + eval_measures.bic_sigma + eval_measures.hqic + eval_measures.hqic_sigma + + eval_measures.bias + eval_measures.iqr + eval_measures.maxabs + eval_measures.meanabs + eval_measures.medianabs + eval_measures.medianbias + eval_measures.mse + eval_measures.rmse + eval_measures.stde + eval_measures.vare diff --git a/docs/source/tsa.rst b/docs/source/tsa.rst new file mode 100644 index 0000000..3b05540 --- /dev/null +++ b/docs/source/tsa.rst @@ -0,0 +1,237 @@ +.. currentmodule:: statsmodels.tsa + + +.. _tsa: + + +Time Series analysis :mod:`tsa` +=============================== + +:mod:`statsmodels.tsa` contains model classes and functions that are useful +for time series analysis. Basic models include univariate autoregressive models (AR), +vector autoregressive models (VAR) and univariate autoregressive moving average models +(ARMA). Non-linear models include Markov switching dynamic regression and +autoregression. It also includes descriptive statistics for time series, for example autocorrelation, partial +autocorrelation function and periodogram, as well as the corresponding theoretical properties +of ARMA or related processes. It also includes methods to work with autoregressive and +moving average lag-polynomials. +Additionally, related statistical tests and some useful helper functions are available. + +Estimation is either done by exact or conditional Maximum Likelihood or conditional +least-squares, either using Kalman Filter or direct filters. + +Currently, functions and classes have to be imported from the corresponding module, but +the main classes will be made available in the statsmodels.tsa namespace. The module +structure is within statsmodels.tsa is + + - stattools : empirical properties and tests, acf, pacf, granger-causality, + adf unit root test, kpss test, bds test, ljung-box test and others. + - ar_model : univariate autoregressive process, estimation with conditional + and exact maximum likelihood and conditional least-squares + - arima_model : univariate ARMA process, estimation with conditional + and exact maximum likelihood and conditional least-squares + - vector_ar, var : vector autoregressive process (VAR) estimation models, + impulse response analysis, forecast error variance decompositions, and data + visualization tools + - kalmanf : estimation classes for ARMA and other models with exact MLE using + Kalman Filter + - arma_process : properties of arma processes with given parameters, this + includes tools to convert between ARMA, MA and AR representation as well as + acf, pacf, spectral density, impulse response function and similar + - sandbox.tsa.fftarma : similar to arma_process but working in frequency domain + - tsatools : additional helper functions, to create arrays of lagged variables, + construct regressors for trend, detrend and similar. + - filters : helper function for filtering time series + - regime_switching : Markov switching dynamic regression and autoregression + models + + + +Some additional functions that are also useful for time series analysis are in +other parts of statsmodels, for example additional statistical tests. + +Some related functions are also available in matplotlib, nitime, and +scikits.talkbox. Those functions are designed more for the use in signal +processing where longer time series are available and work more often in the +frequency domain. + + +.. currentmodule:: statsmodels.tsa + + +Descriptive Statistics and Tests +"""""""""""""""""""""""""""""""" + +.. autosummary:: + :toctree: generated/ + + stattools.acovf + stattools.acf + stattools.pacf + stattools.pacf_yw + stattools.pacf_ols + stattools.ccovf + stattools.ccf + stattools.periodogram + stattools.adfuller + stattools.kpss + stattools.bds + stattools.q_stat + stattools.grangercausalitytests + stattools.levinson_durbin + stattools.arma_order_select_ic + x13.x13_arima_select_order + x13.x13_arima_analysis + +Estimation +"""""""""" + +The following are the main estimation classes, which can be accessed through +statsmodels.tsa.api and their result classes + +Univariate Autogressive Processes (AR) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. currentmodule:: statsmodels.tsa + +.. autosummary:: + :toctree: generated/ + + ar_model.AR + ar_model.ARResults + + +Autogressive Moving-Average Processes (ARMA) and Kalman Filter +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. currentmodule:: statsmodels.tsa + +.. autosummary:: + :toctree: generated/ + + arima_model.ARMA + arima_model.ARMAResults + arima_model.ARIMA + arima_model.ARIMAResults + kalmanf.kalmanfilter.KalmanFilter + +Vector Autogressive Processes (VAR) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. autosummary:: + :toctree: generated/ + + vector_ar.var_model.VAR + vector_ar.var_model.VARResults + vector_ar.dynamic.DynamicVAR + +.. seealso:: tutorial :ref:`VAR documentation ` + +.. currentmodule:: statsmodels.tsa + +Vector Autogressive Processes (VAR) +""""""""""""""""""""""""""""""""""" + +Besides estimation, several process properties and additional results after +estimation are available for vector autoregressive processes. + +.. autosummary:: + :toctree: generated/ + + vector_ar.var_model.VAR + vector_ar.var_model.VARProcess + vector_ar.var_model.VARResults + vector_ar.irf.IRAnalysis + vector_ar.var_model.FEVD + vector_ar.dynamic.DynamicVAR + +.. seealso:: tutorial :ref:`VAR documentation ` + +Regime switching models +""""""""""""""""""""""" + +.. autosummary:: + :toctree: generated/ + + regime_switching.markov_regression.MarkovRegression + regime_switching.markov_autoregression.MarkovAutoregression + +ARMA Process +"""""""""""" + +The following are tools to work with the theoretical properties of an ARMA +process for given lag-polynomials. + +.. autosummary:: + :toctree: generated/ + + arima_process.ArmaProcess + arima_process.ar2arma + arima_process.arma2ar + arima_process.arma2ma + arima_process.arma_acf + arima_process.arma_acovf + arima_process.arma_generate_sample + arima_process.arma_impulse_response + arima_process.arma_pacf + arima_process.arma_periodogram + arima_process.deconvolve + arima_process.index2lpol + arima_process.lpol2index + arima_process.lpol_fiar + arima_process.lpol_fima + arima_process.lpol_sdiff + +.. currentmodule:: statsmodels + +.. autosummary:: + :toctree: generated/ + + sandbox.tsa.fftarma.ArmaFft + +.. currentmodule:: statsmodels.tsa + +Time Series Filters +""""""""""""""""""" + +.. autosummary:: + :toctree: generated/ + + filters.bk_filter.bkfilter + filters.hp_filter.hpfilter + filters.cf_filter.cffilter + filters.filtertools.convolution_filter + filters.filtertools.recursive_filter + filters.filtertools.miso_lfilter + filters.filtertools.fftconvolve3 + filters.filtertools.fftconvolveinv + seasonal.seasonal_decompose + + +TSA Tools +""""""""" + +.. autosummary:: + :toctree: generated/ + + tsatools.add_constant + tsatools.add_trend + tsatools.detrend + tsatools.lagmat + tsatools.lagmat2ds + +VARMA Process +""""""""""""" + +.. autosummary:: + :toctree: generated/ + + varma_process.VarmaPoly + +Interpolation +""""""""""""" + +.. autosummary:: + :toctree: generated/ + + interp.denton.dentonm diff --git a/docs/source/tsastats.rst.TXT b/docs/source/tsastats.rst.TXT new file mode 100644 index 0000000..e8c6c58 --- /dev/null +++ b/docs/source/tsastats.rst.TXT @@ -0,0 +1,22 @@ +.. currentmodule:: statsmodels.tsa.tsatools + +Time Series Analysis +==================== + +These are some of the helper functions for doing time series analysis. First +we can load some a some data from the US Macro Economy 1959:Q1 - 2009:Q3. :: + + >>> data = sm.datasets.macrodata.load() + +The macro dataset is a structured array. :: + + >>> data = data.data[['year','quarter','realgdp','tbilrate','cpi','unemp']] + +We can add a lag like so :: + + >>> data = sm.tsa.add_lag(data, 'realgdp', lags=2) + +TODO: +-scikits.timeseries +-link in to var docs + diff --git a/docs/source/vector_ar.rst b/docs/source/vector_ar.rst new file mode 100644 index 0000000..0bde124 --- /dev/null +++ b/docs/source/vector_ar.rst @@ -0,0 +1,333 @@ +:orphan: + +.. currentmodule:: statsmodels.tsa.vector_ar.var_model + +.. _var: + +Vector Autoregressions :mod:`tsa.vector_ar` +=========================================== + +VAR(p) processes +---------------- + +We are interested in modeling a :math:`T \times K` multivariate time series +:math:`Y`, where :math:`T` denotes the number of observations and :math:`K` the +number of variables. One way of estimating relationships between the time series +and their lagged values is the *vector autoregression process*: + +.. math:: + + Y_t = A_1 Y_{t-1} + \ldots + A_p Y_{t-p} + u_t + + u_t \sim {\sf Normal}(0, \Sigma_u) + +where :math:`A_i` is a :math:`K \times K` coefficient matrix. + +We follow in large part the methods and notation of `Lutkepohl (2005) +`__, +which we will not develop here. + +Model fitting +~~~~~~~~~~~~~ + +.. note:: + + The classes referenced below are accessible via the + :mod:`statsmodels.tsa.api` module. + +To estimate a VAR model, one must first create the model using an `ndarray` of +homogeneous or structured dtype. When using a structured or record array, the +class will use the passed variable names. Otherwise they can be passed +explicitly: + +.. ipython:: python + :suppress: + + import pandas as pd + pd.options.display.max_rows = 10 + import matplotlib + import matplotlib.pyplot as plt + matplotlib.style.use('ggplot') + +.. ipython:: python + + # some example data + import numpy as np + import pandas + import statsmodels.api as sm + from statsmodels.tsa.api import VAR, DynamicVAR + mdata = sm.datasets.macrodata.load_pandas().data + + # prepare the dates index + dates = mdata[['year', 'quarter']].astype(int).astype(str) + quarterly = dates["year"] + "Q" + dates["quarter"] + from statsmodels.tsa.base.datetools import dates_from_str + quarterly = dates_from_str(quarterly) + + mdata = mdata[['realgdp','realcons','realinv']] + mdata.index = pandas.DatetimeIndex(quarterly) + data = np.log(mdata).diff().dropna() + + # make a VAR model + model = VAR(data) + +.. note:: + + The :class:`VAR` class assumes that the passed time series are + stationary. Non-stationary or trending data can often be transformed to be + stationary by first-differencing or some other method. For direct analysis of + non-stationary time series, a standard stable VAR(p) model is not + appropriate. + +To actually do the estimation, call the `fit` method with the desired lag +order. Or you can have the model select a lag order based on a standard +information criterion (see below): + +.. ipython:: python + + results = model.fit(2) + + results.summary() + + +Several ways to visualize the data using `matplotlib` are available. + +Plotting input time series: + +.. ipython:: python + + @savefig var_plot_input.png + results.plot() + + +Plotting time series autocorrelation function: + +.. ipython:: python + + @savefig var_plot_acorr.png + results.plot_acorr() + + +Lag order selection +~~~~~~~~~~~~~~~~~~~ + +Choice of lag order can be a difficult problem. Standard analysis employs +likelihood test or information criteria-based order selection. We have +implemented the latter, accessible through the :class:`VAR` class: + +.. ipython:: python + + model.select_order(15) + +When calling the `fit` function, one can pass a maximum number of lags and the +order criterion to use for order selection: + +.. ipython:: python + + results = model.fit(maxlags=15, ic='aic') + +Forecasting +~~~~~~~~~~~ + +The linear predictor is the optimal h-step ahead forecast in terms of +mean-squared error: + +.. math:: + + y_t(h) = \nu + A_1 y_t(h − 1) + \cdots + A_p y_t(h − p) + +We can use the `forecast` function to produce this forecast. Note that we have +to specify the "initial value" for the forecast: + +.. ipython:: python + + lag_order = results.k_ar + results.forecast(data.values[-lag_order:], 5) + +The `forecast_interval` function will produce the above forecast along with +asymptotic standard errors. These can be visualized using the `plot_forecast` +function: + +.. ipython:: python + + @savefig var_forecast.png + results.plot_forecast(10) + +Impulse Response Analysis +------------------------- + +*Impulse responses* are of interest in econometric studies: they are the +estimated responses to a unit impulse in one of the variables. They are computed +in practice using the MA(:math:`\infty`) representation of the VAR(p) process: + +.. math:: + + Y_t = \mu + \sum_{i=0}^\infty \Phi_i u_{t-i} + +We can perform an impulse response analysis by calling the `irf` function on a +`VARResults` object: + +.. ipython:: python + + irf = results.irf(10) + +These can be visualized using the `plot` function, in either orthogonalized or +non-orthogonalized form. Asymptotic standard errors are plotted by default at +the 95% significance level, which can be modified by the user. + +.. note:: + + Orthogonalization is done using the Cholesky decomposition of the estimated + error covariance matrix :math:`\hat \Sigma_u` and hence interpretations may + change depending on variable ordering. + +.. ipython:: python + + @savefig var_irf.png + irf.plot(orth=False) + + +Note the `plot` function is flexible and can plot only variables of interest if +so desired: + +.. ipython:: python + + @savefig var_realgdp.png + irf.plot(impulse='realgdp') + +The cumulative effects :math:`\Psi_n = \sum_{i=0}^n \Phi_i` can be plotted with +the long run effects as follows: + +.. ipython:: python + + @savefig var_irf_cum.png + irf.plot_cum_effects(orth=False) + + +Forecast Error Variance Decomposition (FEVD) +-------------------------------------------- + +Forecast errors of component j on k in an i-step ahead forecast can be +decomposed using the orthogonalized impulse responses :math:`\Theta_i`: + +.. math:: + + \omega_{jk, i} = \sum_{i=0}^{h-1} (e_j^\prime \Theta_i e_k)^2 / \mathrm{MSE}_j(h) + + \mathrm{MSE}_j(h) = \sum_{i=0}^{h-1} e_j^\prime \Phi_i \Sigma_u \Phi_i^\prime e_j + +These are computed via the `fevd` function up through a total number of steps ahead: + +.. ipython:: python + + fevd = results.fevd(5) + + fevd.summary() + +They can also be visualized through the returned :class:`FEVD` object: + +.. ipython:: python + + @savefig var_fevd.png + results.fevd(20).plot() + + +Statistical tests +----------------- + +A number of different methods are provided to carry out hypothesis tests about +the model results and also the validity of the model assumptions (normality, +whiteness / "iid-ness" of errors, etc.). + +Granger causality +~~~~~~~~~~~~~~~~~ + +One is often interested in whether a variable or group of variables is "causal" +for another variable, for some definition of "causal". In the context of VAR +models, one can say that a set of variables are Granger-causal within one of the +VAR equations. We will not detail the mathematics or definition of Granger +causality, but leave it to the reader. The :class:`VARResults` object has the +`test_causality` method for performing either a Wald (:math:`\chi^2`) test or an +F-test. + +.. ipython:: python + + results.test_causality('realgdp', ['realinv', 'realcons'], kind='f') + +Normality +~~~~~~~~~ + +Whiteness of residuals +~~~~~~~~~~~~~~~~~~~~~~ + +Dynamic Vector Autoregressions +------------------------------ + +.. note:: + + To use this functionality, `pandas `__ + must be installed. See the `pandas documentation + `__ for more information on the below data + structures. + +One is often interested in estimating a moving-window regression on time series +data for the purposes of making forecasts throughout the data sample. For +example, we may wish to produce the series of 2-step-ahead forecasts produced by +a VAR(p) model estimated at each point in time. + +.. ipython:: python + + np.random.seed(1) + import pandas.util.testing as ptest + ptest.N = 500 + data = ptest.makeTimeDataFrame().cumsum(0) + data + + var = DynamicVAR(data, lag_order=2, window_type='expanding') + +The estimated coefficients for the dynamic model are returned as a +:class:`pandas.Panel` object, which can allow you to easily examine, for +example, all of the model coefficients by equation or by date: + +.. ipython:: python + :okwarning: + + import datetime as dt + + var.coefs + + # all estimated coefficients for equation A + var.coefs.minor_xs('A').info() + + # coefficients on 11/30/2001 + var.coefs.major_xs(dt.datetime(2001, 11, 30)).T + +Dynamic forecasts for a given number of steps ahead can be produced using the +`forecast` function and return a :class:`pandas.DataMatrix` object: + +.. ipython:: python + + var.forecast(2) + +The forecasts can be visualized using `plot_forecast`: + +.. ipython:: python + + @savefig dvar_forecast.png + var.plot_forecast(2) + +Class Reference +--------------- + +.. currentmodule:: statsmodels.tsa.vector_ar + +.. autosummary:: + :toctree: generated/ + + var_model.VAR + var_model.VARProcess + var_model.VARResults + irf.IRAnalysis + var_model.FEVD + dynamic.DynamicVAR + diff --git a/docs/sphinxext/LICENSE.txt b/docs/sphinxext/LICENSE.txt new file mode 100644 index 0000000..e00efc3 --- /dev/null +++ b/docs/sphinxext/LICENSE.txt @@ -0,0 +1,97 @@ +------------------------------------------------------------------------------- + The files + - numpydoc.py + - autosummary.py + - autosummary_generate.py + - docscrape.py + - docscrape_sphinx.py + - phantom_import.py + have the following license: + +Copyright (C) 2008 Stefan van der Walt , Pauli Virtanen + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING +IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + +------------------------------------------------------------------------------- + The files + - compiler_unparse.py + - comment_eater.py + - traitsdoc.py + have the following license: + +This software is OSI Certified Open Source Software. +OSI Certified is a certification mark of the Open Source Initiative. + +Copyright (c) 2006, Enthought, Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of Enthought, Inc. nor the names of its contributors may + be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +------------------------------------------------------------------------------- + The files + - only_directives.py + - plot_directive.py + originate from Matplotlib (http://matplotlib.sf.net/) which has + the following license: + +Copyright (c) 2002-2008 John D. Hunter; All Rights Reserved. + +1. This LICENSE AGREEMENT is between John D. Hunter (“JDH”), and the Individual or Organization (“Licensee”) accessing and otherwise using matplotlib software in source or binary form and its associated documentation. + +2. Subject to the terms and conditions of this License Agreement, JDH hereby grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use matplotlib 0.98.3 alone or in any derivative version, provided, however, that JDH’s License Agreement and JDH’s notice of copyright, i.e., “Copyright (c) 2002-2008 John D. Hunter; All Rights Reserved” are retained in matplotlib 0.98.3 alone or in any derivative version prepared by Licensee. + +3. In the event Licensee prepares a derivative work that is based on or incorporates matplotlib 0.98.3 or any part thereof, and wants to make the derivative work available to others as provided herein, then Licensee hereby agrees to include in any such work a brief summary of the changes made to matplotlib 0.98.3. + +4. JDH is making matplotlib 0.98.3 available to Licensee on an “AS IS” basis. JDH MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, JDH MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF MATPLOTLIB 0.98.3 WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. + +5. JDH SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF MATPLOTLIB 0.98.3 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING MATPLOTLIB 0.98.3, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +6. This License Agreement will automatically terminate upon a material breach of its terms and conditions. + +7. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between JDH and Licensee. This License Agreement does not grant permission to use JDH trademarks or trade name in a trademark sense to endorse or promote products or services of Licensee, or any third party. + +8. By copying, installing or otherwise using matplotlib 0.98.3, Licensee agrees to be bound by the terms and conditions of this License Agreement. + diff --git a/docs/sphinxext/MANIFEST.in b/docs/sphinxext/MANIFEST.in new file mode 100644 index 0000000..f88ed78 --- /dev/null +++ b/docs/sphinxext/MANIFEST.in @@ -0,0 +1,2 @@ +recursive-include tests *.py +include *.txt diff --git a/docs/sphinxext/README.txt b/docs/sphinxext/README.txt new file mode 100644 index 0000000..9647703 --- /dev/null +++ b/docs/sphinxext/README.txt @@ -0,0 +1,26 @@ +===================================== +numpydoc -- Numpy's Sphinx extensions +===================================== + +Numpy's documentation uses several custom extensions to Sphinx. These +are shipped in this ``numpydoc`` package, in case you want to make use +of them in third-party projects. + +The following extensions are available: + + - ``numpydoc``: support for the Numpy docstring format in Sphinx, and add + the code description directives ``np-function``, ``np-cfunction``, etc. + that support the Numpy docstring syntax. + + - ``numpydoc.traitsdoc``: For gathering documentation about Traits attributes. + + - ``numpydoc.plot_directives``: Adaptation of Matplotlib's ``plot::`` + directive. Note that this implementation may still undergo severe + changes or eventually be deprecated. + + - ``numpydoc.only_directives``: (DEPRECATED) + + - ``numpydoc.autosummary``: (DEPRECATED) An ``autosummary::`` directive. + Available in Sphinx 0.6.2 and (to-be) 1.0 as ``sphinx.ext.autosummary``, + and it the Sphinx 1.0 version is recommended over that included in + Numpydoc. diff --git a/docs/sphinxext/github.py b/docs/sphinxext/github.py new file mode 100644 index 0000000..519e146 --- /dev/null +++ b/docs/sphinxext/github.py @@ -0,0 +1,155 @@ +"""Define text roles for GitHub + +* ghissue - Issue +* ghpull - Pull Request +* ghuser - User + +Adapted from bitbucket example here: +https://bitbucket.org/birkenfeld/sphinx-contrib/src/tip/bitbucket/sphinxcontrib/bitbucket.py + +Authors +------- + +* Doug Hellmann +* Min RK +""" +# +# Original Copyright (c) 2010 Doug Hellmann. All rights reserved. +# + +from docutils import nodes, utils +from docutils.parsers.rst.roles import set_classes + +def make_link_node(rawtext, app, type, slug, options): + """Create a link to a github resource. + + :param rawtext: Text being replaced with link node. + :param app: Sphinx application context + :param type: Link type (issues, changeset, etc.) + :param slug: ID of the thing to link to + :param options: Options dictionary passed to role func. + """ + + try: + base = app.config.github_project_url + if not base: + raise AttributeError + if not base.endswith('/'): + base += '/' + except AttributeError as err: + raise ValueError('github_project_url configuration value is not set (%s)' % str(err)) + + ref = base + type + '/' + slug + '/' + set_classes(options) + prefix = "#" + if type == 'pull': + prefix = "PR " + prefix + node = nodes.reference(rawtext, prefix + utils.unescape(slug), refuri=ref, + **options) + return node + +def ghissue_role(name, rawtext, text, lineno, inliner, options={}, content=[]): + """Link to a GitHub issue. + + Returns 2 part tuple containing list of nodes to insert into the + document and a list of system messages. Both are allowed to be + empty. + + :param name: The role name used in the document. + :param rawtext: The entire markup snippet, with role. + :param text: The text marked with the role. + :param lineno: The line number where rawtext appears in the input. + :param inliner: The inliner instance that called us. + :param options: Directive options for customization. + :param content: The directive content for customization. + """ + + try: + issue_num = int(text) + if issue_num <= 0: + raise ValueError + except ValueError: + msg = inliner.reporter.error( + 'GitHub issue number must be a number greater than or equal to 1; ' + '"%s" is invalid.' % text, line=lineno) + prb = inliner.problematic(rawtext, rawtext, msg) + return [prb], [msg] + app = inliner.document.settings.env.app + #app.info('issue %r' % text) + if 'pull' in name.lower(): + category = 'pull' + elif 'issue' in name.lower(): + category = 'issues' + else: + msg = inliner.reporter.error( + 'GitHub roles include "ghpull" and "ghissue", ' + '"%s" is invalid.' % name, line=lineno) + prb = inliner.problematic(rawtext, rawtext, msg) + return [prb], [msg] + node = make_link_node(rawtext, app, category, str(issue_num), options) + return [node], [] + +def ghuser_role(name, rawtext, text, lineno, inliner, options={}, content=[]): + """Link to a GitHub user. + + Returns 2 part tuple containing list of nodes to insert into the + document and a list of system messages. Both are allowed to be + empty. + + :param name: The role name used in the document. + :param rawtext: The entire markup snippet, with role. + :param text: The text marked with the role. + :param lineno: The line number where rawtext appears in the input. + :param inliner: The inliner instance that called us. + :param options: Directive options for customization. + :param content: The directive content for customization. + """ + app = inliner.document.settings.env.app + #app.info('user link %r' % text) + ref = 'https://www.github.com/' + text + node = nodes.reference(rawtext, text, refuri=ref, **options) + return [node], [] + +def ghcommit_role(name, rawtext, text, lineno, inliner, options={}, content=[]): + """Link to a GitHub commit. + + Returns 2 part tuple containing list of nodes to insert into the + document and a list of system messages. Both are allowed to be + empty. + + :param name: The role name used in the document. + :param rawtext: The entire markup snippet, with role. + :param text: The text marked with the role. + :param lineno: The line number where rawtext appears in the input. + :param inliner: The inliner instance that called us. + :param options: Directive options for customization. + :param content: The directive content for customization. + """ + app = inliner.document.settings.env.app + #app.info('user link %r' % text) + try: + base = app.config.github_project_url + if not base: + raise AttributeError + if not base.endswith('/'): + base += '/' + except AttributeError as err: + raise ValueError('github_project_url configuration value is not set (%s)' % str(err)) + + ref = base + text + node = nodes.reference(rawtext, text[:6], refuri=ref, **options) + return [node], [] + + +def setup(app): + """Install the plugin. + + :param app: Sphinx application context. + """ + app.info('Initializing GitHub plugin') + app.add_role('ghissue', ghissue_role) + app.add_role('ghpull', ghissue_role) + app.add_role('ghuser', ghuser_role) + app.add_role('ghcommit', ghcommit_role) + app.add_config_value('github_project_url', None, 'env') + return diff --git a/docs/sphinxext/ipython_console_highlighting.py b/docs/sphinxext/ipython_console_highlighting.py new file mode 100644 index 0000000..f0a41be --- /dev/null +++ b/docs/sphinxext/ipython_console_highlighting.py @@ -0,0 +1,114 @@ +"""reST directive for syntax-highlighting ipython interactive sessions. + +XXX - See what improvements can be made based on the new (as of Sept 2009) +'pycon' lexer for the python console. At the very least it will give better +highlighted tracebacks. +""" + +#----------------------------------------------------------------------------- +# Needed modules + +# Standard library +import re + +# Third party +from pygments.lexer import Lexer, do_insertions +from pygments.lexers.agile import (PythonConsoleLexer, PythonLexer, + PythonTracebackLexer) +from pygments.token import Comment, Generic + +from sphinx import highlighting + +#----------------------------------------------------------------------------- +# Global constants +line_re = re.compile('.*?\n') + +#----------------------------------------------------------------------------- +# Code begins - classes and functions + +class IPythonConsoleLexer(Lexer): + """ + For IPython console output or doctests, such as: + + .. sourcecode:: ipython + + In [1]: a = 'foo' + + In [2]: a + Out[2]: 'foo' + + In [3]: print a + foo + + In [4]: 1 / 0 + + Notes: + + - Tracebacks are not currently supported. + + - It assumes the default IPython prompts, not customized ones. + """ + + name = 'IPython console session' + aliases = ['ipython'] + mimetypes = ['text/x-ipython-console'] + input_prompt = re.compile("(In \[[0-9]+\]: )|( \.\.\.+:)") + output_prompt = re.compile("(Out\[[0-9]+\]: )|( \.\.\.+:)") + continue_prompt = re.compile(" \.\.\.+:") + tb_start = re.compile("\-+") + + def get_tokens_unprocessed(self, text): + pylexer = PythonLexer(**self.options) + tblexer = PythonTracebackLexer(**self.options) + + curcode = '' + insertions = [] + for match in line_re.finditer(text): + line = match.group() + input_prompt = self.input_prompt.match(line) + continue_prompt = self.continue_prompt.match(line.rstrip()) + output_prompt = self.output_prompt.match(line) + if line.startswith("#"): + insertions.append((len(curcode), + [(0, Comment, line)])) + elif input_prompt is not None: + insertions.append((len(curcode), + [(0, Generic.Prompt, input_prompt.group())])) + curcode += line[input_prompt.end():] + elif continue_prompt is not None: + insertions.append((len(curcode), + [(0, Generic.Prompt, continue_prompt.group())])) + curcode += line[continue_prompt.end():] + elif output_prompt is not None: + # Use the 'error' token for output. We should probably make + # our own token, but error is typicaly in a bright color like + # red, so it works fine for our output prompts. + insertions.append((len(curcode), + [(0, Generic.Error, output_prompt.group())])) + curcode += line[output_prompt.end():] + else: + if curcode: + for item in do_insertions(insertions, + pylexer.get_tokens_unprocessed(curcode)): + yield item + curcode = '' + insertions = [] + yield match.start(), Generic.Output, line + if curcode: + for item in do_insertions(insertions, + pylexer.get_tokens_unprocessed(curcode)): + yield item + + +def setup(app): + """Setup as a sphinx extension.""" + + # This is only a lexer, so adding it below to pygments appears sufficient. + # But if somebody knows that the right API usage should be to do that via + # sphinx, by all means fix it here. At least having this setup.py + # suppresses the sphinx warning we'd get without it. + pass + +#----------------------------------------------------------------------------- +# Register the extension as a valid pygments lexer +highlighting.lexers['ipython'] = IPythonConsoleLexer() diff --git a/docs/sphinxext/ipython_directive.py b/docs/sphinxext/ipython_directive.py new file mode 100644 index 0000000..cde36cf --- /dev/null +++ b/docs/sphinxext/ipython_directive.py @@ -0,0 +1,1188 @@ +# -*- coding: utf-8 -*- +""" +Sphinx directive to support embedded IPython code. + +This directive allows pasting of entire interactive IPython sessions, prompts +and all, and their code will actually get re-executed at doc build time, with +all prompts renumbered sequentially. It also allows you to input code as a pure +python input by giving the argument python to the directive. The output looks +like an interactive ipython section. + +To enable this directive, simply list it in your Sphinx ``conf.py`` file +(making sure the directory where you placed it is visible to sphinx, as is +needed for all Sphinx directives). For example, to enable syntax highlighting +and the IPython directive:: + + extensions = ['IPython.sphinxext.ipython_console_highlighting', + 'IPython.sphinxext.ipython_directive'] + +The IPython directive outputs code-blocks with the language 'ipython'. So +if you do not have the syntax highlighting extension enabled as well, then +all rendered code-blocks will be uncolored. By default this directive assumes +that your prompts are unchanged IPython ones, but this can be customized. +The configurable options that can be placed in conf.py are: + +ipython_savefig_dir: + The directory in which to save the figures. This is relative to the + Sphinx source directory. The default is `html_static_path`. +ipython_rgxin: + The compiled regular expression to denote the start of IPython input + lines. The default is re.compile('In \[(\d+)\]:\s?(.*)\s*'). You + shouldn't need to change this. +ipython_rgxout: + The compiled regular expression to denote the start of IPython output + lines. The default is re.compile('Out\[(\d+)\]:\s?(.*)\s*'). You + shouldn't need to change this. +ipython_promptin: + The string to represent the IPython input prompt in the generated ReST. + The default is 'In [%d]:'. This expects that the line numbers are used + in the prompt. +ipython_promptout: + The string to represent the IPython prompt in the generated ReST. The + default is 'Out [%d]:'. This expects that the line numbers are used + in the prompt. +ipython_mplbackend: + The string which specifies if the embedded Sphinx shell should import + Matplotlib and set the backend. The value specifies a backend that is + passed to `matplotlib.use()` before any lines in `ipython_execlines` are + executed. If not specified in conf.py, then the default value of 'agg' is + used. To use the IPython directive without matplotlib as a dependency, set + the value to `None`. It may end up that matplotlib is still imported + if the user specifies so in `ipython_execlines` or makes use of the + @savefig pseudo decorator. +ipython_execlines: + A list of strings to be exec'd in the embedded Sphinx shell. Typical + usage is to make certain packages always available. Set this to an empty + list if you wish to have no imports always available. If specified in + conf.py as `None`, then it has the effect of making no imports available. + If omitted from conf.py altogether, then the default value of + ['import numpy as np', 'import matplotlib.pyplot as plt'] is used. +ipython_holdcount + When the @suppress pseudo-decorator is used, the execution count can be + incremented or not. The default behavior is to hold the execution count, + corresponding to a value of `True`. Set this to `False` to increment + the execution count after each suppressed command. + +As an example, to use the IPython directive when `matplotlib` is not available, +one sets the backend to `None`:: + + ipython_mplbackend = None + +An example usage of the directive is: + +.. code-block:: rst + + .. ipython:: + + In [1]: x = 1 + + In [2]: y = x**2 + + In [3]: print(y) + +See http://matplotlib.org/sampledoc/ipython_directive.html for additional +documentation. + +Pseudo-Decorators +================= + +Note: Only one decorator is supported per input. If more than one decorator +is specified, then only the last one is used. + +In addition to the Pseudo-Decorators/options described at the above link, +several enhancements have been made. The directive will emit a message to the +console at build-time if code-execution resulted in an exception or warning. +You can suppress these on a per-block basis by specifying the :okexcept: +or :okwarning: options: + +.. code-block:: rst + + .. ipython:: + :okexcept: + :okwarning: + + In [1]: 1/0 + In [2]: # raise warning. + +ToDo +---- + +- Turn the ad-hoc test() function into a real test suite. +- Break up ipython-specific functionality from matplotlib stuff into better + separated code. + +Authors +------- + +- John D Hunter: orignal author. +- Fernando Perez: refactoring, documentation, cleanups, port to 0.11. +- VáclavŠmilauer : Prompt generalizations. +- Skipper Seabold, refactoring, cleanups, pure python addition +""" +from __future__ import print_function + +#----------------------------------------------------------------------------- +# Imports +#----------------------------------------------------------------------------- + +# Stdlib +import atexit +import os +import re +import sys +import tempfile +import ast +import warnings +import shutil + + +# Third-party +from docutils.parsers.rst import directives +from sphinx.util.compat import Directive + +# Our own +from traitlets.config import Config +from IPython import InteractiveShell +from IPython.core.profiledir import ProfileDir +from IPython.utils import io +from IPython.utils.py3compat import PY3 + +if PY3: + from io import StringIO +else: + from StringIO import StringIO + +#----------------------------------------------------------------------------- +# Globals +#----------------------------------------------------------------------------- +# for tokenizing blocks +COMMENT, INPUT, OUTPUT = range(3) + +#----------------------------------------------------------------------------- +# Functions and class declarations +#----------------------------------------------------------------------------- + +def block_parser(part, rgxin, rgxout, fmtin, fmtout): + """ + part is a string of ipython text, comprised of at most one + input, one output, comments, and blank lines. The block parser + parses the text into a list of:: + + blocks = [ (TOKEN0, data0), (TOKEN1, data1), ...] + + where TOKEN is one of [COMMENT | INPUT | OUTPUT ] and + data is, depending on the type of token:: + + COMMENT : the comment string + + INPUT: the (DECORATOR, INPUT_LINE, REST) where + DECORATOR: the input decorator (or None) + INPUT_LINE: the input as string (possibly multi-line) + REST : any stdout generated by the input line (not OUTPUT) + + OUTPUT: the output string, possibly multi-line + + """ + block = [] + lines = part.split('\n') + N = len(lines) + i = 0 + decorator = None + while 1: + + if i==N: + # nothing left to parse -- the last line + break + + line = lines[i] + i += 1 + line_stripped = line.strip() + if line_stripped.startswith('#'): + block.append((COMMENT, line)) + continue + + if line_stripped.startswith('@'): + # Here is where we assume there is, at most, one decorator. + # Might need to rethink this. + decorator = line_stripped + continue + + # does this look like an input line? + matchin = rgxin.match(line) + if matchin: + lineno, inputline = int(matchin.group(1)), matchin.group(2) + + # the ....: continuation string + continuation = ' %s:'%''.join(['.']*(len(str(lineno))+2)) + Nc = len(continuation) + # input lines can continue on for more than one line, if + # we have a '\' line continuation char or a function call + # echo line 'print'. The input line can only be + # terminated by the end of the block or an output line, so + # we parse out the rest of the input line if it is + # multiline as well as any echo text + + rest = [] + while i 1: + if input_lines[-1] != "": + input_lines.append('') # make sure there's a blank line + # so splitter buffer gets reset + + continuation = ' %s:'%''.join(['.']*(len(str(lineno))+2)) + + if is_savefig: + image_file, image_directive = self.process_image(decorator) + + ret = [] + is_semicolon = False + + # Hold the execution count, if requested to do so. + if is_suppress and self.hold_count: + store_history = False + else: + store_history = True + + # Note: catch_warnings is not thread safe + with warnings.catch_warnings(record=True) as ws: + for i, line in enumerate(input_lines): + if line.endswith(';'): + is_semicolon = True + + if i == 0: + # process the first input line + if is_verbatim: + self.process_input_line('') + self.IP.execution_count += 1 # increment it anyway + else: + # only submit the line in non-verbatim mode + self.process_input_line(line, store_history=store_history) + formatted_line = '%s %s'%(input_prompt, line) + else: + # process a continuation line + if not is_verbatim: + self.process_input_line(line, store_history=store_history) + + formatted_line = '%s %s'%(continuation, line) + + if not is_suppress: + ret.append(formatted_line) + + if not is_suppress and len(rest.strip()) and is_verbatim: + # The "rest" is the standard output of the input. This needs to be + # added when in verbatim mode. If there is no "rest", then we don't + # add it, as the new line will be added by the processed output. + ret.append(rest) + + # Fetch the processed output. (This is not the submitted output.) + self.cout.seek(0) + processed_output = self.cout.read() + if not is_suppress and not is_semicolon: + # + # In IPythonDirective.run, the elements of `ret` are eventually + # combined such that '' entries correspond to newlines. So if + # `processed_output` is equal to '', then the adding it to `ret` + # ensures that there is a blank line between consecutive inputs + # that have no outputs, as in: + # + # In [1]: x = 4 + # + # In [2]: x = 5 + # + # When there is processed output, it has a '\n' at the tail end. So + # adding the output to `ret` will provide the necessary spacing + # between consecutive input/output blocks, as in: + # + # In [1]: x + # Out[1]: 5 + # + # In [2]: x + # Out[2]: 5 + # + # When there is stdout from the input, it also has a '\n' at the + # tail end, and so this ensures proper spacing as well. E.g.: + # + # In [1]: print x + # 5 + # + # In [2]: x = 5 + # + # When in verbatim mode, `processed_output` is empty (because + # nothing was passed to IP. Sometimes the submitted code block has + # an Out[] portion and sometimes it does not. When it does not, we + # need to ensure proper spacing, so we have to add '' to `ret`. + # However, if there is an Out[] in the submitted code, then we do + # not want to add a newline as `process_output` has stuff to add. + # The difficulty is that `process_input` doesn't know if + # `process_output` will be called---so it doesn't know if there is + # Out[] in the code block. The requires that we include a hack in + # `process_block`. See the comments there. + # + ret.append(processed_output) + elif is_semicolon: + # Make sure there is a newline after the semicolon. + ret.append('') + + # context information + filename = "Unknown" + lineno = 0 + if self.directive.state: + filename = self.directive.state.document.current_source + lineno = self.directive.state.document.current_line + + # output any exceptions raised during execution to stdout + # unless :okexcept: has been specified. + if not is_okexcept and "Traceback" in processed_output: + s = "\nException in %s at block ending on line %s\n" % (filename, lineno) + s += "Specify :okexcept: as an option in the ipython:: block to suppress this message\n" + sys.stdout.write('\n\n>>>' + ('-' * 73)) + sys.stdout.write(s) + sys.stdout.write(processed_output) + sys.stdout.write('<<<' + ('-' * 73) + '\n\n') + + # output any warning raised during execution to stdout + # unless :okwarning: has been specified. + if not is_okwarning: + for w in ws: + s = "\nWarning in %s at block ending on line %s\n" % (filename, lineno) + s += "Specify :okwarning: as an option in the ipython:: block to suppress this message\n" + sys.stdout.write('\n\n>>>' + ('-' * 73)) + sys.stdout.write(s) + sys.stdout.write(('-' * 76) + '\n') + s=warnings.formatwarning(w.message, w.category, + w.filename, w.lineno, w.line) + sys.stdout.write(s) + sys.stdout.write('<<<' + ('-' * 73) + '\n') + + self.cout.truncate(0) + + return (ret, input_lines, processed_output, + is_doctest, decorator, image_file, image_directive) + + + def process_output(self, data, output_prompt, input_lines, output, + is_doctest, decorator, image_file): + """ + Process data block for OUTPUT token. + + """ + # Recall: `data` is the submitted output, and `output` is the processed + # output from `input_lines`. + + TAB = ' ' * 4 + + if is_doctest and output is not None: + + found = output # This is the processed output + found = found.strip() + submitted = data.strip() + + if self.directive is None: + source = 'Unavailable' + content = 'Unavailable' + else: + source = self.directive.state.document.current_source + content = self.directive.content + # Add tabs and join into a single string. + content = '\n'.join([TAB + line for line in content]) + + # Make sure the output contains the output prompt. + ind = found.find(output_prompt) + if ind < 0: + e = ('output does not contain output prompt\n\n' + 'Document source: {0}\n\n' + 'Raw content: \n{1}\n\n' + 'Input line(s):\n{TAB}{2}\n\n' + 'Output line(s):\n{TAB}{3}\n\n') + e = e.format(source, content, '\n'.join(input_lines), + repr(found), TAB=TAB) + raise RuntimeError(e) + found = found[len(output_prompt):].strip() + + # Handle the actual doctest comparison. + if decorator.strip() == '@doctest': + # Standard doctest + if found != submitted: + e = ('doctest failure\n\n' + 'Document source: {0}\n\n' + 'Raw content: \n{1}\n\n' + 'On input line(s):\n{TAB}{2}\n\n' + 'we found output:\n{TAB}{3}\n\n' + 'instead of the expected:\n{TAB}{4}\n\n') + e = e.format(source, content, '\n'.join(input_lines), + repr(found), repr(submitted), TAB=TAB) + raise RuntimeError(e) + else: + self.custom_doctest(decorator, input_lines, found, submitted) + + # When in verbatim mode, this holds additional submitted output + # to be written in the final Sphinx output. + # https://github.com/ipython/ipython/issues/5776 + out_data = [] + + is_verbatim = decorator=='@verbatim' or self.is_verbatim + if is_verbatim and data.strip(): + # Note that `ret` in `process_block` has '' as its last element if + # the code block was in verbatim mode. So if there is no submitted + # output, then we will have proper spacing only if we do not add + # an additional '' to `out_data`. This is why we condition on + # `and data.strip()`. + + # The submitted output has no output prompt. If we want the + # prompt and the code to appear, we need to join them now + # instead of adding them separately---as this would create an + # undesired newline. How we do this ultimately depends on the + # format of the output regex. I'll do what works for the default + # prompt for now, and we might have to adjust if it doesn't work + # in other cases. Finally, the submitted output does not have + # a trailing newline, so we must add it manually. + out_data.append("{0} {1}\n".format(output_prompt, data)) + + return out_data + + def process_comment(self, data): + """Process data fPblock for COMMENT token.""" + if not self.is_suppress: + return [data] + + def save_image(self, image_file): + """ + Saves the image file to disk. + """ + self.ensure_pyplot() + command = 'plt.gcf().savefig("%s")'%image_file + #print 'SAVEFIG', command # dbg + self.process_input_line('bookmark ipy_thisdir', store_history=False) + self.process_input_line('cd -b ipy_savedir', store_history=False) + self.process_input_line(command, store_history=False) + self.process_input_line('cd -b ipy_thisdir', store_history=False) + self.process_input_line('bookmark -d ipy_thisdir', store_history=False) + self.clear_cout() + + def process_block(self, block): + """ + process block from the block_parser and return a list of processed lines + """ + ret = [] + output = None + input_lines = None + lineno = self.IP.execution_count + + input_prompt = self.promptin % lineno + output_prompt = self.promptout % lineno + image_file = None + image_directive = None + + found_input = False + for token, data in block: + if token == COMMENT: + out_data = self.process_comment(data) + elif token == INPUT: + found_input = True + (out_data, input_lines, output, is_doctest, + decorator, image_file, image_directive) = \ + self.process_input(data, input_prompt, lineno) + elif token == OUTPUT: + if not found_input: + + TAB = ' ' * 4 + linenumber = 0 + source = 'Unavailable' + content = 'Unavailable' + if self.directive: + linenumber = self.directive.state.document.current_line + source = self.directive.state.document.current_source + content = self.directive.content + # Add tabs and join into a single string. + content = '\n'.join([TAB + line for line in content]) + + e = ('\n\nInvalid block: Block contains an output prompt ' + 'without an input prompt.\n\n' + 'Document source: {0}\n\n' + 'Content begins at line {1}: \n\n{2}\n\n' + 'Problematic block within content: \n\n{TAB}{3}\n\n') + e = e.format(source, linenumber, content, block, TAB=TAB) + + # Write, rather than include in exception, since Sphinx + # will truncate tracebacks. + sys.stdout.write(e) + raise RuntimeError('An invalid block was detected.') + + out_data = \ + self.process_output(data, output_prompt, input_lines, + output, is_doctest, decorator, + image_file) + if out_data: + # Then there was user submitted output in verbatim mode. + # We need to remove the last element of `ret` that was + # added in `process_input`, as it is '' and would introduce + # an undesirable newline. + assert(ret[-1] == '') + del ret[-1] + + if out_data: + ret.extend(out_data) + + # save the image files + if image_file is not None: + self.save_image(image_file) + + return ret, image_directive + + def ensure_pyplot(self): + """ + Ensures that pyplot has been imported into the embedded IPython shell. + + Also, makes sure to set the backend appropriately if not set already. + + """ + # We are here if the @figure pseudo decorator was used. Thus, it's + # possible that we could be here even if python_mplbackend were set to + # `None`. That's also strange and perhaps worthy of raising an + # exception, but for now, we just set the backend to 'agg'. + + if not self._pyplot_imported: + if 'matplotlib.backends' not in sys.modules: + # Then ipython_matplotlib was set to None but there was a + # call to the @figure decorator (and ipython_execlines did + # not set a backend). + #raise Exception("No backend was set, but @figure was used!") + import matplotlib + matplotlib.use('agg') + + # Always import pyplot into embedded shell. + self.process_input_line('import matplotlib.pyplot as plt', + store_history=False) + self._pyplot_imported = True + + def process_pure_python(self, content): + """ + content is a list of strings. it is unedited directive content + + This runs it line by line in the InteractiveShell, prepends + prompts as needed capturing stderr and stdout, then returns + the content as a list as if it were ipython code + """ + output = [] + savefig = False # keep up with this to clear figure + multiline = False # to handle line continuation + multiline_start = None + fmtin = self.promptin + + ct = 0 + + for lineno, line in enumerate(content): + + line_stripped = line.strip() + if not len(line): + output.append(line) + continue + + # handle decorators + if line_stripped.startswith('@'): + output.extend([line]) + if 'savefig' in line: + savefig = True # and need to clear figure + continue + + # handle comments + if line_stripped.startswith('#'): + output.extend([line]) + continue + + # deal with lines checking for multiline + continuation = u' %s:'% ''.join(['.']*(len(str(ct))+2)) + if not multiline: + modified = u"%s %s" % (fmtin % ct, line_stripped) + output.append(modified) + ct += 1 + try: + ast.parse(line_stripped) + output.append(u'') + except Exception: # on a multiline + multiline = True + multiline_start = lineno + else: # still on a multiline + modified = u'%s %s' % (continuation, line) + output.append(modified) + + # if the next line is indented, it should be part of multiline + if len(content) > lineno + 1: + nextline = content[lineno + 1] + if len(nextline) - len(nextline.lstrip()) > 3: + continue + try: + mod = ast.parse( + '\n'.join(content[multiline_start:lineno+1])) + if isinstance(mod.body[0], ast.FunctionDef): + # check to see if we have the whole function + for element in mod.body[0].body: + if isinstance(element, ast.Return): + multiline = False + else: + output.append(u'') + multiline = False + except Exception: + pass + + if savefig: # clear figure if plotted + self.ensure_pyplot() + self.process_input_line('plt.clf()', store_history=False) + self.clear_cout() + savefig = False + + return output + + def custom_doctest(self, decorator, input_lines, found, submitted): + """ + Perform a specialized doctest. + + """ + from .custom_doctests import doctests + + args = decorator.split() + doctest_type = args[1] + if doctest_type in doctests: + doctests[doctest_type](self, args, input_lines, found, submitted) + else: + e = "Invalid option to @doctest: {0}".format(doctest_type) + raise Exception(e) + + +class IPythonDirective(Directive): + + has_content = True + required_arguments = 0 + optional_arguments = 4 # python, suppress, verbatim, doctest + final_argumuent_whitespace = True + option_spec = { 'python': directives.unchanged, + 'suppress' : directives.flag, + 'verbatim' : directives.flag, + 'doctest' : directives.flag, + 'okexcept': directives.flag, + 'okwarning': directives.flag + } + + shell = None + + seen_docs = set() + + def get_config_options(self): + # contains sphinx configuration variables + config = self.state.document.settings.env.config + + # get config variables to set figure output directory + outdir = self.state.document.settings.env.app.outdir + savefig_dir = config.ipython_savefig_dir + source_dir = os.path.dirname(self.state.document.current_source) + if savefig_dir is None: + savefig_dir = config.html_static_path or '_static' + if isinstance(savefig_dir, list): + savefig_dir = os.path.join(*savefig_dir) + savefig_dir = os.path.join(outdir, savefig_dir) + + # get regex and prompt stuff + rgxin = config.ipython_rgxin + rgxout = config.ipython_rgxout + promptin = config.ipython_promptin + promptout = config.ipython_promptout + mplbackend = config.ipython_mplbackend + exec_lines = config.ipython_execlines + hold_count = config.ipython_holdcount + + return (savefig_dir, source_dir, rgxin, rgxout, + promptin, promptout, mplbackend, exec_lines, hold_count) + + def setup(self): + # Get configuration values. + (savefig_dir, source_dir, rgxin, rgxout, promptin, promptout, + mplbackend, exec_lines, hold_count) = self.get_config_options() + + if self.shell is None: + # We will be here many times. However, when the + # EmbeddedSphinxShell is created, its interactive shell member + # is the same for each instance. + + if mplbackend: + import matplotlib + # Repeated calls to use() will not hurt us since `mplbackend` + # is the same each time. + matplotlib.use(mplbackend) + + # Must be called after (potentially) importing matplotlib and + # setting its backend since exec_lines might import pylab. + self.shell = EmbeddedSphinxShell(exec_lines) + + # Store IPython directive to enable better error messages + self.shell.directive = self + + # reset the execution count if we haven't processed this doc + #NOTE: this may be borked if there are multiple seen_doc tmp files + #check time stamp? + if not self.state.document.current_source in self.seen_docs: + self.shell.IP.history_manager.reset() + self.shell.IP.execution_count = 1 + self.shell.IP.prompt_manager.width = 0 + self.seen_docs.add(self.state.document.current_source) + + # and attach to shell so we don't have to pass them around + self.shell.rgxin = rgxin + self.shell.rgxout = rgxout + self.shell.promptin = promptin + self.shell.promptout = promptout + self.shell.savefig_dir = savefig_dir + self.shell.source_dir = source_dir + self.shell.hold_count = hold_count + + # setup bookmark for saving figures directory + self.shell.process_input_line('bookmark ipy_savedir %s'%savefig_dir, + store_history=False) + self.shell.clear_cout() + + return rgxin, rgxout, promptin, promptout + + def teardown(self): + # delete last bookmark + self.shell.process_input_line('bookmark -d ipy_savedir', + store_history=False) + self.shell.clear_cout() + + def run(self): + debug = False + + #TODO, any reason block_parser can't be a method of embeddable shell + # then we wouldn't have to carry these around + rgxin, rgxout, promptin, promptout = self.setup() + + options = self.options + self.shell.is_suppress = 'suppress' in options + self.shell.is_doctest = 'doctest' in options + self.shell.is_verbatim = 'verbatim' in options + self.shell.is_okexcept = 'okexcept' in options + self.shell.is_okwarning = 'okwarning' in options + + # handle pure python code + if 'python' in self.arguments: + content = self.content + self.content = self.shell.process_pure_python(content) + + # parts consists of all text within the ipython-block. + # Each part is an input/output block. + parts = '\n'.join(self.content).split('\n\n') + + lines = ['.. code-block:: ipython', ''] + figures = [] + + for part in parts: + block = block_parser(part, rgxin, rgxout, promptin, promptout) + if len(block): + rows, figure = self.shell.process_block(block) + for row in rows: + lines.extend([' {0}'.format(line) + for line in row.split('\n')]) + + if figure is not None: + figures.append(figure) + + for figure in figures: + lines.append('') + lines.extend(figure.split('\n')) + lines.append('') + + if len(lines) > 2: + if debug: + print('\n'.join(lines)) + else: + # This has to do with input, not output. But if we comment + # these lines out, then no IPython code will appear in the + # final output. + self.state_machine.insert_input( + lines, self.state_machine.input_lines.source(0)) + + # cleanup + self.teardown() + + return [] + +# Enable as a proper Sphinx directive +def setup(app): + setup.app = app + + app.add_directive('ipython', IPythonDirective) + app.add_config_value('ipython_savefig_dir', None, 'env') + app.add_config_value('ipython_rgxin', + re.compile('In \[(\d+)\]:\s?(.*)\s*'), 'env') + app.add_config_value('ipython_rgxout', + re.compile('Out\[(\d+)\]:\s?(.*)\s*'), 'env') + app.add_config_value('ipython_promptin', 'In [%d]:', 'env') + app.add_config_value('ipython_promptout', 'Out[%d]:', 'env') + + # We could just let matplotlib pick whatever is specified as the default + # backend in the matplotlibrc file, but this would cause issues if the + # backend didn't work in headless environments. For this reason, 'agg' + # is a good default backend choice. + app.add_config_value('ipython_mplbackend', 'agg', 'env') + + # If the user sets this config value to `None`, then EmbeddedSphinxShell's + # __init__ method will treat it as []. + execlines = ['import numpy as np', 'import matplotlib.pyplot as plt'] + app.add_config_value('ipython_execlines', execlines, 'env') + + app.add_config_value('ipython_holdcount', True, 'env') + + metadata = {'parallel_read_safe': True, 'parallel_write_safe': True} + return metadata + +# Simple smoke test, needs to be converted to a proper automatic test. +def test(): + + examples = [ + r""" +In [9]: pwd +Out[9]: '/home/jdhunter/py4science/book' + +In [10]: cd bookdata/ +/home/jdhunter/py4science/book/bookdata + +In [2]: from pylab import * + +In [2]: ion() + +In [3]: im = imread('stinkbug.png') + +@savefig mystinkbug.png width=4in +In [4]: imshow(im) +Out[4]: + +""", + r""" + +In [1]: x = 'hello world' + +# string methods can be +# used to alter the string +@doctest +In [2]: x.upper() +Out[2]: 'HELLO WORLD' + +@verbatim +In [3]: x.st +x.startswith x.strip +""", + r""" + +In [130]: url = 'http://ichart.finance.yahoo.com/table.csv?s=CROX\ + .....: &d=9&e=22&f=2009&g=d&a=1&br=8&c=2006&ignore=.csv' + +In [131]: print url.split('&') +['http://ichart.finance.yahoo.com/table.csv?s=CROX', 'd=9', 'e=22', 'f=2009', 'g=d', 'a=1', 'b=8', 'c=2006', 'ignore=.csv'] + +In [60]: import urllib + +""", + r"""\ + +In [133]: import numpy.random + +@suppress +In [134]: numpy.random.seed(2358) + +@doctest +In [135]: numpy.random.rand(10,2) +Out[135]: +array([[ 0.64524308, 0.59943846], + [ 0.47102322, 0.8715456 ], + [ 0.29370834, 0.74776844], + [ 0.99539577, 0.1313423 ], + [ 0.16250302, 0.21103583], + [ 0.81626524, 0.1312433 ], + [ 0.67338089, 0.72302393], + [ 0.7566368 , 0.07033696], + [ 0.22591016, 0.77731835], + [ 0.0072729 , 0.34273127]]) + +""", + + r""" +In [106]: print x +jdh + +In [109]: for i in range(10): + .....: print i + .....: + .....: +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +""", + + r""" + +In [144]: from pylab import * + +In [145]: ion() + +# use a semicolon to suppress the output +@savefig test_hist.png width=4in +In [151]: hist(np.random.randn(10000), 100); + + +@savefig test_plot.png width=4in +In [151]: plot(np.random.randn(10000), 'o'); + """, + + r""" +# use a semicolon to suppress the output +In [151]: plt.clf() + +@savefig plot_simple.png width=4in +In [151]: plot([1,2,3]) + +@savefig hist_simple.png width=4in +In [151]: hist(np.random.randn(10000), 100); + +""", + r""" +# update the current fig +In [151]: ylabel('number') + +In [152]: title('normal distribution') + + +@savefig hist_with_text.png +In [153]: grid(True) + +@doctest float +In [154]: 0.1 + 0.2 +Out[154]: 0.3 + +@doctest float +In [155]: np.arange(16).reshape(4,4) +Out[155]: +array([[ 0, 1, 2, 3], + [ 4, 5, 6, 7], + [ 8, 9, 10, 11], + [12, 13, 14, 15]]) + +In [1]: x = np.arange(16, dtype=float).reshape(4,4) + +In [2]: x[0,0] = np.inf + +In [3]: x[0,1] = np.nan + +@doctest float +In [4]: x +Out[4]: +array([[ inf, nan, 2., 3.], + [ 4., 5., 6., 7.], + [ 8., 9., 10., 11.], + [ 12., 13., 14., 15.]]) + + + """, + ] + # skip local-file depending first example: + examples = examples[1:] + + #ipython_directive.DEBUG = True # dbg + #options = dict(suppress=True) # dbg + options = dict() + for example in examples: + content = example.split('\n') + IPythonDirective('debug', arguments=None, options=options, + content=content, lineno=0, + content_offset=None, block_text=None, + state=None, state_machine=None, + ) + +# Run test suite as a script +if __name__=='__main__': + if not os.path.isdir('_static'): + os.mkdir('_static') + test() + print('All OK? Check figures in _static/') diff --git a/docs/sphinxext/numpy_ext/__init__.py b/docs/sphinxext/numpy_ext/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/docs/sphinxext/numpy_ext/docscrape.py b/docs/sphinxext/numpy_ext/docscrape.py new file mode 100644 index 0000000..9329cdb --- /dev/null +++ b/docs/sphinxext/numpy_ext/docscrape.py @@ -0,0 +1,501 @@ +"""Extract reference documentation from the NumPy source tree. + +""" + +import inspect +import textwrap +import re +import pydoc +try: + from StringIO import StringIO +except ImportError: + from io import StringIO +from warnings import warn + +class Reader(object): + """A line-based string reader. + + """ + def __init__(self, data): + """ + Parameters + ---------- + data : str + String with lines separated by '\n'. + + """ + if isinstance(data,list): + self._str = data + else: + self._str = data.split('\n') # store string as list of lines + + self.reset() + + def __getitem__(self, n): + return self._str[n] + + def reset(self): + self._l = 0 # current line nr + + def read(self): + if not self.eof(): + out = self[self._l] + self._l += 1 + return out + else: + return '' + + def seek_next_non_empty_line(self): + for l in self[self._l:]: + if l.strip(): + break + else: + self._l += 1 + + def eof(self): + return self._l >= len(self._str) + + def read_to_condition(self, condition_func): + start = self._l + for line in self[start:]: + if condition_func(line): + return self[start:self._l] + self._l += 1 + if self.eof(): + return self[start:self._l+1] + return [] + + def read_to_next_empty_line(self): + self.seek_next_non_empty_line() + def is_empty(line): + return not line.strip() + return self.read_to_condition(is_empty) + + def read_to_next_unindented_line(self): + def is_unindented(line): + return (line.strip() and (len(line.lstrip()) == len(line))) + return self.read_to_condition(is_unindented) + + def peek(self,n=0): + if self._l + n < len(self._str): + return self[self._l + n] + else: + return '' + + def is_empty(self): + return not ''.join(self._str).strip() + + +class NumpyDocString(object): + def __init__(self, docstring, config={}): + docstring = textwrap.dedent(docstring).split('\n') + + self._doc = Reader(docstring) + self._parsed_data = { + 'Signature': '', + 'Summary': [''], + 'Extended Summary': [], + 'Parameters': [], + 'Returns': [], + 'Raises': [], + 'Warns': [], + 'Other Parameters': [], + 'Attributes': [], + 'Methods': [], + 'See Also': [], + 'Notes': [], + 'Warnings': [], + 'References': '', + 'Examples': '', + 'index': {} + } + + self._parse() + + def __getitem__(self,key): + return self._parsed_data[key] + + def __setitem__(self,key,val): + if not self._parsed_data.has_key(key): + warn("Unknown section %s" % key) + else: + self._parsed_data[key] = val + + def _is_at_section(self): + self._doc.seek_next_non_empty_line() + + if self._doc.eof(): + return False + + l1 = self._doc.peek().strip() # e.g. Parameters + + if l1.startswith('.. index::'): + return True + + l2 = self._doc.peek(1).strip() # ---------- or ========== + return l2.startswith('-'*len(l1)) or l2.startswith('='*len(l1)) + + def _strip(self,doc): + i = 0 + j = 0 + for i,line in enumerate(doc): + if line.strip(): break + + for j,line in enumerate(doc[::-1]): + if line.strip(): break + + return doc[i:len(doc)-j] + + def _read_to_next_section(self): + section = self._doc.read_to_next_empty_line() + + while not self._is_at_section() and not self._doc.eof(): + if not self._doc.peek(-1).strip(): # previous line was empty + section += [''] + + section += self._doc.read_to_next_empty_line() + + return section + + def _read_sections(self): + while not self._doc.eof(): + data = self._read_to_next_section() + name = data[0].strip() + + if name.startswith('..'): # index section + yield name, data[1:] + elif len(data) < 2: + yield StopIteration + else: + yield name, self._strip(data[2:]) + + def _parse_param_list(self,content): + r = Reader(content) + params = [] + while not r.eof(): + header = r.read().strip() + if ' : ' in header: + arg_name, arg_type = header.split(' : ')[:2] + else: + arg_name, arg_type = header, '' + + desc = r.read_to_next_unindented_line() + desc = dedent_lines(desc) + + params.append((arg_name,arg_type,desc)) + + return params + + + _name_rgx = re.compile(r"^\s*(:(?P\w+):`(?P[a-zA-Z0-9_.-]+)`|" + r" (?P[a-zA-Z0-9_.-]+))\s*", re.X) + def _parse_see_also(self, content): + """ + func_name : Descriptive text + continued text + another_func_name : Descriptive text + func_name1, func_name2, :meth:`func_name`, func_name3 + + """ + items = [] + + def parse_item_name(text): + """Match ':role:`name`' or 'name'""" + m = self._name_rgx.match(text) + if m: + g = m.groups() + if g[1] is None: + return g[3], None + else: + return g[2], g[1] + raise ValueError("%s is not a item name" % text) + + def push_item(name, rest): + if not name: + return + name, role = parse_item_name(name) + items.append((name, list(rest), role)) + del rest[:] + + current_func = None + rest = [] + + for line in content: + if not line.strip(): continue + + m = self._name_rgx.match(line) + if m and line[m.end():].strip().startswith(':'): + push_item(current_func, rest) + current_func, line = line[:m.end()], line[m.end():] + rest = [line.split(':', 1)[1].strip()] + if not rest[0]: + rest = [] + elif not line.startswith(' '): + push_item(current_func, rest) + current_func = None + if ',' in line: + for func in line.split(','): + push_item(func, []) + elif line.strip(): + current_func = line + elif current_func is not None: + rest.append(line.strip()) + push_item(current_func, rest) + return items + + def _parse_index(self, section, content): + """ + .. index: default + :refguide: something, else, and more + + """ + def strip_each_in(lst): + return [s.strip() for s in lst] + + out = {} + section = section.split('::') + if len(section) > 1: + out['default'] = strip_each_in(section[1].split(','))[0] + for line in content: + line = line.split(':') + if len(line) > 2: + out[line[1]] = strip_each_in(line[2].split(',')) + return out + + def _parse_summary(self): + """Grab signature (if given) and summary""" + if self._is_at_section(): + return + + summary = self._doc.read_to_next_empty_line() + summary_str = " ".join([s.strip() for s in summary]).strip() + if re.compile('^([\w., ]+=)?\s*[\w\.]+\(.*\)$').match(summary_str): + self['Signature'] = summary_str + if not self._is_at_section(): + self['Summary'] = self._doc.read_to_next_empty_line() + else: + self['Summary'] = summary + + if not self._is_at_section(): + self['Extended Summary'] = self._read_to_next_section() + + def _parse(self): + self._doc.reset() + self._parse_summary() + + for (section,content) in self._read_sections(): + if not section.startswith('..'): + section = ' '.join([s.capitalize() for s in section.split(' ')]) + if section in ('Parameters', 'Attributes', 'Methods', + 'Returns', 'Raises', 'Warns'): + self[section] = self._parse_param_list(content) + elif section.startswith('.. index::'): + self['index'] = self._parse_index(section, content) + elif section == 'See Also': + self['See Also'] = self._parse_see_also(content) + else: + self[section] = content + + # string conversion routines + + def _str_header(self, name, symbol='-'): + return [name, len(name)*symbol] + + def _str_indent(self, doc, indent=4): + out = [] + for line in doc: + out += [' '*indent + line] + return out + + def _str_signature(self): + if self['Signature']: + return [self['Signature'].replace('*','\*')] + [''] + else: + return [''] + + def _str_summary(self): + if self['Summary']: + return self['Summary'] + [''] + else: + return [] + + def _str_extended_summary(self): + if self['Extended Summary']: + return self['Extended Summary'] + [''] + else: + return [] + + def _str_param_list(self, name): + out = [] + if self[name]: + out += self._str_header(name) + for param,param_type,desc in self[name]: + out += ['%s : %s' % (param, param_type)] + out += self._str_indent(desc) + out += [''] + return out + + def _str_section(self, name): + out = [] + if self[name]: + out += self._str_header(name) + out += self[name] + out += [''] + return out + + def _str_see_also(self, func_role): + if not self['See Also']: return [] + out = [] + out += self._str_header("See Also") + last_had_desc = True + for func, desc, role in self['See Also']: + if role: + link = ':%s:`%s`' % (role, func) + elif func_role: + link = ':%s:`%s`' % (func_role, func) + else: + link = "`%s`_" % func + if desc or last_had_desc: + out += [''] + out += [link] + else: + out[-1] += ", %s" % link + if desc: + out += self._str_indent([' '.join(desc)]) + last_had_desc = True + else: + last_had_desc = False + out += [''] + return out + + def _str_index(self): + idx = self['index'] + out = [] + out += ['.. index:: %s' % idx.get('default','')] + for section, references in idx.iteritems(): + if section == 'default': + continue + out += [' :%s: %s' % (section, ', '.join(references))] + return out + + def __str__(self, func_role=''): + out = [] + out += self._str_signature() + out += self._str_summary() + out += self._str_extended_summary() + for param_list in ('Parameters','Returns','Raises'): + out += self._str_param_list(param_list) + out += self._str_section('Warnings') + out += self._str_see_also(func_role) + for s in ('Notes','References','Examples'): + out += self._str_section(s) + for param_list in ('Attributes', 'Methods'): + out += self._str_param_list(param_list) + out += self._str_index() + return '\n'.join(out) + + +def indent(str,indent=4): + indent_str = ' '*indent + if str is None: + return indent_str + lines = str.split('\n') + return '\n'.join(indent_str + l for l in lines) + +def dedent_lines(lines): + """Deindent a list of lines maximally""" + return textwrap.dedent("\n".join(lines)).split("\n") + +def header(text, style='-'): + return text + '\n' + style*len(text) + '\n' + + +class FunctionDoc(NumpyDocString): + def __init__(self, func, role='func', doc=None, config={}): + self._f = func + self._role = role # e.g. "func" or "meth" + + if doc is None: + if func is None: + raise ValueError("No function or docstring given") + doc = inspect.getdoc(func) or '' + NumpyDocString.__init__(self, doc) + + if not self['Signature'] and func is not None: + func, func_name = self.get_func() + try: + # try to read signature + argspec = inspect.getargspec(func) + argspec = inspect.formatargspec(*argspec) + argspec = argspec.replace('*','\*') + signature = '%s%s' % (func_name, argspec) + except TypeError as e: + signature = '%s()' % func_name + self['Signature'] = signature + + def get_func(self): + func_name = getattr(self._f, '__name__', self.__class__.__name__) + if inspect.isclass(self._f): + func = getattr(self._f, '__call__', self._f.__init__) + else: + func = self._f + return func, func_name + + def __str__(self): + out = '' + + func, func_name = self.get_func() + signature = self['Signature'].replace('*', '\*') + + roles = {'func': 'function', + 'meth': 'method'} + + if self._role: + if not self._role in roles: + print("Warning: invalid role %s" % self._role) + out += '.. %s:: %s\n \n\n' % (roles.get(self._role,''), + func_name) + + out += super(FunctionDoc, self).__str__(func_role=self._role) + return out + + +class ClassDoc(NumpyDocString): + def __init__(self, cls, doc=None, modulename='', func_doc=FunctionDoc, + config={}): + if not inspect.isclass(cls) and cls is not None: + raise ValueError("Expected a class or None, but got %r" % cls) + self._cls = cls + + if modulename and not modulename.endswith('.'): + modulename += '.' + self._mod = modulename + + if doc is None: + if cls is None: + raise ValueError("No class or documentation string given") + doc = pydoc.getdoc(cls) + + NumpyDocString.__init__(self, doc) + + if config.get('show_class_members', True): + if not self['Methods']: + self['Methods'] = [(name, '', '') + for name in sorted(self.methods)] + if not self['Attributes']: + self['Attributes'] = [(name, '', '') + for name in sorted(self.properties)] + + @property + def methods(self): + if self._cls is None: + return [] + return [name for name,func in inspect.getmembers(self._cls) + if not name.startswith('_') and callable(func)] + + @property + def properties(self): + if self._cls is None: + return [] + return [name for name,func in inspect.getmembers(self._cls) + if not name.startswith('_') and func is None] diff --git a/docs/sphinxext/numpy_ext/docscrape_sphinx.py b/docs/sphinxext/numpy_ext/docscrape_sphinx.py new file mode 100644 index 0000000..9f4350d --- /dev/null +++ b/docs/sphinxext/numpy_ext/docscrape_sphinx.py @@ -0,0 +1,226 @@ +import re, inspect, textwrap, pydoc +import sphinx +from docscrape import NumpyDocString, FunctionDoc, ClassDoc + +class SphinxDocString(NumpyDocString): + def __init__(self, docstring, config={}): + self.use_plots = config.get('use_plots', False) + NumpyDocString.__init__(self, docstring, config=config) + + # string conversion routines + def _str_header(self, name, symbol='`'): + return ['.. rubric:: ' + name, ''] + + def _str_field_list(self, name): + return [':' + name + ':'] + + def _str_indent(self, doc, indent=4): + out = [] + for line in doc: + out += [' '*indent + line] + return out + + def _str_signature(self): + return [''] + if self['Signature']: + return ['``%s``' % self['Signature']] + [''] + else: + return [''] + + def _str_summary(self): + return self['Summary'] + [''] + + def _str_extended_summary(self): + return self['Extended Summary'] + [''] + + def _str_param_list(self, name): + out = [] + if self[name]: + out += self._str_field_list(name) + out += [''] + for param,param_type,desc in self[name]: + out += self._str_indent(['**%s** : %s' % (param.strip(), + param_type)]) + out += [''] + out += self._str_indent(desc,8) + out += [''] + return out + + @property + def _obj(self): + if hasattr(self, '_cls'): + return self._cls + elif hasattr(self, '_f'): + return self._f + return None + + def _str_member_list(self, name): + """ + Generate a member listing, autosummary:: table where possible, + and a table where not. + + """ + out = [] + if self[name]: + out += ['.. rubric:: %s' % name, ''] + prefix = getattr(self, '_name', '') + + if prefix: + prefix = '~%s.' % prefix + + autosum = [] + others = [] + for param, param_type, desc in self[name]: + param = param.strip() + if not self._obj or hasattr(self._obj, param): + autosum += [" %s%s" % (prefix, param)] + else: + others.append((param, param_type, desc)) + + if autosum: + out += ['.. autosummary::', ' :toctree:', ''] + out += autosum + + if others: + maxlen_0 = max([len(x[0]) for x in others]) + maxlen_1 = max([len(x[1]) for x in others]) + hdr = "="*maxlen_0 + " " + "="*maxlen_1 + " " + "="*10 + fmt = '%%%ds %%%ds ' % (maxlen_0, maxlen_1) + n_indent = maxlen_0 + maxlen_1 + 4 + out += [hdr] + for param, param_type, desc in others: + out += [fmt % (param.strip(), param_type)] + out += self._str_indent(desc, n_indent) + out += [hdr] + out += [''] + return out + + def _str_section(self, name): + out = [] + if self[name]: + out += self._str_header(name) + out += [''] + content = textwrap.dedent("\n".join(self[name])).split("\n") + out += content + out += [''] + return out + + def _str_see_also(self, func_role): + out = [] + if self['See Also']: + see_also = super(SphinxDocString, self)._str_see_also(func_role) + out = ['.. seealso::', ''] + out += self._str_indent(see_also[2:]) + return out + + def _str_warnings(self): + out = [] + if self['Warnings']: + out = ['.. warning::', ''] + out += self._str_indent(self['Warnings']) + return out + + def _str_index(self): + idx = self['index'] + out = [] + if len(idx) == 0: + return out + + out += ['.. index:: %s' % idx.get('default','')] + for section, references in idx.iteritems(): + if section == 'default': + continue + elif section == 'refguide': + out += [' single: %s' % (', '.join(references))] + else: + out += [' %s: %s' % (section, ','.join(references))] + return out + + def _str_references(self): + out = [] + if self['References']: + out += self._str_header('References') + if isinstance(self['References'], str): + self['References'] = [self['References']] + out.extend(self['References']) + out += [''] + # Latex collects all references to a separate bibliography, + # so we need to insert links to it + if sphinx.__version__ >= "0.6": + out += ['.. only:: latex',''] + else: + out += ['.. latexonly::',''] + items = [] + for line in self['References']: + m = re.match(r'.. \[([a-z0-9._-]+)\]', line, re.I) + if m: + items.append(m.group(1)) + out += [' ' + ", ".join(["[%s]_" % item for item in items]), ''] + return out + + def _str_examples(self): + examples_str = "\n".join(self['Examples']) + + if (self.use_plots and 'import matplotlib' in examples_str + and 'plot::' not in examples_str): + out = [] + out += self._str_header('Examples') + out += ['.. plot::', ''] + out += self._str_indent(self['Examples']) + out += [''] + return out + else: + return self._str_section('Examples') + + def __str__(self, indent=0, func_role="obj"): + out = [] + out += self._str_signature() + out += self._str_index() + [''] + out += self._str_summary() + out += self._str_extended_summary() + for param_list in ('Parameters', 'Returns', 'Raises'): + out += self._str_param_list(param_list) + out += self._str_warnings() + out += self._str_see_also(func_role) + out += self._str_section('Notes') + out += self._str_references() + out += self._str_examples() + for param_list in ('Attributes', 'Methods'): + out += self._str_member_list(param_list) + out = self._str_indent(out,indent) + return '\n'.join(out) + +class SphinxFunctionDoc(SphinxDocString, FunctionDoc): + def __init__(self, obj, doc=None, config={}): + self.use_plots = config.get('use_plots', False) + FunctionDoc.__init__(self, obj, doc=doc, config=config) + +class SphinxClassDoc(SphinxDocString, ClassDoc): + def __init__(self, obj, doc=None, func_doc=None, config={}): + self.use_plots = config.get('use_plots', False) + ClassDoc.__init__(self, obj, doc=doc, func_doc=None, config=config) + +class SphinxObjDoc(SphinxDocString): + def __init__(self, obj, doc=None, config={}): + self._f = obj + SphinxDocString.__init__(self, doc, config=config) + +def get_doc_object(obj, what=None, doc=None, config={}): + if what is None: + if inspect.isclass(obj): + what = 'class' + elif inspect.ismodule(obj): + what = 'module' + elif callable(obj): + what = 'function' + else: + what = 'object' + if what == 'class': + return SphinxClassDoc(obj, func_doc=SphinxFunctionDoc, doc=doc, + config=config) + elif what in ('function', 'method'): + return SphinxFunctionDoc(obj, doc=doc, config=config) + else: + if doc is None: + doc = pydoc.getdoc(obj) + return SphinxObjDoc(obj, doc, config=config) diff --git a/docs/sphinxext/numpy_ext/plot_directive.py b/docs/sphinxext/numpy_ext/plot_directive.py new file mode 100644 index 0000000..418c313 --- /dev/null +++ b/docs/sphinxext/numpy_ext/plot_directive.py @@ -0,0 +1,638 @@ +""" +A special directive for generating a matplotlib plot. + +.. warning:: + + This is a hacked version of plot_directive.py from Matplotlib. + It's very much subject to change! + + +Usage +----- + +Can be used like this:: + + .. plot:: examples/example.py + + .. plot:: + + import matplotlib.pyplot as plt + plt.plot([1,2,3], [4,5,6]) + + .. plot:: + + A plotting example: + + >>> import matplotlib.pyplot as plt + >>> plt.plot([1,2,3], [4,5,6]) + +The content is interpreted as doctest formatted if it has a line starting +with ``>>>``. + +The ``plot`` directive supports the options + + format : {'python', 'doctest'} + Specify the format of the input + + include-source : bool + Whether to display the source code. Default can be changed in conf.py + +and the ``image`` directive options ``alt``, ``height``, ``width``, +``scale``, ``align``, ``class``. + +Configuration options +--------------------- + +The plot directive has the following configuration options: + + plot_include_source + Default value for the include-source option + + plot_pre_code + Code that should be executed before each plot. + + plot_basedir + Base directory, to which plot:: file names are relative to. + (If None or empty, file names are relative to the directoly where + the file containing the directive is.) + + plot_formats + File formats to generate. List of tuples or strings:: + + [(suffix, dpi), suffix, ...] + + that determine the file format and the DPI. For entries whose + DPI was omitted, sensible defaults are chosen. + + plot_html_show_formats + Whether to show links to the files in HTML. + +TODO +---- + +* Refactor Latex output; now it's plain images, but it would be nice + to make them appear side-by-side, or in floats. + +""" + +import sys, os, shutil, re, textwrap, traceback + +try: + import cStringIO +except ImportError: + from io import StringIO as cStringIO + +import warnings +warnings.warn("A plot_directive module is also available under " + "matplotlib.sphinxext; expect this numpydoc.plot_directive " + "module to be deprecated after relevant features have been " + "integrated there.", + FutureWarning, stacklevel=2) + + +#------------------------------------------------------------------------------ +# Registration hook +#------------------------------------------------------------------------------ + +def setup(app): + setup.app = app + setup.config = app.config + setup.confdir = app.confdir + + app.add_config_value('plot_pre_code', '', True) + app.add_config_value('plot_include_source', False, True) + app.add_config_value('plot_formats', ['png', 'hires.png', 'pdf'], True) + app.add_config_value('plot_basedir', None, True) + app.add_config_value('plot_html_show_formats', True, True) + + app.add_directive('plot', plot_directive, True, (0, 1, False), + **plot_directive_options) + +#------------------------------------------------------------------------------ +# plot:: directive +#------------------------------------------------------------------------------ +from docutils.parsers.rst import directives +from docutils import nodes + +def plot_directive(name, arguments, options, content, lineno, + content_offset, block_text, state, state_machine): + return run(arguments, content, options, state_machine, state, lineno) +plot_directive.__doc__ = __doc__ + +def _option_boolean(arg): + if not arg or not arg.strip(): + # no argument given, assume used as a flag + return True + elif arg.strip().lower() in ('no', '0', 'false'): + return False + elif arg.strip().lower() in ('yes', '1', 'true'): + return True + else: + raise ValueError('"%s" unknown boolean' % arg) + +def _option_format(arg): + return directives.choice(arg, ('python', 'lisp')) + +def _option_align(arg): + return directives.choice(arg, ("top", "middle", "bottom", "left", "center", + "right")) + +plot_directive_options = {'alt': directives.unchanged, + 'height': directives.length_or_unitless, + 'width': directives.length_or_percentage_or_unitless, + 'scale': directives.nonnegative_int, + 'align': _option_align, + 'class': directives.class_option, + 'include-source': _option_boolean, + 'format': _option_format, + } + +#------------------------------------------------------------------------------ +# Generating output +#------------------------------------------------------------------------------ + +from docutils import nodes, utils + +try: + # Sphinx depends on either Jinja or Jinja2 + import jinja2 + def format_template(template, **kw): + return jinja2.Template(template).render(**kw) +except ImportError: + import jinja + def format_template(template, **kw): + return jinja.from_string(template, **kw) + +TEMPLATE = """ +{{ source_code }} + +{{ only_html }} + + {% if source_link or (html_show_formats and not multi_image) %} + ( + {%- if source_link -%} + `Source code <{{ source_link }}>`__ + {%- endif -%} + {%- if html_show_formats and not multi_image -%} + {%- for img in images -%} + {%- for fmt in img.formats -%} + {%- if source_link or not loop.first -%}, {% endif -%} + `{{ fmt }} <{{ dest_dir }}/{{ img.basename }}.{{ fmt }}>`__ + {%- endfor -%} + {%- endfor -%} + {%- endif -%} + ) + {% endif %} + + {% for img in images %} + .. figure:: {{ build_dir }}/{{ img.basename }}.png + {%- for option in options %} + {{ option }} + {% endfor %} + + {% if html_show_formats and multi_image -%} + ( + {%- for fmt in img.formats -%} + {%- if not loop.first -%}, {% endif -%} + `{{ fmt }} <{{ dest_dir }}/{{ img.basename }}.{{ fmt }}>`__ + {%- endfor -%} + ) + {%- endif -%} + {% endfor %} + +{{ only_latex }} + + {% for img in images %} + .. image:: {{ build_dir }}/{{ img.basename }}.pdf + {% endfor %} + +""" + +class ImageFile(object): + def __init__(self, basename, dirname): + self.basename = basename + self.dirname = dirname + self.formats = [] + + def filename(self, format): + return os.path.join(self.dirname, "%s.%s" % (self.basename, format)) + + def filenames(self): + return [self.filename(fmt) for fmt in self.formats] + +def run(arguments, content, options, state_machine, state, lineno): + if arguments and content: + raise RuntimeError("plot:: directive can't have both args and content") + + document = state_machine.document + config = document.settings.env.config + + options.setdefault('include-source', config.plot_include_source) + + # determine input + rst_file = document.attributes['source'] + rst_dir = os.path.dirname(rst_file) + + if arguments: + if not config.plot_basedir: + source_file_name = os.path.join(rst_dir, + directives.uri(arguments[0])) + else: + source_file_name = os.path.join(setup.confdir, config.plot_basedir, + directives.uri(arguments[0])) + code = open(source_file_name, 'r').read() + output_base = os.path.basename(source_file_name) + else: + source_file_name = rst_file + code = textwrap.dedent("\n".join(map(str, content))) + counter = document.attributes.get('_plot_counter', 0) + 1 + document.attributes['_plot_counter'] = counter + base, ext = os.path.splitext(os.path.basename(source_file_name)) + output_base = '%s-%d.py' % (base, counter) + + base, source_ext = os.path.splitext(output_base) + if source_ext in ('.py', '.rst', '.txt'): + output_base = base + else: + source_ext = '' + + # ensure that LaTeX includegraphics doesn't choke in foo.bar.pdf filenames + output_base = output_base.replace('.', '-') + + # is it in doctest format? + is_doctest = contains_doctest(code) + if options.has_key('format'): + if options['format'] == 'python': + is_doctest = False + else: + is_doctest = True + + # determine output directory name fragment + source_rel_name = relpath(source_file_name, setup.confdir) + source_rel_dir = os.path.dirname(source_rel_name) + while source_rel_dir.startswith(os.path.sep): + source_rel_dir = source_rel_dir[1:] + + # build_dir: where to place output files (temporarily) + build_dir = os.path.join(os.path.dirname(setup.app.doctreedir), + 'plot_directive', + source_rel_dir) + if not os.path.exists(build_dir): + os.makedirs(build_dir) + + # output_dir: final location in the builder's directory + dest_dir = os.path.abspath(os.path.join(setup.app.builder.outdir, + source_rel_dir)) + + # how to link to files from the RST file + dest_dir_link = os.path.join(relpath(setup.confdir, rst_dir), + source_rel_dir).replace(os.path.sep, '/') + build_dir_link = relpath(build_dir, rst_dir).replace(os.path.sep, '/') + source_link = dest_dir_link + '/' + output_base + source_ext + + # make figures + try: + results = makefig(code, source_file_name, build_dir, output_base, + config) + errors = [] + except PlotError as err: + reporter = state.memo.reporter + sm = reporter.system_message( + 2, "Exception occurred in plotting %s: %s" % (output_base, err), + line=lineno) + results = [(code, [])] + errors = [sm] + + # generate output restructuredtext + total_lines = [] + for j, (code_piece, images) in enumerate(results): + if options['include-source']: + if is_doctest: + lines = [''] + lines += [row.rstrip() for row in code_piece.split('\n')] + else: + lines = ['.. code-block:: python', ''] + lines += [' %s' % row.rstrip() + for row in code_piece.split('\n')] + source_code = "\n".join(lines) + else: + source_code = "" + + opts = [':%s: %s' % (key, val) for key, val in options.items() + if key in ('alt', 'height', 'width', 'scale', 'align', 'class')] + + only_html = ".. only:: html" + only_latex = ".. only:: latex" + + if j == 0: + src_link = source_link + else: + src_link = None + + result = format_template( + TEMPLATE, + dest_dir=dest_dir_link, + build_dir=build_dir_link, + source_link=src_link, + multi_image=len(images) > 1, + only_html=only_html, + only_latex=only_latex, + options=opts, + images=images, + source_code=source_code, + html_show_formats=config.plot_html_show_formats) + + total_lines.extend(result.split("\n")) + total_lines.extend("\n") + + if total_lines: + state_machine.insert_input(total_lines, source=source_file_name) + + # copy image files to builder's output directory + if not os.path.exists(dest_dir): + os.makedirs(dest_dir) + + for code_piece, images in results: + for img in images: + for fn in img.filenames(): + shutil.copyfile(fn, os.path.join(dest_dir, + os.path.basename(fn))) + + # copy script (if necessary) + if source_file_name == rst_file: + target_name = os.path.join(dest_dir, output_base + source_ext) + f = open(target_name, 'w') + f.write(unescape_doctest(code)) + f.close() + + return errors + + +#------------------------------------------------------------------------------ +# Run code and capture figures +#------------------------------------------------------------------------------ + +import matplotlib +matplotlib.use('Agg') +import matplotlib.pyplot as plt +import matplotlib.image as image +from matplotlib import _pylab_helpers + +def contains_doctest(text): + try: + # check if it's valid Python as-is + compile(text, '', 'exec') + return False + except SyntaxError: + pass + r = re.compile(r'^\s*>>>', re.M) + m = r.search(text) + return bool(m) + +def unescape_doctest(text): + """ + Extract code from a piece of text, which contains either Python code + or doctests. + + """ + if not contains_doctest(text): + return text + + code = "" + for line in text.split("\n"): + m = re.match(r'^\s*(>>>|\.\.\.) (.*)$', line) + if m: + code += m.group(2) + "\n" + elif line.strip(): + code += "# " + line.strip() + "\n" + else: + code += "\n" + return code + +def split_code_at_show(text): + """ + Split code at plt.show() + + """ + + parts = [] + is_doctest = contains_doctest(text) + + part = [] + for line in text.split("\n"): + if (not is_doctest and line.strip() == 'plt.show()') or \ + (is_doctest and line.strip() == '>>> plt.show()'): + part.append(line) + parts.append("\n".join(part)) + part = [] + else: + part.append(line) + if "\n".join(part).strip(): + parts.append("\n".join(part)) + return parts + +class PlotError(RuntimeError): + pass + +def run_code(code, code_path, ns=None): + # Change the working directory to the directory of the example, so + # it can get at its data files, if any. + pwd = os.getcwd() + old_sys_path = list(sys.path) + if code_path is not None: + dirname = os.path.abspath(os.path.dirname(code_path)) + os.chdir(dirname) + sys.path.insert(0, dirname) + + # Redirect stdout + stdout = sys.stdout + sys.stdout = cStringIO.StringIO() + + # Reset sys.argv + old_sys_argv = sys.argv + sys.argv = [code_path] + + try: + try: + code = unescape_doctest(code) + if ns is None: + ns = {} + if not ns: + exec(setup.config.plot_pre_code in ns) + exec(code in ns) + except (Exception, SystemExit) as err: + raise PlotError(traceback.format_exc()) + finally: + os.chdir(pwd) + sys.argv = old_sys_argv + sys.path[:] = old_sys_path + sys.stdout = stdout + return ns + + +#------------------------------------------------------------------------------ +# Generating figures +#------------------------------------------------------------------------------ + +def out_of_date(original, derived): + """ + Returns True if derivative is out-of-date wrt original, + both of which are full file paths. + """ + return (not os.path.exists(derived) + or os.stat(derived).st_mtime < os.stat(original).st_mtime) + + +def makefig(code, code_path, output_dir, output_base, config): + """ + Run a pyplot script *code* and save the images under *output_dir* + with file names derived from *output_base* + + """ + + # -- Parse format list + default_dpi = {'png': 80, 'hires.png': 200, 'pdf': 50} + formats = [] + for fmt in config.plot_formats: + if isinstance(fmt, str): + formats.append((fmt, default_dpi.get(fmt, 80))) + elif type(fmt) in (tuple, list) and len(fmt)==2: + formats.append((str(fmt[0]), int(fmt[1]))) + else: + raise PlotError('invalid image format "%r" in plot_formats' % fmt) + + # -- Try to determine if all images already exist + + code_pieces = split_code_at_show(code) + + # Look for single-figure output files first + all_exists = True + img = ImageFile(output_base, output_dir) + for format, dpi in formats: + if out_of_date(code_path, img.filename(format)): + all_exists = False + break + img.formats.append(format) + + if all_exists: + return [(code, [img])] + + # Then look for multi-figure output files + results = [] + all_exists = True + for i, code_piece in enumerate(code_pieces): + images = [] + for j in range(1000): + img = ImageFile('%s_%02d_%02d' % (output_base, i, j), output_dir) + for format, dpi in formats: + if out_of_date(code_path, img.filename(format)): + all_exists = False + break + img.formats.append(format) + + # assume that if we have one, we have them all + if not all_exists: + all_exists = (j > 0) + break + images.append(img) + if not all_exists: + break + results.append((code_piece, images)) + + if all_exists: + return results + + # -- We didn't find the files, so build them + + results = [] + ns = {} + + for i, code_piece in enumerate(code_pieces): + # Clear between runs + plt.close('all') + + # Run code + run_code(code_piece, code_path, ns) + + # Collect images + images = [] + fig_managers = _pylab_helpers.Gcf.get_all_fig_managers() + for j, figman in enumerate(fig_managers): + if len(fig_managers) == 1 and len(code_pieces) == 1: + img = ImageFile(output_base, output_dir) + else: + img = ImageFile("%s_%02d_%02d" % (output_base, i, j), + output_dir) + images.append(img) + for format, dpi in formats: + try: + figman.canvas.figure.savefig(img.filename(format), dpi=dpi) + except BaseException as err: + raise PlotError(traceback.format_exc()) + img.formats.append(format) + + # Results + results.append((code_piece, images)) + + return results + + +#------------------------------------------------------------------------------ +# Relative pathnames +#------------------------------------------------------------------------------ + +try: + from os.path import relpath +except ImportError: + # Copied from Python 2.7 + if 'posix' in sys.builtin_module_names: + def relpath(path, start=os.path.curdir): + """Return a relative version of a path""" + from os.path import sep, curdir, join, abspath, commonprefix, \ + pardir + + if not path: + raise ValueError("no path specified") + + start_list = abspath(start).split(sep) + path_list = abspath(path).split(sep) + + # Work out how much of the filepath is shared by start and path. + i = len(commonprefix([start_list, path_list])) + + rel_list = [pardir] * (len(start_list)-i) + path_list[i:] + if not rel_list: + return curdir + return join(*rel_list) + elif 'nt' in sys.builtin_module_names: + def relpath(path, start=os.path.curdir): + """Return a relative version of a path""" + from os.path import sep, curdir, join, abspath, commonprefix, \ + pardir, splitunc + + if not path: + raise ValueError("no path specified") + start_list = abspath(start).split(sep) + path_list = abspath(path).split(sep) + if start_list[0].lower() != path_list[0].lower(): + unc_path, rest = splitunc(path) + unc_start, rest = splitunc(start) + if bool(unc_path) ^ bool(unc_start): + raise ValueError("Cannot mix UNC and non-UNC paths (%s and %s)" + % (path, start)) + else: + raise ValueError("path is on drive %s, start on drive %s" + % (path_list[0], start_list[0])) + # Work out how much of the filepath is shared by start and path. + for i in range(min(len(start_list), len(path_list))): + if start_list[i].lower() != path_list[i].lower(): + break + else: + i += 1 + + rel_list = [pardir] * (len(start_list)-i) + path_list[i:] + if not rel_list: + return curdir + return join(*rel_list) + else: + raise RuntimeError("Unsupported platform (no relpath available!)") diff --git a/docs/themes/statsmodels/indexsidebar.html b/docs/themes/statsmodels/indexsidebar.html new file mode 100644 index 0000000..e77f362 --- /dev/null +++ b/docs/themes/statsmodels/indexsidebar.html @@ -0,0 +1,31 @@ +

    Download

    + +{% if 'dev' in version %} + +

    This documentation is for version {{ version }}, which is not +released yet. Grab the source code from Github to install this version. You can go to the documentation for the last release here.

    + +{% else %} + +

    This documentation is for the {{ release }} release. You can install it with pip: + +

    pip install --upgrade --no-deps statsmodels
    + + or conda: + +
    conda install statsmodels
    +Documentation for the current development version is here.

    + +{% endif %} + +

    Participate

    +
    Join the Google Group:
    +
    +
    + +
    +

    + Grab the source from Github. + Report bugs to the Issue Tracker. + Have a look at our Developer and Get Involved Pages. +

    diff --git a/docs/themes/statsmodels/layout.html b/docs/themes/statsmodels/layout.html new file mode 100644 index 0000000..90069d3 --- /dev/null +++ b/docs/themes/statsmodels/layout.html @@ -0,0 +1,71 @@ +{# + statsmodels/layout.hml + + :copyright: Skipper Seabold + :license: BSD + #} +{% extends "basic/layout.html" %} +{% block extrahead %} + + + + +{% endblock %} +{% set reldelim1 = ' |' %} + +{% block sidebarlogo %}{% endblock %} {# override to not display, we keep the "logo" at the very top #} + +{% if pagename == 'index' %} + {% set title = 'StatsModels: Statistics in Python' %} +{% endif %} + + +{% block rootrellink %} +

    F$?ixgIlw0uz)+%F19oi^iwTIeI18T*P)RxS|Uf zwxzFRTu9G2+I^;SR& zkd$P-n0!oib4XH9*fK$ctukqQTaF~FpDqs-6XVhi%*OM(ceuGV86$mCy1ys#nUPbJ zv}T-7dVY#=Sk4CrDFHGvh~1!9`D)x}8?6=7;@a}J!MR7*@ABAiJb9;hraVk61krHE z2ga^iW~i?fg77Yj7wSKuQm&@FGX|dCF+L^M<;VNaXN)h^)6R4!KSY-UX^Pp9&MF!9 z_9l=?md#njk-w6W@w?8UjhlpR!1-JiEjypnC+S(m5E>BVDlT+U{_7a>01^aC%?Y{^ zRT?!gJWI8#)`c$Z%`CylZ;AP8xe!7xU%VotRQze{zA~ zxVTayVPXC^a=9&`d49p}2gLuHXzMf`LkeZE_J7JwPlHvnPWOZW=*162GVbnDRdK{QIXtL*a4k3qO~9wH1zHL! zy;-+C>{d^r<-&9#pmNpcGa6|{K$z?l=5@pup#~Qz7NQnL`PmvE-cB=?IBvTy!K=g& z8d41zi{0&tiiY(qDoaspY*0`V>t5Z0J8o&B1*TBp>5f4D!aUOjnUZsY;6`)futX9? zkPR8~#GE2Vin!6b=ZUZ=xp=|Mti5@a`UeUd)K`7l#;8KqKk!bwCcMvKC$ImRZWkd9 zJ>Cz9>Bx)mj-H-6t|?lW!zky<@Id8bdjE5x#NHlgC+d#&a0sMsZ&hEu6d#|pWwNsR zyD5PhK@-|8^m8)F=Sng7E1(qz!+%bs=QG*tujMQ?DhyuL7?=3@ncEvf_1Jz;%~q&; z9uwQ!tmiH@t9F{m$%(y~ZRfvS^~B|CGktlv8G(L(cE(6XmOP<_aapV~Z_P+RAO$m+ub$}%!Ixs9h({Yg*<7)~TU?Bc0hy|% z_w|hfQFx|goJ9`$Ufw42Z>VZEjF_^7VQ@|z1GN+5 zm|9u`1-8j=trOpfPG(eS1GE#dsmCRf7SsO24UkXZ7N7t1y2btR!<+!m_j-5w$GV%?_2uW{Rrh;H(`Unva7`CY7IGn3}3TEf(oICEY{{7v8C;DF-dW<-A` z5erC_&*KzuE9D+^_TYs;GCb0hYZZt_GsAKOzs!nP3}o{IL$Y_YBR;_ole>;9(yODs zX6M25x{ZhMLwgYasX+9H25_j88^b>fTE1jMKfXXvJYV>!fEfV{T(B$FjP!y;m0#nS z4VET9aHn!7@?`Qot7%Z`f6}YW*;KP24Y9lfF_L$73RuBOo@)TY20GU@2EE$oXdH*7 z6EC(8U)l-OnCNH`u_!*VUfFf%>mOz&JY_$8%+<4B49T~9Bsg(^+;{lj#FEN24 zPP4+RN$Y9S`d534M#Z*tTyKkOWCDZ0&7tl$FE6ZGO`u&?3X70Bcn^RKoCi zS%EwF(^+LDhrdAF6#wp-vs#GREHl*;vP-Uz&7;s!9~m4Rk(ZpLn8xzSyJX zNt&5bs@dA2{-0<$f?!w`9M&wmOBh1I*<3r!ohPJ6RX{8i&8aIcgBYlLifH{F8|~fs z5JzHhe-$F9u}MtiTGUeq^Dr;`X4*DrrL7xE7~j`0a)ToF5vXkPi23@4Mu2@h5>v#N zaBS7-gqa3x#;K7DI^XOf3T4=)1*Lihq!tQ5coYuNkgqCnS&#ERE-v27*yv9TD(w@G z7ETk*-xDDP76WF38#@XhccFx}oH}H5Z)XJH>~i{*MmaTb_`>ECnB>d^K3Dydh1T=& z&Hhzs##NO37?^N0GGN$P`#B~O`a8AcZs`TW{^avBI-|~QLxU3Wl-zi&DzChq-@#4m zX)t_X94=*~#;FGvchdRac};m&Ymmje(1Irs5v^y#oWY>-zBrm=(!$qQG1DA!Wr8IP z#ugnL)^~UP*D#7R!%smK8DuXQ*BfN!?wS<$&@rQbo4~M<67qy4vwzVz2$$)R&gjEELBiP0==Al&bIb7^3Jp2*%%4-XQi|*}bfZ*^EDJv%zIb#d|%*pmzPcF(2@PCi5mV%a; zO6Rb_K=%@Zv|D~jU-f8-HF;YI>JrLxsmdK6KRmXB6PL2s_oZ(VXLD0lN$MRO7~McY zu{VzeunP?Jih*w+T0r4j8SJ@}+uhWH#f3?jmlp+{m5`&35s!XjfwQQnmK={VVKC0* z;5c|xG5*i*|BQ?G>Yy>CwKr)A$G{=SNR|KVDGe8tO0Wh0-Wf?Ij+B_Q_jO8$@Wn8V z*|&C||Gs8hn2vasTCw~TP%PQd?A_5a=+cjZ)XErp z01hbVc`_+;c(=F15+Q-qq51-^QVRndytn6z@%+y4Z2Is@nXq)^gjiOL3xK>>6lt+N zoW0U(O6#;pb7A&8P9#$MV(~}Oer@!Ng`T`AbtX5Jowg$ufTXgsf$R0QUT5+2%pL}( z(@uPkxv1i~TskYiSb0HGNDx!5>FxK0ii-PomTT)cezOnA6p=7P_2N!ogQp_i!HW%b zj^rPue9mao*vtgMP|1gXfxSouqanx{0tENhpdL^?%D`KcZ$7m+GtUGYNa_-|(R z(1M1v#r5cDvIuoNd(%0$8-h7P0ud2`x&yo)OgW;)c-dQ_aTlxVN;Nj|{@o+5>laZm zJ3F94i6L_SN0G@}tm=yVzax1h&i^1PwY6<+N_q%t#r8H z;82DGuGjX#@$nga33c(k&rcD9aZ&Rk%t#Tz@3M1L-@gkC%oh5*l^XV61gH(3=Vb4& zY;y}vghsg*K@R6cbb9(R;c{ceLcyLS(vVdiDkDAvfukenyu7`EAkEnCV-((G4JAm< z(#t&IwLmS?cnuFPYbTP9AS6`l&XV>VpC4*ssQdO_!KO{uj2m&eY981mcuTnQiw zDfUqYAm@0sO%BVbU1#oR6BwSb)R;VQ;$z(i-qm1@=Y8-nP zv@vGW^sB31xI}P9FjA*Cn*B(go~Bq|^;D3P?j@)i6e zJ>V1mzW z8_;J&b65uO?8QHom7hOTL5pZb%rxj5)}QP=6ppde@ZS^%AUCcveYpkkJbX7_y)(W9 z2fEzx9Phnq5~cS@!fYgwu|;FuN9&YwodY{U?H$Op*>mmKA27>7V;#)$HQy`3% z!CG42YizJgMP17iiW(i|x<|kdlZb%oeHLh(!6+n#pzXwiXVsae5N>NQZpCIYjhZ#~ zett-DfCDP>4AHKcI^O^F0tY8U=(DkSa4aeWWRcwt$7V(Wv0Scj8bzoikU8rRClqY# z>pHsHu&HPfa+8A85t7!wi+F|7V6Fr3sWd|YO5EFr(bxH}UBVH{3>vp0zbbO%_d1Mm z$=q=H%H*KIa_Z8|dJ`tAJXodwpukBf5bD&KWbH-|-YLIE)#^F4*;k|{A#H35E=)&e zv695dw`z2ox){df-{X$1R?tCjew zXA+)98HX?L)D(~=ulW<5o)Ytp!kV(kS{6zH@*w+B8C_R^Uh!Rr4|mirfR`+AaD7zu zKRerI{A;M_=C=QDY@JfG0u1D(8UsCOQqs*n0~NU}{5+#fZ11YP(n(nP|%VY;7hfDt_JX5X@7G_}z&`29~i2U_=MmB>O#Q^J> z63uRX%a}TRoXta)77|OoDnP{q1zT$X)I6~9J~3rNq_12PN#E2A2cOn~VYYm;X`RCn zGBte)`r874ke^%H7;akqc;0Q`xIL@ouIk3z}M4*ZJ+CS zJ))}WTbS+z3OarpJW%=CFVjz2XKY@Eby8Er$HrgkV=)-~))qm-rS^=W z_}^hm7%zBtOC_@QVPv!K0gnaxzG4yA&H@G26qG2VuSWq@U(ep2!w2lFXq^wVlJxdy5PeTmTxZ^04z8}Xkdb5KOz zJkcvc7zIcvo|=NnEB*DF<&kzjVSc_}f3BaWu8{>N;0-*dD?K3_*FWo@Bu-syO@ra) zqZvI~s*ANKdH=ymtPoFhv|cdRP2r2<3ZN0?bB#)}3gur?QZn`P@i|Jq3)<7#1H%ny zuGu$#>wM&g5OPC@YwLP`eOYKty=PA4{Mg4TtEEuf9`NOC%}VEInU3xkc>>mSC~ zNEn9_i;{9mz1nyv%PCV`Ld`>5{A7&JzFG_J@-Il3xVg`=Q}knE42p{@=wKt7uL0wy zR+>!!w}lPj)FUuu<;BM`(xaTZ z!K6t7&X#?GIXP^yic_ZO*WOYL4h0422@Au~qdab# z6~N%2C`_0@9$)bBfwwo?jp)Duy!oayL!-ylRc>i>bCaEoAww)Z2fAKbR{|wEp`em8>Oh$$|t?%-3FJ-4*J;BjO*(X?|1~M}VkL6pG;??B{ub6xZ zBS(((_4Nhd>gpO25~BO=bv~}j@OMm%=KJpv8d_e)!~XZpo9df4(YUdcZC<#bPDr3V zCM-;S=n$SiCu%1?9)0={_d8$!1`k#b9B9_h@YXF&_3F@Q$j_})NAvmT_~8e&t*!Af z4<8~eP2Ik|oMZ0P30ke@@L|~532Y}b6BjP10|Vv#Y&&(rwQHK&x4DmxjD$+12IL)& z#s5BjTwSM5IU0}hH~Zfdr7kGI%a@wyXwKt7DTqd`R>#K1nr@fx<2`=-xJ)hcAUBs9 zIg$zwm#KN_=h(9+wQrxqZ5}*Gg@w`XIdq6>-=6JM{RzJPHnn#zai>k2QgLy_M@z(> zJ=EK8^E%`B@#AgUPzMgs>{`2)djEZC#>Iw*2X*(Z@Y7vfsO)T({gPdxHa1jV9`|8! zaa2f%G(D1GnfuKA`PBURX6vn7+)L%e924~LpzhouInW9UBG|oqw~vocbaZsDUcGwu z>}l!Ym=}!(n>IaS`jOx>&0}>MO^eIs@{Bk%fqWzVg&SRNx34;dV_upx@ z%N|eB(Y$$?Je>ftvdk31ApAnjTe;0*yyB%|DlL-zYj zQWB!0jW<4dVzxpmC@1$)IWflsd-sN|EzS1*`;C;!lpGEPp?G@Y#S6135KDlsuW`*e z@i2QhP_j6dvx1mbYb3|Vg+;`$yLJ_DlD9V+HpH=G(0BhGI)t`u%h&o33qxo@hJ+v_ zME=p3krO8n7l+oZ4L0uFDOX`<1({&dJ~p|pDISgriN?@RWijmS zHhcHR@2;jwr*XPav(uL$jigEYaDIx7U7sQ2^Gf=JYWF! z?JJ9_6c!>PqLLUKk`WmAioVk;VxyHC6N97j7W*g%ROVVL3S^8Lh33s^r8>$ub_`#9 zfyhX6jmhkE=>i`gtXc(ESN!u2KKX=0p`=_;SO|)uk4!5_MRGFw_QmDPmL7+K3~05m zw?}rizVlY`a40Cq2ubDG3LrBoj=g)~jtWVok2|8W%&}`%Xf(#lG<1|sumTty*RNyiR=y{dPOw@veE&Uu z`wijYShEIw`ba!FMt1MU!i56QCD1iD_a%DqqM56c%RWIjH}vms5KemjT+~Wt{#1_p z3=3wO;J$sx$S~MqV}r3{jgC?b4h01nad$^xAkET0eJXf_KuyG6Fqu_F=_v1JQ_ zgC!Xg0b(ZZ!jan%pMNQU!^i*rU@zrhk}AJzP=Kxn?HNT`B<{EgIbNFM;Q;` zZE%=h_)Cz%VR_u#;O8gs+!ZVE@yC*mh8e;yv>c|DNRHy+sG!uZkDE8k5`Isg#=Lo^ zM=1tJg{0EQ9U;>kYuCoZhxCg^1fbQjOPiMx7Dlr;RyV_ zpj7&}BjlUoxpN2zkftendqhN#92gJ)dwb&$r*49W4)L#>TA^yGRAMBXV0ryQ&G8K~ zl~XYn%2g^o6ou$$v}t3yM=>}QUNKxY?CRm;+YunBsS>oaZ5zJ-p8W7hlW^t?A|s3c zefd(|zCG;iB^Zdj2vz+m7gwn;u~7m6S(tf(W|tX7Ir#=2R%F;Vf91q%=#FZ5)dR8W~w9l{F6nqSj1B?X0rYzI7h zR{3Q{6)HMh0_TdsQ6Z`HaYx8H$NKf9F*wNHgY|jm9r*j>+iyWp*t=KLy}Qt^6B2Oi zme7;=keiDaFL)}U7E>;+((2Xm_%ZLZUc7*Z2j@{zPEf7Jg9mH}SVGslTzrEvQ|aeu i)(Hj$Auf((|NjAa)DR@MuBJc$0000(Q@!^clrCMUCRr*?X@&*PL^$BJh)}7!o`-JOlzkk`NbGfIwc3Kp-zVUcUsdNOYS0 z1}7*7K?$YTuV2rv$o&Ps!r6+eJ3t`FUC%!+VyTfoKp+GV3E_`QE-Cwq&T5L&A7GE! zE$zO({6-=43yun&ilXy{8m-D+S}BL^1n;h;y!T<2GBrg#da1iYWac-`k8f-V37B5J zGVF!-UB41D#a8L){p`Vy5-!JawZ6d4ezLid;&7yA%YkF=*3r??=yae_#z5ys8T%RB z4L0w4GgxqjgyO$N2B$aNBsj4%o<|+Y6LLGQoNY^|@3hVq{xn?~=)_Wcq{r3s{XJa3OFX=EpTuYjC5LaZ-*ST|1hN8ZXf{ z5Wp=Jct_aA#3#h&EotQ@HtSo8+UK(gz6~Q%iOfoQ=`Hb*@l4zNK88=|Axn^}$TX(- z=wWlmKH1JHxsHfPg!6__G%pJY58RZOV8=;%NOKBOUAP_oaN9ZgRr^DNs-_r+@f=SLH7+U??w$NVWxc#DXi%@i<=V zN_}M~_2lMamC-7ZUz?QdDR*$Yq^=@5!h%UwtoBj1HA4BE=rJ{=ga(!O=Gv_>5f|07 zUpm#)T(j)4*ZSe=mCo*X`_KHik9AI5LFj%4;L6yf(%7`$yXgY^#1D%`SFFrEOfHbW zRUr{k8KP76_b&${SFvuBk`pH<#F9}H7cXki78BI@YLBTjc*yx_$G5i4%GoSS9<1~P zfKft|3kM$Lf~!stZ?9YrYa9`)LpKOl-#2pC89wInJA3fw*C?D7r70+NP_6u2&iVbs zbnFjXff~NHq~^#(mUUf1k4|oDTO)7HS>lkcmwMM_l6!#AXgO6;g{1>RUf|)I?;8KS z*wEwFK~=|U7QVZNRkNqZ<1hIG%^LLk7$TLE&Y1v0zm^R{!$1nAjWw+3ufp%rZ$#>3 zZlsj@&FIPtXv!&y{=R@fc9{_iV^E_X)!VG@QabMMR|RSHW?@j#W8ZlX^=+40QBV^{ zC!`u@<x2KnJVP_Zg?Fuf2g4VP1{JyNUM zspBWsHBzb?EDEdgZMzon!V#uuAFWQ?cOEP%C6~peq3Dg5yJ|8KnQ{`FVF&X7CJ-6fRsl~{akuV2RE zb&qk47E^=6e}*?O$Vj?q)!7UpLgnQYL+#M4JRhuIo4OXHN(c(#cuRP6^kiQ0Li6N` z9*np77w6>oa;J58FHrGDDdU>F=xG~U`(<3^yst4mEI2*Z|99QYS!ZK~__o;-v)%K4 z)9U&d)zc-J>Y*9VMO*nnzE?hO$Y46W z9@$ZFd7jQk#iWAU>5}8^5ZFuR9XCtFG&CeNH2TfTJNKp!-_C`3|0FGJL)- zCzquW<0i-sQXYp|?$^Cf`#apNb-I0h{fGRYxRR3)*rHF_G2W~asT_i*2$iMcKj*SKt?W!v4OxkgHpIq;;ms@LjdYs(z>Mrj! zUzV2cfB)vu5dIzST0?X8j7|C0wU{!pnZ71s%RBXkP0QiQb&!7;od@}i)tX>p(q(uE zV(hW(i;O7%#C0}Dl)Sv1#)C2WGLFcuH@=z$g@wE(Qwq~9$y!&|Nz4|7d3m)XPAYWE z6FSA&d3l#XMs%3;sqeIIZbREt%VtV)Co@}AdSd^uYd1O7a%JY_dyjsaUZ*bF%MfWp0kERI`{y^R}t&iPqY6zXxUN`@Tl4WobddL|u4y zJJh#TcJ?a7@YjS{y3<3NZFYpHKg4_!l2P6r$6(jczfi{Y4~~~D(`uDaRMc#08S39i zcDX1mJ@|%qZHEsFeWR{9fATyBXv#c9{MNWOaW~(FTRbHu%@VbmE-TFsG@h#K!$MWP z+qAHElgxGsSLZ1q0T>uI)N2m*9c7CjbYAh_-mUF|;w3Ixy6ee{3}6jDG1nKmyG;?7fMR zncjShCcS}yB8WCb(b(YS#6+ZKw*wl~AI%;#)WlN4sHpVha!IrVQU4yCuP?{rRitWL z`b~xrwXv~@3F@f-cHP4Otlb}Ik0s%^;q~Dks5w8%4oBRn=}Zgw(n1NWefP}{x%hzL zbTno05UXu&#hNf6sK`val((>8BO*=4h}F=rtWjgGoozg8Sy2*^pO+VTOR8SJAJ|G~ z7ne;?{;ABjJp#@(EvKMBsmx=tpEfKEO~;SV{cLmcB-(p+K6Gxsvb@On;tSH)xMFnF zYV5mY#$fp9Xf$S~)@``^#v=KnZR1 zA@}dl)b^&*D!1g3JU$PX`KEYIR1vYZy&3s%@8~E6X0ob?r@fDwn&e!!+U04+ z3*_c?(<|llyrGTJpLjJbJFEwRx#@cZ+Nd;UA1<4;Xd^_2lOrOv@_wH0Zl3_k0u+OTXe1 z6=_*n?!r}GvE{g5qkPF{qcm%0I$7kX;*=+8p-dDM>PgRn_x8*#dVE*y-POm6CQ8(b z)vOzKiE3we?65*9*wRyPLpzSGLn*-4eP|)8JHZ~?2dI`@77e2l9Dz@;p33o z?U9p{Hy%2^-{6RBYptyyw$2@>-6*}KLHRmgq?VEmL;R9A}ri$$b`_@kw$-Q z#8l@omBRQD<^J^40UXxL4RfW%fq$I_259JYct+dOW4j^A2$*5<$-m@Ju3ua0DqZy! z?Q*Enl<#tc;4)i*n~90Z8SaBCbJxE9P*Gd?40@w$5R2lcw_!zmHd^T6LUL%#D00)y z%{C`+_|6X%@}@kieAa`wUISdU@v%`#QE5pB8!GX60nf=#bh_bsp~2jOxjBp*8WQ-i zL;iOyEo{qE1Iy=($J1Emtzpe>>g5La2bz4+pdd-`kY&a^nyHaBRTP2^zqV_xSu+i$ zOARFtOYdtl>zvazX+};yS6NFv%$IRE%&}oH57{VSjDvyE&XaN2EN^q$h-S>1*xPwx$OP(l z#qKwjYZw?9Q#BUT_CM?xrR8gu2h~KF>f%n17tr3`p8uSO&SY&Fa@%)$I7o?4A320I zg%^HwrI3)5d2lqo%YF*TVa)^|el*{sf0(inHH!WEv7F>z(P_1JTf60tu!6)F z@S(gf+tZXwAhJpzusomw+_mbDYdkKjY=onSfYB(3@a4#|Uf>=}Q;0NrU zWf+>D7(Hkq7uP2?#P(0z5SgI?>Wo-;FXsCXJNtzaEeeR(|6pf&$o}ic!)9+LdHg!@ z%IG`Ol((p2=OSk|*g^$pmzJ?{b?iL6x_VsOeOvROY|-H$#~J=Y_Eg#@HC#nWo{8z{ z&ZpJ$Ny?ggI2zvx51~i)#=J_Gb?xegJ>?g?&kmRRXIg6YQxT^xT%B!{Z%$|TwbK7k zN|BSxR!b%srnUk|pQ)0Z-%_tK-wRZPMSwrGz@~+;sQfo>)>RjL`xMVI5ukANIB>kB zq*uhjOr+NLML>DDpKDbE>-6VAl+2vT%W58LmbyE_ty8;p?y+fhCdQq;EpNqFAE5-Y zeSEW$N1>)FPjI=XnDdHuJe4+7~&IHG6q6D+dr^qH%8{^8qa zm)ftcPLk_ZI>pXW=K_3mMSKQ_xN6DmvXsZF374(Y(43#dw3Tifh=>lix;%V_E>kUT z_{n?1@PED^D{ad?OmaLsJ9Q92_p|)qm^ft>#3y=!SsBIGS8YjKT%@pmjpZws*+;Oq0R*NH(|3T3Y;Ad;jkKT1;d@qBW9?VEzOS?G zY}7Uxa?8oh1&@?Vu4b~=xitY*RI!&!nwqnKB-rD_@*daJR+c;75k>xAXi|hV z!#CyIhAeM>a`tjw*E6>Jj&8IC!F29vJib$Y_uH_e16BLV$~%X*~XHGP=`CJ+$)zJibsvb;h^iNcK8|L)JnM3*bJ=4&;%e1j^ zX3HsQ*EyxFhOi%orwM|qr8apvac2v#N=r!ogMT;O@R+NS-ck7Aa)1whyT8Wdiw&{22;E$2 z&DpJ%F4J~buW>5%)}T4P6e$=RMvr|+(W?LQP16Nzh@-ZH$*C!`MGd3bvE_#c8#wEf z`0&%G<63*&cSpID7kHnrZes$}`rx`H(gQm6L|;)~l-cwA2v9O9@11ES^1SO`(DcUa zjv40ZuNltHEK7__qvEiKm~z?1O1@8zMsqq?Iwravoi5+mV3SE@a=y=L7p^|=hAkeC z$<*5k?G6cP>?ZGmFH1={4^(Y)*g6Cp%N)ZQceNzaYx8?tX+od&)gGYVUa_VAbP^@& zuQ+*y4h>wjp>|-1eSC(|pSDN{3B&F<*e)N$#T~2GFk*xaK$>M%a>4K+pzv6h9THK{qr(L0}(^mC5`=yU43Y^&cJ$9P? zrPAqJ>ZXY~bB4qpdBz&eGJr}2B}nTt*gLe4IPC5i6F8@5#HRyzhN zQb0qCRJF#1<1Le}CS24gefm`L=-`T`C>$)`U26YKfSyjYl^fLHuC-30BlT?Y8L*fL zhoj%2#}>_cD$*boQOK(Ulj{W=}{T(-|tyRsY17xy%lv zpx>7Lofet|JA~lXA5Y(BZjL?a4hG7v}sm{U)f+kJ9OOcG<_k9%EmK+;D?kK8U;*7zd5p&f{# zqN5Ee)a>mymTA`T@-j1r`$=(FL#y)Yv#D^9^SRb2OEqeS`iGRvN+pFWDvm_(LQ+(E zvg%QS7G(kh&@l(w3X2Q{UrLB}U#b4uD%#)5`BHH$dz;$X`F*f>TcBvhONO3IVV9R+ zYwUzA*qc179G0yPo4ra@&c@h0a)az%e?LBRIK+Ko*{m5tpqJ1o@8?CHO|3fg4g&)y z!3u|IHyu|?OQm1hM-phMWO7Lx__lj%Jt+6XMPI_w_H^Rc*Si2Y;dR%3=96uOQkZMS z(?fAFF~^c#wkchu=_x7OjnhUkYr>DWb90TYUhLO<4zqKJS0^pMbrpg+Ec)mA4_Anv z#KNIUN`1+3cx487c(l(>Tf50U7A|^z+iULO$vODrSA`uI<&wnagk1qv?pNYSfCbHX;gV`^EhYf0z zq4c^S)mDeATXk6}5KiEcVobMGVUaqL=ZB1UvgTsZGm4?j^+66tcay#s$-+7Hgv)YF zGxUm;%__-(+%sF=fCg|87KUvmt0ZRche_(X{l&V%{6e>ea$ff)c~n%wii#)gRSE*x z!!CqW?0yvRs$hF=pq#wrvhw=6T0_Qz`vZ76-3_Y=(!i@V5l@_oX)*q`Rj9J*YEOH+&aJ2 zpLZf={=n8k0Jhfn8+VS~??qgfqzgKICHE&fH6lT z{p?Wr;FE;{Gy1T1P#$nN!A^a%t-Q&dG#1*e@Er$tkpaWQ=#~!H#XfKE`_+1~V}Hln1ON zPfy~LgRC7b3q^GB6fL?H7$~{8uOR}Re*bp_rGHPA-~N19L@E#7Iw!fJzi<37P6Y;# z5$8jlVdE<3X?i-krDh`$euPEfFKO16t(H2dOdjwx9KzmuY%wIY<>cAHd%>Y!ad-%) z*Buenhc7oH;qzt5mCj=#v2pLsq;&ql*23KxAOwhMnHu z+u(7zJnm$N$6MZy`NI? za&ToHzxR%T*q$!uX>{6HX>vx@+2U!~XeJDl^d~3M^-oHQQ-{t5!J0cZ`o@C#E`vb# za4iG2bxP&3##)!;^uC;V+0WvTzx-ya;akrO{kh;mv!`BhxKe5a$cP%iWSiwBMK?FU z!6Zt#SjfFJj5^*182^@zf--VXS(#;h|6r7FlM>C9-KPj$M~o2kQhSS*|3%hs zV3}YYA5+|0;(!P!g7pgldQB?+iDhK&XL5z)ve(?bB6PlN;vM1bp#L^I*tdnUihh2% z>=?{UyBO(jsO#--)YBP?J&4&C767Bykd2vvnl)z_o2){ zjQ3GSQgRSjCn6%GI)SydvR}@dba)5rVr#_c{ZRb;??1&Z?RIaLY!s2|*xHqGtBB=n7tu|g$JL&DOts!ObXZq$i zkc>cq|G(t6=b~)#=7PksDS&j4TaXYNrIR-YbiFV7Y2B}^cFl@(4)An~Y#XxlKF5!&{=LTI?Xk><;jl%6X;lRf1?eA^`$W|2v2p(U z!h0gx^1CpmoZsH<6xvpALG>V?bN#GOJ5gZhvffoNkqsIo15WVYDp#6Tl@&$E7C*dT zRi3Hly3&izUwL6*LDFc~BeEI}0wDsy@DyMx4h@j~I@2F2!`=;MtnClL*6gpvO5nw3 z$s2%o#5LBqe4cd}8AHvvzq0!b?8Viq@5U?3CRd(+`KS$nL|~ENWU21-mtB1P55!w- zJW^F~H0=DijtVK#DEra|st&w%y97^EoS@?ILYyP%&3`E+1hDMveMn3=zc_27JP?3D zk}ybcHWp7?IXn!Pbv)-D_SX|)-VM{<8=WZW@ZU#fd(&w!)l41y&vt+1?7p_QB?Ep2 z^T^zB$h6)gW0>TgGqVa@{T}aFMS5Z4)VkTF-4h*g$A9>_sm*r(f^3kO))YASSbpDMILtpwE>qb*Qx&Nl z(L-xUN}gw-A;5GOqXE7KPX06rWMn<#WUGoQ} zTnlmaX|1W~R`|=|QMNVglNT12(OlE=)Ipm)!muvSZ)3%#%XmDl=sNaN$m{Nx9_HtrOVn%E>v~WOcu=(Ak=%dNZlxnD z47w8D$Q{+p@8w=hcW2F9HSontA>iMlw|eAM?D@v!vkR%P-AV79QoL{SQrkiDcQKb^pAMd!~R%{Ymx=A)q+8Rp0&u#o(s{}%9D4hJap zp{15PRQZ`=%;@|%yL2_>2VhjNm+>+(?TZSl&n9-ZF?-%}gavrv*gV|*=3P)W0Vb_X z;^8lR9}pvJu#6x}B7{1ehks{lxbL$tIeSvkX}S0LFl?DmD&!whGV}+NpnX(nEnG23 zTRI@%hK^_4GkLSMEs(--QqC&QD$=H0NSHM7y{?M%G}k2xDrp#gf$QIIDS1xHrIV&e zGxzt+U#I*s+xs^98)jjSKK-p!gFsL_JURNWQ&N6fT=`+PhqnSX<)D%{)J`hUP?5t+J8sUqeOn|aG^(3bkTQ;oXE3ftPqQ;RJqDQ^340m6YR5p zdI8#q(cZ2iB1xeY4n47{Apm82Jue}B+vRzGsO_u1{I$k9F1=Yce+;$}rX+^s&_G4d zvj3j3Yvm0)iZMg|25swy_)5blU?st)Hd1{#%$#tC*hIgc>~w7fTn*-J*#A~yJ(x3L zFceH9r=+4%t}LxABYSbNv2K39R9I-1<0UaQ&RVd8_M_+vN!IQ1a`XDv&WIh`6Gov- zkLhng<4hav#0fSXK?X}3THK|UoYjL_%jUQT|IWBxT%fA@a?>^j6%ViSb9?!&`2iN< z@Bfl>f6p+E0}sE%*y3La_A%;T;*WZ2Vshu4ZN$8PQM=>+vxZ9+h6C^z+e31yB99Leg(-e6YTik*OBIxdhv9> zRm)RpDJfTC2ku=*^JuAwh;*3}f9UBAW8O0*YVvt4$TdCABqUr@vR<4$w$;Ly>c&fJMMXuOb8@yjmP<91{>z6~CLaP;eZ!%ngsiNztn8P?J*Iv;qB@VmeWUr>a@X@~ zYaK6ZEv@ss!5ZCa-o16NsrdD%>X?1BJB^vAURp~|W6`|%+N=U`S=6fSgW_{qsfG<* zwjui0UcGd^23wwgytj)-3K6^&D-WvA@L_GQS1||vmEh6;Fq*xC2zW5$C_Fpr-VW-k zjng7h#htscnl8G>+|K3c8`Zwt)hjFxCt=!qMOEfEel<-~CCPO+-qaj8$XE1UO?u1T z4@tH5lO^lx!r4QMTZ7ttrJUCLAs{Uq{8p!=pt!HJJqZ3grsE6hmPWwhuCGr3*?(hw zeUrN!9@H7Vi(3{8Qk$khmBVp&LftlHJdd-7yekabKth;UEF_h!^h?zK=lLVGk|+3S6Msc)U`IKZ!p^2<#;ynm#TM}9k+2NlTzOxIb zas1K`PB+50wdj?DniN>cHQEiKZItNwM(SxzZI2ak95|U(Vg~xlV#2NW4#R!+8?&?O z!a3veZBym1A&^(Ul&PKy$&0)5^1RZx4C0)o7j_K!1tf#9 zGvc`~DFC-j;khZ{|Ljcw+#1qV7D$GJ2$P*NcNO?754p^<;KcsK(YAR#P=PK4kj;b0 zl59;aEW96XS&50W>+99#D!|JuUNYyEYDD@>i4qbLH#avWNhNpBWTa-~3)*x4P(%V5 zSI%?uQ=}z z%;4alZnF#F;tcp~YO-(mDFqbSOz!M`rz}ju9ujddG>j?;WO>}#{GoJDB zI~F2L@}Sr0xX;|U3MCM00(2*W`}KEKDp5*8Da;)Z`i&uIob@(T+a8wLhu zZf0ho#l6m9YiOhPcUKp|S2RM*e-1OTQSrZ@gD}GKO&PHefo<^IjS|ooO%4kKlb4_G zygy@iwmFE0hlhYkXULQ|n8bQ^d>rBQ1>6r3)LUf2p;T_wvh~?26NSK6plfQSBS*fV z&C<#$7guoY>vu{Gjx=B|NMvVqeg5n65;B1$nx$RFh)sP`9EQl z@%5tur6hXv`S18z_Eyzb5CwlUDMe7e{I5~K;13qOt9PE;^vO$?Oi@-ovc{$2p*M1B zEbMg-)N}j<1lKu_M3Fk{>(|ec6q$Ni6)n8^?I0_pP!$YsCL|&;^N{;X0uwIs;I3cBSJ@yjic4%bHAh^BQx%e zAOz0*?(Xh*o(y#z4$ya@6jYV{u@scC;-qgQ_>co+yVuk!)~8AZpuRf_;~a*6ZEw`9 zdkI~wK7NaXEG8#MPe9<)1_GjIaq$6!RAgi%4l+3pPc!JIm@d;^v*oa}vwPmyIlh|A zTwHU@%WVY(6tuL1b8~JxW4VI5s1N~Vs+9IA6*rj9z+6fJ6#tybFT#o>#2E+kb;AP# z)fE*xquH>iU=K+ru~0HFL{K5-VPRn*;&LhJ=;#2qVYbp}0p#x*X8W9rR!?MP%%aIOTDe4Kthl4^`d*tVC@6r5NaJ;{H6BcwF4x6G2f}>-4vkEyBrz$e z(XcPd9|hm*?lN@HxXx@mFAr4w{<7QWutp&g46H;nCxw|#dA>UD4#os%0|kqm!erFH zJ(`V%hE`QsxjC5J)57$l{qwP^PMvjXNr|PQp`nx0<<5A%-336tfLCvkB{Z97mVSNa zJyHd;8H_O-_>&LQIfI0pd~2#y6RcVqpJ!u5g`Kr^8QAOJzIB{!4G*XB{*hswn4B~+ zG}PDEua_Gb9JE?$b}d#Z1v%O2Xi2+i8o>Q09MgOn^6+o zK3pv?E-tFm#D#~;1!K?}4 znUPWVJQXo9+J_HP!qQ|88~w43jg3i3Nno<+X=q|}dLfXJ0)iD&Dg{MFW@csplDs@T zMYmG=0GmcfN6U3ug2KXNB_-#YU8{V*zk>MuhKCbVBqS!TG8-pzb#)~r&6T7E?X7Zh z!@Ta71qB7wrla}?b2Z*i4|V@~f6=AE%_lKL(a>~-ctTl6M@MLA=ojc?V`D(A++7~r z9kp^;vNc`aK|$V-5wWiR4gTJL+7H^{NM7*b2y$?8f*SZxSC_A<{oh|-trr{LfB5ip zyI1aLme^T%BB#x8{Wb*zgt@FoQ`v(5CJ35 zcQ7QDR>x<}yI|pR7k8klUKZsfOaLd&;hVtekQW|~ay0D@l0>~7D97+HG1-IZQa~)B zbGz8RxV_j@E!RQEz-X+mw?zQ)xjB$n^<`(Qx|)SZQd08t;v&{K1~MYP7~XV*x8GX- zv|3MU*EV~fH>n^shx(O-VC79mf4`)%a_m)cQ`6mCjm5^sMxeO1wziwyB$hXd*w#?0 z_uWCAUZrC*Pa!&g0y_~i7| z^apAJ_O?4!wg7v=!opBdQH2f7&2KwV_^+?8DJUr)PI~Z-jg9YF_vSr0x-w5%h#+s$ z7qS+{%Von4_*AkR{Cv!xBYAtJ;5|lgY+~XK$fk=;&T}HJz`e^@d)Gc@45PI09i`LkNrr z(}lb)o>)(%)>HT#I=1|sO(!$Q%t5fWc|UORdP+LhUoo-}xFlN`pKp&kA1&2XR0IYE zfn-b-Z}mnOGD7({*jT~WZ2IsrB(*)m-FH0fYH}iSp8&@(JJe!g zC&$FZ=1Va&B7H|RA+_E87Bo))4=G+dp_C%OfJF6%DZ;3$N70V)J=W{efajEbr4|EP zT?L5Gs5X>`op|3*s#`IU`)kw`E$Z0no53^qXOD8(t@;KAN&t2NI1>hqT10B9j4&M? z-FUtnz3Lgr%yDsXU`DOxYjIgjKiS&;WLbswam&f5|0_HL=OA~+xYgs)cSn@tWXmv^ zBGK3wlR^`@o$(QPV;l{Qjb-Xpzb7YI0dxa^Pv`Rlq>P%5u1t*?ymEKcrdw$!0YXec zVeF{wsjPrvd(0JLy1-}brFBrJu_c#^P)=VzQ}3a6o~a$|6st;0lM_u|=adACw&&_mh>TH(JFD}}i9`7Wg$u5qT)4k0WB=ri= zA(D0+N~sOFlRnQ2K^QAa!ON>HBNNI$Pe4RVTY7$e9u%utYk70LA_ViD(PRh*2`Loc z>w4u6rruf&WQ4-k16ke6#1*bd*kv*V@$@{$p7U!!C6Xx-=rj%wMqtD;@}es1?9k1h zE3O96m7AYmHEa3UF`Uj{Tv({A(PlAS))S5|CoUck5^{fkb2gSMWpS$j$#_9&h@R%< z==Lk}1;5U>f<6HbU^c5j@)*Em6-YqiZerC;Gs;nJ+e8fTeE*iA<$b1L-{z2_>aj`!{G@ zZl@GBtGQaM`58;L=)U#GWn%^`u)<4AOK9Y>6H`;N;^G`2*ZuhMqgwX`BtXh$a0$hj zZ+oG(>bM9I#%e*FSoE_XMZhaRCG33VVigd+RsfR$b;M)%>{C`|Eg<0Y?c2-m?cgF> zRiH06_W1}62?6x*W`DK{aI`wpQSil!ER*51va+%YdSVqt*tn!5-jRKe7KyB!nu$gBB74TYqv=w}lrQ5alq(dqK>7IzYQ z`a;N`U;i*TSct${yCGvsM+;53#^do7N~#h!Z{mgUr`nTM=!bje_t*-CBnPuX_E?6n zjDmoWZv#x-NdikJY27b)_G8)kQAfPz_x;WKn$X!6s17LG!6kS7hiH)CKnS!&NJZc) z;U|ldq6Bw$FARfVoPd-ug+gD$Vf2h%f>86w}Wg z3LTpZ3E6FOPxpIgf?P0TW2QaGObi)DfBKin-w9McH_)?S#V=`LyI5wdafTp# z<36ppbfdqQ0@ysBA03I>;w=|X7nzQKD2zPzgR>846;VN_4$0uyFm0S4(yvLgf-wu7 zZRYC2=c*&cO(BAx)50k9#wZ{Hw9mu%3=H#(r9PV8`?H<&GwVS#o!IUyi)qt&wi8(B zPvoEvD-)34a4g1eSH*z-H0XlZr~iks{CO(L%F05gR{63&QvnFl?d>gKNzqzekmK@^ z^$||?%`bDyJFa7AX1w`u&$IJ%hrhEoez-VM7@hO-RRQS$P#Tt&mQIHYeJi$Dh@$rP zOu^mo2nYsMvrJ4(eSLk5jEqxLQ|Re6o_Ck=^t!DsCxVKKX8ueQik~Jq9k$0vlNi2QFXb$?kfIX^96T$Ufq?;_d^$Tifab;Laba*d z{yQ@>^YiCVKF?bom*Za}BcG(CidU?Qs4AM+-1L1lU*#X1?#k%+3pfff%H*vYXa5(P92ouAYGBF`AUGdG%UzC>>->bkC zYA6YB4M&F}$)wXojzGFzs}cn&gwh2&HXKz_+M;>)9kI1F%`_@0=dY@~I9zOEw_EK3 z$^OHK59Fkzz*72hxNrj&9LO**`(XTFB>>S(rAjvaZO9ak$J^*~vfA6*3s@|?XDH;8 z%mV2eeOn7phiMnsEf}~oMa@>K`b4fS5&7hfd!h&!BPjgh7Ar1&&)e~rJB{SU79S2s z_#oK^!XU_}{4mTVXM65nCR?{6krnsQ#okUbM^X>6;MBvuQM?rH(1Abnu7m4ZRS zt~MFQb9Z;w!6l1US5xctq@kyOng(SvFn--OuhY|0Fsls>4S9Ka3a@c9BJ~-tUNFBb zQdSoA>*$ma4G{u>`0?)Qjw#VTD5#`6_&_YI#KRoZ=QW6|Y7oIdDsh>P5FD0+#Rp?p zPiLIV7DHJwkdu=$GTHz;1ZYxbtPncwMy*y4b?|BjBNPj=CGtG`Z}xHu8_TPT4vRJq ziP>2e7u!TZMw1UxaSMTgv;7aOWX8Oxgj*0hA^JFq$#g>W6ElzU*8;w+7#_TMZVS9K zEwTE=jw*Y<9r0C-COZThZNDxoP;e${X_;qW7D!a+ zgg|`&hHIj)-=Vv`y9)%!8KBQ*BG8Zvr0DK1jfaLmm;Wm7QkUbm2yXf*C0f117~7qk zs31<|7TcRvv@9V3U%S$0`g3K4iP1k*A!Bny0PBxbTT2J@Zgb1`-5G2aNh}3aeZawi zUQ1#$fGG#rWBDQREO!xWx^7L zIdn++AuvTyKw_w=s}~j(oyODXwt4^&KNbWF*$oU5f-uXNzz?$p1hi+=Smef9y%}BY zzJ!6+~!IG=_}kY~&8Mv9{5<`}@6w6GK|x+OnCi9ULxaap-wR?n6e(%m1LZT_M!&KSx!k zZQ5$9A0DWzGB`*|PjBy#{q1EEf4bML#5X;aKfui)!Z|Itz#61~x?e?K$;~PtDiY7& z6Y7wM0(%hT;}*9IqO7j2u2#=GKJP~@q3i)94=pXNdK62m=YtfF7!n|2{Ly&2t&z*g zj)(uSxuLcpqe!>)Q=PS;l}uR~i(!Boy=^Hu27PUKp!)C!Wkv=yka=x0ha0`09_zT5 zH!;GS-a2azybx^hp^o$o4i0ws@+Bl7;4l5e^fU?_98lUw-h_0)(57AX!StYNqKb#=8ks8`@aFM z0x}}vKyUBJ$jD5y>)C*Jxz651p(5bBBfi=Ha>=3)RPTXHX2;9G;)c(}$AE>{$u^lV zofsj22;;a-Fy(@M9{MqnX7iZ2Q5n@)Y3qxaZ!e=F2}MNiNyq;&0q)aZ zn2xAf#yQ8-Y5vqylbrc_ge<+ynAs121Nv1&@&{;`u}mSB%-tkMmBTDWsP7kdmz?6H zTLorIXvy#0Ij)ZbRmp?YMAQdph_II(_kRS&Q%!aCRZ;$W)(`!31AN!3e>49I;c7Ul zeQy1Go3kfrFBz*k*q2Exwmm|qpptiUwsUS~F5hAoH&?WuH69uz$6@YPg~aC1d)QG= zcq@d*rK4&8xHTVR6j!*fcbn|n@#7Zu+0%=)m0Yb_E0=4uE+VxY?66s;V2P1U%XtA+ zP}IF4B8kHeQ~D!mla~oG@eQ-w@59CQv&C7va&J3ktL% zzBGS2VtL%F0k!m&$J5(*Z!fS*P<2?Tg5v1&#lpMrV+e@a7)=k9lCBKVjSswQ+x#`d zb*-P?rsLvYQyx2=A2hIU#ZB4TW^@NjK(}BEJbT_r0jp7~!R7SGe4H)-%&n4Y7)Kcj zE2)A-RLde#an;o$vxp?zS8^hWORo+bY;9*u4c36CXt&(jxCCyze}nfnRn-nh=;CUJ zU&6!QbbCp>fz<6tA)vRUCDA|If4%ejEehIq5jeEc7rXfZ6R-W5k^QU?F_Y+V#;roW zl?cWv>o#XF8i>nL%@GUs|?BajF}wnKiAl^PLWuAFUglOTLl0QoK=-rlKO^bmMSkgMJpwp*_Vh zszdCl7neJ{L6~gg%p|_X!(^VG@Nj_bA<5~>t{z=^P0#1o9nH3?w|ME4ewGq8=}E&~ z_H17M!jDdhuAnMb1~ciOqYx9310@a}-Q9e?83neChtvH6pTpL9YWA#P)oBrs(vLh1 zO^W7JoZNs1*I1Cxe*WMCR#`Mh)R)A6V4KsR@R4MV8fB*!m5GVS+dB&V53PXhsU^HE zJ~G7g_$5Ddnv0`;ZntC)U6?)7OF4_Ddm&7^k>8=`i_ZGDhnBChn6lEycuBKT-0MP3 zbTa#*chbEX%At2(OXN}zO2GPnW}_7zDYv|`66=xQKAH+#^4~|>;fG6H{rG7$>|>=xHChq}*odq-vAyG%t9$`lz? zi%nwI*6-d3M3c#Xd{JXg+Aa>h-6xejDSukGu9xrEGVHRf(omW_h;NW)+`r!}jCZ+E zN+n5!`Fl-goj@O`44>P>_I%jQv`xh_X+{EZ53kN$-Da}W8Z z2TBJ^|B>TsT=Khn0GmuWpC#f@cILlY6?}fSERrX>}XBa($E)Fq+;?K|n&E!w>gnMo($UepnchM1LJtOK8|M&Kp zF;~mary)!i-LA7zw1&nCrlvb6EYJxo@Q@2Qe<8W_F**LouP<({KiO4OLluSd8F^}K zG)bD2hpGBbV@E@Omk19Sm`ir$a68@&*r|-yShJ;|476U%qSf5)!I#iY|MF$KZkd8E z%nvbAUyFeA+TjHx$EQ!9s$V(5_vC818niawi4F~|?@F4RkG+-&0i5sh=*oy`;~lzs zFy{QUn`n1(H9KM!dCL==$%&682eX7^5t^h!?5>7L}#~pN_pR&6IvadUKy-$lL3_V z`j;6g;OIenJ!htyzui4*-XB_uA_M`Xx3%?&T9e2SgWSKf0n_=Y_Ybi(@uKJxFW0dm z0cz+G-($x$!ucw6Vxq)@UlAqc`Kri{oGn9NUu5E}w}j~3rC{2SvowgKdj?P%j&izP zYK^>^Ghdd=@PQP18%ausTI-~#N4OI0cV$Kh0h{5>eMq5qKt4{D>@g5~b8{83R#IL4 z9nQUORAju^=BA-BSeGyBugxr`OKO68USTsf&q4?&NlCxlvGpt-{LDNeykT5_Y|D$b z`Xpm)=jP{9cB#t?#M@}v2Us1~_L*z`xf0u{o&AMm2VNXr5)Ye^RegAre3M~G@3&}u z6EU|J*>Gs4SJt}|g|bI_-3Bj1v4ArJ2fkYN&EpE!$dD(2bE08=ZtsUpk>gsZXif)C znB(1LY+EXYa~6ypM_Q#pNSJPZosHQPO%k*J`8f#&xii)8@%;09PF{CWJ-wWAxre*> z$MbE%ev4>E|7?kNpc%pc6L{4(K%zXEd}L#cZY*=esy#O<{xP?TgWvmZq19-|5Ef+I zTr}1(7CJTjjL~d~j~`!tMSu56{57wu!foeD#19cOztK8+fYZOV9m4xkxt}`wszy68 zb11-nC!mOp6**c~e0m%U%YLMyqinrAOmhF}t|Y27kwtO%E)-RV*jj9v&BA7reNnDN zh;l;3h(?lBYr@m8lf8p+GL5^F}ApggyW57i=AIHqGLwq z8vS$Al+?i<{;WRFFd>l*A%Mq0PUZM$Z5PL=ONHp7~_6bH8 zSE~*s%dH1L-QT(44dO|Qg$H>A2`jwi^$<)R)To31;p1wSiDFiAuQzhy`!rV^#efKpulc=V zn?}NS5`OVCxXG@gr=mBtK+ViM$6Y+b5m4m+_5YyitD@?Nwk;tfxCeKK;O-LK9fG^N zyCygU2=4Cg?(XjH?(Wc)+}p2T^T8N=Kyj+}UVE-7t9r5?E{?kVrn!m9gTUdk`TYim zLxC;q<`#7-)cUtZPxcU|#>FXXYT{g|aB*>+`vJrw&`zpxGJuLr70B*x@mE*Zx;fls z+yY0`U=1;9`N`xKt9O z@bXU(vClE${r$Pw0yhUU0Wd6Wxj)DBJp5f#pRRr_iEO-U&ZSl&l}W{g`~H^s6)%EkjF(8I}&w4S$)>nsW}?i{Vw!;Eyv^Ga7z$CG~fvNYBh(u;tDG0 z@~g^!b}wh%UjE8evO>MaVL4ufHh}#nF*0%jAa?-0DK0ja(t3{+2Lw*lm~3zNPq}qc z_p&jzkR$tUrGt)%+1f}dV1WRjgOAOX+I!%3om@99<`K*F)4>7Gwx{NG)u4}%&zorw_gF;84Jq^wjP{>z z{x$Ud92Mh8d`zH7{Ee(b+=csZ4)wH^KL`5?x&%*8Q5}3#bQgknjG$1TjMzSZmWJ>(Jck$S=$l zQ`3GrU98Cq={s3aQWf)hf%f7I6QFKxkG{CbQONuGXa=hJ}BF+*G#D;yq*&8Ye{#$tgjqlP29LqNmufrojbe+u5chGq?FTei6isr>p@`(kCv=H1(4E84#?Rx5GJstbp2{PeML3-#E+E6!-f+UQ`1K9gMb7k3NInfg{8Fl67|azCQ)I-=l2cfgingw7o=F9KXJU zyz3GF%4WCS%FNzIOLfv!ma`*1rwQCDozIw;KfBb>C=2!bE@w*s9Sqh53g1Z+ya^(- zl$}lBLEhBCSBWAYWoLst>elh>t_;?6Ag*sMlm5be04t*zSD2UIrxiRrSK6#%#@Cd1 zo0!>40MdHHJ<(!?h#u7OeodvI^_B<*zztTuw%J*FJHr=E@JqOxqS$3y)c^^Xg@11B*VUm^$ujhUPuf z7keIKtjdK=P5Q!{@ieYipC~C&>BQn<2aU=`ak(nJxSk&dWcfk{BAVW>^JkhkKDip8xqQ03=_yjg;E2A14CwAwj4Hqpz|l7DXr+GrQh?C&!?p=;*qe5hf%hmH2q|cV0w zcl6=J?8sfj`4Ee)$5;g7aDaz6eirqhPF;W$*{To zh>RG6=fLzt2GYOaA}2s;X{oCR%2GF-VQkpBf$#0z=m<5ItaqyV`s&bJQ=_Q48Wdi) zR|8F(Tr*hS%I)edKmg*)W^r{M7N0WK}5QBcZ(m8`41Ot2`ee2cj@p*eo5Ed8O!QnTipYs_n&d-?S z6elsE&!0b~vj4p3fQTIUjpy}p=T!h9!#m-LGm2~Ml+mY8!Ra;(<{rKzbb;C3R3N*x z>+f_jS&WJvWP-7;Jo6FdPS;4;nb23*t54S0r{mUp1J-EI&OePz<!Z$r#z&WlO`$Q6bxdOszah3yF(lfDh;9B@BPE!$fSHjp-+%j@muIR z8a*r5b-4^$&5i>Q}c{$33|6cH2JbCgtue-5`vnpx^v>S>{~ZJY0TwsZ zXoTM0aPfq`K(3(A3+=&TPBt1WE2e=e{DJ+t_2Ce4Onv)O7HRa z;mbAHzlcBPQ9i)j8zvVB^%u?sKh7~h|71jR^rVXhEcS81%paM`CW5fB-5!DUadPPN zR7E2Lms6?GH3}Gryh%3CaJBCqYPx7?b&-6gHY-?@S>7SuAdsM35)$Vu;)sHLf46n) z9ZLxgElzZ({Hd4N>Hj@QF6iWH!9b;VzVBFyxWBwDejcxfO(0K>rKYcQ2Yc>?9Eb0{ zrGjoey>G6Bp0z($9D@(<>_h~dR5>f_a1C2RLS?61-CYgdjH|bQuwQ9INxW)V`ocU? zCjHu1+kkb-BXCy8oKjPh0P(vhM16fCgWsLVzFL5qC~*X*KPSaEilw`{lo52e^|;w=x##DMi18@6ryQmd zO4p4`+kYaC#2C7(sM=Z{*IGF=1O=D);xnVnYf+jBVr`8Gd3jG$T3Tr;FMmU}F262=kg7jz@C)tpkb0l$|J&~h zn1NksT&=Y>gM%WDV*$F z9H%lTE_dtLvS!qYJ3-}IBhj^4JN;GhUn}1Wjf8swFRv-zc6t^NfbC~P*Z!upbCJtM zL3Dx9jpxogWMa9}Z)(A$Siq=KPEUk{j`TU}SAEOMy~DZ7b3@2n$nXY9ws zsHLKn2#e)nJTwFjtED7q2R@F=is!^?hiK_<#Z$z*sg)7^2aK-W-@kq@|K2K5^_f*b zMC)H%r03B-&nu-bo8>UZS14E}l)OvsnzobAQT<_oUj`*X^C$b;^ft#sZ8SnBN z197>WyQk$qRUMzD^0lA2T2(hQtFu893(iNK3xXHwvF(Ok^I%f`qMfVw_$6I+HaeQi1>M3e!3PgOiUD0 zqds}p*Sw|Eu5VZ-;$y>=TLlE_zo)vh@3!j{Lb@anQhH z>GjWF^bSGbK>BIIzbI;6t=Pm`DT$j?CbI|%efIRUcD7-^ImPjN1D7|GA1J`-Xn8zu z0DPq!{Nki36yhJOZJr^15O$XY%k{wdnaCP`2MOD=D${<3cx(%lg_89jTv9HTc)t{< zrq~^c-fSB!_FW=4lar~KJ9O}FH7!696bp>ej3vC{MAGgxCT*6FmmNGtt&}RJOnkOh z3S%Y6W!=74Fr*yv+>{}OF<4=hYxRsKRo06{;+2Z(Vu)ORwe(nUa|I?e$#Q= zMC7O4?jHmZfiLPPnl4dLVt(vqO`4wrudQgB1A&dLsxDCNp?Q-2>gnpfJxS>5o-G`P zg_CJ~w_}9(KaXUTje-CK3_?ILrUlaH^9MuaT_^tXN9VSTicH5{yAOhmO=Al&(I>_H zOu-;guIYXgR;f?)tZe}s+hK=GF@3fh`TtdYBp)YU99o^r=z1}J z|EOh5#|J+CM)lKl-o_Fh?ZMv_X9_oa)<`s}iv%`EOT#?EYt5Qw3rHzls%*?X)cb~sMOwcvn2aQbx1woL> z_@`gRtZj8rYtVYXVF5{+mPS{@_A}`340*DKol+eMYITu!;VV^OIU-qlg8l(r6Bqm& z^Q~ddRu8pp@wQg_1tD{s3b^I561xbbI676fTiucgv~h0$X?&I=5*`{7g2|xYdw;f) z$4=j!?{ZOT009eo$rYpnx5EU~7PXFf9~u`z39oVs_3z=4WXM~?sMM+;XHQ}10ZvW& zvyJU%Vk7T#W75;Jv+v=1XA$J_+XgCMvp za12LdHHrj6RKz>_# z<1vAO2-jy6YwN|Pm^%WZs>9cs8-vKmvy;^ZRi)NmQ>YU{O5HsTx*h_ePZkRTvIr;h zgbgqmN8Zdj#GDyJ7}uqn3sw!YF*+aUC34sW-13E5HL4rc-2$;M{ntP1ozYW&972Jw&wh!lzwhuL-k(8>kV!sA+q>L6>1ADj?%3eo=_W z1ABO8cJ4OcKu1}gPVDjpWpJshM+tW$m{DbzlMR7yb5=Q zbNSi}`IR4Brygq*Z@MKVZDQ;@2k4&T<{uL_>&_yzRA>?NOwVS0zc1{+ru|Bd5Wz`X za9F3U(K;1jX2Vw(jrk3bah;vt%_4t^!PCILH~ahh11vY6_bbMCz|s$JhCm7eu!Zq> zK3*Ok9$t5d!;~4R{6Je>yZv8G#p2K^F*b zpbeMyhoU)wZdCG}p~4Ab^S3ITPj3>Ms?}Z5*pR-xgqM&}m?`iekoy-K>baiGkfX&?L?fDKA6cotW0d_2n4)3;FQBlgcL`VYzsSJ28FCpQsnXmo* zry>-{Xt+>(jGLRjA>`!sR*S6WX0gAN-vsrhk_Lz_; z6KqUsT4!;=WrGZ1}$@< z5Z$6;1rjqWFf_0w;3Wu+{OD+MvM?8!gJ$+|0)g*4g?}9jHFd9fF+i08Oi5QrS55Oo z^@)Ya;_RRF60A(1hs#_@l)g=miXfNW-2Lq0g2Vg!YKH?lIy!9|XMeTEZDL4^%mHP) z##}S^b*%*f7_7v(KQVCH)J-wv=1sx(D%}{U`mO2`4n$H=QdUxyHt2(9c<5(5n(yuF zZTq+v_JW0_fhAMU3aqrUHPy8D%D;1BilV6IA00(bPD0W-42^&4#VP551=iezGuVAgdMKs|Ce{MQGZAOwnC75OtD4aH2;UN(KTuY(jD$@m8|8?VlJ|8+&tqh zZ(^Ys<=ezqKmxj^=H)BL{&-&;)!}r2yqw%-+Cg9LKrHR7YV0y{8rEh2OfoZQCfwk4 zTrAe;Nu>yN|HnIoiOJz{_c9i_EF%_{OSBCak1Z#<*Lc^e-j4^hXbf<|4I&A4F)hTe zU_U`heq=dWod4QI*`uJKh|TDiQ&2kING_SiHKKg-EHmVz?Abim!r=~{DPVA<@P39e z7$ADJ8jO&G*kanM8XEZ9?jieuT#nyxTN$#oJu21hJE`UuLb9-=as_F(*@xOk@NjNp z9IH}L*D};E88u6a3W_2d5bR2r&H9-LqJVH3F? z*GPpEP$)z?rp33COhp6N;*z7mHkyF|1_soEH7dHYv8kYzPG<_PoNeaey`tHF4fF|sQ|lNjAjZJB1)N;ck@cu6w<;% zD)}=D%RDg(G>oip`gYLuSEjE3K)>$27YCXp)yQk*IM4QYo3XrnGCXeA{V3u!lZk$R zsLdM&L&#Duw;4KK7&lbL(vYc(Dyvb=ZPb^&&VF#%9qX-eu8Ekv04yD%5KaSqhH{;t z9OC8rH-)fG=jF3j>NeE~$zYruf4{-v^)@6NSU>f<=~B(dl*=3>Q6H?wnMawOIMlp* z?ZVfaxm8coNIXF;Env~rGOMcb6ZqbDd=rv#m$Fr$2PsP-G*JHte)-7k39`lokZ5(Q zTn_Rot3OZ?gAfD>d;`Ht%NRUZeG6pm=qFI?jsDRjb}uZiX95l?jx2&UboaPGk866& z@T{0Q$72!`RjFO;KheE^NM3?{6@|!s}6gIRWifpQ^@(ZB{t;4|369 z%^2gP85?+>jJY2`J>(rrOk$8urnlL!M?Wx{A1PaC=r`$gK;Mo@p2sfMo>^XC8yvL+ zv=xofQP!tta8eTb6gDOr4Ms2s#`1D0Yg%IDFk0RY_N`w3ejk=~5APYDtyw1eIpkwZ zWmuIIesALIYl#p1RK(TWi~O93i0g=3S~N6C7dij`;db(|kiRBLrzFPHBwcivMBo`+ z-!wrIA&0%{Jj(KNG)>)$)VJ4*Cy8qceKRs|t~&K=z2#%7k)GoeFuP}QXU@s#DOK&_ z_8z5&jnPTnke!r0bEyMgVLtQ0PAS<4Orp=~-!kVLJ&49Z zD*F5vylW{CD%c;RR9D+RF*e&NbAF>Iv>kdP%`<9=kmAe+v;g@`g}Nn;s6QYkCXLMk zI{4gpG8yj`B_W~F!y~neMDp@cg@?x8v(S-D^o+%J>><`5QSqhJ{}>NpVf_0W5TH+_ zsZ)>FDat7;*E)!wK~^Y`@8-`nyfZH+b~K&cTHG~w)3`fmwp1y?IxVBn$^!_}mj?zD z_;SskTjX&waj0<~#tR;K@H@tBUtlV>HYNs>t@i#%%Km>G#?U4yO_CU^ciFVXlf?#MrWFlduAU|6vl3yA4mR5Xh}bneT>{G* zC)Uu>=<*9SVp?tBu4k@=Rdp?UWxF;HDA{W(4%SO-p}U}EZ^`uY3R09WNVKnb3@pJW zS{JHBJq$Zu2>J<{owKzSwOn!XVf|jzq2gn)IWL|@PFg0BZRv-2l#L1BofM1G*togb zg`k`*OccSH?%x4*5Om2y%!7Z42i&!vVTeYQMbPSTZK(PTpFV9K24@nCCW7kd+@6LI z=}i?4Dq6fQ7^1W;C{Aj>=kosMZC)^8Yn->Ff^fn99^sF_yXd2-RkuYdo>>x{=8N1)T!_LYsQ=~nc>pbl2o3CzC$^J3qQwBYf!uuocRY_caNUyZVKjtf$W3pUHUUF2Ft^KbQY;gGAd}$1( z{9Dcli^h}mDG!N~rmq5qU(2=#>VVFzFD#S|3(G#)3PhF1_AX!vokWwQ_Bf38=6dt= zH?J4H3B3D#Zy36*Q$YGw%I&Y(>yG@)($)6{FEKG&9ejN=Q%ric@BIxjLIuJV&9&y$ zqICzT&-KS#UAoy$K?=dBQuX9{cYonIi}O}KuIca);SW>-*TDwpq?kzAWE@tr_ME3cDs1x~0yH#q zX9JRap?%v}@Y%Wk-`?f2!tlEn*2}H7^pFs-31B|x#b}1sh7@V1jF?!5ri=!s^CB0@ zyQY!3@qUN@t9Z0+jlBqa8*XkUG7lUpB9>GeT-xeDkMwW`^XM|QS6D5aAVBEpRprB% z&iykE)s_43h_Hp?#r9EeKu+{aRwX;}S%3gI01HQ&=l1;dFbqr#temVYh);l>RYX~2 zk5`@h`CzgFg{K|x``{s-pujz}Y6WWbU|=9_%$GyK--tS z%_MIE$f=K`j|U?elKRF0Vo?9(ah}09n2L&QorLWeyo>tOJ18lT;tDB>Y_Wa`2LxQ+ z_P)P~N&2PXqS5+Czys(DM-bQVs~>)=w{K)c%B(9>8A%A{6~LSW{P~^#$w|9TgZHJo zcq9SI=cuSeR=7LBM%&93#L>d-$Y5!1YG6s6b;2&>-rf~M{`A=@j5LE7ZD*MUK&`{5 zs;Zsy@j2`OG3MpAaP@QNY^xn9gcm800kI{%>W96+#Enf^?q{xLm(Mj` zW_Fk})}99Ka^-(oD~mqTRWKM19ln5B$Iq~D)hY3gKIFQ&r_t2v@pEpGGIf}FUN?aW zIAdNLdZLFUj25m@wS0Cq{$gM-l?B%LdRlc`ZHUp|zqlWC&*ynhEE>w&_GvnkU!umi zES_%Q*B8@CVB9U%i+kyWj`a*r5#s#3Y9r!Uve&&YDkBEKuiW34&Y@H=VSw}V1B%w( zNFt-KMu;5k;=?rdEGOGzsbRLxH~Y_bC1rG&X2+}JG zNcDYz(X$G_XpeanEaVwN9e003jEDfXb1)LS_iG2VslQUObt<>`*(4VHQ%(^SIeEDs z#v#V4s%y{p0pFAFaW9S?Q14pu@|2X&_xG2VfM$Dn#ecDmZ_UPrU;I(NHPZV4Li?6k zb9no;utd`RmL>X6Qf6-EY`$K~HJb#{3cC|Dm-FTr_N8m^Z=oSUu$w+-)uP0lkaQCzgY^BplNy9 zMd1&3JY1*mun#~(1(C$YZYJo^yEDfY*S0;CG!YQ)VhdWZ7t;WdzNIA&YU)#fJtK-b z1U!w?cvIvGiXR$z44&+xqwJyoh5Sdmxl08m4k+32ylXbm85R4-q3JwT?kt?np84!W z6A`V(R`>H4?F}CLV^mKe6C>U=<gn`%jhFgulu+xUD&%KKsIIw^x~B!wojDaK!qObf z2y=_o#w#F(3RwPtsC!Xa8IS$0m|5hZfryBhRBx8x;YLP|r62_wygepL3et(u5$Z6E zmVT`eT64e8d?;%E^E39ydvTtV&qTTjI-UM3#p%ky#`e--dIc&dv!vPA-LEY|Ly%T0 z5;m1AvkE17Gp^+0HE>yofDAMW3kLq3Ixt3&=EG^o^-fs;^29VSXIbCC;Nf&B=FgwW zNrx_Rtj{qMG;EG06bhO$%9nTOXA*0k{ZIv`kO@T=kevXcgAb?GE z51{(@zDE2nuGqhXzts&)MTMO!M^6xk=UKkHi!xB}ytNfrT!FQ?3h&NEhS;KE)i&R1z%ZJ4REPF-ea{jUxYbrwMj`s3D#YBnlwLT_ZaIl2(` zOi&C}vDL6ySz@~hTHBV+iix@AR6=S$1N8-6TV20G#!~}X+A27pX zrNhT(DU#&Mlh<=lDybXLh{MpC9xj;l8AR>=rm;6xHpa3v2HJ3Cd3lHAV~d$s)*$Kk zKA4zRZjUOAj2XFH7_FA+dxDq>yr2R53g_kK_coVd=H(J5oA0B*@ea$3}%GvUm z;2sYEk_-*4tm;~ATGh%W-mNK|F8oK4TDF^LxBUu(0od1YY~^pus@VD>)HUH6Bc97! zUK8n4cgJvRRbY{LdV`BC@5wb7!Eu;*V0@=(yi+)TWSW04?Tt8VrMc7ZZ>St zd$NNglv7P$JoU?U6CxY}S}n{4W)x%sogl$?ImCR~foM{CMtw6!RMc1$S7CRKK+f?~ zRtL9_JsjaDrEnPae_AoRoN8fi@$l_2%g*r}t=rS+WBBo8Ezd>-7EMK$T7L& zec~}m%7Q3wTyly#{b?qFRAxz$1#o1wo!q)p-sSR82#|y$!@GUAU^g5EfT<@YH{R-M z=8&>o*kP?H;P^3!i~z_;o43t71FncYipc_V#mVJW&%%%)Idt^X<$zzGVAY-J32YAf zRt088zK~lNMW!tiRP(bc{JxO^KlON%)e>h1{Be?lQtV7`zx{`udAwnPhSN;%#aY~+ z*#D1@yuuI}TJ-I*_%Jo6JdeBVC7+Ud?==$(QvL{P07E05!#Naq8 zJzd`fI=yRzi?`1)8$11g&^yjjiBmnIv8C7O^P=4}DUih~aFtt9)ZX$)>bT44iX>#H#R_r0?SiEq7g=!h>`= z>NOk~=@3n~qMWb(r7VNHtJUrBO7K>COj(3$0GB(sAseuMW`@zxUXS0<>wgA^_5CFf z@Vp1q@pwA?zB#bM_Sb07g`o1c)E6~Z^;)aNAJ87ZPv&}hf`CUFLoS$9o{cP!>o?9D zU1x*;{tV;pzInBI1O*2du}xw~#?EK!4CTTw$*^cpUr<(GS_@gE&wrA_c6G2p+AuwS z{CmH|#hdxr3p-tq7A^S00+a8(V~9|#ywHw%doeP>2WQf~6F^ZSK5XjZQ7^|wbUN9U zh#OuHQ{iJqra?@ELcD()O|Lh`-8@OtIq0<(2ev?Rn~c(y>htvx4+remu(X<;+cm9Hdl(sQHRAr{1-|GRkpN^#r}#h|HDMO1Fi{%&U% zsEo|yd|(-k@%XN_&sRd6EPp|~Nm5k!*x1eih)qkhl%0jQ|tuVOI_Rq1V=yX@R#VXICkGrJ;6OnX6TDB3lZMmMDSBKf9m5037 znPBw|?5;_k@AIm)0Q?~gxD|jgAc;;VwvY6jF5rrV&>8HgWbXtqgfu22R1vHCcY|$(U0*pLO$H1cj(WfF(XRM=khj zCGxg8R*jIuDY7oFqzt)^6GA;bvAZEhM2JZT)B)=tUyB^TicC2Fym{iAJj5t4aVW8d zSvsChq~rzz@QqD+^VHl&EUXlJ*>-|GASoJqKyTa#U-X&V>*dz|bPo^$Bspz`dV@lV z>+3Oin#)TwNORRGw*EjkiVHjE9Ta%*-qo_!({@lRsa09G8XDm)3&Bk@2ko``EZsdt zeQ2~|$Yx{DQ(7B_#jkY3o;)^SXeG| zeR99O`Iwn{x`Y8>VtRaf#(I^ylNhP)L)x0p+Ve+ze5FC0%gWraubb#xSq9ooy*u}$2~lcCp&qu?!&XSDWSR_J4+qOHvtRl zz_EE^{^|IwSUpHdznS^W-s}C2R=UL&Pn@KCZ)Eev?u8ZbPW~ZG75&?oXO9?L7QYz{ z0?td}FMWjWg2&sG;R;z<^lTpX0$rA4rt+=>O1T(2s-2bZ9>t68bRM7C zP5L7e@dFmzqEKu!>u$gZKXPDD`rX zQKbu7u31#s;^f!X2Fs#E6{C@Q^1hgcKRiJ*4scLvlNLWCL{Mp85d{`S{<{dh?s#If zV$a?e*N%QFI?J6QujnE02^goLoxDM0XtYeg_ zA+U$Cdmw>V^V$)!u#69PS!U@ZuZQ6&(o`eg5&hP{fEa}-bZ9XHoYch<#i>C-7~Fj9~%e^)%fcpa5oB*}V|%|W%^v?ktSz@fsqz&r$+FRReSwQgH+ z6mh%U<7h~bU>(czLr|F&uDOR~u)q9&aE;>A!zf^X z#LweR-mqwQ3{uioW1s~*hNvsCxrPNeuw1TW&r(9>pM43#X#&W(nHVeGnDS*Sz%tVH zMQ{+YI{^+-thuWCV^}Bfjpzue)iWd-xz>j6sL_A+TdeIM*m7QXb?bI(jI0cxXi1Do zYR$VO)dt;UKwC-Z8?b$PR2U~T?p@ffxDtF^(0-h7T`ARb5C*wp3RjecsV^U>HN#g3 z$1QQ%}T?uRTOru7{PV&wMz5N;m3 zb1BK8`=40L7NB zmcO*n33&BmUVStxDZTXW;+ImCyZ26S0_>P6q&J@wXBy{3fmGDg;~sLz30i$qv3_ zOFLBo$S4pA_T9b$D+w}nCv9)Nr>o1Hz+qz$xol97Z~d33s|tu59D4gw6h2S*!L!(9 zP<;X!CcN;3@UrW?YO5X$6T##|hxnx$Z;OKx zt_+=m?ohGu0h`kRX5|6kLzfuotswgGpuLib9 z&)z=0A!HPE!SI*eKtv!!Q+t;rUELA4x?3qOr;i9C*~X9#LnkBzP#l+=pky+hz|7*S zZT&%G((BRgQJ`b0U$!E}ee48%y~l2L2};B5j}%qga~6OsG5pvSH;*)CZ#TNQUT+F) zp*^a}m2VTtYcMS|1);Y#Yi(|5$s@I1?|r_zy!35$7u79c9(eu&S0%^ z%{wW@gD#f7vRMO$q-i@S!rc_bhhfW+U%)~YP6?y*& z%WRlB7HNnjFs^)?#t-7JiH5K=6Eh-NwaI>OvC2R;jgu4w`sVsNmnSt+GrYz8NKala zb%FLPf*@y|P9^jjc-%V$15(FZKJNBTlRYUsu5Wz2qo{fkkzN#FKWe^MNWxB}qOyOj zh}E;*0e|%5cK0WjHI)XAQ`?`kDasnaY^;m*ww>*5-nS@f%|K6g&xukl3p^H7uuA6I z+uGaDm-}$_R(>s9r>B+1aJ5Fw6Um>AOm-F-E}sxXbS=W%ZVrnGg(wZTcEuZkYCeYs z7#wTOfE+8jh>#ElCg#%0iiN4^?5SMcg)k8c43!j!Ba6;taqorvHtJ4%|F5fGw~nuG zZ18x!uTPBXj$AZ+V|!VWKxC=k8Heg<(P1ATuRR|0A8nHt3H%Xdrm!N+zd{4ABhYhp zb_Tu!W1}|O+XClkBw<2dUOtdeYUcn?B;bb!dOel5_T~}TIdALCdSz+b<3~}xnR(}o zEh972BOV6bi;d+pPC}-yNJxuylJ(Va0C~~g%5^c?8u7v@k|%t`G8@xPFrNA|0p0uY zXEmGvIGh6GHZgzwt%`G>3n=ID z8EO64UJ%wtYcu5v=_jsYhUGV8o)_n!qHpJGe(m0Mco`%>A0c&>7_Aj+WntN}V%ZQ8 z2!B9mU~qMaL?-)w*gr9EN$xKur2F?PvsRR!BnUaed}eOW3YgChACeLfLVQ^!2iN{}v9gG3e;8?_AG!J#!_8 z^JSa}Qoq#A>Yg2XGjeW4zfsz950D{uO(1yk3J6v?n)Lx*a3Y?)j<~ny6BP;U7#k4a zm56}pyB%;@0;AhcPEJ~yo8v#C09&iFMHc5uo)|KQCfmg?%bjW~Wx>>w35goM> za@f|^PaSXm7H4(`aIcr@OZp{XEePw&KOOG?(^rf)lI-vvFFNctLDcL0%V=aWMB3c{ zL8a?2v9_~9z@R=s0fF}08A@%OqE_^f44upBjB(Oi4@hAK31)q7N)TOZUL~XX)vu!I zc_j5Bgc4LyV1q+b7c&s%=72O1j8y04NbR0>^Q^nb&!4C}P>9RaJod-&F%S+QR@@)r z9W{Xxp8@D4UzMBK6~yVHAu8||AIrtk9t9+oqI1+>39`f-HrjosbqfC!6_$|a=1DKr zK*W&QRo_>EYnWjKHbpt^d>;h;Q2j6qoEe|s-jHlSe<6OMw6OU0nbaTgnj_ZMHaj$Y zd2B4`$Kxw6u9N#q-Nt&mWFo%uBwcO6SZ;P|M5Kg9Kl=TKqB9)`FmKlN-crfiTTx>r z8<*?Yq4u@PkxE+4Ua_x4_(9=Z?L~bBa|Nm&3aglH*U)fJSjcxm)Q&+@^Ix}+D*_yW zI#yV9VcfFT9Ozu`lbS91TfN+%txO|m=CP!}>@r&yd@OV}$CDqIu5yYNz3Yoq#Y;bu z-^-pwmxU>9+ZJjIAq!->xguL$$U;Y|w6(%I?;BEFY6vfrs*SB= zS-cUOeY!aaV#s726{ln8a@}9U|1Dh-qJSY*TD}@kYcG_a>Jpad((oaFWz#VoA9sm& zfdC0Y0M7#<*jseU(o5CWMQ)Pa7q=TgjV2=QQ0*=;R{2gTKlCFR_`NR(pCNkSu?{gD z&8G7_y9uEH3c&?|a~1s(C@9_FlsXgn74=|?e6r#w z|0Jb+Kqq6)D_%>73oz!f@Omq^d4<(7W7y*dBND;QN(uw61MS*3mYKuz#7%N9Gm8FuU!~tTrMEw3iRS3``w9@3GJj?QBrt&pI) zS$1po5&A|iYN)qn4gN&4gh9+u_Fx=%hn zr5X?{ERD_jiG2kpN7B^lI>@O+tgm0}zz=8F#Fm64 z^tYI84X0}AYkE*TPk84b;~}G9INS~kJ9#;vuw0ajxAL6t2?BhuBk_7OWUEbz;g(>X z|HGYEbm%=@%d=qdf}n(j%5w8E^g0dh%nq>diot!O+} zJhG!!E=S3o^ZgM_G*bV`zEthz>8%{u;d*E&4?TYThu5jUzH4_VZ7WG)}#9 z&2a-H0YhXOthm2@05IPKR6|dG`f7Id=1?h586L<>H4KcW0lIO=>nAO(@_|PuK!6Q} z4h3}k)j*^$yFF+e9N<_sp6H*>Q}*nKB;3FQU?JdW(o3qc&hWdb$X=D|PoT655wdmY z$(KG{KxnY(>HN+K=6!uHzL2jql5lLEIq!Q@SfOKZC}(QkJq|w*nd9vRFgO6jq?BM+ zMWg>Hz8_fXH=(lo@)@vfnwoa@fcb%o>!kt~h<`C*-013PYr5vOd_C-tz=gTKkgxQN z+qr8vg#L(2f`27j#~+t75}JPCXA9HnKoX_iCMX~Ph1WKwCK^`|7lDU+w$052fRI;d z{Q%HNb=f}&*%9(JhV#ag;UAFov07028Ct%ze;2tN<9`Kf13G2y#ukW zzsAVq(Ma=AHyb;}H%}!-$cV4nDk;=ulT1Pemd^H{US2l6<6%iV)7?7E`5ZObapqW6 zn|3T}Tl|C1?TyiPPVFnRrvqiI6>&6`=K!_2-QOHNi3XCUvNF_qAoTXS^liXuWxjA? zCO*LS4s@<}$R2umq9g=dN54%lEEQyp>a)Zav8e^IRJKLr%tMY6+PyrSBAr`@oPF|i zL+!gBrF=bx2z!8_5E^Q<-%36CgpMwUZSVyyN$?FD@_dX=)sST}Eut?aZ_{luuC-mn z#BKVjqDyFA^85DC8ZN=v(?3xV627cI;RqZ1h6}L3d|x+sNvIYqy`o5O-D0$A2`}dE zQeb!D;%(k;?|$RPC|S(cyxn{^gAH3K9ScxPK`g(j3Iymgla?vV^Kt2N>eo+4iKO+p z)wy_TcJ#-cb)jCPZMjQ1fG|4)Lbs8GgP*&;M@_XL&HMu7+^`Q@h?DAWh%?nr?W1rN zt2C6AUC~*n7A?eVVJc?N@WW=>5Hjj_Zc};HjByc(v z{%!npb7C2K)eZE2M@D4A!cw(TN*wkxu+JDM>V0b^fY;phs|{`u$43`aR71090(gsf ze7UHC=PzbRDWJ;$2r<=e9|DC7GM74k%usl{n==0wr&LrbOb`}d@>y&dJwx1MMW+{A zDdEng`oS2VF*?{Jt$D65~8=tbL+Kes&;SGYv&eV)IY#CHHYpHh1u@Hq^(3P`noK4$>M&Emk|;7FAI5+Yi#sBkh$NBB12N^X`oE0buG2AO}Qt)1_a$ z{%H``CYj*#K_9|!R@e)fw8q{#2$YEcC2HK4>2~<3*TPj0B`=StNEla(eYeomP#vRT zI5U{a9Q4!F-pXbh1){5K%u=CWjw`s5QXFXPLU|rgmkoM74feb6?ETb}sa@Qu_`0z0 z3DhpF?rPncnL@pOCj+?aP67lb^*luEXi1B_fkF9`ahYND#tMc5?~NrzOkR0sd&?<_ z`{?R7_n8XJaTnx4Lz_Y_fuaT-AYJZrQQ~3)sacDq<6vOiUQPF0CcVYGb#4BNr6zYL z-JAs5biwyP>#-1#NCX8lrs014Z<)r57HWnx z%uCIt`o{E8aN^N1LOw?a_}EPAgBd|2A~66`OUA_ohC&fsX?5I#i8bz0fhwU-$SAVJN&HdR^(+0oQF?pyxb@0wwRd88oqoH^d{N? z;LH_r2+*a5no2BHkQF?FJhA#bR@;oyrQfQwI7MlfTD=h>Fa(&&m^QmJ%utN|9 zFa%TRGy1z6SIXrAUS;JkrY^`)ltzNMZk)Q|7sot;oh^c;z!}G(RRmlN*DAiS_)*{-webkit-box-flex:0;-moz-box-flex:0;box-flex:0;flex:none} +.vbox{display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;display:flex;flex-direction:column;align-items:stretch} +.vbox>*{-webkit-box-flex:0;-moz-box-flex:0;box-flex:0;flex:none} +.reverse{-webkit-box-direction:reverse;-moz-box-direction:reverse;box-direction:reverse;flex-direction:row-reverse} +.box-flex0{-webkit-box-flex:0;-moz-box-flex:0;box-flex:0;flex:none;width:auto} +.box-flex1{-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;flex:1} +.box-flex{-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;flex:1} +.box-flex2{-webkit-box-flex:2;-moz-box-flex:2;box-flex:2;flex:2} +.box-group1{-webkit-box-flex-group:1;-moz-box-flex-group:1;box-flex-group:1} +.box-group2{-webkit-box-flex-group:2;-moz-box-flex-group:2;box-flex-group:2} +.start{-webkit-box-pack:start;-moz-box-pack:start;box-pack:start;justify-content:flex-start} +.end{-webkit-box-pack:end;-moz-box-pack:end;box-pack:end;justify-content:flex-end} +.center{-webkit-box-pack:center;-moz-box-pack:center;box-pack:center;justify-content:center} +.align-start{-webkit-box-align:start;-moz-box-align:start;box-align:start;align-items:flex-start} +.align-end{-webkit-box-align:end;-moz-box-align:end;box-align:end;align-items:flex-end} +.align-center{-webkit-box-align:center;-moz-box-align:center;box-align:center;align-items:center} +div.error{margin:2em;text-align:center} +div.error>h1{font-size:500%;line-height:normal} +div.error>p{font-size:200%;line-height:normal} +div.traceback-wrapper{text-align:left;max-width:800px;margin:auto} +.center-nav{display:inline-block;margin-bottom:-4px} +.alternate_upload{background-color:none;display:inline} +.alternate_upload.form{padding:0;margin:0} +.alternate_upload input.fileinput{background-color:#f00;position:relative;opacity:0;z-index:2;width:295px;margin-left:163px;cursor:pointer;height:26px} +ul#tabs{margin-bottom:4px} +ul#tabs a{padding-top:4px;padding-bottom:4px} +ul.breadcrumb a:focus,ul.breadcrumb a:hover{text-decoration:none} +ul.breadcrumb i.icon-home{font-size:16px;margin-right:4px} +ul.breadcrumb span{color:#5e5e5e} +.list_toolbar{padding:4px 0 4px 0} +.list_toolbar [class*="span"]{min-height:26px} +.list_header{font-weight:bold} +.list_container{margin-top:4px;margin-bottom:20px;border:1px solid #ababab;border-radius:4px} +.list_container>div{border-bottom:1px solid #ababab}.list_container>div:hover .list-item{background-color:#f00} +.list_container>div:last-child{border:none} +.list_item:hover .list_item{background-color:#ddd} +.list_item a{text-decoration:none} +.list_header>div,.list_item>div{padding-top:4px;padding-bottom:4px;padding-left:7px;padding-right:7px;height:22px;line-height:22px} +.item_name{line-height:22px;height:26px} +.item_icon{font-size:14px;color:#5e5e5e;margin-right:7px} +.item_buttons{line-height:1em} +.toolbar_info{height:26px;line-height:26px} +input.nbname_input,input.engine_num_input{padding-top:3px;padding-bottom:3px;height:14px;line-height:14px;margin:0} +input.engine_num_input{width:60px} +.highlight_text{color:#00f} +#project_name>.breadcrumb{padding:0;margin-bottom:0;background-color:transparent;font-weight:bold} +.ansibold{font-weight:bold} +.ansiblack{color:#000} +.ansired{color:#8b0000} +.ansigreen{color:#006400} +.ansiyellow{color:#a52a2a} +.ansiblue{color:#00008b} +.ansipurple{color:#9400d3} +.ansicyan{color:#4682b4} +.ansigray{color:#808080} +.ansibgblack{background-color:#000} +.ansibgred{background-color:#f00} +.ansibggreen{background-color:#008000} +.ansibgyellow{background-color:#ff0} +.ansibgblue{background-color:#00f} +.ansibgpurple{background-color:#f0f} +.ansibgcyan{background-color:#0ff} +.ansibggray{background-color:#808080} +div.cell{border:1px solid transparent;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;display:flex;flex-direction:column;align-items:stretch}div.cell.selected{border-radius:4px;border:thin #ababab solid} +div.cell.edit_mode{border-radius:4px;border:thin #008000 solid} +div.cell{width:100%;padding:5px 5px 5px 0;margin:0;outline:none} +div.prompt{min-width:11ex;padding:.4em;margin:0;font-family:monospace;text-align:right;line-height:1.21429em} +div.inner_cell{display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;display:flex;flex-direction:column;align-items:stretch;-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;flex:1} +div.input_area{border:1px solid #cfcfcf;border-radius:4px;background:#f7f7f7} +div.prompt:empty{padding-top:0;padding-bottom:0} +div.input{page-break-inside:avoid;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch} +div.input_prompt{color:#000080;border-top:1px solid transparent} +div.input_area>div.highlight{margin:.4em;border:none;padding:0;background-color:transparent} +div.input_area>div.highlight>pre{margin:0;border:0;padding:0;background-color:transparent;font-size:14px;line-height:1.21429em} +.CodeMirror{line-height:1.21429em;height:auto;background:none;} +.CodeMirror-scroll{overflow-y:hidden;overflow-x:auto} +@-moz-document url-prefix(){.CodeMirror-scroll{overflow-x:hidden}}.CodeMirror-lines{padding:.4em} +.CodeMirror-linenumber{padding:0 8px 0 4px} +.CodeMirror-gutters{border-bottom-left-radius:4px;border-top-left-radius:4px} +.CodeMirror pre{padding:0;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0} +pre code{display:block;padding:.5em} +.highlight-base,pre code,pre .subst,pre .tag .title,pre .lisp .title,pre .clojure .built_in,pre .nginx .title{color:#000} +.highlight-string,pre .string,pre .constant,pre .parent,pre .tag .value,pre .rules .value,pre .rules .value .number,pre .preprocessor,pre .ruby .symbol,pre .ruby .symbol .string,pre .aggregate,pre .template_tag,pre .django .variable,pre .smalltalk .class,pre .addition,pre .flow,pre .stream,pre .bash .variable,pre .apache .tag,pre .apache .cbracket,pre .tex .command,pre .tex .special,pre .erlang_repl .function_or_atom,pre .markdown .header{color:#ba2121} +.highlight-comment,pre .comment,pre .annotation,pre .template_comment,pre .diff .header,pre .chunk,pre .markdown .blockquote{color:#408080;font-style:italic} +.highlight-number,pre .number,pre .date,pre .regexp,pre .literal,pre .smalltalk .symbol,pre .smalltalk .char,pre .go .constant,pre .change,pre .markdown .bullet,pre .markdown .link_url{color:#080} +pre .label,pre .javadoc,pre .ruby .string,pre .decorator,pre .filter .argument,pre .localvars,pre .array,pre .attr_selector,pre .important,pre .pseudo,pre .pi,pre .doctype,pre .deletion,pre .envvar,pre .shebang,pre .apache .sqbracket,pre .nginx .built_in,pre .tex .formula,pre .erlang_repl .reserved,pre .prompt,pre .markdown .link_label,pre .vhdl .attribute,pre .clojure .attribute,pre .coffeescript .property{color:#88f} +.highlight-keyword,pre .keyword,pre .id,pre .phpdoc,pre .aggregate,pre .css .tag,pre .javadoctag,pre .phpdoc,pre .yardoctag,pre .smalltalk .class,pre .winutils,pre .bash .variable,pre .apache .tag,pre .go .typename,pre .tex .command,pre .markdown .strong,pre .request,pre .status{color:#008000;font-weight:bold} +.highlight-builtin,pre .built_in{color:#008000} +pre .markdown .emphasis{font-style:italic} +pre .nginx .built_in{font-weight:normal} +pre .coffeescript .javascript,pre .javascript .xml,pre .tex .formula,pre .xml .javascript,pre .xml .vbscript,pre .xml .css,pre .xml .cdata{opacity:.5} +.cm-s-ipython span.cm-variable{color:#000} +.cm-s-ipython span.cm-keyword{color:#008000;font-weight:bold} +.cm-s-ipython span.cm-number{color:#080} +.cm-s-ipython span.cm-comment{color:#408080;font-style:italic} +.cm-s-ipython span.cm-string{color:#ba2121} +.cm-s-ipython span.cm-builtin{color:#008000} +.cm-s-ipython span.cm-error{color:#f00} +.cm-s-ipython span.cm-operator{color:#a2f;font-weight:bold} +.cm-s-ipython span.cm-meta{color:#a2f} +.cm-s-ipython span.cm-tab{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=);background-position:right;background-repeat:no-repeat} +div.output_wrapper{position:relative;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;display:flex;flex-direction:column;align-items:stretch} +div.output_scroll{height:24em;width:100%;overflow:auto;border-radius:4px;-webkit-box-shadow:inset 0 2px 8px rgba(0,0,0,0.8);-moz-box-shadow:inset 0 2px 8px rgba(0,0,0,0.8);box-shadow:inset 0 2px 8px rgba(0,0,0,0.8);display:block} +div.output_collapsed{margin:0;padding:0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;display:flex;flex-direction:column;align-items:stretch} +div.out_prompt_overlay{height:100%;padding:0 .4em;position:absolute;border-radius:4px} +div.out_prompt_overlay:hover{-webkit-box-shadow:inset 0 0 1px #000;-moz-box-shadow:inset 0 0 1px #000;box-shadow:inset 0 0 1px #000;background:rgba(240,240,240,0.5)} +div.output_prompt{color:#8b0000} +div.output_area{padding:0;page-break-inside:avoid;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch}div.output_area .MathJax_Display{text-align:left !important} +div.output_area .rendered_html table{margin-left:0;margin-right:0} +div.output_area .rendered_html img{margin-left:0;margin-right:0} +.output{display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;display:flex;flex-direction:column;align-items:stretch} +div.output_area pre{font-family:monospace;margin:0;padding:0;border:0;font-size:100%;vertical-align:baseline;color:#000;background-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;line-height:inherit} +div.output_subarea{padding:.4em .4em 0 .4em;-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;flex:1} +div.output_text{text-align:left;color:#000;font-family:monospace;line-height:1.21429em} +div.output_stderr{background:#fdd;} +div.output_latex{text-align:left} +div.output_javascript:empty{padding:0} +.js-error{color:#8b0000} +div.raw_input{padding-top:0;padding-bottom:0;height:1em;line-height:1em;font-family:monospace} +span.input_prompt{font-family:inherit} +input.raw_input{font-family:inherit;font-size:inherit;color:inherit;width:auto;margin:-2px 0 0 1px;padding-left:1px;padding-top:2px;height:1em} +p.p-space{margin-bottom:10px} +.rendered_html{color:#000;}.rendered_html em{font-style:italic} +.rendered_html strong{font-weight:bold} +.rendered_html u{text-decoration:underline} +.rendered_html :link{text-decoration:underline} +.rendered_html :visited{text-decoration:underline} +.rendered_html h1{font-size:185.7%;margin:1.08em 0 0 0;font-weight:bold;line-height:1} +.rendered_html h2{font-size:157.1%;margin:1.27em 0 0 0;font-weight:bold;line-height:1} +.rendered_html h3{font-size:128.6%;margin:1.55em 0 0 0;font-weight:bold;line-height:1} +.rendered_html h4{font-size:100%;margin:2em 0 0 0;font-weight:bold;line-height:1} +.rendered_html h5{font-size:100%;margin:2em 0 0 0;font-weight:bold;line-height:1;font-style:italic} +.rendered_html h6{font-size:100%;margin:2em 0 0 0;font-weight:bold;line-height:1;font-style:italic} +.rendered_html h1:first-child{margin-top:.538em} +.rendered_html h2:first-child{margin-top:.636em} +.rendered_html h3:first-child{margin-top:.777em} +.rendered_html h4:first-child{margin-top:1em} +.rendered_html h5:first-child{margin-top:1em} +.rendered_html h6:first-child{margin-top:1em} +.rendered_html ul{list-style:disc;margin:0 2em} +.rendered_html ul ul{list-style:square;margin:0 2em} +.rendered_html ul ul ul{list-style:circle;margin:0 2em} +.rendered_html ol{list-style:decimal;margin:0 2em} +.rendered_html ol ol{list-style:upper-alpha;margin:0 2em} +.rendered_html ol ol ol{list-style:lower-alpha;margin:0 2em} +.rendered_html ol ol ol ol{list-style:lower-roman;margin:0 2em} +.rendered_html ol ol ol ol ol{list-style:decimal;margin:0 2em} +.rendered_html *+ul{margin-top:1em} +.rendered_html *+ol{margin-top:1em} +.rendered_html hr{color:#000;background-color:#000} +.rendered_html pre{margin:1em 2em} +.rendered_html pre,.rendered_html code{border:0;background-color:#fff;color:#000;font-size:100%;padding:0} +.rendered_html blockquote{margin:1em 2em} +.rendered_html table{margin-left:auto;margin-right:auto;border:1px solid #000;border-collapse:collapse} +.rendered_html tr,.rendered_html th,.rendered_html td{border:1px solid #000;border-collapse:collapse;margin:1em 2em} +.rendered_html td,.rendered_html th{text-align:left;vertical-align:middle;padding:4px} +.rendered_html th{font-weight:bold} +.rendered_html *+table{margin-top:1em} +.rendered_html p{text-align:justify} +.rendered_html *+p{margin-top:1em} +.rendered_html img{display:block;margin-left:auto;margin-right:auto} +.rendered_html *+img{margin-top:1em} +div.text_cell{padding:5px 5px 5px 0;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch} +div.text_cell_render{outline:none;resize:none;width:inherit;border-style:none;padding:.5em .5em .5em .4em;color:#000} +a.anchor-link:link{text-decoration:none;padding:0 20px;visibility:hidden} +h1:hover .anchor-link,h2:hover .anchor-link,h3:hover .anchor-link,h4:hover .anchor-link,h5:hover .anchor-link,h6:hover .anchor-link{visibility:visible} +div.cell.text_cell.rendered{padding:0} +.widget-area{page-break-inside:avoid;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch}.widget-area .widget-subarea{padding:.44em .4em .4em 1px;margin-left:6px;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;display:flex;flex-direction:column;align-items:stretch;-webkit-box-flex:2;-moz-box-flex:2;box-flex:2;flex:2;-webkit-box-align:start;-moz-box-align:start;box-align:start;align-items:flex-start} +.widget-hlabel{min-width:10ex;padding-right:8px;padding-top:3px;text-align:right;vertical-align:text-top} +.widget-vlabel{padding-bottom:5px;text-align:center;vertical-align:text-bottom} +.widget-hreadout{padding-left:8px;padding-top:3px;text-align:left;vertical-align:text-top} +.widget-vreadout{padding-top:5px;text-align:center;vertical-align:text-top} +.slide-track{border:1px solid #ccc;background:#fff;border-radius:4px;} +.widget-hslider{padding-left:8px;padding-right:5px;overflow:visible;width:348px;height:5px;max-height:5px;margin-top:11px;margin-bottom:10px;border:1px solid #ccc;background:#fff;border-radius:4px;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch}.widget-hslider .ui-slider{border:0 !important;background:none !important;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch;-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;flex:1}.widget-hslider .ui-slider .ui-slider-handle{width:14px !important;height:28px !important;margin-top:-8px !important} +.widget-vslider{padding-bottom:8px;overflow:visible;width:5px;max-width:5px;height:250px;margin-left:12px;border:1px solid #ccc;background:#fff;border-radius:4px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;display:flex;flex-direction:column;align-items:stretch}.widget-vslider .ui-slider{border:0 !important;background:none !important;margin-left:-4px;margin-top:5px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;display:flex;flex-direction:column;align-items:stretch;-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;flex:1}.widget-vslider .ui-slider .ui-slider-handle{width:28px !important;height:14px !important;margin-left:-9px} +.widget-text{width:350px;margin:0 !important} +.widget-listbox{width:364px;margin-bottom:0} +.widget-numeric-text{width:150px;margin:0 !important} +.widget-progress{width:363px}.widget-progress .bar{-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none} +.widget-combo-btn{min-width:138px;} +.widget-box{margin:5px;-webkit-box-pack:start;-moz-box-pack:start;box-pack:start;justify-content:flex-start;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;-webkit-box-align:start;-moz-box-align:start;box-align:start;align-items:flex-start} +.widget-hbox{margin:5px;-webkit-box-pack:start;-moz-box-pack:start;box-pack:start;justify-content:flex-start;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;-webkit-box-align:start;-moz-box-align:start;box-align:start;align-items:flex-start;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch} +.widget-hbox-single{margin:5px;-webkit-box-pack:start;-moz-box-pack:start;box-pack:start;justify-content:flex-start;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;-webkit-box-align:start;-moz-box-align:start;box-align:start;align-items:flex-start;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch;height:30px} +.widget-vbox{margin:5px;-webkit-box-pack:start;-moz-box-pack:start;box-pack:start;justify-content:flex-start;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;-webkit-box-align:start;-moz-box-align:start;box-align:start;align-items:flex-start;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;display:flex;flex-direction:column;align-items:stretch} +.widget-vbox-single{margin:5px;-webkit-box-pack:start;-moz-box-pack:start;box-pack:start;justify-content:flex-start;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;-webkit-box-align:start;-moz-box-align:start;box-align:start;align-items:flex-start;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;display:flex;flex-direction:column;align-items:stretch;width:30px} +.widget-modal{overflow:hidden;position:absolute !important;top:0;left:0;margin-left:0 !important} +.widget-modal-body{max-height:none !important} +.widget-container{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;-webkit-box-align:start;-moz-box-align:start;box-align:start;align-items:flex-start} +.widget-radio-box{display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;display:flex;flex-direction:column;align-items:stretch;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding-top:4px} +.docked-widget-modal{overflow:hidden;position:relative !important;top:0 !important;left:0 !important;margin-left:0 !important} diff --git a/docs/source/_static/loading.gif b/docs/source/_static/loading.gif new file mode 100755 index 0000000000000000000000000000000000000000..f864d5fd38b7466c76b5a36dc0e3e9455c0126e2 GIT binary patch literal 2767 zcmeH``%_bA0*1eHPVNawNVtR;Fkp-nQj8edfS`v<5L7TgR6wi;WfgH-0}4fE+c_uU zB6tf6auF}FAcDdgg|bMU&H)LR5jARM!8$tuwd$nHqS?K-=JNZ+yGvz=Iegxp{+qWGZ9j{-%9vvN>n3$NJp6==CAqYaF(LfM1Z{EEA{{Gt9 z+Ba|B7z_sR+xabl|E~mm-*OXmhLq??y)HONjX>1ze1D?RIn=G1`RR-%fb}zgSh6^a z(}Zw20U1L^Cs9UcyJfc+al#}J2xVlYUoR{`gd&QDxAb1w4>I~5gc?ccq(G+T!I;H};U_uyHR0@hr>Qk1P1=6fvUBhR zb|&^^cEQtu&W}=-=YR7o5UI)AD*~%J7bkVd5`xrdw{bHm;|Bf^_|FG$9l}`ruhnVF zO%=6X*I#yro*pmfB;-A0cVjz73Qy)`oa=df_3Bx6!M3TNALf9BwI*di`jhdovR(I= zFT31zui1Xw??+Ym-lWNq=V6~8tt012$@*hy3So0QNJ#eIJ4Yh{qJ+aTY>ng8W1p4BrwB_>i7AY-xmGrA}hAeq`aX(yx~=c&|=$w&*&PpKd;G@@0oXK@D0x=;tyY&Eb|HKPsM z71v`PO)na3pfO*xUD8Z|CQju)c+RSAH=5V^4vb9Q2JwHwt|-INt|!nD?AlRxF5ZT8 zaA9~hGb$~rMhQh_0+31$tkzyLi>X3c7>F!|Jyn`+5{LG=E`sIQbHA8!=`uday6D6Y zNtVL?j^`6A%UuwO!`}j#s~H?w=P<5}Z2)*PPx|5q$MM+1K6_d_cie9JVArbrB2sRy zOl**1Mc+|zLM>munG#O|##RApuODr^1+pL-?SHX+D6Dz_@%-Oo(fM&hHYZ-jWU5jf z&nBYG;>F6&Y`veoLdZ@0WyrDsuXOP)9g*C`A(+R`Ryc2+9w_DJNaf@Dzg?~N{uI_} zjV(!yygvrGv#KF*Mt{6H^v1Ve=hQyF2^E~bd#&iZg;(%dS^nM;oGSF1Y^&rY}Ian zFrp%SBGPyN{Z?t%Mo#!qgLQ2)k{>KAv?=zezKN*qPRf>^4QjcWgyxiC}7Vb6vGrBLR(1J&B%*gb{`!Jljb^2%jB$ zFBNUHANC6Q?0~M}cVtgk_;_DAB-BE?2dP z(C9OIXza3Ao-@UyqX%`5cjg#cHl!uHq;&?~JO{eE+A2KSSD)s8v&CiV$kV$A=DG@i z;6JY7z*8oPdj@bbJQoTAENW#ls(ucbGA#yhN>zbWqBTbLl>rGqOAY+` z=psSt8VQE=9+X8^$l@oeDzRvja79ry3nvLcOR7+)bIFyJVoz4}URM-47_u>V zY*^e(o`?|l++*Y0uQ#&dKapW1o?J{jx+*_gKV^cW+W87KI7hZ5viXv$$=1IR^Z~yA XWBrHU7iSEP8X8hQyAJO{V6g1pwSv80 literal 0 HcmV?d00001 diff --git a/docs/source/_static/minus.gif b/docs/source/_static/minus.gif new file mode 100644 index 0000000000000000000000000000000000000000..154e45a5ee2baa0bd114ee01417a3c595e13a7b4 GIT binary patch literal 87 zcmZ?wbhEHb6lM@+n8?iV|NsAnh6V-(hIjAYDgI<(WME)s&;fFRvce1uOd50gSDt>$ rpUk}_OuXTqLc+dE;T4@eYD+S|Pkc6Mr|u7}Yr0Q=o%`<0$Y2cs-bNsJ literal 0 HcmV?d00001 diff --git a/docs/source/_static/mktree.css b/docs/source/_static/mktree.css new file mode 100644 index 0000000..6bd45a7 --- /dev/null +++ b/docs/source/_static/mktree.css @@ -0,0 +1,23 @@ +/* Put this inside a @media qualifier so Netscape 4 ignores it */ +@media screen, print { + /* Turn off list bullets */ + ul.mktree li { list-style: none; } + /* Control how "spaced out" the tree is */ + ul.mktree, ul.mktree ul , ul.mktree li { margin-left:10px; padding:0px; } + /* Provide space for our own "bullet" inside the LI */ + ul.mktree li .bullet { padding-left: 15px; } + /* Show "bullets" in the links, depending on the class of the LI that the link's in */ + ul.mktree li.liOpen .bullet { cursor: pointer; background: url(minus.gif) center left no-repeat; } + ul.mktree li.liClosed .bullet { cursor: pointer; background: url(plus.gif) center left no-repeat; } + ul.mktree li.liBullet .bullet { cursor: default; background: url(bullet.gif) center left no-repeat; } + /* Sublists are visible or not based on class of parent LI */ + ul.mktree li.liOpen ul { display: block; } + ul.mktree li.liClosed ul { display: none; } + + /* Format menu items differently depending on what level of the tree they are in */ + /* Uncomment this if you want your fonts to decrease in size the deeper they are in the tree */ +/* + ul.mktree li ul li { font-size: 90% } +*/ + +} diff --git a/docs/source/_static/mktree.js b/docs/source/_static/mktree.js new file mode 100644 index 0000000..299cb2a --- /dev/null +++ b/docs/source/_static/mktree.js @@ -0,0 +1,168 @@ +/** + * Copyright (c)2005-2009 Matt Kruse (javascripttoolbox.com) + * + * Dual licensed under the MIT and GPL licenses. + * This basically means you can use this code however you want for + * free, but don't claim to have written it yourself! + * Donations always accepted: http://www.JavascriptToolbox.com/donate/ + * + * Please do not link to the .js files on javascripttoolbox.com from + * your site. Copy the files locally to your server instead. + * + */ +/* +This code is inspired by and extended from Stuart Langridge's aqlist code: + http://www.kryogenix.org/code/browser/aqlists/ + Stuart Langridge, November 2002 + sil@kryogenix.org + Inspired by Aaron's labels.js (http://youngpup.net/demos/labels/) + and Dave Lindquist's menuDropDown.js (http://www.gazingus.org/dhtml/?id=109) +*/ + +// Automatically attach a listener to the window onload, to convert the trees +addEvent(window,"load",convertTrees); + +// Utility function to add an event listener +function addEvent(o,e,f){ + if (o.addEventListener){ o.addEventListener(e,f,false); return true; } + else if (o.attachEvent){ return o.attachEvent("on"+e,f); } + else { return false; } +} + +// utility function to set a global variable if it is not already set +function setDefault(name,val) { + if (typeof(window[name])=="undefined" || window[name]==null) { + window[name]=val; + } +} + +// Full expands a tree with a given ID +function expandTree(treeId) { + var ul = document.getElementById(treeId); + if (ul == null) { return false; } + expandCollapseList(ul,nodeOpenClass); +} + +// Fully collapses a tree with a given ID +function collapseTree(treeId) { + var ul = document.getElementById(treeId); + if (ul == null) { return false; } + expandCollapseList(ul,nodeClosedClass); +} + +// Expands enough nodes to expose an LI with a given ID +function expandToItem(treeId,itemId) { + var ul = document.getElementById(treeId); + if (ul == null) { return false; } + var ret = expandCollapseList(ul,nodeOpenClass,itemId); + if (ret) { + var o = document.getElementById(itemId); + if (o.scrollIntoView) { + o.scrollIntoView(false); + } + } +} + +// Performs 3 functions: +// a) Expand all nodes +// b) Collapse all nodes +// c) Expand all nodes to reach a certain ID +function expandCollapseList(ul,cName,itemId) { + if (!ul.childNodes || ul.childNodes.length==0) { return false; } + // Iterate LIs + for (var itemi=0;itemijLSDt>$ tpUk}_OuXTq!UNr$dn{e^8y4MN-g@gq%39AN{j|tS=f3~5*I;0<1^_HKAv6F0 literal 0 HcmV?d00001 diff --git a/docs/source/_static/scripts.js b/docs/source/_static/scripts.js new file mode 100644 index 0000000..3b3ac55 --- /dev/null +++ b/docs/source/_static/scripts.js @@ -0,0 +1,52 @@ +function cleanUpText(codebox){ + /// Not currently used + /// Strips a whole IPython session of input and output prompts + //escape quotation marks + codebox = codebox.replace(/"/g, "\'"); + + // newlines + codebox = codebox.replace(/[\r\n|\r|\n]$/g, ""); // remove at end + codebox = codebox.replace(/[\r\n|\r|\n]+/g, "\\n"); + // prompts + codebox = codebox.replace(/In \[\d+\]: /g, ""); + codebox = codebox.replace(/Out \[\d+\]: /g, ""); + +return codebox; +} + +function htmlescape(text){ + return (text.replace(/&/g, "&") + .replace(//g, ">") + .replace(/"/g, """) + .replace(/'/g, "'")) +} + +function scrapeText(codebox){ + /// Returns input lines cleaned of prompt1 and prompt2 + var lines = codebox.split('\n'); + var newlines = new Array(); + $.each(lines, function() { + if (this.match(/^In \[\d+]: /)){ + newlines.push(this.replace(/^(\s)*In \[\d+]: /,"")); + } + else if (this.match(/^(\s)*\.+:/)){ + newlines.push(this.replace(/^(\s)*\.+: /,"")); + } + + } + ); + return newlines.join('\\n'); +} + +$(document).ready( + function() { + // grab all code boxes + var ipythoncode = $(".highlight-ipython"); + $.each(ipythoncode, function() { + var codebox = scrapeText($(this).text()); + // give them a facebox pop-up with plain text code + $(this).append('View Code'); + $(this,"textarea").select(); + }); +}); diff --git a/docs/source/_templates/autosummary/class.rst b/docs/source/_templates/autosummary/class.rst new file mode 100644 index 0000000..24b3cd3 --- /dev/null +++ b/docs/source/_templates/autosummary/class.rst @@ -0,0 +1,32 @@ +{{ fullname }} +{{ underline }} + +.. currentmodule:: {{ module }} + +.. autoclass:: {{ objname }} + + {% block methods %} + + {% if methods %} + .. rubric:: Methods + + .. autosummary:: + :toctree: + {% for item in methods %} + {% if item != '__init__' %} + ~{{ name }}.{{ item }} + {% endif %} + {%- endfor %} + {% endif %} + {% endblock %} + + {% block attributes %} + {% if attributes %} + .. rubric:: Attributes + + .. autosummary:: + {% for item in attributes %} + ~{{ name }}.{{ item }} + {%- endfor %} + {% endif %} + {% endblock %} diff --git a/docs/source/_templates/autosummary/glmfamilies.rst b/docs/source/_templates/autosummary/glmfamilies.rst new file mode 100644 index 0000000..9b22bbd --- /dev/null +++ b/docs/source/_templates/autosummary/glmfamilies.rst @@ -0,0 +1,21 @@ +{{ fullname }} +{{ underline }} + +.. currentmodule:: {{ module }} + +.. autoclass:: {{ objname }} + + {% block methods %} + + {% if methods %} + .. rubric:: Methods + + .. autosummary:: + :toctree: + {% for item in methods %} + {% if item != '__init__' %} + ~{{ name }}.{{ item }} + {% endif %} + {%- endfor %} + {% endif %} + {% endblock %} diff --git a/docs/source/about.rst b/docs/source/about.rst new file mode 100644 index 0000000..907c346 --- /dev/null +++ b/docs/source/about.rst @@ -0,0 +1,57 @@ +.. currentmodule:: statsmodels + +***************** +About Statsmodels +***************** + +Background +---------- + +The ``models`` module of ``scipy.stats`` was originally written by Jonathan +Taylor. For some time it was part of scipy but was later removed. During +the Google Summer of Code 2009, ``statsmodels`` was corrected, tested, +improved and released as a new package. Since then, the statsmodels +development team has continued to add new models, plotting tools, and statistical methods. + +Testing +------- + +Most results have been verified with at least one other statistical package: +R, Stata or SAS. The guiding principal for the initial rewrite and for +continued development is that all numbers have to be verified. Some +statistical methods are tested with Monte Carlo studies. While we strive to +follow this test driven approach, there is no guarantee that the code is +bug-free and always works. Some auxiliary function are still insufficiently +tested, some edge cases might not be correctly taken into account, and the +possibility of numerical problems is inherent to many of the statistical +models. We especially appreciate any help and reports for these kind of +problems so we can keep improving the existing models. + +Code Stability +~~~~~~~~~~~~~~ + +The existing models are mostly settled in their user interface and we do not +expect many large changes going forward. For the existing code, although +there is no guarantee yet on API stability, we have long deprecation periods +in all but very special cases, and we try to keep changes that require +adjustments by existing users to a minimal level. For newer models we might +adjust the user interface as we gain more experience and obtain feedback. +These changes will always be noted in our release notes available in the +documentation. + +Financial Support +----------------- + +We are grateful for the financial support that we obtained for the +development of statsmodels: + + Google `www.google.com `_ : Google Summer of Code + (GSOC) 2009-2013. + + AQR `www.aqr.com `_ : financial sponsor for the work on + Vector Autoregressive Models (VAR) by Wes McKinney + +We would also like to thank our hosting providers, `github +`_ for the public code repository, `github.io +`_ for hosting our documentation and `python.org +`_ for making our downloads available on PyPi. diff --git a/docs/source/anova.rst b/docs/source/anova.rst new file mode 100644 index 0000000..670c038 --- /dev/null +++ b/docs/source/anova.rst @@ -0,0 +1,39 @@ +.. currentmodule:: statsmodels.stats.anova + +.. _anova: + +ANOVA +===== + +Analysis of Variance models + +Examples +-------- + +.. ipython:: python + + import statsmodels.api as sm + from statsmodels.formula.api import ols + + moore = sm.datasets.get_rdataset("Moore", "car", + cache=True) # load data + data = moore.data + data = data.rename(columns={"partner.status": + "partner_status"}) # make name pythonic + moore_lm = ols('conformity ~ C(fcategory, Sum)*C(partner_status, Sum)', + data=data).fit() + + table = sm.stats.anova_lm(moore_lm, typ=2) # Type 2 ANOVA DataFrame + print(table) + +A more detailed example can be found here: + +* `ANOVA `__ + +Module Reference +---------------- + +.. autosummary:: + :toctree: generated/ + + anova_lm diff --git a/docs/source/conf.py b/docs/source/conf.py new file mode 100644 index 0000000..02d63e3 --- /dev/null +++ b/docs/source/conf.py @@ -0,0 +1,321 @@ +# -*- coding: utf-8 -*- +# +# statsmodels documentation build configuration file, created by +# sphinx-quickstart on Sat Jan 22 11:17:58 2011. +# +# This file is execfile()d with the current directory set to its containing dir. +# +# Note that not all possible configuration values are present in this +# autogenerated file. +# +# All configuration values have a default; values that are commented out +# serve to show the default. + +import sys, os + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +sys.path.insert(0, os.path.abspath('../sphinxext')) + + +# -- General configuration ----------------------------------------------------- + +# If your documentation needs a minimal Sphinx version, state it here. + +# Add any Sphinx extension module names here, as strings. They can be extensions +# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. +extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest', + 'sphinx.ext.intersphinx', 'sphinx.ext.todo', + # 'sphinx.ext.imgmath', + 'sphinx.ext.pngmath', 'sphinx.ext.viewcode', 'sphinx.ext.autosummary', + 'sphinx.ext.inheritance_diagram', + 'matplotlib.sphinxext.plot_directive', + 'matplotlib.sphinxext.only_directives', + 'IPython.sphinxext.ipython_console_highlighting', + 'IPython.sphinxext.ipython_directive', + 'github', # for GitHub links, + 'numpydoc', + ] + +ipython_savefig_dir = '../build/html/_static' + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The suffix of source filenames. +source_suffix = '.rst' + +# The encoding of source files. +#source_encoding = 'utf-8-sig' + +# The master toctree document. +master_doc = 'index' + +# General information about the project. +project = u'statsmodels' +copyright = u'2009-2016, Josef Perktold, Skipper Seabold, Jonathan Taylor, statsmodels-developers' + + +autosummary_generate = True +autoclass_content = 'class' + +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +# +from statsmodels.version import short_version, full_version +release = short_version +# The full version, including dev tag. +version = full_version + +# set inheritance_graph_attrs +# you need graphviz installed to use this +# see: http://sphinx.pocoo.org/ext/inheritance.html +# and graphviz dot documentation http://www.graphviz.org/content/attrs +#NOTE: giving the empty string to size allows graphviz to figure out +# the size +inheritance_graph_attrs = dict(size='""', ratio="compress", fontsize=14, + rankdir="LR") + +#inheritance_node_attrs = dict(shape='ellipse', fontsize=14, height=0.75, +# color='dodgerblue1', style='filled') + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +#language = None + +# There are two options for replacing |today|: either, you set today to some +# non-false value, then it is used: +#today = '' +# Else, today_fmt is used as the format for a strftime call. +#today_fmt = '%B %d, %Y' + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +exclude_patterns = ['*/autosummary/class.rst', '*/autosummary/glmfamilies.rst'] + +# The reST default role (used for this markup: `text`) to use for all documents. +#default_role = None + +# If true, '()' will be appended to :func: etc. cross-reference text. +add_function_parentheses = False + +# If true, the current module name will be prepended to all description +# unit titles (such as .. function::). +#add_module_names = True + +# If true, sectionauthor and moduleauthor directives will be shown in the +# output. They are ignored by default. +#show_authors = False + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + +# A list of ignored prefixes for module index sorting. +#modindex_common_prefix = [] + + +# -- Options for HTML output --------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +#html_theme = 'default' + +if 'htmlhelp' in sys.argv: + #html_theme = 'statsmodels_htmlhelp' #doesn't look nice yet + html_theme = 'default' + print('################# using statsmodels_htmlhelp ############') +else: + html_theme = 'statsmodels' + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +#html_theme_options = {} + +# Add any paths that contain custom themes here, relative to this directory. +html_theme_path = ['../themes'] + +# The name for this set of Sphinx documents. If None, it defaults to +# " v documentation". +#html_title = None + +# A shorter title for the navigation bar. Default is the same as html_title. +#html_short_title = None + +# The name of an image file (relative to this directory) to place at the top +# of the sidebar. +html_logo = 'images/statsmodels_hybi_banner.png' + +# The name of an image file (within the static path) to use as favicon of the +# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 +# pixels large. +html_favicon = 'images/statsmodels_hybi_favico.ico' + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] + +# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, +# using the given strftime format. +#html_last_updated_fmt = '%b %d, %Y' + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +#html_use_smartypants = True + +# Custom sidebar templates, maps document names to template names. +html_sidebars = {'index' : ['indexsidebar.html','searchbox.html','sidelinks.html']} + +# Additional templates that should be rendered to pages, maps page names to +# template names. +#html_additional_pages = {} + +# If false, no module index is generated. +html_domain_indices = False + +# If false, no index is generated. +#html_use_index = True + +# If true, the index is split into individual pages for each letter. +#html_split_index = False + +# If true, links to the reST sources are added to the pages. +#html_show_sourcelink = True + +# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. +#html_show_sphinx = True + +# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. +#html_show_copyright = True + +# If true, an OpenSearch description file will be output, and all pages will +# contain a tag referring to it. The value of this option must be the +# base URL from which the finished HTML is served. +#html_use_opensearch = '' + +# This is the file name suffix for HTML files (e.g. ".xhtml"). +#html_file_suffix = None + +# Output file base name for HTML help builder. +htmlhelp_basename = 'statsmodelsdoc' + + +# -- Options for LaTeX output -------------------------------------------------- + +# The paper size ('letter' or 'a4'). +#latex_paper_size = 'letter' + +# The font size ('10pt', '11pt' or '12pt'). +#latex_font_size = '10pt' + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, author, documentclass [howto/manual]). +latex_documents = [ + ('index', 'statsmodels.tex', u'statsmodels Documentation', + u'Josef Perktold, Skipper Seabold', 'manual'), +] + +# The name of an image file (relative to this directory) to place at the top of +# the title page. +#latex_logo = None + +# For "manual" documents, if this is true, then toplevel headings are parts, +# not chapters. +#latex_use_parts = False + +# If true, show page references after internal links. +#latex_show_pagerefs = False + +# If true, show URL addresses after external links. +#latex_show_urls = False + +# Additional stuff for the LaTeX preamble. +#latex_preamble = '' + +# Documents to append as an appendix to all manuals. +#latex_appendices = [] + +# If false, no module index is generated. +#latex_domain_indices = True + +# imgmath options +imgmath_image_format = 'png' +imgmath_latex_preamble = r'\usepackage[active]{preview}' +imgmath_use_preview = True +# pngmath options +# http://sphinx-doc.org/ext/math.html#module-sphinx.ext.pngmath +pngmath_latex_preamble=r'\usepackage[active]{preview}' # + other custom stuff for inline math, such as non-default math fonts etc. +pngmath_use_preview=True + +# -- Options for manual page output -------------------------------------------- + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [ + ('index', 'statsmodels', u'statsmodels Documentation', + [u'Josef Perktold, Skipper Seabold, Jonathan Taylor'], 1) +] + + +# -- Options for Epub output --------------------------------------------------- + +# Bibliographic Dublin Core info. +epub_title = u'statsmodels' +epub_author = u'Josef Perktold, Skipper Seabold' +epub_publisher = u'Josef Perktold, Skipper Seabold' +epub_copyright = u'2009-2016, Josef Perktold, Skipper Seabold, Jonathan Taylor, statsmodels-developers' + +# The language of the text. It defaults to the language option +# or en if the language is not set. +#epub_language = '' + +# The scheme of the identifier. Typical schemes are ISBN or URL. +#epub_scheme = '' + +# The unique identifier of the text. This can be a ISBN number +# or the project homepage. +#epub_identifier = '' + +# A unique identification for the text. +#epub_uid = '' + +# HTML files that should be inserted before the pages created by sphinx. +# The format is a list of tuples containing the path and title. +#epub_pre_files = [] + +# HTML files shat should be inserted after the pages created by sphinx. +# The format is a list of tuples containing the path and title. +#epub_post_files = [] + +# A list of files that should not be packed into the epub file. +#epub_exclude_files = [] + +# The depth of the table of contents in toc.ncx. +#epub_tocdepth = 3 + +# Allow duplicate toc entries. +#epub_tocdup = True + + +# Example configuration for intersphinx: refer to the Python standard library. +intersphinx_mapping = { + 'numpy' : ('http://docs.scipy.org/doc/numpy/', None), + 'python' : ('http://docs.python.org/3.2', None), + 'pydagogue' : ('http://matthew-brett.github.io/pydagogue/', None), + 'patsy' : ('http://patsy.readthedocs.org/en/latest/', None), + 'pandas' : ('http://pandas.pydata.org/pandas-docs/stable/', None), + } + +from os.path import dirname, abspath, join +plot_basedir = join(dirname(dirname(os.path.abspath(__file__))), 'source') + +# ghissue config +github_project_url = "https://github.com/statsmodels/statsmodels" + +# for the examples landing page +import json +example_context = json.load(open('examples/landing.json')) +html_context = {'examples': example_context } diff --git a/docs/source/contingency_tables.rst b/docs/source/contingency_tables.rst new file mode 100644 index 0000000..819b16d --- /dev/null +++ b/docs/source/contingency_tables.rst @@ -0,0 +1,295 @@ +.. currentmodule:: statsmodels.stats.contingency_tables + +.. _contingency_tables: + + +Contingency tables +================== + +Statsmodels supports a variety of approaches for analyzing contingency +tables, including methods for assessing independence, symmetry, +homogeneity, and methods for working with collections of tables from a +stratified population. + +The methods described here are mainly for two-way tables. Multi-way +tables can be analyzed using log-linear models. Statsmodels does not +currently have a dedicated API for loglinear modeling, but Poisson +regression in :class:`statsmodels.genmod.GLM` can be used for this +purpose. + +A contingency table is a multi-way table that describes a data set in +which each observation belongs to one category for each of several +variables. For example, if there are two variables, one with +:math:`r` levels and one with :math:`c` levels, then we have a +:math:`r \times c` contingency table. The table can be described in +terms of the number of observations that fall into a given cell of the +table, e.g. :math:`T_{ij}` is the number of observations that have +level :math:`i` for the first variable and level :math:`j` for the +second variable. Note that each variable must have a finite number of +levels (or categories), which can be either ordered or unordered. In +different contexts, the variables defining the axes of a contingency +table may be called **categorical variables** or **factor variables**. +They may be either **nominal** (if their levels are unordered) or +**ordinal** (if their levels are ordered). + +The underlying population for a contingency table is described by a +**distribution table** :math:`P_{i, j}`. The elements of :math:`P` +are probabilities, and the sum of all elements in :math:`P` is 1. +Methods for analyzing contingency tables use the data in :math:`T` to +learn about properties of :math:`P`. + +The :class:`statsmodels.stats.Table` is the most basic class for +working with contingency tables. We can create a ``Table`` object +directly from any rectangular array-like object containing the +contingency table cell counts: + +.. ipython:: python + + import numpy as np + import pandas as pd + import statsmodels.api as sm + + df = sm.datasets.get_rdataset("Arthritis", "vcd").data + + tab = pd.crosstab(df['Treatment'], df['Improved']) + tab = tab.loc[:, ["None", "Some", "Marked"]] + table = sm.stats.Table(tab) + +Alternatively, we can pass the raw data and let the Table class +construct the array of cell counts for us: + +.. ipython:: python + + table = sm.stats.Table.from_data(df[["Treatment", "Improved"]]) + + +Independence +------------ + +**Independence** is the property that the row and column factors occur +independently. **Association** is the lack of independence. If the +joint distribution is independent, it can be written as the outer +product of the row and column marginal distributions: + +.. math:: + +P_{ij} = \sum_k P_{ij} \cdot \sum_k P_{kj} \forall i, j + +We can obtain the best-fitting independent distribution for our +observed data, and then view residuals which identify particular cells +that most strongly violate independence: + +.. ipython:: python + + print(table.table_orig) + print(table.fittedvalues) + print(table.resid_pearson) + +In this example, compared to a sample from a population in which the +rows and columns are independent, we have too many observations in the +placebo/no improvement and treatment/marked improvement cells, and too +few observations in the placebo/marked improvement and treated/no +improvement cells. This reflects the apparent benefits of the +treatment. + +If the rows and columns of a table are unordered (i.e. are nominal +factors), then the most common approach for formally assessing +independence is using Pearson's :math:`\chi^2` statistic. It's often +useful to look at the cell-wise contributions to the :math:`\chi^2` +statistic to see where the evidence for dependence is coming from. + +.. ipython:: python + + rslt = table.test_nominal_association() + print(rslt.pvalue) + print(table.chi2_contribs) + +For tables with ordered row and column factors, we can us the **linear +by linear** association test to obtain more power against alternative +hypotheses that respect the ordering. The test statistic for the +linear by linear association test is + +.. math:: + +\sum_k r_i c_j T_{ij} + +where :math:`r_i` and :math:`c_j` are row and column scores. Often +these scores are set to the sequences 0, 1, .... This gives the +'Cochran-Armitage trend test'. + +.. ipython:: python + + rslt = table.test_ordinal_association() + print(rslt.pvalue) + +We can assess the association in a :math:`r\times x` table by +constructing a series of :math:`2\times 2` tables and calculating +their odds ratios. There are two ways to do this. The **local odds +ratios** construct :math:`2\times 2` tables from adjacent row and +column categories. + +.. ipython:: python + + print(table.local_oddsratios) + taloc = sm.stats.Table2x2(np.asarray([[7, 29], [21, 13]])) + print(taloc.oddsratio) + taloc = sm.stats.Table2x2(np.asarray([[29, 7], [13, 7]])) + print(taloc.oddsratio) + +The **cumulative odds ratios** construct :math:`2\times 2` tables by +dichotomizing the row and column factors at each possible point. + +.. ipython:: python + + print(table.cumulative_oddsratios) + tab1 = np.asarray([[7, 29 + 7], [21, 13 + 7]]) + tacum = sm.stats.Table2x2(tab1) + print(tacum.oddsratio) + tab1 = np.asarray([[7 + 29, 7], [21 + 13, 7]]) + tacum = sm.stats.Table2x2(tab1) + print(tacum.oddsratio) + +A mosaic plot is a graphical approach to informally assessing +dependence in two-way tables. + +:: + + from statsmodels.graphics.mosaicplot import mosaic + mosaic(data) + +Symmetry and homogeneity +------------------------ + +**Symmetry** is the property that :math:`P_{i, j} = P_{j, i}` for +every :math:`i` and :math:`j`. **Homogeneity** is the property that +the marginal distribution of the row factor and the column factor are +identical, meaning that + +.. math:: + +\sum_j P_{ij} = \sum_j P_{ji} \forall i + +Note that for these properties to be applicable the table :math:`P` +(and :math:`T`) must be square, and the row and column categories must +be identical and must occur in the same order. + +To illustrate, we load a data set, create a contingency table, and +calculate the row and column margins. The :class:`Table` class +contains methods for analyzing :math:`r \times c` contingency tables. +The data set loaded below contains assessments of visual acuity in +people's left and right eyes. We first load the data and create a +contingency table. + +.. ipython:: python + + df = sm.datasets.get_rdataset("VisualAcuity", "vcd").data + df = df.loc[df.gender == "female", :] + tab = df.set_index(['left', 'right']) + del tab["gender"] + tab = tab.unstack() + tab.columns = tab.columns.get_level_values(1) + print(tab) + +Next we create a :class:`SquareTable` object from the contingency +table. + +.. ipython:: python + + sqtab = sm.stats.SquareTable(tab) + row, col = sqtab.marginal_probabilities + print(row) + print(col) + + +The ``summary`` method prints results for the symmetry and homogeneity +testing procedures. + +.. ipython:: python + + print(sqtab.summary()) + +If we had the individual case records in a dataframe called ``data``, +we could also perform the same analysis by passing the raw data using +the ``SquareTable.from_data`` class method. + +:: + + sqtab = sm.stats.SquareTable.from_data(data[['left', 'right']]) + print(sqtab.summary()) + + +A single 2x2 table +------------------ + +Several methods for working with individual 2x2 tables are provided in +the :class:`sm.stats.Table2x2` class. The ``summary`` method displays +several measures of association between the rows and columns of the +table. + +.. ipython:: python + + table = np.asarray([[35, 21], [25, 58]]) + t22 = sm.stats.Table2x2(table) + print(t22.summary()) + +Note that the risk ratio is not symmetric so different results will be +obtained if the transposed table is analyzed. + +.. ipython:: python + + table = np.asarray([[35, 21], [25, 58]]) + t22 = sm.stats.Table2x2(table.T) + print(t22.summary()) + + +Stratified 2x2 tables +--------------------- + +Stratification occurs when we have a collection of contingency tables +defined by the same row and column factors. In the example below, we +have a collection of 2x2 tables reflecting the joint distribution of +smoking and lung cancer in each of several regions of China. It is +possible that the tables all have a common odds ratio, even while the +marginal probabilities vary among the strata. The 'Breslow-Day' +procedure tests whether the data are consistent with a common odds +ratio. It appears below as the `Test of constant OR`. The +Mantel-Haenszel procedure tests whether this common odds ratio is +equal to one. It appears below as the `Test of OR=1`. It is also +possible to estimate the common odds and risk ratios and obtain +confidence intervals for them. The ``summary`` method displays all of +these results. Individual results can be obtained from the class +methods and attributes. + +.. ipython:: python + + data = sm.datasets.china_smoking.load() + + mat = np.asarray(data.data) + tables = [np.reshape(x, (2, 2)) for x in mat] + + st = sm.stats.StratifiedTable(tables) + print(st.summary()) + + +Module Reference +---------------- + +.. currentmodule:: statsmodels.stats.contingency_tables + +.. autosummary:: + :toctree: generated/ + + Table + Table2x2 + SquareTable + StratifiedTable + mcnemar + cochrans_q + +See also +-------- + +Scipy_ has several functions for analyzing contingency tables, +including Fisher's exact test which is not currently in Statsmodels. + +.. _Scipy: http://docs.scipy.org/doc/scipy-0.14.0/reference/stats.html#contingency-table-functions diff --git a/docs/source/contrasts.rst b/docs/source/contrasts.rst new file mode 100644 index 0000000..d3bb46b --- /dev/null +++ b/docs/source/contrasts.rst @@ -0,0 +1,234 @@ +:orphan: + +Patsy: Contrast Coding Systems for categorical variables +=========================================================== + +.. note:: This document is based heavily on `this excellent resource from UCLA `__. + +A categorical variable of K categories, or levels, usually enters a regression as a sequence of K-1 dummy variables. This amounts to a linear hypothesis on the level means. That is, each test statistic for these variables amounts to testing whether the mean for that level is statistically significantly different from the mean of the base category. This dummy coding is called Treatment coding in R parlance, and we will follow this convention. There are, however, different coding methods that amount to different sets of linear hypotheses. + +In fact, the dummy coding is not technically a contrast coding. This is because the dummy variables add to one and are not functionally independent of the model's intercept. On the other hand, a set of *contrasts* for a categorical variable with `k` levels is a set of `k-1` functionally independent linear combinations of the factor level means that are also independent of the sum of the dummy variables. The dummy coding isn't wrong *per se*. It captures all of the coefficients, but it complicates matters when the model assumes independence of the coefficients such as in ANOVA. Linear regression models do not assume independence of the coefficients and thus dummy coding is often the only coding that is taught in this context. + +To have a look at the contrast matrices in Patsy, we will use data from UCLA ATS. First let's load the data. + +.. ipython:: python + :suppress: + + import numpy as np + np.set_printoptions(precision=4, suppress=True) + + from patsy.contrasts import ContrastMatrix + + def _name_levels(prefix, levels): + return ["[%s%s]" % (prefix, level) for level in levels] + + class Simple(object): + def _simple_contrast(self, levels): + nlevels = len(levels) + contr = -1./nlevels * np.ones((nlevels, nlevels-1)) + contr[1:][np.diag_indices(nlevels-1)] = (nlevels-1.)/nlevels + return contr + def code_with_intercept(self, levels): + contrast = np.column_stack((np.ones(len(levels)), + self._simple_contrast(levels))) + return ContrastMatrix(contrast, _name_levels("Simp.", levels)) + def code_without_intercept(self, levels): + contrast = self._simple_contrast(levels) + return ContrastMatrix(contrast, _name_levels("Simp.", levels[:-1])) + + +Example Data +------------ + +.. ipython:: python + + import pandas + url = 'http://www.ats.ucla.edu/stat/data/hsb2.csv' + hsb2 = pandas.read_table(url, delimiter=",") + +It will be instructive to look at the mean of the dependent variable, write, for each level of race ((1 = Hispanic, 2 = Asian, 3 = African American and 4 = Caucasian)). + +.. ipython:: + + hsb2.groupby('race')['write'].mean() + +Treatment (Dummy) Coding +------------------------ + +Dummy coding is likely the most well known coding scheme. It compares each level of the categorical variable to a base reference level. The base reference level is the value of the intercept. It is the default contrast in Patsy for unordered categorical factors. The Treatment contrast matrix for race would be + +.. ipython:: python + + from patsy.contrasts import Treatment + levels = [1,2,3,4] + contrast = Treatment(reference=0).code_without_intercept(levels) + print(contrast.matrix) + +Here we used `reference=0`, which implies that the first level, Hispanic, is the reference category against which the other level effects are measured. As mentioned above, the columns do not sum to zero and are thus not independent of the intercept. To be explicit, let's look at how this would encode the `race` variable. + +.. ipython:: python + + contrast.matrix[hsb2.race-1, :][:20] + +This is a bit of a trick, as the `race` category conveniently maps to zero-based indices. If it does not, this conversion happens under the hood, so this won't work in general but nonetheless is a useful exercise to fix ideas. The below illustrates the output using the three contrasts above + +.. ipython:: python + + from statsmodels.formula.api import ols + mod = ols("write ~ C(race, Treatment)", data=hsb2) + res = mod.fit() + print(res.summary()) + +We explicitly gave the contrast for race; however, since Treatment is the default, we could have omitted this. + +Simple Coding +------------- + +Like Treatment Coding, Simple Coding compares each level to a fixed reference level. However, with simple coding, the intercept is the grand mean of all the levels of the factors. See :ref:`user-defined` for how to implement the Simple contrast. + + +.. ipython:: python + + contrast = Simple().code_without_intercept(levels) + print(contrast.matrix) + + mod = ols("write ~ C(race, Simple)", data=hsb2) + res = mod.fit() + print(res.summary()) + +Sum (Deviation) Coding +---------------------- + +Sum coding compares the mean of the dependent variable for a given level to the overall mean of the dependent variable over all the levels. That is, it uses contrasts between each of the first k-1 levels and level k In this example, level 1 is compared to all the others, level 2 to all the others, and level 3 to all the others. + +.. ipython:: python + + from patsy.contrasts import Sum + contrast = Sum().code_without_intercept(levels) + print(contrast.matrix) + + mod = ols("write ~ C(race, Sum)", data=hsb2) + res = mod.fit() + print(res.summary()) + +This correspons to a parameterization that forces all the coefficients to sum to zero. Notice that the intercept here is the grand mean where the grand mean is the mean of means of the dependent variable by each level. + +.. ipython:: python + + hsb2.groupby('race')['write'].mean().mean() + +Backward Difference Coding +-------------------------- + +In backward difference coding, the mean of the dependent variable for a level is compared with the mean of the dependent variable for the prior level. This type of coding may be useful for a nominal or an ordinal variable. + +.. ipython:: python + + from patsy.contrasts import Diff + contrast = Diff().code_without_intercept(levels) + print(contrast.matrix) + + mod = ols("write ~ C(race, Diff)", data=hsb2) + res = mod.fit() + print(res.summary()) + +For example, here the coefficient on level 1 is the mean of `write` at level 2 compared with the mean at level 1. Ie., + +.. ipython:: python + + res.params["C(race, Diff)[D.1]"] + hsb2.groupby('race').mean()["write"][2] - \ + hsb2.groupby('race').mean()["write"][1] + +Helmert Coding +-------------- + +Our version of Helmert coding is sometimes referred to as Reverse Helmert Coding. The mean of the dependent variable for a level is compared to the mean of the dependent variable over all previous levels. Hence, the name 'reverse' being sometimes applied to differentiate from forward Helmert coding. This comparison does not make much sense for a nominal variable such as race, but we would use the Helmert contrast like so: + +.. ipython:: python + + from patsy.contrasts import Helmert + contrast = Helmert().code_without_intercept(levels) + print(contrast.matrix) + + mod = ols("write ~ C(race, Helmert)", data=hsb2) + res = mod.fit() + print(res.summary()) + +To illustrate, the comparison on level 4 is the mean of the dependent variable at the previous three levels taken from the mean at level 4 + +.. ipython:: python + + grouped = hsb2.groupby('race') + grouped.mean()["write"][4] - grouped.mean()["write"][:3].mean() + +As you can see, these are only equal up to a constant. Other versions of the Helmert contrast give the actual difference in means. Regardless, the hypothesis tests are the same. + +.. ipython:: python + + k = 4 + 1./k * (grouped.mean()["write"][k] - grouped.mean()["write"][:k-1].mean()) + k = 3 + 1./k * (grouped.mean()["write"][k] - grouped.mean()["write"][:k-1].mean()) + + +Orthogonal Polynomial Coding +---------------------------- + +The coefficients taken on by polynomial coding for `k=4` levels are the linear, quadratic, and cubic trends in the categorical variable. The categorical variable here is assumed to be represented by an underlying, equally spaced numeric variable. Therefore, this type of encoding is used only for ordered categorical variables with equal spacing. In general, the polynomial contrast produces polynomials of order `k-1`. Since `race` is not an ordered factor variable let's use `read` as an example. First we need to create an ordered categorical from `read`. + +.. ipython:: python + + _, bins = np.histogram(hsb2.read, 3) + try: # requires numpy master + readcat = np.digitize(hsb2.read, bins, True) + except: + readcat = np.digitize(hsb2.read, bins) + hsb2['readcat'] = readcat + hsb2.groupby('readcat').mean()['write'] + +.. ipython:: python + + from patsy.contrasts import Poly + levels = hsb2.readcat.unique().tolist() + contrast = Poly().code_without_intercept(levels) + print(contrast.matrix) + + mod = ols("write ~ C(readcat, Poly)", data=hsb2) + res = mod.fit() + print(res.summary()) + +As you can see, readcat has a significant linear effect on the dependent variable `write` but not a significant quadratic or cubic effect. + +.. _user-defined: + +User-Defined Coding +------------------- + +If you want to use your own coding, you must do so by writing a coding class that contains a code_with_intercept and a code_without_intercept method that return a `patsy.contrast.ContrastMatrix` instance. + +.. ipython:: python + + from patsy.contrasts import ContrastMatrix + + def _name_levels(prefix, levels): + return ["[%s%s]" % (prefix, level) for level in levels] + + class Simple(object): + def _simple_contrast(self, levels): + nlevels = len(levels) + contr = -1./nlevels * np.ones((nlevels, nlevels-1)) + contr[1:][np.diag_indices(nlevels-1)] = (nlevels-1.)/nlevels + return contr + + def code_with_intercept(self, levels): + contrast = np.column_stack((np.ones(len(levels)), + self._simple_contrast(levels))) + return ContrastMatrix(contrast, _name_levels("Simp.", levels)) + + def code_without_intercept(self, levels): + contrast = self._simple_contrast(levels) + return ContrastMatrix(contrast, _name_levels("Simp.", levels[:-1])) + + mod = ols("write ~ C(race, Simple)", data=hsb2) + res = mod.fit() diff --git a/docs/source/datasets/dataset_proposal.rst b/docs/source/datasets/dataset_proposal.rst new file mode 100644 index 0000000..00a7920 --- /dev/null +++ b/docs/source/datasets/dataset_proposal.rst @@ -0,0 +1,154 @@ +:orphan: + +.. _dataset_proposal: + +Dataset for statmodels: design proposal +=============================================== + +One of the thing numpy/scipy is missing now is a set of datasets, available for +demo, courses, etc. For example, R has a set of dataset available at the core. + +The expected usage of the datasets are the following: + + - examples, tutorials for model usage + - testing of model usage vs. other statistical packages + +That is, a dataset is not only data, but also some meta-data. The goal of this +proposal is to propose common practices for organizing the data, in a way which +is both straightforward, and does not prevent specific usage of the data. + + +Background +---------- + +This proposal was adapted from David Cournapeau's original proposal for a +datasets package for scipy and the learn scikit. It has been adapted for use +in the statsmodels scikit. The structure of the datasets itself, while +specific to statsmodels, should be general enough such that it might be used +for other types of data (e.g., in the learn scikit or scipy itself). + +Organization +------------ + +Each dataset is a directory in the `datasets` directory and defines a python +package (e.g. has the __init__.py file). Each package is expected to define the +function load, returning the corresponding data. For example, to access datasets +data1, you should be able to do:: + + >>> from statsmodels.datasets.data1 import load + >>> d = load() # -> d is a Dataset object, see below + +The `load` function is expected to return the `Dataset` object, which has certain +common attributes that make it readily usable in tests and examples. Load can do +whatever it wants: fetching data from a file (python script, csv file, etc...), +from the internet, etc. However, it is strongly recommended that each dataset +directory contain a csv file with the dataset and its variables in the same form +as returned by load so that the dataset can easily be loaded into other +statistical packages. In addition, an optional (though recommended) sub-directory +src should contain the dataset in its original form if it was "cleaned" (ie., +variable transformations) in order to put it into the format needed for statsmodels. +Some special variables must be defined for each package, containing a Python string: + + - COPYRIGHT: copyright informations + - SOURCE: where the data are coming from + - DESCHOSRT: short description + - DESCLONG: long description + - NOTE: some notes on the datasets. + +See `datasets/data_template.py` for more information. + +Format of the data +------------------ + +This is strongly suggested a practice for the `Dataset` object returned by the +load function. Instead of using classes to provide meta-data, the Bunch pattern +is used. + +:: + + class Bunch(dict): + def __init__(self,**kw): + dict.__init__(self,kw) + self.__dict__ = self + +See this `Reference `_ + +In practice, you can use :: + + >>> from statsmodels.datasets import Dataset + +as the default collector as in `datasets/data_template.py`. + +The advantage of the Bunch pattern is that it preserves look-up by attribute. +The key goals are: + + - For people who just want the data, there is no extra burden + - For people who need more, they can easily extract what they need from + the returned values. Higher level abstractions can be built easily + from this model. + - All possible datasets should fit into this model. + +For the datasets to be useful in statsmodels the Dataset object +returned by load has the following conventions and attributes: + + - Calling the object itself returns the plain ndarray of the full dataset. + - `data`: A recarray containing the actual data. It is assumed + that all of the data can safely be cast to a float at this point. + - `raw_data`: This is the plain ndarray version of 'data'. + - `names`: this returns data.dtype.names so that name[i] is the i-th + column in 'raw_data'. + - `endog`: this value is provided for convenience in tests and examples + - `exog`: this value is provided for convenience in tests and examples + - `endog_name`: the name of the endog attribute + - `exog_name`: the names of the exog attribute + + +This contains enough information to get all useful information through +introspection and simple functions. Further, attributes are easily added that +may be useful for other packages. + + +Adding a dataset +---------------- + +See the :ref:`notes on adding a dataset `. + + +Example Usage +------------- + +:: + + >>> from statsmodels import datasets + >>> data = datasets.longley.load() + + +Remaining problems: +------------------- + + + - If the dataset is big and cannot fit into memory, what kind of API do + we want to avoid loading all the data in memory ? Can we use memory + mapped arrays ? + - Missing data: I thought about subclassing both record arrays and + masked arrays classes, but I don't know if this is feasable, or even + makes sense. I have the feeling that some Data mining software use + Nan (for example, weka seems to use float internally), but this + prevents them from representing integer data. + - What to do with non-float data, i.e., strings or categorical variables? + + +Current implementation +---------------------- + +An implementation following the above design is available in `statsmodels`. + + +Note +---- + +Although the datasets package emerged from the learn package, we try to keep it +independant from everything else, that is once we agree on the remaining +problems and where the package should go, it can easily be put elsewhere +without too much trouble. If there is interest in re-using the datasets package, +please contact the developers on the `mailing list `_. diff --git a/docs/source/datasets/index.rst b/docs/source/datasets/index.rst new file mode 100644 index 0000000..3220dbe --- /dev/null +++ b/docs/source/datasets/index.rst @@ -0,0 +1,148 @@ +.. _datasets: + +.. currentmodule:: statsmodels.datasets + +.. ipython:: python + :suppress: + + import numpy as np + np.set_printoptions(suppress=True) + +The Datasets Package +==================== + +``statsmodels`` provides data sets (i.e. data *and* meta-data) for use in +examples, tutorials, model testing, etc. + +Using Datasets from Stata +------------------------- + +.. autosummary:: + :toctree: ./ + + webuse + +Using Datasets from R +--------------------- + +The `Rdatasets project `__ gives access to the datasets available in R's core datasets package and many other common R packages. All of these datasets are available to statsmodels by using the :func:`get_rdataset` function. The actual data is accessible by the ``data`` attribute. For example: + +.. ipython:: python + + import statsmodels.api as sm + duncan_prestige = sm.datasets.get_rdataset("Duncan", "car") + print(duncan_prestige.__doc__) + duncan_prestige.data.head(5) + + +R Datasets Function Reference +----------------------------- + + +.. autosummary:: + :toctree: ./ + + get_rdataset + get_data_home + clear_data_home + + +Available Datasets +------------------ + +.. toctree:: + :maxdepth: 1 + :glob: + + generated/* + +Usage +----- + +Load a dataset: + +.. ipython:: python + + import statsmodels.api as sm + data = sm.datasets.longley.load() + +The `Dataset` object follows the bunch pattern explained in :ref:`proposal `. The full dataset is available in the ``data`` attribute. + +.. ipython:: python + + data.data + +Most datasets hold convenient representations of the data in the attributes `endog` and `exog`: + +.. ipython:: python + + data.endog[:5] + data.exog[:5,:] + +Univariate datasets, however, do not have an `exog` attribute. + +Variable names can be obtained by typing: + +.. ipython:: python + + data.endog_name + data.exog_name + +If the dataset does not have a clear interpretation of what should be an +`endog` and `exog`, then you can always access the `data` or `raw_data` +attributes. This is the case for the `macrodata` dataset, which is a collection +of US macroeconomic data rather than a dataset with a specific example in mind. +The `data` attribute contains a record array of the full dataset and the +`raw_data` attribute contains an ndarray with the names of the columns given +by the `names` attribute. + +.. ipython:: python + + type(data.data) + type(data.raw_data) + data.names + +Loading data as pandas objects +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +For many users it may be preferable to get the datasets as a pandas DataFrame or +Series object. Each of the dataset modules is equipped with a ``load_pandas`` +method which returns a ``Dataset`` instance with the data readily available as pandas objects: + +.. ipython:: python + + data = sm.datasets.longley.load_pandas() + data.exog + data.endog + +The full DataFrame is available in the ``data`` attribute of the Dataset object + +.. ipython:: python + + data.data + + +With pandas integration in the estimation classes, the metadata will be attached +to model results: + +.. ipython:: python,okwarning + + y, x = data.endog, data.exog + res = sm.OLS(y, x).fit() + res.params + res.summary() + +Extra Information +^^^^^^^^^^^^^^^^^ + +If you want to know more about the dataset itself, you can access the +following, again using the Longley dataset as an example :: + + >>> dir(sm.datasets.longley)[:6] + ['COPYRIGHT', 'DESCRLONG', 'DESCRSHORT', 'NOTE', 'SOURCE', 'TITLE'] + +Additional information +---------------------- + +* The idea for a datasets package was originally proposed by David Cournapeau and can be found :ref:`here ` with updates by Skipper Seabold. +* To add datasets, see the :ref:`notes on adding a dataset `. diff --git a/docs/source/dev/dataset_notes.rst b/docs/source/dev/dataset_notes.rst new file mode 100644 index 0000000..207702e --- /dev/null +++ b/docs/source/dev/dataset_notes.rst @@ -0,0 +1,69 @@ +.. _add_data: + +Datasets +======== + +For a list of currently available datasets and usage instructions, see the +:ref:`datasets page `. + +License +------- + +To be considered for inclusion in `statsmodels`, a dataset must be in the +public domain, distributed under a BSD-compatible license, or we must obtain +permission from the original author. + +Adding a dataset: An example +---------------------------- + +The Nile River data measures the volume of the discharge of the Nile River at +Aswan for the years 1871 to 1970. The data are copied from the paper of Cobb +(1978). + +**Step 1**: Create a directory `datasets/nile/` + +**Step 2**: Add `datasets/nile/nile.csv` and a new file `datasets/__init__.py` which contains :: + + from data import * + +**Step 3**: If `nile.csv` is a transformed/cleaned version of the original data, create a `nile/src` directory and include the original raw data there. In the `nile` case, this step is not necessary. + +**Step 4**: Copy `datasets/template_data.py` to `nile/data.py`. Edit `nile/data.py` by filling-in strings for COPYRIGHT, TITLE, SOURCE, DESCRSHORT, DESCLONG, and NOTE. :: + + COPYRIGHT = """This is public domain.""" + TITLE = """Nile River Data""" + SOURCE = """ + Cobb, G.W. 1978. The Problem of the Nile: Conditional Solution to a Changepoint + Problem. Biometrika. 65.2, 243-251, + """ + + DESCRSHORT = """Annual Nile River Volume at Aswan, 1871-1970"" + + DESCRLONG = """AAnnual Nile River Volume at Aswan, 1871-1970. The units of + measurement are 1e9 m^{3}, and there is an apparent changepoint near 1898.""" + + NOTE = """ + Number of observations: 100 + Number of variables: 2 + Variable name definitions: + year - Year of observation + volume - Nile River volume at Aswan + + The data were originally used in Cobb (1987, See SOURCE). The author + acknowledges that the data were originally compiled from various sources by + Dr. Barbara Bell, Center for Astrophysics, Cambridge, Massachusetts. The data + set is also used as an example in many textbooks and software packages. + """ + +**Step 5:** Edit the docstring of the `load` function in `data.py` to specify +which dataset will be loaded. Also edit the path and the indices for the +`endog` and `exog` attributes. In the `nile` case, there is no `exog`, so +everything referencing `exog` is not used. The `year` variable is also not +used. + +**Step 6:** Edit the `datasets/__init__.py` to import the directory. + +That's it! The result can be found `here +`_ +for reference. + diff --git a/docs/source/dev/examples.rst b/docs/source/dev/examples.rst new file mode 100644 index 0000000..3237c8c --- /dev/null +++ b/docs/source/dev/examples.rst @@ -0,0 +1,40 @@ +.. _examples: + +Examples +======== + +Examples are invaluable for new users who hope to get up and running quickly +with `statsmodels`, and they are extremely useful to those who wish to explore +new features of `statsmodels`. We hope to provide documentation and tutorials +for as many models and use-cases as possible! Please consider submitting an example with any PR that introduces new functionality. + +User-contributed examples/tutorials/recipes can be placed on the +`statsmodels examples wiki page `_ +That wiki page is freely editable. Please post your cool tricks, +examples, and recipes on there! + +If you would rather have your example file officially accepted to the +`statsmodels` distribution and posted on this website, you will need to go +through the normal `patch submission process `_ and follow the instructions that follow. + +File Format +~~~~~~~~~~~ + +Examples are best contributed as IPython notebooks. Save your notebook with all output cells cleared in ``examples/notebooks``. From the notebook save the pure Python output to ``examples/python``. The first line of the Notebook *must* be a header cell that contains a title for the notebook, if you want the notebook to be included in the documentation. + + +The Example Gallery +~~~~~~~~~~~~~~~~~~~ + +We have a gallery of example notebooks available `here `_. If you would like your example to show up in this gallery, add a link to the notebook in ``docs/source/examples/landing.json``. For the thumbnail, take a screenshot of what you think is the best "hook" for the notebook. The image will be displayed at 360 x 225 (W x H). It's best to save the image as a PNG with a resolution that is some multiple of 360 x 225 (720 x 450 is preferred). + + +Before submitting a PR +~~~~~~~~~~~~~~~~~~~~~~ + +To save you some time and to make the new examples nicely fit into the existing +ones consider the following points. + +**Look at examples source code** to get a feel for how statsmodels examples should look like. + +**Build the docs** by running `make html` from the docs directory to see how your example looks in the fully rendered html pages. diff --git a/docs/source/dev/get_involved.rst b/docs/source/dev/get_involved.rst new file mode 100644 index 0000000..4079627 --- /dev/null +++ b/docs/source/dev/get_involved.rst @@ -0,0 +1,26 @@ +Get Involved +============ + +Where to Start? +--------------- + +Use grep or download a tool like `grin `__ to search the code for TODO notes:: + + grin -i -I "*.py*" todo + +This shows almost 700 TODOs in the code base right now. Feel free to inquire on the mailing list about any of these. + +Sandbox +------- + +We currently have a large amount code in the :ref:`sandbox`. The medium term goal is to move much of this to feature branches as it gets worked on and remove the sandbox folder. Many of these models and functions are close to done, however, and we welcome any and all contributions to complete them, including refactoring, documentation, and tests. These models include generalized additive models (GAM), information theoretic models such as maximum entropy, survival models, systems of equation models, restricted least squares, panel data models, and time series models such as (G)ARCH. + +.. .. toctree:: +.. :maxdepth: 4 +.. +.. ../sandbox + +Contribute an Example +--------------------- + +Contribute an :ref:`example `, add some technical documentation, or contribute a statistics tutorial. diff --git a/docs/source/dev/git_notes.rst b/docs/source/dev/git_notes.rst new file mode 100644 index 0000000..6be9e3d --- /dev/null +++ b/docs/source/dev/git_notes.rst @@ -0,0 +1,270 @@ +Working with the Statsmodels Code +================================= + +Github +------ + +The `statsmodels` code base is hosted on `Github `_. To +contribute you will need to `sign up for a free Github account `_. + +Version Control and Git +----------------------- + +We use the `Git `_ version control system for development. +Git allows many people to work together on the same project. In a nutshell, it +allows you to make changes to the code independent of others who may also be +working on the code and allows you to easily contribute your changes to the +codebase. It also keeps a complete history of all changes to the code, so you +can easily undo changes or see when a change was made, by whom, and why. + +To install and configure Git, and to setup SSH keys, see +`setting up git `_. + +To learn more about Git, you may want to visit: + ++ `Git documentation (book and videos) `_ ++ `Github help pages `_ ++ `NumPy documentation `_ ++ `Matthew Brett's Pydagogue `_ + +Below, we describe the bare minimum git commands you need to contribute to +`statsmodels`. + +Statsmodels Git/Github Workflow +------------------------------- + +Forking and cloning +~~~~~~~~~~~~~~~~~~~ + +After setting up git, you need to fork the main `statsmodels` repository. To do +this, visit the `statsmodels project page +`_ and hit the fork button (see +instructions for +`forking a repo `_ for details). +This should take you to your fork's page. + +Then, you want to clone the fork to your machine:: + + git clone git@github.com:your-user-name/statsmodels.git statsmodels-yourname + cd statsmodels-yourname + git remote add upstream git://github.com/statsmodels/statsmodels.git + +The first line creates a directory named `statsmodels-yourname`. The third line +sets-up a read-only connection to the upstream statsmodels repository. This +will allow you to periodically update your local code with changes in the +upstream. + +Create a Branch +~~~~~~~~~~~~~~~ + +All changes to the code should be made in a feature branch. To create a branch, type:: + + git branch shiny-new-feature + git checkout shiny-new-feature + +Doing:: + + git branch + +will give something like:: + + * shiny-new-feature + master + +to indicate that you are now on the `shiny-new-feature` branch. + +Making changes +~~~~~~~~~~~~~~ + +Hack away! Make any changes that you want, but please keep the work in your +branch completely confined to one specific topic, bugfix, or feature +implementation. You can work across multiple files and have many commits, but +the changes should all be related to the feature of the feature branch, +whatever that may be. + +Now imagine that you changed the file `foo.py`. You can see your changes by +typing:: + + git status + +This will print something like:: + + # On branch shiny-new-feature + # Changes not staged for commit: + # (use "git add ..." to update what will be committed) + # (use "git checkout -- ..." to discard changes in working directory) + # + # modified: relative/path/to/foo.py + # + no changes added to commit (use "git add" and/or "git commit -a") + +Before you can commit these changes, you have to `add`, or `stage`, the +changes. You can do this by typing:: + + git add path/to/foo.py + +Then check the status to make sure your commit looks okay:: + + git status + +should give something like:: + + # On branch shiny-new-feature + # Changes to be committed: + # (use "git reset HEAD ..." to unstage) + # + # modified: /relative/path/to/foo.py + # + +Pushing your changes +~~~~~~~~~~~~~~~~~~~~ + +At any time you can push your feature branch (and any changes) to your github +(fork) repository by:: + + git push origin shiny-new-feature + +Here `origin` is the default name given to your remote repository. You can see +the remote repositories by:: + + git remote -v + +If you added the upstream repository as described above you will see something +like:: + + origin git@github.com:yourname/statsmodels.git (fetch) + origin git@github.com:yourname/statsmodels.git (push) + upstream git://github.com/statsmodels/statsmodels.git (fetch) + upstream git://github.com/statsmodels/statsmodels.git (push) + +Before you push any commits, however, it is *highly* recommended that you make +sure what you are pushing makes sense and looks clean. You can review your +change history by:: + + git log --oneline --graph + +It pays to take care of things locally before you push them to github. So when +in doubt, don't push. Also see the advice on keeping your history clean in +:ref:`merge-vs-rebase`. + +.. _pull-requests: + +Pull Requests +~~~~~~~~~~~~~ + +When you are ready to ask for a code review, we recommend that you file a pull +request. Before you do so you should check your changeset yourself. You can do +this by using `compare view +`__ on github. + +#. Navigate to your repository on github. +#. Click on `Branch List` +#. Click on the `Compare` button for your feature branch, `shiny-new-feature`. +#. Select the `base` and `compare` branches, if necessary. This will be `master` and + `shiny-new-feature`, respectively. +#. From here you will see a nice overview of your changes. If anything is amiss, you can fix it. + +If everything looks good you are read to make a `pull request `__. + +#. Navigate to your repository on github. +#. Click on the `Pull Request` button. +#. You can then click on `Commits` and `Files Changed` to make sure everything looks okay one last time. +#. Write a description of your changes in the `Preview Discussion` tab. +#. Click `Send Pull Request`. + +Your request will then be reviewed. If you need to go back and make more +changes, you can make them in your branch and push them to github and the pull +request will be automatically updated. + +One last thing to note. If there has been a lot of work in upstream/master +since you started your patch, you might want to rebase. However, you can +probably get away with not rebasing if these changes are unrelated to the work +you have done in the `shiny-new-feature` branch. If you can avoid it, then +don't rebase. If you have to, try to do it once and when you are at the end of +your changes. Read on for some notes on :ref:`merge-vs-rebase`. + +Advanced Topics +--------------- + +.. _merge-vs-rebase: + +Merging vs. Rebasing +~~~~~~~~~~~~~~~~~~~~ + +This is a topic that has been discussed at great length and with considerable +more expertise than we can offer here. This section will provide some resources +for further reading and some advice. The focus, though, will be for those who +wish to submit pull requests for a feature branch. For these cases rebase +should be preferred. + +A rebase replays commits from one branch on top of another branch to preserve a +linear history. Recall that your commits were tested against a (possibly) older +version of master from which you started your branch, so if you rebase, you +could introduce bugs. However, if you have only a few commits, this might not +be such a concern. One great place to start learning about rebase is +:ref:`rebasing without tears `. In particular, `heed +the warnings +`__. +Namely, **always make a new branch before doing a rebase**. This is good +general advice for working with git. I would also add **never use rebase on +work that has already been published**. If another developer is using your +work, don't rebase!! + +As for merging, **never merge from trunk into your feature branch**. You will, +however, want to check that your work will merge cleanly into trunk. This will +help out the reviewers. You can do this in your local repository by merging +your work into your master (or any branch that tracks remote master) and +:ref:`run-tests`. + +Deleting Branches +~~~~~~~~~~~~~~~~~ + +Once your feature branch is accepted into upstream, you might want to get rid +of it. First you'll want to merge upstream master into your branch. That way +git will know that it can safely delete your branch:: + + git fetch upstream + git checkout master + git merge upstream/master + +Then you can just do:: + + git branch -d shiny-new-feature + +Make sure you use a lower-case -d. That way, git will complain if your feature +branch has not actually been merged. The branch will still exist on github +however. To delete the branch on github, do:: + + git push origin :shiny-new-feature branch + +.. Squashing with Rebase +.. ^^^^^^^^^^^^^^^^^^^^^ + +.. You've made a bunch of incremental commits, but you think they might be better off together as one +.. commit. You can do this with an interactive rebase. As usual, **only do this when you have local +.. commits. Do not edit the history of changes that have been pushed.** + +.. see this reference http://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html + + +Git for Bzr Users +~~~~~~~~~~~~~~~~~ + +:: + + git pull != bzr pull + +:: + + git pull = git fetch + git merge + +Of course, you could:: + + git pull --rebase = git fetch + git rebase + +:: + + git merge != bzr merge + git merge == bzr merge + bzr commit + git merge --no-commit == bzr merge + diff --git a/docs/source/dev/images/git_merge.png b/docs/source/dev/images/git_merge.png new file mode 100644 index 0000000000000000000000000000000000000000..5ad3cc312285bb7da12c8f3719b35c795647e856 GIT binary patch literal 35680 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 KM829$$o~Pe+w`aa literal 0 HcmV?d00001 diff --git a/docs/source/dev/index.rst b/docs/source/dev/index.rst new file mode 100644 index 0000000..6a6c722 --- /dev/null +++ b/docs/source/dev/index.rst @@ -0,0 +1,71 @@ +Developer Page +-------------- + +This page explains how you can contribute to the development of `statsmodels` +by submitting patches, statistical tests, new models, or examples. + +`statsmodels` is developed on `Github +`_ using the `Git +`_ version control system. + +Submitting a Bug Report +~~~~~~~~~~~~~~~~~~~~~~~ + +- Include a short, self-contained code snippet that reproduces the problem +- Specify the statsmodels version used. You can do this with ``sm.version.full_version`` +- If the issue looks to involve other dependencies, also include the output of ``sm.show_versions()`` + +Making Changes to the Code +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +For a pull request to be accepted, you must meet the below requirements. This greatly helps the job of maintaining and releasing the software a shared effort. + +- **One branch. One feature.** Branches are cheap and github makes it easy to merge and delete branches with a few clicks. Avoid the temptation to lump in a bunch of unrelated changes when working on a feature, if possible. This helps us keep track of what has changed when preparing a release. +- Commit messages should be clear and concise. This means a subject line of less than 80 characters, and, if necessary, a blank line followed by a commit message body. We have an `informal commit format standard `_ that we try to adhere to. You can see what this looks like in practice by ``git log --oneline -n 10``. If your commit references or closes a specific issue, you can close it by mentioning it in the `commit message `_. (*For maintainers*: These suggestions go for Merge commit comments too. These are partially the record for release notes.) +- Code submissions must always include tests. See our notes on :ref:`testing`. +- Each function, class, method, and attribute needs to be documented using docstrings. We conform to the `numpy docstring standard `_. +- If you are adding new functionality, you need to add it to the documentation by editing (or creating) the appropriate file in ``docs/source``. +- Make sure your documentation changes parse correctly. Change into the top-level ``docs/`` directory and type:: + + make clean + make html + + Check that the build output does not have *any* warnings due to your changes. +- Finally, please add your changes to the release notes. Open the ``docs/source/release/versionX.X.rst`` file that has the version number of the next release and add your changes to the appropriate section. + +How to Submit a Pull Request +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +So you want to submit a patch to `statsmodels` but aren't too familiar with github? Here are the steps you need to take. + +1. `Fork `_ the `statsmodels repository `_ on Github. +2. `Create a new feature branch `_. Each branch must be self-contained, with a single new feature or bugfix. +3. Make sure the test suite passes. This includes testing on Python 3. The easiest way to do this is to either enable `Travis-CI `_ on your fork, or to make a pull request and check there. +4. `Submit a pull request `_ + +Mailing List +~~~~~~~~~~~~ + +Conversations about development take place on the `statsmodels mailing list `__. + +License +~~~~~~~ + +Statsmodels is released under +the `Modified (3-clause) BSD license `_. + +Contents +~~~~~~~~ + +.. toctree:: + :maxdepth: 3 + + git_notes + maintainer_notes + test_notes + naming_conventions + dataset_notes + examples + get_involved + internal + testing diff --git a/docs/source/dev/internal.rst b/docs/source/dev/internal.rst new file mode 100644 index 0000000..c2f22f7 --- /dev/null +++ b/docs/source/dev/internal.rst @@ -0,0 +1,79 @@ +.. _model: + + + +Internal Classes +================ + +The following summarizes classes and functions that are not intended to be +directly used, but of interest only for internal use or for a developer who +wants to extend on existing model classes. + + +Module Reference +---------------- + +Model and Results Classes +^^^^^^^^^^^^^^^^^^^^^^^^^ + +These are the base classes for both the estimation models and the results. +They are not directly useful, but layout the structure of the subclasses and +define some common methods. + +.. currentmodule:: statsmodels.base.model + +.. autosummary:: + :toctree: generated/ + + Model + LikelihoodModel + GenericLikelihoodModel + Results + LikelihoodModelResults + ResultMixin + GenericLikelihoodModelResults + +.. currentmodule:: statsmodels.stats.contrast + +.. autosummary:: + :toctree: generated/ + + ContrastResults + +.. inheritance-diagram:: statsmodels.base.model statsmodels.discrete.discrete_model statsmodels.regression.linear_model statsmodels.miscmodels.count + :parts: 3 + + +.. inheritance-diagram:: statsmodels.regression.linear_model.GLS statsmodels.regression.linear_model.WLS statsmodels.regression.linear_model.OLS statsmodels.regression.linear_model.GLSAR + :parts: 1 + +Linear Model +^^^^^^^^^^^^ + +.. inheritance-diagram:: statsmodels.regression.linear_model + :parts: 1 + +Generalized Linear Model +^^^^^^^^^^^^^^^^^^^^^^^^ + +.. inheritance-diagram:: statsmodels.genmod.generalized_linear_model + statsmodels.genmod.families.family statsmodels.genmod.families.links + :parts: 1 + +Discrete Model +^^^^^^^^^^^^^^ + +.. inheritance-diagram:: statsmodels.discrete.discrete_model + :parts: 1 + +Robust Model +^^^^^^^^^^^^ + +.. inheritance-diagram:: statsmodels.robust.robust_linear_model + :parts: 1 + +Vector Autoregressive Model +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. inheritance-diagram:: statsmodels.tsa.vector_ar.var_model + :parts: 3 diff --git a/docs/source/dev/maintainer_notes.rst b/docs/source/dev/maintainer_notes.rst new file mode 100644 index 0000000..5a66ee1 --- /dev/null +++ b/docs/source/dev/maintainer_notes.rst @@ -0,0 +1,192 @@ +Maintainer Notes +================ + +This is for those with read-write access to upstream. It is recommended to name the upstream +remote something to remind you that it is read-write:: + + git remote add upstream-rw git@github.com:statsmodels/statsmodels.git + git fetch upstream-rw + +Git Workflow +------------ + +Grabbing Changes from Others +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +If you need to push changes from others, you can link to their repository by doing:: + + git remote add contrib-name git://github.com/contrib-name/statsmodels.git + get fetch contrib-name + git branch shiny-new-feature --track contrib-name/shiny-new-feature + git checkout shiny-new-feature + +The rest of the below assumes you are on your or someone else's branch with the changes you +want to push upstream. + +.. _rebasing: + +Rebasing +~~~~~~~~ + +If there are only a few commits, you can rebase to keep a linear history:: + + git fetch upstream-rw + git rebase upstream-rw/master + +Rebasing will not automatically close the pull request however, if there is one, +so don't forget to do this. + +.. _merging: + +Merging +~~~~~~~ + +If there is a long series of related commits, then you'll want to merge. You may ask yourself, +:ref:`ff-no-ff`? See below for more on this choice. Once decided you can do:: + + git fetch upstream-rw + git merge --no-ff upstream-rw/master + +Merging will automaticall close the pull request on github. + +Check the History +~~~~~~~~~~~~~~~~~ + +This is very important. Again, any and all fixes should be made locally before pushing to the +repository:: + + git log --oneline --graph + +This shows the history in a compact way of the current branch. This:: + + git log -p upstream-rw/master.. + +shows the log of commits excluding those that can be reached from upstream-rw/master, and +including those that can be reached from current HEAD. That is, those changes unique to this +branch versus upstream-rw/master. See :ref:`Pydagogue ` for more on using +dots with log and also for using :ref:`dots with diff `. + +Push Your Feature Branch +~~~~~~~~~~~~~~~~~~~~~~~~ + +All the changes look good? You can push your feature branch after :ref:`merging` or :ref:`rebasing` by:: + + git push upstream-rw shiny-new-feature:master + +Cherry-Picking +~~~~~~~~~~~~~~ + +Say you are interested in some commit in another branch, but want to leave the other ones for now. +You can do this with a cherry-pick. Use `git log --oneline` to find the commit that you want to +cherry-pick. Say you want commit `dd9ff35` from the `shiny-new-feature` branch. You want to apply +this commit to master. You simply do:: + + git checkout master + git cherry-pick dd9ff35 + +And that's all. This commit is now applied as a new commit in master. + +.. _ff-no-ff: + +Merging: To Fast-Forward or Not To Fast-Forward +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +By default, `git merge` is a fast-forward merge. What does this mean, and when do you want to avoid +this? + +.. figure:: images/git_merge.png + :alt: git merge diagram + :scale: 100% + :align: center + + (source `nvie.com `__, post `"A successful Git branching model" `__) + +The fast-forward merge does not create a merge commit. This means that the existence of the feature +branch is lost in the history. The fast-forward is the default for Git basically because branches are +cheap and, therefore, *usually* short-lived. If on the other hand, you have a long-lived feature +branch or are following an iterative workflow on the feature branch (i.e. merge into master, then +go back to feature branch and add more commits), then it makes sense to include only the merge +in the main branch, rather than all the intermediate commits of the feature branch, so you should +use:: + + git merge --no-ff + +Handling Pull Requests +~~~~~~~~~~~~~~~~~~~~~~ + +You can apply a pull request through `fetch `__ and `merge `__. In your local +copy of the main repo:: + + git checkout master + git remote add contrib-name git://github.com/contrib-name/statsmodels.git + git fetch contrib-name + git merge contrib-name/shiny-new-feature + +Check that the merge applies cleanly and the history looks good. Edit the merge message. Add a short +explanation of what the branch did along with a 'Closes gh-XXX.' string. This will auto-close the pull +request and link the ticket and closing commit. To automatically close the issue, you can use any of:: + + gh-XXX + GH-XXX + #XXX + +in the commit message. Any and all problems need to be taken care of locally before doing:: + + git push origin master + +Releasing +--------- + +#. Fix the version number. Open setup.py and set:: + + ISRELEASED = True + +#. Clean the working tree with:: + + git clean -xdf + + But you might want to do a dry-run first:: + + git clean -xdfn + +#. Tag the release. For a release candidate, for example:: + + git tag -a v0.3.0rc1 -m "Version 0.3.0 Release Candidate 1" 7b2fb29 + +#. If on a new minor release (major.minor.micro format) start a new maintenance branch, for example:: + + git checkout -b maintenance/0.3.x + + Any bug fixes and maintenance commits intended for the next micro release should be made against master as usual, but tagged with the milestone for the micro release it is intended for. Then merge into master as usual. When ready to do the backports, use the file ``tools/backport_pr.py`` to identify which PRs need to be backported and to apply them to the maintenance branch. The tag for the release should be made in the maintenance branch. + +#. Upload the source distribution to PyPI:: + + python setup.py sdist --formats=gztar,zip register upload + +#. Go back to setup.py and set `isreleased = False` and bump the major version in master. + +#. Update the version numbers in the statsmodels/statsmodels-website repo. These are in conf.py. Also upload the released version docs to stable/, move stable/ to a placeholder for older version documentation. + +#. Make an announcment + +#. Profit + + +Commit Comments +--------------- +Prefix commit messages in the master branch of the main shared repository with the following:: + + ENH: Feature implementation + BUG: Bug fix + STY: Coding style changes (indenting, braces, code cleanup) + DOC: Sphinx documentation, docstring, or comment changes + CMP: Compiled code issues, regenerating C code with Cython, etc. + REL: Release related commit + TST: Change to a test, adding a test. Only used if not directly related to a bug. + REF: Refactoring changes + + +vbench +------ + +See :ref:`vbenchdoc` notes for working with the `statsmodels vbench suite `_. The github repository is available `here `_. diff --git a/docs/source/dev/naming_conventions.rst b/docs/source/dev/naming_conventions.rst new file mode 100644 index 0000000..a63173e --- /dev/null +++ b/docs/source/dev/naming_conventions.rst @@ -0,0 +1,96 @@ +Naming Conventions +------------------ + +File and Directory Names +~~~~~~~~~~~~~~~~~~~~~~~~ +Our directory tree stripped down looks something like:: + + statsmodels/ + __init__.py + api.py + discrete/ + __init__.py + discrete_model.py + tests/ + results/ + tsa/ + __init__.py + api.py + tsatools.py + stattools.py + arima_model.py + arima_process.py + vector_ar/ + __init__.py + var_model.py + tests/ + results/ + tests/ + results/ + stats/ + __init__.py + api.py + stattools.py + tests/ + tools/ + __init__.py + tools.py + decorators.py + tests/ + +The submodules are arranged by topic, `discrete` for discrete choice models, or `tsa` for time series +analysis. The submodules that can be import heavy contain an empty __init__.py, except for some testing +code for running tests for the submodules. The namespace to be imported is in `api.py`. That way, we +can import selectively and do not have to import a lot of code that we don't need. Helper functions are +usually put in files named `tools.py` and statistical functions, such as statistical tests are placed +in `stattools.py`. Everything has directories for :ref:`tests `. + +`endog` & `exog` +~~~~~~~~~~~~~~~~ + +Our working definition of a statistical model is an object that has +both endogenous and exogenous data defined as well as a statistical +relationship. In place of endogenous and exogenous one can often substitute +the terms left hand side (LHS) and right hand side (RHS), dependent and +independent variables, regressand and regressors, outcome and design, response +variable and explanatory variable, respectively. The usage is quite often +domain specific; however, we have chosen to use `endog` and `exog` almost +exclusively, since the principal developers of statsmodels have a background +in econometrics, and this feels most natural. This means that all of the +models are objects with `endog` and `exog` defined, though in some cases +`exog` is None for convenience (for instance, with an autoregressive process). +Each object also defines a `fit` (or similar) method that returns a +model-specific results object. In addition there are some functions, e.g. for +statistical tests or convenience functions. + +See also the related explanation in :ref:`endog_exog`. + +Variable Names +~~~~~~~~~~~~~~ +All of our models assume that data is arranged with variables in columns. Thus, internally the data +is all 2d arrays. By convention, we will prepend a `k_` to variable names that indicate moving over +axis 1 (columns), and `n_` to variables that indicate moving over axis 0 (rows). The main exception to +the underscore is that `nobs` should indicate the number of observations. For example, in the +time-series ARMA model we have:: + + `k_ar` - The number of AR lags included in the RHS variables + `k_ma` - The number of MA lags included in the RHS variables + `k_trend` - The number of trend variables included in the RHS variables + `k_exog` - The number of exogenous variables included in the RHS variables excluding the trend terms + `n_totobs` - The total number of observations for the LHS variables including the pre-sample values + + +Options +~~~~~~~ +We are using similar options in many classes, methods and functions. They +should follow a standardized pattern if they recurr frequently. :: + + `missing` ['none', 'drop', 'raise'] define whether inputs are checked for + nans, and how they are treated + `alpha` (float in (0, 1)) significance level for hypothesis tests and + confidence intervals, e.g. `alpha=0.05` + +patterns :: + + `return_xxx` : boolean to indicate optional or different returns + (not `ret_xxx`) diff --git a/docs/source/dev/test_notes.rst b/docs/source/dev/test_notes.rst new file mode 100644 index 0000000..a8ea396 --- /dev/null +++ b/docs/source/dev/test_notes.rst @@ -0,0 +1,114 @@ +.. _testing: + +Testing +======= + +Test Driven Development +~~~~~~~~~~~~~~~~~~~~~~~ +We strive to follow a `Test Driven Development (TDD) `_ pattern. +All models or statistical functions that are added to the main code base are to have +tests versus an existing statistical package, if possible. + +Introduction to Nose +~~~~~~~~~~~~~~~~~~~~ +Like many packages, statsmodels uses the `Nose testing system `__ and the convenient extensions in `numpy.testing `__. Nose itself is an extension of :mod:`Python's unittest `. Nose will find any file, directory, function, or class name that matches the regular expression ``(?:^|[b_./-])[Tt]est``. This is mainly functions that begin with test* and classes that begin with Test*. + +.. _run-tests: + +Running the Test Suite +~~~~~~~~~~~~~~~~~~~~~~ + +You can run all the tests by:: + + >>> import statsmodels.api as sm + >>> sm.test() + +You can test submodules by:: + + >>> sm.discrete.test() + + +How To Write A Test +~~~~~~~~~~~~~~~~~~~ +NumPy provides a good introduction to unit testing with Nose and NumPy extensions `here `__. It is worth a read for some more details. +Here, we will document a few conventions we follow that are worth mentioning. Often we want to test +a whole model at once rather than just one function, for example. The following is a pared down +version test_discrete.py. In this case, several different models with different options need to be +tested. The tests look something like + +.. code-block:: python + + from numpy.testing import assert_almost_equal + import statsmodels.api as sm + from results.results_discrete import Spector + + class CheckDiscreteResults(object): + """ + res2 are the results. res1 are the values from statsmodels + """ + + def test_params(self): + assert_almost_equal(self.res1.params, self.res2.params, 4) + + decimal_tvalues = 4 + def test_tvalues(self): + assert_almost_equal(self.res1.params, self.res2.params, self.decimal_tvalues) + + # ... as many more tests as there are common results + + class TestProbitNewton(CheckDiscreteResults): + """ + Tests the Probit model using Newton's method for fitting. + """ + + @classmethod + def setupClass(cls): + # set up model + data = sm.datasets.spector.load() + data.exog = sm.add_constant(data.exog) + cls.res1 = sm.Probit(data.endog, data.exog).fit(method='newton', disp=0) + + # set up results + res2 = Spector() + res2.probit() + cls.res2 = res2 + + # set up precision + cls.decimal_tvalues = 3 + + def test_model_specifc(self): + assert_almost_equal(self.res1.foo, self.res2.foo, 4) + + if __name__ == "__main__": + import nose + nose.runmodule(argv=[__file__, '-vvs', '-x', '--pdb'], exit=False) + +The main workhorse is the `CheckDiscreteResults` class. Notice that we can set the level of precision +for `tvalues` to be different than the default in the subclass `TestProbitNewton`. All of the test +classes have a `setupClass` :func:`python:classmethod`. Otherwise, Nose would reinstantiate the class +before every single test method. If the fitting of the model is time consuming, then this is clearly +undesirable. Finally, we have a script at the bottom so that we can run the tests should be running +the Python file. + +Test Results +~~~~~~~~~~~~ +The test results are the final piece of the above example. For many tests, especially those for the +models, there are many results against which you would like to test. It makes sense then to separate +the hard-coded results from the actual tests to make the tests more readable. If there are only a few +results it's not necessary to separate the results. We often take results from some other statistical +package. It is important to document where you got the results from and why they might differ from +the results that we get. Each tests folder has a results subdirectory. Consider the folder structure +for the discrete models:: + + tests/ + __init__.py + test_discrete.py + results/ + __init__.py + results_discrete.py + nbinom_resids.csv + +It is up to you how best to structure the results. In the discrete model example, you will notice +that there are result classes based around particular datasets with a method for loading different +model results for that dataset. You can also include text files that hold results to be loaded by +results classes if it is easier than putting them in the class itself. diff --git a/docs/source/dev/testing.rst b/docs/source/dev/testing.rst new file mode 100644 index 0000000..d5c9632 --- /dev/null +++ b/docs/source/dev/testing.rst @@ -0,0 +1,12 @@ +Testing on Build Machines +------------------------- + +There are currently several places that statsmodels is automatically built and tested against different dependency and Python versions and architectures. Check these logs periodically, make sure everything looks okay, and fix any failures.: + +* `Travis CI `_ +* `Daily testing on Ubuntu via Python(x,y) `_ +* `NiPy testing on SPARC Boxes `_ + +The test coverage pages are here. + +* `Coveralls `_ diff --git a/docs/source/dev/vbench.rst b/docs/source/dev/vbench.rst new file mode 100644 index 0000000..d11773b --- /dev/null +++ b/docs/source/dev/vbench.rst @@ -0,0 +1,141 @@ +:orphan: + +.. _vbenchdoc: + +vbench +====== + +`vbench`_ is a tool for benchmarking your code through time, for showing performance improvement or regressions. + +WARNING: ``vbench`` is not yet compatible with python3. + +New Dependencies +~~~~~~~~~~~~~~~~ + +* `vbench`_ (from github only) +* `sqlalchemy`_ +* `gitpython`_ +* `psutil`_ +* `affinity`_ (As a fallback to psutil) + +.. _vbench: https://github.com/pydata/vbench +.. _sqlalchemy: https://pypi.python.org/pypi/SQLAlchemy +.. _gitpython: https://pypi.python.org/pypi/GitPython/ +.. _psutil: https://pypi.python.org/pypi/psutil +.. _affinity: https://pypi.python.org/pypi/affinity + +Also note that you need to have sqlite3 working with python. + +Writing a good vbench +~~~~~~~~~~~~~~~~~~~~~ + +A set of related benchmarks go together in a module (a ``.py`` file). +See ``vb_suite/discrete.py`` for an example. + +There's typically some boilerplate common to all the tests, which can +be placed in a string ``common_setup``. + +Now we can write our specific benchmark. + +There are up to three items in a single benchmark: + +* setup specific to that benchmark (typically a string concatenated to ``common_setup``) +* a statement to be executed, which is the first argument to the ``vbench.BenchmarkRunner`` class +* instantiation the ``vbench.Benchmark`` class + +It's important to separate the setup from the statement we're interested in profiling. +The statement ought to be concise and should profile only one thing. +If you mix setup in with the statement to be profiled, then changes affecting the performance of the setup (which might even take place outside your library) will pollute the test. + +Each module must be listed in the ``suite.py`` file in the modules list. + +Not all tests can be run against the entire history of the project. +For newer features, each ``Benchmark`` object takes an optional ``start_date`` parameter. +For example: + +.. code-block:: python + + start_date=datetime(2012, 1, 1) + +If a ``start_date`` is not applied for a specific benchmark, the global setting from ``vb_suite.py`` is used. + +Another reason that a benchmark can't be run against the entire project's history is that API's sometimes have to change in ways that are not backwards compatible. +For these cases, the easiest way to compare performance pre- to post-API change is probably the try-except idiom: + +.. code-block:: python + + rng = date_range('1/1/2000', periods=N, freq='min') + +Pre-PR +~~~~~~ + +Most contributors don't need to worry about writing a vbench or running the full suite against the project's entire history. +Use ``test_perf.py`` to see how the performance of your PR compares against a known-to-be-good benchmark. + + +Implementation +============== + +There are two main uses for ``vbench.`` +The first is most useful for someone submitting a pull request that might affect the performance of the library. +In this case, the submitter should run ``python vb_suite/test_perf.py -b base_commit -H``, where ``base_commit`` is the baseline commit hash you want to compare to. +The ``-H`` argument says to compare the HEAD of your branch against the baseline commit. + +The second use-case is for measuring the long-term performance of the project. +For this case the file of interest is ``run_suite.py``. +Using the parameters specified in that file, the suite of benchmarks is run against the history of the project. +The results are stored in a sqlite database. + +suite.py +~~~~~~~~ + +This is the main configuration file. +It pulls in the benchmarks from the various modules in ``vb_suite``, reads in the user configuration, and handles the setup and tear-down of the performance tests. + +run_suite.py +~~~~~~~~~~~~ + +Useful for the maintainers of the project to track performance over time. +Runs with no arguments from the command line. +Persists the results in a database so that the the full suite needn't be rerun each time. + +User config file +~~~~~~~~~~~~~~~~ + +Only necessary if you're running ``run_suite.py``. +Should look something like: + +repo_path: /Home/Envs/statsmodels/lib/python2.7/site~packages/statsmodels/ +repo_url: https://github.com/statsmodels/statsmodels.git +db_path: /Homevbench/statsmodels/vb_suite/benchmarks.db +tmp_dir: /Home/tmp + + +test_perf.py +~~~~~~~~~~~~ + +Use before commit to check for performance regressions. +CLT, use ``python test_perf.py -h`` for help. + +Most of the time you'll be giving it one or two arguments: + +* ``-b BASE_COMMIT``: the commit you're comparing your commit against +* ``-t TARGET_COMMIT``: or use -H to set the target to the ``HEAD`` of your branch. + + +generate_rst_files.py +~~~~~~~~~~~~~~~~~~~~~ + +Once you've run `run_suite.py` and generated a benchmark database, you can use ``generate_rst_files.py`` to graph performance over time. + + +References: +~~~~~~~~~~~ + +`http://wesmckinney.com/blog/?p=373 `_ + +`https://github.com/pydata/vbench `_ + +`https://github.com/pydata/pandas/tree/master/vb_suite `_ + +`https://github.com/yarikoptic/numpy-vbench `_ diff --git a/docs/source/diagnostic.rst b/docs/source/diagnostic.rst new file mode 100644 index 0000000..8540377 --- /dev/null +++ b/docs/source/diagnostic.rst @@ -0,0 +1,227 @@ +:orphan: + +.. _diagnostics: + +Regression Diagnostics and Specification Tests +============================================== + + +Introduction +------------ + +In many cases of statistical analysis, we are not sure whether our statistical +model is correctly specified. For example when using ols, then linearity and +homoscedasticity are assumed, some test statistics additionally assume that +the errors are normally distributed or that we have a large sample. +Since our results depend on these statistical assumptions, the results are +only correct of our assumptions hold (at least approximately). + +One solution to the problem of uncertainty about the correct specification is +to use robust methods, for example robust regression or robust covariance +(sandwich) estimators. The second approach is to test whether our sample is +consistent with these assumptions. + +The following briefly summarizes specification and diagnostics tests for +linear regression. + +Heteroscedasticity Tests +------------------------ + +For these test the null hypothesis is that all observations have the same +error variance, i.e. errors are homoscedastic. The tests differ in which kind +of heteroscedasticity is considered as alternative hypothesis. They also vary +in the power of the test for different types of heteroscedasticity. + +:py:func:`het_breuschpagan ` + Lagrange Multiplier Heteroscedasticity Test by Breusch-Pagan + +:py:func:`het_white ` + Lagrange Multiplier Heteroscedasticity Test by White + +:py:func:`het_goldfeldquandt ` + test whether variance is the same in 2 subsamples + + +Autocorrelation Tests +--------------------- + +This group of test whether the regression residuals are not autocorrelated. +They assume that observations are ordered by time. + +:py:func:`durbin_watson ` + - Durbin-Watson test for no autocorrelation of residuals + - printed with summary() + +:py:func:`acorr_ljungbox ` + - Ljung-Box test for no autocorrelation of residuals + - also returns Box-Pierce statistic + +:py:func:`acorr_breusch_godfrey ` + - Breusch-Pagan test for no autocorrelation of residuals + + +missing + - ? + + +Non-Linearity Tests +------------------- + +:py:func:`linear_harvey_collier ` + - Multiplier test for Null hypothesis that linear specification is + correct + +:py:func:`acorr_linear_rainbow ` + - Multiplier test for Null hypothesis that linear specification is + correct. + +:py:func:`acorr_linear_lm ` + - Lagrange Multiplier test for Null hypothesis that linear specification is + correct. This tests against specific functional alternatives. + + +Tests for Structural Change, Parameter Stability +------------------------------------------------ + +Test whether all or some regression coefficient are constant over the +entire data sample. + +Known Change Point +^^^^^^^^^^^^^^^^^^ + +OneWayLS : + - flexible ols wrapper for testing identical regression coefficients across + predefined subsamples (eg. groups) + +missing + - predictive test: Greene, number of observations in subsample is smaller than + number of regressors + + +Unknown Change Point +^^^^^^^^^^^^^^^^^^^^ + +:py:func:`breaks_cusumolsresid ` + - cusum test for parameter stability based on ols residuals + +:py:func:`breaks_hansen ` + - test for model stability, breaks in parameters for ols, Hansen 1992 + +:py:func:`recursive_olsresiduals ` + Calculate recursive ols with residuals and cusum test statistic. This is + currently mainly helper function for recursive residual based tests. + However, since it uses recursive updating and doesn't estimate separate + problems it should be also quite efficient as expanding OLS function. + +missing + - supLM, expLM, aveLM (Andrews, Andrews/Ploberger) + - R-structchange also has musum (moving cumulative sum tests) + - test on recursive parameter estimates, which are there? + + +Mutlicollinearity Tests +-------------------------------- + +conditionnum (statsmodels.stattools) + - -- needs test vs Stata -- + - cf Grene (3rd ed.) pp 57-8 + +numpy.linalg.cond + - (for more general condition numbers, but no behind the scenes help for + design preparation) + +Variance Inflation Factors + This is currently together with influence and outlier measures + (with some links to other tests here: http://www.stata.com/help.cgi?vif) + + +Normality and Distribution Tests +-------------------------------- + +:py:func:`jarque_bera ` + - printed with summary() + - test for normal distribution of residuals + +Normality tests in scipy stats + need to find list again + +:py:func:`omni_normtest ` + - test for normal distribution of residuals + - printed with summary() + +:py:func:`normal_ad ` + - Anderson Darling test for normality with estimated mean and variance + +:py:func:`kstest_normal ` :py:func:`lilliefors ` + Lilliefors test for normality, this is a Kolmogorov-Smirnov tes with for + normality with estimated mean and variance. lilliefors is an alias for + kstest_normal + +qqplot, scipy.stats.probplot + +other goodness-of-fit tests for distributions in scipy.stats and enhancements + - kolmogorov-smirnov + - anderson : Anderson-Darling + - likelihood-ratio, ... + - chisquare tests, powerdiscrepancy : needs wrapping (for binning) + + +Outlier and Influence Diagnostic Measures +----------------------------------------- + +These measures try to identify observations that are outliers, with large +residual, or observations that have a large influence on the regression +estimates. Robust Regression, RLM, can be used to both estimate in an outlier +robust way as well as identify outlier. The advantage of RLM that the +estimation results are not strongly influenced even if there are many +outliers, while most of the other measures are better in identifying +individual outliers and might not be able to identify groups of outliers. + +:py:class:`RLM ` + example from example_rlm.py :: + + import statsmodels.api as sm + + ### Example for using Huber's T norm with the default + ### median absolute deviation scaling + + data = sm.datasets.stackloss.load() + data.exog = sm.add_constant(data.exog) + huber_t = sm.RLM(data.endog, data.exog, M=sm.robust.norms.HuberT()) + hub_results = huber_t.fit() + print(hub_results.weights) + + And the weights give an idea of how much a particular observation is + down-weighted according to the scaling asked for. + +:py:class:`Influence ` + Class in stats.outliers_influence, most standard measures for outliers + and influence are available as methods or attributes given a fitted + OLS model. This is mainly written for OLS, some but not all measures + are also valid for other models. + Some of these statistics can be calculated from an OLS results instance, + others require that an OLS is estimated for each left out variable. + + - resid_press + - resid_studentized_external + - resid_studentized_internal + - ess_press + - hat_matrix_diag + - cooks_distance - Cook's Distance `Wikipedia `_ (with some other links) + - cov_ratio + - dfbetas + - dffits + - dffits_internal + - det_cov_params_not_obsi + - params_not_obsi + - sigma2_not_obsi + + + +Unit Root Tests +--------------- + +:py:func:`unitroot_adf ` + - same as adfuller but with different signature + + diff --git a/docs/source/discretemod.rst b/docs/source/discretemod.rst new file mode 100644 index 0000000..3cdec0c --- /dev/null +++ b/docs/source/discretemod.rst @@ -0,0 +1,101 @@ +.. currentmodule:: statsmodels.discrete.discrete_model + + +.. _discretemod: + +Regression with Discrete Dependent Variable +=========================================== + +Regression models for limited and qualitative dependent variables. The module +currently allows the estimation of models with binary (Logit, Probit), nominal +(MNLogit), or count (Poisson) data. + +See `Module Reference`_ for commands and arguments. + +Examples +-------- + +.. ipython:: python + + # Load the data from Spector and Mazzeo (1980) + spector_data = sm.datasets.spector.load() + spector_data.exog = sm.add_constant(spector_data.exog) + + # Logit Model + logit_mod = sm.Logit(spector_data.endog, spector_data.exog) + logit_res = logit_mod.fit() + print(logit_res.summary()) + +Detailed examples can be found here: + + +* `Overview `__ +* `Examples `__ + +Technical Documentation +----------------------- + +Currently all models are estimated by Maximum Likelihood and assume +independently and identically distributed errors. + +All discrete regression models define the same methods and follow the same +structure, which is similar to the regression results but with some methods +specific to discrete models. Additionally some of them contain additional model +specific methods and attributes. + + +References +^^^^^^^^^^ + +General references for this class of models are:: + + A.C. Cameron and P.K. Trivedi. `Regression Analysis of Count Data`. + Cambridge, 1998 + + G.S. Madalla. `Limited-Dependent and Qualitative Variables in Econometrics`. + Cambridge, 1983. + + W. Greene. `Econometric Analysis`. Prentice Hall, 5th. edition. 2003. + +Module Reference +---------------- + +The specific model classes are: + +.. autosummary:: + :toctree: generated/ + + Logit + Probit + MNLogit + Poisson + NegativeBinomial + +The specific result classes are: + +.. autosummary:: + :toctree: generated/ + + LogitResults + ProbitResults + CountResults + MultinomialResults + NegativeBinomialResults + +:class:`DiscreteModel` is a superclass of all discrete regression models. The +estimation results are returned as an instance of one of the subclasses of +:class:`DiscreteResults`. Each category of models, binary, count and +multinomial, have their own intermediate level of model and results classes. +This intermediate classes are mostly to facilitate the implementation of the +methods and attributes defined by :class:`DiscreteModel` and +:class:`DiscreteResults`. + +.. autosummary:: + :toctree: generated/ + + DiscreteModel + DiscreteResults + BinaryModel + BinaryResults + CountModel + MultinomialModel diff --git a/docs/source/distributions.rst b/docs/source/distributions.rst new file mode 100644 index 0000000..68395b4 --- /dev/null +++ b/docs/source/distributions.rst @@ -0,0 +1,88 @@ +.. currentmodule:: statsmodels.sandbox.distributions + +.. _distributions: + + +Distributions +============= + +This section collects various additional functions and methods for statistical +distributions. + +Empirical Distributions +----------------------- + +.. currentmodule:: statsmodels.distributions.empirical_distribution + +.. autosummary:: + :toctree: generated/ + + ECDF + StepFunction + monotone_fn_inverter + +Distribution Extras +------------------- + + +.. currentmodule:: statsmodels.sandbox.distributions.extras + +*Skew Distributions* + +.. autosummary:: + :toctree: generated/ + + SkewNorm_gen + SkewNorm2_gen + ACSkewT_gen + skewnorm2 + +*Distributions based on Gram-Charlier expansion* + +.. autosummary:: + :toctree: generated/ + + pdf_moments_st + pdf_mvsk + pdf_moments + NormExpan_gen + +*cdf of multivariate normal* wrapper for scipy.stats + + +.. autosummary:: + :toctree: generated/ + + mvstdnormcdf + mvnormcdf + +Univariate Distributions by non-linear Transformations +------------------------------------------------------ + +Univariate distributions can be generated from a non-linear transformation of an +existing univariate distribution. `Transf_gen` is a class that can generate a new +distribution from a monotonic transformation, `TransfTwo_gen` can use hump-shaped +or u-shaped transformation, such as abs or square. The remaining objects are +special cases. + +.. currentmodule:: statsmodels.sandbox.distributions.transformed + +.. autosummary:: + :toctree: generated/ + + TransfTwo_gen + Transf_gen + + ExpTransf_gen + LogTransf_gen + SquareFunc + + absnormalg + invdnormalg + + loggammaexpg + lognormalg + negsquarenormalg + + squarenormalg + squaretg diff --git a/docs/source/duration.rst b/docs/source/duration.rst new file mode 100644 index 0000000..6653536 --- /dev/null +++ b/docs/source/duration.rst @@ -0,0 +1,225 @@ +.. currentmodule:: statsmodels.duration + + +.. _duration: + +Methods for Survival and Duration Analysis +========================================== + +:mod:`statsmodels.duration` implements several standard methods for +working with censored data. These methods are most commonly used when +the data consist of durations between an origin time point and the +time at which some event of interest occurred. A typical example is a +medical study in which the origin is the time at which a subject is +diagnosed with some condition, and the event of interest is death (or +disease progression, recovery, etc.). + +Currently only right-censoring is handled. Right censoring occurs +when we know that an event occurred after a given time `t`, but we do +not know the exact event time. + +Survival function estimation and inference +------------------------------------------ + +The :class:`statsmodels.api.SurvfuncRight` class can be used to +estimate a survival function using data that may be right censored. +``SurvfuncRight`` implements several inference procedures including +confidence intervals for survival distribution quantiles, pointwise +and simultaneous confidence bands for the survival function, and +plotting procedures. The ``duration.survdiff`` function provides +testing procedures for comparing survival distributions. + +Examples +-------- + +Here we create a ``SurvfuncRight`` object using data from the +`flchain` study, which is available through the R datasets repository. +We fit the survival distribution only for the female subjects. + + +.. code-block:: python + + import statsmodels.api as sm + + data = sm.datasets.get_rdataset("flchain", "survival").data + df = data.loc[data.sex == "F", :] + sf = sm.SurvfuncRight(df["futime"], df["death"]) + +The main features of the fitted survival distribution can be seen by +calling the ``summary`` method: + +.. code-block:: python + + sf.summary().head() + +We can obtain point estimates and confidence intervals for quantiles +of the survival distribution. Since only around 30% of the subjects +died during this study, we can only estimate quantiles below the 0.3 +probability point: + +.. code-block:: python + + sf.quantile(0.25) + sf.quantile_ci(0.25) + +To plot a single survival function, call the ``plot`` method: + +.. code-block:: python + + sf.plot() + +Since this is a large dataset with a lot of censoring, we may wish +to not plot the censoring symbols: + +.. code-block:: python + + fig = sf.plot() + ax = fig.get_axes()[0] + pt = ax.get_lines()[1] + pt.set_visible(False) + +We can also add a 95% simultaneous confidence band to the plot. +Typically these bands only plotted for central part of the +distribution. + +.. code-block:: python + + fig = sf.plot() + lcb, ucb = sf.simultaneous_cb() + ax = fig.get_axes()[0] + ax.fill_between(sf.surv_times, lcb, ucb, color='lightgrey') + ax.set_xlim(365, 365*10) + ax.set_ylim(0.7, 1) + ax.set_ylabel("Proportion alive") + ax.set_xlabel("Days since enrollment") + +Here we plot survival functions for two groups (females and males) on +the same axes: + +.. code-block:: python + + gb = data.groupby("sex") + ax = plt.axes() + sexes = [] + for g in gb: + sexes.append(g[0]) + sf = sm.SurvfuncRight(g[1]["futime"], g[1]["death"]) + sf.plot(ax) + li = ax.get_lines() + li[1].set_visible(False) + li[3].set_visible(False) + plt.figlegend((li[0], li[2]), sexes, "center right") + plt.ylim(0.6, 1) + ax.set_ylabel("Proportion alive") + ax.set_xlabel("Days since enrollment") + +We can formally compare two survival distributions with ``survdiff``, +which implements several standard nonparametric procedures. The +default procedure is the logrank test: + +.. code-block:: python + + stat, pv = sm.duration.survdiff(data.futime, data.death, data.sex) + +Here are some of the other testing procedures implemented by survdiff: + +.. code-block:: python + + # Fleming-Harrington with p=1, i.e. weight by pooled survival time + stat, pv = sm.duration.survdiff(data.futime, data.death, data.sex, weight_type='fh', fh_p=1) + + # Gehan-Breslow, weight by number at risk + stat, pv = sm.duration.survdiff(data.futime, data.death, data.sex, weight_type='gb') + + # Tarone-Ware, weight by the square root of the number at risk + stat, pv = sm.duration.survdiff(data.futime, data.death, data.sex, weight_type='tw') + + +Regression methods +------------------ + +Proportional hazard regression models ("Cox models") are a regression +technique for censored data. They allow variation in the time to an +event to be explained in terms of covariates, similar to what is done +in a linear or generalized linear regression model. These models +express the covariate effects in terms of "hazard ratios", meaning the +the hazard (instantaneous event rate) is multiplied by a given factor +depending on the value of the covariates. + +Examples +-------- + +.. code-block:: python + + import statsmodels.api as sm + import statsmodels.formula.api as smf + + data = sm.datasets.get_rdataset("flchain", "survival").data + del data["chapter"] + data = data.dropna() + data["lam"] = data["lambda"] + data["female"] = (data["sex"] == "F").astype(int) + data["year"] = data["sample.yr"] - min(data["sample.yr"]) + status = data["death"].values + + mod = smf.phreg("futime ~ 0 + age + female + creatinine + " + "np.sqrt(kappa) + np.sqrt(lam) + year + mgus", + data, status=status, ties="efron") + rslt = mod.fit() + print(rslt.summary()) + + +See :ref:`statsmodels-examples` for more detailed examples. + + +There are some notebook examples on the Wiki: +`Wiki notebooks for PHReg and Survival Analysis `_ + + +.. todo:: + + Technical Documentation + +References +^^^^^^^^^^ + +References for Cox proportional hazards regression model:: + + T Therneau (1996). Extending the Cox model. Technical report. + http://www.mayo.edu/research/documents/biostat-58pdf/DOC-10027288 + + G Rodriguez (2005). Non-parametric estimation in survival models. + http://data.princeton.edu/pop509/NonParametricSurvival.pdf + + B Gillespie (2006). Checking the assumptions in the Cox proportional + hazards model. + http://www.mwsug.org/proceedings/2006/stats/MWSUG-2006-SD08.pdf + + +Module Reference +---------------- + +.. currentmodule:: statsmodels.duration.survfunc + +The class for working with survival distributions is: + +.. autosummary:: + :toctree: generated/ + + SurvfuncRight + +.. currentmodule:: statsmodels.duration.hazard_regression + +The proportional hazards regression model class is: + +.. autosummary:: + :toctree: generated/ + + PHReg + +The proportional hazards regression result class is: + +.. autosummary:: + :toctree: generated/ + + PHRegResults diff --git a/docs/source/emplike.rst b/docs/source/emplike.rst new file mode 100644 index 0000000..54b9242 --- /dev/null +++ b/docs/source/emplike.rst @@ -0,0 +1,68 @@ +.. currentmodule:: statsmodels.emplike + + +.. _emplike: + + +Empirical Likelihood :mod:`emplike` +==================================== + + +Introduction +------------ + +Empirical likelihood is a method of nonparametric inference and estimation that lifts the +obligation of having to specify a family of underlying distributions. Moreover, empirical +likelihood methods do not require re-sampling but still +uniquely determine confidence regions whose shape mirrors the shape of the data. +In essence, empirical likelihood attempts to combine the benefits of parametric +and nonparametric methods while limiting their shortcomings. The main difficulties of +empirical likelihood is the computationally intensive methods required to conduct inference. +:mod:`statsmodels.emplike` attempts to provide a user-friendly interface that allows the +end user to effectively conduct empirical likelihood analysis without having to concern +themselves with the computational burdens. + +Currently, :mod:`emplike` provides methods to conduct hypothesis tests and form confidence +intervals for descriptive statistics. Empirical likelihood estimation and inference +in a regression, accelerated failure time and instrumental variable model are +currently under development. + +References +^^^^^^^^^^ + +The main reference for empirical likelihood is:: + + Owen, A.B. "Empirical Likelihood." Chapman and Hall, 2001. + + + +Examples +-------- + +.. ipython:: python + + import numpy as np + import statsmodels.api as sm + + # Generate Data + x = np.random.standard_normal(50) + + # initiate EL + el = sm.emplike.DescStat(x) + + # confidence interval for the mean + el.ci_mean() + + # test variance is 1 + el.test_var(1) + + +Module Reference +---------------- + +.. autosummary:: + :toctree: generated/ + + descriptive.DescStat + descriptive.DescStatUV + descriptive.DescStatMV diff --git a/docs/source/endog_exog.rst b/docs/source/endog_exog.rst new file mode 100644 index 0000000..c040a7b --- /dev/null +++ b/docs/source/endog_exog.rst @@ -0,0 +1,86 @@ +.. _endog_exog: + +``endog``, ``exog``, what's that? +================================= + +Statsmodels is using ``endog`` and ``exog`` as names for the data, the +observed variables that are used in an estimation problem. Other names that +are often used in different statistical packages or text books are, for +example, + +===================== ====================== +endog exog +===================== ====================== +y x +y variable x variable +left hand side (LHS) right hand side (RHS) +dependent variable independent variable +regressand regressors +outcome design +response variable explanatory variable +===================== ====================== + +The usage is quite often domain and model specific; however, we have chosen +to use `endog` and `exog` almost exclusively. A mnenomic hint to keep the two +terms apart is that exogenous has an "x", as in x-variable, in it's name. + +`x` and `y` are one letter names that are sometimes used for temporary +variables and are not informative in itself. To avoid one letter names we +decided to use descriptive names and settled on ``endog`` and ``exog``. +Since this has been criticized, this might change in future. + +Background +---------- + +Some informal definitions of the terms are + +`endogenous`: caused by factors within the system + +`exogenous`: caused by factors outside the system + +*Endogenous variables designates variables in an economic/econometric model +that are explained, or predicted, by that model.* +http://stats.oecd.org/glossary/detail.asp?ID=794 + +*Exogenous variables designates variables that appear in an +economic/econometric model, but are not explained by that model (i.e. they are +taken as given by the model).* http://stats.oecd.org/glossary/detail.asp?ID=890 + +In econometrics and statistics the terms are defined more formally, and +different definitions of exogeneity (weak, strong, strict) are used depending +on the model. The usage in statsmodels as variable names cannot always be +interpreted in a formal sense, but tries to follow the same principle. + + +In the simplest form, a model relates an observed variable, y, to another set +of variables, x, in some linear or nonlinear form :: + + y = f(x, beta) + noise + y = x * beta + noise + +However, to have a statistical model we need additional assumptions on the +properties of the explanatory variables, x, and the noise. One standard +assumption for many basic models is that x is not correlated with the noise. +In a more general definition, x being exogenous means that we do not have to +consider how the explanatory variables in x were generated, whether by design +or by random draws from some underlying distribution, when we want to estimate +the effect or impact that x has on y, or test a hypothesis about this effect. + +In other words, y is *endogenous* to our model, x is *exogenous* to our model +for the estimation. + +As an example, suppose you run an experiment and for the second session some +subjects are not available anymore. +Is the drop-out relevant for the conclusions you draw for the experiment? +In other words, can we treat the drop-out decision as exogenous for our +problem. + +It is up to the user to know (or to consult a text book to find out) what the +underlying statistical assumptions for the models are. As an example, ``exog`` +in ``OLS`` can have lagged dependent variables if the error or noise term is +independently distributed over time (or uncorrelated over time). However, if +the error terms are autocorrelated, then OLS does not have good statistical +properties (is inconsistent) and the correct model will be ARMAX. +``statsmodels`` has functions for regression diagnostics to test whether some of +the assumptions are justified or not. + diff --git a/docs/source/example_formulas.rst b/docs/source/example_formulas.rst new file mode 100644 index 0000000..c1f6d68 --- /dev/null +++ b/docs/source/example_formulas.rst @@ -0,0 +1,177 @@ +.. _formula_examples: + +Fitting models using R-style formulas +===================================== + +Since version 0.5.0, ``statsmodels`` allows users to fit statistical +models using R-style formulas. Internally, ``statsmodels`` uses the +`patsy `_ package to convert formulas and +data to the matrices that are used in model fitting. The formula +framework is quite powerful; this tutorial only scratches the surface. A +full description of the formula language can be found in the ``patsy`` +docs: + +- `Patsy formula language description `_ + +Loading modules and functions +----------------------------- + +.. ipython:: python + + import statsmodels.formula.api as smf + import numpy as np + import pandas + +Notice that we called ``statsmodels.formula.api`` instead of the usual +``statsmodels.api``. The ``formula.api`` hosts many of the same +functions found in ``api`` (e.g. OLS, GLM), but it also holds lower case +counterparts for most of these models. In general, lower case models +accept ``formula`` and ``df`` arguments, whereas upper case ones take +``endog`` and ``exog`` design matrices. ``formula`` accepts a string +which describes the model in terms of a ``patsy`` formula. ``df`` takes +a `pandas `_ data frame. + +``dir(smf)`` will print a list of available models. + +Formula-compatible models have the following generic call signature: +``(formula, data, subset=None, *args, **kwargs)`` + +OLS regression using formulas +----------------------------- + +To begin, we fit the linear model described on the `Getting +Started `_ page. Download the data, subset columns, +and list-wise delete to remove missing observations: + +.. ipython:: python + + df = sm.datasets.get_rdataset("Guerry", "HistData").data + df = df[['Lottery', 'Literacy', 'Wealth', 'Region']].dropna() + df.head() + +Fit the model: + +.. ipython:: python + + mod = smf.ols(formula='Lottery ~ Literacy + Wealth + Region', data=df) + res = mod.fit() + print(res.summary()) + +Categorical variables +--------------------- + +Looking at the summary printed above, notice that ``patsy`` determined +that elements of *Region* were text strings, so it treated *Region* as a +categorical variable. ``patsy``'s default is also to include an +intercept, so we automatically dropped one of the *Region* categories. + +If *Region* had been an integer variable that we wanted to treat +explicitly as categorical, we could have done so by using the ``C()`` +operator: + +.. ipython:: python + + res = smf.ols(formula='Lottery ~ Literacy + Wealth + C(Region)', data=df).fit() + print(res.params) + + +Examples more advanced features ``patsy``'s categorical variables +function can be found here: `Patsy: Contrast Coding Systems for +categorical variables `_ + +Operators +--------- + +We have already seen that "~" separates the left-hand side of the model +from the right-hand side, and that "+" adds new columns to the design +matrix. + +Removing variables +~~~~~~~~~~~~~~~~~~ + +The "-" sign can be used to remove columns/variables. For instance, we +can remove the intercept from a model by: + +.. ipython:: python + + res = smf.ols(formula='Lottery ~ Literacy + Wealth + C(Region) -1 ', data=df).fit() + print(res.params) + + +Multiplicative interactions +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +":" adds a new column to the design matrix with the product of the other +two columns. "\*" will also include the individual columns that were +multiplied together: + +.. ipython:: python + + res1 = smf.ols(formula='Lottery ~ Literacy : Wealth - 1', data=df).fit() + res2 = smf.ols(formula='Lottery ~ Literacy * Wealth - 1', data=df).fit() + print(res1.params) + print(res2.params) + + +Many other things are possible with operators. Please consult the `patsy +docs `_ to learn +more. + +Functions +--------- + +You can apply vectorized functions to the variables in your model: + +.. ipython:: python + + res = smf.ols(formula='Lottery ~ np.log(Literacy)', data=df).fit() + print(res.params) + + +Define a custom function: + +.. ipython:: python + + def log_plus_1(x): + return np.log(x) + 1. + res = smf.ols(formula='Lottery ~ log_plus_1(Literacy)', data=df).fit() + print(res.params) + +.. _patsy-namespaces: + +Namespaces +---------- + +Notice that all of the above examples use the calling namespace to look for the functions to apply. The namespace used can be controlled via the ``eval_env`` keyword. For example, you may want to give a custom namespace using the :class:`patsy:patsy.EvalEnvironment` or you may want to use a "clean" namespace, which we provide by passing ``eval_func=-1``. The default is to use the caller's namespace. This can have (un)expected consequences, if, for example, someone has a variable names ``C`` in the user namespace or in their data structure passed to ``patsy``, and ``C`` is used in the formula to handle a categorical variable. See the `Patsy API Reference `_ for more information. + +Using formulas with models that do not (yet) support them +--------------------------------------------------------- + +Even if a given ``statsmodels`` function does not support formulas, you +can still use ``patsy``'s formula language to produce design matrices. +Those matrices can then be fed to the fitting function as ``endog`` and +``exog`` arguments. + +To generate ``numpy`` arrays: + +.. ipython:: python + + import patsy + f = 'Lottery ~ Literacy * Wealth' + y, X = patsy.dmatrices(f, df, return_type='dataframe') + print(y[:5]) + print(X[:5]) + +To generate pandas data frames: + +.. ipython:: python + + f = 'Lottery ~ Literacy * Wealth' + y, X = patsy.dmatrices(f, df, return_type='dataframe') + print(y[:5]) + print(X[:5]) + +.. ipython:: python + + print(smf.OLS(y, X).fit().summary()) + diff --git a/docs/source/examples/README b/docs/source/examples/README new file mode 100644 index 0000000..7e9162c --- /dev/null +++ b/docs/source/examples/README @@ -0,0 +1 @@ +The format for landing.json should be self-explanatory. The images should be placed in docs/source/_static/images/. They will be displayed at 360 x 225 (W x H). It's best to save them as a png with a resolution of a multiple of at least 720 x 450. If you want, you can use png crush to make the images smaller. diff --git a/docs/source/examples/index.rst b/docs/source/examples/index.rst new file mode 100644 index 0000000..197f1f0 --- /dev/null +++ b/docs/source/examples/index.rst @@ -0,0 +1,24 @@ +:orphan: + +.. _statsmodels-examples: + +Statsmodels Examples +==================== + +This page provides a series of examples, tutorials and recipes to help you get +started with ``statsmodels``. Each of the examples shown here is made available +as an IPython Notebook and as a plain python script on the `statsmodels github +repository `_. + +We also encourage users to submit their own examples, tutorials or cool +`statsmodels` trick to the `Examples wiki page +`_ + +The Examples +------------ + +.. toctree:: + :maxdepth: 3 + :glob: + + notebooks/generated/* diff --git a/docs/source/examples/landing.json b/docs/source/examples/landing.json new file mode 100644 index 0000000..4c9a706 --- /dev/null +++ b/docs/source/examples/landing.json @@ -0,0 +1,239 @@ +[ + { + "header":"Linear Regression Models", + "id":"regression", + "links":[ + { + "text": "Ordinary Least Squares", + "target": "notebooks/generated/ols.html", + "img": "../_static/images/ols.png" + }, + { + "text": "Generalized Least Squares", + "target": "notebooks/generated/gls.html", + "img": "../_static/images/gls.png" + }, + { + "text": "Quantile Regression", + "target": "notebooks/generated/quantile_regression.html", + "img": "../_static/images/quantile_regression.png" + }, + { + "text": "Recursive Least Squares", + "target": "notebooks/generated/recursive_ls.html", + "img": "../_static/images/recursive_ls.png" + }, + { + "text": "Regression Diagnostics", + "target": "notebooks/generated/regression_diagnostics.html", + "img": "../_static/images/regression_diagnostics.png" + }, + { + "text": "Weighted Least Squares", + "target": "notebooks/generated/wls.html", + "img": "../_static/images/wls.png" + }, + { + "text": "Linear Mixed-Effects", + "target": "notebooks/generated/mixed_lm_example.html", + "img": "../_static/images/mixed_lm.png" + } + ] + }, + { + "header":"Plotting", + "id":"plotting", + "links":[ + { + "text": "Regression Plots", + "target": "notebooks/generated/regression_plots.html", + "img": "../_static/images/regression_plots.png" + }, + { + "text": "Categorical Interactions", + "target": "notebooks/generated/categorical_interaction_plot.html", + "img": "../_static/images/categorical_interaction_plot.png" + } + ] + + }, + { + "header": "Discrete Choice Models", + "id":"discrete", + "links":[ + { + "text": "Getting Started", + "target": "notebooks/generated/discrete_choice_overview.html", + "img": "../_static/images/discrete_overview.png" + }, + { + "text": "Fair's Affairs Data", + "target": "notebooks/generated/discrete_choice_example.html", + "img": "../_static/images/fairs_data.png" + } + ] + }, + { + "header": "Nonparametric Statistics", + "id":"nonparametric", + "links":[ + { + "text": "Univariate Kernel Density Estimator", + "target": "notebooks/generated/kernel_density.html", + "img": "../_static/images/kde_overview.png" + } + ] + }, + { + "header":"Generalized Linear Models", + "id":"glm", + "links":[ + { + "text": "Generalized Linear Models Overview", + "target": "notebooks/generated/glm.html", + "img": "../_static/images/glm_overview.png" + }, + { + "text": "Using Formulas with GLMs", + "target": "notebooks/generated/glm_formula.html", + "img": "../_static/images/glm_formulas.png" + + } + ] + }, + { + "header":"Robust Regression", + "id":"robust", + "links":[ + { + "text": "M-estimators for Robust Regression", + "target": "notebooks/generated/robust_models_1.html", + "img": "../_static/images/rlm_overview.png" + }, + { + "text": "Comparing OLS and RLM", + "target": "notebooks/generated/robust_models_0.html", + "img": "../_static/images/rlm.png" + } + ] + }, + { + "header":"Statistics", + "id":"stats", + "links":[ + { + "text": "ANOVA", + "target": "notebooks/generated/interactions_anova.html", + "img": "../_static/images/anova.png" + } + ] + }, + { + "header":"Time Series Analysis", + "id":"stats", + "links":[ + { + "text": "ARMA: Sunspots Data", + "target": "notebooks/generated/tsa_arma_0.html", + "img": "../_static/images/tsa_arma0.png" + }, + { + "text": "ARMA: Artificial Data", + "target": "notebooks/generated/tsa_arma_1.html", + "img": "../_static/images/tsa_arma1.png" + }, + { + "text": "Time Series Filters", + "target": "notebooks/generated/tsa_filters.html", + "img": "../_static/images/tsa_filters.png" + }, + { + "text": "Markov switching dynamic regression", + "target": "notebooks/generated/markov_regression.html", + "img": "../_static/images/markov_regression.png" + }, + { + "text": "Markov switching autoregression", + "target": "notebooks/generated/markov_autoregression.html", + "img": "../_static/images/markov_autoregression.png" + } + ] + }, + { + "header":"State space models", + "id":"statespace", + "links":[ + { + "text": "SARIMAX: Introduction", + "target": "notebooks/generated/statespace_sarimax_stata.html", + "img": "../_static/images/statespace_sarimax_stata.png" + }, + { + "text": "SARIMAX: Model selection, missing data", + "target": "notebooks/generated/statespace_sarimax_internet.html", + "img": "../_static/images/statespace_sarimax_internet.png" + }, + { + "text": "VARMAX: introduction", + "target": "notebooks/generated/statespace_varmax.html", + "img": "../_static/images/statespace_varmax.png" + }, + { + "text": "Dynamic Factor Models: Application", + "target": "notebooks/generated/statespace_dfm_coincident.html", + "img": "../_static/images/statespace_dfm_coincident.png" + }, + { + "text": "Unobserved Components: Application", + "target": "notebooks/generated/statespace_structural_harvey_jaeger.html", + "img": "../_static/images/statespace_structural_harvey_jaeger.png" + }, + { + "text": "Trends and cycles in unemployment", + "target": "notebooks/generated/statespace_cycles.html", + "img": "../_static/images/statespace_cycles.png" + }, + { + "text": "State space modeling: Local Linear Trends", + "target": "notebooks/generated/statespace_local_linear_trend.html", + "img": "../_static/images/statespace_local_linear_trend.png" + }, + { + "text": "ARMA: Sunspots Data", + "target": "notebooks/generated/statespace_arma_0.html", + "img": "../_static/images/statespace_arma0.png" + } + ] + }, + { + "header":"User Notes", + "id":"user", + "links":[ + { + "text": "Contrasts", + "target": "notebooks/generated/contrasts.html", + "img": "../_static/images/contrasts.png" + }, + { + "text": "Formulas", + "target": "notebooks/generated/formulas.html", + "img": "../_static/images/formulas_intro.png" + }, + { + "text": "Prediction", + "target": "notebooks/generated/predict.html", + "img": "../_static/images/prediction.png" + }, + { + "text": "Generic Maximum Likelihood", + "target": "notebooks/generated/generic_mle.html", + "img": "../_static/images/generic_mle.png" + }, + { + "text": "Dates in Time-Series Models", + "target": "notebooks/generated/tsa_dates.html", + "img": "../_static/images/tsa_dates.png" + } + ] + } +] diff --git a/docs/source/extending.rst.TXT b/docs/source/extending.rst.TXT new file mode 100644 index 0000000..e69de29 diff --git a/docs/source/faq.rst b/docs/source/faq.rst new file mode 100644 index 0000000..631d6fd --- /dev/null +++ b/docs/source/faq.rst @@ -0,0 +1,41 @@ +:orphan: + +.. currentmodule:: statsmodels + +.. _faq: + +Frequently Asked Question +------------------------- + +.. _endog-exog-faq: + +What do endog and exog mean? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +These are shorthand for endogenous and exogenous variables. You might be more comfortable with the common ``y`` and ``X`` notation in linear models. Sometimes the endogenous variable ``y`` is called a dependent variable. Likewise, sometimes the exogenous variables ``X`` are called the independent variables. You can read about this in greater detail at :ref:`endog_exog` + + +.. _missing-faq: + +How does statsmodels handle missing data? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Missing data can be handled via the ``missing`` keyword argument. Every model takes this keyword. You can find more information in the docstring of :class:`statsmodels.base.Model `. + +.. `Model class `_. + +.. _build-faq: + +Why won't statsmodels build? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +If you're on Python 3.4, you *must* use Cython 0.20.1. If you're still having problems, try running + +.. code-block:: bash + + python setup.py clean + +What if my question isn't answered here? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +You may find answers for questions that have not yet been added here on GitHub under the `FAQ issues tag `_. If not, please ask your question on stackoverflow using the `statsmodels tag `_ or on the `mailing list `_. diff --git a/docs/source/gee.rst b/docs/source/gee.rst new file mode 100644 index 0000000..497aea0 --- /dev/null +++ b/docs/source/gee.rst @@ -0,0 +1,150 @@ +.. currentmodule:: statsmodels.genmod.generalized_estimating_equations + +.. _gee: + +Generalized Estimating Equations +================================ + +Generalized Estimating Equations estimate generalized linear models for +panel, cluster or repeated measures data when the observations are possibly +correlated withing a cluster but uncorrelated across clusters. It supports +estimation of the same one-parameter exponential families as Generalized +Linear models (`GLM`). + +See `Module Reference`_ for commands and arguments. + +Examples +-------- + +The following illustrates a Poisson regression with exchangeable correlation +within clusters using data on epilepsy seizures. + +.. ipython:: python + + import statsmodels.api as sm + import statsmodels.formula.api as smf + + data = sm.datasets.get_rdataset('epil', package='MASS').data + + fam = sm.families.Poisson() + ind = sm.cov_struct.Exchangeable() + mod = smf.gee("y ~ age + trt + base", "subject", data, + cov_struct=ind, family=fam) + res = mod.fit() + print(res.summary()) + + +Several notebook examples of the use of GEE can be found on the Wiki: +`Wiki notebooks for GEE `_ + + +References +^^^^^^^^^^ + +* KY Liang and S Zeger. "Longitudinal data analysis using generalized + linear models". Biometrika (1986) 73 (1): 13-22. +* S Zeger and KY Liang. "Longitudinal Data Analysis for Discrete and + Continuous Outcomes". Biometrics Vol. 42, No. 1 (Mar., 1986), + pp. 121-130 +* A Rotnitzky and NP Jewell (1990). "Hypothesis testing of regression + parameters in semiparametric generalized linear models for cluster + correlated data", Biometrika, 77, 485-497. +* Xu Guo and Wei Pan (2002). "Small sample performance of the score test in + GEE". + http://www.sph.umn.edu/faculty1/wp-content/uploads/2012/11/rr2002-013.pdf +* LA Mancl LA, TA DeRouen (2001). A covariance estimator for GEE with improved + small-sample properties. Biometrics. 2001 Mar;57(1):126-34. + + +Module Reference +---------------- + +Model Class +^^^^^^^^^^^ + +.. autosummary:: + :toctree: generated/ + + GEE + +Results Classes +^^^^^^^^^^^^^^^ + +.. autosummary:: + :toctree: generated/ + + GEEResults + GEEMargins + +Dependence Structures +^^^^^^^^^^^^^^^^^^^^^ + +The dependence structures currently implemented are + +.. currentmodule:: statsmodels.genmod.cov_struct + +.. autosummary:: + :toctree: generated/ + + CovStruct + Autoregressive + Exchangeable + GlobalOddsRatio + Independence + Nested + + +Families +^^^^^^^^ + +The distribution families are the same as for GLM, currently implemented are + +.. currentmodule:: statsmodels.genmod.families.family + +.. autosummary:: + :toctree: generated/ + :template: autosummary/glmfamilies.rst + + Family + Binomial + Gamma + Gaussian + InverseGaussian + NegativeBinomial + Poisson + + +Link Functions +^^^^^^^^^^^^^^ + +The link functions are the same as for GLM, currently implemented are the +following. Not all link functions are available for each distribution family. +The list of available link functions can be obtained by + +:: + + >>> sm.families.family..links + +.. currentmodule:: statsmodels.genmod.families.links + +.. autosummary:: + :toctree: generated/ + + Link + + CDFLink + CLogLog + Log + Logit + NegativeBinomial + Power + cauchy + cloglog + identity + inverse_power + inverse_squared + log + logit + nbinom + probit + diff --git a/docs/source/genericmle.rst.TXT b/docs/source/genericmle.rst.TXT new file mode 100644 index 0000000..e69de29 diff --git a/docs/source/gettingstarted.rst b/docs/source/gettingstarted.rst new file mode 100644 index 0000000..054eae9 --- /dev/null +++ b/docs/source/gettingstarted.rst @@ -0,0 +1,183 @@ +Getting started +=============== + +This very simple case-study is designed to get you up-and-running quickly with +``statsmodels``. Starting from raw data, we will show the steps needed to +estimate a statistical model and to draw a diagnostic plot. We will only use +functions provided by ``statsmodels`` or its ``pandas`` and ``patsy`` +dependencies. + +Loading modules and functions +----------------------------- + +After `installing statsmodels and its dependencies `_, we load a +few modules and functions: + +.. ipython:: python + + import statsmodels.api as sm + import pandas + from patsy import dmatrices + +`pandas `_ builds on ``numpy`` arrays to provide +rich data structures and data analysis tools. The ``pandas.DataFrame`` function +provides labelled arrays of (potentially heterogenous) data, similar to the +``R`` "data.frame". The ``pandas.read_csv`` function can be used to convert a +comma-separated values file to a ``DataFrame`` object. + +`patsy `_ is a Python library for describing +statistical models and building `Design Matrices +`_ using ``R``-like formulas. + +Data +---- + +We download the `Guerry dataset +`_, a +collection of historical data used in support of Andre-Michel Guerry's 1833 +*Essay on the Moral Statistics of France*. The data set is hosted online in +comma-separated values format (CSV) by the `Rdatasets +`_ repository. +We could download the file locally and then load it using ``read_csv``, but +``pandas`` takes care of all of this automatically for us: + +.. ipython:: python + + df = sm.datasets.get_rdataset("Guerry", "HistData").data + +The `Input/Output doc page `_ shows how to import from various +other formats. + +We select the variables of interest and look at the bottom 5 rows: + +.. ipython:: python + + vars = ['Department', 'Lottery', 'Literacy', 'Wealth', 'Region'] + df = df[vars] + df[-5:] + +Notice that there is one missing observation in the *Region* column. We +eliminate it using a ``DataFrame`` method provided by ``pandas``: + +.. ipython:: python + + df = df.dropna() + df[-5:] + +Substantive motivation and model +-------------------------------- + +We want to know whether literacy rates in the 86 French departments are +associated with per capita wagers on the Royal Lottery in the 1820s. We need to +control for the level of wealth in each department, and we also want to include +a series of dummy variables on the right-hand side of our regression equation to +control for unobserved heterogeneity due to regional effects. The model is +estimated using ordinary least squares regression (OLS). + + +Design matrices (*endog* & *exog*) +---------------------------------- + +To fit most of the models covered by ``statsmodels``, you will need to create +two design matrices. The first is a matrix of endogenous variable(s) (i.e. +dependent, response, regressand, etc.). The second is a matrix of exogenous +variable(s) (i.e. independent, predictor, regressor, etc.). The OLS coefficient +estimates are calculated as usual: + +.. math:: + + \hat{\beta} = (X'X)^{-1} X'y + +where :math:`y` is an :math:`N \times 1` column of data on lottery wagers per +capita (*Lottery*). :math:`X` is :math:`N \times 7` with an intercept, the +*Literacy* and *Wealth* variables, and 4 region binary variables. + +The ``patsy`` module provides a convenient function to prepare design matrices +using ``R``-like formulas. You can find more information here: +http://patsy.readthedocs.org + +We use ``patsy``'s ``dmatrices`` function to create design matrices: + +.. ipython:: python + + y, X = dmatrices('Lottery ~ Literacy + Wealth + Region', data=df, return_type='dataframe') + +The resulting matrices/data frames look like this: + +.. ipython:: python + + y[:3] + X[:3] + +Notice that ``dmatrices`` has + +* split the categorical *Region* variable into a set of indicator variables. +* added a constant to the exogenous regressors matrix. +* returned ``pandas`` DataFrames instead of simple numpy arrays. This is useful because DataFrames allow ``statsmodels`` to carry-over meta-data (e.g. variable names) when reporting results. + +The above behavior can of course be altered. See the `patsy doc pages +`_. + +Model fit and summary +--------------------- + +Fitting a model in ``statsmodels`` typically involves 3 easy steps: + +1. Use the model class to describe the model +2. Fit the model using a class method +3. Inspect the results using a summary method + +For OLS, this is achieved by: + +.. ipython:: python + + mod = sm.OLS(y, X) # Describe model + res = mod.fit() # Fit model + print res.summary() # Summarize model + + +The ``res`` object has many useful attributes. For example, we can extract +parameter estimates and r-squared by typing: + + +.. ipython:: python + + res.params + res.rsquared + +Type ``dir(res)`` for a full list of attributes. + +For more information and examples, see the `Regression doc page `_ + +Diagnostics and specification tests +----------------------------------- + +``statsmodels`` allows you to conduct a range of useful `regression diagnostics +and specification tests +`_. For instance, +apply the Rainbow test for linearity (the null hypothesis is that the +relationship is properly modelled as linear): + +.. ipython:: python + + sm.stats.linear_rainbow(res) + +Admittedly, the output produced above is not very verbose, but we know from +reading the `docstring `_ +(also, ``print sm.stats.linear_rainbow.__doc__``) that the +first number is an F-statistic and that the second is the p-value. + +``statsmodels`` also provides graphics functions. For example, we can draw a +plot of partial regression for a set of regressors by: + +.. ipython:: python + + @savefig gettingstarted_0.png + sm.graphics.plot_partregress('Lottery', 'Wealth', ['Region', 'Literacy'], + data=df, obs_labels=False) + +More +---- + +Congratulations! You're ready to move on to other topics in the +`Table of Contents `_ diff --git a/docs/source/glm.rst b/docs/source/glm.rst new file mode 100644 index 0000000..84e3d94 --- /dev/null +++ b/docs/source/glm.rst @@ -0,0 +1,125 @@ +.. currentmodule:: statsmodels.genmod.generalized_linear_model + +.. _glm: + +Generalized Linear Models +========================= + +Generalized linear models currently supports estimation using the one-parameter +exponential families + +See `Module Reference`_ for commands and arguments. + +Examples +-------- + +.. ipython:: python + :okwarning: + + # Load modules and data + import statsmodels.api as sm + data = sm.datasets.scotland.load() + data.exog = sm.add_constant(data.exog) + + # Instantiate a gamma family model with the default link function. + gamma_model = sm.GLM(data.endog, data.exog, family=sm.families.Gamma()) + gamma_results = gamma_model.fit() + print(gamma_results.summary()) + +Detailed examples can be found here: + +* `GLM `__ +* `Formula `__ + +Technical Documentation +----------------------- + +.. ..glm_techn1 +.. ..glm_techn2 + +References +^^^^^^^^^^ + +* Gill, Jeff. 2000. Generalized Linear Models: A Unified Approach. SAGE QASS Series. +* Green, PJ. 1984. “Iteratively reweighted least squares for maximum likelihood estimation, and some robust and resistant alternatives.” Journal of the Royal Statistical Society, Series B, 46, 149-192. +* Hardin, J.W. and Hilbe, J.M. 2007. “Generalized Linear Models and Extensions.” 2nd ed. Stata Press, College Station, TX. +* McCullagh, P. and Nelder, J.A. 1989. “Generalized Linear Models.” 2nd ed. Chapman & Hall, Boca Rotan. + +Module Reference +---------------- + +Model Class +^^^^^^^^^^^ + +.. autosummary:: + :toctree: generated/ + + GLM + +Results Class +^^^^^^^^^^^^^ + +.. autosummary:: + :toctree: generated/ + + GLMResults + +.. _families: + +Families +^^^^^^^^ + +The distribution families currently implemented are + +.. currentmodule:: statsmodels.genmod.families.family + +.. autosummary:: + :toctree: generated/ + :template: autosummary/glmfamilies.rst + + Family + Binomial + Gamma + Gaussian + InverseGaussian + NegativeBinomial + Poisson + + +.. _links: + +Link Functions +^^^^^^^^^^^^^^ + +The link functions currently implemented are the following. Not all link +functions are available for each distribution family. The list of +available link functions can be obtained by + +:: + + >>> sm.families.family..links + +.. currentmodule:: statsmodels.genmod.families.links + +.. autosummary:: + :toctree: generated/ + + Link + + CDFLink + CLogLog + Log + Logit + NegativeBinomial + Power + cauchy + cloglog + identity + inverse_power + inverse_squared + log + logit + nbinom + probit + + diff --git a/docs/source/glm_techn1.rst.TXT b/docs/source/glm_techn1.rst.TXT new file mode 100644 index 0000000..da6dfd7 --- /dev/null +++ b/docs/source/glm_techn1.rst.TXT @@ -0,0 +1,12 @@ +.. currentmodule:: statsmodels.glm + + +.. _glm_techn1: + +Technical Documentation +======================= + +Introduction +------------ + +Just a placeholder diff --git a/docs/source/glm_techn2.rst.TXT b/docs/source/glm_techn2.rst.TXT new file mode 100644 index 0000000..225f642 --- /dev/null +++ b/docs/source/glm_techn2.rst.TXT @@ -0,0 +1,12 @@ +.. currentmodule:: statsmodels.glm + + +.. _glm_techn2: + +Technical Documentation - part 2 +================================ + +Implementation Notes +-------------------- + +Just a placeholder diff --git a/docs/source/gmm.rst b/docs/source/gmm.rst new file mode 100644 index 0000000..cfb2d87 --- /dev/null +++ b/docs/source/gmm.rst @@ -0,0 +1,40 @@ +.. currentmodule:: statsmodels.sandbox.regression.gmm + + +.. _gmm: + + +Generalized Method of Moments :mod:`gmm` +======================================== + +:mod:`statsmodels.gmm` contains model classes and functions that are based on +estimation with Generalized Method of Moments. +Currently the general non-linear case is implemented. An example class for the standard +linear instrumental variable model is included. This has been introduced as a test case, it +works correctly but it does not take the linear structure into account. For the linear +case we intend to introduce a specific implementation which will be faster and numerically +more accurate. + +Currently, GMM takes arbitrary non-linear moment conditions and calculates the estimates +either for a given weighting matrix or iteratively by alternating between estimating +the optimal weighting matrix and estimating the parameters. Implementing models with +different moment conditions is done by subclassing GMM. In the minimal implementation +only the moment conditions, `momcond` have to be defined. + +.. currentmodule:: statsmodels.sandbox.regression.gmm + + +Module Reference +"""""""""""""""" + +.. autosummary:: + :toctree: generated/ + + GMM + GMMResults + IV2SLS + IVGMM + IVGMMResults + IVRegressionResults + LinearIVGMM + NonlinearIVGMM diff --git a/docs/source/gmm_techn1.rst.TXT b/docs/source/gmm_techn1.rst.TXT new file mode 100644 index 0000000..373b854 --- /dev/null +++ b/docs/source/gmm_techn1.rst.TXT @@ -0,0 +1,53 @@ +.. currentmodule:: statsmodels.sandbox.regression.gmm + + +.. _gmm_techn1: + +Technical Documentation +======================= + +Introduction +------------ + +Generalized Method of Moments is an extension of the Method of Moments +if there are more moment conditions than parameters that are estimated. + +simple example + + +General Structure and Implementation +------------------------------------ + +The main class for GMM estimation, makes little assumptions about the +moment conditions. It is designed for the general case when moment +conditions are given as function by the user. + +:: + + def momcond(params) + +which should return a two dimensional array with observation in rows +and moment conditions in columns. Denote this function by `$g(\theta)$`. Then +the GMM estimator is given as the solution to the maximization problem: + +..math: max_{\theta) g(theta)' W g(theta) (1) + +The weighting matrix can be estimated in several different ways. The +basic method `fitgmm` takes the weighting matrix as argument or if it is +not given takes the identity matrix and maximizes (1) +taking W as given. Since the optimizing functions solve minimization problems, +we usually minimizes the negative of the objective function. +`fit_iterative` calculates the optimal weighting matrix and maximizes the +criterion function in alternating steps. The number of iterations can +be given as an argument to this fit method. The optimal weighting matrix, +which is the covariance matrix of the moment conditions, can be estimated +in different ways. Kernel and shrinkage estimators are planned but not yet +implemented. TODO + +The GMM class itself does not define any moment conditions. To get an +estimator for given moment conditions, GMM needs to be subclassed. +The basic structure of writing new models based on +the generic MLE or GMM framework and subclassing is described in +`extending.rst` (TODO: link) + +As an example diff --git a/docs/source/graphics.rst b/docs/source/graphics.rst new file mode 100644 index 0000000..a5a937c --- /dev/null +++ b/docs/source/graphics.rst @@ -0,0 +1,82 @@ +.. currentmodule:: statsmodels.graphics + +.. _graphics: + +Graphics +======== + +.. automodule:: statsmodels.graphics + +Goodness of Fit Plots +--------------------- + +.. autosummary:: + :toctree: generated/ + + gofplots.qqplot + gofplots.qqline + gofplots.qqplot_2samples + gofplots.ProbPlot + +Boxplots +-------- + +.. autosummary:: + :toctree: generated/ + + boxplots.violinplot + boxplots.beanplot + +Correlation Plots +------------------ + +.. autosummary:: + :toctree: generated/ + + correlation.plot_corr + correlation.plot_corr_grid + plot_grids.scatter_ellipse + +Functional Plots +---------------- + +.. autosummary:: + :toctree: generated/ + + functional.fboxplot + functional.rainbowplot + functional.banddepth + +Regression Plots +---------------- + +.. autosummary:: + :toctree: generated/ + + regressionplots.plot_fit + regressionplots.plot_regress_exog + regressionplots.plot_partregress + regressionplots.plot_ccpr + regressionplots.abline_plot + regressionplots.influence_plot + regressionplots.plot_leverage_resid2 + +Time Series Plots +----------------- + +.. autosummary:: + :toctree: generated/ + + tsaplots.plot_acf + tsaplots.plot_pacf + tsaplots.month_plot + tsaplots.quarter_plot + +Other Plots +----------- + +.. autosummary:: + :toctree: generated/ + + factorplots.interaction_plot + mosaicplot.mosaic diff --git a/docs/source/images/aw.png b/docs/source/images/aw.png new file mode 100644 index 0000000000000000000000000000000000000000..8c048f62e251afdcf95fc865ec829ba69da6b587 GIT binary patch literal 22376 zcmeFZc{G;o_cwf+qJcCZ^MzFA$}Cf)4518}hf>Nc^Xy8ZROXoo*JaF*c_xySp)ONq zC4|gm3eP^dfA{x!e((FN_5Ss&^{(|;>%LVk=XnhK*!#0T`?HT{H`K0C9%49zAPA+B z;uQ@9A;BOBu`a~{_?LJWKYRE_>L{nAMFC%46nCG(-w)a=>Nz6F(c9>MM42)f76^ht zl&)OXa!dR@ zt#N`jF+>>Bhr5VHO^ZGaP@xH%|;7@nJB{oX>i@FQB~ zSnK4ny8|6B{PL+6y@@F#|L=Q#nsI7s%5tQ(X0B>pI*Q*&|K`n`)BPn@!NZp<2&bi% zK5|t42;$LtElY&{FhqJYQ$s_;&rld1J8DE4YW=&f=vrgo(cWh#&UR(q ze#9g$E^fLfHz7PCLfCD=)MmI^&w0A*Yo+sypPmT%yLubebffoljNS2nW(UqHDXXY- zK0U_a@OQXFdh0q~B}RIzq-w5GW&CqYFP4Zz$ZLH;GM5H^k%G)g*5O>4LGHGcmm+~P z#xS+;-skBU6Q7oxLijN@R1SG~)6z1#)Mg-kCckdjg$w;x8dB<*yLazqDm-|_ZP3M(axhgE^ZHhNj*Qu-RnrFmNEsPy{lLv;LaqWKKCxww?Fva+~!@)A#HsV0b^ z@6s=RkixB<{a}iK&)9ACBRiaZ^(DjH?mc)Y^4aUrAdCI6+uT~2uV)9!R4&ezYVKBe zNhg=u4rMQmf97FhyR4+7l;P_=?S0ARx7g$c8@f3fnwlLOt2>)}`z-}_#D;Y{LMH^H zEW2Rr7$A&6pZ$N`%>OT3sv<3+v$MO_+jGcu#GBiwvN$z0wX4Lcm#NNoZEnb8BJRFc zrIQ5>pT1VvutyG@+{d~XV0TBoNke)6`!NsinEd?JGlcn4dewZb!C_k7FXXIVuj2&o zXJ3!Im~B#5OUrL~s_()OH1zf3uf8}HHntYbB(A~5#id_( z_nB?QIIR-lmFsZUbazgU_tqbM7|9JwG!$0{Qz=rB5o*XgJX^Ngaqa4fb>{qKE-PzilO7I5T81#p3=nwzQ4dsM$ zswAy$X7v&Xgh77P6EBeVU=f60(LBA_yQtYb$%M%}LFyYUW3AYjY2*iCTYKc+>l1 zY>bALHCdF5SeE~l7#p7vH=iCm9v90x)2kAAG{M&-GgPY(rk%2piPqO$WQaHoMQq*&I+Iw|!?dxsSKrj@xG}bzZ!Pvl+m>WZeDx_V(kh+=P`6jAuR$x@R2ZaGr_Jj~K`& zLe%cA64|STnAcYvll6OjGwrI!_a}74UK7h_~zA%}<= zU@+V3X+j>wD}DFRF#YTh81l$DNV+z3wmUP-)##bm#`VCTFl}1bO6|05Ockxo5r4t>= z`2%)!QlImumNy(~W(5$jx1MD}KGg?VWVTNmxx{tho@wPLIW;q<&)n_|;~=<>C?)%F ztHxsRc%|-~1kBR<7-2kSAor;3&)d}#M~F@{(r{~ifq=&O$~|SnOWJ0rQX3+ej+~rd zczC$l?q=jrl`CrA@xoToRIJi(z-wn3l-Xv(f2Af7hZ(Sp7X|SZj`;75_`aex;)MW8 zygzB@)W^xMJL`*M>2q(*RAbI?G?L*h z44h3(aRtX1dH4*^dGFS&$n2i*_%0vLU#si!N6%thdFr!3TYiE_R9;PwlS?pjkr5j* zYDj@Ws6Pa=#vGu$c(}%(G%{Q3!r|)4wunN#U|J0?>8T`7+{Q9~{Bzr8=wwm^w^nEX zrJxZjf^`KXin-pFaKH4kP3H&ym%>&!i%wjEZK09gLRU7YYTTXD<(f&B6IX1jZ*ETW z3`BwD0m7Ay?W^wNJy*BuQ3o28|stbCC<>`v45Q|{}xrzVqabPgaG z^z(}9F~eS+Oy9~pN`x%J#bpaToCl)%G;^X?X3GfgpH0-Yz)8rjW@i>Nt-6RjHT>;2 ze&KgEGAh>^%T}}CSL~YKcW}C-7ssw(tuxMdEm)D{fTEPAGN-a4$5qAEnSs1Rvghu= z)-zKh6t}n5RMchoq?Vp)6{YKKeW?)qK4y4`E?UAVv?pKmRp{1yjDATfBQau|M)Kpr zX-h<0*tb@^5$qCoR5~=tBk1wE12^?~=1?8ujUq;e5%1C*VruSF`Qq~Aq=;N=iu}ay zV9)s|ZXJ;-1F3DH?;N6D(pk<{%OiOjoR0CEMIG_y$q@>E2@H#T>VeQ#aFUu?V_fDU zH&-sqNT;r!YYCIBPfXvL&N1&T;L^k~+7=kmAOdDE`Vc;Zf+*ua%kJL{@kP&W?oKi` zFR{sGr4AW8mzK(3>{)8ej+T-LM$FBL2;0mo&R+81_JNjMeWmBLaTf9)4QP0jN4(Dp z+u5qUwCf}MEh9&M@}--)AK{Zie52yIr8YB*AEr%Vh3ssrQa_$Ie{s;O*VrokuJ)S; zRqTjy16Z&G1{uBSIH4#ybeHz3fS%mCeP^e-%ID~~MrNxXp~*K0vUC7a8_6@&p_Q&N z3__u{RjT?G7Yo$|%kcWb%Og8;Rc+!t-dpjzq6l&y%yN|NtXgadxm}$N)yc#Qjl2?p z%uUZ#BF?HXUs9eONHA)?c+pyi3`uz@jA3a^l*2e|F9xoBGb8kxBpAgec@bO`)^l#A z;U<#=C-bi-o@;vlEsp}r_b&jVj)R3|@w(ApsU0tElx@)Kq97KtvD}u9&~PgjnJeiS z-iE1(oQD&J{J3EFMfN9nWsgy!T~UoJ!LcR2m}1*?NB9*Ud41*cMmWr zo~9R8w(S0tSS)qN|0J_b6}woJOx?k#Cx;VqBaX6)?1m5_lULD)9-+TORp`0nZt(@f z6~yB7?P+lI)!@jWlVSR0B5XKS#sO_2tmrXWq@HZP=4^@8*_xGbAye$n<-R-$cRp@q z2C*-1DBY(xxdb&W2YOtzkx?l~SSbo0k*Kb_Z98Y_2sB(1Ti(D8*QlPd=xukplH|Sj zDL(X5sTa&}yE{4_<1`J|a0?r)yEF2Etxi?!3a$Or2o{zGi;0uaw*1=g=HRb^n1y3X z;H-EwsQ*@8vnvtbq z73l@91A{=;&~1A3;>gsx=^O3NLl2eo6R;ml3qQp|&;ME(%C{;Jwg!DSVb4RT?jNJ zHg5bE8w|g_AL6v!rg8nn%8;wZ+dDAl)8bybmD?^{e5#u}o;}P&dwy8@GYQsF%v~cW zB!-Gb=z04=R(pdmcJoaWkII#w5#}7E2n9K8pI9Kj5#Th7A6KS6@!04*R@APoUTHZ? zm`pA@$1J-Jp|^gd^_A5D&!I{s=b8Sz17UNuTh}pjgeKBs2!-<-qQz4aCy8BbM)-%^ z()8S<9nU;(|4tbfr}6jzq3|By6vf^3z}X<|#}EI`;1AO!bK32lohrQ*gF+nqOa?%h zuvI+CVLHC>L$t+4$EYj7`Wx?iA`8C8K6?5!{Y=Ey*0H^j+$f&N`wBU~4hcdR4CL3v z!`|daqlbM>DyPm2bR&~4ovMUDR%Q7B#jy{4c?S^wBbo)00nsd@wazoG?yMn_>@S&l zHoV{@6w*>C9y~Z<+8V`!pUEqNm%9IZAf2bW5ULsj zRam_+O-(SQkFT<|@kAu89-$VU=rqKePx6MO;K|F)wp_A2oE<+7ynps)OZLGbQXKf} z{Mw6EW>ErmRqU9HXb7TG6hTwJQX7M&4gJ=%l=y0xK1~p`n*;6RTvuH#AJvS zMHobF-vHcpo+2nLPqb;~>X)2kWd%AUd3I}}Eg>Tif=^QrP3O;+h}H2JlkCfn4@`ea zd2H;naW5vDJT%I6_`+dVnT_}U)R;(cQ$N>KRAQ8ks=#EB_7E;zy;#Bf!3;tVFm)sO z0ODWy)EL)zpnOO$^QDtC&U1hNyg#A-tEfY|bG~jj&(Bvp`_K14)*jIjue9y0wfh^+ z7E?s;R#$s9hAK76Y&DvLVS$&_LRbg`b_r9uu0!{#7%(*Iz76cCbcz5G9)E$HSo@FuN++Ro{jO z+0`rt9Ar_K=9=v@t71StG7z0UY}K2mZD=^CXB3>RoueEMYLsIH|^-zucLw+6kN$OIIaPBBV_v)?Ccucho|IgG-H$g_fnJwOx*H4p!=rw#suy z7TAd)pC=Hs3h%ZQ8OyBd!&mft&BjE6uvHK5OBN~pd!Hh|D$p6>U>9;UGt@j*yLBGl z62!iFd5WzqmJP-GA7GU!f(!4peK^#apJd517g*h# zRE6i<;^KNnRW99V-j#MO#Cl|;;C5q?@$--n9WO7h0_6h@{n30A_3v)w?t3k2!*Ywifkx;BdH1$k-V~tYh^{ES=le zZe?jGC--O+jyLwB+rXL6S*B%7`e~t`{BL1j0 zQcL*Jq@i*AJ4x6WYT&!GWg2xp=xG!@CR_Lgm`!{}hSjG?uKU%}9xD&v7)?hT*tRUy z?5;P<6yIqIDl#^KotW}Hidnyv8!q7--d`58v!M>&Wp1;#4%cfeXt12859WrfpU^BQ zyqRw-m1|g`QRBIG3y#P5+LrL0_Y^N#Wp-9PUi>$D&*ImY6g16V`N$E1l9AjRxTnC* zL_sopX}(%B*>}f1+9V>HB~&z+1qBkRskrga_`2C3$}9e6%{T+w3ukfphFmnCSJnjcc$7a35)sRnxN;;JN*xy=qk48?5sO0D5wb@;J%@Mhs7ou1d;5T$N`gq-Wja{8Y}3m{vrcXC6QgaeBP9SC zzYr}l9Ty%Q6dj2r>GN0<(Y%3G?5(Qi3`mY)e=1z*Jnm3UXh z1!=#Dg@E$qJp>z;uSi3~OnyR^4#!n$Y3!Rs_=u;d=3C@jqZxzjM-?@ZPGyfZ^JyA; z>5TL{lq{`Uyok$rvd?A@ridycl6EHZbXr=RWUz^*+_a-d07AHFkx*FJ)pBkBNf2^4 z{hj1vR_3{7sUpuZU{}Dts4d(KNhtJ2yf`SC&aF;!qB#)*rdaFEInFc6j}OENIwJLa z*WWFj()W;UXOgx~H#YLAILHof82sEC2@Lt>IGrF(j^Z(ZEGdrwgh&<=`Qyq)qFv^M zE^WdL4xga8*WTV&p*c+ew1Kdbh1ei$_nQt))vV$2jPO=@Z;dFa`??j23gu^g=@>+WIs`G`U{ItaBXiTR7^Jp z3MvvWDewH9pzi3-fp7(p3N!c>g8gyf(2}+UJj5_MlgQ20B6y{bv3nEKjdJssPOIIp z4%N^9MQ81N)S+`VI{k$T`c=0eU2##6T^Dy!%+_eK{<<|D6W(#ZioHGojrAva5w_c{ zr>1i9aUs&|UdTI*;!Gi@%nf5k!4EKt1{!AS5Vo5n_qTj^)q|c#K-w4{4rB7K%SZ}0 zZwv3qkNFe{(;xj0v2971uhs_- z)q6*AD}f!YPMP(X63H5y9*S=MLLh1F3b`~F>M}2KR*;St(rJtXvlO>>&Kav5{wt8O1W;;ZX~4XG|3h*lEp5(dTn$*6t19IoTF}|vQi0@V{w8AYhY;5b)^4dW zh-*xDKktko%IDI&s(f8&B<(pZ;1}6*W_#n6$4NYts{|TT@tDQp9WIG}0OmXVf|`}9 zx28rfPc^gRiOB%je?wU<-~=SUZ?EBJUv?wU+^$0WL3X4%SCw&UEJT(1*~=2x*#9_}uuMI{sRTPh8|v+1Q5p4K~9I(@lvAroon!B5<|d2U%q^&)sZD43@s_S8VzSk`jN0J!<9ZX>mvv zz8`Q*uWxvgSa8HYy!HB&$!_?c*$D9bOOs_r$3|JeseK_LGHu(MPq5G-AwMpSy>Wtu zlak@RpA%AXZGYe=FS*8x|K!s@??xoomqj+kD5`w#GlXP&^8d;_UMe1A6#zouvdXjL zFi86pH9p0Pzr2YnwolOuWjO&T4P&>5{wT1o zr-zLs>}971dR;h?!LG9Wjp6yPjqvAcD3@a%`0VI0oR{?&qs%fChbP->ZY)iB*7^E6 z3Lsd`SiftT&99Juv;gB5idU%Bz}fWVMS+VsL}(jbi?Z9;8|tFO{vTl!gZdJjSg|W z2r&g#vdASD+-z4?gjQuS`rsCPjIv!FA0-QKt^w*jL@w+FL^drlVxU4aEVCoS+4pEA z#Mtq7tkd=?LAbYohgObpKYV;V0px&**X`0FPA^0(#*eH`>dvqvF$HzYzB5hv_5PVm z+0gbhk4r6aXo;*Wr0P?>CVkO#DQMJik}V8NO3H(ZFSm%uttW@+ZoOm>7JB&OJruT} zXj?fJd`YX??IBR}iVq(?-29am;-`DTv^kW`{COJ@2?Z-sxYldq9!Lca17W1V^gS3X ze+zVd7hZ*~EkRVh#Ijq%%d7gY&#wDO0${FdtlnBsSwb@!Vc#7usCBeI$tH4zY}BYy z5jfHA9MtyDWf~6+3QD+&tWhIjPyW9oGTUn-Gk_^?-no-%?7iA;=xwC$K_P6@ub6f% zp=SFt8mO>0pgtik_$%)Iz7Gt&w6|U1PoOf!bLPxdsDp@)t@`_u&i0o8dCK>BsfL7{ zN-IU~$;!y?j_9|0#J6m|nU;2W&G0plV+Si%G#uwoUA)p?{uQF-;1#5$0V@AAbabw_ zV$uMRhvOn6BY8)v?7z!FUTCrOvjr+Dg#gMk9L7IQwTX^&LDk<+UvxBG$0X`gOpLKd z3!E3Zn+YNW8Xd*ifq^_yYyt&FPfrTJ+f7TbbNj~I1g2pCA<}XiYDMxYZ)s}7U&MIuK4INY4j(<*@!Yehz z%Vg7YJ=()!NNr#>Hh(-95c2uE-f8sTlar~q`$=EFq{y%SF6!Xs<5P{| z(YfW|PMIZr@ktN#xqvUulfgn)l}LMoQEGGJIj$(Y0LUC;nDAim& zj`0p4Sdj1B5SH}2ufL0zNq+TbR280k`e)#@T#pN!H{d z%Zv_U6}!>`p|ZV?-a=!5t!=mHAg4{KqtBWy4WJZ{Tm(B7#NVSx%G!rl{2_cQEe4hur~XlXY@!*3n5WlBj4En zC^CHGHMZhxTb$Y4O+=1yf8yx?x6%`EP@kBu9UFwt9HUSy8|G%dbSBr3OJVUCH!q4+ zM`{tZt)C|VQMS$Lz>|y}rtKS8eIx(+pwZip>S=Rm=Izg4)69KVRYjFFGxi9l+?yOH z}B?hq@{S}?9MF)`l>25UJf^x<{6jFX;4>waX{+Scr`Yp2~cGMXe zUi-UDz$p=;`St-&*wcNKpQ$6j#nJe?1V+(|f8G}#6U;{)Pl1v3AE-6jT#%pY*1=!A z2dj@vy7t{8@Z>83>o@xi7$u~lX@B|40DYlwe4-8IZh@6Z6nDE(xoL?~zpbYRx-o?P z4WNE^D?j?fOTkWh2y1dm*I!h)zGSwVyNAe;?=PO}>Wqp(nX*-{^2RcRDa2v&{lP3{ znk+doi(yH4PWV61Ntx(~k=`BT{c+k0p-|XZPVoFTnVjIsfc+x7he_<^&C|v03vRGY zRn3d7GRgh|;&H%MFfc0*-Gi^(hV_7_YgHdn2;KG*S1PwNfq3&}Vp++1GuAU6q*4rs z_&?yL6etR-{HSc580qaUut=f1h8c3@MGxfb!e7=qgv!F(bHgKF`@zw&?efhk(r!w+=?$^yMhkIGK_$)r1ggs!|N2Jsf(fm>Asu7jW9A3!N zBTo*+c@B4FO|VeZ8|=d(cP_}2%Nwohwi=IWI2D5*t!F-~t}JXB%LRObnc8*or9=Dk zzHQykWbu`q>q6K95vK6UHI*9A1kcgmeK5xbo&Ef;+F=Rj)JO@6I>nY2uT65y5-Bl| zri3IZLbkRS_2X(3=SyH@V;Mx%^s9QjhyiU=Kl76ABr>kL#UL{bJEyjva{PRfb`8`g zDDQON7s`d6P%~>fRCK~LMXogGvY6?fhr=8JusGY#x%%sN)p4XC|JqTDNi~a))UYq1 zFgvPe3~Er4S0l0|_-kT`MkApPd*2V2uH5t-tTrWh?_6QecV>h*{d@{I6i{mYB@}FZ zsPzVvibaV1!;GqML?k$uSzO^g$oG)po27472r3gS8#DPZZ+6Cgh9l8!$GzxRBG&=L zzI1!5?PRxko9?bI; z0F+^|=j&8*bX2~6MN4jWm)te7jg7c9ug1%aB*s$xJg~o)Y;(&U`24zPk5zE8vTCrI zphp0g8Dj!2?5X7bZVo~f3ZxUgkuJ5h|k zYOHCx(dwM)I)WWs*ucHN0xnbU1y%XWJr^0K*&L$s@S#Q&H&i;&Bk=`jVZ!Drq0(6c zDrY&DGymDoE0m09YzE9HE|4Jn*E^CX7J9xn!cJVF+Ml2rE<*)W0!Jk=-hbah0KpVX zZ5IpKB^BR$uBSGd;zr3>3f36IJ9D{@$yEl*-~kkN`&8S#y zP%UwC!p<6_Whn_vpQ5_D&OoUR4I^Vt!;`}~ptg(`dw3^rHxUGMDj=lI20EKM`wDJ- z>MZ2U;C33w5mNcDsTvt-6UJMe>ad^c;=K!M;jXl6M=9wq0_9t9l-#^E6kOu*6K#L05bS7BP`JlhbTn_6 zc{{*LYM)c>ci8}da;ij2qB=Z09)E9RIO42&Hi&*bR=!@-uJhS`-TibSChT_mR{12$ zG6^z@>S^X`2L>OjC!xD} z4Ie+1u18vSUtIg)PddVkxz3R$PX9YEw`qtWf%w1YsvZT8P zITh25cYb8rnKx2+>;7EdtO*5w*5^>BCs?!t!^=ys4UZSPV6eQiHKKtMhkgTvo5;7x zWxdQZUgybp4x@SK=ITsTT%7xd8MMH0T02W)JaJw{RkizT+O_UOmUf+Fkm?3;+B7s28s%TKE2|cDRAd0LQM; zkyM)Vhz@mYT)KPZjd)SJJScBW?QG5W2GQ^c-EQy~oFFzgH|G`6kRD#W>vU zl-enfN^C(%234e(VPt96V#WfQ9fISzuIOs^|%1Yn5xtB*E;ZCF2IEDe-Ghjew zElvNSFjxv7rU^OV`dpJ1h#=Hdmv_BQ6T0JH0W_Wco=ax#WAVJM|F%JLu&^(S9x;9Q zHBDpu6QNBMG)ZutMD}C;=rNEyW$6r69+O7upC6(LA9lYMf3az>h{*8No+Ayu{s`;T zYowtcUu+q*r@lezD18+}Xl4Xm2)eLtD|Nd(`;lMPcJ(*c>^C;=m9SZ5>=(H`a2YnXhvt?K_Ah*gp(2J) zp{7VLh~qQBJ?Aepq8!{;jA1#qH5{5@y{40T?DjueTK$M_Fy>7LmezhV=XV+h!c7?SNXAdxFCFkB6^? zfE!m59pMG#K@|h(KSsi@U#S%@p*`L65{%?K?gpEqU9v>?;0)2-{b1XugTa8$1>y0^ zSjax2L)@o+D!~Q`a?Z@;w>_JpP~Tt0^1FYm0nuf-+CfP1Py6+N>%vX_@*DAj%|PP0 z?op`DZW8+l!bo3PZ9?+`LZR~?+o53wr>ncQpT9{qQ8*+Yj`YT>+zkeWj?0VI!rkl{O;26{qTRet0*HfjICz7 z6yi2wJ2R*!@vuSiF!J{qLQL9HYLmXY({H5_cM-LT^4#n6S>B$@yx&Se6N7c#FTp(t znP|g<;xySeI*11HQlvg$#R;U-C|mj=7$W(9A>zvmVR93(L_`_UFh&< z^@Y)lQtl6W6Cl&DC;rtXJg8H>Hc-7$0T<-@8VcMxYEVH0q%N?ZErmAMuFHW;b$>VN zB@aWTv(uq&9XM~S_x{8B)sj#^23ktc?5RnSBd1_5wr0&$Kdz1J0Y1MI`y2Z+<>455 z&Nlx57mDosT#mcnINeQHUxZ2j-rtTd&Oe`OWdYq)3V8^+oW`hdacP{8uBw4z>~~N0 zi#3=KuZ2h8;+e$AkdOKuN$8%$5nbWlb0k!%o_`bpk*Q1Fqe>)3Fgzg6O22K>$G(S) z3{hPe6fl-#Ls&G-(^visK#)M(j3(PB;=a~Y!S-CDz+mOU4?jMjWLM3Gs>#rSxK80G z;x0T0bq_$ozzws=s|c(J*>Lk2ThpGT<$|LCu0zc0o3)_>@NYOJz>l{7IKKLDPV?p* z7Af$;*hC(U_mY>+sEc$Q$As@Cc+S5l_VUZ*I}bBYBA7B*P0OChAlj(f?dat+xr6)m zL-(LxXgLewJY-$6a|+iI?tcU&-O3a!-JtxQXG!_K$2he99TIm$Pb$T|wGjcJ%fbH1 z4#9~R->*B>lcB6=rS^1ZGo*&t8@(AJk@4JnJ_>Q&8&JvG?1&u|vo(}9qz6&=V*e#O zYGo?J++Y|jFFjt~Cvq?`9)BXCDnIPL_aOVl_Dh5?4&XLmIsHNq;-3wrHiWHtmDvH6 z7!zA`dCJcj-11n}Mys>40|4qs>GtxJq%x_UawtPVab=$YK>Q>2ExXbgzc>bO{QZwD z%7ggGr>-lP@jD49#Zb$3jgj8C0u>Up0<%AOXh{>{_+Wb!5z72hj%`Fjxm!irS z&=Mh&+Ar;YY_UF)YvOgL>j-L!erF~6C9R;s2hufolKnr+z;x*h=*AzD-){rQj9`v~ zR43QqY_5p_4OAl;{xa|H%;e(tKteDx(155NT?wl7ZY#P!Dhn{mJ!CJ)){L)>;B)e$ z<3%UgppCKjus|%?RD!4qpmTT%&HhvRe)V_rBEJXw&`nY71S*B}$z!`?wm_xOLZKyq zDhgmXw^2X3ABv7sc#S|RLMR*I!%HxLC93^(bd_8QjSO!fmPN2q;H7(wd9?HS+hT!i zN!*Vr_2R9`b}rS^LkZxd3o>r7foF{u*F;t5-H7|+z0uBIa;DINE{d`d2a1zOeI8UK zWngwW{9;R4|JsidAISp4=fR+#S zg7xJa=F8R~iClg|EJqLh2he?SOG6{P(rGHyeR%@qd!bD&W@NtOk2mO{bj;1u0aT~| z{CSs>MN&6G)b18!6~(qg5;57$Pe7K4(jncSVR?~6(AO@%m_{pLSiv_$Ee(m{j$N-W zlR(D_2#kKO%&bm#Ybq-Tx%~c?l9}l^SvCTS4E%1X-As~{r&g_(yVT%ocI6OYE!`*{Gzw_jUIi-g^Uij-0~q)EG$UtV8E zw@JUu*8A%7Jkxi6Aa=Zp3Z#-QK}3HRsI%wpg`gZYkmaQe6N+#X@U8Yxte7D zjmw)q4omY9BmSk}P1cMpwp@yG%-;Ex@*MI-_lJ^#z1?$OX`obTzD^w+ia)dwOLmsp z3d@lEQ>cGeVig0hpij`d9zo%Es4LXt5)T(zM8HWY%{gfI?_u&h4%qOFmxMfUMu4@ zIHPcFAeS7$nu2aPTU+H*OoxByIcZC(Lx3Ud_1M|H{=Qw=UYi)b3{Vwg2x0ljFP>Xa z)dX7<6Wx1OyXV$gg819D5xaf@Os(o{(s_e6yZ*cB=4}6z=NpVO)CiC=-AP5Eq5ZXy z+KIlkJygErq&Q7b;5Ib)G)W zEX}(*b06qVsucurF?#r9!_;^`e;i!aoOu{+VI+>^rZK+;iQ-G zfI|j#6rO-y~zOC4j z69_1PXcNiU?o&h$1y4^0h&x`L{wlvYF0esOhP-CGW7ei%5X=m@z}u?$=qEe+W7M*P zN9=wD&|kXsspW!q{(4kQZZzM@Kt)LHBnKnN~;0RIN*Z|adgoXt9auSAMT+{mUkn4PO z;@>MqXVD!QIL!AcTYDl~$FBM^I{K{jt%NNL5Hb7o61P1&MlC9znl}Uz&c^p32G2FN zafK7+mK1x6i$_JmL#uLGtt#iC$x1InAo9c9O}>|3qMvD7%tPzYp+Z2kh@|@EM;m4) zT9MFMJJek+fWGl0Z!v}MZWR5xQYiMAA89~L&Mi31;{x?0@ zQ5(#OF(^L_!#}t;d>aU|To*Mq>vo|F1?&KT4}?`9X`B{bSDZTnmP1SQzHK2uB+!GL zGMwKql#2OchAH$+dm2{U**SNL8soj5B7X75?7oeSx)^(RSAU<)ErTQp`PSBB_{>b73dUqKM8r^f_6crd8A zIX24K{mk7iNr&4R1c%oH^0LDNC?nL8gk)O#%gWG0d?Vp=41U2L&A6E_oepfA3wks8 z5`N+RN#1XBZKC)@CdVQU2q4HDA4V3sYoPruTA-|oq4>%RY&pH1N*Cx5MT@t8(3w-i z0`fIN_u$mjM7C~9ii?gJpWRHpurM)Uze z`AU`k8iS?9w^i&jZkoQi;?Sv4s#mSMIVsb|*oUrpF)tAjVY(Y0YklKsz}||hq_%&K zfP7zvpj-ZB4iHRzF4`~KcM(K-xFo6Byblb+1QRQMQfkpLO1ocHy=YOY@ZwabI;V_G z71Vi_}P*nx0jmW5lmv`IzxnTBrc5a0{!#FwIs4Wr%Z9D?UO82up4-rK0AUdhvmVb7fTzGDV{^9PLX~ zb9~%j)!QnKY&-oGsC?{vj-S7$D@&7xiHXtCfESD;&{FIV7B?p~Tm3 zFX$6wJe+ z=VJ0XPEG}=mk?^bx4J+O*F%Jd_vh~ zpdU5U0(}dMRU^Vc@!P7@^zU5T!d2&qHJ(Gp$Bn_r0^Gk+G6orxgyY1EKX3udWQml= ziv5$LN=u82U-Nxdd6;w6QeU(a_rbK;o#m$ef0wGs*1nH8sRJTBrX7ckl!cixj?PO zc~+&b5B|Yb7Rge$eEAVH7wC?yubPpOk(C%5=<2$C?k#niY*(t=&IMw8B~S(o6p$P_ zU}Wg8+8!5h(IIyI@@bCvMrY>DG)pE%*pUw)MwS<*j7YT3+pX~sR+$4EkLcurI7>$Q z%}A*cu5=l6T4WPqBEr#LzI<7fDeD|BuhXminf{qs29Mm+HvPp}Z1~D3_hsDT82-|H zF$%s$)ocmd4^>LGk>B=W)|nq17Z{!S*xA{gR({>ohObLL>kGG)G~C?Wa(n;4{FA-^ z=)D|UttiDWuL`?Lf(t@y{Sl4lkly5!m+L~KM0aq$agF}FckjAyl~;Z(X%1%Yd_+QS z*v!q%4a}LHRXvudGU7Y9CB%*E4^dVlTyztekdOmiQ%?c{xFLz;x%K7-sJN`e=334s zYk_43v&!Uw5Kc+M-Ms=W3Z|yA^XV4ILb9#_Ik$-2@SESits#Xk@0q-7WPv*Rs{kCz z$#GPmce?>ji{r+WApMhkDFWrAGle!3Ub@+;g z-Zl6tI09{q;3DpU#0b9r5B}{xVA|GO~;-aZvDq%c~?L=`v$Lgq}`_S{^tKz~a8BEi0)^LC>-9;gkKWMN&*nF(JO}MoeSLlXmCiY+(}T;UpxJ47WpjD5 zgGX3c8)%u%UtiNWyX}PYfRLGjL|nMvq{>Crak5?e_U+pxjvE^r`p`-E*n|}ueXlk4 z0(!L*kVnPPbGte_pfmR2r6xGWAw1Co_85L60?1zTfsY#h`STnPj|zAhkIktJVY}gK ziTrKoGg@uGG!Lt)9wPN87Pq;2>G<*Ea6t6awn68+0za>6H(J}6OtykMk0`w@3jByd zRue}4eppyt75?=3^Ne@f#_}X(VB_s-sC+t?UV8Y${}?s3>D_zx=&1r5W5N1o3>6ff zyoDP~I4)i!D5|N6RJzPszHe@3gmS6iu=m=KfsYh2I06Mx^f5p!mG&=wZwzFFJ-G^w zTQ!QPpdpk^{>8k{T9tEYR(7_-wv?!7ue})42k0`Jt_C^i_SFOtn-@R?HGa20b(oId z=@kzjpRlp}I1T#F*h{W?$LQ%T-ZwST!QZ~wlZ=K{BS1qB5`Z{lDI z*bL9<(^nwmXn-c6W`=CkSj2WP6N^Pqj;=en`ThG}aPwGyoo^jF8#z|F-I<~Oa(QQG$75$>67aN3u1TFSn3smB>1ziE2cWdh>s0j`d#a*} zWBB(js6B&wv;6bBk6S<>e=6BDTo-L$R=9ZKR!8W1(pRA&ntK}daDa? zFy-lwh#t7Zr9!C%1?R&te_~37ioKc{)o1g)~_E;&rziXO5jW;dFCl4 zbAY|;5w+IT*2cqXT0x*VbmT}E+(-lVE(w!Do9bLj5-ykp%*+Se&NQj>nf{saj_OU&*2(R=ea@g*})3U{JNdWU>2!th$T{g7aGH%5A$@dFoeMA zk-9oRKfje3lU@Diw0r~@*6>~DG+WY8+H|-ys=v;lWOIJE0h(ngS)~m*IXU}5(G5hL zmX;O{y*sKUNd}0&u&^+X>8uP(o3WXh91sJ)Tb-Yg&t+p{ix+oHpMhm;7WVvOJv&@u zFxmbp=TFWDh^PlK5OgZQ>8K`(-9+6(x@v-uZ+*)quy5u#d%g*ci?g$SYf!m03~a4cDA=fH#Y1|;$fl5PdIb=xjz+W_43gKC4E!5MF_WXNdi>FK4- zkeSxJe*Ky;*uikO@F?WRm8X%mb8t3cQNnSVndih`snvj%0aQe(;D-7$n~mX8I<+Lp zEN~t=bz_^}srT;Pt8`mTwXK>hwbYcZ0x}=%$#r`J9ljPHL)i`;J=zQRTXp3ch=L!U zs((bX38tc6*LVl!d|FIQx1yq=JJ=aIK70Ov$U6G&ftYj(jJvygc4p=mED?!iB1lKH z;r_hB!a^a-uFU_j*>=F=w04(#dlQ*^W5dFzTwq-Ht`lyk1-6%_Oq{q7*qq3k+XOuS z&s#`&c0>E?ySujog{I7(fByx;r0LU_dr#K`_UPWPEz|=p4dUeF1RZGy)SCAz0vH^? zBkTgh!os#{KDjeJji1Sb`w=jm0QZZpxcBz^o14lj-%YqA06e^D{l=aBi4vf~3|Q}& zrk)b{3M}m6`b)pQ3iW)J{cGE=oCKBwwV)l(!1M5cdjdj$jh)v&fDr`jGu%-Rp#Ur$#Pwn>0865)JB!mrMMX1ze|rm@j0ptVqNJ?6daJLG4`@0dCV0C_ z=Id)~fu6buT;!uVb3X_0TtTl%a=_(}KY#yz4Ln})8tB}$!%|Jn&8uziowWhxI8e2% z1}xTrJ2pU#|Mz=7^Ldvr>E1apQTgj(`F{bxd<|?v24!Td0QOD300R;@xV|@Tb}wT= z{dt?uJ;2ahz{t!7+Dfjap#j<;J!RUoWxxi;?q$(-Kc7qn)x5x578|@(W#=!6>&r9i z|9m{2b$i=dm7UYx?0>)Scgg+Q@1fP8MN(dqoSdDdue`4SE|daqAeXfc1D?dVhUf4F z>HIwlfnjy;Ry~7BpYQMf1)RWU^~sK|E~9rl9`hYOe*8G_fK&tEg8u{^;F)sAmc;|N zLKp&@HXniOZo;ka0aGHV+5^_M1y*yf{`+?|JpSs>KmT_NCe{M$e2H4%=|sSCJh$e# z^?gI&kpvksz&sQuEyP$556n=-*eHC~fQ4 zuP?kFTP|7u=dpY*u>W^=Lww7#rv^Q2Z-PLLdxqWvZY?01j;&UpZJ5nT@R_ZHw3&^? b!88A}+r}LYAYy;X#uu4Ecf`Wj6 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 literal 0 HcmV?d00001 diff --git a/docs/source/images/ls.png b/docs/source/images/ls.png new file mode 100644 index 0000000000000000000000000000000000000000..456cce027dc7f249e1b1edccb3bd48f43fbd1b5a GIT binary patch literal 9237 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

  • Install
  •  |  +
  • Support
  •  |  +
  • Bugs
  •  |  +
  • Develop
  •  |  +
  • Examples
  •  |  +
  • FAQ
  •  |  +{% endblock %} + +{# Render the Header with Banner #} + +{% block header %} +
    +
    + {% if logo %} + +Logo + {% endif %} +
    +
    +{% endblock %} + +{#{% block document %} + +{{ super() }} +{% endblock %}#} + +{#{% block document %} +{% block relbaritems %} + {% if pagename != 'index' %} +{{ title }} + {% endif %} + {% endblock %} + {{ super() }} + {% endblock %}#} + +{#{% block relbar1 %}{% endblock %} #} +{% block relbar2 %}{% endblock %} diff --git a/docs/themes/statsmodels/page.html b/docs/themes/statsmodels/page.html new file mode 100644 index 0000000..e363835 --- /dev/null +++ b/docs/themes/statsmodels/page.html @@ -0,0 +1,51 @@ +{# + Overwrites what is displayed on the examples landing page. +#} +{%- extends "layout.html" %} +{% block body %} + + +{% if pagename == 'examples/index' %} +
    +

    Statsmodels Examples

    +
    +This page provides a series of examples, tutorials and recipes to help you get started with statsmodels. Each of the examples shown here is made available as an IPython Notebook and as a plain python script on the statsmodels github repository.

    + +If you are not comfortable with git, we also encourage users to submit their own examples, tutorials or cool statsmodels tricks to the Examples wiki page. +
    + + +

    Topics

    +
    + {% for section in examples %} + + {% endfor %} + +
    + + {% for section in examples %} +

    {{ section.header }}

    + +
    +
      + {% for link in section.links %} +
    • + + + + +
    • + {% endfor %} +
    +
    + {% endfor %} +
    +{% else %} + + {{ body }} + +{% endif %} + +{% endblock %} diff --git a/docs/themes/statsmodels/relations.html b/docs/themes/statsmodels/relations.html new file mode 100644 index 0000000..f45df85 --- /dev/null +++ b/docs/themes/statsmodels/relations.html @@ -0,0 +1,32 @@ +{# + basic/relations.html + ~~~~~~~~~~~~~~~~~~~~ + + Sphinx sidebar template: relation links. + + :copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS. + :license: BSD, see LICENSE for details. +#} +{%- if prev %} +

    {{ _('Previous topic') }}

    + {%- if prev.title[:19] == "statsmodels" %} +

    {{ "sm." ~ prev.title[20:] }}

    + {%- else %} +

    {{ prev.title }}

    + + {%- endif %} +{%- endif %} + +{%- if next %} +

    {{ _('Next topic') }}

    + {%- if next.title[:19] == "statsmodels" %} +

    {{ "sm." ~ next.title[20:] }}

    + {%- else %} +

    {{ next.title }}

    + {%- endif %} + +{%- endif %} diff --git a/docs/themes/statsmodels/sidelinks.html b/docs/themes/statsmodels/sidelinks.html new file mode 100644 index 0000000..3db8c6f --- /dev/null +++ b/docs/themes/statsmodels/sidelinks.html @@ -0,0 +1,2 @@ +

    Follow statsmodels on Twitter +Blog

    diff --git a/docs/themes/statsmodels/static/nature.css_t b/docs/themes/statsmodels/static/nature.css_t new file mode 100644 index 0000000..8130bb2 --- /dev/null +++ b/docs/themes/statsmodels/static/nature.css_t @@ -0,0 +1,291 @@ +/* + * nature.css_t + * ~~~~~~~~~~~~ + * + * Sphinx stylesheet -- nature theme. + * + * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* +background-color: #ffffff; (For text) +background-color: #dbe0ea; (For banner and sidebar headers) +*/ + +@import url("basic.css"); + +/* ---------------- Header ---------------- */ + +div.header { + background-color: #dbe0ea; + color: #272A2D; +} +div.headerwrap { + background-color: #dbe0ea; + min-width: 1030px; + min-height: 85px; + margin-left: auto; + margin-right: auto; +} +div.navbar ul { + list-style-type: none; + margin-left: 230px; + text-align: right; + position: absolute; + right: 105px; + top: 103px; +} +div.navbar li { + display: inline; + /*color: #272A2D;*/ + border-bottom-right-radius: 30px; + border-bottom-left-radius: 30px; + padding: 0px 15px +} +div.related { + background-color: #dbe0ea; + line-height: 32px; + color: #272A2D; + font-size: 100%; + border-top: 1px solid white; + border-bottom: 1px solid white; + min-width: 1030px; +} +div.related a { + color: #272A2D; + font-weight: normal; + text-decoration: none +} + +/* ----------- Page layout --------- */ + +body { + font-family: Arial, sans-serif; + font-size: 100%; + /*background-color: #ffffff;*/ + color: #272A2D; + margin: 0 80px; + padding: 0; + min-width: 640px; +} + +div.documentwrapper { + background-color: #ffffff; + float: left; + width: 100%; +} + +div.bodywrapper { + margin: 0 0 0 230px; +} + +hr { + border: 1px solid #B1B4B6; +} + +div.document { + min-width: 1030px; +} + +div.body { + min-width: 740px; + padding: 0 30px 30px 30px; + /*font-size: 0.9em;*/ +} + +/* -------------- Footer -------------- */ +div.footer { + background-color: ffffff; + color: #272A2D; + width: 100%; + padding: 13px 0; + text-align: center; + font-size: 75%; +} + +/* -------------- Sidebar -------------- */ +div.sphinxsidebar { + /*background-color: #dbe0ea;*/ + /*background-color: #ffffff;*/ + font-size: 0.85em; + line-height: 1.5em; + word-wrap: break-word; +} +div.sphinxsidebarwrapper{ + padding: 20px 0; +} +div.sphinxsidebar h3, +div.sphinxsidebar h4 { + font-family: Arial, sans-serif; + color: #272A2D; + font-size: 1.2em; + font-weight: normal; + margin: 0; + padding: 5px 10px; + background-color: #dbe0ea; +} +div.sphinxsidebar h4{ + font-size: 1.1em; +} +div.sphinxsidebar p { + /*color: #888;*/ + color: #272A2D + padding: 5px 15px; +} +div.sphinxsidebar ul { + margin: 10px 20px; + padding: 0; + color: #000; +} +div.sphinxsidebar input { + border: 1px solid #ccc; + font-family: sans-serif; + font-size: 1em; +} +div.sphinxsidebar a{ + text-decoration: none +} + +div.sphinxsidebar input[type=text]{ + margin-left: 15px; +} + +/* -------- body styles ------- */ +div.body h1, +div.body h2, +div.body h3, +div.body h4, +div.body h5, +div.body h6 { + font-family: "Georgia", "Times New Roman", serif; + font-weight: normal; } +} + +div.body h1{ +} + +div.body h1 { + font-size: 250% ; + /*border-top: 20px solid #ffffff; */ + margin-top: 0 ; + word-wrap: break-word; + margin: 30px 0px 10px 0px; + /*padding: 5px 0 5px 10px*/ +} +div.body h2 { font-size: 184%} +div.body h3 { font-size: 142%} +div.body h4 { font-size: 125%} +div.body h5 { font-size: 100%} +div.body h6 { font-size: 100%} + +div.body a{ + text-decoration: none +} +div.body a:hover{ + text-decoration: underline +} + +/* --------- Header links ---------- */ +a.headerlink { + color: #ffffff; + /*padding: 0 4px 0 4px;*/ +} +a.headerlink:hover { + color: #dbe0ea +} + +/* ------------ Other stuff ------------ */ +div.body p, div.body dd, div.body li { + line-height: 1.5em; +} + +div.admonition p.admonition-title + p { + display: inline; +} + +div.highlight{ + background-color: white; +} + +div.note { + background-color: #ffffff; + border: 1px solid #ccc; +} + +div.seealso { + background-color: #ffc; + border: 1px solid #ff6; +} + +div.topic { + background-color: #ffffff; +} + +div.warning { + background-color: #ffe4e4; + border: 1px solid #f66; +} + +p.admonition-title { + display: inline; +} + +p.admonition-title:after { + content: ":"; +} + +pre { + padding: 10px; + /*background-color: White;*/ + background-color: #fafafa; + color: #222; + line-height: 1.2em; + border: 1px solid #C6C9CB; + font-size: 1.1em; + margin: 1.5em 0 1.5em 0; + -webkit-box-shadow: 1px 1px 1px #d8d8d8; + -moz-box-shadow: 1px 1px 1px #d8d8d8; +} + +tt { + background-color: #ecf0f3; + color: #222; + /* padding: 1px 2px; */ + font-size: 1.1em; + font-family: monospace; +} + +.viewcode-back { + font-family: Arial, sans-serif; +} + +div.viewcode-block:target { + background-color: #f4debf; + border-top: 1px solid #ac9; + border-bottom: 1px solid #ac9; +} + +/* For docstrings */ + +.field-name { + white-space: nowrap; +} + +.field-body { + margin-top: 2px; + margin-bottom: 2px; + max-width: 600px; +} + +/* For notebooks */ +div.input_area>div.highlight>pre { + -webkit-box-shadow: none; + -moz-box-shadow: none; +} + +div.output_area pre { + -webkit-box-shadow: none; + -moz-box-shadow: none; +} diff --git a/docs/themes/statsmodels/static/statsmodels_hybi_banner.png b/docs/themes/statsmodels/static/statsmodels_hybi_banner.png new file mode 100644 index 0000000000000000000000000000000000000000..4501c40612bc9333807c9e32d66fd6441b3137dd GIT binary patch literal 31211 zcmXtA1yqym+gA~gmhPT(i{t?5ZbrPcv~)Kp&1jH@5h5{RNH+*bNeo2k?(WX-;eXC| zIMg_M*zR5Tb^YpIw1%2I4kiWWvuDq66cuE&o;`bB0Q?Mjg$8_GnltnTzCCx>l9zgh z7@^t*enI=7EHCry@#!PKtt17w1;a(b!2Q`XDu$=e=heshq`-~n9*U~6=yMpPFF-i! z?0gf?p3yy1l#$f&nc2(r&Y`wCe_R~jtl!VB-_CvgqCjwac=Q(+gFsQg-rDZufgY;n z^KYf^U%te`4B9sS_zCp#Mc5f8eVfC;#B9mKgU`muLW{p(T=Ct3FTOyNzs*Lb4NQ1b zIM01#Q^DEU_Iw&;!1527+)IPBXNjQbgzBqy+69Z_MTvg$qO=6J#j^ zaan&bqQ6Beq~*pz?~!J!Moc(Jy|+PdlfrhWM{X&U|9$xJUd3}iL3hn0s7?_BZBeP{ z>}S$1W>tNRgM96WxE{6xyghk1pdP4~I=rYAO{U z`+=E0yyPVGdX%5@NW^<(;9N~D`Z@)KVUVT?@oW&pBu@C>LUn}W?_l-#!V(Jmi?mp= z$KOwS1R!OTe|l0IO-d(&z{qYq?5Is&A6N{CouxXK2*mrUVtP@X#YZyUV%3+1fR9F; zKwNxf&gn?hAT5a)b@BA*#cGDq#gY)NxHz;>BefK>mma~$j@gX($_5phAVnMYGSy@r&|g0d3NK@+HgbT4RK;{CYjv^^x4xlOBv|zp!((?|7U7Dpi

    0Cz8dD zPxoq$-fCfDi-13s#jR7A(lRXulAXoabZ;s!!IDjJq54RScD6oR=Ih$20hM6@(%qQD zkPHU`36o#K`uYvd){a;27!HfuY!*VqY&Nq%Lki)Ih!_qGlnp=Jpw9e$K6tVD`spVj zWWD2TzxCUUVnu$6uPrTpI3x({Dju!(z9WgCe{?l$&U#}?a_!XwNnSfEgrdjLy8(<~Yu zC&|h#VF?L+4p)$6J87pZIDz&urziqTg@C81c%`U)>t_{K8UI!9h>et)^kBdzR$Nl< zc2!wVIlNVI21uC^OYBS{I$hJkN(?CY+v@sRiS0i z`)7QNM_TWtG>LU&W&hP`6x_ZbmKi6uH0Znxd zC=yIN=)OCmqtTU8FOE;q|!g2OQxnFg&^)dKJ6_*E;&^8eQ!v8nXnLGN`T z*yEsFHH&q34{z_|k(s)!h>1dYijKPg;L8{_`~E zhrG#ET-6t-UtRL&GI=)E1dG|kT(#I@iZFlG!>qU!f!m&7Wzgk+6zDKpP*anewy|H7 ztf-^PSiEcb)?ny{1?U@gBJkp6Uz!M~6*jKx09?_$&Qs&(gV*9vj#g}l?wChtX)#dY zyrCIT$Jr}b$jGCb^&xBvl~AhbIqP+Bq%6 zBX+5LM(HhU42WdS&$f7f5kfv8518g5*y^&tM8KnpKMkbq^Bh3$Ev)%U-BC{>tJ!b$ zb{Ti(G!W=}UJgdHJ(n2XvsdD2oG%`MCnnOxeiDc$tDA(A=>s9I23bs#z?fHiJ*eUz{Qf1mTU)s(A`F08!=dijf~*V%z7sx*Apiyzu8T_iom9h z04W0PX;r9`R`l!{KZKDWj*guzes^ic%d8b!L{#JlH9928m5OwBWVPApmBqkwP)R@E z)r$!?<8&%vB3b<2snaOA!VK$|Jv^iQII^0ueBqn)*L(!=3L6?SLn@%xEVgjy=55iq zB0=;=9pgSvqvUI+yPt{u)nN$Atq4i3^smj$XydVT0|eB$`yQU2fBv-Q(o07a?utMQ zb)b6ez|g$A^^-zH{l=oSB&)yGtj13voko#XEWv%f^&H?udE5^auuXFV0chb$6K<0OZujfox)2Bf z^Ify`OIK3UUu9H=zXAgA3|^=T^5QTKHEZjn z`tV141!Rl_d^pBtha!kRcyQUd2&OD3l66na7$F(#CXLQ)+xhL@|sXv z2eQ_29h4|bYB>&+V=?MzPSkFcC8lXnpFivf0agd8vtaIvdTA_J&@*a58d}wTQ|;e5f`b0kk}-S^Q&SMcm#sRJ*?jjfWs- zNF1dl^c>_5lu(p@3M5xuetMT(q#m>5K3%?x9eTd(b zpSl{8_SGF5(;6h9%8>blXleeDqTeUSJfKcrA;A2njx48dP?bKmL0ai|=bzOa9uS+WD9tWH?Y}%D^`gA6l|!8sDPmvl z_3kyR^8St{W}Q}rlP0j3m>AGk=m+_7srPFSr+_+=OnXBFAx7(W9ayh!L?|<5_jo!K ze6e~SYT!kq`VZBi$nL|Xss1NK|L%ASB#@*zhq87cTt$3 zFVL5ojL^$0@t_P}chQbzLJGRGqU63#r5!Qx8+XgkWv_}Th;KE2E@ZoceQE@E2(n7) zhNuY1VhnvTwS0xL&SAs|Ml#YQM4pz|{pW0q_o5wibjAc!Q^0(~`ma-^~ zZ3exXB#($D`b#&EEW?z-L=ji8D-yqoNiZ%$C94_2A>6SSVL`Vong#`?gTGY(8eIE3 zShEB?W(EQ;Une29 zyUd8%8P6Y%P%0HQzbteObO&+s*)0a@~E6#8;xNdM4rw}p3Y~J2B{}}XGw!%hcyyud+lSW7$qgJP?1VW z_B`U&b!bFDAP^szx~eK?L;+y}b0Tq_ObV_HQ8Tj^%h_U+8+%Ae(TnwXA}Pn^tC({A z=W@6CUV(?p12;7|XLqo;5RU{9U^{X1V1B7L(-*UrWtV4R~aN(h4YMQW%8KsE(f#fjluZQ!0%wg%6Uyes| zu{v@XkK5ZF4kwPDUA;LlJIqzELRc6Iz~T9&AzdsgMMr+*)Jn0JG(LRmA7rF5OEZ$9 z6u`&yDFbE(*SQ}a?gc~-zb3KCE8PYed)rLjs2^kA#vixk)O1zB;nf!M?3atTc(`JF z3K0op24nrij5;HX1U$)`(OG!`CPYaGQ)5cngs3K;n|a!LCqGSo~KxXzTAm-SZu+T!reP3r9mA_fE=k!v+$A zG@+AHiz(-sv;2&->g<#*8~?0|h6ZH*k0y*ktc8-@v=~n!=W?_YOz+DYJOaMmTX7QP z^g?`vOS!q6ezh(AEo!yDvMUN9C@D$~5KcLtDxK%9Fc`+9X8gl- z%EO3c3z(<7TZOrgM^PU8*ei$LkP`j!gY~HjKBUEPwdE*xoaZK1RuaKd>=wr`lVvQr z>5{Imp8I@-!~guLriP4_mQ@5U#+sOC{|IbZdPgPf=J7LIAI9UQw|f~Xpw!dbcM2An z@isFcQSFu|a^-AqaV>=o#n+Qq%5J}zu2ATCbsqeA{nMgKktr!Ab?T=(?GTrSTSS%~Bk5gR84;65Dk5${Ru*=dAP z5-|z)e?R|qw1xJOw{oOiJ*c7E=m6grx{?ElJCoJMk<+ z3rD9HMy^fo_|a7)qD)QPr88Jgf`-dBeaVUy2QM7&j#|=FkXF|n=y|U>$PT+}I5e2< zPhlOrw><`T8_n4n&5I9`RbG$7<0I9?gT4v0Uzm$nFb6F0g0JSCr)ynNChwh?q$6<| z^N=0itHO5kYY0`xWn4Xbu;63`x#eX1s)V1NWC>$Y>N&}ZytO~Kr6(#0YZ9T(di`+h zq?wcO8tiYgLEW?Z+2 zv@UlT%&WH{w(lt7R(!dzNLxpK6AwNuk@CoQ7Pi4O?)8dy-^s)SUh>fn8BsKMiXOHO zcZEA^7#pj)Lho-++{)OR;Z<(eS{rTPY}ZxhsLTFSFX2a2hQ%K)*V2Ys;sD%iSo|-} z%3#lx$Ca635EB?4rEn$Chlg9I1GW=qvoOpS#ekJ)w&rG$ena8oXlAPD$5<dpFRX?|Kf>;;h|^3Y zY_MnXPN2^7{OrslvTw~zxVgE7jNkGVA+zei<(#EK;WuB=XTYCzCjX93Pan6l(;Db* z9qcfq54ug6%bzTqcTn3dn2j#cD=4(`c?*=}h=eA6?WGe@O^s|1F#Ykn#Lv&ibAhTi zo)Q_RcpD}=PaCmzDx5q3>W)k>>mOy>`vkt4FC?#K82>l^CbmxV^Xfxzs@Tkjf#fg{ zI_GmD;yzc_uGR(j|I*tz8*aHQjRgU;z~g;^b+_|7&t>`>>Cvox<&MoKmGPqH<_LWb znxKoF)~34?c;26x8LF=6H#C~B8-un!-!|UYXHPe}iWQsVPTkxt_F$Gtax*PnM)$2U z1li1XGIj3irBuCrReIzPfecvH+&x6tH{I(#XTRUsp}gu;M}R0|#^&b@+{#ylRC1do z^d43yifMgZI>@Yia0+!N}&ykl&1}PPvj7+u<-ft7J%)*(m?*b)0xykuk-hpU)9+& z_kSX4j0Djiw&Z$H;673)3}AZMI0p7LM`fLD#^{j0OQNvdh}7G|%n_D`(Lh?rzawz^ zH)WFJpMl<|K-nj$T%1X{!_{yECd*$pivk{)7C}*M&7K{MQ{*1GCyq8*aVW z0dKUPy~w-2^CfEN#T8@j+aQ&A#J>)RcQkBpIUSO)7?^0exbl+KtDZzHIuqDn{{?z! z01tzIY=n_|m2j%nETmRzyo+0WyumzpxHZkFJ`B3Mh%gi~yZKzCHL&!b+W;?Y6S#3) zgE-uXYf>VOd5~YwS$5KsNhOEF3?`OQBX;k!ycq8|{%<;Z(^n<4dC`e=?DI$+Wen+y zp!XOGCCT91y%Z|fzhnIT{3}8u&rZ3&xZ5jZ)jN()%t*0if?x_^JPYW><)HvQBR^^4 z@bo-?Q`IAuncm)!Zk4H19jU@34d8jK8`J&a+v=7@K#EJm-?@Ds&Oq4a6JYu`tPw^y z`tP-X4f|`KcG8&qMd242QvW<=ylPM8#?{>}jf1V%f3Gj=VRxIIh~K(h;mf;DCCR_N z{}f98&YA=IB7VQ%BOhYb^|nIrG}}H%Qr=$_2|fqeRq;R}gn(}%r$Wg)r{x2(=clgyRvkF5V zGLm(CooMcTuNxiXA3+#IXri7|M0ECfhL9a5Z1a#$yLwK@uVXQ?x$H1NsnA4;Uyt9% z_acVFCs4d3=q^@@eIaP~JrP9Z#sM)TMYu z&%lyZ_QSTzyvIvMDvcz(&R3~i zMfqq7_|(F0Ugrv1jj7<6>TKNZj1c!Okmb8nU5mT@q;3e9CU|h2%mv@{qZDbE9c65f z<82gai;wX3<@SqfUwmtChrwVV#|lo_gAQd+Pn<|9zn4I7Df-%$t4cY!D&o~)oNJpz zS9AFH-q-garnbKRXzBiOE$XYd?hD^Gy>pdg87hoS4-x8->w}?hYqy1ob!Melf5Ghu zhyH8s1`e~BnFL0Yvh#82bs38H(ekt}mWFC1dJJsxe)r;3h`xK)BQe;SUS^q$KyU$N zF;j~&%AX1cP}@Mhg4cjGpSgoQ-IkIj(HJw^C#pf?8hzo7QK11nUqB!<1m}s0Z3aB{=)uWd40bV`5^8(l-~X z?3Q|!Vn=R@uc{04?I~(Z17Mkgi$Cp8O)*IQ zjRVE<9)?JTPs`PLTu+D?l30KpIx|DTwbF$!)zovSnvg__+>bEs`~K7 za<~Dq3aEJO?w?ir`KL$E3_PwB+GRMnvbcXsp8j%RQWeOaFJsnm$N<{OXs8lX9wBdj zh^C$00@qeE-2S(9G>JsE0tjkH;jmaAr^6O)p2aVK%K%dt9iJyo4th0_O7mx%sMs7T zz$V^u=Ea!w${Gap&7z7rK!q!<_)aP|EM;NL`=0i>5Z7PF!l3T+Uxw}58S}YNV2_hOO2N-Y%kyi2aWgQ4EfrTpwoEtw=^SH{P|T0j~FC48^Pg_qsdj|?m1sTouj^h|jqQ%bBe6^YlI5^#``gqMp z6MSY~?>OIehJsgMcjfZ&<4)=K%94VDq|VStEknJ8Lg4X4Qtt(YClSw^&Cbs1S8u73 zaGNN&4|-WDZmd)WM-OKUCMvxF#HaaDI|_jucjPS_fZo5v4xEC4*W)tKBi-7=MP_T!y!r0 zR+Xhp;F^GQ?l^%E?VglbIFp+=f%0DH)0v20vuXUjt9?1*s;2PGiSb9dro6y>rS!0}T*f~bv+a{&ZQ zL5W`Ddy0mJNB-N~BL2g#D9ykBCbjhzf0k-mgygy&is|T0{_xzjcDh}q^*Jj5q~6R< z>4+a6*WE}sjXv%A{{8n4P@c6fXY(c|tZDq$BsYcwqtAC23ch~L)nOZ0>Xf!!XpaN# z!sj^SA(ud|4D{r>y7MPG{p(rJDuz}W2q|_;gcQFARSxI%)mIqW+LFmYRNvX_R;>K< zb>BKT*qA$Qry6RDGWELj7@zqg1q|0_C$}9t8R|Pz7#8ponhe37XyYISa_T}kSQfXEM(J#}iw6(LBrc3fRdUq=eD(Z-l zr~TG7zdmS+pJ%!YAKq2stAqN9ePvNmtjW+$O<>)jmyfhqz%p-a>`&GAjGA{ht^IL! zKkzl}JO!t58-_S-l}bifb;RWsn{SDzgD+lt&xxl1G`JU#rOLiL(`D|N_f)?b%DyFd zysa^HT^s95MA}HJvjD1zOl)#d@dp&kjKXrW2X^k$%0AlV^(O8ryKy<}am&&C&Z2QU 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 W{3nVaQUG6Kek3QQBv~qM;QK$WpT&Cs literal 0 HcmV?d00001 diff --git a/docs/themes/statsmodels/theme.conf b/docs/themes/statsmodels/theme.conf new file mode 100644 index 0000000..1cc4004 --- /dev/null +++ b/docs/themes/statsmodels/theme.conf @@ -0,0 +1,4 @@ +[theme] +inherit = basic +stylesheet = nature.css +pygments_style = tango diff --git a/examples/incomplete/arima.py b/examples/incomplete/arima.py new file mode 100644 index 0000000..9be32bb --- /dev/null +++ b/examples/incomplete/arima.py @@ -0,0 +1,53 @@ +from __future__ import print_function +from statsmodels.datasets.macrodata import load_pandas +from statsmodels.tsa.base.datetools import dates_from_range +from statsmodels.tsa.arima_model import ARIMA +import matplotlib.pyplot as plt +import numpy as np +import statsmodels.api as sm +plt.interactive(False) + +# let's examine an ARIMA model of CPI + +cpi = load_pandas().data['cpi'] +dates = dates_from_range('1959q1', '2009q3') +cpi.index = dates + +res = ARIMA(cpi, (1, 1, 1), freq='Q').fit() +print(res.summary()) + +# we can look at the series +cpi.diff().plot() + +# maybe logs are better +log_cpi = np.log(cpi) + +# check the ACF and PCF plots +acf, confint_acf = sm.tsa.acf(log_cpi.diff().values[1:], confint=95) +# center the confidence intervals about zero +#confint_acf -= confint_acf.mean(1)[:, None] +pacf = sm.tsa.pacf(log_cpi.diff().values[1:], method='ols') +# confidence interval is now an option to pacf +from scipy import stats +confint_pacf = stats.norm.ppf(1 - .025) * np.sqrt(1 / 202.) + +fig = plt.figure() +ax = fig.add_subplot(121) +ax.set_title('Autocorrelation') +ax.plot(range(41), acf, 'bo', markersize=5) +ax.vlines(range(41), 0, acf) +ax.fill_between(range(41), confint_acf[:, 0], confint_acf[:, 1], alpha=.25) +fig.tight_layout() +ax = fig.add_subplot(122, sharey=ax) +ax.vlines(range(41), 0, pacf) +ax.plot(range(41), pacf, 'bo', markersize=5) +ax.fill_between(range(41), -confint_pacf, confint_pacf, alpha=.25) + + +#NOTE: you'll be able to just to this when tsa-plots is in master +#sm.graphics.acf_plot(x, nlags=40) +#sm.graphics.pacf_plot(x, nlags=40) + + +# still some seasonality +# try an arma(1, 1) with ma(4) term diff --git a/examples/incomplete/arma2.py b/examples/incomplete/arma2.py new file mode 100644 index 0000000..cc4fbef --- /dev/null +++ b/examples/incomplete/arma2.py @@ -0,0 +1,28 @@ +""" +Autoregressive Moving Average (ARMA) Model +""" +import numpy as np +import statsmodels.api as sm + +# Generate some data from an ARMA process +from statsmodels.tsa.arima_process import arma_generate_sample + +np.random.seed(12345) +arparams = np.array([.75, -.25]) +maparams = np.array([.65, .35]) + +# The conventions of the arma_generate function require that we specify a +# 1 for the zero-lag of the AR and MA parameters and that the AR parameters +# be negated. +ar = np.r_[1, -arparams] +ma = np.r_[1, maparams] +nobs = 250 +y = arma_generate_sample(ar, ma, nobs) + +# Now, optionally, we can add some dates information. For this example, +# we'll use a pandas time series. +import pandas as pd +dates = sm.tsa.datetools.dates_from_range('1980m1', length=nobs) +y = pd.TimeSeries(y, index=dates) +arma_mod = sm.tsa.ARMA(y, order=(2, 2)) +arma_res = arma_mod.fit(trend='nc', disp=-1) diff --git a/examples/incomplete/dates.py b/examples/incomplete/dates.py new file mode 100644 index 0000000..9ea779a --- /dev/null +++ b/examples/incomplete/dates.py @@ -0,0 +1,45 @@ +""" +Using dates with timeseries models +""" +import statsmodels.api as sm +import pandas as pd + +# Getting started +# --------------- + +data = sm.datasets.sunspots.load() + +# Right now an annual date series must be datetimes at the end of the year. + +dates = sm.tsa.datetools.dates_from_range('1700', length=len(data.endog)) + +# Using Pandas +# ------------ + +# Make a pandas TimeSeries or DataFrame +endog = pd.TimeSeries(data.endog, index=dates) + +# and instantiate the model +ar_model = sm.tsa.AR(endog, freq='A') +pandas_ar_res = ar_model.fit(maxlag=9, method='mle', disp=-1) + +# Let's do some out-of-sample prediction +pred = pandas_ar_res.predict(start='2005', end='2015') +print(pred) + +# Using explicit dates +# -------------------- + +ar_model = sm.tsa.AR(data.endog, dates=dates, freq='A') +ar_res = ar_model.fit(maxlag=9, method='mle', disp=-1) +pred = ar_res.predict(start='2005', end='2015') +print(pred) + +# This just returns a regular array, but since the model has date information +# attached, you can get the prediction dates in a roundabout way. + +print(ar_res.data.predict_dates) + +# This attribute only exists if predict has been called. It holds the dates +# associated with the last call to predict. +#..TODO: should this be attached to the results instance? diff --git a/examples/incomplete/glsar.py b/examples/incomplete/glsar.py new file mode 100644 index 0000000..16125d9 --- /dev/null +++ b/examples/incomplete/glsar.py @@ -0,0 +1,156 @@ +""" +Generalized Least Squares with AR Errors + +6 examples for GLSAR with artificial data +""" + +#.. note: These examples were written mostly to cross-check results. It is still being +# written, and GLSAR is still being worked on. + + +import numpy as np +import numpy.testing as npt +from scipy import signal +import statsmodels.api as sm +from statsmodels.regression.linear_model import GLSAR, yule_walker + +examples_all = range(10) + ['test_copy'] + +examples = examples_all # [5] + +if 0 in examples: + print('\n Example 0') + X = np.arange(1, 8) + X = sm.add_constant(X, prepend=False) + Y = np.array((1, 3, 4, 5, 8, 10, 9)) + rho = 2 + model = GLSAR(Y, X, 2) + for i in range(6): + results = model.fit() + print('AR coefficients:', model.rho) + rho, sigma = yule_walker(results.resid, order=model.order) + model = GLSAR(Y, X, rho) + + par0 = results.params + print('params fit', par0) + model0if = GLSAR(Y, X, 2) + res = model0if.iterative_fit(6) + print('iterativefit beta', res.params) + results.tvalues # XXX is this correct? it does equal params/bse + # but isn't the same as the AR example (which was wrong in the first place..) + print(results.t_test([0, 1])) # are sd and t correct? vs + print(results.f_test(np.eye(2))) + + +rhotrue = np.array([0.5, 0.2]) +nlags = np.size(rhotrue) +beta = np.array([0.1, 2]) +noiseratio = 0.5 +nsample = 2000 +x = np.arange(nsample) +X1 = sm.add_constant(x, prepend=False) + +wnoise = noiseratio * np.random.randn(nsample + nlags) +#.. noise = noise[1:] + rhotrue*noise[:-1] # wrong this is not AR + +#.. find my drafts for univariate ARMA functions +# generate AR(p) +if np.size(rhotrue) == 1: + # replace with scipy.signal.lfilter, keep for testing + arnoise = np.zeros(nsample + 1) + for i in range(1, nsample + 1): + arnoise[i] = rhotrue * arnoise[i - 1] + wnoise[i] + noise = arnoise[1:] + an = signal.lfilter([1], np.hstack((1, -rhotrue)), wnoise[1:]) + print('simulate AR(1) difference', np.max(np.abs(noise - an))) +else: + noise = signal.lfilter([1], np.hstack((1, -rhotrue)), wnoise)[nlags:] + +# generate GLS model with AR noise +y1 = np.dot(X1, beta) + noise + +if 1 in examples: + print('\nExample 1: iterative_fit and repeated calls') + mod1 = GLSAR(y1, X1, 1) + res = mod1.iterative_fit() + print(res.params) + print(mod1.rho) + mod1 = GLSAR(y1, X1, 2) + for i in range(5): + res1 = mod1.iterative_fit(2) +# mod1.fit() + print(mod1.rho) + print(res1.params) + +if 2 in examples: + print('\nExample 2: iterative fitting of first model') + print('with AR(0)', par0) + parold = par0 + mod0 = GLSAR(Y, X, 1) + for i in range(5): + #print(mod0.wexog.sum()) + #print(mod0.pinv_wexog.sum()) + res0 = mod0.iterative_fit(1) + print('rho', mod0.rho) + parnew = res0.params + print('params', parnew,) + print('params change in iteration', parnew - parold) + parold = parnew + +# generate pure AR(p) process +Y = noise + +#example with no regressor, +#results now have same estimated rho as yule-walker directly + +if 3 in examples: + print('\nExample 3: pure AR(2), GLSAR versus Yule_Walker') + model3 = GLSAR(Y, rho=2) + for i in range(5): + results = model3.fit() + print("AR coefficients:", model3.rho, results.params) + rho, sigma = yule_walker(results.resid, order=model3.order) + model3 = GLSAR(Y, rho=rho) + +if 'test_copy' in examples: + xx = X.copy() + rhoyw, sigmayw = yule_walker(xx[:, 0], order=2) + print(rhoyw, sigmayw) + print((xx == X).all()) # test for unchanged array (fixed) + + yy = Y.copy() + rhoyw, sigmayw = yule_walker(yy, order=2) + print(rhoyw, sigmayw) + print((yy == Y).all()) # test for unchanged array (fixed) + + +if 4 in examples: + print('\nExample 4: demeaned pure AR(2), GLSAR versus Yule_Walker') + Ydemeaned = Y - Y.mean() + model4 = GLSAR(Ydemeaned, rho=2) + for i in range(5): + results = model4.fit() + print("AR coefficients:", model3.rho, results.params) + rho, sigma = yule_walker(results.resid, order=model4.order) + model4 = GLSAR(Ydemeaned, rho=rho) + +if 5 in examples: + print('\nExample 5: pure AR(2), GLSAR iterative_fit versus Yule_Walker') + model3a = GLSAR(Y, rho=1) + res3a = model3a.iterative_fit(5) + print(res3a.params) + print(model3a.rho) + rhoyw, sigmayw = yule_walker(Y, order=1) + print(rhoyw, sigmayw) + npt.assert_array_almost_equal(model3a.rho, rhoyw, 15) + for i in range(6): + model3b = GLSAR(Y, rho=0.1) + print(i, model3b.iterative_fit(i).params, model3b.rho) + + model3b = GLSAR(Y, rho=0.1) + for i in range(6): + print(i, model3b.iterative_fit(2).params, model3b.rho) + + +print(np.array(res.history['params'])) +print(np.array(res.history['rho'])) diff --git a/examples/incomplete/ols_table.py b/examples/incomplete/ols_table.py new file mode 100644 index 0000000..381bbd5 --- /dev/null +++ b/examples/incomplete/ols_table.py @@ -0,0 +1,69 @@ +"""Example: statsmodels.OLS +""" + +from statsmodels.datasets.longley import load +import statsmodels.api as sm +from statsmodels.iolib.table import SimpleTable, default_txt_fmt +import numpy as np + +data = load() + +data_orig = (data.endog.copy(), data.exog.copy()) + +#.. Note: In this example using zscored/standardized variables has no effect on +#.. regression estimates. Are there no numerical problems? + +rescale = 0 +#0: no rescaling, 1:demean, 2:standardize, 3:standardize and transform back +rescale_ratio = data.endog.std() / data.exog.std(0) +if rescale > 0: + # rescaling + data.endog -= data.endog.mean() + data.exog -= data.exog.mean(0) +if rescale > 1: + data.endog /= data.endog.std() + data.exog /= data.exog.std(0) + +#skip because mean has been removed, but dimension is hardcoded in table +data.exog = sm.tools.add_constant(data.exog, prepend=False) + + +ols_model = sm.OLS(data.endog, data.exog) +ols_results = ols_model.fit() + +# the Longley dataset is well known to have high multicollinearity +# one way to find the condition number is as follows + + +#Find OLS parameters for model with one explanatory variable dropped + +resparams = np.nan * np.ones((7, 7)) +res = sm.OLS(data.endog, data.exog).fit() +resparams[:, 0] = res.params + +indall = range(7) +for i in range(6): + ind = indall[:] + del ind[i] + res = sm.OLS(data.endog, data.exog[:, ind]).fit() + resparams[ind, i + 1] = res.params + +if rescale == 1: + pass +if rescale == 3: + resparams[:-1, :] *= rescale_ratio[:, None] + +txt_fmt1 = default_txt_fmt +numformat = '%10.4f' +txt_fmt1 = dict(data_fmts=[numformat]) +rowstubs = data.names[1:] + ['const'] +headers = ['all'] + ['drop %s' % name for name in data.names[1:]] +tabl = SimpleTable(resparams, headers, rowstubs, txt_fmt=txt_fmt1) + +nanstring = numformat % np.nan +nn = len(nanstring) +nanrep = ' ' * (nn - 1) +nanrep = nanrep[:nn // 2] + '-' + nanrep[nn // 2:] + +print('Longley data - sensitivity to dropping an explanatory variable') +print(str(tabl).replace(nanstring, nanrep)) diff --git a/examples/incomplete/ols_tftest.py b/examples/incomplete/ols_tftest.py new file mode 100644 index 0000000..badca40 --- /dev/null +++ b/examples/incomplete/ols_tftest.py @@ -0,0 +1,199 @@ +"""examples for usage of F-test on linear restrictions in OLS + +linear restriction is R \beta = 0 +R is (nr,nk), beta is (nk,1) (in matrix notation) + + +TODO: clean this up for readability and explain + +Notes +----- +This example was written mostly for cross-checks and refactoring. +""" + +import numpy as np +import numpy.testing as npt +import statsmodels.api as sm + +print('\n\n Example 1: Longley Data, high multicollinearity') + +data = sm.datasets.longley.load() +data.exog = sm.add_constant(data.exog, prepend=False) +res = sm.OLS(data.endog, data.exog).fit() + +# test pairwise equality of some coefficients +R2 = [[0, 1, -1, 0, 0, 0, 0], [0, 0, 0, 0, 1, -1, 0]] +Ftest = res.f_test(R2) +print(repr((Ftest.fvalue, Ftest.pvalue))) # use repr to get more digits +# 9.740461873303655 0.0056052885317360301 + +##Compare to R (after running R_lm.s in the longley folder) +## +##> library(car) +##> linear.hypothesis(m1, c("GNP = UNEMP","POP = YEAR")) +##Linear hypothesis test +## +##Hypothesis: +##GNP - UNEMP = 0 +##POP - YEAR = 0 +## +##Model 1: TOTEMP ~ GNPDEFL + GNP + UNEMP + ARMED + POP + YEAR +##Model 2: restricted model +## +## Res.Df RSS Df Sum of Sq F Pr(>F) +##1 9 836424 +##2 11 2646903 -2 -1810479 9.7405 0.005605 ** + +print('Regression Results Summary') +print(res.summary()) + + +print('\n F-test whether all variables have zero effect') +R = np.eye(7)[:-1, :] +Ftest0 = res.f_test(R) +print(repr((Ftest0.fvalue, Ftest0.pvalue))) +print('%r' % res.fvalue) +npt.assert_almost_equal(res.fvalue, Ftest0.fvalue, decimal=9) + +ttest0 = res.t_test(R[0, :]) +print(repr((ttest0.tvalue, ttest0.pvalue))) + +betatval = res.tvalues +betatval[0] +npt.assert_almost_equal(betatval[0], ttest0.tvalue, decimal=15) + +""" +# several ttests at the same time +# currently not checked for this, but it (kind of) works +>>> ttest0 = res.t_test(R[:2,:]) +>>> print(repr((ttest0.t, ttest0.pvalue)) +(array([[ 0.17737603, NaN], + [ NaN, -1.06951632]]), array([[ 0.43157042, 1. ], + [ 1. , 0.84365947]])) + +>>> ttest0 = res.t_test(R) +>>> ttest0.t +array([[ 1.77376028e-01, NaN, NaN, + NaN, -1.43660623e-02, 2.15494063e+01], + [ NaN, -1.06951632e+00, -1.62440215e+01, + -1.78173553e+01, NaN, NaN], + [ NaN, -2.88010561e-01, -4.13642736e+00, + -4.06097408e+00, NaN, NaN], + [ NaN, -6.17679489e-01, -7.94027056e+00, + -4.82198531e+00, NaN, NaN], + [ 4.23409809e+00, NaN, NaN, + NaN, -2.26051145e-01, 2.89324928e+02], + [ 1.77445341e-01, NaN, NaN, + NaN, -8.08336103e-03, 4.01588981e+00]]) +>>> betatval +array([ 0.17737603, -1.06951632, -4.13642736, -4.82198531, -0.22605114, + 4.01588981, -3.91080292]) +>>> ttest0.t +array([ 0.17737603, -1.06951632, -4.13642736, -4.82198531, -0.22605114, + 4.01588981]) +""" + +print('\nsimultaneous t-tests') +ttest0 = res.t_test(R2) + +t2 = ttest0.tvalue +print(ttest0.tvalue) +print(t2) +t2a = np.r_[res.t_test(np.array(R2)[0, :]).tvalue, + res.t_test(np.array(R2)[1, :]).tvalue] +print(t2 - t2a) +t2pval = ttest0.pvalue +print('%r' % t2pval) # reject +# array([ 9.33832896e-04, 9.98483623e-01]) +print('reject') +print('%r' % (t2pval < 0.05)) + +# f_test needs 2-d currently +Ftest2a = res.f_test(np.asarray(R2)[:1, :]) +print(repr((Ftest2a.fvalue, Ftest2a.pvalue))) +Ftest2b = res.f_test(np.asarray(R2)[1:2, :]) +print(repr((Ftest2b.fvalue, Ftest2b.pvalue))) + +print('\nequality of t-test and F-test') +print(t2a**2 - np.array((Ftest2a.fvalue, Ftest2b.fvalue))) +npt.assert_almost_equal(t2a**2, np.vstack((Ftest2a.fvalue, Ftest2b.fvalue))) +#npt.assert_almost_equal(t2pval, np.array((Ftest2a.pvalue, Ftest2b.pvalue))) +npt.assert_almost_equal(t2pval * 2, np.c_[Ftest2a.pvalue, + Ftest2b.pvalue].squeeze()) + + +print('\n\n Example 2: Artificial Data') + +nsample = 100 +ncat = 4 +sigma = 2 +xcat = np.linspace(0, ncat - 1, nsample).round()[:, np.newaxis] +dummyvar = (xcat == np.arange(ncat)).astype(float) + +beta = np.array([0., 2, -2, 1])[:, np.newaxis] +ytrue = np.dot(dummyvar, beta) +X = sm.tools.add_constant(dummyvar[:, :-1], prepend=False) +y = ytrue + sigma * np.random.randn(nsample, 1) +mod2 = sm.OLS(y[:, 0], X) +res2 = mod2.fit() + +print(res2.summary()) + +R3 = np.eye(ncat)[:-1, :] +Ftest = res2.f_test(R3) +print(repr((Ftest.fvalue, Ftest.pvalue))) +R3 = np.atleast_2d([0, 1, -1, 2]) +Ftest = res2.f_test(R3) +print(repr((Ftest.fvalue, Ftest.pvalue))) + +print('simultaneous t-test for zero effects') +R4 = np.eye(ncat)[:-1, :] +ttest = res2.t_test(R4) +print(repr((ttest.tvalue, ttest.pvalue))) + + +R5 = np.atleast_2d([0, 1, 1, 2]) +np.dot(R5, res2.params) +Ftest = res2.f_test(R5) +print(repr((Ftest.fvalue, Ftest.pvalue))) +ttest = res2.t_test(R5) +#print(repr((ttest.t, ttest.pvalue)) +print(repr((ttest.tvalue, ttest.pvalue))) + +R6 = np.atleast_2d([1, -1, 0, 0]) +np.dot(R6, res2.params) +Ftest = res2.f_test(R6) +print(repr((Ftest.fvalue, Ftest.pvalue))) +ttest = res2.t_test(R6) +#print(repr((ttest.t, ttest.pvalue)) +print(repr((ttest.tvalue, ttest.pvalue))) + +R7 = np.atleast_2d([1, 0, 0, 0]) +np.dot(R7, res2.params) +Ftest = res2.f_test(R7) +print(repr((Ftest.fvalue, Ftest.pvalue))) +ttest = res2.t_test(R7) +#print(repr((ttest.t, ttest.pvalue)) +print(repr((ttest.tvalue, ttest.pvalue))) + + +print('\nExample: 2 categories: replicate stats.glm and stats.ttest_ind') + +mod2 = sm.OLS(y[xcat.flat < 2][:, 0], X[xcat.flat < 2, :][:, (0, -1)]) +res2 = mod2.fit() + +R8 = np.atleast_2d([1, 0]) +np.dot(R8, res2.params) +Ftest = res2.f_test(R8) +print(repr((Ftest.fvalue, Ftest.pvalue))) +print(repr((np.sqrt(Ftest.fvalue), Ftest.pvalue))) +ttest = res2.t_test(R8) +#print(repr(ttest.t), ttest.pvalue))) +print(repr((ttest.tvalue, ttest.pvalue))) + + +from scipy import stats +print(stats.glm(y[xcat < 2].ravel(), xcat[xcat < 2].ravel())) +print(stats.ttest_ind(y[xcat == 0], y[xcat == 1])) + +#TODO: compare with f_oneway diff --git a/examples/incomplete/wls_extended.py b/examples/incomplete/wls_extended.py new file mode 100644 index 0000000..4f8777c --- /dev/null +++ b/examples/incomplete/wls_extended.py @@ -0,0 +1,401 @@ +""" +Weighted Least Squares + +example is extended to look at the meaning of rsquared in WLS, +at outliers, compares with RLM and a short bootstrap + +""" +from __future__ import print_function +import numpy as np +import statsmodels.api as sm +import matplotlib.pyplot as plt + +data = sm.datasets.ccard.load() +data.exog = sm.add_constant(data.exog, prepend=False) +ols_fit = sm.OLS(data.endog, data.exog).fit() + +# perhaps the residuals from this fit depend on the square of income +incomesq = data.exog[:,2] +plt.scatter(incomesq, ols_fit.resid) +#@savefig wls_resid_check.png +plt.grid() + + +# If we think that the variance is proportional to income**2 +# we would want to weight the regression by income +# the weights argument in WLS weights the regression by its square root +# and since income enters the equation, if we have income/income +# it becomes the constant, so we would want to perform +# this type of regression without an explicit constant in the design + +#..data.exog = data.exog[:,:-1] +wls_fit = sm.WLS(data.endog, data.exog[:,:-1], weights=1/incomesq).fit() + +# This however, leads to difficulties in interpreting the post-estimation +# statistics. Statsmodels does not yet handle this elegantly, but +# the following may be more appropriate + +# explained sum of squares +ess = wls_fit.uncentered_tss - wls_fit.ssr +# rsquared +rsquared = ess/wls_fit.uncentered_tss +# mean squared error of the model +mse_model = ess/(wls_fit.df_model + 1) # add back the dof of the constant +# f statistic +fvalue = mse_model/wls_fit.mse_resid +# adjusted r-squared +rsquared_adj = 1 -(wls_fit.nobs)/(wls_fit.df_resid)*(1-rsquared) + + + +#Trying to figure out what's going on in this example +#---------------------------------------------------- + +#JP: I need to look at this again. Even if I exclude the weight variable +# from the regressors and keep the constant in then the reported rsquared +# stays small. Below also compared using squared or sqrt of weight variable. +# TODO: need to add 45 degree line to graphs +wls_fit3 = sm.WLS(data.endog, data.exog[:,(0,1,3,4)], weights=1/incomesq).fit() +print(wls_fit3.summary()) +print('corrected rsquared') +print((wls_fit3.uncentered_tss - wls_fit3.ssr)/wls_fit3.uncentered_tss) +plt.figure(); +plt.title('WLS dropping heteroscedasticity variable from regressors'); +plt.plot(data.endog, wls_fit3.fittedvalues, 'o'); +plt.xlim([0,2000]); +#@savefig wls_drop_het.png +plt.ylim([0,2000]); +print('raw correlation of endog and fittedvalues') +print(np.corrcoef(data.endog, wls_fit.fittedvalues)) +print('raw correlation coefficient of endog and fittedvalues squared') +print(np.corrcoef(data.endog, wls_fit.fittedvalues)[0,1]**2) + +# compare with robust regression, +# heteroscedasticity correction downweights the outliers +rlm_fit = sm.RLM(data.endog, data.exog).fit() +plt.figure(); +plt.title('using robust for comparison'); +plt.plot(data.endog, rlm_fit.fittedvalues, 'o'); +plt.xlim([0,2000]); +#@savefig wls_robust_compare.png +plt.ylim([0,2000]); + +#What is going on? A more systematic look at the data +#---------------------------------------------------- + +# two helper functions + +def getrsq(fitresult): + '''calculates rsquared residual, total and explained sums of squares + + Parameters + ---------- + fitresult : instance of Regression Result class, or tuple of (resid, endog) arrays + regression residuals and endogenous variable + + Returns + ------- + rsquared + residual sum of squares + (centered) total sum of squares + explained sum of squares (for centered) + ''' + if hasattr(fitresult, 'resid') and hasattr(fitresult, 'model'): + resid = fitresult.resid + endog = fitresult.model.endog + nobs = fitresult.nobs + else: + resid = fitresult[0] + endog = fitresult[1] + nobs = resid.shape[0] + + + rss = np.dot(resid, resid) + tss = np.var(endog)*nobs + return 1-rss/tss, rss, tss, tss-rss + + +def index_trim_outlier(resid, k): + '''returns indices to residual array with k outliers removed + + Parameters + ---------- + resid : array_like, 1d + data vector, usually residuals of a regression + k : int + number of outliers to remove + + Returns + ------- + trimmed_index : array, 1d + index array with k outliers removed + outlier_index : array, 1d + index array of k outliers + + Notes + ----- + + Outliers are defined as the k observations with the largest + absolute values. + + ''' + sort_index = np.argsort(np.abs(resid)) + # index of non-outlier + trimmed_index = np.sort(sort_index[:-k]) + outlier_index = np.sort(sort_index[-k:]) + return trimmed_index, outlier_index + + +#Comparing estimation results for ols, rlm and wls with and without outliers +#--------------------------------------------------------------------------- + +#ols_test_fit = sm.OLS(data.endog, data.exog).fit() +olskeep, olsoutl = index_trim_outlier(ols_fit.resid, 2) +print('ols outliers', olsoutl, ols_fit.resid[olsoutl]) +ols_fit_rm2 = sm.OLS(data.endog[olskeep], data.exog[olskeep,:]).fit() +rlm_fit_rm2 = sm.RLM(data.endog[olskeep], data.exog[olskeep,:]).fit() +#weights = 1/incomesq + +results = [ols_fit, ols_fit_rm2, rlm_fit, rlm_fit_rm2] +#Note: I think incomesq is already square +for weights in [1/incomesq, 1/incomesq**2, np.sqrt(incomesq)]: + print('\nComparison OLS and WLS with and without outliers') + wls_fit0 = sm.WLS(data.endog, data.exog, weights=weights).fit() + wls_fit_rm2 = sm.WLS(data.endog[olskeep], data.exog[olskeep,:], + weights=weights[olskeep]).fit() + wlskeep, wlsoutl = index_trim_outlier(ols_fit.resid, 2) + print('2 outliers candidates and residuals') + print(wlsoutl, wls_fit.resid[olsoutl]) + # redundant because ols and wls outliers are the same: + ##wls_fit_rm2_ = sm.WLS(data.endog[wlskeep], data.exog[wlskeep,:], + ## weights=1/incomesq[wlskeep]).fit() + + print('outliers ols, wls:', olsoutl, wlsoutl) + + print('rsquared') + print('ols vs ols rm2', ols_fit.rsquared, ols_fit_rm2.rsquared) + print('wls vs wls rm2', wls_fit0.rsquared, wls_fit_rm2.rsquared) #, wls_fit_rm2_.rsquared + print('compare R2_resid versus R2_wresid') + print('ols minus 2', getrsq(ols_fit_rm2)[0],) + print(getrsq((ols_fit_rm2.wresid, ols_fit_rm2.model.wendog))[0]) + print('wls ', getrsq(wls_fit)[0],) + print(getrsq((wls_fit.wresid, wls_fit.model.wendog))[0]) + + print('wls minus 2', getrsq(wls_fit_rm2)[0]) + # next is same as wls_fit_rm2.rsquared for cross checking + print(getrsq((wls_fit_rm2.wresid, wls_fit_rm2.model.wendog))[0]) + #print(getrsq(wls_fit_rm2_)[0], + #print(getrsq((wls_fit_rm2_.wresid, wls_fit_rm2_.model.wendog))[0] + results.extend([wls_fit0, wls_fit_rm2]) + +print(' ols ols_rm2 rlm rlm_rm2 wls (lin) wls_rm2 (lin) wls (squ) wls_rm2 (squ) wls (sqrt) wls_rm2 (sqrt)') +print('Parameter estimates') +print(np.column_stack([r.params for r in results])) +print('R2 original data, next line R2 weighted data') +print(np.column_stack([getattr(r, 'rsquared', None) for r in results])) + +print('Standard errors') +print(np.column_stack([getattr(r, 'bse', None) for r in results])) +print('Heteroscedasticity robust standard errors (with ols)') +print('with outliers') +print(np.column_stack([getattr(ols_fit, se, None) for se in ['HC0_se', 'HC1_se', 'HC2_se', 'HC3_se']])) + +#..''' +#.. +#.. ols ols_rm2 rlm rlm_rm2 wls (lin) wls_rm2 (lin) wls (squ) wls_rm2 (squ) wls (sqrt) wls_rm2 (sqrt) +#..Parameter estimates +#..[[ -3.08181404 -5.06103843 -4.98510966 -5.34410309 -2.69418516 -3.1305703 -1.43815462 -1.58893054 -3.57074829 -6.80053364] +#.. [ 234.34702702 115.08753715 129.85391456 109.01433492 158.42697752 128.38182357 60.95113284 100.25000841 254.82166855 103.75834726] +#.. [ -14.99684418 -5.77558429 -6.46204829 -4.77409191 -7.24928987 -7.41228893 6.84943071 -3.34972494 -16.40524256 -4.5924465 ] +#.. [ 27.94090839 85.46566835 89.91389709 95.85086459 60.44877369 79.7759146 55.9884469 60.97199734 -3.8085159 84.69170048] +#.. [-237.1465136 39.51639838 -15.50014814 31.39771833 -114.10886935 -40.04207242 -6.41976501 -38.83583228 -260.72084271 117.20540179]] +#.. +#..R2 original data, next line R2 weighted data +#..[[ 0.24357792 0.31745994 0.19220308 0.30527648 0.22861236 0.3112333 0.06573949 0.29366904 0.24114325 0.31218669]] +#..[[ 0.24357791 0.31745994 None None 0.05936888 0.0679071 0.06661848 0.12769654 0.35326686 0.54681225]] +#.. +#..-> R2 with weighted data is jumping all over +#.. +#..standard errors +#..[[ 5.51471653 3.31028758 2.61580069 2.39537089 3.80730631 2.90027255 2.71141739 2.46959477 6.37593755 3.39477842] +#.. [ 80.36595035 49.35949263 38.12005692 35.71722666 76.39115431 58.35231328 87.18452039 80.30086861 86.99568216 47.58202096] +#.. [ 7.46933695 4.55366113 3.54293763 3.29509357 9.72433732 7.41259156 15.15205888 14.10674821 7.18302629 3.91640711] +#.. [ 82.92232357 50.54681754 39.33262384 36.57639175 58.55088753 44.82218676 43.11017757 39.31097542 96.4077482 52.57314209] +#.. [ 199.35166485 122.1287718 94.55866295 88.3741058 139.68749646 106.89445525 115.79258539 105.99258363 239.38105863 130.32619908]] +#.. +#..robust standard errors (with ols) +#..with outliers +#.. HC0_se HC1_se HC2_se HC3_se' +#..[[ 3.30166123 3.42264107 3.4477148 3.60462409] +#.. [ 88.86635165 92.12260235 92.08368378 95.48159869] +#.. [ 6.94456348 7.19902694 7.19953754 7.47634779] +#.. [ 92.18777672 95.56573144 95.67211143 99.31427277] +#.. [ 212.9905298 220.79495237 221.08892661 229.57434782]] +#.. +#..removing 2 outliers +#..[[ 2.57840843 2.67574088 2.68958007 2.80968452] +#.. [ 36.21720995 37.58437497 37.69555106 39.51362437] +#.. [ 3.1156149 3.23322638 3.27353882 3.49104794] +#.. [ 50.09789409 51.98904166 51.89530067 53.79478834] +#.. [ 94.27094886 97.82958699 98.25588281 102.60375381]] +#.. +#.. +#..''' + +# a quick bootstrap analysis +# -------------------------- +# +#(I didn't check whether this is fully correct statistically) + +#**With OLS on full sample** + +nobs, nvar = data.exog.shape +niter = 2000 +bootres = np.zeros((niter, nvar*2)) + +for it in range(niter): + rind = np.random.randint(nobs, size=nobs) + endog = data.endog[rind] + exog = data.exog[rind,:] + res = sm.OLS(endog, exog).fit() + bootres[it, :nvar] = res.params + bootres[it, nvar:] = res.bse + +np.set_print(options(linewidth=200)) +print('Bootstrap Results of parameters and parameter standard deviation OLS') +print('Parameter estimates') +print('median', np.median(bootres[:,:5], 0)) +print('mean ', np.mean(bootres[:,:5], 0)) +print('std ', np.std(bootres[:,:5], 0)) + +print('Standard deviation of parameter estimates') +print('median', np.median(bootres[:,5:], 0)) +print('mean ', np.mean(bootres[:,5:], 0)) +print('std ', np.std(bootres[:,5:], 0)) + +plt.figure() +for i in range(4): + plt.subplot(2,2,i+1) + plt.hist(bootres[:,i],50) + plt.title('var%d'%i) +#@savefig wls_bootstrap.png +plt.figtext(0.5, 0.935, 'OLS Bootstrap', + ha='center', color='black', weight='bold', size='large') + +#**With WLS on sample with outliers removed** + +data_endog = data.endog[olskeep] +data_exog = data.exog[olskeep,:] +incomesq_rm2 = incomesq[olskeep] + +nobs, nvar = data_exog.shape +niter = 500 # a bit slow +bootreswls = np.zeros((niter, nvar*2)) + +for it in range(niter): + rind = np.random.randint(nobs, size=nobs) + endog = data_endog[rind] + exog = data_exog[rind,:] + res = sm.WLS(endog, exog, weights=1/incomesq[rind,:]).fit() + bootreswls[it, :nvar] = res.params + bootreswls[it, nvar:] = res.bse + +print('Bootstrap Results of parameters and parameter standard deviation',) +print('WLS removed 2 outliers from sample') +print('Parameter estimates') +print('median', np.median(bootreswls[:,:5], 0)) +print('mean ', np.mean(bootreswls[:,:5], 0)) +print('std ', np.std(bootreswls[:,:5], 0)) + +print('Standard deviation of parameter estimates') +print('median', np.median(bootreswls[:,5:], 0)) +print('mean ', np.mean(bootreswls[:,5:], 0)) +print('std ', np.std(bootreswls[:,5:], 0)) + +plt.figure() +for i in range(4): + plt.subplot(2,2,i+1) + plt.hist(bootreswls[:,i],50) + plt.title('var%d'%i) +#@savefig wls_bootstrap_rm2.png +plt.figtext(0.5, 0.935, 'WLS rm2 Bootstrap', + ha='center', color='black', weight='bold', size='large') + + +#..plt.show() +#..plt.close('all') + +#:: +# +# The following a random variables not fixed by a seed +# +# Bootstrap Results of parameters and parameter standard deviation +# OLS +# +# Parameter estimates +# median [ -3.26216383 228.52546429 -14.57239967 34.27155426 -227.02816597] +# mean [ -2.89855173 234.37139359 -14.98726881 27.96375666 -243.18361746] +# std [ 3.78704907 97.35797802 9.16316538 94.65031973 221.79444244] +# +# Standard deviation of parameter estimates +# median [ 5.44701033 81.96921398 7.58642431 80.64906783 200.19167735] +# mean [ 5.44840542 86.02554883 8.56750041 80.41864084 201.81196849] +# std [ 1.43425083 29.74806562 4.22063268 19.14973277 55.34848348] +# +# Bootstrap Results of parameters and parameter standard deviation +# WLS removed 2 outliers from sample +# +# Parameter estimates +# median [ -3.95876112 137.10419042 -9.29131131 88.40265447 -44.21091869] +# mean [ -3.67485724 135.42681207 -8.7499235 89.74703443 -46.38622848] +# std [ 2.96908679 56.36648967 7.03870751 48.51201918 106.92466097] +# +# Standard deviation of parameter estimates +# median [ 2.89349748 59.19454402 6.70583332 45.40987953 119.05241283] +# mean [ 2.97600894 60.14540249 6.92102065 45.66077486 121.35519673] +# std [ 0.55378808 11.77831934 1.69289179 7.4911526 23.72821085] +# +# +# +#Conclusion: problem with outliers and possibly heteroscedasticity +#----------------------------------------------------------------- +# +#in bootstrap results +# +#* bse in OLS underestimates the standard deviation of the parameters +# compared to standard deviation in bootstrap +#* OLS heteroscedasticity corrected standard errors for the original +# data (above) are close to bootstrap std +#* using WLS with 2 outliers removed has a relatively good match between +# the mean or median bse and the std of the parameter estimates in the +# bootstrap +# +#We could also include rsquared in bootstrap, and do it also for RLM. +#The problems could also mean that the linearity assumption is violated, +#e.g. try non-linear transformation of exog variables, but linear +#in parameters. +# +# +#for statsmodels +# +# * In this case rsquared for original data looks less random/arbitrary. +# * Don't change definition of rsquared from centered tss to uncentered +# tss when calculating rsquared in WLS if the original exog contains +# a constant. The increase in rsquared because of a change in definition +# will be very misleading. +# * Whether there is a constant in the transformed exog, wexog, or not, +# might affect also the degrees of freedom calculation, but I haven't +# checked this. I would guess that the df_model should stay the same, +# but needs to be verified with a textbook. +# * df_model has to be adjusted if the original data does not have a +# constant, e.g. when regressing an endog on a single exog variable +# without constant. This case might require also a redefinition of +# the rsquare and f statistic for the regression anova to use the +# uncentered tss. +# This can be done through keyword parameter to model.__init__ or +# through autodedection with hasconst = (exog.var(0)<1e-10).any() +# I'm not sure about fixed effects with a full dummy set but +# without a constant. In this case autodedection wouldn't work this +# way. Also, I'm not sure whether a ddof keyword parameter can also +# handle the hasconst case. + diff --git a/examples/notebooks/categorical_interaction_plot.ipynb b/examples/notebooks/categorical_interaction_plot.ipynb new file mode 100644 index 0000000..6833a48 --- /dev/null +++ b/examples/notebooks/categorical_interaction_plot.ipynb @@ -0,0 +1,82 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Plot Interaction of Categorical Factors" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this example, we will vizualize the interaction between categorical factors. First, we will create some categorical data are initialized. Then plotted using the interaction_plot function which internally recodes the x-factor categories to ingegers." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import pandas as pd\n", + "from statsmodels.graphics.factorplots import interaction_plot" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "np.random.seed(12345)\n", + "weight = pd.Series(np.repeat(['low', 'hi', 'low', 'hi'], 15), name='weight')\n", + "nutrition = pd.Series(np.repeat(['lo_carb', 'hi_carb'], 30), name='nutrition')\n", + "days = np.log(np.random.randint(1, 30, size=60))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig, ax = plt.subplots(figsize=(6, 6))\n", + "fig = interaction_plot(x=weight, trace=nutrition, response=days, \n", + " colors=['red', 'blue'], markers=['D', '^'], ms=10, ax=ax)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.3" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/examples/notebooks/chi2_fitting.ipynb b/examples/notebooks/chi2_fitting.ipynb new file mode 100644 index 0000000..393ff01 --- /dev/null +++ b/examples/notebooks/chi2_fitting.ipynb @@ -0,0 +1,232 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Least squares fitting of models to data" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This is a quick introduction to `statsmodels` for physical scientists (e.g. physicists, astronomers) or engineers.\n", + "\n", + "Why is this needed?\n", + "\n", + "Because most of `statsmodels` was written by statisticians and they use a different terminology and sometimes methods, making it hard to know which classes and functions are relevant and what their inputs and outputs mean." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "import statsmodels.api as sm" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Linear models" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Assume you have data points with measurements `y` at positions `x` as well as measurement errors `y_err`.\n", + "\n", + "How can you use `statsmodels` to fit a straight line model to this data?\n", + "\n", + "For an extensive discussion see [Hogg et al. (2010), \"Data analysis recipes: Fitting a model to data\"](http://arxiv.org/abs/1008.4686) ... we'll use the example data given by them in Table 1.\n", + "\n", + "So the model is `f(x) = a * x + b` and on Figure 1 they print the result we want to reproduce ... the best-fit parameter and the parameter errors for a \"standard weighted least-squares fit\" for this data are:\n", + "* `a = 2.24 +- 0.11`\n", + "* `b = 34 +- 18`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "data = \"\"\"\n", + " x y y_err\n", + "201 592 61\n", + "244 401 25\n", + " 47 583 38\n", + "287 402 15\n", + "203 495 21\n", + " 58 173 15\n", + "210 479 27\n", + "202 504 14\n", + "198 510 30\n", + "158 416 16\n", + "165 393 14\n", + "201 442 25\n", + "157 317 52\n", + "131 311 16\n", + "166 400 34\n", + "160 337 31\n", + "186 423 42\n", + "125 334 26\n", + "218 533 16\n", + "146 344 22\n", + "\"\"\"\n", + "try:\n", + " from StringIO import StringIO\n", + "except ImportError:\n", + " from io import StringIO\n", + "data = pd.read_csv(StringIO(data), delim_whitespace=True).astype(float)\n", + "\n", + "# Note: for the results we compare with the paper here, they drop the first four points\n", + "data.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To fit a straight line use the weighted least squares class [WLS](http://www.statsmodels.org/devel/generated/statsmodels.regression.linear_model.WLS.html) ... the parameters are called:\n", + "* `exog` = `sm.add_constant(x)`\n", + "* `endog` = `y`\n", + "* `weights` = `1 / sqrt(y_err)`\n", + "\n", + "Note that `exog` must be a 2-dimensional array with `x` as a column and an extra column of ones. Adding this column of ones means you want to fit the model `y = a * x + b`, leaving it off means you want to fit the model `y = a * x`.\n", + "\n", + "And you have to use the option `cov_type='fixed scale'` to tell `statsmodels` that you really have measurement errors with an absolute scale. If you don't, `statsmodels` will treat the weights as relative weights between the data points and internally re-scale them so that the best-fit model will have `chi**2 / ndf = 1`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "exog = sm.add_constant(data['x'])\n", + "endog = data['y']\n", + "weights = 1. / (data['y_err'] ** 2)\n", + "wls = sm.WLS(endog, exog, weights)\n", + "results = wls.fit(cov_type='fixed scale')\n", + "print(results.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Check against scipy.optimize.curve_fit" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# You can use `scipy.optimize.curve_fit` to get the best-fit parameters and parameter errors.\n", + "from scipy.optimize import curve_fit\n", + "\n", + "def f(x, a, b):\n", + " return a * x + b\n", + "\n", + "xdata = data['x']\n", + "ydata = data['y']\n", + "p0 = [0, 0] # initial parameter estimate\n", + "sigma = data['y_err']\n", + "popt, pcov = curve_fit(f, xdata, ydata, p0, sigma, absolute_sigma=True)\n", + "perr = np.sqrt(np.diag(pcov))\n", + "print('a = {0:10.3f} +- {1:10.3f}'.format(popt[0], perr[0]))\n", + "print('b = {0:10.3f} +- {1:10.3f}'.format(popt[1], perr[1]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Check against self-written cost function" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# You can also use `scipy.optimize.minimize` and write your own cost function.\n", + "# This doesn't give you the parameter errors though ... you'd have\n", + "# to estimate the HESSE matrix separately ...\n", + "from scipy.optimize import minimize\n", + "\n", + "def chi2(pars):\n", + " \"\"\"Cost function.\n", + " \"\"\"\n", + " y_model = pars[0] * data['x'] + pars[1]\n", + " chi = (data['y'] - y_model) / data['y_err']\n", + " return np.sum(chi ** 2)\n", + "\n", + "result = minimize(fun=chi2, x0=[0, 0])\n", + "popt = result.x\n", + "print('a = {0:10.3f}'.format(popt[0]))\n", + "print('b = {0:10.3f}'.format(popt[1]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Non-linear models" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# TODO: we could use the examples from here:\n", + "# http://probfit.readthedocs.org/en/latest/api.html#probfit.costfunc.Chi2Regression" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3.0 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.3" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} \ No newline at end of file diff --git a/examples/notebooks/contrasts.ipynb b/examples/notebooks/contrasts.ipynb new file mode 100644 index 0000000..70aa2ed --- /dev/null +++ b/examples/notebooks/contrasts.ipynb @@ -0,0 +1,546 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Contrasts Overview" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from __future__ import print_function\n", + "import numpy as np\n", + "import statsmodels.api as sm" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This document is based heavily on this excellent resource from UCLA http://www.ats.ucla.edu/stat/r/library/contrast_coding.htm" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A categorical variable of K categories, or levels, usually enters a regression as a sequence of K-1 dummy variables. This amounts to a linear hypothesis on the level means. That is, each test statistic for these variables amounts to testing whether the mean for that level is statistically significantly different from the mean of the base category. This dummy coding is called Treatment coding in R parlance, and we will follow this convention. There are, however, different coding methods that amount to different sets of linear hypotheses.\n", + "\n", + "In fact, the dummy coding is not technically a contrast coding. This is because the dummy variables add to one and are not functionally independent of the model's intercept. On the other hand, a set of *contrasts* for a categorical variable with `k` levels is a set of `k-1` functionally independent linear combinations of the factor level means that are also independent of the sum of the dummy variables. The dummy coding isn't wrong *per se*. It captures all of the coefficients, but it complicates matters when the model assumes independence of the coefficients such as in ANOVA. Linear regression models do not assume independence of the coefficients and thus dummy coding is often the only coding that is taught in this context.\n", + "\n", + "To have a look at the contrast matrices in Patsy, we will use data from UCLA ATS. First let's load the data." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Example Data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import pandas as pd\n", + "url = 'http://www.ats.ucla.edu/stat/data/hsb2.csv'\n", + "hsb2 = pd.read_table(url, delimiter=\",\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "hsb2.head(10)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "It will be instructive to look at the mean of the dependent variable, write, for each level of race ((1 = Hispanic, 2 = Asian, 3 = African American and 4 = Caucasian))." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "hsb2.groupby('race')['write'].mean()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Treatment (Dummy) Coding" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Dummy coding is likely the most well known coding scheme. It compares each level of the categorical variable to a base reference level. The base reference level is the value of the intercept. It is the default contrast in Patsy for unordered categorical factors. The Treatment contrast matrix for race would be" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from patsy.contrasts import Treatment\n", + "levels = [1,2,3,4]\n", + "contrast = Treatment(reference=0).code_without_intercept(levels)\n", + "print(contrast.matrix)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here we used `reference=0`, which implies that the first level, Hispanic, is the reference category against which the other level effects are measured. As mentioned above, the columns do not sum to zero and are thus not independent of the intercept. To be explicit, let's look at how this would encode the `race` variable." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "hsb2.race.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(contrast.matrix[hsb2.race-1, :][:20])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "sm.categorical(hsb2.race.values)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This is a bit of a trick, as the `race` category conveniently maps to zero-based indices. If it does not, this conversion happens under the hood, so this won't work in general but nonetheless is a useful exercise to fix ideas. The below illustrates the output using the three contrasts above" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from statsmodels.formula.api import ols\n", + "mod = ols(\"write ~ C(race, Treatment)\", data=hsb2)\n", + "res = mod.fit()\n", + "print(res.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We explicitly gave the contrast for race; however, since Treatment is the default, we could have omitted this." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Simple Coding" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Like Treatment Coding, Simple Coding compares each level to a fixed reference level. However, with simple coding, the intercept is the grand mean of all the levels of the factors. Patsy doesn't have the Simple contrast included, but you can easily define your own contrasts. To do so, write a class that contains a code_with_intercept and a code_without_intercept method that returns a patsy.contrast.ContrastMatrix instance" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from patsy.contrasts import ContrastMatrix\n", + "\n", + "def _name_levels(prefix, levels):\n", + " return [\"[%s%s]\" % (prefix, level) for level in levels]\n", + "\n", + "class Simple(object):\n", + " def _simple_contrast(self, levels):\n", + " nlevels = len(levels)\n", + " contr = -1./nlevels * np.ones((nlevels, nlevels-1))\n", + " contr[1:][np.diag_indices(nlevels-1)] = (nlevels-1.)/nlevels\n", + " return contr\n", + "\n", + " def code_with_intercept(self, levels):\n", + " contrast = np.column_stack((np.ones(len(levels)),\n", + " self._simple_contrast(levels)))\n", + " return ContrastMatrix(contrast, _name_levels(\"Simp.\", levels))\n", + "\n", + " def code_without_intercept(self, levels):\n", + " contrast = self._simple_contrast(levels)\n", + " return ContrastMatrix(contrast, _name_levels(\"Simp.\", levels[:-1]))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "hsb2.groupby('race')['write'].mean().mean()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "contrast = Simple().code_without_intercept(levels)\n", + "print(contrast.matrix)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "mod = ols(\"write ~ C(race, Simple)\", data=hsb2)\n", + "res = mod.fit()\n", + "print(res.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Sum (Deviation) Coding" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Sum coding compares the mean of the dependent variable for a given level to the overall mean of the dependent variable over all the levels. That is, it uses contrasts between each of the first k-1 levels and level k In this example, level 1 is compared to all the others, level 2 to all the others, and level 3 to all the others." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from patsy.contrasts import Sum\n", + "contrast = Sum().code_without_intercept(levels)\n", + "print(contrast.matrix)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "mod = ols(\"write ~ C(race, Sum)\", data=hsb2)\n", + "res = mod.fit()\n", + "print(res.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This corresponds to a parameterization that forces all the coefficients to sum to zero. Notice that the intercept here is the grand mean where the grand mean is the mean of means of the dependent variable by each level." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "hsb2.groupby('race')['write'].mean().mean()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Backward Difference Coding" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In backward difference coding, the mean of the dependent variable for a level is compared with the mean of the dependent variable for the prior level. This type of coding may be useful for a nominal or an ordinal variable." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from patsy.contrasts import Diff\n", + "contrast = Diff().code_without_intercept(levels)\n", + "print(contrast.matrix)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "mod = ols(\"write ~ C(race, Diff)\", data=hsb2)\n", + "res = mod.fit()\n", + "print(res.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For example, here the coefficient on level 1 is the mean of `write` at level 2 compared with the mean at level 1. Ie.," + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "res.params[\"C(race, Diff)[D.1]\"]\n", + "hsb2.groupby('race').mean()[\"write\"][2] - \\\n", + " hsb2.groupby('race').mean()[\"write\"][1]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Helmert Coding" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Our version of Helmert coding is sometimes referred to as Reverse Helmert Coding. The mean of the dependent variable for a level is compared to the mean of the dependent variable over all previous levels. Hence, the name 'reverse' being sometimes applied to differentiate from forward Helmert coding. This comparison does not make much sense for a nominal variable such as race, but we would use the Helmert contrast like so:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from patsy.contrasts import Helmert\n", + "contrast = Helmert().code_without_intercept(levels)\n", + "print(contrast.matrix)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "mod = ols(\"write ~ C(race, Helmert)\", data=hsb2)\n", + "res = mod.fit()\n", + "print(res.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To illustrate, the comparison on level 4 is the mean of the dependent variable at the previous three levels taken from the mean at level 4" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "grouped = hsb2.groupby('race')\n", + "grouped.mean()[\"write\"][4] - grouped.mean()[\"write\"][:3].mean()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As you can see, these are only equal up to a constant. Other versions of the Helmert contrast give the actual difference in means. Regardless, the hypothesis tests are the same." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "k = 4\n", + "1./k * (grouped.mean()[\"write\"][k] - grouped.mean()[\"write\"][:k-1].mean())\n", + "k = 3\n", + "1./k * (grouped.mean()[\"write\"][k] - grouped.mean()[\"write\"][:k-1].mean())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Orthogonal Polynomial Coding" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The coefficients taken on by polynomial coding for `k=4` levels are the linear, quadratic, and cubic trends in the categorical variable. The categorical variable here is assumed to be represented by an underlying, equally spaced numeric variable. Therefore, this type of encoding is used only for ordered categorical variables with equal spacing. In general, the polynomial contrast produces polynomials of order `k-1`. Since `race` is not an ordered factor variable let's use `read` as an example. First we need to create an ordered categorical from `read`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "hsb2['readcat'] = np.asarray(pd.cut(hsb2.read, bins=3))\n", + "hsb2.groupby('readcat').mean()['write']" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from patsy.contrasts import Poly\n", + "levels = hsb2.readcat.unique().tolist()\n", + "contrast = Poly().code_without_intercept(levels)\n", + "print(contrast.matrix)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "mod = ols(\"write ~ C(readcat, Poly)\", data=hsb2)\n", + "res = mod.fit()\n", + "print(res.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As you can see, readcat has a significant linear effect on the dependent variable `write` but not a significant quadratic or cubic effect." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.3" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/examples/notebooks/discrete_choice_example.ipynb b/examples/notebooks/discrete_choice_example.ipynb new file mode 100644 index 0000000..9f9c483 --- /dev/null +++ b/examples/notebooks/discrete_choice_example.ipynb @@ -0,0 +1,698 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Discrete Choice Models" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Fair's Affair data" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A survey of women only was conducted in 1974 by *Redbook* asking about extramarital affairs." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "from __future__ import print_function\n", + "import numpy as np\n", + "from scipy import stats\n", + "import matplotlib.pyplot as plt\n", + "import statsmodels.api as sm\n", + "from statsmodels.formula.api import logit, probit, poisson, ols" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(sm.datasets.fair.SOURCE)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print( sm.datasets.fair.NOTE)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "dta = sm.datasets.fair.load_pandas().data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "dta['affair'] = (dta['affairs'] > 0).astype(float)\n", + "print(dta.head(10))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(dta.describe())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "affair_mod = logit(\"affair ~ occupation + educ + occupation_husb\" \n", + " \"+ rate_marriage + age + yrs_married + children\"\n", + " \" + religious\", dta).fit()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(affair_mod.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "How well are we predicting?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "affair_mod.pred_table()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The coefficients of the discrete choice model do not tell us much. What we're after is marginal effects." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "mfx = affair_mod.get_margeff()\n", + "print(mfx.summary())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "respondent1000 = dta.ix[1000]\n", + "print(respondent1000)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "resp = dict(zip(range(1,9), respondent1000[[\"occupation\", \"educ\", \n", + " \"occupation_husb\", \"rate_marriage\", \n", + " \"age\", \"yrs_married\", \"children\", \n", + " \"religious\"]].tolist()))\n", + "resp.update({0 : 1})\n", + "print(resp)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "mfx = affair_mod.get_margeff(atexog=resp)\n", + "print(mfx.summary())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "affair_mod.predict(respondent1000)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "affair_mod.fittedvalues[1000]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "affair_mod.model.cdf(affair_mod.fittedvalues[1000])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The \"correct\" model here is likely the Tobit model. We have an work in progress branch \"tobit-model\" on github, if anyone is interested in censored regression models." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Exercise: Logit vs Probit" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig = plt.figure(figsize=(12,8))\n", + "ax = fig.add_subplot(111)\n", + "support = np.linspace(-6, 6, 1000)\n", + "ax.plot(support, stats.logistic.cdf(support), 'r-', label='Logistic')\n", + "ax.plot(support, stats.norm.cdf(support), label='Probit')\n", + "ax.legend();" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig = plt.figure(figsize=(12,8))\n", + "ax = fig.add_subplot(111)\n", + "support = np.linspace(-6, 6, 1000)\n", + "ax.plot(support, stats.logistic.pdf(support), 'r-', label='Logistic')\n", + "ax.plot(support, stats.norm.pdf(support), label='Probit')\n", + "ax.legend();" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Compare the estimates of the Logit Fair model above to a Probit model. Does the prediction table look better? Much difference in marginal effects?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Genarlized Linear Model Example" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(sm.datasets.star98.SOURCE)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(sm.datasets.star98.DESCRLONG)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(sm.datasets.star98.NOTE)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "dta = sm.datasets.star98.load_pandas().data\n", + "print(dta.columns)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(dta[['NABOVE', 'NBELOW', 'LOWINC', 'PERASIAN', 'PERBLACK', 'PERHISP', 'PERMINTE']].head(10))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(dta[['AVYRSEXP', 'AVSALK', 'PERSPENK', 'PTRATIO', 'PCTAF', 'PCTCHRT', 'PCTYRRND']].head(10))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "formula = 'NABOVE + NBELOW ~ LOWINC + PERASIAN + PERBLACK + PERHISP + PCTCHRT '\n", + "formula += '+ PCTYRRND + PERMINTE*AVYRSEXP*AVSALK + PERSPENK*PTRATIO*PCTAF'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Aside: Binomial distribution" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Toss a six-sided die 5 times, what's the probability of exactly 2 fours?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "stats.binom(5, 1./6).pmf(2)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from scipy.misc import comb\n", + "comb(5,2) * (1/6.)**2 * (5/6.)**3" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from statsmodels.formula.api import glm\n", + "glm_mod = glm(formula, dta, family=sm.families.Binomial()).fit()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(glm_mod.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The number of trials " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "glm_mod.model.data.orig_endog.sum(1)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "glm_mod.fittedvalues * glm_mod.model.data.orig_endog.sum(1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First differences: We hold all explanatory variables constant at their means and manipulate the percentage of low income households to assess its impact\n", + "on the response variables:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "exog = glm_mod.model.data.orig_exog # get the dataframe" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "means25 = exog.mean()\n", + "print(means25)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "means25['LOWINC'] = exog['LOWINC'].quantile(.25)\n", + "print(means25)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "means75 = exog.mean()\n", + "means75['LOWINC'] = exog['LOWINC'].quantile(.75)\n", + "print(means75)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "resp25 = glm_mod.predict(means25)\n", + "resp75 = glm_mod.predict(means75)\n", + "diff = resp75 - resp25" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The interquartile first difference for the percentage of low income households in a school district is:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(\"%2.4f%%\" % (diff[0]*100))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "nobs = glm_mod.nobs\n", + "y = glm_mod.model.endog\n", + "yhat = glm_mod.mu" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from statsmodels.graphics.api import abline_plot\n", + "fig = plt.figure(figsize=(12,8))\n", + "ax = fig.add_subplot(111, ylabel='Observed Values', xlabel='Fitted Values')\n", + "ax.scatter(yhat, y)\n", + "y_vs_yhat = sm.OLS(y, sm.add_constant(yhat, prepend=True)).fit()\n", + "fig = abline_plot(model_results=y_vs_yhat, ax=ax)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Plot fitted values vs Pearson residuals" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Pearson residuals are defined to be \n", + "\n", + "$$\\frac{(y - \\mu)}{\\sqrt{(var(\\mu))}}$$\n", + "\n", + "where var is typically determined by the family. E.g., binomial variance is $np(1 - p)$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig = plt.figure(figsize=(12,8))\n", + "ax = fig.add_subplot(111, title='Residual Dependence Plot', xlabel='Fitted Values',\n", + " ylabel='Pearson Residuals')\n", + "ax.scatter(yhat, stats.zscore(glm_mod.resid_pearson))\n", + "ax.axis('tight')\n", + "ax.plot([0.0, 1.0],[0.0, 0.0], 'k-');" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Histogram of standardized deviance residuals with Kernel Density Estimate overlayed" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The definition of the deviance residuals depends on the family. For the Binomial distribution this is \n", + "\n", + "$$r_{dev} = sign\\left(Y-\\mu\\right)*\\sqrt{2n(Y\\log\\frac{Y}{\\mu}+(1-Y)\\log\\frac{(1-Y)}{(1-\\mu)}}$$\n", + "\n", + "They can be used to detect ill-fitting covariates" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "resid = glm_mod.resid_deviance\n", + "resid_std = stats.zscore(resid) \n", + "kde_resid = sm.nonparametric.KDEUnivariate(resid_std)\n", + "kde_resid.fit()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig = plt.figure(figsize=(12,8))\n", + "ax = fig.add_subplot(111, title=\"Standardized Deviance Residuals\")\n", + "ax.hist(resid_std, bins=25, normed=True);\n", + "ax.plot(kde_resid.support, kde_resid.density, 'r');" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### QQ-plot of deviance residuals" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig = plt.figure(figsize=(12,8))\n", + "ax = fig.add_subplot(111)\n", + "fig = sm.graphics.qqplot(resid, line='r', ax=ax)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.3" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/examples/notebooks/discrete_choice_overview.ipynb b/examples/notebooks/discrete_choice_overview.ipynb new file mode 100644 index 0000000..d5884f9 --- /dev/null +++ b/examples/notebooks/discrete_choice_overview.ipynb @@ -0,0 +1,336 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Discrete Choice Models Overview" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from __future__ import print_function\n", + "import numpy as np\n", + "import statsmodels.api as sm" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Data\n", + "\n", + "Load data from Spector and Mazzeo (1980). Examples follow Greene's Econometric Analysis Ch. 21 (5th Edition)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "spector_data = sm.datasets.spector.load()\n", + "spector_data.exog = sm.add_constant(spector_data.exog, prepend=False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Inspect the data:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(spector_data.exog[:5,:])\n", + "print(spector_data.endog[:5])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Linear Probability Model (OLS)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "lpm_mod = sm.OLS(spector_data.endog, spector_data.exog)\n", + "lpm_res = lpm_mod.fit()\n", + "print('Parameters: ', lpm_res.params[:-1])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Logit Model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "logit_mod = sm.Logit(spector_data.endog, spector_data.exog)\n", + "logit_res = logit_mod.fit(disp=0)\n", + "print('Parameters: ', logit_res.params)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Marginal Effects" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "margeff = logit_res.get_margeff()\n", + "print(margeff.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As in all the discrete data models presented below, we can print a nice summary of results:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(logit_res.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Probit Model " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "probit_mod = sm.Probit(spector_data.endog, spector_data.exog)\n", + "probit_res = probit_mod.fit()\n", + "probit_margeff = probit_res.get_margeff()\n", + "print('Parameters: ', probit_res.params)\n", + "print('Marginal effects: ')\n", + "print(probit_margeff.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Multinomial Logit" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Load data from the American National Election Studies:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "anes_data = sm.datasets.anes96.load()\n", + "anes_exog = anes_data.exog\n", + "anes_exog = sm.add_constant(anes_exog, prepend=False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Inspect the data:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(anes_data.exog[:5,:])\n", + "print(anes_data.endog[:5])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Fit MNL model:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "mlogit_mod = sm.MNLogit(anes_data.endog, anes_exog)\n", + "mlogit_res = mlogit_mod.fit()\n", + "print(mlogit_res.params)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Poisson\n", + "\n", + "Load the Rand data. Note that this example is similar to Cameron and Trivedi's `Microeconometrics` Table 20.5, but it is slightly different because of minor changes in the data. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "rand_data = sm.datasets.randhie.load()\n", + "rand_exog = rand_data.exog.view(float).reshape(len(rand_data.exog), -1)\n", + "rand_exog = sm.add_constant(rand_exog, prepend=False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Fit Poisson model: " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "poisson_mod = sm.Poisson(rand_data.endog, rand_exog)\n", + "poisson_res = poisson_mod.fit(method=\"newton\")\n", + "print(poisson_res.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Negative Binomial\n", + "\n", + "The negative binomial model gives slightly different results. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "mod_nbin = sm.NegativeBinomial(rand_data.endog, rand_exog)\n", + "res_nbin = mod_nbin.fit(disp=False)\n", + "print(res_nbin.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Alternative solvers\n", + "\n", + "The default method for fitting discrete data MLE models is Newton-Raphson. You can use other solvers by using the ``method`` argument: " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "mlogit_res = mlogit_mod.fit(method='bfgs', maxiter=100)\n", + "print(mlogit_res.summary())" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.3" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/examples/notebooks/formulas.ipynb b/examples/notebooks/formulas.ipynb new file mode 100644 index 0000000..2d467b7 --- /dev/null +++ b/examples/notebooks/formulas.ipynb @@ -0,0 +1,392 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Formulas: Fitting models using R-style formulas" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Since version 0.5.0, ``statsmodels`` allows users to fit statistical models using R-style formulas. Internally, ``statsmodels`` uses the [patsy](http://patsy.readthedocs.org/) package to convert formulas and data to the matrices that are used in model fitting. The formula framework is quite powerful; this tutorial only scratches the surface. A full description of the formula language can be found in the ``patsy`` docs: \n", + "\n", + "* [Patsy formula language description](http://patsy.readthedocs.org/)\n", + "\n", + "## Loading modules and functions" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from __future__ import print_function\n", + "import numpy as np\n", + "import statsmodels.api as sm" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Import convention" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can import explicitly from statsmodels.formula.api" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from statsmodels.formula.api import ols" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Alternatively, you can just use the `formula` namespace of the main `statsmodels.api`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "sm.formula.ols" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Or you can use the following conventioin" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import statsmodels.formula.api as smf" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "These names are just a convenient way to get access to each model's `from_formula` classmethod. See, for instance" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "sm.OLS.from_formula" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "All of the lower case models accept ``formula`` and ``data`` arguments, whereas upper case ones take ``endog`` and ``exog`` design matrices. ``formula`` accepts a string which describes the model in terms of a ``patsy`` formula. ``data`` takes a [pandas](http://pandas.pydata.org/) data frame or any other data structure that defines a ``__getitem__`` for variable names like a structured array or a dictionary of variables. \n", + "\n", + "``dir(sm.formula)`` will print a list of available models. \n", + "\n", + "Formula-compatible models have the following generic call signature: ``(formula, data, subset=None, *args, **kwargs)``" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## OLS regression using formulas\n", + "\n", + "To begin, we fit the linear model described on the [Getting Started](gettingstarted.html) page. Download the data, subset columns, and list-wise delete to remove missing observations:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "dta = sm.datasets.get_rdataset(\"Guerry\", \"HistData\", cache=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "df = dta.data[['Lottery', 'Literacy', 'Wealth', 'Region']].dropna()\n", + "df.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Fit the model:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "mod = ols(formula='Lottery ~ Literacy + Wealth + Region', data=df)\n", + "res = mod.fit()\n", + "print(res.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Categorical variables\n", + "\n", + "Looking at the summary printed above, notice that ``patsy`` determined that elements of *Region* were text strings, so it treated *Region* as a categorical variable. `patsy`'s default is also to include an intercept, so we automatically dropped one of the *Region* categories.\n", + "\n", + "If *Region* had been an integer variable that we wanted to treat explicitly as categorical, we could have done so by using the ``C()`` operator: " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "res = ols(formula='Lottery ~ Literacy + Wealth + C(Region)', data=df).fit()\n", + "print(res.params)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Patsy's mode advanced features for categorical variables are discussed in: [Patsy: Contrast Coding Systems for categorical variables](contrasts.html)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Operators\n", + "\n", + "We have already seen that \"~\" separates the left-hand side of the model from the right-hand side, and that \"+\" adds new columns to the design matrix. \n", + "\n", + "### Removing variables\n", + "\n", + "The \"-\" sign can be used to remove columns/variables. For instance, we can remove the intercept from a model by: " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "res = ols(formula='Lottery ~ Literacy + Wealth + C(Region) -1 ', data=df).fit()\n", + "print(res.params)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Multiplicative interactions\n", + "\n", + "\":\" adds a new column to the design matrix with the interaction of the other two columns. \"*\" will also include the individual columns that were multiplied together:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "res1 = ols(formula='Lottery ~ Literacy : Wealth - 1', data=df).fit()\n", + "res2 = ols(formula='Lottery ~ Literacy * Wealth - 1', data=df).fit()\n", + "print(res1.params, '\\n')\n", + "print(res2.params)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Many other things are possible with operators. Please consult the [patsy docs](https://patsy.readthedocs.org/en/latest/formulas.html) to learn more." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Functions\n", + "\n", + "You can apply vectorized functions to the variables in your model: " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "res = smf.ols(formula='Lottery ~ np.log(Literacy)', data=df).fit()\n", + "print(res.params)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Define a custom function:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "def log_plus_1(x):\n", + " return np.log(x) + 1.\n", + "res = smf.ols(formula='Lottery ~ log_plus_1(Literacy)', data=df).fit()\n", + "print(res.params)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Any function that is in the calling namespace is available to the formula." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Using formulas with models that do not (yet) support them\n", + "\n", + "Even if a given `statsmodels` function does not support formulas, you can still use `patsy`'s formula language to produce design matrices. Those matrices \n", + "can then be fed to the fitting function as `endog` and `exog` arguments. \n", + "\n", + "To generate ``numpy`` arrays: " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import patsy\n", + "f = 'Lottery ~ Literacy * Wealth'\n", + "y,X = patsy.dmatrices(f, df, return_type='dataframe')\n", + "print(y[:5])\n", + "print(X[:5])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To generate pandas data frames: " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "f = 'Lottery ~ Literacy * Wealth'\n", + "y,X = patsy.dmatrices(f, df, return_type='dataframe')\n", + "print(y[:5])\n", + "print(X[:5])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(sm.OLS(y, X).fit().summary())" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.3" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/examples/notebooks/generic_mle.ipynb b/examples/notebooks/generic_mle.ipynb new file mode 100644 index 0000000..9f49cb3 --- /dev/null +++ b/examples/notebooks/generic_mle.ipynb @@ -0,0 +1,500 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Maximum Likelihood Estimation (Generic models)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This tutorial explains how to quickly implement new maximum likelihood models in `statsmodels`. We give two examples: \n", + "\n", + "1. Probit model for binary dependent variables\n", + "2. Negative binomial model for count data\n", + "\n", + "The `GenericLikelihoodModel` class eases the process by providing tools such as automatic numeric differentiation and a unified interface to ``scipy`` optimization functions. Using ``statsmodels``, users can fit new MLE models simply by \"plugging-in\" a log-likelihood function. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1: Probit model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from __future__ import print_function\n", + "import numpy as np\n", + "from scipy import stats\n", + "import statsmodels.api as sm\n", + "from statsmodels.base.model import GenericLikelihoodModel" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The ``Spector`` dataset is distributed with ``statsmodels``. You can access a vector of values for the dependent variable (``endog``) and a matrix of regressors (``exog``) like this:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "data = sm.datasets.spector.load_pandas()\n", + "exog = data.exog\n", + "endog = data.endog\n", + "print(sm.datasets.spector.NOTE)\n", + "print(data.exog.head())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Them, we add a constant to the matrix of regressors:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "exog = sm.add_constant(exog, prepend=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To create your own Likelihood Model, you simply need to overwrite the loglike method." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "class MyProbit(GenericLikelihoodModel):\n", + " def loglike(self, params):\n", + " exog = self.exog\n", + " endog = self.endog\n", + " q = 2 * endog - 1\n", + " return stats.norm.logcdf(q*np.dot(exog, params)).sum()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Estimate the model and print a summary:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "sm_probit_manual = MyProbit(endog, exog).fit()\n", + "print(sm_probit_manual.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Compare your Probit implementation to ``statsmodels``' \"canned\" implementation:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "sm_probit_canned = sm.Probit(endog, exog).fit()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(sm_probit_canned.params)\n", + "print(sm_probit_manual.params)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(sm_probit_canned.cov_params())\n", + "print(sm_probit_manual.cov_params())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Notice that the ``GenericMaximumLikelihood`` class provides automatic differentiation, so we didn't have to provide Hessian or Score functions in order to calculate the covariance estimates." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "## Example 2: Negative Binomial Regression for Count Data\n", + "\n", + "Consider a negative binomial regression model for count data with\n", + "log-likelihood (type NB-2) function expressed as:\n", + "\n", + "$$\n", + " \\mathcal{L}(\\beta_j; y, \\alpha) = \\sum_{i=1}^n y_i ln \n", + " \\left ( \\frac{\\alpha exp(X_i'\\beta)}{1+\\alpha exp(X_i'\\beta)} \\right ) -\n", + " \\frac{1}{\\alpha} ln(1+\\alpha exp(X_i'\\beta)) + ln \\Gamma (y_i + 1/\\alpha) - ln \\Gamma (y_i+1) - ln \\Gamma (1/\\alpha)\n", + "$$\n", + "\n", + "with a matrix of regressors $X$, a vector of coefficients $\\beta$,\n", + "and the negative binomial heterogeneity parameter $\\alpha$. \n", + "\n", + "Using the ``nbinom`` distribution from ``scipy``, we can write this likelihood\n", + "simply as:\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "from scipy.stats import nbinom" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "def _ll_nb2(y, X, beta, alph):\n", + " mu = np.exp(np.dot(X, beta))\n", + " size = 1/alph\n", + " prob = size/(size+mu)\n", + " ll = nbinom.logpmf(y, size, prob)\n", + " return ll" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### New Model Class\n", + "\n", + "We create a new model class which inherits from ``GenericLikelihoodModel``:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from statsmodels.base.model import GenericLikelihoodModel" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "class NBin(GenericLikelihoodModel):\n", + " def __init__(self, endog, exog, **kwds):\n", + " super(NBin, self).__init__(endog, exog, **kwds)\n", + " \n", + " def nloglikeobs(self, params):\n", + " alph = params[-1]\n", + " beta = params[:-1]\n", + " ll = _ll_nb2(self.endog, self.exog, beta, alph)\n", + " return -ll \n", + " \n", + " def fit(self, start_params=None, maxiter=10000, maxfun=5000, **kwds):\n", + " # we have one additional parameter and we need to add it for summary\n", + " self.exog_names.append('alpha')\n", + " if start_params == None:\n", + " # Reasonable starting values\n", + " start_params = np.append(np.zeros(self.exog.shape[1]), .5)\n", + " # intercept\n", + " start_params[-2] = np.log(self.endog.mean())\n", + " return super(NBin, self).fit(start_params=start_params, \n", + " maxiter=maxiter, maxfun=maxfun, \n", + " **kwds) " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Two important things to notice: \n", + "\n", + "+ ``nloglikeobs``: This function should return one evaluation of the negative log-likelihood function per observation in your dataset (i.e. rows of the endog/X matrix). \n", + "+ ``start_params``: A one-dimensional array of starting values needs to be provided. The size of this array determines the number of parameters that will be used in optimization.\n", + " \n", + "That's it! You're done!\n", + "\n", + "### Usage Example\n", + "\n", + "The [Medpar](http://vincentarelbundock.github.com/Rdatasets/doc/COUNT/medpar.html)\n", + "dataset is hosted in CSV format at the [Rdatasets repository](http://vincentarelbundock.github.com/Rdatasets). We use the ``read_csv``\n", + "function from the [Pandas library](http://pandas.pydata.org) to load the data\n", + "in memory. We then print the first few columns: \n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import statsmodels.api as sm" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "medpar = sm.datasets.get_rdataset(\"medpar\", \"COUNT\", cache=True).data\n", + "\n", + "medpar.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The model we are interested in has a vector of non-negative integers as\n", + "dependent variable (``los``), and 5 regressors: ``Intercept``, ``type2``,\n", + "``type3``, ``hmo``, ``white``.\n", + "\n", + "For estimation, we need to create two variables to hold our regressors and the outcome variable. These can be ndarrays or pandas objects." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "y = medpar.los\n", + "X = medpar[[\"type2\", \"type3\", \"hmo\", \"white\"]].copy()\n", + "X[\"constant\"] = 1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Then, we fit the model and extract some information: " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "mod = NBin(y, X)\n", + "res = mod.fit()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " Extract parameter estimates, standard errors, p-values, AIC, etc.:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print('Parameters: ', res.params)\n", + "print('Standard errors: ', res.bse)\n", + "print('P-values: ', res.pvalues)\n", + "print('AIC: ', res.aic)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As usual, you can obtain a full list of available information by typing\n", + "``dir(res)``.\n", + "We can also look at the summary of the estimation results." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(res.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Testing" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can check the results by using the statsmodels implementation of the Negative Binomial model, which uses the analytic score function and Hessian." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "res_nbin = sm.NegativeBinomial(y, X).fit(disp=0)\n", + "print(res_nbin.summary())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(res_nbin.params)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(res_nbin.bse)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Or we could compare them to results obtained using the MASS implementation for R:\n", + "\n", + " url = 'http://vincentarelbundock.github.com/Rdatasets/csv/COUNT/medpar.csv'\n", + " medpar = read.csv(url)\n", + " f = los~factor(type)+hmo+white\n", + " \n", + " library(MASS)\n", + " mod = glm.nb(f, medpar)\n", + " coef(summary(mod))\n", + " Estimate Std. Error z value Pr(>|z|)\n", + " (Intercept) 2.31027893 0.06744676 34.253370 3.885556e-257\n", + " factor(type)2 0.22124898 0.05045746 4.384861 1.160597e-05\n", + " factor(type)3 0.70615882 0.07599849 9.291748 1.517751e-20\n", + " hmo -0.06795522 0.05321375 -1.277024 2.015939e-01\n", + " white -0.12906544 0.06836272 -1.887951 5.903257e-02\n", + "\n", + "### Numerical precision \n", + "\n", + "The ``statsmodels`` generic MLE and ``R`` parameter estimates agree up to the fourth decimal. The standard errors, however, agree only up to the second decimal. This discrepancy is the result of imprecision in our Hessian numerical estimates. In the current context, the difference between ``MASS`` and ``statsmodels`` standard error estimates is substantively irrelevant, but it highlights the fact that users who need very precise estimates may not always want to rely on default settings when using numerical derivatives. In such cases, it is better to use analytical derivatives with the ``LikelihoodModel`` class." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.3" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/examples/notebooks/glm.ipynb b/examples/notebooks/glm.ipynb new file mode 100644 index 0000000..4f257ab --- /dev/null +++ b/examples/notebooks/glm.ipynb @@ -0,0 +1,450 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Generalized Linear Models" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "from __future__ import print_function\n", + "import numpy as np\n", + "import statsmodels.api as sm\n", + "from scipy import stats\n", + "from matplotlib import pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## GLM: Binomial response data\n", + "\n", + "### Load data\n", + "\n", + " In this example, we use the Star98 dataset which was taken with permission\n", + " from Jeff Gill (2000) Generalized linear models: A unified approach. Codebook\n", + " information can be obtained by typing: " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(sm.datasets.star98.NOTE)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Load the data and add a constant to the exogenous (independent) variables:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "data = sm.datasets.star98.load()\n", + "data.exog = sm.add_constant(data.exog, prepend=False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " The dependent variable is N by 2 (Success: NABOVE, Failure: NBELOW): " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(data.endog[:5,:])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " The independent variables include all the other variables described above, as\n", + " well as the interaction terms:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(data.exog[:2,:])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Fit and summary" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "glm_binom = sm.GLM(data.endog, data.exog, family=sm.families.Binomial())\n", + "res = glm_binom.fit()\n", + "print(res.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Quantities of interest" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print('Total number of trials:', data.endog[0].sum())\n", + "print('Parameters: ', res.params)\n", + "print('T-values: ', res.tvalues)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First differences: We hold all explanatory variables constant at their means and manipulate the percentage of low income households to assess its impact on the response variables: " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "means = data.exog.mean(axis=0)\n", + "means25 = means.copy()\n", + "means25[0] = stats.scoreatpercentile(data.exog[:,0], 25)\n", + "means75 = means.copy()\n", + "means75[0] = lowinc_75per = stats.scoreatpercentile(data.exog[:,0], 75)\n", + "resp_25 = res.predict(means25)\n", + "resp_75 = res.predict(means75)\n", + "diff = resp_75 - resp_25" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The interquartile first difference for the percentage of low income households in a school district is:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(\"%2.4f%%\" % (diff*100))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Plots\n", + "\n", + " We extract information that will be used to draw some interesting plots: " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "nobs = res.nobs\n", + "y = data.endog[:,0]/data.endog.sum(1)\n", + "yhat = res.mu" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Plot yhat vs y:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from statsmodels.graphics.api import abline_plot" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig, ax = plt.subplots()\n", + "ax.scatter(yhat, y)\n", + "line_fit = sm.OLS(y, sm.add_constant(yhat, prepend=True)).fit()\n", + "abline_plot(model_results=line_fit, ax=ax)\n", + "\n", + "\n", + "ax.set_title('Model Fit Plot')\n", + "ax.set_ylabel('Observed values')\n", + "ax.set_xlabel('Fitted values');" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Plot yhat vs. Pearson residuals:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig, ax = plt.subplots()\n", + "\n", + "ax.scatter(yhat, res.resid_pearson)\n", + "ax.hlines(0, 0, 1)\n", + "ax.set_xlim(0, 1)\n", + "ax.set_title('Residual Dependence Plot')\n", + "ax.set_ylabel('Pearson Residuals')\n", + "ax.set_xlabel('Fitted values')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Histogram of standardized deviance residuals:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from scipy import stats\n", + "\n", + "fig, ax = plt.subplots()\n", + "\n", + "resid = res.resid_deviance.copy()\n", + "resid_std = stats.zscore(resid)\n", + "ax.hist(resid_std, bins=25)\n", + "ax.set_title('Histogram of standardized deviance residuals');" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "QQ Plot of Deviance Residuals:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from statsmodels import graphics\n", + "graphics.gofplots.qqplot(resid, line='r')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## GLM: Gamma for proportional count response\n", + "\n", + "### Load data\n", + "\n", + " In the example above, we printed the ``NOTE`` attribute to learn about the\n", + " Star98 dataset. Statsmodels datasets ships with other useful information. For\n", + " example: " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(sm.datasets.scotland.DESCRLONG)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " Load the data and add a constant to the exogenous variables:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "data2 = sm.datasets.scotland.load()\n", + "data2.exog = sm.add_constant(data2.exog, prepend=False)\n", + "print(data2.exog[:5,:])\n", + "print(data2.endog[:5])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Fit and summary" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "glm_gamma = sm.GLM(data2.endog, data2.exog, family=sm.families.Gamma())\n", + "glm_results = glm_gamma.fit()\n", + "print(glm_results.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## GLM: Gaussian distribution with a noncanonical link\n", + "\n", + "### Artificial data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "nobs2 = 100\n", + "x = np.arange(nobs2)\n", + "np.random.seed(54321)\n", + "X = np.column_stack((x,x**2))\n", + "X = sm.add_constant(X, prepend=False)\n", + "lny = np.exp(-(.03*x + .0001*x**2 - 1.0)) + .001 * np.random.rand(nobs2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Fit and summary" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "gauss_log = sm.GLM(lny, X, family=sm.families.Gaussian(sm.families.links.log))\n", + "gauss_log_results = gauss_log.fit()\n", + "print(gauss_log_results.summary())" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.3" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/examples/notebooks/glm_formula.ipynb b/examples/notebooks/glm_formula.ipynb new file mode 100644 index 0000000..3e12c2b --- /dev/null +++ b/examples/notebooks/glm_formula.ipynb @@ -0,0 +1,124 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Generalized Linear Models (Formula)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This notebook illustrates how you can use R-style formulas to fit Generalized Linear Models.\n", + "\n", + "To begin, we load the ``Star98`` dataset and we construct a formula and pre-process the data:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from __future__ import print_function\n", + "import statsmodels.api as sm\n", + "import statsmodels.formula.api as smf\n", + "star98 = sm.datasets.star98.load_pandas().data\n", + "formula = 'SUCCESS ~ LOWINC + PERASIAN + PERBLACK + PERHISP + PCTCHRT + \\\n", + " PCTYRRND + PERMINTE*AVYRSEXP*AVSALK + PERSPENK*PTRATIO*PCTAF'\n", + "dta = star98[['NABOVE', 'NBELOW', 'LOWINC', 'PERASIAN', 'PERBLACK', 'PERHISP',\n", + " 'PCTCHRT', 'PCTYRRND', 'PERMINTE', 'AVYRSEXP', 'AVSALK',\n", + " 'PERSPENK', 'PTRATIO', 'PCTAF']].copy()\n", + "endog = dta['NABOVE'] / (dta['NABOVE'] + dta.pop('NBELOW'))\n", + "del dta['NABOVE']\n", + "dta['SUCCESS'] = endog" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Then, we fit the GLM model:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "mod1 = smf.glm(formula=formula, data=dta, family=sm.families.Binomial()).fit()\n", + "mod1.summary()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, we define a function to operate customized data transformation using the formula framework:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "def double_it(x):\n", + " return 2 * x\n", + "formula = 'SUCCESS ~ double_it(LOWINC) + PERASIAN + PERBLACK + PERHISP + PCTCHRT + \\\n", + " PCTYRRND + PERMINTE*AVYRSEXP*AVSALK + PERSPENK*PTRATIO*PCTAF'\n", + "mod2 = smf.glm(formula=formula, data=dta, family=sm.families.Binomial()).fit()\n", + "mod2.summary()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As expected, the coefficient for ``double_it(LOWINC)`` in the second model is half the size of the ``LOWINC`` coefficient from the first model:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(mod1.params[1])\n", + "print(mod2.params[1] * 2)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.3" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/examples/notebooks/gls.ipynb b/examples/notebooks/gls.ipynb new file mode 100644 index 0000000..2e3192d --- /dev/null +++ b/examples/notebooks/gls.ipynb @@ -0,0 +1,234 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Generalized Least Squares" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from __future__ import print_function\n", + "import statsmodels.api as sm\n", + "import numpy as np\n", + "from statsmodels.iolib.table import (SimpleTable, default_txt_fmt)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The Longley dataset is a time series dataset: " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "data = sm.datasets.longley.load()\n", + "data.exog = sm.add_constant(data.exog)\n", + "print(data.exog[:5])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + " Let's assume that the data is heteroskedastic and that we know\n", + " the nature of the heteroskedasticity. We can then define\n", + " `sigma` and use it to give us a GLS model\n", + "\n", + " First we will obtain the residuals from an OLS fit" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "ols_resid = sm.OLS(data.endog, data.exog).fit().resid" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Assume that the error terms follow an AR(1) process with a trend:\n", + "\n", + "$\\epsilon_i = \\beta_0 + \\rho\\epsilon_{i-1} + \\eta_i$\n", + "\n", + "where $\\eta \\sim N(0,\\Sigma^2)$\n", + " \n", + "and that $\\rho$ is simply the correlation of the residual a consistent estimator for rho is to regress the residuals on the lagged residuals" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "resid_fit = sm.OLS(ols_resid[1:], sm.add_constant(ols_resid[:-1])).fit()\n", + "print(resid_fit.tvalues[1])\n", + "print(resid_fit.pvalues[1])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " While we don't have strong evidence that the errors follow an AR(1)\n", + " process we continue" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "rho = resid_fit.params[1]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As we know, an AR(1) process means that near-neighbors have a stronger\n", + " relation so we can give this structure by using a toeplitz matrix" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from scipy.linalg import toeplitz\n", + "\n", + "toeplitz(range(5))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "order = toeplitz(range(len(ols_resid)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "so that our error covariance structure is actually rho**order\n", + " which defines an autocorrelation structure" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "sigma = rho**order\n", + "gls_model = sm.GLS(data.endog, data.exog, sigma=sigma)\n", + "gls_results = gls_model.fit()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Of course, the exact rho in this instance is not known so it it might make more sense to use feasible gls, which currently only has experimental support. \n", + "\n", + "We can use the GLSAR model with one lag, to get to a similar result:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "glsar_model = sm.GLSAR(data.endog, data.exog, 1)\n", + "glsar_results = glsar_model.iterative_fit(1)\n", + "print(glsar_results.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Comparing gls and glsar results, we see that there are some small\n", + " differences in the parameter estimates and the resulting standard\n", + " errors of the parameter estimate. This might be do to the numerical\n", + " differences in the algorithm, e.g. the treatment of initial conditions,\n", + " because of the small number of observations in the longley dataset." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(gls_results.params)\n", + "print(glsar_results.params)\n", + "print(gls_results.bse)\n", + "print(glsar_results.bse)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.3" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/examples/notebooks/interactions_anova.ipynb b/examples/notebooks/interactions_anova.ipynb new file mode 100644 index 0000000..1fa8ee9 --- /dev/null +++ b/examples/notebooks/interactions_anova.ipynb @@ -0,0 +1,882 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Interactions and ANOVA" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note: This script is based heavily on Jonathan Taylor's class notes http://www.stanford.edu/class/stats191/interactions.html\n", + "\n", + "Download and format data:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "from __future__ import print_function\n", + "from statsmodels.compat import urlopen\n", + "import numpy as np\n", + "np.set_printoptions(precision=4, suppress=True)\n", + "import statsmodels.api as sm\n", + "import pandas as pd\n", + "pd.set_option(\"display.width\", 100)\n", + "import matplotlib.pyplot as plt\n", + "from statsmodels.formula.api import ols\n", + "from statsmodels.graphics.api import interaction_plot, abline_plot\n", + "from statsmodels.stats.anova import anova_lm\n", + "\n", + "try:\n", + " salary_table = pd.read_csv('salary.table')\n", + "except: # recent pandas can read URL without urlopen\n", + " url = 'http://stats191.stanford.edu/data/salary.table'\n", + " fh = urlopen(url)\n", + " salary_table = pd.read_table(fh)\n", + " salary_table.to_csv('salary.table')\n", + "\n", + "E = salary_table.E\n", + "M = salary_table.M\n", + "X = salary_table.X\n", + "S = salary_table.S" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Take a look at the data:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "plt.figure(figsize=(6,6))\n", + "symbols = ['D', '^']\n", + "colors = ['r', 'g', 'blue']\n", + "factor_groups = salary_table.groupby(['E','M'])\n", + "for values, group in factor_groups:\n", + " i,j = values\n", + " plt.scatter(group['X'], group['S'], marker=symbols[j], color=colors[i-1],\n", + " s=144)\n", + "plt.xlabel('Experience');\n", + "plt.ylabel('Salary');" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Fit a linear model:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "formula = 'S ~ C(E) + C(M) + X'\n", + "lm = ols(formula, salary_table).fit()\n", + "print(lm.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Have a look at the created design matrix: " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "lm.model.exog[:5]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Or since we initially passed in a DataFrame, we have a DataFrame available in" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "lm.model.data.orig_exog[:5]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We keep a reference to the original untouched data in" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "lm.model.data.frame[:5]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Influence statistics" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "infl = lm.get_influence()\n", + "print(infl.summary_table())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "or get a dataframe" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "df_infl = infl.summary_frame()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "df_infl[:5]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now plot the reiduals within the groups separately:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "resid = lm.resid\n", + "plt.figure(figsize=(6,6));\n", + "for values, group in factor_groups:\n", + " i,j = values\n", + " group_num = i*2 + j - 1 # for plotting purposes\n", + " x = [group_num] * len(group)\n", + " plt.scatter(x, resid[group.index], marker=symbols[j], color=colors[i-1],\n", + " s=144, edgecolors='black')\n", + "plt.xlabel('Group');\n", + "plt.ylabel('Residuals');" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we will test some interactions using anova or f_test" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "interX_lm = ols(\"S ~ C(E) * X + C(M)\", salary_table).fit()\n", + "print(interX_lm.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Do an ANOVA check" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from statsmodels.stats.api import anova_lm\n", + "\n", + "table1 = anova_lm(lm, interX_lm)\n", + "print(table1)\n", + "\n", + "interM_lm = ols(\"S ~ X + C(E)*C(M)\", data=salary_table).fit()\n", + "print(interM_lm.summary())\n", + "\n", + "table2 = anova_lm(lm, interM_lm)\n", + "print(table2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The design matrix as a DataFrame" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "interM_lm.model.data.orig_exog[:5]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The design matrix as an ndarray" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "interM_lm.model.exog\n", + "interM_lm.model.exog_names" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "infl = interM_lm.get_influence()\n", + "resid = infl.resid_studentized_internal\n", + "plt.figure(figsize=(6,6))\n", + "for values, group in factor_groups:\n", + " i,j = values\n", + " idx = group.index\n", + " plt.scatter(X[idx], resid[idx], marker=symbols[j], color=colors[i-1],\n", + " s=144, edgecolors='black')\n", + "plt.xlabel('X');\n", + "plt.ylabel('standardized resids');" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Looks like one observation is an outlier." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "drop_idx = abs(resid).argmax()\n", + "print(drop_idx) # zero-based index\n", + "idx = salary_table.index.drop(drop_idx)\n", + "\n", + "lm32 = ols('S ~ C(E) + X + C(M)', data=salary_table, subset=idx).fit()\n", + "\n", + "print(lm32.summary())\n", + "print('\\n')\n", + "\n", + "interX_lm32 = ols('S ~ C(E) * X + C(M)', data=salary_table, subset=idx).fit()\n", + "\n", + "print(interX_lm32.summary())\n", + "print('\\n')\n", + "\n", + "\n", + "table3 = anova_lm(lm32, interX_lm32)\n", + "print(table3)\n", + "print('\\n')\n", + "\n", + "\n", + "interM_lm32 = ols('S ~ X + C(E) * C(M)', data=salary_table, subset=idx).fit()\n", + "\n", + "table4 = anova_lm(lm32, interM_lm32)\n", + "print(table4)\n", + "print('\\n')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " Replot the residuals" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "try:\n", + " resid = interM_lm32.get_influence().summary_frame()['standard_resid']\n", + "except:\n", + " resid = interM_lm32.get_influence().summary_frame()['standard_resid']\n", + "\n", + "plt.figure(figsize=(6,6))\n", + "for values, group in factor_groups:\n", + " i,j = values\n", + " idx = group.index\n", + " plt.scatter(X[idx], resid[idx], marker=symbols[j], color=colors[i-1],\n", + " s=144, edgecolors='black')\n", + "plt.xlabel('X[~[32]]');\n", + "plt.ylabel('standardized resids');" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " Plot the fitted values" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "lm_final = ols('S ~ X + C(E)*C(M)', data = salary_table.drop([drop_idx])).fit()\n", + "mf = lm_final.model.data.orig_exog\n", + "lstyle = ['-','--']\n", + "\n", + "plt.figure(figsize=(6,6))\n", + "for values, group in factor_groups:\n", + " i,j = values\n", + " idx = group.index\n", + " plt.scatter(X[idx], S[idx], marker=symbols[j], color=colors[i-1],\n", + " s=144, edgecolors='black')\n", + " # drop NA because there is no idx 32 in the final model\n", + " plt.plot(mf.X[idx].dropna(), lm_final.fittedvalues[idx].dropna(),\n", + " ls=lstyle[j], color=colors[i-1])\n", + "plt.xlabel('Experience');\n", + "plt.ylabel('Salary');" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "From our first look at the data, the difference between Master's and PhD in the management group is different than in the non-management group. This is an interaction between the two qualitative variables management,M and education,E. We can visualize this by first removing the effect of experience, then plotting the means within each of the 6 groups using interaction.plot." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "U = S - X * interX_lm32.params['X']\n", + "\n", + "plt.figure(figsize=(6,6))\n", + "interaction_plot(E, M, U, colors=['red','blue'], markers=['^','D'],\n", + " markersize=10, ax=plt.gca())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Minority Employment Data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "try:\n", + " jobtest_table = pd.read_table('jobtest.table')\n", + "except: # don't have data already\n", + " url = 'http://stats191.stanford.edu/data/jobtest.table'\n", + " jobtest_table = pd.read_table(url)\n", + "\n", + "factor_group = jobtest_table.groupby(['ETHN'])\n", + "\n", + "fig, ax = plt.subplots(figsize=(6,6))\n", + "colors = ['purple', 'green']\n", + "markers = ['o', 'v']\n", + "for factor, group in factor_group:\n", + " ax.scatter(group['TEST'], group['JPERF'], color=colors[factor],\n", + " marker=markers[factor], s=12**2)\n", + "ax.set_xlabel('TEST');\n", + "ax.set_ylabel('JPERF');" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "min_lm = ols('JPERF ~ TEST', data=jobtest_table).fit()\n", + "print(min_lm.summary())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig, ax = plt.subplots(figsize=(6,6));\n", + "for factor, group in factor_group:\n", + " ax.scatter(group['TEST'], group['JPERF'], color=colors[factor],\n", + " marker=markers[factor], s=12**2)\n", + "\n", + "ax.set_xlabel('TEST')\n", + "ax.set_ylabel('JPERF')\n", + "fig = abline_plot(model_results = min_lm, ax=ax)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "min_lm2 = ols('JPERF ~ TEST + TEST:ETHN',\n", + " data=jobtest_table).fit()\n", + "\n", + "print(min_lm2.summary())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig, ax = plt.subplots(figsize=(6,6));\n", + "for factor, group in factor_group:\n", + " ax.scatter(group['TEST'], group['JPERF'], color=colors[factor],\n", + " marker=markers[factor], s=12**2)\n", + "\n", + "fig = abline_plot(intercept = min_lm2.params['Intercept'],\n", + " slope = min_lm2.params['TEST'], ax=ax, color='purple');\n", + "fig = abline_plot(intercept = min_lm2.params['Intercept'],\n", + " slope = min_lm2.params['TEST'] + min_lm2.params['TEST:ETHN'],\n", + " ax=ax, color='green');" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "min_lm3 = ols('JPERF ~ TEST + ETHN', data = jobtest_table).fit()\n", + "print(min_lm3.summary())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig, ax = plt.subplots(figsize=(6,6));\n", + "for factor, group in factor_group:\n", + " ax.scatter(group['TEST'], group['JPERF'], color=colors[factor],\n", + " marker=markers[factor], s=12**2)\n", + "\n", + "fig = abline_plot(intercept = min_lm3.params['Intercept'],\n", + " slope = min_lm3.params['TEST'], ax=ax, color='purple');\n", + "fig = abline_plot(intercept = min_lm3.params['Intercept'] + min_lm3.params['ETHN'],\n", + " slope = min_lm3.params['TEST'], ax=ax, color='green');" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "min_lm4 = ols('JPERF ~ TEST * ETHN', data = jobtest_table).fit()\n", + "print(min_lm4.summary())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig, ax = plt.subplots(figsize=(8,6));\n", + "for factor, group in factor_group:\n", + " ax.scatter(group['TEST'], group['JPERF'], color=colors[factor],\n", + " marker=markers[factor], s=12**2)\n", + "\n", + "fig = abline_plot(intercept = min_lm4.params['Intercept'],\n", + " slope = min_lm4.params['TEST'], ax=ax, color='purple');\n", + "fig = abline_plot(intercept = min_lm4.params['Intercept'] + min_lm4.params['ETHN'],\n", + " slope = min_lm4.params['TEST'] + min_lm4.params['TEST:ETHN'],\n", + " ax=ax, color='green');" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# is there any effect of ETHN on slope or intercept?\n", + "table5 = anova_lm(min_lm, min_lm4)\n", + "print(table5)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# is there any effect of ETHN on intercept\n", + "table6 = anova_lm(min_lm, min_lm3)\n", + "print(table6)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# is there any effect of ETHN on slope\n", + "table7 = anova_lm(min_lm, min_lm2)\n", + "print(table7)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# is it just the slope or both?\n", + "table8 = anova_lm(min_lm2, min_lm4)\n", + "print(table8)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## One-way ANOVA" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "try:\n", + " rehab_table = pd.read_csv('rehab.table')\n", + "except:\n", + " url = 'http://stats191.stanford.edu/data/rehab.csv'\n", + " rehab_table = pd.read_table(url, delimiter=\",\")\n", + " rehab_table.to_csv('rehab.table')\n", + "\n", + "fig, ax = plt.subplots(figsize=(8,6))\n", + "fig = rehab_table.boxplot('Time', 'Fitness', ax=ax, grid=False)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "rehab_lm = ols('Time ~ C(Fitness)', data=rehab_table).fit()\n", + "table9 = anova_lm(rehab_lm)\n", + "print(table9)\n", + "\n", + "print(rehab_lm.model.data.orig_exog)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(rehab_lm.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Two-way ANOVA" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "try:\n", + " kidney_table = pd.read_table('./kidney.table')\n", + "except:\n", + " url = 'http://stats191.stanford.edu/data/kidney.table'\n", + " kidney_table = pd.read_csv(url, delim_whitespace=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Explore the dataset" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "kidney_table.head(10)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Balanced panel" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "kt = kidney_table\n", + "plt.figure(figsize=(8,6))\n", + "fig = interaction_plot(kt['Weight'], kt['Duration'], np.log(kt['Days']+1),\n", + " colors=['red', 'blue'], markers=['D','^'], ms=10, ax=plt.gca())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You have things available in the calling namespace available in the formula evaluation namespace" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "kidney_lm = ols('np.log(Days+1) ~ C(Duration) * C(Weight)', data=kt).fit()\n", + "\n", + "table10 = anova_lm(kidney_lm)\n", + "\n", + "print(anova_lm(ols('np.log(Days+1) ~ C(Duration) + C(Weight)',\n", + " data=kt).fit(), kidney_lm))\n", + "print(anova_lm(ols('np.log(Days+1) ~ C(Duration)', data=kt).fit(),\n", + " ols('np.log(Days+1) ~ C(Duration) + C(Weight, Sum)',\n", + " data=kt).fit()))\n", + "print(anova_lm(ols('np.log(Days+1) ~ C(Weight)', data=kt).fit(),\n", + " ols('np.log(Days+1) ~ C(Duration) + C(Weight, Sum)',\n", + " data=kt).fit()))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Sum of squares\n", + "\n", + " Illustrates the use of different types of sums of squares (I,II,II)\n", + " and how the Sum contrast can be used to produce the same output between\n", + " the 3.\n", + "\n", + " Types I and II are equivalent under a balanced design.\n", + "\n", + " Don't use Type III with non-orthogonal contrast - ie., Treatment" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "sum_lm = ols('np.log(Days+1) ~ C(Duration, Sum) * C(Weight, Sum)',\n", + " data=kt).fit()\n", + "\n", + "print(anova_lm(sum_lm))\n", + "print(anova_lm(sum_lm, typ=2))\n", + "print(anova_lm(sum_lm, typ=3))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "nosum_lm = ols('np.log(Days+1) ~ C(Duration, Treatment) * C(Weight, Treatment)',\n", + " data=kt).fit()\n", + "print(anova_lm(nosum_lm))\n", + "print(anova_lm(nosum_lm, typ=2))\n", + "print(anova_lm(nosum_lm, typ=3))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.5.1" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/examples/notebooks/kernel_density.ipynb b/examples/notebooks/kernel_density.ipynb new file mode 100644 index 0000000..f3a9a44 --- /dev/null +++ b/examples/notebooks/kernel_density.ipynb @@ -0,0 +1,257 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Kernel Density Estimation" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "import numpy as np\n", + "from scipy import stats\n", + "import statsmodels.api as sm\n", + "import matplotlib.pyplot as plt\n", + "from statsmodels.distributions.mixture_rvs import mixture_rvs" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### A univariate example." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "np.random.seed(12345)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "obs_dist1 = mixture_rvs([.25,.75], size=10000, dist=[stats.norm, stats.norm],\n", + " kwargs = (dict(loc=-1,scale=.5),dict(loc=1,scale=.5)))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "kde = sm.nonparametric.KDEUnivariate(obs_dist1)\n", + "kde.fit()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig = plt.figure(figsize=(12,8))\n", + "ax = fig.add_subplot(111)\n", + "ax.hist(obs_dist1, bins=50, normed=True, color='red')\n", + "ax.plot(kde.support, kde.density, lw=2, color='black');" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "obs_dist2 = mixture_rvs([.25,.75], size=10000, dist=[stats.norm, stats.beta],\n", + " kwargs = (dict(loc=-1,scale=.5),dict(loc=1,scale=1,args=(1,.5))))\n", + "\n", + "kde2 = sm.nonparametric.KDEUnivariate(obs_dist2)\n", + "kde2.fit()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig = plt.figure(figsize=(12,8))\n", + "ax = fig.add_subplot(111)\n", + "ax.hist(obs_dist2, bins=50, normed=True, color='red')\n", + "ax.plot(kde2.support, kde2.density, lw=2, color='black');" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The fitted KDE object is a full non-parametric distribution." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "obs_dist3 = mixture_rvs([.25,.75], size=1000, dist=[stats.norm, stats.norm],\n", + " kwargs = (dict(loc=-1,scale=.5),dict(loc=1,scale=.5)))\n", + "kde3 = sm.nonparametric.KDEUnivariate(obs_dist3)\n", + "kde3.fit()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "kde3.entropy" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "kde3.evaluate(-1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### CDF" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig = plt.figure(figsize=(12,8))\n", + "ax = fig.add_subplot(111)\n", + "ax.plot(kde3.support, kde3.cdf);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Cumulative Hazard Function" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig = plt.figure(figsize=(12,8))\n", + "ax = fig.add_subplot(111)\n", + "ax.plot(kde3.support, kde3.cumhazard);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Inverse CDF" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig = plt.figure(figsize=(12,8))\n", + "ax = fig.add_subplot(111)\n", + "ax.plot(kde3.support, kde3.icdf);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Survival Function" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig = plt.figure(figsize=(12,8))\n", + "ax = fig.add_subplot(111)\n", + "ax.plot(kde3.support, kde3.sf);" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.3" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/examples/notebooks/markov_autoregression.ipynb b/examples/notebooks/markov_autoregression.ipynb new file mode 100644 index 0000000..9b145b3 --- /dev/null +++ b/examples/notebooks/markov_autoregression.ipynb @@ -0,0 +1,411 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Markov switching autoregression models" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This notebook provides an example of the use of Markov switching models in Statsmodels to replicate a number of results presented in Kim and Nelson (1999). It applies the Hamilton (1989) filter the Kim (1994) smoother.\n", + "\n", + "This is tested against the Markov-switching models from E-views 8, which can be found at http://www.eviews.com/EViews8/ev8ecswitch_n.html#MarkovAR or the Markov-switching models of Stata 14 which can be found at http://www.stata.com/manuals14/tsmswitch.pdf." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "import numpy as np\n", + "import pandas as pd\n", + "import statsmodels.api as sm\n", + "import matplotlib.pyplot as plt\n", + "import requests\n", + "from io import BytesIO\n", + "\n", + "# NBER recessions\n", + "from pandas_datareader.data import DataReader\n", + "from datetime import datetime\n", + "usrec = DataReader('USREC', 'fred', start=datetime(1947, 1, 1), end=datetime(2013, 4, 1))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Hamilton (1989) switching model of GNP\n", + "\n", + "This replicates Hamilton's (1989) seminal paper introducing Markov-switching models. The model is an autoregressive model of order 4 in which the mean of the process switches between two regimes. It can be written:\n", + "\n", + "$$\n", + "y_t = \\mu_{S_t} + \\phi_1 (y_{t-1} - \\mu_{S_{t-1}}) + \\phi_2 (y_{t-2} - \\mu_{S_{t-2}}) + \\phi_3 (y_{t-3} - \\mu_{S_{t-3}}) + \\phi_4 (y_{t-4} - \\mu_{S_{t-4}}) + \\varepsilon_t\n", + "$$\n", + "\n", + "Each period, the regime transitions according to the following matrix of transition probabilities:\n", + "\n", + "$$ P(S_t = s_t | S_{t-1} = s_{t-1}) =\n", + "\\begin{bmatrix}\n", + "p_{00} & p_{10} \\\\\n", + "p_{01} & p_{11}\n", + "\\end{bmatrix}\n", + "$$\n", + "\n", + "where $p_{ij}$ is the probability of transitioning *from* regime $i$, *to* regime $j$.\n", + "\n", + "The model class is `MarkovAutoregression` in the time-series part of `Statsmodels`. In order to create the model, we must specify the number of regimes with `k_regimes=2`, and the order of the autoregression with `order=4`. The default model also includes switching autoregressive coefficients, so here we also need to specify `switching_ar=False` to avoid that.\n", + "\n", + "After creation, the model is `fit` via maximum likelihood estimation. Under the hood, good starting parameters are found using a number of steps of the expectation maximization (EM) algorithm, and a quasi-Newton (BFGS) algorithm is applied to quickly find the maximum." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Get the RGNP data to replicate Hamilton\n", + "from statsmodels.tsa.regime_switching.tests.test_markov_autoregression import rgnp\n", + "dta_hamilton = pd.Series(rgnp, index=pd.date_range('1951-04-01', '1984-10-01', freq='QS'))\n", + "\n", + "# Plot the data\n", + "dta_hamilton.plot(title='Growth rate of Real GNP', figsize=(12,3))\n", + "\n", + "# Fit the model\n", + "mod_hamilton = sm.tsa.MarkovAutoregression(dta_hamilton, k_regimes=2, order=4, switching_ar=False)\n", + "res_hamilton = mod_hamilton.fit()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "res_hamilton.summary()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We plot the filtered and smoothed probabilities of a recession. Filtered refers to an estimate of the probability at time $t$ based on data up to and including time $t$ (but excluding time $t+1, ..., T$). Smoothed refers to an estimate of the probability at time $t$ using all the data in the sample.\n", + "\n", + "For reference, the shaded periods represent the NBER recessions." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig, axes = plt.subplots(2, figsize=(7,7))\n", + "ax = axes[0]\n", + "ax.plot(res_hamilton.filtered_marginal_probabilities[0])\n", + "ax.fill_between(usrec.index, 0, 1, where=usrec['USREC'].values, color='k', alpha=0.1)\n", + "ax.set_xlim(dta_hamilton.index[4], dta_hamilton.index[-1])\n", + "ax.set(title='Filtered probability of recession')\n", + "\n", + "ax = axes[1]\n", + "ax.plot(res_hamilton.smoothed_marginal_probabilities[0])\n", + "ax.fill_between(usrec.index, 0, 1, where=usrec['USREC'].values, color='k', alpha=0.1)\n", + "ax.set_xlim(dta_hamilton.index[4], dta_hamilton.index[-1])\n", + "ax.set(title='Smoothed probability of recession')\n", + "\n", + "fig.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "From the estimated transition matrix we can calculate the expected duration of a recession versus an expansion." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(res_hamilton.expected_durations)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this case, it is expected that a recession will last about one year (4 quarters) and an expansion about two and a half years." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Kim, Nelson, and Startz (1998) Three-state Variance Switching\n", + "\n", + "This model demonstrates estimation with regime heteroskedasticity (switching of variances) and no mean effect. The dataset can be reached at http://econ.korea.ac.kr/~cjkim/MARKOV/data/ew_excs.prn.\n", + "\n", + "The model in question is:\n", + "\n", + "$$\n", + "\\begin{align}\n", + "y_t & = \\varepsilon_t \\\\\n", + "\\varepsilon_t & \\sim N(0, \\sigma_{S_t}^2)\n", + "\\end{align}\n", + "$$\n", + "\n", + "Since there is no autoregressive component, this model can be fit using the `MarkovRegression` class. Since there is no mean effect, we specify `trend='nc'`. There are hypotheized to be three regimes for the switching variances, so we specify `k_regimes=3` and `switching_variance=True` (by default, the variance is assumed to be the same across regimes)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Get the dataset\n", + "ew_excs = requests.get('http://econ.korea.ac.kr/~cjkim/MARKOV/data/ew_excs.prn').content\n", + "raw = pd.read_table(BytesIO(ew_excs), header=None, skipfooter=1, engine='python')\n", + "raw.index = pd.date_range('1926-01-01', '1995-12-01', freq='MS')\n", + "\n", + "dta_kns = raw.ix[:'1986'] - raw.ix[:'1986'].mean()\n", + "\n", + "# Plot the dataset\n", + "dta_kns[0].plot(title='Excess returns', figsize=(12, 3))\n", + "\n", + "# Fit the model\n", + "mod_kns = sm.tsa.MarkovRegression(dta_kns, k_regimes=3, trend='nc', switching_variance=True)\n", + "res_kns = mod_kns.fit()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "res_kns.summary()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Below we plot the probabilities of being in each of the regimes; only in a few periods is a high-variance regime probable." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig, axes = plt.subplots(3, figsize=(10,7))\n", + "\n", + "ax = axes[0]\n", + "ax.plot(res_kns.smoothed_marginal_probabilities[0])\n", + "ax.set(title='Smoothed probability of a low-variance regime for stock returns')\n", + "\n", + "ax = axes[1]\n", + "ax.plot(res_kns.smoothed_marginal_probabilities[1])\n", + "ax.set(title='Smoothed probability of a medium-variance regime for stock returns')\n", + "\n", + "ax = axes[2]\n", + "ax.plot(res_kns.smoothed_marginal_probabilities[2])\n", + "ax.set(title='Smoothed probability of a high-variance regime for stock returns')\n", + "\n", + "fig.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Filardo (1994) Time-Varying Transition Probabilities\n", + "\n", + "This model demonstrates estimation with time-varying transition probabilities. The dataset can be reached at http://econ.korea.ac.kr/~cjkim/MARKOV/data/filardo.prn.\n", + "\n", + "In the above models we have assumed that the transition probabilities are constant across time. Here we allow the probabilities to change with the state of the economy. Otherwise, the model is the same Markov autoregression of Hamilton (1989).\n", + "\n", + "Each period, the regime now transitions according to the following matrix of time-varying transition probabilities:\n", + "\n", + "$$ P(S_t = s_t | S_{t-1} = s_{t-1}) =\n", + "\\begin{bmatrix}\n", + "p_{00,t} & p_{10,t} \\\\\n", + "p_{01,t} & p_{11,t}\n", + "\\end{bmatrix}\n", + "$$\n", + "\n", + "where $p_{ij,t}$ is the probability of transitioning *from* regime $i$, *to* regime $j$ in period $t$, and is defined to be:\n", + "\n", + "$$\n", + "p_{ij,t} = \\frac{\\exp\\{ x_{t-1}' \\beta_{ij} \\}}{1 + \\exp\\{ x_{t-1}' \\beta_{ij} \\}}\n", + "$$\n", + "\n", + "Instead of estimating the transition probabilities as part of maximum likelihood, the regression coefficients $\\beta_{ij}$ are estimated. These coefficients relate the transition probabilities to a vector of pre-determined or exogenous regressors $x_{t-1}$." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Get the dataset\n", + "filardo = requests.get('http://econ.korea.ac.kr/~cjkim/MARKOV/data/filardo.prn').content\n", + "dta_filardo = pd.read_table(BytesIO(filardo), sep=' +', header=None, skipfooter=1, engine='python')\n", + "dta_filardo.columns = ['month', 'ip', 'leading']\n", + "dta_filardo.index = pd.date_range('1948-01-01', '1991-04-01', freq='MS')\n", + "\n", + "dta_filardo['dlip'] = np.log(dta_filardo['ip']).diff()*100\n", + "# Deflated pre-1960 observations by ratio of std. devs.\n", + "# See hmt_tvp.opt or Filardo (1994) p. 302\n", + "std_ratio = dta_filardo['dlip']['1960-01-01':].std() / dta_filardo['dlip'][:'1959-12-01'].std()\n", + "dta_filardo['dlip'][:'1959-12-01'] = dta_filardo['dlip'][:'1959-12-01'] * std_ratio\n", + "\n", + "dta_filardo['dlleading'] = np.log(dta_filardo['leading']).diff()*100\n", + "dta_filardo['dmdlleading'] = dta_filardo['dlleading'] - dta_filardo['dlleading'].mean()\n", + "\n", + "# Plot the data\n", + "dta_filardo['dlip'].plot(title='Standardized growth rate of industrial production', figsize=(13,3))\n", + "plt.figure()\n", + "dta_filardo['dmdlleading'].plot(title='Leading indicator', figsize=(13,3));" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The time-varying transition probabilities are specified by the `exog_tvtp` parameter.\n", + "\n", + "Here we demonstrate another feature of model fitting - the use of a random search for MLE starting parameters. Because Markov switching models are often characterized by many local maxima of the likelihood function, performing an initial optimization step can be helpful to find the best parameters.\n", + "\n", + "Below, we specify that 20 random perturbations from the starting parameter vector are examined and the best one used as the actual starting parameters. Because of the random nature of the search, we seed the random number generator beforehand to allow replication of the result." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "mod_filardo = sm.tsa.MarkovAutoregression(\n", + " dta_filardo.ix[2:, 'dlip'], k_regimes=2, order=4, switching_ar=False,\n", + " exog_tvtp=sm.add_constant(dta_filardo.ix[1:-1, 'dmdlleading']))\n", + "\n", + "np.random.seed(12345)\n", + "res_filardo = mod_filardo.fit(search_reps=20)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "res_filardo.summary()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Below we plot the smoothed probability of the economy operating in a low-production state, and again include the NBER recessions for comparison." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig, ax = plt.subplots(figsize=(12,3))\n", + "\n", + "ax.plot(res_filardo.smoothed_marginal_probabilities[0])\n", + "ax.fill_between(usrec.index, 0, 1, where=usrec['USREC'].values, color='gray', alpha=0.2)\n", + "ax.set_xlim(dta_filardo.index[6], dta_filardo.index[-1])\n", + "ax.set(title='Smoothed probability of a low-production state');" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Using the time-varying transition probabilities, we can see how the expected duration of a low-production state changes over time:\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "res_filardo.expected_durations[0].plot(\n", + " title='Expected duration of a low-production state', figsize=(12,3));" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "During recessions, the expected duration of a low-production state is much higher than in an expansion." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/examples/notebooks/markov_regression.ipynb b/examples/notebooks/markov_regression.ipynb new file mode 100644 index 0000000..48e174c --- /dev/null +++ b/examples/notebooks/markov_regression.ipynb @@ -0,0 +1,409 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Markov switching dynamic regression models" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This notebook provides an example of the use of Markov switching models in Statsmodels to estimate dynamic regression models with changes in regime. It follows the examples in the Stata Markov switching documentation, which can be found at http://www.stata.com/manuals14/tsmswitch.pdf." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "import numpy as np\n", + "import pandas as pd\n", + "import statsmodels.api as sm\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# NBER recessions\n", + "from pandas_datareader.data import DataReader\n", + "from datetime import datetime\n", + "usrec = DataReader('USREC', 'fred', start=datetime(1947, 1, 1), end=datetime(2013, 4, 1))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Federal funds rate with switching intercept\n", + "\n", + "The first example models the federal funds rate as noise around a constant intercept, but where the intercept changes during different regimes. The model is simply:\n", + "\n", + "$$r_t = \\mu_{S_t} + \\varepsilon_t \\qquad \\varepsilon_t \\sim N(0, \\sigma^2)$$\n", + "\n", + "where $S_t \\in \\{0, 1\\}$, and the regime transitions according to\n", + "\n", + "$$ P(S_t = s_t | S_{t-1} = s_{t-1}) =\n", + "\\begin{bmatrix}\n", + "p_{00} & p_{10} \\\\\n", + "1 - p_{00} & 1 - p_{10}\n", + "\\end{bmatrix}\n", + "$$\n", + "\n", + "We will estimate the parameters of this model by maximum likelihood: $p_{00}, p_{10}, \\mu_0, \\mu_1, \\sigma^2$.\n", + "\n", + "The data used in this example can be found at http://www.stata-press.com/data/r14/usmacro." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Get the federal funds rate data\n", + "from statsmodels.tsa.regime_switching.tests.test_markov_regression import fedfunds\n", + "dta_fedfunds = pd.Series(fedfunds, index=pd.date_range('1954-07-01', '2010-10-01', freq='QS'))\n", + "\n", + "# Plot the data\n", + "dta_fedfunds.plot(title='Federal funds rate', figsize=(12,3))\n", + "\n", + "# Fit the model\n", + "# (a switching mean is the default of the MarkovRegession model)\n", + "mod_fedfunds = sm.tsa.MarkovRegression(dta_fedfunds, k_regimes=2)\n", + "res_fedfunds = mod_fedfunds.fit()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "res_fedfunds.summary()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "From the summary output, the mean federal funds rate in the first regime (the \"low regime\") is estimated to be $3.7$ whereas in the \"high regime\" it is $9.6$. Below we plot the smoothed probabilities of being in the high regime. The model suggests that the 1980's was a time-period in which a high federal funds rate existed." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "res_fedfunds.smoothed_marginal_probabilities[1].plot(\n", + " title='Probability of being in the high regime', figsize=(12,3));" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "From the estimated transition matrix we can calculate the expected duration of a low regime versus a high regime." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(res_fedfunds.expected_durations)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A low regime is expected to persist for about fourteen years, whereas the high regime is expected to persist for only about five years." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Federal funds rate with switching intercept and lagged dependent variable\n", + "\n", + "The second example augments the previous model to include the lagged value of the federal funds rate.\n", + "\n", + "$$r_t = \\mu_{S_t} + r_{t-1} \\beta_{S_t} + \\varepsilon_t \\qquad \\varepsilon_t \\sim N(0, \\sigma^2)$$\n", + "\n", + "where $S_t \\in \\{0, 1\\}$, and the regime transitions according to\n", + "\n", + "$$ P(S_t = s_t | S_{t-1} = s_{t-1}) =\n", + "\\begin{bmatrix}\n", + "p_{00} & p_{10} \\\\\n", + "1 - p_{00} & 1 - p_{10}\n", + "\\end{bmatrix}\n", + "$$\n", + "\n", + "We will estimate the parameters of this model by maximum likelihood: $p_{00}, p_{10}, \\mu_0, \\mu_1, \\beta_0, \\beta_1, \\sigma^2$." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Fit the model\n", + "mod_fedfunds2 = sm.tsa.MarkovRegression(\n", + " dta_fedfunds.iloc[1:], k_regimes=2, exog=dta_fedfunds.iloc[:-1])\n", + "res_fedfunds2 = mod_fedfunds2.fit()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "res_fedfunds2.summary()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "There are several things to notice from the summary output:\n", + "\n", + "1. The information criteria have decreased substantially, indicating that this model has a better fit than the previous model.\n", + "2. The interpretation of the regimes, in terms of the intercept, have switched. Now the first regime has the higher intercept and the second regime has a lower intercept.\n", + "\n", + "Examining the smoothed probabilities of the high regime state, we now see quite a bit more variability." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "res_fedfunds2.smoothed_marginal_probabilities[0].plot(\n", + " title='Probability of being in the high regime', figsize=(12,3));" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, the expected durations of each regime have decreased quite a bit." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(res_fedfunds2.expected_durations)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Taylor rule with 2 or 3 regimes\n", + "\n", + "We now include two additional exogenous variables - a measure of the output gap and a measure of inflation - to estimate a switching Taylor-type rule with both 2 and 3 regimes to see which fits the data better.\n", + "\n", + "Because the models can be often difficult to estimate, for the 3-regime model we employ a search over starting parameters to improve results, specifying 20 random search repetitions." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Get the additional data\n", + "from statsmodels.tsa.regime_switching.tests.test_markov_regression import ogap, inf\n", + "dta_ogap = pd.Series(ogap, index=pd.date_range('1954-07-01', '2010-10-01', freq='QS'))\n", + "dta_inf = pd.Series(inf, index=pd.date_range('1954-07-01', '2010-10-01', freq='QS'))\n", + "\n", + "exog = pd.concat((dta_fedfunds.shift(), dta_ogap, dta_inf), axis=1).iloc[4:]\n", + "\n", + "# Fit the 2-regime model\n", + "mod_fedfunds3 = sm.tsa.MarkovRegression(\n", + " dta_fedfunds.iloc[4:], k_regimes=2, exog=exog)\n", + "res_fedfunds3 = mod_fedfunds3.fit()\n", + "\n", + "# Fit the 3-regime model\n", + "np.random.seed(12345)\n", + "mod_fedfunds4 = sm.tsa.MarkovRegression(\n", + " dta_fedfunds.iloc[4:], k_regimes=3, exog=exog)\n", + "res_fedfunds4 = mod_fedfunds4.fit(search_reps=20)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "res_fedfunds3.summary()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "res_fedfunds4.summary()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Due to lower information criteria, we might prefer the 3-state model, with an interpretation of low-, medium-, and high-interest rate regimes. The smoothed probabilities of each regime are plotted below." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig, axes = plt.subplots(3, figsize=(10,7))\n", + "\n", + "ax = axes[0]\n", + "ax.plot(res_fedfunds4.smoothed_marginal_probabilities[0])\n", + "ax.set(title='Smoothed probability of a low-interest rate regime')\n", + "\n", + "ax = axes[1]\n", + "ax.plot(res_fedfunds4.smoothed_marginal_probabilities[1])\n", + "ax.set(title='Smoothed probability of a medium-interest rate regime')\n", + "\n", + "ax = axes[2]\n", + "ax.plot(res_fedfunds4.smoothed_marginal_probabilities[2])\n", + "ax.set(title='Smoothed probability of a high-interest rate regime')\n", + "\n", + "fig.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Switching variances\n", + "\n", + "We can also accomodate switching variances. In particular, we consider the model\n", + "\n", + "$$\n", + "y_t = \\mu_{S_t} + y_{t-1} \\beta_{S_t} + \\varepsilon_t \\quad \\varepsilon_t \\sim N(0, \\sigma_{S_t}^2)\n", + "$$\n", + "\n", + "We use maximum likelihood to estimate the parameters of this model: $p_{00}, p_{10}, \\mu_0, \\mu_1, \\beta_0, \\beta_1, \\sigma_0^2, \\sigma_1^2$.\n", + "\n", + "The application is to absolute returns on stocks, where the data can be found at http://www.stata-press.com/data/r14/snp500." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Get the federal funds rate data\n", + "from statsmodels.tsa.regime_switching.tests.test_markov_regression import areturns\n", + "dta_areturns = pd.Series(areturns, index=pd.date_range('2004-05-04', '2014-5-03', freq='W'))\n", + "\n", + "# Plot the data\n", + "dta_areturns.plot(title='Absolute returns, S&P500', figsize=(12,3))\n", + "\n", + "# Fit the model\n", + "mod_areturns = sm.tsa.MarkovRegression(\n", + " dta_areturns.iloc[1:], k_regimes=2, exog=dta_areturns.iloc[:-1], switching_variance=True)\n", + "res_areturns = mod_areturns.fit()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "res_areturns.summary()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The first regime is a low-variance regime and the second regime is a high-variance regime. Below we plot the probabilities of being in the low-variance regime. Between 2008 and 2012 there does not appear to be a clear indication of one regime guiding the economy." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "res_areturns.smoothed_marginal_probabilities[0].plot(\n", + " title='Probability of being in a low-variance regime', figsize=(12,3));" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/examples/notebooks/mixed_lm_example.ipynb b/examples/notebooks/mixed_lm_example.ipynb new file mode 100644 index 0000000..b6e21a7 --- /dev/null +++ b/examples/notebooks/mixed_lm_example.ipynb @@ -0,0 +1,422 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Linear Mixed Effects Models" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "import numpy as np\n", + "import statsmodels.api as sm\n", + "import statsmodels.formula.api as smf" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%load_ext rpy2.ipython" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%R library(lme4)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Comparing R lmer to Statsmodels MixedLM\n", + "=======================================\n", + "\n", + "The Statsmodels imputation of linear mixed models (MixedLM) closely follows the approach outlined in Lindstrom and Bates (JASA 1988). This is also the approach followed in the R package LME4. Other packages such as Stata, SAS, etc. should also be consistent with this approach, as the basic techniques in this area are mostly mature.\n", + "\n", + "Here we show how linear mixed models can be fit using the MixedLM procedure in Statsmodels. Results from R (LME4) are included for comparison. \n", + "\n", + "Here are our import statements:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Growth curves of pigs\n", + "\n", + "These are longitudinal data from a factorial experiment. The outcome variable is the weight of each pig, and the only predictor variable we will use here is \"time\". First we fit a model that expresses the mean weight as a linear function of time, with a random intercept for each pig. The model is specified using formulas. Since the random effects structure is not specified, the default random effects structure (a random intercept for each group) is automatically used. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "data = sm.datasets.get_rdataset('dietox', 'geepack').data\n", + "md = smf.mixedlm(\"Weight ~ Time\", data, groups=data[\"Pig\"])\n", + "mdf = md.fit()\n", + "print(mdf.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here is the same model fit in R using LMER:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%%R \n", + "data(dietox, package='geepack')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%R print(summary(lmer('Weight ~ Time + (1|Pig)', data=dietox)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that in the Statsmodels summary of results, the fixed effects and random effects parameter estimates are shown in a single table. The random effect for animal is labeled \"Intercept RE\" in the Statmodels output above. In the LME4 output, this effect is the pig intercept under the random effects section.\n", + "\n", + "There has been a lot of debate about whether the standard errors for random effect variance and covariance parameters are useful. In LME4, these standard errors are not displayed, because the authors of the package believe they are not very informative. While there is good reason to question their utility, we elected to include the standard errors in the summary table, but do not show the corresponding Wald confidence intervals.\n", + "\n", + "Next we fit a model with two random effects for each animal: a random intercept, and a random slope (with respect to time). This means that each pig may have a different baseline weight, as well as growing at a different rate. The formula specifies that \"Time\" is a covariate with a random coefficient. By default, formulas always include an intercept (which could be suppressed here using \"0 + Time\" as the formula)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "md = smf.mixedlm(\"Weight ~ Time\", data, groups=data[\"Pig\"], re_formula=\"~Time\")\n", + "mdf = md.fit()\n", + "print(mdf.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here is the same model fit using LMER in R:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%R print(summary(lmer(\"Weight ~ Time + (1 + Time | Pig)\", data=dietox)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The random intercept and random slope are only weakly correlated $(0.294 / \\sqrt{19.493 * 0.416} \\approx 0.1)$. So next we fit a model in which the two random effects are constrained to be uncorrelated:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + ".294 / (19.493 * .416)**.5" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "md = smf.mixedlm(\"Weight ~ Time\", data, groups=data[\"Pig\"],\n", + " re_formula=\"~Time\")\n", + "free = sm.regression.mixed_linear_model.MixedLMParams.from_components(np.ones(2), \n", + " np.eye(2))\n", + "\n", + "mdf = md.fit(free=free)\n", + "print(mdf.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The likelihood drops by 0.3 when we fix the correlation parameter to 0. Comparing 2 x 0.3 = 0.6 to the chi^2 1 df reference distribution suggests that the data are very consistent with a model in which this parameter is equal to 0. \n", + "\n", + "Here is the same model fit using LMER in R (note that here R is reporting the REML criterion instead of the likelihood, where the REML criterion is twice the log likeihood):" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%R print(summary(lmer(\"Weight ~ Time + (1 | Pig) + (0 + Time | Pig)\", data=dietox)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Sitka growth data\n", + "\n", + "This is one of the example data sets provided in the LMER R library. The outcome variable is the size of the tree, and the covariate used here is a time value. The data are grouped by tree." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "data = sm.datasets.get_rdataset(\"Sitka\", \"MASS\").data\n", + "endog = data[\"size\"]\n", + "data[\"Intercept\"] = 1\n", + "exog = data[[\"Intercept\", \"Time\"]]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here is the statsmodels LME fit for a basic model with a random intercept. We are passing the endog and exog data directly to the LME init function as arrays. Also note that endog_re is specified explicitly in argument 4 as a random intercept (although this would also be the default if it were not specified)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "md = sm.MixedLM(endog, exog, groups=data[\"tree\"], exog_re=exog[\"Intercept\"])\n", + "mdf = md.fit()\n", + "print(mdf.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here is the same model fit in R using LMER:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%%R\n", + "data(Sitka, package=\"MASS\")\n", + "print(summary(lmer(\"size ~ Time + (1 | tree)\", data=Sitka)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can now try to add a random slope. We start with R this time. From the code and output below we see that the REML estimate of the variance of the random slope is nearly zero." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%R print(summary(lmer(\"size ~ Time + (1 + Time | tree)\", data=Sitka)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we run this in statsmodels LME with defaults, we see that the variance estimate is indeed very small, which leads to a warning about the solution being on the boundary of the parameter space. The regression slopes agree very well with R, but the likelihood value is much higher than that returned by R." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "exog_re = exog.copy()\n", + "md = sm.MixedLM(endog, exog, data[\"tree\"], exog_re)\n", + "mdf = md.fit()\n", + "print(mdf.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can further explore the random effects struture by constructing plots of the profile likelihoods. We start with the random intercept, generating a plot of the profile likelihood from 0.1 units below to 0.1 units above the MLE. Since each optimization inside the profile likelihood generates a warning (due to the random slope variance being close to zero), we turn off the warnings here." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import warnings\n", + "\n", + "with warnings.catch_warnings():\n", + " warnings.filterwarnings(\"ignore\")\n", + " likev = mdf.profile_re(0, 're', dist_low=0.1, dist_high=0.1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here is a plot of the profile likelihood function. We multiply the log-likelihood difference by 2 to obtain the usual $\\chi^2$ reference distribution with 1 degree of freedom." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "plt.figure(figsize=(10,8))\n", + "plt.plot(likev[:,0], 2*likev[:,1])\n", + "plt.xlabel(\"Variance of random slope\", size=17)\n", + "plt.ylabel(\"-2 times profile log likelihood\", size=17)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here is a plot of the profile likelihood function. The profile likelihood plot shows that the MLE of the random slope variance parameter is a very small positive number, and that there is low uncertainty in this estimate." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "re = mdf.cov_re.iloc[1, 1]\n", + "likev = mdf.profile_re(1, 're', dist_low=.5*re, dist_high=0.8*re)\n", + "\n", + "plt.figure(figsize=(10, 8))\n", + "plt.plot(likev[:,0], 2*likev[:,1])\n", + "plt.xlabel(\"Variance of random slope\", size=17)\n", + "plt.ylabel(\"-2 times profile log likelihood\", size=17)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.3" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/examples/notebooks/ols.ipynb b/examples/notebooks/ols.ipynb new file mode 100644 index 0000000..36065f4 --- /dev/null +++ b/examples/notebooks/ols.ipynb @@ -0,0 +1,572 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Ordinary Least Squares" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "from __future__ import print_function\n", + "import numpy as np\n", + "import statsmodels.api as sm\n", + "import matplotlib.pyplot as plt\n", + "from statsmodels.sandbox.regression.predstd import wls_prediction_std\n", + "\n", + "np.random.seed(9876789)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## OLS estimation\n", + "\n", + "Artificial data:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "nsample = 100\n", + "x = np.linspace(0, 10, 100)\n", + "X = np.column_stack((x, x**2))\n", + "beta = np.array([1, 0.1, 10])\n", + "e = np.random.normal(size=nsample)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Our model needs an intercept so we add a column of 1s:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "X = sm.add_constant(X)\n", + "y = np.dot(X, beta) + e" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Fit and summary:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "model = sm.OLS(y, X)\n", + "results = model.fit()\n", + "print(results.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Quantities of interest can be extracted directly from the fitted model. Type ``dir(results)`` for a full list. Here are some examples: " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print('Parameters: ', results.params)\n", + "print('R2: ', results.rsquared)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## OLS non-linear curve but linear in parameters\n", + "\n", + "We simulate artificial data with a non-linear relationship between x and y:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "nsample = 50\n", + "sig = 0.5\n", + "x = np.linspace(0, 20, nsample)\n", + "X = np.column_stack((x, np.sin(x), (x-5)**2, np.ones(nsample)))\n", + "beta = [0.5, 0.5, -0.02, 5.]\n", + "\n", + "y_true = np.dot(X, beta)\n", + "y = y_true + sig * np.random.normal(size=nsample)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Fit and summary:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "res = sm.OLS(y, X).fit()\n", + "print(res.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Extract other quantities of interest:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print('Parameters: ', res.params)\n", + "print('Standard errors: ', res.bse)\n", + "print('Predicted values: ', res.predict())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Draw a plot to compare the true relationship to OLS predictions. Confidence intervals around the predictions are built using the ``wls_prediction_std`` command." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "prstd, iv_l, iv_u = wls_prediction_std(res)\n", + "\n", + "fig, ax = plt.subplots(figsize=(8,6))\n", + "\n", + "ax.plot(x, y, 'o', label=\"data\")\n", + "ax.plot(x, y_true, 'b-', label=\"True\")\n", + "ax.plot(x, res.fittedvalues, 'r--.', label=\"OLS\")\n", + "ax.plot(x, iv_u, 'r--')\n", + "ax.plot(x, iv_l, 'r--')\n", + "ax.legend(loc='best');" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## OLS with dummy variables\n", + "\n", + "We generate some artificial data. There are 3 groups which will be modelled using dummy variables. Group 0 is the omitted/benchmark category." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "nsample = 50\n", + "groups = np.zeros(nsample, int)\n", + "groups[20:40] = 1\n", + "groups[40:] = 2\n", + "#dummy = (groups[:,None] == np.unique(groups)).astype(float)\n", + "\n", + "dummy = sm.categorical(groups, drop=True)\n", + "x = np.linspace(0, 20, nsample)\n", + "# drop reference category\n", + "X = np.column_stack((x, dummy[:,1:]))\n", + "X = sm.add_constant(X, prepend=False)\n", + "\n", + "beta = [1., 3, -3, 10]\n", + "y_true = np.dot(X, beta)\n", + "e = np.random.normal(size=nsample)\n", + "y = y_true + e" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Inspect the data:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(X[:5,:])\n", + "print(y[:5])\n", + "print(groups)\n", + "print(dummy[:5,:])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Fit and summary:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "res2 = sm.OLS(y, X).fit()\n", + "print(res2.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Draw a plot to compare the true relationship to OLS predictions:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "prstd, iv_l, iv_u = wls_prediction_std(res2)\n", + "\n", + "fig, ax = plt.subplots(figsize=(8,6))\n", + "\n", + "ax.plot(x, y, 'o', label=\"Data\")\n", + "ax.plot(x, y_true, 'b-', label=\"True\")\n", + "ax.plot(x, res2.fittedvalues, 'r--.', label=\"Predicted\")\n", + "ax.plot(x, iv_u, 'r--')\n", + "ax.plot(x, iv_l, 'r--')\n", + "legend = ax.legend(loc=\"best\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Joint hypothesis test\n", + "\n", + "### F test\n", + "\n", + "We want to test the hypothesis that both coefficients on the dummy variables are equal to zero, that is, $R \\times \\beta = 0$. An F test leads us to strongly reject the null hypothesis of identical constant in the 3 groups:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "R = [[0, 1, 0, 0], [0, 0, 1, 0]]\n", + "print(np.array(R))\n", + "print(res2.f_test(R))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can also use formula-like syntax to test hypotheses" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(res2.f_test(\"x2 = x3 = 0\"))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Small group effects\n", + "\n", + "If we generate artificial data with smaller group effects, the T test can no longer reject the Null hypothesis: " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "beta = [1., 0.3, -0.0, 10]\n", + "y_true = np.dot(X, beta)\n", + "y = y_true + np.random.normal(size=nsample)\n", + "\n", + "res3 = sm.OLS(y, X).fit()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(res3.f_test(R))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(res3.f_test(\"x2 = x3 = 0\"))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Multicollinearity\n", + "\n", + "The Longley dataset is well known to have high multicollinearity. That is, the exogenous predictors are highly correlated. This is problematic because it can affect the stability of our coefficient estimates as we make minor changes to model specification. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from statsmodels.datasets.longley import load_pandas\n", + "y = load_pandas().endog\n", + "X = load_pandas().exog\n", + "X = sm.add_constant(X)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Fit and summary:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "ols_model = sm.OLS(y, X)\n", + "ols_results = ols_model.fit()\n", + "print(ols_results.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Condition number\n", + "\n", + "One way to assess multicollinearity is to compute the condition number. Values over 20 are worrisome (see Greene 4.9). The first step is to normalize the independent variables to have unit length: " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "norm_x = X.values\n", + "for i, name in enumerate(X):\n", + " if name == \"const\":\n", + " continue\n", + " norm_x[:,i] = X[name]/np.linalg.norm(X[name])\n", + "norm_xtx = np.dot(norm_x.T,norm_x)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Then, we take the square root of the ratio of the biggest to the smallest eigen values. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "eigs = np.linalg.eigvals(norm_xtx)\n", + "condition_number = np.sqrt(eigs.max() / eigs.min())\n", + "print(condition_number)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Dropping an observation\n", + "\n", + "Greene also points out that dropping a single observation can have a dramatic effect on the coefficient estimates: " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "ols_results2 = sm.OLS(y.ix[:14], X.ix[:14]).fit()\n", + "print(\"Percentage change %4.2f%%\\n\"*7 % tuple([i for i in (ols_results2.params - ols_results.params)/ols_results.params*100]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can also look at formal statistics for this such as the DFBETAS -- a standardized measure of how much each coefficient changes when that observation is left out." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "infl = ols_results.get_influence()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In general we may consider DBETAS in absolute value greater than $2/\\sqrt{N}$ to be influential observations" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "2./len(X)**.5" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(infl.summary_frame().filter(regex=\"dfb\"))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.3" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/examples/notebooks/pca_fertility_factors.ipynb b/examples/notebooks/pca_fertility_factors.ipynb new file mode 100644 index 0000000..58a1a71 --- /dev/null +++ b/examples/notebooks/pca_fertility_factors.ipynb @@ -0,0 +1,304 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Statsmodels Principal Component Analysis" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "*Key ideas:* Principal component analysis, world bank data, fertility\n", + "\n", + "In this notebook, we use principal components analysis (PCA) to analyze the time series of fertility rates in 192 countries, using data obtained from the World Bank. The main goal is to understand how the trends in fertility over time differ from country to country. This is a slightly atypical illustration of PCA because the data are time series. Methods such as functional PCA have been developed for this setting, but since the fertility data are very smooth, there is no real disadvantage to using standard PCA in this case." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import statsmodels.api as sm\n", + "from statsmodels.multivariate.pca import PCA" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The data can be obtained from the [World Bank web site](http://data.worldbank.org/indicator/SP.DYN.TFRT.IN), but here we work with a slightly cleaned-up version of the data:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "data = sm.datasets.fertility.load_pandas().data\n", + "data.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here we construct a DataFrame that contains only the numerical fertility rate data and set the index to the country names. We also drop all the countries with any missing data." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "columns = list(map(str, range(1960, 2012)))\n", + "data.set_index('Country Name', inplace=True)\n", + "dta = data[columns]\n", + "dta = dta.dropna()\n", + "dta.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "There are two ways to use PCA to analyze a rectangular matrix: we can treat the rows as the \"objects\" and the columns as the \"variables\", or vice-versa. Here we will treat the fertility measures as \"variables\" used to measure the countries as \"objects\". Thus the goal will be to reduce the yearly fertility rate values to a small number of fertility rate \"profiles\" or \"basis functions\" that capture most of the variation over time in the different countries." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The mean trend is removed in PCA, but its worthwhile taking a look at it. It shows that fertility has dropped steadily over the time period covered in this dataset. Note that the mean is calculated using a country as the unit of analysis, ignoring population size. This is also true for the PC analysis conducted below. A more sophisticated analysis might weight the countries, say by population in 1980." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "ax = dta.mean().plot(grid=False)\n", + "ax.set_xlabel(\"Year\", size=17)\n", + "ax.set_ylabel(\"Fertility rate\", size=17);\n", + "ax.set_xlim(0, 51)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next we perform the PCA:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "pca_model = PCA(dta.T, standardize=False, demean=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Based on the eigenvalues, we see that the first PC dominates, with perhaps a small amount of meaningful variation captured in the second and third PC's." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig = pca_model.plot_scree(log_scale=False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next we will plot the PC factors. The dominant factor is monotonically increasing. Countries with a positive score on the first factor will increase faster (or decrease slower) compared to the mean shown above. Countries with a negative score on the first factor will decrease faster than the mean. The second factor is U-shaped with a positive peak at around 1985. Countries with a large positive score on the second factor will have lower than average fertilities at the beginning and end of the data range, but higher than average fertility in the middle of the range." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig, ax = plt.subplots(figsize=(8, 4))\n", + "lines = ax.plot(pca_model.factors.ix[:,:3], lw=4, alpha=.6)\n", + "ax.set_xticklabels(dta.columns.values[::10])\n", + "ax.set_xlim(0, 51)\n", + "ax.set_xlabel(\"Year\", size=17)\n", + "fig.subplots_adjust(.1, .1, .85, .9)\n", + "legend = fig.legend(lines, ['PC 1', 'PC 2', 'PC 3'], loc='center right')\n", + "legend.draw_frame(False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To better understand what is going on, we will plot the fertility trajectories for sets of countries with similar PC scores. The following convenience function produces such a plot." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "idx = pca_model.loadings.ix[:,0].argsort()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First we plot the five countries with the greatest scores on PC 1. These countries have a higher rate of fertility increase than the global mean (which is decreasing)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "def make_plot(labels):\n", + " fig, ax = plt.subplots(figsize=(9,5))\n", + " ax = dta.ix[labels].T.plot(legend=False, grid=False, ax=ax)\n", + " dta.mean().plot(ax=ax, grid=False, label='Mean')\n", + " ax.set_xlim(0, 51);\n", + " fig.subplots_adjust(.1, .1, .75, .9)\n", + " ax.set_xlabel(\"Year\", size=17)\n", + " ax.set_ylabel(\"Fertility\", size=17);\n", + " legend = ax.legend(*ax.get_legend_handles_labels(), loc='center left', bbox_to_anchor=(1, .5))\n", + " legend.draw_frame(False)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "labels = dta.index[idx[-5:]]\n", + "make_plot(labels)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here are the five countries with the greatest scores on factor 2. These are countries that reached peak fertility around 1980, later than much of the rest of the world, followed by a rapid decrease in fertility." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "idx = pca_model.loadings.ix[:,1].argsort()\n", + "make_plot(dta.index[idx[-5:]])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally we have the countries with the most negative scores on PC 2. These are the countries where the fertility rate declined much faster than the global mean during the 1960's and 1970's, then flattened out." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "make_plot(dta.index[idx[:5]])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can also look at a scatterplot of the first two principal component scores. We see that the variation among countries is fairly continuous, except perhaps that the two countries with highest scores for PC 2 are somewhat separated from the other points. These countries, Oman and Yemen, are unique in having a sharp spike in fertility around 1980. No other country has such a spike. In contrast, the countries with high scores on PC 1 (that have continuously increasing fertility), are part of a continuum of variation." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig, ax = plt.subplots()\n", + "pd.tools.plotting.scatter_plot(pca_model.loadings, 'comp_00', 'comp_01', ax=ax)\n", + "ax.set_xlabel(\"PC 1\", size=17)\n", + "ax.set_ylabel(\"PC 2\", size=17)\n", + "dta.index[pca_model.loadings.ix[:, 1] > .2].values" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.3" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/examples/notebooks/plots_boxplots.ipynb b/examples/notebooks/plots_boxplots.ipynb new file mode 100644 index 0000000..f956ec2 --- /dev/null +++ b/examples/notebooks/plots_boxplots.ipynb @@ -0,0 +1,369 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Box Plots" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following illustrates some options for the boxplot in statsmodels. These include `violin_plot` and `bean_plot`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import statsmodels.api as sm" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Bean Plots" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following example is taken from the docstring of `beanplot`.\n", + "\n", + "We use the American National Election Survey 1996 dataset, which has Party\n", + "Identification of respondents as independent variable and (among other\n", + "data) age as dependent variable." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "data = sm.datasets.anes96.load_pandas()\n", + "party_ID = np.arange(7)\n", + "labels = [\"Strong Democrat\", \"Weak Democrat\", \"Independent-Democrat\",\n", + " \"Independent-Independent\", \"Independent-Republican\",\n", + " \"Weak Republican\", \"Strong Republican\"]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Group age by party ID, and create a violin plot with it:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "plt.rcParams['figure.subplot.bottom'] = 0.23 # keep labels visible\n", + "plt.rcParams['figure.figsize'] = (10.0, 8.0) # make plot larger in notebook\n", + "age = [data.exog['age'][data.endog == id] for id in party_ID]\n", + "fig = plt.figure()\n", + "ax = fig.add_subplot(111)\n", + "plot_opts={'cutoff_val':5, 'cutoff_type':'abs',\n", + " 'label_fontsize':'small',\n", + " 'label_rotation':30}\n", + "sm.graphics.beanplot(age, ax=ax, labels=labels,\n", + " plot_opts=plot_opts)\n", + "ax.set_xlabel(\"Party identification of respondent.\")\n", + "ax.set_ylabel(\"Age\")\n", + "#plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "def beanplot(data, plot_opts={}, jitter=False):\n", + " \"\"\"helper function to try out different plot options\n", + " \"\"\"\n", + " fig = plt.figure()\n", + " ax = fig.add_subplot(111)\n", + " plot_opts_ = {'cutoff_val':5, 'cutoff_type':'abs',\n", + " 'label_fontsize':'small',\n", + " 'label_rotation':30}\n", + " plot_opts_.update(plot_opts)\n", + " sm.graphics.beanplot(data, ax=ax, labels=labels,\n", + " jitter=jitter, plot_opts=plot_opts_)\n", + " ax.set_xlabel(\"Party identification of respondent.\")\n", + " ax.set_ylabel(\"Age\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig = beanplot(age, jitter=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig = beanplot(age, plot_opts={'violin_width': 0.5, 'violin_fc':'#66c2a5'})" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig = beanplot(age, plot_opts={'violin_fc':'#66c2a5'})" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig = beanplot(age, plot_opts={'bean_size': 0.2, 'violin_width': 0.75, 'violin_fc':'#66c2a5'})" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig = beanplot(age, jitter=True, plot_opts={'violin_fc':'#66c2a5'})" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig = beanplot(age, jitter=True, plot_opts={'violin_width': 0.5, 'violin_fc':'#66c2a5'})" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Advanced Box Plots" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Based of example script `example_enhanced_boxplots.py` (by Ralf Gommers)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from __future__ import print_function\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "import statsmodels.api as sm\n", + "\n", + "\n", + "# Necessary to make horizontal axis labels fit\n", + "plt.rcParams['figure.subplot.bottom'] = 0.23\n", + "\n", + "data = sm.datasets.anes96.load_pandas()\n", + "party_ID = np.arange(7)\n", + "labels = [\"Strong Democrat\", \"Weak Democrat\", \"Independent-Democrat\",\n", + " \"Independent-Independent\", \"Independent-Republican\",\n", + " \"Weak Republican\", \"Strong Republican\"]\n", + "\n", + "# Group age by party ID.\n", + "age = [data.exog['age'][data.endog == id] for id in party_ID]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Create a violin plot.\n", + "fig = plt.figure()\n", + "ax = fig.add_subplot(111)\n", + "\n", + "sm.graphics.violinplot(age, ax=ax, labels=labels,\n", + " plot_opts={'cutoff_val':5, 'cutoff_type':'abs',\n", + " 'label_fontsize':'small',\n", + " 'label_rotation':30})\n", + "\n", + "ax.set_xlabel(\"Party identification of respondent.\")\n", + "ax.set_ylabel(\"Age\")\n", + "ax.set_title(\"US national election '96 - Age & Party Identification\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Create a bean plot.\n", + "fig2 = plt.figure()\n", + "ax = fig2.add_subplot(111)\n", + "\n", + "sm.graphics.beanplot(age, ax=ax, labels=labels,\n", + " plot_opts={'cutoff_val':5, 'cutoff_type':'abs',\n", + " 'label_fontsize':'small',\n", + " 'label_rotation':30})\n", + "\n", + "ax.set_xlabel(\"Party identification of respondent.\")\n", + "ax.set_ylabel(\"Age\")\n", + "ax.set_title(\"US national election '96 - Age & Party Identification\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Create a jitter plot.\n", + "fig3 = plt.figure()\n", + "ax = fig3.add_subplot(111)\n", + "\n", + "plot_opts={'cutoff_val':5, 'cutoff_type':'abs', 'label_fontsize':'small',\n", + " 'label_rotation':30, 'violin_fc':(0.8, 0.8, 0.8),\n", + " 'jitter_marker':'.', 'jitter_marker_size':3, 'bean_color':'#FF6F00',\n", + " 'bean_mean_color':'#009D91'}\n", + "sm.graphics.beanplot(age, ax=ax, labels=labels, jitter=True,\n", + " plot_opts=plot_opts)\n", + "\n", + "ax.set_xlabel(\"Party identification of respondent.\")\n", + "ax.set_ylabel(\"Age\")\n", + "ax.set_title(\"US national election '96 - Age & Party Identification\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Create an asymmetrical jitter plot.\n", + "ix = data.exog['income'] < 16 # incomes < $30k\n", + "age = data.exog['age'][ix]\n", + "endog = data.endog[ix]\n", + "age_lower_income = [age[endog == id] for id in party_ID]\n", + "\n", + "ix = data.exog['income'] >= 20 # incomes > $50k\n", + "age = data.exog['age'][ix]\n", + "endog = data.endog[ix]\n", + "age_higher_income = [age[endog == id] for id in party_ID]\n", + "\n", + "fig = plt.figure()\n", + "ax = fig.add_subplot(111)\n", + "\n", + "plot_opts['violin_fc'] = (0.5, 0.5, 0.5)\n", + "plot_opts['bean_show_mean'] = False\n", + "plot_opts['bean_show_median'] = False\n", + "plot_opts['bean_legend_text'] = 'Income < \\$30k'\n", + "plot_opts['cutoff_val'] = 10\n", + "sm.graphics.beanplot(age_lower_income, ax=ax, labels=labels, side='left',\n", + " jitter=True, plot_opts=plot_opts)\n", + "plot_opts['violin_fc'] = (0.7, 0.7, 0.7)\n", + "plot_opts['bean_color'] = '#009D91'\n", + "plot_opts['bean_legend_text'] = 'Income > \\$50k'\n", + "sm.graphics.beanplot(age_higher_income, ax=ax, labels=labels, side='right',\n", + " jitter=True, plot_opts=plot_opts)\n", + "\n", + "ax.set_xlabel(\"Party identification of respondent.\")\n", + "ax.set_ylabel(\"Age\")\n", + "ax.set_title(\"US national election '96 - Age & Party Identification\")\n", + "\n", + "\n", + "# Show all plots.\n", + "#plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.3" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/examples/notebooks/predict.ipynb b/examples/notebooks/predict.ipynb new file mode 100644 index 0000000..cc8e4c7 --- /dev/null +++ b/examples/notebooks/predict.ipynb @@ -0,0 +1,222 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Prediction (out of sample)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "from __future__ import print_function\n", + "import numpy as np\n", + "import statsmodels.api as sm" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Artificial data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "nsample = 50\n", + "sig = 0.25\n", + "x1 = np.linspace(0, 20, nsample)\n", + "X = np.column_stack((x1, np.sin(x1), (x1-5)**2))\n", + "X = sm.add_constant(X)\n", + "beta = [5., 0.5, 0.5, -0.02]\n", + "y_true = np.dot(X, beta)\n", + "y = y_true + sig * np.random.normal(size=nsample)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Estimation " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "olsmod = sm.OLS(y, X)\n", + "olsres = olsmod.fit()\n", + "print(olsres.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## In-sample prediction" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "ypred = olsres.predict(X)\n", + "print(ypred)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Create a new sample of explanatory variables Xnew, predict and plot" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "x1n = np.linspace(20.5,25, 10)\n", + "Xnew = np.column_stack((x1n, np.sin(x1n), (x1n-5)**2))\n", + "Xnew = sm.add_constant(Xnew)\n", + "ynewpred = olsres.predict(Xnew) # predict out of sample\n", + "print(ynewpred)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Plot comparison" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "fig, ax = plt.subplots()\n", + "ax.plot(x1, y, 'o', label=\"Data\")\n", + "ax.plot(x1, y_true, 'b-', label=\"True\")\n", + "ax.plot(np.hstack((x1, x1n)), np.hstack((ypred, ynewpred)), 'r', label=\"OLS prediction\")\n", + "ax.legend(loc=\"best\");" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Predicting with Formulas" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Using formulas can make both estimation and prediction a lot easier" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from statsmodels.formula.api import ols\n", + "\n", + "data = {\"x1\" : x1, \"y\" : y}\n", + "\n", + "res = ols(\"y ~ x1 + np.sin(x1) + I((x1-5)**2)\", data=data).fit()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We use the `I` to indicate use of the Identity transform. Ie., we don't want any expansion magic from using `**2`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "res.params" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we only have to pass the single variable and we get the transformed right-hand side variables automatically" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "res.predict(exog=dict(x1=x1n))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.3" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/examples/notebooks/quantile_regression.ipynb b/examples/notebooks/quantile_regression.ipynb new file mode 100644 index 0000000..ef103a2 --- /dev/null +++ b/examples/notebooks/quantile_regression.ipynb @@ -0,0 +1,212 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Quantile regression" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "This example page shows how to use ``statsmodels``' ``QuantReg`` class to replicate parts of the analysis published in \n", + "\n", + "* Koenker, Roger and Kevin F. Hallock. \"Quantile Regressioin\". Journal of Economic Perspectives, Volume 15, Number 4, Fall 2001, Pages 143–156\n", + "\n", + "We are interested in the relationship between income and expenditures on food for a sample of working class Belgian households in 1857 (the Engel data). \n", + "\n", + "## Setup\n", + "\n", + "We first need to load some modules and to retrieve the data. Conveniently, the Engel dataset is shipped with ``statsmodels``." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "from __future__ import print_function\n", + "import patsy\n", + "import numpy as np\n", + "import pandas as pd\n", + "import statsmodels.api as sm\n", + "import statsmodels.formula.api as smf\n", + "import matplotlib.pyplot as plt\n", + "from statsmodels.regression.quantile_regression import QuantReg\n", + "\n", + "data = sm.datasets.engel.load_pandas().data\n", + "data.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Least Absolute Deviation\n", + "\n", + "The LAD model is a special case of quantile regression where q=0.5" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "mod = smf.quantreg('foodexp ~ income', data)\n", + "res = mod.fit(q=.5)\n", + "print(res.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Visualizing the results\n", + "\n", + "We estimate the quantile regression model for many quantiles between .05 and .95, and compare best fit line from each of these models to Ordinary Least Squares results. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Prepare data for plotting\n", + "\n", + "For convenience, we place the quantile regression results in a Pandas DataFrame, and the OLS results in a dictionary." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "quantiles = np.arange(.05, .96, .1)\n", + "def fit_model(q):\n", + " res = mod.fit(q=q)\n", + " return [q, res.params['Intercept'], res.params['income']] + \\\n", + " res.conf_int().ix['income'].tolist()\n", + " \n", + "models = [fit_model(x) for x in quantiles]\n", + "models = pd.DataFrame(models, columns=['q', 'a', 'b','lb','ub'])\n", + "\n", + "ols = smf.ols('foodexp ~ income', data).fit()\n", + "ols_ci = ols.conf_int().ix['income'].tolist()\n", + "ols = dict(a = ols.params['Intercept'],\n", + " b = ols.params['income'],\n", + " lb = ols_ci[0],\n", + " ub = ols_ci[1])\n", + "\n", + "print(models)\n", + "print(ols)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### First plot\n", + "\n", + "This plot compares best fit lines for 10 quantile regression models to the least squares fit. As Koenker and Hallock (2001) point out, we see that:\n", + "\n", + "1. Food expenditure increases with income\n", + "2. The *dispersion* of food expenditure increases with income\n", + "3. The least squares estimates fit low income observations quite poorly (i.e. the OLS line passes over most low income households)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "x = np.arange(data.income.min(), data.income.max(), 50)\n", + "get_y = lambda a, b: a + b * x\n", + "\n", + "fig, ax = plt.subplots(figsize=(8, 6))\n", + "\n", + "for i in range(models.shape[0]):\n", + " y = get_y(models.a[i], models.b[i])\n", + " ax.plot(x, y, linestyle='dotted', color='grey')\n", + " \n", + "y = get_y(ols['a'], ols['b'])\n", + "\n", + "ax.plot(x, y, color='red', label='OLS')\n", + "ax.scatter(data.income, data.foodexp, alpha=.2)\n", + "ax.set_xlim((240, 3000))\n", + "ax.set_ylim((240, 2000))\n", + "legend = ax.legend()\n", + "ax.set_xlabel('Income', fontsize=16)\n", + "ax.set_ylabel('Food expenditure', fontsize=16);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Second plot\n", + "\n", + "The dotted black lines form 95% point-wise confidence band around 10 quantile regression estimates (solid black line). The red lines represent OLS regression results along with their 95% confindence interval.\n", + "\n", + "In most cases, the quantile regression point estimates lie outside the OLS confidence interval, which suggests that the effect of income on food expenditure may not be constant across the distribution." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "n = models.shape[0]\n", + "p1 = plt.plot(models.q, models.b, color='black', label='Quantile Reg.')\n", + "p2 = plt.plot(models.q, models.ub, linestyle='dotted', color='black')\n", + "p3 = plt.plot(models.q, models.lb, linestyle='dotted', color='black')\n", + "p4 = plt.plot(models.q, [ols['b']] * n, color='red', label='OLS')\n", + "p5 = plt.plot(models.q, [ols['lb']] * n, linestyle='dotted', color='red')\n", + "p6 = plt.plot(models.q, [ols['ub']] * n, linestyle='dotted', color='red')\n", + "plt.ylabel(r'$\\beta_{income}$')\n", + "plt.xlabel('Quantiles of the conditional food expenditure distribution')\n", + "plt.legend()\n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.5.1" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/examples/notebooks/recursive_ls.ipynb b/examples/notebooks/recursive_ls.ipynb new file mode 100644 index 0000000..7443ff5 --- /dev/null +++ b/examples/notebooks/recursive_ls.ipynb @@ -0,0 +1,291 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Recursive least squares\n", + "\n", + "Recursive least squares is an expanding window version of ordinary least squares. In addition to availability of regression coefficients computed recursively, the recursively computed residuals the construction of statistics to investigate parameter instability.\n", + "\n", + "The `RLS` class allows computation of recursive residuals and computes CUSUM and CUSUM of squares statistics. Plotting these statistics along with reference lines denoting statistically significant deviations from the null hypothesis of stable parameters allows an easy visual indication of parameter stability." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "import numpy as np\n", + "import pandas as pd\n", + "import statsmodels.api as sm\n", + "import matplotlib.pyplot as plt\n", + "from pandas_datareader.data import DataReader\n", + "\n", + "np.set_printoptions(suppress=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1: Copper\n", + "\n", + "We first consider parameter stability in the copper dataset (description below)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(sm.datasets.copper.DESCRLONG)\n", + "\n", + "dta = sm.datasets.copper.load_pandas().data\n", + "dta.index = pd.date_range('1951-01-01', '1975-01-01', freq='AS')\n", + "endog = dta['WORLDCONSUMPTION']\n", + "\n", + "# To the regressors in the dataset, we add a column of ones for an intercept\n", + "exog = sm.add_constant(dta[['COPPERPRICE', 'INCOMEINDEX', 'ALUMPRICE', 'INVENTORYINDEX']])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First, construct and fir the model, and print a summary. Although the `RLS` model computes the regression parameters recursively, so there are as many estimates as there are datapoints, the summary table only presents the regression parameters estimated on the entire sample; except for small effects from initialization of the recursiions, these estimates are equivalent to OLS estimates." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "mod = sm.RecursiveLS(endog, exog)\n", + "res = mod.fit()\n", + "\n", + "print(res.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The recursive coefficients are available in the `recursive_coefficients` attribute. Alternatively, plots can generated using the `plot_recursive_coefficient` method." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(res.recursive_coefficients.filtered[0])\n", + "res.plot_recursive_coefficient(range(mod.k_exog), alpha=None, figsize=(10,6));" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The CUSUM statistic is available in the `cusum` attribute, but usually it is more convenient to visually check for parameter stability using the `plot_cusum` method. In the plot below, the CUSUM statistic does not move outside of the 5% significance bands, so we fail to reject the null hypothesis of stable parameters at the 5% level." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(res.cusum)\n", + "fig = res.plot_cusum();" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Another related statistic is the CUSUM of squares. It is available in the `cusum_squares` attribute, but it is similarly more convenient to check it visually, using the `plot_cusum_squares` method. In the plot below, the CUSUM of squares statistic does not move outside of the 5% significance bands, so we fail to reject the null hypothesis of stable parameters at the 5% level." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "res.plot_cusum_squares();" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Quantity theory of money\n", + "\n", + "The quantity theory of money suggests that \"a given change in the rate of change in the quantity of money induces ... an equal change in the rate of price inflation\" (Lucas, 1980). Following Lucas, we examine the relationship between double-sided exponentially weighted moving averages of money growth and CPI inflation. Although Lucas found the relationship between these variables to be stable, more recently it appears that the relationship is unstable; see e.g. Sargent and Surico (2010)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "start = '1959-12-01'\n", + "end = '2015-01-01'\n", + "m2 = DataReader('M2SL', 'fred', start=start, end=end)\n", + "cpi = DataReader('CPIAUCSL', 'fred', start=start, end=end)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "def ewma(series, beta, n_window):\n", + " nobs = len(series)\n", + " scalar = (1 - beta) / (1 + beta)\n", + " ma = []\n", + " k = np.arange(n_window, 0, -1)\n", + " weights = np.r_[beta**k, 1, beta**k[::-1]]\n", + " for t in range(n_window, nobs - n_window):\n", + " window = series.iloc[t - n_window:t + n_window+1].values\n", + " ma.append(scalar * np.sum(weights * window))\n", + " return pd.Series(ma, name=series.name, index=series.iloc[n_window:-n_window].index)\n", + "\n", + "m2_ewma = ewma(np.log(m2['M2SL'].resample('QS').mean()).diff().ix[1:], 0.95, 10*4)\n", + "cpi_ewma = ewma(np.log(cpi['CPIAUCSL'].resample('QS').mean()).diff().ix[1:], 0.95, 10*4)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "After constructing the moving averages using the $\\beta = 0.95$ filter of Lucas (with a window of 10 years on either side), we plot each of the series below. Although they appear to move together prior for part of the sample, after 1990 they appear to diverge." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig, ax = plt.subplots(figsize=(13,3))\n", + "\n", + "ax.plot(m2_ewma, label='M2 Growth (EWMA)')\n", + "ax.plot(cpi_ewma, label='CPI Inflation (EWMA)')\n", + "ax.legend();" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "endog = cpi_ewma\n", + "exog = sm.add_constant(m2_ewma)\n", + "exog.columns = ['const', 'M2']\n", + "\n", + "mod = sm.RecursiveLS(endog, exog)\n", + "res = mod.fit()\n", + "\n", + "print(res.summary())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "res.plot_recursive_coefficient(1, alpha=None);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The CUSUM plot now shows subtantial deviation at the 5% level, suggesting a rejection of the null hypothesis of parameter stability." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "res.plot_cusum();" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Similarly, the CUSUM of squares shows subtantial deviation at the 5% level, also suggesting a rejection of the null hypothesis of parameter stability." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "res.plot_cusum_squares();" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.5.1" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/examples/notebooks/regression_diagnostics.ipynb b/examples/notebooks/regression_diagnostics.ipynb new file mode 100644 index 0000000..7bed710 --- /dev/null +++ b/examples/notebooks/regression_diagnostics.ipynb @@ -0,0 +1,261 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Regression diagnostics" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This example file shows how to use a few of the ``statsmodels`` regression diagnostic tests in a real-life context. You can learn about more tests and find out more information abou the tests here on the [Regression Diagnostics page.](http://www.statsmodels.org/stable/diagnostic.html) \n", + "\n", + "Note that most of the tests described here only return a tuple of numbers, without any annotation. A full description of outputs is always included in the docstring and in the online ``statsmodels`` documentation. For presentation purposes, we use the ``zip(name,test)`` construct to pretty-print short descriptions in the examples below." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Estimate a regression model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "from __future__ import print_function\n", + "from statsmodels.compat import lzip\n", + "import statsmodels\n", + "import numpy as np\n", + "import pandas as pd\n", + "import statsmodels.formula.api as smf\n", + "import statsmodels.stats.api as sms\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# Load data\n", + "url = 'http://vincentarelbundock.github.io/Rdatasets/csv/HistData/Guerry.csv'\n", + "dat = pd.read_csv(url)\n", + "\n", + "# Fit regression model (using the natural log of one of the regressaors)\n", + "results = smf.ols('Lottery ~ Literacy + np.log(Pop1831)', data=dat).fit()\n", + "\n", + "# Inspect the results\n", + "print(results.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Normality of the residuals" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Jarque-Bera test:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "name = ['Jarque-Bera', 'Chi^2 two-tail prob.', 'Skew', 'Kurtosis']\n", + "test = sms.jarque_bera(results.resid)\n", + "lzip(name, test)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Omni test:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "name = ['Chi^2', 'Two-tail probability']\n", + "test = sms.omni_normtest(results.resid)\n", + "lzip(name, test)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Influence tests\n", + "\n", + "Once created, an object of class ``OLSInfluence`` holds attributes and methods that allow users to assess the influence of each observation. For example, we can compute and extract the first few rows of DFbetas by:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from statsmodels.stats.outliers_influence import OLSInfluence\n", + "test_class = OLSInfluence(results)\n", + "test_class.dfbetas[:5,:]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Explore other options by typing ``dir(influence_test)``\n", + "\n", + "Useful information on leverage can also be plotted:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from statsmodels.graphics.regressionplots import plot_leverage_resid2\n", + "fig, ax = plt.subplots(figsize=(8,6))\n", + "fig = plot_leverage_resid2(results, ax = ax)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Other plotting options can be found on the [Graphics page.](http://www.statsmodels.org/stable/graphics.html)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Multicollinearity\n", + "\n", + "Condition number:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "np.linalg.cond(results.model.exog)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Heteroskedasticity tests\n", + "\n", + "Breush-Pagan test:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "name = ['Lagrange multiplier statistic', 'p-value', \n", + " 'f-value', 'f p-value']\n", + "test = sms.het_breushpagan(results.resid, results.model.exog)\n", + "lzip(name, test)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Goldfeld-Quandt test" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "name = ['F statistic', 'p-value']\n", + "test = sms.het_goldfeldquandt(results.resid, results.model.exog)\n", + "lzip(name, test)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Linearity\n", + "\n", + "Harvey-Collier multiplier test for Null hypothesis that the linear specification is correct:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "name = ['t value', 'p value']\n", + "test = sms.linear_harvey_collier(results)\n", + "lzip(name, test)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3.0 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.3" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} \ No newline at end of file diff --git a/examples/notebooks/regression_plots.ipynb b/examples/notebooks/regression_plots.ipynb new file mode 100644 index 0000000..b32a41c --- /dev/null +++ b/examples/notebooks/regression_plots.ipynb @@ -0,0 +1,598 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Regression Plots" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "from __future__ import print_function\n", + "from statsmodels.compat import lzip\n", + "import numpy as np\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "import statsmodels.api as sm\n", + "from statsmodels.formula.api import ols" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Duncan's Prestige Dataset" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Load the Data" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can use a utility function to load any R dataset available from the great Rdatasets package." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "prestige = sm.datasets.get_rdataset(\"Duncan\", \"car\", cache=True).data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "prestige.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "prestige_model = ols(\"prestige ~ income + education\", data=prestige).fit()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(prestige_model.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Influence plots" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Influence plots show the (externally) studentized residuals vs. the leverage of each observation as measured by the hat matrix.\n", + "\n", + "Externally studentized residuals are residuals that are scaled by their standard deviation where \n", + "\n", + "$$var(\\hat{\\epsilon}_i)=\\hat{\\sigma}^2_i(1-h_{ii})$$\n", + "\n", + "with\n", + "\n", + "$$\\hat{\\sigma}^2_i=\\frac{1}{n - p - 1 \\;\\;}\\sum_{j}^{n}\\;\\;\\;\\forall \\;\\;\\; j \\neq i$$\n", + "\n", + "$n$ is the number of observations and $p$ is the number of regressors. $h_{ii}$ is the $i$-th diagonal element of the hat matrix\n", + "\n", + "$$H=X(X^{\\;\\prime}X)^{-1}X^{\\;\\prime}$$\n", + "\n", + "The influence of each point can be visualized by the criterion keyword argument. Options are Cook's distance and DFFITS, two measures of influence." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig, ax = plt.subplots(figsize=(12,8))\n", + "fig = sm.graphics.influence_plot(prestige_model, ax=ax, criterion=\"cooks\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As you can see there are a few worrisome observations. Both contractor and reporter have low leverage but a large residual.
    \n", + "RR.engineer has small residual and large leverage. Conductor and minister have both high leverage and large residuals, and,
    \n", + "therefore, large influence." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Partial Regression Plots" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Since we are doing multivariate regressions, we cannot just look at individual bivariate plots to discern relationships.
    \n", + "Instead, we want to look at the relationship of the dependent variable and independent variables conditional on the other
    \n", + "independent variables. We can do this through using partial regression plots, otherwise known as added variable plots.
    \n", + "\n", + "In a partial regression plot, to discern the relationship between the response variable and the $k$-th variabe, we compute
    \n", + "the residuals by regressing the response variable versus the independent variables excluding $X_k$. We can denote this by
    \n", + "$X_{\\sim k}$. We then compute the residuals by regressing $X_k$ on $X_{\\sim k}$. The partial regression plot is the plot
    \n", + "of the former versus the latter residuals.
    \n", + "\n", + "The notable points of this plot are that the fitted line has slope $\\beta_k$ and intercept zero. The residuals of this plot
    \n", + "are the same as those of the least squares fit of the original model with full $X$. You can discern the effects of the
    \n", + "individual data values on the estimation of a coefficient easily. If obs_labels is True, then these points are annotated
    \n", + "with their observation label. You can also see the violation of underlying assumptions such as homooskedasticity and
    \n", + "linearity." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig, ax = plt.subplots(figsize=(12,8))\n", + "fig = sm.graphics.plot_partregress(\"prestige\", \"income\", [\"income\", \"education\"], data=prestige, ax=ax)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fix, ax = plt.subplots(figsize=(12,14))\n", + "fig = sm.graphics.plot_partregress(\"prestige\", \"income\", [\"education\"], data=prestige, ax=ax)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As you can see the partial regression plot confirms the influence of conductor, minister, and RR.engineer on the partial relationship between income and prestige. The cases greatly decrease the effect of income on prestige. Dropping these cases confirms this." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "subset = ~prestige.index.isin([\"conductor\", \"RR.engineer\", \"minister\"])\n", + "prestige_model2 = ols(\"prestige ~ income + education\", data=prestige, subset=subset).fit()\n", + "print(prestige_model2.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For a quick check of all the regressors, you can use plot_partregress_grid. These plots will not label the
    \n", + "points, but you can use them to identify problems and then use plot_partregress to get more information." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig = plt.figure(figsize=(12,8))\n", + "fig = sm.graphics.plot_partregress_grid(prestige_model, fig=fig)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Component-Component plus Residual (CCPR) Plots" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The CCPR plot provides a way to judge the effect of one regressor on the
    \n", + "response variable by taking into account the effects of the other
    \n", + "independent variables. The partial residuals plot is defined as
    \n", + "$\\text{Residuals} + B_iX_i \\text{ }\\text{ }$ versus $X_i$. The component adds $B_iX_i$ versus
    \n", + "$X_i$ to show where the fitted line would lie. Care should be taken if $X_i$
    \n", + "is highly correlated with any of the other independent variables. If this
    \n", + "is the case, the variance evident in the plot will be an underestimate of
    \n", + "the true variance." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig, ax = plt.subplots(figsize=(12, 8))\n", + "fig = sm.graphics.plot_ccpr(prestige_model, \"education\", ax=ax)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As you can see the relationship between the variation in prestige explained by education conditional on income seems to be linear, though you can see there are some observations that are exerting considerable influence on the relationship. We can quickly look at more than one variable by using plot_ccpr_grid." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig = plt.figure(figsize=(12, 8))\n", + "fig = sm.graphics.plot_ccpr_grid(prestige_model, fig=fig)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Regression Plots" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The plot_regress_exog function is a convenience function that gives a 2x2 plot containing the dependent variable and fitted values with confidence intervals vs. the independent variable chosen, the residuals of the model vs. the chosen independent variable, a partial regression plot, and a CCPR plot. This function can be used for quickly checking modeling assumptions with respect to a single regressor." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig = plt.figure(figsize=(12,8))\n", + "fig = sm.graphics.plot_regress_exog(prestige_model, \"education\", fig=fig)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Fit Plot" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The plot_fit function plots the fitted values versus a chosen independent variable. It includes prediction confidence intervals and optionally plots the true dependent variable." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig, ax = plt.subplots(figsize=(12, 8))\n", + "fig = sm.graphics.plot_fit(prestige_model, \"education\", ax=ax)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Statewide Crime 2009 Dataset" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Compare the following to http://www.ats.ucla.edu/stat/stata/webbooks/reg/chapter4/statareg_self_assessment_answers4.htm\n", + "\n", + "Though the data here is not the same as in that example. You could run that example by uncommenting the necessary cells below." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "#dta = pd.read_csv(\"http://www.stat.ufl.edu/~aa/social/csv_files/statewide-crime-2.csv\")\n", + "#dta = dta.set_index(\"State\", inplace=True).dropna()\n", + "#dta.rename(columns={\"VR\" : \"crime\",\n", + "# \"MR\" : \"murder\",\n", + "# \"M\" : \"pctmetro\",\n", + "# \"W\" : \"pctwhite\",\n", + "# \"H\" : \"pcths\",\n", + "# \"P\" : \"poverty\",\n", + "# \"S\" : \"single\"\n", + "# }, inplace=True)\n", + "#\n", + "#crime_model = ols(\"murder ~ pctmetro + poverty + pcths + single\", data=dta).fit()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "dta = sm.datasets.statecrime.load_pandas().data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "crime_model = ols(\"murder ~ urban + poverty + hs_grad + single\", data=dta).fit()\n", + "print(crime_model.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Partial Regression Plots" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig = plt.figure(figsize=(12,8))\n", + "fig = sm.graphics.plot_partregress_grid(crime_model, fig=fig)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig, ax = plt.subplots(figsize=(12,8))\n", + "fig = sm.graphics.plot_partregress(\"murder\", \"hs_grad\", [\"urban\", \"poverty\", \"single\"], ax=ax, data=dta)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Leverage-Resid2 Plot" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Closely related to the influence_plot is the leverage-resid2 plot." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig, ax = plt.subplots(figsize=(8,6))\n", + "fig = sm.graphics.plot_leverage_resid2(crime_model, ax=ax)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Influence Plot" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig, ax = plt.subplots(figsize=(8,6))\n", + "fig = sm.graphics.influence_plot(crime_model, ax=ax)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Using robust regression to correct for outliers." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Part of the problem here in recreating the Stata results is that M-estimators are not robust to leverage points. MM-estimators should do better with this examples." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from statsmodels.formula.api import rlm" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "rob_crime_model = rlm(\"murder ~ urban + poverty + hs_grad + single\", data=dta, \n", + " M=sm.robust.norms.TukeyBiweight(3)).fit(conv=\"weights\")\n", + "print(rob_crime_model.summary())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "#rob_crime_model = rlm(\"murder ~ pctmetro + poverty + pcths + single\", data=dta, M=sm.robust.norms.TukeyBiweight()).fit(conv=\"weights\")\n", + "#print(rob_crime_model.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "There isn't yet an influence diagnostics method as part of RLM, but we can recreate them. (This depends on the status of [issue #888](https://github.com/statsmodels/statsmodels/issues/808))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "weights = rob_crime_model.weights\n", + "idx = weights > 0\n", + "X = rob_crime_model.model.exog[idx.values]\n", + "ww = weights[idx] / weights[idx].mean()\n", + "hat_matrix_diag = ww*(X*np.linalg.pinv(X).T).sum(1)\n", + "resid = rob_crime_model.resid\n", + "resid2 = resid**2\n", + "resid2 /= resid2.sum()\n", + "nobs = int(idx.sum())\n", + "hm = hat_matrix_diag.mean()\n", + "rm = resid2.mean()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from statsmodels.graphics import utils\n", + "fig, ax = plt.subplots(figsize=(12,8))\n", + "ax.plot(resid2[idx], hat_matrix_diag, 'o')\n", + "ax = utils.annotate_axes(range(nobs), labels=rob_crime_model.model.data.row_labels[idx], \n", + " points=lzip(resid2[idx], hat_matrix_diag), offset_points=[(-5,5)]*nobs,\n", + " size=\"large\", ax=ax)\n", + "ax.set_xlabel(\"resid2\")\n", + "ax.set_ylabel(\"leverage\")\n", + "ylim = ax.get_ylim()\n", + "ax.vlines(rm, *ylim)\n", + "xlim = ax.get_xlim()\n", + "ax.hlines(hm, *xlim)\n", + "ax.margins(0,0)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.3" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/examples/notebooks/robust_models_0.ipynb b/examples/notebooks/robust_models_0.ipynb new file mode 100644 index 0000000..baa157a --- /dev/null +++ b/examples/notebooks/robust_models_0.ipynb @@ -0,0 +1,303 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Robust Linear Models" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "from __future__ import print_function\n", + "import numpy as np\n", + "import statsmodels.api as sm\n", + "import matplotlib.pyplot as plt\n", + "from statsmodels.sandbox.regression.predstd import wls_prediction_std" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Estimation\n", + "\n", + "Load data:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "data = sm.datasets.stackloss.load()\n", + "data.exog = sm.add_constant(data.exog)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Huber's T norm with the (default) median absolute deviation scaling" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "huber_t = sm.RLM(data.endog, data.exog, M=sm.robust.norms.HuberT())\n", + "hub_results = huber_t.fit()\n", + "print(hub_results.params)\n", + "print(hub_results.bse)\n", + "print(hub_results.summary(yname='y',\n", + " xname=['var_%d' % i for i in range(len(hub_results.params))]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Huber's T norm with 'H2' covariance matrix" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "hub_results2 = huber_t.fit(cov=\"H2\")\n", + "print(hub_results2.params)\n", + "print(hub_results2.bse)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Andrew's Wave norm with Huber's Proposal 2 scaling and 'H3' covariance matrix" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "andrew_mod = sm.RLM(data.endog, data.exog, M=sm.robust.norms.AndrewWave())\n", + "andrew_results = andrew_mod.fit(scale_est=sm.robust.scale.HuberScale(), cov=\"H3\")\n", + "print('Parameters: ', andrew_results.params)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "See ``help(sm.RLM.fit)`` for more options and ``module sm.robust.scale`` for scale options\n", + "\n", + "## Comparing OLS and RLM\n", + "\n", + "Artificial data with outliers:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "nsample = 50\n", + "x1 = np.linspace(0, 20, nsample)\n", + "X = np.column_stack((x1, (x1-5)**2))\n", + "X = sm.add_constant(X)\n", + "sig = 0.3 # smaller error variance makes OLS<->RLM contrast bigger\n", + "beta = [5, 0.5, -0.0]\n", + "y_true2 = np.dot(X, beta)\n", + "y2 = y_true2 + sig*1. * np.random.normal(size=nsample)\n", + "y2[[39,41,43,45,48]] -= 5 # add some outliers (10% of nsample)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Example 1: quadratic function with linear truth\n", + "\n", + "Note that the quadratic term in OLS regression will capture outlier effects. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "res = sm.OLS(y2, X).fit()\n", + "print(res.params)\n", + "print(res.bse)\n", + "print(res.predict())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Estimate RLM:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "resrlm = sm.RLM(y2, X).fit()\n", + "print(resrlm.params)\n", + "print(resrlm.bse)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Draw a plot to compare OLS estimates to the robust estimates:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig = plt.figure(figsize=(12,8))\n", + "ax = fig.add_subplot(111)\n", + "ax.plot(x1, y2, 'o',label=\"data\")\n", + "ax.plot(x1, y_true2, 'b-', label=\"True\")\n", + "prstd, iv_l, iv_u = wls_prediction_std(res)\n", + "ax.plot(x1, res.fittedvalues, 'r-', label=\"OLS\")\n", + "ax.plot(x1, iv_u, 'r--')\n", + "ax.plot(x1, iv_l, 'r--')\n", + "ax.plot(x1, resrlm.fittedvalues, 'g.-', label=\"RLM\")\n", + "ax.legend(loc=\"best\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Example 2: linear function with linear truth\n", + "\n", + "Fit a new OLS model using only the linear term and the constant:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "X2 = X[:,[0,1]] \n", + "res2 = sm.OLS(y2, X2).fit()\n", + "print(res2.params)\n", + "print(res2.bse)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Estimate RLM:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "resrlm2 = sm.RLM(y2, X2).fit()\n", + "print(resrlm2.params)\n", + "print(resrlm2.bse)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Draw a plot to compare OLS estimates to the robust estimates:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "prstd, iv_l, iv_u = wls_prediction_std(res2)\n", + "\n", + "fig, ax = plt.subplots(figsize=(8,6))\n", + "ax.plot(x1, y2, 'o', label=\"data\")\n", + "ax.plot(x1, y_true2, 'b-', label=\"True\")\n", + "ax.plot(x1, res2.fittedvalues, 'r-', label=\"OLS\")\n", + "ax.plot(x1, iv_u, 'r--')\n", + "ax.plot(x1, iv_l, 'r--')\n", + "ax.plot(x1, resrlm2.fittedvalues, 'g.-', label=\"RLM\")\n", + "legend = ax.legend(loc=\"best\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.3" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/examples/notebooks/robust_models_1.ipynb b/examples/notebooks/robust_models_1.ipynb new file mode 100644 index 0000000..6945973 --- /dev/null +++ b/examples/notebooks/robust_models_1.ipynb @@ -0,0 +1,1095 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# M-Estimators for Robust Linear Modeling" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "from __future__ import print_function\n", + "from statsmodels.compat import lmap\n", + "import numpy as np\n", + "from scipy import stats\n", + "import matplotlib.pyplot as plt\n", + "\n", + "import statsmodels.api as sm" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* An M-estimator minimizes the function \n", + "\n", + "$$Q(e_i, \\rho) = \\sum_i~\\rho \\left (\\frac{e_i}{s}\\right )$$\n", + "\n", + "where $\\rho$ is a symmetric function of the residuals \n", + "\n", + "* The effect of $\\rho$ is to reduce the influence of outliers\n", + "* $s$ is an estimate of scale. \n", + "* The robust estimates $\\hat{\\beta}$ are computed by the iteratively re-weighted least squares algorithm" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* We have several choices available for the weighting functions to be used" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "norms = sm.robust.norms" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "def plot_weights(support, weights_func, xlabels, xticks):\n", + " fig = plt.figure(figsize=(12,8))\n", + " ax = fig.add_subplot(111)\n", + " ax.plot(support, weights_func(support))\n", + " ax.set_xticks(xticks)\n", + " ax.set_xticklabels(xlabels, fontsize=16)\n", + " ax.set_ylim(-.1, 1.1)\n", + " return ax" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Andrew's Wave" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "help(norms.AndrewWave.weights)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "a = 1.339\n", + "support = np.linspace(-np.pi*a, np.pi*a, 100)\n", + "andrew = norms.AndrewWave(a=a)\n", + "plot_weights(support, andrew.weights, ['$-\\pi*a$', '0', '$\\pi*a$'], [-np.pi*a, 0, np.pi*a]);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Hampel's 17A" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "help(norms.Hampel.weights)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "c = 8\n", + "support = np.linspace(-3*c, 3*c, 1000)\n", + "hampel = norms.Hampel(a=2., b=4., c=c)\n", + "plot_weights(support, hampel.weights, ['3*c', '0', '3*c'], [-3*c, 0, 3*c]);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Huber's t" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "help(norms.HuberT.weights)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "t = 1.345\n", + "support = np.linspace(-3*t, 3*t, 1000)\n", + "huber = norms.HuberT(t=t)\n", + "plot_weights(support, huber.weights, ['-3*t', '0', '3*t'], [-3*t, 0, 3*t]);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Least Squares" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "help(norms.LeastSquares.weights)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "support = np.linspace(-3, 3, 1000)\n", + "lst_sq = norms.LeastSquares()\n", + "plot_weights(support, lst_sq.weights, ['-3', '0', '3'], [-3, 0, 3]);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Ramsay's Ea" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "help(norms.RamsayE.weights)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "a = .3\n", + "support = np.linspace(-3*a, 3*a, 1000)\n", + "ramsay = norms.RamsayE(a=a)\n", + "plot_weights(support, ramsay.weights, ['-3*a', '0', '3*a'], [-3*a, 0, 3*a]);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Trimmed Mean" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "help(norms.TrimmedMean.weights)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "c = 2\n", + "support = np.linspace(-3*c, 3*c, 1000)\n", + "trimmed = norms.TrimmedMean(c=c)\n", + "plot_weights(support, trimmed.weights, ['-3*c', '0', '3*c'], [-3*c, 0, 3*c]);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Tukey's Biweight" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "help(norms.TukeyBiweight.weights)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "c = 4.685\n", + "support = np.linspace(-3*c, 3*c, 1000)\n", + "tukey = norms.TukeyBiweight(c=c)\n", + "plot_weights(support, tukey.weights, ['-3*c', '0', '3*c'], [-3*c, 0, 3*c]);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Scale Estimators" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* Robust estimates of the location" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "x = np.array([1, 2, 3, 4, 500])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* The mean is not a robust estimator of location" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "x.mean()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* The median, on the other hand, is a robust estimator with a breakdown point of 50%" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "np.median(x)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* Analagously for the scale\n", + "* The standard deviation is not robust" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "x.std()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Median Absolute Deviation\n", + "\n", + "$$ median_i |X_i - median_j(X_j)|) $$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Standardized Median Absolute Deviation is a consistent estimator for $\\hat{\\sigma}$\n", + "\n", + "$$\\hat{\\sigma}=K \\cdot MAD$$\n", + "\n", + "where $K$ depends on the distribution. For the normal distribution for example,\n", + "\n", + "$$K = \\Phi^{-1}(.75)$$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "stats.norm.ppf(.75)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(x)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "sm.robust.scale.stand_mad(x)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "np.array([1,2,3,4,5.]).std()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* The default for Robust Linear Models is MAD\n", + "* another popular choice is Huber's proposal 2" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "np.random.seed(12345)\n", + "fat_tails = stats.t(6).rvs(40)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "kde = sm.nonparametric.KDEUnivariate(fat_tails)\n", + "kde.fit()\n", + "fig = plt.figure(figsize=(12,8))\n", + "ax = fig.add_subplot(111)\n", + "ax.plot(kde.support, kde.density);" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(fat_tails.mean(), fat_tails.std())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(stats.norm.fit(fat_tails))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(stats.t.fit(fat_tails, f0=6))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "huber = sm.robust.scale.Huber()\n", + "loc, scale = huber(fat_tails)\n", + "print(loc, scale)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "sm.robust.stand_mad(fat_tails)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "sm.robust.stand_mad(fat_tails, c=stats.t(6).ppf(.75))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "sm.robust.scale.mad(fat_tails)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Duncan's Occupational Prestige data - M-estimation for outliers" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from statsmodels.graphics.api import abline_plot\n", + "from statsmodels.formula.api import ols, rlm" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "prestige = sm.datasets.get_rdataset(\"Duncan\", \"car\", cache=True).data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(prestige.head(10))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig = plt.figure(figsize=(12,12))\n", + "ax1 = fig.add_subplot(211, xlabel='Income', ylabel='Prestige')\n", + "ax1.scatter(prestige.income, prestige.prestige)\n", + "xy_outlier = prestige.ix['minister'][['income','prestige']]\n", + "ax1.annotate('Minister', xy_outlier, xy_outlier+1, fontsize=16)\n", + "ax2 = fig.add_subplot(212, xlabel='Education',\n", + " ylabel='Prestige')\n", + "ax2.scatter(prestige.education, prestige.prestige);" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "ols_model = ols('prestige ~ income + education', prestige).fit()\n", + "print(ols_model.summary())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "infl = ols_model.get_influence()\n", + "student = infl.summary_frame()['student_resid']\n", + "print(student)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(student.ix[np.abs(student) > 2])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(infl.summary_frame().ix['minister'])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "sidak = ols_model.outlier_test('sidak')\n", + "sidak.sort('unadj_p', inplace=True)\n", + "print(sidak)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fdr = ols_model.outlier_test('fdr_bh')\n", + "fdr.sort('unadj_p', inplace=True)\n", + "print(fdr)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "rlm_model = rlm('prestige ~ income + education', prestige).fit()\n", + "print(rlm_model.summary())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(rlm_model.weights)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Hertzprung Russell data for Star Cluster CYG 0B1 - Leverage Points" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* Data is on the luminosity and temperature of 47 stars in the direction of Cygnus." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "dta = sm.datasets.get_rdataset(\"starsCYG\", \"robustbase\", cache=True).data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from matplotlib.patches import Ellipse\n", + "fig = plt.figure(figsize=(12,8))\n", + "ax = fig.add_subplot(111, xlabel='log(Temp)', ylabel='log(Light)', title='Hertzsprung-Russell Diagram of Star Cluster CYG OB1')\n", + "ax.scatter(*dta.values.T)\n", + "# highlight outliers\n", + "e = Ellipse((3.5, 6), .2, 1, alpha=.25, color='r')\n", + "ax.add_patch(e);\n", + "ax.annotate('Red giants', xy=(3.6, 6), xytext=(3.8, 6),\n", + " arrowprops=dict(facecolor='black', shrink=0.05, width=2),\n", + " horizontalalignment='left', verticalalignment='bottom',\n", + " clip_on=True, # clip to the axes bounding box\n", + " fontsize=16,\n", + " )\n", + "# annotate these with their index\n", + "for i,row in dta.ix[dta['log.Te'] < 3.8].iterrows():\n", + " ax.annotate(i, row, row + .01, fontsize=14)\n", + "xlim, ylim = ax.get_xlim(), ax.get_ylim()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from IPython.display import Image\n", + "Image(filename='star_diagram.png')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "y = dta['log.light']\n", + "X = sm.add_constant(dta['log.Te'], prepend=True)\n", + "ols_model = sm.OLS(y, X).fit()\n", + "abline_plot(model_results=ols_model, ax=ax)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "rlm_mod = sm.RLM(y, X, sm.robust.norms.TrimmedMean(.5)).fit()\n", + "abline_plot(model_results=rlm_mod, ax=ax, color='red')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* Why? Because M-estimators are not robust to leverage points." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "infl = ols_model.get_influence()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "h_bar = 2*(ols_model.df_model + 1 )/ols_model.nobs\n", + "hat_diag = infl.summary_frame()['hat_diag']\n", + "hat_diag.ix[hat_diag > h_bar]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "sidak2 = ols_model.outlier_test('sidak')\n", + "sidak2.sort('unadj_p', inplace=True)\n", + "print(sidak2)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fdr2 = ols_model.outlier_test('fdr_bh')\n", + "fdr2.sort('unadj_p', inplace=True)\n", + "print(fdr2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* Let's delete that line" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "del ax.lines[-1]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "weights = np.ones(len(X))\n", + "weights[X[X['log.Te'] < 3.8].index.values - 1] = 0\n", + "wls_model = sm.WLS(y, X, weights=weights).fit()\n", + "abline_plot(model_results=wls_model, ax=ax, color='green')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* MM estimators are good for this type of problem, unfortunately, we don't yet have these yet. \n", + "* It's being worked on, but it gives a good excuse to look at the R cell magics in the notebook." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "yy = y.values[:,None]\n", + "xx = X['log.Te'].values[:,None]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%load_ext rpy2.ipython\n", + "\n", + "%R library(robustbase)\n", + "%Rpush yy xx\n", + "%R mod <- lmrob(yy ~ xx);\n", + "%R params <- mod$coefficients;\n", + "%Rpull params" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%R print(mod)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(params)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "abline_plot(intercept=params[0], slope=params[1], ax=ax, color='green')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Exercise: Breakdown points of M-estimator" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "np.random.seed(12345)\n", + "nobs = 200\n", + "beta_true = np.array([3, 1, 2.5, 3, -4])\n", + "X = np.random.uniform(-20,20, size=(nobs, len(beta_true)-1))\n", + "# stack a constant in front\n", + "X = sm.add_constant(X, prepend=True) # np.c_[np.ones(nobs), X]\n", + "mc_iter = 500\n", + "contaminate = .25 # percentage of response variables to contaminate" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "all_betas = []\n", + "for i in range(mc_iter):\n", + " y = np.dot(X, beta_true) + np.random.normal(size=200)\n", + " random_idx = np.random.randint(0, nobs, size=int(contaminate * nobs))\n", + " y[random_idx] = np.random.uniform(-750, 750)\n", + " beta_hat = sm.RLM(y, X).fit().params\n", + " all_betas.append(beta_hat)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "all_betas = np.asarray(all_betas)\n", + "se_loss = lambda x : np.linalg.norm(x, ord=2)**2\n", + "se_beta = lmap(se_loss, all_betas - beta_true)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Squared error loss" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "np.array(se_beta).mean()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "all_betas.mean(0)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "beta_true" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "se_loss(all_betas.mean(0) - beta_true)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.3" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/examples/notebooks/star_diagram.png b/examples/notebooks/star_diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..33f28fe8f29b3677d431758cae8a458fe4488c5b GIT binary patch literal 175558 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Ⓢ1TvNy?P_&o=_92MS>ec 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

    GM@X#>s6U+(J@lc`mf*OL*@3(rHn` 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 literal 0 HcmV?d00001 diff --git a/examples/notebooks/statespace_arma_0.ipynb b/examples/notebooks/statespace_arma_0.ipynb new file mode 100644 index 0000000..aee0246 --- /dev/null +++ b/examples/notebooks/statespace_arma_0.ipynb @@ -0,0 +1,357 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Autoregressive Moving Average (ARMA): Sunspots data" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This notebook replicates the existing ARMA notebook using the `statsmodels.tsa.statespace.SARIMAX` class rather than the `statsmodels.tsa.ARMA` class." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from __future__ import print_function\n", + "import numpy as np\n", + "from scipy import stats\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "\n", + "import statsmodels.api as sm" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from statsmodels.graphics.api import qqplot" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Sunpots Data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(sm.datasets.sunspots.NOTE)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "dta = sm.datasets.sunspots.load_pandas().data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "dta.index = pd.Index(sm.tsa.datetools.dates_from_range('1700', '2008'))\n", + "del dta[\"YEAR\"]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "dta.plot(figsize=(12,4));" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig = plt.figure(figsize=(12,8))\n", + "ax1 = fig.add_subplot(211)\n", + "fig = sm.graphics.tsa.plot_acf(dta.values.squeeze(), lags=40, ax=ax1)\n", + "ax2 = fig.add_subplot(212)\n", + "fig = sm.graphics.tsa.plot_pacf(dta, lags=40, ax=ax2)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arma_mod20 = sm.tsa.statespace.SARIMAX(dta, order=(2,0,0), trend='c').fit()\n", + "print(arma_mod20.params)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arma_mod30 = sm.tsa.statespace.SARIMAX(dta, order=(3,0,0), trend='c').fit()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(arma_mod20.aic, arma_mod20.bic, arma_mod20.hqic)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(arma_mod30.params)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(arma_mod30.aic, arma_mod30.bic, arma_mod30.hqic)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* Does our model obey the theory?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "sm.stats.durbin_watson(arma_mod30.resid)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig = plt.figure(figsize=(12,4))\n", + "ax = fig.add_subplot(111)\n", + "ax = plt.plot(arma_mod30.resid)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "resid = arma_mod30.resid" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "stats.normaltest(resid)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig = plt.figure(figsize=(12,4))\n", + "ax = fig.add_subplot(111)\n", + "fig = qqplot(resid, line='q', ax=ax, fit=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig = plt.figure(figsize=(12,8))\n", + "ax1 = fig.add_subplot(211)\n", + "fig = sm.graphics.tsa.plot_acf(resid, lags=40, ax=ax1)\n", + "ax2 = fig.add_subplot(212)\n", + "fig = sm.graphics.tsa.plot_pacf(resid, lags=40, ax=ax2)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "r,q,p = sm.tsa.acf(resid, qstat=True)\n", + "data = np.c_[range(1,41), r[1:], q, p]\n", + "table = pd.DataFrame(data, columns=['lag', \"AC\", \"Q\", \"Prob(>Q)\"])\n", + "print(table.set_index('lag'))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* This indicates a lack of fit." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* In-sample dynamic prediction. How good does our model do?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "predict_sunspots = arma_mod30.predict(start='1990', end='2012', dynamic=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig, ax = plt.subplots(figsize=(12, 8))\n", + "dta.ix['1950':].plot(ax=ax)\n", + "predict_sunspots.plot(ax=ax, style='r');" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "def mean_forecast_err(y, yhat):\n", + " return y.sub(yhat).mean()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "mean_forecast_err(dta.SUNACTIVITY, predict_sunspots)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.3" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/examples/notebooks/statespace_cycles.ipynb b/examples/notebooks/statespace_cycles.ipynb new file mode 100644 index 0000000..ba16461 --- /dev/null +++ b/examples/notebooks/statespace_cycles.ipynb @@ -0,0 +1,209 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Trends and cycles in unemployment\n", + "\n", + "Here we consider three methods for separating a trend and cycle in economic data. Supposing we have a time series $y_t$, the basic idea is to decompose it into these two components:\n", + "\n", + "$$\n", + "y_t = \\mu_t + \\eta_t\n", + "$$\n", + "\n", + "where $\\mu_t$ represents the trend or level and $\\eta_t$ represents the cyclical component. In this case, we consider a *stochastic* trend, so that $\\mu_t$ is a random variable and not a deterministic function of time. Two of methods fall under the heading of \"unobserved components\" models, and the third is the popular Hodrick-Prescott (HP) filter. Consistent with e.g. Harvey and Jaeger (1993), we find that these models all produce similar decompositions.\n", + "\n", + "This notebook demonstrates applying these models to separate trend from cycle in the U.S. unemployment rate." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "%matplotlib inline" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "import statsmodels.api as sm\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "try:\n", + " from pandas_datareader.data import DataReader\n", + "except ImportError:\n", + " from pandas.io.data import DataReader\n", + "endog = DataReader('UNRATE', 'fred', start='1954-01-01')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Hodrick-Prescott (HP) filter\n", + "\n", + "The first method is the Hodrick-Prescott filter, which can be applied to a data series in a very straightforward method. Here we specify the parameter $\\lambda=129600$ because the unemployment rate is observed monthly." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "hp_cycle, hp_trend = sm.tsa.filters.hpfilter(endog, lamb=129600)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Unobserved components and ARIMA model (UC-ARIMA)\n", + "\n", + "The next method is an unobserved components model, where the trend is modeled as a random walk and the cycle is modeled with an ARIMA model - in particular, here we use an AR(4) model. The process for the time series can be written as:\n", + "\n", + "$$\n", + "\\begin{align}\n", + "y_t & = \\mu_t + \\eta_t \\\\\n", + "\\mu_{t+1} & = \\mu_t + \\epsilon_{t+1} \\\\\n", + "\\phi(L) \\eta_t & = \\nu_t\n", + "\\end{align}\n", + "$$\n", + "\n", + "where $\\phi(L)$ is the AR(4) lag polynomial and $\\epsilon_t$ and $\\nu_t$ are white noise." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "mod_ucarima = sm.tsa.UnobservedComponents(endog, 'rwalk', autoregressive=4)\n", + "# Here the powell method is used, since it achieves a\n", + "# higher loglikelihood than the default L-BFGS method\n", + "res_ucarima = mod_ucarima.fit(method='powell')\n", + "print(res_ucarima.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Unobserved components with stochastic cycle (UC)\n", + "\n", + "The final method is also an unobserved components model, but where the cycle is modeled explicitly.\n", + "\n", + "$$\n", + "\\begin{align}\n", + "y_t & = \\mu_t + \\eta_t \\\\\n", + "\\mu_{t+1} & = \\mu_t + \\epsilon_{t+1} \\\\\n", + "\\eta_{t+1} & = \\eta_t \\cos \\lambda_\\eta + \\eta_t^* \\sin \\lambda_\\eta + \\tilde \\omega_t \\qquad & \\tilde \\omega_t \\sim N(0, \\sigma_{\\tilde \\omega}^2) \\\\\n", + "\\eta_{t+1}^* & = -\\eta_t \\sin \\lambda_\\eta + \\eta_t^* \\cos \\lambda_\\eta + \\tilde \\omega_t^* & \\tilde \\omega_t^* \\sim N(0, \\sigma_{\\tilde \\omega}^2)\n", + "\\end{align}\n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "mod_uc = sm.tsa.UnobservedComponents(\n", + " endog, 'rwalk',\n", + " cycle=True, stochastic_cycle=True, damped_cycle=True,\n", + ")\n", + "# Here the powell method gets close to the optimum\n", + "res_uc = mod_uc.fit(method='powell')\n", + "# but to get to the highest loglikelihood we do a\n", + "# second round using the L-BFGS method.\n", + "res_uc = mod_uc.fit(res_uc.params)\n", + "print(res_uc.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Graphical comparison\n", + "\n", + "The output of each of these models is an estimate of the trend component $\\mu_t$ and an estimate of the cyclical component $\\eta_t$. Qualitatively the estimates of trend and cycle are very similar, although the trend component from the HP filter is somewhat more variable than those from the unobserved components models. This means that relatively mode of the movement in the unemployment rate is attributed to changes in the underlying trend rather than to temporary cyclical movements." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig, axes = plt.subplots(2, figsize=(13,5));\n", + "axes[0].set(title='Level/trend component')\n", + "axes[0].plot(endog.index, res_uc.level.smoothed, label='UC')\n", + "axes[0].plot(endog.index, res_ucarima.level.smoothed, label='UC-ARIMA(2,0)')\n", + "axes[0].plot(hp_trend, label='HP Filter')\n", + "axes[0].legend(loc='upper left')\n", + "axes[0].grid()\n", + "\n", + "axes[1].set(title='Cycle component')\n", + "axes[1].plot(endog.index, res_uc.cycle.smoothed, label='UC')\n", + "axes[1].plot(endog.index, res_ucarima.autoregressive.smoothed, label='UC-ARIMA(2,0)')\n", + "axes[1].plot(hp_cycle, label='HP Filter')\n", + "axes[1].legend(loc='upper left')\n", + "axes[1].grid()\n", + "\n", + "fig.tight_layout();" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.3" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/examples/notebooks/statespace_dfm_coincident.ipynb b/examples/notebooks/statespace_dfm_coincident.ipynb new file mode 100644 index 0000000..95572d6 --- /dev/null +++ b/examples/notebooks/statespace_dfm_coincident.ipynb @@ -0,0 +1,895 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "# Dynamic factors and coincident indices\n", + "\n", + "Factor models generally try to find a small number of unobserved \"factors\" that influence a subtantial portion of the variation in a larger number of observed variables, and they are related to dimension-reduction techniques such as principal components analysis. Dynamic factor models explicitly model the transition dynamics of the unobserved factors, and so are often applied to time-series data.\n", + "\n", + "Macroeconomic coincident indices are designed to capture the common component of the \"business cycle\"; such a component is assumed to simultaneously affect many macroeconomic variables. Although the estimation and use of coincident indices (for example the [Index of Coincident Economic Indicators](http://www.newyorkfed.org/research/regional_economy/coincident_summary.html)) pre-dates dynamic factor models, in several influential papers Stock and Watson (1989, 1991) used a dynamic factor model to provide a theoretical foundation for them.\n", + "\n", + "Below, we follow the treatment found in Kim and Nelson (1999), of the Stock and Watson (1991) model, to formulate a dynamic factor model, estimate its parameters via maximum likelihood, and create a coincident index." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Macroeconomic data\n", + "\n", + "The coincident index is created by considering the comovements in four macroeconomic variables (versions of thse variables are available on [FRED](https://research.stlouisfed.org/fred2/); the ID of the series used below is given in parentheses):\n", + "\n", + "- Industrial production (IPMAN)\n", + "- Real aggregate income (excluding transfer payments) (W875RX1)\n", + "- Manufacturing and trade sales (CMRMTSPL)\n", + "- Employees on non-farm payrolls (PAYEMS)\n", + "\n", + "In all cases, the data is at the monthly frequency and has been seasonally adjusted; the time-frame considered is 1972 - 2005." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "import numpy as np\n", + "import pandas as pd\n", + "import statsmodels.api as sm\n", + "import matplotlib.pyplot as plt\n", + "\n", + "np.set_printoptions(precision=4, suppress=True, linewidth=120)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from pandas.io.data import DataReader\n", + "\n", + "# Get the datasets from FRED\n", + "start = '1979-01-01'\n", + "end = '2014-12-01'\n", + "indprod = DataReader('IPMAN', 'fred', start=start, end=end)\n", + "income = DataReader('W875RX1', 'fred', start=start, end=end)\n", + "sales = DataReader('CMRMTSPL', 'fred', start=start, end=end)\n", + "emp = DataReader('PAYEMS', 'fred', start=start, end=end)\n", + "# dta = pd.concat((indprod, income, sales, emp), axis=1)\n", + "# dta.columns = ['indprod', 'income', 'sales', 'emp']" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Note**: in a recent update on FRED (8/12/15) the time series CMRMTSPL was truncated to begin in 1997; this is probably a mistake due to the fact that CMRMTSPL is a spliced series, so the earlier period is from the series HMRMT and the latter period is defined by CMRMT.\n", + "\n", + "This has since (02/11/16) been corrected, however the series could also be constructed by hand from HMRMT and CMRMT, as shown below (process taken from the notes in the Alfred xls file)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# HMRMT = DataReader('HMRMT', 'fred', start='1967-01-01', end=end)\n", + "# CMRMT = DataReader('CMRMT', 'fred', start='1997-01-01', end=end)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# HMRMT_growth = HMRMT.diff() / HMRMT.shift()\n", + "# sales = pd.Series(np.zeros(emp.shape[0]), index=emp.index)\n", + "\n", + "# # Fill in the recent entries (1997 onwards)\n", + "# sales[CMRMT.index] = CMRMT\n", + "\n", + "# # Backfill the previous entries (pre 1997)\n", + "# idx = sales.ix[:'1997-01-01'].index\n", + "# for t in range(len(idx)-1, 0, -1):\n", + "# month = idx[t]\n", + "# prev_month = idx[t-1]\n", + "# sales.ix[prev_month] = sales.ix[month] / (1 + HMRMT_growth.ix[prev_month].values)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "dta = pd.concat((indprod, income, sales, emp), axis=1)\n", + "dta.columns = ['indprod', 'income', 'sales', 'emp']" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "dta.ix[:, 'indprod':'emp'].plot(subplots=True, layout=(2, 2), figsize=(15, 6));" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Stock and Watson (1991) report that for their datasets, they could not reject the null hypothesis of a unit root in each series (so the series are integrated), but they did not find strong evidence that the series were co-integrated.\n", + "\n", + "As a result, they suggest estimating the model using the first differences (of the logs) of the variables, demeaned and standardized." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Create log-differenced series\n", + "dta['dln_indprod'] = (np.log(dta.indprod)).diff() * 100\n", + "dta['dln_income'] = (np.log(dta.income)).diff() * 100\n", + "dta['dln_sales'] = (np.log(dta.sales)).diff() * 100\n", + "dta['dln_emp'] = (np.log(dta.emp)).diff() * 100\n", + "\n", + "# De-mean and standardize\n", + "dta['std_indprod'] = (dta['dln_indprod'] - dta['dln_indprod'].mean()) / dta['dln_indprod'].std()\n", + "dta['std_income'] = (dta['dln_income'] - dta['dln_income'].mean()) / dta['dln_income'].std()\n", + "dta['std_sales'] = (dta['dln_sales'] - dta['dln_sales'].mean()) / dta['dln_sales'].std()\n", + "dta['std_emp'] = (dta['dln_emp'] - dta['dln_emp'].mean()) / dta['dln_emp'].std()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Dynamic factors\n", + "\n", + "A general dynamic factor model is written as:\n", + "\n", + "$$\n", + "\\begin{align}\n", + "y_t & = \\Lambda f_t + B x_t + u_t \\\\\n", + "f_t & = A_1 f_{t-1} + \\dots + A_p f_{t-p} + \\eta_t \\qquad \\eta_t \\sim N(0, I)\\\\\n", + "u_t & = C_1 u_{t-1} + \\dots + C_1 f_{t-q} + \\varepsilon_t \\qquad \\varepsilon_t \\sim N(0, \\Sigma)\n", + "\\end{align}\n", + "$$\n", + "\n", + "where $y_t$ are observed data, $f_t$ are the unobserved factors (evolving as a vector autoregression), $x_t$ are (optional) exogenous variables, and $u_t$ is the error, or \"idiosyncratic\", process ($u_t$ is also optionally allowed to be autocorrelated). The $\\Lambda$ matrix is often referred to as the matrix of \"factor loadings\". The variance of the factor error term is set to the identity matrix to ensure identification of the unobserved factors.\n", + "\n", + "This model can be cast into state space form, and the unobserved factor estimated via the Kalman filter. The likelihood can be evaluated as a byproduct of the filtering recursions, and maximum likelihood estimation used to estimate the parameters." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Model specification\n", + "\n", + "The specific dynamic factor model in this application has 1 unobserved factor which is assumed to follow an AR(2) proces. The innovations $\\varepsilon_t$ are assumed to be independent (so that $\\Sigma$ is a diagonal matrix) and the error term associated with each equation, $u_{i,t}$ is assumed to follow an independent AR(2) process.\n", + "\n", + "Thus the specification considered here is:\n", + "\n", + "$$\n", + "\\begin{align}\n", + "y_{i,t} & = \\lambda_i f_t + u_{i,t} \\\\\n", + "u_{i,t} & = c_{i,1} u_{1,t-1} + c_{i,2} u_{i,t-2} + \\varepsilon_{i,t} \\qquad & \\varepsilon_{i,t} \\sim N(0, \\sigma_i^2) \\\\\n", + "f_t & = a_1 f_{t-1} + a_2 f_{t-2} + \\eta_t \\qquad & \\eta_t \\sim N(0, I)\\\\\n", + "\\end{align}\n", + "$$\n", + "\n", + "where $i$ is one of: `[indprod, income, sales, emp ]`.\n", + "\n", + "This model can be formulated using the `DynamicFactor` model built-in to Statsmodels. In particular, we have the following specification:\n", + "\n", + "- `k_factors = 1` - (there is 1 unobserved factor)\n", + "- `factor_order = 2` - (it follows an AR(2) process)\n", + "- `error_var = False` - (the errors evolve as independent AR processes rather than jointly as a VAR - note that this is the default option, so it is not specified below)\n", + "- `error_order = 2` - (the errors are autocorrelated of order 2: i.e. AR(2) processes)\n", + "- `error_cov_type = 'diagonal'` - (the innovations are uncorrelated; this is again the default)\n", + "\n", + "Once the model is created, the parameters can be estimated via maximum likelihood; this is done using the `fit()` method.\n", + "\n", + "**Note**: recall that we have de-meaned and standardized the data; this will be important in interpreting the results that follow.\n", + "\n", + "**Aside**: in their empirical example, Kim and Nelson (1999) actually consider a slightly different model in which the employment variable is allowed to also depend on lagged values of the factor - this model does not fit into the built-in `DynamicFactor` class, but can be accomodated by using a subclass to implement the required new parameters and restrictions - see Appendix A, below." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Parameter estimation\n", + "\n", + "Multivariate models can have a relatively large number of parameters, and it may be difficult to escape from local minima to find the maximized likelihood. In an attempt to mitigate this problem, I perform an initial maximization step (from the model-defined starting paramters) using the modified Powell method available in Scipy (see the minimize documentation for more information). The resulting parameters are then used as starting parameters in the standard LBFGS optimization method." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Get the endogenous data\n", + "endog = dta.ix['1979-02-01':, 'std_indprod':'std_emp']\n", + "\n", + "# Create the model\n", + "mod = sm.tsa.DynamicFactor(endog, k_factors=1, factor_order=2, error_order=2)\n", + "initial_res = mod.fit(method='powell', disp=False)\n", + "res = mod.fit(initial_res.params)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Estimates\n", + "\n", + "Once the model has been estimated, there are two components that we can use for analysis or inference:\n", + "\n", + "- The estimated parameters\n", + "- The estimated factor" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Parameters\n", + "\n", + "The estimated parameters can be helpful in understanding the implications of the model, although in models with a larger number of observed variables and / or unobserved factors they can be difficult to interpret.\n", + "\n", + "One reason for this difficulty is due to identification issues between the factor loadings and the unobserved factors. One easy-to-see identification issue is the sign of the loadings and the factors: an equivalent model to the one displayed below would result from reversing the signs of all factor loadings and the unobserved factor.\n", + "\n", + "Here, one of the easy-to-interpret implications in this model is the persistence of the unobserved factor: we find that exhibits substantial persistence." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(res.summary(separate_params=False))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Estimated factors\n", + "\n", + "While it can be useful to plot the unobserved factors, it is less useful here than one might think for two reasons:\n", + "\n", + "1. The sign-related identification issue described above.\n", + "2. Since the data was differenced, the estimated factor explains the variation in the differenced data, not the original data.\n", + "\n", + "It is for these reasons that the coincident index is created (see below).\n", + "\n", + "With these reservations, the unobserved factor is plotted below, along with the NBER indicators for US recessions. It appears that the factor is successful at picking up some degree of business cycle activity." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig, ax = plt.subplots(figsize=(13,3))\n", + "\n", + "# Plot the factor\n", + "dates = endog.index._mpl_repr()\n", + "ax.plot(dates, res.factors.filtered[0], label='Factor')\n", + "ax.legend()\n", + "\n", + "# Retrieve and also plot the NBER recession indicators\n", + "rec = DataReader('USREC', 'fred', start=start, end=end)\n", + "ylim = ax.get_ylim()\n", + "ax.fill_between(dates[:-3], ylim[0], ylim[1], rec.values[:,0], facecolor='k', alpha=0.1);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Post-estimation\n", + "\n", + "Although here we will be able to interpret the results of the model by constructing the coincident index, there is a useful and generic approach for getting a sense for what is being captured by the estimated factor. By taking the estimated factors as given, regressing them (and a constant) each (one at a time) on each of the observed variables, and recording the coefficients of determination ($R^2$ values), we can get a sense of the variables for which each factor explains a substantial portion of the variance and the variables for which it does not.\n", + "\n", + "In models with more variables and more factors, this can sometimes lend interpretation to the factors (for example sometimes one factor will load primarily on real variables and another on nominal variables).\n", + "\n", + "In this model, with only four endogenous variables and one factor, it is easy to digest a simple table of the $R^2$ values, but in larger models it is not. For this reason, a bar plot is often employed; from the plot we can easily see that the factor explains most of the variation in industrial production index and a large portion of the variation in sales and employment, it is less helpful in explaining income." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "res.plot_coefficients_of_determination(figsize=(8,2));" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Coincident Index\n", + "\n", + "As described above, the goal of this model was to create an interpretable series which could be used to understand the current status of the macroeconomy. This is what the coincident index is designed to do. It is constructed below. For readers interested in an explanation of the construction, see Kim and Nelson (1999) or Stock and Watson (1991).\n", + "\n", + "In essense, what is done is to reconstruct the mean of the (differenced) factor. We will compare it to the coincident index on published by the Federal Reserve Bank of Philadelphia (USPHCI on FRED)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "usphci = DataReader('USPHCI', 'fred', start='1979-01-01', end='2014-12-01')['USPHCI']\n", + "usphci.plot(figsize=(13,3));" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "dusphci = usphci.diff()[1:].values\n", + "def compute_coincident_index(mod, res):\n", + " # Estimate W(1)\n", + " spec = res.specification\n", + " design = mod.ssm['design']\n", + " transition = mod.ssm['transition']\n", + " ss_kalman_gain = res.filter_results.kalman_gain[:,:,-1]\n", + " k_states = ss_kalman_gain.shape[0]\n", + "\n", + " W1 = np.linalg.inv(np.eye(k_states) - np.dot(\n", + " np.eye(k_states) - np.dot(ss_kalman_gain, design),\n", + " transition\n", + " )).dot(ss_kalman_gain)[0]\n", + "\n", + " # Compute the factor mean vector\n", + " factor_mean = np.dot(W1, dta.ix['1972-02-01':, 'dln_indprod':'dln_emp'].mean())\n", + " \n", + " # Normalize the factors\n", + " factor = res.factors.filtered[0]\n", + " factor *= np.std(usphci.diff()[1:]) / np.std(factor)\n", + "\n", + " # Compute the coincident index\n", + " coincident_index = np.zeros(mod.nobs+1)\n", + " # The initial value is arbitrary; here it is set to\n", + " # facilitate comparison\n", + " coincident_index[0] = usphci.iloc[0] * factor_mean / dusphci.mean()\n", + " for t in range(0, mod.nobs):\n", + " coincident_index[t+1] = coincident_index[t] + factor[t] + factor_mean\n", + " \n", + " # Attach dates\n", + " coincident_index = pd.Series(coincident_index, index=dta.index).iloc[1:]\n", + " \n", + " # Normalize to use the same base year as USPHCI\n", + " coincident_index *= (usphci.ix['1992-07-01'] / coincident_index.ix['1992-07-01'])\n", + " \n", + " return coincident_index" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Below we plot the calculated coincident index along with the US recessions and the comparison coincident index USPHCI." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig, ax = plt.subplots(figsize=(13,3))\n", + "\n", + "# Compute the index\n", + "coincident_index = compute_coincident_index(mod, res)\n", + "\n", + "# Plot the factor\n", + "dates = endog.index._mpl_repr()\n", + "ax.plot(dates, coincident_index, label='Coincident index')\n", + "ax.plot(usphci.index._mpl_repr(), usphci, label='USPHCI')\n", + "ax.legend(loc='lower right')\n", + "\n", + "# Retrieve and also plot the NBER recession indicators\n", + "ylim = ax.get_ylim()\n", + "ax.fill_between(dates[:-3], ylim[0], ylim[1], rec.values[:,0], facecolor='k', alpha=0.1);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Appendix 1: Extending the dynamic factor model\n", + "\n", + "Recall that the previous specification was described by:\n", + "\n", + "$$\n", + "\\begin{align}\n", + "y_{i,t} & = \\lambda_i f_t + u_{i,t} \\\\\n", + "u_{i,t} & = c_{i,1} u_{1,t-1} + c_{i,2} u_{i,t-2} + \\varepsilon_{i,t} \\qquad & \\varepsilon_{i,t} \\sim N(0, \\sigma_i^2) \\\\\n", + "f_t & = a_1 f_{t-1} + a_2 f_{t-2} + \\eta_t \\qquad & \\eta_t \\sim N(0, I)\\\\\n", + "\\end{align}\n", + "$$\n", + "\n", + "Written in state space form, the previous specification of the model had the following observation equation:\n", + "\n", + "$$\n", + "\\begin{bmatrix}\n", + "y_{\\text{indprod}, t} \\\\\n", + "y_{\\text{income}, t} \\\\\n", + "y_{\\text{sales}, t} \\\\\n", + "y_{\\text{emp}, t} \\\\\n", + "\\end{bmatrix} = \\begin{bmatrix}\n", + "\\lambda_\\text{indprod} & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n", + "\\lambda_\\text{income} & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n", + "\\lambda_\\text{sales} & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\\\\n", + "\\lambda_\\text{emp} & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 \\\\\n", + "\\end{bmatrix}\n", + "\\begin{bmatrix}\n", + "f_t \\\\\n", + "f_{t-1} \\\\\n", + "u_{\\text{indprod}, t} \\\\\n", + "u_{\\text{income}, t} \\\\\n", + "u_{\\text{sales}, t} \\\\\n", + "u_{\\text{emp}, t} \\\\\n", + "u_{\\text{indprod}, t-1} \\\\\n", + "u_{\\text{income}, t-1} \\\\\n", + "u_{\\text{sales}, t-1} \\\\\n", + "u_{\\text{emp}, t-1} \\\\\n", + "\\end{bmatrix}\n", + "$$\n", + "\n", + "and transition equation:\n", + "\n", + "$$\n", + "\\begin{bmatrix}\n", + "f_t \\\\\n", + "f_{t-1} \\\\\n", + "u_{\\text{indprod}, t} \\\\\n", + "u_{\\text{income}, t} \\\\\n", + "u_{\\text{sales}, t} \\\\\n", + "u_{\\text{emp}, t} \\\\\n", + "u_{\\text{indprod}, t-1} \\\\\n", + "u_{\\text{income}, t-1} \\\\\n", + "u_{\\text{sales}, t-1} \\\\\n", + "u_{\\text{emp}, t-1} \\\\\n", + "\\end{bmatrix} = \\begin{bmatrix}\n", + "a_1 & a_2 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n", + "1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n", + "0 & 0 & c_{\\text{indprod}, 1} & 0 & 0 & 0 & c_{\\text{indprod}, 2} & 0 & 0 & 0 \\\\\n", + "0 & 0 & 0 & c_{\\text{income}, 1} & 0 & 0 & 0 & c_{\\text{income}, 2} & 0 & 0 \\\\\n", + "0 & 0 & 0 & 0 & c_{\\text{sales}, 1} & 0 & 0 & 0 & c_{\\text{sales}, 2} & 0 \\\\\n", + "0 & 0 & 0 & 0 & 0 & c_{\\text{emp}, 1} & 0 & 0 & 0 & c_{\\text{emp}, 2} \\\\\n", + "0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n", + "0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n", + "0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\\\\n", + "0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 \\\\\n", + "\\end{bmatrix} \n", + "\\begin{bmatrix}\n", + "f_{t-1} \\\\\n", + "f_{t-2} \\\\\n", + "u_{\\text{indprod}, t-1} \\\\\n", + "u_{\\text{income}, t-1} \\\\\n", + "u_{\\text{sales}, t-1} \\\\\n", + "u_{\\text{emp}, t-1} \\\\\n", + "u_{\\text{indprod}, t-2} \\\\\n", + "u_{\\text{income}, t-2} \\\\\n", + "u_{\\text{sales}, t-2} \\\\\n", + "u_{\\text{emp}, t-2} \\\\\n", + "\\end{bmatrix}\n", + "+ R \\begin{bmatrix}\n", + "\\eta_t \\\\\n", + "\\varepsilon_{t}\n", + "\\end{bmatrix}\n", + "$$\n", + "\n", + "the `DynamicFactor` model handles setting up the state space representation and, in the `DynamicFactor.update` method, it fills in the fitted parameter values into the appropriate locations." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The extended specification is the same as in the previous example, except that we also want to allow employment to depend on lagged values of the factor. This creates a change to the $y_{\\text{emp},t}$ equation. Now we have:\n", + "\n", + "$$\n", + "\\begin{align}\n", + "y_{i,t} & = \\lambda_i f_t + u_{i,t} \\qquad & i \\in \\{\\text{indprod}, \\text{income}, \\text{sales} \\}\\\\\n", + "y_{i,t} & = \\lambda_{i,0} f_t + \\lambda_{i,1} f_{t-1} + \\lambda_{i,2} f_{t-2} + \\lambda_{i,2} f_{t-3} + u_{i,t} \\qquad & i = \\text{emp} \\\\\n", + "u_{i,t} & = c_{i,1} u_{i,t-1} + c_{i,2} u_{i,t-2} + \\varepsilon_{i,t} \\qquad & \\varepsilon_{i,t} \\sim N(0, \\sigma_i^2) \\\\\n", + "f_t & = a_1 f_{t-1} + a_2 f_{t-2} + \\eta_t \\qquad & \\eta_t \\sim N(0, I)\\\\\n", + "\\end{align}\n", + "$$\n", + "\n", + "Now, the corresponding observation equation should look like the following:\n", + "\n", + "$$\n", + "\\begin{bmatrix}\n", + "y_{\\text{indprod}, t} \\\\\n", + "y_{\\text{income}, t} \\\\\n", + "y_{\\text{sales}, t} \\\\\n", + "y_{\\text{emp}, t} \\\\\n", + "\\end{bmatrix} = \\begin{bmatrix}\n", + "\\lambda_\\text{indprod} & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n", + "\\lambda_\\text{income} & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n", + "\\lambda_\\text{sales} & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\\\\n", + "\\lambda_\\text{emp,1} & \\lambda_\\text{emp,2} & \\lambda_\\text{emp,3} & \\lambda_\\text{emp,4} & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 \\\\\n", + "\\end{bmatrix}\n", + "\\begin{bmatrix}\n", + "f_t \\\\\n", + "f_{t-1} \\\\\n", + "f_{t-2} \\\\\n", + "f_{t-3} \\\\\n", + "u_{\\text{indprod}, t} \\\\\n", + "u_{\\text{income}, t} \\\\\n", + "u_{\\text{sales}, t} \\\\\n", + "u_{\\text{emp}, t} \\\\\n", + "u_{\\text{indprod}, t-1} \\\\\n", + "u_{\\text{income}, t-1} \\\\\n", + "u_{\\text{sales}, t-1} \\\\\n", + "u_{\\text{emp}, t-1} \\\\\n", + "\\end{bmatrix}\n", + "$$\n", + "\n", + "Notice that we have introduced two new state variables, $f_{t-2}$ and $f_{t-3}$, which means we need to update the transition equation:\n", + "\n", + "$$\n", + "\\begin{bmatrix}\n", + "f_t \\\\\n", + "f_{t-1} \\\\\n", + "f_{t-2} \\\\\n", + "f_{t-3} \\\\\n", + "u_{\\text{indprod}, t} \\\\\n", + "u_{\\text{income}, t} \\\\\n", + "u_{\\text{sales}, t} \\\\\n", + "u_{\\text{emp}, t} \\\\\n", + "u_{\\text{indprod}, t-1} \\\\\n", + "u_{\\text{income}, t-1} \\\\\n", + "u_{\\text{sales}, t-1} \\\\\n", + "u_{\\text{emp}, t-1} \\\\\n", + "\\end{bmatrix} = \\begin{bmatrix}\n", + "a_1 & a_2 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n", + "1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n", + "0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n", + "0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n", + "0 & 0 & 0 & 0 & c_{\\text{indprod}, 1} & 0 & 0 & 0 & c_{\\text{indprod}, 2} & 0 & 0 & 0 \\\\\n", + "0 & 0 & 0 & 0 & 0 & c_{\\text{income}, 1} & 0 & 0 & 0 & c_{\\text{income}, 2} & 0 & 0 \\\\\n", + "0 & 0 & 0 & 0 & 0 & 0 & c_{\\text{sales}, 1} & 0 & 0 & 0 & c_{\\text{sales}, 2} & 0 \\\\\n", + "0 & 0 & 0 & 0 & 0 & 0 & 0 & c_{\\text{emp}, 1} & 0 & 0 & 0 & c_{\\text{emp}, 2} \\\\\n", + "0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n", + "0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n", + "0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\\\\n", + "0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 \\\\\n", + "\\end{bmatrix} \n", + "\\begin{bmatrix}\n", + "f_{t-1} \\\\\n", + "f_{t-2} \\\\\n", + "f_{t-3} \\\\\n", + "f_{t-4} \\\\\n", + "u_{\\text{indprod}, t-1} \\\\\n", + "u_{\\text{income}, t-1} \\\\\n", + "u_{\\text{sales}, t-1} \\\\\n", + "u_{\\text{emp}, t-1} \\\\\n", + "u_{\\text{indprod}, t-2} \\\\\n", + "u_{\\text{income}, t-2} \\\\\n", + "u_{\\text{sales}, t-2} \\\\\n", + "u_{\\text{emp}, t-2} \\\\\n", + "\\end{bmatrix}\n", + "+ R \\begin{bmatrix}\n", + "\\eta_t \\\\\n", + "\\varepsilon_{t}\n", + "\\end{bmatrix}\n", + "$$\n", + "\n", + "This model cannot be handled out-of-the-box by the `DynamicFactor` class, but it can be handled by creating a subclass when alters the state space representation in the appropriate way." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First, notice that if we had set `factor_order = 4`, we would almost have what we wanted. In that case, the last line of the observation equation would be:\n", + "\n", + "$$\n", + "\\begin{bmatrix}\n", + "\\vdots \\\\\n", + "y_{\\text{emp}, t} \\\\\n", + "\\end{bmatrix} = \\begin{bmatrix}\n", + "\\vdots & & & & & & & & & & & \\vdots \\\\\n", + "\\lambda_\\text{emp,1} & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 \\\\\n", + "\\end{bmatrix}\n", + "\\begin{bmatrix}\n", + "f_t \\\\\n", + "f_{t-1} \\\\\n", + "f_{t-2} \\\\\n", + "f_{t-3} \\\\\n", + "\\vdots\n", + "\\end{bmatrix}\n", + "$$\n", + "\n", + "\n", + "and the first line of the transition equation would be:\n", + "\n", + "$$\n", + "\\begin{bmatrix}\n", + "f_t \\\\\n", + "\\vdots\n", + "\\end{bmatrix} = \\begin{bmatrix}\n", + "a_1 & a_2 & a_3 & a_4 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n", + "\\vdots & & & & & & & & & & & \\vdots \\\\\n", + "\\end{bmatrix} \n", + "\\begin{bmatrix}\n", + "f_{t-1} \\\\\n", + "f_{t-2} \\\\\n", + "f_{t-3} \\\\\n", + "f_{t-4} \\\\\n", + "\\vdots\n", + "\\end{bmatrix}\n", + "+ R \\begin{bmatrix}\n", + "\\eta_t \\\\\n", + "\\varepsilon_{t}\n", + "\\end{bmatrix}\n", + "$$\n", + "\n", + "Relative to what we want, we have the following differences:\n", + "\n", + "1. In the above situation, the $\\lambda_{\\text{emp}, j}$ are forced to be zero for $j > 0$, and we want them to be estimated as parameters.\n", + "2. We only want the factor to transition according to an AR(2), but under the above situation it is an AR(4).\n", + "\n", + "Our strategy will be to subclass `DynamicFactor`, and let it do most of the work (setting up the state space representation, etc.) where it assumes that `factor_order = 4`. The only things we will actually do in the subclass will be to fix those two issues.\n", + "\n", + "First, here is the full code of the subclass; it is discussed below. It is important to note at the outset that none of the methods defined below could have been omitted. In fact, the methods `__init__`, `start_params`, `param_names`, `transform_params`, `untransform_params`, and `update` form the core of all state space models in Statsmodels, not just the `DynamicFactor` class." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from statsmodels.tsa.statespace import tools\n", + "class ExtendedDFM(sm.tsa.DynamicFactor):\n", + " def __init__(self, endog, **kwargs):\n", + " # Setup the model as if we had a factor order of 4\n", + " super(ExtendedDFM, self).__init__(\n", + " endog, k_factors=1, factor_order=4, error_order=2,\n", + " **kwargs)\n", + "\n", + " # Note: `self.parameters` is an ordered dict with the\n", + " # keys corresponding to parameter types, and the values\n", + " # the number of parameters of that type.\n", + " # Add the new parameters\n", + " self.parameters['new_loadings'] = 3\n", + "\n", + " # Cache a slice for the location of the 4 factor AR\n", + " # parameters (a_1, ..., a_4) in the full parameter vector\n", + " offset = (self.parameters['factor_loadings'] +\n", + " self.parameters['exog'] +\n", + " self.parameters['error_cov'])\n", + " self._params_factor_ar = np.s_[offset:offset+2]\n", + " self._params_factor_zero = np.s_[offset+2:offset+4]\n", + "\n", + " @property\n", + " def start_params(self):\n", + " # Add three new loading parameters to the end of the parameter\n", + " # vector, initialized to zeros (for simplicity; they could\n", + " # be initialized any way you like)\n", + " return np.r_[super(ExtendedDFM, self).start_params, 0, 0, 0]\n", + " \n", + " @property\n", + " def param_names(self):\n", + " # Add the corresponding names for the new loading parameters\n", + " # (the name can be anything you like)\n", + " return super(ExtendedDFM, self).param_names + [\n", + " 'loading.L%d.f1.%s' % (i, self.endog_names[3]) for i in range(1,4)]\n", + "\n", + " def transform_params(self, unconstrained):\n", + " # Perform the typical DFM transformation (w/o the new parameters)\n", + " constrained = super(ExtendedDFM, self).transform_params(\n", + " unconstrained[:-3])\n", + "\n", + " # Redo the factor AR constraint, since we only want an AR(2),\n", + " # and the previous constraint was for an AR(4)\n", + " ar_params = unconstrained[self._params_factor_ar]\n", + " constrained[self._params_factor_ar] = (\n", + " tools.constrain_stationary_univariate(ar_params))\n", + "\n", + " # Return all the parameters\n", + " return np.r_[constrained, unconstrained[-3:]]\n", + "\n", + " def untransform_params(self, constrained):\n", + " # Perform the typical DFM untransformation (w/o the new parameters)\n", + " unconstrained = super(ExtendedDFM, self).untransform_params(\n", + " constrained[:-3])\n", + "\n", + " # Redo the factor AR unconstraint, since we only want an AR(2),\n", + " # and the previous unconstraint was for an AR(4)\n", + " ar_params = constrained[self._params_factor_ar]\n", + " unconstrained[self._params_factor_ar] = (\n", + " tools.unconstrain_stationary_univariate(ar_params))\n", + "\n", + " # Return all the parameters\n", + " return np.r_[unconstrained, constrained[-3:]]\n", + "\n", + " def update(self, params, transformed=True, complex_step=False):\n", + " # Peform the transformation, if required\n", + " if not transformed:\n", + " params = self.transform_params(params)\n", + " params[self._params_factor_zero] = 0\n", + " \n", + " # Now perform the usual DFM update, but exclude our new parameters\n", + " super(ExtendedDFM, self).update(params[:-3], transformed=True, complex_step=complex_step)\n", + "\n", + " # Finally, set our new parameters in the design matrix\n", + " self.ssm['design', 3, 1:4] = params[-3:]\n", + " " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "So what did we just do?\n", + "\n", + "#### `__init__`\n", + "\n", + "The important step here was specifying the base dynamic factor model which we were operating with. In particular, as described above, we initialize with `factor_order=4`, even though we will only end up with an AR(2) model for the factor. We also performed some general setup-related tasks.\n", + "\n", + "#### `start_params`\n", + "\n", + "`start_params` are used as initial values in the optimizer. Since we are adding three new parameters, we need to pass those in. If we hadn't done this, the optimizer would use the default starting values, which would be three elements short.\n", + "\n", + "#### `param_names`\n", + "\n", + "`param_names` are used in a variety of places, but especially in the results class. Below we get a full result summary, which is only possible when all the parameters have associated names.\n", + "\n", + "#### `transform_params` and `untransform_params`\n", + "\n", + "The optimizer selects possibly parameter values in an unconstrained way. That's not usually desired (since variances can't be negative, for example), and `transform_params` is used to transform the unconstrained values used by the optimizer to constrained values appropriate to the model. Variances terms are typically squared (to force them to be positive), and AR lag coefficients are often constrained to lead to a stationary model. `untransform_params` is used for the reverse operation (and is important because starting parameters are usually specified in terms of values appropriate to the model, and we need to convert them to parameters appropriate to the optimizer before we can begin the optimization routine).\n", + "\n", + "Even though we don't need to transform or untransform our new parameters (the loadings can in theory take on any values), we still need to modify this function for two reasons:\n", + "\n", + "1. The version in the `DynamicFactor` class is expecting 3 fewer parameters than we have now. At a minimum, we need to handle the three new parameters.\n", + "2. The version in the `DynamicFactor` class constrains the factor lag coefficients to be stationary as though it was an AR(4) model. Since we actually have an AR(2) model, we need to re-do the constraint. We also set the last two autoregressive coefficients to be zero here.\n", + "\n", + "#### `update`\n", + "\n", + "The most important reason we need to specify a new `update` method is because we have three new parameters that we need to place into the state space formulation. In particular we let the parent `DynamicFactor.update` class handle placing all the parameters except the three new ones in to the state space representation, and then we put the last three in manually." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Create the model\n", + "extended_mod = ExtendedDFM(endog)\n", + "initial_extended_res = extended_mod.fit(maxiter=1000, disp=False)\n", + "extended_res = extended_mod.fit(initial_extended_res.params, method='nm', maxiter=1000)\n", + "print(extended_res.summary(separate_params=False))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Although this model increases the likelihood, it is not preferred by the AIC and BIC mesaures which penalize the additional three parameters.\n", + "\n", + "Furthermore, the qualitative results are unchanged, as we can see from the updated $R^2$ chart and the new coincident index, both of which are practically identical to the previous results." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "extended_res.plot_coefficients_of_determination(figsize=(8,2));" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig, ax = plt.subplots(figsize=(13,3))\n", + "\n", + "# Compute the index\n", + "extended_coincident_index = compute_coincident_index(extended_mod, extended_res)\n", + "\n", + "# Plot the factor\n", + "dates = endog.index._mpl_repr()\n", + "ax.plot(dates, coincident_index, '-', linewidth=1, label='Basic model')\n", + "ax.plot(dates, extended_coincident_index, '--', linewidth=3, label='Extended model')\n", + "ax.plot(usphci.index._mpl_repr(), usphci, label='USPHCI')\n", + "ax.legend(loc='lower right')\n", + "ax.set(title='Coincident indices, comparison')\n", + "\n", + "# Retrieve and also plot the NBER recession indicators\n", + "ylim = ax.get_ylim()\n", + "ax.fill_between(dates[:-3], ylim[0], ylim[1], rec.values[:,0], facecolor='k', alpha=0.1);" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.3" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/examples/notebooks/statespace_local_linear_trend.ipynb b/examples/notebooks/statespace_local_linear_trend.ipynb new file mode 100644 index 0000000..f431513 --- /dev/null +++ b/examples/notebooks/statespace_local_linear_trend.ipynb @@ -0,0 +1,279 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# State space modeling: Local Linear Trends" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This notebook describes how to extend the Statsmodels statespace classes to create and estimate a custom model. Here we develop a local linear trend model.\n", + "\n", + "The Local Linear Trend model has the form (see Durbin and Koopman 2012, Chapter 3.2 for all notation and details):\n", + "\n", + "$$\n", + "\\begin{align}\n", + "y_t & = \\mu_t + \\varepsilon_t \\qquad & \\varepsilon_t \\sim\n", + " N(0, \\sigma_\\varepsilon^2) \\\\\n", + "\\mu_{t+1} & = \\mu_t + \\nu_t + \\xi_t & \\xi_t \\sim N(0, \\sigma_\\xi^2) \\\\\n", + "\\nu_{t+1} & = \\nu_t + \\zeta_t & \\zeta_t \\sim N(0, \\sigma_\\zeta^2)\n", + "\\end{align}\n", + "$$\n", + "\n", + "It is easy to see that this can be cast into state space form as:\n", + "\n", + "$$\n", + "\\begin{align}\n", + "y_t & = \\begin{pmatrix} 1 & 0 \\end{pmatrix} \\begin{pmatrix} \\mu_t \\\\ \\nu_t \\end{pmatrix} + \\varepsilon_t \\\\\n", + "\\begin{pmatrix} \\mu_{t+1} \\\\ \\nu_{t+1} \\end{pmatrix} & = \\begin{bmatrix} 1 & 1 \\\\ 0 & 1 \\end{bmatrix} \\begin{pmatrix} \\mu_t \\\\ \\nu_t \\end{pmatrix} + \\begin{pmatrix} \\xi_t \\\\ \\zeta_t \\end{pmatrix}\n", + "\\end{align}\n", + "$$\n", + "\n", + "Notice that much of the state space representation is composed of known values; in fact the only parts in which parameters to be estimated appear are in the variance / covariance matrices:\n", + "\n", + "$$\n", + "\\begin{align}\n", + "H_t & = \\begin{bmatrix} \\sigma_\\varepsilon^2 \\end{bmatrix} \\\\\n", + "Q_t & = \\begin{bmatrix} \\sigma_\\xi^2 & 0 \\\\ 0 & \\sigma_\\zeta^2 \\end{bmatrix}\n", + "\\end{align}\n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "import numpy as np\n", + "import pandas as pd\n", + "from scipy.stats import norm\n", + "import statsmodels.api as sm\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To take advantage of the existing infrastructure, including Kalman filtering and maximum likelihood estimation, we create a new class which extends from `statsmodels.tsa.statespace.MLEModel`. There are a number of things that must be specified:\n", + "\n", + "1. **k_states**, **k_posdef**: These two parameters must be provided to the base classes in initialization. The inform the statespace model about the size of, respectively, the state vector, above $\\begin{pmatrix} \\mu_t & \\nu_t \\end{pmatrix}'$, and the state error vector, above $\\begin{pmatrix} \\xi_t & \\zeta_t \\end{pmatrix}'$. Note that the dimension of the endogenous vector does not have to be specified, since it can be inferred from the `endog` array.\n", + "2. **update**: The method `update`, with argument `params`, must be specified (it is used when `fit()` is called to calculate the MLE). It takes the parameters and fills them into the appropriate state space matrices. For example, below, the `params` vector contains variance parameters $\\begin{pmatrix} \\sigma_\\varepsilon^2 & \\sigma_\\xi^2 & \\sigma_\\zeta^2\\end{pmatrix}$, and the `update` method must place them in the observation and state covariance matrices. More generally, the parameter vector might be mapped into many different places in all of the statespace matrices.\n", + "3. **statespace matrices**: by default, all state space matrices (`obs_intercept, design, obs_cov, state_intercept, transition, selection, state_cov`) are set to zeros. Values that are fixed (like the ones in the design and transition matrices here) can be set in initialization, whereas values that vary with the parameters should be set in the `update` method. Note that it is easy to forget to set the selection matrix, which is often just the identity matrix (as it is here), but not setting it will lead to a very different model (one where there is not a stochastic component to the transition equation).\n", + "4. **start params**: start parameters must be set, even if it is just a vector of zeros, although often good start parameters can be found from the data. Maximum likelihood estimation by gradient methods (as employed here) can be sensitive to the starting parameters, so it is important to select good ones if possible. Here it does not matter too much (although as variances, they should't be set zero).\n", + "5. **initialization**: in addition to defined state space matrices, all state space models must be initialized with the mean and variance for the initial distribution of the state vector. If the distribution is known, `initialize_known(initial_state, initial_state_cov)` can be called, or if the model is stationary (e.g. an ARMA model), `initialize_stationary` can be used. Otherwise, `initialize_approximate_diffuse` is a reasonable generic initialization (exact diffuse initialization is not yet available). Since the local linear trend model is not stationary (it is composed of random walks) and since the distribution is not generally known, we use `initialize_approximate_diffuse` below.\n", + "\n", + "The above are the minimum necessary for a successful model. There are also a number of things that do not have to be set, but which may be helpful or important for some applications:\n", + "\n", + "1. **transform / untransform**: when `fit` is called, the optimizer in the background will use gradient methods to select the parameters that maximize the likelihood function. By default it uses unbounded optimization, which means that it may select any parameter value. In many cases, that is not the desired behavior; variances, for example, cannot be negative. To get around this, the `transform` method takes the unconstrained vector of parameters provided by the optimizer and returns a constrained vector of parameters used in likelihood evaluation. `untransform` provides the reverse operation.\n", + "2. **param_names**: this internal method can be used to set names for the estimated parameters so that e.g. the summary provides meaningful names. If not present, parameters are named `param0`, `param1`, etc." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "\"\"\"\n", + "Univariate Local Linear Trend Model\n", + "\"\"\"\n", + "class LocalLinearTrend(sm.tsa.statespace.MLEModel):\n", + " def __init__(self, endog):\n", + " # Model order\n", + " k_states = k_posdef = 2\n", + "\n", + " # Initialize the statespace\n", + " super(LocalLinearTrend, self).__init__(\n", + " endog, k_states=k_states, k_posdef=k_posdef,\n", + " initialization='approximate_diffuse',\n", + " loglikelihood_burn=k_states\n", + " )\n", + "\n", + " # Initialize the matrices\n", + " self.ssm['design'] = np.array([1, 0])\n", + " self.ssm['transition'] = np.array([[1, 1],\n", + " [0, 1]])\n", + " self.ssm['selection'] = np.eye(k_states)\n", + "\n", + " # Cache some indices\n", + " self._state_cov_idx = ('state_cov',) + np.diag_indices(k_posdef)\n", + "\n", + " @property\n", + " def param_names(self):\n", + " return ['sigma2.measurement', 'sigma2.level', 'sigma2.trend']\n", + "\n", + " @property\n", + " def start_params(self):\n", + " return [np.std(self.endog)]*3\n", + "\n", + " def transform_params(self, unconstrained):\n", + " return unconstrained**2\n", + "\n", + " def untransform_params(self, constrained):\n", + " return constrained**0.5\n", + "\n", + " def update(self, params, *args, **kwargs):\n", + " params = super(LocalLinearTrend, self).update(params, *args, **kwargs)\n", + " \n", + " # Observation covariance\n", + " self.ssm['obs_cov',0,0] = params[0]\n", + "\n", + " # State covariance\n", + " self.ssm[self._state_cov_idx] = params[1:]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Using this simple model, we can estimate the parameters from a local linear trend model. The following example is from Commandeur and Koopman (2007), section 3.4., modeling motor vehicle fatalities in Finland." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import requests\n", + "from io import BytesIO\n", + "from zipfile import ZipFile\n", + " \n", + "# Download the dataset\n", + "ck = requests.get('http://staff.feweb.vu.nl/koopman/projects/ckbook/OxCodeAll.zip').content\n", + "zipped = ZipFile(BytesIO(ck))\n", + "df = pd.read_table(\n", + " BytesIO(zipped.read('OxCodeIntroStateSpaceBook/Chapter_2/NorwayFinland.txt')),\n", + " skiprows=1, header=None, sep='\\s+', engine='python',\n", + " names=['date','nf', 'ff']\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Since we defined the local linear trend model as extending from `MLEModel`, the `fit()` method is immediately available, just as in other Statsmodels maximum likelihood classes. Similarly, the returned results class supports many of the same post-estimation results, like the `summary` method.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Load Dataset\n", + "df.index = pd.date_range(start='%d-01-01' % df.date[0], end='%d-01-01' % df.iloc[-1, 0], freq='AS')\n", + "\n", + "# Log transform\n", + "df['lff'] = np.log(df['ff'])\n", + "\n", + "# Setup the model\n", + "mod = LocalLinearTrend(df['lff'])\n", + "\n", + "# Fit it using MLE (recall that we are fitting the three variance parameters)\n", + "res = mod.fit()\n", + "print(res.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, we can do post-estimation prediction and forecasting. Notice that the end period can be specified as a date." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Perform prediction and forecasting\n", + "predict = res.get_prediction()\n", + "forecast = res.get_forecast('2014')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig, ax = plt.subplots(figsize=(10,4))\n", + "\n", + "# Plot the results\n", + "df['lff'].plot(ax=ax, style='k.', label='Observations')\n", + "predict.predicted_mean.plot(ax=ax, label='One-step-ahead Prediction')\n", + "predict_ci = predict.conf_int(alpha=0.05)\n", + "predict_index = np.arange(len(predict_ci))\n", + "ax.fill_between(predict_index[2:], predict_ci.iloc[2:, 0], predict_ci.iloc[2:, 1], alpha=0.1)\n", + "\n", + "forecast.predicted_mean.plot(ax=ax, style='r', label='Forecast')\n", + "forecast_ci = forecast.conf_int()\n", + "forecast_index = np.arange(len(predict_ci), len(predict_ci) + len(forecast_ci))\n", + "ax.fill_between(forecast_index, forecast_ci.iloc[:, 0], forecast_ci.iloc[:, 1], alpha=0.1)\n", + "\n", + "# Cleanup the image\n", + "ax.set_ylim((4, 8));\n", + "legend = ax.legend(loc='lower left');" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### References\n", + "\n", + " Commandeur, Jacques J. F., and Siem Jan Koopman. 2007.\n", + " An Introduction to State Space Time Series Analysis.\n", + " Oxford ; New York: Oxford University Press.\n", + "\n", + " Durbin, James, and Siem Jan Koopman. 2012.\n", + " Time Series Analysis by State Space Methods: Second Edition.\n", + " Oxford University Press." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.3" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/examples/notebooks/statespace_sarimax_internet.ipynb b/examples/notebooks/statespace_sarimax_internet.ipynb new file mode 100644 index 0000000..61158b0 --- /dev/null +++ b/examples/notebooks/statespace_sarimax_internet.ipynb @@ -0,0 +1,263 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# SARIMAX: Model selection, missing data" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The example mirrors Durbin and Koopman (2012), Chapter 8.4 in application of Box-Jenkins methodology to fit ARMA models. The novel feature is the ability of the model to work on datasets with missing values." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "from scipy.stats import norm\n", + "import statsmodels.api as sm\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import requests\n", + "from io import BytesIO\n", + "from zipfile import ZipFile\n", + "\n", + "# Download the dataset\n", + "dk = requests.get('http://www.ssfpack.com/files/DK-data.zip').content\n", + "f = BytesIO(dk)\n", + "zipped = ZipFile(f)\n", + "df = pd.read_table(\n", + " BytesIO(zipped.read('internet.dat')),\n", + " skiprows=1, header=None, sep='\\s+', engine='python',\n", + " names=['internet','dinternet']\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Model Selection\n", + "\n", + "As in Durbin and Koopman, we force a number of the values to be missing." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Get the basic series\n", + "dta_full = df.dinternet[1:].values\n", + "dta_miss = dta_full.copy()\n", + "\n", + "# Remove datapoints\n", + "missing = np.r_[6,16,26,36,46,56,66,72,73,74,75,76,86,96]-1\n", + "dta_miss[missing] = np.nan" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Then we can consider model selection using the Akaike information criteria (AIC), but running the model for each variant and selecting the model with the lowest AIC value.\n", + "\n", + "There are a couple of things to note here:\n", + "\n", + "- When running such a large batch of models, particularly when the autoregressive and moving average orders become large, there is the possibility of poor maximum likelihood convergence. Below we ignore the warnings since this example is illustrative.\n", + "- We use the option `enforce_invertibility=False`, which allows the moving average polynomial to be non-invertible, so that more of the models are estimable.\n", + "- Several of the models do not produce good results, and their AIC value is set to NaN. This is not surprising, as Durbin and Koopman note numerical problems with the high order models." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import warnings\n", + "\n", + "aic_full = pd.DataFrame(np.zeros((6,6), dtype=float))\n", + "aic_miss = pd.DataFrame(np.zeros((6,6), dtype=float))\n", + "\n", + "warnings.simplefilter('ignore')\n", + "\n", + "# Iterate over all ARMA(p,q) models with p,q in [0,6]\n", + "for p in range(6):\n", + " for q in range(6):\n", + " if p == 0 and q == 0:\n", + " continue\n", + " \n", + " # Estimate the model with no missing datapoints\n", + " mod = sm.tsa.statespace.SARIMAX(dta_full, order=(p,0,q), enforce_invertibility=False)\n", + " try:\n", + " res = mod.fit()\n", + " aic_full.iloc[p,q] = res.aic\n", + " except:\n", + " aic_full.iloc[p,q] = np.nan\n", + " \n", + " # Estimate the model with missing datapoints\n", + " mod = sm.tsa.statespace.SARIMAX(dta_miss, order=(p,0,q), enforce_invertibility=False)\n", + " try:\n", + " res = mod.fit()\n", + " aic_miss.iloc[p,q] = res.aic\n", + " except:\n", + " aic_miss.iloc[p,q] = np.nan" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For the models estimated over the full (non-missing) dataset, the AIC chooses ARMA(1,1) or ARMA(3,0). Durbin and Koopman suggest the ARMA(1,1) specification is better due to parsimony.\n", + "\n", + "$$\n", + "\\text{Replication of:}\\\\\n", + "\\textbf{Table 8.1} ~~ \\text{AIC for different ARMA models.}\\\\\n", + "\\newcommand{\\r}[1]{{\\color{red}{#1}}}\n", + "\\begin{array}{lrrrrrr}\n", + "\\hline\n", + "q & 0 & 1 & 2 & 3 & 4 & 5 \\\\\n", + "\\hline\n", + "p & {} & {} & {} & {} & {} & {} \\\\\n", + "0 & 0.00 & 549.81 & 519.87 & 520.27 & 519.38 & 518.86 \\\\\n", + "1 & 529.24 & \\r{514.30} & 516.25 & 514.58 & 515.10 & 516.28 \\\\\n", + "2 & 522.18 & 516.29 & 517.16 & 515.77 & 513.24 & 514.73 \\\\\n", + "3 & \\r{511.99} & 513.94 & 515.92 & 512.06 & 513.72 & 514.50 \\\\\n", + "4 & 513.93 & 512.89 & nan & nan & 514.81 & 516.08 \\\\\n", + "5 & 515.86 & 517.64 & nan & nan & nan & nan \\\\\n", + "\\hline\n", + "\\end{array}\n", + "$$\n", + "\n", + "For the models estimated over missing dataset, the AIC chooses ARMA(1,1)\n", + "\n", + "$$\n", + "\\text{Replication of:}\\\\\n", + "\\textbf{Table 8.2} ~~ \\text{AIC for different ARMA models with missing observations.}\\\\\n", + "\\begin{array}{lrrrrrr}\n", + "\\hline\n", + "q & 0 & 1 & 2 & 3 & 4 & 5 \\\\\n", + "\\hline\n", + "p & {} & {} & {} & {} & {} & {} \\\\\n", + "0 & 0.00 & 488.93 & 464.01 & 463.86 & 462.63 & 463.62 \\\\\n", + "1 & 468.01 & \\r{457.54} & 459.35 & 458.66 & 459.15 & 461.01 \\\\\n", + "2 & 469.68 & nan & 460.48 & 459.43 & 459.23 & 460.47 \\\\\n", + "3 & 467.10 & 458.44 & 459.64 & 456.66 & 459.54 & 460.05 \\\\\n", + "4 & 469.00 & 459.52 & nan & 463.04 & 459.35 & 460.96 \\\\\n", + "5 & 471.32 & 461.26 & nan & nan & 461.00 & 462.97 \\\\\n", + "\\hline\n", + "\\end{array}\n", + "$$\n", + "\n", + "**Note**: the AIC values are calculated differently than in Durbin and Koopman, but show overall similar trends." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Postestimation\n", + "\n", + "Using the ARMA(1,1) specification selected above, we perform in-sample prediction and out-of-sample forecasting." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Statespace\n", + "mod = sm.tsa.statespace.SARIMAX(dta_miss, order=(1,0,1))\n", + "res = mod.fit()\n", + "print(res.summary())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# In-sample one-step-ahead predictions, and out-of-sample forecasts\n", + "nforecast = 20\n", + "predict = res.get_prediction(end=mod.nobs + nforecast)\n", + "idx = np.arange(len(predict.predicted_mean))\n", + "predict_ci = predict.conf_int(alpha=0.5)\n", + "\n", + "# Graph\n", + "fig, ax = plt.subplots(figsize=(12,6))\n", + "ax.xaxis.grid()\n", + "ax.plot(dta_miss, 'k.')\n", + "\n", + "# Plot\n", + "ax.plot(idx[:-nforecast], predict.predicted_mean[:-nforecast], 'gray')\n", + "ax.plot(idx[-nforecast:], predict.predicted_mean[-nforecast:], 'k--', linestyle='--', linewidth=2)\n", + "ax.fill_between(idx, predict_ci.iloc[:, 0], predict_ci.iloc[:, 1], alpha=0.15)\n", + "\n", + "ax.set(title='Figure 8.9 - Internet series');" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.3" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/examples/notebooks/statespace_sarimax_stata.ipynb b/examples/notebooks/statespace_sarimax_stata.ipynb new file mode 100644 index 0000000..c39a5e5 --- /dev/null +++ b/examples/notebooks/statespace_sarimax_stata.ipynb @@ -0,0 +1,621 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# SARIMAX: Introduction" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This notebook replicates examples from the Stata ARIMA time series estimation and postestimation documentation.\n", + "\n", + "First, we replicate the four estimation examples http://www.stata.com/manuals13/tsarima.pdf:\n", + "\n", + "1. ARIMA(1,1,1) model on the U.S. Wholesale Price Index (WPI) dataset.\n", + "2. Variation of example 1 which adds an MA(4) term to the ARIMA(1,1,1) specification to allow for an additive seasonal effect.\n", + "3. ARIMA(2,1,0) x (1,1,0,12) model of monthly airline data. This example allows a multiplicative seasonal effect.\n", + "4. ARMA(1,1) model with exogenous regressors; describes consumption as an autoregressive process on which also the money supply is assumed to be an explanatory variable.\n", + "\n", + "Second, we demonstrate postestimation capabilitites to replicate http://www.stata.com/manuals13/tsarimapostestimation.pdf. The model from example 4 is used to demonstrate:\n", + "\n", + "1. One-step-ahead in-sample prediction\n", + "2. n-step-ahead out-of-sample forecasting\n", + "3. n-step-ahead in-sample dynamic prediction" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "from scipy.stats import norm\n", + "import statsmodels.api as sm\n", + "import matplotlib.pyplot as plt\n", + "from datetime import datetime\n", + "import requests\n", + "from io import BytesIO" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### ARIMA Example 1: Arima\n", + "\n", + "As can be seen in the graphs from Example 2, the Wholesale price index (WPI) is growing over time (i.e. is not stationary). Therefore an ARMA model is not a good specification. In this first example, we consider a model where the original time series is assumed to be integrated of order 1, so that the difference is assumed to be stationary, and fit a model with one autoregressive lag and one moving average lag, as well as an intercept term.\n", + "\n", + "The postulated data process is then:\n", + "\n", + "$$\n", + "\\Delta y_t = c + \\phi_1 \\Delta y_{t-1} + \\theta_1 \\epsilon_{t-1} + \\epsilon_{t}\n", + "$$\n", + "\n", + "where $c$ is the intercept of the ARMA model, $\\Delta$ is the first-difference operator, and we assume $\\epsilon_{t} \\sim N(0, \\sigma^2)$. This can be rewritten to emphasize lag polynomials as (this will be useful in example 2, below):\n", + "\n", + "$$\n", + "(1 - \\phi_1 L ) \\Delta y_t = c + (1 + \\theta_1 L) \\epsilon_{t}\n", + "$$\n", + "\n", + "where $L$ is the lag operator.\n", + "\n", + "Notice that one difference between the Stata output and the output below is that Stata estimates the following model:\n", + "\n", + "$$\n", + "(\\Delta y_t - \\beta_0) = \\phi_1 ( \\Delta y_{t-1} - \\beta_0) + \\theta_1 \\epsilon_{t-1} + \\epsilon_{t}\n", + "$$\n", + "\n", + "where $\\beta_0$ is the mean of the process $y_t$. This model is equivalent to the one estimated in the Statsmodels SARIMAX class, but the interpretation is different. To see the equivalence, note that:\n", + "\n", + "$$\n", + "(\\Delta y_t - \\beta_0) = \\phi_1 ( \\Delta y_{t-1} - \\beta_0) + \\theta_1 \\epsilon_{t-1} + \\epsilon_{t} \\\\\n", + "\\Delta y_t = (1 - \\phi_1) \\beta_0 + \\phi_1 \\Delta y_{t-1} + \\theta_1 \\epsilon_{t-1} + \\epsilon_{t}\n", + "$$\n", + "\n", + "so that $c = (1 - \\phi_1) \\beta_0$." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Dataset\n", + "wpi1 = requests.get('http://www.stata-press.com/data/r12/wpi1.dta').content\n", + "data = pd.read_stata(BytesIO(wpi1))\n", + "data.index = data.t\n", + "\n", + "# Fit the model\n", + "mod = sm.tsa.statespace.SARIMAX(data['wpi'], trend='c', order=(1,1,1))\n", + "res = mod.fit()\n", + "print(res.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Thus the maximum likelihood estimates imply that for the process above, we have:\n", + "\n", + "$$\n", + "\\Delta y_t = 0.1050 + 0.8740 \\Delta y_{t-1} - 0.4206 \\epsilon_{t-1} + \\epsilon_{t}\n", + "$$\n", + "\n", + "where $\\epsilon_{t} \\sim N(0, 0.5226)$. Finally, recall that $c = (1 - \\phi_1) \\beta_0$, and here $c = 0.1050$ and $\\phi_1 = 0.8740$. To compare with the output from Stata, we could calculate the mean:\n", + "\n", + "$$\\beta_0 = \\frac{c}{1 - \\phi_1} = \\frac{0.1050}{1 - 0.8740} = 0.83$$\n", + "\n", + "**Note**: these values are slightly different from the values in the Stata documentation because the optimizer in Statsmodels has found parameters here that yield a higher likelihood. Nonetheless, they are very close." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### ARIMA Example 2: Arima with additive seasonal effects\n", + "\n", + "This model is an extension of that from example 1. Here the data is assumed to follow the process:\n", + "\n", + "$$\n", + "\\Delta y_t = c + \\phi_1 \\Delta y_{t-1} + \\theta_1 \\epsilon_{t-1} + \\theta_4 \\epsilon_{t-4} + \\epsilon_{t}\n", + "$$\n", + "\n", + "The new part of this model is that there is allowed to be a annual seasonal effect (it is annual even though the periodicity is 4 because the dataset is quarterly). The second difference is that this model uses the log of the data rather than the level.\n", + "\n", + "Before estimating the dataset, graphs showing:\n", + "\n", + "1. The time series (in logs)\n", + "2. The first difference of the time series (in logs)\n", + "3. The autocorrelation function\n", + "4. The partial autocorrelation function.\n", + "\n", + "From the first two graphs, we note that the original time series does not appear to be stationary, whereas the first-difference does. This supports either estimating an ARMA model on the first-difference of the data, or estimating an ARIMA model with 1 order of integration (recall that we are taking the latter approach). The last two graphs support the use of an ARMA(1,1,1) model." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Dataset\n", + "data = pd.read_stata(BytesIO(wpi1))\n", + "data.index = data.t\n", + "data['ln_wpi'] = np.log(data['wpi'])\n", + "data['D.ln_wpi'] = data['ln_wpi'].diff()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Graph data\n", + "fig, axes = plt.subplots(1, 2, figsize=(15,4))\n", + "\n", + "# Levels\n", + "axes[0].plot(data.index._mpl_repr(), data['wpi'], '-')\n", + "axes[0].set(title='US Wholesale Price Index')\n", + "\n", + "# Log difference\n", + "axes[1].plot(data.index._mpl_repr(), data['D.ln_wpi'], '-')\n", + "axes[1].hlines(0, data.index[0], data.index[-1], 'r')\n", + "axes[1].set(title='US Wholesale Price Index - difference of logs');" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Graph data\n", + "fig, axes = plt.subplots(1, 2, figsize=(15,4))\n", + "\n", + "fig = sm.graphics.tsa.plot_acf(data.ix[1:, 'D.ln_wpi'], lags=40, ax=axes[0])\n", + "fig = sm.graphics.tsa.plot_pacf(data.ix[1:, 'D.ln_wpi'], lags=40, ax=axes[1])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To understand how to specify this model in Statsmodels, first recall that from example 1 we used the following code to specify the ARIMA(1,1,1) model:\n", + "\n", + "```python\n", + "mod = sm.tsa.statespace.SARIMAX(data['wpi'], trend='c', order=(1,1,1))\n", + "```\n", + "\n", + "The `order` argument is a tuple of the form `(AR specification, Integration order, MA specification)`. The integration order must be an integer (for example, here we assumed one order of integration, so it was specified as 1. In a pure ARMA model where the underlying data is already stationary, it would be 0).\n", + "\n", + "For the AR specification and MA specification components, there are two possiblities. The first is to specify the **maximum degree** of the corresponding lag polynomial, in which case the component is an integer. For example, if we wanted to specify an ARIMA(1,1,4) process, we would use:\n", + "\n", + "```python\n", + "mod = sm.tsa.statespace.SARIMAX(data['wpi'], trend='c', order=(1,1,4))\n", + "```\n", + "\n", + "and the corresponding data process would be:\n", + "\n", + "$$\n", + "y_t = c + \\phi_1 y_{t-1} + \\theta_1 \\epsilon_{t-1} + \\theta_2 \\epsilon_{t-2} + \\theta_3 \\epsilon_{t-3} + \\theta_4 \\epsilon_{t-4} + \\epsilon_{t}\n", + "$$\n", + "\n", + "or\n", + "\n", + "$$\n", + "(1 - \\phi_1 L)\\Delta y_t = c + (1 + \\theta_1 L + \\theta_2 L^2 + \\theta_3 L^3 + \\theta_4 L^4) \\epsilon_{t}\n", + "$$\n", + "\n", + "When the specification parameter is given as a maximum degree of the lag polynomial, it implies that all polynomial terms up to that degree are included. Notice that this is *not* the model we want to use, because it would include terms for $\\epsilon_{t-2}$ and $\\epsilon_{t-3}$, which we don't want here.\n", + "\n", + "What we want is a polynomial that has terms for the 1st and 4th degrees, but leaves out the 2nd and 3rd terms. To do that, we need to provide a tuple for the specifiation parameter, where the tuple describes **the lag polynomial itself**. In particular, here we would want to use:\n", + "\n", + "```python\n", + "ar = 1 # this is the maximum degree specification\n", + "ma = (1,0,0,1) # this is the lag polynomial specification\n", + "mod = sm.tsa.statespace.SARIMAX(data['wpi'], trend='c', order=(ar,1,ma)))\n", + "```\n", + "\n", + "This gives the following form for the process of the data:\n", + "\n", + "$$\n", + "\\Delta y_t = c + \\phi_1 \\Delta y_{t-1} + \\theta_1 \\epsilon_{t-1} + \\theta_4 \\epsilon_{t-4} + \\epsilon_{t} \\\\\n", + "(1 - \\phi_1 L)\\Delta y_t = c + (1 + \\theta_1 L + \\theta_4 L^4) \\epsilon_{t}\n", + "$$\n", + "\n", + "which is what we want." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Fit the model\n", + "mod = sm.tsa.statespace.SARIMAX(data['ln_wpi'], trend='c', order=(1,1,1))\n", + "res = mod.fit()\n", + "print(res.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### ARIMA Example 3: Airline Model\n", + "\n", + "In the previous example, we included a seasonal effect in an *additive* way, meaning that we added a term allowing the process to depend on the 4th MA lag. It may be instead that we want to model a seasonal effect in a multiplicative way. We often write the model then as an ARIMA $(p,d,q) \\times (P,D,Q)_s$, where the lowercast letters indicate the specification for the non-seasonal component, and the uppercase letters indicate the specification for the seasonal component; $s$ is the periodicity of the seasons (e.g. it is often 4 for quarterly data or 12 for monthly data). The data process can be written generically as:\n", + "\n", + "$$\n", + "\\phi_p (L) \\tilde \\phi_P (L^s) \\Delta^d \\Delta_s^D y_t = A(t) + \\theta_q (L) \\tilde \\theta_Q (L^s) \\epsilon_t\n", + "$$\n", + "\n", + "where:\n", + "\n", + "- $\\phi_p (L)$ is the non-seasonal autoregressive lag polynomial\n", + "- $\\tilde \\phi_P (L^s)$ is the seasonal autoregressive lag polynomial\n", + "- $\\Delta^d \\Delta_s^D y_t$ is the time series, differenced $d$ times, and seasonally differenced $D$ times.\n", + "- $A(t)$ is the trend polynomial (including the intercept)\n", + "- $\\theta_q (L)$ is the non-seasonal moving average lag polynomial\n", + "- $\\tilde \\theta_Q (L^s)$ is the seasonal moving average lag polynomial\n", + "\n", + "sometimes we rewrite this as:\n", + "\n", + "$$\n", + "\\phi_p (L) \\tilde \\phi_P (L^s) y_t^* = A(t) + \\theta_q (L) \\tilde \\theta_Q (L^s) \\epsilon_t\n", + "$$\n", + "\n", + "where $y_t^* = \\Delta^d \\Delta_s^D y_t$. This emphasizes that just as in the simple case, after we take differences (here both non-seasonal and seasonal) to make the data stationary, the resulting model is just an ARMA model.\n", + "\n", + "As an example, consider the airline model ARIMA $(2,1,0) \\times (1,1,0)_{12}$, with an intercept. The data process can be written in the form above as:\n", + "\n", + "$$\n", + "(1 - \\phi_1 L - \\phi_2 L^2) (1 - \\tilde \\phi_1 L^{12}) \\Delta \\Delta_{12} y_t = c + \\epsilon_t\n", + "$$\n", + "\n", + "Here, we have:\n", + "\n", + "- $\\phi_p (L) = (1 - \\phi_1 L - \\phi_2 L^2)$\n", + "- $\\tilde \\phi_P (L^s) = (1 - \\phi_1 L^12)$\n", + "- $d = 1, D = 1, s=12$ indicating that $y_t^*$ is derived from $y_t$ by taking first-differences and then taking 12-th differences.\n", + "- $A(t) = c$ is the *constant* trend polynomial (i.e. just an intercept)\n", + "- $\\theta_q (L) = \\tilde \\theta_Q (L^s) = 1$ (i.e. there is no moving average effect)\n", + "\n", + "It may still be confusing to see the two lag polynomials in front of the time-series variable, but notice that we can multiply the lag polynomials together to get the following model:\n", + "\n", + "$$\n", + "(1 - \\phi_1 L - \\phi_2 L^2 - \\tilde \\phi_1 L^{12} + \\phi_1 \\tilde \\phi_1 L^{13} + \\phi_2 \\tilde \\phi_1 L^{14} ) y_t^* = c + \\epsilon_t\n", + "$$\n", + "\n", + "which can be rewritten as:\n", + "\n", + "$$\n", + "y_t^* = c + \\phi_1 y_{t-1}^* + \\phi_2 y_{t-2}^* + \\tilde \\phi_1 y_{t-12}^* - \\phi_1 \\tilde \\phi_1 y_{t-13}^* - \\phi_2 \\tilde \\phi_1 y_{t-14}^* + \\epsilon_t\n", + "$$\n", + "\n", + "This is similar to the additively seasonal model from example 2, but the coefficients in front of the autoregressive lags are actually combinations of the underlying seasonal and non-seasonal parameters.\n", + "\n", + "Specifying the model in Statsmodels is done simply by adding the `seasonal_order` argument, which accepts a tuple of the form `(Seasonal AR specification, Seasonal Integration order, Seasonal MA, Seasonal periodicity)`. The seasonal AR and MA specifications, as before, can be expressed as a maximum polynomial degree or as the lag polynomial itself. Seasonal periodicity is an integer.\n", + "\n", + "For the airline model ARIMA $(2,1,0) \\times (1,1,0)_{12}$ with an intercept, the command is:\n", + "\n", + "```python\n", + "mod = sm.tsa.statespace.SARIMAX(data['lnair'], order=(2,1,0), seasonal_order=(1,1,0,12))\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Dataset\n", + "air2 = requests.get('http://www.stata-press.com/data/r12/air2.dta').content\n", + "data = pd.read_stata(BytesIO(air2))\n", + "data.index = pd.date_range(start=datetime(data.time[0], 1, 1), periods=len(data), freq='MS')\n", + "data['lnair'] = np.log(data['air'])\n", + "\n", + "# Fit the model\n", + "mod = sm.tsa.statespace.SARIMAX(data['lnair'], order=(2,1,0), seasonal_order=(1,1,0,12), simple_differencing=True)\n", + "res = mod.fit()\n", + "print(res.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Notice that here we used an additional argument `simple_differencing=True`. This controls how the order of integration is handled in ARIMA models. If `simple_differencing=True`, then the time series provided as `endog` is literatlly differenced and an ARMA model is fit to the resulting new time series. This implies that a number of initial periods are lost to the differencing process, however it may be necessary either to compare results to other packages (e.g. Stata's `arima` always uses simple differencing) or if the seasonal periodicity is large.\n", + "\n", + "The default is `simple_differencing=False`, in which case the integration component is implemented as part of the state space formulation, and all of the original data can be used in estimation." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### ARIMA Example 4: ARMAX (Friedman)\n", + "\n", + "This model demonstrates the use of explanatory variables (the X part of ARMAX). When exogenous regressors are included, the SARIMAX module uses the concept of \"regression with SARIMA errors\" (see http://robjhyndman.com/hyndsight/arimax/ for details of regression with ARIMA errors versus alternative specifications), so that the model is specified as:\n", + "\n", + "$$\n", + "y_t = \\beta_t x_t + u_t \\\\\n", + " \\phi_p (L) \\tilde \\phi_P (L^s) \\Delta^d \\Delta_s^D u_t = A(t) +\n", + " \\theta_q (L) \\tilde \\theta_Q (L^s) \\epsilon_t\n", + "$$\n", + "\n", + "Notice that the first equation is just a linear regression, and the second equation just describes the process followed by the error component as SARIMA (as was described in example 3). One reason for this specification is that the estimated parameters have their natural interpretations.\n", + "\n", + "This specification nests many simpler specifications. For example, regression with AR(2) errors is:\n", + "\n", + "$$\n", + "y_t = \\beta_t x_t + u_t \\\\\n", + "(1 - \\phi_1 L - \\phi_2 L^2) u_t = A(t) + \\epsilon_t\n", + "$$\n", + "\n", + "The model considered in this example is regression with ARMA(1,1) errors. The process is then written:\n", + "\n", + "$$\n", + "\\text{consump}_t = \\beta_0 + \\beta_1 \\text{m2}_t + u_t \\\\\n", + "(1 - \\phi_1 L) u_t = (1 - \\theta_1 L) \\epsilon_t\n", + "$$\n", + "\n", + "Notice that $\\beta_0$ is, as described in example 1 above, *not* the same thing as an intercept specified by `trend='c'`. Whereas in the examples above we estimated the intercept of the model via the trend polynomial, here, we demonstrate how to estimate $\\beta_0$ itself by adding a constant to the exogenous dataset. In the output, the $beta_0$ is called `const`, whereas above the intercept $c$ was called `intercept` in the output." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Dataset\n", + "friedman2 = requests.get('http://www.stata-press.com/data/r12/friedman2.dta').content\n", + "data = pd.read_stata(BytesIO(friedman2))\n", + "data.index = data.time\n", + "\n", + "# Variables\n", + "endog = data.ix['1959':'1981', 'consump']\n", + "exog = sm.add_constant(data.ix['1959':'1981', 'm2'])\n", + "\n", + "# Fit the model\n", + "mod = sm.tsa.statespace.SARIMAX(endog, exog, order=(1,0,1))\n", + "res = mod.fit()\n", + "print(res.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### ARIMA Postestimation: Example 1 - Dynamic Forecasting\n", + "\n", + "Here we describe some of the post-estimation capabilities of Statsmodels' SARIMAX.\n", + "\n", + "First, using the model from example, we estimate the parameters using data that *excludes the last few observations* (this is a little artificial as an example, but it allows considering performance of out-of-sample forecasting and facilitates comparison to Stata's documentation)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Dataset\n", + "raw = pd.read_stata(BytesIO(friedman2))\n", + "raw.index = raw.time\n", + "data = raw.ix[:'1981']\n", + "\n", + "# Variables\n", + "endog = data.ix['1959':, 'consump']\n", + "exog = sm.add_constant(data.ix['1959':, 'm2'])\n", + "nobs = endog.shape[0]\n", + "\n", + "# Fit the model\n", + "mod = sm.tsa.statespace.SARIMAX(endog.ix[:'1978-01-01'], exog=exog.ix[:'1978-01-01'], order=(1,0,1))\n", + "fit_res = mod.fit()\n", + "print(fit_res.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we want to get results for the full dataset but using the estimated parameters (on a subset of the data)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "mod = sm.tsa.statespace.SARIMAX(endog, exog=exog, order=(1,0,1))\n", + "res = mod.filter(fit_res.params)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The `predict` command is first applied here to get in-sample predictions. We use the `full_results=True` argument to allow us to calculate confidence intervals (the default output of `predict` is just the predicted values).\n", + "\n", + "With no other arguments, `predict` returns the one-step-ahead in-sample predictions for the entire sample." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# In-sample one-step-ahead predictions\n", + "predict = res.get_prediction()\n", + "predict_ci = predict.conf_int()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can also get *dynamic predictions*. One-step-ahead prediction uses the true values of the endogenous values at each step to predict the next in-sample value. Dynamic predictions use one-step-ahead prediction up to some point in the dataset (specified by the `dynamic` argument); after that, the previous *predicted* endogenous values are used in place of the true endogenous values for each new predicted element.\n", + "\n", + "The `dynamic` argument is specified to be an *offset* relative to the `start` argument. If `start` is not specified, it is assumed to be `0`.\n", + "\n", + "Here we perform dynamic prediction starting in the first quarter of 1978." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Dynamic predictions\n", + "predict_dy = res.get_prediction(dynamic='1978-01-01')\n", + "predict_dy_ci = predict_dy.conf_int()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can graph the one-step-ahead and dynamic predictions (and the corresponding confidence intervals) to see their relative performance. Notice that up to the point where dynamic prediction begins (1978:Q1), the two are the same." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Graph\n", + "fig, ax = plt.subplots(figsize=(9,4))\n", + "npre = 4\n", + "ax.set(title='Personal consumption', xlabel='Date', ylabel='Billions of dollars')\n", + "\n", + "# Plot data points\n", + "data.ix['1977-07-01':, 'consump'].plot(ax=ax, style='o', label='Observed')\n", + "\n", + "# Plot predictions\n", + "predict.predicted_mean.ix['1977-07-01':].plot(ax=ax, style='r--', label='One-step-ahead forecast')\n", + "ci = predict_ci.ix['1977-07-01':]\n", + "ax.fill_between(ci.index, ci.ix[:,0], ci.ix[:,1], color='r', alpha=0.1)\n", + "predict_dy.predicted_mean.ix['1977-07-01':].plot(ax=ax, style='g', label='Dynamic forecast (1978)')\n", + "ci = predict_dy_ci.ix['1977-07-01':]\n", + "ax.fill_between(ci.index, ci.ix[:,0], ci.ix[:,1], color='g', alpha=0.1)\n", + "\n", + "legend = ax.legend(loc='lower right')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, graph the prediction *error*. It is obvious that, as one would suspect, one-step-ahead prediction is considerably better." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Prediction error\n", + "\n", + "# Graph\n", + "fig, ax = plt.subplots(figsize=(9,4))\n", + "npre = 4\n", + "ax.set(title='Forecast error', xlabel='Date', ylabel='Forecast - Actual')\n", + "\n", + "# In-sample one-step-ahead predictions and 95% confidence intervals\n", + "predict_error = predict.predicted_mean - endog\n", + "predict_error.ix['1977-10-01':].plot(ax=ax, label='One-step-ahead forecast')\n", + "ci = predict_ci.ix['1977-10-01':].copy()\n", + "ci.iloc[:,0] -= endog.loc['1977-10-01':]\n", + "ci.iloc[:,1] -= endog.loc['1977-10-01':]\n", + "ax.fill_between(ci.index, ci.ix[:,0], ci.ix[:,1], alpha=0.1)\n", + "\n", + "# Dynamic predictions and 95% confidence intervals\n", + "predict_dy_error = predict_dy.predicted_mean - endog\n", + "predict_dy_error.ix['1977-10-01':].plot(ax=ax, style='r', label='Dynamic forecast (1978)')\n", + "ci = predict_dy_ci.ix['1977-10-01':].copy()\n", + "ci.iloc[:,0] -= endog.loc['1977-10-01':]\n", + "ci.iloc[:,1] -= endog.loc['1977-10-01':]\n", + "ax.fill_between(ci.index, ci.ix[:,0], ci.ix[:,1], color='r', alpha=0.1)\n", + "\n", + "legend = ax.legend(loc='lower left');\n", + "legend.get_frame().set_facecolor('w')" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.3" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/examples/notebooks/statespace_structural_harvey_jaeger.ipynb b/examples/notebooks/statespace_structural_harvey_jaeger.ipynb new file mode 100644 index 0000000..4dd561c --- /dev/null +++ b/examples/notebooks/statespace_structural_harvey_jaeger.ipynb @@ -0,0 +1,436 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Detrending, Stylized Facts and the Business Cycle\n", + "\n", + "In an influential article, Harvey and Jaeger (1993) described the use of unobserved components models (also known as \"structural time series models\") to derive stylized facts of the business cycle.\n", + "\n", + "Their paper begins:\n", + "\n", + " \"Establishing the 'stylized facts' associated with a set of time series is widely considered a crucial step\n", + " in macroeconomic research ... For such facts to be useful they should (1) be consistent with the stochastic\n", + " properties of the data and (2) present meaningful information.\"\n", + " \n", + "In particular, they make the argument that these goals are often better met using the unobserved components approach rather than the popular Hodrick-Prescott filter or Box-Jenkins ARIMA modeling techniques.\n", + "\n", + "Statsmodels has the ability to perform all three types of analysis, and below we follow the steps of their paper, using a slightly updated dataset." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "import numpy as np\n", + "import pandas as pd\n", + "import statsmodels.api as sm\n", + "import matplotlib.pyplot as plt\n", + "\n", + "from IPython.display import display, Latex" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Unobserved Components\n", + "\n", + "The unobserved components model available in Statsmodels can be written as:\n", + "\n", + "$$\n", + "y_t = \\underbrace{\\mu_{t}}_{\\text{trend}} + \\underbrace{\\gamma_{t}}_{\\text{seasonal}} + \\underbrace{c_{t}}_{\\text{cycle}} + \\sum_{j=1}^k \\underbrace{\\beta_j x_{jt}}_{\\text{explanatory}} + \\underbrace{\\varepsilon_t}_{\\text{irregular}}\n", + "$$\n", + "\n", + "see Durbin and Koopman 2012, Chapter 3 for notation and additional details. Notice that different specifications for the different individual components can support a wide range of models. The specific models considered in the paper and below are specializations of this general equation.\n", + "\n", + "### Trend\n", + "\n", + "The trend component is a dynamic extension of a regression model that includes an intercept and linear time-trend.\n", + "\n", + "$$\n", + "\\begin{align}\n", + "\\underbrace{\\mu_{t+1}}_{\\text{level}} & = \\mu_t + \\nu_t + \\eta_{t+1} \\qquad & \\eta_{t+1} \\sim N(0, \\sigma_\\eta^2) \\\\\\\\\n", + "\\underbrace{\\nu_{t+1}}_{\\text{trend}} & = \\nu_t + \\zeta_{t+1} & \\zeta_{t+1} \\sim N(0, \\sigma_\\zeta^2) \\\\\n", + "\\end{align}\n", + "$$\n", + "\n", + "where the level is a generalization of the intercept term that can dynamically vary across time, and the trend is a generalization of the time-trend such that the slope can dynamically vary across time.\n", + "\n", + "For both elements (level and trend), we can consider models in which:\n", + "\n", + "- The element is included vs excluded (if the trend is included, there must also be a level included).\n", + "- The element is deterministic vs stochastic (i.e. whether or not the variance on the error term is confined to be zero or not)\n", + "\n", + "The only additional parameters to be estimated via MLE are the variances of any included stochastic components.\n", + "\n", + "This leads to the following specifications:\n", + "\n", + "| | Level | Trend | Stochastic Level | Stochastic Trend |\n", + "|----------------------------------------------------------------------|-------|-------|------------------|------------------|\n", + "| Constant | ✓ | | | |\n", + "| Local Level
    (random walk) | ✓ | | ✓ | |\n", + "| Deterministic trend | ✓ | ✓ | | |\n", + "| Local level with deterministic trend
    (random walk with drift) | ✓ | ✓ | ✓ | |\n", + "| Local linear trend | ✓ | ✓ | ✓ | ✓ |\n", + "| Smooth trend
    (integrated random walk) | ✓ | ✓ | | ✓ |\n", + "\n", + "### Seasonal\n", + "\n", + "The seasonal component is written as:\n", + "\n", + "$$\n", + "\\gamma_t = - \\sum_{j=1}^{s-1} \\gamma_{t+1-j} + \\omega_t \\qquad \\omega_t \\sim N(0, \\sigma_\\omega^2)\n", + "$$\n", + "\n", + "The periodicity (number of seasons) is `s`, and the defining character is that (without the error term), the seasonal components sum to zero across one complete cycle. The inclusion of an error term allows the seasonal effects to vary over time.\n", + "\n", + "The variants of this model are:\n", + "\n", + "- The periodicity `s`\n", + "- Whether or not to make the seasonal effects stochastic.\n", + "\n", + "If the seasonal effect is stochastic, then there is one additional parameter to estimate via MLE (the variance of the error term).\n", + "\n", + "### Cycle\n", + "\n", + "The cyclical component is intended to capture cyclical effects at time frames much longer than captured by the seasonal component. For example, in economics the cyclical term is often intended to capture the business cycle, and is then expected to have a period between \"1.5 and 12 years\" (see Durbin and Koopman).\n", + "\n", + "The cycle is written as:\n", + "\n", + "$$\n", + "\\begin{align}\n", + "c_{t+1} & = c_t \\cos \\lambda_c + c_t^* \\sin \\lambda_c + \\tilde \\omega_t \\qquad & \\tilde \\omega_t \\sim N(0, \\sigma_{\\tilde \\omega}^2) \\\\\\\\\n", + "c_{t+1}^* & = -c_t \\sin \\lambda_c + c_t^* \\cos \\lambda_c + \\tilde \\omega_t^* & \\tilde \\omega_t^* \\sim N(0, \\sigma_{\\tilde \\omega}^2)\n", + "\\end{align}\n", + "$$\n", + "\n", + "The parameter $\\lambda_c$ (the frequency of the cycle) is an additional parameter to be estimated by MLE. If the seasonal effect is stochastic, then there is one another parameter to estimate (the variance of the error term - note that both of the error terms here share the same variance, but are assumed to have independent draws).\n", + "\n", + "### Irregular\n", + "\n", + "The irregular component is assumed to be a white noise error term. Its variance is a parameter to be estimated by MLE; i.e.\n", + "\n", + "$$\n", + "\\varepsilon_t \\sim N(0, \\sigma_\\varepsilon^2)\n", + "$$\n", + "\n", + "In some cases, we may want to generalize the irregular component to allow for autoregressive effects:\n", + "\n", + "$$\n", + "\\varepsilon_t = \\rho(L) \\varepsilon_{t-1} + \\epsilon_t, \\qquad \\epsilon_t \\sim N(0, \\sigma_\\epsilon^2)\n", + "$$\n", + "\n", + "In this case, the autoregressive parameters would also be estimated via MLE.\n", + "\n", + "### Regression effects\n", + "\n", + "We may want to allow for explanatory variables by including additional terms\n", + "\n", + "$$\n", + "\\sum_{j=1}^k \\beta_j x_{jt}\n", + "$$\n", + "\n", + "or for intervention effects by including\n", + "\n", + "$$\n", + "\\begin{align}\n", + "\\delta w_t \\qquad \\text{where} \\qquad w_t & = 0, \\qquad t < \\tau, \\\\\\\\\n", + "& = 1, \\qquad t \\ge \\tau\n", + "\\end{align}\n", + "$$\n", + "\n", + "These additional parameters could be estimated via MLE or by including them as components of the state space formulation.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Data\n", + "\n", + "Following Harvey and Jaeger, we will consider the following time series:\n", + "\n", + "- US real GNP, \"output\", ([GNPC96](https://research.stlouisfed.org/fred2/series/GNPC96))\n", + "- US GNP implicit price deflator, \"prices\", ([GNPDEF](https://research.stlouisfed.org/fred2/series/GNPDEF))\n", + "- US monetary base, \"money\", ([AMBSL](https://research.stlouisfed.org/fred2/series/AMBSL))\n", + "\n", + "The time frame in the original paper varied across series, but was broadly 1954-1989. Below we use data from the period 1948-2008 for all series. Although the unobserved components approach allows isolating a seasonal component within the model, the series considered in the paper, and here, are already seasonally adjusted.\n", + "\n", + "All data series considered here are taken from [Federal Reserve Economic Data (FRED)](https://research.stlouisfed.org/fred2/). Conveniently, the Python library [Pandas](http://pandas.pydata.org/) has the ability to download data from FRED directly." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Datasets\n", + "try:\n", + " from pandas_datareader.data import DataReader\n", + "except ImportError:\n", + " from pandas.io.data import DataReader\n", + "\n", + "# Get the raw data\n", + "start = '1948-01'\n", + "end = '2008-01'\n", + "us_gnp = DataReader('GNPC96', 'fred', start=start, end=end)\n", + "us_gnp_deflator = DataReader('GNPDEF', 'fred', start=start, end=end)\n", + "us_monetary_base = DataReader('AMBSL', 'fred', start=start, end=end).resample('QS').mean()\n", + "recessions = DataReader('USRECQ', 'fred', start=start, end=end).resample('QS').last().values[:,0]\n", + "\n", + "# Construct the dataframe\n", + "dta = pd.concat(map(np.log, (us_gnp, us_gnp_deflator, us_monetary_base)), axis=1)\n", + "dta.columns = ['US GNP','US Prices','US monetary base']\n", + "dates = dta.index._mpl_repr()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To get a sense of these three variables over the timeframe, we can plot them:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Plot the data\n", + "ax = dta.plot(figsize=(13,3))\n", + "ylim = ax.get_ylim()\n", + "ax.xaxis.grid()\n", + "ax.fill_between(dates, ylim[0]+1e-5, ylim[1]-1e-5, recessions, facecolor='k', alpha=0.1);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Model\n", + "\n", + "Since the data is already seasonally adjusted and there are no obvious explanatory variables, the generic model considered is:\n", + "\n", + "$$\n", + "y_t = \\underbrace{\\mu_{t}}_{\\text{trend}} + \\underbrace{c_{t}}_{\\text{cycle}} + \\underbrace{\\varepsilon_t}_{\\text{irregular}}\n", + "$$\n", + "\n", + "The irregular will be assumed to be white noise, and the cycle will be stochastic and damped. The final modeling choice is the specification to use for the trend component. Harvey and Jaeger consider two models:\n", + "\n", + "1. Local linear trend (the \"unrestricted\" model)\n", + "2. Smooth trend (the \"restricted\" model, since we are forcing $\\sigma_\\eta = 0$)\n", + "\n", + "Below, we construct `kwargs` dictionaries for each of these model types. Notice that rather that there are two ways to specify the models. One way is to specify components directly, as in the table above. The other way is to use string names which map to various specifications." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Model specifications\n", + "\n", + "# Unrestricted model, using string specification\n", + "unrestricted_model = {\n", + " 'level': 'local linear trend', 'cycle': True, 'damped_cycle': True, 'stochastic_cycle': True\n", + "}\n", + "\n", + "# Unrestricted model, setting components directly\n", + "# This is an equivalent, but less convenient, way to specify a\n", + "# local linear trend model with a stochastic damped cycle:\n", + "# unrestricted_model = {\n", + "# 'irregular': True, 'level': True, 'stochastic_level': True, 'trend': True, 'stochastic_trend': True,\n", + "# 'cycle': True, 'damped_cycle': True, 'stochastic_cycle': True\n", + "# }\n", + "\n", + "# The restricted model forces a smooth trend\n", + "restricted_model = {\n", + " 'level': 'smooth trend', 'cycle': True, 'damped_cycle': True, 'stochastic_cycle': True\n", + "}\n", + "\n", + "# Restricted model, setting components directly\n", + "# This is an equivalent, but less convenient, way to specify a\n", + "# smooth trend model with a stochastic damped cycle. Notice\n", + "# that the difference from the local linear trend model is that\n", + "# `stochastic_level=False` here.\n", + "# unrestricted_model = {\n", + "# 'irregular': True, 'level': True, 'stochastic_level': False, 'trend': True, 'stochastic_trend': True,\n", + "# 'cycle': True, 'damped_cycle': True, 'stochastic_cycle': True\n", + "# }" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We now fit the following models:\n", + "\n", + "1. Output, unrestricted model\n", + "2. Prices, unrestricted model\n", + "3. Prices, restricted model\n", + "4. Money, unrestricted model\n", + "5. Money, restricted model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Output\n", + "output_mod = sm.tsa.UnobservedComponents(dta['US GNP'], **unrestricted_model)\n", + "output_res = output_mod.fit(method='powell', disp=False)\n", + "\n", + "# Prices\n", + "prices_mod = sm.tsa.UnobservedComponents(dta['US Prices'], **unrestricted_model)\n", + "prices_res = prices_mod.fit(method='powell', disp=False)\n", + "\n", + "prices_restricted_mod = sm.tsa.UnobservedComponents(dta['US Prices'], **restricted_model)\n", + "prices_restricted_res = prices_restricted_mod.fit(method='powell', disp=False)\n", + "\n", + "# Money\n", + "money_mod = sm.tsa.UnobservedComponents(dta['US monetary base'], **unrestricted_model)\n", + "money_res = money_mod.fit(method='powell', disp=False)\n", + "\n", + "money_restricted_mod = sm.tsa.UnobservedComponents(dta['US monetary base'], **restricted_model)\n", + "money_restricted_res = money_restricted_mod.fit(method='powell', disp=False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Once we have fit these models, there are a variety of ways to display the information. Looking at the model of US GNP, we can summarize the fit of the model using the `summary` method on the fit object." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(output_res.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For unobserved components models, and in particular when exploring stylized facts in line with point (2) from the introduction, it is often more instructive to plot the estimated unobserved components (e.g. the level, trend, and cycle) themselves to see if they provide a meaningful description of the data.\n", + "\n", + "The `plot_components` method of the fit object can be used to show plots and confidence intervals of each of the estimated states, as well as a plot of the observed data versus the one-step-ahead predictions of the model to assess fit." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig = output_res.plot_components(legend_loc='lower right', figsize=(15, 9));" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, Harvey and Jaeger summarize the models in another way to highlight the relative importances of the trend and cyclical components; below we replicate their Table I. The values we find are broadly consistent with, but different in the particulars from, the values from their table." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Create Table I\n", + "table_i = np.zeros((5,6))\n", + "\n", + "start = dta.index[0]\n", + "end = dta.index[-1]\n", + "time_range = '%d:%d-%d:%d' % (start.year, start.quarter, end.year, end.quarter)\n", + "models = [\n", + " ('US GNP', time_range, 'None'),\n", + " ('US Prices', time_range, 'None'),\n", + " ('US Prices', time_range, r'$\\sigma_\\eta^2 = 0$'),\n", + " ('US monetary base', time_range, 'None'),\n", + " ('US monetary base', time_range, r'$\\sigma_\\eta^2 = 0$'),\n", + "]\n", + "index = pd.MultiIndex.from_tuples(models, names=['Series', 'Time range', 'Restrictions'])\n", + "parameter_symbols = [\n", + " r'$\\sigma_\\zeta^2$', r'$\\sigma_\\eta^2$', r'$\\sigma_\\kappa^2$', r'$\\rho$',\n", + " r'$2 \\pi / \\lambda_c$', r'$\\sigma_\\varepsilon^2$',\n", + "]\n", + "\n", + "i = 0\n", + "for res in (output_res, prices_res, prices_restricted_res, money_res, money_restricted_res):\n", + " if res.model.stochastic_level:\n", + " (sigma_irregular, sigma_level, sigma_trend,\n", + " sigma_cycle, frequency_cycle, damping_cycle) = res.params\n", + " else:\n", + " (sigma_irregular, sigma_level,\n", + " sigma_cycle, frequency_cycle, damping_cycle) = res.params\n", + " sigma_trend = np.nan\n", + " period_cycle = 2 * np.pi / frequency_cycle\n", + " \n", + " table_i[i, :] = [\n", + " sigma_level*1e7, sigma_trend*1e7,\n", + " sigma_cycle*1e7, damping_cycle, period_cycle,\n", + " sigma_irregular*1e7\n", + " ]\n", + " i += 1\n", + " \n", + "pd.set_option('float_format', lambda x: '%.4g' % np.round(x, 2) if not np.isnan(x) else '-')\n", + "table_i = pd.DataFrame(table_i, index=index, columns=parameter_symbols)\n", + "table_i" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.3" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/examples/notebooks/statespace_varmax.ipynb b/examples/notebooks/statespace_varmax.ipynb new file mode 100644 index 0000000..cf0ad26 --- /dev/null +++ b/examples/notebooks/statespace_varmax.ipynb @@ -0,0 +1,173 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# VARMAX models\n", + "\n", + "This is a brief introduction notebook to VARMAX models in Statsmodels. The VARMAX model is generically specified as:\n", + "$$\n", + "y_t = \\nu + A_1 y_{t-1} + \\dots + A_p y_{t-p} + B x_t + \\epsilon_t +\n", + "M_1 \\epsilon_{t-1} + \\dots M_q \\epsilon_{t-q}\n", + "$$\n", + "\n", + "where $y_t$ is a $\\text{k_endog} \\times 1$ vector." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "%matplotlib inline" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "import statsmodels.api as sm\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "dta = sm.datasets.webuse('lutkepohl2', 'http://www.stata-press.com/data/r12/')\n", + "dta.index = dta.qtr\n", + "endog = dta.ix['1960-04-01':'1978-10-01', ['dln_inv', 'dln_inc', 'dln_consump']]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Model specification\n", + "\n", + "The `VARMAX` class in Statsmodels allows estimation of VAR, VMA, and VARMA models (through the `order` argument), optionally with a constant term (via the `trend` argument). Exogenous regressors may also be included (as usual in Statsmodels, by the `exog` argument), and in this way a time trend may be added. Finally, the class allows measurement error (via the `measurement_error` argument) and allows specifying either a diagonal or unstructured innovation covariance matrix (via the `error_cov_type` argument)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1: VAR\n", + "\n", + "Below is a simple VARX(2) model in two endogenous variables and an exogenous series, but no constant term. Notice that we needed to allow for more iterations than the default (which is `maxiter=50`) in order for the likelihood estimation to converge. This is not unusual in VAR models which have to estimate a large number of parameters, often on a relatively small number of time series: this model, for example, estimates 27 parameters off of 75 observations of 3 variables." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "exog = endog['dln_consump']\n", + "mod = sm.tsa.VARMAX(endog[['dln_inv', 'dln_inc']], order=(2,0), trend='nc', exog=exog)\n", + "res = mod.fit(maxiter=1000)\n", + "print(res.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "From the estimated VAR model, we can plot the impulse response functions of the endogenous variables." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "ax = res.impulse_responses(10, orthogonalized=True).plot(figsize=(13,3))\n", + "ax.set(xlabel='t', title='Responses to a shock to `dln_inv`');" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2: VMA\n", + "\n", + "A vector moving average model can also be formulated. Below we show a VMA(2) on the same data, but where the innovations to the process are uncorrelated. In this example we leave out the exogenous regressor but now include the constant term." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "mod = sm.tsa.VARMAX(endog[['dln_inv', 'dln_inc']], order=(0,2), error_cov_type='diagonal')\n", + "res = mod.fit(maxiter=1000)\n", + "print(res.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Caution: VARMA(p,q) specifications\n", + "\n", + "Although the model allows estimating VARMA(p,q) specifications, these models are not identified without additional restrictions on the representation matrices, which are not built-in. For this reason, it is recommended that the user proceed with error (and indeed a warning is issued when these models are specified). Nonetheless, they may in some circumstances provide useful information." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "mod = sm.tsa.VARMAX(endog[['dln_inv', 'dln_inc']], order=(1,1))\n", + "res = mod.fit(maxiter=1000)\n", + "print(res.summary())" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.3" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/examples/notebooks/tsa_arma_0.ipynb b/examples/notebooks/tsa_arma_0.ipynb new file mode 100644 index 0000000..8829d1b --- /dev/null +++ b/examples/notebooks/tsa_arma_0.ipynb @@ -0,0 +1,580 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Autoregressive Moving Average (ARMA): Sunspots data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "from __future__ import print_function\n", + "import numpy as np\n", + "from scipy import stats\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "\n", + "import statsmodels.api as sm" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from statsmodels.graphics.api import qqplot" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Sunpots Data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(sm.datasets.sunspots.NOTE)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "dta = sm.datasets.sunspots.load_pandas().data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "dta.index = pd.Index(sm.tsa.datetools.dates_from_range('1700', '2008'))\n", + "del dta[\"YEAR\"]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "dta.plot(figsize=(12,8));" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig = plt.figure(figsize=(12,8))\n", + "ax1 = fig.add_subplot(211)\n", + "fig = sm.graphics.tsa.plot_acf(dta.values.squeeze(), lags=40, ax=ax1)\n", + "ax2 = fig.add_subplot(212)\n", + "fig = sm.graphics.tsa.plot_pacf(dta, lags=40, ax=ax2)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arma_mod20 = sm.tsa.ARMA(dta, (2,0)).fit()\n", + "print(arma_mod20.params)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arma_mod30 = sm.tsa.ARMA(dta, (3,0)).fit()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(arma_mod20.aic, arma_mod20.bic, arma_mod20.hqic)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(arma_mod30.params)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(arma_mod30.aic, arma_mod30.bic, arma_mod30.hqic)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* Does our model obey the theory?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "sm.stats.durbin_watson(arma_mod30.resid.values)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig = plt.figure(figsize=(12,8))\n", + "ax = fig.add_subplot(111)\n", + "ax = arma_mod30.resid.plot(ax=ax);" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "resid = arma_mod30.resid" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "stats.normaltest(resid)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig = plt.figure(figsize=(12,8))\n", + "ax = fig.add_subplot(111)\n", + "fig = qqplot(resid, line='q', ax=ax, fit=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig = plt.figure(figsize=(12,8))\n", + "ax1 = fig.add_subplot(211)\n", + "fig = sm.graphics.tsa.plot_acf(resid.values.squeeze(), lags=40, ax=ax1)\n", + "ax2 = fig.add_subplot(212)\n", + "fig = sm.graphics.tsa.plot_pacf(resid, lags=40, ax=ax2)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "r,q,p = sm.tsa.acf(resid.values.squeeze(), qstat=True)\n", + "data = np.c_[range(1,41), r[1:], q, p]\n", + "table = pd.DataFrame(data, columns=['lag', \"AC\", \"Q\", \"Prob(>Q)\"])\n", + "print(table.set_index('lag'))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* This indicates a lack of fit." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* In-sample dynamic prediction. How good does our model do?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "predict_sunspots = arma_mod30.predict('1990', '2012', dynamic=True)\n", + "print(predict_sunspots)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig, ax = plt.subplots(figsize=(12, 8))\n", + "ax = dta.ix['1950':].plot(ax=ax)\n", + "fig = arma_mod30.plot_predict('1990', '2012', dynamic=True, ax=ax, plot_insample=False)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "def mean_forecast_err(y, yhat):\n", + " return y.sub(yhat).mean()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "mean_forecast_err(dta.SUNACTIVITY, predict_sunspots)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Exercise: Can you obtain a better fit for the Sunspots model? (Hint: sm.tsa.AR has a method select_order)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Simulated ARMA(4,1): Model Identification is Difficult" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from statsmodels.tsa.arima_process import arma_generate_sample, ArmaProcess" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "np.random.seed(1234)\n", + "# include zero-th lag\n", + "arparams = np.array([1, .75, -.65, -.55, .9])\n", + "maparams = np.array([1, .65])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's make sure this model is estimable." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arma_t = ArmaProcess(arparams, maparams)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arma_t.isinvertible" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arma_t.isstationary" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* What does this mean?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig = plt.figure(figsize=(12,8))\n", + "ax = fig.add_subplot(111)\n", + "ax.plot(arma_t.generate_sample(nsample=50));" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arparams = np.array([1, .35, -.15, .55, .1])\n", + "maparams = np.array([1, .65])\n", + "arma_t = ArmaProcess(arparams, maparams)\n", + "arma_t.isstationary" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arma_rvs = arma_t.generate_sample(nsample=500, burnin=250, scale=2.5)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig = plt.figure(figsize=(12,8))\n", + "ax1 = fig.add_subplot(211)\n", + "fig = sm.graphics.tsa.plot_acf(arma_rvs, lags=40, ax=ax1)\n", + "ax2 = fig.add_subplot(212)\n", + "fig = sm.graphics.tsa.plot_pacf(arma_rvs, lags=40, ax=ax2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* For mixed ARMA processes the Autocorrelation function is a mixture of exponentials and damped sine waves after (q-p) lags. \n", + "* The partial autocorrelation function is a mixture of exponentials and dampened sine waves after (p-q) lags." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arma11 = sm.tsa.ARMA(arma_rvs, (1,1)).fit()\n", + "resid = arma11.resid\n", + "r,q,p = sm.tsa.acf(resid, qstat=True)\n", + "data = np.c_[range(1,41), r[1:], q, p]\n", + "table = pd.DataFrame(data, columns=['lag', \"AC\", \"Q\", \"Prob(>Q)\"])\n", + "print(table.set_index('lag'))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arma41 = sm.tsa.ARMA(arma_rvs, (4,1)).fit()\n", + "resid = arma41.resid\n", + "r,q,p = sm.tsa.acf(resid, qstat=True)\n", + "data = np.c_[range(1,41), r[1:], q, p]\n", + "table = pd.DataFrame(data, columns=['lag', \"AC\", \"Q\", \"Prob(>Q)\"])\n", + "print(table.set_index('lag'))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Exercise: How good of in-sample prediction can you do for another series, say, CPI" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "macrodta = sm.datasets.macrodata.load_pandas().data\n", + "macrodta.index = pd.Index(sm.tsa.datetools.dates_from_range('1959Q1', '2009Q3'))\n", + "cpi = macrodta[\"cpi\"]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Hint: " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig = plt.figure(figsize=(12,8))\n", + "ax = fig.add_subplot(111)\n", + "ax = cpi.plot(ax=ax);\n", + "ax.legend();" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "P-value of the unit-root test, resoundly rejects the null of no unit-root." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(sm.tsa.adfuller(cpi)[1])" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.3" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/examples/notebooks/tsa_arma_1.ipynb b/examples/notebooks/tsa_arma_1.ipynb new file mode 100644 index 0000000..1805b19 --- /dev/null +++ b/examples/notebooks/tsa_arma_1.ipynb @@ -0,0 +1,147 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Autoregressive Moving Average (ARMA): Artificial data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "from __future__ import print_function\n", + "import numpy as np\n", + "import statsmodels.api as sm\n", + "import pandas as pd\n", + "from statsmodels.tsa.arima_process import arma_generate_sample\n", + "np.random.seed(12345)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Generate some data from an ARMA process:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arparams = np.array([.75, -.25])\n", + "maparams = np.array([.65, .35])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The conventions of the arma_generate function require that we specify a 1 for the zero-lag of the AR and MA parameters and that the AR parameters be negated." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "arparams = np.r_[1, -arparams]\n", + "maparams = np.r_[1, maparams]\n", + "nobs = 250\n", + "y = arma_generate_sample(arparams, maparams, nobs)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " Now, optionally, we can add some dates information. For this example, we'll use a pandas time series." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "dates = sm.tsa.datetools.dates_from_range('1980m1', length=nobs)\n", + "y = pd.Series(y, index=dates)\n", + "arma_mod = sm.tsa.ARMA(y, order=(2,2))\n", + "arma_res = arma_mod.fit(trend='nc', disp=-1)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(arma_res.summary())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "y.tail()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "fig, ax = plt.subplots(figsize=(10,8))\n", + "fig = arma_res.plot_predict(start='1999m6', end='2001m5', ax=ax)\n", + "legend = ax.legend(loc='upper left')" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.3" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/examples/notebooks/tsa_dates.ipynb b/examples/notebooks/tsa_dates.ipynb new file mode 100644 index 0000000..5cd01c5 --- /dev/null +++ b/examples/notebooks/tsa_dates.ipynb @@ -0,0 +1,187 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Dates in timeseries models" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from __future__ import print_function\n", + "import statsmodels.api as sm\n", + "import numpy as np\n", + "import pandas as pd" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Getting started" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "data = sm.datasets.sunspots.load()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Right now an annual date series must be datetimes at the end of the year." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from datetime import datetime\n", + "dates = sm.tsa.datetools.dates_from_range('1700', length=len(data.endog))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Using Pandas\n", + "\n", + "Make a pandas TimeSeries or DataFrame" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "endog = pd.Series(data.endog, index=dates)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Instantiate the model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "ar_model = sm.tsa.AR(endog, freq='A')\n", + "pandas_ar_res = ar_model.fit(maxlag=9, method='mle', disp=-1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Out-of-sample prediction" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "pred = pandas_ar_res.predict(start='2005', end='2015')\n", + "print(pred)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Using explicit dates" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "ar_model = sm.tsa.AR(data.endog, dates=dates, freq='A')\n", + "ar_res = ar_model.fit(maxlag=9, method='mle', disp=-1)\n", + "pred = ar_res.predict(start='2005', end='2015')\n", + "print(pred)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This just returns a regular array, but since the model has date information attached, you can get the prediction dates in a roundabout way." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(ar_res.data.predict_dates)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note: This attribute only exists if predict has been called. It holds the dates associated with the last call to predict." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.3" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/examples/notebooks/tsa_filters.ipynb b/examples/notebooks/tsa_filters.ipynb new file mode 100644 index 0000000..208a129 --- /dev/null +++ b/examples/notebooks/tsa_filters.ipynb @@ -0,0 +1,340 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Time Series Filters" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "from __future__ import print_function\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "\n", + "import statsmodels.api as sm" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "dta = sm.datasets.macrodata.load_pandas().data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "index = pd.Index(sm.tsa.datetools.dates_from_range('1959Q1', '2009Q3'))\n", + "print(index)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "dta.index = index\n", + "del dta['year']\n", + "del dta['quarter']" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(sm.datasets.macrodata.NOTE)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(dta.head(10))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig = plt.figure(figsize=(12,8))\n", + "ax = fig.add_subplot(111)\n", + "dta.realgdp.plot(ax=ax);\n", + "legend = ax.legend(loc = 'upper left');\n", + "legend.prop.set_size(20);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Hodrick-Prescott Filter" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The Hodrick-Prescott filter separates a time-series $y_t$ into a trend $\\tau_t$ and a cyclical component $\\zeta_t$ \n", + "\n", + "$$y_t = \\tau_t + \\zeta_t$$\n", + "\n", + "The components are determined by minimizing the following quadratic loss function\n", + "\n", + "$$\\min_{\\\\{ \\tau_{t}\\\\} }\\sum_{t}^{T}\\zeta_{t}^{2}+\\lambda\\sum_{t=1}^{T}\\left[\\left(\\tau_{t}-\\tau_{t-1}\\right)-\\left(\\tau_{t-1}-\\tau_{t-2}\\right)\\right]^{2}$$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "gdp_cycle, gdp_trend = sm.tsa.filters.hpfilter(dta.realgdp)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "gdp_decomp = dta[['realgdp']].copy()\n", + "gdp_decomp[\"cycle\"] = gdp_cycle\n", + "gdp_decomp[\"trend\"] = gdp_trend" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig = plt.figure(figsize=(12,8))\n", + "ax = fig.add_subplot(111)\n", + "gdp_decomp[[\"realgdp\", \"trend\"]][\"2000-03-31\":].plot(ax=ax, fontsize=16);\n", + "legend = ax.get_legend()\n", + "legend.prop.set_size(20);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Baxter-King approximate band-pass filter: Inflation and Unemployment" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Explore the hypothesis that inflation and unemployment are counter-cyclical." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The Baxter-King filter is intended to explictly deal with the periodicty of the business cycle. By applying their band-pass filter to a series, they produce a new series that does not contain fluctuations at higher or lower than those of the business cycle. Specifically, the BK filter takes the form of a symmetric moving average \n", + "\n", + "$$y_{t}^{*}=\\sum_{k=-K}^{k=K}a_ky_{t-k}$$\n", + "\n", + "where $a_{-k}=a_k$ and $\\sum_{k=-k}^{K}a_k=0$ to eliminate any trend in the series and render it stationary if the series is I(1) or I(2).\n", + "\n", + "For completeness, the filter weights are determined as follows\n", + "\n", + "$$a_{j} = B_{j}+\\theta\\text{ for }j=0,\\pm1,\\pm2,\\dots,\\pm K$$\n", + "\n", + "$$B_{0} = \\frac{\\left(\\omega_{2}-\\omega_{1}\\right)}{\\pi}$$\n", + "$$B_{j} = \\frac{1}{\\pi j}\\left(\\sin\\left(\\omega_{2}j\\right)-\\sin\\left(\\omega_{1}j\\right)\\right)\\text{ for }j=0,\\pm1,\\pm2,\\dots,\\pm K$$\n", + "\n", + "where $\\theta$ is a normalizing constant such that the weights sum to zero.\n", + "\n", + "$$\\theta=\\frac{-\\sum_{j=-K^{K}b_{j}}}{2K+1}$$\n", + "\n", + "$$\\omega_{1}=\\frac{2\\pi}{P_{H}}$$\n", + "\n", + "$$\\omega_{2}=\\frac{2\\pi}{P_{L}}$$\n", + "\n", + "$P_L$ and $P_H$ are the periodicity of the low and high cut-off frequencies. Following Burns and Mitchell's work on US business cycles which suggests cycles last from 1.5 to 8 years, we use $P_L=6$ and $P_H=32$ by default." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "bk_cycles = sm.tsa.filters.bkfilter(dta[[\"infl\",\"unemp\"]])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* We lose K observations on both ends. It is suggested to use K=12 for quarterly data." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig = plt.figure(figsize=(12,10))\n", + "ax = fig.add_subplot(111)\n", + "bk_cycles.plot(ax=ax, style=['r--', 'b-']);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Christiano-Fitzgerald approximate band-pass filter: Inflation and Unemployment" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The Christiano-Fitzgerald filter is a generalization of BK and can thus also be seen as weighted moving average. However, the CF filter is asymmetric about $t$ as well as using the entire series. The implementation of their filter involves the\n", + "calculations of the weights in\n", + "\n", + "$$y_{t}^{*}=B_{0}y_{t}+B_{1}y_{t+1}+\\dots+B_{T-1-t}y_{T-1}+\\tilde B_{T-t}y_{T}+B_{1}y_{t-1}+\\dots+B_{t-2}y_{2}+\\tilde B_{t-1}y_{1}$$\n", + "\n", + "for $t=3,4,...,T-2$, where\n", + "\n", + "$$B_{j} = \\frac{\\sin(jb)-\\sin(ja)}{\\pi j},j\\geq1$$\n", + "\n", + "$$B_{0} = \\frac{b-a}{\\pi},a=\\frac{2\\pi}{P_{u}},b=\\frac{2\\pi}{P_{L}}$$\n", + "\n", + "$\\tilde B_{T-t}$ and $\\tilde B_{t-1}$ are linear functions of the $B_{j}$'s, and the values for $t=1,2,T-1,$ and $T$ are also calculated in much the same way. $P_{U}$ and $P_{L}$ are as described above with the same interpretation." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The CF filter is appropriate for series that may follow a random walk." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(sm.tsa.stattools.adfuller(dta['unemp'])[:3])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "print(sm.tsa.stattools.adfuller(dta['infl'])[:3])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "cf_cycles, cf_trend = sm.tsa.filters.cffilter(dta[[\"infl\",\"unemp\"]])\n", + "print(cf_cycles.head(10))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig = plt.figure(figsize=(14,10))\n", + "ax = fig.add_subplot(111)\n", + "cf_cycles.plot(ax=ax, style=['r--','b-']);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Filtering assumes *a priori* that business cycles exist. Due to this assumption, many macroeconomic models seek to create models that match the shape of impulse response functions rather than replicating properties of filtered series. See VAR notebook." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.3" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/examples/notebooks/wls.ipynb b/examples/notebooks/wls.ipynb new file mode 100644 index 0000000..4d9f68e --- /dev/null +++ b/examples/notebooks/wls.ipynb @@ -0,0 +1,243 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Weighted Least Squares" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "from __future__ import print_function\n", + "import numpy as np\n", + "from scipy import stats\n", + "import statsmodels.api as sm\n", + "import matplotlib.pyplot as plt\n", + "from statsmodels.sandbox.regression.predstd import wls_prediction_std\n", + "from statsmodels.iolib.table import (SimpleTable, default_txt_fmt)\n", + "np.random.seed(1024)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## WLS Estimation\n", + "\n", + "### Artificial data: Heteroscedasticity 2 groups \n", + "\n", + "Model assumptions:\n", + "\n", + " * Misspecification: true model is quadratic, estimate only linear\n", + " * Independent noise/error term\n", + " * Two groups for error variance, low and high variance groups" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "nsample = 50\n", + "x = np.linspace(0, 20, nsample)\n", + "X = np.column_stack((x, (x - 5)**2))\n", + "X = sm.add_constant(X)\n", + "beta = [5., 0.5, -0.01]\n", + "sig = 0.5\n", + "w = np.ones(nsample)\n", + "w[nsample * 6//10:] = 3\n", + "y_true = np.dot(X, beta)\n", + "e = np.random.normal(size=nsample)\n", + "y = y_true + sig * w * e \n", + "X = X[:,[0,1]]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### WLS knowing the true variance ratio of heteroscedasticity" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "mod_wls = sm.WLS(y, X, weights=1./w)\n", + "res_wls = mod_wls.fit()\n", + "print(res_wls.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## OLS vs. WLS\n", + "\n", + "Estimate an OLS model for comparison: " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "res_ols = sm.OLS(y, X).fit()\n", + "print(res_ols.params)\n", + "print(res_wls.params)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Compare the WLS standard errors to heteroscedasticity corrected OLS standard errors:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "se = np.vstack([[res_wls.bse], [res_ols.bse], [res_ols.HC0_se], \n", + " [res_ols.HC1_se], [res_ols.HC2_se], [res_ols.HC3_se]])\n", + "se = np.round(se,4)\n", + "colnames = ['x1', 'const']\n", + "rownames = ['WLS', 'OLS', 'OLS_HC0', 'OLS_HC1', 'OLS_HC3', 'OLS_HC3']\n", + "tabl = SimpleTable(se, colnames, rownames, txt_fmt=default_txt_fmt)\n", + "print(tabl)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Calculate OLS prediction interval:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "covb = res_ols.cov_params()\n", + "prediction_var = res_ols.mse_resid + (X * np.dot(covb,X.T).T).sum(1)\n", + "prediction_std = np.sqrt(prediction_var)\n", + "tppf = stats.t.ppf(0.975, res_ols.df_resid)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "prstd_ols, iv_l_ols, iv_u_ols = wls_prediction_std(res_ols)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Draw a plot to compare predicted values in WLS and OLS:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "prstd, iv_l, iv_u = wls_prediction_std(res_wls)\n", + "\n", + "fig, ax = plt.subplots(figsize=(8,6))\n", + "ax.plot(x, y, 'o', label=\"Data\")\n", + "ax.plot(x, y_true, 'b-', label=\"True\")\n", + "# OLS\n", + "ax.plot(x, res_ols.fittedvalues, 'r--')\n", + "ax.plot(x, iv_u_ols, 'r--', label=\"OLS\")\n", + "ax.plot(x, iv_l_ols, 'r--')\n", + "# WLS\n", + "ax.plot(x, res_wls.fittedvalues, 'g--.')\n", + "ax.plot(x, iv_u, 'g--', label=\"WLS\")\n", + "ax.plot(x, iv_l, 'g--')\n", + "ax.legend(loc=\"best\");" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Feasible Weighted Least Squares (2-stage FWLS)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "resid1 = res_ols.resid[w==1.]\n", + "var1 = resid1.var(ddof=int(res_ols.df_model)+1)\n", + "resid2 = res_ols.resid[w!=1.]\n", + "var2 = resid2.var(ddof=int(res_ols.df_model)+1)\n", + "w_est = w.copy()\n", + "w_est[w!=1.] = np.sqrt(var2) / np.sqrt(var1)\n", + "res_fwls = sm.WLS(y, X, 1./w_est).fit()\n", + "print(res_fwls.summary())" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.4.3" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/examples/python/categorical_interaction_plot.py b/examples/python/categorical_interaction_plot.py new file mode 100644 index 0000000..cb46e71 --- /dev/null +++ b/examples/python/categorical_interaction_plot.py @@ -0,0 +1,23 @@ + +## Plot Interaction of Categorical Factors + +# In this example, we will vizualize the interaction between categorical factors. First, we will create some categorical data are initialized. Then plotted using the interaction_plot function which internally recodes the x-factor categories to ingegers. + +import numpy as np +import matplotlib.pyplot as plt +from statsmodels.graphics.factorplots import interaction_plot +from pandas import Series +np.random.seed(12345) +weight = Series(np.repeat(['low', 'hi', 'low', 'hi'], 15), name='weight') +nutrition = Series(np.repeat(['lo_carb', 'hi_carb'], 30), name='nutrition') +days = np.log(np.random.randint(1, 30, size=60)) +plt.figure(figsize=(6, 6)); +interaction_plot(x=weight, trace=nutrition, response=days, + colors=['red', 'blue'], markers=['D', '^'], ms=10) + + +# + +# image file: + +# image file: diff --git a/examples/python/contrasts.py b/examples/python/contrasts.py new file mode 100644 index 0000000..2f80b01 --- /dev/null +++ b/examples/python/contrasts.py @@ -0,0 +1,186 @@ + +## Contrasts Overview +from __future__ import print_function +import numpy as np +import statsmodels.api as sm + + +# This document is based heavily on this excellent resource from UCLA http://www.ats.ucla.edu/stat/r/library/contrast_coding.htm + +# A categorical variable of K categories, or levels, usually enters a regression as a sequence of K-1 dummy variables. This amounts to a linear hypothesis on the level means. That is, each test statistic for these variables amounts to testing whether the mean for that level is statistically significantly different from the mean of the base category. This dummy coding is called Treatment coding in R parlance, and we will follow this convention. There are, however, different coding methods that amount to different sets of linear hypotheses. +# +# In fact, the dummy coding is not technically a contrast coding. This is because the dummy variables add to one and are not functionally independent of the model's intercept. On the other hand, a set of *contrasts* for a categorical variable with `k` levels is a set of `k-1` functionally independent linear combinations of the factor level means that are also independent of the sum of the dummy variables. The dummy coding isn't wrong *per se*. It captures all of the coefficients, but it complicates matters when the model assumes independence of the coefficients such as in ANOVA. Linear regression models do not assume independence of the coefficients and thus dummy coding is often the only coding that is taught in this context. +# +# To have a look at the contrast matrices in Patsy, we will use data from UCLA ATS. First let's load the data. + +##### Example Data + +import pandas as pd +url = 'http://www.ats.ucla.edu/stat/data/hsb2.csv' +hsb2 = pd.read_table(url, delimiter=",") + + +hsb2.head(10) + + +# It will be instructive to look at the mean of the dependent variable, write, for each level of race ((1 = Hispanic, 2 = Asian, 3 = African American and 4 = Caucasian)). + +hsb2.groupby('race')['write'].mean() + + +##### Treatment (Dummy) Coding + +# Dummy coding is likely the most well known coding scheme. It compares each level of the categorical variable to a base reference level. The base reference level is the value of the intercept. It is the default contrast in Patsy for unordered categorical factors. The Treatment contrast matrix for race would be + +from patsy.contrasts import Treatment +levels = [1,2,3,4] +contrast = Treatment(reference=0).code_without_intercept(levels) +print(contrast.matrix) + + +# Here we used `reference=0`, which implies that the first level, Hispanic, is the reference category against which the other level effects are measured. As mentioned above, the columns do not sum to zero and are thus not independent of the intercept. To be explicit, let's look at how this would encode the `race` variable. + +hsb2.race.head(10) + + +print(contrast.matrix[hsb2.race-1, :][:20]) + + +sm.categorical(hsb2.race.values) + + +# This is a bit of a trick, as the `race` category conveniently maps to zero-based indices. If it does not, this conversion happens under the hood, so this won't work in general but nonetheless is a useful exercise to fix ideas. The below illustrates the output using the three contrasts above + +from statsmodels.formula.api import ols +mod = ols("write ~ C(race, Treatment)", data=hsb2) +res = mod.fit() +print(res.summary()) + + +# We explicitly gave the contrast for race; however, since Treatment is the default, we could have omitted this. + +#### Simple Coding + +# Like Treatment Coding, Simple Coding compares each level to a fixed reference level. However, with simple coding, the intercept is the grand mean of all the levels of the factors. Patsy doesn't have the Simple contrast included, but you can easily define your own contrasts. To do so, write a class that contains a code_with_intercept and a code_without_intercept method that returns a patsy.contrast.ContrastMatrix instance + +from patsy.contrasts import ContrastMatrix + +def _name_levels(prefix, levels): + return ["[%s%s]" % (prefix, level) for level in levels] + +class Simple(object): + def _simple_contrast(self, levels): + nlevels = len(levels) + contr = -1./nlevels * np.ones((nlevels, nlevels-1)) + contr[1:][np.diag_indices(nlevels-1)] = (nlevels-1.)/nlevels + return contr + + def code_with_intercept(self, levels): + contrast = np.column_stack((np.ones(len(levels)), + self._simple_contrast(levels))) + return ContrastMatrix(contrast, _name_levels("Simp.", levels)) + + def code_without_intercept(self, levels): + contrast = self._simple_contrast(levels) + return ContrastMatrix(contrast, _name_levels("Simp.", levels[:-1])) + + +hsb2.groupby('race')['write'].mean().mean() + + +contrast = Simple().code_without_intercept(levels) +print(contrast.matrix) + + +mod = ols("write ~ C(race, Simple)", data=hsb2) +res = mod.fit() +print(res.summary()) + + +#### Sum (Deviation) Coding + +# Sum coding compares the mean of the dependent variable for a given level to the overall mean of the dependent variable over all the levels. That is, it uses contrasts between each of the first k-1 levels and level k In this example, level 1 is compared to all the others, level 2 to all the others, and level 3 to all the others. + +from patsy.contrasts import Sum +contrast = Sum().code_without_intercept(levels) +print(contrast.matrix) + + +mod = ols("write ~ C(race, Sum)", data=hsb2) +res = mod.fit() +print(res.summary()) + + +# This corresponds to a parameterization that forces all the coefficients to sum to zero. Notice that the intercept here is the grand mean where the grand mean is the mean of means of the dependent variable by each level. + +hsb2.groupby('race')['write'].mean().mean() + + +#### Backward Difference Coding + +# In backward difference coding, the mean of the dependent variable for a level is compared with the mean of the dependent variable for the prior level. This type of coding may be useful for a nominal or an ordinal variable. + +from patsy.contrasts import Diff +contrast = Diff().code_without_intercept(levels) +print(contrast.matrix) + + +mod = ols("write ~ C(race, Diff)", data=hsb2) +res = mod.fit() +print(res.summary()) + + +# For example, here the coefficient on level 1 is the mean of `write` at level 2 compared with the mean at level 1. Ie., + +res.params["C(race, Diff)[D.1]"] +hsb2.groupby('race').mean()["write"][2] - hsb2.groupby('race').mean()["write"][1] + + +#### Helmert Coding + +# Our version of Helmert coding is sometimes referred to as Reverse Helmert Coding. The mean of the dependent variable for a level is compared to the mean of the dependent variable over all previous levels. Hence, the name 'reverse' being sometimes applied to differentiate from forward Helmert coding. This comparison does not make much sense for a nominal variable such as race, but we would use the Helmert contrast like so: + +from patsy.contrasts import Helmert +contrast = Helmert().code_without_intercept(levels) +print(contrast.matrix) + + +mod = ols("write ~ C(race, Helmert)", data=hsb2) +res = mod.fit() +print(res.summary()) + + +# To illustrate, the comparison on level 4 is the mean of the dependent variable at the previous three levels taken from the mean at level 4 + +grouped = hsb2.groupby('race') +grouped.mean()["write"][4] - grouped.mean()["write"][:3].mean() + + +# As you can see, these are only equal up to a constant. Other versions of the Helmert contrast give the actual difference in means. Regardless, the hypothesis tests are the same. + +k = 4 +1./k * (grouped.mean()["write"][k] - grouped.mean()["write"][:k-1].mean()) +k = 3 +1./k * (grouped.mean()["write"][k] - grouped.mean()["write"][:k-1].mean()) + + +#### Orthogonal Polynomial Coding + +# The coefficients taken on by polynomial coding for `k=4` levels are the linear, quadratic, and cubic trends in the categorical variable. The categorical variable here is assumed to be represented by an underlying, equally spaced numeric variable. Therefore, this type of encoding is used only for ordered categorical variables with equal spacing. In general, the polynomial contrast produces polynomials of order `k-1`. Since `race` is not an ordered factor variable let's use `read` as an example. First we need to create an ordered categorical from `read`. + +hsb2['readcat'] = pd.cut(hsb2.read, bins=3) +hsb2.groupby('readcat').mean()['write'] + + +from patsy.contrasts import Poly +levels = hsb2.readcat.unique().tolist() +contrast = Poly().code_without_intercept(levels) +print(contrast.matrix) + + +mod = ols("write ~ C(readcat, Poly)", data=hsb2) +res = mod.fit() +print(res.summary()) + + +# As you can see, readcat has a significant linear effect on the dependent variable `write` but not a significant quadratic or cubic effect. diff --git a/examples/python/discrete_choice_example.py b/examples/python/discrete_choice_example.py new file mode 100644 index 0000000..cbe4aae --- /dev/null +++ b/examples/python/discrete_choice_example.py @@ -0,0 +1,231 @@ + +## Discrete Choice Models + +### Fair's Affair data + +# A survey of women only was conducted in 1974 by *Redbook* asking about extramarital affairs. +from __future__ import print_function +import numpy as np +from scipy import stats +import matplotlib.pyplot as plt +import statsmodels.api as sm +from statsmodels.formula.api import logit, probit, poisson, ols + + +print(sm.datasets.fair.SOURCE) + + +print(sm.datasets.fair.NOTE) + + +dta = sm.datasets.fair.load_pandas().data + + +dta['affair'] = (dta['affairs'] > 0).astype(float) +print(dta.head(10)) + + +print(dta.describe()) + + +affair_mod = logit("affair ~ occupation + educ + occupation_husb" + "+ rate_marriage + age + yrs_married + children" + " + religious", dta).fit() + + +print(affair_mod.summary()) + + +# How well are we predicting? + +affair_mod.pred_table() + + +# The coefficients of the discrete choice model do not tell us much. What we're after is marginal effects. + +mfx = affair_mod.get_margeff() +print(mfx.summary()) + + +respondent1000 = dta.ix[1000] +print(respondent1000) + + +resp = dict(zip(range(1,9), respondent1000[["occupation", "educ", + "occupation_husb", "rate_marriage", + "age", "yrs_married", "children", + "religious"]].tolist())) +resp.update({0 : 1}) +print(resp) + + +mfx = affair_mod.get_margeff(atexog=resp) +print(mfx.summary()) + + +affair_mod.predict(respondent1000) + + +affair_mod.fittedvalues[1000] + + +affair_mod.model.cdf(affair_mod.fittedvalues[1000]) + + +# The "correct" model here is likely the Tobit model. We have an work in progress branch "tobit-model" on github, if anyone is interested in censored regression models. + +#### Exercise: Logit vs Probit + +fig = plt.figure(figsize=(12,8)) +ax = fig.add_subplot(111) +support = np.linspace(-6, 6, 1000) +ax.plot(support, stats.logistic.cdf(support), 'r-', label='Logistic') +ax.plot(support, stats.norm.cdf(support), label='Probit') +ax.legend(); + + +fig = plt.figure(figsize=(12,8)) +ax = fig.add_subplot(111) +support = np.linspace(-6, 6, 1000) +ax.plot(support, stats.logistic.pdf(support), 'r-', label='Logistic') +ax.plot(support, stats.norm.pdf(support), label='Probit') +ax.legend(); + + +# Compare the estimates of the Logit Fair model above to a Probit model. Does the prediction table look better? Much difference in marginal effects? + +#### Genarlized Linear Model Example + +print(sm.datasets.star98.SOURCE) + + +print(sm.datasets.star98.DESCRLONG) + + +print(sm.datasets.star98.NOTE) + + +dta = sm.datasets.star98.load_pandas().data +print(dta.columns) + + +print(dta[['NABOVE', 'NBELOW', 'LOWINC', 'PERASIAN', 'PERBLACK', 'PERHISP', 'PERMINTE']].head(10)) + + +print(dta[['AVYRSEXP', 'AVSALK', 'PERSPENK', 'PTRATIO', 'PCTAF', 'PCTCHRT', 'PCTYRRND']].head(10)) + + +formula = 'NABOVE + NBELOW ~ LOWINC + PERASIAN + PERBLACK + PERHISP + PCTCHRT ' +formula += '+ PCTYRRND + PERMINTE*AVYRSEXP*AVSALK + PERSPENK*PTRATIO*PCTAF' + + +##### Aside: Binomial distribution + +# Toss a six-sided die 5 times, what's the probability of exactly 2 fours? + +stats.binom(5, 1./6).pmf(2) + + +from scipy.misc import comb +comb(5,2) * (1/6.)**2 * (5/6.)**3 + + +from statsmodels.formula.api import glm +glm_mod = glm(formula, dta, family=sm.families.Binomial()).fit() + + +print(glm_mod.summary()) + + +# The number of trials + +glm_mod.model.data.orig_endog.sum(1) + + +glm_mod.fittedvalues * glm_mod.model.data.orig_endog.sum(1) + + +# First differences: We hold all explanatory variables constant at their means and manipulate the percentage of low income households to assess its impact +# on the response variables: + +exog = glm_mod.model.data.orig_exog # get the dataframe + + +means25 = exog.mean() +print(means25) + + +means25['LOWINC'] = exog['LOWINC'].quantile(.25) +print(means25) + + +means75 = exog.mean() +means75['LOWINC'] = exog['LOWINC'].quantile(.75) +print(means75) + + +resp25 = glm_mod.predict(means25) +resp75 = glm_mod.predict(means75) +diff = resp75 - resp25 + + +# The interquartile first difference for the percentage of low income households in a school district is: + +print("%2.4f%%" % (diff[0]*100)) + + +nobs = glm_mod.nobs +y = glm_mod.model.endog +yhat = glm_mod.mu + + +from statsmodels.graphics.api import abline_plot +fig = plt.figure(figsize=(12,8)) +ax = fig.add_subplot(111, ylabel='Observed Values', xlabel='Fitted Values') +ax.scatter(yhat, y) +y_vs_yhat = sm.OLS(y, sm.add_constant(yhat, prepend=True)).fit() +fig = abline_plot(model_results=y_vs_yhat, ax=ax) + + +##### Plot fitted values vs Pearson residuals + +# Pearson residuals are defined to be +# +# $$\frac{(y - \mu)}{\sqrt{(var(\mu))}}$$ +# +# where var is typically determined by the family. E.g., binomial variance is $np(1 - p)$ + +fig = plt.figure(figsize=(12,8)) +ax = fig.add_subplot(111, title='Residual Dependence Plot', xlabel='Fitted Values', + ylabel='Pearson Residuals') +ax.scatter(yhat, stats.zscore(glm_mod.resid_pearson)) +ax.axis('tight') +ax.plot([0.0, 1.0],[0.0, 0.0], 'k-'); + + +##### Histogram of standardized deviance residuals with Kernel Density Estimate overlayed + +# The definition of the deviance residuals depends on the family. For the Binomial distribution this is +# +# $$r_{dev} = sign\(Y-\mu\)*\sqrt{2n(Y\log\frac{Y}{\mu}+(1-Y)\log\frac{(1-Y)}{(1-\mu)}}$$ +# +# They can be used to detect ill-fitting covariates + +resid = glm_mod.resid_deviance +resid_std = stats.zscore(resid) +kde_resid = sm.nonparametric.KDEUnivariate(resid_std) +kde_resid.fit() + + +fig = plt.figure(figsize=(12,8)) +ax = fig.add_subplot(111, title="Standardized Deviance Residuals") +ax.hist(resid_std, bins=25, normed=True); +ax.plot(kde_resid.support, kde_resid.density, 'r'); + + +##### QQ-plot of deviance residuals + +fig = plt.figure(figsize=(12,8)) +ax = fig.add_subplot(111) +fig = sm.graphics.qqplot(resid, line='r', ax=ax) + diff --git a/examples/python/discrete_choice_overview.py b/examples/python/discrete_choice_overview.py new file mode 100644 index 0000000..c93b0d6 --- /dev/null +++ b/examples/python/discrete_choice_overview.py @@ -0,0 +1,110 @@ + +## Discrete Choice Models Overview +from __future__ import print_function +import numpy as np +import statsmodels.api as sm + + +# ## Data +# +# Load data from Spector and Mazzeo (1980). Examples follow Greene's Econometric Analysis Ch. 21 (5th Edition). + +spector_data = sm.datasets.spector.load() +spector_data.exog = sm.add_constant(spector_data.exog, prepend=False) + + +# Inspect the data: + +print(spector_data.exog[:5,:]) +print(spector_data.endog[:5]) + + +# ## Linear Probability Model (OLS) + +lpm_mod = sm.OLS(spector_data.endog, spector_data.exog) +lpm_res = lpm_mod.fit() +print('Parameters: ', lpm_res.params[:-1]) + + +# ## Logit Model + +logit_mod = sm.Logit(spector_data.endog, spector_data.exog) +logit_res = logit_mod.fit(disp=0) +print('Parameters: ', logit_res.params) + + +# Marginal Effects + +margeff = logit_res.get_margeff() +print(margeff.summary()) + + +# As in all the discrete data models presented below, we can print(a nice summary of results: + +print(logit_res.summary()) + + +# ## Probit Model + +probit_mod = sm.Probit(spector_data.endog, spector_data.exog) +probit_res = probit_mod.fit() +probit_margeff = probit_res.get_margeff() +print('Parameters: ', probit_res.params) +print('Marginal effects: ') +print(probit_margeff.summary()) + + +# ## Multinomial Logit + +# Load data from the American National Election Studies: + +anes_data = sm.datasets.anes96.load() +anes_exog = anes_data.exog +anes_exog = sm.add_constant(anes_exog, prepend=False) + + +# Inspect the data: + +print(anes_data.exog[:5,:]) +print(anes_data.endog[:5]) + + +# Fit MNL model: + +mlogit_mod = sm.MNLogit(anes_data.endog, anes_exog) +mlogit_res = mlogit_mod.fit() +print(mlogit_res.params) + + +# ## Poisson +# +# Load the Rand data. Note that this example is similar to Cameron and Trivedi's `Microeconometrics` Table 20.5, but it is slightly different because of minor changes in the data. + +rand_data = sm.datasets.randhie.load() +rand_exog = rand_data.exog.view(float, type=np.ndarray).reshape(len(rand_data.exog), -1) +rand_exog = sm.add_constant(rand_exog, prepend=False) + + +# Fit Poisson model: + +poisson_mod = sm.Poisson(rand_data.endog, rand_exog) +poisson_res = poisson_mod.fit(method="newton") +print(poisson_res.summary()) + + +# ## Negative Binomial +# +# The negative binomial model gives slightly different results. + +mod_nbin = sm.NegativeBinomial(rand_data.endog, rand_exog) +res_nbin = mod_nbin.fit(disp=False) +print(res_nbin.summary()) + + +# ## Alternative solvers +# +# The default method for fitting discrete data MLE models is Newton-Raphson. You can use other solvers by using the ``method`` argument: + +mlogit_res = mlogit_mod.fit(method='bfgs', maxiter=100) +print(mlogit_res.summary()) + diff --git a/examples/python/formulas.py b/examples/python/formulas.py new file mode 100644 index 0000000..ac80cdc --- /dev/null +++ b/examples/python/formulas.py @@ -0,0 +1,138 @@ + +## Formulas: Fitting models using R-style formulas + +# Since version 0.5.0, ``statsmodels`` allows users to fit statistical models using R-style formulas. Internally, ``statsmodels`` uses the [patsy](http://patsy.readthedocs.org/) package to convert formulas and data to the matrices that are used in model fitting. The formula framework is quite powerful; this tutorial only scratches the surface. A full description of the formula language can be found in the ``patsy`` docs: +# +# * [Patsy formula language description](http://patsy.readthedocs.org/) +# +# ## Loading modules and functions +from __future__ import print_function +import numpy as np +import statsmodels.api as sm + + +##### Import convention + +# You can import explicitly from statsmodels.formula.api + +from statsmodels.formula.api import ols + + +# Alternatively, you can just use the `formula` namespace of the main `statsmodels.api`. + +sm.formula.ols + + +# Or you can use the following conventioin + +import statsmodels.formula.api as smf + + +# These names are just a convenient way to get access to each model's `from_formula` classmethod. See, for instance + +sm.OLS.from_formula + + +# All of the lower case models accept ``formula`` and ``data`` arguments, whereas upper case ones take ``endog`` and ``exog`` design matrices. ``formula`` accepts a string which describes the model in terms of a ``patsy`` formula. ``data`` takes a [pandas](http://pandas.pydata.org/) data frame or any other data structure that defines a ``__getitem__`` for variable names like a structured array or a dictionary of variables. +# +# ``dir(sm.formula)`` will print(a list of available models. +# +# Formula-compatible models have the following generic call signature: ``(formula, data, subset=None, *args, **kwargs)`` + +# +# ## OLS regression using formulas +# +# To begin, we fit the linear model described on the [Getting Started](gettingstarted.html) page. Download the data, subset columns, and list-wise delete to remove missing observations: + +dta = sm.datasets.get_rdataset("Guerry", "HistData", cache=True) + + +df = dta.data[['Lottery', 'Literacy', 'Wealth', 'Region']].dropna() +df.head() + + +# Fit the model: + +mod = ols(formula='Lottery ~ Literacy + Wealth + Region', data=df) +res = mod.fit() +print(res.summary()) + + +# ## Categorical variables +# +# Looking at the summary printed above, notice that ``patsy`` determined that elements of *Region* were text strings, so it treated *Region* as a categorical variable. `patsy`'s default is also to include an intercept, so we automatically dropped one of the *Region* categories. +# +# If *Region* had been an integer variable that we wanted to treat explicitly as categorical, we could have done so by using the ``C()`` operator: + +res = ols(formula='Lottery ~ Literacy + Wealth + C(Region)', data=df).fit() +print(res.params) + + +# Patsy's mode advanced features for categorical variables are discussed in: [Patsy: Contrast Coding Systems for categorical variables](contrasts.html) + +# ## Operators +# +# We have already seen that "~" separates the left-hand side of the model from the right-hand side, and that "+" adds new columns to the design matrix. +# +# ### Removing variables +# +# The "-" sign can be used to remove columns/variables. For instance, we can remove the intercept from a model by: + +res = ols(formula='Lottery ~ Literacy + Wealth + C(Region) -1 ', data=df).fit() +print(res.params) + + +# ### Multiplicative interactions +# +# ":" adds a new column to the design matrix with the interaction of the other two columns. "*" will also include the individual columns that were multiplied together: + +res1 = ols(formula='Lottery ~ Literacy : Wealth - 1', data=df).fit() +res2 = ols(formula='Lottery ~ Literacy * Wealth - 1', data=df).fit() +print(res1.params, '\n') +print(res2.params) + + +# Many other things are possible with operators. Please consult the [patsy docs](https://patsy.readthedocs.org/en/latest/formulas.html) to learn more. + +# ## Functions +# +# You can apply vectorized functions to the variables in your model: + +res = sm.ols(formula='Lottery ~ np.log(Literacy)', data=df).fit() +print(res.params) + + +# Define a custom function: + +def log_plus_1(x): + return np.log(x) + 1. +res = sm.ols(formula='Lottery ~ log_plus_1(Literacy)', data=df).fit() +print(res.params) + + +# Any function that is in the calling namespace is available to the formula. + +# ## Using formulas with models that do not (yet) support them +# +# Even if a given `statsmodels` function does not support formulas, you can still use `patsy`'s formula language to produce design matrices. Those matrices +# can then be fed to the fitting function as `endog` and `exog` arguments. +# +# To generate ``numpy`` arrays: + +import patsy +f = 'Lottery ~ Literacy * Wealth' +y,X = patsy.dmatrices(f, df, return_type='dataframe') +print(y[:5]) +print(X[:5]) + + +# To generate pandas data frames: + +f = 'Lottery ~ Literacy * Wealth' +y,X = patsy.dmatrices(f, df, return_type='dataframe') +print(y[:5]) +print(X[:5]) + + +print(sm.OLS(y, X).fit().summary()) + diff --git a/examples/python/generic_mle.py b/examples/python/generic_mle.py new file mode 100644 index 0000000..7f7b91e --- /dev/null +++ b/examples/python/generic_mle.py @@ -0,0 +1,214 @@ + +## Maximum Likelihood Estimation (Generic models) + +# This tutorial explains how to quickly implement new maximum likelihood models in `statsmodels`. We give two examples: +# +# 1. Probit model for binary dependent variables +# 2. Negative binomial model for count data +# +# The `GenericLikelihoodModel` class eases the process by providing tools such as automatic numeric differentiation and a unified interface to ``scipy`` optimization functions. Using ``statsmodels``, users can fit new MLE models simply by "plugging-in" a log-likelihood function. + +# ## Example 1: Probit model +from __future__ import print_function +import numpy as np +from scipy import stats +import statsmodels.api as sm +from statsmodels.base.model import GenericLikelihoodModel + + +# The ``Spector`` dataset is distributed with ``statsmodels``. You can access a vector of values for the dependent variable (``endog``) and a matrix of regressors (``exog``) like this: + +data = sm.datasets.spector.load_pandas() +exog = data.exog +endog = data.endog +print(sm.datasets.spector.NOTE) +print(data.exog.head()) + + +# Them, we add a constant to the matrix of regressors: + +exog = sm.add_constant(exog, prepend=True) + + +# To create your own Likelihood Model, you simply need to overwrite the loglike method. + +class MyProbit(GenericLikelihoodModel): + def loglike(self, params): + exog = self.exog + endog = self.endog + q = 2 * endog - 1 + return stats.norm.logcdf(q*np.dot(exog, params)).sum() + + +# Estimate the model and print(a summary: + +sm_probit_manual = MyProbit(endog, exog).fit() +print(sm_probit_manual.summary()) + + +# Compare your Probit implementation to ``statsmodels``' "canned" implementation: + +sm_probit_canned = sm.Probit(endog, exog).fit() + + +print(sm_probit_canned.params) +print(sm_probit_manual.params) + + +print(sm_probit_canned.cov_params()) +print(sm_probit_manual.cov_params()) + + +# Notice that the ``GenericMaximumLikelihood`` class provides automatic differentiation, so we didn't have to provide Hessian or Score functions in order to calculate the covariance estimates. + +# +# +# ## Example 2: Negative Binomial Regression for Count Data +# +# Consider a negative binomial regression model for count data with +# log-likelihood (type NB-2) function expressed as: +# +# $$ +# \mathcal{L}(\beta_j; y, \alpha) = \sum_{i=1}^n y_i ln +# \left ( \frac{\alpha exp(X_i'\beta)}{1+\alpha exp(X_i'\beta)} \right ) - +# \frac{1}{\alpha} ln(1+\alpha exp(X_i'\beta)) + ln \Gamma (y_i + 1/\alpha) - ln \Gamma (y_i+1) - ln \Gamma (1/\alpha) +# $$ +# +# with a matrix of regressors $X$, a vector of coefficients $\beta$, +# and the negative binomial heterogeneity parameter $\alpha$. +# +# Using the ``nbinom`` distribution from ``scipy``, we can write this likelihood +# simply as: +# + +import numpy as np +from scipy.stats import nbinom + + +def _ll_nb2(y, X, beta, alph): + mu = np.exp(np.dot(X, beta)) + size = 1/alph + prob = size/(size+mu) + ll = nbinom.logpmf(y, size, prob) + return ll + + +# ### New Model Class +# +# We create a new model class which inherits from ``GenericLikelihoodModel``: + +from statsmodels.base.model import GenericLikelihoodModel + + +class NBin(GenericLikelihoodModel): + def __init__(self, endog, exog, **kwds): + super(NBin, self).__init__(endog, exog, **kwds) + + def nloglikeobs(self, params): + alph = params[-1] + beta = params[:-1] + ll = _ll_nb2(self.endog, self.exog, beta, alph) + return -ll + + def fit(self, start_params=None, maxiter=10000, maxfun=5000, **kwds): + # we have one additional parameter and we need to add it for summary + self.exog_names.append('alpha') + if start_params == None: + # Reasonable starting values + start_params = np.append(np.zeros(self.exog.shape[1]), .5) + # intercept + start_params[-2] = np.log(self.endog.mean()) + return super(NBin, self).fit(start_params=start_params, + maxiter=maxiter, maxfun=maxfun, + **kwds) + + +# Two important things to notice: +# +# + ``nloglikeobs``: This function should return one evaluation of the negative log-likelihood function per observation in your dataset (i.e. rows of the endog/X matrix). +# + ``start_params``: A one-dimensional array of starting values needs to be provided. The size of this array determines the number of parameters that will be used in optimization. +# +# That's it! You're done! +# +# ### Usage Example +# +# The [Medpar](http://vincentarelbundock.github.com/Rdatasets/doc/COUNT/medpar.html) +# dataset is hosted in CSV format at the [Rdatasets repository](http://vincentarelbundock.github.com/Rdatasets). We use the ``read_csv`` +# function from the [Pandas library](http://pandas.pydata.org) to load the data +# in memory. We then print(the first few columns: +# + +import statsmodels.api as sm + + +medpar = sm.datasets.get_rdataset("medpar", "COUNT", cache=True).data + +medpar.head() + + +# The model we are interested in has a vector of non-negative integers as +# dependent variable (``los``), and 5 regressors: ``Intercept``, ``type2``, +# ``type3``, ``hmo``, ``white``. +# +# For estimation, we need to create two variables to hold our regressors and the outcome variable. These can be ndarrays or pandas objects. + +y = medpar.los +X = medpar[["type2", "type3", "hmo", "white"]] +X["constant"] = 1 + + +# Then, we fit the model and extract some information: + +mod = NBin(y, X) +res = mod.fit() + + +# Extract parameter estimates, standard errors, p-values, AIC, etc.: + +print('Parameters: ', res.params) +print('Standard errors: ', res.bse) +print('P-values: ', res.pvalues) +print('AIC: ', res.aic) + + +# As usual, you can obtain a full list of available information by typing +# ``dir(res)``. +# We can also look at the summary of the estimation results. + +print(res.summary()) + + +# ### Testing + +# We can check the results by using the statsmodels implementation of the Negative Binomial model, which uses the analytic score function and Hessian. + +res_nbin = sm.NegativeBinomial(y, X).fit(disp=0) +print(res_nbin.summary()) + + +print(res_nbin.params) + + +print(res_nbin.bse) + + +# Or we could compare them to results obtained using the MASS implementation for R: +# +# url = 'http://vincentarelbundock.github.com/Rdatasets/csv/COUNT/medpar.csv' +# medpar = read.csv(url) +# f = los~factor(type)+hmo+white +# +# library(MASS) +# mod = glm.nb(f, medpar) +# coef(summary(mod)) +# Estimate Std. Error z value Pr(>|z|) +# (Intercept) 2.31027893 0.06744676 34.253370 3.885556e-257 +# factor(type)2 0.22124898 0.05045746 4.384861 1.160597e-05 +# factor(type)3 0.70615882 0.07599849 9.291748 1.517751e-20 +# hmo -0.06795522 0.05321375 -1.277024 2.015939e-01 +# white -0.12906544 0.06836272 -1.887951 5.903257e-02 +# +# ### Numerical precision +# +# The ``statsmodels`` generic MLE and ``R`` parameter estimates agree up to the fourth decimal. The standard errors, however, agree only up to the second decimal. This discrepancy is the result of imprecision in our Hessian numerical estimates. In the current context, the difference between ``MASS`` and ``statsmodels`` standard error estimates is substantively irrelevant, but it highlights the fact that users who need very precise estimates may not always want to rely on default settings when using numerical derivatives. In such cases, it is better to use analytical derivatives with the ``LikelihoodModel`` class. +# diff --git a/examples/python/glm.py b/examples/python/glm.py new file mode 100644 index 0000000..f3bf979 --- /dev/null +++ b/examples/python/glm.py @@ -0,0 +1,167 @@ + +## Generalized Linear Models +from __future__ import print_function +import numpy as np +import statsmodels.api as sm +from scipy import stats +from matplotlib import pyplot as plt + + +# ## GLM: Binomial response data +# +# ### Load data +# +# In this example, we use the Star98 dataset which was taken with permission +# from Jeff Gill (2000) Generalized linear models: A unified approach. Codebook +# information can be obtained by typing: + +print(sm.datasets.star98.NOTE) + + +# Load the data and add a constant to the exogenous (independent) variables: + +data = sm.datasets.star98.load() +data.exog = sm.add_constant(data.exog, prepend=False) + + +# The dependent variable is N by 2 (Success: NABOVE, Failure: NBELOW): + +print(data.endog[:5,:]) + + +# The independent variables include all the other variables described above, as +# well as the interaction terms: + +print(data.exog[:2,:]) + + +# ### Fit and summary + +glm_binom = sm.GLM(data.endog, data.exog, family=sm.families.Binomial()) +res = glm_binom.fit() +print(res.summary()) + + +# ### Quantities of interest + +print('Total number of trials:', data.endog[0].sum()) +print('Parameters: ', res.params) +print('T-values: ', res.tvalues) + + +# First differences: We hold all explanatory variables constant at their means and manipulate the percentage of low income households to assess its impact on the response variables: + +means = data.exog.mean(axis=0) +means25 = means.copy() +means25[0] = stats.scoreatpercentile(data.exog[:,0], 25) +means75 = means.copy() +means75[0] = lowinc_75per = stats.scoreatpercentile(data.exog[:,0], 75) +resp_25 = res.predict(means25) +resp_75 = res.predict(means75) +diff = resp_75 - resp_25 + + +# The interquartile first difference for the percentage of low income households in a school district is: + +print("%2.4f%%" % (diff*100)) + + +# ### Plots +# +# We extract information that will be used to draw some interesting plots: + +nobs = res.nobs +y = data.endog[:,0]/data.endog.sum(1) +yhat = res.mu + + +# Plot yhat vs y: + +from statsmodels.graphics.api import abline_plot + + +fig, ax = plt.subplots() +ax.scatter(yhat, y) +line_fit = sm.OLS(y, sm.add_constant(yhat, prepend=True)).fit() +abline_plot(model_results=line_fit, ax=ax) + + +ax.set_title('Model Fit Plot') +ax.set_ylabel('Observed values') +ax.set_xlabel('Fitted values'); + + +# Plot yhat vs. Pearson residuals: + +fig, ax = plt.subplots() + +ax.scatter(yhat, res.resid_pearson) +ax.hlines(0, 0, 1) +ax.set_xlim(0, 1) +ax.set_title('Residual Dependence Plot') +ax.set_ylabel('Pearson Residuals') +ax.set_xlabel('Fitted values') + + +# Histogram of standardized deviance residuals: + +from scipy import stats + +fig, ax = plt.subplots() + +resid = res.resid_deviance.copy() +resid_std = stats.zscore(resid) +ax.hist(resid_std, bins=25) +ax.set_title('Histogram of standardized deviance residuals'); + + +# QQ Plot of Deviance Residuals: + +from statsmodels import graphics +graphics.gofplots.qqplot(resid, line='r') + + +# ## GLM: Gamma for proportional count response +# +# ### Load data +# +# In the example above, we printed the ``NOTE`` attribute to learn about the +# Star98 dataset. Statsmodels datasets ships with other useful information. For +# example: + +print(sm.datasets.scotland.DESCRLONG) + + +# Load the data and add a constant to the exogenous variables: + +data2 = sm.datasets.scotland.load() +data2.exog = sm.add_constant(data2.exog, prepend=False) +print(data2.exog[:5,:]) +print(data2.endog[:5]) + + +# ### Fit and summary + +glm_gamma = sm.GLM(data2.endog, data2.exog, family=sm.families.Gamma()) +glm_results = glm_gamma.fit() +print(glm_results.summary()) + + +# ## GLM: Gaussian distribution with a noncanonical link +# +# ### Artificial data + +nobs2 = 100 +x = np.arange(nobs2) +np.random.seed(54321) +X = np.column_stack((x,x**2)) +X = sm.add_constant(X, prepend=False) +lny = np.exp(-(.03*x + .0001*x**2 - 1.0)) + .001 * np.random.rand(nobs2) + + +# ### Fit and summary + +gauss_log = sm.GLM(lny, X, family=sm.families.Gaussian(sm.families.links.log)) +gauss_log_results = gauss_log.fit() +print(gauss_log_results.summary()) + diff --git a/examples/python/glm_formula.py b/examples/python/glm_formula.py new file mode 100644 index 0000000..3184fec --- /dev/null +++ b/examples/python/glm_formula.py @@ -0,0 +1,40 @@ + +## Generalized Linear Models (Formula) + +# This notebook illustrates how you can use R-style formulas to fit Generalized Linear Models. +# +# To begin, we load the ``Star98`` dataset and we construct a formula and pre-process the data: + +from __future__ import print_function +import statsmodels.api as sm +import statsmodels.formula.api as smf +star98 = sm.datasets.star98.load_pandas().data +formula = 'SUCCESS ~ LOWINC + PERASIAN + PERBLACK + PERHISP + PCTCHRT + PCTYRRND + PERMINTE*AVYRSEXP*AVSALK + PERSPENK*PTRATIO*PCTAF' +dta = star98[['NABOVE', 'NBELOW', 'LOWINC', 'PERASIAN', 'PERBLACK', 'PERHISP', + 'PCTCHRT', 'PCTYRRND', 'PERMINTE', 'AVYRSEXP', 'AVSALK', + 'PERSPENK', 'PTRATIO', 'PCTAF']] +endog = dta['NABOVE'] / (dta['NABOVE'] + dta.pop('NBELOW')) +del dta['NABOVE'] +dta['SUCCESS'] = endog + + +# Then, we fit the GLM model: + +mod1 = smf.glm(formula=formula, data=dta, family=sm.families.Binomial()).fit() +mod1.summary() + + +# Finally, we define a function to operate customized data transformation using the formula framework: + +def double_it(x): + return 2 * x +formula = 'SUCCESS ~ double_it(LOWINC) + PERASIAN + PERBLACK + PERHISP + PCTCHRT + PCTYRRND + PERMINTE*AVYRSEXP*AVSALK + PERSPENK*PTRATIO*PCTAF' +mod2 = smf.glm(formula=formula, data=dta, family=sm.families.Binomial()).fit() +mod2.summary() + + +# As expected, the coefficient for ``double_it(LOWINC)`` in the second model is half the size of the ``LOWINC`` coefficient from the first model: + +print(mod1.params[1]) +print(mod2.params[1] * 2) + diff --git a/examples/python/gls.py b/examples/python/gls.py new file mode 100644 index 0000000..b2c8afb --- /dev/null +++ b/examples/python/gls.py @@ -0,0 +1,84 @@ + +## Generalized Least Squares + +from __future__ import print_function +import statsmodels.api as sm +import numpy as np +from statsmodels.iolib.table import (SimpleTable, default_txt_fmt) + + +# The Longley dataset is a time series dataset: + +data = sm.datasets.longley.load() +data.exog = sm.add_constant(data.exog) +print(data.exog[:5]) + + +# +# Let's assume that the data is heteroskedastic and that we know +# the nature of the heteroskedasticity. We can then define +# `sigma` and use it to give us a GLS model +# +# First we will obtain the residuals from an OLS fit + +ols_resid = sm.OLS(data.endog, data.exog).fit().resid + + +# Assume that the error terms follow an AR(1) process with a trend: +# +# $\epsilon_i = \beta_0 + \rho\epsilon_{i-1} + \eta_i$ +# +# where $\eta \sim N(0,\Sigma^2)$ +# +# and that $\rho$ is simply the correlation of the residual a consistent estimator for rho is to regress the residuals on the lagged residuals + +resid_fit = sm.OLS(ols_resid[1:], sm.add_constant(ols_resid[:-1])).fit() +print(resid_fit.tvalues[1]) +print(resid_fit.pvalues[1]) + + +# While we don't have strong evidence that the errors follow an AR(1) +# process we continue + +rho = resid_fit.params[1] + + +# As we know, an AR(1) process means that near-neighbors have a stronger +# relation so we can give this structure by using a toeplitz matrix + +from scipy.linalg import toeplitz + +toeplitz(range(5)) + + +order = toeplitz(range(len(ols_resid))) + + +# so that our error covariance structure is actually rho**order +# which defines an autocorrelation structure + +sigma = rho**order +gls_model = sm.GLS(data.endog, data.exog, sigma=sigma) +gls_results = gls_model.fit() + + +# Of course, the exact rho in this instance is not known so it it might make more sense to use feasible gls, which currently only has experimental support. +# +# We can use the GLSAR model with one lag, to get to a similar result: + +glsar_model = sm.GLSAR(data.endog, data.exog, 1) +glsar_results = glsar_model.iterative_fit(1) +print(glsar_results.summary()) + + +# Comparing gls and glsar results, we see that there are some small +# differences in the parameter estimates and the resulting standard +# errors of the parameter estimate. This might be do to the numerical +# differences in the algorithm, e.g. the treatment of initial conditions, +# because of the small number of observations in the longley dataset. + +print(gls_results.params) +print(glsar_results.params) +print(gls_results.bse) +print(glsar_results.bse) + diff --git a/examples/python/interactions_anova.py b/examples/python/interactions_anova.py new file mode 100644 index 0000000..661b422 --- /dev/null +++ b/examples/python/interactions_anova.py @@ -0,0 +1,392 @@ + +## Interactions and ANOVA + +# Note: This script is based heavily on Jonathan Taylor's class notes http://www.stanford.edu/class/stats191/interactions.html +# +# Download and format data: + +from __future__ import print_function +from statsmodels.compat import urlopen +import numpy as np +np.set_printoptions(precision=4, suppress=True) +import statsmodels.api as sm +import pandas as pd +import matplotlib.pyplot as plt +from statsmodels.formula.api import ols +from statsmodels.graphics.api import interaction_plot, abline_plot +from statsmodels.stats.anova import anova_lm + +try: + salary_table = pd.read_csv('salary.table') +except: # recent pandas can read URL without urlopen + url = 'http://stats191.stanford.edu/data/salary.table' + fh = urlopen(url) + salary_table = pd.read_table(fh) + salary_table.to_csv('salary.table') + +E = salary_table.E +M = salary_table.M +X = salary_table.X +S = salary_table.S + + +# Take a look at the data: + +plt.figure(figsize=(6,6)) +symbols = ['D', '^'] +colors = ['r', 'g', 'blue'] +factor_groups = salary_table.groupby(['E','M']) +for values, group in factor_groups: + i,j = values + plt.scatter(group['X'], group['S'], marker=symbols[j], color=colors[i-1], + s=144) +plt.xlabel('Experience'); +plt.ylabel('Salary'); + + +# Fit a linear model: + +formula = 'S ~ C(E) + C(M) + X' +lm = ols(formula, salary_table).fit() +print(lm.summary()) + + +# Have a look at the created design matrix: + +lm.model.exog[:5] + + +# Or since we initially passed in a DataFrame, we have a DataFrame available in + +lm.model.data.orig_exog[:5] + + +# We keep a reference to the original untouched data in + +lm.model.data.frame[:5] + + +# Influence statistics + +infl = lm.get_influence() +print(infl.summary_table()) + + +# or get a dataframe + +df_infl = infl.summary_frame() + + +df_infl[:5] + + +# Now plot the reiduals within the groups separately: + +resid = lm.resid +plt.figure(figsize=(6,6)); +for values, group in factor_groups: + i,j = values + group_num = i*2 + j - 1 # for plotting purposes + x = [group_num] * len(group) + plt.scatter(x, resid[group.index], marker=symbols[j], color=colors[i-1], + s=144, edgecolors='black') +plt.xlabel('Group') +plt.ylabel('Residuals') + + +# Now we will test some interactions using anova or f_test + +interX_lm = ols("S ~ C(E) * X + C(M)", salary_table).fit() +print(interX_lm.summary()) + + +# Do an ANOVA check + +from statsmodels.stats.api import anova_lm + +table1 = anova_lm(lm, interX_lm) +print(table1) + +interM_lm = ols("S ~ X + C(E)*C(M)", data=salary_table).fit() +print(interM_lm.summary()) + +table2 = anova_lm(lm, interM_lm) +print(table2) + + +# The design matrix as a DataFrame + +interM_lm.model.data.orig_exog[:5] + + +# The design matrix as an ndarray + +interM_lm.model.exog +interM_lm.model.exog_names + + +infl = interM_lm.get_influence() +resid = infl.resid_studentized_internal +plt.figure(figsize=(6,6)) +for values, group in factor_groups: + i,j = values + idx = group.index + plt.scatter(X[idx], resid[idx], marker=symbols[j], color=colors[i-1], + s=144, edgecolors='black') +plt.xlabel('X'); +plt.ylabel('standardized resids'); + + +# Looks like one observation is an outlier. + +drop_idx = abs(resid).argmax() +print(drop_idx) # zero-based index +idx = salary_table.index.drop(drop_idx) + +lm32 = ols('S ~ C(E) + X + C(M)', data=salary_table, subset=idx).fit() + +print(lm32.summary()) +print('\n') + +interX_lm32 = ols('S ~ C(E) * X + C(M)', data=salary_table, subset=idx).fit() + +print(interX_lm32.summary()) +print('\n') + + +table3 = anova_lm(lm32, interX_lm32) +print(table3) +print('\n') + + +interM_lm32 = ols('S ~ X + C(E) * C(M)', data=salary_table, subset=idx).fit() + +table4 = anova_lm(lm32, interM_lm32) +print(table4) +print('\n') + + +# Replot the residuals + +try: + resid = interM_lm32.get_influence().summary_frame()['standard_resid'] +except: + resid = interM_lm32.get_influence().summary_frame()['standard_resid'] + +plt.figure(figsize=(6,6)) +for values, group in factor_groups: + i,j = values + idx = group.index + plt.scatter(X[idx], resid[idx], marker=symbols[j], color=colors[i-1], + s=144, edgecolors='black') +plt.xlabel('X[~[32]]'); +plt.ylabel('standardized resids'); + + +# Plot the fitted values + +lm_final = ols('S ~ X + C(E)*C(M)', data = salary_table.drop([drop_idx])).fit() +mf = lm_final.model.data.orig_exog +lstyle = ['-','--'] + +plt.figure(figsize=(6,6)) +for values, group in factor_groups: + i,j = values + idx = group.index + plt.scatter(X[idx], S[idx], marker=symbols[j], color=colors[i-1], + s=144, edgecolors='black') + # drop NA because there is no idx 32 in the final model + plt.plot(mf.X[idx].dropna(), lm_final.fittedvalues[idx].dropna(), + ls=lstyle[j], color=colors[i-1]) +plt.xlabel('Experience'); +plt.ylabel('Salary'); + + +# From our first look at the data, the difference between Master's and PhD in the management group is different than in the non-management group. This is an interaction between the two qualitative variables management,M and education,E. We can visualize this by first removing the effect of experience, then plotting the means within each of the 6 groups using interaction.plot. + +U = S - X * interX_lm32.params['X'] + +plt.figure(figsize=(6,6)) +interaction_plot(E, M, U, colors=['red','blue'], markers=['^','D'], + markersize=10, ax=plt.gca()) + + +# ## Minority Employment Data + +try: + jobtest_table = pd.read_table('jobtest.table') +except: # don't have data already + url = 'http://stats191.stanford.edu/data/jobtest.table' + jobtest_table = pd.read_table(url) + +factor_group = jobtest_table.groupby(['ETHN']) + +plt.figure(figsize=(6,6)) +colors = ['purple', 'green'] +markers = ['o', 'v'] +for factor, group in factor_group: + plt.scatter(group['TEST'], group['JPERF'], color=colors[factor], + marker=markers[factor], s=12**2) +plt.xlabel('TEST'); +plt.ylabel('JPERF'); + +min_lm = ols('JPERF ~ TEST', data=jobtest_table).fit() +print(min_lm.summary()) + +plt.figure(figsize=(6,6)); +for factor, group in factor_group: + plt.scatter(group['TEST'], group['JPERF'], color=colors[factor], + marker=markers[factor], s=12**2) + +plt.xlabel('TEST') +plt.ylabel('JPERF') +abline_plot(model_results = min_lm, ax=plt.gca()); + +min_lm2 = ols('JPERF ~ TEST + TEST:ETHN', + data=jobtest_table).fit() + +print(min_lm2.summary()) + +plt.figure(figsize=(6,6)); +for factor, group in factor_group: + plt.scatter(group['TEST'], group['JPERF'], color=colors[factor], + marker=markers[factor], s=12**2) + +abline_plot(intercept = min_lm2.params['Intercept'], + slope = min_lm2.params['TEST'], ax=plt.gca(), color='purple'); +abline_plot(intercept = min_lm2.params['Intercept'], + slope = min_lm2.params['TEST'] + min_lm2.params['TEST:ETHN'], + ax=plt.gca(), color='green'); + + +min_lm3 = ols('JPERF ~ TEST + ETHN', data = jobtest_table).fit() +print(min_lm3.summary()) + +plt.figure(figsize=(6,6)); +for factor, group in factor_group: + plt.scatter(group['TEST'], group['JPERF'], color=colors[factor], + marker=markers[factor], s=12**2) + +abline_plot(intercept = min_lm3.params['Intercept'], + slope = min_lm3.params['TEST'], ax=plt.gca(), color='purple'); +abline_plot(intercept = min_lm3.params['Intercept'] + min_lm3.params['ETHN'], + slope = min_lm3.params['TEST'], ax=plt.gca(), color='green'); + + +min_lm4 = ols('JPERF ~ TEST * ETHN', data = jobtest_table).fit() +print(min_lm4.summary()) + +plt.figure(figsize=(6,6)); +for factor, group in factor_group: + plt.scatter(group['TEST'], group['JPERF'], color=colors[factor], + marker=markers[factor], s=12**2) + +abline_plot(intercept = min_lm4.params['Intercept'], + slope = min_lm4.params['TEST'], ax=plt.gca(), color='purple'); +abline_plot(intercept = min_lm4.params['Intercept'] + min_lm4.params['ETHN'], + slope = min_lm4.params['TEST'] + min_lm4.params['TEST:ETHN'], + ax=plt.gca(), color='green'); + + +# is there any effect of ETHN on slope or intercept? +table5 = anova_lm(min_lm, min_lm4) +print(table5) + +# is there any effect of ETHN on intercept +table6 = anova_lm(min_lm, min_lm3) +print(table6) + +# is there any effect of ETHN on slope +table7 = anova_lm(min_lm, min_lm2) +print(table7) + +# is it just the slope or both? +table8 = anova_lm(min_lm2, min_lm4) +print(table8) + + +# ## One-way ANOVA + +try: + rehab_table = pd.read_csv('rehab.table') +except: + url = 'http://stats191.stanford.edu/data/rehab.csv' + rehab_table = pd.read_table(url, delimiter=",") + rehab_table.to_csv('rehab.table') + +plt.figure(figsize=(6,6)) +rehab_table.boxplot('Time', 'Fitness', ax=plt.gca()) + +rehab_lm = ols('Time ~ C(Fitness)', data=rehab_table).fit() +table9 = anova_lm(rehab_lm) +print(table9) + +print(rehab_lm.model.data.orig_exog) + +print(rehab_lm.summary()) + + +# ## Two-way ANOVA + +try: + kidney_table = pd.read_table('./kidney.table') +except: + url = 'http://stats191.stanford.edu/data/kidney.table' + kidney_table = pd.read_table(url, delimiter=" *") + + +# Explore the dataset + +kidney_table.groupby(['Weight', 'Duration']).size() + + +# Balanced panel + +kt = kidney_table +plt.figure(figsize=(6,6)) +interaction_plot(kt['Weight'], kt['Duration'], np.log(kt['Days']+1), + colors=['red', 'blue'], markers=['D','^'], ms=10, ax=plt.gca()) + + +# You have things available in the calling namespace available in the formula evaluation namespace + +kidney_lm = ols('np.log(Days+1) ~ C(Duration) * C(Weight)', data=kt).fit() + +table10 = anova_lm(kidney_lm) + +print(anova_lm(ols('np.log(Days+1) ~ C(Duration) + C(Weight)', + data=kt).fit(), kidney_lm)) +print(anova_lm(ols('np.log(Days+1) ~ C(Duration)', data=kt).fit(), + ols('np.log(Days+1) ~ C(Duration) + C(Weight, Sum)', + data=kt).fit())) +print(anova_lm(ols('np.log(Days+1) ~ C(Weight)', data=kt).fit(), + ols('np.log(Days+1) ~ C(Duration) + C(Weight, Sum)', + data=kt).fit())) + + +# ## Sum of squares +# +# Illustrates the use of different types of sums of squares (I,II,II) +# and how the Sum contrast can be used to produce the same output between +# the 3. +# +# Types I and II are equivalent under a balanced design. +# +# Don't use Type III with non-orthogonal contrast - ie., Treatment + +sum_lm = ols('np.log(Days+1) ~ C(Duration, Sum) * C(Weight, Sum)', + data=kt).fit() + +print(anova_lm(sum_lm)) +print(anova_lm(sum_lm, typ=2)) +print(anova_lm(sum_lm, typ=3)) + +nosum_lm = ols('np.log(Days+1) ~ C(Duration, Treatment) * C(Weight, Treatment)', + data=kt).fit() +print(anova_lm(nosum_lm)) +print(anova_lm(nosum_lm, typ=2)) +print(anova_lm(nosum_lm, typ=3)) + + + + diff --git a/examples/python/kernel_density.py b/examples/python/kernel_density.py new file mode 100644 index 0000000..006118b --- /dev/null +++ b/examples/python/kernel_density.py @@ -0,0 +1,83 @@ + +## Kernel Density Estimation + +import numpy as np +from scipy import stats +import statsmodels.api as sm +import matplotlib.pyplot as plt +from statsmodels.distributions.mixture_rvs import mixture_rvs + + +##### A univariate example. + +np.random.seed(12345) + + +obs_dist1 = mixture_rvs([.25,.75], size=10000, dist=[stats.norm, stats.norm], + kwargs = (dict(loc=-1,scale=.5),dict(loc=1,scale=.5))) + + +kde = sm.nonparametric.KDEUnivariate(obs_dist1) +kde.fit() + + +fig = plt.figure(figsize=(12,8)) +ax = fig.add_subplot(111) +ax.hist(obs_dist1, bins=50, normed=True, color='red') +ax.plot(kde.support, kde.density, lw=2, color='black'); + + +obs_dist2 = mixture_rvs([.25,.75], size=10000, dist=[stats.norm, stats.beta], + kwargs = (dict(loc=-1,scale=.5),dict(loc=1,scale=1,args=(1,.5)))) + +kde2 = sm.nonparametric.KDEUnivariate(obs_dist2) +kde2.fit() + + +fig = plt.figure(figsize=(12,8)) +ax = fig.add_subplot(111) +ax.hist(obs_dist2, bins=50, normed=True, color='red') +ax.plot(kde2.support, kde2.density, lw=2, color='black'); + + +# The fitted KDE object is a full non-parametric distribution. + +obs_dist3 = mixture_rvs([.25,.75], size=1000, dist=[stats.norm, stats.norm], + kwargs = (dict(loc=-1,scale=.5),dict(loc=1,scale=.5))) +kde3 = sm.nonparametric.KDEUnivariate(obs_dist3) +kde3.fit() + + +kde3.entropy + + +kde3.evaluate(-1) + + +##### CDF + +fig = plt.figure(figsize=(12,8)) +ax = fig.add_subplot(111) +ax.plot(kde3.support, kde3.cdf); + + +##### Cumulative Hazard Function + +fig = plt.figure(figsize=(12,8)) +ax = fig.add_subplot(111) +ax.plot(kde3.support, kde3.cumhazard); + + +##### Inverse CDF + +fig = plt.figure(figsize=(12,8)) +ax = fig.add_subplot(111) +ax.plot(kde3.support, kde3.icdf); + + +##### Survival Function + +fig = plt.figure(figsize=(12,8)) +ax = fig.add_subplot(111) +ax.plot(kde3.support, kde3.sf); + diff --git a/examples/python/ols.py b/examples/python/ols.py new file mode 100644 index 0000000..7c884db --- /dev/null +++ b/examples/python/ols.py @@ -0,0 +1,227 @@ + +## Ordinary Least Squares + +from __future__ import print_function +import numpy as np +import statsmodels.api as sm +import matplotlib.pyplot as plt +from statsmodels.sandbox.regression.predstd import wls_prediction_std + +np.random.seed(9876789) + + +# ## OLS estimation +# +# Artificial data: + +nsample = 100 +x = np.linspace(0, 10, 100) +X = np.column_stack((x, x**2)) +beta = np.array([1, 0.1, 10]) +e = np.random.normal(size=nsample) + + +# Our model needs an intercept so we add a column of 1s: + +X = sm.add_constant(X) +y = np.dot(X, beta) + e + + +# Inspect data: + +X = sm.add_constant(X) +y = np.dot(X, beta) + e + + +# Fit and summary: + +model = sm.OLS(y, X) +results = model.fit() +print(results.summary()) + + +# Quantities of interest can be extracted directly from the fitted model. Type ``dir(results)`` for a full list. Here are some examples: + +print('Parameters: ', results.params) +print('R2: ', results.rsquared) + + +# ## OLS non-linear curve but linear in parameters +# +# We simulate artificial data with a non-linear relationship between x and y: + +nsample = 50 +sig = 0.5 +x = np.linspace(0, 20, nsample) +X = np.column_stack((x, np.sin(x), (x-5)**2, np.ones(nsample))) +beta = [0.5, 0.5, -0.02, 5.] + +y_true = np.dot(X, beta) +y = y_true + sig * np.random.normal(size=nsample) + + +# Fit and summary: + +res = sm.OLS(y, X).fit() +print(res.summary()) + + +# Extract other quantities of interest: + +print('Parameters: ', res.params) +print('Standard errors: ', res.bse) +print('Predicted values: ', res.predict()) + + +# Draw a plot to compare the true relationship to OLS predictions. Confidence intervals around the predictions are built using the ``wls_prediction_std`` command. + +prstd, iv_l, iv_u = wls_prediction_std(res) + +fig, ax = plt.subplots() + +ax.plot(x, y, 'o', label="data") +ax.plot(x, y_true, 'b-', label="True") +ax.plot(x, res.fittedvalues, 'r--.', label="OLS") +ax.plot(x, iv_u, 'r--') +ax.plot(x, iv_l, 'r--') +ax.legend(loc='best'); + + +# ## OLS with dummy variables +# +# We generate some artificial data. There are 3 groups which will be modelled using dummy variables. Group 0 is the omitted/benchmark category. + +nsample = 50 +groups = np.zeros(nsample, int) +groups[20:40] = 1 +groups[40:] = 2 +#dummy = (groups[:,None] == np.unique(groups)).astype(float) + +dummy = sm.categorical(groups, drop=True) +x = np.linspace(0, 20, nsample) +# drop reference category +X = np.column_stack((x, dummy[:,1:])) +X = sm.add_constant(X, prepend=False) + +beta = [1., 3, -3, 10] +y_true = np.dot(X, beta) +e = np.random.normal(size=nsample) +y = y_true + e + + +# Inspect the data: + +print(X[:5,:]) +print(y[:5]) +print(groups) +print(dummy[:5,:]) + + +# Fit and summary: + +res2 = sm.OLS(y, X).fit() +print(res.summary()) + + +# Draw a plot to compare the true relationship to OLS predictions: + +prstd, iv_l, iv_u = wls_prediction_std(res2) + +fig, ax = plt.subplots() + +ax.plot(x, y, 'o', label="Data") +ax.plot(x, y_true, 'b-', label="True") +ax.plot(x, res2.fittedvalues, 'r--.', label="Predicted") +ax.plot(x, iv_u, 'r--') +ax.plot(x, iv_l, 'r--') +ax.legend(loc="best") + + +# ## Joint hypothesis test +# +# ### F test +# +# We want to test the hypothesis that both coefficients on the dummy variables are equal to zero, that is, $R \times \beta = 0$. An F test leads us to strongly reject the null hypothesis of identical constant in the 3 groups: + +R = [[0, 1, 0, 0], [0, 0, 1, 0]] +print(np.array(R)) +print(res2.f_test(R)) + + +# You can also use formula-like syntax to test hypotheses + +print(res2.f_test("x2 = x3 = 0")) + + +# ### Small group effects +# +# If we generate artificial data with smaller group effects, the T test can no longer reject the Null hypothesis: + +beta = [1., 0.3, -0.0, 10] +y_true = np.dot(X, beta) +y = y_true + np.random.normal(size=nsample) + +res3 = sm.OLS(y, X).fit() + + +print(res3.f_test(R)) + + +print(res3.f_test("x2 = x3 = 0")) + + +# ### Multicollinearity +# +# The Longley dataset is well known to have high multicollinearity. That is, the exogenous predictors are highly correlated. This is problematic because it can affect the stability of our coefficient estimates as we make minor changes to model specification. + +from statsmodels.datasets.longley import load_pandas +y = load_pandas().endog +X = load_pandas().exog +X = sm.add_constant(X) + + +# Fit and summary: + +ols_model = sm.OLS(y, X) +ols_results = ols_model.fit() +print(ols_results.summary()) + + +# #### Condition number +# +# One way to assess multicollinearity is to compute the condition number. Values over 20 are worrisome (see Greene 4.9). The first step is to normalize the independent variables to have unit length: + +for i, name in enumerate(X): + if name == "const": + continue + norm_x[:,i] = X[name]/np.linalg.norm(X[name]) +norm_xtx = np.dot(norm_x.T,norm_x) + + +# Then, we take the square root of the ratio of the biggest to the smallest eigen values. + +eigs = np.linalg.eigvals(norm_xtx) +condition_number = np.sqrt(eigs.max() / eigs.min()) +print(condition_number) + + +# #### Dropping an observation +# +# Greene also points out that dropping a single observation can have a dramatic effect on the coefficient estimates: + +ols_results2 = sm.OLS(y.ix[:14], X.ix[:14]).fit() +print("Percentage change %4.2f%%\n"*7 % tuple([i for i in (ols_results2.params - ols_results.params)/ols_results.params*100])) + + +# We can also look at formal statistics for this such as the DFBETAS -- a standardized measure of how much each coefficient changes when that observation is left out. + +infl = ols_results.get_influence() + + +# In general we may consider DBETAS in absolute value greater than $2/\sqrt{N}$ to be influential observations + +2./len(X)**.5 + + +print(infl.summary_frame().filter(regex="dfb")) + diff --git a/examples/python/predict.py b/examples/python/predict.py new file mode 100644 index 0000000..ee884d2 --- /dev/null +++ b/examples/python/predict.py @@ -0,0 +1,73 @@ + +## Prediction (out of sample) + +from __future__ import print_function +import numpy as np +import statsmodels.api as sm + + +# ## Artificial data + +nsample = 50 +sig = 0.25 +x1 = np.linspace(0, 20, nsample) +X = np.column_stack((x1, np.sin(x1), (x1-5)**2)) +X = sm.add_constant(X) +beta = [5., 0.5, 0.5, -0.02] +y_true = np.dot(X, beta) +y = y_true + sig * np.random.normal(size=nsample) + + +# ## Estimation + +olsmod = sm.OLS(y, X) +olsres = olsmod.fit() +print(olsres.summary()) + + +# ## In-sample prediction + +ypred = olsres.predict(X) +print(ypred) + + +# ## Create a new sample of explanatory variables Xnew, predict and plot + +x1n = np.linspace(20.5,25, 10) +Xnew = np.column_stack((x1n, np.sin(x1n), (x1n-5)**2)) +Xnew = sm.add_constant(Xnew) +ynewpred = olsres.predict(Xnew) # predict out of sample +print(ynewpred) + + +# ## Plot comparison + +import matplotlib.pyplot as plt + +fig, ax = plt.subplots() +ax.plot(x1, y, 'o', label="Data") +ax.plot(x1, y_true, 'b-', label="True") +ax.plot(np.hstack((x1, x1n)), np.hstack((ypred, ynewpred)), 'r', label="OLS prediction") +ax.legend(loc="best"); + + +### Predicting with Formulas + +# Using formulas can make both estimation and prediction a lot easier + +from statsmodels.formula.api import ols + +data = {"x1" : x1, "y" : y} + +res = ols("y ~ x1 + np.sin(x1) + I((x1-5)**2)", data=data).fit() + + +# We use the `I` to indicate use of the Identity transform. Ie., we don't want any expansion magic from using `**2` + +res.params + + +# Now we only have to pass the single variable and we get the transformed right-hand side variables automatically + +res.predict(exog=dict(x1=x1n)) + diff --git a/examples/python/quantile_regression.py b/examples/python/quantile_regression.py new file mode 100644 index 0000000..d73f8de --- /dev/null +++ b/examples/python/quantile_regression.py @@ -0,0 +1,110 @@ + +## Quantile regression + +# +# This example page shows how to use ``statsmodels``' ``QuantReg`` class to replicate parts of the analysis published in +# +# * Koenker, Roger and Kevin F. Hallock. "Quantile Regressioin". Journal of Economic Perspectives, Volume 15, Number 4, Fall 2001, Pages 143–156 +# +# We are interested in the relationship between income and expenditures on food for a sample of working class Belgian households in 1857 (the Engel data). +# +# ## Setup +# +# We first need to load some modules and to retrieve the data. Conveniently, the Engel dataset is shipped with ``statsmodels``. + +from __future__ import print_function +import patsy +import numpy as np +import pandas as pd +import statsmodels.api as sm +import statsmodels.formula.api as smf +import matplotlib.pyplot as plt +from statsmodels.regression.quantile_regression import QuantReg + +data = sm.datasets.engel.load_pandas().data +data.head() + + +# ## Least Absolute Deviation +# +# The LAD model is a special case of quantile regression where q=0.5 + +mod = smf.quantreg('foodexp ~ income', data) +res = mod.fit(q=.5) +print(res.summary()) + + +# ## Visualizing the results +# +# We estimate the quantile regression model for many quantiles between .05 and .95, and compare best fit line from each of these models to Ordinary Least Squares results. + +# ### Prepare data for plotting +# +# For convenience, we place the quantile regression results in a Pandas DataFrame, and the OLS results in a dictionary. + +quantiles = np.arange(.05, .96, .1) +def fit_model(q): + res = mod.fit(q=q) + return [q, res.params['Intercept'], res.params['income']] + res.conf_int().ix['income'].tolist() + +models = [fit_model(x) for x in quantiles] +models = pd.DataFrame(models, columns=['q', 'a', 'b','lb','ub']) + +ols = smf.ols('foodexp ~ income', data).fit() +ols_ci = ols.conf_int().ix['income'].tolist() +ols = dict(a = ols.params['Intercept'], + b = ols.params['income'], + lb = ols_ci[0], + ub = ols_ci[1]) + +print(models) +print(ols) + + +# ### First plot +# +# This plot compares best fit lines for 10 quantile regression models to the least squares fit. As Koenker and Hallock (2001) point out, we see that: +# +# 1. Food expenditure increases with income +# 2. The *dispersion* of food expenditure increases with income +# 3. The least squares estimates fit low income observations quite poorly (i.e. the OLS line passes over most low income households) + +x = np.arange(data.income.min(), data.income.max(), 50) +get_y = lambda a, b: a + b * x + +for i in range(models.shape[0]): + y = get_y(models.a[i], models.b[i]) + plt.plot(x, y, linestyle='dotted', color='grey') + +y = get_y(ols['a'], ols['b']) +plt.plot(x, y, color='red', label='OLS') + +plt.scatter(data.income, data.foodexp, alpha=.2) +plt.xlim((240, 3000)) +plt.ylim((240, 2000)) +plt.legend() +plt.xlabel('Income') +plt.ylabel('Food expenditure') +plt.show() + + +# ### Second plot +# +# The dotted black lines form 95% point-wise confidence band around 10 quantile regression estimates (solid black line). The red lines represent OLS regression results along with their 95% confindence interval. +# +# In most cases, the quantile regression point estimates lie outside the OLS confidence interval, which suggests that the effect of income on food expenditure may not be constant across the distribution. + +from matplotlib import rc +rc('text', usetex=True) +n = models.shape[0] +p1 = plt.plot(models.q, models.b, color='black', label='Quantile Reg.') +p2 = plt.plot(models.q, models.ub, linestyle='dotted', color='black') +p3 = plt.plot(models.q, models.lb, linestyle='dotted', color='black') +p4 = plt.plot(models.q, [ols['b']] * n, color='red', label='OLS') +p5 = plt.plot(models.q, [ols['lb']] * n, linestyle='dotted', color='red') +p6 = plt.plot(models.q, [ols['ub']] * n, linestyle='dotted', color='red') +plt.ylabel(r'\beta_\mbox{income}') +plt.xlabel('Quantiles of the conditional food expenditure distribution') +plt.legend() +plt.show() + diff --git a/examples/python/regression_diagnostics.py b/examples/python/regression_diagnostics.py new file mode 100644 index 0000000..1677b67 --- /dev/null +++ b/examples/python/regression_diagnostics.py @@ -0,0 +1,95 @@ + +## Regression diagnostics + +# This example file shows how to use a few of the ``statsmodels`` regression diagnostic tests in a real-life context. You can learn about more tests and find out more information abou the tests here on the [Regression Diagnostics page.](http://www.statsmodels.org/stable/diagnostic.html) +# +# Note that most of the tests described here only return a tuple of numbers, without any annotation. A full description of outputs is always included in the docstring and in the online ``statsmodels`` documentation. For presentation purposes, we use the ``zip(name,test)`` construct to pretty-print(short descriptions in the examples below. + +# ## Estimate a regression model + +from __future__ import print_function +from statsmodels.compat import lzip +import statsmodels +import numpy as np +import pandas as pd +import statsmodels.formula.api as smf +import statsmodels.stats.api as sms + +# Load data +url = 'http://vincentarelbundock.github.io/Rdatasets/csv/HistData/Guerry.csv' +dat = pd.read_csv(url) + +# Fit regression model (using the natural log of one of the regressaors) +results = smf.ols('Lottery ~ Literacy + np.log(Pop1831)', data=dat).fit() + +# Inspect the results +print(results.summary()) + + +# ## Normality of the residuals + +# Jarque-Bera test: + +name = ['Jarque-Bera', 'Chi^2 two-tail prob.', 'Skew', 'Kurtosis'] +test = sms.jarque_bera(results.resid) +lzip(name, test) + + +# Omni test: + +name = ['Chi^2', 'Two-tail probability'] +test = sms.omni_normtest(results.resid) +lzip(name, test) + + +# ## Influence tests +# +# Once created, an object of class ``OLSInfluence`` holds attributes and methods that allow users to assess the influence of each observation. For example, we can compute and extract the first few rows of DFbetas by: + +from statsmodels.stats.outliers_influence import OLSInfluence +test_class = OLSInfluence(results) +test_class.dfbetas[:5,:] + + +# Explore other options by typing ``dir(influence_test)`` +# +# Useful information on leverage can also be plotted: + +from statsmodels.graphics.regressionplots import plot_leverage_resid2 +print(plot_leverage_resid2(results)) + + +# Other plotting options can be found on the [Graphics page.](http://www.statsmodels.org/stable/graphics.html) + +# ## Multicollinearity +# +# Condition number: + +np.linalg.cond(results.model.exog) + + +# ## Heteroskedasticity tests +# +# Breush-Pagan test: + +name = ['Lagrange multiplier statistic', 'p-value', + 'f-value', 'f p-value'] +test = sms.het_breushpagan(results.resid, results.model.exog) +lzip(name, test) + + +# Goldfeld-Quandt test + +name = ['F statistic', 'p-value'] +test = sms.het_goldfeldquandt(results.resid, results.model.exog) +lzip(name, test) + + +# ## Linearity +# +# Harvey-Collier multiplier test for Null hypothesis that the linear specification is correct: + +name = ['t value', 'p value'] +test = sms.linear_harvey_collier(results) +lzip(name, test) + diff --git a/examples/python/regression_plots.py b/examples/python/regression_plots.py new file mode 100644 index 0000000..d02e00b --- /dev/null +++ b/examples/python/regression_plots.py @@ -0,0 +1,232 @@ + +## Regression Plots + +from __future__ import print_function +from statsmodels.compat import lzip +import numpy as np +import pandas as pd +import matplotlib.pyplot as plt +import statsmodels.api as sm +from statsmodels.formula.api import ols + + +### Duncan's Prestige Dataset + +#### Load the Data + +# We can use a utility function to load any R dataset available from the great
    Rdatasets package. + +prestige = sm.datasets.get_rdataset("Duncan", "car", cache=True).data + + +prestige.head() + + +prestige_model = ols("prestige ~ income + education", data=prestige).fit() + + +print(prestige_model.summary()) + + +#### Influence plots + +# Influence plots show the (externally) studentized residuals vs. the leverage of each observation as measured by the hat matrix. +# +# Externally studentized residuals are residuals that are scaled by their standard deviation where +# +# $$var(\\hat{\epsilon}_i)=\hat{\sigma}^2_i(1-h_{ii})$$ +# +# with +# +# $$\hat{\sigma}^2_i=\frac{1}{n - p - 1 \;\;}\sum_{j}^{n}\;\;\;\forall \;\;\; j \neq i$$ +# +# $n$ is the number of observations and $p$ is the number of regressors. $h_{ii}$ is the $i$-th diagonal element of the hat matrix +# +# $$H=X(X^{\;\prime}X)^{-1}X^{\;\prime}$$ +# +# The influence of each point can be visualized by the criterion keyword argument. Options are Cook's distance and DFFITS, two measures of influence. + +fig, ax = plt.subplots(figsize=(12,8)) +fig = sm.graphics.influence_plot(prestige_model, ax=ax, criterion="cooks") + + +# As you can see there are a few worrisome observations. Both contractor and reporter have low leverage but a large residual.
    +# RR.engineer has small residual and large leverage. Conductor and minister have both high leverage and large residuals, and,
    +# therefore, large influence. + +#### Partial Regression Plots + +# Since we are doing multivariate regressions, we cannot just look at individual bivariate plots to discern relationships.
    +# Instead, we want to look at the relationship of the dependent variable and independent variables conditional on the other
    +# independent variables. We can do this through using partial regression plots, otherwise known as added variable plots.
    +# +# In a partial regression plot, to discern the relationship between the response variable and the $k$-th variabe, we compute
    +# the residuals by regressing the response variable versus the independent variables excluding $X_k$. We can denote this by
    +# $X_{\sim k}$. We then compute the residuals by regressing $X_k$ on $X_{\sim k}$. The partial regression plot is the plot
    +# of the former versus the latter residuals.
    +# +# The notable points of this plot are that the fitted line has slope $\beta_k$ and intercept zero. The residuals of this plot
    +# are the same as those of the least squares fit of the original model with full $X$. You can discern the effects of the
    +# individual data values on the estimation of a coefficient easily. If obs_labels is True, then these points are annotated
    +# with their observation label. You can also see the violation of underlying assumptions such as homooskedasticity and
    +# linearity. + +fig, ax = plt.subplots(figsize=(12,8)) +fig = sm.graphics.plot_partregress("prestige", "income", ["income", "education"], data=prestige, ax=ax) +ax = fig.axes[0] + +ax.set_xlim(-2e-15, 1e-14) +ax.set_ylim(-25, 30); + + +fix, ax = plt.subplots(figsize=(12,14)) +fig = sm.graphics.plot_partregress("prestige", "income", ["education"], data=prestige, ax=ax) + + +# As you can see the partial regression plot confirms the influence of conductor, minister, and RR.engineer on the partial relationship between income and prestige. The cases greatly decrease the effect of income on prestige. Dropping these cases confirms this. + +subset = ~prestige.index.isin(["conductor", "RR.engineer", "minister"]) +prestige_model2 = ols("prestige ~ income + education", data=prestige, subset=subset).fit() +print(prestige_model2.summary()) + + +# For a quick check of all the regressors, you can use plot_partregress_grid. These plots will not label the
    +# points, but you can use them to identify problems and then use plot_partregress to get more information. + +fig = plt.figure(figsize=(12,8)) +fig = sm.graphics.plot_partregress_grid(prestige_model, fig=fig) + + +#### Component-Component plus Residual (CCPR) Plots + +# The CCPR plot provides a way to judge the effect of one regressor on the
    +# response variable by taking into account the effects of the other
    +# independent variables. The partial residuals plot is defined as
    +# $\text{Residuals} + B_iX_i \text{ }\text{ }$ versus $X_i$. The component adds $B_iX_i$ versus
    +# $X_i$ to show where the fitted line would lie. Care should be taken if $X_i$
    +# is highly correlated with any of the other independent variables. If this
    +# is the case, the variance evident in the plot will be an underestimate of
    +# the true variance. + +fig, ax = plt.subplots(figsize=(12, 8)) +fig = sm.graphics.plot_ccpr(prestige_model, "education", ax=ax) + + +# As you can see the relationship between the variation in prestige explained by education conditional on income seems to be linear, though you can see there are some observations that are exerting considerable influence on the relationship. We can quickly look at more than one variable by using plot_ccpr_grid. + +fig = plt.figure(figsize=(12, 8)) +fig = sm.graphics.plot_ccpr_grid(prestige_model, fig=fig) + + +#### Regression Plots + +# The plot_regress_exog function is a convenience function that gives a 2x2 plot containing the dependent variable and fitted values with confidence intervals vs. the independent variable chosen, the residuals of the model vs. the chosen independent variable, a partial regression plot, and a CCPR plot. This function can be used for quickly checking modeling assumptions with respect to a single regressor. + +fig = plt.figure(figsize=(12,8)) +fig = sm.graphics.plot_regress_exog(prestige_model, "education", fig=fig) + + +#### Fit Plot + +# The plot_fit function plots the fitted values versus a chosen independent variable. It includes prediction confidence intervals and optionally plots the true dependent variable. + +fig, ax = plt.subplots(figsize=(12, 8)) +fig = sm.graphics.plot_fit(prestige_model, "education", ax=ax) + + +### Statewide Crime 2009 Dataset + +# Compare the following to http://www.ats.ucla.edu/stat/stata/webbooks/reg/chapter4/statareg_self_assessment_answers4.htm +# +# Though the data here is not the same as in that example. You could run that example by uncommenting the necessary cells below. + +#dta = pd.read_csv("http://www.stat.ufl.edu/~aa/social/csv_files/statewide-crime-2.csv") +#dta = dta.set_index("State", inplace=True).dropna() +#dta.rename(columns={"VR" : "crime", +# "MR" : "murder", +# "M" : "pctmetro", +# "W" : "pctwhite", +# "H" : "pcths", +# "P" : "poverty", +# "S" : "single" +# }, inplace=True) +# +#crime_model = ols("murder ~ pctmetro + poverty + pcths + single", data=dta).fit() + + +dta = sm.datasets.statecrime.load_pandas().data + + +crime_model = ols("murder ~ urban + poverty + hs_grad + single", data=dta).fit() +print(crime_model.summary()) + + +#### Partial Regression Plots + +fig = plt.figure(figsize=(12,8)) +fig = sm.graphics.plot_partregress_grid(crime_model, fig=fig) + + +fig, ax = plt.subplots(figsize=(12,8)) +fig = sm.graphics.plot_partregress("murder", "hs_grad", ["urban", "poverty", "single"], ax=ax, data=dta) + + +#### Leverage-Resid2 Plot + +# Closely related to the influence_plot is the leverage-resid2 plot. + +fig, ax = plt.subplots(figsize=(8,6)) +fig = sm.graphics.plot_leverage_resid2(crime_model, ax=ax) + + +#### Influence Plot + +fig, ax = plt.subplots(figsize=(8,6)) +fig = sm.graphics.influence_plot(crime_model, ax=ax) + + +#### Using robust regression to correct for outliers. + +# Part of the problem here in recreating the Stata results is that M-estimators are not robust to leverage points. MM-estimators should do better with this examples. + +from statsmodels.formula.api import rlm + + +rob_crime_model = rlm("murder ~ urban + poverty + hs_grad + single", data=dta, + M=sm.robust.norms.TukeyBiweight(3)).fit(conv="weights") +print(rob_crime_model.summary()) + + +#rob_crime_model = rlm("murder ~ pctmetro + poverty + pcths + single", data=dta, M=sm.robust.norms.TukeyBiweight()).fit(conv="weights") +#print(rob_crime_model.summary()) + + +# There aren't yet an influence diagnostics as part of RLM, but we can recreate them. (This depends on the status of [issue #888](https://github.com/statsmodels/statsmodels/issues/808)) + +weights = rob_crime_model.weights +idx = weights > 0 +X = rob_crime_model.model.exog[idx] +ww = weights[idx] / weights[idx].mean() +hat_matrix_diag = ww*(X*np.linalg.pinv(X).T).sum(1) +resid = rob_crime_model.resid +resid2 = resid**2 +resid2 /= resid2.sum() +nobs = int(idx.sum()) +hm = hat_matrix_diag.mean() +rm = resid2.mean() + + +from statsmodels.graphics import utils +fig, ax = plt.subplots(figsize=(12,8)) +ax.plot(resid2[idx], hat_matrix_diag, 'o') +ax = utils.annotate_axes(range(nobs), labels=rob_crime_model.model.data.row_labels[idx], + points=lzip(resid2[idx], hat_matrix_diag), offset_points=[(-5,5)]*nobs, + size="large", ax=ax) +ax.set_xlabel("resid2") +ax.set_ylabel("leverage") +ylim = ax.get_ylim() +ax.vlines(rm, *ylim) +xlim = ax.get_xlim() +ax.hlines(hm, *xlim) +ax.margins(0,0) + diff --git a/examples/python/robust_models_0.py b/examples/python/robust_models_0.py new file mode 100644 index 0000000..ae3b74d --- /dev/null +++ b/examples/python/robust_models_0.py @@ -0,0 +1,120 @@ + +## Robust Linear Models + +from __future__ import print_function +import numpy as np +import statsmodels.api as sm +import matplotlib.pyplot as plt +from statsmodels.sandbox.regression.predstd import wls_prediction_std + + +# ## Estimation +# +# Load data: + +data = sm.datasets.stackloss.load() +data.exog = sm.add_constant(data.exog) + + +# Huber's T norm with the (default) median absolute deviation scaling + +huber_t = sm.RLM(data.endog, data.exog, M=sm.robust.norms.HuberT()) +hub_results = huber_t.fit() +print(hub_results.params) +print(hub_results.bse) +print(hub_results.summary(yname='y', + xname=['var_%d' % i for i in range(len(hub_results.params))])) + + +# Huber's T norm with 'H2' covariance matrix + +hub_results2 = huber_t.fit(cov="H2") +print(hub_results2.params) +print(hub_results2.bse) + + +# Andrew's Wave norm with Huber's Proposal 2 scaling and 'H3' covariance matrix + +andrew_mod = sm.RLM(data.endog, data.exog, M=sm.robust.norms.AndrewWave()) +andrew_results = andrew_mod.fit(scale_est=sm.robust.scale.HuberScale(), cov="H3") +print('Parameters: ', andrew_results.params) + + +# See ``help(sm.RLM.fit)`` for more options and ``module sm.robust.scale`` for scale options +# +# ## Comparing OLS and RLM +# +# Artificial data with outliers: + +nsample = 50 +x1 = np.linspace(0, 20, nsample) +X = np.column_stack((x1, (x1-5)**2)) +X = sm.add_constant(X) +sig = 0.3 # smaller error variance makes OLS<->RLM contrast bigger +beta = [5, 0.5, -0.0] +y_true2 = np.dot(X, beta) +y2 = y_true2 + sig*1. * np.random.normal(size=nsample) +y2[[39,41,43,45,48]] -= 5 # add some outliers (10% of nsample) + + +# ### Example 1: quadratic function with linear truth +# +# Note that the quadratic term in OLS regression will capture outlier effects. + +res = sm.OLS(y2, X).fit() +print(res.params) +print(res.bse) +print(res.predict()) + + +# Estimate RLM: + +resrlm = sm.RLM(y2, X).fit() +print(resrlm.params) +print(resrlm.bse) + + +# Draw a plot to compare OLS estimates to the robust estimates: + +fig = plt.figure(figsize=(12,8)) +ax = fig.add_subplot(111) +ax.plot(x1, y2, 'o',label="data") +ax.plot(x1, y_true2, 'b-', label="True") +prstd, iv_l, iv_u = wls_prediction_std(res) +ax.plot(x1, res.fittedvalues, 'r-', label="OLS") +ax.plot(x1, iv_u, 'r--') +ax.plot(x1, iv_l, 'r--') +ax.plot(x1, resrlm.fittedvalues, 'g.-', label="RLM") +ax.legend(loc="best") + + +# ### Example 2: linear function with linear truth +# +# Fit a new OLS model using only the linear term and the constant: + +X2 = X[:,[0,1]] +res2 = sm.OLS(y2, X2).fit() +print(res2.params) +print(res2.bse) + + +# Estimate RLM: + +resrlm2 = sm.RLM(y2, X2).fit() +print(resrlm2.params) +print(resrlm2.bse) + + +# Draw a plot to compare OLS estimates to the robust estimates: + +prstd, iv_l, iv_u = wls_prediction_std(res2) + +fig, ax = plt.subplots() +ax.plot(x1, y2, 'o', label="data") +ax.plot(x1, y_true2, 'b-', label="True") +ax.plot(x1, res2.fittedvalues, 'r-', label="OLS") +ax.plot(x1, iv_u, 'r--') +ax.plot(x1, iv_l, 'r--') +ax.plot(x1, resrlm2.fittedvalues, 'g.-', label="RLM") +ax.legend(loc="best") + diff --git a/examples/python/robust_models_1.py b/examples/python/robust_models_1.py new file mode 100644 index 0000000..a859d98 --- /dev/null +++ b/examples/python/robust_models_1.py @@ -0,0 +1,386 @@ + +## M-Estimators for Robust Linear Modeling + +from __future__ import print_function +import numpy as np +from scipy import stats +import matplotlib.pyplot as plt + +import statsmodels.api as sm +from statsmodels.compat.pandas import sort_values + + +# * An M-estimator minimizes the function +# +# $$Q(e_i, \rho) = \sum_i~\rho \left (\frac{e_i}{s}\right )$$ +# +# where $\rho$ is a symmetric function of the residuals +# +# * The effect of $\rho$ is to reduce the influence of outliers +# * $s$ is an estimate of scale. +# * The robust estimates $\hat{\beta}$ are computed by the iteratively re-weighted least squares algorithm + +# * We have several choices available for the weighting functions to be used + +norms = sm.robust.norms + + +def plot_weights(support, weights_func, xlabels, xticks): + fig = plt.figure(figsize=(12,8)) + ax = fig.add_subplot(111) + ax.plot(support, weights_func(support)) + ax.set_xticks(xticks) + ax.set_xticklabels(xlabels, fontsize=16) + ax.set_ylim(-.1, 1.1) + return ax + + +#### Andrew's Wave + +help(norms.AndrewWave.weights) + + +a = 1.339 +support = np.linspace(-np.pi*a, np.pi*a, 100) +andrew = norms.AndrewWave(a=a) +plot_weights(support, andrew.weights, ['$-\pi*a$', '0', '$\pi*a$'], [-np.pi*a, 0, np.pi*a]); + + +#### Hampel's 17A + +help(norms.Hampel.weights) + + +c = 8 +support = np.linspace(-3*c, 3*c, 1000) +hampel = norms.Hampel(a=2., b=4., c=c) +plot_weights(support, hampel.weights, ['3*c', '0', '3*c'], [-3*c, 0, 3*c]); + + +#### Huber's t + +help(norms.HuberT.weights) + + +t = 1.345 +support = np.linspace(-3*t, 3*t, 1000) +huber = norms.HuberT(t=t) +plot_weights(support, huber.weights, ['-3*t', '0', '3*t'], [-3*t, 0, 3*t]); + + +#### Least Squares + +help(norms.LeastSquares.weights) + + +support = np.linspace(-3, 3, 1000) +lst_sq = norms.LeastSquares() +plot_weights(support, lst_sq.weights, ['-3', '0', '3'], [-3, 0, 3]); + + +#### Ramsay's Ea + +help(norms.RamsayE.weights) + + +a = .3 +support = np.linspace(-3*a, 3*a, 1000) +ramsay = norms.RamsayE(a=a) +plot_weights(support, ramsay.weights, ['-3*a', '0', '3*a'], [-3*a, 0, 3*a]); + + +#### Trimmed Mean + +help(norms.TrimmedMean.weights) + + +c = 2 +support = np.linspace(-3*c, 3*c, 1000) +trimmed = norms.TrimmedMean(c=c) +plot_weights(support, trimmed.weights, ['-3*c', '0', '3*c'], [-3*c, 0, 3*c]); + + +#### Tukey's Biweight + +help(norms.TukeyBiweight.weights) + + +c = 4.685 +support = np.linspace(-3*c, 3*c, 1000) +tukey = norms.TukeyBiweight(c=c) +plot_weights(support, tukey.weights, ['-3*c', '0', '3*c'], [-3*c, 0, 3*c]); + + +#### Scale Estimators + +# * Robust estimates of the location + +x = np.array([1, 2, 3, 4, 500]) + + +# * The mean is not a robust estimator of location + +x.mean() + + +# * The median, on the other hand, is a robust estimator with a breakdown point of 50% + +np.median(x) + + +# * Analagously for the scale +# * The standard deviation is not robust + +x.std() + + +# Median Absolute Deviation +# +# $$ median_i |X_i - median_j(X_j)|) $$ + +# Standardized Median Absolute Deviation is a consistent estimator for $\hat{\sigma}$ +# +# $$\hat{\sigma}=K \cdot MAD$$ +# +# where $K$ depends on the distribution. For the normal distribution for example, +# +# $$K = \Phi^{-1}(.75)$$ + +stats.norm.ppf(.75) + + +print(x) + + +sm.robust.scale.stand_mad(x) + + +np.array([1,2,3,4,5.]).std() + + +# * The default for Robust Linear Models is MAD +# * another popular choice is Huber's proposal 2 + +np.random.seed(12345) +fat_tails = stats.t(6).rvs(40) + + +kde = sm.nonparametric.KDE(fat_tails) +kde.fit() +fig = plt.figure(figsize=(12,8)) +ax = fig.add_subplot(111) +ax.plot(kde.support, kde.density); + + +print(fat_tails.mean(), fat_tails.std()) + + +print(stats.norm.fit(fat_tails)) + + +print(stats.t.fit(fat_tails, f0=6)) + + +huber = sm.robust.scale.Huber() +loc, scale = huber(fat_tails) +print(loc, scale) + + +sm.robust.stand_mad(fat_tails) + + +sm.robust.stand_mad(fat_tails, c=stats.t(6).ppf(.75)) + + +sm.robust.scale.mad(fat_tails) + + +#### Duncan's Occupational Prestige data - M-estimation for outliers + +from statsmodels.graphics.api import abline_plot +from statsmodels.formula.api import ols, rlm + + +prestige = sm.datasets.get_rdataset("Duncan", "car", cache=True).data + + +print(prestige.head(10)) + + +fig = plt.figure(figsize=(12,12)) +ax1 = fig.add_subplot(211, xlabel='Income', ylabel='Prestige') +ax1.scatter(prestige.income, prestige.prestige) +xy_outlier = prestige.ix['minister'][['income','prestige']] +ax1.annotate('Minister', xy_outlier, xy_outlier+1, fontsize=16) +ax2 = fig.add_subplot(212, xlabel='Education', + ylabel='Prestige') +ax2.scatter(prestige.education, prestige.prestige); + + +ols_model = ols('prestige ~ income + education', prestige).fit() +print(ols_model.summary()) + + +infl = ols_model.get_influence() +student = infl.summary_frame()['student_resid'] +print(student) + + +print(student.ix[np.abs(student) > 2]) + + +print(infl.summary_frame().ix['minister']) + + +sidak = ols_model.outlier_test('sidak') +sort_values(sidak, 'unadj_p', inplace=True) +print(sidak) + + +fdr = ols_model.outlier_test('fdr_bh') +sort_values(fdr, 'unadj_p', inplace=True) +print(fdr) + + +rlm_model = rlm('prestige ~ income + education', prestige).fit() +print(rlm_model.summary()) + + +print(rlm_model.weights) + + +#### Hertzprung Russell data for Star Cluster CYG 0B1 - Leverage Points + +# * Data is on the luminosity and temperature of 47 stars in the direction of Cygnus. + +dta = sm.datasets.get_rdataset("starsCYG", "robustbase", cache=True).data + + +from matplotlib.patches import Ellipse +fig = plt.figure(figsize=(12,8)) +ax = fig.add_subplot(111, xlabel='log(Temp)', ylabel='log(Light)', title='Hertzsprung-Russell Diagram of Star Cluster CYG OB1') +ax.scatter(*dta.values.T) +# highlight outliers +e = Ellipse((3.5, 6), .2, 1, alpha=.25, color='r') +ax.add_patch(e); +ax.annotate('Red giants', xy=(3.6, 6), xytext=(3.8, 6), + arrowprops=dict(facecolor='black', shrink=0.05, width=2), + horizontalalignment='left', verticalalignment='bottom', + clip_on=True, # clip to the axes bounding box + fontsize=16, + ) +# annotate these with their index +for i,row in dta.ix[dta['log.Te'] < 3.8].iterrows(): + ax.annotate(i, row, row + .01, fontsize=14) +xlim, ylim = ax.get_xlim(), ax.get_ylim() + + +from IPython.display import Image +Image(filename='star_diagram.png') + + +y = dta['log.light'] +X = sm.add_constant(dta['log.Te'], prepend=True) +ols_model = sm.OLS(y, X).fit() +abline_plot(model_results=ols_model, ax=ax) + + +rlm_mod = sm.RLM(y, X, sm.robust.norms.TrimmedMean(.5)).fit() +abline_plot(model_results=rlm_mod, ax=ax, color='red') + + +# * Why? Because M-estimators are not robust to leverage points. + +infl = ols_model.get_influence() + + +h_bar = 2*(ols_model.df_model + 1 )/ols_model.nobs +hat_diag = infl.summary_frame()['hat_diag'] +hat_diag.ix[hat_diag > h_bar] + + +sidak2 = ols_model.outlier_test('sidak') +sort_values(sidak2, 'unadj_p', inplace=True) +print(sidak2) + + +fdr2 = ols_model.outlier_test('fdr_bh') +sort_values(fdr2, 'unadj_p', inplace=True) +print(fdr2) + + +# * Let's delete that line + +del ax.lines[-1] + + +weights = np.ones(len(X)) +weights[X[X['log.Te'] < 3.8].index.values - 1] = 0 +wls_model = sm.WLS(y, X, weights=weights).fit() +abline_plot(model_results=wls_model, ax=ax, color='green') + + +# * MM estimators are good for this type of problem, unfortunately, we don't yet have these yet. +# * It's being worked on, but it gives a good excuse to look at the R cell magics in the notebook. + +yy = y.values[:,None] +xx = X['log.Te'].values[:,None] + + +get_ipython().magic(u'load_ext rmagic') + +get_ipython().magic(u'R library(robustbase)') +get_ipython().magic(u'Rpush yy xx') +get_ipython().magic(u'R mod <- lmrob(yy ~ xx);') +get_ipython().magic(u'R params <- mod$coefficients;') +get_ipython().magic(u'Rpull params') + + +get_ipython().magic(u'R print(mod)') + + +print(params) + + +abline_plot(intercept=params[0], slope=params[1], ax=ax, color='green') + + +#### Exercise: Breakdown points of M-estimator + +np.random.seed(12345) +nobs = 200 +beta_true = np.array([3, 1, 2.5, 3, -4]) +X = np.random.uniform(-20,20, size=(nobs, len(beta_true)-1)) +# stack a constant in front +X = sm.add_constant(X, prepend=True) # np.c_[np.ones(nobs), X] +mc_iter = 500 +contaminate = .25 # percentage of response variables to contaminate + + +all_betas = [] +for i in range(mc_iter): + y = np.dot(X, beta_true) + np.random.normal(size=200) + random_idx = np.random.randint(0, nobs, size=int(contaminate * nobs)) + y[random_idx] = np.random.uniform(-750, 750) + beta_hat = sm.RLM(y, X).fit().params + all_betas.append(beta_hat) + + +all_betas = np.asarray(all_betas) +se_loss = lambda x : np.linalg.norm(x, ord=2)**2 +se_beta = map(se_loss, all_betas - beta_true) + + +##### Squared error loss + +np.array(se_beta).mean() + + +all_betas.mean(0) + + +beta_true + + +se_loss(all_betas.mean(0) - beta_true) + diff --git a/examples/python/tsa_arma_0.py b/examples/python/tsa_arma_0.py new file mode 100644 index 0000000..dfe293c --- /dev/null +++ b/examples/python/tsa_arma_0.py @@ -0,0 +1,193 @@ + +## Autoregressive Moving Average (ARMA): Sunspots data + +from __future__ import print_function +import numpy as np +from scipy import stats +import pandas as pd +import matplotlib.pyplot as plt + +import statsmodels.api as sm + + +from statsmodels.graphics.api import qqplot + + +### Sunpots Data + +print(sm.datasets.sunspots.NOTE) + + +dta = sm.datasets.sunspots.load_pandas().data + + +dta.index = pd.Index(sm.tsa.datetools.dates_from_range('1700', '2008')) +del dta["YEAR"] + + +dta.plot(figsize=(12,8)); + + +fig = plt.figure(figsize=(12,8)) +ax1 = fig.add_subplot(211) +fig = sm.graphics.tsa.plot_acf(dta.values.squeeze(), lags=40, ax=ax1) +ax2 = fig.add_subplot(212) +fig = sm.graphics.tsa.plot_pacf(dta, lags=40, ax=ax2) + + +arma_mod20 = sm.tsa.ARMA(dta, (2,0)).fit() +print(arma_mod20.params) + + +arma_mod30 = sm.tsa.ARMA(dta, (3,0)).fit() + + +print(arma_mod20.aic, arma_mod20.bic, arma_mod20.hqic) + + +print(arma_mod30.params) + + +print(arma_mod30.aic, arma_mod30.bic, arma_mod30.hqic) + + +# * Does our model obey the theory? + +sm.stats.durbin_watson(arma_mod30.resid.values) + + +fig = plt.figure(figsize=(12,8)) +ax = fig.add_subplot(111) +ax = arma_mod30.resid.plot(ax=ax); + + +resid = arma_mod30.resid + + +stats.normaltest(resid) + + +fig = plt.figure(figsize=(12,8)) +ax = fig.add_subplot(111) +fig = qqplot(resid, line='q', ax=ax, fit=True) + + +fig = plt.figure(figsize=(12,8)) +ax1 = fig.add_subplot(211) +fig = sm.graphics.tsa.plot_acf(resid.values.squeeze(), lags=40, ax=ax1) +ax2 = fig.add_subplot(212) +fig = sm.graphics.tsa.plot_pacf(resid, lags=40, ax=ax2) + + +r,q,p = sm.tsa.acf(resid.values.squeeze(), qstat=True) +data = np.c_[range(1,41), r[1:], q, p] +table = pd.DataFrame(data, columns=['lag', "AC", "Q", "Prob(>Q)"]) +print(table.set_index('lag')) + + +# * This indicates a lack of fit. + +# * In-sample dynamic prediction. How good does our model do? + +predict_sunspots = arma_mod30.predict('1990', '2012', dynamic=True) +print(predict_sunspots) + + +ax = dta.ix['1950':].plot(figsize=(12,8)) +ax = predict_sunspots.plot(ax=ax, style='r--', label='Dynamic Prediction') +ax.legend() +ax.axis((-20.0, 38.0, -4.0, 200.0)) + + +def mean_forecast_err(y, yhat): + return y.sub(yhat).mean() + + +mean_forecast_err(dta.SUNACTIVITY, predict_sunspots) + + +#### Exercise: Can you obtain a better fit for the Sunspots model? (Hint: sm.tsa.AR has a method select_order) + +#### Simulated ARMA(4,1): Model Identification is Difficult + +from statsmodels.tsa.arima_process import arma_generate_sample, ArmaProcess + + +np.random.seed(1234) +# include zero-th lag +arparams = np.array([1, .75, -.65, -.55, .9]) +maparams = np.array([1, .65]) + + +# Let's make sure this model is estimable. + +arma_t = ArmaProcess(arparams, maparams) + + +arma_t.isinvertible + + +arma_t.isstationary + + +# * What does this mean? + +fig = plt.figure(figsize=(12,8)) +ax = fig.add_subplot(111) +ax.plot(arma_t.generate_sample(nsample=50)); + + +arparams = np.array([1, .35, -.15, .55, .1]) +maparams = np.array([1, .65]) +arma_t = ArmaProcess(arparams, maparams) +arma_t.isstationary + + +arma_rvs = arma_t.generate_sample(nsample=500, burnin=250, scale=2.5) + + +fig = plt.figure(figsize=(12,8)) +ax1 = fig.add_subplot(211) +fig = sm.graphics.tsa.plot_acf(arma_rvs, lags=40, ax=ax1) +ax2 = fig.add_subplot(212) +fig = sm.graphics.tsa.plot_pacf(arma_rvs, lags=40, ax=ax2) + + +# * For mixed ARMA processes the Autocorrelation function is a mixture of exponentials and damped sine waves after (q-p) lags. +# * The partial autocorrelation function is a mixture of exponentials and dampened sine waves after (p-q) lags. + +arma11 = sm.tsa.ARMA(arma_rvs, (1,1)).fit() +resid = arma11.resid +r,q,p = sm.tsa.acf(resid, qstat=True) +data = np.c_[range(1,41), r[1:], q, p] +table = pd.DataFrame(data, columns=['lag', "AC", "Q", "Prob(>Q)"]) +print(table.set_index('lag')) + + +arma41 = sm.tsa.ARMA(arma_rvs, (4,1)).fit() +resid = arma41.resid +r,q,p = sm.tsa.acf(resid, qstat=True) +data = np.c_[range(1,41), r[1:], q, p] +table = pd.DataFrame(data, columns=['lag', "AC", "Q", "Prob(>Q)"]) +print(table.set_index('lag')) + + +#### Exercise: How good of in-sample prediction can you do for another series, say, CPI + +macrodta = sm.datasets.macrodata.load_pandas().data +macrodta.index = pd.Index(sm.tsa.datetools.dates_from_range('1959Q1', '2009Q3')) +cpi = macrodta["cpi"] + + +##### Hint: + +fig = plt.figure(figsize=(12,8)) +ax = fig.add_subplot(111) +ax = cpi.plot(ax=ax) +ax.legend() + + +# P-value of the unit-root test, resoundly rejects the null of no unit-root. + +print(sm.tsa.adfuller(cpi)[1]) + diff --git a/examples/python/tsa_arma_1.py b/examples/python/tsa_arma_1.py new file mode 100644 index 0000000..8ac3161 --- /dev/null +++ b/examples/python/tsa_arma_1.py @@ -0,0 +1,32 @@ + +## Autoregressive Moving Average (ARMA): Artificial data + +from __future__ import print_function +import numpy as np +import statsmodels.api as sm +from statsmodels.tsa.arima_process import arma_generate_sample +np.random.seed(12345) + + +# Generate some data from an ARMA process: + +arparams = np.array([.75, -.25]) +maparams = np.array([.65, .35]) + + +# The conventions of the arma_generate function require that we specify a 1 for the zero-lag of the AR and MA parameters and that the AR parameters be negated. + +arparams = np.r_[1, -arparams] +maparam = np.r_[1, maparams] +nobs = 250 +y = arma_generate_sample(arparams, maparams, nobs) + + +# Now, optionally, we can add some dates information. For this example, we'll use a pandas time series. + +import pandas as pd +dates = sm.tsa.datetools.dates_from_range('1980m1', length=nobs) +y = pd.TimeSeries(y, index=dates) +arma_mod = sm.tsa.ARMA(y, order=(2,2)) +arma_res = arma_mod.fit(trend='nc', disp=-1) + diff --git a/examples/python/tsa_dates.py b/examples/python/tsa_dates.py new file mode 100644 index 0000000..78d64c7 --- /dev/null +++ b/examples/python/tsa_dates.py @@ -0,0 +1,51 @@ + +## Dates in timeseries models + +from __future__ import print_function +import statsmodels.api as sm +import pandas as pd + + +# ## Getting started + +data = sm.datasets.sunspots.load() + + +# Right now an annual date series must be datetimes at the end of the year. + +dates = sm.tsa.datetools.dates_from_range('1700', length=len(data.endog)) + + +# ## Using Pandas +# +# Make a pandas TimeSeries or DataFrame + +endog = pd.TimeSeries(data.endog, index=dates) + + +# Instantiate the model + +ar_model = sm.tsa.AR(endog, freq='A') +pandas_ar_res = ar_model.fit(maxlag=9, method='mle', disp=-1) + + +# Out-of-sample prediction + +pred = pandas_ar_res.predict(start='2005', end='2015') +print(pred) + + +# ## Using explicit dates + +ar_model = sm.tsa.AR(data.endog, dates=dates, freq='A') +ar_res = ar_model.fit(maxlag=9, method='mle', disp=-1) +pred = ar_res.predict(start='2005', end='2015') +print(pred) + + +# This just returns a regular array, but since the model has date information attached, you can get the prediction dates in a roundabout way. + +print(ar_res.data.predict_dates) + + +# Note: This attribute only exists if predict has been called. It holds the dates associated with the last call to predict. diff --git a/examples/python/tsa_filters.py b/examples/python/tsa_filters.py new file mode 100644 index 0000000..0300e7e --- /dev/null +++ b/examples/python/tsa_filters.py @@ -0,0 +1,130 @@ + +## Time Series Filters + +from __future__ import print_function +import pandas as pd +import matplotlib.pyplot as plt + +import statsmodels.api as sm + + +dta = sm.datasets.macrodata.load_pandas().data + + +index = pd.Index(sm.tsa.datetools.dates_from_range('1959Q1', '2009Q3')) +print(index) + + +dta.index = index +del dta['year'] +del dta['quarter'] + + +print(sm.datasets.macrodata.NOTE) + + +print(dta.head(10)) + + +fig = plt.figure(figsize=(12,8)) +ax = fig.add_subplot(111) +dta.realgdp.plot(ax=ax); +legend = ax.legend(loc = 'upper left'); +legend.prop.set_size(20); + + +#### Hodrick-Prescott Filter + +# The Hodrick-Prescott filter separates a time-series $y_t$ into a trend $\tau_t$ and a cyclical component $\zeta_t$ +# +# $$y_t = \tau_t + \zeta_t$$ +# +# The components are determined by minimizing the following quadratic loss function +# +# $$\min_{\\{ \tau_{t}\\} }\sum_{t}^{T}\zeta_{t}^{2}+\lambda\sum_{t=1}^{T}\left[\left(\tau_{t}-\tau_{t-1}\right)-\left(\tau_{t-1}-\tau_{t-2}\right)\right]^{2}$$ + +gdp_cycle, gdp_trend = sm.tsa.filters.hpfilter(dta.realgdp) + + +gdp_decomp = dta[['realgdp']] +gdp_decomp["cycle"] = gdp_cycle +gdp_decomp["trend"] = gdp_trend + + +fig = plt.figure(figsize=(12,8)) +ax = fig.add_subplot(111) +gdp_decomp[["realgdp", "trend"]]["2000-03-31":].plot(ax=ax, fontsize=16); +legend = ax.get_legend() +legend.prop.set_size(20); + + +#### Baxter-King approximate band-pass filter: Inflation and Unemployment + +##### Explore the hypothesis that inflation and unemployment are counter-cyclical. + +# The Baxter-King filter is intended to explictly deal with the periodicty of the business cycle. By applying their band-pass filter to a series, they produce a new series that does not contain fluctuations at higher or lower than those of the business cycle. Specifically, the BK filter takes the form of a symmetric moving average +# +# $$y_{t}^{*}=\sum_{k=-K}^{k=K}a_ky_{t-k}$$ +# +# where $a_{-k}=a_k$ and $\sum_{k=-k}^{K}a_k=0$ to eliminate any trend in the series and render it stationary if the series is I(1) or I(2). +# +# For completeness, the filter weights are determined as follows +# +# $$a_{j} = B_{j}+\theta\text{ for }j=0,\pm1,\pm2,\dots,\pm K$$ +# +# $$B_{0} = \frac{\left(\omega_{2}-\omega_{1}\right)}{\pi}$$ +# $$B_{j} = \frac{1}{\pi j}\left(\sin\left(\omega_{2}j\right)-\sin\left(\omega_{1}j\right)\right)\text{ for }j=0,\pm1,\pm2,\dots,\pm K$$ +# +# where $\theta$ is a normalizing constant such that the weights sum to zero. +# +# $$\theta=\frac{-\sum_{j=-K^{K}b_{j}}}{2K+1}$$ +# +# $$\omega_{1}=\frac{2\pi}{P_{H}}$$ +# +# $$\omega_{2}=\frac{2\pi}{P_{L}}$$ +# +# $P_L$ and $P_H$ are the periodicity of the low and high cut-off frequencies. Following Burns and Mitchell's work on US business cycles which suggests cycles last from 1.5 to 8 years, we use $P_L=6$ and $P_H=32$ by default. + +bk_cycles = sm.tsa.filters.bkfilter(dta[["infl","unemp"]]) + + +# * We lose K observations on both ends. It is suggested to use K=12 for quarterly data. + +fig = plt.figure(figsize=(14,10)) +ax = fig.add_subplot(111) +bk_cycles.plot(ax=ax, style=['r--', 'b-']); + + +#### Christiano-Fitzgerald approximate band-pass filter: Inflation and Unemployment + +# The Christiano-Fitzgerald filter is a generalization of BK and can thus also be seen as weighted moving average. However, the CF filter is asymmetric about $t$ as well as using the entire series. The implementation of their filter involves the +# calculations of the weights in +# +# $$y_{t}^{*}=B_{0}y_{t}+B_{1}y_{t+1}+\dots+B_{T-1-t}y_{T-1}+\tilde B_{T-t}y_{T}+B_{1}y_{t-1}+\dots+B_{t-2}y_{2}+\tilde B_{t-1}y_{1}$$ +# +# for $t=3,4,...,T-2$, where +# +# $$B_{j} = \frac{\sin(jb)-\sin(ja)}{\pi j},j\geq1$$ +# +# $$B_{0} = \frac{b-a}{\pi},a=\frac{2\pi}{P_{u}},b=\frac{2\pi}{P_{L}}$$ +# +# $\tilde B_{T-t}$ and $\tilde B_{t-1}$ are linear functions of the $B_{j}$'s, and the values for $t=1,2,T-1,$ and $T$ are also calculated in much the same way. $P_{U}$ and $P_{L}$ are as described above with the same interpretation. + +# The CF filter is appropriate for series that may follow a random walk. + +print(sm.tsa.stattools.adfuller(dta['unemp'])[:3]) + + +print(sm.tsa.stattools.adfuller(dta['infl'])[:3]) + + +cf_cycles, cf_trend = sm.tsa.filters.cffilter(dta[["infl","unemp"]]) +print(cf_cycles.head(10)) + + +fig = plt.figure(figsize=(14,10)) +ax = fig.add_subplot(111) +cf_cycles.plot(ax=ax, style=['r--','b-']); + + +# Filtering assumes *a priori* that business cycles exist. Due to this assumption, many macroeconomic models seek to create models that match the shape of impulse response functions rather than replicating properties of filtered series. See VAR notebook. diff --git a/examples/python/wls.py b/examples/python/wls.py new file mode 100644 index 0000000..ce74a9d --- /dev/null +++ b/examples/python/wls.py @@ -0,0 +1,103 @@ + +## Weighted Least Squares +from __future__ import print_function +import numpy as np +from scipy import stats +import statsmodels.api as sm +import matplotlib.pyplot as plt +from statsmodels.sandbox.regression.predstd import wls_prediction_std +from statsmodels.iolib.table import (SimpleTable, default_txt_fmt) +np.random.seed(1024) + + +# ## WLS Estimation +# +# ### Artificial data: Heteroscedasticity 2 groups +# +# Model assumptions: +# +# * Misspecification: true model is quadratic, estimate only linear +# * Independent noise/error term +# * Two groups for error variance, low and high variance groups + +nsample = 50 +x = np.linspace(0, 20, nsample) +X = np.column_stack((x, (x - 5)**2)) +X = sm.add_constant(X) +beta = [5., 0.5, -0.01] +sig = 0.5 +w = np.ones(nsample) +w[nsample * 6/10:] = 3 +y_true = np.dot(X, beta) +e = np.random.normal(size=nsample) +y = y_true + sig * w * e +X = X[:,[0,1]] + + +# ### WLS knowing the true variance ratio of heteroscedasticity + +mod_wls = sm.WLS(y, X, weights=1./w) +res_wls = mod_wls.fit() +print(res_wls.summary()) + + +# ## OLS vs. WLS +# +# Estimate an OLS model for comparison: + +res_ols = sm.OLS(y, X).fit() +print(res_ols.params) +print(res_wls.params) + + +# Compare the WLS standard errors to heteroscedasticity corrected OLS standard errors: + +se = np.vstack([[res_wls.bse], [res_ols.bse], [res_ols.HC0_se], + [res_ols.HC1_se], [res_ols.HC2_se], [res_ols.HC3_se]]) +se = np.round(se,4) +colnames = ['x1', 'const'] +rownames = ['WLS', 'OLS', 'OLS_HC0', 'OLS_HC1', 'OLS_HC3', 'OLS_HC3'] +tabl = SimpleTable(se, colnames, rownames, txt_fmt=default_txt_fmt) +print(tabl) + + +# Calculate OLS prediction interval: + +covb = res_ols.cov_params() +prediction_var = res_ols.mse_resid + (X * np.dot(covb,X.T).T).sum(1) +prediction_std = np.sqrt(prediction_var) +tppf = stats.t.ppf(0.975, res_ols.df_resid) + + +prstd_ols, iv_l_ols, iv_u_ols = wls_prediction_std(res_ols) + + +# Draw a plot to compare predicted values in WLS and OLS: + +prstd, iv_l, iv_u = wls_prediction_std(res_wls) + +fig, ax = plt.subplots() +ax.plot(x, y, 'o', label="Data") +ax.plot(x, y_true, 'b-', label="True") +# OLS +ax.plot(x, res_ols.fittedvalues, 'r--') +ax.plot(x, iv_u_ols, 'r--', label="OLS") +ax.plot(x, iv_l_ols, 'r--') +# WLS +ax.plot(x, res_wls.fittedvalues, 'g--.') +ax.plot(x, iv_u, 'g--', label="WLS") +ax.plot(x, iv_l, 'g--') +ax.legend(loc="best"); + + +# ## Feasible Weighted Least Squares (2-stage FWLS) + +resid1 = res_ols.resid[w==1.] +var1 = resid1.var(ddof=int(res_ols.df_model)+1) +resid2 = res_ols.resid[w!=1.] +var2 = resid2.var(ddof=int(res_ols.df_model)+1) +w_est = w.copy() +w_est[w!=1.] = np.sqrt(var2) / np.sqrt(var1) +res_fwls = sm.WLS(y, X, 1./w_est).fit() +print(res_fwls.summary()) + diff --git a/examples/run_all.py b/examples/run_all.py new file mode 100644 index 0000000..0c87bfa --- /dev/null +++ b/examples/run_all.py @@ -0,0 +1,55 @@ +"""run all examples to make sure we don't get an exception + +Note: +If an example contaings plt.show(), then all plot windows have to be closed +manually, at least in my setup. + +uncomment plt.show() to show all plot windows + +""" +from __future__ import print_function +from statsmodels.compat import input +stop_on_error = True + + +filelist = ['example_glsar.py', 'example_wls.py', 'example_gls.py', + 'example_glm.py', 'example_ols_tftest.py', # 'example_rpy.py', + 'example_ols.py', 'example_rlm.py', + 'example_discrete.py', 'example_predict.py', + 'example_ols_table.py', + # time series + 'tsa/ex_arma2.py', 'tsa/ex_dates.py'] + +if __name__ == '__main__': + #temporarily disable show + import matplotlib.pyplot as plt + plt_show = plt.show + + def noop(*args): + pass + + plt.show = noop + + msg = """Are you sure you want to run all of the examples? + This is done mainly to check that they are up to date. + (y/n) >>> """ + + cont = input(msg) + if 'y' in cont.lower(): + for run_all_f in filelist: + try: + print('\n\nExecuting example file', run_all_f) + print('-----------------------' + '-' * len(run_all_f)) + exec(open(run_all_f).read()) + except: + # f might be overwritten in the executed file + print('**********************' + '*' * len(run_all_f)) + print('ERROR in example file', run_all_f) + print('**********************' + '*' * len(run_all_f)) + if stop_on_error: + raise + + # reenable show after closing windows + plt.close('all') + plt.show = plt_show + plt.show() diff --git a/ez_setup.py b/ez_setup.py new file mode 100644 index 0000000..de65d3c --- /dev/null +++ b/ez_setup.py @@ -0,0 +1,264 @@ +#!python +"""Bootstrap setuptools installation + +If you want to use setuptools in your package's setup.py, just include this +file in the same directory with it, and add this to the top of your setup.py:: + + from ez_setup import use_setuptools + use_setuptools() + +If you want to require a specific version of setuptools, set a download +mirror, or use an alternate download directory, you can do so by supplying +the appropriate options to ``use_setuptools()``. + +This file can also be run as a script to install or upgrade setuptools. +""" +import sys +DEFAULT_VERSION = "0.6c11" +DEFAULT_URL = "http://pypi.python.org/packages/%s/s/setuptools/" % sys.version[ + :3] + +md5_data = { + 'setuptools-0.6b1-py2.3.egg': '8822caf901250d848b996b7f25c6e6ca', + 'setuptools-0.6b1-py2.4.egg': 'b79a8a403e4502fbb85ee3f1941735cb', + 'setuptools-0.6b2-py2.3.egg': '5657759d8a6d8fc44070a9d07272d99b', + 'setuptools-0.6b2-py2.4.egg': '4996a8d169d2be661fa32a6e52e4f82a', + 'setuptools-0.6b3-py2.3.egg': 'bb31c0fc7399a63579975cad9f5a0618', + 'setuptools-0.6b3-py2.4.egg': '38a8c6b3d6ecd22247f179f7da669fac', + 'setuptools-0.6b4-py2.3.egg': '62045a24ed4e1ebc77fe039aa4e6f7e5', + 'setuptools-0.6b4-py2.4.egg': '4cb2a185d228dacffb2d17f103b3b1c4', + 'setuptools-0.6c1-py2.3.egg': 'b3f2b5539d65cb7f74ad79127f1a908c', + 'setuptools-0.6c1-py2.4.egg': 'b45adeda0667d2d2ffe14009364f2a4b', + 'setuptools-0.6c10-py2.3.egg': 'ce1e2ab5d3a0256456d9fc13800a7090', + 'setuptools-0.6c10-py2.4.egg': '57d6d9d6e9b80772c59a53a8433a5dd4', + 'setuptools-0.6c10-py2.5.egg': 'de46ac8b1c97c895572e5e8596aeb8c7', + 'setuptools-0.6c10-py2.6.egg': '58ea40aef06da02ce641495523a0b7f5', + 'setuptools-0.6c11-py2.3.egg': '2baeac6e13d414a9d28e7ba5b5a596de', + 'setuptools-0.6c11-py2.4.egg': 'bd639f9b0eac4c42497034dec2ec0c2b', + 'setuptools-0.6c11-py2.5.egg': '64c94f3bf7a72a13ec83e0b24f2749b2', + 'setuptools-0.6c11-py2.6.egg': 'bfa92100bd772d5a213eedd356d64086', + 'setuptools-0.6c2-py2.3.egg': 'f0064bf6aa2b7d0f3ba0b43f20817c27', + 'setuptools-0.6c2-py2.4.egg': '616192eec35f47e8ea16cd6a122b7277', + 'setuptools-0.6c3-py2.3.egg': 'f181fa125dfe85a259c9cd6f1d7b78fa', + 'setuptools-0.6c3-py2.4.egg': 'e0ed74682c998bfb73bf803a50e7b71e', + 'setuptools-0.6c3-py2.5.egg': 'abef16fdd61955514841c7c6bd98965e', + 'setuptools-0.6c4-py2.3.egg': 'b0b9131acab32022bfac7f44c5d7971f', + 'setuptools-0.6c4-py2.4.egg': '2a1f9656d4fbf3c97bf946c0a124e6e2', + 'setuptools-0.6c4-py2.5.egg': '8f5a052e32cdb9c72bcf4b5526f28afc', + 'setuptools-0.6c5-py2.3.egg': 'ee9fd80965da04f2f3e6b3576e9d8167', + 'setuptools-0.6c5-py2.4.egg': 'afe2adf1c01701ee841761f5bcd8aa64', + 'setuptools-0.6c5-py2.5.egg': 'a8d3f61494ccaa8714dfed37bccd3d5d', + 'setuptools-0.6c6-py2.3.egg': '35686b78116a668847237b69d549ec20', + 'setuptools-0.6c6-py2.4.egg': '3c56af57be3225019260a644430065ab', + 'setuptools-0.6c6-py2.5.egg': 'b2f8a7520709a5b34f80946de5f02f53', + 'setuptools-0.6c7-py2.3.egg': '209fdf9adc3a615e5115b725658e13e2', + 'setuptools-0.6c7-py2.4.egg': '5a8f954807d46a0fb67cf1f26c55a82e', + 'setuptools-0.6c7-py2.5.egg': '45d2ad28f9750e7434111fde831e8372', + 'setuptools-0.6c8-py2.3.egg': '50759d29b349db8cfd807ba8303f1902', + 'setuptools-0.6c8-py2.4.egg': 'cba38d74f7d483c06e9daa6070cce6de', + 'setuptools-0.6c8-py2.5.egg': '1721747ee329dc150590a58b3e1ac95b', + 'setuptools-0.6c9-py2.3.egg': 'a83c4020414807b496e4cfbe08507c03', + 'setuptools-0.6c9-py2.4.egg': '260a2be2e5388d66bdaee06abec6342a', + 'setuptools-0.6c9-py2.5.egg': 'fe67c3e5a17b12c0e7c541b7ea43a8e6', + 'setuptools-0.6c9-py2.6.egg': 'ca37b1ff16fa2ede6e19383e7b59245a', +} + +import sys +import os +try: + from hashlib import md5 +except ImportError: + from md5 import md5 + + +def _validate_md5(egg_name, data): + if egg_name in md5_data: + digest = md5(data).hexdigest() + if digest != md5_data[egg_name]: + print >>sys.stderr, ( + "md5 validation of %s failed! (Possible download problem?)" + % egg_name + ) + sys.exit(2) + return data + + +def use_setuptools( + version=DEFAULT_VERSION, download_base=DEFAULT_URL, to_dir=os.curdir, + download_delay=15 +): + """Automatically find/download setuptools and make it available on sys.path + + `version` should be a valid setuptools version number that is available + as an egg for download under the `download_base` URL (which should end with + a '/'). `to_dir` is the directory where setuptools will be downloaded, if + it is not already available. If `download_delay` is specified, it should + be the number of seconds that will be paused before initiating a download, + should one be required. If an older version of setuptools is installed, + this routine will print a message to ``sys.stderr`` and raise SystemExit in + an attempt to abort the calling script. + """ + was_imported = 'pkg_resources' in sys.modules or 'setuptools' in sys.modules + + def do_download(): + egg = download_setuptools( + version, download_base, to_dir, download_delay) + sys.path.insert(0, egg) + import setuptools + setuptools.bootstrap_install_from = egg + try: + import pkg_resources + except ImportError: + return do_download() + try: + pkg_resources.require("setuptools>=" + version) + return + except pkg_resources.VersionConflict, e: + if was_imported: + print >>sys.stderr, ( + "The required version of setuptools (>=%s) is not available, and\n" + "can't be installed while this script is running. Please install\n" + " a more recent version first, using 'easy_install -U setuptools'." + "\n\n(Currently using %r)" + ) % (version, e.args[0]) + sys.exit(2) + else: + del pkg_resources, sys.modules['pkg_resources'] # reload ok + return do_download() + except pkg_resources.DistributionNotFound: + return do_download() + + +def download_setuptools( + version=DEFAULT_VERSION, download_base=DEFAULT_URL, to_dir=os.curdir, + delay=15 +): + """Download setuptools from a specified location and return its filename + + `version` should be a valid setuptools version number that is available + as an egg for download under the `download_base` URL (which should end + with a '/'). `to_dir` is the directory where the egg will be downloaded. + `delay` is the number of seconds to pause before an actual download attempt. + """ + import urllib2 + import shutil + egg_name = "setuptools-%s-py%s.egg" % (version, sys.version[:3]) + url = download_base + egg_name + saveto = os.path.join(to_dir, egg_name) + src = dst = None + if not os.path.exists(saveto): # Avoid repeated downloads + try: + from distutils import log + if delay: + log.warn(""" +--------------------------------------------------------------------------- +This script requires setuptools version %s to run (even to display +help). I will attempt to download it for you (from +%s), but +you may need to enable firewall access for this script first. +I will start the download in %d seconds. + +(Note: if this machine does not have network access, please obtain the file + + %s + +and place it in this directory before rerunning this script.) +---------------------------------------------------------------------------""", + version, download_base, delay, url + ) + from time import sleep + sleep(delay) + log.warn("Downloading %s", url) + src = urllib2.urlopen(url) + # Read/write all in one block, so we don't create a corrupt file + # if the download is interrupted. + data = _validate_md5(egg_name, src.read()) + dst = open(saveto, "wb") + dst.write(data) + finally: + if src: + src.close() + if dst: + dst.close() + return os.path.realpath(saveto) + + +def main(argv, version=DEFAULT_VERSION): + """Install or upgrade setuptools and EasyInstall""" + try: + import setuptools + except ImportError: + egg = None + try: + egg = download_setuptools(version, delay=0) + sys.path.insert(0, egg) + from setuptools.command.easy_install import main + return main(list(argv) + [egg]) # we're done here + finally: + if egg and os.path.exists(egg): + os.unlink(egg) + else: + if setuptools.__version__ == '0.0.1': + print >>sys.stderr, ( + "You have an obsolete version of setuptools installed. Please\n" + "remove it from your system entirely before rerunning this script." + ) + sys.exit(2) + + req = "setuptools>=" + version + import pkg_resources + try: + pkg_resources.require(req) + except pkg_resources.VersionConflict: + try: + from setuptools.command.easy_install import main + except ImportError: + from easy_install import main + main(list(argv) + [download_setuptools(delay=0)]) + sys.exit(0) # try to force an exit + else: + if argv: + from setuptools.command.easy_install import main + main(argv) + else: + print "Setuptools version", version, "or greater has been installed." + print '(Run "ez_setup.py -U setuptools" to reinstall or upgrade.)' + + +def update_md5(filenames): + """Update our built-in md5 registry""" + + import re + + for name in filenames: + base = os.path.basename(name) + f = open(name, 'rb') + md5_data[base] = md5(f.read()).hexdigest() + f.close() + + data = [" %r: %r,\n" % it for it in md5_data.items()] + data.sort() + repl = "".join(data) + + import inspect + srcfile = inspect.getsourcefile(sys.modules[__name__]) + f = open(srcfile, 'rb') + src = f.read() + f.close() + + match = re.search("\nmd5_data = {\n([^}]+)}", src) + if not match: + print >>sys.stderr, "Internal error!" + sys.exit(2) + + src = src[:match.start(1)] + repl + src[match.end(1):] + f = open(srcfile, 'w') + f.write(src) + f.close() + + +if __name__ == '__main__': + if len(sys.argv) > 2 and sys.argv[1] == '--md5update': + update_md5(sys.argv[2:]) + else: + main(sys.argv[1:]) diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..cdf4f6d --- /dev/null +++ b/setup.py @@ -0,0 +1,475 @@ +""" +Much of the build system code was adapted from work done by the pandas +developers [1], which was in turn based on work done in pyzmq [2] and lxml [3]. + +[1] http://pandas.pydata.org +[2] http://zeromq.github.io/pyzmq/ +[3] http://lxml.de/ +""" + +import os +from os.path import relpath, join as pjoin +import sys +import subprocess +import re +from distutils.version import StrictVersion, LooseVersion + + +# temporarily redirect config directory to prevent matplotlib importing +# testing that for writeable directory which results in sandbox error in +# certain easy_install versions +os.environ["MPLCONFIGDIR"] = "." + +no_frills = (len(sys.argv) >= 2 and ('--help' in sys.argv[1:] or + sys.argv[1] in ('--help-commands', + 'egg_info', '--version', + 'clean'))) + +# try bootstrapping setuptools if it doesn't exist +try: + import pkg_resources + try: + pkg_resources.require("setuptools>=0.6c5") + except pkg_resources.VersionConflict: + from ez_setup import use_setuptools + use_setuptools(version="0.6c5") + from setuptools import setup, Command, find_packages + _have_setuptools = True +except ImportError: + # no setuptools installed + from distutils.core import setup, Command + _have_setuptools = False + +if _have_setuptools: + setuptools_kwargs = {"zip_safe": False, + "test_suite": "nose.collector"} +else: + setuptools_kwargs = {} + if sys.version_info[0] >= 3: + sys.exit("Need setuptools to install statsmodels for Python 3.x") + + +curdir = os.path.abspath(os.path.dirname(__file__)) +README = open(pjoin(curdir, "README.rst")).read() + +DISTNAME = 'statsmodels' +DESCRIPTION = 'Statistical computations and models for Python' +LONG_DESCRIPTION = README +MAINTAINER = 'Skipper Seabold, Josef Perktold' +MAINTAINER_EMAIL ='pystatsmodels@googlegroups.com' +URL = 'http://www.statsmodels.org/' +LICENSE = 'BSD License' +DOWNLOAD_URL = '' + +# These imports need to be here; setuptools needs to be imported first. +from distutils.extension import Extension +from distutils.command.build import build +from distutils.command.build_ext import build_ext as _build_ext + + +class build_ext(_build_ext): + def build_extensions(self): + numpy_incl = pkg_resources.resource_filename('numpy', 'core/include') + + for ext in self.extensions: + if (hasattr(ext, 'include_dirs') and + not numpy_incl in ext.include_dirs): + ext.include_dirs.append(numpy_incl) + _build_ext.build_extensions(self) + + +def generate_cython(): + cwd = os.path.abspath(os.path.dirname(__file__)) + print("Cythonizing sources") + p = subprocess.call([sys.executable, + os.path.join(cwd, 'tools', 'cythonize.py'), + 'statsmodels'], + cwd=cwd) + if p != 0: + raise RuntimeError("Running cythonize failed!") + + +def strip_rc(version): + return re.sub(r"rc\d+$", "", version) + + +def check_dependency_versions(min_versions): + """ + Don't let pip/setuptools do this all by itself. It's rude. + + For all dependencies, try to import them and check if the versions of + installed dependencies match the minimum version requirements. If + installed but version too low, raise an error. If not installed at all, + return the correct ``setup_requires`` and ``install_requires`` arguments to + be added to the setuptools kwargs. This prevents upgrading installed + dependencies like numpy (that should be an explicit choice by the user and + never happen automatically), but make things work when installing into an + empty virtualenv for example. + + """ + setup_requires = [] + install_requires = [] + + try: + from numpy.version import short_version as npversion + except ImportError: + setup_requires.append('numpy') + install_requires.append('numpy') + else: + if not (LooseVersion(npversion) >= min_versions['numpy']): + raise ImportError("Numpy version is %s. Requires >= %s" % + (npversion, min_versions['numpy'])) + + try: + import scipy + except ImportError: + install_requires.append('scipy') + else: + try: + from scipy.version import short_version as spversion + except ImportError: + from scipy.version import version as spversion # scipy 0.7.0 + if not (LooseVersion(spversion) >= min_versions['scipy']): + raise ImportError("Scipy version is %s. Requires >= %s" % + (spversion, min_versions['scipy'])) + + try: + from pandas import __version__ as pversion + except ImportError: + install_requires.append('pandas') + else: + if not (LooseVersion(pversion) >= min_versions['pandas']): + ImportError("Pandas version is %s. Requires >= %s" % + (pversion, min_versions['pandas'])) + + try: + from patsy import __version__ as patsy_version + except ImportError: + install_requires.append('patsy') + else: + # patsy dev looks like 0.1.0+dev + pversion = re.match("\d*\.\d*\.\d*", patsy_version).group() + if not (LooseVersion(pversion) >= min_versions['patsy']): + raise ImportError("Patsy version is %s. Requires >= %s" % + (pversion, min_versions["patsy"])) + + return setup_requires, install_requires + + +MAJ = 0 +MIN = 8 +REV = 0 +ISRELEASED = True +VERSION = '%d.%d.%drc1' % (MAJ,MIN,REV) + +classifiers = ['Development Status :: 4 - Beta', + 'Environment :: Console', + 'Programming Language :: Cython', + 'Programming Language :: Python :: 2.6', + 'Programming Language :: Python :: 2.7', + 'Programming Language :: Python :: 3.3', + 'Programming Language :: Python :: 3.4', + 'Programming Language :: Python :: 3.5', + 'Operating System :: OS Independent', + 'Intended Audience :: End Users/Desktop', + 'Intended Audience :: Developers', + 'Intended Audience :: Science/Research', + 'Natural Language :: English', + 'License :: OSI Approved :: BSD License', + 'Topic :: Scientific/Engineering'] + +# Return the git revision as a string +def git_version(): + def _minimal_ext_cmd(cmd): + # construct minimal environment + env = {} + for k in ['SYSTEMROOT', 'PATH']: + v = os.environ.get(k) + if v is not None: + env[k] = v + # LANGUAGE is used on win32 + env['LANGUAGE'] = 'C' + env['LANG'] = 'C' + env['LC_ALL'] = 'C' + out = subprocess.Popen(" ".join(cmd), stdout = subprocess.PIPE, env=env, + shell=True).communicate()[0] + return out + + try: + out = _minimal_ext_cmd(['git', 'rev-parse', 'HEAD']) + GIT_REVISION = out.strip().decode('ascii') + except OSError: + GIT_REVISION = "Unknown" + + return GIT_REVISION + +def write_version_py(filename=pjoin(curdir, 'statsmodels/version.py')): + cnt = "\n".join(["", + "# THIS FILE IS GENERATED FROM SETUP.PY", + "short_version = '%(version)s'", + "version = '%(version)s'", + "full_version = '%(full_version)s'", + "git_revision = '%(git_revision)s'", + "release = %(isrelease)s", "", + "if not release:", + " version = full_version"]) + # Adding the git rev number needs to be done inside write_version_py(), + # otherwise the import of numpy.version messes up the build under Python 3. + FULLVERSION = VERSION + dowrite = True + if os.path.exists('.git'): + GIT_REVISION = git_version() + elif os.path.exists(filename): + # must be a source distribution, use existing version file + try: + from statsmodels.version import git_revision as GIT_REVISION + except ImportError: + dowrite = False + GIT_REVISION = "Unknown" + else: + GIT_REVISION = "Unknown" + + if not ISRELEASED: + FULLVERSION += '.dev0+' + GIT_REVISION[:7] + + + if dowrite: + try: + a = open(filename, 'w') + a.write(cnt % {'version': VERSION, + 'full_version' : FULLVERSION, + 'git_revision' : GIT_REVISION, + 'isrelease': str(ISRELEASED)}) + finally: + a.close() + + +class CleanCommand(Command): + """Custom distutils command to clean the .so and .pyc files.""" + + user_options = [("all", "a", "")] + + def initialize_options(self): + self.all = True + self._clean_me = [] + self._clean_trees = [] + self._clean_exclude = ["bspline_ext.c", + "bspline_impl.c"] + + for root, dirs, files in list(os.walk('statsmodels')): + for f in files: + if f in self._clean_exclude: + continue + if os.path.splitext(f)[-1] in ('.pyc', '.so', '.o', + '.pyo', + '.pyd', '.c', '.orig'): + self._clean_me.append(pjoin(root, f)) + for d in dirs: + if d == '__pycache__': + self._clean_trees.append(pjoin(root, d)) + + for d in ('build',): + if os.path.exists(d): + self._clean_trees.append(d) + + def finalize_options(self): + pass + + def run(self): + for clean_me in self._clean_me: + try: + os.unlink(clean_me) + except Exception: + pass + for clean_tree in self._clean_trees: + try: + import shutil + shutil.rmtree(clean_tree) + except Exception: + pass + + +class CheckingBuildExt(build_ext): + """Subclass build_ext to get clearer report if Cython is necessary.""" + + def check_cython_extensions(self, extensions): + for ext in extensions: + for src in ext.sources: + if not os.path.exists(src): + raise Exception("""Cython-generated file '%s' not found. + Cython is required to compile statsmodels from a development branch. + Please install Cython or download a source release of statsmodels. + """ % src) + + def build_extensions(self): + self.check_cython_extensions(self.extensions) + build_ext.build_extensions(self) + + +class DummyBuildSrc(Command): + """ numpy's build_src command interferes with Cython's build_ext. + """ + user_options = [] + + def initialize_options(self): + self.py_modules_dict = {} + + def finalize_options(self): + pass + + def run(self): + pass + + +cmdclass = {'clean': CleanCommand, + 'build': build} + +cmdclass["build_src"] = DummyBuildSrc +cmdclass["build_ext"] = CheckingBuildExt + + +# some linux distros require it +#NOTE: we are not currently using this but add it to Extension, if needed. +# libraries = ['m'] if 'win32' not in sys.platform else [] + +from numpy.distutils.misc_util import get_info + +npymath_info = get_info("npymath") +ext_data = dict( + kalman_loglike = {"name" : "statsmodels/tsa/kalmanf/kalman_loglike.c", + "depends" : ["statsmodels/src/capsule.h"], + "include_dirs": ["statsmodels/src"], + "sources" : []}, + _hamilton_filter = {"name" : "statsmodels/tsa/regime_switching/_hamilton_filter.c", + "depends" : [], + "include_dirs": [], + "sources" : []}, + _statespace = {"name" : "statsmodels/tsa/statespace/_statespace.c", + "depends" : ["statsmodels/src/capsule.h"], + "include_dirs": ["statsmodels/src"] + npymath_info['include_dirs'], + "libraries": npymath_info['libraries'], + "library_dirs": npymath_info['library_dirs'], + "sources" : []}, + linbin = {"name" : "statsmodels/nonparametric/linbin.c", + "depends" : [], + "sources" : []}, + _smoothers_lowess = {"name" : "statsmodels/nonparametric/_smoothers_lowess.c", + "depends" : [], + "sources" : []} + ) + +extensions = [] +for name, data in ext_data.items(): + data['sources'] = data.get('sources', []) + [data['name']] + + destdir = ".".join(os.path.dirname(data["name"]).split("/")) + data.pop('name') + + obj = Extension('%s.%s' % (destdir, name), **data) + + extensions.append(obj) + + +def get_data_files(): + sep = os.path.sep + # install the datasets + data_files = {} + root = pjoin(curdir, "statsmodels", "datasets") + for i in os.listdir(root): + if i is "tests": + continue + path = pjoin(root, i) + if os.path.isdir(path): + data_files.update({relpath(path, start=curdir).replace(sep, ".") : ["*.csv", + "*.dta"]}) + # add all the tests and results files + for r, ds, fs in os.walk(pjoin(curdir, "statsmodels")): + r_ = relpath(r, start=curdir) + if r_.endswith('results'): + data_files.update({r_.replace(sep, ".") : ["*.csv", + "*.txt", + "*.dta"]}) + + return data_files + + +if __name__ == "__main__": + if os.path.exists('MANIFEST'): + os.unlink('MANIFEST') + + min_versions = { + 'numpy' : '1.6.2', + 'scipy' : '0.11', + 'pandas' : '0.13', + 'patsy' : '0.2.1', + } + if sys.version_info[0] == 3 and sys.version_info[1] >= 3: + # 3.3 needs numpy 1.7+ + min_versions.update({"numpy" : "1.7.0"}) + + (setup_requires, + install_requires) = check_dependency_versions(min_versions) + + if _have_setuptools: + setuptools_kwargs['setup_requires'] = setup_requires + setuptools_kwargs['install_requires'] = install_requires + + write_version_py() + + # this adds *.csv and *.dta files in datasets folders + # and *.csv and *.txt files in test/results folders + package_data = get_data_files() + packages = find_packages() + packages.append("statsmodels.tsa.vector_ar.data") + + package_data["statsmodels.datasets.tests"].append("*.zip") + package_data["statsmodels.iolib.tests.results"].append("*.dta") + package_data["statsmodels.stats.tests.results"].append("*.json") + package_data["statsmodels.tsa.vector_ar.tests.results"].append("*.npz") + # data files that don't follow the tests/results pattern. should fix. + package_data.update({"statsmodels.stats.tests" : ["*.txt"]}) + + package_data.update({"statsmodels.stats.libqsturng" : + ["*.r", "*.txt", "*.dat"]}) + package_data.update({"statsmodels.stats.libqsturng.tests" : + ["*.csv", "*.dat"]}) + package_data.update({"statsmodels.tsa.vector_ar.data" : ["*.dat"]}) + package_data.update({"statsmodels.tsa.vector_ar.data" : ["*.dat"]}) + # temporary, until moved: + package_data.update({"statsmodels.sandbox.regression.tests" : + ["*.dta", "*.csv"]}) + + #TODO: deal with this. Not sure if it ever worked for bdists + #('docs/build/htmlhelp/statsmodelsdoc.chm', + # 'statsmodels/statsmodelsdoc.chm') + + cwd = os.path.abspath(os.path.dirname(__file__)) + if not os.path.exists(os.path.join(cwd, 'PKG-INFO')) and not no_frills: + # Generate Cython sources, unless building from source release + generate_cython() + extras = {'docs': ['sphinx>=1.3.5', + 'nbconvert>=4.2.0', + 'jupyter_client', + 'ipykernel', + 'matplotlib', + 'nbformat>=4.0.1', + 'numpydoc>=0.6.0']} + + setup(name = DISTNAME, + version = VERSION, + maintainer = MAINTAINER, + ext_modules = extensions, + maintainer_email = MAINTAINER_EMAIL, + description = DESCRIPTION, + license = LICENSE, + url = URL, + download_url = DOWNLOAD_URL, + long_description = LONG_DESCRIPTION, + classifiers = classifiers, + platforms = 'any', + cmdclass = cmdclass, + packages = packages, + package_data = package_data, + include_package_data=False, # True will install all files in repo + extras_require=extras, + **setuptools_kwargs) diff --git a/statsmodels/LICENSE.txt b/statsmodels/LICENSE.txt new file mode 100644 index 0000000..96e0269 --- /dev/null +++ b/statsmodels/LICENSE.txt @@ -0,0 +1,36 @@ +Copyright (C) 2006, Jonathan E. Taylor +All rights reserved. + +Copyright (c) 2006-2008 Scipy Developers. +All rights reserved. + +Copyright (c) 2009-2013 Statsmodels Developers. +All rights reserved. + + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + +3. The name of the author may not be used to endorse or promote + products derived from this software without specific prior + written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING +IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. diff --git a/statsmodels/TODO.txt b/statsmodels/TODO.txt new file mode 100644 index 0000000..d0ebf9b --- /dev/null +++ b/statsmodels/TODO.txt @@ -0,0 +1,19 @@ +Tests TODO +---------- +Test I/O of models wrt array types, dimensions + - add checks in all top class for data + +Known Issues +---------- +Need to clip mu's in GLM to avoid np.log(0), etc. (done for gamma) +Regression will not work with a 1d array for exog (pinv needs two), then + other calculations need checking and changing + +TODO +----- +Make a recarray dataset and masked dataset for testing and development +Rename bse +Add tvalues attribute to results instead of calling t method? + + +note the tests requirements somewhere (rpy, R, car library) diff --git a/statsmodels/__init__.py b/statsmodels/__init__.py new file mode 100644 index 0000000..8c0bdf6 --- /dev/null +++ b/statsmodels/__init__.py @@ -0,0 +1,81 @@ +from __future__ import print_function +__docformat__ = 'restructuredtext' + +from numpy import errstate +from numpy.testing import Tester + +from warnings import simplefilter +from .tools.sm_exceptions import (ConvergenceWarning, CacheWriteWarning, + IterationLimitWarning, InvalidTestWarning) + + +simplefilter("always", (ConvergenceWarning, CacheWriteWarning, + IterationLimitWarning, InvalidTestWarning)) + + +debug_warnings = False + +if debug_warnings: + import sys, warnings + warnings.simplefilter("default") + # use the following to raise an exception for debugging specific warnings + #warnings.filterwarnings("error", message=".*integer.*") + if (sys.version_info[0] >= 3): + # ResourceWarning doesn't exist in python 2 + # we have currently many ResourceWarnings in the datasets on python 3.4 + warnings.simplefilter("ignore", ResourceWarning) + + +class NoseWrapper(Tester): + ''' + This is simply a monkey patch for numpy.testing.Tester. + + It allows extra_argv to be changed from its default None to ['--exe'] so + that the tests can be run the same across platforms. It also takes kwargs + that are passed to numpy.errstate to suppress floating point warnings. + ''' + def test(self, label='fast', verbose=1, extra_argv=['--exe'], + doctests=False, coverage=False, **kwargs): + ''' Run tests for module using nose + + %(test_header)s + doctests : boolean + If True, run doctests in module, default False + coverage : boolean + If True, report coverage of NumPy code, default False + (Requires the coverage module: + http://nedbatchelder.com/code/modules/coverage.html) + kwargs + Passed to numpy.errstate. See its documentation for details. + ''' + + # cap verbosity at 3 because nose becomes *very* verbose beyond that + verbose = min(verbose, 3) + + from numpy.testing import utils + utils.verbose = verbose + + if doctests: + print("Running unit tests and doctests for %s" % self.package_name) + else: + print("Running unit tests for %s" % self.package_name) + + self._show_system_info() + + # reset doctest state on every run + import doctest + doctest.master = None + + argv, plugins = self.prepare_test_args(label, verbose, extra_argv, + doctests, coverage) + from numpy.testing.noseclasses import NumpyTestProgram + with errstate(**kwargs): + simplefilter('ignore', category=DeprecationWarning) + t = NumpyTestProgram(argv=argv, exit=False, plugins=plugins) + return t.result +test = NoseWrapper().test + +try: + from .version import version as __version__ +except ImportError: + __version__ = 'not-yet-built' diff --git a/statsmodels/api.py b/statsmodels/api.py new file mode 100644 index 0000000..670ea2d --- /dev/null +++ b/statsmodels/api.py @@ -0,0 +1,49 @@ +from . import iolib +from . import datasets +from . import tools +from .tools.tools import add_constant, categorical +from . import regression +from .regression.linear_model import OLS, GLS, WLS, GLSAR +from .regression.recursive_ls import RecursiveLS +from .regression.quantile_regression import QuantReg +from .regression.mixed_linear_model import MixedLM +from .genmod import api as genmod +from .genmod.api import GLM, GEE, OrdinalGEE, NominalGEE, families, cov_struct +from . import robust +from .robust.robust_linear_model import RLM +from .discrete.discrete_model import (Poisson, Logit, Probit, + MNLogit, NegativeBinomial) +from .tsa import api as tsa +from .duration.survfunc import SurvfuncRight +from .duration.hazard_regression import PHReg +from .imputation.mice import MICE, MICEData +from .nonparametric import api as nonparametric +from . import distributions +from .__init__ import test +from . import version +from .info import __doc__ +from .graphics.gofplots import qqplot, qqplot_2samples, qqline, ProbPlot +from .graphics import api as graphics +from .stats import api as stats +from .emplike import api as emplike +from .duration import api as duration +from .multivariate.pca import PCA + +from .formula import api as formula + +from .iolib.smpickle import load_pickle as load + +from .tools.print_version import show_versions +from .tools.web import webdoc + +import os + +chmpath = os.path.join(os.path.dirname(__file__), 'statsmodelsdoc.chm') +if os.path.exists(chmpath): + def open_help(chmpath=chmpath): + from subprocess import Popen + + p = Popen(chmpath, shell=True) + +del os +del chmpath diff --git a/statsmodels/base/__init__.py b/statsmodels/base/__init__.py new file mode 100644 index 0000000..0123ce8 --- /dev/null +++ b/statsmodels/base/__init__.py @@ -0,0 +1,2 @@ +from statsmodels import NoseWrapper as Tester +test = Tester().test diff --git a/statsmodels/base/_constraints.py b/statsmodels/base/_constraints.py new file mode 100644 index 0000000..f3ac6bc --- /dev/null +++ b/statsmodels/base/_constraints.py @@ -0,0 +1,312 @@ +# -*- coding: utf-8 -*- +""" +Created on Thu May 15 16:36:05 2014 + +Author: Josef Perktold +License: BSD-3 + +""" + +import numpy as np + + +class TransformRestriction(object): + """Transformation for linear constraints `R params = q` + + Note, the transformation from the reduced to the full parameters is an + affine and not a linear transformation if q is not zero. + + + Parameters + ---------- + R : array_like + Linear restriction matrix + q : arraylike or None + values of the linear restrictions + + + Notes + ----- + The reduced parameters are not sorted with respect to constraints. + + TODO: error checking, eg. inconsistent constraints, how? + + Inconsistent constraints will raise an exception in the calculation of + the constant or offset. However, homogeneous constraints, where q=0, will + can have a solution where the relevant parameters are constraint to be + zero, as in the following example:: + + b1 + b2 = 0 and b1 + 2*b2 = 0, implies that b2 = 0. + + The transformation applied from full to reduced parameter space does not + raise and exception if the constraint doesn't hold. + TODO: maybe change this, what's the behavior in this case? + + + The `reduce` transform is applied to the array of explanatory variables, + `exog`, when transforming a linear model to impose the constraints. + + """ + + def __init__(self, R, q=None): + + # The calculations are based on Stata manual for makecns + R = self.R = np.atleast_2d(R) + if q is not None: + q = self.q = np.asarray(q) + + k_constr, k_vars = R.shape + self.k_constr, self.k_vars = k_constr, k_vars + self.k_unconstr = k_vars - k_constr + + m = np.eye(k_vars) - R.T.dot(np.linalg.pinv(R).T) + evals, evecs = np.linalg.eigh(m) + + # This normalizes the transformation so the larges element is 1. + # It makes it easier to interpret simple restrictions, e.g. b1 + b2 = 0 + # TODO: make this work, there is something wrong, does not round-trip + # need to adjust constant + #evecs_maxabs = np.max(np.abs(evecs), 0) + #evecs = evecs / evecs_maxabs + + self.evals = evals + self.evecs = evecs # temporarily attach as attribute + L = self.L = evecs[:, :k_constr] + self.transf_mat = evecs[:, k_constr:] + + if q is not None: + # use solve instead of inv + #self.constant = q.T.dot(np.linalg.inv(L.T.dot(R.T)).dot(L.T)) + try: + self.constant = q.T.dot(np.linalg.solve(L.T.dot(R.T), L.T)) + except np.linalg.linalg.LinAlgError as e: + raise ValueError('possibly inconsistent constraints. error ' + 'generated by\n%r' % (e, )) + else: + self.constant = 0 + + def expand(self, params_reduced): + """transform from the reduced to the full parameter space + + Parameters + ---------- + params_reduced : array_like + parameters in the transformed space + + Returns + ------- + params : array_like + parameters in the original space + + Notes + ----- + If the restriction is not homogeneous, i.e. q is not equal to zero, + then this is an affine transform. + + """ + params_reduced = np.asarray(params_reduced) + return self.transf_mat.dot(params_reduced.T).T + self.constant + + def reduce(self, params): + """transform from the full to the reduced parameter space + + Parameters + ---------- + params : array_like + parameters or data in the original space + + Returns + ------- + params_reduced : array_like + parameters in the transformed space + + This transform can be applied to the original parameters as well + as to the data. If params is 2-d, then each row is transformed. + + """ + params = np.asarray(params) + return params.dot(self.transf_mat) + + + +def transform_params_constraint(params, Sinv, R, q): + """find the parameters that statisfy linear constraint from unconstraint + + The linear constraint R params = q is imposed. + + Parameters + ---------- + params : array_like + unconstraint parameters + Sinv : ndarray, 2d, symmetric + covariance matrix of the parameter estimate + R : ndarray, 2d + constraint matrix + q : ndarray, 1d + values of the constraint + + Returns + ------- + params_constraint : ndarray + parameters of the same length as params satisfying the constraint + + Notes + ----- + This is the exact formula for OLS and other linear models. It will be + a local approximation for nonlinear models. + + TODO: Is Sinv always the covariance matrix? + In the linear case it can be (X'X)^{-1} or sigmahat^2 (X'X)^{-1}. + + My guess is that this is the point in the subspace that satisfies + the constraint that has minimum Mahalanobis distance. Proof ? + + """ + + rsr = R.dot(Sinv).dot(R.T) + + reduction = Sinv.dot(R.T).dot(np.linalg.solve(rsr, R.dot(params) - q)) + return params - reduction + + +def fit_constrained(model, constraint_matrix, constraint_values, + start_params=None, fit_kwds=None): + # note: self is model instance + """fit model subject to linear equality constraints + + The constraints are of the form `R params = q` + where R is the constraint_matrix and q is the vector of constraint_values. + + The estimation creates a new model with transformed design matrix, + exog, and converts the results back to the original parameterization. + + + Parameters + ---------- + model: model instance + An instance of a model, see limitations in Notes section + constraint_matrix : array_like, 2D + This is R in the linear equality constraint `R params = q`. + The number of columns needs to be the same as the number of columns + in exog. + constraint_values : + This is `q` in the linear equality constraint `R params = q` + If it is a tuple, then the constraint needs to be given by two + arrays (constraint_matrix, constraint_value), i.e. (R, q). + Otherwise, the constraints can be given as strings or list of + strings. + see t_test for details + start_params : None or array_like + starting values for the optimization. `start_params` needs to be + given in the original parameter space and are internally + transformed. + **fit_kwds : keyword arguments + fit_kwds are used in the optimization of the transformed model. + + Returns + ------- + params : ndarray ? + estimated parameters (in the original parameterization + cov_params : ndarray + covariance matrix of the parameter estimates. This is a reverse + transformation of the covariance matrix of the transformed model given + by `cov_params()` + Note: `fit_kwds` can affect the choice of covariance, e.g. by + specifying `cov_type`, which will be reflected in the returned + covariance. + res_constr : results instance + This is the results instance for the created transformed model. + + + Notes + ----- + Limitations: + + Models where the number of parameters is different from the number of + columns of exog are not yet supported. + + Requires a model that implement an offset option. + + + """ + self = model # internal alias, used for methods + if fit_kwds is None: + fit_kwds = {} + + R, q = constraint_matrix, constraint_values + endog, exog = self.endog, self.exog + + transf = TransformRestriction(R, q) + + exogp_st = transf.reduce(exog) + + offset = exog.dot(transf.constant.squeeze()) + if hasattr(self, 'offset'): + offset += self.offset + + if start_params is not None: + start_params = transf.reduce(start_params) + + #need copy, because we don't want to change it, we don't need deepcopy + import copy + init_kwds = copy.copy(self._get_init_kwds()) + + # TODO: refactor to combine with above or offset_all + if 'offset' in init_kwds: + del init_kwds['offset'] + + # using offset as keywords is not supported in all modules + mod_constr = self.__class__(endog, exogp_st, offset=offset, **init_kwds) + res_constr = mod_constr.fit(start_params=start_params, **fit_kwds) + params_orig = transf.expand(res_constr.params).squeeze() + cov_params = transf.transf_mat.dot(res_constr.cov_params()).dot(transf.transf_mat.T) + + return params_orig, cov_params, res_constr + + +def fit_constrained_wrap(model, constraints, start_params=None, **fit_kwds): + """fit_constraint that returns a results instance + + This is a development version for fit_constrained methods or + fit_constrained as standalone function. + + It will not work correctly for all models because creating a new + results instance is not standardized for use outside the `fit` methods, + and might need adjustements for this. + + This is the prototype for the fit_constrained method that has been added + to Poisson and GLM. + + """ + + self = model # alias for use as method + + #constraints = (R, q) + # TODO: temporary trailing underscore to not overwrite the monkey + # patched version + # TODO: decide whether to move the imports + from patsy import DesignInfo + # we need this import if we copy it to a different module + #from statsmodels.base._constraints import fit_constrained + + # same pattern as in base.LikelihoodModel.t_test + lc = DesignInfo(self.exog_names).linear_constraint(constraints) + R, q = lc.coefs, lc.constants + + # TODO: add start_params option, need access to tranformation + # fit_constrained needs to do the transformation + params, cov, res_constr = fit_constrained(self, R, q, + start_params=start_params, + fit_kwds=fit_kwds) + #create dummy results Instance, TODO: wire up properly + res = self.fit(start_params=params, maxiter=0, + warn_convergence=False) # we get a wrapper back + res._results.params = params + res._results.normalized_cov_params = cov + k_constr = len(q) + res._results.df_resid += k_constr + res._results.df_model -= k_constr + res._results.constraints = lc + res._results.k_constr = k_constr + res._results.results_constrained = res_constr + return res diff --git a/statsmodels/base/_penalties.py b/statsmodels/base/_penalties.py new file mode 100644 index 0000000..92c15d8 --- /dev/null +++ b/statsmodels/base/_penalties.py @@ -0,0 +1,176 @@ +""" +A collection of smooth penalty functions. + +Penalties on vectors take a vector argument and return a scalar +penalty. The gradient of the penalty is a vector with the same shape +as the input value. + +Penalties on covariance matrices take two arguments: the matrix and +its inverse, both in unpacked (square) form. The returned penalty is +a scalar, and the gradient is returned as a vector that contains the +gradient with respect to the free elements in the lower triangle of +the covariance matrix. + +All penalties are subtracted from the log-likelihood, so greater +penalty values correspond to a greater degree of penalization. + +The penaties should be smooth so that they can be subtracted from log +likelihood functions and optimized using standard methods (i.e. L1 +penalties do not belong here). +""" + +import numpy as np + +class Penalty(object): + """ + A class for representing a scalar-value penalty. + + Parameters + ---------- + wts : array-like + A vector of weights that determines the weight of the penalty + for each parameter. + + + Notes + ----- + The class has a member called `alpha` that scales the weights. + """ + + def __init__(self, wts): + self.wts = wts + self.alpha = 1. + + def func(self, params): + """ + A penalty function on a vector of parameters. + + Parameters + ---------- + params : array-like + A vector of parameters. + + Returns + ------- + A scalar penaty value; greater values imply greater + penalization. + """ + raise NotImplementedError + + def grad(self, params): + """ + The gradient of a penalty function. + + Parameters + ---------- + params : array-like + A vector of parameters + + Returns + ------- + The gradient of the penalty with respect to each element in + `params`. + """ + raise NotImplementedError + + +class L2(Penalty): + """ + The L2 (ridge) penalty. + """ + + def __init__(self, wts=None): + if wts is None: + self.wts = 1. + else: + self.wts = wts + self.alpha = 1. + + def func(self, params): + return np.sum(self.wts * self.alpha * params**2) + + def grad(self, params): + return 2 * self.wts * self.alpha * params + + +class PseudoHuber(Penalty): + """ + The pseudo-Huber penalty. + """ + + def __init__(self, dlt, wts=None): + self.dlt = dlt + if wts is None: + self.wts = 1. + else: + self.wts = wts + self.alpha = 1. + + def func(self, params): + v = np.sqrt(1 + (params / self.dlt)**2) + v -= 1 + v *= self.dlt**2 + return np.sum(self.wts * self.alpha * v) + + def grad(self, params): + v = np.sqrt(1 + (params / self.dlt)**2) + return params * self.wts * self.alpha / v + + +class CovariancePenalty(object): + + def __init__(self, wt): + self.wt = wt + + def func(self, mat, mat_inv): + """ + Parameters + ---------- + mat : square matrix + The matrix to be penalized. + mat_inv : square matrix + The inverse of `mat`. + + Returns + ------- + A scalar penalty value + """ + raise NotImplementedError + + def grad(self, mat, mat_inv): + """ + Parameters + ---------- + mat : square matrix + The matrix to be penalized. + mat_inv : square matrix + The inverse of `mat`. + + Returns + ------- + A vector containing the gradient of the penalty + with respect to each element in the lower triangle + of `mat`. + """ + raise NotImplementedError + + +class PSD(CovariancePenalty): + """ + A penalty that converges to +infinity as the argument matrix + approaches the boundary of the domain of symmetric, positive + definite matrices. + """ + + def func(self, mat, mat_inv): + try: + cy = np.linalg.cholesky(mat) + except np.linalg.LinAlgError: + return np.inf + return -2 * self.wt * np.sum(np.log(np.diag(cy))) + + def grad(self, mat, mat_inv): + cy = mat_inv.copy() + cy = 2*cy - np.diag(np.diag(cy)) + i,j = np.tril_indices(mat.shape[0]) + return -self.wt * cy[i,j] diff --git a/statsmodels/base/covtype.py b/statsmodels/base/covtype.py new file mode 100644 index 0000000..9d3e301 --- /dev/null +++ b/statsmodels/base/covtype.py @@ -0,0 +1,302 @@ +# -*- coding: utf-8 -*- +""" +Created on Mon Aug 04 08:00:16 2014 + +Author: Josef Perktold +License: BSD-3 + +""" + +from statsmodels.compat.python import lrange, lzip, range + +import numpy as np + + +def get_robustcov_results(self, cov_type='HC1', use_t=None, **kwds): + """create new results instance with robust covariance as default + + Parameters + ---------- + cov_type : string + the type of robust sandwich estimator to use. see Notes below + use_t : bool + If true, then the t distribution is used for inference. + If false, then the normal distribution is used. + kwds : depends on cov_type + Required or optional arguments for robust covariance calculation. + see Notes below + + Returns + ------- + results : results instance + This method creates a new results instance with the requested + robust covariance as the default covariance of the parameters. + Inferential statistics like p-values and hypothesis tests will be + based on this covariance matrix. + + Notes + ----- + Warning: Some of the options and defaults in cov_kwds may be changed in a + future version. + + The covariance keywords provide an option 'scaling_factor' to adjust the + scaling of the covariance matrix, that is the covariance is multiplied by + this factor if it is given and is not `None`. This allows the user to + adjust the scaling of the covariance matrix to match other statistical + packages. + For example, `scaling_factor=(nobs - 1.) / (nobs - k_params)` provides a + correction so that the robust covariance matrices match those of Stata in + some models like GLM and discrete Models. + + The following covariance types and required or optional arguments are + currently available: + + - 'HC0', 'HC1', 'HC2', 'HC3' and no keyword arguments: + heteroscedasticity robust covariance + - 'HAC' and keywords + + - `maxlag` integer (required) : number of lags to use + - `kernel` string (optional) : kernel, default is Bartlett + - `use_correction` bool (optional) : If true, use small sample + correction + + - 'cluster' and required keyword `groups`, integer group indicator + + - `groups` array_like, integer (required) : + index of clusters or groups + - `use_correction` bool (optional) : + If True the sandwich covariance is calulated with a small + sample correction. + If False the the sandwich covariance is calulated without + small sample correction. + - `df_correction` bool (optional) + If True (default), then the degrees of freedom for the + inferential statistics and hypothesis tests, such as + pvalues, f_pvalue, conf_int, and t_test and f_test, are + based on the number of groups minus one instead of the + total number of observations minus the number of explanatory + variables. `df_resid` of the results instance is adjusted. + If False, then `df_resid` of the results instance is not + adjusted. + + - 'hac-groupsum' Driscoll and Kraay, heteroscedasticity and + autocorrelation robust standard errors in panel data + keywords + + - `time` array_like (required) : index of time periods + - `maxlag` integer (required) : number of lags to use + - `kernel` string (optional) : kernel, default is Bartlett + - `use_correction` False or string in ['hac', 'cluster'] (optional) : + If False the the sandwich covariance is calulated without + small sample correction. + If `use_correction = 'cluster'` (default), then the same + small sample correction as in the case of 'covtype='cluster'' + is used. + - `df_correction` bool (optional) + adjustment to df_resid, see cov_type 'cluster' above + #TODO: we need more options here + + - 'hac-panel' heteroscedasticity and autocorrelation robust standard + errors in panel data. + The data needs to be sorted in this case, the time series for + each panel unit or cluster need to be stacked. The membership to + a timeseries of an individual or group can be either specified by + group indicators or by increasing time periods. + + keywords + + - either `groups` or `time` : array_like (required) + `groups` : indicator for groups + `time` : index of time periods + - `maxlag` integer (required) : number of lags to use + - `kernel` string (optional) : kernel, default is Bartlett + - `use_correction` False or string in ['hac', 'cluster'] (optional) : + If False the the sandwich covariance is calulated without + small sample correction. + - `df_correction` bool (optional) + adjustment to df_resid, see cov_type 'cluster' above + #TODO: we need more options here + + Reminder: + `use_correction` in "hac-groupsum" and "hac-panel" is not bool, + needs to be in [False, 'hac', 'cluster'] + + TODO: Currently there is no check for extra or misspelled keywords, + except in the case of cov_type `HCx` + + """ + + import statsmodels.stats.sandwich_covariance as sw + + #normalize names + if cov_type == 'nw-panel': + cov_type = 'hac-panel' + if cov_type == 'nw-groupsum': + cov_type = 'hac-groupsum' + if 'kernel' in kwds: + kwds['weights_func'] = kwds.pop('kernel') + + # TODO: make separate function that returns a robust cov plus info + use_self = kwds.pop('use_self', False) + if use_self: + res = self + else: + # this doesn't work for most models, use raw instance instead from fit + res = self.__class__(self.model, self.params, + normalized_cov_params=self.normalized_cov_params, + scale=self.scale) + + res.cov_type = cov_type + # use_t might already be defined by the class, and already set + if use_t is None: + use_t = self.use_t + res.cov_kwds = {'use_t':use_t} # store for information + res.use_t = use_t + + adjust_df = False + if cov_type in ['cluster', 'hac-panel', 'hac-groupsum']: + df_correction = kwds.get('df_correction', None) + # TODO: check also use_correction, do I need all combinations? + if df_correction is not False: # i.e. in [None, True]: + # user didn't explicitely set it to False + adjust_df = True + + res.cov_kwds['adjust_df'] = adjust_df + + # verify and set kwds, and calculate cov + # TODO: this should be outsourced in a function so we can reuse it in + # other models + # TODO: make it DRYer repeated code for checking kwds + if cov_type.upper() in ('HC0', 'HC1', 'HC2', 'HC3'): + if kwds: + raise ValueError('heteroscedasticity robust covarians ' + + 'does not use keywords') + res.cov_kwds['description'] = ('Standard Errors are heteroscedasticity ' + + 'robust ' + '(' + cov_type + ')') + + res.cov_params_default = getattr(self, 'cov_' + cov_type.upper(), None) + if res.cov_params_default is None: + # results classes that don't have cov_HCx attribute + res.cov_params_default = sw.cov_white_simple(self, + use_correction=False) + elif cov_type.lower() == 'hac': + maxlags = kwds['maxlags'] # required?, default in cov_hac_simple + res.cov_kwds['maxlags'] = maxlags + weights_func = kwds.get('weights_func', sw.weights_bartlett) + res.cov_kwds['weights_func'] = weights_func + use_correction = kwds.get('use_correction', False) + res.cov_kwds['use_correction'] = use_correction + res.cov_kwds['description'] = ('Standard Errors are heteroscedasticity ' + + 'and autocorrelation robust (HAC) using %d lags and %s small ' + + 'sample correction') % (maxlags, ['without', 'with'][use_correction]) + + res.cov_params_default = sw.cov_hac_simple(self, nlags=maxlags, + weights_func=weights_func, + use_correction=use_correction) + elif cov_type.lower() == 'cluster': + #cluster robust standard errors, one- or two-way + groups = kwds['groups'] + if not hasattr(groups, 'shape'): + groups = np.asarray(groups).T + + if groups.ndim >= 2: + groups = groups.squeeze() + + res.cov_kwds['groups'] = groups + use_correction = kwds.get('use_correction', True) + res.cov_kwds['use_correction'] = use_correction + if groups.ndim == 1: + if adjust_df: + # need to find number of groups + # duplicate work + self.n_groups = n_groups = len(np.unique(groups)) + res.cov_params_default = sw.cov_cluster(self, groups, + use_correction=use_correction) + + elif groups.ndim == 2: + if hasattr(groups, 'values'): + groups = groups.values + + if adjust_df: + # need to find number of groups + # duplicate work + n_groups0 = len(np.unique(groups[:,0])) + n_groups1 = len(np.unique(groups[:, 1])) + self.n_groups = (n_groups0, n_groups1) + n_groups = min(n_groups0, n_groups1) # use for adjust_df + + # Note: sw.cov_cluster_2groups has 3 returns + res.cov_params_default = sw.cov_cluster_2groups(self, groups, + use_correction=use_correction)[0] + else: + raise ValueError('only two groups are supported') + res.cov_kwds['description'] = ('Standard Errors are robust to' + + 'cluster correlation ' + '(' + cov_type + ')') + + elif cov_type.lower() == 'hac-panel': + #cluster robust standard errors + res.cov_kwds['time'] = time = kwds.get('time', None) + res.cov_kwds['groups'] = groups = kwds.get('groups', None) + #TODO: nlags is currently required + #nlags = kwds.get('nlags', True) + #res.cov_kwds['nlags'] = nlags + #TODO: `nlags` or `maxlags` + res.cov_kwds['maxlags'] = maxlags = kwds['maxlags'] + use_correction = kwds.get('use_correction', 'hac') + res.cov_kwds['use_correction'] = use_correction + weights_func = kwds.get('weights_func', sw.weights_bartlett) + res.cov_kwds['weights_func'] = weights_func + # TODO: clumsy time index in cov_nw_panel + if groups is not None: + tt = (np.nonzero(groups[:-1] != groups[1:])[0] + 1).tolist() + nobs_ = len(groups) + elif time is not None: + # TODO: clumsy time index in cov_nw_panel + tt = (np.nonzero(time[1:] < time[:-1])[0] + 1).tolist() + nobs_ = len(time) + else: + raise ValueError('either time or groups needs to be given') + groupidx = lzip([0] + tt, tt + [nobs_]) + self.n_groups = n_groups = len(groupidx) + res.cov_params_default = sw.cov_nw_panel(self, maxlags, groupidx, + weights_func=weights_func, + use_correction=use_correction) + res.cov_kwds['description'] = ('Standard Errors are robust to' + + 'cluster correlation ' + '(' + cov_type + ')') + elif cov_type.lower() == 'hac-groupsum': + # Driscoll-Kraay standard errors + res.cov_kwds['time'] = time = kwds['time'] + #TODO: nlags is currently required + #nlags = kwds.get('nlags', True) + #res.cov_kwds['nlags'] = nlags + #TODO: `nlags` or `maxlags` + res.cov_kwds['maxlags'] = maxlags = kwds['maxlags'] + use_correction = kwds.get('use_correction', 'cluster') + res.cov_kwds['use_correction'] = use_correction + weights_func = kwds.get('weights_func', sw.weights_bartlett) + res.cov_kwds['weights_func'] = weights_func + if adjust_df: + # need to find number of groups + tt = (np.nonzero(time[1:] < time[:-1])[0] + 1) + self.n_groups = n_groups = len(tt) + 1 + res.cov_params_default = sw.cov_nw_groupsum(self, maxlags, time, + weights_func=weights_func, + use_correction=use_correction) + res.cov_kwds['description'] = ( + 'Driscoll and Kraay Standard Errors are robust to ' + + 'cluster correlation ' + '(' + cov_type + ')') + else: + raise ValueError('cov_type not recognized. See docstring for ' + + 'available options and spelling') + + # generic optional factor to scale covariance + sc_factor = kwds.get('scaling_factor', None) + res.cov_kwds['scaling_factor'] = sc_factor + if sc_factor is not None: + res.cov_params_default *= sc_factor + + if adjust_df: + # Note: df_resid is used for scale and others, add new attribute + res.df_resid_inference = n_groups - 1 + + return res diff --git a/statsmodels/base/data.py b/statsmodels/base/data.py new file mode 100644 index 0000000..74828b4 --- /dev/null +++ b/statsmodels/base/data.py @@ -0,0 +1,630 @@ +""" +Base tools for handling various kinds of data structures, attaching metadata to +results, and doing data cleaning +""" +from statsmodels.compat.python import reduce, iteritems, lmap, zip, range +from statsmodels.compat.numpy import np_matrix_rank +import numpy as np +from pandas import DataFrame, Series, isnull +from statsmodels.tools.decorators import (resettable_cache, cache_readonly, + cache_writable) +import statsmodels.tools.data as data_util +from statsmodels.tools.sm_exceptions import MissingDataError + + +def _asarray_2dcolumns(x): + if np.asarray(x).ndim > 1 and np.asarray(x).squeeze().ndim == 1: + return + + +def _asarray_2d_null_rows(x): + """ + Makes sure input is an array and is 2d. Makes sure output is 2d. True + indicates a null in the rows of 2d x. + """ + #Have to have the asarrays because isnull doesn't account for array-like + #input + x = np.asarray(x) + if x.ndim == 1: + x = x[:, None] + return np.any(isnull(x), axis=1)[:, None] + + +def _nan_rows(*arrs): + """ + Returns a boolean array which is True where any of the rows in any + of the _2d_ arrays in arrs are NaNs. Inputs can be any mixture of Series, + DataFrames or array-like. + """ + if len(arrs) == 1: + arrs += ([[False]],) + + def _nan_row_maybe_two_inputs(x, y): + # check for dtype bc dataframe has dtypes + x_is_boolean_array = hasattr(x, 'dtype') and x.dtype == bool and x + return np.logical_or(_asarray_2d_null_rows(x), + (x_is_boolean_array | _asarray_2d_null_rows(y))) + return reduce(_nan_row_maybe_two_inputs, arrs).squeeze() + + +class ModelData(object): + """ + Class responsible for handling input data and extracting metadata into the + appropriate form + """ + _param_names = None + + def __init__(self, endog, exog=None, missing='none', hasconst=None, + **kwargs): + if 'design_info' in kwargs: + self.design_info = kwargs.pop('design_info') + if 'formula' in kwargs: + self.formula = kwargs.pop('formula') + if missing != 'none': + arrays, nan_idx = self.handle_missing(endog, exog, missing, + **kwargs) + self.missing_row_idx = nan_idx + self.__dict__.update(arrays) # attach all the data arrays + self.orig_endog = self.endog + self.orig_exog = self.exog + self.endog, self.exog = self._convert_endog_exog(self.endog, + self.exog) + else: + self.__dict__.update(kwargs) # attach the extra arrays anyway + self.orig_endog = endog + self.orig_exog = exog + self.endog, self.exog = self._convert_endog_exog(endog, exog) + + # this has side-effects, attaches k_constant and const_idx + self._handle_constant(hasconst) + self._check_integrity() + self._cache = resettable_cache() + + def __getstate__(self): + from copy import copy + d = copy(self.__dict__) + if "design_info" in d: + del d["design_info"] + d["restore_design_info"] = True + return d + + def __setstate__(self, d): + if "restore_design_info" in d: + # NOTE: there may be a more performant way to do this + from patsy import dmatrices, PatsyError + exc = [] + try: + data = d['frame'] + except KeyError: + data = d['orig_endog'].join(d['orig_exog']) + + for depth in [2, 3, 1, 0, 4]: # sequence is a guess where to likely find it + try: + _, design = dmatrices(d['formula'], data, eval_env=depth, + return_type='dataframe') + break + except (NameError, PatsyError) as e: + print('not in depth %d' % depth) + exc.append(e) # why do I need a reference from outside except block + pass + else: + raise exc[-1] + + self.design_info = design.design_info + del d["restore_design_info"] + self.__dict__.update(d) + + def _handle_constant(self, hasconst): + if hasconst is not None: + if hasconst: + self.k_constant = 1 + self.const_idx = None + else: + self.k_constant = 0 + self.const_idx = None + elif self.exog is None: + self.const_idx = None + self.k_constant = 0 + else: + # detect where the constant is + check_implicit = False + const_idx = np.where(self.exog.ptp(axis=0) == 0)[0].squeeze() + self.k_constant = const_idx.size + + if self.k_constant == 1: + if self.exog[:, const_idx].mean() != 0: + self.const_idx = const_idx + else: + # we only have a zero column and no other constant + check_implicit = True + elif self.k_constant > 1: + # we have more than one constant column + # look for ones + values = [] # keep values if we need != 0 + for idx in const_idx: + value = self.exog[:, idx].mean() + if value == 1: + self.k_constant = 1 + self.const_idx = idx + break + values.append(value) + else: + # we didn't break, no column of ones + pos = (np.array(values) != 0) + if pos.any(): + # take the first nonzero column + self.k_constant = 1 + self.const_idx = const_idx[pos.argmax()] + else: + # only zero columns + check_implicit = True + elif self.k_constant == 0: + check_implicit = True + else: + # shouldn't be here + pass + + if check_implicit: + # look for implicit constant + # Compute rank of augmented matrix + augmented_exog = np.column_stack( + (np.ones(self.exog.shape[0]), self.exog)) + rank_augm = np_matrix_rank(augmented_exog) + rank_orig = np_matrix_rank(self.exog) + self.k_constant = int(rank_orig == rank_augm) + self.const_idx = None + + + @classmethod + def _drop_nans(cls, x, nan_mask): + return x[nan_mask] + + @classmethod + def _drop_nans_2d(cls, x, nan_mask): + return x[nan_mask][:, nan_mask] + + @classmethod + def handle_missing(cls, endog, exog, missing, **kwargs): + """ + This returns a dictionary with keys endog, exog and the keys of + kwargs. It preserves Nones. + """ + none_array_names = [] + + # patsy's already dropped NaNs in y/X + missing_idx = kwargs.pop('missing_idx', None) + + if missing_idx is not None: + # y, X already handled by patsy. add back in later. + combined = () + combined_names = [] + if exog is None: + none_array_names += ['exog'] + elif exog is not None: + combined = (endog, exog) + combined_names = ['endog', 'exog'] + else: + combined = (endog,) + combined_names = ['endog'] + none_array_names += ['exog'] + + # deal with other arrays + combined_2d = () + combined_2d_names = [] + if len(kwargs): + for key, value_array in iteritems(kwargs): + if value_array is None or value_array.ndim == 0: + none_array_names += [key] + continue + # grab 1d arrays + if value_array.ndim == 1: + combined += (np.asarray(value_array),) + combined_names += [key] + elif value_array.squeeze().ndim == 1: + combined += (np.asarray(value_array),) + combined_names += [key] + + # grab 2d arrays that are _assumed_ to be symmetric + elif value_array.ndim == 2: + combined_2d += (np.asarray(value_array),) + combined_2d_names += [key] + else: + raise ValueError("Arrays with more than 2 dimensions " + "aren't yet handled") + + if missing_idx is not None: + nan_mask = missing_idx + updated_row_mask = None + if combined: # there were extra arrays not handled by patsy + combined_nans = _nan_rows(*combined) + if combined_nans.shape[0] != nan_mask.shape[0]: + raise ValueError("Shape mismatch between endog/exog " + "and extra arrays given to model.") + # for going back and updated endog/exog + updated_row_mask = combined_nans[~nan_mask] + nan_mask |= combined_nans # for updating extra arrays only + if combined_2d: + combined_2d_nans = _nan_rows(combined_2d) + if combined_2d_nans.shape[0] != nan_mask.shape[0]: + raise ValueError("Shape mismatch between endog/exog " + "and extra 2d arrays given to model.") + if updated_row_mask is not None: + updated_row_mask |= combined_2d_nans[~nan_mask] + else: + updated_row_mask = combined_2d_nans[~nan_mask] + nan_mask |= combined_2d_nans + + else: + nan_mask = _nan_rows(*combined) + if combined_2d: + nan_mask = _nan_rows(*(nan_mask[:, None],) + combined_2d) + + if not np.any(nan_mask): # no missing don't do anything + combined = dict(zip(combined_names, combined)) + if combined_2d: + combined.update(dict(zip(combined_2d_names, combined_2d))) + if none_array_names: + combined.update(dict(zip(none_array_names, + [None] * len(none_array_names)))) + + if missing_idx is not None: + combined.update({'endog': endog}) + if exog is not None: + combined.update({'exog': exog}) + + return combined, [] + + elif missing == 'raise': + raise MissingDataError("NaNs were encountered in the data") + + elif missing == 'drop': + nan_mask = ~nan_mask + drop_nans = lambda x: cls._drop_nans(x, nan_mask) + drop_nans_2d = lambda x: cls._drop_nans_2d(x, nan_mask) + combined = dict(zip(combined_names, lmap(drop_nans, combined))) + + if missing_idx is not None: + if updated_row_mask is not None: + updated_row_mask = ~updated_row_mask + # update endog/exog with this new information + endog = cls._drop_nans(endog, updated_row_mask) + if exog is not None: + exog = cls._drop_nans(exog, updated_row_mask) + + combined.update({'endog': endog}) + if exog is not None: + combined.update({'exog': exog}) + + if combined_2d: + combined.update(dict(zip(combined_2d_names, + lmap(drop_nans_2d, combined_2d)))) + if none_array_names: + combined.update(dict(zip(none_array_names, + [None] * len(none_array_names)))) + + return combined, np.where(~nan_mask)[0].tolist() + else: + raise ValueError("missing option %s not understood" % missing) + + def _convert_endog_exog(self, endog, exog): + + # for consistent outputs if endog is (n,1) + yarr = self._get_yarr(endog) + xarr = None + if exog is not None: + xarr = self._get_xarr(exog) + if xarr.ndim == 1: + xarr = xarr[:, None] + if xarr.ndim != 2: + raise ValueError("exog is not 1d or 2d") + + return yarr, xarr + + @cache_writable() + def ynames(self): + endog = self.orig_endog + ynames = self._get_names(endog) + if not ynames: + ynames = _make_endog_names(self.endog) + + if len(ynames) == 1: + return ynames[0] + else: + return list(ynames) + + @cache_writable() + def xnames(self): + exog = self.orig_exog + if exog is not None: + xnames = self._get_names(exog) + if not xnames: + xnames = _make_exog_names(self.exog) + return list(xnames) + return None + + @property + def param_names(self): + # for handling names of 'extra' parameters in summary, etc. + return self._param_names or self.xnames + + @param_names.setter + def param_names(self, values): + self._param_names = values + + @cache_readonly + def row_labels(self): + exog = self.orig_exog + if exog is not None: + row_labels = self._get_row_labels(exog) + else: + endog = self.orig_endog + row_labels = self._get_row_labels(endog) + return row_labels + + def _get_row_labels(self, arr): + return None + + def _get_names(self, arr): + if isinstance(arr, DataFrame): + return list(arr.columns) + elif isinstance(arr, Series): + if arr.name: + return [arr.name] + else: + return + else: + try: + return arr.dtype.names + except AttributeError: + pass + + return None + + def _get_yarr(self, endog): + if data_util._is_structured_ndarray(endog): + endog = data_util.struct_to_ndarray(endog) + endog = np.asarray(endog) + if len(endog) == 1: # never squeeze to a scalar + if endog.ndim == 1: + return endog + elif endog.ndim > 1: + return np.asarray([endog.squeeze()]) + + return endog.squeeze() + + def _get_xarr(self, exog): + if data_util._is_structured_ndarray(exog): + exog = data_util.struct_to_ndarray(exog) + return np.asarray(exog) + + def _check_integrity(self): + if self.exog is not None: + if len(self.exog) != len(self.endog): + raise ValueError("endog and exog matrices are different sizes") + + def wrap_output(self, obj, how='columns', names=None): + if how == 'columns': + return self.attach_columns(obj) + elif how == 'rows': + return self.attach_rows(obj) + elif how == 'cov': + return self.attach_cov(obj) + elif how == 'dates': + return self.attach_dates(obj) + elif how == 'columns_eq': + return self.attach_columns_eq(obj) + elif how == 'cov_eq': + return self.attach_cov_eq(obj) + elif how == 'generic_columns': + return self.attach_generic_columns(obj, names) + elif how == 'generic_columns_2d': + return self.attach_generic_columns_2d(obj, names) + elif how == 'ynames': + return self.attach_ynames(obj) + else: + return obj + + def attach_columns(self, result): + return result + + def attach_columns_eq(self, result): + return result + + def attach_cov(self, result): + return result + + def attach_cov_eq(self, result): + return result + + def attach_rows(self, result): + return result + + def attach_dates(self, result): + return result + + def attach_generic_columns(self, result, *args, **kwargs): + return result + + def attach_generic_columns_2d(self, result, *args, **kwargs): + return result + + def attach_ynames(self, result): + return result + + +class PatsyData(ModelData): + def _get_names(self, arr): + return arr.design_info.column_names + + +class PandasData(ModelData): + """ + Data handling class which knows how to reattach pandas metadata to model + results + """ + + def _convert_endog_exog(self, endog, exog=None): + #TODO: remove this when we handle dtype systematically + endog = np.asarray(endog) + exog = exog if exog is None else np.asarray(exog) + if endog.dtype == object or exog is not None and exog.dtype == object: + raise ValueError("Pandas data cast to numpy dtype of object. " + "Check input data with np.asarray(data).") + return super(PandasData, self)._convert_endog_exog(endog, exog) + + @classmethod + def _drop_nans(cls, x, nan_mask): + if hasattr(x, 'ix'): + return x.ix[nan_mask] + else: # extra arguments could be plain ndarrays + return super(PandasData, cls)._drop_nans(x, nan_mask) + + @classmethod + def _drop_nans_2d(cls, x, nan_mask): + if hasattr(x, 'ix'): + return x.ix[nan_mask].ix[:, nan_mask] + else: # extra arguments could be plain ndarrays + return super(PandasData, cls)._drop_nans_2d(x, nan_mask) + + def _check_integrity(self): + endog, exog = self.orig_endog, self.orig_exog + # exog can be None and we could be upcasting one or the other + if (exog is not None and + (hasattr(endog, 'index') and hasattr(exog, 'index')) and + not self.orig_endog.index.equals(self.orig_exog.index)): + raise ValueError("The indices for endog and exog are not aligned") + super(PandasData, self)._check_integrity() + + def _get_row_labels(self, arr): + try: + return arr.index + except AttributeError: + # if we've gotten here it's because endog is pandas and + # exog is not, so just return the row labels from endog + return self.orig_endog.index + + def attach_generic_columns(self, result, names): + # get the attribute to use + column_names = getattr(self, names, None) + return Series(result, index=column_names) + + def attach_generic_columns_2d(self, result, rownames, colnames=None): + colnames = colnames or rownames + rownames = getattr(self, rownames, None) + colnames = getattr(self, colnames, None) + return DataFrame(result, index=rownames, columns=colnames) + + def attach_columns(self, result): + # this can either be a 1d array or a scalar + # don't squeeze because it might be a 2d row array + # if it needs a squeeze, the bug is elsewhere + if result.ndim <= 1: + return Series(result, index=self.param_names) + else: # for e.g., confidence intervals + return DataFrame(result, index=self.param_names) + + def attach_columns_eq(self, result): + return DataFrame(result, index=self.xnames, columns=self.ynames) + + def attach_cov(self, result): + return DataFrame(result, index=self.param_names, + columns=self.param_names) + + def attach_cov_eq(self, result): + return DataFrame(result, index=self.ynames, columns=self.ynames) + + def attach_rows(self, result): + # assumes if len(row_labels) > len(result) it's bc it was truncated + # at the front, for AR lags, for example + squeezed = result.squeeze() + k_endog = np.array(self.ynames, ndmin=1).shape[0] + if k_endog > 1 and squeezed.shape == (k_endog,): + squeezed = squeezed[None, :] + # May be zero-dim, for example in the case of forecast one step in tsa + if squeezed.ndim < 2: + return Series(squeezed, index=self.row_labels[-len(result):]) + else: + return DataFrame(result, index=self.row_labels[-len(result):], + columns=self.ynames) + + def attach_dates(self, result): + squeezed = result.squeeze() + k_endog = np.array(self.ynames, ndmin=1).shape[0] + if k_endog > 1 and squeezed.shape == (k_endog,): + squeezed = squeezed[None, :] + # May be zero-dim, for example in the case of forecast one step in tsa + if squeezed.ndim < 2: + return Series(squeezed, index=self.predict_dates) + else: + return DataFrame(result, index=self.predict_dates, + columns=self.ynames) + + def attach_ynames(self, result): + squeezed = result.squeeze() + # May be zero-dim, for example in the case of forecast one step in tsa + if squeezed.ndim < 2: + return Series(squeezed, name=self.ynames) + else: + return DataFrame(result, columns=self.ynames) + +def _make_endog_names(endog): + if endog.ndim == 1 or endog.shape[1] == 1: + ynames = ['y'] + else: # for VAR + ynames = ['y%d' % (i+1) for i in range(endog.shape[1])] + + return ynames + + +def _make_exog_names(exog): + exog_var = exog.var(0) + if (exog_var == 0).any(): + # assumes one constant in first or last position + # avoid exception if more than one constant + const_idx = exog_var.argmin() + exog_names = ['x%d' % i for i in range(1, exog.shape[1])] + exog_names.insert(const_idx, 'const') + else: + exog_names = ['x%d' % i for i in range(1, exog.shape[1]+1)] + + return exog_names + + +def handle_missing(endog, exog=None, missing='none', **kwargs): + klass = handle_data_class_factory(endog, exog) + if missing == 'none': + ret_dict = dict(endog=endog, exog=exog) + ret_dict.update(kwargs) + return ret_dict, None + return klass.handle_missing(endog, exog, missing=missing, **kwargs) + + +def handle_data_class_factory(endog, exog): + """ + Given inputs + """ + if data_util._is_using_ndarray_type(endog, exog): + klass = ModelData + elif data_util._is_using_pandas(endog, exog): + klass = PandasData + elif data_util._is_using_patsy(endog, exog): + klass = PatsyData + # keep this check last + elif data_util._is_using_ndarray(endog, exog): + klass = ModelData + else: + raise ValueError('unrecognized data structures: %s / %s' % + (type(endog), type(exog))) + return klass + + +def handle_data(endog, exog, missing='none', hasconst=None, **kwargs): + # deal with lists and tuples up-front + if isinstance(endog, (list, tuple)): + endog = np.asarray(endog) + if isinstance(exog, (list, tuple)): + exog = np.asarray(exog) + + klass = handle_data_class_factory(endog, exog) + return klass(endog, exog=exog, missing=missing, hasconst=hasconst, + **kwargs) diff --git a/statsmodels/base/elastic_net.py b/statsmodels/base/elastic_net.py new file mode 100644 index 0000000..ce659dd --- /dev/null +++ b/statsmodels/base/elastic_net.py @@ -0,0 +1,344 @@ +import numpy as np +import statsmodels.base.wrapper as wrap +from statsmodels.base.model import Results +import statsmodels.base.wrapper as wrap +from statsmodels.tools.decorators import cache_readonly + +""" +Elastic net regularization. + +Routines for fitting regression models using elastic net +regularization. The elastic net minimizes the objective function + +-llf / nobs + alpha((1 - L1_wt) * sum(params**2) / 2 + L1_wt * sum(abs(params))) + +The algorithm implemented here closely follows the implementation in +the R glmnet package, documented here: + +http://cran.r-project.org/web/packages/glmnet/index.html + +and here: + +http://www.jstatsoft.org/v33/i01/paper + +This routine should work for any regression model that implements +loglike, score, and hess. +""" + + +def _gen_npfuncs(k, L1_wt, alpha, loglike_kwds, score_kwds, hess_kwds): + """ + Negative penalized log-likelihood functions. + + Returns the negative penalized log-likelihood, its derivative, and + its Hessian. The penalty only includes the smooth (L2) term. + + All three functions have argument signature (x, model), where + ``x`` is a point in the parameter space and ``model`` is an + arbitrary statsmodels regression model. + """ + + def nploglike(params, model): + nobs = model.nobs + pen_llf = alpha[k] * (1 - L1_wt) * np.sum(params**2) / 2 + llf = model.loglike(np.r_[params], **loglike_kwds) + return - llf / nobs + pen_llf + + def npscore(params, model): + nobs = model.nobs + pen_grad = alpha[k] * (1 - L1_wt) * params + gr = -model.score(np.r_[params], **score_kwds)[0] / nobs + return gr + pen_grad + + def nphess(params, model): + nobs = model.nobs + pen_hess = alpha[k] * (1 - L1_wt) + h = -model.hessian(np.r_[params], **hess_kwds)[0,0] / nobs + pen_hess + return h + + return nploglike, npscore, nphess + + + +def fit_elasticnet(model, method="coord_descent", maxiter=100, alpha=0., + L1_wt=1., start_params=None, cnvrg_tol=1e-7, zero_tol=1e-8, + refit=False, loglike_kwds=None, score_kwds=None, + hess_kwds=None): + """ + Return an elastic net regularized fit to a regression model. + + Parameters + ---------- + model : model object + A statsmodels object implementing ``loglike``, ``score``, and + ``hessian``. + method : + Only the coordinate descent algorithm is implemented. + maxiter : integer + The maximum number of iteration cycles (an iteration cycle + involves running coordinate descent on all variables). + alpha : scalar or array-like + The penalty weight. If a scalar, the same penalty weight + applies to all variables in the model. If a vector, it + must have the same length as `params`, and contains a + penalty weight for each coefficient. + L1_wt : scalar + The fraction of the penalty given to the L1 penalty term. + Must be between 0 and 1 (inclusive). If 0, the fit is + a ridge fit, if 1 it is a lasso fit. + start_params : array-like + Starting values for `params`. + cnvrg_tol : scalar + If `params` changes by less than this amount (in sup-norm) + in one iteration cycle, the algorithm terminates with + convergence. + zero_tol : scalar + Any estimated coefficient smaller than this value is + replaced with zero. + refit : bool + If True, the model is refit using only the variables that have + non-zero coefficients in the regularized fit. The refitted + model is not regularized. + loglike_kwds : dict-like or None + Keyword arguments for the log-likelihood function. + score_kwds : dict-like or None + Keyword arguments for the score function. + hess_kwds : dict-like or None + Keyword arguments for the Hessian function. + + Returns + ------- + A results object. + + Notes + ----- + The ``elastic net`` penalty is a combination of L1 and L2 + penalties. + + The function that is minimized is: + + -loglike/n + alpha*((1-L1_wt)*|params|_2^2/2 + L1_wt*|params|_1) + + where |*|_1 and |*|_2 are the L1 and L2 norms. + + The computational approach used here is to obtain a quadratic + approximation to the smooth part of the target function: + + -loglike/n + alpha*(1-L1_wt)*|params|_2^2/2 + + then repeatedly optimize the L1 penalized version of this function + along coordinate axes. + """ + + k_exog = model.exog.shape[1] + n_exog = model.exog.shape[0] + + loglike_kwds = {} if loglike_kwds is None else loglike_kwds + score_kwds = {} if score_kwds is None else score_kwds + hess_kwds = {} if hess_kwds is None else hess_kwds + + if np.isscalar(alpha): + alpha = alpha * np.ones(k_exog) + + # Define starting params + if start_params is None: + params = np.zeros(k_exog) + else: + params = start_params.copy() + + converged = False + btol = 1e-4 + params_zero = np.zeros(len(params), dtype=bool) + + init_args = dict([(k, getattr(model, k)) for k in model._init_keys + if k != "offset" and hasattr(model, k)]) + init_args['hasconst'] = False + + fgh_list = [_gen_npfuncs(k, L1_wt, alpha, loglike_kwds, score_kwds, hess_kwds) + for k in range(k_exog)] + + for itr in range(maxiter): + + # Sweep through the parameters + params_save = params.copy() + for k in range(k_exog): + + # Under the active set method, if a parameter becomes + # zero we don't try to change it again. + # TODO : give the user the option to switch this off + if params_zero[k]: + continue + + # Set the offset to account for the variables that are + # being held fixed in the current coordinate + # optimization. + params0 = params.copy() + params0[k] = 0 + offset = np.dot(model.exog, params0) + if hasattr(model, "offset") and model.offset is not None: + offset += model.offset + + # Create a one-variable model for optimization. + model_1var = model.__class__(model.endog, model.exog[:, k], offset=offset, + **init_args) + + # Do the one-dimensional optimization. + func, grad, hess = fgh_list[k] + params[k] = _opt_1d(func, grad, hess, model_1var, params[k], alpha[k]*L1_wt, tol=btol) + + # Update the active set + if itr > 0 and np.abs(params[k]) < zero_tol: + params_zero[k] = True + params[k] = 0. + + # Check for convergence + pchange = np.max(np.abs(params - params_save)) + if pchange < cnvrg_tol: + converged = True + break + + # Set approximate zero coefficients to be exactly zero + params[np.abs(params) < zero_tol] = 0 + + if not refit: + results = RegularizedResults(model, params) + return RegularizedResultsWrapper(results) + + # Fit the reduced model to get standard errors and other + # post-estimation results. + ii = np.flatnonzero(params) + cov = np.zeros((k_exog, k_exog)) + init_args = dict([(k, getattr(model, k, None)) for k in model._init_keys]) + if len(ii) > 0: + model1 = model.__class__(model.endog, model.exog[:, ii], + **init_args) + rslt = model1.fit() + cov[np.ix_(ii, ii)] = rslt.normalized_cov_params + else: + # Hack: no variables were selected but we need to run fit in + # order to get the correct results class. So just fit a model + # with one variable. + model1 = model.__class__(model.endog, model.exog[:, 0], **init_args) + rslt = model1.fit(maxiter=0) + + # fit may return a results or a results wrapper + if issubclass(rslt.__class__, wrap.ResultsWrapper): + klass = rslt._results.__class__ + else: + klass = rslt.__class__ + + # Not all models have a scale + if hasattr(rslt, 'scale'): + scale = rslt.scale + else: + scale = 1. + + # Assuming a standard signature for creating results classes. + refit = klass(model, params, cov, scale=scale) + refit.regularized = True + refit.method = method + refit.fit_history = {'iteration' : itr + 1} + + return refit + + +def _opt_1d(func, grad, hess, model, start, L1_wt, tol): + """ + One-dimensional helper for elastic net. + + Parameters: + ----------- + func : function + A smooth function of a single variable to be optimized + with L1 penaty. + grad : function + The gradient of `func`. + hess : function + The Hessian of `func`. + model : statsmodels model + The model being fit. + start : real + A starting value for the function argument + L1_wt : non-negative real + The weight for the L1 penalty function. + tol : non-negative real + A convergence threshold. + + Notes + ----- + ``func``, ``grad``, and ``hess`` have argument signature (x, + model), where ``x`` is a point in the parameter space and + ``model`` is the model being fit. + + If the log-likelihood for the model is exactly quadratic, the + global minimum is returned in one step. Otherwise numerical + bisection is used. + + Returns + ------- + The argmin of the objective function. + """ + + # Overview: + # We want to minimize L(x) + L1_wt*abs(x), where L() is a smooth + # loss function that includes the log-likelihood and L2 penalty. + # This is a 1-dimensional optimization. If L(x) is exactly + # quadratic we can solve for the argmin exactly. Otherwise we + # approximate L(x) with a quadratic function Q(x) and try to use + # the minimizer of Q(x) + L1_wt*abs(x). But if this yields an + # uphill step for the actual target function L(x) + L1_wt*abs(x), + # then we fall back to a expensive line search. The line search + # is never needed for OLS. + + x = start + f = func(x, model) + b = grad(x, model) + c = hess(x, model) + d = b - c*x + + # The optimum is achieved by hard thresholding to zero + if L1_wt > np.abs(d): + return 0. + + # x + h is the minimizer of the Q(x) + L1_wt*abs(x) + if d >= 0: + h = (L1_wt - b) / c + elif d < 0: + h = -(L1_wt + b) / c + else: + return np.nan + + # If the new point is not uphill for the target function, take it + # and return. This check is a bit expensive and un-necessary for + # OLS + f1 = func(x + h, model) + L1_wt*np.abs(x + h) + if f1 <= f + L1_wt*np.abs(x) + 1e-10: + return x + h + + # Fallback for models where the loss is not quadratic + from scipy.optimize import brent + x_opt = brent(func, args=(model,), brack=(x-1, x+1), tol=tol) + return x_opt + + +class RegularizedResults(Results): + + def __init__(self, model, params): + super(RegularizedResults, self).__init__(model, params) + + @cache_readonly + def fittedvalues(self): + return self.model.predict(self.params) + + +class RegularizedResultsWrapper(wrap.ResultsWrapper): + _attrs = { + 'params': 'columns', + 'resid': 'rows', + 'fittedvalues': 'rows', + } + + _wrap_attrs = _attrs + +wrap.populate_wrapper(RegularizedResultsWrapper, + RegularizedResults) diff --git a/statsmodels/base/l1_cvxopt.py b/statsmodels/base/l1_cvxopt.py new file mode 100644 index 0000000..b8797b0 --- /dev/null +++ b/statsmodels/base/l1_cvxopt.py @@ -0,0 +1,193 @@ +""" +Holds files for l1 regularization of LikelihoodModel, using cvxopt. +""" +import numpy as np +import statsmodels.base.l1_solvers_common as l1_solvers_common +from cvxopt import solvers, matrix + + +def fit_l1_cvxopt_cp( + f, score, start_params, args, kwargs, disp=False, maxiter=100, + callback=None, retall=False, full_output=False, hess=None): + """ + Solve the l1 regularized problem using cvxopt.solvers.cp + + Specifically: We convert the convex but non-smooth problem + + .. math:: \\min_\\beta f(\\beta) + \\sum_k\\alpha_k |\\beta_k| + + via the transformation to the smooth, convex, constrained problem in twice + as many variables (adding the "added variables" :math:`u_k`) + + .. math:: \\min_{\\beta,u} f(\\beta) + \\sum_k\\alpha_k u_k, + + subject to + + .. math:: -u_k \\leq \\beta_k \\leq u_k. + + Parameters + ---------- + All the usual parameters from LikelhoodModel.fit + alpha : non-negative scalar or numpy array (same size as parameters) + The weight multiplying the l1 penalty term + trim_mode : 'auto, 'size', or 'off' + If not 'off', trim (set to zero) parameters that would have been zero + if the solver reached the theoretical minimum. + If 'auto', trim params using the Theory above. + If 'size', trim params if they have very small absolute value + size_trim_tol : float or 'auto' (default = 'auto') + For use when trim_mode === 'size' + auto_trim_tol : float + For sue when trim_mode == 'auto'. Use + qc_tol : float + Print warning and don't allow auto trim when (ii) in "Theory" (above) + is violated by this much. + qc_verbose : Boolean + If true, print out a full QC report upon failure + abstol : float + absolute accuracy (default: 1e-7). + reltol : float + relative accuracy (default: 1e-6). + feastol : float + tolerance for feasibility conditions (default: 1e-7). + refinement : int + number of iterative refinement steps when solving KKT equations + (default: 1). + """ + start_params = np.array(start_params).ravel('F') + + ## Extract arguments + # k_params is total number of covariates, possibly including a leading constant. + k_params = len(start_params) + # The start point + x0 = np.append(start_params, np.fabs(start_params)) + x0 = matrix(x0, (2 * k_params, 1)) + # The regularization parameter + alpha = np.array(kwargs['alpha_rescaled']).ravel('F') + # Make sure it's a vector + alpha = alpha * np.ones(k_params) + assert alpha.min() >= 0 + + ## Wrap up functions for cvxopt + f_0 = lambda x: _objective_func(f, x, k_params, alpha, *args) + Df = lambda x: _fprime(score, x, k_params, alpha) + G = _get_G(k_params) # Inequality constraint matrix, Gx \leq h + h = matrix(0.0, (2 * k_params, 1)) # RHS in inequality constraint + H = lambda x, z: _hessian_wrapper(hess, x, z, k_params) + + ## Define the optimization function + def F(x=None, z=None): + if x is None: + return 0, x0 + elif z is None: + return f_0(x), Df(x) + else: + return f_0(x), Df(x), H(x, z) + + ## Convert optimization settings to cvxopt form + solvers.options['show_progress'] = disp + solvers.options['maxiters'] = maxiter + if 'abstol' in kwargs: + solvers.options['abstol'] = kwargs['abstol'] + if 'reltol' in kwargs: + solvers.options['reltol'] = kwargs['reltol'] + if 'feastol' in kwargs: + solvers.options['feastol'] = kwargs['feastol'] + if 'refinement' in kwargs: + solvers.options['refinement'] = kwargs['refinement'] + + ### Call the optimizer + results = solvers.cp(F, G, h) + x = np.asarray(results['x']).ravel() + params = x[:k_params] + + ### Post-process + # QC + qc_tol = kwargs['qc_tol'] + qc_verbose = kwargs['qc_verbose'] + passed = l1_solvers_common.qc_results( + params, alpha, score, qc_tol, qc_verbose) + # Possibly trim + trim_mode = kwargs['trim_mode'] + size_trim_tol = kwargs['size_trim_tol'] + auto_trim_tol = kwargs['auto_trim_tol'] + params, trimmed = l1_solvers_common.do_trim_params( + params, k_params, alpha, score, passed, trim_mode, size_trim_tol, + auto_trim_tol) + + ### Pack up return values for statsmodels + # TODO These retvals are returned as mle_retvals...but the fit wasn't ML + if full_output: + fopt = f_0(x) + gopt = float('nan') # Objective is non-differentiable + hopt = float('nan') + iterations = float('nan') + converged = 'True' if results['status'] == 'optimal'\ + else results['status'] + retvals = { + 'fopt': fopt, 'converged': converged, 'iterations': iterations, + 'gopt': gopt, 'hopt': hopt, 'trimmed': trimmed} + else: + x = np.array(results['x']).ravel() + params = x[:k_params] + + ### Return results + if full_output: + return params, retvals + else: + return params + + +def _objective_func(f, x, k_params, alpha, *args): + """ + The regularized objective function. + """ + x_arr = np.asarray(x) + params = x_arr[:k_params].ravel() + u = x_arr[k_params:] + # Call the numpy version + objective_func_arr = f(params, *args) + (alpha * u).sum() + # Return + return matrix(objective_func_arr) + + +def _fprime(score, x, k_params, alpha): + """ + The regularized derivative. + """ + x_arr = np.asarray(x) + params = x_arr[:k_params].ravel() + # Call the numpy version + # The derivative just appends a vector of constants + fprime_arr = np.append(score(params), alpha) + # Return + return matrix(fprime_arr, (1, 2 * k_params)) + + +def _get_G(k_params): + """ + The linear inequality constraint matrix. + """ + I = np.eye(k_params) + A = np.concatenate((-I, -I), axis=1) + B = np.concatenate((I, -I), axis=1) + C = np.concatenate((A, B), axis=0) + # Return + return matrix(C) + + +def _hessian_wrapper(hess, x, z, k_params): + """ + Wraps the hessian up in the form for cvxopt. + + cvxopt wants the hessian of the objective function and the constraints. + Since our constraints are linear, this part is all zeros. + """ + x_arr = np.asarray(x) + params = x_arr[:k_params].ravel() + zh_x = np.asarray(z[0]) * hess(params) + zero_mat = np.zeros(zh_x.shape) + A = np.concatenate((zh_x, zero_mat), axis=1) + B = np.concatenate((zero_mat, zero_mat), axis=1) + zh_x_ext = np.concatenate((A, B), axis=0) + return matrix(zh_x_ext, (2 * k_params, 2 * k_params)) diff --git a/statsmodels/base/l1_slsqp.py b/statsmodels/base/l1_slsqp.py new file mode 100644 index 0000000..5bcffdf --- /dev/null +++ b/statsmodels/base/l1_slsqp.py @@ -0,0 +1,166 @@ +""" +Holds files for l1 regularization of LikelihoodModel, using +scipy.optimize.slsqp +""" +import numpy as np +from scipy.optimize import fmin_slsqp +import statsmodels.base.l1_solvers_common as l1_solvers_common + + +def fit_l1_slsqp( + f, score, start_params, args, kwargs, disp=False, maxiter=1000, + callback=None, retall=False, full_output=False, hess=None): + """ + Solve the l1 regularized problem using scipy.optimize.fmin_slsqp(). + + Specifically: We convert the convex but non-smooth problem + + .. math:: \\min_\\beta f(\\beta) + \\sum_k\\alpha_k |\\beta_k| + + via the transformation to the smooth, convex, constrained problem in twice + as many variables (adding the "added variables" :math:`u_k`) + + .. math:: \\min_{\\beta,u} f(\\beta) + \\sum_k\\alpha_k u_k, + + subject to + + .. math:: -u_k \\leq \\beta_k \\leq u_k. + + Parameters + ---------- + All the usual parameters from LikelhoodModel.fit + alpha : non-negative scalar or numpy array (same size as parameters) + The weight multiplying the l1 penalty term + trim_mode : 'auto, 'size', or 'off' + If not 'off', trim (set to zero) parameters that would have been zero + if the solver reached the theoretical minimum. + If 'auto', trim params using the Theory above. + If 'size', trim params if they have very small absolute value + size_trim_tol : float or 'auto' (default = 'auto') + For use when trim_mode === 'size' + auto_trim_tol : float + For sue when trim_mode == 'auto'. Use + qc_tol : float + Print warning and don't allow auto trim when (ii) in "Theory" (above) + is violated by this much. + qc_verbose : Boolean + If true, print out a full QC report upon failure + acc : float (default 1e-6) + Requested accuracy as used by slsqp + """ + start_params = np.array(start_params).ravel('F') + + ### Extract values + # k_params is total number of covariates, + # possibly including a leading constant. + k_params = len(start_params) + # The start point + x0 = np.append(start_params, np.fabs(start_params)) + # alpha is the regularization parameter + alpha = np.array(kwargs['alpha_rescaled']).ravel('F') + # Make sure it's a vector + alpha = alpha * np.ones(k_params) + assert alpha.min() >= 0 + # Convert display parameters to scipy.optimize form + disp_slsqp = _get_disp_slsqp(disp, retall) + # Set/retrieve the desired accuracy + acc = kwargs.setdefault('acc', 1e-10) + + ### Wrap up for use in fmin_slsqp + func = lambda x_full: _objective_func(f, x_full, k_params, alpha, *args) + f_ieqcons_wrap = lambda x_full: _f_ieqcons(x_full, k_params) + fprime_wrap = lambda x_full: _fprime(score, x_full, k_params, alpha) + fprime_ieqcons_wrap = lambda x_full: _fprime_ieqcons(x_full, k_params) + + ### Call the solver + results = fmin_slsqp( + func, x0, f_ieqcons=f_ieqcons_wrap, fprime=fprime_wrap, acc=acc, + iter=maxiter, disp=disp_slsqp, full_output=full_output, + fprime_ieqcons=fprime_ieqcons_wrap) + params = np.asarray(results[0][:k_params]) + + ### Post-process + # QC + qc_tol = kwargs['qc_tol'] + qc_verbose = kwargs['qc_verbose'] + passed = l1_solvers_common.qc_results( + params, alpha, score, qc_tol, qc_verbose) + # Possibly trim + trim_mode = kwargs['trim_mode'] + size_trim_tol = kwargs['size_trim_tol'] + auto_trim_tol = kwargs['auto_trim_tol'] + params, trimmed = l1_solvers_common.do_trim_params( + params, k_params, alpha, score, passed, trim_mode, size_trim_tol, + auto_trim_tol) + + ### Pack up return values for statsmodels optimizers + # TODO These retvals are returned as mle_retvals...but the fit wasn't ML. + # This could be confusing someday. + if full_output: + x_full, fx, its, imode, smode = results + fopt = func(np.asarray(x_full)) + converged = 'True' if imode == 0 else smode + iterations = its + gopt = float('nan') # Objective is non-differentiable + hopt = float('nan') + retvals = { + 'fopt': fopt, 'converged': converged, 'iterations': iterations, + 'gopt': gopt, 'hopt': hopt, 'trimmed': trimmed} + + ### Return + if full_output: + return params, retvals + else: + return params + + +def _get_disp_slsqp(disp, retall): + if disp or retall: + if disp: + disp_slsqp = 1 + if retall: + disp_slsqp = 2 + else: + disp_slsqp = 0 + return disp_slsqp + + +def _objective_func(f, x_full, k_params, alpha, *args): + """ + The regularized objective function + """ + x_params = x_full[:k_params] + x_added = x_full[k_params:] + ## Return + return f(x_params, *args) + (alpha * x_added).sum() + + +def _fprime(score, x_full, k_params, alpha): + """ + The regularized derivative + """ + x_params = x_full[:k_params] + # The derivative just appends a vector of constants + return np.append(score(x_params), alpha) + + +def _f_ieqcons(x_full, k_params): + """ + The inequality constraints. + """ + x_params = x_full[:k_params] + x_added = x_full[k_params:] + # All entries in this vector must be \geq 0 in a feasible solution + return np.append(x_params + x_added, x_added - x_params) + + +def _fprime_ieqcons(x_full, k_params): + """ + Derivative of the inequality constraints + """ + I = np.eye(k_params) + A = np.concatenate((I, I), axis=1) + B = np.concatenate((-I, I), axis=1) + C = np.concatenate((A, B), axis=0) + ## Return + return C diff --git a/statsmodels/base/l1_solvers_common.py b/statsmodels/base/l1_solvers_common.py new file mode 100644 index 0000000..2d70eab --- /dev/null +++ b/statsmodels/base/l1_solvers_common.py @@ -0,0 +1,157 @@ +""" +Holds common functions for l1 solvers. +""" +from __future__ import print_function +import numpy as np +from statsmodels.compat.python import range + +def qc_results(params, alpha, score, qc_tol, qc_verbose=False): + """ + Theory dictates that one of two conditions holds: + i) abs(score[i]) == alpha[i] and params[i] != 0 + ii) abs(score[i]) <= alpha[i] and params[i] == 0 + qc_results checks to see that (ii) holds, within qc_tol + + qc_results also checks for nan or results of the wrong shape. + + Parameters + ---------- + params : np.ndarray + model parameters. Not including the added variables x_added. + alpha : np.ndarray + regularization coefficients + score : function + Gradient of unregularized objective function + qc_tol : float + Tolerance to hold conditions (i) and (ii) to for QC check. + qc_verbose : Boolean + If true, print out a full QC report upon failure + + Returns + ------- + passed : Boolean + True if QC check passed + qc_dict : Dictionary + Keys are fprime, alpha, params, passed_array + + Prints + ------ + Warning message if QC check fails. + """ + ## Check for fatal errors + assert not np.isnan(params).max() + assert (params == params.ravel('F')).min(), \ + "params should have already been 1-d" + + ## Start the theory compliance check + fprime = score(params) + k_params = len(params) + + passed_array = np.array([True] * k_params) + for i in range(k_params): + if alpha[i] > 0: + # If |fprime| is too big, then something went wrong + if (abs(fprime[i]) - alpha[i]) / alpha[i] > qc_tol: + passed_array[i] = False + qc_dict = dict( + fprime=fprime, alpha=alpha, params=params, passed_array=passed_array) + passed = passed_array.min() + if not passed: + num_failed = (passed_array == False).sum() + message = 'QC check did not pass for %d out of %d parameters' % ( + num_failed, k_params) + message += '\nTry increasing solver accuracy or number of iterations'\ + ', decreasing alpha, or switch solvers' + if qc_verbose: + message += _get_verbose_addon(qc_dict) + print(message) + + return passed + + +def _get_verbose_addon(qc_dict): + alpha = qc_dict['alpha'] + params = qc_dict['params'] + fprime = qc_dict['fprime'] + passed_array = qc_dict['passed_array'] + + addon = '\n------ verbose QC printout -----------------' + addon = '\n------ Recall the problem was rescaled by 1 / nobs ---' + addon += '\n|%-10s|%-10s|%-10s|%-10s|' % ( + 'passed', 'alpha', 'fprime', 'param') + addon += '\n--------------------------------------------' + for i in range(len(alpha)): + addon += '\n|%-10s|%-10.3e|%-10.3e|%-10.3e|' % ( + passed_array[i], alpha[i], fprime[i], params[i]) + return addon + + +def do_trim_params(params, k_params, alpha, score, passed, trim_mode, + size_trim_tol, auto_trim_tol): + """ + Trims (set to zero) params that are zero at the theoretical minimum. + Uses heuristics to account for the solver not actually finding the minimum. + + In all cases, if alpha[i] == 0, then don't trim the ith param. + In all cases, do nothing with the added variables. + + Parameters + ---------- + params : np.ndarray + model parameters. Not including added variables. + k_params : Int + Number of parameters + alpha : np.ndarray + regularization coefficients + score : Function. + score(params) should return a 1-d vector of derivatives of the + unpenalized objective function. + passed : Boolean + True if the QC check passed + trim_mode : 'auto, 'size', or 'off' + If not 'off', trim (set to zero) parameters that would have been zero + if the solver reached the theoretical minimum. + If 'auto', trim params using the Theory above. + If 'size', trim params if they have very small absolute value + size_trim_tol : float or 'auto' (default = 'auto') + For use when trim_mode === 'size' + auto_trim_tol : float + For sue when trim_mode == 'auto'. Use + qc_tol : float + Print warning and don't allow auto trim when (ii) in "Theory" (above) + is violated by this much. + + Returns + ------- + params : np.ndarray + Trimmed model parameters + trimmed : np.ndarray of Booleans + trimmed[i] == True if the ith parameter was trimmed. + """ + ## Trim the small params + trimmed = [False] * k_params + + if trim_mode == 'off': + trimmed = np.array([False] * k_params) + elif trim_mode == 'auto' and not passed: + print("Could not trim params automatically due to failed QC " + "check. Trimming using trim_mode == 'size' will still work.") + trimmed = np.array([False] * k_params) + elif trim_mode == 'auto' and passed: + fprime = score(params) + for i in range(k_params): + if alpha[i] != 0: + if (alpha[i] - abs(fprime[i])) / alpha[i] > auto_trim_tol: + params[i] = 0.0 + trimmed[i] = True + elif trim_mode == 'size': + for i in range(k_params): + if alpha[i] != 0: + if abs(params[i]) < size_trim_tol: + params[i] = 0.0 + trimmed[i] = True + else: + raise Exception( + "trim_mode == %s, which is not recognized" % (trim_mode)) + + return params, np.asarray(trimmed) diff --git a/statsmodels/base/model.py b/statsmodels/base/model.py new file mode 100644 index 0000000..f2f384f --- /dev/null +++ b/statsmodels/base/model.py @@ -0,0 +1,2094 @@ +from __future__ import print_function +from statsmodels.compat.python import iterkeys, lzip, range, reduce +import numpy as np +from scipy import stats +from statsmodels.base.data import handle_data +from statsmodels.tools.data import _is_using_pandas +from statsmodels.tools.tools import recipr, nan_dot +from statsmodels.stats.contrast import ContrastResults, WaldTestResults +from statsmodels.tools.decorators import resettable_cache, cache_readonly +import statsmodels.base.wrapper as wrap +from statsmodels.tools.numdiff import approx_fprime +from statsmodels.tools.sm_exceptions import ValueWarning, \ + HessianInversionWarning +from statsmodels.formula import handle_formula_data +from statsmodels.compat.numpy import np_matrix_rank +from statsmodels.base.optimizer import Optimizer + + +_model_params_doc = """ + Parameters + ---------- + endog : array-like + 1-d endogenous response variable. The dependent variable. + exog : array-like + A nobs x k array where `nobs` is the number of observations and `k` + is the number of regressors. An intercept is not included by default + and should be added by the user. See + :func:`statsmodels.tools.add_constant`.""" + +_missing_param_doc = """\ +missing : str + Available options are 'none', 'drop', and 'raise'. If 'none', no nan + checking is done. If 'drop', any observations with nans are dropped. + If 'raise', an error is raised. Default is 'none.'""" +_extra_param_doc = """ + hasconst : None or bool + Indicates whether the RHS includes a user-supplied constant. If True, + a constant is not checked for and k_constant is set to 1 and all + result statistics are calculated as if a constant is present. If + False, a constant is not checked for and k_constant is set to 0. +""" + + +class Model(object): + __doc__ = """ + A (predictive) statistical model. Intended to be subclassed not used. + + %(params_doc)s + %(extra_params_doc)s + + Notes + ----- + `endog` and `exog` are references to any data provided. So if the data is + already stored in numpy arrays and it is changed then `endog` and `exog` + will change as well. + """ % {'params_doc' : _model_params_doc, + 'extra_params_doc' : _missing_param_doc + _extra_param_doc} + + def __init__(self, endog, exog=None, **kwargs): + missing = kwargs.pop('missing', 'none') + hasconst = kwargs.pop('hasconst', None) + self.data = self._handle_data(endog, exog, missing, hasconst, + **kwargs) + self.k_constant = self.data.k_constant + self.exog = self.data.exog + self.endog = self.data.endog + self._data_attr = [] + self._data_attr.extend(['exog', 'endog', 'data.exog', 'data.endog']) + if 'formula' not in kwargs: # won't be able to unpickle without these + self._data_attr.extend(['data.orig_endog', 'data.orig_exog']) + # store keys for extras if we need to recreate model instance + # we don't need 'missing', maybe we need 'hasconst' + self._init_keys = list(kwargs.keys()) + if hasconst is not None: + self._init_keys.append('hasconst') + + + def _get_init_kwds(self): + """return dictionary with extra keys used in model.__init__ + """ + kwds = dict(((key, getattr(self, key, None)) + for key in self._init_keys)) + + return kwds + + + def _handle_data(self, endog, exog, missing, hasconst, **kwargs): + data = handle_data(endog, exog, missing, hasconst, **kwargs) + # kwargs arrays could have changed, easier to just attach here + for key in kwargs: + if key in ['design_info', 'formula']: # leave attached to data + continue + # pop so we don't start keeping all these twice or references + try: + setattr(self, key, data.__dict__.pop(key)) + except KeyError: # panel already pops keys in data handling + pass + return data + + @classmethod + def from_formula(cls, formula, data, subset=None, drop_cols=None, *args, **kwargs): + """ + Create a Model from a formula and dataframe. + + Parameters + ---------- + formula : str or generic Formula object + The formula specifying the model + data : array-like + The data for the model. See Notes. + subset : array-like + An array-like object of booleans, integers, or index values that + indicate the subset of df to use in the model. Assumes df is a + `pandas.DataFrame` + drop_cols : array-like + Columns to drop from the design matrix. Cannot be used to + drop terms involving categoricals. + args : extra arguments + These are passed to the model + kwargs : extra keyword arguments + These are passed to the model with one exception. The + ``eval_env`` keyword is passed to patsy. It can be either a + :class:`patsy:patsy.EvalEnvironment` object or an integer + indicating the depth of the namespace to use. For example, the + default ``eval_env=0`` uses the calling namespace. If you wish + to use a "clean" environment set ``eval_env=-1``. + + Returns + ------- + model : Model instance + + Notes + ------ + data must define __getitem__ with the keys in the formula terms + args and kwargs are passed on to the model instantiation. E.g., + a numpy structured or rec array, a dictionary, or a pandas DataFrame. + """ + #TODO: provide a docs template for args/kwargs from child models + #TODO: subset could use syntax. issue #469. + if subset is not None: + data = data.ix[subset] + eval_env = kwargs.pop('eval_env', None) + if eval_env is None: + eval_env = 2 + elif eval_env == -1: + from patsy import EvalEnvironment + eval_env = EvalEnvironment({}) + else: + eval_env += 1 # we're going down the stack again + missing = kwargs.get('missing', 'drop') + if missing == 'none': # with patsy it's drop or raise. let's raise. + missing = 'raise' + + tmp = handle_formula_data(data, None, formula, depth=eval_env, + missing=missing) + ((endog, exog), missing_idx, design_info) = tmp + + if drop_cols is not None and len(drop_cols) > 0: + cols = [x for x in exog.columns if x not in drop_cols] + if len(cols) < len(exog.columns): + exog = exog[cols] + cols = list(design_info.term_names) + for col in drop_cols: + try: + cols.remove(col) + except ValueError: + pass # OK if not present + design_info = design_info.builder.subset(cols).design_info + + kwargs.update({'missing_idx': missing_idx, + 'missing': missing, + 'formula': formula, # attach formula for unpckling + 'design_info': design_info}) + mod = cls(endog, exog, *args, **kwargs) + mod.formula = formula + + # since we got a dataframe, attach the original + mod.data.frame = data + return mod + + @property + def endog_names(self): + """Names of endogenous variables""" + return self.data.ynames + + @property + def exog_names(self): + """Names of exogenous variables""" + return self.data.xnames + + def fit(self): + """ + Fit a model to data. + """ + raise NotImplementedError + + def predict(self, params, exog=None, *args, **kwargs): + """ + After a model has been fit predict returns the fitted values. + + This is a placeholder intended to be overwritten by individual models. + """ + raise NotImplementedError + + +class LikelihoodModel(Model): + """ + Likelihood model is a subclass of Model. + """ + + def __init__(self, endog, exog=None, **kwargs): + super(LikelihoodModel, self).__init__(endog, exog, **kwargs) + self.initialize() + + def initialize(self): + """ + Initialize (possibly re-initialize) a Model instance. For + instance, the design matrix of a linear model may change + and some things must be recomputed. + """ + pass + + # TODO: if the intent is to re-initialize the model with new data then this + # method needs to take inputs... + + def loglike(self, params): + """ + Log-likelihood of model. + """ + raise NotImplementedError + + def score(self, params): + """ + Score vector of model. + + The gradient of logL with respect to each parameter. + """ + raise NotImplementedError + + def information(self, params): + """ + Fisher information matrix of model + + Returns -Hessian of loglike evaluated at params. + """ + raise NotImplementedError + + def hessian(self, params): + """ + The Hessian matrix of the model + """ + raise NotImplementedError + + def fit(self, start_params=None, method='newton', maxiter=100, + full_output=True, disp=True, fargs=(), callback=None, retall=False, + skip_hessian=False, **kwargs): + """ + Fit method for likelihood based models + + Parameters + ---------- + start_params : array-like, optional + Initial guess of the solution for the loglikelihood maximization. + The default is an array of zeros. + method : str, optional + The `method` determines which solver from `scipy.optimize` + is used, and it can be chosen from among the following strings: + + - 'newton' for Newton-Raphson, 'nm' for Nelder-Mead + - 'bfgs' for Broyden-Fletcher-Goldfarb-Shanno (BFGS) + - 'lbfgs' for limited-memory BFGS with optional box constraints + - 'powell' for modified Powell's method + - 'cg' for conjugate gradient + - 'ncg' for Newton-conjugate gradient + - 'basinhopping' for global basin-hopping solver + + The explicit arguments in `fit` are passed to the solver, + with the exception of the basin-hopping solver. Each + solver has several optional arguments that are not the same across + solvers. See the notes section below (or scipy.optimize) for the + available arguments and for the list of explicit arguments that the + basin-hopping solver supports. + maxiter : int, optional + The maximum number of iterations to perform. + full_output : bool, optional + Set to True to have all available output in the Results object's + mle_retvals attribute. The output is dependent on the solver. + See LikelihoodModelResults notes section for more information. + disp : bool, optional + Set to True to print convergence messages. + fargs : tuple, optional + Extra arguments passed to the likelihood function, i.e., + loglike(x,*args) + callback : callable callback(xk), optional + Called after each iteration, as callback(xk), where xk is the + current parameter vector. + retall : bool, optional + Set to True to return list of solutions at each iteration. + Available in Results object's mle_retvals attribute. + skip_hessian : bool, optional + If False (default), then the negative inverse hessian is calculated + after the optimization. If True, then the hessian will not be + calculated. However, it will be available in methods that use the + hessian in the optimization (currently only with `"newton"`). + kwargs : keywords + All kwargs are passed to the chosen solver with one exception. The + following keyword controls what happens after the fit:: + + warn_convergence : bool, optional + If True, checks the model for the converged flag. If the + converged flag is False, a ConvergenceWarning is issued. + + Notes + ----- + The 'basinhopping' solver ignores `maxiter`, `retall`, `full_output` + explicit arguments. + + Optional arguments for solvers (see returned Results.mle_settings):: + + 'newton' + tol : float + Relative error in params acceptable for convergence. + 'nm' -- Nelder Mead + xtol : float + Relative error in params acceptable for convergence + ftol : float + Relative error in loglike(params) acceptable for + convergence + maxfun : int + Maximum number of function evaluations to make. + 'bfgs' + gtol : float + Stop when norm of gradient is less than gtol. + norm : float + Order of norm (np.Inf is max, -np.Inf is min) + epsilon + If fprime is approximated, use this value for the step + size. Only relevant if LikelihoodModel.score is None. + 'lbfgs' + m : int + This many terms are used for the Hessian approximation. + factr : float + A stop condition that is a variant of relative error. + pgtol : float + A stop condition that uses the projected gradient. + epsilon + If fprime is approximated, use this value for the step + size. Only relevant if LikelihoodModel.score is None. + maxfun : int + Maximum number of function evaluations to make. + bounds : sequence + (min, max) pairs for each element in x, + defining the bounds on that parameter. + Use None for one of min or max when there is no bound + in that direction. + 'cg' + gtol : float + Stop when norm of gradient is less than gtol. + norm : float + Order of norm (np.Inf is max, -np.Inf is min) + epsilon : float + If fprime is approximated, use this value for the step + size. Can be scalar or vector. Only relevant if + Likelihoodmodel.score is None. + 'ncg' + fhess_p : callable f'(x,*args) + Function which computes the Hessian of f times an arbitrary + vector, p. Should only be supplied if + LikelihoodModel.hessian is None. + avextol : float + Stop when the average relative error in the minimizer + falls below this amount. + epsilon : float or ndarray + If fhess is approximated, use this value for the step size. + Only relevant if Likelihoodmodel.hessian is None. + 'powell' + xtol : float + Line-search error tolerance + ftol : float + Relative error in loglike(params) for acceptable for + convergence. + maxfun : int + Maximum number of function evaluations to make. + start_direc : ndarray + Initial direction set. + 'basinhopping' + niter : integer + The number of basin hopping iterations. + niter_success : integer + Stop the run if the global minimum candidate remains the + same for this number of iterations. + T : float + The "temperature" parameter for the accept or reject + criterion. Higher "temperatures" mean that larger jumps + in function value will be accepted. For best results + `T` should be comparable to the separation (in function + value) between local minima. + stepsize : float + Initial step size for use in the random displacement. + interval : integer + The interval for how often to update the `stepsize`. + minimizer : dict + Extra keyword arguments to be passed to the minimizer + `scipy.optimize.minimize()`, for example 'method' - the + minimization method (e.g. 'L-BFGS-B'), or 'tol' - the + tolerance for termination. Other arguments are mapped from + explicit argument of `fit`: + - `args` <- `fargs` + - `jac` <- `score` + - `hess` <- `hess` + """ + Hinv = None # JP error if full_output=0, Hinv not defined + + if start_params is None: + if hasattr(self, 'start_params'): + start_params = self.start_params + elif self.exog is not None: + # fails for shape (K,)? + start_params = [0] * self.exog.shape[1] + else: + raise ValueError("If exog is None, then start_params should " + "be specified") + + # TODO: separate args from nonarg taking score and hessian, ie., + # user-supplied and numerically evaluated estimate frprime doesn't take + # args in most (any?) of the optimize function + + nobs = self.endog.shape[0] + f = lambda params, *args: -self.loglike(params, *args) / nobs + score = lambda params, *args: -self.score(params, *args) / nobs + try: + hess = lambda params, *args: -self.hessian(params, *args) / nobs + except: + hess = None + + if method == 'newton': + score = lambda params, *args: self.score(params, *args) / nobs + hess = lambda params, *args: self.hessian(params, *args) / nobs + #TODO: why are score and hess positive? + + warn_convergence = kwargs.pop('warn_convergence', True) + optimizer = Optimizer() + xopt, retvals, optim_settings = optimizer._fit(f, score, start_params, + fargs, kwargs, + hessian=hess, + method=method, + disp=disp, + maxiter=maxiter, + callback=callback, + retall=retall, + full_output=full_output) + + #NOTE: this is for fit_regularized and should be generalized + cov_params_func = kwargs.setdefault('cov_params_func', None) + if cov_params_func: + Hinv = cov_params_func(self, xopt, retvals) + elif method == 'newton' and full_output: + Hinv = np.linalg.inv(-retvals['Hessian']) / nobs + elif not skip_hessian: + H = -1 * self.hessian(xopt) + invertible = False + if np.all(np.isfinite(H)): + eigvals, eigvecs = np.linalg.eigh(H) + if np.min(eigvals) > 0: + invertible = True + + if invertible: + Hinv = eigvecs.dot(np.diag(1.0 / eigvals)).dot(eigvecs.T) + Hinv = np.asfortranarray((Hinv + Hinv.T) / 2.0) + else: + from warnings import warn + warn('Inverting hessian failed, no bse or cov_params ' + 'available', HessianInversionWarning) + Hinv = None + + if 'cov_type' in kwargs: + cov_kwds = kwargs.get('cov_kwds', {}) + kwds = {'cov_type':kwargs['cov_type'], 'cov_kwds':cov_kwds} + else: + kwds = {} + if 'use_t' in kwargs: + kwds['use_t'] = kwargs['use_t'] + #prints for debugging + #print('kwargs inLikelihoodModel.fit', kwargs) + #print('kwds inLikelihoodModel.fit', kwds) + #TODO: add Hessian approximation and change the above if needed + mlefit = LikelihoodModelResults(self, xopt, Hinv, scale=1., **kwds) + + #TODO: hardcode scale? + if isinstance(retvals, dict): + mlefit.mle_retvals = retvals + if warn_convergence and not retvals['converged']: + from warnings import warn + from statsmodels.tools.sm_exceptions import ConvergenceWarning + warn("Maximum Likelihood optimization failed to converge. " + "Check mle_retvals", ConvergenceWarning) + + mlefit.mle_settings = optim_settings + return mlefit + + +#TODO: the below is unfinished +class GenericLikelihoodModel(LikelihoodModel): + """ + Allows the fitting of any likelihood function via maximum likelihood. + + A subclass needs to specify at least the log-likelihood + If the log-likelihood is specified for each observation, then results that + require the Jacobian will be available. (The other case is not tested yet.) + + Notes + ----- + Optimization methods that require only a likelihood function are 'nm' and + 'powell' + + Optimization methods that require a likelihood function and a + score/gradient are 'bfgs', 'cg', and 'ncg'. A function to compute the + Hessian is optional for 'ncg'. + + Optimization method that require a likelihood function, a score/gradient, + and a Hessian is 'newton' + + If they are not overwritten by a subclass, then numerical gradient, + Jacobian and Hessian of the log-likelihood are caclulated by numerical + forward differentiation. This might results in some cases in precision + problems, and the Hessian might not be positive definite. Even if the + Hessian is not positive definite the covariance matrix of the parameter + estimates based on the outer product of the Jacobian might still be valid. + + + Examples + -------- + see also subclasses in directory miscmodels + + import statsmodels.api as sm + data = sm.datasets.spector.load() + data.exog = sm.add_constant(data.exog) + # in this dir + from model import GenericLikelihoodModel + probit_mod = sm.Probit(data.endog, data.exog) + probit_res = probit_mod.fit() + loglike = probit_mod.loglike + score = probit_mod.score + mod = GenericLikelihoodModel(data.endog, data.exog, loglike, score) + res = mod.fit(method="nm", maxiter = 500) + import numpy as np + np.allclose(res.params, probit_res.params) + + """ + def __init__(self, endog, exog=None, loglike=None, score=None, + hessian=None, missing='none', extra_params_names=None, + **kwds): + # let them be none in case user wants to use inheritance + if not loglike is None: + self.loglike = loglike + if not score is None: + self.score = score + if not hessian is None: + self.hessian = hessian + + self.__dict__.update(kwds) + + # TODO: data structures? + + #TODO temporary solution, force approx normal + #self.df_model = 9999 + #somewhere: CacheWriteWarning: 'df_model' cannot be overwritten + super(GenericLikelihoodModel, self).__init__(endog, exog, + missing=missing) + + # this won't work for ru2nmnl, maybe np.ndim of a dict? + if exog is not None: + #try: + self.nparams = (exog.shape[1] if np.ndim(exog) == 2 else 1) + + if extra_params_names is not None: + self._set_extra_params_names(extra_params_names) + + def _set_extra_params_names(self, extra_params_names): + # check param_names + if extra_params_names is not None: + if self.exog is not None: + self.exog_names.extend(extra_params_names) + else: + self.data.xnames = extra_params_names + + self.nparams = len(self.exog_names) + + #this is redundant and not used when subclassing + def initialize(self): + if not self.score: # right now score is not optional + self.score = approx_fprime + if not self.hessian: + pass + else: # can use approx_hess_p if we have a gradient + if not self.hessian: + pass + #Initialize is called by + #statsmodels.model.LikelihoodModel.__init__ + #and should contain any preprocessing that needs to be done for a model + if self.exog is not None: + # assume constant + er = np_matrix_rank(self.exog) + self.df_model = float(er - 1) + self.df_resid = float(self.exog.shape[0] - er) + else: + self.df_model = np.nan + self.df_resid = np.nan + super(GenericLikelihoodModel, self).initialize() + + def expandparams(self, params): + ''' + expand to full parameter array when some parameters are fixed + + Parameters + ---------- + params : array + reduced parameter array + + Returns + ------- + paramsfull : array + expanded parameter array where fixed parameters are included + + Notes + ----- + Calling this requires that self.fixed_params and self.fixed_paramsmask + are defined. + + *developer notes:* + + This can be used in the log-likelihood to ... + + this could also be replaced by a more general parameter + transformation. + + ''' + paramsfull = self.fixed_params.copy() + paramsfull[self.fixed_paramsmask] = params + return paramsfull + + def reduceparams(self, params): + return params[self.fixed_paramsmask] + + def loglike(self, params): + return self.loglikeobs(params).sum(0) + + def nloglike(self, params): + return -self.loglikeobs(params).sum(0) + + def loglikeobs(self, params): + return -self.nloglikeobs(params) + + def score(self, params): + ''' + Gradient of log-likelihood evaluated at params + ''' + kwds = {} + kwds.setdefault('centered', True) + return approx_fprime(params, self.loglike, **kwds).ravel() + + def score_obs(self, params, **kwds): + ''' + Jacobian/Gradient of log-likelihood evaluated at params for each + observation. + ''' + #kwds.setdefault('epsilon', 1e-4) + kwds.setdefault('centered', True) + return approx_fprime(params, self.loglikeobs, **kwds) + + jac = np.deprecate(score_obs, 'jac', 'score_obs', "Use score_obs method." + " jac will be removed in 0.7.") + + def hessian(self, params): + ''' + Hessian of log-likelihood evaluated at params + ''' + from statsmodels.tools.numdiff import approx_hess + # need options for hess (epsilon) + return approx_hess(params, self.loglike) + + def fit(self, start_params=None, method='nm', maxiter=500, full_output=1, + disp=1, callback=None, retall=0, **kwargs): + """ + Fit the model using maximum likelihood. + + The rest of the docstring is from + statsmodels.LikelihoodModel.fit + """ + if start_params is None: + if hasattr(self, 'start_params'): + start_params = self.start_params + else: + start_params = 0.1 * np.ones(self.nparams) + + fit_method = super(GenericLikelihoodModel, self).fit + mlefit = fit_method(start_params=start_params, + method=method, maxiter=maxiter, + full_output=full_output, + disp=disp, callback=callback, **kwargs) + genericmlefit = GenericLikelihoodModelResults(self, mlefit) + + #amend param names + exog_names = [] if (self.exog_names is None) else self.exog_names + k_miss = len(exog_names) - len(mlefit.params) + if not k_miss == 0: + if k_miss < 0: + self._set_extra_params_names( + ['par%d' % i for i in range(-k_miss)]) + else: + # I don't want to raise after we have already fit() + import warnings + warnings.warn('more exog_names than parameters', ValueWarning) + + return genericmlefit + #fit.__doc__ += LikelihoodModel.fit.__doc__ + + +class Results(object): + """ + Class to contain model results + + Parameters + ---------- + model : class instance + the previously specified model instance + params : array + parameter estimates from the fit model + """ + def __init__(self, model, params, **kwd): + self.__dict__.update(kwd) + self.initialize(model, params, **kwd) + self._data_attr = [] + + def initialize(self, model, params, **kwd): + self.params = params + self.model = model + if hasattr(model, 'k_constant'): + self.k_constant = model.k_constant + + def predict(self, exog=None, transform=True, *args, **kwargs): + """ + Call self.model.predict with self.params as the first argument. + + Parameters + ---------- + exog : array-like, optional + The values for which you want to predict. + transform : bool, optional + If the model was fit via a formula, do you want to pass + exog through the formula. Default is True. E.g., if you fit + a model y ~ log(x1) + log(x2), and transform is True, then + you can pass a data structure that contains x1 and x2 in + their original form. Otherwise, you'd need to log the data + first. + args, kwargs : + Some models can take additional arguments or keywords, see the + predict method of the model for the details. + + Returns + ------- + prediction : ndarray, pandas.Series or pandas.DataFrame + See self.model.predict + + """ + import pandas as pd + + exog_index = exog.index if _is_using_pandas(exog, None) else None + + if transform and hasattr(self.model, 'formula') and exog is not None: + from patsy import dmatrix + exog = dmatrix(self.model.data.design_info.builder, + exog, return_type="dataframe") + if len(exog) < len(exog_index): + # missing values, rows have been dropped + if exog_index is not None: + exog = exog.reindex(exog_index) + else: + import warnings + warnings.warn("nan rows have been dropped", ValueWarning) + + if exog is not None: + exog = np.asarray(exog) + if exog.ndim == 1 and (self.model.exog.ndim == 1 or + self.model.exog.shape[1] == 1): + exog = exog[:, None] + exog = np.atleast_2d(exog) # needed in count model shape[1] + + predict_results = self.model.predict(self.params, exog, *args, **kwargs) + + if exog_index is not None and not hasattr(predict_results, 'predicted_values'): + + if predict_results.ndim == 1: + return pd.Series(predict_results, index=exog_index) + else: + return pd.DataFrame(predict_results, index=exog_index) + + else: + + return predict_results + + + def summary(self): + pass + + +#TODO: public method? +class LikelihoodModelResults(Results): + """ + Class to contain results from likelihood models + + Parameters + ----------- + model : LikelihoodModel instance or subclass instance + LikelihoodModelResults holds a reference to the model that is fit. + params : 1d array_like + parameter estimates from estimated model + normalized_cov_params : 2d array + Normalized (before scaling) covariance of params. (dot(X.T,X))**-1 + scale : float + For (some subset of models) scale will typically be the + mean square error from the estimated model (sigma^2) + + Returns + ------- + **Attributes** + mle_retvals : dict + Contains the values returned from the chosen optimization method if + full_output is True during the fit. Available only if the model + is fit by maximum likelihood. See notes below for the output from + the different methods. + mle_settings : dict + Contains the arguments passed to the chosen optimization method. + Available if the model is fit by maximum likelihood. See + LikelihoodModel.fit for more information. + model : model instance + LikelihoodResults contains a reference to the model that is fit. + params : ndarray + The parameters estimated for the model. + scale : float + The scaling factor of the model given during instantiation. + tvalues : array + The t-values of the standard errors. + + + Notes + ----- + The covariance of params is given by scale times normalized_cov_params. + + Return values by solver if full_output is True during fit: + + 'newton' + fopt : float + The value of the (negative) loglikelihood at its + minimum. + iterations : int + Number of iterations performed. + score : ndarray + The score vector at the optimum. + Hessian : ndarray + The Hessian at the optimum. + warnflag : int + 1 if maxiter is exceeded. 0 if successful convergence. + converged : bool + True: converged. False: did not converge. + allvecs : list + List of solutions at each iteration. + 'nm' + fopt : float + The value of the (negative) loglikelihood at its + minimum. + iterations : int + Number of iterations performed. + warnflag : int + 1: Maximum number of function evaluations made. + 2: Maximum number of iterations reached. + converged : bool + True: converged. False: did not converge. + allvecs : list + List of solutions at each iteration. + 'bfgs' + fopt : float + Value of the (negative) loglikelihood at its minimum. + gopt : float + Value of gradient at minimum, which should be near 0. + Hinv : ndarray + value of the inverse Hessian matrix at minimum. Note + that this is just an approximation and will often be + different from the value of the analytic Hessian. + fcalls : int + Number of calls to loglike. + gcalls : int + Number of calls to gradient/score. + warnflag : int + 1: Maximum number of iterations exceeded. 2: Gradient + and/or function calls are not changing. + converged : bool + True: converged. False: did not converge. + allvecs : list + Results at each iteration. + 'lbfgs' + fopt : float + Value of the (negative) loglikelihood at its minimum. + gopt : float + Value of gradient at minimum, which should be near 0. + fcalls : int + Number of calls to loglike. + warnflag : int + Warning flag: + + - 0 if converged + - 1 if too many function evaluations or too many iterations + - 2 if stopped for another reason + + converged : bool + True: converged. False: did not converge. + 'powell' + fopt : float + Value of the (negative) loglikelihood at its minimum. + direc : ndarray + Current direction set. + iterations : int + Number of iterations performed. + fcalls : int + Number of calls to loglike. + warnflag : int + 1: Maximum number of function evaluations. 2: Maximum number + of iterations. + converged : bool + True : converged. False: did not converge. + allvecs : list + Results at each iteration. + 'cg' + fopt : float + Value of the (negative) loglikelihood at its minimum. + fcalls : int + Number of calls to loglike. + gcalls : int + Number of calls to gradient/score. + warnflag : int + 1: Maximum number of iterations exceeded. 2: Gradient and/ + or function calls not changing. + converged : bool + True: converged. False: did not converge. + allvecs : list + Results at each iteration. + 'ncg' + fopt : float + Value of the (negative) loglikelihood at its minimum. + fcalls : int + Number of calls to loglike. + gcalls : int + Number of calls to gradient/score. + hcalls : int + Number of calls to hessian. + warnflag : int + 1: Maximum number of iterations exceeded. + converged : bool + True: converged. False: did not converge. + allvecs : list + Results at each iteration. + """ + + # by default we use normal distribution + # can be overwritten by instances or subclasses + use_t = False + + def __init__(self, model, params, normalized_cov_params=None, scale=1., + **kwargs): + super(LikelihoodModelResults, self).__init__(model, params) + self.normalized_cov_params = normalized_cov_params + self.scale = scale + + # robust covariance + # We put cov_type in kwargs so subclasses can decide in fit whether to + # use this generic implementation + if 'use_t' in kwargs: + use_t = kwargs['use_t'] + if use_t is not None: + self.use_t = use_t + if 'cov_type' in kwargs: + cov_type = kwargs.get('cov_type', 'nonrobust') + cov_kwds = kwargs.get('cov_kwds', {}) + + if cov_type == 'nonrobust': + self.cov_type = 'nonrobust' + self.cov_kwds = {'description' : 'Standard Errors assume that the ' + + 'covariance matrix of the errors is correctly ' + + 'specified.'} + else: + from statsmodels.base.covtype import get_robustcov_results + if cov_kwds is None: + cov_kwds = {} + use_t = self.use_t + # TODO: we shouldn't need use_t in get_robustcov_results + get_robustcov_results(self, cov_type=cov_type, use_self=True, + use_t=use_t, **cov_kwds) + + + def normalized_cov_params(self): + raise NotImplementedError + + + def _get_robustcov_results(self, cov_type='nonrobust', use_self=True, + use_t=None, **cov_kwds): + from statsmodels.base.covtype import get_robustcov_results + if cov_kwds is None: + cov_kwds = {} + + if cov_type == 'nonrobust': + self.cov_type = 'nonrobust' + self.cov_kwds = {'description' : 'Standard Errors assume that the ' + + 'covariance matrix of the errors is correctly ' + + 'specified.'} + else: + # TODO: we shouldn't need use_t in get_robustcov_results + get_robustcov_results(self, cov_type=cov_type, use_self=True, + use_t=use_t, **cov_kwds) + + @cache_readonly + def llf(self): + return self.model.loglike(self.params) + + @cache_readonly + def bse(self): + return np.sqrt(np.diag(self.cov_params())) + + @cache_readonly + def tvalues(self): + """ + Return the t-statistic for a given parameter estimate. + """ + return self.params / self.bse + + @cache_readonly + def pvalues(self): + if self.use_t: + df_resid = getattr(self, 'df_resid_inference', self.df_resid) + return stats.t.sf(np.abs(self.tvalues), df_resid)*2 + else: + return stats.norm.sf(np.abs(self.tvalues))*2 + + + def cov_params(self, r_matrix=None, column=None, scale=None, cov_p=None, + other=None): + """ + Returns the variance/covariance matrix. + + The variance/covariance matrix can be of a linear contrast + of the estimates of params or all params multiplied by scale which + will usually be an estimate of sigma^2. Scale is assumed to be + a scalar. + + Parameters + ---------- + r_matrix : array-like + Can be 1d, or 2d. Can be used alone or with other. + column : array-like, optional + Must be used on its own. Can be 0d or 1d see below. + scale : float, optional + Can be specified or not. Default is None, which means that + the scale argument is taken from the model. + other : array-like, optional + Can be used when r_matrix is specified. + + Returns + ------- + cov : ndarray + covariance matrix of the parameter estimates or of linear + combination of parameter estimates. See Notes. + + Notes + ----- + (The below are assumed to be in matrix notation.) + + If no argument is specified returns the covariance matrix of a model + ``(scale)*(X.T X)^(-1)`` + + If contrast is specified it pre and post-multiplies as follows + ``(scale) * r_matrix (X.T X)^(-1) r_matrix.T`` + + If contrast and other are specified returns + ``(scale) * r_matrix (X.T X)^(-1) other.T`` + + If column is specified returns + ``(scale) * (X.T X)^(-1)[column,column]`` if column is 0d + + OR + + ``(scale) * (X.T X)^(-1)[column][:,column]`` if column is 1d + + """ + if (hasattr(self, 'mle_settings') and + self.mle_settings['optimizer'] in ['l1', 'l1_cvxopt_cp']): + dot_fun = nan_dot + else: + dot_fun = np.dot + + if (cov_p is None and self.normalized_cov_params is None and + not hasattr(self, 'cov_params_default')): + raise ValueError('need covariance of parameters for computing ' + '(unnormalized) covariances') + if column is not None and (r_matrix is not None or other is not None): + raise ValueError('Column should be specified without other ' + 'arguments.') + if other is not None and r_matrix is None: + raise ValueError('other can only be specified with r_matrix') + + if cov_p is None: + if hasattr(self, 'cov_params_default'): + cov_p = self.cov_params_default + else: + if scale is None: + scale = self.scale + cov_p = self.normalized_cov_params * scale + + if column is not None: + column = np.asarray(column) + if column.shape == (): + return cov_p[column, column] + else: + #return cov_p[column][:, column] + return cov_p[column[:, None], column] + elif r_matrix is not None: + r_matrix = np.asarray(r_matrix) + if r_matrix.shape == (): + raise ValueError("r_matrix should be 1d or 2d") + if other is None: + other = r_matrix + else: + other = np.asarray(other) + tmp = dot_fun(r_matrix, dot_fun(cov_p, np.transpose(other))) + return tmp + else: # if r_matrix is None and column is None: + return cov_p + + #TODO: make sure this works as needed for GLMs + def t_test(self, r_matrix, cov_p=None, scale=None, + use_t=None): + """ + Compute a t-test for a each linear hypothesis of the form Rb = q + + Parameters + ---------- + r_matrix : array-like, str, tuple + - array : If an array is given, a p x k 2d array or length k 1d + array specifying the linear restrictions. It is assumed + that the linear combination is equal to zero. + - str : The full hypotheses to test can be given as a string. + See the examples. + - tuple : A tuple of arrays in the form (R, q). If q is given, + can be either a scalar or a length p row vector. + cov_p : array-like, optional + An alternative estimate for the parameter covariance matrix. + If None is given, self.normalized_cov_params is used. + scale : float, optional + An optional `scale` to use. Default is the scale specified + by the model fit. + use_t : bool, optional + If use_t is None, then the default of the model is used. + If use_t is True, then the p-values are based on the t + distribution. + If use_t is False, then the p-values are based on the normal + distribution. + + Returns + ------- + res : ContrastResults instance + The results for the test are attributes of this results instance. + The available results have the same elements as the parameter table + in `summary()`. + + Examples + -------- + >>> import numpy as np + >>> import statsmodels.api as sm + >>> data = sm.datasets.longley.load() + >>> data.exog = sm.add_constant(data.exog) + >>> results = sm.OLS(data.endog, data.exog).fit() + >>> r = np.zeros_like(results.params) + >>> r[5:] = [1,-1] + >>> print(r) + [ 0. 0. 0. 0. 0. 1. -1.] + + r tests that the coefficients on the 5th and 6th independent + variable are the same. + + >>> T_test = results.t_test(r) + >>> print(T_test) + Test for Constraints + ============================================================================== + coef std err t P>|t| [0.025 0.975] + ------------------------------------------------------------------------------ + c0 -1829.2026 455.391 -4.017 0.003 -2859.368 -799.037 + ============================================================================== + >>> T_test.effect + -1829.2025687192481 + >>> T_test.sd + 455.39079425193762 + >>> T_test.tvalue + -4.0167754636411717 + >>> T_test.pvalue + 0.0015163772380899498 + + Alternatively, you can specify the hypothesis tests using a string + + >>> from statsmodels.formula.api import ols + >>> dta = sm.datasets.longley.load_pandas().data + >>> formula = 'TOTEMP ~ GNPDEFL + GNP + UNEMP + ARMED + POP + YEAR' + >>> results = ols(formula, dta).fit() + >>> hypotheses = 'GNPDEFL = GNP, UNEMP = 2, YEAR/1829 = 1' + >>> t_test = results.t_test(hypotheses) + >>> print(t_test) + Test for Constraints + ============================================================================== + coef std err t P>|t| [0.025 0.975] + ------------------------------------------------------------------------------ + c0 15.0977 84.937 0.178 0.863 -177.042 207.238 + c1 -2.0202 0.488 -8.231 0.000 -3.125 -0.915 + c2 1.0001 0.249 0.000 1.000 0.437 1.563 + ============================================================================== + + See Also + --------- + tvalues : individual t statistics + f_test : for F tests + patsy.DesignInfo.linear_constraint + """ + from patsy import DesignInfo + names = self.model.data.param_names + LC = DesignInfo(names).linear_constraint(r_matrix) + r_matrix, q_matrix = LC.coefs, LC.constants + num_ttests = r_matrix.shape[0] + num_params = r_matrix.shape[1] + + if (cov_p is None and self.normalized_cov_params is None and + not hasattr(self, 'cov_params_default')): + raise ValueError('Need covariance of parameters for computing ' + 'T statistics') + if num_params != self.params.shape[0]: + raise ValueError('r_matrix and params are not aligned') + if q_matrix is None: + q_matrix = np.zeros(num_ttests) + else: + q_matrix = np.asarray(q_matrix) + q_matrix = q_matrix.squeeze() + if q_matrix.size > 1: + if q_matrix.shape[0] != num_ttests: + raise ValueError("r_matrix and q_matrix must have the same " + "number of rows") + + if use_t is None: + #switch to use_t false if undefined + use_t = (hasattr(self, 'use_t') and self.use_t) + + _t = _sd = None + + _effect = np.dot(r_matrix, self.params) + # nan_dot multiplies with the convention nan * 0 = 0 + + # Perform the test + if num_ttests > 1: + _sd = np.sqrt(np.diag(self.cov_params( + r_matrix=r_matrix, cov_p=cov_p))) + else: + _sd = np.sqrt(self.cov_params(r_matrix=r_matrix, cov_p=cov_p)) + _t = (_effect - q_matrix) * recipr(_sd) + + df_resid = getattr(self, 'df_resid_inference', self.df_resid) + + if use_t: + return ContrastResults(effect=_effect, t=_t, sd=_sd, + df_denom=df_resid) + else: + return ContrastResults(effect=_effect, statistic=_t, sd=_sd, + df_denom=df_resid, + distribution='norm') + + def f_test(self, r_matrix, cov_p=None, scale=1.0, invcov=None): + """ + Compute the F-test for a joint linear hypothesis. + + This is a special case of `wald_test` that always uses the F + distribution. + + Parameters + ---------- + r_matrix : array-like, str, or tuple + - array : An r x k array where r is the number of restrictions to + test and k is the number of regressors. It is assumed + that the linear combination is equal to zero. + - str : The full hypotheses to test can be given as a string. + See the examples. + - tuple : A tuple of arrays in the form (R, q), ``q`` can be + either a scalar or a length k row vector. + cov_p : array-like, optional + An alternative estimate for the parameter covariance matrix. + If None is given, self.normalized_cov_params is used. + scale : float, optional + Default is 1.0 for no scaling. + invcov : array-like, optional + A q x q array to specify an inverse covariance matrix based on a + restrictions matrix. + + Returns + ------- + res : ContrastResults instance + The results for the test are attributes of this results instance. + + Examples + -------- + >>> import numpy as np + >>> import statsmodels.api as sm + >>> data = sm.datasets.longley.load() + >>> data.exog = sm.add_constant(data.exog) + >>> results = sm.OLS(data.endog, data.exog).fit() + >>> A = np.identity(len(results.params)) + >>> A = A[1:,:] + + This tests that each coefficient is jointly statistically + significantly different from zero. + + >>> print(results.f_test(A)) + + + Compare this to + + >>> results.fvalue + 330.2853392346658 + >>> results.f_pvalue + 4.98403096572e-10 + + >>> B = np.array(([0,0,1,-1,0,0,0],[0,0,0,0,0,1,-1])) + + This tests that the coefficient on the 2nd and 3rd regressors are + equal and jointly that the coefficient on the 5th and 6th regressors + are equal. + + >>> print(results.f_test(B)) + + + Alternatively, you can specify the hypothesis tests using a string + + >>> from statsmodels.datasets import longley + >>> from statsmodels.formula.api import ols + >>> dta = longley.load_pandas().data + >>> formula = 'TOTEMP ~ GNPDEFL + GNP + UNEMP + ARMED + POP + YEAR' + >>> results = ols(formula, dta).fit() + >>> hypotheses = '(GNPDEFL = GNP), (UNEMP = 2), (YEAR/1829 = 1)' + >>> f_test = results.f_test(hypotheses) + >>> print(f_test) + + + See Also + -------- + statsmodels.stats.contrast.ContrastResults + wald_test + t_test + patsy.DesignInfo.linear_constraint + + Notes + ----- + The matrix `r_matrix` is assumed to be non-singular. More precisely, + + r_matrix (pX pX.T) r_matrix.T + + is assumed invertible. Here, pX is the generalized inverse of the + design matrix of the model. There can be problems in non-OLS models + where the rank of the covariance of the noise is not full. + """ + res = self.wald_test(r_matrix, cov_p=cov_p, scale=scale, + invcov=invcov, use_f=True) + return res + + #TODO: untested for GLMs? + def wald_test(self, r_matrix, cov_p=None, scale=1.0, invcov=None, + use_f=None): + """ + Compute a Wald-test for a joint linear hypothesis. + + Parameters + ---------- + r_matrix : array-like, str, or tuple + - array : An r x k array where r is the number of restrictions to + test and k is the number of regressors. It is assumed that the + linear combination is equal to zero. + - str : The full hypotheses to test can be given as a string. + See the examples. + - tuple : A tuple of arrays in the form (R, q), ``q`` can be + either a scalar or a length p row vector. + cov_p : array-like, optional + An alternative estimate for the parameter covariance matrix. + If None is given, self.normalized_cov_params is used. + scale : float, optional + Default is 1.0 for no scaling. + invcov : array-like, optional + A q x q array to specify an inverse covariance matrix based on a + restrictions matrix. + use_f : bool + If True, then the F-distribution is used. If False, then the + asymptotic distribution, chisquare is used. If use_f is None, then + the F distribution is used if the model specifies that use_t is True. + The test statistic is proportionally adjusted for the distribution + by the number of constraints in the hypothesis. + + Returns + ------- + res : ContrastResults instance + The results for the test are attributes of this results instance. + + See also + -------- + statsmodels.stats.contrast.ContrastResults + f_test + t_test + patsy.DesignInfo.linear_constraint + + Notes + ----- + The matrix `r_matrix` is assumed to be non-singular. More precisely, + + r_matrix (pX pX.T) r_matrix.T + + is assumed invertible. Here, pX is the generalized inverse of the + design matrix of the model. There can be problems in non-OLS models + where the rank of the covariance of the noise is not full. + """ + if use_f is None: + #switch to use_t false if undefined + use_f = (hasattr(self, 'use_t') and self.use_t) + + from patsy import DesignInfo + names = self.model.data.param_names + LC = DesignInfo(names).linear_constraint(r_matrix) + r_matrix, q_matrix = LC.coefs, LC.constants + + if (self.normalized_cov_params is None and cov_p is None and + invcov is None and not hasattr(self, 'cov_params_default')): + raise ValueError('need covariance of parameters for computing ' + 'F statistics') + + cparams = np.dot(r_matrix, self.params[:, None]) + J = float(r_matrix.shape[0]) # number of restrictions + if q_matrix is None: + q_matrix = np.zeros(J) + else: + q_matrix = np.asarray(q_matrix) + if q_matrix.ndim == 1: + q_matrix = q_matrix[:, None] + if q_matrix.shape[0] != J: + raise ValueError("r_matrix and q_matrix must have the same " + "number of rows") + Rbq = cparams - q_matrix + if invcov is None: + cov_p = self.cov_params(r_matrix=r_matrix, cov_p=cov_p) + if np.isnan(cov_p).max(): + raise ValueError("r_matrix performs f_test for using " + "dimensions that are asymptotically " + "non-normal") + invcov = np.linalg.inv(cov_p) + + if (hasattr(self, 'mle_settings') and + self.mle_settings['optimizer'] in ['l1', 'l1_cvxopt_cp']): + F = nan_dot(nan_dot(Rbq.T, invcov), Rbq) + else: + F = np.dot(np.dot(Rbq.T, invcov), Rbq) + + df_resid = getattr(self, 'df_resid_inference', self.df_resid) + if use_f: + F /= J + return ContrastResults(F=F, df_denom=df_resid, + df_num=invcov.shape[0]) + else: + return ContrastResults(chi2=F, df_denom=J, statistic=F, + distribution='chi2', distargs=(J,)) + + + def wald_test_terms(self, skip_single=False, extra_constraints=None, + combine_terms=None): + """ + Compute a sequence of Wald tests for terms over multiple columns + + This computes joined Wald tests for the hypothesis that all + coefficients corresponding to a `term` are zero. + + `Terms` are defined by the underlying formula or by string matching. + + Parameters + ---------- + skip_single : boolean + If true, then terms that consist only of a single column and, + therefore, refers only to a single parameter is skipped. + If false, then all terms are included. + extra_constraints : ndarray + not tested yet + combine_terms : None or list of strings + Each string in this list is matched to the name of the terms or + the name of the exogenous variables. All columns whose name + includes that string are combined in one joint test. + + Returns + ------- + test_result : result instance + The result instance contains `table` which is a pandas DataFrame + with the test results: test statistic, degrees of freedom and + pvalues. + + Examples + -------- + >>> res_ols = ols("np.log(Days+1) ~ C(Duration, Sum)*C(Weight, Sum)", data).fit() + >>> res_ols.wald_test_terms() + + F P>F df constraint df denom + Intercept 279.754525 2.37985521351e-22 1 51 + C(Duration, Sum) 5.367071 0.0245738436636 1 51 + C(Weight, Sum) 12.432445 3.99943118767e-05 2 51 + C(Duration, Sum):C(Weight, Sum) 0.176002 0.83912310946 2 51 + + >>> res_poi = Poisson.from_formula("Days ~ C(Weight) * C(Duration)", + data).fit(cov_type='HC0') + >>> wt = res_poi.wald_test_terms(skip_single=False, + combine_terms=['Duration', 'Weight']) + >>> print(wt) + chi2 P>chi2 df constraint + Intercept 15.695625 7.43960374424e-05 1 + C(Weight) 16.132616 0.000313940174705 2 + C(Duration) 1.009147 0.315107378931 1 + C(Weight):C(Duration) 0.216694 0.897315972824 2 + Duration 11.187849 0.010752286833 3 + Weight 30.263368 4.32586407145e-06 4 + + """ + # lazy import + from collections import defaultdict + + result = self + if extra_constraints is None: + extra_constraints = [] + if combine_terms is None: + combine_terms = [] + design_info = getattr(result.model.data.orig_exog, 'design_info', None) + + if design_info is None and extra_constraints is None: + raise ValueError('no constraints, nothing to do') + + + identity = np.eye(len(result.params)) + constraints = [] + combined = defaultdict(list) + if design_info is not None: + for term in design_info.terms: + cols = design_info.slice(term) + name = term.name() + constraint_matrix = identity[cols] + + # check if in combined + for cname in combine_terms: + if cname in name: + combined[cname].append(constraint_matrix) + + k_constraint = constraint_matrix.shape[0] + if skip_single: + if k_constraint == 1: + continue + + constraints.append((name, constraint_matrix)) + + combined_constraints = [] + for cname in combine_terms: + combined_constraints.append((cname, np.vstack(combined[cname]))) + else: + # check by exog/params names if there is no formula info + for col, name in enumerate(result.model.exog_names): + constraint_matrix = identity[col] + + # check if in combined + for cname in combine_terms: + if cname in name: + combined[cname].append(constraint_matrix) + + if skip_single: + continue + + constraints.append((name, constraint_matrix)) + + combined_constraints = [] + for cname in combine_terms: + combined_constraints.append((cname, np.vstack(combined[cname]))) + + use_t = result.use_t + distribution = ['chi2', 'F'][use_t] + + res_wald = [] + index = [] + for name, constraint in constraints + combined_constraints + extra_constraints: + wt = result.wald_test(constraint) + row = [wt.statistic.item(), wt.pvalue, constraint.shape[0]] + if use_t: + row.append(wt.df_denom) + res_wald.append(row) + index.append(name) + + # distribution nerutral names + col_names = ['statistic', 'pvalue', 'df_constraint'] + if use_t: + col_names.append('df_denom') + # TODO: maybe move DataFrame creation to results class + from pandas import DataFrame + table = DataFrame(res_wald, index=index, columns=col_names) + res = WaldTestResults(None, distribution, None, table=table) + # TODO: remove temp again, added for testing + res.temp = constraints + combined_constraints + extra_constraints + return res + + + def conf_int(self, alpha=.05, cols=None, method='default'): + """ + Returns the confidence interval of the fitted parameters. + + Parameters + ---------- + alpha : float, optional + The significance level for the confidence interval. + ie., The default `alpha` = .05 returns a 95% confidence interval. + cols : array-like, optional + `cols` specifies which confidence intervals to return + method : string + Not Implemented Yet + Method to estimate the confidence_interval. + "Default" : uses self.bse which is based on inverse Hessian for MLE + "hjjh" : + "jac" : + "boot-bse" + "boot_quant" + "profile" + + + Returns + -------- + conf_int : array + Each row contains [lower, upper] limits of the confidence interval + for the corresponding parameter. The first column contains all + lower, the second column contains all upper limits. + + Examples + -------- + >>> import statsmodels.api as sm + >>> data = sm.datasets.longley.load() + >>> data.exog = sm.add_constant(data.exog) + >>> results = sm.OLS(data.endog, data.exog).fit() + >>> results.conf_int() + array([[-5496529.48322745, -1467987.78596704], + [ -177.02903529, 207.15277984], + [ -0.1115811 , 0.03994274], + [ -3.12506664, -0.91539297], + [ -1.5179487 , -0.54850503], + [ -0.56251721, 0.460309 ], + [ 798.7875153 , 2859.51541392]]) + + + >>> results.conf_int(cols=(2,3)) + array([[-0.1115811 , 0.03994274], + [-3.12506664, -0.91539297]]) + + Notes + ----- + The confidence interval is based on the standard normal distribution. + Models wish to use a different distribution should overwrite this + method. + """ + bse = self.bse + + if self.use_t: + dist = stats.t + df_resid = getattr(self, 'df_resid_inference', self.df_resid) + q = dist.ppf(1 - alpha / 2, df_resid) + else: + dist = stats.norm + q = dist.ppf(1 - alpha / 2) + + if cols is None: + lower = self.params - q * bse + upper = self.params + q * bse + else: + cols = np.asarray(cols) + lower = self.params[cols] - q * bse[cols] + upper = self.params[cols] + q * bse[cols] + return np.asarray(lzip(lower, upper)) + + def save(self, fname, remove_data=False): + ''' + save a pickle of this instance + + Parameters + ---------- + fname : string or filehandle + fname can be a string to a file path or filename, or a filehandle. + remove_data : bool + If False (default), then the instance is pickled without changes. + If True, then all arrays with length nobs are set to None before + pickling. See the remove_data method. + In some cases not all arrays will be set to None. + + Notes + ----- + If remove_data is true and the model result does not implement a + remove_data method then this will raise an exception. + + ''' + + from statsmodels.iolib.smpickle import save_pickle + + if remove_data: + self.remove_data() + + save_pickle(self, fname) + + @classmethod + def load(cls, fname): + ''' + load a pickle, (class method) + + Parameters + ---------- + fname : string or filehandle + fname can be a string to a file path or filename, or a filehandle. + + Returns + ------- + unpickled instance + + ''' + + from statsmodels.iolib.smpickle import load_pickle + return load_pickle(fname) + + def remove_data(self): + '''remove data arrays, all nobs arrays from result and model + + This reduces the size of the instance, so it can be pickled with less + memory. Currently tested for use with predict from an unpickled + results and model instance. + + .. warning:: Since data and some intermediate results have been removed + calculating new statistics that require them will raise exceptions. + The exception will occur the first time an attribute is accessed + that has been set to None. + + Not fully tested for time series models, tsa, and might delete too much + for prediction or not all that would be possible. + + The lists of arrays to delete are maintained as attributes of + the result and model instance, except for cached values. These + lists could be changed before calling remove_data. + + The attributes to remove are named in: + + model._data_attr : arrays attached to both the model instance + and the results instance with the same attribute name. + + result.data_in_cache : arrays that may exist as values in + result._cache (TODO : should privatize name) + + result._data_attr_model : arrays attached to the model + instance but not to the results instance + ''' + def wipe(obj, att): + #get to last element in attribute path + p = att.split('.') + att_ = p.pop(-1) + try: + obj_ = reduce(getattr, [obj] + p) + + #print(repr(obj), repr(att)) + #print(hasattr(obj_, att_)) + if hasattr(obj_, att_): + #print('removing3', att_) + setattr(obj_, att_, None) + except AttributeError: + pass + + model_only = ['model.' + i for i in getattr(self, "_data_attr_model", [])] + model_attr = ['model.' + i for i in self.model._data_attr] + for att in self._data_attr + model_attr + model_only: + #print('removing', att) + wipe(self, att) + + data_in_cache = getattr(self, 'data_in_cache', []) + data_in_cache += ['fittedvalues', 'resid', 'wresid'] + for key in data_in_cache: + try: + self._cache[key] = None + except (AttributeError, KeyError): + pass + + +class LikelihoodResultsWrapper(wrap.ResultsWrapper): + _attrs = { + 'params': 'columns', + 'bse': 'columns', + 'pvalues': 'columns', + 'tvalues': 'columns', + 'resid': 'rows', + 'fittedvalues': 'rows', + 'normalized_cov_params': 'cov', + } + + _wrap_attrs = _attrs + _wrap_methods = { + 'cov_params': 'cov', + 'conf_int': 'columns' + } + +wrap.populate_wrapper(LikelihoodResultsWrapper, + LikelihoodModelResults) + + +class ResultMixin(object): + + @cache_readonly + def df_modelwc(self): + # collect different ways of defining the number of parameters, used for + # aic, bic + if hasattr(self, 'df_model'): + if hasattr(self, 'hasconst'): + hasconst = self.hasconst + else: + # default assumption + hasconst = 1 + return self.df_model + hasconst + else: + return self.params.size + + @cache_readonly + def aic(self): + return -2 * self.llf + 2 * (self.df_modelwc) + + @cache_readonly + def bic(self): + return -2 * self.llf + np.log(self.nobs) * (self.df_modelwc) + + @cache_readonly + def score_obsv(self): + '''cached Jacobian of log-likelihood + ''' + return self.model.score_obs(self.params) + + jacv = np.deprecate(score_obsv, 'jacv', 'score_obsv', + "Use score_obsv attribute." + " jacv will be removed in 0.7.") + + @cache_readonly + def hessv(self): + '''cached Hessian of log-likelihood + ''' + return self.model.hessian(self.params) + + @cache_readonly + def covjac(self): + ''' + covariance of parameters based on outer product of jacobian of + log-likelihood + + ''' + ## if not hasattr(self, '_results'): + ## raise ValueError('need to call fit first') + ## #self.fit() + ## self.jacv = jacv = self.jac(self._results.params) + jacv = self.score_obsv + return np.linalg.inv(np.dot(jacv.T, jacv)) + + @cache_readonly + def covjhj(self): + '''covariance of parameters based on HJJH + + dot product of Hessian, Jacobian, Jacobian, Hessian of likelihood + + name should be covhjh + ''' + jacv = self.score_obsv + hessv = self.hessv + hessinv = np.linalg.inv(hessv) + ## self.hessinv = hessin = self.cov_params() + return np.dot(hessinv, np.dot(np.dot(jacv.T, jacv), hessinv)) + + @cache_readonly + def bsejhj(self): + '''standard deviation of parameter estimates based on covHJH + ''' + return np.sqrt(np.diag(self.covjhj)) + + @cache_readonly + def bsejac(self): + '''standard deviation of parameter estimates based on covjac + ''' + return np.sqrt(np.diag(self.covjac)) + + def bootstrap(self, nrep=100, method='nm', disp=0, store=1): + """simple bootstrap to get mean and variance of estimator + + see notes + + Parameters + ---------- + nrep : int + number of bootstrap replications + method : str + optimization method to use + disp : bool + If true, then optimization prints results + store : bool + If true, then parameter estimates for all bootstrap iterations + are attached in self.bootstrap_results + + Returns + ------- + mean : array + mean of parameter estimates over bootstrap replications + std : array + standard deviation of parameter estimates over bootstrap + replications + + Notes + ----- + This was mainly written to compare estimators of the standard errors of + the parameter estimates. It uses independent random sampling from the + original endog and exog, and therefore is only correct if observations + are independently distributed. + + This will be moved to apply only to models with independently + distributed observations. + """ + results = [] + print(self.model.__class__) + hascloneattr = True if hasattr(self, 'cloneattr') else False + for i in range(nrep): + rvsind = np.random.randint(self.nobs, size=self.nobs) + #this needs to set startparam and get other defining attributes + #need a clone method on model + fitmod = self.model.__class__(self.endog[rvsind], + self.exog[rvsind, :]) + if hascloneattr: + for attr in self.model.cloneattr: + setattr(fitmod, attr, getattr(self.model, attr)) + + fitres = fitmod.fit(method=method, disp=disp) + results.append(fitres.params) + results = np.array(results) + if store: + self.bootstrap_results = results + return results.mean(0), results.std(0), results + + def get_nlfun(self, fun): + #I think this is supposed to get the delta method that is currently + #in miscmodels count (as part of Poisson example) + pass + + +class GenericLikelihoodModelResults(LikelihoodModelResults, ResultMixin): + """ + A results class for the discrete dependent variable models. + + ..Warning : + + The following description has not been updated to this version/class. + Where are AIC, BIC, ....? docstring looks like copy from discretemod + + Parameters + ---------- + model : A DiscreteModel instance + mlefit : instance of LikelihoodResults + This contains the numerical optimization results as returned by + LikelihoodModel.fit(), in a superclass of GnericLikelihoodModels + + + Returns + ------- + *Attributes* + + Warning most of these are not available yet + + aic : float + Akaike information criterion. -2*(`llf` - p) where p is the number + of regressors including the intercept. + bic : float + Bayesian information criterion. -2*`llf` + ln(`nobs`)*p where p is the + number of regressors including the intercept. + bse : array + The standard errors of the coefficients. + df_resid : float + See model definition. + df_model : float + See model definition. + fitted_values : array + Linear predictor XB. + llf : float + Value of the loglikelihood + llnull : float + Value of the constant-only loglikelihood + llr : float + Likelihood ratio chi-squared statistic; -2*(`llnull` - `llf`) + llr_pvalue : float + The chi-squared probability of getting a log-likelihood ratio + statistic greater than llr. llr has a chi-squared distribution + with degrees of freedom `df_model`. + prsquared : float + McFadden's pseudo-R-squared. 1 - (`llf`/`llnull`) + + """ + + def __init__(self, model, mlefit): + self.model = model + self.endog = model.endog + self.exog = model.exog + self.nobs = model.endog.shape[0] + + # TODO: possibly move to model.fit() + # and outsource together with patching names + if hasattr(model, 'df_model'): + self.df_model = model.df_model + else: + self.df_model = len(mlefit.params) + # retrofitting the model, used in t_test TODO: check design + self.model.df_model = self.df_model + + if hasattr(model, 'df_resid'): + self.df_resid = model.df_resid + else: + self.df_resid = self.endog.shape[0] - self.df_model + # retrofitting the model, used in t_test TODO: check design + self.model.df_resid = self.df_resid + + self._cache = resettable_cache() + self.__dict__.update(mlefit.__dict__) + + def summary(self, yname=None, xname=None, title=None, alpha=.05): + """Summarize the Regression Results + + Parameters + ----------- + yname : string, optional + Default is `y` + xname : list of strings, optional + Default is `var_##` for ## in p the number of regressors + title : string, optional + Title for the top table. If not None, then this replaces the + default title + alpha : float + significance level for the confidence intervals + + Returns + ------- + smry : Summary instance + this holds the summary tables and text, which can be printed or + converted to various output formats. + + See Also + -------- + statsmodels.iolib.summary.Summary : class to hold summary + results + + """ + + top_left = [('Dep. Variable:', None), + ('Model:', None), + ('Method:', ['Maximum Likelihood']), + ('Date:', None), + ('Time:', None), + ('No. Observations:', None), + ('Df Residuals:', None), # [self.df_resid]), + ('Df Model:', None), # [self.df_model]) + ] + + top_right = [ # ('R-squared:', ["%#8.3f" % self.rsquared]), + # ('Adj. R-squared:', ["%#8.3f" % self.rsquared_adj]), + # ('F-statistic:', ["%#8.4g" % self.fvalue] ), + # ('Prob (F-statistic):', ["%#6.3g" % self.f_pvalue]), + ('Log-Likelihood:', None), # ["%#6.4g" % self.llf]), + ('AIC:', ["%#8.4g" % self.aic]), + ('BIC:', ["%#8.4g" % self.bic]) + ] + + if title is None: + title = self.model.__class__.__name__ + ' ' + "Results" + + #create summary table instance + from statsmodels.iolib.summary import Summary + smry = Summary() + smry.add_table_2cols(self, gleft=top_left, gright=top_right, + yname=yname, xname=xname, title=title) + smry.add_table_params(self, yname=yname, xname=xname, alpha=alpha, + use_t=False) + + return smry diff --git a/statsmodels/base/optimizer.py b/statsmodels/base/optimizer.py new file mode 100644 index 0000000..37528f9 --- /dev/null +++ b/statsmodels/base/optimizer.py @@ -0,0 +1,553 @@ +""" +Functions that are general enough to use for any model fitting. The idea is +to untie these from LikelihoodModel so that they may be re-used generally. +""" +from __future__ import print_function +import distutils.version + +from scipy import __version__ as scipy_version +import numpy as np +from scipy import optimize + +def _check_method(method, methods): + if method not in methods: + message = "Unknown fit method %s" % method + raise ValueError(message) + + +class Optimizer(object): + + def _fit(self, objective, gradient, start_params, fargs, kwargs, + hessian=None, method='newton', maxiter=100, full_output=True, + disp=True, callback=None, retall=False): + """ + Fit function for any model with an objective function. + + Parameters + ---------- + start_params : array-like, optional + Initial guess of the solution for the loglikelihood maximization. + The default is an array of zeros. + method : str {'newton','nm','bfgs','powell','cg','ncg','basinhopping'} + Method can be 'newton' for Newton-Raphson, 'nm' for Nelder-Mead, + 'bfgs' for Broyden-Fletcher-Goldfarb-Shanno, 'powell' for modified + Powell's method, 'cg' for conjugate gradient, 'ncg' for Newton- + conjugate gradient or 'basinhopping' for global basin-hopping + solver, if available. `method` determines which solver from + scipy.optimize is used. The explicit arguments in `fit` are passed + to the solver, with the exception of the basin-hopping solver. Each + solver has several optional arguments that are not the same across + solvers. See the notes section below (or scipy.optimize) for the + available arguments and for the list of explicit arguments that the + basin-hopping solver supports.. + maxiter : int + The maximum number of iterations to perform. + full_output : bool + Set to True to have all available output in the Results object's + mle_retvals attribute. The output is dependent on the solver. + See LikelihoodModelResults notes section for more information. + disp : bool + Set to True to print convergence messages. + fargs : tuple + Extra arguments passed to the likelihood function, i.e., + loglike(x,*args) + callback : callable callback(xk) + Called after each iteration, as callback(xk), where xk is the + current parameter vector. + retall : bool + Set to True to return list of solutions at each iteration. + Available in Results object's mle_retvals attribute. + + Returns + ------- + xopt : array + The solution to the objective function + retvals : dict, None + If `full_output` is True then this is a dictionary which holds + information returned from the solver used. If it is False, this is + None. + optim_settings : dict + A dictionary that contains the parameters passed to the solver. + + Notes + ----- + The 'basinhopping' solver ignores `maxiter`, `retall`, `full_output` + explicit arguments. + + Optional arguments for the solvers (available in Results.mle_settings):: + + 'newton' + tol : float + Relative error in params acceptable for convergence. + 'nm' -- Nelder Mead + xtol : float + Relative error in params acceptable for convergence + ftol : float + Relative error in loglike(params) acceptable for + convergence + maxfun : int + Maximum number of function evaluations to make. + 'bfgs' + gtol : float + Stop when norm of gradient is less than gtol. + norm : float + Order of norm (np.Inf is max, -np.Inf is min) + epsilon + If fprime is approximated, use this value for the step + size. Only relevant if LikelihoodModel.score is None. + 'cg' + gtol : float + Stop when norm of gradient is less than gtol. + norm : float + Order of norm (np.Inf is max, -np.Inf is min) + epsilon : float + If fprime is approximated, use this value for the step + size. Can be scalar or vector. Only relevant if + Likelihoodmodel.score is None. + 'ncg' + fhess_p : callable f'(x,*args) + Function which computes the Hessian of f times an arbitrary + vector, p. Should only be supplied if + LikelihoodModel.hessian is None. + avextol : float + Stop when the average relative error in the minimizer + falls below this amount. + epsilon : float or ndarray + If fhess is approximated, use this value for the step size. + Only relevant if Likelihoodmodel.hessian is None. + 'powell' + xtol : float + Line-search error tolerance + ftol : float + Relative error in loglike(params) for acceptable for + convergence. + maxfun : int + Maximum number of function evaluations to make. + start_direc : ndarray + Initial direction set. + 'basinhopping' + niter : integer + The number of basin hopping iterations. + niter_success : integer + Stop the run if the global minimum candidate remains the + same for this number of iterations. + T : float + The "temperature" parameter for the accept or reject + criterion. Higher "temperatures" mean that larger jumps + in function value will be accepted. For best results + `T` should be comparable to the separation (in function + value) between local minima. + stepsize : float + Initial step size for use in the random displacement. + interval : integer + The interval for how often to update the `stepsize`. + minimizer : dict + Extra keyword arguments to be passed to the minimizer + `scipy.optimize.minimize()`, for example 'method' - the + minimization method (e.g. 'L-BFGS-B'), or 'tol' - the + tolerance for termination. Other arguments are mapped from + explicit argument of `fit`: + - `args` <- `fargs` + - `jac` <- `score` + - `hess` <- `hess` + """ + #TODO: generalize the regularization stuff + # Extract kwargs specific to fit_regularized calling fit + extra_fit_funcs = kwargs.setdefault('extra_fit_funcs', dict()) + + methods = ['newton', 'nm', 'bfgs', 'lbfgs', 'powell', 'cg', 'ncg', + 'basinhopping'] + methods += extra_fit_funcs.keys() + method = method.lower() + _check_method(method, methods) + + fit_funcs = { + 'newton': _fit_newton, + 'nm': _fit_nm, # Nelder-Mead + 'bfgs': _fit_bfgs, + 'lbfgs': _fit_lbfgs, + 'cg': _fit_cg, + 'ncg': _fit_ncg, + 'powell': _fit_powell, + 'basinhopping': _fit_basinhopping, + } + + #NOTE: fit_regularized checks the methods for these but it should be + # moved up probably + if extra_fit_funcs: + fit_funcs.update(extra_fit_funcs) + + func = fit_funcs[method] + xopt, retvals = func(objective, gradient, start_params, fargs, kwargs, + disp=disp, maxiter=maxiter, callback=callback, + retall=retall, full_output=full_output, + hess=hessian) + + optim_settings = {'optimizer': method, 'start_params': start_params, + 'maxiter': maxiter, 'full_output': full_output, + 'disp': disp, 'fargs': fargs, 'callback': callback, + 'retall': retall} + optim_settings.update(kwargs) + # set as attributes or return? + return xopt, retvals, optim_settings + + def _fit_constrained(self, params): + """ + TODO: how to add constraints? + + Something like + sm.add_constraint(Model, func) + + or + + model_instance.add_constraint(func) + model_instance.add_constraint("x1 + x2 = 2") + result = model_instance.fit() + """ + pass + + + def _fit_regularized(self, params): + #TODO: code won't necessarily be general here. 3 options. + # 1) setup for scipy.optimize.fmin_sqlsqp + # 2) setup for cvxopt + # 3) setup for openopt + pass + +######################################## +# Helper functions to fit + +def _fit_newton(f, score, start_params, fargs, kwargs, disp=True, + maxiter=100, callback=None, retall=False, + full_output=True, hess=None, ridge_factor=1e-10): + tol = kwargs.setdefault('tol', 1e-8) + iterations = 0 + oldparams = np.inf + newparams = np.asarray(start_params) + if retall: + history = [oldparams, newparams] + while (iterations < maxiter and np.any(np.abs(newparams - + oldparams) > tol)): + H = np.asarray(hess(newparams)) + # regularize Hessian, not clear what ridge factor should be + # keyword option with absolute default 1e-10, see #1847 + if not np.all(ridge_factor == 0): + H[np.diag_indices(H.shape[0])] += ridge_factor + oldparams = newparams + newparams = oldparams - np.dot(np.linalg.inv(H), + score(oldparams)) + if retall: + history.append(newparams) + if callback is not None: + callback(newparams) + iterations += 1 + fval = f(newparams, *fargs) # this is the negative likelihood + if iterations == maxiter: + warnflag = 1 + if disp: + print("Warning: Maximum number of iterations has been " + "exceeded.") + print(" Current function value: %f" % fval) + print(" Iterations: %d" % iterations) + else: + warnflag = 0 + if disp: + print("Optimization terminated successfully.") + print(" Current function value: %f" % fval) + print(" Iterations %d" % iterations) + if full_output: + (xopt, fopt, niter, + gopt, hopt) = (newparams, f(newparams, *fargs), + iterations, score(newparams), + hess(newparams)) + converged = not warnflag + retvals = {'fopt': fopt, 'iterations': niter, 'score': gopt, + 'Hessian': hopt, 'warnflag': warnflag, + 'converged': converged} + if retall: + retvals.update({'allvecs': history}) + + else: + xopt = newparams + retvals = None + + return xopt, retvals + + +def _fit_bfgs(f, score, start_params, fargs, kwargs, disp=True, + maxiter=100, callback=None, retall=False, + full_output=True, hess=None): + gtol = kwargs.setdefault('gtol', 1.0000000000000001e-05) + norm = kwargs.setdefault('norm', np.Inf) + epsilon = kwargs.setdefault('epsilon', 1.4901161193847656e-08) + retvals = optimize.fmin_bfgs(f, start_params, score, args=fargs, + gtol=gtol, norm=norm, epsilon=epsilon, + maxiter=maxiter, full_output=full_output, + disp=disp, retall=retall, callback=callback) + if full_output: + if not retall: + xopt, fopt, gopt, Hinv, fcalls, gcalls, warnflag = retvals + else: + (xopt, fopt, gopt, Hinv, fcalls, + gcalls, warnflag, allvecs) = retvals + converged = not warnflag + retvals = {'fopt': fopt, 'gopt': gopt, 'Hinv': Hinv, + 'fcalls': fcalls, 'gcalls': gcalls, 'warnflag': + warnflag, 'converged': converged} + if retall: + retvals.update({'allvecs': allvecs}) + else: + xopt = retvals + retvals = None + + return xopt, retvals + + +def _fit_lbfgs(f, score, start_params, fargs, kwargs, disp=True, + maxiter=100, callback=None, retall=False, + full_output=True, hess=None): + """ + Parameters + ---------- + f : function + Returns negative log likelihood given parameters. + score : function + Returns gradient of negative log likelihood with respect to params. + + Notes + ----- + Within the mle part of statsmodels, the log likelihood function and + its gradient with respect to the parameters do not have notationally + consistent sign. + """ + + # Use unconstrained optimization by default. + bounds = kwargs.setdefault('bounds', [(None, None)] * len(start_params)) + kwargs.setdefault('iprint', 0) + + # Pass the following keyword argument names through to fmin_l_bfgs_b + # if they are present in kwargs, otherwise use the fmin_l_bfgs_b + # default values. + names = ('m', 'pgtol', 'factr', 'maxfun', 'epsilon', 'approx_grad') + extra_kwargs = dict((x, kwargs[x]) for x in names if x in kwargs) + + # Extract values for the options related to the gradient. + approx_grad = kwargs.get('approx_grad', False) + loglike_and_score = kwargs.get('loglike_and_score', None) + epsilon = kwargs.get('epsilon', None) + + # The approx_grad flag has superpowers nullifying the score function arg. + if approx_grad: + score = None + + # Choose among three options for dealing with the gradient (the gradient + # of a log likelihood function with respect to its parameters + # is more specifically called the score in statistics terminology). + # The first option is to use the finite-differences + # approximation that is built into the fmin_l_bfgs_b optimizer. + # The second option is to use the provided score function. + # The third option is to use the score component of a provided + # function that simultaneously evaluates the log likelihood and score. + if epsilon and not approx_grad: + raise ValueError('a finite-differences epsilon was provided ' + 'even though we are not using approx_grad') + if approx_grad and loglike_and_score: + raise ValueError('gradient approximation was requested ' + 'even though an analytic loglike_and_score function ' + 'was given') + if loglike_and_score: + func = lambda p, *a : tuple(-x for x in loglike_and_score(p, *a)) + elif score: + func = f + extra_kwargs['fprime'] = score + elif approx_grad: + func = f + + # Customize the fmin_l_bfgs_b call according to the scipy version. + # Old scipy does not support maxiter and callback. + scipy_version_curr = distutils.version.LooseVersion(scipy_version) + scipy_version_12 = distutils.version.LooseVersion('0.12.0') + if scipy_version_curr < scipy_version_12: + retvals = optimize.fmin_l_bfgs_b(func, start_params, args=fargs, + bounds=bounds, disp=disp, + **extra_kwargs) + else: + retvals = optimize.fmin_l_bfgs_b(func, start_params, maxiter=maxiter, + callback=callback, args=fargs, + bounds=bounds, disp=disp, + **extra_kwargs) + + if full_output: + xopt, fopt, d = retvals + # The warnflag is + # 0 if converged + # 1 if too many function evaluations or too many iterations + # 2 if stopped for another reason, given in d['task'] + warnflag = d['warnflag'] + converged = (warnflag == 0) + gopt = d['grad'] + fcalls = d['funcalls'] + retvals = {'fopt': fopt, 'gopt': gopt, 'fcalls': fcalls, + 'warnflag': warnflag, 'converged': converged} + else: + xopt = retvals[0] + retvals = None + + return xopt, retvals + + +def _fit_nm(f, score, start_params, fargs, kwargs, disp=True, + maxiter=100, callback=None, retall=False, + full_output=True, hess=None): + xtol = kwargs.setdefault('xtol', 0.0001) + ftol = kwargs.setdefault('ftol', 0.0001) + maxfun = kwargs.setdefault('maxfun', None) + retvals = optimize.fmin(f, start_params, args=fargs, xtol=xtol, + ftol=ftol, maxiter=maxiter, maxfun=maxfun, + full_output=full_output, disp=disp, retall=retall, + callback=callback) + if full_output: + if not retall: + xopt, fopt, niter, fcalls, warnflag = retvals + else: + xopt, fopt, niter, fcalls, warnflag, allvecs = retvals + converged = not warnflag + retvals = {'fopt': fopt, 'iterations': niter, + 'fcalls': fcalls, 'warnflag': warnflag, + 'converged': converged} + if retall: + retvals.update({'allvecs': allvecs}) + else: + xopt = retvals + retvals = None + + return xopt, retvals + + +def _fit_cg(f, score, start_params, fargs, kwargs, disp=True, + maxiter=100, callback=None, retall=False, + full_output=True, hess=None): + gtol = kwargs.setdefault('gtol', 1.0000000000000001e-05) + norm = kwargs.setdefault('norm', np.Inf) + epsilon = kwargs.setdefault('epsilon', 1.4901161193847656e-08) + retvals = optimize.fmin_cg(f, start_params, score, gtol=gtol, norm=norm, + epsilon=epsilon, maxiter=maxiter, + full_output=full_output, disp=disp, + retall=retall, callback=callback) + if full_output: + if not retall: + xopt, fopt, fcalls, gcalls, warnflag = retvals + else: + xopt, fopt, fcalls, gcalls, warnflag, allvecs = retvals + converged = not warnflag + retvals = {'fopt': fopt, 'fcalls': fcalls, 'gcalls': gcalls, + 'warnflag': warnflag, 'converged': converged} + if retall: + retvals.update({'allvecs': allvecs}) + + else: + xopt = retvals + retvals = None + + return xopt, retvals + + +def _fit_ncg(f, score, start_params, fargs, kwargs, disp=True, + maxiter=100, callback=None, retall=False, + full_output=True, hess=None): + fhess_p = kwargs.setdefault('fhess_p', None) + avextol = kwargs.setdefault('avextol', 1.0000000000000001e-05) + epsilon = kwargs.setdefault('epsilon', 1.4901161193847656e-08) + retvals = optimize.fmin_ncg(f, start_params, score, fhess_p=fhess_p, + fhess=hess, args=fargs, avextol=avextol, + epsilon=epsilon, maxiter=maxiter, + full_output=full_output, disp=disp, + retall=retall, callback=callback) + if full_output: + if not retall: + xopt, fopt, fcalls, gcalls, hcalls, warnflag = retvals + else: + xopt, fopt, fcalls, gcalls, hcalls, warnflag, allvecs =\ + retvals + converged = not warnflag + retvals = {'fopt': fopt, 'fcalls': fcalls, 'gcalls': gcalls, + 'hcalls': hcalls, 'warnflag': warnflag, + 'converged': converged} + if retall: + retvals.update({'allvecs': allvecs}) + else: + xopt = retvals + retvals = None + + return xopt, retvals + + +def _fit_powell(f, score, start_params, fargs, kwargs, disp=True, + maxiter=100, callback=None, retall=False, + full_output=True, hess=None): + xtol = kwargs.setdefault('xtol', 0.0001) + ftol = kwargs.setdefault('ftol', 0.0001) + maxfun = kwargs.setdefault('maxfun', None) + start_direc = kwargs.setdefault('start_direc', None) + retvals = optimize.fmin_powell(f, start_params, args=fargs, xtol=xtol, + ftol=ftol, maxiter=maxiter, maxfun=maxfun, + full_output=full_output, disp=disp, + retall=retall, callback=callback, + direc=start_direc) + if full_output: + if not retall: + xopt, fopt, direc, niter, fcalls, warnflag = retvals + else: + xopt, fopt, direc, niter, fcalls, warnflag, allvecs =\ + retvals + converged = not warnflag + retvals = {'fopt': fopt, 'direc': direc, 'iterations': niter, + 'fcalls': fcalls, 'warnflag': warnflag, + 'converged': converged} + if retall: + retvals.update({'allvecs': allvecs}) + else: + xopt = retvals + retvals = None + + return xopt, retvals + + +def _fit_basinhopping(f, score, start_params, fargs, kwargs, disp=True, + maxiter=100, callback=None, retall=False, + full_output=True, hess=None): + if not 'basinhopping' in vars(optimize): + msg = 'basinhopping solver is not available, use e.g. bfgs instead!' + raise ValueError(msg) + + from copy import copy + kwargs = copy(kwargs) + niter = kwargs.setdefault('niter', 100) + niter_success = kwargs.setdefault('niter_success', None) + T = kwargs.setdefault('T', 1.0) + stepsize = kwargs.setdefault('stepsize', 0.5) + interval = kwargs.setdefault('interval', 50) + minimizer_kwargs = kwargs.get('minimizer', {}) + minimizer_kwargs['args'] = fargs + minimizer_kwargs['jac'] = score + method = minimizer_kwargs.get('method', None) + if method and method != 'L-BFGS-B': # l_bfgs_b doesn't take a hessian + minimizer_kwargs['hess'] = hess + + retvals = optimize.basinhopping(f, start_params, + minimizer_kwargs=minimizer_kwargs, + niter=niter, niter_success=niter_success, + T=T, stepsize=stepsize, disp=disp, + callback=callback, interval=interval) + if full_output: + xopt, fopt, niter, fcalls = map(lambda x : getattr(retvals, x), + ['x', 'fun', 'nit', 'nfev']) + converged = 'completed successfully' in retvals.message[0] + retvals = {'fopt': fopt, 'iterations': niter, + 'fcalls': fcalls, 'converged': converged} + + else: + xopt = retvals.x + retvals = None + + return xopt, retvals diff --git a/statsmodels/base/tests/__init__.py b/statsmodels/base/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/base/tests/test_data.py b/statsmodels/base/tests/test_data.py new file mode 100644 index 0000000..9dac822 --- /dev/null +++ b/statsmodels/base/tests/test_data.py @@ -0,0 +1,893 @@ +import numpy as np +from numpy.testing import assert_equal, assert_, assert_raises +import pandas +import pandas.util.testing as ptesting + +from statsmodels.base import data as sm_data +from statsmodels.formula import handle_formula_data + +#class TestDates(object): +# @classmethod +# def setupClass(cls): +# nrows = 10 +# cls.dates_result = cls.dates_results = np.random.random(nrows) +# +# def test_dates(self): +# np.testing.assert_equal(data.wrap_output(self.dates_input, 'dates'), +# self.dates_result) + +class TestArrays(object): + @classmethod + def setupClass(cls): + cls.endog = np.random.random(10) + cls.exog = np.c_[np.ones(10), np.random.random((10,2))] + cls.data = sm_data.handle_data(cls.endog, cls.exog) + nrows = 10 + nvars = 3 + cls.col_result = cls.col_input = np.random.random(nvars) + cls.row_result = cls.row_input = np.random.random(nrows) + cls.cov_result = cls.cov_input = np.random.random((nvars, nvars)) + cls.xnames = ['const', 'x1', 'x2'] + cls.ynames = 'y' + cls.row_labels = None + + def test_orig(self): + np.testing.assert_equal(self.data.orig_endog, self.endog) + np.testing.assert_equal(self.data.orig_exog, self.exog) + + def test_endogexog(self): + np.testing.assert_equal(self.data.endog, self.endog) + np.testing.assert_equal(self.data.exog, self.exog) + + def test_attach(self): + data = self.data + # this makes sure what the wrappers need work but not the wrapped + # results themselves + np.testing.assert_equal(data.wrap_output(self.col_input, 'columns'), + self.col_result) + np.testing.assert_equal(data.wrap_output(self.row_input, 'rows'), + self.row_result) + np.testing.assert_equal(data.wrap_output(self.cov_input, 'cov'), + self.cov_result) + + def test_names(self): + data = self.data + np.testing.assert_equal(data.xnames, self.xnames) + np.testing.assert_equal(data.ynames, self.ynames) + + def test_labels(self): + #HACK: because numpy master after NA stuff assert_equal fails on + # pandas indices + np.testing.assert_(np.all(self.data.row_labels == self.row_labels)) + + +class TestArrays2dEndog(TestArrays): + @classmethod + def setupClass(cls): + super(TestArrays2dEndog, cls).setupClass() + cls.endog = np.random.random((10,1)) + cls.exog = np.c_[np.ones(10), np.random.random((10,2))] + cls.data = sm_data.handle_data(cls.endog, cls.exog) + #cls.endog = endog.squeeze() + + def test_endogexog(self): + np.testing.assert_equal(self.data.endog, self.endog.squeeze()) + np.testing.assert_equal(self.data.exog, self.exog) + + +class TestArrays1dExog(TestArrays): + @classmethod + def setupClass(cls): + super(TestArrays1dExog, cls).setupClass() + cls.endog = np.random.random(10) + exog = np.random.random(10) + cls.data = sm_data.handle_data(cls.endog, exog) + cls.exog = exog[:,None] + cls.xnames = ['x1'] + cls.ynames = 'y' + + def test_orig(self): + np.testing.assert_equal(self.data.orig_endog, self.endog) + np.testing.assert_equal(self.data.orig_exog, self.exog.squeeze()) + + +class TestDataFrames(TestArrays): + @classmethod + def setupClass(cls): + cls.endog = pandas.DataFrame(np.random.random(10), columns=['y_1']) + exog = pandas.DataFrame(np.random.random((10,2)), + columns=['x_1','x_2']) + exog.insert(0, 'const', 1) + cls.exog = exog + cls.data = sm_data.handle_data(cls.endog, cls.exog) + nrows = 10 + nvars = 3 + cls.col_input = np.random.random(nvars) + cls.col_result = pandas.Series(cls.col_input, + index=exog.columns) + cls.row_input = np.random.random(nrows) + cls.row_result = pandas.Series(cls.row_input, + index=exog.index) + cls.cov_input = np.random.random((nvars, nvars)) + cls.cov_result = pandas.DataFrame(cls.cov_input, + index = exog.columns, + columns = exog.columns) + cls.xnames = ['const', 'x_1', 'x_2'] + cls.ynames = 'y_1' + cls.row_labels = cls.exog.index + + def test_orig(self): + ptesting.assert_frame_equal(self.data.orig_endog, self.endog) + ptesting.assert_frame_equal(self.data.orig_exog, self.exog) + + def test_endogexog(self): + np.testing.assert_equal(self.data.endog, self.endog.values.squeeze()) + np.testing.assert_equal(self.data.exog, self.exog.values) + + def test_attach(self): + data = self.data + # this makes sure what the wrappers need work but not the wrapped + # results themselves + ptesting.assert_series_equal(data.wrap_output(self.col_input, + 'columns'), + self.col_result) + ptesting.assert_series_equal(data.wrap_output(self.row_input, 'rows'), + self.row_result) + ptesting.assert_frame_equal(data.wrap_output(self.cov_input, 'cov'), + self.cov_result) + + +class TestLists(TestArrays): + @classmethod + def setupClass(cls): + super(TestLists, cls).setupClass() + cls.endog = np.random.random(10).tolist() + cls.exog = np.c_[np.ones(10), np.random.random((10,2))].tolist() + cls.data = sm_data.handle_data(cls.endog, cls.exog) + + +class TestRecarrays(TestArrays): + @classmethod + def setupClass(cls): + super(TestRecarrays, cls).setupClass() + cls.endog = np.random.random(9).view([('y_1', + 'f8')]).view(np.recarray) + exog = np.random.random(9*3).view([('const', 'f8'),('x_1', 'f8'), + ('x_2', 'f8')]).view(np.recarray) + exog['const'] = 1 + cls.exog = exog + cls.data = sm_data.handle_data(cls.endog, cls.exog) + cls.xnames = ['const', 'x_1', 'x_2'] + cls.ynames = 'y_1' + + def test_endogexog(self): + np.testing.assert_equal(self.data.endog, self.endog.view(float, type=np.ndarray)) + np.testing.assert_equal(self.data.exog, self.exog.view((float, 3), type=np.ndarray)) + + +class TestStructarrays(TestArrays): + @classmethod + def setupClass(cls): + super(TestStructarrays, cls).setupClass() + cls.endog = np.random.random(9).view([('y_1', + 'f8')]).view(np.recarray) + exog = np.random.random(9*3).view([('const', 'f8'),('x_1', 'f8'), + ('x_2', 'f8')]).view(np.recarray) + exog['const'] = 1 + cls.exog = exog + cls.data = sm_data.handle_data(cls.endog, cls.exog) + cls.xnames = ['const', 'x_1', 'x_2'] + cls.ynames = 'y_1' + + def test_endogexog(self): + np.testing.assert_equal(self.data.endog, self.endog.view(float, type=np.ndarray)) + np.testing.assert_equal(self.data.exog, self.exog.view((float,3), type=np.ndarray)) + + +class TestListDataFrame(TestDataFrames): + @classmethod + def setupClass(cls): + cls.endog = np.random.random(10).tolist() + + exog = pandas.DataFrame(np.random.random((10,2)), + columns=['x_1','x_2']) + exog.insert(0, 'const', 1) + cls.exog = exog + cls.data = sm_data.handle_data(cls.endog, cls.exog) + nrows = 10 + nvars = 3 + cls.col_input = np.random.random(nvars) + cls.col_result = pandas.Series(cls.col_input, + index=exog.columns) + cls.row_input = np.random.random(nrows) + cls.row_result = pandas.Series(cls.row_input, + index=exog.index) + cls.cov_input = np.random.random((nvars, nvars)) + cls.cov_result = pandas.DataFrame(cls.cov_input, + index = exog.columns, + columns = exog.columns) + cls.xnames = ['const', 'x_1', 'x_2'] + cls.ynames = 'y' + cls.row_labels = cls.exog.index + + def test_endogexog(self): + np.testing.assert_equal(self.data.endog, self.endog) + np.testing.assert_equal(self.data.exog, self.exog.values) + + def test_orig(self): + np.testing.assert_equal(self.data.orig_endog, self.endog) + ptesting.assert_frame_equal(self.data.orig_exog, self.exog) + + +class TestDataFrameList(TestDataFrames): + @classmethod + def setupClass(cls): + cls.endog = pandas.DataFrame(np.random.random(10), columns=['y_1']) + + exog = pandas.DataFrame(np.random.random((10,2)), + columns=['x1','x2']) + exog.insert(0, 'const', 1) + cls.exog = exog.values.tolist() + cls.data = sm_data.handle_data(cls.endog, cls.exog) + nrows = 10 + nvars = 3 + cls.col_input = np.random.random(nvars) + cls.col_result = pandas.Series(cls.col_input, + index=exog.columns) + cls.row_input = np.random.random(nrows) + cls.row_result = pandas.Series(cls.row_input, + index=exog.index) + cls.cov_input = np.random.random((nvars, nvars)) + cls.cov_result = pandas.DataFrame(cls.cov_input, + index = exog.columns, + columns = exog.columns) + cls.xnames = ['const', 'x1', 'x2'] + cls.ynames = 'y_1' + cls.row_labels = cls.endog.index + + def test_endogexog(self): + np.testing.assert_equal(self.data.endog, self.endog.values.squeeze()) + np.testing.assert_equal(self.data.exog, self.exog) + + def test_orig(self): + ptesting.assert_frame_equal(self.data.orig_endog, self.endog) + np.testing.assert_equal(self.data.orig_exog, self.exog) + + +class TestArrayDataFrame(TestDataFrames): + @classmethod + def setupClass(cls): + cls.endog = np.random.random(10) + + exog = pandas.DataFrame(np.random.random((10,2)), + columns=['x_1','x_2']) + exog.insert(0, 'const', 1) + cls.exog = exog + cls.data = sm_data.handle_data(cls.endog, exog) + nrows = 10 + nvars = 3 + cls.col_input = np.random.random(nvars) + cls.col_result = pandas.Series(cls.col_input, + index=exog.columns) + cls.row_input = np.random.random(nrows) + cls.row_result = pandas.Series(cls.row_input, + index=exog.index) + cls.cov_input = np.random.random((nvars, nvars)) + cls.cov_result = pandas.DataFrame(cls.cov_input, + index = exog.columns, + columns = exog.columns) + cls.xnames = ['const', 'x_1', 'x_2'] + cls.ynames = 'y' + cls.row_labels = cls.exog.index + + def test_endogexog(self): + np.testing.assert_equal(self.data.endog, self.endog) + np.testing.assert_equal(self.data.exog, self.exog.values) + + def test_orig(self): + np.testing.assert_equal(self.data.orig_endog, self.endog) + ptesting.assert_frame_equal(self.data.orig_exog, self.exog) + + +class TestDataFrameArray(TestDataFrames): + @classmethod + def setupClass(cls): + cls.endog = pandas.DataFrame(np.random.random(10), columns=['y_1']) + + exog = pandas.DataFrame(np.random.random((10,2)), + columns=['x1','x2']) # names mimic defaults + exog.insert(0, 'const', 1) + cls.exog = exog.values + cls.data = sm_data.handle_data(cls.endog, cls.exog) + nrows = 10 + nvars = 3 + cls.col_input = np.random.random(nvars) + cls.col_result = pandas.Series(cls.col_input, + index=exog.columns) + cls.row_input = np.random.random(nrows) + cls.row_result = pandas.Series(cls.row_input, + index=exog.index) + cls.cov_input = np.random.random((nvars, nvars)) + cls.cov_result = pandas.DataFrame(cls.cov_input, + index = exog.columns, + columns = exog.columns) + cls.xnames = ['const', 'x1', 'x2'] + cls.ynames = 'y_1' + cls.row_labels = cls.endog.index + + def test_endogexog(self): + np.testing.assert_equal(self.data.endog, self.endog.values.squeeze()) + np.testing.assert_equal(self.data.exog, self.exog) + + def test_orig(self): + ptesting.assert_frame_equal(self.data.orig_endog, self.endog) + np.testing.assert_equal(self.data.orig_exog, self.exog) + + +class TestSeriesDataFrame(TestDataFrames): + @classmethod + def setupClass(cls): + cls.endog = pandas.Series(np.random.random(10), name='y_1') + + exog = pandas.DataFrame(np.random.random((10,2)), + columns=['x_1','x_2']) + exog.insert(0, 'const', 1) + cls.exog = exog + cls.data = sm_data.handle_data(cls.endog, cls.exog) + nrows = 10 + nvars = 3 + cls.col_input = np.random.random(nvars) + cls.col_result = pandas.Series(cls.col_input, + index=exog.columns) + cls.row_input = np.random.random(nrows) + cls.row_result = pandas.Series(cls.row_input, + index=exog.index) + cls.cov_input = np.random.random((nvars, nvars)) + cls.cov_result = pandas.DataFrame(cls.cov_input, + index = exog.columns, + columns = exog.columns) + cls.xnames = ['const', 'x_1', 'x_2'] + cls.ynames = 'y_1' + cls.row_labels = cls.exog.index + + def test_orig(self): + ptesting.assert_series_equal(self.data.orig_endog, self.endog) + ptesting.assert_frame_equal(self.data.orig_exog, self.exog) + + +class TestSeriesSeries(TestDataFrames): + @classmethod + def setupClass(cls): + cls.endog = pandas.Series(np.random.random(10), name='y_1') + + exog = pandas.Series(np.random.random(10), name='x_1') + cls.exog = exog + cls.data = sm_data.handle_data(cls.endog, cls.exog) + nrows = 10 + nvars = 1 + cls.col_input = np.random.random(nvars) + cls.col_result = pandas.Series(cls.col_input, + index = [exog.name]) + cls.row_input = np.random.random(nrows) + cls.row_result = pandas.Series(cls.row_input, + index = exog.index) + cls.cov_input = np.random.random((nvars, nvars)) + cls.cov_result = pandas.DataFrame(cls.cov_input, + index = [exog.name], + columns = [exog.name]) + cls.xnames = ['x_1'] + cls.ynames = 'y_1' + cls.row_labels = cls.exog.index + + def test_orig(self): + ptesting.assert_series_equal(self.data.orig_endog, self.endog) + ptesting.assert_series_equal(self.data.orig_exog, self.exog) + + def test_endogexog(self): + np.testing.assert_equal(self.data.endog, self.endog.values.squeeze()) + np.testing.assert_equal(self.data.exog, self.exog.values[:,None]) + +def test_alignment(): + #Fix Issue #206 + from statsmodels.regression.linear_model import OLS + from statsmodels.datasets.macrodata import load_pandas + + d = load_pandas().data + #growth rates + gs_l_realinv = 400 * np.log(d['realinv']).diff().dropna() + gs_l_realgdp = 400 * np.log(d['realgdp']).diff().dropna() + lint = d['realint'][:-1] # incorrect indexing for test purposes + + endog = gs_l_realinv + + # re-index because they won't conform to lint + realgdp = gs_l_realgdp.reindex(lint.index, method='bfill') + data = dict(const=np.ones_like(lint), lrealgdp=realgdp, lint=lint) + exog = pandas.DataFrame(data) + + # which index do we get?? + np.testing.assert_raises(ValueError, OLS, *(endog, exog)) + +class TestMultipleEqsArrays(TestArrays): + @classmethod + def setupClass(cls): + cls.endog = np.random.random((10,4)) + cls.exog = np.c_[np.ones(10), np.random.random((10,2))] + cls.data = sm_data.handle_data(cls.endog, cls.exog) + nrows = 10 + nvars = 3 + neqs = 4 + cls.col_result = cls.col_input = np.random.random(nvars) + cls.row_result = cls.row_input = np.random.random(nrows) + cls.cov_result = cls.cov_input = np.random.random((nvars, nvars)) + cls.cov_eq_result = cls.cov_eq_input = np.random.random((neqs,neqs)) + cls.col_eq_result = cls.col_eq_input = np.array((neqs, nvars)) + cls.xnames = ['const', 'x1', 'x2'] + cls.ynames = ['y1', 'y2', 'y3', 'y4'] + cls.row_labels = None + + def test_attach(self): + data = self.data + # this makes sure what the wrappers need work but not the wrapped + # results themselves + np.testing.assert_equal(data.wrap_output(self.col_input, 'columns'), + self.col_result) + np.testing.assert_equal(data.wrap_output(self.row_input, 'rows'), + self.row_result) + np.testing.assert_equal(data.wrap_output(self.cov_input, 'cov'), + self.cov_result) + np.testing.assert_equal(data.wrap_output(self.cov_eq_input, 'cov_eq'), + self.cov_eq_result) + np.testing.assert_equal(data.wrap_output(self.col_eq_input, + 'columns_eq'), + self.col_eq_result) + + +class TestMultipleEqsDataFrames(TestDataFrames): + @classmethod + def setupClass(cls): + cls.endog = endog = pandas.DataFrame(np.random.random((10,4)), + columns=['y_1', 'y_2', 'y_3', 'y_4']) + exog = pandas.DataFrame(np.random.random((10,2)), + columns=['x_1','x_2']) + exog.insert(0, 'const', 1) + cls.exog = exog + cls.data = sm_data.handle_data(cls.endog, cls.exog) + nrows = 10 + nvars = 3 + neqs = 4 + cls.col_input = np.random.random(nvars) + cls.col_result = pandas.Series(cls.col_input, + index=exog.columns) + cls.row_input = np.random.random(nrows) + cls.row_result = pandas.Series(cls.row_input, + index=exog.index) + cls.cov_input = np.random.random((nvars, nvars)) + cls.cov_result = pandas.DataFrame(cls.cov_input, + index = exog.columns, + columns = exog.columns) + cls.cov_eq_input = np.random.random((neqs, neqs)) + cls.cov_eq_result = pandas.DataFrame(cls.cov_eq_input, + index=endog.columns, + columns=endog.columns) + cls.col_eq_input = np.random.random((nvars, neqs)) + cls.col_eq_result = pandas.DataFrame(cls.col_eq_input, + index=exog.columns, + columns=endog.columns) + cls.xnames = ['const', 'x_1', 'x_2'] + cls.ynames = ['y_1', 'y_2', 'y_3', 'y_4'] + cls.row_labels = cls.exog.index + + def test_attach(self): + data = self.data + ptesting.assert_series_equal(data.wrap_output(self.col_input, + 'columns'), + self.col_result) + ptesting.assert_series_equal(data.wrap_output(self.row_input, 'rows'), + self.row_result) + ptesting.assert_frame_equal(data.wrap_output(self.cov_input, 'cov'), + self.cov_result) + ptesting.assert_frame_equal(data.wrap_output(self.cov_eq_input, + 'cov_eq'), + self.cov_eq_result) + ptesting.assert_frame_equal(data.wrap_output(self.col_eq_input, + 'columns_eq'), + self.col_eq_result) + +class TestMissingArray(object): + @classmethod + def setupClass(cls): + X = np.random.random((25,4)) + y = np.random.random(25) + y[10] = np.nan + X[2,3] = np.nan + X[14,2] = np.nan + cls.y, cls.X = y, X + + def test_raise_no_missing(self): + # smoke test for #1700 + sm_data.handle_data(np.random.random(20), np.random.random((20, 2)), + 'raise') + + def test_raise(self): + np.testing.assert_raises(Exception, sm_data.handle_data, + (self.y, self.X, 'raise')) + + def test_drop(self): + y = self.y + X = self.X + combined = np.c_[y, X] + idx = ~np.isnan(combined).any(axis=1) + y = y[idx] + X = X[idx] + data = sm_data.handle_data(self.y, self.X, 'drop') + np.testing.assert_array_equal(data.endog, y) + np.testing.assert_array_equal(data.exog, X) + + def test_none(self): + data = sm_data.handle_data(self.y, self.X, 'none', hasconst=False) + np.testing.assert_array_equal(data.endog, self.y) + np.testing.assert_array_equal(data.exog, self.X) + + def test_endog_only_raise(self): + np.testing.assert_raises(Exception, sm_data.handle_data, + (self.y, None, 'raise')) + + def test_endog_only_drop(self): + y = self.y + y = y[~np.isnan(y)] + data = sm_data.handle_data(self.y, None, 'drop') + np.testing.assert_array_equal(data.endog, y) + + def test_mv_endog(self): + y = self.X + y = y[~np.isnan(y).any(axis=1)] + data = sm_data.handle_data(self.X, None, 'drop') + np.testing.assert_array_equal(data.endog, y) + + def test_extra_kwargs_2d(self): + sigma = np.random.random((25, 25)) + sigma = sigma + sigma.T - np.diag(np.diag(sigma)) + data = sm_data.handle_data(self.y, self.X, 'drop', sigma=sigma) + idx = ~np.isnan(np.c_[self.y, self.X]).any(axis=1) + sigma = sigma[idx][:,idx] + np.testing.assert_array_equal(data.sigma, sigma) + + def test_extra_kwargs_1d(self): + weights = np.random.random(25) + data = sm_data.handle_data(self.y, self.X, 'drop', weights=weights) + idx = ~np.isnan(np.c_[self.y, self.X]).any(axis=1) + weights = weights[idx] + np.testing.assert_array_equal(data.weights, weights) + +class TestMissingPandas(object): + @classmethod + def setupClass(cls): + X = np.random.random((25,4)) + y = np.random.random(25) + y[10] = np.nan + X[2,3] = np.nan + X[14,2] = np.nan + cls.y, cls.X = pandas.Series(y), pandas.DataFrame(X) + + def test_raise_no_missing(self): + # smoke test for #1700 + sm_data.handle_data(pandas.Series(np.random.random(20)), + pandas.DataFrame(np.random.random((20, 2))), + 'raise') + + def test_raise(self): + np.testing.assert_raises(Exception, sm_data.handle_data, + (self.y, self.X, 'raise')) + + def test_drop(self): + y = self.y + X = self.X + combined = np.c_[y, X] + idx = ~np.isnan(combined).any(axis=1) + y = y.ix[idx] + X = X.ix[idx] + data = sm_data.handle_data(self.y, self.X, 'drop') + np.testing.assert_array_equal(data.endog, y.values) + ptesting.assert_series_equal(data.orig_endog, self.y.ix[idx]) + np.testing.assert_array_equal(data.exog, X.values) + ptesting.assert_frame_equal(data.orig_exog, self.X.ix[idx]) + + def test_none(self): + data = sm_data.handle_data(self.y, self.X, 'none', hasconst=False) + np.testing.assert_array_equal(data.endog, self.y.values) + np.testing.assert_array_equal(data.exog, self.X.values) + + def test_endog_only_raise(self): + np.testing.assert_raises(Exception, sm_data.handle_data, + (self.y, None, 'raise')) + + def test_endog_only_drop(self): + y = self.y + y = y.dropna() + data = sm_data.handle_data(self.y, None, 'drop') + np.testing.assert_array_equal(data.endog, y.values) + + def test_mv_endog(self): + y = self.X + y = y.ix[~np.isnan(y.values).any(axis=1)] + data = sm_data.handle_data(self.X, None, 'drop') + np.testing.assert_array_equal(data.endog, y.values) + + def test_labels(self): + 2, 10, 14 + labels = pandas.Index([0, 1, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24]) + data = sm_data.handle_data(self.y, self.X, 'drop') + np.testing.assert_(data.row_labels.equals(labels)) + + +class TestConstant(object): + @classmethod + def setupClass(cls): + from statsmodels.datasets.longley import load_pandas + cls.data = load_pandas() + + def test_array_constant(self): + exog = self.data.exog.copy() + exog['const'] = 1 + data = sm_data.handle_data(self.data.endog.values, exog.values) + np.testing.assert_equal(data.k_constant, 1) + np.testing.assert_equal(data.const_idx, 6) + + def test_pandas_constant(self): + exog = self.data.exog.copy() + exog['const'] = 1 + data = sm_data.handle_data(self.data.endog, exog) + np.testing.assert_equal(data.k_constant, 1) + np.testing.assert_equal(data.const_idx, 6) + + def test_pandas_noconstant(self): + exog = self.data.exog.copy() + data = sm_data.handle_data(self.data.endog, exog) + np.testing.assert_equal(data.k_constant, 0) + np.testing.assert_equal(data.const_idx, None) + + def test_array_noconstant(self): + exog = self.data.exog.copy() + data = sm_data.handle_data(self.data.endog.values, exog.values) + np.testing.assert_equal(data.k_constant, 0) + np.testing.assert_equal(data.const_idx, None) + + +class TestHandleMissing(object): + + def test_pandas(self): + df = ptesting.makeDataFrame() + df.values[[2, 5, 10], [2, 3, 1]] = np.nan + y, X = df[df.columns[0]], df[df.columns[1:]] + data, _ = sm_data.handle_missing(y, X, missing='drop') + + df = df.dropna() + y_exp, X_exp = df[df.columns[0]], df[df.columns[1:]] + ptesting.assert_frame_equal(data['exog'], X_exp) + ptesting.assert_series_equal(data['endog'], y_exp) + + def test_arrays(self): + arr = np.random.randn(20, 4) + arr[[2, 5, 10], [2, 3, 1]] = np.nan + y, X = arr[:,0], arr[:,1:] + data, _ = sm_data.handle_missing(y, X, missing='drop') + + bools_mask = np.ones(20, dtype=bool) + bools_mask[[2, 5, 10]] = False + y_exp = arr[bools_mask, 0] + X_exp = arr[bools_mask, 1:] + np.testing.assert_array_equal(data['endog'], y_exp) + np.testing.assert_array_equal(data['exog'], X_exp) + + def test_pandas_array(self): + df = ptesting.makeDataFrame() + df.values[[2, 5, 10], [2, 3, 1]] = np.nan + y, X = df[df.columns[0]], df[df.columns[1:]].values + data, _ = sm_data.handle_missing(y, X, missing='drop') + + df = df.dropna() + y_exp, X_exp = df[df.columns[0]], df[df.columns[1:]].values + np.testing.assert_array_equal(data['exog'], X_exp) + ptesting.assert_series_equal(data['endog'], y_exp) + + def test_array_pandas(self): + df = ptesting.makeDataFrame() + df.values[[2, 5, 10], [2, 3, 1]] = np.nan + y, X = df[df.columns[0]].values, df[df.columns[1:]] + data, _ = sm_data.handle_missing(y, X, missing='drop') + + df = df.dropna() + y_exp, X_exp = df[df.columns[0]].values, df[df.columns[1:]] + ptesting.assert_frame_equal(data['exog'], X_exp) + np.testing.assert_array_equal(data['endog'], y_exp) + + def test_noop(self): + df = ptesting.makeDataFrame() + df.values[[2, 5, 10], [2, 3, 1]] = np.nan + y, X = df[df.columns[0]], df[df.columns[1:]] + data, _ = sm_data.handle_missing(y, X, missing='none') + + y_exp, X_exp = df[df.columns[0]], df[df.columns[1:]] + ptesting.assert_frame_equal(data['exog'], X_exp) + ptesting.assert_series_equal(data['endog'], y_exp) + + +class CheckHasConstant(object): + + def test_hasconst(self): + for x, result in zip(self.exogs, self.results): + mod = self.mod(self.y, x) + assert_equal(mod.k_constant, result[0]) #['k_constant']) + assert_equal(mod.data.k_constant, result[0]) + if result[1] is None: + assert_(mod.data.const_idx is None) + else: + assert_equal(mod.data.const_idx, result[1]) + + # extra check after fit, some models raise on singular + fit_kwds = getattr(self, 'fit_kwds', {}) + try: + res = mod.fit(**fit_kwds) + assert_equal(res.model.k_constant, result[0]) + assert_equal(res.model.data.k_constant, result[0]) + except: + pass + + + @classmethod + def setup_class(cls): + # create data + np.random.seed(0) + cls.y_c = np.random.randn(20) + cls.y_bin = (cls.y_c > 0).astype(int) + x1 = np.column_stack((np.ones(20), np.zeros(20))) + result1 = (1, 0) + x2 = np.column_stack((np.arange(20) < 10.5, + np.arange(20) > 10.5)).astype(float) + result2 = (1, None) + x3 = np.column_stack((np.arange(20), np.zeros(20))) + result3 = (0, None) + x4 = np.column_stack((np.arange(20), np.zeros((20, 2)))) + result4 = (0, None) + x5 = np.column_stack((np.zeros(20), 0.5 * np.ones(20))) + result5 = (1, 1) + x5b = np.column_stack((np.arange(20), np.ones((20, 3)))) + result5b = (1, 1) + x5c = np.column_stack((np.arange(20), np.ones((20, 3)) * [0.5, 1, 1])) + result5c = (1, 2) + # implicit and zero column + x6 = np.column_stack((np.arange(20) < 10.5, + np.arange(20) > 10.5, + np.zeros(20))).astype(float) + result6 = (1, None) + x7 = np.column_stack((np.arange(20) < 10.5, + np.arange(20) > 10.5, + np.zeros((20, 2)))).astype(float) + result7 = (1, None) + + cls.exogs = (x1, x2, x3, x4, x5, x5b, x5c, x6, x7) + cls.results = (result1, result2, result3, result4, result5, result5b, + result5c, result6, result7) + + +class TestHasConstantOLS(CheckHasConstant): + + def __init__(self): + self.setup_class() # why does nose do it properly + from statsmodels.regression.linear_model import OLS + self.mod = OLS + self.y = self.y_c + + +class TestHasConstantGLM(CheckHasConstant): + + def __init__(self): + self.setup_class() # why does nose do it properly + from statsmodels.genmod.generalized_linear_model import GLM + from statsmodels.genmod import families + self.mod = lambda y, x : GLM(y, x, family=families.Binomial()) + self.y = self.y_bin + +class TestHasConstantLogit(CheckHasConstant): + + def __init__(self): + self.setup_class() # why does nose do it properly + from statsmodels.discrete.discrete_model import Logit + self.mod = Logit + self.y = self.y_bin + self.fit_kwds = {'disp': False} + + +def test_dtype_object(): + # see #880 + + X = np.random.random((40,2)) + df = pandas.DataFrame(X) + df[2] = np.random.randint(2, size=40).astype('object') + df['constant'] = 1 + + y = pandas.Series(np.random.randint(2, size=40)) + + np.testing.assert_raises(ValueError, sm_data.handle_data, y, df) + + +def test_formula_missing_extra_arrays(): + np.random.seed(1) + # because patsy can't turn off missing data-handling as of 0.3.0, we need + # separate tests to make sure that missing values are handled correctly + # when going through formulas + + # there is a handle_formula_data step + # then there is the regular handle_data step + # see 2083 + + # the untested cases are endog/exog have missing. extra has missing. + # endog/exog are fine. extra has missing. + # endog/exog do or do not have missing and extra has wrong dimension + y = np.random.randn(10) + y_missing = y.copy() + y_missing[[2, 5]] = np.nan + X = np.random.randn(10) + X_missing = X.copy() + X_missing[[1, 3]] = np.nan + + weights = np.random.uniform(size=10) + weights_missing = weights.copy() + weights_missing[[6]] = np.nan + + weights_wrong_size = np.random.randn(12) + + data = {'y': y, + 'X': X, + 'y_missing': y_missing, + 'X_missing': X_missing, + 'weights': weights, + 'weights_missing': weights_missing} + data = pandas.DataFrame.from_dict(data) + data['constant'] = 1 + + formula = 'y_missing ~ X_missing' + + ((endog, exog), + missing_idx, design_info) = handle_formula_data(data, None, formula, + depth=2, + missing='drop') + + kwargs = {'missing_idx': missing_idx, 'missing': 'drop', + 'weights': data['weights_missing']} + + model_data = sm_data.handle_data(endog, exog, **kwargs) + data_nona = data.dropna() + assert_equal(data_nona['y'].values, model_data.endog) + assert_equal(data_nona[['constant', 'X']].values, model_data.exog) + assert_equal(data_nona['weights'].values, model_data.weights) + + tmp = handle_formula_data(data, None, formula, depth=2, missing='drop') + (endog, exog), missing_idx, design_info = tmp + weights_2d = np.random.randn(10, 10) + weights_2d[[8, 7], [7, 8]] = np.nan #symmetric missing values + kwargs.update({'weights': weights_2d, + 'missing_idx': missing_idx}) + + model_data2 = sm_data.handle_data(endog, exog, **kwargs) + + good_idx = [0, 4, 6, 9] + assert_equal(data.ix[good_idx, 'y'], model_data2.endog) + assert_equal(data.ix[good_idx, ['constant', 'X']], model_data2.exog) + assert_equal(weights_2d[good_idx][:, good_idx], model_data2.weights) + + tmp = handle_formula_data(data, None, formula, depth=2, missing='drop') + (endog, exog), missing_idx, design_info = tmp + + kwargs.update({'weights': weights_wrong_size, + 'missing_idx': missing_idx}) + assert_raises(ValueError, sm_data.handle_data, endog, exog, **kwargs) + + +if __name__ == "__main__": + import nose + #nose.runmodule(argv=[__file__, '-vvs', '-x', '--pdb', '--pdb-failure'], + # exit=False) + nose.runmodule(argv=[__file__, '-vvs', '-x'], exit=False) diff --git a/statsmodels/base/tests/test_generic_methods.py b/statsmodels/base/tests/test_generic_methods.py new file mode 100644 index 0000000..224637b --- /dev/null +++ b/statsmodels/base/tests/test_generic_methods.py @@ -0,0 +1,531 @@ +# -*- coding: utf-8 -*- +"""Tests that use cross-checks for generic methods + +Should be easy to check consistency across models +Does not cover tsa + +Initial cases copied from test_shrink_pickle + +Created on Wed Oct 30 14:01:27 2013 + +Author: Josef Perktold +""" +from statsmodels.compat.python import range +import numpy as np +import statsmodels.api as sm +from statsmodels.compat.scipy import NumpyVersion + +from numpy.testing import (assert_, assert_allclose, assert_equal, + assert_array_equal) + +from nose import SkipTest +import platform + + +iswin = platform.system() == 'Windows' +npversionless15 = NumpyVersion(np.__version__) < '1.5.0' +winoldnp = iswin & npversionless15 + + + +class CheckGenericMixin(object): + + def __init__(self): + self.predict_kwds = {} + + @classmethod + def setup_class(self): + + nobs = 500 + np.random.seed(987689) + x = np.random.randn(nobs, 3) + x = sm.add_constant(x) + self.exog = x + self.xf = 0.25 * np.ones((2, 4)) + + def test_ttest_tvalues(self): + # test that t_test has same results a params, bse, tvalues, ... + res = self.results + mat = np.eye(len(res.params)) + tt = res.t_test(mat) + + assert_allclose(tt.effect, res.params, rtol=1e-12) + # TODO: tt.sd and tt.tvalue are 2d also for single regressor, squeeze + assert_allclose(np.squeeze(tt.sd), res.bse, rtol=1e-10) + assert_allclose(np.squeeze(tt.tvalue), res.tvalues, rtol=1e-12) + assert_allclose(tt.pvalue, res.pvalues, rtol=5e-10) + assert_allclose(tt.conf_int(), res.conf_int(), rtol=1e-10) + + # test params table frame returned by t_test + table_res = np.column_stack((res.params, res.bse, res.tvalues, + res.pvalues, res.conf_int())) + table1 = np.column_stack((tt.effect, tt.sd, tt.tvalue, tt.pvalue, + tt.conf_int())) + table2 = tt.summary_frame().values + assert_allclose(table2, table_res, rtol=1e-12) + + # move this to test_attributes ? + assert_(hasattr(res, 'use_t')) + + tt = res.t_test(mat[0]) + string_confint = lambda alpha: "[%4.3F %4.3F]" % ( + alpha / 2, 1- alpha / 2) + summ = tt.summary() # smoke test for #1323 + assert_allclose(tt.pvalue, res.pvalues[0], rtol=5e-10) + assert_(string_confint(0.05) in str(summ)) + # issue #3116 alpha not used in column headers + summ = tt.summary(alpha=0.1) + ss = "[0.05 0.95]" # different formatting + assert_(ss in str(summ)) + summf = tt.summary_frame(alpha=0.1) + pvstring_use_t = 'P>|z|' if res.use_t is False else 'P>|t|' + tstring_use_t = 'z' if res.use_t is False else 't' + cols = ['coef', 'std err', tstring_use_t, pvstring_use_t, + 'Conf. Int. Low', 'Conf. Int. Upp.'] + assert_array_equal(summf.columns.values, cols) + + + def test_ftest_pvalues(self): + res = self.results + use_t = res.use_t + k_vars = len(res.params) + # check default use_t + pvals = [res.wald_test(np.eye(k_vars)[k], use_f=use_t).pvalue + for k in range(k_vars)] + assert_allclose(pvals, res.pvalues, rtol=5e-10, atol=1e-25) + + # sutomatic use_f based on results class use_t + pvals = [res.wald_test(np.eye(k_vars)[k]).pvalue + for k in range(k_vars)] + assert_allclose(pvals, res.pvalues, rtol=5e-10, atol=1e-25) + + # label for pvalues in summary + string_use_t = 'P>|z|' if use_t is False else 'P>|t|' + summ = str(res.summary()) + assert_(string_use_t in summ) + + # try except for models that don't have summary2 + try: + summ2 = str(res.summary2()) + except AttributeError: + summ2 = None + if summ2 is not None: + assert_(string_use_t in summ2) + + + # TODO The following is not (yet) guaranteed across models + #@knownfailureif(True) + def test_fitted(self): + # ignore wrapper for isinstance check + from statsmodels.genmod.generalized_linear_model import GLMResults + from statsmodels.discrete.discrete_model import DiscreteResults + # FIXME: work around GEE has no wrapper + if hasattr(self.results, '_results'): + results = self.results._results + else: + results = self.results + if (isinstance(results, GLMResults) or + isinstance(results, DiscreteResults)): + raise SkipTest + + res = self.results + fitted = res.fittedvalues + assert_allclose(res.model.endog - fitted, res.resid, rtol=1e-12) + assert_allclose(fitted, res.predict(), rtol=1e-12) + + def test_predict_types(self): + + res = self.results + # squeeze to make 1d for single regressor test case + p_exog = np.squeeze(np.asarray(res.model.exog[:2])) + + # ignore wrapper for isinstance check + from statsmodels.genmod.generalized_linear_model import GLMResults + from statsmodels.discrete.discrete_model import DiscreteResults + + # FIXME: work around GEE has no wrapper + if hasattr(self.results, '_results'): + results = self.results._results + else: + results = self.results + + if (isinstance(results, GLMResults) or + isinstance(results, DiscreteResults)): + # SMOKE test only TODO + res.predict(p_exog) + res.predict(p_exog.tolist()) + res.predict(p_exog[0].tolist()) + else: + + import pandas as pd + from pandas.util.testing import assert_series_equal + + fitted = res.fittedvalues[:2] + assert_allclose(fitted, res.predict(p_exog), rtol=1e-12) + # this needs reshape to column-vector: + assert_allclose(fitted, res.predict(np.squeeze(p_exog).tolist()), + rtol=1e-12) + # only one prediction: + assert_allclose(fitted[:1], res.predict(p_exog[0].tolist()), + rtol=1e-12) + assert_allclose(fitted[:1], res.predict(p_exog[0]), + rtol=1e-12) + + exog_index = range(len(p_exog)) + predicted = res.predict(p_exog) + + if p_exog.ndim == 1: + predicted_pandas = res.predict(pd.Series(p_exog, index=exog_index)) + + else: + predicted_pandas = res.predict(pd.DataFrame(p_exog, index=exog_index)) + + if predicted.ndim == 1: + + assert_(isinstance(predicted_pandas, pd.Series)) + + predicted_expected = pd.Series(predicted, index=exog_index) + assert_series_equal(predicted_expected, predicted_pandas) + + else: + assert_(isinstance(predicted_pandas, pd.DataFrame)) + + predicted_expected = pd.DataFrame(predicted, index=exog_index) + assert_(predicted_expected.equals(predicted_pandas)) + + +######### subclasses for individual models, unchanged from test_shrink_pickle +# TODO: check if setup_class is faster than setup + +class TestGenericOLS(CheckGenericMixin): + + def setup(self): + #fit for each test, because results will be changed by test + x = self.exog + np.random.seed(987689) + y = x.sum(1) + np.random.randn(x.shape[0]) + self.results = sm.OLS(y, self.exog).fit() + + +class TestGenericOLSOneExog(CheckGenericMixin): + # check with single regressor (no constant) + + def setup(self): + #fit for each test, because results will be changed by test + x = self.exog[:, 1] + np.random.seed(987689) + y = x + np.random.randn(x.shape[0]) + self.results = sm.OLS(y, x).fit() + + +class TestGenericWLS(CheckGenericMixin): + + def setup(self): + #fit for each test, because results will be changed by test + x = self.exog + np.random.seed(987689) + y = x.sum(1) + np.random.randn(x.shape[0]) + self.results = sm.WLS(y, self.exog, weights=np.ones(len(y))).fit() + + +class TestGenericPoisson(CheckGenericMixin): + + def setup(self): + #fit for each test, because results will be changed by test + x = self.exog + np.random.seed(987689) + y_count = np.random.poisson(np.exp(x.sum(1) - x.mean())) + model = sm.Poisson(y_count, x) #, exposure=np.ones(nobs), offset=np.zeros(nobs)) #bug with default + # use start_params to converge faster + start_params = np.array([0.75334818, 0.99425553, 1.00494724, 1.00247112]) + self.results = model.fit(start_params=start_params, method='bfgs', + disp=0) + + #TODO: temporary, fixed in master + self.predict_kwds = dict(exposure=1, offset=0) + +class TestGenericNegativeBinomial(CheckGenericMixin): + + def setup(self): + #fit for each test, because results will be changed by test + np.random.seed(987689) + data = sm.datasets.randhie.load() + exog = sm.add_constant(data.exog, prepend=False) + mod = sm.NegativeBinomial(data.endog, data.exog) + start_params = np.array([-0.0565406 , -0.21213599, 0.08783076, + -0.02991835, 0.22901974, 0.0621026, + 0.06799283, 0.08406688, 0.18530969, + 1.36645452]) + self.results = mod.fit(start_params=start_params, disp=0) + + +class TestGenericLogit(CheckGenericMixin): + + def setup(self): + #fit for each test, because results will be changed by test + x = self.exog + nobs = x.shape[0] + np.random.seed(987689) + y_bin = (np.random.rand(nobs) < 1.0 / (1 + np.exp(x.sum(1) - x.mean()))).astype(int) + model = sm.Logit(y_bin, x) #, exposure=np.ones(nobs), offset=np.zeros(nobs)) #bug with default + # use start_params to converge faster + start_params = np.array([-0.73403806, -1.00901514, -0.97754543, -0.95648212]) + self.results = model.fit(start_params=start_params, method='bfgs', disp=0) + + +class TestGenericRLM(CheckGenericMixin): + + def setup(self): + #fit for each test, because results will be changed by test + x = self.exog + np.random.seed(987689) + y = x.sum(1) + np.random.randn(x.shape[0]) + self.results = sm.RLM(y, self.exog).fit() + + +class TestGenericGLM(CheckGenericMixin): + + def setup(self): + #fit for each test, because results will be changed by test + x = self.exog + np.random.seed(987689) + y = x.sum(1) + np.random.randn(x.shape[0]) + self.results = sm.GLM(y, self.exog).fit() + + +class TestGenericGEEPoisson(CheckGenericMixin): + + def setup(self): + #fit for each test, because results will be changed by test + x = self.exog + np.random.seed(987689) + y_count = np.random.poisson(np.exp(x.sum(1) - x.mean())) + groups = np.random.randint(0, 4, size=x.shape[0]) + # use start_params to speed up test, difficult convergence not tested + start_params = np.array([0., 1., 1., 1.]) + + vi = sm.cov_struct.Independence() + family = sm.families.Poisson() + self.results = sm.GEE(y_count, self.exog, groups, family=family, + cov_struct=vi).fit(start_params=start_params) + + +class TestGenericGEEPoissonNaive(CheckGenericMixin): + + def setup(self): + #fit for each test, because results will be changed by test + x = self.exog + np.random.seed(987689) + #y_count = np.random.poisson(np.exp(x.sum(1) - x.mean())) + y_count = np.random.poisson(np.exp(x.sum(1) - x.sum(1).mean(0))) + groups = np.random.randint(0, 4, size=x.shape[0]) + # use start_params to speed up test, difficult convergence not tested + start_params = np.array([0., 1., 1., 1.]) + + vi = sm.cov_struct.Independence() + family = sm.families.Poisson() + self.results = sm.GEE(y_count, self.exog, groups, family=family, + cov_struct=vi).fit(start_params=start_params, + cov_type='naive') + + +class TestGenericGEEPoissonBC(CheckGenericMixin): + + def setup(self): + #fit for each test, because results will be changed by test + x = self.exog + np.random.seed(987689) + #y_count = np.random.poisson(np.exp(x.sum(1) - x.mean())) + y_count = np.random.poisson(np.exp(x.sum(1) - x.sum(1).mean(0))) + groups = np.random.randint(0, 4, size=x.shape[0]) + # use start_params to speed up test, difficult convergence not tested + start_params = np.array([0., 1., 1., 1.]) + # params_est = np.array([-0.0063238 , 0.99463752, 1.02790201, 0.98080081]) + + vi = sm.cov_struct.Independence() + family = sm.families.Poisson() + mod = sm.GEE(y_count, self.exog, groups, family=family, cov_struct=vi) + self.results = mod.fit(start_params=start_params, + cov_type='bias_reduced') + + +# Other test classes + +class CheckAnovaMixin(object): + + @classmethod + def setup_class(cls): + import statsmodels.stats.tests.test_anova as ttmod + + test = ttmod.TestAnova3() + test.setupClass() + + cls.data = test.data.drop([0,1,2]) + cls.initialize() + + + def test_combined(self): + res = self.res + wa = res.wald_test_terms(skip_single=False, combine_terms=['Duration', 'Weight']) + eye = np.eye(len(res.params)) + c_const = eye[0] + c_w = eye[[2,3]] + c_d = eye[1] + c_dw = eye[[4,5]] + c_weight = eye[2:6] + c_duration = eye[[1, 4, 5]] + + compare_waldres(res, wa, [c_const, c_d, c_w, c_dw, c_duration, c_weight]) + + + def test_categories(self): + # test only multicolumn terms + res = self.res + wa = res.wald_test_terms(skip_single=True) + eye = np.eye(len(res.params)) + c_w = eye[[2,3]] + c_dw = eye[[4,5]] + + compare_waldres(res, wa, [c_w, c_dw]) + + +def compare_waldres(res, wa, constrasts): + for i, c in enumerate(constrasts): + wt = res.wald_test(c) + assert_allclose(wa.table.values[i, 0], wt.statistic) + assert_allclose(wa.table.values[i, 1], wt.pvalue) + df = c.shape[0] if c.ndim == 2 else 1 + assert_equal(wa.table.values[i, 2], df) + # attributes + assert_allclose(wa.statistic[i], wt.statistic) + assert_allclose(wa.pvalues[i], wt.pvalue) + assert_equal(wa.df_constraints[i], df) + if res.use_t: + assert_equal(wa.df_denom[i], res.df_resid) + + col_names = wa.col_names + if res.use_t: + assert_equal(wa.distribution, 'F') + assert_equal(col_names[0], 'F') + assert_equal(col_names[1], 'P>F') + else: + assert_equal(wa.distribution, 'chi2') + assert_equal(col_names[0], 'chi2') + assert_equal(col_names[1], 'P>chi2') + + # SMOKETEST + wa.summary_frame() + + +class TestWaldAnovaOLS(CheckAnovaMixin): + + @classmethod + def initialize(cls): + from statsmodels.formula.api import ols, glm, poisson + from statsmodels.discrete.discrete_model import Poisson + + mod = ols("np.log(Days+1) ~ C(Duration, Sum)*C(Weight, Sum)", cls.data) + cls.res = mod.fit(use_t=False) + + + def test_noformula(self): + endog = self.res.model.endog + exog = self.res.model.data.orig_exog + del exog.design_info + + res = sm.OLS(endog, exog).fit() + wa = res.wald_test_terms(skip_single=True, + combine_terms=['Duration', 'Weight']) + eye = np.eye(len(res.params)) + c_weight = eye[2:6] + c_duration = eye[[1, 4, 5]] + + compare_waldres(res, wa, [c_duration, c_weight]) + + +class TestWaldAnovaOLSF(CheckAnovaMixin): + + @classmethod + def initialize(cls): + from statsmodels.formula.api import ols, glm, poisson + from statsmodels.discrete.discrete_model import Poisson + + mod = ols("np.log(Days+1) ~ C(Duration, Sum)*C(Weight, Sum)", cls.data) + cls.res = mod.fit() # default use_t=True + + + def test_predict_missing(self): + ex = self.data[:5].copy() + ex.iloc[0, 1] = np.nan + predicted1 = self.res.predict(ex) + predicted2 = self.res.predict(ex[1:]) + from pandas.util.testing import assert_series_equal + try: + from pandas.util.testing import assert_index_equal + except ImportError: + # for old pandas + from numpy.testing import assert_array_equal as assert_index_equal + + assert_index_equal(predicted1.index, ex.index) + assert_series_equal(predicted1[1:], predicted2) + assert_equal(predicted1.values[0], np.nan) + + +class TestWaldAnovaGLM(CheckAnovaMixin): + + @classmethod + def initialize(cls): + from statsmodels.formula.api import ols, glm, poisson + from statsmodels.discrete.discrete_model import Poisson + + mod = glm("np.log(Days+1) ~ C(Duration, Sum)*C(Weight, Sum)", cls.data) + cls.res = mod.fit(use_t=False) + + +class TestWaldAnovaPoisson(CheckAnovaMixin): + + @classmethod + def initialize(cls): + from statsmodels.discrete.discrete_model import Poisson + + mod = Poisson.from_formula("Days ~ C(Duration, Sum)*C(Weight, Sum)", cls.data) + cls.res = mod.fit(cov_type='HC0') + + +class TestWaldAnovaNegBin(CheckAnovaMixin): + + @classmethod + def initialize(cls): + from statsmodels.discrete.discrete_model import NegativeBinomial + + formula = "Days ~ C(Duration, Sum)*C(Weight, Sum)" + mod = NegativeBinomial.from_formula(formula, cls.data, + loglike_method='nb2') + cls.res = mod.fit() + + +class TestWaldAnovaNegBin1(CheckAnovaMixin): + + @classmethod + def initialize(cls): + from statsmodels.discrete.discrete_model import NegativeBinomial + + formula = "Days ~ C(Duration, Sum)*C(Weight, Sum)" + mod = NegativeBinomial.from_formula(formula, cls.data, + loglike_method='nb1') + cls.res = mod.fit(cov_type='HC0') + + +class T_estWaldAnovaOLSNoFormula(object): + + @classmethod + def initialize(cls): + from statsmodels.formula.api import ols, glm, poisson + from statsmodels.discrete.discrete_model import Poisson + + mod = ols("np.log(Days+1) ~ C(Duration, Sum)*C(Weight, Sum)", cls.data) + cls.res = mod.fit() # default use_t=True + + +if __name__ == '__main__': + pass diff --git a/statsmodels/base/tests/test_optimize.py b/statsmodels/base/tests/test_optimize.py new file mode 100644 index 0000000..6938401 --- /dev/null +++ b/statsmodels/base/tests/test_optimize.py @@ -0,0 +1,80 @@ +from numpy.testing import assert_ +from statsmodels.base.optimizer import (_fit_newton, _fit_nm, + _fit_bfgs, _fit_cg, + _fit_ncg, _fit_powell, + _fit_lbfgs, _fit_basinhopping) + +fit_funcs = { + 'newton': _fit_newton, + 'nm': _fit_nm, # Nelder-Mead + 'bfgs': _fit_bfgs, + 'cg': _fit_cg, + 'ncg': _fit_ncg, + 'powell': _fit_powell, + 'lbfgs': _fit_lbfgs, + } + +try: + from scipy.optimize import basinhopping + fit_funcs.update({'basinhopping': _fit_basinhopping}) +except ImportError: + pass + + +def dummy_func(x): + return x**2 + +def dummy_score(x): + return 2.*x + +def dummy_hess(x): + return [[2.]] + +def test_full_output_false(): + # just a smoke test + + # newton needs f, score, start, fargs, kwargs + # bfgs needs f, score start, fargs, kwargs + # nm needs "" + # cg "" + # ncg "" + # powell "" + for method in fit_funcs: + func = fit_funcs[method] + if method == "newton": + xopt, retvals = func(dummy_func, dummy_score, [1], (), {}, + hess=dummy_hess, full_output=False, disp=0) + + else: + xopt, retvals = func(dummy_func, dummy_score, [1], (), {}, + full_output=False, disp=0) + assert_(retvals is None) + if method == "powell": + #NOTE: I think I reported this? Might be version/optimize API + # dependent + assert_(xopt.shape == () and xopt.size == 1) + else: + assert_(len(xopt) == 1) + + +def test_full_output(): + for method in fit_funcs: + func = fit_funcs[method] + if method == "newton": + xopt, retvals = func(dummy_func, dummy_score, [1], (), {}, + hess=dummy_hess, full_output=True, disp=0) + + else: + xopt, retvals = func(dummy_func, dummy_score, [1], (), {}, + full_output=True, disp=0) + + assert_(retvals is not None) + assert_('converged' in retvals) + + if method == "powell": + #NOTE: I think I reported this? Might be version/optimize API + # dependent + assert_(xopt.shape == () and xopt.size == 1) + else: + assert_(len(xopt) == 1) + diff --git a/statsmodels/base/tests/test_shrink_pickle.py b/statsmodels/base/tests/test_shrink_pickle.py new file mode 100644 index 0000000..b98bb96 --- /dev/null +++ b/statsmodels/base/tests/test_shrink_pickle.py @@ -0,0 +1,286 @@ +# -*- coding: utf-8 -*- +""" + +Created on Fri Mar 09 16:00:27 2012 + +Author: Josef Perktold +""" +from __future__ import print_function +from statsmodels.compat.python import iterkeys, cPickle, BytesIO + +import warnings + +import numpy as np +from numpy.testing import assert_, assert_equal +import pandas as pd + +import statsmodels.api as sm + + +def check_pickle(obj): + fh = BytesIO() + cPickle.dump(obj, fh, protocol=cPickle.HIGHEST_PROTOCOL) + plen = fh.tell() + fh.seek(0, 0) + res = cPickle.load(fh) + fh.close() + return res, plen + + +class RemoveDataPickle(object): + + def __init__(self): + self.predict_kwds = {} + + @classmethod + def setup_class(self): + + nobs = 10000 + np.random.seed(987689) + x = np.random.randn(nobs, 3) + x = sm.add_constant(x) + self.exog = x + self.xf = 0.25 * np.ones((2, 4)) + self.l_max = 20000 + + def test_remove_data_pickle(self): + import pandas as pd + from pandas.util.testing import assert_series_equal + + results = self.results + xf = self.xf + pred_kwds = self.predict_kwds + pred1 = results.predict(xf, **pred_kwds) + #create some cached attributes + results.summary() + res = results.summary2() # SMOKE test also summary2 + + # uncomment the following to check whether tests run (7 failures now) + #np.testing.assert_equal(res, 1) + + #check pickle unpickle works on full results + #TODO: drop of load save is tested + res, l = check_pickle(results._results) + + #remove data arrays, check predict still works + with warnings.catch_warnings(record=True) as w: + results.remove_data() + + pred2 = results.predict(xf, **pred_kwds) + + if isinstance(pred1, pd.Series) and isinstance(pred2, pd.Series): + assert_series_equal(pred1, pred2) + elif isinstance(pred1, pd.DataFrame) and isinstance(pred2, pd.DataFrame): + assert_(pred1.equals(pred2)) + else: + np.testing.assert_equal(pred2, pred1) + + #pickle, unpickle reduced array + res, l = check_pickle(results._results) + + #for testing attach res + self.res = res + + #Note: l_max is just a guess for the limit on the length of the pickle + l_max = self.l_max + assert_(l < l_max, msg='pickle length not %d < %d' % (l, l_max)) + + pred3 = results.predict(xf, **pred_kwds) + + if isinstance(pred1, pd.Series) and isinstance(pred3, pd.Series): + assert_series_equal(pred1, pred3) + elif isinstance(pred1, pd.DataFrame) and isinstance(pred3, pd.DataFrame): + assert_(pred1.equals(pred3)) + else: + np.testing.assert_equal(pred3, pred1) + + def test_remove_data_docstring(self): + assert_(self.results.remove_data.__doc__ is not None) + + def test_pickle_wrapper(self): + + fh = BytesIO() # use cPickle with binary content + + # test unwrapped results load save pickle + self.results._results.save(fh) + fh.seek(0, 0) + res_unpickled = self.results._results.__class__.load(fh) + assert_(type(res_unpickled) is type(self.results._results)) + + # test wrapped results load save + fh.seek(0, 0) + self.results.save(fh) + fh.seek(0, 0) + res_unpickled = self.results.__class__.load(fh) + fh.close() + # print type(res_unpickled) + assert_(type(res_unpickled) is type(self.results)) + + before = sorted(iterkeys(self.results.__dict__)) + after = sorted(iterkeys(res_unpickled.__dict__)) + assert_(before == after, msg='not equal %r and %r' % (before, after)) + + before = sorted(iterkeys(self.results._results.__dict__)) + after = sorted(iterkeys(res_unpickled._results.__dict__)) + assert_(before == after, msg='not equal %r and %r' % (before, after)) + + before = sorted(iterkeys(self.results.model.__dict__)) + after = sorted(iterkeys(res_unpickled.model.__dict__)) + assert_(before == after, msg='not equal %r and %r' % (before, after)) + + before = sorted(iterkeys(self.results._cache)) + after = sorted(iterkeys(res_unpickled._cache)) + assert_(before == after, msg='not equal %r and %r' % (before, after)) + + +class TestRemoveDataPickleOLS(RemoveDataPickle): + + def setup(self): + #fit for each test, because results will be changed by test + x = self.exog + np.random.seed(987689) + y = x.sum(1) + np.random.randn(x.shape[0]) + self.results = sm.OLS(y, self.exog).fit() + + +class TestRemoveDataPickleWLS(RemoveDataPickle): + + def setup(self): + #fit for each test, because results will be changed by test + x = self.exog + np.random.seed(987689) + y = x.sum(1) + np.random.randn(x.shape[0]) + self.results = sm.WLS(y, self.exog, weights=np.ones(len(y))).fit() + + +class TestRemoveDataPicklePoisson(RemoveDataPickle): + + def setup(self): + #fit for each test, because results will be changed by test + x = self.exog + np.random.seed(987689) + y_count = np.random.poisson(np.exp(x.sum(1) - x.mean())) + model = sm.Poisson(y_count, x) #, exposure=np.ones(nobs), offset=np.zeros(nobs)) #bug with default + # use start_params to converge faster + start_params = np.array([0.75334818, 0.99425553, 1.00494724, 1.00247112]) + self.results = model.fit(start_params=start_params, method='bfgs', + disp=0) + + #TODO: temporary, fixed in master + self.predict_kwds = dict(exposure=1, offset=0) + +class TestRemoveDataPickleNegativeBinomial(RemoveDataPickle): + + def setup(self): + #fit for each test, because results will be changed by test + np.random.seed(987689) + data = sm.datasets.randhie.load() + exog = sm.add_constant(data.exog, prepend=False) + mod = sm.NegativeBinomial(data.endog, data.exog) + self.results = mod.fit(disp=0) + +class TestRemoveDataPickleLogit(RemoveDataPickle): + + def setup(self): + #fit for each test, because results will be changed by test + x = self.exog + nobs = x.shape[0] + np.random.seed(987689) + y_bin = (np.random.rand(nobs) < 1.0 / (1 + np.exp(x.sum(1) - x.mean()))).astype(int) + model = sm.Logit(y_bin, x) #, exposure=np.ones(nobs), offset=np.zeros(nobs)) #bug with default + # use start_params to converge faster + start_params = np.array([-0.73403806, -1.00901514, -0.97754543, -0.95648212]) + self.results = model.fit(start_params=start_params, method='bfgs', disp=0) + + +class TestRemoveDataPickleRLM(RemoveDataPickle): + + def setup(self): + #fit for each test, because results will be changed by test + x = self.exog + np.random.seed(987689) + y = x.sum(1) + np.random.randn(x.shape[0]) + self.results = sm.RLM(y, self.exog).fit() + + +class TestRemoveDataPickleGLM(RemoveDataPickle): + + def setup(self): + #fit for each test, because results will be changed by test + x = self.exog + np.random.seed(987689) + y = x.sum(1) + np.random.randn(x.shape[0]) + self.results = sm.GLM(y, self.exog).fit() + + +class TestPickleFormula(RemoveDataPickle): + @classmethod + def setup_class(cls): + nobs = 10000 + np.random.seed(987689) + x = np.random.randn(nobs, 3) + cls.exog = pd.DataFrame(x, columns=["A", "B", "C"]) + cls.xf = pd.DataFrame(0.25 * np.ones((2, 3)), + columns=cls.exog.columns) + cls.l_max = 900000 # have to pickle endo/exog to unpickle form. + + def setup(self): + x = self.exog + np.random.seed(123) + y = x.sum(1) + np.random.randn(x.shape[0]) + y = pd.Series(y, name="Y") + X = self.exog.copy() + X["Y"] = y + self.results = sm.OLS.from_formula("Y ~ A + B + C", data=X).fit() + + +class TestPickleFormula2(RemoveDataPickle): + @classmethod + def setup_class(cls): + nobs = 500 + np.random.seed(987689) + data = np.random.randn(nobs, 4) + data[:,0] = data[:, 1:].sum(1) + cls.data = pd.DataFrame(data, columns=["Y", "A", "B", "C"]) + cls.xf = pd.DataFrame(0.25 * np.ones((2, 3)), + columns=cls.data.columns[1:]) + cls.l_max = 900000 # have to pickle endo/exog to unpickle form. + + def setup(self): + self.results = sm.OLS.from_formula("Y ~ A + B + C", data=self.data).fit() + + +class TestPickleFormula3(TestPickleFormula2): + + def setup(self): + self.results = sm.OLS.from_formula("Y ~ A + B * C", data=self.data).fit() + + +class TestPickleFormula4(TestPickleFormula2): + + def setup(self): + self.results = sm.OLS.from_formula("Y ~ np.log(A) + B * C", data=self.data).fit() + +# we need log in module namespace for the following test +from numpy import log +class TestPickleFormula5(TestPickleFormula2): + + def setup(self): + # if we import here, then unpickling fails -> exception in test + #from numpy import log + self.results = sm.OLS.from_formula("Y ~ log(A) + B * C", data=self.data).fit() + + +if __name__ == '__main__': + for cls in [TestRemoveDataPickleOLS, TestRemoveDataPickleWLS, + TestRemoveDataPicklePoisson, + TestRemoveDataPickleNegativeBinomial, + TestRemoveDataPickleLogit, TestRemoveDataPickleRLM, + TestRemoveDataPickleGLM]: + print(cls) + cls.setup_class() + tt = cls() + tt.setup() + tt.test_remove_data_pickle() + tt.test_remove_data_docstring() + tt.test_pickle_wrapper() diff --git a/statsmodels/base/wrapper.py b/statsmodels/base/wrapper.py new file mode 100644 index 0000000..91ad76e --- /dev/null +++ b/statsmodels/base/wrapper.py @@ -0,0 +1,149 @@ +import inspect +import functools + +import numpy as np +from statsmodels.compat.python import get_function_name, iteritems, getargspec + +class ResultsWrapper(object): + """ + Class which wraps a statsmodels estimation Results class and steps in to + reattach metadata to results (if available) + """ + _wrap_attrs = {} + _wrap_methods = {} + + def __init__(self, results): + self._results = results + self.__doc__ = results.__doc__ + + def __dir__(self): + return [x for x in dir(self._results)] + + def __getattribute__(self, attr): + get = lambda name: object.__getattribute__(self, name) + + try: + results = get('_results') + except AttributeError: + pass + + try: + return get(attr) + except AttributeError: + pass + + obj = getattr(results, attr) + data = results.model.data + how = self._wrap_attrs.get(attr) + if how and isinstance(how, tuple): + obj = data.wrap_output(obj, how[0], *how[1:]) + elif how: + obj = data.wrap_output(obj, how=how) + + return obj + + def __getstate__(self): + #print 'pickling wrapper', self.__dict__ + return self.__dict__ + + def __setstate__(self, dict_): + #print 'unpickling wrapper', dict_ + self.__dict__.update(dict_) + + def save(self, fname, remove_data=False): + '''save a pickle of this instance + + Parameters + ---------- + fname : string or filehandle + fname can be a string to a file path or filename, or a filehandle. + remove_data : bool + If False (default), then the instance is pickled without changes. + If True, then all arrays with length nobs are set to None before + pickling. See the remove_data method. + In some cases not all arrays will be set to None. + + ''' + from statsmodels.iolib.smpickle import save_pickle + + if remove_data: + self.remove_data() + + save_pickle(self, fname) + + @classmethod + def load(cls, fname): + from statsmodels.iolib.smpickle import load_pickle + return load_pickle(fname) + + +def union_dicts(*dicts): + result = {} + for d in dicts: + result.update(d) + return result + + +def make_wrapper(func, how): + @functools.wraps(func) + def wrapper(self, *args, **kwargs): + results = object.__getattribute__(self, '_results') + data = results.model.data + if how and isinstance(how, tuple): + obj = data.wrap_output(func(results, *args, **kwargs), how[0], how[1:]) + elif how: + obj = data.wrap_output(func(results, *args, **kwargs), how) + return obj + + argspec = getargspec(func) + formatted = inspect.formatargspec(argspec[0], varargs=argspec[1], + defaults=argspec[3]) + + func_name = get_function_name(func) + + wrapper.__doc__ = "%s%s\n%s" % (func_name, formatted, wrapper.__doc__) + + return wrapper + + +def populate_wrapper(klass, wrapping): + for meth, how in iteritems(klass._wrap_methods): + if not hasattr(wrapping, meth): + continue + + func = getattr(wrapping, meth) + wrapper = make_wrapper(func, how) + setattr(klass, meth, wrapper) + +if __name__ == '__main__': + import statsmodels.api as sm + from pandas import DataFrame + data = sm.datasets.longley.load() + df = DataFrame(data.exog, columns=data.exog_name) + y = data.endog + # data.exog = sm.add_constant(data.exog) + df['intercept'] = 1. + olsresult = sm.OLS(y, df).fit() + rlmresult = sm.RLM(y, df).fit() + + # olswrap = RegressionResultsWrapper(olsresult) + # rlmwrap = RLMResultsWrapper(rlmresult) + + data = sm.datasets.wfs.load() + # get offset + offset = np.log(data.exog[:, -1]) + exog = data.exog[:, :-1] + + # convert dur to dummy + exog = sm.tools.categorical(exog, col=0, drop=True) + # drop reference category + # convert res to dummy + exog = sm.tools.categorical(exog, col=0, drop=True) + # convert edu to dummy + exog = sm.tools.categorical(exog, col=0, drop=True) + # drop reference categories and add intercept + exog = sm.add_constant(exog[:, [1, 2, 3, 4, 5, 7, 8, 10, 11, 12]], prepend=False) + + endog = np.round(data.endog) + mod = sm.GLM(endog, exog, family=sm.families.Poisson()).fit() + # glmwrap = GLMResultsWrapper(mod) diff --git a/statsmodels/compat/__init__.py b/statsmodels/compat/__init__.py new file mode 100644 index 0000000..5de8af2 --- /dev/null +++ b/statsmodels/compat/__init__.py @@ -0,0 +1 @@ +from .python import * diff --git a/statsmodels/compat/collections.py b/statsmodels/compat/collections.py new file mode 100644 index 0000000..c6366b5 --- /dev/null +++ b/statsmodels/compat/collections.py @@ -0,0 +1,19 @@ +'''backported compatibility functions for Python's collections + +''' + +try: + #python >= 2.7 + from collections import OrderedDict +except ImportError: + #http://code.activestate.com/recipes/576693/ + #author: Raymond Hettinger + from .ordereddict import OrderedDict + +try: + #python >= 2.7 + from collections import Counter +except ImportError: + #http://code.activestate.com/recipes/576611/ + #author: Raymond Hettinger + from .counter import Counter diff --git a/statsmodels/compat/counter.py b/statsmodels/compat/counter.py new file mode 100644 index 0000000..f6da1e5 --- /dev/null +++ b/statsmodels/compat/counter.py @@ -0,0 +1,199 @@ +'''Compatibility module for collections.Counter for python < 2.7 + +Author: Raymond Hettinger +License: MIT License +http://code.activestate.com/recipes/576611/ , downloaded 2013-03-08 + +''' + +from __future__ import print_function +from .python import filter, iteritems +from operator import itemgetter +from heapq import nlargest +from itertools import repeat + +class Counter(dict): + '''Dict subclass for counting hashable objects. Sometimes called a bag + or multiset. Elements are stored as dictionary keys and their counts + are stored as dictionary values. + + >>> Counter('zyzygy') + Counter({'y': 3, 'z': 2, 'g': 1}) + + ''' + + def __init__(self, iterable=None, **kwds): + '''Create a new, empty Counter object. And if given, count elements + from an input iterable. Or, initialize the count from another mapping + of elements to their counts. + + >>> c = Counter() # a new, empty counter + >>> c = Counter('gallahad') # a new counter from an iterable + >>> c = Counter({'a': 4, 'b': 2}) # a new counter from a mapping + >>> c = Counter(a=4, b=2) # a new counter from keyword args + + ''' + self.update(iterable, **kwds) + + def __missing__(self, key): + return 0 + + def most_common(self, n=None): + '''List the n most common elements and their counts from the most + common to the least. If n is None, then list all element counts. + + >>> Counter('abracadabra').most_common(3) + [('a', 5), ('r', 2), ('b', 2)] + + ''' + if n is None: + return sorted(iteritems(self), key=itemgetter(1), reverse=True) + return nlargest(n, iteritems(self), key=itemgetter(1)) + + def elements(self): + '''Iterator over elements repeating each as many times as its count. + + >>> c = Counter('ABCABC') + >>> sorted(c.elements()) + ['A', 'A', 'B', 'B', 'C', 'C'] + + If an element's count has been set to zero or is a negative number, + elements() will ignore it. + + ''' + for elem, count in iteritems(self): + for _ in repeat(None, count): + yield elem + + # Override dict methods where the meaning changes for Counter objects. + + @classmethod + def fromkeys(cls, iterable, v=None): + raise NotImplementedError( + 'Counter.fromkeys() is undefined. Use Counter(iterable) instead.') + + def update(self, iterable=None, **kwds): + '''Like dict.update() but add counts instead of replacing them. + + Source can be an iterable, a dictionary, or another Counter instance. + + >>> c = Counter('which') + >>> c.update('witch') # add elements from another iterable + >>> d = Counter('watch') + >>> c.update(d) # add elements from another counter + >>> c['h'] # four 'h' in which, witch, and watch + 4 + + ''' + if iterable is not None: + if hasattr(iterable, 'iteritems'): + if self: + self_get = self.get + for elem, count in iteritems(iterable): + self[elem] = self_get(elem, 0) + count + else: + dict.update(self, iterable) # fast path when counter is empty + else: + self_get = self.get + for elem in iterable: + self[elem] = self_get(elem, 0) + 1 + if kwds: + self.update(kwds) + + def copy(self): + 'Like dict.copy() but returns a Counter instance instead of a dict.' + return Counter(self) + + def __delitem__(self, elem): + 'Like dict.__delitem__() but does not raise KeyError for missing values.' + if elem in self: + dict.__delitem__(self, elem) + + def __repr__(self): + if not self: + return '%s()' % self.__class__.__name__ + items = ', '.join(map('%r: %r'.__mod__, self.most_common())) + return '%s({%s})' % (self.__class__.__name__, items) + + # Multiset-style mathematical operations discussed in: + # Knuth TAOCP Volume II section 4.6.3 exercise 19 + # and at http://en.wikipedia.org/wiki/Multiset + # + # Outputs guaranteed to only include positive counts. + # + # To strip negative and zero counts, add-in an empty counter: + # c += Counter() + + def __add__(self, other): + '''Add counts from two counters. + + >>> Counter('abbb') + Counter('bcc') + Counter({'b': 4, 'c': 2, 'a': 1}) + + + ''' + if not isinstance(other, Counter): + return NotImplemented + result = Counter() + for elem in set(self) | set(other): + newcount = self[elem] + other[elem] + if newcount > 0: + result[elem] = newcount + return result + + def __sub__(self, other): + ''' Subtract count, but keep only results with positive counts. + + >>> Counter('abbbc') - Counter('bccd') + Counter({'b': 2, 'a': 1}) + + ''' + if not isinstance(other, Counter): + return NotImplemented + result = Counter() + for elem in set(self) | set(other): + newcount = self[elem] - other[elem] + if newcount > 0: + result[elem] = newcount + return result + + def __or__(self, other): + '''Union is the maximum of value in either of the input counters. + + >>> Counter('abbb') | Counter('bcc') + Counter({'b': 3, 'c': 2, 'a': 1}) + + ''' + if not isinstance(other, Counter): + return NotImplemented + _max = max + result = Counter() + for elem in set(self) | set(other): + newcount = _max(self[elem], other[elem]) + if newcount > 0: + result[elem] = newcount + return result + + def __and__(self, other): + ''' Intersection is the minimum of corresponding counts. + + >>> Counter('abbb') & Counter('bcc') + Counter({'b': 1}) + + ''' + if not isinstance(other, Counter): + return NotImplemented + _min = min + result = Counter() + if len(self) < len(other): + self, other = other, self + for elem in filter(self.__contains__, other): + newcount = _min(self[elem], other[elem]) + if newcount > 0: + result[elem] = newcount + return result + + +if __name__ == '__main__': + import doctest + print(doctest.testmod()) diff --git a/statsmodels/compat/numpy.py b/statsmodels/compat/numpy.py new file mode 100644 index 0000000..285066f --- /dev/null +++ b/statsmodels/compat/numpy.py @@ -0,0 +1,452 @@ +"""Compatibility functions for numpy versions in lib + +np.unique +--------- +Behavior changed in 1.6.2 and doesn't work for structured arrays if +return_index=True. +Only needed for this case, use np.unique otherwise + + +License: + +np_unique below is copied form the numpy source before the change and is +distributed under the BSD-3 license + +Copyright (c) 2005-2009, NumPy Developers. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of the NumPy Developers nor the names of any + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +np_new_unique +------------- +Optionally provides the count of the number of occurences of each +unique element. + +Copied from Numpy source, under license: + +Copyright (c) 2005-2015, NumPy Developers. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +* Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + +* Neither the name of the NumPy Developers nor the names of any + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +""" + +from __future__ import absolute_import +from .scipy import NumpyVersion +import numpy as np + +if NumpyVersion(np.__version__) < '1.6.2': + npc_unique = np.unique +else: + + def npc_unique(ar, return_index=False, return_inverse=False): + """ + Find the unique elements of an array. + + Returns the sorted unique elements of an array. There are two optional + outputs in addition to the unique elements: the indices of the input array + that give the unique values, and the indices of the unique array that + reconstruct the input array. + + Parameters + ---------- + ar : array_like + Input array. This will be flattened if it is not already 1-D. + return_index : bool, optional + If True, also return the indices of `ar` that result in the unique + array. + return_inverse : bool, optional + If True, also return the indices of the unique array that can be used + to reconstruct `ar`. + + Returns + ------- + unique : ndarray + The sorted unique values. + unique_indices : ndarray, optional + The indices of the unique values in the (flattened) original array. + Only provided if `return_index` is True. + unique_inverse : ndarray, optional + The indices to reconstruct the (flattened) original array from the + unique array. Only provided if `return_inverse` is True. + + See Also + -------- + numpy.lib.arraysetops : Module with a number of other functions for + performing set operations on arrays. + + Examples + -------- + >>> np.unique([1, 1, 2, 2, 3, 3]) + array([1, 2, 3]) + >>> a = np.array([[1, 1], [2, 3]]) + >>> np.unique(a) + array([1, 2, 3]) + + Return the indices of the original array that give the unique values: + + >>> a = np.array(['a', 'b', 'b', 'c', 'a']) + >>> u, indices = np.unique(a, return_index=True) + >>> u + array(['a', 'b', 'c'], + dtype='|S1') + >>> indices + array([0, 1, 3]) + >>> a[indices] + array(['a', 'b', 'c'], + dtype='|S1') + + Reconstruct the input array from the unique values: + + >>> a = np.array([1, 2, 6, 4, 2, 3, 2]) + >>> u, indices = np.unique(a, return_inverse=True) + >>> u + array([1, 2, 3, 4, 6]) + >>> indices + array([0, 1, 4, 3, 1, 2, 1]) + >>> u[indices] + array([1, 2, 6, 4, 2, 3, 2]) + + """ + try: + ar = ar.flatten() + except AttributeError: + if not return_inverse and not return_index: + items = sorted(set(ar)) + return np.asarray(items) + else: + ar = np.asanyarray(ar).flatten() + + if ar.size == 0: + if return_inverse and return_index: + return ar, np.empty(0, np.bool), np.empty(0, np.bool) + elif return_inverse or return_index: + return ar, np.empty(0, np.bool) + else: + return ar + + if return_inverse or return_index: + perm = ar.argsort() + aux = ar[perm] + flag = np.concatenate(([True], aux[1:] != aux[:-1])) + if return_inverse: + iflag = np.cumsum(flag) - 1 + iperm = perm.argsort() + if return_index: + return aux[flag], perm[flag], iflag[iperm] + else: + return aux[flag], iflag[iperm] + else: + return aux[flag], perm[flag] + + else: + ar.sort() + flag = np.concatenate(([True], ar[1:] != ar[:-1])) + return ar[flag] + +if NumpyVersion(np.__version__) >= '1.7.1': + np_matrix_rank = np.linalg.matrix_rank +else: + def np_matrix_rank(M, tol=None): + """ + Return matrix rank of array using SVD method + + Rank of the array is the number of SVD singular values of the array that are + greater than `tol`. + + Parameters + ---------- + M : {(M,), (M, N)} array_like + array of <=2 dimensions + tol : {None, float}, optional + threshold below which SVD values are considered zero. If `tol` is + None, and ``S`` is an array with singular values for `M`, and + ``eps`` is the epsilon value for datatype of ``S``, then `tol` is + set to ``S.max() * max(M.shape) * eps``. + + Notes + ----- + The default threshold to detect rank deficiency is a test on the magnitude + of the singular values of `M`. By default, we identify singular values less + than ``S.max() * max(M.shape) * eps`` as indicating rank deficiency (with + the symbols defined above). This is the algorithm MATLAB uses [1]. It also + appears in *Numerical recipes* in the discussion of SVD solutions for linear + least squares [2]. + + This default threshold is designed to detect rank deficiency accounting for + the numerical errors of the SVD computation. Imagine that there is a column + in `M` that is an exact (in floating point) linear combination of other + columns in `M`. Computing the SVD on `M` will not produce a singular value + exactly equal to 0 in general: any difference of the smallest SVD value from + 0 will be caused by numerical imprecision in the calculation of the SVD. + Our threshold for small SVD values takes this numerical imprecision into + account, and the default threshold will detect such numerical rank + deficiency. The threshold may declare a matrix `M` rank deficient even if + the linear combination of some columns of `M` is not exactly equal to + another column of `M` but only numerically very close to another column of + `M`. + + We chose our default threshold because it is in wide use. Other thresholds + are possible. For example, elsewhere in the 2007 edition of *Numerical + recipes* there is an alternative threshold of ``S.max() * + np.finfo(M.dtype).eps / 2. * np.sqrt(m + n + 1.)``. The authors describe + this threshold as being based on "expected roundoff error" (p 71). + + The thresholds above deal with floating point roundoff error in the + calculation of the SVD. However, you may have more information about the + sources of error in `M` that would make you consider other tolerance values + to detect *effective* rank deficiency. The most useful measure of the + tolerance depends on the operations you intend to use on your matrix. For + example, if your data come from uncertain measurements with uncertainties + greater than floating point epsilon, choosing a tolerance near that + uncertainty may be preferable. The tolerance may be absolute if the + uncertainties are absolute rather than relative. + + References + ---------- + .. [1] MATLAB reference documention, "Rank" + http://www.mathworks.com/help/techdoc/ref/rank.html + .. [2] W. H. Press, S. A. Teukolsky, W. T. Vetterling and B. P. Flannery, + "Numerical Recipes (3rd edition)", Cambridge University Press, 2007, + page 795. + + Examples + -------- + >>> from numpy.linalg import matrix_rank + >>> matrix_rank(np.eye(4)) # Full rank matrix + 4 + >>> I=np.eye(4); I[-1,-1] = 0. # rank deficient matrix + >>> matrix_rank(I) + 3 + >>> matrix_rank(np.ones((4,))) # 1 dimension - rank 1 unless all 0 + 1 + >>> matrix_rank(np.zeros((4,))) + 0 + """ + M = np.asarray(M) + if M.ndim > 2: + raise TypeError('array should have 2 or fewer dimensions') + if M.ndim < 2: + return int(not all(M == 0)) + S = np.linalg.svd(M, compute_uv=False) + if tol is None: + tol = S.max() * max(M.shape) * np.finfo(S.dtype).eps + return np.sum(S > tol) + +if NumpyVersion(np.__version__) >= '1.8.0': + nanmean = np.nanmean +else: + def nanmean(a, axis=None): + """ + Parameters + ---------- + a : array_like + Array containing numbers whose mean is desired. If `a` is not an + array, a conversion is attempted. + axis : int, optional + Axis along which the means are computed. The default is to compute + the mean of the flattened array. + + Returns + ------- + m : ndarray, see dtype parameter above + If `out=None`, returns a new array containing the mean values, + otherwise a reference to the output array is returned. Nan is + returned for slices that contain only NaNs. + + Notes + ----- + Work around for nanmean which was introducted in 1.8. Does not + support all features. + """ + sum = np.nansum(a, axis=axis) + count = np.sum(np.logical_not(np.isnan(a)), axis=axis) + zero_count = count == 0 + + if zero_count.any(): + avg = np.zeros_like(sum) + non_zero_count = np.logical_not(zero_count) + avg[zero_count] = np.nan + avg[non_zero_count] = sum[non_zero_count] / count[non_zero_count] + else: + avg = sum / count + + return avg + + +if NumpyVersion(np.__version__) >= '1.9.0': + np_new_unique = np.unique +else: + def np_new_unique(ar, return_index=False, return_inverse=False, return_counts=False): + """ + Find the unique elements of an array. + + Returns the sorted unique elements of an array. There are three optional + outputs in addition to the unique elements: the indices of the input array + that give the unique values, the indices of the unique array that + reconstruct the input array, and the number of times each unique value + comes up in the input array. + + Parameters + ---------- + ar : array_like + Input array. This will be flattened if it is not already 1-D. + return_index : bool, optional + If True, also return the indices of `ar` that result in the unique + array. + return_inverse : bool, optional + If True, also return the indices of the unique array that can be used + to reconstruct `ar`. + return_counts : bool, optional + If True, also return the number of times each unique value comes up + in `ar`. + + .. versionadded:: 1.9.0 + + Returns + ------- + unique : ndarray + The sorted unique values. + unique_indices : ndarray, optional + The indices of the first occurrences of the unique values in the + (flattened) original array. Only provided if `return_index` is True. + unique_inverse : ndarray, optional + The indices to reconstruct the (flattened) original array from the + unique array. Only provided if `return_inverse` is True. + unique_counts : ndarray, optional + The number of times each of the unique values comes up in the + original array. Only provided if `return_counts` is True. + + .. versionadded:: 1.9.0 + + See Also + -------- + numpy.lib.arraysetops : Module with a number of other functions for + performing set operations on arrays. + + Examples + -------- + >>> np.unique([1, 1, 2, 2, 3, 3]) + array([1, 2, 3]) + >>> a = np.array([[1, 1], [2, 3]]) + >>> np.unique(a) + array([1, 2, 3]) + + Return the indices of the original array that give the unique values: + + >>> a = np.array(['a', 'b', 'b', 'c', 'a']) + >>> u, indices = np.unique(a, return_index=True) + >>> u + array(['a', 'b', 'c'], + dtype='|S1') + >>> indices + array([0, 1, 3]) + >>> a[indices] + array(['a', 'b', 'c'], + dtype='|S1') + + Reconstruct the input array from the unique values: + + >>> a = np.array([1, 2, 6, 4, 2, 3, 2]) + >>> u, indices = np.unique(a, return_inverse=True) + >>> u + array([1, 2, 3, 4, 6]) + >>> indices + array([0, 1, 4, 3, 1, 2, 1]) + >>> u[indices] + array([1, 2, 6, 4, 2, 3, 2]) + + """ + ar = np.asanyarray(ar).flatten() + + optional_indices = return_index or return_inverse + optional_returns = optional_indices or return_counts + + if ar.size == 0: + if not optional_returns: + ret = ar + else: + ret = (ar,) + if return_index: + ret += (np.empty(0, np.bool),) + if return_inverse: + ret += (np.empty(0, np.bool),) + if return_counts: + ret += (np.empty(0, np.intp),) + return ret + + if optional_indices: + perm = ar.argsort(kind='mergesort' if return_index else 'quicksort') + aux = ar[perm] + else: + ar.sort() + aux = ar + flag = np.concatenate(([True], aux[1:] != aux[:-1])) + + if not optional_returns: + ret = aux[flag] + else: + ret = (aux[flag],) + if return_index: + ret += (perm[flag],) + if return_inverse: + iflag = np.cumsum(flag) - 1 + inv_idx = np.empty(ar.shape, dtype=np.intp) + inv_idx[perm] = iflag + ret += (inv_idx,) + if return_counts: + idx = np.concatenate(np.nonzero(flag) + ([ar.size],)) + ret += (np.diff(idx),) + return ret diff --git a/statsmodels/compat/ordereddict.py b/statsmodels/compat/ordereddict.py new file mode 100644 index 0000000..9a4da3b --- /dev/null +++ b/statsmodels/compat/ordereddict.py @@ -0,0 +1,262 @@ +# Backport of OrderedDict() class that runs on Python 2.4, 2.5, 2.6, 2.7 and pypy. +# Passes Python2.7's test suite and incorporates all the latest updates. + +#Author: Raymond Hettinger +#License: MIT License +#http://code.activestate.com/recipes/576693/ revision 9, downloaded 2012-03-28 +from .python import iterkeys, iteritems +try: + from thread import get_ident as _get_ident +except ImportError: + from dummy_thread import get_ident as _get_ident + +try: + from _abcoll import KeysView, ValuesView, ItemsView +except ImportError: + pass + + +class OrderedDict(dict): + 'Dictionary that remembers insertion order' + # An inherited dict maps keys to values. + # The inherited dict provides __getitem__, __len__, __contains__, and get. + # The remaining methods are order-aware. + # Big-O running times for all methods are the same as for regular dictionaries. + + # The internal self.__map dictionary maps keys to links in a doubly linked list. + # The circular doubly linked list starts and ends with a sentinel element. + # The sentinel element never gets deleted (this simplifies the algorithm). + # Each link is stored as a list of length three: [PREV, NEXT, KEY]. + + def __init__(self, *args, **kwds): + '''Initialize an ordered dictionary. Signature is the same as for + regular dictionaries, but keyword arguments are not recommended + because their insertion order is arbitrary. + + ''' + if len(args) > 1: + raise TypeError('expected at most 1 arguments, got %d' % len(args)) + try: + self.__root + except AttributeError: + self.__root = root = [] # sentinel node + root[:] = [root, root, None] + self.__map = {} + self.__update(*args, **kwds) + + def __setitem__(self, key, value, dict_setitem=dict.__setitem__): + 'od.__setitem__(i, y) <==> od[i]=y' + # Setting a new item creates a new link which goes at the end of the linked + # list, and the inherited dictionary is updated with the new key/value pair. + if key not in self: + root = self.__root + last = root[0] + last[1] = root[0] = self.__map[key] = [last, root, key] + dict_setitem(self, key, value) + + def __delitem__(self, key, dict_delitem=dict.__delitem__): + 'od.__delitem__(y) <==> del od[y]' + # Deleting an existing item uses self.__map to find the link which is + # then removed by updating the links in the predecessor and successor nodes. + dict_delitem(self, key) + link_prev, link_next, key = self.__map.pop(key) + link_prev[1] = link_next + link_next[0] = link_prev + + def __iter__(self): + 'od.__iter__() <==> iter(od)' + root = self.__root + curr = root[1] + while curr is not root: + yield curr[2] + curr = curr[1] + + def __reversed__(self): + 'od.__reversed__() <==> reversed(od)' + root = self.__root + curr = root[0] + while curr is not root: + yield curr[2] + curr = curr[0] + + def clear(self): + 'od.clear() -> None. Remove all items from od.' + try: + for node in self.__map.itervalues(): + del node[:] + root = self.__root + root[:] = [root, root, None] + self.__map.clear() + except AttributeError: + pass + dict.clear(self) + + def popitem(self, last=True): + '''od.popitem() -> (k, v), return and remove a (key, value) pair. + Pairs are returned in LIFO order if last is true or FIFO order if false. + + ''' + if not self: + raise KeyError('dictionary is empty') + root = self.__root + if last: + link = root[0] + link_prev = link[0] + link_prev[1] = root + root[0] = link_prev + else: + link = root[1] + link_next = link[1] + root[1] = link_next + link_next[0] = root + key = link[2] + del self.__map[key] + value = dict.pop(self, key) + return key, value + + # -- the following methods do not depend on the internal structure -- + + def keys(self): + 'od.keys() -> list of keys in od' + return list(self) + + def values(self): + 'od.values() -> list of values in od' + return [self[key] for key in self] + + def items(self): + 'od.items() -> list of (key, value) pairs in od' + return [(key, self[key]) for key in self] + + def iterkeys(self): + 'od.iterkeys() -> an iterator over the keys in od' + return iter(self) + + def itervalues(self): + 'od.itervalues -> an iterator over the values in od' + for k in self: + yield self[k] + + def iteritems(self): + 'od.iteritems -> an iterator over the (key, value) items in od' + for k in self: + yield (k, self[k]) + + def update(*args, **kwds): + '''od.update(E, **F) -> None. Update od from dict/iterable E and F. + + If E is a dict instance, does: for k in E: od[k] = E[k] + If E has a .keys() method, does: for k in E.keys(): od[k] = E[k] + Or if E is an iterable of items, does: for k, v in E: od[k] = v + In either case, this is followed by: for k, v in F.items(): od[k] = v + + ''' + if len(args) > 2: + raise TypeError('update() takes at most 2 positional ' + 'arguments (%d given)' % (len(args),)) + elif not args: + raise TypeError('update() takes at least 1 argument (0 given)') + self = args[0] + # Make progressively weaker assumptions about "other" + other = () + if len(args) == 2: + other = args[1] + if isinstance(other, dict): + for key in other: + self[key] = other[key] + elif hasattr(other, 'keys'): + for key in iterkeys(other): + self[key] = other[key] + else: + for key, value in other: + self[key] = value + for key, value in iteritems(kwds): + self[key] = value + + __update = update # let subclasses override update without breaking __init__ + + __marker = object() + + def pop(self, key, default=__marker): + '''od.pop(k[,d]) -> v, remove specified key and return the corresponding value. + If key is not found, d is returned if given, otherwise KeyError is raised. + + ''' + if key in self: + result = self[key] + del self[key] + return result + if default is self.__marker: + raise KeyError(key) + return default + + def setdefault(self, key, default=None): + 'od.setdefault(k[,d]) -> od.get(k,d), also set od[k]=d if k not in od' + if key in self: + return self[key] + self[key] = default + return default + + def __repr__(self, _repr_running={}): + 'od.__repr__() <==> repr(od)' + call_key = id(self), _get_ident() + if call_key in _repr_running: + return '...' + _repr_running[call_key] = 1 + try: + if not self: + return '%s()' % (self.__class__.__name__,) + return '%s(%r)' % (self.__class__.__name__, self.items()) + finally: + del _repr_running[call_key] + + def __reduce__(self): + 'Return state information for pickling' + items = [[k, self[k]] for k in self] + inst_dict = vars(self).copy() + for k in vars(OrderedDict()): + inst_dict.pop(k, None) + if inst_dict: + return (self.__class__, (items,), inst_dict) + return self.__class__, (items,) + + def copy(self): + 'od.copy() -> a shallow copy of od' + return self.__class__(self) + + @classmethod + def fromkeys(cls, iterable, value=None): + '''OD.fromkeys(S[, v]) -> New ordered dictionary with keys from S + and values equal to v (which defaults to None). + + ''' + d = cls() + for key in iterable: + d[key] = value + return d + + def __eq__(self, other): + '''od.__eq__(y) <==> od==y. Comparison to another OD is order-sensitive + while comparison to a regular mapping is order-insensitive. + + ''' + if isinstance(other, OrderedDict): + return len(self)==len(other) and self.items() == other.items() + return dict.__eq__(self, other) + + def __ne__(self, other): + return not self == other + + # -- the following methods are only used in Python 2.7 -- + + def viewkeys(self): + "od.viewkeys() -> a set-like object providing a view on od's keys" + return KeysView(self) + + def viewvalues(self): + "od.viewvalues() -> an object providing a view on od's values" + return ValuesView(self) + + def viewitems(self): + "od.viewitems() -> a set-like object providing a view on od's items" + return ItemsView(self) diff --git a/statsmodels/compat/pandas.py b/statsmodels/compat/pandas.py new file mode 100644 index 0000000..738e044 --- /dev/null +++ b/statsmodels/compat/pandas.py @@ -0,0 +1,47 @@ +from __future__ import absolute_import + +from distutils.version import LooseVersion + +import numpy as np +import pandas + + +version = LooseVersion(pandas.__version__) + +if version >= '0.17.0': + def sort_values(df, *args, **kwargs): + return df.sort_values(*args, **kwargs) +elif version >= '0.14.0': + def sort_values(df, *args, **kwargs): + kwargs.setdefault('inplace', False) # always set inplace with 'False' as default + return df.sort(*args, **kwargs) +else: # Before that, sort didn't have 'inplace' for non data-frame + def sort_values(df, *args, **kwargs): + if isinstance(df, pandas.DataFrame): + return df.sort(*args, **kwargs) + # Just make sure inplace is 'False' by default, but doesn't appear in the final arguments + # Here, setdefaults will ensure the del operation always succeeds + inplace = kwargs.setdefault('inplace', False) + del kwargs['inplace'] + if not inplace: + df = df.copy() + df.sort(*args, **kwargs) + return df + +try: + from pandas import RangeIndex +except ImportError: + RangeIndex = tuple() + +try: + from pandas.core.common import is_numeric_dtype +except ImportError: + # Pandas <= 0.14 + def is_numeric_dtype(arr_or_dtype): + # Crude implementation only suitable for array-like types + try: + tipo = arr_or_dtype.dtype.type + except AttributeError: + tipo = type(None) + return (issubclass(tipo, (np.number, np.bool_)) and + not issubclass(tipo, (np.datetime64, np.timedelta64))) diff --git a/statsmodels/compat/python.py b/statsmodels/compat/python.py new file mode 100644 index 0000000..790fc14 --- /dev/null +++ b/statsmodels/compat/python.py @@ -0,0 +1,265 @@ +""" +Compatibility tools for differences between Python 2 and 3 +""" +import functools +import itertools +import sys +import urllib + +PY3 = (sys.version_info[0] >= 3) +PY3_2 = sys.version_info[:2] == (3, 2) + +if PY3: + import builtins + from collections import namedtuple + from io import StringIO, BytesIO + import inspect + + cStringIO = StringIO + import pickle as cPickle + pickle = cPickle + import urllib.request + import urllib.parse + from urllib.request import HTTPError, urlretrieve, URLError + import io + bytes = bytes + str = str + asunicode = lambda x, _ : str(x) + + def asbytes(s): + if isinstance(s, bytes): + return s + return s.encode('latin1') + + def asstr(s): + if isinstance(s, str): + return s + return s.decode('latin1') + + def asstr2(s): #added JP, not in numpy version + if isinstance(s, str): + return s + elif isinstance(s, bytes): + return s.decode('latin1') + else: + return str(s) + + def isfileobj(f): + return isinstance(f, io.FileIO) + + def open_latin1(filename, mode='r'): + return open(filename, mode=mode, encoding='iso-8859-1') + + strchar = 'U' + + # have to explicitly put builtins into the namespace + range = range + map = map + zip = zip + filter = filter + reduce = functools.reduce + long = int + unichr = chr + zip_longest = itertools.zip_longest + + # list-producing versions of the major Python iterating functions + def lrange(*args, **kwargs): + return list(range(*args, **kwargs)) + + def lzip(*args, **kwargs): + return list(zip(*args, **kwargs)) + + def lmap(*args, **kwargs): + return list(map(*args, **kwargs)) + + def lfilter(*args, **kwargs): + return list(filter(*args, **kwargs)) + + urlopen = urllib.request.urlopen + urljoin = urllib.parse.urljoin + urlretrieve = urllib.request.urlretrieve + urlencode = urllib.parse.urlencode + string_types = str + input = input + + ArgSpec= namedtuple('ArgSpec', ['args', 'varargs', 'keywords', 'defaults']) + def getargspec(func): + """ + Simple workaroung for getargspec deprecation that returns + an ArgSpec-like object + """ + sig = inspect.signature(func) + parameters = sig.parameters + args, defaults = [], [] + varargs, keywords = None, None + + for key in parameters: + parameter = parameters[key] + + if parameter.kind == inspect.Parameter.VAR_POSITIONAL: + varargs = key + elif parameter.kind == inspect.Parameter.VAR_KEYWORD: + keywords = key + else: + args.append(key) + if parameter.default is not parameter.empty: + defaults.append(parameter.default) + defaults = None if len(defaults) == 0 else defaults + + return ArgSpec(args, varargs, keywords, defaults) + +else: + import __builtin__ as builtins + # not writeable when instantiated with string, doesn't handle unicode well + from cStringIO import StringIO as cStringIO + # always writeable + from StringIO import StringIO + from inspect import getargspec + + BytesIO = StringIO + import cPickle + pickle = cPickle + import urllib2 + import urlparse + + bytes = str + str = str + asbytes = str + asstr = str + asstr2 = str + strchar = 'S' + + def isfileobj(f): + return isinstance(f, file) + + def asunicode(s, encoding='ascii'): + if isinstance(s, unicode): + return s + return s.decode(encoding) + + def open_latin1(filename, mode='r'): + return open(filename, mode=mode) + + # import iterator versions of these functions + range = xrange + zip = itertools.izip + filter = itertools.ifilter + map = itertools.imap + reduce = reduce + long = long + unichr = unichr + zip_longest = itertools.izip_longest + + # Python 2-builtin ranges produce lists + lrange = builtins.range + lzip = builtins.zip + lmap = builtins.map + lfilter = builtins.filter + + urlopen = urllib2.urlopen + urljoin = urlparse.urljoin + urlencode = urllib.urlencode + HTTPError = urllib2.HTTPError + URLError = urllib2.URLError + string_types = basestring + + input = raw_input + + +def getexception(): + return sys.exc_info()[1] + + +def asbytes_nested(x): + if hasattr(x, '__iter__') and not isinstance(x, (bytes, str)): + return [asbytes_nested(y) for y in x] + else: + return asbytes(x) + + +def asunicode_nested(x): + if hasattr(x, '__iter__') and not isinstance(x, (bytes, str)): + return [asunicode_nested(y) for y in x] + else: + return asunicode(x) + + +try: + advance_iterator = next +except NameError: + def advance_iterator(it): + return it.next() +next = advance_iterator + + +try: + callable = callable +except NameError: + def callable(obj): + return any("__call__" in klass.__dict__ for klass in type(obj).__mro__) + +def iteritems(obj, **kwargs): + """replacement for six's iteritems for Python2/3 compat + uses 'iteritems' if available and otherwise uses 'items'. + + Passes kwargs to method. + """ + func = getattr(obj, "iteritems", None) + if not func: + func = obj.items + return func(**kwargs) + + +def iterkeys(obj, **kwargs): + func = getattr(obj, "iterkeys", None) + if not func: + func = obj.keys + return func(**kwargs) + + +def itervalues(obj, **kwargs): + func = getattr(obj, "itervalues", None) + if not func: + func = obj.values + return func(**kwargs) + + +def get_function_name(func): + try: + return func.im_func.func_name + except AttributeError: + #Python 3 + return func.__name__ + +def get_class(func): + try: + return func.im_class + except AttributeError: + #Python 3 + return func.__self__.__class__ + +try: + combinations = itertools.combinations +except: + # Python 2.6 only + def combinations(iterable, r): + # combinations('ABCD', 2) --> AB AC AD BC BD CD + # combinations(lrange(4), 3) --> 012 013 023 123 + pool = tuple(iterable) + n = len(pool) + if r > n: + return + indices = lrange(r) + yield tuple(pool[i] for i in indices) + while True: + for i in reversed(lrange(r)): + if indices[i] != i + n - r: + break + else: + return + indices[i] += 1 + for j in range(i+1, r): + indices[j] = indices[j-1] + 1 + yield tuple(pool[i] for i in indices) + + diff --git a/statsmodels/compat/scipy.py b/statsmodels/compat/scipy.py new file mode 100644 index 0000000..72b1bf2 --- /dev/null +++ b/statsmodels/compat/scipy.py @@ -0,0 +1,208 @@ +from __future__ import absolute_import +import numpy as np + + +def _bit_length_26(x): + if x == 0: + return 0 + elif x == 1: + return 1 + else: + return len(bin(x)) - 2 + + +try: + from scipy.lib._version import NumpyVersion +except ImportError: + import re + from .python import string_types + + class NumpyVersion(): + """Parse and compare numpy version strings. + + Numpy has the following versioning scheme (numbers given are examples; they + can be >9) in principle): + + - Released version: '1.8.0', '1.8.1', etc. + - Alpha: '1.8.0a1', '1.8.0a2', etc. + - Beta: '1.8.0b1', '1.8.0b2', etc. + - Release candidates: '1.8.0rc1', '1.8.0rc2', etc. + - Development versions: '1.8.0.dev-f1234afa' (git commit hash appended) + - Development versions after a1: '1.8.0a1.dev-f1234afa', + '1.8.0b2.dev-f1234afa', + '1.8.1rc1.dev-f1234afa', etc. + - Development versions (no git hash available): '1.8.0.dev-Unknown' + + Comparing needs to be done against a valid version string or other + `NumpyVersion` instance. + + Parameters + ---------- + vstring : str + Numpy version string (``np.__version__``). + + Notes + ----- + All dev versions of the same (pre-)release compare equal. + + Examples + -------- + >>> from scipy.lib._version import NumpyVersion + >>> if NumpyVersion(np.__version__) < '1.7.0': + ... print('skip') + skip + + >>> NumpyVersion('1.7') # raises ValueError, add ".0" + + """ + + def __init__(self, vstring): + self.vstring = vstring + ver_main = re.match(r'\d[.]\d+[.]\d+', vstring) + if not ver_main: + raise ValueError("Not a valid numpy version string") + + self.version = ver_main.group() + self.major, self.minor, self.bugfix = [int(x) for x in + self.version.split('.')] + if len(vstring) == ver_main.end(): + self.pre_release = 'final' + else: + alpha = re.match(r'a\d', vstring[ver_main.end():]) + beta = re.match(r'b\d', vstring[ver_main.end():]) + rc = re.match(r'rc\d', vstring[ver_main.end():]) + pre_rel = [m for m in [alpha, beta, rc] if m is not None] + if pre_rel: + self.pre_release = pre_rel[0].group() + else: + self.pre_release = '' + + self.is_devversion = bool(re.search(r'.dev-', vstring)) + + def _compare_version(self, other): + """Compare major.minor.bugfix""" + if self.major == other.major: + if self.minor == other.minor: + if self.bugfix == other.bugfix: + vercmp = 0 + elif self.bugfix > other.bugfix: + vercmp = 1 + else: + vercmp = -1 + elif self.minor > other.minor: + vercmp = 1 + else: + vercmp = -1 + elif self.major > other.major: + vercmp = 1 + else: + vercmp = -1 + + return vercmp + + def _compare_pre_release(self, other): + """Compare alpha/beta/rc/final.""" + if self.pre_release == other.pre_release: + vercmp = 0 + elif self.pre_release == 'final': + vercmp = 1 + elif other.pre_release == 'final': + vercmp = -1 + elif self.pre_release > other.pre_release: + vercmp = 1 + else: + vercmp = -1 + + return vercmp + + def _compare(self, other): + if not isinstance(other, (string_types, NumpyVersion)): + raise ValueError("Invalid object to compare with NumpyVersion.") + + if isinstance(other, string_types): + other = NumpyVersion(other) + + vercmp = self._compare_version(other) + if vercmp == 0: + # Same x.y.z version, check for alpha/beta/rc + vercmp = self._compare_pre_release(other) + if vercmp == 0: + # Same version and same pre-release, check if dev version + if self.is_devversion is other.is_devversion: + vercmp = 0 + elif self.is_devversion: + vercmp = -1 + else: + vercmp = 1 + + return vercmp + + def __lt__(self, other): + return self._compare(other) < 0 + + def __le__(self, other): + return self._compare(other) <= 0 + + def __eq__(self, other): + return self._compare(other) == 0 + + def __ne__(self, other): + return self._compare(other) != 0 + + def __gt__(self, other): + return self._compare(other) > 0 + + def __ge__(self, other): + return self._compare(other) >= 0 + + def __repr(self): + return "NumpyVersion(%s)" % self.vstring + + +def _next_regular(target): + """ + Find the next regular number greater than or equal to target. + Regular numbers are composites of the prime factors 2, 3, and 5. + Also known as 5-smooth numbers or Hamming numbers, these are the optimal + size for inputs to FFTPACK. + + Target must be a positive integer. + """ + if target <= 6: + return target + + # Quickly check if it's already a power of 2 + if not (target & (target - 1)): + return target + + match = float('inf') # Anything found will be smaller + p5 = 1 + while p5 < target: + p35 = p5 + while p35 < target: + # Ceiling integer division, avoiding conversion to float + # (quotient = ceil(target / p35)) + quotient = -(-target // p35) + # Quickly find next power of 2 >= quotient + try: + p2 = 2 ** ((quotient - 1).bit_length()) + except AttributeError: + # Fallback for Python <2.7 + p2 = 2 ** _bit_length_26(quotient - 1) + + N = p2 * p35 + if N == target: + return N + elif N < match: + match = N + p35 *= 3 + if p35 == target: + return p35 + if p35 < match: + match = p35 + p5 *= 5 + if p5 == target: + return p5 + if p5 < match: + match = p5 + return match diff --git a/statsmodels/compat/tests/__init__.py b/statsmodels/compat/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/compat/tests/test_collections.py b/statsmodels/compat/tests/test_collections.py new file mode 100644 index 0000000..0948ecf --- /dev/null +++ b/statsmodels/compat/tests/test_collections.py @@ -0,0 +1,11 @@ +from statsmodels.compat import iteritems +from statsmodels.compat.collections import Counter +from numpy.testing import assert_ + + +def test_counter(): + #just check a basic example + c = Counter('gallahad') + res = [('a', 3), ('d', 1), ('g', 1), ('h', 1), ('l', 2)] + msg = 'gallahad fails\n'+repr(sorted(iteritems(c))) + assert_(sorted(iteritems(c)) == res, msg=msg) diff --git a/statsmodels/compat/tests/test_itercompat.py b/statsmodels/compat/tests/test_itercompat.py new file mode 100644 index 0000000..9479b2c --- /dev/null +++ b/statsmodels/compat/tests/test_itercompat.py @@ -0,0 +1,42 @@ +# -*- coding: utf-8 -*- +""" + +Created on Wed Feb 29 10:34:00 2012 + +Author: Josef Perktold +""" +from statsmodels.compat import lrange, zip_longest, combinations +from numpy.testing import assert_ + + +def test_zip_longest(): + lili = [['a0', 'b0', 'c0', 'd0'], + ['a1', 'b1', 'c1'], + ['a2', 'b2', 'c2', 'd2'], + ['a3', 'b3', 'c3', 'd3'], + ['a4', 'b4']] + + transposed = [('a0', 'a1', 'a2', 'a3', 'a4'), + ('b0', 'b1', 'b2', 'b3', 'b4'), + ('c0', 'c1', 'c2', 'c3', None), + ('d0', None, 'd2', 'd3', None)] + + assert_(list(zip_longest(*lili)) == transposed, '%r not equal %r' % ( + zip_longest(*lili), transposed)) + +def test_combinations(): + actual = list(combinations('ABCD', 2)) + desired = [('A', 'B'), ('A', 'C'), ('A', 'D'), ('B', 'C'), ('B', 'D'), + ('C', 'D')] + assert_(actual == desired, '%r not equal %r' % (actual, desired)) + + actual = list(combinations(lrange(4), 3)) + desired = [(0, 1, 2), (0, 1, 3), (0, 2, 3), (1, 2, 3)] + assert_(actual == desired, '%r not equal %r' % (actual, desired)) + + + + +if __name__ == '__main__': + test_zip_longest() + test_combinations() diff --git a/statsmodels/compat/tests/test_scipy_compat.py b/statsmodels/compat/tests/test_scipy_compat.py new file mode 100644 index 0000000..028c2f2 --- /dev/null +++ b/statsmodels/compat/tests/test_scipy_compat.py @@ -0,0 +1,85 @@ +from numpy.testing import assert_equal +from statsmodels.compat.scipy import _next_regular + + +def test_next_regular(): + hams = { + 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 8, 8: 8, 14: 15, 15: 15, + 16: 16, 17: 18, 1021: 1024, 1536: 1536, 51200000: 51200000, + 510183360: 510183360, 510183360+1: 512000000, 511000000: 512000000, + 854296875: 854296875, 854296875+1: 859963392, + 196608000000: 196608000000, 196608000000+1: 196830000000, + 8789062500000: 8789062500000, 8789062500000+1: 8796093022208, + 206391214080000: 206391214080000, 206391214080000+1: 206624260800000, + 470184984576000: 470184984576000, 470184984576000+1: 470715894135000, + 7222041363087360: 7222041363087360, + 7222041363087360+1: 7230196133913600, + + # power of 5 5**23 + 11920928955078125: 11920928955078125, + 11920928955078125-1: 11920928955078125, + + # power of 3 3**34 + 16677181699666569: 16677181699666569, + 16677181699666569-1: 16677181699666569, + + # power of 2 2**54 + 18014398509481984: 18014398509481984, + 18014398509481984-1: 18014398509481984, + + # above this, int(ceil(n)) == int(ceil(n+1)) + 19200000000000000: 19200000000000000, + 19200000000000000+1: 19221679687500000, + + 288230376151711744: 288230376151711744, + 288230376151711744+1: 288325195312500000, + 288325195312500000-1: 288325195312500000, + 288325195312500000: 288325195312500000, + 288325195312500000+1: 288555831593533440, + + # power of 3 3**83 + 3990838394187339929534246675572349035227-1: + 3990838394187339929534246675572349035227, + 3990838394187339929534246675572349035227: + 3990838394187339929534246675572349035227, + + # power of 2 2**135 + 43556142965880123323311949751266331066368-1: + 43556142965880123323311949751266331066368, + 43556142965880123323311949751266331066368: + 43556142965880123323311949751266331066368, + + # power of 5 5**57 + 6938893903907228377647697925567626953125-1: + 6938893903907228377647697925567626953125, + 6938893903907228377647697925567626953125: + 6938893903907228377647697925567626953125, + + # http://www.drdobbs.com/228700538 + # 2**96 * 3**1 * 5**13 + 290142196707511001929482240000000000000-1: + 290142196707511001929482240000000000000, + 290142196707511001929482240000000000000: + 290142196707511001929482240000000000000, + 290142196707511001929482240000000000000+1: + 290237644800000000000000000000000000000, + + # 2**36 * 3**69 * 5**7 + 4479571262811807241115438439905203543080960000000-1: + 4479571262811807241115438439905203543080960000000, + 4479571262811807241115438439905203543080960000000: + 4479571262811807241115438439905203543080960000000, + 4479571262811807241115438439905203543080960000000+1: + 4480327901140333639941336854183943340032000000000, + + # 2**37 * 3**44 * 5**42 + 30774090693237851027531250000000000000000000000000000000000000-1: + 30774090693237851027531250000000000000000000000000000000000000, + 30774090693237851027531250000000000000000000000000000000000000: + 30774090693237851027531250000000000000000000000000000000000000, + 30774090693237851027531250000000000000000000000000000000000000+1: + 30778180617309082445871527002041377406962596539492679680000000, + } + + for x, y in hams.items(): + assert_equal(_next_regular(x), y) diff --git a/statsmodels/datasets/COPYING b/statsmodels/datasets/COPYING new file mode 100644 index 0000000..b244761 --- /dev/null +++ b/statsmodels/datasets/COPYING @@ -0,0 +1,35 @@ +Last Change: Tue Jul 17 05:00 PM 2007 J + +The code and descriptive text is copyrighted and offered under the terms of +the BSD License from the authors; see below. However, the actual dataset may +have a different origin and intellectual property status. See the SOURCE and +COPYRIGHT variables for this information. + +Copyright (c) 2007 David Cournapeau +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + * Neither the author nor the names of any contributors may be used + to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/statsmodels/datasets/README.txt b/statsmodels/datasets/README.txt new file mode 100644 index 0000000..5d6944d --- /dev/null +++ b/statsmodels/datasets/README.txt @@ -0,0 +1,32 @@ +This README was copied from +http://projects.scipy.org/scikits/browser/trunk/learn/scikits/learn/datasets/ +----------------------------------------------------------------------------- + +Last Change: Tue Jul 17 04:00 PM 2007 J + +This packages datasets defines a set of packages which contain datasets useful +for demo, examples, etc... This can be seen as an equivalent of the R dataset +package, but for python. + +Each subdir is a python package, and should define the function load, returning +the corresponding data. For example, to access datasets data1, you should be able to do: + +>> from datasets.data1 import load +>> d = load() # -> d contains the data of the datasets data1 + +load can do whatever it wants: fetching data from a file (python script, csv +file, etc...), from the internet, etc... Some special variables must be defined +for each package, containing a python string: + - COPYRIGHT: copyright informations + - SOURCE: where the data are coming from + - DESCHOSRT: short description + - DESCLONG: long description + - NOTE: some notes on the datasets. + +For the datasets to be useful in the learn scikits, which is the project which initiated this datasets package, the data returned by load has to be a dict with the following conventions: + - 'data': this value should be a record array containing the actual data. + - 'label': this value should be a rank 1 array of integers, contains the + label index for each sample, that is label[i] should be the label index + of data[i]. + - 'class': a record array such as class[i] is the class name. In other + words, this makes the correspondance label index <> label name. diff --git a/statsmodels/datasets/__init__.py b/statsmodels/datasets/__init__.py new file mode 100644 index 0000000..ed3f8bc --- /dev/null +++ b/statsmodels/datasets/__init__.py @@ -0,0 +1,9 @@ +""" +Datasets module +""" +#__all__ = filter(lambda s:not s.startswith('_'),dir()) +from . import (anes96, cancer, committee, ccard, copper, cpunish, elnino, + engel, grunfeld, longley, macrodata, modechoice, nile, randhie, + scotland, spector, stackloss, star98, strikes, sunspots, fair, + heart, statecrime, co2, fertility, china_smoking) +from .utils import get_rdataset, get_data_home, clear_data_home, webuse, check_internet diff --git a/statsmodels/datasets/anes96/__init__.py b/statsmodels/datasets/anes96/__init__.py new file mode 100644 index 0000000..df22d8b --- /dev/null +++ b/statsmodels/datasets/anes96/__init__.py @@ -0,0 +1 @@ +from .data import * diff --git a/statsmodels/datasets/anes96/anes96.csv b/statsmodels/datasets/anes96/anes96.csv new file mode 100644 index 0000000..92e19f5 --- /dev/null +++ b/statsmodels/datasets/anes96/anes96.csv @@ -0,0 +1,945 @@ +'popul' 'TVnews' 'selfLR' 'ClinLR' 'DoleLR' 'PID' 'age' 'educ' 'income' 'vote' +0 7 7 1 6 6 36 3 1 1 +190 1 3 3 5 1 20 4 1 0 +31 7 2 2 6 1 24 6 1 0 +83 4 3 4 5 1 28 6 1 0 +640 7 5 6 4 0 68 6 1 0 +110 3 3 4 6 1 21 4 1 0 +100 7 5 6 4 1 77 4 1 0 +31 1 5 4 5 4 21 4 1 0 +180 7 4 6 3 3 31 4 1 0 +2800 0 3 3 7 0 39 3 1 0 +1600 0 3 2 4 4 26 2 1 0 +330 5 4 3 6 1 31 4 1 0 +190 2 5 4 6 5 22 4 1 1 +100 7 4 4 6 0 42 5 1 0 +1000 7 5 7 4 0 74 1 1 0 +0 7 6 7 5 0 62 3 1 0 +130 7 4 4 5 1 58 3 1 0 +5 5 3 3 6 1 24 6 1 0 +33 7 6 2 6 5 51 4 1 1 +19 2 2 1 4 0 36 3 2 0 +74 7 4 4 7 2 88 2 2 0 +190 0 2 4 6 2 20 4 2 0 +12 3 4 6 3 2 27 3 2 0 +0 7 6 1 6 6 44 4 2 1 +19 0 4 2 2 1 45 3 2 0 +0 2 4 3 6 1 21 4 2 0 +390 5 3 4 7 1 40 5 2 0 +40 7 4 3 4 0 40 6 2 0 +3 3 5 5 4 1 48 3 2 0 +450 3 4 7 1 0 34 3 2 0 +350 0 3 4 7 2 26 2 2 0 +64 3 4 4 2 1 60 2 3 0 +3 0 4 4 3 0 32 3 3 0 +0 1 4 3 7 1 31 3 3 0 +640 7 7 5 7 4 33 3 3 1 +0 7 3 4 6 0 57 3 3 0 +12 7 4 3 6 1 84 3 3 0 +62 6 7 2 7 5 75 3 3 1 +31 2 7 2 6 6 19 4 3 1 +0 1 3 2 6 1 47 6 3 0 +180 6 5 5 5 0 51 2 3 0 +640 3 6 4 4 5 40 3 3 0 +110 0 2 3 6 1 22 6 3 0 +100 1 7 7 5 6 35 2 3 0 +100 7 4 4 7 2 43 5 3 0 +11 3 6 6 3 2 76 6 3 0 +0 7 4 3 1 6 45 3 3 1 +4 7 4 6 6 0 88 2 3 0 +35 6 4 4 2 1 46 3 4 0 +0 1 3 4 5 2 22 6 4 0 +0 7 5 1 6 5 68 3 4 1 +0 2 5 2 6 5 38 3 4 1 +33 7 4 3 6 3 69 2 4 0 +270 2 5 4 3 0 67 3 4 0 +45 7 2 4 6 0 88 4 4 0 +40 3 6 2 5 5 68 3 4 1 +6 1 5 2 4 2 76 3 4 1 +2 7 4 4 6 0 72 2 4 0 +0 0 6 2 6 6 37 6 4 1 +35 3 4 2 6 0 69 3 4 0 +83 0 2 4 6 0 33 6 4 0 +3500 7 2 2 6 0 34 4 4 0 +100 2 4 4 7 2 30 3 4 0 +350 2 3 3 6 1 19 3 4 0 +100 3 4 6 2 0 44 3 4 0 +67 1 4 4 7 1 64 3 4 0 +30 5 7 7 2 0 37 4 4 0 +0 7 6 3 5 4 31 5 5 1 +0 0 6 1 5 4 88 4 5 1 +6 7 6 2 6 6 77 4 5 1 +350 1 4 5 6 5 30 6 5 0 +400 1 2 3 7 1 32 4 5 0 +15 7 6 2 6 6 59 1 5 1 +0 0 4 4 4 3 47 4 5 0 +3 2 4 6 5 1 22 3 5 0 +22 5 4 2 6 2 55 3 5 0 +64 2 2 1 3 0 24 2 5 0 +32 5 3 7 4 1 65 1 5 0 +390 7 3 6 2 2 24 3 5 0 +0 7 3 4 5 3 30 3 5 0 +0 7 4 5 2 3 73 3 5 0 +59 5 3 3 5 1 73 5 5 0 +0 6 4 3 6 2 91 1 5 0 +35 7 3 2 5 0 71 2 5 0 +0 2 6 4 5 4 34 4 5 1 +170 7 4 3 2 0 48 2 6 0 +12 1 6 2 6 5 42 4 6 1 +40 4 6 5 4 0 72 2 6 0 +31 2 3 4 6 6 20 4 6 1 +31 7 2 2 7 0 22 4 6 0 +1600 1 3 3 6 1 24 6 6 0 +1 1 4 2 7 2 39 6 6 0 +4 7 6 1 6 6 83 5 6 1 +190 0 6 2 6 6 39 3 6 1 +53 3 5 3 6 1 33 5 6 0 +31 7 4 3 6 1 53 3 6 1 +16 7 5 3 6 5 82 3 6 1 +33 5 4 3 5 6 82 3 6 1 +0 3 5 3 6 5 47 6 7 1 +0 3 4 2 7 4 68 3 7 0 +0 7 4 3 5 0 84 6 7 0 +27 2 6 1 6 5 35 5 7 1 +84 7 4 5 6 1 67 2 7 0 +22 3 5 3 5 4 33 2 7 1 +0 3 3 3 5 0 49 7 7 0 +3500 0 4 3 7 0 91 1 7 0 +390 7 4 5 3 1 43 3 7 0 +0 7 4 3 2 6 65 4 7 0 +16 7 5 6 3 0 69 3 7 0 +200 0 5 5 4 1 56 4 8 0 +640 0 2 3 5 0 24 6 8 0 +0 7 4 4 5 0 77 3 8 0 +45 7 6 3 7 0 74 3 8 0 +12 0 7 3 6 6 25 6 8 1 +20 7 6 2 5 4 85 1 8 1 +7300 5 7 7 6 3 21 2 8 0 +64 7 6 3 1 0 24 4 8 0 +13 7 5 4 7 4 73 4 8 0 +190 0 4 5 3 2 37 3 8 0 +9 4 4 5 1 2 35 4 8 0 +0 7 4 4 7 0 47 3 8 0 +170 2 4 2 6 6 21 3 8 1 +640 7 3 6 4 0 55 5 8 0 +9 4 6 3 6 6 30 6 8 1 +0 4 5 3 6 4 76 7 8 1 +7300 5 3 4 3 3 36 4 8 0 +2800 0 1 1 7 0 38 3 9 0 +0 7 2 3 5 0 67 3 9 0 +30 7 7 3 7 6 70 2 9 1 +44 7 5 3 7 2 78 4 9 0 +7300 1 2 2 7 3 27 6 9 0 +330 4 3 5 6 1 51 4 9 0 +3 0 6 7 3 5 33 4 9 0 +51 2 6 1 5 6 80 6 9 1 +29 5 4 1 6 1 79 1 9 0 +630 2 6 4 5 4 66 1 9 1 +170 0 4 1 6 0 32 3 10 0 +33 7 4 5 7 0 70 2 10 0 +0 3 2 3 6 3 42 3 10 0 +9 5 5 4 5 5 73 4 10 1 +22 4 4 4 6 0 87 2 10 0 +100 0 7 5 1 1 30 5 10 0 +2 2 4 4 5 3 52 3 10 0 +0 6 5 3 6 1 62 4 10 0 +50 7 6 3 4 0 67 3 10 0 +15 4 6 3 4 4 37 6 10 0 +3 4 3 5 7 0 37 4 10 0 +720 5 1 5 6 1 64 6 10 0 +640 7 1 1 5 0 34 3 10 0 +5 7 4 4 7 0 70 3 10 0 +24 2 6 2 6 6 31 5 10 1 +22 7 2 2 6 0 29 6 11 0 +55 7 4 5 4 1 71 2 11 0 +0 2 4 4 4 0 67 1 11 0 +1600 5 4 4 6 0 41 7 11 0 +170 6 1 2 6 0 49 6 11 0 +1000 7 4 4 5 0 42 5 11 0 +63 0 6 3 2 0 78 2 11 0 +110 0 4 1 6 1 24 3 11 0 +16 7 4 6 6 1 29 3 11 0 +100 3 4 2 6 5 39 5 11 1 +7300 3 5 3 6 1 19 4 11 0 +22 2 4 2 7 1 32 5 11 0 +71 3 4 2 6 5 69 3 11 1 +900 4 5 2 5 5 83 3 11 1 +35 7 4 1 5 4 76 2 11 1 +2 7 7 1 2 0 62 2 11 0 +83 2 3 3 6 0 47 7 11 0 +370 5 6 7 4 0 35 3 11 0 +12 0 4 5 3 4 23 3 11 0 +370 7 4 4 1 1 79 4 11 0 +100 7 6 2 6 5 64 5 11 1 +470 7 6 2 4 5 70 4 11 1 +22 7 6 1 6 6 87 5 11 1 +2800 0 3 6 1 0 28 2 12 0 +47 5 3 5 7 1 58 3 12 0 +900 5 4 4 6 1 85 2 12 0 +330 7 3 6 4 0 62 3 12 0 +84 0 3 2 7 1 26 6 12 0 +0 0 6 2 5 5 28 3 12 1 +33 3 6 1 7 6 88 2 12 1 +53 7 2 3 6 0 57 6 12 0 +8 7 2 2 6 0 78 3 12 0 +2 7 4 4 2 0 56 3 12 0 +0 0 4 6 3 3 46 5 12 0 +0 2 4 4 3 5 20 3 12 1 +0 0 5 6 4 1 24 4 12 0 +0 7 5 2 6 2 72 4 12 0 +15 7 2 4 7 1 51 4 12 0 +900 0 6 2 5 6 34 6 12 1 +30 2 4 2 6 1 21 4 12 0 +0 7 4 4 6 2 74 7 12 0 +170 3 4 4 6 1 48 1 12 0 +900 2 3 3 7 5 28 3 12 0 +0 6 7 1 7 5 38 2 12 1 +1600 7 4 6 1 0 70 3 12 0 +0 7 4 5 4 0 72 2 12 0 +2800 0 4 5 6 0 41 3 12 0 +110 5 3 4 5 1 50 7 12 0 +1 7 6 2 5 5 73 3 12 1 +3 5 5 2 4 0 79 6 12 0 +0 4 5 1 4 5 76 2 12 1 +22 0 5 3 5 5 62 5 12 1 +63 3 6 2 6 6 30 6 12 1 +290 0 6 3 6 5 35 4 12 1 +2 7 1 2 7 1 66 4 12 0 +40 0 2 4 6 0 35 4 12 0 +67 0 6 1 5 6 57 6 12 1 +0 5 4 5 4 5 37 5 12 1 +470 7 5 5 2 1 61 3 13 0 +0 7 6 2 6 6 56 3 13 1 +4 6 3 4 5 1 53 3 13 0 +20 0 4 5 3 2 24 6 13 1 +2800 7 4 1 6 5 74 3 13 1 +0 0 4 4 3 1 36 3 13 0 +1 0 6 2 4 5 30 5 13 1 +640 0 4 7 4 1 55 2 13 0 +170 3 3 2 7 2 35 6 13 0 +270 2 3 4 6 0 26 4 13 0 +390 0 3 4 6 2 25 4 13 0 +16 2 6 7 4 3 27 3 13 0 +11 7 4 1 6 5 66 3 13 1 +0 1 5 2 6 2 39 2 13 0 +270 7 1 1 2 2 58 5 13 0 +170 2 4 4 4 0 53 3 13 1 +900 7 6 7 4 0 76 3 13 0 +270 7 5 2 7 1 51 3 13 0 +0 7 4 2 7 0 70 2 13 0 +350 3 6 3 6 6 68 4 13 1 +0 0 5 4 5 2 32 3 13 1 +6 0 5 4 5 5 55 3 13 0 +290 7 2 2 6 0 52 4 13 0 +630 7 6 4 6 4 73 2 13 1 +900 0 5 4 7 0 42 2 13 0 +31 2 4 4 3 4 23 5 13 1 +1600 5 2 3 6 0 30 7 14 0 +71 7 2 2 7 0 68 4 14 0 +200 7 5 2 3 2 68 3 14 0 +0 0 6 4 7 3 68 6 14 0 +30 5 2 3 6 0 38 5 14 0 +10 1 4 3 6 2 74 3 14 0 +0 7 5 6 3 0 59 2 14 0 +900 2 5 2 5 2 73 2 14 0 +71 7 2 3 6 0 79 3 14 0 +22 3 7 1 6 5 28 4 14 1 +0 7 6 2 6 6 50 3 14 1 +0 4 6 3 1 1 36 4 14 0 +0 3 6 2 6 6 50 3 14 1 +0 1 6 2 6 6 61 3 14 1 +7300 3 2 2 6 0 37 4 14 0 +83 0 3 4 7 0 29 6 14 0 +93 7 2 3 7 0 39 4 14 0 +0 7 4 5 4 2 83 6 14 1 +51 7 6 1 5 4 68 6 14 1 +31 2 6 1 5 6 25 4 14 1 +93 2 1 3 6 1 41 6 14 0 +0 7 3 2 6 1 67 3 14 0 +0 3 4 2 6 4 36 6 14 1 +31 4 6 2 6 4 66 4 14 1 +900 1 3 2 7 1 55 4 14 0 +0 4 3 2 6 2 42 5 14 0 +2 7 6 3 5 5 42 3 14 1 +110 3 4 5 7 1 36 3 14 0 +63 1 6 4 6 4 53 5 14 1 +900 0 3 2 5 1 36 5 14 0 +31 3 4 3 6 2 29 7 14 0 +510 1 4 4 6 0 31 3 14 0 +270 2 3 4 6 1 43 6 14 0 +9 3 3 4 7 1 33 6 14 0 +3 1 6 6 2 0 63 3 14 0 +29 1 5 2 4 2 25 5 14 0 +45 2 3 2 6 0 72 4 14 0 +83 5 3 3 6 1 40 4 14 0 +22 7 4 2 6 2 27 6 14 0 +15 3 5 4 7 2 26 4 15 0 +110 7 5 2 5 6 67 3 15 1 +8 0 4 5 5 1 21 3 15 0 +11 5 6 2 6 6 27 7 15 1 +56 4 6 5 3 0 78 6 15 1 +8 3 4 4 3 1 32 3 15 0 +100 5 4 2 6 1 68 4 15 0 +900 7 4 2 6 5 76 4 15 0 +67 7 3 3 6 0 33 5 15 0 +35 4 6 2 5 4 38 2 15 1 +35 3 4 3 5 1 49 7 15 0 +22 0 5 4 6 5 61 4 15 1 +110 7 7 1 5 4 57 3 15 1 +12 0 4 2 5 2 20 3 15 0 +7300 7 4 2 4 4 63 6 15 1 +0 0 4 1 5 4 53 3 15 1 +19 5 4 2 6 5 35 4 15 1 +470 3 4 4 7 0 39 3 15 0 +4 3 3 5 3 4 48 3 15 1 +640 4 6 2 5 4 62 3 15 1 +640 2 4 2 3 1 30 5 15 0 +200 7 7 1 4 6 26 6 15 1 +0 7 3 2 4 5 74 6 15 1 +29 4 3 4 6 2 37 5 15 0 +330 2 4 5 5 1 43 5 15 0 +19 5 5 1 4 6 68 3 15 1 +1 7 5 3 4 5 73 5 15 1 +110 5 6 1 6 6 60 7 15 1 +0 7 5 4 6 1 35 3 15 0 +350 4 3 4 6 0 29 6 15 0 +2 5 3 3 5 1 25 6 15 0 +0 7 2 2 6 0 25 7 15 0 +7 4 2 4 5 0 70 6 15 0 +71 1 6 2 5 6 41 3 15 1 +53 0 4 2 6 1 37 6 15 0 +0 0 6 1 6 6 39 5 15 1 +2 6 3 4 6 0 35 4 15 0 +190 4 2 3 6 0 62 7 15 0 +31 0 3 2 6 1 30 7 15 0 +16 7 4 2 6 0 74 4 15 0 +22 7 3 3 4 5 47 3 15 0 +3 4 4 5 3 1 43 6 15 0 +0 6 5 3 6 5 64 2 15 1 +0 7 4 3 5 2 75 4 15 1 +67 3 4 4 7 1 27 6 15 0 +40 7 4 4 6 0 21 3 15 0 +74 4 2 2 6 1 70 2 15 0 +3 6 5 2 6 5 67 3 15 1 +140 7 6 4 5 6 82 5 15 0 +14 0 2 2 6 0 40 6 15 0 +110 0 5 3 6 5 26 4 15 1 +35 3 4 3 5 1 29 6 15 0 +0 1 4 5 6 2 28 6 15 0 +310 7 6 4 3 5 65 3 15 0 +900 2 6 5 3 1 25 3 15 0 +0 7 3 2 7 1 65 2 15 0 +11 4 6 2 6 5 38 5 15 1 +0 2 4 3 5 5 72 7 15 1 +270 7 3 2 7 1 67 3 15 0 +51 7 3 1 7 0 74 3 15 0 +11 5 2 4 4 2 71 6 15 0 +2 0 4 6 4 0 47 3 15 0 +20 7 5 4 6 1 69 1 15 0 +31 3 3 3 6 1 29 6 15 0 +2 0 6 2 5 6 34 3 15 1 +5 3 4 3 6 0 43 4 15 0 +22 7 2 1 7 0 30 3 15 0 +0 7 5 5 4 0 76 2 15 0 +27 0 2 4 6 1 26 5 16 0 +7 7 4 3 6 2 76 5 16 0 +0 0 1 4 6 1 42 7 16 0 +0 4 3 1 4 5 33 3 16 1 +0 1 6 2 5 5 25 3 16 1 +2800 0 2 2 7 0 51 4 16 0 +0 4 4 2 5 4 57 3 16 1 +22 1 6 1 5 6 21 4 16 1 +9 7 5 1 4 5 79 7 16 1 +0 1 6 2 5 5 35 5 16 1 +9 5 4 2 5 4 57 6 16 1 +0 1 4 4 6 5 32 6 16 0 +37 5 4 5 5 2 51 6 16 0 +23 0 5 2 4 6 62 7 16 1 +0 4 5 1 6 5 48 4 16 1 +0 7 7 1 6 6 39 3 16 1 +0 5 3 2 6 5 26 6 16 1 +40 0 4 2 4 1 38 3 16 1 +0 5 3 3 4 0 50 4 16 0 +9 2 5 5 6 4 33 3 16 1 +15 5 4 3 6 2 36 3 16 0 +640 5 4 4 6 0 24 6 16 0 +0 4 3 2 6 0 25 5 16 0 +0 7 6 5 3 0 62 3 16 0 +0 2 4 3 3 6 33 3 16 1 +0 7 6 2 5 6 53 6 16 1 +22 7 6 2 5 6 68 6 16 1 +22 7 5 4 6 1 68 3 16 0 +10 1 6 1 5 5 38 3 16 1 +29 1 4 5 3 0 58 1 16 0 +170 7 4 2 6 5 34 6 16 1 +4 2 4 3 4 1 58 2 16 0 +11 0 3 4 7 1 35 5 16 0 +31 3 7 2 6 6 42 6 16 1 +0 7 4 4 6 0 54 3 16 0 +0 7 6 2 5 6 69 3 16 1 +360 2 4 6 5 0 35 4 16 0 +0 7 6 1 5 6 66 4 16 1 +900 2 3 2 7 0 58 3 16 0 +51 5 2 4 7 1 41 3 16 0 +0 2 5 2 6 4 35 6 16 0 +110 0 3 3 6 1 40 7 16 0 +1 7 4 7 2 0 53 1 16 0 +8 5 6 2 6 5 67 6 16 1 +5 5 4 4 6 0 32 5 16 0 +87 4 3 4 6 0 41 4 16 0 +3 1 2 1 6 1 43 7 16 0 +51 1 5 3 2 0 65 2 16 0 +350 7 3 3 7 0 60 5 16 0 +3 7 5 3 6 0 77 6 16 0 +630 0 6 5 4 1 35 4 16 0 +180 4 6 7 5 1 48 4 16 0 +0 0 6 2 6 6 52 3 16 1 +35 7 5 3 6 2 43 7 16 0 +0 7 6 2 6 6 43 5 16 1 +0 7 6 2 6 6 67 4 16 1 +6 1 4 4 7 0 56 3 16 0 +7300 2 3 3 4 0 62 4 16 0 +2 1 7 7 5 0 62 3 16 0 +35 3 3 2 6 1 22 6 16 0 +0 0 2 2 6 1 21 5 16 0 +45 3 6 1 6 6 34 3 16 1 +0 7 4 3 5 0 70 3 16 0 +5 1 3 2 6 2 50 3 16 0 +35 5 6 1 6 6 42 4 16 1 +900 5 6 2 6 6 73 3 16 1 +35 2 3 1 6 0 57 7 16 0 +0 7 6 1 5 6 40 6 16 1 +0 2 6 1 6 6 58 6 16 1 +11 7 4 6 2 1 62 3 16 0 +40 1 3 5 3 1 44 3 17 0 +0 3 5 3 7 6 30 6 17 0 +23 7 3 3 7 0 76 5 17 0 +270 3 4 3 3 1 50 4 17 0 +9 1 6 2 5 5 41 4 17 1 +0 6 6 3 6 6 77 3 17 1 +0 3 6 3 5 6 35 6 17 1 +0 7 4 3 4 3 39 4 17 0 +2 0 4 2 4 4 72 3 17 1 +0 2 6 2 5 6 42 7 17 1 +16 7 5 2 6 5 85 2 17 1 +7300 0 4 2 6 3 79 4 17 0 +0 5 2 3 6 0 39 4 17 0 +23 4 6 1 5 6 58 6 17 1 +42 0 4 2 6 5 27 6 17 1 +2 4 4 3 5 1 43 5 17 0 +0 0 3 3 6 0 58 4 17 0 +42 7 4 3 6 4 28 7 17 1 +470 2 5 3 6 5 27 6 17 0 +42 0 3 6 5 2 40 3 17 0 +0 5 1 3 6 0 43 6 17 0 +40 7 5 4 6 5 64 3 17 1 +180 7 2 2 6 0 39 6 17 0 +110 7 4 2 6 4 76 4 17 1 +140 5 3 3 6 0 64 5 17 0 +0 4 4 6 3 2 28 4 17 0 +0 2 4 2 6 1 45 3 17 0 +190 1 6 2 6 6 22 3 17 1 +35 1 3 3 6 1 27 6 17 0 +45 0 1 2 7 0 31 4 17 0 +170 1 2 2 7 0 34 6 17 0 +0 4 2 3 7 0 30 4 17 0 +0 2 6 1 6 6 64 3 17 1 +35 0 6 1 6 4 36 6 17 1 +5 7 4 3 5 4 31 2 17 1 +350 1 4 3 4 5 37 3 17 1 +4 0 6 4 2 1 48 3 17 0 +70 0 5 7 7 3 41 3 17 0 +8 2 5 2 6 5 25 4 17 1 +12 5 4 2 6 6 82 3 17 1 +5 1 6 2 5 4 36 7 17 1 +0 7 6 2 5 1 47 3 17 1 +16 6 2 3 6 0 67 4 17 0 +0 0 4 6 2 5 24 4 17 1 +9 0 4 5 3 5 33 6 17 1 +14 7 4 1 5 1 59 4 17 1 +22 7 7 1 6 6 71 4 17 1 +0 7 6 2 5 6 36 3 17 1 +1 3 3 3 5 0 41 3 17 0 +1600 5 6 2 6 6 38 6 17 1 +7300 1 6 3 6 6 32 3 17 1 +19 0 5 6 7 1 32 4 17 0 +9 6 5 4 6 0 75 6 17 0 +0 7 5 2 4 4 52 3 17 1 +1600 5 2 3 6 0 29 7 17 0 +12 7 3 4 6 0 71 3 17 0 +1 0 6 2 5 2 33 6 17 0 +0 3 1 2 7 2 67 7 17 0 +0 2 6 1 6 6 49 4 17 1 +0 0 2 3 5 1 31 7 17 0 +9 7 3 4 6 1 53 2 17 0 +0 3 2 3 7 0 35 7 17 0 +170 7 6 2 6 6 49 7 18 1 +3 7 6 4 4 0 74 3 18 0 +14 0 6 1 5 6 29 4 18 1 +1 5 2 3 6 0 27 6 18 0 +23 5 4 4 6 5 70 4 18 0 +0 0 6 1 6 6 43 6 18 1 +1 5 2 3 6 2 47 7 18 0 +0 4 4 4 6 0 42 7 18 0 +9 0 6 2 5 6 41 6 18 1 +130 2 6 4 6 6 37 4 18 1 +5 5 5 5 4 1 61 3 18 0 +4 7 4 2 6 0 84 4 18 0 +2800 7 5 3 7 0 46 6 18 0 +4 0 4 3 6 5 39 7 18 0 +6 7 2 3 6 0 53 3 18 0 +4 7 5 1 6 6 87 6 18 1 +84 2 4 6 2 0 51 3 18 0 +0 0 5 2 5 4 37 5 18 1 +9 1 4 3 5 4 37 6 18 1 +290 0 5 2 6 6 40 6 18 1 +0 3 4 4 6 2 46 6 18 0 +9 7 1 4 1 3 44 3 18 1 +0 2 4 3 6 1 37 3 18 0 +0 7 4 2 6 2 55 7 18 0 +22 0 5 2 5 1 40 6 18 1 +0 5 3 2 6 1 42 7 18 0 +640 7 6 2 6 6 40 3 18 1 +10 0 6 2 6 6 32 3 18 1 +4 5 5 2 5 4 58 7 18 1 +0 2 5 1 6 4 37 3 18 1 +640 4 4 5 5 5 51 3 18 1 +110 5 3 5 4 5 44 5 18 0 +0 2 4 5 2 0 23 2 18 0 +0 2 6 2 6 6 38 3 18 1 +67 0 3 4 6 0 42 7 18 0 +520 7 4 2 5 4 60 4 18 1 +0 3 4 3 6 1 34 4 18 0 +51 1 6 2 6 6 49 3 18 1 +0 0 4 2 3 4 40 3 18 1 +2800 7 2 2 7 0 23 4 18 0 +110 2 2 3 6 0 47 3 18 0 +7300 7 4 4 7 0 44 5 18 0 +7300 5 5 2 6 1 37 7 18 1 +0 2 6 1 6 5 26 5 18 1 +16 7 7 6 5 2 51 4 18 0 +140 4 4 4 6 0 69 3 18 0 +54 2 2 2 7 0 36 6 18 0 +2 2 2 3 6 2 28 4 18 0 +470 4 5 2 6 5 40 4 19 1 +0 1 6 1 6 5 45 4 19 1 +75 3 5 2 5 5 75 6 19 1 +11 2 6 2 5 5 32 6 19 1 +0 0 3 2 6 1 27 3 19 0 +2800 6 5 2 5 3 63 6 19 1 +140 1 5 3 6 6 79 7 19 1 +9 7 3 2 6 1 40 6 19 0 +7300 2 4 3 6 1 57 6 19 0 +45 3 3 4 5 1 44 6 19 0 +1600 7 5 2 5 6 78 6 19 1 +9 7 4 5 5 5 58 7 19 0 +0 7 2 2 7 1 55 3 19 0 +130 4 3 4 6 2 25 6 19 0 +9 0 2 3 6 0 27 7 19 0 +3500 3 4 2 7 2 21 3 19 0 +0 3 6 2 6 5 37 4 19 1 +0 0 7 3 4 5 31 3 19 1 +35 7 2 4 6 0 85 7 19 0 +900 1 4 2 6 5 33 3 19 0 +27 7 3 7 4 3 63 2 19 1 +900 7 4 4 6 1 51 3 19 0 +0 2 3 5 2 0 46 3 19 0 +64 2 5 2 6 6 26 5 19 1 +4 7 3 3 6 0 57 6 19 0 +0 3 4 2 6 1 48 3 19 1 +0 2 7 1 5 5 55 3 19 1 +53 0 3 6 4 1 37 5 19 0 +290 2 6 2 6 6 39 3 19 1 +15 2 2 3 4 1 24 3 19 1 +0 0 6 3 6 6 30 6 19 1 +35 0 3 4 6 1 36 7 19 0 +0 0 5 4 6 4 45 3 19 0 +470 1 5 2 6 2 29 3 19 0 +16 7 6 3 6 5 41 4 19 1 +40 1 5 3 5 4 28 5 19 1 +290 7 2 2 7 0 35 4 19 0 +4 7 2 3 6 0 46 4 19 0 +1 7 1 2 7 1 55 4 19 0 +140 3 2 3 6 6 65 4 19 0 +110 1 4 2 6 1 22 4 19 0 +0 1 4 4 6 1 41 4 19 0 +900 1 2 3 6 2 43 7 19 0 +0 2 4 3 6 0 49 4 19 0 +0 4 4 2 5 4 35 7 19 1 +51 7 3 3 5 1 80 3 19 0 +71 2 4 6 2 0 57 4 19 0 +900 4 3 3 6 0 48 3 19 0 +83 4 1 4 6 2 43 6 19 0 +360 3 4 4 7 0 34 4 19 0 +180 7 2 2 4 0 44 5 19 0 +1 3 6 1 6 4 49 6 20 1 +22 7 5 2 7 2 43 7 20 0 +1 0 4 3 5 6 39 4 20 1 +2 2 4 3 7 1 27 3 20 0 +34 4 6 2 6 6 30 6 20 1 +33 2 6 2 6 4 33 6 20 1 +10 1 2 3 7 0 32 5 20 0 +290 7 5 2 6 6 31 6 20 1 +0 2 5 3 7 2 27 5 20 0 +76 3 2 2 6 0 36 4 20 0 +20 7 3 2 6 2 45 5 20 0 +0 5 4 6 5 2 51 3 20 0 +0 0 6 2 3 5 36 4 20 1 +0 7 6 4 6 4 47 7 20 1 +470 4 4 4 6 1 42 6 20 0 +9 6 6 1 5 6 70 6 20 1 +0 0 3 3 6 3 40 4 20 0 +0 7 2 5 7 0 38 3 20 0 +8 0 5 1 6 4 29 3 20 1 +1 0 4 2 5 6 58 3 20 1 +1 7 4 6 1 2 28 3 20 0 +7 1 6 3 6 5 30 4 20 1 +0 3 4 3 6 2 48 5 20 0 +170 0 6 2 6 6 35 4 20 1 +270 3 6 7 6 0 38 3 20 0 +0 0 4 2 5 4 56 7 20 1 +13 4 5 3 6 5 62 4 20 1 +10 7 6 1 6 5 56 4 20 1 +22 0 6 2 5 6 32 3 20 1 +640 5 4 5 7 1 50 5 20 0 +900 3 3 4 6 1 45 6 20 0 +22 7 3 3 4 0 36 6 20 0 +62 1 6 2 6 6 49 4 20 1 +110 2 7 1 6 6 31 6 20 1 +84 4 2 3 6 2 33 7 20 0 +0 1 6 2 6 6 35 4 20 1 +13 2 4 2 5 4 73 4 20 1 +20 7 6 1 5 6 54 5 20 1 +0 3 4 2 7 1 48 3 20 0 +16 3 6 2 6 4 65 4 20 1 +6 7 5 6 5 6 46 4 20 0 +12 0 2 2 6 0 45 7 20 0 +0 7 6 2 5 6 65 7 20 1 +0 0 6 2 6 6 45 6 20 1 +170 7 4 1 5 4 89 7 20 1 +100 0 5 3 6 4 32 4 20 0 +5 4 6 4 4 1 38 4 20 0 +3500 5 2 4 2 5 33 4 20 1 +71 4 6 2 5 6 49 7 20 1 +4 7 5 2 6 5 64 6 20 1 +7300 5 5 4 7 1 55 4 20 0 +7 0 3 3 5 1 56 7 20 0 +290 4 4 5 3 5 30 6 20 0 +0 0 5 4 6 5 41 7 20 1 +0 1 6 2 5 6 39 5 20 1 +520 7 4 4 6 4 34 3 20 0 +430 5 4 5 7 1 53 3 20 0 +9 2 3 3 6 2 40 6 20 0 +40 0 3 3 6 1 48 6 20 0 +2 7 6 5 5 5 59 4 20 0 +75 7 6 2 4 4 54 4 20 1 +170 0 3 5 6 1 41 6 20 0 +170 1 2 3 6 0 41 6 20 0 +640 5 5 3 6 4 63 7 20 0 +2800 1 7 1 6 4 39 3 20 1 +9 3 7 2 5 4 46 3 20 0 +150 7 4 3 6 0 55 3 20 0 +0 7 4 1 5 3 42 3 20 1 +0 7 6 3 6 4 58 2 20 1 +100 0 3 2 6 2 42 4 20 0 +33 7 4 3 4 2 40 6 20 1 +310 7 5 2 5 1 56 6 20 1 +53 1 4 5 2 2 37 4 20 0 +13 2 3 2 6 2 37 6 20 0 +290 6 5 1 5 5 49 6 20 1 +310 7 6 1 6 6 63 4 20 1 +0 7 6 2 5 6 30 7 20 1 +54 7 4 2 6 4 62 5 20 1 +1600 0 4 3 6 1 30 6 20 0 +14 0 6 3 6 6 34 6 20 1 +25 7 6 3 6 5 41 4 20 1 +45 0 4 5 4 6 43 3 20 1 +20 2 5 2 6 4 33 5 20 0 +18 6 4 3 5 5 67 7 20 1 +740 7 5 1 6 0 55 5 20 1 +9 6 2 2 6 0 33 5 20 0 +5 0 6 1 5 5 61 4 20 1 +7300 7 4 1 6 4 45 3 20 0 +81 7 4 3 7 0 34 3 20 0 +190 1 6 2 6 6 35 3 20 1 +51 1 4 4 5 2 50 6 20 0 +7300 7 3 4 2 0 38 4 20 0 +350 0 6 2 6 5 56 3 20 1 +27 2 4 1 6 5 31 3 20 1 +33 5 6 1 4 5 40 7 20 1 +50 4 3 2 6 0 44 3 20 0 +1 7 6 5 2 2 39 4 20 0 +11 1 4 3 6 1 45 3 20 0 +51 5 3 3 6 0 72 6 20 0 +160 7 2 3 5 1 44 7 20 0 +16 7 1 3 6 0 61 7 21 0 +110 6 6 2 6 6 34 7 21 1 +110 4 5 2 5 5 61 6 21 1 +13 6 3 3 7 1 67 4 21 0 +220 7 4 1 4 6 38 6 21 1 +470 7 4 2 6 1 50 6 21 0 +22 6 6 1 6 6 62 4 21 1 +9 2 6 3 6 5 36 6 21 1 +22 3 6 3 5 4 50 6 21 1 +190 2 4 2 7 1 30 6 21 0 +100 5 6 2 6 6 59 5 21 1 +14 7 3 3 6 0 62 6 21 0 +0 7 4 3 6 3 40 4 21 0 +180 1 6 1 6 6 30 4 21 1 +3 6 3 2 6 2 47 3 21 0 +51 2 5 2 6 1 41 6 21 0 +9 2 6 1 6 6 35 7 21 1 +0 7 5 2 6 6 45 4 21 1 +0 2 4 2 6 4 34 6 21 1 +71 2 5 7 2 2 55 3 21 0 +290 1 5 3 6 2 37 4 21 0 +45 3 5 2 4 4 61 7 21 1 +0 3 4 5 4 1 62 2 21 0 +26 1 5 2 6 6 54 6 21 1 +87 3 2 3 6 1 33 6 21 0 +0 0 2 3 6 1 50 6 21 0 +630 0 3 4 7 2 37 3 21 0 +50 5 5 3 6 3 44 3 21 1 +35 7 4 3 4 3 78 3 21 0 +180 7 6 2 4 6 56 3 21 0 +32 0 2 3 4 2 29 6 21 0 +0 7 3 2 5 4 52 6 21 0 +51 1 6 4 5 1 31 3 21 0 +40 0 6 3 6 6 34 7 21 1 +0 2 5 3 6 5 31 7 21 1 +0 7 4 3 5 2 43 6 21 0 +0 1 4 4 3 5 31 3 21 1 +1 6 6 1 6 6 63 7 21 1 +7 2 2 3 7 4 38 4 21 0 +0 2 6 2 6 6 31 5 21 1 +71 2 2 1 7 0 64 3 21 0 +75 2 3 2 5 5 55 7 21 0 +55 1 2 2 6 0 41 3 21 0 +290 4 3 4 5 5 38 4 21 1 +88 4 6 3 6 5 28 6 21 1 +0 7 4 3 5 5 42 5 21 1 +16 7 2 4 3 1 43 4 21 0 +75 1 5 1 6 5 37 4 21 1 +220 1 4 2 6 3 47 5 21 0 +3 5 5 1 6 5 52 7 21 1 +130 0 5 2 6 5 32 4 21 1 +0 5 4 4 3 2 29 3 21 0 +110 2 6 2 5 4 56 3 21 1 +12 7 4 3 5 5 63 7 21 1 +180 3 3 3 6 1 35 5 21 0 +93 7 4 3 5 3 36 4 21 1 +170 7 4 2 7 0 75 5 21 0 +31 5 3 3 6 1 48 6 21 0 +62 4 7 2 6 6 36 5 21 1 +30 4 4 3 6 2 34 6 21 0 +66 7 4 3 7 1 35 5 21 0 +3 3 5 2 5 6 50 4 21 1 +18 3 5 2 5 6 39 7 21 1 +350 5 5 4 6 5 70 7 21 1 +71 7 4 2 5 6 76 3 21 1 +3500 5 5 2 5 5 35 6 21 1 +0 0 3 4 3 3 53 7 21 1 +360 6 5 2 6 4 46 6 21 1 +81 2 5 2 5 4 34 4 21 1 +350 5 4 4 6 5 69 4 21 0 +190 1 5 2 5 1 32 3 21 0 +0 7 5 1 6 6 50 2 21 1 +290 1 5 3 6 6 35 6 21 1 +18 0 6 1 6 6 67 5 21 1 +11 3 5 5 6 5 47 3 21 0 +2 2 6 3 5 4 50 6 21 1 +570 0 6 2 6 4 32 3 21 1 +310 3 5 4 6 2 58 5 21 0 +1 7 3 2 7 0 49 7 21 0 +0 2 6 3 6 1 43 4 21 1 +35 1 5 2 6 5 24 6 21 1 +22 7 5 3 4 2 58 7 21 0 +2 1 2 2 5 0 43 4 21 0 +0 7 4 3 6 5 59 3 21 1 +0 3 6 1 6 6 40 5 21 1 +310 0 5 2 7 0 35 4 21 0 +470 5 2 3 5 1 48 4 21 0 +0 4 6 1 6 6 40 3 21 1 +270 3 3 2 7 0 48 3 21 0 +110 0 2 4 6 0 47 7 21 0 +50 3 6 4 1 1 23 3 21 0 +0 0 6 1 6 6 38 3 21 1 +3 7 6 2 6 6 81 7 21 1 +31 5 3 3 6 1 48 6 21 0 +22 7 5 6 2 4 52 3 21 0 +83 2 4 1 6 3 24 6 21 1 +9 0 4 2 6 1 21 5 21 0 +5 7 5 2 6 5 70 6 21 1 +0 7 7 1 7 6 24 6 21 1 +0 7 4 3 5 1 57 7 21 0 +0 6 3 5 6 4 37 6 21 0 +27 1 3 5 3 5 25 5 21 0 +110 1 6 5 1 1 33 3 21 0 +0 7 4 6 3 0 45 3 22 0 +0 3 5 2 7 5 42 6 22 0 +350 3 3 3 6 2 47 6 22 0 +0 7 6 1 6 6 51 7 22 1 +5 7 5 4 6 5 85 2 22 0 +15 4 3 3 6 2 32 7 22 0 +35 7 3 3 6 2 31 7 22 0 +0 2 4 3 6 2 23 6 22 0 +75 3 3 3 6 0 42 6 22 0 +0 5 6 2 5 5 55 6 22 1 +16 7 6 2 6 6 45 6 22 1 +0 1 6 2 5 6 35 7 22 1 +0 0 2 4 6 0 45 6 22 0 +0 0 3 3 5 2 42 3 22 0 +4 1 6 2 6 5 37 4 22 1 +62 0 4 4 4 5 38 3 22 1 +0 3 2 2 6 1 47 7 22 0 +4 7 4 2 6 2 32 6 22 0 +56 2 5 2 6 5 35 6 22 1 +2 6 4 2 6 5 38 4 22 1 +0 0 4 4 4 3 40 3 22 0 +75 7 6 2 5 6 62 6 22 1 +10 2 2 2 6 1 28 7 22 0 +0 6 6 2 5 6 59 5 22 1 +0 2 1 2 6 0 25 6 22 0 +220 2 4 2 6 6 31 6 22 1 +0 1 7 2 6 6 45 4 22 1 +75 0 5 2 7 5 42 6 22 0 +0 3 2 2 5 1 56 7 22 0 +140 5 3 3 6 1 47 7 22 0 +290 1 6 2 5 5 38 6 22 1 +350 7 4 3 7 2 47 6 22 0 +55 1 5 2 6 6 49 4 22 1 +31 3 3 3 6 2 29 7 22 0 +17 7 2 2 6 0 57 6 22 0 +51 4 6 3 5 6 68 3 22 1 +140 7 2 2 4 0 76 6 22 0 +9 4 6 2 6 5 66 6 22 1 +0 7 5 1 6 4 59 4 22 1 +640 7 5 3 6 4 37 7 22 0 +32 2 5 2 6 6 38 6 22 1 +5 7 6 2 6 5 47 7 22 1 +8 1 5 2 4 5 36 7 22 1 +18 0 5 4 6 0 45 7 22 0 +0 6 5 2 6 5 39 7 22 1 +0 1 3 2 6 1 34 6 22 0 +0 3 6 6 4 0 49 4 22 0 +31 2 6 2 6 5 36 6 22 1 +350 7 6 1 6 6 81 5 22 1 +20 1 5 2 6 4 29 4 22 1 +70 3 5 3 4 0 45 6 22 0 +31 3 5 2 6 5 21 4 22 1 +3 7 2 4 3 6 33 6 22 1 +9 7 4 4 2 2 44 3 23 0 +59 1 2 2 6 4 52 7 23 0 +27 2 3 5 7 1 38 4 23 0 +51 4 2 3 6 2 44 5 23 0 +9 7 6 2 6 6 87 7 23 1 +0 2 7 2 6 5 22 3 23 1 +88 0 3 3 5 2 32 6 23 1 +67 0 4 5 6 4 69 3 23 0 +29 2 6 2 5 6 49 6 23 1 +5 0 6 2 6 6 53 3 23 1 +0 0 6 1 6 5 44 6 23 1 +900 1 6 2 7 5 34 6 23 1 +18 1 6 1 5 5 55 7 23 1 +190 2 3 3 6 0 35 6 23 0 +2 7 4 5 5 3 55 3 23 0 +5 3 6 3 5 5 27 6 23 1 +56 3 4 4 5 1 26 6 23 0 +75 7 4 2 6 5 54 6 23 0 +56 0 5 2 6 5 42 4 23 1 +0 5 6 1 6 6 57 7 23 1 +0 0 7 1 4 6 54 6 23 1 +75 6 6 3 6 6 55 6 23 1 +1600 7 5 3 6 6 50 7 23 1 +15 0 5 5 6 1 57 7 23 0 +19 3 5 3 7 3 46 4 23 0 +16 7 6 2 6 6 53 6 23 1 +42 2 3 3 5 0 32 7 23 0 +18 5 5 2 5 3 53 5 23 1 +0 3 3 3 6 1 39 6 23 0 +310 1 5 2 5 4 47 6 23 1 +1600 7 5 2 4 2 57 4 23 0 +23 5 6 3 6 6 49 6 23 1 +20 1 5 4 6 5 31 5 23 0 +51 5 5 3 5 5 43 6 23 1 +0 2 5 2 5 4 44 6 23 1 +0 4 4 3 6 0 39 6 23 0 +0 2 6 1 6 5 49 4 23 1 +18 7 5 4 6 4 72 6 23 1 +7300 7 5 2 6 5 50 6 23 1 +110 1 5 2 6 6 28 4 23 1 +0 0 5 2 7 3 48 7 23 1 +3500 1 3 4 7 1 32 6 23 0 +720 7 5 5 5 1 63 4 23 0 +9 4 4 5 6 5 36 4 23 1 +47 7 6 3 6 6 36 6 23 1 +350 7 3 2 7 2 53 3 23 0 +0 5 2 2 6 2 44 7 23 0 +0 0 4 2 6 6 41 7 24 1 +83 0 2 3 6 1 56 7 24 0 +1 4 4 4 6 2 63 7 24 0 +190 7 2 4 6 0 52 6 24 0 +0 7 3 3 7 2 43 7 24 0 +12 7 4 3 6 2 40 3 24 0 +9 5 5 1 7 4 69 4 24 1 +23 7 2 2 6 0 49 7 24 0 +9 1 3 3 6 2 65 7 24 0 +18 5 6 1 6 5 53 7 24 1 +0 5 5 3 5 6 50 4 24 1 +12 3 2 4 6 0 27 5 24 0 +0 6 5 3 5 5 44 6 24 1 +170 2 2 3 5 0 54 7 24 0 +0 7 4 2 6 4 33 5 24 1 +9 0 4 4 6 3 48 7 24 0 +23 3 5 2 6 5 54 5 24 1 +0 0 6 2 5 6 56 3 24 1 +9 1 2 4 7 2 34 7 24 0 +290 7 6 4 7 6 41 6 24 0 +1 0 5 1 5 6 40 6 24 1 +350 1 7 2 6 6 55 6 24 1 +20 0 4 3 5 5 38 6 24 1 +0 3 6 2 6 6 40 6 24 1 +23 1 6 1 6 6 46 4 24 1 +150 4 3 3 4 0 26 6 24 0 +31 0 5 2 7 3 49 6 24 0 +0 7 4 1 5 6 51 5 24 1 +9 2 5 2 6 4 46 6 24 0 +47 0 3 4 6 2 40 7 24 0 +900 0 3 4 7 2 30 5 24 0 +83 3 2 3 6 2 45 5 24 0 +18 7 5 4 6 4 52 7 24 1 +0 0 6 1 5 6 36 6 24 1 +20 0 4 3 5 3 49 6 24 0 +24 7 3 4 5 1 38 7 24 0 +18 0 2 4 6 1 51 7 24 0 +9 3 3 2 5 1 47 6 24 0 +0 1 6 1 5 6 52 7 24 1 +9 0 6 2 6 6 33 6 24 1 +0 4 4 2 6 6 50 4 24 1 +18 7 6 2 5 4 48 7 24 1 +19 3 2 2 6 0 36 6 24 0 +31 3 2 3 6 1 35 7 24 0 +3500 7 7 3 5 4 34 7 24 0 +0 7 2 4 5 2 53 6 24 0 +33 0 4 3 6 2 33 7 24 0 +0 1 6 3 6 6 52 6 24 1 +18 3 4 3 6 4 44 7 24 0 +0 0 3 4 4 0 48 6 24 0 +31 3 5 2 6 5 20 4 24 1 +0 5 3 2 4 6 45 6 24 1 +59 7 4 2 6 2 70 3 24 0 +0 0 3 3 4 2 39 3 24 0 +7300 7 3 3 5 1 40 7 24 1 +75 4 5 2 7 5 62 6 24 1 +0 7 5 2 6 4 46 6 24 1 +27 7 4 4 7 2 46 3 24 0 +1600 7 4 2 5 6 56 7 24 1 +0 7 6 3 6 6 55 7 24 1 +0 7 6 2 6 6 41 4 24 1 +7300 1 2 3 6 0 43 7 24 0 +16 7 7 1 7 6 34 3 24 1 +0 7 7 1 6 4 73 6 24 1 +0 7 5 2 6 6 50 6 24 1 +0 3 6 2 7 5 43 6 24 1 +0 6 6 2 5 6 46 7 24 1 +18 7 4 2 6 3 61 7 24 1 diff --git a/statsmodels/datasets/anes96/data.py b/statsmodels/datasets/anes96/data.py new file mode 100644 index 0000000..a5c9774 --- /dev/null +++ b/statsmodels/datasets/anes96/data.py @@ -0,0 +1,126 @@ +"""American National Election Survey 1996""" + +__docformat__ = 'restructuredtext' + +COPYRIGHT = """This is public domain.""" +TITLE = __doc__ +SOURCE = """ +http://www.electionstudies.org/ + +The American National Election Studies. +""" + +DESCRSHORT = """This data is a subset of the American National Election Studies of 1996.""" + +DESCRLONG = DESCRSHORT + +NOTE = """:: + + Number of observations - 944 + Number of variables - 10 + + Variables name definitions:: + + popul - Census place population in 1000s + TVnews - Number of times per week that respondent watches TV news. + PID - Party identification of respondent. + 0 - Strong Democrat + 1 - Weak Democrat + 2 - Independent-Democrat + 3 - Independent-Indpendent + 4 - Independent-Republican + 5 - Weak Republican + 6 - Strong Republican + age : Age of respondent. + educ - Education level of respondent + 1 - 1-8 grades + 2 - Some high school + 3 - High school graduate + 4 - Some college + 5 - College degree + 6 - Master's degree + 7 - PhD + income - Income of household + 1 - None or less than $2,999 + 2 - $3,000-$4,999 + 3 - $5,000-$6,999 + 4 - $7,000-$8,999 + 5 - $9,000-$9,999 + 6 - $10,000-$10,999 + 7 - $11,000-$11,999 + 8 - $12,000-$12,999 + 9 - $13,000-$13,999 + 10 - $14,000-$14.999 + 11 - $15,000-$16,999 + 12 - $17,000-$19,999 + 13 - $20,000-$21,999 + 14 - $22,000-$24,999 + 15 - $25,000-$29,999 + 16 - $30,000-$34,999 + 17 - $35,000-$39,999 + 18 - $40,000-$44,999 + 19 - $45,000-$49,999 + 20 - $50,000-$59,999 + 21 - $60,000-$74,999 + 22 - $75,000-89,999 + 23 - $90,000-$104,999 + 24 - $105,000 and over + vote - Expected vote + 0 - Clinton + 1 - Dole + The following 3 variables all take the values: + 1 - Extremely liberal + 2 - Liberal + 3 - Slightly liberal + 4 - Moderate + 5 - Slightly conservative + 6 - Conservative + 7 - Extremely Conservative + selfLR - Respondent's self-reported political leanings from "Left" + to "Right". + ClinLR - Respondents impression of Bill Clinton's political + leanings from "Left" to "Right". + DoleLR - Respondents impression of Bob Dole's political leanings + from "Left" to "Right". + logpopul - log(popul + .1) +""" + +from numpy import recfromtxt, log +import numpy.lib.recfunctions as nprf +from statsmodels.datasets import utils as du +from os.path import dirname, abspath + +def load(): + """Load the anes96 data and returns a Dataset class. + + Returns + ------- + Dataset instance: + See DATASET_PROPOSAL.txt for more information. + """ + data = _get_data() + return du.process_recarray(data, endog_idx=5, + exog_idx=[10, 2, 6, 7, 8], + dtype=float) + +def load_pandas(): + """Load the anes96 data and returns a Dataset class. + + Returns + ------- + Dataset instance: + See DATASET_PROPOSAL.txt for more information. + """ + data = _get_data() + return du.process_recarray_pandas(data, endog_idx=5, + exog_idx=[10, 2, 6, 7, 8], + dtype=float) + +def _get_data(): + filepath = dirname(abspath(__file__)) + with open(filepath + '/anes96.csv', "rb") as f: + data = recfromtxt(f, delimiter="\t", names=True, dtype=float) + logpopul = log(data['popul'] + .1) + data = nprf.append_fields(data, 'logpopul', logpopul, usemask=False, + asrecarray=True) + return data diff --git a/statsmodels/datasets/anes96/src/anes96.csv b/statsmodels/datasets/anes96/src/anes96.csv new file mode 100644 index 0000000..319e358 --- /dev/null +++ b/statsmodels/datasets/anes96/src/anes96.csv @@ -0,0 +1,945 @@ +popul TVnews selfLR ClinLR DoleLR PID age educ income vote reldist +0 7 7 1 6 6 36 3 1 1 -5 +190 1 3 3 5 1 20 4 1 0 2 +31 7 2 2 6 1 24 6 1 0 4 +83 4 3 4 5 1 28 6 1 0 1 +640 7 5 6 4 0 68 6 1 0 0 +110 3 3 4 6 1 21 4 1 0 2 +100 7 5 6 4 1 77 4 1 0 0 +31 1 5 4 5 4 21 4 1 0 -1 +180 7 4 6 3 3 31 4 1 0 -1 +2800 0 3 3 7 0 39 3 1 0 4 +1600 0 3 2 4 4 26 2 1 0 0 +330 5 4 3 6 1 31 4 1 0 1 +190 2 5 4 6 5 22 4 1 1 0 +100 7 4 4 6 0 42 5 1 0 2 +1000 7 5 7 4 0 74 1 1 0 -1 +0 7 6 7 5 0 62 3 1 0 0 +130 7 4 4 5 1 58 3 1 0 1 +5 5 3 3 6 1 24 6 1 0 3 +33 7 6 2 6 5 51 4 1 1 -4 +19 2 2 1 4 0 36 3 2 0 1 +74 7 4 4 7 2 88 2 2 0 3 +190 0 2 4 6 2 20 4 2 0 2 +12 3 4 6 3 2 27 3 2 0 -1 +0 7 6 1 6 6 44 4 2 1 -5 +19 0 4 2 2 1 45 3 2 0 0 +0 2 4 3 6 1 21 4 2 0 1 +390 5 3 4 7 1 40 5 2 0 3 +40 7 4 3 4 0 40 6 2 0 -1 +3 3 5 5 4 1 48 3 2 0 1 +450 3 4 7 1 0 34 3 2 0 0 +350 0 3 4 7 2 26 2 2 0 3 +64 3 4 4 2 1 60 2 3 0 2 +3 0 4 4 3 0 32 3 3 0 1 +0 1 4 3 7 1 31 3 3 0 2 +640 7 7 5 7 4 33 3 3 1 -2 +0 7 3 4 6 0 57 3 3 0 2 +12 7 4 3 6 1 84 3 3 0 1 +62 6 7 2 7 5 75 3 3 1 -5 +31 2 7 2 6 6 19 4 3 1 -4 +0 1 3 2 6 1 47 6 3 0 2 +180 6 5 5 5 0 51 2 3 0 0 +640 3 6 4 4 5 40 3 3 0 0 +110 0 2 3 6 1 22 6 3 0 3 +100 1 7 7 5 6 35 2 3 0 2 +100 7 4 4 7 2 43 5 3 0 3 +11 3 6 6 3 2 76 6 3 0 3 +0 7 4 3 1 6 45 3 3 1 2 +4 7 4 6 6 0 88 2 3 0 0 +35 6 4 4 2 1 46 3 4 0 2 +0 1 3 4 5 2 22 6 4 0 1 +0 7 5 1 6 5 68 3 4 1 -3 +0 2 5 2 6 5 38 3 4 1 -2 +33 7 4 3 6 3 69 2 4 0 1 +270 2 5 4 3 0 67 3 4 0 1 +45 7 2 4 6 0 88 4 4 0 2 +40 3 6 2 5 5 68 3 4 1 -3 +6 1 5 2 4 2 76 3 4 1 -2 +2 7 4 4 6 0 72 2 4 0 2 +0 0 6 2 6 6 37 6 4 1 -4 +35 3 4 2 6 0 69 3 4 0 0 +83 0 2 4 6 0 33 6 4 0 2 +3500 7 2 2 6 0 34 4 4 0 4 +100 2 4 4 7 2 30 3 4 0 3 +350 2 3 3 6 1 19 3 4 0 3 +100 3 4 6 2 0 44 3 4 0 0 +67 1 4 4 7 1 64 3 4 0 3 +30 5 7 7 2 0 37 4 4 0 5 +0 7 6 3 5 4 31 5 5 1 -2 +0 0 6 1 5 4 88 4 5 1 -4 +6 7 6 2 6 6 77 4 5 1 -4 +350 1 4 5 6 5 30 6 5 0 1 +400 1 2 3 7 1 32 4 5 0 4 +15 7 6 2 6 6 59 1 5 1 -4 +0 0 4 4 4 3 47 4 5 0 0 +3 2 4 6 5 1 22 3 5 0 -1 +22 5 4 2 6 2 55 3 5 0 0 +64 2 2 1 3 0 24 2 5 0 0 +32 5 3 7 4 1 65 1 5 0 -3 +390 7 3 6 2 2 24 3 5 0 -2 +0 7 3 4 5 3 30 3 5 0 1 +0 7 4 5 2 3 73 3 5 0 1 +59 5 3 3 5 1 73 5 5 0 2 +0 6 4 3 6 2 91 1 5 0 1 +35 7 3 2 5 0 71 2 5 0 1 +0 2 6 4 5 4 34 4 5 1 -1 +170 7 4 3 2 0 48 2 6 0 1 +12 1 6 2 6 5 42 4 6 1 -4 +40 4 6 5 4 0 72 2 6 0 1 +31 2 3 4 6 6 20 4 6 1 2 +31 7 2 2 7 0 22 4 6 0 5 +1600 1 3 3 6 1 24 6 6 0 3 +1 1 4 2 7 2 39 6 6 0 1 +4 7 6 1 6 6 83 5 6 1 -5 +190 0 6 2 6 6 39 3 6 1 -4 +53 3 5 3 6 1 33 5 6 0 -1 +31 7 4 3 6 1 53 3 6 1 1 +16 7 5 3 6 5 82 3 6 1 -1 +33 5 4 3 5 6 82 3 6 1 0 +0 3 5 3 6 5 47 6 7 1 -1 +0 3 4 2 7 4 68 3 7 0 1 +0 7 4 3 5 0 84 6 7 0 0 +27 2 6 1 6 5 35 5 7 1 -5 +84 7 4 5 6 1 67 2 7 0 1 +22 3 5 3 5 4 33 2 7 1 -2 +0 3 3 3 5 0 49 7 7 0 2 +3500 0 4 3 7 0 91 1 7 0 2 +390 7 4 5 3 1 43 3 7 0 0 +0 7 4 3 2 6 65 4 7 0 1 +16 7 5 6 3 0 69 3 7 0 1 +200 0 5 5 4 1 56 4 8 0 1 +640 0 2 3 5 0 24 6 8 0 2 +0 7 4 4 5 0 77 3 8 0 1 +45 7 6 3 7 0 74 3 8 0 -2 +12 0 7 3 6 6 25 6 8 1 -3 +20 7 6 2 5 4 85 1 8 1 -3 +7300 5 7 7 6 3 21 2 8 0 1 +64 7 6 3 1 0 24 4 8 0 2 +13 7 5 4 7 4 73 4 8 0 1 +190 0 4 5 3 2 37 3 8 0 0 +9 4 4 5 1 2 35 4 8 0 2 +0 7 4 4 7 0 47 3 8 0 3 +170 2 4 2 6 6 21 3 8 1 0 +640 7 3 6 4 0 55 5 8 0 -2 +9 4 6 3 6 6 30 6 8 1 -3 +0 4 5 3 6 4 76 7 8 1 -1 +7300 5 3 4 3 3 36 4 8 0 -1 +2800 0 1 1 7 0 38 3 9 0 6 +0 7 2 3 5 0 67 3 9 0 2 +30 7 7 3 7 6 70 2 9 1 -4 +44 7 5 3 7 2 78 4 9 0 0 +7300 1 2 2 7 3 27 6 9 0 5 +330 4 3 5 6 1 51 4 9 0 1 +3 0 6 7 3 5 33 4 9 0 2 +51 2 6 1 5 6 80 6 9 1 -4 +29 5 4 1 6 1 79 1 9 0 -1 +630 2 6 4 5 4 66 1 9 1 -1 +170 0 4 1 6 0 32 3 10 0 -1 +33 7 4 5 7 0 70 2 10 0 2 +0 3 2 3 6 3 42 3 10 0 3 +9 5 5 4 5 5 73 4 10 1 -1 +22 4 4 4 6 0 87 2 10 0 2 +100 0 7 5 1 1 30 5 10 0 4 +2 2 4 4 5 3 52 3 10 0 1 +0 6 5 3 6 1 62 4 10 0 -1 +50 7 6 3 4 0 67 3 10 0 -1 +15 4 6 3 4 4 37 6 10 0 -1 +3 4 3 5 7 0 37 4 10 0 2 +720 5 1 5 6 1 64 6 10 0 1 +640 7 1 1 5 0 34 3 10 0 4 +5 7 4 4 7 0 70 3 10 0 3 +24 2 6 2 6 6 31 5 10 1 -4 +22 7 2 2 6 0 29 6 11 0 4 +55 7 4 5 4 1 71 2 11 0 -1 +0 2 4 4 4 0 67 1 11 0 0 +1600 5 4 4 6 0 41 7 11 0 2 +170 6 1 2 6 0 49 6 11 0 4 +1000 7 4 4 5 0 42 5 11 0 1 +63 0 6 3 2 0 78 2 11 0 1 +110 0 4 1 6 1 24 3 11 0 -1 +16 7 4 6 6 1 29 3 11 0 0 +100 3 4 2 6 5 39 5 11 1 0 +7300 3 5 3 6 1 19 4 11 0 -1 +22 2 4 2 7 1 32 5 11 0 1 +71 3 4 2 6 5 69 3 11 1 0 +900 4 5 2 5 5 83 3 11 1 -3 +35 7 4 1 5 4 76 2 11 1 -2 +2 7 7 1 2 0 62 2 11 0 -1 +83 2 3 3 6 0 47 7 11 0 3 +370 5 6 7 4 0 35 3 11 0 1 +12 0 4 5 3 4 23 3 11 0 0 +370 7 4 4 1 1 79 4 11 0 3 +100 7 6 2 6 5 64 5 11 1 -4 +470 7 6 2 4 5 70 4 11 1 -2 +22 7 6 1 6 6 87 5 11 1 -5 +2800 0 3 6 1 0 28 2 12 0 -1 +47 5 3 5 7 1 58 3 12 0 2 +900 5 4 4 6 1 85 2 12 0 2 +330 7 3 6 4 0 62 3 12 0 -2 +84 0 3 2 7 1 26 6 12 0 3 +0 0 6 2 5 5 28 3 12 1 -3 +33 3 6 1 7 6 88 2 12 1 -4 +53 7 2 3 6 0 57 6 12 0 3 +8 7 2 2 6 0 78 3 12 0 4 +2 7 4 4 2 0 56 3 12 0 2 +0 0 4 6 3 3 46 5 12 0 -1 +0 2 4 4 3 5 20 3 12 1 1 +0 0 5 6 4 1 24 4 12 0 0 +0 7 5 2 6 2 72 4 12 0 -2 +15 7 2 4 7 1 51 4 12 0 3 +900 0 6 2 5 6 34 6 12 1 -3 +30 2 4 2 6 1 21 4 12 0 0 +0 7 4 4 6 2 74 7 12 0 2 +170 3 4 4 6 1 48 1 12 0 2 +900 2 3 3 7 5 28 3 12 0 4 +0 6 7 1 7 5 38 2 12 1 -6 +1600 7 4 6 1 0 70 3 12 0 1 +0 7 4 5 4 0 72 2 12 0 -1 +2800 0 4 5 6 0 41 3 12 0 1 +110 5 3 4 5 1 50 7 12 0 1 +1 7 6 2 5 5 73 3 12 1 -3 +3 5 5 2 4 0 79 6 12 0 -2 +0 4 5 1 4 5 76 2 12 1 -3 +22 0 5 3 5 5 62 5 12 1 -2 +63 3 6 2 6 6 30 6 12 1 -4 +290 0 6 3 6 5 35 4 12 1 -3 +2 7 1 2 7 1 66 4 12 0 5 +40 0 2 4 6 0 35 4 12 0 2 +67 0 6 1 5 6 57 6 12 1 -4 +0 5 4 5 4 5 37 5 12 1 -1 +470 7 5 5 2 1 61 3 13 0 3 +0 7 6 2 6 6 56 3 13 1 -4 +4 6 3 4 5 1 53 3 13 0 1 +20 0 4 5 3 2 24 6 13 1 0 +2800 7 4 1 6 5 74 3 13 1 -1 +0 0 4 4 3 1 36 3 13 0 1 +1 0 6 2 4 5 30 5 13 1 -2 +640 0 4 7 4 1 55 2 13 0 -3 +170 3 3 2 7 2 35 6 13 0 3 +270 2 3 4 6 0 26 4 13 0 2 +390 0 3 4 6 2 25 4 13 0 2 +16 2 6 7 4 3 27 3 13 0 1 +11 7 4 1 6 5 66 3 13 1 -1 +0 1 5 2 6 2 39 2 13 0 -2 +270 7 1 1 2 2 58 5 13 0 1 +170 2 4 4 4 0 53 3 13 1 0 +900 7 6 7 4 0 76 3 13 0 1 +270 7 5 2 7 1 51 3 13 0 -1 +0 7 4 2 7 0 70 2 13 0 1 +350 3 6 3 6 6 68 4 13 1 -3 +0 0 5 4 5 2 32 3 13 1 -1 +6 0 5 4 5 5 55 3 13 0 -1 +290 7 2 2 6 0 52 4 13 0 4 +630 7 6 4 6 4 73 2 13 1 -2 +900 0 5 4 7 0 42 2 13 0 1 +31 2 4 4 3 4 23 5 13 1 1 +1600 5 2 3 6 0 30 7 14 0 3 +71 7 2 2 7 0 68 4 14 0 5 +200 7 5 2 3 2 68 3 14 0 -1 +0 0 6 4 7 3 68 6 14 0 -1 +30 5 2 3 6 0 38 5 14 0 3 +10 1 4 3 6 2 74 3 14 0 1 +0 7 5 6 3 0 59 2 14 0 1 +900 2 5 2 5 2 73 2 14 0 -3 +71 7 2 3 6 0 79 3 14 0 3 +22 3 7 1 6 5 28 4 14 1 -5 +0 7 6 2 6 6 50 3 14 1 -4 +0 4 6 3 1 1 36 4 14 0 2 +0 3 6 2 6 6 50 3 14 1 -4 +0 1 6 2 6 6 61 3 14 1 -4 +7300 3 2 2 6 0 37 4 14 0 4 +83 0 3 4 7 0 29 6 14 0 3 +93 7 2 3 7 0 39 4 14 0 4 +0 7 4 5 4 2 83 6 14 1 -1 +51 7 6 1 5 4 68 6 14 1 -4 +31 2 6 1 5 6 25 4 14 1 -4 +93 2 1 3 6 1 41 6 14 0 3 +0 7 3 2 6 1 67 3 14 0 2 +0 3 4 2 6 4 36 6 14 1 0 +31 4 6 2 6 4 66 4 14 1 -4 +900 1 3 2 7 1 55 4 14 0 3 +0 4 3 2 6 2 42 5 14 0 2 +2 7 6 3 5 5 42 3 14 1 -2 +110 3 4 5 7 1 36 3 14 0 2 +63 1 6 4 6 4 53 5 14 1 -2 +900 0 3 2 5 1 36 5 14 0 1 +31 3 4 3 6 2 29 7 14 0 1 +510 1 4 4 6 0 31 3 14 0 2 +270 2 3 4 6 1 43 6 14 0 2 +9 3 3 4 7 1 33 6 14 0 3 +3 1 6 6 2 0 63 3 14 0 4 +29 1 5 2 4 2 25 5 14 0 -2 +45 2 3 2 6 0 72 4 14 0 2 +83 5 3 3 6 1 40 4 14 0 3 +22 7 4 2 6 2 27 6 14 0 0 +15 3 5 4 7 2 26 4 15 0 1 +110 7 5 2 5 6 67 3 15 1 -3 +8 0 4 5 5 1 21 3 15 0 0 +11 5 6 2 6 6 27 7 15 1 -4 +56 4 6 5 3 0 78 6 15 1 2 +8 3 4 4 3 1 32 3 15 0 1 +100 5 4 2 6 1 68 4 15 0 0 +900 7 4 2 6 5 76 4 15 0 0 +67 7 3 3 6 0 33 5 15 0 3 +35 4 6 2 5 4 38 2 15 1 -3 +35 3 4 3 5 1 49 7 15 0 0 +22 0 5 4 6 5 61 4 15 1 0 +110 7 7 1 5 4 57 3 15 1 -4 +12 0 4 2 5 2 20 3 15 0 -1 +7300 7 4 2 4 4 63 6 15 1 -2 +0 0 4 1 5 4 53 3 15 1 -2 +19 5 4 2 6 5 35 4 15 1 0 +470 3 4 4 7 0 39 3 15 0 3 +4 3 3 5 3 4 48 3 15 1 -2 +640 4 6 2 5 4 62 3 15 1 -3 +640 2 4 2 3 1 30 5 15 0 -1 +200 7 7 1 4 6 26 6 15 1 -3 +0 7 3 2 4 5 74 6 15 1 0 +29 4 3 4 6 2 37 5 15 0 2 +330 2 4 5 5 1 43 5 15 0 0 +19 5 5 1 4 6 68 3 15 1 -3 +1 7 5 3 4 5 73 5 15 1 -1 +110 5 6 1 6 6 60 7 15 1 -5 +0 7 5 4 6 1 35 3 15 0 0 +350 4 3 4 6 0 29 6 15 0 2 +2 5 3 3 5 1 25 6 15 0 2 +0 7 2 2 6 0 25 7 15 0 4 +7 4 2 4 5 0 70 6 15 0 1 +71 1 6 2 5 6 41 3 15 1 -3 +53 0 4 2 6 1 37 6 15 0 0 +0 0 6 1 6 6 39 5 15 1 -5 +2 6 3 4 6 0 35 4 15 0 2 +190 4 2 3 6 0 62 7 15 0 3 +31 0 3 2 6 1 30 7 15 0 2 +16 7 4 2 6 0 74 4 15 0 0 +22 7 3 3 4 5 47 3 15 0 1 +3 4 4 5 3 1 43 6 15 0 0 +0 6 5 3 6 5 64 2 15 1 -1 +0 7 4 3 5 2 75 4 15 1 0 +67 3 4 4 7 1 27 6 15 0 3 +40 7 4 4 6 0 21 3 15 0 2 +74 4 2 2 6 1 70 2 15 0 4 +3 6 5 2 6 5 67 3 15 1 -2 +140 7 6 4 5 6 82 5 15 0 -1 +14 0 2 2 6 0 40 6 15 0 4 +110 0 5 3 6 5 26 4 15 1 -1 +35 3 4 3 5 1 29 6 15 0 0 +0 1 4 5 6 2 28 6 15 0 1 +310 7 6 4 3 5 65 3 15 0 1 +900 2 6 5 3 1 25 3 15 0 2 +0 7 3 2 7 1 65 2 15 0 3 +11 4 6 2 6 5 38 5 15 1 -4 +0 2 4 3 5 5 72 7 15 1 0 +270 7 3 2 7 1 67 3 15 0 3 +51 7 3 1 7 0 74 3 15 0 2 +11 5 2 4 4 2 71 6 15 0 0 +2 0 4 6 4 0 47 3 15 0 -2 +20 7 5 4 6 1 69 1 15 0 0 +31 3 3 3 6 1 29 6 15 0 3 +2 0 6 2 5 6 34 3 15 1 -3 +5 3 4 3 6 0 43 4 15 0 1 +22 7 2 1 7 0 30 3 15 0 4 +0 7 5 5 4 0 76 2 15 0 1 +27 0 2 4 6 1 26 5 16 0 2 +7 7 4 3 6 2 76 5 16 0 1 +0 0 1 4 6 1 42 7 16 0 2 +0 4 3 1 4 5 33 3 16 1 -1 +0 1 6 2 5 5 25 3 16 1 -3 +2800 0 2 2 7 0 51 4 16 0 5 +0 4 4 2 5 4 57 3 16 1 -1 +22 1 6 1 5 6 21 4 16 1 -4 +9 7 5 1 4 5 79 7 16 1 -3 +0 1 6 2 5 5 35 5 16 1 -3 +9 5 4 2 5 4 57 6 16 1 -1 +0 1 4 4 6 5 32 6 16 0 2 +37 5 4 5 5 2 51 6 16 0 0 +23 0 5 2 4 6 62 7 16 1 -2 +0 4 5 1 6 5 48 4 16 1 -3 +0 7 7 1 6 6 39 3 16 1 -5 +0 5 3 2 6 5 26 6 16 1 2 +40 0 4 2 4 1 38 3 16 1 -2 +0 5 3 3 4 0 50 4 16 0 1 +9 2 5 5 6 4 33 3 16 1 1 +15 5 4 3 6 2 36 3 16 0 1 +640 5 4 4 6 0 24 6 16 0 2 +0 4 3 2 6 0 25 5 16 0 2 +0 7 6 5 3 0 62 3 16 0 2 +0 2 4 3 3 6 33 3 16 1 0 +0 7 6 2 5 6 53 6 16 1 -3 +22 7 6 2 5 6 68 6 16 1 -3 +22 7 5 4 6 1 68 3 16 0 0 +10 1 6 1 5 5 38 3 16 1 -4 +29 1 4 5 3 0 58 1 16 0 0 +170 7 4 2 6 5 34 6 16 1 0 +4 2 4 3 4 1 58 2 16 0 -1 +11 0 3 4 7 1 35 5 16 0 3 +31 3 7 2 6 6 42 6 16 1 -4 +0 7 4 4 6 0 54 3 16 0 2 +0 7 6 2 5 6 69 3 16 1 -3 +360 2 4 6 5 0 35 4 16 0 -1 +0 7 6 1 5 6 66 4 16 1 -4 +900 2 3 2 7 0 58 3 16 0 3 +51 5 2 4 7 1 41 3 16 0 3 +0 2 5 2 6 4 35 6 16 0 -2 +110 0 3 3 6 1 40 7 16 0 3 +1 7 4 7 2 0 53 1 16 0 -1 +8 5 6 2 6 5 67 6 16 1 -4 +5 5 4 4 6 0 32 5 16 0 2 +87 4 3 4 6 0 41 4 16 0 2 +3 1 2 1 6 1 43 7 16 0 3 +51 1 5 3 2 0 65 2 16 0 1 +350 7 3 3 7 0 60 5 16 0 4 +3 7 5 3 6 0 77 6 16 0 -1 +630 0 6 5 4 1 35 4 16 0 1 +180 4 6 7 5 1 48 4 16 0 0 +0 0 6 2 6 6 52 3 16 1 -4 +35 7 5 3 6 2 43 7 16 0 -1 +0 7 6 2 6 6 43 5 16 1 -4 +0 7 6 2 6 6 67 4 16 1 -4 +6 1 4 4 7 0 56 3 16 0 3 +7300 2 3 3 4 0 62 4 16 0 1 +2 1 7 7 5 0 62 3 16 0 2 +35 3 3 2 6 1 22 6 16 0 2 +0 0 2 2 6 1 21 5 16 0 4 +45 3 6 1 6 6 34 3 16 1 -5 +0 7 4 3 5 0 70 3 16 0 0 +5 1 3 2 6 2 50 3 16 0 2 +35 5 6 1 6 6 42 4 16 1 -5 +900 5 6 2 6 6 73 3 16 1 -4 +35 2 3 1 6 0 57 7 16 0 1 +0 7 6 1 5 6 40 6 16 1 -4 +0 2 6 1 6 6 58 6 16 1 -5 +11 7 4 6 2 1 62 3 16 0 0 +40 1 3 5 3 1 44 3 17 0 -2 +0 3 5 3 7 6 30 6 17 0 0 +23 7 3 3 7 0 76 5 17 0 4 +270 3 4 3 3 1 50 4 17 0 0 +9 1 6 2 5 5 41 4 17 1 -3 +0 6 6 3 6 6 77 3 17 1 -3 +0 3 6 3 5 6 35 6 17 1 -2 +0 7 4 3 4 3 39 4 17 0 -1 +2 0 4 2 4 4 72 3 17 1 -2 +0 2 6 2 5 6 42 7 17 1 -3 +16 7 5 2 6 5 85 2 17 1 -2 +7300 0 4 2 6 3 79 4 17 0 0 +0 5 2 3 6 0 39 4 17 0 3 +23 4 6 1 5 6 58 6 17 1 -4 +42 0 4 2 6 5 27 6 17 1 0 +2 4 4 3 5 1 43 5 17 0 0 +0 0 3 3 6 0 58 4 17 0 3 +42 7 4 3 6 4 28 7 17 1 1 +470 2 5 3 6 5 27 6 17 0 -1 +42 0 3 6 5 2 40 3 17 0 -1 +0 5 1 3 6 0 43 6 17 0 3 +40 7 5 4 6 5 64 3 17 1 0 +180 7 2 2 6 0 39 6 17 0 4 +110 7 4 2 6 4 76 4 17 1 0 +140 5 3 3 6 0 64 5 17 0 3 +0 4 4 6 3 2 28 4 17 0 -1 +0 2 4 2 6 1 45 3 17 0 0 +190 1 6 2 6 6 22 3 17 1 -4 +35 1 3 3 6 1 27 6 17 0 3 +45 0 1 2 7 0 31 4 17 0 5 +170 1 2 2 7 0 34 6 17 0 5 +0 4 2 3 7 0 30 4 17 0 4 +0 2 6 1 6 6 64 3 17 1 -5 +35 0 6 1 6 4 36 6 17 1 -5 +5 7 4 3 5 4 31 2 17 1 0 +350 1 4 3 4 5 37 3 17 1 -1 +4 0 6 4 2 1 48 3 17 0 2 +70 0 5 7 7 3 41 3 17 0 0 +8 2 5 2 6 5 25 4 17 1 -2 +12 5 4 2 6 6 82 3 17 1 0 +5 1 6 2 5 4 36 7 17 1 -3 +0 7 6 2 5 1 47 3 17 1 -3 +16 6 2 3 6 0 67 4 17 0 3 +0 0 4 6 2 5 24 4 17 1 0 +9 0 4 5 3 5 33 6 17 1 0 +14 7 4 1 5 1 59 4 17 1 -2 +22 7 7 1 6 6 71 4 17 1 -5 +0 7 6 2 5 6 36 3 17 1 -3 +1 3 3 3 5 0 41 3 17 0 2 +1600 5 6 2 6 6 38 6 17 1 -4 +7300 1 6 3 6 6 32 3 17 1 -3 +19 0 5 6 7 1 32 4 17 0 1 +9 6 5 4 6 0 75 6 17 0 0 +0 7 5 2 4 4 52 3 17 1 -2 +1600 5 2 3 6 0 29 7 17 0 3 +12 7 3 4 6 0 71 3 17 0 2 +1 0 6 2 5 2 33 6 17 0 -3 +0 3 1 2 7 2 67 7 17 0 5 +0 2 6 1 6 6 49 4 17 1 -5 +0 0 2 3 5 1 31 7 17 0 2 +9 7 3 4 6 1 53 2 17 0 2 +0 3 2 3 7 0 35 7 17 0 4 +170 7 6 2 6 6 49 7 18 1 -4 +3 7 6 4 4 0 74 3 18 0 0 +14 0 6 1 5 6 29 4 18 1 -4 +1 5 2 3 6 0 27 6 18 0 3 +23 5 4 4 6 5 70 4 18 0 2 +0 0 6 1 6 6 43 6 18 1 -5 +1 5 2 3 6 2 47 7 18 0 3 +0 4 4 4 6 0 42 7 18 0 2 +9 0 6 2 5 6 41 6 18 1 -3 +130 2 6 4 6 6 37 4 18 1 -2 +5 5 5 5 4 1 61 3 18 0 1 +4 7 4 2 6 0 84 4 18 0 0 +2800 7 5 3 7 0 46 6 18 0 0 +4 0 4 3 6 5 39 7 18 0 1 +6 7 2 3 6 0 53 3 18 0 3 +4 7 5 1 6 6 87 6 18 1 -3 +84 2 4 6 2 0 51 3 18 0 0 +0 0 5 2 5 4 37 5 18 1 -3 +9 1 4 3 5 4 37 6 18 1 0 +290 0 5 2 6 6 40 6 18 1 -2 +0 3 4 4 6 2 46 6 18 0 2 +9 7 1 4 1 3 44 3 18 1 -3 +0 2 4 3 6 1 37 3 18 0 1 +0 7 4 2 6 2 55 7 18 0 0 +22 0 5 2 5 1 40 6 18 1 -3 +0 5 3 2 6 1 42 7 18 0 2 +640 7 6 2 6 6 40 3 18 1 -4 +10 0 6 2 6 6 32 3 18 1 -4 +4 5 5 2 5 4 58 7 18 1 -3 +0 2 5 1 6 4 37 3 18 1 -3 +640 4 4 5 5 5 51 3 18 1 0 +110 5 3 5 4 5 44 5 18 0 -1 +0 2 4 5 2 0 23 2 18 0 1 +0 2 6 2 6 6 38 3 18 1 -4 +67 0 3 4 6 0 42 7 18 0 2 +520 7 4 2 5 4 60 4 18 1 -1 +0 3 4 3 6 1 34 4 18 0 1 +51 1 6 2 6 6 49 3 18 1 -4 +0 0 4 2 3 4 40 3 18 1 -1 +2800 7 2 2 7 0 23 4 18 0 5 +110 2 2 3 6 0 47 3 18 0 3 +7300 7 4 4 7 0 44 5 18 0 3 +7300 5 5 2 6 1 37 7 18 1 -2 +0 2 6 1 6 5 26 5 18 1 -5 +16 7 7 6 5 2 51 4 18 0 1 +140 4 4 4 6 0 69 3 18 0 2 +54 2 2 2 7 0 36 6 18 0 5 +2 2 2 3 6 2 28 4 18 0 3 +470 4 5 2 6 5 40 4 19 1 -2 +0 1 6 1 6 5 45 4 19 1 -5 +75 3 5 2 5 5 75 6 19 1 -3 +11 2 6 2 5 5 32 6 19 1 -3 +0 0 3 2 6 1 27 3 19 0 2 +2800 6 5 2 5 3 63 6 19 1 -3 +140 1 5 3 6 6 79 7 19 1 -1 +9 7 3 2 6 1 40 6 19 0 2 +7300 2 4 3 6 1 57 6 19 0 1 +45 3 3 4 5 1 44 6 19 0 1 +1600 7 5 2 5 6 78 6 19 1 -3 +9 7 4 5 5 5 58 7 19 0 0 +0 7 2 2 7 1 55 3 19 0 5 +130 4 3 4 6 2 25 6 19 0 2 +9 0 2 3 6 0 27 7 19 0 3 +3500 3 4 2 7 2 21 3 19 0 1 +0 3 6 2 6 5 37 4 19 1 -4 +0 0 7 3 4 5 31 3 19 1 -1 +35 7 2 4 6 0 85 7 19 0 2 +900 1 4 2 6 5 33 3 19 0 0 +27 7 3 7 4 3 63 2 19 1 -3 +900 7 4 4 6 1 51 3 19 0 2 +0 2 3 5 2 0 46 3 19 0 -1 +64 2 5 2 6 6 26 5 19 1 -2 +4 7 3 3 6 0 57 6 19 0 3 +0 3 4 2 6 1 48 3 19 1 0 +0 2 7 1 5 5 55 3 19 1 -4 +53 0 3 6 4 1 37 5 19 0 -2 +290 2 6 2 6 6 39 3 19 1 -4 +15 2 2 3 4 1 24 3 19 1 1 +0 0 6 3 6 6 30 6 19 1 -3 +35 0 3 4 6 1 36 7 19 0 2 +0 0 5 4 6 4 45 3 19 0 0 +470 1 5 2 6 2 29 3 19 0 -2 +16 7 6 3 6 5 41 4 19 1 -3 +40 1 5 3 5 4 28 5 19 1 -2 +290 7 2 2 7 0 35 4 19 0 5 +4 7 2 3 6 0 46 4 19 0 3 +1 7 1 2 7 1 55 4 19 0 5 +140 3 2 3 6 6 65 4 19 0 3 +110 1 4 2 6 1 22 4 19 0 0 +0 1 4 4 6 1 41 4 19 0 2 +900 1 2 3 6 2 43 7 19 0 3 +0 2 4 3 6 0 49 4 19 0 1 +0 4 4 2 5 4 35 7 19 1 -1 +51 7 3 3 5 1 80 3 19 0 2 +71 2 4 6 2 0 57 4 19 0 0 +900 4 3 3 6 0 48 3 19 0 3 +83 4 1 4 6 2 43 6 19 0 2 +360 3 4 4 7 0 34 4 19 0 3 +180 7 2 2 4 0 44 5 19 0 2 +1 3 6 1 6 4 49 6 20 1 -5 +22 7 5 2 7 2 43 7 20 0 -1 +1 0 4 3 5 6 39 4 20 1 0 +2 2 4 3 7 1 27 3 20 0 2 +34 4 6 2 6 6 30 6 20 1 -4 +33 2 6 2 6 4 33 6 20 1 -4 +10 1 2 3 7 0 32 5 20 0 4 +290 7 5 2 6 6 31 6 20 1 -2 +0 2 5 3 7 2 27 5 20 0 0 +76 3 2 2 6 0 36 4 20 0 4 +20 7 3 2 6 2 45 5 20 0 2 +0 5 4 6 5 2 51 3 20 0 -1 +0 0 6 2 3 5 36 4 20 1 -1 +0 7 6 4 6 4 47 7 20 1 -2 +470 4 4 4 6 1 42 6 20 0 2 +9 6 6 1 5 6 70 6 20 1 -4 +0 0 3 3 6 3 40 4 20 0 3 +0 7 2 5 7 0 38 3 20 0 2 +8 0 5 1 6 4 29 3 20 1 -3 +1 0 4 2 5 6 58 3 20 1 -1 +1 7 4 6 1 2 28 3 20 0 1 +7 1 6 3 6 5 30 4 20 1 -3 +0 3 4 3 6 2 48 5 20 0 1 +170 0 6 2 6 6 35 4 20 1 -4 +270 3 6 7 6 0 38 3 20 0 -1 +0 0 4 2 5 4 56 7 20 1 -1 +13 4 5 3 6 5 62 4 20 1 -1 +10 7 6 1 6 5 56 4 20 1 -5 +22 0 6 2 5 6 32 3 20 1 -3 +640 5 4 5 7 1 50 5 20 0 2 +900 3 3 4 6 1 45 6 20 0 2 +22 7 3 3 4 0 36 6 20 0 1 +62 1 6 2 6 6 49 4 20 1 -4 +110 2 7 1 6 6 31 6 20 1 -5 +84 4 2 3 6 2 33 7 20 0 3 +0 1 6 2 6 6 35 4 20 1 -4 +13 2 4 2 5 4 73 4 20 1 -1 +20 7 6 1 5 6 54 5 20 1 -4 +0 3 4 2 7 1 48 3 20 0 1 +16 3 6 2 6 4 65 4 20 1 -4 +6 7 5 6 5 6 46 4 20 0 -1 +12 0 2 2 6 0 45 7 20 0 4 +0 7 6 2 5 6 65 7 20 1 -3 +0 0 6 2 6 6 45 6 20 1 -4 +170 7 4 1 5 4 89 7 20 1 -2 +100 0 5 3 6 4 32 4 20 0 -1 +5 4 6 4 4 1 38 4 20 0 0 +3500 5 2 4 2 5 33 4 20 1 -2 +71 4 6 2 5 6 49 7 20 1 -3 +4 7 5 2 6 5 64 6 20 1 -2 +7300 5 5 4 7 1 55 4 20 0 1 +7 0 3 3 5 1 56 7 20 0 2 +290 4 4 5 3 5 30 6 20 0 0 +0 0 5 4 6 5 41 7 20 1 0 +0 1 6 2 5 6 39 5 20 1 -3 +520 7 4 4 6 4 34 3 20 0 2 +430 5 4 5 7 1 53 3 20 0 2 +9 2 3 3 6 2 40 6 20 0 3 +40 0 3 3 6 1 48 6 20 0 3 +2 7 6 5 5 5 59 4 20 0 0 +75 7 6 2 4 4 54 4 20 1 -2 +170 0 3 5 6 1 41 6 20 0 1 +170 1 2 3 6 0 41 6 20 0 3 +640 5 5 3 6 4 63 7 20 0 -1 +2800 1 7 1 6 4 39 3 20 1 -5 +9 3 7 2 5 4 46 3 20 0 -3 +150 7 4 3 6 0 55 3 20 0 1 +0 7 4 1 5 3 42 3 20 1 -2 +0 7 6 3 6 4 58 2 20 1 -3 +100 0 3 2 6 2 42 4 20 0 2 +33 7 4 3 4 2 40 6 20 1 -1 +310 7 5 2 5 1 56 6 20 1 -3 +53 1 4 5 2 2 37 4 20 0 1 +13 2 3 2 6 2 37 6 20 0 2 +290 6 5 1 5 5 49 6 20 1 -4 +310 7 6 1 6 6 63 4 20 1 -5 +0 7 6 2 5 6 30 7 20 1 -3 +54 7 4 2 6 4 62 5 20 1 0 +1600 0 4 3 6 1 30 6 20 0 1 +14 0 6 3 6 6 34 6 20 1 -3 +25 7 6 3 6 5 41 4 20 1 -3 +45 0 4 5 4 6 43 3 20 1 -1 +20 2 5 2 6 4 33 5 20 0 -2 +18 6 4 3 5 5 67 7 20 1 0 +740 7 5 1 6 0 55 5 20 1 -3 +9 6 2 2 6 0 33 5 20 0 4 +5 0 6 1 5 5 61 4 20 1 -4 +7300 7 4 1 6 4 45 3 20 0 -1 +81 7 4 3 7 0 34 3 20 0 2 +190 1 6 2 6 6 35 3 20 1 -4 +51 1 4 4 5 2 50 6 20 0 1 +7300 7 3 4 2 0 38 4 20 0 0 +350 0 6 2 6 5 56 3 20 1 -4 +27 2 4 1 6 5 31 3 20 1 -1 +33 5 6 1 4 5 40 7 20 1 -3 +50 4 3 2 6 0 44 3 20 0 2 +1 7 6 5 2 2 39 4 20 0 3 +11 1 4 3 6 1 45 3 20 0 1 +51 5 3 3 6 0 72 6 20 0 3 +160 7 2 3 5 1 44 7 20 0 2 +16 7 1 3 6 0 61 7 21 0 3 +110 6 6 2 6 6 34 7 21 1 -4 +110 4 5 2 5 5 61 6 21 1 -3 +13 6 3 3 7 1 67 4 21 0 4 +220 7 4 1 4 6 38 6 21 1 -3 +470 7 4 2 6 1 50 6 21 0 0 +22 6 6 1 6 6 62 4 21 1 -5 +9 2 6 3 6 5 36 6 21 1 -3 +22 3 6 3 5 4 50 6 21 1 -2 +190 2 4 2 7 1 30 6 21 0 1 +100 5 6 2 6 6 59 5 21 1 -4 +14 7 3 3 6 0 62 6 21 0 3 +0 7 4 3 6 3 40 4 21 0 1 +180 1 6 1 6 6 30 4 21 1 -5 +3 6 3 2 6 2 47 3 21 0 2 +51 2 5 2 6 1 41 6 21 0 -2 +9 2 6 1 6 6 35 7 21 1 -5 +0 7 5 2 6 6 45 4 21 1 -2 +0 2 4 2 6 4 34 6 21 1 0 +71 2 5 7 2 2 55 3 21 0 1 +290 1 5 3 6 2 37 4 21 0 -1 +45 3 5 2 4 4 61 7 21 1 -2 +0 3 4 5 4 1 62 2 21 0 -1 +26 1 5 2 6 6 54 6 21 1 -2 +87 3 2 3 6 1 33 6 21 0 3 +0 0 2 3 6 1 50 6 21 0 3 +630 0 3 4 7 2 37 3 21 0 3 +50 5 5 3 6 3 44 3 21 1 -1 +35 7 4 3 4 3 78 3 21 0 -1 +180 7 6 2 4 6 56 3 21 0 -2 +32 0 2 3 4 2 29 6 21 0 1 +0 7 3 2 5 4 52 6 21 0 1 +51 1 6 4 5 1 31 3 21 0 -1 +40 0 6 3 6 6 34 7 21 1 -3 +0 2 5 3 6 5 31 7 21 1 -1 +0 7 4 3 5 2 43 6 21 0 0 +0 1 4 4 3 5 31 3 21 1 1 +1 6 6 1 6 6 63 7 21 1 -5 +7 2 2 3 7 4 38 4 21 0 4 +0 2 6 2 6 6 31 5 21 1 -4 +71 2 2 1 7 0 64 3 21 0 4 +75 2 3 2 5 5 55 7 21 0 1 +55 1 2 2 6 0 41 3 21 0 4 +290 4 3 4 5 5 38 4 21 1 1 +88 4 6 3 6 5 28 6 21 1 -3 +0 7 4 3 5 5 42 5 21 1 0 +16 7 2 4 3 1 43 4 21 0 -1 +75 1 5 1 6 5 37 4 21 1 -3 +220 1 4 2 6 3 47 5 21 0 0 +3 5 5 1 6 5 52 7 21 1 -3 +130 0 5 2 6 5 32 4 21 1 -2 +0 5 4 4 3 2 29 3 21 0 1 +110 2 6 2 5 4 56 3 21 1 -3 +12 7 4 3 5 5 63 7 21 1 0 +180 3 3 3 6 1 35 5 21 0 3 +93 7 4 3 5 3 36 4 21 1 0 +170 7 4 2 7 0 75 5 21 0 1 +31 5 3 3 6 1 48 6 21 0 3 +62 4 7 2 6 6 36 5 21 1 -4 +30 4 4 3 6 2 34 6 21 0 1 +66 7 4 3 7 1 35 5 21 0 2 +3 3 5 2 5 6 50 4 21 1 -3 +18 3 5 2 5 6 39 7 21 1 -3 +350 5 5 4 6 5 70 7 21 1 0 +71 7 4 2 5 6 76 3 21 1 -1 +3500 5 5 2 5 5 35 6 21 1 -3 +0 0 3 4 3 3 53 7 21 1 -1 +360 6 5 2 6 4 46 6 21 1 -2 +81 2 5 2 5 4 34 4 21 1 -3 +350 5 4 4 6 5 69 4 21 0 2 +190 1 5 2 5 1 32 3 21 0 -3 +0 7 5 1 6 6 50 2 21 1 -3 +290 1 5 3 6 6 35 6 21 1 -1 +18 0 6 1 6 6 67 5 21 1 -5 +11 3 5 5 6 5 47 3 21 0 1 +2 2 6 3 5 4 50 6 21 1 -2 +570 0 6 2 6 4 32 3 21 1 -4 +310 3 5 4 6 2 58 5 21 0 0 +1 7 3 2 7 0 49 7 21 0 3 +0 2 6 3 6 1 43 4 21 1 -3 +35 1 5 2 6 5 24 6 21 1 -2 +22 7 5 3 4 2 58 7 21 0 -1 +2 1 2 2 5 0 43 4 21 0 3 +0 7 4 3 6 5 59 3 21 1 1 +0 3 6 1 6 6 40 5 21 1 -5 +310 0 5 2 7 0 35 4 21 0 -1 +470 5 2 3 5 1 48 4 21 0 2 +0 4 6 1 6 6 40 3 21 1 -5 +270 3 3 2 7 0 48 3 21 0 3 +110 0 2 4 6 0 47 7 21 0 2 +50 3 6 4 1 1 23 3 21 0 3 +0 0 6 1 6 6 38 3 21 1 -5 +3 7 6 2 6 6 81 7 21 1 -4 +31 5 3 3 6 1 48 6 21 0 3 +22 7 5 6 2 4 52 3 21 0 2 +83 2 4 1 6 3 24 6 21 1 -1 +9 0 4 2 6 1 21 5 21 0 0 +5 7 5 2 6 5 70 6 21 1 -2 +0 7 7 1 7 6 24 6 21 1 -6 +0 7 4 3 5 1 57 7 21 0 0 +0 6 3 5 6 4 37 6 21 0 1 +27 1 3 5 3 5 25 5 21 0 -2 +110 1 6 5 1 1 33 3 21 0 4 +0 7 4 6 3 0 45 3 22 0 -1 +0 3 5 2 7 5 42 6 22 0 -1 +350 3 3 3 6 2 47 6 22 0 3 +0 7 6 1 6 6 51 7 22 1 -5 +5 7 5 4 6 5 85 2 22 0 0 +15 4 3 3 6 2 32 7 22 0 3 +35 7 3 3 6 2 31 7 22 0 3 +0 2 4 3 6 2 23 6 22 0 1 +75 3 3 3 6 0 42 6 22 0 3 +0 5 6 2 5 5 55 6 22 1 -3 +16 7 6 2 6 6 45 6 22 1 -4 +0 1 6 2 5 6 35 7 22 1 -3 +0 0 2 4 6 0 45 6 22 0 2 +0 0 3 3 5 2 42 3 22 0 2 +4 1 6 2 6 5 37 4 22 1 -4 +62 0 4 4 4 5 38 3 22 1 0 +0 3 2 2 6 1 47 7 22 0 4 +4 7 4 2 6 2 32 6 22 0 0 +56 2 5 2 6 5 35 6 22 1 -2 +2 6 4 2 6 5 38 4 22 1 0 +0 0 4 4 4 3 40 3 22 0 0 +75 7 6 2 5 6 62 6 22 1 -3 +10 2 2 2 6 1 28 7 22 0 4 +0 6 6 2 5 6 59 5 22 1 -3 +0 2 1 2 6 0 25 6 22 0 4 +220 2 4 2 6 6 31 6 22 1 0 +0 1 7 2 6 6 45 4 22 1 -4 +75 0 5 2 7 5 42 6 22 0 -1 +0 3 2 2 5 1 56 7 22 0 3 +140 5 3 3 6 1 47 7 22 0 3 +290 1 6 2 5 5 38 6 22 1 -3 +350 7 4 3 7 2 47 6 22 0 2 +55 1 5 2 6 6 49 4 22 1 -2 +31 3 3 3 6 2 29 7 22 0 3 +17 7 2 2 6 0 57 6 22 0 4 +51 4 6 3 5 6 68 3 22 1 -2 +140 7 2 2 4 0 76 6 22 0 2 +9 4 6 2 6 5 66 6 22 1 -4 +0 7 5 1 6 4 59 4 22 1 -3 +640 7 5 3 6 4 37 7 22 0 -1 +32 2 5 2 6 6 38 6 22 1 -2 +5 7 6 2 6 5 47 7 22 1 -4 +8 1 5 2 4 5 36 7 22 1 -2 +18 0 5 4 6 0 45 7 22 0 0 +0 6 5 2 6 5 39 7 22 1 -2 +0 1 3 2 6 1 34 6 22 0 2 +0 3 6 6 4 0 49 4 22 0 2 +31 2 6 2 6 5 36 6 22 1 -4 +350 7 6 1 6 6 81 5 22 1 -5 +20 1 5 2 6 4 29 4 22 1 -2 +70 3 5 3 4 0 45 6 22 0 -1 +31 3 5 2 6 5 21 4 22 1 -2 +3 7 2 4 3 6 33 6 22 1 -1 +9 7 4 4 2 2 44 3 23 0 2 +59 1 2 2 6 4 52 7 23 0 4 +27 2 3 5 7 1 38 4 23 0 2 +51 4 2 3 6 2 44 5 23 0 3 +9 7 6 2 6 6 87 7 23 1 -4 +0 2 7 2 6 5 22 3 23 1 -4 +88 0 3 3 5 2 32 6 23 1 2 +67 0 4 5 6 4 69 3 23 0 1 +29 2 6 2 5 6 49 6 23 1 -3 +5 0 6 2 6 6 53 3 23 1 -4 +0 0 6 1 6 5 44 6 23 1 -5 +900 1 6 2 7 5 34 6 23 1 -3 +18 1 6 1 5 5 55 7 23 1 -4 +190 2 3 3 6 0 35 6 23 0 3 +2 7 4 5 5 3 55 3 23 0 0 +5 3 6 3 5 5 27 6 23 1 -2 +56 3 4 4 5 1 26 6 23 0 1 +75 7 4 2 6 5 54 6 23 0 0 +56 0 5 2 6 5 42 4 23 1 -2 +0 5 6 1 6 6 57 7 23 1 -5 +0 0 7 1 4 6 54 6 23 1 -3 +75 6 6 3 6 6 55 6 23 1 -3 +1600 7 5 3 6 6 50 7 23 1 -1 +15 0 5 5 6 1 57 7 23 0 1 +19 3 5 3 7 3 46 4 23 0 0 +16 7 6 2 6 6 53 6 23 1 -4 +42 2 3 3 5 0 32 7 23 0 2 +18 5 5 2 5 3 53 5 23 1 -3 +0 3 3 3 6 1 39 6 23 0 3 +310 1 5 2 5 4 47 6 23 1 -3 +1600 7 5 2 4 2 57 4 23 0 -2 +23 5 6 3 6 6 49 6 23 1 -3 +20 1 5 4 6 5 31 5 23 0 0 +51 5 5 3 5 5 43 6 23 1 -2 +0 2 5 2 5 4 44 6 23 1 -3 +0 4 4 3 6 0 39 6 23 0 1 +0 2 6 1 6 5 49 4 23 1 -5 +18 7 5 4 6 4 72 6 23 1 0 +7300 7 5 2 6 5 50 6 23 1 -2 +110 1 5 2 6 6 28 4 23 1 -2 +0 0 5 2 7 3 48 7 23 1 -1 +3500 1 3 4 7 1 32 6 23 0 3 +720 7 5 5 5 1 63 4 23 0 0 +9 4 4 5 6 5 36 4 23 1 1 +47 7 6 3 6 6 36 6 23 1 -3 +350 7 3 2 7 2 53 3 23 0 3 +0 5 2 2 6 2 44 7 23 0 4 +0 0 4 2 6 6 41 7 24 1 0 +83 0 2 3 6 1 56 7 24 0 3 +1 4 4 4 6 2 63 7 24 0 2 +190 7 2 4 6 0 52 6 24 0 2 +0 7 3 3 7 2 43 7 24 0 4 +12 7 4 3 6 2 40 3 24 0 1 +9 5 5 1 7 4 69 4 24 1 -2 +23 7 2 2 6 0 49 7 24 0 4 +9 1 3 3 6 2 65 7 24 0 3 +18 5 6 1 6 5 53 7 24 1 -5 +0 5 5 3 5 6 50 4 24 1 -2 +12 3 2 4 6 0 27 5 24 0 2 +0 6 5 3 5 5 44 6 24 1 -2 +170 2 2 3 5 0 54 7 24 0 2 +0 7 4 2 6 4 33 5 24 1 0 +9 0 4 4 6 3 48 7 24 0 2 +23 3 5 2 6 5 54 5 24 1 -2 +0 0 6 2 5 6 56 3 24 1 -3 +9 1 2 4 7 2 34 7 24 0 3 +290 7 6 4 7 6 41 6 24 0 -1 +1 0 5 1 5 6 40 6 24 1 -4 +350 1 7 2 6 6 55 6 24 1 -4 +20 0 4 3 5 5 38 6 24 1 0 +0 3 6 2 6 6 40 6 24 1 -4 +23 1 6 1 6 6 46 4 24 1 -5 +150 4 3 3 4 0 26 6 24 0 1 +31 0 5 2 7 3 49 6 24 0 -1 +0 7 4 1 5 6 51 5 24 1 -2 +9 2 5 2 6 4 46 6 24 0 -2 +47 0 3 4 6 2 40 7 24 0 2 +900 0 3 4 7 2 30 5 24 0 3 +83 3 2 3 6 2 45 5 24 0 3 +18 7 5 4 6 4 52 7 24 1 0 +0 0 6 1 5 6 36 6 24 1 -4 +20 0 4 3 5 3 49 6 24 0 0 +24 7 3 4 5 1 38 7 24 0 1 +18 0 2 4 6 1 51 7 24 0 2 +9 3 3 2 5 1 47 6 24 0 1 +0 1 6 1 5 6 52 7 24 1 -4 +9 0 6 2 6 6 33 6 24 1 -4 +0 4 4 2 6 6 50 4 24 1 0 +18 7 6 2 5 4 48 7 24 1 -3 +19 3 2 2 6 0 36 6 24 0 4 +31 3 2 3 6 1 35 7 24 0 3 +3500 7 7 3 5 4 34 7 24 0 -2 +0 7 2 4 5 2 53 6 24 0 1 +33 0 4 3 6 2 33 7 24 0 1 +0 1 6 3 6 6 52 6 24 1 -3 +18 3 4 3 6 4 44 7 24 0 1 +0 0 3 4 4 0 48 6 24 0 0 +31 3 5 2 6 5 20 4 24 1 -2 +0 5 3 2 4 6 45 6 24 1 0 +59 7 4 2 6 2 70 3 24 0 0 +0 0 3 3 4 2 39 3 24 0 1 +7300 7 3 3 5 1 40 7 24 1 2 +75 4 5 2 7 5 62 6 24 1 -1 +0 7 5 2 6 4 46 6 24 1 -2 +27 7 4 4 7 2 46 3 24 0 3 +1600 7 4 2 5 6 56 7 24 1 -1 +0 7 6 3 6 6 55 7 24 1 -3 +0 7 6 2 6 6 41 4 24 1 -4 +7300 1 2 3 6 0 43 7 24 0 3 +16 7 7 1 7 6 34 3 24 1 -6 +0 7 7 1 6 4 73 6 24 1 -5 +0 7 5 2 6 6 50 6 24 1 -2 +0 3 6 2 7 5 43 6 24 1 -3 +0 6 6 2 5 6 46 7 24 1 -3 +18 7 4 2 6 3 61 7 24 1 0 diff --git a/statsmodels/datasets/cancer/__init__.py b/statsmodels/datasets/cancer/__init__.py new file mode 100644 index 0000000..df22d8b --- /dev/null +++ b/statsmodels/datasets/cancer/__init__.py @@ -0,0 +1 @@ +from .data import * diff --git a/statsmodels/datasets/cancer/cancer.csv b/statsmodels/datasets/cancer/cancer.csv new file mode 100755 index 0000000..811c6d4 --- /dev/null +++ b/statsmodels/datasets/cancer/cancer.csv @@ -0,0 +1,302 @@ +cancer,population +1,445 +0,559 +3,677 +4,681 +3,746 +4,869 +1,950 +5,976 +5,1096 +5,1098 +5,1114 +7,1125 +5,1236 +6,1285 +3,1291 +3,1318 +2,1323 +8,1327 +9,1438 +7,1479 +4,1536 +6,1598 +6,1635 +11,1667 +4,1696 +7,1792 +7,1795 +4,1808 +6,1838 +16,1838 +3,1847 +8,1933 +8,1959 +4,1990 +9,2003 +10,2070 +7,2091 +8,2099 +5,2104 +11,2147 +4,2154 +12,2163 +11,2172 +9,2174 +13,2183 +17,2193 +11,2210 +10,2212 +4,2236 +4,2245 +8,2261 +6,2317 +8,2333 +16,2393 +10,2404 +4,2419 +11,2462 +10,2476 +11,2477 +9,2483 +11,2511 +14,2591 +6,2624 +8,2690 +12,2731 +15,2735 +9,2736 +13,2747 +18,2782 +15,2783 +12,2793 +11,2891 +12,2894 +12,2906 +14,2929 +12,2935 +3,2962 +5,3054 +7,3112 +9,3118 +11,3185 +14,3217 +18,3236 +11,3290 +11,3314 +4,3316 +13,3401 +10,3409 +10,3426 +9,3470 +11,3488 +12,3511 +4,3549 +16,3571 +20,3578 +5,3620 +15,3654 +15,3680 +12,3683 +7,3688 +7,3706 +12,3733 +21,3800 +16,3802 +13,3832 +16,3863 +8,3891 +12,4008 +20,4093 +21,4149 +15,4162 +13,4223 +13,4232 +10,4312 +22,4329 +14,4331 +16,4399 +13,4470 +24,4618 +27,4669 +16,4681 +28,4737 +11,4784 +12,4829 +14,4857 +26,4918 +27,4967 +17,5041 +20,5051 +12,5077 +20,5107 +12,5108 +24,5124 +27,5156 +25,5167 +19,5211 +21,5246 +8,5743 +15,5773 +22,5932 +21,5983 +37,5989 +23,5998 +18,6021 +25,6035 +26,6074 +17,6134 +27,6175 +13,6220 +13,6296 +15,6445 +33,6624 +24,6841 +23,6868 +18,6903 +24,6904 +21,6916 +32,6934 +23,6978 +32,7014 +16,7025 +29,7031 +33,7115 +20,7256 +19,7288 +27,7304 +10,7367 +34,7376 +36,7407 +26,7408 +33,7503 +24,7599 +37,7743 +34,7760 +37,7910 +20,7917 +28,7957 +30,7984 +27,8004 +45,8208 +39,8249 +29,8289 +22,8313 +27,8377 +19,8396 +30,8468 +34,8493 +35,8531 +21,8773 +18,8866 +41,9091 +34,9215 +51,9225 +30,9243 +32,9435 +38,9445 +18,9468 +42,9563 +60,9605 +19,9841 +29,9994 +17,10033 +29,10049 +41,10144 +31,10303 +35,10416 +27,10461 +37,10670 +18,10844 +41,10875 +39,10890 +41,11105 +61,11622 +46,12038 +47,12173 +36,12181 +43,12608 +45,12775 +46,12915 +45,13021 +49,13142 +55,13206 +64,13407 +64,13647 +66,13870 +57,13989 +53,14089 +51,14197 +36,14620 +28,14816 +59,14952 +39,15039 +73,15049 +41,15179 +48,15204 +37,16161 +72,16239 +72,16427 +48,16462 +62,16793 +51,16925 +71,17027 +60,17201 +70,17526 +59,17666 +91,17692 +52,17742 +65,18482 +77,18731 +84,18835 +51,19274 +66,19818 +53,19906 +58,20065 +75,20140 +88,20268 +83,20539 +48,20639 +69,20969 +41,21353 +73,21757 +79,22811 +63,23245 +90,23258 +92,24296 +60,24351 +63,24692 +63,24896 +75,25275 +70,25405 +90,25715 +111,26245 +103,26408 +117,26691 +118,28024 +40,28270 +83,28477 +90,29254 +97,29422 +92,30125 +104,30538 +96,34109 +142,35112 +105,35876 +145,36307 +160,39023 +127,40756 +169,42997 +104,47672 +179,49126 +152,53464 +163,56529 +167,59634 +302,60161 +246,62398 +236,62652 +250,62931 +267,63476 +244,66676 +248,74005 +360,88456 diff --git a/statsmodels/datasets/cancer/data.py b/statsmodels/datasets/cancer/data.py new file mode 100755 index 0000000..e89c859 --- /dev/null +++ b/statsmodels/datasets/cancer/data.py @@ -0,0 +1,59 @@ +"""Breast Cancer Data""" + +__docformat__ = 'restructuredtext' + +COPYRIGHT = """???""" +TITLE = """Breast Cancer Data""" +SOURCE = """ +This is the breast cancer data used in Owen's empirical likelihood. It is taken from +Rice, J.A. Mathematical Statistics and Data Analysis. +http://www.cengage.com/statistics/discipline_content/dataLibrary.html +""" + +DESCRSHORT = """Breast Cancer and county population""" + +DESCRLONG = """The number of breast cancer observances in various counties""" + +#suggested notes +NOTE = """:: + + Number of observations: 301 + Number of variables: 2 + Variable name definitions: + + cancer - The number of breast cancer observances + population - The population of the county + +""" + +import numpy as np +from statsmodels.datasets import utils as du +from os.path import dirname, abspath + +def load(): + """ + Load the data and return a Dataset class instance. + + Returns + ------- + Dataset instance: + See DATASET_PROPOSAL.txt for more information. + """ + data = _get_data() + ##### SET THE INDICES ##### + #NOTE: None for exog_idx is the complement of endog_idx + return du.process_recarray(data, endog_idx=0, exog_idx=None, dtype=float) + +def load_pandas(): + data = _get_data() + ##### SET THE INDICES ##### + #NOTE: None for exog_idx is the complement of endog_idx + return du.process_recarray_pandas(data, endog_idx=0, exog_idx=None, + dtype=float) + +def _get_data(): + filepath = dirname(abspath(__file__)) + ##### EDIT THE FOLLOWING TO POINT TO DatasetName.csv ##### + with open(filepath + '/cancer.csv', 'rb') as f: + data = np.recfromtxt(f, delimiter=",", names=True, dtype=float) + return data diff --git a/statsmodels/datasets/ccard/R_wls.s b/statsmodels/datasets/ccard/R_wls.s new file mode 100644 index 0000000..55a71bb --- /dev/null +++ b/statsmodels/datasets/ccard/R_wls.s @@ -0,0 +1,13 @@ +d <- read.csv('./ccard.csv') +attach(d) + + +m1 <- lm(AVGEXP ~ AGE + INCOME + INCOMESQ + OWNRENT, weights=1/INCOMESQ) +results <- summary(m1) + +m2 <- lm(AVGEXP ~ AGE + INCOME + INCOMESQ + OWNRENT - 1, weights=1/INCOMESQ) +results2 <- summary(m2) + +print('m1 has a constant, which theoretically should be INCOME') +print('m2 include -1 for no constant') +print('See ccard/R_wls.s') diff --git a/statsmodels/datasets/ccard/__init__.py b/statsmodels/datasets/ccard/__init__.py new file mode 100644 index 0000000..df22d8b --- /dev/null +++ b/statsmodels/datasets/ccard/__init__.py @@ -0,0 +1 @@ +from .data import * diff --git a/statsmodels/datasets/ccard/ccard.csv b/statsmodels/datasets/ccard/ccard.csv new file mode 100644 index 0000000..7fd1e51 --- /dev/null +++ b/statsmodels/datasets/ccard/ccard.csv @@ -0,0 +1,73 @@ +"AVGEXP","AGE","INCOME","INCOMESQ","OWNRENT" +124.98,38,4.52,20.4304,1 +9.85,33,2.42,5.8564,0 +15,34,4.5,20.25,1 +137.87,31,2.54,6.4516,0 +546.5,32,9.79,95.8441,1 +92,23,2.5,6.25,0 +40.83,28,3.96,15.6816,0 +150.79,29,2.37,5.6169,1 +777.82,37,3.8,14.44,1 +52.58,28,3.2,10.24,0 +256.66,31,3.95,15.6025,1 +78.87,29,2.45,6.0025,1 +42.62,35,1.91,3.6481,1 +335.43,41,3.2,10.24,1 +248.72,40,4,16,1 +548.03,40,10,100,1 +43.34,35,2.35,5.5225,1 +218.52,34,2,4,1 +170.64,36,4,16,0 +37.58,43,5.14,26.4196,1 +502.2,30,4.51,20.3401,0 +73.18,22,1.5,2.25,0 +1532.77,40,5.5,30.25,1 +42.69,22,2.03,4.1209,0 +417.83,29,3.2,10.24,0 +552.72,21,2.47,6.1009,1 +222.54,24,3,9,0 +541.3,43,3.54,12.5316,1 +568.77,37,5.7,32.49,1 +344.47,27,3.5,12.25,0 +405.35,28,4.6,21.16,1 +310.94,26,3,9,1 +53.65,23,2.59,6.7081,0 +63.92,30,1.51,2.2801,0 +165.85,30,1.85,3.4225,0 +9.58,38,2.6,6.76,0 +319.49,36,2,4,0 +83.08,26,2.35,5.5225,0 +644.83,28,7,49,1 +93.2,24,2,4,0 +105.04,21,1.7,2.89,0 +34.13,24,2.8,7.84,0 +41.19,26,2.4,5.76,0 +169.89,33,3,9,0 +1898.03,34,4.8,23.04,0 +810.39,33,3.18,10.1124,0 +32.78,21,1.5,2.25,0 +95.8,25,3,9,0 +27.78,27,2.28,5.1984,0 +215.07,26,2.8,7.84,0 +79.51,22,2.7,7.29,0 +306.03,41,6,36,0 +104.54,42,3.9,15.21,0 +642.47,25,3.07,9.4249,0 +308.05,31,2.46,6.0516,1 +186.35,27,2,4,0 +56.15,33,3.25,10.5625,0 +129.37,37,2.72,7.3984,0 +93.11,27,2.2,4.84,0 +292.66,24,3.75,14.0625,0 +98.46,25,2.88,8.2944,0 +258.55,36,3.05,9.3025,0 +101.68,33,2.55,6.5025,0 +65.25,55,2.64,6.9696,1 +108.61,20,1.65,2.7225,0 +49.56,29,2.4,5.76,0 +235.57,41,7.24,52.4176,1 +68.38,43,2.4,5.76,0 +474.15,33,6,36,1 +234.05,25,3.6,12.96,0 +451.2,26,5,25,1 +251.52,46,5.5,30.25,1 diff --git a/statsmodels/datasets/ccard/data.py b/statsmodels/datasets/ccard/data.py new file mode 100644 index 0000000..58771db --- /dev/null +++ b/statsmodels/datasets/ccard/data.py @@ -0,0 +1,59 @@ +"""Bill Greene's credit scoring data.""" + +__docformat__ = 'restructuredtext' + +COPYRIGHT = """Used with express permission of the original author, who +retains all rights.""" +TITLE = __doc__ +SOURCE = """ +William Greene's `Econometric Analysis` + +More information can be found at the web site of the text: +http://pages.stern.nyu.edu/~wgreene/Text/econometricanalysis.htm +""" + +DESCRSHORT = """William Greene's credit scoring data""" + +DESCRLONG = """More information on this data can be found on the +homepage for Greene's `Econometric Analysis`. See source. +""" + +NOTE = """:: + + Number of observations - 72 + Number of variables - 5 + Variable name definitions - See Source for more information on the + variables. +""" + +from numpy import recfromtxt +from statsmodels.datasets import utils as du +from os.path import dirname, abspath + +def load(): + """Load the credit card data and returns a Dataset class. + + Returns + ------- + Dataset instance: + See DATASET_PROPOSAL.txt for more information. + """ + data = _get_data() + return du.process_recarray(data, endog_idx=0, dtype=float) + +def load_pandas(): + """Load the credit card data and returns a Dataset class. + + Returns + ------- + Dataset instance: + See DATASET_PROPOSAL.txt for more information. + """ + data = _get_data() + return du.process_recarray_pandas(data, endog_idx=0) + +def _get_data(): + filepath = dirname(abspath(__file__)) + with open(filepath + "/ccard.csv", 'rb') as f: + data = recfromtxt(f, delimiter=",", names=True, dtype=float) + return data diff --git a/statsmodels/datasets/ccard/src/ccard.csv b/statsmodels/datasets/ccard/src/ccard.csv new file mode 100644 index 0000000..7f9afd3 --- /dev/null +++ b/statsmodels/datasets/ccard/src/ccard.csv @@ -0,0 +1,101 @@ +"MDR","Acc","Age","Income","Avgexp","Ownrent","Selfempl" +0,1,38,4.52,124.98,1,0 +0,1,33,2.42,9.85,0,0 +0,1,34,4.5,15,1,0 +0,1,31,2.54,137.87,0,0 +0,1,32,9.79,546.5,1,0 +0,1,23,2.5,92,0,0 +0,1,28,3.96,40.83,0,0 +0,1,29,2.37,150.79,1,0 +0,1,37,3.8,777.82,1,0 +0,1,28,3.2,52.58,0,0 +0,1,31,3.95,256.66,1,0 +0,0,42,1.98,0,1,0 +0,0,30,1.73,0,1,0 +0,1,29,2.45,78.87,1,0 +0,1,35,1.91,42.62,1,0 +0,1,41,3.2,335.43,1,0 +0,1,40,4,248.72,1,0 +7,0,30,3,0,1,0 +0,1,40,10,548.03,1,1 +3,0,46,3.4,0,0,0 +0,1,35,2.35,43.34,1,0 +1,0,25,1.88,0,0,0 +0,1,34,2,218.52,1,0 +1,1,36,4,170.64,0,0 +0,1,43,5.14,37.58,1,0 +0,1,30,4.51,502.2,0,0 +0,0,22,3.84,0,0,1 +0,1,22,1.5,73.18,0,0 +0,0,34,2.5,0,1,0 +0,1,40,5.5,1532.77,1,0 +0,1,22,2.03,42.69,0,0 +1,1,29,3.2,417.83,0,0 +1,0,25,3.15,0,1,0 +0,1,21,2.47,552.72,1,0 +0,1,24,3,222.54,0,0 +0,1,43,3.54,541.3,1,0 +0,0,43,2.28,0,0,0 +0,1,37,5.7,568.77,1,0 +0,1,27,3.5,344.47,0,0 +0,1,28,4.6,405.35,1,0 +0,1,26,3,310.94,1,0 +0,1,23,2.59,53.65,0,0 +0,1,30,1.51,63.92,0,0 +0,1,30,1.85,165.85,0,0 +0,1,38,2.6,9.58,0,0 +0,0,28,1.8,0,0,1 +0,1,36,2,319.49,0,0 +0,0,38,3.26,0,0,0 +0,1,26,2.35,83.08,0,0 +0,1,28,7,644.83,1,0 +0,0,50,3.6,0,0,0 +0,1,24,2,93.2,0,0 +0,1,21,1.7,105.04,0,0 +0,1,24,2.8,34.13,0,0 +0,1,26,2.4,41.19,0,0 +1,1,33,3,169.89,0,0 +0,1,34,4.8,1898.03,0,0 +0,1,33,3.18,810.39,0,0 +0,0,45,1.8,0,0,0 +0,1,21,1.5,32.78,0,0 +2,1,25,3,95.8,0,0 +0,1,27,2.28,27.78,0,0 +0,1,26,2.8,215.07,0,0 +0,1,22,2.7,79.51,0,0 +3,0,27,4.9,0,1,0 +0,0,26,2.5,0,0,1 +0,1,41,6,306.03,0,1 +0,1,42,3.9,104.54,0,0 +0,0,22,5.1,0,0,0 +0,1,25,3.07,642.47,0,0 +0,1,31,2.46,308.05,1,0 +0,1,27,2,186.35,0,0 +0,1,33,3.25,56.15,0,0 +0,1,37,2.72,129.37,0,0 +0,1,27,2.2,93.11,0,0 +1,0,24,4.1,0,0,0 +0,1,24,3.75,292.66,0,0 +0,1,25,2.88,98.46,0,0 +0,1,36,3.05,258.55,0,0 +0,1,33,2.55,101.68,0,0 +0,0,33,4,0,0,0 +1,1,55,2.64,65.25,1,0 +0,1,20,1.65,108.61,0,0 +0,1,29,2.4,49.56,0,0 +3,0,40,3.71,0,0,0 +0,1,41,7.24,235.57,1,0 +0,0,41,4.39,0,1,0 +0,0,35,3.3,0,1,0 +0,0,24,2.3,0,0,0 +1,0,54,4.18,0,0,0 +2,0,34,2.49,0,0,0 +0,0,45,2.81,0,1,0 +0,1,43,2.4,68.38,0,0 +4,0,35,1.5,0,0,0 +2,0,36,8.4,0,0,0 +0,1,22,1.56,0,0,0 +1,1,33,6,474.15,1,0 +1,1,25,3.6,234.05,0,0 +0,1,26,5,451.2,1,0 +0,1,46,5.5,251.52,1,0 diff --git a/statsmodels/datasets/ccard/src/names.txt b/statsmodels/datasets/ccard/src/names.txt new file mode 100644 index 0000000..8408cca --- /dev/null +++ b/statsmodels/datasets/ccard/src/names.txt @@ -0,0 +1,14 @@ +MDR = Number of derogator reports + +Acc = Credit card application accpeted (1=yes) + +Age = Age in years + 12ths of a year + +Income = Income divided by 10,000 + +Avgexp = Avg. monthly credit card expenditure + +Ownrent = Indiviual owns(1) or rents(0) home + +Selfempl = (1=yes, 0=no) + diff --git a/statsmodels/datasets/china_smoking/__init__.py b/statsmodels/datasets/china_smoking/__init__.py new file mode 100644 index 0000000..df22d8b --- /dev/null +++ b/statsmodels/datasets/china_smoking/__init__.py @@ -0,0 +1 @@ +from .data import * diff --git a/statsmodels/datasets/china_smoking/china_smoking.csv b/statsmodels/datasets/china_smoking/china_smoking.csv new file mode 100644 index 0000000..a01f9ed --- /dev/null +++ b/statsmodels/datasets/china_smoking/china_smoking.csv @@ -0,0 +1,9 @@ +Location,smoking_yes_cancer_yes,smoking_yes_cancer_no,smoking_no_cancer_yes,smoking_no_cancer_no +Beijing,126,100,35,61 +Shanghai,908,688,497,807 +Shenyang,913,747,336,598 +Nanjng,235,172,58,121 +Harbin,402,308,121,215 +Zhengzhou,182,156,72,98 +Taiyuan,60,99,11,43 +Nanchang,104,89,21,36 diff --git a/statsmodels/datasets/china_smoking/data.py b/statsmodels/datasets/china_smoking/data.py new file mode 100644 index 0000000..d3324ec --- /dev/null +++ b/statsmodels/datasets/china_smoking/data.py @@ -0,0 +1,59 @@ +"""Smoking and lung cancer in eight cities in China.""" + +__docformat__ = 'restructuredtext' + +COPYRIGHT = """Intern. J. Epidemiol. (1992)""" +TITLE = __doc__ +SOURCE = """ +Transcribed from Z. Liu, Smoking and Lung Cancer Incidence in China, +Intern. J. Epidemiol., 21:197-201, (1992). +""" + +DESCRSHORT = """Co-occurrence of lung cancer and smoking in 8 Chinese cities.""" + +DESCRLONG = """This is a series of 8 2x2 contingency tables showing the co-occurrence +of lung cancer and smoking in 8 Chinese cities. +""" + +NOTE = """:: + + Number of Observations - 8 + Number of Variables - 3 + Variable name definitions:: + + city_name - name of the city + smoking - yes or no, according to a person's smoking behavior + lung_cancer - yes or no, according to a person's lung cancer status +""" + +import pandas as pd +from statsmodels.datasets import utils +import os + + +def load_pandas(): + """ + Load the China smoking/lung cancer data and return a Dataset class. + + Returns + ------- + Dataset instance: + See DATASET_PROPOSAL.txt for more information. + """ + + filepath = os.path.dirname(os.path.abspath(__file__)) + data = pd.read_csv(os.path.join(filepath + '/china_smoking.csv'), index_col="Location") + return utils.Dataset(data=data, title="Smoking and lung cancer in Chinese regions") + + +def load(): + """ + Load the China smoking/lung cancer data and return a Dataset class. + + Returns + ------- + Dataset instance: + See DATASET_PROPOSAL.txt for more information. + """ + recarray = load_pandas().data.to_records() + return utils.Dataset(data=recarray, title="Smoking and lung cancer in Chinese regions") diff --git a/statsmodels/datasets/co2/__init__.py b/statsmodels/datasets/co2/__init__.py new file mode 100644 index 0000000..df22d8b --- /dev/null +++ b/statsmodels/datasets/co2/__init__.py @@ -0,0 +1 @@ +from .data import * diff --git a/statsmodels/datasets/co2/co2.csv b/statsmodels/datasets/co2/co2.csv new file mode 100644 index 0000000..506036d --- /dev/null +++ b/statsmodels/datasets/co2/co2.csv @@ -0,0 +1,2285 @@ +date,co2 +19580329,316.1 +19580405,317.3 +19580412,317.6 +19580419,317.5 +19580426,316.4 +19580503,316.9 +19580510, +19580517,317.5 +19580524,317.9 +19580531, +19580607, +19580614, +19580621, +19580628, +19580705,315.8 +19580712,315.8 +19580719,315.4 +19580726,315.5 +19580802,315.6 +19580809,315.1 +19580816,315.0 +19580823, +19580830,314.1 +19580906,313.5 +19580913, +19580920, +19580927, +19581004, +19581011, +19581018, +19581025, +19581101, +19581108,313.0 +19581115,313.2 +19581122,313.5 +19581129,314.0 +19581206,314.5 +19581213,314.4 +19581220,314.7 +19581227,315.2 +19590103,315.2 +19590110,315.5 +19590117,315.6 +19590124,315.8 +19590131,315.4 +19590207, +19590214,316.9 +19590221,316.6 +19590228,316.6 +19590307,316.8 +19590314, +19590321,316.7 +19590328,316.7 +19590404,317.7 +19590411,317.1 +19590418,317.6 +19590425,318.3 +19590502,318.2 +19590509,318.7 +19590516,318.0 +19590523,318.4 +19590530, +19590606,318.5 +19590613,318.1 +19590620,317.8 +19590627,317.7 +19590704,316.8 +19590711,316.8 +19590718,316.4 +19590725,316.1 +19590801,315.6 +19590808,314.9 +19590815, +19590822,315.0 +19590829,314.1 +19590905,314.4 +19590912,313.9 +19590919,313.5 +19590926,313.5 +19591003,313.0 +19591010,313.1 +19591017,313.4 +19591024,313.4 +19591031,314.1 +19591107,314.4 +19591114,314.8 +19591121,315.2 +19591128,315.1 +19591205,315.0 +19591212,315.6 +19591219,315.8 +19591226,315.7 +19600102,315.7 +19600109,316.4 +19600116,316.7 +19600123,316.5 +19600130,316.6 +19600206,316.6 +19600213,316.9 +19600220,317.4 +19600227,317.0 +19600305,316.9 +19600312,317.7 +19600319,318.0 +19600326,317.7 +19600402,318.6 +19600409,319.3 +19600416,319.0 +19600423,319.0 +19600430,319.7 +19600507,319.9 +19600514,319.8 +19600521,320.0 +19600528,320.0 +19600604,319.4 +19600611,320.0 +19600618,319.4 +19600625,319.0 +19600702,318.1 +19600709,318.6 +19600716,318.4 +19600723,317.9 +19600730,317.3 +19600806,316.6 +19600813,316.7 +19600820,315.1 +19600827,314.7 +19600903,314.7 +19600910,314.5 +19600917,314.2 +19600924,313.3 +19601001,313.6 +19601008,313.3 +19601015,313.9 +19601022,314.2 +19601029,314.2 +19601105,314.5 +19601112,315.1 +19601119,315.1 +19601126,315.4 +19601203,315.8 +19601210,316.0 +19601217,316.2 +19601224,316.4 +19601231,316.6 +19610107,316.7 +19610114,317.0 +19610121,317.0 +19610128,317.0 +19610204,317.0 +19610211,317.7 +19610218,317.9 +19610225,318.0 +19610304,318.0 +19610311,318.5 +19610318,318.9 +19610325,318.7 +19610401,319.4 +19610408,319.5 +19610415,318.9 +19610422,319.7 +19610429,319.6 +19610506,320.6 +19610513,320.4 +19610520,320.6 +19610527,320.3 +19610603,320.0 +19610610,320.0 +19610617,319.6 +19610624,319.4 +19610701,319.2 +19610708,319.0 +19610715,318.4 +19610722,317.1 +19610729,317.9 +19610805,317.9 +19610812,317.3 +19610819,316.7 +19610826,315.2 +19610902,315.2 +19610909,314.9 +19610916,314.5 +19610923,315.0 +19610930,315.6 +19611007,314.9 +19611014,315.4 +19611021,315.4 +19611028,315.7 +19611104,315.8 +19611111,315.7 +19611118,316.2 +19611125,316.5 +19611202,316.5 +19611209,317.0 +19611216,316.9 +19611223,317.1 +19611230,317.4 +19620106,317.9 +19620113,318.1 +19620120,318.0 +19620127,317.7 +19620203,318.0 +19620210,318.3 +19620217,318.9 +19620224,319.3 +19620303,319.2 +19620310,319.4 +19620317,319.9 +19620324,319.7 +19620331,320.2 +19620407,320.2 +19620414,321.0 +19620421,320.7 +19620428,320.3 +19620505,320.8 +19620512,320.7 +19620519,321.0 +19620526,321.1 +19620602,320.9 +19620609,320.8 +19620616,320.5 +19620623,320.1 +19620630,320.2 +19620707,320.1 +19620714,319.9 +19620721,319.0 +19620728,318.7 +19620804,318.6 +19620811,317.2 +19620818,317.4 +19620825, +19620901, +19620908, +19620915,316.6 +19620922,315.7 +19620929,315.9 +19621006,315.1 +19621013,315.4 +19621020,315.7 +19621027,315.7 +19621103,315.9 +19621110,316.4 +19621117,316.9 +19621124,317.0 +19621201,317.1 +19621208,317.3 +19621215,317.6 +19621222,318.1 +19621229, +19630105,318.5 +19630112,318.7 +19630119,318.9 +19630126,318.8 +19630202,318.7 +19630209,318.9 +19630216, +19630223,319.3 +19630302,319.3 +19630309,319.7 +19630316,319.8 +19630323,320.3 +19630330,320.2 +19630406,320.3 +19630413,320.9 +19630420,322.0 +19630427,321.9 +19630504, +19630511,321.9 +19630518,322.2 +19630525,322.2 +19630601,322.3 +19630608,322.0 +19630615,321.8 +19630622,320.8 +19630629,320.4 +19630706,320.1 +19630713,319.8 +19630720,319.5 +19630727,319.0 +19630803,318.6 +19630810,318.2 +19630817,317.7 +19630824,317.1 +19630831,316.4 +19630907,316.8 +19630914,315.9 +19630921,316.0 +19630928,315.9 +19631005,316.2 +19631012,315.6 +19631019,316.1 +19631026,316.3 +19631102,316.6 +19631109,316.8 +19631116,317.1 +19631123, +19631130,317.5 +19631207,318.0 +19631214,318.2 +19631221,318.5 +19631228,318.7 +19640104,319.0 +19640111,319.4 +19640118,319.8 +19640125, +19640201, +19640208, +19640215, +19640222, +19640229, +19640307, +19640314, +19640321, +19640328, +19640404, +19640411, +19640418, +19640425, +19640502, +19640509, +19640516, +19640523, +19640530,322.0 +19640606,322.0 +19640613, +19640620, +19640627,321.5 +19640704,321.1 +19640711,319.9 +19640718,320.2 +19640725,320.0 +19640801,319.1 +19640808, +19640815,318.6 +19640822,318.2 +19640829,318.1 +19640905,317.4 +19640912,316.5 +19640919,315.5 +19640926,317.0 +19641003,316.9 +19641010,316.5 +19641017,316.8 +19641024,317.0 +19641031,317.6 +19641107,317.7 +19641114,317.6 +19641121,317.5 +19641128,318.1 +19641205,318.4 +19641212,318.5 +19641219,318.9 +19641226,318.9 +19650102,319.0 +19650109,319.1 +19650116,319.1 +19650123,319.7 +19650130,320.1 +19650206,320.2 +19650213,320.1 +19650220,320.7 +19650227,320.8 +19650306,321.0 +19650313,320.9 +19650320,320.4 +19650327,321.4 +19650403,321.9 +19650410,322.2 +19650417,322.1 +19650424,321.8 +19650501,322.4 +19650508,322.2 +19650515,321.9 +19650522,321.6 +19650529,322.2 +19650605,321.8 +19650612,321.7 +19650619,321.7 +19650626,321.9 +19650703,321.9 +19650710,321.8 +19650717,321.7 +19650724,320.4 +19650731,319.4 +19650807,319.4 +19650814,318.0 +19650821,318.8 +19650828,318.7 +19650904,318.3 +19650911,318.0 +19650918,318.2 +19650925,316.8 +19651002,316.6 +19651009,317.2 +19651016,317.8 +19651023,317.5 +19651030,317.6 +19651106,318.3 +19651113,319.2 +19651120,318.9 +19651127,319.1 +19651204,319.0 +19651211,319.3 +19651218,319.3 +19651225,319.7 +19660101,319.6 +19660108,320.4 +19660115,320.6 +19660122,321.0 +19660129,321.1 +19660205,321.2 +19660212,321.7 +19660219,321.6 +19660226,321.8 +19660305,322.1 +19660312,322.1 +19660319,322.5 +19660326,322.8 +19660402,323.5 +19660409,323.6 +19660416,323.8 +19660423,323.9 +19660430,323.5 +19660507,324.0 +19660514,324.1 +19660521,323.7 +19660528,324.3 +19660604,324.0 +19660611,323.8 +19660618,323.7 +19660625,323.3 +19660702,322.8 +19660709,322.9 +19660716, +19660723, +19660730, +19660806,321.3 +19660813,320.8 +19660820,319.1 +19660827,319.6 +19660903,319.9 +19660910,318.2 +19660917,318.4 +19660924,318.3 +19661001,317.9 +19661008,317.9 +19661015,318.2 +19661022,318.6 +19661029,318.3 +19661105, +19661112,319.5 +19661119,320.0 +19661126,320.2 +19661203,320.8 +19661210,320.8 +19661217,321.1 +19661224,321.3 +19661231,321.3 +19670107,321.9 +19670114,322.9 +19670121, +19670128, +19670204,322.1 +19670211,322.2 +19670218,322.8 +19670225,322.6 +19670304,322.9 +19670311,322.6 +19670318,323.3 +19670325,323.2 +19670401,323.1 +19670408,324.2 +19670415,324.4 +19670422,324.6 +19670429,325.1 +19670506,325.2 +19670513,324.7 +19670520,325.0 +19670527,324.9 +19670603,324.9 +19670610,324.6 +19670617,323.3 +19670624,323.5 +19670701,322.8 +19670708,322.8 +19670715,322.4 +19670722,322.4 +19670729,322.0 +19670805,321.6 +19670812,321.4 +19670819,320.4 +19670826,320.0 +19670902,320.0 +19670909,319.4 +19670916,319.3 +19670923,319.0 +19670930,318.8 +19671007,318.8 +19671014,319.8 +19671021,319.4 +19671028,319.8 +19671104,320.0 +19671111,320.3 +19671118,320.9 +19671125,321.5 +19671202,321.4 +19671209,321.8 +19671216,322.2 +19671223,321.9 +19671230,322.3 +19680106,322.4 +19680113,322.5 +19680120,322.5 +19680127,322.8 +19680203,322.6 +19680210,323.1 +19680217,323.4 +19680224,323.1 +19680302,323.1 +19680309,323.8 +19680316,323.8 +19680323,324.2 +19680330,324.7 +19680406,324.7 +19680413,325.0 +19680420,324.8 +19680427,325.4 +19680504,325.6 +19680511,325.0 +19680518,325.5 +19680525,325.8 +19680601,325.6 +19680608,325.7 +19680615,325.5 +19680622,324.9 +19680629,324.6 +19680706,324.7 +19680713,324.1 +19680720,323.9 +19680727,323.4 +19680803,322.4 +19680810,322.2 +19680817,322.0 +19680824,321.7 +19680831,321.4 +19680907,320.4 +19680914,321.1 +19680921,319.7 +19680928,319.8 +19681005,320.5 +19681012,320.5 +19681019,320.2 +19681026,319.9 +19681102,320.7 +19681109,320.8 +19681116,321.4 +19681123,321.7 +19681130,322.0 +19681207,322.4 +19681214,322.9 +19681221,323.3 +19681228,323.1 +19690104,323.3 +19690111,324.0 +19690118,324.3 +19690125,324.1 +19690201,324.1 +19690208,323.9 +19690215,324.3 +19690222,324.8 +19690301,325.1 +19690308,325.5 +19690315,325.7 +19690322,325.9 +19690329,325.8 +19690405,326.2 +19690412,327.1 +19690419,326.5 +19690426,326.5 +19690503,327.5 +19690510,327.8 +19690517,326.8 +19690524,326.9 +19690531,327.4 +19690607,326.5 +19690614,326.7 +19690621,326.7 +19690628,326.3 +19690705,326.1 +19690712,326.0 +19690719,325.7 +19690726,325.4 +19690802,324.5 +19690809,324.5 +19690816,323.1 +19690823,322.5 +19690830,323.1 +19690906,322.2 +19690913,322.7 +19690920,322.8 +19690927,321.9 +19691004,321.5 +19691011,321.8 +19691018,322.0 +19691025,321.9 +19691101,322.2 +19691108,322.6 +19691115,322.7 +19691122,323.1 +19691129,323.5 +19691206,323.9 +19691213,323.9 +19691220,324.2 +19691227,324.5 +19700103,324.7 +19700110,325.4 +19700117,325.0 +19700124,324.8 +19700131,325.5 +19700207,325.7 +19700214,326.0 +19700221,326.3 +19700228,326.1 +19700307,326.8 +19700314,326.8 +19700321,327.5 +19700328,326.9 +19700404,328.2 +19700411,327.8 +19700418,327.8 +19700425,328.5 +19700502,327.9 +19700509,327.5 +19700516,328.0 +19700523,328.3 +19700530,327.9 +19700606,327.5 +19700613,327.8 +19700620,327.7 +19700627,327.2 +19700704,327.2 +19700711,326.2 +19700718,326.2 +19700725,325.6 +19700801,325.2 +19700808,325.2 +19700815,324.8 +19700822,324.8 +19700829,323.3 +19700905,322.9 +19700912,323.5 +19700919,323.1 +19700926,323.1 +19701003,323.2 +19701010,323.5 +19701017,322.9 +19701024,323.0 +19701031,323.1 +19701107,323.6 +19701114,323.7 +19701121,324.2 +19701128,324.7 +19701205,324.7 +19701212,325.0 +19701219,325.2 +19701226,325.5 +19710102,325.7 +19710109,325.8 +19710116,325.9 +19710123,326.7 +19710130,326.6 +19710206,326.5 +19710213,326.4 +19710220,326.7 +19710227,327.0 +19710306,327.1 +19710313,327.3 +19710320,327.0 +19710327,327.4 +19710403,327.4 +19710410,327.1 +19710417,327.7 +19710424,328.5 +19710501,328.2 +19710508,329.0 +19710515,329.2 +19710522,328.9 +19710529,328.8 +19710605,328.5 +19710612,328.8 +19710619,328.1 +19710626,328.5 +19710703,327.9 +19710710,327.8 +19710717,327.5 +19710724,326.2 +19710731,326.7 +19710807,326.1 +19710814,325.6 +19710821,325.3 +19710828,324.0 +19710904,323.6 +19710911,323.5 +19710918,323.2 +19710925,323.3 +19711002,323.3 +19711009,322.9 +19711016,323.5 +19711023,323.6 +19711030,324.4 +19711106,324.3 +19711113,324.5 +19711120,325.0 +19711127,325.5 +19711204,325.3 +19711211,325.9 +19711218,326.2 +19711225,326.3 +19720101,326.6 +19720108,326.6 +19720115,326.6 +19720122,326.6 +19720129,327.2 +19720205,327.4 +19720212,327.9 +19720219,327.8 +19720226,327.4 +19720304,327.5 +19720311,327.1 +19720318,327.7 +19720325,328.6 +19720401,328.9 +19720408,329.4 +19720415,329.8 +19720422,330.1 +19720429,330.0 +19720506,330.0 +19720513,329.7 +19720520,330.1 +19720527,330.2 +19720603,329.7 +19720610,329.1 +19720617,329.0 +19720624,328.5 +19720701,328.6 +19720708,328.3 +19720715,327.7 +19720722,328.1 +19720729,327.5 +19720805,326.9 +19720812,326.6 +19720819,326.5 +19720826,325.0 +19720902,325.4 +19720909,325.7 +19720916,324.8 +19720923,324.2 +19720930,324.2 +19721007,324.8 +19721014,325.5 +19721021,325.1 +19721028,325.8 +19721104,326.3 +19721111,326.1 +19721118,326.4 +19721125,326.9 +19721202,326.9 +19721209,327.1 +19721216,327.6 +19721223,327.9 +19721230,328.2 +19730106,328.4 +19730113,328.4 +19730120,328.6 +19730127,328.8 +19730203,329.1 +19730210,329.5 +19730217,329.6 +19730224,329.7 +19730303,329.9 +19730310,330.1 +19730317,330.5 +19730324,330.8 +19730331,330.6 +19730407,331.2 +19730414,331.1 +19730421,331.9 +19730428,332.1 +19730505,332.2 +19730512,332.3 +19730519,332.6 +19730526,332.5 +19730602,332.2 +19730609,332.5 +19730616,332.0 +19730623,331.6 +19730630,331.4 +19730707,331.5 +19730714,331.0 +19730721,330.0 +19730728,330.1 +19730804,330.0 +19730811,329.5 +19730818,329.3 +19730825,328.5 +19730901,328.4 +19730908,327.6 +19730915,327.8 +19730922,327.1 +19730929,326.6 +19731006,327.0 +19731013,327.4 +19731020,327.4 +19731027,327.1 +19731103,327.5 +19731110,328.0 +19731117,328.2 +19731124,328.5 +19731201,329.0 +19731208,328.7 +19731215,328.6 +19731222,328.2 +19731229,328.7 +19740105,328.9 +19740112,329.2 +19740119,329.4 +19740126,329.8 +19740202,330.5 +19740209,330.8 +19740216,330.6 +19740223,330.6 +19740302,330.7 +19740309,331.2 +19740316,332.1 +19740323,332.0 +19740330,331.5 +19740406,332.4 +19740413,332.1 +19740420,332.9 +19740427,333.1 +19740504,332.9 +19740511,333.0 +19740518,333.2 +19740525,332.8 +19740601,332.9 +19740608,332.0 +19740615,332.0 +19740622,332.2 +19740629,331.7 +19740706,331.7 +19740713,331.2 +19740720,330.4 +19740727,331.0 +19740803,330.0 +19740810,329.9 +19740817,329.2 +19740824,328.9 +19740831,328.1 +19740907,328.0 +19740914,327.3 +19740921,326.9 +19740928,327.3 +19741005,327.3 +19741012,327.0 +19741019,327.5 +19741026,327.7 +19741102,327.9 +19741109,328.0 +19741116,328.8 +19741123,328.6 +19741130,328.7 +19741207,329.5 +19741214,329.7 +19741221,329.8 +19741228,329.7 +19750104,329.9 +19750111,329.8 +19750118,330.2 +19750125,331.1 +19750201,331.1 +19750208,331.4 +19750215,331.0 +19750222,331.7 +19750301,331.8 +19750308,331.6 +19750315,331.9 +19750322,332.2 +19750329,332.5 +19750405,333.0 +19750412,333.5 +19750419,333.5 +19750426,333.1 +19750503,333.9 +19750510,333.9 +19750517,333.7 +19750524,333.7 +19750531,334.1 +19750607,333.8 +19750614,333.3 +19750621,333.4 +19750628,333.1 +19750705,332.7 +19750712,332.0 +19750719,331.0 +19750726,331.5 +19750802,330.8 +19750809,330.7 +19750816,330.3 +19750823,329.3 +19750830,328.8 +19750906,329.4 +19750913,328.5 +19750920,328.0 +19750927,328.2 +19751004,328.0 +19751011,328.0 +19751018,328.5 +19751025,328.8 +19751101,329.3 +19751108,329.2 +19751115,329.1 +19751122,329.5 +19751129,330.1 +19751206,330.3 +19751213,330.5 +19751220,331.1 +19751227,331.2 +19760103,331.5 +19760110,331.5 +19760117,331.7 +19760124,331.8 +19760131,332.2 +19760207,332.1 +19760214,332.5 +19760221,333.2 +19760228,332.4 +19760306,332.8 +19760313,333.6 +19760320,333.1 +19760327,334.3 +19760403,334.7 +19760410,334.2 +19760417,334.4 +19760424,334.5 +19760501,334.7 +19760508,334.3 +19760515,334.6 +19760522,335.4 +19760529,334.8 +19760605,334.3 +19760612,334.6 +19760619,334.3 +19760626, +19760703,333.6 +19760710,333.4 +19760717,332.8 +19760724,332.4 +19760731,332.1 +19760807,331.7 +19760814,330.6 +19760821,330.6 +19760828,330.0 +19760904,329.7 +19760911,330.0 +19760918,329.3 +19760925,328.4 +19761002,328.8 +19761009,329.0 +19761016,329.6 +19761023,329.1 +19761030,329.0 +19761106,329.8 +19761113,330.4 +19761120,330.5 +19761127,330.7 +19761204,331.1 +19761211,331.3 +19761218,331.9 +19761225,332.2 +19770101,332.5 +19770108,332.4 +19770115,333.1 +19770122,333.2 +19770129,333.2 +19770205,333.4 +19770212,333.3 +19770219,333.4 +19770226,333.6 +19770305,334.1 +19770312,334.6 +19770319,335.1 +19770326,335.0 +19770402,335.5 +19770409,335.9 +19770416,336.0 +19770423,336.1 +19770430,336.7 +19770507,336.8 +19770514,336.4 +19770521,336.8 +19770528,336.7 +19770604,336.4 +19770611,336.3 +19770618,336.1 +19770625,336.0 +19770702,335.5 +19770709,335.1 +19770716,335.1 +19770723,334.6 +19770730,333.7 +19770806,333.0 +19770813,332.9 +19770820,332.8 +19770827,332.8 +19770903,332.1 +19770910,331.2 +19770917,332.1 +19770924,330.9 +19771001,330.4 +19771008,330.9 +19771015,331.5 +19771022,331.5 +19771029,331.7 +19771105,332.1 +19771112,332.0 +19771119,332.5 +19771126,332.8 +19771203,333.2 +19771210,333.5 +19771217,333.8 +19771224,334.2 +19771231,334.6 +19780107,334.2 +19780114,334.6 +19780121,335.4 +19780128,335.9 +19780204,335.0 +19780211,335.1 +19780218,335.6 +19780225,335.7 +19780304,336.2 +19780311,336.1 +19780318,336.8 +19780325,337.3 +19780401,337.0 +19780408,337.9 +19780415,337.9 +19780422,337.4 +19780429,338.0 +19780506,338.0 +19780513,338.1 +19780520,337.8 +19780527,337.9 +19780603,338.4 +19780610,338.2 +19780617,337.8 +19780624,337.3 +19780701,337.6 +19780708,336.7 +19780715,336.7 +19780722,335.9 +19780729,335.6 +19780805,335.1 +19780812,334.8 +19780819,334.4 +19780826,334.3 +19780902,333.8 +19780909,332.8 +19780916,332.1 +19780923,332.3 +19780930,332.7 +19781007,332.1 +19781014,332.4 +19781021,333.0 +19781028,333.1 +19781104,333.5 +19781111,333.8 +19781118,333.8 +19781125,334.2 +19781202,334.5 +19781209,334.8 +19781216,335.1 +19781223,335.1 +19781230,335.3 +19790106,335.3 +19790113,335.9 +19790120,336.8 +19790127,336.9 +19790203,336.9 +19790210,336.5 +19790217,336.7 +19790224,336.7 +19790303,337.1 +19790310,337.7 +19790317,337.4 +19790324,339.0 +19790331,338.8 +19790407,338.1 +19790414,338.6 +19790421,339.2 +19790428,339.6 +19790505,339.3 +19790512,338.8 +19790519,339.8 +19790526,339.6 +19790602,339.9 +19790609,339.5 +19790616,338.9 +19790623,338.9 +19790630,339.0 +19790707,338.2 +19790714,337.8 +19790721,337.3 +19790728,336.8 +19790804,337.0 +19790811,336.5 +19790818,336.1 +19790825,334.5 +19790901,334.4 +19790908,334.0 +19790915,334.2 +19790922,333.2 +19790929,334.1 +19791006,334.1 +19791013,333.9 +19791020,333.7 +19791027,334.1 +19791103,334.7 +19791110,334.8 +19791117,335.5 +19791124,335.6 +19791201,335.9 +19791208,336.5 +19791215,336.7 +19791222,336.8 +19791229,337.4 +19800105,337.6 +19800112,337.4 +19800119,338.3 +19800126,338.4 +19800202,338.0 +19800209,338.1 +19800216,338.6 +19800223,338.2 +19800301,339.3 +19800308,339.5 +19800315,340.0 +19800322,340.5 +19800329,341.0 +19800405,340.4 +19800412,340.9 +19800419,340.7 +19800426,341.0 +19800503,341.5 +19800510,341.3 +19800517,341.3 +19800524,340.9 +19800531,341.7 +19800607,341.3 +19800614,341.3 +19800621,340.8 +19800628,340.4 +19800705,340.4 +19800712,339.7 +19800719,338.5 +19800726,338.9 +19800802,337.9 +19800809,337.7 +19800816,337.7 +19800823,337.7 +19800830,337.0 +19800906,336.6 +19800913,335.7 +19800920,335.2 +19800927,336.0 +19801004,335.8 +19801011,335.8 +19801018,336.1 +19801025,336.4 +19801101,336.6 +19801108,336.9 +19801115,337.1 +19801122,337.3 +19801129,337.4 +19801206,337.7 +19801213,338.1 +19801220,338.3 +19801227,338.7 +19810103,338.9 +19810110,339.1 +19810117,339.3 +19810124,339.3 +19810131,339.5 +19810207,340.5 +19810214,340.0 +19810221,340.2 +19810228,341.1 +19810307,340.7 +19810314,341.0 +19810321,341.8 +19810328,342.1 +19810404,342.4 +19810411,342.4 +19810418,342.7 +19810425,342.3 +19810502,342.9 +19810509,343.0 +19810516,342.8 +19810523,342.7 +19810530,342.7 +19810606,342.6 +19810613,342.5 +19810620,341.8 +19810627,341.6 +19810704,341.0 +19810711,340.8 +19810718,339.7 +19810725,340.2 +19810801,339.5 +19810808,338.9 +19810815,338.4 +19810822,337.5 +19810829,337.7 +19810905,337.2 +19810912,337.0 +19810919,336.7 +19810926,335.9 +19811003,336.3 +19811010,336.6 +19811017,337.1 +19811024,337.2 +19811031,337.5 +19811107,337.8 +19811114,338.1 +19811121,338.5 +19811128,339.3 +19811205,339.2 +19811212,339.4 +19811219,339.6 +19811226,340.2 +19820102,340.2 +19820109,340.3 +19820116,340.7 +19820123,341.1 +19820130,341.2 +19820206,341.9 +19820213,341.1 +19820220,341.1 +19820227,342.1 +19820306,342.6 +19820313,342.6 +19820320,342.7 +19820327,342.8 +19820403,342.9 +19820410,343.3 +19820417,343.5 +19820424,344.2 +19820501,343.8 +19820508,343.6 +19820515,344.2 +19820522,344.1 +19820529,344.1 +19820605,343.4 +19820612,343.5 +19820619,343.4 +19820626,342.9 +19820703,342.5 +19820710,342.0 +19820717,342.0 +19820724,341.8 +19820731,341.3 +19820807,340.5 +19820814,340.0 +19820821,339.7 +19820828,338.3 +19820904,338.8 +19820911,338.6 +19820918,337.8 +19820925,336.9 +19821002,337.3 +19821009,338.0 +19821016,337.6 +19821023,337.9 +19821030,338.7 +19821106,338.4 +19821113,339.2 +19821120,339.7 +19821127,339.8 +19821204,339.8 +19821211,340.4 +19821218,340.7 +19821225,340.8 +19830101,340.9 +19830108,341.4 +19830115,341.5 +19830122,341.2 +19830129,341.7 +19830205,342.0 +19830212,342.7 +19830219,342.5 +19830226,342.8 +19830305,342.3 +19830312,342.5 +19830319,344.0 +19830326,343.8 +19830402,344.0 +19830409,344.8 +19830416,345.0 +19830423,345.3 +19830430,345.4 +19830507,345.4 +19830514,345.7 +19830521,345.8 +19830528,345.7 +19830604,345.6 +19830611,345.6 +19830618,345.0 +19830625,344.9 +19830702,344.7 +19830709,344.5 +19830716,343.7 +19830723,343.6 +19830730,342.6 +19830806,343.0 +19830813,341.7 +19830820,342.1 +19830827,341.8 +19830903,339.9 +19830910,339.9 +19830917,339.8 +19830924,339.9 +19831001,339.8 +19831008,339.7 +19831015,340.1 +19831022,340.2 +19831029,340.3 +19831105,340.8 +19831112,341.0 +19831119,341.1 +19831126,341.7 +19831203,341.8 +19831210,342.8 +19831217,343.3 +19831224,343.6 +19831231,343.4 +19840107,343.7 +19840114,343.4 +19840121,343.5 +19840128,344.1 +19840204,344.3 +19840211,344.5 +19840218,344.3 +19840225,344.6 +19840303,344.8 +19840310,344.9 +19840317,345.4 +19840324,345.6 +19840331, +19840407, +19840414, +19840421, +19840428,347.4 +19840505,347.4 +19840512,347.7 +19840519,347.3 +19840526,347.0 +19840602,347.0 +19840609,347.0 +19840616,346.8 +19840623,346.3 +19840630,346.2 +19840707,345.8 +19840714,345.4 +19840721,345.2 +19840728,344.4 +19840804,344.0 +19840811,344.1 +19840818,343.1 +19840825,342.0 +19840901,341.6 +19840908,340.6 +19840915,341.3 +19840922,341.3 +19840929,340.8 +19841006,341.1 +19841013,341.3 +19841020,341.9 +19841027,341.6 +19841103,342.0 +19841110,342.6 +19841117,343.1 +19841124,343.7 +19841201,343.6 +19841208,343.9 +19841215,344.2 +19841222,344.5 +19841229,344.5 +19850105,344.7 +19850112,345.0 +19850119,345.0 +19850126,345.0 +19850202,345.9 +19850209,345.5 +19850216,345.8 +19850223,346.3 +19850302,346.7 +19850309,347.1 +19850316,347.5 +19850323,347.7 +19850330,348.2 +19850406,348.0 +19850413,348.0 +19850420,348.5 +19850427,348.8 +19850504,348.8 +19850511,349.3 +19850518,349.1 +19850525,348.1 +19850601,349.0 +19850608,348.4 +19850615,348.2 +19850622,347.9 +19850629,347.4 +19850706,346.9 +19850713,346.8 +19850720,346.4 +19850727,345.7 +19850803, +19850810,344.7 +19850817,344.5 +19850824,344.3 +19850831,343.7 +19850907,344.2 +19850914,343.3 +19850921,342.4 +19850928,342.1 +19851005,342.4 +19851012,342.5 +19851019,343.1 +19851026,343.2 +19851102,343.3 +19851109,343.7 +19851116,344.2 +19851123,344.6 +19851130,345.3 +19851207,345.3 +19851214,345.6 +19851221,345.1 +19851228,346.3 +19860104,346.4 +19860111,346.0 +19860118,346.2 +19860125,346.4 +19860201,346.2 +19860208,346.8 +19860215,347.1 +19860222,347.2 +19860301,347.0 +19860308,346.6 +19860315,347.2 +19860322,349.1 +19860329,348.8 +19860405,349.2 +19860412,349.4 +19860419,349.3 +19860426,350.2 +19860503,349.9 +19860510,350.1 +19860517,350.2 +19860524,350.1 +19860531,350.1 +19860607,349.7 +19860614,349.5 +19860621,349.4 +19860628,348.9 +19860705,348.6 +19860712,347.7 +19860719,347.6 +19860726,347.4 +19860802,346.6 +19860809,346.2 +19860816,345.5 +19860823,345.6 +19860830,345.2 +19860906,345.0 +19860913,345.3 +19860920,344.4 +19860927,344.5 +19861004,343.9 +19861011,344.1 +19861018,343.9 +19861025,344.5 +19861101,345.1 +19861108,345.3 +19861115,345.6 +19861122,345.7 +19861129,346.4 +19861206,346.9 +19861213,346.7 +19861220,346.9 +19861227,347.0 +19870103,347.6 +19870110,348.3 +19870117,348.2 +19870124,347.9 +19870131,348.0 +19870207,347.9 +19870214,348.2 +19870221,348.5 +19870228,349.4 +19870307,348.8 +19870314,349.2 +19870321,349.7 +19870328,350.2 +19870404,350.8 +19870411,350.2 +19870418,351.1 +19870425,351.3 +19870502,351.4 +19870509,352.0 +19870516,351.7 +19870523,351.9 +19870530,351.7 +19870606,351.6 +19870613,351.1 +19870620,351.0 +19870627,350.9 +19870704,349.7 +19870711,349.8 +19870718,348.8 +19870725,349.5 +19870801,349.0 +19870808,348.1 +19870815,348.6 +19870822,348.0 +19870829,346.7 +19870905,347.0 +19870912,346.6 +19870919,346.2 +19870926,345.8 +19871003,345.7 +19871010,346.3 +19871017,346.5 +19871024,346.8 +19871031,346.9 +19871107,347.3 +19871114,347.6 +19871121,348.1 +19871128,348.7 +19871205,348.6 +19871212,348.8 +19871219,349.1 +19871226,349.2 +19880102,349.7 +19880109,350.2 +19880116,350.2 +19880123,350.7 +19880130,351.2 +19880206,351.8 +19880213,351.3 +19880220,351.5 +19880227,352.5 +19880305,352.8 +19880312,351.8 +19880319,351.7 +19880326,352.2 +19880402,353.1 +19880409,353.5 +19880416,353.1 +19880423,354.0 +19880430,354.2 +19880507,353.7 +19880514,354.3 +19880521,354.5 +19880528,354.2 +19880604,354.1 +19880611,354.2 +19880618,353.6 +19880625,353.1 +19880702,353.0 +19880709,352.5 +19880716,352.6 +19880723,351.9 +19880730,351.1 +19880806,350.9 +19880813,350.3 +19880820,350.4 +19880827,349.6 +19880903,349.3 +19880910,348.7 +19880917,348.9 +19880924,348.1 +19881001,348.8 +19881008,348.8 +19881015,348.6 +19881022,349.4 +19881029,349.2 +19881105,349.7 +19881112,349.8 +19881119,350.1 +19881126,350.4 +19881203,350.5 +19881210,351.0 +19881217,351.6 +19881224,351.3 +19881231,352.4 +19890107,352.7 +19890114,352.9 +19890121,352.5 +19890128,353.0 +19890204,352.8 +19890211,352.6 +19890218,353.2 +19890225,353.4 +19890304,353.1 +19890311,353.4 +19890318,353.5 +19890325,354.4 +19890401,354.5 +19890408,355.0 +19890415,355.4 +19890422,356.0 +19890429,355.9 +19890506,355.3 +19890513,355.8 +19890520,355.6 +19890527,355.7 +19890603,355.8 +19890610,355.0 +19890617,354.8 +19890624,354.9 +19890701,354.5 +19890708,354.7 +19890715,353.8 +19890722,353.1 +19890729,353.2 +19890805,352.6 +19890812,352.2 +19890819,351.1 +19890826,350.4 +19890902,350.7 +19890909,350.2 +19890916,349.4 +19890923,349.3 +19890930,349.7 +19891007,349.9 +19891014,349.7 +19891021,350.2 +19891028,350.4 +19891104,350.6 +19891111,351.2 +19891118,351.6 +19891125,351.4 +19891202,352.0 +19891209,352.1 +19891216,352.4 +19891223,352.5 +19891230,353.4 +19900106,353.4 +19900113,353.5 +19900120,353.8 +19900127,353.9 +19900203,354.1 +19900210,355.0 +19900217,354.8 +19900224,354.7 +19900303,355.7 +19900310,354.9 +19900317,355.8 +19900324,355.1 +19900331,355.9 +19900407,356.1 +19900414,355.9 +19900421,356.6 +19900428,356.1 +19900505,357.3 +19900512,357.0 +19900519,356.9 +19900526,357.1 +19900602,357.0 +19900609,356.6 +19900616,355.6 +19900623,355.5 +19900630,355.7 +19900707,355.5 +19900714,354.0 +19900721,354.5 +19900728,354.7 +19900804,353.5 +19900811,353.2 +19900818,352.9 +19900825,352.0 +19900901,350.9 +19900908,350.7 +19900915,351.3 +19900922,350.9 +19900929,350.9 +19901006,351.1 +19901013,351.0 +19901020,351.4 +19901027,351.4 +19901103,352.1 +19901110,352.6 +19901117,353.0 +19901124,353.1 +19901201,353.6 +19901208,354.0 +19901215,353.8 +19901222,354.5 +19901229,354.8 +19910105,354.2 +19910112,354.7 +19910119,354.8 +19910126,355.0 +19910202,355.2 +19910209,355.2 +19910216,356.4 +19910223,355.8 +19910302,356.4 +19910309,357.2 +19910316,357.6 +19910323,356.9 +19910330,357.9 +19910406,358.3 +19910413,357.8 +19910420,359.1 +19910427,359.2 +19910504,359.1 +19910511,358.9 +19910518,360.0 +19910525,359.0 +19910601,358.5 +19910608,358.4 +19910615,358.2 +19910622,358.1 +19910629,357.7 +19910706,357.2 +19910713,356.5 +19910720,355.2 +19910727,355.3 +19910803,354.8 +19910810,354.6 +19910817,353.7 +19910824,353.0 +19910831,353.2 +19910907,353.0 +19910914,352.1 +19910921,351.8 +19910928,351.6 +19911005,351.7 +19911012,352.1 +19911019,352.5 +19911026,352.7 +19911102,353.4 +19911109,353.7 +19911116,353.5 +19911123,353.8 +19911130,354.3 +19911207,354.5 +19911214,354.9 +19911221,355.2 +19911228,355.5 +19920104,355.6 +19920111,356.0 +19920118,356.1 +19920125,355.9 +19920201,356.0 +19920208,356.7 +19920215,357.3 +19920222,356.9 +19920229,356.5 +19920307,357.3 +19920314,357.8 +19920321,358.1 +19920328,358.4 +19920404,358.5 +19920411,358.9 +19920418,359.7 +19920425,359.2 +19920502,359.6 +19920509,359.7 +19920516,358.6 +19920523,359.6 +19920530,360.2 +19920606,360.0 +19920613,359.4 +19920620,358.7 +19920627,358.4 +19920704,358.4 +19920711,357.2 +19920718,356.3 +19920725,356.1 +19920801,354.9 +19920808,355.3 +19920815,355.3 +19920822,354.5 +19920829,354.3 +19920905,353.5 +19920912,353.6 +19920919,352.3 +19920926,352.7 +19921003,353.6 +19921010,353.3 +19921017,353.2 +19921024,353.5 +19921031,353.5 +19921107,353.9 +19921114,353.8 +19921121,354.5 +19921128,354.6 +19921205,354.8 +19921212,355.3 +19921219,355.4 +19921226,355.9 +19930102,356.2 +19930109,356.9 +19930116,356.7 +19930123,356.6 +19930130,357.0 +19930206,356.6 +19930213,357.2 +19930220,357.3 +19930227,357.6 +19930306,358.3 +19930313,358.5 +19930320,358.1 +19930327,358.8 +19930403,359.1 +19930410,358.8 +19930417,359.4 +19930424,360.0 +19930501,359.6 +19930508,359.7 +19930515,360.7 +19930522,360.6 +19930529,360.3 +19930605,359.7 +19930612,359.9 +19930619,359.3 +19930626,359.1 +19930703,357.9 +19930710,358.0 +19930717,358.1 +19930724,356.6 +19930731,356.5 +19930807,355.8 +19930814,355.9 +19930821,354.9 +19930828,354.7 +19930904,354.3 +19930911,353.2 +19930918,353.8 +19930925,353.8 +19931002,353.8 +19931009,353.8 +19931016,354.0 +19931023,354.4 +19931030,354.3 +19931106,354.7 +19931113,355.1 +19931120,355.6 +19931127,356.0 +19931204,356.2 +19931211,356.5 +19931218,356.9 +19931225,357.5 +19940101,358.1 +19940108,358.1 +19940115,358.4 +19940122,358.3 +19940129,358.7 +19940205,358.4 +19940212,358.6 +19940219,359.0 +19940226,359.6 +19940305,358.7 +19940312,359.8 +19940319,360.4 +19940326,360.8 +19940402,360.6 +19940409,361.0 +19940416,361.0 +19940423,361.3 +19940430,362.2 +19940507,361.6 +19940514,361.4 +19940521,361.7 +19940528,361.9 +19940604,361.0 +19940611,361.0 +19940618,360.9 +19940625,360.7 +19940702,360.2 +19940709,359.9 +19940716,359.4 +19940723,359.0 +19940730,358.8 +19940806,358.1 +19940813,357.5 +19940820,357.6 +19940827,356.3 +19940903,356.4 +19940910,356.4 +19940917,355.4 +19940924,355.5 +19941001,355.4 +19941008,355.8 +19941015,356.0 +19941022,356.3 +19941029,356.6 +19941105,356.9 +19941112,357.4 +19941119,357.9 +19941126,358.1 +19941203,358.4 +19941210,359.1 +19941217,359.2 +19941224,359.1 +19941231,359.5 +19950107,359.6 +19950114,360.2 +19950121,360.1 +19950128,360.0 +19950204,360.6 +19950211,361.0 +19950218,360.8 +19950225,361.3 +19950304,362.2 +19950311,361.2 +19950318,360.9 +19950325,362.0 +19950401,363.8 +19950408,363.4 +19950415,363.3 +19950422,362.8 +19950429,363.5 +19950506,363.2 +19950513,364.1 +19950520,364.1 +19950527,363.4 +19950603,363.9 +19950610,363.4 +19950617,362.9 +19950624,362.8 +19950701,362.5 +19950708,362.2 +19950715,361.9 +19950722,361.5 +19950729,360.9 +19950805,360.4 +19950812,359.2 +19950819,358.7 +19950826,359.2 +19950902,357.3 +19950909,358.5 +19950916,358.5 +19950923,358.2 +19950930,357.5 +19951007,357.6 +19951014,357.6 +19951021,358.0 +19951028,358.2 +19951104,359.1 +19951111,359.4 +19951118,359.6 +19951125,359.8 +19951202,360.1 +19951209,360.4 +19951216,360.5 +19951223,360.8 +19951230,361.7 +19960106,361.8 +19960113,362.0 +19960120,362.1 +19960127,362.2 +19960203,362.6 +19960210,363.1 +19960217,363.0 +19960224,364.0 +19960302,363.8 +19960309,363.6 +19960316,364.1 +19960323,364.5 +19960330,364.3 +19960406,364.5 +19960413,364.8 +19960420,364.4 +19960427,365.1 +19960504,364.9 +19960511,365.3 +19960518,365.7 +19960525,365.4 +19960601,364.8 +19960608,365.1 +19960615,365.2 +19960622,365.0 +19960629,364.3 +19960706,364.1 +19960713,363.7 +19960720,363.3 +19960727,362.8 +19960803,361.7 +19960810,362.1 +19960817,361.2 +19960824,360.8 +19960831,360.8 +19960907,359.8 +19960914,359.8 +19960921,359.0 +19960928,359.0 +19961005,359.4 +19961012,359.5 +19961019,359.8 +19961026,359.8 +19961102,359.9 +19961109,360.5 +19961116,360.7 +19961123,361.2 +19961130,361.4 +19961207,361.9 +19961214,362.6 +19961221,362.4 +19961228,362.6 +19970104,362.9 +19970111,363.0 +19970118,363.1 +19970125,363.5 +19970201,363.2 +19970208,364.1 +19970215,364.0 +19970222,364.2 +19970301,364.5 +19970308,364.1 +19970315,364.1 +19970322,364.7 +19970329,365.4 +19970405,365.8 +19970412,366.2 +19970419,366.6 +19970426,366.7 +19970503,366.7 +19970510,366.8 +19970517,367.0 +19970524,366.6 +19970531,366.3 +19970607,365.7 +19970614,365.6 +19970621,365.5 +19970628,365.1 +19970705,365.0 +19970712,364.6 +19970719,364.1 +19970726,363.8 +19970802,363.3 +19970809,363.3 +19970816,362.6 +19970823,361.5 +19970830,361.6 +19970906,360.6 +19970913,360.2 +19970920,360.0 +19970927,359.8 +19971004,360.5 +19971011,360.4 +19971018,361.0 +19971025,361.1 +19971101,361.7 +19971108,362.1 +19971115,362.0 +19971122,362.6 +19971129,363.5 +19971206,363.9 +19971213,363.9 +19971220,364.2 +19971227,365.0 +19980103,365.2 +19980110,365.3 +19980117,365.3 +19980124,365.3 +19980131,365.6 +19980207,366.0 +19980214,365.5 +19980221,366.0 +19980228,367.3 +19980307,367.0 +19980314,366.6 +19980321,367.4 +19980328,368.5 +19980404,368.6 +19980411,368.6 +19980418,368.0 +19980425,368.9 +19980502,369.1 +19980509,368.8 +19980516,368.5 +19980523,369.6 +19980530,369.7 +19980606,369.4 +19980613,368.8 +19980620,368.5 +19980627,368.3 +19980704,368.0 +19980711,367.5 +19980718,367.6 +19980725,367.3 +19980801,366.8 +19980808,366.4 +19980815,365.6 +19980822,365.6 +19980829,364.2 +19980905,364.7 +19980912,363.9 +19980919,363.5 +19980926,363.6 +19981003,364.0 +19981010,364.1 +19981017,364.4 +19981024,364.4 +19981031,364.7 +19981107,365.0 +19981114,365.4 +19981121,365.8 +19981128,366.0 +19981205,366.4 +19981212,366.7 +19981219,367.3 +19981226,367.3 +19990102,367.5 +19990109,367.8 +19990116,367.8 +19990123,368.3 +19990130,369.2 +19990206,369.1 +19990213,368.8 +19990220,369.0 +19990227,368.5 +19990306,368.1 +19990313,369.5 +19990320,370.2 +19990327,370.6 +19990403,371.1 +19990410,371.5 +19990417,371.0 +19990424,370.3 +19990501,370.8 +19990508,371.3 +19990515,371.0 +19990522,370.8 +19990529,370.3 +19990605,370.9 +19990612,370.3 +19990619,369.9 +19990626,369.9 +19990703,369.4 +19990710,370.1 +19990717,369.5 +19990724,368.6 +19990731,367.4 +19990807,367.6 +19990814,366.7 +19990821,366.4 +19990828,366.1 +19990904,364.1 +19990911,364.7 +19990918,365.2 +19990925,364.7 +19991002,364.5 +19991009,365.0 +19991016,364.9 +19991023,365.6 +19991030,365.7 +19991106,366.2 +19991113,366.7 +19991120,366.6 +19991127,367.1 +19991204,367.4 +19991211,368.0 +19991218,368.0 +19991225,368.2 +20000101,368.6 +20000108,368.5 +20000115,369.0 +20000122,369.8 +20000129,369.2 +20000205,369.1 +20000212,369.6 +20000219,369.3 +20000226,369.5 +20000304,370.0 +20000311,370.0 +20000318,370.9 +20000325,370.7 +20000401,370.9 +20000408,371.7 +20000415,371.8 +20000422,372.0 +20000429,371.3 +20000506,371.2 +20000513,371.7 +20000520,371.9 +20000527,371.8 +20000603,371.9 +20000610,371.6 +20000617,371.7 +20000624,371.3 +20000701,370.8 +20000708,370.0 +20000715,370.2 +20000722,369.7 +20000729,369.0 +20000805,368.7 +20000812,368.3 +20000819,367.7 +20000826,367.1 +20000902,367.2 +20000909,366.7 +20000916,366.2 +20000923,366.2 +20000930,366.4 +20001007,366.3 +20001014,366.6 +20001021,366.7 +20001028,367.3 +20001104,367.6 +20001111,368.0 +20001118,368.6 +20001125,368.3 +20001202,369.0 +20001209,369.6 +20001216,369.3 +20001223,369.5 +20001230,369.8 +20010106,369.8 +20010113,370.2 +20010120,369.9 +20010127,370.8 +20010203,371.3 +20010210,371.1 +20010217,371.7 +20010224,371.2 +20010303,372.2 +20010310,372.2 +20010317,372.1 +20010324,371.8 +20010331,372.0 +20010407,372.7 +20010414,372.7 +20010421,373.0 +20010428,372.7 +20010505,373.7 +20010512,373.9 +20010519,373.7 +20010526,373.9 +20010602,373.8 +20010609,373.1 +20010616,372.8 +20010623,372.9 +20010630,372.7 +20010707,372.1 +20010714,371.3 +20010721,371.2 +20010728,370.6 +20010804,369.9 +20010811,369.5 +20010818,369.3 +20010825,369.0 +20010901,368.4 +20010908,368.2 +20010915,368.0 +20010922,367.4 +20010929,367.4 +20011006,367.8 +20011013,367.6 +20011020,368.1 +20011027,368.7 +20011103,368.7 +20011110,368.8 +20011117,369.7 +20011124,370.3 +20011201,370.3 +20011208,370.8 +20011215,371.2 +20011222,371.3 +20011229,371.5 diff --git a/statsmodels/datasets/co2/data.py b/statsmodels/datasets/co2/data.py new file mode 100644 index 0000000..6cdb5e3 --- /dev/null +++ b/statsmodels/datasets/co2/data.py @@ -0,0 +1,80 @@ +#! /usr/bin/env python + +"""Mauna Loa Weekly Atmospheric CO2 Data""" + +__docformat__ = 'restructuredtext' + +COPYRIGHT = """This is public domain.""" +TITLE = """Mauna Loa Weekly Atmospheric CO2 Data""" +SOURCE = """ +Data obtained from http://cdiac.ornl.gov/trends/co2/sio-keel-flask/sio-keel-flaskmlo_c.html + +Obtained on 3/15/2014. + +Citation: + +Keeling, C.D. and T.P. Whorf. 2004. Atmospheric CO2 concentrations derived from flask air samples at sites in the SIO network. In Trends: A Compendium of Data on Global Change. Carbon Dioxide Information Analysis Center, Oak Ridge National Laboratory, U.S. Department of Energy, Oak Ridge, Tennessee, U.S.A. +""" + +DESCRSHORT = """Atmospheric CO2 from Continuous Air Samples at Mauna Loa Observatory, Hawaii, U.S.A.""" + +DESCRLONG = """ +Atmospheric CO2 from Continuous Air Samples at Mauna Loa Observatory, Hawaii, U.S.A. + +Period of Record: March 1958 - December 2001 + +Methods: An Applied Physics Corporation (APC) nondispersive infrared gas analyzer was used to obtain atmospheric CO2 concentrations, based on continuous data (four measurements per hour) from atop intake lines on several towers. Steady data periods of not less than six hours per day are required; if no such six-hour periods are available on any given day, then no data are used that day. Weekly averages were calculated for most weeks throughout the approximately 44 years of record. The continuous data for year 2000 is compared with flask data from the same site in the graphics section.""" + +#suggested notes +NOTE = """:: + + Number of observations: 2225 + Number of variables: 2 + Variable name definitions: + + date - sample date in YYMMDD format + co2 - CO2 Concentration ppmv + + The data returned by load_pandas contains the dates as the index. +""" + +import numpy as np +from statsmodels.datasets import utils as du +from os.path import dirname, abspath + +import pandas as pd + +def load(): + """ + Load the data and return a Dataset class instance. + + Returns + ------- + Dataset instance: + See DATASET_PROPOSAL.txt for more information. + """ + data = _get_data() + names = data.dtype.names + return du.Dataset(data=data, names=names) + + +def load_pandas(): + data = load() + # pandas <= 0.12.0 fails in the to_datetime regex on Python 3 + index = pd.DatetimeIndex(start=data.data['date'][0].decode('utf-8'), + periods=len(data.data), format='%Y%m%d', + freq='W-SAT') + dataset = pd.DataFrame(data.data['co2'], index=index, columns=['co2']) + #NOTE: this is how I got the missing values in co2.csv + #new_index = pd.DatetimeIndex(start='1958-3-29', end=index[-1], + # freq='W-SAT') + #data.data = dataset.reindex(new_index) + data.data = dataset + return data + + +def _get_data(): + filepath = dirname(abspath(__file__)) + with open(filepath + '/co2.csv', 'rb') as f: + data = np.recfromtxt(f, delimiter=",", names=True, dtype=['a8', float]) + return data diff --git a/statsmodels/datasets/co2/src/maunaloa_c.dat b/statsmodels/datasets/co2/src/maunaloa_c.dat new file mode 100644 index 0000000..8f35826 --- /dev/null +++ b/statsmodels/datasets/co2/src/maunaloa_c.dat @@ -0,0 +1,2252 @@ +******************************************************************* +*** Weekly averages derived from continuous air samples *** +*** for the Mauna Loa Observatory, Hawaii, U.S.A. *** +*** *** +*** *** +*** September 2004 *** +*** *** +*** Source: Carbon Dioxide Research Group *** +*** Scripps Institution of Oceanography *** +*** University of California, San Diego *** +*** La Jolla, California, USA 92023-0444 *** +******************************************************************* + +These weekly averages are ultimately based on measurements of 4 air +samples per hour taken atop intake lines on several towers during +steady periods of CO2 concentration of not less than 6 hours per day; +if no such periods are available on a given day, then no data are +used for that day. The "Weight" column gives the number of days used +in each weekly average. Flag codes are explained in the NDP writeup, available +electronically from the home page of this data set. CO2 concentrations +are in terms of the 1999 calibration scale (Keeling et al., 2002) +available electronically from the references in the NDP writeup which +can be accessed from the home page of this data set. + +Station Sample Weight Flag CO2 concentration + code date code (ppmv) + +MLO 580329 4 0 316.10 +MLO 580405 6 0 317.30 +MLO 580412 4 0 317.60 +MLO 580419 6 0 317.50 +MLO 580426 2 0 316.40 +MLO 580503 6 0 316.90 +MLO 580517 1 0 317.50 +MLO 580524 5 0 317.90 +MLO 580705 2 0 315.80 +MLO 580712 4 0 315.80 +MLO 580719 4 0 315.40 +MLO 580726 7 0 315.50 +MLO 580802 3 0 315.60 +MLO 580809 4 0 315.10 +MLO 580816 3 0 315.00 +MLO 580830 5 0 314.10 +MLO 580906 1 0 313.50 +MLO 581108 4 0 313.00 +MLO 581115 7 0 313.20 +MLO 581122 5 0 313.50 +MLO 581129 7 0 314.00 +MLO 581206 6 0 314.50 +MLO 581213 7 0 314.40 +MLO 581220 4 0 314.70 +MLO 581227 2 0 315.20 +MLO 590103 3 0 315.20 +MLO 590110 7 0 315.50 +MLO 590117 7 0 315.60 +MLO 590124 5 0 315.80 +MLO 590131 2 0 315.40 +MLO 590214 1 0 316.90 +MLO 590221 7 0 316.60 +MLO 590228 3 0 316.60 +MLO 590307 7 0 316.80 +MLO 590321 4 0 316.70 +MLO 590328 6 0 316.70 +MLO 590404 7 0 317.70 +MLO 590411 7 0 317.10 +MLO 590418 6 0 317.60 +MLO 590425 5 0 318.30 +MLO 590502 3 0 318.20 +MLO 590509 1 0 318.70 +MLO 590516 7 0 318.00 +MLO 590523 5 0 318.40 +MLO 590606 7 0 318.50 +MLO 590613 5 0 318.10 +MLO 590620 5 0 317.80 +MLO 590627 2 0 317.70 +MLO 590704 7 0 316.80 +MLO 590711 7 0 316.80 +MLO 590718 5 0 316.40 +MLO 590725 4 0 316.10 +MLO 590801 7 0 315.60 +MLO 590808 3 0 314.90 +MLO 590822 1 0 315.00 +MLO 590829 4 0 314.10 +MLO 590905 5 0 314.40 +MLO 590912 3 0 313.90 +MLO 590919 5 0 313.50 +MLO 590926 4 0 313.50 +MLO 591003 6 0 313.00 +MLO 591010 3 0 313.10 +MLO 591017 7 0 313.40 +MLO 591024 7 0 313.40 +MLO 591031 7 0 314.10 +MLO 591107 2 0 314.40 +MLO 591114 5 0 314.80 +MLO 591121 6 0 315.20 +MLO 591128 5 0 315.10 +MLO 591205 4 0 315.00 +MLO 591212 5 0 315.60 +MLO 591219 6 0 315.80 +MLO 591226 6 0 315.70 +MLO 600102 4 0 315.70 +MLO 600109 5 0 316.40 +MLO 600116 6 0 316.70 +MLO 600123 5 0 316.50 +MLO 600130 6 0 316.60 +MLO 600206 2 0 316.60 +MLO 600213 6 0 316.90 +MLO 600220 4 0 317.40 +MLO 600227 5 0 317.00 +MLO 600305 7 0 316.90 +MLO 600312 7 0 317.70 +MLO 600319 4 0 318.00 +MLO 600326 6 0 317.70 +MLO 600402 5 0 318.60 +MLO 600409 3 0 319.30 +MLO 600416 7 0 319.00 +MLO 600423 7 0 319.00 +MLO 600430 1 0 319.70 +MLO 600507 6 0 319.90 +MLO 600514 5 0 319.80 +MLO 600521 6 0 320.00 +MLO 600528 7 0 320.00 +MLO 600604 3 0 319.40 +MLO 600611 5 0 320.00 +MLO 600618 3 0 319.40 +MLO 600625 2 0 319.00 +MLO 600702 5 0 318.10 +MLO 600709 4 0 318.60 +MLO 600716 5 0 318.40 +MLO 600723 6 0 317.90 +MLO 600730 5 0 317.30 +MLO 600806 3 0 316.60 +MLO 600813 6 0 316.70 +MLO 600820 5 0 315.10 +MLO 600827 5 0 314.70 +MLO 600903 7 0 314.70 +MLO 600910 7 0 314.50 +MLO 600917 6 0 314.20 +MLO 600924 5 0 313.30 +MLO 601001 2 0 313.60 +MLO 601008 4 0 313.30 +MLO 601015 5 0 313.90 +MLO 601022 6 0 314.20 +MLO 601029 3 0 314.20 +MLO 601105 7 0 314.50 +MLO 601112 6 0 315.10 +MLO 601119 7 0 315.10 +MLO 601126 7 0 315.40 +MLO 601203 5 0 315.80 +MLO 601210 7 0 316.00 +MLO 601217 7 0 316.20 +MLO 601224 5 0 316.40 +MLO 601231 7 0 316.60 +MLO 610107 6 0 316.70 +MLO 610114 7 0 317.00 +MLO 610121 7 0 317.00 +MLO 610128 7 0 317.00 +MLO 610204 6 0 317.00 +MLO 610211 6 0 317.70 +MLO 610218 7 0 317.90 +MLO 610225 7 0 318.00 +MLO 610304 5 0 318.00 +MLO 610311 4 0 318.50 +MLO 610318 6 0 318.90 +MLO 610325 7 0 318.70 +MLO 610401 7 0 319.40 +MLO 610408 6 0 319.50 +MLO 610415 7 0 318.90 +MLO 610422 6 0 319.70 +MLO 610429 6 0 319.60 +MLO 610506 7 0 320.60 +MLO 610513 3 0 320.40 +MLO 610520 6 0 320.60 +MLO 610527 7 0 320.30 +MLO 610603 6 0 320.00 +MLO 610610 5 0 320.00 +MLO 610617 7 0 319.60 +MLO 610624 6 0 319.40 +MLO 610701 5 0 319.20 +MLO 610708 6 0 319.00 +MLO 610715 5 0 318.40 +MLO 610722 1 0 317.10 +MLO 610729 3 0 317.90 +MLO 610805 7 0 317.90 +MLO 610812 2 0 317.30 +MLO 610819 5 0 316.70 +MLO 610826 6 0 315.20 +MLO 610902 5 0 315.20 +MLO 610909 5 0 314.90 +MLO 610916 5 0 314.50 +MLO 610923 4 0 315.00 +MLO 610930 4 0 315.60 +MLO 611007 5 0 314.90 +MLO 611014 7 0 315.40 +MLO 611021 7 0 315.40 +MLO 611028 6 0 315.70 +MLO 611104 6 0 315.80 +MLO 611111 5 0 315.70 +MLO 611118 7 0 316.20 +MLO 611125 6 0 316.50 +MLO 611202 5 0 316.50 +MLO 611209 5 0 317.00 +MLO 611216 6 0 316.90 +MLO 611223 3 0 317.10 +MLO 611230 7 0 317.40 +MLO 620106 5 0 317.90 +MLO 620113 7 0 318.10 +MLO 620120 5 0 318.00 +MLO 620127 7 0 317.70 +MLO 620203 7 0 318.00 +MLO 620210 4 0 318.30 +MLO 620217 4 0 318.90 +MLO 620224 1 0 319.30 +MLO 620303 6 0 319.20 +MLO 620310 6 0 319.40 +MLO 620317 7 0 319.90 +MLO 620324 4 0 319.70 +MLO 620331 5 0 320.20 +MLO 620407 3 0 320.20 +MLO 620414 6 0 321.00 +MLO 620421 2 0 320.70 +MLO 620428 5 0 320.30 +MLO 620505 4 0 320.80 +MLO 620512 5 0 320.70 +MLO 620519 5 0 321.00 +MLO 620526 5 0 321.10 +MLO 620602 6 0 320.90 +MLO 620609 5 0 320.80 +MLO 620616 6 0 320.50 +MLO 620623 6 0 320.10 +MLO 620630 7 0 320.20 +MLO 620707 6 0 320.10 +MLO 620714 3 0 319.90 +MLO 620721 2 0 319.00 +MLO 620728 7 0 318.70 +MLO 620804 3 0 318.60 +MLO 620811 6 0 317.20 +MLO 620818 3 0 317.40 +MLO 620915 5 0 316.60 +MLO 620922 4 0 315.70 +MLO 620929 7 0 315.90 +MLO 621006 5 0 315.10 +MLO 621013 4 0 315.40 +MLO 621020 5 0 315.70 +MLO 621027 5 0 315.70 +MLO 621103 5 0 315.90 +MLO 621110 6 0 316.40 +MLO 621117 7 0 316.90 +MLO 621124 7 0 317.00 +MLO 621201 7 0 317.10 +MLO 621208 5 0 317.30 +MLO 621215 7 0 317.60 +MLO 621222 4 0 318.10 +MLO 630105 5 0 318.50 +MLO 630112 7 0 318.70 +MLO 630119 7 0 318.90 +MLO 630126 7 0 318.80 +MLO 630202 7 0 318.70 +MLO 630209 7 0 318.90 +MLO 630223 2 0 319.30 +MLO 630302 5 0 319.30 +MLO 630309 6 0 319.70 +MLO 630316 5 0 319.80 +MLO 630323 7 0 320.30 +MLO 630330 5 0 320.20 +MLO 630406 3 0 320.30 +MLO 630413 6 0 320.90 +MLO 630420 6 0 322.00 +MLO 630427 6 0 321.90 +MLO 630511 3 0 321.90 +MLO 630518 5 0 322.20 +MLO 630525 6 0 322.20 +MLO 630601 3 0 322.30 +MLO 630608 2 0 322.00 +MLO 630615 6 0 321.80 +MLO 630622 4 0 320.80 +MLO 630629 7 0 320.40 +MLO 630706 7 0 320.10 +MLO 630713 5 0 319.80 +MLO 630720 7 0 319.50 +MLO 630727 6 0 319.00 +MLO 630803 3 0 318.60 +MLO 630810 7 0 318.20 +MLO 630817 3 0 317.70 +MLO 630824 7 0 317.10 +MLO 630831 3 0 316.40 +MLO 630907 7 0 316.80 +MLO 630914 7 0 315.90 +MLO 630921 5 0 316.00 +MLO 630928 4 0 315.90 +MLO 631005 3 0 316.20 +MLO 631012 7 0 315.60 +MLO 631019 6 0 316.10 +MLO 631026 7 0 316.30 +MLO 631102 4 0 316.60 +MLO 631109 6 0 316.80 +MLO 631116 1 0 317.10 +MLO 631130 5 0 317.50 +MLO 631207 6 0 318.00 +MLO 631214 4 0 318.20 +MLO 631221 7 0 318.50 +MLO 631228 7 0 318.70 +MLO 640104 6 0 319.00 +MLO 640111 6 0 319.40 +MLO 640118 6 0 319.80 +MLO 640530 2 0 322.00 +MLO 640606 4 0 322.00 +MLO 640627 3 0 321.50 +MLO 640704 4 0 321.10 +MLO 640711 2 0 319.90 +MLO 640718 7 0 320.20 +MLO 640725 5 0 320.00 +MLO 640801 2 0 319.10 +MLO 640815 4 0 318.60 +MLO 640822 6 0 318.20 +MLO 640829 5 0 318.10 +MLO 640905 5 0 317.40 +MLO 640912 4 0 316.50 +MLO 640919 2 0 315.50 +MLO 640926 2 0 317.00 +MLO 641003 4 0 316.90 +MLO 641010 7 0 316.50 +MLO 641017 7 0 316.80 +MLO 641024 2 0 317.00 +MLO 641031 6 0 317.60 +MLO 641107 7 0 317.70 +MLO 641114 7 0 317.60 +MLO 641121 6 0 317.50 +MLO 641128 6 0 318.10 +MLO 641205 6 0 318.40 +MLO 641212 7 0 318.50 +MLO 641219 7 0 318.90 +MLO 641226 6 0 318.90 +MLO 650102 5 0 319.00 +MLO 650109 7 0 319.10 +MLO 650116 7 0 319.10 +MLO 650123 4 0 319.70 +MLO 650130 7 0 320.10 +MLO 650206 7 0 320.20 +MLO 650213 7 0 320.10 +MLO 650220 7 0 320.70 +MLO 650227 6 0 320.80 +MLO 650306 5 0 321.00 +MLO 650313 7 0 320.90 +MLO 650320 7 0 320.40 +MLO 650327 7 0 321.40 +MLO 650403 7 0 321.90 +MLO 650410 4 0 322.20 +MLO 650417 7 0 322.10 +MLO 650424 5 0 321.80 +MLO 650501 7 0 322.40 +MLO 650508 6 0 322.20 +MLO 650515 7 0 321.90 +MLO 650522 7 0 321.60 +MLO 650529 5 0 322.20 +MLO 650605 7 0 321.80 +MLO 650612 7 0 321.70 +MLO 650619 7 0 321.70 +MLO 650626 6 0 321.90 +MLO 650703 7 0 321.90 +MLO 650710 6 0 321.80 +MLO 650717 3 0 321.70 +MLO 650724 6 0 320.40 +MLO 650731 5 0 319.40 +MLO 650807 7 0 319.40 +MLO 650814 5 0 318.00 +MLO 650821 6 0 318.80 +MLO 650828 3 0 318.70 +MLO 650904 7 0 318.30 +MLO 650911 4 0 318.00 +MLO 650918 6 0 318.20 +MLO 650925 6 0 316.80 +MLO 651002 6 0 316.60 +MLO 651009 7 0 317.20 +MLO 651016 7 0 317.80 +MLO 651023 7 0 317.50 +MLO 651030 7 0 317.60 +MLO 651106 7 0 318.30 +MLO 651113 7 0 319.20 +MLO 651120 7 0 318.90 +MLO 651127 7 0 319.10 +MLO 651204 7 0 319.00 +MLO 651211 5 0 319.30 +MLO 651218 6 0 319.30 +MLO 651225 6 0 319.70 +MLO 660101 7 0 319.60 +MLO 660108 7 0 320.40 +MLO 660115 7 0 320.60 +MLO 660122 7 0 321.00 +MLO 660129 7 0 321.10 +MLO 660205 7 0 321.20 +MLO 660212 6 0 321.70 +MLO 660219 7 0 321.60 +MLO 660226 7 0 321.80 +MLO 660305 4 0 322.10 +MLO 660312 5 0 322.10 +MLO 660319 6 0 322.50 +MLO 660326 5 0 322.80 +MLO 660402 7 0 323.50 +MLO 660409 3 0 323.60 +MLO 660416 7 0 323.80 +MLO 660423 4 0 323.90 +MLO 660430 6 0 323.50 +MLO 660507 6 0 324.00 +MLO 660514 7 0 324.10 +MLO 660521 7 0 323.70 +MLO 660528 7 0 324.30 +MLO 660604 7 0 324.00 +MLO 660611 7 0 323.80 +MLO 660618 7 0 323.70 +MLO 660625 6 0 323.30 +MLO 660702 5 0 322.80 +MLO 660709 6 0 322.90 +MLO 660806 4 0 321.30 +MLO 660813 3 0 320.80 +MLO 660820 3 0 319.10 +MLO 660827 7 0 319.60 +MLO 660903 4 0 319.90 +MLO 660910 3 0 318.20 +MLO 660917 7 0 318.40 +MLO 660924 5 0 318.30 +MLO 661001 6 0 317.90 +MLO 661008 7 0 317.90 +MLO 661015 4 0 318.20 +MLO 661022 4 0 318.60 +MLO 661029 6 0 318.30 +MLO 661112 4 0 319.50 +MLO 661119 5 0 320.00 +MLO 661126 6 0 320.20 +MLO 661203 3 0 320.80 +MLO 661210 7 0 320.80 +MLO 661217 5 0 321.10 +MLO 661224 4 0 321.30 +MLO 661231 7 0 321.30 +MLO 670107 6 0 321.90 +MLO 670114 2 0 322.90 +MLO 670204 5 0 322.10 +MLO 670211 5 0 322.20 +MLO 670218 6 0 322.80 +MLO 670225 4 0 322.60 +MLO 670304 6 0 322.90 +MLO 670311 6 0 322.60 +MLO 670318 4 0 323.30 +MLO 670325 2 0 323.20 +MLO 670401 3 0 323.10 +MLO 670408 7 0 324.20 +MLO 670415 5 0 324.40 +MLO 670422 3 0 324.60 +MLO 670429 6 0 325.10 +MLO 670506 1 0 325.20 +MLO 670513 5 0 324.70 +MLO 670520 5 0 325.00 +MLO 670527 5 0 324.90 +MLO 670603 4 0 324.90 +MLO 670610 6 0 324.60 +MLO 670617 4 0 323.30 +MLO 670624 6 0 323.50 +MLO 670701 6 0 322.80 +MLO 670708 7 0 322.80 +MLO 670715 5 0 322.40 +MLO 670722 5 0 322.40 +MLO 670729 6 0 322.00 +MLO 670805 7 0 321.60 +MLO 670812 5 0 321.40 +MLO 670819 5 0 320.40 +MLO 670826 5 0 320.00 +MLO 670902 4 0 320.00 +MLO 670909 6 0 319.40 +MLO 670916 7 0 319.30 +MLO 670923 7 0 319.00 +MLO 670930 7 0 318.80 +MLO 671007 7 0 318.80 +MLO 671014 6 0 319.80 +MLO 671021 7 0 319.40 +MLO 671028 7 0 319.80 +MLO 671104 7 0 320.00 +MLO 671111 7 0 320.30 +MLO 671118 7 0 320.90 +MLO 671125 7 0 321.50 +MLO 671202 7 0 321.40 +MLO 671209 7 0 321.80 +MLO 671216 7 0 322.20 +MLO 671223 7 0 321.90 +MLO 671230 7 0 322.30 +MLO 680106 7 0 322.40 +MLO 680113 7 0 322.50 +MLO 680120 6 0 322.50 +MLO 680127 7 0 322.80 +MLO 680203 7 0 322.60 +MLO 680210 7 0 323.10 +MLO 680217 7 0 323.40 +MLO 680224 7 0 323.10 +MLO 680302 6 0 323.10 +MLO 680309 4 0 323.80 +MLO 680316 6 0 323.80 +MLO 680323 6 0 324.20 +MLO 680330 5 0 324.70 +MLO 680406 7 0 324.70 +MLO 680413 6 0 325.00 +MLO 680420 5 0 324.80 +MLO 680427 7 0 325.40 +MLO 680504 7 0 325.60 +MLO 680511 7 0 325.00 +MLO 680518 6 0 325.50 +MLO 680525 7 0 325.80 +MLO 680601 5 0 325.60 +MLO 680608 7 0 325.70 +MLO 680615 4 0 325.50 +MLO 680622 4 0 324.90 +MLO 680629 5 0 324.60 +MLO 680706 6 0 324.70 +MLO 680713 7 0 324.10 +MLO 680720 7 0 323.90 +MLO 680727 7 0 323.40 +MLO 680803 5 0 322.40 +MLO 680810 5 0 322.20 +MLO 680817 3 0 322.00 +MLO 680824 6 0 321.70 +MLO 680831 6 0 321.40 +MLO 680907 7 0 320.40 +MLO 680914 7 0 321.10 +MLO 680921 7 0 319.70 +MLO 680928 7 0 319.80 +MLO 681005 7 0 320.50 +MLO 681012 6 0 320.50 +MLO 681019 7 0 320.20 +MLO 681026 7 0 319.90 +MLO 681102 5 0 320.70 +MLO 681109 7 0 320.80 +MLO 681116 7 0 321.40 +MLO 681123 7 0 321.70 +MLO 681130 6 0 322.00 +MLO 681207 4 0 322.40 +MLO 681214 7 0 322.90 +MLO 681221 5 0 323.30 +MLO 681228 6 0 323.10 +MLO 690104 6 0 323.30 +MLO 690111 6 0 324.00 +MLO 690118 6 0 324.30 +MLO 690125 7 0 324.10 +MLO 690201 7 0 324.10 +MLO 690208 5 0 323.90 +MLO 690215 5 0 324.30 +MLO 690222 5 0 324.80 +MLO 690301 7 0 325.10 +MLO 690308 7 0 325.50 +MLO 690315 7 0 325.70 +MLO 690322 6 0 325.90 +MLO 690329 7 0 325.80 +MLO 690405 7 0 326.20 +MLO 690412 7 0 327.10 +MLO 690419 6 0 326.50 +MLO 690426 6 0 326.50 +MLO 690503 7 0 327.50 +MLO 690510 7 0 327.80 +MLO 690517 6 0 326.80 +MLO 690524 7 0 326.90 +MLO 690531 5 0 327.40 +MLO 690607 6 0 326.50 +MLO 690614 4 0 326.70 +MLO 690621 5 0 326.70 +MLO 690628 7 0 326.30 +MLO 690705 6 0 326.10 +MLO 690712 7 0 326.00 +MLO 690719 6 0 325.70 +MLO 690726 4 0 325.40 +MLO 690802 5 0 324.50 +MLO 690809 7 0 324.50 +MLO 690816 7 0 323.10 +MLO 690823 5 0 322.50 +MLO 690830 7 0 323.10 +MLO 690906 6 0 322.20 +MLO 690913 6 0 322.70 +MLO 690920 4 0 322.80 +MLO 690927 7 0 321.90 +MLO 691004 7 0 321.50 +MLO 691011 7 0 321.80 +MLO 691018 7 0 322.00 +MLO 691025 7 0 321.90 +MLO 691101 7 0 322.20 +MLO 691108 7 0 322.60 +MLO 691115 7 0 322.70 +MLO 691122 7 0 323.10 +MLO 691129 7 0 323.50 +MLO 691206 7 0 323.90 +MLO 691213 7 0 323.90 +MLO 691220 7 0 324.20 +MLO 691227 7 0 324.50 +MLO 700103 7 0 324.70 +MLO 700110 7 0 325.40 +MLO 700117 7 0 325.00 +MLO 700124 7 0 324.80 +MLO 700131 7 0 325.50 +MLO 700207 7 0 325.70 +MLO 700214 7 0 326.00 +MLO 700221 6 0 326.30 +MLO 700228 7 0 326.10 +MLO 700307 7 0 326.80 +MLO 700314 7 0 326.80 +MLO 700321 7 0 327.50 +MLO 700328 7 0 326.90 +MLO 700404 7 0 328.20 +MLO 700411 7 0 327.80 +MLO 700418 7 0 327.80 +MLO 700425 7 0 328.50 +MLO 700502 7 0 327.90 +MLO 700509 5 0 327.50 +MLO 700516 5 0 328.00 +MLO 700523 7 0 328.30 +MLO 700530 6 0 327.90 +MLO 700606 7 0 327.50 +MLO 700613 7 0 327.80 +MLO 700620 7 0 327.70 +MLO 700627 6 0 327.20 +MLO 700704 6 0 327.20 +MLO 700711 6 0 326.20 +MLO 700718 6 0 326.20 +MLO 700725 7 0 325.60 +MLO 700801 5 0 325.20 +MLO 700808 3 0 325.20 +MLO 700815 6 0 324.80 +MLO 700822 5 0 324.80 +MLO 700829 5 0 323.30 +MLO 700905 7 0 322.90 +MLO 700912 4 0 323.50 +MLO 700919 4 0 323.10 +MLO 700926 5 0 323.10 +MLO 701003 5 0 323.20 +MLO 701010 6 0 323.50 +MLO 701017 4 0 322.90 +MLO 701024 7 0 323.00 +MLO 701031 5 0 323.10 +MLO 701107 7 0 323.60 +MLO 701114 5 0 323.70 +MLO 701121 7 0 324.20 +MLO 701128 7 0 324.70 +MLO 701205 7 0 324.70 +MLO 701212 7 0 325.00 +MLO 701219 7 0 325.20 +MLO 701226 3 0 325.50 +MLO 710102 6 0 325.70 +MLO 710109 7 0 325.80 +MLO 710116 7 0 325.90 +MLO 710123 6 0 326.70 +MLO 710130 7 0 326.60 +MLO 710206 7 0 326.50 +MLO 710213 7 0 326.40 +MLO 710220 7 0 326.70 +MLO 710227 7 0 327.00 +MLO 710306 6 0 327.10 +MLO 710313 6 0 327.30 +MLO 710320 7 0 327.00 +MLO 710327 7 0 327.40 +MLO 710403 6 0 327.40 +MLO 710410 6 0 327.10 +MLO 710417 7 0 327.70 +MLO 710424 7 0 328.50 +MLO 710501 7 0 328.20 +MLO 710508 7 0 329.00 +MLO 710515 7 0 329.20 +MLO 710522 7 0 328.90 +MLO 710529 6 0 328.80 +MLO 710605 6 0 328.50 +MLO 710612 7 0 328.80 +MLO 710619 7 0 328.10 +MLO 710626 7 0 328.50 +MLO 710703 7 0 327.90 +MLO 710710 6 0 327.80 +MLO 710717 7 0 327.50 +MLO 710724 6 0 326.20 +MLO 710731 2 0 326.70 +MLO 710807 7 0 326.10 +MLO 710814 2 0 325.60 +MLO 710821 6 0 325.30 +MLO 710828 6 0 324.00 +MLO 710904 7 0 323.60 +MLO 710911 7 0 323.50 +MLO 710918 4 0 323.20 +MLO 710925 7 0 323.30 +MLO 711002 7 0 323.30 +MLO 711009 1 0 322.90 +MLO 711016 7 0 323.50 +MLO 711023 7 0 323.60 +MLO 711030 7 0 324.40 +MLO 711106 7 0 324.30 +MLO 711113 7 0 324.50 +MLO 711120 7 0 325.00 +MLO 711127 7 0 325.50 +MLO 711204 7 0 325.30 +MLO 711211 7 0 325.90 +MLO 711218 7 0 326.20 +MLO 711225 7 0 326.30 +MLO 720101 6 0 326.60 +MLO 720108 7 0 326.60 +MLO 720115 7 0 326.60 +MLO 720122 7 0 326.60 +MLO 720129 7 0 327.20 +MLO 720205 7 0 327.40 +MLO 720212 7 0 327.90 +MLO 720219 7 0 327.80 +MLO 720226 7 0 327.40 +MLO 720304 7 0 327.50 +MLO 720311 6 0 327.10 +MLO 720318 7 0 327.70 +MLO 720325 4 0 328.60 +MLO 720401 6 0 328.90 +MLO 720408 7 0 329.40 +MLO 720415 7 0 329.80 +MLO 720422 7 0 330.10 +MLO 720429 6 0 330.00 +MLO 720506 7 0 330.00 +MLO 720513 7 0 329.70 +MLO 720520 7 0 330.10 +MLO 720527 7 0 330.20 +MLO 720603 7 0 329.70 +MLO 720610 5 0 329.10 +MLO 720617 7 0 329.00 +MLO 720624 7 0 328.50 +MLO 720701 7 0 328.60 +MLO 720708 7 0 328.30 +MLO 720715 7 0 327.70 +MLO 720722 5 0 328.10 +MLO 720729 5 0 327.50 +MLO 720805 7 0 326.90 +MLO 720812 7 0 326.60 +MLO 720819 7 0 326.50 +MLO 720826 7 0 325.00 +MLO 720902 7 0 325.40 +MLO 720909 7 0 325.70 +MLO 720916 7 0 324.80 +MLO 720923 7 0 324.20 +MLO 720930 6 0 324.20 +MLO 721007 6 0 324.80 +MLO 721014 5 0 325.50 +MLO 721021 7 0 325.10 +MLO 721028 7 0 325.80 +MLO 721104 7 0 326.30 +MLO 721111 6 0 326.10 +MLO 721118 7 0 326.40 +MLO 721125 7 0 326.90 +MLO 721202 7 0 326.90 +MLO 721209 7 0 327.10 +MLO 721216 7 0 327.60 +MLO 721223 6 0 327.90 +MLO 721230 7 0 328.20 +MLO 730106 5 0 328.40 +MLO 730113 7 0 328.40 +MLO 730120 5 0 328.60 +MLO 730127 7 0 328.80 +MLO 730203 6 0 329.10 +MLO 730210 7 0 329.50 +MLO 730217 7 0 329.60 +MLO 730224 7 0 329.70 +MLO 730303 6 0 329.90 +MLO 730310 7 0 330.10 +MLO 730317 5 0 330.50 +MLO 730324 4 0 330.80 +MLO 730331 7 0 330.60 +MLO 730407 7 0 331.20 +MLO 730414 7 0 331.10 +MLO 730421 6 0 331.90 +MLO 730428 4 0 332.10 +MLO 730505 7 0 332.20 +MLO 730512 7 0 332.30 +MLO 730519 7 0 332.60 +MLO 730526 6 0 332.50 +MLO 730602 6 0 332.20 +MLO 730609 7 0 332.50 +MLO 730616 7 0 332.00 +MLO 730623 7 0 331.60 +MLO 730630 4 0 331.40 +MLO 730707 6 0 331.50 +MLO 730714 5 0 331.00 +MLO 730721 5 0 330.00 +MLO 730728 3 0 330.10 +MLO 730804 4 0 330.00 +MLO 730811 5 0 329.50 +MLO 730818 4 0 329.30 +MLO 730825 6 0 328.50 +MLO 730901 5 0 328.40 +MLO 730908 5 0 327.60 +MLO 730915 5 0 327.80 +MLO 730922 5 0 327.10 +MLO 730929 2 0 326.60 +MLO 731006 7 0 327.00 +MLO 731013 4 0 327.40 +MLO 731020 7 0 327.40 +MLO 731027 6 0 327.10 +MLO 731103 4 0 327.50 +MLO 731110 5 0 328.00 +MLO 731117 6 0 328.20 +MLO 731124 5 0 328.50 +MLO 731201 6 0 329.00 +MLO 731208 2 0 328.70 +MLO 731215 7 0 328.60 +MLO 731222 7 0 328.20 +MLO 731229 5 0 328.70 +MLO 740105 7 0 328.90 +MLO 740112 7 0 329.20 +MLO 740119 6 0 329.40 +MLO 740126 6 0 329.80 +MLO 740202 7 0 330.50 +MLO 740209 7 0 330.80 +MLO 740216 7 0 330.60 +MLO 740223 7 0 330.60 +MLO 740302 7 0 330.70 +MLO 740309 6 0 331.20 +MLO 740316 7 0 332.10 +MLO 740323 7 0 332.00 +MLO 740330 7 0 331.50 +MLO 740406 7 0 332.40 +MLO 740413 7 0 332.10 +MLO 740420 7 0 332.90 +MLO 740427 7 0 333.10 +MLO 740504 7 0 332.90 +MLO 740511 7 0 333.00 +MLO 740518 7 0 333.20 +MLO 740525 7 0 332.80 +MLO 740601 7 0 332.90 +MLO 740608 6 0 332.00 +MLO 740615 5 0 332.00 +MLO 740622 6 0 332.20 +MLO 740629 5 0 331.70 +MLO 740706 6 0 331.70 +MLO 740713 7 0 331.20 +MLO 740720 5 0 330.40 +MLO 740727 3 0 331.00 +MLO 740803 6 0 330.00 +MLO 740810 5 0 329.90 +MLO 740817 6 0 329.20 +MLO 740824 6 0 328.90 +MLO 740831 7 0 328.10 +MLO 740907 7 0 328.00 +MLO 740914 7 0 327.30 +MLO 740921 7 0 326.90 +MLO 740928 7 0 327.30 +MLO 741005 6 0 327.30 +MLO 741012 6 0 327.00 +MLO 741019 7 0 327.50 +MLO 741026 7 0 327.70 +MLO 741102 7 0 327.90 +MLO 741109 7 0 328.00 +MLO 741116 6 0 328.80 +MLO 741123 6 0 328.60 +MLO 741130 3 0 328.70 +MLO 741207 2 0 329.50 +MLO 741214 4 0 329.70 +MLO 741221 7 0 329.80 +MLO 741228 7 0 329.70 +MLO 750104 4 0 329.90 +MLO 750111 4 0 329.80 +MLO 750118 4 0 330.20 +MLO 750125 7 0 331.10 +MLO 750201 6 0 331.10 +MLO 750208 7 0 331.40 +MLO 750215 7 0 331.00 +MLO 750222 5 0 331.70 +MLO 750301 7 0 331.80 +MLO 750308 7 0 331.60 +MLO 750315 7 0 331.90 +MLO 750322 7 0 332.20 +MLO 750329 6 0 332.50 +MLO 750405 7 0 333.00 +MLO 750412 6 0 333.50 +MLO 750419 7 0 333.50 +MLO 750426 7 0 333.10 +MLO 750503 7 0 333.90 +MLO 750510 7 0 333.90 +MLO 750517 7 0 333.70 +MLO 750524 7 0 333.70 +MLO 750531 7 0 334.10 +MLO 750607 7 0 333.80 +MLO 750614 6 0 333.30 +MLO 750621 7 0 333.40 +MLO 750628 7 0 333.10 +MLO 750705 5 0 332.70 +MLO 750712 7 0 332.00 +MLO 750719 5 0 331.00 +MLO 750726 6 0 331.50 +MLO 750802 7 0 330.80 +MLO 750809 7 0 330.70 +MLO 750816 5 0 330.30 +MLO 750823 6 0 329.30 +MLO 750830 6 0 328.80 +MLO 750906 6 0 329.40 +MLO 750913 6 0 328.50 +MLO 750920 7 0 328.00 +MLO 750927 6 0 328.20 +MLO 751004 6 0 328.00 +MLO 751011 5 0 328.00 +MLO 751018 6 0 328.50 +MLO 751025 6 0 328.80 +MLO 751101 4 0 329.30 +MLO 751108 6 0 329.20 +MLO 751115 5 0 329.10 +MLO 751122 3 0 329.50 +MLO 751129 5 0 330.10 +MLO 751206 7 0 330.30 +MLO 751213 7 0 330.50 +MLO 751220 5 0 331.10 +MLO 751227 5 0 331.20 +MLO 760103 7 0 331.50 +MLO 760110 7 0 331.50 +MLO 760117 7 0 331.70 +MLO 760124 7 0 331.80 +MLO 760131 5 0 332.20 +MLO 760207 6 0 332.10 +MLO 760214 7 0 332.50 +MLO 760221 6 0 333.20 +MLO 760228 5 0 332.40 +MLO 760306 7 0 332.80 +MLO 760313 7 0 333.60 +MLO 760320 3 0 333.10 +MLO 760327 7 0 334.30 +MLO 760403 7 0 334.70 +MLO 760410 6 0 334.20 +MLO 760417 6 0 334.40 +MLO 760424 6 0 334.50 +MLO 760501 6 0 334.70 +MLO 760508 5 0 334.30 +MLO 760515 7 0 334.60 +MLO 760522 6 0 335.40 +MLO 760529 7 0 334.80 +MLO 760605 7 0 334.30 +MLO 760612 7 0 334.60 +MLO 760619 6 0 334.30 +MLO 760703 6 0 333.60 +MLO 760710 6 0 333.40 +MLO 760717 4 0 332.80 +MLO 760724 7 0 332.40 +MLO 760731 6 0 332.10 +MLO 760807 6 0 331.70 +MLO 760814 6 0 330.60 +MLO 760821 5 0 330.60 +MLO 760828 1 0 330.00 +MLO 760904 5 0 329.70 +MLO 760911 4 0 330.00 +MLO 760918 7 0 329.30 +MLO 760925 5 0 328.40 +MLO 761002 4 0 328.80 +MLO 761009 4 0 329.00 +MLO 761016 3 0 329.60 +MLO 761023 6 0 329.10 +MLO 761030 7 0 329.00 +MLO 761106 5 0 329.80 +MLO 761113 5 0 330.40 +MLO 761120 7 0 330.50 +MLO 761127 7 0 330.70 +MLO 761204 7 0 331.10 +MLO 761211 6 0 331.30 +MLO 761218 6 0 331.90 +MLO 761225 7 0 332.20 +MLO 770101 7 0 332.50 +MLO 770108 7 0 332.40 +MLO 770115 5 0 333.10 +MLO 770122 7 0 333.20 +MLO 770129 5 0 333.20 +MLO 770205 5 0 333.40 +MLO 770212 6 0 333.30 +MLO 770219 7 0 333.40 +MLO 770226 7 0 333.60 +MLO 770305 6 0 334.10 +MLO 770312 7 0 334.60 +MLO 770319 7 0 335.10 +MLO 770326 7 0 335.00 +MLO 770402 7 0 335.50 +MLO 770409 7 0 335.90 +MLO 770416 7 0 336.00 +MLO 770423 7 0 336.10 +MLO 770430 7 0 336.70 +MLO 770507 7 0 336.80 +MLO 770514 7 0 336.40 +MLO 770521 7 0 336.80 +MLO 770528 7 0 336.70 +MLO 770604 7 0 336.40 +MLO 770611 6 0 336.30 +MLO 770618 7 0 336.10 +MLO 770625 7 0 336.00 +MLO 770702 6 0 335.50 +MLO 770709 6 0 335.10 +MLO 770716 4 0 335.10 +MLO 770723 5 0 334.60 +MLO 770730 3 0 333.70 +MLO 770806 7 0 333.00 +MLO 770813 2 0 332.90 +MLO 770820 1 0 332.80 +MLO 770827 2 0 332.80 +MLO 770903 3 0 332.10 +MLO 770910 1 0 331.20 +MLO 770917 2 0 332.10 +MLO 770924 2 0 330.90 +MLO 771001 3 0 330.40 +MLO 771008 5 0 330.90 +MLO 771015 4 0 331.50 +MLO 771022 1 0 331.50 +MLO 771029 2 0 331.70 +MLO 771105 4 0 332.10 +MLO 771112 2 0 332.00 +MLO 771119 2 0 332.50 +MLO 771126 5 0 332.80 +MLO 771203 6 0 333.20 +MLO 771210 6 0 333.50 +MLO 771217 7 0 333.80 +MLO 771224 6 0 334.20 +MLO 771231 7 0 334.60 +MLO 780107 7 0 334.20 +MLO 780114 7 0 334.60 +MLO 780121 7 0 335.40 +MLO 780128 5 0 335.90 +MLO 780204 7 0 335.00 +MLO 780211 6 0 335.10 +MLO 780218 7 0 335.60 +MLO 780225 7 0 335.70 +MLO 780304 7 0 336.20 +MLO 780311 7 0 336.10 +MLO 780318 5 0 336.80 +MLO 780325 7 0 337.30 +MLO 780401 4 0 337.00 +MLO 780408 6 0 337.90 +MLO 780415 6 0 337.90 +MLO 780422 5 0 337.40 +MLO 780429 7 0 338.00 +MLO 780506 6 0 338.00 +MLO 780513 7 0 338.10 +MLO 780520 7 0 337.80 +MLO 780527 7 0 337.90 +MLO 780603 1 0 338.40 +MLO 780610 2 0 338.20 +MLO 780617 4 0 337.80 +MLO 780624 5 0 337.30 +MLO 780701 2 0 337.60 +MLO 780708 6 0 336.70 +MLO 780715 7 0 336.70 +MLO 780722 7 0 335.90 +MLO 780729 6 0 335.60 +MLO 780805 7 0 335.10 +MLO 780812 7 0 334.80 +MLO 780819 2 0 334.40 +MLO 780826 4 0 334.30 +MLO 780902 4 0 333.80 +MLO 780909 4 0 332.80 +MLO 780916 5 0 332.10 +MLO 780923 3 0 332.30 +MLO 780930 6 0 332.70 +MLO 781007 5 0 332.10 +MLO 781014 4 0 332.40 +MLO 781021 4 0 333.00 +MLO 781028 3 0 333.10 +MLO 781104 6 0 333.50 +MLO 781111 5 0 333.80 +MLO 781118 4 0 333.80 +MLO 781125 5 0 334.20 +MLO 781202 2 0 334.50 +MLO 781209 6 0 334.80 +MLO 781216 6 0 335.10 +MLO 781223 6 0 335.10 +MLO 781230 7 0 335.30 +MLO 790106 7 0 335.30 +MLO 790113 6 0 335.90 +MLO 790120 7 0 336.80 +MLO 790127 5 0 336.90 +MLO 790203 6 0 336.90 +MLO 790210 5 0 336.50 +MLO 790217 7 0 336.70 +MLO 790224 7 0 336.70 +MLO 790303 6 0 337.10 +MLO 790310 5 0 337.70 +MLO 790317 4 0 337.40 +MLO 790324 5 0 339.00 +MLO 790331 7 0 338.80 +MLO 790407 4 0 338.10 +MLO 790414 7 0 338.60 +MLO 790421 7 0 339.20 +MLO 790428 6 0 339.60 +MLO 790505 7 0 339.30 +MLO 790512 5 0 338.80 +MLO 790519 5 0 339.80 +MLO 790526 7 0 339.60 +MLO 790602 4 0 339.90 +MLO 790609 6 0 339.50 +MLO 790616 5 0 338.90 +MLO 790623 5 0 338.90 +MLO 790630 2 0 339.00 +MLO 790707 4 0 338.20 +MLO 790714 6 0 337.80 +MLO 790721 6 0 337.30 +MLO 790728 5 0 336.80 +MLO 790804 5 0 337.00 +MLO 790811 7 0 336.50 +MLO 790818 6 0 336.10 +MLO 790825 5 0 334.50 +MLO 790901 7 0 334.40 +MLO 790908 3 0 334.00 +MLO 790915 4 0 334.20 +MLO 790922 5 0 333.20 +MLO 790929 5 0 334.10 +MLO 791006 4 0 334.10 +MLO 791013 6 0 333.90 +MLO 791020 7 0 333.70 +MLO 791027 5 0 334.10 +MLO 791103 6 0 334.70 +MLO 791110 6 0 334.80 +MLO 791117 6 0 335.50 +MLO 791124 5 0 335.60 +MLO 791201 6 0 335.90 +MLO 791208 4 0 336.50 +MLO 791215 6 0 336.70 +MLO 791222 6 0 336.80 +MLO 791229 7 0 337.40 +MLO 800105 7 0 337.60 +MLO 800112 6 0 337.40 +MLO 800119 7 0 338.30 +MLO 800126 7 0 338.40 +MLO 800202 6 0 338.00 +MLO 800209 5 0 338.10 +MLO 800216 7 0 338.60 +MLO 800223 6 0 338.20 +MLO 800301 6 0 339.30 +MLO 800308 6 0 339.50 +MLO 800315 6 0 340.00 +MLO 800322 6 0 340.50 +MLO 800329 7 0 341.00 +MLO 800405 4 0 340.40 +MLO 800412 4 0 340.90 +MLO 800419 6 0 340.70 +MLO 800426 6 0 341.00 +MLO 800503 5 0 341.50 +MLO 800510 6 0 341.30 +MLO 800517 5 0 341.30 +MLO 800524 5 0 340.90 +MLO 800531 7 0 341.70 +MLO 800607 3 0 341.30 +MLO 800614 7 0 341.30 +MLO 800621 6 0 340.80 +MLO 800628 3 0 340.40 +MLO 800705 6 0 340.40 +MLO 800712 5 0 339.70 +MLO 800719 3 0 338.50 +MLO 800726 6 0 338.90 +MLO 800802 6 0 337.90 +MLO 800809 5 0 337.70 +MLO 800816 4 0 337.70 +MLO 800823 3 0 337.70 +MLO 800830 3 0 337.00 +MLO 800906 4 0 336.60 +MLO 800913 4 0 335.70 +MLO 800920 5 0 335.20 +MLO 800927 4 0 336.00 +MLO 801004 4 0 335.80 +MLO 801011 7 0 335.80 +MLO 801018 7 0 336.10 +MLO 801025 5 0 336.40 +MLO 801101 7 0 336.60 +MLO 801108 7 0 336.90 +MLO 801115 6 0 337.10 +MLO 801122 7 0 337.30 +MLO 801129 7 0 337.40 +MLO 801206 4 0 337.70 +MLO 801213 7 0 338.10 +MLO 801220 7 0 338.30 +MLO 801227 7 0 338.70 +MLO 810103 7 0 338.90 +MLO 810110 7 0 339.10 +MLO 810117 7 0 339.30 +MLO 810124 7 0 339.30 +MLO 810131 6 0 339.50 +MLO 810207 7 0 340.50 +MLO 810214 4 0 340.00 +MLO 810221 5 0 340.20 +MLO 810228 6 0 341.10 +MLO 810307 4 0 340.70 +MLO 810314 6 0 341.00 +MLO 810321 5 0 341.80 +MLO 810328 6 0 342.10 +MLO 810404 5 0 342.40 +MLO 810411 6 0 342.40 +MLO 810418 7 0 342.70 +MLO 810425 7 0 342.30 +MLO 810502 7 0 342.90 +MLO 810509 7 0 343.00 +MLO 810516 7 0 342.80 +MLO 810523 7 0 342.70 +MLO 810530 7 0 342.70 +MLO 810606 7 0 342.60 +MLO 810613 7 0 342.50 +MLO 810620 7 0 341.80 +MLO 810627 5 0 341.60 +MLO 810704 5 0 341.00 +MLO 810711 7 0 340.80 +MLO 810718 4 0 339.70 +MLO 810725 4 0 340.20 +MLO 810801 5 0 339.50 +MLO 810808 5 0 338.90 +MLO 810815 6 0 338.40 +MLO 810822 5 0 337.50 +MLO 810829 4 0 337.70 +MLO 810905 7 0 337.20 +MLO 810912 3 0 337.00 +MLO 810919 7 0 336.70 +MLO 810926 5 0 335.90 +MLO 811003 6 0 336.30 +MLO 811010 4 0 336.60 +MLO 811017 7 0 337.10 +MLO 811024 5 0 337.20 +MLO 811031 6 0 337.50 +MLO 811107 6 0 337.80 +MLO 811114 6 0 338.10 +MLO 811121 4 0 338.50 +MLO 811128 6 0 339.30 +MLO 811205 5 0 339.20 +MLO 811212 7 0 339.40 +MLO 811219 6 0 339.60 +MLO 811226 4 0 340.20 +MLO 820102 5 0 340.20 +MLO 820109 7 0 340.30 +MLO 820116 5 0 340.70 +MLO 820123 6 0 341.10 +MLO 820130 7 0 341.20 +MLO 820206 7 0 341.90 +MLO 820213 6 0 341.10 +MLO 820220 4 0 341.10 +MLO 820227 5 0 342.10 +MLO 820306 6 0 342.60 +MLO 820313 4 0 342.60 +MLO 820320 1 0 342.70 +MLO 820327 4 0 342.80 +MLO 820403 6 0 342.90 +MLO 820410 6 0 343.30 +MLO 820417 6 0 343.50 +MLO 820424 5 0 344.20 +MLO 820501 4 0 343.80 +MLO 820508 1 0 343.60 +MLO 820515 3 0 344.20 +MLO 820522 6 0 344.10 +MLO 820529 6 0 344.10 +MLO 820605 6 0 343.40 +MLO 820612 7 0 343.50 +MLO 820619 3 0 343.40 +MLO 820626 4 0 342.90 +MLO 820703 7 0 342.50 +MLO 820710 6 0 342.00 +MLO 820717 5 0 342.00 +MLO 820724 4 0 341.80 +MLO 820731 6 0 341.30 +MLO 820807 6 0 340.50 +MLO 820814 6 0 340.00 +MLO 820821 3 0 339.70 +MLO 820828 5 0 338.30 +MLO 820904 5 0 338.80 +MLO 820911 6 0 338.60 +MLO 820918 2 0 337.80 +MLO 820925 6 0 336.90 +MLO 821002 4 0 337.30 +MLO 821009 5 0 338.00 +MLO 821016 4 0 337.60 +MLO 821023 4 0 337.90 +MLO 821030 5 0 338.70 +MLO 821106 5 0 338.40 +MLO 821113 6 0 339.20 +MLO 821120 6 0 339.70 +MLO 821127 4 0 339.80 +MLO 821204 6 0 339.80 +MLO 821211 5 0 340.40 +MLO 821218 7 0 340.70 +MLO 821225 5 0 340.80 +MLO 830101 5 0 340.90 +MLO 830108 5 0 341.40 +MLO 830115 6 0 341.50 +MLO 830122 7 0 341.20 +MLO 830129 7 0 341.70 +MLO 830205 6 0 342.00 +MLO 830212 7 0 342.70 +MLO 830219 6 0 342.50 +MLO 830226 6 0 342.80 +MLO 830305 7 0 342.30 +MLO 830312 7 0 342.50 +MLO 830319 5 0 344.00 +MLO 830326 5 0 343.80 +MLO 830402 7 0 344.00 +MLO 830409 6 0 344.80 +MLO 830416 7 0 345.00 +MLO 830423 7 0 345.30 +MLO 830430 7 0 345.40 +MLO 830507 5 0 345.40 +MLO 830514 6 0 345.70 +MLO 830521 6 0 345.80 +MLO 830528 7 0 345.70 +MLO 830604 5 0 345.60 +MLO 830611 5 0 345.60 +MLO 830618 7 0 345.00 +MLO 830625 6 0 344.90 +MLO 830702 6 0 344.70 +MLO 830709 4 0 344.50 +MLO 830716 3 0 343.70 +MLO 830723 6 0 343.60 +MLO 830730 4 0 342.60 +MLO 830806 5 0 343.00 +MLO 830813 2 0 341.70 +MLO 830820 3 0 342.10 +MLO 830827 6 0 341.80 +MLO 830903 3 0 339.90 +MLO 830910 5 0 339.90 +MLO 830917 5 0 339.80 +MLO 830924 4 0 339.90 +MLO 831001 6 0 339.80 +MLO 831008 7 0 339.70 +MLO 831015 6 0 340.10 +MLO 831022 6 0 340.20 +MLO 831029 7 0 340.30 +MLO 831105 7 0 340.80 +MLO 831112 7 0 341.00 +MLO 831119 6 0 341.10 +MLO 831126 7 0 341.70 +MLO 831203 6 0 341.80 +MLO 831210 2 0 342.80 +MLO 831217 7 0 343.30 +MLO 831224 7 0 343.60 +MLO 831231 7 0 343.40 +MLO 840107 7 0 343.70 +MLO 840114 5 0 343.40 +MLO 840121 5 0 343.50 +MLO 840128 5 0 344.10 +MLO 840204 5 0 344.30 +MLO 840211 7 0 344.50 +MLO 840218 5 0 344.30 +MLO 840225 6 0 344.60 +MLO 840303 7 0 344.80 +MLO 840310 6 0 344.90 +MLO 840317 6 0 345.40 +MLO 840324 5 0 345.60 +MLO 840428 2 0 347.40 +MLO 840505 6 0 347.40 +MLO 840512 3 0 347.70 +MLO 840519 5 0 347.30 +MLO 840526 5 0 347.00 +MLO 840602 5 0 347.00 +MLO 840609 6 0 347.00 +MLO 840616 3 0 346.80 +MLO 840623 5 0 346.30 +MLO 840630 6 0 346.20 +MLO 840707 4 0 345.80 +MLO 840714 5 0 345.40 +MLO 840721 3 0 345.20 +MLO 840728 6 0 344.40 +MLO 840804 2 0 344.00 +MLO 840811 2 0 344.10 +MLO 840818 5 0 343.10 +MLO 840825 3 0 342.00 +MLO 840901 3 0 341.60 +MLO 840908 6 0 340.60 +MLO 840915 6 0 341.30 +MLO 840922 6 0 341.30 +MLO 840929 3 0 340.80 +MLO 841006 5 0 341.10 +MLO 841013 4 0 341.30 +MLO 841020 1 0 341.90 +MLO 841027 5 0 341.60 +MLO 841103 5 0 342.00 +MLO 841110 6 0 342.60 +MLO 841117 6 0 343.10 +MLO 841124 6 0 343.70 +MLO 841201 4 0 343.60 +MLO 841208 6 0 343.90 +MLO 841215 4 0 344.20 +MLO 841222 5 0 344.50 +MLO 841229 3 0 344.50 +MLO 850105 7 0 344.70 +MLO 850112 6 0 345.00 +MLO 850119 7 0 345.00 +MLO 850126 5 0 345.00 +MLO 850202 5 0 345.90 +MLO 850209 4 0 345.50 +MLO 850216 5 0 345.80 +MLO 850223 5 0 346.30 +MLO 850302 6 0 346.70 +MLO 850309 6 0 347.10 +MLO 850316 7 0 347.50 +MLO 850323 4 0 347.70 +MLO 850330 5 0 348.20 +MLO 850406 7 0 348.00 +MLO 850413 4 0 348.00 +MLO 850420 5 0 348.50 +MLO 850427 4 0 348.80 +MLO 850504 5 0 348.80 +MLO 850511 5 0 349.30 +MLO 850518 7 0 349.10 +MLO 850525 6 0 348.10 +MLO 850601 4 0 349.00 +MLO 850608 7 0 348.40 +MLO 850615 3 0 348.20 +MLO 850622 5 0 347.90 +MLO 850629 6 0 347.40 +MLO 850706 6 0 346.90 +MLO 850713 5 0 346.80 +MLO 850720 3 0 346.40 +MLO 850727 6 0 345.70 +MLO 850810 6 0 344.70 +MLO 850817 3 0 344.50 +MLO 850824 5 0 344.30 +MLO 850831 5 0 343.70 +MLO 850907 5 0 344.20 +MLO 850914 6 0 343.30 +MLO 850921 5 0 342.40 +MLO 850928 5 0 342.10 +MLO 851005 4 0 342.40 +MLO 851012 4 0 342.50 +MLO 851019 7 0 343.10 +MLO 851026 6 0 343.20 +MLO 851102 5 0 343.30 +MLO 851109 5 0 343.70 +MLO 851116 7 0 344.20 +MLO 851123 6 0 344.60 +MLO 851130 6 0 345.30 +MLO 851207 5 0 345.30 +MLO 851214 6 0 345.60 +MLO 851221 6 0 345.10 +MLO 851228 7 0 346.30 +MLO 860104 4 0 346.40 +MLO 860111 7 0 346.00 +MLO 860118 4 0 346.20 +MLO 860125 7 0 346.40 +MLO 860201 6 0 346.20 +MLO 860208 6 0 346.80 +MLO 860215 7 0 347.10 +MLO 860222 7 0 347.20 +MLO 860301 7 0 347.00 +MLO 860308 3 0 346.60 +MLO 860315 6 0 347.20 +MLO 860322 6 0 349.10 +MLO 860329 6 0 348.80 +MLO 860405 7 0 349.20 +MLO 860412 4 0 349.40 +MLO 860419 6 0 349.30 +MLO 860426 6 0 350.20 +MLO 860503 4 0 349.90 +MLO 860510 5 0 350.10 +MLO 860517 5 0 350.20 +MLO 860524 6 0 350.10 +MLO 860531 6 0 350.10 +MLO 860607 4 0 349.70 +MLO 860614 6 0 349.50 +MLO 860621 7 0 349.40 +MLO 860628 7 0 348.90 +MLO 860705 7 0 348.60 +MLO 860712 5 0 347.70 +MLO 860719 6 0 347.60 +MLO 860726 6 0 347.40 +MLO 860802 3 0 346.60 +MLO 860809 5 0 346.20 +MLO 860816 7 0 345.50 +MLO 860823 5 0 345.60 +MLO 860830 4 0 345.20 +MLO 860906 4 0 345.00 +MLO 860913 7 0 345.30 +MLO 860920 5 0 344.40 +MLO 860927 6 0 344.50 +MLO 861004 7 0 343.90 +MLO 861011 7 0 344.10 +MLO 861018 3 0 343.90 +MLO 861025 7 0 344.50 +MLO 861101 6 0 345.10 +MLO 861108 5 0 345.30 +MLO 861115 7 0 345.60 +MLO 861122 6 0 345.70 +MLO 861129 7 0 346.40 +MLO 861206 7 0 346.90 +MLO 861213 7 0 346.70 +MLO 861220 7 0 346.90 +MLO 861227 6 0 347.00 +MLO 870103 6 0 347.60 +MLO 870110 6 0 348.30 +MLO 870117 7 0 348.20 +MLO 870124 5 0 347.90 +MLO 870131 6 0 348.00 +MLO 870207 7 0 347.90 +MLO 870214 6 0 348.20 +MLO 870221 7 0 348.50 +MLO 870228 7 0 349.40 +MLO 870307 7 0 348.80 +MLO 870314 7 0 349.20 +MLO 870321 7 0 349.70 +MLO 870328 7 0 350.20 +MLO 870404 6 0 350.80 +MLO 870411 5 0 350.20 +MLO 870418 7 0 351.10 +MLO 870425 7 0 351.30 +MLO 870502 6 0 351.40 +MLO 870509 7 0 352.00 +MLO 870516 7 0 351.70 +MLO 870523 7 0 351.90 +MLO 870530 7 0 351.70 +MLO 870606 6 0 351.60 +MLO 870613 7 0 351.10 +MLO 870620 6 0 351.00 +MLO 870627 5 0 350.90 +MLO 870704 7 0 349.70 +MLO 870711 7 0 349.80 +MLO 870718 3 0 348.80 +MLO 870725 5 0 349.50 +MLO 870801 4 0 349.00 +MLO 870808 2 0 348.10 +MLO 870815 3 0 348.60 +MLO 870822 5 0 348.00 +MLO 870829 5 0 346.70 +MLO 870905 4 0 347.00 +MLO 870912 6 0 346.60 +MLO 870919 6 0 346.20 +MLO 870926 3 0 345.80 +MLO 871003 4 0 345.70 +MLO 871010 5 0 346.30 +MLO 871017 5 0 346.50 +MLO 871024 7 0 346.80 +MLO 871031 6 0 346.90 +MLO 871107 4 0 347.30 +MLO 871114 7 0 347.60 +MLO 871121 3 0 348.10 +MLO 871128 3 0 348.70 +MLO 871205 5 0 348.60 +MLO 871212 5 0 348.80 +MLO 871219 5 0 349.10 +MLO 871226 5 0 349.20 +MLO 880102 6 0 349.70 +MLO 880109 7 0 350.20 +MLO 880116 5 0 350.20 +MLO 880123 5 0 350.70 +MLO 880130 5 0 351.20 +MLO 880206 4 0 351.80 +MLO 880213 7 0 351.30 +MLO 880220 6 0 351.50 +MLO 880227 7 0 352.50 +MLO 880305 6 0 352.80 +MLO 880312 7 0 351.80 +MLO 880319 4 0 351.70 +MLO 880326 5 0 352.20 +MLO 880402 6 0 353.10 +MLO 880409 7 0 353.50 +MLO 880416 7 0 353.10 +MLO 880423 5 0 354.00 +MLO 880430 4 0 354.20 +MLO 880507 7 0 353.70 +MLO 880514 5 0 354.30 +MLO 880521 6 0 354.50 +MLO 880528 6 0 354.20 +MLO 880604 5 0 354.10 +MLO 880611 6 0 354.20 +MLO 880618 6 0 353.60 +MLO 880625 7 0 353.10 +MLO 880702 4 0 353.00 +MLO 880709 4 0 352.50 +MLO 880716 4 0 352.60 +MLO 880723 5 0 351.90 +MLO 880730 3 0 351.10 +MLO 880806 5 0 350.90 +MLO 880813 3 0 350.30 +MLO 880820 4 0 350.40 +MLO 880827 6 0 349.60 +MLO 880903 5 0 349.30 +MLO 880910 5 0 348.70 +MLO 880917 5 0 348.90 +MLO 880924 4 0 348.10 +MLO 881001 4 0 348.80 +MLO 881008 3 0 348.80 +MLO 881015 7 0 348.60 +MLO 881022 3 0 349.40 +MLO 881029 5 0 349.20 +MLO 881105 7 0 349.70 +MLO 881112 7 0 349.80 +MLO 881119 5 0 350.10 +MLO 881126 7 0 350.40 +MLO 881203 5 0 350.50 +MLO 881210 5 0 351.00 +MLO 881217 4 0 351.60 +MLO 881224 6 0 351.30 +MLO 881231 7 0 352.40 +MLO 890107 7 0 352.70 +MLO 890114 6 0 352.90 +MLO 890121 7 0 352.50 +MLO 890128 7 0 353.00 +MLO 890204 5 0 352.80 +MLO 890211 5 0 352.60 +MLO 890218 6 0 353.20 +MLO 890225 7 0 353.40 +MLO 890304 7 0 353.10 +MLO 890311 6 0 353.40 +MLO 890318 6 0 353.50 +MLO 890325 7 0 354.40 +MLO 890401 7 0 354.50 +MLO 890408 7 0 355.00 +MLO 890415 4 0 355.40 +MLO 890422 7 0 356.00 +MLO 890429 6 0 355.90 +MLO 890506 6 0 355.30 +MLO 890513 5 0 355.80 +MLO 890520 6 0 355.60 +MLO 890527 4 0 355.70 +MLO 890603 6 0 355.80 +MLO 890610 6 0 355.00 +MLO 890617 7 0 354.80 +MLO 890624 5 0 354.90 +MLO 890701 6 0 354.50 +MLO 890708 4 0 354.70 +MLO 890715 7 0 353.80 +MLO 890722 6 0 353.10 +MLO 890729 6 0 353.20 +MLO 890805 6 0 352.60 +MLO 890812 6 0 352.20 +MLO 890819 5 0 351.10 +MLO 890826 5 0 350.40 +MLO 890902 7 0 350.70 +MLO 890909 5 0 350.20 +MLO 890916 6 0 349.40 +MLO 890923 7 0 349.30 +MLO 890930 1 0 349.70 +MLO 891007 6 0 349.90 +MLO 891014 6 0 349.70 +MLO 891021 6 0 350.20 +MLO 891028 7 0 350.40 +MLO 891104 7 0 350.60 +MLO 891111 6 0 351.20 +MLO 891118 7 0 351.60 +MLO 891125 5 0 351.40 +MLO 891202 6 0 352.00 +MLO 891209 4 0 352.10 +MLO 891216 6 0 352.40 +MLO 891223 5 0 352.50 +MLO 891230 4 0 353.40 +MLO 900106 7 0 353.40 +MLO 900113 7 0 353.50 +MLO 900120 7 0 353.80 +MLO 900127 7 0 353.90 +MLO 900203 7 0 354.10 +MLO 900210 5 0 355.00 +MLO 900217 7 0 354.80 +MLO 900224 7 0 354.70 +MLO 900303 3 0 355.70 +MLO 900310 5 0 354.90 +MLO 900317 7 0 355.80 +MLO 900324 6 0 355.10 +MLO 900331 6 0 355.90 +MLO 900407 7 0 356.10 +MLO 900414 7 0 355.90 +MLO 900421 6 0 356.60 +MLO 900428 4 0 356.10 +MLO 900505 5 0 357.30 +MLO 900512 5 0 357.00 +MLO 900519 7 0 356.90 +MLO 900526 6 0 357.10 +MLO 900602 6 0 357.00 +MLO 900609 7 0 356.60 +MLO 900616 5 0 355.60 +MLO 900623 7 0 355.50 +MLO 900630 7 0 355.70 +MLO 900707 7 0 355.50 +MLO 900714 7 0 354.00 +MLO 900721 6 0 354.50 +MLO 900728 5 0 354.70 +MLO 900804 5 0 353.50 +MLO 900811 5 0 353.20 +MLO 900818 7 0 352.90 +MLO 900825 5 0 352.00 +MLO 900901 4 0 350.90 +MLO 900908 3 0 350.70 +MLO 900915 6 0 351.30 +MLO 900922 6 0 350.90 +MLO 900929 3 0 350.90 +MLO 901006 2 0 351.10 +MLO 901013 7 0 351.00 +MLO 901020 4 0 351.40 +MLO 901027 3 0 351.40 +MLO 901103 5 0 352.10 +MLO 901110 7 0 352.60 +MLO 901117 6 0 353.00 +MLO 901124 5 0 353.10 +MLO 901201 7 0 353.60 +MLO 901208 6 0 354.00 +MLO 901215 6 0 353.80 +MLO 901222 7 0 354.50 +MLO 901229 6 0 354.80 +MLO 910105 7 0 354.20 +MLO 910112 7 0 354.70 +MLO 910119 6 0 354.80 +MLO 910126 7 0 355.00 +MLO 910202 7 0 355.20 +MLO 910209 6 0 355.20 +MLO 910216 7 0 356.40 +MLO 910223 6 0 355.80 +MLO 910302 7 0 356.40 +MLO 910309 7 0 357.20 +MLO 910316 6 0 357.60 +MLO 910323 7 0 356.90 +MLO 910330 5 0 357.90 +MLO 910406 7 0 358.30 +MLO 910413 7 0 357.80 +MLO 910420 6 0 359.10 +MLO 910427 7 0 359.20 +MLO 910504 7 0 359.10 +MLO 910511 7 0 358.90 +MLO 910518 7 0 360.00 +MLO 910525 7 0 359.00 +MLO 910601 7 0 358.50 +MLO 910608 6 0 358.40 +MLO 910615 6 0 358.20 +MLO 910622 5 0 358.10 +MLO 910629 5 0 357.70 +MLO 910706 6 0 357.20 +MLO 910713 5 0 356.50 +MLO 910720 7 0 355.20 +MLO 910727 5 0 355.30 +MLO 910803 4 0 354.80 +MLO 910810 5 0 354.60 +MLO 910817 5 0 353.70 +MLO 910824 7 0 353.00 +MLO 910831 6 0 353.20 +MLO 910907 4 0 353.00 +MLO 910914 7 0 352.10 +MLO 910921 6 0 351.80 +MLO 910928 5 0 351.60 +MLO 911005 7 0 351.70 +MLO 911012 6 0 352.10 +MLO 911019 6 0 352.50 +MLO 911026 7 0 352.70 +MLO 911102 6 0 353.40 +MLO 911109 7 0 353.70 +MLO 911116 7 0 353.50 +MLO 911123 7 0 353.80 +MLO 911130 7 0 354.30 +MLO 911207 4 0 354.50 +MLO 911214 7 0 354.90 +MLO 911221 6 0 355.20 +MLO 911228 6 0 355.50 +MLO 920104 6 0 355.60 +MLO 920111 7 0 356.00 +MLO 920118 4 0 356.10 +MLO 920125 7 0 355.90 +MLO 920201 5 0 356.00 +MLO 920208 7 0 356.70 +MLO 920215 6 0 357.30 +MLO 920222 4 0 356.90 +MLO 920229 7 0 356.50 +MLO 920307 7 0 357.30 +MLO 920314 5 0 357.80 +MLO 920321 6 0 358.10 +MLO 920328 6 0 358.40 +MLO 920404 7 0 358.50 +MLO 920411 5 0 358.90 +MLO 920418 5 0 359.70 +MLO 920425 6 0 359.20 +MLO 920502 7 0 359.60 +MLO 920509 7 0 359.70 +MLO 920516 7 0 358.60 +MLO 920523 7 0 359.60 +MLO 920530 7 0 360.20 +MLO 920606 7 0 360.00 +MLO 920613 4 0 359.40 +MLO 920620 7 0 358.70 +MLO 920627 7 0 358.40 +MLO 920704 5 0 358.40 +MLO 920711 5 0 357.20 +MLO 920718 5 0 356.30 +MLO 920725 5 0 356.10 +MLO 920801 2 0 354.90 +MLO 920808 6 0 355.30 +MLO 920815 6 0 355.30 +MLO 920822 4 0 354.50 +MLO 920829 3 0 354.30 +MLO 920905 5 0 353.50 +MLO 920912 6 0 353.60 +MLO 920919 7 0 352.30 +MLO 920926 7 0 352.70 +MLO 921003 6 0 353.60 +MLO 921010 5 0 353.30 +MLO 921017 7 0 353.20 +MLO 921024 7 0 353.50 +MLO 921031 7 0 353.50 +MLO 921107 7 0 353.90 +MLO 921114 6 0 353.80 +MLO 921121 7 0 354.50 +MLO 921128 7 0 354.60 +MLO 921205 7 0 354.80 +MLO 921212 7 0 355.30 +MLO 921219 7 0 355.40 +MLO 921226 6 0 355.90 +MLO 930102 6 0 356.20 +MLO 930109 5 0 356.90 +MLO 930116 6 0 356.70 +MLO 930123 6 0 356.60 +MLO 930130 7 0 357.00 +MLO 930206 7 0 356.60 +MLO 930213 7 0 357.20 +MLO 930220 7 0 357.30 +MLO 930227 5 0 357.60 +MLO 930306 6 0 358.30 +MLO 930313 5 0 358.50 +MLO 930320 7 0 358.10 +MLO 930327 4 0 358.80 +MLO 930403 7 0 359.10 +MLO 930410 6 0 358.80 +MLO 930417 7 0 359.40 +MLO 930424 7 0 360.00 +MLO 930501 6 0 359.60 +MLO 930508 7 0 359.70 +MLO 930515 6 0 360.70 +MLO 930522 6 0 360.60 +MLO 930529 7 0 360.30 +MLO 930605 7 0 359.70 +MLO 930612 7 0 359.90 +MLO 930619 7 0 359.30 +MLO 930626 6 0 359.10 +MLO 930703 6 0 357.90 +MLO 930710 7 0 358.00 +MLO 930717 4 0 358.10 +MLO 930724 5 0 356.60 +MLO 930731 5 0 356.50 +MLO 930807 6 0 355.80 +MLO 930814 5 0 355.90 +MLO 930821 4 0 354.90 +MLO 930828 4 0 354.70 +MLO 930904 1 0 354.30 +MLO 930911 6 0 353.20 +MLO 930918 6 0 353.80 +MLO 930925 6 0 353.80 +MLO 931002 5 0 353.80 +MLO 931009 6 0 353.80 +MLO 931016 6 0 354.00 +MLO 931023 6 0 354.40 +MLO 931030 7 0 354.30 +MLO 931106 6 0 354.70 +MLO 931113 7 0 355.10 +MLO 931120 7 0 355.60 +MLO 931127 7 0 356.00 +MLO 931204 6 0 356.20 +MLO 931211 7 0 356.50 +MLO 931218 7 0 356.90 +MLO 931225 2 0 357.50 +MLO 940101 6 0 358.10 +MLO 940108 6 0 358.10 +MLO 940115 7 0 358.40 +MLO 940122 7 0 358.30 +MLO 940129 7 0 358.70 +MLO 940205 5 0 358.40 +MLO 940212 6 0 358.60 +MLO 940219 7 0 359.00 +MLO 940226 5 0 359.60 +MLO 940305 6 0 358.70 +MLO 940312 7 0 359.80 +MLO 940319 7 0 360.40 +MLO 940326 6 0 360.80 +MLO 940402 7 0 360.60 +MLO 940409 7 0 361.00 +MLO 940416 7 0 361.00 +MLO 940423 5 0 361.30 +MLO 940430 6 0 362.20 +MLO 940507 5 0 361.60 +MLO 940514 6 0 361.40 +MLO 940521 2 0 361.70 +MLO 940528 4 0 361.90 +MLO 940604 6 0 361.00 +MLO 940611 6 0 361.00 +MLO 940618 6 0 360.90 +MLO 940625 6 0 360.70 +MLO 940702 6 0 360.20 +MLO 940709 7 0 359.90 +MLO 940716 7 0 359.40 +MLO 940723 7 0 359.00 +MLO 940730 5 0 358.80 +MLO 940806 6 0 358.10 +MLO 940813 1 0 357.50 +MLO 940820 4 0 357.60 +MLO 940827 6 0 356.30 +MLO 940903 7 0 356.40 +MLO 940910 6 0 356.40 +MLO 940917 7 0 355.40 +MLO 940924 7 0 355.50 +MLO 941001 7 0 355.40 +MLO 941008 7 0 355.80 +MLO 941015 7 0 356.00 +MLO 941022 7 0 356.30 +MLO 941029 7 0 356.60 +MLO 941105 7 0 356.90 +MLO 941112 5 0 357.40 +MLO 941119 7 0 357.90 +MLO 941126 7 0 358.10 +MLO 941203 7 0 358.40 +MLO 941210 7 0 359.10 +MLO 941217 7 0 359.20 +MLO 941224 7 0 359.10 +MLO 941231 7 0 359.50 +MLO 950107 4 0 359.60 +MLO 950114 7 0 360.20 +MLO 950121 6 0 360.10 +MLO 950128 7 0 360.00 +MLO 950204 6 0 360.60 +MLO 950211 6 0 361.00 +MLO 950218 7 0 360.80 +MLO 950225 7 0 361.30 +MLO 950304 6 0 362.20 +MLO 950311 7 0 361.20 +MLO 950318 5 0 360.90 +MLO 950325 5 0 362.00 +MLO 950401 7 0 363.80 +MLO 950408 7 0 363.40 +MLO 950415 7 0 363.30 +MLO 950422 7 0 362.80 +MLO 950429 6 0 363.50 +MLO 950506 7 0 363.20 +MLO 950513 7 0 364.10 +MLO 950520 7 0 364.10 +MLO 950527 7 0 363.40 +MLO 950603 6 0 363.90 +MLO 950610 7 0 363.40 +MLO 950617 6 0 362.90 +MLO 950624 7 0 362.80 +MLO 950701 6 0 362.50 +MLO 950708 5 0 362.20 +MLO 950715 6 0 361.90 +MLO 950722 6 0 361.50 +MLO 950729 7 0 360.90 +MLO 950805 7 0 360.40 +MLO 950812 5 0 359.20 +MLO 950819 7 0 358.70 +MLO 950826 6 0 359.20 +MLO 950902 4 0 357.30 +MLO 950909 7 0 358.50 +MLO 950916 6 0 358.50 +MLO 950923 6 0 358.20 +MLO 950930 7 0 357.50 +MLO 951007 7 0 357.60 +MLO 951014 7 0 357.60 +MLO 951021 7 0 358.00 +MLO 951028 6 0 358.20 +MLO 951104 6 0 359.10 +MLO 951111 6 0 359.40 +MLO 951118 7 0 359.60 +MLO 951125 7 0 359.80 +MLO 951202 7 0 360.10 +MLO 951209 7 0 360.40 +MLO 951216 7 0 360.50 +MLO 951223 6 0 360.80 +MLO 951230 5 0 361.70 +MLO 960106 7 0 361.80 +MLO 960113 7 0 362.00 +MLO 960120 7 0 362.10 +MLO 960127 4 0 362.20 +MLO 960203 7 0 362.60 +MLO 960210 7 0 363.10 +MLO 960217 7 0 363.00 +MLO 960224 7 0 364.00 +MLO 960302 6 0 363.80 +MLO 960309 7 0 363.60 +MLO 960316 7 0 364.10 +MLO 960323 6 0 364.50 +MLO 960330 7 0 364.30 +MLO 960406 7 0 364.50 +MLO 960413 7 0 364.80 +MLO 960420 7 0 364.40 +MLO 960427 7 0 365.10 +MLO 960504 7 0 364.90 +MLO 960511 6 0 365.30 +MLO 960518 7 0 365.70 +MLO 960525 7 0 365.40 +MLO 960601 7 0 364.80 +MLO 960608 5 0 365.10 +MLO 960615 7 0 365.20 +MLO 960622 7 0 365.00 +MLO 960629 7 0 364.30 +MLO 960706 7 0 364.10 +MLO 960713 7 0 363.70 +MLO 960720 7 0 363.30 +MLO 960727 7 0 362.80 +MLO 960803 7 0 361.70 +MLO 960810 6 0 362.10 +MLO 960817 7 0 361.20 +MLO 960824 7 0 360.80 +MLO 960831 7 0 360.80 +MLO 960907 4 0 359.80 +MLO 960914 6 0 359.80 +MLO 960921 7 0 359.00 +MLO 960928 6 0 359.00 +MLO 961005 7 0 359.40 +MLO 961012 5 0 359.50 +MLO 961019 4 0 359.80 +MLO 961026 6 0 359.80 +MLO 961102 4 0 359.90 +MLO 961109 7 0 360.50 +MLO 961116 5 0 360.70 +MLO 961123 7 0 361.20 +MLO 961130 4 0 361.40 +MLO 961207 6 0 361.90 +MLO 961214 5 0 362.60 +MLO 961221 7 0 362.40 +MLO 961228 7 0 362.60 +MLO 970104 7 0 362.90 +MLO 970111 7 0 363.00 +MLO 970118 5 0 363.10 +MLO 970125 7 0 363.50 +MLO 970201 7 0 363.20 +MLO 970208 6 0 364.10 +MLO 970215 6 0 364.00 +MLO 970222 5 0 364.20 +MLO 970301 4 0 364.50 +MLO 970308 4 0 364.10 +MLO 970315 7 0 364.10 +MLO 970322 6 0 364.70 +MLO 970329 7 0 365.40 +MLO 970405 7 0 365.80 +MLO 970412 6 0 366.20 +MLO 970419 3 0 366.60 +MLO 970426 6 0 366.70 +MLO 970503 7 0 366.70 +MLO 970510 7 0 366.80 +MLO 970517 7 0 367.00 +MLO 970524 6 0 366.60 +MLO 970531 6 0 366.30 +MLO 970607 7 0 365.70 +MLO 970614 5 0 365.60 +MLO 970621 7 0 365.50 +MLO 970628 6 0 365.10 +MLO 970705 7 0 365.00 +MLO 970712 7 0 364.60 +MLO 970719 6 0 364.10 +MLO 970726 7 0 363.80 +MLO 970802 5 0 363.30 +MLO 970809 4 0 363.30 +MLO 970816 4 0 362.60 +MLO 970823 7 0 361.50 +MLO 970830 6 0 361.60 +MLO 970906 7 0 360.60 +MLO 970913 7 0 360.20 +MLO 970920 7 0 360.00 +MLO 970927 7 0 359.80 +MLO 971004 7 0 360.50 +MLO 971011 7 0 360.40 +MLO 971018 7 0 361.00 +MLO 971025 6 0 361.10 +MLO 971101 7 0 361.70 +MLO 971108 7 0 362.10 +MLO 971115 7 0 362.00 +MLO 971122 6 0 362.60 +MLO 971129 7 0 363.50 +MLO 971206 7 0 363.90 +MLO 971213 6 0 363.90 +MLO 971220 7 0 364.20 +MLO 971227 7 0 365.00 +MLO 980103 6 0 365.20 +MLO 980110 7 0 365.30 +MLO 980117 7 0 365.30 +MLO 980124 7 0 365.30 +MLO 980131 7 0 365.60 +MLO 980207 7 0 366.00 +MLO 980214 7 0 365.50 +MLO 980221 3 0 366.00 +MLO 980228 5 0 367.30 +MLO 980307 7 0 367.00 +MLO 980314 7 0 366.60 +MLO 980321 7 0 367.40 +MLO 980328 7 0 368.50 +MLO 980404 7 0 368.60 +MLO 980411 6 0 368.60 +MLO 980418 7 0 368.00 +MLO 980425 7 0 368.90 +MLO 980502 6 0 369.10 +MLO 980509 4 0 368.80 +MLO 980516 6 0 368.50 +MLO 980523 7 0 369.60 +MLO 980530 7 0 369.70 +MLO 980606 6 0 369.40 +MLO 980613 7 0 368.80 +MLO 980620 6 0 368.50 +MLO 980627 6 0 368.30 +MLO 980704 6 0 368.00 +MLO 980711 7 0 367.50 +MLO 980718 5 0 367.60 +MLO 980725 7 0 367.30 +MLO 980801 7 0 366.80 +MLO 980808 6 0 366.40 +MLO 980815 6 0 365.60 +MLO 980822 3 0 365.60 +MLO 980829 4 0 364.20 +MLO 980905 7 0 364.70 +MLO 980912 7 0 363.90 +MLO 980919 7 0 363.50 +MLO 980926 7 0 363.60 +MLO 981003 7 0 364.00 +MLO 981010 7 0 364.10 +MLO 981017 7 0 364.40 +MLO 981024 7 0 364.40 +MLO 981031 6 0 364.70 +MLO 981107 7 0 365.00 +MLO 981114 7 0 365.40 +MLO 981121 7 0 365.80 +MLO 981128 7 0 366.00 +MLO 981205 7 0 366.40 +MLO 981212 6 0 366.70 +MLO 981219 7 0 367.30 +MLO 981226 7 0 367.30 +MLO 990102 7 0 367.50 +MLO 990109 7 0 367.80 +MLO 990116 7 0 367.80 +MLO 990123 7 0 368.30 +MLO 990130 7 0 369.20 +MLO 990206 7 0 369.10 +MLO 990213 7 0 368.80 +MLO 990220 7 0 369.00 +MLO 990227 7 0 368.50 +MLO 990306 7 0 368.10 +MLO 990313 7 0 369.50 +MLO 990320 7 0 370.20 +MLO 990327 7 0 370.60 +MLO 990403 7 0 371.10 +MLO 990410 7 0 371.50 +MLO 990417 7 0 371.00 +MLO 990424 6 0 370.30 +MLO 990501 6 0 370.80 +MLO 990508 7 0 371.30 +MLO 990515 6 0 371.00 +MLO 990522 4 0 370.80 +MLO 990529 6 0 370.30 +MLO 990605 6 0 370.90 +MLO 990612 7 0 370.30 +MLO 990619 7 0 369.90 +MLO 990626 7 0 369.90 +MLO 990703 5 0 369.40 +MLO 990710 7 0 370.10 +MLO 990717 7 0 369.50 +MLO 990724 6 0 368.60 +MLO 990731 6 0 367.40 +MLO 990807 7 0 367.60 +MLO 990814 6 0 366.70 +MLO 990821 7 0 366.40 +MLO 990828 7 0 366.10 +MLO 990904 7 0 364.10 +MLO 990911 7 0 364.70 +MLO 990918 6 0 365.20 +MLO 990925 7 0 364.70 +MLO 991002 7 0 364.50 +MLO 991009 6 0 365.00 +MLO 991016 7 0 364.90 +MLO 991023 7 0 365.60 +MLO 991030 7 0 365.70 +MLO 991106 7 0 366.20 +MLO 991113 7 0 366.70 +MLO 991120 5 0 366.60 +MLO 991127 7 0 367.10 +MLO 991204 7 0 367.40 +MLO 991211 7 0 368.00 +MLO 991218 7 0 368.00 +MLO 991225 7 0 368.20 +MLO 000101 7 0 368.60 +MLO 000108 7 0 368.50 +MLO 000115 6 0 369.00 +MLO 000122 5 0 369.80 +MLO 000129 6 0 369.20 +MLO 000205 5 0 369.10 +MLO 000212 7 0 369.60 +MLO 000219 7 0 369.30 +MLO 000226 7 0 369.50 +MLO 000304 6 0 370.00 +MLO 000311 7 0 370.00 +MLO 000318 7 0 370.90 +MLO 000325 7 0 370.70 +MLO 000401 7 0 370.90 +MLO 000408 6 0 371.70 +MLO 000415 6 0 371.80 +MLO 000422 7 0 372.00 +MLO 000429 7 0 371.30 +MLO 000506 7 0 371.20 +MLO 000513 7 0 371.70 +MLO 000520 7 0 371.90 +MLO 000527 7 0 371.80 +MLO 000603 6 0 371.90 +MLO 000610 7 0 371.60 +MLO 000617 7 0 371.70 +MLO 000624 4 0 371.30 +MLO 000701 7 0 370.80 +MLO 000708 6 0 370.00 +MLO 000715 7 0 370.20 +MLO 000722 7 0 369.70 +MLO 000729 6 0 369.00 +MLO 000805 6 0 368.70 +MLO 000812 7 0 368.30 +MLO 000819 5 0 367.70 +MLO 000826 6 0 367.10 +MLO 000902 7 0 367.20 +MLO 000909 4 0 366.70 +MLO 000916 4 0 366.20 +MLO 000923 7 0 366.20 +MLO 000930 7 0 366.40 +MLO 001007 7 0 366.30 +MLO 001014 7 0 366.60 +MLO 001021 7 0 366.70 +MLO 001028 7 0 367.30 +MLO 001104 6 0 367.60 +MLO 001111 7 0 368.00 +MLO 001118 7 0 368.60 +MLO 001125 7 0 368.30 +MLO 001202 5 0 369.00 +MLO 001209 6 0 369.60 +MLO 001216 6 0 369.30 +MLO 001223 7 0 369.50 +MLO 001230 7 0 369.80 +MLO 010106 6 0 369.80 +MLO 010113 4 0 370.20 +MLO 010120 7 0 369.90 +MLO 010127 7 0 370.80 +MLO 010203 6 0 371.30 +MLO 010210 7 0 371.10 +MLO 010217 7 0 371.70 +MLO 010224 7 0 371.20 +MLO 010303 6 0 372.20 +MLO 010310 7 0 372.20 +MLO 010317 6 0 372.10 +MLO 010324 6 0 371.80 +MLO 010331 6 0 372.00 +MLO 010407 7 0 372.70 +MLO 010414 7 0 372.70 +MLO 010421 7 0 373.00 +MLO 010428 7 0 372.70 +MLO 010505 5 0 373.70 +MLO 010512 7 0 373.90 +MLO 010519 5 0 373.70 +MLO 010526 7 0 373.90 +MLO 010602 6 0 373.80 +MLO 010609 7 0 373.10 +MLO 010616 7 0 372.80 +MLO 010623 7 0 372.90 +MLO 010630 6 0 372.70 +MLO 010707 4 0 372.10 +MLO 010714 7 0 371.30 +MLO 010721 4 0 371.20 +MLO 010728 6 0 370.60 +MLO 010804 6 0 369.90 +MLO 010811 7 0 369.50 +MLO 010818 6 0 369.30 +MLO 010825 7 0 369.00 +MLO 010901 6 0 368.40 +MLO 010908 7 0 368.20 +MLO 010915 7 0 368.00 +MLO 010922 7 0 367.40 +MLO 010929 7 0 367.40 +MLO 011006 7 0 367.80 +MLO 011013 7 0 367.60 +MLO 011020 7 0 368.10 +MLO 011027 6 0 368.70 +MLO 011103 7 0 368.70 +MLO 011110 3 0 368.80 +MLO 011117 7 0 369.70 +MLO 011124 7 0 370.30 +MLO 011201 7 0 370.30 +MLO 011208 7 0 370.80 +MLO 011215 7 0 371.20 +MLO 011222 6 0 371.30 +MLO 011229 6 0 371.50 diff --git a/statsmodels/datasets/committee/R_committee.s b/statsmodels/datasets/committee/R_committee.s new file mode 100644 index 0000000..a75c0de --- /dev/null +++ b/statsmodels/datasets/committee/R_committee.s @@ -0,0 +1,11 @@ +### SETUP ### +d <- read.table("./committee.csv",sep=",", header=T) +attach(d) + +LNSTAFF <- log(STAFF) +SUBS.LNSTAFF <- SUBS*LNSTAFF +library(MASS) +#m1 <- glm.nb(BILLS104 ~ SIZE + SUBS + LNSTAFF + PRESTIGE + BILLS103 + SUBS.LNSTAFF) +m1 <- glm(BILLS104 ~ SIZE + SUBS + LNSTAFF + PRESTIGE + BILLS103 + SUBS.LNSTAFF, family=negative.binomial(1)) # Disp should be 1 by default + +results <- summary.glm(m1) diff --git a/statsmodels/datasets/committee/__init__.py b/statsmodels/datasets/committee/__init__.py new file mode 100644 index 0000000..df22d8b --- /dev/null +++ b/statsmodels/datasets/committee/__init__.py @@ -0,0 +1 @@ +from .data import * diff --git a/statsmodels/datasets/committee/committee.csv b/statsmodels/datasets/committee/committee.csv new file mode 100644 index 0000000..40a9eaf --- /dev/null +++ b/statsmodels/datasets/committee/committee.csv @@ -0,0 +1,21 @@ +"COMMITTEE","BILLS104","SIZE","SUBS","STAFF","PRESTIGE","BILLS103" +"Appropriations",6,58,13,109,1,9 +"Budget",23,42,0,39,1,101 +"Rules",44,13,2,25,1,54 +"Ways_and_Means",355,39,5,23,1,542 +"Banking",125,51,5,61,0,101 +"Economic_Educ_Oppor",131,43,5,69,0,158 +"Commerce",271,49,4,79,0,196 +"International_Relations",63,44,3,68,0,40 +"Government_Reform",149,51,7,99,0,72 +"Judiciary",253,35,5,56,0,168 +"Agriculture",81,49,5,46,0,60 +"National_Security",89,55,7,48,0,75 +"Resources",142,44,5,58,0,98 +"TransInfrastructure",155,61,6,74,0,69 +"Science",27,50,4,58,0,25 +"Small_Business",8,43,4,29,0,9 +"Veterans_Affairs",28,33,3,36,0,41 +"House_Oversight",68,12,0,24,0,233 +"Stds_of_Conduct",1,10,0,9,0,0 +"Intelligence",4,16,2,24,0,2 diff --git a/statsmodels/datasets/committee/data.py b/statsmodels/datasets/committee/data.py new file mode 100644 index 0000000..49d29bd --- /dev/null +++ b/statsmodels/datasets/committee/data.py @@ -0,0 +1,72 @@ +"""First 100 days of the US House of Representatives 1995""" + +__docformat__ = 'restructuredtext' + +COPYRIGHT = """Used with express permission from the original author, +who retains all rights.""" +TITLE = __doc__ +SOURCE = """ +Jeff Gill's `Generalized Linear Models: A Unifited Approach` + +http://jgill.wustl.edu/research/books.html +""" + +DESCRSHORT = """Number of bill assignments in the 104th House in 1995""" + +DESCRLONG = """The example in Gill, seeks to explain the number of bill +assignments in the first 100 days of the US' 104th House of Representatives. +The response variable is the number of bill assignments in the first 100 days +over 20 Committees. The explanatory variables in the example are the number of +assignments in the first 100 days of the 103rd House, the number of members on +the committee, the number of subcommittees, the log of the number of staff +assigned to the committee, a dummy variable indicating whether +the committee is a high prestige committee, and an interaction term between +the number of subcommittees and the log of the staff size. + +The data returned by load are not cleaned to represent the above example. +""" + +NOTE = """:: + + Number of Observations - 20 + Number of Variables - 6 + Variable name definitions:: + + BILLS104 - Number of bill assignments in the first 100 days of the + 104th House of Representatives. + SIZE - Number of members on the committee. + SUBS - Number of subcommittees. + STAFF - Number of staff members assigned to the committee. + PRESTIGE - PRESTIGE == 1 is a high prestige committee. + BILLS103 - Number of bill assignments in the first 100 days of the + 103rd House of Representatives. + + Committee names are included as a variable in the data file though not + returned by load. +""" + +from numpy import recfromtxt, column_stack, array +from statsmodels.datasets import utils as du +from os.path import dirname, abspath + +def load(): + """Load the committee data and returns a data class. + + Returns + -------- + Dataset instance: + See DATASET_PROPOSAL.txt for more information. + """ + data = _get_data() + return du.process_recarray(data, endog_idx=0, dtype=float) + +def load_pandas(): + data = _get_data() + return du.process_recarray_pandas(data, endog_idx=0, dtype=float) + +def _get_data(): + filepath = dirname(abspath(__file__)) + with open(filepath + '/committee.csv', 'rb') as f: + data = recfromtxt(f, delimiter=",", + names=True, dtype=float, usecols=(1,2,3,4,5,6)) + return data diff --git a/statsmodels/datasets/committee/src/committee.dat b/statsmodels/datasets/committee/src/committee.dat new file mode 100644 index 0000000..4f94593 --- /dev/null +++ b/statsmodels/datasets/committee/src/committee.dat @@ -0,0 +1,21 @@ + SIZE SUBS STAFF PRESTIGE POLICY CONSTIT SERVICE BILLS103 BILLS104 +Appropriations 58 13 109 1 0 0 0 9 6 +Budget 42 0 39 1 0 0 0 101 23 +Rules 13 2 25 1 0 0 0 54 44 +Ways_and_Means 39 5 23 1 0 0 0 542 355 +Banking 51 5 61 0 1 0 0 101 125 +Economic_Educ_Oppor 43 5 69 0 1 0 0 158 131 +Commerce 49 4 79 0 1 0 0 196 271 +International_Relations 44 3 68 0 1 0 0 40 63 +Government_Reform 51 7 99 0 1 0 0 72 149 +Judiciary 35 5 56 0 1 0 0 168 253 +Agriculture 49 5 46 0 0 1 0 60 81 +National_Security 55 7 48 0 0 1 0 75 89 +Resources 44 5 58 0 0 1 0 98 142 +TransInfrastructure 61 6 74 0 0 1 0 69 155 +Science 50 4 58 0 0 1 0 25 27 +Small_Business 43 4 29 0 0 1 0 9 8 +Veterans_Affairs 33 3 36 0 0 1 0 41 28 +House_Oversight 12 0 24 0 0 0 1 233 68 +Stds_of_Conduct 10 0 9 0 0 0 1 0 1 +Intelligence 16 2 24 0 0 0 1 2 4 diff --git a/statsmodels/datasets/copper/__init__.py b/statsmodels/datasets/copper/__init__.py new file mode 100644 index 0000000..df22d8b --- /dev/null +++ b/statsmodels/datasets/copper/__init__.py @@ -0,0 +1 @@ +from .data import * diff --git a/statsmodels/datasets/copper/copper.csv b/statsmodels/datasets/copper/copper.csv new file mode 100644 index 0000000..9347f3c --- /dev/null +++ b/statsmodels/datasets/copper/copper.csv @@ -0,0 +1,26 @@ +"YEAR","WORLDCONSUMPTION","COPPERPRICE","INCOMEINDEX","ALUMPRICE","INVENTORYINDEX","TIME" +1951,3173,26.56,0.7,19.76,0.98,1 +1952,3281.1,27.31,0.71,20.78,1.04,2 +1953,3135.7,32.95,0.72,22.55,1.05,3 +1954,3359.1,33.9,0.7,23.06,0.97,4 +1955,3755.1,42.7,0.74,24.93,1.02,5 +1956,3875.9,46.11,0.74,26.5,1.04,6 +1957,3905.7,31.7,0.74,27.24,0.98,7 +1958,3957.6,27.23,0.72,26.21,0.98,8 +1959,4279.1,32.89,0.75,26.09,1.03,9 +1960,4627.9,33.78,0.77,27.4,1.03,10 +1961,4910.2,31.66,0.76,26.94,0.98,11 +1962,4908.4,32.28,0.79,25.18,1,12 +1963,5327.9,32.38,0.83,23.94,0.97,13 +1964,5878.4,33.75,0.85,25.07,1.03,14 +1965,6075.2,36.25,0.89,25.37,1.08,15 +1966,6312.7,36.24,0.93,24.55,1.05,16 +1967,6056.8,38.23,0.95,24.98,1.03,17 +1968,6375.9,40.83,0.99,24.96,1.03,18 +1969,6974.3,44.62,1,25.52,0.99,19 +1970,7101.6,52.27,1,26.01,1,20 +1971,7071.7,45.16,1.02,25.46,0.96,21 +1972,7754.8,42.5,1.07,22.17,0.97,22 +1973,8480.3,43.7,1.12,18.56,0.98,23 +1974,8105.2,47.88,1.1,21.32,1.01,24 +1975,7157.2,36.33,1.07,22.75,0.94,25 diff --git a/statsmodels/datasets/copper/data.py b/statsmodels/datasets/copper/data.py new file mode 100644 index 0000000..d3b59db --- /dev/null +++ b/statsmodels/datasets/copper/data.py @@ -0,0 +1,75 @@ +"""World Copper Prices 1951-1975 dataset.""" + +__docformat__ = 'restructuredtext' + +COPYRIGHT = """Used with express permission from the original author, +who retains all rights.""" +TITLE = "World Copper Market 1951-1975 Dataset" +SOURCE = """ +Jeff Gill's `Generalized Linear Models: A Unified Approach` + +http://jgill.wustl.edu/research/books.html +""" + +DESCRSHORT = """World Copper Market 1951-1975""" + +DESCRLONG = """This data describes the world copper market from 1951 through 1975. In an +example, in Gill, the outcome variable (of a 2 stage estimation) is the world +consumption of copper for the 25 years. The explanatory variables are the +world consumption of copper in 1000 metric tons, the constant dollar adjusted +price of copper, the price of a substitute, aluminum, an index of real per +capita income base 1970, an annual measure of manufacturer inventory change, +and a time trend. +""" + +NOTE = """ +Number of Observations - 25 + +Number of Variables - 6 + +Variable name definitions:: + + WORLDCONSUMPTION - World consumption of copper (in 1000 metric tons) + COPPERPRICE - Constant dollar adjusted price of copper + INCOMEINDEX - An index of real per capita income (base 1970) + ALUMPRICE - The price of aluminum + INVENTORYINDEX - A measure of annual manufacturer inventory trend + TIME - A time trend + +Years are included in the data file though not returned by load. +""" + +from numpy import recfromtxt, column_stack, array +from statsmodels.datasets import utils as du +from os.path import dirname, abspath + +def load(): + """ + Load the copper data and returns a Dataset class. + + Returns + -------- + Dataset instance: + See DATASET_PROPOSAL.txt for more information. + """ + data = _get_data() + return du.process_recarray(data, endog_idx=0, dtype=float) + +def _get_data(): + filepath = dirname(abspath(__file__)) + with open(filepath + '/copper.csv', 'rb') as f: + data = recfromtxt(f, delimiter=",", + names=True, dtype=float, usecols=(1,2,3,4,5,6)) + return data + +def load_pandas(): + """ + Load the copper data and returns a Dataset class. + + Returns + -------- + Dataset instance: + See DATASET_PROPOSAL.txt for more information. + """ + data = _get_data() + return du.process_recarray_pandas(data, endog_idx=0, dtype=float) diff --git a/statsmodels/datasets/copper/src/copper.dat b/statsmodels/datasets/copper/src/copper.dat new file mode 100644 index 0000000..594f452 --- /dev/null +++ b/statsmodels/datasets/copper/src/copper.dat @@ -0,0 +1,26 @@ +YEAR WORLDCONSUMPTION COPPERPRICE INCOMEINDEX ALUMPRICE INVENTORYINDEX TIME +1951 3173.0 26.56 0.70 19.76 0.97679 1 +1952 3281.1 27.31 0.71 20.78 1.03937 2 +1953 3135.7 32.95 0.72 22.55 1.05153 3 +1954 3359.1 33.90 0.70 23.06 0.97312 4 +1955 3755.1 42.70 0.74 24.93 1.02349 5 +1956 3875.9 46.11 0.74 26.50 1.04135 6 +1957 3905.7 31.70 0.74 27.24 0.97686 7 +1958 3957.6 27.23 0.72 26.21 0.98069 8 +1959 4279.1 32.89 0.75 26.09 1.02888 9 +1960 4627.9 33.78 0.77 27.40 1.03392 10 +1961 4910.2 31.66 0.76 26.94 0.97922 11 +1962 4908.4 32.28 0.79 25.18 0.99679 12 +1963 5327.9 32.38 0.83 23.94 0.96630 13 +1964 5878.4 33.75 0.85 25.07 1.02915 14 +1965 6075.2 36.25 0.89 25.37 1.07950 15 +1966 6312.7 36.24 0.93 24.55 1.05073 16 +1967 6056.8 38.23 0.95 24.98 1.02788 17 +1968 6375.9 40.83 0.99 24.96 1.02799 18 +1969 6974.3 44.62 1.00 25.52 0.99151 19 +1970 7101.6 52.27 1.00 26.01 1.00191 20 +1971 7071.7 45.16 1.02 25.46 0.95644 21 +1972 7754.8 42.50 1.07 22.17 0.96947 22 +1973 8480.3 43.70 1.12 18.56 0.98220 23 +1974 8105.2 47.88 1.10 21.32 1.00793 24 +1975 7157.2 36.33 1.07 22.75 0.93810 25 diff --git a/statsmodels/datasets/cpunish/R_cpunish.s b/statsmodels/datasets/cpunish/R_cpunish.s new file mode 100644 index 0000000..077bd7d --- /dev/null +++ b/statsmodels/datasets/cpunish/R_cpunish.s @@ -0,0 +1,15 @@ +### SETUP ### +d <- read.table("./cpunish.csv",sep=",", header=T) +attach(d) +LN_VC100k96 = log(VC100k96) +### MODEL ### +m1 <- glm(EXECUTIONS ~ INCOME + PERPOVERTY + PERBLACK + LN_VC100k96 + SOUTH + DEGREE, + family=poisson) +results <- summary.glm(m1) +results +results['coefficients'] + +# Model with exposure +m2 <- glm(EXECUTIONS ~ INCOME + PERPOVERTY + PERBLACK + LN_VC100k96 + SOUTH + DEGREE, + family=poisson, offset=rep(log(100), length(EXECUTIONS))) +results2 <- summary.glm(m2) diff --git a/statsmodels/datasets/cpunish/__init__.py b/statsmodels/datasets/cpunish/__init__.py new file mode 100644 index 0000000..df22d8b --- /dev/null +++ b/statsmodels/datasets/cpunish/__init__.py @@ -0,0 +1 @@ +from .data import * diff --git a/statsmodels/datasets/cpunish/cpunish.csv b/statsmodels/datasets/cpunish/cpunish.csv new file mode 100644 index 0000000..6e9e90d --- /dev/null +++ b/statsmodels/datasets/cpunish/cpunish.csv @@ -0,0 +1,18 @@ +"STATE","EXECUTIONS","INCOME","PERPOVERTY","PERBLACK","VC100k96","SOUTH","DEGREE" +"Texas",37,34453,16.7,12.2,644,1,0.16 +"Virginia",9,41534,12.5,20,351,1,0.27 +"Missouri",6,35802,10.6,11.2,591,0,0.21 +"Arkansas",4,26954,18.4,16.1,524,1,0.16 +"Alabama",3,31468,14.8,25.9,565,1,0.19 +"Arizona",2,32552,18.8,3.5,632,0,0.25 +"Illinois",2,40873,11.6,15.3,886,0,0.25 +"South_Carolina",2,34861,13.1,30.1,997,1,0.21 +"Colorado",1,42562,9.4,4.3,405,0,0.31 +"Florida",1,31900,14.3,15.4,1051,1,0.24 +"Indiana",1,37421,8.2,8.2,537,0,0.19 +"Kentucky",1,33305,16.4,7.2,321,0,0.16 +"Louisiana",1,32108,18.4,32.1,929,1,0.18 +"Maryland",1,45844,9.3,27.4,931,0,0.29 +"Nebraska",1,34743,10,4,435,0,0.24 +"Oklahoma",1,29709,15.2,7.7,597,0,0.21 +"Oregon",1,36777,11.7,1.8,463,0,0.25 diff --git a/statsmodels/datasets/cpunish/data.py b/statsmodels/datasets/cpunish/data.py new file mode 100644 index 0000000..e64ee9a --- /dev/null +++ b/statsmodels/datasets/cpunish/data.py @@ -0,0 +1,78 @@ +"""US Capital Punishment dataset.""" + +__docformat__ = 'restructuredtext' + +COPYRIGHT = """Used with express permission from the original author, +who retains all rights.""" +TITLE = __doc__ +SOURCE = """ +Jeff Gill's `Generalized Linear Models: A Unified Approach` + +http://jgill.wustl.edu/research/books.html +""" + +DESCRSHORT = """Number of state executions in 1997""" + +DESCRLONG = """This data describes the number of times capital punishment is implemented +at the state level for the year 1997. The outcome variable is the number of +executions. There were executions in 17 states. +Included in the data are explanatory variables for median per capita income +in dollars, the percent of the population classified as living in poverty, +the percent of Black citizens in the population, the rate of violent +crimes per 100,000 residents for 1996, a dummy variable indicating +whether the state is in the South, and (an estimate of) the proportion +of the population with a college degree of some kind. +""" + +NOTE = """:: + + Number of Observations - 17 + Number of Variables - 7 + Variable name definitions:: + + EXECUTIONS - Executions in 1996 + INCOME - Median per capita income in 1996 dollars + PERPOVERTY - Percent of the population classified as living in poverty + PERBLACK - Percent of black citizens in the population + VC100k96 - Rate of violent crimes per 100,00 residents for 1996 + SOUTH - SOUTH == 1 indicates a state in the South + DEGREE - An esimate of the proportion of the state population with a + college degree of some kind + + State names are included in the data file, though not returned by load. +""" + +from numpy import recfromtxt, column_stack, array +from statsmodels.datasets import utils as du +from os.path import dirname, abspath + +def load(): + """ + Load the cpunish data and return a Dataset class. + + Returns + ------- + Dataset instance: + See DATASET_PROPOSAL.txt for more information. + """ + data = _get_data() + return du.process_recarray(data, endog_idx=0, dtype=float) + +def load_pandas(): + """ + Load the cpunish data and return a Dataset class. + + Returns + ------- + Dataset instance: + See DATASET_PROPOSAL.txt for more information. + """ + data = _get_data() + return du.process_recarray_pandas(data, endog_idx=0, dtype=float) + +def _get_data(): + filepath = dirname(abspath(__file__)) + with open(filepath + '/cpunish.csv', 'rb') as f: + data = recfromtxt(f, delimiter=",", + names=True, dtype=float, usecols=(1,2,3,4,5,6,7)) + return data diff --git a/statsmodels/datasets/cpunish/src/cpunish.dat b/statsmodels/datasets/cpunish/src/cpunish.dat new file mode 100644 index 0000000..4bcf841 --- /dev/null +++ b/statsmodels/datasets/cpunish/src/cpunish.dat @@ -0,0 +1,18 @@ +STATE EXECUTIONS INCOME PERPOVERTY PERBLACK VC100k96 SOUTH <9thGRADE 9thTO12th HSOREQUIV SOMECOLL AADEGREE BACHELORS GRAD/PROF +Texas 37 34453 16.7 12.2 644 1 1492112 1924831 3153187 2777973 598956 530849 673250 +Virginia 9 41534 12.5 20.0 351 1 461475 669851 1297714 969191 244488 676710 363602 +Missouri 6 35802 10.6 11.2 591 0 391097 578440 1251550 785555 170146 420521 204294 +Arkansas 4 26954 18.4 16.1 524 1 234071 328690 571252 323016 62246 143038 67144 +Alabama 3 31468 14.8 25.9 565 1 362434 597455 875703 575123 146228 281466 142177 +Arizona 2 32552 18.8 3.5 632 0 224662 368279 708340 724228 173801 325575 161560 +Illinois 2 40873 11.6 15.3 886 0 786815 1203134 2531465 1817238 490791 1101193 552145 +South_Carolina 2 34861 13.1 30.1 997 1 303694 479916 776053 466145 152671 267365 118811 +Colorado 1 42562 9.4 4.3 405 0 124477 270560 654510 630445 161331 402917 190168 +Florida 1 31900 14.3 15.4 1051 1 883820 1706839 3045682 2054574 682005 1133053 567453 +Indiana 1 37421 8.2 8.2 537 0 310403 673362 1530741 775605 212379 360087 224057 +Kentucky 1 33305 16.4 7.2 321 0 456107 467956 881795 476362 108409 209055 129994 +Louisiana 1 32108 18.4 32.1 929 1 391630 534570 951832 586477 94409 288154 143624 +Maryland 1 45844 9.3 27.4 931 0 257518 514788 1044976 744604 182465 532883 342012 +Nebraska 1 34743 10.0 4.0 435 0 81690 124792 388540 272981 80956 141231 59008 +Oklahoma 1 29709 15.2 7.7 597 0 201228 375155 706003 539511 113434 253635 119774 +Oregon 1 36777 11.7 1.8 463 0 122513 283409 613983 561176 139269 267161 130403 diff --git a/statsmodels/datasets/elnino/__init__.py b/statsmodels/datasets/elnino/__init__.py new file mode 100644 index 0000000..df22d8b --- /dev/null +++ b/statsmodels/datasets/elnino/__init__.py @@ -0,0 +1 @@ +from .data import * diff --git a/statsmodels/datasets/elnino/data.py b/statsmodels/datasets/elnino/data.py new file mode 100644 index 0000000..35b0bcc --- /dev/null +++ b/statsmodels/datasets/elnino/data.py @@ -0,0 +1,74 @@ +"""El Nino dataset, 1950 - 2010""" + +__docformat__ = 'restructuredtext' + +COPYRIGHT = """This data is in the public domain.""" + +TITLE = """El Nino - Sea Surface Temperatures""" + +SOURCE = """ +National Oceanic and Atmospheric Administration's National Weather Service + +ERSST.V3B dataset, Nino 1+2 +http://www.cpc.ncep.noaa.gov/data/indices/ +""" + +DESCRSHORT = """Averaged monthly sea surface temperature - Pacific Ocean.""" + +DESCRLONG = """This data contains the averaged monthly sea surface +temperature in degrees Celcius of the Pacific Ocean, between 0-10 degrees South +and 90-80 degrees West, from 1950 to 2010. This dataset was obtained from +NOAA. +""" + +NOTE = """:: + + Number of Observations - 61 x 12 + + Number of Variables - 1 + + Variable name definitions:: + + TEMPERATURE - average sea surface temperature in degrees Celcius + (12 columns, one per month). +""" + + +from numpy import recfromtxt, column_stack, array +from pandas import DataFrame + +from statsmodels.datasets.utils import Dataset +from os.path import dirname, abspath + + +def load(): + """ + Load the El Nino data and return a Dataset class. + + Returns + ------- + Dataset instance: + See DATASET_PROPOSAL.txt for more information. + + Notes + ----- + The elnino Dataset instance does not contain endog and exog attributes. + """ + data = _get_data() + names = data.dtype.names + dataset = Dataset(data=data, names=names) + return dataset + + +def load_pandas(): + dataset = load() + dataset.data = DataFrame(dataset.data) + return dataset + + +def _get_data(): + filepath = dirname(abspath(__file__)) + with open(filepath + '/elnino.csv', 'rb') as f: + data = recfromtxt(f, delimiter=",", + names=True, dtype=float) + return data diff --git a/statsmodels/datasets/elnino/elnino.csv b/statsmodels/datasets/elnino/elnino.csv new file mode 100644 index 0000000..c692bc9 --- /dev/null +++ b/statsmodels/datasets/elnino/elnino.csv @@ -0,0 +1,62 @@ +"YEAR","JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC" +1950,23.110,24.200,25.370,23.860,23.030,21.570,20.630,20.150,19.670,20.030,20.020,21.800 +1951,24.190,25.280,25.600,25.370,24.790,24.690,23.860,22.320,21.440,21.770,22.330,22.890 +1952,24.520,26.210,26.370,24.730,23.710,22.340,20.890,20.020,19.630,20.400,20.770,22.390 +1953,24.150,26.340,27.360,27.030,25.470,23.490,22.200,21.450,21.250,20.950,21.600,22.440 +1954,23.020,25.000,25.330,22.970,21.730,20.770,19.520,19.330,18.950,19.110,20.270,21.300 +1955,23.750,24.820,25.140,24.220,22.160,21.200,20.460,19.630,19.240,19.160,19.840,21.190 +1956,23.240,24.710,25.900,24.660,23.140,22.040,21.470,20.550,19.890,19.690,20.570,21.580 +1957,23.130,26.300,27.630,27.150,26.720,25.040,23.830,22.340,21.800,21.800,22.390,23.690 +1958,24.890,26.550,27.090,26.370,24.710,23.230,22.310,20.720,20.620,21.050,21.520,22.500 +1959,23.970,25.900,26.940,25.840,24.230,22.570,21.500,20.150,20.230,20.860,21.880,22.550 +1960,24.400,25.590,26.010,24.660,23.530,21.830,20.730,20.100,20.560,20.270,20.930,22.740 +1961,24.580,26.660,25.950,25.170,23.600,22.360,20.520,19.970,19.700,20.070,21.090,22.110 +1962,24.020,25.350,24.470,23.430,23.030,21.810,20.600,20.170,20.020,20.140,20.990,21.820 +1963,23.810,25.360,26.020,24.670,23.970,22.410,21.800,21.310,21.000,21.130,21.640,22.550 +1964,24.150,25.080,25.300,24.610,21.930,21.440,20.250,19.480,19.670,19.790,20.880,21.830 +1965,24.220,26.170,26.710,27.010,26.090,24.600,23.260,22.540,21.260,21.570,22.290,23.350 +1966,25.150,25.880,25.350,24.260,22.920,21.800,20.850,20.170,20.040,20.510,21.030,22.250 +1967,23.660,25.540,25.550,24.980,23.770,22.040,21.100,19.840,19.080,19.470,20.200,21.280 +1968,23.190,24.880,25.110,23.970,22.440,21.700,21.250,20.970,21.230,21.120,21.680,23.200 +1969,24.670,25.560,27.090,26.660,26.070,24.390,22.470,21.060,20.880,21.740,22.470,23.600 +1970,25.020,25.760,25.530,24.760,22.940,21.270,19.690,19.270,19.500,20.160,20.610,21.770 +1971,23.330,24.580,25.240,24.950,23.290,21.600,21.010,19.970,19.740,19.880,20.940,21.990 +1972,24.510,26.660,27.090,26.250,25.470,25.010,24.110,23.420,22.120,22.580,23.320,24.890 +1973,26.030,26.480,26.270,24.870,23.440,21.760,20.840,19.470,19.490,19.800,20.710,21.740 +1974,23.290,24.870,25.690,25.280,24.350,22.480,21.580,20.730,20.150,19.880,20.680,21.410 +1975,23.550,24.950,26.060,25.530,23.710,21.840,21.050,19.970,19.140,19.170,19.440,21.050 +1976,23.510,25.360,25.880,25.720,25.110,24.460,23.300,21.910,21.560,21.690,22.140,23.290 +1977,24.930,25.790,26.130,25.290,23.880,22.700,21.630,20.250,19.820,20.610,21.290,22.470 +1978,24.320,25.770,25.390,24.730,23.150,21.890,21.010,19.660,19.980,20.220,21.620,22.940 +1979,24.710,25.600,25.930,25.580,24.520,23.280,21.790,21.050,21.150,21.430,21.950,22.970 +1980,24.350,25.730,26.460,25.710,24.460,22.880,21.260,20.570,20.450,20.430,21.230,22.340 +1981,22.980,24.900,25.940,24.890,23.900,22.570,21.100,20.030,20.090,20.580,21.260,22.600 +1982,24.360,25.420,25.400,24.960,24.210,23.350,22.500,21.890,22.040,22.880,24.570,25.890 +1983,27.250,28.230,28.850,28.820,28.370,27.430,25.730,23.880,22.260,22.220,22.210,23.190 +1984,24.320,25.120,25.750,25.400,23.580,22.300,21.530,20.640,20.730,20.620,21.700,22.470 +1985,23.840,24.830,25.600,24.280,22.670,21.840,20.750,19.900,19.860,20.260,20.970,22.490 +1986,24.310,25.900,25.780,24.860,23.350,22.030,21.640,21.070,21.130,21.460,22.170,23.530 +1987,25.600,27.020,27.890,26.950,25.960,24.040,23.000,21.920,22.000,22.540,22.840,23.510 +1988,24.760,25.740,25.710,24.680,23.180,21.660,20.590,19.630,19.440,19.830,20.960,22.250 +1989,24.360,26.020,26.210,25.540,23.360,22.140,21.270,20.860,20.170,20.520,21.440,22.610 +1990,24.220,26.170,26.150,25.150,24.140,22.760,21.360,20.700,20.280,20.400,21.190,22.290 +1991,23.990,25.590,26.310,25.150,24.440,23.280,22.390,21.390,21.220,21.730,22.400,23.750 +1992,25.020,26.620,27.720,27.580,26.440,23.860,21.840,20.870,20.850,21.150,21.840,22.790 +1993,24.680,26.460,27.070,26.840,25.600,24.110,22.610,21.650,21.110,21.710,22.070,22.860 +1994,24.560,25.890,25.750,24.490,23.520,22.310,21.170,20.220,20.650,22.040,22.270,23.750 +1995,25.480,26.250,26.090,24.320,23.370,22.430,21.420,20.460,20.500,20.620,21.490,22.030 +1996,23.810,25.520,26.280,24.000,23.110,21.660,20.720,20.230,20.430,20.520,20.770,21.680 +1997,23.700,26.080,27.170,26.740,26.770,26.150,25.590,24.950,24.690,24.640,25.850,27.080 +1998,28.120,28.820,29.240,28.450,27.360,25.190,23.610,22.270,21.310,21.370,21.600,22.810 +1999,24.230,25.730,26.470,24.530,23.640,22.090,21.360,20.670,20.080,20.460,20.620,22.420 +2000,24.010,25.380,25.670,25.530,24.270,22.930,21.470,20.070,20.640,20.900,20.670,22.080 +2001,24.240,26.110,26.890,25.990,23.980,22.710,21.480,20.240,19.730,20.140,20.680,21.730 +2002,24.090,26.230,27.390,26.440,25.290,23.280,21.640,21.320,21.420,21.850,22.850,24.050 +2003,25.010,26.270,26.910,25.410,23.240,22.150,21.500,21.250,20.750,21.700,22.330,23.600 +2004,25.090,26.470,26.120,25.270,23.440,22.540,21.260,20.790,20.830,21.560,22.880,23.390 +2005,24.610,25.090,25.230,25.210,24.310,22.600,21.610,20.470,20.000,19.890,20.610,22.200 +2006,24.760,26.520,26.220,24.290,23.840,22.820,22.200,21.890,21.930,22.460,22.610,24.150 +2007,25.820,26.810,26.410,24.960,23.050,21.610,21.050,19.950,19.850,19.310,19.820,21.150 +2008,24.240,26.390,26.910,25.680,24.430,23.190,23.020,22.140,21.600,21.390,21.540,22.730 +2009,24.390,25.530,25.480,25.840,24.950,24.090,23.090,22.030,21.480,21.640,21.990,23.210 +2010,24.700,26.160,26.540,26.040,24.750,23.260,21.110,19.490,19.280,19.730,20.440,22.070 diff --git a/statsmodels/datasets/elnino/src/elnino.dat b/statsmodels/datasets/elnino/src/elnino.dat new file mode 100644 index 0000000..28c4035 --- /dev/null +++ b/statsmodels/datasets/elnino/src/elnino.dat @@ -0,0 +1,733 @@ + YR MON NINO1+2 ANOM NINO3 ANOM NINO4 ANOM NINO3.4 ANOM +1950 1 23.11 -1.42 23.74 -1.91 27.03 -1.12 24.83 -1.72 +1950 2 24.20 -1.71 24.92 -1.45 27.15 -0.92 25.20 -1.53 +1950 3 25.37 -1.00 26.33 -0.80 27.06 -1.11 26.03 -1.20 +1950 4 23.86 -1.71 26.46 -0.97 27.29 -1.10 26.36 -1.30 +1950 5 23.03 -1.39 25.72 -1.38 27.59 -1.10 26.19 -1.58 +1950 6 21.57 -1.50 25.55 -0.92 27.97 -0.70 26.52 -1.01 +1950 7 20.63 -1.34 24.97 -0.68 27.83 -0.78 26.42 -0.69 +1950 8 20.15 -0.86 24.61 -0.45 27.72 -0.78 25.98 -0.77 +1950 9 19.67 -1.10 24.22 -0.72 27.66 -0.85 25.78 -0.92 +1950 10 20.03 -1.04 24.39 -0.56 27.44 -1.07 25.96 -0.68 +1950 11 20.02 -1.72 24.00 -1.05 27.35 -1.11 25.64 -0.96 +1950 12 21.80 -1.11 24.30 -0.91 27.30 -1.05 25.50 -1.07 +1951 1 24.19 -0.35 25.00 -0.65 27.36 -0.79 25.46 -1.09 +1951 2 25.28 -0.64 25.80 -0.57 27.27 -0.80 25.78 -0.96 +1951 3 25.60 -0.78 26.91 -0.22 27.96 -0.21 26.72 -0.51 +1951 4 25.37 -0.20 27.31 -0.11 28.49 0.09 27.24 -0.43 +1951 5 24.79 0.37 27.08 -0.02 29.04 0.35 27.68 -0.09 +1951 6 24.69 1.62 26.57 0.10 28.74 0.07 27.46 -0.07 +1951 7 23.86 1.88 26.54 0.89 28.82 0.21 27.72 0.61 +1951 8 22.32 1.31 25.67 0.62 28.53 0.04 27.36 0.61 +1951 9 21.44 0.67 25.56 0.62 28.62 0.11 27.51 0.81 +1951 10 21.77 0.70 25.85 0.90 28.71 0.20 27.43 0.78 +1951 11 22.33 0.59 26.18 1.13 28.74 0.29 27.48 0.87 +1951 12 22.89 -0.01 25.98 0.77 28.53 0.19 27.12 0.55 +1952 1 24.52 -0.02 25.85 0.20 28.35 0.19 26.85 0.30 +1952 2 26.21 0.29 26.46 0.08 28.08 0.00 26.79 0.06 +1952 3 26.37 0.00 27.18 0.05 28.10 -0.07 27.32 0.09 +1952 4 24.73 -0.84 27.41 -0.02 28.52 0.12 27.88 0.21 +1952 5 23.71 -0.71 26.92 -0.18 28.69 -0.01 27.99 0.21 +1952 6 22.34 -0.73 25.84 -0.63 28.47 -0.20 27.33 -0.20 +1952 7 20.89 -1.09 24.92 -0.73 28.24 -0.37 26.72 -0.38 +1952 8 20.02 -0.99 24.50 -0.56 28.09 -0.40 26.46 -0.29 +1952 9 19.63 -1.14 24.43 -0.51 28.55 0.04 26.54 -0.17 +1952 10 20.40 -0.67 24.52 -0.42 28.25 -0.26 26.54 -0.10 +1952 11 20.77 -0.97 24.36 -0.69 28.28 -0.17 26.36 -0.24 +1952 12 22.39 -0.52 24.88 -0.33 28.30 -0.04 26.53 -0.04 +1953 1 24.15 -0.39 25.77 0.11 28.31 0.15 26.85 0.29 +1953 2 26.34 0.42 26.74 0.36 28.26 0.18 27.19 0.45 +1953 3 27.36 0.98 27.57 0.44 28.10 -0.07 27.68 0.45 +1953 4 27.03 1.46 27.91 0.49 28.53 0.14 28.19 0.53 +1953 5 25.47 1.05 27.39 0.28 28.92 0.23 28.29 0.52 +1953 6 23.49 0.42 26.77 0.30 29.18 0.51 28.02 0.49 +1953 7 22.20 0.23 25.81 0.16 29.02 0.41 27.52 0.42 +1953 8 21.45 0.44 25.20 0.14 28.83 0.34 27.16 0.41 +1953 9 21.25 0.49 25.17 0.24 28.61 0.09 27.13 0.43 +1953 10 20.95 -0.12 25.07 0.13 28.91 0.41 27.02 0.38 +1953 11 21.60 -0.14 25.25 0.19 28.91 0.46 26.96 0.36 +1953 12 22.44 -0.47 25.55 0.34 28.74 0.40 26.99 0.42 +1954 1 23.02 -1.52 25.73 0.07 28.30 0.14 27.03 0.47 +1954 2 25.00 -0.92 26.43 0.05 28.16 0.08 27.22 0.48 +1954 3 25.33 -1.05 26.85 -0.28 27.89 -0.28 27.21 -0.02 +1954 4 22.97 -2.60 25.85 -1.57 28.20 -0.19 26.87 -0.80 +1954 5 21.73 -2.69 25.67 -1.44 28.40 -0.30 27.06 -0.71 +1954 6 20.77 -2.30 25.20 -1.27 28.32 -0.35 26.93 -0.60 +1954 7 19.52 -2.46 24.47 -1.17 28.00 -0.61 26.37 -0.74 +1954 8 19.33 -1.68 23.83 -1.23 27.76 -0.73 25.73 -1.02 +1954 9 18.95 -1.82 23.51 -1.43 27.61 -0.90 25.38 -1.33 +1954 10 19.11 -1.96 23.63 -1.31 27.54 -0.97 25.51 -1.13 +1954 11 20.27 -1.47 23.86 -1.19 27.53 -0.92 25.67 -0.93 +1954 12 21.30 -1.61 23.79 -1.42 27.61 -0.74 25.37 -1.20 +1955 1 23.75 -0.79 24.79 -0.86 27.60 -0.56 25.54 -1.02 +1955 2 24.82 -1.10 25.76 -0.62 27.30 -0.77 25.90 -0.84 +1955 3 25.14 -1.23 26.35 -0.78 27.37 -0.81 26.37 -0.86 +1955 4 24.22 -1.35 26.32 -1.11 27.82 -0.57 26.66 -1.01 +1955 5 22.16 -2.26 25.52 -1.58 28.03 -0.66 26.66 -1.11 +1955 6 21.20 -1.87 25.08 -1.39 28.08 -0.59 26.56 -0.97 +1955 7 20.46 -1.52 24.55 -1.10 28.14 -0.47 26.31 -0.80 +1955 8 19.63 -1.38 23.69 -1.37 27.94 -0.55 25.60 -1.15 +1955 9 19.24 -1.53 23.36 -1.57 27.71 -0.81 25.63 -1.07 +1955 10 19.16 -1.91 22.71 -2.24 27.22 -1.29 24.66 -1.98 +1955 11 19.84 -1.90 22.66 -2.39 26.79 -1.66 24.29 -2.32 +1955 12 21.19 -1.71 23.08 -2.13 27.20 -1.15 24.58 -1.99 +1956 1 23.24 -1.30 24.47 -1.18 27.18 -0.97 25.28 -1.27 +1956 2 24.71 -1.20 25.80 -0.57 27.27 -0.81 26.00 -0.73 +1956 3 25.90 -0.47 26.84 -0.29 27.49 -0.68 26.62 -0.61 +1956 4 24.66 -0.91 27.12 -0.30 27.72 -0.68 26.96 -0.70 +1956 5 23.14 -1.28 26.63 -0.47 28.11 -0.58 27.23 -0.54 +1956 6 22.04 -1.03 25.87 -0.60 28.22 -0.46 26.99 -0.54 +1956 7 21.47 -0.51 24.82 -0.82 28.07 -0.54 26.37 -0.73 +1956 8 20.55 -0.46 24.16 -0.90 27.67 -0.82 25.91 -0.84 +1956 9 19.89 -0.88 23.97 -0.97 27.71 -0.80 25.91 -0.79 +1956 10 19.69 -1.39 24.01 -0.94 27.92 -0.59 25.83 -0.81 +1956 11 20.57 -1.17 23.91 -1.14 28.02 -0.43 25.64 -0.97 +1956 12 21.58 -1.32 24.06 -1.15 28.09 -0.26 25.71 -0.86 +1957 1 23.13 -1.40 25.05 -0.60 28.03 -0.12 26.09 -0.47 +1957 2 26.30 0.38 26.23 -0.15 28.10 0.02 26.58 -0.16 +1957 3 27.63 1.26 27.55 0.42 28.33 0.16 27.65 0.41 +1957 4 27.15 1.59 27.94 0.51 28.86 0.47 28.34 0.68 +1957 5 26.72 2.30 27.81 0.71 29.15 0.46 28.59 0.82 +1957 6 25.04 1.97 27.30 0.84 28.83 0.16 28.28 0.75 +1957 7 23.83 1.85 26.95 1.31 28.73 0.12 28.11 1.00 +1957 8 22.34 1.33 26.14 1.08 28.91 0.41 27.75 1.00 +1957 9 21.80 1.03 25.71 0.77 28.96 0.45 27.54 0.84 +1957 10 21.80 0.73 25.68 0.74 29.12 0.61 27.49 0.85 +1957 11 22.39 0.65 26.23 1.18 29.12 0.67 27.79 1.19 +1957 12 23.69 0.78 26.64 1.43 29.08 0.74 28.08 1.51 +1958 1 24.89 0.35 27.04 1.38 29.26 1.10 28.37 1.81 +1958 2 26.55 0.63 27.57 1.20 29.28 1.21 28.41 1.68 +1958 3 27.09 0.72 27.85 0.72 29.04 0.86 28.34 1.11 +1958 4 26.37 0.80 27.86 0.44 29.04 0.65 28.35 0.69 +1958 5 24.71 0.29 27.39 0.28 29.21 0.52 28.35 0.57 +1958 6 23.23 0.16 26.70 0.23 29.13 0.46 28.05 0.52 +1958 7 22.31 0.33 25.73 0.09 28.89 0.28 27.48 0.37 +1958 8 20.72 -0.29 24.97 -0.08 28.53 0.04 26.90 0.15 +1958 9 20.62 -0.14 24.45 -0.48 28.50 -0.02 26.50 -0.20 +1958 10 21.05 -0.02 24.65 -0.30 28.68 0.17 26.61 -0.03 +1958 11 21.52 -0.22 25.06 0.01 28.79 0.34 26.89 0.29 +1958 12 22.50 -0.40 25.02 -0.19 28.76 0.41 26.77 0.20 +1959 1 23.97 -0.57 25.75 0.10 28.63 0.48 27.14 0.58 +1959 2 25.90 -0.01 26.50 0.13 28.38 0.31 27.25 0.51 +1959 3 26.94 0.56 27.17 0.04 28.48 0.31 27.55 0.32 +1959 4 25.84 0.27 27.56 0.14 28.75 0.36 27.93 0.27 +1959 5 24.23 -0.19 26.94 -0.16 28.85 0.16 27.80 0.03 +1959 6 22.57 -0.50 26.07 -0.39 28.39 -0.28 27.34 -0.19 +1959 7 21.50 -0.47 24.94 -0.71 28.30 -0.31 26.56 -0.55 +1959 8 20.15 -0.86 24.40 -0.66 28.27 -0.22 26.32 -0.43 +1959 9 20.23 -0.54 24.37 -0.57 28.19 -0.32 26.17 -0.53 +1959 10 20.86 -0.21 24.67 -0.28 28.21 -0.30 26.42 -0.22 +1959 11 21.88 0.14 24.74 -0.31 28.12 -0.34 26.32 -0.28 +1959 12 22.55 -0.36 24.94 -0.27 28.07 -0.27 26.44 -0.13 +1960 1 24.40 -0.14 25.34 -0.32 27.77 -0.38 26.25 -0.31 +1960 2 25.59 -0.32 25.87 -0.50 27.49 -0.58 26.27 -0.47 +1960 3 26.01 -0.36 26.75 -0.38 27.77 -0.40 26.97 -0.26 +1960 4 24.66 -0.91 27.03 -0.39 28.08 -0.31 27.51 -0.16 +1960 5 23.53 -0.89 26.66 -0.45 28.52 -0.18 27.62 -0.16 +1960 6 21.83 -1.24 25.95 -0.52 28.35 -0.32 27.24 -0.29 +1960 7 20.73 -1.25 25.38 -0.26 28.31 -0.30 27.07 -0.04 +1960 8 20.10 -0.91 24.95 -0.11 28.19 -0.30 26.85 0.10 +1960 9 20.56 -0.20 24.70 -0.24 28.32 -0.20 26.60 -0.11 +1960 10 20.27 -0.80 24.24 -0.71 28.33 -0.17 26.35 -0.29 +1960 11 20.93 -0.81 24.31 -0.75 28.37 -0.09 26.34 -0.26 +1960 12 22.74 -0.17 24.73 -0.48 28.36 0.02 26.41 -0.16 +1961 1 24.58 0.04 25.19 -0.46 27.94 -0.21 26.38 -0.17 +1961 2 26.66 0.75 26.25 -0.13 27.85 -0.23 26.61 -0.13 +1961 3 25.95 -0.42 26.83 -0.30 27.92 -0.26 27.00 -0.24 +1961 4 25.17 -0.40 27.40 -0.02 27.96 -0.43 27.50 -0.16 +1961 5 23.60 -0.82 27.08 -0.02 28.38 -0.31 27.85 0.08 +1961 6 22.36 -0.71 26.37 -0.10 28.49 -0.18 27.86 0.33 +1961 7 20.52 -1.46 24.95 -0.70 28.33 -0.28 27.16 0.05 +1961 8 19.97 -1.04 24.20 -0.86 28.12 -0.37 26.43 -0.32 +1961 9 19.70 -1.07 23.65 -1.29 28.19 -0.33 25.97 -0.73 +1961 10 20.07 -1.01 23.89 -1.06 28.09 -0.42 25.94 -0.71 +1961 11 21.09 -0.65 24.38 -0.67 28.26 -0.19 26.20 -0.40 +1961 12 22.11 -0.80 24.75 -0.46 28.06 -0.28 26.20 -0.37 +1962 1 24.02 -0.52 25.23 -0.42 27.66 -0.49 26.12 -0.43 +1962 2 25.35 -0.56 26.07 -0.31 27.57 -0.51 26.28 -0.46 +1962 3 24.47 -1.90 26.49 -0.64 27.83 -0.34 26.80 -0.44 +1962 4 23.43 -2.14 26.59 -0.83 28.19 -0.20 27.22 -0.44 +1962 5 23.03 -1.39 26.28 -0.82 28.23 -0.47 27.23 -0.54 +1962 6 21.81 -1.26 25.83 -0.64 28.30 -0.37 27.18 -0.35 +1962 7 20.60 -1.37 25.21 -0.44 28.24 -0.37 26.93 -0.17 +1962 8 20.17 -0.84 24.72 -0.33 28.15 -0.34 26.52 -0.23 +1962 9 20.02 -0.75 24.20 -0.74 28.11 -0.40 26.07 -0.63 +1962 10 20.14 -0.93 24.23 -0.72 28.10 -0.41 26.06 -0.58 +1962 11 20.99 -0.75 24.10 -0.95 28.12 -0.33 25.88 -0.72 +1962 12 21.82 -1.09 24.12 -1.09 27.96 -0.38 25.75 -0.82 +1963 1 23.81 -0.73 24.96 -0.69 27.74 -0.41 25.86 -0.69 +1963 2 25.36 -0.55 25.91 -0.47 27.70 -0.38 26.39 -0.35 +1963 3 26.02 -0.36 27.06 -0.07 28.01 -0.16 27.31 0.08 +1963 4 24.67 -0.90 27.66 0.23 28.28 -0.11 27.87 0.20 +1963 5 23.97 -0.45 27.10 0.00 28.40 -0.30 27.71 -0.06 +1963 6 22.41 -0.66 26.74 0.27 28.38 -0.29 27.69 0.16 +1963 7 21.80 -0.18 26.36 0.71 28.72 0.11 27.91 0.80 +1963 8 21.31 0.30 25.80 0.74 29.01 0.51 27.63 0.88 +1963 9 21.00 0.23 25.41 0.48 29.03 0.52 27.47 0.76 +1963 10 21.13 0.06 25.58 0.63 29.07 0.56 27.56 0.92 +1963 11 21.64 -0.10 25.83 0.78 29.11 0.66 27.61 1.00 +1963 12 22.55 -0.35 26.08 0.87 28.87 0.52 27.71 1.14 +1964 1 24.15 -0.39 26.07 0.42 28.70 0.55 27.43 0.87 +1964 2 25.08 -0.83 26.41 0.04 28.39 0.31 27.27 0.53 +1964 3 25.30 -1.08 26.76 -0.37 28.08 -0.09 27.10 -0.13 +1964 4 24.61 -0.96 26.34 -1.09 28.24 -0.15 27.06 -0.60 +1964 5 21.93 -2.49 25.56 -1.54 28.39 -0.30 26.94 -0.84 +1964 6 21.44 -1.63 25.10 -1.37 28.06 -0.61 26.66 -0.87 +1964 7 20.25 -1.72 24.82 -0.82 27.87 -0.74 26.42 -0.69 +1964 8 19.48 -1.53 23.73 -1.33 27.64 -0.85 25.74 -1.01 +1964 9 19.67 -1.10 23.89 -1.04 27.38 -1.13 25.49 -1.22 +1964 10 19.79 -1.28 23.95 -0.99 27.38 -1.13 25.53 -1.11 +1964 11 20.88 -0.86 24.04 -1.02 27.34 -1.11 25.40 -1.20 +1964 12 21.83 -1.08 23.86 -1.35 27.25 -1.10 25.42 -1.15 +1965 1 24.22 -0.32 24.84 -0.81 27.57 -0.59 25.78 -0.77 +1965 2 26.17 0.26 25.96 -0.41 27.77 -0.31 26.37 -0.37 +1965 3 26.71 0.33 27.07 -0.06 27.93 -0.24 27.12 -0.11 +1965 4 27.01 1.45 27.66 0.23 28.06 -0.33 27.62 -0.05 +1965 5 26.09 1.67 27.68 0.57 28.70 0.01 28.07 0.29 +1965 6 24.60 1.54 27.24 0.78 29.02 0.35 28.19 0.66 +1965 7 23.26 1.29 26.64 0.99 29.08 0.47 28.02 0.91 +1965 8 22.54 1.53 26.25 1.20 29.19 0.70 28.07 1.32 +1965 9 21.26 0.49 26.07 1.13 29.11 0.60 28.03 1.32 +1965 10 21.57 0.50 26.15 1.21 29.30 0.80 28.26 1.62 +1965 11 22.29 0.55 26.50 1.45 29.17 0.72 28.29 1.69 +1965 12 23.35 0.44 26.59 1.38 29.03 0.68 28.07 1.50 +1966 1 25.15 0.62 26.70 1.05 28.87 0.71 27.75 1.19 +1966 2 25.88 -0.03 26.86 0.49 28.85 0.78 27.66 0.92 +1966 3 25.35 -1.02 27.26 0.13 29.18 1.01 28.22 0.99 +1966 4 24.26 -1.31 27.40 -0.03 28.99 0.60 28.24 0.58 +1966 5 22.92 -1.50 26.28 -0.82 29.08 0.39 27.67 -0.10 +1966 6 21.80 -1.27 26.08 -0.39 29.13 0.46 27.77 0.24 +1966 7 20.85 -1.13 25.42 -0.22 29.03 0.42 27.42 0.31 +1966 8 20.17 -0.84 24.51 -0.55 28.76 0.27 26.65 -0.10 +1966 9 20.04 -0.73 24.17 -0.77 28.71 0.20 26.49 -0.22 +1966 10 20.51 -0.56 24.42 -0.53 28.57 0.06 26.40 -0.25 +1966 11 21.03 -0.71 24.26 -0.79 28.65 0.20 26.42 -0.19 +1966 12 22.25 -0.66 24.30 -0.91 28.27 -0.07 26.21 -0.36 +1967 1 23.66 -0.88 25.09 -0.56 27.69 -0.46 26.18 -0.38 +1967 2 25.54 -0.37 26.09 -0.28 27.48 -0.60 26.35 -0.39 +1967 3 25.55 -0.83 26.46 -0.67 27.78 -0.39 26.67 -0.56 +1967 4 24.98 -0.59 26.46 -0.96 28.40 0.01 26.91 -0.76 +1967 5 23.77 -0.65 26.69 -0.41 28.80 0.11 27.49 -0.28 +1967 6 22.04 -1.03 26.40 -0.07 28.69 0.02 27.62 0.09 +1967 7 21.10 -0.88 25.32 -0.32 28.62 0.01 27.17 0.06 +1967 8 19.84 -1.17 24.30 -0.76 28.42 -0.07 26.62 -0.13 +1967 9 19.08 -1.68 23.69 -1.25 28.19 -0.32 26.10 -0.60 +1967 10 19.47 -1.60 23.80 -1.14 28.32 -0.19 26.19 -0.45 +1967 11 20.20 -1.54 24.01 -1.04 28.43 -0.02 26.26 -0.34 +1967 12 21.28 -1.62 24.14 -1.07 28.27 -0.08 26.10 -0.47 +1968 1 23.19 -1.35 24.40 -1.25 27.92 -0.24 25.78 -0.78 +1968 2 24.88 -1.04 25.00 -1.38 27.80 -0.28 25.79 -0.95 +1968 3 25.11 -1.27 25.86 -1.27 27.87 -0.30 26.38 -0.85 +1968 4 23.97 -1.60 26.57 -0.85 28.16 -0.24 27.09 -0.58 +1968 5 22.44 -1.98 26.19 -0.92 28.30 -0.40 27.15 -0.62 +1968 6 21.70 -1.36 26.22 -0.25 28.90 0.23 27.69 0.16 +1968 7 21.25 -0.72 26.00 0.35 28.70 0.09 27.61 0.51 +1968 8 20.97 -0.04 25.28 0.22 28.68 0.19 27.12 0.37 +1968 9 21.23 0.46 24.96 0.02 28.66 0.15 26.90 0.19 +1968 10 21.12 0.05 25.17 0.22 28.77 0.26 26.99 0.34 +1968 11 21.68 -0.06 25.35 0.29 29.17 0.72 27.38 0.78 +1968 12 23.20 0.29 25.79 0.58 29.17 0.83 27.42 0.85 +1969 1 24.67 0.13 26.27 0.62 29.11 0.95 27.55 0.99 +1969 2 25.56 -0.36 26.92 0.54 29.28 1.20 27.95 1.21 +1969 3 27.09 0.72 27.63 0.50 28.99 0.82 28.02 0.79 +1969 4 26.66 1.10 27.94 0.52 29.03 0.64 28.39 0.73 +1969 5 26.07 1.65 27.92 0.81 29.21 0.52 28.50 0.73 +1969 6 24.39 1.32 27.05 0.58 29.09 0.42 27.99 0.46 +1969 7 22.47 0.50 25.84 0.19 28.85 0.24 27.30 0.20 +1969 8 21.06 0.05 25.41 0.35 28.93 0.44 27.16 0.41 +1969 9 20.88 0.12 25.46 0.52 29.14 0.63 27.34 0.63 +1969 10 21.74 0.67 25.69 0.75 29.20 0.69 27.50 0.86 +1969 11 22.47 0.73 25.75 0.70 29.20 0.75 27.35 0.74 +1969 12 23.60 0.69 26.16 0.95 28.87 0.52 27.30 0.73 +1970 1 25.02 0.48 26.38 0.73 28.57 0.42 27.05 0.50 +1970 2 25.76 -0.16 26.52 0.14 28.57 0.50 27.02 0.29 +1970 3 25.53 -0.85 26.97 -0.16 28.52 0.35 27.35 0.12 +1970 4 24.76 -0.81 27.20 -0.23 28.73 0.34 27.96 0.29 +1970 5 22.94 -1.48 26.44 -0.66 28.97 0.28 27.77 0.00 +1970 6 21.27 -1.80 25.30 -1.17 28.75 0.08 27.14 -0.39 +1970 7 19.69 -2.28 24.18 -1.47 28.66 0.05 26.48 -0.63 +1970 8 19.27 -1.74 23.69 -1.37 28.16 -0.34 25.86 -0.89 +1970 9 19.50 -1.26 23.89 -1.05 27.88 -0.64 25.86 -0.84 +1970 10 20.16 -0.91 23.80 -1.14 27.86 -0.65 25.79 -0.85 +1970 11 20.61 -1.13 23.78 -1.28 27.91 -0.54 25.83 -0.77 +1970 12 21.77 -1.13 24.01 -1.20 27.44 -0.91 25.47 -1.10 +1971 1 23.33 -1.21 24.19 -1.47 26.94 -1.21 25.09 -1.46 +1971 2 24.58 -1.34 24.91 -1.47 27.07 -1.00 25.40 -1.34 +1971 3 25.24 -1.13 26.01 -1.11 27.25 -0.92 26.10 -1.13 +1971 4 24.95 -0.62 26.61 -0.81 27.63 -0.76 26.78 -0.89 +1971 5 23.29 -1.13 26.26 -0.85 28.02 -0.67 27.06 -0.71 +1971 6 21.60 -1.47 25.44 -1.03 28.03 -0.64 26.70 -0.83 +1971 7 21.01 -0.96 24.78 -0.86 27.93 -0.68 26.29 -0.82 +1971 8 19.97 -1.04 23.90 -1.16 27.84 -0.66 25.99 -0.76 +1971 9 19.74 -1.03 23.92 -1.02 27.75 -0.77 25.94 -0.76 +1971 10 19.88 -1.19 23.73 -1.21 27.80 -0.71 25.65 -0.99 +1971 11 20.94 -0.80 23.93 -1.12 27.87 -0.58 25.69 -0.91 +1971 12 21.99 -0.92 23.92 -1.29 27.98 -0.36 25.55 -1.02 +1972 1 24.51 -0.03 25.02 -0.63 27.97 -0.19 25.84 -0.72 +1972 2 26.66 0.75 26.04 -0.34 28.15 0.07 26.42 -0.32 +1972 3 27.09 0.72 27.12 -0.01 28.36 0.19 27.21 -0.02 +1972 4 26.25 0.68 27.78 0.35 28.82 0.43 27.93 0.26 +1972 5 25.47 1.05 27.62 0.52 29.21 0.52 28.27 0.49 +1972 6 25.01 1.95 27.37 0.90 29.19 0.52 28.23 0.70 +1972 7 24.11 2.13 27.14 1.49 29.09 0.48 28.18 1.07 +1972 8 23.42 2.41 26.86 1.81 28.92 0.43 28.10 1.35 +1972 9 22.12 1.35 26.48 1.54 29.10 0.58 28.10 1.40 +1972 10 22.58 1.51 26.83 1.89 29.44 0.93 28.46 1.82 +1972 11 23.32 1.58 27.17 2.11 29.48 1.03 28.69 2.09 +1972 12 24.89 1.99 27.60 2.39 29.35 1.00 28.81 2.24 +1973 1 26.03 1.49 27.52 1.86 29.03 0.88 28.44 1.88 +1973 2 26.48 0.56 27.24 0.87 28.77 0.70 28.00 1.26 +1973 3 26.27 -0.10 27.37 0.24 28.52 0.35 27.71 0.48 +1973 4 24.87 -0.70 26.87 -0.55 28.39 0.00 27.39 -0.28 +1973 5 23.44 -0.98 26.06 -1.04 28.51 -0.18 27.13 -0.65 +1973 6 21.76 -1.31 25.34 -1.12 28.23 -0.44 26.74 -0.79 +1973 7 20.84 -1.14 24.31 -1.34 28.01 -0.60 25.95 -1.16 +1973 8 19.47 -1.54 23.69 -1.36 27.65 -0.84 25.46 -1.29 +1973 9 19.49 -1.28 23.56 -1.38 27.53 -0.98 25.32 -1.39 +1973 10 19.80 -1.27 23.49 -1.46 27.32 -1.19 25.03 -1.61 +1973 11 20.71 -1.03 23.35 -1.71 26.97 -1.48 24.50 -2.11 +1973 12 21.74 -1.17 23.40 -1.81 26.69 -1.65 24.43 -2.14 +1974 1 23.29 -1.25 23.93 -1.72 26.50 -1.65 24.52 -2.04 +1974 2 24.87 -1.04 25.11 -1.27 26.87 -1.21 25.12 -1.61 +1974 3 25.69 -0.68 26.28 -0.85 27.21 -0.96 25.91 -1.32 +1974 4 25.28 -0.29 26.84 -0.58 27.46 -0.93 26.63 -1.03 +1974 5 24.35 -0.07 26.56 -0.54 27.94 -0.75 26.84 -0.93 +1974 6 22.48 -0.58 25.91 -0.55 27.97 -0.70 26.71 -0.82 +1974 7 21.58 -0.40 25.30 -0.35 27.83 -0.78 26.48 -0.63 +1974 8 20.73 -0.28 24.82 -0.24 27.97 -0.52 26.37 -0.38 +1974 9 20.15 -0.62 24.38 -0.56 27.91 -0.61 26.23 -0.47 +1974 10 19.88 -1.19 24.14 -0.81 27.74 -0.77 25.92 -0.73 +1974 11 20.68 -1.06 24.07 -0.98 27.72 -0.73 25.63 -0.97 +1974 12 21.41 -1.50 24.31 -0.90 27.61 -0.74 25.70 -0.87 +1975 1 23.55 -0.99 25.34 -0.31 27.86 -0.30 26.18 -0.37 +1975 2 24.95 -0.97 25.74 -0.64 27.96 -0.12 26.22 -0.52 +1975 3 26.06 -0.32 26.49 -0.64 27.76 -0.41 26.44 -0.79 +1975 4 25.53 -0.04 27.08 -0.34 27.83 -0.56 26.99 -0.67 +1975 5 23.71 -0.72 26.27 -0.83 27.95 -0.74 26.97 -0.80 +1975 6 21.84 -1.22 25.29 -1.18 27.71 -0.96 26.29 -1.24 +1975 7 21.05 -0.92 24.72 -0.93 27.57 -1.04 25.98 -1.12 +1975 8 19.97 -1.04 24.15 -0.91 27.29 -1.21 25.47 -1.28 +1975 9 19.14 -1.63 23.67 -1.27 26.91 -1.60 25.20 -1.50 +1975 10 19.17 -1.90 23.40 -1.54 26.76 -1.75 24.87 -1.77 +1975 11 19.44 -2.30 23.73 -1.33 26.80 -1.66 25.10 -1.50 +1975 12 21.05 -1.85 23.39 -1.82 26.84 -1.50 24.76 -1.81 +1976 1 23.51 -1.02 23.91 -1.74 26.92 -1.23 24.72 -1.84 +1976 2 25.36 -0.56 25.31 -1.07 27.19 -0.89 25.58 -1.16 +1976 3 25.88 -0.49 26.46 -0.66 27.56 -0.61 26.61 -0.62 +1976 4 25.72 0.15 26.94 -0.49 27.98 -0.42 26.99 -0.67 +1976 5 25.11 0.69 26.98 -0.12 28.32 -0.37 27.27 -0.50 +1976 6 24.46 1.39 26.95 0.48 28.32 -0.35 27.34 -0.19 +1976 7 23.30 1.33 26.29 0.65 28.42 -0.19 27.26 0.16 +1976 8 21.91 0.90 25.87 0.81 28.34 -0.15 27.09 0.34 +1976 9 21.56 0.79 25.76 0.83 28.50 -0.01 27.12 0.42 +1976 10 21.69 0.62 25.97 1.03 28.82 0.31 27.48 0.84 +1976 11 22.14 0.40 25.93 0.87 28.92 0.47 27.42 0.82 +1976 12 23.29 0.39 25.91 0.70 28.45 0.10 27.17 0.60 +1977 1 24.93 0.39 26.57 0.92 28.38 0.23 27.31 0.76 +1977 2 25.79 -0.13 27.03 0.65 28.11 0.04 27.15 0.41 +1977 3 26.13 -0.24 27.51 0.38 28.28 0.10 27.57 0.34 +1977 4 25.29 -0.28 27.02 -0.41 28.50 0.10 27.61 -0.05 +1977 5 23.88 -0.54 27.04 -0.06 28.78 0.09 27.97 0.19 +1977 6 22.70 -0.37 26.56 0.09 28.97 0.30 27.96 0.43 +1977 7 21.63 -0.34 25.70 0.05 29.13 0.52 27.56 0.45 +1977 8 20.25 -0.76 24.81 -0.25 28.87 0.38 26.93 0.18 +1977 9 19.82 -0.95 24.97 0.04 28.98 0.47 27.21 0.50 +1977 10 20.61 -0.46 25.34 0.39 28.96 0.45 27.37 0.73 +1977 11 21.29 -0.45 25.41 0.35 29.10 0.65 27.28 0.67 +1977 12 22.47 -0.44 25.54 0.33 29.11 0.76 27.37 0.80 +1978 1 24.32 -0.22 25.92 0.27 28.80 0.65 27.32 0.77 +1978 2 25.77 -0.15 26.46 0.09 28.48 0.41 27.17 0.43 +1978 3 25.39 -0.98 26.83 -0.30 28.26 0.09 27.24 0.01 +1978 4 24.73 -0.84 26.66 -0.77 28.28 -0.11 27.26 -0.41 +1978 5 23.15 -1.27 26.13 -0.97 28.72 0.03 27.36 -0.42 +1978 6 21.89 -1.18 25.68 -0.79 28.56 -0.11 27.16 -0.37 +1978 7 21.01 -0.96 25.08 -0.57 28.26 -0.35 26.81 -0.29 +1978 8 19.66 -1.35 24.35 -0.71 28.25 -0.24 26.23 -0.52 +1978 9 19.98 -0.79 24.33 -0.61 28.43 -0.08 26.20 -0.50 +1978 10 20.22 -0.86 24.72 -0.22 28.35 -0.16 26.40 -0.24 +1978 11 21.62 -0.12 24.94 -0.11 28.37 -0.09 26.43 -0.17 +1978 12 22.94 0.03 25.34 0.13 28.27 -0.08 26.48 -0.09 +1979 1 24.71 0.17 25.43 -0.23 28.40 0.25 26.45 -0.11 +1979 2 25.60 -0.32 26.19 -0.19 28.22 0.14 26.60 -0.13 +1979 3 25.93 -0.44 27.25 0.12 28.26 0.09 27.48 0.25 +1979 4 25.58 0.01 27.66 0.23 28.35 -0.05 27.87 0.20 +1979 5 24.52 0.10 27.26 0.16 28.70 0.01 27.74 -0.03 +1979 6 23.28 0.22 26.54 0.08 28.74 0.07 27.55 0.02 +1979 7 21.79 -0.19 25.56 -0.09 28.66 0.05 26.95 -0.15 +1979 8 21.05 0.04 25.29 0.23 28.36 -0.13 26.77 0.02 +1979 9 21.15 0.39 25.58 0.65 28.67 0.16 27.15 0.45 +1979 10 21.43 0.36 25.54 0.60 28.81 0.31 27.01 0.36 +1979 11 21.95 0.21 25.58 0.53 28.87 0.42 27.08 0.48 +1979 12 22.97 0.07 25.68 0.47 28.79 0.45 27.09 0.52 +1980 1 24.35 -0.18 26.12 0.47 28.62 0.47 27.10 0.54 +1980 2 25.73 -0.18 26.52 0.15 28.47 0.39 27.03 0.29 +1980 3 26.46 0.08 27.05 -0.07 28.51 0.34 27.38 0.15 +1980 4 25.71 0.14 27.33 -0.10 28.70 0.30 27.78 0.12 +1980 5 24.46 0.04 27.15 0.05 29.08 0.39 27.99 0.21 +1980 6 22.88 -0.19 26.76 0.29 29.15 0.48 27.99 0.46 +1980 7 21.26 -0.71 25.65 0.00 28.95 0.34 27.35 0.24 +1980 8 20.57 -0.44 24.87 -0.19 28.47 -0.02 26.62 -0.13 +1980 9 20.45 -0.32 24.86 -0.08 28.50 -0.01 26.57 -0.13 +1980 10 20.43 -0.64 24.62 -0.32 28.66 0.15 26.51 -0.13 +1980 11 21.23 -0.51 25.07 0.02 28.58 0.13 26.63 0.03 +1980 12 22.34 -0.56 25.28 0.07 28.44 0.10 26.58 0.01 +1981 1 22.98 -1.56 25.05 -0.61 28.08 -0.08 26.17 -0.39 +1981 2 24.90 -1.01 25.63 -0.75 27.94 -0.14 26.13 -0.60 +1981 3 25.94 -0.43 26.74 -0.39 28.08 -0.09 26.75 -0.48 +1981 4 24.89 -0.68 27.10 -0.32 28.17 -0.22 27.32 -0.34 +1981 5 23.90 -0.52 26.74 -0.37 28.34 -0.35 27.41 -0.36 +1981 6 22.57 -0.50 26.26 -0.20 28.36 -0.31 27.35 -0.18 +1981 7 21.10 -0.87 25.26 -0.39 28.29 -0.32 26.66 -0.44 +1981 8 20.03 -0.98 24.43 -0.63 28.22 -0.28 26.25 -0.50 +1981 9 20.09 -0.68 24.74 -0.20 28.30 -0.22 26.54 -0.17 +1981 10 20.58 -0.49 24.92 -0.03 28.45 -0.06 26.52 -0.12 +1981 11 21.26 -0.48 24.83 -0.22 28.47 0.02 26.41 -0.19 +1981 12 22.60 -0.30 25.23 0.03 28.43 0.09 26.47 -0.10 +1982 1 24.36 -0.18 25.96 0.30 28.19 0.03 26.69 0.14 +1982 2 25.42 -0.49 26.55 0.17 28.04 -0.04 26.71 -0.02 +1982 3 25.40 -0.98 27.06 -0.07 28.37 0.19 27.36 0.13 +1982 4 24.96 -0.61 27.52 0.10 28.78 0.39 27.90 0.24 +1982 5 24.21 -0.21 27.66 0.56 29.21 0.52 28.42 0.65 +1982 6 23.35 0.29 27.31 0.84 29.20 0.53 28.32 0.79 +1982 7 22.50 0.52 26.33 0.68 28.83 0.22 27.65 0.54 +1982 8 21.89 0.88 26.21 1.15 28.81 0.32 27.64 0.89 +1982 9 22.04 1.27 26.82 1.88 28.98 0.47 28.21 1.50 +1982 10 22.88 1.81 27.31 2.37 29.37 0.86 28.68 2.04 +1982 11 24.57 2.83 27.68 2.63 29.18 0.73 28.72 2.11 +1982 12 25.89 2.98 28.23 3.02 29.13 0.79 28.94 2.37 +1983 1 27.25 2.71 28.60 2.95 28.96 0.81 28.93 2.37 +1983 2 28.23 2.32 28.63 2.26 28.80 0.73 28.75 2.01 +1983 3 28.85 2.48 28.91 1.78 28.81 0.64 28.76 1.53 +1983 4 28.82 3.25 29.06 1.63 28.81 0.42 28.74 1.07 +1983 5 28.37 3.95 28.98 1.87 29.21 0.51 28.82 1.05 +1983 6 27.43 4.36 28.19 1.72 28.98 0.31 28.27 0.74 +1983 7 25.73 3.75 26.66 1.01 28.64 0.03 27.18 0.07 +1983 8 23.88 2.87 25.78 0.72 28.35 -0.14 26.51 -0.24 +1983 9 22.26 1.49 25.02 0.09 28.05 -0.46 26.18 -0.52 +1983 10 22.22 1.15 24.48 -0.46 27.92 -0.59 25.75 -0.89 +1983 11 22.21 0.47 24.19 -0.86 27.73 -0.73 25.54 -1.06 +1983 12 23.19 0.29 24.58 -0.63 27.75 -0.59 25.82 -0.75 +1984 1 24.32 -0.21 25.30 -0.35 27.64 -0.51 26.14 -0.42 +1984 2 25.12 -0.79 26.43 0.05 27.60 -0.48 26.72 -0.02 +1984 3 25.75 -0.63 27.14 0.01 27.59 -0.58 27.05 -0.19 +1984 4 25.40 -0.17 27.24 -0.18 27.78 -0.61 27.30 -0.37 +1984 5 23.58 -0.84 26.38 -0.72 28.19 -0.51 27.31 -0.47 +1984 6 22.30 -0.77 25.50 -0.97 28.38 -0.29 26.95 -0.58 +1984 7 21.53 -0.44 25.04 -0.60 28.47 -0.14 26.84 -0.26 +1984 8 20.64 -0.37 24.81 -0.25 28.30 -0.19 26.67 -0.08 +1984 9 20.73 -0.04 24.63 -0.30 28.26 -0.25 26.43 -0.27 +1984 10 20.62 -0.45 24.34 -0.61 28.19 -0.32 26.15 -0.49 +1984 11 21.70 -0.04 24.23 -0.83 27.92 -0.53 25.60 -1.00 +1984 12 22.47 -0.44 24.10 -1.11 27.60 -0.74 25.38 -1.19 +1985 1 23.84 -0.70 24.68 -0.97 27.55 -0.60 25.58 -0.98 +1985 2 24.83 -1.08 25.65 -0.72 27.68 -0.39 26.11 -0.63 +1985 3 25.60 -0.77 26.45 -0.68 27.59 -0.58 26.53 -0.71 +1985 4 24.28 -1.29 26.63 -0.79 27.78 -0.61 26.93 -0.74 +1985 5 22.67 -1.75 26.26 -0.84 27.99 -0.70 27.09 -0.68 +1985 6 21.84 -1.23 25.66 -0.81 28.09 -0.58 26.92 -0.61 +1985 7 20.75 -1.23 24.72 -0.93 28.32 -0.30 26.64 -0.46 +1985 8 19.90 -1.11 24.12 -0.94 28.34 -0.16 26.28 -0.47 +1985 9 19.86 -0.91 24.05 -0.88 28.32 -0.20 26.08 -0.62 +1985 10 20.26 -0.81 24.23 -0.71 28.40 -0.11 26.22 -0.42 +1985 11 20.97 -0.77 24.40 -0.65 28.48 0.03 26.39 -0.22 +1985 12 22.49 -0.41 24.56 -0.65 28.39 0.05 26.19 -0.38 +1986 1 24.31 -0.23 24.99 -0.67 27.96 -0.19 26.04 -0.52 +1986 2 25.90 -0.02 26.04 -0.33 27.95 -0.13 26.26 -0.48 +1986 3 25.78 -0.59 26.92 -0.21 28.11 -0.06 26.99 -0.24 +1986 4 24.86 -0.71 27.30 -0.13 28.23 -0.17 27.65 -0.02 +1986 5 23.35 -1.07 26.78 -0.32 28.53 -0.17 27.58 -0.20 +1986 6 22.03 -1.04 26.27 -0.20 28.76 0.09 27.56 0.03 +1986 7 21.64 -0.33 25.82 0.18 28.75 0.14 27.39 0.28 +1986 8 21.07 0.06 25.38 0.33 28.95 0.46 27.21 0.46 +1986 9 21.13 0.36 25.38 0.44 29.20 0.69 27.35 0.65 +1986 10 21.46 0.39 25.65 0.70 29.27 0.76 27.60 0.95 +1986 11 22.17 0.43 25.94 0.88 29.33 0.88 27.67 1.07 +1986 12 23.53 0.63 26.26 1.05 28.97 0.63 27.75 1.18 +1987 1 25.60 1.07 26.74 1.09 28.81 0.65 27.82 1.27 +1987 2 27.02 1.10 27.60 1.23 28.82 0.74 28.02 1.29 +1987 3 27.89 1.51 28.38 1.26 28.95 0.77 28.49 1.26 +1987 4 26.95 1.38 28.63 1.20 28.97 0.58 28.68 1.02 +1987 5 25.96 1.53 28.30 1.19 29.24 0.55 28.70 0.93 +1987 6 24.04 0.97 27.51 1.04 29.44 0.77 28.67 1.14 +1987 7 23.00 1.03 26.94 1.30 29.37 0.76 28.52 1.42 +1987 8 21.92 0.91 26.59 1.53 29.40 0.91 28.48 1.73 +1987 9 22.00 1.23 26.62 1.68 29.47 0.96 28.42 1.71 +1987 10 22.54 1.47 26.19 1.25 29.67 1.17 28.08 1.43 +1987 11 22.84 1.10 26.21 1.16 29.53 1.08 27.94 1.34 +1987 12 23.51 0.60 26.33 1.12 29.25 0.90 27.60 1.03 +1988 1 24.76 0.22 26.47 0.82 28.97 0.81 27.49 0.94 +1988 2 25.74 -0.18 26.43 0.05 28.54 0.46 27.01 0.28 +1988 3 25.71 -0.66 27.10 -0.03 28.46 0.29 27.45 0.22 +1988 4 24.68 -0.89 27.01 -0.41 28.41 0.02 27.56 -0.10 +1988 5 23.18 -1.24 25.88 -1.22 28.26 -0.43 26.97 -0.80 +1988 6 21.66 -1.41 24.61 -1.86 28.00 -0.67 26.21 -1.32 +1988 7 20.59 -1.38 23.79 -1.85 27.95 -0.67 25.66 -1.45 +1988 8 19.63 -1.38 23.71 -1.35 28.07 -0.43 25.71 -1.04 +1988 9 19.44 -1.32 23.88 -1.06 27.90 -0.61 25.72 -0.99 +1988 10 19.83 -1.24 23.41 -1.53 27.12 -1.39 24.82 -1.82 +1988 11 20.96 -0.78 23.45 -1.61 27.06 -1.39 24.73 -1.87 +1988 12 22.25 -0.66 23.50 -1.71 26.85 -1.49 24.68 -1.89 +1989 1 24.36 -0.18 24.27 -1.38 26.63 -1.52 24.70 -1.86 +1989 2 26.02 0.10 25.49 -0.89 26.75 -1.33 25.34 -1.40 +1989 3 26.21 -0.17 26.23 -0.90 27.25 -0.93 26.12 -1.12 +1989 4 25.54 -0.03 26.85 -0.57 27.71 -0.68 26.83 -0.83 +1989 5 23.36 -1.06 26.58 -0.53 28.24 -0.46 27.18 -0.60 +1989 6 22.14 -0.93 26.42 -0.05 28.12 -0.55 27.23 -0.30 +1989 7 21.27 -0.70 25.32 -0.32 28.23 -0.38 26.80 -0.31 +1989 8 20.86 -0.15 24.73 -0.33 28.10 -0.39 26.43 -0.32 +1989 9 20.17 -0.60 24.67 -0.27 28.37 -0.14 26.46 -0.24 +1989 10 20.52 -0.55 24.61 -0.34 28.27 -0.24 26.31 -0.34 +1989 11 21.44 -0.30 24.56 -0.49 28.10 -0.36 26.29 -0.31 +1989 12 22.61 -0.30 24.92 -0.29 28.51 0.17 26.58 0.01 +1990 1 24.22 -0.32 25.45 -0.20 28.49 0.33 26.63 0.07 +1990 2 26.17 0.26 26.54 0.16 28.58 0.50 27.03 0.29 +1990 3 26.15 -0.22 27.01 -0.12 28.69 0.51 27.39 0.16 +1990 4 25.15 -0.42 27.56 0.14 28.83 0.44 27.94 0.27 +1990 5 24.14 -0.29 27.42 0.32 28.93 0.23 28.08 0.30 +1990 6 22.76 -0.31 26.55 0.08 28.97 0.30 27.63 0.10 +1990 7 21.36 -0.61 25.82 0.18 29.01 0.40 27.42 0.31 +1990 8 20.70 -0.31 25.32 0.26 28.99 0.49 27.16 0.41 +1990 9 20.28 -0.49 25.15 0.21 28.92 0.41 26.96 0.25 +1990 10 20.40 -0.67 24.96 0.02 29.10 0.59 27.01 0.37 +1990 11 21.19 -0.55 25.00 -0.06 29.13 0.68 26.88 0.28 +1990 12 22.29 -0.61 25.23 0.02 29.16 0.81 26.96 0.39 +1991 1 23.99 -0.55 25.84 0.19 28.96 0.81 27.07 0.51 +1991 2 25.59 -0.33 26.50 0.12 28.71 0.63 27.12 0.38 +1991 3 26.31 -0.06 27.12 -0.01 28.58 0.40 27.38 0.15 +1991 4 25.15 -0.42 27.65 0.22 28.94 0.55 28.10 0.44 +1991 5 24.44 0.02 27.64 0.54 29.37 0.68 28.36 0.58 +1991 6 23.28 0.21 27.43 0.96 29.28 0.61 28.41 0.88 +1991 7 22.39 0.42 26.75 1.10 29.27 0.66 28.17 1.07 +1991 8 21.39 0.38 25.71 0.65 29.23 0.74 27.73 0.98 +1991 9 21.22 0.45 25.32 0.39 29.24 0.73 27.42 0.71 +1991 10 21.73 0.66 25.63 0.69 29.44 0.93 27.62 0.98 +1991 11 22.40 0.66 26.10 1.04 29.40 0.95 27.93 1.33 +1991 12 23.75 0.85 26.42 1.21 29.46 1.12 28.32 1.75 +1992 1 25.02 0.48 27.03 1.38 29.03 0.87 28.36 1.81 +1992 2 26.62 0.71 27.61 1.23 29.00 0.92 28.43 1.69 +1992 3 27.72 1.34 28.22 1.09 29.03 0.86 28.66 1.42 +1992 4 27.58 2.01 28.79 1.37 29.16 0.77 29.05 1.39 +1992 5 26.44 2.02 28.49 1.38 29.39 0.70 29.01 1.24 +1992 6 23.86 0.79 27.28 0.82 29.28 0.60 28.35 0.82 +1992 7 21.84 -0.14 25.84 0.19 29.15 0.54 27.56 0.45 +1992 8 20.87 -0.14 25.11 0.06 28.92 0.43 26.96 0.21 +1992 9 20.85 0.08 24.90 -0.03 28.83 0.32 26.66 -0.04 +1992 10 21.15 0.08 24.65 -0.29 28.69 0.18 26.39 -0.25 +1992 11 21.84 0.10 24.77 -0.29 28.67 0.21 26.60 0.00 +1992 12 22.79 -0.12 24.97 -0.24 28.82 0.47 26.72 0.15 +1993 1 24.68 0.15 25.79 0.14 28.71 0.56 26.87 0.31 +1993 2 26.46 0.55 26.94 0.57 28.37 0.29 27.20 0.46 +1993 3 27.07 0.69 27.64 0.51 28.50 0.32 27.71 0.48 +1993 4 26.84 1.28 28.43 1.00 28.78 0.38 28.50 0.83 +1993 5 25.60 1.18 28.33 1.23 29.03 0.34 28.70 0.93 +1993 6 24.11 1.04 27.03 0.56 29.03 0.36 28.08 0.55 +1993 7 22.61 0.64 26.19 0.54 29.01 0.40 27.59 0.49 +1993 8 21.65 0.64 25.52 0.46 28.86 0.37 27.01 0.26 +1993 9 21.11 0.34 25.25 0.31 29.02 0.51 27.14 0.43 +1993 10 21.71 0.64 25.28 0.33 28.84 0.33 27.01 0.36 +1993 11 22.07 0.33 25.20 0.14 28.88 0.43 26.92 0.32 +1993 12 22.86 -0.05 25.30 0.09 28.85 0.50 26.79 0.22 +1994 1 24.56 0.02 25.84 0.18 28.54 0.39 26.74 0.19 +1994 2 25.89 -0.03 26.40 0.02 28.27 0.20 26.97 0.23 +1994 3 25.75 -0.62 26.88 -0.24 28.46 0.28 27.52 0.29 +1994 4 24.49 -1.08 27.15 -0.28 28.82 0.43 28.13 0.46 +1994 5 23.52 -0.90 27.17 0.06 29.20 0.51 28.27 0.50 +1994 6 22.31 -0.76 26.63 0.17 29.27 0.60 28.09 0.56 +1994 7 21.17 -0.80 25.61 -0.04 29.49 0.88 27.68 0.57 +1994 8 20.22 -0.79 24.93 -0.13 29.51 1.02 27.40 0.65 +1994 9 20.65 -0.12 24.97 0.03 29.38 0.87 27.25 0.54 +1994 10 22.04 0.97 25.65 0.70 29.51 1.00 27.53 0.89 +1994 11 22.27 0.53 26.17 1.12 29.60 1.15 27.95 1.35 +1994 12 23.75 0.85 26.23 1.02 29.56 1.22 28.02 1.45 +1995 1 25.48 0.94 26.51 0.86 29.24 1.09 27.74 1.18 +1995 2 26.25 0.33 26.90 0.52 29.16 1.09 27.67 0.94 +1995 3 26.09 -0.28 27.26 0.13 29.23 1.05 27.91 0.68 +1995 4 24.32 -1.25 27.20 -0.23 29.26 0.87 28.17 0.50 +1995 5 23.37 -1.05 26.55 -0.55 29.36 0.67 27.87 0.10 +1995 6 22.43 -0.64 26.30 -0.17 29.21 0.54 27.80 0.27 +1995 7 21.42 -0.55 25.65 0.00 29.03 0.42 27.24 0.14 +1995 8 20.46 -0.55 24.36 -0.70 28.81 0.32 26.42 -0.33 +1995 9 20.50 -0.27 24.05 -0.89 28.59 0.08 26.20 -0.50 +1995 10 20.62 -0.45 24.16 -0.78 28.52 0.01 26.08 -0.57 +1995 11 21.49 -0.25 24.22 -0.84 28.32 -0.13 25.82 -0.78 +1995 12 22.03 -0.87 24.45 -0.76 28.13 -0.22 25.86 -0.71 +1996 1 23.81 -0.73 25.06 -0.59 27.89 -0.27 25.83 -0.73 +1996 2 25.52 -0.40 25.84 -0.54 27.61 -0.46 25.98 -0.76 +1996 3 26.28 -0.09 26.75 -0.38 27.91 -0.27 26.73 -0.50 +1996 4 24.00 -1.57 26.83 -0.59 28.25 -0.15 27.42 -0.25 +1996 5 23.11 -1.31 26.63 -0.47 28.62 -0.07 27.65 -0.12 +1996 6 21.66 -1.41 26.10 -0.37 28.71 0.04 27.49 -0.04 +1996 7 20.72 -1.26 25.29 -0.36 28.65 0.04 27.02 -0.09 +1996 8 20.23 -0.78 24.78 -0.28 28.62 0.12 26.75 0.00 +1996 9 20.43 -0.34 24.53 -0.41 28.57 0.05 26.44 -0.27 +1996 10 20.52 -0.55 24.52 -0.42 28.62 0.11 26.49 -0.15 +1996 11 20.77 -0.97 24.56 -0.49 28.62 0.17 26.43 -0.17 +1996 12 21.68 -1.22 24.31 -0.90 28.52 0.18 26.13 -0.44 +1997 1 23.70 -0.83 24.80 -0.85 28.42 0.26 26.09 -0.47 +1997 2 26.08 0.16 25.78 -0.60 28.53 0.45 26.46 -0.28 +1997 3 27.17 0.80 26.97 -0.16 28.73 0.56 27.13 -0.10 +1997 4 26.74 1.17 27.50 0.07 29.33 0.94 27.97 0.31 +1997 5 26.77 2.35 28.03 0.92 29.51 0.82 28.63 0.85 +1997 6 26.15 3.08 28.23 1.76 29.37 0.70 28.86 1.33 +1997 7 25.59 3.61 27.99 2.34 29.41 0.80 28.86 1.76 +1997 8 24.95 3.94 27.75 2.69 29.31 0.82 28.69 1.94 +1997 9 24.69 3.92 27.82 2.88 29.54 1.03 28.89 2.19 +1997 10 24.64 3.57 28.09 3.15 29.51 1.00 29.14 2.50 +1997 11 25.85 4.11 28.40 3.35 29.45 1.00 29.13 2.52 +1997 12 27.08 4.18 28.53 3.32 29.27 0.93 29.04 2.48 +1998 1 28.12 3.58 28.71 3.06 29.06 0.91 28.98 2.43 +1998 2 28.82 2.90 28.86 2.48 28.90 0.82 28.71 1.97 +1998 3 29.24 2.87 29.10 1.97 28.83 0.66 28.66 1.43 +1998 4 28.45 2.88 29.16 1.74 28.77 0.38 28.64 0.98 +1998 5 27.36 2.94 28.53 1.42 28.87 0.18 28.47 0.70 +1998 6 25.19 2.12 27.04 0.57 28.46 -0.21 27.41 -0.12 +1998 7 23.61 1.64 25.60 -0.05 28.30 -0.31 26.52 -0.59 +1998 8 22.27 1.26 24.78 -0.28 27.99 -0.50 25.91 -0.84 +1998 9 21.31 0.54 24.19 -0.75 27.83 -0.68 25.66 -1.05 +1998 10 21.37 0.30 24.08 -0.86 27.51 -1.00 25.46 -1.19 +1998 11 21.60 -0.14 24.40 -0.66 27.41 -1.04 25.48 -1.12 +1998 12 22.81 -0.10 24.25 -0.96 27.19 -1.16 25.12 -1.45 +1999 1 24.23 -0.31 24.41 -1.24 26.89 -1.26 24.96 -1.59 +1999 2 25.73 -0.19 25.56 -0.82 26.90 -1.18 25.58 -1.16 +1999 3 26.47 0.10 26.81 -0.32 27.14 -1.04 26.43 -0.80 +1999 4 24.53 -1.04 26.90 -0.52 27.66 -0.73 26.92 -0.75 +1999 5 23.64 -0.78 26.55 -0.56 28.14 -0.55 26.99 -0.78 +1999 6 22.09 -0.98 25.89 -0.58 28.05 -0.62 26.66 -0.87 +1999 7 21.36 -0.61 25.03 -0.62 27.89 -0.72 26.28 -0.83 +1999 8 20.67 -0.34 24.36 -0.70 27.77 -0.73 25.82 -0.93 +1999 9 20.08 -0.69 23.91 -1.03 27.96 -0.56 25.77 -0.94 +1999 10 20.46 -0.61 23.77 -1.18 27.93 -0.58 25.62 -1.03 +1999 11 20.62 -1.12 23.72 -1.34 27.54 -0.91 25.20 -1.40 +1999 12 22.42 -0.48 23.76 -1.45 27.30 -1.05 24.97 -1.60 +2000 1 24.01 -0.53 24.12 -1.53 27.17 -0.99 24.88 -1.68 +2000 2 25.38 -0.54 25.35 -1.03 26.88 -1.20 25.23 -1.50 +2000 3 25.67 -0.70 26.78 -0.35 26.95 -1.22 26.27 -0.96 +2000 4 25.53 -0.04 27.46 0.04 27.40 -0.99 26.99 -0.68 +2000 5 24.27 -0.15 26.85 -0.26 27.90 -0.79 27.10 -0.67 +2000 6 22.93 -0.13 26.01 -0.46 28.25 -0.42 26.97 -0.56 +2000 7 21.47 -0.50 25.24 -0.41 28.41 -0.20 26.69 -0.41 +2000 8 20.07 -0.94 24.74 -0.31 28.28 -0.21 26.46 -0.29 +2000 9 20.64 -0.13 24.73 -0.21 28.37 -0.14 26.32 -0.39 +2000 10 20.90 -0.17 24.60 -0.34 28.27 -0.24 26.11 -0.53 +2000 11 20.67 -1.07 24.43 -0.62 28.06 -0.39 26.01 -0.59 +2000 12 22.08 -0.83 24.73 -0.48 27.66 -0.68 25.83 -0.74 +2001 1 24.24 -0.29 25.37 -0.29 27.49 -0.66 25.93 -0.63 +2001 2 26.11 0.20 26.38 0.01 27.38 -0.70 26.24 -0.49 +2001 3 26.89 0.52 27.31 0.18 27.68 -0.50 26.89 -0.35 +2001 4 25.99 0.42 27.52 0.09 28.16 -0.23 27.38 -0.28 +2001 5 23.98 -0.44 27.21 0.11 28.65 -0.04 27.70 -0.08 +2001 6 22.71 -0.36 26.44 -0.03 28.91 0.24 27.60 0.07 +2001 7 21.48 -0.50 25.63 -0.02 29.12 0.51 27.37 0.26 +2001 8 20.24 -0.77 25.03 -0.03 28.98 0.48 26.95 0.20 +2001 9 19.73 -1.04 24.49 -0.45 29.11 0.60 26.74 0.04 +2001 10 20.14 -0.93 24.59 -0.36 29.08 0.58 26.66 0.02 +2001 11 20.68 -1.06 24.53 -0.53 28.93 0.48 26.47 -0.13 +2001 12 21.73 -1.17 24.79 -0.42 28.77 0.42 26.32 -0.25 +2002 1 24.09 -0.45 25.23 -0.42 28.84 0.69 26.49 -0.07 +2002 2 26.23 0.31 26.22 -0.15 28.70 0.63 26.83 0.09 +2002 3 27.39 1.01 27.51 0.38 28.62 0.44 27.48 0.25 +2002 4 26.44 0.87 27.71 0.28 29.14 0.75 28.00 0.34 +2002 5 25.29 0.87 27.68 0.58 29.61 0.92 28.44 0.66 +2002 6 23.28 0.21 27.30 0.83 29.58 0.91 28.48 0.95 +2002 7 21.64 -0.34 26.31 0.67 29.53 0.92 28.03 0.93 +2002 8 21.32 0.31 25.62 0.56 29.41 0.92 27.67 0.92 +2002 9 21.42 0.65 25.69 0.75 29.41 0.90 27.75 1.05 +2002 10 21.85 0.78 25.94 1.00 29.52 1.01 27.95 1.31 +2002 11 22.85 1.11 26.43 1.37 29.66 1.21 28.14 1.54 +2002 12 24.05 1.15 26.62 1.41 29.57 1.23 28.08 1.52 +2003 1 25.01 0.47 26.68 1.02 29.09 0.94 27.68 1.12 +2003 2 26.27 0.35 27.01 0.63 28.94 0.86 27.63 0.89 +2003 3 26.91 0.53 27.48 0.35 28.95 0.78 27.84 0.61 +2003 4 25.41 -0.15 27.22 -0.20 28.94 0.55 27.75 0.08 +2003 5 23.24 -1.18 26.44 -0.66 29.01 0.32 27.42 -0.36 +2003 6 22.15 -0.91 26.20 -0.27 29.17 0.50 27.56 0.03 +2003 7 21.50 -0.48 26.16 0.52 29.19 0.58 27.66 0.55 +2003 8 21.25 0.24 25.65 0.59 29.09 0.59 27.32 0.57 +2003 9 20.75 -0.02 25.20 0.26 29.05 0.54 27.10 0.40 +2003 10 21.70 0.63 25.58 0.63 29.22 0.71 27.33 0.69 +2003 11 22.33 0.59 25.85 0.80 29.08 0.62 27.13 0.53 +2003 12 23.60 0.70 26.07 0.86 28.97 0.63 27.04 0.47 +2004 1 25.09 0.55 26.23 0.58 28.71 0.56 26.90 0.35 +2004 2 26.47 0.55 26.81 0.44 28.61 0.53 27.04 0.31 +2004 3 26.12 -0.26 27.47 0.34 28.53 0.36 27.38 0.15 +2004 4 25.27 -0.30 27.62 0.19 28.82 0.43 27.91 0.24 +2004 5 23.44 -0.98 26.96 -0.14 29.18 0.49 28.02 0.24 +2004 6 22.54 -0.53 26.55 0.08 29.24 0.57 27.93 0.40 +2004 7 21.26 -0.72 25.94 0.30 29.36 0.75 27.86 0.75 +2004 8 20.79 -0.22 25.47 0.41 29.47 0.98 27.67 0.92 +2004 9 20.83 0.06 25.42 0.48 29.54 1.02 27.58 0.88 +2004 10 21.56 0.49 25.64 0.70 29.53 1.03 27.53 0.89 +2004 11 22.88 1.14 25.84 0.79 29.49 1.04 27.37 0.77 +2004 12 23.39 0.49 25.95 0.74 29.41 1.07 27.38 0.81 +2005 1 24.61 0.07 26.10 0.45 29.23 1.08 27.32 0.76 +2005 2 25.09 -0.83 26.38 0.00 28.91 0.83 27.17 0.43 +2005 3 25.23 -1.14 27.12 -0.01 28.89 0.71 27.63 0.40 +2005 4 25.21 -0.36 27.62 0.20 29.03 0.64 28.02 0.36 +2005 5 24.31 -0.11 27.56 0.46 29.24 0.55 28.30 0.52 +2005 6 22.60 -0.47 26.86 0.39 29.20 0.53 27.99 0.46 +2005 7 21.61 -0.37 26.07 0.42 28.93 0.32 27.45 0.34 +2005 8 20.47 -0.54 25.44 0.38 28.78 0.29 27.11 0.36 +2005 9 20.00 -0.77 24.88 -0.05 28.85 0.34 26.79 0.09 +2005 10 19.89 -1.18 24.83 -0.12 28.85 0.34 26.70 0.06 +2005 11 20.61 -1.13 23.92 -1.14 28.65 0.19 26.13 -0.48 +2005 12 22.20 -0.70 24.01 -1.20 28.34 0.00 25.80 -0.77 +2006 1 24.76 0.22 24.66 -0.99 27.91 -0.25 25.68 -0.87 +2006 2 26.52 0.60 26.02 -0.35 27.58 -0.50 26.15 -0.59 +2006 3 26.22 -0.15 26.83 -0.30 27.82 -0.35 26.80 -0.43 +2006 4 24.29 -1.28 27.18 -0.24 28.36 -0.04 27.54 -0.13 +2006 5 23.84 -0.58 27.30 0.19 28.91 0.21 27.91 0.13 +2006 6 22.82 -0.24 26.73 0.27 29.15 0.48 27.82 0.29 +2006 7 22.20 0.22 25.93 0.28 29.14 0.53 27.36 0.25 +2006 8 21.89 0.88 25.68 0.62 29.20 0.71 27.25 0.50 +2006 9 21.93 1.16 25.77 0.83 29.30 0.79 27.32 0.61 +2006 10 22.46 1.39 26.00 1.06 29.43 0.92 27.47 0.83 +2006 11 22.61 0.87 26.39 1.33 29.55 1.09 27.81 1.21 +2006 12 24.15 1.24 26.63 1.42 29.45 1.11 27.86 1.29 +2007 1 25.82 1.28 26.68 1.03 28.98 0.82 27.36 0.81 +2007 2 26.81 0.90 26.56 0.18 28.69 0.61 26.98 0.24 +2007 3 26.41 0.04 26.77 -0.36 28.81 0.64 27.25 0.02 +2007 4 24.96 -0.61 26.93 -0.50 28.88 0.49 27.56 -0.10 +2007 5 23.05 -1.37 26.40 -0.70 28.90 0.21 27.54 -0.23 +2007 6 21.61 -1.46 26.11 -0.35 28.92 0.25 27.54 0.01 +2007 7 21.05 -0.93 25.14 -0.51 28.80 0.19 26.99 -0.12 +2007 8 19.95 -1.06 24.24 -0.82 28.57 0.08 26.41 -0.34 +2007 9 19.85 -0.91 23.84 -1.10 28.21 -0.31 25.86 -0.84 +2007 10 19.31 -1.76 23.85 -1.09 28.09 -0.42 25.73 -0.92 +2007 11 19.82 -1.92 23.76 -1.30 27.90 -0.56 25.47 -1.14 +2007 12 21.15 -1.76 23.91 -1.30 27.70 -0.64 25.40 -1.17 +2008 1 24.24 -0.30 24.42 -1.23 27.18 -0.98 25.06 -1.50 +2008 2 26.39 0.47 25.34 -1.04 26.79 -1.29 25.19 -1.55 +2008 3 26.91 0.53 26.54 -0.59 27.22 -0.95 26.16 -1.07 +2008 4 25.68 0.12 27.36 -0.07 27.53 -0.86 26.97 -0.70 +2008 5 24.43 0.00 27.15 0.05 27.93 -0.76 27.19 -0.58 +2008 6 23.19 0.12 26.49 0.02 28.10 -0.57 27.15 -0.38 +2008 7 23.02 1.05 26.01 0.36 28.18 -0.43 27.00 -0.11 +2008 8 22.14 1.13 25.56 0.51 28.27 -0.22 26.81 0.06 +2008 9 21.60 0.84 25.36 0.42 28.25 -0.27 26.70 0.00 +2008 10 21.39 0.32 25.48 0.53 28.23 -0.28 26.66 0.02 +2008 11 21.54 -0.20 25.25 0.20 28.16 -0.29 26.52 -0.08 +2008 12 22.73 -0.18 24.59 -0.62 27.83 -0.52 25.78 -0.79 +2009 1 24.39 -0.15 25.26 -0.39 27.47 -0.69 25.69 -0.87 +2009 2 25.53 -0.38 26.16 -0.22 27.34 -0.74 26.02 -0.71 +2009 3 25.48 -0.89 26.62 -0.51 27.85 -0.32 26.66 -0.57 +2009 4 25.84 0.27 27.38 -0.04 28.36 -0.03 27.53 -0.13 +2009 5 24.95 0.52 27.57 0.47 29.09 0.40 28.10 0.33 +2009 6 24.09 1.02 27.15 0.68 29.15 0.48 28.06 0.53 +2009 7 23.09 1.12 26.56 0.91 29.13 0.52 27.88 0.78 +2009 8 22.03 1.02 25.90 0.84 29.20 0.71 27.51 0.76 +2009 9 21.48 0.71 25.74 0.80 29.24 0.73 27.48 0.78 +2009 10 21.64 0.57 25.82 0.87 29.68 1.17 27.73 1.09 +2009 11 21.99 0.25 26.13 1.07 29.90 1.44 28.17 1.57 +2009 12 23.21 0.31 26.69 1.48 29.80 1.45 28.51 1.94 +2010 1 24.70 0.17 26.86 1.21 29.58 1.42 28.32 1.76 +2010 2 26.16 0.24 27.37 1.00 29.25 1.18 28.19 1.45 +2010 3 26.54 0.16 28.04 0.91 29.18 1.01 28.46 1.23 +2010 4 26.04 0.47 28.08 0.66 29.28 0.89 28.49 0.82 +2010 5 24.75 0.33 27.34 0.24 29.27 0.57 28.13 0.36 +2010 6 23.26 0.19 26.32 -0.15 28.76 0.09 27.35 -0.18 +2010 7 21.11 -0.87 24.95 -0.70 28.33 -0.28 26.44 -0.67 +2010 8 19.49 -1.52 24.21 -0.85 27.82 -0.68 25.70 -1.05 +2010 9 19.28 -1.49 23.83 -1.11 27.47 -1.05 25.36 -1.34 +2010 10 19.73 -1.34 23.67 -1.28 27.35 -1.16 25.25 -1.40 +2010 11 20.44 -1.30 23.68 -1.37 27.47 -0.99 25.20 -1.41 +2010 12 22.07 -0.83 24.00 -1.21 27.54 -0.81 25.29 -1.28 diff --git a/statsmodels/datasets/engel/__init__.py b/statsmodels/datasets/engel/__init__.py new file mode 100644 index 0000000..df22d8b --- /dev/null +++ b/statsmodels/datasets/engel/__init__.py @@ -0,0 +1 @@ +from .data import * diff --git a/statsmodels/datasets/engel/data.py b/statsmodels/datasets/engel/data.py new file mode 100644 index 0000000..c054903 --- /dev/null +++ b/statsmodels/datasets/engel/data.py @@ -0,0 +1,65 @@ +#! /usr/bin/env python + +"""Name of dataset.""" + +__docformat__ = 'restructuredtext' + +COPYRIGHT = """This is public domain.""" +TITLE = """Engel (1857) food expenditure data""" +SOURCE = """ +This dataset was used in Koenker and Bassett (1982) and distributed alongside +the ``quantreg`` package for R. + +Koenker, R. and Bassett, G (1982) Robust Tests of Heteroscedasticity based on +Regression Quantiles; Econometrica 50, 43-61. + +Roger Koenker (2012). quantreg: Quantile Regression. R package version 4.94. +http://CRAN.R-project.org/package=quantreg +""" + +DESCRSHORT = """Engel food expenditure data.""" + +DESCRLONG = """Data on income and food expenditure for 235 working class households in 1857 Belgium.""" + +#suggested notes +NOTE = """:: + + Number of observations: 235 + Number of variables: 2 + Variable name definitions: + income - annual household income (Belgian francs) + foodexp - annual household food expenditure (Belgian francs) +""" + +import numpy as np +from statsmodels.datasets import utils as du +from os.path import dirname, abspath + +def load(): + """ + Load the data and return a Dataset class instance. + + Returns + ------- + Dataset instance: + See DATASET_PROPOSAL.txt for more information. + """ + data = _get_data() + ##### SET THE INDICES ##### + #NOTE: None for exog_idx is the complement of endog_idx + return du.process_recarray(data, endog_idx=0, exog_idx=None, dtype=float) + +def load_pandas(): + data = _get_data() + ##### SET THE INDICES ##### + #NOTE: None for exog_idx is the complement of endog_idx + return du.process_recarray_pandas(data, endog_idx=0, exog_idx=None, + dtype=float) + +def _get_data(): + filepath = dirname(abspath(__file__)) + ##### EDIT THE FOLLOWING TO POINT TO DatasetName.csv ##### + with open(filepath + '/engel.csv', 'rb') as f: + data = np.recfromtxt(f, + delimiter=",", names = True, dtype=float) + return data diff --git a/statsmodels/datasets/engel/engel.csv b/statsmodels/datasets/engel/engel.csv new file mode 100644 index 0000000..4f71056 --- /dev/null +++ b/statsmodels/datasets/engel/engel.csv @@ -0,0 +1,236 @@ +income","foodexp" +420.157650843928,255.839424594576 +541.411706721205,310.958667059145 +901.157456651663,485.680014171085 +639.08022868883,402.997355544163 +750.875605828476,495.560774933776 +945.7989310482,633.797815132393 +829.397886847186,630.756567705217 +979.164835837914,700.440904266032 +1309.87894037831,830.95862150535 +1492.39874437426,815.360217290461 +502.838980218067,338.001387329587 +616.71684724229,412.361338428638 +790.922511291545,520.000617981121 +555.878641643074,452.401472907332 +713.44118368415,512.720057836885 +838.756132722629,658.839530303595 +535.076645900387,392.599496749012 +596.440805359932,443.558633799595 +924.561896582212,640.11637771341 +487.758301817955,333.839386975747 +692.639734238467,466.958318528848 +997.876977824175,543.396904263231 +506.999491179525,317.719843756484 +654.158711401758,424.320896352573 +933.919270183382,518.961656053407 +433.681329252018,338.001387329587 +587.596213341684,419.641174631375 +896.474635643808,476.320048933563 +454.478223782524,386.36016331012 +584.998919370362,423.278349805554 +800.799016617394,503.35717119023 +502.436869899465,354.638868545299 +713.519666530832,497.31816882899 +906.000628725279,588.519463958722 +880.596923786325,654.597144597117 +796.828919368547,550.727427597965 +854.87905261442,528.376976714303 +1167.37159427026,640.481348055373 +523.800035579844,401.320355546637 +670.779185433114,435.999021900918 +377.058368850099,276.560609645838 +851.543001748297,588.348818059025 +1121.09369365137,664.19780220393 +625.517933400268,444.860166410776 +805.537696174017,462.899514863823 +558.581201465033,377.779238546012 +884.400487319312,553.15043561635 +1257.49886576834,810.896154761447 +2051.17894099901,1067.95405614074 +1466.33299214604,1049.87879168732 +730.098896774438,522.701209676143 +800.799016617394,572.080662617684 +1245.69638760971,907.396944580766 +1201.00021368196,811.57759369573 +634.400209148622,427.797520201042 +956.231463138833,649.998464123521 +1148.60104702955,860.600154559902 +1768.82364982203,1143.42108582835 +2822.53303466609,2032.67919020832 +922.354832141967,590.618327009967 +2293.19197144236,1570.39113831708 +627.472597042135,483.480024661708 +889.980898378682,600.480399087121 +1162.19995392922,696.202105745481 +1197.07935707754,774.796179057776 +530.797185462728,390.598430399482 +1142.15259256708,612.56190089616 +1088.00388697846,708.762151593178 +484.661156316503,296.919185772441 +1536.02010067662,1071.46269646941 +678.897392141278,496.597580037315 +671.880165854403,503.39744137471 +690.468256477202,357.641110879089 +860.694825783725,430.337592716917 +873.309484596291,624.699041398883 +894.459835214087,582.54125094185 +1148.64699199033,580.221542246938 +926.876192988813,543.88074278423 +839.041358293354,588.637179622688 +829.49742056551,627.99989545798 +1264.00432957802,712.101174262357 +1937.97714636527,968.394940061335 +698.831741432851,482.581587621304 +920.419919363967,593.169385581544 +1897.57113999412,1033.56575426925 +891.682386298282,693.679473449282 +889.6783563083,693.679473449282 +1221.48181114807,761.279065822776 +544.599139402161,361.398056338879 +1031.44911476975,628.452218199356 +1462.94967217323,771.44856441849 +830.435282442915,757.118666447887 +975.04146665886,821.59699408795 +1337.99833996025,1022.3201704203 +867.64270523161,679.440727360101 +725.745933703277,538.749115686801 +989.005606041026,679.998097246959 +1525.00047421177,977.003270959677 +672.196023753147,561.201488176248 +923.397682201603,728.399746623589 +472.321548280698,372.318622584609 +590.760092419618,361.52095256921 +940.921768902254,517.919590751206 +643.357141462033,459.817650989876 +2551.66151377579,863.919851470995 +1795.32258882792,831.440717300088 +1165.77339020587,534.761043791083 +815.62117431089,392.050242021584 +1264.20658645087,934.975195444102 +1095.40561684263,813.308096301318 +447.447852411217,263.709996170628 +1178.97417954918,769.083849021127 +975.802295687602,630.586286420944 +1017.85220007186,645.987400679307 +423.879832013577,319.558386349475 +558.776739102636,348.451830104442 +943.248718270872,614.506803163417 +1348.30024452767,662.009562038758 +2340.61735387973,1504.37077491258 +587.179168098792,406.218015716283 +1540.97405699008,692.1688993212 +1115.84807481956,588.137050604953 +1044.68428590432,511.260885979623 +1389.79286912095,700.559989341702 +2497.78595383858,1301.14509754583 +1585.38094296753,879.066017413729 +1862.04383602348,912.885078250154 +2008.8546243469,1509.7811718462 +697.309947594492,484.060548936204 +571.251746766114,399.670317095029 +598.346489479165,444.100105563446 +461.097722534667,248.810111222236 +977.110747230569,527.801359578015 +883.984916757004,500.631349055309 +718.359399343153,436.810734740578 +543.897059451262,374.799044124691 +1587.34803468162,726.392135101241 +4957.81302447901,1827.1999644396 +969.68376220836,523.49108470832 +419.998021268147,334.99982183865 +561.998960360707,473.200883889103 +689.598814337616,581.202945705675 +1398.5202607169,929.75396743285 +820.816847571835,591.197416678028 +875.171616264683,637.548275219478 +1392.44991016741,674.950935444337 +1256.31737222348,776.758895179758 +1362.85902988814,959.516968477919 +1999.25521962472,1250.96433391432 +1209.47299210597,737.820079380279 +1125.0356465964,810.677242354166 +1827.40096749065,983.000864895715 +1014.15395295671,708.896829195949 +880.394409783857,633.120014158391 +2432.39099224122,1424.80465628899 +1177.85468592228,830.95862150535 +1222.5938655042,925.579474233555 +1519.58112468928,1162.00239672989 +687.663761691575,383.457962724518 +953.11922427465,621.117329201764 +953.11922427465,621.117329201764 +953.11922427465,621.117329201764 +939.04180595405,548.600231233027 +1283.40245730726,745.235294456105 +1511.57888086542,837.80049554801 +1342.58212809281,795.34024163682 +511.797991841133,418.597567936084 +689.798826994207,508.797449887606 +1532.30742618103,883.278011623353 +1056.08082482784,742.527569034242 +387.319525632704,242.32020192074 +387.319525632704,242.32020192074 +410.998678844171,266.00098186588 +832.755431984518,614.75880260907 +614.998605300573,385.318397885378 +887.465812960725,515.619969025557 +1024.81767735549,708.478703425954 +1006.43533940422,734.235630810297 +725.999989237198,433.000983776039 +494.417350707113,327.418772037758 +748.641327251627,429.039933638385 +987.64171960278,619.640827692018 +788.09607104789,400.798978053224 +831.79831368624,620.800640126449 +1139.49447493599,819.996440995918 +507.516894491359,360.878017655466 +576.197221195524,395.760804612775 +696.59905406528,442.000052121661 +650.817978373872,404.03843113149 +949.580207412905,670.799309110531 +497.119281341608,297.5701513364 +570.167398903935,353.488163131684 +724.730600295316,383.93758487932 +408.339934376479,284.800803268761 +638.671348198183,431.099964756245 +1225.78900333424,801.351758612919 +715.370077715236,448.451258996436 +800.470756318541,577.911070749254 +975.597398720442,570.521012300081 +1613.75654835121,865.320535878418 +608.501878790717,444.557764325978 +958.663378279956,680.419826789901 +835.942641428986,576.277894453487 +873.737511101673,631.798175131743 +951.44320976533,608.641850318947 +473.002181248345,300.999920310599 +601.003044352051,377.998414059123 +713.99788489267,397.001476569931 +829.29836507219,588.519463958722 +959.795268750367,681.761575036767 +1212.96129506839,807.360270100159 +958.874307424532,696.801097085781 +1129.44314702273,811.196241851397 +1943.04187331083,1305.72014134299 +539.638785503439,442.000052121661 +463.599021125583,353.601297444411 +562.640004501253,468.000797511221 +736.758383070776,526.75734679978 +1415.44606403432,890.239030266526 +2208.78970565549,1318.80328223672 +636.000913716338,331.000537750629 +759.401026863119,416.401525383919 +1078.83819961899,596.840554600565 +499.751012804117,408.499218009175 +1020.02253584507,775.020902533032 +1595.1610788589,1138.16204602323 +776.595792938105,485.519766208776 +1230.92352504251,772.761142353133 +1807.95201459536,993.96301727137 +415.440747985411,305.438973730216 +440.51742415637,306.519078570937 +541.200597324592,299.199327967538 +581.35989168777,468.000797511221 +743.077242789534,522.601905880464 +1057.67671146451,750.320163419201 diff --git a/statsmodels/datasets/fair/__init__.py b/statsmodels/datasets/fair/__init__.py new file mode 100644 index 0000000..df22d8b --- /dev/null +++ b/statsmodels/datasets/fair/__init__.py @@ -0,0 +1 @@ +from .data import * diff --git a/statsmodels/datasets/fair/data.py b/statsmodels/datasets/fair/data.py new file mode 100644 index 0000000..d5835e9 --- /dev/null +++ b/statsmodels/datasets/fair/data.py @@ -0,0 +1,83 @@ +#! /usr/bin/env python + +"""Fair's Extramarital Affairs Data""" + +__docformat__ = 'restructuredtext' + +COPYRIGHT = """Included with permission of the author.""" +TITLE = """Affairs dataset""" +SOURCE = """ +Fair, Ray. 1978. "A Theory of Extramarital Affairs," `Journal of Political +Economy`, February, 45-61. + +The data is available at http://fairmodel.econ.yale.edu/rayfair/pdf/2011b.htm +""" + +DESCRSHORT = """Extramarital affair data.""" + +DESCRLONG = """Extramarital affair data used to explain the allocation +of an individual's time among work, time spent with a spouse, and time +spent with a paramour. The data is used as an example of regression +with censored data.""" + +#suggested notes +NOTE = """:: + + Number of observations: 6366 + Number of variables: 9 + Variable name definitions: + + rate_marriage : How rate marriage, 1 = very poor, 2 = poor, 3 = fair, + 4 = good, 5 = very good + age : Age + yrs_married : No. years married. Interval approximations. See + original paper for detailed explanation. + children : No. children + religious : How relgious, 1 = not, 2 = mildly, 3 = fairly, + 4 = strongly + educ : Level of education, 9 = grade school, 12 = high + school, 14 = some college, 16 = college graduate, + 17 = some graduate school, 20 = advanced degree + occupation : 1 = student, 2 = farming, agriculture; semi-skilled, + or unskilled worker; 3 = white-colloar; 4 = teacher + counselor social worker, nurse; artist, writers; + technician, skilled worker, 5 = managerial, + administrative, business, 6 = professional with + advanced degree + occupation_husb : Husband's occupation. Same as occupation. + affairs : measure of time spent in extramarital affairs + + See the original paper for more details. +""" + +import numpy as np +from statsmodels.datasets import utils as du +from os.path import dirname, abspath + +def load(): + """ + Load the data and return a Dataset class instance. + + Returns + ------- + Dataset instance: + See DATASET_PROPOSAL.txt for more information. + """ + data = _get_data() + ##### SET THE INDICES ##### + #NOTE: None for exog_idx is the complement of endog_idx + return du.process_recarray(data, endog_idx=8, exog_idx=None, dtype=float) + +def load_pandas(): + data = _get_data() + ##### SET THE INDICES ##### + #NOTE: None for exog_idx is the complement of endog_idx + return du.process_recarray_pandas(data, endog_idx=8, exog_idx=None, + dtype=float) + +def _get_data(): + filepath = dirname(abspath(__file__)) + ##### EDIT THE FOLLOWING TO POINT TO DatasetName.csv ##### + with open(filepath + '/fair.csv', 'rb') as f: + data = np.recfromtxt(f, delimiter=",", names=True, dtype=float) + return data diff --git a/statsmodels/datasets/fair/fair.csv b/statsmodels/datasets/fair/fair.csv new file mode 100644 index 0000000..cc8d635 --- /dev/null +++ b/statsmodels/datasets/fair/fair.csv @@ -0,0 +1,6367 @@ +"rate_marriage","age","yrs_married","children","religious","educ","occupation","occupation_husb","affairs" +3,32,9,3,3,17,2,5,0.1111111 +3,27,13,3,1,14,3,4,3.2307692 +4,22,2.5,0,1,16,3,5,1.3999996 +4,37,16.5,4,3,16,5,5,0.7272727 +5,27,9,1,1,14,3,4,4.666666 +4,27,9,0,2,14,3,4,4.666666 +5,37,23,5.5,2,12,5,4,0.8521735 +5,37,23,5.5,2,12,2,3,1.826086 +3,22,2.5,0,2,12,3,3,4.7999992 +3,27,6,0,1,16,3,5,1.333333 +2,27,6,2,1,16,3,5,3.2666645 +5,27,6,2,3,14,3,5,2.041666 +3,37,16.5,5.5,1,12,2,3,0.4848484 +5,27,6,0,2,14,3,2,2 +4,22,6,1,1,14,4,4,3.2666645 +4,37,9,2,2,14,3,6,1.3611107 +4,27,6,1,1,12,3,5,2 +1,37,23,5.5,4,14,5,2,1.826086 +2,42,23,2,2,20,4,4,1.826086 +4,37,6,0,2,16,5,4,2.041666 +5,22,2.5,0,2,14,3,4,7.8399963 +3,37,16.5,5.5,2,9,3,2,2.545454 +3,42,23,5.5,3,12,5,4,0.5326087 +2,27,9,2,4,20,3,4,0.6222222 +4,27,6,1,2,12,5,4,0.5833333 +5,27,2.5,0,3,16,4,1,4.7999992 +2,27,6,2,2,12,2,5,0.1666666 +5,37,13,1,3,12,3,4,0.6153846 +2,32,16.5,2,2,12,4,2,1.1878777 +3,27,6,1,1,14,3,6,11.1999989 +3,32,16.5,4,3,14,5,5,1.1878777 +3,27,9,2,1,14,3,4,2.1777763 +3,37,16.5,3,3,14,3,2,0.4848484 +4,32,16.5,5.5,4,12,2,4,0.7272727 +5,42,16.5,4,3,16,4,6,0.7272727 +3,27,9,2,2,12,5,2,1.333333 +3,17.5,0.5,0,1,12,3,2,7 +4,42,23,5.5,2,20,3,2,0.5217391 +5,37,16.5,3,3,12,3,5,0.2121212 +4,22,2.5,1,2,14,3,5,0.4 +4,27,2.5,0,2,16,4,1,1.3999996 +4,22,2.5,0,2,14,3,6,3.1999998 +4,37,13,3,2,16,4,5,1.5076914 +4,22,2.5,0,2,16,3,4,7.8399963 +4,22,2.5,0,1,14,1,2,7.8399963 +5,22,2.5,0,3,12,3,2,0.4 +5,22,2.5,0,3,16,4,5,4.8999996 +3,42,23,4,3,16,5,5,0.0434783 +5,32,13,3,3,14,4,4,0.0769231 +5,22,6,2,2,14,3,4,0.5833333 +3,27,2.5,1,4,17,4,6,4.7999992 +2,42,23,3,3,14,3,5,0.8521735 +4,22,2.5,0,1,17,6,6,4.7999992 +2,42,23,3,3,14,3,5,2.9217386 +4,42,23,2,2,14,4,4,0.5217391 +4,42,23,3,3,12,5,4,0.5326087 +4,37,16.5,2,3,14,3,4,0.4848484 +4,27,2.5,0,2,20,4,5,7.8399963 +2,32,9,2,2,12,2,2,1.333333 +4,42,13,0,1,14,3,4,1.5076914 +4,22,6,2,1,12,3,4,1.333333 +5,32,16.5,3,3,14,2,4,1.1878777 +4,42,13,0,2,12,3,2,1.5076914 +5,27,9,1,3,14,5,5,1.333333 +5,22,6,2,2,12,2,5,7 +2,27,16.5,2,3,16,4,5,0.7272727 +5,37,13,2,1,12,3,4,1.5076914 +5,27,6,0,2,14,3,4,2.041666 +2,27,2.5,1,1,12,2,3,26.8799896 +5,42,23,5.5,4,20,5,4,0.5326087 +5,27,6,0,2,16,5,2,2 +5,37,16.5,3,2,14,3,5,0.2121212 +2,32,9,2,2,16,3,5,1.333333 +3,37,16.5,5.5,3,12,5,5,2.545454 +5,27,6,2,2,12,3,4,0.1666666 +5,32,16.5,3,1,12,4,4,0.4848484 +5,27,9,2,1,14,5,1,1.333333 +4,22,2.5,0,2,16,5,5,0.4 +5,32,16.5,2,4,14,5,2,0.4848484 +2,22,6,2,2,14,2,5,0.1666666 +3,32,13,3,1,12,4,5,1.5076914 +5,32,16.5,3,2,12,3,4,0.0606061 +3,27,6,2,1,14,3,6,2.041666 +5,22,2.5,0,1,20,4,4,0.4 +3,32,9,2,3,14,3,5,0.8888888 +3,22,2.5,1,2,14,3,2,4.7999992 +3,22,2.5,0,2,16,3,4,4.7999992 +5,27,9,2,1,16,4,6,1.333333 +3,42,23,2,2,12,2,2,0.1521739 +3,37,16.5,3,2,17,3,2,1.1878777 +5,32,13,2,2,12,2,6,0.9423077 +1,27,13,2,2,12,4,4,1.5076914 +5,27,2.5,0,2,14,3,2,0.4 +5,27,9,0,1,14,4,4,0.1111111 +5,32,13,2,2,16,3,3,0.9423077 +4,27,9,2,2,14,3,5,0.3888888 +3,22,2.5,1,3,14,5,4,4.8999996 +2,37,23,2,2,12,5,5,0.5326087 +2,27,6,2,1,14,3,5,2.041666 +4,27,2.5,1,2,12,5,2,4.8999996 +3,37,13,5.5,2,12,5,5,5.1692305 +5,37,16.5,4,1,12,3,6,1.696969 +5,22,2.5,0,1,14,3,5,1.3999996 +4,42,13,0,1,14,5,5,0.0769231 +5,27,9,1,1,14,5,5,2.1777763 +4,22,2.5,0,1,14,3,4,1.3999996 +4,22,2.5,1,2,14,5,4,7.8399963 +4,27,6,2,3,16,4,6,0.5833333 +2,32,16.5,1,2,14,3,5,2.7151508 +3,27,13,2,1,14,3,4,0.9423077 +4,22,0.5,0,2,12,3,2,7 +5,27,6,1,1,16,4,3,3.2666645 +2,27,9,2,2,14,3,5,4.666666 +3,27,9,2,2,12,3,4,2.1777763 +4,32,16.5,3,3,12,2,3,0.4848484 +5,22,2.5,0,1,12,3,3,1.3999996 +4,22,2.5,1,2,14,4,4,3.1999998 +1,22,2.5,0,2,9,2,4,11.1999998 +3,32,13,2,1,20,6,6,1.5076914 +5,32,9,1,2,14,3,5,1.333333 +5,27,2.5,0,1,20,6,4,1.3999996 +4,27,9,2,2,14,2,5,0.3888888 +4,27,6,0,3,12,5,2,2 +2,22,2.5,0,3,14,3,2,4.8999996 +3,27,9,2,3,17,4,6,1.3611107 +4,27,6,2,1,14,3,4,2.041666 +5,22,2.5,1,1,12,2,2,1.3999996 +4,27,16.5,4,3,12,2,6,0.2121212 +2,27,6,1,2,14,4,3,3.2666645 +2,32,6,1,1,17,4,4,7.4666672 +5,27,6,2,2,16,4,3,0.5833333 +4,42,23,3,3,17,4,4,0.5217391 +4,32,9,2,1,16,4,6,0.1111111 +3,42,23,4,3,14,4,3,0.5217391 +5,27,6,2,1,12,5,2,2 +2,42,23,4,4,20,4,5,0.1521739 +3,32,6,0,2,20,4,5,4.666666 +5,27,2.5,0,2,14,3,2,1.3999996 +2,42,16.5,3,3,12,3,5,1.1878777 +4,37,23,3,2,12,5,4,1.826086 +3,27,2.5,0,2,17,4,4,1.3999996 +3,32,13,3,3,20,4,6,3.2307692 +3,27,2.5,0,2,14,3,4,4.7999992 +3,42,16.5,2,1,16,3,5,1.1878777 +4,22,2.5,0,2,14,5,5,0.4 +5,27,6,0,3,14,3,5,0.5833333 +3,22,2.5,0,1,12,2,4,7.8399963 +4,27,6,0,3,14,2,4,11.1999989 +3,27,9,2,2,16,3,4,1.3611107 +2,27,9,1,2,14,2,2,4.9777775 +3,22,2.5,0,3,12,3,3,4.7999992 +4,32,16.5,4,4,14,3,5,2.7151508 +5,32,2.5,2,2,14,3,4,0.4 +4,27,2.5,0,2,14,3,5,0.4 +5,32,9,3,3,16,4,4,0.1111111 +3,32,13,2,2,12,3,5,0.2692307 +3,32,16.5,3,3,12,3,2,0.7272727 +5,42,23,2,2,14,5,5,0.5217391 +3,27,16.5,4,3,14,4,2,0.7424242 +3,32,16.5,4,2,20,4,4,0.7272727 +4,22,2.5,2,2,14,5,2,4.7999992 +5,27,6,0,1,12,3,4,7.4666672 +4,37,16.5,3,4,16,5,5,0.2121212 +3,22,2.5,0,2,12,3,5,1.3999996 +4,32,13,2,2,14,3,5,1.5076914 +5,42,23,5.5,3,17,4,4,0.5217391 +2,27,6,2,3,12,2,2,1.333333 +5,22,2.5,1,2,16,3,6,1.3999996 +3,42,23,2,3,12,2,2,0.5326087 +5,42,23,3,1,14,3,5,1.826086 +4,22,2.5,0,3,12,3,4,4.8999996 +3,27,9,1,4,14,5,5,0.1111111 +2,37,23,3,3,12,2,4,4.173913 +3,32,9,3,3,14,4,5,0.3888888 +5,37,16.5,4,3,12,3,4,1.1878777 +3,27,9,2,2,12,5,2,1.333333 +3,27,6,1,2,17,2,2,1.333333 +5,22,2.5,0,3,14,3,3,1.3999996 +5,27,6,0,2,17,4,5,1.333333 +4,22,2.5,0,2,12,4,2,4.8999996 +4,27,6,0,2,12,3,4,4.666666 +3,32,9,1,2,12,3,3,0.1111111 +1,42,23,4,3,12,3,5,0.8521735 +2,22,6,2,2,12,3,4,1.333333 +4,32,16.5,2,2,12,2,2,0.4848484 +4,32,13,3,3,14,2,2,0.9423077 +5,27,9,2,1,12,3,3,0.3888888 +3,42,23,3,2,12,3,2,0.5217391 +3,37,16.5,1,3,20,6,6,2.7151508 +5,32,13,2,1,12,5,2,0.9423077 +4,27,13,3,1,12,4,2,3.4461536 +2,37,13,0,2,14,3,5,0.9230769 +3,27,9,1,1,12,2,2,3.1111107 +5,27,6,0,1,14,5,5,3.2666645 +2,42,23,2,3,12,5,2,0.8521735 +5,27,6,0,2,16,3,4,0.5833333 +4,22,2.5,0,4,16,5,4,7.8399963 +5,22,2.5,0,2,16,4,4,1.3999996 +5,42,13,0,3,12,3,2,1.5076914 +4,22,2.5,1,1,16,3,4,1.3999996 +4,32,9,1,3,16,3,5,1.3611107 +4,27,9,2,2,12,4,2,0.3888888 +5,27,6,0,1,16,5,2,2.041666 +4,32,16.5,3,2,14,5,4,2.545454 +2,42,2.5,0,4,20,6,5,4.7999992 +2,42,23,5.5,4,14,3,6,0.3478261 +4,42,23,4,2,12,3,2,0.3478261 +3,22,2.5,0,3,16,5,5,4.7999992 +2,22,2.5,0,3,14,3,5,1.3999996 +4,22,2.5,0,3,14,3,3,4.7999992 +4,32,16.5,4,3,14,4,4,0.2121212 +5,32,13,2,4,17,4,5,0.9423077 +4,32,13,3,4,12,3,5,1.5076914 +5,27,9,2,1,14,4,4,1.3611107 +4,27,6,1,4,16,3,4,0.5833333 +4,27,9,2,3,12,2,4,1.333333 +1,37,16.5,3,2,17,4,4,0.7424242 +3,27,9,3,2,12,4,5,1.3611107 +2,27,6,0,2,14,3,4,4.666666 +3,22,2.5,1,2,14,2,2,25.5999908 +4,22,2.5,1,3,12,3,4,4.8999996 +4,27,2.5,0,2,14,4,4,1.3999996 +1,42,23,2,3,12,3,5,0.5217391 +5,27,6,2,4,14,5,5,3.2666645 +5,27,6,0,1,12,4,2,0.5833333 +4,37,23,2,3,12,3,5,0.1521739 +4,22,6,2,2,12,3,4,0.1666666 +1,32,13,1,3,14,3,1,0.9423077 +5,22,6,1,1,16,3,5,0.5833333 +5,27,6,0,1,14,3,5,2 +5,27,6,1,1,17,4,5,3.2666645 +4,37,16.5,1,2,14,2,5,1.1878777 +4,27,9,2,2,12,2,2,2.1777763 +4,42,23,4,1,12,3,4,0.1521739 +4,32,13,0,3,12,2,2,2.1538458 +5,32,13,2,3,12,2,2,0.9230769 +4,42,23,4,1,17,4,4,0.8521735 +4,37,23,4,2,14,4,3,0.5326087 +4,32,16.5,2,2,14,3,6,1.1878777 +4,27,13,4,3,12,2,4,3.2307692 +5,37,23,3,2,12,3,2,0.1521739 +2,32,13,0,3,9,6,2,0.0769231 +5,32,13,2,1,14,4,6,3.4461536 +4,27,6,1,2,14,4,2,0.1666666 +5,27,2.5,0,3,20,4,5,4.7999992 +2,42,23,3,3,14,4,2,0.5217391 +3,27,6,0,1,14,3,2,0.5833333 +4,27,6,1,2,12,3,4,2.041666 +2,22,2.5,0,3,12,3,3,3.1999998 +3,27,2.5,0,3,12,2,2,7.8399963 +4,42,23,2,2,17,5,2,0.8521735 +5,32,13,2,1,14,2,5,0.9230769 +5,32,13,0,1,12,5,4,2.1538458 +4,27,9,2,2,16,4,5,0.3888888 +5,42,23,4,3,17,4,4,0.1521739 +3,27,9,3,1,16,4,5,0.1111111 +5,42,13,0,2,14,5,3,0.9230769 +5,32,16.5,2,2,16,5,5,0.2121212 +1,42,23,2,1,12,3,3,1.826086 +4,27,6,0,1,12,3,4,0.5833333 +5,42,23,3,2,12,5,4,1.9478254 +4,27,9,2,3,16,4,5,1.333333 +2,32,13,3,3,20,4,5,0.0769231 +4,22,2.5,0,2,12,3,2,11.1999998 +3,32,16.5,3,2,12,3,2,0.7272727 +5,27,6,1,3,12,5,2,2 +3,27,2.5,0,1,12,3,4,3.1999998 +5,22,2.5,0,2,16,4,6,1.3999996 +3,32,13,0,2,16,4,5,0.9230769 +4,37,16.5,2,2,20,4,2,0.7424242 +4,27,6,1,2,17,4,5,2.041666 +4,37,23,4,2,12,3,2,0.1521739 +4,22,2.5,2,2,14,3,5,4.8999996 +3,27,6,1,3,17,4,4,1.333333 +4,32,16.5,3,4,12,3,5,1.1878777 +5,22,6,2,3,14,3,5,7.4666672 +4,32,13,2,3,14,3,2,0.0769231 +4,27,9,1,1,14,2,5,1.3611107 +3,32,16.5,2,2,12,3,4,0.7272727 +4,27,13,2,2,12,3,2,0.0769231 +5,27,9,1,3,12,2,3,0.3888888 +3,27,9,0,1,12,3,4,16 +4,27,9,0,3,14,5,6,4.9777775 +3,22,2.5,0,1,12,3,2,7.8399963 +3,32,13,2,3,20,4,5,0.0769231 +4,42,23,5.5,2,14,5,3,0.5326087 +5,22,2.5,0,2,16,3,4,4.8999996 +5,27,9,1,2,14,4,5,0.3888888 +5,37,13,2,3,14,4,3,0.2692307 +5,27,2.5,1,3,16,3,3,1.3999996 +4,27,6,0,2,14,3,2,0.5833333 +5,22,2.5,0,2,12,4,4,7.8399963 +5,27,6,1,3,12,2,3,1.333333 +4,32,9,2,2,16,5,5,1.333333 +4,32,6,2,3,14,4,2,2.041666 +2,22,2.5,1,2,17,2,2,11.1999998 +5,27,2.5,0,2,17,5,5,4.7999992 +5,37,16.5,3,2,14,4,4,1.1878777 +3,27,2.5,1,3,14,5,3,4.7999992 +4,27,6,1,1,14,3,4,0.1666666 +5,27,6,2,3,12,2,4,3.2666645 +4,42,23,3,2,12,3,2,1.217391 +3,27,6,2,3,14,3,5,0.5833333 +5,22,6,1,3,14,1,4,2 +5,37,23,3,2,12,3,4,0.5326087 +3,37,16.5,3,3,12,3,4,1.1878777 +4,42,23,4,2,9,4,4,0.5217391 +4,42,23,3,3,12,3,5,0.5217391 +4,37,23,2,2,16,4,6,0.1521739 +5,32,16.5,4,1,12,2,1,0.4848484 +4,27,6,2,3,14,2,6,1.333333 +3,32,16.5,2,2,12,2,2,1.1878777 +2,27,6,1,2,12,3,2,0.5833333 +4,22,2.5,0,1,14,3,4,4.7999992 +3,22,6,1,2,14,3,2,0.5833333 +2,27,6,0,3,12,3,3,0.1666666 +4,27,6,1,2,12,2,5,3.2666645 +3,22,2.5,1,1,12,5,5,4.8999996 +2,37,16.5,3,2,14,3,5,1.1878777 +5,32,13,2,2,16,4,2,3.2307692 +5,22,2.5,0,1,12,3,2,1.3999996 +4,22,6,1,3,14,4,1,0.5833333 +4,22,0.5,0,2,12,5,2,2 +3,27,2.5,0,2,20,4,4,1.3999996 +5,27,2.5,0,3,12,2,2,1.3999996 +4,22,2.5,0,3,14,3,2,1.3999996 +4,42,16.5,2,1,16,4,5,2.7151508 +5,32,13,1,2,12,5,2,1.5076914 +5,32,13,3,3,14,3,5,0.9230769 +5,32,2.5,0,3,14,4,2,4.7999992 +3,32,13,1,1,16,4,5,0.9423077 +5,42,23,2,3,14,5,6,1.217391 +4,27,6,1,1,14,3,2,2.041666 +3,37,16.5,4,3,12,2,5,1.1878777 +5,37,16.5,2,2,12,2,4,0.2121212 +2,32,9,1,2,12,3,3,1.333333 +2,32,13,0,2,14,5,4,0.2692307 +4,22,0.5,0,1,12,3,4,2 +4,22,6,0,1,12,3,4,0.1666666 +3,37,16.5,3,3,12,2,2,0.2121212 +3,27,2.5,0,2,17,4,5,3.1999998 +3,22,2.5,0,2,17,5,4,0.4 +4,32,16.5,2,2,14,3,4,0.7272727 +4,42,16.5,2,3,17,5,6,0.4848484 +4,32,16.5,5.5,3,12,2,2,1.1878777 +3,32,13,2,3,14,2,2,0.6153846 +4,42,23,2,2,20,4,5,0.8521735 +3,32,9,1,2,16,4,3,4.666666 +4,22,2.5,0,2,14,3,2,1.3999996 +3,37,16.5,3,3,12,3,3,5.818181 +3,42,23,3,1,14,3,4,0.5217391 +1,32,16.5,3,3,12,4,2,0.7424242 +2,37,16.5,5.5,2,12,2,5,2.545454 +5,32,9,0,3,12,3,5,2.1777763 +2,32,16.5,4,2,14,3,5,2.7151508 +3,22,2.5,0,2,17,4,1,16.7999878 +5,32,2.5,0,2,16,5,5,4.8999996 +3,27,6,1,1,17,4,5,0.1666666 +4,27,6,0,1,17,4,1,3.2666645 +3,37,16.5,2,2,14,4,2,0.2121212 +4,37,16.5,2,1,14,3,3,0.2121212 +5,42,23,2,3,14,3,4,0.5217391 +4,32,13,2,1,17,4,2,0.9230769 +3,27,9,0,1,14,3,5,4.9777775 +3,32,13,2,1,12,3,6,0.9423077 +3,27,6,2,3,17,4,6,2.041666 +2,37,16.5,3,2,12,2,4,0.7272727 +2,22,6,2,1,14,3,4,0.1666666 +3,17.5,2.5,1,3,12,4,2,4.8999996 +3,27,6,3,2,14,2,2,0.1666666 +3,22,2.5,0,1,12,2,5,1.3999996 +4,42,23,3,2,14,3,5,1.826086 +2,27,6,2,3,14,3,3,2 +4,32,16.5,5.5,2,14,3,2,2.545454 +4,27,2.5,0,3,12,3,5,0.4 +4,27,6,2,3,12,3,2,2 +4,27,2.5,0,3,16,4,5,4.7999992 +5,27,6,0,1,16,4,5,4.666666 +2,22,6,2,2,12,2,3,0.5833333 +3,27,2.5,0,1,20,4,4,4.7999992 +4,32,16.5,3,3,14,3,5,0.7272727 +5,32,13,1,3,17,4,4,0.9423077 +3,22,2.5,1,2,12,2,4,7.8399963 +4,22,2.5,0,1,14,3,3,1.3999996 +5,32,9,2,3,16,4,4,1.333333 +5,32,2.5,0,3,14,5,4,0.4 +5,27,9,2,1,14,2,4,1.333333 +4,32,9,1,2,14,5,5,0.8888888 +4,22,2.5,0,2,14,3,5,1.3999996 +4,42,23,1,3,12,3,3,2.9217386 +4,27,9,2,2,16,4,4,1.333333 +4,32,16.5,3,2,17,4,2,0.4848484 +4,27,6,2,2,16,4,5,7.4666672 +4,37,16.5,2,2,14,4,5,0.7272727 +5,27,6,1,3,16,4,4,4.666666 +2,27,6,1,2,12,2,2,4.666666 +4,22,2.5,1,1,12,2,2,3.1999998 +3,37,13,1,2,12,3,2,0.9423077 +4,42,23,2,2,14,3,5,0.1521739 +5,22,2.5,0,1,14,3,2,0.4 +3,42,23,2,1,17,4,6,4.173913 +4,32,16.5,2,3,12,3,4,0.7272727 +1,32,16.5,3,3,14,3,4,0.0606061 +5,27,13,2,3,12,3,2,0.9230769 +3,27,6,0,1,17,5,4,3.2666645 +5,42,23,5.5,2,14,4,4,0.5326087 +4,32,16.5,1,3,16,4,5,0.0606061 +2,22,2.5,0,1,12,3,2,4.7999992 +2,42,23,1,3,14,4,2,0.5326087 +2,22,6,0,2,12,3,4,0.5833333 +4,27,6,0,1,16,5,1,0.5833333 +4,42,23,1,4,17,3,2,1.826086 +5,42,23,2,1,12,3,2,0.3478261 +4,27,6,2,2,16,4,2,2 +3,22,2.5,0,1,12,3,2,1.3999996 +3,27,13,3,2,14,5,5,3.4461536 +4,32,13,2,2,14,4,5,2.1538458 +4,27,9,3,3,14,4,3,0.3888888 +3,32,9,1,2,14,3,4,0.3888888 +3,27,9,2,1,14,4,2,1.333333 +5,37,16.5,5.5,3,12,2,2,1.1878777 +3,27,6,1,4,14,3,5,4.666666 +2,27,9,1,1,14,5,3,4.666666 +4,27,2.5,0,2,17,4,6,7.8399963 +4,32,13,1,1,20,4,4,1.5076914 +1,42,23,4,3,12,3,4,1.9478254 +4,32,16.5,1,1,14,5,5,0.7424242 +1,42,23,5.5,2,12,2,2,0.5217391 +4,37,13,1,2,12,3,5,1.5076914 +4,32,16.5,2,2,14,5,5,1.1878777 +4,42,23,3,2,14,4,4,0.0434783 +5,27,6,1,3,14,3,6,2.041666 +3,37,16.5,4,3,12,3,2,0.7272727 +3,37,23,3,3,9,4,2,0.1521739 +4,37,16.5,2,2,12,3,4,2.545454 +3,27,6,2,1,14,4,5,1.333333 +4,37,13,0,3,12,3,2,1.5076914 +2,27,2.5,1,3,16,4,4,4.8999996 +4,42,23,5.5,3,12,5,5,0.5326087 +3,32,16.5,3,2,12,2,2,0.7424242 +4,37,16.5,3,2,12,5,2,0.2121212 +3,42,13,0,3,12,4,4,0.9230769 +4,37,13,4,3,14,4,2,0.6153846 +2,32,16.5,4,2,14,5,4,1.1878777 +3,27,13,2,1,14,4,4,2.1538458 +5,22,2.5,0,2,14,4,5,0.4 +4,22,2.5,1,2,14,4,5,0.4 +3,32,2.5,0,1,16,4,5,17.9199982 +5,27,6,2,3,14,3,5,3.2666645 +5,32,16.5,3,4,12,2,3,0.0606061 +2,42,23,2,3,16,4,5,0.5217391 +5,22,6,2,3,14,2,4,0.5833333 +5,42,23,2,1,14,4,5,0.0434783 +4,22,6,0,2,14,3,3,0.5833333 +3,32,16.5,4,3,14,3,4,0.7272727 +3,32,16.5,2,2,14,3,5,0.7272727 +4,42,16.5,1,3,17,4,5,0.7272727 +1,37,16.5,3,2,12,3,5,0.2121212 +3,32,13,1,3,20,4,4,0.0769231 +3,27,2.5,0,3,14,5,5,1.3999996 +5,22,2.5,2,1,14,5,4,16.7999878 +3,42,23,5.5,3,12,3,2,0.5217391 +4,27,9,2,3,12,2,2,0.3888888 +3,32,16.5,2,3,12,2,4,1.1878777 +4,32,16.5,3,2,14,3,4,2.545454 +3,27,2.5,2,2,16,4,4,1.3999996 +4,32,6,2,2,14,4,4,4.666666 +1,42,23,2,1,12,2,3,1.9478254 +4,22,2.5,0,2,16,5,1,3.1999998 +3,22,6,0,2,12,3,4,2 +2,42,23,5.5,3,17,4,4,2.9217386 +3,27,13,2,2,12,2,4,3.2307692 +4,27,9,2,3,12,2,2,0.3888888 +5,32,16.5,3,3,17,4,4,2.545454 +5,32,16.5,2,1,14,4,6,0.0606061 +5,32,16.5,3,3,14,2,5,1.1878777 +3,27,9,2,2,12,2,3,1.3611107 +2,27,6,1,3,12,4,4,0.5833333 +4,22,2.5,2,2,12,5,2,7.8399963 +5,27,6,2,4,20,4,4,3.2666645 +3,22,2.5,0,2,14,3,2,4.7999992 +2,32,9,0,1,16,5,4,7.4666662 +4,37,16.5,2,3,16,3,6,0.7272727 +4,42,23,2,3,12,3,2,1.217391 +5,22,2.5,0,3,14,3,4,7.8399963 +5,32,9,1,2,14,2,4,1.333333 +4,37,16.5,2,3,12,3,6,0.4848484 +3,22,2.5,0,3,12,3,4,1.3999996 +4,37,16.5,4,2,12,3,5,0.7272727 +4,27,2.5,0,3,17,4,1,1.3999996 +3,27,6,0,1,14,3,5,2.041666 +5,32,16.5,2,2,20,4,4,0.7424242 +2,22,2.5,1,2,12,5,5,0.4 +4,42,16.5,2,1,14,5,4,0.7424242 +5,42,13,3,4,14,2,2,1.5076914 +5,32,13,1,3,16,6,6,0.2692307 +5,37,13,0,1,14,4,5,0.0769231 +2,22,6,0,1,20,6,4,3.2666645 +4,22,2.5,0,2,12,3,4,4.8999996 +4,32,16.5,1,2,12,3,4,0.7272727 +4,27,6,2,2,12,2,2,1.333333 +2,37,16.5,2,2,12,3,3,0.7272727 +3,22,6,2,3,12,3,2,3.2666645 +4,27,13,2,2,16,4,5,3.2307692 +4,22,6,1,2,12,2,5,2 +4,17.5,0.5,0,3,14,3,4,7 +5,27,2.5,0,2,17,5,1,7.8399963 +5,27,9,1,3,14,3,4,1.333333 +2,22,2.5,1,3,12,2,2,4.7999992 +4,42,23,5.5,3,9,2,4,0.8521735 +3,32,16.5,3,3,14,4,5,1.696969 +4,37,13,1,1,12,5,5,0.9423077 +2,32,16.5,3,2,12,3,5,0.7272727 +4,32,13,2,2,14,2,5,0.2692307 +4,22,2.5,0,2,14,1,1,0.4 +5,22,2.5,0,2,12,3,2,4.8999996 +4,32,16.5,3,2,12,4,2,1.1878777 +4,37,16.5,3,2,12,3,3,0.2121212 +5,42,23,4,3,14,5,5,0.5217391 +5,27,9,2,1,9,3,4,0.3888888 +5,32,9,0,2,17,3,2,0.1111111 +2,42,23,3,4,12,4,5,0.1521739 +4,42,23,2,3,12,3,2,0.5217391 +5,27,6,0,3,14,3,4,1.333333 +4,22,6,0,3,14,3,3,0.1666666 +2,32,16.5,5.5,2,12,3,2,2.7151508 +4,22,2.5,1,2,14,2,4,3.1999998 +5,37,23,4,3,12,3,3,0.5326087 +4,32,13,3,2,12,3,5,0.2692307 +4,32,16.5,2,2,12,3,4,1.1878777 +4,27,6,1,2,17,3,5,0.5833333 +2,27,13,2,3,12,5,5,3.2307692 +4,37,16.5,2,2,14,4,5,1.1878777 +4,27,6,0,4,16,4,6,3.2666645 +4,37,23,3,3,12,5,3,0.1521739 +3,27,2.5,0,1,14,4,6,38.3999939 +3,27,9,1,2,12,3,4,2.1777763 +2,37,23,4,2,12,5,2,0.1521739 +3,37,23,3,3,12,2,2,0.8521735 +3,32,13,2,3,17,4,4,0.0769231 +2,37,16.5,4,3,12,2,4,1.1878777 +4,27,9,2,3,12,3,3,1.333333 +4,42,23,3,3,12,2,2,0.8521735 +5,42,23,3,3,14,3,5,0.5326087 +2,27,6,0,2,12,3,5,2 +1,27,2.5,0,2,16,3,1,4.7999992 +5,32,16.5,2,1,12,3,3,0.2121212 +4,32,16.5,3,2,14,4,5,2.545454 +3,22,6,0,2,12,2,2,0.1666666 +3,27,2.5,2,2,14,4,4,0.4 +3,42,23,1,3,14,3,2,0.3478261 +5,42,23,4,2,14,3,5,0.1521739 +1,27,6,2,2,14,2,3,0.5833333 +4,32,13,2,2,12,2,5,0.2692307 +4,32,13,2,1,12,5,5,0.9423077 +5,32,16.5,3,2,12,2,4,0.0606061 +5,42,23,2,1,20,4,3,0.1521739 +4,27,9,2,2,12,3,4,1.333333 +4,37,16.5,3,3,16,3,2,2.7151508 +5,37,16.5,5.5,1,16,4,4,0.7272727 +3,42,9,2,1,12,4,4,0.8888888 +4,27,6,1,3,14,4,3,0.5833333 +3,27,9,2,3,12,2,4,2.1777763 +4,27,6,2,2,16,5,5,3.2666645 +4,37,16.5,4,3,14,4,5,2.7151508 +4,32,16.5,3,3,14,3,4,1.1878777 +4,27,6,1,2,16,3,5,0.1666666 +5,42,23,2,2,12,4,4,0.8521735 +4,32,13,1,3,14,3,2,0.9423077 +2,27,6,1,2,12,3,2,0.5833333 +3,22,2.5,0,2,12,3,4,0.4 +3,27,6,0,2,17,2,4,4.666666 +5,37,23,4,2,12,3,5,0.3478261 +3,32,16.5,3,4,12,5,4,2.545454 +4,22,2.5,0,2,12,2,2,4.8999996 +2,22,6,2,3,12,5,3,7.4666672 +4,27,9,2,3,14,3,2,0.1111111 +4,22,2.5,0,1,20,6,5,1.3999996 +3,42,23,5.5,4,12,2,5,0.1521739 +3,42,23,3,2,20,6,5,0.5217391 +3,22,2.5,1,3,12,3,2,3.1999998 +4,32,9,2,2,14,3,5,1.333333 +3,32,16.5,1,3,12,3,4,0.4848484 +3,27,6,2,1,14,3,3,11.1999989 +3,27,6,1,3,14,3,4,0.1666666 +4,37,16.5,3,1,14,5,5,0.0606061 +4,32,13,2,2,16,5,6,0.2692307 +3,22,2.5,0,1,17,4,4,1.3999996 +3,27,6,0,3,14,3,4,3.2666645 +3,42,23,3,2,14,5,6,1.826086 +5,32,13,3,3,14,2,2,0.0769231 +5,27,2.5,1,2,14,3,4,3.1999998 +3,27,9,3,1,14,3,4,1.333333 +2,22,2.5,0,2,12,3,4,16.7999878 +1,42,23,5.5,2,12,5,5,0.5326087 +3,22,2.5,0,1,14,2,4,0.4 +4,27,2.5,0,1,17,5,6,4.8999996 +5,27,6,0,2,16,3,5,2.041666 +3,27,6,1,2,14,4,4,2.041666 +2,42,23,1,1,14,3,4,0.5217391 +4,27,6,0,4,14,3,4,7.4666672 +3,22,6,1,1,14,3,4,2.041666 +5,22,2.5,0,2,14,3,5,1.3999996 +3,27,2.5,4,2,14,3,2,16.7999878 +4,27,6,3,2,14,2,4,2 +3,32,16.5,2,3,14,3,5,1.696969 +5,22,2.5,0,3,14,3,6,7.8399963 +5,32,13,1,2,14,3,5,0.9230769 +5,22,2.5,0,3,12,3,2,4.7999992 +3,32,13,2,1,14,3,5,0.9230769 +1,37,23,4,2,12,2,2,0.5217391 +2,22,2.5,1,3,14,4,4,0.4 +4,42,23,3,4,12,3,4,1.826086 +4,27,6,2,2,14,5,5,2.041666 +5,37,16.5,2,4,16,3,4,0.0606061 +4,22,6,0,3,12,3,3,2.041666 +3,32,16.5,3,2,14,5,3,0.2121212 +4,27,9,3,3,12,3,4,2.1777763 +5,27,6,0,1,16,4,4,0.1666666 +2,22,6,3,3,12,3,2,3.2666645 +5,22,2.5,0,1,16,4,5,0.4 +5,42,23,4,4,14,1,6,0.8521735 +4,32,9,1,1,16,4,5,2.1777763 +4,22,2.5,2,3,12,2,2,11.1999998 +3,42,23,5.5,3,14,3,5,0.8521735 +3,22,2.5,1,1,12,5,4,4.7999992 +5,27,9,2,2,17,2,2,2.1777763 +3,22,2.5,0,1,12,2,4,3.1999998 +4,32,13,1,2,12,3,3,0.2692307 +4,37,16.5,1,2,12,3,4,4.0727262 +5,32,9,3,2,17,4,6,0.1111111 +4,27,9,1,2,12,2,3,1.333333 +3,27,2.5,1,3,14,3,2,4.8999996 +2,22,2.5,1,2,16,4,3,1.3999996 +1,42,16.5,5.5,3,14,5,5,0.7424242 +3,27,13,2,2,9,2,4,0.2692307 +4,42,23,3,4,14,3,2,0.5217391 +3,27,9,2,2,12,3,4,7.4666662 +3,27,6,2,2,14,3,1,2.041666 +5,27,2.5,0,3,14,3,2,0.4 +3,27,2.5,0,3,16,3,5,3.1999998 +3,22,2.5,0,3,16,4,2,0.4 +3,42,23,3,1,12,3,3,2.9217386 +5,42,23,2,2,12,2,5,0.1521739 +4,27,2.5,0,1,17,4,4,4.8999996 +5,27,6,0,2,14,3,5,0.1666666 +4,32,16.5,4,2,14,4,4,0.7272727 +4,27,6,0,3,12,3,2,3.2666645 +4,32,9,2,2,14,3,4,2.1777763 +3,27,9,2,1,14,3,4,0.8888888 +3,27,2.5,1,2,16,2,2,1.3999996 +5,27,13,2,2,9,2,4,0.9230769 +2,27,13,2,2,12,3,4,1.5076914 +3,42,16.5,4,2,14,3,5,0.2121212 +3,32,9,2,1,14,3,2,1.3611107 +5,32,13,0,2,12,3,5,0.2692307 +1,27,9,2,2,12,2,4,2.1777763 +3,32,13,3,2,12,3,2,0.9423077 +5,27,2.5,0,3,14,5,5,1.3999996 +4,32,6,1,1,16,4,4,0.1666666 +5,27,13,3,1,14,3,4,3.4461536 +5,27,2.5,0,3,20,6,6,1.3999996 +5,32,16.5,4,2,12,2,4,1.1878777 +4,37,13,0,2,12,3,3,1.5076914 +3,22,2.5,0,3,16,4,4,0.4 +5,37,13,2,4,17,4,6,0.9230769 +4,22,2.5,2,1,12,3,4,0.4 +1,42,16.5,2,4,16,5,2,0.2121212 +3,37,16.5,3,3,17,4,4,2.7151508 +4,22,2.5,0,3,17,3,4,0.4 +5,32,13,2,2,20,4,2,1.5076914 +3,37,16.5,2,3,17,4,5,2.545454 +4,32,16.5,4,3,12,2,4,0.2121212 +4,32,16.5,2,2,14,3,5,0.7272727 +5,37,16.5,2,4,17,3,3,0.7272727 +3,27,9,2,1,12,3,5,0.3888888 +3,42,23,3,3,9,3,5,1.9478254 +4,32,9,2,1,20,4,5,1.333333 +4,22,6,2,2,12,3,3,0.5833333 +1,32,13,2,2,16,6,5,1.5076914 +4,22,2.5,0,1,12,2,2,4.7999992 +4,27,9,2,1,12,3,4,0.3888888 +3,27,6,0,2,14,4,5,2 +4,32,13,4,2,12,3,5,0.0769231 +5,42,23,3,4,12,2,4,1.217391 +2,37,16.5,3,1,14,3,4,1.1878777 +3,32,9,0,2,14,3,5,1.333333 +4,37,16.5,2,3,14,3,6,0.7272727 +1,32,16.5,4,3,12,3,5,1.1878777 +3,37,16.5,1,3,14,3,5,1.1878777 +4,22,2.5,0,3,14,4,5,1.3999996 +4,22,6,2,2,12,2,2,0.5833333 +3,22,2.5,1,3,12,3,2,3.1999998 +5,27,6,1,3,16,4,1,0.1666666 +5,27,9,2,2,20,6,5,0.3888888 +4,22,6,1,2,12,5,4,4.666666 +1,32,16.5,3,1,20,4,2,0.7272727 +5,22,2.5,0,2,16,4,4,4.8999996 +4,42,16.5,3,2,14,3,5,1.1878777 +4,32,13,2,4,16,4,6,0.2692307 +4,32,9,2,2,16,4,5,0.3888888 +2,42,23,4,1,12,3,4,0.8521735 +3,42,16.5,2,2,14,4,4,0.7272727 +4,42,16.5,1,3,14,4,5,0.7272727 +4,32,13,3,2,16,4,5,0.9230769 +4,27,2.5,0,2,14,5,5,4.7999992 +4,27,6,1,1,14,3,4,3.2666645 +5,27,6,0,2,14,3,5,1.333333 +4,27,6,0,3,20,6,6,2 +5,27,6,0,2,14,3,4,3.2666645 +4,27,6,2,2,12,4,4,2.041666 +4,42,23,1,3,14,3,4,0.5217391 +5,22,6,1,3,12,3,3,2 +3,37,16.5,3,3,14,4,5,0.0606061 +4,27,9,2,3,14,4,4,0.8888888 +4,42,13,0,3,12,2,4,0.9423077 +4,27,2.5,0,2,14,3,5,1.3999996 +2,32,13,3,2,16,4,2,2.1538458 +4,37,16.5,4,2,12,5,5,1.1878777 +2,22,2.5,0,2,16,2,5,7.8399963 +5,42,23,1,3,12,5,2,0.5217391 +3,27,6,2,1,16,4,5,2 +3,22,2.5,0,2,14,3,5,1.3999996 +4,32,9,2,1,14,3,5,1.333333 +4,27,9,1,1,14,3,5,0.8888888 +5,27,6,0,3,12,3,4,0.5833333 +4,37,13,2,3,17,4,6,0.2692307 +3,42,23,2,2,14,3,4,0.8521735 +5,22,2.5,0,1,17,5,1,0.4 +2,37,23,5.5,2,14,3,5,0.1521739 +4,32,2.5,0,2,12,3,2,4.7999992 +4,27,2.5,0,3,12,3,3,1.3999996 +2,27,2.5,0,2,14,3,5,1.3999996 +3,22,2.5,0,3,14,3,6,3.1999998 +3,42,23,5.5,2,12,4,2,1.9478254 +3,37,16.5,3,3,14,3,3,8.727272 +2,27,9,0,2,14,3,4,4.666666 +2,37,16.5,3,1,12,3,2,2.545454 +3,22,2.5,2,3,17,4,2,3.1999998 +4,22,6,0,3,12,3,4,2.041666 +4,37,16.5,4,1,14,5,4,0.7272727 +4,27,9,3,3,14,3,2,0.1111111 +4,22,2.5,0,1,14,2,5,0.4 +2,42,23,4,2,14,3,5,0.8521735 +5,27,6,0,2,14,5,2,0.5833333 +2,27,6,1,1,12,3,5,0.5833333 +3,32,16.5,2,2,12,3,2,0.7272727 +4,37,23,5.5,2,12,4,2,0.5326087 +4,17.5,2.5,0,1,12,4,2,17.9199982 +5,22,2.5,1,1,14,3,5,57.5999908 +4,22,2.5,0,2,14,5,4,1.3999996 +3,27,9,2,2,14,3,5,4.666666 +2,32,9,2,2,16,4,5,2.1777763 +5,22,2.5,0,1,14,2,2,0.4 +3,22,2.5,1,3,14,5,4,0.4 +3,27,9,2,3,12,5,5,7.4666662 +4,27,16.5,5.5,2,14,4,4,0.0606061 +4,32,13,2,3,14,3,5,0.2692307 +4,27,9,2,2,16,3,4,0.8888888 +5,32,13,2,2,17,4,4,2.1538458 +4,27,6,1,3,14,4,1,7.4666672 +4,32,13,3,4,12,3,5,0.2692307 +3,27,2.5,1,2,16,4,2,4.7999992 +3,42,23,3,2,14,3,5,0.5326087 +4,27,2.5,0,1,12,3,2,0.4 +4,22,2.5,0,1,14,4,4,4.7999992 +5,32,13,2,1,14,2,2,1.5076914 +3,32,9,2,2,14,3,5,1.333333 +3,37,16.5,2,2,12,3,4,0.7424242 +2,42,23,3,3,14,3,4,0.8521735 +5,32,16.5,2,4,17,4,4,0.2121212 +4,22,2.5,1,3,12,5,3,4.8999996 +5,27,9,2,2,14,3,4,0.1111111 +4,32,16.5,3,2,16,5,6,0.7424242 +5,32,16.5,4,3,12,3,5,0.0606061 +3,32,16.5,3,2,12,5,5,0.7424242 +4,42,23,2,3,20,4,4,0.0434783 +4,37,16.5,4,1,14,4,5,0.2121212 +5,27,2.5,0,2,12,3,3,0.4 +3,22,2.5,0,2,14,3,5,0.4 +5,37,23,5.5,2,12,2,4,0.1521739 +4,42,23,2,2,12,3,5,1.217391 +4,22,6,2,1,12,2,4,11.1999989 +5,27,6,1,4,12,5,5,0.5833333 +5,42,23,3,3,12,3,2,0.5326087 +3,27,6,2,2,14,4,4,0.1666666 +4,27,6,2,1,16,4,5,2 +2,42,16.5,1,2,20,4,4,0.7272727 +2,37,16.5,4,2,14,3,5,1.1878777 +1,32,13,2,1,12,2,4,0.0769231 +3,37,16.5,4,4,14,5,3,0.4848484 +4,27,9,1,1,12,3,4,4.666666 +2,27,2.5,0,3,14,5,4,4.7999992 +3,32,16.5,5.5,4,12,3,2,0.2121212 +4,22,2.5,0,2,14,2,2,3.1999998 +4,27,6,0,3,17,4,4,3.2666645 +5,32,9,0,3,20,6,4,0.1111111 +3,22,6,0,2,17,4,3,4.666666 +4,22,2.5,2,2,12,3,2,3.1999998 +4,42,23,1,2,14,3,6,2.9217386 +3,27,6,0,2,14,3,4,7 +4,37,23,5.5,2,9,3,4,0.8521735 +4,22,2.5,1,3,14,5,5,7.8399963 +5,27,9,2,2,14,5,4,1.333333 +4,22,2.5,0,2,12,3,4,4.8999996 +3,27,9,2,3,14,3,5,1.333333 +4,22,6,1,2,12,3,4,0.1666666 +4,27,6,2,3,14,4,5,0.5833333 +3,42,23,2,2,14,3,5,0.8521735 +4,22,6,1,2,12,3,4,0.5833333 +4,32,13,3,2,14,2,5,0.2692307 +5,42,23,4,3,14,2,2,0.0434783 +4,27,13,2,3,12,5,4,0.9230769 +4,27,9,1,2,14,5,4,2.1777763 +4,27,9,1,2,12,3,3,1.333333 +5,22,2.5,0,3,14,3,4,1.3999996 +3,32,13,2,3,12,3,5,0.6153846 +3,42,23,4,2,12,3,4,0.8521735 +3,27,6,0,2,16,4,4,0.1666666 +5,42,23,2,2,14,3,3,0.1521739 +3,37,16.5,5.5,3,12,2,2,0.4848484 +4,22,2.5,0,2,14,3,4,17.9199982 +5,42,23,2,2,12,3,2,0.5326087 +5,27,2.5,0,1,16,5,2,1.3999996 +4,32,23,3,4,12,2,2,0.5326087 +5,22,2.5,0,2,17,4,6,7.8399963 +4,37,16.5,5.5,2,14,2,3,1.1878777 +4,22,2.5,1,3,12,2,2,4.8999996 +2,27,6,2,2,12,3,2,2 +5,32,16.5,3,3,16,2,4,0.2121212 +3,27,6,1,3,14,3,2,3.2666645 +3,27,2.5,2,1,14,3,5,1.3999996 +5,42,23,5.5,3,16,4,4,0.5326087 +3,17.5,2.5,0,1,12,3,4,7.8399963 +3,37,23,3,2,12,3,5,0.8521735 +5,27,6,0,3,17,3,1,0.1666666 +4,37,16.5,1,2,12,3,5,2.7151508 +3,32,16.5,2,2,12,3,6,0.7424242 +3,27,2.5,0,1,17,4,6,4.7999992 +4,32,16.5,4,3,12,2,4,0.7424242 +3,32,16.5,2,2,12,3,4,1.1878777 +4,17.5,2.5,1,1,12,3,2,4.7999992 +3,22,2.5,1,2,12,5,2,7.8399963 +5,37,16.5,2,2,16,4,4,0.7272727 +5,37,16.5,2,3,12,3,2,0.7272727 +5,22,2.5,0,4,14,3,3,0.4 +4,27,2.5,0,1,14,3,2,4.8999996 +4,22,2.5,1,2,14,4,2,0.4 +4,37,16.5,3,3,12,2,4,0.7272727 +3,22,6,1,3,16,4,4,3.2666645 +4,27,6,1,1,14,3,5,0.5833333 +1,42,23,3,3,12,3,4,1.826086 +3,22,6,2,3,12,2,4,3.2666645 +3,22,2.5,1,2,12,4,1,0.4 +4,22,2.5,1,3,16,3,3,4.7999992 +2,22,2.5,2,1,12,2,4,3.1999998 +5,22,2.5,1,3,14,2,5,4.8999996 +4,22,2.5,0,3,14,3,5,1.3999996 +4,42,23,5.5,3,12,5,5,0.5217391 +3,27,9,1,1,14,3,5,0.1111111 +3,37,23,4,2,12,3,2,1.9478254 +4,37,16.5,3,3,12,5,2,0.7424242 +5,22,2.5,1,2,14,4,1,7.8399963 +2,27,2.5,0,1,14,3,3,11.1999998 +5,22,2.5,1,2,16,4,4,1.3999996 +4,22,2.5,1,3,12,3,3,4.7999992 +4,27,6,2,2,14,3,5,0.1666666 +5,22,2.5,0,3,16,4,4,0.4 +4,27,6,1,3,16,3,3,1.333333 +5,42,23,3,2,17,5,5,0.0434783 +5,37,16.5,4,2,12,3,2,1.696969 +2,27,6,0,1,14,3,4,7 +4,32,16.5,3,4,14,3,5,1.1878777 +5,37,16.5,5.5,3,20,4,6,0.7424242 +5,27,2.5,2,2,16,3,2,0.4 +3,27,9,2,2,14,3,6,4.666666 +4,32,13,4,3,12,3,4,0.2692307 +5,27,9,1,3,12,3,4,2.1777763 +5,32,6,3,1,14,3,2,4.666666 +4,32,16.5,3,1,12,3,4,1.696969 +3,27,9,0,1,12,3,5,7.4666662 +4,32,13,1,3,14,3,5,1.5076914 +3,42,23,2,3,9,2,2,0.5217391 +3,22,6,1,2,12,3,2,1.333333 +4,37,23,3,3,12,5,2,0.3478261 +5,42,23,3,3,16,4,2,0.3478261 +2,22,6,0,2,12,3,3,3.2666645 +3,37,13,2,2,12,3,5,0.2692307 +3,32,13,2,2,16,3,5,0.9230769 +3,22,2.5,0,2,12,3,3,0.4 +3,42,23,5.5,3,14,3,4,0.5326087 +2,32,16.5,2,2,16,4,6,0.7424242 +4,27,6,2,3,14,5,4,2 +4,37,16.5,3,4,16,4,5,0.7424242 +5,37,23,3,1,12,3,5,0.3478261 +3,22,2.5,0,3,14,3,3,3.1999998 +3,22,2.5,0,2,12,3,5,4.7999992 +4,22,9,3,2,14,3,3,0.3888888 +3,42,23,2,1,12,2,5,0.0434783 +4,32,13,1,1,12,3,2,1.5076914 +3,22,2.5,1,2,12,2,4,11.1999998 +2,37,13,3,2,14,4,2,0.0769231 +5,42,23,2,3,12,5,5,0.1521739 +2,37,16.5,3,3,16,4,2,0.7272727 +3,27,6,1,2,14,4,4,2 +5,22,2.5,0,2,14,4,4,3.1999998 +3,22,2.5,1,3,14,4,3,4.7999992 +4,32,13,3,1,14,3,4,0.2692307 +5,27,9,2,1,16,3,5,1.3611107 +4,22,2.5,0,3,14,3,2,7.8399963 +5,42,23,3,3,12,5,2,0.1521739 +3,22,2.5,1,3,14,3,2,1.3999996 +4,27,6,1,2,17,4,2,3.2666645 +4,37,16.5,3,3,14,4,2,0.7424242 +5,27,6,1,3,14,3,2,2 +4,22,2.5,4,3,12,2,4,0.4 +2,32,9,2,2,14,4,5,2.1777763 +4,22,2.5,1,3,17,4,1,4.8999996 +4,27,6,0,2,20,6,6,2.041666 +3,27,2.5,0,2,12,3,6,7.8399963 +4,22,2.5,2,2,12,4,2,1.3999996 +2,22,6,1,2,14,3,5,7.4666672 +4,32,6,1,3,12,3,4,0.5833333 +5,22,6,0,2,14,3,1,2.041666 +4,32,9,2,2,12,3,2,0.8888888 +2,42,23,4,2,17,4,2,0.1521739 +1,37,23,4,2,9,2,5,0.8521735 +4,37,23,2,2,14,4,4,0.1521739 +4,27,9,0,2,17,4,5,2.1777763 +2,22,6,2,2,12,4,4,0.1666666 +3,27,6,3,3,14,3,5,2.041666 +4,22,2.5,5.5,3,12,3,2,1.3999996 +5,22,6,2,3,12,3,5,0.5833333 +3,27,6,1,2,16,4,4,0.5833333 +3,22,2.5,0,3,14,3,5,3.1999998 +4,32,16.5,5.5,2,12,3,5,0.2121212 +4,27,9,2,3,12,3,2,0.8888888 +2,37,23,3,3,12,3,4,0.0434783 +3,37,23,4,3,12,5,2,0.0434783 +3,32,16.5,5.5,2,12,3,3,2.545454 +3,22,2.5,0,2,16,5,4,1.3999996 +5,37,23,4,3,12,2,2,1.217391 +5,22,2.5,0,3,12,3,2,1.3999996 +5,27,9,1,3,12,2,2,0.3888888 +5,32,13,3,1,12,2,2,0.6153846 +3,32,16.5,2,3,12,2,2,1.1878777 +5,32,16.5,2,1,16,4,2,4.0727262 +4,27,6,0,2,16,4,2,2 +4,22,2.5,0,3,16,3,5,1.3999996 +2,22,2.5,0,3,14,3,2,4.7999992 +4,37,16.5,2,3,14,3,5,8.727272 +5,27,6,1,4,16,4,4,2.041666 +3,22,6,1,3,12,4,4,4.666666 +2,32,9,2,3,14,2,4,1.3611107 +4,27,6,2,1,14,3,1,3.2666645 +3,27,2.5,0,1,17,5,4,16.7999878 +2,22,6,1,3,12,3,5,2.041666 +3,27,9,2,3,12,2,2,2.1777763 +3,37,23,4,1,17,4,4,0.5217391 +3,42,23,5.5,4,20,4,4,0.5326087 +5,22,2.5,1,3,12,6,2,26.8799896 +4,37,16.5,3,2,12,2,2,0.7272727 +5,27,6,0,2,12,3,2,11.1999989 +3,22,2.5,0,2,14,5,2,11.1999998 +3,32,16.5,3,2,14,5,5,2.7151508 +5,27,6,0,3,16,5,5,3.2666645 +2,42,23,3,2,12,3,4,0.0434783 +4,27,2.5,0,3,20,4,5,7.8399963 +5,22,2.5,0,3,14,3,5,0.4 +3,27,6,1,3,12,3,4,0.5833333 +5,32,13,1,2,14,4,3,0.9423077 +2,32,2.5,0,3,20,4,4,1.3999996 +2,27,9,2,2,16,4,5,0.1111111 +5,22,2.5,0,2,14,3,3,1.3999996 +4,27,2.5,0,2,17,4,5,0.4 +4,27,0.5,0,3,12,3,4,2 +4,32,13,2,4,14,4,5,0.2692307 +3,27,9,1,3,12,2,2,2.1777763 +3,32,13,2,2,12,3,5,3.4461536 +5,27,9,2,2,12,3,5,0.3888888 +5,22,6,1,2,12,3,2,1.333333 +3,32,13,0,1,12,3,4,3.4461536 +3,37,23,2,3,14,4,5,0.3478261 +5,32,16.5,1,3,12,3,2,1.1878777 +3,32,16.5,3,1,14,3,6,1.1878777 +5,22,6,0,1,14,4,4,7 +4,37,13,0,2,20,2,6,5.1692305 +3,42,23,3,2,14,5,4,0.5217391 +4,22,2.5,0,3,14,3,4,7.8399963 +4,27,13,3,3,14,6,5,5.1692305 +2,42,23,1,1,20,6,6,1.9478254 +2,27,9,2,3,14,2,2,1.3611107 +5,27,6,1,2,14,4,2,2.041666 +5,37,13,4,2,12,4,5,1.5076914 +2,22,6,1,2,14,3,2,3.2666645 +3,17.5,2.5,0,4,14,3,4,3.1999998 +5,22,2.5,1,3,14,2,4,16.7999878 +3,27,6,0,3,14,3,4,2 +5,27,9,0,1,14,3,5,2.1777763 +3,32,13,3,2,14,3,6,1.5076914 +4,37,23,3,3,12,3,4,0.5217391 +4,42,23,1,2,12,5,5,0.3478261 +3,32,9,2,3,16,3,5,2.1777763 +5,42,23,3,4,14,5,6,0.5217391 +4,27,9,2,2,12,3,4,1.3611107 +4,32,16.5,3,3,14,5,5,1.1878777 +2,22,2.5,0,1,14,3,4,11.1999998 +3,37,16.5,3,2,12,3,5,5.818181 +3,22,2.5,0,2,14,3,4,0.4 +4,27,6,0,1,17,4,6,3.2666645 +5,32,13,3,3,14,6,6,0.2692307 +5,42,23,3,2,12,4,2,2.9217386 +5,22,2.5,1,3,14,3,2,1.3999996 +4,42,23,2,3,12,3,5,1.826086 +4,32,16.5,2,4,14,3,5,0.7272727 +3,27,2.5,2,1,14,4,2,3.1999998 +5,42,16.5,2,1,20,4,4,0.2121212 +5,22,2.5,0,2,14,5,4,0.4 +3,22,2.5,0,1,14,5,4,4.7999992 +4,27,2.5,0,2,16,3,5,3.1999998 +3,27,6,1,3,14,3,4,0.5833333 +4,42,23,2,3,14,3,5,0.5326087 +2,37,2.5,1,3,14,3,2,1.3999996 +2,42,23,2,3,14,3,5,0.5326087 +1,42,23,2,1,14,5,5,1.826086 +5,27,13,1,1,12,2,4,0.9423077 +5,32,9,1,3,20,3,3,4.9777775 +3,27,9,1,1,16,5,4,0.3888888 +4,27,9,2,2,12,4,4,2.1777763 +4,27,6,2,3,14,6,5,2.041666 +4,27,9,1,2,20,3,5,2.1777763 +2,37,16.5,3,2,20,4,4,0.2121212 +3,27,9,2,3,14,3,5,0.3888888 +5,27,6,1,2,14,4,6,0.5833333 +3,37,23,2,2,14,5,4,0.5326087 +4,27,13,1,4,14,3,5,0.9230769 +4,22,0.5,0,1,12,2,4,24 +5,42,23,5.5,4,12,3,4,0.1521739 +4,32,13,2,1,14,5,6,0.9423077 +4,27,9,2,1,16,4,4,0.8888888 +5,22,6,2,3,12,2,5,0.1666666 +2,37,16.5,2,1,12,3,6,1.1878777 +3,32,13,2,2,16,3,5,1.5076914 +4,27,9,0,1,12,3,5,2.1777763 +3,42,23,2,3,16,5,6,0.8521735 +4,27,9,2,3,14,3,4,2.1777763 +5,22,6,0,3,12,3,5,0.1666666 +4,42,23,3,3,12,3,4,0.5217391 +4,37,16.5,2,2,12,3,5,0.2121212 +4,42,16.5,1,2,16,2,6,0.2121212 +4,37,16.5,5.5,2,14,4,5,0.7424242 +2,32,13,1,2,17,3,3,1.5076914 +2,32,9,2,1,16,5,5,0.3888888 +4,42,23,2,1,14,5,6,2.782608 +4,42,23,2,2,12,3,4,0.1521739 +5,22,2.5,0,1,12,3,4,4.8999996 +4,27,6,1,2,14,4,2,1.333333 +4,22,6,2,4,12,3,2,0.1666666 +5,37,23,4,3,12,3,4,2.782608 +3,42,23,2,1,20,4,4,0.8521735 +4,32,9,0,2,20,4,4,0.1111111 +4,22,2.5,0,1,16,2,4,3.1999998 +5,27,6,1,3,14,3,3,2 +5,27,2.5,0,3,16,4,3,7.8399963 +5,22,2.5,1,2,12,2,2,1.3999996 +5,27,6,0,1,17,5,2,0.5833333 +3,32,13,2,4,12,2,5,1.5076914 +4,32,16.5,2,3,14,5,4,0.7424242 +5,32,13,2,2,14,4,5,0.2692307 +4,32,16.5,2,4,14,2,1,0.4848484 +3,32,13,2,2,20,4,5,0.2692307 +3,42,23,4,3,20,4,5,0.8521735 +5,27,9,1,1,20,6,6,0.8888888 +4,32,16.5,2,2,12,3,4,1.1878777 +5,42,23,3,3,17,4,5,0.0434783 +3,32,13,4,2,12,2,4,0.2692307 +3,32,16.5,2,1,14,3,4,2.545454 +5,32,6,1,1,14,4,5,0.5833333 +4,27,6,1,2,14,3,5,0.5833333 +2,27,9,1,1,17,1,4,3.1111107 +5,27,6,0,2,16,5,6,0.5833333 +4,27,16.5,2,3,9,2,4,0.7424242 +4,32,13,1,3,20,2,2,0.9423077 +4,37,16.5,2,2,12,3,3,1.1878777 +3,27,6,0,4,12,3,5,1.333333 +3,37,23,4,2,12,3,4,2.9217386 +3,27,6,0,3,14,3,3,2 +5,22,2.5,0,3,12,3,5,4.7999992 +4,32,9,1,2,12,3,4,2.1777763 +4,27,9,1,3,17,4,6,2.1777763 +5,27,13,2,2,12,4,5,0.9230769 +5,22,2.5,2,1,12,3,2,1.3999996 +4,22,6,2,2,12,3,4,0.5833333 +2,32,16.5,1,4,12,5,5,1.1878777 +3,27,2.5,0,2,20,4,1,1.3999996 +3,27,13,1,2,12,5,5,3.2307692 +4,37,23,1,1,16,5,5,1.217391 +4,27,6,0,3,16,2,1,2 +4,22,6,0,2,14,3,5,4.666666 +5,42,16.5,2,3,20,6,6,0.7272727 +2,37,16.5,1,2,16,4,5,1.1878777 +1,32,13,3,3,12,2,4,0.0769231 +5,22,2.5,1,3,12,3,4,4.8999996 +4,22,2.5,0,2,14,3,5,4.7999992 +3,22,2.5,0,2,16,4,4,4.8999996 +5,37,16.5,2,3,12,5,5,4.0727262 +4,17.5,2.5,0,2,12,2,5,4.7999992 +5,42,23,2,3,17,5,2,0.5326087 +3,32,13,2,3,14,5,2,3.2307692 +3,42,23,3,2,12,4,4,1.217391 +4,27,2.5,0,3,14,3,4,1.3999996 +5,42,13,0,2,12,5,5,0.9230769 +2,32,9,2,4,16,4,4,2.1777763 +3,27,6,1,3,14,3,4,3.2666645 +2,27,9,3,3,12,5,4,2.1777763 +3,27,6,2,3,14,4,6,0.5833333 +5,27,9,2,1,14,3,4,4.9777775 +2,27,13,1,3,12,3,2,0.0769231 +4,27,13,2,2,12,3,4,0.0769231 +5,22,2.5,0,3,12,3,4,4.7999992 +4,27,9,0,3,12,2,4,4.666666 +3,27,9,2,3,12,4,5,0.3888888 +3,22,2.5,0,2,17,2,6,3.1999998 +3,27,6,1,3,14,3,3,2.041666 +4,27,6,0,2,14,5,3,2 +4,32,16.5,3,3,14,5,5,0.0606061 +4,32,16.5,2,3,12,5,5,0.7424242 +3,42,16.5,2,4,16,5,5,0.2121212 +3,32,6,2,3,14,3,4,2 +3,37,23,4,4,9,5,5,0.5326087 +1,42,16.5,1,2,12,3,5,1.1878777 +2,42,23,5.5,3,14,2,2,0.5217391 +5,37,16.5,4,4,14,3,3,0.0606061 +5,42,23,1,3,14,3,5,0.8521735 +3,22,2.5,1,2,12,2,2,7.8399963 +5,22,2.5,0,2,16,5,4,4.8999996 +2,27,6,1,2,14,3,4,0.1666666 +1,32,13,2,2,16,4,6,0.0769231 +3,32,16.5,2,2,16,4,2,1.1878777 +5,27,9,1,3,14,3,5,2.1777763 +3,22,6,1,1,12,3,2,3.2666645 +4,27,6,2,3,12,3,2,1.333333 +4,37,16.5,2,4,17,6,6,0.4848484 +4,22,2.5,0,3,12,3,3,0.4 +1,42,23,3,3,14,3,5,0.8521735 +2,22,2.5,0,2,12,3,5,4.7999992 +4,37,13,1,3,20,4,2,1.5076914 +2,27,6,1,2,12,2,2,0.5833333 +5,27,9,2,3,20,4,4,0.3888888 +3,42,23,3,3,12,2,2,1.826086 +3,42,16.5,2,3,14,3,2,0.7272727 +2,32,16.5,1,1,17,4,6,0.2121212 +4,22,2.5,1,2,14,3,5,0.4 +5,42,23,3,4,16,3,4,0.8521735 +4,27,13,2,3,14,3,5,3.2307692 +1,32,13,1,2,12,3,3,0.0769231 +3,42,23,5.5,2,14,5,6,0.5217391 +5,37,23,2,3,12,3,5,1.826086 +5,22,2.5,0,1,14,4,1,4.8999996 +3,27,6,0,2,14,3,6,2 +4,22,2.5,1,1,14,2,2,1.3999996 +5,37,13,2,1,12,3,4,0.9423077 +4,42,23,3,2,14,3,3,0.8521735 +3,27,6,2,3,20,4,2,0.5833333 +4,27,6,2,2,12,2,5,2.041666 +2,27,2.5,1,3,14,2,4,7.8399963 +5,42,23,4,1,12,5,6,0.1521739 +3,42,13,0,3,17,3,2,0.9230769 +5,27,6,0,3,14,3,5,0.5833333 +4,22,2.5,0,3,14,3,2,1.3999996 +3,27,13,3,3,12,4,4,5.1692305 +3,32,9,0,2,14,3,4,0.8888888 +1,37,16.5,1,3,14,2,5,0.2121212 +3,37,23,2,3,12,5,5,0.8521735 +2,32,16.5,2,2,12,3,4,0.7272727 +3,27,6,0,1,16,4,1,7.4666672 +4,42,16.5,3,2,14,5,4,0.7424242 +1,42,16.5,1,3,12,5,5,1.1878777 +3,32,16.5,3,4,12,4,2,0.7272727 +5,27,6,1,4,14,3,3,2.041666 +2,32,16.5,2,2,14,2,3,4.0727262 +2,17.5,2.5,0,2,12,3,2,16.7999878 +4,32,16.5,2,3,14,3,4,0.7424242 +3,22,2.5,0,3,14,3,4,7.8399963 +5,27,6,0,3,16,3,6,2 +5,37,23,3,3,12,3,5,0.1521739 +3,32,13,0,2,12,5,2,0.2692307 +4,42,23,1,2,14,5,5,0.0434783 +1,42,23,2,3,14,3,4,2.9217386 +2,37,23,3,2,12,3,3,1.9478254 +4,22,0.5,0,3,16,4,6,7 +5,27,9,2,2,14,3,4,0.1111111 +4,22,0.5,0,1,14,5,4,16 +3,27,9,2,2,17,4,4,1.3611107 +4,42,23,2,3,14,3,5,1.217391 +4,22,2.5,0,2,14,5,5,1.3999996 +4,22,2.5,0,3,14,3,4,17.9199982 +4,27,13,2,3,14,5,5,0.9423077 +4,27,6,1,3,16,4,6,2.041666 +3,42,23,3,2,14,2,2,0.5217391 +3,27,6,2,1,12,4,3,2.041666 +5,42,23,2,2,16,3,5,0.8521735 +3,42,23,2,4,14,3,6,0.0434783 +5,32,16.5,1,3,14,3,5,0.2121212 +4,27,6,2,3,14,5,5,0.1666666 +2,37,23,3,1,14,5,5,0.1521739 +4,22,6,1,3,14,3,1,3.2666645 +2,27,9,2,3,12,3,4,1.333333 +5,27,9,2,1,14,4,4,2.1777763 +4,27,2.5,0,3,14,3,4,16.7999878 +5,37,16.5,2,2,14,3,5,0.7272727 +3,22,2.5,1,2,14,2,2,0.4 +4,27,2.5,1,2,16,3,6,0.4 +1,27,6,1,1,12,3,5,0.1666666 +4,37,16.5,5.5,3,17,4,2,0.2121212 +5,22,2.5,0,3,12,4,3,4.8999996 +2,22,2.5,1,1,14,2,6,1.3999996 +5,42,16.5,2,3,12,3,3,0.7424242 +3,22,6,1,2,12,4,4,1.333333 +3,37,23,3,3,12,3,4,1.9478254 +4,27,6,1,3,14,3,2,2.041666 +2,32,16.5,4,2,12,3,4,1.1878777 +3,27,9,1,2,14,3,5,0.3888888 +5,32,16.5,3,3,16,4,6,0.2121212 +5,22,6,1,2,12,3,2,0.5833333 +3,27,13,3,2,12,2,4,0.2692307 +5,22,2.5,0,3,12,3,3,1.3999996 +4,32,2.5,0,2,14,5,6,1.3999996 +3,27,6,1,2,14,3,5,2.041666 +3,27,6,2,3,12,3,6,0.1666666 +2,32,13,2,3,12,3,3,0.2692307 +4,32,16.5,2,3,14,2,5,0.2121212 +3,27,6,2,2,12,5,2,2 +4,27,9,2,1,17,4,5,2.1777763 +4,37,16.5,2,2,12,4,4,1.1878777 +3,22,2.5,0,3,16,3,4,4.7999992 +4,27,9,2,2,14,5,5,1.3611107 +3,32,16.5,4,2,12,3,5,1.696969 +3,27,9,2,4,14,3,2,2.1777763 +4,32,13,2,2,16,2,5,0.2692307 +2,37,23,2,3,14,3,5,0.5217391 +4,22,2.5,0,1,17,3,4,17.9199982 +4,27,6,0,1,17,4,4,0.1666666 +4,27,6,1,2,12,3,6,7 +3,22,6,0,3,12,3,2,0.5833333 +3,42,23,3,2,12,3,2,1.826086 +4,27,6,3,3,16,3,2,2.041666 +4,32,16.5,3,3,12,3,3,1.1878777 +3,27,13,2,3,12,5,5,3.4461536 +3,27,16.5,2,4,14,3,4,0.2121212 +3,27,6,3,2,14,2,2,0.1666666 +5,22,2.5,0,3,12,5,2,0.4 +4,42,23,2,2,16,5,5,1.217391 +1,22,2.5,1,3,14,3,5,4.8999996 +4,42,23,3,3,16,4,3,0.1521739 +3,32,16.5,2,4,16,4,4,0.7424242 +3,32,16.5,2,4,12,3,3,0.7272727 +4,22,2.5,1,2,14,3,3,4.7999992 +3,22,6,1,3,14,3,5,0.5833333 +4,27,6,0,2,12,3,4,0.1666666 +5,32,16.5,4,4,9,2,4,0.0606061 +1,27,6,1,3,20,4,4,2 +2,22,2.5,0,1,14,3,2,4.8999996 +5,27,9,3,4,14,2,5,0.3888888 +3,27,6,1,2,16,3,1,7 +4,32,16.5,2,1,16,5,5,2.545454 +5,27,6,0,3,12,3,3,2.041666 +4,42,23,2,3,12,5,2,0.5326087 +3,27,9,2,2,12,3,4,2.1777763 +4,27,9,0,3,14,3,3,2.1777763 +4,27,13,2,3,17,4,2,3.4461536 +5,32,16.5,2,3,17,4,4,1.1878777 +4,27,6,1,2,12,5,4,3.2666645 +4,42,23,4,4,12,5,5,0.5326087 +1,42,23,2,4,14,3,2,0.3478261 +2,22,2.5,1,3,14,3,4,1.3999996 +1,32,9,3,2,14,4,4,1.3611107 +3,27,6,1,3,12,4,3,0.5833333 +4,27,2.5,0,1,16,4,1,4.7999992 +5,42,23,2,1,17,4,5,0.5217391 +5,32,16.5,2,3,14,3,5,0.4848484 +4,32,16.5,2,4,12,3,4,2.545454 +5,42,23,3,3,14,4,2,0.5326087 +4,37,16.5,2,1,16,3,5,0.7272727 +2,32,9,0,2,12,3,4,0.1111111 +4,37,16.5,2,4,12,3,4,0.4848484 +3,32,6,3,2,14,3,4,0.5833333 +5,37,23,2,2,14,3,5,0.3478261 +2,32,13,0,2,12,3,4,1.5076914 +4,32,13,2,3,14,3,4,3.2307692 +4,37,16.5,3,3,14,3,3,0.2121212 +4,22,2.5,0,2,14,3,5,4.7999992 +5,42,23,4,2,14,3,4,0.8521735 +3,32,16.5,2,4,12,3,5,1.1878777 +4,42,23,4,3,9,3,5,1.9478254 +5,22,2.5,1,2,12,3,4,4.8999996 +2,32,9,0,2,14,3,4,0.8888888 +5,32,13,1,2,14,3,5,0.2692307 +2,32,16.5,3,2,12,5,2,0.7424242 +5,27,6,1,1,14,5,5,2 +4,42,23,4,2,14,3,4,0.8521735 +3,27,6,1,2,14,5,2,3.2666645 +3,32,13,1,1,16,4,2,0.6153846 +2,27,6,2,3,12,3,5,0.1666666 +4,27,9,2,3,12,4,4,1.3611107 +5,22,2.5,1,1,14,3,2,11.1999998 +2,22,2.5,1,3,14,5,6,7.8399963 +5,22,2.5,0,1,16,5,4,0.4 +4,37,23,4,3,14,3,5,1.9478254 +2,32,16.5,4,3,12,3,4,0.7424242 +3,22,6,1,3,12,3,4,2.041666 +3,32,9,2,3,12,3,4,16 +1,27,2.5,0,2,12,4,3,4.8999996 +5,42,23,2,3,14,3,4,0.5217391 +4,27,13,1,2,12,3,4,0.0769231 +4,32,9,2,3,17,3,4,1.3611107 +5,42,23,4,4,14,5,4,0.5326087 +4,27,6,2,3,12,2,2,2.041666 +5,32,16.5,2,4,16,5,6,1.696969 +5,27,9,2,1,16,2,5,0.3888888 +4,22,6,1,2,12,2,1,2.041666 +5,32,13,2,1,12,3,4,0.0769231 +3,42,23,2,3,12,3,5,0.1521739 +4,27,16.5,4,3,17,4,6,2.545454 +3,37,16.5,2,3,12,3,4,0.7272727 +5,27,6,2,3,14,4,2,3.2666645 +2,17.5,2.5,1,3,12,3,2,1.3999996 +4,22,2.5,1,2,14,3,5,1.3999996 +5,27,6,1,3,14,3,3,2.041666 +5,27,6,2,2,12,4,4,0.1666666 +3,37,23,3,4,12,5,2,0.8521735 +3,27,6,3,2,16,4,4,0.5833333 +3,22,2.5,1,2,12,3,2,1.3999996 +5,27,13,3,1,12,3,5,1.5076914 +4,27,9,1,4,14,3,3,1.3611107 +1,37,23,5.5,2,12,3,4,0.5217391 +5,42,23,3,1,16,4,6,0.8521735 +4,27,2.5,0,1,16,5,6,7.8399963 +4,32,13,2,2,12,5,4,0.9423077 +3,27,9,2,2,14,5,5,1.3611107 +4,22,2.5,0,1,14,3,4,4.8999996 +4,22,2.5,0,1,12,3,2,1.3999996 +4,27,6,1,3,17,4,5,0.1666666 +4,37,23,5.5,2,12,3,4,0.5217391 +5,32,16.5,2,1,12,2,4,0.2121212 +2,22,6,2,4,17,3,5,2 +2,22,2.5,0,1,17,4,4,26.8799896 +4,27,6,0,3,14,2,2,7.4666672 +5,22,2.5,0,2,14,3,5,1.3999996 +5,42,23,3,3,12,3,5,2.782608 +5,32,13,2,2,14,5,4,0.9423077 +5,32,13,2,2,14,5,4,1.5076914 +3,42,23,5.5,3,20,6,4,2.9217386 +5,22,2.5,1,1,12,3,5,1.3999996 +2,22,2.5,0,1,16,3,5,17.9199982 +3,42,23,2,3,16,4,5,0.1521739 +3,27,6,0,2,12,3,4,4.666666 +3,27,13,0,3,12,3,5,0.9423077 +4,22,2.5,0,2,12,2,4,4.7999992 +3,32,13,2,3,14,3,3,1.5076914 +5,37,16.5,3,2,12,3,5,0.7272727 +3,27,9,1,3,14,3,3,2.1777763 +5,42,23,2,2,12,5,4,0.8521735 +5,27,2.5,0,1,17,4,5,4.8999996 +3,32,0.5,0,2,16,4,5,24.5 +4,32,13,2,3,12,3,1,0.0769231 +3,42,23,5.5,3,12,3,2,0.1521739 +1,42,23,2,3,14,3,5,0.8521735 +3,37,16.5,2,1,17,4,2,0.7272727 +4,27,9,1,1,14,3,4,1.3611107 +4,22,2.5,0,3,12,3,2,1.3999996 +4,37,23,5.5,2,14,3,6,1.217391 +5,32,9,3,2,14,2,6,0.3888888 +4,37,9,3,3,16,4,2,2.1777763 +5,37,16.5,3,3,16,3,4,1.696969 +4,32,13,2,2,12,5,5,0.2692307 +3,37,23,3,4,12,3,5,0.5217391 +4,42,23,3,4,16,4,2,1.217391 +3,27,6,1,2,12,3,4,0.5833333 +5,42,23,2,3,16,3,5,0.5326087 +5,27,6,1,3,20,5,6,1.333333 +3,37,16.5,3,2,12,3,2,2.7151508 +3,27,13,2,3,12,3,5,0.9230769 +5,37,23,3,1,12,3,4,0.0434783 +3,42,23,5.5,3,12,3,4,0.0434783 +2,27,9,0,2,17,2,3,1.3611107 +2,22,2.5,0,3,12,2,3,0.4 +4,27,13,2,2,12,3,2,0.0769231 +4,32,9,1,1,16,4,5,4.9777775 +3,32,9,3,3,14,3,6,2.1777763 +4,32,13,1,3,14,5,5,0.2692307 +5,22,2.5,0,3,16,4,1,1.3999996 +3,27,6,1,2,17,4,4,4.666666 +4,27,2.5,0,2,16,4,2,7.8399963 +3,27,6,0,1,16,4,4,1.333333 +3,42,16.5,4,3,16,2,4,0.2121212 +1,27,2.5,1,3,16,4,4,1.3999996 +5,27,9,1,2,14,4,4,3.1111107 +4,42,23,2,3,12,3,5,1.826086 +4,27,13,2,2,12,3,4,0.9230769 +5,32,13,1,1,14,4,4,0.9423077 +4,22,2.5,1,2,14,3,4,7.8399963 +2,27,9,2,2,14,5,5,4.666666 +5,22,2.5,0,4,14,3,4,4.8999996 +3,37,16.5,3,3,14,3,3,0.2121212 +3,27,6,1,3,14,3,4,7 +4,32,13,2,1,12,2,4,3.4461536 +3,42,23,2,2,16,4,5,0.5217391 +4,37,16.5,3,3,12,3,5,0.2121212 +4,32,13,2,1,12,2,4,1.5076914 +3,42,23,5.5,2,12,3,4,2.9217386 +3,27,9,1,1,14,3,4,1.3611107 +5,32,16.5,2,3,12,3,2,0.7424242 +5,32,16.5,1,2,14,5,5,0.2121212 +5,27,6,2,2,20,6,6,4.666666 +4,27,6,2,3,12,3,2,0.1666666 +3,22,6,1,3,14,5,4,0.5833333 +5,27,16.5,3,3,14,5,5,0.2121212 +5,22,2.5,0,2,14,5,6,4.8999996 +3,42,23,5.5,3,14,3,5,0.5217391 +4,37,23,3,2,12,3,3,0.5217391 +1,42,16.5,3,4,17,4,4,1.1878777 +3,27,2.5,0,2,16,4,2,4.7999992 +2,27,6,2,2,12,5,1,0.1666666 +5,27,9,3,2,16,4,4,0.1111111 +5,27,6,2,2,12,5,3,0.5833333 +3,32,16.5,3,1,14,2,2,0.4848484 +4,27,6,2,2,14,3,4,0.5833333 +4,27,0.5,0,3,17,4,6,7 +4,22,6,1,2,12,3,3,3.2666645 +5,42,23,2,1,14,6,6,2.9217386 +4,27,6,2,4,14,5,4,0.1666666 +5,27,6,1,2,16,4,5,2.041666 +3,42,13,0,3,17,4,5,0.2692307 +3,42,23,3,3,12,2,2,1.217391 +5,27,6,1,1,16,4,4,2.041666 +5,22,6,0,3,14,3,4,2.041666 +3,42,23,3,2,14,3,4,0.8521735 +4,22,6,0,2,16,4,5,0.5833333 +5,32,13,2,1,14,3,5,3.2307692 +3,22,6,2,3,14,2,2,11.1999989 +5,27,2.5,0,2,14,3,2,1.3999996 +2,42,23,5.5,2,14,3,2,0.0434783 +4,37,23,3,1,14,3,4,0.8521735 +5,22,2.5,0,1,14,3,4,7.8399963 +5,27,2.5,0,1,17,4,5,0.4 +4,27,9,1,2,16,3,5,0.3888888 +4,27,9,3,3,14,3,4,1.3611107 +4,42,23,4,2,16,4,5,0.8521735 +4,37,16.5,4,3,14,3,2,0.7424242 +4,32,9,0,2,12,3,3,1.333333 +4,32,13,0,2,14,3,6,0.9423077 +2,22,6,2,2,12,3,4,0.5833333 +3,42,23,3,2,14,5,5,0.5326087 +4,32,13,0,3,14,3,5,0.9230769 +4,37,16.5,4,3,14,3,4,0.7424242 +3,37,23,3,2,12,3,5,0.8521735 +4,32,16.5,2,1,14,3,4,2.545454 +4,27,6,1,2,16,3,5,2 +4,22,2.5,0,2,16,4,5,3.1999998 +2,22,2.5,0,3,12,3,2,1.3999996 +4,27,6,1,2,14,3,3,1.333333 +3,32,16.5,2,2,12,3,2,2.7151508 +5,17.5,2.5,2,2,12,2,5,4.7999992 +3,22,2.5,0,3,20,3,1,7.8399963 +2,37,23,3,3,12,3,2,0.8521735 +4,32,16.5,5.5,3,14,5,5,0.7424242 +3,42,23,3,4,14,3,5,0.1521739 +5,22,2.5,0,2,14,2,3,4.8999996 +4,27,9,0,2,14,3,4,3.1111107 +3,22,2.5,2,2,12,3,4,0.4 +3,42,23,2,4,14,4,6,1.217391 +5,42,23,5.5,2,14,3,2,0.5326087 +4,27,6,0,3,14,6,6,2.041666 +4,42,23,4,3,14,3,4,0.5217391 +3,32,16.5,2,2,12,3,5,0.3393939 +3,27,2.5,0,1,16,3,4,4.8999996 +3,32,13,2,4,14,4,2,5.1692305 +2,37,16.5,2,2,14,3,5,1.1878777 +4,22,6,2,2,12,2,4,2 +4,32,9,3,1,16,2,4,0.1111111 +3,42,23,4,2,12,3,5,0.3478261 +3,32,13,2,3,12,3,3,2.1538458 +4,22,2.5,0,2,14,2,1,0.4 +3,37,16.5,2,2,12,2,2,0.7272727 +3,27,6,0,2,14,3,5,2 +4,42,23,3,3,12,5,4,2.9217386 +4,42,23,3,2,14,5,4,1.217391 +2,42,23,5.5,4,14,2,5,0.1521739 +5,27,6,0,2,12,5,4,0.5833333 +4,32,16.5,1,2,14,3,4,0.7424242 +4,37,16.5,3,3,12,4,2,1.696969 +5,42,23,5.5,3,14,3,6,0.1521739 +3,37,16.5,3,2,14,5,4,0.7272727 +2,37,13,1,1,16,4,4,0.9423077 +4,27,6,0,3,16,5,6,0.5833333 +4,42,23,4,3,16,4,2,0.8521735 +5,27,2.5,0,2,14,3,4,3.1999998 +2,42,23,3,1,12,3,5,2.9217386 +5,37,13,2,1,14,3,6,0.2692307 +4,32,16.5,2,1,12,5,2,1.1878777 +4,37,16.5,3,1,14,3,2,0.4848484 +3,27,2.5,0,1,14,5,4,1.3999996 +4,22,2.5,0,1,14,3,3,4.8999996 +4,37,16.5,2,2,14,3,5,1.1878777 +3,27,6,2,2,12,3,4,0.1666666 +4,22,6,1,2,12,3,4,0.1666666 +5,32,13,2,2,14,4,5,0.2692307 +2,37,23,3,3,12,5,2,0.5326087 +2,37,16.5,2,3,14,3,5,2.545454 +4,32,16.5,2,2,14,5,4,0.7272727 +5,37,16.5,5.5,4,20,4,6,0.7424242 +3,32,16.5,3,2,12,3,2,1.1878777 +3,27,9,4,3,14,3,5,2.1777763 +3,37,13,0,1,14,5,4,3.2307692 +2,27,2.5,2,2,14,4,5,4.8999996 +4,27,9,2,1,14,3,4,0.8888888 +4,42,23,2,3,14,3,4,0.3478261 +5,42,23,2,1,14,5,5,0.8521735 +4,42,23,4,2,12,3,3,0.5217391 +4,37,16.5,4,3,14,3,5,0.2121212 +4,32,16.5,3,2,12,2,2,1.1878777 +2,37,23,2,2,12,4,4,0.0434783 +4,42,23,1,3,20,4,4,0.5217391 +4,22,2.5,1,2,14,4,4,4.8999996 +1,32,13,2,2,14,4,4,2.1538458 +3,42,23,3,2,14,3,5,1.826086 +4,22,2.5,0,2,16,3,2,1.3999996 +5,37,23,3,3,12,3,5,0.1521739 +3,22,2.5,0,2,14,2,2,4.8999996 +1,42,23,3,3,12,5,5,1.9478254 +3,22,2.5,0,2,14,3,4,4.8999996 +3,37,23,2,3,12,3,5,1.9478254 +4,22,2.5,0,2,12,5,4,0.4 +5,32,9,2,3,14,5,4,0.1111111 +1,37,16.5,4,2,14,3,6,1.1878777 +3,42,23,1,3,12,3,4,0.8521735 +5,27,9,2,1,12,3,2,1.3611107 +4,22,2.5,1,2,14,2,4,17.9199982 +5,42,23,3,2,14,3,5,0.8521735 +4,27,6,1,3,14,5,5,2 +5,22,2.5,0,1,14,3,1,1.3999996 +3,37,16.5,2,3,16,3,4,0.7272727 +3,32,16.5,2,3,12,5,5,2.545454 +5,37,16.5,3,3,14,2,5,0.7272727 +3,27,6,2,1,16,4,3,0.5833333 +4,27,9,1,2,20,4,4,0.1111111 +4,27,6,0,2,14,3,4,2.041666 +5,32,13,2,2,14,3,4,0.9423077 +4,42,23,2,2,12,4,4,1.217391 +2,37,16.5,2,2,12,5,4,0.4848484 +4,27,2.5,0,2,17,5,5,0.4 +4,37,16.5,2,2,17,4,5,0.2121212 +4,32,13,2,2,12,3,3,0.9230769 +4,32,9,2,1,14,3,4,1.3611107 +4,32,9,2,2,14,3,5,0.1111111 +4,32,13,2,3,12,5,5,0.9423077 +4,32,13,3,2,14,3,2,2.1538458 +4,22,2.5,1,1,14,2,2,1.3999996 +5,27,16.5,2,3,12,5,4,0.2121212 +4,32,2.5,0,3,14,2,6,4.8999996 +3,32,16.5,1,2,14,2,4,0.2121212 +3,37,16.5,3,2,16,4,3,1.1878777 +5,42,23,4,2,12,5,5,0.8521735 +5,27,6,2,3,14,3,4,3.2666645 +4,22,2.5,1,3,12,3,2,1.3999996 +4,42,23,3,1,20,6,6,1.217391 +4,32,9,2,1,17,4,5,2.1777763 +5,32,2.5,0,2,20,6,6,1.3999996 +3,27,6,1,2,14,3,6,0.5833333 +1,22,2.5,0,1,14,4,4,4.8999996 +3,32,16.5,2,2,14,3,2,0.7424242 +4,42,23,2,2,12,3,3,0.1521739 +4,22,6,1,3,14,3,5,0.5833333 +5,42,23,3,2,14,3,5,0.5326087 +3,27,13,2,2,12,4,3,3.4461536 +4,32,13,2,2,14,5,4,0.2692307 +3,27,2.5,0,3,14,3,4,3.1999998 +2,22,2.5,0,3,12,3,2,0.4 +5,42,23,2,2,20,4,4,1.826086 +3,27,6,1,2,14,2,2,0.5833333 +5,42,23,2,2,20,3,6,0.5326087 +3,37,23,4,1,12,3,2,0.3478261 +5,42,23,4,4,20,6,6,6.260869 +5,27,6,0,1,17,4,5,1.333333 +3,32,13,2,1,17,4,6,0.2692307 +2,27,2.5,0,1,14,5,5,1.3999996 +4,27,9,3,2,12,3,6,1.333333 +5,27,6,1,1,14,3,5,2 +4,22,0.5,0,2,14,4,5,24.5 +4,17.5,2.5,1,2,12,3,2,1.3999996 +3,27,2.5,1,2,14,3,4,1.3999996 +5,32,16.5,3,2,14,2,4,0.0606061 +4,42,23,5.5,1,14,3,5,0.5326087 +5,22,2.5,0,1,14,3,4,4.8999996 +5,42,23,2,2,20,1,5,0.1521739 +5,42,23,3,3,14,3,5,0.0434783 +2,42,23,3,3,16,4,4,0.1521739 +4,32,16.5,4,2,12,3,5,0.4848484 +4,37,23,4,2,12,3,4,0.8521735 +4,42,23,2,1,14,5,3,0.5326087 +5,22,2.5,0,4,14,3,4,1.3999996 +4,22,2.5,0,1,16,3,5,1.3999996 +4,42,23,3,3,14,5,5,1.9478254 +4,42,23,3,2,14,3,5,1.9478254 +2,22,2.5,0,2,14,3,5,0.4 +3,42,23,3,1,20,4,4,0.0434783 +3,37,16.5,3,4,12,3,2,2.545454 +4,27,16.5,2,1,12,3,2,0.2121212 +3,27,6,1,1,16,4,1,3.2666645 +5,32,13,2,2,14,4,4,0.9230769 +4,32,13,3,2,12,2,4,0.6153846 +5,42,13,0,1,16,3,6,1.5076914 +4,32,9,2,3,14,3,4,2.1777763 +3,42,16.5,1,3,17,3,3,0.7424242 +4,42,23,3,1,14,3,5,0.8521735 +1,32,13,3,3,14,3,4,1.5076914 +4,27,6,2,2,14,3,5,1.333333 +4,27,6,2,2,14,5,4,3.2666645 +5,27,2.5,0,3,16,3,5,1.3999996 +4,22,2.5,0,1,16,4,2,1.3999996 +4,27,6,3,3,14,4,2,2.041666 +4,42,23,2,1,16,4,5,0.1521739 +3,27,6,1,4,14,5,4,0.5833333 +3,32,13,0,2,16,3,6,0.9230769 +1,27,6,2,3,14,3,2,3.2666645 +3,32,13,2,2,14,3,2,2.1538458 +3,37,16.5,4,2,14,4,4,0.7424242 +4,37,16.5,3,4,14,4,4,0.2121212 +4,32,16.5,4,3,14,3,5,0.2121212 +5,27,2.5,0,1,14,3,5,4.7999992 +3,22,2.5,0,2,14,3,1,0.4 +5,32,23,2,3,14,5,6,0.5217391 +3,27,9,1,3,14,3,2,1.333333 +5,37,23,3,2,14,5,4,0.3478261 +3,27,6,1,3,20,4,4,3.2666645 +1,27,9,1,3,14,2,4,0.3888888 +4,32,13,4,2,16,4,2,0.2692307 +3,32,16.5,3,3,14,5,4,4.0727262 +4,42,23,3,3,14,4,5,0.1521739 +4,32,16.5,4,2,14,2,5,1.696969 +3,27,9,4,4,14,4,4,0.3888888 +4,27,6,1,2,12,2,4,0.1666666 +2,22,6,1,3,14,3,5,2 +4,22,2.5,1,2,14,3,5,1.3999996 +3,22,2.5,1,3,14,3,4,3.1999998 +5,22,2.5,0,1,14,3,2,1.3999996 +5,37,23,3,1,12,5,2,1.826086 +3,27,9,1,1,14,3,6,4.666666 +4,27,2.5,0,1,14,5,5,7.8399963 +5,27,2.5,0,1,16,4,2,1.3999996 +3,22,6,2,3,12,3,2,0.5833333 +4,37,23,2,2,12,3,2,0.1521739 +3,22,2.5,0,2,14,3,4,4.7999992 +5,27,2.5,0,2,17,4,5,1.3999996 +4,22,2.5,0,1,14,5,2,4.8999996 +4,27,6,1,2,14,3,3,7 +4,27,6,2,2,14,4,4,0.5833333 +4,32,13,0,2,12,3,3,3.2307692 +4,27,9,2,2,12,2,4,1.3611107 +3,22,2.5,0,1,14,3,2,7.8399963 +5,27,2.5,0,1,14,2,4,7.8399963 +3,37,23,4,2,14,3,4,1.9478254 +5,27,9,3,2,16,4,4,1.333333 +4,22,2.5,0,2,12,2,2,1.3999996 +2,32,16.5,3,1,14,4,4,1.1878777 +3,27,9,2,2,12,3,2,1.3611107 +4,32,16.5,3,1,16,4,5,0.7272727 +3,27,9,1,2,12,5,4,0.1111111 +5,22,2.5,0,1,14,2,2,7.8399963 +4,42,23,2,3,14,5,5,0.5326087 +5,27,6,1,4,16,4,1,0.1666666 +4,22,2.5,0,1,12,2,2,4.8999996 +3,22,0.5,0,1,14,5,5,7 +5,42,23,5.5,3,14,5,4,1.9478254 +4,37,16.5,2,2,12,3,4,0.2121212 +4,22,2.5,0,2,12,3,3,3.1999998 +3,22,6,1,2,12,3,2,2.041666 +4,42,23,4,3,17,6,3,2.782608 +4,22,6,0,4,14,5,4,2.041666 +2,27,9,3,3,14,4,4,0.1111111 +3,27,6,1,1,14,5,4,7 +5,42,23,5.5,3,16,4,6,0.0434783 +4,37,13,3,1,12,4,4,0.6153846 +4,37,16.5,2,3,12,5,5,0.7272727 +4,37,13,3,3,16,3,4,0.2692307 +5,22,6,2,2,12,2,4,4.666666 +4,27,2.5,0,2,17,4,6,16.7999878 +2,22,6,2,3,14,3,5,3.2666645 +3,22,6,1,2,12,4,4,1.333333 +5,32,9,2,2,14,4,4,0.1111111 +3,27,9,3,2,12,3,2,0.3888888 +3,32,13,2,3,14,3,5,0.2692307 +2,27,9,1,2,16,4,5,4.9777775 +4,27,6,1,1,17,3,5,0.5833333 +4,32,2.5,0,2,20,6,6,16.7999878 +5,32,13,2,1,12,3,5,0.9423077 +4,32,16.5,1,1,14,5,5,1.696969 +5,27,2.5,0,3,12,4,5,0.4 +3,42,23,4,3,16,4,2,0.3478261 +4,22,6,1,3,14,3,4,2.041666 +4,27,6,0,3,14,3,4,0.1666666 +4,17.5,2.5,0,2,12,3,4,7.8399963 +4,22,2.5,0,1,12,3,4,0.4 +1,37,13,3,1,17,5,6,0.0769231 +2,32,16.5,2,1,12,5,2,2.7151508 +3,37,23,3,3,12,3,5,0.1521739 +5,27,9,1,3,12,3,5,1.3611107 +4,27,6,1,1,12,3,3,3.2666645 +3,37,23,4,2,12,3,2,1.826086 +4,37,23,5.5,3,12,5,5,0.1521739 +1,22,2.5,1,1,12,3,4,1.3999996 +3,22,2.5,0,1,12,3,5,4.7999992 +4,27,2.5,0,1,16,4,2,7.8399963 +4,32,13,1,3,16,3,5,0.6153846 +4,27,2.5,0,2,12,3,4,7.8399963 +2,32,9,0,2,16,3,2,1.3611107 +5,42,23,4,1,20,4,5,0.5217391 +4,22,6,1,1,12,3,5,2 +3,42,23,4,2,14,3,5,0.3478261 +5,27,6,0,3,12,3,4,2.041666 +4,42,16.5,2,2,12,3,4,0.2121212 +5,22,2.5,0,2,16,4,1,3.1999998 +4,42,23,5.5,4,20,4,2,0.1521739 +5,27,9,2,3,14,4,5,0.3888888 +4,27,2.5,1,3,16,6,5,4.7999992 +3,27,9,0,3,16,5,5,1.333333 +5,37,23,3,2,14,3,5,0.1521739 +4,37,16.5,2,3,17,4,2,1.696969 +3,27,6,1,1,17,4,5,2.041666 +5,32,16.5,3,4,14,3,6,0.7272727 +5,37,16.5,2,3,12,3,4,0.7424242 +3,27,6,1,4,17,4,5,7 +3,37,16.5,3,2,14,3,4,2.545454 +5,27,9,1,1,14,3,4,0.3888888 +3,32,9,3,2,14,5,5,1.3611107 +2,42,23,3,2,12,3,5,0.8521735 +4,32,13,2,1,14,3,5,1.5076914 +4,22,2.5,1,2,14,3,2,4.7999992 +5,27,9,2,2,12,3,6,0.3888888 +5,32,16.5,2,1,12,3,6,0.0606061 +4,32,16.5,2,2,12,2,4,1.696969 +4,42,23,3,2,12,3,5,1.9478254 +4,32,9,2,3,9,3,5,1.333333 +2,27,6,2,3,12,3,4,2.041666 +5,42,23,2,3,16,4,5,0.2434782 +4,37,23,3,4,12,5,4,0.5326087 +4,32,16.5,3,2,12,5,5,3.878787 +3,27,9,1,2,12,3,4,7.1111107 +2,37,13,2,3,14,3,4,0.9230769 +4,32,16.5,3,3,14,4,3,0.2121212 +3,32,16.5,4,3,12,2,2,1.1878777 +3,42,23,4,2,12,4,4,1.826086 +3,42,23,3,3,17,4,6,0.0434783 +5,27,9,3,1,14,3,6,1.333333 +4,27,6,1,3,14,4,5,0.5833333 +3,22,2.5,0,2,12,3,5,1.3999996 +3,22,2.5,0,2,14,5,4,0.4 +4,32,16.5,3,3,9,5,5,0.2121212 +4,27,2.5,0,3,16,4,6,4.8999996 +3,27,6,1,2,12,3,5,0.5833333 +3,32,16.5,2,3,16,4,4,0.7424242 +5,42,23,3,3,12,4,2,1.217391 +3,27,6,1,3,16,2,2,2 +4,27,9,2,3,14,5,5,1.333333 +4,27,9,1,4,12,3,2,3.1111107 +3,37,13,2,3,16,2,4,1.5076914 +4,22,6,1,2,14,3,5,0.5833333 +5,37,13,2,3,14,5,5,0.6153846 +3,22,2.5,0,1,14,3,1,4.8999996 +4,37,16.5,3,3,12,5,5,0.2121212 +1,32,13,2,2,17,4,6,3.2307692 +3,22,2.5,0,3,14,5,4,3.1999998 +3,22,6,1,3,12,4,2,2 +4,22,2.5,1,3,14,2,2,16.7999878 +2,42,23,2,1,14,3,5,0.1521739 +1,42,23,3,1,17,4,5,1.826086 +3,37,16.5,3,3,16,6,4,1.696969 +4,27,6,0,2,12,3,4,7 +3,37,16.5,4,1,12,3,6,0.7272727 +4,27,6,2,2,12,3,2,0.1666666 +3,32,9,0,1,16,4,5,7.4666662 +5,22,2.5,0,3,14,4,4,0.4 +2,37,16.5,2,4,12,3,3,0.2121212 +3,22,2.5,0,3,12,3,2,1.3999996 +4,27,6,2,1,14,2,2,2.041666 +3,32,16.5,3,2,12,4,2,0.7424242 +2,27,2.5,0,2,16,4,5,17.9199982 +3,42,23,5.5,2,20,4,3,0.1521739 +1,37,16.5,2,3,14,3,5,0.7272727 +4,22,6,2,2,12,3,5,3.2666645 +4,42,23,2,3,20,4,4,0.8521735 +3,22,2.5,0,2,14,3,3,3.1999998 +4,27,9,0,3,17,5,6,1.333333 +5,27,2.5,0,2,16,3,2,11.1999998 +5,27,9,2,3,14,3,3,0.3888888 +2,27,6,1,1,16,4,5,2 +3,42,23,2,2,14,3,5,0.5217391 +4,27,9,2,3,12,3,5,1.3611107 +3,37,23,5.5,2,12,2,5,0.3478261 +4,27,6,1,2,14,3,4,3.2666645 +3,27,2.5,0,3,12,3,5,4.7999992 +1,27,2.5,0,2,14,3,2,4.8999996 +3,27,6,1,3,16,5,4,2 +4,27,6,2,3,16,4,2,3.2666645 +4,27,13,3,4,14,2,4,1.5076914 +3,27,9,2,3,16,4,5,4.666666 +5,27,13,3,2,14,5,4,0.9423077 +5,22,6,1,3,12,4,2,7 +1,32,16.5,2,3,16,4,4,0.7272727 +1,42,23,3,3,20,4,4,0.8521735 +3,27,2.5,0,1,16,5,5,3.1999998 +5,42,23,5.5,3,14,4,5,0.0434783 +3,22,6,1,1,16,3,4,3.2666645 +1,22,2.5,0,1,12,3,2,1.3999996 +2,22,2.5,1,2,14,3,4,11.1999998 +5,27,2.5,0,1,17,4,4,1.3999996 +2,27,6,1,3,12,3,6,3.2666645 +3,37,9,2,1,17,4,3,0.3888888 +3,42,23,2,3,12,3,3,1.826086 +4,37,16.5,4,3,17,4,2,1.1878777 +4,32,13,2,2,14,5,5,0.2692307 +5,27,9,2,3,14,4,4,1.333333 +5,42,16.5,4,3,16,5,4,0.0606061 +1,37,13,1,4,16,3,5,1.5076914 +5,32,9,3,2,16,4,5,0.3888888 +3,22,2.5,0,2,12,3,3,25.5999908 +3,27,2.5,0,4,14,5,6,0.4 +3,22,2.5,0,2,12,3,5,1.3999996 +2,32,16.5,2,1,16,6,6,0.7272727 +4,32,9,1,3,14,3,5,0.8888888 +2,42,16.5,2,3,12,3,3,1.1878777 +4,37,16.5,3,2,12,5,2,4.0727262 +2,37,16.5,3,2,12,3,5,0.2121212 +4,22,2.5,1,3,12,3,4,1.3999996 +3,32,16.5,3,1,12,5,4,0.7272727 +3,32,9,1,1,14,2,4,2.1777763 +1,42,23,3,2,14,3,5,0.8521735 +5,22,2.5,0,1,14,3,2,7.8399963 +3,42,23,4,1,14,3,5,0.1521739 +4,27,9,2,2,12,1,5,3.1111107 +4,27,9,1,3,14,3,5,3.1111107 +4,22,2.5,0,1,16,4,4,1.3999996 +4,37,16.5,5.5,3,12,2,4,0.2121212 +3,22,6,2,1,12,3,4,1.333333 +1,42,16.5,5.5,2,12,2,5,0.2121212 +3,32,9,2,4,17,4,2,2.1777763 +4,32,13,2,2,12,3,5,0.9423077 +3,37,16.5,2,2,16,4,5,1.1878777 +3,37,16.5,3,3,17,4,6,0.7272727 +4,32,13,2,2,14,5,4,1.5076914 +3,42,23,3,1,14,4,4,1.217391 +1,32,16.5,2,3,14,4,2,2.545454 +1,42,23,2,3,12,3,4,0.8521735 +5,37,6,2,3,17,4,4,0.5833333 +5,22,2.5,0,3,16,3,5,16.7999878 +3,32,16.5,2,1,12,3,4,0.7272727 +1,27,6,2,2,12,2,2,0.5833333 +3,42,23,4,2,12,3,5,0.8521735 +5,27,6,2,1,14,4,4,2.041666 +4,27,6,2,2,12,3,2,3.2666645 +4,22,2.5,0,1,16,3,4,3.1999998 +4,27,9,0,2,12,3,4,1.3611107 +4,22,6,0,1,14,5,6,2 +3,42,16.5,2,1,14,3,6,0.7272727 +3,32,16.5,4,1,12,3,4,1.696969 +1,22,2.5,1,1,12,3,4,7.8399963 +4,37,16.5,3,2,12,3,5,2.545454 +3,22,6,3,2,14,3,2,3.2666645 +5,22,2.5,0,2,12,3,5,7.8399963 +2,22,2.5,0,3,14,3,3,4.8999996 +3,22,2.5,0,3,16,4,4,1.3999996 +3,22,0.5,0,1,14,3,2,39.1999817 +4,22,2.5,0,3,14,3,4,0.4 +4,27,9,2,2,14,4,2,1.3611107 +5,37,16.5,2,3,14,3,5,1.1878777 +4,32,13,1,3,14,4,5,0.9423077 +3,32,13,4,3,12,5,4,0.2692307 +3,27,6,3,3,14,3,5,2.041666 +4,32,13,2,2,14,3,4,0.9230769 +2,42,23,2,2,14,5,5,0.8521735 +4,37,16.5,2,3,12,4,4,0.7272727 +5,27,2.5,1,3,12,4,5,4.8999996 +3,22,2.5,1,1,12,2,2,0.4 +2,27,6,2,2,14,4,4,0.5833333 +3,42,23,3,2,14,3,3,0.8521735 +2,22,2.5,1,2,14,2,2,7.8399963 +5,22,6,1,2,17,4,2,7 +5,32,13,2,2,14,2,2,0.6153846 +1,32,16.5,2,2,17,4,2,0.7272727 +2,32,16.5,3,2,14,4,5,0.2121212 +3,37,16.5,2,3,14,5,2,0.7424242 +4,42,23,5.5,1,12,3,5,0.8521735 +4,42,23,3,4,14,3,4,0.5217391 +4,27,6,0,2,16,4,4,1.333333 +4,27,2.5,2,2,16,4,5,1.3999996 +3,27,9,1,2,12,2,2,0.3888888 +4,27,6,2,3,14,4,4,2 +4,27,9,2,2,12,4,5,0.3888888 +2,27,6,0,3,14,3,6,2 +4,27,9,2,3,16,4,6,1.3611107 +4,22,2.5,1,3,14,5,1,0.4 +2,27,2.5,1,1,14,5,4,7.8399963 +4,37,16.5,3,3,14,3,4,0.2121212 +5,32,13,2,1,14,3,6,0.9230769 +2,27,9,0,2,17,4,5,1.3611107 +4,32,16.5,3,3,12,3,3,0.7272727 +5,42,23,3,3,12,3,5,1.217391 +1,37,16.5,1,3,12,2,3,0.7424242 +5,27,2.5,0,2,14,2,4,4.8999996 +4,37,16.5,1,3,14,3,6,0.7424242 +5,32,13,1,1,20,2,6,1.5076914 +5,27,6,2,2,14,4,5,0.5833333 +4,27,2.5,0,1,20,6,1,7.8399963 +4,42,23,4,3,12,2,3,0.3478261 +3,27,9,1,3,17,5,5,2.1777763 +3,22,2.5,1,2,12,2,2,3.1999998 +4,27,6,0,2,14,3,6,2.041666 +4,32,13,2,1,12,3,5,3.4461536 +2,32,9,1,2,16,3,3,0.1111111 +2,27,6,1,1,14,4,6,2.041666 +3,22,2.5,1,1,14,2,2,1.3999996 +5,22,0.5,0,1,12,3,4,2 +5,22,2.5,0,2,20,4,1,7.8399963 +5,22,6,0,3,14,3,2,0.5833333 +5,42,23,2,3,17,4,2,0.1521739 +1,22,2.5,1,2,14,3,2,4.7999992 +3,27,6,1,2,12,3,4,3.2666645 +3,22,6,0,3,14,5,4,2 +4,27,9,2,2,16,4,4,2.1777763 +3,22,6,1,2,9,2,2,0.1666666 +4,32,16.5,3,2,16,5,5,0.2121212 +5,37,16.5,1,3,14,3,2,0.4848484 +2,27,9,2,3,14,2,2,0.8888888 +4,32,13,0,2,14,3,5,0.2692307 +4,37,23,5.5,3,14,4,5,0.8521735 +4,27,13,2,3,12,3,5,0.2692307 +3,27,9,1,1,16,3,6,1.3611107 +3,32,13,3,2,14,3,4,0.2692307 +2,27,9,1,3,14,3,5,1.3611107 +3,22,6,2,2,12,3,2,1.333333 +3,32,16.5,2,2,12,3,5,0.0606061 +3,42,23,2,3,12,2,3,2.9217386 +4,27,6,1,3,14,3,3,2.041666 +2,27,13,2,1,12,4,5,1.5076914 +3,42,23,3,2,12,3,4,0.1521739 +2,42,23,4,2,12,5,5,0.5217391 +5,42,23,4,4,14,3,2,0.1521739 +4,27,6,1,1,12,5,6,7 +3,42,23,1,2,14,5,6,0.5326087 +1,32,13,0,3,14,3,5,0.9423077 +5,32,13,2,3,14,4,2,0.9230769 +3,27,6,0,1,16,3,2,2.041666 +3,27,9,2,3,14,5,5,1.333333 +3,27,6,1,3,16,4,5,0.5833333 +4,22,2.5,0,1,12,3,2,1.3999996 +2,42,23,2,3,12,5,5,0.8521735 +4,22,2.5,0,3,14,5,4,3.1999998 +4,27,9,2,2,20,4,6,0.3888888 +2,27,2.5,1,2,14,2,4,1.3999996 +4,37,23,4,3,14,3,3,4.173913 +3,27,9,1,2,14,3,4,1.333333 +5,22,2.5,0,2,12,3,2,1.3999996 +4,27,6,1,2,12,3,4,0.1666666 +5,32,13,1,3,14,5,5,0.9230769 +5,32,13,1,2,12,3,4,0.2692307 +4,27,2.5,0,3,14,5,4,4.7999992 +4,27,9,1,3,14,3,5,0.1111111 +5,32,13,2,2,12,5,3,0.9423077 +4,27,2.5,0,3,12,3,3,0.4 +3,32,13,2,2,14,3,3,0.2692307 +4,27,6,1,3,12,3,4,0.5833333 +5,37,23,4,3,16,5,5,0.5217391 +4,27,9,2,2,12,5,5,2.1777763 +2,42,16.5,3,3,16,3,5,2.545454 +4,27,6,0,2,14,3,5,2.041666 +3,22,2.5,1,3,12,5,5,0.4 +4,32,13,2,2,14,3,5,1.5076914 +3,27,6,1,2,14,3,4,3.2666645 +3,27,13,1,1,12,3,3,0.6153846 +3,27,6,0,1,16,6,6,2.041666 +3,32,16.5,3,2,14,3,4,1.1878777 +5,42,23,3,3,14,3,4,0.8521735 +4,22,6,0,3,12,3,5,0.5833333 +4,32,16.5,2,3,12,3,4,0.2121212 +1,37,16.5,3,2,14,4,4,0.2121212 +3,22,2.5,0,3,16,3,4,4.8999996 +3,27,6,0,3,17,5,5,3.2666645 +3,37,16.5,2,3,16,5,3,0.0606061 +2,32,13,3,2,12,3,2,0.9423077 +4,37,23,2,3,14,5,2,0.1521739 +4,27,9,2,4,17,4,4,1.3611107 +4,27,9,1,2,14,3,5,0.1111111 +2,42,16.5,5.5,2,16,3,5,2.545454 +4,32,16.5,3,4,14,3,4,4.0727262 +4,27,6,1,3,14,3,2,2 +4,42,23,3,2,12,3,4,1.9478254 +5,32,16.5,3,2,12,3,5,1.696969 +5,32,16.5,3,1,14,2,4,0.0606061 +4,37,16.5,2,2,14,3,2,0.7272727 +2,22,6,2,3,12,3,4,2 +4,32,16.5,3,4,14,3,3,0.0606061 +2,37,23,3,3,12,3,2,0.1521739 +5,27,6,2,2,12,4,4,0.5833333 +5,32,16.5,2,2,17,4,3,0.0606061 +3,32,16.5,2,2,12,4,4,1.1878777 +4,27,9,2,3,12,3,4,0.8888888 +4,32,16.5,1,3,14,5,2,1.696969 +4,27,9,2,2,16,4,5,2.1777763 +4,22,2.5,0,1,16,3,2,0.4 +3,37,23,4,2,14,3,5,0.8521735 +5,27,13,2,2,12,2,5,0.9423077 +5,32,16.5,4,3,14,3,4,0.7272727 +2,37,16.5,3,2,14,5,3,0.2121212 +5,32,6,1,3,14,3,5,0.5833333 +3,22,2.5,0,2,16,3,3,4.8999996 +5,22,2.5,0,3,16,3,2,4.7999992 +2,32,13,1,2,12,3,2,1.5076914 +3,42,13,0,3,17,5,2,1.5076914 +3,22,2.5,0,1,16,3,5,7.8399963 +3,42,23,3,2,17,4,4,1.217391 +2,27,13,2,1,14,3,5,4.9230766 +4,22,2.5,1,1,14,3,1,1.3999996 +5,22,2.5,1,3,14,4,5,0.4 +4,42,23,1,3,14,3,2,0.1521739 +5,32,9,2,1,17,6,6,2.1777763 +4,32,16.5,3,2,12,3,2,2.545454 +3,27,2.5,1,3,14,3,6,1.3999996 +3,37,16.5,4,2,14,3,2,0.2121212 +3,32,16.5,3,3,14,3,5,0.7424242 +3,32,23,3,3,14,3,2,1.217391 +5,22,2.5,0,1,12,2,2,1.3999996 +3,32,16.5,3,2,12,5,5,4.0727262 +4,27,2.5,0,1,17,4,3,1.3999996 +3,27,6,0,2,20,6,6,3.2666645 +5,27,13,0,3,14,3,4,0.0769231 +5,37,16.5,3,4,14,5,5,0.2121212 +4,37,16.5,3,1,14,3,3,0.7272727 +5,32,13,1,3,14,5,2,3.2307692 +4,27,6,0,2,14,3,6,2 +3,27,0.5,0,1,14,3,3,24 +3,22,2.5,2,3,14,2,2,4.8999996 +4,37,23,4,4,12,3,3,0.1521739 +5,32,16.5,2,3,14,4,5,1.1878777 +5,32,13,3,3,14,3,6,0.9230769 +4,32,13,3,1,20,5,5,1.5076914 +3,27,6,0,1,12,3,4,0.5833333 +5,22,2.5,0,3,14,3,2,1.3999996 +4,32,23,3,2,9,4,5,1.217391 +3,37,23,2,2,12,5,4,0.5217391 +2,22,2.5,2,2,12,2,2,4.8999996 +4,32,13,0,3,14,3,5,1.5076914 +5,27,2.5,0,3,14,3,5,0.4 +4,32,9,2,3,14,2,4,0 +4,27,6,0,2,14,3,4,0 +4,22,2.5,0,2,14,3,2,0 +5,42,23,4,3,16,3,5,0 +5,27,2.5,1,3,20,2,2,0 +4,27,6,1,2,14,2,4,0 +4,42,23,5.5,2,12,3,2,0 +5,27,2.5,0,1,14,3,2,0 +5,32,13,2,3,14,3,5,0 +4,22,2.5,0,2,12,4,4,0 +5,22,2.5,0,3,12,3,2,0 +3,27,6,1,2,17,5,4,0 +3,27,2.5,0,2,16,3,5,0 +5,22,2.5,0,3,14,3,5,0 +5,22,2.5,0,1,17,4,2,0 +4,27,2.5,1,1,16,2,4,0 +5,27,2.5,0,2,16,5,4,0 +4,32,13,4,3,12,3,4,0 +5,17.5,0.5,0,4,16,3,4,0 +5,27,6,2,3,14,5,5,0 +5,22,6,2,2,17,4,2,0 +5,22,2.5,0,2,14,4,2,0 +3,27,9,0,2,16,5,2,0 +4,27,2.5,1,3,14,3,5,0 +5,22,2.5,0,1,12,3,4,0 +5,22,6,0,3,12,3,4,0 +5,27,6,2,3,12,3,3,0 +5,27,6,2,3,12,2,4,0 +4,27,2.5,0,1,12,3,2,0 +3,22,2.5,1,1,14,4,2,0 +4,22,2.5,0,1,14,3,2,0 +5,22,2.5,1,3,12,2,2,0 +5,27,6,1,4,14,5,6,0 +4,42,23,5.5,2,12,3,5,0 +5,27,9,2,3,14,3,4,0 +5,32,9,2,2,12,4,5,0 +4,22,2.5,0,3,16,4,6,0 +5,32,9,4,3,14,4,4,0 +5,27,2.5,0,2,16,2,4,0 +3,27,2.5,0,2,14,3,4,0 +4,27,9,0,2,12,4,4,0 +5,32,6,1,2,17,4,5,0 +4,22,2.5,0,3,12,3,4,0 +4,32,9,2,2,14,4,2,0 +4,22,2.5,0,2,16,4,5,0 +5,42,23,4,3,14,4,6,0 +4,27,2.5,2,3,14,4,3,0 +5,22,2.5,0,4,16,4,1,0 +5,17.5,0.5,0,2,14,4,5,0 +3,22,0.5,0,2,16,3,2,0 +5,22,0.5,0,3,16,4,2,0 +3,32,13,0,3,20,4,5,0 +4,27,2.5,0,4,16,4,6,0 +5,42,23,5.5,1,14,3,3,0 +4,37,16.5,3,3,16,3,5,0 +5,32,16.5,3,2,12,2,2,0 +4,32,9,2,2,14,4,3,0 +3,22,2.5,0,1,12,3,4,0 +4,37,2.5,0,3,12,3,4,0 +4,27,2.5,0,2,14,3,5,0 +5,32,9,2,1,14,3,5,0 +5,32,13,2,1,16,4,5,0 +5,37,16.5,3,3,16,5,4,0 +5,22,0.5,0,2,14,3,5,0 +5,42,16.5,2,3,17,4,4,0 +3,27,6,1,3,12,3,2,0 +5,22,2.5,0,2,16,4,4,0 +5,27,9,3,4,16,4,5,0 +5,42,23,1,4,17,4,5,0 +5,27,2.5,0,2,16,4,5,0 +5,42,23,1,3,14,3,2,0 +5,27,2.5,0,1,16,6,6,0 +5,27,2.5,1,2,14,3,4,0 +5,17.5,2.5,0,1,14,3,2,0 +5,22,6,0,1,12,2,3,0 +3,32,13,2,2,14,2,2,0 +5,27,2.5,0,1,17,4,5,0 +4,32,2.5,0,2,16,4,3,0 +5,22,2.5,1,1,12,3,3,0 +5,22,2.5,0,2,14,3,3,0 +5,42,16.5,3,2,12,3,4,0 +5,27,6,1,2,14,4,4,0 +5,32,9,2,3,16,4,4,0 +5,32,16.5,3,1,16,4,2,0 +4,27,2.5,0,3,14,3,5,0 +5,27,9,3,1,17,4,4,0 +4,27,2.5,0,3,14,4,5,0 +3,37,16.5,4,3,14,4,4,0 +5,22,2.5,0,2,17,5,5,0 +5,32,9,2,2,17,5,5,0 +5,22,2.5,1,1,12,3,4,0 +3,27,6,2,2,14,5,6,0 +5,22,2.5,0,2,14,3,4,0 +5,27,9,2,3,17,4,5,0 +4,27,2.5,0,2,14,3,3,0 +5,22,2.5,1,2,12,3,4,0 +4,27,2.5,0,3,12,2,5,0 +5,27,6,2,3,14,2,4,0 +5,22,2.5,2,1,14,4,3,0 +4,42,23,3,2,16,3,5,0 +4,32,6,0,3,12,3,4,0 +5,22,2.5,0,3,16,4,5,0 +5,22,2.5,0,3,16,3,4,0 +5,27,6,0,1,16,4,2,0 +4,42,23,3,2,9,5,5,0 +5,22,0.5,0,2,16,3,3,0 +3,22,2.5,0,2,16,5,5,0 +5,27,9,2,1,12,2,3,0 +5,32,16.5,2,1,12,2,5,0 +2,32,16.5,1,3,12,3,5,0 +3,22,2.5,0,2,14,3,4,0 +4,22,2.5,1,2,12,3,2,0 +4,27,6,0,2,12,3,2,0 +5,22,0.5,0,1,16,4,1,0 +5,27,2.5,0,3,16,3,5,0 +5,37,16.5,3,1,16,4,5,0 +4,42,23,3,4,12,3,4,0 +5,27,2.5,0,2,20,4,6,0 +4,32,6,2,2,16,4,5,0 +5,27,9,0,2,12,4,5,0 +4,32,6,1,3,12,6,6,0 +3,32,13,2,2,16,3,2,0 +4,37,16.5,4,2,12,3,2,0 +5,32,13,2,3,12,5,4,0 +3,22,2.5,2,1,12,3,2,0 +5,27,2.5,0,3,17,4,4,0 +5,22,2.5,0,3,12,3,5,0 +5,37,13,0,3,12,3,4,0 +5,22,2.5,0,1,12,3,4,0 +4,37,16.5,2,3,14,4,5,0 +5,37,16.5,2,3,14,3,4,0 +5,27,6,2,3,17,4,5,0 +1,22,2.5,1,2,17,2,2,0 +3,32,13,3,1,14,3,5,0 +4,27,2.5,1,3,12,3,5,0 +5,32,6,2,2,16,4,5,0 +5,22,2.5,0,1,12,3,5,0 +5,32,9,4,2,16,4,4,0 +4,22,2.5,0,1,14,3,1,0 +5,17.5,0.5,0,3,12,2,2,0 +5,27,0.5,0,1,17,4,5,0 +5,22,0.5,0,4,16,6,2,0 +5,27,6,0,1,12,3,5,0 +5,37,16.5,1,2,14,4,3,0 +3,42,16.5,3,3,14,3,4,0 +5,27,6,1,2,16,4,4,0 +5,42,23,2,3,17,5,4,0 +4,22,0.5,0,3,14,4,4,0 +2,37,16.5,3,2,14,3,4,0 +5,22,2.5,0,2,14,3,4,0 +5,27,2.5,0,1,16,4,4,0 +4,27,2.5,1,2,14,3,5,0 +3,42,13,0,3,16,4,6,0 +3,42,16.5,1,4,20,6,6,0 +4,42,23,4,3,14,3,5,0 +5,27,6,1,2,12,3,4,0 +5,37,23,5.5,3,12,2,5,0 +5,27,9,2,2,14,2,2,0 +4,27,13,4,2,12,3,2,0 +3,27,6,1,1,17,4,5,0 +5,32,9,2,3,12,4,4,0 +5,27,2.5,0,1,14,5,4,0 +4,27,9,2,3,16,4,4,0 +5,27,2.5,0,1,14,3,3,0 +4,42,23,4,3,12,3,2,0 +3,27,2.5,0,1,17,4,5,0 +4,27,6,1,2,12,3,2,0 +3,27,6,2,1,12,2,2,0 +3,42,9,1,2,14,5,4,0 +5,42,23,3,3,14,3,5,0 +4,22,6,2,1,12,3,6,0 +5,27,2.5,0,2,16,3,5,0 +4,27,9,2,3,12,2,5,0 +5,22,2.5,0,4,16,5,1,0 +5,27,6,2,3,16,3,5,0 +5,22,2.5,0,3,16,4,4,0 +5,22,0.5,0,2,12,2,2,0 +5,32,6,0,2,14,3,4,0 +5,42,23,4,2,16,5,5,0 +5,42,16.5,1,3,17,4,5,0 +5,27,16.5,4,2,12,3,4,0 +5,27,6,2,1,14,3,4,0 +5,37,23,3,2,14,3,6,0 +3,27,6,2,2,12,3,5,0 +5,32,6,0,1,16,5,5,0 +4,32,9,0,2,14,3,5,0 +4,27,9,5.5,1,12,4,3,0 +4,22,2.5,1,1,12,5,4,0 +4,22,6,1,2,12,2,2,0 +5,42,23,3,3,12,3,4,0 +4,32,6,2,3,14,4,4,0 +4,22,2.5,0,1,16,3,4,0 +4,42,23,2,3,14,3,5,0 +4,37,16.5,2,3,14,3,5,0 +5,27,2.5,0,3,14,3,4,0 +2,42,23,5.5,1,20,2,5,0 +4,27,2.5,1,2,14,5,5,0 +4,27,16.5,4,2,17,4,4,0 +4,22,2.5,0,1,14,3,4,0 +5,32,9,2,2,16,4,4,0 +4,22,2.5,0,3,14,4,5,0 +5,42,23,5.5,3,16,2,5,0 +5,27,2.5,0,4,14,3,5,0 +5,27,2.5,1,1,14,4,6,0 +4,22,0.5,0,3,16,5,1,0 +4,22,2.5,0,3,14,3,4,0 +5,22,0.5,0,1,16,3,6,0 +3,42,23,3,2,16,4,2,0 +5,27,2.5,1,2,12,3,2,0 +5,22,2.5,0,3,14,3,6,0 +4,27,6,2,3,16,4,4,0 +3,22,6,3,2,14,3,2,0 +4,22,2.5,0,4,12,3,2,0 +5,42,23,2,3,12,3,4,0 +4,27,2.5,0,2,16,4,5,0 +5,27,6,0,1,12,3,4,0 +5,22,0.5,0,2,14,2,4,0 +5,32,16.5,2,3,12,3,4,0 +4,27,2.5,0,2,12,3,5,0 +5,22,2.5,0,2,17,4,4,0 +5,32,9,2,2,16,4,5,0 +5,17.5,2.5,0,3,12,3,2,0 +4,22,2.5,0,3,12,3,2,0 +5,22,2.5,0,2,16,4,5,0 +5,32,9,2,3,17,4,2,0 +5,22,0.5,0,2,16,4,4,0 +5,37,16.5,3,4,14,4,2,0 +5,27,2.5,0,2,16,2,4,0 +5,37,13,3,3,20,4,4,0 +4,32,6,1,2,14,5,6,0 +5,27,6,0,1,12,5,5,0 +5,32,2.5,0,3,12,3,5,0 +5,32,16.5,2,3,12,3,3,0 +4,27,2.5,1,2,17,4,5,0 +4,27,6,1,3,17,4,4,0 +2,42,23,4,3,9,2,2,0 +4,22,2.5,0,2,14,5,4,0 +4,27,2.5,0,1,16,4,4,0 +5,27,6,0,2,12,3,4,0 +3,22,2.5,0,2,16,3,5,0 +4,22,2.5,0,2,12,3,5,0 +4,22,2.5,0,3,17,5,4,0 +5,42,23,5.5,4,12,3,5,0 +4,32,13,3,3,12,3,5,0 +5,22,2.5,0,3,14,3,5,0 +5,22,2.5,0,2,16,3,5,0 +4,27,2.5,1,2,16,4,5,0 +5,42,23,4,1,17,3,5,0 +4,32,13,3,3,12,3,5,0 +3,17.5,2.5,0,1,16,4,2,0 +4,42,23,3,3,16,4,2,0 +5,27,9,2,3,12,3,5,0 +5,22,2.5,1,3,14,3,4,0 +4,27,6,2,2,14,3,4,0 +5,32,9,0,3,17,4,5,0 +5,22,2.5,0,4,12,3,4,0 +5,37,16.5,3,3,12,3,5,0 +4,22,6,2,3,14,4,2,0 +5,27,2.5,0,4,16,4,2,0 +5,37,13,2,2,20,4,5,0 +5,27,13,2,2,16,4,4,0 +5,22,2.5,0,3,12,2,5,0 +4,22,6,1,2,12,3,5,0 +5,27,2.5,0,2,16,4,4,0 +3,22,2.5,1,2,12,2,5,0 +5,22,0.5,0,3,14,3,5,0 +5,17.5,2.5,0,1,14,3,4,0 +5,22,2.5,0,2,14,3,5,0 +4,22,0.5,0,3,12,2,5,0 +5,27,2.5,0,1,16,4,5,0 +4,22,2.5,0,3,12,3,3,0 +4,27,6,0,1,12,3,2,0 +5,22,2.5,2,1,14,3,4,0 +2,27,6,1,2,12,2,2,0 +5,22,0.5,0,2,16,4,5,0 +5,22,6,0,3,14,3,4,0 +5,27,2.5,0,3,12,4,2,0 +3,32,16.5,4,3,14,4,4,0 +5,27,2.5,0,1,20,4,4,0 +4,27,2.5,0,2,16,5,6,0 +5,22,2.5,0,4,16,4,5,0 +5,22,2.5,0,3,17,4,4,0 +4,22,2.5,0,2,16,3,2,0 +4,37,16.5,3,2,12,5,4,0 +5,27,6,2,4,17,4,5,0 +5,22,2.5,1,2,12,3,2,0 +5,32,16.5,4,3,12,3,3,0 +5,22,0.5,0,4,16,3,2,0 +3,27,9,1,2,14,3,4,0 +5,37,23,3,4,12,3,2,0 +5,22,2.5,0,3,14,3,5,0 +5,22,2.5,0,3,14,3,4,0 +5,22,2.5,0,3,12,3,4,0 +4,32,13,1,3,12,5,5,0 +5,32,2.5,1,3,12,3,4,0 +4,22,2.5,0,2,12,3,4,0 +4,22,6,1,2,12,3,5,0 +5,17.5,2.5,1,3,12,2,2,0 +5,22,2.5,0,2,14,2,4,0 +4,27,0.5,0,3,16,3,6,0 +5,22,2.5,0,2,12,3,2,0 +5,22,2.5,0,1,17,4,4,0 +5,32,2.5,0,3,14,3,4,0 +5,27,2.5,0,2,14,3,5,0 +4,27,6,1,2,12,3,4,0 +3,22,2.5,0,2,14,2,5,0 +5,27,6,2,3,12,4,2,0 +4,22,0.5,0,1,12,2,2,0 +5,42,23,3,1,20,4,6,0 +3,22,2.5,1,2,12,3,4,0 +5,27,6,0,2,16,5,5,0 +4,22,2.5,0,3,12,2,5,0 +5,22,6,0,3,14,3,4,0 +4,22,2.5,0,3,14,5,4,0 +5,17.5,2.5,0,2,12,2,5,0 +4,27,2.5,0,1,17,2,6,0 +3,42,23,5.5,3,14,3,5,0 +4,32,6,2,1,16,4,4,0 +5,22,6,2,2,14,3,2,0 +5,22,6,3,3,12,3,4,0 +5,22,2.5,0,2,12,2,2,0 +4,42,23,2,3,16,4,5,0 +4,27,2.5,2,3,20,4,5,0 +4,27,2.5,1,2,14,3,5,0 +4,32,13,2,4,14,4,3,0 +5,22,0.5,0,3,14,3,5,0 +3,42,23,2,2,12,3,5,0 +5,42,23,3,4,14,3,5,0 +5,22,0.5,0,2,20,4,4,0 +5,22,2.5,0,1,14,3,3,0 +4,27,6,1,1,20,4,2,0 +5,32,9,2,3,14,4,1,0 +4,17.5,0.5,0,1,12,3,4,0 +5,42,6,0,2,17,4,5,0 +5,42,23,2,2,12,3,6,0 +4,27,13,1,2,12,5,2,0 +4,27,2.5,0,1,14,3,4,0 +3,27,6,2,2,12,2,2,0 +5,22,6,0,1,14,5,5,0 +4,37,13,2,3,20,4,4,0 +4,27,2.5,0,1,16,4,1,0 +5,27,9,2,3,17,4,4,0 +4,32,2.5,1,2,12,3,4,0 +4,27,2.5,0,4,14,3,6,0 +5,27,6,3,1,16,3,5,0 +5,32,16.5,4,3,14,5,2,0 +5,17.5,0.5,0,3,12,3,2,0 +4,42,23,4,2,12,2,5,0 +5,27,6,0,4,16,5,5,0 +4,27,2.5,0,1,16,4,5,0 +5,37,16.5,2,1,16,4,5,0 +5,22,2.5,1,3,17,4,2,0 +4,17.5,2.5,0,3,12,3,4,0 +3,27,6,2,3,14,3,5,0 +3,37,16.5,3,3,12,4,5,0 +4,27,2.5,0,4,14,3,4,0 +4,37,13,2,2,12,2,4,0 +4,32,9,1,3,17,4,4,0 +5,27,6,1,2,16,2,6,0 +4,22,2.5,1,3,12,2,4,0 +2,42,23,5.5,1,12,5,5,0 +5,42,16.5,5.5,3,17,4,5,0 +5,42,23,4,3,12,5,6,0 +5,22,0.5,0,3,12,3,5,0 +5,22,2.5,0,1,16,5,5,0 +3,32,13,3,4,14,3,5,0 +3,32,13,3,3,16,4,2,0 +5,32,9,2,3,16,4,6,0 +5,27,0.5,0,3,12,3,5,0 +5,32,16.5,3,4,14,2,4,0 +3,22,2.5,0,2,12,3,2,0 +5,27,13,3,3,12,2,4,0 +4,27,2.5,0,3,14,3,4,0 +4,42,13,0,3,20,4,4,0 +5,32,13,3,2,12,3,4,0 +5,27,13,3,3,12,3,5,0 +4,32,13,3,4,14,3,4,0 +4,27,0.5,1,3,17,4,4,0 +5,27,6,0,2,12,3,5,0 +3,27,6,2,2,14,4,3,0 +3,22,2.5,0,2,16,5,4,0 +3,32,0.5,0,3,20,6,5,0 +5,42,23,4,4,20,4,4,0 +3,22,0.5,0,2,14,3,5,0 +5,27,9,2,4,16,2,5,0 +5,22,2.5,0,3,16,4,4,0 +4,42,16.5,2,3,12,2,2,0 +4,42,16.5,3,2,20,4,4,0 +5,42,23,4,2,20,6,5,0 +4,32,16.5,3,2,12,3,5,0 +4,32,6,1,1,17,4,4,0 +2,32,16.5,2,4,12,3,2,0 +5,32,9,2,4,20,4,6,0 +5,22,2.5,0,2,16,3,2,0 +5,27,2.5,1,1,16,4,4,0 +4,27,9,1,3,12,3,4,0 +2,32,16.5,3,4,12,3,5,0 +4,32,13,2,1,20,4,6,0 +5,27,2.5,0,2,16,4,5,0 +4,37,13,2,4,14,4,5,0 +4,22,0.5,0,2,16,4,4,0 +4,27,9,2,2,14,4,4,0 +5,27,6,0,1,16,5,5,0 +4,32,13,2,3,14,4,5,0 +2,42,23,2,2,12,3,5,0 +4,22,0.5,0,2,14,3,2,0 +5,42,23,2,3,12,3,5,0 +5,22,2.5,0,3,16,4,6,0 +5,32,13,0,3,17,4,4,0 +5,22,0.5,0,2,16,4,2,0 +4,32,13,0,1,12,5,5,0 +4,37,9,0,1,16,3,5,0 +5,37,16.5,5.5,3,14,4,4,0 +4,27,6,0,3,14,5,6,0 +5,42,23,1,1,17,3,2,0 +4,22,2.5,0,1,17,1,3,0 +4,27,9,0,2,12,3,5,0 +4,32,9,1,3,14,3,6,0 +1,22,2.5,1,3,14,3,4,0 +4,27,2.5,1,3,16,4,5,0 +4,27,6,2,3,16,4,2,0 +2,27,6,1,2,14,3,4,0 +2,37,13,1,1,12,2,3,0 +5,22,2.5,0,4,14,5,5,0 +5,22,2.5,0,2,17,4,2,0 +4,27,6,1,2,14,4,2,0 +4,22,6,1,4,14,3,4,0 +4,27,9,2,3,12,4,5,0 +4,32,13,3,1,16,4,6,0 +5,32,16.5,1,3,12,2,2,0 +4,42,23,4,4,14,5,5,0 +5,32,9,4,3,14,4,6,0 +3,22,2.5,1,2,14,3,3,0 +5,37,16.5,4,3,17,5,6,0 +5,22,2.5,0,4,12,3,4,0 +5,32,13,2,2,14,3,5,0 +3,42,16.5,3,2,12,3,4,0 +4,37,13,3,3,12,2,2,0 +4,22,2.5,0,3,14,3,6,0 +5,42,23,5.5,4,17,4,6,0 +5,22,0.5,2,1,12,2,4,0 +5,37,16.5,3,1,16,3,4,0 +5,32,9,3,3,14,2,5,0 +5,27,6,1,3,20,4,6,0 +5,27,6,2,3,17,4,1,0 +5,32,6,1,4,16,4,6,0 +4,27,2.5,0,3,14,3,5,0 +5,22,2.5,0,1,12,3,3,0 +5,22,2.5,0,1,12,3,3,0 +3,42,23,4,3,14,3,5,0 +5,27,6,1,1,16,5,2,0 +3,27,6,0,2,17,4,6,0 +5,27,6,2,3,16,4,5,0 +5,27,6,0,3,12,3,5,0 +4,27,2.5,0,1,12,3,4,0 +5,32,9,2,1,14,5,5,0 +4,22,2.5,0,2,14,3,5,0 +4,22,0.5,0,3,14,3,3,0 +5,32,6,2,4,12,3,5,0 +5,42,23,5.5,2,12,2,2,0 +5,22,2.5,0,4,16,4,4,0 +4,22,2.5,1,3,14,5,1,0 +5,32,6,0,3,16,4,4,0 +4,27,9,2,3,12,3,4,0 +4,42,23,4,4,16,4,4,0 +4,27,6,0,2,16,4,4,0 +4,22,2.5,0,2,14,3,4,0 +5,27,0.5,0,3,17,4,5,0 +2,27,2.5,0,3,14,4,1,0 +4,27,6,0,2,14,3,6,0 +5,27,2.5,0,2,17,3,3,0 +5,32,13,2,2,14,2,4,0 +5,22,2.5,0,4,12,2,4,0 +4,42,16.5,2,2,12,3,2,0 +5,27,13,2,3,12,3,5,0 +5,22,2.5,1,2,12,2,2,0 +5,37,16.5,4,3,12,2,6,0 +5,27,2.5,0,2,16,3,4,0 +4,22,2.5,0,2,14,3,4,0 +5,22,2.5,0,3,12,2,5,0 +5,27,2.5,0,2,17,4,2,0 +4,27,2.5,0,2,17,4,4,0 +4,42,23,2,4,12,4,2,0 +5,27,2.5,0,2,16,3,5,0 +4,37,13,1,3,12,2,2,0 +4,27,6,2,3,14,3,5,0 +5,27,6,1,3,12,3,4,0 +3,42,23,5.5,2,14,4,5,0 +5,27,6,0,3,20,4,4,0 +5,22,2.5,0,2,14,3,2,0 +4,27,2.5,0,3,12,3,3,0 +5,22,2.5,0,3,16,3,5,0 +2,32,2.5,1,2,12,5,2,0 +4,27,2.5,1,2,14,4,4,0 +4,27,0.5,0,3,14,3,4,0 +4,32,9,1,3,17,4,4,0 +4,27,9,2,2,17,4,5,0 +5,22,2.5,0,4,14,4,4,0 +4,22,2.5,0,2,12,2,2,0 +5,27,6,2,2,16,4,1,0 +4,27,6,0,2,12,3,4,0 +4,32,13,2,2,14,3,5,0 +4,37,16.5,2,1,20,4,6,0 +4,42,23,3,2,12,3,5,0 +1,42,23,5.5,3,14,2,5,0 +4,27,2.5,0,1,12,3,2,0 +4,27,6,1,3,14,2,5,0 +3,42,16.5,5.5,2,14,3,6,0 +5,22,2.5,0,2,16,3,1,0 +4,27,2.5,1,2,12,3,2,0 +5,37,16.5,4,3,16,4,5,0 +5,22,2.5,0,2,14,3,3,0 +4,27,2.5,0,3,14,3,1,0 +4,22,2.5,0,1,14,2,2,0 +5,22,2.5,0,2,12,3,4,0 +5,22,0.5,0,3,12,3,3,0 +3,42,23,2,1,20,4,4,0 +5,32,16.5,1,3,17,5,4,0 +5,27,9,1,2,14,3,4,0 +5,27,2.5,1,3,14,3,5,0 +4,27,6,0,2,16,3,3,0 +5,22,0.5,0,3,14,3,2,0 +4,32,9,0,1,17,4,4,0 +3,37,16.5,3,3,12,3,3,0 +5,27,2.5,0,3,12,3,4,0 +5,22,2.5,0,4,14,3,2,0 +4,32,13,3,3,17,4,4,0 +5,42,23,5.5,4,17,5,5,0 +4,27,2.5,0,2,16,4,4,0 +5,42,16.5,4,3,14,3,4,0 +3,27,2.5,0,3,12,3,3,0 +5,27,6,2,4,16,4,6,0 +3,22,0.5,0,3,12,5,4,0 +4,42,23,3,2,14,3,4,0 +5,27,2.5,0,2,16,4,5,0 +5,22,0.5,0,3,12,3,2,0 +5,22,2.5,0,2,12,3,4,0 +5,37,16.5,2,1,12,3,5,0 +3,22,6,2,2,12,3,2,0 +2,42,23,3,2,14,3,5,0 +4,32,2.5,0,1,17,5,5,0 +5,22,2.5,0,3,16,3,4,0 +4,22,0.5,0,3,14,3,4,0 +5,27,6,1,1,14,4,4,0 +4,27,2.5,0,3,16,4,4,0 +5,32,6,3,1,16,3,5,0 +5,32,16.5,2,1,12,2,3,0 +4,42,16.5,3,2,14,3,2,0 +5,22,0.5,0,2,12,2,2,0 +5,17.5,0.5,0,2,12,2,4,0 +5,42,23,3,3,14,4,4,0 +2,22,0.5,0,1,14,3,2,0 +5,27,2.5,0,1,16,4,5,0 +5,27,16.5,3,1,12,3,5,0 +5,22,0.5,0,2,14,3,5,0 +4,32,9,2,3,20,6,5,0 +4,22,0.5,0,2,14,2,1,0 +4,27,6,2,4,14,3,5,0 +1,27,9,4,1,12,4,2,0 +4,22,2.5,0,2,14,3,5,0 +5,22,2.5,0,2,16,4,5,0 +5,22,2.5,1,2,12,2,2,0 +5,17.5,0.5,0,3,12,5,2,0 +4,32,9,2,3,14,2,4,0 +5,27,6,0,3,17,5,5,0 +5,22,0.5,0,2,12,3,2,0 +5,32,9,0,3,12,3,4,0 +3,27,9,3,1,12,3,4,0 +5,22,2.5,0,1,12,3,1,0 +5,42,16.5,4,2,14,3,5,0 +5,27,2.5,1,2,16,4,5,0 +3,22,2.5,0,3,12,3,4,0 +5,22,2.5,1,1,14,3,5,0 +4,27,16.5,3,1,16,5,5,0 +5,27,2.5,1,3,16,4,5,0 +3,27,2.5,1,1,17,2,5,0 +5,22,2.5,0,3,14,3,4,0 +5,37,16.5,2,3,20,6,6,0 +5,22,2.5,0,2,14,5,4,0 +5,27,2.5,0,3,14,3,4,0 +4,22,2.5,0,3,16,3,1,0 +4,27,6,0,2,14,3,5,0 +1,27,6,1,2,20,4,5,0 +5,22,0.5,0,3,14,2,2,0 +5,32,13,4,3,12,3,4,0 +5,22,6,0,2,12,3,5,0 +5,37,16.5,2,3,16,4,5,0 +3,22,6,2,3,12,2,4,0 +4,22,0.5,0,3,16,3,5,0 +5,27,2.5,0,3,14,3,2,0 +4,22,2.5,0,4,14,3,4,0 +5,22,2.5,0,1,12,3,2,0 +5,27,6,0,2,14,3,5,0 +3,27,0.5,0,3,20,6,6,0 +4,32,13,2,3,12,5,5,0 +3,22,2.5,0,2,16,3,6,0 +5,32,2.5,0,2,20,4,4,0 +4,22,2.5,0,3,17,4,5,0 +5,22,2.5,0,3,17,4,5,0 +3,22,0.5,0,3,16,3,4,0 +5,27,6,1,1,14,3,4,0 +5,32,16.5,1,3,12,2,2,0 +3,37,23,3,3,12,3,4,0 +5,22,2.5,0,1,20,4,5,0 +5,27,6,0,1,12,3,4,0 +5,27,6,0,2,14,3,5,0 +3,37,23,5.5,1,12,3,4,0 +3,42,16.5,2,2,12,2,6,0 +4,27,6,2,2,12,2,2,0 +5,22,2.5,0,2,16,4,4,0 +5,22,0.5,0,3,12,2,5,0 +4,42,23,2,3,12,2,5,0 +5,37,16.5,2,1,14,5,6,0 +5,42,23,4,4,12,3,5,0 +2,22,2.5,0,3,14,3,4,0 +4,27,6,2,1,14,3,4,0 +3,22,0.5,0,2,17,3,5,0 +3,27,6,2,2,16,4,5,0 +5,32,13,3,2,20,3,6,0 +5,42,23,4,4,16,2,5,0 +4,22,2.5,0,3,16,4,4,0 +5,27,6,1,3,20,4,6,0 +2,42,23,5.5,3,12,2,5,0 +5,22,6,0,4,14,3,2,0 +5,22,6,1,1,12,3,5,0 +5,27,2.5,0,2,12,3,4,0 +5,32,13,3,4,16,4,6,0 +5,27,0.5,0,2,12,3,2,0 +4,37,16.5,2,2,12,2,2,0 +4,32,2.5,0,3,20,4,4,0 +5,32,2.5,1,3,12,3,4,0 +4,27,2.5,0,2,12,3,4,0 +5,27,6,1,3,12,3,4,0 +4,27,6,1,1,20,4,4,0 +5,22,2.5,0,1,12,3,5,0 +5,32,16.5,2,3,17,3,5,0 +5,22,2.5,0,1,16,5,5,0 +5,27,6,1,3,20,6,6,0 +3,27,6,2,3,20,4,5,0 +5,27,9,1,2,16,4,4,0 +3,42,23,4,3,14,3,4,0 +5,27,6,2,2,20,4,3,0 +4,27,6,2,3,14,3,4,0 +5,42,23,3,2,12,5,4,0 +4,22,2.5,0,3,16,3,5,0 +5,32,16.5,3,3,12,3,4,0 +5,22,2.5,0,2,14,1,5,0 +5,27,6,0,3,14,4,5,0 +5,22,2.5,0,1,12,2,1,0 +4,27,6,1,1,14,4,4,0 +4,22,2.5,0,3,16,2,4,0 +4,22,2.5,0,4,12,3,2,0 +5,17.5,2.5,0,1,12,2,4,0 +4,37,16.5,3,3,12,4,5,0 +4,27,6,1,2,12,4,4,0 +3,37,13,0,2,14,5,6,0 +4,37,16.5,4,3,12,2,4,0 +4,27,2.5,0,1,14,5,6,0 +5,42,23,2,2,12,5,5,0 +5,22,2.5,0,4,14,2,2,0 +5,22,2.5,0,3,16,3,1,0 +5,27,0.5,0,3,20,4,4,0 +5,27,6,1,2,20,4,6,0 +4,22,2.5,0,2,16,5,2,0 +5,22,2.5,0,3,12,2,3,0 +5,22,0.5,0,3,12,3,2,0 +4,37,9,5.5,4,12,4,2,0 +3,27,0.5,0,2,12,3,2,0 +5,27,2.5,0,2,20,4,5,0 +3,22,2.5,0,1,14,3,3,0 +3,42,16.5,4,4,16,3,1,0 +5,32,13,3,2,12,2,5,0 +2,32,13,2,3,12,2,2,0 +5,22,2.5,0,2,14,3,1,0 +3,27,2.5,1,1,14,5,4,0 +4,22,0.5,0,4,12,3,2,0 +4,27,9,2,3,12,5,4,0 +5,22,2.5,0,3,14,3,4,0 +5,27,6,2,3,17,4,5,0 +4,22,2.5,0,1,12,3,2,0 +5,22,0.5,0,2,12,3,3,0 +5,42,23,3,3,12,3,5,0 +3,22,2.5,1,3,14,3,2,0 +4,27,16.5,2,3,12,4,4,0 +5,17.5,0.5,0,2,12,3,4,0 +5,27,2.5,0,3,17,4,5,0 +4,27,9,2,4,16,4,5,0 +5,22,2.5,0,2,16,4,5,0 +5,37,16.5,2,2,12,3,6,0 +5,32,23,2,3,14,5,5,0 +5,22,2.5,1,4,14,4,1,0 +4,27,2.5,0,3,17,4,6,0 +5,22,0.5,0,2,12,4,4,0 +4,37,16.5,2,3,20,4,6,0 +4,27,2.5,0,3,14,4,1,0 +4,22,2.5,0,3,16,4,3,0 +4,22,2.5,0,2,12,2,5,0 +5,42,23,2,3,14,3,6,0 +5,22,0.5,0,2,16,4,4,0 +5,27,6,3,2,16,4,5,0 +4,32,16.5,3,2,16,2,6,0 +4,27,0.5,0,2,16,4,4,0 +2,22,0.5,0,4,12,3,3,0 +4,22,2.5,0,3,17,4,2,0 +5,27,2.5,0,3,16,4,6,0 +5,22,2.5,0,3,12,3,2,0 +4,27,2.5,3,2,12,3,6,0 +4,32,6,1,4,20,5,5,0 +2,27,2.5,0,3,14,3,3,0 +4,42,23,4,2,12,2,6,0 +5,42,16.5,1,3,12,5,3,0 +3,27,9,2,1,14,3,5,0 +4,42,23,2,2,12,2,4,0 +5,42,23,2,2,12,4,4,0 +5,22,2.5,0,3,16,4,4,0 +3,42,23,3,3,12,3,3,0 +5,22,2.5,0,4,17,3,2,0 +2,22,2.5,0,3,14,3,2,0 +5,27,6,1,4,20,4,4,0 +4,37,16.5,5.5,2,14,3,4,0 +5,32,13,3,3,12,2,4,0 +5,27,6,2,3,16,3,4,0 +4,27,6,1,1,20,4,4,0 +5,22,2.5,0,1,12,3,2,0 +5,27,2.5,0,3,14,4,5,0 +5,22,6,0,3,12,3,4,0 +4,22,2.5,0,3,12,5,5,0 +4,22,2.5,0,3,16,4,6,0 +5,22,2.5,0,3,16,4,4,0 +5,27,6,0,2,16,4,6,0 +2,37,16.5,3,4,12,2,5,0 +5,22,6,2,2,12,5,2,0 +4,27,2.5,1,2,16,4,4,0 +5,22,2.5,0,2,17,3,2,0 +5,42,23,3,3,17,4,5,0 +4,22,2.5,0,3,12,4,1,0 +4,32,13,2,2,12,3,4,0 +5,27,2.5,0,3,20,5,6,0 +5,22,0.5,0,3,16,3,2,0 +4,22,2.5,0,3,12,3,2,0 +4,27,9,2,1,14,3,2,0 +4,27,6,1,1,20,4,4,0 +5,27,2.5,2,1,12,2,4,0 +4,37,9,1,3,20,4,2,0 +4,22,0.5,0,3,16,4,4,0 +5,32,16.5,2,1,14,5,5,0 +3,27,6,0,1,12,3,5,0 +4,27,6,1,3,16,4,5,0 +5,32,13,1,2,12,3,4,0 +3,27,2.5,0,3,12,3,4,0 +5,22,2.5,0,2,12,3,2,0 +4,32,6,1,3,17,4,4,0 +3,27,2.5,0,1,20,4,4,0 +4,42,23,2,4,14,3,5,0 +2,27,2.5,1,2,14,3,2,0 +4,42,23,3,2,12,3,5,0 +5,27,6,2,2,17,4,5,0 +5,22,0.5,0,1,14,3,5,0 +5,27,6,2,3,12,3,3,0 +3,22,2.5,0,1,14,5,4,0 +1,42,23,3,2,12,3,2,0 +4,42,16.5,3,2,17,5,5,0 +1,27,2.5,0,1,12,3,1,0 +5,22,0.5,0,1,17,4,4,0 +5,37,16.5,2,3,12,3,4,0 +4,27,6,2,3,16,4,5,0 +5,22,2.5,0,4,14,5,5,0 +5,22,2.5,0,4,17,4,5,0 +3,27,6,2,3,14,5,2,0 +4,27,2.5,0,3,16,3,6,0 +5,27,2.5,0,1,12,3,5,0 +5,17.5,2.5,2,1,12,2,4,0 +4,32,16.5,2,3,14,3,2,0 +5,27,2.5,0,1,16,4,5,0 +3,42,23,2,3,12,2,5,0 +4,22,2.5,0,2,14,3,4,0 +3,22,2.5,1,2,12,3,2,0 +3,27,2.5,0,3,16,4,6,0 +4,22,2.5,0,3,14,3,5,0 +5,32,13,2,4,20,4,6,0 +5,22,2.5,0,1,16,4,6,0 +4,32,9,2,3,14,4,2,0 +4,42,23,5.5,3,12,2,4,0 +3,27,0.5,0,2,12,3,2,0 +5,42,23,2,2,12,5,2,0 +5,27,2.5,0,2,16,2,4,0 +4,22,2.5,2,3,12,2,4,0 +3,27,6,2,2,12,4,5,0 +5,27,2.5,2,3,14,2,4,0 +5,22,0.5,0,2,16,3,4,0 +3,32,6,2,2,14,4,6,0 +4,27,2.5,0,3,14,3,5,0 +5,37,23,5.5,2,12,5,2,0 +2,27,6,0,1,17,4,4,0 +4,32,16.5,4,3,12,3,4,0 +5,22,2.5,2,2,12,2,5,0 +4,22,2.5,0,1,16,4,4,0 +5,27,2.5,0,3,16,5,5,0 +5,22,2.5,0,1,12,3,4,0 +4,22,2.5,1,4,14,3,5,0 +4,22,2.5,0,3,14,3,5,0 +5,22,6,1,2,12,3,2,0 +3,27,6,0,3,14,5,2,0 +5,37,16.5,4,3,16,4,5,0 +4,27,6,2,4,14,4,5,0 +4,22,2.5,0,2,17,5,5,0 +5,22,2.5,0,2,16,4,2,0 +3,32,16.5,2,2,12,3,4,0 +5,27,0.5,0,2,16,4,6,0 +5,27,6,3,2,14,2,5,0 +5,22,2.5,0,2,16,2,2,0 +4,22,2.5,2,2,16,5,5,0 +4,32,9,0,1,20,4,5,0 +3,22,2.5,0,2,12,3,4,0 +4,37,9,1,3,20,5,4,0 +5,27,2.5,0,3,20,4,4,0 +4,32,13,2,4,12,3,3,0 +4,27,2.5,1,2,12,3,2,0 +4,22,2.5,0,3,17,4,4,0 +5,27,6,2,4,12,3,2,0 +4,32,13,1,3,14,2,4,0 +5,22,0.5,0,1,16,2,3,0 +5,22,2.5,0,2,12,2,2,0 +3,42,23,5.5,2,14,2,5,0 +4,27,6,2,1,14,3,3,0 +5,22,2.5,0,3,16,3,5,0 +5,27,6,0,1,12,3,2,0 +2,32,13,2,3,12,3,4,0 +5,27,9,2,3,12,2,3,0 +4,22,2.5,2,3,14,4,4,0 +5,37,2.5,0,3,14,3,3,0 +5,37,16.5,2,3,12,3,3,0 +5,27,6,2,2,14,4,4,0 +4,27,6,0,3,20,4,5,0 +5,32,13,3,3,12,4,5,0 +4,27,2.5,0,2,14,3,5,0 +3,22,2.5,0,2,16,6,3,0 +5,32,9,3,2,17,4,4,0 +2,27,6,1,2,14,3,4,0 +5,22,2.5,0,1,16,5,5,0 +5,22,0.5,0,2,16,3,4,0 +5,27,2.5,0,4,20,4,5,0 +5,22,0.5,0,3,14,3,2,0 +5,22,2.5,0,2,12,3,5,0 +5,27,6,0,2,20,4,6,0 +5,17.5,0.5,0,3,14,3,4,0 +3,32,16.5,3,2,16,5,4,0 +3,37,16.5,4,2,14,4,3,0 +5,27,6,1,3,14,4,2,0 +4,32,16.5,4,4,16,4,4,0 +4,22,2.5,0,3,12,3,4,0 +4,27,2.5,1,4,14,3,2,0 +3,42,23,3,1,14,3,4,0 +4,27,9,3,3,12,2,2,0 +4,27,9,2,1,20,4,5,0 +4,27,0.5,0,1,14,4,2,0 +5,42,16.5,2,2,12,3,3,0 +4,22,2.5,0,1,16,4,4,0 +4,37,16.5,2,1,17,4,6,0 +5,32,16.5,2,1,12,3,5,0 +5,22,2.5,0,4,14,3,5,0 +5,27,2.5,2,3,20,2,4,0 +5,22,2.5,0,3,14,3,3,0 +4,27,6,1,2,20,4,4,0 +5,22,2.5,0,3,12,3,4,0 +4,22,2.5,0,3,14,3,3,0 +4,22,2.5,1,1,14,3,5,0 +5,22,0.5,0,1,12,3,2,0 +4,22,2.5,1,3,12,4,2,0 +5,42,23,2,3,12,4,4,0 +4,27,2.5,0,4,16,5,6,0 +5,32,13,4,3,16,4,2,0 +5,27,6,2,2,16,4,5,0 +4,27,6,0,1,14,3,4,0 +4,17.5,2.5,0,1,14,3,4,0 +5,22,0.5,0,2,16,3,4,0 +5,27,9,2,3,16,4,4,0 +5,22,2.5,1,3,12,3,1,0 +5,27,2.5,0,1,14,3,5,0 +5,42,16.5,2,3,12,5,4,0 +5,17.5,2.5,0,2,12,2,2,0 +5,22,2.5,3,3,12,3,4,0 +5,32,9,3,4,17,4,6,0 +5,22,2.5,2,3,14,5,4,0 +4,37,23,5.5,2,12,3,2,0 +5,27,2.5,0,4,16,5,3,0 +4,22,2.5,0,1,14,3,4,0 +4,22,2.5,1,2,12,3,4,0 +5,22,2.5,0,3,12,3,5,0 +5,27,6,2,2,14,5,4,0 +5,27,2.5,0,3,16,4,5,0 +4,32,2.5,0,3,17,4,4,0 +5,32,6,2,4,20,4,4,0 +5,27,13,3,1,12,3,4,0 +5,32,16.5,3,3,12,4,2,0 +5,17.5,0.5,0,1,12,2,4,0 +4,27,2.5,0,1,20,6,6,0 +4,22,2.5,0,2,12,3,4,0 +4,22,0.5,0,3,12,5,2,0 +5,42,23,1,2,12,2,2,0 +3,22,0.5,0,1,12,3,3,0 +5,32,9,2,2,20,4,5,0 +4,32,16.5,2,2,14,5,4,0 +5,27,6,2,2,12,3,2,0 +5,27,2.5,0,1,16,3,5,0 +5,22,0.5,0,3,12,3,3,0 +4,27,2.5,0,3,17,4,1,0 +5,27,2.5,0,3,12,3,2,0 +5,42,23,2,3,9,2,4,0 +5,27,2.5,0,3,14,3,4,0 +5,22,0.5,0,2,16,4,4,0 +5,37,13,2,2,17,4,5,0 +4,42,23,2,1,12,3,4,0 +4,27,6,1,3,16,4,5,0 +5,42,23,2,3,12,3,3,0 +5,22,2.5,0,3,16,4,4,0 +5,32,13,2,2,16,4,4,0 +5,22,2.5,0,3,14,4,5,0 +4,32,9,2,1,12,2,2,0 +4,22,2.5,0,1,12,3,2,0 +4,22,6,2,2,14,3,6,0 +5,22,2.5,0,2,14,3,4,0 +4,22,2.5,0,3,14,4,4,0 +5,22,2.5,0,3,14,5,5,0 +5,22,6,0,3,12,5,5,0 +3,42,23,2,2,14,3,5,0 +5,22,2.5,0,1,12,2,5,0 +4,22,2.5,0,2,14,3,6,0 +5,22,2.5,0,1,16,5,5,0 +4,17.5,2.5,0,2,14,3,3,0 +4,37,13,0,3,20,5,5,0 +5,27,2.5,0,2,12,3,4,0 +5,22,2.5,0,2,14,3,4,0 +4,42,23,2,2,16,4,5,0 +5,22,2.5,1,1,12,2,4,0 +4,27,6,1,2,16,3,3,0 +4,37,16.5,2,2,12,3,2,0 +4,37,13,5.5,2,14,2,6,0 +5,22,0.5,0,3,16,3,4,0 +4,27,2.5,1,2,12,3,5,0 +4,22,2.5,0,3,14,3,4,0 +5,27,6,2,2,16,4,6,0 +5,22,0.5,0,2,12,3,2,0 +5,27,2.5,0,1,12,2,2,0 +4,22,2.5,1,1,12,3,5,0 +4,27,0.5,0,3,14,3,2,0 +4,22,2.5,0,2,16,4,1,0 +3,32,13,1,1,12,3,2,0 +5,32,6,2,2,16,4,5,0 +5,42,23,4,3,14,2,2,0 +4,22,2.5,1,3,14,3,4,0 +5,32,2.5,1,1,12,4,5,0 +4,32,13,2,1,16,3,6,0 +5,27,6,2,2,14,4,5,0 +5,32,16.5,4,4,14,2,3,0 +4,22,0.5,0,3,12,3,4,0 +4,22,2.5,1,1,14,3,4,0 +4,32,9,2,3,16,4,4,0 +5,22,2.5,0,2,14,1,1,0 +4,27,2.5,2,3,16,2,4,0 +3,27,16.5,2,3,12,3,5,0 +5,22,2.5,0,3,16,3,2,0 +3,27,2.5,1,3,12,2,2,0 +4,22,2.5,0,2,12,3,2,0 +5,42,23,5.5,3,12,3,2,0 +4,37,13,2,2,17,4,5,0 +5,32,2.5,0,2,12,2,2,0 +3,37,23,3,3,14,4,5,0 +5,22,0.5,0,3,16,4,2,0 +5,32,16.5,3,4,16,4,2,0 +5,22,2.5,0,2,12,4,4,0 +5,37,16.5,2,4,20,6,4,0 +5,27,6,1,2,16,4,2,0 +4,37,16.5,2,3,12,3,5,0 +5,42,23,3,3,17,4,4,0 +4,37,16.5,3,2,16,3,4,0 +4,37,13,2,3,14,4,2,0 +5,22,2.5,0,1,12,5,4,0 +5,22,0.5,0,4,16,4,6,0 +5,22,6,1,1,14,2,4,0 +3,22,2.5,1,2,12,4,4,0 +5,27,2.5,0,2,14,4,6,0 +5,22,2.5,0,2,12,3,4,0 +4,42,23,2,2,14,3,5,0 +4,22,2.5,0,2,12,3,4,0 +5,22,0.5,1,2,12,2,2,0 +3,27,6,2,2,14,2,4,0 +5,22,2.5,0,3,14,3,3,0 +5,22,0.5,0,3,14,3,5,0 +5,42,23,3,3,12,3,2,0 +4,27,2.5,0,1,16,3,3,0 +5,27,2.5,0,2,14,2,2,0 +5,27,9,2,4,12,2,4,0 +4,22,2.5,0,4,16,4,5,0 +4,27,6,2,1,16,4,5,0 +5,27,6,1,3,16,4,5,0 +5,32,16.5,3,3,12,2,3,0 +4,17.5,2.5,0,2,12,3,5,0 +4,32,2.5,0,3,17,4,2,0 +3,32,16.5,3,3,14,5,6,0 +5,22,2.5,1,3,12,3,3,0 +4,32,23,4,4,14,4,2,0 +5,22,2.5,0,1,16,4,5,0 +5,22,0.5,0,3,14,3,2,0 +3,22,2.5,0,2,16,4,6,0 +4,37,6,0,3,20,4,3,0 +4,22,0.5,0,3,12,2,2,0 +4,32,9,0,3,14,4,4,0 +5,22,2.5,0,3,12,2,2,0 +4,32,13,3,3,14,4,4,0 +4,22,2.5,1,4,14,3,5,0 +4,22,2.5,0,3,12,2,4,0 +5,17.5,2.5,0,3,12,3,2,0 +5,27,2.5,1,2,12,2,2,0 +5,22,2.5,1,1,12,3,4,0 +4,27,6,1,3,14,3,3,0 +4,42,23,2,3,12,3,3,0 +4,37,16.5,3,2,16,4,4,0 +5,42,23,5.5,4,12,3,5,0 +5,27,9,2,2,12,2,4,0 +5,27,6,0,2,14,2,3,0 +5,22,0.5,0,3,16,4,2,0 +5,42,23,5.5,2,16,4,6,0 +4,22,2.5,0,3,16,4,5,0 +5,32,13,1,3,14,3,5,0 +5,27,2.5,0,3,16,4,4,0 +5,42,23,4,3,14,4,4,0 +5,22,2.5,1,2,12,2,4,0 +3,32,9,2,2,14,3,4,0 +5,27,2.5,0,3,12,3,3,0 +4,22,0.5,0,3,14,4,2,0 +2,37,16.5,5.5,3,14,3,5,0 +5,42,23,4,3,12,5,4,0 +3,27,9,0,2,12,3,6,0 +5,42,16.5,3,2,14,3,4,0 +4,27,9,2,3,14,2,4,0 +4,17.5,0.5,0,2,12,3,5,0 +4,22,2.5,0,4,12,2,5,0 +4,22,2.5,1,2,12,2,4,0 +5,22,0.5,0,3,14,3,4,0 +5,32,16.5,3,2,12,3,5,0 +4,32,16.5,2,3,14,4,5,0 +5,22,2.5,0,1,17,4,4,0 +5,27,2.5,0,2,16,5,6,0 +5,32,0.5,0,1,12,4,5,0 +3,22,6,1,2,9,2,2,0 +4,27,13,3,2,12,3,2,0 +5,37,0.5,0,3,12,3,4,0 +5,17.5,0.5,0,3,12,3,2,0 +4,27,2.5,0,2,16,4,3,0 +4,37,9,2,3,17,4,4,0 +4,22,6,2,3,12,3,2,0 +4,42,23,3,3,14,3,5,0 +5,22,2.5,1,1,14,3,2,0 +3,22,2.5,0,2,16,3,5,0 +5,22,6,1,2,12,3,4,0 +4,37,16.5,3,4,16,4,3,0 +3,42,23,5.5,2,14,3,2,0 +5,22,2.5,0,3,12,2,2,0 +4,27,2.5,1,4,16,4,2,0 +4,32,9,3,3,14,2,2,0 +5,37,16.5,3,2,12,3,4,0 +5,22,6,1,2,12,3,4,0 +5,22,2.5,1,3,12,2,2,0 +4,27,9,1,2,14,3,4,0 +5,22,2.5,0,4,16,6,6,0 +4,32,2.5,0,3,17,4,3,0 +5,27,9,0,3,12,3,3,0 +4,22,6,0,1,14,3,5,0 +5,42,23,4,4,12,3,2,0 +5,32,16.5,4,3,12,5,4,0 +5,32,16.5,3,3,12,3,4,0 +4,27,6,0,2,12,3,4,0 +4,32,2.5,0,3,16,3,4,0 +5,27,6,1,2,16,3,3,0 +5,22,0.5,0,1,12,3,2,0 +5,42,23,4,4,12,2,4,0 +2,32,6,2,2,16,4,6,0 +5,22,6,2,3,16,4,2,0 +4,22,2.5,1,2,12,5,4,0 +5,42,23,5.5,3,12,3,2,0 +5,32,6,2,2,14,4,4,0 +5,42,23,2,2,14,5,3,0 +4,27,6,0,3,14,3,5,0 +4,37,16.5,3,3,14,3,4,0 +5,42,16.5,3,2,12,5,2,0 +4,32,16.5,3,2,12,3,4,0 +5,22,2.5,0,2,14,5,1,0 +4,27,9,2,3,14,4,3,0 +5,22,6,1,2,9,4,2,0 +4,22,2.5,2,2,14,3,4,0 +5,27,9,1,3,16,4,4,0 +4,27,6,2,3,14,3,4,0 +5,22,2.5,0,4,9,3,5,0 +5,22,2.5,0,3,20,4,6,0 +5,27,2.5,0,2,16,4,2,0 +5,22,2.5,0,3,17,4,5,0 +5,27,13,2,3,12,3,4,0 +4,27,2.5,0,3,16,4,5,0 +4,42,23,2,4,12,4,2,0 +5,27,6,2,2,17,4,1,0 +3,27,2.5,0,1,16,4,5,0 +4,27,6,1,3,12,4,6,0 +5,27,6,1,2,16,4,3,0 +5,22,0.5,0,2,12,2,2,0 +2,22,0.5,0,2,14,3,5,0 +4,27,2.5,0,3,14,3,5,0 +5,27,6,1,1,14,4,2,0 +4,37,23,3,3,14,2,6,0 +3,22,2.5,0,1,14,3,5,0 +4,27,9,2,3,17,4,6,0 +4,42,23,5.5,3,12,3,2,0 +4,22,0.5,0,3,16,3,5,0 +5,22,2.5,0,1,14,3,5,0 +5,22,6,0,2,12,3,5,0 +4,27,6,1,3,16,4,3,0 +4,42,23,4,3,12,3,4,0 +5,22,0.5,0,3,12,3,5,0 +4,22,2.5,0,1,16,2,4,0 +5,22,0.5,0,4,14,3,4,0 +5,27,2.5,0,3,14,3,4,0 +5,22,2.5,0,4,14,3,6,0 +4,37,16.5,4,3,14,4,5,0 +5,22,2.5,0,2,12,2,2,0 +5,22,2.5,0,2,14,3,5,0 +4,22,2.5,1,4,16,3,2,0 +5,37,23,4,1,14,3,2,0 +5,27,2.5,0,1,16,3,5,0 +3,37,9,1,2,17,5,5,0 +5,22,0.5,0,4,16,4,2,0 +5,27,9,2,2,14,4,5,0 +5,32,6,1,3,12,3,2,0 +4,22,2.5,0,3,14,3,5,0 +4,27,6,0,1,14,3,5,0 +4,17.5,0.5,0,3,14,3,5,0 +4,27,6,1,1,16,5,4,0 +4,22,2.5,0,2,14,3,5,0 +4,27,6,0,3,14,4,5,0 +4,27,6,2,3,16,4,5,0 +4,27,6,0,1,20,4,4,0 +5,22,2.5,0,4,14,5,4,0 +5,27,2.5,0,4,20,6,5,0 +5,22,0.5,0,2,17,4,2,0 +5,37,23,4,2,14,3,5,0 +5,37,16.5,4,4,12,4,5,0 +5,27,2.5,0,1,14,5,5,0 +5,42,23,4,3,12,3,4,0 +5,27,13,3,1,14,2,4,0 +4,22,2.5,0,2,14,3,4,0 +5,32,16.5,4,4,12,2,4,0 +3,37,16.5,2,3,12,3,4,0 +5,22,2.5,0,2,12,3,2,0 +4,27,2.5,1,3,12,3,2,0 +5,27,2.5,0,3,12,3,2,0 +5,32,13,3,3,12,3,4,0 +4,27,2.5,1,2,16,4,4,0 +4,22,0.5,0,3,12,3,5,0 +4,27,2.5,0,2,16,4,4,0 +4,27,2.5,0,2,17,5,6,0 +2,22,2.5,0,1,16,4,1,0 +4,32,9,2,3,14,2,4,0 +5,42,23,3,2,12,3,4,0 +3,27,2.5,0,2,14,4,4,0 +5,27,13,0,3,12,3,4,0 +4,22,2.5,0,3,12,3,2,0 +4,17.5,0.5,0,3,17,2,4,0 +4,27,6,1,2,12,3,6,0 +5,22,6,0,4,14,4,1,0 +3,27,6,1,3,16,4,5,0 +5,22,6,2,3,12,4,5,0 +5,27,6,2,3,16,4,6,0 +5,27,2.5,1,3,14,5,5,0 +4,22,2.5,1,2,14,1,5,0 +4,32,13,2,3,12,2,6,0 +4,27,16.5,2,3,20,4,4,0 +4,32,9,2,2,17,4,5,0 +4,37,16.5,3,3,14,2,5,0 +5,17.5,0.5,0,3,12,2,2,0 +4,22,2.5,0,2,16,4,1,0 +4,27,9,1,3,14,3,5,0 +5,27,6,2,3,14,4,2,0 +1,32,16.5,5.5,2,12,2,2,0 +3,27,9,1,2,14,3,5,0 +3,32,13,4,3,12,2,4,0 +5,42,13,4,4,14,3,4,0 +3,22,2.5,1,3,14,3,2,0 +5,32,13,2,2,12,2,2,0 +5,27,2.5,0,3,16,4,5,0 +4,22,2.5,0,2,16,4,5,0 +5,22,2.5,0,3,12,3,4,0 +5,22,2.5,0,2,12,2,4,0 +3,37,16.5,2,2,14,2,2,0 +5,32,9,2,2,20,4,6,0 +5,27,13,2,2,12,5,5,0 +3,37,13,1,4,12,2,2,0 +5,42,23,3,2,12,2,2,0 +4,22,2.5,0,3,14,3,4,0 +4,42,23,2,4,14,3,2,0 +3,22,2.5,0,1,14,3,2,0 +4,27,0.5,0,2,14,3,3,0 +4,42,13,2,1,20,4,4,0 +4,22,2.5,0,2,14,3,2,0 +5,27,6,0,4,16,3,5,0 +4,22,0.5,0,3,14,3,4,0 +5,32,2.5,0,3,17,4,4,0 +5,22,2.5,0,3,12,3,2,0 +4,32,16.5,4,1,12,2,2,0 +3,27,6,0,3,17,4,4,0 +5,32,13,2,3,16,2,2,0 +5,27,2.5,0,3,16,4,5,0 +4,32,16.5,2,2,14,4,5,0 +4,17.5,0.5,0,2,12,2,2,0 +4,37,23,3,2,12,3,5,0 +5,27,13,2,3,14,3,4,0 +5,32,16.5,3,2,12,2,2,0 +5,27,6,2,2,14,2,5,0 +5,22,2.5,0,3,12,3,2,0 +5,27,2.5,1,3,16,4,4,0 +3,17.5,2.5,1,3,12,3,2,0 +5,22,2.5,0,2,14,4,2,0 +5,22,0.5,0,4,16,4,2,0 +4,27,2.5,0,3,12,3,2,0 +4,27,6,2,1,12,2,2,0 +4,22,6,1,2,14,3,4,0 +4,27,2.5,0,3,17,4,1,0 +2,32,16.5,3,4,16,4,4,0 +4,22,2.5,0,2,14,3,2,0 +5,27,2.5,0,2,17,4,3,0 +4,27,2.5,0,3,16,4,2,0 +5,27,6,2,4,12,3,2,0 +5,32,16.5,2,3,14,2,2,0 +5,17.5,2.5,0,2,14,4,4,0 +4,42,16.5,5.5,3,12,2,5,0 +5,27,2.5,1,2,12,4,4,0 +4,32,2.5,0,3,16,5,5,0 +5,22,6,1,2,12,2,2,0 +4,27,6,1,3,16,4,4,0 +4,37,16.5,2,2,20,4,4,0 +5,17.5,0.5,0,3,12,3,2,0 +4,37,16.5,3,3,12,5,2,0 +5,27,2.5,0,2,16,2,2,0 +4,27,6,0,2,14,3,1,0 +4,27,9,2,3,20,4,4,0 +5,32,16.5,2,4,12,2,5,0 +5,27,2.5,2,3,17,4,5,0 +5,37,16.5,2,3,14,3,2,0 +4,42,23,3,3,14,3,2,0 +5,32,16.5,2,3,14,3,4,0 +4,22,0.5,0,2,12,3,5,0 +5,27,6,1,1,20,3,5,0 +3,27,2.5,0,3,17,4,3,0 +4,32,13,2,3,14,3,5,0 +4,22,2.5,1,2,14,3,4,0 +4,27,2.5,0,1,12,3,4,0 +5,22,2.5,0,3,12,3,4,0 +3,42,23,3,3,12,5,2,0 +5,27,6,0,3,14,3,4,0 +4,37,16.5,2,3,16,4,5,0 +4,27,6,0,4,14,3,3,0 +5,22,6,1,3,12,3,4,0 +5,32,6,1,2,17,4,3,0 +5,22,0.5,0,2,12,3,4,0 +4,22,2.5,0,3,14,3,4,0 +4,22,0.5,0,3,12,3,4,0 +3,32,2.5,1,2,14,3,4,0 +2,32,6,0,3,17,4,3,0 +5,32,9,2,4,17,4,4,0 +4,42,23,2,3,12,3,4,0 +5,42,23,3,4,17,4,6,0 +5,22,2.5,1,2,12,2,5,0 +5,42,23,2,2,12,2,2,0 +4,27,6,1,2,12,2,4,0 +4,27,2.5,0,1,14,3,3,0 +5,22,2.5,0,2,16,2,1,0 +4,42,16.5,4,4,17,4,5,0 +5,27,2.5,0,1,14,3,4,0 +3,32,9,1,3,14,2,5,0 +5,22,2.5,0,3,14,4,6,0 +4,22,6,0,3,12,3,4,0 +5,22,2.5,0,2,16,4,2,0 +4,22,0.5,0,3,16,4,5,0 +5,22,0.5,1,3,16,4,5,0 +4,32,9,0,2,14,3,2,0 +3,27,2.5,1,3,14,4,4,0 +4,27,6,0,2,20,4,6,0 +5,22,2.5,0,1,16,4,2,0 +5,22,2.5,2,3,12,2,4,0 +5,22,6,3,3,12,3,2,0 +4,27,9,2,3,14,6,4,0 +4,32,16.5,5.5,3,14,2,2,0 +5,32,6,2,3,17,2,6,0 +4,22,0.5,0,3,17,5,5,0 +5,27,6,2,4,12,2,2,0 +5,42,23,4,4,12,3,5,0 +4,22,2.5,0,2,12,2,5,0 +4,42,23,3,3,12,2,2,0 +5,32,9,2,3,14,2,2,0 +5,42,23,3,2,12,3,2,0 +4,42,23,2,2,12,3,5,0 +5,27,9,1,4,16,3,3,0 +5,22,2.5,0,3,12,2,2,0 +3,32,16.5,2,2,9,2,4,0 +5,22,2.5,0,3,16,3,5,0 +5,32,9,1,4,20,4,5,0 +5,27,6,2,4,14,3,2,0 +5,42,23,2,3,14,3,4,0 +5,32,16.5,2,1,14,4,5,0 +5,27,9,3,1,20,1,6,0 +5,32,13,2,4,20,6,6,0 +5,22,2.5,0,2,17,5,4,0 +4,27,6,0,3,14,3,5,0 +5,27,2.5,0,4,16,5,5,0 +4,17.5,2.5,1,2,12,5,6,0 +5,22,0.5,0,4,16,3,2,0 +4,22,2.5,0,4,16,3,1,0 +5,37,23,5.5,3,12,2,2,0 +4,22,0.5,0,1,12,5,2,0 +3,32,9,3,3,14,3,6,0 +4,22,2.5,0,1,12,2,4,0 +3,27,6,4,3,16,4,5,0 +4,22,2.5,1,3,14,4,5,0 +4,32,6,0,1,16,3,2,0 +5,32,16.5,3,3,17,4,5,0 +3,22,2.5,1,2,16,4,4,0 +5,27,6,0,3,16,2,1,0 +5,32,6,0,4,17,4,5,0 +5,27,6,2,3,14,3,5,0 +4,22,2.5,0,3,12,3,3,0 +5,42,23,3,2,12,5,5,0 +4,22,2.5,0,2,16,4,5,0 +5,27,6,0,2,20,4,1,0 +5,32,9,3,3,12,2,4,0 +5,42,23,4,1,14,4,4,0 +4,27,6,1,1,14,3,5,0 +5,22,2.5,0,1,14,3,1,0 +5,27,6,0,2,12,3,5,0 +5,27,2.5,1,3,16,4,4,0 +5,37,13,1,2,14,5,5,0 +4,22,2.5,0,2,16,4,4,0 +5,22,2.5,0,3,12,4,4,0 +3,22,6,1,2,12,2,2,0 +5,22,0.5,0,2,16,4,5,0 +4,32,13,1,2,12,3,4,0 +4,22,6,0,1,14,3,5,0 +5,22,2.5,0,1,14,3,1,0 +3,27,6,0,2,14,3,1,0 +3,27,13,4,3,12,2,2,0 +4,22,2.5,0,3,16,4,5,0 +5,27,6,2,2,16,4,6,0 +5,22,2.5,0,2,12,2,5,0 +4,17.5,2.5,0,2,12,2,2,0 +5,42,16.5,3,2,12,2,2,0 +3,27,6,2,2,9,4,2,0 +5,27,2.5,0,1,20,4,6,0 +5,22,2.5,0,3,12,5,4,0 +5,32,16.5,4,3,12,5,5,0 +5,27,0.5,0,3,16,5,5,0 +4,22,2.5,0,4,14,1,6,0 +5,32,13,3,3,12,2,2,0 +4,22,2.5,0,3,16,3,1,0 +5,27,2.5,0,1,20,6,1,0 +4,27,2.5,0,3,17,4,4,0 +5,22,2.5,0,4,12,3,4,0 +5,17.5,0.5,0,4,9,2,2,0 +2,27,9,1,1,12,3,5,0 +4,22,2.5,0,3,12,3,2,0 +4,22,2.5,0,2,12,3,2,0 +5,42,23,3,1,16,4,6,0 +4,22,2.5,1,3,12,3,2,0 +3,27,6,1,3,12,3,2,0 +5,27,0.5,0,4,17,3,2,0 +4,42,23,1,3,12,5,5,0 +4,32,16.5,3,3,12,3,5,0 +5,22,6,0,2,12,2,4,0 +4,22,2.5,0,2,16,4,4,0 +4,22,2.5,0,3,14,3,1,0 +3,27,9,2,1,12,2,2,0 +5,22,2.5,0,3,12,3,2,0 +5,37,16.5,2,1,12,3,4,0 +4,42,23,3,3,12,3,4,0 +5,27,2.5,0,2,12,3,4,0 +4,32,2.5,0,1,14,3,2,0 +3,22,0.5,0,2,16,3,1,0 +5,22,0.5,0,4,16,3,1,0 +5,42,23,5.5,3,12,2,5,0 +4,22,2.5,1,3,12,3,2,0 +4,27,2.5,0,1,14,3,2,0 +2,42,23,4,4,12,3,2,0 +4,22,2.5,0,4,17,5,1,0 +4,27,6,1,2,14,2,4,0 +5,27,6,3,2,14,5,5,0 +5,27,6,3,2,14,3,4,0 +4,27,6,2,3,14,3,5,0 +4,22,2.5,0,2,14,3,4,0 +4,22,2.5,2,2,14,2,2,0 +3,42,23,3,2,12,3,5,0 +5,22,0.5,0,2,17,4,2,0 +5,27,9,4,2,12,3,2,0 +5,22,0.5,0,1,16,4,5,0 +4,22,2.5,0,2,16,4,2,0 +5,17.5,0.5,0,3,14,3,5,0 +5,27,6,1,3,12,3,6,0 +2,27,6,0,3,17,2,5,0 +5,27,0.5,0,2,12,3,4,0 +5,22,2.5,0,1,12,5,4,0 +5,27,2.5,0,2,16,4,4,0 +4,37,16.5,2,2,16,4,3,0 +5,22,2.5,0,2,14,3,2,0 +5,27,2.5,0,1,16,4,1,0 +5,42,23,5.5,3,14,3,4,0 +5,37,16.5,4,2,14,2,5,0 +4,27,0.5,0,2,17,4,4,0 +5,27,6,0,3,20,6,2,0 +4,27,13,2,2,12,3,4,0 +3,22,6,1,2,12,4,2,0 +5,32,13,2,2,16,4,2,0 +5,27,2.5,0,2,17,3,6,0 +5,27,6,4,3,12,3,4,0 +4,42,23,2,3,12,3,2,0 +4,22,2.5,0,4,17,4,2,0 +5,32,16.5,3,3,12,2,4,0 +5,22,2.5,0,1,16,3,5,0 +5,22,0.5,0,3,12,5,2,0 +4,42,23,5.5,4,12,3,5,0 +5,42,16.5,2,3,16,4,4,0 +4,22,2.5,0,1,12,3,2,0 +2,22,2.5,1,2,14,3,4,0 +3,22,2.5,0,1,12,3,3,0 +4,32,13,2,3,17,4,3,0 +5,27,6,1,3,16,4,5,0 +4,32,9,2,2,16,4,5,0 +5,27,2.5,0,2,16,4,4,0 +2,22,2.5,2,3,14,4,2,0 +5,22,0.5,0,4,16,4,5,0 +5,27,2.5,0,3,14,3,2,0 +5,27,6,1,3,12,2,4,0 +4,27,6,2,4,12,3,2,0 +4,22,2.5,0,2,14,3,2,0 +4,22,2.5,0,1,12,4,3,0 +5,22,2.5,0,2,14,3,5,0 +5,22,2.5,2,3,14,3,4,0 +3,32,6,2,3,17,2,4,0 +4,27,6,3,3,14,4,4,0 +4,42,23,3,3,14,3,4,0 +5,22,0.5,0,3,12,3,4,0 +4,42,13,4,3,12,2,5,0 +5,22,6,0,4,14,1,5,0 +2,32,13,1,3,20,4,3,0 +4,22,2.5,0,1,12,2,4,0 +5,22,2.5,0,2,17,4,5,0 +5,42,23,5.5,2,12,5,5,0 +4,17.5,2.5,1,2,12,3,2,0 +5,27,13,1,2,14,3,5,0 +5,22,0.5,0,2,16,4,5,0 +4,32,2.5,0,1,12,3,4,0 +5,17.5,0.5,0,4,12,4,5,0 +5,22,0.5,2,2,16,4,4,0 +3,17.5,2.5,1,2,14,2,1,0 +3,27,6,0,3,14,3,2,0 +4,22,2.5,0,3,16,4,5,0 +5,22,6,2,2,12,3,4,0 +4,22,2.5,2,3,12,3,5,0 +4,22,6,1,2,12,3,5,0 +4,27,2.5,0,3,20,4,4,0 +5,27,2.5,0,3,17,3,5,0 +4,22,2.5,0,3,14,3,5,0 +5,27,2.5,0,2,14,2,2,0 +5,27,2.5,0,2,17,4,4,0 +5,22,2.5,0,3,14,2,2,0 +5,22,0.5,0,2,14,3,5,0 +4,42,23,3,4,17,3,6,0 +5,37,23,5.5,3,12,5,5,0 +4,22,6,1,3,12,2,2,0 +4,22,2.5,0,2,12,3,4,0 +5,32,2.5,0,1,14,3,3,0 +4,17.5,2.5,0,2,12,3,3,0 +5,37,23,5.5,3,12,2,3,0 +5,22,2.5,1,3,12,3,2,0 +5,42,23,5.5,4,16,4,5,0 +5,42,23,4,3,12,3,3,0 +4,27,6,0,2,14,5,3,0 +4,32,13,2,3,16,3,3,0 +4,27,6,2,3,12,2,4,0 +4,32,13,3,4,14,3,5,0 +5,32,13,3,2,12,3,2,0 +3,42,23,5.5,2,14,3,2,0 +1,37,13,3,4,17,2,4,0 +5,22,2.5,0,2,14,5,5,0 +4,22,2.5,0,1,12,5,4,0 +4,22,2.5,0,3,14,3,2,0 +4,22,6,3,2,14,4,2,0 +5,27,2.5,0,3,17,4,5,0 +4,22,0.5,0,2,14,3,5,0 +5,22,0.5,0,3,17,4,4,0 +4,27,9,0,2,12,3,2,0 +4,27,0.5,0,3,16,4,6,0 +4,27,6,2,3,12,2,6,0 +4,22,2.5,0,2,14,4,4,0 +5,22,6,0,3,12,4,6,0 +4,22,0.5,0,2,12,3,5,0 +5,17.5,0.5,0,2,12,4,2,0 +5,27,2.5,1,1,17,4,5,0 +3,27,9,2,1,14,3,5,0 +4,27,0.5,2,2,14,3,5,0 +4,22,2.5,0,2,14,2,5,0 +4,27,2.5,0,3,12,3,2,0 +2,27,6,2,2,14,3,2,0 +5,27,2.5,0,3,14,2,4,0 +5,42,9,0,4,20,4,4,0 +5,22,2.5,0,2,14,4,3,0 +5,37,13,5.5,4,17,4,5,0 +4,42,23,2,3,14,4,3,0 +5,32,16.5,3,4,14,4,3,0 +5,37,16.5,1,3,12,3,5,0 +5,22,2.5,0,3,14,3,5,0 +5,27,2.5,0,3,20,6,1,0 +4,42,23,3,3,14,4,5,0 +4,42,23,4,1,16,4,5,0 +3,27,2.5,0,2,16,3,5,0 +5,37,16.5,3,2,16,4,3,0 +5,42,23,5.5,3,14,4,4,0 +4,22,2.5,1,1,14,3,4,0 +5,27,9,1,3,12,2,5,0 +5,22,2.5,0,2,14,3,6,0 +4,22,2.5,1,2,14,2,2,0 +3,42,23,3,4,12,3,4,0 +5,42,23,3,3,12,3,4,0 +4,32,13,2,1,14,3,4,0 +4,37,16.5,5.5,3,12,4,5,0 +4,27,6,1,4,12,3,4,0 +5,42,23,5.5,3,16,4,5,0 +5,32,6,2,2,16,2,5,0 +2,32,9,2,4,14,4,5,0 +5,27,13,2,3,12,3,4,0 +5,42,23,5.5,4,14,4,2,0 +5,42,23,3,3,12,3,5,0 +5,22,0.5,0,2,14,4,3,0 +3,37,16.5,2,3,12,5,2,0 +4,27,6,2,3,12,3,2,0 +4,37,16.5,2,2,14,3,2,0 +2,32,16.5,2,2,12,3,4,0 +4,27,2.5,0,2,14,4,4,0 +5,37,23,2,2,14,3,2,0 +5,22,0.5,0,4,14,4,2,0 +5,42,16.5,3,2,12,3,4,0 +4,37,13,3,2,12,2,4,0 +5,32,13,2,4,12,2,2,0 +4,22,2.5,0,3,12,3,2,0 +5,27,2.5,1,3,14,5,5,0 +5,22,0.5,0,4,16,4,6,0 +5,37,16.5,5.5,3,12,2,4,0 +4,32,9,2,2,16,4,4,0 +5,22,2.5,0,1,14,3,5,0 +5,22,2.5,0,3,16,4,5,0 +4,32,16.5,4,3,12,2,4,0 +5,22,2.5,0,4,14,3,2,0 +5,37,23,3,4,14,2,4,0 +5,27,6,0,2,16,4,1,0 +5,22,2.5,0,2,12,3,4,0 +5,32,6,0,4,20,4,4,0 +4,32,16.5,2,2,14,4,2,0 +4,22,0.5,0,3,16,4,4,0 +3,22,2.5,0,3,14,3,2,0 +4,22,2.5,0,1,14,5,4,0 +5,27,2.5,0,2,17,4,5,0 +5,22,2.5,0,2,14,3,5,0 +2,42,16.5,3,3,14,3,5,0 +3,22,2.5,0,4,14,3,3,0 +5,27,6,0,2,20,4,4,0 +5,27,6,1,2,12,4,2,0 +4,22,2.5,0,1,14,3,4,0 +4,37,16.5,3,1,12,3,2,0 +4,32,16.5,3,2,14,3,2,0 +3,27,6,1,1,14,3,4,0 +4,27,6,1,3,17,4,3,0 +4,42,23,2,3,20,4,4,0 +4,27,6,2,2,12,3,4,0 +4,32,9,2,3,12,5,5,0 +5,42,23,2,2,14,3,2,0 +5,32,16.5,2,3,12,3,5,0 +4,22,2.5,0,3,16,3,4,0 +5,27,6,2,3,14,4,3,0 +5,27,2.5,1,2,12,3,3,0 +5,27,6,1,3,12,3,2,0 +4,32,6,1,3,12,2,2,0 +4,22,2.5,0,2,16,4,5,0 +5,27,2.5,1,3,16,3,6,0 +3,27,6,0,1,17,4,6,0 +5,27,2.5,0,2,17,4,6,0 +4,22,2.5,0,3,12,5,5,0 +4,22,6,1,2,12,3,4,0 +3,32,2.5,0,1,20,6,6,0 +2,37,23,5.5,2,14,3,4,0 +3,42,23,4,3,12,2,2,0 +4,22,2.5,1,1,12,3,3,0 +5,42,16.5,4,3,16,4,2,0 +5,22,0.5,0,3,14,3,5,0 +4,22,0.5,0,2,12,2,5,0 +4,27,6,2,3,12,4,5,0 +5,27,2.5,0,4,16,3,1,0 +4,22,2.5,0,3,12,5,2,0 +3,22,0.5,0,3,14,3,5,0 +5,27,2.5,0,2,16,3,5,0 +5,27,0.5,0,2,20,4,2,0 +5,32,16.5,4,3,14,4,5,0 +4,22,2.5,1,3,12,2,4,0 +3,22,2.5,0,1,16,3,2,0 +4,27,6,1,2,12,4,4,0 +4,17.5,2.5,0,3,14,2,2,0 +5,37,16.5,4,2,17,4,6,0 +4,32,16.5,5.5,1,14,2,2,0 +5,22,0.5,0,4,16,4,4,0 +5,22,2.5,0,2,16,4,5,0 +5,17.5,0.5,0,2,12,4,4,0 +5,22,2.5,1,4,14,2,2,0 +5,42,9,0,3,12,3,4,0 +4,27,6,1,2,14,3,2,0 +3,32,13,2,2,16,2,2,0 +4,32,13,2,2,12,2,2,0 +5,22,2.5,0,3,17,3,4,0 +4,27,9,2,2,12,2,4,0 +4,37,23,2,4,14,3,6,0 +4,42,23,3,2,14,4,6,0 +4,22,2.5,0,3,14,3,4,0 +5,27,9,2,3,14,4,4,0 +2,32,13,1,3,14,5,3,0 +1,42,23,2,3,12,2,2,0 +5,22,2.5,0,3,14,3,4,0 +4,27,6,1,3,16,4,4,0 +4,42,23,4,3,12,2,5,0 +5,32,16.5,3,1,14,5,5,0 +5,27,2.5,0,4,16,3,6,0 +4,27,9,0,2,12,5,2,0 +3,22,2.5,0,1,14,3,5,0 +5,27,2.5,0,2,12,3,6,0 +5,32,9,3,2,12,3,3,0 +5,22,0.5,0,3,14,2,4,0 +4,27,2.5,1,1,12,3,3,0 +4,37,16.5,3,3,12,3,2,0 +5,22,2.5,0,3,12,5,4,0 +3,22,2.5,0,2,14,4,2,0 +5,32,13,2,2,12,2,4,0 +5,32,9,2,3,17,4,5,0 +4,37,16.5,3,2,12,3,5,0 +5,27,2.5,0,3,14,4,4,0 +2,42,23,4,1,17,3,5,0 +4,27,6,2,3,16,4,4,0 +4,42,23,3,4,14,4,4,0 +5,22,0.5,0,4,14,3,1,0 +5,27,2.5,0,3,16,4,5,0 +4,22,2.5,0,3,16,4,4,0 +3,32,6,2,3,16,4,5,0 +5,22,6,0,3,14,3,4,0 +4,22,2.5,1,2,12,2,4,0 +5,27,0.5,0,2,14,4,4,0 +3,32,6,3,4,16,5,6,0 +4,27,0.5,0,4,14,3,4,0 +5,27,2.5,0,3,16,4,5,0 +4,22,6,0,2,12,3,2,0 +4,22,2.5,0,3,12,3,5,0 +4,22,2.5,0,1,17,4,4,0 +4,27,6,2,4,14,4,5,0 +5,22,2.5,0,1,16,2,5,0 +4,27,6,2,3,16,4,4,0 +5,22,0.5,0,2,16,3,5,0 +5,32,13,3,3,14,4,5,0 +4,32,6,0,3,17,2,2,0 +5,32,13,2,2,12,3,5,0 +5,22,2.5,0,2,14,5,2,0 +5,27,13,2,2,14,4,4,0 +4,27,6,1,4,16,4,4,0 +5,32,16.5,5.5,4,14,4,6,0 +5,37,16.5,3,3,17,4,5,0 +4,22,2.5,0,4,14,3,2,0 +5,37,16.5,4,2,14,3,2,0 +3,32,16.5,3,3,12,3,3,0 +5,22,2.5,0,1,14,2,2,0 +5,22,2.5,2,3,14,3,4,0 +3,37,16.5,2,3,12,3,5,0 +4,22,2.5,0,2,16,3,6,0 +5,22,0.5,0,3,12,5,4,0 +5,42,23,3,4,16,4,5,0 +4,22,6,2,2,14,5,5,0 +5,27,2.5,0,2,17,4,6,0 +5,27,6,0,1,12,3,4,0 +5,22,2.5,0,3,12,2,4,0 +4,37,23,3,4,14,4,4,0 +3,27,2.5,0,3,16,3,5,0 +5,27,2.5,0,2,14,4,3,0 +5,22,2.5,0,2,14,3,5,0 +4,32,13,2,2,14,2,3,0 +4,32,16.5,2,2,17,4,6,0 +4,27,6,2,2,12,3,4,0 +4,22,0.5,0,3,12,3,4,0 +3,22,2.5,1,4,14,2,2,0 +3,27,2.5,0,2,16,4,4,0 +3,27,6,2,2,17,6,4,0 +5,27,2.5,0,2,12,2,4,0 +5,22,0.5,0,2,12,3,4,0 +2,42,23,5.5,4,12,3,4,0 +4,27,2.5,0,4,17,5,5,0 +5,27,6,2,3,16,4,4,0 +4,42,23,2,3,12,3,2,0 +5,27,6,1,2,14,3,5,0 +5,22,2.5,0,3,14,4,2,0 +3,22,6,3,2,12,2,2,0 +5,17.5,0.5,0,2,12,3,5,0 +4,27,6,0,3,14,3,1,0 +5,22,2.5,0,2,16,4,5,0 +5,27,0.5,0,4,14,3,4,0 +4,42,23,5.5,4,16,4,5,0 +5,37,16.5,3,2,12,3,3,0 +4,42,23,3,2,12,3,3,0 +4,27,2.5,0,3,16,4,4,0 +4,22,2.5,0,3,17,4,5,0 +5,22,0.5,0,2,20,4,5,0 +5,22,2.5,1,2,12,3,4,0 +4,22,6,3,3,12,2,2,0 +5,42,23,5.5,2,16,4,4,0 +3,32,6,0,1,14,3,6,0 +5,37,13,0,2,14,4,6,0 +5,27,2.5,0,1,17,4,4,0 +3,32,6,0,2,14,3,5,0 +5,27,2.5,0,2,14,5,4,0 +5,42,23,4,3,14,2,5,0 +5,32,16.5,5.5,4,12,5,5,0 +4,27,6,2,2,12,3,4,0 +3,22,2.5,0,2,12,2,2,0 +2,27,2.5,0,1,20,4,2,0 +5,37,16.5,5.5,3,9,2,5,0 +3,37,23,3,2,12,2,4,0 +5,22,2.5,1,3,12,2,3,0 +5,22,2.5,0,2,14,3,5,0 +5,22,2.5,0,4,14,2,2,0 +5,27,2.5,0,4,16,4,4,0 +4,22,2.5,0,3,14,3,2,0 +4,32,6,2,3,14,2,2,0 +5,17.5,2.5,0,1,12,3,2,0 +4,27,9,2,1,12,2,2,0 +3,32,16.5,1,2,12,3,2,0 +4,27,6,1,2,14,3,4,0 +5,27,6,2,3,16,4,5,0 +5,27,6,1,3,17,4,5,0 +4,22,0.5,0,2,14,3,2,0 +5,22,2.5,1,2,12,4,4,0 +4,27,9,2,2,12,3,2,0 +4,22,2.5,1,3,12,3,5,0 +4,22,2.5,0,3,16,4,1,0 +5,32,16.5,1,3,12,3,4,0 +5,22,2.5,0,3,12,3,2,0 +5,22,2.5,1,3,12,3,4,0 +5,27,13,1,2,12,3,3,0 +4,27,6,2,2,16,4,5,0 +3,42,23,4,2,16,4,6,0 +3,37,16.5,2,2,12,2,2,0 +5,27,6,1,3,12,2,2,0 +5,22,0.5,0,2,16,4,6,0 +5,22,2.5,0,4,14,1,1,0 +4,27,6,1,4,16,4,4,0 +3,42,23,2,4,14,2,5,0 +3,27,6,1,3,14,3,5,0 +4,22,2.5,0,3,14,4,4,0 +5,22,2.5,0,2,14,3,5,0 +3,32,13,2,2,12,4,4,0 +4,37,16.5,5.5,3,14,1,3,0 +4,37,23,5.5,1,14,3,2,0 +5,22,0.5,0,3,16,4,4,0 +5,42,16.5,3,4,17,4,4,0 +4,27,2.5,0,3,17,4,5,0 +4,32,16.5,2,1,12,5,5,0 +4,22,2.5,0,3,14,3,5,0 +3,22,6,2,2,14,2,4,0 +5,22,2.5,0,2,14,4,6,0 +5,37,13,0,1,12,5,5,0 +4,42,23,5.5,2,14,4,3,0 +5,37,16.5,3,2,14,3,6,0 +5,27,6,0,3,16,6,5,0 +4,22,9,3,3,12,5,5,0 +5,17.5,2.5,0,3,12,2,2,0 +5,42,23,3,2,12,3,5,0 +5,37,13,2,4,17,4,5,0 +4,37,13,0,2,14,5,5,0 +2,27,6,2,3,14,5,5,0 +5,22,2.5,2,4,12,3,5,0 +4,22,6,1,2,12,2,2,0 +4,27,6,1,2,14,3,3,0 +5,42,23,4,3,12,3,5,0 +5,27,2.5,0,4,16,3,3,0 +5,22,2.5,0,2,14,3,5,0 +5,42,13,0,4,14,5,2,0 +5,22,2.5,0,3,16,3,5,0 +5,22,2.5,0,3,12,3,2,0 +5,22,2.5,1,3,17,4,2,0 +5,22,0.5,0,3,17,4,3,0 +4,32,9,3,3,16,4,5,0 +4,32,9,2,3,14,2,2,0 +4,27,6,2,1,14,4,4,0 +5,32,2.5,4,3,16,5,4,0 +5,22,0.5,0,2,14,2,5,0 +5,27,2.5,0,3,14,3,2,0 +4,32,16.5,3,3,9,4,4,0 +5,42,23,2,1,14,3,4,0 +3,32,13,3,2,16,4,5,0 +4,27,6,1,3,12,3,2,0 +5,27,9,2,4,12,2,2,0 +4,27,6,2,2,14,3,4,0 +4,22,2.5,0,2,14,3,1,0 +5,17.5,0.5,0,1,14,1,1,0 +4,32,16.5,3,3,14,5,5,0 +2,22,6,1,2,14,4,2,0 +5,22,2.5,0,2,14,3,4,0 +4,27,9,1,3,12,4,2,0 +5,22,2.5,1,2,12,4,1,0 +5,27,6,0,3,12,4,2,0 +3,42,23,3,3,14,3,4,0 +5,42,16.5,3,3,16,4,4,0 +5,27,6,1,4,14,2,2,0 +5,22,6,1,4,14,5,2,0 +4,22,0.5,0,2,16,3,2,0 +4,37,16.5,4,2,14,2,5,0 +5,32,16.5,3,3,12,2,2,0 +5,22,0.5,0,2,14,3,2,0 +5,32,16.5,3,3,12,3,2,0 +5,27,0.5,0,2,20,4,2,0 +5,22,2.5,0,3,12,3,4,0 +5,27,9,2,2,12,4,4,0 +4,22,2.5,1,2,12,2,3,0 +4,27,6,3,3,16,3,4,0 +3,42,16.5,3,4,9,5,4,0 +3,32,13,1,3,9,3,5,0 +5,32,16.5,3,3,14,4,4,0 +5,27,6,1,2,14,3,4,0 +4,32,16.5,2,2,12,3,3,0 +4,32,13,3,3,12,2,4,0 +5,22,2.5,0,3,16,4,1,0 +5,22,2.5,0,2,16,4,4,0 +4,27,13,2,3,16,4,4,0 +5,17.5,0.5,0,3,12,3,1,0 +4,27,9,2,3,14,2,1,0 +4,32,9,2,3,14,3,3,0 +5,32,16.5,3,2,14,3,4,0 +5,27,6,0,4,20,3,4,0 +5,32,16.5,2,4,14,4,4,0 +4,37,16.5,5.5,1,12,3,4,0 +4,22,2.5,0,3,14,3,3,0 +5,22,2.5,0,3,14,3,4,0 +4,27,2.5,0,2,16,3,5,0 +5,42,23,3,2,14,3,4,0 +5,22,2.5,1,3,14,3,4,0 +5,27,6,0,3,16,3,2,0 +4,27,6,0,2,14,2,2,0 +4,32,13,3,3,14,4,2,0 +5,27,9,1,2,12,3,4,0 +5,22,2.5,0,2,14,3,5,0 +1,42,23,4,4,16,4,2,0 +5,22,6,0,1,14,3,2,0 +5,32,13,3,1,14,3,2,0 +4,42,23,4,4,14,1,5,0 +3,22,2.5,0,2,12,3,4,0 +5,27,6,1,2,17,4,4,0 +3,42,23,3,2,12,3,2,0 +4,42,23,5.5,2,12,3,5,0 +4,22,6,0,1,16,4,5,0 +4,22,2.5,0,2,14,2,4,0 +5,27,6,2,4,12,2,4,0 +2,42,23,2,3,14,2,2,0 +5,32,16.5,3,3,14,3,2,0 +4,42,23,5.5,4,20,5,6,0 +5,22,2.5,0,1,14,2,5,0 +5,42,23,5.5,3,12,3,5,0 +5,27,0.5,0,2,16,4,4,0 +5,22,2.5,0,4,16,3,2,0 +3,27,9,2,3,12,2,5,0 +5,22,0.5,0,2,16,4,5,0 +5,22,2.5,1,3,16,4,4,0 +4,32,16.5,4,2,12,2,2,0 +4,32,13,0,2,17,4,2,0 +4,27,2.5,0,2,17,4,3,0 +5,32,16.5,2,2,14,3,3,0 +4,27,9,2,2,14,3,6,0 +4,22,2.5,2,3,12,2,4,0 +5,27,2.5,0,1,16,4,6,0 +2,22,2.5,1,3,16,2,4,0 +5,42,23,5.5,2,16,5,5,0 +5,27,2.5,0,3,20,4,4,0 +5,37,13,2,2,20,4,4,0 +5,42,16.5,1,4,14,3,5,0 +4,32,13,2,3,20,4,4,0 +5,22,2.5,1,3,12,3,1,0 +4,42,23,2,2,20,4,3,0 +4,27,9,2,3,12,3,4,0 +5,22,2.5,0,3,14,2,5,0 +5,22,2.5,0,4,12,2,4,0 +5,22,2.5,0,3,16,4,4,0 +5,32,16.5,3,3,12,3,3,0 +3,42,16.5,3,3,12,2,2,0 +5,27,2.5,1,1,16,4,5,0 +4,37,16.5,2,3,14,3,4,0 +5,37,2.5,0,3,20,4,3,0 +5,32,13,3,1,16,4,5,0 +3,37,16.5,2,3,14,2,2,0 +4,42,23,2,4,12,3,4,0 +5,27,2.5,0,2,16,4,4,0 +5,22,2.5,0,3,16,4,1,0 +5,22,6,0,2,14,2,2,0 +4,27,2.5,0,3,17,4,4,0 +5,22,2.5,0,3,16,4,1,0 +3,27,6,1,2,14,3,4,0 +5,32,16.5,4,3,12,5,5,0 +5,37,16.5,3,4,17,4,6,0 +4,32,13,2,3,12,4,5,0 +3,37,16.5,4,1,12,5,5,0 +5,22,2.5,0,2,12,2,4,0 +4,22,2.5,0,2,12,2,5,0 +4,22,2.5,1,3,16,4,4,0 +4,27,6,2,3,14,5,5,0 +5,22,2.5,0,3,12,2,2,0 +4,37,23,4,2,9,2,2,0 +5,27,9,2,3,12,3,4,0 +5,27,6,0,2,16,4,1,0 +4,32,2.5,0,2,12,3,2,0 +4,22,2.5,0,1,14,2,4,0 +3,32,13,0,1,14,3,6,0 +5,32,6,2,3,14,3,5,0 +5,22,2.5,0,1,14,3,3,0 +5,27,6,2,2,20,4,6,0 +4,22,2.5,0,1,16,4,4,0 +5,22,2.5,0,3,14,4,1,0 +4,42,23,4,2,17,4,6,0 +3,27,6,1,2,14,3,5,0 +4,27,2.5,0,3,16,3,5,0 +3,42,23,2,3,16,3,4,0 +4,42,23,3,2,12,3,4,0 +5,27,2.5,0,3,16,4,3,0 +4,22,2.5,0,3,12,3,3,0 +5,27,0.5,0,1,14,3,2,0 +5,37,16.5,3,3,12,5,5,0 +5,32,6,0,2,20,4,5,0 +5,22,6,0,1,12,5,5,0 +4,32,16.5,4,1,12,2,2,0 +4,22,2.5,1,1,12,2,2,0 +4,27,2.5,2,3,14,2,4,0 +3,27,2.5,0,2,16,4,2,0 +5,42,23,4,3,12,3,3,0 +4,27,2.5,1,4,14,4,4,0 +5,27,6,1,3,16,5,2,0 +5,27,6,0,3,14,3,4,0 +5,42,23,4,2,14,3,4,0 +5,22,2.5,1,3,14,5,2,0 +2,27,6,2,4,14,2,2,0 +4,42,23,2,3,14,3,5,0 +5,27,6,1,4,14,5,4,0 +4,22,2.5,0,4,16,4,4,0 +4,22,2.5,0,2,16,4,4,0 +4,27,9,2,2,16,4,3,0 +5,37,16.5,1,3,14,3,2,0 +4,22,2.5,1,3,12,2,2,0 +5,27,13,2,4,12,2,4,0 +4,27,6,0,2,17,4,5,0 +5,22,2.5,1,2,16,4,4,0 +5,17.5,0.5,0,1,12,3,3,0 +4,27,2.5,0,1,17,1,4,0 +5,27,6,1,2,16,4,4,0 +5,22,2.5,0,2,14,5,5,0 +4,37,16.5,3,2,12,3,5,0 +4,22,2.5,0,2,16,3,3,0 +4,32,9,2,2,16,4,6,0 +5,22,2.5,1,3,17,4,5,0 +4,27,2.5,0,2,12,3,4,0 +5,27,6,2,2,16,2,4,0 +4,22,2.5,1,3,14,3,4,0 +3,22,0.5,0,2,14,3,4,0 +5,32,13,3,3,16,4,4,0 +5,32,9,2,1,16,2,4,0 +5,22,2.5,0,3,12,2,4,0 +4,32,13,0,3,12,5,4,0 +5,27,2.5,0,2,12,3,2,0 +2,22,2.5,0,3,14,2,2,0 +3,32,9,1,3,16,4,3,0 +5,22,0.5,0,3,17,4,2,0 +5,27,6,0,3,16,4,6,0 +3,42,23,3,2,16,4,5,0 +4,32,9,2,1,12,3,3,0 +5,32,13,2,4,20,6,6,0 +5,27,2.5,1,4,20,4,4,0 +4,32,9,2,3,16,4,2,0 +4,37,16.5,3,4,14,2,4,0 +5,42,23,1,4,12,2,2,0 +4,27,2.5,0,1,16,3,3,0 +4,27,6,1,2,17,3,3,0 +5,32,13,1,1,16,4,4,0 +5,27,6,1,4,16,2,2,0 +5,32,16.5,3,3,16,4,5,0 +5,42,23,2,4,12,2,2,0 +5,37,6,1,3,12,3,2,0 +1,22,2.5,1,2,12,3,5,0 +4,22,2.5,1,3,17,4,4,0 +5,17.5,0.5,1,2,12,3,3,0 +5,42,23,5.5,3,12,3,4,0 +5,42,6,0,4,20,4,2,0 +2,17.5,2.5,1,2,12,4,4,0 +4,37,16.5,3,4,12,3,4,0 +5,32,16.5,3,2,16,3,5,0 +5,22,2.5,0,3,12,3,1,0 +5,22,6,2,4,12,3,3,0 +5,22,2.5,1,3,20,4,4,0 +4,22,6,0,1,14,4,6,0 +5,32,13,1,3,12,3,2,0 +4,32,6,3,2,17,4,6,0 +4,27,6,2,3,14,4,2,0 +3,22,6,1,3,12,2,4,0 +3,37,23,3,3,12,3,4,0 +5,22,2.5,1,1,14,3,2,0 +2,27,9,1,2,12,3,4,0 +3,22,2.5,1,2,12,3,2,0 +4,32,13,2,2,17,3,2,0 +2,22,2.5,1,3,12,3,4,0 +5,37,13,0,2,12,4,2,0 +3,37,16.5,4,4,14,4,2,0 +5,42,23,3,3,12,3,5,0 +5,22,2.5,0,4,16,4,4,0 +3,27,2.5,0,3,20,4,4,0 +4,27,2.5,2,3,12,4,5,0 +5,22,2.5,0,4,14,3,1,0 +4,22,2.5,0,3,14,2,2,0 +3,32,13,2,2,12,2,2,0 +5,27,6,2,3,12,3,5,0 +5,27,9,3,4,14,4,2,0 +4,22,6,2,2,12,3,2,0 +4,32,9,3,2,16,4,2,0 +4,42,23,4,3,14,3,5,0 +5,42,23,5.5,4,14,4,4,0 +3,22,2.5,2,1,12,3,2,0 +5,32,13,3,3,14,4,3,0 +4,32,16.5,5.5,3,12,3,4,0 +5,22,2.5,0,3,17,5,5,0 +3,22,2.5,1,3,12,3,5,0 +5,22,2.5,0,2,14,1,4,0 +5,32,9,0,2,12,3,5,0 +2,22,2.5,1,3,14,3,2,0 +5,22,2.5,0,3,16,5,1,0 +4,27,6,0,3,16,4,5,0 +5,27,0.5,0,3,16,4,1,0 +5,27,6,2,3,17,4,5,0 +4,27,2.5,1,3,16,2,3,0 +5,22,2.5,0,3,14,4,2,0 +5,32,16.5,4,3,12,5,2,0 +2,22,2.5,0,2,12,3,2,0 +5,27,0.5,0,1,12,3,2,0 +4,42,23,1,1,12,4,5,0 +3,27,9,0,3,17,4,6,0 +4,22,2.5,0,2,16,3,1,0 +3,42,23,3,3,14,2,2,0 +4,22,0.5,0,3,16,3,4,0 +5,32,9,2,1,16,5,5,0 +5,37,0.5,0,2,17,4,2,0 +4,22,2.5,0,3,16,3,5,0 +4,22,2.5,0,3,16,4,5,0 +5,42,23,4,3,12,2,4,0 +5,32,6,2,1,12,3,5,0 +4,22,2.5,0,2,12,3,4,0 +5,22,2.5,1,2,12,3,2,0 +5,27,13,1,2,14,3,5,0 +5,27,6,2,2,17,4,3,0 +4,22,2.5,0,3,16,3,2,0 +5,27,6,0,1,14,2,1,0 +4,42,23,5.5,3,14,5,4,0 +3,17.5,2.5,1,2,12,2,4,0 +4,22,2.5,0,2,14,1,1,0 +5,22,0.5,0,2,12,4,4,0 +3,27,2.5,1,1,12,2,2,0 +5,17.5,2.5,0,3,14,2,3,0 +5,37,16.5,3,3,14,3,5,0 +4,27,6,2,2,14,3,2,0 +3,42,23,3,2,14,5,4,0 +4,22,2.5,0,3,12,3,2,0 +5,22,0.5,0,2,12,2,4,0 +3,27,9,3,3,12,2,4,0 +3,22,2.5,0,2,12,3,4,0 +4,22,2.5,0,1,17,4,1,0 +3,22,2.5,2,3,12,3,2,0 +3,42,23,2,1,16,4,5,0 +4,22,2.5,2,2,14,2,2,0 +5,17.5,2.5,1,3,12,5,5,0 +5,22,0.5,0,1,16,4,2,0 +5,22,2.5,0,3,16,3,3,0 +4,27,6,1,2,16,4,4,0 +4,27,2.5,0,1,14,4,1,0 +5,22,2.5,0,3,17,4,2,0 +5,27,2.5,0,1,14,2,5,0 +5,22,2.5,0,1,16,3,2,0 +4,32,13,2,1,14,3,4,0 +5,22,0.5,0,2,14,3,5,0 +5,22,2.5,0,3,17,4,4,0 +5,22,2.5,0,3,14,2,4,0 +5,22,2.5,1,2,14,3,4,0 +5,27,2.5,0,1,12,3,2,0 +3,27,6,1,3,12,4,4,0 +4,27,6,2,3,14,3,4,0 +4,32,16.5,2,3,12,3,5,0 +4,27,6,0,1,17,4,5,0 +4,22,2.5,0,3,14,3,2,0 +5,27,6,0,2,16,3,4,0 +4,27,6,0,2,16,4,2,0 +3,32,16.5,2,4,20,4,4,0 +4,22,2.5,1,2,14,3,4,0 +5,27,6,2,3,17,4,4,0 +3,27,9,1,3,14,1,4,0 +5,27,2.5,0,3,16,4,5,0 +5,22,2.5,0,4,16,3,5,0 +5,27,2.5,1,2,12,2,2,0 +1,37,13,5.5,3,12,2,4,0 +4,27,6,2,1,12,3,5,0 +3,22,2.5,0,2,12,2,4,0 +4,22,2.5,0,4,16,3,2,0 +4,27,13,2,2,12,4,4,0 +5,22,2.5,0,2,14,4,4,0 +4,27,2.5,0,2,17,4,5,0 +2,22,2.5,0,1,12,3,4,0 +5,22,2.5,0,1,16,3,1,0 +4,22,2.5,0,2,14,3,5,0 +4,27,2.5,0,3,17,4,6,0 +5,22,0.5,0,3,14,3,5,0 +4,22,2.5,1,3,14,3,5,0 +3,22,2.5,0,1,16,4,5,0 +5,37,16.5,2,4,14,4,6,0 +5,22,0.5,0,3,14,3,4,0 +5,32,9,1,2,16,4,4,0 +5,22,2.5,0,3,16,3,3,0 +5,22,2.5,1,3,14,4,4,0 +4,27,6,1,2,14,5,3,0 +4,27,9,3,3,12,3,4,0 +2,22,2.5,0,4,16,4,4,0 +5,22,2.5,0,3,14,4,2,0 +5,27,2.5,1,1,16,4,6,0 +4,37,16.5,3,3,12,3,5,0 +5,22,2.5,0,3,14,5,5,0 +3,22,2.5,0,1,12,4,4,0 +4,32,9,3,2,20,4,6,0 +4,42,23,3,4,12,4,2,0 +1,32,2.5,1,1,20,4,4,0 +5,22,6,0,2,14,3,4,0 +4,27,6,1,3,14,3,5,0 +5,22,2.5,0,2,16,4,2,0 +4,22,2.5,0,2,14,4,4,0 +3,32,13,2,2,16,4,5,0 +5,37,23,3,3,12,2,2,0 +5,22,9,2,2,12,3,4,0 +5,27,6,0,3,14,5,2,0 +3,37,16.5,3,3,12,3,2,0 +5,27,6,0,3,17,3,1,0 +5,17.5,0.5,0,4,12,2,2,0 +5,27,2.5,0,4,17,4,2,0 +5,22,2.5,0,3,14,5,4,0 +3,22,2.5,0,3,16,4,4,0 +5,22,2.5,1,3,16,4,5,0 +4,27,2.5,0,2,16,5,4,0 +5,22,2.5,0,2,17,4,5,0 +5,22,0.5,0,3,14,3,4,0 +4,22,2.5,1,3,14,3,4,0 +4,32,6,2,3,14,4,4,0 +4,42,16.5,3,3,20,6,6,0 +3,27,2.5,1,2,17,4,3,0 +2,42,23,2,3,14,3,4,0 +5,27,9,1,2,12,2,2,0 +5,22,2.5,0,4,17,4,4,0 +4,32,16.5,4,2,12,3,2,0 +4,32,6,0,1,14,4,5,0 +5,27,6,1,1,20,6,6,0 +4,37,13,2,3,14,4,4,0 +4,27,9,2,3,14,3,5,0 +5,27,9,3,1,12,2,2,0 +4,32,9,2,2,12,5,3,0 +5,42,23,3,3,12,5,3,0 +3,37,23,3,3,14,4,6,0 +4,27,2.5,0,2,16,4,5,0 +4,22,2.5,0,3,14,5,4,0 +4,42,13,0,3,16,4,5,0 +5,27,6,0,1,12,3,4,0 +5,22,2.5,0,4,16,3,1,0 +5,37,16.5,1,3,12,3,5,0 +3,32,13,3,2,9,2,5,0 +3,27,6,2,3,16,4,5,0 +5,27,2.5,1,4,16,4,5,0 +4,37,16.5,3,2,14,4,5,0 +5,22,2.5,0,4,14,3,2,0 +4,37,16.5,2,3,12,3,4,0 +2,32,6,0,3,14,2,2,0 +4,27,9,0,3,12,3,4,0 +3,32,9,1,3,17,4,5,0 +5,22,6,2,3,12,3,2,0 +3,27,13,3,3,14,4,4,0 +5,22,2.5,0,1,14,3,4,0 +5,37,16.5,3,3,12,3,5,0 +5,27,2.5,1,3,16,5,3,0 +5,32,13,3,3,14,4,4,0 +5,37,23,3,3,14,3,5,0 +4,22,2.5,0,3,14,3,2,0 +3,22,2.5,0,3,14,3,2,0 +4,37,23,3,1,9,3,4,0 +4,37,23,2,2,14,5,4,0 +3,37,23,2,4,14,3,3,0 +5,22,2.5,0,2,14,3,6,0 +5,22,2.5,0,3,14,3,2,0 +5,32,9,2,1,17,4,5,0 +5,32,13,2,3,16,4,2,0 +3,42,23,3,3,12,3,5,0 +2,32,6,2,2,16,4,2,0 +5,17.5,2.5,0,3,12,4,1,0 +5,42,16.5,2,2,14,4,4,0 +5,27,6,2,3,12,3,2,0 +5,37,16.5,3,3,12,3,2,0 +5,32,9,1,4,16,4,4,0 +4,42,23,4,3,14,3,2,0 +4,42,23,5.5,4,20,4,6,0 +5,22,2.5,0,2,14,3,5,0 +3,27,9,1,3,12,5,4,0 +5,22,0.5,0,2,16,4,5,0 +5,37,13,1,3,14,3,5,0 +5,22,2.5,0,3,17,4,4,0 +2,32,9,2,3,12,3,4,0 +4,22,6,0,4,14,3,5,0 +4,22,2.5,0,3,14,4,2,0 +5,27,6,1,3,16,3,4,0 +4,22,2.5,0,1,17,4,5,0 +4,32,13,2,4,17,5,5,0 +5,27,6,0,2,14,5,4,0 +5,37,23,3,3,14,3,5,0 +2,37,16.5,2,2,12,3,5,0 +4,27,6,2,3,14,3,3,0 +5,27,2.5,0,2,16,4,4,0 +5,42,23,2,4,12,3,2,0 +5,27,2.5,0,2,16,4,2,0 +5,32,13,1,3,16,4,5,0 +5,37,13,2,4,20,4,5,0 +3,27,6,0,3,14,3,5,0 +3,22,6,2,3,12,2,2,0 +5,22,2.5,0,2,12,2,3,0 +5,22,2.5,1,2,14,2,2,0 +2,17.5,2.5,2,2,12,3,4,0 +5,27,2.5,0,3,14,3,3,0 +5,22,0.5,0,2,16,4,5,0 +5,27,2.5,1,2,12,2,4,0 +2,22,2.5,2,3,12,2,4,0 +4,22,2.5,0,3,14,4,5,0 +5,42,16.5,2,3,14,3,5,0 +5,32,6,0,1,16,6,1,0 +5,27,2.5,0,3,14,5,2,0 +5,37,16.5,2,3,14,3,2,0 +4,27,6,1,4,14,4,4,0 +5,27,6,1,2,16,3,5,0 +4,22,2.5,0,3,16,5,6,0 +5,42,23,1,3,14,5,5,0 +5,22,2.5,0,3,14,3,4,0 +4,42,23,3,4,12,5,2,0 +5,42,23,3,4,12,3,3,0 +5,32,16.5,3,3,12,2,2,0 +4,22,6,1,1,12,3,2,0 +5,42,23,4,3,20,6,6,0 +5,17.5,0.5,0,3,14,3,5,0 +5,27,2.5,0,1,14,2,6,0 +5,22,2.5,0,3,14,3,4,0 +5,32,6,1,3,20,4,5,0 +5,22,0.5,0,3,17,6,2,0 +2,37,16.5,2,1,12,3,5,0 +5,27,9,2,3,12,3,2,0 +4,27,2.5,0,2,16,4,2,0 +4,27,13,1,3,12,3,3,0 +3,42,23,3,2,14,3,3,0 +5,27,6,1,1,14,4,5,0 +5,27,6,0,3,14,3,5,0 +2,22,6,1,1,12,3,2,0 +5,37,16.5,4,3,14,2,3,0 +4,27,9,2,3,20,4,5,0 +5,17.5,0.5,0,4,12,2,4,0 +5,42,23,3,3,17,4,5,0 +5,37,16.5,2,2,14,3,5,0 +5,22,2.5,0,1,14,4,4,0 +4,22,2.5,0,3,14,4,5,0 +3,22,2.5,0,3,14,3,6,0 +3,42,23,3,2,12,3,4,0 +4,27,6,0,2,16,5,6,0 +5,42,23,3,3,16,2,3,0 +5,27,9,2,3,17,4,4,0 +5,22,2.5,0,2,16,3,4,0 +2,27,6,1,3,16,4,2,0 +5,27,6,0,2,17,4,2,0 +3,22,2.5,0,4,17,4,2,0 +4,37,16.5,3,3,14,4,5,0 +3,22,2.5,1,3,16,4,3,0 +4,32,9,1,3,20,4,4,0 +5,27,6,2,1,12,3,5,0 +5,27,6,0,3,16,5,4,0 +5,22,6,1,4,14,3,3,0 +4,32,0.5,0,3,14,5,5,0 +5,32,2.5,1,2,14,3,4,0 +4,22,0.5,0,4,14,3,2,0 +4,37,6,0,4,12,3,2,0 +2,22,6,1,2,14,3,4,0 +5,37,13,1,2,12,5,5,0 +4,32,9,0,1,12,3,4,0 +5,22,0.5,0,2,14,3,2,0 +5,27,2.5,0,1,16,5,5,0 +5,32,2.5,0,2,16,5,5,0 +4,27,6,1,4,14,4,4,0 +5,27,2.5,0,3,12,3,4,0 +4,37,13,2,3,14,3,5,0 +4,22,2.5,0,3,17,5,4,0 +5,22,2.5,0,2,12,3,2,0 +5,22,2.5,0,2,14,3,5,0 +4,32,13,2,3,14,3,2,0 +4,22,2.5,0,2,16,4,6,0 +4,22,2.5,0,2,12,2,4,0 +3,22,0.5,0,2,14,3,5,0 +5,37,16.5,4,4,12,3,5,0 +4,22,6,1,3,12,3,4,0 +5,37,16.5,1,3,16,4,5,0 +4,27,6,1,2,14,3,4,0 +5,32,16.5,2,2,12,3,2,0 +5,42,23,4,4,20,4,6,0 +5,27,2.5,0,1,20,5,4,0 +5,22,2.5,2,3,16,3,1,0 +4,42,16.5,2,4,20,4,6,0 +4,27,9,0,2,12,5,5,0 +4,27,2.5,1,2,12,2,4,0 +4,27,2.5,0,3,17,5,5,0 +5,27,2.5,0,2,16,3,3,0 +4,37,13,2,2,16,4,5,0 +5,32,13,2,4,14,3,4,0 +4,37,16.5,4,3,16,4,3,0 +4,27,6,1,3,20,4,6,0 +3,27,13,3,3,12,3,4,0 +4,22,2.5,1,3,16,4,5,0 +5,22,2.5,0,3,16,4,6,0 +5,37,16.5,1,3,16,3,4,0 +3,42,23,3,2,16,4,2,0 +3,22,2.5,0,2,12,3,2,0 +2,27,2.5,1,3,12,2,2,0 +5,27,6,3,3,16,3,5,0 +5,27,0.5,0,2,16,5,6,0 +4,32,2.5,0,3,14,3,6,0 +4,27,6,0,3,14,4,5,0 +4,37,13,1,3,16,4,5,0 +4,42,23,3,3,14,4,6,0 +4,27,9,0,2,14,3,5,0 +5,37,2.5,0,2,16,4,3,0 +5,27,6,1,2,16,5,6,0 +5,32,2.5,1,3,17,3,5,0 +4,42,16.5,2,2,12,3,5,0 +4,22,2.5,0,3,16,3,4,0 +5,32,13,1,3,12,3,5,0 +5,27,2.5,0,2,20,4,5,0 +5,22,2.5,0,2,14,3,4,0 +5,42,23,2,3,16,4,4,0 +4,42,23,4,3,20,4,4,0 +5,27,6,1,1,16,1,6,0 +5,27,0.5,0,3,14,3,4,0 +5,27,9,3,2,12,2,4,0 +4,42,23,4,3,14,4,4,0 +5,27,2.5,0,2,16,3,4,0 +5,27,9,3,3,12,3,5,0 +4,22,0.5,0,2,16,5,4,0 +4,27,2.5,0,2,16,3,5,0 +5,22,2.5,0,3,14,3,6,0 +5,22,2.5,0,3,14,4,4,0 +5,22,2.5,0,1,16,3,5,0 +4,42,23,3,3,12,3,4,0 +5,22,2.5,0,2,14,3,5,0 +4,22,2.5,0,2,17,3,1,0 +5,42,23,3,2,12,3,5,0 +5,27,9,3,3,14,2,3,0 +3,32,13,1,2,14,3,3,0 +5,32,9,2,4,20,5,5,0 +3,27,2.5,0,3,14,5,5,0 +4,27,6,1,3,16,4,4,0 +4,32,6,2,2,16,4,5,0 +5,42,23,3,2,12,4,3,0 +5,32,13,2,3,14,3,5,0 +4,22,0.5,0,2,14,3,2,0 +3,22,2.5,1,2,12,3,2,0 +2,42,23,2,2,20,4,2,0 +4,22,2.5,1,4,12,3,4,0 +4,42,23,4,4,16,4,5,0 +3,37,16.5,4,1,12,3,5,0 +4,22,2.5,0,3,14,5,1,0 +1,17.5,0.5,0,2,9,2,2,0 +4,27,2.5,0,2,20,6,5,0 +4,27,2.5,0,3,14,3,4,0 +3,27,6,2,3,12,3,5,0 +5,32,13,5.5,3,14,4,3,0 +5,42,23,3,2,12,5,5,0 +4,32,6,1,3,14,4,4,0 +4,37,16.5,1,2,12,3,3,0 +4,22,2.5,0,2,14,3,4,0 +4,37,16.5,2,3,12,3,5,0 +5,22,2.5,0,3,12,2,3,0 +4,22,0.5,0,3,12,3,5,0 +4,22,2.5,0,3,12,3,4,0 +5,42,23,4,3,12,3,5,0 +2,22,2.5,1,3,14,3,4,0 +4,32,16.5,2,2,12,3,4,0 +1,32,13,2,3,17,4,5,0 +5,27,2.5,0,2,14,4,6,0 +4,22,6,2,3,12,5,3,0 +4,17.5,2.5,1,3,9,2,2,0 +4,22,2.5,0,2,17,4,2,0 +5,37,16.5,3,3,17,4,5,0 +4,27,6,2,3,14,3,4,0 +4,42,23,3,3,17,4,6,0 +3,22,2.5,0,2,16,4,4,0 +2,37,16.5,3,3,12,3,4,0 +4,27,2.5,0,2,16,5,5,0 +5,22,2.5,0,3,16,4,2,0 +5,27,6,2,3,16,3,4,0 +5,37,13,0,3,12,3,4,0 +5,22,2.5,0,2,14,2,2,0 +4,22,2.5,0,2,16,4,5,0 +3,22,2.5,0,2,16,4,5,0 +4,22,2.5,0,2,12,3,5,0 +3,27,6,1,3,14,4,4,0 +4,22,2.5,0,2,12,3,4,0 +3,22,2.5,0,3,17,4,6,0 +5,37,16.5,2,3,17,3,5,0 +5,27,2.5,0,3,16,4,5,0 +4,37,13,2,4,16,5,5,0 +5,32,13,3,3,17,4,3,0 +4,22,2.5,0,2,12,4,5,0 +5,22,0.5,0,3,14,3,4,0 +5,22,2.5,0,4,16,3,5,0 +5,17.5,2.5,0,3,16,4,2,0 +5,22,6,1,4,12,2,4,0 +5,27,6,2,2,16,4,2,0 +4,37,16.5,2,4,14,4,6,0 +5,22,6,1,3,12,2,5,0 +4,17.5,0.5,0,3,12,3,4,0 +4,22,2.5,0,4,14,3,4,0 +2,22,2.5,0,3,12,3,5,0 +4,27,6,1,4,20,4,5,0 +5,22,0.5,0,3,16,3,1,0 +5,22,2.5,0,3,12,3,3,0 +4,42,23,3,2,12,3,3,0 +4,22,2.5,1,2,14,3,2,0 +5,27,6,0,2,17,4,5,0 +5,22,2.5,0,3,17,5,5,0 +4,22,2.5,0,3,12,3,3,0 +5,27,6,0,2,14,3,5,0 +5,27,2.5,1,3,16,4,2,0 +5,42,23,5.5,4,14,4,2,0 +5,32,13,1,3,14,3,5,0 +5,22,2.5,0,3,12,3,2,0 +3,22,2.5,0,4,12,5,5,0 +5,22,2.5,1,2,16,4,4,0 +5,32,16.5,3,4,17,4,6,0 +5,42,23,4,3,20,4,6,0 +5,22,2.5,0,4,12,3,5,0 +4,42,23,3,4,14,5,2,0 +5,27,6,0,2,17,4,6,0 +4,27,2.5,1,3,20,4,4,0 +5,32,13,3,4,14,4,3,0 +4,22,2.5,1,4,14,4,4,0 +4,32,13,2,3,14,2,5,0 +4,17.5,2.5,0,3,12,3,4,0 +3,22,2.5,0,3,16,4,1,0 +5,27,6,1,3,14,6,4,0 +5,27,9,2,4,14,3,3,0 +4,22,2.5,0,2,16,5,5,0 +4,27,9,2,2,14,3,4,0 +5,32,9,2,2,20,4,3,0 +5,42,23,5.5,4,12,4,2,0 +4,27,6,1,3,16,4,4,0 +4,27,6,1,3,17,4,6,0 +4,27,6,0,3,16,5,5,0 +5,27,2.5,0,4,17,4,1,0 +4,42,13,0,3,20,4,5,0 +5,22,2.5,1,2,12,3,4,0 +4,17.5,2.5,0,3,14,3,3,0 +4,22,6,0,2,14,3,4,0 +4,22,2.5,0,3,16,5,5,0 +5,27,6,2,2,14,3,3,0 +3,27,6,0,2,16,3,5,0 +5,22,0.5,0,3,16,5,5,0 +5,37,16.5,4,3,12,2,2,0 +4,22,2.5,2,3,12,3,2,0 +4,22,2.5,0,3,14,3,2,0 +5,27,2.5,0,1,16,4,5,0 +5,27,6,0,2,16,4,3,0 +4,27,2.5,0,2,20,6,4,0 +4,22,6,2,3,14,3,5,0 +4,22,2.5,0,1,12,3,5,0 +4,17.5,2.5,0,2,14,4,4,0 +5,22,2.5,0,3,14,3,4,0 +5,22,0.5,0,2,14,3,2,0 +3,32,2.5,0,3,17,4,3,0 +5,22,2.5,0,4,17,4,5,0 +4,22,6,0,4,14,3,4,0 +3,22,0.5,0,3,14,3,4,0 +4,17.5,0.5,0,3,12,2,4,0 +3,32,16.5,3,3,12,4,5,0 +5,22,2.5,1,3,16,4,5,0 +5,22,2.5,0,4,12,3,4,0 +5,22,6,2,3,12,3,4,0 +5,22,2.5,0,2,14,5,1,0 +5,22,2.5,0,3,12,2,2,0 +5,27,6,0,4,12,3,2,0 +5,42,23,2,3,12,3,6,0 +5,22,2.5,0,2,14,3,4,0 +3,37,16.5,1,3,14,2,5,0 +4,32,13,2,3,12,2,2,0 +5,22,2.5,0,3,14,2,5,0 +4,27,9,1,1,12,3,2,0 +5,42,23,2,3,20,4,6,0 +5,22,2.5,1,3,14,3,4,0 +5,42,23,4,3,12,4,5,0 +3,27,9,2,2,14,3,4,0 +2,32,13,4,3,14,3,3,0 +4,22,6,0,2,14,3,5,0 +5,22,2.5,0,1,17,2,5,0 +4,22,2.5,0,3,14,5,2,0 +4,22,2.5,1,2,16,4,6,0 +5,27,6,1,3,14,3,4,0 +4,27,6,1,1,16,4,4,0 +3,22,2.5,1,2,14,3,4,0 +5,32,6,0,3,20,6,6,0 +5,22,2.5,0,2,14,3,2,0 +5,17.5,0.5,0,3,12,2,5,0 +5,27,2.5,0,3,14,3,4,0 +4,42,23,2,3,20,4,2,0 +5,27,2.5,0,2,16,4,6,0 +5,22,6,0,3,14,3,5,0 +5,22,0.5,0,3,16,3,4,0 +4,22,0.5,0,3,12,2,2,0 +4,22,2.5,0,4,12,4,4,0 +5,27,2.5,1,3,14,3,4,0 +5,22,6,0,3,12,3,4,0 +4,22,2.5,0,4,14,3,4,0 +5,22,2.5,0,1,16,4,4,0 +5,32,13,1,3,12,3,4,0 +4,27,9,2,2,14,3,4,0 +4,27,9,1,2,12,3,4,0 +5,22,2.5,0,2,14,6,5,0 +4,32,13,1,3,14,3,5,0 +3,37,16.5,3,3,14,4,4,0 +3,22,2.5,1,3,16,6,4,0 +5,27,16.5,3,3,16,5,5,0 +5,42,23,2,3,12,5,5,0 +5,27,0.5,0,4,12,3,6,0 +5,32,16.5,2,1,16,4,5,0 +5,37,16.5,1,4,12,3,2,0 +5,27,9,1,3,12,3,2,0 +5,27,13,3,3,14,3,3,0 +5,22,2.5,0,3,14,3,4,0 +4,22,2.5,0,2,12,3,2,0 +5,32,16.5,3,4,12,3,5,0 +5,22,2.5,2,4,12,2,2,0 +5,27,9,2,4,14,3,4,0 +5,27,2.5,0,3,16,4,4,0 +4,32,13,2,4,14,3,5,0 +5,17.5,0.5,0,3,12,2,5,0 +5,42,23,3,4,14,3,6,0 +5,22,2.5,1,2,14,3,2,0 +5,27,9,2,3,17,4,6,0 +4,17.5,2.5,0,1,14,3,1,0 +2,22,6,0,2,14,5,2,0 +5,27,2.5,0,3,16,3,2,0 +4,27,6,1,3,16,4,5,0 +4,37,9,0,3,20,4,4,0 +4,22,2.5,0,1,16,3,5,0 +4,37,13,2,2,16,4,4,0 +5,37,16.5,3,4,17,4,4,0 +4,27,6,0,1,20,6,6,0 +4,27,6,0,3,16,4,5,0 +5,37,16.5,3,1,17,4,6,0 +5,27,6,2,3,14,3,4,0 +5,37,16.5,3,3,12,3,4,0 +5,42,23,1,4,12,3,4,0 +5,27,9,2,3,12,5,5,0 +5,27,13,2,2,14,2,4,0 +5,42,23,2,4,14,5,5,0 +5,42,23,5.5,4,14,5,4,0 +4,22,6,0,1,17,4,1,0 +4,27,2.5,0,4,16,3,1,0 +4,17.5,2.5,0,1,12,5,2,0 +3,27,9,0,2,16,4,4,0 +5,22,2.5,0,2,12,3,5,0 +4,27,9,2,3,12,3,2,0 +4,22,6,0,2,16,5,5,0 +4,22,0.5,0,1,14,1,1,0 +5,22,2.5,1,2,12,3,1,0 +5,27,9,2,3,12,5,5,0 +5,27,6,0,2,14,3,5,0 +4,22,2.5,0,3,14,2,2,0 +4,22,6,1,2,12,3,4,0 +5,22,2.5,1,3,14,3,4,0 +3,27,6,1,1,12,3,5,0 +5,37,16.5,4,3,20,4,2,0 +4,22,2.5,0,2,14,3,5,0 +4,32,13,2,3,14,5,5,0 +5,22,2.5,0,1,14,3,4,0 +5,27,2.5,0,2,14,3,4,0 +4,27,9,1,2,12,2,2,0 +5,22,2.5,0,2,14,3,4,0 +3,37,13,1,3,17,5,3,0 +5,42,23,3,4,12,2,2,0 +5,27,6,0,4,16,4,5,0 +2,27,6,0,2,14,3,4,0 +5,32,13,2,4,14,4,5,0 +5,22,2.5,0,1,17,4,4,0 +5,27,9,2,3,12,3,5,0 +5,27,6,0,2,16,6,6,0 +5,27,6,1,3,16,4,2,0 +4,22,9,1,1,12,2,2,0 +4,32,13,3,3,20,4,5,0 +4,22,2.5,0,1,14,3,2,0 +4,27,6,2,3,14,3,5,0 +5,42,23,4,2,12,3,6,0 +3,32,13,3,4,16,4,2,0 +3,22,0.5,0,3,12,3,1,0 +2,22,2.5,0,2,14,3,4,0 +3,37,23,4,2,14,4,2,0 +5,42,23,5.5,4,14,5,2,0 +5,37,23,3,3,12,4,5,0 +5,32,9,2,3,16,4,6,0 +5,32,23,2,3,12,2,2,0 +5,37,13,3,4,16,4,2,0 +5,32,16.5,5.5,2,12,3,2,0 +5,27,9,3,1,12,2,5,0 +4,17.5,2.5,0,2,14,3,3,0 +5,22,0.5,0,1,16,3,1,0 +5,22,2.5,0,3,14,3,2,0 +5,22,2.5,0,3,16,5,4,0 +5,32,9,0,4,20,6,6,0 +3,27,6,0,4,16,4,4,0 +5,22,2.5,0,1,14,3,4,0 +5,22,0.5,0,2,12,3,1,0 +4,27,13,2,4,14,4,4,0 +4,42,23,4,2,14,4,5,0 +5,22,2.5,0,3,16,5,3,0 +5,42,23,3,3,16,4,2,0 +5,22,2.5,0,1,14,6,6,0 +4,17.5,2.5,0,3,14,3,3,0 +5,27,2.5,2,1,14,2,3,0 +4,27,9,1,3,12,3,3,0 +5,22,0.5,0,3,16,4,4,0 +5,32,16.5,4,3,12,3,4,0 +5,32,13,2,4,12,3,3,0 +5,27,2.5,1,3,14,5,5,0 +5,42,23,1,3,12,3,4,0 +4,42,23,4,3,14,5,5,0 +4,22,0.5,0,2,14,4,4,0 +3,27,6,2,3,14,3,6,0 +5,22,2.5,0,1,14,3,5,0 +4,37,23,5.5,2,12,3,2,0 +5,37,16.5,3,2,14,3,4,0 +5,27,9,3,2,14,3,2,0 +5,22,2.5,0,3,14,3,2,0 +3,27,9,2,3,16,4,5,0 +3,22,2.5,0,2,12,3,5,0 +5,37,16.5,4,4,14,3,4,0 +4,22,9,1,3,12,3,4,0 +2,27,6,2,2,12,5,5,0 +5,22,2.5,0,3,14,5,4,0 +5,32,13,2,4,14,5,4,0 +4,22,2.5,0,2,16,3,5,0 +5,27,9,0,2,14,3,5,0 +5,32,9,0,4,20,4,6,0 +5,32,13,2,3,16,4,5,0 +5,17.5,2.5,0,4,14,3,4,0 +5,42,23,3,3,12,3,2,0 +5,22,0.5,0,2,14,4,2,0 +5,37,13,0,2,12,3,4,0 +4,22,2.5,0,3,14,3,3,0 +5,37,16.5,4,3,14,4,2,0 +4,42,23,4,3,16,3,5,0 +5,27,6,1,2,16,4,4,0 +5,32,13,3,2,16,4,4,0 +5,42,23,3,4,14,3,4,0 +4,22,2.5,0,3,14,3,4,0 +5,42,13,0,4,14,3,5,0 +4,27,2.5,0,1,14,3,2,0 +5,22,2.5,0,3,12,2,2,0 +4,22,6,0,2,17,4,1,0 +5,22,2.5,0,2,14,5,5,0 +5,32,16.5,3,3,12,3,2,0 +4,27,2.5,0,2,16,4,6,0 +4,22,2.5,0,2,14,4,3,0 +4,32,16.5,2,3,12,3,2,0 +2,22,2.5,0,2,14,3,4,0 +2,42,23,3,3,14,5,5,0 +4,42,23,4,3,12,5,2,0 +3,32,16.5,3,3,12,3,3,0 +5,37,16.5,2,4,12,5,5,0 +5,32,13,2,3,14,3,5,0 +4,22,2.5,0,2,16,3,2,0 +4,27,2.5,0,3,12,3,3,0 +3,42,23,4,4,20,6,6,0 +3,32,16.5,2,2,14,5,2,0 +5,22,0.5,1,2,14,3,5,0 +4,22,6,1,2,12,4,1,0 +5,27,6,0,3,17,5,6,0 +2,37,13,4,4,20,4,6,0 +4,27,2.5,0,3,20,4,3,0 +5,32,2.5,1,1,20,3,1,0 +5,37,16.5,3,3,12,5,5,0 +5,27,9,1,2,12,3,4,0 +4,32,13,2,3,12,3,2,0 +4,37,16.5,4,4,14,4,5,0 +5,17.5,0.5,0,2,12,2,2,0 +4,32,13,1,3,14,2,5,0 +5,37,23,5.5,4,17,5,6,0 +5,22,2.5,0,2,14,2,4,0 +4,22,2.5,0,2,14,3,4,0 +4,42,23,4,2,12,4,4,0 +5,42,23,4,3,14,3,4,0 +4,17.5,0.5,0,1,14,3,4,0 +5,22,0.5,0,4,20,4,1,0 +4,27,6,1,3,16,4,3,0 +4,42,23,2,2,14,3,5,0 +4,27,9,2,2,14,4,5,0 +4,27,6,1,1,12,4,1,0 +5,27,2.5,0,3,12,3,4,0 +4,22,2.5,0,2,14,2,2,0 +5,37,16.5,3,4,14,4,4,0 +5,27,6,0,2,14,2,4,0 +5,37,16.5,2,3,12,3,4,0 +2,32,9,3,1,16,4,4,0 +5,27,6,1,2,16,3,4,0 +4,37,23,3,3,20,4,4,0 +5,37,23,3,4,12,3,2,0 +4,27,6,2,3,14,3,5,0 +5,32,13,2,4,16,4,4,0 +4,27,6,1,3,17,4,4,0 +3,37,13,1,2,14,4,6,0 +5,37,16.5,2,4,14,3,6,0 +4,27,6,0,3,16,3,4,0 +4,42,13,0,3,14,5,5,0 +4,27,9,2,3,14,3,2,0 +4,22,6,1,3,12,3,4,0 +5,22,2.5,0,3,12,3,4,0 +5,22,2.5,0,2,14,2,4,0 +4,27,6,2,3,16,4,6,0 +4,27,2.5,0,1,12,3,6,0 +5,27,13,2,3,14,3,4,0 +4,27,6,1,1,16,2,4,0 +5,32,16.5,2,3,12,3,5,0 +5,27,2.5,0,2,12,3,5,0 +4,27,9,1,3,17,4,4,0 +5,37,16.5,3,2,12,4,4,0 +5,27,2.5,0,4,20,4,2,0 +5,27,2.5,0,3,16,4,4,0 +5,27,6,1,3,16,4,4,0 +5,22,2.5,0,2,14,3,4,0 +5,42,23,2,3,14,3,2,0 +5,27,9,2,3,20,4,5,0 +3,22,2.5,1,1,12,3,2,0 +5,22,2.5,0,2,14,3,4,0 +5,42,23,2,3,14,3,5,0 +5,32,16.5,3,1,14,4,5,0 +4,22,2.5,0,3,14,3,1,0 +5,32,9,2,4,16,4,5,0 +5,22,2.5,0,3,16,4,2,0 +4,27,9,2,3,16,4,4,0 +4,37,16.5,3,3,12,3,6,0 +3,27,9,1,4,14,6,4,0 +5,32,16.5,3,4,12,4,4,0 +4,32,16.5,3,2,12,3,4,0 +5,32,16.5,2,4,12,4,3,0 +3,22,2.5,0,2,16,2,5,0 +5,22,2.5,0,4,14,3,3,0 +4,27,16.5,1,3,14,4,4,0 +5,27,6,0,3,16,3,6,0 +5,27,0.5,0,2,17,4,3,0 +5,22,2.5,1,2,14,4,4,0 +4,27,6,2,2,17,4,6,0 +3,22,2.5,1,2,14,3,5,0 +5,22,2.5,0,2,12,2,4,0 +5,22,2.5,0,3,17,4,4,0 +5,42,23,4,4,16,4,4,0 +5,22,0.5,0,2,17,3,4,0 +4,27,9,2,3,12,3,4,0 +5,22,2.5,0,4,16,4,5,0 +3,27,6,2,4,17,2,4,0 +5,22,2.5,0,3,12,3,4,0 +5,27,6,0,3,14,3,3,0 +3,42,23,2,3,14,3,2,0 +5,27,9,0,1,14,3,5,0 +3,27,2.5,0,2,20,6,4,0 +4,27,16.5,2,3,12,5,5,0 +4,32,9,1,3,16,4,5,0 +4,42,23,5.5,4,14,5,5,0 +4,22,2.5,0,3,12,2,1,0 +5,27,2.5,0,3,20,4,6,0 +5,22,2.5,0,2,14,4,4,0 +3,22,2.5,2,3,12,3,2,0 +4,42,23,3,2,14,3,4,0 +4,22,2.5,0,2,16,3,1,0 +5,22,2.5,0,2,14,3,3,0 +5,27,6,0,1,17,4,5,0 +5,32,13,2,3,14,2,2,0 +5,17.5,2.5,0,4,12,3,1,0 +5,42,23,5.5,4,14,4,6,0 +5,37,13,2,3,16,4,4,0 +4,32,16.5,3,3,14,2,6,0 +2,17.5,2.5,1,3,14,3,2,0 +4,22,2.5,0,3,16,4,4,0 +5,22,2.5,0,2,14,5,5,0 +3,32,6,1,2,14,5,4,0 +4,27,2.5,0,2,16,4,1,0 +3,42,13,0,3,14,4,5,0 +5,27,9,2,4,14,5,4,0 +3,22,2.5,0,2,14,3,2,0 +5,32,6,1,4,16,4,5,0 +5,32,13,2,3,16,4,4,0 +3,22,6,1,3,12,3,4,0 +5,27,2.5,0,2,17,6,6,0 +5,22,6,1,2,14,4,4,0 +5,22,6,0,3,12,5,4,0 +4,27,6,0,4,17,4,5,0 +4,27,2.5,0,2,14,3,6,0 +5,22,2.5,2,3,14,4,4,0 +4,22,2.5,0,2,12,3,3,0 +5,27,2.5,0,4,16,5,2,0 +4,22,2.5,0,3,14,3,1,0 +4,37,16.5,5.5,3,14,2,4,0 +5,22,2.5,1,2,12,5,2,0 +4,22,2.5,0,2,14,5,5,0 +5,42,23,5.5,4,17,4,6,0 +5,22,2.5,0,3,14,3,3,0 +4,32,13,1,3,20,6,5,0 +5,22,2.5,0,2,12,3,4,0 +5,27,9,2,2,14,3,4,0 +5,32,16.5,2,4,14,5,4,0 +5,27,9,3,3,14,3,2,0 +5,32,13,2,2,14,3,6,0 +4,37,16.5,3,3,14,5,4,0 +4,27,6,1,3,14,3,4,0 +4,27,6,2,3,16,4,2,0 +4,22,2.5,0,3,14,3,4,0 +4,17.5,0.5,0,3,12,3,4,0 +5,17.5,0.5,0,3,12,3,1,0 +5,22,2.5,0,1,14,3,2,0 +5,32,16.5,2,2,12,3,5,0 +5,42,23,3,3,17,4,5,0 +5,22,2.5,1,4,12,5,4,0 +4,27,6,1,3,14,3,4,0 +3,22,2.5,0,2,12,3,3,0 +5,22,2.5,0,3,16,2,5,0 +5,17.5,2.5,0,3,12,2,1,0 +4,17.5,2.5,0,3,12,2,4,0 +5,27,2.5,0,4,12,3,6,0 +5,22,2.5,0,3,16,4,5,0 +4,42,23,3,1,14,5,4,0 +5,42,23,2,3,14,5,5,0 +4,22,6,2,2,12,3,4,0 +4,32,13,2,3,16,5,2,0 +4,37,16.5,3,3,14,4,4,0 +5,32,16.5,5.5,4,12,3,4,0 +4,32,9,1,2,12,2,3,0 +5,22,2.5,0,4,14,1,2,0 +5,17.5,2.5,0,3,14,4,1,0 +5,22,2.5,0,3,12,3,4,0 +5,27,2.5,0,2,16,5,5,0 +5,27,6,1,4,14,3,3,0 +5,32,13,2,4,14,3,4,0 +3,37,16.5,5.5,3,12,2,4,0 +3,32,9,3,3,16,4,5,0 +5,27,2.5,0,2,16,4,6,0 +5,32,16.5,3,2,12,3,2,0 +5,27,0.5,0,4,17,4,4,0 +4,22,6,1,2,16,4,4,0 +4,22,0.5,0,3,14,3,2,0 +5,22,6,3,1,12,4,4,0 +4,22,0.5,0,3,14,2,4,0 +5,22,2.5,1,3,14,3,5,0 +3,37,23,5.5,3,16,4,6,0 +2,22,2.5,0,3,14,3,2,0 +5,27,9,1,1,14,4,4,0 +5,22,2.5,0,2,12,2,3,0 +3,37,16.5,3,1,16,3,6,0 +3,27,2.5,1,2,14,2,4,0 +4,42,23,2,3,14,4,5,0 +3,27,2.5,2,2,14,4,4,0 +4,22,2.5,0,1,14,5,4,0 +5,22,0.5,0,3,16,4,2,0 +4,27,6,2,1,16,4,4,0 +4,22,6,1,2,12,2,5,0 +5,32,13,3,3,16,4,4,0 +4,32,16.5,1,3,12,4,2,0 +5,27,2.5,0,4,12,3,5,0 +5,17.5,2.5,1,1,12,3,4,0 +5,22,2.5,1,3,14,4,1,0 +5,32,9,0,4,20,4,5,0 +5,22,0.5,0,1,16,4,5,0 +5,32,9,0,1,16,3,5,0 +4,42,23,3,3,12,3,5,0 +4,22,2.5,0,3,14,2,2,0 +5,32,13,1,3,16,3,5,0 +5,22,6,1,1,12,3,4,0 +2,42,23,4,2,14,4,5,0 +5,22,2.5,0,4,12,4,4,0 +5,32,13,2,2,14,3,4,0 +5,22,0.5,0,3,14,3,4,0 +5,22,2.5,0,1,17,4,1,0 +5,22,2.5,0,1,14,4,1,0 +4,42,23,5.5,3,16,5,5,0 +5,22,2.5,0,3,16,3,5,0 +4,37,13,1,4,20,6,4,0 +5,27,2.5,0,2,20,4,4,0 +3,22,0.5,1,4,12,5,4,0 +4,27,2.5,1,3,14,5,5,0 +5,22,2.5,0,1,12,2,4,0 +5,22,6,2,2,12,2,4,0 +4,27,6,2,1,14,5,5,0 +5,22,0.5,0,2,17,3,1,0 +3,27,9,1,2,14,3,4,0 +5,42,23,4,3,14,5,5,0 +5,22,2.5,0,1,14,3,4,0 +4,22,2.5,1,2,12,3,4,0 +5,32,2.5,0,3,16,4,5,0 +4,27,2.5,0,1,20,4,4,0 +4,27,2.5,0,3,17,4,1,0 +4,22,2.5,0,2,14,3,2,0 +4,32,13,2,2,17,4,6,0 +5,17.5,0.5,0,4,12,4,5,0 +3,37,16.5,3,3,14,3,4,0 +4,27,6,1,2,14,3,1,0 +4,22,2.5,0,3,14,3,4,0 +4,22,2.5,0,1,14,3,3,0 +3,22,2.5,1,3,14,3,2,0 +4,32,13,2,3,12,5,4,0 +5,42,23,2,3,12,2,3,0 +5,32,9,0,3,16,5,4,0 +5,32,6,2,2,17,6,6,0 +5,22,6,1,2,14,3,4,0 +3,37,13,1,3,20,4,4,0 +3,42,23,5.5,2,14,3,4,0 +4,22,2.5,0,2,14,3,6,0 +4,22,0.5,0,3,14,1,1,0 +4,22,0.5,0,3,14,3,4,0 +5,27,2.5,0,3,14,4,1,0 +5,27,0.5,0,1,14,2,6,0 +4,37,23,5.5,4,14,4,4,0 +4,22,2.5,0,1,14,4,2,0 +4,27,2.5,3,1,16,3,4,0 +4,22,0.5,0,2,14,2,2,0 +3,37,9,2,3,16,4,5,0 +5,37,16.5,3,4,14,4,2,0 +3,27,6,0,1,17,2,6,0 +3,27,9,3,2,12,2,2,0 +4,22,2.5,0,2,14,3,4,0 +5,42,23,3,4,16,4,5,0 +5,27,2.5,1,3,16,5,5,0 +5,22,0.5,0,3,17,4,4,0 +5,27,2.5,0,3,16,3,1,0 +4,22,2.5,0,1,14,5,2,0 +4,27,9,2,3,14,5,5,0 +5,37,16.5,2,3,12,2,4,0 +4,22,6,2,2,12,3,5,0 +4,32,16.5,4,2,16,5,6,0 +5,22,2.5,0,2,14,3,6,0 +4,32,2.5,0,2,12,3,4,0 +5,37,23,5.5,4,12,2,5,0 +5,22,0.5,0,2,12,3,4,0 +5,27,6,1,1,16,2,1,0 +4,22,2.5,2,2,12,3,2,0 +5,22,2.5,0,2,14,6,4,0 +4,32,13,2,4,14,3,6,0 +4,27,9,2,2,20,4,5,0 +4,22,2.5,1,2,12,3,4,0 +3,22,2.5,1,2,14,5,5,0 +5,22,2.5,0,3,14,3,4,0 +3,22,2.5,0,2,16,3,5,0 +5,22,0.5,0,4,14,5,5,0 +5,42,9,0,3,16,4,4,0 +4,32,9,1,3,17,5,4,0 +5,32,6,2,4,17,2,6,0 +5,27,6,0,2,20,4,5,0 +5,27,6,2,4,16,4,4,0 +5,22,2.5,1,3,12,4,4,0 +5,22,2.5,0,2,14,4,4,0 +4,22,2.5,0,3,16,4,6,0 +4,22,2.5,1,2,14,3,2,0 +5,42,23,2,3,14,3,5,0 +5,32,13,0,2,16,3,5,0 +5,22,2.5,0,1,12,3,1,0 +5,22,9,3,2,14,5,4,0 +5,27,0.5,0,2,16,3,5,0 +3,32,6,0,2,9,2,2,0 +5,22,2.5,0,1,17,1,1,0 +4,32,16.5,5.5,2,16,4,4,0 +4,37,6,1,3,20,6,6,0 +5,42,23,2,2,17,3,5,0 +5,27,2.5,0,3,17,5,5,0 +5,42,23,2,3,14,5,5,0 +5,27,6,2,1,14,5,5,0 +5,32,13,2,3,17,4,5,0 +5,22,2.5,0,2,16,4,5,0 +5,22,2.5,0,1,14,3,4,0 +5,22,2.5,0,3,12,3,2,0 +2,32,13,4,3,12,3,2,0 +5,37,16.5,4,4,16,4,2,0 +5,37,16.5,5.5,4,12,3,6,0 +4,22,6,2,1,12,3,4,0 +3,37,9,0,4,12,3,3,0 +4,27,6,1,1,17,4,4,0 +5,22,2.5,1,2,12,3,3,0 +4,22,2.5,1,3,14,4,4,0 +5,32,13,2,3,12,3,5,0 +5,27,2.5,0,3,17,4,2,0 +4,27,6,3,4,14,4,2,0 +3,22,6,1,1,12,3,6,0 +4,22,2.5,0,4,17,4,4,0 +5,27,9,0,4,20,4,6,0 +3,42,23,4,4,14,5,4,0 +4,32,16.5,4,3,14,3,3,0 +5,22,2.5,0,4,16,3,3,0 +5,27,0.5,0,2,16,4,4,0 +5,37,23,3,2,14,4,5,0 +5,27,2.5,0,1,12,3,4,0 +5,22,2.5,1,4,12,3,2,0 +5,22,2.5,2,1,16,3,6,0 +5,27,2.5,0,3,14,3,5,0 +4,27,6,1,2,17,4,5,0 +2,27,2.5,1,3,12,4,5,0 +4,37,16.5,3,3,14,3,2,0 +4,32,16.5,2,3,16,4,4,0 +4,27,6,0,1,20,4,1,0 +5,27,9,3,3,12,2,4,0 +4,27,2.5,0,3,17,4,5,0 +3,22,6,1,2,16,1,3,0 +2,27,9,2,3,14,3,2,0 +5,27,9,3,3,14,3,4,0 +5,22,0.5,0,3,14,3,1,0 +4,27,9,2,3,12,2,4,0 +5,32,13,2,3,12,3,4,0 +5,27,0.5,0,2,16,5,4,0 +4,42,23,5.5,3,12,5,4,0 +4,22,2.5,0,3,16,3,5,0 +5,22,0.5,0,3,12,3,4,0 +4,22,6,1,2,14,4,3,0 +3,27,13,2,2,12,2,4,0 +5,27,2.5,0,2,16,5,4,0 +5,22,2.5,0,2,14,3,5,0 +5,27,2.5,0,1,16,2,2,0 +3,32,13,2,3,14,3,5,0 +5,22,0.5,0,2,16,3,4,0 +3,42,23,5.5,3,17,5,2,0 +2,22,2.5,2,3,12,2,2,0 +4,37,16.5,1,3,12,3,5,0 +4,27,2.5,0,1,20,6,6,0 +5,22,2.5,0,3,12,2,5,0 +4,22,2.5,0,3,14,3,1,0 +5,42,23,4,3,14,4,4,0 +5,22,2.5,0,2,14,4,6,0 +5,32,16.5,3,3,12,2,5,0 +5,22,2.5,0,2,17,4,2,0 +5,37,23,5.5,4,12,5,3,0 +5,37,16.5,3,2,12,3,4,0 +5,22,2.5,0,3,12,2,2,0 +5,27,2.5,0,2,16,4,4,0 +2,22,2.5,0,3,14,3,4,0 +3,37,16.5,2,3,14,5,4,0 +3,37,16.5,2,3,14,3,3,0 +3,32,13,2,4,16,3,3,0 +5,32,13,0,1,14,4,4,0 +4,32,9,3,3,14,1,4,0 +5,32,13,2,2,17,4,5,0 +4,27,2.5,0,1,14,2,2,0 +3,27,13,0,3,12,3,4,0 +2,37,9,0,2,16,4,4,0 +4,42,9,0,1,14,3,2,0 +5,22,0.5,0,3,14,4,5,0 +5,42,23,2,3,12,3,6,0 +5,27,2.5,0,3,16,5,5,0 +5,42,23,4,3,14,3,5,0 +3,42,23,4,3,12,2,4,0 +4,27,6,1,3,14,3,6,0 +5,22,2.5,0,1,14,3,4,0 +4,22,0.5,0,4,16,5,1,0 +5,27,6,1,3,20,4,4,0 +5,22,2.5,0,3,14,5,1,0 +3,27,9,2,3,14,2,1,0 +5,27,6,0,4,14,3,3,0 +5,32,6,1,3,20,2,5,0 +4,22,2.5,1,2,12,2,2,0 +5,27,6,0,2,14,3,4,0 +4,32,9,2,2,16,4,4,0 +5,32,13,0,1,16,4,5,0 +4,32,13,3,2,12,2,5,0 +3,32,2.5,0,2,14,5,3,0 +5,22,2.5,1,3,12,3,4,0 +5,32,13,2,2,14,3,3,0 +4,27,6,0,2,14,3,3,0 +4,22,2.5,0,3,16,4,6,0 +3,32,2.5,0,1,17,5,6,0 +5,32,6,0,2,17,4,5,0 +4,42,13,0,2,14,2,2,0 +4,22,6,2,4,12,4,4,0 +3,17.5,0.5,0,2,14,3,2,0 +3,42,23,5.5,3,14,2,4,0 +5,32,16.5,2,2,14,5,5,0 +5,22,0.5,0,1,12,2,4,0 +5,22,6,2,3,12,2,4,0 +5,27,2.5,0,2,20,4,6,0 +4,22,2.5,0,1,16,5,6,0 +4,27,9,0,2,14,3,4,0 +4,32,9,1,2,14,3,2,0 +5,22,2.5,0,1,14,3,1,0 +4,32,16.5,3,4,16,4,6,0 +4,42,16.5,4,4,14,3,4,0 +4,22,0.5,0,1,12,2,2,0 +5,32,13,3,4,14,3,4,0 +5,32,13,3,2,14,2,3,0 +3,42,23,3,4,12,3,2,0 +5,22,2.5,0,2,14,3,1,0 +5,27,9,2,3,16,4,4,0 +5,27,2.5,0,3,20,4,6,0 +5,17.5,2.5,0,4,14,2,2,0 +5,27,6,1,1,14,3,4,0 +5,22,2.5,0,3,16,2,2,0 +4,22,2.5,0,2,14,3,1,0 +4,37,16.5,3,3,12,4,4,0 +3,42,23,5.5,4,12,2,4,0 +5,22,2.5,0,1,14,2,2,0 +4,32,2.5,0,2,14,4,3,0 +3,32,13,1,1,14,2,2,0 +5,27,6,1,1,16,4,2,0 +4,27,6,2,3,17,6,5,0 +5,37,13,2,3,20,4,6,0 +5,22,0.5,0,3,16,3,6,0 +4,22,2.5,0,2,16,5,4,0 +5,22,2.5,0,3,12,3,2,0 +5,27,6,0,2,14,3,3,0 +5,22,2.5,0,3,12,2,4,0 +5,27,6,2,2,12,2,2,0 +4,42,23,4,1,14,4,4,0 +5,27,6,0,1,14,3,5,0 +3,37,16.5,5.5,3,14,3,2,0 +5,32,16.5,2,3,12,3,2,0 +4,22,0.5,0,2,16,4,5,0 +5,22,2.5,0,3,12,3,5,0 +4,32,9,2,2,16,4,4,0 +4,27,2.5,0,3,17,4,4,0 +5,27,6,2,4,14,3,4,0 +3,32,13,1,1,14,3,6,0 +5,32,13,3,4,14,5,5,0 +5,37,2.5,0,2,12,2,4,0 +5,42,23,2,1,12,5,2,0 +4,32,9,3,3,14,5,5,0 +5,37,13,0,1,16,3,5,0 +4,27,6,1,2,14,3,5,0 +4,32,2.5,0,3,16,2,5,0 +3,42,23,3,2,12,2,2,0 +4,37,16.5,2,3,14,3,5,0 +5,37,16.5,1,4,17,4,4,0 +4,27,2.5,0,1,16,4,5,0 +4,37,16.5,2,2,14,3,5,0 +4,22,2.5,0,2,12,3,2,0 +3,32,6,2,3,20,4,2,0 +5,42,23,2,1,12,3,2,0 +5,37,16.5,3,3,14,3,6,0 +3,37,16.5,3,2,12,2,3,0 +5,32,16.5,4,3,12,3,5,0 +4,27,9,2,2,12,3,4,0 +5,32,16.5,1,1,14,2,2,0 +4,27,6,0,2,16,5,5,0 +5,22,2.5,0,2,14,4,2,0 +3,32,13,2,2,14,3,2,0 +5,42,23,1,3,14,3,5,0 +5,22,0.5,0,2,14,2,5,0 +5,32,2.5,0,2,14,5,2,0 +5,42,23,2,4,14,3,5,0 +3,37,23,3,3,12,5,5,0 +5,27,2.5,0,3,17,4,5,0 +5,27,2.5,0,1,17,4,6,0 +5,32,13,0,2,20,5,4,0 +3,42,23,4,2,14,6,6,0 +3,22,2.5,0,3,14,4,4,0 +5,27,6,1,2,17,4,4,0 +4,27,9,3,1,12,2,2,0 +5,27,9,1,2,12,3,4,0 +5,42,23,2,4,12,2,2,0 +5,42,23,2,2,12,3,2,0 +4,22,2.5,1,2,14,3,4,0 +3,42,23,2,2,20,4,4,0 +4,22,0.5,0,1,14,3,3,0 +5,37,16.5,2,1,16,4,6,0 +5,22,6,0,2,14,3,4,0 +5,37,9,1,2,14,3,5,0 +3,22,6,1,2,14,4,5,0 +5,27,2.5,0,2,14,3,4,0 +5,27,6,2,3,14,3,5,0 +4,17.5,2.5,1,2,12,2,2,0 +5,42,23,3,3,12,3,5,0 +5,27,2.5,1,3,17,4,4,0 +3,22,2.5,0,3,14,3,4,0 +5,27,2.5,2,2,14,3,4,0 +4,27,2.5,1,2,16,4,6,0 +5,27,2.5,1,1,14,2,2,0 +5,27,2.5,0,1,16,4,4,0 +5,27,2.5,0,4,14,5,5,0 +5,32,9,2,3,16,4,2,0 +5,42,23,1,3,14,2,5,0 +4,32,9,2,1,17,4,4,0 +4,22,2.5,0,3,14,3,1,0 +4,27,6,1,3,17,4,4,0 +5,22,2.5,0,1,14,4,2,0 +5,22,2.5,0,1,12,3,5,0 +4,27,2.5,1,2,14,5,5,0 +4,22,2.5,0,1,14,3,4,0 +4,27,6,0,3,20,6,6,0 +5,27,2.5,0,2,14,5,4,0 +5,32,16.5,2,3,12,3,2,0 +5,32,13,0,1,16,4,6,0 +4,27,9,0,4,14,3,4,0 +5,37,16.5,2,2,16,4,5,0 +5,32,16.5,4,2,16,4,5,0 +5,27,6,0,2,16,3,5,0 +5,27,6,2,1,16,3,5,0 +5,22,2.5,1,4,14,2,4,0 +3,32,2.5,1,2,14,3,3,0 +5,22,6,0,2,12,2,2,0 +5,42,23,2,2,12,4,4,0 +5,22,2.5,0,3,16,3,2,0 +4,37,9,2,3,20,4,2,0 +5,32,13,2,1,16,4,5,0 +5,42,23,1,4,20,4,4,0 +5,27,6,0,3,14,4,5,0 +3,42,23,2,2,17,3,4,0 +4,22,2.5,1,1,14,3,4,0 +4,37,16.5,3,2,14,3,3,0 +4,22,2.5,0,2,14,3,3,0 +3,27,6,0,1,16,5,5,0 +4,27,9,2,3,17,6,6,0 +4,37,16.5,2,4,14,5,5,0 +5,27,2.5,0,4,16,4,6,0 +5,42,23,2,3,12,2,4,0 +4,32,13,1,3,14,4,4,0 +5,42,23,5.5,3,12,3,5,0 +5,22,0.5,0,3,16,3,2,0 +5,27,2.5,1,1,14,3,5,0 +3,27,9,1,2,12,3,4,0 +5,42,13,5.5,2,12,3,5,0 +4,27,6,1,3,12,3,2,0 +5,22,2.5,0,3,14,3,2,0 +4,32,13,2,2,14,3,5,0 +4,42,23,2,2,14,3,4,0 +4,37,23,5.5,4,12,3,5,0 +3,22,2.5,0,2,14,4,2,0 +5,27,6,2,1,20,5,5,0 +4,27,2.5,2,2,16,4,6,0 +4,22,0.5,0,1,16,4,2,0 +2,32,16.5,4,2,14,4,2,0 +5,22,2.5,0,2,14,3,4,0 +5,22,2.5,0,4,16,2,4,0 +2,27,2.5,2,4,12,2,4,0 +4,27,2.5,1,2,14,5,2,0 +5,22,2.5,0,3,16,3,4,0 +5,27,16.5,3,2,14,2,4,0 +4,22,2.5,0,4,16,3,3,0 +5,42,23,5.5,4,14,3,5,0 +3,27,6,3,3,14,4,2,0 +5,27,2.5,2,1,14,4,6,0 +5,27,6,1,3,14,5,5,0 +4,27,16.5,2,3,14,3,5,0 +2,27,2.5,1,2,14,3,3,0 +2,32,13,2,1,12,2,2,0 +5,37,16.5,5.5,2,12,3,5,0 +5,42,23,3,3,12,2,2,0 +4,42,23,2,2,14,3,3,0 +5,22,2.5,1,2,12,3,4,0 +5,27,13,2,2,14,3,4,0 +5,32,6,2,4,20,6,6,0 +4,42,23,4,4,14,4,4,0 +5,37,16.5,2,2,14,3,5,0 +4,22,2.5,0,1,12,3,3,0 +4,22,2.5,0,4,14,3,5,0 +3,22,6,1,3,12,3,2,0 +4,27,6,2,3,14,3,3,0 +4,37,16.5,3,3,14,4,3,0 +2,42,13,0,2,12,3,4,0 +5,27,2.5,0,3,14,3,3,0 +4,27,6,1,3,14,3,4,0 +4,27,9,2,2,12,3,5,0 +5,22,2.5,0,1,16,6,4,0 +4,42,23,3,2,14,3,5,0 +4,32,9,3,2,16,3,5,0 +4,22,2.5,0,2,14,3,2,0 +4,27,6,2,4,17,4,2,0 +5,27,2.5,0,3,20,5,6,0 +5,27,6,0,4,14,3,4,0 +5,37,16.5,2,2,12,3,4,0 +4,37,16.5,2,2,14,4,4,0 +4,27,2.5,0,1,17,4,1,0 +4,27,13,2,2,12,3,4,0 +3,22,2.5,0,1,12,3,4,0 +3,37,16.5,2,3,12,3,4,0 +3,22,2.5,0,1,14,3,1,0 +4,27,2.5,1,1,17,4,4,0 +5,32,13,2,3,12,3,5,0 +5,42,13,0,3,12,5,2,0 +4,42,23,2,2,12,4,4,0 +4,27,9,2,2,14,2,3,0 +5,22,2.5,0,1,14,3,1,0 +5,27,6,2,3,16,5,4,0 +3,22,2.5,1,4,14,2,2,0 +4,32,16.5,3,2,14,3,5,0 +5,27,2.5,1,3,17,1,6,0 +4,27,6,0,2,17,4,4,0 +5,42,23,3,3,14,3,5,0 +5,27,2.5,0,1,20,4,5,0 +4,37,16.5,4,2,14,1,4,0 +5,17.5,0.5,0,3,12,3,4,0 +5,42,23,3,1,20,4,6,0 +5,32,13,2,4,14,3,5,0 +4,37,16.5,4,2,14,2,4,0 +5,32,16.5,2,2,14,3,4,0 +5,32,9,2,2,12,4,2,0 +5,42,23,5.5,3,12,5,4,0 +5,42,23,5.5,1,12,3,5,0 +5,27,6,0,1,12,3,4,0 +4,27,6,0,2,14,2,2,0 +4,22,6,2,2,12,2,4,0 +5,22,0.5,0,3,12,2,2,0 +3,32,6,0,1,20,4,2,0 +5,37,16.5,3,3,16,4,4,0 +5,42,23,1,3,16,5,5,0 +5,27,0.5,0,3,20,4,4,0 +4,27,9,2,1,12,4,5,0 +5,42,23,5.5,2,14,4,4,0 +4,42,23,3,2,14,3,3,0 +4,37,16.5,4,3,14,2,4,0 +4,27,9,1,4,12,4,5,0 +4,22,2.5,0,2,12,3,3,0 +5,32,9,2,2,16,3,2,0 +4,22,2.5,0,1,14,2,2,0 +4,32,6,1,4,17,4,6,0 +5,22,6,1,2,12,2,4,0 +5,32,13,1,3,16,5,6,0 +5,27,9,0,4,14,3,5,0 +5,27,13,2,3,17,4,4,0 +4,27,6,0,3,14,3,6,0 +4,32,9,2,4,16,4,5,0 +4,37,23,5.5,2,14,4,4,0 +2,22,6,0,2,14,3,5,0 +4,22,2.5,0,3,16,4,3,0 +3,27,9,3,4,14,2,2,0 +5,37,16.5,3,3,14,3,3,0 +3,37,23,4,2,14,5,4,0 +1,42,13,2,1,14,5,5,0 +5,17.5,0.5,0,4,12,1,4,0 +4,32,23,3,2,9,2,6,0 +5,37,13,2,2,16,5,2,0 +5,22,2.5,0,3,17,5,5,0 +5,22,2.5,1,3,14,3,5,0 +4,42,23,4,2,14,6,2,0 +2,42,16.5,2,3,14,3,5,0 +5,27,2.5,1,3,16,4,2,0 +5,22,2.5,0,3,14,3,4,0 +4,27,2.5,1,2,14,3,3,0 +4,42,23,2,3,16,3,6,0 +4,37,23,3,2,12,2,2,0 +4,32,9,3,3,16,4,4,0 +3,27,6,0,2,14,4,2,0 +4,27,2.5,0,1,16,4,2,0 +4,27,9,2,3,14,3,4,0 +5,22,2.5,0,2,14,3,1,0 +5,27,6,2,3,12,2,2,0 +4,27,6,0,4,9,2,2,0 +4,32,13,3,2,14,3,5,0 +1,42,23,3,3,12,2,3,0 +3,22,2.5,1,3,12,3,2,0 +4,27,16.5,2,1,12,2,4,0 +3,22,2.5,0,3,14,4,5,0 +4,22,2.5,1,1,14,4,4,0 +5,27,6,2,2,14,1,2,0 +4,27,9,4,3,14,2,5,0 +4,22,0.5,0,3,17,4,1,0 +4,27,2.5,1,3,16,4,2,0 +5,22,2.5,1,2,14,2,2,0 +5,22,0.5,0,3,14,3,5,0 +5,32,16.5,4,2,14,4,6,0 +4,22,2.5,0,1,16,2,5,0 +3,27,9,2,2,14,3,5,0 +5,22,0.5,0,3,17,4,5,0 +4,42,13,2,3,16,5,5,0 +5,27,2.5,0,3,16,4,5,0 +4,27,6,0,3,16,4,2,0 +5,22,2.5,1,1,16,3,2,0 +5,32,16.5,2,2,14,5,5,0 +5,27,6,0,3,12,3,2,0 +5,37,16.5,2,1,14,5,2,0 +3,27,6,0,2,16,5,4,0 +5,32,9,2,2,12,3,2,0 +4,27,13,2,1,14,4,4,0 +5,22,2.5,0,1,12,2,4,0 +5,27,2.5,0,3,14,3,5,0 +2,22,2.5,1,3,16,3,2,0 +5,42,13,1,3,12,2,6,0 +3,32,16.5,3,3,14,3,5,0 +4,27,6,2,2,14,2,3,0 +5,42,23,2,2,14,3,2,0 +4,42,23,3,4,16,3,5,0 +4,37,16.5,1,2,12,2,4,0 +4,32,16.5,3,4,12,2,2,0 +5,22,2.5,2,1,14,3,4,0 +3,27,6,0,1,14,3,4,0 +5,32,16.5,3,1,12,2,5,0 +5,27,9,2,2,14,3,5,0 +5,27,6,2,2,12,2,2,0 +4,27,6,1,2,14,4,5,0 +5,27,16.5,1,2,14,3,2,0 +5,17.5,0.5,0,3,14,3,5,0 +4,42,23,2,1,12,3,4,0 +4,37,16.5,3,1,12,4,4,0 +5,42,23,3,2,14,5,4,0 +5,27,2.5,0,1,16,3,2,0 +4,37,23,3,2,12,3,5,0 +5,27,2.5,0,2,14,5,1,0 +3,17.5,2.5,0,2,12,1,2,0 +4,42,23,1,3,12,3,3,0 +5,22,2.5,0,2,14,3,4,0 +3,22,2.5,1,3,14,5,4,0 +5,17.5,0.5,0,1,12,3,2,0 +5,32,6,1,1,17,4,6,0 +3,27,2.5,0,1,17,4,2,0 +3,37,16.5,3,4,14,4,6,0 +5,22,2.5,0,2,16,4,5,0 +5,22,2.5,0,2,16,4,4,0 +5,32,16.5,3,4,14,4,5,0 +4,27,6,1,1,14,3,5,0 +4,22,0.5,0,3,16,4,1,0 +4,22,2.5,0,4,14,3,5,0 +4,32,16.5,2,3,12,3,4,0 +4,22,2.5,0,1,12,2,4,0 +3,27,2.5,0,2,12,3,1,0 +4,22,2.5,0,1,16,3,4,0 +4,27,6,1,2,14,5,5,0 +4,32,16.5,4,4,14,3,5,0 +1,27,6,0,2,14,4,5,0 +5,27,6,2,4,14,3,2,0 +5,32,16.5,3,1,12,2,5,0 +5,22,2.5,0,3,12,5,4,0 +4,27,0.5,0,2,14,3,5,0 +4,17.5,2.5,1,1,12,2,4,0 +5,42,23,2,3,14,3,5,0 +4,37,9,1,3,12,2,5,0 +5,42,23,3,3,16,3,3,0 +5,22,2.5,0,2,14,1,4,0 +5,42,23,3,3,12,4,5,0 +3,22,2.5,0,4,14,3,5,0 +5,27,9,2,2,12,3,3,0 +4,37,16.5,2,4,14,4,4,0 +4,42,23,3,1,12,3,5,0 +4,27,16.5,2,3,16,3,4,0 +5,32,2.5,0,4,17,5,4,0 +5,27,9,1,2,12,3,5,0 +5,27,6,0,1,14,3,4,0 +1,37,13,2,1,17,4,4,0 +2,17.5,0.5,0,2,12,3,2,0 +5,27,6,2,2,14,3,3,0 +4,42,23,3,2,12,5,6,0 +5,32,23,3,2,12,3,4,0 +4,32,13,3,2,14,4,6,0 +4,17.5,0.5,0,2,16,4,4,0 +5,27,0.5,0,3,14,2,2,0 +4,27,6,0,2,16,4,4,0 +5,32,13,3,3,16,4,5,0 +4,22,2.5,0,1,17,4,5,0 +5,32,2.5,0,1,20,2,1,0 +2,32,16.5,3,4,12,5,5,0 +3,32,9,0,4,20,4,4,0 +3,22,0.5,0,2,17,1,5,0 +4,27,9,2,2,12,3,2,0 +5,42,23,3,3,12,5,4,0 +5,22,2.5,0,3,16,4,5,0 +5,22,2.5,1,1,14,2,2,0 +5,42,23,3,2,12,5,5,0 +5,37,16.5,4,3,20,4,4,0 +4,22,2.5,1,3,12,3,4,0 +3,27,6,1,1,17,5,6,0 +2,27,2.5,0,3,12,3,2,0 +4,22,6,2,2,12,4,4,0 +5,27,9,0,1,17,4,6,0 +4,22,2.5,2,2,12,3,2,0 +4,22,2.5,1,2,12,3,1,0 +4,42,23,2,2,12,2,5,0 +3,32,6,0,1,16,4,4,0 +5,22,2.5,1,3,17,4,4,0 +5,22,2.5,0,2,12,4,1,0 +4,37,23,2,3,20,4,4,0 +3,27,6,1,2,12,4,2,0 +5,32,13,3,2,14,4,5,0 +4,32,16.5,2,2,14,3,4,0 +5,42,23,3,2,14,3,4,0 +4,32,13,2,4,14,2,4,0 +4,32,6,0,2,14,3,5,0 +4,42,23,2,3,14,5,5,0 +5,22,2.5,0,2,14,3,2,0 +4,27,6,0,1,16,3,2,0 +5,27,2.5,0,4,14,3,6,0 +2,22,2.5,0,3,16,4,5,0 +5,27,6,1,2,16,4,6,0 +5,27,6,0,2,17,4,6,0 +5,27,6,1,2,12,5,5,0 +4,22,2.5,0,2,16,3,4,0 +4,27,9,1,1,14,3,4,0 +4,32,6,2,1,17,4,4,0 +5,22,0.5,0,2,14,3,1,0 +5,22,2.5,2,3,14,4,4,0 +4,22,2.5,0,3,12,3,4,0 +4,32,16.5,2,2,9,3,5,0 +5,27,6,0,1,14,3,5,0 +5,22,6,2,3,12,2,4,0 +5,22,2.5,1,3,16,4,5,0 +4,27,2.5,0,3,17,4,4,0 +5,27,2.5,0,4,20,4,4,0 +5,27,6,2,4,12,2,5,0 +5,22,0.5,0,2,14,2,5,0 +5,22,2.5,2,2,12,2,2,0 +5,27,2.5,0,4,14,3,4,0 +5,22,2.5,0,2,14,3,3,0 +5,17.5,0.5,0,4,12,2,4,0 +5,32,13,2,2,14,5,4,0 +3,27,6,0,2,12,5,5,0 +4,37,16.5,3,3,12,3,5,0 +5,32,13,2,2,17,4,3,0 +4,22,2.5,1,3,14,4,4,0 +5,27,2.5,0,2,14,5,5,0 +5,32,9,2,4,16,4,5,0 +4,27,6,1,2,14,2,2,0 +4,27,6,1,2,14,2,3,0 +5,32,2.5,0,3,14,4,4,0 +5,22,0.5,0,1,14,5,6,0 +4,27,2.5,0,2,14,2,2,0 +4,22,2.5,0,3,16,4,1,0 +5,42,16.5,3,3,14,3,4,0 +5,42,16.5,2,4,14,3,4,0 +5,22,0.5,0,3,14,3,3,0 +4,22,2.5,1,1,14,2,5,0 +5,42,23,5.5,2,12,2,2,0 +5,27,2.5,0,2,16,3,6,0 +5,22,2.5,0,2,14,3,3,0 +4,22,0.5,0,3,14,3,5,0 +5,27,6,0,2,14,4,1,0 +5,27,6,0,4,17,4,4,0 +5,37,23,2,3,17,4,4,0 +4,27,6,2,3,14,4,4,0 +4,22,2.5,0,1,12,3,3,0 +5,37,13,2,2,14,5,2,0 +4,17.5,0.5,0,4,12,2,5,0 +4,22,2.5,1,1,14,3,2,0 +5,27,2.5,0,1,17,4,5,0 +5,22,2.5,0,2,14,3,4,0 +4,27,6,1,3,16,3,1,0 +5,22,2.5,0,3,16,3,2,0 +1,42,23,4,3,14,3,5,0 +4,27,6,1,3,12,3,3,0 +5,22,2.5,0,1,14,3,5,0 +4,27,6,1,3,16,4,4,0 +4,22,2.5,0,1,12,3,2,0 +5,22,2.5,0,2,12,4,2,0 +4,22,2.5,0,2,14,3,5,0 +5,17.5,0.5,0,1,14,3,5,0 +3,37,16.5,3,4,17,4,5,0 +4,32,2.5,1,3,17,4,3,0 +5,32,16.5,3,3,14,4,5,0 +5,22,6,2,2,12,2,5,0 +4,27,6,0,2,16,3,6,0 +5,22,2.5,0,2,16,3,4,0 +4,22,2.5,0,2,12,5,2,0 +4,22,6,3,2,12,2,2,0 +2,42,16.5,2,3,16,4,2,0 +4,27,6,1,2,16,4,5,0 +5,32,13,2,2,16,4,4,0 +5,27,6,1,2,14,3,1,0 +4,22,0.5,0,3,14,3,1,0 +5,32,16.5,3,4,16,5,6,0 +4,27,6,0,1,16,4,4,0 +5,27,6,1,2,14,5,4,0 +5,32,13,3,2,14,4,6,0 +5,22,2.5,0,1,14,3,5,0 +3,27,2.5,2,2,14,3,1,0 +5,27,6,0,2,14,4,6,0 +3,22,0.5,0,1,16,3,3,0 +5,27,6,1,2,17,4,4,0 +5,27,2.5,0,3,20,4,5,0 +5,32,16.5,4,4,14,3,3,0 +4,42,23,4,2,12,3,4,0 +3,27,9,2,1,12,2,4,0 +5,32,16.5,2,3,12,3,4,0 +2,42,23,2,1,14,2,2,0 +5,37,16.5,2,1,12,2,5,0 +5,27,6,1,4,17,4,6,0 +4,37,2.5,0,3,12,5,5,0 +5,27,2.5,1,2,14,2,2,0 +4,27,2.5,0,3,16,4,4,0 +5,27,2.5,0,4,14,4,4,0 +4,27,9,0,1,14,2,4,0 +4,22,2.5,0,2,12,3,2,0 +4,22,2.5,0,2,14,3,2,0 +5,22,2.5,0,3,12,3,2,0 +4,17.5,0.5,0,1,12,3,1,0 +4,27,2.5,0,3,17,4,5,0 +5,17.5,0.5,0,1,12,3,4,0 +4,32,13,2,1,16,4,4,0 +4,27,2.5,0,2,12,3,2,0 +5,27,9,2,3,12,3,2,0 +4,32,6,1,3,12,3,4,0 +3,27,2.5,0,2,20,4,4,0 +5,22,0.5,0,2,12,5,1,0 +4,42,23,2,4,14,3,5,0 +5,22,2.5,0,1,16,4,5,0 +5,27,6,2,2,14,4,2,0 +5,22,2.5,1,3,12,3,4,0 +5,27,6,0,2,16,4,6,0 +4,42,23,2,2,17,2,4,0 +5,32,2.5,0,2,14,2,6,0 +5,22,2.5,0,1,14,4,4,0 +4,22,2.5,0,2,12,3,5,0 +5,42,23,5.5,3,20,4,6,0 +5,27,2.5,0,2,12,3,4,0 +4,37,9,0,3,14,4,4,0 +3,27,2.5,1,3,17,4,5,0 +5,42,23,4,2,12,3,4,0 +4,22,2.5,0,2,14,3,5,0 +5,22,2.5,0,1,14,3,5,0 +5,32,2.5,1,1,14,4,6,0 +3,27,9,2,4,12,3,3,0 +4,22,0.5,0,3,12,3,5,0 +2,27,6,1,2,12,3,2,0 +5,42,23,5.5,3,14,5,5,0 +5,42,23,4,3,14,4,4,0 +4,32,13,3,1,12,3,5,0 +5,22,2.5,0,1,16,4,5,0 +4,37,16.5,2,3,16,4,2,0 +5,37,16.5,4,2,12,3,5,0 +2,27,6,1,3,14,4,4,0 +4,27,6,2,3,12,3,4,0 +4,22,6,0,3,16,3,2,0 +5,27,6,1,2,14,3,5,0 +4,22,2.5,0,2,14,3,4,0 +5,27,2.5,0,1,14,2,5,0 +4,22,2.5,1,3,12,3,4,0 +5,27,6,0,4,20,3,5,0 +3,42,23,3,2,12,5,5,0 +4,22,6,2,3,9,3,4,0 +4,22,2.5,0,3,14,3,4,0 +5,27,2.5,0,2,16,4,2,0 +5,22,2.5,1,4,14,4,2,0 +4,42,16.5,2,4,17,4,5,0 +4,42,23,5.5,3,14,5,3,0 +4,27,6,0,1,14,3,5,0 +4,22,6,0,3,17,4,3,0 +4,27,2.5,0,4,16,3,4,0 +4,27,6,1,1,17,4,5,0 +5,27,2.5,0,2,14,3,2,0 +5,27,6,2,3,14,3,3,0 +5,32,13,2,3,14,3,4,0 +4,22,2.5,0,3,17,4,1,0 +5,27,13,2,4,12,3,5,0 +5,22,2.5,3,3,14,3,5,0 +3,42,23,3,3,14,5,3,0 +4,27,6,1,3,16,4,4,0 +5,22,2.5,0,2,17,3,1,0 +4,32,16.5,3,3,12,5,5,0 +5,17.5,0.5,0,2,14,3,6,0 +4,22,2.5,0,4,14,3,4,0 +4,42,16.5,3,3,14,4,5,0 +4,27,9,1,1,12,2,4,0 +4,22,2.5,0,2,14,5,1,0 +5,22,2.5,0,2,14,3,2,0 +5,27,2.5,0,2,14,2,6,0 +4,22,2.5,0,4,20,2,5,0 +3,27,6,0,3,14,3,5,0 +5,32,13,2,1,17,5,6,0 +5,37,16.5,3,2,14,5,4,0 +5,22,2.5,0,2,14,2,2,0 +5,22,6,1,2,14,4,4,0 +3,27,2.5,0,1,16,3,2,0 +4,32,13,3,2,16,4,5,0 +5,22,2.5,0,2,17,4,5,0 +5,37,13,3,3,16,3,4,0 +4,42,23,2,3,14,4,3,0 +5,27,6,0,3,14,4,4,0 +4,22,2.5,0,3,16,4,5,0 +4,27,2.5,2,2,14,3,6,0 +4,27,9,3,3,14,3,2,0 +4,27,9,1,2,14,2,4,0 +5,22,2.5,0,2,16,3,2,0 +5,42,23,1,2,20,6,4,0 +4,27,2.5,0,3,20,4,5,0 +5,37,13,2,3,17,4,5,0 +5,32,9,1,2,14,5,5,0 +4,22,2.5,0,4,12,3,4,0 +4,22,6,1,1,12,3,4,0 +5,27,2.5,1,3,17,4,5,0 +5,22,6,2,2,14,3,4,0 +4,22,2.5,1,4,12,3,2,0 +4,37,16.5,2,2,20,4,5,0 +5,32,13,3,3,14,2,2,0 +4,42,23,2,4,16,4,5,0 +5,27,6,1,3,16,4,4,0 +4,27,2.5,0,2,12,2,5,0 +3,27,9,1,4,12,3,5,0 +5,37,23,4,2,14,3,5,0 +3,27,6,2,1,14,4,4,0 +5,22,2.5,0,1,12,2,4,0 +5,22,2.5,0,4,14,4,2,0 +4,22,2.5,0,1,14,3,4,0 +3,17.5,2.5,0,2,12,2,2,0 +5,22,2.5,0,2,16,3,3,0 +5,42,23,4,3,14,3,6,0 +4,17.5,2.5,1,2,12,3,4,0 +4,32,13,2,3,20,4,4,0 +5,22,0.5,0,2,12,3,2,0 +3,22,6,1,3,12,2,4,0 +3,32,13,2,2,12,3,4,0 +5,32,9,0,3,17,6,6,0 +4,42,16.5,1,3,14,3,6,0 +3,42,16.5,3,3,12,3,5,0 +4,27,2.5,0,3,16,3,5,0 +4,17.5,0.5,0,3,12,2,4,0 +5,27,2.5,1,2,12,3,4,0 +5,27,2.5,0,4,16,4,4,0 +5,22,2.5,0,3,17,4,4,0 +4,27,6,1,3,17,4,5,0 +5,22,0.5,0,2,12,3,4,0 +4,32,6,2,3,14,3,4,0 +3,22,2.5,1,1,12,3,4,0 +2,22,2.5,0,2,12,3,2,0 +5,27,2.5,1,2,14,3,5,0 +5,22,2.5,0,1,17,4,4,0 +4,27,6,1,2,12,3,4,0 +5,27,13,2,2,12,3,5,0 +5,22,2.5,0,1,14,1,1,0 +4,22,6,1,3,12,3,2,0 +5,32,16.5,4,3,14,4,6,0 +5,27,6,0,3,12,3,4,0 +4,32,13,2,4,14,5,5,0 +4,42,23,4,3,14,3,5,0 +4,27,6,2,3,16,3,2,0 +5,27,9,2,1,14,3,5,0 +3,27,2.5,0,3,16,5,4,0 +3,32,13,2,2,12,3,4,0 +4,27,2.5,0,2,16,5,4,0 +5,22,2.5,0,1,12,3,5,0 +4,32,9,1,1,16,4,3,0 +5,17.5,2.5,0,3,12,4,4,0 +4,42,23,4,4,16,4,6,0 +5,42,23,2,3,17,4,2,0 +5,22,2.5,0,2,14,3,1,0 +4,32,9,2,2,12,4,6,0 +5,27,2.5,0,1,14,3,5,0 +5,22,0.5,4,1,12,5,5,0 +5,27,6,0,1,20,4,4,0 +5,27,2.5,0,3,20,4,2,0 +5,27,6,1,3,14,3,2,0 +4,27,2.5,0,3,16,4,2,0 +5,22,0.5,0,3,16,4,2,0 +5,42,23,4,4,14,4,6,0 +3,22,2.5,1,3,14,3,2,0 +4,37,16.5,3,4,16,4,4,0 +4,37,16.5,2,3,14,3,5,0 +4,22,2.5,0,2,12,3,4,0 +4,22,6,0,2,16,5,5,0 +5,22,2.5,0,2,14,4,4,0 +4,27,6,0,2,12,2,5,0 +2,42,23,5.5,3,16,4,5,0 +5,22,2.5,0,2,14,3,2,0 +5,27,2.5,1,2,12,2,5,0 +5,42,23,1,3,12,4,5,0 +5,42,23,3,3,14,5,5,0 +5,42,23,1,1,12,3,5,0 +4,27,6,0,1,16,4,2,0 +3,27,9,2,2,14,3,4,0 +5,27,6,0,2,12,3,3,0 +4,22,2.5,0,3,12,3,5,0 +5,32,9,2,1,16,4,6,0 +5,22,2.5,1,2,12,3,2,0 +5,22,6,0,1,16,4,4,0 +5,37,16.5,2,4,20,4,6,0 +4,22,2.5,0,2,12,5,5,0 +4,22,2.5,0,3,14,3,1,0 +5,27,6,0,3,17,4,6,0 +5,22,0.5,0,3,16,5,5,0 +5,22,2.5,0,3,14,3,2,0 +5,22,2.5,0,2,14,3,4,0 +4,27,6,0,2,14,3,4,0 +5,22,2.5,0,3,12,3,4,0 +4,22,0.5,0,3,14,5,5,0 +3,42,23,1,1,12,3,6,0 +5,22,2.5,1,3,14,2,2,0 +4,27,6,1,2,14,5,2,0 +5,22,2.5,0,4,12,3,4,0 +5,22,2.5,0,2,16,4,5,0 +5,27,9,2,3,16,4,4,0 +5,32,13,0,2,12,5,4,0 +3,27,2.5,0,3,16,3,5,0 +3,27,6,0,2,20,4,4,0 +5,22,0.5,0,3,16,5,2,0 +5,22,2.5,0,2,16,4,2,0 +5,27,6,1,1,16,4,5,0 +5,27,2.5,0,1,12,3,5,0 +5,27,9,2,3,12,3,4,0 +5,22,2.5,0,2,16,4,4,0 +5,42,16.5,4,3,12,2,2,0 +3,27,9,2,3,12,5,4,0 +4,27,13,3,3,14,5,5,0 +4,22,2.5,0,2,17,4,5,0 +5,27,9,0,3,14,3,2,0 +2,22,2.5,1,2,12,3,3,0 +5,22,2.5,0,2,12,5,1,0 +4,22,2.5,0,3,16,4,3,0 +5,27,6,2,4,17,4,2,0 +4,22,2.5,0,3,17,4,4,0 +5,37,16.5,3,3,14,3,5,0 +2,37,13,0,2,17,3,5,0 +5,27,2.5,0,3,16,2,4,0 +3,27,9,2,1,12,3,5,0 +5,37,16.5,2,3,12,5,5,0 +4,22,2.5,0,3,16,5,1,0 +5,22,2.5,0,3,12,3,4,0 +5,17.5,0.5,0,2,12,3,4,0 +5,37,13,3,3,17,4,5,0 +5,32,9,3,3,14,4,4,0 +4,27,0.5,0,2,20,4,5,0 +5,37,16.5,2,4,16,4,6,0 +2,27,2.5,1,2,14,3,4,0 +4,22,2.5,0,3,17,3,6,0 +4,32,6,1,3,14,4,5,0 +4,22,2.5,1,2,12,3,2,0 +5,22,2.5,0,2,14,3,5,0 +4,27,2.5,1,1,16,4,5,0 +5,42,23,3,4,17,4,5,0 +4,37,16.5,2,2,12,3,4,0 +4,42,13,0,3,12,3,5,0 +5,22,2.5,0,2,16,4,5,0 +3,22,0.5,0,2,14,4,4,0 +4,32,6,1,1,17,2,4,0 +4,27,2.5,0,2,16,4,2,0 +5,22,2.5,0,2,16,3,1,0 +5,37,16.5,5.5,3,12,2,6,0 +5,22,2.5,0,2,16,5,2,0 +4,27,0.5,0,2,14,3,5,0 +4,22,2.5,0,2,12,2,2,0 +5,32,6,2,3,12,3,4,0 +5,42,23,2,3,12,4,4,0 +4,32,6,2,3,17,4,2,0 +4,27,2.5,0,2,12,3,2,0 +5,32,13,1,3,12,2,4,0 +4,37,16.5,2,2,14,4,2,0 +4,27,0.5,0,1,20,5,5,0 +4,17.5,0.5,0,2,14,3,3,0 +5,32,16.5,3,3,12,2,4,0 +4,37,16.5,3,2,16,4,6,0 +4,22,2.5,0,2,14,3,4,0 +5,32,13,2,3,12,3,4,0 +5,27,6,2,3,17,4,6,0 +4,22,2.5,0,2,12,2,4,0 +3,22,2.5,0,2,16,4,1,0 +4,27,9,1,1,12,2,5,0 +5,22,2.5,0,3,12,3,4,0 +5,32,13,3,1,17,4,4,0 +5,22,0.5,0,2,16,4,4,0 +5,32,13,2,4,14,3,4,0 +5,22,2.5,0,2,14,3,5,0 +5,32,9,1,2,17,2,4,0 +5,42,23,5.5,2,12,3,5,0 +2,32,2.5,1,3,20,6,5,0 +5,37,6,0,3,20,4,5,0 +4,32,9,2,3,16,4,5,0 +4,22,2.5,0,3,14,4,4,0 +4,22,2.5,0,1,12,3,2,0 +5,27,2.5,0,2,20,6,6,0 +4,32,13,2,3,12,3,3,0 +5,17.5,2.5,1,3,12,2,1,0 +5,32,16.5,3,3,12,5,5,0 +4,27,6,0,3,16,4,4,0 +5,37,16.5,2,2,12,5,5,0 +3,27,2.5,1,3,14,3,5,0 +5,27,6,0,1,16,2,4,0 +5,37,23,3,3,12,2,4,0 +4,27,2.5,1,3,14,2,2,0 +5,22,2.5,0,2,12,3,6,0 +5,22,2.5,0,1,14,4,4,0 +4,22,6,2,1,16,3,4,0 +5,22,0.5,0,3,16,4,5,0 +2,22,2.5,1,3,12,3,4,0 +5,22,0.5,0,2,20,3,4,0 +5,32,2.5,0,2,20,4,4,0 +4,27,2.5,1,2,12,3,1,0 +5,22,2.5,0,3,12,5,2,0 +3,42,13,0,4,20,2,2,0 +5,27,2.5,1,1,14,5,4,0 +5,27,13,2,4,12,3,6,0 +4,27,2.5,0,3,14,3,4,0 +4,32,13,2,3,12,2,4,0 +4,27,6,0,2,20,4,6,0 +5,32,6,0,3,12,2,2,0 +5,22,0.5,0,2,12,3,2,0 +4,27,9,1,1,16,4,4,0 +5,27,0.5,0,2,16,3,5,0 +4,22,0.5,0,2,14,4,5,0 +4,22,6,1,2,14,5,5,0 +3,22,2.5,2,1,12,3,4,0 +3,42,13,2,3,12,3,2,0 +5,27,6,3,2,14,2,5,0 +4,27,6,2,1,12,4,2,0 +5,22,2.5,0,2,14,1,4,0 +5,27,2.5,0,3,16,4,4,0 +5,27,2.5,2,2,17,4,5,0 +3,22,2.5,0,3,14,4,5,0 +4,27,6,0,3,12,3,4,0 +2,27,6,2,2,16,2,6,0 +4,32,16.5,2,2,17,4,3,0 +4,22,2.5,1,3,17,4,2,0 +5,22,2.5,0,2,12,3,5,0 +3,22,2.5,1,3,12,3,4,0 +4,22,2.5,0,2,12,3,4,0 +4,22,0.5,0,3,14,5,4,0 +3,32,13,2,2,20,4,4,0 +5,17.5,2.5,0,1,17,4,4,0 +4,22,2.5,0,3,16,4,4,0 +3,27,2.5,0,1,14,3,2,0 +5,42,13,0,4,12,5,5,0 +5,32,16.5,3,4,14,3,2,0 +5,22,2.5,0,3,14,4,5,0 +5,22,0.5,0,3,14,3,4,0 +1,32,16.5,4,3,12,2,5,0 +5,32,16.5,1,1,20,6,6,0 +3,27,9,0,3,14,3,6,0 +2,27,0.5,0,2,14,3,4,0 +5,22,2.5,0,3,14,4,6,0 +4,37,13,2,3,16,4,3,0 +4,42,16.5,2,4,12,2,4,0 +4,42,23,4,4,16,4,4,0 +3,17.5,0.5,1,2,12,3,2,0 +5,27,2.5,1,3,16,4,4,0 +5,32,16.5,2,3,12,3,2,0 +5,42,23,5.5,4,14,4,4,0 +5,37,16.5,3,3,14,3,4,0 +5,22,2.5,1,1,14,2,5,0 +5,27,2.5,0,2,17,4,4,0 +5,27,6,2,1,14,2,5,0 +5,27,9,3,3,12,2,2,0 +5,32,9,2,4,20,2,4,0 +3,27,6,1,2,14,1,4,0 +4,22,0.5,0,2,12,2,2,0 +4,22,6,1,2,12,3,4,0 +4,22,0.5,0,3,14,3,2,0 +5,32,16.5,2,3,14,3,2,0 +5,42,23,2,1,20,4,5,0 +5,37,16.5,3,3,17,4,6,0 +4,32,13,1,4,17,4,1,0 +5,42,23,5.5,3,12,5,5,0 +5,32,13,0,2,14,5,4,0 +5,22,2.5,0,3,14,4,5,0 +1,27,6,3,1,14,2,6,0 +4,27,13,3,2,12,3,4,0 +4,37,6,0,3,16,4,5,0 +5,22,2.5,1,1,14,2,2,0 +5,22,2.5,0,4,12,3,4,0 +5,22,2.5,0,3,14,4,2,0 +5,37,16.5,2,3,12,3,5,0 +5,22,6,2,2,12,3,5,0 +5,42,23,3,4,16,4,6,0 +4,32,13,4,4,12,3,4,0 +5,22,0.5,0,1,14,3,3,0 +4,22,2.5,0,2,14,3,4,0 +4,27,6,0,1,16,4,6,0 +4,32,13,3,2,12,2,6,0 +4,22,2.5,1,3,17,4,4,0 +4,22,0.5,0,1,16,3,5,0 +4,32,13,2,2,12,2,5,0 +4,17.5,2.5,1,1,12,2,4,0 +3,27,6,0,1,17,2,6,0 +4,32,16.5,1,3,12,3,4,0 +5,27,0.5,0,2,16,3,2,0 +4,27,9,2,4,20,4,4,0 +3,42,23,2,3,12,3,5,0 +5,22,2.5,0,2,14,4,2,0 +5,32,13,3,4,20,4,4,0 +2,32,6,2,2,17,3,4,0 +5,22,2.5,0,3,14,2,2,0 +5,27,9,3,2,12,3,4,0 +4,27,2.5,1,4,20,1,1,0 +4,27,6,1,2,12,3,4,0 +5,22,2.5,0,3,12,3,6,0 +4,32,16.5,5.5,3,12,2,2,0 +4,32,13,2,4,16,2,4,0 +5,32,13,5.5,3,14,2,2,0 +5,27,9,3,3,12,2,4,0 +4,27,2.5,0,2,14,3,2,0 +4,42,23,4,1,17,4,4,0 +3,27,9,2,3,17,4,4,0 +5,27,6,1,3,16,4,3,0 +5,27,2.5,0,1,14,3,5,0 +5,42,23,4,2,12,3,5,0 +4,22,2.5,1,2,12,2,4,0 +4,37,16.5,2,2,12,3,4,0 +5,22,2.5,0,3,16,3,6,0 +4,22,2.5,0,3,14,3,4,0 +5,22,2.5,0,4,17,4,5,0 +5,22,2.5,0,3,16,4,6,0 +3,22,2.5,0,2,16,4,4,0 +4,27,9,0,2,14,5,5,0 +4,32,13,2,3,14,3,6,0 +5,27,6,2,4,20,6,6,0 +5,27,9,2,3,16,4,6,0 +5,42,23,2,2,12,3,4,0 +4,27,2.5,0,2,12,3,5,0 +5,22,2.5,0,3,14,3,2,0 +4,22,2.5,0,3,12,2,2,0 +4,32,9,1,2,12,2,5,0 +4,27,6,0,2,14,3,2,0 +5,22,2.5,1,1,12,3,2,0 +5,42,2.5,0,4,12,5,4,0 +5,22,2.5,0,1,14,4,3,0 +4,42,23,2,4,20,2,2,0 +4,42,23,3,3,12,4,4,0 +5,22,2.5,0,1,16,4,2,0 +5,32,16.5,2,2,12,3,5,0 +5,17.5,0.5,0,2,12,3,3,0 +4,22,2.5,1,3,12,2,4,0 +5,27,2.5,0,4,17,4,3,0 +4,22,2.5,0,2,14,3,4,0 +5,22,0.5,0,3,16,2,2,0 +5,22,2.5,1,4,14,3,3,0 +5,42,23,3,4,14,3,6,0 +5,27,6,0,3,12,2,2,0 +4,27,2.5,0,2,14,4,4,0 +4,22,2.5,0,3,12,3,2,0 +5,42,23,3,3,14,3,3,0 +4,42,16.5,3,3,14,2,2,0 +5,32,13,2,2,16,3,4,0 +5,22,2.5,0,3,14,2,2,0 +4,22,6,2,3,12,2,4,0 +4,27,6,0,3,14,3,3,0 +3,32,6,1,3,14,3,5,0 +5,37,16.5,3,4,12,6,5,0 +4,27,9,2,2,14,2,2,0 +4,22,2.5,0,2,12,3,5,0 +5,27,2.5,0,3,20,4,5,0 +4,32,6,0,3,12,5,2,0 +4,22,2.5,0,3,14,3,2,0 +5,37,16.5,4,4,14,3,6,0 +3,37,16.5,4,2,12,2,4,0 +2,22,9,2,2,12,3,4,0 +4,27,6,0,4,16,5,4,0 +5,27,13,3,3,12,3,3,0 +5,27,6,1,4,20,4,4,0 +5,27,6,1,3,14,4,5,0 +5,32,6,1,4,20,6,6,0 +5,27,6,2,2,14,4,4,0 +5,27,6,2,2,14,4,6,0 +3,42,23,4,3,14,3,4,0 +4,22,2.5,0,3,14,3,3,0 +3,32,13,2,2,16,4,5,0 +4,42,23,3,4,12,2,5,0 +5,27,6,0,4,14,5,2,0 +4,27,9,3,2,14,3,1,0 +5,27,9,2,2,14,3,6,0 +5,32,2.5,0,3,12,5,5,0 +5,27,6,0,3,16,4,5,0 +4,27,6,2,3,16,4,2,0 +5,22,2.5,1,3,14,3,2,0 +5,42,23,3,2,12,4,4,0 +5,22,2.5,0,2,17,4,1,0 +4,27,2.5,1,2,14,3,3,0 +4,27,6,2,1,14,5,5,0 +5,17.5,0.5,0,3,12,3,2,0 +4,32,9,1,3,12,3,2,0 +5,42,23,3,2,16,4,6,0 +4,22,2.5,1,3,14,2,4,0 +5,32,6,1,4,17,2,2,0 +4,22,2.5,1,3,14,3,5,0 +5,27,0.5,0,2,14,6,4,0 +3,42,23,2,2,14,3,6,0 +5,32,13,2,3,14,3,4,0 +4,42,23,5.5,2,12,2,4,0 +4,32,9,2,3,14,5,5,0 +5,32,16.5,2,3,12,2,3,0 +5,22,6,0,1,14,5,4,0 +5,42,16.5,1,2,12,5,3,0 +4,42,23,2,2,12,3,4,0 +2,42,23,4,2,14,5,6,0 +4,32,9,2,2,14,3,2,0 +5,42,16.5,1,4,12,4,5,0 +4,32,13,3,2,12,2,2,0 +4,22,2.5,1,2,12,3,4,0 +5,22,2.5,0,3,14,4,4,0 +5,27,2.5,0,2,20,1,6,0 +5,27,6,0,3,16,4,2,0 +4,32,13,2,3,14,3,4,0 +4,27,6,0,2,16,4,6,0 +5,17.5,0.5,0,1,14,3,2,0 +5,32,16.5,2,4,12,3,4,0 +5,17.5,0.5,0,3,12,6,2,0 +4,22,6,0,2,14,3,5,0 +5,27,2.5,0,4,20,4,5,0 +5,42,23,1,2,12,3,4,0 +3,27,9,3,4,12,2,2,0 +5,37,16.5,4,4,14,3,4,0 +4,22,2.5,0,3,14,5,4,0 +5,32,9,2,4,12,3,4,0 +5,22,2.5,2,3,17,4,4,0 +5,32,13,0,4,12,3,4,0 +3,42,23,4,3,12,3,3,0 +4,27,6,2,3,14,3,5,0 +4,22,2.5,0,2,16,5,2,0 +4,27,9,2,3,14,3,5,0 +5,27,0.5,0,3,12,3,5,0 +5,27,0.5,0,4,17,4,2,0 +5,32,13,3,3,14,3,5,0 +5,22,0.5,1,3,14,4,4,0 +5,22,2.5,0,2,12,3,4,0 +5,22,2.5,0,2,12,2,4,0 +4,22,2.5,0,1,12,3,3,0 +4,27,6,1,1,14,3,4,0 +5,37,23,4,3,16,5,5,0 +5,22,2.5,0,2,16,4,4,0 +3,37,16.5,1,2,20,4,4,0 +4,27,2.5,1,3,14,4,2,0 +5,27,2.5,0,2,17,4,4,0 +5,42,23,3,3,17,4,2,0 +5,32,9,2,3,14,4,3,0 +5,22,0.5,0,4,14,3,5,0 +3,27,6,1,2,12,5,4,0 +3,27,9,1,2,12,3,4,0 +5,22,2.5,0,3,16,5,4,0 +4,32,9,3,4,16,4,4,0 +2,27,6,1,4,20,5,6,0 +5,22,2.5,0,3,14,4,2,0 +5,27,2.5,0,3,16,4,5,0 +4,32,13,3,2,12,2,5,0 +4,22,0.5,0,1,14,3,5,0 +5,27,9,1,2,12,3,5,0 +5,37,16.5,3,2,14,3,4,0 +5,22,2.5,0,3,16,4,5,0 +4,22,2.5,0,2,12,3,2,0 +4,42,23,1,2,12,3,3,0 +1,27,6,1,2,16,3,5,0 +5,27,6,1,3,20,4,5,0 +5,27,2.5,0,4,14,3,4,0 +5,27,2.5,0,3,14,3,4,0 +5,32,9,0,2,12,4,5,0 +5,22,2.5,0,3,17,5,5,0 +2,37,16.5,3,3,12,3,4,0 +5,27,6,0,3,17,4,6,0 +4,27,6,0,1,12,3,3,0 +4,27,9,1,3,16,3,2,0 +5,22,2.5,1,3,12,5,5,0 +4,17.5,2.5,0,3,14,3,1,0 +5,27,2.5,0,2,16,4,5,0 +4,22,2.5,0,2,12,3,2,0 +5,27,9,2,3,12,2,2,0 +4,32,9,1,3,17,3,6,0 +4,37,16.5,4,2,14,4,3,0 +4,27,9,0,3,14,2,5,0 +5,37,13,3,3,20,4,6,0 +4,27,2.5,1,3,16,4,2,0 +5,27,2.5,0,2,14,4,6,0 +4,22,2.5,0,2,12,3,2,0 +4,27,6,0,2,14,3,5,0 +4,27,13,3,2,12,3,4,0 +4,27,6,1,3,14,5,5,0 +5,27,6,1,4,16,4,4,0 +3,27,9,0,2,14,3,5,0 +4,42,23,3,4,14,3,3,0 +4,32,13,2,2,12,5,5,0 +5,27,6,0,4,20,4,1,0 +5,37,23,4,2,14,3,4,0 +5,22,2.5,0,2,12,3,4,0 +5,22,2.5,1,4,14,3,4,0 +4,22,2.5,0,3,12,3,4,0 +4,17.5,2.5,0,2,12,3,4,0 +3,22,2.5,1,3,12,3,4,0 +5,17.5,0.5,0,4,12,3,2,0 +4,37,23,3,4,9,2,2,0 +5,42,23,4,2,14,5,4,0 +4,32,16.5,2,3,14,3,4,0 +4,22,2.5,2,3,14,5,4,0 +5,17.5,0.5,0,2,12,3,4,0 +5,37,16.5,3,4,14,3,4,0 +4,27,9,1,3,12,3,3,0 +5,37,16.5,3,2,14,3,3,0 +3,42,13,2,3,17,4,4,0 +5,37,23,4,4,16,4,6,0 +5,37,23,1,3,14,3,5,0 +4,42,23,3,3,17,4,2,0 +4,27,6,1,3,20,4,4,0 +5,32,9,0,4,20,4,6,0 +4,27,2.5,0,4,17,4,4,0 +3,17.5,2.5,0,3,12,4,4,0 +5,22,2.5,0,3,12,2,2,0 +5,37,13,3,1,20,4,5,0 +5,27,16.5,2,3,12,4,4,0 +4,22,2.5,1,3,14,3,5,0 +4,42,16.5,4,3,9,2,2,0 +4,22,2.5,0,2,14,3,5,0 +4,42,23,2,3,14,4,2,0 +5,32,13,2,2,14,2,6,0 +4,32,13,2,3,17,4,5,0 +5,22,2.5,1,1,12,5,1,0 +5,22,2.5,0,4,16,4,2,0 +5,37,9,0,3,20,4,6,0 +5,42,23,2,3,14,3,5,0 +5,32,9,2,3,16,4,4,0 +5,22,6,0,1,12,3,2,0 +4,27,6,2,2,12,2,2,0 +4,22,2.5,0,2,12,3,4,0 +5,27,2.5,0,4,16,4,4,0 +5,32,16.5,3,4,14,2,4,0 +4,37,16.5,2,1,12,3,4,0 +5,22,2.5,0,3,12,3,3,0 +4,37,16.5,4,2,12,2,2,0 +3,27,9,1,3,17,4,1,0 +5,22,2.5,0,1,17,2,2,0 +5,22,2.5,0,1,14,3,4,0 +5,22,2.5,0,2,16,4,5,0 +5,27,6,0,2,16,3,5,0 +4,22,2.5,0,3,14,5,4,0 +5,27,2.5,0,1,17,4,6,0 +5,42,23,1,4,20,4,3,0 +4,17.5,0.5,0,2,14,3,1,0 +5,22,6,1,3,12,2,3,0 +4,22,6,2,2,9,2,3,0 +5,27,2.5,0,4,16,5,4,0 +4,22,2.5,1,2,12,3,2,0 +3,32,2.5,0,4,17,6,6,0 +5,37,16.5,3,4,14,4,6,0 +5,32,13,4,2,12,5,1,0 +3,42,23,3,4,16,3,5,0 +5,27,2.5,0,3,12,3,4,0 +5,32,2.5,1,3,20,4,4,0 +5,27,9,2,3,12,2,4,0 +3,27,2.5,0,2,14,3,3,0 +5,17.5,2.5,1,2,12,5,2,0 +4,37,16.5,3,2,17,4,5,0 +4,27,2.5,1,3,16,4,6,0 +5,22,2.5,1,3,14,3,5,0 +4,27,2.5,0,1,20,5,5,0 +5,22,2.5,0,3,14,5,5,0 +5,42,23,5.5,3,14,4,4,0 +5,42,23,4,3,14,3,2,0 +5,37,13,2,2,20,6,6,0 +5,27,13,2,3,14,4,5,0 +4,27,13,2,2,12,2,2,0 +5,37,23,3,2,12,4,4,0 +5,22,2.5,0,2,17,5,3,0 +5,27,6,1,2,12,2,4,0 +5,22,2.5,0,2,14,3,4,0 +5,37,13,2,3,16,4,4,0 +5,27,6,0,2,17,5,6,0 +5,27,0.5,0,3,12,3,4,0 +2,37,16.5,3,1,14,3,2,0 +5,37,23,2,3,20,4,4,0 +2,32,9,2,4,14,3,5,0 +5,32,13,2,4,20,4,5,0 +5,22,2.5,1,4,16,4,5,0 +5,22,2.5,0,3,20,4,4,0 +3,37,13,3,2,16,4,3,0 +3,17.5,2.5,1,1,9,3,3,0 +4,27,2.5,0,2,14,3,1,0 +1,27,6,1,3,14,3,4,0 +4,27,6,2,2,14,4,5,0 +2,42,23,2,2,14,3,4,0 +5,32,13,2,3,14,4,6,0 +4,22,2.5,1,3,14,3,4,0 +4,27,2.5,0,1,14,2,5,0 +4,22,2.5,0,3,20,6,6,0 +3,37,2.5,0,3,12,3,3,0 +5,27,2.5,0,3,17,4,4,0 +5,27,2.5,0,3,16,3,5,0 +4,27,6,1,2,20,4,2,0 +4,27,9,2,2,14,4,4,0 +4,27,2.5,0,3,17,4,4,0 +5,27,6,0,4,16,4,5,0 +5,42,23,5.5,3,12,3,2,0 +5,22,2.5,0,3,16,4,1,0 +5,22,0.5,0,3,14,2,2,0 +4,22,2.5,1,3,14,2,4,0 +5,22,2.5,1,4,12,3,4,0 +5,42,23,4,3,14,5,4,0 +5,27,6,0,4,14,4,4,0 +5,42,23,2,3,12,2,2,0 +4,32,13,3,3,16,4,2,0 +5,27,13,3,3,16,4,2,0 +5,27,9,1,2,14,4,5,0 +4,22,2.5,0,2,16,4,1,0 +5,17.5,2.5,0,4,12,3,5,0 +4,32,16.5,2,2,12,3,4,0 +5,27,9,1,3,12,3,5,0 +4,22,2.5,0,4,14,4,2,0 +5,22,2.5,1,2,12,3,2,0 +5,27,0.5,0,4,20,4,4,0 +5,37,16.5,3,3,14,5,5,0 +5,32,13,2,4,14,3,6,0 +4,22,0.5,0,2,16,3,1,0 +5,42,23,2,4,12,3,2,0 +5,22,2.5,2,2,14,3,5,0 +5,42,23,4,4,12,3,5,0 +4,27,6,0,3,12,3,4,0 +5,32,13,3,3,12,3,5,0 +5,32,13,4,2,14,4,4,0 +3,27,6,2,4,14,3,1,0 +4,22,2.5,0,3,16,5,5,0 +5,22,2.5,0,2,14,3,3,0 +5,32,13,2,3,17,4,3,0 +4,32,13,1,1,16,5,5,0 +5,22,2.5,0,2,14,3,1,0 +5,32,6,1,3,14,3,4,0 +4,22,2.5,0,2,16,2,4,0 diff --git a/statsmodels/datasets/fair/src/1978ADAT.asc b/statsmodels/datasets/fair/src/1978ADAT.asc new file mode 100644 index 0000000..295e7f4 --- /dev/null +++ b/statsmodels/datasets/fair/src/1978ADAT.asc @@ -0,0 +1,6984 @@ +PT data: 15 variables per line; they are: +identifier, not used, constant, z1, z2, z3, z4, z5, z6, not used, z7, + z8, yPT, not used, not used + +RB data: 14 variables per line; they are: +identifier, constant, v1, v2, v3, v4, v5, v6, not used, v7, v8, yRB, + not used, not used + +See Table 1 in the article for the notation. + +BEGIN PT data (601 observations): + + 4 0 1. 1 37.0 10.000 0 3 18. 40.0 7 4 0. 0. 1. + 5 0 1. 0 27.0 4.000 0 4 14. 20.0 6 4 0. 0. 1. + 11 0 1. 0 32.0 15.000 1 1 12. 12.5 1 4 0. 0. 1. + 16 0 1. 1 57.0 15.000 1 5 18. 12.5 6 5 0. 0. 1. + 23 0 1. 1 22.0 0.750 0 2 17. 7.5 6 3 0. 0. 1. + 29 0 1. 0 32.0 1.500 0 2 17. 7.5 5 5 0. 0. 1. + 44 0 1. 0 22.0 0.750 0 2 12. 12.5 1 3 0. 0. 1. + 45 0 1. 1 57.0 15.000 1 2 14. 20.0 4 4 0. 0. 1. + 47 0 1. 0 32.0 15.000 1 4 16. 20.0 1 2 0. 0. 1. + 49 0 1. 1 22.0 1.500 0 4 14. 12.5 4 5 0. 0. 1. + 50 0 1. 1 37.0 15.000 1 2 20. 20.0 7 2 0. 0. 1. + 55 0 1. 1 27.0 4.000 1 4 18. 12.5 6 4 0. 0. 1. + 64 0 1. 1 47.0 15.000 1 5 17. 12.5 6 4 0. 0. 1. + 80 0 1. 0 22.0 1.500 0 2 17. 12.5 5 4 0. 0. 1. + 86 0 1. 0 27.0 4.000 0 4 14. 7.5 5 4 0. 0. 1. + 93 0 1. 0 37.0 15.000 1 1 17. 20.0 5 5 0. 0. 1. + 108 0 1. 0 37.0 15.000 1 2 18. 20.0 4 3 0. 0. 1. + 114 0 1. 0 22.0 0.750 0 3 16. 7.5 5 4 0. 0. 1. + 115 0 1. 0 22.0 1.500 0 2 16. 7.5 5 5 0. 0. 1. + 116 0 1. 0 27.0 10.000 1 2 14. 7.5 1 5 0. 0. 1. + 123 0 1. 0 22.0 1.500 0 2 16. 12.5 5 5 0. 0. 1. + 127 0 1. 0 22.0 1.500 0 2 16. 7.5 5 5 0. 0. 1. + 129 0 1. 0 27.0 10.000 1 4 16. 20.0 5 4 0. 0. 1. + 134 0 1. 0 32.0 10.000 1 3 14. 7.5 1 5 0. 0. 1. + 137 0 1. 1 37.0 4.000 1 2 20. 20.0 6 4 0. 0. 1. + 139 0 1. 0 22.0 1.500 0 2 18. 12.5 5 5 0. 0. 1. + 147 0 1. 0 27.0 7.000 0 4 16. 12.5 1 5 0. 0. 1. + 151 0 1. 1 42.0 15.000 1 5 20. 12.5 6 4 0. 0. 1. + 153 0 1. 1 27.0 4.000 1 3 16. 12.5 5 5 0. 0. 1. + 155 0 1. 0 27.0 4.000 1 3 17. 12.5 5 4 0. 0. 1. + 162 0 1. 1 42.0 15.000 1 4 20. 20.0 6 3 0. 0. 1. + 163 0 1. 0 22.0 1.500 0 3 16. 12.5 5 5 0. 0. 1. + 165 0 1. 1 27.0 0.417 0 4 17. 7.5 6 4 0. 0. 1. + 168 0 1. 0 42.0 15.000 1 5 14. 20.0 5 4 0. 0. 1. + 170 0 1. 1 32.0 4.000 1 1 18. 20.0 6 4 0. 0. 1. + 172 0 1. 0 22.0 1.500 0 4 16. 7.5 5 3 0. 0. 1. + 184 0 1. 0 42.0 15.000 1 3 12. 20.0 1 4 0. 0. 1. + 187 0 1. 0 22.0 4.000 0 4 17. 20.0 5 5 0. 0. 1. + 192 0 1. 1 22.0 1.500 1 1 14. 7.5 3 5 0. 0. 1. + 194 0 1. 0 22.0 0.750 0 3 16. 7.5 1 5 0. 0. 1. + 210 0 1. 1 32.0 10.000 1 5 20. 12.5 6 5 0. 0. 1. + 217 0 1. 1 52.0 15.000 1 5 18. 7.5 6 3 0. 0. 1. + 220 0 1. 0 22.0 0.417 0 5 14. 12.5 1 4 0. 0. 1. + 224 0 1. 0 27.0 4.000 1 2 18. 4.0 6 1 0. 0. 1. + 227 0 1. 0 32.0 7.000 1 5 17. 12.5 5 3 0. 0. 1. + 228 0 1. 1 22.0 4.000 0 3 16. 7.5 5 5 0. 0. 1. + 239 0 1. 0 27.0 7.000 1 4 18. 40.0 6 5 0. 0. 1. + 241 0 1. 0 42.0 15.000 1 2 18. 20.0 5 4 0. 0. 1. + 245 0 1. 1 27.0 1.500 1 4 16. 7.5 3 5 0. 0. 1. + 249 0 1. 1 42.0 15.000 1 2 20. 20.0 6 4 0. 0. 1. + 262 0 1. 0 22.0 0.750 0 5 14. 20.0 3 5 0. 0. 1. + 265 0 1. 1 32.0 7.000 1 2 20. 20.0 6 4 0. 0. 1. + 267 0 1. 1 27.0 4.000 1 5 20. 7.5 6 5 0. 0. 1. + 269 0 1. 1 27.0 10.000 1 4 20. 7.5 6 4 0. 0. 1. + 271 0 1. 1 22.0 4.000 0 1 18. 20.0 5 5 0. 0. 1. + 277 0 1. 0 37.0 15.000 1 4 14. 12.5 3 1 0. 0. 1. + 290 0 1. 1 22.0 1.500 1 5 16. 20.0 4 4 0. 0. 1. + 292 0 1. 0 37.0 15.000 1 4 17. 20.0 1 5 0. 0. 1. + 293 0 1. 0 27.0 0.750 0 4 17. 12.5 5 4 0. 0. 1. + 295 0 1. 1 32.0 10.000 1 4 20. 12.5 6 4 0. 0. 1. + 299 0 1. 0 47.0 15.000 1 5 14. 40.0 7 2 0. 0. 1. + 320 0 1. 1 37.0 10.000 1 3 20. 40.0 6 4 0. 0. 1. + 321 0 1. 0 22.0 0.750 0 2 16. 7.5 5 5 0. 0. 1. + 324 0 1. 1 27.0 4.000 0 2 18. 12.5 4 5 0. 0. 1. + 334 0 1. 1 32.0 7.000 0 4 20. 7.5 6 4 0. 0. 1. + 351 0 1. 1 42.0 15.000 1 2 17. 40.0 3 5 0. 0. 1. + 355 0 1. 1 37.0 10.000 1 4 20. 7.5 6 4 0. 0. 1. + 361 0 1. 0 47.0 15.000 1 3 17. 20.0 6 5 0. 0. 1. + 362 0 1. 0 22.0 1.500 0 5 16. 7.5 5 5 0. 0. 1. + 366 0 1. 0 27.0 1.500 0 2 16. 20.0 6 4 0. 0. 1. + 370 0 1. 0 27.0 4.000 0 3 17. 7.5 5 5 0. 0. 1. + 374 0 1. 0 32.0 10.000 1 5 14. 12.5 4 5 0. 0. 1. + 378 0 1. 0 22.0 0.125 0 2 12. 7.5 5 5 0. 0. 1. + 381 0 1. 1 47.0 15.000 1 4 14. 20.0 4 3 0. 0. 1. + 382 0 1. 1 32.0 15.000 1 1 14. 40.0 5 5 0. 0. 1. + 383 0 1. 1 27.0 7.000 1 4 16. 12.5 5 5 0. 0. 1. + 384 0 1. 0 22.0 1.500 1 3 16. 7.5 5 5 0. 0. 1. + 400 0 1. 1 27.0 4.000 1 3 17. 7.5 6 5 0. 0. 1. + 403 0 1. 0 22.0 1.500 0 3 16. 7.5 5 5 0. 0. 1. + 409 0 1. 1 57.0 15.000 1 2 14. 20.0 7 2 0. 0. 1. + 412 0 1. 1 17.5 1.500 1 3 18. 20.0 6 5 0. 0. 1. + 413 0 1. 1 57.0 15.000 1 4 20. 40.0 6 5 0. 0. 1. + 416 0 1. 0 22.0 0.750 0 2 16. 20.0 3 4 0. 0. 1. + 418 0 1. 1 42.0 4.000 0 4 17. 12.5 3 3 0. 0. 1. + 422 0 1. 0 22.0 1.500 1 4 12. 12.5 1 5 0. 0. 1. + 435 0 1. 0 22.0 0.417 0 1 17. 4.0 6 4 0. 0. 1. + 439 0 1. 0 32.0 15.000 1 4 17. 12.5 5 5 0. 0. 1. + 445 0 1. 0 27.0 1.500 0 3 18. 12.5 5 2 0. 0. 1. + 447 0 1. 0 22.0 1.500 1 3 14. 7.5 1 5 0. 0. 1. + 448 0 1. 0 37.0 15.000 1 3 14. 40.0 1 4 0. 0. 1. + 449 0 1. 0 32.0 15.000 1 4 14. 20.0 3 4 0. 0. 1. + 478 0 1. 1 37.0 10.000 1 2 14. 12.5 5 3 0. 0. 1. + 482 0 1. 1 37.0 10.000 1 4 16. 12.5 5 4 0. 0. 1. + 486 0 1. 1 57.0 15.000 1 5 20. 12.5 5 3 0. 0. 1. + 489 0 1. 1 27.0 0.417 0 1 16. 7.5 3 4 0. 0. 1. + 490 0 1. 0 42.0 15.000 1 5 14. 12.5 1 5 0. 0. 1. + 491 0 1. 1 57.0 15.000 1 3 16. 20.0 6 1 0. 0. 1. + 492 0 1. 1 37.0 10.000 1 1 16. 7.5 6 4 0. 0. 1. + 503 0 1. 1 37.0 15.000 1 3 17. 40.0 5 5 0. 0. 1. + 508 0 1. 1 37.0 15.000 1 4 20. 20.0 6 5 0. 0. 1. + 509 0 1. 0 27.0 10.000 1 5 14. 12.5 1 5 0. 0. 1. + 512 0 1. 1 37.0 10.000 1 2 18. 20.0 6 4 0. 0. 1. + 515 0 1. 0 22.0 0.125 0 4 12. 12.5 4 5 0. 0. 1. + 517 0 1. 1 57.0 15.000 1 5 20. 40.0 6 5 0. 0. 1. + 532 0 1. 0 37.0 15.000 1 4 18. 40.0 6 4 0. 0. 1. + 533 0 1. 1 22.0 4.000 1 4 14. 7.5 6 4 0. 0. 1. + 535 0 1. 1 27.0 7.000 1 4 18. 7.5 5 4 0. 0. 1. + 537 0 1. 1 57.0 15.000 1 4 20. 40.0 5 4 0. 0. 1. + 538 0 1. 1 32.0 15.000 1 3 14. 12.5 6 3 0. 0. 1. + 543 0 1. 0 22.0 1.500 0 2 14. 12.5 5 4 0. 0. 1. + 547 0 1. 0 32.0 7.000 1 4 17. 40.0 1 5 0. 0. 1. + 550 0 1. 0 37.0 15.000 1 4 17. 40.0 6 5 0. 0. 1. + 558 0 1. 0 32.0 1.500 0 5 18. 40.0 5 5 0. 0. 1. + 571 0 1. 1 42.0 10.000 1 5 20. 40.0 7 4 0. 0. 1. + 578 0 1. 0 27.0 7.000 0 3 16. 12.5 5 4 0. 0. 1. + 583 0 1. 1 37.0 15.000 0 4 20. 40.0 6 5 0. 0. 1. + 586 0 1. 1 37.0 15.000 1 4 14. 12.5 3 2 0. 0. 1. + 594 0 1. 1 32.0 10.000 0 5 18. 20.0 6 4 0. 0. 1. + 597 0 1. 0 22.0 0.750 0 4 16. 7.5 1 5 0. 0. 1. + 602 0 1. 0 27.0 7.000 1 4 12. 7.5 2 4 0. 0. 1. + 603 0 1. 0 27.0 7.000 1 2 16. 12.5 2 5 0. 0. 1. + 604 0 1. 0 42.0 15.000 1 5 18. 40.0 5 4 0. 0. 1. + 612 0 1. 1 42.0 15.000 1 4 17. 20.0 5 3 0. 0. 1. + 613 0 1. 0 27.0 7.000 1 2 16. 20.0 1 2 0. 0. 1. + 621 0 1. 0 22.0 1.500 0 3 16. 12.5 5 5 0. 0. 1. + 627 0 1. 1 37.0 15.000 1 5 20. 40.0 6 5 0. 0. 1. + 630 0 1. 0 22.0 0.125 0 2 14. 12.5 4 5 0. 0. 1. + 631 0 1. 1 27.0 1.500 0 4 16. 7.5 5 5 0. 0. 1. + 632 0 1. 1 32.0 1.500 0 2 18. 20.0 6 5 0. 0. 1. + 639 0 1. 1 27.0 1.500 0 2 17. 7.5 6 5 0. 0. 1. + 645 0 1. 0 27.0 10.000 1 4 16. 12.5 1 3 0. 0. 1. + 647 0 1. 1 42.0 15.000 1 4 18. 12.5 6 5 0. 0. 1. + 648 0 1. 0 27.0 1.500 0 2 16. 7.5 6 5 0. 0. 1. + 651 0 1. 1 27.0 4.000 0 2 18. 12.5 6 3 0. 0. 1. + 655 0 1. 0 32.0 10.000 1 3 14. 7.5 5 3 0. 0. 1. + 667 0 1. 0 32.0 15.000 1 3 18. 20.0 5 4 0. 0. 1. + 670 0 1. 0 22.0 0.750 0 2 18. 4.0 6 5 0. 0. 1. + 671 0 1. 0 37.0 15.000 1 2 16. 7.5 1 4 0. 0. 1. + 673 0 1. 1 27.0 4.000 1 4 20. 12.5 5 5 0. 0. 1. + 701 0 1. 1 27.0 4.000 0 1 20. 20.0 5 4 0. 0. 1. + 705 0 1. 0 27.0 10.000 1 2 12. 7.5 1 4 0. 0. 1. + 706 0 1. 0 32.0 15.000 1 5 18. 20.0 6 4 0. 0. 1. + 709 0 1. 1 27.0 7.000 1 5 12. 7.5 5 3 0. 0. 1. + 717 0 1. 1 52.0 15.000 1 2 18. 12.5 5 4 0. 0. 1. + 719 0 1. 1 27.0 4.000 0 3 20. 12.5 6 3 0. 0. 1. + 723 0 1. 1 37.0 4.000 1 1 18. 20.0 5 4 0. 0. 1. + 724 0 1. 1 27.0 4.000 1 4 14. 7.5 5 4 0. 0. 1. + 726 0 1. 0 52.0 15.000 1 5 12. 12.5 1 3 0. 0. 1. + 734 0 1. 0 57.0 15.000 1 4 16. 20.0 6 4 0. 0. 1. + 735 0 1. 1 27.0 7.000 1 1 16. 20.0 5 4 0. 0. 1. + 736 0 1. 1 37.0 7.000 1 4 20. 20.0 6 3 0. 0. 1. + 737 0 1. 1 22.0 0.750 0 2 14. 12.5 4 3 0. 0. 1. + 739 0 1. 1 32.0 4.000 1 2 18. 7.5 5 3 0. 0. 1. + 743 0 1. 1 37.0 15.000 1 4 20. 7.5 6 3 0. 0. 1. + 745 0 1. 1 22.0 0.750 1 2 14. 7.5 4 3 0. 0. 1. + 747 0 1. 1 42.0 15.000 1 4 20. 20.0 6 3 0. 0. 1. + 751 0 1. 0 52.0 15.000 1 5 17. 12.5 1 1 0. 0. 1. + 752 0 1. 0 37.0 15.000 1 4 14. 40.0 1 2 0. 0. 1. + 754 0 1. 1 27.0 7.000 1 4 14. 12.5 5 3 0. 0. 1. + 760 0 1. 1 32.0 4.000 1 2 16. 7.5 5 5 0. 0. 1. + 763 0 1. 0 27.0 4.000 1 2 18. 12.5 6 5 0. 0. 1. + 774 0 1. 0 27.0 4.000 1 2 18. 7.5 5 5 0. 0. 1. + 776 0 1. 1 37.0 15.000 1 5 18. 7.5 6 5 0. 0. 1. + 779 0 1. 0 47.0 15.000 1 5 12. 12.5 5 4 0. 0. 1. + 784 0 1. 0 32.0 10.000 1 3 17. 12.5 1 4 0. 0. 1. + 788 0 1. 0 27.0 1.500 1 4 17. 7.5 1 2 0. 0. 1. + 794 0 1. 0 57.0 15.000 1 2 18. 20.0 5 2 0. 0. 1. + 795 0 1. 0 22.0 1.500 0 4 14. 7.5 5 4 0. 0. 1. + 798 0 1. 1 42.0 15.000 1 3 14. 12.5 3 4 0. 0. 1. + 800 0 1. 1 57.0 15.000 1 4 9. 7.5 2 2 0. 0. 1. + 803 0 1. 1 57.0 15.000 1 4 20. 40.0 6 5 0. 0. 1. + 807 0 1. 0 22.0 0.125 0 4 14. 12.5 4 5 0. 0. 1. + 812 0 1. 0 32.0 10.000 1 4 14. 20.0 1 5 0. 0. 1. + 820 0 1. 0 42.0 15.000 1 3 18. 20.0 5 4 0. 0. 1. + 823 0 1. 0 27.0 1.500 0 2 18. 20.0 6 5 0. 0. 1. + 830 0 1. 1 32.0 0.125 1 2 18. 12.5 5 2 0. 0. 1. + 843 0 1. 0 27.0 4.000 0 3 16. 20.0 5 4 0. 0. 1. + 848 0 1. 0 27.0 10.000 1 2 16. 12.5 1 4 0. 0. 1. + 851 0 1. 0 32.0 7.000 1 4 16. 40.0 1 3 0. 0. 1. + 854 0 1. 0 37.0 15.000 1 4 14. 40.0 5 4 0. 0. 1. + 856 0 1. 0 42.0 15.000 1 5 17. 12.5 6 2 0. 0. 1. + 857 0 1. 1 32.0 1.500 1 4 14. 12.5 6 5 0. 0. 1. + 859 0 1. 0 32.0 4.000 1 3 17. 12.5 5 3 0. 0. 1. + 863 0 1. 0 37.0 7.000 0 4 18. 12.5 5 5 0. 0. 1. + 865 0 1. 0 22.0 0.417 1 3 14. 7.5 3 5 0. 0. 1. + 867 0 1. 0 27.0 7.000 1 4 14. 12.5 1 5 0. 0. 1. + 870 0 1. 1 27.0 0.750 0 3 16. 12.5 5 5 0. 0. 1. + 873 0 1. 1 27.0 4.000 1 2 20. 40.0 5 5 0. 0. 1. + 875 0 1. 1 32.0 10.000 1 4 16. 7.5 4 5 0. 0. 1. + 876 0 1. 1 32.0 15.000 1 1 14. 12.5 5 5 0. 0. 1. + 877 0 1. 1 22.0 0.750 0 3 17. 7.5 4 5 0. 0. 1. + 880 0 1. 0 27.0 7.000 1 4 17. 20.0 1 4 0. 0. 1. + 903 0 1. 1 27.0 0.417 1 4 20. 12.5 5 4 0. 0. 1. + 904 0 1. 1 37.0 15.000 1 4 20. 40.0 5 4 0. 0. 1. + 905 0 1. 0 37.0 15.000 1 2 14. 12.5 1 3 0. 0. 1. + 908 0 1. 1 22.0 4.000 1 1 18. 7.5 5 4 0. 0. 1. + 909 0 1. 1 37.0 15.000 1 4 17. 20.0 5 3 0. 0. 1. + 910 0 1. 0 22.0 1.500 0 2 14. 12.5 4 5 0. 0. 1. + 912 0 1. 1 52.0 15.000 1 4 14. 20.0 6 2 0. 0. 1. + 914 0 1. 0 22.0 1.500 0 4 17. 12.5 5 5 0. 0. 1. + 915 0 1. 1 32.0 4.000 1 5 14. 20.0 3 5 0. 0. 1. + 916 0 1. 1 32.0 4.000 1 2 14. 20.0 3 5 0. 0. 1. + 920 0 1. 0 22.0 1.500 0 3 16. 12.5 6 5 0. 0. 1. + 921 0 1. 1 27.0 0.750 0 2 18. 12.5 3 3 0. 0. 1. + 925 0 1. 0 22.0 7.000 1 2 14. 7.5 5 2 0. 0. 1. + 926 0 1. 0 27.0 0.750 0 2 17. 7.5 5 3 0. 0. 1. + 929 0 1. 0 37.0 15.000 1 4 12. 20.0 1 2 0. 0. 1. + 931 0 1. 0 22.0 1.500 0 1 14. 4.0 1 5 0. 0. 1. + 945 0 1. 0 37.0 10.000 0 2 12. 12.5 4 4 0. 0. 1. + 947 0 1. 0 37.0 15.000 1 4 18. 20.0 5 3 0. 0. 1. + 949 0 1. 0 42.0 15.000 1 3 12. 20.0 3 3 0. 0. 1. + 950 0 1. 1 22.0 4.000 0 2 18. 7.5 5 5 0. 0. 1. + 961 0 1. 1 52.0 7.000 1 2 20. 20.0 6 2 0. 0. 1. + 965 0 1. 1 27.0 0.750 0 2 17. 12.5 5 5 0. 0. 1. + 966 0 1. 0 27.0 4.000 0 2 17. 12.5 4 5 0. 0. 1. + 967 0 1. 1 42.0 1.500 0 5 20. 12.5 6 5 0. 0. 1. + 987 0 1. 1 22.0 1.500 0 4 17. 12.5 6 5 0. 0. 1. + 990 0 1. 1 22.0 4.000 0 4 17. 12.5 5 3 0. 0. 1. + 992 0 1. 0 22.0 4.000 1 1 14. 7.5 5 4 0. 0. 1. + 995 0 1. 1 37.0 15.000 1 5 20. 12.5 4 5 0. 0. 1. + 1009 0 1. 0 37.0 10.000 1 3 16. 20.0 6 3 0. 0. 1. + 1021 0 1. 1 42.0 15.000 1 4 17. 20.0 6 5 0. 0. 1. + 1026 0 1. 0 47.0 15.000 1 4 17. 20.0 5 5 0. 0. 1. + 1027 0 1. 1 22.0 1.500 0 4 16. 7.5 5 4 0. 0. 1. + 1030 0 1. 0 32.0 10.000 1 3 12. 12.5 1 4 0. 0. 1. + 1031 0 1. 0 22.0 7.000 1 1 14. 7.5 3 5 0. 0. 1. + 1034 0 1. 0 32.0 10.000 1 4 17. 12.5 5 4 0. 0. 1. + 1037 0 1. 1 27.0 1.500 1 2 16. 7.5 2 4 0. 0. 1. + 1038 0 1. 1 37.0 15.000 1 4 14. 12.5 5 5 0. 0. 1. + 1039 0 1. 1 42.0 4.000 1 3 14. 12.5 4 5 0. 0. 1. + 1045 0 1. 0 37.0 15.000 1 5 14. 20.0 5 4 0. 0. 1. + 1046 0 1. 0 32.0 7.000 1 4 17. 12.5 5 5 0. 0. 1. + 1054 0 1. 0 42.0 15.000 1 4 18. 40.0 6 5 0. 0. 1. + 1059 0 1. 1 27.0 4.000 0 4 18. 20.0 6 4 0. 0. 1. + 1063 0 1. 1 22.0 0.750 0 4 18. 12.5 6 5 0. 0. 1. + 1068 0 1. 1 27.0 4.000 1 4 14. 7.5 5 3 0. 0. 1. + 1070 0 1. 0 22.0 0.750 0 5 18. 4.0 1 5 0. 0. 1. + 1072 0 1. 0 52.0 15.000 1 5 9. 12.5 5 5 0. 0. 1. + 1073 0 1. 1 32.0 10.000 1 3 14. 12.5 5 5 0. 0. 1. + 1077 0 1. 0 37.0 15.000 1 4 16. 7.5 4 4 0. 0. 1. + 1081 0 1. 1 32.0 7.000 1 2 20. 20.0 5 4 0. 0. 1. + 1083 0 1. 0 42.0 15.000 1 3 18. 20.0 1 4 0. 0. 1. + 1084 0 1. 1 32.0 15.000 1 1 16. 12.5 5 5 0. 0. 1. + 1086 0 1. 1 27.0 4.000 1 3 18. 7.5 5 5 0. 0. 1. + 1087 0 1. 0 32.0 15.000 1 4 12. 7.5 3 4 0. 0. 1. + 1089 0 1. 1 22.0 0.750 1 3 14. 7.5 2 4 0. 0. 1. + 1096 0 1. 0 22.0 1.500 0 3 16. 7.5 5 3 0. 0. 1. + 1102 0 1. 0 42.0 15.000 1 4 14. 12.5 3 5 0. 0. 1. + 1103 0 1. 0 52.0 15.000 1 3 16. 20.0 5 4 0. 0. 1. + 1107 0 1. 1 37.0 15.000 1 5 20. 20.0 6 4 0. 0. 1. + 1109 0 1. 0 47.0 15.000 1 4 12. 12.5 2 3 0. 0. 1. + 1115 0 1. 1 57.0 15.000 1 2 20. 40.0 6 4 0. 0. 1. + 1119 0 1. 1 32.0 7.000 1 4 17. 20.0 5 5 0. 0. 1. + 1124 0 1. 0 27.0 7.000 1 4 17. 12.5 1 4 0. 0. 1. + 1126 0 1. 1 22.0 1.500 0 1 18. 7.5 6 5 0. 0. 1. + 1128 0 1. 0 22.0 4.000 1 3 9. 7.5 1 4 0. 0. 1. + 1129 0 1. 0 22.0 1.500 0 2 14. 7.5 1 5 0. 0. 1. + 1130 0 1. 1 42.0 15.000 1 2 20. 20.0 6 4 0. 0. 1. + 1133 0 1. 1 57.0 15.000 1 4 9. 12.5 2 4 0. 0. 1. + 1140 0 1. 0 27.0 7.000 1 2 18. 20.0 1 5 0. 0. 1. + 1143 0 1. 0 22.0 4.000 1 3 14. 7.5 1 5 0. 0. 1. + 1146 0 1. 1 37.0 15.000 1 4 14. 20.0 5 3 0. 0. 1. + 1153 0 1. 1 32.0 7.000 1 1 18. 4.0 6 4 0. 0. 1. + 1156 0 1. 0 22.0 1.500 0 2 14. 4.0 5 5 0. 0. 1. + 1157 0 1. 0 22.0 1.500 1 3 12. 4.0 1 3 0. 0. 1. + 1158 0 1. 1 52.0 15.000 1 2 14. 40.0 5 5 0. 0. 1. + 1160 0 1. 0 37.0 15.000 1 2 14. 20.0 1 1 0. 0. 1. + 1161 0 1. 0 32.0 10.000 1 2 14. 12.5 5 5 0. 0. 1. + 1166 0 1. 1 42.0 15.000 1 4 20. 12.5 4 5 0. 0. 1. + 1177 0 1. 0 27.0 4.000 1 3 18. 12.5 4 5 0. 0. 1. + 1178 0 1. 1 37.0 15.000 1 4 20. 40.0 6 5 0. 0. 1. + 1180 0 1. 1 27.0 1.500 0 3 18. 12.5 5 5 0. 0. 1. + 1187 0 1. 0 22.0 0.125 0 2 16. 7.5 6 3 0. 0. 1. + 1191 0 1. 1 32.0 10.000 1 2 20. 12.5 6 3 0. 0. 1. + 1195 0 1. 0 27.0 4.000 0 4 18. 20.0 5 4 0. 0. 1. + 1207 0 1. 0 27.0 7.000 1 2 12. 12.5 5 1 0. 0. 1. + 1208 0 1. 1 32.0 4.000 1 5 18. 7.5 6 3 0. 0. 1. + 1209 0 1. 0 37.0 15.000 1 2 17. 12.5 5 5 0. 0. 1. + 1211 0 1. 1 47.0 15.000 0 4 20. 20.0 6 4 0. 0. 1. + 1215 0 1. 1 27.0 1.500 0 1 18. 12.5 5 5 0. 0. 1. + 1221 0 1. 1 37.0 15.000 1 4 20. 20.0 6 4 0. 0. 1. + 1226 0 1. 0 32.0 15.000 1 4 18. 12.5 1 4 0. 0. 1. + 1229 0 1. 0 32.0 7.000 1 4 17. 40.0 5 4 0. 0. 1. + 1231 0 1. 0 42.0 15.000 1 3 14. 7.5 1 3 0. 0. 1. + 1234 0 1. 0 27.0 7.000 1 3 16. 12.5 1 4 0. 0. 1. + 1235 0 1. 1 27.0 1.500 0 3 16. 7.5 4 2 0. 0. 1. + 1242 0 1. 1 22.0 1.500 0 3 16. 7.5 3 5 0. 0. 1. + 1245 0 1. 1 27.0 4.000 1 3 16. 12.5 4 2 0. 0. 1. + 1260 0 1. 0 27.0 7.000 1 3 12. 12.5 1 2 0. 0. 1. + 1266 0 1. 0 37.0 15.000 1 2 18. 40.0 5 4 0. 0. 1. + 1271 0 1. 0 37.0 7.000 1 3 14. 20.0 4 4 0. 0. 1. + 1273 0 1. 1 22.0 1.500 0 2 16. 7.5 5 5 0. 0. 1. + 1276 0 1. 1 37.0 15.000 1 5 20. 40.0 5 4 0. 0. 1. + 1280 0 1. 0 22.0 1.500 0 4 16. 7.5 5 3 0. 0. 1. + 1282 0 1. 0 32.0 10.000 1 4 16. 20.0 1 5 0. 0. 1. + 1285 0 1. 1 27.0 4.000 0 2 17. 12.5 5 3 0. 0. 1. + 1295 0 1. 0 22.0 0.417 0 4 14. 12.5 5 5 0. 0. 1. + 1298 0 1. 0 27.0 4.000 0 2 18. 12.5 5 5 0. 0. 1. + 1299 0 1. 1 37.0 15.000 1 4 18. 7.5 5 3 0. 0. 1. + 1304 0 1. 1 37.0 10.000 1 5 20. 12.5 7 4 0. 0. 1. + 1305 0 1. 0 27.0 7.000 1 2 14. 12.5 4 2 0. 0. 1. + 1311 0 1. 1 32.0 4.000 1 2 16. 20.0 5 5 0. 0. 1. + 1314 0 1. 1 32.0 4.000 1 2 16. 12.5 6 4 0. 0. 1. + 1319 0 1. 1 22.0 1.500 0 3 18. 12.5 4 5 0. 0. 1. + 1322 0 1. 0 22.0 4.000 1 4 14. 12.5 3 4 0. 0. 1. + 1324 0 1. 0 17.5 0.750 0 2 18. 12.5 5 4 0. 0. 1. + 1327 0 1. 1 32.0 10.000 1 4 20. 7.5 4 5 0. 0. 1. + 1328 0 1. 0 32.0 0.750 0 5 14. 20.0 3 3 0. 0. 1. + 1330 0 1. 1 37.0 15.000 1 4 17. 7.5 5 3 0. 0. 1. + 1332 0 1. 1 32.0 4.000 0 3 14. 12.5 4 5 0. 0. 1. + 1333 0 1. 0 27.0 1.500 0 2 17. 20.0 3 2 0. 0. 1. + 1336 0 1. 0 22.0 7.000 1 4 14. 7.5 1 5 0. 0. 1. + 1341 0 1. 1 47.0 15.000 1 5 14. 20.0 6 5 0. 0. 1. + 1344 0 1. 1 27.0 4.000 1 1 16. 12.5 4 4 0. 0. 1. + 1352 0 1. 0 37.0 15.000 1 5 14. 12.5 1 3 0. 0. 1. + 1358 0 1. 1 42.0 4.000 1 4 18. 20.0 5 5 0. 0. 1. + 1359 0 1. 0 32.0 4.000 1 2 14. 12.5 1 5 0. 0. 1. + 1361 0 1. 1 52.0 15.000 1 2 14. 40.0 7 4 0. 0. 1. + 1364 0 1. 0 22.0 1.500 0 2 16. 7.5 1 4 0. 0. 1. + 1368 0 1. 1 52.0 15.000 1 4 12. 12.5 2 4 0. 0. 1. + 1384 0 1. 0 22.0 0.417 0 3 17. 12.5 1 5 0. 0. 1. + 1390 0 1. 0 22.0 1.500 0 2 16. 7.5 5 5 0. 0. 1. + 1393 0 1. 1 27.0 4.000 1 4 20. 12.5 6 4 0. 0. 1. + 1394 0 1. 0 32.0 15.000 1 4 14. 12.5 1 5 0. 0. 1. + 1402 0 1. 0 27.0 1.500 0 2 16. 20.0 3 5 0. 0. 1. + 1407 0 1. 1 32.0 4.000 0 1 20. 20.0 6 5 0. 0. 1. + 1408 0 1. 1 37.0 15.000 1 3 20. 20.0 6 4 0. 0. 1. + 1412 0 1. 0 32.0 10.000 0 2 16. 20.0 6 5 0. 0. 1. + 1413 0 1. 0 32.0 10.000 1 5 14. 12.5 5 5 0. 0. 1. + 1416 0 1. 1 37.0 1.500 1 4 18. 7.5 5 3 0. 0. 1. + 1417 0 1. 1 32.0 1.500 0 2 18. 12.5 4 4 0. 0. 1. + 1418 0 1. 0 32.0 10.000 1 4 14. 12.5 1 4 0. 0. 1. + 1419 0 1. 0 47.0 15.000 1 4 18. 20.0 5 4 0. 0. 1. + 1420 0 1. 0 27.0 10.000 1 5 12. 7.5 1 5 0. 0. 1. + 1423 0 1. 1 27.0 4.000 1 3 16. 12.5 4 5 0. 0. 1. + 1424 0 1. 0 37.0 15.000 1 4 12. 12.5 4 2 0. 0. 1. + 1432 0 1. 0 27.0 0.750 0 4 16. 12.5 5 5 0. 0. 1. + 1433 0 1. 0 37.0 15.000 1 4 16. 7.5 1 5 0. 0. 1. + 1437 0 1. 0 32.0 15.000 1 3 16. 12.5 1 5 0. 0. 1. + 1438 0 1. 0 27.0 10.000 1 2 16. 7.5 1 5 0. 0. 1. + 1439 0 1. 1 27.0 7.000 0 2 20. 20.0 6 5 0. 0. 1. + 1446 0 1. 0 37.0 15.000 1 2 14. 20.0 1 3 0. 0. 1. + 1450 0 1. 1 27.0 1.500 1 2 17. 7.5 4 4 0. 0. 1. + 1451 0 1. 0 22.0 0.750 1 2 14. 12.5 1 5 0. 0. 1. + 1452 0 1. 1 22.0 4.000 1 4 14. 7.5 2 4 0. 0. 1. + 1453 0 1. 1 42.0 0.125 0 4 17. 12.5 6 4 0. 0. 1. + 1456 0 1. 1 27.0 1.500 1 4 18. 7.5 6 5 0. 0. 1. + 1464 0 1. 1 27.0 7.000 1 3 16. 12.5 6 3 0. 0. 1. + 1469 0 1. 0 52.0 15.000 1 4 14. 7.5 1 3 0. 0. 1. + 1473 0 1. 1 27.0 1.500 0 5 20. 7.5 5 2 0. 0. 1. + 1481 0 1. 0 27.0 1.500 0 2 16. 7.5 5 5 0. 0. 1. + 1482 0 1. 0 27.0 1.500 0 3 17. 12.5 5 5 0. 0. 1. + 1496 0 1. 1 22.0 0.125 0 5 16. 7.5 4 4 0. 0. 1. + 1497 0 1. 0 27.0 4.000 1 4 16. 7.5 1 5 0. 0. 1. + 1504 0 1. 0 27.0 4.000 1 4 12. 7.5 1 5 0. 0. 1. + 1513 0 1. 0 47.0 15.000 1 2 14. 40.0 5 5 0. 0. 1. + 1515 0 1. 0 32.0 15.000 1 3 14. 12.5 5 3 0. 0. 1. + 1534 0 1. 1 42.0 7.000 1 2 16. 12.5 5 5 0. 0. 1. + 1535 0 1. 1 22.0 0.750 0 4 16. 7.5 6 4 0. 0. 1. + 1536 0 1. 1 27.0 0.125 0 3 20. 7.5 6 5 0. 0. 1. + 1540 0 1. 1 32.0 10.000 1 3 20. 20.0 6 5 0. 0. 1. + 1551 0 1. 0 22.0 0.417 0 5 14. 12.5 4 5 0. 0. 1. + 1555 0 1. 0 47.0 15.000 1 5 14. 12.5 1 4 0. 0. 1. + 1557 0 1. 0 32.0 10.000 1 3 14. 40.0 1 5 0. 0. 1. + 1566 0 1. 1 57.0 15.000 1 4 17. 12.5 5 5 0. 0. 1. + 1567 0 1. 1 27.0 4.000 1 3 20. 12.5 6 5 0. 0. 1. + 1576 0 1. 0 32.0 7.000 1 4 17. 12.5 1 5 0. 0. 1. + 1584 0 1. 0 37.0 10.000 1 4 16. 40.0 1 5 0. 0. 1. + 1585 0 1. 0 32.0 10.000 1 1 18. 20.0 1 4 0. 0. 1. + 1590 0 1. 0 22.0 4.000 0 3 14. 7.5 1 4 0. 0. 1. + 1594 0 1. 0 27.0 7.000 1 4 14. 7.5 3 2 0. 0. 1. + 1595 0 1. 1 57.0 15.000 1 5 18. 20.0 5 2 0. 0. 1. + 1603 0 1. 1 32.0 7.000 1 2 18. 7.5 5 5 0. 0. 1. + 1608 0 1. 0 27.0 1.500 0 4 17. 7.5 1 3 0. 0. 1. + 1609 0 1. 1 22.0 1.500 0 4 14. 7.5 5 5 0. 0. 1. + 1615 0 1. 0 22.0 1.500 1 4 14. 4.0 5 4 0. 0. 1. + 1616 0 1. 0 32.0 7.000 1 3 16. 12.5 1 5 0. 0. 1. + 1617 0 1. 0 47.0 15.000 1 3 16. 20.0 5 4 0. 0. 1. + 1620 0 1. 0 22.0 0.750 0 3 16. 40.0 1 5 0. 0. 1. + 1621 0 1. 0 22.0 1.500 1 2 14. 7.5 5 5 0. 0. 1. + 1637 0 1. 0 27.0 4.000 1 1 16. 7.5 5 5 0. 0. 1. + 1638 0 1. 1 52.0 15.000 1 4 16. 20.0 5 5 0. 0. 1. + 1650 0 1. 1 32.0 10.000 1 4 20. 40.0 6 5 0. 0. 1. + 1654 0 1. 1 47.0 15.000 1 4 16. 20.0 6 4 0. 0. 1. + 1665 0 1. 0 27.0 7.000 1 2 14. 7.5 1 2 0. 0. 1. + 1670 0 1. 0 22.0 1.500 0 4 14. 20.0 4 5 0. 0. 1. + 1671 0 1. 0 32.0 10.000 1 2 16. 20.0 5 4 0. 0. 1. + 1675 0 1. 0 22.0 0.750 0 2 16. 12.5 5 4 0. 0. 1. + 1688 0 1. 0 22.0 1.500 0 2 16. 12.5 5 5 0. 0. 1. + 1691 0 1. 0 42.0 15.000 1 3 18. 20.0 6 4 0. 0. 1. + 1695 0 1. 0 27.0 7.000 1 5 14. 20.0 4 5 0. 0. 1. + 1698 0 1. 1 42.0 15.000 1 4 16. 20.0 4 4 0. 0. 1. + 1704 0 1. 0 57.0 15.000 1 3 18. 20.0 5 2 0. 0. 1. + 1705 0 1. 1 42.0 15.000 1 3 18. 12.5 6 2 0. 0. 1. + 1711 0 1. 0 32.0 7.000 1 2 14. 7.5 1 2 0. 0. 1. + 1719 0 1. 1 22.0 4.000 0 5 12. 7.5 4 5 0. 0. 1. + 1723 0 1. 0 22.0 1.500 0 1 16. 7.5 6 5 0. 0. 1. + 1726 0 1. 0 22.0 0.750 0 1 14. 7.5 4 5 0. 0. 1. + 1749 0 1. 0 32.0 15.000 1 4 12. 20.0 1 5 0. 0. 1. + 1752 0 1. 1 22.0 1.500 0 2 18. 12.5 5 3 0. 0. 1. + 1754 0 1. 1 27.0 4.000 1 5 17. 7.5 2 5 0. 0. 1. + 1758 0 1. 0 27.0 4.000 1 4 12. 7.5 1 5 0. 0. 1. + 1761 0 1. 1 42.0 15.000 1 5 18. 7.5 5 4 0. 0. 1. + 1773 0 1. 1 32.0 1.500 0 2 20. 20.0 7 3 0. 0. 1. + 1775 0 1. 1 57.0 15.000 0 4 9. 7.5 3 1 0. 0. 1. + 1786 0 1. 1 37.0 7.000 0 4 18. 12.5 5 5 0. 0. 1. + 1793 0 1. 1 52.0 15.000 1 2 17. 20.0 5 4 0. 0. 1. + 1799 0 1. 1 47.0 15.000 1 4 17. 20.0 6 5 0. 0. 1. + 1803 0 1. 0 27.0 7.000 0 2 17. 20.0 5 4 0. 0. 1. + 1806 0 1. 0 27.0 7.000 1 4 14. 40.0 5 5 0. 0. 1. + 1807 0 1. 0 22.0 4.000 0 2 14. 12.5 3 3 0. 0. 1. + 1808 0 1. 1 37.0 7.000 1 2 20. 40.0 6 5 0. 0. 1. + 1814 0 1. 1 27.0 7.000 0 4 12. 7.5 4 3 0. 0. 1. + 1815 0 1. 1 42.0 10.000 1 4 18. 40.0 6 4 0. 0. 1. + 1818 0 1. 0 22.0 1.500 0 3 14. 7.5 1 5 0. 0. 1. + 1827 0 1. 0 22.0 4.000 1 2 14. 12.5 1 3 0. 0. 1. + 1834 0 1. 0 57.0 15.000 0 4 20. 20.0 6 5 0. 0. 1. + 1835 0 1. 1 37.0 15.000 1 4 14. 12.5 4 3 0. 0. 1. + 1843 0 1. 0 27.0 7.000 1 3 18. 12.5 5 5 0. 0. 1. + 1846 0 1. 0 17.5 10.000 0 4 14. 20.0 4 5 0. 0. 1. + 1850 0 1. 1 22.0 4.000 1 4 16. 12.5 5 5 0. 0. 1. + 1851 0 1. 0 27.0 4.000 1 2 16. 12.5 1 4 0. 0. 1. + 1854 0 1. 0 37.0 15.000 1 2 14. 12.5 5 1 0. 0. 1. + 1859 0 1. 0 22.0 1.500 0 5 14. 4.0 1 4 0. 0. 1. + 1861 0 1. 1 27.0 7.000 1 2 20. 7.5 5 4 0. 0. 1. + 1866 0 1. 1 27.0 4.000 1 4 14. 7.5 5 5 0. 0. 1. + 1873 0 1. 1 22.0 0.125 0 1 16. 7.5 3 5 0. 0. 1. + 1875 0 1. 0 27.0 7.000 1 4 14. 20.0 1 4 0. 0. 1. + 1885 0 1. 0 32.0 15.000 1 5 16. 12.5 5 3 0. 0. 1. + 1892 0 1. 1 32.0 10.000 1 4 18. 12.5 5 4 0. 0. 1. + 1895 0 1. 0 32.0 15.000 1 2 14. 7.5 3 4 0. 0. 1. + 1896 0 1. 0 22.0 1.500 0 3 17. 7.5 5 5 0. 0. 1. + 1897 0 1. 1 27.0 4.000 1 4 17. 7.5 4 4 0. 0. 1. + 1899 0 1. 0 52.0 15.000 1 5 14. 12.5 1 5 0. 0. 1. + 1904 0 1. 0 27.0 7.000 1 2 12. 20.0 1 2 0. 0. 1. + 1905 0 1. 0 27.0 7.000 1 3 12. 12.5 1 4 0. 0. 1. + 1908 0 1. 0 42.0 15.000 1 2 14. 20.0 1 4 0. 0. 1. + 1916 0 1. 0 42.0 15.000 1 4 14. 20.0 5 4 0. 0. 1. + 1918 0 1. 1 27.0 7.000 1 4 14. 7.5 3 3 0. 0. 1. + 1920 0 1. 1 27.0 7.000 1 2 20. 20.0 6 2 0. 0. 1. + 1930 0 1. 0 42.0 15.000 1 3 12. 20.0 3 3 0. 0. 1. + 1940 0 1. 1 27.0 4.000 1 3 16. 7.5 3 5 0. 0. 1. + 1947 0 1. 0 27.0 7.000 1 3 14. 40.0 1 4 0. 0. 1. + 1949 0 1. 0 22.0 1.500 0 2 14. 12.5 4 5 0. 0. 1. + 1951 0 1. 0 27.0 4.000 1 4 14. 12.5 1 4 0. 0. 1. + 1952 0 1. 0 22.0 4.000 0 4 14. 4.0 5 5 0. 0. 1. + 1960 0 1. 0 22.0 1.500 0 2 16. 20.0 4 5 0. 0. 1. + 9001 0 1. 1 47.0 15.000 0 4 14. 12.5 5 4 0. 0. 1. + 9012 0 1. 1 37.0 10.000 1 2 18. 12.5 6 2 0. 0. 1. + 9023 0 1. 1 37.0 15.000 1 3 17. 40.0 5 4 0. 0. 1. + 9029 0 1. 0 27.0 4.000 1 2 16. 7.5 1 4 0. 0. 1. + 6 3 1. 1 27.0 1.500 0 3 18. 20.0 4 4 3. 0. 1. + 12 3 1. 0 27.0 4.000 1 3 17. 12.5 1 5 3. 0. 1. + 43 4 1. 1 37.0 15.000 1 5 18. 12.5 6 2 7. 0. 1. + 53 6 1. 0 32.0 10.000 1 3 17. 40.0 5 2 12. 0. 1. + 67 1 1. 1 22.0 0.125 0 4 16. 20.0 5 5 1. 0. 1. + 79 1 1. 0 22.0 1.500 1 2 14. 4.0 1 5 1. 0. 1. + 122 6 1. 1 37.0 15.000 1 4 14. 7.5 5 2 12. 0. 1. + 126 4 1. 0 22.0 1.500 0 2 14. 4.0 3 4 7. 0. 1. + 133 2 1. 1 37.0 15.000 1 2 18. 20.0 6 4 2. 0. 1. + 138 3 1. 0 32.0 15.000 1 4 12. 12.5 3 2 3. 0. 1. + 154 1 1. 0 37.0 15.000 1 4 14. 12.5 4 2 1. 0. 1. + 159 4 1. 0 42.0 15.000 1 3 17. 40.0 1 4 7. 0. 1. + 174 6 1. 0 42.0 15.000 1 5 9. 12.5 4 1 12. 0. 1. + 176 5 1. 1 37.0 10.000 1 2 20. 40.0 6 2 12. 0. 1. + 181 6 1. 0 32.0 15.000 1 3 14. 12.5 1 2 12. 0. 1. + 182 3 1. 1 27.0 4.000 0 1 18. 7.5 6 5 3. 0. 1. + 186 4 1. 1 37.0 10.000 1 2 18. 40.0 7 3 7. 0. 1. + 189 4 1. 0 27.0 4.000 0 3 17. 7.5 5 5 7. 0. 1. + 204 1 1. 1 42.0 15.000 1 4 16. 20.0 5 5 1. 0. 1. + 215 1 1. 0 47.0 15.000 1 5 14. 12.5 4 5 1. 0. 1. + 232 4 1. 0 27.0 4.000 1 3 18. 12.5 5 4 7. 0. 1. + 233 1 1. 0 27.0 7.000 1 5 14. 4.0 1 4 1. 0. 1. + 252 6 1. 1 27.0 1.500 1 3 17. 20.0 5 4 12. 0. 1. + 253 5 1. 0 27.0 7.000 1 4 14. 12.5 6 2 12. 0. 1. + 274 3 1. 0 42.0 15.000 1 4 16. 20.0 5 4 3. 0. 1. + 275 4 1. 0 27.0 10.000 1 4 12. 12.5 7 3 7. 0. 1. + 287 1 1. 1 27.0 1.500 0 2 18. 12.5 5 2 1. 0. 1. + 288 1 1. 1 32.0 4.000 0 4 20. 20.0 6 4 1. 0. 1. + 325 1 1. 0 27.0 7.000 1 3 14. 7.5 1 3 1. 0. 1. + 328 3 1. 0 32.0 10.000 1 4 14. 7.5 1 4 3. 0. 1. + 344 3 1. 1 27.0 4.000 1 2 18. 12.5 7 2 3. 0. 1. + 353 1 1. 0 17.5 0.750 0 5 14. 7.5 4 5 1. 0. 1. + 354 1 1. 0 32.0 10.000 1 4 18. 20.0 1 5 1. 0. 1. + 367 4 1. 0 32.0 7.000 1 2 17. 20.0 6 4 7. 0. 1. + 369 4 1. 1 37.0 15.000 1 2 20. 20.0 6 4 7. 0. 1. + 390 4 1. 0 37.0 10.000 0 1 20. 20.0 5 3 7. 0. 1. + 392 5 1. 0 32.0 10.000 1 2 16. 12.5 5 5 12. 0. 1. + 423 4 1. 1 52.0 15.000 1 2 20. 40.0 6 4 7. 0. 1. + 432 4 1. 0 42.0 15.000 1 1 12. 12.5 1 3 7. 0. 1. + 436 1 1. 1 52.0 15.000 1 2 20. 40.0 6 3 1. 0. 1. + 483 2 1. 1 37.0 15.000 1 3 18. 12.5 6 5 2. 0. 1. + 513 5 1. 0 22.0 4.000 0 3 12. 12.5 3 4 12. 0. 1. + 516 6 1. 1 27.0 7.000 1 1 18. 12.5 6 2 12. 0. 1. + 518 1 1. 1 27.0 4.000 1 3 18. 12.5 5 5 1. 0. 1. + 520 7 1. 1 47.0 15.000 1 4 17. 12.5 6 5 12. 0. 1. + 526 6 1. 0 42.0 15.000 1 4 12. 20.0 1 1 12. 0. 1. + 528 4 1. 1 27.0 4.000 0 3 14. 7.5 3 4 7. 0. 1. + 553 4 1. 0 32.0 7.000 1 4 18. 12.5 4 5 7. 0. 1. + 576 1 1. 1 32.0 0.417 1 3 12. 7.5 3 4 1. 0. 1. + 611 3 1. 1 47.0 15.000 1 5 16. 12.5 5 4 3. 0. 1. + 625 5 1. 1 37.0 15.000 1 2 20. 40.0 5 4 12. 0. 1. + 635 4 1. 1 22.0 4.000 1 2 17. 7.5 6 4 7. 0. 1. + 646 1 1. 1 27.0 4.000 0 2 14. 12.5 4 5 1. 0. 1. + 657 4 1. 0 52.0 15.000 1 5 16. 12.5 1 3 7. 0. 1. + 659 1 1. 1 27.0 4.000 0 3 14. 12.5 3 3 1. 0. 1. + 666 1 1. 0 27.0 10.000 1 4 16. 12.5 1 4 1. 0. 1. + 679 1 1. 1 32.0 7.000 1 3 14. 20.0 7 4 1. 0. 1. + 729 4 1. 1 32.0 7.000 1 2 18. 20.0 4 1 7. 0. 1. + 755 3 1. 1 22.0 1.500 0 1 14. 20.0 3 2 3. 0. 1. + 758 4 1. 1 22.0 4.000 1 3 18. 12.5 6 4 7. 0. 1. + 770 4 1. 1 42.0 15.000 1 4 20. 40.0 6 4 7. 0. 1. + 786 2 1. 0 57.0 15.000 1 1 18. 40.0 5 4 2. 0. 1. + 797 4 1. 0 32.0 4.000 1 3 18. 12.5 5 2 7. 0. 1. + 811 1 1. 1 27.0 4.000 1 1 16. 20.0 4 4 1. 0. 1. + 834 4 1. 1 32.0 7.000 1 4 16. 12.5 1 4 7. 0. 1. + 858 2 1. 1 57.0 15.000 1 1 17. 20.0 4 4 2. 0. 1. + 885 4 1. 0 42.0 15.000 1 4 14. 20.0 5 2 7. 0. 1. + 893 4 1. 1 37.0 10.000 1 1 18. 12.5 5 3 7. 0. 1. + 927 3 1. 1 42.0 15.000 1 3 17. 12.5 6 1 3. 0. 1. + 928 1 1. 0 52.0 15.000 1 3 14. 12.5 4 4 1. 0. 1. + 933 2 1. 0 27.0 7.000 1 3 17. 12.5 5 3 2. 0. 1. + 951 6 1. 1 32.0 7.000 1 2 12. 20.0 4 2 12. 0. 1. + 968 1 1. 1 22.0 4.000 0 4 14. 7.5 2 5 1. 0. 1. + 972 3 1. 1 27.0 7.000 1 3 18. 12.5 6 4 3. 0. 1. + 975 6 1. 0 37.0 15.000 1 1 18. 12.5 5 5 12. 0. 1. + 977 4 1. 0 32.0 15.000 1 3 17. 20.0 1 3 7. 0. 1. + 981 4 1. 0 27.0 7.000 0 2 17. 20.0 5 5 7. 0. 1. + 986 1 1. 0 32.0 7.000 1 3 17. 12.5 5 3 1. 0. 1. + 1002 1 1. 1 32.0 1.500 1 2 14. 7.5 2 4 1. 0. 1. + 1007 6 1. 0 42.0 15.000 1 4 14. 12.5 1 2 12. 0. 1. + 1011 4 1. 1 32.0 10.000 1 3 14. 20.0 5 4 7. 0. 1. + 1035 4 1. 1 37.0 4.000 1 1 20. 20.0 6 3 7. 0. 1. + 1050 1 1. 0 27.0 4.000 1 2 16. 12.5 5 3 1. 0. 1. + 1056 5 1. 0 42.0 15.000 1 3 14. 20.0 4 3 12. 0. 1. + 1057 1 1. 1 27.0 10.000 1 5 20. 20.0 6 5 1. 0. 1. + 1075 6 1. 1 37.0 10.000 1 2 20. 40.0 6 2 12. 0. 1. + 1080 6 1. 0 27.0 7.000 1 1 14. 12.5 3 3 12. 0. 1. + 1125 3 1. 0 27.0 7.000 1 4 12. 7.5 1 2 3. 0. 1. + 1131 3 1. 1 32.0 10.000 1 2 14. 12.5 4 4 3. 0. 1. + 1138 7 1. 0 17.5 0.750 1 2 12. 7.5 1 3 12. 0. 1. + 1150 5 1. 0 32.0 15.000 1 3 18. 40.0 5 4 12. 0. 1. + 1163 2 1. 0 22.0 7.000 0 4 14. 20.0 4 3 2. 0. 1. + 1169 1 1. 1 32.0 7.000 1 4 20. 20.0 6 5 1. 0. 1. + 1198 4 1. 1 27.0 4.000 1 2 18. 12.5 6 2 7. 0. 1. + 1204 1 1. 0 22.0 1.500 1 5 14. 7.5 5 3 1. 0. 1. + 1218 7 1. 0 32.0 15.000 0 3 17. 7.5 5 1 12. 0. 1. + 1230 5 1. 0 42.0 15.000 1 2 12. 20.0 1 2 12. 0. 1. + 1236 4 1. 1 42.0 15.000 1 3 20. 40.0 5 4 7. 0. 1. + 1247 6 1. 1 32.0 10.000 0 2 18. 20.0 4 2 12. 0. 1. + 1259 5 1. 0 32.0 15.000 1 3 9. 12.5 1 1 12. 0. 1. + 1294 4 1. 1 57.0 15.000 1 5 20. 12.5 4 5 7. 0. 1. + 1353 5 1. 1 47.0 15.000 1 4 20. 40.0 6 4 12. 0. 1. + 1370 2 1. 0 42.0 15.000 1 2 17. 20.0 6 3 2. 0. 1. + 1427 6 1. 1 37.0 15.000 1 3 17. 40.0 6 3 12. 0. 1. + 1445 5 1. 1 37.0 15.000 1 5 17. 12.5 5 2 12. 0. 1. + 1460 4 1. 1 27.0 10.000 1 2 20. 12.5 6 4 7. 0. 1. + 1480 2 1. 1 37.0 15.000 1 2 16. 20.0 5 4 2. 0. 1. + 1505 6 1. 0 32.0 15.000 1 1 14. 20.0 5 2 12. 0. 1. + 1543 4 1. 1 32.0 10.000 1 3 17. 7.5 6 3 7. 0. 1. + 1548 2 1. 1 37.0 15.000 1 4 18. 12.5 5 1 2. 0. 1. + 1550 4 1. 0 27.0 1.500 0 2 17. 12.5 5 5 7. 0. 1. + 1561 3 1. 0 47.0 15.000 1 2 17. 20.0 5 2 3. 0. 1. + 1564 6 1. 1 37.0 15.000 1 2 17. 20.0 5 4 12. 0. 1. + 1573 5 1. 0 27.0 4.000 0 2 14. 20.0 5 5 12. 0. 1. + 1575 2 1. 0 27.0 10.000 1 4 14. 12.5 1 5 2. 0. 1. + 1599 1 1. 0 22.0 4.000 1 3 16. 12.5 1 3 1. 0. 1. + 1622 6 1. 1 52.0 7.000 0 4 16. 7.5 5 5 12. 0. 1. + 1629 2 1. 0 27.0 4.000 1 1 16. 7.5 3 5 2. 0. 1. + 1664 4 1. 0 37.0 15.000 1 2 17. 40.0 6 4 7. 0. 1. + 1669 2 1. 0 27.0 4.000 0 1 17. 4.0 3 1 2. 0. 1. + 1674 7 1. 0 17.5 0.750 1 2 12. 7.5 3 5 12. 0. 1. + 1682 4 1. 0 32.0 15.000 1 5 18. 12.5 5 4 7. 0. 1. + 1685 4 1. 0 22.0 4.000 0 1 16. 7.5 3 5 7. 0. 1. + 1697 2 1. 1 32.0 4.000 1 4 18. 20.0 6 4 2. 0. 1. + 1716 1 1. 0 22.0 1.500 1 3 18. 20.0 5 2 1. 0. 1. + 1730 3 1. 0 42.0 15.000 1 2 17. 40.0 5 4 3. 0. 1. + 1731 1 1. 1 32.0 7.000 1 4 16. 12.5 4 4 1. 0. 1. + 1732 5 1. 1 37.0 15.000 0 3 14. 20.0 6 2 12. 0. 1. + 1743 1 1. 1 42.0 15.000 1 3 16. 40.0 6 3 1. 0. 1. + 1751 1 1. 1 27.0 4.000 1 1 18. 7.5 5 4 1. 0. 1. + 1757 2 1. 1 37.0 15.000 1 4 20. 40.0 7 3 2. 0. 1. + 1763 4 1. 1 37.0 15.000 1 3 20. 40.0 6 4 7. 0. 1. + 1766 3 1. 1 22.0 1.500 0 2 12. 12.5 3 3 3. 0. 1. + 1772 3 1. 1 32.0 4.000 1 3 20. 20.0 6 2 3. 0. 1. + 1776 2 1. 1 32.0 15.000 1 5 20. 20.0 6 5 2. 0. 1. + 1782 5 1. 0 52.0 15.000 1 1 18. 40.0 5 5 12. 0. 1. + 1784 5 1. 1 47.0 15.000 0 1 18. 40.0 6 5 12. 0. 1. + 1791 3 1. 0 32.0 15.000 1 4 16. 12.5 4 4 3. 0. 1. + 1831 4 1. 0 32.0 15.000 1 3 14. 12.5 3 2 7. 0. 1. + 1840 4 1. 0 27.0 7.000 1 4 16. 20.0 1 2 7. 0. 1. + 1844 5 1. 1 42.0 15.000 1 3 18. 12.5 6 2 12. 0. 1. + 1856 4 1. 0 42.0 15.000 1 2 14. 12.5 3 2 7. 0. 1. + 1876 5 1. 1 27.0 7.000 1 2 17. 12.5 5 4 12. 0. 1. + 1929 3 1. 1 32.0 10.000 1 4 14. 7.5 4 3 3. 0. 1. + 1935 4 1. 1 47.0 15.000 1 3 16. 20.0 4 2 7. 0. 1. + 1938 1 1. 1 22.0 1.500 1 1 12. 7.5 2 5 1. 0. 1. + 1941 4 1. 0 32.0 10.000 1 2 18. 7.5 5 4 7. 0. 1. + 1954 2 1. 1 32.0 10.000 1 2 17. 20.0 6 5 2. 0. 1. + 1959 2 1. 1 22.0 7.000 1 3 18. 20.0 6 2 2. 0. 1. + 9010 1 1. 0 32.0 15.000 1 3 14. 40.0 1 5 1. 0. 1. +END OF PT DATA + +BEGIN RB DATA (6366 observations): + + 3. 1. 3. 32.0 9.0 3.0 3. 17.0 40.0 2. 5. 0.1111111 0. 1. + 12. 1. 3. 27.0 13.0 3.0 1. 14.0 20.0 3. 4. 3.2307692 0. 1. + 51. 1. 4. 22.0 2.5 0.0 1. 16.0 11.5 3. 5. 1.3999996 0. 1. + 53. 1. 4. 37.0 16.5 4.0 3. 16.0 20.0 5. 5. 0.7272727 0. 1. + 54. 1. 5. 27.0 9.0 1.0 1. 14.0 14.0 3. 4. 4.6666660 0. 1. + 74. 1. 4. 27.0 9.0 0.0 2. 14.0 20.0 3. 4. 4.6666660 0. 1. + 81. 1. 5. 37.0 23.0 5.5 2. 12.0 20.0 5. 4. 0.8521735 0. 1. + 83. 1. 5. 37.0 23.0 5.5 2. 12.0 20.0 2. 3. 1.8260860 0. 1. + 89. 1. 3. 22.0 2.5 0.0 2. 12.0 11.5 3. 3. 4.7999992 0. 1. + 102. 1. 3. 27.0 6.0 0.0 1. 16.0 20.0 3. 5. 1.3333330 0. 1. + 135. 1. 2. 27.0 6.0 2.0 1. 16.0 20.0 3. 5. 3.2666645 0. 1. + 137. 1. 5. 27.0 6.0 2.0 3. 14.0 14.0 3. 5. 2.0416660 0. 1. + 144. 1. 3. 37.0 16.5 5.5 1. 12.0 11.5 2. 3. 0.4848484 0. 1. + 160. 1. 5. 27.0 6.0 0.0 2. 14.0 20.0 3. 2. 2.0000000 0. 1. + 168. 1. 4. 22.0 6.0 1.0 1. 14.0 14.0 4. 4. 3.2666645 0. 1. + 182. 1. 4. 37.0 9.0 2.0 2. 14.0 40.0 3. 6. 1.3611107 0. 1. + 202. 1. 4. 27.0 6.0 1.0 1. 12.0 20.0 3. 5. 2.0000000 0. 1. + 228. 1. 1. 37.0 23.0 5.5 4. 14.0 14.0 5. 2. 1.8260860 0. 1. + 239. 1. 2. 42.0 23.0 2.0 2. 20.0 20.0 4. 4. 1.8260860 0. 1. + 243. 1. 4. 37.0 6.0 0.0 2. 16.0 20.0 5. 4. 2.0416660 0. 1. + 248. 1. 5. 22.0 2.5 0.0 2. 14.0 20.0 3. 4. 7.8399963 0. 1. + 251. 1. 3. 37.0 16.5 5.5 2. 9.0 40.0 3. 2. 2.5454540 0. 1. + 264. 1. 3. 42.0 23.0 5.5 3. 12.0 14.0 5. 4. 0.5326087 0. 1. + 266. 1. 2. 27.0 9.0 2.0 4. 20.0 20.0 3. 4. 0.6222222 0. 1. + 280. 1. 4. 27.0 6.0 1.0 2. 12.0 11.5 5. 4. 0.5833333 0. 1. + 284. 1. 5. 27.0 2.5 0.0 3. 16.0 14.0 4. 1. 4.7999992 0. 1. + 286. 1. 2. 27.0 6.0 2.0 2. 12.0 11.5 2. 5. 0.1666666 0. 1. + 289. 1. 5. 37.0 13.0 1.0 3. 12.0 11.5 3. 4. 0.6153846 0. 1. + 293. 1. 2. 32.0 16.5 2.0 2. 12.0 14.0 4. 2. 1.1878777 0. 1. + 296. 1. 3. 27.0 6.0 1.0 1. 14.0 14.0 3. 6. 11.1999989 0. 1. + 297. 1. 3. 32.0 16.5 4.0 3. 14.0 20.0 5. 5. 1.1878777 0. 1. + 300. 1. 3. 27.0 9.0 2.0 1. 14.0 20.0 3. 4. 2.1777763 0. 1. + 308. 1. 3. 37.0 16.5 3.0 3. 14.0 14.0 3. 2. 0.4848484 0. 1. + 312. 1. 4. 32.0 16.5 5.5 4. 12.0 14.0 2. 4. 0.7272727 0. 1. + 320. 1. 5. 42.0 16.5 4.0 3. 16.0 40.0 4. 6. 0.7272727 0. 1. + 322. 1. 3. 27.0 9.0 2.0 2. 12.0 14.0 5. 2. 1.3333330 0. 1. + 332. 1. 3. 17.5 0.5 0.0 1. 12.0 11.5 3. 2. 7.0000000 0. 1. + 339. 1. 4. 42.0 23.0 5.5 2. 20.0 4.0 3. 2. 0.5217391 0. 1. + 354. 1. 5. 37.0 16.5 3.0 3. 12.0 20.0 3. 5. 0.2121212 0. 1. + 359. 1. 4. 22.0 2.5 1.0 2. 14.0 20.0 3. 5. 0.4000000 0. 1. + 361. 1. 4. 27.0 2.5 0.0 2. 16.0 20.0 4. 1. 1.3999996 0. 1. + 368. 1. 4. 22.0 2.5 0.0 2. 14.0 14.0 3. 6. 3.1999998 0. 1. + 370. 1. 4. 37.0 13.0 3.0 2. 16.0 40.0 4. 5. 1.5076914 0. 1. + 373. 1. 4. 22.0 2.5 0.0 2. 16.0 14.0 3. 4. 7.8399963 0. 1. + 386. 1. 4. 22.0 2.5 0.0 1. 14.0 11.5 1. 2. 7.8399963 0. 1. + 387. 1. 5. 22.0 2.5 0.0 3. 12.0 14.0 3. 2. 0.4000000 0. 1. + 410. 1. 5. 22.0 2.5 0.0 3. 16.0 20.0 4. 5. 4.8999996 0. 1. + 411. 1. 3. 42.0 23.0 4.0 3. 16.0 40.0 5. 5. 0.0434783 0. 1. + 425. 1. 5. 32.0 13.0 3.0 3. 14.0 14.0 4. 4. 0.0769231 0. 1. + 431. 1. 5. 22.0 6.0 2.0 2. 14.0 14.0 3. 4. 0.5833333 0. 1. + 471. 1. 3. 27.0 2.5 1.0 4. 17.0 6.5 4. 6. 4.7999992 0. 1. + 473. 1. 2. 42.0 23.0 3.0 3. 14.0 20.0 3. 5. 0.8521735 0. 1. + 478. 1. 4. 22.0 2.5 0.0 1. 17.0 40.0 6. 6. 4.7999992 0. 1. + 496. 1. 2. 42.0 23.0 3.0 3. 14.0 20.0 3. 5. 2.9217386 0. 1. + 510. 1. 4. 42.0 23.0 2.0 2. 14.0 14.0 4. 4. 0.5217391 0. 1. + 512. 1. 4. 42.0 23.0 3.0 3. 12.0 20.0 5. 4. 0.5326087 0. 1. + 516. 1. 4. 37.0 16.5 2.0 3. 14.0 20.0 3. 4. 0.4848484 0. 1. + 521. 1. 4. 27.0 2.5 0.0 2. 20.0 20.0 4. 5. 7.8399963 0. 1. + 529. 1. 2. 32.0 9.0 2.0 2. 12.0 9.0 2. 2. 1.3333330 0. 1. + 533. 1. 4. 42.0 13.0 0.0 1. 14.0 20.0 3. 4. 1.5076914 0. 1. + 536. 1. 4. 22.0 6.0 2.0 1. 12.0 11.5 3. 4. 1.3333330 0. 1. + 544. 1. 5. 32.0 16.5 3.0 3. 14.0 20.0 2. 4. 1.1878777 0. 1. + 546. 1. 4. 42.0 13.0 0.0 2. 12.0 11.5 3. 2. 1.5076914 0. 1. + 547. 1. 5. 27.0 9.0 1.0 3. 14.0 20.0 5. 5. 1.3333330 0. 1. + 565. 1. 5. 22.0 6.0 2.0 2. 12.0 14.0 2. 5. 7.0000000 0. 1. + 575. 1. 2. 27.0 16.5 2.0 3. 16.0 20.0 4. 5. 0.7272727 0. 1. + 577. 1. 5. 37.0 13.0 2.0 1. 12.0 14.0 3. 4. 1.5076914 0. 1. + 584. 1. 5. 27.0 6.0 0.0 2. 14.0 20.0 3. 4. 2.0416660 0. 1. + 587. 1. 2. 27.0 2.5 1.0 1. 12.0 11.5 2. 3. 26.8799896 0. 1. + 588. 1. 5. 42.0 23.0 5.5 4. 20.0 40.0 5. 4. 0.5326087 0. 1. + 612. 1. 5. 27.0 6.0 0.0 2. 16.0 20.0 5. 2. 2.0000000 0. 1. + 616. 1. 5. 37.0 16.5 3.0 2. 14.0 20.0 3. 5. 0.2121212 0. 1. + 618. 1. 2. 32.0 9.0 2.0 2. 16.0 20.0 3. 5. 1.3333330 0. 1. + 630. 1. 3. 37.0 16.5 5.5 3. 12.0 20.0 5. 5. 2.5454540 0. 1. + 633. 1. 5. 27.0 6.0 2.0 2. 12.0 20.0 3. 4. 0.1666666 0. 1. + 648. 1. 5. 32.0 16.5 3.0 1. 12.0 20.0 4. 4. 0.4848484 0. 1. + 652. 1. 5. 27.0 9.0 2.0 1. 14.0 11.5 5. 1. 1.3333330 0. 1. + 672. 1. 4. 22.0 2.5 0.0 2. 16.0 20.0 5. 5. 0.4000000 0. 1. + 674. 1. 5. 32.0 16.5 2.0 4. 14.0 14.0 5. 2. 0.4848484 0. 1. + 706. 1. 2. 22.0 6.0 2.0 2. 14.0 9.0 2. 5. 0.1666666 0. 1. + 715. 1. 3. 32.0 13.0 3.0 1. 12.0 11.5 4. 5. 1.5076914 0. 1. + 733. 1. 5. 32.0 16.5 3.0 2. 12.0 20.0 3. 4. 0.0606061 0. 1. + 734. 1. 3. 27.0 6.0 2.0 1. 14.0 11.5 3. 6. 2.0416660 0. 1. + 736. 1. 5. 22.0 2.5 0.0 1. 20.0 14.0 4. 4. 0.4000000 0. 1. + 740. 1. 3. 32.0 9.0 2.0 3. 14.0 20.0 3. 5. 0.8888888 0. 1. + 771. 1. 3. 22.0 2.5 1.0 2. 14.0 11.5 3. 2. 4.7999992 0. 1. + 775. 1. 3. 22.0 2.5 0.0 2. 16.0 9.0 3. 4. 4.7999992 0. 1. + 779. 1. 5. 27.0 9.0 2.0 1. 16.0 40.0 4. 6. 1.3333330 0. 1. + 780. 1. 3. 42.0 23.0 2.0 2. 12.0 14.0 2. 2. 0.1521739 0. 1. + 784. 1. 3. 37.0 16.5 3.0 2. 17.0 20.0 3. 2. 1.1878777 0. 1. + 808. 1. 5. 32.0 13.0 2.0 2. 12.0 20.0 2. 6. 0.9423077 0. 1. + 822. 1. 1. 27.0 13.0 2.0 2. 12.0 11.5 4. 4. 1.5076914 0. 1. + 825. 1. 5. 27.0 2.5 0.0 2. 14.0 20.0 3. 2. 0.4000000 0. 1. + 827. 1. 5. 27.0 9.0 0.0 1. 14.0 20.0 4. 4. 0.1111111 0. 1. + 839. 1. 5. 32.0 13.0 2.0 2. 16.0 20.0 3. 3. 0.9423077 0. 1. + 860. 1. 4. 27.0 9.0 2.0 2. 14.0 20.0 3. 5. 0.3888888 0. 1. + 865. 1. 3. 22.0 2.5 1.0 3. 14.0 11.5 5. 4. 4.8999996 0. 1. + 866. 1. 2. 37.0 23.0 2.0 2. 12.0 40.0 5. 5. 0.5326087 0. 1. + 882. 1. 2. 27.0 6.0 2.0 1. 14.0 20.0 3. 5. 2.0416660 0. 1. + 922. 1. 4. 27.0 2.5 1.0 2. 12.0 11.5 5. 2. 4.8999996 0. 1. + 946. 1. 3. 37.0 13.0 5.5 2. 12.0 40.0 5. 5. 5.1692305 0. 1. + 948. 1. 5. 37.0 16.5 4.0 1. 12.0 40.0 3. 6. 1.6969690 0. 1. + 954. 1. 5. 22.0 2.5 0.0 1. 14.0 20.0 3. 5. 1.3999996 0. 1. + 955. 1. 4. 42.0 13.0 0.0 1. 14.0 11.5 5. 5. 0.0769231 0. 1. + 961. 1. 5. 27.0 9.0 1.0 1. 14.0 20.0 5. 5. 2.1777763 0. 1. + 980. 1. 4. 22.0 2.5 0.0 1. 14.0 11.5 3. 4. 1.3999996 0. 1. + 1000. 1. 4. 22.0 2.5 1.0 2. 14.0 20.0 5. 4. 7.8399963 0. 1. + 1011. 1. 4. 27.0 6.0 2.0 3. 16.0 20.0 4. 6. 0.5833333 0. 1. + 1013. 1. 2. 32.0 16.5 1.0 2. 14.0 40.0 3. 5. 2.7151508 0. 1. + 1024. 1. 3. 27.0 13.0 2.0 1. 14.0 20.0 3. 4. 0.9423077 0. 1. + 1029. 1. 4. 22.0 0.5 0.0 2. 12.0 20.0 3. 2. 7.0000000 0. 1. + 1035. 1. 5. 27.0 6.0 1.0 1. 16.0 20.0 4. 3. 3.2666645 0. 1. + 1037. 1. 2. 27.0 9.0 2.0 2. 14.0 11.5 3. 5. 4.6666660 0. 1. + 1041. 1. 3. 27.0 9.0 2.0 2. 12.0 14.0 3. 4. 2.1777763 0. 1. + 1047. 1. 4. 32.0 16.5 3.0 3. 12.0 20.0 2. 3. 0.4848484 0. 1. + 1049. 1. 5. 22.0 2.5 0.0 1. 12.0 20.0 3. 3. 1.3999996 0. 1. + 1071. 1. 4. 22.0 2.5 1.0 2. 14.0 11.5 4. 4. 3.1999998 0. 1. + 1072. 1. 1. 22.0 2.5 0.0 2. 9.0 6.5 2. 4. 11.1999998 0. 1. + 1074. 1. 3. 32.0 13.0 2.0 1. 20.0 40.0 6. 6. 1.5076914 0. 1. + 1101. 1. 5. 32.0 9.0 1.0 2. 14.0 40.0 3. 5. 1.3333330 0. 1. + 1118. 1. 5. 27.0 2.5 0.0 1. 20.0 20.0 6. 4. 1.3999996 0. 1. + 1125. 1. 4. 27.0 9.0 2.0 2. 14.0 9.0 2. 5. 0.3888888 0. 1. + 1128. 1. 4. 27.0 6.0 0.0 3. 12.0 11.5 5. 2. 2.0000000 0. 1. + 1129. 1. 2. 22.0 2.5 0.0 3. 14.0 20.0 3. 2. 4.8999996 0. 1. + 1130. 1. 3. 27.0 9.0 2.0 3. 17.0 9.0 4. 6. 1.3611107 0. 1. + 1151. 1. 4. 27.0 6.0 2.0 1. 14.0 40.0 3. 4. 2.0416660 0. 1. + 1152. 1. 5. 22.0 2.5 1.0 1. 12.0 20.0 2. 2. 1.3999996 0. 1. + 1158. 1. 4. 27.0 16.5 4.0 3. 12.0 40.0 2. 6. 0.2121212 0. 1. + 1165. 1. 2. 27.0 6.0 1.0 2. 14.0 11.5 4. 3. 3.2666645 0. 1. + 1187. 1. 2. 32.0 6.0 1.0 1. 17.0 11.5 4. 4. 7.4666672 0. 1. + 1194. 1. 5. 27.0 6.0 2.0 2. 16.0 20.0 4. 3. 0.5833333 0. 1. + 1202. 1. 4. 42.0 23.0 3.0 3. 17.0 20.0 4. 4. 0.5217391 0. 1. + 1207. 1. 4. 32.0 9.0 2.0 1. 16.0 20.0 4. 6. 0.1111111 0. 1. + 1223. 1. 3. 42.0 23.0 4.0 3. 14.0 20.0 4. 3. 0.5217391 0. 1. + 1232. 1. 5. 27.0 6.0 2.0 1. 12.0 9.0 5. 2. 2.0000000 0. 1. + 1233. 1. 2. 42.0 23.0 4.0 4. 20.0 40.0 4. 5. 0.1521739 0. 1. + 1251. 1. 3. 32.0 6.0 0.0 2. 20.0 40.0 4. 5. 4.6666660 0. 1. + 1259. 1. 5. 27.0 2.5 0.0 2. 14.0 20.0 3. 2. 1.3999996 0. 1. + 1261. 1. 2. 42.0 16.5 3.0 3. 12.0 20.0 3. 5. 1.1878777 0. 1. + 1269. 1. 4. 37.0 23.0 3.0 2. 12.0 20.0 5. 4. 1.8260860 0. 1. + 1271. 1. 3. 27.0 2.5 0.0 2. 17.0 14.0 4. 4. 1.3999996 0. 1. + 1278. 1. 3. 32.0 13.0 3.0 3. 20.0 40.0 4. 6. 3.2307692 0. 1. + 1288. 1. 3. 27.0 2.5 0.0 2. 14.0 40.0 3. 4. 4.7999992 0. 1. + 1296. 1. 3. 42.0 16.5 2.0 1. 16.0 40.0 3. 5. 1.1878777 0. 1. + 1301. 1. 4. 22.0 2.5 0.0 2. 14.0 20.0 5. 5. 0.4000000 0. 1. + 1314. 1. 5. 27.0 6.0 0.0 3. 14.0 20.0 3. 5. 0.5833333 0. 1. + 1320. 1. 3. 22.0 2.5 0.0 1. 12.0 11.5 2. 4. 7.8399963 0. 1. + 1325. 1. 4. 27.0 6.0 0.0 3. 14.0 40.0 2. 4. 11.1999989 0. 1. + 1333. 1. 3. 27.0 9.0 2.0 2. 16.0 14.0 3. 4. 1.3611107 0. 1. + 1334. 1. 2. 27.0 9.0 1.0 2. 14.0 20.0 2. 2. 4.9777775 0. 1. + 1337. 1. 3. 22.0 2.5 0.0 3. 12.0 20.0 3. 3. 4.7999992 0. 1. + 1339. 1. 4. 32.0 16.5 4.0 4. 14.0 20.0 3. 5. 2.7151508 0. 1. + 1349. 1. 5. 32.0 2.5 2.0 2. 14.0 20.0 3. 4. 0.4000000 0. 1. + 1351. 1. 4. 27.0 2.5 0.0 2. 14.0 40.0 3. 5. 0.4000000 0. 1. + 1356. 1. 5. 32.0 9.0 3.0 3. 16.0 11.5 4. 4. 0.1111111 0. 1. + 1364. 1. 3. 32.0 13.0 2.0 2. 12.0 20.0 3. 5. 0.2692307 0. 1. + 1368. 1. 3. 32.0 16.5 3.0 3. 12.0 20.0 3. 2. 0.7272727 0. 1. + 1369. 1. 5. 42.0 23.0 2.0 2. 14.0 20.0 5. 5. 0.5217391 0. 1. + 1370. 1. 3. 27.0 16.5 4.0 3. 14.0 20.0 4. 2. 0.7424242 0. 1. + 1374. 1. 3. 32.0 16.5 4.0 2. 20.0 20.0 4. 4. 0.7272727 0. 1. + 1378. 1. 4. 22.0 2.5 2.0 2. 14.0 14.0 5. 2. 4.7999992 0. 1. + 1392. 1. 5. 27.0 6.0 0.0 1. 12.0 20.0 3. 4. 7.4666672 0. 1. + 1396. 1. 4. 37.0 16.5 3.0 4. 16.0 40.0 5. 5. 0.2121212 0. 1. + 1410. 1. 3. 22.0 2.5 0.0 2. 12.0 6.5 3. 5. 1.3999996 0. 1. + 1411. 1. 4. 32.0 13.0 2.0 2. 14.0 20.0 3. 5. 1.5076914 0. 1. + 1422. 1. 5. 42.0 23.0 5.5 3. 17.0 20.0 4. 4. 0.5217391 0. 1. + 1455. 1. 2. 27.0 6.0 2.0 3. 12.0 11.5 2. 2. 1.3333330 0. 1. + 1465. 1. 5. 22.0 2.5 1.0 2. 16.0 20.0 3. 6. 1.3999996 0. 1. + 1486. 1. 3. 42.0 23.0 2.0 3. 12.0 11.5 2. 2. 0.5326087 0. 1. + 1495. 1. 5. 42.0 23.0 3.0 1. 14.0 40.0 3. 5. 1.8260860 0. 1. + 1499. 1. 4. 22.0 2.5 0.0 3. 12.0 20.0 3. 4. 4.8999996 0. 1. + 1516. 1. 3. 27.0 9.0 1.0 4. 14.0 20.0 5. 5. 0.1111111 0. 1. + 1519. 1. 2. 37.0 23.0 3.0 3. 12.0 20.0 2. 4. 4.1739130 0. 1. + 1553. 1. 3. 32.0 9.0 3.0 3. 14.0 20.0 4. 5. 0.3888888 0. 1. + 1554. 1. 5. 37.0 16.5 4.0 3. 12.0 14.0 3. 4. 1.1878777 0. 1. + 1559. 1. 3. 27.0 9.0 2.0 2. 12.0 14.0 5. 2. 1.3333330 0. 1. + 1560. 1. 3. 27.0 6.0 1.0 2. 17.0 6.5 2. 2. 1.3333330 0. 1. + 1563. 1. 5. 22.0 2.5 0.0 3. 14.0 14.0 3. 3. 1.3999996 0. 1. + 1568. 1. 5. 27.0 6.0 0.0 2. 17.0 20.0 4. 5. 1.3333330 0. 1. + 1591. 1. 4. 22.0 2.5 0.0 2. 12.0 14.0 4. 2. 4.8999996 0. 1. + 1595. 1. 4. 27.0 6.0 0.0 2. 12.0 20.0 3. 4. 4.6666660 0. 1. + 1610. 1. 3. 32.0 9.0 1.0 2. 12.0 20.0 3. 3. 0.1111111 0. 1. + 1611. 1. 1. 42.0 23.0 4.0 3. 12.0 20.0 3. 5. 0.8521735 0. 1. + 1612. 1. 2. 22.0 6.0 2.0 2. 12.0 20.0 3. 4. 1.3333330 0. 1. + 1617. 1. 4. 32.0 16.5 2.0 2. 12.0 14.0 2. 2. 0.4848484 0. 1. + 1635. 1. 4. 32.0 13.0 3.0 3. 14.0 11.5 2. 2. 0.9423077 0. 1. + 1639. 1. 5. 27.0 9.0 2.0 1. 12.0 20.0 3. 3. 0.3888888 0. 1. + 1649. 1. 3. 42.0 23.0 3.0 2. 12.0 20.0 3. 2. 0.5217391 0. 1. + 1673. 1. 3. 37.0 16.5 1.0 3. 20.0 20.0 6. 6. 2.7151508 0. 1. + 1674. 1. 5. 32.0 13.0 2.0 1. 12.0 20.0 5. 2. 0.9423077 0. 1. + 1677. 1. 4. 27.0 13.0 3.0 1. 12.0 9.0 4. 2. 3.4461536 0. 1. + 1688. 1. 2. 37.0 13.0 0.0 2. 14.0 20.0 3. 5. 0.9230769 0. 1. + 1690. 1. 3. 27.0 9.0 1.0 1. 12.0 11.5 2. 2. 3.1111107 0. 1. + 1708. 1. 5. 27.0 6.0 0.0 1. 14.0 40.0 5. 5. 3.2666645 0. 1. + 1711. 1. 2. 42.0 23.0 2.0 3. 12.0 14.0 5. 2. 0.8521735 0. 1. + 1712. 1. 5. 27.0 6.0 0.0 2. 16.0 11.5 3. 4. 0.5833333 0. 1. + 1713. 1. 4. 22.0 2.5 0.0 4. 16.0 14.0 5. 4. 7.8399963 0. 1. + 1720. 1. 5. 22.0 2.5 0.0 2. 16.0 6.5 4. 4. 1.3999996 0. 1. + 1724. 1. 5. 42.0 13.0 0.0 3. 12.0 11.5 3. 2. 1.5076914 0. 1. + 1742. 1. 4. 22.0 2.5 1.0 1. 16.0 20.0 3. 4. 1.3999996 0. 1. + 1757. 1. 4. 32.0 9.0 1.0 3. 16.0 14.0 3. 5. 1.3611107 0. 1. + 1773. 1. 4. 27.0 9.0 2.0 2. 12.0 11.5 4. 2. 0.3888888 0. 1. + 1793. 1. 5. 27.0 6.0 0.0 1. 16.0 14.0 5. 2. 2.0416660 0. 1. + 1796. 1. 4. 32.0 16.5 3.0 2. 14.0 20.0 5. 4. 2.5454540 0. 1. + 1802. 1. 2. 42.0 2.5 0.0 4. 20.0 40.0 6. 5. 4.7999992 0. 1. + 1805. 1. 2. 42.0 23.0 5.5 4. 14.0 14.0 3. 6. 0.3478261 0. 1. + 1822. 1. 4. 42.0 23.0 4.0 2. 12.0 20.0 3. 2. 0.3478261 0. 1. + 1827. 1. 3. 22.0 2.5 0.0 3. 16.0 20.0 5. 5. 4.7999992 0. 1. + 1837. 1. 2. 22.0 2.5 0.0 3. 14.0 20.0 3. 5. 1.3999996 0. 1. + 1844. 1. 4. 22.0 2.5 0.0 3. 14.0 14.0 3. 3. 4.7999992 0. 1. + 1852. 1. 4. 32.0 16.5 4.0 3. 14.0 11.5 4. 4. 0.2121212 0. 1. + 1855. 1. 5. 32.0 13.0 2.0 4. 17.0 14.0 4. 5. 0.9423077 0. 1. + 1863. 1. 4. 32.0 13.0 3.0 4. 12.0 20.0 3. 5. 1.5076914 0. 1. + 1872. 1. 5. 27.0 9.0 2.0 1. 14.0 11.5 4. 4. 1.3611107 0. 1. + 1889. 1. 4. 27.0 6.0 1.0 4. 16.0 11.5 3. 4. 0.5833333 0. 1. + 1891. 1. 4. 27.0 9.0 2.0 3. 12.0 11.5 2. 4. 1.3333330 0. 1. + 1904. 1. 1. 37.0 16.5 3.0 2. 17.0 11.5 4. 4. 0.7424242 0. 1. + 1922. 1. 3. 27.0 9.0 3.0 2. 12.0 20.0 4. 5. 1.3611107 0. 1. + 1926. 1. 2. 27.0 6.0 0.0 2. 14.0 20.0 3. 4. 4.6666660 0. 1. + 1942. 1. 3. 22.0 2.5 1.0 2. 14.0 9.0 2. 2. 25.5999908 0. 1. + 1950. 1. 4. 22.0 2.5 1.0 3. 12.0 9.0 3. 4. 4.8999996 0. 1. + 1953. 1. 4. 27.0 2.5 0.0 2. 14.0 20.0 4. 4. 1.3999996 0. 1. + 1967. 1. 1. 42.0 23.0 2.0 3. 12.0 11.5 3. 5. 0.5217391 0. 1. + 1968. 1. 5. 27.0 6.0 2.0 4. 14.0 40.0 5. 5. 3.2666645 0. 1. + 1969. 1. 5. 27.0 6.0 0.0 1. 12.0 20.0 4. 2. 0.5833333 0. 1. + 1993. 1. 4. 37.0 23.0 2.0 3. 12.0 40.0 3. 5. 0.1521739 0. 1. + 2003. 1. 4. 22.0 6.0 2.0 2. 12.0 11.5 3. 4. 0.1666666 0. 1. + 2011. 1. 1. 32.0 13.0 1.0 3. 14.0 6.5 3. 1. 0.9423077 0. 1. + 2020. 1. 5. 22.0 6.0 1.0 1. 16.0 20.0 3. 5. 0.5833333 0. 1. + 2022. 1. 5. 27.0 6.0 0.0 1. 14.0 40.0 3. 5. 2.0000000 0. 1. + 2034. 1. 5. 27.0 6.0 1.0 1. 17.0 40.0 4. 5. 3.2666645 0. 1. + 2046. 1. 4. 37.0 16.5 1.0 2. 14.0 20.0 2. 5. 1.1878777 0. 1. + 2051. 1. 4. 27.0 9.0 2.0 2. 12.0 9.0 2. 2. 2.1777763 0. 1. + 2052. 1. 4. 42.0 23.0 4.0 1. 12.0 40.0 3. 4. 0.1521739 0. 1. + 2086. 1. 4. 32.0 13.0 0.0 3. 12.0 20.0 2. 2. 2.1538458 0. 1. + 2096. 1. 5. 32.0 13.0 2.0 3. 12.0 11.5 2. 2. 0.9230769 0. 1. + 2113. 1. 4. 42.0 23.0 4.0 1. 17.0 11.5 4. 4. 0.8521735 0. 1. + 2123. 1. 4. 37.0 23.0 4.0 2. 14.0 20.0 4. 3. 0.5326087 0. 1. + 2124. 1. 4. 32.0 16.5 2.0 2. 14.0 20.0 3. 6. 1.1878777 0. 1. + 2129. 1. 4. 27.0 13.0 4.0 3. 12.0 40.0 2. 4. 3.2307692 0. 1. + 2135. 1. 5. 37.0 23.0 3.0 2. 12.0 11.5 3. 2. 0.1521739 0. 1. + 2147. 1. 2. 32.0 13.0 0.0 3. 9.0 11.5 6. 2. 0.0769231 0. 1. + 2153. 1. 5. 32.0 13.0 2.0 1. 14.0 40.0 4. 6. 3.4461536 0. 1. + 2155. 1. 4. 27.0 6.0 1.0 2. 14.0 14.0 4. 2. 0.1666666 0. 1. + 2156. 1. 5. 27.0 2.5 0.0 3. 20.0 20.0 4. 5. 4.7999992 0. 1. + 2160. 1. 2. 42.0 23.0 3.0 3. 14.0 20.0 4. 2. 0.5217391 0. 1. + 2176. 1. 3. 27.0 6.0 0.0 1. 14.0 20.0 3. 2. 0.5833333 0. 1. + 2195. 1. 4. 27.0 6.0 1.0 2. 12.0 9.0 3. 4. 2.0416660 0. 1. + 2196. 1. 2. 22.0 2.5 0.0 3. 12.0 11.5 3. 3. 3.1999998 0. 1. + 2217. 1. 3. 27.0 2.5 0.0 3. 12.0 11.5 2. 2. 7.8399963 0. 1. + 2223. 1. 4. 42.0 23.0 2.0 2. 17.0 40.0 5. 2. 0.8521735 0. 1. + 2235. 1. 5. 32.0 13.0 2.0 1. 14.0 14.0 2. 5. 0.9230769 0. 1. + 2240. 1. 5. 32.0 13.0 0.0 1. 12.0 20.0 5. 4. 2.1538458 0. 1. + 2244. 1. 4. 27.0 9.0 2.0 2. 16.0 11.5 4. 5. 0.3888888 0. 1. + 2255. 1. 5. 42.0 23.0 4.0 3. 17.0 40.0 4. 4. 0.1521739 0. 1. + 2268. 1. 3. 27.0 9.0 3.0 1. 16.0 20.0 4. 5. 0.1111111 0. 1. + 2270. 1. 5. 42.0 13.0 0.0 2. 14.0 20.0 5. 3. 0.9230769 0. 1. + 2271. 1. 5. 32.0 16.5 2.0 2. 16.0 40.0 5. 5. 0.2121212 0. 1. + 2276. 1. 1. 42.0 23.0 2.0 1. 12.0 14.0 3. 3. 1.8260860 0. 1. + 2277. 1. 4. 27.0 6.0 0.0 1. 12.0 11.5 3. 4. 0.5833333 0. 1. + 2279. 1. 5. 42.0 23.0 3.0 2. 12.0 20.0 5. 4. 1.9478254 0. 1. + 2280. 1. 4. 27.0 9.0 2.0 3. 16.0 20.0 4. 5. 1.3333330 0. 1. + 2281. 1. 2. 32.0 13.0 3.0 3. 20.0 20.0 4. 5. 0.0769231 0. 1. + 2283. 1. 4. 22.0 2.5 0.0 2. 12.0 11.5 3. 2. 11.1999998 0. 1. + 2286. 1. 3. 32.0 16.5 3.0 2. 12.0 20.0 3. 2. 0.7272727 0. 1. + 2289. 1. 5. 27.0 6.0 1.0 3. 12.0 14.0 5. 2. 2.0000000 0. 1. + 2290. 1. 3. 27.0 2.5 0.0 1. 12.0 20.0 3. 4. 3.1999998 0. 1. + 2315. 1. 5. 22.0 2.5 0.0 2. 16.0 20.0 4. 6. 1.3999996 0. 1. + 2319. 1. 3. 32.0 13.0 0.0 2. 16.0 40.0 4. 5. 0.9230769 0. 1. + 2324. 1. 4. 37.0 16.5 2.0 2. 20.0 40.0 4. 2. 0.7424242 0. 1. + 2330. 1. 4. 27.0 6.0 1.0 2. 17.0 20.0 4. 5. 2.0416660 0. 1. + 2355. 1. 4. 37.0 23.0 4.0 2. 12.0 20.0 3. 2. 0.1521739 0. 1. + 2363. 1. 4. 22.0 2.5 2.0 2. 14.0 9.0 3. 5. 4.8999996 0. 1. + 2381. 1. 3. 27.0 6.0 1.0 3. 17.0 20.0 4. 4. 1.3333330 0. 1. + 2393. 1. 4. 32.0 16.5 3.0 4. 12.0 11.5 3. 5. 1.1878777 0. 1. + 2400. 1. 5. 22.0 6.0 2.0 3. 14.0 20.0 3. 5. 7.4666672 0. 1. + 2407. 1. 4. 32.0 13.0 2.0 3. 14.0 6.5 3. 2. 0.0769231 0. 1. + 2420. 1. 4. 27.0 9.0 1.0 1. 14.0 20.0 2. 5. 1.3611107 0. 1. + 2426. 1. 3. 32.0 16.5 2.0 2. 12.0 20.0 3. 4. 0.7272727 0. 1. + 2432. 1. 4. 27.0 13.0 2.0 2. 12.0 14.0 3. 2. 0.0769231 0. 1. + 2448. 1. 5. 27.0 9.0 1.0 3. 12.0 20.0 2. 3. 0.3888888 0. 1. + 2455. 1. 3. 27.0 9.0 0.0 1. 12.0 20.0 3. 4. 16.0000000 0. 1. + 2511. 1. 4. 27.0 9.0 0.0 3. 14.0 40.0 5. 6. 4.9777775 0. 1. + 2514. 1. 3. 22.0 2.5 0.0 1. 12.0 9.0 3. 2. 7.8399963 0. 1. + 2539. 1. 3. 32.0 13.0 2.0 3. 20.0 20.0 4. 5. 0.0769231 0. 1. + 2541. 1. 4. 42.0 23.0 5.5 2. 14.0 20.0 5. 3. 0.5326087 0. 1. + 2546. 1. 5. 22.0 2.5 0.0 2. 16.0 20.0 3. 4. 4.8999996 0. 1. + 2547. 1. 5. 27.0 9.0 1.0 2. 14.0 20.0 4. 5. 0.3888888 0. 1. + 2556. 1. 5. 37.0 13.0 2.0 3. 14.0 40.0 4. 3. 0.2692307 0. 1. + 2575. 1. 5. 27.0 2.5 1.0 3. 16.0 6.5 3. 3. 1.3999996 0. 1. + 2577. 1. 4. 27.0 6.0 0.0 2. 14.0 11.5 3. 2. 0.5833333 0. 1. + 2589. 1. 5. 22.0 2.5 0.0 2. 12.0 6.5 4. 4. 7.8399963 0. 1. + 2590. 1. 5. 27.0 6.0 1.0 3. 12.0 11.5 2. 3. 1.3333330 0. 1. + 2607. 1. 4. 32.0 9.0 2.0 2. 16.0 20.0 5. 5. 1.3333330 0. 1. + 2608. 1. 4. 32.0 6.0 2.0 3. 14.0 20.0 4. 2. 2.0416660 0. 1. + 2609. 1. 2. 22.0 2.5 1.0 2. 17.0 11.5 2. 2. 11.1999998 0. 1. + 2628. 1. 5. 27.0 2.5 0.0 2. 17.0 40.0 5. 5. 4.7999992 0. 1. + 2640. 1. 5. 37.0 16.5 3.0 2. 14.0 14.0 4. 4. 1.1878777 0. 1. + 2642. 1. 3. 27.0 2.5 1.0 3. 14.0 14.0 5. 3. 4.7999992 0. 1. + 2653. 1. 4. 27.0 6.0 1.0 1. 14.0 20.0 3. 4. 0.1666666 0. 1. + 2655. 1. 5. 27.0 6.0 2.0 3. 12.0 20.0 2. 4. 3.2666645 0. 1. + 2666. 1. 4. 42.0 23.0 3.0 2. 12.0 14.0 3. 2. 1.2173910 0. 1. + 2667. 1. 3. 27.0 6.0 2.0 3. 14.0 11.5 3. 5. 0.5833333 0. 1. + 2669. 1. 5. 22.0 6.0 1.0 3. 14.0 14.0 1. 4. 2.0000000 0. 1. + 2670. 1. 5. 37.0 23.0 3.0 2. 12.0 20.0 3. 4. 0.5326087 0. 1. + 2687. 1. 3. 37.0 16.5 3.0 3. 12.0 11.5 3. 4. 1.1878777 0. 1. + 2690. 1. 4. 42.0 23.0 4.0 2. 9.0 11.5 4. 4. 0.5217391 0. 1. + 2699. 1. 4. 42.0 23.0 3.0 3. 12.0 11.5 3. 5. 0.5217391 0. 1. + 2704. 1. 4. 37.0 23.0 2.0 2. 16.0 40.0 4. 6. 0.1521739 0. 1. + 2710. 1. 5. 32.0 16.5 4.0 1. 12.0 11.5 2. 1. 0.4848484 0. 1. + 2719. 1. 4. 27.0 6.0 2.0 3. 14.0 11.5 2. 6. 1.3333330 0. 1. + 2757. 1. 3. 32.0 16.5 2.0 2. 12.0 11.5 2. 2. 1.1878777 0. 1. + 2770. 1. 2. 27.0 6.0 1.0 2. 12.0 11.5 3. 2. 0.5833333 0. 1. + 2782. 1. 4. 22.0 2.5 0.0 1. 14.0 20.0 3. 4. 4.7999992 0. 1. + 2808. 1. 3. 22.0 6.0 1.0 2. 14.0 6.5 3. 2. 0.5833333 0. 1. + 2814. 1. 2. 27.0 6.0 0.0 3. 12.0 14.0 3. 3. 0.1666666 0. 1. + 2818. 1. 4. 27.0 6.0 1.0 2. 12.0 14.0 2. 5. 3.2666645 0. 1. + 2821. 1. 3. 22.0 2.5 1.0 1. 12.0 20.0 5. 5. 4.8999996 0. 1. + 2824. 1. 2. 37.0 16.5 3.0 2. 14.0 14.0 3. 5. 1.1878777 0. 1. + 2844. 1. 5. 32.0 13.0 2.0 2. 16.0 40.0 4. 2. 3.2307692 0. 1. + 2846. 1. 5. 22.0 2.5 0.0 1. 12.0 6.5 3. 2. 1.3999996 0. 1. + 2865. 1. 4. 22.0 6.0 1.0 3. 14.0 20.0 4. 1. 0.5833333 0. 1. + 2868. 1. 4. 22.0 0.5 0.0 2. 12.0 20.0 5. 2. 2.0000000 0. 1. + 2877. 1. 3. 27.0 2.5 0.0 2. 20.0 20.0 4. 4. 1.3999996 0. 1. + 2886. 1. 5. 27.0 2.5 0.0 3. 12.0 9.0 2. 2. 1.3999996 0. 1. + 2898. 1. 4. 22.0 2.5 0.0 3. 14.0 20.0 3. 2. 1.3999996 0. 1. + 2921. 1. 4. 42.0 16.5 2.0 1. 16.0 40.0 4. 5. 2.7151508 0. 1. + 2929. 1. 5. 32.0 13.0 1.0 2. 12.0 11.5 5. 2. 1.5076914 0. 1. + 2933. 1. 5. 32.0 13.0 3.0 3. 14.0 20.0 3. 5. 0.9230769 0. 1. + 2944. 1. 5. 32.0 2.5 0.0 3. 14.0 14.0 4. 2. 4.7999992 0. 1. + 2955. 1. 3. 32.0 13.0 1.0 1. 16.0 40.0 4. 5. 0.9423077 0. 1. + 2970. 1. 5. 42.0 23.0 2.0 3. 14.0 20.0 5. 6. 1.2173910 0. 1. + 2975. 1. 4. 27.0 6.0 1.0 1. 14.0 20.0 3. 2. 2.0416660 0. 1. + 2978. 1. 3. 37.0 16.5 4.0 3. 12.0 20.0 2. 5. 1.1878777 0. 1. + 2986. 1. 5. 37.0 16.5 2.0 2. 12.0 11.5 2. 4. 0.2121212 0. 1. + 2987. 1. 2. 32.0 9.0 1.0 2. 12.0 11.5 3. 3. 1.3333330 0. 1. + 3004. 1. 2. 32.0 13.0 0.0 2. 14.0 20.0 5. 4. 0.2692307 0. 1. + 3037. 1. 4. 22.0 0.5 0.0 1. 12.0 20.0 3. 4. 2.0000000 0. 1. + 3059. 1. 4. 22.0 6.0 0.0 1. 12.0 20.0 3. 4. 0.1666666 0. 1. + 3079. 1. 3. 37.0 16.5 3.0 3. 12.0 40.0 2. 2. 0.2121212 0. 1. + 3097. 1. 3. 27.0 2.5 0.0 2. 17.0 40.0 4. 5. 3.1999998 0. 1. + 3103. 1. 3. 22.0 2.5 0.0 2. 17.0 20.0 5. 4. 0.4000000 0. 1. + 3104. 1. 4. 32.0 16.5 2.0 2. 14.0 20.0 3. 4. 0.7272727 0. 1. + 3114. 1. 4. 42.0 16.5 2.0 3. 17.0 20.0 5. 6. 0.4848484 0. 1. + 3121. 1. 4. 32.0 16.5 5.5 3. 12.0 11.5 2. 2. 1.1878777 0. 1. + 3124. 1. 3. 32.0 13.0 2.0 3. 14.0 11.5 2. 2. 0.6153846 0. 1. + 3135. 1. 4. 42.0 23.0 2.0 2. 20.0 40.0 4. 5. 0.8521735 0. 1. + 3137. 1. 3. 32.0 9.0 1.0 2. 16.0 20.0 4. 3. 4.6666660 0. 1. + 3143. 1. 4. 22.0 2.5 0.0 2. 14.0 40.0 3. 2. 1.3999996 0. 1. + 3149. 1. 3. 37.0 16.5 3.0 3. 12.0 40.0 3. 3. 5.8181810 0. 1. + 3150. 1. 3. 42.0 23.0 3.0 1. 14.0 40.0 3. 4. 0.5217391 0. 1. + 3154. 1. 1. 32.0 16.5 3.0 3. 12.0 20.0 4. 2. 0.7424242 0. 1. + 3155. 1. 2. 37.0 16.5 5.5 2. 12.0 11.5 2. 5. 2.5454540 0. 1. + 3163. 1. 5. 32.0 9.0 0.0 3. 12.0 20.0 3. 5. 2.1777763 0. 1. + 3164. 1. 2. 32.0 16.5 4.0 2. 14.0 20.0 3. 5. 2.7151508 0. 1. + 3169. 1. 3. 22.0 2.5 0.0 2. 17.0 6.5 4. 1. 16.7999878 0. 1. + 3172. 1. 5. 32.0 2.5 0.0 2. 16.0 40.0 5. 5. 4.8999996 0. 1. + 3174. 1. 3. 27.0 6.0 1.0 1. 17.0 14.0 4. 5. 0.1666666 0. 1. + 3203. 1. 4. 27.0 6.0 0.0 1. 17.0 20.0 4. 1. 3.2666645 0. 1. + 3205. 1. 3. 37.0 16.5 2.0 2. 14.0 20.0 4. 2. 0.2121212 0. 1. + 3257. 1. 4. 37.0 16.5 2.0 1. 14.0 20.0 3. 3. 0.2121212 0. 1. + 3269. 1. 5. 42.0 23.0 2.0 3. 14.0 14.0 3. 4. 0.5217391 0. 1. + 3271. 1. 4. 32.0 13.0 2.0 1. 17.0 40.0 4. 2. 0.9230769 0. 1. + 3284. 1. 3. 27.0 9.0 0.0 1. 14.0 14.0 3. 5. 4.9777775 0. 1. + 3302. 1. 3. 32.0 13.0 2.0 1. 12.0 40.0 3. 6. 0.9423077 0. 1. + 3303. 1. 3. 27.0 6.0 2.0 3. 17.0 20.0 4. 6. 2.0416660 0. 1. + 3311. 1. 2. 37.0 16.5 3.0 2. 12.0 14.0 2. 4. 0.7272727 0. 1. + 3315. 1. 2. 22.0 6.0 2.0 1. 14.0 11.5 3. 4. 0.1666666 0. 1. + 3341. 1. 3. 17.5 2.5 1.0 3. 12.0 6.5 4. 2. 4.8999996 0. 1. + 3356. 1. 3. 27.0 6.0 3.0 2. 14.0 20.0 2. 2. 0.1666666 0. 1. + 3359. 1. 3. 22.0 2.5 0.0 1. 12.0 20.0 2. 5. 1.3999996 0. 1. + 3363. 1. 4. 42.0 23.0 3.0 2. 14.0 20.0 3. 5. 1.8260860 0. 1. + 3364. 1. 2. 27.0 6.0 2.0 3. 14.0 14.0 3. 3. 2.0000000 0. 1. + 3380. 1. 4. 32.0 16.5 5.5 2. 14.0 20.0 3. 2. 2.5454540 0. 1. + 3413. 1. 4. 27.0 2.5 0.0 3. 12.0 14.0 3. 5. 0.4000000 0. 1. + 3420. 1. 4. 27.0 6.0 2.0 3. 12.0 14.0 3. 2. 2.0000000 0. 1. + 3428. 1. 4. 27.0 2.5 0.0 3. 16.0 20.0 4. 5. 4.7999992 0. 1. + 3442. 1. 5. 27.0 6.0 0.0 1. 16.0 11.5 4. 5. 4.6666660 0. 1. + 3454. 1. 2. 22.0 6.0 2.0 2. 12.0 20.0 2. 3. 0.5833333 0. 1. + 3471. 1. 3. 27.0 2.5 0.0 1. 20.0 20.0 4. 4. 4.7999992 0. 1. + 3475. 1. 4. 32.0 16.5 3.0 3. 14.0 20.0 3. 5. 0.7272727 0. 1. + 3493. 1. 5. 32.0 13.0 1.0 3. 17.0 20.0 4. 4. 0.9423077 0. 1. + 3494. 1. 3. 22.0 2.5 1.0 2. 12.0 6.5 2. 4. 7.8399963 0. 1. + 3513. 1. 4. 22.0 2.5 0.0 1. 14.0 20.0 3. 3. 1.3999996 0. 1. + 3518. 1. 5. 32.0 9.0 2.0 3. 16.0 20.0 4. 4. 1.3333330 0. 1. + 3525. 1. 5. 32.0 2.5 0.0 3. 14.0 20.0 5. 4. 0.4000000 0. 1. + 3541. 1. 5. 27.0 9.0 2.0 1. 14.0 14.0 2. 4. 1.3333330 0. 1. + 3545. 1. 4. 32.0 9.0 1.0 2. 14.0 20.0 5. 5. 0.8888888 0. 1. + 3546. 1. 4. 22.0 2.5 0.0 2. 14.0 20.0 3. 5. 1.3999996 0. 1. + 3555. 1. 4. 42.0 23.0 1.0 3. 12.0 14.0 3. 3. 2.9217386 0. 1. + 3558. 1. 4. 27.0 9.0 2.0 2. 16.0 20.0 4. 4. 1.3333330 0. 1. + 3561. 1. 4. 32.0 16.5 3.0 2. 17.0 11.5 4. 2. 0.4848484 0. 1. + 3563. 1. 4. 27.0 6.0 2.0 2. 16.0 9.0 4. 5. 7.4666672 0. 1. + 3574. 1. 4. 37.0 16.5 2.0 2. 14.0 20.0 4. 5. 0.7272727 0. 1. + 3590. 1. 5. 27.0 6.0 1.0 3. 16.0 14.0 4. 4. 4.6666660 0. 1. + 3596. 1. 2. 27.0 6.0 1.0 2. 12.0 6.5 2. 2. 4.6666660 0. 1. + 3604. 1. 4. 22.0 2.5 1.0 1. 12.0 11.5 2. 2. 3.1999998 0. 1. + 3605. 1. 3. 37.0 13.0 1.0 2. 12.0 11.5 3. 2. 0.9423077 0. 1. + 3627. 1. 4. 42.0 23.0 2.0 2. 14.0 20.0 3. 5. 0.1521739 0. 1. + 3634. 1. 5. 22.0 2.5 0.0 1. 14.0 11.5 3. 2. 0.4000000 0. 1. + 3639. 1. 3. 42.0 23.0 2.0 1. 17.0 40.0 4. 6. 4.1739130 0. 1. + 3649. 1. 4. 32.0 16.5 2.0 3. 12.0 14.0 3. 4. 0.7272727 0. 1. + 3664. 1. 1. 32.0 16.5 3.0 3. 14.0 20.0 3. 4. 0.0606061 0. 1. + 3670. 1. 5. 27.0 13.0 2.0 3. 12.0 20.0 3. 2. 0.9230769 0. 1. + 3671. 1. 3. 27.0 6.0 0.0 1. 17.0 40.0 5. 4. 3.2666645 0. 1. + 3711. 1. 5. 42.0 23.0 5.5 2. 14.0 14.0 4. 4. 0.5326087 0. 1. + 3717. 1. 4. 32.0 16.5 1.0 3. 16.0 14.0 4. 5. 0.0606061 0. 1. + 3728. 1. 2. 22.0 2.5 0.0 1. 12.0 11.5 3. 2. 4.7999992 0. 1. + 3729. 1. 2. 42.0 23.0 1.0 3. 14.0 9.0 4. 2. 0.5326087 0. 1. + 3733. 1. 2. 22.0 6.0 0.0 2. 12.0 11.5 3. 4. 0.5833333 0. 1. + 3737. 1. 4. 27.0 6.0 0.0 1. 16.0 20.0 5. 1. 0.5833333 0. 1. + 3740. 1. 4. 42.0 23.0 1.0 4. 17.0 20.0 3. 2. 1.8260860 0. 1. + 3754. 1. 5. 42.0 23.0 2.0 1. 12.0 20.0 3. 2. 0.3478261 0. 1. + 3772. 1. 4. 27.0 6.0 2.0 2. 16.0 40.0 4. 2. 2.0000000 0. 1. + 3779. 1. 3. 22.0 2.5 0.0 1. 12.0 20.0 3. 2. 1.3999996 0. 1. + 3784. 1. 3. 27.0 13.0 3.0 2. 14.0 14.0 5. 5. 3.4461536 0. 1. + 3800. 1. 4. 32.0 13.0 2.0 2. 14.0 20.0 4. 5. 2.1538458 0. 1. + 3810. 1. 4. 27.0 9.0 3.0 3. 14.0 20.0 4. 3. 0.3888888 0. 1. + 3822. 1. 3. 32.0 9.0 1.0 2. 14.0 14.0 3. 4. 0.3888888 0. 1. + 3824. 1. 3. 27.0 9.0 2.0 1. 14.0 14.0 4. 2. 1.3333330 0. 1. + 3836. 1. 5. 37.0 16.5 5.5 3. 12.0 11.5 2. 2. 1.1878777 0. 1. + 3844. 1. 3. 27.0 6.0 1.0 4. 14.0 11.5 3. 5. 4.6666660 0. 1. + 3860. 1. 2. 27.0 9.0 1.0 1. 14.0 20.0 5. 3. 4.6666660 0. 1. + 3875. 1. 4. 27.0 2.5 0.0 2. 17.0 40.0 4. 6. 7.8399963 0. 1. + 3882. 1. 4. 32.0 13.0 1.0 1. 20.0 11.5 4. 4. 1.5076914 0. 1. + 3889. 1. 1. 42.0 23.0 4.0 3. 12.0 40.0 3. 4. 1.9478254 0. 1. + 3897. 1. 4. 32.0 16.5 1.0 1. 14.0 20.0 5. 5. 0.7424242 0. 1. + 3899. 1. 1. 42.0 23.0 5.5 2. 12.0 11.5 2. 2. 0.5217391 0. 1. + 3940. 1. 4. 37.0 13.0 1.0 2. 12.0 20.0 3. 5. 1.5076914 0. 1. + 3943. 1. 4. 32.0 16.5 2.0 2. 14.0 40.0 5. 5. 1.1878777 0. 1. + 3944. 1. 4. 42.0 23.0 3.0 2. 14.0 20.0 4. 4. 0.0434783 0. 1. + 3946. 1. 5. 27.0 6.0 1.0 3. 14.0 20.0 3. 6. 2.0416660 0. 1. + 3950. 1. 3. 37.0 16.5 4.0 3. 12.0 20.0 3. 2. 0.7272727 0. 1. + 3961. 1. 3. 37.0 23.0 3.0 3. 9.0 6.5 4. 2. 0.1521739 0. 1. + 3963. 1. 4. 37.0 16.5 2.0 2. 12.0 11.5 3. 4. 2.5454540 0. 1. + 3967. 1. 3. 27.0 6.0 2.0 1. 14.0 11.5 4. 5. 1.3333330 0. 1. + 3971. 1. 4. 37.0 13.0 0.0 3. 12.0 14.0 3. 2. 1.5076914 0. 1. + 3975. 1. 2. 27.0 2.5 1.0 3. 16.0 20.0 4. 4. 4.8999996 0. 1. + 3977. 1. 4. 42.0 23.0 5.5 3. 12.0 40.0 5. 5. 0.5326087 0. 1. + 3978. 1. 3. 32.0 16.5 3.0 2. 12.0 20.0 2. 2. 0.7424242 0. 1. + 4001. 1. 4. 37.0 16.5 3.0 2. 12.0 40.0 5. 2. 0.2121212 0. 1. + 4012. 1. 3. 42.0 13.0 0.0 3. 12.0 14.0 4. 4. 0.9230769 0. 1. + 4025. 1. 4. 37.0 13.0 4.0 3. 14.0 11.5 4. 2. 0.6153846 0. 1. + 4041. 1. 2. 32.0 16.5 4.0 2. 14.0 40.0 5. 4. 1.1878777 0. 1. + 4047. 1. 3. 27.0 13.0 2.0 1. 14.0 20.0 4. 4. 2.1538458 0. 1. + 4053. 1. 5. 22.0 2.5 0.0 2. 14.0 20.0 4. 5. 0.4000000 0. 1. + 4063. 1. 4. 22.0 2.5 1.0 2. 14.0 14.0 4. 5. 0.4000000 0. 1. + 4083. 1. 3. 32.0 2.5 0.0 1. 16.0 40.0 4. 5. 17.9199982 0. 1. + 4088. 1. 5. 27.0 6.0 2.0 3. 14.0 14.0 3. 5. 3.2666645 0. 1. + 4091. 1. 5. 32.0 16.5 3.0 4. 12.0 20.0 2. 3. 0.0606061 0. 1. + 4097. 1. 2. 42.0 23.0 2.0 3. 16.0 40.0 4. 5. 0.5217391 0. 1. + 4099. 1. 5. 22.0 6.0 2.0 3. 14.0 20.0 2. 4. 0.5833333 0. 1. + 4100. 1. 5. 42.0 23.0 2.0 1. 14.0 40.0 4. 5. 0.0434783 0. 1. + 4121. 1. 4. 22.0 6.0 0.0 2. 14.0 20.0 3. 3. 0.5833333 0. 1. + 4130. 1. 3. 32.0 16.5 4.0 3. 14.0 20.0 3. 4. 0.7272727 0. 1. + 4146. 1. 3. 32.0 16.5 2.0 2. 14.0 20.0 3. 5. 0.7272727 0. 1. + 4158. 1. 4. 42.0 16.5 1.0 3. 17.0 20.0 4. 5. 0.7272727 0. 1. + 4168. 1. 1. 37.0 16.5 3.0 2. 12.0 11.5 3. 5. 0.2121212 0. 1. + 4192. 1. 3. 32.0 13.0 1.0 3. 20.0 11.5 4. 4. 0.0769231 0. 1. + 4201. 1. 3. 27.0 2.5 0.0 3. 14.0 20.0 5. 5. 1.3999996 0. 1. + 4206. 1. 5. 22.0 2.5 2.0 1. 14.0 20.0 5. 4. 16.7999878 0. 1. + 4209. 1. 3. 42.0 23.0 5.5 3. 12.0 6.5 3. 2. 0.5217391 0. 1. + 4220. 1. 4. 27.0 9.0 2.0 3. 12.0 9.0 2. 2. 0.3888888 0. 1. + 4226. 1. 3. 32.0 16.5 2.0 3. 12.0 14.0 2. 4. 1.1878777 0. 1. + 4233. 1. 4. 32.0 16.5 3.0 2. 14.0 20.0 3. 4. 2.5454540 0. 1. + 4252. 1. 3. 27.0 2.5 2.0 2. 16.0 9.0 4. 4. 1.3999996 0. 1. + 4269. 1. 4. 32.0 6.0 2.0 2. 14.0 40.0 4. 4. 4.6666660 0. 1. + 4275. 1. 1. 42.0 23.0 2.0 1. 12.0 6.5 2. 3. 1.9478254 0. 1. + 4277. 1. 4. 22.0 2.5 0.0 2. 16.0 11.5 5. 1. 3.1999998 0. 1. + 4283. 1. 3. 22.0 6.0 0.0 2. 12.0 20.0 3. 4. 2.0000000 0. 1. + 4285. 1. 2. 42.0 23.0 5.5 3. 17.0 20.0 4. 4. 2.9217386 0. 1. + 4293. 1. 3. 27.0 13.0 2.0 2. 12.0 14.0 2. 4. 3.2307692 0. 1. + 4294. 1. 4. 27.0 9.0 2.0 3. 12.0 11.5 2. 2. 0.3888888 0. 1. + 4298. 1. 5. 32.0 16.5 3.0 3. 17.0 40.0 4. 4. 2.5454540 0. 1. + 4302. 1. 5. 32.0 16.5 2.0 1. 14.0 40.0 4. 6. 0.0606061 0. 1. + 4312. 1. 5. 32.0 16.5 3.0 3. 14.0 20.0 2. 5. 1.1878777 0. 1. + 4313. 1. 3. 27.0 9.0 2.0 2. 12.0 20.0 2. 3. 1.3611107 0. 1. + 4315. 1. 2. 27.0 6.0 1.0 3. 12.0 9.0 4. 4. 0.5833333 0. 1. + 4316. 1. 4. 22.0 2.5 2.0 2. 12.0 9.0 5. 2. 7.8399963 0. 1. + 4317. 1. 5. 27.0 6.0 2.0 4. 20.0 11.5 4. 4. 3.2666645 0. 1. + 4334. 1. 3. 22.0 2.5 0.0 2. 14.0 20.0 3. 2. 4.7999992 0. 1. + 4338. 1. 2. 32.0 9.0 0.0 1. 16.0 40.0 5. 4. 7.4666662 0. 1. + 4356. 1. 4. 37.0 16.5 2.0 3. 16.0 11.5 3. 6. 0.7272727 0. 1. + 4373. 1. 4. 42.0 23.0 2.0 3. 12.0 14.0 3. 2. 1.2173910 0. 1. + 4377. 1. 5. 22.0 2.5 0.0 3. 14.0 11.5 3. 4. 7.8399963 0. 1. + 4378. 1. 5. 32.0 9.0 1.0 2. 14.0 11.5 2. 4. 1.3333330 0. 1. + 4393. 1. 4. 37.0 16.5 2.0 3. 12.0 11.5 3. 6. 0.4848484 0. 1. + 4406. 1. 3. 22.0 2.5 0.0 3. 12.0 20.0 3. 4. 1.3999996 0. 1. + 4419. 1. 4. 37.0 16.5 4.0 2. 12.0 20.0 3. 5. 0.7272727 0. 1. + 4422. 1. 4. 27.0 2.5 0.0 3. 17.0 14.0 4. 1. 1.3999996 0. 1. + 4424. 1. 3. 27.0 6.0 0.0 1. 14.0 20.0 3. 5. 2.0416660 0. 1. + 4432. 1. 5. 32.0 16.5 2.0 2. 20.0 20.0 4. 4. 0.7424242 0. 1. + 4443. 1. 2. 22.0 2.5 1.0 2. 12.0 6.5 5. 5. 0.4000000 0. 1. + 4466. 1. 4. 42.0 16.5 2.0 1. 14.0 9.0 5. 4. 0.7424242 0. 1. + 4483. 1. 5. 42.0 13.0 3.0 4. 14.0 14.0 2. 2. 1.5076914 0. 1. + 4485. 1. 5. 32.0 13.0 1.0 3. 16.0 14.0 6. 6. 0.2692307 0. 1. + 4487. 1. 5. 37.0 13.0 0.0 1. 14.0 40.0 4. 5. 0.0769231 0. 1. + 4490. 1. 2. 22.0 6.0 0.0 1. 20.0 11.5 6. 4. 3.2666645 0. 1. + 4498. 1. 4. 22.0 2.5 0.0 2. 12.0 20.0 3. 4. 4.8999996 0. 1. + 4537. 1. 4. 32.0 16.5 1.0 2. 12.0 20.0 3. 4. 0.7272727 0. 1. + 4551. 1. 4. 27.0 6.0 2.0 2. 12.0 14.0 2. 2. 1.3333330 0. 1. + 4553. 1. 2. 37.0 16.5 2.0 2. 12.0 40.0 3. 3. 0.7272727 0. 1. + 4559. 1. 3. 22.0 6.0 2.0 3. 12.0 11.5 3. 2. 3.2666645 0. 1. + 4563. 1. 4. 27.0 13.0 2.0 2. 16.0 40.0 4. 5. 3.2307692 0. 1. + 4569. 1. 4. 22.0 6.0 1.0 2. 12.0 11.5 2. 5. 2.0000000 0. 1. + 4594. 1. 4. 17.5 0.5 0.0 3. 14.0 9.0 3. 4. 7.0000000 0. 1. + 4605. 1. 5. 27.0 2.5 0.0 2. 17.0 11.5 5. 1. 7.8399963 0. 1. + 4608. 1. 5. 27.0 9.0 1.0 3. 14.0 9.0 3. 4. 1.3333330 0. 1. + 4617. 1. 2. 22.0 2.5 1.0 3. 12.0 14.0 2. 2. 4.7999992 0. 1. + 4620. 1. 4. 42.0 23.0 5.5 3. 9.0 14.0 2. 4. 0.8521735 0. 1. + 4630. 1. 3. 32.0 16.5 3.0 3. 14.0 11.5 4. 5. 1.6969690 0. 1. + 4632. 1. 4. 37.0 13.0 1.0 1. 12.0 20.0 5. 5. 0.9423077 0. 1. + 4651. 1. 2. 32.0 16.5 3.0 2. 12.0 20.0 3. 5. 0.7272727 0. 1. + 4677. 1. 4. 32.0 13.0 2.0 2. 14.0 40.0 2. 5. 0.2692307 0. 1. + 4686. 1. 4. 22.0 2.5 0.0 2. 14.0 6.5 1. 1. 0.4000000 0. 1. + 4695. 1. 5. 22.0 2.5 0.0 2. 12.0 6.5 3. 2. 4.8999996 0. 1. + 4707. 1. 4. 32.0 16.5 3.0 2. 12.0 20.0 4. 2. 1.1878777 0. 1. + 4710. 1. 4. 37.0 16.5 3.0 2. 12.0 14.0 3. 3. 0.2121212 0. 1. + 4726. 1. 5. 42.0 23.0 4.0 3. 14.0 40.0 5. 5. 0.5217391 0. 1. + 4729. 1. 5. 27.0 9.0 2.0 1. 9.0 20.0 3. 4. 0.3888888 0. 1. + 4738. 1. 5. 32.0 9.0 0.0 2. 17.0 20.0 3. 2. 0.1111111 0. 1. + 4742. 1. 2. 42.0 23.0 3.0 4. 12.0 20.0 4. 5. 0.1521739 0. 1. + 4749. 1. 4. 42.0 23.0 2.0 3. 12.0 20.0 3. 2. 0.5217391 0. 1. + 4783. 1. 5. 27.0 6.0 0.0 3. 14.0 20.0 3. 4. 1.3333330 0. 1. + 4784. 1. 4. 22.0 6.0 0.0 3. 14.0 14.0 3. 3. 0.1666666 0. 1. + 4786. 1. 2. 32.0 16.5 5.5 2. 12.0 11.5 3. 2. 2.7151508 0. 1. + 4790. 1. 4. 22.0 2.5 1.0 2. 14.0 14.0 2. 4. 3.1999998 0. 1. + 4795. 1. 5. 37.0 23.0 4.0 3. 12.0 40.0 3. 3. 0.5326087 0. 1. + 4799. 1. 4. 32.0 13.0 3.0 2. 12.0 20.0 3. 5. 0.2692307 0. 1. + 4813. 1. 4. 32.0 16.5 2.0 2. 12.0 11.5 3. 4. 1.1878777 0. 1. + 4817. 1. 4. 27.0 6.0 1.0 2. 17.0 14.0 3. 5. 0.5833333 0. 1. + 4823. 1. 2. 27.0 13.0 2.0 3. 12.0 20.0 5. 5. 3.2307692 0. 1. + 4829. 1. 4. 37.0 16.5 2.0 2. 14.0 20.0 4. 5. 1.1878777 0. 1. + 4835. 1. 4. 27.0 6.0 0.0 4. 16.0 20.0 4. 6. 3.2666645 0. 1. + 4838. 1. 4. 37.0 23.0 3.0 3. 12.0 20.0 5. 3. 0.1521739 0. 1. + 4843. 1. 3. 27.0 2.5 0.0 1. 14.0 20.0 4. 6. 38.3999939 0. 1. + 4857. 1. 3. 27.0 9.0 1.0 2. 12.0 20.0 3. 4. 2.1777763 0. 1. + 4860. 1. 2. 37.0 23.0 4.0 2. 12.0 20.0 5. 2. 0.1521739 0. 1. + 4870. 1. 3. 37.0 23.0 3.0 3. 12.0 14.0 2. 2. 0.8521735 0. 1. + 4871. 1. 3. 32.0 13.0 2.0 3. 17.0 11.5 4. 4. 0.0769231 0. 1. + 4881. 1. 2. 37.0 16.5 4.0 3. 12.0 14.0 2. 4. 1.1878777 0. 1. + 4885. 1. 4. 27.0 9.0 2.0 3. 12.0 11.5 3. 3. 1.3333330 0. 1. + 4888. 1. 4. 42.0 23.0 3.0 3. 12.0 11.5 2. 2. 0.8521735 0. 1. + 4895. 1. 5. 42.0 23.0 3.0 3. 14.0 20.0 3. 5. 0.5326087 0. 1. + 4897. 1. 2. 27.0 6.0 0.0 2. 12.0 40.0 3. 5. 2.0000000 0. 1. + 4903. 1. 1. 27.0 2.5 0.0 2. 16.0 6.5 3. 1. 4.7999992 0. 1. + 4907. 1. 5. 32.0 16.5 2.0 1. 12.0 40.0 3. 3. 0.2121212 0. 1. + 4913. 1. 4. 32.0 16.5 3.0 2. 14.0 40.0 4. 5. 2.5454540 0. 1. + 4924. 1. 3. 22.0 6.0 0.0 2. 12.0 4.0 2. 2. 0.1666666 0. 1. + 4935. 1. 3. 27.0 2.5 2.0 2. 14.0 11.5 4. 4. 0.4000000 0. 1. + 4937. 1. 3. 42.0 23.0 1.0 3. 14.0 40.0 3. 2. 0.3478261 0. 1. + 4943. 1. 5. 42.0 23.0 4.0 2. 14.0 20.0 3. 5. 0.1521739 0. 1. + 4950. 1. 1. 27.0 6.0 2.0 2. 14.0 11.5 2. 3. 0.5833333 0. 1. + 4959. 1. 4. 32.0 13.0 2.0 2. 12.0 11.5 2. 5. 0.2692307 0. 1. + 4964. 1. 4. 32.0 13.0 2.0 1. 12.0 20.0 5. 5. 0.9423077 0. 1. + 4969. 1. 5. 32.0 16.5 3.0 2. 12.0 14.0 2. 4. 0.0606061 0. 1. + 4975. 1. 5. 42.0 23.0 2.0 1. 20.0 40.0 4. 3. 0.1521739 0. 1. + 4976. 1. 4. 27.0 9.0 2.0 2. 12.0 11.5 3. 4. 1.3333330 0. 1. + 4979. 1. 4. 37.0 16.5 3.0 3. 16.0 20.0 3. 2. 2.7151508 0. 1. + 4980. 1. 5. 37.0 16.5 5.5 1. 16.0 40.0 4. 4. 0.7272727 0. 1. + 4988. 1. 3. 42.0 9.0 2.0 1. 12.0 9.0 4. 4. 0.8888888 0. 1. + 5014. 1. 4. 27.0 6.0 1.0 3. 14.0 14.0 4. 3. 0.5833333 0. 1. + 5020. 1. 3. 27.0 9.0 2.0 3. 12.0 11.5 2. 4. 2.1777763 0. 1. + 5024. 1. 4. 27.0 6.0 2.0 2. 16.0 20.0 5. 5. 3.2666645 0. 1. + 5032. 1. 4. 37.0 16.5 4.0 3. 14.0 40.0 4. 5. 2.7151508 0. 1. + 5033. 1. 4. 32.0 16.5 3.0 3. 14.0 14.0 3. 4. 1.1878777 0. 1. + 5045. 1. 4. 27.0 6.0 1.0 2. 16.0 20.0 3. 5. 0.1666666 0. 1. + 5046. 1. 5. 42.0 23.0 2.0 2. 12.0 9.0 4. 4. 0.8521735 0. 1. + 5047. 1. 4. 32.0 13.0 1.0 3. 14.0 14.0 3. 2. 0.9423077 0. 1. + 5060. 1. 2. 27.0 6.0 1.0 2. 12.0 14.0 3. 2. 0.5833333 0. 1. + 5098. 1. 3. 22.0 2.5 0.0 2. 12.0 9.0 3. 4. 0.4000000 0. 1. + 5104. 1. 3. 27.0 6.0 0.0 2. 17.0 20.0 2. 4. 4.6666660 0. 1. + 5108. 1. 5. 37.0 23.0 4.0 2. 12.0 20.0 3. 5. 0.3478261 0. 1. + 5109. 1. 3. 32.0 16.5 3.0 4. 12.0 40.0 5. 4. 2.5454540 0. 1. + 5131. 1. 4. 22.0 2.5 0.0 2. 12.0 6.5 2. 2. 4.8999996 0. 1. + 5132. 1. 2. 22.0 6.0 2.0 3. 12.0 20.0 5. 3. 7.4666672 0. 1. + 5146. 1. 4. 27.0 9.0 2.0 3. 14.0 14.0 3. 2. 0.1111111 0. 1. + 5150. 1. 4. 22.0 2.5 0.0 1. 20.0 20.0 6. 5. 1.3999996 0. 1. + 5152. 1. 3. 42.0 23.0 5.5 4. 12.0 20.0 2. 5. 0.1521739 0. 1. + 5157. 1. 3. 42.0 23.0 3.0 2. 20.0 40.0 6. 5. 0.5217391 0. 1. + 5166. 1. 3. 22.0 2.5 1.0 3. 12.0 11.5 3. 2. 3.1999998 0. 1. + 5186. 1. 4. 32.0 9.0 2.0 2. 14.0 11.5 3. 5. 1.3333330 0. 1. + 5195. 1. 3. 32.0 16.5 1.0 3. 12.0 14.0 3. 4. 0.4848484 0. 1. + 5205. 1. 3. 27.0 6.0 2.0 1. 14.0 14.0 3. 3. 11.1999989 0. 1. + 5207. 1. 3. 27.0 6.0 1.0 3. 14.0 20.0 3. 4. 0.1666666 0. 1. + 5210. 1. 4. 37.0 16.5 3.0 1. 14.0 40.0 5. 5. 0.0606061 0. 1. + 5214. 1. 4. 32.0 13.0 2.0 2. 16.0 20.0 5. 6. 0.2692307 0. 1. + 5222. 1. 3. 22.0 2.5 0.0 1. 17.0 11.5 4. 4. 1.3999996 0. 1. + 5225. 1. 3. 27.0 6.0 0.0 3. 14.0 20.0 3. 4. 3.2666645 0. 1. + 5254. 1. 3. 42.0 23.0 3.0 2. 14.0 40.0 5. 6. 1.8260860 0. 1. + 5255. 1. 5. 32.0 13.0 3.0 3. 14.0 11.5 2. 2. 0.0769231 0. 1. + 5264. 1. 5. 27.0 2.5 1.0 2. 14.0 9.0 3. 4. 3.1999998 0. 1. + 5267. 1. 3. 27.0 9.0 3.0 1. 14.0 20.0 3. 4. 1.3333330 0. 1. + 5268. 1. 2. 22.0 2.5 0.0 2. 12.0 20.0 3. 4. 16.7999878 0. 1. + 5299. 1. 1. 42.0 23.0 5.5 2. 12.0 20.0 5. 5. 0.5326087 0. 1. + 5302. 1. 3. 22.0 2.5 0.0 1. 14.0 11.5 2. 4. 0.4000000 0. 1. + 5314. 1. 4. 27.0 2.5 0.0 1. 17.0 40.0 5. 6. 4.8999996 0. 1. + 5320. 1. 5. 27.0 6.0 0.0 2. 16.0 20.0 3. 5. 2.0416660 0. 1. + 5325. 1. 3. 27.0 6.0 1.0 2. 14.0 11.5 4. 4. 2.0416660 0. 1. + 5335. 1. 2. 42.0 23.0 1.0 1. 14.0 20.0 3. 4. 0.5217391 0. 1. + 5363. 1. 4. 27.0 6.0 0.0 4. 14.0 20.0 3. 4. 7.4666672 0. 1. + 5366. 1. 3. 22.0 6.0 1.0 1. 14.0 14.0 3. 4. 2.0416660 0. 1. + 5384. 1. 5. 22.0 2.5 0.0 2. 14.0 20.0 3. 5. 1.3999996 0. 1. + 5426. 1. 3. 27.0 2.5 4.0 2. 14.0 20.0 3. 2. 16.7999878 0. 1. + 5436. 1. 4. 27.0 6.0 3.0 2. 14.0 11.5 2. 4. 2.0000000 0. 1. + 5445. 1. 3. 32.0 16.5 2.0 3. 14.0 20.0 3. 5. 1.6969690 0. 1. + 5463. 1. 5. 22.0 2.5 0.0 3. 14.0 40.0 3. 6. 7.8399963 0. 1. + 5465. 1. 5. 32.0 13.0 1.0 2. 14.0 40.0 3. 5. 0.9230769 0. 1. + 5492. 1. 5. 22.0 2.5 0.0 3. 12.0 14.0 3. 2. 4.7999992 0. 1. + 5510. 1. 3. 32.0 13.0 2.0 1. 14.0 20.0 3. 5. 0.9230769 0. 1. + 5542. 1. 1. 37.0 23.0 4.0 2. 12.0 40.0 2. 2. 0.5217391 0. 1. + 5545. 1. 2. 22.0 2.5 1.0 3. 14.0 4.0 4. 4. 0.4000000 0. 1. + 5548. 1. 4. 42.0 23.0 3.0 4. 12.0 14.0 3. 4. 1.8260860 0. 1. + 5550. 1. 4. 27.0 6.0 2.0 2. 14.0 11.5 5. 5. 2.0416660 0. 1. + 5551. 1. 5. 37.0 16.5 2.0 4. 16.0 20.0 3. 4. 0.0606061 0. 1. + 5552. 1. 4. 22.0 6.0 0.0 3. 12.0 14.0 3. 3. 2.0416660 0. 1. + 5570. 1. 3. 32.0 16.5 3.0 2. 14.0 20.0 5. 3. 0.2121212 0. 1. + 5578. 1. 4. 27.0 9.0 3.0 3. 12.0 20.0 3. 4. 2.1777763 0. 1. + 5593. 1. 5. 27.0 6.0 0.0 1. 16.0 20.0 4. 4. 0.1666666 0. 1. + 5600. 1. 2. 22.0 6.0 3.0 3. 12.0 6.5 3. 2. 3.2666645 0. 1. + 5607. 1. 5. 22.0 2.5 0.0 1. 16.0 20.0 4. 5. 0.4000000 0. 1. + 5608. 1. 5. 42.0 23.0 4.0 4. 14.0 14.0 1. 6. 0.8521735 0. 1. + 5619. 1. 4. 32.0 9.0 1.0 1. 16.0 20.0 4. 5. 2.1777763 0. 1. + 5644. 1. 4. 22.0 2.5 2.0 3. 12.0 20.0 2. 2. 11.1999998 0. 1. + 5653. 1. 3. 42.0 23.0 5.5 3. 14.0 20.0 3. 5. 0.8521735 0. 1. + 5654. 1. 3. 22.0 2.5 1.0 1. 12.0 20.0 5. 4. 4.7999992 0. 1. + 5658. 1. 5. 27.0 9.0 2.0 2. 17.0 20.0 2. 2. 2.1777763 0. 1. + 5670. 1. 3. 22.0 2.5 0.0 1. 12.0 9.0 2. 4. 3.1999998 0. 1. + 5674. 1. 4. 32.0 13.0 1.0 2. 12.0 20.0 3. 3. 0.2692307 0. 1. + 5677. 1. 4. 37.0 16.5 1.0 2. 12.0 20.0 3. 4. 4.0727262 0. 1. + 5700. 1. 5. 32.0 9.0 3.0 2. 17.0 20.0 4. 6. 0.1111111 0. 1. + 5714. 1. 4. 27.0 9.0 1.0 2. 12.0 11.5 2. 3. 1.3333330 0. 1. + 5740. 1. 3. 27.0 2.5 1.0 3. 14.0 20.0 3. 2. 4.8999996 0. 1. + 5747. 1. 2. 22.0 2.5 1.0 2. 16.0 14.0 4. 3. 1.3999996 0. 1. + 5752. 1. 1. 42.0 16.5 5.5 3. 14.0 20.0 5. 5. 0.7424242 0. 1. + 5768. 1. 3. 27.0 13.0 2.0 2. 9.0 11.5 2. 4. 0.2692307 0. 1. + 5769. 1. 4. 42.0 23.0 3.0 4. 14.0 11.5 3. 2. 0.5217391 0. 1. + 5783. 1. 3. 27.0 9.0 2.0 2. 12.0 20.0 3. 4. 7.4666662 0. 1. + 5792. 1. 3. 27.0 6.0 2.0 2. 14.0 6.5 3. 1. 2.0416660 0. 1. + 5818. 1. 5. 27.0 2.5 0.0 3. 14.0 20.0 3. 2. 0.4000000 0. 1. + 5821. 1. 3. 27.0 2.5 0.0 3. 16.0 20.0 3. 5. 3.1999998 0. 1. + 5833. 1. 3. 22.0 2.5 0.0 3. 16.0 20.0 4. 2. 0.4000000 0. 1. + 5842. 1. 3. 42.0 23.0 3.0 1. 12.0 20.0 3. 3. 2.9217386 0. 1. + 5854. 1. 5. 42.0 23.0 2.0 2. 12.0 14.0 2. 5. 0.1521739 0. 1. + 5880. 1. 4. 27.0 2.5 0.0 1. 17.0 40.0 4. 4. 4.8999996 0. 1. + 5891. 1. 5. 27.0 6.0 0.0 2. 14.0 20.0 3. 5. 0.1666666 0. 1. + 5894. 1. 4. 32.0 16.5 4.0 2. 14.0 20.0 4. 4. 0.7272727 0. 1. + 5897. 1. 4. 27.0 6.0 0.0 3. 12.0 14.0 3. 2. 3.2666645 0. 1. + 5903. 1. 4. 32.0 9.0 2.0 2. 14.0 20.0 3. 4. 2.1777763 0. 1. + 6002. 1. 3. 27.0 9.0 2.0 1. 14.0 20.0 3. 4. 0.8888888 0. 1. + 6006. 1. 3. 27.0 2.5 1.0 2. 16.0 20.0 2. 2. 1.3999996 0. 1. + 6008. 1. 5. 27.0 13.0 2.0 2. 9.0 14.0 2. 4. 0.9230769 0. 1. + 6014. 1. 2. 27.0 13.0 2.0 2. 12.0 20.0 3. 4. 1.5076914 0. 1. + 6025. 1. 3. 42.0 16.5 4.0 2. 14.0 40.0 3. 5. 0.2121212 0. 1. + 6030. 1. 3. 32.0 9.0 2.0 1. 14.0 11.5 3. 2. 1.3611107 0. 1. + 6032. 1. 5. 32.0 13.0 0.0 2. 12.0 40.0 3. 5. 0.2692307 0. 1. + 6050. 1. 1. 27.0 9.0 2.0 2. 12.0 11.5 2. 4. 2.1777763 0. 1. + 6051. 1. 3. 32.0 13.0 3.0 2. 12.0 11.5 3. 2. 0.9423077 0. 1. + 6066. 1. 5. 27.0 2.5 0.0 3. 14.0 40.0 5. 5. 1.3999996 0. 1. + 6070. 1. 4. 32.0 6.0 1.0 1. 16.0 14.0 4. 4. 0.1666666 0. 1. + 6076. 1. 5. 27.0 13.0 3.0 1. 14.0 14.0 3. 4. 3.4461536 0. 1. + 6109. 1. 5. 27.0 2.5 0.0 3. 20.0 20.0 6. 6. 1.3999996 0. 1. + 6122. 1. 5. 32.0 16.5 4.0 2. 12.0 11.5 2. 4. 1.1878777 0. 1. + 6125. 1. 4. 37.0 13.0 0.0 2. 12.0 20.0 3. 3. 1.5076914 0. 1. + 6132. 1. 3. 22.0 2.5 0.0 3. 16.0 40.0 4. 4. 0.4000000 0. 1. + 6140. 1. 5. 37.0 13.0 2.0 4. 17.0 40.0 4. 6. 0.9230769 0. 1. + 6144. 1. 4. 22.0 2.5 2.0 1. 12.0 40.0 3. 4. 0.4000000 0. 1. + 6147. 1. 1. 42.0 16.5 2.0 4. 16.0 20.0 5. 2. 0.2121212 0. 1. + 6152. 1. 3. 37.0 16.5 3.0 3. 17.0 14.0 4. 4. 2.7151508 0. 1. + 6171. 1. 4. 22.0 2.5 0.0 3. 17.0 20.0 3. 4. 0.4000000 0. 1. + 6173. 1. 5. 32.0 13.0 2.0 2. 20.0 20.0 4. 2. 1.5076914 0. 1. + 6190. 1. 3. 37.0 16.5 2.0 3. 17.0 40.0 4. 5. 2.5454540 0. 1. + 6192. 1. 4. 32.0 16.5 4.0 3. 12.0 20.0 2. 4. 0.2121212 0. 1. + 6225. 1. 4. 32.0 16.5 2.0 2. 14.0 20.0 3. 5. 0.7272727 0. 1. + 6228. 1. 5. 37.0 16.5 2.0 4. 17.0 20.0 3. 3. 0.7272727 0. 1. + 6231. 1. 3. 27.0 9.0 2.0 1. 12.0 20.0 3. 5. 0.3888888 0. 1. + 6254. 1. 3. 42.0 23.0 3.0 3. 9.0 14.0 3. 5. 1.9478254 0. 1. + 6260. 1. 4. 32.0 9.0 2.0 1. 20.0 40.0 4. 5. 1.3333330 0. 1. + 6266. 1. 4. 22.0 6.0 2.0 2. 12.0 11.5 3. 3. 0.5833333 0. 1. + 6267. 1. 1. 32.0 13.0 2.0 2. 16.0 20.0 6. 5. 1.5076914 0. 1. + 6270. 1. 4. 22.0 2.5 0.0 1. 12.0 20.0 2. 2. 4.7999992 0. 1. + 6274. 1. 4. 27.0 9.0 2.0 1. 12.0 11.5 3. 4. 0.3888888 0. 1. + 6281. 1. 3. 27.0 6.0 0.0 2. 14.0 20.0 4. 5. 2.0000000 0. 1. + 6292. 1. 4. 32.0 13.0 4.0 2. 12.0 11.5 3. 5. 0.0769231 0. 1. + 6305. 1. 5. 42.0 23.0 3.0 4. 12.0 20.0 2. 4. 1.2173910 0. 1. + 6313. 1. 2. 37.0 16.5 3.0 1. 14.0 20.0 3. 4. 1.1878777 0. 1. + 6318. 1. 3. 32.0 9.0 0.0 2. 14.0 20.0 3. 5. 1.3333330 0. 1. + 6328. 1. 4. 37.0 16.5 2.0 3. 14.0 20.0 3. 6. 0.7272727 0. 1. + 6339. 1. 1. 32.0 16.5 4.0 3. 12.0 11.5 3. 5. 1.1878777 0. 1. + 6353. 1. 3. 37.0 16.5 1.0 3. 14.0 20.0 3. 5. 1.1878777 0. 1. + 6366. 1. 4. 22.0 2.5 0.0 3. 14.0 20.0 4. 5. 1.3999996 0. 1. + 6380. 1. 4. 22.0 6.0 2.0 2. 12.0 6.5 2. 2. 0.5833333 0. 1. + 6391. 1. 3. 22.0 2.5 1.0 3. 12.0 14.0 3. 2. 3.1999998 0. 1. + 6411. 1. 5. 27.0 6.0 1.0 3. 16.0 9.0 4. 1. 0.1666666 0. 1. + 6427. 1. 5. 27.0 9.0 2.0 2. 20.0 40.0 6. 5. 0.3888888 0. 1. + 6428. 1. 4. 22.0 6.0 1.0 2. 12.0 20.0 5. 4. 4.6666660 0. 1. + 6450. 1. 1. 32.0 16.5 3.0 1. 20.0 20.0 4. 2. 0.7272727 0. 1. + 6501. 1. 5. 22.0 2.5 0.0 2. 16.0 11.5 4. 4. 4.8999996 0. 1. + 6504. 1. 4. 42.0 16.5 3.0 2. 14.0 20.0 3. 5. 1.1878777 0. 1. + 6505. 1. 4. 32.0 13.0 2.0 4. 16.0 20.0 4. 6. 0.2692307 0. 1. + 6508. 1. 4. 32.0 9.0 2.0 2. 16.0 11.5 4. 5. 0.3888888 0. 1. + 6511. 1. 2. 42.0 23.0 4.0 1. 12.0 11.5 3. 4. 0.8521735 0. 1. + 6516. 1. 3. 42.0 16.5 2.0 2. 14.0 20.0 4. 4. 0.7272727 0. 1. + 6536. 1. 4. 42.0 16.5 1.0 3. 14.0 20.0 4. 5. 0.7272727 0. 1. + 6545. 1. 4. 32.0 13.0 3.0 2. 16.0 20.0 4. 5. 0.9230769 0. 1. + 6550. 1. 4. 27.0 2.5 0.0 2. 14.0 20.0 5. 5. 4.7999992 0. 1. + 6560. 1. 4. 27.0 6.0 1.0 1. 14.0 14.0 3. 4. 3.2666645 0. 1. + 6561. 1. 5. 27.0 6.0 0.0 2. 14.0 20.0 3. 5. 1.3333330 0. 1. + 6566. 1. 4. 27.0 6.0 0.0 3. 20.0 20.0 6. 6. 2.0000000 0. 1. + 6572. 1. 5. 27.0 6.0 0.0 2. 14.0 20.0 3. 4. 3.2666645 0. 1. + 6581. 1. 4. 27.0 6.0 2.0 2. 12.0 9.0 4. 4. 2.0416660 0. 1. + 6590. 1. 4. 42.0 23.0 1.0 3. 14.0 20.0 3. 4. 0.5217391 0. 1. + 6591. 1. 5. 22.0 6.0 1.0 3. 12.0 6.5 3. 3. 2.0000000 0. 1. + 6600. 1. 3. 37.0 16.5 3.0 3. 14.0 20.0 4. 5. 0.0606061 0. 1. + 6605. 1. 4. 27.0 9.0 2.0 3. 14.0 20.0 4. 4. 0.8888888 0. 1. + 6611. 1. 4. 42.0 13.0 0.0 3. 12.0 14.0 2. 4. 0.9423077 0. 1. + 6618. 1. 4. 27.0 2.5 0.0 2. 14.0 20.0 3. 5. 1.3999996 0. 1. + 6621. 1. 2. 32.0 13.0 3.0 2. 16.0 20.0 4. 2. 2.1538458 0. 1. + 6624. 1. 4. 37.0 16.5 4.0 2. 12.0 20.0 5. 5. 1.1878777 0. 1. + 6640. 1. 2. 22.0 2.5 0.0 2. 16.0 11.5 2. 5. 7.8399963 0. 1. + 6644. 1. 5. 42.0 23.0 1.0 3. 12.0 14.0 5. 2. 0.5217391 0. 1. + 6663. 1. 3. 27.0 6.0 2.0 1. 16.0 20.0 4. 5. 2.0000000 0. 1. + 6664. 1. 3. 22.0 2.5 0.0 2. 14.0 20.0 3. 5. 1.3999996 0. 1. + 6666. 1. 4. 32.0 9.0 2.0 1. 14.0 40.0 3. 5. 1.3333330 0. 1. + 6668. 1. 4. 27.0 9.0 1.0 1. 14.0 20.0 3. 5. 0.8888888 0. 1. + 6681. 1. 5. 27.0 6.0 0.0 3. 12.0 20.0 3. 4. 0.5833333 0. 1. + 6692. 1. 4. 37.0 13.0 2.0 3. 17.0 14.0 4. 6. 0.2692307 0. 1. + 6693. 1. 3. 42.0 23.0 2.0 2. 14.0 20.0 3. 4. 0.8521735 0. 1. + 6703. 1. 5. 22.0 2.5 0.0 1. 17.0 9.0 5. 1. 0.4000000 0. 1. + 6710. 1. 2. 37.0 23.0 5.5 2. 14.0 20.0 3. 5. 0.1521739 0. 1. + 6714. 1. 4. 32.0 2.5 0.0 2. 12.0 14.0 3. 2. 4.7999992 0. 1. + 6717. 1. 4. 27.0 2.5 0.0 3. 12.0 20.0 3. 3. 1.3999996 0. 1. + 6720. 1. 2. 27.0 2.5 0.0 2. 14.0 14.0 3. 5. 1.3999996 0. 1. + 6726. 1. 3. 22.0 2.5 0.0 3. 14.0 20.0 3. 6. 3.1999998 0. 1. + 6730. 1. 3. 42.0 23.0 5.5 2. 12.0 14.0 4. 2. 1.9478254 0. 1. + 6743. 1. 3. 37.0 16.5 3.0 3. 14.0 14.0 3. 3. 8.7272720 0. 1. + 6747. 1. 2. 27.0 9.0 0.0 2. 14.0 20.0 3. 4. 4.6666660 0. 1. + 6770. 1. 2. 37.0 16.5 3.0 1. 12.0 14.0 3. 2. 2.5454540 0. 1. + 6782. 1. 3. 22.0 2.5 2.0 3. 17.0 20.0 4. 2. 3.1999998 0. 1. + 6788. 1. 4. 22.0 6.0 0.0 3. 12.0 9.0 3. 4. 2.0416660 0. 1. + 6797. 1. 4. 37.0 16.5 4.0 1. 14.0 20.0 5. 4. 0.7272727 0. 1. + 6809. 1. 4. 27.0 9.0 3.0 3. 14.0 20.0 3. 2. 0.1111111 0. 1. + 6813. 1. 4. 22.0 2.5 0.0 1. 14.0 20.0 2. 5. 0.4000000 0. 1. + 6819. 1. 2. 42.0 23.0 4.0 2. 14.0 40.0 3. 5. 0.8521735 0. 1. + 6851. 1. 5. 27.0 6.0 0.0 2. 14.0 14.0 5. 2. 0.5833333 0. 1. + 6854. 1. 2. 27.0 6.0 1.0 1. 12.0 20.0 3. 5. 0.5833333 0. 1. + 6859. 1. 3. 32.0 16.5 2.0 2. 12.0 20.0 3. 2. 0.7272727 0. 1. + 6866. 1. 4. 37.0 23.0 5.5 2. 12.0 14.0 4. 2. 0.5326087 0. 1. + 6871. 1. 4. 17.5 2.5 0.0 1. 12.0 11.5 4. 2. 17.9199982 0. 1. + 6872. 1. 5. 22.0 2.5 1.0 1. 14.0 20.0 3. 5. 57.5999908 0. 1. + 6876. 1. 4. 22.0 2.5 0.0 2. 14.0 11.5 5. 4. 1.3999996 0. 1. + 6877. 1. 3. 27.0 9.0 2.0 2. 14.0 14.0 3. 5. 4.6666660 0. 1. + 6881. 1. 2. 32.0 9.0 2.0 2. 16.0 20.0 4. 5. 2.1777763 0. 1. + 6883. 1. 5. 22.0 2.5 0.0 1. 14.0 9.0 2. 2. 0.4000000 0. 1. + 6904. 1. 3. 22.0 2.5 1.0 3. 14.0 20.0 5. 4. 0.4000000 0. 1. + 6920. 1. 3. 27.0 9.0 2.0 3. 12.0 11.5 5. 5. 7.4666662 0. 1. + 6921. 1. 4. 27.0 16.5 5.5 2. 14.0 20.0 4. 4. 0.0606061 0. 1. + 6929. 1. 4. 32.0 13.0 2.0 3. 14.0 20.0 3. 5. 0.2692307 0. 1. + 6937. 1. 4. 27.0 9.0 2.0 2. 16.0 20.0 3. 4. 0.8888888 0. 1. + 6947. 1. 5. 32.0 13.0 2.0 2. 17.0 14.0 4. 4. 2.1538458 0. 1. + 6949. 1. 4. 27.0 6.0 1.0 3. 14.0 40.0 4. 1. 7.4666672 0. 1. + 6952. 1. 4. 32.0 13.0 3.0 4. 12.0 20.0 3. 5. 0.2692307 0. 1. + 6954. 1. 3. 27.0 2.5 1.0 2. 16.0 20.0 4. 2. 4.7999992 0. 1. + 6973. 1. 3. 42.0 23.0 3.0 2. 14.0 20.0 3. 5. 0.5326087 0. 1. + 6975. 1. 4. 27.0 2.5 0.0 1. 12.0 11.5 3. 2. 0.4000000 0. 1. + 6982. 1. 4. 22.0 2.5 0.0 1. 14.0 20.0 4. 4. 4.7999992 0. 1. + 6998. 1. 5. 32.0 13.0 2.0 1. 14.0 20.0 2. 2. 1.5076914 0. 1. + 7013. 1. 3. 32.0 9.0 2.0 2. 14.0 20.0 3. 5. 1.3333330 0. 1. + 7031. 1. 3. 37.0 16.5 2.0 2. 12.0 20.0 3. 4. 0.7424242 0. 1. + 7040. 1. 2. 42.0 23.0 3.0 3. 14.0 20.0 3. 4. 0.8521735 0. 1. + 7048. 1. 5. 32.0 16.5 2.0 4. 17.0 14.0 4. 4. 0.2121212 0. 1. + 7054. 1. 4. 22.0 2.5 1.0 3. 12.0 11.5 5. 3. 4.8999996 0. 1. + 7059. 1. 5. 27.0 9.0 2.0 2. 14.0 20.0 3. 4. 0.1111111 0. 1. + 7066. 1. 4. 32.0 16.5 3.0 2. 16.0 40.0 5. 6. 0.7424242 0. 1. + 7069. 1. 5. 32.0 16.5 4.0 3. 12.0 20.0 3. 5. 0.0606061 0. 1. + 7091. 1. 3. 32.0 16.5 3.0 2. 12.0 20.0 5. 5. 0.7424242 0. 1. + 7113. 1. 4. 42.0 23.0 2.0 3. 20.0 20.0 4. 4. 0.0434783 0. 1. + 7115. 1. 4. 37.0 16.5 4.0 1. 14.0 20.0 4. 5. 0.2121212 0. 1. + 7120. 1. 5. 27.0 2.5 0.0 2. 12.0 9.0 3. 3. 0.4000000 0. 1. + 7126. 1. 3. 22.0 2.5 0.0 2. 14.0 20.0 3. 5. 0.4000000 0. 1. + 7148. 1. 5. 37.0 23.0 5.5 2. 12.0 20.0 2. 4. 0.1521739 0. 1. + 7150. 1. 4. 42.0 23.0 2.0 2. 12.0 20.0 3. 5. 1.2173910 0. 1. + 7157. 1. 4. 22.0 6.0 2.0 1. 12.0 11.5 2. 4. 11.1999989 0. 1. + 7160. 1. 5. 27.0 6.0 1.0 4. 12.0 14.0 5. 5. 0.5833333 0. 1. + 7172. 1. 5. 42.0 23.0 3.0 3. 12.0 9.0 3. 2. 0.5326087 0. 1. + 7183. 1. 3. 27.0 6.0 2.0 2. 14.0 20.0 4. 4. 0.1666666 0. 1. + 7186. 1. 4. 27.0 6.0 2.0 1. 16.0 40.0 4. 5. 2.0000000 0. 1. + 7196. 1. 2. 42.0 16.5 1.0 2. 20.0 40.0 4. 4. 0.7272727 0. 1. + 7198. 1. 2. 37.0 16.5 4.0 2. 14.0 20.0 3. 5. 1.1878777 0. 1. + 7200. 1. 1. 32.0 13.0 2.0 1. 12.0 14.0 2. 4. 0.0769231 0. 1. + 7203. 1. 3. 37.0 16.5 4.0 4. 14.0 11.5 5. 3. 0.4848484 0. 1. + 7244. 1. 4. 27.0 9.0 1.0 1. 12.0 11.5 3. 4. 4.6666660 0. 1. + 7245. 1. 2. 27.0 2.5 0.0 3. 14.0 6.5 5. 4. 4.7999992 0. 1. + 7249. 1. 3. 32.0 16.5 5.5 4. 12.0 11.5 3. 2. 0.2121212 0. 1. + 7254. 1. 4. 22.0 2.5 0.0 2. 14.0 14.0 2. 2. 3.1999998 0. 1. + 7259. 1. 4. 27.0 6.0 0.0 3. 17.0 9.0 4. 4. 3.2666645 0. 1. + 7260. 1. 5. 32.0 9.0 0.0 3. 20.0 20.0 6. 4. 0.1111111 0. 1. + 7291. 1. 3. 22.0 6.0 0.0 2. 17.0 20.0 4. 3. 4.6666660 0. 1. + 7298. 1. 4. 22.0 2.5 2.0 2. 12.0 11.5 3. 2. 3.1999998 0. 1. + 7301. 1. 4. 42.0 23.0 1.0 2. 14.0 20.0 3. 6. 2.9217386 0. 1. + 7303. 1. 3. 27.0 6.0 0.0 2. 14.0 20.0 3. 4. 7.0000000 0. 1. + 7335. 1. 4. 37.0 23.0 5.5 2. 9.0 20.0 3. 4. 0.8521735 0. 1. + 7354. 1. 4. 22.0 2.5 1.0 3. 14.0 20.0 5. 5. 7.8399963 0. 1. + 7355. 1. 5. 27.0 9.0 2.0 2. 14.0 14.0 5. 4. 1.3333330 0. 1. + 7365. 1. 4. 22.0 2.5 0.0 2. 12.0 20.0 3. 4. 4.8999996 0. 1. + 7423. 1. 3. 27.0 9.0 2.0 3. 14.0 20.0 3. 5. 1.3333330 0. 1. + 7435. 1. 4. 22.0 6.0 1.0 2. 12.0 11.5 3. 4. 0.1666666 0. 1. + 7444. 1. 4. 27.0 6.0 2.0 3. 14.0 6.5 4. 5. 0.5833333 0. 1. + 7448. 1. 3. 42.0 23.0 2.0 2. 14.0 20.0 3. 5. 0.8521735 0. 1. + 7470. 1. 4. 22.0 6.0 1.0 2. 12.0 20.0 3. 4. 0.5833333 0. 1. + 7487. 1. 4. 32.0 13.0 3.0 2. 14.0 20.0 2. 5. 0.2692307 0. 1. + 7493. 1. 5. 42.0 23.0 4.0 3. 14.0 14.0 2. 2. 0.0434783 0. 1. + 7506. 1. 4. 27.0 13.0 2.0 3. 12.0 20.0 5. 4. 0.9230769 0. 1. + 7517. 1. 4. 27.0 9.0 1.0 2. 14.0 20.0 5. 4. 2.1777763 0. 1. + 7540. 1. 4. 27.0 9.0 1.0 2. 12.0 14.0 3. 3. 1.3333330 0. 1. + 7551. 1. 5. 22.0 2.5 0.0 3. 14.0 11.5 3. 4. 1.3999996 0. 1. + 7552. 1. 3. 32.0 13.0 2.0 3. 12.0 20.0 3. 5. 0.6153846 0. 1. + 7555. 1. 3. 42.0 23.0 4.0 2. 12.0 20.0 3. 4. 0.8521735 0. 1. + 7564. 1. 3. 27.0 6.0 0.0 2. 16.0 40.0 4. 4. 0.1666666 0. 1. + 7578. 1. 5. 42.0 23.0 2.0 2. 14.0 20.0 3. 3. 0.1521739 0. 1. + 7579. 1. 3. 37.0 16.5 5.5 3. 12.0 14.0 2. 2. 0.4848484 0. 1. + 7607. 1. 4. 22.0 2.5 0.0 2. 14.0 6.5 3. 4. 17.9199982 0. 1. + 7613. 1. 5. 42.0 23.0 2.0 2. 12.0 14.0 3. 2. 0.5326087 0. 1. + 7619. 1. 5. 27.0 2.5 0.0 1. 16.0 14.0 5. 2. 1.3999996 0. 1. + 7638. 1. 4. 32.0 23.0 3.0 4. 12.0 11.5 2. 2. 0.5326087 0. 1. + 7652. 1. 5. 22.0 2.5 0.0 2. 17.0 20.0 4. 6. 7.8399963 0. 1. + 7662. 1. 4. 37.0 16.5 5.5 2. 14.0 14.0 2. 3. 1.1878777 0. 1. + 7690. 1. 4. 22.0 2.5 1.0 3. 12.0 6.5 2. 2. 4.8999996 0. 1. + 7691. 1. 2. 27.0 6.0 2.0 2. 12.0 11.5 3. 2. 2.0000000 0. 1. + 7705. 1. 5. 32.0 16.5 3.0 3. 16.0 20.0 2. 4. 0.2121212 0. 1. + 7714. 1. 3. 27.0 6.0 1.0 3. 14.0 11.5 3. 2. 3.2666645 0. 1. + 7715. 1. 3. 27.0 2.5 2.0 1. 14.0 11.5 3. 5. 1.3999996 0. 1. + 7728. 1. 5. 42.0 23.0 5.5 3. 16.0 20.0 4. 4. 0.5326087 0. 1. + 7737. 1. 3. 17.5 2.5 0.0 1. 12.0 11.5 3. 4. 7.8399963 0. 1. + 7740. 1. 3. 37.0 23.0 3.0 2. 12.0 20.0 3. 5. 0.8521735 0. 1. + 7763. 1. 5. 27.0 6.0 0.0 3. 17.0 9.0 3. 1. 0.1666666 0. 1. + 7769. 1. 4. 37.0 16.5 1.0 2. 12.0 20.0 3. 5. 2.7151508 0. 1. + 7789. 1. 3. 32.0 16.5 2.0 2. 12.0 40.0 3. 6. 0.7424242 0. 1. + 7803. 1. 3. 27.0 2.5 0.0 1. 17.0 20.0 4. 6. 4.7999992 0. 1. + 7808. 1. 4. 32.0 16.5 4.0 3. 12.0 11.5 2. 4. 0.7424242 0. 1. + 7809. 1. 3. 32.0 16.5 2.0 2. 12.0 20.0 3. 4. 1.1878777 0. 1. + 7813. 1. 4. 17.5 2.5 1.0 1. 12.0 6.5 3. 2. 4.7999992 0. 1. + 7821. 1. 3. 22.0 2.5 1.0 2. 12.0 6.5 5. 2. 7.8399963 0. 1. + 7823. 1. 5. 37.0 16.5 2.0 2. 16.0 20.0 4. 4. 0.7272727 0. 1. + 7829. 1. 5. 37.0 16.5 2.0 3. 12.0 11.5 3. 2. 0.7272727 0. 1. + 7834. 1. 5. 22.0 2.5 0.0 4. 14.0 20.0 3. 3. 0.4000000 0. 1. + 7846. 1. 4. 27.0 2.5 0.0 1. 14.0 20.0 3. 2. 4.8999996 0. 1. + 7860. 1. 4. 22.0 2.5 1.0 2. 14.0 20.0 4. 2. 0.4000000 0. 1. + 7864. 1. 4. 37.0 16.5 3.0 3. 12.0 14.0 2. 4. 0.7272727 0. 1. + 7866. 1. 3. 22.0 6.0 1.0 3. 16.0 20.0 4. 4. 3.2666645 0. 1. + 7883. 1. 4. 27.0 6.0 1.0 1. 14.0 20.0 3. 5. 0.5833333 0. 1. + 7886. 1. 1. 42.0 23.0 3.0 3. 12.0 14.0 3. 4. 1.8260860 0. 1. + 7889. 1. 3. 22.0 6.0 2.0 3. 12.0 11.5 2. 4. 3.2666645 0. 1. + 7897. 1. 3. 22.0 2.5 1.0 2. 12.0 4.0 4. 1. 0.4000000 0. 1. + 7899. 1. 4. 22.0 2.5 1.0 3. 16.0 11.5 3. 3. 4.7999992 0. 1. + 7900. 1. 2. 22.0 2.5 2.0 1. 12.0 11.5 2. 4. 3.1999998 0. 1. + 7902. 1. 5. 22.0 2.5 1.0 3. 14.0 9.0 2. 5. 4.8999996 0. 1. + 7916. 1. 4. 22.0 2.5 0.0 3. 14.0 20.0 3. 5. 1.3999996 0. 1. + 7922. 1. 4. 42.0 23.0 5.5 3. 12.0 11.5 5. 5. 0.5217391 0. 1. + 7927. 1. 3. 27.0 9.0 1.0 1. 14.0 9.0 3. 5. 0.1111111 0. 1. + 7940. 1. 3. 37.0 23.0 4.0 2. 12.0 9.0 3. 2. 1.9478254 0. 1. + 7949. 1. 4. 37.0 16.5 3.0 3. 12.0 20.0 5. 2. 0.7424242 0. 1. + 7950. 1. 5. 22.0 2.5 1.0 2. 14.0 11.5 4. 1. 7.8399963 0. 1. + 7954. 1. 2. 27.0 2.5 0.0 1. 14.0 20.0 3. 3. 11.1999998 0. 1. + 7956. 1. 5. 22.0 2.5 1.0 2. 16.0 11.5 4. 4. 1.3999996 0. 1. + 7965. 1. 4. 22.0 2.5 1.0 3. 12.0 6.5 3. 3. 4.7999992 0. 1. + 7966. 1. 4. 27.0 6.0 2.0 2. 14.0 11.5 3. 5. 0.1666666 0. 1. + 7988. 1. 5. 22.0 2.5 0.0 3. 16.0 20.0 4. 4. 0.4000000 0. 1. + 7997. 1. 4. 27.0 6.0 1.0 3. 16.0 9.0 3. 3. 1.3333330 0. 1. + 8000. 1. 5. 42.0 23.0 3.0 2. 17.0 11.5 5. 5. 0.0434783 0. 1. + 8005. 1. 5. 37.0 16.5 4.0 2. 12.0 20.0 3. 2. 1.6969690 0. 1. + 8008. 1. 2. 27.0 6.0 0.0 1. 14.0 40.0 3. 4. 7.0000000 0. 1. + 8013. 1. 4. 32.0 16.5 3.0 4. 14.0 20.0 3. 5. 1.1878777 0. 1. + 8016. 1. 5. 37.0 16.5 5.5 3. 20.0 40.0 4. 6. 0.7424242 0. 1. + 8026. 1. 5. 27.0 2.5 2.0 2. 16.0 20.0 3. 2. 0.4000000 0. 1. + 8027. 1. 3. 27.0 9.0 2.0 2. 14.0 20.0 3. 6. 4.6666660 0. 1. + 8031. 1. 4. 32.0 13.0 4.0 3. 12.0 20.0 3. 4. 0.2692307 0. 1. + 8035. 1. 5. 27.0 9.0 1.0 3. 12.0 20.0 3. 4. 2.1777763 0. 1. + 8037. 1. 5. 32.0 6.0 3.0 1. 14.0 6.5 3. 2. 4.6666660 0. 1. + 8038. 1. 4. 32.0 16.5 3.0 1. 12.0 11.5 3. 4. 1.6969690 0. 1. + 8042. 1. 3. 27.0 9.0 0.0 1. 12.0 14.0 3. 5. 7.4666662 0. 1. + 8047. 1. 4. 32.0 13.0 1.0 3. 14.0 9.0 3. 5. 1.5076914 0. 1. + 8070. 1. 3. 42.0 23.0 2.0 3. 9.0 6.5 2. 2. 0.5217391 0. 1. + 8071. 1. 3. 22.0 6.0 1.0 2. 12.0 11.5 3. 2. 1.3333330 0. 1. + 8084. 1. 4. 37.0 23.0 3.0 3. 12.0 20.0 5. 2. 0.3478261 0. 1. + 8090. 1. 5. 42.0 23.0 3.0 3. 16.0 40.0 4. 2. 0.3478261 0. 1. + 8098. 1. 2. 22.0 6.0 0.0 2. 12.0 14.0 3. 3. 3.2666645 0. 1. + 8111. 1. 3. 37.0 13.0 2.0 2. 12.0 20.0 3. 5. 0.2692307 0. 1. + 8128. 1. 3. 32.0 13.0 2.0 2. 16.0 6.5 3. 5. 0.9230769 0. 1. + 8129. 1. 3. 22.0 2.5 0.0 2. 12.0 20.0 3. 3. 0.4000000 0. 1. + 8133. 1. 3. 42.0 23.0 5.5 3. 14.0 20.0 3. 4. 0.5326087 0. 1. + 8136. 1. 2. 32.0 16.5 2.0 2. 16.0 20.0 4. 6. 0.7424242 0. 1. + 8141. 1. 4. 27.0 6.0 2.0 3. 14.0 20.0 5. 4. 2.0000000 0. 1. + 8144. 1. 4. 37.0 16.5 3.0 4. 16.0 20.0 4. 5. 0.7424242 0. 1. + 8149. 1. 5. 37.0 23.0 3.0 1. 12.0 40.0 3. 5. 0.3478261 0. 1. + 8150. 1. 3. 22.0 2.5 0.0 3. 14.0 11.5 3. 3. 3.1999998 0. 1. + 8153. 1. 3. 22.0 2.5 0.0 2. 12.0 14.0 3. 5. 4.7999992 0. 1. + 8159. 1. 4. 22.0 9.0 3.0 2. 14.0 20.0 3. 3. 0.3888888 0. 1. + 8161. 1. 3. 42.0 23.0 2.0 1. 12.0 40.0 2. 5. 0.0434783 0. 1. + 8162. 1. 4. 32.0 13.0 1.0 1. 12.0 11.5 3. 2. 1.5076914 0. 1. + 8163. 1. 3. 22.0 2.5 1.0 2. 12.0 9.0 2. 4. 11.1999998 0. 1. + 8169. 1. 2. 37.0 13.0 3.0 2. 14.0 40.0 4. 2. 0.0769231 0. 1. + 8170. 1. 5. 42.0 23.0 2.0 3. 12.0 20.0 5. 5. 0.1521739 0. 1. + 8184. 1. 2. 37.0 16.5 3.0 3. 16.0 6.5 4. 2. 0.7272727 0. 1. + 8188. 1. 3. 27.0 6.0 1.0 2. 14.0 20.0 4. 4. 2.0000000 0. 1. + 8196. 1. 5. 22.0 2.5 0.0 2. 14.0 20.0 4. 4. 3.1999998 0. 1. + 8210. 1. 3. 22.0 2.5 1.0 3. 14.0 14.0 4. 3. 4.7999992 0. 1. + 8215. 1. 4. 32.0 13.0 3.0 1. 14.0 14.0 3. 4. 0.2692307 0. 1. + 8220. 1. 5. 27.0 9.0 2.0 1. 16.0 9.0 3. 5. 1.3611107 0. 1. + 8223. 1. 4. 22.0 2.5 0.0 3. 14.0 6.5 3. 2. 7.8399963 0. 1. + 8225. 1. 5. 42.0 23.0 3.0 3. 12.0 11.5 5. 2. 0.1521739 0. 1. + 8231. 1. 3. 22.0 2.5 1.0 3. 14.0 20.0 3. 2. 1.3999996 0. 1. + 8236. 1. 4. 27.0 6.0 1.0 2. 17.0 20.0 4. 2. 3.2666645 0. 1. + 8251. 1. 4. 37.0 16.5 3.0 3. 14.0 14.0 4. 2. 0.7424242 0. 1. + 8256. 1. 5. 27.0 6.0 1.0 3. 14.0 20.0 3. 2. 2.0000000 0. 1. + 8261. 1. 4. 22.0 2.5 4.0 3. 12.0 20.0 2. 4. 0.4000000 0. 1. + 8263. 1. 2. 32.0 9.0 2.0 2. 14.0 20.0 4. 5. 2.1777763 0. 1. + 8265. 1. 4. 22.0 2.5 1.0 3. 17.0 6.5 4. 1. 4.8999996 0. 1. + 8269. 1. 4. 27.0 6.0 0.0 2. 20.0 20.0 6. 6. 2.0416660 0. 1. + 8281. 1. 3. 27.0 2.5 0.0 2. 12.0 40.0 3. 6. 7.8399963 0. 1. + 8289. 1. 4. 22.0 2.5 2.0 2. 12.0 11.5 4. 2. 1.3999996 0. 1. + 8290. 1. 2. 22.0 6.0 1.0 2. 14.0 9.0 3. 5. 7.4666672 0. 1. + 8307. 1. 4. 32.0 6.0 1.0 3. 12.0 20.0 3. 4. 0.5833333 0. 1. + 8309. 1. 5. 22.0 6.0 0.0 2. 14.0 6.5 3. 1. 2.0416660 0. 1. + 8333. 1. 4. 32.0 9.0 2.0 2. 12.0 20.0 3. 2. 0.8888888 0. 1. + 8336. 1. 2. 42.0 23.0 4.0 2. 17.0 6.5 4. 2. 0.1521739 0. 1. + 8337. 1. 1. 37.0 23.0 4.0 2. 9.0 20.0 2. 5. 0.8521735 0. 1. + 8352. 1. 4. 37.0 23.0 2.0 2. 14.0 11.5 4. 4. 0.1521739 0. 1. + 8355. 1. 4. 27.0 9.0 0.0 2. 17.0 20.0 4. 5. 2.1777763 0. 1. + 8370. 1. 2. 22.0 6.0 2.0 2. 12.0 11.5 4. 4. 0.1666666 0. 1. + 8383. 1. 3. 27.0 6.0 3.0 3. 14.0 11.5 3. 5. 2.0416660 0. 1. + 8384. 1. 4. 22.0 2.5 5.5 3. 12.0 11.5 3. 2. 1.3999996 0. 1. + 8392. 1. 5. 22.0 6.0 2.0 3. 12.0 6.5 3. 5. 0.5833333 0. 1. + 8416. 1. 3. 27.0 6.0 1.0 2. 16.0 14.0 4. 4. 0.5833333 0. 1. + 8419. 1. 3. 22.0 2.5 0.0 3. 14.0 20.0 3. 5. 3.1999998 0. 1. + 8422. 1. 4. 32.0 16.5 5.5 2. 12.0 20.0 3. 5. 0.2121212 0. 1. + 8423. 1. 4. 27.0 9.0 2.0 3. 12.0 11.5 3. 2. 0.8888888 0. 1. + 8431. 1. 2. 37.0 23.0 3.0 3. 12.0 20.0 3. 4. 0.0434783 0. 1. + 8454. 1. 3. 37.0 23.0 4.0 3. 12.0 40.0 5. 2. 0.0434783 0. 1. + 8458. 1. 3. 32.0 16.5 5.5 2. 12.0 9.0 3. 3. 2.5454540 0. 1. + 8473. 1. 3. 22.0 2.5 0.0 2. 16.0 6.5 5. 4. 1.3999996 0. 1. + 8479. 1. 5. 37.0 23.0 4.0 3. 12.0 20.0 2. 2. 1.2173910 0. 1. + 8483. 1. 5. 22.0 2.5 0.0 3. 12.0 11.5 3. 2. 1.3999996 0. 1. + 8484. 1. 5. 27.0 9.0 1.0 3. 12.0 14.0 2. 2. 0.3888888 0. 1. + 8492. 1. 5. 32.0 13.0 3.0 1. 12.0 20.0 2. 2. 0.6153846 0. 1. + 8496. 1. 3. 32.0 16.5 2.0 3. 12.0 11.5 2. 2. 1.1878777 0. 1. + 8504. 1. 5. 32.0 16.5 2.0 1. 16.0 20.0 4. 2. 4.0727262 0. 1. + 8510. 1. 4. 27.0 6.0 0.0 2. 16.0 11.5 4. 2. 2.0000000 0. 1. + 8523. 1. 4. 22.0 2.5 0.0 3. 16.0 20.0 3. 5. 1.3999996 0. 1. + 8536. 1. 2. 22.0 2.5 0.0 3. 14.0 14.0 3. 2. 4.7999992 0. 1. + 8538. 1. 4. 37.0 16.5 2.0 3. 14.0 20.0 3. 5. 8.7272720 0. 1. + 8541. 1. 5. 27.0 6.0 1.0 4. 16.0 14.0 4. 4. 2.0416660 0. 1. + 8551. 1. 3. 22.0 6.0 1.0 3. 12.0 14.0 4. 4. 4.6666660 0. 1. + 8556. 1. 2. 32.0 9.0 2.0 3. 14.0 20.0 2. 4. 1.3611107 0. 1. + 8562. 1. 4. 27.0 6.0 2.0 1. 14.0 6.5 3. 1. 3.2666645 0. 1. + 8565. 1. 3. 27.0 2.5 0.0 1. 17.0 40.0 5. 4. 16.7999878 0. 1. + 8587. 1. 2. 22.0 6.0 1.0 3. 12.0 11.5 3. 5. 2.0416660 0. 1. + 8589. 1. 3. 27.0 9.0 2.0 3. 12.0 9.0 2. 2. 2.1777763 0. 1. + 8593. 1. 3. 37.0 23.0 4.0 1. 17.0 20.0 4. 4. 0.5217391 0. 1. + 8596. 1. 3. 42.0 23.0 5.5 4. 20.0 20.0 4. 4. 0.5326087 0. 1. + 8602. 1. 5. 22.0 2.5 1.0 3. 12.0 20.0 6. 2. 26.8799896 0. 1. + 8617. 1. 4. 37.0 16.5 3.0 2. 12.0 20.0 2. 2. 0.7272727 0. 1. + 8633. 1. 5. 27.0 6.0 0.0 2. 12.0 20.0 3. 2. 11.1999989 0. 1. + 8646. 1. 3. 22.0 2.5 0.0 2. 14.0 20.0 5. 2. 11.1999998 0. 1. + 8657. 1. 3. 32.0 16.5 3.0 2. 14.0 40.0 5. 5. 2.7151508 0. 1. + 8673. 1. 5. 27.0 6.0 0.0 3. 16.0 20.0 5. 5. 3.2666645 0. 1. + 8687. 1. 2. 42.0 23.0 3.0 2. 12.0 20.0 3. 4. 0.0434783 0. 1. + 8697. 1. 4. 27.0 2.5 0.0 3. 20.0 20.0 4. 5. 7.8399963 0. 1. + 8722. 1. 5. 22.0 2.5 0.0 3. 14.0 14.0 3. 5. 0.4000000 0. 1. + 8738. 1. 3. 27.0 6.0 1.0 3. 12.0 20.0 3. 4. 0.5833333 0. 1. + 8749. 1. 5. 32.0 13.0 1.0 2. 14.0 20.0 4. 3. 0.9423077 0. 1. + 8752. 1. 2. 32.0 2.5 0.0 3. 20.0 20.0 4. 4. 1.3999996 0. 1. + 8757. 1. 2. 27.0 9.0 2.0 2. 16.0 20.0 4. 5. 0.1111111 0. 1. + 8787. 1. 5. 22.0 2.5 0.0 2. 14.0 14.0 3. 3. 1.3999996 0. 1. + 8795. 1. 4. 27.0 2.5 0.0 2. 17.0 20.0 4. 5. 0.4000000 0. 1. + 8805. 1. 4. 27.0 0.5 0.0 3. 12.0 6.5 3. 4. 2.0000000 0. 1. + 8811. 1. 4. 32.0 13.0 2.0 4. 14.0 20.0 4. 5. 0.2692307 0. 1. + 8813. 1. 3. 27.0 9.0 1.0 3. 12.0 11.5 2. 2. 2.1777763 0. 1. + 8814. 1. 3. 32.0 13.0 2.0 2. 12.0 11.5 3. 5. 3.4461536 0. 1. + 8815. 1. 5. 27.0 9.0 2.0 2. 12.0 20.0 3. 5. 0.3888888 0. 1. + 8816. 1. 5. 22.0 6.0 1.0 2. 12.0 11.5 3. 2. 1.3333330 0. 1. + 8825. 1. 3. 32.0 13.0 0.0 1. 12.0 14.0 3. 4. 3.4461536 0. 1. + 8842. 1. 3. 37.0 23.0 2.0 3. 14.0 20.0 4. 5. 0.3478261 0. 1. + 8861. 1. 5. 32.0 16.5 1.0 3. 12.0 40.0 3. 2. 1.1878777 0. 1. + 8863. 1. 3. 32.0 16.5 3.0 1. 14.0 40.0 3. 6. 1.1878777 0. 1. + 8866. 1. 5. 22.0 6.0 0.0 1. 14.0 11.5 4. 4. 7.0000000 0. 1. + 8867. 1. 4. 37.0 13.0 0.0 2. 20.0 40.0 2. 6. 5.1692305 0. 1. + 8889. 1. 3. 42.0 23.0 3.0 2. 14.0 40.0 5. 4. 0.5217391 0. 1. + 8892. 1. 4. 22.0 2.5 0.0 3. 14.0 20.0 3. 4. 7.8399963 0. 1. + 8897. 1. 4. 27.0 13.0 3.0 3. 14.0 14.0 6. 5. 5.1692305 0. 1. + 8898. 1. 2. 42.0 23.0 1.0 1. 20.0 40.0 6. 6. 1.9478254 0. 1. + 8899. 1. 2. 27.0 9.0 2.0 3. 14.0 14.0 2. 2. 1.3611107 0. 1. + 8907. 1. 5. 27.0 6.0 1.0 2. 14.0 11.5 4. 2. 2.0416660 0. 1. + 8913. 1. 5. 37.0 13.0 4.0 2. 12.0 20.0 4. 5. 1.5076914 0. 1. + 8914. 1. 2. 22.0 6.0 1.0 2. 14.0 20.0 3. 2. 3.2666645 0. 1. + 8915. 1. 3. 17.5 2.5 0.0 4. 14.0 11.5 3. 4. 3.1999998 0. 1. + 8916. 1. 5. 22.0 2.5 1.0 3. 14.0 6.5 2. 4. 16.7999878 0. 1. + 8922. 1. 3. 27.0 6.0 0.0 3. 14.0 20.0 3. 4. 2.0000000 0. 1. + 8929. 1. 5. 27.0 9.0 0.0 1. 14.0 20.0 3. 5. 2.1777763 0. 1. + 8930. 1. 3. 32.0 13.0 3.0 2. 14.0 40.0 3. 6. 1.5076914 0. 1. + 8931. 1. 4. 37.0 23.0 3.0 3. 12.0 11.5 3. 4. 0.5217391 0. 1. + 8933. 1. 4. 42.0 23.0 1.0 2. 12.0 40.0 5. 5. 0.3478261 0. 1. + 8938. 1. 3. 32.0 9.0 2.0 3. 16.0 14.0 3. 5. 2.1777763 0. 1. + 8944. 1. 5. 42.0 23.0 3.0 4. 14.0 40.0 5. 6. 0.5217391 0. 1. + 8947. 1. 4. 27.0 9.0 2.0 2. 12.0 14.0 3. 4. 1.3611107 0. 1. + 8949. 1. 4. 32.0 16.5 3.0 3. 14.0 20.0 5. 5. 1.1878777 0. 1. + 8959. 1. 2. 22.0 2.5 0.0 1. 14.0 11.5 3. 4. 11.1999998 0. 1. + 8960. 1. 3. 37.0 16.5 3.0 2. 12.0 20.0 3. 5. 5.8181810 0. 1. + 8964. 1. 3. 22.0 2.5 0.0 2. 14.0 11.5 3. 4. 0.4000000 0. 1. + 8969. 1. 4. 27.0 6.0 0.0 1. 17.0 40.0 4. 6. 3.2666645 0. 1. + 8971. 1. 5. 32.0 13.0 3.0 3. 14.0 40.0 6. 6. 0.2692307 0. 1. + 8975. 1. 5. 42.0 23.0 3.0 2. 12.0 20.0 4. 2. 2.9217386 0. 1. + 8985. 1. 5. 22.0 2.5 1.0 3. 14.0 9.0 3. 2. 1.3999996 0. 1. + 8993. 1. 4. 42.0 23.0 2.0 3. 12.0 14.0 3. 5. 1.8260860 0. 1. + 9012. 1. 4. 32.0 16.5 2.0 4. 14.0 20.0 3. 5. 0.7272727 0. 1. + 9028. 1. 3. 27.0 2.5 2.0 1. 14.0 20.0 4. 2. 3.1999998 0. 1. + 9036. 1. 5. 42.0 16.5 2.0 1. 20.0 40.0 4. 4. 0.2121212 0. 1. + 9037. 1. 5. 22.0 2.5 0.0 2. 14.0 9.0 5. 4. 0.4000000 0. 1. + 9044. 1. 3. 22.0 2.5 0.0 1. 14.0 14.0 5. 4. 4.7999992 0. 1. + 9046. 1. 4. 27.0 2.5 0.0 2. 16.0 40.0 3. 5. 3.1999998 0. 1. + 9051. 1. 3. 27.0 6.0 1.0 3. 14.0 14.0 3. 4. 0.5833333 0. 1. + 9053. 1. 4. 42.0 23.0 2.0 3. 14.0 40.0 3. 5. 0.5326087 0. 1. + 9081. 1. 2. 37.0 2.5 1.0 3. 14.0 14.0 3. 2. 1.3999996 0. 1. + 9083. 1. 2. 42.0 23.0 2.0 3. 14.0 20.0 3. 5. 0.5326087 0. 1. + 9093. 1. 1. 42.0 23.0 2.0 1. 14.0 40.0 5. 5. 1.8260860 0. 1. + 9095. 1. 5. 27.0 13.0 1.0 1. 12.0 14.0 2. 4. 0.9423077 0. 1. + 9104. 1. 5. 32.0 9.0 1.0 3. 20.0 20.0 3. 3. 4.9777775 0. 1. + 9106. 1. 3. 27.0 9.0 1.0 1. 16.0 20.0 5. 4. 0.3888888 0. 1. + 9109. 1. 4. 27.0 9.0 2.0 2. 12.0 20.0 4. 4. 2.1777763 0. 1. + 9134. 1. 4. 27.0 6.0 2.0 3. 14.0 11.5 6. 5. 2.0416660 0. 1. + 9163. 1. 4. 27.0 9.0 1.0 2. 20.0 14.0 3. 5. 2.1777763 0. 1. + 9172. 1. 2. 37.0 16.5 3.0 2. 20.0 20.0 4. 4. 0.2121212 0. 1. + 9178. 1. 3. 27.0 9.0 2.0 3. 14.0 20.0 3. 5. 0.3888888 0. 1. + 9180. 1. 5. 27.0 6.0 1.0 2. 14.0 40.0 4. 6. 0.5833333 0. 1. + 9185. 1. 3. 37.0 23.0 2.0 2. 14.0 20.0 5. 4. 0.5326087 0. 1. + 9226. 1. 4. 27.0 13.0 1.0 4. 14.0 11.5 3. 5. 0.9230769 0. 1. + 9229. 1. 4. 22.0 0.5 0.0 1. 12.0 9.0 2. 4. 24.0000000 0. 1. + 9234. 1. 5. 42.0 23.0 5.5 4. 12.0 14.0 3. 4. 0.1521739 0. 1. + 9238. 1. 4. 32.0 13.0 2.0 1. 14.0 20.0 5. 6. 0.9423077 0. 1. + 9239. 1. 4. 27.0 9.0 2.0 1. 16.0 11.5 4. 4. 0.8888888 0. 1. + 9243. 1. 5. 22.0 6.0 2.0 3. 12.0 11.5 2. 5. 0.1666666 0. 1. + 9253. 1. 2. 37.0 16.5 2.0 1. 12.0 40.0 3. 6. 1.1878777 0. 1. + 9280. 1. 3. 32.0 13.0 2.0 2. 16.0 20.0 3. 5. 1.5076914 0. 1. + 9281. 1. 4. 27.0 9.0 0.0 1. 12.0 20.0 3. 5. 2.1777763 0. 1. + 9284. 1. 3. 42.0 23.0 2.0 3. 16.0 40.0 5. 6. 0.8521735 0. 1. + 9292. 1. 4. 27.0 9.0 2.0 3. 14.0 14.0 3. 4. 2.1777763 0. 1. + 9296. 1. 5. 22.0 6.0 0.0 3. 12.0 40.0 3. 5. 0.1666666 0. 1. + 9298. 1. 4. 42.0 23.0 3.0 3. 12.0 20.0 3. 4. 0.5217391 0. 1. + 9301. 1. 4. 37.0 16.5 2.0 2. 12.0 40.0 3. 5. 0.2121212 0. 1. + 9303. 1. 4. 42.0 16.5 1.0 2. 16.0 40.0 2. 6. 0.2121212 0. 1. + 9312. 1. 4. 37.0 16.5 5.5 2. 14.0 20.0 4. 5. 0.7424242 0. 1. + 9326. 1. 2. 32.0 13.0 1.0 2. 17.0 20.0 3. 3. 1.5076914 0. 1. + 9341. 1. 2. 32.0 9.0 2.0 1. 16.0 40.0 5. 5. 0.3888888 0. 1. + 9368. 1. 4. 42.0 23.0 2.0 1. 14.0 40.0 5. 6. 2.7826080 0. 1. + 9373. 1. 4. 42.0 23.0 2.0 2. 12.0 9.0 3. 4. 0.1521739 0. 1. + 9381. 1. 5. 22.0 2.5 0.0 1. 12.0 11.5 3. 4. 4.8999996 0. 1. + 9386. 1. 4. 27.0 6.0 1.0 2. 14.0 20.0 4. 2. 1.3333330 0. 1. + 9388. 1. 4. 22.0 6.0 2.0 4. 12.0 11.5 3. 2. 0.1666666 0. 1. + 9393. 1. 5. 37.0 23.0 4.0 3. 12.0 20.0 3. 4. 2.7826080 0. 1. + 9419. 1. 3. 42.0 23.0 2.0 1. 20.0 40.0 4. 4. 0.8521735 0. 1. + 9423. 1. 4. 32.0 9.0 0.0 2. 20.0 40.0 4. 4. 0.1111111 0. 1. + 9424. 1. 4. 22.0 2.5 0.0 1. 16.0 20.0 2. 4. 3.1999998 0. 1. + 9441. 1. 5. 27.0 6.0 1.0 3. 14.0 20.0 3. 3. 2.0000000 0. 1. + 9446. 1. 5. 27.0 2.5 0.0 3. 16.0 20.0 4. 3. 7.8399963 0. 1. + 9456. 1. 5. 22.0 2.5 1.0 2. 12.0 9.0 2. 2. 1.3999996 0. 1. + 9464. 1. 5. 27.0 6.0 0.0 1. 17.0 20.0 5. 2. 0.5833333 0. 1. + 9469. 1. 3. 32.0 13.0 2.0 4. 12.0 9.0 2. 5. 1.5076914 0. 1. + 9486. 1. 4. 32.0 16.5 2.0 3. 14.0 20.0 5. 4. 0.7424242 0. 1. + 9496. 1. 5. 32.0 13.0 2.0 2. 14.0 20.0 4. 5. 0.2692307 0. 1. + 9497. 1. 4. 32.0 16.5 2.0 4. 14.0 6.5 2. 1. 0.4848484 0. 1. + 9500. 1. 3. 32.0 13.0 2.0 2. 20.0 40.0 4. 5. 0.2692307 0. 1. + 9515. 1. 3. 42.0 23.0 4.0 3. 20.0 11.5 4. 5. 0.8521735 0. 1. + 9518. 1. 5. 27.0 9.0 1.0 1. 20.0 40.0 6. 6. 0.8888888 0. 1. + 9531. 1. 4. 32.0 16.5 2.0 2. 12.0 20.0 3. 4. 1.1878777 0. 1. + 9540. 1. 5. 42.0 23.0 3.0 3. 17.0 40.0 4. 5. 0.0434783 0. 1. + 9555. 1. 3. 32.0 13.0 4.0 2. 12.0 11.5 2. 4. 0.2692307 0. 1. + 9568. 1. 3. 32.0 16.5 2.0 1. 14.0 14.0 3. 4. 2.5454540 0. 1. + 9576. 1. 5. 32.0 6.0 1.0 1. 14.0 20.0 4. 5. 0.5833333 0. 1. + 9580. 1. 4. 27.0 6.0 1.0 2. 14.0 14.0 3. 5. 0.5833333 0. 1. + 9581. 1. 2. 27.0 9.0 1.0 1. 17.0 11.5 1. 4. 3.1111107 0. 1. + 9584. 1. 5. 27.0 6.0 0.0 2. 16.0 40.0 5. 6. 0.5833333 0. 1. + 9606. 1. 4. 27.0 16.5 2.0 3. 9.0 11.5 2. 4. 0.7424242 0. 1. + 9610. 1. 4. 32.0 13.0 1.0 3. 20.0 9.0 2. 2. 0.9423077 0. 1. + 9614. 1. 4. 37.0 16.5 2.0 2. 12.0 20.0 3. 3. 1.1878777 0. 1. + 9619. 1. 3. 27.0 6.0 0.0 4. 12.0 9.0 3. 5. 1.3333330 0. 1. + 9628. 1. 3. 37.0 23.0 4.0 2. 12.0 20.0 3. 4. 2.9217386 0. 1. + 9630. 1. 3. 27.0 6.0 0.0 3. 14.0 40.0 3. 3. 2.0000000 0. 1. + 9635. 1. 5. 22.0 2.5 0.0 3. 12.0 11.5 3. 5. 4.7999992 0. 1. + 9637. 1. 4. 32.0 9.0 1.0 2. 12.0 20.0 3. 4. 2.1777763 0. 1. + 9649. 1. 4. 27.0 9.0 1.0 3. 17.0 20.0 4. 6. 2.1777763 0. 1. + 9652. 1. 5. 27.0 13.0 2.0 2. 12.0 40.0 4. 5. 0.9230769 0. 1. + 9660. 1. 5. 22.0 2.5 2.0 1. 12.0 20.0 3. 2. 1.3999996 0. 1. + 9661. 1. 4. 22.0 6.0 2.0 2. 12.0 9.0 3. 4. 0.5833333 0. 1. + 9663. 1. 2. 32.0 16.5 1.0 4. 12.0 40.0 5. 5. 1.1878777 0. 1. + 9686. 1. 3. 27.0 2.5 0.0 2. 20.0 20.0 4. 1. 1.3999996 0. 1. + 9691. 1. 3. 27.0 13.0 1.0 2. 12.0 14.0 5. 5. 3.2307692 0. 1. + 9713. 1. 4. 37.0 23.0 1.0 1. 16.0 20.0 5. 5. 1.2173910 0. 1. + 9714. 1. 4. 27.0 6.0 0.0 3. 16.0 11.5 2. 1. 2.0000000 0. 1. + 9715. 1. 4. 22.0 6.0 0.0 2. 14.0 20.0 3. 5. 4.6666660 0. 1. + 9723. 1. 5. 42.0 16.5 2.0 3. 20.0 40.0 6. 6. 0.7272727 0. 1. + 9736. 1. 2. 37.0 16.5 1.0 2. 16.0 20.0 4. 5. 1.1878777 0. 1. + 9743. 1. 1. 32.0 13.0 3.0 3. 12.0 14.0 2. 4. 0.0769231 0. 1. + 9750. 1. 5. 22.0 2.5 1.0 3. 12.0 20.0 3. 4. 4.8999996 0. 1. + 9767. 1. 4. 22.0 2.5 0.0 2. 14.0 14.0 3. 5. 4.7999992 0. 1. + 9770. 1. 3. 22.0 2.5 0.0 2. 16.0 20.0 4. 4. 4.8999996 0. 1. + 9773. 1. 5. 37.0 16.5 2.0 3. 12.0 20.0 5. 5. 4.0727262 0. 1. + 9779. 1. 4. 17.5 2.5 0.0 2. 12.0 11.5 2. 5. 4.7999992 0. 1. + 9780. 1. 5. 42.0 23.0 2.0 3. 17.0 20.0 5. 2. 0.5326087 0. 1. + 9797. 1. 3. 32.0 13.0 2.0 3. 14.0 40.0 5. 2. 3.2307692 0. 1. + 9807. 1. 3. 42.0 23.0 3.0 2. 12.0 9.0 4. 4. 1.2173910 0. 1. + 9810. 1. 4. 27.0 2.5 0.0 3. 14.0 14.0 3. 4. 1.3999996 0. 1. + 9813. 1. 5. 42.0 13.0 0.0 2. 12.0 14.0 5. 5. 0.9230769 0. 1. + 9825. 1. 2. 32.0 9.0 2.0 4. 16.0 20.0 4. 4. 2.1777763 0. 1. + 9832. 1. 3. 27.0 6.0 1.0 3. 14.0 20.0 3. 4. 3.2666645 0. 1. + 9838. 1. 2. 27.0 9.0 3.0 3. 12.0 11.5 5. 4. 2.1777763 0. 1. + 9846. 1. 3. 27.0 6.0 2.0 3. 14.0 20.0 4. 6. 0.5833333 0. 1. + 9864. 1. 5. 27.0 9.0 2.0 1. 14.0 20.0 3. 4. 4.9777775 0. 1. + 9877. 1. 2. 27.0 13.0 1.0 3. 12.0 20.0 3. 2. 0.0769231 0. 1. + 9896. 1. 4. 27.0 13.0 2.0 2. 12.0 14.0 3. 4. 0.0769231 0. 1. + 9905. 1. 5. 22.0 2.5 0.0 3. 12.0 20.0 3. 4. 4.7999992 0. 1. + 9906. 1. 4. 27.0 9.0 0.0 3. 12.0 9.0 2. 4. 4.6666660 0. 1. + 9922. 1. 3. 27.0 9.0 2.0 3. 12.0 20.0 4. 5. 0.3888888 0. 1. + 9925. 1. 3. 22.0 2.5 0.0 2. 17.0 11.5 2. 6. 3.1999998 0. 1. + 9930. 1. 3. 27.0 6.0 1.0 3. 14.0 20.0 3. 3. 2.0416660 0. 1. + 9933. 1. 4. 27.0 6.0 0.0 2. 14.0 14.0 5. 3. 2.0000000 0. 1. + 9937. 1. 4. 32.0 16.5 3.0 3. 14.0 20.0 5. 5. 0.0606061 0. 1. + 9938. 1. 4. 32.0 16.5 2.0 3. 12.0 20.0 5. 5. 0.7424242 0. 1. + 9942. 1. 3. 42.0 16.5 2.0 4. 16.0 20.0 5. 5. 0.2121212 0. 1. + 9948. 1. 3. 32.0 6.0 2.0 3. 14.0 14.0 3. 4. 2.0000000 0. 1. + 9950. 1. 3. 37.0 23.0 4.0 4. 9.0 20.0 5. 5. 0.5326087 0. 1. + 9962. 1. 1. 42.0 16.5 1.0 2. 12.0 20.0 3. 5. 1.1878777 0. 1. + 9963. 1. 2. 42.0 23.0 5.5 3. 14.0 20.0 2. 2. 0.5217391 0. 1. + 9966. 1. 5. 37.0 16.5 4.0 4. 14.0 20.0 3. 3. 0.0606061 0. 1. + 9968. 1. 5. 42.0 23.0 1.0 3. 14.0 14.0 3. 5. 0.8521735 0. 1. + 9975. 1. 3. 22.0 2.5 1.0 2. 12.0 4.0 2. 2. 7.8399963 0. 1. + 9991. 1. 5. 22.0 2.5 0.0 2. 16.0 11.5 5. 4. 4.8999996 0. 1. + 9995. 1. 2. 27.0 6.0 1.0 2. 14.0 20.0 3. 4. 0.1666666 0. 1. + 10007. 1. 1. 32.0 13.0 2.0 2. 16.0 20.0 4. 6. 0.0769231 0. 1. + 10008. 1. 3. 32.0 16.5 2.0 2. 16.0 14.0 4. 2. 1.1878777 0. 1. + 10024. 1. 5. 27.0 9.0 1.0 3. 14.0 14.0 3. 5. 2.1777763 0. 1. + 10046. 1. 3. 22.0 6.0 1.0 1. 12.0 11.5 3. 2. 3.2666645 0. 1. + 10054. 1. 4. 27.0 6.0 2.0 3. 12.0 11.5 3. 2. 1.3333330 0. 1. + 10066. 1. 4. 37.0 16.5 2.0 4. 17.0 40.0 6. 6. 0.4848484 0. 1. + 10073. 1. 4. 22.0 2.5 0.0 3. 12.0 20.0 3. 3. 0.4000000 0. 1. + 10085. 1. 1. 42.0 23.0 3.0 3. 14.0 20.0 3. 5. 0.8521735 0. 1. + 10088. 1. 2. 22.0 2.5 0.0 2. 12.0 20.0 3. 5. 4.7999992 0. 1. + 10093. 1. 4. 37.0 13.0 1.0 3. 20.0 14.0 4. 2. 1.5076914 0. 1. + 10098. 1. 2. 27.0 6.0 1.0 2. 12.0 11.5 2. 2. 0.5833333 0. 1. + 10103. 1. 5. 27.0 9.0 2.0 3. 20.0 11.5 4. 4. 0.3888888 0. 1. + 10115. 1. 3. 42.0 23.0 3.0 3. 12.0 20.0 2. 2. 1.8260860 0. 1. + 10116. 1. 3. 42.0 16.5 2.0 3. 14.0 20.0 3. 2. 0.7272727 0. 1. + 10123. 1. 2. 32.0 16.5 1.0 1. 17.0 40.0 4. 6. 0.2121212 0. 1. + 10124. 1. 4. 22.0 2.5 1.0 2. 14.0 14.0 3. 5. 0.4000000 0. 1. + 10125. 1. 5. 42.0 23.0 3.0 4. 16.0 20.0 3. 4. 0.8521735 0. 1. + 10134. 1. 4. 27.0 13.0 2.0 3. 14.0 14.0 3. 5. 3.2307692 0. 1. + 10146. 1. 1. 32.0 13.0 1.0 2. 12.0 40.0 3. 3. 0.0769231 0. 1. + 10147. 1. 3. 42.0 23.0 5.5 2. 14.0 40.0 5. 6. 0.5217391 0. 1. + 10170. 1. 5. 37.0 23.0 2.0 3. 12.0 20.0 3. 5. 1.8260860 0. 1. + 10188. 1. 5. 22.0 2.5 0.0 1. 14.0 9.0 4. 1. 4.8999996 0. 1. + 10199. 1. 3. 27.0 6.0 0.0 2. 14.0 11.5 3. 6. 2.0000000 0. 1. + 10219. 1. 4. 22.0 2.5 1.0 1. 14.0 6.5 2. 2. 1.3999996 0. 1. + 10224. 1. 5. 37.0 13.0 2.0 1. 12.0 20.0 3. 4. 0.9423077 0. 1. + 10228. 1. 4. 42.0 23.0 3.0 2. 14.0 11.5 3. 3. 0.8521735 0. 1. + 10237. 1. 3. 27.0 6.0 2.0 3. 20.0 40.0 4. 2. 0.5833333 0. 1. + 10245. 1. 4. 27.0 6.0 2.0 2. 12.0 20.0 2. 5. 2.0416660 0. 1. + 10253. 1. 2. 27.0 2.5 1.0 3. 14.0 9.0 2. 4. 7.8399963 0. 1. + 10265. 1. 5. 42.0 23.0 4.0 1. 12.0 40.0 5. 6. 0.1521739 0. 1. + 10268. 1. 3. 42.0 13.0 0.0 3. 17.0 20.0 3. 2. 0.9230769 0. 1. + 10273. 1. 5. 27.0 6.0 0.0 3. 14.0 9.0 3. 5. 0.5833333 0. 1. + 10284. 1. 4. 22.0 2.5 0.0 3. 14.0 11.5 3. 2. 1.3999996 0. 1. + 10285. 1. 3. 27.0 13.0 3.0 3. 12.0 11.5 4. 4. 5.1692305 0. 1. + 10297. 1. 3. 32.0 9.0 0.0 2. 14.0 20.0 3. 4. 0.8888888 0. 1. + 10300. 1. 1. 37.0 16.5 1.0 3. 14.0 11.5 2. 5. 0.2121212 0. 1. + 10309. 1. 3. 37.0 23.0 2.0 3. 12.0 20.0 5. 5. 0.8521735 0. 1. + 10317. 1. 2. 32.0 16.5 2.0 2. 12.0 14.0 3. 4. 0.7272727 0. 1. + 10337. 1. 3. 27.0 6.0 0.0 1. 16.0 11.5 4. 1. 7.4666672 0. 1. + 10343. 1. 4. 42.0 16.5 3.0 2. 14.0 20.0 5. 4. 0.7424242 0. 1. + 10352. 1. 1. 42.0 16.5 1.0 3. 12.0 40.0 5. 5. 1.1878777 0. 1. + 10355. 1. 3. 32.0 16.5 3.0 4. 12.0 11.5 4. 2. 0.7272727 0. 1. + 10370. 1. 5. 27.0 6.0 1.0 4. 14.0 20.0 3. 3. 2.0416660 0. 1. + 10380. 1. 2. 32.0 16.5 2.0 2. 14.0 20.0 2. 3. 4.0727262 0. 1. + 10385. 1. 2. 17.5 2.5 0.0 2. 12.0 20.0 3. 2. 16.7999878 0. 1. + 10404. 1. 4. 32.0 16.5 2.0 3. 14.0 20.0 3. 4. 0.7424242 0. 1. + 10434. 1. 3. 22.0 2.5 0.0 3. 14.0 20.0 3. 4. 7.8399963 0. 1. + 10457. 1. 5. 27.0 6.0 0.0 3. 16.0 20.0 3. 6. 2.0000000 0. 1. + 10478. 1. 5. 37.0 23.0 3.0 3. 12.0 20.0 3. 5. 0.1521739 0. 1. + 10483. 1. 3. 32.0 13.0 0.0 2. 12.0 20.0 5. 2. 0.2692307 0. 1. + 10492. 1. 4. 42.0 23.0 1.0 2. 14.0 20.0 5. 5. 0.0434783 0. 1. + 10498. 1. 1. 42.0 23.0 2.0 3. 14.0 20.0 3. 4. 2.9217386 0. 1. + 10499. 1. 2. 37.0 23.0 3.0 2. 12.0 20.0 3. 3. 1.9478254 0. 1. + 10500. 1. 4. 22.0 0.5 0.0 3. 16.0 11.5 4. 6. 7.0000000 0. 1. + 10519. 1. 5. 27.0 9.0 2.0 2. 14.0 11.5 3. 4. 0.1111111 0. 1. + 10525. 1. 4. 22.0 0.5 0.0 1. 14.0 20.0 5. 4. 16.0000000 0. 1. + 10530. 1. 3. 27.0 9.0 2.0 2. 17.0 20.0 4. 4. 1.3611107 0. 1. + 10532. 1. 4. 42.0 23.0 2.0 3. 14.0 20.0 3. 5. 1.2173910 0. 1. + 10540. 1. 4. 22.0 2.5 0.0 2. 14.0 20.0 5. 5. 1.3999996 0. 1. + 10545. 1. 4. 22.0 2.5 0.0 3. 14.0 20.0 3. 4. 17.9199982 0. 1. + 10546. 1. 4. 27.0 13.0 2.0 3. 14.0 20.0 5. 5. 0.9423077 0. 1. + 10550. 1. 4. 27.0 6.0 1.0 3. 16.0 20.0 4. 6. 2.0416660 0. 1. + 10551. 1. 3. 42.0 23.0 3.0 2. 14.0 20.0 2. 2. 0.5217391 0. 1. + 10572. 1. 3. 27.0 6.0 2.0 1. 12.0 9.0 4. 3. 2.0416660 0. 1. + 10579. 1. 5. 42.0 23.0 2.0 2. 16.0 20.0 3. 5. 0.8521735 0. 1. + 10590. 1. 3. 42.0 23.0 2.0 4. 14.0 40.0 3. 6. 0.0434783 0. 1. + 10594. 1. 5. 32.0 16.5 1.0 3. 14.0 14.0 3. 5. 0.2121212 0. 1. + 10604. 1. 4. 27.0 6.0 2.0 3. 14.0 20.0 5. 5. 0.1666666 0. 1. + 10605. 1. 2. 37.0 23.0 3.0 1. 14.0 40.0 5. 5. 0.1521739 0. 1. + 10614. 1. 4. 22.0 6.0 1.0 3. 14.0 6.5 3. 1. 3.2666645 0. 1. + 10616. 1. 2. 27.0 9.0 2.0 3. 12.0 14.0 3. 4. 1.3333330 0. 1. + 10617. 1. 5. 27.0 9.0 2.0 1. 14.0 20.0 4. 4. 2.1777763 0. 1. + 10625. 1. 4. 27.0 2.5 0.0 3. 14.0 40.0 3. 4. 16.7999878 0. 1. + 10638. 1. 5. 37.0 16.5 2.0 2. 14.0 40.0 3. 5. 0.7272727 0. 1. + 10649. 1. 3. 22.0 2.5 1.0 2. 14.0 6.5 2. 2. 0.4000000 0. 1. + 10655. 1. 4. 27.0 2.5 1.0 2. 16.0 20.0 3. 6. 0.4000000 0. 1. + 10659. 1. 1. 27.0 6.0 1.0 1. 12.0 9.0 3. 5. 0.1666666 0. 1. + 10669. 1. 4. 37.0 16.5 5.5 3. 17.0 9.0 4. 2. 0.2121212 0. 1. + 10672. 1. 5. 22.0 2.5 0.0 3. 12.0 20.0 4. 3. 4.8999996 0. 1. + 10689. 1. 2. 22.0 2.5 1.0 1. 14.0 20.0 2. 6. 1.3999996 0. 1. + 10694. 1. 5. 42.0 16.5 2.0 3. 12.0 20.0 3. 3. 0.7424242 0. 1. + 10711. 1. 3. 22.0 6.0 1.0 2. 12.0 20.0 4. 4. 1.3333330 0. 1. + 10712. 1. 3. 37.0 23.0 3.0 3. 12.0 20.0 3. 4. 1.9478254 0. 1. + 10714. 1. 4. 27.0 6.0 1.0 3. 14.0 20.0 3. 2. 2.0416660 0. 1. + 10736. 1. 2. 32.0 16.5 4.0 2. 12.0 20.0 3. 4. 1.1878777 0. 1. + 10741. 1. 3. 27.0 9.0 1.0 2. 14.0 20.0 3. 5. 0.3888888 0. 1. + 10752. 1. 5. 32.0 16.5 3.0 3. 16.0 20.0 4. 6. 0.2121212 0. 1. + 10769. 1. 5. 22.0 6.0 1.0 2. 12.0 6.5 3. 2. 0.5833333 0. 1. + 10775. 1. 3. 27.0 13.0 3.0 2. 12.0 20.0 2. 4. 0.2692307 0. 1. + 10777. 1. 5. 22.0 2.5 0.0 3. 12.0 11.5 3. 3. 1.3999996 0. 1. + 10788. 1. 4. 32.0 2.5 0.0 2. 14.0 40.0 5. 6. 1.3999996 0. 1. + 10795. 1. 3. 27.0 6.0 1.0 2. 14.0 11.5 3. 5. 2.0416660 0. 1. + 10797. 1. 3. 27.0 6.0 2.0 3. 12.0 14.0 3. 6. 0.1666666 0. 1. + 10807. 1. 2. 32.0 13.0 2.0 3. 12.0 20.0 3. 3. 0.2692307 0. 1. + 10808. 1. 4. 32.0 16.5 2.0 3. 14.0 20.0 2. 5. 0.2121212 0. 1. + 10826. 1. 3. 27.0 6.0 2.0 2. 12.0 20.0 5. 2. 2.0000000 0. 1. + 10827. 1. 4. 27.0 9.0 2.0 1. 17.0 14.0 4. 5. 2.1777763 0. 1. + 10836. 1. 4. 37.0 16.5 2.0 2. 12.0 14.0 4. 4. 1.1878777 0. 1. + 10841. 1. 3. 22.0 2.5 0.0 3. 16.0 9.0 3. 4. 4.7999992 0. 1. + 10857. 1. 4. 27.0 9.0 2.0 2. 14.0 20.0 5. 5. 1.3611107 0. 1. + 10893. 1. 3. 32.0 16.5 4.0 2. 12.0 11.5 3. 5. 1.6969690 0. 1. + 10897. 1. 3. 27.0 9.0 2.0 4. 14.0 14.0 3. 2. 2.1777763 0. 1. + 10898. 1. 4. 32.0 13.0 2.0 2. 16.0 20.0 2. 5. 0.2692307 0. 1. + 10905. 1. 2. 37.0 23.0 2.0 3. 14.0 20.0 3. 5. 0.5217391 0. 1. + 10922. 1. 4. 22.0 2.5 0.0 1. 17.0 11.5 3. 4. 17.9199982 0. 1. + 10928. 1. 4. 27.0 6.0 0.0 1. 17.0 14.0 4. 4. 0.1666666 0. 1. + 10933. 1. 4. 27.0 6.0 1.0 2. 12.0 20.0 3. 6. 7.0000000 0. 1. + 10935. 1. 3. 22.0 6.0 0.0 3. 12.0 9.0 3. 2. 0.5833333 0. 1. + 10947. 1. 3. 42.0 23.0 3.0 2. 12.0 11.5 3. 2. 1.8260860 0. 1. + 10964. 1. 4. 27.0 6.0 3.0 3. 16.0 9.0 3. 2. 2.0416660 0. 1. + 10966. 1. 4. 32.0 16.5 3.0 3. 12.0 20.0 3. 3. 1.1878777 0. 1. + 10971. 1. 3. 27.0 13.0 2.0 3. 12.0 9.0 5. 5. 3.4461536 0. 1. + 10972. 1. 3. 27.0 16.5 2.0 4. 14.0 11.5 3. 4. 0.2121212 0. 1. + 10991. 1. 3. 27.0 6.0 3.0 2. 14.0 9.0 2. 2. 0.1666666 0. 1. + 11004. 1. 5. 22.0 2.5 0.0 3. 12.0 6.5 5. 2. 0.4000000 0. 1. + 11012. 1. 4. 42.0 23.0 2.0 2. 16.0 20.0 5. 5. 1.2173910 0. 1. + 11020. 1. 1. 22.0 2.5 1.0 3. 14.0 20.0 3. 5. 4.8999996 0. 1. + 11021. 1. 4. 42.0 23.0 3.0 3. 16.0 14.0 4. 3. 0.1521739 0. 1. + 11056. 1. 3. 32.0 16.5 2.0 4. 16.0 20.0 4. 4. 0.7424242 0. 1. + 11068. 1. 3. 32.0 16.5 2.0 4. 12.0 14.0 3. 3. 0.7272727 0. 1. + 11072. 1. 4. 22.0 2.5 1.0 2. 14.0 11.5 3. 3. 4.7999992 0. 1. + 11086. 1. 3. 22.0 6.0 1.0 3. 14.0 20.0 3. 5. 0.5833333 0. 1. + 11099. 1. 4. 27.0 6.0 0.0 2. 12.0 11.5 3. 4. 0.1666666 0. 1. + 11104. 1. 5. 32.0 16.5 4.0 4. 9.0 11.5 2. 4. 0.0606061 0. 1. + 11122. 1. 1. 27.0 6.0 1.0 3. 20.0 14.0 4. 4. 2.0000000 0. 1. + 11123. 1. 2. 22.0 2.5 0.0 1. 14.0 20.0 3. 2. 4.8999996 0. 1. + 11127. 1. 5. 27.0 9.0 3.0 4. 14.0 20.0 2. 5. 0.3888888 0. 1. + 11142. 1. 3. 27.0 6.0 1.0 2. 16.0 20.0 3. 1. 7.0000000 0. 1. + 11150. 1. 4. 32.0 16.5 2.0 1. 16.0 40.0 5. 5. 2.5454540 0. 1. + 11156. 1. 5. 27.0 6.0 0.0 3. 12.0 14.0 3. 3. 2.0416660 0. 1. + 11179. 1. 4. 42.0 23.0 2.0 3. 12.0 6.5 5. 2. 0.5326087 0. 1. + 11182. 1. 3. 27.0 9.0 2.0 2. 12.0 14.0 3. 4. 2.1777763 0. 1. + 11192. 1. 4. 27.0 9.0 0.0 3. 14.0 20.0 3. 3. 2.1777763 0. 1. + 11193. 1. 4. 27.0 13.0 2.0 3. 17.0 20.0 4. 2. 3.4461536 0. 1. + 11210. 1. 5. 32.0 16.5 2.0 3. 17.0 14.0 4. 4. 1.1878777 0. 1. + 11215. 1. 4. 27.0 6.0 1.0 2. 12.0 14.0 5. 4. 3.2666645 0. 1. + 11217. 1. 4. 42.0 23.0 4.0 4. 12.0 40.0 5. 5. 0.5326087 0. 1. + 11222. 1. 1. 42.0 23.0 2.0 4. 14.0 9.0 3. 2. 0.3478261 0. 1. + 11233. 1. 2. 22.0 2.5 1.0 3. 14.0 20.0 3. 4. 1.3999996 0. 1. + 11234. 1. 1. 32.0 9.0 3.0 2. 14.0 20.0 4. 4. 1.3611107 0. 1. + 11245. 1. 3. 27.0 6.0 1.0 3. 12.0 6.5 4. 3. 0.5833333 0. 1. + 11252. 1. 4. 27.0 2.5 0.0 1. 16.0 14.0 4. 1. 4.7999992 0. 1. + 11255. 1. 5. 42.0 23.0 2.0 1. 17.0 14.0 4. 5. 0.5217391 0. 1. + 11257. 1. 5. 32.0 16.5 2.0 3. 14.0 20.0 3. 5. 0.4848484 0. 1. + 11269. 1. 4. 32.0 16.5 2.0 4. 12.0 40.0 3. 4. 2.5454540 0. 1. + 11281. 1. 5. 42.0 23.0 3.0 3. 14.0 20.0 4. 2. 0.5326087 0. 1. + 11285. 1. 4. 37.0 16.5 2.0 1. 16.0 40.0 3. 5. 0.7272727 0. 1. + 11288. 1. 2. 32.0 9.0 0.0 2. 12.0 9.0 3. 4. 0.1111111 0. 1. + 11302. 1. 4. 37.0 16.5 2.0 4. 12.0 20.0 3. 4. 0.4848484 0. 1. + 11310. 1. 3. 32.0 6.0 3.0 2. 14.0 9.0 3. 4. 0.5833333 0. 1. + 11314. 1. 5. 37.0 23.0 2.0 2. 14.0 40.0 3. 5. 0.3478261 0. 1. + 11315. 1. 2. 32.0 13.0 0.0 2. 12.0 20.0 3. 4. 1.5076914 0. 1. + 11365. 1. 4. 32.0 13.0 2.0 3. 14.0 20.0 3. 4. 3.2307692 0. 1. + 11372. 1. 4. 37.0 16.5 3.0 3. 14.0 14.0 3. 3. 0.2121212 0. 1. + 11382. 1. 4. 22.0 2.5 0.0 2. 14.0 11.5 3. 5. 4.7999992 0. 1. + 11384. 1. 5. 42.0 23.0 4.0 2. 14.0 11.5 3. 4. 0.8521735 0. 1. + 11406. 1. 3. 32.0 16.5 2.0 4. 12.0 20.0 3. 5. 1.1878777 0. 1. + 11409. 1. 4. 42.0 23.0 4.0 3. 9.0 14.0 3. 5. 1.9478254 0. 1. + 11418. 1. 5. 22.0 2.5 1.0 2. 12.0 11.5 3. 4. 4.8999996 0. 1. + 11429. 1. 2. 32.0 9.0 0.0 2. 14.0 6.5 3. 4. 0.8888888 0. 1. + 11433. 1. 5. 32.0 13.0 1.0 2. 14.0 20.0 3. 5. 0.2692307 0. 1. + 11449. 1. 2. 32.0 16.5 3.0 2. 12.0 11.5 5. 2. 0.7424242 0. 1. + 11459. 1. 5. 27.0 6.0 1.0 1. 14.0 20.0 5. 5. 2.0000000 0. 1. + 11461. 1. 4. 42.0 23.0 4.0 2. 14.0 14.0 3. 4. 0.8521735 0. 1. + 11465. 1. 3. 27.0 6.0 1.0 2. 14.0 11.5 5. 2. 3.2666645 0. 1. + 11470. 1. 3. 32.0 13.0 1.0 1. 16.0 20.0 4. 2. 0.6153846 0. 1. + 11472. 1. 2. 27.0 6.0 2.0 3. 12.0 6.5 3. 5. 0.1666666 0. 1. + 11473. 1. 4. 27.0 9.0 2.0 3. 12.0 11.5 4. 4. 1.3611107 0. 1. + 11486. 1. 5. 22.0 2.5 1.0 1. 14.0 9.0 3. 2. 11.1999998 0. 1. + 11489. 1. 2. 22.0 2.5 1.0 3. 14.0 20.0 5. 6. 7.8399963 0. 1. + 11509. 1. 5. 22.0 2.5 0.0 1. 16.0 11.5 5. 4. 0.4000000 0. 1. + 11520. 1. 4. 37.0 23.0 4.0 3. 14.0 40.0 3. 5. 1.9478254 0. 1. + 11522. 1. 2. 32.0 16.5 4.0 3. 12.0 6.5 3. 4. 0.7424242 0. 1. + 11524. 1. 3. 22.0 6.0 1.0 3. 12.0 11.5 3. 4. 2.0416660 0. 1. + 11529. 1. 3. 32.0 9.0 2.0 3. 12.0 9.0 3. 4. 16.0000000 0. 1. + 11531. 1. 1. 27.0 2.5 0.0 2. 12.0 11.5 4. 3. 4.8999996 0. 1. + 11542. 1. 5. 42.0 23.0 2.0 3. 14.0 20.0 3. 4. 0.5217391 0. 1. + 11555. 1. 4. 27.0 13.0 1.0 2. 12.0 14.0 3. 4. 0.0769231 0. 1. + 11557. 1. 4. 32.0 9.0 2.0 3. 17.0 4.0 3. 4. 1.3611107 0. 1. + 11585. 1. 5. 42.0 23.0 4.0 4. 14.0 20.0 5. 4. 0.5326087 0. 1. + 11588. 1. 4. 27.0 6.0 2.0 3. 12.0 6.5 2. 2. 2.0416660 0. 1. + 11590. 1. 5. 32.0 16.5 2.0 4. 16.0 40.0 5. 6. 1.6969690 0. 1. + 11591. 1. 5. 27.0 9.0 2.0 1. 16.0 20.0 2. 5. 0.3888888 0. 1. + 11597. 1. 4. 22.0 6.0 1.0 2. 12.0 11.5 2. 1. 2.0416660 0. 1. + 11600. 1. 5. 32.0 13.0 2.0 1. 12.0 14.0 3. 4. 0.0769231 0. 1. + 11620. 1. 3. 42.0 23.0 2.0 3. 12.0 20.0 3. 5. 0.1521739 0. 1. + 11629. 1. 4. 27.0 16.5 4.0 3. 17.0 40.0 4. 6. 2.5454540 0. 1. + 11634. 1. 3. 37.0 16.5 2.0 3. 12.0 14.0 3. 4. 0.7272727 0. 1. + 11650. 1. 5. 27.0 6.0 2.0 3. 14.0 14.0 4. 2. 3.2666645 0. 1. + 11653. 1. 2. 17.5 2.5 1.0 3. 12.0 9.0 3. 2. 1.3999996 0. 1. + 11669. 1. 4. 22.0 2.5 1.0 2. 14.0 9.0 3. 5. 1.3999996 0. 1. + 11675. 1. 5. 27.0 6.0 1.0 3. 14.0 20.0 3. 3. 2.0416660 0. 1. + 11699. 1. 5. 27.0 6.0 2.0 2. 12.0 9.0 4. 4. 0.1666666 0. 1. + 11705. 1. 3. 37.0 23.0 3.0 4. 12.0 20.0 5. 2. 0.8521735 0. 1. + 11710. 1. 3. 27.0 6.0 3.0 2. 16.0 11.5 4. 4. 0.5833333 0. 1. + 11727. 1. 3. 22.0 2.5 1.0 2. 12.0 9.0 3. 2. 1.3999996 0. 1. + 11734. 1. 5. 27.0 13.0 3.0 1. 12.0 14.0 3. 5. 1.5076914 0. 1. + 11736. 1. 4. 27.0 9.0 1.0 4. 14.0 14.0 3. 3. 1.3611107 0. 1. + 11752. 1. 1. 37.0 23.0 5.5 2. 12.0 20.0 3. 4. 0.5217391 0. 1. + 11754. 1. 5. 42.0 23.0 3.0 1. 16.0 20.0 4. 6. 0.8521735 0. 1. + 11755. 1. 4. 27.0 2.5 0.0 1. 16.0 40.0 5. 6. 7.8399963 0. 1. + 11764. 1. 4. 32.0 13.0 2.0 2. 12.0 40.0 5. 4. 0.9423077 0. 1. + 11765. 1. 3. 27.0 9.0 2.0 2. 14.0 20.0 5. 5. 1.3611107 0. 1. + 11766. 1. 4. 22.0 2.5 0.0 1. 14.0 6.5 3. 4. 4.8999996 0. 1. + 11769. 1. 4. 22.0 2.5 0.0 1. 12.0 4.0 3. 2. 1.3999996 0. 1. + 11773. 1. 4. 27.0 6.0 1.0 3. 17.0 14.0 4. 5. 0.1666666 0. 1. + 11781. 1. 4. 37.0 23.0 5.5 2. 12.0 14.0 3. 4. 0.5217391 0. 1. + 11799. 1. 5. 32.0 16.5 2.0 1. 12.0 11.5 2. 4. 0.2121212 0. 1. + 11818. 1. 2. 22.0 6.0 2.0 4. 17.0 14.0 3. 5. 2.0000000 0. 1. + 11831. 1. 2. 22.0 2.5 0.0 1. 17.0 9.0 4. 4. 26.8799896 0. 1. + 11838. 1. 4. 27.0 6.0 0.0 3. 14.0 11.5 2. 2. 7.4666672 0. 1. + 11846. 1. 5. 22.0 2.5 0.0 2. 14.0 14.0 3. 5. 1.3999996 0. 1. + 11864. 1. 5. 42.0 23.0 3.0 3. 12.0 14.0 3. 5. 2.7826080 0. 1. + 11866. 1. 5. 32.0 13.0 2.0 2. 14.0 20.0 5. 4. 0.9423077 0. 1. + 11869. 1. 5. 32.0 13.0 2.0 2. 14.0 9.0 5. 4. 1.5076914 0. 1. + 11896. 1. 3. 42.0 23.0 5.5 3. 20.0 40.0 6. 4. 2.9217386 0. 1. + 11897. 1. 5. 22.0 2.5 1.0 1. 12.0 6.5 3. 5. 1.3999996 0. 1. + 11900. 1. 2. 22.0 2.5 0.0 1. 16.0 11.5 3. 5. 17.9199982 0. 1. + 11902. 1. 3. 42.0 23.0 2.0 3. 16.0 40.0 4. 5. 0.1521739 0. 1. + 11913. 1. 3. 27.0 6.0 0.0 2. 12.0 20.0 3. 4. 4.6666660 0. 1. + 11920. 1. 3. 27.0 13.0 0.0 3. 12.0 20.0 3. 5. 0.9423077 0. 1. + 11925. 1. 4. 22.0 2.5 0.0 2. 12.0 6.5 2. 4. 4.7999992 0. 1. + 11954. 1. 3. 32.0 13.0 2.0 3. 14.0 11.5 3. 3. 1.5076914 0. 1. + 11959. 1. 5. 37.0 16.5 3.0 2. 12.0 20.0 3. 5. 0.7272727 0. 1. + 11968. 1. 3. 27.0 9.0 1.0 3. 14.0 40.0 3. 3. 2.1777763 0. 1. + 11974. 1. 5. 42.0 23.0 2.0 2. 12.0 40.0 5. 4. 0.8521735 0. 1. + 11987. 1. 5. 27.0 2.5 0.0 1. 17.0 14.0 4. 5. 4.8999996 0. 1. + 11994. 1. 3. 32.0 0.5 0.0 2. 16.0 14.0 4. 5. 24.5000000 0. 1. + 11999. 1. 4. 32.0 13.0 2.0 3. 12.0 11.5 3. 1. 0.0769231 0. 1. + 12013. 1. 3. 42.0 23.0 5.5 3. 12.0 14.0 3. 2. 0.1521739 0. 1. + 12017. 1. 1. 42.0 23.0 2.0 3. 14.0 11.5 3. 5. 0.8521735 0. 1. + 12022. 1. 3. 37.0 16.5 2.0 1. 17.0 20.0 4. 2. 0.7272727 0. 1. + 12028. 1. 4. 27.0 9.0 1.0 1. 14.0 20.0 3. 4. 1.3611107 0. 1. + 12038. 1. 4. 22.0 2.5 0.0 3. 12.0 11.5 3. 2. 1.3999996 0. 1. + 12044. 1. 4. 37.0 23.0 5.5 2. 14.0 20.0 3. 6. 1.2173910 0. 1. + 12050. 1. 5. 32.0 9.0 3.0 2. 14.0 11.5 2. 6. 0.3888888 0. 1. + 12072. 1. 4. 37.0 9.0 3.0 3. 16.0 40.0 4. 2. 2.1777763 0. 1. + 12101. 1. 5. 37.0 16.5 3.0 3. 16.0 11.5 3. 4. 1.6969690 0. 1. + 12102. 1. 4. 32.0 13.0 2.0 2. 12.0 20.0 5. 5. 0.2692307 0. 1. + 12105. 1. 3. 37.0 23.0 3.0 4. 12.0 20.0 3. 5. 0.5217391 0. 1. + 12111. 1. 4. 42.0 23.0 3.0 4. 16.0 20.0 4. 2. 1.2173910 0. 1. + 12118. 1. 3. 27.0 6.0 1.0 2. 12.0 11.5 3. 4. 0.5833333 0. 1. + 12119. 1. 5. 42.0 23.0 2.0 3. 16.0 20.0 3. 5. 0.5326087 0. 1. + 12131. 1. 5. 27.0 6.0 1.0 3. 20.0 20.0 5. 6. 1.3333330 0. 1. + 12135. 1. 3. 37.0 16.5 3.0 2. 12.0 20.0 3. 2. 2.7151508 0. 1. + 12136. 1. 3. 27.0 13.0 2.0 3. 12.0 9.0 3. 5. 0.9230769 0. 1. + 12147. 1. 5. 37.0 23.0 3.0 1. 12.0 20.0 3. 4. 0.0434783 0. 1. + 12168. 1. 3. 42.0 23.0 5.5 3. 12.0 20.0 3. 4. 0.0434783 0. 1. + 12174. 1. 2. 27.0 9.0 0.0 2. 17.0 11.5 2. 3. 1.3611107 0. 1. + 12177. 1. 2. 22.0 2.5 0.0 3. 12.0 6.5 2. 3. 0.4000000 0. 1. + 12181. 1. 4. 27.0 13.0 2.0 2. 12.0 11.5 3. 2. 0.0769231 0. 1. + 12188. 1. 4. 32.0 9.0 1.0 1. 16.0 40.0 4. 5. 4.9777775 0. 1. + 12212. 1. 3. 32.0 9.0 3.0 3. 14.0 40.0 3. 6. 2.1777763 0. 1. + 12216. 1. 4. 32.0 13.0 1.0 3. 14.0 20.0 5. 5. 0.2692307 0. 1. + 12218. 1. 5. 22.0 2.5 0.0 3. 16.0 6.5 4. 1. 1.3999996 0. 1. + 12222. 1. 3. 27.0 6.0 1.0 2. 17.0 11.5 4. 4. 4.6666660 0. 1. + 12225. 1. 4. 27.0 2.5 0.0 2. 16.0 14.0 4. 2. 7.8399963 0. 1. + 12230. 1. 3. 27.0 6.0 0.0 1. 16.0 40.0 4. 4. 1.3333330 0. 1. + 12240. 1. 3. 42.0 16.5 4.0 3. 16.0 14.0 2. 4. 0.2121212 0. 1. + 12245. 1. 1. 27.0 2.5 1.0 3. 16.0 20.0 4. 4. 1.3999996 0. 1. + 12247. 1. 5. 27.0 9.0 1.0 2. 14.0 20.0 4. 4. 3.1111107 0. 1. + 12252. 1. 4. 42.0 23.0 2.0 3. 12.0 14.0 3. 5. 1.8260860 0. 1. + 12278. 1. 4. 27.0 13.0 2.0 2. 12.0 20.0 3. 4. 0.9230769 0. 1. + 12307. 1. 5. 32.0 13.0 1.0 1. 14.0 14.0 4. 4. 0.9423077 0. 1. + 12308. 1. 4. 22.0 2.5 1.0 2. 14.0 6.5 3. 4. 7.8399963 0. 1. + 12309. 1. 2. 27.0 9.0 2.0 2. 14.0 20.0 5. 5. 4.6666660 0. 1. + 12321. 1. 5. 22.0 2.5 0.0 4. 14.0 9.0 3. 4. 4.8999996 0. 1. + 12329. 1. 3. 37.0 16.5 3.0 3. 14.0 14.0 3. 3. 0.2121212 0. 1. + 12374. 1. 3. 27.0 6.0 1.0 3. 14.0 11.5 3. 4. 7.0000000 0. 1. + 12380. 1. 4. 32.0 13.0 2.0 1. 12.0 20.0 2. 4. 3.4461536 0. 1. + 12399. 1. 3. 42.0 23.0 2.0 2. 16.0 20.0 4. 5. 0.5217391 0. 1. + 12406. 1. 4. 37.0 16.5 3.0 3. 12.0 40.0 3. 5. 0.2121212 0. 1. + 12415. 1. 4. 32.0 13.0 2.0 1. 12.0 11.5 2. 4. 1.5076914 0. 1. + 12419. 1. 3. 42.0 23.0 5.5 2. 12.0 20.0 3. 4. 2.9217386 0. 1. + 12432. 1. 3. 27.0 9.0 1.0 1. 14.0 6.5 3. 4. 1.3611107 0. 1. + 12438. 1. 5. 32.0 16.5 2.0 3. 12.0 9.0 3. 2. 0.7424242 0. 1. + 12478. 1. 5. 32.0 16.5 1.0 2. 14.0 20.0 5. 5. 0.2121212 0. 1. + 12484. 1. 5. 27.0 6.0 2.0 2. 20.0 14.0 6. 6. 4.6666660 0. 1. + 12496. 1. 4. 27.0 6.0 2.0 3. 12.0 9.0 3. 2. 0.1666666 0. 1. + 12497. 1. 3. 22.0 6.0 1.0 3. 14.0 9.0 5. 4. 0.5833333 0. 1. + 12499. 1. 5. 27.0 16.5 3.0 3. 14.0 40.0 5. 5. 0.2121212 0. 1. + 12514. 1. 5. 22.0 2.5 0.0 2. 14.0 20.0 5. 6. 4.8999996 0. 1. + 12524. 1. 3. 42.0 23.0 5.5 3. 14.0 40.0 3. 5. 0.5217391 0. 1. + 12525. 1. 4. 37.0 23.0 3.0 2. 12.0 40.0 3. 3. 0.5217391 0. 1. + 12529. 1. 1. 42.0 16.5 3.0 4. 17.0 20.0 4. 4. 1.1878777 0. 1. + 12536. 1. 3. 27.0 2.5 0.0 2. 16.0 9.0 4. 2. 4.7999992 0. 1. + 12549. 1. 2. 27.0 6.0 2.0 2. 12.0 11.5 5. 1. 0.1666666 0. 1. + 12577. 1. 5. 27.0 9.0 3.0 2. 16.0 14.0 4. 4. 0.1111111 0. 1. + 12582. 1. 5. 27.0 6.0 2.0 2. 12.0 20.0 5. 3. 0.5833333 0. 1. + 12583. 1. 3. 32.0 16.5 3.0 1. 14.0 14.0 2. 2. 0.4848484 0. 1. + 12591. 1. 4. 27.0 6.0 2.0 2. 14.0 6.5 3. 4. 0.5833333 0. 1. + 12595. 1. 4. 27.0 0.5 0.0 3. 17.0 20.0 4. 6. 7.0000000 0. 1. + 12596. 1. 4. 22.0 6.0 1.0 2. 12.0 11.5 3. 3. 3.2666645 0. 1. + 12599. 1. 5. 42.0 23.0 2.0 1. 14.0 40.0 6. 6. 2.9217386 0. 1. + 12600. 1. 4. 27.0 6.0 2.0 4. 14.0 20.0 5. 4. 0.1666666 0. 1. + 12603. 1. 5. 27.0 6.0 1.0 2. 16.0 11.5 4. 5. 2.0416660 0. 1. + 12607. 1. 3. 42.0 13.0 0.0 3. 17.0 40.0 4. 5. 0.2692307 0. 1. + 12615. 1. 3. 42.0 23.0 3.0 3. 12.0 14.0 2. 2. 1.2173910 0. 1. + 12639. 1. 5. 27.0 6.0 1.0 1. 16.0 14.0 4. 4. 2.0416660 0. 1. + 12643. 1. 5. 22.0 6.0 0.0 3. 14.0 6.5 3. 4. 2.0416660 0. 1. + 12649. 1. 3. 42.0 23.0 3.0 2. 14.0 20.0 3. 4. 0.8521735 0. 1. + 12669. 1. 4. 22.0 6.0 0.0 2. 16.0 14.0 4. 5. 0.5833333 0. 1. + 12671. 1. 5. 32.0 13.0 2.0 1. 14.0 20.0 3. 5. 3.2307692 0. 1. + 12673. 1. 3. 22.0 6.0 2.0 3. 14.0 11.5 2. 2. 11.1999989 0. 1. + 12679. 1. 5. 27.0 2.5 0.0 2. 14.0 20.0 3. 2. 1.3999996 0. 1. + 12701. 1. 2. 42.0 23.0 5.5 2. 14.0 20.0 3. 2. 0.0434783 0. 1. + 12705. 1. 4. 37.0 23.0 3.0 1. 14.0 20.0 3. 4. 0.8521735 0. 1. + 12716. 1. 5. 22.0 2.5 0.0 1. 14.0 20.0 3. 4. 7.8399963 0. 1. + 12720. 1. 5. 27.0 2.5 0.0 1. 17.0 20.0 4. 5. 0.4000000 0. 1. + 12723. 1. 4. 27.0 9.0 1.0 2. 16.0 9.0 3. 5. 0.3888888 0. 1. + 12754. 1. 4. 27.0 9.0 3.0 3. 14.0 20.0 3. 4. 1.3611107 0. 1. + 12761. 1. 4. 42.0 23.0 4.0 2. 16.0 14.0 4. 5. 0.8521735 0. 1. + 12765. 1. 4. 37.0 16.5 4.0 3. 14.0 20.0 3. 2. 0.7424242 0. 1. + 12783. 1. 4. 32.0 9.0 0.0 2. 12.0 14.0 3. 3. 1.3333330 0. 1. + 12785. 1. 4. 32.0 13.0 0.0 2. 14.0 20.0 3. 6. 0.9423077 0. 1. + 12786. 1. 2. 22.0 6.0 2.0 2. 12.0 11.5 3. 4. 0.5833333 0. 1. + 12792. 1. 3. 42.0 23.0 3.0 2. 14.0 40.0 5. 5. 0.5326087 0. 1. + 12808. 1. 4. 32.0 13.0 0.0 3. 14.0 20.0 3. 5. 0.9230769 0. 1. + 12821. 1. 4. 37.0 16.5 4.0 3. 14.0 11.5 3. 4. 0.7424242 0. 1. + 12836. 1. 3. 37.0 23.0 3.0 2. 12.0 20.0 3. 5. 0.8521735 0. 1. + 12843. 1. 4. 32.0 16.5 2.0 1. 14.0 20.0 3. 4. 2.5454540 0. 1. + 12856. 1. 4. 27.0 6.0 1.0 2. 16.0 20.0 3. 5. 2.0000000 0. 1. + 12858. 1. 4. 22.0 2.5 0.0 2. 16.0 6.5 4. 5. 3.1999998 0. 1. + 12861. 1. 2. 22.0 2.5 0.0 3. 12.0 14.0 3. 2. 1.3999996 0. 1. + 12864. 1. 4. 27.0 6.0 1.0 2. 14.0 20.0 3. 3. 1.3333330 0. 1. + 12872. 1. 3. 32.0 16.5 2.0 2. 12.0 11.5 3. 2. 2.7151508 0. 1. + 12875. 1. 5. 17.5 2.5 2.0 2. 12.0 11.5 2. 5. 4.7999992 0. 1. + 12880. 1. 3. 22.0 2.5 0.0 3. 20.0 9.0 3. 1. 7.8399963 0. 1. + 12907. 1. 2. 37.0 23.0 3.0 3. 12.0 20.0 3. 2. 0.8521735 0. 1. + 12938. 1. 4. 32.0 16.5 5.5 3. 14.0 20.0 5. 5. 0.7424242 0. 1. + 12953. 1. 3. 42.0 23.0 3.0 4. 14.0 14.0 3. 5. 0.1521739 0. 1. + 12986. 1. 5. 22.0 2.5 0.0 2. 14.0 11.5 2. 3. 4.8999996 0. 1. + 12990. 1. 4. 27.0 9.0 0.0 2. 14.0 20.0 3. 4. 3.1111107 0. 1. + 12992. 1. 3. 22.0 2.5 2.0 2. 12.0 14.0 3. 4. 0.4000000 0. 1. + 12994. 1. 3. 42.0 23.0 2.0 4. 14.0 11.5 4. 6. 1.2173910 0. 1. + 13000. 1. 5. 42.0 23.0 5.5 2. 14.0 14.0 3. 2. 0.5326087 0. 1. + 13002. 1. 4. 27.0 6.0 0.0 3. 14.0 20.0 6. 6. 2.0416660 0. 1. + 13015. 1. 4. 42.0 23.0 4.0 3. 14.0 20.0 3. 4. 0.5217391 0. 1. + 13028. 1. 3. 32.0 16.5 2.0 2. 12.0 20.0 3. 5. 0.3393939 0. 1. + 13041. 1. 3. 27.0 2.5 0.0 1. 16.0 20.0 3. 4. 4.8999996 0. 1. + 13050. 1. 3. 32.0 13.0 2.0 4. 14.0 20.0 4. 2. 5.1692305 0. 1. + 13051. 1. 2. 37.0 16.5 2.0 2. 14.0 40.0 3. 5. 1.1878777 0. 1. + 13053. 1. 4. 22.0 6.0 2.0 2. 12.0 20.0 2. 4. 2.0000000 0. 1. + 13059. 1. 4. 32.0 9.0 3.0 1. 16.0 20.0 2. 4. 0.1111111 0. 1. + 13062. 1. 3. 42.0 23.0 4.0 2. 12.0 40.0 3. 5. 0.3478261 0. 1. + 13089. 1. 3. 32.0 13.0 2.0 3. 12.0 9.0 3. 3. 2.1538458 0. 1. + 13102. 1. 4. 22.0 2.5 0.0 2. 14.0 6.5 2. 1. 0.4000000 0. 1. + 13110. 1. 3. 37.0 16.5 2.0 2. 12.0 20.0 2. 2. 0.7272727 0. 1. + 13113. 1. 3. 27.0 6.0 0.0 2. 14.0 40.0 3. 5. 2.0000000 0. 1. + 13139. 1. 4. 42.0 23.0 3.0 3. 12.0 11.5 5. 4. 2.9217386 0. 1. + 13141. 1. 4. 42.0 23.0 3.0 2. 14.0 40.0 5. 4. 1.2173910 0. 1. + 13147. 1. 2. 42.0 23.0 5.5 4. 14.0 14.0 2. 5. 0.1521739 0. 1. + 13153. 1. 5. 27.0 6.0 0.0 2. 12.0 40.0 5. 4. 0.5833333 0. 1. + 13158. 1. 4. 32.0 16.5 1.0 2. 14.0 40.0 3. 4. 0.7424242 0. 1. + 13171. 1. 4. 37.0 16.5 3.0 3. 12.0 20.0 4. 2. 1.6969690 0. 1. + 13175. 1. 5. 42.0 23.0 5.5 3. 14.0 40.0 3. 6. 0.1521739 0. 1. + 13190. 1. 3. 37.0 16.5 3.0 2. 14.0 20.0 5. 4. 0.7272727 0. 1. + 13199. 1. 2. 37.0 13.0 1.0 1. 16.0 20.0 4. 4. 0.9423077 0. 1. + 13225. 1. 4. 27.0 6.0 0.0 3. 16.0 40.0 5. 6. 0.5833333 0. 1. + 13242. 1. 4. 42.0 23.0 4.0 3. 16.0 20.0 4. 2. 0.8521735 0. 1. + 13253. 1. 5. 27.0 2.5 0.0 2. 14.0 9.0 3. 4. 3.1999998 0. 1. + 13282. 1. 2. 42.0 23.0 3.0 1. 12.0 14.0 3. 5. 2.9217386 0. 1. + 13294. 1. 5. 37.0 13.0 2.0 1. 14.0 20.0 3. 6. 0.2692307 0. 1. + 13301. 1. 4. 32.0 16.5 2.0 1. 12.0 40.0 5. 2. 1.1878777 0. 1. + 13310. 1. 4. 37.0 16.5 3.0 1. 14.0 14.0 3. 2. 0.4848484 0. 1. + 13316. 1. 3. 27.0 2.5 0.0 1. 14.0 20.0 5. 4. 1.3999996 0. 1. + 13334. 1. 4. 22.0 2.5 0.0 1. 14.0 6.5 3. 3. 4.8999996 0. 1. + 13343. 1. 4. 37.0 16.5 2.0 2. 14.0 20.0 3. 5. 1.1878777 0. 1. + 13349. 1. 3. 27.0 6.0 2.0 2. 12.0 20.0 3. 4. 0.1666666 0. 1. + 13350. 1. 4. 22.0 6.0 1.0 2. 12.0 20.0 3. 4. 0.1666666 0. 1. + 13352. 1. 5. 32.0 13.0 2.0 2. 14.0 20.0 4. 5. 0.2692307 0. 1. + 13358. 1. 2. 37.0 23.0 3.0 3. 12.0 14.0 5. 2. 0.5326087 0. 1. + 13369. 1. 2. 37.0 16.5 2.0 3. 14.0 20.0 3. 5. 2.5454540 0. 1. + 13370. 1. 4. 32.0 16.5 2.0 2. 14.0 20.0 5. 4. 0.7272727 0. 1. + 13378. 1. 5. 37.0 16.5 5.5 4. 20.0 40.0 4. 6. 0.7424242 0. 1. + 13382. 1. 3. 32.0 16.5 3.0 2. 12.0 11.5 3. 2. 1.1878777 0. 1. + 13389. 1. 3. 27.0 9.0 4.0 3. 14.0 20.0 3. 5. 2.1777763 0. 1. + 13393. 1. 3. 37.0 13.0 0.0 1. 14.0 20.0 5. 4. 3.2307692 0. 1. + 13394. 1. 2. 27.0 2.5 2.0 2. 14.0 11.5 4. 5. 4.8999996 0. 1. + 13407. 1. 4. 27.0 9.0 2.0 1. 14.0 11.5 3. 4. 0.8888888 0. 1. + 13416. 1. 4. 42.0 23.0 2.0 3. 14.0 20.0 3. 4. 0.3478261 0. 1. + 13436. 1. 5. 42.0 23.0 2.0 1. 14.0 40.0 5. 5. 0.8521735 0. 1. + 13438. 1. 4. 42.0 23.0 4.0 2. 12.0 20.0 3. 3. 0.5217391 0. 1. + 13447. 1. 4. 37.0 16.5 4.0 3. 14.0 14.0 3. 5. 0.2121212 0. 1. + 13450. 1. 4. 32.0 16.5 3.0 2. 12.0 11.5 2. 2. 1.1878777 0. 1. + 13466. 1. 2. 37.0 23.0 2.0 2. 12.0 20.0 4. 4. 0.0434783 0. 1. + 13473. 1. 4. 42.0 23.0 1.0 3. 20.0 40.0 4. 4. 0.5217391 0. 1. + 13477. 1. 4. 22.0 2.5 1.0 2. 14.0 14.0 4. 4. 4.8999996 0. 1. + 13500. 1. 1. 32.0 13.0 2.0 2. 14.0 40.0 4. 4. 2.1538458 0. 1. + 13509. 1. 3. 42.0 23.0 3.0 2. 14.0 20.0 3. 5. 1.8260860 0. 1. + 13529. 1. 4. 22.0 2.5 0.0 2. 16.0 11.5 3. 2. 1.3999996 0. 1. + 13542. 1. 5. 37.0 23.0 3.0 3. 12.0 20.0 3. 5. 0.1521739 0. 1. + 13551. 1. 3. 22.0 2.5 0.0 2. 14.0 20.0 2. 2. 4.8999996 0. 1. + 13552. 1. 1. 42.0 23.0 3.0 3. 12.0 11.5 5. 5. 1.9478254 0. 1. + 13564. 1. 3. 22.0 2.5 0.0 2. 14.0 11.5 3. 4. 4.8999996 0. 1. + 13593. 1. 3. 37.0 23.0 2.0 3. 12.0 14.0 3. 5. 1.9478254 0. 1. + 13605. 1. 4. 22.0 2.5 0.0 2. 12.0 11.5 5. 4. 0.4000000 0. 1. + 13610. 1. 5. 32.0 9.0 2.0 3. 14.0 20.0 5. 4. 0.1111111 0. 1. + 13631. 1. 1. 37.0 16.5 4.0 2. 14.0 20.0 3. 6. 1.1878777 0. 1. + 13632. 1. 3. 42.0 23.0 1.0 3. 12.0 20.0 3. 4. 0.8521735 0. 1. + 13642. 1. 5. 27.0 9.0 2.0 1. 12.0 11.5 3. 2. 1.3611107 0. 1. + 13643. 1. 4. 22.0 2.5 1.0 2. 14.0 11.5 2. 4. 17.9199982 0. 1. + 13644. 1. 5. 42.0 23.0 3.0 2. 14.0 20.0 3. 5. 0.8521735 0. 1. + 13665. 1. 4. 27.0 6.0 1.0 3. 14.0 20.0 5. 5. 2.0000000 0. 1. + 13666. 1. 5. 22.0 2.5 0.0 1. 14.0 11.5 3. 1. 1.3999996 0. 1. + 13681. 1. 3. 37.0 16.5 2.0 3. 16.0 20.0 3. 4. 0.7272727 0. 1. + 13696. 1. 3. 32.0 16.5 2.0 3. 12.0 20.0 5. 5. 2.5454540 0. 1. + 13699. 1. 5. 37.0 16.5 3.0 3. 14.0 14.0 2. 5. 0.7272727 0. 1. + 13710. 1. 3. 27.0 6.0 2.0 1. 16.0 9.0 4. 3. 0.5833333 0. 1. + 13715. 1. 4. 27.0 9.0 1.0 2. 20.0 40.0 4. 4. 0.1111111 0. 1. + 13719. 1. 4. 27.0 6.0 0.0 2. 14.0 9.0 3. 4. 2.0416660 0. 1. + 13733. 1. 5. 32.0 13.0 2.0 2. 14.0 20.0 3. 4. 0.9423077 0. 1. + 13745. 1. 4. 42.0 23.0 2.0 2. 12.0 20.0 4. 4. 1.2173910 0. 1. + 13756. 1. 2. 37.0 16.5 2.0 2. 12.0 20.0 5. 4. 0.4848484 0. 1. + 13765. 1. 4. 27.0 2.5 0.0 2. 17.0 20.0 5. 5. 0.4000000 0. 1. + 13775. 1. 4. 37.0 16.5 2.0 2. 17.0 40.0 4. 5. 0.2121212 0. 1. + 13777. 1. 4. 32.0 13.0 2.0 2. 12.0 20.0 3. 3. 0.9230769 0. 1. + 13788. 1. 4. 32.0 9.0 2.0 1. 14.0 20.0 3. 4. 1.3611107 0. 1. + 13790. 1. 4. 32.0 9.0 2.0 2. 14.0 20.0 3. 5. 0.1111111 0. 1. + 13794. 1. 4. 32.0 13.0 2.0 3. 12.0 14.0 5. 5. 0.9423077 0. 1. + 13823. 1. 4. 32.0 13.0 3.0 2. 14.0 14.0 3. 2. 2.1538458 0. 1. + 13829. 1. 4. 22.0 2.5 1.0 1. 14.0 9.0 2. 2. 1.3999996 0. 1. + 13833. 1. 5. 27.0 16.5 2.0 3. 12.0 11.5 5. 4. 0.2121212 0. 1. + 13837. 1. 4. 32.0 2.5 0.0 3. 14.0 40.0 2. 6. 4.8999996 0. 1. + 13843. 1. 3. 32.0 16.5 1.0 2. 14.0 14.0 2. 4. 0.2121212 0. 1. + 13844. 1. 3. 37.0 16.5 3.0 2. 16.0 14.0 4. 3. 1.1878777 0. 1. + 13859. 1. 5. 42.0 23.0 4.0 2. 12.0 40.0 5. 5. 0.8521735 0. 1. + 13880. 1. 5. 27.0 6.0 2.0 3. 14.0 14.0 3. 4. 3.2666645 0. 1. + 13890. 1. 4. 22.0 2.5 1.0 3. 12.0 20.0 3. 2. 1.3999996 0. 1. + 13895. 1. 4. 42.0 23.0 3.0 1. 20.0 20.0 6. 6. 1.2173910 0. 1. + 13898. 1. 4. 32.0 9.0 2.0 1. 17.0 20.0 4. 5. 2.1777763 0. 1. + 13899. 1. 5. 32.0 2.5 0.0 2. 20.0 40.0 6. 6. 1.3999996 0. 1. + 13902. 1. 3. 27.0 6.0 1.0 2. 14.0 20.0 3. 6. 0.5833333 0. 1. + 13907. 1. 1. 22.0 2.5 0.0 1. 14.0 6.5 4. 4. 4.8999996 0. 1. + 13913. 1. 3. 32.0 16.5 2.0 2. 14.0 11.5 3. 2. 0.7424242 0. 1. + 13917. 1. 4. 42.0 23.0 2.0 2. 12.0 20.0 3. 3. 0.1521739 0. 1. + 13920. 1. 4. 22.0 6.0 1.0 3. 14.0 14.0 3. 5. 0.5833333 0. 1. + 13941. 1. 5. 42.0 23.0 3.0 2. 14.0 20.0 3. 5. 0.5326087 0. 1. + 13947. 1. 3. 27.0 13.0 2.0 2. 12.0 11.5 4. 3. 3.4461536 0. 1. + 13953. 1. 4. 32.0 13.0 2.0 2. 14.0 14.0 5. 4. 0.2692307 0. 1. + 13955. 1. 3. 27.0 2.5 0.0 3. 14.0 20.0 3. 4. 3.1999998 0. 1. + 13956. 1. 2. 22.0 2.5 0.0 3. 12.0 9.0 3. 2. 0.4000000 0. 1. + 13964. 1. 5. 42.0 23.0 2.0 2. 20.0 20.0 4. 4. 1.8260860 0. 1. + 13979. 1. 3. 27.0 6.0 1.0 2. 14.0 20.0 2. 2. 0.5833333 0. 1. + 14001. 1. 5. 42.0 23.0 2.0 2. 20.0 14.0 3. 6. 0.5326087 0. 1. + 14003. 1. 3. 37.0 23.0 4.0 1. 12.0 20.0 3. 2. 0.3478261 0. 1. + 14020. 1. 5. 42.0 23.0 4.0 4. 20.0 40.0 6. 6. 6.2608690 0. 1. + 14036. 1. 5. 27.0 6.0 0.0 1. 17.0 20.0 4. 5. 1.3333330 0. 1. + 14046. 1. 3. 32.0 13.0 2.0 1. 17.0 40.0 4. 6. 0.2692307 0. 1. + 14047. 1. 2. 27.0 2.5 0.0 1. 14.0 20.0 5. 5. 1.3999996 0. 1. + 14048. 1. 4. 27.0 9.0 3.0 2. 12.0 20.0 3. 6. 1.3333330 0. 1. + 14067. 1. 5. 27.0 6.0 1.0 1. 14.0 20.0 3. 5. 2.0000000 0. 1. + 14078. 1. 4. 22.0 0.5 0.0 2. 14.0 11.5 4. 5. 24.5000000 0. 1. + 14084. 1. 4. 17.5 2.5 1.0 2. 12.0 11.5 3. 2. 1.3999996 0. 1. + 14089. 1. 3. 27.0 2.5 1.0 2. 14.0 20.0 3. 4. 1.3999996 0. 1. + 14099. 1. 5. 32.0 16.5 3.0 2. 14.0 14.0 2. 4. 0.0606061 0. 1. + 14113. 1. 4. 42.0 23.0 5.5 1. 14.0 40.0 3. 5. 0.5326087 0. 1. + 14121. 1. 5. 22.0 2.5 0.0 1. 14.0 20.0 3. 4. 4.8999996 0. 1. + 14175. 1. 5. 42.0 23.0 2.0 2. 20.0 40.0 1. 5. 0.1521739 0. 1. + 14180. 1. 5. 42.0 23.0 3.0 3. 14.0 20.0 3. 5. 0.0434783 0. 1. + 14181. 1. 2. 42.0 23.0 3.0 3. 16.0 20.0 4. 4. 0.1521739 0. 1. + 14191. 1. 4. 32.0 16.5 4.0 2. 12.0 11.5 3. 5. 0.4848484 0. 1. + 14194. 1. 4. 37.0 23.0 4.0 2. 12.0 20.0 3. 4. 0.8521735 0. 1. + 14199. 1. 4. 42.0 23.0 2.0 1. 14.0 20.0 5. 3. 0.5326087 0. 1. + 14206. 1. 5. 22.0 2.5 0.0 4. 14.0 11.5 3. 4. 1.3999996 0. 1. + 14231. 1. 4. 22.0 2.5 0.0 1. 16.0 11.5 3. 5. 1.3999996 0. 1. + 14235. 1. 4. 42.0 23.0 3.0 3. 14.0 40.0 5. 5. 1.9478254 0. 1. + 14237. 1. 4. 42.0 23.0 3.0 2. 14.0 20.0 3. 5. 1.9478254 0. 1. + 14247. 1. 2. 22.0 2.5 0.0 2. 14.0 11.5 3. 5. 0.4000000 0. 1. + 14252. 1. 3. 42.0 23.0 3.0 1. 20.0 40.0 4. 4. 0.0434783 0. 1. + 14265. 1. 3. 37.0 16.5 3.0 4. 12.0 20.0 3. 2. 2.5454540 0. 1. + 14271. 1. 4. 27.0 16.5 2.0 1. 12.0 11.5 3. 2. 0.2121212 0. 1. + 14275. 1. 3. 27.0 6.0 1.0 1. 16.0 14.0 4. 1. 3.2666645 0. 1. + 14277. 1. 5. 32.0 13.0 2.0 2. 14.0 14.0 4. 4. 0.9230769 0. 1. + 14299. 1. 4. 32.0 13.0 3.0 2. 12.0 6.5 2. 4. 0.6153846 0. 1. + 14305. 1. 5. 42.0 13.0 0.0 1. 16.0 40.0 3. 6. 1.5076914 0. 1. + 14307. 1. 4. 32.0 9.0 2.0 3. 14.0 20.0 3. 4. 2.1777763 0. 1. + 14319. 1. 3. 42.0 16.5 1.0 3. 17.0 20.0 3. 3. 0.7424242 0. 1. + 14337. 1. 4. 42.0 23.0 3.0 1. 14.0 20.0 3. 5. 0.8521735 0. 1. + 14338. 1. 1. 32.0 13.0 3.0 3. 14.0 20.0 3. 4. 1.5076914 0. 1. + 14339. 1. 4. 27.0 6.0 2.0 2. 14.0 20.0 3. 5. 1.3333330 0. 1. + 14348. 1. 4. 27.0 6.0 2.0 2. 14.0 11.5 5. 4. 3.2666645 0. 1. + 14349. 1. 5. 27.0 2.5 0.0 3. 16.0 20.0 3. 5. 1.3999996 0. 1. + 14356. 1. 4. 22.0 2.5 0.0 1. 16.0 40.0 4. 2. 1.3999996 0. 1. + 14361. 1. 4. 27.0 6.0 3.0 3. 14.0 6.5 4. 2. 2.0416660 0. 1. + 14367. 1. 4. 42.0 23.0 2.0 1. 16.0 40.0 4. 5. 0.1521739 0. 1. + 14378. 1. 3. 27.0 6.0 1.0 4. 14.0 20.0 5. 4. 0.5833333 0. 1. + 14382. 1. 3. 32.0 13.0 0.0 2. 16.0 40.0 3. 6. 0.9230769 0. 1. + 14388. 1. 1. 27.0 6.0 2.0 3. 14.0 14.0 3. 2. 3.2666645 0. 1. + 14392. 1. 3. 32.0 13.0 2.0 2. 14.0 20.0 3. 2. 2.1538458 0. 1. + 14395. 1. 3. 37.0 16.5 4.0 2. 14.0 40.0 4. 4. 0.7424242 0. 1. + 14398. 1. 4. 37.0 16.5 3.0 4. 14.0 6.5 4. 4. 0.2121212 0. 1. + 14400. 1. 4. 32.0 16.5 4.0 3. 14.0 11.5 3. 5. 0.2121212 0. 1. + 14402. 1. 5. 27.0 2.5 0.0 1. 14.0 20.0 3. 5. 4.7999992 0. 1. + 14422. 1. 3. 22.0 2.5 0.0 2. 14.0 6.5 3. 1. 0.4000000 0. 1. + 14432. 1. 5. 32.0 23.0 2.0 3. 14.0 40.0 5. 6. 0.5217391 0. 1. + 14437. 1. 3. 27.0 9.0 1.0 3. 14.0 11.5 3. 2. 1.3333330 0. 1. + 14445. 1. 5. 37.0 23.0 3.0 2. 14.0 20.0 5. 4. 0.3478261 0. 1. + 14458. 1. 3. 27.0 6.0 1.0 3. 20.0 20.0 4. 4. 3.2666645 0. 1. + 14472. 1. 1. 27.0 9.0 1.0 3. 14.0 9.0 2. 4. 0.3888888 0. 1. + 14473. 1. 4. 32.0 13.0 4.0 2. 16.0 14.0 4. 2. 0.2692307 0. 1. + 14478. 1. 3. 32.0 16.5 3.0 3. 14.0 14.0 5. 4. 4.0727262 0. 1. + 14501. 1. 4. 42.0 23.0 3.0 3. 14.0 14.0 4. 5. 0.1521739 0. 1. + 14502. 1. 4. 32.0 16.5 4.0 2. 14.0 20.0 2. 5. 1.6969690 0. 1. + 14505. 1. 3. 27.0 9.0 4.0 4. 14.0 14.0 4. 4. 0.3888888 0. 1. + 14510. 1. 4. 27.0 6.0 1.0 2. 12.0 11.5 2. 4. 0.1666666 0. 1. + 14514. 1. 2. 22.0 6.0 1.0 3. 14.0 11.5 3. 5. 2.0000000 0. 1. + 14534. 1. 4. 22.0 2.5 1.0 2. 14.0 9.0 3. 5. 1.3999996 0. 1. + 14535. 1. 3. 22.0 2.5 1.0 3. 14.0 11.5 3. 4. 3.1999998 0. 1. + 14543. 1. 5. 22.0 2.5 0.0 1. 14.0 9.0 3. 2. 1.3999996 0. 1. + 14547. 1. 5. 37.0 23.0 3.0 1. 12.0 40.0 5. 2. 1.8260860 0. 1. + 14553. 1. 3. 27.0 9.0 1.0 1. 14.0 20.0 3. 6. 4.6666660 0. 1. + 14554. 1. 4. 27.0 2.5 0.0 1. 14.0 20.0 5. 5. 7.8399963 0. 1. + 14557. 1. 5. 27.0 2.5 0.0 1. 16.0 20.0 4. 2. 1.3999996 0. 1. + 14559. 1. 3. 22.0 6.0 2.0 3. 12.0 11.5 3. 2. 0.5833333 0. 1. + 14561. 1. 4. 37.0 23.0 2.0 2. 12.0 20.0 3. 2. 0.1521739 0. 1. + 14564. 1. 3. 22.0 2.5 0.0 2. 14.0 9.0 3. 4. 4.7999992 0. 1. + 14568. 1. 5. 27.0 2.5 0.0 2. 17.0 14.0 4. 5. 1.3999996 0. 1. + 14590. 1. 4. 22.0 2.5 0.0 1. 14.0 9.0 5. 2. 4.8999996 0. 1. + 14606. 1. 4. 27.0 6.0 1.0 2. 14.0 20.0 3. 3. 7.0000000 0. 1. + 14610. 1. 4. 27.0 6.0 2.0 2. 14.0 20.0 4. 4. 0.5833333 0. 1. + 14618. 1. 4. 32.0 13.0 0.0 2. 12.0 20.0 3. 3. 3.2307692 0. 1. + 14622. 1. 4. 27.0 9.0 2.0 2. 12.0 20.0 2. 4. 1.3611107 0. 1. + 14625. 1. 3. 22.0 2.5 0.0 1. 14.0 11.5 3. 2. 7.8399963 0. 1. + 14638. 1. 5. 27.0 2.5 0.0 1. 14.0 20.0 2. 4. 7.8399963 0. 1. + 14650. 1. 3. 37.0 23.0 4.0 2. 14.0 20.0 3. 4. 1.9478254 0. 1. + 14657. 1. 5. 27.0 9.0 3.0 2. 16.0 9.0 4. 4. 1.3333330 0. 1. + 14658. 1. 4. 22.0 2.5 0.0 2. 12.0 6.5 2. 2. 1.3999996 0. 1. + 14662. 1. 2. 32.0 16.5 3.0 1. 14.0 14.0 4. 4. 1.1878777 0. 1. + 14722. 1. 3. 27.0 9.0 2.0 2. 12.0 20.0 3. 2. 1.3611107 0. 1. + 14739. 1. 4. 32.0 16.5 3.0 1. 16.0 40.0 4. 5. 0.7272727 0. 1. + 14755. 1. 3. 27.0 9.0 1.0 2. 12.0 14.0 5. 4. 0.1111111 0. 1. + 14756. 1. 5. 22.0 2.5 0.0 1. 14.0 4.0 2. 2. 7.8399963 0. 1. + 14783. 1. 4. 42.0 23.0 2.0 3. 14.0 20.0 5. 5. 0.5326087 0. 1. + 14790. 1. 5. 27.0 6.0 1.0 4. 16.0 11.5 4. 1. 0.1666666 0. 1. + 14793. 1. 4. 22.0 2.5 0.0 1. 12.0 11.5 2. 2. 4.8999996 0. 1. + 14804. 1. 3. 22.0 0.5 0.0 1. 14.0 11.5 5. 5. 7.0000000 0. 1. + 14805. 1. 5. 42.0 23.0 5.5 3. 14.0 40.0 5. 4. 1.9478254 0. 1. + 14837. 1. 4. 37.0 16.5 2.0 2. 12.0 20.0 3. 4. 0.2121212 0. 1. + 14888. 1. 4. 22.0 2.5 0.0 2. 12.0 14.0 3. 3. 3.1999998 0. 1. + 14895. 1. 3. 22.0 6.0 1.0 2. 12.0 20.0 3. 2. 2.0416660 0. 1. + 14906. 1. 4. 42.0 23.0 4.0 3. 17.0 40.0 6. 3. 2.7826080 0. 1. + 14912. 1. 4. 22.0 6.0 0.0 4. 14.0 20.0 5. 4. 2.0416660 0. 1. + 14915. 1. 2. 27.0 9.0 3.0 3. 14.0 14.0 4. 4. 0.1111111 0. 1. + 14917. 1. 3. 27.0 6.0 1.0 1. 14.0 14.0 5. 4. 7.0000000 0. 1. + 14929. 1. 5. 42.0 23.0 5.5 3. 16.0 40.0 4. 6. 0.0434783 0. 1. + 14951. 1. 4. 37.0 13.0 3.0 1. 12.0 20.0 4. 4. 0.6153846 0. 1. + 14954. 1. 4. 37.0 16.5 2.0 3. 12.0 14.0 5. 5. 0.7272727 0. 1. + 14992. 1. 4. 37.0 13.0 3.0 3. 16.0 11.5 3. 4. 0.2692307 0. 1. + 15040. 1. 5. 22.0 6.0 2.0 2. 12.0 11.5 2. 4. 4.6666660 0. 1. + 15042. 1. 4. 27.0 2.5 0.0 2. 17.0 20.0 4. 6. 16.7999878 0. 1. + 15043. 1. 2. 22.0 6.0 2.0 3. 14.0 14.0 3. 5. 3.2666645 0. 1. + 15050. 1. 3. 22.0 6.0 1.0 2. 12.0 11.5 4. 4. 1.3333330 0. 1. + 15057. 1. 5. 32.0 9.0 2.0 2. 14.0 11.5 4. 4. 0.1111111 0. 1. + 15059. 1. 3. 27.0 9.0 3.0 2. 12.0 20.0 3. 2. 0.3888888 0. 1. + 15061. 1. 3. 32.0 13.0 2.0 3. 14.0 14.0 3. 5. 0.2692307 0. 1. + 15062. 1. 2. 27.0 9.0 1.0 2. 16.0 20.0 4. 5. 4.9777775 0. 1. + 15068. 1. 4. 27.0 6.0 1.0 1. 17.0 20.0 3. 5. 0.5833333 0. 1. + 15087. 1. 4. 32.0 2.5 0.0 2. 20.0 20.0 6. 6. 16.7999878 0. 1. + 15088. 1. 5. 32.0 13.0 2.0 1. 12.0 20.0 3. 5. 0.9423077 0. 1. + 15091. 1. 4. 32.0 16.5 1.0 1. 14.0 20.0 5. 5. 1.6969690 0. 1. + 15095. 1. 5. 27.0 2.5 0.0 3. 12.0 9.0 4. 5. 0.4000000 0. 1. + 15102. 1. 3. 42.0 23.0 4.0 3. 16.0 40.0 4. 2. 0.3478261 0. 1. + 15106. 1. 4. 22.0 6.0 1.0 3. 14.0 11.5 3. 4. 2.0416660 0. 1. + 15108. 1. 4. 27.0 6.0 0.0 3. 14.0 20.0 3. 4. 0.1666666 0. 1. + 15122. 1. 4. 17.5 2.5 0.0 2. 12.0 6.5 3. 4. 7.8399963 0. 1. + 15125. 1. 4. 22.0 2.5 0.0 1. 12.0 20.0 3. 4. 0.4000000 0. 1. + 15131. 1. 1. 37.0 13.0 3.0 1. 17.0 40.0 5. 6. 0.0769231 0. 1. + 15134. 1. 2. 32.0 16.5 2.0 1. 12.0 20.0 5. 2. 2.7151508 0. 1. + 15137. 1. 3. 37.0 23.0 3.0 3. 12.0 40.0 3. 5. 0.1521739 0. 1. + 15138. 1. 5. 27.0 9.0 1.0 3. 12.0 40.0 3. 5. 1.3611107 0. 1. + 15139. 1. 4. 27.0 6.0 1.0 1. 12.0 20.0 3. 3. 3.2666645 0. 1. + 15144. 1. 3. 37.0 23.0 4.0 2. 12.0 40.0 3. 2. 1.8260860 0. 1. + 15149. 1. 4. 37.0 23.0 5.5 3. 12.0 14.0 5. 5. 0.1521739 0. 1. + 15158. 1. 1. 22.0 2.5 1.0 1. 12.0 20.0 3. 4. 1.3999996 0. 1. + 15177. 1. 3. 22.0 2.5 0.0 1. 12.0 20.0 3. 5. 4.7999992 0. 1. + 15184. 1. 4. 27.0 2.5 0.0 1. 16.0 11.5 4. 2. 7.8399963 0. 1. + 15192. 1. 4. 32.0 13.0 1.0 3. 16.0 14.0 3. 5. 0.6153846 0. 1. + 15193. 1. 4. 27.0 2.5 0.0 2. 12.0 20.0 3. 4. 7.8399963 0. 1. + 15199. 1. 2. 32.0 9.0 0.0 2. 16.0 14.0 3. 2. 1.3611107 0. 1. + 15243. 1. 5. 42.0 23.0 4.0 1. 20.0 40.0 4. 5. 0.5217391 0. 1. + 15258. 1. 4. 22.0 6.0 1.0 1. 12.0 14.0 3. 5. 2.0000000 0. 1. + 15259. 1. 3. 42.0 23.0 4.0 2. 14.0 20.0 3. 5. 0.3478261 0. 1. + 15285. 1. 5. 27.0 6.0 0.0 3. 12.0 11.5 3. 4. 2.0416660 0. 1. + 15293. 1. 4. 42.0 16.5 2.0 2. 12.0 20.0 3. 4. 0.2121212 0. 1. + 15301. 1. 5. 22.0 2.5 0.0 2. 16.0 6.5 4. 1. 3.1999998 0. 1. + 15305. 1. 4. 42.0 23.0 5.5 4. 20.0 14.0 4. 2. 0.1521739 0. 1. + 15308. 1. 5. 27.0 9.0 2.0 3. 14.0 20.0 4. 5. 0.3888888 0. 1. + 15315. 1. 4. 27.0 2.5 1.0 3. 16.0 20.0 6. 5. 4.7999992 0. 1. + 15327. 1. 3. 27.0 9.0 0.0 3. 16.0 20.0 5. 5. 1.3333330 0. 1. + 15330. 1. 5. 37.0 23.0 3.0 2. 14.0 40.0 3. 5. 0.1521739 0. 1. + 15331. 1. 4. 37.0 16.5 2.0 3. 17.0 40.0 4. 2. 1.6969690 0. 1. + 15335. 1. 3. 27.0 6.0 1.0 1. 17.0 20.0 4. 5. 2.0416660 0. 1. + 15337. 1. 5. 32.0 16.5 3.0 4. 14.0 14.0 3. 6. 0.7272727 0. 1. + 15338. 1. 5. 37.0 16.5 2.0 3. 12.0 14.0 3. 4. 0.7424242 0. 1. + 15339. 1. 3. 27.0 6.0 1.0 4. 17.0 20.0 4. 5. 7.0000000 0. 1. + 15341. 1. 3. 37.0 16.5 3.0 2. 14.0 20.0 3. 4. 2.5454540 0. 1. + 15342. 1. 5. 27.0 9.0 1.0 1. 14.0 6.5 3. 4. 0.3888888 0. 1. + 15345. 1. 3. 32.0 9.0 3.0 2. 14.0 20.0 5. 5. 1.3611107 0. 1. + 15351. 1. 2. 42.0 23.0 3.0 2. 12.0 40.0 3. 5. 0.8521735 0. 1. + 15363. 1. 4. 32.0 13.0 2.0 1. 14.0 14.0 3. 5. 1.5076914 0. 1. + 15367. 1. 4. 22.0 2.5 1.0 2. 14.0 9.0 3. 2. 4.7999992 0. 1. + 15374. 1. 5. 27.0 9.0 2.0 2. 12.0 14.0 3. 6. 0.3888888 0. 1. + 15375. 1. 5. 32.0 16.5 2.0 1. 12.0 20.0 3. 6. 0.0606061 0. 1. + 15385. 1. 4. 32.0 16.5 2.0 2. 12.0 20.0 2. 4. 1.6969690 0. 1. + 15392. 1. 4. 42.0 23.0 3.0 2. 12.0 20.0 3. 5. 1.9478254 0. 1. + 15395. 1. 4. 32.0 9.0 2.0 3. 9.0 20.0 3. 5. 1.3333330 0. 1. + 15396. 1. 2. 27.0 6.0 2.0 3. 12.0 14.0 3. 4. 2.0416660 0. 1. + 15398. 1. 5. 42.0 23.0 2.0 3. 16.0 40.0 4. 5. 0.2434782 0. 1. + 15399. 1. 4. 37.0 23.0 3.0 4. 12.0 20.0 5. 4. 0.5326087 0. 1. + 15412. 1. 4. 32.0 16.5 3.0 2. 12.0 20.0 5. 5. 3.8787870 0. 1. + 15422. 1. 3. 27.0 9.0 1.0 2. 12.0 20.0 3. 4. 7.1111107 0. 1. + 15425. 1. 2. 37.0 13.0 2.0 3. 14.0 14.0 3. 4. 0.9230769 0. 1. + 15449. 1. 4. 32.0 16.5 3.0 3. 14.0 20.0 4. 3. 0.2121212 0. 1. + 15467. 1. 3. 32.0 16.5 4.0 3. 12.0 11.5 2. 2. 1.1878777 0. 1. + 15485. 1. 3. 42.0 23.0 4.0 2. 12.0 20.0 4. 4. 1.8260860 0. 1. + 15489. 1. 3. 42.0 23.0 3.0 3. 17.0 40.0 4. 6. 0.0434783 0. 1. + 15497. 1. 5. 27.0 9.0 3.0 1. 14.0 11.5 3. 6. 1.3333330 0. 1. + 15502. 1. 4. 27.0 6.0 1.0 3. 14.0 9.0 4. 5. 0.5833333 0. 1. + 15503. 1. 3. 22.0 2.5 0.0 2. 12.0 20.0 3. 5. 1.3999996 0. 1. + 15509. 1. 3. 22.0 2.5 0.0 2. 14.0 6.5 5. 4. 0.4000000 0. 1. + 15511. 1. 4. 32.0 16.5 3.0 3. 9.0 40.0 5. 5. 0.2121212 0. 1. + 15519. 1. 4. 27.0 2.5 0.0 3. 16.0 20.0 4. 6. 4.8999996 0. 1. + 15525. 1. 3. 27.0 6.0 1.0 2. 12.0 11.5 3. 5. 0.5833333 0. 1. + 15528. 1. 3. 32.0 16.5 2.0 3. 16.0 20.0 4. 4. 0.7424242 0. 1. + 15531. 1. 5. 42.0 23.0 3.0 3. 12.0 6.5 4. 2. 1.2173910 0. 1. + 15536. 1. 3. 27.0 6.0 1.0 3. 16.0 20.0 2. 2. 2.0000000 0. 1. + 15540. 1. 4. 27.0 9.0 2.0 3. 14.0 11.5 5. 5. 1.3333330 0. 1. + 15545. 1. 4. 27.0 9.0 1.0 4. 12.0 11.5 3. 2. 3.1111107 0. 1. + 15549. 1. 3. 37.0 13.0 2.0 3. 16.0 11.5 2. 4. 1.5076914 0. 1. + 15551. 1. 4. 22.0 6.0 1.0 2. 14.0 20.0 3. 5. 0.5833333 0. 1. + 15557. 1. 5. 37.0 13.0 2.0 3. 14.0 14.0 5. 5. 0.6153846 0. 1. + 15573. 1. 3. 22.0 2.5 0.0 1. 14.0 9.0 3. 1. 4.8999996 0. 1. + 15583. 1. 4. 37.0 16.5 3.0 3. 12.0 20.0 5. 5. 0.2121212 0. 1. + 15584. 1. 1. 32.0 13.0 2.0 2. 17.0 20.0 4. 6. 3.2307692 0. 1. + 15587. 1. 3. 22.0 2.5 0.0 3. 14.0 11.5 5. 4. 3.1999998 0. 1. + 15592. 1. 3. 22.0 6.0 1.0 3. 12.0 6.5 4. 2. 2.0000000 0. 1. + 15593. 1. 4. 22.0 2.5 1.0 3. 14.0 6.5 2. 2. 16.7999878 0. 1. + 15596. 1. 2. 42.0 23.0 2.0 1. 14.0 40.0 3. 5. 0.1521739 0. 1. + 15611. 1. 1. 42.0 23.0 3.0 1. 17.0 40.0 4. 5. 1.8260860 0. 1. + 15613. 1. 3. 37.0 16.5 3.0 3. 16.0 20.0 6. 4. 1.6969690 0. 1. + 15621. 1. 4. 27.0 6.0 0.0 2. 12.0 11.5 3. 4. 7.0000000 0. 1. + 15635. 1. 3. 37.0 16.5 4.0 1. 12.0 40.0 3. 6. 0.7272727 0. 1. + 15643. 1. 4. 27.0 6.0 2.0 2. 12.0 14.0 3. 2. 0.1666666 0. 1. + 15644. 1. 3. 32.0 9.0 0.0 1. 16.0 40.0 4. 5. 7.4666662 0. 1. + 15662. 1. 5. 22.0 2.5 0.0 3. 14.0 11.5 4. 4. 0.4000000 0. 1. + 15663. 1. 2. 37.0 16.5 2.0 4. 12.0 11.5 3. 3. 0.2121212 0. 1. + 15665. 1. 3. 22.0 2.5 0.0 3. 12.0 11.5 3. 2. 1.3999996 0. 1. + 15672. 1. 4. 27.0 6.0 2.0 1. 14.0 20.0 2. 2. 2.0416660 0. 1. + 15673. 1. 3. 32.0 16.5 3.0 2. 12.0 14.0 4. 2. 0.7424242 0. 1. + 15678. 1. 2. 27.0 2.5 0.0 2. 16.0 20.0 4. 5. 17.9199982 0. 1. + 15686. 1. 3. 42.0 23.0 5.5 2. 20.0 11.5 4. 3. 0.1521739 0. 1. + 15694. 1. 1. 37.0 16.5 2.0 3. 14.0 11.5 3. 5. 0.7272727 0. 1. + 15695. 1. 4. 22.0 6.0 2.0 2. 12.0 14.0 3. 5. 3.2666645 0. 1. + 15696. 1. 4. 42.0 23.0 2.0 3. 20.0 20.0 4. 4. 0.8521735 0. 1. + 15734. 1. 3. 22.0 2.5 0.0 2. 14.0 11.5 3. 3. 3.1999998 0. 1. + 15735. 1. 4. 27.0 9.0 0.0 3. 17.0 20.0 5. 6. 1.3333330 0. 1. + 15742. 1. 5. 27.0 2.5 0.0 2. 16.0 40.0 3. 2. 11.1999998 0. 1. + 15761. 1. 5. 27.0 9.0 2.0 3. 14.0 14.0 3. 3. 0.3888888 0. 1. + 15768. 1. 2. 27.0 6.0 1.0 1. 16.0 20.0 4. 5. 2.0000000 0. 1. + 15801. 1. 3. 42.0 23.0 2.0 2. 14.0 14.0 3. 5. 0.5217391 0. 1. + 15805. 1. 4. 27.0 9.0 2.0 3. 12.0 14.0 3. 5. 1.3611107 0. 1. + 15811. 1. 3. 37.0 23.0 5.5 2. 12.0 11.5 2. 5. 0.3478261 0. 1. + 15816. 1. 4. 27.0 6.0 1.0 2. 14.0 14.0 3. 4. 3.2666645 0. 1. + 15827. 1. 3. 27.0 2.5 0.0 3. 12.0 9.0 3. 5. 4.7999992 0. 1. + 15838. 1. 1. 27.0 2.5 0.0 2. 14.0 20.0 3. 2. 4.8999996 0. 1. + 15846. 1. 3. 27.0 6.0 1.0 3. 16.0 40.0 5. 4. 2.0000000 0. 1. + 15862. 1. 4. 27.0 6.0 2.0 3. 16.0 20.0 4. 2. 3.2666645 0. 1. + 15864. 1. 4. 27.0 13.0 3.0 4. 14.0 11.5 2. 4. 1.5076914 0. 1. + 15883. 1. 3. 27.0 9.0 2.0 3. 16.0 20.0 4. 5. 4.6666660 0. 1. + 15892. 1. 5. 27.0 13.0 3.0 2. 14.0 20.0 5. 4. 0.9423077 0. 1. + 15904. 1. 5. 22.0 6.0 1.0 3. 12.0 6.5 4. 2. 7.0000000 0. 1. + 15906. 1. 1. 32.0 16.5 2.0 3. 16.0 20.0 4. 4. 0.7272727 0. 1. + 15914. 1. 1. 42.0 23.0 3.0 3. 20.0 20.0 4. 4. 0.8521735 0. 1. + 15918. 1. 3. 27.0 2.5 0.0 1. 16.0 40.0 5. 5. 3.1999998 0. 1. + 15939. 1. 5. 42.0 23.0 5.5 3. 14.0 40.0 4. 5. 0.0434783 0. 1. + 15940. 1. 3. 22.0 6.0 1.0 1. 16.0 6.5 3. 4. 3.2666645 0. 1. + 15947. 1. 1. 22.0 2.5 0.0 1. 12.0 11.5 3. 2. 1.3999996 0. 1. + 15949. 1. 2. 22.0 2.5 1.0 2. 14.0 9.0 3. 4. 11.1999998 0. 1. + 15953. 1. 5. 27.0 2.5 0.0 1. 17.0 6.5 4. 4. 1.3999996 0. 1. + 15963. 1. 2. 27.0 6.0 1.0 3. 12.0 20.0 3. 6. 3.2666645 0. 1. + 15968. 1. 3. 37.0 9.0 2.0 1. 17.0 20.0 4. 3. 0.3888888 0. 1. + 15982. 1. 3. 42.0 23.0 2.0 3. 12.0 11.5 3. 3. 1.8260860 0. 1. + 15998. 1. 4. 37.0 16.5 4.0 3. 17.0 20.0 4. 2. 1.1878777 0. 1. + 16011. 1. 4. 32.0 13.0 2.0 2. 14.0 20.0 5. 5. 0.2692307 0. 1. + 16015. 1. 5. 27.0 9.0 2.0 3. 14.0 14.0 4. 4. 1.3333330 0. 1. + 16025. 1. 5. 42.0 16.5 4.0 3. 16.0 20.0 5. 4. 0.0606061 0. 1. + 16074. 1. 1. 37.0 13.0 1.0 4. 16.0 20.0 3. 5. 1.5076914 0. 1. + 16089. 1. 5. 32.0 9.0 3.0 2. 16.0 20.0 4. 5. 0.3888888 0. 1. + 16093. 1. 3. 22.0 2.5 0.0 2. 12.0 20.0 3. 3. 25.5999908 0. 1. + 16105. 1. 3. 27.0 2.5 0.0 4. 14.0 11.5 5. 6. 0.4000000 0. 1. + 16110. 1. 3. 22.0 2.5 0.0 2. 12.0 20.0 3. 5. 1.3999996 0. 1. + 16113. 1. 2. 32.0 16.5 2.0 1. 16.0 40.0 6. 6. 0.7272727 0. 1. + 16126. 1. 4. 32.0 9.0 1.0 3. 14.0 20.0 3. 5. 0.8888888 0. 1. + 16138. 1. 2. 42.0 16.5 2.0 3. 12.0 14.0 3. 3. 1.1878777 0. 1. + 16153. 1. 4. 37.0 16.5 3.0 2. 12.0 11.5 5. 2. 4.0727262 0. 1. + 16174. 1. 2. 37.0 16.5 3.0 2. 12.0 14.0 3. 5. 0.2121212 0. 1. + 16177. 1. 4. 22.0 2.5 1.0 3. 12.0 11.5 3. 4. 1.3999996 0. 1. + 16193. 1. 3. 32.0 16.5 3.0 1. 12.0 20.0 5. 4. 0.7272727 0. 1. + 16208. 1. 3. 32.0 9.0 1.0 1. 14.0 20.0 2. 4. 2.1777763 0. 1. + 16215. 1. 1. 42.0 23.0 3.0 2. 14.0 20.0 3. 5. 0.8521735 0. 1. + 16217. 1. 5. 22.0 2.5 0.0 1. 14.0 20.0 3. 2. 7.8399963 0. 1. + 16231. 1. 3. 42.0 23.0 4.0 1. 14.0 20.0 3. 5. 0.1521739 0. 1. + 16242. 1. 4. 27.0 9.0 2.0 2. 12.0 14.0 1. 5. 3.1111107 0. 1. + 16246. 1. 4. 27.0 9.0 1.0 3. 14.0 20.0 3. 5. 3.1111107 0. 1. + 16256. 1. 4. 22.0 2.5 0.0 1. 16.0 20.0 4. 4. 1.3999996 0. 1. + 16265. 1. 4. 37.0 16.5 5.5 3. 12.0 20.0 2. 4. 0.2121212 0. 1. + 16271. 1. 3. 22.0 6.0 2.0 1. 12.0 11.5 3. 4. 1.3333330 0. 1. + 16277. 1. 1. 42.0 16.5 5.5 2. 12.0 20.0 2. 5. 0.2121212 0. 1. + 16278. 1. 3. 32.0 9.0 2.0 4. 17.0 11.5 4. 2. 2.1777763 0. 1. + 16280. 1. 4. 32.0 13.0 2.0 2. 12.0 20.0 3. 5. 0.9423077 0. 1. + 16287. 1. 3. 37.0 16.5 2.0 2. 16.0 20.0 4. 5. 1.1878777 0. 1. + 16289. 1. 3. 37.0 16.5 3.0 3. 17.0 40.0 4. 6. 0.7272727 0. 1. + 16299. 1. 4. 32.0 13.0 2.0 2. 14.0 20.0 5. 4. 1.5076914 0. 1. + 16300. 1. 3. 42.0 23.0 3.0 1. 14.0 40.0 4. 4. 1.2173910 0. 1. + 16303. 1. 1. 32.0 16.5 2.0 3. 14.0 11.5 4. 2. 2.5454540 0. 1. + 16307. 1. 1. 42.0 23.0 2.0 3. 12.0 20.0 3. 4. 0.8521735 0. 1. + 16309. 1. 5. 37.0 6.0 2.0 3. 17.0 40.0 4. 4. 0.5833333 0. 1. + 16320. 1. 5. 22.0 2.5 0.0 3. 16.0 20.0 3. 5. 16.7999878 0. 1. + 16331. 1. 3. 32.0 16.5 2.0 1. 12.0 11.5 3. 4. 0.7272727 0. 1. + 16343. 1. 1. 27.0 6.0 2.0 2. 12.0 9.0 2. 2. 0.5833333 0. 1. + 16346. 1. 3. 42.0 23.0 4.0 2. 12.0 14.0 3. 5. 0.8521735 0. 1. + 16349. 1. 5. 27.0 6.0 2.0 1. 14.0 11.5 4. 4. 2.0416660 0. 1. + 16354. 1. 4. 27.0 6.0 2.0 2. 12.0 14.0 3. 2. 3.2666645 0. 1. + 16359. 1. 4. 22.0 2.5 0.0 1. 16.0 11.5 3. 4. 3.1999998 0. 1. + 16363. 1. 4. 27.0 9.0 0.0 2. 12.0 20.0 3. 4. 1.3611107 0. 1. + 16370. 1. 4. 22.0 6.0 0.0 1. 14.0 20.0 5. 6. 2.0000000 0. 1. + 16387. 1. 3. 42.0 16.5 2.0 1. 14.0 20.0 3. 6. 0.7272727 0. 1. + 16390. 1. 3. 32.0 16.5 4.0 1. 12.0 20.0 3. 4. 1.6969690 0. 1. + 16395. 1. 1. 22.0 2.5 1.0 1. 12.0 14.0 3. 4. 7.8399963 0. 1. + 16410. 1. 4. 37.0 16.5 3.0 2. 12.0 40.0 3. 5. 2.5454540 0. 1. + 16426. 1. 3. 22.0 6.0 3.0 2. 14.0 11.5 3. 2. 3.2666645 0. 1. + 16430. 1. 5. 22.0 2.5 0.0 2. 12.0 14.0 3. 5. 7.8399963 0. 1. + 16434. 1. 2. 22.0 2.5 0.0 3. 14.0 20.0 3. 3. 4.8999996 0. 1. + 16447. 1. 3. 22.0 2.5 0.0 3. 16.0 9.0 4. 4. 1.3999996 0. 1. + 16455. 1. 3. 22.0 0.5 0.0 1. 14.0 9.0 3. 2. 39.1999817 0. 1. + 16456. 1. 4. 22.0 2.5 0.0 3. 14.0 20.0 3. 4. 0.4000000 0. 1. + 16457. 1. 4. 27.0 9.0 2.0 2. 14.0 6.5 4. 2. 1.3611107 0. 1. + 16459. 1. 5. 37.0 16.5 2.0 3. 14.0 40.0 3. 5. 1.1878777 0. 1. + 16465. 1. 4. 32.0 13.0 1.0 3. 14.0 20.0 4. 5. 0.9423077 0. 1. + 16483. 1. 3. 32.0 13.0 4.0 3. 12.0 9.0 5. 4. 0.2692307 0. 1. + 16484. 1. 3. 27.0 6.0 3.0 3. 14.0 14.0 3. 5. 2.0416660 0. 1. + 16494. 1. 4. 32.0 13.0 2.0 2. 14.0 20.0 3. 4. 0.9230769 0. 1. + 16496. 1. 2. 42.0 23.0 2.0 2. 14.0 20.0 5. 5. 0.8521735 0. 1. + 16499. 1. 4. 37.0 16.5 2.0 3. 12.0 20.0 4. 4. 0.7272727 0. 1. + 16501. 1. 5. 27.0 2.5 1.0 3. 12.0 14.0 4. 5. 4.8999996 0. 1. + 16518. 1. 3. 22.0 2.5 1.0 1. 12.0 6.5 2. 2. 0.4000000 0. 1. + 16519. 1. 2. 27.0 6.0 2.0 2. 14.0 9.0 4. 4. 0.5833333 0. 1. + 16545. 1. 3. 42.0 23.0 3.0 2. 14.0 20.0 3. 3. 0.8521735 0. 1. + 16546. 1. 2. 22.0 2.5 1.0 2. 14.0 14.0 2. 2. 7.8399963 0. 1. + 16547. 1. 5. 22.0 6.0 1.0 2. 17.0 4.0 4. 2. 7.0000000 0. 1. + 16554. 1. 5. 32.0 13.0 2.0 2. 14.0 9.0 2. 2. 0.6153846 0. 1. + 16581. 1. 1. 32.0 16.5 2.0 2. 17.0 40.0 4. 2. 0.7272727 0. 1. + 16593. 1. 2. 32.0 16.5 3.0 2. 14.0 20.0 4. 5. 0.2121212 0. 1. + 16608. 1. 3. 37.0 16.5 2.0 3. 14.0 20.0 5. 2. 0.7424242 0. 1. + 16614. 1. 4. 42.0 23.0 5.5 1. 12.0 20.0 3. 5. 0.8521735 0. 1. + 16627. 1. 4. 42.0 23.0 3.0 4. 14.0 20.0 3. 4. 0.5217391 0. 1. + 16639. 1. 4. 27.0 6.0 0.0 2. 16.0 14.0 4. 4. 1.3333330 0. 1. + 16648. 1. 4. 27.0 2.5 2.0 2. 16.0 14.0 4. 5. 1.3999996 0. 1. + 16650. 1. 3. 27.0 9.0 1.0 2. 12.0 14.0 2. 2. 0.3888888 0. 1. + 16653. 1. 4. 27.0 6.0 2.0 3. 14.0 11.5 4. 4. 2.0000000 0. 1. + 16659. 1. 4. 27.0 9.0 2.0 2. 12.0 14.0 4. 5. 0.3888888 0. 1. + 16666. 1. 2. 27.0 6.0 0.0 3. 14.0 20.0 3. 6. 2.0000000 0. 1. + 16672. 1. 4. 27.0 9.0 2.0 3. 16.0 40.0 4. 6. 1.3611107 0. 1. + 16677. 1. 4. 22.0 2.5 1.0 3. 14.0 6.5 5. 1. 0.4000000 0. 1. + 16710. 1. 2. 27.0 2.5 1.0 1. 14.0 20.0 5. 4. 7.8399963 0. 1. + 16715. 1. 4. 37.0 16.5 3.0 3. 14.0 11.5 3. 4. 0.2121212 0. 1. + 16717. 1. 5. 32.0 13.0 2.0 1. 14.0 20.0 3. 6. 0.9230769 0. 1. + 16719. 1. 2. 27.0 9.0 0.0 2. 17.0 14.0 4. 5. 1.3611107 0. 1. + 16732. 1. 4. 32.0 16.5 3.0 3. 12.0 20.0 3. 3. 0.7272727 0. 1. + 16739. 1. 5. 42.0 23.0 3.0 3. 12.0 20.0 3. 5. 1.2173910 0. 1. + 16741. 1. 1. 37.0 16.5 1.0 3. 12.0 20.0 2. 3. 0.7424242 0. 1. + 16742. 1. 5. 27.0 2.5 0.0 2. 14.0 20.0 2. 4. 4.8999996 0. 1. + 16752. 1. 4. 37.0 16.5 1.0 3. 14.0 40.0 3. 6. 0.7424242 0. 1. + 16754. 1. 5. 32.0 13.0 1.0 1. 20.0 14.0 2. 6. 1.5076914 0. 1. + 16785. 1. 5. 27.0 6.0 2.0 2. 14.0 20.0 4. 5. 0.5833333 0. 1. + 16820. 1. 4. 27.0 2.5 0.0 1. 20.0 9.0 6. 1. 7.8399963 0. 1. + 16826. 1. 4. 42.0 23.0 4.0 3. 12.0 11.5 2. 3. 0.3478261 0. 1. + 16829. 1. 3. 27.0 9.0 1.0 3. 17.0 11.5 5. 5. 2.1777763 0. 1. + 16864. 1. 3. 22.0 2.5 1.0 2. 12.0 6.5 2. 2. 3.1999998 0. 1. + 16881. 1. 4. 27.0 6.0 0.0 2. 14.0 40.0 3. 6. 2.0416660 0. 1. + 16904. 1. 4. 32.0 13.0 2.0 1. 12.0 20.0 3. 5. 3.4461536 0. 1. + 16906. 1. 2. 32.0 9.0 1.0 2. 16.0 14.0 3. 3. 0.1111111 0. 1. + 16909. 1. 2. 27.0 6.0 1.0 1. 14.0 20.0 4. 6. 2.0416660 0. 1. + 16910. 1. 3. 22.0 2.5 1.0 1. 14.0 6.5 2. 2. 1.3999996 0. 1. + 16917. 1. 5. 22.0 0.5 0.0 1. 12.0 14.0 3. 4. 2.0000000 0. 1. + 16924. 1. 5. 22.0 2.5 0.0 2. 20.0 11.5 4. 1. 7.8399963 0. 1. + 16926. 1. 5. 22.0 6.0 0.0 3. 14.0 14.0 3. 2. 0.5833333 0. 1. + 16930. 1. 5. 42.0 23.0 2.0 3. 17.0 20.0 4. 2. 0.1521739 0. 1. + 16931. 1. 1. 22.0 2.5 1.0 2. 14.0 20.0 3. 2. 4.7999992 0. 1. + 16936. 1. 3. 27.0 6.0 1.0 2. 12.0 14.0 3. 4. 3.2666645 0. 1. + 16940. 1. 3. 22.0 6.0 0.0 3. 14.0 20.0 5. 4. 2.0000000 0. 1. + 16942. 1. 4. 27.0 9.0 2.0 2. 16.0 11.5 4. 4. 2.1777763 0. 1. + 16944. 1. 3. 22.0 6.0 1.0 2. 9.0 11.5 2. 2. 0.1666666 0. 1. + 16968. 1. 4. 32.0 16.5 3.0 2. 16.0 20.0 5. 5. 0.2121212 0. 1. + 16974. 1. 5. 37.0 16.5 1.0 3. 14.0 20.0 3. 2. 0.4848484 0. 1. + 16976. 1. 2. 27.0 9.0 2.0 3. 14.0 11.5 2. 2. 0.8888888 0. 1. + 16980. 1. 4. 32.0 13.0 0.0 2. 14.0 20.0 3. 5. 0.2692307 0. 1. + 16981. 1. 4. 37.0 23.0 5.5 3. 14.0 20.0 4. 5. 0.8521735 0. 1. + 16983. 1. 4. 27.0 13.0 2.0 3. 12.0 20.0 3. 5. 0.2692307 0. 1. + 16985. 1. 3. 27.0 9.0 1.0 1. 16.0 20.0 3. 6. 1.3611107 0. 1. + 16987. 1. 3. 32.0 13.0 3.0 2. 14.0 11.5 3. 4. 0.2692307 0. 1. + 17000. 1. 2. 27.0 9.0 1.0 3. 14.0 20.0 3. 5. 1.3611107 0. 1. + 17029. 1. 3. 22.0 6.0 2.0 2. 12.0 9.0 3. 2. 1.3333330 0. 1. + 17030. 1. 3. 32.0 16.5 2.0 2. 12.0 11.5 3. 5. 0.0606061 0. 1. + 17036. 1. 3. 42.0 23.0 2.0 3. 12.0 20.0 2. 3. 2.9217386 0. 1. + 17042. 1. 4. 27.0 6.0 1.0 3. 14.0 20.0 3. 3. 2.0416660 0. 1. + 17058. 1. 2. 27.0 13.0 2.0 1. 12.0 40.0 4. 5. 1.5076914 0. 1. + 17061. 1. 3. 42.0 23.0 3.0 2. 12.0 20.0 3. 4. 0.1521739 0. 1. + 17063. 1. 2. 42.0 23.0 4.0 2. 12.0 20.0 5. 5. 0.5217391 0. 1. + 17071. 1. 5. 42.0 23.0 4.0 4. 14.0 20.0 3. 2. 0.1521739 0. 1. + 17082. 1. 4. 27.0 6.0 1.0 1. 12.0 40.0 5. 6. 7.0000000 0. 1. + 17104. 1. 3. 42.0 23.0 1.0 2. 14.0 40.0 5. 6. 0.5326087 0. 1. + 17109. 1. 1. 32.0 13.0 0.0 3. 14.0 20.0 3. 5. 0.9423077 0. 1. + 17114. 1. 5. 32.0 13.0 2.0 3. 14.0 20.0 4. 2. 0.9230769 0. 1. + 17125. 1. 3. 27.0 6.0 0.0 1. 16.0 20.0 3. 2. 2.0416660 0. 1. + 17134. 1. 3. 27.0 9.0 2.0 3. 14.0 20.0 5. 5. 1.3333330 0. 1. + 17136. 1. 3. 27.0 6.0 1.0 3. 16.0 40.0 4. 5. 0.5833333 0. 1. + 17138. 1. 4. 22.0 2.5 0.0 1. 12.0 6.5 3. 2. 1.3999996 0. 1. + 17140. 1. 2. 42.0 23.0 2.0 3. 12.0 14.0 5. 5. 0.8521735 0. 1. + 17141. 1. 4. 22.0 2.5 0.0 3. 14.0 14.0 5. 4. 3.1999998 0. 1. + 17163. 1. 4. 27.0 9.0 2.0 2. 20.0 11.5 4. 6. 0.3888888 0. 1. + 17181. 1. 2. 27.0 2.5 1.0 2. 14.0 6.5 2. 4. 1.3999996 0. 1. + 17200. 1. 4. 37.0 23.0 4.0 3. 14.0 20.0 3. 3. 4.1739130 0. 1. + 17201. 1. 3. 27.0 9.0 1.0 2. 14.0 20.0 3. 4. 1.3333330 0. 1. + 17203. 1. 5. 22.0 2.5 0.0 2. 12.0 6.5 3. 2. 1.3999996 0. 1. + 17228. 1. 4. 27.0 6.0 1.0 2. 12.0 40.0 3. 4. 0.1666666 0. 1. + 17238. 1. 5. 32.0 13.0 1.0 3. 14.0 14.0 5. 5. 0.9230769 0. 1. + 17250. 1. 5. 32.0 13.0 1.0 2. 12.0 20.0 3. 4. 0.2692307 0. 1. + 17288. 1. 4. 27.0 2.5 0.0 3. 14.0 20.0 5. 4. 4.7999992 0. 1. + 17289. 1. 4. 27.0 9.0 1.0 3. 14.0 20.0 3. 5. 0.1111111 0. 1. + 17310. 1. 5. 32.0 13.0 2.0 2. 12.0 20.0 5. 3. 0.9423077 0. 1. + 17311. 1. 4. 27.0 2.5 0.0 3. 12.0 20.0 3. 3. 0.4000000 0. 1. + 17317. 1. 3. 32.0 13.0 2.0 2. 14.0 20.0 3. 3. 0.2692307 0. 1. + 17329. 1. 4. 27.0 6.0 1.0 3. 12.0 11.5 3. 4. 0.5833333 0. 1. + 17343. 1. 5. 37.0 23.0 4.0 3. 16.0 40.0 5. 5. 0.5217391 0. 1. + 17347. 1. 4. 27.0 9.0 2.0 2. 12.0 20.0 5. 5. 2.1777763 0. 1. + 17360. 1. 2. 42.0 16.5 3.0 3. 16.0 20.0 3. 5. 2.5454540 0. 1. + 17374. 1. 4. 27.0 6.0 0.0 2. 14.0 14.0 3. 5. 2.0416660 0. 1. + 17378. 1. 3. 22.0 2.5 1.0 3. 12.0 9.0 5. 5. 0.4000000 0. 1. + 17379. 1. 4. 32.0 13.0 2.0 2. 14.0 20.0 3. 5. 1.5076914 0. 1. + 17397. 1. 3. 27.0 6.0 1.0 2. 14.0 14.0 3. 4. 3.2666645 0. 1. + 17416. 1. 3. 27.0 13.0 1.0 1. 12.0 14.0 3. 3. 0.6153846 0. 1. + 17417. 1. 3. 27.0 6.0 0.0 1. 16.0 40.0 6. 6. 2.0416660 0. 1. + 17422. 1. 3. 32.0 16.5 3.0 2. 14.0 20.0 3. 4. 1.1878777 0. 1. + 17424. 1. 5. 42.0 23.0 3.0 3. 14.0 20.0 3. 4. 0.8521735 0. 1. + 17425. 1. 4. 22.0 6.0 0.0 3. 12.0 14.0 3. 5. 0.5833333 0. 1. + 17435. 1. 4. 32.0 16.5 2.0 3. 12.0 20.0 3. 4. 0.2121212 0. 1. + 17436. 1. 1. 37.0 16.5 3.0 2. 14.0 14.0 4. 4. 0.2121212 0. 1. + 17437. 1. 3. 22.0 2.5 0.0 3. 16.0 6.5 3. 4. 4.8999996 0. 1. + 17438. 1. 3. 27.0 6.0 0.0 3. 17.0 11.5 5. 5. 3.2666645 0. 1. + 17447. 1. 3. 37.0 16.5 2.0 3. 16.0 20.0 5. 3. 0.0606061 0. 1. + 17448. 1. 2. 32.0 13.0 3.0 2. 12.0 20.0 3. 2. 0.9423077 0. 1. + 17455. 1. 4. 37.0 23.0 2.0 3. 14.0 20.0 5. 2. 0.1521739 0. 1. + 17456. 1. 4. 27.0 9.0 2.0 4. 17.0 11.5 4. 4. 1.3611107 0. 1. + 17491. 1. 4. 27.0 9.0 1.0 2. 14.0 20.0 3. 5. 0.1111111 0. 1. + 17493. 1. 2. 42.0 16.5 5.5 2. 16.0 40.0 3. 5. 2.5454540 0. 1. + 17510. 1. 4. 32.0 16.5 3.0 4. 14.0 20.0 3. 4. 4.0727262 0. 1. + 17518. 1. 4. 27.0 6.0 1.0 3. 14.0 9.0 3. 2. 2.0000000 0. 1. + 17519. 1. 4. 42.0 23.0 3.0 2. 12.0 9.0 3. 4. 1.9478254 0. 1. + 17525. 1. 5. 32.0 16.5 3.0 2. 12.0 40.0 3. 5. 1.6969690 0. 1. + 17527. 1. 5. 32.0 16.5 3.0 1. 14.0 20.0 2. 4. 0.0606061 0. 1. + 17532. 1. 4. 37.0 16.5 2.0 2. 14.0 20.0 3. 2. 0.7272727 0. 1. + 17543. 1. 2. 22.0 6.0 2.0 3. 12.0 20.0 3. 4. 2.0000000 0. 1. + 17552. 1. 4. 32.0 16.5 3.0 4. 14.0 20.0 3. 3. 0.0606061 0. 1. + 17571. 1. 2. 37.0 23.0 3.0 3. 12.0 14.0 3. 2. 0.1521739 0. 1. + 17590. 1. 5. 27.0 6.0 2.0 2. 12.0 9.0 4. 4. 0.5833333 0. 1. + 17599. 1. 5. 32.0 16.5 2.0 2. 17.0 14.0 4. 3. 0.0606061 0. 1. + 17607. 1. 3. 32.0 16.5 2.0 2. 12.0 11.5 4. 4. 1.1878777 0. 1. + 17617. 1. 4. 27.0 9.0 2.0 3. 12.0 9.0 3. 4. 0.8888888 0. 1. + 17621. 1. 4. 32.0 16.5 1.0 3. 14.0 20.0 5. 2. 1.6969690 0. 1. + 17622. 1. 4. 27.0 9.0 2.0 2. 16.0 11.5 4. 5. 2.1777763 0. 1. + 17628. 1. 4. 22.0 2.5 0.0 1. 16.0 20.0 3. 2. 0.4000000 0. 1. + 17631. 1. 3. 37.0 23.0 4.0 2. 14.0 20.0 3. 5. 0.8521735 0. 1. + 17689. 1. 5. 27.0 13.0 2.0 2. 12.0 14.0 2. 5. 0.9423077 0. 1. + 17692. 1. 5. 32.0 16.5 4.0 3. 14.0 20.0 3. 4. 0.7272727 0. 1. + 17703. 1. 2. 37.0 16.5 3.0 2. 14.0 20.0 5. 3. 0.2121212 0. 1. + 17710. 1. 5. 32.0 6.0 1.0 3. 14.0 20.0 3. 5. 0.5833333 0. 1. + 17711. 1. 3. 22.0 2.5 0.0 2. 16.0 11.5 3. 3. 4.8999996 0. 1. + 17713. 1. 5. 22.0 2.5 0.0 3. 16.0 20.0 3. 2. 4.7999992 0. 1. + 17717. 1. 2. 32.0 13.0 1.0 2. 12.0 40.0 3. 2. 1.5076914 0. 1. + 17724. 1. 3. 42.0 13.0 0.0 3. 17.0 20.0 5. 2. 1.5076914 0. 1. + 17735. 1. 3. 22.0 2.5 0.0 1. 16.0 20.0 3. 5. 7.8399963 0. 1. + 17736. 1. 3. 42.0 23.0 3.0 2. 17.0 14.0 4. 4. 1.2173910 0. 1. + 17737. 1. 2. 27.0 13.0 2.0 1. 14.0 20.0 3. 5. 4.9230766 0. 1. + 17757. 1. 4. 22.0 2.5 1.0 1. 14.0 6.5 3. 1. 1.3999996 0. 1. + 17766. 1. 5. 22.0 2.5 1.0 3. 14.0 20.0 4. 5. 0.4000000 0. 1. + 17792. 1. 4. 42.0 23.0 1.0 3. 14.0 6.5 3. 2. 0.1521739 0. 1. + 17801. 1. 5. 32.0 9.0 2.0 1. 17.0 14.0 6. 6. 2.1777763 0. 1. + 17809. 1. 4. 32.0 16.5 3.0 2. 12.0 40.0 3. 2. 2.5454540 0. 1. + 17819. 1. 3. 27.0 2.5 1.0 3. 14.0 20.0 3. 6. 1.3999996 0. 1. + 17830. 1. 3. 37.0 16.5 4.0 2. 14.0 14.0 3. 2. 0.2121212 0. 1. + 17838. 1. 3. 32.0 16.5 3.0 3. 14.0 20.0 3. 5. 0.7424242 0. 1. + 17846. 1. 3. 32.0 23.0 3.0 3. 14.0 40.0 3. 2. 1.2173910 0. 1. + 17853. 1. 5. 22.0 2.5 0.0 1. 12.0 4.0 2. 2. 1.3999996 0. 1. + 17882. 1. 3. 32.0 16.5 3.0 2. 12.0 40.0 5. 5. 4.0727262 0. 1. + 17894. 1. 4. 27.0 2.5 0.0 1. 17.0 40.0 4. 3. 1.3999996 0. 1. + 17902. 1. 3. 27.0 6.0 0.0 2. 20.0 20.0 6. 6. 3.2666645 0. 1. + 17903. 1. 5. 27.0 13.0 0.0 3. 14.0 14.0 3. 4. 0.0769231 0. 1. + 17912. 1. 5. 37.0 16.5 3.0 4. 14.0 40.0 5. 5. 0.2121212 0. 1. + 17915. 1. 4. 37.0 16.5 3.0 1. 14.0 14.0 3. 3. 0.7272727 0. 1. + 17918. 1. 5. 32.0 13.0 1.0 3. 14.0 14.0 5. 2. 3.2307692 0. 1. + 17919. 1. 4. 27.0 6.0 0.0 2. 14.0 20.0 3. 6. 2.0000000 0. 1. + 17920. 1. 3. 27.0 0.5 0.0 1. 14.0 20.0 3. 3. 24.0000000 0. 1. + 17926. 1. 3. 22.0 2.5 2.0 3. 14.0 11.5 2. 2. 4.8999996 0. 1. + 17931. 1. 4. 37.0 23.0 4.0 4. 12.0 20.0 3. 3. 0.1521739 0. 1. + 17944. 1. 5. 32.0 16.5 2.0 3. 14.0 20.0 4. 5. 1.1878777 0. 1. + 17966. 1. 5. 32.0 13.0 3.0 3. 14.0 20.0 3. 6. 0.9230769 0. 1. + 17985. 1. 4. 32.0 13.0 3.0 1. 20.0 20.0 5. 5. 1.5076914 0. 1. + 17986. 1. 3. 27.0 6.0 0.0 1. 12.0 11.5 3. 4. 0.5833333 0. 1. + 17991. 1. 5. 22.0 2.5 0.0 3. 14.0 40.0 3. 2. 1.3999996 0. 1. + 17994. 1. 4. 32.0 23.0 3.0 2. 9.0 20.0 4. 5. 1.2173910 0. 1. + 18001. 1. 3. 37.0 23.0 2.0 2. 12.0 20.0 5. 4. 0.5217391 0. 1. + 19007. 1. 2. 22.0 2.5 2.0 2. 12.0 6.5 2. 2. 4.8999996 0. 1. + 19011. 1. 4. 32.0 13.0 0.0 3. 14.0 20.0 3. 5. 1.5076914 0. 1. + 19017. 1. 5. 27.0 2.5 0.0 3. 14.0 14.0 3. 5. 0.4000000 0. 1. + 7. 1. 4. 32.0 9.0 2.0 3. 14.0 9.0 2. 4. 0.0 0. 1. + 14. 1. 4. 27.0 6.0 0.0 2. 14.0 6.5 3. 4. 0.0 0. 1. + 16. 1. 4. 22.0 2.5 0.0 2. 14.0 9.0 3. 2. 0.0 0. 1. + 17. 1. 5. 42.0 23.0 4.0 3. 16.0 20.0 3. 5. 0.0 0. 1. + 26. 1. 5. 27.0 2.5 1.0 3. 20.0 14.0 2. 2. 0.0 0. 1. + 27. 1. 4. 27.0 6.0 1.0 2. 14.0 11.5 2. 4. 0.0 0. 1. + 28. 1. 4. 42.0 23.0 5.5 2. 12.0 11.5 3. 2. 0.0 0. 1. + 42. 1. 5. 27.0 2.5 0.0 1. 14.0 11.5 3. 2. 0.0 0. 1. + 43. 1. 5. 32.0 13.0 2.0 3. 14.0 40.0 3. 5. 0.0 0. 1. + 46. 1. 4. 22.0 2.5 0.0 2. 12.0 11.5 4. 4. 0.0 0. 1. + 47. 1. 5. 22.0 2.5 0.0 3. 12.0 11.5 3. 2. 0.0 0. 1. + 49. 1. 3. 27.0 6.0 1.0 2. 17.0 11.5 5. 4. 0.0 0. 1. + 52. 1. 3. 27.0 2.5 0.0 2. 16.0 20.0 3. 5. 0.0 0. 1. + 55. 1. 5. 22.0 2.5 0.0 3. 14.0 20.0 3. 5. 0.0 0. 1. + 56. 1. 5. 22.0 2.5 0.0 1. 17.0 20.0 4. 2. 0.0 0. 1. + 59. 1. 4. 27.0 2.5 1.0 1. 16.0 11.5 2. 4. 0.0 0. 1. + 60. 1. 5. 27.0 2.5 0.0 2. 16.0 20.0 5. 4. 0.0 0. 1. + 62. 1. 4. 32.0 13.0 4.0 3. 12.0 11.5 3. 4. 0.0 0. 1. + 66. 1. 5. 17.5 0.5 0.0 4. 16.0 20.0 3. 4. 0.0 0. 1. + 71. 1. 5. 27.0 6.0 2.0 3. 14.0 14.0 5. 5. 0.0 0. 1. + 76. 1. 5. 22.0 6.0 2.0 2. 17.0 20.0 4. 2. 0.0 0. 1. + 77. 1. 5. 22.0 2.5 0.0 2. 14.0 9.0 4. 2. 0.0 0. 1. + 79. 1. 3. 27.0 9.0 0.0 2. 16.0 11.5 5. 2. 0.0 0. 1. + 80. 1. 4. 27.0 2.5 1.0 3. 14.0 11.5 3. 5. 0.0 0. 1. + 86. 1. 5. 22.0 2.5 0.0 1. 12.0 14.0 3. 4. 0.0 0. 1. + 87. 1. 5. 22.0 6.0 0.0 3. 12.0 11.5 3. 4. 0.0 0. 1. + 88. 1. 5. 27.0 6.0 2.0 3. 12.0 11.5 3. 3. 0.0 0. 1. + 90. 1. 5. 27.0 6.0 2.0 3. 12.0 20.0 2. 4. 0.0 0. 1. + 93. 1. 4. 27.0 2.5 0.0 1. 12.0 20.0 3. 2. 0.0 0. 1. + 96. 1. 3. 22.0 2.5 1.0 1. 14.0 6.5 4. 2. 0.0 0. 1. + 97. 1. 4. 22.0 2.5 0.0 1. 14.0 11.5 3. 2. 0.0 0. 1. + 99. 1. 5. 22.0 2.5 1.0 3. 12.0 9.0 2. 2. 0.0 0. 1. + 100. 1. 5. 27.0 6.0 1.0 4. 14.0 20.0 5. 6. 0.0 0. 1. + 120. 1. 4. 42.0 23.0 5.5 2. 12.0 20.0 3. 5. 0.0 0. 1. + 125. 1. 5. 27.0 9.0 2.0 3. 14.0 9.0 3. 4. 0.0 0. 1. + 136. 1. 5. 32.0 9.0 2.0 2. 12.0 20.0 4. 5. 0.0 0. 1. + 142. 1. 4. 22.0 2.5 0.0 3. 16.0 20.0 4. 6. 0.0 0. 1. + 145. 1. 5. 32.0 9.0 4.0 3. 14.0 20.0 4. 4. 0.0 0. 1. + 146. 1. 5. 27.0 2.5 0.0 2. 16.0 11.5 2. 4. 0.0 0. 1. + 154. 1. 3. 27.0 2.5 0.0 2. 14.0 11.5 3. 4. 0.0 0. 1. + 158. 1. 4. 27.0 9.0 0.0 2. 12.0 20.0 4. 4. 0.0 0. 1. + 167. 1. 5. 32.0 6.0 1.0 2. 17.0 20.0 4. 5. 0.0 0. 1. + 169. 1. 4. 22.0 2.5 0.0 3. 12.0 14.0 3. 4. 0.0 0. 1. + 170. 1. 4. 32.0 9.0 2.0 2. 14.0 20.0 4. 2. 0.0 0. 1. + 173. 1. 4. 22.0 2.5 0.0 2. 16.0 14.0 4. 5. 0.0 0. 1. + 174. 1. 5. 42.0 23.0 4.0 3. 14.0 20.0 4. 6. 0.0 0. 1. + 175. 1. 4. 27.0 2.5 2.0 3. 14.0 11.5 4. 3. 0.0 0. 1. + 183. 1. 5. 22.0 2.5 0.0 4. 16.0 9.0 4. 1. 0.0 0. 1. + 187. 1. 5. 17.5 0.5 0.0 2. 14.0 9.0 4. 5. 0.0 0. 1. + 191. 1. 3. 22.0 0.5 0.0 2. 16.0 20.0 3. 2. 0.0 0. 1. + 196. 1. 5. 22.0 0.5 0.0 3. 16.0 20.0 4. 2. 0.0 0. 1. + 197. 1. 3. 32.0 13.0 0.0 3. 20.0 20.0 4. 5. 0.0 0. 1. + 199. 1. 4. 27.0 2.5 0.0 4. 16.0 20.0 4. 6. 0.0 0. 1. + 200. 1. 5. 42.0 23.0 5.5 1. 14.0 14.0 3. 3. 0.0 0. 1. + 201. 1. 4. 37.0 16.5 3.0 3. 16.0 20.0 3. 5. 0.0 0. 1. + 208. 1. 5. 32.0 16.5 3.0 2. 12.0 20.0 2. 2. 0.0 0. 1. + 212. 1. 4. 32.0 9.0 2.0 2. 14.0 20.0 4. 3. 0.0 0. 1. + 215. 1. 3. 22.0 2.5 0.0 1. 12.0 14.0 3. 4. 0.0 0. 1. + 218. 1. 4. 37.0 2.5 0.0 3. 12.0 14.0 3. 4. 0.0 0. 1. + 224. 1. 4. 27.0 2.5 0.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 232. 1. 5. 32.0 9.0 2.0 1. 14.0 20.0 3. 5. 0.0 0. 1. + 233. 1. 5. 32.0 13.0 2.0 1. 16.0 40.0 4. 5. 0.0 0. 1. + 235. 1. 5. 37.0 16.5 3.0 3. 16.0 20.0 5. 4. 0.0 0. 1. + 252. 1. 5. 22.0 0.5 0.0 2. 14.0 11.5 3. 5. 0.0 0. 1. + 255. 1. 5. 42.0 16.5 2.0 3. 17.0 40.0 4. 4. 0.0 0. 1. + 259. 1. 3. 27.0 6.0 1.0 3. 12.0 6.5 3. 2. 0.0 0. 1. + 262. 1. 5. 22.0 2.5 0.0 2. 16.0 14.0 4. 4. 0.0 0. 1. + 265. 1. 5. 27.0 9.0 3.0 4. 16.0 11.5 4. 5. 0.0 0. 1. + 270. 1. 5. 42.0 23.0 1.0 4. 17.0 40.0 4. 5. 0.0 0. 1. + 272. 1. 5. 27.0 2.5 0.0 2. 16.0 20.0 4. 5. 0.0 0. 1. + 278. 1. 5. 42.0 23.0 1.0 3. 14.0 20.0 3. 2. 0.0 0. 1. + 282. 1. 5. 27.0 2.5 0.0 1. 16.0 20.0 6. 6. 0.0 0. 1. + 285. 1. 5. 27.0 2.5 1.0 2. 14.0 11.5 3. 4. 0.0 0. 1. + 290. 1. 5. 17.5 2.5 0.0 1. 14.0 11.5 3. 2. 0.0 0. 1. + 294. 1. 5. 22.0 6.0 0.0 1. 12.0 11.5 2. 3. 0.0 0. 1. + 309. 1. 3. 32.0 13.0 2.0 2. 14.0 11.5 2. 2. 0.0 0. 1. + 311. 1. 5. 27.0 2.5 0.0 1. 17.0 20.0 4. 5. 0.0 0. 1. + 318. 1. 4. 32.0 2.5 0.0 2. 16.0 20.0 4. 3. 0.0 0. 1. + 323. 1. 5. 22.0 2.5 1.0 1. 12.0 6.5 3. 3. 0.0 0. 1. + 327. 1. 5. 22.0 2.5 0.0 2. 14.0 14.0 3. 3. 0.0 0. 1. + 329. 1. 5. 42.0 16.5 3.0 2. 12.0 9.0 3. 4. 0.0 0. 1. + 331. 1. 5. 27.0 6.0 1.0 2. 14.0 6.5 4. 4. 0.0 0. 1. + 335. 1. 5. 32.0 9.0 2.0 3. 16.0 11.5 4. 4. 0.0 0. 1. + 341. 1. 5. 32.0 16.5 3.0 1. 16.0 20.0 4. 2. 0.0 0. 1. + 344. 1. 4. 27.0 2.5 0.0 3. 14.0 14.0 3. 5. 0.0 0. 1. + 350. 1. 5. 27.0 9.0 3.0 1. 17.0 20.0 4. 4. 0.0 0. 1. + 353. 1. 4. 27.0 2.5 0.0 3. 14.0 40.0 4. 5. 0.0 0. 1. + 357. 1. 3. 37.0 16.5 4.0 3. 14.0 11.5 4. 4. 0.0 0. 1. + 364. 1. 5. 22.0 2.5 0.0 2. 17.0 40.0 5. 5. 0.0 0. 1. + 382. 1. 5. 32.0 9.0 2.0 2. 17.0 20.0 5. 5. 0.0 0. 1. + 383. 1. 5. 22.0 2.5 1.0 1. 12.0 9.0 3. 4. 0.0 0. 1. + 385. 1. 3. 27.0 6.0 2.0 2. 14.0 9.0 5. 6. 0.0 0. 1. + 395. 1. 5. 22.0 2.5 0.0 2. 14.0 20.0 3. 4. 0.0 0. 1. + 397. 1. 5. 27.0 9.0 2.0 3. 17.0 20.0 4. 5. 0.0 0. 1. + 407. 1. 4. 27.0 2.5 0.0 2. 14.0 11.5 3. 3. 0.0 0. 1. + 408. 1. 5. 22.0 2.5 1.0 2. 12.0 9.0 3. 4. 0.0 0. 1. + 409. 1. 4. 27.0 2.5 0.0 3. 12.0 20.0 2. 5. 0.0 0. 1. + 415. 1. 5. 27.0 6.0 2.0 3. 14.0 11.5 2. 4. 0.0 0. 1. + 421. 1. 5. 22.0 2.5 2.0 1. 14.0 14.0 4. 3. 0.0 0. 1. + 423. 1. 4. 42.0 23.0 3.0 2. 16.0 40.0 3. 5. 0.0 0. 1. + 430. 1. 4. 32.0 6.0 0.0 3. 12.0 20.0 3. 4. 0.0 0. 1. + 436. 1. 5. 22.0 2.5 0.0 3. 16.0 11.5 4. 5. 0.0 0. 1. + 443. 1. 5. 22.0 2.5 0.0 3. 16.0 14.0 3. 4. 0.0 0. 1. + 445. 1. 5. 27.0 6.0 0.0 1. 16.0 20.0 4. 2. 0.0 0. 1. + 449. 1. 4. 42.0 23.0 3.0 2. 9.0 20.0 5. 5. 0.0 0. 1. + 454. 1. 5. 22.0 0.5 0.0 2. 16.0 11.5 3. 3. 0.0 0. 1. + 455. 1. 3. 22.0 2.5 0.0 2. 16.0 14.0 5. 5. 0.0 0. 1. + 456. 1. 5. 27.0 9.0 2.0 1. 12.0 20.0 2. 3. 0.0 0. 1. + 459. 1. 5. 32.0 16.5 2.0 1. 12.0 14.0 2. 5. 0.0 0. 1. + 460. 1. 2. 32.0 16.5 1.0 3. 12.0 11.5 3. 5. 0.0 0. 1. + 462. 1. 3. 22.0 2.5 0.0 2. 14.0 11.5 3. 4. 0.0 0. 1. + 464. 1. 4. 22.0 2.5 1.0 2. 12.0 14.0 3. 2. 0.0 0. 1. + 469. 1. 4. 27.0 6.0 0.0 2. 12.0 11.5 3. 2. 0.0 0. 1. + 475. 1. 5. 22.0 0.5 0.0 1. 16.0 6.5 4. 1. 0.0 0. 1. + 477. 1. 5. 27.0 2.5 0.0 3. 16.0 20.0 3. 5. 0.0 0. 1. + 485. 1. 5. 37.0 16.5 3.0 1. 16.0 20.0 4. 5. 0.0 0. 1. + 486. 1. 4. 42.0 23.0 3.0 4. 12.0 20.0 3. 4. 0.0 0. 1. + 488. 1. 5. 27.0 2.5 0.0 2. 20.0 20.0 4. 6. 0.0 0. 1. + 492. 1. 4. 32.0 6.0 2.0 2. 16.0 20.0 4. 5. 0.0 0. 1. + 494. 1. 5. 27.0 9.0 0.0 2. 12.0 20.0 4. 5. 0.0 0. 1. + 498. 1. 4. 32.0 6.0 1.0 3. 12.0 40.0 6. 6. 0.0 0. 1. + 499. 1. 3. 32.0 13.0 2.0 2. 16.0 14.0 3. 2. 0.0 0. 1. + 500. 1. 4. 37.0 16.5 4.0 2. 12.0 11.5 3. 2. 0.0 0. 1. + 501. 1. 5. 32.0 13.0 2.0 3. 12.0 20.0 5. 4. 0.0 0. 1. + 507. 1. 3. 22.0 2.5 2.0 1. 12.0 9.0 3. 2. 0.0 0. 1. + 511. 1. 5. 27.0 2.5 0.0 3. 17.0 20.0 4. 4. 0.0 0. 1. + 514. 1. 5. 22.0 2.5 0.0 3. 12.0 20.0 3. 5. 0.0 0. 1. + 517. 1. 5. 37.0 13.0 0.0 3. 12.0 20.0 3. 4. 0.0 0. 1. + 524. 1. 5. 22.0 2.5 0.0 1. 12.0 11.5 3. 4. 0.0 0. 1. + 525. 1. 4. 37.0 16.5 2.0 3. 14.0 20.0 4. 5. 0.0 0. 1. + 528. 1. 5. 37.0 16.5 2.0 3. 14.0 20.0 3. 4. 0.0 0. 1. + 532. 1. 5. 27.0 6.0 2.0 3. 17.0 20.0 4. 5. 0.0 0. 1. + 543. 1. 1. 22.0 2.5 1.0 2. 17.0 4.0 2. 2. 0.0 0. 1. + 548. 1. 3. 32.0 13.0 3.0 1. 14.0 11.5 3. 5. 0.0 0. 1. + 554. 1. 4. 27.0 2.5 1.0 3. 12.0 14.0 3. 5. 0.0 0. 1. + 556. 1. 5. 32.0 6.0 2.0 2. 16.0 11.5 4. 5. 0.0 0. 1. + 562. 1. 5. 22.0 2.5 0.0 1. 12.0 11.5 3. 5. 0.0 0. 1. + 564. 1. 5. 32.0 9.0 4.0 2. 16.0 11.5 4. 4. 0.0 0. 1. + 566. 1. 4. 22.0 2.5 0.0 1. 14.0 11.5 3. 1. 0.0 0. 1. + 567. 1. 5. 17.5 0.5 0.0 3. 12.0 9.0 2. 2. 0.0 0. 1. + 569. 1. 5. 27.0 0.5 0.0 1. 17.0 20.0 4. 5. 0.0 0. 1. + 572. 1. 5. 22.0 0.5 0.0 4. 16.0 6.5 6. 2. 0.0 0. 1. + 581. 1. 5. 27.0 6.0 0.0 1. 12.0 20.0 3. 5. 0.0 0. 1. + 582. 1. 5. 37.0 16.5 1.0 2. 14.0 20.0 4. 3. 0.0 0. 1. + 589. 1. 3. 42.0 16.5 3.0 3. 14.0 14.0 3. 4. 0.0 0. 1. + 591. 1. 5. 27.0 6.0 1.0 2. 16.0 14.0 4. 4. 0.0 0. 1. + 593. 1. 5. 42.0 23.0 2.0 3. 17.0 20.0 5. 4. 0.0 0. 1. + 594. 1. 4. 22.0 0.5 0.0 3. 14.0 20.0 4. 4. 0.0 0. 1. + 597. 1. 2. 37.0 16.5 3.0 2. 14.0 9.0 3. 4. 0.0 0. 1. + 598. 1. 5. 22.0 2.5 0.0 2. 14.0 20.0 3. 4. 0.0 0. 1. + 599. 1. 5. 27.0 2.5 0.0 1. 16.0 40.0 4. 4. 0.0 0. 1. + 600. 1. 4. 27.0 2.5 1.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 601. 1. 3. 42.0 13.0 0.0 3. 16.0 20.0 4. 6. 0.0 0. 1. + 602. 1. 3. 42.0 16.5 1.0 4. 20.0 40.0 6. 6. 0.0 0. 1. + 603. 1. 4. 42.0 23.0 4.0 3. 14.0 20.0 3. 5. 0.0 0. 1. + 610. 1. 5. 27.0 6.0 1.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 611. 1. 5. 37.0 23.0 5.5 3. 12.0 20.0 2. 5. 0.0 0. 1. + 615. 1. 5. 27.0 9.0 2.0 2. 14.0 14.0 2. 2. 0.0 0. 1. + 617. 1. 4. 27.0 13.0 4.0 2. 12.0 6.5 3. 2. 0.0 0. 1. + 620. 1. 3. 27.0 6.0 1.0 1. 17.0 40.0 4. 5. 0.0 0. 1. + 627. 1. 5. 32.0 9.0 2.0 3. 12.0 11.5 4. 4. 0.0 0. 1. + 629. 1. 5. 27.0 2.5 0.0 1. 14.0 14.0 5. 4. 0.0 0. 1. + 631. 1. 4. 27.0 9.0 2.0 3. 16.0 11.5 4. 4. 0.0 0. 1. + 632. 1. 5. 27.0 2.5 0.0 1. 14.0 20.0 3. 3. 0.0 0. 1. + 637. 1. 4. 42.0 23.0 4.0 3. 12.0 11.5 3. 2. 0.0 0. 1. + 638. 1. 3. 27.0 2.5 0.0 1. 17.0 11.5 4. 5. 0.0 0. 1. + 640. 1. 4. 27.0 6.0 1.0 2. 12.0 14.0 3. 2. 0.0 0. 1. + 647. 1. 3. 27.0 6.0 2.0 1. 12.0 11.5 2. 2. 0.0 0. 1. + 651. 1. 3. 42.0 9.0 1.0 2. 14.0 20.0 5. 4. 0.0 0. 1. + 659. 1. 5. 42.0 23.0 3.0 3. 14.0 20.0 3. 5. 0.0 0. 1. + 660. 1. 4. 22.0 6.0 2.0 1. 12.0 20.0 3. 6. 0.0 0. 1. + 661. 1. 5. 27.0 2.5 0.0 2. 16.0 20.0 3. 5. 0.0 0. 1. + 663. 1. 4. 27.0 9.0 2.0 3. 12.0 6.5 2. 5. 0.0 0. 1. + 668. 1. 5. 22.0 2.5 0.0 4. 16.0 11.5 5. 1. 0.0 0. 1. + 692. 1. 5. 27.0 6.0 2.0 3. 16.0 20.0 3. 5. 0.0 0. 1. + 693. 1. 5. 22.0 2.5 0.0 3. 16.0 14.0 4. 4. 0.0 0. 1. + 698. 1. 5. 22.0 0.5 0.0 2. 12.0 20.0 2. 2. 0.0 0. 1. + 699. 1. 5. 32.0 6.0 0.0 2. 14.0 20.0 3. 4. 0.0 0. 1. + 704. 1. 5. 42.0 23.0 4.0 2. 16.0 40.0 5. 5. 0.0 0. 1. + 708. 1. 5. 42.0 16.5 1.0 3. 17.0 14.0 4. 5. 0.0 0. 1. + 709. 1. 5. 27.0 16.5 4.0 2. 12.0 11.5 3. 4. 0.0 0. 1. + 711. 1. 5. 27.0 6.0 2.0 1. 14.0 20.0 3. 4. 0.0 0. 1. + 718. 1. 5. 37.0 23.0 3.0 2. 14.0 11.5 3. 6. 0.0 0. 1. + 722. 1. 3. 27.0 6.0 2.0 2. 12.0 11.5 3. 5. 0.0 0. 1. + 724. 1. 5. 32.0 6.0 0.0 1. 16.0 40.0 5. 5. 0.0 0. 1. + 730. 1. 4. 32.0 9.0 0.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 731. 1. 4. 27.0 9.0 5.5 1. 12.0 9.0 4. 3. 0.0 0. 1. + 741. 1. 4. 22.0 2.5 1.0 1. 12.0 14.0 5. 4. 0.0 0. 1. + 742. 1. 4. 22.0 6.0 1.0 2. 12.0 11.5 2. 2. 0.0 0. 1. + 743. 1. 5. 42.0 23.0 3.0 3. 12.0 20.0 3. 4. 0.0 0. 1. + 747. 1. 4. 32.0 6.0 2.0 3. 14.0 14.0 4. 4. 0.0 0. 1. + 754. 1. 4. 22.0 2.5 0.0 1. 16.0 6.5 3. 4. 0.0 0. 1. + 761. 1. 4. 42.0 23.0 2.0 3. 14.0 20.0 3. 5. 0.0 0. 1. + 765. 1. 4. 37.0 16.5 2.0 3. 14.0 40.0 3. 5. 0.0 0. 1. + 767. 1. 5. 27.0 2.5 0.0 3. 14.0 20.0 3. 4. 0.0 0. 1. + 768. 1. 2. 42.0 23.0 5.5 1. 20.0 40.0 2. 5. 0.0 0. 1. + 770. 1. 4. 27.0 2.5 1.0 2. 14.0 20.0 5. 5. 0.0 0. 1. + 782. 1. 4. 27.0 16.5 4.0 2. 17.0 20.0 4. 4. 0.0 0. 1. + 792. 1. 4. 22.0 2.5 0.0 1. 14.0 14.0 3. 4. 0.0 0. 1. + 795. 1. 5. 32.0 9.0 2.0 2. 16.0 14.0 4. 4. 0.0 0. 1. + 797. 1. 4. 22.0 2.5 0.0 3. 14.0 20.0 4. 5. 0.0 0. 1. + 798. 1. 5. 42.0 23.0 5.5 3. 16.0 20.0 2. 5. 0.0 0. 1. + 799. 1. 5. 27.0 2.5 0.0 4. 14.0 20.0 3. 5. 0.0 0. 1. + 804. 1. 5. 27.0 2.5 1.0 1. 14.0 20.0 4. 6. 0.0 0. 1. + 810. 1. 4. 22.0 0.5 0.0 3. 16.0 9.0 5. 1. 0.0 0. 1. + 811. 1. 4. 22.0 2.5 0.0 3. 14.0 11.5 3. 4. 0.0 0. 1. + 815. 1. 5. 22.0 0.5 0.0 1. 16.0 11.5 3. 6. 0.0 0. 1. + 823. 1. 3. 42.0 23.0 3.0 2. 16.0 20.0 4. 2. 0.0 0. 1. + 828. 1. 5. 27.0 2.5 1.0 2. 12.0 9.0 3. 2. 0.0 0. 1. + 829. 1. 5. 22.0 2.5 0.0 3. 14.0 20.0 3. 6. 0.0 0. 1. + 835. 1. 4. 27.0 6.0 2.0 3. 16.0 9.0 4. 4. 0.0 0. 1. + 842. 1. 3. 22.0 6.0 3.0 2. 14.0 6.5 3. 2. 0.0 0. 1. + 849. 1. 4. 22.0 2.5 0.0 4. 12.0 20.0 3. 2. 0.0 0. 1. + 852. 1. 5. 42.0 23.0 2.0 3. 12.0 6.5 3. 4. 0.0 0. 1. + 853. 1. 4. 27.0 2.5 0.0 2. 16.0 11.5 4. 5. 0.0 0. 1. + 862. 1. 5. 27.0 6.0 0.0 1. 12.0 20.0 3. 4. 0.0 0. 1. + 864. 1. 5. 22.0 0.5 0.0 2. 14.0 6.5 2. 4. 0.0 0. 1. + 867. 1. 5. 32.0 16.5 2.0 3. 12.0 14.0 3. 4. 0.0 0. 1. + 868. 1. 4. 27.0 2.5 0.0 2. 12.0 20.0 3. 5. 0.0 0. 1. + 871. 1. 5. 22.0 2.5 0.0 2. 17.0 20.0 4. 4. 0.0 0. 1. + 878. 1. 5. 32.0 9.0 2.0 2. 16.0 20.0 4. 5. 0.0 0. 1. + 879. 1. 5. 17.5 2.5 0.0 3. 12.0 6.5 3. 2. 0.0 0. 1. + 886. 1. 4. 22.0 2.5 0.0 3. 12.0 11.5 3. 2. 0.0 0. 1. + 890. 1. 5. 22.0 2.5 0.0 2. 16.0 14.0 4. 5. 0.0 0. 1. + 893. 1. 5. 32.0 9.0 2.0 3. 17.0 20.0 4. 2. 0.0 0. 1. + 897. 1. 5. 22.0 0.5 0.0 2. 16.0 14.0 4. 4. 0.0 0. 1. + 906. 1. 5. 37.0 16.5 3.0 4. 14.0 20.0 4. 2. 0.0 0. 1. + 912. 1. 5. 27.0 2.5 0.0 2. 16.0 14.0 2. 4. 0.0 0. 1. + 913. 1. 5. 37.0 13.0 3.0 3. 20.0 20.0 4. 4. 0.0 0. 1. + 914. 1. 4. 32.0 6.0 1.0 2. 14.0 20.0 5. 6. 0.0 0. 1. + 916. 1. 5. 27.0 6.0 0.0 1. 12.0 20.0 5. 5. 0.0 0. 1. + 918. 1. 5. 32.0 2.5 0.0 3. 12.0 20.0 3. 5. 0.0 0. 1. + 921. 1. 5. 32.0 16.5 2.0 3. 12.0 14.0 3. 3. 0.0 0. 1. + 926. 1. 4. 27.0 2.5 1.0 2. 17.0 20.0 4. 5. 0.0 0. 1. + 930. 1. 4. 27.0 6.0 1.0 3. 17.0 9.0 4. 4. 0.0 0. 1. + 931. 1. 2. 42.0 23.0 4.0 3. 9.0 11.5 2. 2. 0.0 0. 1. + 932. 1. 4. 22.0 2.5 0.0 2. 14.0 9.0 5. 4. 0.0 0. 1. + 936. 1. 4. 27.0 2.5 0.0 1. 16.0 4.0 4. 4. 0.0 0. 1. + 940. 1. 5. 27.0 6.0 0.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 941. 1. 3. 22.0 2.5 0.0 2. 16.0 20.0 3. 5. 0.0 0. 1. + 950. 1. 4. 22.0 2.5 0.0 2. 12.0 20.0 3. 5. 0.0 0. 1. + 951. 1. 4. 22.0 2.5 0.0 3. 17.0 20.0 5. 4. 0.0 0. 1. + 959. 1. 5. 42.0 23.0 5.5 4. 12.0 20.0 3. 5. 0.0 0. 1. + 962. 1. 4. 32.0 13.0 3.0 3. 12.0 14.0 3. 5. 0.0 0. 1. + 963. 1. 5. 22.0 2.5 0.0 3. 14.0 14.0 3. 5. 0.0 0. 1. + 965. 1. 5. 22.0 2.5 0.0 2. 16.0 11.5 3. 5. 0.0 0. 1. + 966. 1. 4. 27.0 2.5 1.0 2. 16.0 11.5 4. 5. 0.0 0. 1. + 973. 1. 5. 42.0 23.0 4.0 1. 17.0 40.0 3. 5. 0.0 0. 1. + 974. 1. 4. 32.0 13.0 3.0 3. 12.0 20.0 3. 5. 0.0 0. 1. + 975. 1. 3. 17.5 2.5 0.0 1. 16.0 14.0 4. 2. 0.0 0. 1. + 982. 1. 4. 42.0 23.0 3.0 3. 16.0 20.0 4. 2. 0.0 0. 1. + 983. 1. 5. 27.0 9.0 2.0 3. 12.0 14.0 3. 5. 0.0 0. 1. + 984. 1. 5. 22.0 2.5 1.0 3. 14.0 14.0 3. 4. 0.0 0. 1. + 986. 1. 4. 27.0 6.0 2.0 2. 14.0 14.0 3. 4. 0.0 0. 1. + 987. 1. 5. 32.0 9.0 0.0 3. 17.0 40.0 4. 5. 0.0 0. 1. + 996. 1. 5. 22.0 2.5 0.0 4. 12.0 20.0 3. 4. 0.0 0. 1. + 997. 1. 5. 37.0 16.5 3.0 3. 12.0 20.0 3. 5. 0.0 0. 1. + 1005. 1. 4. 22.0 6.0 2.0 3. 14.0 11.5 4. 2. 0.0 0. 1. + 1014. 1. 5. 27.0 2.5 0.0 4. 16.0 20.0 4. 2. 0.0 0. 1. + 1017. 1. 5. 37.0 13.0 2.0 2. 20.0 20.0 4. 5. 0.0 0. 1. + 1018. 1. 5. 27.0 13.0 2.0 2. 16.0 14.0 4. 4. 0.0 0. 1. + 1019. 1. 5. 22.0 2.5 0.0 3. 12.0 11.5 2. 5. 0.0 0. 1. + 1022. 1. 4. 22.0 6.0 1.0 2. 12.0 14.0 3. 5. 0.0 0. 1. + 1023. 1. 5. 27.0 2.5 0.0 2. 16.0 20.0 4. 4. 0.0 0. 1. + 1025. 1. 3. 22.0 2.5 1.0 2. 12.0 6.5 2. 5. 0.0 0. 1. + 1027. 1. 5. 22.0 0.5 0.0 3. 14.0 20.0 3. 5. 0.0 0. 1. + 1031. 1. 5. 17.5 2.5 0.0 1. 14.0 6.5 3. 4. 0.0 0. 1. + 1032. 1. 5. 22.0 2.5 0.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 1034. 1. 4. 22.0 0.5 0.0 3. 12.0 9.0 2. 5. 0.0 0. 1. + 1044. 1. 5. 27.0 2.5 0.0 1. 16.0 40.0 4. 5. 0.0 0. 1. + 1046. 1. 4. 22.0 2.5 0.0 3. 12.0 20.0 3. 3. 0.0 0. 1. + 1053. 1. 4. 27.0 6.0 0.0 1. 12.0 20.0 3. 2. 0.0 0. 1. + 1065. 1. 5. 22.0 2.5 2.0 1. 14.0 11.5 3. 4. 0.0 0. 1. + 1070. 1. 2. 27.0 6.0 1.0 2. 12.0 9.0 2. 2. 0.0 0. 1. + 1079. 1. 5. 22.0 0.5 0.0 2. 16.0 40.0 4. 5. 0.0 0. 1. + 1082. 1. 5. 22.0 6.0 0.0 3. 14.0 20.0 3. 4. 0.0 0. 1. + 1085. 1. 5. 27.0 2.5 0.0 3. 12.0 11.5 4. 2. 0.0 0. 1. + 1086. 1. 3. 32.0 16.5 4.0 3. 14.0 20.0 4. 4. 0.0 0. 1. + 1090. 1. 5. 27.0 2.5 0.0 1. 20.0 9.0 4. 4. 0.0 0. 1. + 1098. 1. 4. 27.0 2.5 0.0 2. 16.0 40.0 5. 6. 0.0 0. 1. + 1103. 1. 5. 22.0 2.5 0.0 4. 16.0 20.0 4. 5. 0.0 0. 1. + 1107. 1. 5. 22.0 2.5 0.0 3. 17.0 20.0 4. 4. 0.0 0. 1. + 1113. 1. 4. 22.0 2.5 0.0 2. 16.0 20.0 3. 2. 0.0 0. 1. + 1126. 1. 4. 37.0 16.5 3.0 2. 12.0 40.0 5. 4. 0.0 0. 1. + 1134. 1. 5. 27.0 6.0 2.0 4. 17.0 14.0 4. 5. 0.0 0. 1. + 1135. 1. 5. 22.0 2.5 1.0 2. 12.0 6.5 3. 2. 0.0 0. 1. + 1136. 1. 5. 32.0 16.5 4.0 3. 12.0 40.0 3. 3. 0.0 0. 1. + 1141. 1. 5. 22.0 0.5 0.0 4. 16.0 11.5 3. 2. 0.0 0. 1. + 1150. 1. 3. 27.0 9.0 1.0 2. 14.0 20.0 3. 4. 0.0 0. 1. + 1157. 1. 5. 37.0 23.0 3.0 4. 12.0 20.0 3. 2. 0.0 0. 1. + 1161. 1. 5. 22.0 2.5 0.0 3. 14.0 9.0 3. 5. 0.0 0. 1. + 1162. 1. 5. 22.0 2.5 0.0 3. 14.0 20.0 3. 4. 0.0 0. 1. + 1163. 1. 5. 22.0 2.5 0.0 3. 12.0 14.0 3. 4. 0.0 0. 1. + 1177. 1. 4. 32.0 13.0 1.0 3. 12.0 20.0 5. 5. 0.0 0. 1. + 1183. 1. 5. 32.0 2.5 1.0 3. 12.0 11.5 3. 4. 0.0 0. 1. + 1184. 1. 4. 22.0 2.5 0.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 1185. 1. 4. 22.0 6.0 1.0 2. 12.0 11.5 3. 5. 0.0 0. 1. + 1186. 1. 5. 17.5 2.5 1.0 3. 12.0 6.5 2. 2. 0.0 0. 1. + 1198. 1. 5. 22.0 2.5 0.0 2. 14.0 20.0 2. 4. 0.0 0. 1. + 1200. 1. 4. 27.0 0.5 0.0 3. 16.0 20.0 3. 6. 0.0 0. 1. + 1204. 1. 5. 22.0 2.5 0.0 2. 12.0 11.5 3. 2. 0.0 0. 1. + 1206. 1. 5. 22.0 2.5 0.0 1. 17.0 20.0 4. 4. 0.0 0. 1. + 1210. 1. 5. 32.0 2.5 0.0 3. 14.0 40.0 3. 4. 0.0 0. 1. + 1221. 1. 5. 27.0 2.5 0.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 1225. 1. 4. 27.0 6.0 1.0 2. 12.0 6.5 3. 4. 0.0 0. 1. + 1227. 1. 3. 22.0 2.5 0.0 2. 14.0 20.0 2. 5. 0.0 0. 1. + 1231. 1. 5. 27.0 6.0 2.0 3. 12.0 11.5 4. 2. 0.0 0. 1. + 1237. 1. 4. 22.0 0.5 0.0 1. 12.0 11.5 2. 2. 0.0 0. 1. + 1239. 1. 5. 42.0 23.0 3.0 1. 20.0 40.0 4. 6. 0.0 0. 1. + 1245. 1. 3. 22.0 2.5 1.0 2. 12.0 6.5 3. 4. 0.0 0. 1. + 1257. 1. 5. 27.0 6.0 0.0 2. 16.0 40.0 5. 5. 0.0 0. 1. + 1258. 1. 4. 22.0 2.5 0.0 3. 12.0 6.5 2. 5. 0.0 0. 1. + 1264. 1. 5. 22.0 6.0 0.0 3. 14.0 14.0 3. 4. 0.0 0. 1. + 1270. 1. 4. 22.0 2.5 0.0 3. 14.0 11.5 5. 4. 0.0 0. 1. + 1272. 1. 5. 17.5 2.5 0.0 2. 12.0 9.0 2. 5. 0.0 0. 1. + 1276. 1. 4. 27.0 2.5 0.0 1. 17.0 9.0 2. 6. 0.0 0. 1. + 1287. 1. 3. 42.0 23.0 5.5 3. 14.0 20.0 3. 5. 0.0 0. 1. + 1299. 1. 4. 32.0 6.0 2.0 1. 16.0 14.0 4. 4. 0.0 0. 1. + 1303. 1. 5. 22.0 6.0 2.0 2. 14.0 6.5 3. 2. 0.0 0. 1. + 1305. 1. 5. 22.0 6.0 3.0 3. 12.0 6.5 3. 4. 0.0 0. 1. + 1310. 1. 5. 22.0 2.5 0.0 2. 12.0 20.0 2. 2. 0.0 0. 1. + 1312. 1. 4. 42.0 23.0 2.0 3. 16.0 40.0 4. 5. 0.0 0. 1. + 1322. 1. 4. 27.0 2.5 2.0 3. 20.0 20.0 4. 5. 0.0 0. 1. + 1324. 1. 4. 27.0 2.5 1.0 2. 14.0 9.0 3. 5. 0.0 0. 1. + 1326. 1. 4. 32.0 13.0 2.0 4. 14.0 11.5 4. 3. 0.0 0. 1. + 1327. 1. 5. 22.0 0.5 0.0 3. 14.0 11.5 3. 5. 0.0 0. 1. + 1335. 1. 3. 42.0 23.0 2.0 2. 12.0 14.0 3. 5. 0.0 0. 1. + 1340. 1. 5. 42.0 23.0 3.0 4. 14.0 20.0 3. 5. 0.0 0. 1. + 1343. 1. 5. 22.0 0.5 0.0 2. 20.0 14.0 4. 4. 0.0 0. 1. + 1344. 1. 5. 22.0 2.5 0.0 1. 14.0 14.0 3. 3. 0.0 0. 1. + 1347. 1. 4. 27.0 6.0 1.0 1. 20.0 20.0 4. 2. 0.0 0. 1. + 1348. 1. 5. 32.0 9.0 2.0 3. 14.0 11.5 4. 1. 0.0 0. 1. + 1357. 1. 4. 17.5 0.5 0.0 1. 12.0 14.0 3. 4. 0.0 0. 1. + 1366. 1. 5. 42.0 6.0 0.0 2. 17.0 40.0 4. 5. 0.0 0. 1. + 1371. 1. 5. 42.0 23.0 2.0 2. 12.0 40.0 3. 6. 0.0 0. 1. + 1373. 1. 4. 27.0 13.0 1.0 2. 12.0 14.0 5. 2. 0.0 0. 1. + 1375. 1. 4. 27.0 2.5 0.0 1. 14.0 20.0 3. 4. 0.0 0. 1. + 1376. 1. 3. 27.0 6.0 2.0 2. 12.0 11.5 2. 2. 0.0 0. 1. + 1377. 1. 5. 22.0 6.0 0.0 1. 14.0 40.0 5. 5. 0.0 0. 1. + 1380. 1. 4. 37.0 13.0 2.0 3. 20.0 20.0 4. 4. 0.0 0. 1. + 1382. 1. 4. 27.0 2.5 0.0 1. 16.0 14.0 4. 1. 0.0 0. 1. + 1385. 1. 5. 27.0 9.0 2.0 3. 17.0 20.0 4. 4. 0.0 0. 1. + 1386. 1. 4. 32.0 2.5 1.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 1390. 1. 4. 27.0 2.5 0.0 4. 14.0 20.0 3. 6. 0.0 0. 1. + 1397. 1. 5. 27.0 6.0 3.0 1. 16.0 20.0 3. 5. 0.0 0. 1. + 1401. 1. 5. 32.0 16.5 4.0 3. 14.0 11.5 5. 2. 0.0 0. 1. + 1405. 1. 5. 17.5 0.5 0.0 3. 12.0 20.0 3. 2. 0.0 0. 1. + 1409. 1. 4. 42.0 23.0 4.0 2. 12.0 11.5 2. 5. 0.0 0. 1. + 1417. 1. 5. 27.0 6.0 0.0 4. 16.0 20.0 5. 5. 0.0 0. 1. + 1418. 1. 4. 27.0 2.5 0.0 1. 16.0 14.0 4. 5. 0.0 0. 1. + 1423. 1. 5. 37.0 16.5 2.0 1. 16.0 40.0 4. 5. 0.0 0. 1. + 1429. 1. 5. 22.0 2.5 1.0 3. 17.0 11.5 4. 2. 0.0 0. 1. + 1430. 1. 4. 17.5 2.5 0.0 3. 12.0 14.0 3. 4. 0.0 0. 1. + 1437. 1. 3. 27.0 6.0 2.0 3. 14.0 14.0 3. 5. 0.0 0. 1. + 1440. 1. 3. 37.0 16.5 3.0 3. 12.0 20.0 4. 5. 0.0 0. 1. + 1451. 1. 4. 27.0 2.5 0.0 4. 14.0 14.0 3. 4. 0.0 0. 1. + 1454. 1. 4. 37.0 13.0 2.0 2. 12.0 11.5 2. 4. 0.0 0. 1. + 1456. 1. 4. 32.0 9.0 1.0 3. 17.0 14.0 4. 4. 0.0 0. 1. + 1457. 1. 5. 27.0 6.0 1.0 2. 16.0 11.5 2. 6. 0.0 0. 1. + 1461. 1. 4. 22.0 2.5 1.0 3. 12.0 9.0 2. 4. 0.0 0. 1. + 1468. 1. 2. 42.0 23.0 5.5 1. 12.0 20.0 5. 5. 0.0 0. 1. + 1472. 1. 5. 42.0 16.5 5.5 3. 17.0 40.0 4. 5. 0.0 0. 1. + 1474. 1. 5. 42.0 23.0 4.0 3. 12.0 40.0 5. 6. 0.0 0. 1. + 1475. 1. 5. 22.0 0.5 0.0 3. 12.0 20.0 3. 5. 0.0 0. 1. + 1479. 1. 5. 22.0 2.5 0.0 1. 16.0 20.0 5. 5. 0.0 0. 1. + 1481. 1. 3. 32.0 13.0 3.0 4. 14.0 20.0 3. 5. 0.0 0. 1. + 1485. 1. 3. 32.0 13.0 3.0 3. 16.0 20.0 4. 2. 0.0 0. 1. + 1490. 1. 5. 32.0 9.0 2.0 3. 16.0 40.0 4. 6. 0.0 0. 1. + 1493. 1. 5. 27.0 0.5 0.0 3. 12.0 20.0 3. 5. 0.0 0. 1. + 1497. 1. 5. 32.0 16.5 3.0 4. 14.0 20.0 2. 4. 0.0 0. 1. + 1500. 1. 3. 22.0 2.5 0.0 2. 12.0 20.0 3. 2. 0.0 0. 1. + 1502. 1. 5. 27.0 13.0 3.0 3. 12.0 11.5 2. 4. 0.0 0. 1. + 1507. 1. 4. 27.0 2.5 0.0 3. 14.0 14.0 3. 4. 0.0 0. 1. + 1511. 1. 4. 42.0 13.0 0.0 3. 20.0 20.0 4. 4. 0.0 0. 1. + 1524. 1. 5. 32.0 13.0 3.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 1525. 1. 5. 27.0 13.0 3.0 3. 12.0 11.5 3. 5. 0.0 0. 1. + 1528. 1. 4. 32.0 13.0 3.0 4. 14.0 14.0 3. 4. 0.0 0. 1. + 1533. 1. 4. 27.0 0.5 1.0 3. 17.0 11.5 4. 4. 0.0 0. 1. + 1541. 1. 5. 27.0 6.0 0.0 2. 12.0 11.5 3. 5. 0.0 0. 1. + 1542. 1. 3. 27.0 6.0 2.0 2. 14.0 20.0 4. 3. 0.0 0. 1. + 1544. 1. 3. 22.0 2.5 0.0 2. 16.0 20.0 5. 4. 0.0 0. 1. + 1546. 1. 3. 32.0 0.5 0.0 3. 20.0 40.0 6. 5. 0.0 0. 1. + 1547. 1. 5. 42.0 23.0 4.0 4. 20.0 40.0 4. 4. 0.0 0. 1. + 1550. 1. 3. 22.0 0.5 0.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 1557. 1. 5. 27.0 9.0 2.0 4. 16.0 20.0 2. 5. 0.0 0. 1. + 1566. 1. 5. 22.0 2.5 0.0 3. 16.0 11.5 4. 4. 0.0 0. 1. + 1574. 1. 4. 42.0 16.5 2.0 3. 12.0 14.0 2. 2. 0.0 0. 1. + 1584. 1. 4. 42.0 16.5 3.0 2. 20.0 40.0 4. 4. 0.0 0. 1. + 1586. 1. 5. 42.0 23.0 4.0 2. 20.0 40.0 6. 5. 0.0 0. 1. + 1588. 1. 4. 32.0 16.5 3.0 2. 12.0 20.0 3. 5. 0.0 0. 1. + 1589. 1. 4. 32.0 6.0 1.0 1. 17.0 20.0 4. 4. 0.0 0. 1. + 1592. 1. 2. 32.0 16.5 2.0 4. 12.0 11.5 3. 2. 0.0 0. 1. + 1593. 1. 5. 32.0 9.0 2.0 4. 20.0 20.0 4. 6. 0.0 0. 1. + 1594. 1. 5. 22.0 2.5 0.0 2. 16.0 6.5 3. 2. 0.0 0. 1. + 1597. 1. 5. 27.0 2.5 1.0 1. 16.0 14.0 4. 4. 0.0 0. 1. + 1606. 1. 4. 27.0 9.0 1.0 3. 12.0 20.0 3. 4. 0.0 0. 1. + 1607. 1. 2. 32.0 16.5 3.0 4. 12.0 11.5 3. 5. 0.0 0. 1. + 1608. 1. 4. 32.0 13.0 2.0 1. 20.0 20.0 4. 6. 0.0 0. 1. + 1626. 1. 5. 27.0 2.5 0.0 2. 16.0 40.0 4. 5. 0.0 0. 1. + 1632. 1. 4. 37.0 13.0 2.0 4. 14.0 20.0 4. 5. 0.0 0. 1. + 1633. 1. 4. 22.0 0.5 0.0 2. 16.0 14.0 4. 4. 0.0 0. 1. + 1640. 1. 4. 27.0 9.0 2.0 2. 14.0 14.0 4. 4. 0.0 0. 1. + 1641. 1. 5. 27.0 6.0 0.0 1. 16.0 20.0 5. 5. 0.0 0. 1. + 1646. 1. 4. 32.0 13.0 2.0 3. 14.0 14.0 4. 5. 0.0 0. 1. + 1651. 1. 2. 42.0 23.0 2.0 2. 12.0 20.0 3. 5. 0.0 0. 1. + 1653. 1. 4. 22.0 0.5 0.0 2. 14.0 20.0 3. 2. 0.0 0. 1. + 1657. 1. 5. 42.0 23.0 2.0 3. 12.0 40.0 3. 5. 0.0 0. 1. + 1659. 1. 5. 22.0 2.5 0.0 3. 16.0 20.0 4. 6. 0.0 0. 1. + 1664. 1. 5. 32.0 13.0 0.0 3. 17.0 20.0 4. 4. 0.0 0. 1. + 1665. 1. 5. 22.0 0.5 0.0 2. 16.0 9.0 4. 2. 0.0 0. 1. + 1669. 1. 4. 32.0 13.0 0.0 1. 12.0 40.0 5. 5. 0.0 0. 1. + 1670. 1. 4. 37.0 9.0 0.0 1. 16.0 20.0 3. 5. 0.0 0. 1. + 1671. 1. 5. 37.0 16.5 5.5 3. 14.0 20.0 4. 4. 0.0 0. 1. + 1687. 1. 4. 27.0 6.0 0.0 3. 14.0 40.0 5. 6. 0.0 0. 1. + 1691. 1. 5. 42.0 23.0 1.0 1. 17.0 20.0 3. 2. 0.0 0. 1. + 1692. 1. 4. 22.0 2.5 0.0 1. 17.0 20.0 1. 3. 0.0 0. 1. + 1693. 1. 4. 27.0 9.0 0.0 2. 12.0 40.0 3. 5. 0.0 0. 1. + 1696. 1. 4. 32.0 9.0 1.0 3. 14.0 11.5 3. 6. 0.0 0. 1. + 1697. 1. 1. 22.0 2.5 1.0 3. 14.0 14.0 3. 4. 0.0 0. 1. + 1698. 1. 4. 27.0 2.5 1.0 3. 16.0 20.0 4. 5. 0.0 0. 1. + 1699. 1. 4. 27.0 6.0 2.0 3. 16.0 20.0 4. 2. 0.0 0. 1. + 1700. 1. 2. 27.0 6.0 1.0 2. 14.0 11.5 3. 4. 0.0 0. 1. + 1702. 1. 2. 37.0 13.0 1.0 1. 12.0 9.0 2. 3. 0.0 0. 1. + 1705. 1. 5. 22.0 2.5 0.0 4. 14.0 20.0 5. 5. 0.0 0. 1. + 1706. 1. 5. 22.0 2.5 0.0 2. 17.0 20.0 4. 2. 0.0 0. 1. + 1715. 1. 4. 27.0 6.0 1.0 2. 14.0 9.0 4. 2. 0.0 0. 1. + 1716. 1. 4. 22.0 6.0 1.0 4. 14.0 9.0 3. 4. 0.0 0. 1. + 1719. 1. 4. 27.0 9.0 2.0 3. 12.0 11.5 4. 5. 0.0 0. 1. + 1728. 1. 4. 32.0 13.0 3.0 1. 16.0 40.0 4. 6. 0.0 0. 1. + 1733. 1. 5. 32.0 16.5 1.0 3. 12.0 14.0 2. 2. 0.0 0. 1. + 1738. 1. 4. 42.0 23.0 4.0 4. 14.0 11.5 5. 5. 0.0 0. 1. + 1748. 1. 5. 32.0 9.0 4.0 3. 14.0 14.0 4. 6. 0.0 0. 1. + 1751. 1. 3. 22.0 2.5 1.0 2. 14.0 20.0 3. 3. 0.0 0. 1. + 1752. 1. 5. 37.0 16.5 4.0 3. 17.0 40.0 5. 6. 0.0 0. 1. + 1754. 1. 5. 22.0 2.5 0.0 4. 12.0 20.0 3. 4. 0.0 0. 1. + 1758. 1. 5. 32.0 13.0 2.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 1762. 1. 3. 42.0 16.5 3.0 2. 12.0 11.5 3. 4. 0.0 0. 1. + 1763. 1. 4. 37.0 13.0 3.0 3. 12.0 11.5 2. 2. 0.0 0. 1. + 1764. 1. 4. 22.0 2.5 0.0 3. 14.0 14.0 3. 6. 0.0 0. 1. + 1766. 1. 5. 42.0 23.0 5.5 4. 17.0 40.0 4. 6. 0.0 0. 1. + 1771. 1. 5. 22.0 0.5 2.0 1. 12.0 11.5 2. 4. 0.0 0. 1. + 1775. 1. 5. 37.0 16.5 3.0 1. 16.0 20.0 3. 4. 0.0 0. 1. + 1776. 1. 5. 32.0 9.0 3.0 3. 14.0 20.0 2. 5. 0.0 0. 1. + 1778. 1. 5. 27.0 6.0 1.0 3. 20.0 20.0 4. 6. 0.0 0. 1. + 1781. 1. 5. 27.0 6.0 2.0 3. 17.0 11.5 4. 1. 0.0 0. 1. + 1783. 1. 5. 32.0 6.0 1.0 4. 16.0 11.5 4. 6. 0.0 0. 1. + 1784. 1. 4. 27.0 2.5 0.0 3. 14.0 20.0 3. 5. 0.0 0. 1. + 1785. 1. 5. 22.0 2.5 0.0 1. 12.0 14.0 3. 3. 0.0 0. 1. + 1787. 1. 5. 22.0 2.5 0.0 1. 12.0 20.0 3. 3. 0.0 0. 1. + 1788. 1. 3. 42.0 23.0 4.0 3. 14.0 40.0 3. 5. 0.0 0. 1. + 1794. 1. 5. 27.0 6.0 1.0 1. 16.0 11.5 5. 2. 0.0 0. 1. + 1798. 1. 3. 27.0 6.0 0.0 2. 17.0 40.0 4. 6. 0.0 0. 1. + 1801. 1. 5. 27.0 6.0 2.0 3. 16.0 20.0 4. 5. 0.0 0. 1. + 1803. 1. 5. 27.0 6.0 0.0 3. 12.0 20.0 3. 5. 0.0 0. 1. + 1806. 1. 4. 27.0 2.5 0.0 1. 12.0 20.0 3. 4. 0.0 0. 1. + 1808. 1. 5. 32.0 9.0 2.0 1. 14.0 14.0 5. 5. 0.0 0. 1. + 1809. 1. 4. 22.0 2.5 0.0 2. 14.0 14.0 3. 5. 0.0 0. 1. + 1810. 1. 4. 22.0 0.5 0.0 3. 14.0 11.5 3. 3. 0.0 0. 1. + 1814. 1. 5. 32.0 6.0 2.0 4. 12.0 14.0 3. 5. 0.0 0. 1. + 1816. 1. 5. 42.0 23.0 5.5 2. 12.0 20.0 2. 2. 0.0 0. 1. + 1817. 1. 5. 22.0 2.5 0.0 4. 16.0 6.5 4. 4. 0.0 0. 1. + 1818. 1. 4. 22.0 2.5 1.0 3. 14.0 11.5 5. 1. 0.0 0. 1. + 1824. 1. 5. 32.0 6.0 0.0 3. 16.0 14.0 4. 4. 0.0 0. 1. + 1825. 1. 4. 27.0 9.0 2.0 3. 12.0 20.0 3. 4. 0.0 0. 1. + 1828. 1. 4. 42.0 23.0 4.0 4. 16.0 14.0 4. 4. 0.0 0. 1. + 1833. 1. 4. 27.0 6.0 0.0 2. 16.0 20.0 4. 4. 0.0 0. 1. + 1835. 1. 4. 22.0 2.5 0.0 2. 14.0 20.0 3. 4. 0.0 0. 1. + 1840. 1. 5. 27.0 0.5 0.0 3. 17.0 20.0 4. 5. 0.0 0. 1. + 1841. 1. 2. 27.0 2.5 0.0 3. 14.0 11.5 4. 1. 0.0 0. 1. + 1860. 1. 4. 27.0 6.0 0.0 2. 14.0 20.0 3. 6. 0.0 0. 1. + 1866. 1. 5. 27.0 2.5 0.0 2. 17.0 20.0 3. 3. 0.0 0. 1. + 1870. 1. 5. 32.0 13.0 2.0 2. 14.0 40.0 2. 4. 0.0 0. 1. + 1875. 1. 5. 22.0 2.5 0.0 4. 12.0 6.5 2. 4. 0.0 0. 1. + 1876. 1. 4. 42.0 16.5 2.0 2. 12.0 20.0 3. 2. 0.0 0. 1. + 1879. 1. 5. 27.0 13.0 2.0 3. 12.0 11.5 3. 5. 0.0 0. 1. + 1881. 1. 5. 22.0 2.5 1.0 2. 12.0 11.5 2. 2. 0.0 0. 1. + 1887. 1. 5. 37.0 16.5 4.0 3. 12.0 40.0 2. 6. 0.0 0. 1. + 1893. 1. 5. 27.0 2.5 0.0 2. 16.0 20.0 3. 4. 0.0 0. 1. + 1902. 1. 4. 22.0 2.5 0.0 2. 14.0 9.0 3. 4. 0.0 0. 1. + 1903. 1. 5. 22.0 2.5 0.0 3. 12.0 14.0 2. 5. 0.0 0. 1. + 1905. 1. 5. 27.0 2.5 0.0 2. 17.0 20.0 4. 2. 0.0 0. 1. + 1908. 1. 4. 27.0 2.5 0.0 2. 17.0 14.0 4. 4. 0.0 0. 1. + 1913. 1. 4. 42.0 23.0 2.0 4. 12.0 20.0 4. 2. 0.0 0. 1. + 1915. 1. 5. 27.0 2.5 0.0 2. 16.0 20.0 3. 5. 0.0 0. 1. + 1919. 1. 4. 37.0 13.0 1.0 3. 12.0 40.0 2. 2. 0.0 0. 1. + 1927. 1. 4. 27.0 6.0 2.0 3. 14.0 20.0 3. 5. 0.0 0. 1. + 1929. 1. 5. 27.0 6.0 1.0 3. 12.0 14.0 3. 4. 0.0 0. 1. + 1932. 1. 3. 42.0 23.0 5.5 2. 14.0 40.0 4. 5. 0.0 0. 1. + 1943. 1. 5. 27.0 6.0 0.0 3. 20.0 40.0 4. 4. 0.0 0. 1. + 1944. 1. 5. 22.0 2.5 0.0 2. 14.0 20.0 3. 2. 0.0 0. 1. + 1945. 1. 4. 27.0 2.5 0.0 3. 12.0 20.0 3. 3. 0.0 0. 1. + 1948. 1. 5. 22.0 2.5 0.0 3. 16.0 20.0 3. 5. 0.0 0. 1. + 1949. 1. 2. 32.0 2.5 1.0 2. 12.0 14.0 5. 2. 0.0 0. 1. + 1955. 1. 4. 27.0 2.5 1.0 2. 14.0 14.0 4. 4. 0.0 0. 1. + 1956. 1. 4. 27.0 0.5 0.0 3. 14.0 14.0 3. 4. 0.0 0. 1. + 1959. 1. 4. 32.0 9.0 1.0 3. 17.0 14.0 4. 4. 0.0 0. 1. + 1962. 1. 4. 27.0 9.0 2.0 2. 17.0 20.0 4. 5. 0.0 0. 1. + 1963. 1. 5. 22.0 2.5 0.0 4. 14.0 6.5 4. 4. 0.0 0. 1. + 1985. 1. 4. 22.0 2.5 0.0 2. 12.0 14.0 2. 2. 0.0 0. 1. + 1996. 1. 5. 27.0 6.0 2.0 2. 16.0 20.0 4. 1. 0.0 0. 1. + 1997. 1. 4. 27.0 6.0 0.0 2. 12.0 14.0 3. 4. 0.0 0. 1. + 1999. 1. 4. 32.0 13.0 2.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 2009. 1. 4. 37.0 16.5 2.0 1. 20.0 40.0 4. 6. 0.0 0. 1. + 2013. 1. 4. 42.0 23.0 3.0 2. 12.0 11.5 3. 5. 0.0 0. 1. + 2017. 1. 1. 42.0 23.0 5.5 3. 14.0 20.0 2. 5. 0.0 0. 1. + 2018. 1. 4. 27.0 2.5 0.0 1. 12.0 20.0 3. 2. 0.0 0. 1. + 2029. 1. 4. 27.0 6.0 1.0 3. 14.0 11.5 2. 5. 0.0 0. 1. + 2030. 1. 3. 42.0 16.5 5.5 2. 14.0 40.0 3. 6. 0.0 0. 1. + 2033. 1. 5. 22.0 2.5 0.0 2. 16.0 6.5 3. 1. 0.0 0. 1. + 2040. 1. 4. 27.0 2.5 1.0 2. 12.0 14.0 3. 2. 0.0 0. 1. + 2043. 1. 5. 37.0 16.5 4.0 3. 16.0 40.0 4. 5. 0.0 0. 1. + 2045. 1. 5. 22.0 2.5 0.0 2. 14.0 20.0 3. 3. 0.0 0. 1. + 2049. 1. 4. 27.0 2.5 0.0 3. 14.0 11.5 3. 1. 0.0 0. 1. + 2057. 1. 4. 22.0 2.5 0.0 1. 14.0 11.5 2. 2. 0.0 0. 1. + 2059. 1. 5. 22.0 2.5 0.0 2. 12.0 14.0 3. 4. 0.0 0. 1. + 2068. 1. 5. 22.0 0.5 0.0 3. 12.0 14.0 3. 3. 0.0 0. 1. + 2069. 1. 3. 42.0 23.0 2.0 1. 20.0 40.0 4. 4. 0.0 0. 1. + 2071. 1. 5. 32.0 16.5 1.0 3. 17.0 40.0 5. 4. 0.0 0. 1. + 2074. 1. 5. 27.0 9.0 1.0 2. 14.0 20.0 3. 4. 0.0 0. 1. + 2081. 1. 5. 27.0 2.5 1.0 3. 14.0 11.5 3. 5. 0.0 0. 1. + 2083. 1. 4. 27.0 6.0 0.0 2. 16.0 14.0 3. 3. 0.0 0. 1. + 2084. 1. 5. 22.0 0.5 0.0 3. 14.0 9.0 3. 2. 0.0 0. 1. + 2085. 1. 4. 32.0 9.0 0.0 1. 17.0 20.0 4. 4. 0.0 0. 1. + 2089. 1. 3. 37.0 16.5 3.0 3. 12.0 11.5 3. 3. 0.0 0. 1. + 2091. 1. 5. 27.0 2.5 0.0 3. 12.0 14.0 3. 4. 0.0 0. 1. + 2092. 1. 5. 22.0 2.5 0.0 4. 14.0 40.0 3. 2. 0.0 0. 1. + 2094. 1. 4. 32.0 13.0 3.0 3. 17.0 20.0 4. 4. 0.0 0. 1. + 2097. 1. 5. 42.0 23.0 5.5 4. 17.0 40.0 5. 5. 0.0 0. 1. + 2103. 1. 4. 27.0 2.5 0.0 2. 16.0 20.0 4. 4. 0.0 0. 1. + 2117. 1. 5. 42.0 16.5 4.0 3. 14.0 20.0 3. 4. 0.0 0. 1. + 2118. 1. 3. 27.0 2.5 0.0 3. 12.0 20.0 3. 3. 0.0 0. 1. + 2119. 1. 5. 27.0 6.0 2.0 4. 16.0 40.0 4. 6. 0.0 0. 1. + 2121. 1. 3. 22.0 0.5 0.0 3. 12.0 9.0 5. 4. 0.0 0. 1. + 2127. 1. 4. 42.0 23.0 3.0 2. 14.0 40.0 3. 4. 0.0 0. 1. + 2131. 1. 5. 27.0 2.5 0.0 2. 16.0 20.0 4. 5. 0.0 0. 1. + 2148. 1. 5. 22.0 0.5 0.0 3. 12.0 20.0 3. 2. 0.0 0. 1. + 2151. 1. 5. 22.0 2.5 0.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 2154. 1. 5. 37.0 16.5 2.0 1. 12.0 40.0 3. 5. 0.0 0. 1. + 2162. 1. 3. 22.0 6.0 2.0 2. 12.0 11.5 3. 2. 0.0 0. 1. + 2171. 1. 2. 42.0 23.0 3.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 2172. 1. 4. 32.0 2.5 0.0 1. 17.0 40.0 5. 5. 0.0 0. 1. + 2175. 1. 5. 22.0 2.5 0.0 3. 16.0 11.5 3. 4. 0.0 0. 1. + 2181. 1. 4. 22.0 0.5 0.0 3. 14.0 9.0 3. 4. 0.0 0. 1. + 2184. 1. 5. 27.0 6.0 1.0 1. 14.0 14.0 4. 4. 0.0 0. 1. + 2186. 1. 4. 27.0 2.5 0.0 3. 16.0 40.0 4. 4. 0.0 0. 1. + 2188. 1. 5. 32.0 6.0 3.0 1. 16.0 20.0 3. 5. 0.0 0. 1. + 2190. 1. 5. 32.0 16.5 2.0 1. 12.0 20.0 2. 3. 0.0 0. 1. + 2193. 1. 4. 42.0 16.5 3.0 2. 14.0 40.0 3. 2. 0.0 0. 1. + 2194. 1. 5. 22.0 0.5 0.0 2. 12.0 11.5 2. 2. 0.0 0. 1. + 2197. 1. 5. 17.5 0.5 0.0 2. 12.0 4.0 2. 4. 0.0 0. 1. + 2198. 1. 5. 42.0 23.0 3.0 3. 14.0 20.0 4. 4. 0.0 0. 1. + 2200. 1. 2. 22.0 0.5 0.0 1. 14.0 20.0 3. 2. 0.0 0. 1. + 2201. 1. 5. 27.0 2.5 0.0 1. 16.0 40.0 4. 5. 0.0 0. 1. + 2204. 1. 5. 27.0 16.5 3.0 1. 12.0 11.5 3. 5. 0.0 0. 1. + 2207. 1. 5. 22.0 0.5 0.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 2211. 1. 4. 32.0 9.0 2.0 3. 20.0 40.0 6. 5. 0.0 0. 1. + 2213. 1. 4. 22.0 0.5 0.0 2. 14.0 6.5 2. 1. 0.0 0. 1. + 2214. 1. 4. 27.0 6.0 2.0 4. 14.0 9.0 3. 5. 0.0 0. 1. + 2215. 1. 1. 27.0 9.0 4.0 1. 12.0 9.0 4. 2. 0.0 0. 1. + 2224. 1. 4. 22.0 2.5 0.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 2227. 1. 5. 22.0 2.5 0.0 2. 16.0 20.0 4. 5. 0.0 0. 1. + 2233. 1. 5. 22.0 2.5 1.0 2. 12.0 11.5 2. 2. 0.0 0. 1. + 2237. 1. 5. 17.5 0.5 0.0 3. 12.0 11.5 5. 2. 0.0 0. 1. + 2239. 1. 4. 32.0 9.0 2.0 3. 14.0 14.0 2. 4. 0.0 0. 1. + 2245. 1. 5. 27.0 6.0 0.0 3. 17.0 20.0 5. 5. 0.0 0. 1. + 2246. 1. 5. 22.0 0.5 0.0 2. 12.0 9.0 3. 2. 0.0 0. 1. + 2250. 1. 5. 32.0 9.0 0.0 3. 12.0 40.0 3. 4. 0.0 0. 1. + 2252. 1. 3. 27.0 9.0 3.0 1. 12.0 20.0 3. 4. 0.0 0. 1. + 2254. 1. 5. 22.0 2.5 0.0 1. 12.0 4.0 3. 1. 0.0 0. 1. + 2261. 1. 5. 42.0 16.5 4.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 2262. 1. 5. 27.0 2.5 1.0 2. 16.0 40.0 4. 5. 0.0 0. 1. + 2263. 1. 3. 22.0 2.5 0.0 3. 12.0 11.5 3. 4. 0.0 0. 1. + 2264. 1. 5. 22.0 2.5 1.0 1. 14.0 11.5 3. 5. 0.0 0. 1. + 2284. 1. 4. 27.0 16.5 3.0 1. 16.0 20.0 5. 5. 0.0 0. 1. + 2285. 1. 5. 27.0 2.5 1.0 3. 16.0 20.0 4. 5. 0.0 0. 1. + 2295. 1. 3. 27.0 2.5 1.0 1. 17.0 11.5 2. 5. 0.0 0. 1. + 2297. 1. 5. 22.0 2.5 0.0 3. 14.0 6.5 3. 4. 0.0 0. 1. + 2301. 1. 5. 37.0 16.5 2.0 3. 20.0 40.0 6. 6. 0.0 0. 1. + 2321. 1. 5. 22.0 2.5 0.0 2. 14.0 20.0 5. 4. 0.0 0. 1. + 2322. 1. 5. 27.0 2.5 0.0 3. 14.0 20.0 3. 4. 0.0 0. 1. + 2326. 1. 4. 22.0 2.5 0.0 3. 16.0 6.5 3. 1. 0.0 0. 1. + 2327. 1. 4. 27.0 6.0 0.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 2332. 1. 1. 27.0 6.0 1.0 2. 20.0 40.0 4. 5. 0.0 0. 1. + 2335. 1. 5. 22.0 0.5 0.0 3. 14.0 14.0 2. 2. 0.0 0. 1. + 2345. 1. 5. 32.0 13.0 4.0 3. 12.0 11.5 3. 4. 0.0 0. 1. + 2347. 1. 5. 22.0 6.0 0.0 2. 12.0 40.0 3. 5. 0.0 0. 1. + 2351. 1. 5. 37.0 16.5 2.0 3. 16.0 20.0 4. 5. 0.0 0. 1. + 2353. 1. 3. 22.0 6.0 2.0 3. 12.0 11.5 2. 4. 0.0 0. 1. + 2356. 1. 4. 22.0 0.5 0.0 3. 16.0 20.0 3. 5. 0.0 0. 1. + 2361. 1. 5. 27.0 2.5 0.0 3. 14.0 20.0 3. 2. 0.0 0. 1. + 2366. 1. 4. 22.0 2.5 0.0 4. 14.0 14.0 3. 4. 0.0 0. 1. + 2367. 1. 5. 22.0 2.5 0.0 1. 12.0 11.5 3. 2. 0.0 0. 1. + 2368. 1. 5. 27.0 6.0 0.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 2369. 1. 3. 27.0 0.5 0.0 3. 20.0 40.0 6. 6. 0.0 0. 1. + 2371. 1. 4. 32.0 13.0 2.0 3. 12.0 20.0 5. 5. 0.0 0. 1. + 2373. 1. 3. 22.0 2.5 0.0 2. 16.0 14.0 3. 6. 0.0 0. 1. + 2377. 1. 5. 32.0 2.5 0.0 2. 20.0 20.0 4. 4. 0.0 0. 1. + 2382. 1. 4. 22.0 2.5 0.0 3. 17.0 40.0 4. 5. 0.0 0. 1. + 2385. 1. 5. 22.0 2.5 0.0 3. 17.0 20.0 4. 5. 0.0 0. 1. + 2387. 1. 3. 22.0 0.5 0.0 3. 16.0 20.0 3. 4. 0.0 0. 1. + 2389. 1. 5. 27.0 6.0 1.0 1. 14.0 14.0 3. 4. 0.0 0. 1. + 2394. 1. 5. 32.0 16.5 1.0 3. 12.0 9.0 2. 2. 0.0 0. 1. + 2397. 1. 3. 37.0 23.0 3.0 3. 12.0 20.0 3. 4. 0.0 0. 1. + 2399. 1. 5. 22.0 2.5 0.0 1. 20.0 20.0 4. 5. 0.0 0. 1. + 2401. 1. 5. 27.0 6.0 0.0 1. 12.0 14.0 3. 4. 0.0 0. 1. + 2405. 1. 5. 27.0 6.0 0.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 2408. 1. 3. 37.0 23.0 5.5 1. 12.0 14.0 3. 4. 0.0 0. 1. + 2410. 1. 3. 42.0 16.5 2.0 2. 12.0 40.0 2. 6. 0.0 0. 1. + 2411. 1. 4. 27.0 6.0 2.0 2. 12.0 20.0 2. 2. 0.0 0. 1. + 2417. 1. 5. 22.0 2.5 0.0 2. 16.0 14.0 4. 4. 0.0 0. 1. + 2418. 1. 5. 22.0 0.5 0.0 3. 12.0 9.0 2. 5. 0.0 0. 1. + 2423. 1. 4. 42.0 23.0 2.0 3. 12.0 20.0 2. 5. 0.0 0. 1. + 2425. 1. 5. 37.0 16.5 2.0 1. 14.0 40.0 5. 6. 0.0 0. 1. + 2428. 1. 5. 42.0 23.0 4.0 4. 12.0 40.0 3. 5. 0.0 0. 1. + 2429. 1. 2. 22.0 2.5 0.0 3. 14.0 9.0 3. 4. 0.0 0. 1. + 2433. 1. 4. 27.0 6.0 2.0 1. 14.0 20.0 3. 4. 0.0 0. 1. + 2434. 1. 3. 22.0 0.5 0.0 2. 17.0 14.0 3. 5. 0.0 0. 1. + 2435. 1. 3. 27.0 6.0 2.0 2. 16.0 20.0 4. 5. 0.0 0. 1. + 2445. 1. 5. 32.0 13.0 3.0 2. 20.0 40.0 3. 6. 0.0 0. 1. + 2454. 1. 5. 42.0 23.0 4.0 4. 16.0 20.0 2. 5. 0.0 0. 1. + 2461. 1. 4. 22.0 2.5 0.0 3. 16.0 20.0 4. 4. 0.0 0. 1. + 2470. 1. 5. 27.0 6.0 1.0 3. 20.0 40.0 4. 6. 0.0 0. 1. + 2471. 1. 2. 42.0 23.0 5.5 3. 12.0 20.0 2. 5. 0.0 0. 1. + 2472. 1. 5. 22.0 6.0 0.0 4. 14.0 6.5 3. 2. 0.0 0. 1. + 2478. 1. 5. 22.0 6.0 1.0 1. 12.0 11.5 3. 5. 0.0 0. 1. + 2480. 1. 5. 27.0 2.5 0.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 2492. 1. 5. 32.0 13.0 3.0 4. 16.0 14.0 4. 6. 0.0 0. 1. + 2493. 1. 5. 27.0 0.5 0.0 2. 12.0 14.0 3. 2. 0.0 0. 1. + 2501. 1. 4. 37.0 16.5 2.0 2. 12.0 20.0 2. 2. 0.0 0. 1. + 2505. 1. 4. 32.0 2.5 0.0 3. 20.0 20.0 4. 4. 0.0 0. 1. + 2506. 1. 5. 32.0 2.5 1.0 3. 12.0 20.0 3. 4. 0.0 0. 1. + 2513. 1. 4. 27.0 2.5 0.0 2. 12.0 14.0 3. 4. 0.0 0. 1. + 2519. 1. 5. 27.0 6.0 1.0 3. 12.0 11.5 3. 4. 0.0 0. 1. + 2520. 1. 4. 27.0 6.0 1.0 1. 20.0 20.0 4. 4. 0.0 0. 1. + 2522. 1. 5. 22.0 2.5 0.0 1. 12.0 20.0 3. 5. 0.0 0. 1. + 2524. 1. 5. 32.0 16.5 2.0 3. 17.0 11.5 3. 5. 0.0 0. 1. + 2535. 1. 5. 22.0 2.5 0.0 1. 16.0 20.0 5. 5. 0.0 0. 1. + 2537. 1. 5. 27.0 6.0 1.0 3. 20.0 20.0 6. 6. 0.0 0. 1. + 2542. 1. 3. 27.0 6.0 2.0 3. 20.0 20.0 4. 5. 0.0 0. 1. + 2544. 1. 5. 27.0 9.0 1.0 2. 16.0 11.5 4. 4. 0.0 0. 1. + 2545. 1. 3. 42.0 23.0 4.0 3. 14.0 20.0 3. 4. 0.0 0. 1. + 2549. 1. 5. 27.0 6.0 2.0 2. 20.0 14.0 4. 3. 0.0 0. 1. + 2555. 1. 4. 27.0 6.0 2.0 3. 14.0 14.0 3. 4. 0.0 0. 1. + 2558. 1. 5. 42.0 23.0 3.0 2. 12.0 20.0 5. 4. 0.0 0. 1. + 2563. 1. 4. 22.0 2.5 0.0 3. 16.0 14.0 3. 5. 0.0 0. 1. + 2569. 1. 5. 32.0 16.5 3.0 3. 12.0 14.0 3. 4. 0.0 0. 1. + 2573. 1. 5. 22.0 2.5 0.0 2. 14.0 20.0 1. 5. 0.0 0. 1. + 2574. 1. 5. 27.0 6.0 0.0 3. 14.0 20.0 4. 5. 0.0 0. 1. + 2576. 1. 5. 22.0 2.5 0.0 1. 12.0 9.0 2. 1. 0.0 0. 1. + 2580. 1. 4. 27.0 6.0 1.0 1. 14.0 20.0 4. 4. 0.0 0. 1. + 2581. 1. 4. 22.0 2.5 0.0 3. 16.0 11.5 2. 4. 0.0 0. 1. + 2582. 1. 4. 22.0 2.5 0.0 4. 12.0 20.0 3. 2. 0.0 0. 1. + 2586. 1. 5. 17.5 2.5 0.0 1. 12.0 9.0 2. 4. 0.0 0. 1. + 2592. 1. 4. 37.0 16.5 3.0 3. 12.0 11.5 4. 5. 0.0 0. 1. + 2593. 1. 4. 27.0 6.0 1.0 2. 12.0 11.5 4. 4. 0.0 0. 1. + 2595. 1. 3. 37.0 13.0 0.0 2. 14.0 20.0 5. 6. 0.0 0. 1. + 2597. 1. 4. 37.0 16.5 4.0 3. 12.0 14.0 2. 4. 0.0 0. 1. + 2598. 1. 4. 27.0 2.5 0.0 1. 14.0 40.0 5. 6. 0.0 0. 1. + 2599. 1. 5. 42.0 23.0 2.0 2. 12.0 40.0 5. 5. 0.0 0. 1. + 2600. 1. 5. 22.0 2.5 0.0 4. 14.0 11.5 2. 2. 0.0 0. 1. + 2601. 1. 5. 22.0 2.5 0.0 3. 16.0 9.0 3. 1. 0.0 0. 1. + 2610. 1. 5. 27.0 0.5 0.0 3. 20.0 40.0 4. 4. 0.0 0. 1. + 2616. 1. 5. 27.0 6.0 1.0 2. 20.0 14.0 4. 6. 0.0 0. 1. + 2619. 1. 4. 22.0 2.5 0.0 2. 16.0 9.0 5. 2. 0.0 0. 1. + 2622. 1. 5. 22.0 2.5 0.0 3. 12.0 20.0 2. 3. 0.0 0. 1. + 2623. 1. 5. 22.0 0.5 0.0 3. 12.0 20.0 3. 2. 0.0 0. 1. + 2631. 1. 4. 37.0 9.0 5.5 4. 12.0 20.0 4. 2. 0.0 0. 1. + 2646. 1. 3. 27.0 0.5 0.0 2. 12.0 9.0 3. 2. 0.0 0. 1. + 2671. 1. 5. 27.0 2.5 0.0 2. 20.0 20.0 4. 5. 0.0 0. 1. + 2674. 1. 3. 22.0 2.5 0.0 1. 14.0 14.0 3. 3. 0.0 0. 1. + 2680. 1. 3. 42.0 16.5 4.0 4. 16.0 6.5 3. 1. 0.0 0. 1. + 2684. 1. 5. 32.0 13.0 3.0 2. 12.0 40.0 2. 5. 0.0 0. 1. + 2688. 1. 2. 32.0 13.0 2.0 3. 12.0 11.5 2. 2. 0.0 0. 1. + 2696. 1. 5. 22.0 2.5 0.0 2. 14.0 6.5 3. 1. 0.0 0. 1. + 2697. 1. 3. 27.0 2.5 1.0 1. 14.0 11.5 5. 4. 0.0 0. 1. + 2702. 1. 4. 22.0 0.5 0.0 4. 12.0 14.0 3. 2. 0.0 0. 1. + 2713. 1. 4. 27.0 9.0 2.0 3. 12.0 11.5 5. 4. 0.0 0. 1. + 2715. 1. 5. 22.0 2.5 0.0 3. 14.0 20.0 3. 4. 0.0 0. 1. + 2718. 1. 5. 27.0 6.0 2.0 3. 17.0 20.0 4. 5. 0.0 0. 1. + 2723. 1. 4. 22.0 2.5 0.0 1. 12.0 6.5 3. 2. 0.0 0. 1. + 2726. 1. 5. 22.0 0.5 0.0 2. 12.0 20.0 3. 3. 0.0 0. 1. + 2729. 1. 5. 42.0 23.0 3.0 3. 12.0 20.0 3. 5. 0.0 0. 1. + 2740. 1. 3. 22.0 2.5 1.0 3. 14.0 9.0 3. 2. 0.0 0. 1. + 2742. 1. 4. 27.0 16.5 2.0 3. 12.0 40.0 4. 4. 0.0 0. 1. + 2744. 1. 5. 17.5 0.5 0.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 2745. 1. 5. 27.0 2.5 0.0 3. 17.0 40.0 4. 5. 0.0 0. 1. + 2748. 1. 4. 27.0 9.0 2.0 4. 16.0 20.0 4. 5. 0.0 0. 1. + 2751. 1. 5. 22.0 2.5 0.0 2. 16.0 20.0 4. 5. 0.0 0. 1. + 2754. 1. 5. 37.0 16.5 2.0 2. 12.0 20.0 3. 6. 0.0 0. 1. + 2755. 1. 5. 32.0 23.0 2.0 3. 14.0 20.0 5. 5. 0.0 0. 1. + 2758. 1. 5. 22.0 2.5 1.0 4. 14.0 4.0 4. 1. 0.0 0. 1. + 2760. 1. 4. 27.0 2.5 0.0 3. 17.0 14.0 4. 6. 0.0 0. 1. + 2761. 1. 5. 22.0 0.5 0.0 2. 12.0 11.5 4. 4. 0.0 0. 1. + 2764. 1. 4. 37.0 16.5 2.0 3. 20.0 20.0 4. 6. 0.0 0. 1. + 2765. 1. 4. 27.0 2.5 0.0 3. 14.0 14.0 4. 1. 0.0 0. 1. + 2766. 1. 4. 22.0 2.5 0.0 3. 16.0 14.0 4. 3. 0.0 0. 1. + 2769. 1. 4. 22.0 2.5 0.0 2. 12.0 20.0 2. 5. 0.0 0. 1. + 2774. 1. 5. 42.0 23.0 2.0 3. 14.0 40.0 3. 6. 0.0 0. 1. + 2775. 1. 5. 22.0 0.5 0.0 2. 16.0 14.0 4. 4. 0.0 0. 1. + 2783. 1. 5. 27.0 6.0 3.0 2. 16.0 40.0 4. 5. 0.0 0. 1. + 2784. 1. 4. 32.0 16.5 3.0 2. 16.0 40.0 2. 6. 0.0 0. 1. + 2789. 1. 4. 27.0 0.5 0.0 2. 16.0 20.0 4. 4. 0.0 0. 1. + 2793. 1. 2. 22.0 0.5 0.0 4. 12.0 20.0 3. 3. 0.0 0. 1. + 2797. 1. 4. 22.0 2.5 0.0 3. 17.0 11.5 4. 2. 0.0 0. 1. + 2798. 1. 5. 27.0 2.5 0.0 3. 16.0 14.0 4. 6. 0.0 0. 1. + 2812. 1. 5. 22.0 2.5 0.0 3. 12.0 20.0 3. 2. 0.0 0. 1. + 2813. 1. 4. 27.0 2.5 3.0 2. 12.0 9.0 3. 6. 0.0 0. 1. + 2825. 1. 4. 32.0 6.0 1.0 4. 20.0 11.5 5. 5. 0.0 0. 1. + 2832. 1. 2. 27.0 2.5 0.0 3. 14.0 9.0 3. 3. 0.0 0. 1. + 2836. 1. 4. 42.0 23.0 4.0 2. 12.0 40.0 2. 6. 0.0 0. 1. + 2837. 1. 5. 42.0 16.5 1.0 3. 12.0 20.0 5. 3. 0.0 0. 1. + 2847. 1. 3. 27.0 9.0 2.0 1. 14.0 20.0 3. 5. 0.0 0. 1. + 2852. 1. 4. 42.0 23.0 2.0 2. 12.0 11.5 2. 4. 0.0 0. 1. + 2853. 1. 5. 42.0 23.0 2.0 2. 12.0 14.0 4. 4. 0.0 0. 1. + 2855. 1. 5. 22.0 2.5 0.0 3. 16.0 9.0 4. 4. 0.0 0. 1. + 2858. 1. 3. 42.0 23.0 3.0 3. 12.0 20.0 3. 3. 0.0 0. 1. + 2861. 1. 5. 22.0 2.5 0.0 4. 17.0 20.0 3. 2. 0.0 0. 1. + 2864. 1. 2. 22.0 2.5 0.0 3. 14.0 11.5 3. 2. 0.0 0. 1. + 2867. 1. 5. 27.0 6.0 1.0 4. 20.0 20.0 4. 4. 0.0 0. 1. + 2870. 1. 4. 37.0 16.5 5.5 2. 14.0 20.0 3. 4. 0.0 0. 1. + 2879. 1. 5. 32.0 13.0 3.0 3. 12.0 14.0 2. 4. 0.0 0. 1. + 2887. 1. 5. 27.0 6.0 2.0 3. 16.0 20.0 3. 4. 0.0 0. 1. + 2889. 1. 4. 27.0 6.0 1.0 1. 20.0 40.0 4. 4. 0.0 0. 1. + 2899. 1. 5. 22.0 2.5 0.0 1. 12.0 9.0 3. 2. 0.0 0. 1. + 2903. 1. 5. 27.0 2.5 0.0 3. 14.0 20.0 4. 5. 0.0 0. 1. + 2904. 1. 5. 22.0 6.0 0.0 3. 12.0 9.0 3. 4. 0.0 0. 1. + 2905. 1. 4. 22.0 2.5 0.0 3. 12.0 9.0 5. 5. 0.0 0. 1. + 2906. 1. 4. 22.0 2.5 0.0 3. 16.0 11.5 4. 6. 0.0 0. 1. + 2908. 1. 5. 22.0 2.5 0.0 3. 16.0 20.0 4. 4. 0.0 0. 1. + 2911. 1. 5. 27.0 6.0 0.0 2. 16.0 14.0 4. 6. 0.0 0. 1. + 2920. 1. 2. 37.0 16.5 3.0 4. 12.0 9.0 2. 5. 0.0 0. 1. + 2923. 1. 5. 22.0 6.0 2.0 2. 12.0 9.0 5. 2. 0.0 0. 1. + 2928. 1. 4. 27.0 2.5 1.0 2. 16.0 20.0 4. 4. 0.0 0. 1. + 2930. 1. 5. 22.0 2.5 0.0 2. 17.0 20.0 3. 2. 0.0 0. 1. + 2936. 1. 5. 42.0 23.0 3.0 3. 17.0 40.0 4. 5. 0.0 0. 1. + 2948. 1. 4. 22.0 2.5 0.0 3. 12.0 6.5 4. 1. 0.0 0. 1. + 2949. 1. 4. 32.0 13.0 2.0 2. 12.0 14.0 3. 4. 0.0 0. 1. + 2951. 1. 5. 27.0 2.5 0.0 3. 20.0 20.0 5. 6. 0.0 0. 1. + 2956. 1. 5. 22.0 0.5 0.0 3. 16.0 11.5 3. 2. 0.0 0. 1. + 2959. 1. 4. 22.0 2.5 0.0 3. 12.0 20.0 3. 2. 0.0 0. 1. + 2960. 1. 4. 27.0 9.0 2.0 1. 14.0 11.5 3. 2. 0.0 0. 1. + 2966. 1. 4. 27.0 6.0 1.0 1. 20.0 20.0 4. 4. 0.0 0. 1. + 2969. 1. 5. 27.0 2.5 2.0 1. 12.0 9.0 2. 4. 0.0 0. 1. + 2974. 1. 4. 37.0 9.0 1.0 3. 20.0 20.0 4. 2. 0.0 0. 1. + 2976. 1. 4. 22.0 0.5 0.0 3. 16.0 20.0 4. 4. 0.0 0. 1. + 2979. 1. 5. 32.0 16.5 2.0 1. 14.0 40.0 5. 5. 0.0 0. 1. + 2983. 1. 3. 27.0 6.0 0.0 1. 12.0 20.0 3. 5. 0.0 0. 1. + 2985. 1. 4. 27.0 6.0 1.0 3. 16.0 20.0 4. 5. 0.0 0. 1. + 2988. 1. 5. 32.0 13.0 1.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 2993. 1. 3. 27.0 2.5 0.0 3. 12.0 6.5 3. 4. 0.0 0. 1. + 2997. 1. 5. 22.0 2.5 0.0 2. 12.0 14.0 3. 2. 0.0 0. 1. + 2999. 1. 4. 32.0 6.0 1.0 3. 17.0 11.5 4. 4. 0.0 0. 1. + 3002. 1. 3. 27.0 2.5 0.0 1. 20.0 20.0 4. 4. 0.0 0. 1. + 3003. 1. 4. 42.0 23.0 2.0 4. 14.0 40.0 3. 5. 0.0 0. 1. + 3007. 1. 2. 27.0 2.5 1.0 2. 14.0 14.0 3. 2. 0.0 0. 1. + 3010. 1. 4. 42.0 23.0 3.0 2. 12.0 20.0 3. 5. 0.0 0. 1. + 3011. 1. 5. 27.0 6.0 2.0 2. 17.0 20.0 4. 5. 0.0 0. 1. + 3013. 1. 5. 22.0 0.5 0.0 1. 14.0 20.0 3. 5. 0.0 0. 1. + 3015. 1. 5. 27.0 6.0 2.0 3. 12.0 11.5 3. 3. 0.0 0. 1. + 3016. 1. 3. 22.0 2.5 0.0 1. 14.0 20.0 5. 4. 0.0 0. 1. + 3018. 1. 1. 42.0 23.0 3.0 2. 12.0 20.0 3. 2. 0.0 0. 1. + 3024. 1. 4. 42.0 16.5 3.0 2. 17.0 20.0 5. 5. 0.0 0. 1. + 3025. 1. 1. 27.0 2.5 0.0 1. 12.0 11.5 3. 1. 0.0 0. 1. + 3029. 1. 5. 22.0 0.5 0.0 1. 17.0 11.5 4. 4. 0.0 0. 1. + 3030. 1. 5. 37.0 16.5 2.0 3. 12.0 14.0 3. 4. 0.0 0. 1. + 3044. 1. 4. 27.0 6.0 2.0 3. 16.0 14.0 4. 5. 0.0 0. 1. + 3045. 1. 5. 22.0 2.5 0.0 4. 14.0 20.0 5. 5. 0.0 0. 1. + 3046. 1. 5. 22.0 2.5 0.0 4. 17.0 20.0 4. 5. 0.0 0. 1. + 3048. 1. 3. 27.0 6.0 2.0 3. 14.0 20.0 5. 2. 0.0 0. 1. + 3049. 1. 4. 27.0 2.5 0.0 3. 16.0 20.0 3. 6. 0.0 0. 1. + 3064. 1. 5. 27.0 2.5 0.0 1. 12.0 11.5 3. 5. 0.0 0. 1. + 3067. 1. 5. 17.5 2.5 2.0 1. 12.0 6.5 2. 4. 0.0 0. 1. + 3071. 1. 4. 32.0 16.5 2.0 3. 14.0 20.0 3. 2. 0.0 0. 1. + 3072. 1. 5. 27.0 2.5 0.0 1. 16.0 40.0 4. 5. 0.0 0. 1. + 3077. 1. 3. 42.0 23.0 2.0 3. 12.0 40.0 2. 5. 0.0 0. 1. + 3083. 1. 4. 22.0 2.5 0.0 2. 14.0 14.0 3. 4. 0.0 0. 1. + 3084. 1. 3. 22.0 2.5 1.0 2. 12.0 9.0 3. 2. 0.0 0. 1. + 3086. 1. 3. 27.0 2.5 0.0 3. 16.0 20.0 4. 6. 0.0 0. 1. + 3090. 1. 4. 22.0 2.5 0.0 3. 14.0 20.0 3. 5. 0.0 0. 1. + 3095. 1. 5. 32.0 13.0 2.0 4. 20.0 11.5 4. 6. 0.0 0. 1. + 3101. 1. 5. 22.0 2.5 0.0 1. 16.0 6.5 4. 6. 0.0 0. 1. + 3108. 1. 4. 32.0 9.0 2.0 3. 14.0 9.0 4. 2. 0.0 0. 1. + 3112. 1. 4. 42.0 23.0 5.5 3. 12.0 11.5 2. 4. 0.0 0. 1. + 3115. 1. 3. 27.0 0.5 0.0 2. 12.0 20.0 3. 2. 0.0 0. 1. + 3119. 1. 5. 42.0 23.0 2.0 2. 12.0 14.0 5. 2. 0.0 0. 1. + 3120. 1. 5. 27.0 2.5 0.0 2. 16.0 20.0 2. 4. 0.0 0. 1. + 3123. 1. 4. 22.0 2.5 2.0 3. 12.0 11.5 2. 4. 0.0 0. 1. + 3139. 1. 3. 27.0 6.0 2.0 2. 12.0 40.0 4. 5. 0.0 0. 1. + 3141. 1. 5. 27.0 2.5 2.0 3. 14.0 11.5 2. 4. 0.0 0. 1. + 3146. 1. 5. 22.0 0.5 0.0 2. 16.0 4.0 3. 4. 0.0 0. 1. + 3147. 1. 3. 32.0 6.0 2.0 2. 14.0 20.0 4. 6. 0.0 0. 1. + 3153. 1. 4. 27.0 2.5 0.0 3. 14.0 20.0 3. 5. 0.0 0. 1. + 3156. 1. 5. 37.0 23.0 5.5 2. 12.0 14.0 5. 2. 0.0 0. 1. + 3157. 1. 2. 27.0 6.0 0.0 1. 17.0 40.0 4. 4. 0.0 0. 1. + 3161. 1. 4. 32.0 16.5 4.0 3. 12.0 20.0 3. 4. 0.0 0. 1. + 3166. 1. 5. 22.0 2.5 2.0 2. 12.0 11.5 2. 5. 0.0 0. 1. + 3167. 1. 4. 22.0 2.5 0.0 1. 16.0 11.5 4. 4. 0.0 0. 1. + 3170. 1. 5. 27.0 2.5 0.0 3. 16.0 40.0 5. 5. 0.0 0. 1. + 3171. 1. 5. 22.0 2.5 0.0 1. 12.0 20.0 3. 4. 0.0 0. 1. + 3175. 1. 4. 22.0 2.5 1.0 4. 14.0 6.5 3. 5. 0.0 0. 1. + 3181. 1. 4. 22.0 2.5 0.0 3. 14.0 20.0 3. 5. 0.0 0. 1. + 3183. 1. 5. 22.0 6.0 1.0 2. 12.0 20.0 3. 2. 0.0 0. 1. + 3184. 1. 3. 27.0 6.0 0.0 3. 14.0 20.0 5. 2. 0.0 0. 1. + 3193. 1. 5. 37.0 16.5 4.0 3. 16.0 40.0 4. 5. 0.0 0. 1. + 3198. 1. 4. 27.0 6.0 2.0 4. 14.0 14.0 4. 5. 0.0 0. 1. + 3200. 1. 4. 22.0 2.5 0.0 2. 17.0 14.0 5. 5. 0.0 0. 1. + 3201. 1. 5. 22.0 2.5 0.0 2. 16.0 11.5 4. 2. 0.0 0. 1. + 3206. 1. 3. 32.0 16.5 2.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 3208. 1. 5. 27.0 0.5 0.0 2. 16.0 40.0 4. 6. 0.0 0. 1. + 3210. 1. 5. 27.0 6.0 3.0 2. 14.0 11.5 2. 5. 0.0 0. 1. + 3211. 1. 5. 22.0 2.5 0.0 2. 16.0 14.0 2. 2. 0.0 0. 1. + 3214. 1. 4. 22.0 2.5 2.0 2. 16.0 20.0 5. 5. 0.0 0. 1. + 3215. 1. 4. 32.0 9.0 0.0 1. 20.0 40.0 4. 5. 0.0 0. 1. + 3229. 1. 3. 22.0 2.5 0.0 2. 12.0 11.5 3. 4. 0.0 0. 1. + 3235. 1. 4. 37.0 9.0 1.0 3. 20.0 14.0 5. 4. 0.0 0. 1. + 3239. 1. 5. 27.0 2.5 0.0 3. 20.0 14.0 4. 4. 0.0 0. 1. + 3241. 1. 4. 32.0 13.0 2.0 4. 12.0 11.5 3. 3. 0.0 0. 1. + 3242. 1. 4. 27.0 2.5 1.0 2. 12.0 20.0 3. 2. 0.0 0. 1. + 3245. 1. 4. 22.0 2.5 0.0 3. 17.0 20.0 4. 4. 0.0 0. 1. + 3247. 1. 5. 27.0 6.0 2.0 4. 12.0 4.0 3. 2. 0.0 0. 1. + 3251. 1. 4. 32.0 13.0 1.0 3. 14.0 11.5 2. 4. 0.0 0. 1. + 3255. 1. 5. 22.0 0.5 0.0 1. 16.0 14.0 2. 3. 0.0 0. 1. + 3261. 1. 5. 22.0 2.5 0.0 2. 12.0 20.0 2. 2. 0.0 0. 1. + 3268. 1. 3. 42.0 23.0 5.5 2. 14.0 20.0 2. 5. 0.0 0. 1. + 3274. 1. 4. 27.0 6.0 2.0 1. 14.0 9.0 3. 3. 0.0 0. 1. + 3275. 1. 5. 22.0 2.5 0.0 3. 16.0 20.0 3. 5. 0.0 0. 1. + 3276. 1. 5. 27.0 6.0 0.0 1. 12.0 20.0 3. 2. 0.0 0. 1. + 3278. 1. 2. 32.0 13.0 2.0 3. 12.0 14.0 3. 4. 0.0 0. 1. + 3286. 1. 5. 27.0 9.0 2.0 3. 12.0 11.5 2. 3. 0.0 0. 1. + 3291. 1. 4. 22.0 2.5 2.0 3. 14.0 14.0 4. 4. 0.0 0. 1. + 3292. 1. 5. 37.0 2.5 0.0 3. 14.0 20.0 3. 3. 0.0 0. 1. + 3293. 1. 5. 37.0 16.5 2.0 3. 12.0 14.0 3. 3. 0.0 0. 1. + 3294. 1. 5. 27.0 6.0 2.0 2. 14.0 11.5 4. 4. 0.0 0. 1. + 3297. 1. 4. 27.0 6.0 0.0 3. 20.0 20.0 4. 5. 0.0 0. 1. + 3298. 1. 5. 32.0 13.0 3.0 3. 12.0 14.0 4. 5. 0.0 0. 1. + 3299. 1. 4. 27.0 2.5 0.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 3304. 1. 3. 22.0 2.5 0.0 2. 16.0 11.5 6. 3. 0.0 0. 1. + 3308. 1. 5. 32.0 9.0 3.0 2. 17.0 20.0 4. 4. 0.0 0. 1. + 3312. 1. 2. 27.0 6.0 1.0 2. 14.0 11.5 3. 4. 0.0 0. 1. + 3316. 1. 5. 22.0 2.5 0.0 1. 16.0 40.0 5. 5. 0.0 0. 1. + 3317. 1. 5. 22.0 0.5 0.0 2. 16.0 20.0 3. 4. 0.0 0. 1. + 3330. 1. 5. 27.0 2.5 0.0 4. 20.0 20.0 4. 5. 0.0 0. 1. + 3338. 1. 5. 22.0 0.5 0.0 3. 14.0 14.0 3. 2. 0.0 0. 1. + 3340. 1. 5. 22.0 2.5 0.0 2. 12.0 20.0 3. 5. 0.0 0. 1. + 3344. 1. 5. 27.0 6.0 0.0 2. 20.0 20.0 4. 6. 0.0 0. 1. + 3346. 1. 5. 17.5 0.5 0.0 3. 14.0 6.5 3. 4. 0.0 0. 1. + 3348. 1. 3. 32.0 16.5 3.0 2. 16.0 20.0 5. 4. 0.0 0. 1. + 3349. 1. 3. 37.0 16.5 4.0 2. 14.0 14.0 4. 3. 0.0 0. 1. + 3352. 1. 5. 27.0 6.0 1.0 3. 14.0 14.0 4. 2. 0.0 0. 1. + 3355. 1. 4. 32.0 16.5 4.0 4. 16.0 40.0 4. 4. 0.0 0. 1. + 3366. 1. 4. 22.0 2.5 0.0 3. 12.0 11.5 3. 4. 0.0 0. 1. + 3367. 1. 4. 27.0 2.5 1.0 4. 14.0 11.5 3. 2. 0.0 0. 1. + 3369. 1. 3. 42.0 23.0 3.0 1. 14.0 14.0 3. 4. 0.0 0. 1. + 3372. 1. 4. 27.0 9.0 3.0 3. 12.0 11.5 2. 2. 0.0 0. 1. + 3374. 1. 4. 27.0 9.0 2.0 1. 20.0 20.0 4. 5. 0.0 0. 1. + 3379. 1. 4. 27.0 0.5 0.0 1. 14.0 20.0 4. 2. 0.0 0. 1. + 3388. 1. 5. 42.0 16.5 2.0 2. 12.0 11.5 3. 3. 0.0 0. 1. + 3393. 1. 4. 22.0 2.5 0.0 1. 16.0 11.5 4. 4. 0.0 0. 1. + 3395. 1. 4. 37.0 16.5 2.0 1. 17.0 40.0 4. 6. 0.0 0. 1. + 3396. 1. 5. 32.0 16.5 2.0 1. 12.0 40.0 3. 5. 0.0 0. 1. + 3400. 1. 5. 22.0 2.5 0.0 4. 14.0 20.0 3. 5. 0.0 0. 1. + 3419. 1. 5. 27.0 2.5 2.0 3. 20.0 11.5 2. 4. 0.0 0. 1. + 3424. 1. 5. 22.0 2.5 0.0 3. 14.0 6.5 3. 3. 0.0 0. 1. + 3425. 1. 4. 27.0 6.0 1.0 2. 20.0 20.0 4. 4. 0.0 0. 1. + 3427. 1. 5. 22.0 2.5 0.0 3. 12.0 11.5 3. 4. 0.0 0. 1. + 3431. 1. 4. 22.0 2.5 0.0 3. 14.0 20.0 3. 3. 0.0 0. 1. + 3433. 1. 4. 22.0 2.5 1.0 1. 14.0 40.0 3. 5. 0.0 0. 1. + 3437. 1. 5. 22.0 0.5 0.0 1. 12.0 14.0 3. 2. 0.0 0. 1. + 3438. 1. 4. 22.0 2.5 1.0 3. 12.0 9.0 4. 2. 0.0 0. 1. + 3439. 1. 5. 42.0 23.0 2.0 3. 12.0 20.0 4. 4. 0.0 0. 1. + 3444. 1. 4. 27.0 2.5 0.0 4. 16.0 40.0 5. 6. 0.0 0. 1. + 3448. 1. 5. 32.0 13.0 4.0 3. 16.0 14.0 4. 2. 0.0 0. 1. + 3462. 1. 5. 27.0 6.0 2.0 2. 16.0 20.0 4. 5. 0.0 0. 1. + 3466. 1. 4. 27.0 6.0 0.0 1. 14.0 20.0 3. 4. 0.0 0. 1. + 3470. 1. 4. 17.5 2.5 0.0 1. 14.0 9.0 3. 4. 0.0 0. 1. + 3473. 1. 5. 22.0 0.5 0.0 2. 16.0 20.0 3. 4. 0.0 0. 1. + 3474. 1. 5. 27.0 9.0 2.0 3. 16.0 20.0 4. 4. 0.0 0. 1. + 3477. 1. 5. 22.0 2.5 1.0 3. 12.0 9.0 3. 1. 0.0 0. 1. + 3478. 1. 5. 27.0 2.5 0.0 1. 14.0 20.0 3. 5. 0.0 0. 1. + 3480. 1. 5. 42.0 16.5 2.0 3. 12.0 11.5 5. 4. 0.0 0. 1. + 3486. 1. 5. 17.5 2.5 0.0 2. 12.0 20.0 2. 2. 0.0 0. 1. + 3488. 1. 5. 22.0 2.5 3.0 3. 12.0 20.0 3. 4. 0.0 0. 1. + 3495. 1. 5. 32.0 9.0 3.0 4. 17.0 40.0 4. 6. 0.0 0. 1. + 3496. 1. 5. 22.0 2.5 2.0 3. 14.0 11.5 5. 4. 0.0 0. 1. + 3497. 1. 4. 37.0 23.0 5.5 2. 12.0 20.0 3. 2. 0.0 0. 1. + 3502. 1. 5. 27.0 2.5 0.0 4. 16.0 9.0 5. 3. 0.0 0. 1. + 3503. 1. 4. 22.0 2.5 0.0 1. 14.0 14.0 3. 4. 0.0 0. 1. + 3504. 1. 4. 22.0 2.5 1.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 3506. 1. 5. 22.0 2.5 0.0 3. 12.0 20.0 3. 5. 0.0 0. 1. + 3514. 1. 5. 27.0 6.0 2.0 2. 14.0 14.0 5. 4. 0.0 0. 1. + 3523. 1. 5. 27.0 2.5 0.0 3. 16.0 20.0 4. 5. 0.0 0. 1. + 3524. 1. 4. 32.0 2.5 0.0 3. 17.0 11.5 4. 4. 0.0 0. 1. + 3552. 1. 5. 32.0 6.0 2.0 4. 20.0 20.0 4. 4. 0.0 0. 1. + 3553. 1. 5. 27.0 13.0 3.0 1. 12.0 11.5 3. 4. 0.0 0. 1. + 3559. 1. 5. 32.0 16.5 3.0 3. 12.0 20.0 4. 2. 0.0 0. 1. + 3566. 1. 5. 17.5 0.5 0.0 1. 12.0 14.0 2. 4. 0.0 0. 1. + 3572. 1. 4. 27.0 2.5 0.0 1. 20.0 20.0 6. 6. 0.0 0. 1. + 3582. 1. 4. 22.0 2.5 0.0 2. 12.0 11.5 3. 4. 0.0 0. 1. + 3585. 1. 4. 22.0 0.5 0.0 3. 12.0 20.0 5. 2. 0.0 0. 1. + 3586. 1. 5. 42.0 23.0 1.0 2. 12.0 14.0 2. 2. 0.0 0. 1. + 3594. 1. 3. 22.0 0.5 0.0 1. 12.0 20.0 3. 3. 0.0 0. 1. + 3597. 1. 5. 32.0 9.0 2.0 2. 20.0 14.0 4. 5. 0.0 0. 1. + 3599. 1. 4. 32.0 16.5 2.0 2. 14.0 11.5 5. 4. 0.0 0. 1. + 3610. 1. 5. 27.0 6.0 2.0 2. 12.0 14.0 3. 2. 0.0 0. 1. + 3612. 1. 5. 27.0 2.5 0.0 1. 16.0 20.0 3. 5. 0.0 0. 1. + 3621. 1. 5. 22.0 0.5 0.0 3. 12.0 20.0 3. 3. 0.0 0. 1. + 3623. 1. 4. 27.0 2.5 0.0 3. 17.0 14.0 4. 1. 0.0 0. 1. + 3625. 1. 5. 27.0 2.5 0.0 3. 12.0 20.0 3. 2. 0.0 0. 1. + 3630. 1. 5. 42.0 23.0 2.0 3. 9.0 6.5 2. 4. 0.0 0. 1. + 3631. 1. 5. 27.0 2.5 0.0 3. 14.0 40.0 3. 4. 0.0 0. 1. + 3637. 1. 5. 22.0 0.5 0.0 2. 16.0 20.0 4. 4. 0.0 0. 1. + 3644. 1. 5. 37.0 13.0 2.0 2. 17.0 20.0 4. 5. 0.0 0. 1. + 3646. 1. 4. 42.0 23.0 2.0 1. 12.0 20.0 3. 4. 0.0 0. 1. + 3648. 1. 4. 27.0 6.0 1.0 3. 16.0 11.5 4. 5. 0.0 0. 1. + 3651. 1. 5. 42.0 23.0 2.0 3. 12.0 20.0 3. 3. 0.0 0. 1. + 3652. 1. 5. 22.0 2.5 0.0 3. 16.0 20.0 4. 4. 0.0 0. 1. + 3654. 1. 5. 32.0 13.0 2.0 2. 16.0 14.0 4. 4. 0.0 0. 1. + 3661. 1. 5. 22.0 2.5 0.0 3. 14.0 20.0 4. 5. 0.0 0. 1. + 3672. 1. 4. 32.0 9.0 2.0 1. 12.0 9.0 2. 2. 0.0 0. 1. + 3680. 1. 4. 22.0 2.5 0.0 1. 12.0 11.5 3. 2. 0.0 0. 1. + 3681. 1. 4. 22.0 6.0 2.0 2. 14.0 20.0 3. 6. 0.0 0. 1. + 3686. 1. 5. 22.0 2.5 0.0 2. 14.0 20.0 3. 4. 0.0 0. 1. + 3692. 1. 4. 22.0 2.5 0.0 3. 14.0 11.5 4. 4. 0.0 0. 1. + 3694. 1. 5. 22.0 2.5 0.0 3. 14.0 20.0 5. 5. 0.0 0. 1. + 3697. 1. 5. 22.0 6.0 0.0 3. 12.0 20.0 5. 5. 0.0 0. 1. + 3699. 1. 3. 42.0 23.0 2.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 3702. 1. 5. 22.0 2.5 0.0 1. 12.0 9.0 2. 5. 0.0 0. 1. + 3706. 1. 4. 22.0 2.5 0.0 2. 14.0 20.0 3. 6. 0.0 0. 1. + 3707. 1. 5. 22.0 2.5 0.0 1. 16.0 20.0 5. 5. 0.0 0. 1. + 3709. 1. 4. 17.5 2.5 0.0 2. 14.0 6.5 3. 3. 0.0 0. 1. + 3710. 1. 4. 37.0 13.0 0.0 3. 20.0 40.0 5. 5. 0.0 0. 1. + 3712. 1. 5. 27.0 2.5 0.0 2. 12.0 11.5 3. 4. 0.0 0. 1. + 3720. 1. 5. 22.0 2.5 0.0 2. 14.0 11.5 3. 4. 0.0 0. 1. + 3722. 1. 4. 42.0 23.0 2.0 2. 16.0 20.0 4. 5. 0.0 0. 1. + 3723. 1. 5. 22.0 2.5 1.0 1. 12.0 11.5 2. 4. 0.0 0. 1. + 3726. 1. 4. 27.0 6.0 1.0 2. 16.0 20.0 3. 3. 0.0 0. 1. + 3730. 1. 4. 37.0 16.5 2.0 2. 12.0 14.0 3. 2. 0.0 0. 1. + 3736. 1. 4. 37.0 13.0 5.5 2. 14.0 40.0 2. 6. 0.0 0. 1. + 3745. 1. 5. 22.0 0.5 0.0 3. 16.0 9.0 3. 4. 0.0 0. 1. + 3756. 1. 4. 27.0 2.5 1.0 2. 12.0 11.5 3. 5. 0.0 0. 1. + 3760. 1. 4. 22.0 2.5 0.0 3. 14.0 40.0 3. 4. 0.0 0. 1. + 3761. 1. 5. 27.0 6.0 2.0 2. 16.0 20.0 4. 6. 0.0 0. 1. + 3763. 1. 5. 22.0 0.5 0.0 2. 12.0 20.0 3. 2. 0.0 0. 1. + 3766. 1. 5. 27.0 2.5 0.0 1. 12.0 11.5 2. 2. 0.0 0. 1. + 3767. 1. 4. 22.0 2.5 1.0 1. 12.0 14.0 3. 5. 0.0 0. 1. + 3773. 1. 4. 27.0 0.5 0.0 3. 14.0 20.0 3. 2. 0.0 0. 1. + 3790. 1. 4. 22.0 2.5 0.0 2. 16.0 11.5 4. 1. 0.0 0. 1. + 3797. 1. 3. 32.0 13.0 1.0 1. 12.0 20.0 3. 2. 0.0 0. 1. + 3799. 1. 5. 32.0 6.0 2.0 2. 16.0 14.0 4. 5. 0.0 0. 1. + 3801. 1. 5. 42.0 23.0 4.0 3. 14.0 14.0 2. 2. 0.0 0. 1. + 3803. 1. 4. 22.0 2.5 1.0 3. 14.0 11.5 3. 4. 0.0 0. 1. + 3805. 1. 5. 32.0 2.5 1.0 1. 12.0 14.0 4. 5. 0.0 0. 1. + 3808. 1. 4. 32.0 13.0 2.0 1. 16.0 20.0 3. 6. 0.0 0. 1. + 3811. 1. 5. 27.0 6.0 2.0 2. 14.0 40.0 4. 5. 0.0 0. 1. + 3827. 1. 5. 32.0 16.5 4.0 4. 14.0 11.5 2. 3. 0.0 0. 1. + 3829. 1. 4. 22.0 0.5 0.0 3. 12.0 14.0 3. 4. 0.0 0. 1. + 3834. 1. 4. 22.0 2.5 1.0 1. 14.0 11.5 3. 4. 0.0 0. 1. + 3835. 1. 4. 32.0 9.0 2.0 3. 16.0 40.0 4. 4. 0.0 0. 1. + 3839. 1. 5. 22.0 2.5 0.0 2. 14.0 11.5 1. 1. 0.0 0. 1. + 3846. 1. 4. 27.0 2.5 2.0 3. 16.0 14.0 2. 4. 0.0 0. 1. + 3848. 1. 3. 27.0 16.5 2.0 3. 12.0 20.0 3. 5. 0.0 0. 1. + 3852. 1. 5. 22.0 2.5 0.0 3. 16.0 20.0 3. 2. 0.0 0. 1. + 3856. 1. 3. 27.0 2.5 1.0 3. 12.0 11.5 2. 2. 0.0 0. 1. + 3867. 1. 4. 22.0 2.5 0.0 2. 12.0 20.0 3. 2. 0.0 0. 1. + 3871. 1. 5. 42.0 23.0 5.5 3. 12.0 9.0 3. 2. 0.0 0. 1. + 3872. 1. 4. 37.0 13.0 2.0 2. 17.0 20.0 4. 5. 0.0 0. 1. + 3874. 1. 5. 32.0 2.5 0.0 2. 12.0 11.5 2. 2. 0.0 0. 1. + 3881. 1. 3. 37.0 23.0 3.0 3. 14.0 14.0 4. 5. 0.0 0. 1. + 3886. 1. 5. 22.0 0.5 0.0 3. 16.0 20.0 4. 2. 0.0 0. 1. + 3890. 1. 5. 32.0 16.5 3.0 4. 16.0 9.0 4. 2. 0.0 0. 1. + 3893. 1. 5. 22.0 2.5 0.0 2. 12.0 9.0 4. 4. 0.0 0. 1. + 3906. 1. 5. 37.0 16.5 2.0 4. 20.0 20.0 6. 4. 0.0 0. 1. + 3908. 1. 5. 27.0 6.0 1.0 2. 16.0 20.0 4. 2. 0.0 0. 1. + 3924. 1. 4. 37.0 16.5 2.0 3. 12.0 20.0 3. 5. 0.0 0. 1. + 3932. 1. 5. 42.0 23.0 3.0 3. 17.0 20.0 4. 4. 0.0 0. 1. + 3934. 1. 4. 37.0 16.5 3.0 2. 16.0 20.0 3. 4. 0.0 0. 1. + 3936. 1. 4. 37.0 13.0 2.0 3. 14.0 14.0 4. 2. 0.0 0. 1. + 3938. 1. 5. 22.0 2.5 0.0 1. 12.0 20.0 5. 4. 0.0 0. 1. + 3949. 1. 5. 22.0 0.5 0.0 4. 16.0 20.0 4. 6. 0.0 0. 1. + 3954. 1. 5. 22.0 6.0 1.0 1. 14.0 40.0 2. 4. 0.0 0. 1. + 3956. 1. 3. 22.0 2.5 1.0 2. 12.0 9.0 4. 4. 0.0 0. 1. + 3957. 1. 5. 27.0 2.5 0.0 2. 14.0 40.0 4. 6. 0.0 0. 1. + 3959. 1. 5. 22.0 2.5 0.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 3965. 1. 4. 42.0 23.0 2.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 3972. 1. 4. 22.0 2.5 0.0 2. 12.0 14.0 3. 4. 0.0 0. 1. + 3987. 1. 5. 22.0 0.5 1.0 2. 12.0 14.0 2. 2. 0.0 0. 1. + 3998. 1. 3. 27.0 6.0 2.0 2. 14.0 11.5 2. 4. 0.0 0. 1. + 3999. 1. 5. 22.0 2.5 0.0 3. 14.0 11.5 3. 3. 0.0 0. 1. + 4002. 1. 5. 22.0 0.5 0.0 3. 14.0 14.0 3. 5. 0.0 0. 1. + 4008. 1. 5. 42.0 23.0 3.0 3. 12.0 14.0 3. 2. 0.0 0. 1. + 4017. 1. 4. 27.0 2.5 0.0 1. 16.0 20.0 3. 3. 0.0 0. 1. + 4018. 1. 5. 27.0 2.5 0.0 2. 14.0 11.5 2. 2. 0.0 0. 1. + 4022. 1. 5. 27.0 9.0 2.0 4. 12.0 11.5 2. 4. 0.0 0. 1. + 4024. 1. 4. 22.0 2.5 0.0 4. 16.0 11.5 4. 5. 0.0 0. 1. + 4027. 1. 4. 27.0 6.0 2.0 1. 16.0 14.0 4. 5. 0.0 0. 1. + 4028. 1. 5. 27.0 6.0 1.0 3. 16.0 11.5 4. 5. 0.0 0. 1. + 4032. 1. 5. 32.0 16.5 3.0 3. 12.0 20.0 2. 3. 0.0 0. 1. + 4036. 1. 4. 17.5 2.5 0.0 2. 12.0 11.5 3. 5. 0.0 0. 1. + 4046. 1. 4. 32.0 2.5 0.0 3. 17.0 20.0 4. 2. 0.0 0. 1. + 4059. 1. 3. 32.0 16.5 3.0 3. 14.0 40.0 5. 6. 0.0 0. 1. + 4061. 1. 5. 22.0 2.5 1.0 3. 12.0 20.0 3. 3. 0.0 0. 1. + 4065. 1. 4. 32.0 23.0 4.0 4. 14.0 20.0 4. 2. 0.0 0. 1. + 4066. 1. 5. 22.0 2.5 0.0 1. 16.0 14.0 4. 5. 0.0 0. 1. + 4067. 1. 5. 22.0 0.5 0.0 3. 14.0 20.0 3. 2. 0.0 0. 1. + 4068. 1. 3. 22.0 2.5 0.0 2. 16.0 20.0 4. 6. 0.0 0. 1. + 4070. 1. 4. 37.0 6.0 0.0 3. 20.0 20.0 4. 3. 0.0 0. 1. + 4072. 1. 4. 22.0 0.5 0.0 3. 12.0 14.0 2. 2. 0.0 0. 1. + 4074. 1. 4. 32.0 9.0 0.0 3. 14.0 20.0 4. 4. 0.0 0. 1. + 4080. 1. 5. 22.0 2.5 0.0 3. 12.0 14.0 2. 2. 0.0 0. 1. + 4082. 1. 4. 32.0 13.0 3.0 3. 14.0 11.5 4. 4. 0.0 0. 1. + 4086. 1. 4. 22.0 2.5 1.0 4. 14.0 11.5 3. 5. 0.0 0. 1. + 4093. 1. 4. 22.0 2.5 0.0 3. 12.0 20.0 2. 4. 0.0 0. 1. + 4096. 1. 5. 17.5 2.5 0.0 3. 12.0 4.0 3. 2. 0.0 0. 1. + 4102. 1. 5. 27.0 2.5 1.0 2. 12.0 11.5 2. 2. 0.0 0. 1. + 4107. 1. 5. 22.0 2.5 1.0 1. 12.0 11.5 3. 4. 0.0 0. 1. + 4108. 1. 4. 27.0 6.0 1.0 3. 14.0 11.5 3. 3. 0.0 0. 1. + 4109. 1. 4. 42.0 23.0 2.0 3. 12.0 20.0 3. 3. 0.0 0. 1. + 4113. 1. 4. 37.0 16.5 3.0 2. 16.0 11.5 4. 4. 0.0 0. 1. + 4119. 1. 5. 42.0 23.0 5.5 4. 12.0 11.5 3. 5. 0.0 0. 1. + 4120. 1. 5. 27.0 9.0 2.0 2. 12.0 11.5 2. 4. 0.0 0. 1. + 4122. 1. 5. 27.0 6.0 0.0 2. 14.0 40.0 2. 3. 0.0 0. 1. + 4124. 1. 5. 22.0 0.5 0.0 3. 16.0 9.0 4. 2. 0.0 0. 1. + 4131. 1. 5. 42.0 23.0 5.5 2. 16.0 40.0 4. 6. 0.0 0. 1. + 4132. 1. 4. 22.0 2.5 0.0 3. 16.0 11.5 4. 5. 0.0 0. 1. + 4143. 1. 5. 32.0 13.0 1.0 3. 14.0 14.0 3. 5. 0.0 0. 1. + 4148. 1. 5. 27.0 2.5 0.0 3. 16.0 11.5 4. 4. 0.0 0. 1. + 4149. 1. 5. 42.0 23.0 4.0 3. 14.0 40.0 4. 4. 0.0 0. 1. + 4150. 1. 5. 22.0 2.5 1.0 2. 12.0 14.0 2. 4. 0.0 0. 1. + 4151. 1. 3. 32.0 9.0 2.0 2. 14.0 14.0 3. 4. 0.0 0. 1. + 4162. 1. 5. 27.0 2.5 0.0 3. 12.0 14.0 3. 3. 0.0 0. 1. + 4163. 1. 4. 22.0 0.5 0.0 3. 14.0 9.0 4. 2. 0.0 0. 1. + 4164. 1. 2. 37.0 16.5 5.5 3. 14.0 20.0 3. 5. 0.0 0. 1. + 4167. 1. 5. 42.0 23.0 4.0 3. 12.0 20.0 5. 4. 0.0 0. 1. + 4173. 1. 3. 27.0 9.0 0.0 2. 12.0 20.0 3. 6. 0.0 0. 1. + 4174. 1. 5. 42.0 16.5 3.0 2. 14.0 14.0 3. 4. 0.0 0. 1. + 4175. 1. 4. 27.0 9.0 2.0 3. 14.0 14.0 2. 4. 0.0 0. 1. + 4180. 1. 4. 17.5 0.5 0.0 2. 12.0 11.5 3. 5. 0.0 0. 1. + 4185. 1. 4. 22.0 2.5 0.0 4. 12.0 11.5 2. 5. 0.0 0. 1. + 4187. 1. 4. 22.0 2.5 1.0 2. 12.0 11.5 2. 4. 0.0 0. 1. + 4189. 1. 5. 22.0 0.5 0.0 3. 14.0 20.0 3. 4. 0.0 0. 1. + 4193. 1. 5. 32.0 16.5 3.0 2. 12.0 20.0 3. 5. 0.0 0. 1. + 4197. 1. 4. 32.0 16.5 2.0 3. 14.0 14.0 4. 5. 0.0 0. 1. + 4202. 1. 5. 22.0 2.5 0.0 1. 17.0 14.0 4. 4. 0.0 0. 1. + 4204. 1. 5. 27.0 2.5 0.0 2. 16.0 20.0 5. 6. 0.0 0. 1. + 4207. 1. 5. 32.0 0.5 0.0 1. 12.0 40.0 4. 5. 0.0 0. 1. + 4208. 1. 3. 22.0 6.0 1.0 2. 9.0 11.5 2. 2. 0.0 0. 1. + 4216. 1. 4. 27.0 13.0 3.0 2. 12.0 11.5 3. 2. 0.0 0. 1. + 4222. 1. 5. 37.0 0.5 0.0 3. 12.0 20.0 3. 4. 0.0 0. 1. + 4224. 1. 5. 17.5 0.5 0.0 3. 12.0 11.5 3. 2. 0.0 0. 1. + 4228. 1. 4. 27.0 2.5 0.0 2. 16.0 20.0 4. 3. 0.0 0. 1. + 4229. 1. 4. 37.0 9.0 2.0 3. 17.0 14.0 4. 4. 0.0 0. 1. + 4236. 1. 4. 22.0 6.0 2.0 3. 12.0 6.5 3. 2. 0.0 0. 1. + 4240. 1. 4. 42.0 23.0 3.0 3. 14.0 40.0 3. 5. 0.0 0. 1. + 4244. 1. 5. 22.0 2.5 1.0 1. 14.0 14.0 3. 2. 0.0 0. 1. + 4247. 1. 3. 22.0 2.5 0.0 2. 16.0 4.0 3. 5. 0.0 0. 1. + 4248. 1. 5. 22.0 6.0 1.0 2. 12.0 14.0 3. 4. 0.0 0. 1. + 4251. 1. 4. 37.0 16.5 3.0 4. 16.0 14.0 4. 3. 0.0 0. 1. + 4253. 1. 3. 42.0 23.0 5.5 2. 14.0 20.0 3. 2. 0.0 0. 1. + 4254. 1. 5. 22.0 2.5 0.0 3. 12.0 14.0 2. 2. 0.0 0. 1. + 4255. 1. 4. 27.0 2.5 1.0 4. 16.0 14.0 4. 2. 0.0 0. 1. + 4258. 1. 4. 32.0 9.0 3.0 3. 14.0 20.0 2. 2. 0.0 0. 1. + 4259. 1. 5. 37.0 16.5 3.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 4260. 1. 5. 22.0 6.0 1.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 4268. 1. 5. 22.0 2.5 1.0 3. 12.0 14.0 2. 2. 0.0 0. 1. + 4270. 1. 4. 27.0 9.0 1.0 2. 14.0 20.0 3. 4. 0.0 0. 1. + 4271. 1. 5. 22.0 2.5 0.0 4. 16.0 20.0 6. 6. 0.0 0. 1. + 4288. 1. 4. 32.0 2.5 0.0 3. 17.0 9.0 4. 3. 0.0 0. 1. + 4289. 1. 5. 27.0 9.0 0.0 3. 12.0 20.0 3. 3. 0.0 0. 1. + 4291. 1. 4. 22.0 6.0 0.0 1. 14.0 14.0 3. 5. 0.0 0. 1. + 4297. 1. 5. 42.0 23.0 4.0 4. 12.0 20.0 3. 2. 0.0 0. 1. + 4304. 1. 5. 32.0 16.5 4.0 3. 12.0 11.5 5. 4. 0.0 0. 1. + 4305. 1. 5. 32.0 16.5 3.0 3. 12.0 20.0 3. 4. 0.0 0. 1. + 4306. 1. 4. 27.0 6.0 0.0 2. 12.0 11.5 3. 4. 0.0 0. 1. + 4308. 1. 4. 32.0 2.5 0.0 3. 16.0 20.0 3. 4. 0.0 0. 1. + 4311. 1. 5. 27.0 6.0 1.0 2. 16.0 20.0 3. 3. 0.0 0. 1. + 4319. 1. 5. 22.0 0.5 0.0 1. 12.0 20.0 3. 2. 0.0 0. 1. + 4322. 1. 5. 42.0 23.0 4.0 4. 12.0 20.0 2. 4. 0.0 0. 1. + 4327. 1. 2. 32.0 6.0 2.0 2. 16.0 20.0 4. 6. 0.0 0. 1. + 4331. 1. 5. 22.0 6.0 2.0 3. 16.0 11.5 4. 2. 0.0 0. 1. + 4332. 1. 4. 22.0 2.5 1.0 2. 12.0 11.5 5. 4. 0.0 0. 1. + 4335. 1. 5. 42.0 23.0 5.5 3. 12.0 14.0 3. 2. 0.0 0. 1. + 4339. 1. 5. 32.0 6.0 2.0 2. 14.0 14.0 4. 4. 0.0 0. 1. + 4340. 1. 5. 42.0 23.0 2.0 2. 14.0 20.0 5. 3. 0.0 0. 1. + 4348. 1. 4. 27.0 6.0 0.0 3. 14.0 11.5 3. 5. 0.0 0. 1. + 4355. 1. 4. 37.0 16.5 3.0 3. 14.0 20.0 3. 4. 0.0 0. 1. + 4359. 1. 5. 42.0 16.5 3.0 2. 12.0 40.0 5. 2. 0.0 0. 1. + 4363. 1. 4. 32.0 16.5 3.0 2. 12.0 11.5 3. 4. 0.0 0. 1. + 4365. 1. 5. 22.0 2.5 0.0 2. 14.0 14.0 5. 1. 0.0 0. 1. + 4368. 1. 4. 27.0 9.0 2.0 3. 14.0 14.0 4. 3. 0.0 0. 1. + 4369. 1. 5. 22.0 6.0 1.0 2. 9.0 40.0 4. 2. 0.0 0. 1. + 4372. 1. 4. 22.0 2.5 2.0 2. 14.0 14.0 3. 4. 0.0 0. 1. + 4382. 1. 5. 27.0 9.0 1.0 3. 16.0 20.0 4. 4. 0.0 0. 1. + 4385. 1. 4. 27.0 6.0 2.0 3. 14.0 20.0 3. 4. 0.0 0. 1. + 4387. 1. 5. 22.0 2.5 0.0 4. 9.0 14.0 3. 5. 0.0 0. 1. + 4389. 1. 5. 22.0 2.5 0.0 3. 20.0 20.0 4. 6. 0.0 0. 1. + 4390. 1. 5. 27.0 2.5 0.0 2. 16.0 20.0 4. 2. 0.0 0. 1. + 4394. 1. 5. 22.0 2.5 0.0 3. 17.0 14.0 4. 5. 0.0 0. 1. + 4395. 1. 5. 27.0 13.0 2.0 3. 12.0 14.0 3. 4. 0.0 0. 1. + 4397. 1. 4. 27.0 2.5 0.0 3. 16.0 14.0 4. 5. 0.0 0. 1. + 4407. 1. 4. 42.0 23.0 2.0 4. 12.0 9.0 4. 2. 0.0 0. 1. + 4414. 1. 5. 27.0 6.0 2.0 2. 17.0 6.5 4. 1. 0.0 0. 1. + 4415. 1. 3. 27.0 2.5 0.0 1. 16.0 14.0 4. 5. 0.0 0. 1. + 4427. 1. 4. 27.0 6.0 1.0 3. 12.0 11.5 4. 6. 0.0 0. 1. + 4428. 1. 5. 27.0 6.0 1.0 2. 16.0 14.0 4. 3. 0.0 0. 1. + 4431. 1. 5. 22.0 0.5 0.0 2. 12.0 6.5 2. 2. 0.0 0. 1. + 4436. 1. 2. 22.0 0.5 0.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 4438. 1. 4. 27.0 2.5 0.0 3. 14.0 20.0 3. 5. 0.0 0. 1. + 4447. 1. 5. 27.0 6.0 1.0 1. 14.0 20.0 4. 2. 0.0 0. 1. + 4448. 1. 4. 37.0 23.0 3.0 3. 14.0 20.0 2. 6. 0.0 0. 1. + 4451. 1. 3. 22.0 2.5 0.0 1. 14.0 20.0 3. 5. 0.0 0. 1. + 4455. 1. 4. 27.0 9.0 2.0 3. 17.0 20.0 4. 6. 0.0 0. 1. + 4456. 1. 4. 42.0 23.0 5.5 3. 12.0 14.0 3. 2. 0.0 0. 1. + 4458. 1. 4. 22.0 0.5 0.0 3. 16.0 11.5 3. 5. 0.0 0. 1. + 4460. 1. 5. 22.0 2.5 0.0 1. 14.0 11.5 3. 5. 0.0 0. 1. + 4464. 1. 5. 22.0 6.0 0.0 2. 12.0 20.0 3. 5. 0.0 0. 1. + 4465. 1. 4. 27.0 6.0 1.0 3. 16.0 11.5 4. 3. 0.0 0. 1. + 4467. 1. 4. 42.0 23.0 4.0 3. 12.0 20.0 3. 4. 0.0 0. 1. + 4472. 1. 5. 22.0 0.5 0.0 3. 12.0 11.5 3. 5. 0.0 0. 1. + 4477. 1. 4. 22.0 2.5 0.0 1. 16.0 11.5 2. 4. 0.0 0. 1. + 4486. 1. 5. 22.0 0.5 0.0 4. 14.0 20.0 3. 4. 0.0 0. 1. + 4488. 1. 5. 27.0 2.5 0.0 3. 14.0 11.5 3. 4. 0.0 0. 1. + 4492. 1. 5. 22.0 2.5 0.0 4. 14.0 9.0 3. 6. 0.0 0. 1. + 4495. 1. 4. 37.0 16.5 4.0 3. 14.0 20.0 4. 5. 0.0 0. 1. + 4497. 1. 5. 22.0 2.5 0.0 2. 12.0 9.0 2. 2. 0.0 0. 1. + 4500. 1. 5. 22.0 2.5 0.0 2. 14.0 14.0 3. 5. 0.0 0. 1. + 4502. 1. 4. 22.0 2.5 1.0 4. 16.0 11.5 3. 2. 0.0 0. 1. + 4504. 1. 5. 37.0 23.0 4.0 1. 14.0 20.0 3. 2. 0.0 0. 1. + 4506. 1. 5. 27.0 2.5 0.0 1. 16.0 40.0 3. 5. 0.0 0. 1. + 4509. 1. 3. 37.0 9.0 1.0 2. 17.0 20.0 5. 5. 0.0 0. 1. + 4511. 1. 5. 22.0 0.5 0.0 4. 16.0 20.0 4. 2. 0.0 0. 1. + 4513. 1. 5. 27.0 9.0 2.0 2. 14.0 14.0 4. 5. 0.0 0. 1. + 4515. 1. 5. 32.0 6.0 1.0 3. 12.0 9.0 3. 2. 0.0 0. 1. + 4524. 1. 4. 22.0 2.5 0.0 3. 14.0 20.0 3. 5. 0.0 0. 1. + 4530. 1. 4. 27.0 6.0 0.0 1. 14.0 20.0 3. 5. 0.0 0. 1. + 4539. 1. 4. 17.5 0.5 0.0 3. 14.0 20.0 3. 5. 0.0 0. 1. + 4542. 1. 4. 27.0 6.0 1.0 1. 16.0 20.0 5. 4. 0.0 0. 1. + 4546. 1. 4. 22.0 2.5 0.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 4549. 1. 4. 27.0 6.0 0.0 3. 14.0 40.0 4. 5. 0.0 0. 1. + 4565. 1. 4. 27.0 6.0 2.0 3. 16.0 20.0 4. 5. 0.0 0. 1. + 4567. 1. 4. 27.0 6.0 0.0 1. 20.0 20.0 4. 4. 0.0 0. 1. + 4574. 1. 5. 22.0 2.5 0.0 4. 14.0 20.0 5. 4. 0.0 0. 1. + 4589. 1. 5. 27.0 2.5 0.0 4. 20.0 20.0 6. 5. 0.0 0. 1. + 4593. 1. 5. 22.0 0.5 0.0 2. 17.0 14.0 4. 2. 0.0 0. 1. + 4595. 1. 5. 37.0 23.0 4.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 4601. 1. 5. 37.0 16.5 4.0 4. 12.0 20.0 4. 5. 0.0 0. 1. + 4603. 1. 5. 27.0 2.5 0.0 1. 14.0 14.0 5. 5. 0.0 0. 1. + 4604. 1. 5. 42.0 23.0 4.0 3. 12.0 14.0 3. 4. 0.0 0. 1. + 4607. 1. 5. 27.0 13.0 3.0 1. 14.0 14.0 2. 4. 0.0 0. 1. + 4609. 1. 4. 22.0 2.5 0.0 2. 14.0 20.0 3. 4. 0.0 0. 1. + 4611. 1. 5. 32.0 16.5 4.0 4. 12.0 20.0 2. 4. 0.0 0. 1. + 4615. 1. 3. 37.0 16.5 2.0 3. 12.0 11.5 3. 4. 0.0 0. 1. + 4623. 1. 5. 22.0 2.5 0.0 2. 12.0 11.5 3. 2. 0.0 0. 1. + 4625. 1. 4. 27.0 2.5 1.0 3. 12.0 20.0 3. 2. 0.0 0. 1. + 4628. 1. 5. 27.0 2.5 0.0 3. 12.0 20.0 3. 2. 0.0 0. 1. + 4633. 1. 5. 32.0 13.0 3.0 3. 12.0 20.0 3. 4. 0.0 0. 1. + 4636. 1. 4. 27.0 2.5 1.0 2. 16.0 11.5 4. 4. 0.0 0. 1. + 4639. 1. 4. 22.0 0.5 0.0 3. 12.0 20.0 3. 5. 0.0 0. 1. + 4647. 1. 4. 27.0 2.5 0.0 2. 16.0 14.0 4. 4. 0.0 0. 1. + 4648. 1. 4. 27.0 2.5 0.0 2. 17.0 40.0 5. 6. 0.0 0. 1. + 4649. 1. 2. 22.0 2.5 0.0 1. 16.0 4.0 4. 1. 0.0 0. 1. + 4650. 1. 4. 32.0 9.0 2.0 3. 14.0 14.0 2. 4. 0.0 0. 1. + 4653. 1. 5. 42.0 23.0 3.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 4655. 1. 3. 27.0 2.5 0.0 2. 14.0 40.0 4. 4. 0.0 0. 1. + 4657. 1. 5. 27.0 13.0 0.0 3. 12.0 20.0 3. 4. 0.0 0. 1. + 4664. 1. 4. 22.0 2.5 0.0 3. 12.0 9.0 3. 2. 0.0 0. 1. + 4666. 1. 4. 17.5 0.5 0.0 3. 17.0 4.0 2. 4. 0.0 0. 1. + 4667. 1. 4. 27.0 6.0 1.0 2. 12.0 11.5 3. 6. 0.0 0. 1. + 4668. 1. 5. 22.0 6.0 0.0 4. 14.0 6.5 4. 1. 0.0 0. 1. + 4669. 1. 3. 27.0 6.0 1.0 3. 16.0 14.0 4. 5. 0.0 0. 1. + 4670. 1. 5. 22.0 6.0 2.0 3. 12.0 20.0 4. 5. 0.0 0. 1. + 4672. 1. 5. 27.0 6.0 2.0 3. 16.0 14.0 4. 6. 0.0 0. 1. + 4673. 1. 5. 27.0 2.5 1.0 3. 14.0 11.5 5. 5. 0.0 0. 1. + 4674. 1. 4. 22.0 2.5 1.0 2. 14.0 14.0 1. 5. 0.0 0. 1. + 4675. 1. 4. 32.0 13.0 2.0 3. 12.0 20.0 2. 6. 0.0 0. 1. + 4683. 1. 4. 27.0 16.5 2.0 3. 20.0 20.0 4. 4. 0.0 0. 1. + 4694. 1. 4. 32.0 9.0 2.0 2. 17.0 20.0 4. 5. 0.0 0. 1. + 4698. 1. 4. 37.0 16.5 3.0 3. 14.0 11.5 2. 5. 0.0 0. 1. + 4703. 1. 5. 17.5 0.5 0.0 3. 12.0 6.5 2. 2. 0.0 0. 1. + 4708. 1. 4. 22.0 2.5 0.0 2. 16.0 9.0 4. 1. 0.0 0. 1. + 4711. 1. 4. 27.0 9.0 1.0 3. 14.0 9.0 3. 5. 0.0 0. 1. + 4720. 1. 5. 27.0 6.0 2.0 3. 14.0 14.0 4. 2. 0.0 0. 1. + 4722. 1. 1. 32.0 16.5 5.5 2. 12.0 14.0 2. 2. 0.0 0. 1. + 4737. 1. 3. 27.0 9.0 1.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 4739. 1. 3. 32.0 13.0 4.0 3. 12.0 11.5 2. 4. 0.0 0. 1. + 4740. 1. 5. 42.0 13.0 4.0 4. 14.0 14.0 3. 4. 0.0 0. 1. + 4741. 1. 3. 22.0 2.5 1.0 3. 14.0 14.0 3. 2. 0.0 0. 1. + 4747. 1. 5. 32.0 13.0 2.0 2. 12.0 14.0 2. 2. 0.0 0. 1. + 4751. 1. 5. 27.0 2.5 0.0 3. 16.0 40.0 4. 5. 0.0 0. 1. + 4754. 1. 4. 22.0 2.5 0.0 2. 16.0 20.0 4. 5. 0.0 0. 1. + 4764. 1. 5. 22.0 2.5 0.0 3. 12.0 14.0 3. 4. 0.0 0. 1. + 4766. 1. 5. 22.0 2.5 0.0 2. 12.0 9.0 2. 4. 0.0 0. 1. + 4767. 1. 3. 37.0 16.5 2.0 2. 14.0 9.0 2. 2. 0.0 0. 1. + 4772. 1. 5. 32.0 9.0 2.0 2. 20.0 20.0 4. 6. 0.0 0. 1. + 4777. 1. 5. 27.0 13.0 2.0 2. 12.0 14.0 5. 5. 0.0 0. 1. + 4780. 1. 3. 37.0 13.0 1.0 4. 12.0 11.5 2. 2. 0.0 0. 1. + 4781. 1. 5. 42.0 23.0 3.0 2. 12.0 11.5 2. 2. 0.0 0. 1. + 4782. 1. 4. 22.0 2.5 0.0 3. 14.0 9.0 3. 4. 0.0 0. 1. + 4792. 1. 4. 42.0 23.0 2.0 4. 14.0 40.0 3. 2. 0.0 0. 1. + 4797. 1. 3. 22.0 2.5 0.0 1. 14.0 14.0 3. 2. 0.0 0. 1. + 4798. 1. 4. 27.0 0.5 0.0 2. 14.0 14.0 3. 3. 0.0 0. 1. + 4803. 1. 4. 42.0 13.0 2.0 1. 20.0 40.0 4. 4. 0.0 0. 1. + 4805. 1. 4. 22.0 2.5 0.0 2. 14.0 11.5 3. 2. 0.0 0. 1. + 4818. 1. 5. 27.0 6.0 0.0 4. 16.0 20.0 3. 5. 0.0 0. 1. + 4819. 1. 4. 22.0 0.5 0.0 3. 14.0 11.5 3. 4. 0.0 0. 1. + 4821. 1. 5. 32.0 2.5 0.0 3. 17.0 20.0 4. 4. 0.0 0. 1. + 4822. 1. 5. 22.0 2.5 0.0 3. 12.0 11.5 3. 2. 0.0 0. 1. + 4825. 1. 4. 32.0 16.5 4.0 1. 12.0 20.0 2. 2. 0.0 0. 1. + 4828. 1. 3. 27.0 6.0 0.0 3. 17.0 20.0 4. 4. 0.0 0. 1. + 4832. 1. 5. 32.0 13.0 2.0 3. 16.0 11.5 2. 2. 0.0 0. 1. + 4836. 1. 5. 27.0 2.5 0.0 3. 16.0 20.0 4. 5. 0.0 0. 1. + 4840. 1. 4. 32.0 16.5 2.0 2. 14.0 20.0 4. 5. 0.0 0. 1. + 4842. 1. 4. 17.5 0.5 0.0 2. 12.0 4.0 2. 2. 0.0 0. 1. + 4845. 1. 4. 37.0 23.0 3.0 2. 12.0 14.0 3. 5. 0.0 0. 1. + 4849. 1. 5. 27.0 13.0 2.0 3. 14.0 14.0 3. 4. 0.0 0. 1. + 4862. 1. 5. 32.0 16.5 3.0 2. 12.0 11.5 2. 2. 0.0 0. 1. + 4873. 1. 5. 27.0 6.0 2.0 2. 14.0 11.5 2. 5. 0.0 0. 1. + 4894. 1. 5. 22.0 2.5 0.0 3. 12.0 9.0 3. 2. 0.0 0. 1. + 4899. 1. 5. 27.0 2.5 1.0 3. 16.0 11.5 4. 4. 0.0 0. 1. + 4900. 1. 3. 17.5 2.5 1.0 3. 12.0 9.0 3. 2. 0.0 0. 1. + 4909. 1. 5. 22.0 2.5 0.0 2. 14.0 40.0 4. 2. 0.0 0. 1. + 4911. 1. 5. 22.0 0.5 0.0 4. 16.0 6.5 4. 2. 0.0 0. 1. + 4916. 1. 4. 27.0 2.5 0.0 3. 12.0 9.0 3. 2. 0.0 0. 1. + 4919. 1. 4. 27.0 6.0 2.0 1. 12.0 11.5 2. 2. 0.0 0. 1. + 4926. 1. 4. 22.0 6.0 1.0 2. 14.0 20.0 3. 4. 0.0 0. 1. + 4927. 1. 4. 27.0 2.5 0.0 3. 17.0 11.5 4. 1. 0.0 0. 1. + 4931. 1. 2. 32.0 16.5 3.0 4. 16.0 20.0 4. 4. 0.0 0. 1. + 4933. 1. 4. 22.0 2.5 0.0 2. 14.0 6.5 3. 2. 0.0 0. 1. + 4938. 1. 5. 27.0 2.5 0.0 2. 17.0 20.0 4. 3. 0.0 0. 1. + 4940. 1. 4. 27.0 2.5 0.0 3. 16.0 11.5 4. 2. 0.0 0. 1. + 4941. 1. 5. 27.0 6.0 2.0 4. 12.0 14.0 3. 2. 0.0 0. 1. + 4942. 1. 5. 32.0 16.5 2.0 3. 14.0 9.0 2. 2. 0.0 0. 1. + 4944. 1. 5. 17.5 2.5 0.0 2. 14.0 11.5 4. 4. 0.0 0. 1. + 4947. 1. 4. 42.0 16.5 5.5 3. 12.0 14.0 2. 5. 0.0 0. 1. + 4949. 1. 5. 27.0 2.5 1.0 2. 12.0 20.0 4. 4. 0.0 0. 1. + 4952. 1. 4. 32.0 2.5 0.0 3. 16.0 20.0 5. 5. 0.0 0. 1. + 4963. 1. 5. 22.0 6.0 1.0 2. 12.0 11.5 2. 2. 0.0 0. 1. + 4966. 1. 4. 27.0 6.0 1.0 3. 16.0 14.0 4. 4. 0.0 0. 1. + 4968. 1. 4. 37.0 16.5 2.0 2. 20.0 40.0 4. 4. 0.0 0. 1. + 4981. 1. 5. 17.5 0.5 0.0 3. 12.0 11.5 3. 2. 0.0 0. 1. + 4989. 1. 4. 37.0 16.5 3.0 3. 12.0 20.0 5. 2. 0.0 0. 1. + 4991. 1. 5. 27.0 2.5 0.0 2. 16.0 11.5 2. 2. 0.0 0. 1. + 4995. 1. 4. 27.0 6.0 0.0 2. 14.0 14.0 3. 1. 0.0 0. 1. + 5002. 1. 4. 27.0 9.0 2.0 3. 20.0 20.0 4. 4. 0.0 0. 1. + 5012. 1. 5. 32.0 16.5 2.0 4. 12.0 14.0 2. 5. 0.0 0. 1. + 5013. 1. 5. 27.0 2.5 2.0 3. 17.0 11.5 4. 5. 0.0 0. 1. + 5016. 1. 5. 37.0 16.5 2.0 3. 14.0 11.5 3. 2. 0.0 0. 1. + 5021. 1. 4. 42.0 23.0 3.0 3. 14.0 14.0 3. 2. 0.0 0. 1. + 5022. 1. 5. 32.0 16.5 2.0 3. 14.0 11.5 3. 4. 0.0 0. 1. + 5023. 1. 4. 22.0 0.5 0.0 2. 12.0 20.0 3. 5. 0.0 0. 1. + 5035. 1. 5. 27.0 6.0 1.0 1. 20.0 11.5 3. 5. 0.0 0. 1. + 5041. 1. 3. 27.0 2.5 0.0 3. 17.0 40.0 4. 3. 0.0 0. 1. + 5049. 1. 4. 32.0 13.0 2.0 3. 14.0 14.0 3. 5. 0.0 0. 1. + 5055. 1. 4. 22.0 2.5 1.0 2. 14.0 20.0 3. 4. 0.0 0. 1. + 5058. 1. 4. 27.0 2.5 0.0 1. 12.0 14.0 3. 4. 0.0 0. 1. + 5062. 1. 5. 22.0 2.5 0.0 3. 12.0 9.0 3. 4. 0.0 0. 1. + 5063. 1. 3. 42.0 23.0 3.0 3. 12.0 11.5 5. 2. 0.0 0. 1. + 5066. 1. 5. 27.0 6.0 0.0 3. 14.0 20.0 3. 4. 0.0 0. 1. + 5067. 1. 4. 37.0 16.5 2.0 3. 16.0 20.0 4. 5. 0.0 0. 1. + 5069. 1. 4. 27.0 6.0 0.0 4. 14.0 20.0 3. 3. 0.0 0. 1. + 5070. 1. 5. 22.0 6.0 1.0 3. 12.0 9.0 3. 4. 0.0 0. 1. + 5072. 1. 5. 32.0 6.0 1.0 2. 17.0 20.0 4. 3. 0.0 0. 1. + 5075. 1. 5. 22.0 0.5 0.0 2. 12.0 14.0 3. 4. 0.0 0. 1. + 5083. 1. 4. 22.0 2.5 0.0 3. 14.0 20.0 3. 4. 0.0 0. 1. + 5100. 1. 4. 22.0 0.5 0.0 3. 12.0 20.0 3. 4. 0.0 0. 1. + 5101. 1. 3. 32.0 2.5 1.0 2. 14.0 20.0 3. 4. 0.0 0. 1. + 5102. 1. 2. 32.0 6.0 0.0 3. 17.0 20.0 4. 3. 0.0 0. 1. + 5115. 1. 5. 32.0 9.0 2.0 4. 17.0 20.0 4. 4. 0.0 0. 1. + 5116. 1. 4. 42.0 23.0 2.0 3. 12.0 11.5 3. 4. 0.0 0. 1. + 5121. 1. 5. 42.0 23.0 3.0 4. 17.0 20.0 4. 6. 0.0 0. 1. + 5128. 1. 5. 22.0 2.5 1.0 2. 12.0 6.5 2. 5. 0.0 0. 1. + 5135. 1. 5. 42.0 23.0 2.0 2. 12.0 9.0 2. 2. 0.0 0. 1. + 5136. 1. 4. 27.0 6.0 1.0 2. 12.0 20.0 2. 4. 0.0 0. 1. + 5141. 1. 4. 27.0 2.5 0.0 1. 14.0 20.0 3. 3. 0.0 0. 1. + 5142. 1. 5. 22.0 2.5 0.0 2. 16.0 11.5 2. 1. 0.0 0. 1. + 5163. 1. 4. 42.0 16.5 4.0 4. 17.0 20.0 4. 5. 0.0 0. 1. + 5164. 1. 5. 27.0 2.5 0.0 1. 14.0 14.0 3. 4. 0.0 0. 1. + 5165. 1. 3. 32.0 9.0 1.0 3. 14.0 20.0 2. 5. 0.0 0. 1. + 5168. 1. 5. 22.0 2.5 0.0 3. 14.0 14.0 4. 6. 0.0 0. 1. + 5170. 1. 4. 22.0 6.0 0.0 3. 12.0 14.0 3. 4. 0.0 0. 1. + 5173. 1. 5. 22.0 2.5 0.0 2. 16.0 20.0 4. 2. 0.0 0. 1. + 5175. 1. 4. 22.0 0.5 0.0 3. 16.0 20.0 4. 5. 0.0 0. 1. + 5177. 1. 5. 22.0 0.5 1.0 3. 16.0 20.0 4. 5. 0.0 0. 1. + 5183. 1. 4. 32.0 9.0 0.0 2. 14.0 40.0 3. 2. 0.0 0. 1. + 5184. 1. 3. 27.0 2.5 1.0 3. 14.0 9.0 4. 4. 0.0 0. 1. + 5188. 1. 4. 27.0 6.0 0.0 2. 20.0 40.0 4. 6. 0.0 0. 1. + 5189. 1. 5. 22.0 2.5 0.0 1. 16.0 6.5 4. 2. 0.0 0. 1. + 5191. 1. 5. 22.0 2.5 2.0 3. 12.0 6.5 2. 4. 0.0 0. 1. + 5199. 1. 5. 22.0 6.0 3.0 3. 12.0 20.0 3. 2. 0.0 0. 1. + 5200. 1. 4. 27.0 9.0 2.0 3. 14.0 11.5 6. 4. 0.0 0. 1. + 5201. 1. 4. 32.0 16.5 5.5 3. 14.0 14.0 2. 2. 0.0 0. 1. + 5204. 1. 5. 32.0 6.0 2.0 3. 17.0 20.0 2. 6. 0.0 0. 1. + 5215. 1. 4. 22.0 0.5 0.0 3. 17.0 11.5 5. 5. 0.0 0. 1. + 5216. 1. 5. 27.0 6.0 2.0 4. 12.0 9.0 2. 2. 0.0 0. 1. + 5219. 1. 5. 42.0 23.0 4.0 4. 12.0 20.0 3. 5. 0.0 0. 1. + 5220. 1. 4. 22.0 2.5 0.0 2. 12.0 11.5 2. 5. 0.0 0. 1. + 5224. 1. 4. 42.0 23.0 3.0 3. 12.0 11.5 2. 2. 0.0 0. 1. + 5228. 1. 5. 32.0 9.0 2.0 3. 14.0 14.0 2. 2. 0.0 0. 1. + 5229. 1. 5. 42.0 23.0 3.0 2. 12.0 20.0 3. 2. 0.0 0. 1. + 5232. 1. 4. 42.0 23.0 2.0 2. 12.0 20.0 3. 5. 0.0 0. 1. + 5235. 1. 5. 27.0 9.0 1.0 4. 16.0 14.0 3. 3. 0.0 0. 1. + 5244. 1. 5. 22.0 2.5 0.0 3. 12.0 20.0 2. 2. 0.0 0. 1. + 5257. 1. 3. 32.0 16.5 2.0 2. 9.0 20.0 2. 4. 0.0 0. 1. + 5259. 1. 5. 22.0 2.5 0.0 3. 16.0 20.0 3. 5. 0.0 0. 1. + 5260. 1. 5. 32.0 9.0 1.0 4. 20.0 20.0 4. 5. 0.0 0. 1. + 5262. 1. 5. 27.0 6.0 2.0 4. 14.0 11.5 3. 2. 0.0 0. 1. + 5263. 1. 5. 42.0 23.0 2.0 3. 14.0 20.0 3. 4. 0.0 0. 1. + 5269. 1. 5. 32.0 16.5 2.0 1. 14.0 14.0 4. 5. 0.0 0. 1. + 5271. 1. 5. 27.0 9.0 3.0 1. 20.0 20.0 1. 6. 0.0 0. 1. + 5272. 1. 5. 32.0 13.0 2.0 4. 20.0 14.0 6. 6. 0.0 0. 1. + 5273. 1. 5. 22.0 2.5 0.0 2. 17.0 20.0 5. 4. 0.0 0. 1. + 5274. 1. 4. 27.0 6.0 0.0 3. 14.0 20.0 3. 5. 0.0 0. 1. + 5283. 1. 5. 27.0 2.5 0.0 4. 16.0 11.5 5. 5. 0.0 0. 1. + 5285. 1. 4. 17.5 2.5 1.0 2. 12.0 6.5 5. 6. 0.0 0. 1. + 5290. 1. 5. 22.0 0.5 0.0 4. 16.0 6.5 3. 2. 0.0 0. 1. + 5291. 1. 4. 22.0 2.5 0.0 4. 16.0 9.0 3. 1. 0.0 0. 1. + 5292. 1. 5. 37.0 23.0 5.5 3. 12.0 6.5 2. 2. 0.0 0. 1. + 5301. 1. 4. 22.0 0.5 0.0 1. 12.0 11.5 5. 2. 0.0 0. 1. + 5307. 1. 3. 32.0 9.0 3.0 3. 14.0 20.0 3. 6. 0.0 0. 1. + 5308. 1. 4. 22.0 2.5 0.0 1. 12.0 20.0 2. 4. 0.0 0. 1. + 5310. 1. 3. 27.0 6.0 4.0 3. 16.0 40.0 4. 5. 0.0 0. 1. + 5311. 1. 4. 22.0 2.5 1.0 3. 14.0 14.0 4. 5. 0.0 0. 1. + 5312. 1. 4. 32.0 6.0 0.0 1. 16.0 11.5 3. 2. 0.0 0. 1. + 5313. 1. 5. 32.0 16.5 3.0 3. 17.0 40.0 4. 5. 0.0 0. 1. + 5323. 1. 3. 22.0 2.5 1.0 2. 16.0 4.0 4. 4. 0.0 0. 1. + 5333. 1. 5. 27.0 6.0 0.0 3. 16.0 20.0 2. 1. 0.0 0. 1. + 5337. 1. 5. 32.0 6.0 0.0 4. 17.0 20.0 4. 5. 0.0 0. 1. + 5338. 1. 5. 27.0 6.0 2.0 3. 14.0 11.5 3. 5. 0.0 0. 1. + 5340. 1. 4. 22.0 2.5 0.0 3. 12.0 6.5 3. 3. 0.0 0. 1. + 5341. 1. 5. 42.0 23.0 3.0 2. 12.0 20.0 5. 5. 0.0 0. 1. + 5346. 1. 4. 22.0 2.5 0.0 2. 16.0 14.0 4. 5. 0.0 0. 1. + 5348. 1. 5. 27.0 6.0 0.0 2. 20.0 20.0 4. 1. 0.0 0. 1. + 5355. 1. 5. 32.0 9.0 3.0 3. 12.0 11.5 2. 4. 0.0 0. 1. + 5356. 1. 5. 42.0 23.0 4.0 1. 14.0 6.5 4. 4. 0.0 0. 1. + 5364. 1. 4. 27.0 6.0 1.0 1. 14.0 20.0 3. 5. 0.0 0. 1. + 5377. 1. 5. 22.0 2.5 0.0 1. 14.0 4.0 3. 1. 0.0 0. 1. + 5380. 1. 5. 27.0 6.0 0.0 2. 12.0 20.0 3. 5. 0.0 0. 1. + 5382. 1. 5. 27.0 2.5 1.0 3. 16.0 20.0 4. 4. 0.0 0. 1. + 5387. 1. 5. 37.0 13.0 1.0 2. 14.0 14.0 5. 5. 0.0 0. 1. + 5390. 1. 4. 22.0 2.5 0.0 2. 16.0 20.0 4. 4. 0.0 0. 1. + 5391. 1. 5. 22.0 2.5 0.0 3. 12.0 6.5 4. 4. 0.0 0. 1. + 5395. 1. 3. 22.0 6.0 1.0 2. 12.0 9.0 2. 2. 0.0 0. 1. + 5396. 1. 5. 22.0 0.5 0.0 2. 16.0 14.0 4. 5. 0.0 0. 1. + 5397. 1. 4. 32.0 13.0 1.0 2. 12.0 14.0 3. 4. 0.0 0. 1. + 5399. 1. 4. 22.0 6.0 0.0 1. 14.0 20.0 3. 5. 0.0 0. 1. + 5401. 1. 5. 22.0 2.5 0.0 1. 14.0 9.0 3. 1. 0.0 0. 1. + 5404. 1. 3. 27.0 6.0 0.0 2. 14.0 6.5 3. 1. 0.0 0. 1. + 5406. 1. 3. 27.0 13.0 4.0 3. 12.0 14.0 2. 2. 0.0 0. 1. + 5410. 1. 4. 22.0 2.5 0.0 3. 16.0 20.0 4. 5. 0.0 0. 1. + 5413. 1. 5. 27.0 6.0 2.0 2. 16.0 20.0 4. 6. 0.0 0. 1. + 5416. 1. 5. 22.0 2.5 0.0 2. 12.0 9.0 2. 5. 0.0 0. 1. + 5417. 1. 4. 17.5 2.5 0.0 2. 12.0 6.5 2. 2. 0.0 0. 1. + 5422. 1. 5. 42.0 16.5 3.0 2. 12.0 20.0 2. 2. 0.0 0. 1. + 5423. 1. 3. 27.0 6.0 2.0 2. 9.0 11.5 4. 2. 0.0 0. 1. + 5425. 1. 5. 27.0 2.5 0.0 1. 20.0 20.0 4. 6. 0.0 0. 1. + 5427. 1. 5. 22.0 2.5 0.0 3. 12.0 20.0 5. 4. 0.0 0. 1. + 5428. 1. 5. 32.0 16.5 4.0 3. 12.0 11.5 5. 5. 0.0 0. 1. + 5430. 1. 5. 27.0 0.5 0.0 3. 16.0 40.0 5. 5. 0.0 0. 1. + 5431. 1. 4. 22.0 2.5 0.0 4. 14.0 9.0 1. 6. 0.0 0. 1. + 5432. 1. 5. 32.0 13.0 3.0 3. 12.0 20.0 2. 2. 0.0 0. 1. + 5438. 1. 4. 22.0 2.5 0.0 3. 16.0 6.5 3. 1. 0.0 0. 1. + 5443. 1. 5. 27.0 2.5 0.0 1. 20.0 14.0 6. 1. 0.0 0. 1. + 5447. 1. 4. 27.0 2.5 0.0 3. 17.0 14.0 4. 4. 0.0 0. 1. + 5448. 1. 5. 22.0 2.5 0.0 4. 12.0 11.5 3. 4. 0.0 0. 1. + 5449. 1. 5. 17.5 0.5 0.0 4. 9.0 11.5 2. 2. 0.0 0. 1. + 5450. 1. 2. 27.0 9.0 1.0 1. 12.0 11.5 3. 5. 0.0 0. 1. + 5454. 1. 4. 22.0 2.5 0.0 3. 12.0 11.5 3. 2. 0.0 0. 1. + 5457. 1. 4. 22.0 2.5 0.0 2. 12.0 11.5 3. 2. 0.0 0. 1. + 5467. 1. 5. 42.0 23.0 3.0 1. 16.0 40.0 4. 6. 0.0 0. 1. + 5473. 1. 4. 22.0 2.5 1.0 3. 12.0 14.0 3. 2. 0.0 0. 1. + 5476. 1. 3. 27.0 6.0 1.0 3. 12.0 9.0 3. 2. 0.0 0. 1. + 5480. 1. 5. 27.0 0.5 0.0 4. 17.0 6.5 3. 2. 0.0 0. 1. + 5483. 1. 4. 42.0 23.0 1.0 3. 12.0 11.5 5. 5. 0.0 0. 1. + 5484. 1. 4. 32.0 16.5 3.0 3. 12.0 20.0 3. 5. 0.0 0. 1. + 5487. 1. 5. 22.0 6.0 0.0 2. 12.0 20.0 2. 4. 0.0 0. 1. + 5490. 1. 4. 22.0 2.5 0.0 2. 16.0 6.5 4. 4. 0.0 0. 1. + 5491. 1. 4. 22.0 2.5 0.0 3. 14.0 4.0 3. 1. 0.0 0. 1. + 5496. 1. 3. 27.0 9.0 2.0 1. 12.0 4.0 2. 2. 0.0 0. 1. + 5505. 1. 5. 22.0 2.5 0.0 3. 12.0 20.0 3. 2. 0.0 0. 1. + 5506. 1. 5. 37.0 16.5 2.0 1. 12.0 40.0 3. 4. 0.0 0. 1. + 5523. 1. 4. 42.0 23.0 3.0 3. 12.0 14.0 3. 4. 0.0 0. 1. + 5531. 1. 5. 27.0 2.5 0.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 5532. 1. 4. 32.0 2.5 0.0 1. 14.0 20.0 3. 2. 0.0 0. 1. + 5536. 1. 3. 22.0 0.5 0.0 2. 16.0 4.0 3. 1. 0.0 0. 1. + 5537. 1. 5. 22.0 0.5 0.0 4. 16.0 9.0 3. 1. 0.0 0. 1. + 5540. 1. 5. 42.0 23.0 5.5 3. 12.0 20.0 2. 5. 0.0 0. 1. + 5543. 1. 4. 22.0 2.5 1.0 3. 12.0 11.5 3. 2. 0.0 0. 1. + 5547. 1. 4. 27.0 2.5 0.0 1. 14.0 11.5 3. 2. 0.0 0. 1. + 5558. 1. 2. 42.0 23.0 4.0 4. 12.0 9.0 3. 2. 0.0 0. 1. + 5560. 1. 4. 22.0 2.5 0.0 4. 17.0 6.5 5. 1. 0.0 0. 1. + 5568. 1. 4. 27.0 6.0 1.0 2. 14.0 14.0 2. 4. 0.0 0. 1. + 5575. 1. 5. 27.0 6.0 3.0 2. 14.0 20.0 5. 5. 0.0 0. 1. + 5576. 1. 5. 27.0 6.0 3.0 2. 14.0 20.0 3. 4. 0.0 0. 1. + 5583. 1. 4. 27.0 6.0 2.0 3. 14.0 11.5 3. 5. 0.0 0. 1. + 5586. 1. 4. 22.0 2.5 0.0 2. 14.0 11.5 3. 4. 0.0 0. 1. + 5587. 1. 4. 22.0 2.5 2.0 2. 14.0 11.5 2. 2. 0.0 0. 1. + 5591. 1. 3. 42.0 23.0 3.0 2. 12.0 40.0 3. 5. 0.0 0. 1. + 5592. 1. 5. 22.0 0.5 0.0 2. 17.0 14.0 4. 2. 0.0 0. 1. + 5597. 1. 5. 27.0 9.0 4.0 2. 12.0 14.0 3. 2. 0.0 0. 1. + 5601. 1. 5. 22.0 0.5 0.0 1. 16.0 20.0 4. 5. 0.0 0. 1. + 5602. 1. 4. 22.0 2.5 0.0 2. 16.0 14.0 4. 2. 0.0 0. 1. + 5604. 1. 5. 17.5 0.5 0.0 3. 14.0 11.5 3. 5. 0.0 0. 1. + 5625. 1. 5. 27.0 6.0 1.0 3. 12.0 14.0 3. 6. 0.0 0. 1. + 5630. 1. 2. 27.0 6.0 0.0 3. 17.0 20.0 2. 5. 0.0 0. 1. + 5634. 1. 5. 27.0 0.5 0.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 5636. 1. 5. 22.0 2.5 0.0 1. 12.0 20.0 5. 4. 0.0 0. 1. + 5637. 1. 5. 27.0 2.5 0.0 2. 16.0 20.0 4. 4. 0.0 0. 1. + 5642. 1. 4. 37.0 16.5 2.0 2. 16.0 40.0 4. 3. 0.0 0. 1. + 5651. 1. 5. 22.0 2.5 0.0 2. 14.0 11.5 3. 2. 0.0 0. 1. + 5659. 1. 5. 27.0 2.5 0.0 1. 16.0 20.0 4. 1. 0.0 0. 1. + 5661. 1. 5. 42.0 23.0 5.5 3. 14.0 20.0 3. 4. 0.0 0. 1. + 5664. 1. 5. 37.0 16.5 4.0 2. 14.0 40.0 2. 5. 0.0 0. 1. + 5668. 1. 4. 27.0 0.5 0.0 2. 17.0 20.0 4. 4. 0.0 0. 1. + 5672. 1. 5. 27.0 6.0 0.0 3. 20.0 14.0 6. 2. 0.0 0. 1. + 5681. 1. 4. 27.0 13.0 2.0 2. 12.0 14.0 3. 4. 0.0 0. 1. + 5693. 1. 3. 22.0 6.0 1.0 2. 12.0 14.0 4. 2. 0.0 0. 1. + 5701. 1. 5. 32.0 13.0 2.0 2. 16.0 20.0 4. 2. 0.0 0. 1. + 5703. 1. 5. 27.0 2.5 0.0 2. 17.0 20.0 3. 6. 0.0 0. 1. + 5706. 1. 5. 27.0 6.0 4.0 3. 12.0 14.0 3. 4. 0.0 0. 1. + 5707. 1. 4. 42.0 23.0 2.0 3. 12.0 20.0 3. 2. 0.0 0. 1. + 5709. 1. 4. 22.0 2.5 0.0 4. 17.0 20.0 4. 2. 0.0 0. 1. + 5712. 1. 5. 32.0 16.5 3.0 3. 12.0 11.5 2. 4. 0.0 0. 1. + 5721. 1. 5. 22.0 2.5 0.0 1. 16.0 14.0 3. 5. 0.0 0. 1. + 5723. 1. 5. 22.0 0.5 0.0 3. 12.0 9.0 5. 2. 0.0 0. 1. + 5727. 1. 4. 42.0 23.0 5.5 4. 12.0 20.0 3. 5. 0.0 0. 1. + 5729. 1. 5. 42.0 16.5 2.0 3. 16.0 20.0 4. 4. 0.0 0. 1. + 5730. 1. 4. 22.0 2.5 0.0 1. 12.0 14.0 3. 2. 0.0 0. 1. + 5731. 1. 2. 22.0 2.5 1.0 2. 14.0 6.5 3. 4. 0.0 0. 1. + 5732. 1. 3. 22.0 2.5 0.0 1. 12.0 11.5 3. 3. 0.0 0. 1. + 5734. 1. 4. 32.0 13.0 2.0 3. 17.0 40.0 4. 3. 0.0 0. 1. + 5742. 1. 5. 27.0 6.0 1.0 3. 16.0 14.0 4. 5. 0.0 0. 1. + 5750. 1. 4. 32.0 9.0 2.0 2. 16.0 20.0 4. 5. 0.0 0. 1. + 5755. 1. 5. 27.0 2.5 0.0 2. 16.0 11.5 4. 4. 0.0 0. 1. + 5757. 1. 2. 22.0 2.5 2.0 3. 14.0 20.0 4. 2. 0.0 0. 1. + 5764. 1. 5. 22.0 0.5 0.0 4. 16.0 11.5 4. 5. 0.0 0. 1. + 5765. 1. 5. 27.0 2.5 0.0 3. 14.0 20.0 3. 2. 0.0 0. 1. + 5766. 1. 5. 27.0 6.0 1.0 3. 12.0 11.5 2. 4. 0.0 0. 1. + 5767. 1. 4. 27.0 6.0 2.0 4. 12.0 11.5 3. 2. 0.0 0. 1. + 5771. 1. 4. 22.0 2.5 0.0 2. 14.0 14.0 3. 2. 0.0 0. 1. + 5772. 1. 4. 22.0 2.5 0.0 1. 12.0 20.0 4. 3. 0.0 0. 1. + 5781. 1. 5. 22.0 2.5 0.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 5782. 1. 5. 22.0 2.5 2.0 3. 14.0 14.0 3. 4. 0.0 0. 1. + 5785. 1. 3. 32.0 6.0 2.0 3. 17.0 14.0 2. 4. 0.0 0. 1. + 5787. 1. 4. 27.0 6.0 3.0 3. 14.0 9.0 4. 4. 0.0 0. 1. + 5788. 1. 4. 42.0 23.0 3.0 3. 14.0 40.0 3. 4. 0.0 0. 1. + 5789. 1. 5. 22.0 0.5 0.0 3. 12.0 20.0 3. 4. 0.0 0. 1. + 5798. 1. 4. 42.0 13.0 4.0 3. 12.0 9.0 2. 5. 0.0 0. 1. + 5803. 1. 5. 22.0 6.0 0.0 4. 14.0 11.5 1. 5. 0.0 0. 1. + 5808. 1. 2. 32.0 13.0 1.0 3. 20.0 40.0 4. 3. 0.0 0. 1. + 5809. 1. 4. 22.0 2.5 0.0 1. 12.0 11.5 2. 4. 0.0 0. 1. + 5811. 1. 5. 22.0 2.5 0.0 2. 17.0 14.0 4. 5. 0.0 0. 1. + 5812. 1. 5. 42.0 23.0 5.5 2. 12.0 40.0 5. 5. 0.0 0. 1. + 5814. 1. 4. 17.5 2.5 1.0 2. 12.0 4.0 3. 2. 0.0 0. 1. + 5816. 1. 5. 27.0 13.0 1.0 2. 14.0 14.0 3. 5. 0.0 0. 1. + 5825. 1. 5. 22.0 0.5 0.0 2. 16.0 14.0 4. 5. 0.0 0. 1. + 5827. 1. 4. 32.0 2.5 0.0 1. 12.0 40.0 3. 4. 0.0 0. 1. + 5828. 1. 5. 17.5 0.5 0.0 4. 12.0 11.5 4. 5. 0.0 0. 1. + 5830. 1. 5. 22.0 0.5 2.0 2. 16.0 20.0 4. 4. 0.0 0. 1. + 5831. 1. 3. 17.5 2.5 1.0 2. 14.0 9.0 2. 1. 0.0 0. 1. + 5834. 1. 3. 27.0 6.0 0.0 3. 14.0 11.5 3. 2. 0.0 0. 1. + 5837. 1. 4. 22.0 2.5 0.0 3. 16.0 11.5 4. 5. 0.0 0. 1. + 5839. 1. 5. 22.0 6.0 2.0 2. 12.0 9.0 3. 4. 0.0 0. 1. + 5841. 1. 4. 22.0 2.5 2.0 3. 12.0 11.5 3. 5. 0.0 0. 1. + 5845. 1. 4. 22.0 6.0 1.0 2. 12.0 6.5 3. 5. 0.0 0. 1. + 5860. 1. 4. 27.0 2.5 0.0 3. 20.0 20.0 4. 4. 0.0 0. 1. + 5861. 1. 5. 27.0 2.5 0.0 3. 17.0 20.0 3. 5. 0.0 0. 1. + 5866. 1. 4. 22.0 2.5 0.0 3. 14.0 14.0 3. 5. 0.0 0. 1. + 5869. 1. 5. 27.0 2.5 0.0 2. 14.0 20.0 2. 2. 0.0 0. 1. + 5870. 1. 5. 27.0 2.5 0.0 2. 17.0 20.0 4. 4. 0.0 0. 1. + 5873. 1. 5. 22.0 2.5 0.0 3. 14.0 9.0 2. 2. 0.0 0. 1. + 5875. 1. 5. 22.0 0.5 0.0 2. 14.0 11.5 3. 5. 0.0 0. 1. + 5877. 1. 4. 42.0 23.0 3.0 4. 17.0 20.0 3. 6. 0.0 0. 1. + 5881. 1. 5. 37.0 23.0 5.5 3. 12.0 20.0 5. 5. 0.0 0. 1. + 5882. 1. 4. 22.0 6.0 1.0 3. 12.0 11.5 2. 2. 0.0 0. 1. + 5885. 1. 4. 22.0 2.5 0.0 2. 12.0 11.5 3. 4. 0.0 0. 1. + 5901. 1. 5. 32.0 2.5 0.0 1. 14.0 20.0 3. 3. 0.0 0. 1. + 5904. 1. 4. 17.5 2.5 0.0 2. 12.0 20.0 3. 3. 0.0 0. 1. + 5905. 1. 5. 37.0 23.0 5.5 3. 12.0 20.0 2. 3. 0.0 0. 1. + 5911. 1. 5. 22.0 2.5 1.0 3. 12.0 11.5 3. 2. 0.0 0. 1. + 5914. 1. 5. 42.0 23.0 5.5 4. 16.0 20.0 4. 5. 0.0 0. 1. + 5922. 1. 5. 42.0 23.0 4.0 3. 12.0 20.0 3. 3. 0.0 0. 1. + 6004. 1. 4. 27.0 6.0 0.0 2. 14.0 20.0 5. 3. 0.0 0. 1. + 6007. 1. 4. 32.0 13.0 2.0 3. 16.0 14.0 3. 3. 0.0 0. 1. + 6010. 1. 4. 27.0 6.0 2.0 3. 12.0 20.0 2. 4. 0.0 0. 1. + 6016. 1. 4. 32.0 13.0 3.0 4. 14.0 11.5 3. 5. 0.0 0. 1. + 6017. 1. 5. 32.0 13.0 3.0 2. 12.0 9.0 3. 2. 0.0 0. 1. + 6019. 1. 3. 42.0 23.0 5.5 2. 14.0 9.0 3. 2. 0.0 0. 1. + 6022. 1. 1. 37.0 13.0 3.0 4. 17.0 20.0 2. 4. 0.0 0. 1. + 6024. 1. 5. 22.0 2.5 0.0 2. 14.0 20.0 5. 5. 0.0 0. 1. + 6028. 1. 4. 22.0 2.5 0.0 1. 12.0 11.5 5. 4. 0.0 0. 1. + 6033. 1. 4. 22.0 2.5 0.0 3. 14.0 20.0 3. 2. 0.0 0. 1. + 6037. 1. 4. 22.0 6.0 3.0 2. 14.0 11.5 4. 2. 0.0 0. 1. + 6043. 1. 5. 27.0 2.5 0.0 3. 17.0 20.0 4. 5. 0.0 0. 1. + 6045. 1. 4. 22.0 0.5 0.0 2. 14.0 9.0 3. 5. 0.0 0. 1. + 6046. 1. 5. 22.0 0.5 0.0 3. 17.0 20.0 4. 4. 0.0 0. 1. + 6052. 1. 4. 27.0 9.0 0.0 2. 12.0 14.0 3. 2. 0.0 0. 1. + 6056. 1. 4. 27.0 0.5 0.0 3. 16.0 11.5 4. 6. 0.0 0. 1. + 6064. 1. 4. 27.0 6.0 2.0 3. 12.0 14.0 2. 6. 0.0 0. 1. + 6072. 1. 4. 22.0 2.5 0.0 2. 14.0 6.5 4. 4. 0.0 0. 1. + 6077. 1. 5. 22.0 6.0 0.0 3. 12.0 11.5 4. 6. 0.0 0. 1. + 6081. 1. 4. 22.0 0.5 0.0 2. 12.0 9.0 3. 5. 0.0 0. 1. + 6093. 1. 5. 17.5 0.5 0.0 2. 12.0 11.5 4. 2. 0.0 0. 1. + 6095. 1. 5. 27.0 2.5 1.0 1. 17.0 40.0 4. 5. 0.0 0. 1. + 6098. 1. 3. 27.0 9.0 2.0 1. 14.0 20.0 3. 5. 0.0 0. 1. + 6102. 1. 4. 27.0 0.5 2.0 2. 14.0 14.0 3. 5. 0.0 0. 1. + 6111. 1. 4. 22.0 2.5 0.0 2. 14.0 11.5 2. 5. 0.0 0. 1. + 6123. 1. 4. 27.0 2.5 0.0 3. 12.0 14.0 3. 2. 0.0 0. 1. + 6124. 1. 2. 27.0 6.0 2.0 2. 14.0 14.0 3. 2. 0.0 0. 1. + 6130. 1. 5. 27.0 2.5 0.0 3. 14.0 20.0 2. 4. 0.0 0. 1. + 6150. 1. 5. 42.0 9.0 0.0 4. 20.0 40.0 4. 4. 0.0 0. 1. + 6155. 1. 5. 22.0 2.5 0.0 2. 14.0 20.0 4. 3. 0.0 0. 1. + 6156. 1. 5. 37.0 13.0 5.5 4. 17.0 20.0 4. 5. 0.0 0. 1. + 6158. 1. 4. 42.0 23.0 2.0 3. 14.0 20.0 4. 3. 0.0 0. 1. + 6161. 1. 5. 32.0 16.5 3.0 4. 14.0 20.0 4. 3. 0.0 0. 1. + 6162. 1. 5. 37.0 16.5 1.0 3. 12.0 14.0 3. 5. 0.0 0. 1. + 6167. 1. 5. 22.0 2.5 0.0 3. 14.0 20.0 3. 5. 0.0 0. 1. + 6177. 1. 5. 27.0 2.5 0.0 3. 20.0 20.0 6. 1. 0.0 0. 1. + 6189. 1. 4. 42.0 23.0 3.0 3. 14.0 40.0 4. 5. 0.0 0. 1. + 6194. 1. 4. 42.0 23.0 4.0 1. 16.0 20.0 4. 5. 0.0 0. 1. + 6197. 1. 3. 27.0 2.5 0.0 2. 16.0 20.0 3. 5. 0.0 0. 1. + 6200. 1. 5. 37.0 16.5 3.0 2. 16.0 20.0 4. 3. 0.0 0. 1. + 6202. 1. 5. 42.0 23.0 5.5 3. 14.0 14.0 4. 4. 0.0 0. 1. + 6206. 1. 4. 22.0 2.5 1.0 1. 14.0 11.5 3. 4. 0.0 0. 1. + 6208. 1. 5. 27.0 9.0 1.0 3. 12.0 20.0 2. 5. 0.0 0. 1. + 6211. 1. 5. 22.0 2.5 0.0 2. 14.0 11.5 3. 6. 0.0 0. 1. + 6216. 1. 4. 22.0 2.5 1.0 2. 14.0 6.5 2. 2. 0.0 0. 1. + 6219. 1. 3. 42.0 23.0 3.0 4. 12.0 14.0 3. 4. 0.0 0. 1. + 6220. 1. 5. 42.0 23.0 3.0 3. 12.0 20.0 3. 4. 0.0 0. 1. + 6224. 1. 4. 32.0 13.0 2.0 1. 14.0 14.0 3. 4. 0.0 0. 1. + 6232. 1. 4. 37.0 16.5 5.5 3. 12.0 4.0 4. 5. 0.0 0. 1. + 6240. 1. 4. 27.0 6.0 1.0 4. 12.0 20.0 3. 4. 0.0 0. 1. + 6241. 1. 5. 42.0 23.0 5.5 3. 16.0 20.0 4. 5. 0.0 0. 1. + 6242. 1. 5. 32.0 6.0 2.0 2. 16.0 20.0 2. 5. 0.0 0. 1. + 6248. 1. 2. 32.0 9.0 2.0 4. 14.0 11.5 4. 5. 0.0 0. 1. + 6253. 1. 5. 27.0 13.0 2.0 3. 12.0 20.0 3. 4. 0.0 0. 1. + 6255. 1. 5. 42.0 23.0 5.5 4. 14.0 20.0 4. 2. 0.0 0. 1. + 6259. 1. 5. 42.0 23.0 3.0 3. 12.0 11.5 3. 5. 0.0 0. 1. + 6264. 1. 5. 22.0 0.5 0.0 2. 14.0 14.0 4. 3. 0.0 0. 1. + 6276. 1. 3. 37.0 16.5 2.0 3. 12.0 20.0 5. 2. 0.0 0. 1. + 6277. 1. 4. 27.0 6.0 2.0 3. 12.0 11.5 3. 2. 0.0 0. 1. + 6282. 1. 4. 37.0 16.5 2.0 2. 14.0 20.0 3. 2. 0.0 0. 1. + 6283. 1. 2. 32.0 16.5 2.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 6287. 1. 4. 27.0 2.5 0.0 2. 14.0 20.0 4. 4. 0.0 0. 1. + 6290. 1. 5. 37.0 23.0 2.0 2. 14.0 11.5 3. 2. 0.0 0. 1. + 6296. 1. 5. 22.0 0.5 0.0 4. 14.0 6.5 4. 2. 0.0 0. 1. + 6297. 1. 5. 42.0 16.5 3.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 6319. 1. 4. 37.0 13.0 3.0 2. 12.0 9.0 2. 4. 0.0 0. 1. + 6321. 1. 5. 32.0 13.0 2.0 4. 12.0 14.0 2. 2. 0.0 0. 1. + 6330. 1. 4. 22.0 2.5 0.0 3. 12.0 14.0 3. 2. 0.0 0. 1. + 6336. 1. 5. 27.0 2.5 1.0 3. 14.0 11.5 5. 5. 0.0 0. 1. + 6342. 1. 5. 22.0 0.5 0.0 4. 16.0 9.0 4. 6. 0.0 0. 1. + 6347. 1. 5. 37.0 16.5 5.5 3. 12.0 20.0 2. 4. 0.0 0. 1. + 6348. 1. 4. 32.0 9.0 2.0 2. 16.0 20.0 4. 4. 0.0 0. 1. + 6351. 1. 5. 22.0 2.5 0.0 1. 14.0 20.0 3. 5. 0.0 0. 1. + 6355. 1. 5. 22.0 2.5 0.0 3. 16.0 11.5 4. 5. 0.0 0. 1. + 6356. 1. 4. 32.0 16.5 4.0 3. 12.0 20.0 2. 4. 0.0 0. 1. + 6357. 1. 5. 22.0 2.5 0.0 4. 14.0 14.0 3. 2. 0.0 0. 1. + 6359. 1. 5. 37.0 23.0 3.0 4. 14.0 14.0 2. 4. 0.0 0. 1. + 6374. 1. 5. 27.0 6.0 0.0 2. 16.0 11.5 4. 1. 0.0 0. 1. + 6376. 1. 5. 22.0 2.5 0.0 2. 12.0 14.0 3. 4. 0.0 0. 1. + 6379. 1. 5. 32.0 6.0 0.0 4. 20.0 40.0 4. 4. 0.0 0. 1. + 6383. 1. 4. 32.0 16.5 2.0 2. 14.0 14.0 4. 2. 0.0 0. 1. + 6386. 1. 4. 22.0 0.5 0.0 3. 16.0 20.0 4. 4. 0.0 0. 1. + 6387. 1. 3. 22.0 2.5 0.0 3. 14.0 20.0 3. 2. 0.0 0. 1. + 6393. 1. 4. 22.0 2.5 0.0 1. 14.0 20.0 5. 4. 0.0 0. 1. + 6395. 1. 5. 27.0 2.5 0.0 2. 17.0 20.0 4. 5. 0.0 0. 1. + 6397. 1. 5. 22.0 2.5 0.0 2. 14.0 11.5 3. 5. 0.0 0. 1. + 6398. 1. 2. 42.0 16.5 3.0 3. 14.0 20.0 3. 5. 0.0 0. 1. + 6399. 1. 3. 22.0 2.5 0.0 4. 14.0 20.0 3. 3. 0.0 0. 1. + 6401. 1. 5. 27.0 6.0 0.0 2. 20.0 20.0 4. 4. 0.0 0. 1. + 6402. 1. 5. 27.0 6.0 1.0 2. 12.0 14.0 4. 2. 0.0 0. 1. + 6412. 1. 4. 22.0 2.5 0.0 1. 14.0 11.5 3. 4. 0.0 0. 1. + 6413. 1. 4. 37.0 16.5 3.0 1. 12.0 6.5 3. 2. 0.0 0. 1. + 6414. 1. 4. 32.0 16.5 3.0 2. 14.0 14.0 3. 2. 0.0 0. 1. + 6417. 1. 3. 27.0 6.0 1.0 1. 14.0 14.0 3. 4. 0.0 0. 1. + 6421. 1. 4. 27.0 6.0 1.0 3. 17.0 20.0 4. 3. 0.0 0. 1. + 6424. 1. 4. 42.0 23.0 2.0 3. 20.0 40.0 4. 4. 0.0 0. 1. + 6429. 1. 4. 27.0 6.0 2.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 6430. 1. 4. 32.0 9.0 2.0 3. 12.0 20.0 5. 5. 0.0 0. 1. + 6432. 1. 5. 42.0 23.0 2.0 2. 14.0 20.0 3. 2. 0.0 0. 1. + 6433. 1. 5. 32.0 16.5 2.0 3. 12.0 20.0 3. 5. 0.0 0. 1. + 6444. 1. 4. 22.0 2.5 0.0 3. 16.0 11.5 3. 4. 0.0 0. 1. + 6448. 1. 5. 27.0 6.0 2.0 3. 14.0 14.0 4. 3. 0.0 0. 1. + 6451. 1. 5. 27.0 2.5 1.0 2. 12.0 11.5 3. 3. 0.0 0. 1. + 6452. 1. 5. 27.0 6.0 1.0 3. 12.0 11.5 3. 2. 0.0 0. 1. + 6453. 1. 4. 32.0 6.0 1.0 3. 12.0 6.5 2. 2. 0.0 0. 1. + 6458. 1. 4. 22.0 2.5 0.0 2. 16.0 20.0 4. 5. 0.0 0. 1. + 6468. 1. 5. 27.0 2.5 1.0 3. 16.0 11.5 3. 6. 0.0 0. 1. + 6469. 1. 3. 27.0 6.0 0.0 1. 17.0 20.0 4. 6. 0.0 0. 1. + 6479. 1. 5. 27.0 2.5 0.0 2. 17.0 20.0 4. 6. 0.0 0. 1. + 6484. 1. 4. 22.0 2.5 0.0 3. 12.0 20.0 5. 5. 0.0 0. 1. + 6490. 1. 4. 22.0 6.0 1.0 2. 12.0 14.0 3. 4. 0.0 0. 1. + 6494. 1. 3. 32.0 2.5 0.0 1. 20.0 14.0 6. 6. 0.0 0. 1. + 6507. 1. 2. 37.0 23.0 5.5 2. 14.0 20.0 3. 4. 0.0 0. 1. + 6510. 1. 3. 42.0 23.0 4.0 3. 12.0 9.0 2. 2. 0.0 0. 1. + 6517. 1. 4. 22.0 2.5 1.0 1. 12.0 20.0 3. 3. 0.0 0. 1. + 6519. 1. 5. 42.0 16.5 4.0 3. 16.0 20.0 4. 2. 0.0 0. 1. + 6523. 1. 5. 22.0 0.5 0.0 3. 14.0 6.5 3. 5. 0.0 0. 1. + 6524. 1. 4. 22.0 0.5 0.0 2. 12.0 6.5 2. 5. 0.0 0. 1. + 6527. 1. 4. 27.0 6.0 2.0 3. 12.0 20.0 4. 5. 0.0 0. 1. + 6529. 1. 5. 27.0 2.5 0.0 4. 16.0 6.5 3. 1. 0.0 0. 1. + 6537. 1. 4. 22.0 2.5 0.0 3. 12.0 20.0 5. 2. 0.0 0. 1. + 6539. 1. 3. 22.0 0.5 0.0 3. 14.0 9.0 3. 5. 0.0 0. 1. + 6540. 1. 5. 27.0 2.5 0.0 2. 16.0 40.0 3. 5. 0.0 0. 1. + 6542. 1. 5. 27.0 0.5 0.0 2. 20.0 20.0 4. 2. 0.0 0. 1. + 6543. 1. 5. 32.0 16.5 4.0 3. 14.0 20.0 4. 5. 0.0 0. 1. + 6546. 1. 4. 22.0 2.5 1.0 3. 12.0 14.0 2. 4. 0.0 0. 1. + 6552. 1. 3. 22.0 2.5 0.0 1. 16.0 9.0 3. 2. 0.0 0. 1. + 6559. 1. 4. 27.0 6.0 1.0 2. 12.0 20.0 4. 4. 0.0 0. 1. + 6562. 1. 4. 17.5 2.5 0.0 3. 14.0 6.5 2. 2. 0.0 0. 1. + 6570. 1. 5. 37.0 16.5 4.0 2. 17.0 20.0 4. 6. 0.0 0. 1. + 6571. 1. 4. 32.0 16.5 5.5 1. 14.0 11.5 2. 2. 0.0 0. 1. + 6574. 1. 5. 22.0 0.5 0.0 4. 16.0 14.0 4. 4. 0.0 0. 1. + 6576. 1. 5. 22.0 2.5 0.0 2. 16.0 20.0 4. 5. 0.0 0. 1. + 6578. 1. 5. 17.5 0.5 0.0 2. 12.0 11.5 4. 4. 0.0 0. 1. + 6585. 1. 5. 22.0 2.5 1.0 4. 14.0 20.0 2. 2. 0.0 0. 1. + 6589. 1. 5. 42.0 9.0 0.0 3. 12.0 11.5 3. 4. 0.0 0. 1. + 6593. 1. 4. 27.0 6.0 1.0 2. 14.0 9.0 3. 2. 0.0 0. 1. + 6596. 1. 3. 32.0 13.0 2.0 2. 16.0 11.5 2. 2. 0.0 0. 1. + 6602. 1. 4. 32.0 13.0 2.0 2. 12.0 20.0 2. 2. 0.0 0. 1. + 6606. 1. 5. 22.0 2.5 0.0 3. 17.0 9.0 3. 4. 0.0 0. 1. + 6609. 1. 4. 27.0 9.0 2.0 2. 12.0 11.5 2. 4. 0.0 0. 1. + 6613. 1. 4. 37.0 23.0 2.0 4. 14.0 20.0 3. 6. 0.0 0. 1. + 6615. 1. 4. 42.0 23.0 3.0 2. 14.0 40.0 4. 6. 0.0 0. 1. + 6616. 1. 4. 22.0 2.5 0.0 3. 14.0 20.0 3. 4. 0.0 0. 1. + 6620. 1. 5. 27.0 9.0 2.0 3. 14.0 11.5 4. 4. 0.0 0. 1. + 6623. 1. 2. 32.0 13.0 1.0 3. 14.0 20.0 5. 3. 0.0 0. 1. + 6638. 1. 1. 42.0 23.0 2.0 3. 12.0 14.0 2. 2. 0.0 0. 1. + 6639. 1. 5. 22.0 2.5 0.0 3. 14.0 20.0 3. 4. 0.0 0. 1. + 6641. 1. 4. 27.0 6.0 1.0 3. 16.0 20.0 4. 4. 0.0 0. 1. + 6646. 1. 4. 42.0 23.0 4.0 3. 12.0 14.0 2. 5. 0.0 0. 1. + 6648. 1. 5. 32.0 16.5 3.0 1. 14.0 14.0 5. 5. 0.0 0. 1. + 6649. 1. 5. 27.0 2.5 0.0 4. 16.0 40.0 3. 6. 0.0 0. 1. + 6651. 1. 4. 27.0 9.0 0.0 2. 12.0 14.0 5. 2. 0.0 0. 1. + 6652. 1. 3. 22.0 2.5 0.0 1. 14.0 11.5 3. 5. 0.0 0. 1. + 6658. 1. 5. 27.0 2.5 0.0 2. 12.0 14.0 3. 6. 0.0 0. 1. + 6661. 1. 5. 32.0 9.0 3.0 2. 12.0 11.5 3. 3. 0.0 0. 1. + 6667. 1. 5. 22.0 0.5 0.0 3. 14.0 20.0 2. 4. 0.0 0. 1. + 6671. 1. 4. 27.0 2.5 1.0 1. 12.0 14.0 3. 3. 0.0 0. 1. + 6683. 1. 4. 37.0 16.5 3.0 3. 12.0 14.0 3. 2. 0.0 0. 1. + 6686. 1. 5. 22.0 2.5 0.0 3. 12.0 6.5 5. 4. 0.0 0. 1. + 6690. 1. 3. 22.0 2.5 0.0 2. 14.0 20.0 4. 2. 0.0 0. 1. + 6697. 1. 5. 32.0 13.0 2.0 2. 12.0 11.5 2. 4. 0.0 0. 1. + 6701. 1. 5. 32.0 9.0 2.0 3. 17.0 40.0 4. 5. 0.0 0. 1. + 6708. 1. 4. 37.0 16.5 3.0 2. 12.0 20.0 3. 5. 0.0 0. 1. + 6715. 1. 5. 27.0 2.5 0.0 3. 14.0 20.0 4. 4. 0.0 0. 1. + 6718. 1. 2. 42.0 23.0 4.0 1. 17.0 40.0 3. 5. 0.0 0. 1. + 6719. 1. 4. 27.0 6.0 2.0 3. 16.0 20.0 4. 4. 0.0 0. 1. + 6725. 1. 4. 42.0 23.0 3.0 4. 14.0 20.0 4. 4. 0.0 0. 1. + 6733. 1. 5. 22.0 0.5 0.0 4. 14.0 9.0 3. 1. 0.0 0. 1. + 6737. 1. 5. 27.0 2.5 0.0 3. 16.0 40.0 4. 5. 0.0 0. 1. + 6741. 1. 4. 22.0 2.5 0.0 3. 16.0 9.0 4. 4. 0.0 0. 1. + 6742. 1. 3. 32.0 6.0 2.0 3. 16.0 11.5 4. 5. 0.0 0. 1. + 6749. 1. 5. 22.0 6.0 0.0 3. 14.0 20.0 3. 4. 0.0 0. 1. + 6750. 1. 4. 22.0 2.5 1.0 2. 12.0 9.0 2. 4. 0.0 0. 1. + 6756. 1. 5. 27.0 0.5 0.0 2. 14.0 11.5 4. 4. 0.0 0. 1. + 6767. 1. 3. 32.0 6.0 3.0 4. 16.0 40.0 5. 6. 0.0 0. 1. + 6769. 1. 4. 27.0 0.5 0.0 4. 14.0 11.5 3. 4. 0.0 0. 1. + 6776. 1. 5. 27.0 2.5 0.0 3. 16.0 40.0 4. 5. 0.0 0. 1. + 6778. 1. 4. 22.0 6.0 0.0 2. 12.0 11.5 3. 2. 0.0 0. 1. + 6781. 1. 4. 22.0 2.5 0.0 3. 12.0 20.0 3. 5. 0.0 0. 1. + 6784. 1. 4. 22.0 2.5 0.0 1. 17.0 20.0 4. 4. 0.0 0. 1. + 6800. 1. 4. 27.0 6.0 2.0 4. 14.0 14.0 4. 5. 0.0 0. 1. + 6802. 1. 5. 22.0 2.5 0.0 1. 16.0 11.5 2. 5. 0.0 0. 1. + 6803. 1. 4. 27.0 6.0 2.0 3. 16.0 20.0 4. 4. 0.0 0. 1. + 6808. 1. 5. 22.0 0.5 0.0 2. 16.0 20.0 3. 5. 0.0 0. 1. + 6812. 1. 5. 32.0 13.0 3.0 3. 14.0 20.0 4. 5. 0.0 0. 1. + 6816. 1. 4. 32.0 6.0 0.0 3. 17.0 40.0 2. 2. 0.0 0. 1. + 6824. 1. 5. 32.0 13.0 2.0 2. 12.0 20.0 3. 5. 0.0 0. 1. + 6844. 1. 5. 22.0 2.5 0.0 2. 14.0 20.0 5. 2. 0.0 0. 1. + 6846. 1. 5. 27.0 13.0 2.0 2. 14.0 20.0 4. 4. 0.0 0. 1. + 6847. 1. 4. 27.0 6.0 1.0 4. 16.0 14.0 4. 4. 0.0 0. 1. + 6852. 1. 5. 32.0 16.5 5.5 4. 14.0 20.0 4. 6. 0.0 0. 1. + 6855. 1. 5. 37.0 16.5 3.0 3. 17.0 20.0 4. 5. 0.0 0. 1. + 6865. 1. 4. 22.0 2.5 0.0 4. 14.0 20.0 3. 2. 0.0 0. 1. + 6885. 1. 5. 37.0 16.5 4.0 2. 14.0 14.0 3. 2. 0.0 0. 1. + 6886. 1. 3. 32.0 16.5 3.0 3. 12.0 14.0 3. 3. 0.0 0. 1. + 6888. 1. 5. 22.0 2.5 0.0 1. 14.0 9.0 2. 2. 0.0 0. 1. + 6895. 1. 5. 22.0 2.5 2.0 3. 14.0 11.5 3. 4. 0.0 0. 1. + 6906. 1. 3. 37.0 16.5 2.0 3. 12.0 20.0 3. 5. 0.0 0. 1. + 6907. 1. 4. 22.0 2.5 0.0 2. 16.0 20.0 3. 6. 0.0 0. 1. + 6912. 1. 5. 22.0 0.5 0.0 3. 12.0 11.5 5. 4. 0.0 0. 1. + 6914. 1. 5. 42.0 23.0 3.0 4. 16.0 40.0 4. 5. 0.0 0. 1. + 6915. 1. 4. 22.0 6.0 2.0 2. 14.0 20.0 5. 5. 0.0 0. 1. + 6922. 1. 5. 27.0 2.5 0.0 2. 17.0 20.0 4. 6. 0.0 0. 1. + 6927. 1. 5. 27.0 6.0 0.0 1. 12.0 20.0 3. 4. 0.0 0. 1. + 6933. 1. 5. 22.0 2.5 0.0 3. 12.0 20.0 2. 4. 0.0 0. 1. + 6934. 1. 4. 37.0 23.0 3.0 4. 14.0 14.0 4. 4. 0.0 0. 1. + 6938. 1. 3. 27.0 2.5 0.0 3. 16.0 20.0 3. 5. 0.0 0. 1. + 6941. 1. 5. 27.0 2.5 0.0 2. 14.0 9.0 4. 3. 0.0 0. 1. + 6946. 1. 5. 22.0 2.5 0.0 2. 14.0 40.0 3. 5. 0.0 0. 1. + 6951. 1. 4. 32.0 13.0 2.0 2. 14.0 20.0 2. 3. 0.0 0. 1. + 6955. 1. 4. 32.0 16.5 2.0 2. 17.0 40.0 4. 6. 0.0 0. 1. + 6957. 1. 4. 27.0 6.0 2.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 6959. 1. 4. 22.0 0.5 0.0 3. 12.0 9.0 3. 4. 0.0 0. 1. + 6964. 1. 3. 22.0 2.5 1.0 4. 14.0 11.5 2. 2. 0.0 0. 1. + 6968. 1. 3. 27.0 2.5 0.0 2. 16.0 20.0 4. 4. 0.0 0. 1. + 6969. 1. 3. 27.0 6.0 2.0 2. 17.0 20.0 6. 4. 0.0 0. 1. + 6970. 1. 5. 27.0 2.5 0.0 2. 12.0 11.5 2. 4. 0.0 0. 1. + 6979. 1. 5. 22.0 0.5 0.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 6980. 1. 2. 42.0 23.0 5.5 4. 12.0 20.0 3. 4. 0.0 0. 1. + 6984. 1. 4. 27.0 2.5 0.0 4. 17.0 20.0 5. 5. 0.0 0. 1. + 6988. 1. 5. 27.0 6.0 2.0 3. 16.0 11.5 4. 4. 0.0 0. 1. + 6994. 1. 4. 42.0 23.0 2.0 3. 12.0 4.0 3. 2. 0.0 0. 1. + 6996. 1. 5. 27.0 6.0 1.0 2. 14.0 11.5 3. 5. 0.0 0. 1. + 6999. 1. 5. 22.0 2.5 0.0 3. 14.0 6.5 4. 2. 0.0 0. 1. + 7000. 1. 3. 22.0 6.0 3.0 2. 12.0 14.0 2. 2. 0.0 0. 1. + 7005. 1. 5. 17.5 0.5 0.0 2. 12.0 14.0 3. 5. 0.0 0. 1. + 7006. 1. 4. 27.0 6.0 0.0 3. 14.0 6.5 3. 1. 0.0 0. 1. + 7009. 1. 5. 22.0 2.5 0.0 2. 16.0 20.0 4. 5. 0.0 0. 1. + 7016. 1. 5. 27.0 0.5 0.0 4. 14.0 14.0 3. 4. 0.0 0. 1. + 7017. 1. 4. 42.0 23.0 5.5 4. 16.0 20.0 4. 5. 0.0 0. 1. + 7024. 1. 5. 37.0 16.5 3.0 2. 12.0 14.0 3. 3. 0.0 0. 1. + 7026. 1. 4. 42.0 23.0 3.0 2. 12.0 20.0 3. 3. 0.0 0. 1. + 7027. 1. 4. 27.0 2.5 0.0 3. 16.0 6.5 4. 4. 0.0 0. 1. + 7032. 1. 4. 22.0 2.5 0.0 3. 17.0 20.0 4. 5. 0.0 0. 1. + 7037. 1. 5. 22.0 0.5 0.0 2. 20.0 14.0 4. 5. 0.0 0. 1. + 7038. 1. 5. 22.0 2.5 1.0 2. 12.0 6.5 3. 4. 0.0 0. 1. + 7043. 1. 4. 22.0 6.0 3.0 3. 12.0 9.0 2. 2. 0.0 0. 1. + 7049. 1. 5. 42.0 23.0 5.5 2. 16.0 20.0 4. 4. 0.0 0. 1. + 7050. 1. 3. 32.0 6.0 0.0 1. 14.0 40.0 3. 6. 0.0 0. 1. + 7053. 1. 5. 37.0 13.0 0.0 2. 14.0 20.0 4. 6. 0.0 0. 1. + 7061. 1. 5. 27.0 2.5 0.0 1. 17.0 20.0 4. 4. 0.0 0. 1. + 7068. 1. 3. 32.0 6.0 0.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 7070. 1. 5. 27.0 2.5 0.0 2. 14.0 20.0 5. 4. 0.0 0. 1. + 7072. 1. 5. 42.0 23.0 4.0 3. 14.0 20.0 2. 5. 0.0 0. 1. + 7077. 1. 5. 32.0 16.5 5.5 4. 12.0 20.0 5. 5. 0.0 0. 1. + 7078. 1. 4. 27.0 6.0 2.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 7085. 1. 3. 22.0 2.5 0.0 2. 12.0 20.0 2. 2. 0.0 0. 1. + 7086. 1. 2. 27.0 2.5 0.0 1. 20.0 9.0 4. 2. 0.0 0. 1. + 7093. 1. 5. 37.0 16.5 5.5 3. 9.0 20.0 2. 5. 0.0 0. 1. + 7096. 1. 3. 37.0 23.0 3.0 2. 12.0 20.0 2. 4. 0.0 0. 1. + 7099. 1. 5. 22.0 2.5 1.0 3. 12.0 6.5 2. 3. 0.0 0. 1. + 7104. 1. 5. 22.0 2.5 0.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 7108. 1. 5. 22.0 2.5 0.0 4. 14.0 14.0 2. 2. 0.0 0. 1. + 7111. 1. 5. 27.0 2.5 0.0 4. 16.0 14.0 4. 4. 0.0 0. 1. + 7123. 1. 4. 22.0 2.5 0.0 3. 14.0 9.0 3. 2. 0.0 0. 1. + 7124. 1. 4. 32.0 6.0 2.0 3. 14.0 20.0 2. 2. 0.0 0. 1. + 7125. 1. 5. 17.5 2.5 0.0 1. 12.0 9.0 3. 2. 0.0 0. 1. + 7127. 1. 4. 27.0 9.0 2.0 1. 12.0 20.0 2. 2. 0.0 0. 1. + 7130. 1. 3. 32.0 16.5 1.0 2. 12.0 20.0 3. 2. 0.0 0. 1. + 7133. 1. 4. 27.0 6.0 1.0 2. 14.0 14.0 3. 4. 0.0 0. 1. + 7135. 1. 5. 27.0 6.0 2.0 3. 16.0 20.0 4. 5. 0.0 0. 1. + 7142. 1. 5. 27.0 6.0 1.0 3. 17.0 40.0 4. 5. 0.0 0. 1. + 7143. 1. 4. 22.0 0.5 0.0 2. 14.0 11.5 3. 2. 0.0 0. 1. + 7144. 1. 5. 22.0 2.5 1.0 2. 12.0 20.0 4. 4. 0.0 0. 1. + 7145. 1. 4. 27.0 9.0 2.0 2. 12.0 11.5 3. 2. 0.0 0. 1. + 7146. 1. 4. 22.0 2.5 1.0 3. 12.0 11.5 3. 5. 0.0 0. 1. + 7149. 1. 4. 22.0 2.5 0.0 3. 16.0 6.5 4. 1. 0.0 0. 1. + 7152. 1. 5. 32.0 16.5 1.0 3. 12.0 20.0 3. 4. 0.0 0. 1. + 7161. 1. 5. 22.0 2.5 0.0 3. 12.0 14.0 3. 2. 0.0 0. 1. + 7162. 1. 5. 22.0 2.5 1.0 3. 12.0 6.5 3. 4. 0.0 0. 1. + 7164. 1. 5. 27.0 13.0 1.0 2. 12.0 20.0 3. 3. 0.0 0. 1. + 7166. 1. 4. 27.0 6.0 2.0 2. 16.0 20.0 4. 5. 0.0 0. 1. + 7168. 1. 3. 42.0 23.0 4.0 2. 16.0 20.0 4. 6. 0.0 0. 1. + 7171. 1. 3. 37.0 16.5 2.0 2. 12.0 20.0 2. 2. 0.0 0. 1. + 7174. 1. 5. 27.0 6.0 1.0 3. 12.0 20.0 2. 2. 0.0 0. 1. + 7175. 1. 5. 22.0 0.5 0.0 2. 16.0 20.0 4. 6. 0.0 0. 1. + 7178. 1. 5. 22.0 2.5 0.0 4. 14.0 4.0 1. 1. 0.0 0. 1. + 7189. 1. 4. 27.0 6.0 1.0 4. 16.0 11.5 4. 4. 0.0 0. 1. + 7204. 1. 3. 42.0 23.0 2.0 4. 14.0 20.0 2. 5. 0.0 0. 1. + 7206. 1. 3. 27.0 6.0 1.0 3. 14.0 11.5 3. 5. 0.0 0. 1. + 7209. 1. 4. 22.0 2.5 0.0 3. 14.0 9.0 4. 4. 0.0 0. 1. + 7211. 1. 5. 22.0 2.5 0.0 2. 14.0 14.0 3. 5. 0.0 0. 1. + 7213. 1. 3. 32.0 13.0 2.0 2. 12.0 14.0 4. 4. 0.0 0. 1. + 7214. 1. 4. 37.0 16.5 5.5 3. 14.0 20.0 1. 3. 0.0 0. 1. + 7217. 1. 4. 37.0 23.0 5.5 1. 14.0 14.0 3. 2. 0.0 0. 1. + 7218. 1. 5. 22.0 0.5 0.0 3. 16.0 11.5 4. 4. 0.0 0. 1. + 7219. 1. 5. 42.0 16.5 3.0 4. 17.0 40.0 4. 4. 0.0 0. 1. + 7221. 1. 4. 27.0 2.5 0.0 3. 17.0 11.5 4. 5. 0.0 0. 1. + 7232. 1. 4. 32.0 16.5 2.0 1. 12.0 14.0 5. 5. 0.0 0. 1. + 7234. 1. 4. 22.0 2.5 0.0 3. 14.0 11.5 3. 5. 0.0 0. 1. + 7241. 1. 3. 22.0 6.0 2.0 2. 14.0 9.0 2. 4. 0.0 0. 1. + 7246. 1. 5. 22.0 2.5 0.0 2. 14.0 11.5 4. 6. 0.0 0. 1. + 7248. 1. 5. 37.0 13.0 0.0 1. 12.0 40.0 5. 5. 0.0 0. 1. + 7253. 1. 4. 42.0 23.0 5.5 2. 14.0 40.0 4. 3. 0.0 0. 1. + 7255. 1. 5. 37.0 16.5 3.0 2. 14.0 40.0 3. 6. 0.0 0. 1. + 7257. 1. 5. 27.0 6.0 0.0 3. 16.0 40.0 6. 5. 0.0 0. 1. + 7261. 1. 4. 22.0 9.0 3.0 3. 12.0 11.5 5. 5. 0.0 0. 1. + 7264. 1. 5. 17.5 2.5 0.0 3. 12.0 6.5 2. 2. 0.0 0. 1. + 7267. 1. 5. 42.0 23.0 3.0 2. 12.0 20.0 3. 5. 0.0 0. 1. + 7269. 1. 5. 37.0 13.0 2.0 4. 17.0 20.0 4. 5. 0.0 0. 1. + 7273. 1. 4. 37.0 13.0 0.0 2. 14.0 40.0 5. 5. 0.0 0. 1. + 7276. 1. 2. 27.0 6.0 2.0 3. 14.0 11.5 5. 5. 0.0 0. 1. + 7279. 1. 5. 22.0 2.5 2.0 4. 12.0 11.5 3. 5. 0.0 0. 1. + 7281. 1. 4. 22.0 6.0 1.0 2. 12.0 11.5 2. 2. 0.0 0. 1. + 7287. 1. 4. 27.0 6.0 1.0 2. 14.0 20.0 3. 3. 0.0 0. 1. + 7289. 1. 5. 42.0 23.0 4.0 3. 12.0 20.0 3. 5. 0.0 0. 1. + 7299. 1. 5. 27.0 2.5 0.0 4. 16.0 20.0 3. 3. 0.0 0. 1. + 7302. 1. 5. 22.0 2.5 0.0 2. 14.0 14.0 3. 5. 0.0 0. 1. + 7306. 1. 5. 42.0 13.0 0.0 4. 14.0 40.0 5. 2. 0.0 0. 1. + 7308. 1. 5. 22.0 2.5 0.0 3. 16.0 20.0 3. 5. 0.0 0. 1. + 7309. 1. 5. 22.0 2.5 0.0 3. 12.0 14.0 3. 2. 0.0 0. 1. + 7311. 1. 5. 22.0 2.5 1.0 3. 17.0 11.5 4. 2. 0.0 0. 1. + 7316. 1. 5. 22.0 0.5 0.0 3. 17.0 11.5 4. 3. 0.0 0. 1. + 7324. 1. 4. 32.0 9.0 3.0 3. 16.0 40.0 4. 5. 0.0 0. 1. + 7325. 1. 4. 32.0 9.0 2.0 3. 14.0 11.5 2. 2. 0.0 0. 1. + 7328. 1. 4. 27.0 6.0 2.0 1. 14.0 6.5 4. 4. 0.0 0. 1. + 7330. 1. 5. 32.0 2.5 4.0 3. 16.0 20.0 5. 4. 0.0 0. 1. + 7331. 1. 5. 22.0 0.5 0.0 2. 14.0 14.0 2. 5. 0.0 0. 1. + 7332. 1. 5. 27.0 2.5 0.0 3. 14.0 9.0 3. 2. 0.0 0. 1. + 7337. 1. 4. 32.0 16.5 3.0 3. 9.0 20.0 4. 4. 0.0 0. 1. + 7340. 1. 5. 42.0 23.0 2.0 1. 14.0 20.0 3. 4. 0.0 0. 1. + 7358. 1. 3. 32.0 13.0 3.0 2. 16.0 11.5 4. 5. 0.0 0. 1. + 7362. 1. 4. 27.0 6.0 1.0 3. 12.0 14.0 3. 2. 0.0 0. 1. + 7366. 1. 5. 27.0 9.0 2.0 4. 12.0 11.5 2. 2. 0.0 0. 1. + 7372. 1. 4. 27.0 6.0 2.0 2. 14.0 14.0 3. 4. 0.0 0. 1. + 7373. 1. 4. 22.0 2.5 0.0 2. 14.0 11.5 3. 1. 0.0 0. 1. + 7375. 1. 5. 17.5 0.5 0.0 1. 14.0 6.5 1. 1. 0.0 0. 1. + 7381. 1. 4. 32.0 16.5 3.0 3. 14.0 40.0 5. 5. 0.0 0. 1. + 7384. 1. 2. 22.0 6.0 1.0 2. 14.0 20.0 4. 2. 0.0 0. 1. + 7385. 1. 5. 22.0 2.5 0.0 2. 14.0 11.5 3. 4. 0.0 0. 1. + 7388. 1. 4. 27.0 9.0 1.0 3. 12.0 11.5 4. 2. 0.0 0. 1. + 7391. 1. 5. 22.0 2.5 1.0 2. 12.0 6.5 4. 1. 0.0 0. 1. + 7392. 1. 5. 27.0 6.0 0.0 3. 12.0 20.0 4. 2. 0.0 0. 1. + 7394. 1. 3. 42.0 23.0 3.0 3. 14.0 20.0 3. 4. 0.0 0. 1. + 7403. 1. 5. 42.0 16.5 3.0 3. 16.0 14.0 4. 4. 0.0 0. 1. + 7405. 1. 5. 27.0 6.0 1.0 4. 14.0 11.5 2. 2. 0.0 0. 1. + 7406. 1. 5. 22.0 6.0 1.0 4. 14.0 11.5 5. 2. 0.0 0. 1. + 7408. 1. 4. 22.0 0.5 0.0 2. 16.0 20.0 3. 2. 0.0 0. 1. + 7409. 1. 4. 37.0 16.5 4.0 2. 14.0 11.5 2. 5. 0.0 0. 1. + 7417. 1. 5. 32.0 16.5 3.0 3. 12.0 11.5 2. 2. 0.0 0. 1. + 7425. 1. 5. 22.0 0.5 0.0 2. 14.0 9.0 3. 2. 0.0 0. 1. + 7427. 1. 5. 32.0 16.5 3.0 3. 12.0 11.5 3. 2. 0.0 0. 1. + 7429. 1. 5. 27.0 0.5 0.0 2. 20.0 20.0 4. 2. 0.0 0. 1. + 7438. 1. 5. 22.0 2.5 0.0 3. 12.0 14.0 3. 4. 0.0 0. 1. + 7440. 1. 5. 27.0 9.0 2.0 2. 12.0 14.0 4. 4. 0.0 0. 1. + 7443. 1. 4. 22.0 2.5 1.0 2. 12.0 6.5 2. 3. 0.0 0. 1. + 7450. 1. 4. 27.0 6.0 3.0 3. 16.0 20.0 3. 4. 0.0 0. 1. + 7451. 1. 3. 42.0 16.5 3.0 4. 9.0 20.0 5. 4. 0.0 0. 1. + 7454. 1. 3. 32.0 13.0 1.0 3. 9.0 20.0 3. 5. 0.0 0. 1. + 7455. 1. 5. 32.0 16.5 3.0 3. 14.0 11.5 4. 4. 0.0 0. 1. + 7456. 1. 5. 27.0 6.0 1.0 2. 14.0 14.0 3. 4. 0.0 0. 1. + 7460. 1. 4. 32.0 16.5 2.0 2. 12.0 11.5 3. 3. 0.0 0. 1. + 7462. 1. 4. 32.0 13.0 3.0 3. 12.0 14.0 2. 4. 0.0 0. 1. + 7464. 1. 5. 22.0 2.5 0.0 3. 16.0 6.5 4. 1. 0.0 0. 1. + 7469. 1. 5. 22.0 2.5 0.0 2. 16.0 9.0 4. 4. 0.0 0. 1. + 7471. 1. 4. 27.0 13.0 2.0 3. 16.0 11.5 4. 4. 0.0 0. 1. + 7473. 1. 5. 17.5 0.5 0.0 3. 12.0 6.5 3. 1. 0.0 0. 1. + 7478. 1. 4. 27.0 9.0 2.0 3. 14.0 11.5 2. 1. 0.0 0. 1. + 7480. 1. 4. 32.0 9.0 2.0 3. 14.0 20.0 3. 3. 0.0 0. 1. + 7483. 1. 5. 32.0 16.5 3.0 2. 14.0 20.0 3. 4. 0.0 0. 1. + 7488. 1. 5. 27.0 6.0 0.0 4. 20.0 20.0 3. 4. 0.0 0. 1. + 7489. 1. 5. 32.0 16.5 2.0 4. 14.0 20.0 4. 4. 0.0 0. 1. + 7497. 1. 4. 37.0 16.5 5.5 1. 12.0 20.0 3. 4. 0.0 0. 1. + 7501. 1. 4. 22.0 2.5 0.0 3. 14.0 11.5 3. 3. 0.0 0. 1. + 7507. 1. 5. 22.0 2.5 0.0 3. 14.0 6.5 3. 4. 0.0 0. 1. + 7511. 1. 4. 27.0 2.5 0.0 2. 16.0 40.0 3. 5. 0.0 0. 1. + 7512. 1. 5. 42.0 23.0 3.0 2. 14.0 20.0 3. 4. 0.0 0. 1. + 7513. 1. 5. 22.0 2.5 1.0 3. 14.0 11.5 3. 4. 0.0 0. 1. + 7514. 1. 5. 27.0 6.0 0.0 3. 16.0 9.0 3. 2. 0.0 0. 1. + 7516. 1. 4. 27.0 6.0 0.0 2. 14.0 9.0 2. 2. 0.0 0. 1. + 7518. 1. 4. 32.0 13.0 3.0 3. 14.0 14.0 4. 2. 0.0 0. 1. + 7519. 1. 5. 27.0 9.0 1.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 7520. 1. 5. 22.0 2.5 0.0 2. 14.0 11.5 3. 5. 0.0 0. 1. + 7523. 1. 1. 42.0 23.0 4.0 4. 16.0 14.0 4. 2. 0.0 0. 1. + 7525. 1. 5. 22.0 6.0 0.0 1. 14.0 20.0 3. 2. 0.0 0. 1. + 7528. 1. 5. 32.0 13.0 3.0 1. 14.0 11.5 3. 2. 0.0 0. 1. + 7531. 1. 4. 42.0 23.0 4.0 4. 14.0 14.0 1. 5. 0.0 0. 1. + 7534. 1. 3. 22.0 2.5 0.0 2. 12.0 11.5 3. 4. 0.0 0. 1. + 7541. 1. 5. 27.0 6.0 1.0 2. 17.0 40.0 4. 4. 0.0 0. 1. + 7547. 1. 3. 42.0 23.0 3.0 2. 12.0 11.5 3. 2. 0.0 0. 1. + 7558. 1. 4. 42.0 23.0 5.5 2. 12.0 11.5 3. 5. 0.0 0. 1. + 7560. 1. 4. 22.0 6.0 0.0 1. 16.0 20.0 4. 5. 0.0 0. 1. + 7562. 1. 4. 22.0 2.5 0.0 2. 14.0 14.0 2. 4. 0.0 0. 1. + 7570. 1. 5. 27.0 6.0 2.0 4. 12.0 11.5 2. 4. 0.0 0. 1. + 7571. 1. 2. 42.0 23.0 2.0 3. 14.0 11.5 2. 2. 0.0 0. 1. + 7573. 1. 5. 32.0 16.5 3.0 3. 14.0 11.5 3. 2. 0.0 0. 1. + 7576. 1. 4. 42.0 23.0 5.5 4. 20.0 20.0 5. 6. 0.0 0. 1. + 7586. 1. 5. 22.0 2.5 0.0 1. 14.0 11.5 2. 5. 0.0 0. 1. + 7593. 1. 5. 42.0 23.0 5.5 3. 12.0 20.0 3. 5. 0.0 0. 1. + 7595. 1. 5. 27.0 0.5 0.0 2. 16.0 20.0 4. 4. 0.0 0. 1. + 7597. 1. 5. 22.0 2.5 0.0 4. 16.0 20.0 3. 2. 0.0 0. 1. + 7600. 1. 3. 27.0 9.0 2.0 3. 12.0 14.0 2. 5. 0.0 0. 1. + 7603. 1. 5. 22.0 0.5 0.0 2. 16.0 6.5 4. 5. 0.0 0. 1. + 7604. 1. 5. 22.0 2.5 1.0 3. 16.0 11.5 4. 4. 0.0 0. 1. + 7612. 1. 4. 32.0 16.5 4.0 2. 12.0 14.0 2. 2. 0.0 0. 1. + 7618. 1. 4. 32.0 13.0 0.0 2. 17.0 20.0 4. 2. 0.0 0. 1. + 7622. 1. 4. 27.0 2.5 0.0 2. 17.0 20.0 4. 3. 0.0 0. 1. + 7626. 1. 5. 32.0 16.5 2.0 2. 14.0 14.0 3. 3. 0.0 0. 1. + 7628. 1. 4. 27.0 9.0 2.0 2. 14.0 20.0 3. 6. 0.0 0. 1. + 7629. 1. 4. 22.0 2.5 2.0 3. 12.0 6.5 2. 4. 0.0 0. 1. + 7631. 1. 5. 27.0 2.5 0.0 1. 16.0 14.0 4. 6. 0.0 0. 1. + 7633. 1. 2. 22.0 2.5 1.0 3. 16.0 11.5 2. 4. 0.0 0. 1. + 7634. 1. 5. 42.0 23.0 5.5 2. 16.0 40.0 5. 5. 0.0 0. 1. + 7635. 1. 5. 27.0 2.5 0.0 3. 20.0 11.5 4. 4. 0.0 0. 1. + 7640. 1. 5. 37.0 13.0 2.0 2. 20.0 40.0 4. 4. 0.0 0. 1. + 7649. 1. 5. 42.0 16.5 1.0 4. 14.0 20.0 3. 5. 0.0 0. 1. + 7655. 1. 4. 32.0 13.0 2.0 3. 20.0 11.5 4. 4. 0.0 0. 1. + 7661. 1. 5. 22.0 2.5 1.0 3. 12.0 9.0 3. 1. 0.0 0. 1. + 7665. 1. 4. 42.0 23.0 2.0 2. 20.0 20.0 4. 3. 0.0 0. 1. + 7667. 1. 4. 27.0 9.0 2.0 3. 12.0 20.0 3. 4. 0.0 0. 1. + 7668. 1. 5. 22.0 2.5 0.0 3. 14.0 14.0 2. 5. 0.0 0. 1. + 7683. 1. 5. 22.0 2.5 0.0 4. 12.0 6.5 2. 4. 0.0 0. 1. + 7686. 1. 5. 22.0 2.5 0.0 3. 16.0 14.0 4. 4. 0.0 0. 1. + 7687. 1. 5. 32.0 16.5 3.0 3. 12.0 20.0 3. 3. 0.0 0. 1. + 7688. 1. 3. 42.0 16.5 3.0 3. 12.0 11.5 2. 2. 0.0 0. 1. + 7692. 1. 5. 27.0 2.5 1.0 1. 16.0 11.5 4. 5. 0.0 0. 1. + 7693. 1. 4. 37.0 16.5 2.0 3. 14.0 20.0 3. 4. 0.0 0. 1. + 7694. 1. 5. 37.0 2.5 0.0 3. 20.0 14.0 4. 3. 0.0 0. 1. + 7701. 1. 5. 32.0 13.0 3.0 1. 16.0 20.0 4. 5. 0.0 0. 1. + 7709. 1. 3. 37.0 16.5 2.0 3. 14.0 20.0 2. 2. 0.0 0. 1. + 7718. 1. 4. 42.0 23.0 2.0 4. 12.0 20.0 3. 4. 0.0 0. 1. + 7736. 1. 5. 27.0 2.5 0.0 2. 16.0 14.0 4. 4. 0.0 0. 1. + 7739. 1. 5. 22.0 2.5 0.0 3. 16.0 9.0 4. 1. 0.0 0. 1. + 7752. 1. 5. 22.0 6.0 0.0 2. 14.0 20.0 2. 2. 0.0 0. 1. + 7755. 1. 4. 27.0 2.5 0.0 3. 17.0 14.0 4. 4. 0.0 0. 1. + 7761. 1. 5. 22.0 2.5 0.0 3. 16.0 11.5 4. 1. 0.0 0. 1. + 7762. 1. 3. 27.0 6.0 1.0 2. 14.0 11.5 3. 4. 0.0 0. 1. + 7764. 1. 5. 32.0 16.5 4.0 3. 12.0 14.0 5. 5. 0.0 0. 1. + 7765. 1. 5. 37.0 16.5 3.0 4. 17.0 11.5 4. 6. 0.0 0. 1. + 7772. 1. 4. 32.0 13.0 2.0 3. 12.0 20.0 4. 5. 0.0 0. 1. + 7774. 1. 3. 37.0 16.5 4.0 1. 12.0 11.5 5. 5. 0.0 0. 1. + 7778. 1. 5. 22.0 2.5 0.0 2. 12.0 14.0 2. 4. 0.0 0. 1. + 7781. 1. 4. 22.0 2.5 0.0 2. 12.0 14.0 2. 5. 0.0 0. 1. + 7782. 1. 4. 22.0 2.5 1.0 3. 16.0 14.0 4. 4. 0.0 0. 1. + 7785. 1. 4. 27.0 6.0 2.0 3. 14.0 11.5 5. 5. 0.0 0. 1. + 7788. 1. 5. 22.0 2.5 0.0 3. 12.0 11.5 2. 2. 0.0 0. 1. + 7794. 1. 4. 37.0 23.0 4.0 2. 9.0 6.5 2. 2. 0.0 0. 1. + 7795. 1. 5. 27.0 9.0 2.0 3. 12.0 20.0 3. 4. 0.0 0. 1. + 7797. 1. 5. 27.0 6.0 0.0 2. 16.0 4.0 4. 1. 0.0 0. 1. + 7807. 1. 4. 32.0 2.5 0.0 2. 12.0 9.0 3. 2. 0.0 0. 1. + 7811. 1. 4. 22.0 2.5 0.0 1. 14.0 6.5 2. 4. 0.0 0. 1. + 7812. 1. 3. 32.0 13.0 0.0 1. 14.0 14.0 3. 6. 0.0 0. 1. + 7822. 1. 5. 32.0 6.0 2.0 3. 14.0 11.5 3. 5. 0.0 0. 1. + 7824. 1. 5. 22.0 2.5 0.0 1. 14.0 20.0 3. 3. 0.0 0. 1. + 7825. 1. 5. 27.0 6.0 2.0 2. 20.0 20.0 4. 6. 0.0 0. 1. + 7827. 1. 4. 22.0 2.5 0.0 1. 16.0 20.0 4. 4. 0.0 0. 1. + 7832. 1. 5. 22.0 2.5 0.0 3. 14.0 9.0 4. 1. 0.0 0. 1. + 7840. 1. 4. 42.0 23.0 4.0 2. 17.0 20.0 4. 6. 0.0 0. 1. + 7844. 1. 3. 27.0 6.0 1.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 7847. 1. 4. 27.0 2.5 0.0 3. 16.0 20.0 3. 5. 0.0 0. 1. + 7848. 1. 3. 42.0 23.0 2.0 3. 16.0 20.0 3. 4. 0.0 0. 1. + 7852. 1. 4. 42.0 23.0 3.0 2. 12.0 14.0 3. 4. 0.0 0. 1. + 7859. 1. 5. 27.0 2.5 0.0 3. 16.0 20.0 4. 3. 0.0 0. 1. + 7862. 1. 4. 22.0 2.5 0.0 3. 12.0 11.5 3. 3. 0.0 0. 1. + 7863. 1. 5. 27.0 0.5 0.0 1. 14.0 9.0 3. 2. 0.0 0. 1. + 7874. 1. 5. 37.0 16.5 3.0 3. 12.0 14.0 5. 5. 0.0 0. 1. + 7879. 1. 5. 32.0 6.0 0.0 2. 20.0 40.0 4. 5. 0.0 0. 1. + 7880. 1. 5. 22.0 6.0 0.0 1. 12.0 11.5 5. 5. 0.0 0. 1. + 7891. 1. 4. 32.0 16.5 4.0 1. 12.0 11.5 2. 2. 0.0 0. 1. + 7901. 1. 4. 22.0 2.5 1.0 1. 12.0 9.0 2. 2. 0.0 0. 1. + 7907. 1. 4. 27.0 2.5 2.0 3. 14.0 6.5 2. 4. 0.0 0. 1. + 7908. 1. 3. 27.0 2.5 0.0 2. 16.0 40.0 4. 2. 0.0 0. 1. + 7915. 1. 5. 42.0 23.0 4.0 3. 12.0 20.0 3. 3. 0.0 0. 1. + 7921. 1. 4. 27.0 2.5 1.0 4. 14.0 9.0 4. 4. 0.0 0. 1. + 7930. 1. 5. 27.0 6.0 1.0 3. 16.0 14.0 5. 2. 0.0 0. 1. + 7932. 1. 5. 27.0 6.0 0.0 3. 14.0 11.5 3. 4. 0.0 0. 1. + 7934. 1. 5. 42.0 23.0 4.0 2. 14.0 9.0 3. 4. 0.0 0. 1. + 7941. 1. 5. 22.0 2.5 1.0 3. 14.0 20.0 5. 2. 0.0 0. 1. + 7943. 1. 2. 27.0 6.0 2.0 4. 14.0 6.5 2. 2. 0.0 0. 1. + 7945. 1. 4. 42.0 23.0 2.0 3. 14.0 20.0 3. 5. 0.0 0. 1. + 7947. 1. 5. 27.0 6.0 1.0 4. 14.0 20.0 5. 4. 0.0 0. 1. + 7953. 1. 4. 22.0 2.5 0.0 4. 16.0 11.5 4. 4. 0.0 0. 1. + 7955. 1. 4. 22.0 2.5 0.0 2. 16.0 20.0 4. 4. 0.0 0. 1. + 7960. 1. 4. 27.0 9.0 2.0 2. 16.0 20.0 4. 3. 0.0 0. 1. + 7967. 1. 5. 37.0 16.5 1.0 3. 14.0 20.0 3. 2. 0.0 0. 1. + 7968. 1. 4. 22.0 2.5 1.0 3. 12.0 11.5 2. 2. 0.0 0. 1. + 7970. 1. 5. 27.0 13.0 2.0 4. 12.0 20.0 2. 4. 0.0 0. 1. + 7984. 1. 4. 27.0 6.0 0.0 2. 17.0 14.0 4. 5. 0.0 0. 1. + 7987. 1. 5. 22.0 2.5 1.0 2. 16.0 14.0 4. 4. 0.0 0. 1. + 7994. 1. 5. 17.5 0.5 0.0 1. 12.0 9.0 3. 3. 0.0 0. 1. + 7995. 1. 4. 27.0 2.5 0.0 1. 17.0 6.5 1. 4. 0.0 0. 1. + 7999. 1. 5. 27.0 6.0 1.0 2. 16.0 20.0 4. 4. 0.0 0. 1. + 8002. 1. 5. 22.0 2.5 0.0 2. 14.0 9.0 5. 5. 0.0 0. 1. + 8003. 1. 4. 37.0 16.5 3.0 2. 12.0 20.0 3. 5. 0.0 0. 1. + 8009. 1. 4. 22.0 2.5 0.0 2. 16.0 20.0 3. 3. 0.0 0. 1. + 8011. 1. 4. 32.0 9.0 2.0 2. 16.0 20.0 4. 6. 0.0 0. 1. + 8012. 1. 5. 22.0 2.5 1.0 3. 17.0 20.0 4. 5. 0.0 0. 1. + 8028. 1. 4. 27.0 2.5 0.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 8036. 1. 5. 27.0 6.0 2.0 2. 16.0 14.0 2. 4. 0.0 0. 1. + 8040. 1. 4. 22.0 2.5 1.0 3. 14.0 11.5 3. 4. 0.0 0. 1. + 8041. 1. 3. 22.0 0.5 0.0 2. 14.0 11.5 3. 4. 0.0 0. 1. + 8050. 1. 5. 32.0 13.0 3.0 3. 16.0 11.5 4. 4. 0.0 0. 1. + 8051. 1. 5. 32.0 9.0 2.0 1. 16.0 14.0 2. 4. 0.0 0. 1. + 8053. 1. 5. 22.0 2.5 0.0 3. 12.0 20.0 2. 4. 0.0 0. 1. + 8055. 1. 4. 32.0 13.0 0.0 3. 12.0 20.0 5. 4. 0.0 0. 1. + 8058. 1. 5. 27.0 2.5 0.0 2. 12.0 11.5 3. 2. 0.0 0. 1. + 8061. 1. 2. 22.0 2.5 0.0 3. 14.0 11.5 2. 2. 0.0 0. 1. + 8062. 1. 3. 32.0 9.0 1.0 3. 16.0 11.5 4. 3. 0.0 0. 1. + 8066. 1. 5. 22.0 0.5 0.0 3. 17.0 14.0 4. 2. 0.0 0. 1. + 8067. 1. 5. 27.0 6.0 0.0 3. 16.0 40.0 4. 6. 0.0 0. 1. + 8068. 1. 3. 42.0 23.0 3.0 2. 16.0 20.0 4. 5. 0.0 0. 1. + 8069. 1. 4. 32.0 9.0 2.0 1. 12.0 14.0 3. 3. 0.0 0. 1. + 8080. 1. 5. 32.0 13.0 2.0 4. 20.0 20.0 6. 6. 0.0 0. 1. + 8089. 1. 5. 27.0 2.5 1.0 4. 20.0 20.0 4. 4. 0.0 0. 1. + 8092. 1. 4. 32.0 9.0 2.0 3. 16.0 9.0 4. 2. 0.0 0. 1. + 8093. 1. 4. 37.0 16.5 3.0 4. 14.0 20.0 2. 4. 0.0 0. 1. + 8095. 1. 5. 42.0 23.0 1.0 4. 12.0 9.0 2. 2. 0.0 0. 1. + 8104. 1. 4. 27.0 2.5 0.0 1. 16.0 6.5 3. 3. 0.0 0. 1. + 8105. 1. 4. 27.0 6.0 1.0 2. 17.0 14.0 3. 3. 0.0 0. 1. + 8106. 1. 5. 32.0 13.0 1.0 1. 16.0 20.0 4. 4. 0.0 0. 1. + 8107. 1. 5. 27.0 6.0 1.0 4. 16.0 9.0 2. 2. 0.0 0. 1. + 8108. 1. 5. 32.0 16.5 3.0 3. 16.0 40.0 4. 5. 0.0 0. 1. + 8123. 1. 5. 42.0 23.0 2.0 4. 12.0 14.0 2. 2. 0.0 0. 1. + 8124. 1. 5. 37.0 6.0 1.0 3. 12.0 6.5 3. 2. 0.0 0. 1. + 8125. 1. 1. 22.0 2.5 1.0 2. 12.0 9.0 3. 5. 0.0 0. 1. + 8130. 1. 4. 22.0 2.5 1.0 3. 17.0 9.0 4. 4. 0.0 0. 1. + 8131. 1. 5. 17.5 0.5 1.0 2. 12.0 11.5 3. 3. 0.0 0. 1. + 8132. 1. 5. 42.0 23.0 5.5 3. 12.0 20.0 3. 4. 0.0 0. 1. + 8134. 1. 5. 42.0 6.0 0.0 4. 20.0 20.0 4. 2. 0.0 0. 1. + 8137. 1. 2. 17.5 2.5 1.0 2. 12.0 11.5 4. 4. 0.0 0. 1. + 8140. 1. 4. 37.0 16.5 3.0 4. 12.0 20.0 3. 4. 0.0 0. 1. + 8142. 1. 5. 32.0 16.5 3.0 2. 16.0 14.0 3. 5. 0.0 0. 1. + 8146. 1. 5. 22.0 2.5 0.0 3. 12.0 4.0 3. 1. 0.0 0. 1. + 8156. 1. 5. 22.0 6.0 2.0 4. 12.0 9.0 3. 3. 0.0 0. 1. + 8157. 1. 5. 22.0 2.5 1.0 3. 20.0 20.0 4. 4. 0.0 0. 1. + 8158. 1. 4. 22.0 6.0 0.0 1. 14.0 20.0 4. 6. 0.0 0. 1. + 8166. 1. 5. 32.0 13.0 1.0 3. 12.0 20.0 3. 2. 0.0 0. 1. + 8171. 1. 4. 32.0 6.0 3.0 2. 17.0 20.0 4. 6. 0.0 0. 1. + 8176. 1. 4. 27.0 6.0 2.0 3. 14.0 20.0 4. 2. 0.0 0. 1. + 8178. 1. 3. 22.0 6.0 1.0 3. 12.0 9.0 2. 4. 0.0 0. 1. + 8181. 1. 3. 37.0 23.0 3.0 3. 12.0 20.0 3. 4. 0.0 0. 1. + 8189. 1. 5. 22.0 2.5 1.0 1. 14.0 11.5 3. 2. 0.0 0. 1. + 8191. 1. 2. 27.0 9.0 1.0 2. 12.0 14.0 3. 4. 0.0 0. 1. + 8207. 1. 3. 22.0 2.5 1.0 2. 12.0 6.5 3. 2. 0.0 0. 1. + 8211. 1. 4. 32.0 13.0 2.0 2. 17.0 14.0 3. 2. 0.0 0. 1. + 8216. 1. 2. 22.0 2.5 1.0 3. 12.0 11.5 3. 4. 0.0 0. 1. + 8224. 1. 5. 37.0 13.0 0.0 2. 12.0 20.0 4. 2. 0.0 0. 1. + 8233. 1. 3. 37.0 16.5 4.0 4. 14.0 14.0 4. 2. 0.0 0. 1. + 8234. 1. 5. 42.0 23.0 3.0 3. 12.0 20.0 3. 5. 0.0 0. 1. + 8240. 1. 5. 22.0 2.5 0.0 4. 16.0 11.5 4. 4. 0.0 0. 1. + 8241. 1. 3. 27.0 2.5 0.0 3. 20.0 14.0 4. 4. 0.0 0. 1. + 8243. 1. 4. 27.0 2.5 2.0 3. 12.0 9.0 4. 5. 0.0 0. 1. + 8245. 1. 5. 22.0 2.5 0.0 4. 14.0 6.5 3. 1. 0.0 0. 1. + 8253. 1. 4. 22.0 2.5 0.0 3. 14.0 14.0 2. 2. 0.0 0. 1. + 8254. 1. 3. 32.0 13.0 2.0 2. 12.0 20.0 2. 2. 0.0 0. 1. + 8255. 1. 5. 27.0 6.0 2.0 3. 12.0 20.0 3. 5. 0.0 0. 1. + 8266. 1. 5. 27.0 9.0 3.0 4. 14.0 9.0 4. 2. 0.0 0. 1. + 8273. 1. 4. 22.0 6.0 2.0 2. 12.0 11.5 3. 2. 0.0 0. 1. + 8277. 1. 4. 32.0 9.0 3.0 2. 16.0 14.0 4. 2. 0.0 0. 1. + 8280. 1. 4. 42.0 23.0 4.0 3. 14.0 20.0 3. 5. 0.0 0. 1. + 8285. 1. 5. 42.0 23.0 5.5 4. 14.0 11.5 4. 4. 0.0 0. 1. + 8287. 1. 3. 22.0 2.5 2.0 1. 12.0 9.0 3. 2. 0.0 0. 1. + 8292. 1. 5. 32.0 13.0 3.0 3. 14.0 20.0 4. 3. 0.0 0. 1. + 8295. 1. 4. 32.0 16.5 5.5 3. 12.0 14.0 3. 4. 0.0 0. 1. + 8296. 1. 5. 22.0 2.5 0.0 3. 17.0 20.0 5. 5. 0.0 0. 1. + 8297. 1. 3. 22.0 2.5 1.0 3. 12.0 14.0 3. 5. 0.0 0. 1. + 8299. 1. 5. 22.0 2.5 0.0 2. 14.0 14.0 1. 4. 0.0 0. 1. + 8310. 1. 5. 32.0 9.0 0.0 2. 12.0 11.5 3. 5. 0.0 0. 1. + 8316. 1. 2. 22.0 2.5 1.0 3. 14.0 9.0 3. 2. 0.0 0. 1. + 8325. 1. 5. 22.0 2.5 0.0 3. 16.0 9.0 5. 1. 0.0 0. 1. + 8331. 1. 4. 27.0 6.0 0.0 3. 16.0 20.0 4. 5. 0.0 0. 1. + 8338. 1. 5. 27.0 0.5 0.0 3. 16.0 11.5 4. 1. 0.0 0. 1. + 8341. 1. 5. 27.0 6.0 2.0 3. 17.0 20.0 4. 5. 0.0 0. 1. + 8343. 1. 4. 27.0 2.5 1.0 3. 16.0 9.0 2. 3. 0.0 0. 1. + 8349. 1. 5. 22.0 2.5 0.0 3. 14.0 20.0 4. 2. 0.0 0. 1. + 8353. 1. 5. 32.0 16.5 4.0 3. 12.0 20.0 5. 2. 0.0 0. 1. + 8359. 1. 2. 22.0 2.5 0.0 2. 12.0 14.0 3. 2. 0.0 0. 1. + 8369. 1. 5. 27.0 0.5 0.0 1. 12.0 14.0 3. 2. 0.0 0. 1. + 8374. 1. 4. 42.0 23.0 1.0 1. 12.0 11.5 4. 5. 0.0 0. 1. + 8375. 1. 3. 27.0 9.0 0.0 3. 17.0 20.0 4. 6. 0.0 0. 1. + 8376. 1. 4. 22.0 2.5 0.0 2. 16.0 6.5 3. 1. 0.0 0. 1. + 8379. 1. 3. 42.0 23.0 3.0 3. 14.0 20.0 2. 2. 0.0 0. 1. + 8385. 1. 4. 22.0 0.5 0.0 3. 16.0 6.5 3. 4. 0.0 0. 1. + 8388. 1. 5. 32.0 9.0 2.0 1. 16.0 40.0 5. 5. 0.0 0. 1. + 8398. 1. 5. 37.0 0.5 0.0 2. 17.0 14.0 4. 2. 0.0 0. 1. + 8402. 1. 4. 22.0 2.5 0.0 3. 16.0 11.5 3. 5. 0.0 0. 1. + 8403. 1. 4. 22.0 2.5 0.0 3. 16.0 20.0 4. 5. 0.0 0. 1. + 8405. 1. 5. 42.0 23.0 4.0 3. 12.0 9.0 2. 4. 0.0 0. 1. + 8406. 1. 5. 32.0 6.0 2.0 1. 12.0 20.0 3. 5. 0.0 0. 1. + 8409. 1. 4. 22.0 2.5 0.0 2. 12.0 11.5 3. 4. 0.0 0. 1. + 8410. 1. 5. 22.0 2.5 1.0 2. 12.0 11.5 3. 2. 0.0 0. 1. + 8411. 1. 5. 27.0 13.0 1.0 2. 14.0 11.5 3. 5. 0.0 0. 1. + 8412. 1. 5. 27.0 6.0 2.0 2. 17.0 20.0 4. 3. 0.0 0. 1. + 8414. 1. 4. 22.0 2.5 0.0 3. 16.0 14.0 3. 2. 0.0 0. 1. + 8417. 1. 5. 27.0 6.0 0.0 1. 14.0 9.0 2. 1. 0.0 0. 1. + 8418. 1. 4. 42.0 23.0 5.5 3. 14.0 9.0 5. 4. 0.0 0. 1. + 8425. 1. 3. 17.5 2.5 1.0 2. 12.0 9.0 2. 4. 0.0 0. 1. + 8426. 1. 4. 22.0 2.5 0.0 2. 14.0 6.5 1. 1. 0.0 0. 1. + 8428. 1. 5. 22.0 0.5 0.0 2. 12.0 14.0 4. 4. 0.0 0. 1. + 8429. 1. 3. 27.0 2.5 1.0 1. 12.0 6.5 2. 2. 0.0 0. 1. + 8438. 1. 5. 17.5 2.5 0.0 3. 14.0 6.5 2. 3. 0.0 0. 1. + 8441. 1. 5. 37.0 16.5 3.0 3. 14.0 20.0 3. 5. 0.0 0. 1. + 8449. 1. 4. 27.0 6.0 2.0 2. 14.0 6.5 3. 2. 0.0 0. 1. + 8450. 1. 3. 42.0 23.0 3.0 2. 14.0 11.5 5. 4. 0.0 0. 1. + 8453. 1. 4. 22.0 2.5 0.0 3. 12.0 6.5 3. 2. 0.0 0. 1. + 8455. 1. 5. 22.0 0.5 0.0 2. 12.0 11.5 2. 4. 0.0 0. 1. + 8459. 1. 3. 27.0 9.0 3.0 3. 12.0 11.5 2. 4. 0.0 0. 1. + 8469. 1. 3. 22.0 2.5 0.0 2. 12.0 11.5 3. 4. 0.0 0. 1. + 8470. 1. 4. 22.0 2.5 0.0 1. 17.0 6.5 4. 1. 0.0 0. 1. + 8471. 1. 3. 22.0 2.5 2.0 3. 12.0 20.0 3. 2. 0.0 0. 1. + 8481. 1. 3. 42.0 23.0 2.0 1. 16.0 20.0 4. 5. 0.0 0. 1. + 8486. 1. 4. 22.0 2.5 2.0 2. 14.0 6.5 2. 2. 0.0 0. 1. + 8488. 1. 5. 17.5 2.5 1.0 3. 12.0 6.5 5. 5. 0.0 0. 1. + 8499. 1. 5. 22.0 0.5 0.0 1. 16.0 14.0 4. 2. 0.0 0. 1. + 8503. 1. 5. 22.0 2.5 0.0 3. 16.0 20.0 3. 3. 0.0 0. 1. + 8506. 1. 4. 27.0 6.0 1.0 2. 16.0 14.0 4. 4. 0.0 0. 1. + 8515. 1. 4. 27.0 2.5 0.0 1. 14.0 6.5 4. 1. 0.0 0. 1. + 8522. 1. 5. 22.0 2.5 0.0 3. 17.0 14.0 4. 2. 0.0 0. 1. + 8530. 1. 5. 27.0 2.5 0.0 1. 14.0 20.0 2. 5. 0.0 0. 1. + 8532. 1. 5. 22.0 2.5 0.0 1. 16.0 14.0 3. 2. 0.0 0. 1. + 8533. 1. 4. 32.0 13.0 2.0 1. 14.0 14.0 3. 4. 0.0 0. 1. + 8535. 1. 5. 22.0 0.5 0.0 2. 14.0 14.0 3. 5. 0.0 0. 1. + 8544. 1. 5. 22.0 2.5 0.0 3. 17.0 20.0 4. 4. 0.0 0. 1. + 8553. 1. 5. 22.0 2.5 0.0 3. 14.0 14.0 2. 4. 0.0 0. 1. + 8566. 1. 5. 22.0 2.5 1.0 2. 14.0 20.0 3. 4. 0.0 0. 1. + 8572. 1. 5. 27.0 2.5 0.0 1. 12.0 14.0 3. 2. 0.0 0. 1. + 8578. 1. 3. 27.0 6.0 1.0 3. 12.0 14.0 4. 4. 0.0 0. 1. + 8581. 1. 4. 27.0 6.0 2.0 3. 14.0 11.5 3. 4. 0.0 0. 1. + 8590. 1. 4. 32.0 16.5 2.0 3. 12.0 20.0 3. 5. 0.0 0. 1. + 8594. 1. 4. 27.0 6.0 0.0 1. 17.0 11.5 4. 5. 0.0 0. 1. + 8603. 1. 4. 22.0 2.5 0.0 3. 14.0 9.0 3. 2. 0.0 0. 1. + 8606. 1. 5. 27.0 6.0 0.0 2. 16.0 20.0 3. 4. 0.0 0. 1. + 8611. 1. 4. 27.0 6.0 0.0 2. 16.0 20.0 4. 2. 0.0 0. 1. + 8616. 1. 3. 32.0 16.5 2.0 4. 20.0 20.0 4. 4. 0.0 0. 1. + 8619. 1. 4. 22.0 2.5 1.0 2. 14.0 11.5 3. 4. 0.0 0. 1. + 8622. 1. 5. 27.0 6.0 2.0 3. 17.0 11.5 4. 4. 0.0 0. 1. + 8623. 1. 3. 27.0 9.0 1.0 3. 14.0 14.0 1. 4. 0.0 0. 1. + 8628. 1. 5. 27.0 2.5 0.0 3. 16.0 20.0 4. 5. 0.0 0. 1. + 8630. 1. 5. 22.0 2.5 0.0 4. 16.0 20.0 3. 5. 0.0 0. 1. + 8632. 1. 5. 27.0 2.5 1.0 2. 12.0 11.5 2. 2. 0.0 0. 1. + 8638. 1. 1. 37.0 13.0 5.5 3. 12.0 4.0 2. 4. 0.0 0. 1. + 8640. 1. 4. 27.0 6.0 2.0 1. 12.0 11.5 3. 5. 0.0 0. 1. + 8644. 1. 3. 22.0 2.5 0.0 2. 12.0 11.5 2. 4. 0.0 0. 1. + 8649. 1. 4. 22.0 2.5 0.0 4. 16.0 11.5 3. 2. 0.0 0. 1. + 8651. 1. 4. 27.0 13.0 2.0 2. 12.0 11.5 4. 4. 0.0 0. 1. + 8654. 1. 5. 22.0 2.5 0.0 2. 14.0 9.0 4. 4. 0.0 0. 1. + 8655. 1. 4. 27.0 2.5 0.0 2. 17.0 20.0 4. 5. 0.0 0. 1. + 8668. 1. 2. 22.0 2.5 0.0 1. 12.0 11.5 3. 4. 0.0 0. 1. + 8672. 1. 5. 22.0 2.5 0.0 1. 16.0 11.5 3. 1. 0.0 0. 1. + 8678. 1. 4. 22.0 2.5 0.0 2. 14.0 14.0 3. 5. 0.0 0. 1. + 8680. 1. 4. 27.0 2.5 0.0 3. 17.0 20.0 4. 6. 0.0 0. 1. + 8682. 1. 5. 22.0 0.5 0.0 3. 14.0 20.0 3. 5. 0.0 0. 1. + 8686. 1. 4. 22.0 2.5 1.0 3. 14.0 11.5 3. 5. 0.0 0. 1. + 8689. 1. 3. 22.0 2.5 0.0 1. 16.0 20.0 4. 5. 0.0 0. 1. + 8693. 1. 5. 37.0 16.5 2.0 4. 14.0 40.0 4. 6. 0.0 0. 1. + 8694. 1. 5. 22.0 0.5 0.0 3. 14.0 11.5 3. 4. 0.0 0. 1. + 8696. 1. 5. 32.0 9.0 1.0 2. 16.0 20.0 4. 4. 0.0 0. 1. + 8705. 1. 5. 22.0 2.5 0.0 3. 16.0 11.5 3. 3. 0.0 0. 1. + 8708. 1. 5. 22.0 2.5 1.0 3. 14.0 14.0 4. 4. 0.0 0. 1. + 8710. 1. 4. 27.0 6.0 1.0 2. 14.0 14.0 5. 3. 0.0 0. 1. + 8713. 1. 4. 27.0 9.0 3.0 3. 12.0 14.0 3. 4. 0.0 0. 1. + 8715. 1. 2. 22.0 2.5 0.0 4. 16.0 14.0 4. 4. 0.0 0. 1. + 8718. 1. 5. 22.0 2.5 0.0 3. 14.0 14.0 4. 2. 0.0 0. 1. + 8720. 1. 5. 27.0 2.5 1.0 1. 16.0 40.0 4. 6. 0.0 0. 1. + 8721. 1. 4. 37.0 16.5 3.0 3. 12.0 20.0 3. 5. 0.0 0. 1. + 8723. 1. 5. 22.0 2.5 0.0 3. 14.0 20.0 5. 5. 0.0 0. 1. + 8739. 1. 3. 22.0 2.5 0.0 1. 12.0 14.0 4. 4. 0.0 0. 1. + 8742. 1. 4. 32.0 9.0 3.0 2. 20.0 20.0 4. 6. 0.0 0. 1. + 8748. 1. 4. 42.0 23.0 3.0 4. 12.0 9.0 4. 2. 0.0 0. 1. + 8762. 1. 1. 32.0 2.5 1.0 1. 20.0 40.0 4. 4. 0.0 0. 1. + 8764. 1. 5. 22.0 6.0 0.0 2. 14.0 20.0 3. 4. 0.0 0. 1. + 8765. 1. 4. 27.0 6.0 1.0 3. 14.0 20.0 3. 5. 0.0 0. 1. + 8766. 1. 5. 22.0 2.5 0.0 2. 16.0 11.5 4. 2. 0.0 0. 1. + 8767. 1. 4. 22.0 2.5 0.0 2. 14.0 9.0 4. 4. 0.0 0. 1. + 8772. 1. 3. 32.0 13.0 2.0 2. 16.0 40.0 4. 5. 0.0 0. 1. + 8773. 1. 5. 37.0 23.0 3.0 3. 12.0 11.5 2. 2. 0.0 0. 1. + 8776. 1. 5. 22.0 9.0 2.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 8777. 1. 5. 27.0 6.0 0.0 3. 14.0 20.0 5. 2. 0.0 0. 1. + 8779. 1. 3. 37.0 16.5 3.0 3. 12.0 20.0 3. 2. 0.0 0. 1. + 8783. 1. 5. 27.0 6.0 0.0 3. 17.0 6.5 3. 1. 0.0 0. 1. + 8786. 1. 5. 17.5 0.5 0.0 4. 12.0 9.0 2. 2. 0.0 0. 1. + 8789. 1. 5. 27.0 2.5 0.0 4. 17.0 11.5 4. 2. 0.0 0. 1. + 8791. 1. 5. 22.0 2.5 0.0 3. 14.0 20.0 5. 4. 0.0 0. 1. + 8794. 1. 3. 22.0 2.5 0.0 3. 16.0 14.0 4. 4. 0.0 0. 1. + 8801. 1. 5. 22.0 2.5 1.0 3. 16.0 11.5 4. 5. 0.0 0. 1. + 8806. 1. 4. 27.0 2.5 0.0 2. 16.0 40.0 5. 4. 0.0 0. 1. + 8807. 1. 5. 22.0 2.5 0.0 2. 17.0 20.0 4. 5. 0.0 0. 1. + 8810. 1. 5. 22.0 0.5 0.0 3. 14.0 11.5 3. 4. 0.0 0. 1. + 8818. 1. 4. 22.0 2.5 1.0 3. 14.0 9.0 3. 4. 0.0 0. 1. + 8819. 1. 4. 32.0 6.0 2.0 3. 14.0 20.0 4. 4. 0.0 0. 1. + 8820. 1. 4. 42.0 16.5 3.0 3. 20.0 20.0 6. 6. 0.0 0. 1. + 8821. 1. 3. 27.0 2.5 1.0 2. 17.0 14.0 4. 3. 0.0 0. 1. + 8828. 1. 2. 42.0 23.0 2.0 3. 14.0 40.0 3. 4. 0.0 0. 1. + 8830. 1. 5. 27.0 9.0 1.0 2. 12.0 11.5 2. 2. 0.0 0. 1. + 8831. 1. 5. 22.0 2.5 0.0 4. 17.0 6.5 4. 4. 0.0 0. 1. + 8838. 1. 4. 32.0 16.5 4.0 2. 12.0 11.5 3. 2. 0.0 0. 1. + 8843. 1. 4. 32.0 6.0 0.0 1. 14.0 20.0 4. 5. 0.0 0. 1. + 8844. 1. 5. 27.0 6.0 1.0 1. 20.0 20.0 6. 6. 0.0 0. 1. + 8846. 1. 4. 37.0 13.0 2.0 3. 14.0 20.0 4. 4. 0.0 0. 1. + 8854. 1. 4. 27.0 9.0 2.0 3. 14.0 20.0 3. 5. 0.0 0. 1. + 8855. 1. 5. 27.0 9.0 3.0 1. 12.0 9.0 2. 2. 0.0 0. 1. + 8858. 1. 4. 32.0 9.0 2.0 2. 12.0 20.0 5. 3. 0.0 0. 1. + 8862. 1. 5. 42.0 23.0 3.0 3. 12.0 20.0 5. 3. 0.0 0. 1. + 8864. 1. 3. 37.0 23.0 3.0 3. 14.0 40.0 4. 6. 0.0 0. 1. + 8868. 1. 4. 27.0 2.5 0.0 2. 16.0 40.0 4. 5. 0.0 0. 1. + 8871. 1. 4. 22.0 2.5 0.0 3. 14.0 20.0 5. 4. 0.0 0. 1. + 8874. 1. 4. 42.0 13.0 0.0 3. 16.0 40.0 4. 5. 0.0 0. 1. + 8875. 1. 5. 27.0 6.0 0.0 1. 12.0 20.0 3. 4. 0.0 0. 1. + 8877. 1. 5. 22.0 2.5 0.0 4. 16.0 40.0 3. 1. 0.0 0. 1. + 8888. 1. 5. 37.0 16.5 1.0 3. 12.0 40.0 3. 5. 0.0 0. 1. + 8894. 1. 3. 32.0 13.0 3.0 2. 9.0 14.0 2. 5. 0.0 0. 1. + 8908. 1. 3. 27.0 6.0 2.0 3. 16.0 20.0 4. 5. 0.0 0. 1. + 8918. 1. 5. 27.0 2.5 1.0 4. 16.0 20.0 4. 5. 0.0 0. 1. + 8919. 1. 4. 37.0 16.5 3.0 2. 14.0 20.0 4. 5. 0.0 0. 1. + 8921. 1. 5. 22.0 2.5 0.0 4. 14.0 6.5 3. 2. 0.0 0. 1. + 8926. 1. 4. 37.0 16.5 2.0 3. 12.0 20.0 3. 4. 0.0 0. 1. + 8927. 1. 2. 32.0 6.0 0.0 3. 14.0 11.5 2. 2. 0.0 0. 1. + 8928. 1. 4. 27.0 9.0 0.0 3. 12.0 20.0 3. 4. 0.0 0. 1. + 8937. 1. 3. 32.0 9.0 1.0 3. 17.0 20.0 4. 5. 0.0 0. 1. + 8941. 1. 5. 22.0 6.0 2.0 3. 12.0 9.0 3. 2. 0.0 0. 1. + 8942. 1. 3. 27.0 13.0 3.0 3. 14.0 20.0 4. 4. 0.0 0. 1. + 8945. 1. 5. 22.0 2.5 0.0 1. 14.0 40.0 3. 4. 0.0 0. 1. + 8948. 1. 5. 37.0 16.5 3.0 3. 12.0 40.0 3. 5. 0.0 0. 1. + 8950. 1. 5. 27.0 2.5 1.0 3. 16.0 20.0 5. 3. 0.0 0. 1. + 8953. 1. 5. 32.0 13.0 3.0 3. 14.0 20.0 4. 4. 0.0 0. 1. + 8955. 1. 5. 37.0 23.0 3.0 3. 14.0 40.0 3. 5. 0.0 0. 1. + 8968. 1. 4. 22.0 2.5 0.0 3. 14.0 14.0 3. 2. 0.0 0. 1. + 8977. 1. 3. 22.0 2.5 0.0 3. 14.0 14.0 3. 2. 0.0 0. 1. + 8982. 1. 4. 37.0 23.0 3.0 1. 9.0 14.0 3. 4. 0.0 0. 1. + 8986. 1. 4. 37.0 23.0 2.0 2. 14.0 11.5 5. 4. 0.0 0. 1. + 8989. 1. 3. 37.0 23.0 2.0 4. 14.0 20.0 3. 3. 0.0 0. 1. + 8991. 1. 5. 22.0 2.5 0.0 2. 14.0 20.0 3. 6. 0.0 0. 1. + 8996. 1. 5. 22.0 2.5 0.0 3. 14.0 20.0 3. 2. 0.0 0. 1. + 8997. 1. 5. 32.0 9.0 2.0 1. 17.0 11.5 4. 5. 0.0 0. 1. + 9000. 1. 5. 32.0 13.0 2.0 3. 16.0 20.0 4. 2. 0.0 0. 1. + 9002. 1. 3. 42.0 23.0 3.0 3. 12.0 20.0 3. 5. 0.0 0. 1. + 9014. 1. 2. 32.0 6.0 2.0 2. 16.0 11.5 4. 2. 0.0 0. 1. + 9018. 1. 5. 17.5 2.5 0.0 3. 12.0 6.5 4. 1. 0.0 0. 1. + 9020. 1. 5. 42.0 16.5 2.0 2. 14.0 20.0 4. 4. 0.0 0. 1. + 9021. 1. 5. 27.0 6.0 2.0 3. 12.0 11.5 3. 2. 0.0 0. 1. + 9023. 1. 5. 37.0 16.5 3.0 3. 12.0 14.0 3. 2. 0.0 0. 1. + 9026. 1. 5. 32.0 9.0 1.0 4. 16.0 20.0 4. 4. 0.0 0. 1. + 9029. 1. 4. 42.0 23.0 4.0 3. 14.0 20.0 3. 2. 0.0 0. 1. + 9030. 1. 4. 42.0 23.0 5.5 4. 20.0 20.0 4. 6. 0.0 0. 1. + 9031. 1. 5. 22.0 2.5 0.0 2. 14.0 14.0 3. 5. 0.0 0. 1. + 9035. 1. 3. 27.0 9.0 1.0 3. 12.0 20.0 5. 4. 0.0 0. 1. + 9040. 1. 5. 22.0 0.5 0.0 2. 16.0 20.0 4. 5. 0.0 0. 1. + 9043. 1. 5. 37.0 13.0 1.0 3. 14.0 20.0 3. 5. 0.0 0. 1. + 9048. 1. 5. 22.0 2.5 0.0 3. 17.0 20.0 4. 4. 0.0 0. 1. + 9049. 1. 2. 32.0 9.0 2.0 3. 12.0 20.0 3. 4. 0.0 0. 1. + 9055. 1. 4. 22.0 6.0 0.0 4. 14.0 9.0 3. 5. 0.0 0. 1. + 9062. 1. 4. 22.0 2.5 0.0 3. 14.0 6.5 4. 2. 0.0 0. 1. + 9069. 1. 5. 27.0 6.0 1.0 3. 16.0 14.0 3. 4. 0.0 0. 1. + 9071. 1. 4. 22.0 2.5 0.0 1. 17.0 20.0 4. 5. 0.0 0. 1. + 9072. 1. 4. 32.0 13.0 2.0 4. 17.0 20.0 5. 5. 0.0 0. 1. + 9086. 1. 5. 27.0 6.0 0.0 2. 14.0 20.0 5. 4. 0.0 0. 1. + 9087. 1. 5. 37.0 23.0 3.0 3. 14.0 20.0 3. 5. 0.0 0. 1. + 9091. 1. 2. 37.0 16.5 2.0 2. 12.0 14.0 3. 5. 0.0 0. 1. + 9094. 1. 4. 27.0 6.0 2.0 3. 14.0 14.0 3. 3. 0.0 0. 1. + 9096. 1. 5. 27.0 2.5 0.0 2. 16.0 14.0 4. 4. 0.0 0. 1. + 9097. 1. 5. 42.0 23.0 2.0 4. 12.0 11.5 3. 2. 0.0 0. 1. + 9100. 1. 5. 27.0 2.5 0.0 2. 16.0 20.0 4. 2. 0.0 0. 1. + 9101. 1. 5. 32.0 13.0 1.0 3. 16.0 20.0 4. 5. 0.0 0. 1. + 9107. 1. 5. 37.0 13.0 2.0 4. 20.0 40.0 4. 5. 0.0 0. 1. + 9112. 1. 3. 27.0 6.0 0.0 3. 14.0 20.0 3. 5. 0.0 0. 1. + 9114. 1. 3. 22.0 6.0 2.0 3. 12.0 6.5 2. 2. 0.0 0. 1. + 9115. 1. 5. 22.0 2.5 0.0 2. 12.0 14.0 2. 3. 0.0 0. 1. + 9116. 1. 5. 22.0 2.5 1.0 2. 14.0 9.0 2. 2. 0.0 0. 1. + 9118. 1. 2. 17.5 2.5 2.0 2. 12.0 14.0 3. 4. 0.0 0. 1. + 9120. 1. 5. 27.0 2.5 0.0 3. 14.0 40.0 3. 3. 0.0 0. 1. + 9121. 1. 5. 22.0 0.5 0.0 2. 16.0 11.5 4. 5. 0.0 0. 1. + 9122. 1. 5. 27.0 2.5 1.0 2. 12.0 6.5 2. 4. 0.0 0. 1. + 9126. 1. 2. 22.0 2.5 2.0 3. 12.0 9.0 2. 4. 0.0 0. 1. + 9127. 1. 4. 22.0 2.5 0.0 3. 14.0 14.0 4. 5. 0.0 0. 1. + 9130. 1. 5. 42.0 16.5 2.0 3. 14.0 20.0 3. 5. 0.0 0. 1. + 9135. 1. 5. 32.0 6.0 0.0 1. 16.0 9.0 6. 1. 0.0 0. 1. + 9136. 1. 5. 27.0 2.5 0.0 3. 14.0 20.0 5. 2. 0.0 0. 1. + 9138. 1. 5. 37.0 16.5 2.0 3. 14.0 11.5 3. 2. 0.0 0. 1. + 9145. 1. 4. 27.0 6.0 1.0 4. 14.0 11.5 4. 4. 0.0 0. 1. + 9147. 1. 5. 27.0 6.0 1.0 2. 16.0 14.0 3. 5. 0.0 0. 1. + 9153. 1. 4. 22.0 2.5 0.0 3. 16.0 20.0 5. 6. 0.0 0. 1. + 9155. 1. 5. 42.0 23.0 1.0 3. 14.0 20.0 5. 5. 0.0 0. 1. + 9157. 1. 5. 22.0 2.5 0.0 3. 14.0 14.0 3. 4. 0.0 0. 1. + 9159. 1. 4. 42.0 23.0 3.0 4. 12.0 20.0 5. 2. 0.0 0. 1. + 9165. 1. 5. 42.0 23.0 3.0 4. 12.0 11.5 3. 3. 0.0 0. 1. + 9168. 1. 5. 32.0 16.5 3.0 3. 12.0 6.5 2. 2. 0.0 0. 1. + 9170. 1. 4. 22.0 6.0 1.0 1. 12.0 9.0 3. 2. 0.0 0. 1. + 9171. 1. 5. 42.0 23.0 4.0 3. 20.0 40.0 6. 6. 0.0 0. 1. + 9173. 1. 5. 17.5 0.5 0.0 3. 14.0 6.5 3. 5. 0.0 0. 1. + 9174. 1. 5. 27.0 2.5 0.0 1. 14.0 40.0 2. 6. 0.0 0. 1. + 9181. 1. 5. 22.0 2.5 0.0 3. 14.0 11.5 3. 4. 0.0 0. 1. + 9186. 1. 5. 32.0 6.0 1.0 3. 20.0 20.0 4. 5. 0.0 0. 1. + 9187. 1. 5. 22.0 0.5 0.0 3. 17.0 20.0 6. 2. 0.0 0. 1. + 9189. 1. 2. 37.0 16.5 2.0 1. 12.0 20.0 3. 5. 0.0 0. 1. + 9190. 1. 5. 27.0 9.0 2.0 3. 12.0 20.0 3. 2. 0.0 0. 1. + 9191. 1. 4. 27.0 2.5 0.0 2. 16.0 20.0 4. 2. 0.0 0. 1. + 9193. 1. 4. 27.0 13.0 1.0 3. 12.0 11.5 3. 3. 0.0 0. 1. + 9198. 1. 3. 42.0 23.0 3.0 2. 14.0 20.0 3. 3. 0.0 0. 1. + 9199. 1. 5. 27.0 6.0 1.0 1. 14.0 14.0 4. 5. 0.0 0. 1. + 9200. 1. 5. 27.0 6.0 0.0 3. 14.0 11.5 3. 5. 0.0 0. 1. + 9202. 1. 2. 22.0 6.0 1.0 1. 12.0 11.5 3. 2. 0.0 0. 1. + 9214. 1. 5. 37.0 16.5 4.0 3. 14.0 11.5 2. 3. 0.0 0. 1. + 9215. 1. 4. 27.0 9.0 2.0 3. 20.0 40.0 4. 5. 0.0 0. 1. + 9218. 1. 5. 17.5 0.5 0.0 4. 12.0 6.5 2. 4. 0.0 0. 1. + 9219. 1. 5. 42.0 23.0 3.0 3. 17.0 40.0 4. 5. 0.0 0. 1. + 9220. 1. 5. 37.0 16.5 2.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 9222. 1. 5. 22.0 2.5 0.0 1. 14.0 20.0 4. 4. 0.0 0. 1. + 9232. 1. 4. 22.0 2.5 0.0 3. 14.0 14.0 4. 5. 0.0 0. 1. + 9245. 1. 3. 22.0 2.5 0.0 3. 14.0 20.0 3. 6. 0.0 0. 1. + 9254. 1. 3. 42.0 23.0 3.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 9255. 1. 4. 27.0 6.0 0.0 2. 16.0 20.0 5. 6. 0.0 0. 1. + 9256. 1. 5. 42.0 23.0 3.0 3. 16.0 20.0 2. 3. 0.0 0. 1. + 9258. 1. 5. 27.0 9.0 2.0 3. 17.0 14.0 4. 4. 0.0 0. 1. + 9265. 1. 5. 22.0 2.5 0.0 2. 16.0 11.5 3. 4. 0.0 0. 1. + 9274. 1. 2. 27.0 6.0 1.0 3. 16.0 14.0 4. 2. 0.0 0. 1. + 9275. 1. 5. 27.0 6.0 0.0 2. 17.0 20.0 4. 2. 0.0 0. 1. + 9278. 1. 3. 22.0 2.5 0.0 4. 17.0 20.0 4. 2. 0.0 0. 1. + 9279. 1. 4. 37.0 16.5 3.0 3. 14.0 20.0 4. 5. 0.0 0. 1. + 9286. 1. 3. 22.0 2.5 1.0 3. 16.0 20.0 4. 3. 0.0 0. 1. + 9288. 1. 4. 32.0 9.0 1.0 3. 20.0 20.0 4. 4. 0.0 0. 1. + 9293. 1. 5. 27.0 6.0 2.0 1. 12.0 14.0 3. 5. 0.0 0. 1. + 9304. 1. 5. 27.0 6.0 0.0 3. 16.0 20.0 5. 4. 0.0 0. 1. + 9308. 1. 5. 22.0 6.0 1.0 4. 14.0 14.0 3. 3. 0.0 0. 1. + 9314. 1. 4. 32.0 0.5 0.0 3. 14.0 11.5 5. 5. 0.0 0. 1. + 9316. 1. 5. 32.0 2.5 1.0 2. 14.0 20.0 3. 4. 0.0 0. 1. + 9317. 1. 4. 22.0 0.5 0.0 4. 14.0 6.5 3. 2. 0.0 0. 1. + 9319. 1. 4. 37.0 6.0 0.0 4. 12.0 11.5 3. 2. 0.0 0. 1. + 9320. 1. 2. 22.0 6.0 1.0 2. 14.0 11.5 3. 4. 0.0 0. 1. + 9323. 1. 5. 37.0 13.0 1.0 2. 12.0 14.0 5. 5. 0.0 0. 1. + 9331. 1. 4. 32.0 9.0 0.0 1. 12.0 40.0 3. 4. 0.0 0. 1. + 9333. 1. 5. 22.0 0.5 0.0 2. 14.0 14.0 3. 2. 0.0 0. 1. + 9336. 1. 5. 27.0 2.5 0.0 1. 16.0 20.0 5. 5. 0.0 0. 1. + 9342. 1. 5. 32.0 2.5 0.0 2. 16.0 40.0 5. 5. 0.0 0. 1. + 9344. 1. 4. 27.0 6.0 1.0 4. 14.0 11.5 4. 4. 0.0 0. 1. + 9345. 1. 5. 27.0 2.5 0.0 3. 12.0 20.0 3. 4. 0.0 0. 1. + 9350. 1. 4. 37.0 13.0 2.0 3. 14.0 40.0 3. 5. 0.0 0. 1. + 9351. 1. 4. 22.0 2.5 0.0 3. 17.0 20.0 5. 4. 0.0 0. 1. + 9353. 1. 5. 22.0 2.5 0.0 2. 12.0 14.0 3. 2. 0.0 0. 1. + 9357. 1. 5. 22.0 2.5 0.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 9360. 1. 4. 32.0 13.0 2.0 3. 14.0 9.0 3. 2. 0.0 0. 1. + 9361. 1. 4. 22.0 2.5 0.0 2. 16.0 9.0 4. 6. 0.0 0. 1. + 9362. 1. 4. 22.0 2.5 0.0 2. 12.0 20.0 2. 4. 0.0 0. 1. + 9363. 1. 3. 22.0 0.5 0.0 2. 14.0 11.5 3. 5. 0.0 0. 1. + 9365. 1. 5. 37.0 16.5 4.0 4. 12.0 20.0 3. 5. 0.0 0. 1. + 9372. 1. 4. 22.0 6.0 1.0 3. 12.0 11.5 3. 4. 0.0 0. 1. + 9376. 1. 5. 37.0 16.5 1.0 3. 16.0 40.0 4. 5. 0.0 0. 1. + 9377. 1. 4. 27.0 6.0 1.0 2. 14.0 20.0 3. 4. 0.0 0. 1. + 9378. 1. 5. 32.0 16.5 2.0 2. 12.0 20.0 3. 2. 0.0 0. 1. + 9379. 1. 5. 42.0 23.0 4.0 4. 20.0 40.0 4. 6. 0.0 0. 1. + 9382. 1. 5. 27.0 2.5 0.0 1. 20.0 20.0 5. 4. 0.0 0. 1. + 9385. 1. 5. 22.0 2.5 2.0 3. 16.0 6.5 3. 1. 0.0 0. 1. + 9387. 1. 4. 42.0 16.5 2.0 4. 20.0 20.0 4. 6. 0.0 0. 1. + 9394. 1. 4. 27.0 9.0 0.0 2. 12.0 20.0 5. 5. 0.0 0. 1. + 9398. 1. 4. 27.0 2.5 1.0 2. 12.0 11.5 2. 4. 0.0 0. 1. + 9403. 1. 4. 27.0 2.5 0.0 3. 17.0 20.0 5. 5. 0.0 0. 1. + 9408. 1. 5. 27.0 2.5 0.0 2. 16.0 11.5 3. 3. 0.0 0. 1. + 9411. 1. 4. 37.0 13.0 2.0 2. 16.0 40.0 4. 5. 0.0 0. 1. + 9413. 1. 5. 32.0 13.0 2.0 4. 14.0 20.0 3. 4. 0.0 0. 1. + 9415. 1. 4. 37.0 16.5 4.0 3. 16.0 20.0 4. 3. 0.0 0. 1. + 9417. 1. 4. 27.0 6.0 1.0 3. 20.0 20.0 4. 6. 0.0 0. 1. + 9418. 1. 3. 27.0 13.0 3.0 3. 12.0 14.0 3. 4. 0.0 0. 1. + 9425. 1. 4. 22.0 2.5 1.0 3. 16.0 14.0 4. 5. 0.0 0. 1. + 9427. 1. 5. 22.0 2.5 0.0 3. 16.0 20.0 4. 6. 0.0 0. 1. + 9429. 1. 5. 37.0 16.5 1.0 3. 16.0 14.0 3. 4. 0.0 0. 1. + 9433. 1. 3. 42.0 23.0 3.0 2. 16.0 40.0 4. 2. 0.0 0. 1. + 9435. 1. 3. 22.0 2.5 0.0 2. 12.0 11.5 3. 2. 0.0 0. 1. + 9436. 1. 2. 27.0 2.5 1.0 3. 12.0 6.5 2. 2. 0.0 0. 1. + 9437. 1. 5. 27.0 6.0 3.0 3. 16.0 20.0 3. 5. 0.0 0. 1. + 9440. 1. 5. 27.0 0.5 0.0 2. 16.0 20.0 5. 6. 0.0 0. 1. + 9447. 1. 4. 32.0 2.5 0.0 3. 14.0 40.0 3. 6. 0.0 0. 1. + 9448. 1. 4. 27.0 6.0 0.0 3. 14.0 11.5 4. 5. 0.0 0. 1. + 9449. 1. 4. 37.0 13.0 1.0 3. 16.0 20.0 4. 5. 0.0 0. 1. + 9450. 1. 4. 42.0 23.0 3.0 3. 14.0 40.0 4. 6. 0.0 0. 1. + 9451. 1. 4. 27.0 9.0 0.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 9453. 1. 5. 37.0 2.5 0.0 2. 16.0 40.0 4. 3. 0.0 0. 1. + 9474. 1. 5. 27.0 6.0 1.0 2. 16.0 40.0 5. 6. 0.0 0. 1. + 9476. 1. 5. 32.0 2.5 1.0 3. 17.0 20.0 3. 5. 0.0 0. 1. + 9479. 1. 4. 42.0 16.5 2.0 2. 12.0 40.0 3. 5. 0.0 0. 1. + 9484. 1. 4. 22.0 2.5 0.0 3. 16.0 6.5 3. 4. 0.0 0. 1. + 9487. 1. 5. 32.0 13.0 1.0 3. 12.0 20.0 3. 5. 0.0 0. 1. + 9488. 1. 5. 27.0 2.5 0.0 2. 20.0 20.0 4. 5. 0.0 0. 1. + 9489. 1. 5. 22.0 2.5 0.0 2. 14.0 20.0 3. 4. 0.0 0. 1. + 9492. 1. 5. 42.0 23.0 2.0 3. 16.0 40.0 4. 4. 0.0 0. 1. + 9495. 1. 4. 42.0 23.0 4.0 3. 20.0 40.0 4. 4. 0.0 0. 1. + 9501. 1. 5. 27.0 6.0 1.0 1. 16.0 14.0 1. 6. 0.0 0. 1. + 9504. 1. 5. 27.0 0.5 0.0 3. 14.0 11.5 3. 4. 0.0 0. 1. + 9507. 1. 5. 27.0 9.0 3.0 2. 12.0 11.5 2. 4. 0.0 0. 1. + 9509. 1. 4. 42.0 23.0 4.0 3. 14.0 20.0 4. 4. 0.0 0. 1. + 9512. 1. 5. 27.0 2.5 0.0 2. 16.0 20.0 3. 4. 0.0 0. 1. + 9514. 1. 5. 27.0 9.0 3.0 3. 12.0 20.0 3. 5. 0.0 0. 1. + 9529. 1. 4. 22.0 0.5 0.0 2. 16.0 20.0 5. 4. 0.0 0. 1. + 9530. 1. 4. 27.0 2.5 0.0 2. 16.0 20.0 3. 5. 0.0 0. 1. + 9534. 1. 5. 22.0 2.5 0.0 3. 14.0 20.0 3. 6. 0.0 0. 1. + 9545. 1. 5. 22.0 2.5 0.0 3. 14.0 9.0 4. 4. 0.0 0. 1. + 9548. 1. 5. 22.0 2.5 0.0 1. 16.0 9.0 3. 5. 0.0 0. 1. + 9551. 1. 4. 42.0 23.0 3.0 3. 12.0 11.5 3. 4. 0.0 0. 1. + 9552. 1. 5. 22.0 2.5 0.0 2. 14.0 11.5 3. 5. 0.0 0. 1. + 9562. 1. 4. 22.0 2.5 0.0 2. 17.0 6.5 3. 1. 0.0 0. 1. + 9563. 1. 5. 42.0 23.0 3.0 2. 12.0 40.0 3. 5. 0.0 0. 1. + 9567. 1. 5. 27.0 9.0 3.0 3. 14.0 11.5 2. 3. 0.0 0. 1. + 9570. 1. 3. 32.0 13.0 1.0 2. 14.0 20.0 3. 3. 0.0 0. 1. + 9573. 1. 5. 32.0 9.0 2.0 4. 20.0 20.0 5. 5. 0.0 0. 1. + 9575. 1. 3. 27.0 2.5 0.0 3. 14.0 20.0 5. 5. 0.0 0. 1. + 9582. 1. 4. 27.0 6.0 1.0 3. 16.0 11.5 4. 4. 0.0 0. 1. + 9585. 1. 4. 32.0 6.0 2.0 2. 16.0 14.0 4. 5. 0.0 0. 1. + 9588. 1. 5. 42.0 23.0 3.0 2. 12.0 20.0 4. 3. 0.0 0. 1. + 9589. 1. 5. 32.0 13.0 2.0 3. 14.0 14.0 3. 5. 0.0 0. 1. + 9594. 1. 4. 22.0 0.5 0.0 2. 14.0 11.5 3. 2. 0.0 0. 1. + 9599. 1. 3. 22.0 2.5 1.0 2. 12.0 20.0 3. 2. 0.0 0. 1. + 9600. 1. 2. 42.0 23.0 2.0 2. 20.0 40.0 4. 2. 0.0 0. 1. + 9611. 1. 4. 22.0 2.5 1.0 4. 12.0 9.0 3. 4. 0.0 0. 1. + 9615. 1. 4. 42.0 23.0 4.0 4. 16.0 40.0 4. 5. 0.0 0. 1. + 9616. 1. 3. 37.0 16.5 4.0 1. 12.0 40.0 3. 5. 0.0 0. 1. + 9624. 1. 4. 22.0 2.5 0.0 3. 14.0 6.5 5. 1. 0.0 0. 1. + 9633. 1. 1. 17.5 0.5 0.0 2. 9.0 6.5 2. 2. 0.0 0. 1. + 9642. 1. 4. 27.0 2.5 0.0 2. 20.0 20.0 6. 5. 0.0 0. 1. + 9647. 1. 4. 27.0 2.5 0.0 3. 14.0 20.0 3. 4. 0.0 0. 1. + 9654. 1. 3. 27.0 6.0 2.0 3. 12.0 9.0 3. 5. 0.0 0. 1. + 9662. 1. 5. 32.0 13.0 5.5 3. 14.0 20.0 4. 3. 0.0 0. 1. + 9672. 1. 5. 42.0 23.0 3.0 2. 12.0 20.0 5. 5. 0.0 0. 1. + 9681. 1. 4. 32.0 6.0 1.0 3. 14.0 20.0 4. 4. 0.0 0. 1. + 9682. 1. 4. 37.0 16.5 1.0 2. 12.0 20.0 3. 3. 0.0 0. 1. + 9685. 1. 4. 22.0 2.5 0.0 2. 14.0 14.0 3. 4. 0.0 0. 1. + 9687. 1. 4. 37.0 16.5 2.0 3. 12.0 20.0 3. 5. 0.0 0. 1. + 9695. 1. 5. 22.0 2.5 0.0 3. 12.0 6.5 2. 3. 0.0 0. 1. + 9698. 1. 4. 22.0 0.5 0.0 3. 12.0 14.0 3. 5. 0.0 0. 1. + 9711. 1. 4. 22.0 2.5 0.0 3. 12.0 11.5 3. 4. 0.0 0. 1. + 9716. 1. 5. 42.0 23.0 4.0 3. 12.0 20.0 3. 5. 0.0 0. 1. + 9717. 1. 2. 22.0 2.5 1.0 3. 14.0 14.0 3. 4. 0.0 0. 1. + 9718. 1. 4. 32.0 16.5 2.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 9720. 1. 1. 32.0 13.0 2.0 3. 17.0 40.0 4. 5. 0.0 0. 1. + 9729. 1. 5. 27.0 2.5 0.0 2. 14.0 14.0 4. 6. 0.0 0. 1. + 9738. 1. 4. 22.0 6.0 2.0 3. 12.0 6.5 5. 3. 0.0 0. 1. + 9739. 1. 4. 17.5 2.5 1.0 3. 9.0 9.0 2. 2. 0.0 0. 1. + 9740. 1. 4. 22.0 2.5 0.0 2. 17.0 11.5 4. 2. 0.0 0. 1. + 9741. 1. 5. 37.0 16.5 3.0 3. 17.0 20.0 4. 5. 0.0 0. 1. + 9744. 1. 4. 27.0 6.0 2.0 3. 14.0 20.0 3. 4. 0.0 0. 1. + 9746. 1. 4. 42.0 23.0 3.0 3. 17.0 20.0 4. 6. 0.0 0. 1. + 9748. 1. 3. 22.0 2.5 0.0 2. 16.0 40.0 4. 4. 0.0 0. 1. + 9751. 1. 2. 37.0 16.5 3.0 3. 12.0 20.0 3. 4. 0.0 0. 1. + 9752. 1. 4. 27.0 2.5 0.0 2. 16.0 20.0 5. 5. 0.0 0. 1. + 9753. 1. 5. 22.0 2.5 0.0 3. 16.0 11.5 4. 2. 0.0 0. 1. + 9755. 1. 5. 27.0 6.0 2.0 3. 16.0 11.5 3. 4. 0.0 0. 1. + 9761. 1. 5. 37.0 13.0 0.0 3. 12.0 11.5 3. 4. 0.0 0. 1. + 9763. 1. 5. 22.0 2.5 0.0 2. 14.0 14.0 2. 2. 0.0 0. 1. + 9764. 1. 4. 22.0 2.5 0.0 2. 16.0 14.0 4. 5. 0.0 0. 1. + 9765. 1. 3. 22.0 2.5 0.0 2. 16.0 20.0 4. 5. 0.0 0. 1. + 9772. 1. 4. 22.0 2.5 0.0 2. 12.0 14.0 3. 5. 0.0 0. 1. + 9775. 1. 3. 27.0 6.0 1.0 3. 14.0 20.0 4. 4. 0.0 0. 1. + 9778. 1. 4. 22.0 2.5 0.0 2. 12.0 9.0 3. 4. 0.0 0. 1. + 9786. 1. 3. 22.0 2.5 0.0 3. 17.0 20.0 4. 6. 0.0 0. 1. + 9789. 1. 5. 37.0 16.5 2.0 3. 17.0 20.0 3. 5. 0.0 0. 1. + 9792. 1. 5. 27.0 2.5 0.0 3. 16.0 20.0 4. 5. 0.0 0. 1. + 9793. 1. 4. 37.0 13.0 2.0 4. 16.0 20.0 5. 5. 0.0 0. 1. + 9794. 1. 5. 32.0 13.0 3.0 3. 17.0 20.0 4. 3. 0.0 0. 1. + 9796. 1. 4. 22.0 2.5 0.0 2. 12.0 20.0 4. 5. 0.0 0. 1. + 9800. 1. 5. 22.0 0.5 0.0 3. 14.0 11.5 3. 4. 0.0 0. 1. + 9826. 1. 5. 22.0 2.5 0.0 4. 16.0 20.0 3. 5. 0.0 0. 1. + 9834. 1. 5. 17.5 2.5 0.0 3. 16.0 40.0 4. 2. 0.0 0. 1. + 9837. 1. 5. 22.0 6.0 1.0 4. 12.0 9.0 2. 4. 0.0 0. 1. + 9839. 1. 5. 27.0 6.0 2.0 2. 16.0 20.0 4. 2. 0.0 0. 1. + 9843. 1. 4. 37.0 16.5 2.0 4. 14.0 9.0 4. 6. 0.0 0. 1. + 9845. 1. 5. 22.0 6.0 1.0 3. 12.0 9.0 2. 5. 0.0 0. 1. + 9850. 1. 4. 17.5 0.5 0.0 3. 12.0 14.0 3. 4. 0.0 0. 1. + 9854. 1. 4. 22.0 2.5 0.0 4. 14.0 9.0 3. 4. 0.0 0. 1. + 9855. 1. 2. 22.0 2.5 0.0 3. 12.0 20.0 3. 5. 0.0 0. 1. + 9859. 1. 4. 27.0 6.0 1.0 4. 20.0 14.0 4. 5. 0.0 0. 1. + 9861. 1. 5. 22.0 0.5 0.0 3. 16.0 9.0 3. 1. 0.0 0. 1. + 9870. 1. 5. 22.0 2.5 0.0 3. 12.0 11.5 3. 3. 0.0 0. 1. + 9880. 1. 4. 42.0 23.0 3.0 2. 12.0 20.0 3. 3. 0.0 0. 1. + 9881. 1. 4. 22.0 2.5 1.0 2. 14.0 6.5 3. 2. 0.0 0. 1. + 9882. 1. 5. 27.0 6.0 0.0 2. 17.0 11.5 4. 5. 0.0 0. 1. + 9886. 1. 5. 22.0 2.5 0.0 3. 17.0 11.5 5. 5. 0.0 0. 1. + 9887. 1. 4. 22.0 2.5 0.0 3. 12.0 20.0 3. 3. 0.0 0. 1. + 9892. 1. 5. 27.0 6.0 0.0 2. 14.0 11.5 3. 5. 0.0 0. 1. + 9895. 1. 5. 27.0 2.5 1.0 3. 16.0 20.0 4. 2. 0.0 0. 1. + 9899. 1. 5. 42.0 23.0 5.5 4. 14.0 11.5 4. 2. 0.0 0. 1. + 9907. 1. 5. 32.0 13.0 1.0 3. 14.0 20.0 3. 5. 0.0 0. 1. + 9908. 1. 5. 22.0 2.5 0.0 3. 12.0 20.0 3. 2. 0.0 0. 1. + 9909. 1. 3. 22.0 2.5 0.0 4. 12.0 14.0 5. 5. 0.0 0. 1. + 9912. 1. 5. 22.0 2.5 1.0 2. 16.0 14.0 4. 4. 0.0 0. 1. + 9919. 1. 5. 32.0 16.5 3.0 4. 17.0 40.0 4. 6. 0.0 0. 1. + 9920. 1. 5. 42.0 23.0 4.0 3. 20.0 40.0 4. 6. 0.0 0. 1. + 9921. 1. 5. 22.0 2.5 0.0 4. 12.0 9.0 3. 5. 0.0 0. 1. + 9923. 1. 4. 42.0 23.0 3.0 4. 14.0 40.0 5. 2. 0.0 0. 1. + 9926. 1. 5. 27.0 6.0 0.0 2. 17.0 40.0 4. 6. 0.0 0. 1. + 9927. 1. 4. 27.0 2.5 1.0 3. 20.0 11.5 4. 4. 0.0 0. 1. + 9928. 1. 5. 32.0 13.0 3.0 4. 14.0 14.0 4. 3. 0.0 0. 1. + 9929. 1. 4. 22.0 2.5 1.0 4. 14.0 9.0 4. 4. 0.0 0. 1. + 9935. 1. 4. 32.0 13.0 2.0 3. 14.0 20.0 2. 5. 0.0 0. 1. + 9936. 1. 4. 17.5 2.5 0.0 3. 12.0 20.0 3. 4. 0.0 0. 1. + 9939. 1. 3. 22.0 2.5 0.0 3. 16.0 6.5 4. 1. 0.0 0. 1. + 9940. 1. 5. 27.0 6.0 1.0 3. 14.0 6.5 6. 4. 0.0 0. 1. + 9941. 1. 5. 27.0 9.0 2.0 4. 14.0 14.0 3. 3. 0.0 0. 1. + 9946. 1. 4. 22.0 2.5 0.0 2. 16.0 20.0 5. 5. 0.0 0. 1. + 9947. 1. 4. 27.0 9.0 2.0 2. 14.0 14.0 3. 4. 0.0 0. 1. + 9955. 1. 5. 32.0 9.0 2.0 2. 20.0 20.0 4. 3. 0.0 0. 1. + 9958. 1. 5. 42.0 23.0 5.5 4. 12.0 6.5 4. 2. 0.0 0. 1. + 9964. 1. 4. 27.0 6.0 1.0 3. 16.0 11.5 4. 4. 0.0 0. 1. + 9970. 1. 4. 27.0 6.0 1.0 3. 17.0 40.0 4. 6. 0.0 0. 1. + 9974. 1. 4. 27.0 6.0 0.0 3. 16.0 20.0 5. 5. 0.0 0. 1. + 9976. 1. 5. 27.0 2.5 0.0 4. 17.0 4.0 4. 1. 0.0 0. 1. + 9978. 1. 4. 42.0 13.0 0.0 3. 20.0 40.0 4. 5. 0.0 0. 1. + 9979. 1. 5. 22.0 2.5 1.0 2. 12.0 9.0 3. 4. 0.0 0. 1. + 9984. 1. 4. 17.5 2.5 0.0 3. 14.0 9.0 3. 3. 0.0 0. 1. + 9987. 1. 4. 22.0 6.0 0.0 2. 14.0 20.0 3. 4. 0.0 0. 1. + 9989. 1. 4. 22.0 2.5 0.0 3. 16.0 20.0 5. 5. 0.0 0. 1. + 9992. 1. 5. 27.0 6.0 2.0 2. 14.0 11.5 3. 3. 0.0 0. 1. + 9993. 1. 3. 27.0 6.0 0.0 2. 16.0 20.0 3. 5. 0.0 0. 1. + 9996. 1. 5. 22.0 0.5 0.0 3. 16.0 20.0 5. 5. 0.0 0. 1. + 9997. 1. 5. 37.0 16.5 4.0 3. 12.0 40.0 2. 2. 0.0 0. 1. + 10004. 1. 4. 22.0 2.5 2.0 3. 12.0 11.5 3. 2. 0.0 0. 1. + 10011. 1. 4. 22.0 2.5 0.0 3. 14.0 11.5 3. 2. 0.0 0. 1. + 10013. 1. 5. 27.0 2.5 0.0 1. 16.0 14.0 4. 5. 0.0 0. 1. + 10018. 1. 5. 27.0 6.0 0.0 2. 16.0 40.0 4. 3. 0.0 0. 1. + 10021. 1. 4. 27.0 2.5 0.0 2. 20.0 14.0 6. 4. 0.0 0. 1. + 10028. 1. 4. 22.0 6.0 2.0 3. 14.0 11.5 3. 5. 0.0 0. 1. + 10029. 1. 4. 22.0 2.5 0.0 1. 12.0 14.0 3. 5. 0.0 0. 1. + 10034. 1. 4. 17.5 2.5 0.0 2. 14.0 9.0 4. 4. 0.0 0. 1. + 10052. 1. 5. 22.0 2.5 0.0 3. 14.0 20.0 3. 4. 0.0 0. 1. + 10053. 1. 5. 22.0 0.5 0.0 2. 14.0 6.5 3. 2. 0.0 0. 1. + 10061. 1. 3. 32.0 2.5 0.0 3. 17.0 20.0 4. 3. 0.0 0. 1. + 10072. 1. 5. 22.0 2.5 0.0 4. 17.0 20.0 4. 5. 0.0 0. 1. + 10075. 1. 4. 22.0 6.0 0.0 4. 14.0 14.0 3. 4. 0.0 0. 1. + 10076. 1. 3. 22.0 0.5 0.0 3. 14.0 11.5 3. 4. 0.0 0. 1. + 10094. 1. 4. 17.5 0.5 0.0 3. 12.0 9.0 2. 4. 0.0 0. 1. + 10108. 1. 3. 32.0 16.5 3.0 3. 12.0 20.0 4. 5. 0.0 0. 1. + 10109. 1. 5. 22.0 2.5 1.0 3. 16.0 20.0 4. 5. 0.0 0. 1. + 10112. 1. 5. 22.0 2.5 0.0 4. 12.0 11.5 3. 4. 0.0 0. 1. + 10113. 1. 5. 22.0 6.0 2.0 3. 12.0 11.5 3. 4. 0.0 0. 1. + 10120. 1. 5. 22.0 2.5 0.0 2. 14.0 9.0 5. 1. 0.0 0. 1. + 10131. 1. 5. 22.0 2.5 0.0 3. 12.0 9.0 2. 2. 0.0 0. 1. + 10132. 1. 5. 27.0 6.0 0.0 4. 12.0 11.5 3. 2. 0.0 0. 1. + 10135. 1. 5. 42.0 23.0 2.0 3. 12.0 20.0 3. 6. 0.0 0. 1. + 10136. 1. 5. 22.0 2.5 0.0 2. 14.0 9.0 3. 4. 0.0 0. 1. + 10138. 1. 3. 37.0 16.5 1.0 3. 14.0 14.0 2. 5. 0.0 0. 1. + 10143. 1. 4. 32.0 13.0 2.0 3. 12.0 11.5 2. 2. 0.0 0. 1. + 10153. 1. 5. 22.0 2.5 0.0 3. 14.0 11.5 2. 5. 0.0 0. 1. + 10155. 1. 4. 27.0 9.0 1.0 1. 12.0 11.5 3. 2. 0.0 0. 1. + 10159. 1. 5. 42.0 23.0 2.0 3. 20.0 40.0 4. 6. 0.0 0. 1. + 10161. 1. 5. 22.0 2.5 1.0 3. 14.0 9.0 3. 4. 0.0 0. 1. + 10162. 1. 5. 42.0 23.0 4.0 3. 12.0 40.0 4. 5. 0.0 0. 1. + 10169. 1. 3. 27.0 9.0 2.0 2. 14.0 20.0 3. 4. 0.0 0. 1. + 10173. 1. 2. 32.0 13.0 4.0 3. 14.0 20.0 3. 3. 0.0 0. 1. + 10174. 1. 4. 22.0 6.0 0.0 2. 14.0 40.0 3. 5. 0.0 0. 1. + 10176. 1. 5. 22.0 2.5 0.0 1. 17.0 14.0 2. 5. 0.0 0. 1. + 10177. 1. 4. 22.0 2.5 0.0 3. 14.0 11.5 5. 2. 0.0 0. 1. + 10180. 1. 4. 22.0 2.5 1.0 2. 16.0 20.0 4. 6. 0.0 0. 1. + 10181. 1. 5. 27.0 6.0 1.0 3. 14.0 9.0 3. 4. 0.0 0. 1. + 10182. 1. 4. 27.0 6.0 1.0 1. 16.0 14.0 4. 4. 0.0 0. 1. + 10184. 1. 3. 22.0 2.5 1.0 2. 14.0 11.5 3. 4. 0.0 0. 1. + 10189. 1. 5. 32.0 6.0 0.0 3. 20.0 20.0 6. 6. 0.0 0. 1. + 10191. 1. 5. 22.0 2.5 0.0 2. 14.0 9.0 3. 2. 0.0 0. 1. + 10195. 1. 5. 17.5 0.5 0.0 3. 12.0 11.5 2. 5. 0.0 0. 1. + 10196. 1. 5. 27.0 2.5 0.0 3. 14.0 20.0 3. 4. 0.0 0. 1. + 10200. 1. 4. 42.0 23.0 2.0 3. 20.0 20.0 4. 2. 0.0 0. 1. + 10205. 1. 5. 27.0 2.5 0.0 2. 16.0 20.0 4. 6. 0.0 0. 1. + 10208. 1. 5. 22.0 6.0 0.0 3. 14.0 20.0 3. 5. 0.0 0. 1. + 10209. 1. 5. 22.0 0.5 0.0 3. 16.0 14.0 3. 4. 0.0 0. 1. + 10210. 1. 4. 22.0 0.5 0.0 3. 12.0 9.0 2. 2. 0.0 0. 1. + 10211. 1. 4. 22.0 2.5 0.0 4. 12.0 9.0 4. 4. 0.0 0. 1. + 10221. 1. 5. 27.0 2.5 1.0 3. 14.0 14.0 3. 4. 0.0 0. 1. + 10223. 1. 5. 22.0 6.0 0.0 3. 12.0 20.0 3. 4. 0.0 0. 1. + 10225. 1. 4. 22.0 2.5 0.0 4. 14.0 14.0 3. 4. 0.0 0. 1. + 10226. 1. 5. 22.0 2.5 0.0 1. 16.0 20.0 4. 4. 0.0 0. 1. + 10227. 1. 5. 32.0 13.0 1.0 3. 12.0 20.0 3. 4. 0.0 0. 1. + 10231. 1. 4. 27.0 9.0 2.0 2. 14.0 11.5 3. 4. 0.0 0. 1. + 10234. 1. 4. 27.0 9.0 1.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 10240. 1. 5. 22.0 2.5 0.0 2. 14.0 11.5 6. 5. 0.0 0. 1. + 10243. 1. 4. 32.0 13.0 1.0 3. 14.0 14.0 3. 5. 0.0 0. 1. + 10247. 1. 3. 37.0 16.5 3.0 3. 14.0 40.0 4. 4. 0.0 0. 1. + 10248. 1. 3. 22.0 2.5 1.0 3. 16.0 11.5 6. 4. 0.0 0. 1. + 10255. 1. 5. 27.0 16.5 3.0 3. 16.0 20.0 5. 5. 0.0 0. 1. + 10258. 1. 5. 42.0 23.0 2.0 3. 12.0 11.5 5. 5. 0.0 0. 1. + 10262. 1. 5. 27.0 0.5 0.0 4. 12.0 20.0 3. 6. 0.0 0. 1. + 10263. 1. 5. 32.0 16.5 2.0 1. 16.0 20.0 4. 5. 0.0 0. 1. + 10270. 1. 5. 37.0 16.5 1.0 4. 12.0 20.0 3. 2. 0.0 0. 1. + 10274. 1. 5. 27.0 9.0 1.0 3. 12.0 14.0 3. 2. 0.0 0. 1. + 10275. 1. 5. 27.0 13.0 3.0 3. 14.0 14.0 3. 3. 0.0 0. 1. + 10276. 1. 5. 22.0 2.5 0.0 3. 14.0 20.0 3. 4. 0.0 0. 1. + 10278. 1. 4. 22.0 2.5 0.0 2. 12.0 14.0 3. 2. 0.0 0. 1. + 10279. 1. 5. 32.0 16.5 3.0 4. 12.0 20.0 3. 5. 0.0 0. 1. + 10280. 1. 5. 22.0 2.5 2.0 4. 12.0 9.0 2. 2. 0.0 0. 1. + 10283. 1. 5. 27.0 9.0 2.0 4. 14.0 11.5 3. 4. 0.0 0. 1. + 10287. 1. 5. 27.0 2.5 0.0 3. 16.0 6.5 4. 4. 0.0 0. 1. + 10299. 1. 4. 32.0 13.0 2.0 4. 14.0 20.0 3. 5. 0.0 0. 1. + 10302. 1. 5. 17.5 0.5 0.0 3. 12.0 9.0 2. 5. 0.0 0. 1. + 10305. 1. 5. 42.0 23.0 3.0 4. 14.0 20.0 3. 6. 0.0 0. 1. + 10308. 1. 5. 22.0 2.5 1.0 2. 14.0 6.5 3. 2. 0.0 0. 1. + 10313. 1. 5. 27.0 9.0 2.0 3. 17.0 20.0 4. 6. 0.0 0. 1. + 10319. 1. 4. 17.5 2.5 0.0 1. 14.0 9.0 3. 1. 0.0 0. 1. + 10321. 1. 2. 22.0 6.0 0.0 2. 14.0 11.5 5. 2. 0.0 0. 1. + 10325. 1. 5. 27.0 2.5 0.0 3. 16.0 14.0 3. 2. 0.0 0. 1. + 10328. 1. 4. 27.0 6.0 1.0 3. 16.0 9.0 4. 5. 0.0 0. 1. + 10332. 1. 4. 37.0 9.0 0.0 3. 20.0 14.0 4. 4. 0.0 0. 1. + 10336. 1. 4. 22.0 2.5 0.0 1. 16.0 14.0 3. 5. 0.0 0. 1. + 10338. 1. 4. 37.0 13.0 2.0 2. 16.0 20.0 4. 4. 0.0 0. 1. + 10339. 1. 5. 37.0 16.5 3.0 4. 17.0 20.0 4. 4. 0.0 0. 1. + 10340. 1. 4. 27.0 6.0 0.0 1. 20.0 20.0 6. 6. 0.0 0. 1. + 10342. 1. 4. 27.0 6.0 0.0 3. 16.0 14.0 4. 5. 0.0 0. 1. + 10346. 1. 5. 37.0 16.5 3.0 1. 17.0 20.0 4. 6. 0.0 0. 1. + 10348. 1. 5. 27.0 6.0 2.0 3. 14.0 11.5 3. 4. 0.0 0. 1. + 10349. 1. 5. 37.0 16.5 3.0 3. 12.0 20.0 3. 4. 0.0 0. 1. + 10363. 1. 5. 42.0 23.0 1.0 4. 12.0 20.0 3. 4. 0.0 0. 1. + 10365. 1. 5. 27.0 9.0 2.0 3. 12.0 20.0 5. 5. 0.0 0. 1. + 10366. 1. 5. 27.0 13.0 2.0 2. 14.0 14.0 2. 4. 0.0 0. 1. + 10375. 1. 5. 42.0 23.0 2.0 4. 14.0 14.0 5. 5. 0.0 0. 1. + 10376. 1. 5. 42.0 23.0 5.5 4. 14.0 11.5 5. 4. 0.0 0. 1. + 10382. 1. 4. 22.0 6.0 0.0 1. 17.0 20.0 4. 1. 0.0 0. 1. + 10395. 1. 4. 27.0 2.5 0.0 4. 16.0 11.5 3. 1. 0.0 0. 1. + 10398. 1. 4. 17.5 2.5 0.0 1. 12.0 11.5 5. 2. 0.0 0. 1. + 10399. 1. 3. 27.0 9.0 0.0 2. 16.0 14.0 4. 4. 0.0 0. 1. + 10401. 1. 5. 22.0 2.5 0.0 2. 12.0 20.0 3. 5. 0.0 0. 1. + 10412. 1. 4. 27.0 9.0 2.0 3. 12.0 40.0 3. 2. 0.0 0. 1. + 10416. 1. 4. 22.0 6.0 0.0 2. 16.0 20.0 5. 5. 0.0 0. 1. + 10419. 1. 4. 22.0 0.5 0.0 1. 14.0 6.5 1. 1. 0.0 0. 1. + 10421. 1. 5. 22.0 2.5 1.0 2. 12.0 6.5 3. 1. 0.0 0. 1. + 10422. 1. 5. 27.0 9.0 2.0 3. 12.0 9.0 5. 5. 0.0 0. 1. + 10423. 1. 5. 27.0 6.0 0.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 10431. 1. 4. 22.0 2.5 0.0 3. 14.0 9.0 2. 2. 0.0 0. 1. + 10437. 1. 4. 22.0 6.0 1.0 2. 12.0 11.5 3. 4. 0.0 0. 1. + 10439. 1. 5. 22.0 2.5 1.0 3. 14.0 9.0 3. 4. 0.0 0. 1. + 10464. 1. 3. 27.0 6.0 1.0 1. 12.0 20.0 3. 5. 0.0 0. 1. + 10471. 1. 5. 37.0 16.5 4.0 3. 20.0 40.0 4. 2. 0.0 0. 1. + 10476. 1. 4. 22.0 2.5 0.0 2. 14.0 11.5 3. 5. 0.0 0. 1. + 10481. 1. 4. 32.0 13.0 2.0 3. 14.0 14.0 5. 5. 0.0 0. 1. + 10485. 1. 5. 22.0 2.5 0.0 1. 14.0 11.5 3. 4. 0.0 0. 1. + 10487. 1. 5. 27.0 2.5 0.0 2. 14.0 11.5 3. 4. 0.0 0. 1. + 10495. 1. 4. 27.0 9.0 1.0 2. 12.0 20.0 2. 2. 0.0 0. 1. + 10496. 1. 5. 22.0 2.5 0.0 2. 14.0 9.0 3. 4. 0.0 0. 1. + 10497. 1. 3. 37.0 13.0 1.0 3. 17.0 11.5 5. 3. 0.0 0. 1. + 10502. 1. 5. 42.0 23.0 3.0 4. 12.0 20.0 2. 2. 0.0 0. 1. + 10504. 1. 5. 27.0 6.0 0.0 4. 16.0 14.0 4. 5. 0.0 0. 1. + 10505. 1. 2. 27.0 6.0 0.0 2. 14.0 20.0 3. 4. 0.0 0. 1. + 10508. 1. 5. 32.0 13.0 2.0 4. 14.0 20.0 4. 5. 0.0 0. 1. + 10514. 1. 5. 22.0 2.5 0.0 1. 17.0 11.5 4. 4. 0.0 0. 1. + 10523. 1. 5. 27.0 9.0 2.0 3. 12.0 14.0 3. 5. 0.0 0. 1. + 10526. 1. 5. 27.0 6.0 0.0 2. 16.0 20.0 6. 6. 0.0 0. 1. + 10531. 1. 5. 27.0 6.0 1.0 3. 16.0 11.5 4. 2. 0.0 0. 1. + 10533. 1. 4. 22.0 9.0 1.0 1. 12.0 6.5 2. 2. 0.0 0. 1. + 10534. 1. 4. 32.0 13.0 3.0 3. 20.0 20.0 4. 5. 0.0 0. 1. + 10535. 1. 4. 22.0 2.5 0.0 1. 14.0 20.0 3. 2. 0.0 0. 1. + 10541. 1. 4. 27.0 6.0 2.0 3. 14.0 14.0 3. 5. 0.0 0. 1. + 10542. 1. 5. 42.0 23.0 4.0 2. 12.0 40.0 3. 6. 0.0 0. 1. + 10543. 1. 3. 32.0 13.0 3.0 4. 16.0 14.0 4. 2. 0.0 0. 1. + 10544. 1. 3. 22.0 0.5 0.0 3. 12.0 6.5 3. 1. 0.0 0. 1. + 10548. 1. 2. 22.0 2.5 0.0 2. 14.0 9.0 3. 4. 0.0 0. 1. + 10555. 1. 3. 37.0 23.0 4.0 2. 14.0 20.0 4. 2. 0.0 0. 1. + 10564. 1. 5. 42.0 23.0 5.5 4. 14.0 14.0 5. 2. 0.0 0. 1. + 10565. 1. 5. 37.0 23.0 3.0 3. 12.0 14.0 4. 5. 0.0 0. 1. + 10566. 1. 5. 32.0 9.0 2.0 3. 16.0 20.0 4. 6. 0.0 0. 1. + 10567. 1. 5. 32.0 23.0 2.0 3. 12.0 6.5 2. 2. 0.0 0. 1. + 10570. 1. 5. 37.0 13.0 3.0 4. 16.0 40.0 4. 2. 0.0 0. 1. + 10573. 1. 5. 32.0 16.5 5.5 2. 12.0 11.5 3. 2. 0.0 0. 1. + 10575. 1. 5. 27.0 9.0 3.0 1. 12.0 20.0 2. 5. 0.0 0. 1. + 10577. 1. 4. 17.5 2.5 0.0 2. 14.0 6.5 3. 3. 0.0 0. 1. + 10582. 1. 5. 22.0 0.5 0.0 1. 16.0 6.5 3. 1. 0.0 0. 1. + 10585. 1. 5. 22.0 2.5 0.0 3. 14.0 20.0 3. 2. 0.0 0. 1. + 10586. 1. 5. 22.0 2.5 0.0 3. 16.0 9.0 5. 4. 0.0 0. 1. + 10588. 1. 5. 32.0 9.0 0.0 4. 20.0 40.0 6. 6. 0.0 0. 1. + 10593. 1. 3. 27.0 6.0 0.0 4. 16.0 11.5 4. 4. 0.0 0. 1. + 10595. 1. 5. 22.0 2.5 0.0 1. 14.0 20.0 3. 4. 0.0 0. 1. + 10596. 1. 5. 22.0 0.5 0.0 2. 12.0 9.0 3. 1. 0.0 0. 1. + 10598. 1. 4. 27.0 13.0 2.0 4. 14.0 14.0 4. 4. 0.0 0. 1. + 10602. 1. 4. 42.0 23.0 4.0 2. 14.0 40.0 4. 5. 0.0 0. 1. + 10606. 1. 5. 22.0 2.5 0.0 3. 16.0 40.0 5. 3. 0.0 0. 1. + 10607. 1. 5. 42.0 23.0 3.0 3. 16.0 11.5 4. 2. 0.0 0. 1. + 10611. 1. 5. 22.0 2.5 0.0 1. 14.0 14.0 6. 6. 0.0 0. 1. + 10619. 1. 4. 17.5 2.5 0.0 3. 14.0 11.5 3. 3. 0.0 0. 1. + 10621. 1. 5. 27.0 2.5 2.0 1. 14.0 14.0 2. 3. 0.0 0. 1. + 10627. 1. 4. 27.0 9.0 1.0 3. 12.0 11.5 3. 3. 0.0 0. 1. + 10629. 1. 5. 22.0 0.5 0.0 3. 16.0 20.0 4. 4. 0.0 0. 1. + 10630. 1. 5. 32.0 16.5 4.0 3. 12.0 9.0 3. 4. 0.0 0. 1. + 10631. 1. 5. 32.0 13.0 2.0 4. 12.0 11.5 3. 3. 0.0 0. 1. + 10633. 1. 5. 27.0 2.5 1.0 3. 14.0 14.0 5. 5. 0.0 0. 1. + 10636. 1. 5. 42.0 23.0 1.0 3. 12.0 20.0 3. 4. 0.0 0. 1. + 10637. 1. 4. 42.0 23.0 4.0 3. 14.0 11.5 5. 5. 0.0 0. 1. + 10639. 1. 4. 22.0 0.5 0.0 2. 14.0 6.5 4. 4. 0.0 0. 1. + 10641. 1. 3. 27.0 6.0 2.0 3. 14.0 11.5 3. 6. 0.0 0. 1. + 10660. 1. 5. 22.0 2.5 0.0 1. 14.0 11.5 3. 5. 0.0 0. 1. + 10663. 1. 4. 37.0 23.0 5.5 2. 12.0 20.0 3. 2. 0.0 0. 1. + 10667. 1. 5. 37.0 16.5 3.0 2. 14.0 20.0 3. 4. 0.0 0. 1. + 10670. 1. 5. 27.0 9.0 3.0 2. 14.0 20.0 3. 2. 0.0 0. 1. + 10678. 1. 5. 22.0 2.5 0.0 3. 14.0 20.0 3. 2. 0.0 0. 1. + 10681. 1. 3. 27.0 9.0 2.0 3. 16.0 20.0 4. 5. 0.0 0. 1. + 10685. 1. 3. 22.0 2.5 0.0 2. 12.0 14.0 3. 5. 0.0 0. 1. + 10690. 1. 5. 37.0 16.5 4.0 4. 14.0 20.0 3. 4. 0.0 0. 1. + 10695. 1. 4. 22.0 9.0 1.0 3. 12.0 9.0 3. 4. 0.0 0. 1. + 10697. 1. 2. 27.0 6.0 2.0 2. 12.0 11.5 5. 5. 0.0 0. 1. + 10698. 1. 5. 22.0 2.5 0.0 3. 14.0 20.0 5. 4. 0.0 0. 1. + 10705. 1. 5. 32.0 13.0 2.0 4. 14.0 20.0 5. 4. 0.0 0. 1. + 10710. 1. 4. 22.0 2.5 0.0 2. 16.0 11.5 3. 5. 0.0 0. 1. + 10716. 1. 5. 27.0 9.0 0.0 2. 14.0 14.0 3. 5. 0.0 0. 1. + 10724. 1. 5. 32.0 9.0 0.0 4. 20.0 40.0 4. 6. 0.0 0. 1. + 10725. 1. 5. 32.0 13.0 2.0 3. 16.0 11.5 4. 5. 0.0 0. 1. + 10726. 1. 5. 17.5 2.5 0.0 4. 14.0 11.5 3. 4. 0.0 0. 1. + 10728. 1. 5. 42.0 23.0 3.0 3. 12.0 6.5 3. 2. 0.0 0. 1. + 10743. 1. 5. 22.0 0.5 0.0 2. 14.0 9.0 4. 2. 0.0 0. 1. + 10753. 1. 5. 37.0 13.0 0.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 10762. 1. 4. 22.0 2.5 0.0 3. 14.0 6.5 3. 3. 0.0 0. 1. + 10771. 1. 5. 37.0 16.5 4.0 3. 14.0 20.0 4. 2. 0.0 0. 1. + 10791. 1. 4. 42.0 23.0 4.0 3. 16.0 20.0 3. 5. 0.0 0. 1. + 10793. 1. 5. 27.0 6.0 1.0 2. 16.0 20.0 4. 4. 0.0 0. 1. + 10794. 1. 5. 32.0 13.0 3.0 2. 16.0 20.0 4. 4. 0.0 0. 1. + 10804. 1. 5. 42.0 23.0 3.0 4. 14.0 20.0 3. 4. 0.0 0. 1. + 10805. 1. 4. 22.0 2.5 0.0 3. 14.0 11.5 3. 4. 0.0 0. 1. + 10814. 1. 5. 42.0 13.0 0.0 4. 14.0 40.0 3. 5. 0.0 0. 1. + 10817. 1. 4. 27.0 2.5 0.0 1. 14.0 9.0 3. 2. 0.0 0. 1. + 10820. 1. 5. 22.0 2.5 0.0 3. 12.0 20.0 2. 2. 0.0 0. 1. + 10823. 1. 4. 22.0 6.0 0.0 2. 17.0 6.5 4. 1. 0.0 0. 1. + 10829. 1. 5. 22.0 2.5 0.0 2. 14.0 11.5 5. 5. 0.0 0. 1. + 10833. 1. 5. 32.0 16.5 3.0 3. 12.0 20.0 3. 2. 0.0 0. 1. + 10839. 1. 4. 27.0 2.5 0.0 2. 16.0 14.0 4. 6. 0.0 0. 1. + 10845. 1. 4. 22.0 2.5 0.0 2. 14.0 9.0 4. 3. 0.0 0. 1. + 10850. 1. 4. 32.0 16.5 2.0 3. 12.0 14.0 3. 2. 0.0 0. 1. + 10855. 1. 2. 22.0 2.5 0.0 2. 14.0 4.0 3. 4. 0.0 0. 1. + 10867. 1. 2. 42.0 23.0 3.0 3. 14.0 20.0 5. 5. 0.0 0. 1. + 10871. 1. 4. 42.0 23.0 4.0 3. 12.0 20.0 5. 2. 0.0 0. 1. + 10875. 1. 3. 32.0 16.5 3.0 3. 12.0 14.0 3. 3. 0.0 0. 1. + 10880. 1. 5. 37.0 16.5 2.0 4. 12.0 14.0 5. 5. 0.0 0. 1. + 10881. 1. 5. 32.0 13.0 2.0 3. 14.0 20.0 3. 5. 0.0 0. 1. + 10883. 1. 4. 22.0 2.5 0.0 2. 16.0 9.0 3. 2. 0.0 0. 1. + 10885. 1. 4. 27.0 2.5 0.0 3. 12.0 14.0 3. 3. 0.0 0. 1. + 10886. 1. 3. 42.0 23.0 4.0 4. 20.0 40.0 6. 6. 0.0 0. 1. + 10891. 1. 3. 32.0 16.5 2.0 2. 14.0 20.0 5. 2. 0.0 0. 1. + 10892. 1. 5. 22.0 0.5 1.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 10903. 1. 4. 22.0 6.0 1.0 2. 12.0 11.5 4. 1. 0.0 0. 1. + 10904. 1. 5. 27.0 6.0 0.0 3. 17.0 20.0 5. 6. 0.0 0. 1. + 10908. 1. 2. 37.0 13.0 4.0 4. 20.0 20.0 4. 6. 0.0 0. 1. + 10911. 1. 4. 27.0 2.5 0.0 3. 20.0 40.0 4. 3. 0.0 0. 1. + 10912. 1. 5. 32.0 2.5 1.0 1. 20.0 4.0 3. 1. 0.0 0. 1. + 10915. 1. 5. 37.0 16.5 3.0 3. 12.0 11.5 5. 5. 0.0 0. 1. + 10919. 1. 5. 27.0 9.0 1.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 10920. 1. 4. 32.0 13.0 2.0 3. 12.0 11.5 3. 2. 0.0 0. 1. + 10921. 1. 4. 37.0 16.5 4.0 4. 14.0 14.0 4. 5. 0.0 0. 1. + 10932. 1. 5. 17.5 0.5 0.0 2. 12.0 4.0 2. 2. 0.0 0. 1. + 10937. 1. 4. 32.0 13.0 1.0 3. 14.0 11.5 2. 5. 0.0 0. 1. + 10944. 1. 5. 37.0 23.0 5.5 4. 17.0 40.0 5. 6. 0.0 0. 1. + 10951. 1. 5. 22.0 2.5 0.0 2. 14.0 6.5 2. 4. 0.0 0. 1. + 10952. 1. 4. 22.0 2.5 0.0 2. 14.0 14.0 3. 4. 0.0 0. 1. + 10953. 1. 4. 42.0 23.0 4.0 2. 12.0 20.0 4. 4. 0.0 0. 1. + 10955. 1. 5. 42.0 23.0 4.0 3. 14.0 20.0 3. 4. 0.0 0. 1. + 10958. 1. 4. 17.5 0.5 0.0 1. 14.0 11.5 3. 4. 0.0 0. 1. + 10963. 1. 5. 22.0 0.5 0.0 4. 20.0 11.5 4. 1. 0.0 0. 1. + 10967. 1. 4. 27.0 6.0 1.0 3. 16.0 14.0 4. 3. 0.0 0. 1. + 10981. 1. 4. 42.0 23.0 2.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 10982. 1. 4. 27.0 9.0 2.0 2. 14.0 20.0 4. 5. 0.0 0. 1. + 10985. 1. 4. 27.0 6.0 1.0 1. 12.0 11.5 4. 1. 0.0 0. 1. + 10987. 1. 5. 27.0 2.5 0.0 3. 12.0 20.0 3. 4. 0.0 0. 1. + 10990. 1. 4. 22.0 2.5 0.0 2. 14.0 6.5 2. 2. 0.0 0. 1. + 10992. 1. 5. 37.0 16.5 3.0 4. 14.0 40.0 4. 4. 0.0 0. 1. + 10998. 1. 5. 27.0 6.0 0.0 2. 14.0 6.5 2. 4. 0.0 0. 1. + 10999. 1. 5. 37.0 16.5 2.0 3. 12.0 14.0 3. 4. 0.0 0. 1. + 11002. 1. 2. 32.0 9.0 3.0 1. 16.0 20.0 4. 4. 0.0 0. 1. + 11015. 1. 5. 27.0 6.0 1.0 2. 16.0 11.5 3. 4. 0.0 0. 1. + 11018. 1. 4. 37.0 23.0 3.0 3. 20.0 14.0 4. 4. 0.0 0. 1. + 11025. 1. 5. 37.0 23.0 3.0 4. 12.0 20.0 3. 2. 0.0 0. 1. + 11029. 1. 4. 27.0 6.0 2.0 3. 14.0 9.0 3. 5. 0.0 0. 1. + 11033. 1. 5. 32.0 13.0 2.0 4. 16.0 20.0 4. 4. 0.0 0. 1. + 11035. 1. 4. 27.0 6.0 1.0 3. 17.0 14.0 4. 4. 0.0 0. 1. + 11040. 1. 3. 37.0 13.0 1.0 2. 14.0 40.0 4. 6. 0.0 0. 1. + 11044. 1. 5. 37.0 16.5 2.0 4. 14.0 20.0 3. 6. 0.0 0. 1. + 11046. 1. 4. 27.0 6.0 0.0 3. 16.0 9.0 3. 4. 0.0 0. 1. + 11052. 1. 4. 42.0 13.0 0.0 3. 14.0 9.0 5. 5. 0.0 0. 1. + 11057. 1. 4. 27.0 9.0 2.0 3. 14.0 20.0 3. 2. 0.0 0. 1. + 11058. 1. 4. 22.0 6.0 1.0 3. 12.0 11.5 3. 4. 0.0 0. 1. + 11063. 1. 5. 22.0 2.5 0.0 3. 12.0 9.0 3. 4. 0.0 0. 1. + 11066. 1. 5. 22.0 2.5 0.0 2. 14.0 11.5 2. 4. 0.0 0. 1. + 11074. 1. 4. 27.0 6.0 2.0 3. 16.0 11.5 4. 6. 0.0 0. 1. + 11083. 1. 4. 27.0 2.5 0.0 1. 12.0 20.0 3. 6. 0.0 0. 1. + 11100. 1. 5. 27.0 13.0 2.0 3. 14.0 11.5 3. 4. 0.0 0. 1. + 11103. 1. 4. 27.0 6.0 1.0 1. 16.0 11.5 2. 4. 0.0 0. 1. + 11110. 1. 5. 32.0 16.5 2.0 3. 12.0 20.0 3. 5. 0.0 0. 1. + 11112. 1. 5. 27.0 2.5 0.0 2. 12.0 20.0 3. 5. 0.0 0. 1. + 11121. 1. 4. 27.0 9.0 1.0 3. 17.0 20.0 4. 4. 0.0 0. 1. + 11124. 1. 5. 37.0 16.5 3.0 2. 12.0 14.0 4. 4. 0.0 0. 1. + 11129. 1. 5. 27.0 2.5 0.0 4. 20.0 14.0 4. 2. 0.0 0. 1. + 11133. 1. 5. 27.0 2.5 0.0 3. 16.0 20.0 4. 4. 0.0 0. 1. + 11140. 1. 5. 27.0 6.0 1.0 3. 16.0 20.0 4. 4. 0.0 0. 1. + 11141. 1. 5. 22.0 2.5 0.0 2. 14.0 11.5 3. 4. 0.0 0. 1. + 11149. 1. 5. 42.0 23.0 2.0 3. 14.0 20.0 3. 2. 0.0 0. 1. + 11154. 1. 5. 27.0 9.0 2.0 3. 20.0 40.0 4. 5. 0.0 0. 1. + 11155. 1. 3. 22.0 2.5 1.0 1. 12.0 11.5 3. 2. 0.0 0. 1. + 11158. 1. 5. 22.0 2.5 0.0 2. 14.0 14.0 3. 4. 0.0 0. 1. + 11159. 1. 5. 42.0 23.0 2.0 3. 14.0 14.0 3. 5. 0.0 0. 1. + 11167. 1. 5. 32.0 16.5 3.0 1. 14.0 20.0 4. 5. 0.0 0. 1. + 11171. 1. 4. 22.0 2.5 0.0 3. 14.0 14.0 3. 1. 0.0 0. 1. + 11173. 1. 5. 32.0 9.0 2.0 4. 16.0 20.0 4. 5. 0.0 0. 1. + 11187. 1. 5. 22.0 2.5 0.0 3. 16.0 40.0 4. 2. 0.0 0. 1. + 11203. 1. 4. 27.0 9.0 2.0 3. 16.0 20.0 4. 4. 0.0 0. 1. + 11209. 1. 4. 37.0 16.5 3.0 3. 12.0 20.0 3. 6. 0.0 0. 1. + 11212. 1. 3. 27.0 9.0 1.0 4. 14.0 20.0 6. 4. 0.0 0. 1. + 11213. 1. 5. 32.0 16.5 3.0 4. 12.0 11.5 4. 4. 0.0 0. 1. + 11221. 1. 4. 32.0 16.5 3.0 2. 12.0 14.0 3. 4. 0.0 0. 1. + 11228. 1. 5. 32.0 16.5 2.0 4. 12.0 20.0 4. 3. 0.0 0. 1. + 11236. 1. 3. 22.0 2.5 0.0 2. 16.0 20.0 2. 5. 0.0 0. 1. + 11238. 1. 5. 22.0 2.5 0.0 4. 14.0 6.5 3. 3. 0.0 0. 1. + 11241. 1. 4. 27.0 16.5 1.0 3. 14.0 14.0 4. 4. 0.0 0. 1. + 11258. 1. 5. 27.0 6.0 0.0 3. 16.0 20.0 3. 6. 0.0 0. 1. + 11261. 1. 5. 27.0 0.5 0.0 2. 17.0 14.0 4. 3. 0.0 0. 1. + 11263. 1. 5. 22.0 2.5 1.0 2. 14.0 11.5 4. 4. 0.0 0. 1. + 11268. 1. 4. 27.0 6.0 2.0 2. 17.0 20.0 4. 6. 0.0 0. 1. + 11276. 1. 3. 22.0 2.5 1.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 11280. 1. 5. 22.0 2.5 0.0 2. 12.0 11.5 2. 4. 0.0 0. 1. + 11289. 1. 5. 22.0 2.5 0.0 3. 17.0 20.0 4. 4. 0.0 0. 1. + 11290. 1. 5. 42.0 23.0 4.0 4. 16.0 20.0 4. 4. 0.0 0. 1. + 11293. 1. 5. 22.0 0.5 0.0 2. 17.0 20.0 3. 4. 0.0 0. 1. + 11297. 1. 4. 27.0 9.0 2.0 3. 12.0 20.0 3. 4. 0.0 0. 1. + 11300. 1. 5. 22.0 2.5 0.0 4. 16.0 20.0 4. 5. 0.0 0. 1. + 11307. 1. 3. 27.0 6.0 2.0 4. 17.0 11.5 2. 4. 0.0 0. 1. + 11308. 1. 5. 22.0 2.5 0.0 3. 12.0 14.0 3. 4. 0.0 0. 1. + 11312. 1. 5. 27.0 6.0 0.0 3. 14.0 40.0 3. 3. 0.0 0. 1. + 11316. 1. 3. 42.0 23.0 2.0 3. 14.0 11.5 3. 2. 0.0 0. 1. + 11320. 1. 5. 27.0 9.0 0.0 1. 14.0 14.0 3. 5. 0.0 0. 1. + 11321. 1. 3. 27.0 2.5 0.0 2. 20.0 20.0 6. 4. 0.0 0. 1. + 11323. 1. 4. 27.0 16.5 2.0 3. 12.0 20.0 5. 5. 0.0 0. 1. + 11324. 1. 4. 32.0 9.0 1.0 3. 16.0 11.5 4. 5. 0.0 0. 1. + 11329. 1. 4. 42.0 23.0 5.5 4. 14.0 20.0 5. 5. 0.0 0. 1. + 11341. 1. 4. 22.0 2.5 0.0 3. 12.0 4.0 2. 1. 0.0 0. 1. + 11343. 1. 5. 27.0 2.5 0.0 3. 20.0 20.0 4. 6. 0.0 0. 1. + 11349. 1. 5. 22.0 2.5 0.0 2. 14.0 20.0 4. 4. 0.0 0. 1. + 11351. 1. 3. 22.0 2.5 2.0 3. 12.0 9.0 3. 2. 0.0 0. 1. + 11352. 1. 4. 42.0 23.0 3.0 2. 14.0 14.0 3. 4. 0.0 0. 1. + 11354. 1. 4. 22.0 2.5 0.0 2. 16.0 6.5 3. 1. 0.0 0. 1. + 11360. 1. 5. 22.0 2.5 0.0 2. 14.0 20.0 3. 3. 0.0 0. 1. + 11370. 1. 5. 27.0 6.0 0.0 1. 17.0 40.0 4. 5. 0.0 0. 1. + 11371. 1. 5. 32.0 13.0 2.0 3. 14.0 14.0 2. 2. 0.0 0. 1. + 11379. 1. 5. 17.5 2.5 0.0 4. 12.0 4.0 3. 1. 0.0 0. 1. + 11381. 1. 5. 42.0 23.0 5.5 4. 14.0 40.0 4. 6. 0.0 0. 1. + 11388. 1. 5. 37.0 13.0 2.0 3. 16.0 40.0 4. 4. 0.0 0. 1. + 11401. 1. 4. 32.0 16.5 3.0 3. 14.0 40.0 2. 6. 0.0 0. 1. + 11403. 1. 2. 17.5 2.5 1.0 3. 14.0 6.5 3. 2. 0.0 0. 1. + 11405. 1. 4. 22.0 2.5 0.0 3. 16.0 20.0 4. 4. 0.0 0. 1. + 11411. 1. 5. 22.0 2.5 0.0 2. 14.0 20.0 5. 5. 0.0 0. 1. + 11412. 1. 3. 32.0 6.0 1.0 2. 14.0 20.0 5. 4. 0.0 0. 1. + 11415. 1. 4. 27.0 2.5 0.0 2. 16.0 11.5 4. 1. 0.0 0. 1. + 11417. 1. 3. 42.0 13.0 0.0 3. 14.0 20.0 4. 5. 0.0 0. 1. + 11420. 1. 5. 27.0 9.0 2.0 4. 14.0 11.5 5. 4. 0.0 0. 1. + 11423. 1. 3. 22.0 2.5 0.0 2. 14.0 11.5 3. 2. 0.0 0. 1. + 11424. 1. 5. 32.0 6.0 1.0 4. 16.0 20.0 4. 5. 0.0 0. 1. + 11425. 1. 5. 32.0 13.0 2.0 3. 16.0 20.0 4. 4. 0.0 0. 1. + 11435. 1. 3. 22.0 6.0 1.0 3. 12.0 20.0 3. 4. 0.0 0. 1. + 11437. 1. 5. 27.0 2.5 0.0 2. 17.0 20.0 6. 6. 0.0 0. 1. + 11444. 1. 5. 22.0 6.0 1.0 2. 14.0 14.0 4. 4. 0.0 0. 1. + 11448. 1. 5. 22.0 6.0 0.0 3. 12.0 11.5 5. 4. 0.0 0. 1. + 11460. 1. 4. 27.0 6.0 0.0 4. 17.0 20.0 4. 5. 0.0 0. 1. + 11464. 1. 4. 27.0 2.5 0.0 2. 14.0 20.0 3. 6. 0.0 0. 1. + 11474. 1. 5. 22.0 2.5 2.0 3. 14.0 9.0 4. 4. 0.0 0. 1. + 11476. 1. 4. 22.0 2.5 0.0 2. 12.0 11.5 3. 3. 0.0 0. 1. + 11477. 1. 5. 27.0 2.5 0.0 4. 16.0 20.0 5. 2. 0.0 0. 1. + 11480. 1. 4. 22.0 2.5 0.0 3. 14.0 6.5 3. 1. 0.0 0. 1. + 11485. 1. 4. 37.0 16.5 5.5 3. 14.0 9.0 2. 4. 0.0 0. 1. + 11487. 1. 5. 22.0 2.5 1.0 2. 12.0 6.5 5. 2. 0.0 0. 1. + 11490. 1. 4. 22.0 2.5 0.0 2. 14.0 14.0 5. 5. 0.0 0. 1. + 11491. 1. 5. 42.0 23.0 5.5 4. 17.0 14.0 4. 6. 0.0 0. 1. + 11493. 1. 5. 22.0 2.5 0.0 3. 14.0 20.0 3. 3. 0.0 0. 1. + 11496. 1. 4. 32.0 13.0 1.0 3. 20.0 11.5 6. 5. 0.0 0. 1. + 11497. 1. 5. 22.0 2.5 0.0 2. 12.0 40.0 3. 4. 0.0 0. 1. + 11498. 1. 5. 27.0 9.0 2.0 2. 14.0 14.0 3. 4. 0.0 0. 1. + 11501. 1. 5. 32.0 16.5 2.0 4. 14.0 14.0 5. 4. 0.0 0. 1. + 11502. 1. 5. 27.0 9.0 3.0 3. 14.0 20.0 3. 2. 0.0 0. 1. + 11512. 1. 5. 32.0 13.0 2.0 2. 14.0 20.0 3. 6. 0.0 0. 1. + 11514. 1. 4. 37.0 16.5 3.0 3. 14.0 20.0 5. 4. 0.0 0. 1. + 11519. 1. 4. 27.0 6.0 1.0 3. 14.0 9.0 3. 4. 0.0 0. 1. + 11523. 1. 4. 27.0 6.0 2.0 3. 16.0 9.0 4. 2. 0.0 0. 1. + 11527. 1. 4. 22.0 2.5 0.0 3. 14.0 6.5 3. 4. 0.0 0. 1. + 11537. 1. 4. 17.5 0.5 0.0 3. 12.0 14.0 3. 4. 0.0 0. 1. + 11544. 1. 5. 17.5 0.5 0.0 3. 12.0 6.5 3. 1. 0.0 0. 1. + 11548. 1. 5. 22.0 2.5 0.0 1. 14.0 11.5 3. 2. 0.0 0. 1. + 11561. 1. 5. 32.0 16.5 2.0 2. 12.0 14.0 3. 5. 0.0 0. 1. + 11564. 1. 5. 42.0 23.0 3.0 3. 17.0 40.0 4. 5. 0.0 0. 1. + 11565. 1. 5. 22.0 2.5 1.0 4. 12.0 11.5 5. 4. 0.0 0. 1. + 11568. 1. 4. 27.0 6.0 1.0 3. 14.0 20.0 3. 4. 0.0 0. 1. + 11569. 1. 3. 22.0 2.5 0.0 2. 12.0 4.0 3. 3. 0.0 0. 1. + 11574. 1. 5. 22.0 2.5 0.0 3. 16.0 11.5 2. 5. 0.0 0. 1. + 11579. 1. 5. 17.5 2.5 0.0 3. 12.0 4.0 2. 1. 0.0 0. 1. + 11580. 1. 4. 17.5 2.5 0.0 3. 12.0 6.5 2. 4. 0.0 0. 1. + 11582. 1. 5. 27.0 2.5 0.0 4. 12.0 20.0 3. 6. 0.0 0. 1. + 11594. 1. 5. 22.0 2.5 0.0 3. 16.0 20.0 4. 5. 0.0 0. 1. + 11595. 1. 4. 42.0 23.0 3.0 1. 14.0 20.0 5. 4. 0.0 0. 1. + 11599. 1. 5. 42.0 23.0 2.0 3. 14.0 11.5 5. 5. 0.0 0. 1. + 11602. 1. 4. 22.0 6.0 2.0 2. 12.0 11.5 3. 4. 0.0 0. 1. + 11604. 1. 4. 32.0 13.0 2.0 3. 16.0 40.0 5. 2. 0.0 0. 1. + 11608. 1. 4. 37.0 16.5 3.0 3. 14.0 20.0 4. 4. 0.0 0. 1. + 11609. 1. 5. 32.0 16.5 5.5 4. 12.0 6.5 3. 4. 0.0 0. 1. + 11610. 1. 4. 32.0 9.0 1.0 2. 12.0 40.0 2. 3. 0.0 0. 1. + 11612. 1. 5. 22.0 2.5 0.0 4. 14.0 6.5 1. 2. 0.0 0. 1. + 11621. 1. 5. 17.5 2.5 0.0 3. 14.0 9.0 4. 1. 0.0 0. 1. + 11628. 1. 5. 22.0 2.5 0.0 3. 12.0 9.0 3. 4. 0.0 0. 1. + 11630. 1. 5. 27.0 2.5 0.0 2. 16.0 20.0 5. 5. 0.0 0. 1. + 11632. 1. 5. 27.0 6.0 1.0 4. 14.0 11.5 3. 3. 0.0 0. 1. + 11635. 1. 5. 32.0 13.0 2.0 4. 14.0 20.0 3. 4. 0.0 0. 1. + 11637. 1. 3. 37.0 16.5 5.5 3. 12.0 14.0 2. 4. 0.0 0. 1. + 11640. 1. 3. 32.0 9.0 3.0 3. 16.0 20.0 4. 5. 0.0 0. 1. + 11641. 1. 5. 27.0 2.5 0.0 2. 16.0 20.0 4. 6. 0.0 0. 1. + 11647. 1. 5. 32.0 16.5 3.0 2. 12.0 20.0 3. 2. 0.0 0. 1. + 11654. 1. 5. 27.0 0.5 0.0 4. 17.0 20.0 4. 4. 0.0 0. 1. + 11664. 1. 4. 22.0 6.0 1.0 2. 16.0 11.5 4. 4. 0.0 0. 1. + 11667. 1. 4. 22.0 0.5 0.0 3. 14.0 6.5 3. 2. 0.0 0. 1. + 11671. 1. 5. 22.0 6.0 3.0 1. 12.0 11.5 4. 4. 0.0 0. 1. + 11679. 1. 4. 22.0 0.5 0.0 3. 14.0 11.5 2. 4. 0.0 0. 1. + 11683. 1. 5. 22.0 2.5 1.0 3. 14.0 11.5 3. 5. 0.0 0. 1. + 11684. 1. 3. 37.0 23.0 5.5 3. 16.0 40.0 4. 6. 0.0 0. 1. + 11692. 1. 2. 22.0 2.5 0.0 3. 14.0 6.5 3. 2. 0.0 0. 1. + 11695. 1. 5. 27.0 9.0 1.0 1. 14.0 9.0 4. 4. 0.0 0. 1. + 11696. 1. 5. 22.0 2.5 0.0 2. 12.0 9.0 2. 3. 0.0 0. 1. + 11697. 1. 3. 37.0 16.5 3.0 1. 16.0 20.0 3. 6. 0.0 0. 1. + 11698. 1. 3. 27.0 2.5 1.0 2. 14.0 20.0 2. 4. 0.0 0. 1. + 11704. 1. 4. 42.0 23.0 2.0 3. 14.0 20.0 4. 5. 0.0 0. 1. + 11711. 1. 3. 27.0 2.5 2.0 2. 14.0 14.0 4. 4. 0.0 0. 1. + 11712. 1. 4. 22.0 2.5 0.0 1. 14.0 14.0 5. 4. 0.0 0. 1. + 11715. 1. 5. 22.0 0.5 0.0 3. 16.0 40.0 4. 2. 0.0 0. 1. + 11719. 1. 4. 27.0 6.0 2.0 1. 16.0 20.0 4. 4. 0.0 0. 1. + 11722. 1. 4. 22.0 6.0 1.0 2. 12.0 20.0 2. 5. 0.0 0. 1. + 11724. 1. 5. 32.0 13.0 3.0 3. 16.0 11.5 4. 4. 0.0 0. 1. + 11728. 1. 4. 32.0 16.5 1.0 3. 12.0 20.0 4. 2. 0.0 0. 1. + 11729. 1. 5. 27.0 2.5 0.0 4. 12.0 20.0 3. 5. 0.0 0. 1. + 11731. 1. 5. 17.5 2.5 1.0 1. 12.0 9.0 3. 4. 0.0 0. 1. + 11747. 1. 5. 22.0 2.5 1.0 3. 14.0 6.5 4. 1. 0.0 0. 1. + 11761. 1. 5. 32.0 9.0 0.0 4. 20.0 20.0 4. 5. 0.0 0. 1. + 11763. 1. 5. 22.0 0.5 0.0 1. 16.0 11.5 4. 5. 0.0 0. 1. + 11767. 1. 5. 32.0 9.0 0.0 1. 16.0 20.0 3. 5. 0.0 0. 1. + 11768. 1. 4. 42.0 23.0 3.0 3. 12.0 20.0 3. 5. 0.0 0. 1. + 11775. 1. 4. 22.0 2.5 0.0 3. 14.0 11.5 2. 2. 0.0 0. 1. + 11778. 1. 5. 32.0 13.0 1.0 3. 16.0 20.0 3. 5. 0.0 0. 1. + 11779. 1. 5. 22.0 6.0 1.0 1. 12.0 11.5 3. 4. 0.0 0. 1. + 11783. 1. 2. 42.0 23.0 4.0 2. 14.0 14.0 4. 5. 0.0 0. 1. + 11791. 1. 5. 22.0 2.5 0.0 4. 12.0 11.5 4. 4. 0.0 0. 1. + 11806. 1. 5. 32.0 13.0 2.0 2. 14.0 11.5 3. 4. 0.0 0. 1. + 11810. 1. 5. 22.0 0.5 0.0 3. 14.0 9.0 3. 4. 0.0 0. 1. + 11816. 1. 5. 22.0 2.5 0.0 1. 17.0 9.0 4. 1. 0.0 0. 1. + 11821. 1. 5. 22.0 2.5 0.0 1. 14.0 9.0 4. 1. 0.0 0. 1. + 11827. 1. 4. 42.0 23.0 5.5 3. 16.0 14.0 5. 5. 0.0 0. 1. + 11829. 1. 5. 22.0 2.5 0.0 3. 16.0 11.5 3. 5. 0.0 0. 1. + 11830. 1. 4. 37.0 13.0 1.0 4. 20.0 9.0 6. 4. 0.0 0. 1. + 11833. 1. 5. 27.0 2.5 0.0 2. 20.0 14.0 4. 4. 0.0 0. 1. + 11835. 1. 3. 22.0 0.5 1.0 4. 12.0 11.5 5. 4. 0.0 0. 1. + 11836. 1. 4. 27.0 2.5 1.0 3. 14.0 20.0 5. 5. 0.0 0. 1. + 11841. 1. 5. 22.0 2.5 0.0 1. 12.0 9.0 2. 4. 0.0 0. 1. + 11842. 1. 5. 22.0 6.0 2.0 2. 12.0 4.0 2. 4. 0.0 0. 1. + 11844. 1. 4. 27.0 6.0 2.0 1. 14.0 14.0 5. 5. 0.0 0. 1. + 11845. 1. 5. 22.0 0.5 0.0 2. 17.0 4.0 3. 1. 0.0 0. 1. + 11848. 1. 3. 27.0 9.0 1.0 2. 14.0 4.0 3. 4. 0.0 0. 1. + 11852. 1. 5. 42.0 23.0 4.0 3. 14.0 40.0 5. 5. 0.0 0. 1. + 11853. 1. 5. 22.0 2.5 0.0 1. 14.0 20.0 3. 4. 0.0 0. 1. + 11854. 1. 4. 22.0 2.5 1.0 2. 12.0 14.0 3. 4. 0.0 0. 1. + 11856. 1. 5. 32.0 2.5 0.0 3. 16.0 40.0 4. 5. 0.0 0. 1. + 11875. 1. 4. 27.0 2.5 0.0 1. 20.0 9.0 4. 4. 0.0 0. 1. + 11877. 1. 4. 27.0 2.5 0.0 3. 17.0 11.5 4. 1. 0.0 0. 1. + 11880. 1. 4. 22.0 2.5 0.0 2. 14.0 9.0 3. 2. 0.0 0. 1. + 11882. 1. 4. 32.0 13.0 2.0 2. 17.0 40.0 4. 6. 0.0 0. 1. + 11885. 1. 5. 17.5 0.5 0.0 4. 12.0 11.5 4. 5. 0.0 0. 1. + 11889. 1. 3. 37.0 16.5 3.0 3. 14.0 11.5 3. 4. 0.0 0. 1. + 11893. 1. 4. 27.0 6.0 1.0 2. 14.0 9.0 3. 1. 0.0 0. 1. + 11894. 1. 4. 22.0 2.5 0.0 3. 14.0 6.5 3. 4. 0.0 0. 1. + 11907. 1. 4. 22.0 2.5 0.0 1. 14.0 14.0 3. 3. 0.0 0. 1. + 11910. 1. 3. 22.0 2.5 1.0 3. 14.0 14.0 3. 2. 0.0 0. 1. + 11921. 1. 4. 32.0 13.0 2.0 3. 12.0 11.5 5. 4. 0.0 0. 1. + 11926. 1. 5. 42.0 23.0 2.0 3. 12.0 20.0 2. 3. 0.0 0. 1. + 11930. 1. 5. 32.0 9.0 0.0 3. 16.0 14.0 5. 4. 0.0 0. 1. + 11931. 1. 5. 32.0 6.0 2.0 2. 17.0 20.0 6. 6. 0.0 0. 1. + 11941. 1. 5. 22.0 6.0 1.0 2. 14.0 20.0 3. 4. 0.0 0. 1. + 11947. 1. 3. 37.0 13.0 1.0 3. 20.0 20.0 4. 4. 0.0 0. 1. + 11951. 1. 3. 42.0 23.0 5.5 2. 14.0 20.0 3. 4. 0.0 0. 1. + 11953. 1. 4. 22.0 2.5 0.0 2. 14.0 20.0 3. 6. 0.0 0. 1. + 11955. 1. 4. 22.0 0.5 0.0 3. 14.0 6.5 1. 1. 0.0 0. 1. + 11957. 1. 4. 22.0 0.5 0.0 3. 14.0 11.5 3. 4. 0.0 0. 1. + 11958. 1. 5. 27.0 2.5 0.0 3. 14.0 9.0 4. 1. 0.0 0. 1. + 11969. 1. 5. 27.0 0.5 0.0 1. 14.0 20.0 2. 6. 0.0 0. 1. + 11970. 1. 4. 37.0 23.0 5.5 4. 14.0 11.5 4. 4. 0.0 0. 1. + 11973. 1. 4. 22.0 2.5 0.0 1. 14.0 9.0 4. 2. 0.0 0. 1. + 11977. 1. 4. 27.0 2.5 3.0 1. 16.0 20.0 3. 4. 0.0 0. 1. + 11978. 1. 4. 22.0 0.5 0.0 2. 14.0 14.0 2. 2. 0.0 0. 1. + 11981. 1. 3. 37.0 9.0 2.0 3. 16.0 11.5 4. 5. 0.0 0. 1. + 11990. 1. 5. 37.0 16.5 3.0 4. 14.0 14.0 4. 2. 0.0 0. 1. + 11991. 1. 3. 27.0 6.0 0.0 1. 17.0 20.0 2. 6. 0.0 0. 1. + 11996. 1. 3. 27.0 9.0 3.0 2. 12.0 11.5 2. 2. 0.0 0. 1. + 11997. 1. 4. 22.0 2.5 0.0 2. 14.0 11.5 3. 4. 0.0 0. 1. + 12020. 1. 5. 42.0 23.0 3.0 4. 16.0 20.0 4. 5. 0.0 0. 1. + 12021. 1. 5. 27.0 2.5 1.0 3. 16.0 20.0 5. 5. 0.0 0. 1. + 12030. 1. 5. 22.0 0.5 0.0 3. 17.0 20.0 4. 4. 0.0 0. 1. + 12037. 1. 5. 27.0 2.5 0.0 3. 16.0 6.5 3. 1. 0.0 0. 1. + 12046. 1. 4. 22.0 2.5 0.0 1. 14.0 11.5 5. 2. 0.0 0. 1. + 12049. 1. 4. 27.0 9.0 2.0 3. 14.0 14.0 5. 5. 0.0 0. 1. + 12052. 1. 5. 37.0 16.5 2.0 3. 12.0 11.5 2. 4. 0.0 0. 1. + 12054. 1. 4. 22.0 6.0 2.0 2. 12.0 11.5 3. 5. 0.0 0. 1. + 12057. 1. 4. 32.0 16.5 4.0 2. 16.0 20.0 5. 6. 0.0 0. 1. + 12058. 1. 5. 22.0 2.5 0.0 2. 14.0 20.0 3. 6. 0.0 0. 1. + 12059. 1. 4. 32.0 2.5 0.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 12060. 1. 5. 37.0 23.0 5.5 4. 12.0 11.5 2. 5. 0.0 0. 1. + 12063. 1. 5. 22.0 0.5 0.0 2. 12.0 11.5 3. 4. 0.0 0. 1. + 12065. 1. 5. 27.0 6.0 1.0 1. 16.0 4.0 2. 1. 0.0 0. 1. + 12069. 1. 4. 22.0 2.5 2.0 2. 12.0 4.0 3. 2. 0.0 0. 1. + 12070. 1. 5. 22.0 2.5 0.0 2. 14.0 9.0 6. 4. 0.0 0. 1. + 12071. 1. 4. 32.0 13.0 2.0 4. 14.0 20.0 3. 6. 0.0 0. 1. + 12086. 1. 4. 27.0 9.0 2.0 2. 20.0 20.0 4. 5. 0.0 0. 1. + 12092. 1. 4. 22.0 2.5 1.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 12095. 1. 3. 22.0 2.5 1.0 2. 14.0 11.5 5. 5. 0.0 0. 1. + 12099. 1. 5. 22.0 2.5 0.0 3. 14.0 20.0 3. 4. 0.0 0. 1. + 12100. 1. 3. 22.0 2.5 0.0 2. 16.0 14.0 3. 5. 0.0 0. 1. + 12106. 1. 5. 22.0 0.5 0.0 4. 14.0 11.5 5. 5. 0.0 0. 1. + 12109. 1. 5. 42.0 9.0 0.0 3. 16.0 20.0 4. 4. 0.0 0. 1. + 12115. 1. 4. 32.0 9.0 1.0 3. 17.0 20.0 5. 4. 0.0 0. 1. + 12116. 1. 5. 32.0 6.0 2.0 4. 17.0 40.0 2. 6. 0.0 0. 1. + 12125. 1. 5. 27.0 6.0 0.0 2. 20.0 20.0 4. 5. 0.0 0. 1. + 12126. 1. 5. 27.0 6.0 2.0 4. 16.0 9.0 4. 4. 0.0 0. 1. + 12127. 1. 5. 22.0 2.5 1.0 3. 12.0 9.0 4. 4. 0.0 0. 1. + 12134. 1. 5. 22.0 2.5 0.0 2. 14.0 20.0 4. 4. 0.0 0. 1. + 12139. 1. 4. 22.0 2.5 0.0 3. 16.0 11.5 4. 6. 0.0 0. 1. + 12143. 1. 4. 22.0 2.5 1.0 2. 14.0 6.5 3. 2. 0.0 0. 1. + 12150. 1. 5. 42.0 23.0 2.0 3. 14.0 40.0 3. 5. 0.0 0. 1. + 12153. 1. 5. 32.0 13.0 0.0 2. 16.0 40.0 3. 5. 0.0 0. 1. + 12157. 1. 5. 22.0 2.5 0.0 1. 12.0 6.5 3. 1. 0.0 0. 1. + 12159. 1. 5. 22.0 9.0 3.0 2. 14.0 20.0 5. 4. 0.0 0. 1. + 12171. 1. 5. 27.0 0.5 0.0 2. 16.0 20.0 3. 5. 0.0 0. 1. + 12176. 1. 3. 32.0 6.0 0.0 2. 9.0 11.5 2. 2. 0.0 0. 1. + 12179. 1. 5. 22.0 2.5 0.0 1. 17.0 4.0 1. 1. 0.0 0. 1. + 12182. 1. 4. 32.0 16.5 5.5 2. 16.0 20.0 4. 4. 0.0 0. 1. + 12183. 1. 4. 37.0 6.0 1.0 3. 20.0 40.0 6. 6. 0.0 0. 1. + 12189. 1. 5. 42.0 23.0 2.0 2. 17.0 20.0 3. 5. 0.0 0. 1. + 12191. 1. 5. 27.0 2.5 0.0 3. 17.0 20.0 5. 5. 0.0 0. 1. + 12194. 1. 5. 42.0 23.0 2.0 3. 14.0 40.0 5. 5. 0.0 0. 1. + 12199. 1. 5. 27.0 6.0 2.0 1. 14.0 20.0 5. 5. 0.0 0. 1. + 12200. 1. 5. 32.0 13.0 2.0 3. 17.0 20.0 4. 5. 0.0 0. 1. + 12204. 1. 5. 22.0 2.5 0.0 2. 16.0 11.5 4. 5. 0.0 0. 1. + 12207. 1. 5. 22.0 2.5 0.0 1. 14.0 20.0 3. 4. 0.0 0. 1. + 12215. 1. 5. 22.0 2.5 0.0 3. 12.0 20.0 3. 2. 0.0 0. 1. + 12219. 1. 2. 32.0 13.0 4.0 3. 12.0 20.0 3. 2. 0.0 0. 1. + 12234. 1. 5. 37.0 16.5 4.0 4. 16.0 40.0 4. 2. 0.0 0. 1. + 12237. 1. 5. 37.0 16.5 5.5 4. 12.0 40.0 3. 6. 0.0 0. 1. + 12242. 1. 4. 22.0 6.0 2.0 1. 12.0 14.0 3. 4. 0.0 0. 1. + 12257. 1. 3. 37.0 9.0 0.0 4. 12.0 14.0 3. 3. 0.0 0. 1. + 12259. 1. 4. 27.0 6.0 1.0 1. 17.0 6.5 4. 4. 0.0 0. 1. + 12260. 1. 5. 22.0 2.5 1.0 2. 12.0 6.5 3. 3. 0.0 0. 1. + 12267. 1. 4. 22.0 2.5 1.0 3. 14.0 11.5 4. 4. 0.0 0. 1. + 12277. 1. 5. 32.0 13.0 2.0 3. 12.0 11.5 3. 5. 0.0 0. 1. + 12281. 1. 5. 27.0 2.5 0.0 3. 17.0 11.5 4. 2. 0.0 0. 1. + 12287. 1. 4. 27.0 6.0 3.0 4. 14.0 40.0 4. 2. 0.0 0. 1. + 12292. 1. 3. 22.0 6.0 1.0 1. 12.0 20.0 3. 6. 0.0 0. 1. + 12293. 1. 4. 22.0 2.5 0.0 4. 17.0 20.0 4. 4. 0.0 0. 1. + 12302. 1. 5. 27.0 9.0 0.0 4. 20.0 40.0 4. 6. 0.0 0. 1. + 12305. 1. 3. 42.0 23.0 4.0 4. 14.0 20.0 5. 4. 0.0 0. 1. + 12306. 1. 4. 32.0 16.5 4.0 3. 14.0 14.0 3. 3. 0.0 0. 1. + 12310. 1. 5. 22.0 2.5 0.0 4. 16.0 14.0 3. 3. 0.0 0. 1. + 12311. 1. 5. 27.0 0.5 0.0 2. 16.0 20.0 4. 4. 0.0 0. 1. + 12313. 1. 5. 37.0 23.0 3.0 2. 14.0 40.0 4. 5. 0.0 0. 1. + 12314. 1. 5. 27.0 2.5 0.0 1. 12.0 14.0 3. 4. 0.0 0. 1. + 12320. 1. 5. 22.0 2.5 1.0 4. 12.0 6.5 3. 2. 0.0 0. 1. + 12323. 1. 5. 22.0 2.5 2.0 1. 16.0 9.0 3. 6. 0.0 0. 1. + 12333. 1. 5. 27.0 2.5 0.0 3. 14.0 20.0 3. 5. 0.0 0. 1. + 12340. 1. 4. 27.0 6.0 1.0 2. 17.0 20.0 4. 5. 0.0 0. 1. + 12342. 1. 2. 27.0 2.5 1.0 3. 12.0 6.5 4. 5. 0.0 0. 1. + 12344. 1. 4. 37.0 16.5 3.0 3. 14.0 20.0 3. 2. 0.0 0. 1. + 12348. 1. 4. 32.0 16.5 2.0 3. 16.0 40.0 4. 4. 0.0 0. 1. + 12352. 1. 4. 27.0 6.0 0.0 1. 20.0 9.0 4. 1. 0.0 0. 1. + 12354. 1. 5. 27.0 9.0 3.0 3. 12.0 11.5 2. 4. 0.0 0. 1. + 12359. 1. 4. 27.0 2.5 0.0 3. 17.0 20.0 4. 5. 0.0 0. 1. + 12365. 1. 3. 22.0 6.0 1.0 2. 16.0 9.0 1. 3. 0.0 0. 1. + 12367. 1. 2. 27.0 9.0 2.0 3. 14.0 14.0 3. 2. 0.0 0. 1. + 12378. 1. 5. 27.0 9.0 3.0 3. 14.0 6.5 3. 4. 0.0 0. 1. + 12386. 1. 5. 22.0 0.5 0.0 3. 14.0 4.0 3. 1. 0.0 0. 1. + 12392. 1. 4. 27.0 9.0 2.0 3. 12.0 9.0 2. 4. 0.0 0. 1. + 12394. 1. 5. 32.0 13.0 2.0 3. 12.0 20.0 3. 4. 0.0 0. 1. + 12396. 1. 5. 27.0 0.5 0.0 2. 16.0 14.0 5. 4. 0.0 0. 1. + 12404. 1. 4. 42.0 23.0 5.5 3. 12.0 11.5 5. 4. 0.0 0. 1. + 12410. 1. 4. 22.0 2.5 0.0 3. 16.0 20.0 3. 5. 0.0 0. 1. + 12416. 1. 5. 22.0 0.5 0.0 3. 12.0 9.0 3. 4. 0.0 0. 1. + 12420. 1. 4. 22.0 6.0 1.0 2. 14.0 40.0 4. 3. 0.0 0. 1. + 12425. 1. 3. 27.0 13.0 2.0 2. 12.0 4.0 2. 4. 0.0 0. 1. + 12430. 1. 5. 27.0 2.5 0.0 2. 16.0 20.0 5. 4. 0.0 0. 1. + 12431. 1. 5. 22.0 2.5 0.0 2. 14.0 9.0 3. 5. 0.0 0. 1. + 12434. 1. 5. 27.0 2.5 0.0 1. 16.0 11.5 2. 2. 0.0 0. 1. + 12441. 1. 3. 32.0 13.0 2.0 3. 14.0 20.0 3. 5. 0.0 0. 1. + 12445. 1. 5. 22.0 0.5 0.0 2. 16.0 14.0 3. 4. 0.0 0. 1. + 12446. 1. 3. 42.0 23.0 5.5 3. 17.0 11.5 5. 2. 0.0 0. 1. + 12447. 1. 2. 22.0 2.5 2.0 3. 12.0 9.0 2. 2. 0.0 0. 1. + 12448. 1. 4. 37.0 16.5 1.0 3. 12.0 20.0 3. 5. 0.0 0. 1. + 12449. 1. 4. 27.0 2.5 0.0 1. 20.0 40.0 6. 6. 0.0 0. 1. + 12459. 1. 5. 22.0 2.5 0.0 3. 12.0 11.5 2. 5. 0.0 0. 1. + 12464. 1. 4. 22.0 2.5 0.0 3. 14.0 4.0 3. 1. 0.0 0. 1. + 12465. 1. 5. 42.0 23.0 4.0 3. 14.0 20.0 4. 4. 0.0 0. 1. + 12467. 1. 5. 22.0 2.5 0.0 2. 14.0 11.5 4. 6. 0.0 0. 1. + 12470. 1. 5. 32.0 16.5 3.0 3. 12.0 11.5 2. 5. 0.0 0. 1. + 12472. 1. 5. 22.0 2.5 0.0 2. 17.0 20.0 4. 2. 0.0 0. 1. + 12476. 1. 5. 37.0 23.0 5.5 4. 12.0 14.0 5. 3. 0.0 0. 1. + 12480. 1. 5. 37.0 16.5 3.0 2. 12.0 11.5 3. 4. 0.0 0. 1. + 12495. 1. 5. 22.0 2.5 0.0 3. 12.0 20.0 2. 2. 0.0 0. 1. + 12500. 1. 5. 27.0 2.5 0.0 2. 16.0 20.0 4. 4. 0.0 0. 1. + 12501. 1. 2. 22.0 2.5 0.0 3. 14.0 11.5 3. 4. 0.0 0. 1. + 12503. 1. 3. 37.0 16.5 2.0 3. 14.0 14.0 5. 4. 0.0 0. 1. + 12505. 1. 3. 37.0 16.5 2.0 3. 14.0 6.5 3. 3. 0.0 0. 1. + 12510. 1. 3. 32.0 13.0 2.0 4. 16.0 14.0 3. 3. 0.0 0. 1. + 12517. 1. 5. 32.0 13.0 0.0 1. 14.0 14.0 4. 4. 0.0 0. 1. + 12522. 1. 4. 32.0 9.0 3.0 3. 14.0 9.0 1. 4. 0.0 0. 1. + 12527. 1. 5. 32.0 13.0 2.0 2. 17.0 20.0 4. 5. 0.0 0. 1. + 12528. 1. 4. 27.0 2.5 0.0 1. 14.0 11.5 2. 2. 0.0 0. 1. + 12531. 1. 3. 27.0 13.0 0.0 3. 12.0 11.5 3. 4. 0.0 0. 1. + 12533. 1. 2. 37.0 9.0 0.0 2. 16.0 20.0 4. 4. 0.0 0. 1. + 12537. 1. 4. 42.0 9.0 0.0 1. 14.0 9.0 3. 2. 0.0 0. 1. + 12543. 1. 5. 22.0 0.5 0.0 3. 14.0 6.5 4. 5. 0.0 0. 1. + 12547. 1. 5. 42.0 23.0 2.0 3. 12.0 20.0 3. 6. 0.0 0. 1. + 12550. 1. 5. 27.0 2.5 0.0 3. 16.0 40.0 5. 5. 0.0 0. 1. + 12552. 1. 5. 42.0 23.0 4.0 3. 14.0 40.0 3. 5. 0.0 0. 1. + 12554. 1. 3. 42.0 23.0 4.0 3. 12.0 11.5 2. 4. 0.0 0. 1. + 12555. 1. 4. 27.0 6.0 1.0 3. 14.0 14.0 3. 6. 0.0 0. 1. + 12556. 1. 5. 22.0 2.5 0.0 1. 14.0 11.5 3. 4. 0.0 0. 1. + 12560. 1. 4. 22.0 0.5 0.0 4. 16.0 9.0 5. 1. 0.0 0. 1. + 12561. 1. 5. 27.0 6.0 1.0 3. 20.0 9.0 4. 4. 0.0 0. 1. + 12562. 1. 5. 22.0 2.5 0.0 3. 14.0 11.5 5. 1. 0.0 0. 1. + 12564. 1. 3. 27.0 9.0 2.0 3. 14.0 4.0 2. 1. 0.0 0. 1. + 12565. 1. 5. 27.0 6.0 0.0 4. 14.0 20.0 3. 3. 0.0 0. 1. + 12568. 1. 5. 32.0 6.0 1.0 3. 20.0 11.5 2. 5. 0.0 0. 1. + 12573. 1. 4. 22.0 2.5 1.0 2. 12.0 9.0 2. 2. 0.0 0. 1. + 12575. 1. 5. 27.0 6.0 0.0 2. 14.0 20.0 3. 4. 0.0 0. 1. + 12576. 1. 4. 32.0 9.0 2.0 2. 16.0 20.0 4. 4. 0.0 0. 1. + 12578. 1. 5. 32.0 13.0 0.0 1. 16.0 40.0 4. 5. 0.0 0. 1. + 12584. 1. 4. 32.0 13.0 3.0 2. 12.0 20.0 2. 5. 0.0 0. 1. + 12585. 1. 3. 32.0 2.5 0.0 2. 14.0 20.0 5. 3. 0.0 0. 1. + 12589. 1. 5. 22.0 2.5 1.0 3. 12.0 20.0 3. 4. 0.0 0. 1. + 12592. 1. 5. 32.0 13.0 2.0 2. 14.0 20.0 3. 3. 0.0 0. 1. + 12601. 1. 4. 27.0 6.0 0.0 2. 14.0 40.0 3. 3. 0.0 0. 1. + 12613. 1. 4. 22.0 2.5 0.0 3. 16.0 20.0 4. 6. 0.0 0. 1. + 12614. 1. 3. 32.0 2.5 0.0 1. 17.0 20.0 5. 6. 0.0 0. 1. + 12616. 1. 5. 32.0 6.0 0.0 2. 17.0 40.0 4. 5. 0.0 0. 1. + 12622. 1. 4. 42.0 13.0 0.0 2. 14.0 11.5 2. 2. 0.0 0. 1. + 12624. 1. 4. 22.0 6.0 2.0 4. 12.0 9.0 4. 4. 0.0 0. 1. + 12625. 1. 3. 17.5 0.5 0.0 2. 14.0 9.0 3. 2. 0.0 0. 1. + 12626. 1. 3. 42.0 23.0 5.5 3. 14.0 14.0 2. 4. 0.0 0. 1. + 12628. 1. 5. 32.0 16.5 2.0 2. 14.0 20.0 5. 5. 0.0 0. 1. + 12631. 1. 5. 22.0 0.5 0.0 1. 12.0 6.5 2. 4. 0.0 0. 1. + 12634. 1. 5. 22.0 6.0 2.0 3. 12.0 14.0 2. 4. 0.0 0. 1. + 12642. 1. 5. 27.0 2.5 0.0 2. 20.0 11.5 4. 6. 0.0 0. 1. + 12644. 1. 4. 22.0 2.5 0.0 1. 16.0 14.0 5. 6. 0.0 0. 1. + 12645. 1. 4. 27.0 9.0 0.0 2. 14.0 20.0 3. 4. 0.0 0. 1. + 12648. 1. 4. 32.0 9.0 1.0 2. 14.0 20.0 3. 2. 0.0 0. 1. + 12650. 1. 5. 22.0 2.5 0.0 1. 14.0 9.0 3. 1. 0.0 0. 1. + 12652. 1. 4. 32.0 16.5 3.0 4. 16.0 20.0 4. 6. 0.0 0. 1. + 12658. 1. 4. 42.0 16.5 4.0 4. 14.0 14.0 3. 4. 0.0 0. 1. + 12659. 1. 4. 22.0 0.5 0.0 1. 12.0 14.0 2. 2. 0.0 0. 1. + 12664. 1. 5. 32.0 13.0 3.0 4. 14.0 20.0 3. 4. 0.0 0. 1. + 12674. 1. 5. 32.0 13.0 3.0 2. 14.0 11.5 2. 3. 0.0 0. 1. + 12676. 1. 3. 42.0 23.0 3.0 4. 12.0 14.0 3. 2. 0.0 0. 1. + 12678. 1. 5. 22.0 2.5 0.0 2. 14.0 6.5 3. 1. 0.0 0. 1. + 12687. 1. 5. 27.0 9.0 2.0 3. 16.0 11.5 4. 4. 0.0 0. 1. + 12692. 1. 5. 27.0 2.5 0.0 3. 20.0 6.5 4. 6. 0.0 0. 1. + 12693. 1. 5. 17.5 2.5 0.0 4. 14.0 9.0 2. 2. 0.0 0. 1. + 12695. 1. 5. 27.0 6.0 1.0 1. 14.0 20.0 3. 4. 0.0 0. 1. + 12697. 1. 5. 22.0 2.5 0.0 3. 16.0 9.0 2. 2. 0.0 0. 1. + 12703. 1. 4. 22.0 2.5 0.0 2. 14.0 11.5 3. 1. 0.0 0. 1. + 12706. 1. 4. 37.0 16.5 3.0 3. 12.0 20.0 4. 4. 0.0 0. 1. + 12726. 1. 3. 42.0 23.0 5.5 4. 12.0 11.5 2. 4. 0.0 0. 1. + 12727. 1. 5. 22.0 2.5 0.0 1. 14.0 20.0 2. 2. 0.0 0. 1. + 12730. 1. 4. 32.0 2.5 0.0 2. 14.0 20.0 4. 3. 0.0 0. 1. + 12731. 1. 3. 32.0 13.0 1.0 1. 14.0 14.0 2. 2. 0.0 0. 1. + 12739. 1. 5. 27.0 6.0 1.0 1. 16.0 20.0 4. 2. 0.0 0. 1. + 12740. 1. 4. 27.0 6.0 2.0 3. 17.0 20.0 6. 5. 0.0 0. 1. + 12742. 1. 5. 37.0 13.0 2.0 3. 20.0 40.0 4. 6. 0.0 0. 1. + 12744. 1. 5. 22.0 0.5 0.0 3. 16.0 11.5 3. 6. 0.0 0. 1. + 12747. 1. 4. 22.0 2.5 0.0 2. 16.0 14.0 5. 4. 0.0 0. 1. + 12752. 1. 5. 22.0 2.5 0.0 3. 12.0 14.0 3. 2. 0.0 0. 1. + 12763. 1. 5. 27.0 6.0 0.0 2. 14.0 20.0 3. 3. 0.0 0. 1. + 12771. 1. 5. 22.0 2.5 0.0 3. 12.0 20.0 2. 4. 0.0 0. 1. + 12774. 1. 5. 27.0 6.0 2.0 2. 12.0 14.0 2. 2. 0.0 0. 1. + 12804. 1. 4. 42.0 23.0 4.0 1. 14.0 40.0 4. 4. 0.0 0. 1. + 12813. 1. 5. 27.0 6.0 0.0 1. 14.0 40.0 3. 5. 0.0 0. 1. + 12816. 1. 3. 37.0 16.5 5.5 3. 14.0 20.0 3. 2. 0.0 0. 1. + 12822. 1. 5. 32.0 16.5 2.0 3. 12.0 20.0 3. 2. 0.0 0. 1. + 12825. 1. 4. 22.0 0.5 0.0 2. 16.0 20.0 4. 5. 0.0 0. 1. + 12827. 1. 5. 22.0 2.5 0.0 3. 12.0 20.0 3. 5. 0.0 0. 1. + 12828. 1. 4. 32.0 9.0 2.0 2. 16.0 40.0 4. 4. 0.0 0. 1. + 12830. 1. 4. 27.0 2.5 0.0 3. 17.0 11.5 4. 4. 0.0 0. 1. + 12832. 1. 5. 27.0 6.0 2.0 4. 14.0 20.0 3. 4. 0.0 0. 1. + 12833. 1. 3. 32.0 13.0 1.0 1. 14.0 11.5 3. 6. 0.0 0. 1. + 12834. 1. 5. 32.0 13.0 3.0 4. 14.0 20.0 5. 5. 0.0 0. 1. + 12840. 1. 5. 37.0 2.5 0.0 2. 12.0 9.0 2. 4. 0.0 0. 1. + 12846. 1. 5. 42.0 23.0 2.0 1. 12.0 40.0 5. 2. 0.0 0. 1. + 12862. 1. 4. 32.0 9.0 3.0 3. 14.0 11.5 5. 5. 0.0 0. 1. + 12867. 1. 5. 37.0 13.0 0.0 1. 16.0 20.0 3. 5. 0.0 0. 1. + 12869. 1. 4. 27.0 6.0 1.0 2. 14.0 14.0 3. 5. 0.0 0. 1. + 12873. 1. 4. 32.0 2.5 0.0 3. 16.0 20.0 2. 5. 0.0 0. 1. + 12877. 1. 3. 42.0 23.0 3.0 2. 12.0 14.0 2. 2. 0.0 0. 1. + 12881. 1. 4. 37.0 16.5 2.0 3. 14.0 20.0 3. 5. 0.0 0. 1. + 12884. 1. 5. 37.0 16.5 1.0 4. 17.0 20.0 4. 4. 0.0 0. 1. + 12894. 1. 4. 27.0 2.5 0.0 1. 16.0 11.5 4. 5. 0.0 0. 1. + 12897. 1. 4. 37.0 16.5 2.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 12900. 1. 4. 22.0 2.5 0.0 2. 12.0 11.5 3. 2. 0.0 0. 1. + 12910. 1. 3. 32.0 6.0 2.0 3. 20.0 14.0 4. 2. 0.0 0. 1. + 12914. 1. 5. 42.0 23.0 2.0 1. 12.0 20.0 3. 2. 0.0 0. 1. + 12918. 1. 5. 37.0 16.5 3.0 3. 14.0 20.0 3. 6. 0.0 0. 1. + 12920. 1. 3. 37.0 16.5 3.0 2. 12.0 14.0 2. 3. 0.0 0. 1. + 12924. 1. 5. 32.0 16.5 4.0 3. 12.0 20.0 3. 5. 0.0 0. 1. + 12925. 1. 4. 27.0 9.0 2.0 2. 12.0 14.0 3. 4. 0.0 0. 1. + 12927. 1. 5. 32.0 16.5 1.0 1. 14.0 14.0 2. 2. 0.0 0. 1. + 12931. 1. 4. 27.0 6.0 0.0 2. 16.0 40.0 5. 5. 0.0 0. 1. + 12934. 1. 5. 22.0 2.5 0.0 2. 14.0 9.0 4. 2. 0.0 0. 1. + 12940. 1. 3. 32.0 13.0 2.0 2. 14.0 20.0 3. 2. 0.0 0. 1. + 12942. 1. 5. 42.0 23.0 1.0 3. 14.0 40.0 3. 5. 0.0 0. 1. + 12943. 1. 5. 22.0 0.5 0.0 2. 14.0 14.0 2. 5. 0.0 0. 1. + 12955. 1. 5. 32.0 2.5 0.0 2. 14.0 14.0 5. 2. 0.0 0. 1. + 12960. 1. 5. 42.0 23.0 2.0 4. 14.0 20.0 3. 5. 0.0 0. 1. + 12965. 1. 3. 37.0 23.0 3.0 3. 12.0 20.0 5. 5. 0.0 0. 1. + 12983. 1. 5. 27.0 2.5 0.0 3. 17.0 20.0 4. 5. 0.0 0. 1. + 12988. 1. 5. 27.0 2.5 0.0 1. 17.0 20.0 4. 6. 0.0 0. 1. + 13001. 1. 5. 32.0 13.0 0.0 2. 20.0 40.0 5. 4. 0.0 0. 1. + 13005. 1. 3. 42.0 23.0 4.0 2. 14.0 20.0 6. 6. 0.0 0. 1. + 13009. 1. 3. 22.0 2.5 0.0 3. 14.0 11.5 4. 4. 0.0 0. 1. + 13013. 1. 5. 27.0 6.0 1.0 2. 17.0 20.0 4. 4. 0.0 0. 1. + 13019. 1. 4. 27.0 9.0 3.0 1. 12.0 11.5 2. 2. 0.0 0. 1. + 13021. 1. 5. 27.0 9.0 1.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 13022. 1. 5. 42.0 23.0 2.0 4. 12.0 20.0 2. 2. 0.0 0. 1. + 13026. 1. 5. 42.0 23.0 2.0 2. 12.0 20.0 3. 2. 0.0 0. 1. + 13033. 1. 4. 22.0 2.5 1.0 2. 14.0 9.0 3. 4. 0.0 0. 1. + 13037. 1. 3. 42.0 23.0 2.0 2. 20.0 40.0 4. 4. 0.0 0. 1. + 13039. 1. 4. 22.0 0.5 0.0 1. 14.0 20.0 3. 3. 0.0 0. 1. + 13042. 1. 5. 37.0 16.5 2.0 1. 16.0 40.0 4. 6. 0.0 0. 1. + 13044. 1. 5. 22.0 6.0 0.0 2. 14.0 11.5 3. 4. 0.0 0. 1. + 13046. 1. 5. 37.0 9.0 1.0 2. 14.0 40.0 3. 5. 0.0 0. 1. + 13052. 1. 3. 22.0 6.0 1.0 2. 14.0 20.0 4. 5. 0.0 0. 1. + 13056. 1. 5. 27.0 2.5 0.0 2. 14.0 20.0 3. 4. 0.0 0. 1. + 13057. 1. 5. 27.0 6.0 2.0 3. 14.0 11.5 3. 5. 0.0 0. 1. + 13058. 1. 4. 17.5 2.5 1.0 2. 12.0 9.0 2. 2. 0.0 0. 1. + 13060. 1. 5. 42.0 23.0 3.0 3. 12.0 40.0 3. 5. 0.0 0. 1. + 13064. 1. 5. 27.0 2.5 1.0 3. 17.0 14.0 4. 4. 0.0 0. 1. + 13068. 1. 3. 22.0 2.5 0.0 3. 14.0 11.5 3. 4. 0.0 0. 1. + 13076. 1. 5. 27.0 2.5 2.0 2. 14.0 9.0 3. 4. 0.0 0. 1. + 13079. 1. 4. 27.0 2.5 1.0 2. 16.0 40.0 4. 6. 0.0 0. 1. + 13080. 1. 5. 27.0 2.5 1.0 1. 14.0 11.5 2. 2. 0.0 0. 1. + 13090. 1. 5. 27.0 2.5 0.0 1. 16.0 40.0 4. 4. 0.0 0. 1. + 13092. 1. 5. 27.0 2.5 0.0 4. 14.0 20.0 5. 5. 0.0 0. 1. + 13097. 1. 5. 32.0 9.0 2.0 3. 16.0 14.0 4. 2. 0.0 0. 1. + 13099. 1. 5. 42.0 23.0 1.0 3. 14.0 20.0 2. 5. 0.0 0. 1. + 13100. 1. 4. 32.0 9.0 2.0 1. 17.0 20.0 4. 4. 0.0 0. 1. + 13103. 1. 4. 22.0 2.5 0.0 3. 14.0 11.5 3. 1. 0.0 0. 1. + 13105. 1. 4. 27.0 6.0 1.0 3. 17.0 20.0 4. 4. 0.0 0. 1. + 13107. 1. 5. 22.0 2.5 0.0 1. 14.0 11.5 4. 2. 0.0 0. 1. + 13112. 1. 5. 22.0 2.5 0.0 1. 12.0 20.0 3. 5. 0.0 0. 1. + 13119. 1. 4. 27.0 2.5 1.0 2. 14.0 9.0 5. 5. 0.0 0. 1. + 13120. 1. 4. 22.0 2.5 0.0 1. 14.0 20.0 3. 4. 0.0 0. 1. + 13125. 1. 4. 27.0 6.0 0.0 3. 20.0 40.0 6. 6. 0.0 0. 1. + 13129. 1. 5. 27.0 2.5 0.0 2. 14.0 40.0 5. 4. 0.0 0. 1. + 13132. 1. 5. 32.0 16.5 2.0 3. 12.0 20.0 3. 2. 0.0 0. 1. + 13134. 1. 5. 32.0 13.0 0.0 1. 16.0 40.0 4. 6. 0.0 0. 1. + 13136. 1. 4. 27.0 9.0 0.0 4. 14.0 9.0 3. 4. 0.0 0. 1. + 13140. 1. 5. 37.0 16.5 2.0 2. 16.0 20.0 4. 5. 0.0 0. 1. + 13142. 1. 5. 32.0 16.5 4.0 2. 16.0 40.0 4. 5. 0.0 0. 1. + 13145. 1. 5. 27.0 6.0 0.0 2. 16.0 20.0 3. 5. 0.0 0. 1. + 13150. 1. 5. 27.0 6.0 2.0 1. 16.0 14.0 3. 5. 0.0 0. 1. + 13151. 1. 5. 22.0 2.5 1.0 4. 14.0 14.0 2. 4. 0.0 0. 1. + 13168. 1. 3. 32.0 2.5 1.0 2. 14.0 20.0 3. 3. 0.0 0. 1. + 13172. 1. 5. 22.0 6.0 0.0 2. 12.0 6.5 2. 2. 0.0 0. 1. + 13174. 1. 5. 42.0 23.0 2.0 2. 12.0 20.0 4. 4. 0.0 0. 1. + 13176. 1. 5. 22.0 2.5 0.0 3. 16.0 11.5 3. 2. 0.0 0. 1. + 13182. 1. 4. 37.0 9.0 2.0 3. 20.0 20.0 4. 2. 0.0 0. 1. + 13189. 1. 5. 32.0 13.0 2.0 1. 16.0 20.0 4. 5. 0.0 0. 1. + 13191. 1. 5. 42.0 23.0 1.0 4. 20.0 14.0 4. 4. 0.0 0. 1. + 13192. 1. 5. 27.0 6.0 0.0 3. 14.0 14.0 4. 5. 0.0 0. 1. + 13202. 1. 3. 42.0 23.0 2.0 2. 17.0 20.0 3. 4. 0.0 0. 1. + 13204. 1. 4. 22.0 2.5 1.0 1. 14.0 11.5 3. 4. 0.0 0. 1. + 13208. 1. 4. 37.0 16.5 3.0 2. 14.0 9.0 3. 3. 0.0 0. 1. + 13211. 1. 4. 22.0 2.5 0.0 2. 14.0 14.0 3. 3. 0.0 0. 1. + 13216. 1. 3. 27.0 6.0 0.0 1. 16.0 40.0 5. 5. 0.0 0. 1. + 13217. 1. 4. 27.0 9.0 2.0 3. 17.0 40.0 6. 6. 0.0 0. 1. + 13219. 1. 4. 37.0 16.5 2.0 4. 14.0 40.0 5. 5. 0.0 0. 1. + 13221. 1. 5. 27.0 2.5 0.0 4. 16.0 14.0 4. 6. 0.0 0. 1. + 13222. 1. 5. 42.0 23.0 2.0 3. 12.0 20.0 2. 4. 0.0 0. 1. + 13224. 1. 4. 32.0 13.0 1.0 3. 14.0 20.0 4. 4. 0.0 0. 1. + 13226. 1. 5. 42.0 23.0 5.5 3. 12.0 20.0 3. 5. 0.0 0. 1. + 13227. 1. 5. 22.0 0.5 0.0 3. 16.0 14.0 3. 2. 0.0 0. 1. + 13229. 1. 5. 27.0 2.5 1.0 1. 14.0 20.0 3. 5. 0.0 0. 1. + 13232. 1. 3. 27.0 9.0 1.0 2. 12.0 14.0 3. 4. 0.0 0. 1. + 13233. 1. 5. 42.0 13.0 5.5 2. 12.0 14.0 3. 5. 0.0 0. 1. + 13238. 1. 4. 27.0 6.0 1.0 3. 12.0 11.5 3. 2. 0.0 0. 1. + 13244. 1. 5. 22.0 2.5 0.0 3. 14.0 11.5 3. 2. 0.0 0. 1. + 13250. 1. 4. 32.0 13.0 2.0 2. 14.0 14.0 3. 5. 0.0 0. 1. + 13255. 1. 4. 42.0 23.0 2.0 2. 14.0 20.0 3. 4. 0.0 0. 1. + 13261. 1. 4. 37.0 23.0 5.5 4. 12.0 20.0 3. 5. 0.0 0. 1. + 13268. 1. 3. 22.0 2.5 0.0 2. 14.0 6.5 4. 2. 0.0 0. 1. + 13269. 1. 5. 27.0 6.0 2.0 1. 20.0 20.0 5. 5. 0.0 0. 1. + 13285. 1. 4. 27.0 2.5 2.0 2. 16.0 40.0 4. 6. 0.0 0. 1. + 13292. 1. 4. 22.0 0.5 0.0 1. 16.0 20.0 4. 2. 0.0 0. 1. + 13302. 1. 2. 32.0 16.5 4.0 2. 14.0 14.0 4. 2. 0.0 0. 1. + 13303. 1. 5. 22.0 2.5 0.0 2. 14.0 11.5 3. 4. 0.0 0. 1. + 13308. 1. 5. 22.0 2.5 0.0 4. 16.0 6.5 2. 4. 0.0 0. 1. + 13313. 1. 2. 27.0 2.5 2.0 4. 12.0 11.5 2. 4. 0.0 0. 1. + 13321. 1. 4. 27.0 2.5 1.0 2. 14.0 11.5 5. 2. 0.0 0. 1. + 13325. 1. 5. 22.0 2.5 0.0 3. 16.0 14.0 3. 4. 0.0 0. 1. + 13331. 1. 5. 27.0 16.5 3.0 2. 14.0 11.5 2. 4. 0.0 0. 1. + 13336. 1. 4. 22.0 2.5 0.0 4. 16.0 20.0 3. 3. 0.0 0. 1. + 13338. 1. 5. 42.0 23.0 5.5 4. 14.0 14.0 3. 5. 0.0 0. 1. + 13341. 1. 3. 27.0 6.0 3.0 3. 14.0 14.0 4. 2. 0.0 0. 1. + 13351. 1. 5. 27.0 2.5 2.0 1. 14.0 40.0 4. 6. 0.0 0. 1. + 13366. 1. 5. 27.0 6.0 1.0 3. 14.0 20.0 5. 5. 0.0 0. 1. + 13371. 1. 4. 27.0 16.5 2.0 3. 14.0 20.0 3. 5. 0.0 0. 1. + 13374. 1. 2. 27.0 2.5 1.0 2. 14.0 11.5 3. 3. 0.0 0. 1. + 13375. 1. 2. 32.0 13.0 2.0 1. 12.0 14.0 2. 2. 0.0 0. 1. + 13385. 1. 5. 37.0 16.5 5.5 2. 12.0 20.0 3. 5. 0.0 0. 1. + 13386. 1. 5. 42.0 23.0 3.0 3. 12.0 6.5 2. 2. 0.0 0. 1. + 13397. 1. 4. 42.0 23.0 2.0 2. 14.0 20.0 3. 3. 0.0 0. 1. + 13401. 1. 5. 22.0 2.5 1.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 13417. 1. 5. 27.0 13.0 2.0 2. 14.0 20.0 3. 4. 0.0 0. 1. + 13424. 1. 5. 32.0 6.0 2.0 4. 20.0 20.0 6. 6. 0.0 0. 1. + 13427. 1. 4. 42.0 23.0 4.0 4. 14.0 14.0 4. 4. 0.0 0. 1. + 13434. 1. 5. 37.0 16.5 2.0 2. 14.0 14.0 3. 5. 0.0 0. 1. + 13435. 1. 4. 22.0 2.5 0.0 1. 12.0 20.0 3. 3. 0.0 0. 1. + 13446. 1. 4. 22.0 2.5 0.0 4. 14.0 20.0 3. 5. 0.0 0. 1. + 13448. 1. 3. 22.0 6.0 1.0 3. 12.0 11.5 3. 2. 0.0 0. 1. + 13453. 1. 4. 27.0 6.0 2.0 3. 14.0 11.5 3. 3. 0.0 0. 1. + 13454. 1. 4. 37.0 16.5 3.0 3. 14.0 11.5 4. 3. 0.0 0. 1. + 13458. 1. 2. 42.0 13.0 0.0 2. 12.0 6.5 3. 4. 0.0 0. 1. + 13460. 1. 5. 27.0 2.5 0.0 3. 14.0 11.5 3. 3. 0.0 0. 1. + 13468. 1. 4. 27.0 6.0 1.0 3. 14.0 9.0 3. 4. 0.0 0. 1. + 13474. 1. 4. 27.0 9.0 2.0 2. 12.0 11.5 3. 5. 0.0 0. 1. + 13475. 1. 5. 22.0 2.5 0.0 1. 16.0 11.5 6. 4. 0.0 0. 1. + 13479. 1. 4. 42.0 23.0 3.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 13488. 1. 4. 32.0 9.0 3.0 2. 16.0 20.0 3. 5. 0.0 0. 1. + 13489. 1. 4. 22.0 2.5 0.0 2. 14.0 20.0 3. 2. 0.0 0. 1. + 13490. 1. 4. 27.0 6.0 2.0 4. 17.0 6.5 4. 2. 0.0 0. 1. + 13502. 1. 5. 27.0 2.5 0.0 3. 20.0 40.0 5. 6. 0.0 0. 1. + 13503. 1. 5. 27.0 6.0 0.0 4. 14.0 9.0 3. 4. 0.0 0. 1. + 13506. 1. 5. 37.0 16.5 2.0 2. 12.0 11.5 3. 4. 0.0 0. 1. + 13508. 1. 4. 37.0 16.5 2.0 2. 14.0 14.0 4. 4. 0.0 0. 1. + 13519. 1. 4. 27.0 2.5 0.0 1. 17.0 6.5 4. 1. 0.0 0. 1. + 13528. 1. 4. 27.0 13.0 2.0 2. 12.0 6.5 3. 4. 0.0 0. 1. + 13530. 1. 3. 22.0 2.5 0.0 1. 12.0 20.0 3. 4. 0.0 0. 1. + 13538. 1. 3. 37.0 16.5 2.0 3. 12.0 20.0 3. 4. 0.0 0. 1. + 13540. 1. 3. 22.0 2.5 0.0 1. 14.0 6.5 3. 1. 0.0 0. 1. + 13541. 1. 4. 27.0 2.5 1.0 1. 17.0 9.0 4. 4. 0.0 0. 1. + 13546. 1. 5. 32.0 13.0 2.0 3. 12.0 20.0 3. 5. 0.0 0. 1. + 13555. 1. 5. 42.0 13.0 0.0 3. 12.0 20.0 5. 2. 0.0 0. 1. + 13556. 1. 4. 42.0 23.0 2.0 2. 12.0 11.5 4. 4. 0.0 0. 1. + 13557. 1. 4. 27.0 9.0 2.0 2. 14.0 14.0 2. 3. 0.0 0. 1. + 13561. 1. 5. 22.0 2.5 0.0 1. 14.0 6.5 3. 1. 0.0 0. 1. + 13562. 1. 5. 27.0 6.0 2.0 3. 16.0 20.0 5. 4. 0.0 0. 1. + 13569. 1. 3. 22.0 2.5 1.0 4. 14.0 11.5 2. 2. 0.0 0. 1. + 13571. 1. 4. 32.0 16.5 3.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 13577. 1. 5. 27.0 2.5 1.0 3. 17.0 9.0 1. 6. 0.0 0. 1. + 13581. 1. 4. 27.0 6.0 0.0 2. 17.0 11.5 4. 4. 0.0 0. 1. + 13583. 1. 5. 42.0 23.0 3.0 3. 14.0 40.0 3. 5. 0.0 0. 1. + 13587. 1. 5. 27.0 2.5 0.0 1. 20.0 20.0 4. 5. 0.0 0. 1. + 13588. 1. 4. 37.0 16.5 4.0 2. 14.0 11.5 1. 4. 0.0 0. 1. + 13594. 1. 5. 17.5 0.5 0.0 3. 12.0 14.0 3. 4. 0.0 0. 1. + 13599. 1. 5. 42.0 23.0 3.0 1. 20.0 40.0 4. 6. 0.0 0. 1. + 13600. 1. 5. 32.0 13.0 2.0 4. 14.0 11.5 3. 5. 0.0 0. 1. + 13627. 1. 4. 37.0 16.5 4.0 2. 14.0 20.0 2. 4. 0.0 0. 1. + 13630. 1. 5. 32.0 16.5 2.0 2. 14.0 14.0 3. 4. 0.0 0. 1. + 13634. 1. 5. 32.0 9.0 2.0 2. 12.0 14.0 4. 2. 0.0 0. 1. + 13636. 1. 5. 42.0 23.0 5.5 3. 12.0 20.0 5. 4. 0.0 0. 1. + 13645. 1. 5. 42.0 23.0 5.5 1. 12.0 20.0 3. 5. 0.0 0. 1. + 13651. 1. 5. 27.0 6.0 0.0 1. 12.0 20.0 3. 4. 0.0 0. 1. + 13654. 1. 4. 27.0 6.0 0.0 2. 14.0 40.0 2. 2. 0.0 0. 1. + 13657. 1. 4. 22.0 6.0 2.0 2. 12.0 9.0 2. 4. 0.0 0. 1. + 13662. 1. 5. 22.0 0.5 0.0 3. 12.0 6.5 2. 2. 0.0 0. 1. + 13663. 1. 3. 32.0 6.0 0.0 1. 20.0 14.0 4. 2. 0.0 0. 1. + 13667. 1. 5. 37.0 16.5 3.0 3. 16.0 20.0 4. 4. 0.0 0. 1. + 13669. 1. 5. 42.0 23.0 1.0 3. 16.0 20.0 5. 5. 0.0 0. 1. + 13674. 1. 5. 27.0 0.5 0.0 3. 20.0 40.0 4. 4. 0.0 0. 1. + 13675. 1. 4. 27.0 9.0 2.0 1. 12.0 20.0 4. 5. 0.0 0. 1. + 13680. 1. 5. 42.0 23.0 5.5 2. 14.0 40.0 4. 4. 0.0 0. 1. + 13682. 1. 4. 42.0 23.0 3.0 2. 14.0 11.5 3. 3. 0.0 0. 1. + 13683. 1. 4. 37.0 16.5 4.0 3. 14.0 20.0 2. 4. 0.0 0. 1. + 13695. 1. 4. 27.0 9.0 1.0 4. 12.0 20.0 4. 5. 0.0 0. 1. + 13697. 1. 4. 22.0 2.5 0.0 2. 12.0 20.0 3. 3. 0.0 0. 1. + 13698. 1. 5. 32.0 9.0 2.0 2. 16.0 6.5 3. 2. 0.0 0. 1. + 13705. 1. 4. 22.0 2.5 0.0 1. 14.0 40.0 2. 2. 0.0 0. 1. + 13707. 1. 4. 32.0 6.0 1.0 4. 17.0 20.0 4. 6. 0.0 0. 1. + 13708. 1. 5. 22.0 6.0 1.0 2. 12.0 20.0 2. 4. 0.0 0. 1. + 13712. 1. 5. 32.0 13.0 1.0 3. 16.0 20.0 5. 6. 0.0 0. 1. + 13717. 1. 5. 27.0 9.0 0.0 4. 14.0 20.0 3. 5. 0.0 0. 1. + 13718. 1. 5. 27.0 13.0 2.0 3. 17.0 11.5 4. 4. 0.0 0. 1. + 13729. 1. 4. 27.0 6.0 0.0 3. 14.0 20.0 3. 6. 0.0 0. 1. + 13734. 1. 4. 32.0 9.0 2.0 4. 16.0 40.0 4. 5. 0.0 0. 1. + 13736. 1. 4. 37.0 23.0 5.5 2. 14.0 20.0 4. 4. 0.0 0. 1. + 13749. 1. 2. 22.0 6.0 0.0 2. 14.0 14.0 3. 5. 0.0 0. 1. + 13750. 1. 4. 22.0 2.5 0.0 3. 16.0 20.0 4. 3. 0.0 0. 1. + 13757. 1. 3. 27.0 9.0 3.0 4. 14.0 20.0 2. 2. 0.0 0. 1. + 13761. 1. 5. 37.0 16.5 3.0 3. 14.0 20.0 3. 3. 0.0 0. 1. + 13763. 1. 3. 37.0 23.0 4.0 2. 14.0 20.0 5. 4. 0.0 0. 1. + 13764. 1. 1. 42.0 13.0 2.0 1. 14.0 20.0 5. 5. 0.0 0. 1. + 13766. 1. 5. 17.5 0.5 0.0 4. 12.0 11.5 1. 4. 0.0 0. 1. + 13768. 1. 4. 32.0 23.0 3.0 2. 9.0 40.0 2. 6. 0.0 0. 1. + 13769. 1. 5. 37.0 13.0 2.0 2. 16.0 11.5 5. 2. 0.0 0. 1. + 13770. 1. 5. 22.0 2.5 0.0 3. 17.0 20.0 5. 5. 0.0 0. 1. + 13772. 1. 5. 22.0 2.5 1.0 3. 14.0 40.0 3. 5. 0.0 0. 1. + 13773. 1. 4. 42.0 23.0 4.0 2. 14.0 20.0 6. 2. 0.0 0. 1. + 13774. 1. 2. 42.0 16.5 2.0 3. 14.0 40.0 3. 5. 0.0 0. 1. + 13776. 1. 5. 27.0 2.5 1.0 3. 16.0 11.5 4. 2. 0.0 0. 1. + 13780. 1. 5. 22.0 2.5 0.0 3. 14.0 14.0 3. 4. 0.0 0. 1. + 13783. 1. 4. 27.0 2.5 1.0 2. 14.0 9.0 3. 3. 0.0 0. 1. + 13784. 1. 4. 42.0 23.0 2.0 3. 16.0 40.0 3. 6. 0.0 0. 1. + 13798. 1. 4. 37.0 23.0 3.0 2. 12.0 11.5 2. 2. 0.0 0. 1. + 13809. 1. 4. 32.0 9.0 3.0 3. 16.0 20.0 4. 4. 0.0 0. 1. + 13815. 1. 3. 27.0 6.0 0.0 2. 14.0 6.5 4. 2. 0.0 0. 1. + 13842. 1. 4. 27.0 2.5 0.0 1. 16.0 20.0 4. 2. 0.0 0. 1. + 13846. 1. 4. 27.0 9.0 2.0 3. 14.0 11.5 3. 4. 0.0 0. 1. + 13847. 1. 5. 22.0 2.5 0.0 2. 14.0 9.0 3. 1. 0.0 0. 1. + 13854. 1. 5. 27.0 6.0 2.0 3. 12.0 11.5 2. 2. 0.0 0. 1. + 13857. 1. 4. 27.0 6.0 0.0 4. 9.0 9.0 2. 2. 0.0 0. 1. + 13860. 1. 4. 32.0 13.0 3.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 13864. 1. 1. 42.0 23.0 3.0 3. 12.0 14.0 2. 3. 0.0 0. 1. + 13865. 1. 3. 22.0 2.5 1.0 3. 12.0 6.5 3. 2. 0.0 0. 1. + 13867. 1. 4. 27.0 16.5 2.0 1. 12.0 20.0 2. 4. 0.0 0. 1. + 13869. 1. 3. 22.0 2.5 0.0 3. 14.0 11.5 4. 5. 0.0 0. 1. + 13873. 1. 4. 22.0 2.5 1.0 1. 14.0 6.5 4. 4. 0.0 0. 1. + 13876. 1. 5. 27.0 6.0 2.0 2. 14.0 20.0 1. 2. 0.0 0. 1. + 13878. 1. 4. 27.0 9.0 4.0 3. 14.0 14.0 2. 5. 0.0 0. 1. + 13884. 1. 4. 22.0 0.5 0.0 3. 17.0 11.5 4. 1. 0.0 0. 1. + 13886. 1. 4. 27.0 2.5 1.0 3. 16.0 9.0 4. 2. 0.0 0. 1. + 13894. 1. 5. 22.0 2.5 1.0 2. 14.0 6.5 2. 2. 0.0 0. 1. + 13897. 1. 5. 22.0 0.5 0.0 3. 14.0 9.0 3. 5. 0.0 0. 1. + 13906. 1. 5. 32.0 16.5 4.0 2. 14.0 20.0 4. 6. 0.0 0. 1. + 13908. 1. 4. 22.0 2.5 0.0 1. 16.0 20.0 2. 5. 0.0 0. 1. + 13911. 1. 3. 27.0 9.0 2.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 13912. 1. 5. 22.0 0.5 0.0 3. 17.0 20.0 4. 5. 0.0 0. 1. + 13918. 1. 4. 42.0 13.0 2.0 3. 16.0 20.0 5. 5. 0.0 0. 1. + 13922. 1. 5. 27.0 2.5 0.0 3. 16.0 20.0 4. 5. 0.0 0. 1. + 13927. 1. 4. 27.0 6.0 0.0 3. 16.0 20.0 4. 2. 0.0 0. 1. + 13933. 1. 5. 22.0 2.5 1.0 1. 16.0 9.0 3. 2. 0.0 0. 1. + 13938. 1. 5. 32.0 16.5 2.0 2. 14.0 40.0 5. 5. 0.0 0. 1. + 13944. 1. 5. 27.0 6.0 0.0 3. 12.0 9.0 3. 2. 0.0 0. 1. + 13952. 1. 5. 37.0 16.5 2.0 1. 14.0 11.5 5. 2. 0.0 0. 1. + 13957. 1. 3. 27.0 6.0 0.0 2. 16.0 11.5 5. 4. 0.0 0. 1. + 13958. 1. 5. 32.0 9.0 2.0 2. 12.0 20.0 3. 2. 0.0 0. 1. + 13968. 1. 4. 27.0 13.0 2.0 1. 14.0 20.0 4. 4. 0.0 0. 1. + 13970. 1. 5. 22.0 2.5 0.0 1. 12.0 9.0 2. 4. 0.0 0. 1. + 13971. 1. 5. 27.0 2.5 0.0 3. 14.0 20.0 3. 5. 0.0 0. 1. + 13976. 1. 2. 22.0 2.5 1.0 3. 16.0 9.0 3. 2. 0.0 0. 1. + 13977. 1. 5. 42.0 13.0 1.0 3. 12.0 40.0 2. 6. 0.0 0. 1. + 13983. 1. 3. 32.0 16.5 3.0 3. 14.0 20.0 3. 5. 0.0 0. 1. + 13985. 1. 4. 27.0 6.0 2.0 2. 14.0 20.0 2. 3. 0.0 0. 1. + 13988. 1. 5. 42.0 23.0 2.0 2. 14.0 20.0 3. 2. 0.0 0. 1. + 13989. 1. 4. 42.0 23.0 3.0 4. 16.0 20.0 3. 5. 0.0 0. 1. + 13990. 1. 4. 37.0 16.5 1.0 2. 12.0 11.5 2. 4. 0.0 0. 1. + 14009. 1. 4. 32.0 16.5 3.0 4. 12.0 11.5 2. 2. 0.0 0. 1. + 14013. 1. 5. 22.0 2.5 2.0 1. 14.0 40.0 3. 4. 0.0 0. 1. + 14014. 1. 3. 27.0 6.0 0.0 1. 14.0 14.0 3. 4. 0.0 0. 1. + 14018. 1. 5. 32.0 16.5 3.0 1. 12.0 11.5 2. 5. 0.0 0. 1. + 14019. 1. 5. 27.0 9.0 2.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 14024. 1. 5. 27.0 6.0 2.0 2. 12.0 11.5 2. 2. 0.0 0. 1. + 14026. 1. 4. 27.0 6.0 1.0 2. 14.0 14.0 4. 5. 0.0 0. 1. + 14059. 1. 5. 27.0 16.5 1.0 2. 14.0 20.0 3. 2. 0.0 0. 1. + 14061. 1. 5. 17.5 0.5 0.0 3. 14.0 11.5 3. 5. 0.0 0. 1. + 14064. 1. 4. 42.0 23.0 2.0 1. 12.0 20.0 3. 4. 0.0 0. 1. + 14068. 1. 4. 37.0 16.5 3.0 1. 12.0 20.0 4. 4. 0.0 0. 1. + 14070. 1. 5. 42.0 23.0 3.0 2. 14.0 20.0 5. 4. 0.0 0. 1. + 14072. 1. 5. 27.0 2.5 0.0 1. 16.0 14.0 3. 2. 0.0 0. 1. + 14076. 1. 4. 37.0 23.0 3.0 2. 12.0 20.0 3. 5. 0.0 0. 1. + 14087. 1. 5. 27.0 2.5 0.0 2. 14.0 14.0 5. 1. 0.0 0. 1. + 14088. 1. 3. 17.5 2.5 0.0 2. 12.0 11.5 1. 2. 0.0 0. 1. + 14093. 1. 4. 42.0 23.0 1.0 3. 12.0 20.0 3. 3. 0.0 0. 1. + 14095. 1. 5. 22.0 2.5 0.0 2. 14.0 11.5 3. 4. 0.0 0. 1. + 14100. 1. 3. 22.0 2.5 1.0 3. 14.0 14.0 5. 4. 0.0 0. 1. + 14101. 1. 5. 17.5 0.5 0.0 1. 12.0 11.5 3. 2. 0.0 0. 1. + 14102. 1. 5. 32.0 6.0 1.0 1. 17.0 14.0 4. 6. 0.0 0. 1. + 14104. 1. 3. 27.0 2.5 0.0 1. 17.0 20.0 4. 2. 0.0 0. 1. + 14109. 1. 3. 37.0 16.5 3.0 4. 14.0 20.0 4. 6. 0.0 0. 1. + 14116. 1. 5. 22.0 2.5 0.0 2. 16.0 20.0 4. 5. 0.0 0. 1. + 14123. 1. 5. 22.0 2.5 0.0 2. 16.0 20.0 4. 4. 0.0 0. 1. + 14127. 1. 5. 32.0 16.5 3.0 4. 14.0 40.0 4. 5. 0.0 0. 1. + 14129. 1. 4. 27.0 6.0 1.0 1. 14.0 11.5 3. 5. 0.0 0. 1. + 14130. 1. 4. 22.0 0.5 0.0 3. 16.0 9.0 4. 1. 0.0 0. 1. + 14136. 1. 4. 22.0 2.5 0.0 4. 14.0 14.0 3. 5. 0.0 0. 1. + 14144. 1. 4. 32.0 16.5 2.0 3. 12.0 20.0 3. 4. 0.0 0. 1. + 14145. 1. 4. 22.0 2.5 0.0 1. 12.0 14.0 2. 4. 0.0 0. 1. + 14152. 1. 3. 27.0 2.5 0.0 2. 12.0 9.0 3. 1. 0.0 0. 1. + 14153. 1. 4. 22.0 2.5 0.0 1. 16.0 6.5 3. 4. 0.0 0. 1. + 14159. 1. 4. 27.0 6.0 1.0 2. 14.0 20.0 5. 5. 0.0 0. 1. + 14164. 1. 4. 32.0 16.5 4.0 4. 14.0 40.0 3. 5. 0.0 0. 1. + 14165. 1. 1. 27.0 6.0 0.0 2. 14.0 20.0 4. 5. 0.0 0. 1. + 14167. 1. 5. 27.0 6.0 2.0 4. 14.0 20.0 3. 2. 0.0 0. 1. + 14169. 1. 5. 32.0 16.5 3.0 1. 12.0 20.0 2. 5. 0.0 0. 1. + 14178. 1. 5. 22.0 2.5 0.0 3. 12.0 14.0 5. 4. 0.0 0. 1. + 14179. 1. 4. 27.0 0.5 0.0 2. 14.0 14.0 3. 5. 0.0 0. 1. + 14183. 1. 4. 17.5 2.5 1.0 1. 12.0 6.5 2. 4. 0.0 0. 1. + 14184. 1. 5. 42.0 23.0 2.0 3. 14.0 20.0 3. 5. 0.0 0. 1. + 14185. 1. 4. 37.0 9.0 1.0 3. 12.0 14.0 2. 5. 0.0 0. 1. + 14188. 1. 5. 42.0 23.0 3.0 3. 16.0 11.5 3. 3. 0.0 0. 1. + 14189. 1. 5. 22.0 2.5 0.0 2. 14.0 6.5 1. 4. 0.0 0. 1. + 14192. 1. 5. 42.0 23.0 3.0 3. 12.0 14.0 4. 5. 0.0 0. 1. + 14203. 1. 3. 22.0 2.5 0.0 4. 14.0 14.0 3. 5. 0.0 0. 1. + 14214. 1. 5. 27.0 9.0 2.0 2. 12.0 14.0 3. 3. 0.0 0. 1. + 14215. 1. 4. 37.0 16.5 2.0 4. 14.0 14.0 4. 4. 0.0 0. 1. + 14219. 1. 4. 42.0 23.0 3.0 1. 12.0 20.0 3. 5. 0.0 0. 1. + 14220. 1. 4. 27.0 16.5 2.0 3. 16.0 9.0 3. 4. 0.0 0. 1. + 14224. 1. 5. 32.0 2.5 0.0 4. 17.0 40.0 5. 4. 0.0 0. 1. + 14225. 1. 5. 27.0 9.0 1.0 2. 12.0 20.0 3. 5. 0.0 0. 1. + 14228. 1. 5. 27.0 6.0 0.0 1. 14.0 11.5 3. 4. 0.0 0. 1. + 14229. 1. 1. 37.0 13.0 2.0 1. 17.0 20.0 4. 4. 0.0 0. 1. + 14230. 1. 2. 17.5 0.5 0.0 2. 12.0 20.0 3. 2. 0.0 0. 1. + 14243. 1. 5. 27.0 6.0 2.0 2. 14.0 11.5 3. 3. 0.0 0. 1. + 14251. 1. 4. 42.0 23.0 3.0 2. 12.0 40.0 5. 6. 0.0 0. 1. + 14254. 1. 5. 32.0 23.0 3.0 2. 12.0 14.0 3. 4. 0.0 0. 1. + 14256. 1. 4. 32.0 13.0 3.0 2. 14.0 20.0 4. 6. 0.0 0. 1. + 14258. 1. 4. 17.5 0.5 0.0 2. 16.0 9.0 4. 4. 0.0 0. 1. + 14259. 1. 5. 27.0 0.5 0.0 3. 14.0 40.0 2. 2. 0.0 0. 1. + 14260. 1. 4. 27.0 6.0 0.0 2. 16.0 14.0 4. 4. 0.0 0. 1. + 14262. 1. 5. 32.0 13.0 3.0 3. 16.0 20.0 4. 5. 0.0 0. 1. + 14266. 1. 4. 22.0 2.5 0.0 1. 17.0 20.0 4. 5. 0.0 0. 1. + 14279. 1. 5. 32.0 2.5 0.0 1. 20.0 11.5 2. 1. 0.0 0. 1. + 14281. 1. 2. 32.0 16.5 3.0 4. 12.0 9.0 5. 5. 0.0 0. 1. + 14282. 1. 3. 32.0 9.0 0.0 4. 20.0 20.0 4. 4. 0.0 0. 1. + 14290. 1. 3. 22.0 0.5 0.0 2. 17.0 9.0 1. 5. 0.0 0. 1. + 14301. 1. 4. 27.0 9.0 2.0 2. 12.0 11.5 3. 2. 0.0 0. 1. + 14313. 1. 5. 42.0 23.0 3.0 3. 12.0 40.0 5. 4. 0.0 0. 1. + 14321. 1. 5. 22.0 2.5 0.0 3. 16.0 20.0 4. 5. 0.0 0. 1. + 14333. 1. 5. 22.0 2.5 1.0 1. 14.0 11.5 2. 2. 0.0 0. 1. + 14341. 1. 5. 42.0 23.0 3.0 2. 12.0 40.0 5. 5. 0.0 0. 1. + 14352. 1. 5. 37.0 16.5 4.0 3. 20.0 40.0 4. 4. 0.0 0. 1. + 14355. 1. 4. 22.0 2.5 1.0 3. 12.0 9.0 3. 4. 0.0 0. 1. + 14369. 1. 3. 27.0 6.0 1.0 1. 17.0 40.0 5. 6. 0.0 0. 1. + 14377. 1. 2. 27.0 2.5 0.0 3. 12.0 40.0 3. 2. 0.0 0. 1. + 14379. 1. 4. 22.0 6.0 2.0 2. 12.0 14.0 4. 4. 0.0 0. 1. + 14380. 1. 5. 27.0 9.0 0.0 1. 17.0 40.0 4. 6. 0.0 0. 1. + 14384. 1. 4. 22.0 2.5 2.0 2. 12.0 11.5 3. 2. 0.0 0. 1. + 14390. 1. 4. 22.0 2.5 1.0 2. 12.0 11.5 3. 1. 0.0 0. 1. + 14403. 1. 4. 42.0 23.0 2.0 2. 12.0 20.0 2. 5. 0.0 0. 1. + 14406. 1. 3. 32.0 6.0 0.0 1. 16.0 14.0 4. 4. 0.0 0. 1. + 14413. 1. 5. 22.0 2.5 1.0 3. 17.0 20.0 4. 4. 0.0 0. 1. + 14418. 1. 5. 22.0 2.5 0.0 2. 12.0 6.5 4. 1. 0.0 0. 1. + 14427. 1. 4. 37.0 23.0 2.0 3. 20.0 20.0 4. 4. 0.0 0. 1. + 14431. 1. 3. 27.0 6.0 1.0 2. 12.0 11.5 4. 2. 0.0 0. 1. + 14438. 1. 5. 32.0 13.0 3.0 2. 14.0 20.0 4. 5. 0.0 0. 1. + 14446. 1. 4. 32.0 16.5 2.0 2. 14.0 11.5 3. 4. 0.0 0. 1. + 14447. 1. 5. 42.0 23.0 3.0 2. 14.0 20.0 3. 4. 0.0 0. 1. + 14448. 1. 4. 32.0 13.0 2.0 4. 14.0 20.0 2. 4. 0.0 0. 1. + 14452. 1. 4. 32.0 6.0 0.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 14468. 1. 4. 42.0 23.0 2.0 3. 14.0 40.0 5. 5. 0.0 0. 1. + 14471. 1. 5. 22.0 2.5 0.0 2. 14.0 11.5 3. 2. 0.0 0. 1. + 14474. 1. 4. 27.0 6.0 0.0 1. 16.0 20.0 3. 2. 0.0 0. 1. + 14482. 1. 5. 27.0 2.5 0.0 4. 14.0 9.0 3. 6. 0.0 0. 1. + 14489. 1. 2. 22.0 2.5 0.0 3. 16.0 4.0 4. 5. 0.0 0. 1. + 14491. 1. 5. 27.0 6.0 1.0 2. 16.0 14.0 4. 6. 0.0 0. 1. + 14508. 1. 5. 27.0 6.0 0.0 2. 17.0 20.0 4. 6. 0.0 0. 1. + 14511. 1. 5. 27.0 6.0 1.0 2. 12.0 11.5 5. 5. 0.0 0. 1. + 14516. 1. 4. 22.0 2.5 0.0 2. 16.0 11.5 3. 4. 0.0 0. 1. + 14520. 1. 4. 27.0 9.0 1.0 1. 14.0 20.0 3. 4. 0.0 0. 1. + 14522. 1. 4. 32.0 6.0 2.0 1. 17.0 20.0 4. 4. 0.0 0. 1. + 14528. 1. 5. 22.0 0.5 0.0 2. 14.0 6.5 3. 1. 0.0 0. 1. + 14532. 1. 5. 22.0 2.5 2.0 3. 14.0 11.5 4. 4. 0.0 0. 1. + 14537. 1. 4. 22.0 2.5 0.0 3. 12.0 11.5 3. 4. 0.0 0. 1. + 14539. 1. 4. 32.0 16.5 2.0 2. 9.0 11.5 3. 5. 0.0 0. 1. + 14541. 1. 5. 27.0 6.0 0.0 1. 14.0 40.0 3. 5. 0.0 0. 1. + 14542. 1. 5. 22.0 6.0 2.0 3. 12.0 14.0 2. 4. 0.0 0. 1. + 14546. 1. 5. 22.0 2.5 1.0 3. 16.0 20.0 4. 5. 0.0 0. 1. + 14565. 1. 4. 27.0 2.5 0.0 3. 17.0 20.0 4. 4. 0.0 0. 1. + 14569. 1. 5. 27.0 2.5 0.0 4. 20.0 20.0 4. 4. 0.0 0. 1. + 14570. 1. 5. 27.0 6.0 2.0 4. 12.0 20.0 2. 5. 0.0 0. 1. + 14572. 1. 5. 22.0 0.5 0.0 2. 14.0 11.5 2. 5. 0.0 0. 1. + 14578. 1. 5. 22.0 2.5 2.0 2. 12.0 6.5 2. 2. 0.0 0. 1. + 14580. 1. 5. 27.0 2.5 0.0 4. 14.0 20.0 3. 4. 0.0 0. 1. + 14585. 1. 5. 22.0 2.5 0.0 2. 14.0 11.5 3. 3. 0.0 0. 1. + 14588. 1. 5. 17.5 0.5 0.0 4. 12.0 6.5 2. 4. 0.0 0. 1. + 14589. 1. 5. 32.0 13.0 2.0 2. 14.0 11.5 5. 4. 0.0 0. 1. + 14598. 1. 3. 27.0 6.0 0.0 2. 12.0 20.0 5. 5. 0.0 0. 1. + 14603. 1. 4. 37.0 16.5 3.0 3. 12.0 40.0 3. 5. 0.0 0. 1. + 14612. 1. 5. 32.0 13.0 2.0 2. 17.0 14.0 4. 3. 0.0 0. 1. + 14621. 1. 4. 22.0 2.5 1.0 3. 14.0 20.0 4. 4. 0.0 0. 1. + 14623. 1. 5. 27.0 2.5 0.0 2. 14.0 20.0 5. 5. 0.0 0. 1. + 14627. 1. 5. 32.0 9.0 2.0 4. 16.0 11.5 4. 5. 0.0 0. 1. + 14630. 1. 4. 27.0 6.0 1.0 2. 14.0 11.5 2. 2. 0.0 0. 1. + 14642. 1. 4. 27.0 6.0 1.0 2. 14.0 11.5 2. 3. 0.0 0. 1. + 14643. 1. 5. 32.0 2.5 0.0 3. 14.0 11.5 4. 4. 0.0 0. 1. + 14649. 1. 5. 22.0 0.5 0.0 1. 14.0 20.0 5. 6. 0.0 0. 1. + 14653. 1. 4. 27.0 2.5 0.0 2. 14.0 20.0 2. 2. 0.0 0. 1. + 14654. 1. 4. 22.0 2.5 0.0 3. 16.0 11.5 4. 1. 0.0 0. 1. + 14664. 1. 5. 42.0 16.5 3.0 3. 14.0 20.0 3. 4. 0.0 0. 1. + 14669. 1. 5. 42.0 16.5 2.0 4. 14.0 20.0 3. 4. 0.0 0. 1. + 14676. 1. 5. 22.0 0.5 0.0 3. 14.0 9.0 3. 3. 0.0 0. 1. + 14677. 1. 4. 22.0 2.5 1.0 1. 14.0 11.5 2. 5. 0.0 0. 1. + 14686. 1. 5. 42.0 23.0 5.5 2. 12.0 20.0 2. 2. 0.0 0. 1. + 14693. 1. 5. 27.0 2.5 0.0 2. 16.0 14.0 3. 6. 0.0 0. 1. + 14699. 1. 5. 22.0 2.5 0.0 2. 14.0 20.0 3. 3. 0.0 0. 1. + 14700. 1. 4. 22.0 0.5 0.0 3. 14.0 20.0 3. 5. 0.0 0. 1. + 14701. 1. 5. 27.0 6.0 0.0 2. 14.0 11.5 4. 1. 0.0 0. 1. + 14706. 1. 5. 27.0 6.0 0.0 4. 17.0 20.0 4. 4. 0.0 0. 1. + 14713. 1. 5. 37.0 23.0 2.0 3. 17.0 20.0 4. 4. 0.0 0. 1. + 14715. 1. 4. 27.0 6.0 2.0 3. 14.0 11.5 4. 4. 0.0 0. 1. + 14719. 1. 4. 22.0 2.5 0.0 1. 12.0 20.0 3. 3. 0.0 0. 1. + 14723. 1. 5. 37.0 13.0 2.0 2. 14.0 14.0 5. 2. 0.0 0. 1. + 14726. 1. 4. 17.5 0.5 0.0 4. 12.0 6.5 2. 5. 0.0 0. 1. + 14728. 1. 4. 22.0 2.5 1.0 1. 14.0 20.0 3. 2. 0.0 0. 1. + 14730. 1. 5. 27.0 2.5 0.0 1. 17.0 11.5 4. 5. 0.0 0. 1. + 14735. 1. 5. 22.0 2.5 0.0 2. 14.0 11.5 3. 4. 0.0 0. 1. + 14737. 1. 4. 27.0 6.0 1.0 3. 16.0 11.5 3. 1. 0.0 0. 1. + 14743. 1. 5. 22.0 2.5 0.0 3. 16.0 20.0 3. 2. 0.0 0. 1. + 14757. 1. 1. 42.0 23.0 4.0 3. 14.0 20.0 3. 5. 0.0 0. 1. + 14760. 1. 4. 27.0 6.0 1.0 3. 12.0 20.0 3. 3. 0.0 0. 1. + 14767. 1. 5. 22.0 2.5 0.0 1. 14.0 20.0 3. 5. 0.0 0. 1. + 14774. 1. 4. 27.0 6.0 1.0 3. 16.0 14.0 4. 4. 0.0 0. 1. + 14779. 1. 4. 22.0 2.5 0.0 1. 12.0 9.0 3. 2. 0.0 0. 1. + 14784. 1. 5. 22.0 2.5 0.0 2. 12.0 9.0 4. 2. 0.0 0. 1. + 14791. 1. 4. 22.0 2.5 0.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 14802. 1. 5. 17.5 0.5 0.0 1. 14.0 14.0 3. 5. 0.0 0. 1. + 14808. 1. 3. 37.0 16.5 3.0 4. 17.0 20.0 4. 5. 0.0 0. 1. + 14811. 1. 4. 32.0 2.5 1.0 3. 17.0 20.0 4. 3. 0.0 0. 1. + 14812. 1. 5. 32.0 16.5 3.0 3. 14.0 20.0 4. 5. 0.0 0. 1. + 14815. 1. 5. 22.0 6.0 2.0 2. 12.0 20.0 2. 5. 0.0 0. 1. + 14823. 1. 4. 27.0 6.0 0.0 2. 16.0 6.5 3. 6. 0.0 0. 1. + 14827. 1. 5. 22.0 2.5 0.0 2. 16.0 20.0 3. 4. 0.0 0. 1. + 14836. 1. 4. 22.0 2.5 0.0 2. 12.0 14.0 5. 2. 0.0 0. 1. + 14839. 1. 4. 22.0 6.0 3.0 2. 12.0 9.0 2. 2. 0.0 0. 1. + 14846. 1. 2. 42.0 16.5 2.0 3. 16.0 14.0 4. 2. 0.0 0. 1. + 14858. 1. 4. 27.0 6.0 1.0 2. 16.0 20.0 4. 5. 0.0 0. 1. + 14867. 1. 5. 32.0 13.0 2.0 2. 16.0 11.5 4. 4. 0.0 0. 1. + 14876. 1. 5. 27.0 6.0 1.0 2. 14.0 9.0 3. 1. 0.0 0. 1. + 14877. 1. 4. 22.0 0.5 0.0 3. 14.0 6.5 3. 1. 0.0 0. 1. + 14882. 1. 5. 32.0 16.5 3.0 4. 16.0 40.0 5. 6. 0.0 0. 1. + 14887. 1. 4. 27.0 6.0 0.0 1. 16.0 20.0 4. 4. 0.0 0. 1. + 14902. 1. 5. 27.0 6.0 1.0 2. 14.0 20.0 5. 4. 0.0 0. 1. + 14928. 1. 5. 32.0 13.0 3.0 2. 14.0 9.0 4. 6. 0.0 0. 1. + 14939. 1. 5. 22.0 2.5 0.0 1. 14.0 40.0 3. 5. 0.0 0. 1. + 14941. 1. 3. 27.0 2.5 2.0 2. 14.0 9.0 3. 1. 0.0 0. 1. + 14956. 1. 5. 27.0 6.0 0.0 2. 14.0 11.5 4. 6. 0.0 0. 1. + 14960. 1. 3. 22.0 0.5 0.0 1. 16.0 20.0 3. 3. 0.0 0. 1. + 14962. 1. 5. 27.0 6.0 1.0 2. 17.0 11.5 4. 4. 0.0 0. 1. + 14963. 1. 5. 27.0 2.5 0.0 3. 20.0 20.0 4. 5. 0.0 0. 1. + 14967. 1. 5. 32.0 16.5 4.0 4. 14.0 14.0 3. 3. 0.0 0. 1. + 14972. 1. 4. 42.0 23.0 4.0 2. 12.0 14.0 3. 4. 0.0 0. 1. + 14976. 1. 3. 27.0 9.0 2.0 1. 12.0 14.0 2. 4. 0.0 0. 1. + 14978. 1. 5. 32.0 16.5 2.0 3. 12.0 14.0 3. 4. 0.0 0. 1. + 14983. 1. 2. 42.0 23.0 2.0 1. 14.0 20.0 2. 2. 0.0 0. 1. + 14987. 1. 5. 37.0 16.5 2.0 1. 12.0 40.0 2. 5. 0.0 0. 1. + 14988. 1. 5. 27.0 6.0 1.0 4. 17.0 11.5 4. 6. 0.0 0. 1. + 14995. 1. 4. 37.0 2.5 0.0 3. 12.0 40.0 5. 5. 0.0 0. 1. + 15005. 1. 5. 27.0 2.5 1.0 2. 14.0 11.5 2. 2. 0.0 0. 1. + 15008. 1. 4. 27.0 2.5 0.0 3. 16.0 11.5 4. 4. 0.0 0. 1. + 15014. 1. 5. 27.0 2.5 0.0 4. 14.0 11.5 4. 4. 0.0 0. 1. + 15020. 1. 4. 27.0 9.0 0.0 1. 14.0 20.0 2. 4. 0.0 0. 1. + 15022. 1. 4. 22.0 2.5 0.0 2. 12.0 14.0 3. 2. 0.0 0. 1. + 15023. 1. 4. 22.0 2.5 0.0 2. 14.0 11.5 3. 2. 0.0 0. 1. + 15047. 1. 5. 22.0 2.5 0.0 3. 12.0 11.5 3. 2. 0.0 0. 1. + 15051. 1. 4. 17.5 0.5 0.0 1. 12.0 9.0 3. 1. 0.0 0. 1. + 15056. 1. 4. 27.0 2.5 0.0 3. 17.0 20.0 4. 5. 0.0 0. 1. + 15069. 1. 5. 17.5 0.5 0.0 1. 12.0 9.0 3. 4. 0.0 0. 1. + 15070. 1. 4. 32.0 13.0 2.0 1. 16.0 11.5 4. 4. 0.0 0. 1. + 15072. 1. 4. 27.0 2.5 0.0 2. 12.0 20.0 3. 2. 0.0 0. 1. + 15074. 1. 5. 27.0 9.0 2.0 3. 12.0 14.0 3. 2. 0.0 0. 1. + 15076. 1. 4. 32.0 6.0 1.0 3. 12.0 9.0 3. 4. 0.0 0. 1. + 15078. 1. 3. 27.0 2.5 0.0 2. 20.0 20.0 4. 4. 0.0 0. 1. + 15083. 1. 5. 22.0 0.5 0.0 2. 12.0 9.0 5. 1. 0.0 0. 1. + 15090. 1. 4. 42.0 23.0 2.0 4. 14.0 20.0 3. 5. 0.0 0. 1. + 15105. 1. 5. 22.0 2.5 0.0 1. 16.0 20.0 4. 5. 0.0 0. 1. + 15107. 1. 5. 27.0 6.0 2.0 2. 14.0 11.5 4. 2. 0.0 0. 1. + 15111. 1. 5. 22.0 2.5 1.0 3. 12.0 20.0 3. 4. 0.0 0. 1. + 15112. 1. 5. 27.0 6.0 0.0 2. 16.0 20.0 4. 6. 0.0 0. 1. + 15123. 1. 4. 42.0 23.0 2.0 2. 17.0 20.0 2. 4. 0.0 0. 1. + 15130. 1. 5. 32.0 2.5 0.0 2. 14.0 20.0 2. 6. 0.0 0. 1. + 15135. 1. 5. 22.0 2.5 0.0 1. 14.0 14.0 4. 4. 0.0 0. 1. + 15140. 1. 4. 22.0 2.5 0.0 2. 12.0 14.0 3. 5. 0.0 0. 1. + 15141. 1. 5. 42.0 23.0 5.5 3. 20.0 40.0 4. 6. 0.0 0. 1. + 15150. 1. 5. 27.0 2.5 0.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 15153. 1. 4. 37.0 9.0 0.0 3. 14.0 14.0 4. 4. 0.0 0. 1. + 15168. 1. 3. 27.0 2.5 1.0 3. 17.0 14.0 4. 5. 0.0 0. 1. + 15171. 1. 5. 42.0 23.0 4.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 15176. 1. 4. 22.0 2.5 0.0 2. 14.0 6.5 3. 5. 0.0 0. 1. + 15180. 1. 5. 22.0 2.5 0.0 1. 14.0 14.0 3. 5. 0.0 0. 1. + 15182. 1. 5. 32.0 2.5 1.0 1. 14.0 20.0 4. 6. 0.0 0. 1. + 15185. 1. 3. 27.0 9.0 2.0 4. 12.0 11.5 3. 3. 0.0 0. 1. + 15188. 1. 4. 22.0 0.5 0.0 3. 12.0 20.0 3. 5. 0.0 0. 1. + 15190. 1. 2. 27.0 6.0 1.0 2. 12.0 11.5 3. 2. 0.0 0. 1. + 15194. 1. 5. 42.0 23.0 5.5 3. 14.0 11.5 5. 5. 0.0 0. 1. + 15200. 1. 5. 42.0 23.0 4.0 3. 14.0 20.0 4. 4. 0.0 0. 1. + 15209. 1. 4. 32.0 13.0 3.0 1. 12.0 14.0 3. 5. 0.0 0. 1. + 15212. 1. 5. 22.0 2.5 0.0 1. 16.0 20.0 4. 5. 0.0 0. 1. + 15217. 1. 4. 37.0 16.5 2.0 3. 16.0 20.0 4. 2. 0.0 0. 1. + 15218. 1. 5. 37.0 16.5 4.0 2. 12.0 9.0 3. 5. 0.0 0. 1. + 15229. 1. 2. 27.0 6.0 1.0 3. 14.0 9.0 4. 4. 0.0 0. 1. + 15235. 1. 4. 27.0 6.0 2.0 3. 12.0 14.0 3. 4. 0.0 0. 1. + 15247. 1. 4. 22.0 6.0 0.0 3. 16.0 9.0 3. 2. 0.0 0. 1. + 15249. 1. 5. 27.0 6.0 1.0 2. 14.0 14.0 3. 5. 0.0 0. 1. + 15251. 1. 4. 22.0 2.5 0.0 2. 14.0 4.0 3. 4. 0.0 0. 1. + 15253. 1. 5. 27.0 2.5 0.0 1. 14.0 20.0 2. 5. 0.0 0. 1. + 15256. 1. 4. 22.0 2.5 1.0 3. 12.0 11.5 3. 4. 0.0 0. 1. + 15257. 1. 5. 27.0 6.0 0.0 4. 20.0 20.0 3. 5. 0.0 0. 1. + 15264. 1. 3. 42.0 23.0 3.0 2. 12.0 40.0 5. 5. 0.0 0. 1. + 15268. 1. 4. 22.0 6.0 2.0 3. 9.0 11.5 3. 4. 0.0 0. 1. + 15270. 1. 4. 22.0 2.5 0.0 3. 14.0 11.5 3. 4. 0.0 0. 1. + 15275. 1. 5. 27.0 2.5 0.0 2. 16.0 20.0 4. 2. 0.0 0. 1. + 15276. 1. 5. 22.0 2.5 1.0 4. 14.0 11.5 4. 2. 0.0 0. 1. + 15278. 1. 4. 42.0 16.5 2.0 4. 17.0 40.0 4. 5. 0.0 0. 1. + 15281. 1. 4. 42.0 23.0 5.5 3. 14.0 20.0 5. 3. 0.0 0. 1. + 15286. 1. 4. 27.0 6.0 0.0 1. 14.0 20.0 3. 5. 0.0 0. 1. + 15289. 1. 4. 22.0 6.0 0.0 3. 17.0 14.0 4. 3. 0.0 0. 1. + 15292. 1. 4. 27.0 2.5 0.0 4. 16.0 9.0 3. 4. 0.0 0. 1. + 15294. 1. 4. 27.0 6.0 1.0 1. 17.0 14.0 4. 5. 0.0 0. 1. + 15295. 1. 5. 27.0 2.5 0.0 2. 14.0 20.0 3. 2. 0.0 0. 1. + 15310. 1. 5. 27.0 6.0 2.0 3. 14.0 11.5 3. 3. 0.0 0. 1. + 15311. 1. 5. 32.0 13.0 2.0 3. 14.0 14.0 3. 4. 0.0 0. 1. + 15313. 1. 4. 22.0 2.5 0.0 3. 17.0 11.5 4. 1. 0.0 0. 1. + 15321. 1. 5. 27.0 13.0 2.0 4. 12.0 20.0 3. 5. 0.0 0. 1. + 15343. 1. 5. 22.0 2.5 3.0 3. 14.0 6.5 3. 5. 0.0 0. 1. + 15346. 1. 3. 42.0 23.0 3.0 3. 14.0 14.0 5. 3. 0.0 0. 1. + 15353. 1. 4. 27.0 6.0 1.0 3. 16.0 14.0 4. 4. 0.0 0. 1. + 15354. 1. 5. 22.0 2.5 0.0 2. 17.0 11.5 3. 1. 0.0 0. 1. + 15356. 1. 4. 32.0 16.5 3.0 3. 12.0 14.0 5. 5. 0.0 0. 1. + 15361. 1. 5. 17.5 0.5 0.0 2. 14.0 9.0 3. 6. 0.0 0. 1. + 15364. 1. 4. 22.0 2.5 0.0 4. 14.0 9.0 3. 4. 0.0 0. 1. + 15368. 1. 4. 42.0 16.5 3.0 3. 14.0 20.0 4. 5. 0.0 0. 1. + 15372. 1. 4. 27.0 9.0 1.0 1. 12.0 14.0 2. 4. 0.0 0. 1. + 15377. 1. 4. 22.0 2.5 0.0 2. 14.0 9.0 5. 1. 0.0 0. 1. + 15378. 1. 5. 22.0 2.5 0.0 2. 14.0 11.5 3. 2. 0.0 0. 1. + 15387. 1. 5. 27.0 2.5 0.0 2. 14.0 20.0 2. 6. 0.0 0. 1. + 15390. 1. 4. 22.0 2.5 0.0 4. 20.0 20.0 2. 5. 0.0 0. 1. + 15397. 1. 3. 27.0 6.0 0.0 3. 14.0 40.0 3. 5. 0.0 0. 1. + 15402. 1. 5. 32.0 13.0 2.0 1. 17.0 40.0 5. 6. 0.0 0. 1. + 15404. 1. 5. 37.0 16.5 3.0 2. 14.0 20.0 5. 4. 0.0 0. 1. + 15414. 1. 5. 22.0 2.5 0.0 2. 14.0 11.5 2. 2. 0.0 0. 1. + 15419. 1. 5. 22.0 6.0 1.0 2. 14.0 9.0 4. 4. 0.0 0. 1. + 15420. 1. 3. 27.0 2.5 0.0 1. 16.0 11.5 3. 2. 0.0 0. 1. + 15426. 1. 4. 32.0 13.0 3.0 2. 16.0 40.0 4. 5. 0.0 0. 1. + 15432. 1. 5. 22.0 2.5 0.0 2. 17.0 20.0 4. 5. 0.0 0. 1. + 15435. 1. 5. 37.0 13.0 3.0 3. 16.0 20.0 3. 4. 0.0 0. 1. + 15436. 1. 4. 42.0 23.0 2.0 3. 14.0 20.0 4. 3. 0.0 0. 1. + 15438. 1. 5. 27.0 6.0 0.0 3. 14.0 14.0 4. 4. 0.0 0. 1. + 15439. 1. 4. 22.0 2.5 0.0 3. 16.0 14.0 4. 5. 0.0 0. 1. + 15445. 1. 4. 27.0 2.5 2.0 2. 14.0 11.5 3. 6. 0.0 0. 1. + 15446. 1. 4. 27.0 9.0 3.0 3. 14.0 6.5 3. 2. 0.0 0. 1. + 15452. 1. 4. 27.0 9.0 1.0 2. 14.0 14.0 2. 4. 0.0 0. 1. + 15455. 1. 5. 22.0 2.5 0.0 2. 16.0 20.0 3. 2. 0.0 0. 1. + 15459. 1. 5. 42.0 23.0 1.0 2. 20.0 40.0 6. 4. 0.0 0. 1. + 15461. 1. 4. 27.0 2.5 0.0 3. 20.0 20.0 4. 5. 0.0 0. 1. + 15463. 1. 5. 37.0 13.0 2.0 3. 17.0 20.0 4. 5. 0.0 0. 1. + 15465. 1. 5. 32.0 9.0 1.0 2. 14.0 11.5 5. 5. 0.0 0. 1. + 15469. 1. 4. 22.0 2.5 0.0 4. 12.0 11.5 3. 4. 0.0 0. 1. + 15470. 1. 4. 22.0 6.0 1.0 1. 12.0 9.0 3. 4. 0.0 0. 1. + 15471. 1. 5. 27.0 2.5 1.0 3. 17.0 20.0 4. 5. 0.0 0. 1. + 15473. 1. 5. 22.0 6.0 2.0 2. 14.0 11.5 3. 4. 0.0 0. 1. + 15474. 1. 4. 22.0 2.5 1.0 4. 12.0 9.0 3. 2. 0.0 0. 1. + 15478. 1. 4. 37.0 16.5 2.0 2. 20.0 40.0 4. 5. 0.0 0. 1. + 15479. 1. 5. 32.0 13.0 3.0 3. 14.0 14.0 2. 2. 0.0 0. 1. + 15486. 1. 4. 42.0 23.0 2.0 4. 16.0 20.0 4. 5. 0.0 0. 1. + 15490. 1. 5. 27.0 6.0 1.0 3. 16.0 9.0 4. 4. 0.0 0. 1. + 15499. 1. 4. 27.0 2.5 0.0 2. 12.0 11.5 2. 5. 0.0 0. 1. + 15500. 1. 3. 27.0 9.0 1.0 4. 12.0 14.0 3. 5. 0.0 0. 1. + 15501. 1. 5. 37.0 23.0 4.0 2. 14.0 40.0 3. 5. 0.0 0. 1. + 15513. 1. 3. 27.0 6.0 2.0 1. 14.0 20.0 4. 4. 0.0 0. 1. + 15516. 1. 5. 22.0 2.5 0.0 1. 12.0 14.0 2. 4. 0.0 0. 1. + 15521. 1. 5. 22.0 2.5 0.0 4. 14.0 9.0 4. 2. 0.0 0. 1. + 15530. 1. 4. 22.0 2.5 0.0 1. 14.0 11.5 3. 4. 0.0 0. 1. + 15532. 1. 3. 17.5 2.5 0.0 2. 12.0 9.0 2. 2. 0.0 0. 1. + 15535. 1. 5. 22.0 2.5 0.0 2. 16.0 14.0 3. 3. 0.0 0. 1. + 15546. 1. 5. 42.0 23.0 4.0 3. 14.0 20.0 3. 6. 0.0 0. 1. + 15558. 1. 4. 17.5 2.5 1.0 2. 12.0 9.0 3. 4. 0.0 0. 1. + 15568. 1. 4. 32.0 13.0 2.0 3. 20.0 20.0 4. 4. 0.0 0. 1. + 15569. 1. 5. 22.0 0.5 0.0 2. 12.0 6.5 3. 2. 0.0 0. 1. + 15577. 1. 3. 22.0 6.0 1.0 3. 12.0 11.5 2. 4. 0.0 0. 1. + 15578. 1. 3. 32.0 13.0 2.0 2. 12.0 11.5 3. 4. 0.0 0. 1. + 15579. 1. 5. 32.0 9.0 0.0 3. 17.0 40.0 6. 6. 0.0 0. 1. + 15589. 1. 4. 42.0 16.5 1.0 3. 14.0 40.0 3. 6. 0.0 0. 1. + 15595. 1. 3. 42.0 16.5 3.0 3. 12.0 20.0 3. 5. 0.0 0. 1. + 15601. 1. 4. 27.0 2.5 0.0 3. 16.0 40.0 3. 5. 0.0 0. 1. + 15604. 1. 4. 17.5 0.5 0.0 3. 12.0 11.5 2. 4. 0.0 0. 1. + 15609. 1. 5. 27.0 2.5 1.0 2. 12.0 11.5 3. 4. 0.0 0. 1. + 15612. 1. 5. 27.0 2.5 0.0 4. 16.0 20.0 4. 4. 0.0 0. 1. + 15615. 1. 5. 22.0 2.5 0.0 3. 17.0 14.0 4. 4. 0.0 0. 1. + 15616. 1. 4. 27.0 6.0 1.0 3. 17.0 20.0 4. 5. 0.0 0. 1. + 15619. 1. 5. 22.0 0.5 0.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 15622. 1. 4. 32.0 6.0 2.0 3. 14.0 14.0 3. 4. 0.0 0. 1. + 15626. 1. 3. 22.0 2.5 1.0 1. 12.0 9.0 3. 4. 0.0 0. 1. + 15627. 1. 2. 22.0 2.5 0.0 2. 12.0 9.0 3. 2. 0.0 0. 1. + 15629. 1. 5. 27.0 2.5 1.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 15633. 1. 5. 22.0 2.5 0.0 1. 17.0 14.0 4. 4. 0.0 0. 1. + 15634. 1. 4. 27.0 6.0 1.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 15637. 1. 5. 27.0 13.0 2.0 2. 12.0 20.0 3. 5. 0.0 0. 1. + 15640. 1. 5. 22.0 2.5 0.0 1. 14.0 4.0 1. 1. 0.0 0. 1. + 15645. 1. 4. 22.0 6.0 1.0 3. 12.0 11.5 3. 2. 0.0 0. 1. + 15647. 1. 5. 32.0 16.5 4.0 3. 14.0 40.0 4. 6. 0.0 0. 1. + 15649. 1. 5. 27.0 6.0 0.0 3. 12.0 14.0 3. 4. 0.0 0. 1. + 15650. 1. 4. 32.0 13.0 2.0 4. 14.0 14.0 5. 5. 0.0 0. 1. + 15654. 1. 4. 42.0 23.0 4.0 3. 14.0 20.0 3. 5. 0.0 0. 1. + 15658. 1. 4. 27.0 6.0 2.0 3. 16.0 40.0 3. 2. 0.0 0. 1. + 15659. 1. 5. 27.0 9.0 2.0 1. 14.0 20.0 3. 5. 0.0 0. 1. + 15671. 1. 3. 27.0 2.5 0.0 3. 16.0 20.0 5. 4. 0.0 0. 1. + 15674. 1. 3. 32.0 13.0 2.0 2. 12.0 14.0 3. 4. 0.0 0. 1. + 15675. 1. 4. 27.0 2.5 0.0 2. 16.0 14.0 5. 4. 0.0 0. 1. + 15681. 1. 5. 22.0 2.5 0.0 1. 12.0 14.0 3. 5. 0.0 0. 1. + 15689. 1. 4. 32.0 9.0 1.0 1. 16.0 14.0 4. 3. 0.0 0. 1. + 15691. 1. 5. 17.5 2.5 0.0 3. 12.0 6.5 4. 4. 0.0 0. 1. + 15699. 1. 4. 42.0 23.0 4.0 4. 16.0 40.0 4. 6. 0.0 0. 1. + 15704. 1. 5. 42.0 23.0 2.0 3. 17.0 20.0 4. 2. 0.0 0. 1. + 15710. 1. 5. 22.0 2.5 0.0 2. 14.0 11.5 3. 1. 0.0 0. 1. + 15712. 1. 4. 32.0 9.0 2.0 2. 12.0 20.0 4. 6. 0.0 0. 1. + 15713. 1. 5. 27.0 2.5 0.0 1. 14.0 20.0 3. 5. 0.0 0. 1. + 15715. 1. 5. 22.0 0.5 4.0 1. 12.0 40.0 5. 5. 0.0 0. 1. + 15719. 1. 5. 27.0 6.0 0.0 1. 20.0 20.0 4. 4. 0.0 0. 1. + 15721. 1. 5. 27.0 2.5 0.0 3. 20.0 40.0 4. 2. 0.0 0. 1. + 15723. 1. 5. 27.0 6.0 1.0 3. 14.0 20.0 3. 2. 0.0 0. 1. + 15726. 1. 4. 27.0 2.5 0.0 3. 16.0 20.0 4. 2. 0.0 0. 1. + 15728. 1. 5. 22.0 0.5 0.0 3. 16.0 6.5 4. 2. 0.0 0. 1. + 15730. 1. 5. 42.0 23.0 4.0 4. 14.0 9.0 4. 6. 0.0 0. 1. + 15737. 1. 3. 22.0 2.5 1.0 3. 14.0 9.0 3. 2. 0.0 0. 1. + 15738. 1. 4. 37.0 16.5 3.0 4. 16.0 20.0 4. 4. 0.0 0. 1. + 15751. 1. 4. 37.0 16.5 2.0 3. 14.0 20.0 3. 5. 0.0 0. 1. + 15753. 1. 4. 22.0 2.5 0.0 2. 12.0 11.5 3. 4. 0.0 0. 1. + 15755. 1. 4. 22.0 6.0 0.0 2. 16.0 40.0 5. 5. 0.0 0. 1. + 15760. 1. 5. 22.0 2.5 0.0 2. 14.0 20.0 4. 4. 0.0 0. 1. + 15762. 1. 4. 27.0 6.0 0.0 2. 12.0 14.0 2. 5. 0.0 0. 1. + 15775. 1. 2. 42.0 23.0 5.5 3. 16.0 20.0 4. 5. 0.0 0. 1. + 15777. 1. 5. 22.0 2.5 0.0 2. 14.0 6.5 3. 2. 0.0 0. 1. + 15781. 1. 5. 27.0 2.5 1.0 2. 12.0 6.5 2. 5. 0.0 0. 1. + 15784. 1. 5. 42.0 23.0 1.0 3. 12.0 20.0 4. 5. 0.0 0. 1. + 15785. 1. 5. 42.0 23.0 3.0 3. 14.0 20.0 5. 5. 0.0 0. 1. + 15789. 1. 5. 42.0 23.0 1.0 1. 12.0 40.0 3. 5. 0.0 0. 1. + 15790. 1. 4. 27.0 6.0 0.0 1. 16.0 14.0 4. 2. 0.0 0. 1. + 15792. 1. 3. 27.0 9.0 2.0 2. 14.0 14.0 3. 4. 0.0 0. 1. + 15796. 1. 5. 27.0 6.0 0.0 2. 12.0 20.0 3. 3. 0.0 0. 1. + 15800. 1. 4. 22.0 2.5 0.0 3. 12.0 14.0 3. 5. 0.0 0. 1. + 15803. 1. 5. 32.0 9.0 2.0 1. 16.0 20.0 4. 6. 0.0 0. 1. + 15822. 1. 5. 22.0 2.5 1.0 2. 12.0 14.0 3. 2. 0.0 0. 1. + 15830. 1. 5. 22.0 6.0 0.0 1. 16.0 20.0 4. 4. 0.0 0. 1. + 15833. 1. 5. 37.0 16.5 2.0 4. 20.0 20.0 4. 6. 0.0 0. 1. + 15857. 1. 4. 22.0 2.5 0.0 2. 12.0 6.5 5. 5. 0.0 0. 1. + 15860. 1. 4. 22.0 2.5 0.0 3. 14.0 9.0 3. 1. 0.0 0. 1. + 15865. 1. 5. 27.0 6.0 0.0 3. 17.0 20.0 4. 6. 0.0 0. 1. + 15869. 1. 5. 22.0 0.5 0.0 3. 16.0 20.0 5. 5. 0.0 0. 1. + 15884. 1. 5. 22.0 2.5 0.0 3. 14.0 9.0 3. 2. 0.0 0. 1. + 15885. 1. 5. 22.0 2.5 0.0 2. 14.0 20.0 3. 4. 0.0 0. 1. + 15887. 1. 4. 27.0 6.0 0.0 2. 14.0 11.5 3. 4. 0.0 0. 1. + 15903. 1. 5. 22.0 2.5 0.0 3. 12.0 11.5 3. 4. 0.0 0. 1. + 15910. 1. 4. 22.0 0.5 0.0 3. 14.0 20.0 5. 5. 0.0 0. 1. + 15911. 1. 3. 42.0 23.0 1.0 1. 12.0 40.0 3. 6. 0.0 0. 1. + 15916. 1. 5. 22.0 2.5 1.0 3. 14.0 6.5 2. 2. 0.0 0. 1. + 15927. 1. 4. 27.0 6.0 1.0 2. 14.0 40.0 5. 2. 0.0 0. 1. + 15930. 1. 5. 22.0 2.5 0.0 4. 12.0 20.0 3. 4. 0.0 0. 1. + 15931. 1. 5. 22.0 2.5 0.0 2. 16.0 20.0 4. 5. 0.0 0. 1. + 15934. 1. 5. 27.0 9.0 2.0 3. 16.0 20.0 4. 4. 0.0 0. 1. + 15951. 1. 5. 32.0 13.0 0.0 2. 12.0 40.0 5. 4. 0.0 0. 1. + 15952. 1. 3. 27.0 2.5 0.0 3. 16.0 20.0 3. 5. 0.0 0. 1. + 15958. 1. 3. 27.0 6.0 0.0 2. 20.0 40.0 4. 4. 0.0 0. 1. + 15965. 1. 5. 22.0 0.5 0.0 3. 16.0 14.0 5. 2. 0.0 0. 1. + 15969. 1. 5. 22.0 2.5 0.0 2. 16.0 6.5 4. 2. 0.0 0. 1. + 15971. 1. 5. 27.0 6.0 1.0 1. 16.0 14.0 4. 5. 0.0 0. 1. + 15972. 1. 5. 27.0 2.5 0.0 1. 12.0 14.0 3. 5. 0.0 0. 1. + 15973. 1. 5. 27.0 9.0 2.0 3. 12.0 14.0 3. 4. 0.0 0. 1. + 15974. 1. 5. 22.0 2.5 0.0 2. 16.0 11.5 4. 4. 0.0 0. 1. + 15979. 1. 5. 42.0 16.5 4.0 3. 12.0 11.5 2. 2. 0.0 0. 1. + 15984. 1. 3. 27.0 9.0 2.0 3. 12.0 6.5 5. 4. 0.0 0. 1. + 15985. 1. 4. 27.0 13.0 3.0 3. 14.0 14.0 5. 5. 0.0 0. 1. + 15989. 1. 4. 22.0 2.5 0.0 2. 17.0 20.0 4. 5. 0.0 0. 1. + 15993. 1. 5. 27.0 9.0 0.0 3. 14.0 20.0 3. 2. 0.0 0. 1. + 16002. 1. 2. 22.0 2.5 1.0 2. 12.0 20.0 3. 3. 0.0 0. 1. + 16006. 1. 5. 22.0 2.5 0.0 2. 12.0 6.5 5. 1. 0.0 0. 1. + 16008. 1. 4. 22.0 2.5 0.0 3. 16.0 11.5 4. 3. 0.0 0. 1. + 16010. 1. 5. 27.0 6.0 2.0 4. 17.0 20.0 4. 2. 0.0 0. 1. + 16018. 1. 4. 22.0 2.5 0.0 3. 17.0 14.0 4. 4. 0.0 0. 1. + 16020. 1. 5. 37.0 16.5 3.0 3. 14.0 20.0 3. 5. 0.0 0. 1. + 16021. 1. 2. 37.0 13.0 0.0 2. 17.0 14.0 3. 5. 0.0 0. 1. + 16029. 1. 5. 27.0 2.5 0.0 3. 16.0 9.0 2. 4. 0.0 0. 1. + 16035. 1. 3. 27.0 9.0 2.0 1. 12.0 11.5 3. 5. 0.0 0. 1. + 16038. 1. 5. 37.0 16.5 2.0 3. 12.0 20.0 5. 5. 0.0 0. 1. + 16040. 1. 4. 22.0 2.5 0.0 3. 16.0 20.0 5. 1. 0.0 0. 1. + 16046. 1. 5. 22.0 2.5 0.0 3. 12.0 14.0 3. 4. 0.0 0. 1. + 16048. 1. 5. 17.5 0.5 0.0 2. 12.0 11.5 3. 4. 0.0 0. 1. + 16050. 1. 5. 37.0 13.0 3.0 3. 17.0 20.0 4. 5. 0.0 0. 1. + 16051. 1. 5. 32.0 9.0 3.0 3. 14.0 11.5 4. 4. 0.0 0. 1. + 16052. 1. 4. 27.0 0.5 0.0 2. 20.0 20.0 4. 5. 0.0 0. 1. + 16054. 1. 5. 37.0 16.5 2.0 4. 16.0 20.0 4. 6. 0.0 0. 1. + 16059. 1. 2. 27.0 2.5 1.0 2. 14.0 11.5 3. 4. 0.0 0. 1. + 16061. 1. 4. 22.0 2.5 0.0 3. 17.0 6.5 3. 6. 0.0 0. 1. + 16062. 1. 4. 32.0 6.0 1.0 3. 14.0 14.0 4. 5. 0.0 0. 1. + 16066. 1. 4. 22.0 2.5 1.0 2. 12.0 9.0 3. 2. 0.0 0. 1. + 16068. 1. 5. 22.0 2.5 0.0 2. 14.0 11.5 3. 5. 0.0 0. 1. + 16071. 1. 4. 27.0 2.5 1.0 1. 16.0 20.0 4. 5. 0.0 0. 1. + 16077. 1. 5. 42.0 23.0 3.0 4. 17.0 20.0 4. 5. 0.0 0. 1. + 16081. 1. 4. 37.0 16.5 2.0 2. 12.0 14.0 3. 4. 0.0 0. 1. + 16085. 1. 4. 42.0 13.0 0.0 3. 12.0 14.0 3. 5. 0.0 0. 1. + 16086. 1. 5. 22.0 2.5 0.0 2. 16.0 20.0 4. 5. 0.0 0. 1. + 16090. 1. 3. 22.0 0.5 0.0 2. 14.0 9.0 4. 4. 0.0 0. 1. + 16116. 1. 4. 32.0 6.0 1.0 1. 17.0 11.5 2. 4. 0.0 0. 1. + 16117. 1. 4. 27.0 2.5 0.0 2. 16.0 11.5 4. 2. 0.0 0. 1. + 16122. 1. 5. 22.0 2.5 0.0 2. 16.0 6.5 3. 1. 0.0 0. 1. + 16123. 1. 5. 37.0 16.5 5.5 3. 12.0 20.0 2. 6. 0.0 0. 1. + 16124. 1. 5. 22.0 2.5 0.0 2. 16.0 11.5 5. 2. 0.0 0. 1. + 16127. 1. 4. 27.0 0.5 0.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 16132. 1. 4. 22.0 2.5 0.0 2. 12.0 20.0 2. 2. 0.0 0. 1. + 16136. 1. 5. 32.0 6.0 2.0 3. 12.0 11.5 3. 4. 0.0 0. 1. + 16139. 1. 5. 42.0 23.0 2.0 3. 12.0 20.0 4. 4. 0.0 0. 1. + 16140. 1. 4. 32.0 6.0 2.0 3. 17.0 20.0 4. 2. 0.0 0. 1. + 16145. 1. 4. 27.0 2.5 0.0 2. 12.0 14.0 3. 2. 0.0 0. 1. + 16148. 1. 5. 32.0 13.0 1.0 3. 12.0 11.5 2. 4. 0.0 0. 1. + 16149. 1. 4. 37.0 16.5 2.0 2. 14.0 11.5 4. 2. 0.0 0. 1. + 16151. 1. 4. 27.0 0.5 0.0 1. 20.0 40.0 5. 5. 0.0 0. 1. + 16154. 1. 4. 17.5 0.5 0.0 2. 14.0 14.0 3. 3. 0.0 0. 1. + 16155. 1. 5. 32.0 16.5 3.0 3. 12.0 11.5 2. 4. 0.0 0. 1. + 16156. 1. 4. 37.0 16.5 3.0 2. 16.0 40.0 4. 6. 0.0 0. 1. + 16160. 1. 4. 22.0 2.5 0.0 2. 14.0 20.0 3. 4. 0.0 0. 1. + 16167. 1. 5. 32.0 13.0 2.0 3. 12.0 20.0 3. 4. 0.0 0. 1. + 16173. 1. 5. 27.0 6.0 2.0 3. 17.0 20.0 4. 6. 0.0 0. 1. + 16185. 1. 4. 22.0 2.5 0.0 2. 12.0 6.5 2. 4. 0.0 0. 1. + 16188. 1. 3. 22.0 2.5 0.0 2. 16.0 11.5 4. 1. 0.0 0. 1. + 16194. 1. 4. 27.0 9.0 1.0 1. 12.0 20.0 2. 5. 0.0 0. 1. + 16198. 1. 5. 22.0 2.5 0.0 3. 12.0 14.0 3. 4. 0.0 0. 1. + 16199. 1. 5. 32.0 13.0 3.0 1. 17.0 20.0 4. 4. 0.0 0. 1. + 16203. 1. 5. 22.0 0.5 0.0 2. 16.0 14.0 4. 4. 0.0 0. 1. + 16204. 1. 5. 32.0 13.0 2.0 4. 14.0 11.5 3. 4. 0.0 0. 1. + 16211. 1. 5. 22.0 2.5 0.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 16218. 1. 5. 32.0 9.0 1.0 2. 17.0 14.0 2. 4. 0.0 0. 1. + 16223. 1. 5. 42.0 23.0 5.5 2. 12.0 20.0 3. 5. 0.0 0. 1. + 16227. 1. 2. 32.0 2.5 1.0 3. 20.0 20.0 6. 5. 0.0 0. 1. + 16228. 1. 5. 37.0 6.0 0.0 3. 20.0 40.0 4. 5. 0.0 0. 1. + 16229. 1. 4. 32.0 9.0 2.0 3. 16.0 20.0 4. 5. 0.0 0. 1. + 16233. 1. 4. 22.0 2.5 0.0 3. 14.0 20.0 4. 4. 0.0 0. 1. + 16234. 1. 4. 22.0 2.5 0.0 1. 12.0 11.5 3. 2. 0.0 0. 1. + 16239. 1. 5. 27.0 2.5 0.0 2. 20.0 40.0 6. 6. 0.0 0. 1. + 16245. 1. 4. 32.0 13.0 2.0 3. 12.0 20.0 3. 3. 0.0 0. 1. + 16247. 1. 5. 17.5 2.5 1.0 3. 12.0 11.5 2. 1. 0.0 0. 1. + 16250. 1. 5. 32.0 16.5 3.0 3. 12.0 11.5 5. 5. 0.0 0. 1. + 16253. 1. 4. 27.0 6.0 0.0 3. 16.0 40.0 4. 4. 0.0 0. 1. + 16254. 1. 5. 37.0 16.5 2.0 2. 12.0 20.0 5. 5. 0.0 0. 1. + 16258. 1. 3. 27.0 2.5 1.0 3. 14.0 20.0 3. 5. 0.0 0. 1. + 16267. 1. 5. 27.0 6.0 0.0 1. 16.0 11.5 2. 4. 0.0 0. 1. + 16269. 1. 5. 37.0 23.0 3.0 3. 12.0 14.0 2. 4. 0.0 0. 1. + 16279. 1. 4. 27.0 2.5 1.0 3. 14.0 11.5 2. 2. 0.0 0. 1. + 16283. 1. 5. 22.0 2.5 0.0 2. 12.0 20.0 3. 6. 0.0 0. 1. + 16292. 1. 5. 22.0 2.5 0.0 1. 14.0 11.5 4. 4. 0.0 0. 1. + 16294. 1. 4. 22.0 6.0 2.0 1. 16.0 20.0 3. 4. 0.0 0. 1. + 16295. 1. 5. 22.0 0.5 0.0 3. 16.0 20.0 4. 5. 0.0 0. 1. + 16297. 1. 2. 22.0 2.5 1.0 3. 12.0 9.0 3. 4. 0.0 0. 1. + 16298. 1. 5. 22.0 0.5 0.0 2. 20.0 11.5 3. 4. 0.0 0. 1. + 16301. 1. 5. 32.0 2.5 0.0 2. 20.0 40.0 4. 4. 0.0 0. 1. + 16308. 1. 4. 27.0 2.5 1.0 2. 12.0 11.5 3. 1. 0.0 0. 1. + 16310. 1. 5. 22.0 2.5 0.0 3. 12.0 11.5 5. 2. 0.0 0. 1. + 16316. 1. 3. 42.0 13.0 0.0 4. 20.0 40.0 2. 2. 0.0 0. 1. + 16318. 1. 5. 27.0 2.5 1.0 1. 14.0 40.0 5. 4. 0.0 0. 1. + 16321. 1. 5. 27.0 13.0 2.0 4. 12.0 40.0 3. 6. 0.0 0. 1. + 16323. 1. 4. 27.0 2.5 0.0 3. 14.0 20.0 3. 4. 0.0 0. 1. + 16325. 1. 4. 32.0 13.0 2.0 3. 12.0 14.0 2. 4. 0.0 0. 1. + 16327. 1. 4. 27.0 6.0 0.0 2. 20.0 40.0 4. 6. 0.0 0. 1. + 16328. 1. 5. 32.0 6.0 0.0 3. 12.0 11.5 2. 2. 0.0 0. 1. + 16329. 1. 5. 22.0 0.5 0.0 2. 12.0 20.0 3. 2. 0.0 0. 1. + 16338. 1. 4. 27.0 9.0 1.0 1. 16.0 20.0 4. 4. 0.0 0. 1. + 16345. 1. 5. 27.0 0.5 0.0 2. 16.0 40.0 3. 5. 0.0 0. 1. + 16351. 1. 4. 22.0 0.5 0.0 2. 14.0 20.0 4. 5. 0.0 0. 1. + 16355. 1. 4. 22.0 6.0 1.0 2. 14.0 14.0 5. 5. 0.0 0. 1. + 16360. 1. 3. 22.0 2.5 2.0 1. 12.0 11.5 3. 4. 0.0 0. 1. + 16361. 1. 3. 42.0 13.0 2.0 3. 12.0 11.5 3. 2. 0.0 0. 1. + 16366. 1. 5. 27.0 6.0 3.0 2. 14.0 14.0 2. 5. 0.0 0. 1. + 16380. 1. 4. 27.0 6.0 2.0 1. 12.0 11.5 4. 2. 0.0 0. 1. + 16382. 1. 5. 22.0 2.5 0.0 2. 14.0 11.5 1. 4. 0.0 0. 1. + 16383. 1. 5. 27.0 2.5 0.0 3. 16.0 20.0 4. 4. 0.0 0. 1. + 16385. 1. 5. 27.0 2.5 2.0 2. 17.0 40.0 4. 5. 0.0 0. 1. + 16388. 1. 3. 22.0 2.5 0.0 3. 14.0 11.5 4. 5. 0.0 0. 1. + 16400. 1. 4. 27.0 6.0 0.0 3. 12.0 6.5 3. 4. 0.0 0. 1. + 16401. 1. 2. 27.0 6.0 2.0 2. 16.0 20.0 2. 6. 0.0 0. 1. + 16402. 1. 4. 32.0 16.5 2.0 2. 17.0 14.0 4. 3. 0.0 0. 1. + 16403. 1. 4. 22.0 2.5 1.0 3. 17.0 20.0 4. 2. 0.0 0. 1. + 16407. 1. 5. 22.0 2.5 0.0 2. 12.0 14.0 3. 5. 0.0 0. 1. + 16408. 1. 3. 22.0 2.5 1.0 3. 12.0 9.0 3. 4. 0.0 0. 1. + 16409. 1. 4. 22.0 2.5 0.0 2. 12.0 9.0 3. 4. 0.0 0. 1. + 16412. 1. 4. 22.0 0.5 0.0 3. 14.0 40.0 5. 4. 0.0 0. 1. + 16414. 1. 3. 32.0 13.0 2.0 2. 20.0 40.0 4. 4. 0.0 0. 1. + 16416. 1. 5. 17.5 2.5 0.0 1. 17.0 20.0 4. 4. 0.0 0. 1. + 16417. 1. 4. 22.0 2.5 0.0 3. 16.0 14.0 4. 4. 0.0 0. 1. + 16420. 1. 3. 27.0 2.5 0.0 1. 14.0 40.0 3. 2. 0.0 0. 1. + 16425. 1. 5. 42.0 13.0 0.0 4. 12.0 40.0 5. 5. 0.0 0. 1. + 16436. 1. 5. 32.0 16.5 3.0 4. 14.0 14.0 3. 2. 0.0 0. 1. + 16438. 1. 5. 22.0 2.5 0.0 3. 14.0 14.0 4. 5. 0.0 0. 1. + 16440. 1. 5. 22.0 0.5 0.0 3. 14.0 14.0 3. 4. 0.0 0. 1. + 16442. 1. 1. 32.0 16.5 4.0 3. 12.0 20.0 2. 5. 0.0 0. 1. + 16444. 1. 5. 32.0 16.5 1.0 1. 20.0 40.0 6. 6. 0.0 0. 1. + 16445. 1. 3. 27.0 9.0 0.0 3. 14.0 20.0 3. 6. 0.0 0. 1. + 16448. 1. 2. 27.0 0.5 0.0 2. 14.0 9.0 3. 4. 0.0 0. 1. + 16451. 1. 5. 22.0 2.5 0.0 3. 14.0 20.0 4. 6. 0.0 0. 1. + 16468. 1. 4. 37.0 13.0 2.0 3. 16.0 20.0 4. 3. 0.0 0. 1. + 16472. 1. 4. 42.0 16.5 2.0 4. 12.0 9.0 2. 4. 0.0 0. 1. + 16474. 1. 4. 42.0 23.0 4.0 4. 16.0 20.0 4. 4. 0.0 0. 1. + 16475. 1. 3. 17.5 0.5 1.0 2. 12.0 9.0 3. 2. 0.0 0. 1. + 16479. 1. 5. 27.0 2.5 1.0 3. 16.0 14.0 4. 4. 0.0 0. 1. + 16487. 1. 5. 32.0 16.5 2.0 3. 12.0 20.0 3. 2. 0.0 0. 1. + 16491. 1. 5. 42.0 23.0 5.5 4. 14.0 40.0 4. 4. 0.0 0. 1. + 16500. 1. 5. 37.0 16.5 3.0 3. 14.0 20.0 3. 4. 0.0 0. 1. + 16502. 1. 5. 22.0 2.5 1.0 1. 14.0 11.5 2. 5. 0.0 0. 1. + 16503. 1. 5. 27.0 2.5 0.0 2. 17.0 20.0 4. 4. 0.0 0. 1. + 16533. 1. 5. 27.0 6.0 2.0 1. 14.0 11.5 2. 5. 0.0 0. 1. + 16535. 1. 5. 27.0 9.0 3.0 3. 12.0 11.5 2. 2. 0.0 0. 1. + 16540. 1. 5. 32.0 9.0 2.0 4. 20.0 14.0 2. 4. 0.0 0. 1. + 16550. 1. 3. 27.0 6.0 1.0 2. 14.0 14.0 1. 4. 0.0 0. 1. + 16551. 1. 4. 22.0 0.5 0.0 2. 12.0 14.0 2. 2. 0.0 0. 1. + 16553. 1. 4. 22.0 6.0 1.0 2. 12.0 11.5 3. 4. 0.0 0. 1. + 16558. 1. 4. 22.0 0.5 0.0 3. 14.0 6.5 3. 2. 0.0 0. 1. + 16561. 1. 5. 32.0 16.5 2.0 3. 14.0 40.0 3. 2. 0.0 0. 1. + 16562. 1. 5. 42.0 23.0 2.0 1. 20.0 40.0 4. 5. 0.0 0. 1. + 16563. 1. 5. 37.0 16.5 3.0 3. 17.0 40.0 4. 6. 0.0 0. 1. + 16565. 1. 4. 32.0 13.0 1.0 4. 17.0 6.5 4. 1. 0.0 0. 1. + 16567. 1. 5. 42.0 23.0 5.5 3. 12.0 40.0 5. 5. 0.0 0. 1. + 16568. 1. 5. 32.0 13.0 0.0 2. 14.0 20.0 5. 4. 0.0 0. 1. + 16569. 1. 5. 22.0 2.5 0.0 3. 14.0 9.0 4. 5. 0.0 0. 1. + 16572. 1. 1. 27.0 6.0 3.0 1. 14.0 20.0 2. 6. 0.0 0. 1. + 16573. 1. 4. 27.0 13.0 3.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 16574. 1. 4. 37.0 6.0 0.0 3. 16.0 20.0 4. 5. 0.0 0. 1. + 16575. 1. 5. 22.0 2.5 1.0 1. 14.0 9.0 2. 2. 0.0 0. 1. + 16578. 1. 5. 22.0 2.5 0.0 4. 12.0 14.0 3. 4. 0.0 0. 1. + 16583. 1. 5. 22.0 2.5 0.0 3. 14.0 6.5 4. 2. 0.0 0. 1. + 16585. 1. 5. 37.0 16.5 2.0 3. 12.0 20.0 3. 5. 0.0 0. 1. + 16586. 1. 5. 22.0 6.0 2.0 2. 12.0 14.0 3. 5. 0.0 0. 1. + 16587. 1. 5. 42.0 23.0 3.0 4. 16.0 20.0 4. 6. 0.0 0. 1. + 16597. 1. 4. 32.0 13.0 4.0 4. 12.0 14.0 3. 4. 0.0 0. 1. + 16602. 1. 5. 22.0 0.5 0.0 1. 14.0 20.0 3. 3. 0.0 0. 1. + 16606. 1. 4. 22.0 2.5 0.0 2. 14.0 14.0 3. 4. 0.0 0. 1. + 16611. 1. 4. 27.0 6.0 0.0 1. 16.0 20.0 4. 6. 0.0 0. 1. + 16623. 1. 4. 32.0 13.0 3.0 2. 12.0 20.0 2. 6. 0.0 0. 1. + 16624. 1. 4. 22.0 2.5 1.0 3. 17.0 20.0 4. 4. 0.0 0. 1. + 16632. 1. 4. 22.0 0.5 0.0 1. 16.0 11.5 3. 5. 0.0 0. 1. + 16635. 1. 4. 32.0 13.0 2.0 2. 12.0 11.5 2. 5. 0.0 0. 1. + 16636. 1. 4. 17.5 2.5 1.0 1. 12.0 6.5 2. 4. 0.0 0. 1. + 16641. 1. 3. 27.0 6.0 0.0 1. 17.0 14.0 2. 6. 0.0 0. 1. + 16645. 1. 4. 32.0 16.5 1.0 3. 12.0 20.0 3. 4. 0.0 0. 1. + 16649. 1. 5. 27.0 0.5 0.0 2. 16.0 11.5 3. 2. 0.0 0. 1. + 16652. 1. 4. 27.0 9.0 2.0 4. 20.0 40.0 4. 4. 0.0 0. 1. + 16655. 1. 3. 42.0 23.0 2.0 3. 12.0 14.0 3. 5. 0.0 0. 1. + 16656. 1. 5. 22.0 2.5 0.0 2. 14.0 20.0 4. 2. 0.0 0. 1. + 16660. 1. 5. 32.0 13.0 3.0 4. 20.0 20.0 4. 4. 0.0 0. 1. + 16662. 1. 2. 32.0 6.0 2.0 2. 17.0 14.0 3. 4. 0.0 0. 1. + 16663. 1. 5. 22.0 2.5 0.0 3. 14.0 9.0 2. 2. 0.0 0. 1. + 16669. 1. 5. 27.0 9.0 3.0 2. 12.0 11.5 3. 4. 0.0 0. 1. + 16675. 1. 4. 27.0 2.5 1.0 4. 20.0 9.0 1. 1. 0.0 0. 1. + 16683. 1. 4. 27.0 6.0 1.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 16684. 1. 5. 22.0 2.5 0.0 3. 12.0 20.0 3. 6. 0.0 0. 1. + 16685. 1. 4. 32.0 16.5 5.5 3. 12.0 9.0 2. 2. 0.0 0. 1. + 16689. 1. 4. 32.0 13.0 2.0 4. 16.0 14.0 2. 4. 0.0 0. 1. + 16693. 1. 5. 32.0 13.0 5.5 3. 14.0 20.0 2. 2. 0.0 0. 1. + 16696. 1. 5. 27.0 9.0 3.0 3. 12.0 11.5 2. 4. 0.0 0. 1. + 16697. 1. 4. 27.0 2.5 0.0 2. 14.0 40.0 3. 2. 0.0 0. 1. + 16698. 1. 4. 42.0 23.0 4.0 1. 17.0 40.0 4. 4. 0.0 0. 1. + 16699. 1. 3. 27.0 9.0 2.0 3. 17.0 11.5 4. 4. 0.0 0. 1. + 16701. 1. 5. 27.0 6.0 1.0 3. 16.0 20.0 4. 3. 0.0 0. 1. + 16705. 1. 5. 27.0 2.5 0.0 1. 14.0 20.0 3. 5. 0.0 0. 1. + 16707. 1. 5. 42.0 23.0 4.0 2. 12.0 20.0 3. 5. 0.0 0. 1. + 16708. 1. 4. 22.0 2.5 1.0 2. 12.0 20.0 2. 4. 0.0 0. 1. + 16728. 1. 4. 37.0 16.5 2.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 16730. 1. 5. 22.0 2.5 0.0 3. 16.0 9.0 3. 6. 0.0 0. 1. + 16745. 1. 4. 22.0 2.5 0.0 3. 14.0 20.0 3. 4. 0.0 0. 1. + 16747. 1. 5. 22.0 2.5 0.0 4. 17.0 20.0 4. 5. 0.0 0. 1. + 16749. 1. 5. 22.0 2.5 0.0 3. 16.0 20.0 4. 6. 0.0 0. 1. + 16751. 1. 3. 22.0 2.5 0.0 2. 16.0 20.0 4. 4. 0.0 0. 1. + 16753. 1. 4. 27.0 9.0 0.0 2. 14.0 40.0 5. 5. 0.0 0. 1. + 16755. 1. 4. 32.0 13.0 2.0 3. 14.0 20.0 3. 6. 0.0 0. 1. + 16757. 1. 5. 27.0 6.0 2.0 4. 20.0 6.5 6. 6. 0.0 0. 1. + 16758. 1. 5. 27.0 9.0 2.0 3. 16.0 20.0 4. 6. 0.0 0. 1. + 16764. 1. 5. 42.0 23.0 2.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 16772. 1. 4. 27.0 2.5 0.0 2. 12.0 14.0 3. 5. 0.0 0. 1. + 16776. 1. 5. 22.0 2.5 0.0 3. 14.0 9.0 3. 2. 0.0 0. 1. + 16787. 1. 4. 22.0 2.5 0.0 3. 12.0 9.0 2. 2. 0.0 0. 1. + 16796. 1. 4. 32.0 9.0 1.0 2. 12.0 20.0 2. 5. 0.0 0. 1. + 16806. 1. 4. 27.0 6.0 0.0 2. 14.0 20.0 3. 2. 0.0 0. 1. + 16807. 1. 5. 22.0 2.5 1.0 1. 12.0 6.5 3. 2. 0.0 0. 1. + 16808. 1. 5. 42.0 2.5 0.0 4. 12.0 20.0 5. 4. 0.0 0. 1. + 16813. 1. 5. 22.0 2.5 0.0 1. 14.0 14.0 4. 3. 0.0 0. 1. + 16816. 1. 4. 42.0 23.0 2.0 4. 20.0 20.0 2. 2. 0.0 0. 1. + 16822. 1. 4. 42.0 23.0 3.0 3. 12.0 20.0 4. 4. 0.0 0. 1. + 16825. 1. 5. 22.0 2.5 0.0 1. 16.0 20.0 4. 2. 0.0 0. 1. + 16831. 1. 5. 32.0 16.5 2.0 2. 12.0 11.5 3. 5. 0.0 0. 1. + 16833. 1. 5. 17.5 0.5 0.0 2. 12.0 20.0 3. 3. 0.0 0. 1. + 16840. 1. 4. 22.0 2.5 1.0 3. 12.0 11.5 2. 4. 0.0 0. 1. + 16841. 1. 5. 27.0 2.5 0.0 4. 17.0 20.0 4. 3. 0.0 0. 1. + 16842. 1. 4. 22.0 2.5 0.0 2. 14.0 14.0 3. 4. 0.0 0. 1. + 16854. 1. 5. 22.0 0.5 0.0 3. 16.0 20.0 2. 2. 0.0 0. 1. + 16856. 1. 5. 22.0 2.5 1.0 4. 14.0 4.0 3. 3. 0.0 0. 1. + 16857. 1. 5. 42.0 23.0 3.0 4. 14.0 20.0 3. 6. 0.0 0. 1. + 16859. 1. 5. 27.0 6.0 0.0 3. 12.0 14.0 2. 2. 0.0 0. 1. + 16863. 1. 4. 27.0 2.5 0.0 2. 14.0 20.0 4. 4. 0.0 0. 1. + 16865. 1. 4. 22.0 2.5 0.0 3. 12.0 11.5 3. 2. 0.0 0. 1. + 16866. 1. 5. 42.0 23.0 3.0 3. 14.0 11.5 3. 3. 0.0 0. 1. + 16870. 1. 4. 42.0 16.5 3.0 3. 14.0 20.0 2. 2. 0.0 0. 1. + 16871. 1. 5. 32.0 13.0 2.0 2. 16.0 14.0 3. 4. 0.0 0. 1. + 16872. 1. 5. 22.0 2.5 0.0 3. 14.0 20.0 2. 2. 0.0 0. 1. + 16874. 1. 4. 22.0 6.0 2.0 3. 12.0 11.5 2. 4. 0.0 0. 1. + 16880. 1. 4. 27.0 6.0 0.0 3. 14.0 20.0 3. 3. 0.0 0. 1. + 16882. 1. 3. 32.0 6.0 1.0 3. 14.0 20.0 3. 5. 0.0 0. 1. + 16885. 1. 5. 37.0 16.5 3.0 4. 12.0 20.0 6. 5. 0.0 0. 1. + 16887. 1. 4. 27.0 9.0 2.0 2. 14.0 14.0 2. 2. 0.0 0. 1. + 16889. 1. 4. 22.0 2.5 0.0 2. 12.0 11.5 3. 5. 0.0 0. 1. + 16890. 1. 5. 27.0 2.5 0.0 3. 20.0 40.0 4. 5. 0.0 0. 1. + 16892. 1. 4. 32.0 6.0 0.0 3. 12.0 14.0 5. 2. 0.0 0. 1. + 16893. 1. 4. 22.0 2.5 0.0 3. 14.0 20.0 3. 2. 0.0 0. 1. + 16896. 1. 5. 37.0 16.5 4.0 4. 14.0 11.5 3. 6. 0.0 0. 1. + 16897. 1. 3. 37.0 16.5 4.0 2. 12.0 11.5 2. 4. 0.0 0. 1. + 16905. 1. 2. 22.0 9.0 2.0 2. 12.0 14.0 3. 4. 0.0 0. 1. + 16908. 1. 4. 27.0 6.0 0.0 4. 16.0 11.5 5. 4. 0.0 0. 1. + 16912. 1. 5. 27.0 13.0 3.0 3. 12.0 20.0 3. 3. 0.0 0. 1. + 16921. 1. 5. 27.0 6.0 1.0 4. 20.0 20.0 4. 4. 0.0 0. 1. + 16929. 1. 5. 27.0 6.0 1.0 3. 14.0 20.0 4. 5. 0.0 0. 1. + 16932. 1. 5. 32.0 6.0 1.0 4. 20.0 14.0 6. 6. 0.0 0. 1. + 16938. 1. 5. 27.0 6.0 2.0 2. 14.0 11.5 4. 4. 0.0 0. 1. + 16946. 1. 5. 27.0 6.0 2.0 2. 14.0 11.5 4. 6. 0.0 0. 1. + 16948. 1. 3. 42.0 23.0 4.0 3. 14.0 20.0 3. 4. 0.0 0. 1. + 16949. 1. 4. 22.0 2.5 0.0 3. 14.0 9.0 3. 3. 0.0 0. 1. + 16961. 1. 3. 32.0 13.0 2.0 2. 16.0 14.0 4. 5. 0.0 0. 1. + 16962. 1. 4. 42.0 23.0 3.0 4. 12.0 20.0 2. 5. 0.0 0. 1. + 16964. 1. 5. 27.0 6.0 0.0 4. 14.0 11.5 5. 2. 0.0 0. 1. + 16965. 1. 4. 27.0 9.0 3.0 2. 14.0 11.5 3. 1. 0.0 0. 1. + 16967. 1. 5. 27.0 9.0 2.0 2. 14.0 20.0 3. 6. 0.0 0. 1. + 16969. 1. 5. 32.0 2.5 0.0 3. 12.0 20.0 5. 5. 0.0 0. 1. + 16975. 1. 5. 27.0 6.0 0.0 3. 16.0 20.0 4. 5. 0.0 0. 1. + 16977. 1. 4. 27.0 6.0 2.0 3. 16.0 20.0 4. 2. 0.0 0. 1. + 16978. 1. 5. 22.0 2.5 1.0 3. 14.0 20.0 3. 2. 0.0 0. 1. + 16979. 1. 5. 42.0 23.0 3.0 2. 12.0 14.0 4. 4. 0.0 0. 1. + 16982. 1. 5. 22.0 2.5 0.0 2. 17.0 11.5 4. 1. 0.0 0. 1. + 16984. 1. 4. 27.0 2.5 1.0 2. 14.0 14.0 3. 3. 0.0 0. 1. + 16989. 1. 4. 27.0 6.0 2.0 1. 14.0 20.0 5. 5. 0.0 0. 1. + 16992. 1. 5. 17.5 0.5 0.0 3. 12.0 9.0 3. 2. 0.0 0. 1. + 16994. 1. 4. 32.0 9.0 1.0 3. 12.0 20.0 3. 2. 0.0 0. 1. + 16997. 1. 5. 42.0 23.0 3.0 2. 16.0 20.0 4. 6. 0.0 0. 1. + 16998. 1. 4. 22.0 2.5 1.0 3. 14.0 11.5 2. 4. 0.0 0. 1. + 17003. 1. 5. 32.0 6.0 1.0 4. 17.0 14.0 2. 2. 0.0 0. 1. + 17006. 1. 4. 22.0 2.5 1.0 3. 14.0 14.0 3. 5. 0.0 0. 1. + 17007. 1. 5. 27.0 0.5 0.0 2. 14.0 9.0 6. 4. 0.0 0. 1. + 17009. 1. 3. 42.0 23.0 2.0 2. 14.0 20.0 3. 6. 0.0 0. 1. + 17010. 1. 5. 32.0 13.0 2.0 3. 14.0 11.5 3. 4. 0.0 0. 1. + 17015. 1. 4. 42.0 23.0 5.5 2. 12.0 11.5 2. 4. 0.0 0. 1. + 17016. 1. 4. 32.0 9.0 2.0 3. 14.0 20.0 5. 5. 0.0 0. 1. + 17024. 1. 5. 32.0 16.5 2.0 3. 12.0 40.0 2. 3. 0.0 0. 1. + 17028. 1. 5. 22.0 6.0 0.0 1. 14.0 11.5 5. 4. 0.0 0. 1. + 17033. 1. 5. 42.0 16.5 1.0 2. 12.0 20.0 5. 3. 0.0 0. 1. + 17041. 1. 4. 42.0 23.0 2.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 17044. 1. 2. 42.0 23.0 4.0 2. 14.0 40.0 5. 6. 0.0 0. 1. + 17045. 1. 4. 32.0 9.0 2.0 2. 14.0 20.0 3. 2. 0.0 0. 1. + 17046. 1. 5. 42.0 16.5 1.0 4. 12.0 14.0 4. 5. 0.0 0. 1. + 17051. 1. 4. 32.0 13.0 3.0 2. 12.0 11.5 2. 2. 0.0 0. 1. + 17052. 1. 4. 22.0 2.5 1.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 17053. 1. 5. 22.0 2.5 0.0 3. 14.0 11.5 4. 4. 0.0 0. 1. + 17054. 1. 5. 27.0 2.5 0.0 2. 20.0 6.5 1. 6. 0.0 0. 1. + 17062. 1. 5. 27.0 6.0 0.0 3. 16.0 14.0 4. 2. 0.0 0. 1. + 17069. 1. 4. 32.0 13.0 2.0 3. 14.0 20.0 3. 4. 0.0 0. 1. + 17075. 1. 4. 27.0 6.0 0.0 2. 16.0 20.0 4. 6. 0.0 0. 1. + 17080. 1. 5. 17.5 0.5 0.0 1. 14.0 4.0 3. 2. 0.0 0. 1. + 17087. 1. 5. 32.0 16.5 2.0 4. 12.0 9.0 3. 4. 0.0 0. 1. + 17094. 1. 5. 17.5 0.5 0.0 3. 12.0 9.0 6. 2. 0.0 0. 1. + 17101. 1. 4. 22.0 6.0 0.0 2. 14.0 14.0 3. 5. 0.0 0. 1. + 17106. 1. 5. 27.0 2.5 0.0 4. 20.0 20.0 4. 5. 0.0 0. 1. + 17107. 1. 5. 42.0 23.0 1.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 17108. 1. 3. 27.0 9.0 3.0 4. 12.0 11.5 2. 2. 0.0 0. 1. + 17112. 1. 5. 37.0 16.5 4.0 4. 14.0 20.0 3. 4. 0.0 0. 1. + 17116. 1. 4. 22.0 2.5 0.0 3. 14.0 14.0 5. 4. 0.0 0. 1. + 17122. 1. 5. 32.0 9.0 2.0 4. 12.0 11.5 3. 4. 0.0 0. 1. + 17137. 1. 5. 22.0 2.5 2.0 3. 17.0 11.5 4. 4. 0.0 0. 1. + 17144. 1. 5. 32.0 13.0 0.0 4. 12.0 20.0 3. 4. 0.0 0. 1. + 17145. 1. 3. 42.0 23.0 4.0 3. 12.0 20.0 3. 3. 0.0 0. 1. + 17146. 1. 4. 27.0 6.0 2.0 3. 14.0 11.5 3. 5. 0.0 0. 1. + 17148. 1. 4. 22.0 2.5 0.0 2. 16.0 20.0 5. 2. 0.0 0. 1. + 17151. 1. 4. 27.0 9.0 2.0 3. 14.0 20.0 3. 5. 0.0 0. 1. + 17156. 1. 5. 27.0 0.5 0.0 3. 12.0 20.0 3. 5. 0.0 0. 1. + 17159. 1. 5. 27.0 0.5 0.0 4. 17.0 14.0 4. 2. 0.0 0. 1. + 17160. 1. 5. 32.0 13.0 3.0 3. 14.0 11.5 3. 5. 0.0 0. 1. + 17161. 1. 5. 22.0 0.5 1.0 3. 14.0 20.0 4. 4. 0.0 0. 1. + 17167. 1. 5. 22.0 2.5 0.0 2. 12.0 14.0 3. 4. 0.0 0. 1. + 17171. 1. 5. 22.0 2.5 0.0 2. 12.0 9.0 2. 4. 0.0 0. 1. + 17172. 1. 4. 22.0 2.5 0.0 1. 12.0 6.5 3. 3. 0.0 0. 1. + 17174. 1. 4. 27.0 6.0 1.0 1. 14.0 11.5 3. 4. 0.0 0. 1. + 17186. 1. 5. 37.0 23.0 4.0 3. 16.0 20.0 5. 5. 0.0 0. 1. + 17187. 1. 5. 22.0 2.5 0.0 2. 16.0 20.0 4. 4. 0.0 0. 1. + 17190. 1. 3. 37.0 16.5 1.0 2. 20.0 40.0 4. 4. 0.0 0. 1. + 17207. 1. 4. 27.0 2.5 1.0 3. 14.0 9.0 4. 2. 0.0 0. 1. + 17211. 1. 5. 27.0 2.5 0.0 2. 17.0 20.0 4. 4. 0.0 0. 1. + 17220. 1. 5. 42.0 23.0 3.0 3. 17.0 20.0 4. 2. 0.0 0. 1. + 17221. 1. 5. 32.0 9.0 2.0 3. 14.0 14.0 4. 3. 0.0 0. 1. + 17225. 1. 5. 22.0 0.5 0.0 4. 14.0 20.0 3. 5. 0.0 0. 1. + 17227. 1. 3. 27.0 6.0 1.0 2. 12.0 11.5 5. 4. 0.0 0. 1. + 17230. 1. 3. 27.0 9.0 1.0 2. 12.0 14.0 3. 4. 0.0 0. 1. + 17232. 1. 5. 22.0 2.5 0.0 3. 16.0 11.5 5. 4. 0.0 0. 1. + 17241. 1. 4. 32.0 9.0 3.0 4. 16.0 20.0 4. 4. 0.0 0. 1. + 17243. 1. 2. 27.0 6.0 1.0 4. 20.0 20.0 5. 6. 0.0 0. 1. + 17248. 1. 5. 22.0 2.5 0.0 3. 14.0 11.5 4. 2. 0.0 0. 1. + 17249. 1. 5. 27.0 2.5 0.0 3. 16.0 20.0 4. 5. 0.0 0. 1. + 17251. 1. 4. 32.0 13.0 3.0 2. 12.0 11.5 2. 5. 0.0 0. 1. + 17256. 1. 4. 22.0 0.5 0.0 1. 14.0 14.0 3. 5. 0.0 0. 1. + 17257. 1. 5. 27.0 9.0 1.0 2. 12.0 20.0 3. 5. 0.0 0. 1. + 17258. 1. 5. 37.0 16.5 3.0 2. 14.0 20.0 3. 4. 0.0 0. 1. + 17264. 1. 5. 22.0 2.5 0.0 3. 16.0 14.0 4. 5. 0.0 0. 1. + 17266. 1. 4. 22.0 2.5 0.0 2. 12.0 11.5 3. 2. 0.0 0. 1. + 17267. 1. 4. 42.0 23.0 1.0 2. 12.0 20.0 3. 3. 0.0 0. 1. + 17268. 1. 1. 27.0 6.0 1.0 2. 16.0 20.0 3. 5. 0.0 0. 1. + 17276. 1. 5. 27.0 6.0 1.0 3. 20.0 20.0 4. 5. 0.0 0. 1. + 17277. 1. 5. 27.0 2.5 0.0 4. 14.0 11.5 3. 4. 0.0 0. 1. + 17278. 1. 5. 27.0 2.5 0.0 3. 14.0 9.0 3. 4. 0.0 0. 1. + 17280. 1. 5. 32.0 9.0 0.0 2. 12.0 9.0 4. 5. 0.0 0. 1. + 17282. 1. 5. 22.0 2.5 0.0 3. 17.0 20.0 5. 5. 0.0 0. 1. + 17283. 1. 2. 37.0 16.5 3.0 3. 12.0 20.0 3. 4. 0.0 0. 1. + 17285. 1. 5. 27.0 6.0 0.0 3. 17.0 20.0 4. 6. 0.0 0. 1. + 17286. 1. 4. 27.0 6.0 0.0 1. 12.0 20.0 3. 3. 0.0 0. 1. + 17299. 1. 4. 27.0 9.0 1.0 3. 16.0 11.5 3. 2. 0.0 0. 1. + 17301. 1. 5. 22.0 2.5 1.0 3. 12.0 11.5 5. 5. 0.0 0. 1. + 17305. 1. 4. 17.5 2.5 0.0 3. 14.0 6.5 3. 1. 0.0 0. 1. + 17307. 1. 5. 27.0 2.5 0.0 2. 16.0 14.0 4. 5. 0.0 0. 1. + 17314. 1. 4. 22.0 2.5 0.0 2. 12.0 6.5 3. 2. 0.0 0. 1. + 17316. 1. 5. 27.0 9.0 2.0 3. 12.0 20.0 2. 2. 0.0 0. 1. + 17318. 1. 4. 32.0 9.0 1.0 3. 17.0 11.5 3. 6. 0.0 0. 1. + 17319. 1. 4. 37.0 16.5 4.0 2. 14.0 11.5 4. 3. 0.0 0. 1. + 17327. 1. 4. 27.0 9.0 0.0 3. 14.0 11.5 2. 5. 0.0 0. 1. + 17335. 1. 5. 37.0 13.0 3.0 3. 20.0 40.0 4. 6. 0.0 0. 1. + 17338. 1. 4. 27.0 2.5 1.0 3. 16.0 9.0 4. 2. 0.0 0. 1. + 17346. 1. 5. 27.0 2.5 0.0 2. 14.0 40.0 4. 6. 0.0 0. 1. + 17349. 1. 4. 22.0 2.5 0.0 2. 12.0 9.0 3. 2. 0.0 0. 1. + 17354. 1. 4. 27.0 6.0 0.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 17356. 1. 4. 27.0 13.0 3.0 2. 12.0 14.0 3. 4. 0.0 0. 1. + 17357. 1. 4. 27.0 6.0 1.0 3. 14.0 14.0 5. 5. 0.0 0. 1. + 17359. 1. 5. 27.0 6.0 1.0 4. 16.0 11.5 4. 4. 0.0 0. 1. + 17362. 1. 3. 27.0 9.0 0.0 2. 14.0 20.0 3. 5. 0.0 0. 1. + 17363. 1. 4. 42.0 23.0 3.0 4. 14.0 40.0 3. 3. 0.0 0. 1. + 17364. 1. 4. 32.0 13.0 2.0 2. 12.0 20.0 5. 5. 0.0 0. 1. + 17368. 1. 5. 27.0 6.0 0.0 4. 20.0 6.5 4. 1. 0.0 0. 1. + 17370. 1. 5. 37.0 23.0 4.0 2. 14.0 20.0 3. 4. 0.0 0. 1. + 17375. 1. 5. 22.0 2.5 0.0 2. 12.0 9.0 3. 4. 0.0 0. 1. + 17382. 1. 5. 22.0 2.5 1.0 4. 14.0 11.5 3. 4. 0.0 0. 1. + 17388. 1. 4. 22.0 2.5 0.0 3. 12.0 11.5 3. 4. 0.0 0. 1. + 17393. 1. 4. 17.5 2.5 0.0 2. 12.0 6.5 3. 4. 0.0 0. 1. + 17395. 1. 3. 22.0 2.5 1.0 3. 12.0 9.0 3. 4. 0.0 0. 1. + 17396. 1. 5. 17.5 0.5 0.0 4. 12.0 6.5 3. 2. 0.0 0. 1. + 17403. 1. 4. 37.0 23.0 3.0 4. 9.0 11.5 2. 2. 0.0 0. 1. + 17408. 1. 5. 42.0 23.0 4.0 2. 14.0 14.0 5. 4. 0.0 0. 1. + 17410. 1. 4. 32.0 16.5 2.0 3. 14.0 20.0 3. 4. 0.0 0. 1. + 17412. 1. 4. 22.0 2.5 2.0 3. 14.0 11.5 5. 4. 0.0 0. 1. + 17413. 1. 5. 17.5 0.5 0.0 2. 12.0 11.5 3. 4. 0.0 0. 1. + 17415. 1. 5. 37.0 16.5 3.0 4. 14.0 11.5 3. 4. 0.0 0. 1. + 17418. 1. 4. 27.0 9.0 1.0 3. 12.0 14.0 3. 3. 0.0 0. 1. + 17426. 1. 5. 37.0 16.5 3.0 2. 14.0 11.5 3. 3. 0.0 0. 1. + 17431. 1. 3. 42.0 13.0 2.0 3. 17.0 20.0 4. 4. 0.0 0. 1. + 17433. 1. 5. 37.0 23.0 4.0 4. 16.0 20.0 4. 6. 0.0 0. 1. + 17434. 1. 5. 37.0 23.0 1.0 3. 14.0 20.0 3. 5. 0.0 0. 1. + 17445. 1. 4. 42.0 23.0 3.0 3. 17.0 40.0 4. 2. 0.0 0. 1. + 17449. 1. 4. 27.0 6.0 1.0 3. 20.0 20.0 4. 4. 0.0 0. 1. + 17450. 1. 5. 32.0 9.0 0.0 4. 20.0 20.0 4. 6. 0.0 0. 1. + 17452. 1. 4. 27.0 2.5 0.0 4. 17.0 20.0 4. 4. 0.0 0. 1. + 17454. 1. 3. 17.5 2.5 0.0 3. 12.0 6.5 4. 4. 0.0 0. 1. + 17471. 1. 5. 22.0 2.5 0.0 3. 12.0 40.0 2. 2. 0.0 0. 1. + 17472. 1. 5. 37.0 13.0 3.0 1. 20.0 20.0 4. 5. 0.0 0. 1. + 17473. 1. 5. 27.0 16.5 2.0 3. 12.0 9.0 4. 4. 0.0 0. 1. + 17474. 1. 4. 22.0 2.5 1.0 3. 14.0 11.5 3. 5. 0.0 0. 1. + 17506. 1. 4. 42.0 16.5 4.0 3. 9.0 11.5 2. 2. 0.0 0. 1. + 17508. 1. 4. 22.0 2.5 0.0 2. 14.0 9.0 3. 5. 0.0 0. 1. + 17509. 1. 4. 42.0 23.0 2.0 3. 14.0 20.0 4. 2. 0.0 0. 1. + 17517. 1. 5. 32.0 13.0 2.0 2. 14.0 20.0 2. 6. 0.0 0. 1. + 17520. 1. 4. 32.0 13.0 2.0 3. 17.0 20.0 4. 5. 0.0 0. 1. + 17523. 1. 5. 22.0 2.5 1.0 1. 12.0 9.0 5. 1. 0.0 0. 1. + 17533. 1. 5. 22.0 2.5 0.0 4. 16.0 20.0 4. 2. 0.0 0. 1. + 17544. 1. 5. 37.0 9.0 0.0 3. 20.0 40.0 4. 6. 0.0 0. 1. + 17547. 1. 5. 42.0 23.0 2.0 3. 14.0 9.0 3. 5. 0.0 0. 1. + 17551. 1. 5. 32.0 9.0 2.0 3. 16.0 11.5 4. 4. 0.0 0. 1. + 17553. 1. 5. 22.0 6.0 0.0 1. 12.0 14.0 3. 2. 0.0 0. 1. + 17558. 1. 4. 27.0 6.0 2.0 2. 12.0 9.0 2. 2. 0.0 0. 1. + 17564. 1. 4. 22.0 2.5 0.0 2. 12.0 11.5 3. 4. 0.0 0. 1. + 17569. 1. 5. 27.0 2.5 0.0 4. 16.0 6.5 4. 4. 0.0 0. 1. + 17573. 1. 5. 32.0 16.5 3.0 4. 14.0 20.0 2. 4. 0.0 0. 1. + 17574. 1. 4. 37.0 16.5 2.0 1. 12.0 20.0 3. 4. 0.0 0. 1. + 17575. 1. 5. 22.0 2.5 0.0 3. 12.0 9.0 3. 3. 0.0 0. 1. + 17578. 1. 4. 37.0 16.5 4.0 2. 12.0 11.5 2. 2. 0.0 0. 1. + 17580. 1. 3. 27.0 9.0 1.0 3. 17.0 14.0 4. 1. 0.0 0. 1. + 17585. 1. 5. 22.0 2.5 0.0 1. 17.0 9.0 2. 2. 0.0 0. 1. + 17596. 1. 5. 22.0 2.5 0.0 1. 14.0 9.0 3. 4. 0.0 0. 1. + 17598. 1. 5. 22.0 2.5 0.0 2. 16.0 14.0 4. 5. 0.0 0. 1. + 17602. 1. 5. 27.0 6.0 0.0 2. 16.0 20.0 3. 5. 0.0 0. 1. + 17608. 1. 4. 22.0 2.5 0.0 3. 14.0 11.5 5. 4. 0.0 0. 1. + 17616. 1. 5. 27.0 2.5 0.0 1. 17.0 11.5 4. 6. 0.0 0. 1. + 17620. 1. 5. 42.0 23.0 1.0 4. 20.0 40.0 4. 3. 0.0 0. 1. + 17625. 1. 4. 17.5 0.5 0.0 2. 14.0 4.0 3. 1. 0.0 0. 1. + 17627. 1. 5. 22.0 6.0 1.0 3. 12.0 11.5 2. 3. 0.0 0. 1. + 17636. 1. 4. 22.0 6.0 2.0 2. 9.0 6.5 2. 3. 0.0 0. 1. + 17643. 1. 5. 27.0 2.5 0.0 4. 16.0 20.0 5. 4. 0.0 0. 1. + 17646. 1. 4. 22.0 2.5 1.0 2. 12.0 6.5 3. 2. 0.0 0. 1. + 17651. 1. 3. 32.0 2.5 0.0 4. 17.0 14.0 6. 6. 0.0 0. 1. + 17661. 1. 5. 37.0 16.5 3.0 4. 14.0 20.0 4. 6. 0.0 0. 1. + 17668. 1. 5. 32.0 13.0 4.0 2. 12.0 11.5 5. 1. 0.0 0. 1. + 17669. 1. 3. 42.0 23.0 3.0 4. 16.0 14.0 3. 5. 0.0 0. 1. + 17673. 1. 5. 27.0 2.5 0.0 3. 12.0 20.0 3. 4. 0.0 0. 1. + 17674. 1. 5. 32.0 2.5 1.0 3. 20.0 20.0 4. 4. 0.0 0. 1. + 17676. 1. 5. 27.0 9.0 2.0 3. 12.0 9.0 2. 4. 0.0 0. 1. + 17690. 1. 3. 27.0 2.5 0.0 2. 14.0 14.0 3. 3. 0.0 0. 1. + 17691. 1. 5. 17.5 2.5 1.0 2. 12.0 6.5 5. 2. 0.0 0. 1. + 17696. 1. 4. 37.0 16.5 3.0 2. 17.0 40.0 4. 5. 0.0 0. 1. + 17700. 1. 4. 27.0 2.5 1.0 3. 16.0 40.0 4. 6. 0.0 0. 1. + 17705. 1. 5. 22.0 2.5 1.0 3. 14.0 11.5 3. 5. 0.0 0. 1. + 17706. 1. 4. 27.0 2.5 0.0 1. 20.0 40.0 5. 5. 0.0 0. 1. + 17707. 1. 5. 22.0 2.5 0.0 3. 14.0 14.0 5. 5. 0.0 0. 1. + 17716. 1. 5. 42.0 23.0 5.5 3. 14.0 14.0 4. 4. 0.0 0. 1. + 17718. 1. 5. 42.0 23.0 4.0 3. 14.0 14.0 3. 2. 0.0 0. 1. + 17721. 1. 5. 37.0 13.0 2.0 2. 20.0 40.0 6. 6. 0.0 0. 1. + 17723. 1. 5. 27.0 13.0 2.0 3. 14.0 20.0 4. 5. 0.0 0. 1. + 17726. 1. 4. 27.0 13.0 2.0 2. 12.0 6.5 2. 2. 0.0 0. 1. + 17742. 1. 5. 37.0 23.0 3.0 2. 12.0 14.0 4. 4. 0.0 0. 1. + 17748. 1. 5. 22.0 2.5 0.0 2. 17.0 11.5 5. 3. 0.0 0. 1. + 17750. 1. 5. 27.0 6.0 1.0 2. 12.0 14.0 2. 4. 0.0 0. 1. + 17752. 1. 5. 22.0 2.5 0.0 2. 14.0 11.5 3. 4. 0.0 0. 1. + 17758. 1. 5. 37.0 13.0 2.0 3. 16.0 20.0 4. 4. 0.0 0. 1. + 17780. 1. 5. 27.0 6.0 0.0 2. 17.0 20.0 5. 6. 0.0 0. 1. + 17786. 1. 5. 27.0 0.5 0.0 3. 12.0 40.0 3. 4. 0.0 0. 1. + 17796. 1. 2. 37.0 16.5 3.0 1. 14.0 14.0 3. 2. 0.0 0. 1. + 17797. 1. 5. 37.0 23.0 2.0 3. 20.0 40.0 4. 4. 0.0 0. 1. + 17802. 1. 2. 32.0 9.0 2.0 4. 14.0 14.0 3. 5. 0.0 0. 1. + 17803. 1. 5. 32.0 13.0 2.0 4. 20.0 20.0 4. 5. 0.0 0. 1. + 17805. 1. 5. 22.0 2.5 1.0 4. 16.0 11.5 4. 5. 0.0 0. 1. + 17812. 1. 5. 22.0 2.5 0.0 3. 20.0 11.5 4. 4. 0.0 0. 1. + 17813. 1. 3. 37.0 13.0 3.0 2. 16.0 11.5 4. 3. 0.0 0. 1. + 17818. 1. 3. 17.5 2.5 1.0 1. 9.0 6.5 3. 3. 0.0 0. 1. + 17820. 1. 4. 27.0 2.5 0.0 2. 14.0 11.5 3. 1. 0.0 0. 1. + 17821. 1. 1. 27.0 6.0 1.0 3. 14.0 14.0 3. 4. 0.0 0. 1. + 17824. 1. 4. 27.0 6.0 2.0 2. 14.0 40.0 4. 5. 0.0 0. 1. + 17829. 1. 2. 42.0 23.0 2.0 2. 14.0 20.0 3. 4. 0.0 0. 1. + 17832. 1. 5. 32.0 13.0 2.0 3. 14.0 20.0 4. 6. 0.0 0. 1. + 17841. 1. 4. 22.0 2.5 1.0 3. 14.0 11.5 3. 4. 0.0 0. 1. + 17866. 1. 4. 27.0 2.5 0.0 1. 14.0 9.0 2. 5. 0.0 0. 1. + 17872. 1. 4. 22.0 2.5 0.0 3. 20.0 40.0 6. 6. 0.0 0. 1. + 17873. 1. 3. 37.0 2.5 0.0 3. 12.0 11.5 3. 3. 0.0 0. 1. + 17876. 1. 5. 27.0 2.5 0.0 3. 17.0 20.0 4. 4. 0.0 0. 1. + 17878. 1. 5. 27.0 2.5 0.0 3. 16.0 20.0 3. 5. 0.0 0. 1. + 17879. 1. 4. 27.0 6.0 1.0 2. 20.0 20.0 4. 2. 0.0 0. 1. + 17880. 1. 4. 27.0 9.0 2.0 2. 14.0 20.0 4. 4. 0.0 0. 1. + 17892. 1. 4. 27.0 2.5 0.0 3. 17.0 11.5 4. 4. 0.0 0. 1. + 17895. 1. 5. 27.0 6.0 0.0 4. 16.0 14.0 4. 5. 0.0 0. 1. + 17901. 1. 5. 42.0 23.0 5.5 3. 12.0 14.0 3. 2. 0.0 0. 1. + 17905. 1. 5. 22.0 2.5 0.0 3. 16.0 9.0 4. 1. 0.0 0. 1. + 17914. 1. 5. 22.0 0.5 0.0 3. 14.0 9.0 2. 2. 0.0 0. 1. + 17916. 1. 4. 22.0 2.5 1.0 3. 14.0 9.0 2. 4. 0.0 0. 1. + 17925. 1. 5. 22.0 2.5 1.0 4. 12.0 6.5 3. 4. 0.0 0. 1. + 17928. 1. 5. 42.0 23.0 4.0 3. 14.0 14.0 5. 4. 0.0 0. 1. + 17929. 1. 5. 27.0 6.0 0.0 4. 14.0 6.5 4. 4. 0.0 0. 1. + 17934. 1. 5. 42.0 23.0 2.0 3. 12.0 40.0 2. 2. 0.0 0. 1. + 17939. 1. 4. 32.0 13.0 3.0 3. 16.0 20.0 4. 2. 0.0 0. 1. + 17940. 1. 5. 27.0 13.0 3.0 3. 16.0 14.0 4. 2. 0.0 0. 1. + 17943. 1. 5. 27.0 9.0 1.0 2. 14.0 20.0 4. 5. 0.0 0. 1. + 17946. 1. 4. 22.0 2.5 0.0 2. 16.0 6.5 4. 1. 0.0 0. 1. + 17947. 1. 5. 17.5 2.5 0.0 4. 12.0 14.0 3. 5. 0.0 0. 1. + 17952. 1. 4. 32.0 16.5 2.0 2. 12.0 20.0 3. 4. 0.0 0. 1. + 17953. 1. 5. 27.0 9.0 1.0 3. 12.0 40.0 3. 5. 0.0 0. 1. + 17960. 1. 4. 22.0 2.5 0.0 4. 14.0 11.5 4. 2. 0.0 0. 1. + 17961. 1. 5. 22.0 2.5 1.0 2. 12.0 11.5 3. 2. 0.0 0. 1. + 17962. 1. 5. 27.0 0.5 0.0 4. 20.0 20.0 4. 4. 0.0 0. 1. + 17963. 1. 5. 37.0 16.5 3.0 3. 14.0 20.0 5. 5. 0.0 0. 1. + 17967. 1. 5. 32.0 13.0 2.0 4. 14.0 20.0 3. 6. 0.0 0. 1. + 17971. 1. 4. 22.0 0.5 0.0 2. 16.0 9.0 3. 1. 0.0 0. 1. + 17973. 1. 5. 42.0 23.0 2.0 4. 12.0 20.0 3. 2. 0.0 0. 1. + 17975. 1. 5. 22.0 2.5 2.0 2. 14.0 6.5 3. 5. 0.0 0. 1. + 17978. 1. 5. 42.0 23.0 4.0 4. 12.0 20.0 3. 5. 0.0 0. 1. + 17981. 1. 4. 27.0 6.0 0.0 3. 12.0 20.0 3. 4. 0.0 0. 1. + 17982. 1. 5. 32.0 13.0 3.0 3. 12.0 20.0 3. 5. 0.0 0. 1. + 17990. 1. 5. 32.0 13.0 4.0 2. 14.0 20.0 4. 4. 0.0 0. 1. + 17997. 1. 3. 27.0 6.0 2.0 4. 14.0 6.5 3. 1. 0.0 0. 1. + 17998. 1. 4. 22.0 2.5 0.0 3. 16.0 11.5 5. 5. 0.0 0. 1. + 17999. 1. 5. 22.0 2.5 0.0 2. 14.0 20.0 3. 3. 0.0 0. 1. + 19006. 1. 5. 32.0 13.0 2.0 3. 17.0 40.0 4. 3. 0.0 0. 1. + 19009. 1. 4. 32.0 13.0 1.0 1. 16.0 40.0 5. 5. 0.0 0. 1. + 19013. 1. 5. 22.0 2.5 0.0 2. 14.0 6.5 3. 1. 0.0 0. 1. + 19015. 1. 5. 32.0 6.0 1.0 3. 14.0 20.0 3. 4. 0.0 0. 1. + 19020. 1. 4. 22.0 2.5 0.0 2. 16.0 4.0 2. 4. 0.0 0. 1. +END OF RB DATA diff --git a/statsmodels/datasets/fertility/__init__.py b/statsmodels/datasets/fertility/__init__.py new file mode 100644 index 0000000..8d16d00 --- /dev/null +++ b/statsmodels/datasets/fertility/__init__.py @@ -0,0 +1 @@ +from .data import * \ No newline at end of file diff --git a/statsmodels/datasets/fertility/data.py b/statsmodels/datasets/fertility/data.py new file mode 100644 index 0000000..50fbcf0 --- /dev/null +++ b/statsmodels/datasets/fertility/data.py @@ -0,0 +1,83 @@ +#! /usr/bin/env python + +"""World Bank Fertility Data.""" + +__docformat__ = 'restructuredtext' + +COPYRIGHT = """This data is distributed according to the World Bank terms of use. See SOURCE.""" +TITLE = """World Bank Fertility Data""" +SOURCE = """ +This data has been acquired from + +The World Bank: Fertility rate, total (births per woman): World Development Indicators + +At the following URL: http://data.worldbank.org/indicator/SP.DYN.TFRT.IN + +The sources for these statistics are listed as + +(1) United Nations Population Division. World Population Prospects +(2) United Nations Statistical Division. Population and Vital Statistics Repot (various years) +(3) Census reports and other statistical publications from national statistical offices +(4) Eurostat: Demographic Statistics +(5) Secretariat of the Pacific Community: Statistics and Demography Programme +(6) U.S. Census Bureau: International Database + +The World Bank Terms of Use can be found at the following URL + +http://go.worldbank.org/OJC02YMLA0 +""" + +DESCRSHORT = """Total fertility rate represents the number of children that would be born to a woman if she were to live to the end of her childbearing years and bear children in accordance with current age-specific fertility rates.""" + +DESCRLONG = DESCRSHORT + +#suggested notes +NOTE = """ +:: + + This is panel data in wide-format + + Number of observations: 219 + Number of variables: 58 + Variable name definitions: + Country Name + Country Code + Indicator Name - The World Bank Series indicator + Indicator Code - The World Bank Series code + 1960 - 2013 - The fertility rate for the given year +""" +from statsmodels.compat import lzip, lmap + +import numpy as np +import pandas as pd +from statsmodels.datasets import utils as du +from os.path import dirname, abspath, join + + +def load(): + """ + Load the data and return a Dataset class instance. + + Returns + ------- + Dataset instance: + See DATASET_PROPOSAL.txt for more information. + """ + data = _get_data() + names = data.columns.tolist() + dtype = lzip(names, ['a45', 'a3', 'a40', 'a14'] + ['qQ1}9OfoV9 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 Zyebz|xv0u-HRtH^%P#64|DXEve*hwj59 + +See randhie/src for the original data and description. The data included +here contains only a subset of the original data. The data varies slightly +compared to that reported in Cameron and Trivedi. +""" + +DESCRSHORT = """The RAND Co. Health Insurance Experiment Data""" + +DESCRLONG = """""" + +NOTE = """:: + + Number of observations - 20,190 + Number of variables - 10 + Variable name definitions:: + + mdvis - Number of outpatient visits to an MD + lncoins - ln(coinsurance + 1), 0 <= coninsurance <= 100 + idp - 1 if individual deductible plan, 0 otherwise + lpi - ln(max(1, annual participation incentive payment)) + fmde - 0 if idp = 1; ln(max(1, MDE/(0.01 coinsurance))) otherwise + physlm - 1 if the person has a physical limitation + disea - number of chronic diseases + hlthg - 1 if self-rated health is good + hlthf - 1 if self-rated health is fair + hlthp - 1 if self-rated health is poor + (Omitted category is excellent self-rated health) +""" + +from numpy import recfromtxt, column_stack, array +from statsmodels.datasets import utils as du +from os.path import dirname, abspath + +PATH = '%s/%s' % (dirname(abspath(__file__)), 'randhie.csv') + +def load(): + """ + Loads the RAND HIE data and returns a Dataset class. + + ---------- + endog - response variable, mdvis + exog - design + + Returns + Load instance: + a class of the data with array attrbutes 'endog' and 'exog' + """ + data = _get_data() + return du.process_recarray(data, endog_idx=0, dtype=float) + +def load_pandas(): + """ + Loads the RAND HIE data and returns a Dataset class. + + ---------- + endog - response variable, mdvis + exog - design + + Returns + Load instance: + a class of the data with array attrbutes 'endog' and 'exog' + """ + from pandas import read_csv + data = read_csv(PATH) + return du.process_recarray_pandas(data, endog_idx=0) + +def _get_data(): + with open(PATH, "rb") as f: + data = recfromtxt(f, delimiter=",", names=True, dtype=float) + return data diff --git a/statsmodels/datasets/randhie/randhie.csv b/statsmodels/datasets/randhie/randhie.csv new file mode 100644 index 0000000..45cfb7f --- /dev/null +++ b/statsmodels/datasets/randhie/randhie.csv @@ -0,0 +1,20191 @@ +mdvis,lncoins,idp,lpi,fmde,physlm,disea,hlthg,hlthf,hlthp +0,4.61512,1,6.907755,0,0,13.73189,1,0,0 +2,4.61512,1,6.907755,0,0,13.73189,1,0,0 +0,4.61512,1,6.907755,0,0,13.73189,1,0,0 +0,4.61512,1,6.907755,0,0,13.73189,1,0,0 +0,4.61512,1,6.907755,0,0,13.73189,1,0,0 +0,4.61512,1,6.907755,0,0,13.73189,0,0,0 +0,4.61512,1,6.907755,0,0,13.73189,0,0,0 +1,4.61512,1,6.907755,0,0,13.73189,0,0,0 +0,4.61512,1,6.907755,0,0,13.73189,0,0,0 +0,4.61512,1,6.907755,0,0,13.73189,0,0,0 +0,4.61512,1,6.907755,0,0,13.73189,0,0,0 +1,4.61512,1,6.907755,0,0,13.73189,0,0,0 +0,4.61512,1,6.907755,0,0,13.73189,0,0,0 +0,4.61512,1,6.907755,0,0,13.73189,0,0,0 +0,4.61512,1,6.907755,0,0,13.73189,0,0,0 +6,4.61512,1,6.907755,0,0,13.73189,1,0,0 +2,4.61512,1,6.907755,0,0,13.73189,1,0,0 +0,4.61512,1,6.907755,0,0,13.73189,1,0,0 +0,4.61512,1,6.907755,0,0,13.73189,1,0,0 +0,4.61512,1,6.907755,0,0,13.73189,1,0,0 +1,0,1,6.109248,0,0,13.73189,1,0,0 +0,0,1,6.109248,0,0,13.73189,1,0,0 +0,0,1,6.109248,0,0,13.73189,1,0,0 +0,0,1,6.109248,0,0,13.73189,1,0,0 +0,0,1,6.109248,0,0,13.73189,1,0,0 +1,0,1,6.109248,0,1,13,1,0,0 +0,0,1,6.109248,0,1,13,1,0,0 +1,0,1,6.109248,0,1,13,1,0,0 +2,0,1,6.109248,0,1,13,1,0,0 +4,0,1,6.109248,0,1,13,1,0,0 +0,0,1,6.109248,0,0,17.4,1,0,0 +0,0,1,6.109248,0,0,17.4,1,0,0 +0,0,1,6.109248,0,0,17.4,1,0,0 +0,0,1,6.109248,0,0,17.4,1,0,0 +0,0,1,6.109248,0,0,17.4,1,0,0 +0,0,1,0,0,0,4.3,0,0,0 +0,0,1,0,0,0,4.3,0,0,0 +0,0,1,0,0,0,4.3,0,0,0 +0,0,0,6.006353,0,0,13,1,0,0 +0,0,0,6.006353,0,0,13,1,0,0 +0,0,0,6.006353,0,0,13,1,0,0 +1,0,0,6.006353,0,0,4.3,1,0,0 +0,0,0,6.006353,0,0,4.3,1,0,0 +0,0,0,6.006353,0,0,4.3,1,0,0 +0,0,0,6.006353,0,0,13,1,0,0 +0,0,0,6.006353,0,0,13,1,0,0 +0,0,0,6.006353,0,0,13,1,0,0 +1,0,0,6.006353,0,0,13,1,0,0 +0,0,0,6.006353,0,0,13,1,0,0 +7,0,0,6.006353,0,0,13,1,0,0 +1,0,0,0,0,0,4.3,0,0,0 +0,0,0,0,0,0,4.3,0,0,0 +2,0,0,0,0,0,4.3,0,0,0 +8,0,0,0,0,0,0,0,0,0 +1,0,0,0,0,0,0,0,0,0 +2,0,0,0,0,0,0,0,0,0 +1,0,0,0,0,0,8.7,0,0,0 +1,0,0,0,0,0,8.7,0,0,0 +0,0,0,0,0,0,8.7,0,0,0 +4,4.61512,1,6.802395,0,0,17.4,1,0,0 +5,4.61512,1,6.802395,0,0,17.4,1,0,0 +14,4.61512,1,6.802395,0,0,17.4,1,0,0 +3,4.61512,1,6.802395,0,0,13,1,0,0 +3,4.61512,1,6.802395,0,0,13,1,0,0 +5,4.61512,1,6.802395,0,0,13,1,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +5,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +0,3.258096,0,6.907755,8.294049,0,0,0,0,0 +0,3.258096,0,6.907755,8.294049,0,0,0,0,0 +2,3.258096,0,6.907755,8.294049,0,0,0,0,0 +1,3.258096,0,6.907755,8.294049,0,0,0,0,0 +0,3.258096,0,6.907755,8.294049,0,0,0,0,0 +2,3.258096,0,6.907755,8.294049,1,26.1,0,0,0 +1,3.258096,0,6.907755,8.294049,1,26.1,0,0,0 +6,3.258096,0,6.907755,8.294049,1,26.1,0,0,0 +2,3.258096,0,6.907755,8.294049,1,26.1,0,0,0 +1,3.258096,0,6.907755,8.294049,1,26.1,0,0,0 +5,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +3,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +4,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +1,3.258096,0,6.907755,8.294049,0,30.4,0,0,0 +1,3.258096,0,6.907755,8.294049,0,30.4,0,0,0 +0,3.258096,0,6.907755,8.294049,0,30.4,0,0,0 +15,3.258096,0,6.907755,8.294049,0,17.4,1,0,0 +6,3.258096,0,6.907755,8.294049,0,17.4,1,0,0 +2,3.258096,0,6.907755,8.294049,0,17.4,1,0,0 +4,3.258096,0,6.907755,8.294049,0,4.3,0,0,0 +4,3.258096,0,6.907755,8.294049,0,4.3,0,0,0 +3,3.258096,0,6.907755,8.294049,0,4.3,0,0,0 +21,0,0,0,0,0,13,0,1,0 +15,0,0,0,0,0,13,0,1,0 +20,0,0,0,0,0,13,0,1,0 +20,0,0,0,0,0,13,0,1,0 +17,0,0,0,0,0,13,0,1,0 +7,0,0,0,0,0,17.4,1,0,0 +8,0,0,0,0,0,17.4,1,0,0 +6,0,0,0,0,0,17.4,1,0,0 +15,0,0,0,0,0,17.4,1,0,0 +10,0,0,0,0,0,17.4,1,0,0 +6,3.931826,0,6.683361,7.376508,0,0,1,0,0 +3,3.931826,0,6.683361,7.376508,0,0,1,0,0 +7,3.931826,0,6.683361,7.376508,0,0,1,0,0 +1,3.931826,0,6.683361,7.376508,0,34.8,1,0,0 +1,3.931826,0,6.683361,7.376508,0,34.8,1,0,0 +0,3.931826,0,6.683361,7.376508,0,34.8,1,0,0 +1,3.931826,0,6.683361,7.376508,0,13,0,1,0 +1,3.931826,0,6.683361,7.376508,0,13,0,1,0 +0,3.931826,0,6.683361,7.376508,0,13,0,1,0 +1,4.61512,1,6.907755,0,0,0,1,0,0 +4,4.61512,1,6.907755,0,0,0,1,0,0 +12,4.61512,1,6.907755,0,0,0,1,0,0 +3,4.61512,1,6.907755,0,0,17.4,0,1,0 +2,4.61512,1,6.907755,0,0,17.4,0,1,0 +2,4.61512,1,6.907755,0,0,17.4,0,1,0 +1,4.61512,1,6.907755,0,0,13.73189,1,0,0 +3,4.61512,1,6.907755,0,0,13.73189,1,0,0 +2,4.61512,1,6.907755,0,0,13.73189,1,0,0 +2,4.61512,1,6.907755,0,0,8.7,1,0,0 +2,4.61512,1,6.907755,0,0,8.7,1,0,0 +1,4.61512,1,6.907755,0,0,8.7,1,0,0 +3,4.61512,1,6.907755,0,1,13,1,0,0 +1,4.61512,1,6.907755,0,1,13,1,0,0 +4,4.61512,1,6.907755,0,1,13,1,0,0 +20,4.61512,1,6.907755,0,0,21.7,1,0,0 +15,4.61512,1,6.907755,0,0,21.7,1,0,0 +11,4.61512,1,6.907755,0,0,21.7,1,0,0 +69,0,0,6.393591,0,1,13.73189,0,1,0 +58,0,0,6.393591,0,1,13.73189,0,1,0 +63,0,0,6.393591,0,1,13.73189,0,1,0 +2,0,0,6.393591,0,1,13.73189,0,0,0 +3,0,0,6.393591,0,1,13.73189,0,0,0 +2,0,0,6.393591,0,1,13.73189,0,0,0 +11,0,0,0,0,0,13.73189,0,0,0 +9,0,0,0,0,0,13.73189,0,0,0 +5,0,0,0,0,0,13.73189,0,0,0 +3,0,0,0,0,0,13.73189,0,0,0 +8,0,0,0,0,0,13.73189,0,0,0 +6,0,0,0,0,0,13.73189,1,0,0 +3,0,0,0,0,0,13.73189,1,0,0 +4,0,0,0,0,0,13.73189,1,0,0 +3,0,0,0,0,0,13.73189,1,0,0 +2,0,0,0,0,0,13.73189,1,0,0 +6,0,0,0,0,0,17.4,0,0,0 +10,0,0,0,0,0,17.4,0,0,0 +12,0,0,0,0,0,17.4,0,0,0 +35,0,0,0,0,0,13,0,0,0 +9,0,0,0,0,0,13,0,0,0 +6,0,0,0,0,0,13,0,0,0 +6,0,0,0,0,0,13,0,0,0 +14,0,0,0,0,0,13,0,0,0 +5,4.61512,1,6.907755,0,0,13.73189,1,0,0 +4,4.61512,1,6.907755,0,0,13.73189,1,0,0 +2,4.61512,1,6.907755,0,0,13.73189,1,0,0 +0,4.61512,1,6.907755,0,0,13.73189,1,0,0 +0,4.61512,1,6.907755,0,0,13.73189,1,0,0 +1,4.61512,1,6.907755,0,0,13.73189,0,0,0 +2,4.61512,1,6.907755,0,0,13.73189,0,0,0 +1,4.61512,1,6.907755,0,0,13.73189,0,0,0 +5,4.61512,1,6.907755,0,0,13.73189,0,0,0 +3,4.61512,1,6.907755,0,0,13.73189,0,0,0 +3,4.61512,1,6.907755,0,0,13.73189,0,0,0 +3,4.61512,1,6.907755,0,0,13.73189,0,0,0 +3,4.61512,1,6.907755,0,0,13.73189,0,0,0 +1,4.61512,1,6.907755,0,0,13.73189,0,0,0 +2,4.61512,1,6.907755,0,0,13.73189,0,0,0 +3,4.61512,1,6.907755,0,0,13.73189,0,0,0 +2,4.61512,1,6.907755,0,0,13.73189,0,0,0 +1,4.61512,1,6.907755,0,0,13.73189,0,0,0 +1,4.61512,1,6.907755,0,0,13.73189,0,0,0 +1,4.61512,1,6.907755,0,0,13.73189,0,0,0 +2,4.61512,1,6.907755,0,0,13.73189,0,0,0 +3,4.61512,1,6.907755,0,0,13.73189,0,0,0 +0,4.61512,1,6.907755,0,0,13.73189,0,0,0 +1,4.61512,1,6.907755,0,0,13.73189,0,0,0 +1,4.61512,1,6.907755,0,0,13.73189,0,0,0 +16,0,0,0,0,1,21.7,1,0,0 +16,0,0,0,0,1,21.7,1,0,0 +17,0,0,0,0,1,21.7,1,0,0 +0,0,0,0,0,0,13,0,0,0 +0,0,0,0,0,0,13,0,0,0 +3,0,0,0,0,0,13,0,0,0 +2,0,0,0,0,0,0,0,0,0 +4,0,0,0,0,0,0,0,0,0 +3,0,0,0,0,0,0,0,0,0 +6,0,0,0,0,0,4.3,1,0,0 +3,0,0,0,0,0,4.3,1,0,0 +3,0,0,0,0,0,4.3,1,0,0 +7,0,0,0,0,0,0,0,0,0 +3,0,0,0,0,0,0,0,0,0 +7,0,0,0,0,0,0,0,0,0 +8,0,0,0,0,0,26.1,0,0,0 +8,0,0,0,0,0,26.1,0,0,0 +4,0,0,0,0,0,26.1,0,0,0 +4,0,0,0,0,0,13.73189,0,0,0 +0,0,0,0,0,0,13.73189,0,0,0 +4,0,0,0,0,0,13.73189,0,0,0 +8,0,0,0,0,1,13.73189,1,0,0 +4,0,0,0,0,1,13.73189,1,0,0 +7,0,0,0,0,1,13.73189,1,0,0 +7,0,0,5.446737,0,1,13,1,0,0 +19,0,0,5.446737,0,1,13,1,0,0 +0,0,0,5.446737,0,1,13,1,0,0 +12,0,0,5.446737,0,0,17.4,0,0,0 +7,0,0,5.446737,0,0,17.4,0,0,0 +3,0,0,5.446737,0,0,17.4,0,0,0 +0,0,0,5.446737,0,0,13.73189,0,0,0 +0,0,0,5.446737,0,0,13.73189,0,0,0 +1,0,0,5.446737,0,0,13.73189,0,0,0 +9,0,0,5.446737,0,0,13.73189,0,0,0 +2,0,0,5.446737,0,0,13.73189,0,0,0 +2,0,0,5.446737,0,0,13.73189,0,0,0 +3,0,0,5.446737,0,0,13.73189,0,0,0 +3,0,0,5.446737,0,0,13.73189,0,0,0 +2,0,0,5.446737,0,0,13.73189,0,0,0 +4,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +3,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +3,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +4,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +2,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +1,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +2,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +0,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +0,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +0,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +2,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +1,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +1,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +2,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +2,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +4,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +5,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +4,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +4,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +5,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +3,3.258096,0,6.907755,8.294049,0,13,1,0,0 +4,3.258096,0,6.907755,8.294049,0,13,1,0,0 +1,3.258096,0,6.907755,8.294049,0,13,1,0,0 +3,3.258096,0,6.907755,8.294049,0,13,1,0,0 +3,3.258096,0,6.907755,8.294049,0,13,1,0,0 +2,3.258096,0,6.907755,8.294049,0,26.1,1,0,0 +1,3.258096,0,6.907755,8.294049,0,26.1,1,0,0 +3,3.258096,0,6.907755,8.294049,0,26.1,1,0,0 +4,3.258096,0,6.907755,8.294049,0,26.1,1,0,0 +1,3.258096,0,6.907755,8.294049,0,26.1,1,0,0 +2,4.61512,1,6.907755,0,0,4.3,0,0,0 +2,4.61512,1,6.907755,0,0,4.3,0,0,0 +2,4.61512,1,6.907755,0,0,4.3,0,0,0 +2,4.61512,1,6.907755,0,0,4.3,0,0,0 +1,4.61512,1,6.907755,0,0,4.3,0,0,0 +4,4.61512,1,6.907755,0,0,17.4,1,0,0 +3,4.61512,1,6.907755,0,0,17.4,1,0,0 +10,4.61512,1,6.907755,0,0,17.4,1,0,0 +5,4.61512,1,6.907755,0,0,17.4,1,0,0 +11,4.61512,1,6.907755,0,0,17.4,1,0,0 +5,3.258096,0,6.907755,8.294049,0,17.4,1,0,0 +3,3.258096,0,6.907755,8.294049,0,17.4,1,0,0 +2,3.258096,0,6.907755,8.294049,0,17.4,1,0,0 +0,3.258096,0,6.907755,8.294049,0,17.4,1,0,0 +5,3.258096,0,6.907755,8.294049,0,17.4,1,0,0 +7,3.258096,0,6.907755,8.294049,1,13.73189,1,0,0 +1,3.258096,0,6.907755,8.294049,1,13.73189,1,0,0 +2,3.258096,0,6.907755,8.294049,1,13.73189,1,0,0 +1,3.258096,0,6.907755,8.294049,1,13.73189,1,0,0 +5,3.258096,0,6.907755,8.294049,1,13.73189,1,0,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +3,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +3,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +4,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +11,3.258096,0,6.907755,8.294049,0,21.7,1,0,0 +7,3.258096,0,6.907755,8.294049,0,21.7,1,0,0 +0,3.258096,0,6.907755,8.294049,0,21.7,1,0,0 +1,3.258096,0,6.300786,7.68708,0,13.73189,1,0,0 +2,3.258096,0,6.300786,7.68708,0,13.73189,1,0,0 +4,3.258096,0,6.300786,7.68708,0,13.73189,1,0,0 +0,3.258096,0,6.300786,7.68708,0,13.73189,1,0,0 +0,3.258096,0,6.300786,7.68708,0,13.73189,1,0,0 +1,3.258096,0,6.300786,7.68708,0,13.73189,1,0,0 +0,3.258096,0,6.300786,7.68708,0,13.73189,1,0,0 +0,3.258096,0,6.300786,7.68708,0,13.73189,1,0,0 +0,3.258096,0,6.300786,7.68708,0,13.73189,1,0,0 +4,4.61512,1,6.55108,0,0,17.4,0,0,0 +10,4.61512,1,6.55108,0,0,17.4,0,0,0 +1,4.61512,1,6.55108,0,0,17.4,0,0,0 +0,4.61512,1,0,0,0,13.73189,1,0,0 +1,4.61512,1,0,0,0,13.73189,1,0,0 +0,4.61512,1,0,0,0,13.73189,1,0,0 +1,4.61512,1,0,0,0,13.73189,1,0,0 +1,4.61512,1,0,0,0,13.73189,1,0,0 +0,4.61512,1,0,0,0,13.73189,1,0,0 +1,4.61512,1,6.907755,0,0,4.3,0,0,0 +0,4.61512,1,6.907755,0,0,4.3,0,0,0 +0,4.61512,1,6.907755,0,0,4.3,0,0,0 +1,4.61512,1,6.907755,0,0,17.4,0,0,0 +1,4.61512,1,6.907755,0,0,17.4,0,0,0 +3,4.61512,1,6.907755,0,0,17.4,0,0,0 +3,4.61512,1,5.843544,0,0,4.3,0,0,0 +2,4.61512,1,5.843544,0,0,4.3,0,0,0 +1,4.61512,1,5.843544,0,0,4.3,0,0,0 +1,4.61512,1,5.843544,0,0,4.3,0,0,0 +2,4.61512,1,5.843544,0,0,4.3,0,0,0 +0,0,0,0,0,0,17.4,1,0,0 +0,0,0,0,0,0,17.4,1,0,0 +0,0,0,0,0,0,17.4,1,0,0 +3,0,0,0,0,0,17.4,1,0,0 +0,0,0,0,0,0,17.4,1,0,0 +6,0,0,0,0,0,4.3,0,0,0 +1,0,0,0,0,0,4.3,0,0,0 +0,0,0,0,0,0,4.3,0,0,0 +5,0,0,0,0,0,4.3,0,0,0 +1,0,0,0,0,0,4.3,0,0,0 +11,4.61512,1,6.907755,0,1,8.7,1,0,0 +44,4.61512,1,6.907755,0,1,8.7,1,0,0 +7,4.61512,1,6.907755,0,1,8.7,1,0,0 +1,4.61512,1,6.907755,0,0,13,1,0,0 +1,4.61512,1,6.907755,0,0,13,1,0,0 +3,4.61512,1,6.907755,0,0,13,1,0,0 +0,4.61512,1,6.907755,0,1,13.73189,1,0,0 +3,4.61512,1,6.907755,0,1,13.73189,1,0,0 +1,4.61512,1,6.907755,0,1,13.73189,1,0,0 +8,4.61512,1,6.907755,0,1,39.1,0,1,0 +6,4.61512,1,6.907755,0,1,39.1,0,1,0 +3,4.61512,1,6.907755,0,1,39.1,0,1,0 +3,3.258096,0,5.420535,6.806829,1,21.7,1,0,0 +3,3.258096,0,5.420535,6.806829,1,21.7,1,0,0 +3,3.258096,0,5.420535,6.806829,1,21.7,1,0,0 +2,3.258096,0,6.272877,7.659172,0,8.7,0,0,0 +1,3.258096,0,6.272877,7.659172,0,8.7,0,0,0 +1,3.258096,0,6.272877,7.659172,0,8.7,0,0,0 +3,4.61512,1,6.907755,0,0,0,1,0,0 +1,4.61512,1,6.907755,0,0,0,1,0,0 +0,4.61512,1,6.907755,0,0,0,1,0,0 +3,4.61512,1,6.907755,0,0,13.73189,1,0,0 +17,4.61512,1,6.907755,0,0,13.73189,1,0,0 +21,4.61512,1,6.907755,0,0,13.73189,1,0,0 +5,4.61512,1,6.907755,0,1,39.1,1,0,0 +5,4.61512,1,6.907755,0,1,39.1,1,0,0 +3,4.61512,1,6.907755,0,1,39.1,1,0,0 +10,0,0,0,0,1,13.73189,0,0,1 +1,0,0,0,0,1,13.73189,0,0,1 +1,0,0,0,0,1,13.73189,0,0,1 +2,0,0,0,0,1,13.73189,0,0,1 +1,0,0,0,0,1,13.73189,0,0,1 +2,0,0,0,0,0,13.73189,0,0,0 +0,0,0,0,0,0,13.73189,0,0,0 +0,0,0,0,0,0,13.73189,0,0,0 +3,0,0,0,0,0,13.73189,0,0,0 +0,0,0,0,0,0,13.73189,0,0,0 +1,0,0,0,0,0,13.73189,0,0,0 +0,0,0,0,0,0,13.73189,0,0,0 +0,0,0,0,0,0,13.73189,0,0,0 +2,0,0,0,0,0,13.73189,0,0,0 +0,0,0,0,0,0,13.73189,0,0,0 +0,0,0,0,0,0,13.73189,0,0,0 +7,0,0,0,0,0,13.73189,0,0,0 +5,0,0,0,0,0,13.73189,0,0,0 +0,0,0,0,0,0,13.73189,0,0,0 +1,0,0,0,0,0,13.73189,0,0,0 +2,0,0,0,0,0,13.73189,1,0,0 +0,0,0,0,0,0,13.73189,1,0,0 +0,0,0,0,0,0,13.73189,1,0,0 +1,0,0,0,0,0,13.73189,1,0,0 +0,0,0,0,0,0,13.73189,1,0,0 +2,0,0,0,0,0,13.73189,0,0,0 +2,0,0,0,0,0,13.73189,0,0,0 +0,0,0,0,0,0,13.73189,0,0,0 +0,0,0,0,0,0,13.73189,0,0,0 +0,0,0,0,0,0,13.73189,0,0,0 +0,0,0,0,0,0,13.73189,1,0,0 +1,0,0,0,0,0,13.73189,1,0,0 +0,0,0,0,0,0,13.73189,1,0,0 +6,0,0,0,0,0,13.73189,1,0,0 +0,0,0,0,0,0,13.73189,1,0,0 +3,0,0,0,0,0,13.73189,1,0,0 +4,0,0,0,0,0,13.73189,1,0,0 +5,0,0,0,0,0,13.73189,1,0,0 +0,0,0,0,0,0,13.73189,0,1,0 +0,0,0,0,0,0,13.73189,0,1,0 +0,0,0,0,0,0,13.73189,0,1,0 +9,0,0,0,0,1,13.73189,0,1,0 +9,0,0,0,0,1,13.73189,0,1,0 +10,0,0,0,0,1,13.73189,0,1,0 +2,3.258096,0,5.720312,7.106606,0,13.73189,0,1,0 +5,3.258096,0,5.720312,7.106606,0,13.73189,0,1,0 +9,3.258096,0,5.720312,7.106606,0,13.73189,0,1,0 +48,3.258096,0,5.720312,7.106606,0,13.73189,0,1,0 +8,3.258096,0,5.720312,7.106606,0,13.73189,0,1,0 +5,4.61512,1,6.907755,0,0,4.3,0,0,0 +8,4.61512,1,6.907755,0,0,4.3,0,0,0 +14,4.61512,1,6.907755,0,0,4.3,0,0,0 +5,4.61512,1,6.907755,0,0,13.73189,0,0,0 +10,4.61512,1,6.907755,0,0,13.73189,0,0,0 +4,4.61512,1,6.907755,0,0,13.73189,0,0,0 +7,4.61512,1,6.907755,0,0,13.73189,0,0,0 +6,4.61512,1,6.907755,0,0,13.73189,0,0,0 +3,4.61512,1,6.907755,0,0,13.73189,0,0,0 +2,4.61512,1,6.907755,0,0,21.7,0,0,0 +2,4.61512,1,6.907755,0,0,21.7,0,0,0 +2,4.61512,1,6.907755,0,0,21.7,0,0,0 +1,4.61512,1,6.907755,0,0,0,0,0,0 +0,4.61512,1,6.907755,0,0,0,0,0,0 +0,4.61512,1,6.907755,0,0,0,0,0,0 +30,3.258096,0,6.907755,8.294049,1,43.5,0,0,1 +25,3.258096,0,6.907755,8.294049,1,43.5,0,0,1 +18,3.258096,0,6.907755,8.294049,1,43.5,0,0,1 +15,3.258096,0,6.907755,8.294049,1,43.5,0,0,1 +20,3.258096,0,6.907755,8.294049,1,43.5,0,0,1 +45,3.258096,0,6.907755,8.294049,1,43.5,1,0,0 +28,3.258096,0,6.907755,8.294049,1,43.5,1,0,0 +14,3.258096,0,6.907755,8.294049,1,43.5,1,0,0 +14,3.258096,0,6.907755,8.294049,1,43.5,1,0,0 +28,3.258096,0,6.907755,8.294049,1,43.5,1,0,0 +3,3.931826,0,6.907755,7.600903,0,13,0,0,0 +0,3.931826,0,6.907755,7.600903,0,13,0,0,0 +3,3.931826,0,6.907755,7.600903,0,13,0,0,0 +1,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +1,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +0,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +2,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +1,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +3,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +0,3.931826,0,6.907755,7.600903,0,17.4,0,0,0 +0,3.931826,0,6.907755,7.600903,0,17.4,0,0,0 +7,3.931826,0,6.907755,7.600903,0,17.4,0,0,0 +0,4.61512,1,5.883322,0,0,0,1,0,0 +0,4.61512,1,5.883322,0,0,0,1,0,0 +1,4.61512,1,5.883322,0,0,0,1,0,0 +0,4.61512,1,5.883322,0,0,13.73189,0,0,0 +0,4.61512,1,5.883322,0,0,13.73189,0,0,0 +2,4.61512,1,5.883322,0,0,13.73189,0,0,0 +0,4.61512,1,5.883322,0,0,26.1,0,0,0 +0,4.61512,1,5.883322,0,0,26.1,0,0,0 +0,4.61512,1,5.883322,0,0,26.1,0,0,0 +2,4.61512,1,6.907755,0,0,8.7,1,0,0 +2,4.61512,1,6.907755,0,0,8.7,1,0,0 +7,4.61512,1,6.907755,0,0,26.1,0,1,0 +4,4.61512,1,6.907755,0,0,26.1,0,1,0 +9,4.61512,1,6.907755,0,0,26.1,0,1,0 +10,4.61512,1,6.907755,0,0,26.1,0,1,0 +9,4.61512,1,6.907755,0,0,26.1,0,1,0 +5,4.61512,1,6.907755,0,0,8.7,1,0,0 +9,4.61512,1,6.907755,0,0,8.7,1,0,0 +7,4.61512,1,6.907755,0,0,8.7,1,0,0 +3,4.61512,1,6.907755,0,0,8.7,1,0,0 +4,4.61512,1,6.907755,0,0,8.7,1,0,0 +3,4.61512,1,6.907755,0,1,8.7,1,0,0 +3,4.61512,1,6.907755,0,1,8.7,1,0,0 +1,4.61512,1,6.907755,0,1,8.7,1,0,0 +0,4.61512,1,6.907755,0,1,8.7,1,0,0 +3,4.61512,1,6.907755,0,1,8.7,1,0,0 +4,4.61512,1,6.907755,0,0,13,1,0,0 +1,4.61512,1,6.907755,0,0,13,1,0,0 +1,4.61512,1,6.907755,0,0,13,1,0,0 +3,4.61512,1,6.907755,0,0,13,1,0,0 +2,4.61512,1,6.907755,0,0,13,1,0,0 +1,4.61512,1,6.907755,0,1,13.73189,0,1,0 +0,4.61512,1,6.907755,0,1,13.73189,0,1,0 +1,4.61512,1,6.907755,0,1,13.73189,0,1,0 +3,4.61512,1,6.907755,0,1,13.73189,0,1,0 +1,4.61512,1,6.907755,0,1,13.73189,0,1,0 +2,0,0,0,0,1,17.4,1,0,0 +1,0,0,0,0,1,17.4,1,0,0 +3,0,0,0,0,1,17.4,1,0,0 +0,0,0,0,0,1,17.4,1,0,0 +1,0,0,0,0,1,17.4,1,0,0 +0,0,0,0,0,0,13,0,1,0 +0,0,0,0,0,0,13,0,1,0 +0,0,0,0,0,0,13,0,1,0 +0,0,0,0,0,0,13,0,1,0 +0,0,0,0,0,0,13,0,1,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +3,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +4,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +3,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +0,3.258096,0,6.907755,8.294049,0,21.7,1,0,0 +3,3.258096,0,6.907755,8.294049,0,21.7,1,0,0 +1,3.258096,0,6.907755,8.294049,0,21.7,1,0,0 +0,3.258096,0,6.907755,8.294049,0,21.7,1,0,0 +0,3.258096,0,6.907755,8.294049,0,21.7,1,0,0 +0,3.258096,0,6.907755,8.294049,0,21.7,1,0,0 +4,3.258096,0,6.907755,8.294049,0,21.7,1,0,0 +2,3.258096,0,6.907755,8.294049,0,21.7,1,0,0 +2,3.258096,0,6.907755,8.294049,0,21.7,1,0,0 +0,3.258096,0,6.907755,8.294049,0,21.7,1,0,0 +2,4.61512,1,5.703783,0,0,13.73189,1,0,0 +1,4.61512,1,5.703783,0,0,13.73189,1,0,0 +1,4.61512,1,5.703783,0,0,13.73189,1,0,0 +0,4.61512,1,5.703783,0,0,13.73189,1,0,0 +5,4.61512,1,5.703783,0,0,13.73189,1,0,0 +1,4.61512,1,5.703783,0,0,13.73189,1,0,0 +6,4.61512,1,5.703783,0,0,13.73189,0,0,0 +1,4.61512,1,5.703783,0,0,13.73189,0,0,0 +3,4.61512,1,5.703783,0,0,13.73189,0,0,0 +4,0,0,0,0,0,4.3,0,0,0 +2,0,0,0,0,0,4.3,0,0,0 +1,0,0,0,0,0,4.3,0,0,0 +0,0,0,0,0,0,8.7,0,0,0 +1,0,0,0,0,0,8.7,0,0,0 +1,0,0,0,0,0,8.7,0,0,0 +1,0,0,0,0,0,4.3,0,0,0 +0,0,0,0,0,0,4.3,0,0,0 +1,0,0,0,0,0,4.3,0,0,0 +4,0,0,0,0,0,13.73189,0,0,0 +0,0,0,0,0,0,13.73189,0,0,0 +2,0,0,0,0,0,13.73189,0,0,0 +1,0,0,0,0,0,4.3,0,0,0 +8,0,0,0,0,0,4.3,0,0,0 +3,0,0,0,0,0,4.3,0,0,0 +4,0,0,0,0,0,8.7,0,0,0 +0,0,0,0,0,0,8.7,0,0,0 +1,0,0,0,0,0,8.7,0,0,0 +1,3.931826,0,6.907755,7.600903,0,8.7,0,0,0 +0,3.931826,0,6.907755,7.600903,0,8.7,0,0,0 +2,3.931826,0,6.907755,7.600903,0,8.7,0,0,0 +7,3.931826,0,6.907755,7.600903,0,8.7,0,0,0 +5,3.931826,0,6.907755,7.600903,0,8.7,0,0,0 +2,3.931826,0,6.907755,7.600903,0,13,1,0,0 +2,3.931826,0,6.907755,7.600903,0,13,1,0,0 +2,3.931826,0,6.907755,7.600903,0,13,1,0,0 +6,3.931826,0,6.907755,7.600903,0,13,1,0,0 +2,3.931826,0,6.907755,7.600903,0,13,1,0,0 +10,0,0,0,0,0,17.4,0,0,0 +7,0,0,0,0,0,17.4,0,0,0 +8,0,0,0,0,0,17.4,0,0,0 +4,0,0,0,0,0,17.4,0,0,0 +3,0,0,0,0,0,17.4,0,0,0 +10,0,0,0,0,0,17.4,0,0,0 +15,0,0,0,0,0,17.4,0,0,0 +16,0,0,0,0,0,17.4,0,0,0 +3,0,0,0,0,0,17.4,0,0,0 +6,0,0,0,0,0,17.4,0,0,0 +1,0,0,0,0,0,13.73189,0,0,0 +5,0,0,0,0,0,13.73189,0,0,0 +1,0,0,0,0,0,13.73189,0,0,0 +5,0,0,0,0,0,13.73189,0,0,0 +14,0,0,0,0,0,13.73189,0,0,0 +2,0,0,0,0,0,13.73189,0,0,0 +3,0,0,0,0,0,13.73189,0,0,0 +1,0,0,0,0,0,13.73189,0,0,0 +0,0,0,0,0,0,13.73189,0,0,0 +13,0,0,0,0,0,13.73189,0,0,0 +1,0,0,6.198479,0,0,13.73189,0,0,0 +9,0,0,6.198479,0,0,13.73189,0,0,0 +1,0,0,6.198479,0,0,13.73189,0,0,0 +2,0,0,6.198479,0,0,13.73189,0,0,0 +2,0,0,6.198479,0,0,13.73189,0,0,0 +2,0,0,6.198479,0,0,13.73189,0,0,0 +5,0,0,6.198479,0,0,13.73189,0,0,0 +2,0,0,6.198479,0,0,13.73189,0,0,0 +2,0,0,6.198479,0,0,13.73189,0,0,0 +6,0,0,6.198479,0,0,13.73189,0,0,0 +0,0,0,6.198479,0,0,13.73189,1,0,0 +0,0,0,6.198479,0,0,13.73189,1,0,0 +0,0,0,6.198479,0,0,13.73189,1,0,0 +2,0,0,6.198479,0,0,13.73189,1,0,0 +2,0,0,6.198479,0,0,13.73189,1,0,0 +6,0,0,5.662961,0,0,13.73189,0,0,0 +4,0,0,5.662961,0,0,13.73189,0,0,0 +5,0,0,5.662961,0,0,13.73189,0,0,0 +1,0,0,5.662961,0,0,13.73189,0,0,0 +2,0,0,5.662961,0,0,13.73189,0,0,0 +4,0,0,5.662961,0,0,13.73189,0,0,0 +4,0,0,5.662961,0,0,13.73189,0,0,0 +1,0,0,5.662961,0,0,13.73189,0,0,0 +1,0,0,5.662961,0,0,13.73189,0,0,0 +2,0,0,5.662961,0,0,13.73189,0,0,0 +10,0,0,5.662961,0,0,13.73189,0,0,0 +7,0,0,5.662961,0,0,13.73189,0,0,0 +5,0,0,5.662961,0,0,13.73189,0,0,0 +4,0,0,5.662961,0,0,13.73189,0,0,0 +4,0,0,5.662961,0,0,13.73189,0,0,0 +1,0,0,0,0,0,13.73189,1,0,0 +1,0,0,0,0,0,13.73189,1,0,0 +1,0,0,0,0,0,13.73189,1,0,0 +4,0,0,0,0,0,13.73189,1,0,0 +4,0,0,0,0,0,13.73189,1,0,0 +4,0,0,0,0,0,13.73189,1,0,0 +0,0,0,0,0,0,13.73189,1,0,0 +4,0,0,0,0,0,13.73189,1,0,0 +3,0,0,0,0,0,13.73189,1,0,0 +3,0,0,0,0,0,13.73189,1,0,0 +5,0,0,0,0,0,13.73189,1,0,0 +4,0,0,0,0,0,13.73189,1,0,0 +0,0,0,0,0,0,13.73189,1,0,0 +2,0,0,0,0,0,13.73189,1,0,0 +4,0,0,0,0,0,13.73189,1,0,0 +3,3.931826,0,6.395262,7.088409,0,13.73189,0,0,0 +6,3.931826,0,6.395262,7.088409,0,13.73189,0,0,0 +4,3.931826,0,6.395262,7.088409,0,13.73189,0,0,0 +2,3.931826,0,6.395262,7.088409,0,13.73189,0,0,0 +7,3.931826,0,6.395262,7.088409,0,13.73189,0,0,0 +6,3.931826,0,6.395262,7.088409,0,13.73189,0,0,0 +1,3.931826,0,6.395262,7.088409,0,13.73189,0,0,0 +0,3.931826,0,6.395262,7.088409,0,13.73189,0,0,0 +2,3.931826,0,6.395262,7.088409,0,13.73189,0,0,0 +0,3.931826,0,6.395262,7.088409,0,13.73189,0,0,0 +0,3.931826,0,6.395262,7.088409,0,13.73189,0,0,0 +5,3.931826,0,6.395262,7.088409,0,13.73189,0,0,0 +3,3.931826,0,6.395262,7.088409,0,13.73189,0,0,0 +0,3.931826,0,6.395262,7.088409,0,13.73189,0,0,0 +1,3.931826,0,6.395262,7.088409,0,13.73189,0,0,0 +8,3.931826,0,6.395262,7.088409,0,13.73189,0,0,0 +7,3.931826,0,6.395262,7.088409,0,13.73189,0,0,0 +1,3.931826,0,6.395262,7.088409,0,13.73189,0,0,0 +3,3.931826,0,6.395262,7.088409,0,13.73189,0,0,0 +2,3.931826,0,6.395262,7.088409,0,13.73189,0,0,0 +1,3.931826,0,6.576469,7.269617,0,13.73189,0,0,0 +4,3.931826,0,6.576469,7.269617,0,13.73189,0,0,0 +1,3.931826,0,6.576469,7.269617,0,13.73189,0,0,0 +5,3.931826,0,6.576469,7.269617,0,13.73189,1,0,0 +1,3.931826,0,6.576469,7.269617,0,13.73189,1,0,0 +2,3.931826,0,6.576469,7.269617,0,13.73189,1,0,0 +13,3.931826,0,6.576469,7.269617,0,13.73189,0,1,0 +12,3.931826,0,6.576469,7.269617,0,13.73189,0,1,0 +13,3.931826,0,6.576469,7.269617,0,13.73189,0,1,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +5,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +3,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +5,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +3,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +6,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +3,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +5,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +6,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +0,0,1,4.532599,0,0,13,0,0,0 +4,0,1,4.532599,0,0,13,0,0,0 +0,0,1,4.532599,0,0,13,0,0,0 +0,4.61512,1,6.907755,0,0,0,1,0,0 +1,4.61512,1,6.907755,0,0,0,1,0,0 +1,4.61512,1,6.907755,0,0,0,1,0,0 +2,4.61512,1,6.907755,0,0,0,1,0,0 +0,4.61512,1,6.907755,0,0,0,1,0,0 +0,4.61512,1,6.907755,0,0,0,1,0,0 +1,4.61512,1,6.907755,0,0,0,1,0,0 +0,4.61512,1,6.907755,0,0,0,1,0,0 +1,4.61512,1,6.907755,0,0,0,1,0,0 +0,4.61512,1,6.907755,0,0,0,1,0,0 +4,0,0,5.777652,0,0,13.73189,1,0,0 +4,0,0,5.777652,0,0,13.73189,1,0,0 +4,0,0,5.777652,0,0,13.73189,1,0,0 +1,0,0,5.777652,0,0,13.73189,1,0,0 +3,0,0,5.777652,0,0,13.73189,1,0,0 +3,0,0,5.777652,0,0,13.73189,1,0,0 +12,0,0,5.777652,0,0,13.73189,1,0,0 +14,0,0,5.777652,0,0,13.73189,1,0,0 +5,0,0,5.777652,0,0,13.73189,1,0,0 +10,0,0,5.777652,0,0,13.73189,1,0,0 +4,0,0,5.777652,0,0,13.73189,0,1,0 +4,0,0,5.777652,0,0,13.73189,0,1,0 +4,0,0,5.777652,0,0,13.73189,0,1,0 +3,0,0,5.777652,0,0,13.73189,0,1,0 +3,0,0,5.777652,0,0,13.73189,0,1,0 +3,0,0,5.777652,0,0,13.73189,1,0,0 +2,0,0,5.777652,0,0,13.73189,1,0,0 +1,0,0,5.777652,0,0,13.73189,1,0,0 +5,0,0,5.777652,0,0,13.73189,1,0,0 +1,0,0,5.777652,0,0,13.73189,1,0,0 +19,4.61512,1,6.907755,0,0,13.73189,0,0,0 +2,4.61512,1,6.907755,0,0,13.73189,0,0,0 +4,4.61512,1,6.907755,0,0,13.73189,0,0,0 +15,4.61512,1,6.907755,0,0,13.73189,1,0,0 +10,4.61512,1,6.907755,0,0,13.73189,1,0,0 +7,4.61512,1,6.907755,0,0,13.73189,1,0,0 +3,0,1,5.703783,0,0,8.7,1,0,0 +0,0,1,5.703783,0,0,8.7,1,0,0 +0,0,1,5.703783,0,0,8.7,1,0,0 +1,0,1,5.703783,0,0,8.7,1,0,0 +0,0,1,5.703783,0,0,8.7,1,0,0 +5,0,1,5.703783,0,1,17.4,1,0,0 +2,0,1,5.703783,0,1,17.4,1,0,0 +0,0,1,5.703783,0,1,17.4,1,0,0 +3,0,1,5.703783,0,1,17.4,1,0,0 +4,0,1,5.703783,0,1,17.4,1,0,0 +0,0,1,6.272877,0,0,0,0,0,0 +1,0,1,6.272877,0,0,0,0,0,0 +3,0,1,6.272877,0,0,0,0,0,0 +1,0,1,6.272877,0,0,13.73189,0,0,0 +0,0,1,6.272877,0,0,13.73189,0,0,0 +4,0,1,6.272877,0,0,13.73189,0,0,0 +4,0,1,6.272877,0,0,13,0,0,0 +2,0,1,6.272877,0,0,13,0,0,0 +6,0,1,6.272877,0,0,13,0,0,0 +1,0,1,6.272877,0,0,13.73189,0,0,0 +2,0,1,6.272877,0,0,13.73189,0,0,0 +5,0,1,6.272877,0,0,13.73189,0,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +2,3.258096,0,6.907755,8.294049,1,13.73189,0,0,0 +3,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +4,3.258096,0,6.907755,8.294049,0,21.7,1,0,0 +4,3.258096,0,6.907755,8.294049,0,21.7,1,0,0 +7,3.258096,0,6.907755,8.294049,0,21.7,1,0,0 +0,3.258096,0,6.907755,8.294049,0,0,0,0,0 +0,3.258096,0,6.907755,8.294049,0,0,0,0,0 +1,3.258096,0,6.907755,8.294049,0,0,0,0,0 +6,3.258096,0,6.907755,8.294049,1,0,0,0,0 +4,3.258096,0,6.907755,8.294049,1,0,0,0,0 +0,3.258096,0,6.907755,8.294049,1,0,0,0,0 +2,3.258096,0,6.907755,8.294049,0,4.3,0,0,0 +3,3.258096,0,6.907755,8.294049,0,4.3,0,0,0 +14,3.258096,0,6.907755,8.294049,0,4.3,0,0,0 +0,0,1,4.727388,0,0,0,0,0,0 +0,0,1,4.727388,0,0,0,0,0,0 +1,0,1,4.727388,0,0,0,0,0,0 +2,0,1,4.727388,0,0,0,0,0,0 +2,0,1,4.727388,0,0,0,0,0,0 +2,0,1,4.727388,0,0,13,0,0,0 +0,0,1,4.727388,0,0,13,0,0,0 +0,0,1,4.727388,0,0,13,0,0,0 +7,0,1,4.727388,0,0,13,0,0,0 +3,0,1,4.727388,0,0,13,0,0,0 +3,0,1,4.727388,0,0,8.7,0,0,0 +3,0,1,4.727388,0,0,8.7,0,0,0 +3,0,1,4.727388,0,0,8.7,0,0,0 +0,0,1,4.727388,0,0,8.7,0,0,0 +0,0,1,4.727388,0,0,8.7,0,0,0 +0,0,1,0,0,0,13.73189,0,0,0 +2,0,1,0,0,0,13.73189,0,0,0 +4,0,1,0,0,0,13.73189,0,0,0 +0,0,1,0,0,0,13.73189,1,0,0 +1,0,1,0,0,0,13.73189,1,0,0 +1,0,1,0,0,0,13.73189,1,0,0 +0,0,1,0,0,1,13.73189,0,0,1 +0,0,1,0,0,1,13.73189,0,0,1 +0,0,1,0,0,1,13.73189,0,0,1 +2,0,1,0,0,0,13.73189,1,0,0 +1,0,1,0,0,0,13.73189,1,0,0 +2,0,1,0,0,0,13.73189,1,0,0 +0,3.258096,0,5.828946,7.21524,0,13.73189,1,0,0 +1,3.258096,0,5.828946,7.21524,0,13.73189,1,0,0 +0,3.258096,0,5.828946,7.21524,0,4.3,1,0,0 +0,3.258096,0,5.828946,7.21524,0,4.3,1,0,0 +3,3.258096,0,5.828946,7.21524,0,4.3,1,0,0 +2,3.258096,0,5.828946,7.21524,0,4.3,1,0,0 +0,3.258096,0,5.828946,7.21524,0,4.3,1,0,0 +0,3.258096,0,5.828946,7.21524,0,4.3,1,0,0 +0,3.258096,0,5.828946,7.21524,0,13.73189,1,0,0 +0,3.258096,0,5.828946,7.21524,0,13.73189,1,0,0 +0,3.258096,0,5.828946,7.21524,0,8.7,0,1,0 +5,3.258096,0,5.828946,7.21524,0,8.7,0,1,0 +2,0,1,5.703783,0,0,13.73189,1,0,0 +6,0,1,5.703783,0,0,13.73189,1,0,0 +0,0,1,5.703783,0,0,13.73189,1,0,0 +0,0,1,5.703783,0,0,13.73189,0,0,0 +0,0,1,5.703783,0,0,13.73189,0,0,0 +2,0,1,5.703783,0,0,13.73189,0,0,0 +35,0,1,5.986452,0,1,13.73189,1,0,0 +20,0,1,5.986452,0,1,13.73189,1,0,0 +16,0,1,5.986452,0,1,13.73189,1,0,0 +9,0,1,5.986452,0,1,13.73189,1,0,0 +16,0,1,5.986452,0,1,13.73189,1,0,0 +22,0,1,5.986452,0,0,13.73189,1,0,0 +9,0,1,5.986452,0,0,13.73189,1,0,0 +13,0,1,5.986452,0,0,13.73189,1,0,0 +8,0,1,5.986452,0,0,13.73189,1,0,0 +5,0,1,5.986452,0,0,13.73189,1,0,0 +1,3.931826,0,6.683361,7.376508,0,13.73189,1,0,0 +1,3.931826,0,6.683361,7.376508,0,13.73189,1,0,0 +1,3.931826,0,6.683361,7.376508,0,13.73189,1,0,0 +0,3.931826,0,6.683361,7.376508,0,13.73189,1,0,0 +0,3.931826,0,6.683361,7.376508,0,13.73189,1,0,0 +0,3.931826,0,6.683361,7.376508,0,13.73189,1,0,0 +0,3.931826,0,6.683361,7.376508,0,13.73189,1,0,0 +0,3.931826,0,6.683361,7.376508,0,13.73189,1,0,0 +3,3.931826,0,6.683361,7.376508,0,13.73189,1,0,0 +0,3.931826,0,6.683361,7.376508,0,13.73189,1,0,0 +0,3.931826,0,6.683361,7.376508,0,13.73189,1,0,0 +0,3.931826,0,6.683361,7.376508,0,13.73189,1,0,0 +2,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +1,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +1,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +0,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +0,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +0,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +4,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +2,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +8,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +10,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +5,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +5,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +2,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +1,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +2,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +5,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +7,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +10,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +0,4.61512,1,0,0,0,13.73189,0,0,0 +0,4.61512,1,0,0,0,13.73189,0,0,0 +2,4.61512,1,0,0,0,13.73189,0,0,0 +0,4.61512,1,0,0,0,13.73189,0,0,0 +0,4.61512,1,0,0,0,13.73189,0,0,0 +2,4.61512,1,6.684612,0,0,13.73189,1,0,0 +3,4.61512,1,6.684612,0,0,13.73189,1,0,0 +1,4.61512,1,6.684612,0,0,13.73189,1,0,0 +1,4.61512,1,6.684612,0,0,13.73189,1,0,0 +4,4.61512,1,6.684612,0,0,13.73189,1,0,0 +15,4.61512,1,6.684612,0,0,13.73189,1,0,0 +9,4.61512,1,6.684612,0,0,13.73189,1,0,0 +10,4.61512,1,6.684612,0,0,13.73189,1,0,0 +2,4.61512,1,6.684612,0,0,13.73189,1,0,0 +4,4.61512,1,6.684612,0,0,13.73189,1,0,0 +4,4.61512,1,6.684612,0,0,13.73189,1,0,0 +2,4.61512,1,6.684612,0,0,13.73189,1,0,0 +0,4.61512,1,6.684612,0,0,13.73189,1,0,0 +3,4.61512,1,6.684612,0,0,13.73189,1,0,0 +0,4.61512,1,6.684612,0,0,13.73189,1,0,0 +6,3.258096,0,6.907755,8.294049,0,17.4,0,0,1 +2,3.258096,0,6.907755,8.294049,0,17.4,0,0,1 +5,3.258096,0,6.907755,8.294049,0,17.4,0,0,1 +9,3.258096,0,6.907755,8.294049,1,30.4,0,0,1 +2,3.258096,0,6.907755,8.294049,1,30.4,0,0,1 +8,3.258096,0,6.907755,8.294049,1,30.4,0,0,1 +0,0,0,0,0,0,13.73189,0,0,0 +0,0,0,0,0,0,13.73189,0,0,0 +1,0,0,0,0,0,13.73189,0,0,0 +1,0,0,0,0,0,13.73189,0,0,0 +1,0,0,0,0,0,13.73189,0,0,0 +0,0,0,0,0,0,13,0,0,0 +0,0,0,0,0,0,13,0,0,0 +0,0,0,0,0,0,13,0,0,0 +0,0,0,0,0,0,13,0,0,0 +0,0,0,0,0,0,13,0,0,0 +1,0,0,0,0,0,13.73189,1,0,0 +2,0,0,0,0,0,13.73189,1,0,0 +2,0,0,0,0,0,13.73189,1,0,0 +2,0,0,0,0,0,13.73189,1,0,0 +2,0,0,0,0,0,13.73189,1,0,0 +0,0,0,0,0,0,13.73189,0,0,0 +0,0,0,0,0,0,13.73189,0,0,0 +2,0,0,0,0,0,13.73189,0,0,0 +1,0,0,0,0,0,13.73189,0,0,0 +0,0,0,0,0,0,13.73189,0,0,0 +7,0,0,0,0,0,8.7,0,0,0 +2,0,0,0,0,0,8.7,0,0,0 +2,0,0,0,0,0,8.7,0,0,0 +1,0,0,0,0,0,8.7,0,0,0 +4,0,0,0,0,0,8.7,0,0,0 +5,0,0,4.543295,0,1,34.8,1,0,0 +5,0,0,4.543295,0,1,34.8,1,0,0 +8,0,0,4.543295,0,1,34.8,1,0,0 +7,0,0,4.543295,0,1,34.8,1,0,0 +6,0,0,4.543295,0,1,34.8,1,0,0 +0,4.61512,1,6.826545,0,0,13.73189,1,0,0 +3,4.61512,1,6.826545,0,0,13.73189,1,0,0 +5,4.61512,1,6.826545,0,0,13.73189,1,0,0 +0,0,0,0,0,0,4.3,0,0,0 +1,0,0,0,0,0,4.3,0,0,0 +2,0,0,0,0,0,4.3,0,0,0 +1,0,0,0,0,0,4.3,0,0,0 +0,0,0,0,0,0,4.3,0,0,0 +5,0,0,0,0,0,4.3,0,0,0 +0,0,0,0,0,0,4.3,0,0,0 +5,0,0,0,0,0,4.3,0,0,0 +0,0,0,0,0,0,4.3,0,0,0 +0,0,0,0,0,0,4.3,0,0,0 +7,0,0,0,0,0,17.4,1,0,0 +1,0,0,0,0,0,17.4,1,0,0 +1,0,0,0,0,0,17.4,1,0,0 +3,0,0,0,0,0,17.4,1,0,0 +4,0,0,0,0,0,17.4,1,0,0 +2,3.931826,0,6.855409,7.548556,0,8.7,0,0,0 +0,3.931826,0,6.855409,7.548556,0,8.7,0,0,0 +1,3.931826,0,6.855409,7.548556,0,8.7,0,0,0 +1,3.931826,0,6.855409,7.548556,0,8.7,0,0,0 +0,3.931826,0,6.855409,7.548556,0,8.7,0,0,0 +8,3.931826,0,6.855409,7.548556,0,21.7,0,0,0 +1,3.931826,0,6.855409,7.548556,0,21.7,0,0,0 +5,3.931826,0,6.855409,7.548556,0,21.7,0,0,0 +3,3.931826,0,6.855409,7.548556,0,21.7,0,0,0 +7,3.931826,0,6.855409,7.548556,0,21.7,0,0,0 +0,3.258096,0,0,0,0,17.4,0,0,0 +0,3.258096,0,0,0,0,17.4,0,0,0 +0,3.258096,0,0,0,0,17.4,0,0,0 +0,3.258096,0,0,0,0,17.4,0,0,0 +1,3.258096,0,0,0,0,17.4,0,0,0 +5,3.258096,0,0,0,0,30.4,0,0,0 +2,3.258096,0,0,0,0,30.4,0,0,0 +2,3.258096,0,0,0,0,30.4,0,0,0 +0,3.258096,0,0,0,0,30.4,0,0,0 +1,3.258096,0,0,0,0,30.4,0,0,0 +0,3.258096,0,0,0,0,13.73189,0,0,0 +1,3.258096,0,0,0,0,13.73189,0,0,0 +2,3.258096,0,0,0,0,13.73189,0,0,0 +3,3.258096,0,0,0,0,13.73189,0,0,0 +3,3.258096,0,0,0,0,13.73189,0,0,0 +0,3.258096,0,0,0,0,13.73189,0,0,0 +2,3.258096,0,0,0,0,13.73189,0,0,0 +0,3.258096,0,0,0,0,13.73189,0,0,0 +1,3.258096,0,0,0,0,13.73189,0,0,0 +1,3.258096,0,0,0,0,13.73189,0,0,0 +3,3.258096,0,0,0,0,13.73189,0,0,0 +3,3.258096,0,0,0,0,13.73189,0,0,0 +0,3.258096,0,0,0,0,13.73189,0,0,0 +1,3.258096,0,0,0,0,13.73189,0,0,0 +1,3.258096,0,0,0,0,13.73189,0,0,0 +2,3.258096,0,0,0,0,13.73189,0,0,0 +2,3.258096,0,0,0,0,13.73189,0,0,0 +0,3.258096,0,0,0,0,13.73189,0,0,0 +1,3.258096,0,0,0,0,13.73189,0,0,0 +5,3.258096,0,0,0,0,13.73189,0,0,0 +0,4.61512,1,6.907755,0,0,0,1,0,0 +0,4.61512,1,6.907755,0,0,0,1,0,0 +0,4.61512,1,6.907755,0,0,0,1,0,0 +1,4.61512,1,6.907755,0,0,4.3,0,0,0 +0,4.61512,1,6.907755,0,0,4.3,0,0,0 +0,4.61512,1,6.907755,0,0,4.3,0,0,0 +4,3.258096,0,5.926926,7.313221,0,13,1,0,0 +0,3.258096,0,5.926926,7.313221,0,13,1,0,0 +0,3.258096,0,5.926926,7.313221,0,13,1,0,0 +0,3.258096,0,5.926926,7.313221,0,13,1,0,0 +0,3.258096,0,5.926926,7.313221,0,13,1,0,0 +2,4.61512,1,6.907755,0,1,13.73189,1,0,0 +1,4.61512,1,6.907755,0,1,13.73189,1,0,0 +0,4.61512,1,6.907755,0,1,13.73189,1,0,0 +1,4.61512,1,6.907755,0,0,13.73189,1,0,0 +1,4.61512,1,6.907755,0,0,13.73189,1,0,0 +0,4.61512,1,6.907755,0,0,13.73189,1,0,0 +1,4.61512,1,6.907755,0,0,13.73189,1,0,0 +0,4.61512,1,6.907755,0,0,13.73189,1,0,0 +0,4.61512,1,6.907755,0,0,13.73189,1,0,0 +3,4.61512,1,6.907755,0,0,13.73189,1,0,0 +8,4.61512,1,6.907755,0,0,13.73189,1,0,0 +0,4.61512,1,6.907755,0,0,13.73189,1,0,0 +3,4.61512,1,6.907755,0,0,21.7,1,0,0 +12,4.61512,1,6.907755,0,0,21.7,1,0,0 +18,4.61512,1,6.907755,0,0,21.7,1,0,0 +8,4.61512,1,6.907755,0,0,13,0,0,0 +4,4.61512,1,6.907755,0,0,13,0,0,0 +13,4.61512,1,6.907755,0,0,13,0,0,0 +2,4.61512,1,6.907755,0,0,13.73189,0,0,0 +0,4.61512,1,6.907755,0,0,13.73189,0,0,0 +1,4.61512,1,6.907755,0,0,13.73189,0,0,0 +2,4.61512,1,6.907755,0,0,13,0,0,0 +2,4.61512,1,6.907755,0,0,13,0,0,0 +4,4.61512,1,6.907755,0,0,13,0,0,0 +6,4.61512,1,6.907755,0,0,13,0,0,0 +0,4.61512,1,6.907755,0,0,13,0,0,0 +8,4.61512,1,6.907755,0,0,13,0,0,0 +0,4.61512,1,6.907755,0,0,8.7,0,0,0 +0,4.61512,1,6.907755,0,0,8.7,0,0,0 +7,4.61512,1,6.907755,0,0,8.7,0,0,0 +1,3.258096,0,6.683361,8.069655,0,30.4,1,0,0 +1,3.258096,0,6.683361,8.069655,0,30.4,1,0,0 +2,3.258096,0,6.683361,8.069655,0,30.4,1,0,0 +12,3.258096,0,6.683361,8.069655,0,30.4,1,0,0 +3,3.258096,0,6.683361,8.069655,0,30.4,1,0,0 +4,3.258096,0,6.683361,8.069655,0,13.73189,1,0,0 +2,3.258096,0,6.683361,8.069655,0,13.73189,1,0,0 +3,3.258096,0,6.683361,8.069655,0,13.73189,1,0,0 +2,3.258096,0,6.683361,8.069655,0,13.73189,1,0,0 +2,3.258096,0,6.683361,8.069655,0,13.73189,1,0,0 +2,3.258096,0,6.683361,8.069655,1,30.4,1,0,0 +1,3.258096,0,6.683361,8.069655,1,30.4,1,0,0 +2,3.258096,0,6.683361,8.069655,1,30.4,1,0,0 +3,3.258096,0,6.683361,8.069655,1,30.4,1,0,0 +3,3.258096,0,6.683361,8.069655,1,30.4,1,0,0 +0,3.258096,0,5.556828,6.943122,0,4.3,1,0,0 +0,3.258096,0,5.556828,6.943122,0,4.3,1,0,0 +0,3.258096,0,5.556828,6.943122,0,4.3,1,0,0 +0,3.258096,0,5.556828,6.943122,0,4.3,1,0,0 +0,3.258096,0,5.556828,6.943122,0,4.3,1,0,0 +7,0,0,6.139884,0,0,13.73189,0,0,0 +6,0,0,6.139884,0,0,13.73189,0,0,0 +12,0,0,6.139884,0,0,13.73189,0,0,0 +5,0,0,6.139884,0,0,13.73189,1,0,0 +10,0,0,6.139884,0,0,13.73189,1,0,0 +5,0,0,6.139884,0,0,13.73189,1,0,0 +3,0,0,6.139884,0,0,13.73189,0,0,0 +7,0,0,6.139884,0,0,13.73189,0,0,0 +0,0,0,6.139884,0,0,13.73189,0,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +3,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +0,3.258096,0,6.907755,8.294049,0,17.4,0,0,0 +0,3.258096,0,6.907755,8.294049,0,17.4,0,0,0 +1,3.258096,0,6.907755,8.294049,0,17.4,0,0,0 +1,3.258096,0,6.907755,8.294049,0,21.7,0,0,0 +1,3.258096,0,6.907755,8.294049,0,21.7,0,0,0 +3,3.258096,0,6.907755,8.294049,0,21.7,0,0,0 +8,3.931826,0,6.907755,7.600903,0,13,0,0,0 +8,3.931826,0,6.907755,7.600903,0,13,0,0,0 +8,3.931826,0,6.907755,7.600903,0,13,0,0,0 +5,3.931826,0,6.907755,7.600903,0,4.3,0,0,0 +2,3.931826,0,6.907755,7.600903,0,4.3,0,0,0 +3,3.931826,0,6.907755,7.600903,0,4.3,0,0,0 +6,3.931826,0,6.907755,7.600903,0,21.7,0,0,0 +4,3.931826,0,6.907755,7.600903,0,21.7,0,0,0 +5,3.931826,0,6.907755,7.600903,0,21.7,0,0,0 +0,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +0,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +0,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +0,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +0,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +0,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +7,0,1,5.313206,0,0,13,0,0,0 +9,0,1,5.313206,0,0,13,0,0,0 +5,0,1,5.313206,0,0,13,0,0,0 +0,4.61512,1,6.907755,0,0,17.4,0,1,0 +0,4.61512,1,6.907755,0,0,17.4,0,1,0 +0,4.61512,1,6.907755,0,0,17.4,0,1,0 +1,4.61512,1,6.907755,0,0,30.4,1,0,0 +0,4.61512,1,6.907755,0,0,30.4,1,0,0 +0,4.61512,1,6.907755,0,0,30.4,1,0,0 +0,4.61512,1,6.907755,0,0,13.73189,0,0,0 +0,4.61512,1,6.907755,0,0,13.73189,0,0,0 +0,4.61512,1,6.907755,0,0,13.73189,0,0,0 +1,4.61512,1,6.907755,0,0,13.73189,0,0,0 +1,4.61512,1,6.907755,0,0,13.73189,0,0,0 +0,4.61512,1,6.907755,0,0,13.73189,0,0,0 +4,3.931826,0,6.907755,7.600903,0,4.3,0,0,0 +6,3.931826,0,6.907755,7.600903,0,4.3,0,0,0 +4,3.931826,0,6.907755,7.600903,0,4.3,0,0,0 +3,3.931826,0,6.907755,7.600903,0,4.3,0,0,0 +8,3.931826,0,6.907755,7.600903,0,4.3,0,0,0 +6,3.931826,0,6.907755,7.600903,0,13,0,0,0 +2,3.931826,0,6.907755,7.600903,0,13,0,0,0 +3,3.931826,0,6.907755,7.600903,0,13,0,0,0 +6,3.931826,0,6.907755,7.600903,0,13,0,0,0 +0,3.931826,0,6.907755,7.600903,0,13,0,0,0 +3,3.931826,0,6.907755,7.600903,0,4.3,0,0,0 +1,3.931826,0,6.907755,7.600903,0,4.3,0,0,0 +2,3.931826,0,6.907755,7.600903,0,4.3,0,0,0 +6,3.931826,0,6.907755,7.600903,0,4.3,0,0,0 +11,3.931826,0,6.907755,7.600903,0,4.3,0,0,0 +1,3.258096,0,6.907755,8.294049,0,0,0,0,0 +1,3.258096,0,6.907755,8.294049,0,0,0,0,0 +1,3.258096,0,6.907755,8.294049,0,0,0,0,0 +1,3.258096,0,6.907755,8.294049,0,0,0,0,0 +0,3.258096,0,6.907755,8.294049,0,0,0,0,0 +4,3.258096,0,6.907755,8.294049,0,8.7,0,0,0 +3,3.258096,0,6.907755,8.294049,0,8.7,0,0,0 +2,3.258096,0,6.907755,8.294049,0,8.7,0,0,0 +1,3.258096,0,6.907755,8.294049,0,8.7,0,0,0 +0,3.258096,0,6.907755,8.294049,0,8.7,0,0,0 +8,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +4,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +3,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +6,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +3,3.258096,0,6.907755,8.294049,0,17.4,0,0,0 +3,3.258096,0,6.907755,8.294049,0,17.4,0,0,0 +2,3.258096,0,6.907755,8.294049,0,17.4,0,0,0 +1,3.258096,0,6.907755,8.294049,0,17.4,0,0,0 +4,3.258096,0,6.907755,8.294049,0,17.4,0,0,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +0,3.258096,0,6.907755,8.294049,0,0,0,0,0 +2,3.258096,0,6.907755,8.294049,0,0,0,0,0 +0,3.258096,0,6.907755,8.294049,0,0,0,0,0 +3,3.258096,0,6.907755,8.294049,0,0,0,0,0 +1,3.258096,0,6.907755,8.294049,0,0,0,0,0 +3,3.258096,0,6.907755,8.294049,0,17.4,0,0,0 +0,3.258096,0,6.907755,8.294049,0,17.4,0,0,0 +0,3.258096,0,6.907755,8.294049,0,17.4,0,0,0 +3,3.258096,0,6.907755,8.294049,0,17.4,0,0,0 +1,3.258096,0,6.907755,8.294049,0,17.4,0,0,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +4,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +2,3.258096,0,6.519147,7.905442,0,8.7,0,0,0 +3,3.258096,0,6.519147,7.905442,0,8.7,0,0,0 +2,3.258096,0,6.519147,7.905442,0,8.7,0,0,0 +5,3.258096,0,6.519147,7.905442,0,8.7,0,0,0 +5,3.258096,0,6.519147,7.905442,0,8.7,0,0,0 +6,3.258096,0,6.519147,7.905442,0,13.73189,0,0,0 +1,3.258096,0,6.519147,7.905442,0,13.73189,0,0,0 +1,3.258096,0,6.519147,7.905442,0,13.73189,0,0,0 +0,3.258096,0,6.519147,7.905442,0,13.73189,0,0,0 +2,3.258096,0,6.519147,7.905442,0,13.73189,0,0,0 +0,3.258096,0,6.519147,7.905442,0,17.4,0,0,0 +1,3.258096,0,6.519147,7.905442,0,17.4,0,0,0 +1,3.258096,0,6.519147,7.905442,0,17.4,0,0,0 +3,3.258096,0,6.519147,7.905442,0,17.4,0,0,0 +5,3.258096,0,6.519147,7.905442,0,17.4,0,0,0 +0,3.258096,0,0,6.57368,0,0,0,0,0 +0,3.258096,0,0,6.57368,0,0,0,0,0 +0,3.258096,0,0,6.57368,0,0,0,0,0 +1,3.258096,0,0,6.57368,0,0,0,0,0 +0,3.258096,0,0,6.57368,0,0,0,0,0 +2,3.931826,0,0,0,0,13.73189,0,0,0 +5,3.931826,0,0,0,0,13.73189,0,0,0 +7,3.931826,0,0,0,0,13.73189,0,0,0 +7,3.931826,0,0,0,0,13.73189,0,0,0 +4,3.931826,0,0,0,0,13.73189,0,0,0 +1,3.931826,0,0,0,0,13.73189,0,0,0 +9,3.931826,0,0,0,1,13.73189,1,0,0 +7,3.931826,0,0,0,1,13.73189,1,0,0 +14,3.931826,0,0,0,1,13.73189,1,0,0 +11,3.931826,0,0,0,0,13.73189,0,0,0 +16,3.931826,0,0,0,0,13.73189,0,0,0 +15,3.931826,0,0,0,0,13.73189,0,0,0 +4,0,1,6.109248,0,0,13.73189,0,0,0 +3,0,1,6.109248,0,0,13.73189,0,0,0 +3,0,1,6.109248,0,0,13.73189,0,0,0 +1,0,1,6.109248,0,0,17.4,0,0,0 +0,0,1,6.109248,0,0,17.4,0,0,0 +0,0,1,6.109248,0,0,17.4,0,0,0 +4,0,1,6.109248,0,0,13,0,0,0 +0,0,1,6.109248,0,0,13,0,0,0 +3,0,1,6.109248,0,0,13,0,0,0 +19,0,0,0,0,0,13,0,0,0 +3,0,0,0,0,0,13,0,0,0 +10,0,0,0,0,0,13,0,0,0 +7,0,0,0,0,0,17.4,0,0,0 +9,0,0,0,0,0,17.4,0,0,0 +6,0,0,0,0,0,17.4,0,0,0 +5,0,0,0,0,0,13,0,0,0 +10,0,0,0,0,0,13,0,0,0 +1,0,0,0,0,0,13,0,0,0 +6,0,0,3.951244,0,0,4.3,0,0,0 +4,0,0,3.951244,0,0,4.3,0,0,0 +7,0,0,3.951244,0,0,4.3,0,0,0 +15,3.258096,0,6.57368,7.959975,0,13.73189,0,0,0 +16,3.258096,0,6.57368,7.959975,0,13.73189,0,0,0 +3,3.258096,0,6.57368,7.959975,0,13.73189,0,0,0 +1,3.258096,0,6.214608,7.600903,0,13.73189,1,0,0 +2,3.258096,0,6.214608,7.600903,0,13.73189,1,0,0 +3,3.258096,0,6.214608,7.600903,0,13.73189,1,0,0 +2,3.258096,0,6.214608,7.600903,0,13.73189,1,0,0 +9,3.258096,0,6.214608,7.600903,0,13.73189,1,0,0 +2,3.258096,0,6.214608,7.600903,0,13.73189,1,0,0 +1,3.258096,0,6.214608,7.600903,0,13.73189,1,0,0 +0,3.258096,0,6.214608,7.600903,0,13.73189,1,0,0 +2,3.258096,0,6.214608,7.600903,0,13.73189,1,0,0 +2,3.258096,0,6.214608,7.600903,0,13.73189,1,0,0 +0,3.258096,0,6.214608,7.600903,.12982,13.73189,1,0,0 +0,3.258096,0,6.214608,7.600903,.12982,13.73189,1,0,0 +0,3.258096,0,6.214608,7.600903,.12982,13.73189,1,0,0 +1,3.258096,0,6.214608,7.600903,.12982,13.73189,1,0,0 +0,3.258096,0,6.214608,7.600903,.12982,13.73189,1,0,0 +3,3.258096,0,6.214608,7.600903,0,13.73189,1,0,0 +0,3.258096,0,6.214608,7.600903,0,13.73189,1,0,0 +0,3.258096,0,6.214608,7.600903,0,13.73189,1,0,0 +0,3.258096,0,6.214608,7.600903,0,13.73189,1,0,0 +0,3.258096,0,6.214608,7.600903,0,13.73189,1,0,0 +3,4.61512,1,6.907755,0,0,17.4,1,0,0 +7,4.61512,1,6.907755,0,0,17.4,1,0,0 +14,4.61512,1,6.907755,0,0,17.4,1,0,0 +5,3.258096,0,6.120297,7.506592,0,13,0,0,0 +4,3.258096,0,6.120297,7.506592,0,13,0,0,0 +1,3.258096,0,6.120297,7.506592,0,13,0,0,0 +4,3.258096,0,6.120297,7.506592,0,13,0,0,0 +3,3.258096,0,6.120297,7.506592,0,13,0,0,0 +0,3.258096,0,6.120297,7.506592,0,13.73189,0,0,0 +2,3.258096,0,6.120297,7.506592,0,13.73189,0,0,0 +5,3.258096,0,6.120297,7.506592,0,13.73189,0,0,0 +0,3.258096,0,6.120297,7.506592,0,13.73189,0,0,0 +0,3.258096,0,6.120297,7.506592,0,13.73189,0,0,0 +1,3.258096,0,6.120297,7.506592,0,4.3,0,0,0 +1,3.258096,0,6.120297,7.506592,0,4.3,0,0,0 +1,3.258096,0,6.120297,7.506592,0,4.3,0,0,0 +0,3.258096,0,6.120297,7.506592,0,4.3,0,0,0 +1,3.258096,0,6.120297,7.506592,0,4.3,0,0,0 +1,3.258096,0,6.120297,7.506592,0,13.73189,0,0,0 +3,3.258096,0,6.120297,7.506592,0,13.73189,0,0,0 +3,3.258096,0,6.120297,7.506592,0,13.73189,0,0,0 +2,3.258096,0,6.120297,7.506592,0,13.73189,0,0,0 +2,3.258096,0,6.120297,7.506592,0,13.73189,0,0,0 +0,0,1,6.131227,0,0,17.4,1,0,0 +4,0,1,6.131227,0,0,17.4,1,0,0 +1,0,1,6.131227,0,0,17.4,1,0,0 +0,0,1,6.131227,0,0,17.4,1,0,0 +0,0,1,6.131227,0,0,17.4,1,0,0 +1,0,1,6.131227,0,0,13.73189,1,0,0 +1,0,1,6.131227,0,0,13.73189,1,0,0 +3,0,1,6.131227,0,0,13.73189,1,0,0 +5,0,1,6.131227,0,0,13.73189,1,0,0 +1,0,1,6.131227,0,0,13.73189,1,0,0 +0,0,1,6.131227,0,0,4.3,1,0,0 +0,0,1,6.131227,0,0,4.3,1,0,0 +1,0,1,6.131227,0,0,4.3,1,0,0 +2,0,1,6.131227,0,0,4.3,1,0,0 +12,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +5,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +1,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +0,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +0,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +0,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +2,0,0,0,0,0,13.73189,0,0,0 +10,0,0,0,0,0,13.73189,0,0,0 +5,0,0,0,0,0,13.73189,0,0,0 +3,0,0,0,0,0,13.73189,0,0,0 +3,0,0,0,0,0,13.73189,0,0,0 +0,0,0,0,0,0,13.73189,0,0,0 +2,0,0,0,0,0,13.73189,0,0,0 +1,0,0,0,0,0,13.73189,0,0,0 +0,0,0,0,0,0,13.73189,0,0,0 +1,0,0,0,0,0,13.73189,0,0,0 +17,3.258096,0,6.684612,8.070906,1,26.1,1,0,0 +10,3.258096,0,6.684612,8.070906,1,26.1,1,0,0 +8,3.258096,0,6.684612,8.070906,1,26.1,1,0,0 +6,3.258096,0,6.684612,8.070906,1,26.1,1,0,0 +1,3.258096,0,6.684612,8.070906,1,26.1,1,0,0 +8,3.258096,0,6.684612,8.070906,1,21.7,0,1,0 +5,3.258096,0,6.684612,8.070906,1,21.7,0,1,0 +4,3.258096,0,6.684612,8.070906,1,21.7,0,1,0 +2,3.258096,0,6.684612,8.070906,1,21.7,0,1,0 +4,3.258096,0,6.684612,8.070906,1,21.7,0,1,0 +11,3.258096,0,6.684612,8.070906,0,13,0,0,0 +6,3.258096,0,6.684612,8.070906,0,13,0,0,0 +6,3.258096,0,6.684612,8.070906,0,13,0,0,0 +2,3.258096,0,6.684612,8.070906,0,13,0,0,0 +7,3.258096,0,6.684612,8.070906,0,13,0,0,0 +0,3.258096,0,6.736967,8.123261,0,13.73189,0,0,0 +0,3.258096,0,6.736967,8.123261,0,13.73189,0,0,0 +0,3.258096,0,6.736967,8.123261,0,13.73189,0,0,0 +14,4.61512,1,0,0,1,26.1,0,0,0 +3,4.61512,1,0,0,1,26.1,0,0,0 +7,0,1,6.109248,0,0,21.7,1,0,0 +3,0,1,6.109248,0,0,21.7,1,0,0 +2,0,1,6.109248,0,0,21.7,1,0,0 +1,0,1,6.109248,0,0,13,1,0,0 +3,0,1,6.109248,0,0,13,1,0,0 +2,0,1,6.109248,0,0,13,1,0,0 +8,0,1,6.109248,0,0,8.7,1,0,0 +14,0,1,6.109248,0,0,8.7,1,0,0 +6,0,1,6.109248,0,0,8.7,1,0,0 +0,3.931826,0,6.109248,5.786897,0,13.73189,1,0,0 +0,3.931826,0,6.109248,5.786897,0,13.73189,1,0,0 +2,3.931826,0,6.109248,5.786897,0,13.73189,1,0,0 +0,3.931826,0,6.109248,5.786897,0,13.73189,1,0,0 +5,3.931826,0,6.109248,5.786897,0,13.73189,1,0,0 +4,3.931826,0,6.109248,5.786897,0,26.1,1,0,0 +0,3.931826,0,6.109248,5.786897,0,26.1,1,0,0 +9,3.931826,0,6.109248,5.786897,0,26.1,1,0,0 +2,3.931826,0,6.109248,5.786897,0,26.1,1,0,0 +7,3.931826,0,6.109248,5.786897,0,26.1,1,0,0 +9,3.931826,0,6.109248,5.786897,0,13,1,0,0 +3,3.931826,0,6.109248,5.786897,0,13,1,0,0 +7,3.931826,0,6.109248,5.786897,0,13,1,0,0 +4,3.931826,0,6.109248,5.786897,0,13,1,0,0 +5,3.931826,0,6.109248,5.786897,0,13,1,0,0 +10,3.258096,0,6.907755,8.294049,0,21.7,0,1,0 +2,3.258096,0,6.907755,8.294049,0,21.7,0,1,0 +6,3.258096,0,6.907755,8.294049,0,8.7,1,0,0 +2,3.258096,0,6.907755,8.294049,0,8.7,1,0,0 +2,4.61512,1,6.907755,0,0,13.73189,1,0,0 +10,4.61512,1,6.907755,0,0,13.73189,1,0,0 +1,4.61512,1,6.907755,0,0,13.73189,1,0,0 +3,4.61512,1,6.907755,0,0,13.73189,1,0,0 +2,4.61512,1,6.907755,0,0,13.73189,1,0,0 +3,4.61512,1,6.907755,0,0,13.73189,1,0,0 +3,4.61512,1,6.907755,0,0,13.73189,0,0,0 +2,4.61512,1,6.907755,0,0,13.73189,0,0,0 +1,4.61512,1,6.907755,0,0,13.73189,0,0,0 +5,4.61512,1,6.907755,0,0,13.73189,1,0,0 +7,4.61512,1,6.907755,0,0,13.73189,1,0,0 +10,4.61512,1,6.907755,0,0,13.73189,1,0,0 +5,4.61512,1,6.907755,0,0,13.73189,1,0,0 +6,4.61512,1,6.907755,0,0,13.73189,1,0,0 +1,4.61512,1,6.907755,0,0,13.73189,1,0,0 +2,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +0,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +1,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +12,3.931826,0,6.907755,7.600903,1,26.1,1,0,0 +17,3.931826,0,6.907755,7.600903,1,26.1,1,0,0 +0,3.931826,0,6.907755,7.600903,1,26.1,1,0,0 +2,3.931826,0,6.907755,7.600903,0,4.3,1,0,0 +0,3.931826,0,6.907755,7.600903,0,4.3,1,0,0 +1,3.931826,0,6.907755,7.600903,0,4.3,1,0,0 +1,4.61512,1,6.907755,0,0,13.73189,1,0,0 +2,4.61512,1,6.907755,0,0,13.73189,1,0,0 +3,4.61512,1,6.907755,0,0,13.73189,1,0,0 +0,4.61512,1,6.907755,0,0,13.73189,1,0,0 +1,4.61512,1,6.907755,0,0,13.73189,1,0,0 +0,4.61512,1,6.907755,0,0,17.4,1,0,0 +0,4.61512,1,6.907755,0,0,17.4,1,0,0 +0,4.61512,1,6.907755,0,0,17.4,1,0,0 +0,4.61512,1,6.907755,0,0,17.4,1,0,0 +0,4.61512,1,6.907755,0,0,17.4,1,0,0 +1,4.61512,1,6.907755,0,0,13.73189,1,0,0 +0,4.61512,1,6.907755,0,0,13.73189,1,0,0 +1,4.61512,1,6.907755,0,0,13.73189,1,0,0 +0,4.61512,1,6.907755,0,0,13.73189,1,0,0 +1,4.61512,1,6.907755,0,0,13.73189,1,0,0 +2,4.61512,1,6.907755,0,0,13,1,0,0 +0,4.61512,1,6.907755,0,0,13,1,0,0 +1,4.61512,1,6.907755,0,0,13,1,0,0 +1,4.61512,1,6.907755,0,0,13,1,0,0 +1,4.61512,1,6.907755,0,0,13,1,0,0 +4,4.61512,1,6.907755,0,0,8.7,1,0,0 +3,4.61512,1,6.907755,0,0,8.7,1,0,0 +1,4.61512,1,6.907755,0,0,8.7,1,0,0 +1,4.61512,1,6.907755,0,0,8.7,1,0,0 +0,4.61512,1,6.907755,0,0,8.7,1,0,0 +0,4.61512,1,6.907755,0,0,0,0,0,0 +0,4.61512,1,6.907755,0,0,0,0,0,0 +3,4.61512,1,6.907755,0,0,0,0,0,0 +2,4.61512,1,6.907755,0,0,0,0,0,0 +1,4.61512,1,6.907755,0,0,0,0,0,0 +1,4.61512,1,6.907755,0,.0277778,13.73189,1,0,0 +1,4.61512,1,6.907755,0,.0277778,13.73189,1,0,0 +2,4.61512,1,6.907755,0,.0277778,13.73189,1,0,0 +0,4.61512,1,6.907755,0,.0277778,13.73189,1,0,0 +2,4.61512,1,6.907755,0,.0277778,13.73189,1,0,0 +0,4.61512,1,6.907755,0,0,13.73189,0,0,0 +1,4.61512,1,6.907755,0,0,13.73189,0,0,0 +0,4.61512,1,6.907755,0,0,13.73189,0,0,0 +1,4.61512,1,6.907755,0,0,13.73189,0,0,0 +0,4.61512,1,6.907755,0,0,13.73189,0,0,0 +2,4.61512,1,6.907755,0,0,8.7,1,0,0 +6,4.61512,1,6.907755,0,0,8.7,1,0,0 +0,4.61512,1,6.907755,0,0,8.7,1,0,0 +1,4.61512,1,6.907755,0,0,8.7,1,0,0 +1,4.61512,1,6.907755,0,0,8.7,1,0,0 +12,3.931826,0,6.907755,7.600903,1,21.7,1,0,0 +9,3.931826,0,6.907755,7.600903,1,21.7,1,0,0 +7,3.931826,0,6.907755,7.600903,1,21.7,1,0,0 +3,3.931826,0,6.907755,7.600903,1,13,0,0,0 +2,3.931826,0,6.907755,7.600903,1,13,0,0,0 +3,3.931826,0,6.907755,7.600903,1,13,0,0,0 +10,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +7,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +5,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +5,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +5,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +3,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +4,4.61512,1,0,0,0,8.7,1,0,0 +3,4.61512,1,0,0,0,8.7,1,0,0 +0,4.61512,1,0,0,0,8.7,1,0,0 +1,4.61512,1,0,0,0,8.7,1,0,0 +1,4.61512,1,0,0,0,8.7,1,0,0 +1,4.61512,1,0,0,0,4.3,1,0,0 +1,4.61512,1,0,0,0,4.3,1,0,0 +0,4.61512,1,0,0,0,4.3,1,0,0 +0,4.61512,1,0,0,0,4.3,1,0,0 +0,4.61512,1,0,0,0,4.3,1,0,0 +0,4.61512,1,0,0,0,13.73189,1,0,0 +1,4.61512,1,0,0,0,13.73189,1,0,0 +8,4.61512,1,0,0,0,13.73189,1,0,0 +3,4.61512,1,0,0,0,13.73189,1,0,0 +2,4.61512,1,0,0,0,13.73189,1,0,0 +7,4.61512,1,0,0,0,17.4,1,0,0 +5,4.61512,1,0,0,0,17.4,1,0,0 +4,4.61512,1,0,0,0,17.4,1,0,0 +2,4.61512,1,0,0,0,17.4,1,0,0 +4,4.61512,1,0,0,0,17.4,1,0,0 +1,4.61512,1,0,0,0,13,0,1,0 +6,4.61512,1,0,0,0,13,0,1,0 +2,4.61512,1,0,0,0,13,0,1,0 +4,4.61512,1,0,0,0,13,0,1,0 +0,4.61512,1,0,0,0,13,0,1,0 +8,0,1,6.109248,0,0,13.73189,0,0,0 +4,0,1,6.109248,0,0,13.73189,0,0,0 +6,0,1,6.109248,0,0,13.73189,0,0,0 +4,0,1,6.109248,0,0,13.73189,0,0,0 +3,0,1,6.109248,0,0,13.73189,0,0,0 +4,0,1,6.109248,0,0,13.73189,0,0,0 +3,0,1,6.109248,0,0,13.73189,0,0,0 +2,0,1,6.109248,0,0,13.73189,0,0,0 +3,0,1,6.109248,0,0,13.73189,0,0,0 +3,0,1,6.109248,0,0,13.73189,0,0,0 +1,0,1,6.109248,0,0,13.73189,1,0,0 +0,0,1,6.109248,0,0,13.73189,1,0,0 +4,0,1,6.109248,0,0,13.73189,1,0,0 +3,0,1,6.109248,0,0,13.73189,1,0,0 +0,0,1,6.109248,0,0,13.73189,1,0,0 +3,0,1,6.109248,0,0,13.73189,1,0,0 +2,0,1,6.109248,0,0,13.73189,1,0,0 +1,0,1,6.109248,0,0,13.73189,1,0,0 +2,0,1,6.109248,0,0,13.73189,1,0,0 +2,0,1,6.109248,0,0,13.73189,1,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +4,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +3,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +9,3.258096,0,6.907755,8.294049,0,13.73189,0,1,0 +11,3.258096,0,6.907755,8.294049,0,13.73189,0,1,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,0,1,0 +7,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +31,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +5,0,0,6.126869,0,0,13.73189,0,0,0 +3,0,0,6.126869,0,0,13.73189,0,0,0 +6,0,0,6.126869,0,0,13.73189,0,0,0 +4,0,0,6.126869,0,0,13.73189,0,0,0 +1,0,0,6.126869,0,0,13.73189,0,0,0 +3,0,0,6.126869,0,0,8.7,0,0,0 +9,0,0,6.126869,0,0,8.7,0,0,0 +1,0,0,6.126869,0,0,8.7,0,0,0 +4,0,0,6.126869,0,0,8.7,0,0,0 +1,0,0,6.126869,0,0,8.7,0,0,0 +1,0,0,6.126869,0,0,0,0,0,0 +3,0,0,6.126869,0,0,0,0,0,0 +0,0,0,6.126869,0,0,0,0,0,0 +2,0,0,6.126869,0,0,0,0,0,0 +1,0,0,6.126869,0,0,0,0,0,0 +3,0,0,6.126869,0,0,13.73189,0,0,0 +5,0,0,6.126869,0,0,13.73189,0,0,0 +7,0,0,6.126869,0,0,13.73189,0,0,0 +3,0,0,6.126869,0,0,13.73189,0,0,0 +0,0,0,6.126869,0,0,13.73189,0,0,0 +1,0,0,6.126869,0,0,13.73189,0,0,0 +5,0,0,6.126869,0,0,13.73189,0,0,0 +7,0,0,6.126869,0,0,13.73189,0,0,0 +4,0,0,6.126869,0,0,13.73189,0,0,0 +2,0,0,6.126869,0,0,13.73189,0,0,0 +8,0,0,0,0,1,30.4,0,0,1 +9,0,0,0,0,1,30.4,0,0,1 +2,0,0,0,0,1,30.4,0,0,1 +4,0,0,0,0,1,30.4,0,0,1 +3,0,0,0,0,1,30.4,0,0,1 +15,0,0,0,0,0,30.4,0,1,0 +28,0,0,0,0,0,30.4,0,1,0 +11,0,0,0,0,0,30.4,0,1,0 +16,0,0,0,0,0,30.4,0,1,0 +17,0,0,0,0,0,30.4,0,1,0 +0,0,1,0,0,0,4.3,0,0,0 +0,0,1,0,0,0,4.3,0,0,0 +0,0,1,0,0,0,4.3,0,0,0 +0,0,1,0,0,0,4.3,0,0,0 +0,0,1,0,0,0,4.3,0,0,0 +0,4.61512,1,6.907755,0,0,13.73189,1,0,0 +0,4.61512,1,6.907755,0,0,13.73189,1,0,0 +0,4.61512,1,6.907755,0,0,13.73189,1,0,0 +0,4.61512,1,6.907755,0,0,13.73189,0,0,0 +0,4.61512,1,6.907755,0,0,13.73189,0,0,0 +0,4.61512,1,6.907755,0,0,13.73189,0,0,0 +0,4.61512,1,6.907755,0,0,13.73189,1,0,0 +0,4.61512,1,6.907755,0,0,13.73189,1,0,0 +0,4.61512,1,6.907755,0,0,13.73189,1,0,0 +4,4.61512,1,6.907755,0,1,13.73189,0,1,0 +0,4.61512,1,6.907755,0,1,13.73189,0,1,0 +3,4.61512,1,6.907755,0,1,13.73189,0,1,0 +0,4.61512,1,6.907755,0,0,13.73189,1,0,0 +0,4.61512,1,6.907755,0,0,13.73189,1,0,0 +0,4.61512,1,6.907755,0,0,13.73189,1,0,0 +0,4.61512,1,6.907755,0,0,13.73189,1,0,0 +0,4.61512,1,6.907755,0,0,13.73189,1,0,0 +0,4.61512,1,6.907755,0,0,13.73189,1,0,0 +1,4.61512,1,6.907755,0,0,13.73189,0,0,0 +0,4.61512,1,6.907755,0,0,13.73189,0,0,0 +0,4.61512,1,6.907755,0,0,13.73189,0,0,0 +4,0,0,0,0,0,17.4,1,0,0 +5,0,0,0,0,0,17.4,1,0,0 +0,0,0,0,0,0,17.4,1,0,0 +0,0,0,0,0,0,17.4,1,0,0 +3,0,0,0,0,0,17.4,1,0,0 +4,0,0,0,0,0,4.3,1,0,0 +0,0,0,0,0,0,4.3,1,0,0 +0,0,0,0,0,0,4.3,1,0,0 +0,0,0,0,0,0,4.3,1,0,0 +2,0,0,0,0,0,4.3,1,0,0 +1,0,0,0,0,0,13.73189,1,0,0 +1,0,0,0,0,0,13.73189,1,0,0 +4,0,0,0,0,0,13.73189,1,0,0 +2,0,0,0,0,0,13.73189,1,0,0 +2,0,0,0,0,0,13.73189,1,0,0 +10,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +0,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +2,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +2,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +6,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +2,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +0,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +0,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +1,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +0,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +5,3.931826,0,6.907755,7.600903,1,26.1,0,1,0 +2,3.931826,0,6.907755,7.600903,1,26.1,0,1,0 +5,3.931826,0,6.907755,7.600903,1,26.1,0,1,0 +3,3.931826,0,6.907755,7.600903,1,26.1,0,1,0 +4,3.931826,0,6.907755,7.600903,1,26.1,0,1,0 +0,3.931826,0,6.907755,7.600903,0,13,1,0,0 +0,3.931826,0,6.907755,7.600903,0,13,1,0,0 +0,3.931826,0,6.907755,7.600903,0,13,1,0,0 +1,3.931826,0,6.907755,7.600903,0,13,1,0,0 +0,3.931826,0,6.907755,7.600903,0,13,1,0,0 +4,3.931826,0,6.907755,7.600903,0,13,0,0,0 +2,3.931826,0,6.907755,7.600903,0,13,0,0,0 +1,3.931826,0,6.907755,7.600903,0,13,0,0,0 +2,3.931826,0,6.907755,7.600903,0,13,0,0,0 +1,3.931826,0,6.907755,7.600903,0,13,0,0,0 +3,0,0,0,0,1,17.4,1,0,0 +6,0,0,0,0,1,17.4,1,0,0 +2,0,0,0,0,1,17.4,1,0,0 +2,0,0,0,0,1,30.4,0,1,0 +1,0,0,0,0,1,30.4,0,1,0 +5,0,0,0,0,1,30.4,0,1,0 +8,3.258096,0,4.70048,6.086775,1,13.73189,0,1,0 +5,3.258096,0,4.70048,6.086775,1,13.73189,0,1,0 +0,0,0,0,0,0,4.3,1,0,0 +1,0,0,0,0,0,4.3,1,0,0 +3,0,0,0,0,0,4.3,1,0,0 +0,0,0,0,0,0,4.3,1,0,0 +2,0,0,0,0,0,4.3,1,0,0 +2,0,0,0,0,0,8.7,1,0,0 +0,0,0,0,0,0,8.7,1,0,0 +0,0,0,0,0,0,8.7,1,0,0 +0,0,0,0,0,0,8.7,1,0,0 +1,0,0,0,0,0,8.7,1,0,0 +0,0,0,0,0,0,8.7,1,0,0 +1,0,0,0,0,0,8.7,1,0,0 +8,0,0,0,0,0,8.7,1,0,0 +1,0,0,0,0,0,8.7,1,0,0 +3,0,0,0,0,0,8.7,1,0,0 +4,0,0,4.276666,0,0,0,1,0,0 +10,0,0,4.276666,0,0,0,1,0,0 +8,0,0,4.276666,0,0,0,1,0,0 +3,0,0,4.276666,0,0,0,1,0,0 +2,0,0,4.276666,0,0,0,1,0,0 +8,4.61512,1,0,0,0,21.7,0,0,1 +0,4.61512,1,0,0,0,21.7,0,0,1 +0,4.61512,1,0,0,0,21.7,0,0,1 +0,3.258096,0,4.61512,6.001415,0,13.73189,0,0,0 +0,3.258096,0,4.61512,6.001415,0,13.73189,0,0,0 +0,3.258096,0,4.61512,6.001415,0,13.73189,0,0,0 +0,3.258096,0,4.61512,6.001415,0,13.73189,0,0,0 +0,3.258096,0,4.61512,6.001415,0,13.73189,0,0,0 +0,3.258096,0,4.61512,6.001415,0,13.73189,0,0,0 +0,3.258096,0,4.61512,6.001415,0,8.7,0,0,0 +0,3.258096,0,4.61512,6.001415,0,8.7,0,0,0 +0,3.258096,0,4.61512,6.001415,0,21.7,0,0,0 +0,3.258096,0,4.61512,6.001415,0,21.7,0,0,0 +2,0,0,0,0,0,13,0,0,0 +5,0,0,0,0,0,13,0,0,0 +5,0,0,0,0,0,13,0,0,0 +5,0,0,0,0,0,13,0,0,0 +5,0,0,0,0,0,13,0,0,0 +0,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +1,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +1,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +1,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +0,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +0,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +6,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +5,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +3,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +1,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +0,3.931826,0,6.907755,7.600903,0,0,1,0,0 +1,3.931826,0,6.907755,7.600903,0,0,1,0,0 +0,3.931826,0,6.907755,7.600903,0,0,1,0,0 +0,3.931826,0,6.907755,7.600903,0,0,1,0,0 +0,3.931826,0,6.907755,7.600903,0,0,1,0,0 +1,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +1,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +1,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +2,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +1,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +1,3.931826,0,6.907755,7.600903,1,21.7,1,0,0 +0,3.931826,0,6.907755,7.600903,1,21.7,1,0,0 +1,3.931826,0,6.907755,7.600903,1,21.7,1,0,0 +1,3.931826,0,6.907755,7.600903,1,21.7,1,0,0 +2,3.931826,0,6.907755,7.600903,1,21.7,1,0,0 +1,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +4,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +1,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +3,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +6,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +2,3.258096,0,6.907755,8.294049,0,13,1,0,0 +2,3.258096,0,6.907755,8.294049,0,13,1,0,0 +1,3.258096,0,6.907755,8.294049,0,13,1,0,0 +0,3.258096,0,6.907755,8.294049,0,13,1,0,0 +4,3.258096,0,6.907755,8.294049,0,13,1,0,0 +2,3.258096,0,6.907755,8.294049,0,21.7,1,0,0 +9,3.258096,0,6.907755,8.294049,0,21.7,1,0,0 +4,3.258096,0,6.907755,8.294049,0,21.7,1,0,0 +1,3.258096,0,6.907755,8.294049,0,21.7,1,0,0 +2,3.258096,0,6.907755,8.294049,0,21.7,1,0,0 +8,3.258096,0,6.907755,8.294049,0,13.73189,0,1,0 +5,3.258096,0,6.907755,8.294049,0,13.73189,0,1,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,0,1,0 +4,3.258096,0,6.907755,8.294049,0,13.73189,0,1,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,0,1,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +3,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +7,3.258096,0,6.520621,7.906916,0,13,1,0,0 +13,3.258096,0,6.520621,7.906916,0,13,1,0,0 +4,3.258096,0,6.520621,7.906916,0,13,1,0,0 +1,3.258096,0,6.520621,7.906916,0,8.7,1,0,0 +1,3.258096,0,6.520621,7.906916,0,8.7,1,0,0 +7,3.258096,0,6.520621,7.906916,0,8.7,1,0,0 +2,3.258096,0,6.520621,7.906916,0,13.73189,1,0,0 +1,3.258096,0,6.520621,7.906916,0,13.73189,1,0,0 +0,3.258096,0,6.520621,7.906916,0,13.73189,1,0,0 +0,3.258096,0,6.520621,7.906916,0,13.73189,1,0,0 +1,3.258096,0,6.520621,7.906916,0,13.73189,1,0,0 +0,3.258096,0,6.520621,7.906916,0,13.73189,1,0,0 +5,0,1,6.109248,0,0,30.4,1,0,0 +2,0,1,6.109248,0,0,30.4,1,0,0 +0,0,1,6.109248,0,0,30.4,1,0,0 +3,0,1,6.109248,0,0,30.4,1,0,0 +4,0,1,6.109248,0,0,30.4,1,0,0 +2,0,1,6.109248,0,1,17.4,1,0,0 +1,0,1,6.109248,0,1,17.4,1,0,0 +1,0,1,6.109248,0,1,17.4,1,0,0 +1,0,1,6.109248,0,1,17.4,1,0,0 +1,0,1,6.109248,0,1,17.4,1,0,0 +9,0,1,6.109248,0,0,13.73189,1,0,0 +10,0,1,6.109248,0,0,13.73189,1,0,0 +8,0,1,6.109248,0,0,13.73189,1,0,0 +6,0,1,6.109248,0,0,13.73189,1,0,0 +8,0,1,6.109248,0,0,13.73189,1,0,0 +0,3.931826,0,6.907755,7.600903,0,0,0,0,0 +3,3.931826,0,6.907755,7.600903,0,0,0,0,0 +0,3.931826,0,6.907755,7.600903,0,0,0,0,0 +2,3.931826,0,6.907755,7.600903,0,0,0,0,0 +2,3.931826,0,6.907755,7.600903,0,0,0,0,0 +1,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +0,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +2,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +1,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +1,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +4,3.931826,0,6.907755,7.600903,0,21.7,0,0,0 +1,3.931826,0,6.907755,7.600903,0,21.7,0,0,0 +5,3.931826,0,6.907755,7.600903,0,21.7,0,0,0 +4,3.931826,0,6.907755,7.600903,0,21.7,0,0,0 +3,3.931826,0,6.907755,7.600903,0,21.7,0,0,0 +1,3.931826,0,6.907755,7.600903,0,8.7,1,0,0 +0,3.931826,0,6.907755,7.600903,0,8.7,1,0,0 +0,3.931826,0,6.907755,7.600903,0,8.7,1,0,0 +0,3.931826,0,6.907755,7.600903,0,4.3,1,0,0 +0,3.931826,0,6.907755,7.600903,0,4.3,1,0,0 +1,3.931826,0,6.907755,7.600903,0,4.3,1,0,0 +2,3.931826,0,6.907755,7.600903,0,0,1,0,0 +2,3.931826,0,6.907755,7.600903,0,0,1,0,0 +6,3.931826,0,6.907755,7.600903,0,0,1,0,0 +1,3.931826,0,6.907755,7.600903,0,21.7,1,0,0 +0,3.931826,0,6.907755,7.600903,0,21.7,1,0,0 +2,3.931826,0,6.907755,7.600903,0,21.7,1,0,0 +0,3.931826,0,6.907755,7.600903,1,30.4,1,0,0 +2,3.931826,0,6.907755,7.600903,1,30.4,1,0,0 +6,3.931826,0,6.907755,7.600903,1,30.4,1,0,0 +1,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +0,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +7,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +2,3.931826,0,6.363563,7.05671,0,21.7,1,0,0 +2,3.931826,0,6.363563,7.05671,0,21.7,1,0,0 +1,3.931826,0,6.363563,7.05671,0,21.7,1,0,0 +2,3.931826,0,6.263398,6.956545,0,8.7,0,0,0 +2,3.931826,0,6.263398,6.956545,0,8.7,0,0,0 +0,3.931826,0,6.263398,6.956545,0,8.7,0,0,0 +1,3.931826,0,6.263398,6.956545,0,8.7,0,0,0 +1,3.931826,0,6.263398,6.956545,0,8.7,0,0,0 +2,3.931826,0,6.263398,6.956545,0,13.73189,0,0,0 +0,3.931826,0,6.263398,6.956545,0,13.73189,0,0,0 +0,3.931826,0,6.263398,6.956545,0,13.73189,0,0,0 +2,3.931826,0,6.263398,6.956545,0,13.73189,0,0,0 +1,3.931826,0,6.263398,6.956545,0,13.73189,0,0,0 +16,3.931826,0,6.263398,6.956545,0,13.73189,0,0,0 +16,3.931826,0,6.263398,6.956545,0,13.73189,0,0,0 +7,3.931826,0,6.263398,6.956545,0,13.73189,0,0,0 +0,3.931826,0,6.263398,6.956545,0,13.73189,0,0,0 +0,3.931826,0,6.263398,6.956545,0,13.73189,0,0,0 +4,3.931826,0,6.263398,6.956545,0,17.4,0,0,0 +0,3.931826,0,6.263398,6.956545,0,17.4,0,0,0 +3,3.931826,0,6.263398,6.956545,0,17.4,0,0,0 +1,3.931826,0,6.263398,6.956545,0,17.4,0,0,0 +2,3.931826,0,6.263398,6.956545,0,17.4,0,0,0 +0,3.258096,0,4.276666,5.662961,1,13.73189,0,1,0 +0,3.258096,0,4.276666,5.662961,1,13.73189,0,1,0 +29,3.258096,0,4.276666,5.662961,1,13.73189,0,1,0 +0,3.258096,0,4.276666,5.662961,1,26.1,0,1,0 +0,3.258096,0,4.276666,5.662961,1,26.1,0,1,0 +12,3.258096,0,4.276666,5.662961,1,26.1,0,1,0 +3,4.61512,1,6.907755,0,0,8.7,0,0,0 +0,4.61512,1,6.907755,0,0,8.7,0,0,0 +7,4.61512,1,6.907755,0,0,8.7,0,0,0 +2,4.61512,1,6.907755,0,0,8.7,0,0,0 +1,4.61512,1,6.907755,0,0,8.7,0,0,0 +4,4.61512,1,6.907755,0,0,4.3,0,0,0 +0,4.61512,1,6.907755,0,0,4.3,0,0,0 +0,4.61512,1,6.907755,0,0,4.3,0,0,0 +0,4.61512,1,6.907755,0,0,4.3,0,0,0 +1,4.61512,1,6.907755,0,0,4.3,0,0,0 +1,4.61512,1,6.907755,0,0,4.3,0,0,0 +3,4.61512,1,6.907755,0,0,4.3,0,0,0 +1,4.61512,1,6.907755,0,0,4.3,0,0,0 +0,4.61512,1,6.907755,0,0,4.3,0,0,0 +2,4.61512,1,6.907755,0,0,4.3,0,0,0 +2,4.61512,1,6.907755,0,0,26.1,1,0,0 +4,4.61512,1,6.907755,0,0,26.1,1,0,0 +1,4.61512,1,6.907755,0,0,26.1,1,0,0 +4,4.61512,1,6.907755,0,0,26.1,1,0,0 +6,4.61512,1,6.907755,0,0,26.1,1,0,0 +2,4.61512,1,4.317488,0,0,13.73189,0,0,0 +8,4.61512,1,4.317488,0,0,13.73189,0,0,0 +2,4.61512,1,4.317488,0,0,13.73189,0,0,0 +4,4.61512,1,4.317488,0,0,13.73189,0,0,0 +4,4.61512,1,4.317488,0,0,13.73189,0,0,0 +8,4.61512,1,4.317488,0,0,21.7,0,0,0 +3,4.61512,1,4.317488,0,0,21.7,0,0,0 +16,4.61512,1,4.317488,0,0,21.7,0,0,0 +18,4.61512,1,4.317488,0,0,21.7,0,0,0 +8,4.61512,1,4.317488,0,0,21.7,0,0,0 +1,4.61512,1,6.907755,0,0,13.73189,0,0,0 +1,4.61512,1,6.907755,0,0,13.73189,0,0,0 +2,4.61512,1,6.907755,0,0,13.73189,0,0,0 +0,4.61512,1,6.907755,0,0,13.73189,0,0,0 +1,4.61512,1,6.907755,0,0,13.73189,0,0,0 +2,4.61512,1,6.907755,0,0,13.73189,0,0,0 +1,4.61512,1,6.907755,0,0,13.73189,0,0,0 +1,4.61512,1,6.907755,0,0,13.73189,0,0,0 +7,4.61512,1,6.907755,0,0,13.73189,0,0,0 +2,4.61512,1,6.907755,0,0,13.73189,0,0,0 +5,4.61512,1,6.907755,0,1,13.73189,0,1,0 +1,4.61512,1,6.907755,0,1,13.73189,0,1,0 +11,4.61512,1,6.907755,0,1,13.73189,0,1,0 +8,4.61512,1,6.907755,0,1,13.73189,0,1,0 +9,4.61512,1,6.907755,0,1,13.73189,0,1,0 +6,0,1,4.382027,0,1,26.1,1,0,0 +2,0,1,4.382027,0,1,26.1,1,0,0 +4,0,1,4.382027,0,1,26.1,1,0,0 +3,0,1,4.382027,0,1,26.1,1,0,0 +6,0,1,4.382027,0,1,26.1,1,0,0 +3,0,1,4.382027,0,0,4.3,0,0,0 +4,0,1,4.382027,0,0,4.3,0,0,0 +3,0,1,4.382027,0,0,4.3,0,0,0 +3,0,1,4.382027,0,0,4.3,0,0,0 +5,0,1,4.382027,0,0,4.3,0,0,0 +1,0,0,0,0,0,8.7,0,0,0 +1,0,0,0,0,0,8.7,0,0,0 +2,0,0,0,0,0,8.7,0,0,0 +6,0,0,0,0,0,8.7,0,0,0 +4,0,0,0,0,0,8.7,0,0,0 +5,0,0,0,0,0,17.4,0,0,0 +2,0,0,0,0,0,17.4,0,0,0 +4,0,0,0,0,0,17.4,0,0,0 +3,0,0,0,0,0,17.4,0,0,0 +5,0,0,0,0,0,17.4,0,0,0 +6,0,0,0,0,0,13.73189,0,0,0 +3,0,0,0,0,0,13.73189,0,0,0 +8,0,0,0,0,0,13.73189,0,0,0 +5,0,0,0,0,0,13.73189,0,0,0 +3,0,0,0,0,0,13.73189,0,0,0 +15,0,0,0,0,0,8.7,0,0,0 +4,0,0,0,0,0,8.7,0,0,0 +5,0,0,0,0,0,8.7,0,0,0 +2,0,0,0,0,0,8.7,0,0,0 +0,0,0,0,0,0,8.7,0,0,0 +2,0,0,0,0,0,4.3,0,0,0 +12,0,0,0,0,0,4.3,0,0,0 +9,0,0,0,0,0,4.3,0,0,0 +4,0,0,0,0,0,4.3,0,0,0 +2,0,0,0,0,0,4.3,0,0,0 +3,0,0,5.451038,0,0,13.73189,1,0,0 +5,0,0,5.451038,0,0,13.73189,1,0,0 +4,0,0,5.451038,0,0,13.73189,1,0,0 +5,0,0,5.451038,0,0,13.73189,1,0,0 +3,0,0,5.451038,0,0,13.73189,1,0,0 +4,0,0,5.451038,0,0,13.73189,1,0,0 +5,0,0,5.451038,0,0,13.73189,1,0,0 +6,0,0,5.451038,0,0,13.73189,1,0,0 +5,0,0,5.451038,0,0,13.73189,1,0,0 +6,0,0,5.451038,0,0,13.73189,1,0,0 +1,0,0,5.451038,0,0,13.73189,1,0,0 +1,0,0,5.451038,0,0,13.73189,1,0,0 +0,0,0,5.451038,0,0,13.73189,1,0,0 +0,0,0,5.451038,0,0,13.73189,1,0,0 +1,0,0,5.451038,0,0,13.73189,1,0,0 +9,0,0,5.451038,0,0,13.73189,1,0,0 +4,0,0,5.451038,0,0,13.73189,1,0,0 +2,0,0,5.451038,0,0,13.73189,1,0,0 +2,0,0,5.451038,0,0,13.73189,1,0,0 +4,0,0,5.451038,0,0,13.73189,1,0,0 +4,3.258096,0,6.907755,8.294049,0,17.4,1,0,0 +5,3.258096,0,6.907755,8.294049,0,17.4,1,0,0 +6,3.258096,0,6.907755,8.294049,0,17.4,1,0,0 +11,3.258096,0,6.907755,8.294049,0,21.7,1,0,0 +13,3.258096,0,6.907755,8.294049,0,21.7,1,0,0 +9,3.258096,0,6.907755,8.294049,0,21.7,1,0,0 +1,4.61512,1,6.549651,0,0,4.3,0,0,0 +6,4.61512,1,6.549651,0,0,4.3,0,0,0 +0,4.61512,1,6.549651,0,0,4.3,0,0,0 +6,4.61512,1,6.549651,0,0,4.3,0,0,0 +5,4.61512,1,6.549651,0,0,4.3,0,0,0 +22,4.61512,1,6.549651,0,0,26.1,1,0,0 +2,4.61512,1,6.549651,0,0,26.1,1,0,0 +0,4.61512,1,6.549651,0,0,26.1,1,0,0 +2,4.61512,1,6.549651,0,0,26.1,1,0,0 +0,4.61512,1,6.549651,0,0,26.1,1,0,0 +8,0,1,4.976734,0,0,13.73189,0,0,0 +7,0,1,4.976734,0,0,13.73189,0,0,0 +1,0,1,4.976734,0,0,13.73189,0,0,0 +0,0,1,4.976734,0,0,13.73189,1,0,0 +7,0,1,4.976734,0,0,13.73189,1,0,0 +6,0,1,4.976734,0,0,13.73189,1,0,0 +0,0,1,4.976734,0,0,13.73189,1,0,0 +0,0,1,4.976734,0,0,13.73189,1,0,0 +0,0,1,4.976734,0,0,13.73189,1,0,0 +1,3.931826,0,6.907755,7.600903,0,0,0,0,0 +2,3.931826,0,6.907755,7.600903,0,0,0,0,0 +2,3.931826,0,6.907755,7.600903,0,0,0,0,0 +1,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +1,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +2,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +2,3.931826,0,6.907755,7.600903,0,21.7,0,0,0 +5,3.931826,0,6.907755,7.600903,0,21.7,0,0,0 +4,3.931826,0,6.907755,7.600903,0,21.7,0,0,0 +0,3.931826,0,6.907755,7.600903,0,0,0,0,0 +1,3.931826,0,6.907755,7.600903,0,0,0,0,0 +0,3.931826,0,6.907755,7.600903,0,0,0,0,0 +0,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +0,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +4,3.931826,0,6.907755,7.600903,0,4.3,1,0,0 +2,3.931826,0,6.907755,7.600903,0,4.3,1,0,0 +0,3.931826,0,6.907755,7.600903,0,0,1,0,0 +1,3.931826,0,6.907755,7.600903,0,0,1,0,0 +1,3.931826,0,6.907755,7.600903,0,0,1,0,0 +1,3.931826,0,6.907755,7.600903,0,0,1,0,0 +0,3.931826,0,6.907755,7.600903,0,0,1,0,0 +2,4.61512,1,6.907755,0,0,13.73189,0,0,0 +2,4.61512,1,6.907755,0,0,13.73189,0,0,0 +1,4.61512,1,6.907755,0,0,13.73189,0,0,0 +2,4.61512,1,6.907755,0,0,13.73189,0,0,0 +0,4.61512,1,6.907755,0,0,13.73189,0,0,0 +1,4.61512,1,6.907755,0,0,4.3,0,0,0 +0,4.61512,1,6.907755,0,0,4.3,0,0,0 +1,4.61512,1,6.907755,0,0,4.3,0,0,0 +0,4.61512,1,6.907755,0,0,4.3,0,0,0 +0,4.61512,1,6.907755,0,0,4.3,0,0,0 +2,4.61512,1,6.907755,0,0,13.73189,1,0,0 +6,4.61512,1,6.907755,0,0,13.73189,1,0,0 +3,4.61512,1,6.907755,0,0,13.73189,1,0,0 +2,4.61512,1,6.907755,0,0,13.73189,1,0,0 +0,4.61512,1,6.907755,0,0,13.73189,1,0,0 +0,4.61512,1,6.907755,0,0,13,0,0,0 +4,4.61512,1,6.907755,0,0,13,0,0,0 +3,4.61512,1,6.907755,0,0,13,0,0,0 +1,4.61512,1,6.907755,0,0,13,0,0,0 +0,4.61512,1,6.907755,0,0,13,0,0,0 +15,3.258096,0,6.461468,7.847763,0,13.73189,1,0,0 +4,3.258096,0,6.461468,7.847763,0,13.73189,1,0,0 +6,3.258096,0,6.461468,7.847763,0,13.73189,1,0,0 +11,3.258096,0,6.461468,7.847763,1,30.4,0,1,0 +1,3.258096,0,6.461468,7.847763,1,30.4,0,1,0 +6,3.258096,0,6.461468,7.847763,1,30.4,0,1,0 +7,3.258096,0,6.461468,7.847763,0,13.73189,1,0,0 +6,3.258096,0,6.461468,7.847763,0,13.73189,1,0,0 +5,3.258096,0,6.461468,7.847763,0,13.73189,1,0,0 +2,3.258096,0,6.461468,7.847763,0,26.1,0,0,0 +9,3.258096,0,6.461468,7.847763,0,26.1,0,0,0 +4,3.258096,0,6.461468,7.847763,0,26.1,0,0,0 +4,0,0,5.111988,0,0,13.73189,1,0,0 +4,0,0,5.111988,0,0,13.73189,1,0,0 +6,0,0,5.111988,0,0,13.73189,1,0,0 +2,0,0,5.111988,0,0,13.73189,0,0,0 +1,0,0,5.111988,0,0,13.73189,0,0,0 +5,0,0,5.111988,0,0,13.73189,0,0,0 +5,0,0,5.111988,0,0,13.73189,0,0,0 +5,0,0,5.111988,0,0,13.73189,0,0,0 +3,0,0,5.111988,0,0,13.73189,0,0,0 +0,3.258096,0,6.214608,7.600903,0,0,0,0,0 +0,3.258096,0,6.214608,7.600903,0,0,0,0,0 +0,3.258096,0,6.214608,7.600903,0,0,0,0,0 +0,3.258096,0,6.214608,7.600903,0,0,0,0,0 +0,3.258096,0,6.214608,7.600903,0,0,0,0,0 +8,3.258096,0,6.214608,7.600903,0,13.73189,0,0,0 +3,3.258096,0,6.214608,7.600903,0,13.73189,0,0,0 +2,3.258096,0,6.214608,7.600903,0,13.73189,0,0,0 +4,3.258096,0,6.214608,7.600903,0,13.73189,0,0,0 +1,3.258096,0,6.214608,7.600903,0,13.73189,0,0,0 +10,3.258096,0,6.214608,7.600903,0,13.73189,0,0,0 +6,3.258096,0,6.214608,7.600903,0,13.73189,0,0,0 +2,3.258096,0,6.214608,7.600903,0,13.73189,0,0,0 +1,3.258096,0,6.214608,7.600903,0,13.73189,0,0,0 +2,3.258096,0,6.214608,7.600903,0,13.73189,0,0,0 +6,3.258096,0,6.214608,7.600903,0,26.1,0,0,0 +1,3.258096,0,6.214608,7.600903,0,26.1,0,0,0 +4,3.258096,0,6.214608,7.600903,0,26.1,0,0,0 +1,3.258096,0,6.214608,7.600903,0,26.1,0,0,0 +1,3.258096,0,6.214608,7.600903,0,26.1,0,0,0 +0,4.61512,1,6.39693,0,0,26.1,1,0,0 +4,4.61512,1,6.39693,0,0,26.1,1,0,0 +0,4.61512,1,6.39693,0,0,26.1,1,0,0 +0,4.61512,1,6.39693,0,0,26.1,1,0,0 +2,4.61512,1,6.39693,0,0,26.1,1,0,0 +4,4.61512,1,6.39693,0,0,4.3,0,0,0 +1,4.61512,1,6.39693,0,0,4.3,0,0,0 +0,4.61512,1,6.39693,0,0,4.3,0,0,0 +1,4.61512,1,6.39693,0,0,4.3,0,0,0 +7,4.61512,1,6.39693,0,0,4.3,0,0,0 +1,0,1,0,0,0,13.73189,0,0,0 +0,0,1,0,0,0,13.73189,0,0,0 +0,0,1,0,0,0,13.73189,0,0,0 +0,0,1,0,0,0,13.73189,0,0,0 +0,0,1,0,0,0,13.73189,0,0,0 +5,0,1,0,0,0,17.4,1,0,0 +3,0,1,0,0,0,17.4,1,0,0 +0,0,1,0,0,0,17.4,1,0,0 +9,0,1,0,0,0,17.4,1,0,0 +9,0,1,0,0,0,17.4,1,0,0 +0,0,1,0,0,0,8.7,0,0,0 +0,0,1,0,0,0,8.7,0,0,0 +5,0,1,0,0,0,8.7,0,0,0 +2,0,1,0,0,0,8.7,0,0,0 +0,0,1,0,0,0,8.7,0,0,0 +0,0,1,0,0,0,8.7,0,0,0 +0,0,1,0,0,0,8.7,0,0,0 +0,0,1,0,0,0,8.7,0,0,0 +2,0,1,0,0,0,8.7,0,0,0 +3,0,1,0,0,0,8.7,0,0,0 +2,0,1,0,0,0,13,0,0,0 +0,0,1,0,0,0,13,0,0,0 +0,0,1,0,0,0,13,0,0,0 +0,0,1,0,0,0,13,0,0,0 +3,0,1,0,0,0,13,0,0,0 +0,0,1,0,0,0,13.73189,0,0,0 +0,0,1,0,0,0,13.73189,0,0,0 +2,0,1,0,0,0,13.73189,0,0,0 +6,0,1,0,0,0,13.73189,0,0,0 +1,0,1,0,0,0,13.73189,0,0,0 +1,0,1,0,0,0,8.7,0,0,0 +0,0,1,0,0,0,8.7,0,0,0 +0,0,1,0,0,0,8.7,0,0,0 +1,0,1,0,0,0,8.7,0,0,0 +1,0,1,0,0,0,8.7,0,0,0 +2,0,0,0,0,0,26.1,1,0,0 +38,0,0,0,0,0,26.1,1,0,0 +22,0,0,0,0,0,26.1,1,0,0 +6,0,0,4.094345,0,0,13.73189,0,0,0 +0,0,0,4.094345,0,0,13.73189,0,0,0 +1,0,0,4.094345,0,0,13.73189,0,0,0 +1,0,0,4.094345,0,0,13.73189,0,0,0 +1,0,0,4.094345,0,0,13.73189,0,0,0 +4,0,0,4.094345,0,0,0,0,0,0 +3,0,0,4.094345,0,0,0,0,0,0 +1,0,0,4.094345,0,0,0,0,0,0 +3,0,0,4.094345,0,0,0,0,0,0 +5,0,0,4.094345,0,0,0,0,0,0 +5,0,0,4.094345,0,0,0,0,0,0 +0,0,0,4.094345,0,0,0,0,0,0 +1,0,0,4.094345,0,0,0,0,0,0 +1,0,0,4.094345,0,0,0,0,0,0 +0,0,0,4.094345,0,0,0,0,0,0 +6,0,0,4.094345,0,0,13,0,0,0 +0,0,0,4.094345,0,0,13.73189,0,0,0 +0,0,0,4.094345,0,0,13.73189,0,0,0 +0,0,0,4.094345,0,0,13.73189,0,0,0 +3,0,0,4.094345,0,0,13.73189,0,0,0 +6,0,0,4.094345,0,0,13.73189,0,0,0 +1,0,0,4.094345,0,0,13.73189,0,0,0 +0,0,0,4.094345,0,0,13.73189,0,0,0 +1,0,0,4.094345,0,0,13.73189,0,0,0 +2,0,0,4.094345,0,0,13.73189,0,0,0 +3,0,0,4.094345,0,0,13.73189,0,0,0 +2,0,0,4.094345,0,0,13.73189,0,0,0 +2,0,0,4.094345,0,0,13.73189,0,0,0 +1,0,0,4.094345,0,0,13.73189,0,0,0 +4,0,0,4.094345,0,0,13.73189,0,0,0 +1,0,0,4.094345,0,0,13.73189,0,0,0 +1,0,0,4.094345,0,0,13,0,0,0 +1,0,0,4.094345,0,0,13,0,0,0 +4,0,0,4.094345,0,0,13,0,0,0 +2,0,0,4.094345,0,0,13,0,0,0 +5,0,0,4.094345,0,0,13,0,0,0 +14,0,1,5.703783,0,0,21.7,1,0,0 +4,0,1,5.703783,0,0,21.7,1,0,0 +11,0,1,5.703783,0,0,21.7,1,0,0 +13,0,1,5.703783,0,0,21.7,1,0,0 +12,0,1,5.703783,0,0,21.7,1,0,0 +24,0,1,5.703783,0,0,4.3,1,0,0 +12,0,1,5.703783,0,0,4.3,1,0,0 +18,0,1,5.703783,0,0,4.3,1,0,0 +19,0,1,5.703783,0,0,4.3,1,0,0 +18,0,1,5.703783,0,0,4.3,1,0,0 +5,3.931826,0,0,0,1,30.4,1,0,0 +23,3.931826,0,0,0,1,30.4,1,0,0 +0,3.931826,0,0,0,1,30.4,1,0,0 +0,3.931826,0,0,7.600903,1,34.8,1,0,0 +0,3.931826,0,0,7.600903,1,34.8,1,0,0 +0,3.931826,0,0,7.600903,1,34.8,1,0,0 +6,0,1,5.924256,0,0,13.73189,1,0,0 +1,0,1,5.924256,0,0,13.73189,1,0,0 +0,0,1,5.924256,0,0,13.73189,1,0,0 +0,0,1,5.924256,0,0,13.73189,0,0,0 +0,0,1,5.924256,0,0,13.73189,0,0,0 +0,0,1,5.924256,0,0,13.73189,0,0,0 +3,0,1,5.924256,0,0,13.73189,0,0,0 +3,0,1,5.924256,0,0,13.73189,0,0,0 +3,0,1,5.924256,0,0,13.73189,0,0,0 +2,0,1,5.924256,0,0,13.73189,0,0,0 +1,0,1,5.924256,0,0,13.73189,0,0,0 +1,0,1,5.924256,0,0,13.73189,0,0,0 +1,0,0,0,0,1,21.7,0,0,1 +5,0,0,0,0,1,21.7,0,0,1 +3,0,0,0,0,1,21.7,0,0,1 +9,0,0,0,0,1,21.7,0,0,1 +4,0,0,0,0,1,21.7,0,0,1 +7,0,0,0,0,0,13,1,0,0 +9,0,0,0,0,0,13,1,0,0 +1,0,0,0,0,0,13,1,0,0 +4,0,0,0,0,0,13,1,0,0 +1,0,0,0,0,0,13,1,0,0 +0,0,0,0,0,0,4.3,0,0,0 +1,0,0,0,0,0,4.3,0,0,0 +0,0,0,0,0,0,4.3,0,0,0 +1,0,0,0,0,0,4.3,0,0,0 +0,0,0,0,0,0,4.3,0,0,0 +13,4.61512,1,6.331502,0,1,13.73189,1,0,0 +0,4.61512,1,6.331502,0,1,13.73189,1,0,0 +7,4.61512,1,6.331502,0,1,13.73189,1,0,0 +12,4.61512,1,6.331502,0,1,13.73189,1,0,0 +15,4.61512,1,6.331502,0,1,13.73189,1,0,0 +0,0,1,5.402678,0,1,13,1,0,0 +0,0,1,5.402678,0,1,13,1,0,0 +1,0,1,5.402678,0,1,13,1,0,0 +4,0,1,5.402678,0,1,13,1,0,0 +3,0,1,5.402678,0,1,13,1,0,0 +2,4.61512,1,6.618739,0,0,13.73189,1,0,0 +3,4.61512,1,6.618739,0,0,13.73189,1,0,0 +11,4.61512,1,6.618739,0,0,13.73189,1,0,0 +3,4.61512,1,6.618739,0,0,13.73189,1,0,0 +0,4.61512,1,6.618739,0,0,13.73189,1,0,0 +4,4.61512,1,6.618739,0,0,13.73189,1,0,0 +8,4.61512,1,6.618739,0,0,13.73189,1,0,0 +1,4.61512,1,6.618739,0,0,13.73189,1,0,0 +1,4.61512,1,6.618739,0,0,13.73189,1,0,0 +0,4.61512,1,6.618739,0,0,13.73189,1,0,0 +1,4.61512,1,6.618739,0,0,13.73189,1,0,0 +2,3.931826,0,5.963579,6.656726,0,13,0,0,0 +1,3.931826,0,5.963579,6.656726,0,13,0,0,0 +1,3.931826,0,5.963579,6.656726,0,13,0,0,0 +2,0,0,0,0,0,13.73189,0,0,0 +0,0,0,0,0,0,13.73189,0,0,0 +0,0,0,0,0,0,13.73189,0,0,0 +1,0,0,0,0,0,8.7,0,0,0 +3,0,0,0,0,0,4.3,0,0,0 +0,0,0,0,0,0,4.3,0,0,0 +2,0,0,0,0,0,4.3,0,0,0 +2,0,0,0,0,0,4.3,0,0,0 +2,0,0,0,0,0,4.3,0,0,0 +5,0,0,0,0,0,13,0,0,0 +7,0,0,0,0,0,13,0,0,0 +3,0,0,0,0,0,13,0,0,0 +1,0,0,0,0,0,13,0,0,0 +14,0,0,0,0,0,13,0,0,0 +0,0,0,0,0,0,13.73189,0,0,0 +2,0,0,0,0,0,13.73189,0,0,0 +3,0,0,0,0,0,13.73189,0,0,0 +6,0,0,0,0,0,13.73189,0,0,0 +2,0,0,0,0,0,13.73189,0,0,0 +1,0,0,0,0,0,13.73189,0,0,0 +5,0,0,0,0,0,13.73189,0,0,0 +3,0,0,0,0,0,13.73189,0,0,0 +4,0,0,0,0,0,13.73189,0,0,0 +3,0,0,0,0,0,13.73189,0,0,0 +3,0,0,0,0,0,26.1,0,0,0 +3,0,0,0,0,0,26.1,0,0,0 +6,0,0,0,0,0,26.1,0,0,0 +8,0,0,0,0,0,26.1,0,0,0 +5,0,0,0,0,0,26.1,0,0,0 +1,0,0,0,0,0,21.7,0,0,0 +3,0,0,0,0,0,21.7,0,0,0 +9,0,0,0,0,0,21.7,0,0,0 +4,0,0,0,0,0,21.7,0,0,0 +6,0,0,0,0,0,21.7,0,0,0 +1,0,0,0,0,0,13.73189,0,0,0 +3,0,0,0,0,0,13.73189,0,0,0 +1,0,0,0,0,0,13.73189,0,0,0 +1,0,0,0,0,0,13.73189,0,0,0 +6,0,0,0,0,0,13.73189,0,0,0 +1,0,0,0,0,0,13,0,0,0 +3,0,0,0,0,0,13.73189,0,0,0 +5,0,0,0,0,0,13.73189,0,0,0 +0,0,0,0,0,0,13.73189,0,0,0 +10,0,0,0,0,0,13.73189,0,0,0 +51,0,0,0,0,0,13.73189,0,0,0 +3,4.61512,1,6.907755,0,0,13.73189,0,0,0 +4,4.61512,1,6.907755,0,0,13.73189,0,0,0 +0,4.61512,1,6.907755,0,0,13.73189,0,0,0 +6,4.61512,1,6.907755,0,0,13.73189,0,0,0 +23,4.61512,1,6.907755,0,0,13.73189,0,0,0 +23,4.61512,1,6.907755,0,0,21.7,0,0,0 +12,4.61512,1,6.907755,0,0,21.7,0,0,0 +17,4.61512,1,6.907755,0,0,21.7,0,0,0 +11,4.61512,1,6.907755,0,0,21.7,0,0,0 +13,4.61512,1,6.907755,0,0,21.7,0,0,0 +2,4.61512,1,6.907755,0,0,13,1,0,0 +2,4.61512,1,6.907755,0,0,13,1,0,0 +1,4.61512,1,6.907755,0,0,13,1,0,0 +5,4.61512,1,6.907755,0,0,13,1,0,0 +2,4.61512,1,6.907755,0,0,13,1,0,0 +2,4.61512,1,6.907755,0,0,13.73189,0,0,0 +2,4.61512,1,6.907755,0,0,13.73189,0,0,0 +2,4.61512,1,6.907755,0,0,13.73189,0,0,0 +2,4.61512,1,6.907755,0,0,13.73189,0,0,0 +5,4.61512,1,6.907755,0,0,13.73189,0,0,0 +4,4.61512,1,6.907755,0,0,4.3,0,0,0 +3,4.61512,1,6.907755,0,0,4.3,0,0,0 +5,4.61512,1,6.907755,0,0,4.3,0,0,0 +0,3.258096,0,6.907755,8.294049,0,21.7,1,0,0 +0,3.258096,0,6.907755,8.294049,0,21.7,1,0,0 +5,3.258096,0,6.907755,8.294049,0,21.7,1,0,0 +1,3.258096,0,6.907755,8.294049,0,21.7,1,0,0 +5,3.258096,0,6.907755,8.294049,0,21.7,1,0,0 +1,3.258096,0,6.907755,8.294049,0,17.4,0,0,0 +5,3.258096,0,6.907755,8.294049,0,17.4,0,0,0 +0,3.258096,0,6.907755,8.294049,0,17.4,0,0,0 +0,3.258096,0,6.907755,8.294049,0,17.4,0,0,0 +0,3.258096,0,6.907755,8.294049,0,17.4,0,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +3,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +1,3.258096,0,6.907755,8.294049,0,8.7,0,0,0 +4,3.258096,0,6.907755,8.294049,0,8.7,0,0,0 +1,3.258096,0,6.907755,8.294049,0,8.7,0,0,0 +5,3.258096,0,6.907755,8.294049,0,8.7,0,0,0 +2,3.258096,0,6.907755,8.294049,0,8.7,0,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +5,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +3,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +5,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +3,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +3,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +5,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +33,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +3,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +5,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +8,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +10,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +4,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +5,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +5,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +5,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +4,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +0,3.258096,0,6.244167,7.630461,0,13.73189,1,0,0 +2,3.258096,0,6.244167,7.630461,0,13.73189,1,0,0 +0,3.258096,0,6.244167,7.630461,0,13.73189,1,0,0 +0,3.258096,0,6.244167,7.630461,0,13.73189,1,0,0 +4,3.258096,0,6.244167,7.630461,0,13.73189,1,0,0 +0,3.258096,0,6.244167,7.630461,0,13.73189,1,0,0 +0,3.258096,0,6.244167,7.630461,0,13.73189,1,0,0 +1,3.258096,0,6.244167,7.630461,0,13.73189,1,0,0 +1,3.258096,0,6.244167,7.630461,0,13.73189,1,0,0 +1,3.258096,0,6.244167,7.630461,0,13.73189,1,0,0 +0,3.258096,0,6.244167,7.630461,0,13.73189,1,0,0 +0,3.258096,0,6.244167,7.630461,0,13.73189,1,0,0 +0,3.258096,0,6.244167,7.630461,0,13.73189,1,0,0 +1,3.258096,0,6.244167,7.630461,0,13.73189,1,0,0 +0,3.258096,0,6.244167,7.630461,0,13.73189,1,0,0 +3,3.258096,0,6.244167,7.630461,0,13.73189,1,0,0 +0,3.258096,0,6.244167,7.630461,0,13.73189,1,0,0 +1,3.258096,0,6.244167,7.630461,0,13.73189,1,0,0 +0,3.258096,0,6.244167,7.630461,0,13.73189,1,0,0 +1,3.258096,0,6.244167,7.630461,0,13.73189,1,0,0 +0,3.258096,0,6.244167,7.630461,0,13.73189,1,0,0 +0,4.61512,1,5.645447,0,0,13.73189,1,0,0 +0,4.61512,1,5.645447,0,0,13.73189,1,0,0 +0,4.61512,1,5.645447,0,0,13.73189,1,0,0 +0,4.61512,1,5.645447,0,0,13.73189,1,0,0 +0,4.61512,1,5.645447,0,0,13.73189,1,0,0 +0,4.61512,1,5.645447,0,0,13.73189,1,0,0 +0,4.61512,1,5.645447,0,0,13.73189,1,0,0 +0,4.61512,1,5.645447,0,0,13.73189,1,0,0 +0,4.61512,1,5.645447,0,0,13.73189,1,0,0 +0,4.61512,1,5.645447,0,0,0,1,0,0 +0,4.61512,1,5.645447,0,0,0,1,0,0 +0,4.61512,1,5.645447,0,0,0,1,0,0 +0,4.61512,1,5.645447,0,0,13.73189,1,0,0 +0,4.61512,1,5.645447,0,0,13.73189,1,0,0 +0,4.61512,1,5.645447,0,0,13.73189,1,0,0 +2,3.931826,0,6.309918,7.003066,1,17.4,0,0,1 +0,3.931826,0,6.309918,7.003066,1,17.4,0,0,1 +0,3.931826,0,6.633318,7.326466,0,4.3,1,0,0 +3,3.931826,0,6.633318,7.326466,0,4.3,1,0,0 +0,3.931826,0,6.633318,7.326466,0,4.3,1,0,0 +0,3.931826,0,6.633318,7.326466,0,4.3,1,0,0 +5,3.931826,0,6.633318,7.326466,0,4.3,1,0,0 +4,0,0,0,0,1,13.73189,0,0,0 +3,0,0,0,0,1,13.73189,0,0,0 +1,0,0,0,0,1,13.73189,0,0,0 +0,0,0,0,0,0,13.73189,0,0,0 +0,0,0,0,0,0,13.73189,0,0,0 +5,0,0,0,0,0,13.73189,0,0,0 +1,0,0,0,0,0,13.73189,0,0,0 +0,0,0,0,0,0,13.73189,0,0,0 +2,0,0,0,0,0,13.73189,0,0,0 +1,0,0,0,0,0,13.73189,0,0,0 +0,0,0,0,0,0,13.73189,0,0,0 +1,0,0,0,0,0,13.73189,0,0,0 +0,3.258096,0,6.55108,7.937375,0,0,0,0,0 +0,3.258096,0,6.55108,7.937375,0,0,0,0,0 +1,3.258096,0,6.55108,7.937375,0,0,0,0,0 +0,3.258096,0,6.55108,7.937375,0,13.73189,0,0,0 +0,3.258096,0,6.55108,7.937375,0,13.73189,0,0,0 +1,3.258096,0,6.55108,7.937375,0,13.73189,0,0,0 +0,3.258096,0,6.55108,7.937375,0,4.3,0,0,0 +0,3.258096,0,6.55108,7.937375,0,4.3,0,0,0 +0,3.258096,0,6.55108,7.937375,0,4.3,0,0,0 +0,3.258096,0,6.55108,7.937375,0,13.73189,0,0,0 +1,3.258096,0,6.55108,7.937375,0,13.73189,0,0,0 +1,3.258096,0,6.55108,7.937375,0,13.73189,0,0,0 +1,0,0,0,0,0,13.73189,0,0,0 +4,0,0,0,0,0,13.73189,0,0,0 +2,0,0,0,0,0,13.73189,0,0,0 +2,0,0,0,0,0,13.73189,0,0,0 +3,0,0,0,0,0,13.73189,0,0,0 +3,0,0,0,0,0,4.3,0,0,0 +2,0,0,0,0,0,4.3,0,0,0 +1,0,0,0,0,0,4.3,0,0,0 +3,0,0,0,0,0,4.3,0,0,0 +2,0,0,0,0,0,4.3,0,0,0 +9,0,0,0,0,0,0,0,0,0 +17,0,0,0,0,0,0,0,0,0 +31,0,0,0,0,0,0,0,0,0 +13,0,0,0,0,0,0,0,0,0 +6,0,0,0,0,0,0,0,0,0 +8,0,0,0,0,0,13.73189,0,0,0 +2,0,0,0,0,0,13.73189,0,0,0 +1,0,0,0,0,0,13.73189,0,0,0 +4,0,0,0,0,0,13.73189,0,0,0 +2,0,0,0,0,0,13.73189,0,0,0 +15,0,0,0,0,0,13,0,0,0 +28,0,0,0,0,0,13,0,0,0 +10,0,0,0,0,0,13,0,0,0 +20,0,0,0,0,0,13,0,0,0 +16,0,0,0,0,0,13,0,0,0 +6,3.931826,0,0,6.527958,0,13.73189,0,0,0 +2,3.931826,0,0,6.527958,0,13.73189,0,0,0 +3,3.931826,0,0,6.527958,0,13.73189,0,0,0 +1,3.931826,0,0,6.527958,0,13.73189,0,0,0 +0,3.931826,0,0,6.527958,0,13.73189,0,0,0 +1,3.931826,0,0,6.527958,0,13.73189,0,0,0 +1,3.931826,0,6.028278,6.721426,0,13.73189,0,0,0 +0,3.931826,0,6.028278,6.721426,0,13.73189,0,0,0 +2,3.931826,0,6.028278,6.721426,0,13.73189,0,0,0 +0,3.931826,0,6.028278,6.721426,0,13.73189,0,0,0 +0,3.931826,0,6.028278,6.721426,0,13.73189,0,0,0 +0,3.931826,0,6.028278,6.721426,0,13.73189,0,0,0 +0,3.931826,0,6.028278,6.721426,0,13.73189,0,0,0 +1,3.931826,0,6.028278,6.721426,0,13.73189,0,0,0 +1,3.931826,0,6.028278,6.721426,0,13.73189,0,0,0 +0,3.931826,0,6.028278,6.721426,0,13.73189,0,0,0 +2,3.931826,0,5.81413,6.507277,0,13.73189,0,0,0 +0,3.931826,0,5.81413,6.507277,0,13.73189,0,0,0 +4,3.931826,0,5.81413,6.507277,0,13.73189,0,0,0 +1,3.931826,0,5.81413,6.507277,0,13.73189,0,0,0 +1,3.931826,0,5.81413,6.507277,0,13.73189,0,0,0 +4,3.931826,0,6.028278,6.721426,0,13.73189,1,0,0 +1,3.931826,0,6.028278,6.721426,0,13.73189,1,0,0 +1,3.931826,0,6.028278,6.721426,0,13.73189,1,0,0 +1,3.931826,0,6.028278,6.721426,0,13.73189,1,0,0 +1,3.931826,0,6.028278,6.721426,0,13.73189,1,0,0 +1,0,0,4.174387,0,0,13.73189,0,0,0 +2,0,0,4.174387,0,0,13.73189,0,0,0 +5,0,0,4.174387,0,0,13.73189,0,0,0 +8,0,0,4.174387,0,0,13.73189,1,0,0 +3,0,0,4.174387,0,0,13.73189,1,0,0 +4,0,0,4.174387,0,0,13.73189,1,0,0 +5,0,0,4.174387,0,0,13.73189,0,0,0 +11,0,0,4.174387,0,0,13.73189,0,0,0 +7,0,0,4.174387,0,0,13.73189,0,0,0 +1,0,0,4.174387,0,0,13.73189,0,0,0 +0,0,0,4.174387,0,0,13.73189,0,0,0 +2,0,0,4.174387,0,0,13.73189,0,0,0 +6,0,0,4.174387,0,0,13.73189,0,0,0 +5,0,0,4.174387,0,0,13.73189,0,0,0 +12,0,0,4.174387,0,0,13.73189,0,0,0 +3,0,0,4.094345,0,0,4.3,0,0,0 +1,0,0,4.094345,0,0,4.3,0,0,0 +1,0,0,4.094345,0,0,4.3,0,0,0 +0,0,0,4.094345,0,0,4.3,0,0,0 +5,0,0,4.094345,0,0,4.3,0,0,0 +0,0,0,4.094345,0,0,13.73189,0,0,0 +2,0,0,4.094345,0,0,13.73189,0,0,0 +3,0,0,4.094345,0,0,13.73189,0,0,0 +0,0,0,4.094345,0,0,13.73189,0,0,0 +0,0,0,4.094345,0,0,13.73189,0,0,0 +1,0,0,4.094345,0,0,8.7,0,0,0 +0,0,0,4.094345,0,0,8.7,0,0,0 +0,0,0,4.094345,0,0,8.7,0,0,0 +0,0,0,4.094345,0,0,8.7,0,0,0 +0,0,0,4.094345,0,0,8.7,0,0,0 +6,0,0,4.094345,0,1,13,0,0,0 +3,0,0,4.094345,0,1,13,0,0,0 +4,0,0,4.094345,0,1,13,0,0,0 +2,0,0,4.094345,0,1,13,0,0,0 +1,0,0,4.094345,0,1,13,0,0,0 +6,3.258096,0,6.907755,8.294049,0,13.73189,0,1,0 +6,3.258096,0,6.907755,8.294049,0,13.73189,0,1,0 +8,3.258096,0,6.907755,8.294049,0,13.73189,0,1,0 +6,3.258096,0,6.907755,8.294049,1,13.73189,1,0,0 +5,3.258096,0,6.907755,8.294049,1,13.73189,1,0,0 +3,3.258096,0,6.907755,8.294049,1,13.73189,1,0,0 +5,0,0,0,0,0,21.7,0,1,0 +5,0,0,0,0,0,21.7,0,1,0 +3,0,0,0,0,0,21.7,0,1,0 +2,0,0,0,0,0,47.8,0,1,0 +1,0,0,0,0,0,47.8,0,1,0 +4,0,0,0,0,0,47.8,0,1,0 +0,3.258096,0,6.907755,8.294049,0,13,1,0,0 +0,3.258096,0,6.907755,8.294049,0,13,1,0,0 +2,3.258096,0,6.907755,8.294049,0,13,1,0,0 +1,3.258096,0,6.907755,8.294049,0,13,1,0,0 +1,3.258096,0,6.907755,8.294049,0,13,1,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +3,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +3,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +2,3.258096,0,6.907755,8.294049,0,26.1,0,1,0 +3,3.258096,0,6.907755,8.294049,0,26.1,0,1,0 +2,3.258096,0,6.907755,8.294049,0,26.1,0,1,0 +3,3.258096,0,6.907755,8.294049,0,26.1,0,1,0 +4,3.258096,0,6.907755,8.294049,0,26.1,0,1,0 +34,3.258096,0,6.907755,8.294049,0,4.3,1,0,0 +24,3.258096,0,6.907755,8.294049,0,4.3,1,0,0 +28,3.258096,0,6.907755,8.294049,0,4.3,1,0,0 +22,3.258096,0,6.907755,8.294049,0,4.3,1,0,0 +24,3.258096,0,6.907755,8.294049,0,4.3,1,0,0 +1,0,1,6.109248,0,0,13.73189,0,0,0 +0,0,1,6.109248,0,0,13.73189,0,0,0 +0,0,1,6.109248,0,0,13.73189,0,0,0 +2,0,1,6.109248,0,0,13.73189,0,0,0 +1,0,1,6.109248,0,0,13.73189,0,0,0 +0,0,1,6.109248,0,0,13.73189,0,0,0 +2,0,1,6.109248,0,0,13.73189,0,0,0 +2,0,1,6.109248,0,0,13.73189,0,0,0 +2,0,1,6.109248,0,0,13.73189,0,0,0 +3,0,1,6.109248,0,0,13.73189,0,0,0 +0,0,1,6.109248,0,0,13.73189,0,0,0 +0,0,1,6.109248,0,0,13.73189,0,0,0 +0,0,1,6.109248,0,0,13.73189,0,0,0 +0,0,1,6.109248,0,0,13.73189,0,0,0 +8,0,1,6.109248,0,0,13.73189,0,0,0 +0,4.61512,1,5.135798,0,0,17.4,0,1,0 +3,4.61512,1,5.135798,0,0,17.4,0,1,0 +2,4.61512,1,5.135798,0,0,17.4,0,1,0 +0,4.61512,1,5.135798,0,0,17.4,0,1,0 +4,4.61512,1,5.135798,0,0,17.4,0,1,0 +0,3.258096,0,0,0,1,30.4,0,1,0 +0,3.258096,0,0,0,1,30.4,0,1,0 +0,3.258096,0,0,0,1,30.4,0,1,0 +0,0,1,0,0,0,13.73189,0,1,0 +2,0,1,0,0,0,13.73189,0,1,0 +4,0,1,0,0,0,13.73189,0,1,0 +4,0,1,0,0,0,13.73189,0,1,0 +5,0,1,0,0,0,13.73189,0,1,0 +0,0,1,0,0,1,13.73189,1,0,0 +0,0,1,0,0,1,13.73189,1,0,0 +1,0,1,0,0,1,13.73189,1,0,0 +1,0,1,0,0,1,13.73189,1,0,0 +1,0,1,0,0,1,13.73189,1,0,0 +1,0,1,0,0,0,13.73189,1,0,0 +1,0,1,0,0,0,13.73189,1,0,0 +3,0,1,0,0,0,13.73189,1,0,0 +0,0,1,0,0,0,13.73189,1,0,0 +3,0,1,0,0,0,13.73189,1,0,0 +2,0,1,0,0,0,13.73189,1,0,0 +1,0,1,0,0,0,13.73189,1,0,0 +3,0,1,0,0,0,13.73189,1,0,0 +2,0,1,0,0,0,13.73189,1,0,0 +2,0,1,0,0,0,13.73189,1,0,0 +2,3.258096,0,5.83773,7.224025,0,26.1,1,0,0 +0,3.258096,0,5.83773,7.224025,0,26.1,1,0,0 +0,3.258096,0,5.83773,7.224025,0,26.1,1,0,0 +2,3.258096,0,5.83773,7.224025,0,26.1,1,0,0 +26,3.258096,0,5.83773,7.224025,0,26.1,1,0,0 +0,3.258096,0,5.83773,7.224025,1,17.4,1,0,0 +0,4.61512,1,6.907755,0,0,13.73189,0,0,0 +1,4.61512,1,6.907755,0,0,13.73189,0,0,0 +0,4.61512,1,6.907755,0,0,13.73189,0,0,0 +7,4.61512,1,6.907755,0,0,13.73189,0,0,0 +6,4.61512,1,6.907755,0,0,13.73189,0,0,0 +8,4.61512,1,6.907755,0,0,13.73189,0,0,0 +1,4.61512,1,6.907755,0,0,13.73189,0,0,0 +3,4.61512,1,6.907755,0,0,13.73189,0,0,0 +1,4.61512,1,6.907755,0,0,13.73189,0,0,0 +2,4.61512,1,6.907755,0,0,13.73189,0,0,0 +6,4.61512,1,6.907755,0,0,13.73189,0,0,0 +0,4.61512,1,6.907755,0,0,13.73189,0,0,0 +2,0,0,0,0,0,4.3,0,0,0 +4,0,0,0,0,0,4.3,0,0,0 +10,0,0,0,0,0,4.3,0,0,0 +1,0,0,0,0,0,13.73189,0,0,0 +7,0,0,0,0,0,13.73189,0,0,0 +7,0,0,0,0,0,13.73189,0,0,0 +6,0,0,0,0,0,13,0,0,0 +4,0,0,0,0,0,13,0,0,0 +2,0,0,0,0,0,13,0,0,0 +4,0,0,0,0,0,26.1,0,0,0 +2,0,0,0,0,0,26.1,0,0,0 +5,0,0,0,0,0,26.1,0,0,0 +18,4.61512,1,6.907755,0,0,0,0,0,0 +21,4.61512,1,6.907755,0,0,0,0,0,0 +14,4.61512,1,6.907755,0,0,0,0,0,0 +10,4.61512,1,6.907755,0,0,0,0,0,0 +14,4.61512,1,6.907755,0,0,0,0,0,0 +11,4.61512,1,6.907755,0,0,17.4,1,0,0 +8,4.61512,1,6.907755,0,0,17.4,1,0,0 +16,4.61512,1,6.907755,0,0,17.4,1,0,0 +3,4.61512,1,6.907755,0,0,17.4,1,0,0 +4,4.61512,1,6.907755,0,0,17.4,1,0,0 +0,4.61512,1,5.924256,0,0,13,0,0,0 +3,4.61512,1,5.924256,0,0,13,0,0,0 +0,4.61512,1,5.924256,0,0,13,0,0,0 +1,4.61512,1,5.924256,0,0,13,0,0,0 +0,4.61512,1,5.924256,0,0,13,0,0,0 +6,0,0,5.673323,0,0,13.73189,1,0,0 +5,0,0,5.673323,0,0,13.73189,1,0,0 +14,0,0,5.673323,0,0,13.73189,1,0,0 +2,0,0,5.673323,0,0,13.73189,1,0,0 +5,0,0,5.673323,0,0,13.73189,1,0,0 +5,0,0,5.673323,0,0,13.73189,1,0,0 +5,0,0,5.673323,0,0,34.8,1,0,0 +11,0,0,5.673323,0,0,34.8,1,0,0 +11,0,0,5.673323,0,0,34.8,1,0,0 +6,0,0,5.673323,0,0,17.4,0,0,1 +11,0,0,5.673323,0,0,17.4,0,0,1 +11,0,0,5.673323,0,0,17.4,0,0,1 +3,0,0,5.673323,0,0,13.73189,1,0,0 +6,0,0,5.673323,0,0,13.73189,1,0,0 +2,0,0,5.673323,0,0,13.73189,1,0,0 +2,3.258096,0,6.907755,8.294049,0,0,0,0,0 +4,3.258096,0,6.907755,8.294049,0,0,0,0,0 +2,3.258096,0,6.907755,8.294049,0,0,0,0,0 +2,3.258096,0,6.907755,8.294049,0,0,0,0,0 +3,3.258096,0,6.907755,8.294049,0,0,0,0,0 +4,3.258096,0,6.907755,8.294049,0,0,0,0,0 +2,3.258096,0,6.907755,8.294049,0,17.4,1,0,0 +5,3.258096,0,6.907755,8.294049,0,17.4,1,0,0 +5,3.258096,0,6.907755,8.294049,0,17.4,1,0,0 +2,3.258096,0,6.907755,8.294049,0,21.7,1,0,0 +5,3.258096,0,6.907755,8.294049,0,21.7,1,0,0 +2,3.258096,0,6.907755,8.294049,0,21.7,1,0,0 +10,4.61512,1,6.907755,0,0,13.73189,1,0,0 +1,4.61512,1,6.907755,0,0,13.73189,1,0,0 +13,4.61512,1,6.907755,0,0,13.73189,1,0,0 +5,4.61512,1,6.907755,0,0,13.73189,1,0,0 +7,4.61512,1,6.907755,0,0,13.73189,1,0,0 +4,4.61512,1,6.907755,0,0,13.73189,1,0,0 +8,4.61512,1,6.907755,0,0,17.4,1,0,0 +3,4.61512,1,6.907755,0,0,17.4,1,0,0 +5,4.61512,1,6.907755,0,0,17.4,1,0,0 +15,4.61512,1,6.907755,0,0,21.7,1,0,0 +4,4.61512,1,6.907755,0,0,21.7,1,0,0 +9,4.61512,1,6.907755,0,0,21.7,1,0,0 +22,4.61512,1,6.907755,0,0,13.73189,1,0,0 +23,4.61512,1,6.907755,0,0,13.73189,1,0,0 +13,4.61512,1,6.907755,0,0,13.73189,1,0,0 +0,4.61512,1,6.436151,0,0,13.73189,0,0,0 +0,4.61512,1,6.436151,0,0,13.73189,0,0,0 +1,4.61512,1,6.436151,0,0,13.73189,0,0,0 +1,4.61512,1,6.436151,0,0,13.73189,0,0,0 +0,4.61512,1,6.436151,0,0,13.73189,0,0,0 +0,4.61512,1,6.436151,0,0,13.73189,0,0,0 +0,4.61512,1,6.436151,0,0,13.73189,0,0,0 +0,4.61512,1,6.436151,0,0,13.73189,0,0,0 +0,4.61512,1,6.436151,0,0,13.73189,0,0,0 +0,4.61512,1,6.436151,0,0,13.73189,0,0,0 +0,4.61512,1,6.436151,0,0,13.73189,1,0,0 +0,4.61512,1,6.436151,0,0,13.73189,1,0,0 +0,4.61512,1,6.436151,0,0,13.73189,1,0,0 +0,4.61512,1,6.436151,0,0,13.73189,1,0,0 +0,4.61512,1,6.436151,0,0,13.73189,1,0,0 +0,4.61512,1,6.436151,0,0,13.73189,0,0,0 +1,4.61512,1,6.436151,0,0,13.73189,0,0,0 +0,4.61512,1,6.436151,0,0,13.73189,0,0,0 +0,4.61512,1,6.436151,0,0,13.73189,0,0,0 +0,4.61512,1,6.436151,0,0,13.73189,0,0,0 +1,4.61512,1,6.436151,0,0,13.73189,1,0,0 +0,4.61512,1,6.436151,0,0,13.73189,1,0,0 +2,4.61512,1,6.436151,0,0,13.73189,1,0,0 +0,4.61512,1,6.436151,0,0,13.73189,1,0,0 +0,4.61512,1,6.436151,0,0,13.73189,1,0,0 +1,4.61512,1,6.436151,0,0,13.73189,0,0,0 +0,4.61512,1,6.436151,0,0,13.73189,0,0,0 +1,4.61512,1,6.436151,0,0,13.73189,0,0,0 +3,4.61512,1,6.436151,0,0,13.73189,0,0,0 +0,4.61512,1,6.436151,0,0,13.73189,0,0,0 +2,4.61512,1,5.998937,0,0,21.7,1,0,0 +0,4.61512,1,5.998937,0,0,21.7,1,0,0 +0,4.61512,1,5.998937,0,0,21.7,1,0,0 +3,4.61512,1,5.998937,0,0,21.7,1,0,0 +2,4.61512,1,5.998937,0,0,21.7,1,0,0 +6,0,0,0,0,0,13.73189,1,0,0 +6,0,0,0,0,0,13.73189,1,0,0 +6,0,0,0,0,0,13.73189,1,0,0 +8,0,0,0,0,0,13.73189,1,0,0 +6,0,0,0,0,0,13.73189,1,0,0 +7,0,0,0,0,1,21.7,1,0,0 +7,0,0,0,0,1,21.7,1,0,0 +6,0,0,0,0,1,21.7,1,0,0 +9,0,0,0,0,1,21.7,1,0,0 +6,0,0,0,0,1,21.7,1,0,0 +3,0,0,0,0,0,13.73189,1,0,0 +5,0,0,0,0,0,13.73189,1,0,0 +4,0,0,0,0,0,13.73189,1,0,0 +3,0,0,0,0,0,13.73189,1,0,0 +1,0,0,0,0,0,13.73189,1,0,0 +1,0,0,0,0,0,8.7,1,0,0 +6,0,0,0,0,0,8.7,1,0,0 +0,0,0,0,0,0,8.7,1,0,0 +0,0,0,0,0,0,8.7,1,0,0 +1,0,0,0,0,0,8.7,1,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +3,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +4,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +6,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +5,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +8,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +9,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +10,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +5,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +8,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +8,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +0,0,1,0,0,0,13.73189,1,0,0 +0,0,1,0,0,0,13.73189,1,0,0 +1,0,1,0,0,0,13.73189,1,0,0 +1,0,1,0,0,0,13.73189,1,0,0 +0,0,1,0,0,0,13.73189,1,0,0 +0,0,1,0,0,0,17.4,1,0,0 +0,0,1,0,0,0,17.4,1,0,0 +0,0,1,0,0,0,17.4,1,0,0 +0,0,1,0,0,0,17.4,1,0,0 +0,0,1,0,0,0,17.4,1,0,0 +0,3.258096,0,6.327937,7.714231,0,4.3,1,0,0 +0,3.258096,0,6.327937,7.714231,0,4.3,1,0,0 +0,3.258096,0,6.327937,7.714231,0,4.3,1,0,0 +2,3.258096,0,6.327937,7.714231,0,4.3,1,0,0 +2,3.258096,0,6.327937,7.714231,0,4.3,1,0,0 +4,3.258096,0,6.327937,7.714231,0,13.73189,1,0,0 +3,3.258096,0,6.327937,7.714231,0,13.73189,1,0,0 +2,3.258096,0,6.327937,7.714231,0,13.73189,1,0,0 +1,3.258096,0,6.327937,7.714231,0,13.73189,1,0,0 +6,3.258096,0,6.327937,7.714231,0,13.73189,1,0,0 +1,3.258096,0,6.327937,7.714231,0,8.7,1,0,0 +2,3.258096,0,6.327937,7.714231,0,8.7,1,0,0 +1,3.258096,0,6.327937,7.714231,0,8.7,1,0,0 +1,3.258096,0,6.327937,7.714231,0,8.7,1,0,0 +1,3.258096,0,6.327937,7.714231,0,8.7,1,0,0 +2,3.258096,0,6.327937,7.714231,0,13.73189,1,0,0 +6,3.258096,0,6.327937,7.714231,0,13.73189,1,0,0 +4,3.258096,0,6.327937,7.714231,0,13.73189,1,0,0 +1,3.258096,0,6.327937,7.714231,0,13.73189,1,0,0 +2,3.258096,0,6.327937,7.714231,0,13.73189,1,0,0 +6,0,1,5.986452,0,0,30.4,1,0,0 +13,0,1,5.986452,0,0,30.4,1,0,0 +19,0,1,5.986452,0,0,30.4,1,0,0 +14,0,1,5.986452,0,1,26.1,1,0,0 +30,0,1,5.986452,0,1,26.1,1,0,0 +38,0,1,5.986452,0,1,26.1,1,0,0 +4,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +4,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +4,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +10,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +4,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +9,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +11,3.258096,0,6.620073,8.006368,0,13.73189,1,0,0 +18,3.258096,0,6.620073,8.006368,0,13.73189,1,0,0 +2,3.258096,0,6.620073,8.006368,0,13.73189,1,0,0 +2,3.258096,0,6.620073,8.006368,0,13.73189,1,0,0 +0,3.258096,0,6.620073,8.006368,0,13.73189,1,0,0 +4,4.61512,1,6.448889,0,0,8.7,0,0,0 +1,4.61512,1,6.448889,0,0,8.7,0,0,0 +2,4.61512,1,6.448889,0,0,8.7,0,0,0 +4,4.61512,1,6.448889,0,0,8.7,0,0,0 +0,4.61512,1,6.448889,0,0,8.7,0,0,0 +1,4.61512,1,6.448889,0,0,8.7,0,0,0 +1,4.61512,1,6.448889,0,0,17.4,0,0,0 +1,4.61512,1,6.448889,0,0,17.4,0,0,0 +0,4.61512,1,6.448889,0,0,17.4,0,0,0 +0,0,1,4.356709,0,0,13.73189,0,0,0 +4,0,1,4.356709,0,0,13.73189,0,0,0 +9,0,1,4.356709,0,0,13.73189,0,0,0 +2,0,1,4.356709,0,0,13.73189,0,0,0 +0,0,1,4.356709,0,0,13.73189,0,0,0 +3,3.258096,0,6.907755,8.294049,0,21.7,0,0,0 +3,3.258096,0,6.907755,8.294049,0,21.7,0,0,0 +7,3.258096,0,6.907755,8.294049,0,21.7,0,0,0 +2,3.258096,0,6.907755,8.294049,0,21.7,0,0,0 +0,3.258096,0,6.907755,8.294049,0,21.7,0,0,0 +15,3.258096,0,6.907755,8.294049,0,13,0,0,0 +5,3.258096,0,6.907755,8.294049,0,13,0,0,0 +16,3.258096,0,6.907755,8.294049,0,13,0,0,0 +8,3.258096,0,6.907755,8.294049,0,13,0,0,0 +6,3.258096,0,6.907755,8.294049,0,13,0,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +5,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +3,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +5,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +3,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +0,3.258096,0,6.907755,8.294049,0,0,0,0,0 +0,3.258096,0,6.907755,8.294049,0,0,0,0,0 +0,3.258096,0,6.907755,8.294049,0,0,0,0,0 +2,3.258096,0,6.907755,8.294049,0,21.7,0,0,0 +1,3.258096,0,6.907755,8.294049,0,21.7,0,0,0 +0,3.258096,0,6.907755,8.294049,0,21.7,0,0,0 +4,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +5,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +3,3.258096,0,6.907755,8.294049,0,8.7,0,0,0 +2,3.258096,0,6.907755,8.294049,0,8.7,0,0,0 +2,3.258096,0,6.907755,8.294049,0,8.7,0,0,0 +3,4.61512,1,6.907755,0,0,21.7,1,0,0 +3,4.61512,1,6.907755,0,0,21.7,1,0,0 +5,4.61512,1,6.907755,0,0,21.7,1,0,0 +11,4.61512,1,6.907755,0,0,21.7,1,0,0 +2,4.61512,1,6.907755,0,0,21.7,1,0,0 +7,4.61512,1,6.907755,0,0,13,1,0,0 +6,4.61512,1,6.907755,0,0,13,1,0,0 +2,4.61512,1,6.907755,0,0,13,1,0,0 +2,4.61512,1,6.907755,0,0,13,1,0,0 +0,4.61512,1,6.907755,0,0,13,1,0,0 +5,4.61512,1,6.799056,0,0,21.7,0,1,0 +8,4.61512,1,6.799056,0,0,21.7,0,1,0 +6,4.61512,1,6.799056,0,0,21.7,0,1,0 +9,4.61512,1,6.799056,0,0,21.7,0,1,0 +4,4.61512,1,6.799056,0,0,21.7,0,1,0 +1,4.61512,1,6.799056,0,1,30.4,0,1,0 +0,4.61512,1,6.799056,0,1,30.4,0,1,0 +0,4.61512,1,6.799056,0,1,30.4,0,1,0 +0,4.61512,1,6.799056,0,1,30.4,0,1,0 +0,4.61512,1,6.799056,0,1,30.4,0,1,0 +1,4.61512,1,6.519147,0,0,13,1,0,0 +1,4.61512,1,6.519147,0,0,13,1,0,0 +0,4.61512,1,6.519147,0,0,13,1,0,0 +1,4.61512,1,6.519147,0,0,13,1,0,0 +0,4.61512,1,6.519147,0,0,13,1,0,0 +0,0,0,5.509388,0,0,21.7,0,0,0 +1,0,0,5.509388,0,0,21.7,0,0,0 +2,0,0,5.509388,0,0,21.7,0,0,0 +1,0,0,5.509388,0,0,21.7,0,0,0 +1,0,0,5.509388,0,0,21.7,0,0,0 +2,3.931826,0,6.907755,7.600903,0,8.7,0,0,0 +1,3.931826,0,6.907755,7.600903,0,8.7,0,0,0 +9,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +0,0,1,5.703783,0,0,30.4,1,0,0 +2,0,1,5.703783,0,0,30.4,1,0,0 +13,0,1,5.703783,0,1,26.1,0,1,0 +12,0,1,5.703783,0,1,26.1,0,1,0 +7,0,0,0,0,0,17.4,1,0,0 +11,0,0,0,0,0,17.4,1,0,0 +11,0,0,0,0,0,17.4,1,0,0 +2,0,0,0,0,0,30.4,1,0,0 +2,0,0,0,0,0,30.4,1,0,0 +2,0,0,0,0,0,30.4,1,0,0 +1,0,0,0,0,0,4.3,0,0,0 +0,0,0,0,0,0,4.3,0,0,0 +4,0,0,0,0,0,4.3,0,0,0 +0,3.258096,0,5.988961,7.375256,0,4.3,0,0,0 +0,3.258096,0,5.988961,7.375256,0,4.3,0,0,0 +2,3.258096,0,5.988961,7.375256,0,4.3,0,0,0 +1,3.258096,0,5.988961,7.375256,0,4.3,0,0,0 +1,3.258096,0,5.988961,7.375256,0,4.3,0,0,0 +0,4.61512,1,6.302619,0,0,13.73189,0,1,0 +0,4.61512,1,6.302619,0,0,13.73189,0,1,0 +0,4.61512,1,6.302619,0,0,13.73189,0,1,0 +6,4.61512,1,6.907755,0,0,13.73189,0,0,0 +4,4.61512,1,6.907755,0,0,13.73189,0,0,0 +0,4.61512,1,6.907755,0,0,13.73189,0,0,0 +1,4.61512,1,6.907755,0,0,13.73189,0,0,0 +2,4.61512,1,6.907755,0,0,13.73189,0,0,0 +1,4.61512,1,6.907755,0,0,13.73189,0,0,0 +5,4.61512,1,6.907755,0,0,13.73189,0,0,0 +4,4.61512,1,6.907755,0,0,13.73189,0,0,0 +5,4.61512,1,6.907755,0,0,13.73189,0,0,0 +1,4.61512,1,6.907755,0,0,13.73189,0,0,0 +6,4.61512,1,6.907755,0,0,13.73189,1,0,0 +0,4.61512,1,6.907755,0,0,13.73189,1,0,0 +8,4.61512,1,6.907755,0,0,13.73189,0,0,0 +1,4.61512,1,6.907755,0,0,13.73189,0,0,0 +2,4.61512,1,6.907755,0,0,13.73189,0,0,0 +4,4.61512,1,6.907755,0,0,13.73189,0,0,0 +0,4.61512,1,6.907755,0,0,13.73189,0,0,0 +5,4.61512,1,6.907755,0,0,13.73189,0,0,0 +13,4.61512,1,6.907755,0,0,13.73189,0,0,0 +2,4.61512,1,6.907755,0,0,13.73189,0,0,0 +1,4.61512,1,6.907755,0,0,13.73189,0,0,0 +2,4.61512,1,6.907755,0,0,13.73189,0,0,0 +1,0,1,5.703783,0,0,13.73189,0,0,0 +1,0,1,5.703783,0,0,13.73189,1,0,0 +0,0,1,5.703783,0,0,13.73189,1,0,0 +0,0,1,5.703783,0,0,13.73189,1,0,0 +4,0,0,0,0,0,13.73189,1,0,0 +8,0,0,0,0,0,13.73189,1,0,0 +4,0,0,0,0,0,13.73189,1,0,0 +1,0,0,0,0,0,13.73189,1,0,0 +2,0,0,0,0,0,13.73189,1,0,0 +5,0,0,0,0,0,13.73189,1,0,0 +2,0,0,0,0,0,13.73189,1,0,0 +6,0,0,0,0,0,13.73189,1,0,0 +2,0,0,0,0,0,13.73189,1,0,0 +7,0,0,0,0,0,13.73189,1,0,0 +5,0,0,0,0,0,21.7,1,0,0 +5,0,0,0,0,0,21.7,1,0,0 +7,0,0,0,0,0,21.7,1,0,0 +5,0,0,0,0,0,21.7,1,0,0 +9,0,0,0,0,0,21.7,1,0,0 +2,0,0,0,0,0,17.4,1,0,0 +3,0,0,0,0,0,17.4,1,0,0 +3,0,0,0,0,0,17.4,1,0,0 +1,0,0,0,0,0,17.4,1,0,0 +3,0,0,0,0,0,17.4,1,0,0 +3,3.931826,0,4.49981,0,0,4.3,1,0,0 +6,3.931826,0,4.49981,0,0,4.3,1,0,0 +0,3.931826,0,4.49981,0,0,4.3,1,0,0 +13,0,0,0,0,0,26.1,0,1,0 +1,0,0,0,0,0,26.1,0,1,0 +2,0,0,0,0,0,26.1,0,1,0 +9,0,0,0,0,1,43.5,0,1,0 +7,0,0,0,0,1,43.5,0,1,0 +13,0,0,0,0,1,43.5,0,1,0 +4,3.258096,0,6.907755,8.294049,0,13.73189,0,1,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,0,1,0 +3,3.258096,0,6.907755,8.294049,0,13.73189,0,1,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,0,1,0 +11,3.258096,0,6.907755,8.294049,0,13.73189,0,1,0 +4,4.61512,1,6.802395,0,0,0,0,0,0 +2,4.61512,1,6.802395,0,0,0,0,0,0 +5,4.61512,1,6.802395,0,0,0,0,0,0 +5,4.61512,1,6.802395,0,0,8.7,0,0,0 +0,4.61512,1,6.802395,0,0,8.7,0,0,0 +1,4.61512,1,6.802395,0,0,8.7,0,0,0 +9,3.258096,0,6.907755,8.294049,0,8.7,0,0,0 +8,3.258096,0,6.907755,8.294049,0,8.7,0,0,0 +4,3.258096,0,6.907755,8.294049,0,8.7,0,0,0 +3,3.258096,0,6.907755,8.294049,0,8.7,0,0,0 +1,3.258096,0,6.907755,8.294049,0,8.7,0,0,0 +5,3.258096,0,6.907755,8.294049,0,8.7,1,0,0 +1,3.258096,0,6.907755,8.294049,0,8.7,1,0,0 +4,3.258096,0,6.907755,8.294049,0,8.7,1,0,0 +5,3.258096,0,6.907755,8.294049,0,8.7,1,0,0 +0,3.258096,0,6.771935,8.15823,0,13.73189,0,0,0 +0,3.258096,0,6.771935,8.15823,0,13.73189,0,0,0 +0,3.258096,0,6.771935,8.15823,0,13.73189,0,0,0 +1,3.258096,0,6.771935,8.15823,0,13.73189,0,0,0 +2,3.258096,0,6.771935,8.15823,0,13.73189,0,0,0 +0,3.258096,0,6.771935,8.15823,0,13.73189,1,0,0 +0,3.258096,0,6.771935,8.15823,0,13.73189,1,0,0 +0,3.258096,0,6.771935,8.15823,0,13.73189,1,0,0 +0,3.258096,0,6.771935,8.15823,0,13.73189,1,0,0 +0,3.258096,0,6.771935,8.15823,0,13.73189,1,0,0 +2,0,0,0,0,0,13.73189,0,0,0 +4,0,0,0,0,0,13.73189,0,0,0 +4,0,0,0,0,0,13.73189,0,0,0 +31,0,0,0,0,0,13.73189,1,0,0 +17,0,0,0,0,0,13.73189,1,0,0 +9,0,0,0,0,0,13.73189,1,0,0 +2,4.61512,1,6.907755,0,0,13.73189,0,0,0 +3,4.61512,1,6.907755,0,0,13.73189,0,0,0 +1,4.61512,1,6.907755,0,0,13.73189,0,0,0 +1,4.61512,1,6.907755,0,0,13.73189,0,0,0 +0,4.61512,1,6.907755,0,0,13.73189,0,0,0 +0,4.61512,1,6.907755,0,0,8.7,0,0,0 +0,4.61512,1,6.907755,0,0,8.7,0,0,0 +0,4.61512,1,6.907755,0,0,8.7,0,0,0 +0,4.61512,1,6.907755,0,0,8.7,0,0,0 +0,4.61512,1,6.907755,0,0,8.7,0,0,0 +0,4.61512,1,6.907755,0,0,4.3,0,0,0 +1,4.61512,1,6.907755,0,0,4.3,0,0,0 +1,4.61512,1,6.907755,0,0,4.3,0,0,0 +1,4.61512,1,6.907755,0,0,4.3,0,0,0 +2,4.61512,1,6.907755,0,0,4.3,0,0,0 +0,3.258096,0,6.635947,8.022241,0,13.73189,0,0,0 +1,3.258096,0,6.635947,8.022241,0,13.73189,0,0,0 +6,3.258096,0,6.635947,8.022241,0,13.73189,0,0,0 +8,3.258096,0,6.635947,8.022241,1,13.73189,0,0,0 +6,3.258096,0,6.635947,8.022241,1,13.73189,0,0,0 +8,3.258096,0,6.635947,8.022241,1,13.73189,0,0,0 +3,3.258096,0,6.635947,8.022241,0,13.73189,0,0,0 +2,3.258096,0,6.635947,8.022241,0,13.73189,0,0,0 +0,3.258096,0,6.635947,8.022241,0,13.73189,0,0,0 +3,3.258096,0,6.635947,8.022241,1,13.73189,0,0,0 +2,3.258096,0,6.635947,8.022241,1,13.73189,0,0,0 +0,3.258096,0,6.635947,8.022241,1,13.73189,0,0,0 +3,0,0,0,0,0,13.73189,0,0,0 +5,0,0,0,0,0,13.73189,0,0,0 +23,0,0,0,0,0,13.73189,0,0,0 +4,0,0,0,0,0,13.73189,0,0,0 +3,0,0,0,0,0,13.73189,0,0,0 +2,0,0,0,0,0,13.73189,0,0,0 +1,0,0,0,0,0,13.73189,0,0,0 +1,0,0,0,0,0,13.73189,0,0,0 +2,0,0,0,0,0,13.73189,0,0,0 +5,0,0,0,0,0,13.73189,0,0,0 +1,0,0,0,0,0,13.73189,0,0,0 +4,0,0,0,0,0,13.73189,0,0,0 +11,0,0,5.552959,0,0,13.73189,1,0,0 +3,0,0,5.552959,0,0,13.73189,1,0,0 +6,0,0,5.552959,0,0,13.73189,1,0,0 +6,0,0,5.552959,0,0,13.73189,1,0,0 +2,0,0,5.552959,0,0,13.73189,1,0,0 +0,0,0,5.552959,0,0,13.73189,1,0,0 +1,0,0,5.552959,0,0,13.73189,1,0,0 +5,0,0,5.552959,0,0,13.73189,1,0,0 +6,0,0,5.552959,0,0,13.73189,1,0,0 +0,0,0,5.552959,0,0,13.73189,1,0,0 +1,0,0,5.552959,0,0,13.73189,1,0,0 +1,0,0,5.552959,0,0,13.73189,1,0,0 +2,0,0,5.552959,0,0,13.73189,1,0,0 +11,0,0,5.552959,0,0,13.73189,1,0,0 +5,0,0,5.552959,0,0,13.73189,1,0,0 +4,4.61512,1,6.907755,0,0,13.73189,1,0,0 +2,4.61512,1,6.907755,0,0,13.73189,1,0,0 +3,4.61512,1,6.907755,0,0,13.73189,1,0,0 +3,4.61512,1,6.907755,0,0,13.73189,1,0,0 +2,4.61512,1,6.907755,0,0,13.73189,1,0,0 +3,4.61512,1,6.907755,0,0,13.73189,0,0,0 +5,4.61512,1,6.907755,0,0,13.73189,0,0,0 +2,4.61512,1,6.907755,0,0,13.73189,0,0,0 +1,4.61512,1,6.907755,0,0,13.73189,0,0,0 +1,4.61512,1,6.907755,0,0,13.73189,0,0,0 +2,4.61512,1,6.907755,0,0,13.73189,0,0,0 +2,4.61512,1,6.907755,0,0,13.73189,0,0,0 +2,4.61512,1,6.907755,0,0,13.73189,0,0,0 +0,4.61512,1,6.907755,0,.12982,13.73189,0,0,0 +0,4.61512,1,6.907755,0,.12982,13.73189,0,0,0 +0,4.61512,1,6.907755,0,.12982,13.73189,0,0,0 +2,3.258096,0,6.55108,7.937375,0,13.73189,0,0,0 +3,3.258096,0,6.55108,7.937375,0,13.73189,0,0,0 +3,3.258096,0,6.55108,7.937375,0,13.73189,0,0,0 +2,3.258096,0,6.55108,7.937375,0,13.73189,0,0,0 +4,3.258096,0,6.55108,7.937375,0,13.73189,0,0,0 +0,4.61512,1,5.988961,0,0,13.73189,0,0,0 +6,4.61512,1,5.988961,0,0,13.73189,0,0,0 +6,4.61512,1,5.988961,0,0,13.73189,0,0,0 +3,4.61512,1,5.988961,0,0,21.7,0,0,0 +1,4.61512,1,5.988961,0,0,21.7,0,0,0 +2,4.61512,1,5.988961,0,0,21.7,0,0,0 +2,4.61512,1,5.988961,0,0,17.4,1,0,0 +2,4.61512,1,5.988961,0,0,17.4,1,0,0 +3,4.61512,1,5.988961,0,0,17.4,1,0,0 +8,4.61512,1,5.988961,0,0,13.73189,1,0,0 +3,4.61512,1,5.988961,0,0,13.73189,1,0,0 +20,4.61512,1,5.988961,0,0,13.73189,1,0,0 +7,4.61512,1,5.988961,0,0,8.7,0,0,0 +1,4.61512,1,5.988961,0,0,8.7,0,0,0 +5,4.61512,1,5.988961,0,0,8.7,0,0,0 +15,3.931826,0,5.298317,5.991465,0,8.7,1,0,0 +2,3.931826,0,5.298317,5.991465,0,8.7,1,0,0 +1,3.931826,0,5.298317,5.991465,0,8.7,1,0,0 +4,3.931826,0,5.298317,5.991465,0,8.7,1,0,0 +2,3.931826,0,5.298317,5.991465,0,8.7,1,0,0 +2,3.931826,0,4.744932,5.438079,0,8.7,1,0,0 +0,3.931826,0,4.744932,5.438079,0,8.7,1,0,0 +0,3.931826,0,4.744932,5.438079,0,8.7,1,0,0 +2,3.931826,0,4.744932,5.438079,0,8.7,1,0,0 +5,3.931826,0,4.744932,5.438079,0,8.7,1,0,0 +0,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +0,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +0,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +0,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +0,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +2,0,0,5.673323,0,0,13.73189,0,0,0 +1,0,0,5.673323,0,0,13.73189,0,0,0 +1,0,0,5.673323,0,0,13.73189,0,0,0 +3,0,0,5.673323,0,0,13.73189,0,0,0 +1,0,0,5.673323,0,0,13.73189,0,0,0 +6,0,0,5.673323,0,0,17.4,1,0,0 +3,0,0,5.673323,0,0,17.4,1,0,0 +7,0,0,5.673323,0,0,17.4,1,0,0 +8,0,0,5.673323,0,0,17.4,1,0,0 +2,0,0,5.673323,0,0,17.4,1,0,0 +1,0,0,5.673323,0,0,13.73189,0,0,0 +0,0,0,5.673323,0,0,13.73189,0,0,0 +3,0,0,5.673323,0,0,13.73189,0,0,0 +6,0,0,5.673323,0,0,13.73189,0,0,0 +1,0,0,5.673323,0,0,13.73189,0,0,0 +2,0,0,5.673323,0,0,8.7,0,0,0 +2,0,0,5.673323,0,0,8.7,0,0,0 +5,0,0,5.673323,0,0,8.7,0,0,0 +3,0,0,5.673323,0,0,8.7,0,0,0 +2,0,0,5.673323,0,0,8.7,0,0,0 +1,4.61512,1,6.885509,0,0,13.73189,0,0,0 +3,4.61512,1,6.885509,0,0,13.73189,0,0,0 +1,4.61512,1,6.885509,0,0,13.73189,0,0,0 +2,4.61512,1,6.885509,0,0,13.73189,0,0,0 +1,4.61512,1,6.885509,0,0,13.73189,0,0,0 +2,4.61512,1,6.885509,0,0,13.73189,0,0,0 +0,4.61512,1,6.885509,0,0,13.73189,0,0,0 +3,4.61512,1,6.885509,0,0,13.73189,0,0,0 +0,4.61512,1,6.885509,0,0,13.73189,0,0,0 +22,4.61512,1,6.885509,0,0,13.73189,1,0,0 +19,4.61512,1,6.885509,0,0,13.73189,1,0,0 +14,4.61512,1,6.885509,0,0,13.73189,1,0,0 +0,4.61512,1,0,0,0,0,1,0,0 +0,4.61512,1,0,0,0,0,1,0,0 +1,4.61512,1,0,0,0,0,1,0,0 +0,4.61512,1,0,0,0,0,1,0,0 +0,4.61512,1,0,0,0,0,1,0,0 +1,4.61512,1,0,0,0,13.73189,1,0,0 +0,4.61512,1,0,0,0,13.73189,1,0,0 +0,4.61512,1,0,0,0,13.73189,1,0,0 +0,4.61512,1,0,0,0,13.73189,1,0,0 +0,4.61512,1,0,0,0,13.73189,1,0,0 +2,4.61512,1,0,0,0,21.7,1,0,0 +0,4.61512,1,0,0,0,21.7,1,0,0 +0,4.61512,1,0,0,0,21.7,1,0,0 +0,4.61512,1,0,0,0,21.7,1,0,0 +1,4.61512,1,0,0,0,21.7,1,0,0 +0,4.61512,1,0,0,0,0,1,0,0 +0,4.61512,1,0,0,0,0,1,0,0 +0,4.61512,1,0,0,0,0,1,0,0 +0,4.61512,1,0,0,0,0,1,0,0 +0,4.61512,1,0,0,0,0,1,0,0 +1,4.61512,1,0,0,0,13.73189,1,0,0 +0,4.61512,1,0,0,0,13.73189,1,0,0 +0,4.61512,1,0,0,0,13.73189,1,0,0 +0,4.61512,1,0,0,0,13.73189,1,0,0 +0,4.61512,1,0,0,0,13.73189,1,0,0 +5,4.61512,1,0,0,0,21.7,1,0,0 +0,4.61512,1,0,0,0,21.7,1,0,0 +0,4.61512,1,0,0,0,21.7,1,0,0 +0,4.61512,1,0,0,0,21.7,1,0,0 +0,4.61512,1,0,0,0,21.7,1,0,0 +1,4.61512,1,0,0,0,13.73189,1,0,0 +0,4.61512,1,0,0,0,13.73189,1,0,0 +0,4.61512,1,0,0,0,13.73189,1,0,0 +0,4.61512,1,0,0,0,13.73189,1,0,0 +0,4.61512,1,0,0,0,13.73189,1,0,0 +3,0,0,5.105946,0,0,13.73189,0,0,0 +4,0,0,5.105946,0,0,13.73189,0,0,0 +1,0,0,5.105946,0,0,13.73189,0,0,0 +3,0,0,5.105946,0,0,13.73189,0,0,0 +9,0,0,5.105946,0,0,13.73189,0,0,0 +4,0,0,5.105946,0,0,13.73189,1,0,0 +11,0,0,5.105946,0,0,13.73189,1,0,0 +7,0,0,5.105946,0,0,13.73189,1,0,0 +6,0,0,5.105946,0,0,13.73189,1,0,0 +4,0,0,5.105946,0,0,13.73189,1,0,0 +2,0,0,5.105946,0,0,13.73189,0,0,0 +0,0,0,5.105946,0,0,13.73189,0,0,0 +4,0,0,5.105946,0,0,13.73189,0,0,0 +7,0,0,5.105946,0,0,13.73189,0,0,0 +11,0,0,5.105946,0,0,13.73189,0,0,0 +4,0,0,5.105946,0,0,13.73189,0,0,0 +5,0,0,5.105946,0,0,13.73189,0,0,0 +7,0,0,5.105946,0,0,13.73189,0,0,0 +4,0,0,5.105946,0,0,13.73189,0,0,0 +5,0,0,5.105946,0,0,13.73189,0,0,0 +0,0,0,5.105946,0,0,13.73189,0,0,0 +8,0,0,5.105946,0,0,13.73189,0,0,0 +4,0,0,5.105946,0,0,13.73189,0,0,0 +1,0,0,5.105946,0,0,13.73189,0,0,0 +4,0,0,5.105946,0,0,13.73189,0,0,0 +1,4.61512,1,5.351858,0,1,13.73189,0,0,1 +11,4.61512,1,5.351858,0,1,13.73189,0,0,1 +1,4.61512,1,5.351858,0,1,13.73189,0,0,1 +0,4.61512,1,4.317488,0,0,13.73189,1,0,0 +0,4.61512,1,4.317488,0,0,13.73189,1,0,0 +2,4.61512,1,4.317488,0,0,13.73189,1,0,0 +0,3.258096,0,5.129899,6.516193,0,17.4,1,0,0 +1,3.258096,0,5.129899,6.516193,0,17.4,1,0,0 +0,3.258096,0,5.129899,6.516193,0,17.4,1,0,0 +0,3.258096,0,5.129899,6.516193,0,13.73189,1,0,0 +0,3.258096,0,5.129899,6.516193,0,13.73189,1,0,0 +0,3.258096,0,5.129899,6.516193,0,13.73189,1,0,0 +0,4.61512,1,4.919981,0,.0327869,13.73189,0,0,0 +0,4.61512,1,4.919981,0,.12982,13.73189,1,0,0 +0,3.931826,0,5.187386,5.880533,.12982,13.73189,1,0,0 +0,3.931826,0,5.187386,5.880533,.12982,13.73189,1,0,0 +0,3.931826,0,5.187386,5.880533,.12982,13.73189,1,0,0 +1,3.931826,0,5.187386,5.880533,0,8.7,1,0,0 +0,3.931826,0,5.187386,5.880533,0,8.7,1,0,0 +0,3.931826,0,5.187386,5.880533,0,8.7,1,0,0 +0,0,0,0,0,0,13.73189,0,1,0 +0,0,0,0,0,0,13.73189,0,1,0 +0,0,0,0,0,0,13.73189,0,0,0 +0,0,0,0,0,0,13.73189,0,0,0 +5,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +3,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +6,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +6,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +7,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +5,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +4,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +3,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +5,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +4,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +8,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +6,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +3,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +8,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +11,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +12,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +9,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +8,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +2,3.258096,0,0,0,1,13.73189,0,1,0 +2,3.258096,0,0,0,1,13.73189,0,1,0 +4,3.258096,0,0,0,1,13.73189,0,1,0 +4,3.258096,0,0,0,1,13.73189,0,1,0 +7,3.258096,0,0,0,1,13.73189,0,1,0 +20,3.258096,0,5.556828,6.590301,1,13.73189,0,1,0 +2,4.61512,1,4.844187,0,0,13.73189,1,0,0 +0,4.61512,1,4.844187,0,0,13.73189,1,0,0 +0,4.61512,1,6.476973,0,0,8.7,0,0,0 +4,4.61512,1,6.476973,0,0,8.7,0,0,0 +1,4.61512,1,6.476973,0,0,8.7,0,0,0 +2,4.61512,1,6.476973,0,0,8.7,0,0,0 +3,4.61512,1,6.476973,0,0,8.7,0,0,0 +8,4.61512,1,6.476973,0,0,8.7,0,0,0 +5,4.61512,1,6.476973,0,0,8.7,0,0,0 +4,4.61512,1,6.476973,0,0,8.7,0,0,0 +0,4.61512,1,6.476973,0,0,8.7,0,0,0 +2,4.61512,1,6.476973,0,0,8.7,0,0,0 +3,4.61512,1,6.476973,0,0,13.73189,0,0,0 +1,4.61512,1,6.476973,0,0,13.73189,0,0,0 +1,4.61512,1,6.476973,0,0,13.73189,0,0,0 +0,4.61512,1,6.476973,0,0,13.73189,0,0,0 +0,4.61512,1,6.476973,0,0,13.73189,0,0,0 +0,4.61512,1,6.476973,0,0,13.73189,0,0,0 +1,4.61512,1,6.476973,0,0,13.73189,0,0,0 +1,4.61512,1,6.476973,0,0,13.73189,0,0,0 +2,4.61512,1,6.476973,0,0,13.73189,0,0,0 +0,4.61512,1,6.476973,0,0,13.73189,0,0,0 +3,4.61512,1,6.476973,0,0,13.73189,0,0,0 +2,4.61512,1,6.476973,0,0,13.73189,0,0,0 +1,4.61512,1,6.476973,0,0,13.73189,0,0,0 +4,4.61512,1,6.476973,0,0,13.73189,0,0,0 +1,4.61512,1,6.476973,0,0,13.73189,0,0,0 +0,0,1,4.787492,0,0,21.7,0,0,0 +1,0,1,4.787492,0,0,21.7,0,0,0 +1,0,1,4.787492,0,0,21.7,0,0,0 +0,0,1,4.787492,0,0,21.7,0,0,0 +2,0,1,4.787492,0,0,21.7,0,0,0 +0,0,1,4.787492,0,0,0,0,0,0 +0,0,1,4.787492,0,0,0,0,0,0 +0,0,1,4.787492,0,0,0,0,0,0 +0,0,1,4.787492,0,0,0,0,0,0 +1,0,1,4.787492,0,0,0,0,0,0 +1,0,1,4.787492,0,0,13.73189,0,0,0 +1,0,1,4.787492,0,0,13.73189,0,0,0 +1,0,1,4.787492,0,0,13.73189,0,0,0 +0,0,1,4.787492,0,0,13.73189,0,0,0 +3,0,1,4.787492,0,0,13.73189,0,0,0 +2,0,1,4.787492,0,0,13.73189,0,0,0 +1,0,1,4.787492,0,0,13.73189,0,0,0 +0,0,1,4.787492,0,0,13.73189,0,0,0 +1,0,1,4.787492,0,0,13.73189,0,0,0 +4,0,1,4.787492,0,0,13.73189,0,0,0 +0,3.258096,0,6.871091,8.257385,0,4.3,0,0,0 +0,3.258096,0,6.871091,8.257385,0,4.3,0,0,0 +5,3.258096,0,6.871091,8.257385,0,4.3,0,0,0 +4,3.258096,0,6.871091,8.257385,0,13.73189,0,0,0 +2,3.258096,0,6.871091,8.257385,0,13.73189,0,0,0 +1,3.258096,0,6.871091,8.257385,0,13.73189,0,0,0 +2,3.258096,0,6.871091,8.257385,0,13.73189,0,0,0 +1,3.258096,0,6.871091,8.257385,0,13.73189,0,0,0 +2,3.258096,0,6.871091,8.257385,0,13.73189,0,0,0 +1,3.258096,0,6.871091,8.257385,1,13.73189,0,0,0 +2,3.258096,0,6.871091,8.257385,1,13.73189,0,0,0 +1,3.258096,0,6.871091,8.257385,1,13.73189,0,0,0 +2,3.258096,0,6.871091,8.257385,0,13,0,0,0 +1,3.258096,0,6.871091,8.257385,0,13,0,0,0 +1,3.258096,0,6.871091,8.257385,0,13,0,0,0 +6,3.258096,0,6.871091,8.257385,0,13.73189,0,0,0 +1,3.258096,0,6.871091,8.257385,0,13.73189,0,0,0 +1,3.258096,0,6.871091,8.257385,0,13.73189,0,0,0 +4,3.258096,0,6.871091,8.257385,0,13.73189,0,0,0 +1,3.258096,0,6.871091,8.257385,0,13.73189,0,0,0 +1,3.258096,0,6.871091,8.257385,0,13.73189,0,0,0 +1,3.258096,0,6.907755,8.294049,0,13,1,0,0 +1,3.258096,0,6.907755,8.294049,0,13,1,0,0 +2,3.258096,0,6.907755,8.294049,0,13,1,0,0 +0,3.258096,0,6.907755,8.294049,0,17.4,0,0,0 +0,3.258096,0,6.907755,8.294049,0,17.4,0,0,0 +1,3.258096,0,6.907755,8.294049,0,17.4,0,0,0 +4,3.258096,0,6.907755,8.294049,0,17.4,1,0,0 +3,3.258096,0,6.907755,8.294049,0,17.4,1,0,0 +2,3.258096,0,6.907755,8.294049,0,17.4,1,0,0 +3,0,0,5.451038,0,0,13.73189,0,0,0 +6,0,0,5.451038,0,0,13.73189,0,0,0 +3,0,0,5.451038,0,0,13.73189,0,0,0 +4,0,0,5.451038,0,0,13.73189,0,0,0 +6,0,0,5.451038,0,0,13.73189,0,0,0 +4,0,0,5.451038,0,0,13,0,0,0 +10,0,0,5.451038,0,0,13,0,0,0 +3,0,0,5.451038,0,0,13,0,0,0 +7,0,0,5.451038,0,0,13,0,0,0 +5,0,0,5.451038,0,0,13,0,0,0 +5,0,0,5.451038,0,0,13.73189,0,0,0 +3,0,0,5.451038,0,0,13.73189,0,0,0 +5,0,0,5.451038,0,0,13.73189,0,0,0 +2,0,0,5.451038,0,0,13.73189,0,0,0 +4,0,0,5.451038,0,0,13.73189,0,0,0 +4,0,0,5.451038,0,0,4.3,0,0,0 +7,0,0,5.451038,0,0,4.3,0,0,0 +6,0,0,5.451038,0,0,4.3,0,0,0 +12,0,0,5.451038,0,0,4.3,0,0,0 +1,0,0,5.451038,0,0,4.3,0,0,0 +13,4.61512,1,6.386879,0,1,34.8,0,1,0 +5,4.61512,1,6.386879,0,1,34.8,0,1,0 +1,4.61512,1,6.386879,0,1,34.8,0,1,0 +1,4.61512,1,6.386879,0,0,13.73189,0,1,0 +6,4.61512,1,6.386879,0,0,13.73189,0,1,0 +7,4.61512,1,6.386879,0,0,13.73189,0,1,0 +1,4.61512,1,6.386879,0,0,13.73189,0,1,0 +3,4.61512,1,6.386879,0,0,13.73189,0,1,0 +2,4.61512,1,6.386879,0,0,13.73189,0,1,0 +4,4.61512,1,6.386879,0,0,13.73189,0,0,0 +6,4.61512,1,6.386879,0,0,13.73189,0,0,0 +2,4.61512,1,6.386879,0,0,13.73189,0,0,0 +2,4.61512,1,6.386879,0,0,17.4,1,0,0 +0,4.61512,1,6.386879,0,0,17.4,1,0,0 +1,4.61512,1,6.386879,0,0,17.4,1,0,0 +6,0,0,5.796058,0,0,13,0,0,0 +0,0,0,5.796058,0,0,13,0,0,0 +1,0,0,5.796058,0,0,13,0,0,0 +3,0,0,5.796058,0,0,13,0,0,0 +2,0,0,5.796058,0,0,13,0,0,0 +0,0,0,5.796058,0,0,4.3,0,0,0 +4,0,0,5.796058,0,0,4.3,0,0,0 +3,0,0,5.796058,0,0,4.3,0,0,0 +3,0,0,5.796058,0,0,4.3,0,0,0 +2,0,0,5.796058,0,0,4.3,0,0,0 +4,0,0,5.796058,0,0,17.4,1,0,0 +11,0,0,5.796058,0,0,17.4,1,0,0 +7,0,0,5.796058,0,0,17.4,1,0,0 +3,0,0,5.796058,0,0,17.4,1,0,0 +5,0,0,5.796058,0,0,17.4,1,0,0 +1,4.61512,1,6.791222,0,0,13.73189,0,0,0 +2,4.61512,1,6.791222,0,0,13.73189,0,0,0 +1,4.61512,1,6.791222,0,0,13.73189,0,0,0 +1,4.61512,1,6.791222,0,0,13.73189,0,0,0 +3,4.61512,1,6.791222,0,0,13.73189,0,0,0 +4,4.61512,1,6.791222,0,0,0,0,0,0 +3,4.61512,1,6.791222,0,0,0,0,0,0 +2,4.61512,1,6.791222,0,0,0,0,0,0 +1,4.61512,1,6.791222,0,0,0,0,0,0 +4,4.61512,1,6.791222,0,0,0,0,0,0 +2,4.61512,1,6.791222,0,0,8.7,0,0,0 +3,4.61512,1,6.791222,0,0,8.7,0,0,0 +6,4.61512,1,6.791222,0,0,8.7,0,0,0 +0,4.61512,1,6.791222,0,0,8.7,0,0,0 +2,4.61512,1,6.791222,0,0,8.7,0,0,0 +2,0,0,5.273,0,0,4.3,0,0,0 +3,0,0,5.273,0,0,4.3,0,0,0 +1,0,0,5.273,0,0,4.3,0,0,0 +0,0,0,5.273,0,0,4.3,0,0,0 +0,0,0,5.273,0,0,4.3,0,0,0 +4,0,0,5.273,0,0,4.3,0,0,0 +2,0,0,5.273,0,0,4.3,0,0,0 +1,0,0,5.273,0,0,4.3,0,0,0 +2,0,0,5.273,0,0,4.3,0,0,0 +7,0,0,5.273,0,0,0,0,0,0 +1,0,0,5.273,0,0,0,0,0,0 +2,0,0,5.273,0,0,0,0,0,0 +1,0,0,5.273,0,0,0,0,0,0 +4,0,0,5.273,0,0,0,0,0,0 +2,0,0,5.273,0,0,0,0,0,0 +3,0,0,5.273,0,0,0,0,0,0 +0,0,0,5.273,0,0,0,0,0,0 +4,0,0,5.273,0,0,0,0,0,0 +1,0,0,5.273,0,0,0,0,0,0 +3,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +4,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +4,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +2,3.258096,0,6.907755,8.294049,1,13.73189,0,0,0 +0,3.258096,0,6.907755,8.294049,1,13.73189,0,0,0 +1,3.258096,0,6.907755,8.294049,1,13.73189,0,0,0 +0,3.258096,0,6.907755,8.294049,1,13.73189,0,0,0 +4,3.258096,0,6.907755,8.294049,1,13.73189,0,0,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +19,3.258096,0,6.907755,8.294049,1,13.73189,0,1,0 +11,3.258096,0,6.907755,8.294049,1,13.73189,0,1,0 +8,3.258096,0,6.907755,8.294049,1,13.73189,0,1,0 +1,3.258096,0,6.907755,8.294049,1,13.73189,0,1,0 +3,3.258096,0,6.907755,8.294049,1,13.73189,0,1,0 +1,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +2,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +4,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +1,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +0,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +0,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +0,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +1,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +4,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +0,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +0,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +2,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +1,0,0,5.278115,0,0,13,0,0,0 +2,0,0,5.278115,0,0,13,0,0,0 +5,0,0,5.278115,0,0,13,0,0,0 +3,0,0,5.278115,0,0,13,0,0,0 +0,0,0,5.278115,0,0,13,0,0,0 +4,0,0,5.278115,0,0,13.73189,0,0,0 +3,0,0,5.278115,0,0,13.73189,0,0,0 +0,0,0,5.278115,0,0,13.73189,0,0,0 +1,0,0,5.278115,0,0,13.73189,0,0,0 +2,0,0,5.278115,0,0,13.73189,0,0,0 +20,0,0,5.278115,0,0,13.73189,1,0,0 +9,0,0,5.278115,0,0,13.73189,1,0,0 +26,0,0,5.278115,0,0,13.73189,1,0,0 +28,0,0,5.278115,0,0,13.73189,1,0,0 +33,0,0,5.278115,0,0,13.73189,1,0,0 +13,0,0,5.278115,0,0,8.7,0,0,0 +11,0,0,5.278115,0,0,8.7,0,0,0 +12,0,0,5.278115,0,0,8.7,0,0,0 +7,0,0,5.278115,0,0,8.7,0,0,0 +16,0,0,5.278115,0,0,8.7,0,0,0 +6,0,0,5.278115,0,0,8.7,0,0,0 +3,0,0,5.278115,0,0,8.7,0,0,0 +6,0,0,5.278115,0,0,8.7,0,0,0 +7,0,0,5.278115,0,0,8.7,0,0,0 +6,0,0,5.278115,0,0,8.7,0,0,0 +2,0,0,5.278115,0,0,13.73189,0,0,0 +0,0,0,5.278115,0,0,13.73189,0,0,0 +0,0,0,5.278115,0,0,13.73189,0,0,0 +3,0,0,5.278115,0,0,13.73189,0,0,0 +3,0,0,5.278115,0,0,13.73189,0,0,0 +2,3.258096,0,5.883322,7.269617,0,13.73189,1,0,0 +1,3.258096,0,5.883322,7.269617,0,13.73189,1,0,0 +0,3.258096,0,5.883322,7.269617,0,13.73189,1,0,0 +2,3.258096,0,5.883322,7.269617,0,13.73189,1,0,0 +3,3.258096,0,5.883322,7.269617,0,13.73189,1,0,0 +4,3.258096,0,5.883322,7.269617,0,13.73189,1,0,0 +1,3.258096,0,5.883322,7.269617,0,13.73189,1,0,0 +1,3.258096,0,5.883322,7.269617,0,13.73189,1,0,0 +1,3.258096,0,5.883322,7.269617,0,13.73189,1,0,0 +2,0,1,5.703783,0,0,8.7,1,0,0 +6,0,1,5.703783,0,0,8.7,1,0,0 +1,0,1,5.703783,0,0,8.7,1,0,0 +0,0,1,5.703783,0,0,4.3,1,0,0 +7,0,1,5.703783,0,0,4.3,1,0,0 +6,0,1,5.703783,0,0,4.3,1,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +37,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +6,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +11,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +6,3.258096,0,6.907755,8.294049,1,13.73189,1,0,0 +8,3.258096,0,6.907755,8.294049,1,13.73189,1,0,0 +5,3.258096,0,6.907755,8.294049,1,13.73189,1,0,0 +4,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +6,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +0,3.258096,0,6.907755,8.294049,0,4.3,0,0,0 +3,3.258096,0,6.907755,8.294049,0,4.3,0,0,0 +2,3.258096,0,6.907755,8.294049,0,4.3,0,0,0 +0,3.258096,0,6.907755,8.294049,.0327869,13.73189,0,0,0 +5,3.258096,0,6.907755,8.294049,0,8.7,0,0,0 +3,3.258096,0,6.907755,8.294049,0,8.7,0,0,0 +0,3.258096,0,6.907755,8.294049,0,8.7,0,0,0 +1,0,0,0,0,0,17.4,0,0,0 +4,0,0,0,0,0,17.4,0,0,0 +1,0,0,0,0,0,17.4,0,0,0 +0,0,0,0,0,0,17.4,0,0,0 +1,0,0,0,0,0,17.4,0,0,0 +3,0,0,0,0,0,8.7,0,0,0 +2,0,0,0,0,0,8.7,0,0,0 +3,0,0,0,0,0,8.7,0,0,0 +1,0,0,0,0,0,8.7,0,0,0 +3,0,0,0,0,0,8.7,0,0,0 +6,0,0,0,0,0,8.7,0,0,0 +7,0,0,0,0,0,8.7,0,0,0 +8,0,0,0,0,0,8.7,0,0,0 +2,0,0,0,0,0,8.7,0,0,0 +2,0,0,0,0,0,8.7,0,0,0 +2,0,0,0,0,0,17.4,0,0,0 +0,0,0,0,0,0,17.4,0,0,0 +0,0,0,0,0,0,17.4,0,0,0 +2,0,0,0,0,0,17.4,0,0,0 +0,0,0,0,0,0,17.4,0,0,0 +12,0,1,0,0,1,47.8,0,0,1 +38,0,1,0,0,1,30.4,1,0,0 +11,0,1,0,0,1,30.4,1,0,0 +6,0,1,0,0,1,30.4,1,0,0 +9,0,1,0,0,1,30.4,1,0,0 +7,0,1,0,0,1,30.4,1,0,0 +27,3.931826,0,6.408529,7.101676,1,13.73189,0,0,1 +0,3.931826,0,6.408529,7.101676,1,13.73189,0,0,1 +0,3.931826,0,6.408529,7.101676,1,13.73189,0,0,1 +0,3.931826,0,6.408529,7.101676,0,13.73189,1,0,0 +9,3.931826,0,6.408529,7.101676,0,13.73189,1,0,0 +11,3.931826,0,6.408529,7.101676,0,13.73189,1,0,0 +0,3.931826,0,6.907755,7.600903,0,4.3,0,0,0 +0,3.931826,0,6.907755,7.600903,0,4.3,0,0,0 +0,3.931826,0,6.907755,7.600903,0,4.3,0,0,0 +0,3.931826,0,6.907755,7.600903,0,4.3,0,0,0 +0,3.931826,0,6.907755,7.600903,0,4.3,0,0,0 +2,3.931826,0,6.907755,7.600903,0,17.4,0,0,0 +3,3.931826,0,6.907755,7.600903,0,17.4,0,0,0 +1,3.931826,0,6.907755,7.600903,0,17.4,0,0,0 +1,3.931826,0,6.907755,7.600903,0,17.4,0,0,0 +1,3.931826,0,6.907755,7.600903,0,17.4,0,0,0 +2,3.931826,0,6.50129,7.194437,0,17.4,1,0,0 +3,3.931826,0,6.50129,7.194437,0,17.4,1,0,0 +2,3.931826,0,6.50129,7.194437,0,17.4,1,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +0,3.258096,0,6.907755,8.294049,0,13,1,0,0 +1,3.258096,0,6.907755,8.294049,0,13,1,0,0 +0,3.258096,0,6.907755,8.294049,0,13,1,0,0 +0,3.258096,0,6.907755,8.294049,0,13,1,0,0 +0,3.258096,0,6.907755,8.294049,0,13,1,0,0 +1,3.258096,0,6.907755,8.294049,0,8.7,1,0,0 +1,3.258096,0,6.907755,8.294049,0,8.7,1,0,0 +2,3.258096,0,6.907755,8.294049,0,8.7,1,0,0 +1,3.258096,0,6.907755,8.294049,0,8.7,1,0,0 +0,3.258096,0,6.907755,8.294049,0,8.7,1,0,0 +1,4.61512,1,6.855409,0,0,8.7,0,0,0 +0,4.61512,1,6.855409,0,0,8.7,0,0,0 +0,4.61512,1,6.855409,0,0,8.7,0,0,0 +13,4.61512,1,6.855409,0,0,30.4,0,0,0 +8,4.61512,1,6.855409,0,0,30.4,0,0,0 +11,4.61512,1,6.855409,0,0,30.4,0,0,0 +1,4.61512,1,6.907755,0,0,21.7,1,0,0 +4,4.61512,1,6.907755,0,0,21.7,1,0,0 +1,4.61512,1,6.907755,0,0,21.7,1,0,0 +2,4.61512,1,6.907755,0,0,21.7,1,0,0 +3,4.61512,1,6.907755,0,0,21.7,1,0,0 +5,4.61512,1,6.907755,0,1,30.4,0,1,0 +2,4.61512,1,6.907755,0,1,30.4,0,1,0 +3,4.61512,1,6.907755,0,1,30.4,0,1,0 +13,4.61512,1,6.907755,0,1,30.4,0,1,0 +6,4.61512,1,6.907755,0,1,30.4,0,1,0 +1,3.931826,0,6.536692,7.229839,0,13.73189,0,0,0 +0,3.931826,0,6.536692,7.229839,0,13.73189,0,0,0 +1,3.931826,0,6.536692,7.229839,0,13.73189,0,0,0 +2,3.931826,0,6.536692,7.229839,0,13.73189,0,0,0 +2,3.931826,0,6.536692,7.229839,0,13.73189,0,0,0 +3,3.931826,0,6.536692,7.229839,0,13.73189,0,0,0 +9,3.931826,0,6.536692,7.229839,1,13.73189,1,0,0 +7,3.931826,0,6.536692,7.229839,1,13.73189,1,0,0 +5,3.931826,0,6.536692,7.229839,1,13.73189,1,0,0 +0,3.931826,0,6.536692,7.229839,0,13.73189,0,0,0 +0,3.931826,0,6.536692,7.229839,0,13.73189,0,0,0 +1,3.931826,0,6.536692,7.229839,0,13.73189,0,0,0 +2,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +1,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +4,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +3,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +2,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +6,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +2,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +1,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +2,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +3,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +2,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +3,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +5,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +8,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +3,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +2,3.931826,0,6.907755,7.600903,0,0,0,0,0 +3,3.931826,0,6.907755,7.600903,0,0,0,0,0 +4,3.931826,0,6.907755,7.600903,0,0,0,0,0 +0,3.931826,0,6.907755,7.600903,0,0,0,0,0 +1,3.931826,0,6.907755,7.600903,0,0,0,0,0 +2,3.931826,0,6.907755,7.600903,0,8.7,0,0,0 +1,3.931826,0,6.907755,7.600903,0,8.7,0,0,0 +0,3.931826,0,6.907755,7.600903,0,8.7,0,0,0 +1,3.931826,0,6.907755,7.600903,0,8.7,0,0,0 +0,3.931826,0,6.907755,7.600903,0,8.7,0,0,0 +1,3.931826,0,6.907755,7.600903,0,8.7,0,0,0 +1,3.931826,0,6.907755,7.600903,0,8.7,0,0,0 +2,3.931826,0,6.907755,7.600903,0,8.7,0,0,0 +0,3.931826,0,6.907755,7.600903,0,8.7,0,0,0 +4,3.931826,0,6.907755,7.600903,0,8.7,0,0,0 +1,3.931826,0,6.907755,7.600903,0,8.7,0,0,0 +0,3.931826,0,6.907755,7.600903,0,8.7,0,0,0 +2,3.931826,0,6.907755,7.600903,0,8.7,0,0,0 +4,3.931826,0,6.907755,7.600903,0,8.7,0,0,0 +0,3.931826,0,6.907755,7.600903,0,8.7,0,0,0 +3,3.931826,0,6.907755,7.600903,0,0,0,0,0 +0,3.931826,0,6.907755,7.600903,0,0,0,0,0 +2,3.931826,0,6.907755,7.600903,0,0,0,0,0 +0,3.931826,0,6.907755,7.600903,0,0,0,0,0 +1,3.931826,0,6.907755,7.600903,0,0,0,0,0 +0,4.61512,1,6.802395,0,0,13,0,0,0 +0,4.61512,1,6.802395,0,0,13,0,0,0 +0,4.61512,1,6.802395,0,0,13,0,0,0 +0,4.61512,1,6.802395,0,0,13,0,0,0 +1,4.61512,1,6.802395,0,0,13,0,0,0 +0,4.61512,1,6.802395,0,0,13,0,0,0 +3,4.61512,1,6.802395,0,0,13.73189,0,0,0 +1,4.61512,1,6.802395,0,0,13.73189,0,0,0 +1,4.61512,1,6.802395,0,0,13.73189,0,0,0 +1,4.61512,1,6.802395,0,0,13.73189,0,0,0 +1,4.61512,1,6.802395,0,0,13.73189,0,0,0 +1,4.61512,1,6.802395,0,0,13.73189,0,0,0 +2,3.258096,0,6.907755,8.294049,0,8.7,0,0,0 +1,3.258096,0,6.907755,8.294049,0,8.7,0,0,0 +2,3.258096,0,6.907755,8.294049,0,8.7,0,0,0 +5,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +22,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +41,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +2,3.258096,0,6.907755,8.294049,0,4.3,0,0,0 +22,3.258096,0,6.907755,8.294049,0,4.3,0,0,0 +65,3.258096,0,6.907755,8.294049,0,4.3,0,0,0 +0,0,0,5.257495,0,0,8.7,1,0,0 +2,0,0,5.257495,0,0,8.7,1,0,0 +0,0,0,5.257495,0,0,8.7,1,0,0 +2,0,0,5.257495,0,0,17.4,1,0,0 +3,0,0,5.257495,0,0,17.4,1,0,0 +1,0,0,5.257495,0,0,17.4,1,0,0 +4,0,0,5.257495,0,0,13.73189,0,0,0 +0,0,0,5.257495,0,0,13.73189,0,0,0 +3,0,0,5.257495,0,0,13.73189,0,0,0 +1,0,0,4.094345,0,0,13.73189,0,0,0 +2,0,0,4.094345,0,0,13.73189,0,0,0 +1,0,0,4.094345,0,0,13.73189,0,0,0 +4,0,0,4.094345,0,0,13.73189,0,0,0 +2,0,0,4.094345,0,0,13.73189,0,0,0 +34,0,0,4.094345,0,0,13.73189,1,0,0 +22,0,0,4.094345,0,0,13.73189,1,0,0 +31,0,0,4.094345,0,0,13.73189,1,0,0 +4,0,0,4.094345,0,0,13.73189,1,0,0 +7,0,0,4.094345,0,0,13.73189,1,0,0 +2,0,0,4.094345,0,0,17.4,0,0,0 +4,0,0,4.094345,0,0,17.4,0,0,0 +2,0,0,4.094345,0,0,17.4,0,0,0 +10,0,0,4.094345,0,0,17.4,0,0,0 +12,0,0,4.094345,0,0,17.4,0,0,0 +28,0,0,4.094345,0,0,13,0,0,0 +9,0,0,4.094345,0,0,13,0,0,0 +1,0,0,4.094345,0,0,13,0,0,0 +9,0,0,4.094345,0,0,13,0,0,0 +24,0,0,4.094345,0,0,13,0,0,0 +6,0,0,5.552959,0,0,17.4,1,0,0 +5,0,0,5.552959,0,0,17.4,1,0,0 +6,0,0,5.552959,0,0,17.4,1,0,0 +11,0,0,5.552959,0,0,17.4,1,0,0 +10,0,0,5.552959,0,0,17.4,1,0,0 +4,0,0,4.430817,0,0,13,0,0,0 +4,0,0,4.430817,0,0,13,0,0,0 +5,0,0,4.430817,0,0,13,0,0,0 +4,0,0,4.430817,0,0,13,0,0,0 +10,0,0,4.430817,0,0,13,0,0,0 +16,0,0,4.430817,0,0,13,0,0,0 +8,0,0,4.430817,0,0,13,0,0,0 +7,0,0,4.430817,0,0,13,0,0,0 +5,0,0,4.430817,0,0,13,0,0,0 +7,0,0,4.430817,0,0,13,0,0,0 +4,0,0,4.430817,0,0,13,0,0,0 +1,0,0,4.430817,0,0,13,0,0,0 +4,0,0,4.430817,0,0,13,0,0,0 +4,0,0,4.430817,0,0,13,0,0,0 +2,0,0,4.430817,0,0,13,0,0,0 +4,0,0,4.430817,0,0,13.73189,1,0,0 +11,0,0,4.430817,0,0,13.73189,1,0,0 +13,0,0,4.430817,0,0,13.73189,1,0,0 +6,0,0,4.430817,0,0,13.73189,1,0,0 +9,0,0,4.430817,0,0,13.73189,1,0,0 +5,0,0,0,0,0,13.73189,0,0,0 +2,0,0,0,0,0,13.73189,0,0,0 +9,0,0,0,0,0,13.73189,0,0,0 +5,0,0,0,0,0,13.73189,1,0,0 +2,0,0,0,0,0,13.73189,1,0,0 +12,0,0,0,0,0,13.73189,1,0,0 +3,0,0,0,0,0,13.73189,0,0,0 +8,0,0,0,0,0,13.73189,0,0,0 +18,0,0,0,0,0,13.73189,0,0,0 +1,0,0,0,0,0,13.73189,0,0,0 +1,0,0,0,0,0,13.73189,0,0,0 +4,0,0,0,0,0,13.73189,0,0,0 +6,0,0,0,0,0,13.73189,1,0,0 +5,0,0,0,0,0,13.73189,1,0,0 +6,0,0,0,0,0,13.73189,1,0,0 +2,3.931826,0,6.907755,7.600903,0,8.7,1,0,0 +0,3.931826,0,6.907755,7.600903,0,8.7,1,0,0 +4,3.931826,0,6.907755,7.600903,0,8.7,1,0,0 +0,3.931826,0,6.907755,7.600903,0,8.7,1,0,0 +0,3.931826,0,6.907755,7.600903,0,8.7,1,0,0 +0,3.931826,0,6.907755,7.600903,0,13,1,0,0 +0,3.931826,0,6.907755,7.600903,0,13,1,0,0 +0,3.931826,0,6.907755,7.600903,0,13,1,0,0 +0,3.931826,0,6.907755,7.600903,0,13,1,0,0 +1,3.931826,0,6.907755,7.600903,0,13,1,0,0 +1,0,1,0,0,0,13.73189,0,0,0 +0,0,1,0,0,0,13.73189,0,0,0 +2,0,1,0,0,0,13.73189,0,0,0 +2,0,1,0,0,0,13.73189,0,0,0 +1,0,1,0,0,0,13.73189,0,0,0 +10,0,1,0,0,1,30.4,1,0,0 +3,0,1,0,0,1,30.4,1,0,0 +1,0,1,0,0,1,30.4,1,0,0 +2,0,1,0,0,1,30.4,1,0,0 +0,0,1,0,0,1,30.4,1,0,0 +3,0,1,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0 +0,0,1,0,0,0,0,0,0,0 +3,0,1,0,0,0,0,0,0,0 +2,0,1,0,0,0,13.73189,0,0,0 +0,0,1,0,0,0,13.73189,0,0,0 +2,0,1,0,0,0,13.73189,0,0,0 +1,0,1,0,0,0,13.73189,0,0,0 +0,0,1,0,0,0,13.73189,0,0,0 +6,0,1,0,0,0,13.73189,0,0,0 +0,0,1,0,0,0,13.73189,0,0,0 +1,0,1,0,0,0,13.73189,0,0,0 +4,0,1,0,0,0,13.73189,0,0,0 +1,0,1,0,0,0,13.73189,0,0,0 +11,3.931826,0,6.906755,7.599902,0,13.73189,1,0,0 +7,3.931826,0,6.906755,7.599902,0,13.73189,1,0,0 +9,3.931826,0,6.906755,7.599902,0,13.73189,1,0,0 +6,3.931826,0,6.906755,7.599902,0,13.73189,1,0,0 +4,3.931826,0,6.906755,7.599902,0,13.73189,1,0,0 +8,3.931826,0,6.906755,7.599902,0,17.4,1,0,0 +6,3.931826,0,6.906755,7.599902,0,17.4,1,0,0 +6,3.931826,0,6.906755,7.599902,0,17.4,1,0,0 +6,3.931826,0,6.906755,7.599902,0,17.4,1,0,0 +12,3.931826,0,6.906755,7.599902,0,17.4,1,0,0 +3,3.931826,0,6.906755,7.599902,0,13.73189,1,0,0 +7,3.931826,0,6.906755,7.599902,0,13.73189,1,0,0 +13,3.931826,0,6.906755,7.599902,0,13.73189,1,0,0 +10,3.931826,0,6.906755,7.599902,0,13.73189,1,0,0 +2,3.931826,0,6.906755,7.599902,0,13.73189,1,0,0 +2,3.931826,0,6.906755,7.599902,0,26.1,1,0,0 +2,3.931826,0,6.906755,7.599902,0,26.1,1,0,0 +4,3.931826,0,6.906755,7.599902,0,26.1,1,0,0 +3,3.931826,0,6.906755,7.599902,0,26.1,1,0,0 +4,3.931826,0,6.906755,7.599902,0,26.1,1,0,0 +8,0,0,3.178054,0,1,13.73189,1,0,0 +1,0,0,3.178054,0,1,13.73189,1,0,0 +0,0,0,3.178054,0,1,13.73189,1,0,0 +0,3.931826,0,6.309918,7.003066,1,8.7,1,0,0 +0,3.931826,0,6.309918,7.003066,1,8.7,1,0,0 +0,3.931826,0,6.309918,7.003066,1,8.7,1,0,0 +0,3.931826,0,6.309918,7.003066,1,8.7,1,0,0 +0,3.931826,0,6.309918,7.003066,1,8.7,1,0,0 +1,3.931826,0,6.309918,7.003066,0,8.7,1,0,0 +0,3.931826,0,6.309918,7.003066,0,8.7,1,0,0 +0,3.931826,0,6.309918,7.003066,0,8.7,1,0,0 +4,3.931826,0,6.309918,7.003066,0,8.7,1,0,0 +10,3.931826,0,6.309918,7.003066,0,21.7,1,0,0 +22,3.931826,0,6.309918,7.003066,0,21.7,1,0,0 +8,3.931826,0,6.309918,7.003066,0,21.7,1,0,0 +22,3.931826,0,6.309918,7.003066,0,21.7,1,0,0 +18,3.931826,0,6.309918,7.003066,0,21.7,1,0,0 +7,4.61512,1,6.802395,0,0,4.3,0,0,0 +7,4.61512,1,6.802395,0,0,4.3,0,0,0 +2,4.61512,1,6.802395,0,0,4.3,0,0,0 +0,4.61512,1,6.802395,0,0,4.3,0,0,0 +3,4.61512,1,6.802395,0,0,4.3,0,0,0 +0,4.61512,1,6.802395,0,0,4.3,0,0,0 +6,4.61512,1,6.802395,0,0,0,0,0,0 +5,4.61512,1,6.802395,0,0,0,0,0,0 +7,4.61512,1,6.802395,0,0,0,0,0,0 +2,4.61512,1,6.802395,0,0,17.4,0,0,0 +8,4.61512,1,6.802395,0,0,17.4,0,0,0 +3,4.61512,1,6.802395,0,0,17.4,0,0,0 +3,4.61512,1,6.802395,0,0,13.73189,0,0,0 +4,4.61512,1,6.802395,0,0,13.73189,0,0,0 +2,4.61512,1,6.802395,0,0,13.73189,0,0,0 +4,3.931826,0,6.907755,7.600903,0,13,1,0,0 +2,3.931826,0,6.907755,7.600903,0,13,1,0,0 +1,3.931826,0,6.907755,7.600903,0,13,1,0,0 +3,3.931826,0,6.907755,7.600903,0,13,1,0,0 +1,3.931826,0,6.907755,7.600903,0,13,1,0,0 +2,3.931826,0,6.907755,7.600903,0,17.4,1,0,0 +2,3.931826,0,6.907755,7.600903,0,17.4,1,0,0 +1,3.931826,0,6.907755,7.600903,0,17.4,1,0,0 +1,3.931826,0,6.907755,7.600903,0,17.4,1,0,0 +2,3.931826,0,6.907755,7.600903,0,17.4,1,0,0 +1,0,0,6.408529,0,0,13,1,0,0 +2,0,0,6.408529,0,0,13,1,0,0 +1,0,0,6.408529,0,0,13,1,0,0 +5,0,0,6.408529,0,1,34.8,1,0,0 +9,0,0,6.408529,0,1,34.8,1,0,0 +11,0,0,6.408529,0,1,34.8,1,0,0 +0,3.258096,0,6.907755,8.294049,0,13,0,0,0 +0,3.258096,0,6.907755,8.294049,0,13,0,0,0 +1,3.258096,0,6.907755,8.294049,0,13,0,0,0 +0,3.258096,0,6.907755,8.294049,0,13,0,0,0 +0,3.258096,0,6.907755,8.294049,0,13,0,0,0 +3,3.258096,0,6.907755,8.294049,0,13,0,0,0 +1,3.258096,0,6.907755,8.294049,0,13,0,0,0 +2,3.258096,0,6.907755,8.294049,0,13,0,0,0 +0,3.258096,0,6.907755,8.294049,0,13,0,0,0 +2,3.258096,0,6.907755,8.294049,0,13,0,0,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +5,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +1,3.931826,0,6.907755,7.600903,0,8.7,0,0,0 +1,3.931826,0,6.907755,7.600903,0,8.7,0,0,0 +2,3.931826,0,6.907755,7.600903,0,8.7,0,0,0 +5,3.931826,0,5.003946,5.697093,0,17.4,0,0,0 +3,3.931826,0,5.003946,5.697093,0,17.4,0,0,0 +2,3.931826,0,5.003946,5.697093,0,17.4,0,0,0 +5,3.931826,0,5.003946,5.697093,0,17.4,0,0,0 +4,3.931826,0,5.003946,5.697093,0,17.4,0,0,0 +3,3.931826,0,5.003946,5.697093,0,13.73189,0,0,0 +2,3.931826,0,5.003946,5.697093,0,13.73189,0,0,0 +6,3.931826,0,5.003946,5.697093,0,13.73189,0,0,0 +4,3.931826,0,5.003946,5.697093,0,13.73189,0,0,0 +3,3.931826,0,5.003946,5.697093,0,13.73189,0,0,0 +4,3.931826,0,5.003946,5.697093,0,13.73189,1,0,0 +3,3.931826,0,5.003946,5.697093,0,13.73189,1,0,0 +0,3.931826,0,5.003946,5.697093,0,13.73189,1,0,0 +0,3.931826,0,5.003946,5.697093,0,13.73189,1,0,0 +3,3.931826,0,5.003946,5.697093,0,13.73189,1,0,0 +4,3.931826,0,5.003946,5.697093,0,13.73189,0,0,0 +2,3.931826,0,5.003946,5.697093,0,13.73189,0,0,0 +6,3.931826,0,5.003946,5.697093,0,13.73189,0,0,0 +0,3.931826,0,5.003946,5.697093,0,13.73189,0,0,0 +5,3.931826,0,5.003946,5.697093,0,13.73189,0,0,0 +3,4.61512,1,6.75227,0,0,13.73189,0,0,0 +0,4.61512,1,6.75227,0,0,13.73189,0,0,0 +1,4.61512,1,6.75227,0,0,13.73189,0,0,0 +2,4.61512,1,6.75227,0,0,13.73189,0,0,0 +0,4.61512,1,6.75227,0,0,13.73189,0,0,0 +6,4.61512,1,6.75227,0,0,13.73189,0,0,0 +0,4.61512,1,6.75227,0,0,13.73189,0,0,0 +3,4.61512,1,6.75227,0,0,13.73189,0,0,0 +1,4.61512,1,6.75227,0,0,13.73189,0,0,0 +0,4.61512,1,6.75227,0,0,13.73189,0,0,0 +2,4.61512,1,6.907755,0,0,13.73189,0,0,0 +4,4.61512,1,6.907755,0,0,13.73189,0,0,0 +1,4.61512,1,6.907755,0,0,13.73189,0,0,0 +0,4.61512,1,6.907755,0,0,13.73189,0,0,0 +0,4.61512,1,6.907755,0,0,13.73189,0,0,0 +1,4.61512,1,6.907755,0,0,13.73189,0,0,0 +0,4.61512,1,6.907755,0,0,13.73189,0,0,0 +0,4.61512,1,6.907755,0,0,13.73189,0,0,0 +0,4.61512,1,6.907755,0,0,13.73189,0,0,0 +7,4.61512,1,6.907755,0,0,13.73189,0,0,0 +4,4.61512,1,6.907755,0,0,13.73189,0,0,0 +0,4.61512,1,6.907755,0,0,13.73189,0,0,0 +0,3.931826,0,5.852202,6.190315,0,13.73189,1,0,0 +0,3.931826,0,5.852202,6.190315,0,13.73189,1,0,0 +1,3.931826,0,5.852202,6.190315,0,13.73189,1,0,0 +2,3.931826,0,5.852202,6.190315,1,30.4,0,1,0 +0,3.931826,0,5.852202,6.190315,1,30.4,0,1,0 +0,3.931826,0,5.852202,6.190315,1,30.4,0,1,0 +4,4.61512,1,6.907755,0,0,8.7,1,0,0 +1,4.61512,1,6.907755,0,0,8.7,1,0,0 +1,4.61512,1,6.907755,0,0,8.7,1,0,0 +3,4.61512,1,6.907755,0,0,13,1,0,0 +3,4.61512,1,6.907755,0,0,13,1,0,0 +1,4.61512,1,6.907755,0,0,13,1,0,0 +0,0,0,5.783825,0,0,13.73189,0,0,0 +0,0,0,5.783825,0,0,13.73189,0,0,0 +3,0,0,5.783825,0,0,13.73189,0,0,0 +6,0,0,5.783825,0,0,13.73189,0,0,0 +5,0,0,5.783825,0,0,13.73189,0,0,0 +1,0,0,5.783825,0,0,13.73189,0,0,0 +1,0,0,5.783825,0,0,13.73189,0,0,0 +4,0,0,5.783825,0,0,13.73189,0,0,0 +0,0,0,5.783825,0,0,13.73189,0,0,0 +1,0,0,5.783825,0,0,13.73189,0,0,0 +5,0,0,5.783825,0,0,8.7,0,0,0 +8,0,0,5.783825,0,0,8.7,0,0,0 +1,0,0,5.783825,0,0,8.7,0,0,0 +1,0,0,5.783825,0,0,8.7,0,0,0 +0,0,0,5.783825,0,0,8.7,0,0,0 +1,0,0,5.783825,0,0,13.73189,0,0,0 +1,0,0,5.783825,0,0,13.73189,0,0,0 +2,0,0,5.783825,0,0,13.73189,0,0,0 +1,0,0,5.783825,0,0,13.73189,0,0,0 +0,0,0,5.783825,0,0,13.73189,0,0,0 +4,0,0,5.783825,0,0,0,0,0,0 +4,0,0,5.783825,0,0,0,0,0,0 +9,0,0,5.783825,0,0,0,0,0,0 +4,0,0,5.783825,0,0,0,0,0,0 +7,0,0,5.783825,0,0,0,0,0,0 +0,0,0,5.783825,0,0,0,1,0,0 +2,0,0,5.783825,0,0,0,1,0,0 +0,0,0,5.783825,0,0,0,1,0,0 +4,0,0,5.783825,0,0,0,1,0,0 +0,0,0,5.783825,0,0,0,1,0,0 +0,0,0,5.783825,0,0,13.73189,0,0,0 +1,0,0,5.783825,0,0,13.73189,0,0,0 +1,0,0,5.783825,0,0,13.73189,0,0,0 +0,0,0,5.783825,0,0,13.73189,0,0,0 +0,0,0,5.783825,0,0,13.73189,0,0,0 +3,0,0,5.746203,0,1,26.1,0,0,1 +7,0,0,5.746203,0,1,26.1,0,0,1 +6,0,0,5.746203,0,1,26.1,0,0,1 +3,0,0,5.746203,0,0,17.4,0,1,0 +8,0,0,5.746203,0,0,17.4,0,1,0 +0,0,0,5.746203,0,0,17.4,0,1,0 +9,0,0,5.746203,0,1,34.8,0,0,1 +8,0,0,5.746203,0,1,34.8,0,0,1 +6,0,0,5.746203,0,1,34.8,0,0,1 +2,0,0,0,0,0,13.73189,0,0,0 +9,0,0,0,0,0,13.73189,0,0,0 +2,0,0,0,0,0,13.73189,0,0,0 +1,0,0,0,0,0,13.73189,0,0,0 +4,0,0,0,0,0,13.73189,0,0,0 +0,0,0,5.31812,0,0,13.73189,0,0,0 +0,0,0,5.31812,0,0,13.73189,0,0,0 +0,0,0,5.31812,0,0,13.73189,0,0,0 +0,0,0,5.31812,0,0,13.73189,0,0,0 +1,0,0,5.31812,0,0,13.73189,0,0,0 +12,3.258096,0,5.986452,6.79794,0,13.73189,0,0,0 +12,3.258096,0,5.986452,6.79794,0,13.73189,0,0,0 +7,3.258096,0,5.986452,6.79794,0,13.73189,0,0,0 +21,3.258096,0,5.986452,6.79794,1,30.4,0,0,1 +10,3.258096,0,5.986452,6.79794,1,30.4,0,0,1 +12,3.258096,0,5.986452,6.79794,1,30.4,0,0,1 +38,3.258096,0,5.986452,6.79794,0,26.1,1,0,0 +13,3.258096,0,5.986452,6.79794,0,26.1,1,0,0 +15,3.258096,0,5.986452,6.79794,0,26.1,1,0,0 +35,3.258096,0,5.986452,6.79794,0,13.73189,0,0,0 +46,3.258096,0,5.986452,6.79794,0,13.73189,0,0,0 +31,3.258096,0,5.986452,6.79794,0,13.73189,0,0,0 +13,3.258096,0,5.627621,7.013916,1,13.73189,0,0,0 +1,0,0,0,0,0,8.7,1,0,0 +2,0,0,0,0,0,8.7,1,0,0 +0,0,0,0,0,0,8.7,1,0,0 +1,0,0,0,0,0,13,0,1,0 +0,0,0,0,0,0,13,0,1,0 +0,0,0,0,0,0,13,0,1,0 +1,0,0,0,0,0,13,0,1,0 +1,0,0,0,0,0,13,0,1,0 +3,0,0,0,0,0,13,0,1,0 +0,4.61512,1,0,0,0,13.73189,0,0,0 +0,4.61512,1,0,0,0,13.73189,0,0,0 +1,4.61512,1,0,0,0,13.73189,0,0,0 +1,4.61512,1,0,0,1,17.4,0,0,0 +3,4.61512,1,0,0,1,17.4,0,0,0 +2,4.61512,1,0,0,1,17.4,0,0,0 +0,4.61512,1,0,0,0,13.73189,0,0,0 +0,4.61512,1,0,0,0,13.73189,0,0,0 +0,4.61512,1,0,0,0,13.73189,0,0,0 +2,4.61512,1,0,0,0,8.7,0,0,0 +0,4.61512,1,0,0,0,8.7,0,0,0 +0,4.61512,1,0,0,0,8.7,0,0,0 +0,4.61512,1,0,0,1,13,1,0,0 +0,4.61512,1,0,0,1,13,1,0,0 +0,4.61512,1,0,0,1,13,1,0,0 +0,4.61512,1,5.56452,0,0,13.73189,1,0,0 +13,4.61512,1,5.56452,0,0,13.73189,1,0,0 +6,4.61512,1,5.56452,0,0,13.73189,1,0,0 +1,4.61512,1,5.56452,0,0,13.73189,1,0,0 +4,4.61512,1,5.56452,0,0,13.73189,1,0,0 +3,0,0,5.556828,0,1,39.1,1,0,0 +7,0,0,5.556828,0,1,39.1,1,0,0 +10,0,0,5.556828,0,1,39.1,1,0,0 +0,4.61512,1,0,0,0,21.7,1,0,0 +0,4.61512,1,0,0,0,21.7,1,0,0 +0,4.61512,1,0,0,0,21.7,1,0,0 +0,4.61512,1,0,0,0,13.73189,1,0,0 +0,4.61512,1,0,0,0,13.73189,1,0,0 +0,4.61512,1,0,0,0,13.73189,1,0,0 +9,3.258096,0,6.39693,7.783224,0,17.4,1,0,0 +15,3.258096,0,6.39693,7.783224,0,17.4,1,0,0 +19,3.258096,0,6.39693,7.783224,0,17.4,1,0,0 +2,3.258096,0,6.39693,7.783224,0,17.4,1,0,0 +3,3.258096,0,6.39693,7.783224,0,17.4,1,0,0 +9,3.258096,0,0,0,0,30.4,0,1,0 +12,3.258096,0,0,0,0,30.4,0,1,0 +9,3.258096,0,0,0,0,30.4,0,1,0 +8,3.258096,0,0,0,0,30.4,0,1,0 +12,3.258096,0,0,0,0,30.4,0,1,0 +2,3.258096,0,0,0,0,13.73189,1,0,0 +1,3.258096,0,0,0,0,13.73189,1,0,0 +2,3.258096,0,0,0,0,13.73189,1,0,0 +1,3.258096,0,0,0,0,13.73189,1,0,0 +2,3.258096,0,0,0,0,13.73189,1,0,0 +2,3.258096,0,0,0,0,8.7,1,0,0 +2,3.258096,0,0,0,0,8.7,1,0,0 +5,3.258096,0,0,0,0,8.7,1,0,0 +4,3.258096,0,0,0,0,8.7,1,0,0 +8,3.258096,0,0,0,0,8.7,1,0,0 +11,0,0,0,0,0,13.73189,1,0,0 +2,0,0,0,0,0,13.73189,1,0,0 +3,0,0,0,0,0,13.73189,1,0,0 +3,0,0,0,0,0,13.73189,1,0,0 +2,0,0,0,0,0,13.73189,1,0,0 +4,0,0,0,0,0,13.73189,1,0,0 +4,0,0,0,0,0,13.73189,1,0,0 +3,0,0,0,0,0,13.73189,1,0,0 +4,0,0,0,0,0,13.73189,1,0,0 +13,0,0,0,0,0,26.1,1,0,0 +14,0,0,0,0,0,26.1,1,0,0 +2,0,0,0,0,0,26.1,1,0,0 +10,0,0,0,0,0,13,1,0,0 +4,0,0,0,0,0,13,1,0,0 +3,0,0,0,0,0,13,1,0,0 +0,3.931826,0,0,5.111988,0,13.73189,0,0,0 +0,3.931826,0,0,5.111988,0,13.73189,0,0,0 +0,3.931826,0,0,5.111988,0,13.73189,0,0,0 +3,3.931826,0,0,5.111988,0,13.73189,0,0,0 +0,3.931826,0,0,5.111988,0,13.73189,0,0,0 +6,3.931826,0,0,5.111988,0,13.73189,0,0,0 +8,3.931826,0,0,5.111988,0,13.73189,0,0,0 +17,3.931826,0,0,5.111988,0,13.73189,0,0,0 +0,3.258096,0,6.907755,8.294049,0,8.7,0,0,0 +2,3.258096,0,6.907755,8.294049,0,8.7,0,0,0 +1,3.258096,0,6.907755,8.294049,0,8.7,0,0,0 +2,3.258096,0,6.907755,8.294049,0,8.7,0,0,0 +3,3.258096,0,6.907755,8.294049,0,8.7,0,0,0 +0,3.258096,0,6.907755,8.294049,0,0,0,0,0 +0,3.258096,0,6.907755,8.294049,0,0,0,0,0 +0,3.258096,0,6.907755,8.294049,0,0,0,0,0 +1,3.258096,0,6.907755,8.294049,0,0,0,0,0 +0,3.258096,0,6.907755,8.294049,0,0,0,0,0 +0,0,0,0,0,0,13.73189,0,1,0 +0,0,0,0,0,0,13.73189,0,1,0 +0,0,0,0,0,0,13.73189,0,1,0 +0,0,0,0,0,0,26.1,0,1,0 +0,0,0,0,0,0,26.1,0,1,0 +0,0,0,0,0,0,26.1,0,1,0 +0,0,0,0,0,0,13.73189,0,1,0 +0,0,0,0,0,0,13.73189,0,1,0 +0,0,0,0,0,0,13.73189,0,1,0 +1,0,0,4.983607,0,0,4.3,0,0,0 +6,0,0,4.983607,0,0,4.3,0,0,0 +2,0,0,4.983607,0,0,4.3,0,0,0 +9,0,0,4.983607,0,0,8.7,0,0,0 +3,0,0,4.983607,0,0,8.7,0,0,0 +3,0,0,4.983607,0,0,8.7,0,0,0 +5,0,0,5.277298,0,0,8.7,1,0,0 +2,0,0,5.277298,0,0,8.7,1,0,0 +3,0,0,5.277298,0,0,8.7,1,0,0 +2,0,0,5.277298,0,.12982,13.73189,0,0,0 +6,0,0,5.277298,0,.12982,13.73189,0,0,0 +2,0,0,5.277298,0,.12982,13.73189,0,0,0 +3,0,0,5.277298,0,0,13.73189,0,0,0 +2,0,0,5.277298,0,0,13.73189,0,0,0 +4,0,0,5.277298,0,0,13.73189,0,0,0 +3,0,0,5.277298,0,0,13.73189,0,0,0 +5,0,0,5.277298,0,0,13.73189,0,0,0 +4,0,0,5.277298,0,0,13.73189,0,0,0 +8,0,0,5.277298,0,0,21.7,0,0,0 +10,0,0,5.277298,0,0,21.7,0,0,0 +10,0,0,5.277298,0,0,21.7,0,0,0 +0,3.931826,0,5.988961,6.682108,0,13.73189,1,0,0 +1,3.931826,0,5.988961,6.682108,0,13.73189,1,0,0 +0,3.931826,0,5.988961,6.682108,0,13.73189,1,0,0 +0,3.931826,0,5.988961,6.682108,0,13.73189,1,0,0 +1,3.931826,0,5.988961,6.682108,0,13.73189,1,0,0 +7,3.931826,0,5.988961,6.682108,0,8.7,1,0,0 +10,3.931826,0,5.988961,6.682108,0,8.7,1,0,0 +4,3.931826,0,5.988961,6.682108,0,8.7,1,0,0 +0,3.931826,0,5.988961,6.682108,0,8.7,1,0,0 +1,3.931826,0,5.988961,6.682108,0,8.7,1,0,0 +9,3.931826,0,0,7.570443,0,13.73189,0,0,0 +1,3.931826,0,0,7.570443,0,13.73189,0,0,0 +2,3.931826,0,0,7.570443,0,13.73189,0,0,0 +4,3.931826,0,0,7.570443,0,13.73189,0,0,0 +0,3.931826,0,0,7.570443,0,13.73189,0,0,0 +1,3.931826,0,0,7.570443,0,13.73189,0,0,0 +0,3.931826,0,0,7.570443,0,13.73189,0,0,0 +0,3.931826,0,0,7.570443,0,13.73189,0,0,0 +0,3.931826,0,0,7.570443,0,13.73189,0,0,0 +0,3.931826,0,0,7.570443,0,13.73189,0,0,0 +8,3.931826,0,0,7.570443,0,13.73189,1,0,0 +5,3.931826,0,0,7.570443,0,13.73189,1,0,0 +0,3.931826,0,0,7.570443,0,13.73189,1,0,0 +0,3.931826,0,0,7.570443,0,13.73189,1,0,0 +0,3.931826,0,0,7.570443,0,13.73189,1,0,0 +3,3.931826,0,0,7.570443,0,13.73189,0,0,0 +1,3.931826,0,0,7.570443,0,13.73189,0,0,0 +0,3.931826,0,0,7.570443,0,13.73189,0,0,0 +0,3.931826,0,0,7.570443,0,13.73189,0,0,0 +0,3.931826,0,0,7.570443,0,13.73189,0,0,0 +9,3.258096,0,6.907755,8.294049,0,13,1,0,0 +4,3.258096,0,6.907755,8.294049,0,13,1,0,0 +8,3.258096,0,6.907755,8.294049,0,13,1,0,0 +1,0,0,0,0,0,13.73189,0,1,0 +3,0,0,0,0,0,13.73189,0,1,0 +4,0,0,0,0,0,13.73189,0,1,0 +0,0,0,0,0,0,13.73189,1,0,0 +0,0,0,0,0,0,13.73189,1,0,0 +7,0,0,0,0,0,13.73189,1,0,0 +3,0,1,6.475433,0,0,13,0,0,0 +6,0,1,6.475433,0,0,13,0,0,0 +3,0,1,6.475433,0,0,13,0,0,0 +0,0,1,6.475433,0,0,0,0,0,0 +9,0,1,6.475433,0,0,0,0,0,0 +0,0,1,6.475433,0,0,0,0,0,0 +5,0,0,0,0,0,13.73189,0,0,0 +12,0,0,0,0,0,13.73189,0,0,0 +44,0,0,0,0,0,13.73189,0,0,0 +56,0,0,0,0,0,13.73189,0,0,0 +38,0,0,0,0,0,13.73189,0,0,0 +10,0,0,0,0,0,8.7,0,0,0 +4,0,0,0,0,0,8.7,0,0,0 +4,0,0,0,0,0,8.7,0,0,0 +1,0,0,0,0,0,8.7,0,0,0 +3,0,0,0,0,0,8.7,0,0,0 +0,0,0,4.094345,0,0,13.73189,0,0,0 +5,0,0,4.094345,0,0,13.73189,0,0,0 +0,0,0,4.094345,0,0,13.73189,0,0,0 +7,0,0,4.094345,0,0,13.73189,0,0,0 +7,0,0,4.094345,0,0,13.73189,0,0,0 +9,0,0,4.094345,0,0,13.73189,0,0,0 +3,0,0,4.094345,0,0,13.73189,0,0,0 +7,0,0,4.094345,0,0,13.73189,0,0,0 +4,0,0,4.094345,0,0,13.73189,0,0,0 +1,4.61512,1,6.907755,0,0,4.3,0,0,0 +5,4.61512,1,6.907755,0,0,4.3,0,0,0 +3,4.61512,1,6.907755,0,0,4.3,0,0,0 +3,4.61512,1,6.907755,0,0,8.7,0,0,0 +5,4.61512,1,6.907755,0,0,8.7,0,0,0 +1,4.61512,1,6.907755,0,0,8.7,0,0,0 +1,4.61512,1,0,0,0,0,0,0,0 +2,4.61512,1,0,0,0,0,0,0,0 +0,4.61512,1,0,0,0,0,0,0,0 +0,4.61512,1,0,0,0,0,0,0,0 +4,0,0,0,0,0,4.3,0,0,0 +5,0,0,0,0,0,4.3,0,0,0 +3,0,0,0,0,0,4.3,0,0,0 +8,0,0,0,0,0,0,0,0,0 +10,0,0,0,0,0,0,0,0,0 +7,0,0,0,0,0,0,0,0,0 +13,0,0,0,0,1,39.1,0,0,0 +10,0,0,0,0,1,39.1,0,0,0 +11,0,0,0,0,1,39.1,0,0,0 +5,3.258096,0,6.907755,8.294049,0,8.7,0,0,0 +3,3.258096,0,6.907755,8.294049,0,8.7,0,0,0 +2,3.258096,0,6.907755,8.294049,0,8.7,0,0,0 +13,3.258096,0,6.907755,8.294049,0,13,1,0,0 +16,3.258096,0,6.907755,8.294049,0,13,1,0,0 +7,3.258096,0,6.907755,8.294049,0,13,1,0,0 +4,3.931826,0,5.988961,6.682108,0,13.73189,1,0,0 +3,3.931826,0,5.988961,6.682108,0,13.73189,1,0,0 +0,3.931826,0,5.988961,6.682108,0,13.73189,1,0,0 +0,4.61512,1,0,0,0,13,0,0,0 +0,4.61512,1,0,0,0,13,0,0,0 +0,4.61512,1,0,0,0,13,0,0,0 +1,4.61512,1,0,0,0,13,0,0,0 +1,4.61512,1,0,0,0,13,0,0,0 +0,4.61512,1,0,0,0,13.73189,0,0,0 +0,4.61512,1,0,0,0,13.73189,0,0,0 +1,4.61512,1,0,0,0,13.73189,0,0,0 +0,4.61512,1,0,0,0,13.73189,0,0,0 +0,4.61512,1,0,0,0,13.73189,0,0,0 +0,4.61512,1,0,0,0,8.7,0,0,0 +0,4.61512,1,0,0,0,8.7,0,0,0 +7,4.61512,1,0,0,0,8.7,0,0,0 +1,4.61512,1,0,0,0,8.7,0,0,0 +3,4.61512,1,0,0,0,8.7,0,0,0 +5,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +8,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +6,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +11,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +5,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +1,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +1,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +1,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +6,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +3,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +6,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +4,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +2,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +3,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +10,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +30,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +18,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +18,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +17,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +14,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +19,3.258096,0,6.907755,8.294049,1,26.1,1,0,0 +23,3.258096,0,6.907755,8.294049,1,26.1,1,0,0 +29,3.258096,0,6.907755,8.294049,1,26.1,1,0,0 +27,3.258096,0,6.907755,8.294049,1,26.1,1,0,0 +25,3.258096,0,6.907755,8.294049,1,26.1,1,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +3,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +3,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +6,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +4,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +3,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +7,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +4,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +5,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +4,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +4,3.258096,0,6.907755,8.294049,0,21.7,1,0,0 +6,3.258096,0,6.907755,8.294049,0,21.7,1,0,0 +2,3.258096,0,6.907755,8.294049,0,21.7,1,0,0 +1,3.258096,0,6.907755,8.294049,0,21.7,1,0,0 +6,3.258096,0,6.907755,8.294049,0,21.7,1,0,0 +5,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +3,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +4,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +0,4.61512,1,6.005269,0,0,13.73189,0,0,0 +0,4.61512,1,6.005269,0,0,13.73189,0,0,0 +0,4.61512,1,6.005269,0,0,13.73189,0,0,0 +0,4.61512,1,6.005269,0,0,13.73189,0,0,0 +1,4.61512,1,6.005269,0,0,13.73189,0,0,0 +0,4.61512,1,6.005269,0,0,13.73189,0,0,0 +0,4.61512,1,6.005269,0,0,13.73189,0,0,0 +0,4.61512,1,6.005269,0,0,13.73189,0,0,0 +0,4.61512,1,6.005269,0,0,13.73189,0,0,0 +0,4.61512,1,6.005269,0,0,13.73189,0,0,0 +0,4.61512,1,6.005269,0,0,13.73189,0,0,0 +1,4.61512,1,6.005269,0,0,13.73189,0,0,0 +1,4.61512,1,6.907755,0,0,8.7,0,0,0 +0,4.61512,1,6.907755,0,0,8.7,0,0,0 +0,4.61512,1,6.907755,0,0,8.7,0,0,0 +0,4.61512,1,6.907755,0,0,13.73189,0,0,0 +0,4.61512,1,6.907755,0,0,13.73189,0,0,0 +0,4.61512,1,6.907755,0,0,13.73189,0,0,0 +0,4.61512,1,6.907755,0,0,8.7,0,0,0 +0,4.61512,1,6.907755,0,0,8.7,0,0,0 +0,4.61512,1,6.907755,0,0,8.7,0,0,0 +0,4.61512,1,6.907755,0,0,13.73189,0,0,0 +0,4.61512,1,6.907755,0,0,13.73189,0,0,0 +0,4.61512,1,6.907755,0,0,13.73189,0,0,0 +0,3.931826,0,6.620073,7.313221,0,4.3,0,0,0 +0,3.931826,0,6.620073,7.313221,0,4.3,0,0,0 +0,3.931826,0,6.620073,7.313221,0,4.3,0,0,0 +1,4.61512,1,6.907755,0,0,17.4,1,0,0 +5,4.61512,1,6.907755,0,0,17.4,1,0,0 +0,4.61512,1,6.907755,0,0,17.4,1,0,0 +0,4.61512,1,6.907755,0,0,17.4,1,0,0 +6,4.61512,1,6.907755,0,0,17.4,1,0,0 +3,4.61512,1,6.907755,0,0,21.7,1,0,0 +5,4.61512,1,6.907755,0,0,21.7,1,0,0 +1,4.61512,1,6.907755,0,0,21.7,1,0,0 +4,4.61512,1,6.907755,0,0,21.7,1,0,0 +1,4.61512,1,6.907755,0,0,21.7,1,0,0 +0,4.61512,1,6.907755,0,0,13.73189,1,0,0 +1,4.61512,1,6.907755,0,0,13.73189,1,0,0 +0,4.61512,1,6.907755,0,0,13.73189,1,0,0 +0,4.61512,1,6.907755,0,0,13.73189,1,0,0 +3,4.61512,1,6.907755,0,0,13.73189,1,0,0 +0,4.61512,1,6.907755,0,0,13.73189,1,0,0 +1,4.61512,1,6.907755,0,0,13.73189,1,0,0 +0,4.61512,1,6.907755,0,0,13.73189,1,0,0 +1,4.61512,1,6.907755,0,0,13.73189,1,0,0 +0,4.61512,1,6.907755,0,0,13.73189,1,0,0 +10,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +3,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +6,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +3,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +3,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +8,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +8,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +9,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +3,0,0,0,0,0,13.73189,0,0,0 +8,0,0,0,0,0,13.73189,0,0,0 +0,0,0,0,0,0,13.73189,0,0,0 +1,0,0,0,0,0,13.73189,0,0,0 +2,0,0,0,0,0,13.73189,0,0,0 +8,0,0,0,0,0,13.73189,0,0,0 +1,0,0,0,0,0,13.73189,0,0,0 +0,0,0,0,0,0,13.73189,0,0,0 +2,0,0,0,0,0,13.73189,0,0,0 +1,0,0,0,0,0,13.73189,0,0,0 +1,0,0,0,0,0,8.7,1,0,0 +0,0,0,0,0,0,8.7,1,0,0 +0,0,0,0,0,0,8.7,1,0,0 +2,0,0,0,0,0,21.7,1,0,0 +2,0,0,0,0,0,21.7,1,0,0 +1,0,0,0,0,0,21.7,1,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +3,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +6,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +3,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +6,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +0,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +8,0,0,4.61512,0,1,13.73189,0,0,0 +2,0,0,4.61512,0,1,13.73189,0,0,0 +6,0,0,4.61512,0,1,13.73189,0,0,0 +4,0,0,4.61512,0,1,13.73189,0,0,0 +3,0,0,4.61512,0,1,13.73189,0,0,0 +7,0,0,4.61512,0,0,13.73189,0,0,0 +6,0,0,4.61512,0,0,13.73189,0,0,0 +0,0,0,4.61512,0,0,13.73189,0,0,0 +0,0,0,4.61512,0,0,13.73189,0,0,0 +10,0,0,4.61512,0,0,13.73189,0,0,0 +9,0,0,4.61512,0,1,13.73189,0,0,0 +6,0,0,4.61512,0,1,13.73189,0,0,0 +9,0,0,4.61512,0,1,13.73189,0,0,0 +12,0,0,4.61512,0,1,13.73189,0,0,0 +0,0,0,4.61512,0,1,13.73189,0,0,0 +15,3.931826,0,5.991465,6.684612,0,8.7,1,0,0 +4,3.931826,0,5.991465,6.684612,0,8.7,1,0,0 +2,3.931826,0,5.991465,6.684612,0,8.7,1,0,0 +2,3.931826,0,5.389072,5.991465,0,13,0,0,0 +1,3.931826,0,5.389072,5.991465,0,13,0,0,0 +1,3.931826,0,5.389072,5.991465,0,13,0,0,0 +7,0,0,0,0,0,0,1,0,0 +2,0,0,0,0,0,0,1,0,0 +4,0,0,0,0,0,0,1,0,0 +1,0,0,0,0,0,0,1,0,0 +2,0,0,0,0,0,0,1,0,0 +4,0,0,0,0,0,13,1,0,0 +4,0,0,0,0,0,13,1,0,0 +8,0,0,0,0,0,13,1,0,0 +4,0,0,0,0,0,13,1,0,0 +4,0,0,0,0,0,13,1,0,0 +7,0,0,0,0,0,13.73189,0,0,0 +9,0,0,0,0,0,13.73189,0,0,0 +12,0,0,0,0,0,13.73189,0,0,0 +4,0,0,0,0,0,13.73189,0,0,0 +9,0,0,0,0,0,13.73189,0,0,0 +1,0,1,5.703783,0,0,13.73189,0,0,0 +0,0,1,5.703783,0,0,13.73189,0,0,0 +2,0,1,5.703783,0,0,13.73189,0,0,0 +2,0,1,5.703783,0,0,13.73189,0,0,0 +1,0,1,5.703783,0,0,13.73189,0,0,0 +4,0,1,5.703783,0,0,13.73189,0,0,0 +3,3.258096,0,6.907755,8.294049,0,13.73189,0,1,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,0,1,0 +4,3.258096,0,6.907755,8.294049,0,13.73189,0,1,0 +2,3.931826,0,6.39693,7.090077,0,13.73189,0,1,0 +5,3.931826,0,6.39693,7.090077,0,13.73189,0,1,0 +4,3.931826,0,6.39693,7.090077,0,13.73189,0,1,0 +4,3.931826,0,6.39693,7.090077,0,13.73189,0,0,0 +1,3.931826,0,6.39693,7.090077,0,13.73189,0,0,0 +0,3.931826,0,6.39693,7.090077,0,13.73189,0,0,0 +5,0,0,4.787492,0,0,13.73189,0,0,0 +11,0,0,4.787492,0,0,13.73189,0,0,0 +41,0,0,4.787492,0,0,13.73189,0,0,0 +2,0,0,4.787492,0,0,13.73189,0,0,0 +3,0,0,4.787492,0,0,13.73189,0,0,0 +3,0,0,4.787492,0,0,13.73189,0,0,0 +7,0,0,4.787492,0,0,13.73189,1,0,0 +10,0,0,4.787492,0,0,13.73189,1,0,0 +10,0,0,4.787492,0,0,13.73189,1,0,0 +7,0,1,0,0,1,13.73189,0,0,1 +6,0,1,0,0,1,13.73189,0,0,1 +11,0,1,0,0,1,13.73189,0,0,1 +4,0,1,0,0,0,13.73189,1,0,0 +7,0,1,0,0,0,13.73189,1,0,0 +6,0,1,0,0,0,13.73189,1,0,0 +2,0,1,0,0,1,13.73189,0,1,0 +2,0,1,0,0,1,13.73189,0,1,0 +4,0,1,0,0,1,13.73189,0,1,0 +2,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +4,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +0,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +2,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +1,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +1,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +3,3.931826,0,6.907755,7.600903,0,17.4,1,0,0 +6,3.931826,0,6.907755,7.600903,0,17.4,1,0,0 +13,3.931826,0,6.907755,7.600903,0,17.4,1,0,0 +0,3.931826,0,6.907755,7.600903,0,0,0,0,0 +0,3.931826,0,6.907755,7.600903,0,0,0,0,0 +0,3.931826,0,6.907755,7.600903,0,0,0,0,0 +0,3.931826,0,6.907755,7.600903,0,4.3,0,1,0 +1,3.931826,0,6.907755,7.600903,0,4.3,0,1,0 +0,3.931826,0,6.907755,7.600903,0,4.3,0,1,0 +2,3.931826,0,6.907755,7.600903,0,4.3,0,1,0 +0,3.931826,0,6.907755,7.600903,0,4.3,0,1,0 +0,3.931826,0,6.907755,7.600903,0,17.4,1,0,0 +0,3.931826,0,6.907755,7.600903,0,17.4,1,0,0 +0,3.931826,0,6.907755,7.600903,0,17.4,1,0,0 +6,3.931826,0,6.907755,7.600903,0,17.4,1,0,0 +2,3.931826,0,6.907755,7.600903,0,17.4,1,0,0 +0,3.931826,0,6.907755,7.600903,.0327869,13.73189,0,0,0 +0,3.931826,0,6.907755,7.600903,.0327869,13.73189,0,0,0 +0,3.931826,0,6.907755,7.600903,.0327869,13.73189,0,0,0 +1,3.931826,0,6.907755,7.600903,.0327869,13.73189,0,0,0 +0,3.931826,0,6.907755,7.600903,.0327869,13.73189,0,0,0 +1,4.61512,1,6.395262,0,0,8.7,1,0,0 +0,4.61512,1,6.395262,0,0,8.7,1,0,0 +2,4.61512,1,6.395262,0,0,8.7,1,0,0 +1,4.61512,1,6.395262,0,1,17.4,0,1,0 +0,4.61512,1,6.395262,0,1,17.4,0,1,0 +2,4.61512,1,6.395262,0,1,17.4,0,1,0 +0,4.61512,1,6.395262,0,0,13.73189,1,0,0 +0,4.61512,1,6.395262,0,0,13.73189,1,0,0 +2,4.61512,1,6.395262,0,0,13.73189,1,0,0 +0,4.61512,1,0,0,0,17.4,1,0,0 +0,4.61512,1,0,0,0,17.4,1,0,0 +0,4.61512,1,0,0,0,17.4,1,0,0 +0,4.61512,1,0,0,0,17.4,1,0,0 +0,4.61512,1,0,0,0,8.7,1,0,0 +0,4.61512,1,0,0,0,8.7,1,0,0 +0,4.61512,1,0,0,0,8.7,1,0,0 +0,4.61512,1,0,0,0,8.7,1,0,0 +0,4.61512,1,0,0,0,8.7,1,0,0 +0,4.61512,1,0,0,0,34.8,0,1,0 +0,4.61512,1,0,0,0,34.8,0,1,0 +0,4.61512,1,0,0,0,34.8,0,1,0 +0,4.61512,1,0,0,0,34.8,0,1,0 +0,4.61512,1,0,0,0,34.8,0,1,0 +0,4.61512,1,0,0,0,4.3,0,0,0 +0,4.61512,1,0,0,0,4.3,0,0,0 +0,4.61512,1,0,0,0,4.3,0,0,0 +0,4.61512,1,0,0,0,4.3,0,0,0 +0,4.61512,1,0,0,0,4.3,0,0,0 +0,4.61512,1,6.907755,0,0,13,0,0,0 +0,4.61512,1,6.907755,0,0,13,0,0,0 +0,4.61512,1,6.907755,0,0,13.73189,1,0,0 +7,3.258096,0,6.907755,8.294049,0,17.4,1,0,0 +5,3.258096,0,6.907755,8.294049,0,17.4,1,0,0 +4,3.258096,0,6.907755,8.294049,0,17.4,1,0,0 +2,3.258096,0,6.907755,8.294049,0,26.1,0,0,0 +2,3.258096,0,6.907755,8.294049,0,26.1,0,0,0 +15,3.258096,0,6.907755,8.294049,0,26.1,0,0,0 +0,3.258096,0,6.907755,8.294049,0,4.3,0,0,0 +2,3.258096,0,6.907755,8.294049,0,4.3,0,0,0 +1,3.258096,0,6.907755,8.294049,0,4.3,0,0,0 +3,4.61512,1,6.308098,0,0,8.7,0,0,0 +1,4.61512,1,6.308098,0,0,8.7,0,0,0 +3,4.61512,1,6.308098,0,0,8.7,0,0,0 +4,4.61512,1,6.308098,0,0,21.7,0,0,0 +3,4.61512,1,6.308098,0,0,21.7,0,0,0 +0,4.61512,1,6.308098,0,0,21.7,0,0,0 +7,4.61512,1,6.907755,0,1,8.7,0,1,0 +8,4.61512,1,6.907755,0,1,8.7,0,1,0 +9,4.61512,1,6.907755,0,1,8.7,0,1,0 +8,4.61512,1,6.907755,0,1,8.7,0,1,0 +7,4.61512,1,6.907755,0,1,8.7,0,1,0 +1,0,0,0,0,0,13.73189,1,0,0 +1,0,0,0,0,0,13.73189,1,0,0 +5,0,0,0,0,0,13.73189,1,0,0 +5,0,0,4.276666,0,0,13.73189,0,0,0 +3,0,0,4.276666,0,0,13.73189,0,0,0 +2,0,0,4.276666,0,0,13.73189,0,0,0 +0,4.61512,1,0,0,0,13.73189,0,1,0 +1,4.61512,1,0,0,0,13.73189,0,1,0 +0,4.61512,1,0,0,0,13.73189,0,1,0 +0,4.61512,1,0,0,0,13.73189,0,1,0 +0,4.61512,1,0,0,0,13.73189,0,1,0 +1,0,0,0,0,1,13.73189,0,1,0 +1,0,0,0,0,1,13.73189,0,1,0 +1,0,0,0,0,1,13.73189,0,1,0 +7,0,0,0,0,1,13.73189,0,1,0 +1,0,0,0,0,1,13.73189,0,1,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +3,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +4,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +3,3.258096,0,6.907755,8.294049,0,13.73189,1,0,0 +0,3.258096,0,5.828946,7.21524,0,13.73189,0,1,0 +0,3.258096,0,5.828946,7.21524,0,13.73189,0,1,0 +3,3.931826,0,6.683361,7.376508,0,13.73189,0,0,0 +0,3.931826,0,6.683361,7.376508,0,13.73189,0,0,0 +0,3.931826,0,6.683361,7.376508,0,13.73189,0,0,0 +8,0,0,0,0,0,13.73189,0,0,0 +9,0,0,0,0,0,13.73189,0,0,0 +3,0,0,0,0,0,13.73189,0,0,0 +2,0,0,0,0,0,13.73189,0,0,0 +6,0,0,0,0,0,13.73189,0,0,0 +2,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +4,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +3,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +1,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +0,3.931826,0,6.907755,7.600903,0,13.73189,0,0,0 +1,0,1,0,0,1,13.73189,0,0,0 +0,0,1,0,0,1,13.73189,0,0,0 +3,0,1,0,0,1,13.73189,0,0,0 +9,0,1,0,0,1,13.73189,0,0,0 +1,0,1,0,0,1,13.73189,0,0,0 +0,4.61512,1,5.645447,0,0,13.73189,0,0,0 +0,4.61512,1,5.645447,0,0,13.73189,0,0,0 +0,4.61512,1,5.645447,0,0,13.73189,0,0,0 +16,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +6,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +9,3.931826,0,6.907755,7.600903,0,13.73189,1,0,0 +3,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +2,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +1,3.258096,0,6.907755,8.294049,0,13.73189,0,0,0 +9,0,0,5.783825,0,.0327869,13.73189,0,0,0 +23,0,0,5.783825,0,.0327869,13.73189,0,0,0 +41,0,0,5.783825,0,.0327869,13.73189,0,0,0 +20,0,0,5.783825,0,.0327869,13.73189,0,0,0 +21,0,0,5.783825,0,.0327869,13.73189,0,0,0 +0,3.931826,0,6.907755,7.600903,.0327869,13.73189,0,0,0 +0,3.931826,0,6.907755,7.600903,.0327869,13.73189,0,0,0 +1,3.931826,0,6.907755,7.600903,.0327869,13.73189,0,0,0 +4,3.931826,0,6.907755,7.600903,.0327869,13.73189,0,0,0 +0,3.931826,0,6.907755,7.600903,.0327869,13.73189,0,0,0 +15,0,0,6.126869,0,.0327869,13.73189,0,0,0 +7,0,0,6.126869,0,.0327869,13.73189,0,0,0 +5,0,0,6.126869,0,.0327869,13.73189,0,0,0 +0,0,0,6.126869,0,.0327869,13.73189,0,0,0 +5,0,1,4.976734,0,.0327869,13.73189,0,0,0 +8,0,1,4.976734,0,.0327869,13.73189,0,0,0 +13,4.61512,1,6.907755,0,.0327869,13.73189,0,0,0 +7,4.61512,1,6.907755,0,.0327869,13.73189,0,0,0 +5,4.61512,1,6.907755,0,.0327869,13.73189,0,0,0 +8,4.61512,1,6.907755,0,.0327869,13.73189,0,0,0 +5,4.61512,1,0,0,.0327869,13.73189,0,0,0 +1,4.61512,1,0,0,.0327869,13.73189,0,0,0 +0,4.61512,1,0,0,.0327869,13.73189,0,0,0 +2,4.61512,1,0,0,.0327869,13.73189,0,0,0 +1,0,0,0,0,.0327869,13.73189,0,0,0 +2,0,0,0,0,.0327869,13.73189,0,0,0 +13,3.931826,0,6.109248,5.786897,.0327869,13.73189,0,0,0 +6,3.931826,0,6.109248,5.786897,.0327869,13.73189,0,0,0 +3,3.931826,0,6.109248,5.786897,.0327869,13.73189,0,0,0 +0,3.931826,0,6.109248,5.786897,.0327869,13.73189,0,0,0 +4,3.258096,0,6.907755,8.294049,.0327869,13.73189,0,0,0 +13,0,0,5.783825,0,.0327869,13.73189,0,0,0 +2,0,0,5.783825,0,.0327869,13.73189,0,0,0 +1,0,0,5.783825,0,.0327869,13.73189,0,0,0 +0,0,0,0,0,.0327869,13.73189,0,0,0 +0,0,0,0,0,.0327869,13.73189,0,0,0 +10,3.931826,0,6.907755,7.600903,.0327869,13.73189,0,0,0 +5,3.931826,0,6.907755,7.600903,.0327869,13.73189,0,0,0 +2,3.931826,0,6.907755,7.600903,.0327869,13.73189,0,0,0 +2,3.931826,0,6.907755,7.600903,.0327869,13.73189,0,0,0 +8,3.258096,0,6.907755,8.294049,.0327869,13.73189,0,0,0 +4,3.258096,0,6.907755,8.294049,.0327869,13.73189,0,0,0 +4,4.61512,1,6.802395,0,.0327869,13.73189,0,0,0 +2,4.61512,1,6.802395,0,.0327869,13.73189,0,0,0 +6,0,0,5.777652,0,.0327869,13.73189,0,0,0 +3,0,0,5.777652,0,.0327869,13.73189,0,0,0 +2,0,0,5.777652,0,.0327869,13.73189,0,0,0 +5,0,0,5.777652,0,.0327869,13.73189,0,0,0 +9,0,0,0,0,.0327869,13.73189,0,0,0 +7,0,0,0,0,.0327869,13.73189,0,0,0 +9,3.258096,0,6.907755,8.294049,.0327869,13.73189,0,0,0 +22,3.258096,0,6.907755,8.294049,.0327869,13.73189,0,0,0 +5,3.258096,0,6.907755,8.294049,.0327869,13.73189,0,0,0 +2,3.258096,0,6.907755,8.294049,.0327869,13.73189,0,0,0 +8,3.258096,0,6.907755,8.294049,.0327869,13.73189,0,0,0 +1,3.258096,0,6.907755,8.294049,.0327869,13.73189,0,0,0 +2,0,0,4.094345,0,.0327869,13.73189,0,0,0 +3,0,0,4.094345,0,.0327869,13.73189,0,0,0 +7,0,0,0,0,.0327869,13.73189,0,0,0 +1,0,0,0,0,.0327869,13.73189,0,0,0 +3,0,0,0,0,.0327869,13.73189,0,0,0 +2,0,0,0,0,.0327869,13.73189,0,0,0 +3,4.61512,1,6.791222,0,.0327869,13.73189,0,0,0 +1,4.61512,1,6.791222,0,.0327869,13.73189,0,0,0 +2,4.61512,1,6.791222,0,.0327869,13.73189,0,0,0 +6,4.61512,1,6.791222,0,.0327869,13.73189,0,0,0 +13,0,0,0,0,.0327869,13.73189,0,0,0 +4,3.931826,0,6.907755,7.600903,.0327869,13.73189,0,0,0 +5,3.258096,0,5.988961,7.375256,.0327869,13.73189,0,0,0 +5,3.258096,0,5.988961,7.375256,.0327869,13.73189,0,0,0 +1,3.258096,0,5.988961,7.375256,.0327869,13.73189,0,0,0 +3,4.61512,1,6.907755,0,.0327869,13.73189,0,0,0 +0,4.61512,1,6.907755,0,.0327869,13.73189,0,0,0 +0,4.61512,1,6.907755,0,.0327869,13.73189,0,0,0 +6,0,0,5.31812,0,.0327869,13.73189,0,0,0 +1,0,0,5.31812,0,.0327869,13.73189,0,0,0 +2,0,0,5.31812,0,.0327869,13.73189,0,0,0 +6,0,0,0,0,.0327869,13.73189,0,0,0 +4,0,0,0,0,.0327869,13.73189,0,0,0 +7,0,0,0,0,.0327869,13.73189,0,0,0 +7,3.931826,0,5.298317,5.991465,.0327869,13.73189,0,0,0 +2,3.931826,0,5.298317,5.991465,.0327869,13.73189,0,0,0 +3,3.931826,0,5.298317,5.991465,.0327869,13.73189,0,0,0 +7,3.931826,0,6.907755,7.600903,.0327869,13.73189,0,0,0 +4,4.61512,1,6.907755,0,.0327869,13.73189,0,0,0 +1,4.61512,1,6.907755,0,.0327869,13.73189,0,0,0 +0,4.61512,1,6.907755,0,.0327869,13.73189,0,0,0 +11,3.258096,0,6.907755,8.294049,.0327869,13.73189,0,0,0 +11,0,0,4.983607,0,.0327869,13.73189,0,0,0 +1,4.61512,1,4.317488,0,.0327869,13.73189,0,0,0 +0,4.61512,1,4.317488,0,.0327869,13.73189,0,0,0 +0,4.61512,1,4.317488,0,.0327869,13.73189,0,0,0 +18,4.61512,1,6.907755,0,.0327869,13.73189,0,0,0 +5,4.61512,1,6.907755,0,.0327869,13.73189,0,0,0 +2,4.61512,1,6.907755,0,.0327869,13.73189,0,0,0 +12,0,0,0,0,.0327869,13.73189,0,0,0 +8,0,0,0,0,.0327869,13.73189,0,0,0 +8,0,1,6.109248,0,.0327869,13.73189,0,0,0 +15,0,0,0,0,.0327869,13.73189,0,0,0 +6,0,0,0,0,.0327869,13.73189,0,0,0 +6,3.931826,0,6.395262,7.088409,.0327869,13.73189,0,0,0 +6,3.931826,0,6.395262,7.088409,.0327869,13.73189,0,0,0 +4,0,0,5.783825,0,.0327869,13.73189,0,0,0 +3,0,0,5.783825,0,.0327869,13.73189,0,0,0 +8,0,0,0,0,.0327869,13.73189,0,0,0 +6,0,0,0,0,.0327869,13.73189,0,0,0 +20,0,0,4.61512,0,.0327869,13.73189,0,0,0 +14,0,0,4.61512,0,.0327869,13.73189,0,0,0 +2,4.61512,1,6.907755,0,.0327869,13.73189,0,0,0 +0,4.61512,1,6.907755,0,.0327869,13.73189,0,0,0 +0,4.61512,1,0,0,.0327869,13.73189,0,0,0 +5,4.61512,1,0,0,.0327869,13.73189,0,0,0 +7,0,0,0,0,.0327869,13.73189,0,0,0 +6,3.258096,0,0,0,.0327869,13.73189,0,0,0 +2,0,1,0,0,.0327869,13.73189,0,0,0 +7,0,0,0,0,.0327869,13.73189,0,0,0 +5,0,0,5.552959,0,.0327869,13.73189,0,0,0 +0,4.61512,1,5.843544,0,.0327869,13.73189,0,0,0 +2,4.61512,1,0,0,.0327869,13.73189,0,0,0 +4,3.258096,0,6.39693,7.783224,.0327869,13.73189,0,0,0 +7,0,1,4.787492,0,.0327869,13.73189,0,0,0 +13,4.61512,1,5.924256,0,.0327869,13.73189,0,0,0 +2,0,1,5.703783,5.755076,0,13.8,0,0,0 +1,0,1,5.703783,5.755076,0,13.8,0,0,0 +0,0,1,5.703783,5.755076,0,13.8,0,0,0 +0,4.564348,0,6.309918,6.361212,0,6.9,1,0,0 +0,4.564348,0,6.309918,6.361212,0,6.9,1,0,0 +3,4.564348,0,6.309918,6.361212,0,6.9,1,0,0 +3,4.564348,0,6.309918,6.361212,0,6.9,1,0,0 +0,4.564348,0,6.309918,6.361212,0,6.9,1,0,0 +1,4.564348,0,6.309918,6.361212,0,10.3,1,0,0 +3,4.564348,0,6.309918,6.361212,0,10.3,1,0,0 +0,4.564348,0,6.309918,6.361212,0,10.3,1,0,0 +0,4.564348,0,6.309918,6.361212,0,10.3,1,0,0 +0,4.564348,0,6.309918,6.361212,0,10.3,1,0,0 +1,0,0,5.187609,0,0,10.3,1,0,0 +0,0,0,5.187609,0,0,10.3,1,0,0 +2,0,0,5.187609,0,0,10.3,1,0,0 +2,0,0,5.187609,0,0,27.6,1,0,0 +3,0,0,5.187609,0,0,27.6,1,0,0 +6,0,0,5.187609,0,0,27.6,1,0,0 +3,0,1,6.109248,6.160541,0,11.84267,0,0,0 +1,0,1,6.109248,6.160541,0,11.84267,0,0,0 +2,0,1,6.109248,6.160541,0,11.84267,0,0,0 +0,0,1,6.109248,6.160541,0,6.9,0,0,0 +0,0,1,6.109248,6.160541,0,6.9,0,0,0 +9,0,1,6.109248,6.160541,0,6.9,0,0,0 +19,0,1,6.109248,6.160541,0,11.84267,0,0,0 +6,0,1,6.109248,6.160541,0,11.84267,0,0,0 +7,0,1,6.109248,6.160541,0,11.84267,0,0,0 +0,0,1,6.109248,6.160541,0,11.84267,0,0,0 +5,0,1,6.109248,6.160541,0,11.84267,0,0,0 +6,0,1,6.109248,6.160541,0,11.84267,0,0,0 +4,0,1,6.109248,6.160541,0,24.1,1,0,0 +5,0,1,6.109248,6.160541,0,24.1,1,0,0 +2,0,1,6.109248,6.160541,0,24.1,1,0,0 +2,3.258096,0,6.907755,8.294049,0,20.7,1,0,0 +0,3.258096,0,6.907755,8.294049,0,20.7,1,0,0 +2,3.258096,0,6.907755,8.294049,0,20.7,1,0,0 +0,3.258096,0,6.907755,8.294049,0,20.7,1,0,0 +2,3.258096,0,6.907755,8.294049,0,20.7,1,0,0 +1,3.258096,0,6.907755,8.294049,0,6.9,0,0,0 +0,3.258096,0,6.907755,8.294049,0,6.9,0,0,0 +0,3.258096,0,6.907755,8.294049,0,6.9,0,0,0 +1,3.258096,0,6.907755,8.294049,0,6.9,0,0,0 +3,3.258096,0,6.907755,8.294049,0,6.9,0,0,0 +1,0,0,0,0,0,6.9,1,0,0 +3,0,0,0,0,0,6.9,1,0,0 +0,0,0,0,0,0,6.9,1,0,0 +6,0,0,0,0,0,6.9,0,0,0 +1,0,0,0,0,0,6.9,0,0,0 +0,0,0,0,0,0,6.9,0,0,0 +0,4.564348,0,4.405865,5.374791,0,0,0,0,0 +0,4.564348,0,4.405865,5.374791,0,0,0,0,0 +0,4.564348,0,4.405865,5.374791,0,0,0,0,0 +1,4.564348,0,4.405865,5.374791,1,20.7,1,0,0 +1,4.564348,0,4.405865,5.374791,1,20.7,1,0,0 +0,4.564348,0,4.405865,5.374791,1,20.7,1,0,0 +2,0,0,0,0,0,6.9,1,0,0 +2,0,0,0,0,0,6.9,1,0,0 +4,0,0,0,0,0,6.9,1,0,0 +14,0,0,0,0,0,13.8,1,0,0 +10,0,0,0,0,0,13.8,1,0,0 +22,0,0,0,0,0,13.8,1,0,0 +1,0,1,0,6.160541,0,10.3,0,0,0 +1,0,1,0,6.160541,0,10.3,0,0,0 +0,0,1,0,6.160541,0,10.3,0,0,0 +3,0,1,0,6.160541,0,0,0,0,0 +2,0,1,0,6.160541,0,0,0,0,0 +0,0,1,0,6.160541,0,0,0,0,0 +1,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +3,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +3,4.564348,0,6.907755,6.959049,0,13.8,1,0,0 +1,4.564348,0,6.907755,6.959049,0,13.8,1,0,0 +1,4.564348,0,6.907755,6.959049,0,13.8,1,0,0 +3,0,1,0,5.061929,0,10.3,0,0,0 +7,0,1,0,5.061929,0,10.3,0,0,0 +13,0,1,0,5.061929,0,10.3,0,0,0 +4,0,0,6.177778,0,0,13.8,0,0,0 +3,0,0,6.177778,0,0,13.8,0,0,0 +3,0,0,6.177778,0,0,13.8,0,0,0 +4,0,0,6.177778,0,0,13.8,0,0,0 +8,0,0,6.177778,0,0,13.8,0,0,0 +2,4.564348,0,5.981894,6.365746,0,11.84267,1,0,0 +0,4.564348,0,5.981894,6.365746,0,11.84267,1,0,0 +1,4.564348,0,5.981894,6.365746,0,11.84267,1,0,0 +2,4.564348,0,5.981894,6.365746,0,10.3,1,0,0 +8,4.564348,0,5.981894,6.365746,0,10.3,1,0,0 +2,4.564348,0,5.981894,6.365746,0,10.3,1,0,0 +0,4.564348,0,5.981894,6.365746,1,27.6,1,0,0 +3,4.564348,0,5.981894,6.365746,1,27.6,1,0,0 +6,4.564348,0,5.981894,6.365746,1,27.6,1,0,0 +3,4.564348,0,5.981894,6.365746,0,11.84267,1,0,0 +6,4.564348,0,5.981894,6.365746,0,11.84267,1,0,0 +1,4.564348,0,5.981894,6.365746,0,11.84267,1,0,0 +0,4.564348,0,5.981894,6.365746,0,11.84267,1,0,0 +2,4.564348,0,5.981894,6.365746,0,11.84267,1,0,0 +3,4.564348,0,5.981894,6.365746,0,11.84267,1,0,0 +0,0,1,5.460734,6.160541,0,11.84267,0,0,0 +1,0,1,5.460734,6.160541,0,11.84267,0,0,0 +3,0,1,5.460734,6.160541,0,11.84267,0,0,0 +8,0,1,5.460734,6.160541,0,11.84267,0,0,0 +3,0,1,5.460734,6.160541,0,11.84267,0,0,0 +1,0,1,5.460734,6.160541,0,11.84267,0,0,0 +3,0,1,5.460734,6.160541,0,11.84267,0,0,0 +2,0,1,5.460734,6.160541,0,11.84267,0,0,0 +1,0,1,5.460734,6.160541,0,11.84267,0,0,0 +2,0,1,5.460734,6.160541,0,11.84267,0,0,0 +1,0,1,5.460734,6.160541,0,3.4,0,0,0 +1,0,1,5.460734,6.160541,0,3.4,0,0,0 +0,0,1,5.460734,6.160541,0,3.4,0,0,0 +1,0,1,5.460734,6.160541,0,3.4,0,0,0 +1,0,1,5.460734,6.160541,0,3.4,0,0,0 +4,0,1,5.460734,6.160541,0,11.84267,0,0,0 +2,0,1,5.460734,6.160541,0,11.84267,0,0,0 +3,0,1,5.460734,6.160541,0,11.84267,0,0,0 +1,0,1,5.460734,6.160541,0,11.84267,0,0,0 +4,0,1,5.460734,6.160541,0,11.84267,0,0,0 +1,0,1,5.460734,6.160541,0,3.4,0,0,0 +1,0,1,5.460734,6.160541,0,3.4,0,0,0 +0,0,1,5.460734,6.160541,0,3.4,0,0,0 +1,0,1,5.460734,6.160541,0,3.4,0,0,0 +1,0,1,5.460734,6.160541,0,3.4,0,0,0 +3,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +2,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +1,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +1,3.258096,0,6.907755,8.294049,0,13.8,1,0,0 +1,3.258096,0,6.907755,8.294049,0,13.8,1,0,0 +0,3.258096,0,6.907755,8.294049,0,13.8,1,0,0 +8,3.258096,0,6.907755,8.294049,0,0,1,0,0 +2,3.258096,0,6.907755,8.294049,0,0,1,0,0 +0,3.258096,0,6.907755,8.294049,0,0,1,0,0 +12,0,1,0,5.061929,1,27.6,1,0,0 +1,0,1,0,5.061929,1,27.6,1,0,0 +5,0,1,0,5.061929,1,27.6,1,0,0 +1,0,1,6.39693,6.160541,0,11.84267,0,0,0 +0,0,1,6.39693,6.160541,0,11.84267,0,0,0 +2,0,1,6.39693,6.160541,1,10.3,1,0,0 +1,0,1,6.39693,6.160541,1,10.3,1,0,0 +7,0,1,6.39693,6.160541,1,34.5,0,0,0 +2,0,1,6.39693,6.160541,1,34.5,0,0,0 +9,0,0,0,0,0,10.3,1,0,0 +3,0,0,0,0,0,10.3,1,0,0 +1,0,0,0,0,0,10.3,1,0,0 +1,0,0,0,0,0,11.84267,0,0,0 +1,0,0,0,0,0,11.84267,0,0,0 +1,0,0,0,0,0,11.84267,0,0,0 +1,0,0,0,0,0,6.9,0,0,0 +0,0,0,0,0,0,6.9,0,0,0 +3,0,0,0,0,0,6.9,0,0,0 +0,0,0,0,0,0,11.84267,0,0,0 +1,0,0,0,0,0,11.84267,0,0,0 +1,0,0,0,0,0,11.84267,0,0,0 +0,3.258096,0,6.907755,8.294049,0,6.9,0,0,0 +2,3.258096,0,6.907755,8.294049,0,6.9,0,0,0 +0,3.258096,0,6.907755,8.294049,0,6.9,0,0,0 +3,3.258096,0,6.907755,8.294049,0,3.4,1,0,0 +0,3.258096,0,6.907755,8.294049,0,3.4,1,0,0 +0,3.258096,0,6.907755,8.294049,0,3.4,1,0,0 +1,3.258096,0,6.907755,8.294049,0,10.3,1,0,0 +3,3.258096,0,6.907755,8.294049,0,10.3,1,0,0 +0,3.258096,0,6.907755,8.294049,0,10.3,1,0,0 +3,0,0,4.730568,0,0,3.4,0,0,0 +1,0,0,4.730568,0,0,3.4,0,0,0 +1,0,0,4.730568,0,0,3.4,0,0,0 +7,0,0,5.330978,0,0,11.84267,0,0,0 +7,0,0,5.330978,0,0,11.84267,0,0,0 +7,0,0,5.330978,0,0,11.84267,0,0,0 +11,0,0,5.330978,0,0,11.84267,0,0,0 +6,0,0,5.330978,0,0,11.84267,0,0,0 +2,0,0,5.330978,0,0,0,0,0,0 +2,0,0,5.330978,0,0,0,0,0,0 +4,0,0,5.330978,0,0,0,0,0,0 +1,0,0,5.330978,0,0,0,0,0,0 +4,0,0,5.330978,0,0,0,0,0,0 +1,0,0,5.330978,0,0,3.4,0,0,0 +2,0,0,5.330978,0,0,3.4,0,0,0 +7,0,0,5.330978,0,0,3.4,0,0,0 +5,0,0,5.330978,0,0,3.4,0,0,0 +7,0,0,5.330978,0,0,3.4,0,0,0 +12,0,0,0,0,0,31,0,0,0 +6,0,0,0,0,0,31,0,0,0 +7,0,0,0,0,0,31,0,0,0 +7,0,0,0,0,0,31,0,0,0 +8,0,0,0,0,0,31,0,0,0 +7,0,0,0,0,1,31,0,0,0 +7,0,0,0,0,1,31,0,0,0 +5,0,0,0,0,1,31,0,0,0 +5,0,0,0,0,1,31,0,0,0 +6,0,0,0,0,1,31,0,0,0 +2,0,0,0,0,0,3.4,0,0,0 +1,0,0,0,0,0,3.4,0,0,0 +1,0,0,0,0,0,3.4,0,0,0 +6,0,0,0,0,0,0,0,0,0 +7,0,0,0,0,0,0,0,0,0 +8,0,0,0,0,0,0,0,0,0 +3,0,0,0,0,0,11.84267,0,0,0 +4,0,0,0,0,0,11.84267,0,0,0 +3,0,0,0,0,0,11.84267,0,0,0 +8,0,0,0,0,0,11.84267,0,0,0 +4,0,0,0,0,0,11.84267,0,0,0 +4,0,0,0,0,0,11.84267,0,0,0 +0,0,0,0,0,0,6.9,0,0,0 +0,0,0,0,0,0,6.9,0,0,0 +0,0,0,0,0,0,6.9,0,0,0 +1,0,0,5.641907,0,0,11.84267,0,0,0 +12,0,0,5.641907,0,0,11.84267,0,0,0 +14,0,0,5.641907,0,0,11.84267,0,0,0 +3,0,0,5.641907,0,1,17.2,0,0,0 +3,0,0,5.641907,0,1,17.2,0,0,0 +2,0,0,5.641907,0,1,17.2,0,0,0 +3,0,0,5.641907,0,0,13.8,0,0,0 +3,0,0,5.641907,0,0,13.8,0,0,0 +1,0,0,5.641907,0,0,13.8,0,0,0 +4,0,0,0,0,0,11.84267,0,0,0 +4,0,0,0,0,0,11.84267,0,0,0 +5,0,0,0,0,0,11.84267,0,0,0 +1,0,0,0,0,0,6.9,0,0,0 +0,0,0,0,0,0,6.9,0,0,0 +0,0,0,0,0,0,6.9,0,0,0 +1,0,0,0,0,0,3.4,0,0,0 +1,0,0,0,0,0,3.4,0,0,0 +3,0,0,0,0,0,3.4,0,0,0 +3,0,0,0,0,0,11.84267,0,0,0 +3,0,0,0,0,0,11.84267,0,0,0 +5,0,0,0,0,0,11.84267,0,0,0 +4,0,1,5.617753,6.160541,0,11.84267,0,0,0 +0,0,1,5.617753,6.160541,0,11.84267,0,0,0 +0,0,1,5.617753,6.160541,0,11.84267,0,0,0 +0,0,1,5.617753,6.160541,0,11.84267,0,0,0 +5,0,1,5.617753,6.160541,0,11.84267,0,0,0 +2,0,1,5.617753,6.160541,0,6.9,0,0,0 +3,0,1,5.617753,6.160541,0,6.9,0,0,0 +1,0,1,5.617753,6.160541,0,6.9,0,0,0 +2,0,1,5.617753,6.160541,0,6.9,0,0,0 +0,0,1,5.617753,6.160541,0,6.9,0,0,0 +8,0,1,5.617753,6.160541,1,10.3,0,0,0 +3,0,1,5.617753,6.160541,1,10.3,0,0,0 +1,0,1,5.617753,6.160541,1,10.3,0,0,0 +1,0,1,5.617753,6.160541,1,10.3,0,0,0 +3,0,1,5.617753,6.160541,1,10.3,0,0,0 +5,0,0,0,0,0,6.9,0,0,0 +6,0,0,0,0,0,6.9,0,0,0 +5,0,0,0,0,0,6.9,0,0,0 +6,0,0,0,0,0,17.2,1,0,0 +27,0,0,0,0,0,17.2,1,0,0 +15,0,0,0,0,0,17.2,1,0,0 +1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0 +4,0,0,0,0,0,0,0,0,0 +2,0,0,5.878744,0,0,11.84267,1,0,0 +10,0,0,5.878744,0,0,11.84267,1,0,0 +6,0,0,5.878744,0,0,11.84267,1,0,0 +3,0,0,5.878744,0,0,13.8,1,0,0 +7,0,0,5.878744,0,0,13.8,1,0,0 +3,0,0,5.878744,0,0,13.8,1,0,0 +1,0,0,5.878744,0,0,6.9,1,0,0 +5,0,0,5.878744,0,0,6.9,1,0,0 +5,0,0,5.878744,0,0,6.9,1,0,0 +9,0,0,5.878744,0,0,11.84267,1,0,0 +8,0,0,5.878744,0,0,11.84267,1,0,0 +4,0,0,5.878744,0,0,11.84267,1,0,0 +0,4.564348,0,6.547474,6.943732,0,0,0,0,0 +3,4.564348,0,6.547474,6.943732,0,0,0,0,0 +0,4.564348,0,6.547474,6.943732,0,0,0,0,0 +0,4.564348,0,6.547474,6.943732,0,0,0,0,0 +0,4.564348,0,6.547474,6.943732,0,0,0,0,0 +0,4.564348,0,6.547474,6.943732,0,17.2,0,0,0 +2,4.564348,0,6.547474,6.943732,0,17.2,0,0,0 +0,4.564348,0,6.547474,6.943732,0,17.2,0,0,0 +4,4.564348,0,6.547474,6.943732,0,17.2,0,0,0 +1,4.564348,0,6.547474,6.943732,0,17.2,0,0,0 +1,3.258096,0,6.804725,8.19102,0,10.3,1,0,0 +1,3.258096,0,6.804725,8.19102,0,10.3,1,0,0 +1,3.258096,0,6.804725,8.19102,0,10.3,1,0,0 +4,3.258096,0,6.804725,8.19102,0,6.9,0,0,0 +2,3.258096,0,6.804725,8.19102,0,6.9,0,0,0 +0,3.258096,0,6.804725,8.19102,0,6.9,0,0,0 +1,0,1,6.109248,6.160541,0,11.84267,0,0,0 +1,0,1,6.109248,6.160541,0,11.84267,0,0,0 +0,0,1,6.109248,6.160541,0,11.84267,0,0,0 +0,0,1,6.109248,6.160541,0,11.84267,0,0,0 +0,0,1,6.109248,6.160541,0,11.84267,0,0,0 +3,0,1,6.109248,6.160541,0,11.84267,0,0,0 +5,0,1,6.109248,6.160541,0,6.9,0,0,0 +0,0,1,6.109248,6.160541,0,6.9,0,0,0 +1,0,1,6.109248,6.160541,0,6.9,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +6,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +1,3.258096,0,5.298317,6.684612,0,27.6,0,0,0 +0,3.258096,0,5.298317,6.684612,0,27.6,0,0,0 +19,3.258096,0,5.298317,6.684612,0,27.6,0,0,0 +30,3.258096,0,5.298317,6.684612,0,27.6,0,0,0 +18,3.258096,0,5.298317,6.684612,0,27.6,0,0,0 +1,0,0,0,0,0,11.84267,0,0,0 +1,0,0,0,0,0,11.84267,0,0,0 +1,0,0,0,0,0,11.84267,0,0,0 +1,0,0,0,0,0,11.84267,0,0,0 +28,0,0,0,0,1,17.2,1,0,0 +20,0,0,0,0,1,17.2,1,0,0 +2,0,0,0,0,1,17.2,1,0,0 +0,0,0,0,0,1,17.2,1,0,0 +0,0,0,0,0,1,17.2,1,0,0 +4,0,0,0,0,0,10.3,0,0,0 +1,0,0,0,0,0,10.3,0,0,0 +3,0,0,0,0,0,10.3,0,0,0 +0,0,0,0,0,0,10.3,0,0,0 +2,0,0,0,0,0,10.3,0,0,0 +1,0,0,0,0,0,11.84267,0,0,0 +7,0,0,0,0,0,11.84267,0,0,0 +0,0,0,0,0,0,11.84267,0,0,0 +1,0,0,0,0,0,11.84267,0,0,0 +1,0,0,0,0,0,11.84267,0,0,0 +0,0,0,0,0,0,11.84267,0,0,0 +0,0,0,0,0,0,11.84267,0,0,0 +1,0,0,0,0,0,11.84267,0,0,0 +2,0,0,0,0,0,11.84267,0,0,0 +11,0,1,5.703783,5.755076,0,3.4,0,0,0 +7,0,1,5.703783,5.755076,0,3.4,0,0,0 +7,0,1,5.703783,5.755076,0,3.4,0,0,0 +3,0,1,5.703783,5.755076,0,10.3,0,0,0 +1,0,1,5.703783,5.755076,0,10.3,0,0,0 +8,0,1,5.703783,5.755076,0,10.3,0,0,0 +4,3.258096,0,6.856462,8.242756,0,6.9,0,0,0 +2,3.258096,0,6.856462,8.242756,0,6.9,0,0,0 +2,3.258096,0,6.856462,8.242756,0,6.9,0,0,0 +2,3.258096,0,6.856462,8.242756,0,6.9,0,0,0 +5,3.258096,0,6.856462,8.242756,0,6.9,0,0,0 +3,3.258096,0,6.907755,8.294049,0,24.1,0,0,0 +1,3.258096,0,6.907755,8.294049,0,24.1,0,0,0 +0,3.258096,0,6.907755,8.294049,0,24.1,0,0,0 +2,3.258096,0,6.907755,8.294049,0,11.84267,1,0,0 +1,3.258096,0,6.907755,8.294049,0,11.84267,1,0,0 +1,3.258096,0,6.907755,8.294049,0,11.84267,1,0,0 +0,3.258096,0,6.907755,8.294049,0,17.2,0,0,0 +0,3.258096,0,6.907755,8.294049,0,17.2,0,0,0 +2,3.258096,0,6.907755,8.294049,0,17.2,0,0,0 +0,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +1,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +1,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +1,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +5,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +2,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +1,0,0,6.762128,0,0,6.9,0,0,0 +2,0,0,6.762128,0,0,6.9,0,0,0 +2,0,0,6.762128,0,0,6.9,0,0,0 +0,0,0,6.762128,0,0,0,0,0,0 +2,0,0,6.762128,0,0,0,0,0,0 +2,0,0,6.762128,0,0,0,0,0,0 +3,3.258096,0,5.808503,7.194797,0,13.8,0,0,0 +3,3.258096,0,5.808503,7.194797,0,13.8,0,0,0 +3,3.258096,0,5.808503,7.194797,0,13.8,0,0,0 +2,0,0,6.099332,0,0,11.84267,0,0,0 +2,0,0,6.099332,0,0,11.84267,0,0,0 +5,0,0,6.099332,0,0,11.84267,0,0,0 +7,0,0,6.099332,0,0,11.84267,0,0,0 +12,0,0,6.099332,0,0,11.84267,0,0,0 +6,0,0,6.099332,0,0,11.84267,0,0,0 +4,0,0,6.099332,0,0,11.84267,0,0,0 +3,0,0,6.099332,0,0,11.84267,0,0,0 +4,0,0,6.099332,0,0,11.84267,0,0,0 +11,0,0,6.099332,0,0,10.3,0,0,0 +9,0,0,6.099332,0,0,10.3,0,0,0 +5,0,0,6.099332,0,0,10.3,0,0,0 +2,0,0,6.099332,0,0,11.84267,0,0,0 +2,0,0,6.099332,0,0,11.84267,0,0,0 +1,0,0,6.099332,0,0,11.84267,0,0,0 +3,0,0,6.099332,0,0,20.7,0,0,0 +3,0,0,6.099332,0,0,20.7,0,0,0 +6,0,0,6.099332,0,0,20.7,0,0,0 +8,0,0,5.680172,0,1,41.4,0,1,0 +8,0,0,5.680172,0,1,41.4,0,1,0 +13,0,0,5.680172,0,1,41.4,0,1,0 +31,0,0,0,0,0,3.4,0,0,0 +33,0,0,0,0,0,3.4,0,0,0 +11,0,0,0,0,0,3.4,0,0,0 +3,0,0,0,0,0,3.4,0,0,0 +11,0,0,0,0,0,3.4,0,0,0 +3,0,0,0,0,0,3.4,0,0,0 +1,0,0,0,0,0,17.2,1,0,0 +3,0,0,0,0,0,17.2,1,0,0 +2,0,0,0,0,0,17.2,1,0,0 +3,0,1,5.992264,5.755076,0,13.8,1,0,0 +0,0,1,5.992264,5.755076,0,13.8,1,0,0 +3,0,1,5.992264,5.755076,0,13.8,1,0,0 +10,0,1,5.992264,5.755076,1,31,1,0,0 +3,0,1,5.992264,5.755076,1,31,1,0,0 +9,0,1,5.992264,5.755076,1,31,1,0,0 +5,0,0,0,0,1,34.5,0,0,0 +8,0,0,0,0,1,34.5,0,0,0 +16,0,0,0,0,1,34.5,0,0,0 +2,4.564348,0,6.393591,6.445051,1,13.8,1,0,0 +0,4.564348,0,6.393591,6.445051,1,13.8,1,0,0 +0,4.564348,0,6.393591,6.445051,1,13.8,1,0,0 +1,4.564348,0,6.393591,6.445051,0,10.3,0,0,0 +1,4.564348,0,6.393591,6.445051,0,10.3,0,0,0 +3,4.564348,0,6.393591,6.445051,0,10.3,0,0,0 +0,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +3,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +0,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +0,3.258096,0,6.907755,8.294049,0,3.4,0,0,0 +0,3.258096,0,6.907755,8.294049,0,3.4,0,0,0 +0,3.258096,0,6.907755,8.294049,0,3.4,0,0,0 +0,3.258096,0,6.907755,8.294049,0,3.4,0,0,0 +0,3.258096,0,6.907755,8.294049,0,3.4,0,0,0 +1,3.258096,0,6.907755,8.294049,0,3.4,0,0,0 +0,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +1,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +3,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +0,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +2,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +1,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +2,0,1,5.010635,5.061929,0,0,0,0,0 +8,0,1,5.010635,5.061929,0,0,0,0,0 +2,0,1,5.010635,5.061929,0,0,0,0,0 +2,4.564348,0,5.926926,5.97822,0,11.84267,0,0,0 +0,4.564348,0,5.926926,5.97822,0,11.84267,0,0,0 +0,4.564348,0,5.926926,5.97822,0,11.84267,0,0,0 +0,4.564348,0,5.926926,5.97822,0,11.84267,0,0,0 +1,4.564348,0,5.926926,5.97822,0,11.84267,0,0,0 +0,4.564348,0,5.926926,5.97822,0,11.84267,0,0,0 +0,4.564348,0,5.926926,5.97822,0,11.84267,0,0,0 +0,4.564348,0,5.926926,5.97822,0,11.84267,0,0,0 +0,4.564348,0,5.926926,5.97822,0,11.84267,0,0,0 +1,4.564348,0,5.926926,5.97822,0,11.84267,0,0,0 +1,4.564348,0,5.926926,5.97822,0,0,1,0,0 +0,4.564348,0,5.926926,5.97822,0,0,1,0,0 +0,4.564348,0,5.926926,5.97822,0,0,1,0,0 +5,4.564348,0,5.926926,5.97822,0,0,1,0,0 +2,4.564348,0,5.926926,5.97822,0,0,1,0,0 +14,3.258096,0,6.907755,8.294049,0,20.7,0,0,0 +3,3.258096,0,6.907755,8.294049,0,20.7,0,0,0 +6,3.258096,0,6.907755,8.294049,0,20.7,0,0,0 +2,3.258096,0,6.907755,8.294049,0,20.7,0,0,0 +2,3.258096,0,6.907755,8.294049,0,20.7,0,0,0 +4,3.258096,0,6.907755,8.294049,0,20.7,0,0,0 +5,0,0,6.45331,0,0,10.3,1,0,0 +14,0,0,6.45331,0,0,10.3,1,0,0 +13,0,0,6.45331,0,0,10.3,1,0,0 +9,0,0,6.45331,0,0,10.3,1,0,0 +13,0,0,6.45331,0,0,10.3,1,0,0 +9,0,0,6.45331,0,1,13.8,0,0,1 +10,0,0,6.45331,0,1,13.8,0,0,1 +19,0,0,6.45331,0,1,13.8,0,0,1 +13,0,0,6.45331,0,1,13.8,0,0,1 +19,0,0,6.45331,0,1,13.8,0,0,1 +1,0,1,6.109248,6.160541,0,11.84267,0,0,0 +3,0,1,6.109248,6.160541,0,11.84267,0,0,0 +1,0,1,6.109248,6.160541,0,11.84267,0,0,0 +0,0,1,6.109248,6.160541,0,11.84267,0,0,0 +2,0,1,6.109248,6.160541,0,11.84267,0,0,0 +0,0,1,6.109248,6.160541,0,11.84267,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +6,0,1,6.109248,6.160541,0,24.1,0,0,0 +0,0,1,6.109248,6.160541,0,24.1,0,0,0 +1,0,1,6.109248,6.160541,0,24.1,0,0,0 +5,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +4,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +4,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +2,4.564348,0,6.907755,6.959049,0,17.2,0,0,0 +2,4.564348,0,6.907755,6.959049,0,17.2,0,0,0 +1,4.564348,0,6.907755,6.959049,0,17.2,0,0,0 +0,0,1,5.010635,5.061929,0,13.8,1,0,0 +0,0,1,5.010635,5.061929,0,13.8,1,0,0 +2,0,1,5.010635,5.061929,0,13.8,1,0,0 +2,0,1,5.010635,5.061929,0,13.8,1,0,0 +0,0,1,5.010635,5.061929,0,13.8,1,0,0 +4,3.258096,0,5.273,6.659294,0,24.1,1,0,0 +3,3.258096,0,5.273,6.659294,0,24.1,1,0,0 +7,3.258096,0,5.273,6.659294,0,24.1,1,0,0 +4,0,0,0,0,0,3.4,0,0,0 +5,0,0,0,0,0,3.4,0,0,0 +4,0,0,0,0,0,3.4,0,0,0 +11,0,1,3.688879,5.061929,0,20.7,0,0,0 +1,0,1,3.688879,5.061929,0,20.7,0,0,0 +1,0,1,3.688879,5.061929,0,20.7,0,0,0 +2,4.564348,0,6.907755,6.959049,0,24.1,1,0,0 +4,4.564348,0,6.907755,6.959049,0,24.1,1,0,0 +13,4.564348,0,6.907755,6.959049,0,24.1,1,0,0 +12,4.564348,0,6.907755,6.959049,0,24.1,1,0,0 +4,4.564348,0,6.907755,6.959049,0,24.1,1,0,0 +1,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +1,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +2,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +4,0,0,0,0,1,31,1,0,0 +1,0,0,0,0,1,31,1,0,0 +2,0,0,0,0,1,31,1,0,0 +8,0,0,0,0,1,31,1,0,0 +3,0,0,0,0,1,31,1,0,0 +2,0,0,0,0,0,3.4,1,0,0 +11,0,0,0,0,0,3.4,1,0,0 +3,0,0,0,0,0,3.4,1,0,0 +10,0,0,0,0,0,3.4,1,0,0 +8,0,0,0,0,0,3.4,1,0,0 +7,0,0,0,0,0,13.8,0,0,0 +2,0,0,0,0,0,13.8,0,0,0 +5,0,0,0,0,0,13.8,0,0,0 +7,0,0,0,0,0,13.8,0,0,0 +9,0,0,0,0,0,13.8,0,0,0 +0,0,0,4.59875,0,0,11.84267,0,0,0 +0,0,0,4.59875,0,0,11.84267,0,0,0 +1,0,0,4.59875,0,0,11.84267,0,0,0 +4,0,0,4.59875,0,0,3.4,0,0,0 +1,0,0,4.59875,0,0,3.4,0,0,0 +3,0,0,4.59875,0,0,3.4,0,0,0 +5,0,0,4.59875,0,0,10.3,0,0,0 +1,0,0,4.59875,0,0,10.3,0,0,0 +1,0,0,4.59875,0,0,10.3,0,0,0 +1,0,0,4.59875,0,0,11.84267,1,0,0 +1,0,0,4.59875,0,0,11.84267,1,0,0 +1,0,0,4.59875,0,0,11.84267,1,0,0 +0,0,1,0,5.061929,1,20.7,0,0,0 +0,0,1,0,5.061929,1,20.7,0,0,0 +0,0,1,0,5.061929,1,20.7,0,0,0 +1,0,1,0,5.061929,1,20.7,0,0,0 +2,0,1,0,5.061929,1,20.7,0,0,0 +0,0,1,0,6.160541,0,11.84267,0,0,0 +1,0,1,0,6.160541,0,11.84267,0,0,0 +0,0,1,0,6.160541,0,11.84267,0,0,0 +1,0,1,0,6.160541,0,13.8,0,0,0 +2,0,1,0,6.160541,0,13.8,0,0,0 +2,0,1,0,6.160541,0,13.8,0,0,0 +1,0,1,0,6.160541,0,11.84267,0,0,0 +2,0,1,0,6.160541,0,11.84267,0,0,0 +2,0,1,0,6.160541,0,11.84267,0,0,0 +0,0,1,0,6.160541,0,11.84267,0,0,0 +1,0,1,0,6.160541,0,11.84267,0,0,0 +0,0,1,0,6.160541,0,11.84267,0,0,0 +1,0,1,0,6.160541,0,10.3,1,0,0 +0,0,1,0,6.160541,0,10.3,1,0,0 +1,0,1,0,6.160541,0,10.3,1,0,0 +4,3.258096,0,6.907755,8.294049,0,0,0,0,0 +1,3.258096,0,6.907755,8.294049,0,0,0,0,0 +3,3.258096,0,6.907755,8.294049,0,0,0,0,0 +6,3.258096,0,6.907755,8.294049,0,13.8,1,0,0 +0,3.258096,0,6.907755,8.294049,0,13.8,1,0,0 +5,3.258096,0,6.907755,8.294049,0,13.8,1,0,0 +35,3.258096,0,6.907755,8.294049,0,13.8,0,0,0 +25,3.258096,0,6.907755,8.294049,0,13.8,0,0,0 +37,4.564348,0,6.907755,6.959049,0,11.84267,1,0,0 +23,4.564348,0,6.907755,6.959049,0,11.84267,1,0,0 +15,4.564348,0,6.907755,6.959049,0,11.84267,1,0,0 +0,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +0,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +0,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +0,4.564348,0,6.907755,6.959049,1,3.4,1,0,0 +1,4.564348,0,6.907755,6.959049,1,3.4,1,0,0 +0,4.564348,0,6.907755,6.959049,1,3.4,1,0,0 +0,4.564348,0,6.907755,6.959049,0,17.2,1,0,0 +1,4.564348,0,6.907755,6.959049,0,17.2,1,0,0 +1,4.564348,0,6.907755,6.959049,0,17.2,1,0,0 +0,4.564348,0,5.93648,6.735905,0,6.9,0,0,0 +0,4.564348,0,5.93648,6.735905,0,6.9,0,0,0 +0,4.564348,0,5.93648,6.735905,0,6.9,0,0,0 +2,3.258096,0,6.907755,8.294049,0,10.3,1,0,0 +6,3.258096,0,6.907755,8.294049,0,10.3,1,0,0 +0,3.258096,0,6.907755,8.294049,0,10.3,1,0,0 +4,3.258096,0,6.907755,8.294049,0,10.3,1,0,0 +1,3.258096,0,6.907755,8.294049,0,10.3,1,0,0 +1,0,1,5.703783,6.160541,0,11.84267,0,0,0 +1,0,1,5.703783,6.160541,0,11.84267,0,0,0 +1,0,1,5.703783,6.160541,0,11.84267,0,0,0 +0,0,1,5.703783,6.160541,0,6.9,0,0,0 +2,0,1,5.703783,6.160541,0,6.9,0,0,0 +1,0,1,5.703783,6.160541,0,6.9,0,0,0 +1,0,1,5.703783,6.160541,0,6.9,0,0,0 +2,0,1,5.703783,6.160541,0,6.9,0,0,0 +0,0,1,5.703783,6.160541,0,6.9,0,0,0 +10,0,1,5.05529,5.755076,0,10.3,0,1,0 +3,0,1,5.05529,5.755076,0,10.3,0,1,0 +2,0,1,5.05529,5.755076,0,17.2,0,0,0 +0,0,1,5.05529,5.755076,0,17.2,0,0,0 +3,3.258096,0,6.907755,8.294049,0,17.2,0,0,0 +5,3.258096,0,6.907755,8.294049,0,17.2,0,0,0 +3,3.258096,0,6.907755,8.294049,0,17.2,0,0,0 +2,3.258096,0,6.907755,8.294049,0,6.9,1,0,0 +1,3.258096,0,6.907755,8.294049,0,6.9,1,0,0 +3,3.258096,0,6.907755,8.294049,0,6.9,1,0,0 +11,3.258096,0,6.907755,8.294049,0,11.84267,1,0,0 +6,3.258096,0,6.907755,8.294049,0,11.84267,1,0,0 +2,3.258096,0,6.907755,8.294049,0,11.84267,1,0,0 +3,3.258096,0,6.574629,7.960924,0,11.84267,0,0,0 +0,3.258096,0,6.574629,7.960924,0,11.84267,0,0,0 +0,3.258096,0,6.574629,7.960924,0,11.84267,0,0,0 +0,3.258096,0,6.574629,7.960924,0,11.84267,0,0,0 +0,3.258096,0,6.574629,7.960924,0,11.84267,0,0,0 +11,3.258096,0,6.574629,7.960924,1,10.3,0,0,0 +1,3.258096,0,6.574629,7.960924,1,10.3,0,0,0 +0,3.258096,0,6.574629,7.960924,1,10.3,0,0,0 +0,3.258096,0,6.574629,7.960924,1,10.3,0,0,0 +0,3.258096,0,6.574629,7.960924,1,10.3,0,0,0 +1,3.258096,0,6.574629,7.960924,0,11.84267,0,0,0 +0,3.258096,0,6.574629,7.960924,0,11.84267,0,0,0 +0,3.258096,0,6.574629,7.960924,0,11.84267,0,0,0 +0,3.258096,0,6.574629,7.960924,0,11.84267,0,0,0 +0,3.258096,0,6.574629,7.960924,0,11.84267,0,0,0 +24,0,0,3.696848,0,0,10.3,0,1,0 +11,0,0,3.696848,0,0,10.3,0,1,0 +4,0,0,3.696848,0,0,10.3,0,1,0 +6,0,0,3.696848,0,0,13.8,0,1,0 +4,0,0,3.696848,0,0,13.8,0,1,0 +3,0,0,3.696848,0,0,13.8,0,1,0 +7,3.258096,0,6.115671,7.501966,0,11.84267,1,0,0 +8,3.258096,0,6.115671,7.501966,0,11.84267,1,0,0 +3,3.258096,0,6.115671,7.501966,0,11.84267,1,0,0 +2,3.258096,0,6.115671,7.501966,0,27.6,1,0,0 +3,3.258096,0,6.115671,7.501966,0,27.6,1,0,0 +1,3.258096,0,6.115671,7.501966,0,27.6,1,0,0 +2,3.258096,0,6.115671,7.501966,0,10.3,1,0,0 +0,3.258096,0,6.115671,7.501966,0,10.3,1,0,0 +1,3.258096,0,6.115671,7.501966,0,10.3,1,0,0 +0,0,0,0,0,0,11.84267,0,0,0 +0,0,0,0,0,0,11.84267,0,0,0 +3,0,0,0,0,0,11.84267,0,0,0 +2,0,0,0,0,0,0,0,0,0 +2,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +1,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +3,4.564348,0,5.947513,5.998806,1,27.6,0,1,0 +0,0,1,0,5.061929,0,6.9,0,0,0 +0,0,1,0,5.061929,0,6.9,0,0,0 +3,0,1,0,5.061929,0,6.9,0,0,0 +0,0,1,6.109248,6.160541,0,11.84267,1,0,0 +1,0,1,6.109248,6.160541,0,11.84267,1,0,0 +0,0,1,6.109248,6.160541,0,11.84267,1,0,0 +1,0,1,6.109248,6.160541,0,6.9,1,0,0 +1,0,1,6.109248,6.160541,0,6.9,1,0,0 +1,0,1,6.109248,6.160541,0,6.9,1,0,0 +0,0,1,6.109248,6.160541,0,11.84267,1,0,0 +2,0,1,6.109248,6.160541,0,11.84267,1,0,0 +2,0,1,6.109248,6.160541,0,11.84267,1,0,0 +0,0,1,6.109248,6.160541,0,17.2,1,0,0 +0,0,1,6.109248,6.160541,0,17.2,1,0,0 +0,0,1,6.109248,6.160541,0,17.2,1,0,0 +0,0,1,6.109248,6.160541,0,11.84267,1,0,0 +1,0,1,6.109248,6.160541,0,11.84267,1,0,0 +0,0,1,6.109248,6.160541,0,11.84267,1,0,0 +2,0,0,0,0,0,11.84267,0,0,0 +9,0,0,0,0,0,11.84267,0,0,0 +14,0,0,0,0,0,11.84267,0,0,0 +9,0,0,0,0,0,10.3,1,0,0 +6,0,0,0,0,0,10.3,1,0,0 +1,0,0,0,0,0,10.3,1,0,0 +1,0,0,0,0,0,3.4,0,0,0 +7,0,0,0,0,0,3.4,0,0,0 +8,0,0,0,0,0,3.4,0,0,0 +1,0,1,4.341856,5.755076,0,10.3,0,0,0 +1,0,1,4.341856,5.755076,0,10.3,0,0,0 +2,0,1,4.341856,5.755076,0,10.3,0,0,0 +1,0,1,4.341856,5.755076,0,6.9,1,0,0 +0,0,1,4.341856,5.755076,0,6.9,1,0,0 +0,0,1,4.341856,5.755076,0,6.9,1,0,0 +5,0,0,0,0,0,11.84267,0,0,0 +2,0,0,0,0,0,11.84267,0,0,0 +2,0,0,0,0,0,11.84267,0,0,0 +5,0,0,0,0,0,6.9,0,0,0 +4,0,0,0,0,0,6.9,0,0,0 +0,0,0,0,0,0,6.9,0,0,0 +4,0,0,0,0,0,13.8,0,0,0 +1,0,0,0,0,0,13.8,0,0,0 +1,0,0,0,0,0,13.8,0,0,0 +10,0,0,0,0,1,24.1,1,0,0 +4,0,0,0,0,1,24.1,1,0,0 +3,0,0,0,0,1,24.1,1,0,0 +2,0,0,0,0,0,11.84267,0,0,0 +2,0,0,0,0,0,11.84267,0,0,0 +1,0,0,0,0,0,11.84267,0,0,0 +7,0,0,0,0,1,17.2,0,1,0 +7,0,0,0,0,1,17.2,0,1,0 +0,0,0,0,0,1,17.2,0,1,0 +2,0,0,0,0,0,11.84267,0,0,0 +2,0,0,0,0,0,11.84267,0,0,0 +1,0,0,0,0,0,11.84267,0,0,0 +15,0,1,6.109248,6.160541,1,11.84267,0,0,0 +9,0,1,6.109248,6.160541,1,11.84267,0,0,0 +2,0,1,6.109248,6.160541,1,11.84267,0,0,0 +5,0,1,6.109248,6.160541,1,11.84267,0,0,0 +2,0,1,6.109248,6.160541,1,11.84267,0,0,0 +5,0,1,6.109248,6.160541,0,17.2,0,0,0 +2,0,1,6.109248,6.160541,0,17.2,0,0,0 +5,0,1,6.109248,6.160541,0,17.2,0,0,0 +6,0,1,6.109248,6.160541,0,17.2,0,0,0 +4,0,1,6.109248,6.160541,0,17.2,0,0,0 +1,0,1,6.109248,6.160541,0,11.84267,1,0,0 +0,0,1,6.109248,6.160541,0,11.84267,1,0,0 +0,0,1,6.109248,6.160541,0,11.84267,1,0,0 +2,0,1,6.109248,6.160541,0,11.84267,1,0,0 +0,0,1,6.109248,6.160541,0,11.84267,1,0,0 +3,0,1,6.109248,6.160541,0,20.7,1,0,0 +1,0,1,6.109248,6.160541,0,20.7,1,0,0 +2,0,1,6.109248,6.160541,0,20.7,1,0,0 +3,0,1,6.109248,6.160541,0,20.7,1,0,0 +3,0,1,6.109248,6.160541,0,20.7,1,0,0 +0,0,1,6.109248,6.160541,0,11.84267,1,0,0 +0,0,1,6.109248,6.160541,0,11.84267,1,0,0 +0,0,1,6.109248,6.160541,0,11.84267,1,0,0 +1,0,1,6.109248,6.160541,0,11.84267,1,0,0 +1,0,1,6.109248,6.160541,0,11.84267,1,0,0 +6,0,1,6.109248,6.160541,0,3.4,0,0,0 +1,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +1,0,1,6.109248,6.160541,0,3.4,1,0,0 +0,0,1,6.109248,6.160541,0,3.4,1,0,0 +1,0,1,6.109248,6.160541,0,3.4,1,0,0 +3,0,1,6.109248,6.160541,1,13.8,0,0,0 +4,0,1,6.109248,6.160541,1,13.8,0,0,0 +1,0,1,6.109248,6.160541,1,13.8,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +5,0,1,6.109248,6.160541,0,3.4,0,0,0 +5,0,0,0,0,0,11.84267,0,0,0 +6,0,0,0,0,0,11.84267,0,0,0 +3,0,0,0,0,0,11.84267,0,0,0 +2,0,0,0,0,0,11.84267,0,0,0 +2,0,0,0,0,0,11.84267,0,0,0 +1,0,0,0,0,0,11.84267,0,0,0 +8,0,0,0,0,0,13.8,0,0,0 +5,0,0,0,0,0,13.8,0,0,0 +3,0,0,0,0,0,13.8,0,0,0 +6,0,0,0,0,1,20.7,0,1,0 +0,0,0,0,0,1,20.7,0,1,0 +0,0,0,0,0,1,20.7,0,1,0 +1,0,0,0,0,1,20.7,0,1,0 +0,0,0,0,0,1,20.7,0,1,0 +4,3.258096,0,6.87363,8.259924,0,3.4,1,0,0 +0,3.258096,0,6.87363,8.259924,0,3.4,1,0,0 +2,3.258096,0,6.87363,8.259924,0,3.4,1,0,0 +3,3.258096,0,6.87363,8.259924,0,3.4,1,0,0 +11,3.258096,0,6.87363,8.259924,0,3.4,1,0,0 +1,3.258096,0,6.87363,8.259924,0,0,0,0,0 +1,3.258096,0,6.87363,8.259924,0,0,0,0,0 +0,3.258096,0,6.87363,8.259924,0,0,0,0,0 +1,3.258096,0,6.87363,8.259924,0,0,0,0,0 +1,3.258096,0,6.87363,8.259924,0,0,0,0,0 +3,3.258096,0,6.87363,8.259924,0,11.84267,0,0,0 +1,3.258096,0,6.87363,8.259924,0,11.84267,0,0,0 +1,3.258096,0,6.87363,8.259924,0,11.84267,0,0,0 +1,3.258096,0,6.87363,8.259924,0,11.84267,0,0,0 +0,3.258096,0,6.87363,8.259924,0,11.84267,0,0,0 +3,3.258096,0,6.87363,8.259924,0,11.84267,0,0,0 +0,3.258096,0,6.87363,8.259924,0,11.84267,0,0,0 +1,3.258096,0,6.87363,8.259924,0,11.84267,0,0,0 +1,3.258096,0,6.87363,8.259924,0,11.84267,0,0,0 +3,3.258096,0,6.87363,8.259924,0,11.84267,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +2,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +1,0,1,0,5.755076,0,10.3,0,0,0 +0,0,1,0,5.755076,0,10.3,0,0,0 +1,0,1,0,5.755076,0,10.3,0,0,0 +0,0,1,0,5.755076,0,10.3,0,0,0 +0,0,1,0,5.755076,0,10.3,0,0,0 +1,0,1,0,5.755076,0,10.3,1,0,0 +7,0,1,0,5.755076,0,10.3,1,0,0 +1,0,1,0,5.755076,0,10.3,1,0,0 +0,0,1,0,5.755076,0,10.3,1,0,0 +1,0,1,0,5.755076,0,10.3,1,0,0 +5,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +4,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +3,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +2,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +3,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +8,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +12,4.564348,0,6.907755,6.959049,0,13.8,0,0,0 +6,4.564348,0,6.907755,6.959049,0,13.8,0,0,0 +3,4.564348,0,6.907755,6.959049,0,13.8,0,0,0 +1,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +2,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +6,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +7,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +3,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +2,4.564348,0,0,6.959049,0,27.6,1,0,0 +1,4.564348,0,0,6.959049,0,27.6,1,0,0 +5,4.564348,0,0,6.959049,0,27.6,1,0,0 +3,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +0,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +11,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +4,3.258096,0,6.907755,8.294049,0,13.8,1,0,0 +2,3.258096,0,6.907755,8.294049,0,13.8,1,0,0 +2,3.258096,0,6.907755,8.294049,0,13.8,1,0,0 +3,3.258096,0,6.907755,8.294049,0,0,0,0,0 +3,3.258096,0,6.907755,8.294049,0,0,0,0,0 +4,3.258096,0,6.907755,8.294049,0,0,0,0,0 +11,3.258096,0,6.907755,8.294049,1,11.84267,0,1,0 +11,3.258096,0,6.907755,8.294049,1,11.84267,0,1,0 +11,3.258096,0,6.907755,8.294049,1,11.84267,0,1,0 +2,0,0,0,0,0,6.9,0,0,0 +0,0,0,0,0,0,6.9,0,0,0 +0,0,0,0,0,0,6.9,0,0,0 +3,0,0,0,0,0,17.2,0,0,0 +3,0,0,0,0,0,17.2,0,0,0 +1,0,0,0,0,0,17.2,0,0,0 +0,0,0,0,0,0,11.84267,0,0,0 +0,0,0,0,0,0,11.84267,0,0,0 +3,0,0,0,0,0,11.84267,0,0,0 +1,0,0,0,0,0,6.9,0,0,0 +0,0,0,0,0,0,6.9,0,0,0 +3,0,0,0,0,0,6.9,0,0,0 +2,0,1,6.109248,6.160541,0,10.3,0,0,0 +0,0,1,6.109248,6.160541,0,10.3,0,0,0 +0,0,1,6.109248,6.160541,0,10.3,0,0,0 +1,0,1,6.109248,6.160541,0,11.84267,0,0,0 +1,0,1,6.109248,6.160541,0,11.84267,0,0,0 +4,0,1,6.109248,6.160541,0,11.84267,0,0,0 +2,0,1,6.109248,6.160541,0,11.84267,0,0,0 +1,0,1,6.109248,6.160541,0,11.84267,0,0,0 +2,0,1,6.109248,6.160541,0,11.84267,0,0,0 +6,0,1,6.109248,6.160541,0,10.3,1,0,0 +2,0,1,6.109248,6.160541,0,10.3,1,0,0 +4,0,1,6.109248,6.160541,0,10.3,1,0,0 +3,0,1,6.109248,6.160541,0,11.84267,0,0,0 +1,0,1,6.109248,6.160541,0,11.84267,0,0,0 +3,0,1,6.109248,6.160541,0,11.84267,0,0,0 +7,0,1,5.010635,5.061929,0,24.1,0,1,0 +16,0,1,5.010635,5.061929,0,24.1,0,1,0 +10,0,1,5.010635,5.061929,0,24.1,0,1,0 +2,0,1,4.362206,5.061929,0,10.3,1,0,0 +2,0,1,4.362206,5.061929,0,10.3,1,0,0 +0,0,1,4.362206,5.061929,0,10.3,1,0,0 +2,3.258096,0,6.151668,7.537962,1,6.9,0,0,0 +1,3.258096,0,6.151668,7.537962,1,6.9,0,0,0 +12,3.258096,0,6.151668,7.537962,1,6.9,0,0,0 +3,3.258096,0,6.151668,7.537962,1,6.9,0,0,0 +4,3.258096,0,6.151668,7.537962,1,6.9,0,0,0 +2,3.258096,0,6.158038,7.544332,0,17.2,1,0,0 +7,3.258096,0,6.158038,7.544332,0,17.2,1,0,0 +5,3.258096,0,6.158038,7.544332,0,17.2,1,0,0 +5,3.258096,0,6.158038,7.544332,0,17.2,1,0,0 +6,3.258096,0,6.158038,7.544332,0,17.2,1,0,0 +0,0,1,5.703783,5.755076,0,6.9,0,0,0 +4,0,1,5.703783,5.755076,0,6.9,0,0,0 +9,0,1,5.703783,5.755076,0,6.9,0,0,0 +3,0,1,5.703783,5.755076,1,6.9,1,0,0 +1,0,1,5.703783,5.755076,1,6.9,1,0,0 +1,0,1,5.703783,5.755076,1,6.9,1,0,0 +2,4.564348,0,5.587249,5.638542,1,17.2,1,0,0 +14,4.564348,0,5.587249,5.638542,1,17.2,1,0,0 +2,4.564348,0,5.587249,5.638542,1,17.2,1,0,0 +0,0,0,4.342636,0,0,13.8,1,0,0 +3,0,0,4.342636,0,0,13.8,1,0,0 +3,0,0,4.342636,0,0,13.8,1,0,0 +1,4.564348,0,6.907755,6.959049,0,13.8,0,0,0 +2,4.564348,0,6.907755,6.959049,0,27.6,0,0,0 +0,4.564348,0,6.907755,6.959049,0,13.8,1,0,0 +3,4.564348,0,6.907755,6.959049,0,13.8,1,0,0 +3,4.564348,0,6.907755,6.959049,0,13.8,1,0,0 +1,4.564348,0,6.907755,6.959049,0,3.4,1,0,0 +1,4.564348,0,6.907755,6.959049,0,3.4,1,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,1,0,0 +0,0,0,0,0,0,20.7,1,0,0 +0,0,0,0,0,0,20.7,1,0,0 +0,0,0,0,0,0,20.7,1,0,0 +0,0,0,0,0,0,20.7,1,0,0 +0,0,0,0,0,0,20.7,1,0,0 +11,0,0,0,0,0,6.9,0,0,0 +16,0,0,0,0,0,6.9,0,0,0 +16,0,0,0,0,0,6.9,0,0,0 +6,0,0,0,0,0,6.9,0,0,0 +11,0,0,0,0,0,6.9,0,0,0 +1,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +0,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +2,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +8,3.258096,0,6.907755,8.294049,0,6.9,0,0,0 +3,3.258096,0,6.907755,8.294049,0,6.9,0,0,0 +1,3.258096,0,6.907755,8.294049,0,6.9,0,0,0 +4,3.258096,0,6.907755,8.294049,0,24.1,0,0,0 +6,3.258096,0,6.907755,8.294049,0,24.1,0,0,0 +5,3.258096,0,6.907755,8.294049,0,24.1,0,0,0 +0,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +1,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +1,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +1,3.258096,0,6.907755,8.294049,1,27.6,0,1,0 +7,3.258096,0,6.907755,8.294049,1,27.6,0,1,0 +3,3.258096,0,6.907755,8.294049,1,27.6,0,1,0 +1,3.258096,0,6.907755,8.294049,1,27.6,0,1,0 +1,3.258096,0,6.907755,8.294049,1,27.6,0,1,0 +1,3.258096,0,6.907755,8.294049,1,11.84267,0,0,0 +3,3.258096,0,6.907755,8.294049,1,11.84267,0,0,0 +2,3.258096,0,6.907755,8.294049,1,11.84267,0,0,0 +2,3.258096,0,6.907755,8.294049,1,11.84267,0,0,0 +4,3.258096,0,6.907755,8.294049,1,11.84267,0,0,0 +9,3.258096,0,6.907755,8.294049,1,31,0,1,0 +4,3.258096,0,6.907755,8.294049,1,31,0,1,0 +3,3.258096,0,6.907755,8.294049,1,31,0,1,0 +2,3.258096,0,6.907755,8.294049,1,31,0,1,0 +2,3.258096,0,6.907755,8.294049,1,31,0,1,0 +3,3.258096,0,6.907755,8.294049,1,11.84267,0,1,0 +4,3.258096,0,6.907755,8.294049,1,11.84267,0,1,0 +2,3.258096,0,6.907755,8.294049,1,11.84267,0,1,0 +7,3.258096,0,6.907755,8.294049,1,11.84267,0,1,0 +3,3.258096,0,6.907755,8.294049,1,11.84267,0,1,0 +2,3.258096,0,6.907755,8.294049,1,13.8,1,0,0 +2,3.258096,0,6.907755,8.294049,1,13.8,1,0,0 +1,3.258096,0,6.907755,8.294049,1,13.8,1,0,0 +1,3.258096,0,6.907755,8.294049,1,13.8,1,0,0 +3,3.258096,0,6.907755,8.294049,1,13.8,1,0,0 +0,3.258096,0,6.612041,7.998335,0,3.4,0,0,0 +2,3.258096,0,6.612041,7.998335,0,3.4,0,0,0 +0,3.258096,0,6.612041,7.998335,0,3.4,0,0,0 +1,4.564348,0,5.042651,5.746707,1,17.2,0,0,0 +1,4.564348,0,5.042651,5.746707,1,17.2,0,0,0 +1,4.564348,0,5.042651,5.746707,1,17.2,0,0,0 +0,4.564348,0,5.519459,5.570752,0,10.3,0,0,0 +0,4.564348,0,5.519459,5.570752,0,10.3,0,0,0 +0,4.564348,0,5.519459,5.570752,0,10.3,0,0,0 +0,3.258096,0,6.907755,8.294049,0,6.9,1,0,0 +0,3.258096,0,6.907755,8.294049,0,6.9,1,0,0 +3,3.258096,0,6.907755,8.294049,0,6.9,1,0,0 +0,3.258096,0,6.907755,8.294049,0,6.9,1,0,0 +3,3.258096,0,6.907755,8.294049,0,6.9,1,0,0 +2,3.258096,0,6.907755,8.294049,0,6.9,1,0,0 +3,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +3,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +1,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +5,0,1,0,6.160541,0,3.4,0,0,1 +4,0,1,0,6.160541,0,3.4,0,0,1 +3,0,1,0,6.160541,0,3.4,0,0,1 +0,0,1,0,6.160541,0,6.9,0,0,0 +8,0,1,0,6.160541,0,13.8,1,0,0 +8,0,1,0,6.160541,0,13.8,1,0,0 +5,0,1,0,6.160541,0,13.8,1,0,0 +2,0,0,6.475741,0,1,17.2,1,0,0 +6,0,0,6.475741,0,1,17.2,1,0,0 +13,0,0,6.475741,0,1,17.2,1,0,0 +2,0,0,6.475741,0,1,20.7,1,0,0 +1,0,0,6.475741,0,1,20.7,1,0,0 +5,0,0,6.475741,0,1,20.7,1,0,0 +6,0,0,6.475741,0,0,11.84267,0,0,0 +8,0,0,6.475741,0,0,11.84267,0,0,0 +6,0,0,6.475741,0,0,11.84267,0,0,0 +6,0,0,3.295837,0,0,13.8,1,0,0 +7,0,0,3.295837,0,0,13.8,1,0,0 +5,0,0,3.295837,0,0,13.8,1,0,0 +10,0,0,3.295837,0,0,13.8,1,0,0 +10,0,0,3.295837,0,0,13.8,1,0,0 +1,0,0,3.295837,0,0,11.84267,0,0,0 +1,0,0,3.295837,0,0,11.84267,0,0,0 +1,0,0,3.295837,0,0,11.84267,0,0,0 +2,0,0,3.295837,0,0,11.84267,0,0,0 +3,0,0,3.295837,0,0,11.84267,0,0,0 +1,0,0,3.295837,0,0,0,0,0,0 +0,0,0,3.295837,0,0,0,0,0,0 +1,0,0,3.295837,0,0,0,0,0,0 +4,0,0,3.295837,0,0,0,0,0,0 +4,0,0,3.295837,0,0,0,0,0,0 +0,0,0,3.295837,0,0,6.9,0,0,0 +1,0,0,3.295837,0,0,6.9,0,0,0 +0,0,0,3.295837,0,0,6.9,0,0,0 +0,0,0,3.295837,0,0,6.9,0,0,0 +5,0,0,3.295837,0,0,6.9,0,0,0 +6,0,0,3.295837,0,0,6.9,0,0,0 +17,0,0,3.295837,0,0,6.9,0,0,0 +7,0,0,3.295837,0,0,6.9,0,0,0 +6,0,0,3.295837,0,0,6.9,0,0,0 +7,0,0,3.295837,0,0,6.9,0,0,0 +0,4.564348,0,0,6.105732,0,13.8,0,0,0 +0,4.564348,0,0,6.105732,0,13.8,0,0,0 +0,4.564348,0,0,6.105732,0,13.8,0,0,0 +2,4.564348,0,0,6.105732,0,13.8,0,0,0 +0,4.564348,0,0,6.105732,0,13.8,0,0,0 +0,4.564348,0,0,6.105732,0,11.84267,0,0,0 +3,4.564348,0,0,6.105732,0,11.84267,0,0,0 +0,4.564348,0,0,6.105732,0,11.84267,0,0,0 +0,4.564348,0,0,6.105732,0,11.84267,0,0,0 +1,4.564348,0,0,6.105732,0,11.84267,0,0,0 +0,4.564348,0,0,6.105732,0,11.84267,0,0,0 +0,4.564348,0,0,6.105732,0,11.84267,0,0,0 +0,4.564348,0,0,6.105732,0,11.84267,0,0,0 +2,4.564348,0,0,6.105732,0,11.84267,0,0,0 +0,4.564348,0,0,6.105732,0,11.84267,0,0,0 +1,4.564348,0,0,6.105732,0,13.8,0,0,0 +0,4.564348,0,0,6.105732,0,13.8,0,0,0 +0,4.564348,0,0,6.105732,0,13.8,0,0,0 +0,4.564348,0,0,6.105732,0,13.8,0,0,0 +0,4.564348,0,0,6.105732,0,13.8,0,0,0 +2,0,0,0,0,0,6.9,1,0,0 +1,0,0,0,0,0,6.9,1,0,0 +4,0,0,0,0,0,6.9,1,0,0 +3,0,0,0,0,0,6.9,1,0,0 +0,0,0,0,0,0,6.9,1,0,0 +2,0,0,0,0,0,3.4,0,0,0 +3,0,0,0,0,0,3.4,0,0,0 +1,0,0,0,0,0,3.4,0,0,0 +1,0,0,0,0,0,3.4,0,0,0 +2,0,0,0,0,0,3.4,0,0,0 +1,0,1,5.703783,5.755076,0,20.7,0,0,0 +1,0,1,5.703783,5.755076,0,20.7,0,0,0 +1,0,1,5.703783,5.755076,0,20.7,0,0,0 +1,0,1,5.703783,5.755076,0,20.7,0,0,0 +6,0,1,5.703783,5.755076,0,20.7,0,0,0 +1,0,1,5.703783,5.755076,0,3.4,0,0,0 +4,0,1,5.703783,5.755076,0,3.4,0,0,0 +2,0,1,5.703783,5.755076,0,3.4,0,0,0 +1,0,1,5.703783,5.755076,0,3.4,0,0,0 +3,0,1,5.703783,5.755076,0,3.4,0,0,0 +1,0,1,5.703783,5.755076,0,3.4,1,0,0 +0,0,1,5.703783,5.755076,0,3.4,1,0,0 +1,0,1,5.703783,5.755076,0,3.4,1,0,0 +2,0,1,5.703783,5.755076,0,17.2,1,0,0 +5,0,1,5.703783,5.755076,0,17.2,1,0,0 +8,0,1,5.703783,5.755076,0,17.2,1,0,0 +16,0,1,5.703783,5.755076,0,3.4,1,0,0 +3,0,1,5.703783,5.755076,0,3.4,1,0,0 +6,0,1,5.703783,5.755076,0,3.4,1,0,0 +12,0,1,5.703783,5.755076,0,10.3,0,0,0 +6,0,1,5.703783,5.755076,0,10.3,0,0,0 +3,0,1,5.703783,5.755076,0,10.3,0,0,0 +7,0,0,0,0,0,11.84267,0,0,0 +5,0,0,0,0,0,11.84267,0,0,0 +4,0,0,0,0,0,11.84267,0,0,0 +3,0,0,0,0,0,6.9,1,0,0 +2,0,0,0,0,0,6.9,1,0,0 +0,0,0,0,0,0,6.9,1,0,0 +8,0,0,0,0,0,11.84267,0,0,0 +9,0,0,0,0,0,11.84267,0,0,0 +7,0,0,0,0,0,11.84267,0,0,0 +8,0,0,0,0,0,17.2,0,0,0 +11,0,0,0,0,0,17.2,0,0,0 +7,0,0,0,0,0,17.2,0,0,0 +4,0,0,0,0,0,17.2,0,0,0 +5,0,0,0,0,0,17.2,0,0,0 +14,0,0,0,0,0,17.2,0,0,0 +2,0,0,0,0,0,17.2,0,0,0 +5,0,0,0,0,0,17.2,0,0,0 +8,0,0,0,0,0,6.9,0,0,0 +4,0,0,0,0,0,6.9,0,0,0 +3,0,0,0,0,0,6.9,0,0,0 +0,0,0,0,0,0,6.9,0,0,0 +3,0,0,0,0,0,6.9,0,0,0 +5,0,0,0,0,0,11.84267,0,0,0 +7,0,0,0,0,0,11.84267,0,0,0 +3,0,0,0,0,0,11.84267,0,0,0 +2,0,0,0,0,0,11.84267,0,0,0 +4,0,0,0,0,0,11.84267,0,0,0 +5,0,0,0,0,0,11.84267,1,0,0 +6,0,0,0,0,0,11.84267,1,0,0 +11,0,0,0,0,0,11.84267,1,0,0 +5,0,0,0,0,0,11.84267,1,0,0 +9,0,0,0,0,0,11.84267,1,0,0 +1,0,1,0,5.755076,0,13.8,1,0,0 +2,0,1,0,5.755076,0,13.8,1,0,0 +0,0,1,0,5.755076,0,13.8,1,0,0 +3,0,1,0,5.755076,0,10.3,0,0,0 +0,0,1,0,5.755076,0,10.3,0,0,0 +3,0,1,0,5.755076,0,10.3,0,0,0 +1,3.258096,0,6.907755,8.294049,1,17.2,0,0,0 +2,3.258096,0,6.907755,8.294049,1,17.2,0,0,0 +1,3.258096,0,6.907755,8.294049,1,17.2,0,0,0 +3,3.258096,0,6.907755,8.294049,1,10.3,1,0,0 +3,3.258096,0,6.907755,8.294049,1,10.3,1,0,0 +15,3.258096,0,6.907755,8.294049,1,10.3,1,0,0 +6,3.258096,0,6.553078,7.939373,1,24.1,0,0,0 +2,3.258096,0,6.553078,7.939373,1,24.1,0,0,0 +5,3.258096,0,6.553078,7.939373,1,24.1,0,0,0 +2,3.258096,0,6.553078,7.939373,1,24.1,0,0,0 +3,3.258096,0,6.553078,7.939373,1,24.1,0,0,0 +5,3.258096,0,6.553078,7.939373,1,24.1,0,0,0 +3,3.258096,0,6.553078,7.939373,0,11.84267,0,0,0 +0,3.258096,0,6.553078,7.939373,0,11.84267,0,0,0 +0,3.258096,0,6.553078,7.939373,0,11.84267,0,0,0 +0,3.258096,0,6.553078,7.939373,0,11.84267,0,0,0 +1,3.258096,0,6.553078,7.939373,0,11.84267,0,0,0 +0,3.258096,0,6.553078,7.939373,0,11.84267,0,0,0 +5,0,0,5.988059,0,1,34.5,1,0,0 +7,0,0,5.988059,0,1,34.5,1,0,0 +8,0,0,5.988059,0,1,34.5,1,0,0 +5,0,0,5.988059,0,1,6.9,1,0,0 +9,0,0,5.988059,0,1,6.9,1,0,0 +3,0,0,5.988059,0,1,6.9,1,0,0 +0,4.564348,0,6.72827,6.779563,0,0,0,0,0 +1,4.564348,0,6.72827,6.779563,0,0,0,0,0 +0,4.564348,0,6.72827,6.779563,0,0,0,0,0 +0,4.564348,0,6.72827,6.779563,0,0,0,0,0 +1,4.564348,0,6.72827,6.779563,0,0,0,0,0 +1,4.564348,0,6.72827,6.779563,0,11.84267,0,0,0 +0,4.564348,0,6.72827,6.779563,0,11.84267,0,0,0 +1,4.564348,0,6.72827,6.779563,0,11.84267,0,0,0 +1,4.564348,0,6.72827,6.779563,0,11.84267,0,0,0 +0,4.564348,0,6.72827,6.779563,0,11.84267,0,0,0 +2,4.564348,0,6.72827,6.779563,0,11.84267,0,0,0 +3,4.564348,0,6.72827,6.779563,0,11.84267,0,0,0 +0,4.564348,0,6.72827,6.779563,0,11.84267,0,0,0 +1,4.564348,0,6.72827,6.779563,0,11.84267,0,0,0 +4,4.564348,0,6.72827,6.779563,0,11.84267,0,0,0 +0,4.564348,0,6.72827,6.779563,0,11.84267,0,0,0 +1,4.564348,0,6.72827,6.779563,0,11.84267,0,0,0 +0,4.564348,0,6.72827,6.779563,0,11.84267,0,0,0 +0,4.564348,0,6.72827,6.779563,0,11.84267,0,0,0 +0,4.564348,0,6.72827,6.779563,0,11.84267,0,0,0 +6,4.564348,0,6.72827,6.779563,1,10.3,0,0,0 +2,4.564348,0,6.72827,6.779563,1,10.3,0,0,0 +1,4.564348,0,6.72827,6.779563,1,10.3,0,0,0 +4,4.564348,0,6.72827,6.779563,1,10.3,0,0,0 +8,4.564348,0,6.72827,6.779563,1,10.3,0,0,0 +5,0,0,0,0,0,13.8,1,0,0 +2,0,0,0,0,0,13.8,1,0,0 +0,0,0,0,0,0,13.8,1,0,0 +5,0,0,0,0,0,13.8,1,0,0 +2,0,0,0,0,0,13.8,1,0,0 +7,0,1,6.109248,6.160541,0,6.9,0,0,0 +0,0,1,6.109248,6.160541,0,6.9,0,0,0 +0,0,1,6.109248,6.160541,0,6.9,0,0,0 +1,0,1,6.109248,6.160541,0,11.84267,0,0,0 +1,0,1,6.109248,6.160541,0,11.84267,0,0,0 +0,0,1,6.109248,6.160541,0,11.84267,0,0,0 +1,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +2,0,1,6.079933,6.160541,0,3.4,1,0,0 +3,0,1,6.079933,6.160541,0,3.4,1,0,0 +0,0,1,6.079933,6.160541,0,6.9,0,0,0 +0,0,1,6.079933,6.160541,0,6.9,0,0,0 +2,0,1,6.079933,6.160541,0,6.9,0,0,0 +0,0,1,6.079933,6.160541,0,3.4,0,0,0 +0,0,1,6.079933,6.160541,0,3.4,0,0,0 +0,0,1,6.079933,6.160541,0,3.4,0,0,0 +4,4.564348,0,6.680604,6.731897,1,10.3,1,0,0 +4,4.564348,0,6.680604,6.731897,1,10.3,1,0,0 +0,4.564348,0,6.680604,6.731897,1,10.3,1,0,0 +2,4.564348,0,6.680604,6.731897,0,11.84267,0,0,0 +1,4.564348,0,6.680604,6.731897,0,11.84267,0,0,0 +1,4.564348,0,6.680604,6.731897,0,11.84267,0,0,0 +13,0,0,0,0,0,6.9,1,0,0 +7,0,0,0,0,0,6.9,1,0,0 +5,0,0,0,0,0,6.9,1,0,0 +4,4.564348,0,6.907755,6.959049,0,11.84267,1,0,0 +2,4.564348,0,6.907755,6.959049,0,11.84267,1,0,0 +0,4.564348,0,6.907755,6.959049,0,11.84267,1,0,0 +1,4.564348,0,6.907755,6.959049,0,3.4,1,0,0 +6,4.564348,0,6.907755,6.959049,0,3.4,1,0,0 +2,4.564348,0,6.907755,6.959049,0,3.4,1,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,1,0,0 +2,4.564348,0,6.907755,6.959049,0,6.9,1,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,1,0,0 +1,4.564348,0,6.907755,6.959049,0,11.84267,1,0,0 +1,4.564348,0,6.907755,6.959049,0,11.84267,1,0,0 +2,4.564348,0,6.907755,6.959049,0,11.84267,1,0,0 +1,4.564348,0,5.375278,6.958999,0,11.84267,0,0,0 +2,4.564348,0,5.375278,6.958999,0,11.84267,0,0,0 +1,4.564348,0,5.375278,6.958999,0,11.84267,0,0,0 +3,4.564348,0,5.375278,6.958999,0,20.7,0,0,0 +0,4.564348,0,5.375278,6.958999,0,20.7,0,0,0 +1,4.564348,0,5.375278,6.958999,0,20.7,0,0,0 +6,4.564348,0,5.375278,6.958999,0,6.9,0,0,0 +1,4.564348,0,5.375278,6.958999,0,6.9,0,0,0 +0,4.564348,0,5.375278,6.958999,0,6.9,0,0,0 +3,4.564348,0,5.375278,6.958999,0,11.84267,0,0,0 +1,4.564348,0,5.375278,6.958999,0,11.84267,0,0,0 +1,4.564348,0,5.375278,6.958999,0,11.84267,0,0,0 +4,0,0,4.063885,0,0,6.9,1,0,0 +0,0,0,4.063885,0,0,6.9,1,0,0 +4,0,0,4.063885,0,0,6.9,1,0,0 +8,0,0,4.063885,0,0,17.2,1,0,0 +1,0,0,4.063885,0,0,17.2,1,0,0 +2,0,0,4.063885,0,0,17.2,1,0,0 +10,0,0,4.063885,0,0,13.8,1,0,0 +7,0,0,4.063885,0,0,13.8,1,0,0 +7,0,0,4.063885,0,0,13.8,1,0,0 +3,0,0,6.840974,0,0,6.9,0,0,0 +1,0,0,6.840974,0,0,6.9,0,0,0 +4,0,0,6.840974,0,0,6.9,0,0,0 +2,0,0,6.840974,0,0,24.1,0,0,0 +2,0,0,6.840974,0,0,24.1,0,0,0 +3,0,0,6.840974,0,0,24.1,0,0,0 +2,0,0,6.840974,0,0,11.84267,0,0,0 +4,0,0,6.840974,0,0,11.84267,0,0,0 +4,0,0,6.840974,0,0,11.84267,0,0,0 +0,0,0,6.840974,0,0,11.84267,0,0,0 +3,0,0,6.840974,0,0,11.84267,0,0,0 +1,0,0,6.840974,0,0,11.84267,0,0,0 +2,0,0,6.840974,0,0,11.84267,0,0,0 +4,0,0,6.840974,0,0,11.84267,0,0,0 +1,0,0,6.840974,0,0,11.84267,0,0,0 +2,0,0,6.840974,0,.1981873,13.8,0,0,0 +2,0,0,6.840974,0,.1981873,13.8,0,0,0 +1,0,0,6.840974,0,.1981873,13.8,0,0,0 +11,0,0,0,0,0,10.3,0,0,0 +9,0,0,0,0,0,10.3,0,0,0 +6,0,0,0,0,0,10.3,0,0,0 +7,3.258096,0,6.572423,7.958717,0,24.1,1,0,0 +9,3.258096,0,6.572423,7.958717,0,24.1,1,0,0 +9,3.258096,0,6.572423,7.958717,0,24.1,1,0,0 +5,0,1,0,5.755076,0,3.4,0,0,0 +0,0,1,0,5.755076,0,3.4,0,0,0 +3,0,1,0,5.755076,0,3.4,0,0,0 +1,0,1,0,5.755076,0,3.4,0,0,0 +0,0,1,0,5.755076,0,3.4,0,0,0 +1,0,1,0,5.755076,0,3.4,0,0,0 +2,3.258096,0,0,7.167964,0,10.3,1,0,0 +3,3.258096,0,0,7.167964,0,10.3,1,0,0 +2,3.258096,0,0,7.167964,0,10.3,1,0,0 +1,3.258096,0,0,7.167964,0,3.4,0,0,0 +3,3.258096,0,0,7.167964,0,3.4,0,0,0 +4,3.258096,0,0,7.167964,0,3.4,0,0,0 +3,0,0,0,0,0,3.4,0,0,0 +5,0,0,0,0,0,3.4,0,0,0 +1,0,0,0,0,0,3.4,0,0,0 +6,0,0,0,0,0,3.4,0,0,0 +23,0,0,0,0,0,3.4,0,0,0 +1,0,0,0,0,0,11.84267,0,0,0 +2,0,0,0,0,0,11.84267,0,0,0 +9,0,0,0,0,0,11.84267,0,0,0 +6,0,0,0,0,0,11.84267,0,0,0 +3,0,0,0,0,0,11.84267,0,0,0 +0,0,0,0,0,0,11.84267,0,0,0 +1,0,0,0,0,0,11.84267,0,0,0 +3,0,0,0,0,0,11.84267,0,0,0 +6,0,0,0,0,0,11.84267,0,0,0 +11,0,0,0,0,0,11.84267,0,0,0 +11,0,0,0,0,0,20.7,0,0,0 +2,0,0,0,0,0,20.7,0,0,0 +4,0,0,0,0,0,20.7,0,0,0 +13,0,0,0,0,0,20.7,0,0,0 +18,0,0,0,0,0,20.7,0,0,0 +4,0,0,0,0,0,10.3,0,0,0 +2,0,0,0,0,0,10.3,0,0,0 +1,0,0,0,0,0,10.3,0,0,0 +4,0,0,0,0,0,0,0,1,0 +3,0,0,0,0,0,0,0,1,0 +4,0,0,0,0,0,0,0,1,0 +4,0,0,0,0,0,17.2,1,0,0 +2,0,0,0,0,0,17.2,1,0,0 +5,0,0,0,0,0,17.2,1,0,0 +1,0,0,0,0,0,10.3,1,0,0 +1,0,0,0,0,0,10.3,1,0,0 +2,0,0,0,0,0,10.3,1,0,0 +8,0,0,0,0,1,6.9,0,0,0 +3,0,0,0,0,1,6.9,0,0,0 +5,0,0,0,0,1,6.9,0,0,0 +3,0,0,0,0,0,11.84267,1,0,0 +4,0,0,0,0,0,11.84267,1,0,0 +1,0,0,0,0,0,11.84267,1,0,0 +10,0,0,0,0,0,11.84267,0,1,0 +7,0,0,0,0,0,11.84267,0,1,0 +6,0,0,0,0,0,11.84267,0,1,0 +17,0,0,0,0,1,34.5,0,1,0 +19,0,0,0,0,1,34.5,0,1,0 +13,0,0,0,0,1,34.5,0,1,0 +6,0,0,4.599152,0,0,10.3,0,0,0 +2,0,0,4.599152,0,0,10.3,0,0,0 +7,0,0,4.599152,0,0,10.3,0,0,0 +4,0,0,4.599152,0,1,17.2,0,1,0 +6,0,0,4.599152,0,1,17.2,0,1,0 +4,0,0,4.599152,0,1,17.2,0,1,0 +1,0,1,5.703783,5.755076,0,27.6,0,0,0 +8,0,1,5.703783,5.755076,0,27.6,0,0,0 +2,0,1,5.703783,5.755076,0,27.6,0,0,0 +0,0,1,5.703783,5.755076,0,17.2,0,0,0 +4,0,1,5.703783,5.755076,0,17.2,0,0,0 +3,0,1,5.703783,5.755076,0,17.2,0,0,0 +0,4.564348,0,6.114964,6.63781,0,11.84267,0,0,0 +1,4.564348,0,6.114964,6.63781,0,11.84267,0,0,0 +1,4.564348,0,6.114964,6.63781,0,11.84267,0,0,0 +0,4.564348,0,6.114964,6.63781,0,11.84267,0,0,0 +1,4.564348,0,6.114964,6.63781,0,11.84267,0,0,0 +13,4.564348,0,6.114964,6.63781,0,11.84267,0,0,0 +0,4.564348,0,6.114964,6.63781,0,11.84267,0,0,0 +1,4.564348,0,6.114964,6.63781,0,11.84267,0,0,0 +0,4.564348,0,6.114964,6.63781,0,11.84267,0,0,0 +0,4.564348,0,6.114964,6.63781,0,11.84267,0,0,0 +0,4.564348,0,6.114964,6.63781,0,3.4,1,0,0 +0,4.564348,0,6.114964,6.63781,0,3.4,1,0,0 +0,4.564348,0,6.114964,6.63781,0,3.4,1,0,0 +0,4.564348,0,6.114964,6.63781,0,3.4,1,0,0 +0,4.564348,0,6.114964,6.63781,0,3.4,1,0,0 +0,4.564348,0,6.114964,6.63781,0,10.3,0,0,0 +0,4.564348,0,6.114964,6.63781,0,10.3,0,0,0 +0,4.564348,0,6.114964,6.63781,0,10.3,0,0,0 +0,4.564348,0,6.114964,6.63781,0,10.3,0,0,0 +0,4.564348,0,6.114964,6.63781,0,10.3,0,0,0 +0,4.564348,0,6.114964,6.63781,0,11.84267,0,0,0 +0,4.564348,0,6.114964,6.63781,0,11.84267,0,0,0 +2,4.564348,0,6.114964,6.63781,0,11.84267,0,0,0 +0,4.564348,0,6.114964,6.63781,0,11.84267,0,0,0 +1,4.564348,0,6.114964,6.63781,0,11.84267,0,0,0 +1,0,0,4.564348,0,0,0,0,0,0 +1,0,0,4.564348,0,0,0,0,0,0 +1,0,0,4.564348,0,0,0,0,0,0 +1,0,0,4.564348,0,0,0,0,0,0 +3,0,0,4.564348,0,0,0,0,0,0 +0,0,0,4.564348,0,0,0,0,0,0 +8,0,0,4.564348,0,0,0,0,0,0 +0,0,0,4.564348,0,0,0,0,0,0 +1,0,0,4.564348,0,0,0,0,0,0 +4,0,0,4.564348,0,0,0,0,0,0 +10,0,0,4.564348,0,1,31,1,0,0 +6,0,0,4.564348,0,1,31,1,0,0 +3,0,0,4.564348,0,1,31,1,0,0 +3,0,0,4.564348,0,1,31,1,0,0 +8,0,0,4.564348,0,1,31,1,0,0 +0,0,0,4.564348,0,0,11.84267,0,0,0 +5,0,0,4.564348,0,0,11.84267,0,0,0 +4,0,0,4.564348,0,0,11.84267,0,0,0 +6,0,0,4.564348,0,0,11.84267,0,0,0 +4,0,0,4.564348,0,0,11.84267,0,0,0 +9,0,0,4.564348,0,0,10.3,0,0,0 +0,0,0,4.564348,0,0,10.3,0,0,0 +0,0,0,4.564348,0,0,10.3,0,0,0 +1,0,0,4.564348,0,0,10.3,0,0,0 +3,0,0,4.564348,0,0,10.3,0,0,0 +5,0,1,6.109248,6.160541,1,13.8,1,0,0 +0,0,1,6.109248,6.160541,1,13.8,1,0,0 +6,0,1,6.109248,6.160541,1,13.8,1,0,0 +3,0,1,6.109248,6.160541,0,20.7,1,0,0 +6,0,1,6.109248,6.160541,0,20.7,1,0,0 +3,0,1,6.109248,6.160541,0,20.7,1,0,0 +4,0,1,6.109248,6.160541,0,11.84267,0,0,0 +1,0,1,6.109248,6.160541,0,11.84267,0,0,0 +2,0,1,6.109248,6.160541,0,11.84267,0,0,0 +2,4.564348,0,6.907755,6.959049,0,27.6,1,0,0 +3,4.564348,0,6.907755,6.959049,0,27.6,1,0,0 +2,4.564348,0,6.907755,6.959049,0,27.6,1,0,0 +2,4.564348,0,6.907755,6.959049,0,27.6,1,0,0 +2,4.564348,0,6.907755,6.959049,0,27.6,1,0,0 +1,0,1,6.109248,6.160541,0,11.84267,0,0,0 +0,0,1,6.109248,6.160541,0,13.8,1,0,0 +0,0,1,6.109248,6.160541,0,6.9,0,0,0 +0,3.258096,0,6.907755,8.294049,0,13.8,1,0,0 +1,3.258096,0,6.907755,8.294049,0,13.8,1,0,0 +1,3.258096,0,6.907755,8.294049,0,13.8,1,0,0 +0,3.258096,0,6.907755,8.294049,0,3.4,1,0,0 +1,3.258096,0,6.907755,8.294049,0,3.4,1,0,0 +5,3.258096,0,6.907755,8.294049,0,3.4,1,0,0 +12,3.258096,0,6.907755,8.294049,0,13.8,0,0,0 +62,3.258096,0,6.907755,8.294049,0,13.8,0,0,0 +74,3.258096,0,6.907755,8.294049,0,13.8,0,0,0 +0,3.258096,0,6.907755,8.294049,0,3.4,0,0,0 +3,3.258096,0,6.907755,8.294049,0,3.4,0,0,0 +2,3.258096,0,6.907755,8.294049,1,3.4,1,0,0 +1,3.258096,0,6.907755,8.294049,1,3.4,1,0,0 +3,3.258096,0,6.907755,8.294049,1,3.4,1,0,0 +11,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +16,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +26,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +7,3.258096,0,0,8.294049,0,11.84267,0,0,0 +3,3.258096,0,0,8.294049,0,11.84267,0,0,0 +4,3.258096,0,0,8.294049,0,11.84267,0,0,0 +1,3.258096,0,0,8.294049,0,11.84267,0,0,0 +2,3.258096,0,0,8.294049,0,11.84267,0,0,0 +3,3.258096,0,0,8.294049,0,11.84267,0,0,0 +2,3.258096,0,0,8.294049,0,11.84267,0,0,0 +1,3.258096,0,0,8.294049,0,11.84267,0,0,0 +2,3.258096,0,0,8.294049,0,11.84267,0,0,0 +4,3.258096,0,0,8.294049,0,11.84267,0,0,0 +0,3.258096,0,0,8.294049,0,10.3,0,0,0 +1,3.258096,0,0,8.294049,0,10.3,0,0,0 +0,3.258096,0,0,8.294049,0,10.3,0,0,0 +0,3.258096,0,0,8.294049,0,10.3,0,0,0 +2,3.258096,0,0,8.294049,0,10.3,0,0,0 +3,3.258096,0,0,8.294049,0,13.8,0,0,0 +4,3.258096,0,0,8.294049,0,13.8,0,0,0 +6,3.258096,0,0,8.294049,0,13.8,0,0,0 +1,3.258096,0,0,8.294049,0,13.8,0,0,0 +2,3.258096,0,0,8.294049,0,13.8,0,0,0 +4,3.258096,0,0,6.624596,0,6.9,0,0,0 +4,3.258096,0,0,6.624596,0,6.9,0,0,0 +2,3.258096,0,0,6.624596,0,6.9,0,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +11,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +19,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +19,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +8,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +4,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +3,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +1,3.258096,0,6.981507,8.294049,0,3.4,1,0,0 +1,3.258096,0,6.981507,8.294049,0,3.4,1,0,0 +0,3.258096,0,6.981507,8.294049,0,3.4,1,0,0 +4,3.258096,0,6.981507,8.294049,0,11.84267,1,0,0 +2,3.258096,0,6.981507,8.294049,0,11.84267,1,0,0 +5,3.258096,0,6.981507,8.294049,0,11.84267,1,0,0 +3,3.258096,0,6.981507,8.294049,0,11.84267,1,0,0 +1,3.258096,0,6.981507,8.294049,0,11.84267,1,0,0 +1,3.258096,0,6.981507,8.294049,0,11.84267,1,0,0 +1,3.258096,0,6.981507,8.294049,0,11.84267,1,0,0 +2,3.258096,0,6.981507,8.294049,0,11.84267,1,0,0 +3,3.258096,0,6.981507,8.294049,0,11.84267,1,0,0 +0,3.258096,0,6.981507,8.294049,1,10.3,1,0,0 +0,3.258096,0,6.981507,8.294049,1,10.3,1,0,0 +2,3.258096,0,6.981507,8.294049,1,10.3,1,0,0 +10,0,0,0,0,1,6.9,0,0,0 +4,0,0,0,0,1,6.9,0,0,0 +0,0,0,0,0,1,6.9,0,0,0 +2,3.258096,0,6.907755,8.294049,0,6.9,0,0,0 +6,3.258096,0,6.907755,8.294049,0,6.9,0,0,0 +3,3.258096,0,6.907755,8.294049,0,6.9,0,0,0 +0,3.258096,0,6.031646,7.417941,0,17.2,0,1,0 +0,3.258096,0,6.031646,7.417941,0,17.2,0,1,0 +0,3.258096,0,6.031646,7.417941,0,17.2,0,1,0 +0,3.258096,0,6.031646,7.417941,0,11.84267,0,1,0 +2,3.258096,0,6.031646,7.417941,0,11.84267,0,1,0 +0,3.258096,0,6.031646,7.417941,0,11.84267,0,1,0 +0,3.258096,0,6.031646,7.417941,0,0,0,1,0 +0,3.258096,0,6.031646,7.417941,0,0,0,1,0 +0,3.258096,0,6.031646,7.417941,0,0,0,1,0 +2,3.258096,0,6.031646,7.417941,0,0,0,1,0 +0,3.258096,0,6.031646,7.417941,0,0,0,1,0 +3,3.258096,0,6.031646,7.417941,0,0,0,1,0 +0,3.258096,0,6.031646,7.417941,0,11.84267,0,1,0 +0,3.258096,0,6.031646,7.417941,0,11.84267,0,1,0 +0,3.258096,0,6.031646,7.417941,0,11.84267,0,1,0 +0,0,0,0,0,0,10.3,0,1,0 +0,0,0,0,0,0,10.3,0,1,0 +1,0,0,0,0,0,10.3,0,1,0 +1,0,0,0,0,0,6.9,1,0,0 +4,0,0,0,0,0,6.9,1,0,0 +4,0,0,0,0,0,6.9,1,0,0 +1,0,0,0,0,1,34.5,1,0,0 +0,0,0,0,0,1,34.5,1,0,0 +3,0,0,0,0,1,34.5,1,0,0 +5,4.564348,0,6.703188,6.754481,0,6.9,0,0,0 +2,4.564348,0,6.703188,6.754481,0,6.9,0,0,0 +2,4.564348,0,6.703188,6.754481,0,6.9,0,0,0 +3,4.564348,0,6.703188,6.754481,0,11.84267,0,0,0 +0,4.564348,0,6.703188,6.754481,0,11.84267,0,0,0 +2,4.564348,0,6.703188,6.754481,0,11.84267,0,0,0 +2,4.564348,0,6.703188,6.754481,0,6.9,0,0,0 +1,4.564348,0,6.703188,6.754481,0,6.9,0,0,0 +3,4.564348,0,6.703188,6.754481,0,6.9,0,0,0 +6,4.564348,0,6.907755,6.959049,1,11.84267,0,1,0 +0,4.564348,0,6.907755,6.959049,1,11.84267,0,1,0 +1,4.564348,0,6.907755,6.959049,1,11.84267,0,1,0 +3,4.564348,0,6.907755,6.959049,0,13.8,0,0,0 +1,4.564348,0,6.907755,6.959049,0,13.8,0,0,0 +2,4.564348,0,6.907755,6.959049,0,13.8,0,0,0 +1,4.564348,0,6.907755,6.959049,0,20.7,1,0,0 +0,4.564348,0,6.907755,6.959049,0,20.7,1,0,0 +1,4.564348,0,6.907755,6.959049,0,20.7,1,0,0 +45,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +37,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +2,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +1,4.564348,0,5.298317,5.349611,0,6.9,1,0,0 +0,4.564348,0,5.298317,5.349611,0,6.9,1,0,0 +0,4.564348,0,5.298317,5.349611,0,6.9,1,0,0 +4,4.564348,0,5.298317,5.349611,1,17.2,1,0,0 +2,4.564348,0,5.298317,5.349611,1,17.2,1,0,0 +4,4.564348,0,5.298317,5.349611,1,17.2,1,0,0 +4,0,1,5.010635,5.061929,0,6.9,1,0,0 +7,0,1,5.010635,5.061929,0,6.9,1,0,0 +7,0,1,5.010635,5.061929,0,6.9,1,0,0 +1,0,1,5.010635,5.061929,0,3.4,1,0,0 +0,0,1,5.010635,5.061929,0,3.4,1,0,0 +0,0,1,5.010635,5.061929,0,3.4,1,0,0 +0,0,1,5.010635,5.061929,0,13.8,1,0,0 +0,0,1,5.010635,5.061929,0,13.8,1,0,0 +0,0,1,5.010635,5.061929,0,13.8,1,0,0 +1,0,1,0,5.061929,0,0,0,0,0 +3,0,1,0,5.061929,0,0,0,0,0 +2,0,1,0,5.061929,0,0,0,0,0 +1,0,1,0,5.061929,0,3.4,0,0,0 +0,0,1,0,5.061929,0,3.4,0,0,0 +0,0,1,0,5.061929,0,3.4,0,0,0 +4,0,0,6.120297,0,0,10.3,0,0,0 +3,0,0,6.120297,0,0,10.3,0,0,0 +2,0,0,6.120297,0,0,10.3,0,0,0 +4,0,0,6.120297,0,0,11.84267,0,0,0 +1,0,0,6.120297,0,0,11.84267,0,0,0 +2,0,0,6.120297,0,0,11.84267,0,0,0 +2,0,0,6.120297,0,0,11.84267,0,0,0 +5,0,0,6.120297,0,0,11.84267,0,0,0 +2,0,0,6.120297,0,0,11.84267,0,0,0 +1,0,0,6.120297,0,0,10.3,0,0,0 +2,0,0,6.120297,0,0,10.3,0,0,0 +1,0,0,6.120297,0,0,10.3,0,0,0 +1,0,0,0,0,0,6.9,0,0,0 +2,0,0,0,0,0,6.9,0,0,0 +4,0,0,0,0,0,6.9,0,0,0 +2,0,0,0,0,0,0,0,0,0 +2,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0 +3,0,0,0,0,0,11.84267,0,0,0 +7,0,0,0,0,0,11.84267,0,0,0 +1,0,0,0,0,0,11.84267,0,0,0 +7,4.564348,0,6.907755,6.959049,0,37.9,1,0,0 +1,4.564348,0,6.907755,6.959049,0,37.9,1,0,0 +2,4.564348,0,6.907755,6.959049,0,37.9,1,0,0 +2,4.564348,0,6.907755,6.959049,0,24.1,1,0,0 +10,4.564348,0,6.907755,6.959049,0,24.1,1,0,0 +5,4.564348,0,6.907755,6.959049,0,24.1,1,0,0 +0,0,1,5.010635,5.061929,0,10.3,1,0,0 +3,0,1,5.010635,5.061929,0,10.3,1,0,0 +4,0,1,5.010635,5.061929,0,10.3,1,0,0 +0,0,1,5.010635,5.061929,0,10.3,1,0,0 +0,0,1,5.010635,5.061929,0,10.3,1,0,0 +0,4.564348,0,0,6.671367,1,20.7,0,0,0 +0,4.564348,0,0,6.671367,1,20.7,0,0,0 +0,4.564348,0,0,6.671367,1,20.7,0,0,0 +0,4.564348,0,0,6.671367,1,20.7,0,0,0 +0,4.564348,0,0,6.671367,1,20.7,0,0,0 +5,3.258096,0,6.907755,8.294049,1,24.1,1,0,0 +1,3.258096,0,6.907755,8.294049,1,24.1,1,0,0 +5,3.258096,0,6.907755,8.294049,1,24.1,1,0,0 +4,3.258096,0,6.907755,8.294049,0,3.4,0,0,0 +4,3.258096,0,6.907755,8.294049,0,3.4,0,0,0 +1,3.258096,0,6.907755,8.294049,0,3.4,0,0,0 +1,3.258096,0,6.907755,8.294049,0,6.9,0,0,0 +1,3.258096,0,6.907755,8.294049,0,6.9,0,0,0 +1,3.258096,0,6.907755,8.294049,0,6.9,0,0,0 +4,3.258096,0,6.907755,8.294049,0,17.2,0,0,0 +8,3.258096,0,6.907755,8.294049,0,17.2,0,0,0 +8,3.258096,0,6.907755,8.294049,0,17.2,0,0,0 +0,3.258096,0,6.395262,7.774856,0,11.84267,0,0,0 +0,3.258096,0,6.395262,7.774856,0,11.84267,0,0,0 +0,3.258096,0,6.395262,7.774856,0,11.84267,0,0,0 +0,3.258096,0,6.395262,7.774856,0,3.4,1,0,0 +21,3.258096,0,6.395262,7.774856,0,3.4,1,0,0 +6,3.258096,0,6.395262,7.774856,0,3.4,1,0,0 +4,3.258096,0,6.395262,7.774856,0,11.84267,0,0,0 +3,3.258096,0,6.395262,7.774856,0,11.84267,0,0,0 +5,3.258096,0,6.395262,7.774856,0,11.84267,0,0,0 +0,3.258096,0,6.395262,7.774856,0,11.84267,0,0,0 +1,3.258096,0,6.395262,7.774856,0,11.84267,0,0,0 +0,3.258096,0,6.395262,7.774856,0,11.84267,0,0,0 +0,3.258096,0,6.395262,7.774856,0,3.4,1,0,0 +0,3.258096,0,6.395262,7.774856,0,3.4,1,0,0 +0,3.258096,0,6.395262,7.774856,0,3.4,1,0,0 +0,0,1,0,5.061929,0,3.4,0,1,0 +0,0,1,0,5.061929,0,3.4,0,1,0 +0,0,1,0,5.061929,0,3.4,0,1,0 +5,0,0,5.871329,0,0,6.9,1,0,0 +5,0,0,5.871329,0,0,6.9,1,0,0 +4,0,0,5.871329,0,0,6.9,1,0,0 +5,0,0,5.871329,0,1,10.3,1,0,0 +14,0,0,5.871329,0,1,10.3,1,0,0 +6,0,0,5.871329,0,1,10.3,1,0,0 +0,0,1,5.743003,5.755076,0,0,0,1,0 +0,0,1,5.743003,5.755076,0,0,0,1,0 +0,0,1,5.743003,5.755076,0,0,0,1,0 +4,0,1,5.743003,5.755076,0,10.3,0,1,0 +2,0,1,5.743003,5.755076,0,10.3,0,1,0 +0,0,1,5.743003,5.755076,0,10.3,0,1,0 +3,0,0,5.805978,0,0,10.3,0,0,0 +34,0,0,5.805978,0,0,10.3,0,0,0 +18,0,0,5.805978,0,0,10.3,0,0,0 +0,0,0,5.805978,0,0,17.2,0,0,0 +1,0,0,5.805978,0,0,17.2,0,0,0 +3,0,0,5.805978,0,0,17.2,0,0,0 +7,0,0,5.805978,0,0,11.84267,0,0,0 +1,0,0,5.805978,0,0,11.84267,0,0,0 +2,0,0,5.805978,0,0,11.84267,0,0,0 +0,0,0,5.506307,0,0,13.8,1,0,0 +1,0,0,5.506307,0,0,13.8,1,0,0 +1,0,0,5.506307,0,0,13.8,1,0,0 +7,0,0,5.506307,0,0,3.4,1,0,0 +4,0,0,5.506307,0,0,3.4,1,0,0 +2,0,0,5.506307,0,0,3.4,1,0,0 +0,0,0,5.506307,0,0,17.2,1,0,0 +1,0,0,5.506307,0,0,17.2,1,0,0 +3,0,0,5.506307,0,0,17.2,1,0,0 +8,3.258096,0,0,7.968458,0,10.3,0,1,0 +10,3.258096,0,0,7.968458,0,10.3,0,1,0 +12,3.258096,0,0,7.968458,0,10.3,0,1,0 +0,3.258096,0,0,7.968458,0,11.84267,1,0,0 +3,3.258096,0,0,7.968458,0,11.84267,1,0,0 +2,3.258096,0,0,7.968458,0,11.84267,1,0,0 +8,3.258096,0,0,7.968458,0,11.84267,1,0,0 +6,3.258096,0,0,7.968458,0,11.84267,1,0,0 +7,3.258096,0,0,7.968458,0,11.84267,1,0,0 +11,3.258096,0,0,7.968458,1,10.3,0,1,0 +2,3.258096,0,0,7.968458,1,10.3,0,1,0 +7,3.258096,0,0,7.968458,1,10.3,0,1,0 +6,3.258096,0,0,7.968458,0,11.84267,1,0,0 +3,3.258096,0,0,7.968458,0,11.84267,1,0,0 +6,3.258096,0,0,7.968458,0,11.84267,1,0,0 +2,0,1,6.109248,6.160541,0,6.9,0,0,0 +13,0,1,6.109248,6.160541,0,6.9,0,0,0 +0,0,1,6.109248,6.160541,0,6.9,0,0,0 +10,0,1,6.109248,6.160541,0,13.8,0,0,0 +4,0,1,6.109248,6.160541,0,13.8,0,0,0 +3,0,1,6.109248,6.160541,0,13.8,0,0,0 +0,0,1,6.109248,6.160541,0,11.84267,0,0,0 +1,0,1,6.109248,6.160541,0,11.84267,0,0,0 +1,0,1,6.109248,6.160541,0,11.84267,0,0,0 +1,0,1,6.109248,6.160541,1,0,0,0,0 +0,0,1,6.109248,6.160541,1,0,0,0,0 +0,0,1,6.109248,6.160541,1,0,0,0,0 +2,0,0,0,0,0,6.9,0,0,0 +0,0,0,0,0,0,6.9,0,0,0 +7,0,0,0,0,0,6.9,0,0,0 +8,0,0,0,0,1,17.2,0,1,0 +4,0,0,0,0,1,17.2,0,1,0 +5,0,0,0,0,1,17.2,0,1,0 +7,0,0,0,0,1,17.2,0,1,0 +3,0,0,0,0,1,17.2,0,1,0 +5,0,0,0,0,0,11.84267,1,0,0 +2,0,0,0,0,0,11.84267,1,0,0 +7,0,0,0,0,0,11.84267,1,0,0 +5,0,0,0,0,0,11.84267,1,0,0 +6,0,0,0,0,0,11.84267,1,0,0 +10,3.258096,0,6.243779,7.630073,0,10.3,0,0,0 +7,3.258096,0,6.243779,7.630073,0,10.3,0,0,0 +7,3.258096,0,6.243779,7.630073,0,10.3,0,0,0 +3,3.258096,0,6.243779,7.630073,0,11.84267,0,1,0 +0,3.258096,0,6.243779,7.630073,0,11.84267,0,1,0 +1,3.258096,0,6.243779,7.630073,0,11.84267,0,1,0 +3,3.258096,0,6.243779,7.630073,0,11.84267,0,0,0 +3,3.258096,0,6.243779,7.630073,0,11.84267,0,0,0 +1,3.258096,0,6.243779,7.630073,0,11.84267,0,0,0 +0,0,0,0,0,0,13.8,1,0,0 +0,0,0,0,0,0,13.8,1,0,0 +0,0,0,0,0,0,13.8,1,0,0 +0,0,0,0,0,0,13.8,1,0,0 +0,0,0,0,0,0,13.8,1,0,0 +19,0,1,6.215408,5.755076,1,31,0,0,0 +19,0,1,6.215408,5.755076,1,31,0,0,0 +12,0,1,6.215408,5.755076,1,31,0,0,0 +2,0,1,6.215408,5.755076,0,3.4,0,0,0 +5,0,0,3.871201,0,1,10.3,0,0,0 +0,0,0,3.871201,0,1,10.3,0,0,0 +0,0,0,3.871201,0,1,10.3,0,0,0 +0,0,0,3.871201,0,1,13.8,0,0,0 +0,0,0,3.871201,0,1,13.8,0,0,0 +0,0,0,3.871201,0,1,13.8,0,0,0 +0,0,0,3.871201,0,0,3.4,0,0,0 +0,0,0,3.871201,0,0,3.4,0,0,0 +0,0,0,3.871201,0,0,3.4,0,0,0 +0,0,0,3.871201,0,0,17.2,0,0,0 +0,0,0,3.871201,0,0,17.2,0,0,0 +0,0,0,3.871201,0,0,17.2,0,0,0 +9,3.258096,0,6.291291,7.677586,0,17.2,0,0,0 +12,3.258096,0,6.291291,7.677586,0,17.2,0,0,0 +10,3.258096,0,6.291291,7.677586,0,17.2,0,0,0 +1,3.258096,0,6.291291,7.677586,0,10.3,0,0,0 +5,3.258096,0,6.291291,7.677586,0,10.3,0,0,0 +1,3.258096,0,6.291291,7.677586,0,11.84267,0,0,0 +3,3.258096,0,6.291291,7.677586,0,11.84267,0,0,0 +0,0,0,0,0,0,11.84267,0,0,0 +1,0,0,0,0,0,11.84267,0,0,0 +2,0,0,0,0,0,11.84267,0,0,0 +0,0,0,0,0,1,11.84267,0,1,0 +1,0,0,0,0,1,11.84267,0,1,0 +2,0,0,0,0,1,11.84267,0,1,0 +1,0,0,0,0,0,11.84267,0,1,0 +0,0,0,0,0,0,11.84267,0,1,0 +0,0,0,0,0,0,11.84267,0,1,0 +0,0,0,0,0,0,27.6,1,0,0 +6,0,0,0,0,0,27.6,1,0,0 +2,0,0,0,0,0,27.6,1,0,0 +14,0,0,0,0,1,11.84267,0,1,0 +8,0,0,0,0,1,11.84267,0,1,0 +3,0,0,0,0,1,11.84267,0,1,0 +3,0,0,0,0,0,11.84267,0,0,0 +1,0,0,0,0,0,11.84267,0,0,0 +1,0,0,0,0,0,11.84267,0,0,0 +4,3.258096,0,5.768321,7.154615,0,20.7,1,0,0 +4,3.258096,0,5.768321,7.154615,0,20.7,1,0,0 +7,3.258096,0,5.768321,7.154615,0,20.7,1,0,0 +3,3.258096,0,5.768321,7.154615,0,11.84267,0,0,0 +3,3.258096,0,5.768321,7.154615,0,11.84267,0,0,0 +0,3.258096,0,5.768321,7.154615,0,11.84267,0,0,0 +6,3.258096,0,6.659294,8.045588,0,11.84267,0,0,0 +7,3.258096,0,6.659294,8.045588,0,11.84267,0,0,0 +4,3.258096,0,6.659294,8.045588,0,11.84267,0,0,0 +3,3.258096,0,6.659294,8.045588,0,17.2,1,0,0 +0,3.258096,0,6.659294,8.045588,0,17.2,1,0,0 +3,3.258096,0,6.659294,8.045588,0,17.2,1,0,0 +1,3.258096,0,6.659294,8.045588,0,11.84267,0,0,0 +4,3.258096,0,6.659294,8.045588,0,11.84267,0,0,0 +1,3.258096,0,6.659294,8.045588,0,11.84267,0,0,0 +3,3.258096,0,6.659294,8.045588,0,11.84267,0,0,0 +5,3.258096,0,6.659294,8.045588,0,11.84267,0,0,0 +3,3.258096,0,6.659294,8.045588,0,11.84267,0,0,0 +6,3.258096,0,6.659294,8.045588,0,0,0,0,0 +0,3.258096,0,6.659294,8.045588,0,0,0,0,0 +0,3.258096,0,6.659294,8.045588,0,0,0,0,0 +5,0,0,4.736198,0,0,6.9,0,0,0 +8,0,0,4.736198,0,0,6.9,0,0,0 +7,0,0,4.736198,0,0,6.9,0,0,0 +4,0,0,4.736198,0,0,11.84267,1,0,0 +1,0,0,4.736198,0,0,11.84267,1,0,0 +4,0,0,4.736198,0,0,11.84267,1,0,0 +2,0,0,4.736198,0,0,11.84267,1,0,0 +3,0,0,4.736198,0,0,11.84267,1,0,0 +2,0,0,4.736198,0,0,11.84267,1,0,0 +8,4.564348,0,5.584999,3.628682,0,17.2,0,0,0 +2,4.564348,0,5.584999,3.628682,0,17.2,0,0,0 +3,4.564348,0,5.584999,3.628682,0,17.2,0,0,0 +12,4.564348,0,5.675383,5.726676,1,24.1,0,1,0 +4,4.564348,0,5.675383,5.726676,1,24.1,0,1,0 +15,4.564348,0,5.675383,5.726676,1,24.1,0,1,0 +3,4.564348,0,5.675383,5.726676,1,3.4,0,1,0 +1,4.564348,0,5.675383,5.726676,1,3.4,0,1,0 +2,4.564348,0,5.675383,5.726676,1,3.4,0,1,0 +0,4.564348,0,5.675383,5.726676,0,6.9,0,1,0 +1,4.564348,0,5.675383,5.726676,0,6.9,0,1,0 +1,4.564348,0,5.675383,5.726676,0,6.9,0,1,0 +8,4.564348,0,5.675383,5.726676,0,0,1,0,0 +5,4.564348,0,5.675383,5.726676,0,0,1,0,0 +0,4.564348,0,5.675383,5.726676,0,0,1,0,0 +2,4.564348,0,5.675383,5.726676,1,6.9,1,0,0 +5,4.564348,0,5.675383,5.726676,1,6.9,1,0,0 +5,4.564348,0,5.675383,5.726676,1,6.9,1,0,0 +1,3.258096,0,0,7.495542,0,10.3,0,1,0 +1,3.258096,0,0,7.495542,0,10.3,0,1,0 +1,3.258096,0,0,7.495542,0,10.3,0,1,0 +1,3.258096,0,0,7.495542,0,10.3,0,1,0 +0,3.258096,0,0,7.495542,0,10.3,0,1,0 +19,4.564348,0,4.848116,4.89941,0,11.84267,0,0,0 +1,4.564348,0,4.848116,4.89941,0,13.8,0,0,0 +15,4.564348,0,6.907755,6.959049,1,20.7,0,1,0 +26,4.564348,0,6.907755,6.959049,1,20.7,0,1,0 +40,4.564348,0,6.907755,6.959049,1,20.7,0,1,0 +1,4.564348,0,6.907755,6.959049,0,10.3,1,0,0 +2,4.564348,0,6.907755,6.959049,0,10.3,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.3,1,0,0 +10,0,0,5.301911,0,1,17.2,1,0,0 +10,0,0,5.301911,0,1,17.2,1,0,0 +3,0,0,5.301911,0,1,17.2,1,0,0 +3,0,0,5.301911,0,1,17.2,1,0,0 +1,0,0,5.301911,0,1,17.2,1,0,0 +0,4.564348,0,0,6.566006,0,11.84267,0,0,0 +0,4.564348,0,0,6.566006,0,11.84267,0,0,0 +0,4.564348,0,0,6.566006,0,11.84267,0,0,0 +2,4.564348,0,5.087596,5.061929,0,17.2,1,0,0 +0,4.564348,0,5.087596,5.061929,0,17.2,1,0,0 +0,4.564348,0,5.087596,5.061929,0,17.2,1,0,0 +8,4.564348,0,5.087596,5.061929,0,13.8,1,0,0 +0,4.564348,0,5.087596,5.061929,0,13.8,1,0,0 +0,4.564348,0,5.087596,5.061929,0,13.8,1,0,0 +0,0,1,5.703783,5.755076,0,11.84267,0,0,0 +0,0,1,5.703783,5.755076,0,11.84267,0,0,0 +0,0,1,5.703783,5.755076,0,11.84267,0,0,0 +0,0,1,5.703783,5.755076,0,10.3,0,0,0 +0,0,1,5.703783,5.755076,0,10.3,0,0,0 +0,0,1,5.703783,5.755076,0,10.3,0,0,0 +13,3.258096,0,6.907755,8.294049,0,27.6,1,0,0 +7,3.258096,0,6.907755,8.294049,0,27.6,1,0,0 +15,3.258096,0,6.907755,8.294049,0,27.6,1,0,0 +2,0,1,6.145901,5.061929,0,17.2,0,0,0 +2,0,0,0,0,0,6.9,0,0,0 +2,0,0,0,0,0,6.9,0,0,0 +0,0,0,0,0,0,6.9,0,0,0 +1,0,0,5.941539,0,0,11.84267,0,0,0 +3,0,0,5.941539,0,0,11.84267,0,0,0 +2,0,0,5.941539,0,0,11.84267,0,0,0 +3,0,0,5.941539,0,0,11.84267,1,0,0 +7,0,0,5.941539,0,0,11.84267,1,0,0 +2,0,0,5.941539,0,0,11.84267,1,0,0 +6,0,0,5.941539,0,0,34.5,0,0,0 +7,0,0,5.941539,0,0,34.5,0,0,0 +3,0,0,5.941539,0,0,34.5,0,0,0 +2,0,0,0,0,1,17.2,1,0,0 +0,0,0,0,0,1,17.2,1,0,0 +4,0,0,0,0,1,17.2,1,0,0 +1,0,0,0,0,0,3.4,0,0,0 +2,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +8,0,0,0,0,0,11.84267,0,0,0 +2,0,0,0,0,0,11.84267,0,0,0 +4,0,0,0,0,0,11.84267,0,0,0 +4,0,0,0,0,0,34.5,1,0,0 +13,0,0,0,0,0,34.5,1,0,0 +10,0,0,0,0,0,34.5,1,0,0 +16,0,0,0,0,0,11.84267,1,0,0 +5,0,0,0,0,0,11.84267,1,0,0 +2,0,0,0,0,0,11.84267,1,0,0 +6,0,0,0,0,0,3.4,0,0,0 +6,0,0,0,0,0,3.4,0,0,0 +7,0,0,0,0,0,3.4,0,0,0 +1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0 +1,0,0,0,0,0,0,0,0,0 +0,3.258096,0,3.871201,5.257495,0,3.4,1,0,0 +10,3.258096,0,3.871201,5.257495,0,3.4,1,0,0 +4,3.258096,0,3.871201,5.257495,0,3.4,1,0,0 +0,3.258096,0,3.871201,5.257495,0,3.4,1,0,0 +4,3.258096,0,3.871201,5.257495,0,3.4,1,0,0 +1,3.258096,0,3.871201,5.257495,1,10.3,1,0,0 +0,3.258096,0,3.871201,5.257495,1,10.3,1,0,0 +5,3.258096,0,3.871201,5.257495,1,10.3,1,0,0 +2,3.258096,0,3.871201,5.257495,1,10.3,1,0,0 +4,3.258096,0,3.871201,5.257495,1,10.3,1,0,0 +24,3.258096,0,3.871201,5.257495,0,10.3,1,0,0 +16,3.258096,0,3.871201,5.257495,0,10.3,1,0,0 +9,3.258096,0,3.871201,5.257495,0,10.3,1,0,0 +4,3.258096,0,3.871201,5.257495,0,10.3,1,0,0 +4,3.258096,0,3.871201,5.257495,0,10.3,1,0,0 +0,3.258096,0,3.871201,5.257495,0,3.4,1,0,0 +1,3.258096,0,3.871201,5.257495,0,3.4,1,0,0 +0,3.258096,0,3.871201,5.257495,0,3.4,1,0,0 +0,3.258096,0,3.871201,5.257495,0,3.4,1,0,0 +0,3.258096,0,3.871201,5.257495,0,3.4,1,0,0 +10,0,0,5.622572,0,0,13.8,0,0,0 +9,0,0,5.622572,0,0,13.8,0,0,0 +1,0,0,5.622572,0,0,13.8,0,0,0 +2,0,0,5.622572,0,0,3.4,0,0,0 +3,0,0,5.622572,0,0,3.4,0,0,0 +1,0,0,5.622572,0,0,3.4,0,0,0 +1,0,1,6.109248,6.160541,0,0,0,1,0 +0,0,1,6.109248,6.160541,0,0,0,1,0 +2,0,1,6.109248,6.160541,0,0,0,1,0 +0,0,1,6.109248,6.160541,0,11.84267,0,0,0 +0,0,1,6.109248,6.160541,0,11.84267,0,0,0 +0,0,1,6.109248,6.160541,0,11.84267,0,0,0 +1,0,1,6.109248,6.160541,0,10.3,1,0,0 +0,0,1,6.109248,6.160541,0,10.3,1,0,0 +16,0,1,6.109248,6.160541,0,10.3,1,0,0 +0,0,1,6.109248,6.160541,0,11.84267,0,0,0 +0,0,1,6.109248,6.160541,0,11.84267,0,0,0 +0,0,1,6.109248,6.160541,0,11.84267,0,0,0 +2,4.564348,0,6.300786,6.352079,0,11.84267,0,0,0 +1,4.564348,0,6.300786,6.352079,0,11.84267,0,0,0 +4,4.564348,0,6.300786,6.352079,0,17.2,0,0,0 +0,0,0,0,0,0,13.8,0,0,0 +0,0,0,0,0,0,13.8,0,0,0 +2,0,0,0,0,0,13.8,0,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +2,4.564348,0,6.907755,6.959049,0,10.3,0,1,0 +2,4.564348,0,6.907755,6.959049,0,10.3,0,1,0 +5,4.564348,0,6.907755,6.959049,0,10.3,0,1,0 +1,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +2,4.564348,0,6.907755,6.959049,0,10.3,1,0,0 +6,4.564348,0,6.907755,6.959049,0,10.3,1,0,0 +2,4.564348,0,6.907755,6.959049,0,11.84267,1,0,0 +3,4.564348,0,6.907755,6.959049,0,11.84267,1,0,0 +0,4.564348,0,6.907755,6.959049,0,11.84267,1,0,0 +8,4.564348,0,6.907755,6.959049,1,37.9,0,1,0 +5,4.564348,0,6.907755,6.959049,1,37.9,0,1,0 +7,4.564348,0,6.907755,6.959049,1,37.9,0,1,0 +3,0,0,6.351409,0,1,11.84267,0,0,0 +3,0,0,6.351409,0,1,11.84267,0,0,0 +0,0,0,6.351409,0,1,11.84267,0,0,0 +3,0,0,6.351409,0,0,11.84267,0,0,0 +1,0,0,6.351409,0,0,11.84267,0,0,0 +0,0,0,6.351409,0,0,11.84267,0,0,0 +3,0,0,6.351409,0,1,10.3,1,0,0 +2,0,0,6.351409,0,1,10.3,1,0,0 +3,0,0,6.351409,0,1,10.3,1,0,0 +4,0,0,3.583519,0,0,17.2,1,0,0 +3,0,0,3.583519,0,0,17.2,1,0,0 +9,0,0,3.583519,0,0,17.2,1,0,0 +2,0,0,0,0,1,20.7,0,0,0 +3,0,0,0,0,1,20.7,0,0,0 +2,0,0,0,0,1,20.7,0,0,0 +7,0,0,0,0,1,10.3,1,0,0 +11,0,0,0,0,1,10.3,1,0,0 +4,0,0,0,0,1,10.3,1,0,0 +5,3.258096,0,0,5.075174,0,17.2,0,0,0 +6,3.258096,0,0,5.075174,0,17.2,0,0,0 +13,3.258096,0,0,5.075174,0,17.2,0,0,0 +0,4.564348,0,0,6.619512,0,3.4,0,0,0 +0,4.564348,0,0,6.619512,0,3.4,0,0,0 +0,4.564348,0,0,6.619512,0,3.4,0,0,0 +2,4.564348,0,0,6.619512,0,3.4,1,0,0 +2,4.564348,0,0,6.619512,0,3.4,1,0,0 +0,4.564348,0,0,6.619512,0,3.4,1,0,0 +0,4.564348,0,0,6.619512,0,11.84267,0,0,0 +1,4.564348,0,0,6.619512,0,11.84267,0,0,0 +1,4.564348,0,0,6.619512,0,11.84267,0,0,0 +0,0,1,5.010635,5.061929,0,17.2,0,0,0 +0,4.564348,0,6.907755,6.959049,1,27.6,0,0,0 +0,4.564348,0,6.907755,6.959049,1,27.6,0,0,0 +0,4.564348,0,6.907755,6.959049,1,27.6,0,0,0 +2,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +1,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +1,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +1,4.564348,0,6.907755,6.959049,0,31,0,0,0 +2,4.564348,0,6.907755,6.959049,0,31,0,0,0 +2,4.564348,0,6.907755,6.959049,0,31,0,0,0 +1,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +3,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +1,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +5,0,0,5.678431,0,1,27.6,1,0,0 +2,0,0,5.678431,0,1,27.6,1,0,0 +3,0,0,5.678431,0,1,27.6,1,0,0 +0,0,1,5.831296,5.061929,1,17.2,0,0,0 +1,0,1,5.831296,5.061929,1,17.2,0,0,0 +0,0,1,5.831296,5.061929,1,17.2,0,0,0 +0,0,1,0,5.061929,0,0,0,0,0 +2,0,1,0,5.061929,0,0,0,0,0 +0,0,1,0,5.061929,0,0,0,0,0 +7,0,1,6.109248,6.160541,0,11.84267,1,0,0 +11,0,1,6.109248,6.160541,0,11.84267,1,0,0 +1,0,1,6.109248,6.160541,0,11.84267,1,0,0 +5,0,1,6.109248,6.160541,0,13.8,1,0,0 +10,0,1,6.109248,6.160541,0,13.8,1,0,0 +6,0,1,6.109248,6.160541,0,13.8,1,0,0 +24,0,1,6.109248,6.160541,1,11.84267,0,1,0 +39,0,1,6.109248,6.160541,1,11.84267,0,1,0 +12,0,1,6.109248,6.160541,1,11.84267,0,1,0 +8,0,1,6.109248,6.160541,0,6.9,1,0,0 +6,0,1,6.109248,6.160541,0,6.9,1,0,0 +2,0,1,6.109248,6.160541,0,6.9,1,0,0 +3,0,0,0,0,0,11.84267,0,0,0 +4,0,0,0,0,1,20.7,0,1,0 +5,0,0,0,0,1,17.2,1,0,0 +2,3.258096,0,6.802839,8.189134,0,11.84267,0,0,0 +2,3.258096,0,6.802839,8.189134,0,11.84267,0,0,0 +11,3.258096,0,6.802839,8.189134,0,11.84267,0,0,0 +12,3.258096,0,6.802839,8.189134,0,11.84267,0,0,0 +5,3.258096,0,6.802839,8.189134,0,11.84267,0,0,0 +1,3.258096,0,6.802839,8.189134,1,10.3,1,0,0 +4,3.258096,0,6.802839,8.189134,1,10.3,1,0,0 +5,3.258096,0,6.802839,8.189134,1,10.3,1,0,0 +29,3.258096,0,6.802839,8.189134,1,10.3,1,0,0 +11,3.258096,0,6.802839,8.189134,1,20.7,1,0,0 +3,3.258096,0,6.802839,8.189134,1,20.7,1,0,0 +14,3.258096,0,6.802839,8.189134,1,20.7,1,0,0 +5,3.258096,0,6.802839,8.189134,1,20.7,1,0,0 +5,3.258096,0,6.802839,8.189134,1,20.7,1,0,0 +2,0,1,6.109248,6.160541,0,11.84267,1,0,0 +1,0,1,6.109248,6.160541,0,11.84267,1,0,0 +0,0,1,6.109248,6.160541,0,11.84267,1,0,0 +2,0,1,6.109248,6.160541,0,3.4,0,0,1 +1,0,1,6.109248,6.160541,0,3.4,0,0,1 +0,0,1,6.109248,6.160541,0,3.4,0,0,1 +0,0,1,6.109248,6.160541,0,3.4,0,1,0 +1,0,1,6.109248,6.160541,0,3.4,0,1,0 +0,0,1,6.109248,6.160541,0,3.4,0,1,0 +0,0,1,6.109248,6.160541,0,0,0,1,0 +0,0,1,6.109248,6.160541,0,0,0,1,0 +0,0,1,6.109248,6.160541,0,0,0,1,0 +0,0,1,6.109248,6.160541,0,6.9,0,1,0 +3,0,1,6.109248,6.160541,0,6.9,0,1,0 +0,0,1,6.109248,6.160541,0,6.9,0,1,0 +0,0,1,5.010635,5.061929,0,0,1,0,0 +2,0,1,5.010635,5.061929,0,0,1,0,0 +0,0,1,5.010635,5.061929,0,0,1,0,0 +3,3.258096,0,6.907755,8.294049,0,13.8,0,0,0 +1,3.258096,0,6.907755,8.294049,0,13.8,0,0,0 +0,3.258096,0,6.907755,8.294049,0,13.8,0,0,0 +9,3.258096,0,6.907755,8.294049,1,27.6,1,0,0 +7,3.258096,0,6.907755,8.294049,1,27.6,1,0,0 +19,3.258096,0,6.907755,8.294049,1,27.6,1,0,0 +0,3.258096,0,6.907755,8.294049,1,17.2,0,0,0 +0,3.258096,0,6.907755,8.294049,1,17.2,0,0,0 +4,3.258096,0,6.907755,8.294049,1,17.2,0,0,0 +0,3.258096,0,6.907755,8.294049,0,3.4,0,0,0 +0,3.258096,0,6.907755,8.294049,0,3.4,0,0,0 +2,3.258096,0,6.907755,8.294049,0,3.4,0,0,0 +4,0,0,0,0,1,13.8,1,0,0 +4,0,0,0,0,1,13.8,1,0,0 +12,0,0,0,0,1,13.8,1,0,0 +8,0,0,0,0,1,13.8,1,0,0 +52,0,0,0,0,1,13.8,1,0,0 +4,0,0,0,0,0,11.84267,0,0,0 +0,0,0,0,0,0,11.84267,0,0,0 +11,0,0,0,0,0,11.84267,0,0,0 +5,0,0,0,0,0,11.84267,0,0,0 +0,0,0,0,0,0,11.84267,0,0,0 +3,0,0,0,0,0,11.84267,0,0,0 +6,0,0,0,0,0,11.84267,0,0,0 +11,0,0,0,0,0,11.84267,0,0,0 +8,0,0,0,0,0,11.84267,0,0,0 +8,0,0,0,0,0,11.84267,0,0,0 +1,0,0,0,0,0,10.3,0,0,0 +0,0,0,0,0,0,10.3,0,0,0 +0,0,0,0,0,0,10.3,0,0,0 +0,0,0,0,0,0,10.3,0,0,0 +6,0,0,0,0,0,10.3,0,0,0 +11,0,0,5.981414,0,1,10.3,1,0,0 +15,0,0,5.981414,0,1,10.3,1,0,0 +13,0,0,5.981414,0,1,10.3,1,0,0 +13,0,0,5.981414,0,1,10.3,1,0,0 +11,0,0,5.981414,0,1,10.3,1,0,0 +0,0,0,5.192957,0,0,3.4,0,0,0 +0,0,0,5.192957,0,0,3.4,0,0,0 +1,0,0,5.192957,0,0,3.4,0,0,0 +3,0,0,5.192957,0,0,6.9,0,0,0 +3,0,0,5.192957,0,0,6.9,0,0,0 +2,0,0,5.192957,0,0,6.9,0,0,0 +1,0,0,5.192957,0,0,0,0,0,0 +2,0,0,5.192957,0,0,0,0,0,0 +2,0,0,5.192957,0,0,0,0,0,0 +5,0,0,5.192957,0,1,13.8,0,0,1 +1,0,0,5.192957,0,1,13.8,0,0,1 +3,0,0,5.192957,0,1,13.8,0,0,1 +1,4.564348,0,6.720943,6.772237,0,17.2,1,0,0 +1,4.564348,0,6.720943,6.772237,0,17.2,1,0,0 +5,4.564348,0,6.720943,6.772237,0,17.2,1,0,0 +4,4.564348,0,6.720943,6.772237,0,11.84267,0,0,0 +1,4.564348,0,6.720943,6.772237,0,11.84267,0,0,0 +2,4.564348,0,6.720943,6.772237,0,11.84267,0,0,0 +1,4.564348,0,6.720943,6.772237,0,13.8,1,0,0 +4,4.564348,0,6.720943,6.772237,0,13.8,1,0,0 +0,4.564348,0,6.720943,6.772237,0,13.8,1,0,0 +9,4.564348,0,6.720943,6.772237,0,11.84267,1,0,0 +1,4.564348,0,6.720943,6.772237,0,10.3,0,0,0 +0,4.564348,0,6.720943,6.772237,0,10.3,0,0,0 +0,4.564348,0,6.720943,6.772237,0,10.3,0,0,0 +2,4.564348,0,6.720943,6.772237,0,10.3,0,1,0 +4,4.564348,0,6.720943,6.772237,0,11.84267,0,1,0 +0,4.564348,0,6.720943,6.772237,0,11.84267,0,1,0 +2,4.564348,0,6.720943,6.772237,0,11.84267,0,1,0 +2,4.564348,0,6.720943,6.772237,0,11.84267,0,0,0 +2,4.564348,0,6.720943,6.772237,0,11.84267,0,0,0 +0,4.564348,0,6.720943,6.772237,0,11.84267,0,0,0 +1,0,1,6.109248,6.160541,0,20.7,0,0,0 +3,0,1,6.109248,6.160541,0,20.7,0,0,0 +2,0,1,6.109248,6.160541,0,20.7,0,0,0 +4,0,1,6.109248,6.160541,0,20.7,0,0,0 +8,0,1,6.109248,6.160541,0,20.7,0,0,0 +1,0,1,6.109248,6.160541,0,11.84267,0,0,0 +1,0,1,6.109248,6.160541,0,11.84267,0,0,0 +0,0,1,6.109248,6.160541,0,11.84267,0,0,0 +4,0,1,6.109248,6.160541,0,11.84267,0,0,0 +6,0,1,6.109248,6.160541,0,11.84267,0,0,0 +2,0,1,6.109248,6.160541,1,17.2,0,1,0 +9,0,1,6.109248,6.160541,1,17.2,0,1,0 +6,0,1,6.109248,6.160541,1,17.2,0,1,0 +5,0,1,6.109248,6.160541,1,17.2,0,1,0 +3,0,1,6.109248,6.160541,1,17.2,0,1,0 +19,0,1,5.010635,5.061929,0,31,0,0,0 +32,0,1,5.010635,5.061929,0,31,0,0,0 +3,0,1,5.010635,5.061929,0,31,0,0,0 +3,4.564348,0,6.907755,6.959049,0,6.9,1,0,0 +1,4.564348,0,6.907755,6.959049,0,6.9,1,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,1,0,0 +0,4.564348,0,5.975564,6.448223,0,17.2,1,0,0 +0,4.564348,0,5.975564,6.448223,0,17.2,1,0,0 +0,4.564348,0,5.975564,6.448223,0,17.2,1,0,0 +7,0,1,6.109248,6.160541,0,13.8,0,0,0 +2,0,1,6.109248,6.160541,0,13.8,0,0,0 +10,0,1,6.109248,6.160541,0,13.8,0,0,0 +2,0,1,6.109248,6.160541,0,20.7,0,0,0 +2,0,1,6.109248,6.160541,0,20.7,0,0,0 +6,0,1,6.109248,6.160541,0,20.7,0,0,0 +1,0,1,6.109248,6.160541,0,10.3,0,0,0 +1,0,1,6.109248,6.160541,0,10.3,0,0,0 +1,0,1,6.109248,6.160541,0,10.3,0,0,0 +2,0,1,6.109248,6.160541,0,10.3,0,0,0 +7,0,0,0,0,0,11.84267,0,0,0 +3,0,0,0,0,0,11.84267,0,0,0 +3,0,0,0,0,0,11.84267,0,0,0 +5,0,0,0,0,0,11.84267,1,0,0 +1,0,0,0,0,0,11.84267,1,0,0 +2,0,0,0,0,0,11.84267,1,0,0 +1,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +3,0,0,0,0,0,3.4,0,0,0 +2,0,0,0,0,0,11.84267,1,0,0 +1,0,0,0,0,0,11.84267,1,0,0 +2,0,0,0,0,0,11.84267,1,0,0 +4,0,1,5.010635,5.061929,0,27.6,1,0,0 +1,0,1,5.010635,5.061929,0,27.6,1,0,0 +2,0,1,5.010635,5.061929,0,27.6,1,0,0 +3,0,1,5.010635,5.061929,0,27.6,1,0,0 +3,0,1,5.010635,5.061929,0,27.6,1,0,0 +3,0,0,0,0,0,0,1,0,0 +2,0,0,0,0,0,0,1,0,0 +2,0,0,0,0,0,0,1,0,0 +0,0,0,0,0,0,11.84267,0,0,0 +2,0,0,0,0,0,11.84267,0,0,0 +1,0,0,0,0,0,11.84267,0,0,0 +0,0,0,0,0,0,11.84267,1,0,0 +2,0,0,0,0,0,11.84267,1,0,0 +5,0,0,0,0,0,11.84267,1,0,0 +7,0,0,0,0,0,17.2,1,0,0 +4,0,0,0,0,0,17.2,1,0,0 +3,0,0,0,0,0,17.2,1,0,0 +0,3.258096,0,6.146436,7.532731,0,6.9,1,0,0 +0,3.258096,0,6.146436,7.532731,0,6.9,1,0,0 +1,3.258096,0,6.146436,7.532731,0,6.9,1,0,0 +1,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +0,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +4,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +2,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +1,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +0,4.564348,0,6.907755,6.959049,0,0,1,0,0 +1,4.564348,0,6.907755,6.959049,0,0,1,0,0 +0,4.564348,0,6.907755,6.959049,0,0,1,0,0 +1,4.564348,0,6.907755,6.959049,0,0,1,0,0 +1,4.564348,0,6.907755,6.959049,0,0,1,0,0 +1,4.564348,0,6.907755,6.959049,0,10.3,1,0,0 +9,4.564348,0,6.907755,6.959049,0,10.3,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.3,1,0,0 +1,4.564348,0,6.907755,6.959049,0,10.3,1,0,0 +2,4.564348,0,6.907755,6.959049,0,10.3,1,0,0 +2,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +3,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +2,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +3,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +2,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +4,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +2,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +2,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +34,3.258096,0,6.282267,7.668561,1,31,0,1,0 +13,3.258096,0,6.282267,7.668561,0,10.3,0,1,0 +2,0,1,6.645819,6.160541,0,24.1,1,0,0 +4,0,1,6.645819,6.160541,0,24.1,1,0,0 +1,0,1,6.645819,6.160541,0,24.1,1,0,0 +9,0,1,6.645819,6.160541,0,11.84267,0,0,0 +35,0,1,6.645819,6.160541,0,11.84267,0,0,0 +30,0,1,6.645819,6.160541,0,11.84267,0,0,0 +5,0,1,6.645819,6.160541,0,11.84267,0,0,0 +2,0,1,6.645819,6.160541,0,11.84267,0,0,0 +1,0,1,6.645819,6.160541,0,11.84267,0,0,0 +0,0,1,6.645819,6.160541,0,17.2,0,0,0 +1,0,1,6.645819,6.160541,0,17.2,0,0,0 +0,0,1,6.645819,6.160541,0,17.2,0,0,0 +4,0,0,0,0,0,3.4,0,0,0 +3,0,0,0,0,0,3.4,0,0,0 +3,0,0,0,0,0,3.4,0,0,0 +3,0,0,0,0,0,6.9,0,0,0 +4,0,0,0,0,0,6.9,0,0,0 +1,0,0,0,0,0,6.9,0,0,0 +1,0,0,0,0,1,0,0,0,0 +2,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0 +7,0,0,0,0,1,34.5,1,0,0 +2,0,0,0,0,1,34.5,1,0,0 +1,0,0,0,0,1,34.5,1,0,0 +2,0,1,5.703783,5.755076,0,11.84267,1,0,0 +2,0,1,5.703783,5.755076,0,11.84267,1,0,0 +4,0,1,5.703783,5.755076,0,11.84267,1,0,0 +3,0,1,5.703783,5.755076,0,24.1,1,0,0 +1,0,1,5.703783,5.755076,0,24.1,1,0,0 +1,0,1,5.703783,5.755076,0,24.1,1,0,0 +5,0,1,5.703783,5.755076,0,13.8,1,0,0 +11,0,1,5.703783,5.755076,0,13.8,1,0,0 +1,0,1,5.703783,5.755076,0,13.8,1,0,0 +0,0,1,5.703783,5.755076,0,10.3,0,1,0 +2,0,1,5.703783,5.755076,0,10.3,0,1,0 +6,0,1,5.703783,5.755076,0,10.3,0,1,0 +4,0,0,4.162003,0,0,10.3,0,0,0 +1,0,0,4.162003,0,0,10.3,0,0,0 +5,0,0,4.162003,0,0,10.3,0,0,0 +8,0,0,4.162003,0,0,10.3,0,0,0 +6,0,0,4.162003,0,0,10.3,0,0,0 +3,0,1,0,5.061929,1,13.8,0,1,0 +1,0,1,0,5.061929,1,13.8,0,1,0 +3,0,1,0,5.061929,1,13.8,0,1,0 +2,0,1,0,5.061929,1,13.8,0,1,0 +3,0,1,0,5.061929,1,13.8,0,1,0 +0,3.258096,0,6.200509,8.248006,0,6.9,0,0,0 +0,3.258096,0,6.200509,8.248006,0,6.9,0,0,0 +0,3.258096,0,6.200509,8.248006,0,6.9,0,0,0 +3,3.258096,0,6.200509,8.248006,0,10.3,0,0,0 +2,3.258096,0,6.200509,8.248006,0,10.3,0,0,0 +5,3.258096,0,6.200509,8.248006,0,10.3,0,0,0 +3,3.258096,0,6.907755,8.294049,0,6.9,0,0,0 +1,3.258096,0,6.907755,8.294049,0,6.9,0,0,0 +3,3.258096,0,6.907755,8.294049,0,6.9,0,0,0 +2,3.258096,0,6.907755,8.294049,0,13.8,0,0,0 +2,3.258096,0,6.907755,8.294049,0,13.8,0,0,0 +3,3.258096,0,6.907755,8.294049,0,13.8,0,0,0 +3,3.258096,0,6.907755,8.294049,0,13.8,0,0,0 +0,3.258096,0,6.907755,8.294049,0,13.8,0,0,0 +0,3.258096,0,6.907755,8.294049,0,13.8,0,0,0 +0,3.258096,0,6.907755,8.294049,0,6.9,0,0,0 +0,3.258096,0,6.907755,8.294049,0,6.9,0,0,0 +1,3.258096,0,6.907755,8.294049,0,6.9,0,0,0 +5,4.564348,0,0,6.529803,1,13.8,0,0,0 +7,4.564348,0,0,6.529803,1,13.8,0,0,0 +3,4.564348,0,0,6.529803,1,13.8,0,0,0 +4,4.564348,0,0,6.529803,0,17.2,0,0,1 +1,4.564348,0,0,6.529803,0,17.2,0,0,1 +0,4.564348,0,0,6.529803,0,17.2,0,0,1 +6,4.564348,0,0,6.529803,1,11.84267,0,0,0 +2,4.564348,0,0,6.529803,1,11.84267,0,0,0 +3,4.564348,0,0,6.529803,1,11.84267,0,0,0 +2,4.564348,0,0,6.529803,0,11.84267,0,0,0 +1,4.564348,0,0,6.529803,0,11.84267,0,0,0 +6,4.564348,0,0,6.529803,0,11.84267,0,0,0 +1,0,0,5.496512,0,0,20.7,0,0,0 +5,0,0,5.496512,0,0,20.7,0,0,0 +1,0,0,5.496512,0,0,20.7,0,0,0 +1,0,0,5.496512,0,0,6.9,0,0,0 +4,0,0,5.496512,0,0,6.9,0,0,0 +6,0,0,5.496512,0,0,6.9,0,0,0 +38,0,0,0,0,0,3.4,0,0,0 +26,0,0,0,0,0,3.4,0,0,0 +32,0,0,0,0,0,3.4,0,0,0 +2,4.564348,0,6.703188,6.754481,0,24.1,1,0,0 +8,4.564348,0,6.703188,6.754481,0,24.1,1,0,0 +10,4.564348,0,6.703188,6.754481,0,24.1,1,0,0 +0,0,0,0,0,0,0,0,0,0 +2,0,0,0,0,0,0,0,0,0 +1,0,0,0,0,0,0,0,0,0 +2,0,0,0,0,0,0,0,0,0 +3,0,0,0,0,0,0,0,0,0 +4,0,0,0,0,0,11.84267,1,0,0 +2,0,0,0,0,0,11.84267,1,0,0 +8,0,0,0,0,0,11.84267,1,0,0 +4,0,0,0,0,0,11.84267,1,0,0 +4,0,0,0,0,0,11.84267,1,0,0 +2,0,0,0,0,0,11.84267,0,0,0 +0,0,0,0,0,0,11.84267,0,0,0 +1,0,0,0,0,0,11.84267,0,0,0 +6,0,0,0,0,0,11.84267,0,0,0 +2,0,0,0,0,0,11.84267,0,0,0 +5,0,0,0,0,0,10.3,1,0,0 +5,0,0,0,0,0,10.3,1,0,0 +4,0,0,0,0,0,10.3,1,0,0 +2,0,0,0,0,0,10.3,1,0,0 +5,0,0,0,0,0,10.3,1,0,0 +3,0,0,0,0,0,11.84267,0,0,0 +6,0,0,0,0,0,11.84267,0,0,0 +4,0,0,0,0,0,11.84267,0,0,0 +6,0,0,0,0,0,11.84267,0,0,0 +4,0,0,0,0,0,11.84267,0,0,0 +3,3.258096,0,6.098074,7.484369,0,24.1,1,0,0 +0,3.258096,0,6.098074,7.484369,0,24.1,1,0,0 +1,3.258096,0,6.098074,7.484369,0,24.1,1,0,0 +3,0,1,5.852662,5.755076,0,17.2,1,0,0 +1,0,1,5.852662,5.755076,0,17.2,1,0,0 +1,0,1,5.852662,5.755076,0,17.2,1,0,0 +20,0,1,5.852662,5.755076,1,27.6,0,1,0 +38,0,1,5.852662,5.755076,1,27.6,0,1,0 +26,0,1,5.852662,5.755076,1,27.6,0,1,0 +4,3.258096,0,6.907755,8.294049,0,10.3,0,0,0 +1,3.258096,0,6.907755,8.294049,0,10.3,0,0,0 +0,3.258096,0,6.907755,8.294049,0,10.3,0,0,0 +1,3.258096,0,6.907755,8.294049,1,6.9,0,0,0 +0,3.258096,0,6.907755,8.294049,1,6.9,0,0,0 +0,3.258096,0,6.907755,8.294049,1,6.9,0,0,0 +1,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +0,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +1,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +2,3.258096,0,5.886104,7.272398,1,27.6,0,0,0 +9,3.258096,0,5.886104,7.272398,1,27.6,0,0,0 +3,3.258096,0,5.886104,7.272398,1,27.6,0,0,0 +6,3.258096,0,5.886104,7.272398,1,27.6,0,0,0 +3,3.258096,0,5.886104,7.272398,1,27.6,0,0,0 +5,3.258096,0,5.886104,7.272398,1,11.84267,0,1,0 +12,3.258096,0,5.886104,7.272398,1,11.84267,0,1,0 +2,3.258096,0,5.886104,7.272398,1,11.84267,0,1,0 +2,3.258096,0,5.886104,7.272398,1,11.84267,0,1,0 +2,3.258096,0,5.886104,7.272398,1,11.84267,0,1,0 +8,3.258096,0,5.886104,7.272398,1,17.2,0,0,0 +13,3.258096,0,5.886104,7.272398,1,17.2,0,0,0 +8,3.258096,0,5.886104,7.272398,1,17.2,0,0,0 +5,3.258096,0,5.886104,7.272398,1,17.2,0,0,0 +1,3.258096,0,5.886104,7.272398,1,17.2,0,0,0 +9,3.258096,0,5.886104,7.272398,0,11.84267,0,0,0 +11,3.258096,0,5.886104,7.272398,0,11.84267,0,0,0 +5,3.258096,0,5.886104,7.272398,0,11.84267,0,0,0 +3,3.258096,0,5.886104,7.272398,0,11.84267,0,0,0 +0,3.258096,0,5.886104,7.272398,0,11.84267,0,0,0 +5,0,1,6.109248,6.160541,0,11.84267,0,0,0 +4,0,1,6.109248,6.160541,0,11.84267,0,0,0 +0,0,1,6.109248,6.160541,0,11.84267,0,0,0 +9,0,1,6.109248,6.160541,0,13.8,1,0,0 +3,0,1,6.109248,6.160541,0,13.8,1,0,0 +4,0,1,6.109248,6.160541,0,13.8,1,0,0 +7,0,1,6.109248,6.160541,0,11.84267,0,0,0 +3,0,1,6.109248,6.160541,0,11.84267,0,0,0 +2,0,1,6.109248,6.160541,0,11.84267,0,0,0 +9,0,1,6.109248,6.160541,0,11.84267,0,0,0 +1,0,1,6.109248,6.160541,0,11.84267,0,0,0 +0,0,1,6.109248,6.160541,0,11.84267,0,0,0 +9,0,0,0,0,1,31,0,1,0 +5,0,0,0,0,1,31,0,1,0 +24,0,0,0,0,1,31,0,1,0 +6,0,0,0,0,1,17.2,0,1,0 +4,0,0,0,0,1,17.2,0,1,0 +2,0,0,0,0,1,17.2,0,1,0 +1,0,0,0,0,0,11.84267,0,0,0 +0,0,0,0,0,0,11.84267,0,0,0 +0,0,0,0,0,0,11.84267,0,0,0 +1,0,0,0,0,0,11.84267,0,0,0 +2,0,0,0,0,0,11.84267,0,0,0 +0,0,0,0,0,0,11.84267,0,0,0 +0,0,0,0,0,0,11.84267,0,0,0 +1,0,0,0,0,0,11.84267,0,0,0 +1,0,0,0,0,0,11.84267,0,0,0 +1,0,0,0,0,0,24.1,0,0,0 +2,0,0,0,0,0,24.1,0,0,0 +2,0,0,0,0,0,24.1,0,0,0 +10,4.564348,0,6.907755,6.959049,1,20.7,0,1,0 +6,4.564348,0,6.907755,6.959049,1,20.7,0,1,0 +1,4.564348,0,6.907755,6.959049,1,20.7,0,1,0 +2,0,1,6.109248,6.160541,0,10.3,1,0,0 +0,0,1,6.109248,6.160541,0,10.3,1,0,0 +2,0,1,6.109248,6.160541,0,10.3,1,0,0 +1,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +1,0,1,6.109248,6.160541,0,3.4,0,0,0 +1,0,1,6.109248,6.160541,0,11.84267,0,0,0 +0,0,1,6.109248,6.160541,0,11.84267,0,0,0 +2,0,1,6.109248,6.160541,0,11.84267,0,0,0 +3,0,0,0,0,0,17.2,1,0,0 +0,0,0,0,0,0,17.2,1,0,0 +5,0,0,0,0,0,17.2,1,0,0 +19,3.258096,0,6.148917,7.535211,1,34.5,1,0,0 +32,3.258096,0,6.148917,7.535211,1,34.5,1,0,0 +27,3.258096,0,6.148917,7.535211,1,34.5,1,0,0 +0,3.258096,0,0,6.040255,0,6.9,1,0,0 +0,3.258096,0,0,6.040255,0,6.9,1,0,0 +6,3.258096,0,0,6.040255,0,6.9,1,0,0 +11,0,1,0,5.061929,0,10.3,0,0,0 +2,0,1,0,5.061929,0,10.3,0,0,0 +9,0,1,0,5.061929,0,10.3,0,0,0 +3,0,0,0,0,1,27.6,1,0,0 +2,0,0,0,0,1,27.6,1,0,0 +2,0,0,0,0,1,27.6,1,0,0 +6,0,0,0,0,0,11.84267,1,0,0 +0,0,0,0,0,0,11.84267,1,0,0 +0,0,0,0,0,0,11.84267,1,0,0 +1,0,0,0,0,0,11.84267,0,0,0 +0,0,0,0,0,0,11.84267,0,0,0 +5,0,0,0,0,1,17.2,1,0,0 +6,0,0,0,0,1,17.2,1,0,0 +5,0,0,0,0,1,17.2,1,0,0 +0,0,0,0,0,0,11.84267,1,0,0 +2,0,0,0,0,0,11.84267,1,0,0 +0,0,0,0,0,0,11.84267,1,0,0 +0,0,0,0,0,0,10.3,0,0,0 +2,0,0,0,0,0,10.3,0,0,0 +1,0,0,0,0,0,10.3,0,0,0 +3,0,0,0,0,0,6.9,1,0,0 +1,0,0,0,0,0,6.9,1,0,0 +3,0,0,0,0,0,6.9,1,0,0 +2,0,0,0,0,0,11.84267,0,0,0 +3,0,0,0,0,0,11.84267,0,0,0 +0,0,0,0,0,0,11.84267,0,0,0 +3,0,0,0,0,0,11.84267,1,0,0 +3,0,0,0,0,0,11.84267,1,0,0 +2,0,0,0,0,0,11.84267,1,0,0 +4,4.564348,0,6.907755,6.959049,0,37.9,0,0,0 +3,4.564348,0,6.907755,6.959049,0,37.9,0,0,0 +4,4.564348,0,6.907755,6.959049,0,37.9,0,0,0 +1,4.564348,0,6.907755,6.959049,0,13.8,0,0,0 +0,4.564348,0,6.907755,6.959049,0,13.8,0,0,0 +0,4.564348,0,6.907755,6.959049,0,13.8,0,0,0 +38,0,1,6.109248,6.160541,0,11.84267,0,0,0 +37,0,1,6.109248,6.160541,0,11.84267,0,0,0 +16,0,1,6.109248,6.160541,0,11.84267,0,0,0 +1,0,1,6.109248,6.160541,0,11.84267,0,0,0 +0,0,1,6.109248,6.160541,0,11.84267,0,0,0 +1,0,1,6.109248,6.160541,0,11.84267,0,0,0 +2,0,1,6.109248,6.160541,0,11.84267,0,0,0 +0,0,1,6.109248,6.160541,0,11.84267,0,0,0 +1,0,1,6.109248,6.160541,0,11.84267,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +1,0,1,6.109248,6.160541,0,3.4,0,0,0 +1,0,1,6.109248,6.160541,0,3.4,0,0,0 +3,3.258096,0,0,8.294049,0,11.84267,0,0,0 +3,3.258096,0,0,8.294049,0,11.84267,0,0,0 +0,3.258096,0,0,8.294049,1,10.3,0,0,0 +4,3.258096,0,0,8.294049,1,31,0,1,0 +4,3.258096,0,0,8.294049,0,11.84267,0,0,0 +0,0,0,0,0,0,0,0,0,0 +2,0,0,0,0,0,0,0,0,0 +4,0,0,0,0,0,0,0,0,0 +2,0,0,0,0,0,0,0,0,0 +3,0,0,0,0,0,0,0,0,0 +8,0,0,0,0,1,17.2,0,1,0 +8,0,0,0,0,1,17.2,0,1,0 +21,0,0,0,0,1,17.2,0,1,0 +2,0,0,0,0,1,17.2,0,1,0 +11,0,0,0,0,0,20.7,1,0,0 +0,0,0,0,0,0,20.7,1,0,0 +2,0,0,0,0,0,20.7,1,0,0 +7,0,0,0,0,0,20.7,1,0,0 +3,0,0,0,0,0,20.7,1,0,0 +0,3.258096,0,6.109248,7.495542,0,3.4,0,0,0 +1,3.258096,0,6.109248,7.495542,0,3.4,0,0,0 +1,3.258096,0,6.109248,7.495542,0,3.4,0,0,0 +2,3.258096,0,6.109248,7.495542,0,3.4,0,0,0 +4,3.258096,0,6.109248,7.495542,0,3.4,0,0,0 +5,0,0,0,0,0,17.2,1,0,0 +3,0,0,0,0,0,17.2,1,0,0 +2,0,0,0,0,0,17.2,1,0,0 +1,0,1,6.109248,6.160541,0,13.8,1,0,0 +0,0,1,6.109248,6.160541,0,13.8,1,0,0 +1,0,1,6.109248,6.160541,0,13.8,1,0,0 +1,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +5,0,1,6.109248,6.160541,0,11.84267,1,0,0 +0,0,1,6.109248,6.160541,0,11.84267,1,0,0 +2,0,1,6.109248,6.160541,0,11.84267,1,0,0 +1,0,1,6.109248,6.160541,0,11.84267,1,0,0 +0,0,1,6.109248,6.160541,0,11.84267,1,0,0 +0,0,1,6.109248,6.160541,0,11.84267,1,0,0 +8,4.564348,0,6.620273,6.671566,0,6.9,0,0,0 +5,4.564348,0,6.620273,6.671566,0,6.9,0,0,0 +8,4.564348,0,6.620273,6.671566,0,6.9,0,0,0 +11,4.564348,0,6.620273,6.671566,1,31,0,0,1 +10,4.564348,0,6.620273,6.671566,1,31,0,0,1 +7,4.564348,0,6.620273,6.671566,1,31,0,0,1 +0,0,0,0,0,0,20.7,1,0,0 +4,0,0,0,0,0,20.7,1,0,0 +0,0,0,0,0,0,20.7,1,0,0 +0,0,0,0,0,0,11.84267,0,0,0 +0,0,0,0,0,0,11.84267,0,0,0 +0,0,0,0,0,0,11.84267,0,0,0 +1,0,0,0,0,0,11.84267,0,0,0 +0,0,0,0,0,0,11.84267,0,0,0 +0,0,0,0,0,0,11.84267,0,0,0 +1,0,0,0,0,0,11.84267,0,0,0 +1,0,0,0,0,0,11.84267,0,0,0 +3,0,0,0,0,0,11.84267,0,0,0 +2,0,0,0,0,0,24.1,1,0,0 +3,0,0,0,0,0,24.1,1,0,0 +3,0,0,0,0,0,24.1,1,0,0 +0,0,0,0,0,0,11.84267,1,0,0 +3,0,0,0,0,0,11.84267,1,0,0 +0,0,0,0,0,0,11.84267,1,0,0 +3,3.258096,0,6.907755,8.294049,0,13.8,1,0,0 +1,3.258096,0,6.907755,8.294049,0,13.8,1,0,0 +2,3.258096,0,6.907755,8.294049,0,13.8,1,0,0 +0,3.258096,0,6.907755,8.294049,0,3.4,1,0,0 +0,3.258096,0,6.907755,8.294049,0,3.4,1,0,0 +0,3.258096,0,6.907755,8.294049,0,3.4,1,0,0 +3,0,0,6.047372,0,0,0,0,0,0 +2,0,0,6.047372,0,0,0,0,0,0 +1,0,0,6.047372,0,0,0,0,0,0 +3,0,0,6.047372,0,0,0,0,0,0 +7,0,0,6.047372,0,0,0,0,0,0 +5,0,0,6.047372,0,0,0,0,0,0 +3,0,0,6.047372,0,0,11.84267,0,0,0 +6,0,0,6.047372,0,0,11.84267,0,0,0 +3,0,0,6.047372,0,0,11.84267,0,0,0 +3,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +2,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +3,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +2,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +3,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +4,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +1,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +3,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +1,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +1,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +3,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +2,3.258096,0,6.415506,7.8018,1,20.7,0,1,0 +1,3.258096,0,5.700611,7.086905,0,3.4,0,0,0 +0,3.258096,0,5.700611,7.086905,0,3.4,0,0,0 +0,3.258096,0,5.700611,7.086905,0,3.4,0,0,0 +4,0,1,6.228511,6.160541,0,0,0,1,0 +1,0,1,6.228511,6.160541,0,0,0,1,0 +0,0,1,6.228511,6.160541,0,0,0,1,0 +0,0,1,6.228511,6.160541,0,0,0,1,0 +10,0,1,6.228511,6.160541,0,20.7,1,0,0 +5,0,1,6.228511,6.160541,0,20.7,1,0,0 +2,0,1,6.228511,6.160541,0,20.7,1,0,0 +3,0,1,6.228511,6.160541,0,20.7,1,0,0 +4,0,1,6.228511,6.160541,0,20.7,1,0,0 +9,0,1,6.228511,6.160541,0,6.9,0,1,0 +1,0,1,6.228511,6.160541,0,6.9,0,1,0 +2,0,1,6.228511,6.160541,0,6.9,0,1,0 +0,0,1,6.228511,6.160541,0,6.9,0,1,0 +6,0,1,6.228511,6.160541,0,6.9,0,1,0 +9,0,1,3.789177,5.061929,0,17.2,0,0,0 +1,0,1,3.789177,5.061929,0,17.2,0,0,0 +0,0,1,3.789177,5.061929,0,17.2,0,0,0 +5,0,0,5.355642,0,0,10.3,0,0,0 +0,0,0,5.355642,0,0,10.3,0,0,0 +0,0,0,5.355642,0,0,10.3,0,0,0 +1,0,0,5.355642,0,0,10.3,0,0,0 +1,0,0,5.355642,0,0,10.3,0,0,0 +0,0,0,6.246107,0,0,0,0,0,0 +1,0,0,6.246107,0,0,0,0,0,0 +8,0,0,6.246107,0,0,0,0,0,0 +5,0,0,6.246107,0,0,11.84267,0,1,0 +2,0,0,6.246107,0,0,11.84267,0,1,0 +4,0,0,6.246107,0,0,11.84267,0,1,0 +0,0,0,6.246107,0,0,11.84267,0,0,0 +5,0,0,6.246107,0,0,11.84267,0,0,0 +3,0,0,6.246107,0,0,11.84267,0,0,0 +2,0,0,6.246107,0,0,10.3,1,0,0 +7,0,0,6.246107,0,0,10.3,1,0,0 +7,0,0,6.246107,0,0,10.3,1,0,0 +2,0,0,5.219274,0,0,10.3,1,0,0 +1,0,0,5.219274,0,0,10.3,1,0,0 +0,0,0,5.219274,0,0,10.3,1,0,0 +11,0,0,5.219274,0,1,17.2,0,1,0 +2,0,0,5.219274,0,1,17.2,0,1,0 +1,0,0,5.219274,0,1,17.2,0,1,0 +1,0,0,5.219274,0,0,13.8,0,1,0 +0,0,0,5.219274,0,0,13.8,0,1,0 +5,0,0,5.219274,0,0,13.8,0,1,0 +0,4.564348,0,0,6.265902,0,3.4,0,0,0 +0,4.564348,0,0,6.265902,0,3.4,0,0,0 +0,4.564348,0,0,6.265902,0,3.4,0,0,0 +0,4.564348,0,0,6.265902,0,11.84267,0,0,0 +0,4.564348,0,0,6.265902,0,11.84267,0,0,0 +4,4.564348,0,0,6.265902,0,11.84267,0,0,0 +1,4.564348,0,0,6.265902,0,10.3,0,0,0 +1,4.564348,0,0,6.265902,0,10.3,0,0,0 +5,4.564348,0,0,6.265902,0,10.3,0,0,0 +6,4.564348,0,0,6.265902,0,11.84267,0,0,0 +3,4.564348,0,0,6.265902,0,11.84267,0,0,0 +2,4.564348,0,0,6.265902,0,11.84267,0,0,0 +0,0,1,0,5.755076,0,10.3,1,0,0 +1,0,1,0,5.755076,0,10.3,1,0,0 +2,0,1,0,5.755076,0,10.3,1,0,0 +0,0,1,0,5.755076,0,10.3,1,0,0 +1,0,1,0,5.755076,0,10.3,1,0,0 +0,0,1,0,5.755076,0,10.3,1,0,0 +4,3.258096,0,6.907755,8.294049,0,10.3,1,0,0 +2,3.258096,0,6.907755,8.294049,0,10.3,1,0,0 +10,3.258096,0,6.907755,8.294049,0,10.3,1,0,0 +3,3.258096,0,6.907755,8.294049,0,10.3,1,0,0 +1,3.258096,0,6.907755,8.294049,0,10.3,1,0,0 +0,3.258096,0,6.342209,7.728504,0,3.4,0,0,0 +1,3.258096,0,6.342209,7.728504,0,3.4,0,0,0 +1,3.258096,0,6.342209,7.728504,0,3.4,0,0,0 +15,3.258096,0,6.342209,7.728504,1,27.6,1,0,0 +6,3.258096,0,6.342209,7.728504,1,27.6,1,0,0 +12,3.258096,0,6.342209,7.728504,1,27.6,1,0,0 +6,0,1,6.489873,6.160541,0,13.8,0,0,0 +1,0,1,6.489873,6.160541,0,13.8,0,0,0 +0,0,1,6.489873,6.160541,0,13.8,0,0,0 +0,0,1,6.489873,6.160541,0,11.84267,0,0,0 +1,0,1,6.489873,6.160541,0,11.84267,0,0,0 +0,0,1,6.489873,6.160541,0,11.84267,0,0,0 +0,0,1,6.489873,6.160541,0,24.1,0,0,0 +1,0,1,6.489873,6.160541,0,24.1,0,0,0 +0,0,1,6.489873,6.160541,0,24.1,0,0,0 +0,0,1,6.489873,6.160541,0,11.84267,0,0,0 +0,0,1,6.489873,6.160541,0,11.84267,0,0,0 +0,0,1,6.489873,6.160541,0,11.84267,0,0,0 +20,0,1,6.489873,6.160541,1,11.84267,0,0,0 +18,0,1,6.489873,6.160541,1,11.84267,0,0,0 +16,0,1,6.489873,6.160541,1,11.84267,0,0,0 +1,0,0,0,0,0,11.84267,0,0,0 +2,0,0,0,0,0,11.84267,0,0,0 +5,0,0,0,0,0,11.84267,0,0,0 +3,0,0,0,0,0,11.84267,0,0,0 +7,0,0,0,0,0,11.84267,0,0,0 +4,0,0,0,0,1,6.9,1,0,0 +5,0,0,0,0,1,6.9,1,0,0 +6,0,0,0,0,1,6.9,1,0,0 +15,0,0,0,0,1,6.9,1,0,0 +6,0,0,0,0,1,6.9,1,0,0 +0,0,0,0,0,0,13.8,0,0,0 +0,0,0,0,0,0,13.8,0,0,0 +0,0,0,0,0,0,13.8,0,0,0 +1,0,0,0,0,0,13.8,0,0,0 +1,0,0,0,0,0,13.8,0,0,0 +0,0,0,0,0,0,10.3,0,0,0 +1,0,0,0,0,0,44.8,0,1,0 +3,0,0,0,0,0,44.8,0,1,0 +3,0,0,0,0,0,44.8,0,1,0 +0,3.258096,0,0,8.294049,0,6.9,0,0,0 +0,3.258096,0,0,8.294049,0,6.9,0,0,0 +0,3.258096,0,0,8.294049,0,6.9,0,0,0 +9,0,0,0,0,1,20.7,1,0,0 +18,0,0,0,0,1,20.7,1,0,0 +3,0,0,0,0,1,20.7,1,0,0 +0,0,0,0,0,1,20.7,1,0,0 +1,0,0,0,0,1,20.7,1,0,0 +9,0,0,0,0,0,11.84267,1,0,0 +3,0,0,0,0,0,11.84267,1,0,0 +2,0,0,0,0,0,6.9,1,0,0 +0,0,0,0,0,0,6.9,1,0,0 +1,0,0,0,0,0,6.9,1,0,0 +4,0,0,0,0,0,6.9,1,0,0 +2,0,0,0,0,0,6.9,1,0,0 +4,0,0,0,0,1,6.9,1,0,0 +2,0,0,0,0,1,6.9,1,0,0 +0,0,0,0,0,1,6.9,1,0,0 +0,0,0,0,0,1,6.9,1,0,0 +0,0,0,0,0,1,6.9,1,0,0 +0,0,0,4.94876,0,1,6.9,1,0,0 +1,0,0,4.94876,0,1,6.9,1,0,0 +2,0,0,4.94876,0,1,6.9,1,0,0 +0,0,0,4.94876,0,1,6.9,1,0,0 +1,0,0,4.94876,0,1,6.9,1,0,0 +0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0 +2,0,0,0,0,0,11.84267,0,0,0 +1,0,0,0,0,0,11.84267,0,0,0 +1,0,0,0,0,0,11.84267,0,0,0 +1,0,0,0,0,0,11.84267,0,0,0 +0,0,0,0,0,0,11.84267,0,0,0 +1,0,0,0,0,0,11.84267,0,0,0 +0,0,0,0,0,0,10.3,0,0,0 +0,0,0,0,0,0,10.3,0,0,0 +0,0,0,0,0,0,10.3,0,0,0 +0,0,0,0,0,0,17.2,0,0,0 +0,0,0,0,0,0,17.2,0,0,0 +1,0,0,0,0,0,17.2,0,0,0 +0,0,0,0,0,0,17.2,0,0,0 +2,0,0,0,0,0,17.2,0,0,0 +9,0,0,0,0,1,6.9,1,0,0 +11,0,0,0,0,1,6.9,1,0,0 +6,0,0,0,0,1,6.9,1,0,0 +10,0,0,0,0,1,6.9,1,0,0 +5,0,0,0,0,1,6.9,1,0,0 +8,0,1,6.771248,6.160541,0,6.9,0,0,0 +5,0,1,6.771248,6.160541,0,6.9,0,0,0 +3,0,1,6.771248,6.160541,0,6.9,0,0,0 +8,0,1,6.771248,6.160541,1,10.3,1,0,0 +5,0,1,6.771248,6.160541,1,10.3,1,0,0 +8,0,1,6.771248,6.160541,1,10.3,1,0,0 +2,0,1,6.771248,6.160541,0,11.84267,0,0,0 +1,0,1,6.771248,6.160541,0,11.84267,0,0,0 +0,0,1,6.771248,6.160541,0,11.84267,0,0,0 +0,4.564348,0,0,6.959049,0,0,0,0,0 +1,4.564348,0,0,6.959049,0,0,0,0,0 +0,4.564348,0,0,6.959049,0,0,0,0,0 +0,4.564348,0,0,6.959049,0,0,0,0,0 +1,4.564348,0,0,6.959049,0,0,0,0,0 +2,4.564348,0,0,6.959049,0,10.3,0,0,0 +1,4.564348,0,0,6.959049,0,10.3,0,0,0 +0,4.564348,0,0,6.959049,0,10.3,0,0,0 +0,4.564348,0,0,6.959049,0,10.3,0,0,0 +0,4.564348,0,0,6.959049,0,10.3,0,0,0 +1,4.564348,0,0,6.959049,0,6.9,0,0,0 +1,4.564348,0,0,6.959049,0,6.9,0,0,0 +0,4.564348,0,0,6.959049,0,6.9,0,0,0 +2,4.564348,0,0,6.959049,0,6.9,0,0,0 +1,4.564348,0,0,6.959049,0,6.9,0,0,0 +8,4.564348,0,0,6.959049,0,11.84267,0,0,0 +2,4.564348,0,0,6.959049,0,11.84267,0,0,0 +4,4.564348,0,0,6.959049,0,11.84267,0,0,0 +6,4.564348,0,0,6.959049,0,11.84267,0,0,0 +3,4.564348,0,0,6.959049,0,11.84267,0,0,0 +0,4.564348,0,0,6.959049,0,0,0,0,0 +1,4.564348,0,0,6.959049,0,0,0,0,0 +1,4.564348,0,0,6.959049,0,0,0,0,0 +0,4.564348,0,0,6.959049,0,0,0,0,0 +1,4.564348,0,0,6.959049,0,0,0,0,0 +5,3.258096,0,6.907755,8.294049,0,13.8,0,0,0 +5,3.258096,0,6.907755,8.294049,0,13.8,0,0,0 +5,3.258096,0,6.907755,8.294049,0,13.8,0,0,0 +10,0,1,5.703783,5.755076,0,13.8,0,0,0 +0,0,1,5.703783,5.755076,0,13.8,0,0,0 +0,0,1,5.703783,5.755076,0,13.8,0,0,0 +1,0,1,5.703783,5.755076,1,10.3,1,0,0 +0,0,1,5.703783,5.755076,1,10.3,1,0,0 +1,0,1,5.703783,5.755076,1,10.3,1,0,0 +2,3.258096,0,6.907755,8.294049,0,20.7,1,0,0 +1,3.258096,0,6.907755,8.294049,0,20.7,1,0,0 +3,3.258096,0,6.907755,8.294049,0,20.7,1,0,0 +5,3.258096,0,6.515601,7.038784,0,17.2,0,0,0 +1,3.258096,0,6.515601,7.038784,0,17.2,0,0,0 +2,3.258096,0,6.515601,7.038784,0,17.2,0,0,0 +2,3.258096,0,6.515601,7.038784,0,17.2,0,0,0 +6,3.258096,0,6.515601,7.038784,0,17.2,0,0,0 +0,3.258096,0,6.515601,7.038784,0,3.4,0,0,0 +1,3.258096,0,6.515601,7.038784,0,3.4,0,0,0 +0,3.258096,0,6.515601,7.038784,0,3.4,0,0,0 +0,3.258096,0,6.515601,7.038784,0,3.4,0,0,0 +0,3.258096,0,6.515601,7.038784,0,3.4,0,0,0 +11,3.258096,0,6.515601,7.038784,0,10.3,0,0,0 +18,3.258096,0,6.515601,7.038784,0,10.3,0,0,0 +1,3.258096,0,6.515601,7.038784,0,10.3,0,0,0 +8,3.258096,0,6.515601,7.038784,0,10.3,0,0,0 +0,3.258096,0,6.515601,7.038784,0,10.3,0,0,0 +0,3.258096,0,6.515601,7.038784,0,10.3,0,0,0 +0,3.258096,0,6.515601,7.038784,0,10.3,0,0,0 +1,3.258096,0,6.814652,8.200947,0,11.84267,1,0,0 +0,3.258096,0,6.814652,8.200947,0,11.84267,1,0,0 +0,3.258096,0,6.814652,8.200947,0,11.84267,1,0,0 +1,3.258096,0,6.814652,8.200947,0,11.84267,1,0,0 +0,3.258096,0,6.814652,8.200947,0,11.84267,1,0,0 +0,3.258096,0,6.814652,8.200947,0,11.84267,1,0,0 +3,3.258096,0,6.814652,8.200947,0,17.2,1,0,0 +0,3.258096,0,6.814652,8.200947,0,17.2,1,0,0 +0,3.258096,0,6.814652,8.200947,0,17.2,1,0,0 +0,3.258096,0,6.814652,8.200947,0,10.3,1,0,0 +0,3.258096,0,6.814652,8.200947,0,10.3,1,0,0 +0,3.258096,0,6.814652,8.200947,0,10.3,1,0,0 +2,3.258096,0,6.814652,8.200947,0,11.84267,1,0,0 +0,3.258096,0,6.814652,8.200947,0,11.84267,1,0,0 +0,3.258096,0,6.814652,8.200947,0,11.84267,1,0,0 +1,3.258096,0,6.582247,7.654443,0,13.8,1,0,0 +0,3.258096,0,6.582247,7.654443,0,13.8,1,0,0 +2,3.258096,0,6.582247,7.654443,0,13.8,1,0,0 +8,3.258096,0,6.582247,7.654443,0,0,0,0,0 +4,3.258096,0,6.582247,7.654443,0,0,0,0,0 +4,3.258096,0,6.582247,7.654443,0,0,0,0,0 +8,3.258096,0,6.582247,7.654443,0,11.84267,0,0,0 +7,3.258096,0,6.582247,7.654443,0,11.84267,0,0,0 +10,3.258096,0,6.582247,7.654443,0,11.84267,0,0,0 +11,3.258096,0,6.582247,7.654443,0,11.84267,0,0,0 +10,3.258096,0,6.582247,7.654443,0,11.84267,0,0,0 +7,3.258096,0,6.582247,7.654443,0,11.84267,0,0,0 +1,4.564348,0,6.276794,6.767828,0,3.4,1,0,0 +1,4.564348,0,6.276794,6.767828,0,3.4,1,0,0 +0,4.564348,0,6.276794,6.767828,0,3.4,1,0,0 +1,4.564348,0,6.276794,6.767828,0,11.84267,1,0,0 +0,4.564348,0,6.276794,6.767828,0,11.84267,1,0,0 +0,4.564348,0,6.276794,6.767828,0,11.84267,1,0,0 +0,4.564348,0,6.276794,6.767828,0,20.7,1,0,0 +0,4.564348,0,6.276794,6.767828,0,20.7,1,0,0 +0,4.564348,0,6.276794,6.767828,0,20.7,1,0,0 +1,4.564348,0,6.276794,6.767828,0,3.4,1,0,0 +0,4.564348,0,6.276794,6.767828,0,3.4,1,0,0 +0,4.564348,0,6.276794,6.767828,0,11.84267,1,0,0 +0,4.564348,0,6.276794,6.767828,0,11.84267,1,0,0 +0,4.564348,0,6.276794,6.767828,0,11.84267,1,0,0 +0,4.564348,0,6.276794,6.767828,0,10.3,1,0,0 +0,4.564348,0,6.276794,6.767828,0,10.3,1,0,0 +0,4.564348,0,6.276794,6.767828,0,10.3,1,0,0 +2,0,0,0,0,1,20.7,1,0,0 +0,0,0,0,0,1,20.7,1,0,0 +0,0,0,0,0,1,20.7,1,0,0 +2,0,0,0,0,1,20.7,1,0,0 +5,0,0,0,0,1,20.7,1,0,0 +4,0,0,0,0,0,10.3,1,0,0 +2,0,0,0,0,0,10.3,1,0,0 +0,0,0,0,0,0,10.3,1,0,0 +3,0,0,0,0,0,10.3,1,0,0 +4,0,0,0,0,0,10.3,1,0,0 +3,0,0,5.51986,0,0,13.8,0,0,0 +0,0,0,5.51986,0,0,13.8,0,0,0 +1,0,0,5.51986,0,0,13.8,0,0,0 +1,0,0,5.51986,0,0,11.84267,0,0,0 +0,0,0,5.51986,0,0,11.84267,0,0,0 +0,0,0,5.51986,0,0,11.84267,0,0,0 +8,0,0,5.51986,0,0,11.84267,1,0,0 +4,0,0,5.51986,0,0,11.84267,1,0,0 +0,0,0,5.51986,0,0,11.84267,1,0,0 +4,0,0,5.51986,0,0,10.3,1,0,0 +15,0,0,0,0,0,6.9,1,0,0 +2,0,0,0,0,0,6.9,1,0,0 +17,0,0,0,0,0,6.9,1,0,0 +0,0,1,6.109248,6.160541,1,17.2,1,0,0 +3,0,1,6.109248,6.160541,0,13.8,0,1,0 +1,0,1,5.703783,5.755076,0,3.4,0,0,0 +1,0,1,5.703783,5.755076,0,3.4,0,0,0 +0,0,1,5.703783,5.755076,0,3.4,0,0,0 +0,0,1,5.703783,5.755076,0,6.9,0,0,0 +5,0,1,5.703783,5.755076,0,6.9,0,0,0 +1,0,1,5.703783,5.755076,0,6.9,0,0,0 +0,0,1,5.460734,6.160541,0,24.1,1,0,0 +3,0,1,5.460734,6.160541,0,24.1,1,0,0 +0,0,1,5.460734,6.160541,0,24.1,1,0,0 +5,0,1,5.460734,6.160541,0,11.84267,1,0,0 +2,0,1,5.460734,6.160541,0,11.84267,1,0,0 +2,0,1,5.460734,6.160541,0,11.84267,1,0,0 +8,0,1,5.460734,6.160541,0,11.84267,1,0,0 +2,0,1,5.460734,6.160541,0,11.84267,1,0,0 +4,0,1,5.460734,6.160541,0,11.84267,1,0,0 +5,0,1,5.460734,6.160541,0,20.7,1,0,0 +0,0,1,5.460734,6.160541,0,20.7,1,0,0 +4,0,1,5.460734,6.160541,0,20.7,1,0,0 +11,0,1,5.460734,6.160541,0,11.84267,1,0,0 +5,0,1,5.460734,6.160541,0,11.84267,1,0,0 +11,0,1,5.460734,6.160541,0,11.84267,1,0,0 +0,3.258096,0,6.907755,8.294049,0,6.9,0,0,0 +0,3.258096,0,6.907755,8.294049,0,6.9,0,0,0 +0,3.258096,0,6.907755,8.294049,0,6.9,0,0,0 +2,0,0,6.288007,0,0,3.4,0,0,0 +1,0,0,6.288007,0,0,3.4,0,0,0 +0,0,0,6.288007,0,0,3.4,0,0,0 +8,0,0,6.288007,0,0,11.84267,0,0,0 +7,0,0,6.288007,0,0,11.84267,0,0,0 +1,0,0,6.288007,0,0,11.84267,0,0,0 +4,0,0,6.288007,0,0,11.84267,0,0,0 +0,0,0,6.288007,0,0,11.84267,0,0,0 +0,0,0,6.288007,0,0,11.84267,0,0,0 +1,0,0,6.288007,0,0,13.8,1,0,0 +1,0,0,6.288007,0,0,13.8,1,0,0 +2,0,0,6.288007,0,0,13.8,1,0,0 +2,3.258096,0,6.253829,8.294049,0,10.3,1,0,0 +0,3.258096,0,6.253829,8.294049,0,10.3,1,0,0 +3,3.258096,0,6.253829,8.294049,0,10.3,1,0,0 +1,3.258096,0,6.253829,8.294049,0,10.3,1,0,0 +0,3.258096,0,6.253829,8.294049,0,10.3,1,0,0 +0,3.258096,0,6.253829,8.294049,0,0,1,0,0 +5,3.258096,0,6.253829,8.294049,0,0,1,0,0 +0,3.258096,0,6.253829,8.294049,0,0,1,0,0 +1,3.258096,0,6.253829,8.294049,0,0,1,0,0 +0,3.258096,0,6.253829,8.294049,0,0,1,0,0 +6,0,0,5.762052,0,1,24.1,0,1,0 +2,0,0,5.762052,0,1,24.1,0,1,0 +3,0,0,5.762052,0,1,24.1,0,1,0 +0,0,0,5.762052,0,0,11.84267,0,0,0 +0,0,0,5.762052,0,0,11.84267,0,0,0 +0,0,0,5.762052,0,0,11.84267,0,0,0 +0,0,0,5.762052,0,0,11.84267,0,0,0 +0,0,0,5.762052,0,0,11.84267,0,0,0 +0,0,0,5.762052,0,0,11.84267,0,0,0 +3,0,0,5.375278,0,.1981873,11.84267,1,0,0 +4,0,0,5.375278,0,.1981873,11.84267,1,0,0 +0,0,0,5.375278,0,.1981873,11.84267,1,0,0 +6,0,0,5.375278,0,.1981873,11.84267,0,1,0 +6,0,0,5.375278,0,.1981873,11.84267,0,1,0 +1,0,0,5.375278,0,.1981873,11.84267,0,1,0 +2,0,0,5.785915,0,0,3.4,1,0,0 +2,0,0,5.785915,0,0,3.4,1,0,0 +2,0,0,5.785915,0,0,3.4,1,0,0 +7,0,0,5.785915,0,0,3.4,1,0,0 +5,0,0,5.785915,0,0,3.4,1,0,0 +1,0,0,5.785915,0,0,3.4,1,0,0 +2,0,0,5.785915,0,0,3.4,1,0,0 +0,0,0,5.785915,0,0,3.4,1,0,0 +0,0,0,5.785915,0,0,3.4,1,0,0 +0,0,0,5.785915,0,0,3.4,1,0,0 +1,0,0,5.897868,0,0,6.9,1,0,0 +5,0,0,5.897868,0,0,6.9,1,0,0 +8,0,0,5.897868,0,0,6.9,1,0,0 +4,0,0,5.897868,0,0,11.84267,1,0,0 +1,0,0,5.897868,0,0,11.84267,1,0,0 +2,0,0,5.897868,0,0,11.84267,1,0,0 +11,0,0,5.897868,0,0,11.84267,1,0,0 +3,0,0,5.897868,0,0,11.84267,1,0,0 +3,0,0,5.897868,0,0,11.84267,1,0,0 +6,0,0,5.897868,0,0,3.4,1,0,0 +2,0,0,5.897868,0,0,3.4,1,0,0 +0,0,0,5.897868,0,0,3.4,1,0,0 +8,0,0,6.243273,0,0,6.9,1,0,0 +4,0,0,6.243273,0,0,6.9,1,0,0 +2,0,0,6.243273,0,0,6.9,1,0,0 +10,0,0,6.243273,0,0,10.3,1,0,0 +10,0,0,6.243273,0,0,10.3,1,0,0 +4,0,0,6.243273,0,0,10.3,1,0,0 +6,0,0,6.408858,0,1,20.7,1,0,0 +3,0,0,6.408858,0,1,20.7,1,0,0 +5,0,0,6.408858,0,1,20.7,1,0,0 +3,0,0,6.408858,0,1,20.7,1,0,0 +3,0,0,6.408858,0,1,20.7,1,0,0 +1,0,0,6.408858,0,1,17.2,0,1,0 +2,0,0,6.408858,0,1,17.2,0,1,0 +1,0,0,6.408858,0,1,17.2,0,1,0 +8,0,0,6.408858,0,1,17.2,0,1,0 +4,0,0,6.408858,0,1,17.2,0,1,0 +2,0,0,6.408858,0,0,11.84267,0,0,0 +0,0,0,6.408858,0,0,11.84267,0,0,0 +3,0,0,6.408858,0,0,11.84267,0,0,0 +2,0,0,6.408858,0,0,11.84267,0,0,0 +6,0,0,6.408858,0,0,11.84267,0,0,0 +1,0,0,6.408858,0,0,11.84267,0,0,0 +0,0,0,6.408858,0,0,11.84267,0,0,0 +1,0,0,6.408858,0,0,11.84267,0,0,0 +0,0,0,6.408858,0,0,11.84267,0,0,0 +1,0,0,6.408858,0,0,11.84267,0,0,0 +9,0,1,6.109248,6.160541,1,11.84267,1,0,0 +11,0,1,6.109248,6.160541,1,11.84267,1,0,0 +14,0,1,6.109248,6.160541,1,11.84267,1,0,0 +14,0,1,6.109248,6.160541,0,11.84267,1,0,0 +8,0,1,6.109248,6.160541,0,11.84267,1,0,0 +17,0,1,6.109248,6.160541,0,11.84267,1,0,0 +1,0,1,6.109248,6.160541,0,17.2,1,0,0 +5,0,1,6.109248,6.160541,0,17.2,1,0,0 +2,0,1,6.109248,6.160541,0,17.2,1,0,0 +0,0,1,6.109248,6.160541,0,3.4,1,0,0 +3,0,1,6.109248,6.160541,0,3.4,1,0,0 +3,0,1,6.109248,6.160541,0,3.4,1,0,0 +1,4.564348,0,6.907755,6.959049,0,13.8,1,0,0 +0,4.564348,0,6.907755,6.959049,0,13.8,1,0,0 +0,4.564348,0,6.907755,6.959049,0,13.8,1,0,0 +0,4.564348,0,6.907755,6.959049,0,13.8,1,0,0 +0,4.564348,0,6.907755,6.959049,0,13.8,1,0,0 +0,3.258096,0,6.573541,7.959835,0,3.4,1,0,0 +3,3.258096,0,6.573541,7.959835,0,3.4,1,0,0 +1,3.258096,0,6.573541,7.959835,0,3.4,1,0,0 +2,0,0,5.817825,0,0,0,1,0,0 +4,0,0,5.817825,0,0,0,1,0,0 +6,0,0,5.817825,0,0,0,1,0,0 +10,0,0,5.817825,0,0,27.6,1,0,0 +8,0,0,5.817825,0,0,27.6,1,0,0 +5,0,0,5.817825,0,0,27.6,1,0,0 +9,0,0,5.817825,0,0,6.9,0,0,0 +2,0,0,5.817825,0,0,6.9,0,0,0 +0,0,0,5.817825,0,0,6.9,0,0,0 +9,0,0,5.817825,0,0,3.4,0,0,0 +11,0,0,5.817825,0,0,3.4,0,0,0 +4,0,0,5.817825,0,0,10.3,1,0,0 +2,0,0,5.817825,0,0,10.3,1,0,0 +1,0,0,5.817825,0,0,10.3,1,0,0 +3,0,0,0,0,0,11.84267,0,0,0 +5,0,0,0,0,0,11.84267,0,0,0 +2,0,0,0,0,0,11.84267,0,0,0 +2,0,0,0,0,0,10.3,0,0,0 +9,0,0,0,0,0,10.3,0,0,0 +3,0,0,0,0,0,10.3,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,11.84267,0,0,0 +4,0,0,0,0,0,11.84267,0,0,0 +4,0,0,0,0,0,11.84267,0,0,0 +12,0,0,0,0,0,11.84267,0,0,0 +12,0,0,0,0,0,11.84267,0,0,0 +6,0,0,0,0,0,11.84267,0,0,0 +0,0,1,5.010635,5.061929,0,3.4,0,0,0 +0,0,1,5.010635,5.061929,0,3.4,0,0,0 +1,0,1,5.010635,5.061929,0,3.4,0,0,0 +0,0,1,5.010635,5.061929,0,3.4,0,0,0 +0,0,1,5.010635,5.061929,0,3.4,0,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +0,4.564348,0,6.907755,6.959049,1,10.3,0,0,0 +5,4.564348,0,6.907755,6.959049,1,10.3,0,0,0 +2,4.564348,0,6.907755,6.959049,1,10.3,0,0,0 +0,4.564348,0,6.907755,6.959049,1,10.3,0,0,0 +2,4.564348,0,6.907755,6.959049,1,10.3,0,0,0 +3,0,1,5.703783,5.755076,0,13.8,0,0,0 +0,0,1,5.703783,5.755076,0,13.8,0,0,0 +0,0,1,5.703783,5.755076,0,13.8,0,0,0 +1,0,1,5.703783,5.755076,0,13.8,0,0,0 +0,0,1,5.703783,5.755076,0,13.8,0,0,0 +4,0,1,5.703783,5.755076,0,3.4,0,0,0 +0,0,1,5.703783,5.755076,0,3.4,0,0,0 +4,0,1,5.703783,5.755076,0,3.4,0,0,0 +44,0,1,5.703783,5.755076,0,3.4,0,0,0 +57,0,1,5.703783,5.755076,0,3.4,0,0,0 +5,0,1,6.109248,6.160541,0,11.84267,0,0,0 +11,0,1,6.109248,6.160541,0,11.84267,0,0,0 +3,0,1,6.109248,6.160541,0,11.84267,0,0,0 +2,0,1,6.109248,6.160541,0,10.3,0,0,0 +1,0,1,6.109248,6.160541,0,10.3,0,0,0 +11,0,1,6.109248,6.160541,0,10.3,0,0,0 +4,0,1,6.109248,6.160541,0,17.2,1,0,0 +5,0,1,6.109248,6.160541,0,17.2,1,0,0 +6,0,1,6.109248,6.160541,0,17.2,1,0,0 +2,0,1,6.109248,6.160541,0,17.2,1,0,0 +3,0,1,6.109248,6.160541,0,17.2,1,0,0 +3,0,1,6.109248,6.160541,0,17.2,1,0,0 +1,0,1,6.109248,6.160541,0,10.3,0,0,0 +0,0,1,6.109248,6.160541,0,10.3,0,0,0 +0,0,1,6.109248,6.160541,0,10.3,0,0,0 +0,0,1,5.274383,6.160541,0,11.84267,0,0,0 +0,0,1,5.274383,6.160541,0,11.84267,0,0,0 +0,0,1,5.274383,6.160541,0,11.84267,0,0,0 +3,0,1,5.274383,6.160541,0,10.3,0,0,0 +0,0,1,5.274383,6.160541,0,10.3,0,0,0 +0,0,1,5.274383,6.160541,0,10.3,0,0,0 +1,0,1,5.274383,6.160541,0,0,0,0,0 +2,0,1,5.274383,6.160541,0,0,0,0,0 +1,0,1,5.274383,6.160541,0,0,0,0,0 +1,0,1,5.274383,6.160541,0,11.84267,0,0,0 +1,0,1,5.274383,6.160541,0,11.84267,0,0,0 +0,0,1,5.274383,6.160541,0,11.84267,0,0,0 +1,4.564348,0,6.743352,6.794645,0,10.3,1,0,0 +0,4.564348,0,6.743352,6.794645,0,10.3,1,0,0 +0,4.564348,0,6.743352,6.794645,0,10.3,1,0,0 +0,4.564348,0,6.743352,6.794645,0,10.3,1,0,0 +0,4.564348,0,6.743352,6.794645,0,10.3,1,0,0 +2,0,0,0,0,0,6.9,1,0,0 +2,0,0,0,0,0,6.9,1,0,0 +2,0,0,0,0,0,10.3,1,0,0 +0,0,0,0,0,0,10.3,1,0,0 +1,0,0,0,0,0,10.3,1,0,0 +1,0,0,0,0,1,27.6,1,0,0 +4,0,0,0,0,1,27.6,1,0,0 +4,0,0,0,0,1,27.6,1,0,0 +3,3.258096,0,5.717028,7.103322,0,11.84267,0,0,0 +33,3.258096,0,5.717028,7.103322,0,11.84267,0,0,0 +3,3.258096,0,5.717028,7.103322,0,11.84267,0,0,0 +6,3.258096,0,5.717028,7.103322,0,11.84267,0,0,0 +5,3.258096,0,5.717028,7.103322,0,11.84267,0,0,0 +3,3.258096,0,5.717028,7.103322,0,3.4,0,0,0 +1,3.258096,0,5.717028,7.103322,0,3.4,0,0,0 +1,3.258096,0,5.717028,7.103322,0,3.4,0,0,0 +1,3.258096,0,5.717028,7.103322,0,3.4,0,0,0 +1,3.258096,0,5.717028,7.103322,0,3.4,0,0,0 +1,3.258096,0,5.717028,7.103322,0,0,0,0,0 +1,3.258096,0,5.717028,7.103322,0,0,0,0,0 +0,3.258096,0,5.717028,7.103322,0,0,0,0,0 +0,3.258096,0,5.717028,7.103322,0,0,0,0,0 +1,3.258096,0,5.717028,7.103322,0,0,0,0,0 +2,0,0,0,0,1,3.4,0,0,0 +1,0,0,0,0,1,3.4,0,0,0 +4,0,0,0,0,1,3.4,0,0,0 +1,0,0,0,0,0,6.9,0,0,0 +6,0,0,0,0,0,6.9,0,0,0 +3,0,0,0,0,0,6.9,0,0,0 +1,0,0,0,0,0,11.84267,0,0,0 +0,0,0,0,0,0,11.84267,0,0,0 +0,0,0,0,0,0,11.84267,0,0,0 +7,0,0,0,0,0,11.84267,0,0,0 +0,0,0,0,0,0,11.84267,0,0,0 +1,0,0,0,0,0,11.84267,0,0,0 +2,4.564348,0,6.907755,6.959049,0,13.8,0,0,0 +5,4.564348,0,6.907755,6.959049,0,13.8,0,0,0 +0,4.564348,0,6.907755,6.959049,0,13.8,0,0,0 +1,4.564348,0,6.907755,6.959049,0,13.8,0,0,0 +5,4.564348,0,6.907755,6.959049,0,13.8,0,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +5,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +5,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +0,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +2,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +2,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +1,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +3,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +0,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +2,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +0,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +0,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +1,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +8,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +6,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +2,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +2,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +7,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +1,0,1,6.243273,5.755076,0,6.9,0,0,0 +0,0,1,6.243273,5.755076,0,6.9,0,0,0 +0,0,1,6.243273,5.755076,0,6.9,0,0,0 +1,0,1,6.243273,5.755076,0,10.3,0,0,0 +19,0,1,6.243273,5.755076,0,10.3,0,0,0 +1,0,1,6.243273,5.755076,0,10.3,0,0,0 +14,3.258096,0,5.291293,5.703783,0,27.6,1,0,0 +11,3.258096,0,5.291293,5.703783,0,27.6,1,0,0 +10,3.258096,0,5.291293,5.703783,0,27.6,1,0,0 +3,3.258096,0,5.521461,6.907755,0,3.4,0,0,0 +6,3.258096,0,5.521461,6.907755,0,3.4,0,0,0 +6,3.258096,0,5.521461,6.907755,0,3.4,0,0,0 +7,4.564348,0,6.040255,6.091548,0,11.84267,0,0,0 +0,4.564348,0,6.040255,6.091548,0,11.84267,0,0,0 +6,4.564348,0,6.040255,6.091548,0,11.84267,0,0,0 +6,4.564348,0,6.040255,6.091548,0,11.84267,0,0,0 +2,4.564348,0,6.040255,6.091548,0,11.84267,0,0,0 +2,4.564348,0,6.040255,6.091548,0,11.84267,0,0,0 +2,4.564348,0,6.040255,6.091548,0,6.9,0,0,0 +2,4.564348,0,6.040255,6.091548,0,6.9,0,0,0 +3,4.564348,0,6.040255,6.091548,0,6.9,0,0,0 +5,4.564348,0,6.907755,6.959049,1,20.7,1,0,0 +5,4.564348,0,6.907755,6.959049,1,20.7,1,0,0 +4,4.564348,0,6.907755,6.959049,1,20.7,1,0,0 +2,4.564348,0,6.907755,6.959049,0,6.9,1,0,0 +5,4.564348,0,6.907755,6.959049,0,6.9,1,0,0 +1,4.564348,0,6.907755,6.959049,0,6.9,1,0,0 +3,4.564348,0,6.907755,6.959049,1,17.2,1,0,0 +3,4.564348,0,6.907755,6.959049,1,17.2,1,0,0 +3,4.564348,0,6.907755,6.959049,1,17.2,1,0,0 +0,0,1,5.703783,5.755076,0,6.9,0,0,0 +0,0,1,5.703783,5.755076,0,6.9,0,0,0 +0,0,1,5.703783,5.755076,0,6.9,0,0,0 +0,0,1,5.703783,5.755076,0,6.9,0,0,0 +0,0,1,5.703783,5.755076,0,6.9,0,0,0 +1,0,1,5.703783,5.755076,0,24.1,1,0,0 +2,0,1,5.703783,5.755076,0,24.1,1,0,0 +1,0,1,5.703783,5.755076,0,24.1,1,0,0 +1,0,1,5.703783,5.755076,0,24.1,1,0,0 +5,0,1,5.703783,5.755076,0,24.1,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.3,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.3,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.3,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.3,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.3,1,0,0 +0,0,1,0,5.061929,1,13.8,1,0,0 +0,0,1,0,5.061929,1,13.8,1,0,0 +0,0,1,0,5.061929,1,13.8,1,0,0 +3,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.3,1,0,0 +1,4.564348,0,6.907755,6.959049,0,20.7,0,1,0 +0,4.564348,0,5.857933,5.909226,0,17.2,0,0,0 +0,4.564348,0,5.857933,5.909226,0,17.2,0,0,0 +0,4.564348,0,5.857933,5.909226,0,17.2,0,0,0 +14,4.564348,0,6.907755,6.959049,0,17.2,1,0,0 +0,4.564348,0,6.907755,6.959049,0,17.2,1,0,0 +4,4.564348,0,6.907755,6.959049,0,17.2,1,0,0 +1,4.564348,0,6.907755,6.959049,0,17.2,1,0,0 +1,4.564348,0,6.907755,6.959049,0,17.2,1,0,0 +21,4.564348,0,6.907755,6.959049,0,20.7,1,0,0 +13,4.564348,0,6.907755,6.959049,0,20.7,1,0,0 +20,4.564348,0,6.907755,6.959049,0,20.7,1,0,0 +7,4.564348,0,6.907755,6.959049,0,20.7,1,0,0 +3,4.564348,0,6.907755,6.959049,0,20.7,1,0,0 +1,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +3,4.564348,0,6.907755,6.959049,0,11.84267,1,0,0 +2,4.564348,0,6.907755,6.959049,0,11.84267,1,0,0 +0,4.564348,0,6.907755,6.959049,0,11.84267,1,0,0 +2,4.564348,0,6.907755,6.959049,0,11.84267,1,0,0 +15,4.564348,0,6.907755,6.959049,0,11.84267,1,0,0 +2,0,0,0,0,0,13.8,1,0,0 +0,0,0,0,0,0,13.8,1,0,0 +0,0,0,0,0,0,13.8,1,0,0 +1,0,0,0,0,0,13.8,1,0,0 +1,0,0,0,0,0,13.8,1,0,0 +0,0,0,0,0,0,11.84267,1,0,0 +0,0,0,0,0,0,11.84267,1,0,0 +1,0,0,0,0,0,11.84267,1,0,0 +3,0,0,0,0,0,11.84267,1,0,0 +1,0,0,0,0,0,11.84267,1,0,0 +0,4.564348,0,6.506501,6.959049,0,10.3,0,0,0 +4,4.564348,0,6.506501,6.959049,0,10.3,0,0,0 +1,4.564348,0,6.506501,6.959049,0,10.3,0,0,0 +9,4.564348,0,6.506501,6.959049,1,11.84267,0,0,0 +2,4.564348,0,6.506501,6.959049,1,11.84267,0,0,0 +4,4.564348,0,6.506501,6.959049,1,11.84267,0,0,0 +1,4.564348,0,6.506501,6.959049,0,17.2,0,0,0 +3,4.564348,0,6.506501,6.959049,0,17.2,0,0,0 +1,4.564348,0,6.506501,6.959049,0,17.2,0,0,0 +7,4.564348,0,6.506501,6.959049,0,27.6,0,0,0 +55,4.564348,0,6.506501,6.959049,0,27.6,0,0,0 +3,4.564348,0,6.506501,6.959049,0,27.6,0,0,0 +1,0,1,0,5.061929,0,0,1,0,0 +14,0,1,0,5.061929,1,24.1,1,0,0 +2,0,1,0,5.061929,1,24.1,1,0,0 +0,0,1,0,5.061929,1,24.1,1,0,0 +2,0,1,6.109248,6.160541,0,11.84267,0,0,0 +4,0,1,6.109248,6.160541,0,11.84267,0,0,0 +1,0,1,6.109248,6.160541,0,11.84267,0,0,0 +2,0,1,6.109248,6.160541,0,11.84267,0,0,0 +1,0,1,6.109248,6.160541,0,11.84267,0,0,0 +1,0,1,6.109248,6.160541,0,11.84267,0,0,0 +1,0,1,6.109248,6.160541,0,11.84267,0,0,0 +1,0,1,6.109248,6.160541,0,11.84267,0,0,0 +2,0,1,6.109248,6.160541,0,11.84267,0,0,0 +5,0,1,6.109248,6.160541,0,11.84267,0,0,0 +6,0,1,6.109248,6.160541,0,10.3,0,0,0 +9,0,1,6.109248,6.160541,0,10.3,0,0,0 +5,0,1,6.109248,6.160541,0,10.3,0,0,0 +3,0,1,6.109248,6.160541,0,10.3,0,0,0 +6,0,1,6.109248,6.160541,0,10.3,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +6,0,1,6.109248,6.160541,0,3.4,0,0,0 +3,0,1,6.109248,6.160541,0,3.4,0,0,0 +1,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +1,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +1,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +2,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +2,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +1,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +1,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +2,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +4,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +1,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +1,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +2,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +1,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +0,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +2,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +1,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +1,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +3,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +2,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +3,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +1,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +3,0,0,6.282566,0,0,11.84267,0,0,0 +2,0,0,6.282566,0,0,11.84267,0,0,0 +0,0,0,6.282566,0,0,11.84267,0,0,0 +1,0,0,6.282566,0,0,6.9,0,0,0 +0,0,0,6.282566,0,0,6.9,0,0,0 +3,0,0,6.282566,0,0,6.9,0,0,0 +1,0,0,6.282566,0,0,6.9,1,0,0 +0,0,0,6.282566,0,0,6.9,1,0,0 +1,0,0,6.282566,0,0,6.9,1,0,0 +7,0,0,6.282566,0,0,3.4,1,0,0 +7,0,0,6.282566,0,0,3.4,1,0,0 +3,0,0,6.282566,0,0,3.4,1,0,0 +14,0,1,5.010635,5.061929,0,13.8,0,0,0 +7,0,1,5.010635,5.061929,0,13.8,0,0,0 +3,0,1,5.010635,5.061929,0,13.8,0,0,0 +3,4.564348,0,5.164786,5.216079,0,6.9,0,0,0 +5,4.564348,0,5.164786,5.216079,0,6.9,0,0,0 +0,4.564348,0,5.164786,5.216079,0,6.9,0,0,0 +1,4.564348,0,5.164786,5.216079,0,6.9,0,0,0 +1,4.564348,0,5.164786,5.216079,0,6.9,0,0,0 +2,4.564348,0,6.907755,6.959049,0,17.2,0,0,0 +3,4.564348,0,6.907755,6.959049,0,17.2,0,0,0 +5,4.564348,0,6.907755,6.959049,0,17.2,0,0,0 +3,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +2,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +3,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +3,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +0,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +1,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +2,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +1,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +2,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +0,0,1,5.703783,5.755076,0,17.2,0,0,0 +0,0,1,5.703783,5.755076,0,13.8,0,0,0 +0,3.258096,0,6.907755,8.294049,0,0,0,0,0 +0,3.258096,0,6.907755,8.294049,0,0,0,0,0 +2,3.258096,0,6.907755,8.294049,0,0,0,0,0 +5,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +3,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +8,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +9,3.258096,0,6.907755,8.294049,0,24.1,1,0,0 +6,3.258096,0,6.907755,8.294049,0,24.1,1,0,0 +7,3.258096,0,6.907755,8.294049,0,24.1,1,0,0 +0,3.258096,0,6.907755,8.294049,0,0,0,0,0 +0,3.258096,0,6.907755,8.294049,0,0,0,0,0 +3,3.258096,0,6.907755,8.294049,0,0,0,0,0 +4,3.258096,0,6.907755,8.294049,1,13.8,0,1,0 +1,3.258096,0,6.907755,8.294049,1,13.8,0,1,0 +0,3.258096,0,6.907755,8.294049,1,13.8,0,1,0 +2,3.258096,0,6.907755,8.294049,0,10.3,0,0,0 +4,3.258096,0,6.907755,8.294049,0,10.3,0,0,0 +0,3.258096,0,6.907755,8.294049,0,10.3,0,0,0 +2,3.258096,0,0,7.832014,0,13.8,1,0,0 +1,3.258096,0,0,7.832014,0,13.8,1,0,0 +0,3.258096,0,0,7.832014,0,13.8,1,0,0 +1,0,1,0,5.061929,0,17.2,1,0,0 +0,0,1,0,5.061929,0,17.2,1,0,0 +0,0,1,0,5.061929,0,17.2,1,0,0 +0,0,1,0,5.061929,0,6.9,1,0,0 +1,0,1,0,5.061929,0,6.9,1,0,0 +1,0,1,0,5.061929,0,6.9,1,0,0 +2,0,1,0,5.061929,1,13.8,0,1,0 +0,0,1,0,5.061929,1,13.8,0,1,0 +2,0,1,0,5.061929,1,13.8,0,1,0 +3,0,0,4.587006,0,0,10.3,0,0,0 +3,0,0,4.587006,0,0,10.3,0,0,0 +6,0,0,4.587006,0,0,10.3,0,0,0 +1,0,0,4.587006,0,0,6.9,1,0,0 +0,0,0,4.587006,0,0,6.9,1,0,0 +5,0,0,4.587006,0,0,6.9,1,0,0 +0,4.564348,0,0,4.145638,1,17.2,0,0,0 +0,4.564348,0,0,4.145638,1,17.2,0,0,0 +5,0,0,5.962654,0,0,13.8,0,0,0 +6,0,0,5.962654,0,0,13.8,0,0,0 +2,0,0,5.962654,0,0,13.8,0,0,0 +5,0,0,5.962654,0,0,11.84267,0,0,0 +1,0,0,5.962654,0,0,11.84267,0,0,0 +4,0,0,5.962654,0,0,11.84267,0,0,0 +1,0,0,5.962654,0,0,3.4,0,0,0 +3,0,0,5.962654,0,0,3.4,0,0,0 +4,0,0,5.962654,0,0,3.4,0,0,0 +4,0,0,0,0,0,24.1,0,0,0 +6,0,0,0,0,0,24.1,0,0,0 +2,0,0,0,0,0,24.1,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +1,0,0,0,0,0,3.4,0,0,0 +3,3.258096,0,4.969813,7.041412,0,6.9,1,0,0 +6,3.258096,0,4.969813,7.041412,0,6.9,1,0,0 +9,3.258096,0,4.969813,7.041412,0,6.9,1,0,0 +0,3.258096,0,0,6.579251,0,13.8,0,1,0 +1,3.258096,0,0,6.579251,0,13.8,0,1,0 +0,3.258096,0,0,6.579251,0,13.8,0,1,0 +5,0,0,0,0,0,3.4,0,0,0 +4,0,0,0,0,0,3.4,0,0,0 +4,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,0,0,0,0 +9,0,0,4.509099,0,0,13.8,1,0,0 +12,0,0,4.509099,0,0,13.8,1,0,0 +10,0,0,4.509099,0,0,13.8,1,0,0 +4,0,0,4.509099,0,0,10.3,1,0,0 +11,0,0,4.509099,0,0,10.3,1,0,0 +9,0,0,4.509099,0,0,10.3,1,0,0 +0,3.258096,0,4.49981,5.886104,0,6.9,0,0,0 +1,3.258096,0,4.49981,5.886104,0,6.9,0,0,0 +0,3.258096,0,4.49981,5.886104,0,6.9,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +1,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +1,0,1,6.109248,6.160541,0,0,0,0,0 +2,0,1,6.109248,6.160541,0,24.1,0,0,0 +3,0,1,6.109248,6.160541,0,24.1,0,0,0 +0,0,1,6.109248,6.160541,0,24.1,0,0,0 +2,0,1,6.109248,6.160541,0,24.1,0,0,0 +2,0,1,6.109248,6.160541,0,24.1,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +2,0,0,0,0,0,3.4,0,0,0 +2,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +1,0,0,0,0,0,3.4,0,0,0 +1,4.564348,0,0,6.165086,0,13.8,1,0,0 +9,4.564348,0,0,6.165086,0,13.8,1,0,0 +11,4.564348,0,0,6.165086,0,13.8,1,0,0 +3,4.564348,0,6.639876,6.691169,0,0,0,0,0 +1,4.564348,0,6.639876,6.691169,0,0,0,0,0 +5,4.564348,0,6.639876,6.691169,0,0,0,0,0 +2,4.564348,0,6.639876,6.691169,0,0,0,0,0 +1,4.564348,0,6.639876,6.691169,0,0,0,0,0 +13,0,1,6.109248,6.160541,0,6.9,0,0,0 +2,0,1,6.109248,6.160541,0,6.9,0,0,0 +1,0,1,6.109248,6.160541,0,6.9,0,0,0 +7,0,1,6.109248,6.160541,0,6.9,0,0,0 +0,0,1,6.109248,6.160541,0,6.9,0,0,0 +2,0,1,6.109248,6.160541,0,6.9,0,0,0 +7,0,1,6.109248,6.160541,0,17.2,1,0,0 +7,0,1,6.109248,6.160541,0,17.2,1,0,0 +3,0,1,6.109248,6.160541,0,17.2,1,0,0 +11,3.258096,0,4.989071,6.375365,0,3.4,0,0,0 +0,3.258096,0,4.989071,6.375365,0,3.4,0,0,0 +8,0,0,0,0,0,6.9,0,0,0 +6,0,0,0,0,0,6.9,0,0,0 +13,0,0,0,0,0,6.9,0,0,0 +7,0,0,0,0,1,10.3,1,0,0 +4,0,0,0,0,1,10.3,1,0,0 +1,0,0,0,0,1,10.3,1,0,0 +2,0,0,0,0,0,6.9,0,1,0 +1,0,0,0,0,0,6.9,0,1,0 +1,0,0,0,0,0,6.9,0,1,0 +0,0,0,0,0,1,6.9,0,0,0 +0,0,0,0,0,1,6.9,0,0,0 +3,0,0,0,0,1,6.9,0,0,0 +2,3.258096,0,6.907755,8.294049,0,10.3,1,0,0 +3,3.258096,0,6.907755,8.294049,0,10.3,1,0,0 +6,3.258096,0,6.907755,8.294049,0,10.3,1,0,0 +1,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +1,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +2,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +1,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +2,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +2,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +2,3.258096,0,6.907755,8.294049,0,17.2,0,0,0 +0,3.258096,0,6.907755,8.294049,0,17.2,0,0,0 +1,3.258096,0,6.907755,8.294049,0,17.2,0,0,0 +3,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +1,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +2,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +1,4.564348,0,6.907755,6.959049,1,37.9,0,0,0 +4,4.564348,0,6.907755,6.959049,1,37.9,0,0,0 +1,4.564348,0,6.907755,6.959049,1,37.9,0,0,0 +2,4.564348,0,6.907755,6.959049,1,37.9,0,0,0 +0,4.564348,0,6.907755,6.959049,1,37.9,0,0,0 +2,0,0,0,0,0,6.9,1,0,0 +1,0,0,0,0,0,6.9,1,0,0 +2,0,0,0,0,0,6.9,1,0,0 +0,0,0,0,0,0,6.9,1,0,0 +0,0,0,0,0,0,6.9,1,0,0 +1,0,0,0,0,0,6.9,1,0,0 +9,0,1,6.289567,5.755076,1,10.3,0,0,0 +8,0,1,6.289567,5.755076,1,10.3,0,0,0 +10,0,1,6.289567,5.755076,1,10.3,0,0,0 +0,0,1,6.289567,5.755076,0,10.3,0,0,0 +1,0,1,6.289567,5.755076,0,10.3,0,0,0 +0,0,1,6.289567,5.755076,0,10.3,0,0,0 +2,0,0,5.949705,0,0,24.1,0,0,0 +5,0,0,5.949705,0,0,24.1,0,0,0 +3,0,0,5.949705,0,0,24.1,0,0,0 +2,0,0,5.949705,0,0,11.84267,0,0,0 +1,0,0,5.949705,0,0,11.84267,0,0,0 +4,0,0,5.949705,0,0,11.84267,0,0,0 +3,0,0,5.949705,0,0,11.84267,0,0,0 +2,0,0,5.949705,0,0,11.84267,0,0,0 +1,0,0,5.949705,0,0,11.84267,0,0,0 +2,0,0,5.949705,0,0,11.84267,0,0,0 +1,0,0,5.949705,0,0,11.84267,0,0,0 +1,0,0,5.949705,0,0,11.84267,0,0,0 +6,0,0,5.949705,0,0,10.3,0,0,0 +7,0,0,5.949705,0,0,10.3,0,0,0 +6,0,0,5.949705,0,0,10.3,0,0,0 +3,0,0,0,0,0,10.3,1,0,0 +16,0,0,0,0,0,10.3,1,0,0 +2,0,0,0,0,0,10.3,1,0,0 +2,0,0,0,0,0,11.84267,1,0,0 +0,0,0,0,0,0,11.84267,1,0,0 +0,0,0,0,0,0,11.84267,1,0,0 +0,0,0,0,0,0,6.9,1,0,0 +0,0,0,0,0,0,6.9,1,0,0 +3,0,0,0,0,0,6.9,1,0,0 +1,0,0,0,0,0,10.3,0,0,0 +0,0,0,0,0,0,10.3,0,0,0 +0,0,0,0,0,0,10.3,0,0,0 +0,0,0,0,0,0,11.84267,0,0,0 +0,0,0,0,0,0,11.84267,0,0,0 +1,0,0,0,0,0,11.84267,0,0,0 +1,3.258096,0,6.39693,7.783224,0,13.8,0,0,0 +3,3.258096,0,6.39693,7.783224,0,13.8,0,0,0 +0,3.258096,0,6.39693,7.783224,0,11.84267,0,0,0 +0,3.258096,0,6.39693,7.783224,0,11.84267,0,0,0 +0,3.258096,0,6.907755,8.294049,0,3.4,0,0,0 +2,3.258096,0,6.907755,8.294049,0,3.4,0,0,0 +0,3.258096,0,6.907755,8.294049,0,3.4,0,0,0 +3,3.258096,0,6.907755,8.294049,0,3.4,0,0,0 +1,3.258096,0,6.907755,8.294049,0,3.4,0,0,0 +1,3.258096,0,6.907755,8.294049,0,6.9,0,0,0 +2,3.258096,0,6.907755,8.294049,0,6.9,0,0,0 +0,3.258096,0,6.907755,8.294049,0,6.9,0,0,0 +1,3.258096,0,6.907755,8.294049,0,6.9,0,0,0 +3,3.258096,0,6.907755,8.294049,0,6.9,0,0,0 +2,3.258096,0,6.907755,8.294049,0,3.4,0,0,0 +4,3.258096,0,6.907755,8.294049,0,3.4,0,0,0 +4,3.258096,0,6.907755,8.294049,0,3.4,0,0,0 +0,3.258096,0,6.907755,8.294049,0,3.4,0,0,0 +2,3.258096,0,6.907755,8.294049,0,3.4,0,0,0 +12,0,1,5.703783,5.755076,1,3.4,0,0,0 +3,0,1,5.703783,5.755076,1,3.4,0,0,0 +1,0,1,5.703783,5.755076,1,3.4,0,0,0 +1,0,1,5.703783,5.755076,1,3.4,0,0,0 +4,0,1,5.703783,5.755076,1,3.4,0,0,0 +4,0,1,5.703783,5.755076,0,13.8,0,0,0 +1,0,1,5.703783,5.755076,0,13.8,0,0,0 +2,0,1,5.703783,5.755076,0,13.8,0,0,0 +3,0,1,5.703783,5.755076,0,13.8,0,0,0 +0,0,1,5.703783,5.755076,0,13.8,0,0,0 +1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0 +8,0,0,0,0,0,10.3,1,0,0 +5,0,0,0,0,0,10.3,1,0,0 +4,0,0,0,0,0,10.3,1,0,0 +6,0,0,0,0,0,3.4,0,0,0 +4,0,0,0,0,0,3.4,0,0,0 +4,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,6.9,0,0,0 +2,0,0,0,0,0,6.9,0,0,0 +1,0,0,0,0,0,6.9,0,0,0 +2,0,0,0,0,0,11.84267,0,0,0 +1,0,0,0,0,0,11.84267,0,0,0 +1,0,0,0,0,0,11.84267,0,0,0 +2,0,0,0,0,1,11.84267,0,0,0 +5,0,0,5.455321,0,0,24.1,0,1,0 +8,0,0,5.455321,0,0,24.1,0,1,0 +9,0,0,5.455321,0,0,24.1,0,1,0 +11,0,0,5.455321,0,1,20.7,0,0,0 +9,0,0,5.455321,0,1,20.7,0,0,0 +4,0,0,5.455321,0,1,20.7,0,0,0 +6,0,0,5.455321,0,0,11.84267,0,0,0 +2,0,0,5.455321,0,0,11.84267,0,0,0 +1,0,0,5.455321,0,0,11.84267,0,0,0 +4,0,0,6.378766,0,0,0,0,0,0 +2,0,0,6.378766,0,0,0,0,0,0 +4,0,0,6.378766,0,0,0,0,0,0 +6,0,0,6.378766,0,1,10.3,0,0,0 +2,0,0,6.378766,0,1,10.3,0,0,0 +3,0,0,6.378766,0,1,10.3,0,0,0 +1,0,1,6.249125,6.160541,0,24.1,1,0,0 +6,0,1,6.249125,6.160541,0,24.1,1,0,0 +24,0,1,6.249125,6.160541,0,24.1,1,0,0 +2,0,1,6.249125,6.160541,0,11.84267,0,0,0 +1,0,1,6.249125,6.160541,0,11.84267,0,0,0 +5,0,1,6.249125,6.160541,0,11.84267,0,0,0 +0,0,1,6.249125,6.160541,0,6.9,0,0,0 +0,0,1,6.249125,6.160541,0,6.9,0,0,0 +3,0,1,6.249125,6.160541,0,6.9,0,0,0 +0,0,1,6.249125,6.160541,0,11.84267,0,0,0 +2,0,1,6.249125,6.160541,0,11.84267,0,0,0 +1,0,1,6.249125,6.160541,0,11.84267,0,0,0 +4,0,0,0,0,0,13.8,0,0,0 +4,0,0,0,0,0,13.8,0,0,0 +3,0,0,0,0,0,13.8,0,0,0 +1,3.258096,0,6.43575,7.693937,1,24.1,1,0,0 +0,3.258096,0,6.43575,7.693937,1,24.1,1,0,0 +0,3.258096,0,6.43575,7.693937,1,24.1,1,0,0 +2,3.258096,0,6.43575,7.693937,1,13.8,1,0,0 +1,3.258096,0,6.43575,7.693937,1,13.8,1,0,0 +0,3.258096,0,6.43575,7.693937,1,13.8,1,0,0 +1,3.258096,0,6.43575,7.693937,0,11.84267,0,0,0 +2,3.258096,0,6.43575,7.693937,0,11.84267,0,0,0 +1,3.258096,0,6.43575,7.693937,0,11.84267,0,0,0 +3,4.564348,0,5.956356,6.007648,0,13.8,0,0,0 +0,4.564348,0,5.956356,6.007648,0,13.8,0,0,0 +0,0,1,3.648839,5.061929,0,0,1,0,0 +0,0,1,3.648839,5.061929,0,0,1,0,0 +0,0,1,3.648839,5.061929,0,0,1,0,0 +0,0,1,3.648839,5.061929,0,0,1,0,0 +0,0,1,3.648839,5.061929,0,0,1,0,0 +0,0,0,5.244916,0,0,24.1,1,0,0 +2,0,0,5.244916,0,0,24.1,1,0,0 +0,0,0,5.244916,0,0,24.1,1,0,0 +0,0,0,5.244916,0,0,24.1,1,0,0 +1,0,0,5.244916,0,0,24.1,1,0,0 +6,0,0,4.896346,0,0,17.2,1,0,0 +2,0,0,4.896346,0,0,17.2,1,0,0 +1,0,0,4.896346,0,0,17.2,1,0,0 +1,0,0,4.896346,0,0,17.2,1,0,0 +3,0,0,4.896346,0,0,17.2,1,0,0 +0,0,0,0,0,0,10.3,1,0,0 +1,0,0,0,0,0,10.3,1,0,0 +2,0,0,0,0,0,10.3,1,0,0 +1,0,0,0,0,0,10.3,1,0,0 +0,0,0,0,0,0,10.3,1,0,0 +8,0,0,0,0,1,13.8,1,0,0 +9,0,0,0,0,1,13.8,1,0,0 +9,0,0,0,0,1,13.8,1,0,0 +11,0,0,0,0,1,13.8,1,0,0 +6,0,0,0,0,1,13.8,1,0,0 +1,3.258096,0,5.783825,7.17012,1,17.2,1,0,0 +2,3.258096,0,0,6.329008,0,20.7,1,0,0 +2,3.258096,0,0,6.329008,0,20.7,1,0,0 +5,3.258096,0,0,6.329008,0,20.7,1,0,0 +4,3.258096,0,0,6.329008,0,20.7,1,0,0 +1,3.258096,0,0,6.329008,0,20.7,1,0,0 +2,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +1,0,0,0,0,0,3.4,0,0,0 +3,0,1,6.109248,6.160541,0,13.8,0,0,0 +8,0,1,6.109248,6.160541,0,13.8,0,0,0 +3,0,1,6.109248,6.160541,0,13.8,0,0,0 +10,0,1,6.109248,6.160541,0,13.8,0,0,0 +1,0,1,6.109248,6.160541,0,13.8,0,0,0 +2,0,1,0,5.061929,0,3.4,0,0,0 +0,0,1,0,5.061929,0,3.4,0,0,0 +0,0,1,0,5.061929,0,3.4,0,0,0 +0,0,1,0,5.061929,0,3.4,0,0,0 +14,4.564348,0,0,5.435788,0,3.4,0,0,0 +9,4.564348,0,0,5.435788,0,3.4,0,0,0 +23,4.564348,0,0,5.435788,0,3.4,0,0,0 +7,0,1,6.109248,6.160541,0,10.3,1,0,0 +4,0,1,6.109248,6.160541,0,10.3,1,0,0 +6,0,1,6.109248,6.160541,0,10.3,1,0,0 +3,0,1,6.109248,6.160541,0,10.3,1,0,0 +3,0,1,6.109248,6.160541,0,10.3,1,0,0 +5,0,1,6.109248,6.160541,0,10.3,1,0,0 +4,0,1,6.109248,6.160541,0,10.3,1,0,0 +9,0,1,6.109248,6.160541,0,10.3,1,0,0 +4,0,1,6.109248,6.160541,0,10.3,1,0,0 +5,0,1,6.109248,6.160541,0,10.3,1,0,0 +2,0,1,6.109248,6.160541,0,6.9,0,0,0 +6,0,1,6.109248,6.160541,0,6.9,0,0,0 +3,0,1,6.109248,6.160541,0,6.9,0,0,0 +3,0,1,6.109248,6.160541,0,6.9,0,0,0 +7,0,1,6.109248,6.160541,0,6.9,0,0,0 +2,0,1,6.109248,6.160541,0,3.4,0,0,0 +13,0,1,6.109248,6.160541,0,3.4,0,0,0 +10,0,1,6.109248,6.160541,0,3.4,0,0,0 +6,0,1,6.109248,6.160541,0,3.4,0,0,0 +14,0,1,6.109248,6.160541,0,3.4,0,0,0 +5,3.258096,0,6.114788,7.501082,0,17.2,0,0,0 +12,3.258096,0,6.114788,7.501082,0,17.2,0,0,0 +21,3.258096,0,6.114788,7.501082,0,17.2,0,0,0 +0,0,0,4.189655,0,0,11.84267,0,0,0 +1,0,0,4.189655,0,0,11.84267,0,0,0 +1,0,0,4.189655,0,0,11.84267,0,0,0 +1,0,0,4.189655,0,0,11.84267,1,0,0 +2,0,0,4.189655,0,0,11.84267,1,0,0 +6,0,0,4.189655,0,0,11.84267,1,0,0 +5,0,0,4.189655,0,0,13.8,0,0,0 +2,0,0,4.189655,0,0,13.8,0,0,0 +4,0,0,4.189655,0,0,13.8,0,0,0 +0,0,1,0,6.160541,0,11.84267,1,0,0 +0,0,1,0,6.160541,0,11.84267,1,0,0 +1,0,1,0,6.160541,0,11.84267,1,0,0 +2,0,1,0,6.160541,0,11.84267,1,0,0 +1,0,1,0,6.160541,0,11.84267,1,0,0 +3,0,1,0,6.160541,1,6.9,1,0,0 +5,0,1,0,6.160541,1,6.9,1,0,0 +4,0,1,0,6.160541,1,6.9,1,0,0 +0,0,1,0,6.160541,1,6.9,1,0,0 +1,0,1,0,6.160541,1,6.9,1,0,0 +0,0,1,0,6.160541,0,11.84267,1,0,0 +15,0,0,0,0,1,20.7,1,0,0 +9,0,0,0,0,1,20.7,1,0,0 +1,0,0,0,0,1,20.7,1,0,0 +0,0,0,0,0,1,11.84267,0,0,0 +0,0,0,0,0,1,11.84267,0,0,0 +1,0,0,0,0,1,11.84267,0,0,0 +0,0,0,0,0,0,10.3,0,1,0 +6,0,0,0,0,0,10.3,0,1,0 +0,0,0,0,0,0,10.3,0,1,0 +0,0,0,0,0,0,3.4,0,0,0 +1,0,0,0,0,0,3.4,0,0,0 +1,0,0,0,0,0,3.4,0,0,0 +3,0,0,0,0,0,6.9,0,0,0 +0,0,0,0,0,0,6.9,0,0,0 +2,0,0,0,0,0,6.9,0,0,0 +4,0,0,0,0,0,0,1,0,0 +2,0,0,0,0,0,0,1,0,0 +3,0,0,0,0,0,0,1,0,0 +21,0,1,6.86943,5.755076,1,20.7,0,1,0 +41,0,1,6.86943,5.755076,1,20.7,0,1,0 +25,0,1,6.86943,5.755076,1,20.7,0,1,0 +1,0,1,6.86943,5.755076,1,17.2,0,0,0 +1,0,1,6.86943,5.755076,1,17.2,0,0,0 +1,0,1,6.86943,5.755076,1,17.2,0,0,0 +1,0,1,6.109248,6.160541,0,11.84267,0,0,0 +0,0,1,6.109248,6.160541,0,11.84267,0,0,0 +1,0,1,6.109248,6.160541,0,11.84267,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +1,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,11.84267,0,0,0 +0,0,1,6.109248,6.160541,0,11.84267,0,0,0 +4,0,1,6.109248,6.160541,0,11.84267,0,0,0 +1,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,3.258096,0,4.382027,8.294049,0,6.9,0,0,0 +1,3.258096,0,4.382027,8.294049,0,6.9,0,0,0 +1,3.258096,0,4.382027,8.294049,0,6.9,0,0,0 +0,3.258096,0,4.382027,8.294049,0,6.9,0,0,0 +0,3.258096,0,4.382027,8.294049,0,6.9,0,0,0 +0,3.258096,0,4.382027,8.294049,0,3.4,0,0,0 +2,3.258096,0,4.382027,8.294049,0,3.4,0,0,0 +7,3.258096,0,4.382027,8.294049,0,3.4,0,0,0 +3,3.258096,0,4.382027,8.294049,0,3.4,0,0,0 +0,3.258096,0,4.382027,8.294049,0,3.4,0,0,0 +0,3.258096,0,4.382027,8.294049,0,17.2,0,0,0 +5,3.258096,0,4.382027,8.294049,0,17.2,0,0,0 +8,3.258096,0,4.382027,8.294049,0,17.2,0,0,0 +2,3.258096,0,4.382027,8.294049,0,17.2,0,0,0 +1,3.258096,0,4.382027,8.294049,0,17.2,0,0,0 +9,0,0,0,0,0,10.3,0,0,0 +13,0,0,0,0,0,10.3,0,0,0 +14,0,0,0,0,0,10.3,0,0,0 +0,0,1,5.010635,5.061929,0,0,1,0,0 +0,0,1,0,5.061929,0,10.3,1,0,0 +1,0,1,0,5.061929,0,10.3,1,0,0 +10,0,1,0,5.061929,0,10.3,1,0,0 +4,0,1,0,5.061929,0,10.3,1,0,0 +4,0,1,0,5.061929,0,10.3,1,0,0 +3,0,0,0,0,0,20.7,0,1,0 +0,0,0,0,0,0,20.7,0,1,0 +8,0,0,0,0,0,20.7,0,1,0 +7,0,0,0,0,0,20.7,0,1,0 +1,0,0,0,0,0,11.84267,1,0,0 +0,0,0,0,0,0,11.84267,1,0,0 +1,0,0,0,0,0,11.84267,1,0,0 +5,0,0,0,0,0,11.84267,1,0,0 +1,0,0,0,0,0,11.84267,1,0,0 +19,0,0,0,0,0,24.1,0,0,1 +14,0,0,0,0,0,24.1,0,0,1 +23,0,0,0,0,0,24.1,0,0,1 +23,0,0,0,0,0,24.1,0,0,1 +14,0,0,0,0,0,24.1,0,0,1 +4,0,0,0,0,1,13.8,0,0,0 +9,0,0,0,0,1,13.8,0,0,0 +6,0,0,0,0,1,13.8,0,0,0 +5,0,0,0,0,0,6.9,0,0,0 +7,0,0,0,0,0,6.9,0,0,0 +8,0,0,0,0,0,6.9,0,0,0 +1,0,0,0,0,0,6.9,0,0,0 +2,0,0,0,0,0,6.9,0,0,0 +2,0,0,0,0,0,6.9,0,0,0 +0,0,0,0,0,0,13.8,0,0,0 +3,0,0,0,0,0,13.8,0,0,0 +3,0,0,0,0,0,13.8,0,0,0 +1,0,0,0,0,0,13.8,1,0,0 +0,0,0,0,0,0,13.8,1,0,0 +0,0,0,0,0,0,13.8,1,0,0 +3,0,0,0,0,0,13.8,1,0,0 +0,0,0,0,0,0,13.8,1,0,0 +0,4.564348,0,5.247024,5.298317,0,0,0,0,0 +6,0,0,0,0,1,0,0,0,0 +4,0,0,0,0,1,0,0,0,0 +9,0,0,0,0,1,0,0,0,0 +1,0,0,3.401197,0,0,10.3,0,0,0 +4,0,0,3.401197,0,0,10.3,0,0,0 +2,0,0,3.401197,0,0,10.3,0,0,0 +0,3.258096,0,6.351758,7.738052,1,20.7,1,0,0 +6,3.258096,0,6.351758,7.738052,1,20.7,1,0,0 +4,3.258096,0,6.351758,7.738052,1,20.7,1,0,0 +2,3.258096,0,6.351758,7.738052,0,11.84267,0,0,0 +3,3.258096,0,6.351758,7.738052,0,11.84267,0,0,0 +2,3.258096,0,6.351758,7.738052,0,11.84267,0,0,0 +0,0,0,0,0,0,13.8,1,0,0 +2,0,0,0,0,0,13.8,1,0,0 +1,0,0,0,0,0,13.8,1,0,0 +0,0,0,0,0,0,13.8,1,0,0 +1,0,0,0,0,0,13.8,1,0,0 +1,3.258096,0,0,8.294049,0,10.3,1,0,0 +2,0,1,6.109248,6.160541,0,13.8,1,0,0 +0,0,1,6.109248,6.160541,0,13.8,1,0,0 +4,0,1,6.109248,6.160541,0,13.8,1,0,0 +0,0,1,6.109248,6.160541,0,6.9,0,0,0 +0,0,1,6.109248,6.160541,0,6.9,0,0,0 +1,0,1,6.109248,6.160541,0,6.9,0,0,0 +5,0,1,6.109248,6.160541,0,11.84267,1,0,0 +0,0,1,6.109248,6.160541,0,11.84267,1,0,0 +1,0,1,6.109248,6.160541,0,11.84267,1,0,0 +0,0,0,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0 +2,0,0,0,0,1,27.6,1,0,0 +0,0,0,0,0,1,27.6,1,0,0 +0,0,0,0,0,1,27.6,1,0,0 +1,0,0,0,0,1,3.4,0,0,1 +0,0,0,0,0,1,3.4,0,0,1 +0,0,0,0,0,1,3.4,0,0,1 +1,0,0,0,0,0,3.4,1,0,0 +1,0,0,0,0,0,3.4,1,0,0 +0,0,0,0,0,0,3.4,1,0,0 +0,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +0,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +1,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +0,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +0,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +0,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +1,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +1,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +2,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +1,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +3,4.564348,0,6.645741,6.697034,0,13.8,0,0,0 +0,4.564348,0,6.645741,6.697034,0,13.8,0,0,0 +0,4.564348,0,6.645741,6.697034,0,13.8,0,0,0 +3,4.564348,0,6.645741,6.697034,0,6.9,0,0,0 +1,4.564348,0,6.645741,6.697034,0,6.9,0,0,0 +0,4.564348,0,6.645741,6.697034,0,6.9,0,0,0 +2,4.564348,0,6.645741,6.697034,0,0,0,0,0 +0,4.564348,0,6.645741,6.697034,0,0,0,0,0 +0,4.564348,0,6.645741,6.697034,0,0,0,0,0 +3,4.564348,0,6.645741,6.697034,0,17.2,0,0,0 +1,4.564348,0,6.645741,6.697034,0,17.2,0,0,0 +1,4.564348,0,6.645741,6.697034,0,17.2,0,0,0 +0,4.564348,0,6.645741,6.697034,0,11.84267,0,0,0 +0,4.564348,0,6.645741,6.697034,0,11.84267,0,0,0 +0,4.564348,0,6.645741,6.697034,0,11.84267,0,0,0 +0,0,1,5.010635,5.061929,0,3.4,0,0,0 +0,0,1,5.010635,5.061929,0,3.4,0,0,0 +0,0,1,5.010635,5.061929,0,3.4,0,0,0 +0,4.564348,0,0,6.959049,0,6.9,0,0,0 +0,4.564348,0,0,6.959049,0,17.2,0,0,0 +0,4.564348,0,0,6.959049,1,17.2,0,0,0 +0,0,1,5.554818,5.061929,0,10.3,0,0,1 +2,0,1,5.554818,5.061929,0,10.3,0,0,1 +1,0,1,5.554818,5.061929,0,10.3,0,0,1 +0,4.564348,0,0,6.602374,0,3.4,0,0,0 +0,4.564348,0,0,6.602374,0,3.4,0,0,0 +0,4.564348,0,0,6.602374,0,3.4,0,0,0 +0,0,0,0,0,.1981873,11.84267,0,0,0 +0,0,0,0,0,.1981873,11.84267,0,0,0 +0,0,0,0,0,.1981873,11.84267,0,0,0 +0,0,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,0,0,1,0 +0,0,0,0,0,1,0,0,1,0 +0,3.258096,0,0,7.495542,0,6.9,1,0,0 +7,3.258096,0,0,7.495542,0,6.9,1,0,0 +2,3.258096,0,0,7.495542,0,6.9,1,0,0 +5,3.258096,0,6.907755,8.294049,0,24.1,1,0,0 +2,3.258096,0,6.907755,8.294049,0,24.1,1,0,0 +1,3.258096,0,6.907755,8.294049,0,24.1,1,0,0 +1,4.564348,0,0,4.807036,0,6.9,1,0,0 +5,4.564348,0,0,4.807036,0,6.9,1,0,0 +0,4.564348,0,0,4.807036,0,6.9,1,0,0 +7,3.258096,0,0,7.552342,1,6.9,1,0,0 +1,3.258096,0,0,7.552342,1,6.9,1,0,0 +1,3.258096,0,0,7.552342,1,6.9,1,0,0 +7,4.564348,0,5.788491,5.674408,1,24.1,1,0,0 +4,4.564348,0,5.788491,5.674408,1,24.1,1,0,0 +3,4.564348,0,5.788491,5.674408,1,24.1,1,0,0 +2,4.564348,0,5.788491,5.674408,1,27.6,1,0,0 +6,4.564348,0,5.788491,5.674408,1,27.6,1,0,0 +11,4.564348,0,5.788491,5.674408,1,27.6,1,0,0 +0,0,0,0,0,0,3.4,0,0,0 +1,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +12,0,1,5.617753,6.160541,0,11.84267,0,0,0 +8,0,1,5.617753,6.160541,0,11.84267,0,0,0 +6,0,1,5.617753,6.160541,0,11.84267,0,0,0 +3,0,1,5.617753,6.160541,0,11.84267,0,0,0 +3,0,1,5.617753,6.160541,0,11.84267,0,0,0 +0,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +4,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +0,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +5,3.258096,0,6.115671,7.501966,0,11.84267,0,0,0 +3,3.258096,0,6.115671,7.501966,0,11.84267,0,0,0 +9,3.258096,0,6.115671,7.501966,0,11.84267,0,0,0 +1,4.564348,0,4.882802,4.934095,1,10.3,0,0,0 +0,4.564348,0,4.882802,4.934095,1,10.3,0,0,0 +0,4.564348,0,4.882802,4.934095,1,10.3,0,0,0 +0,4.564348,0,0,6.566006,0,13.8,0,0,0 +0,4.564348,0,0,6.566006,0,13.8,0,0,0 +0,4.564348,0,0,6.566006,0,13.8,0,0,0 +4,0,0,0,0,.1981873,11.84267,0,0,0 +4,0,0,0,0,.1981873,11.84267,0,0,0 +1,0,0,0,0,.1981873,11.84267,0,0,0 +0,0,0,0,0,.0221239,11.84267,0,0,0 +5,0,0,0,0,.0221239,11.84267,0,0,0 +4,0,0,0,0,.0221239,11.84267,0,0,0 +2,0,1,6.39693,6.160541,.0221239,11.84267,0,0,0 +1,0,1,6.39693,6.160541,.0221239,11.84267,0,0,0 +6,0,0,6.762128,0,.0221239,11.84267,0,0,0 +5,0,0,6.762128,0,.0221239,11.84267,0,0,0 +4,0,0,6.762128,0,.0221239,11.84267,0,0,0 +4,0,0,0,0,0,11.84267,0,0,0 +1,0,0,0,0,0,11.84267,0,0,0 +0,0,0,0,0,0,11.84267,0,0,0 +3,0,0,6.351409,0,0,6.9,0,0,0 +1,0,0,6.351409,0,0,6.9,0,0,0 +0,0,0,6.351409,0,0,6.9,0,0,0 +7,0,0,5.871329,0,0,11.84267,0,0,0 +2,0,0,5.871329,0,0,11.84267,0,0,0 +6,0,0,5.871329,0,0,11.84267,0,0,0 +4,0,1,0,6.160541,0,11.84267,0,0,0 +0,0,1,0,6.160541,0,11.84267,0,0,0 +8,0,1,0,6.160541,0,11.84267,0,0,0 +8,0,0,5.785915,0,0,11.84267,0,0,0 +6,0,0,5.785915,0,0,11.84267,0,0,0 +1,0,0,5.785915,0,0,11.84267,0,0,0 +3,0,0,5.785915,0,0,11.84267,0,0,0 +2,0,0,5.785915,0,0,11.84267,0,0,0 +3,3.258096,0,0,7.167964,.0221239,11.84267,0,0,0 +2,3.258096,0,0,7.167964,.0221239,11.84267,0,0,0 +0,0,0,0,0,.1981873,11.84267,0,0,0 +3,0,0,0,0,.1981873,11.84267,0,0,0 +1,0,0,0,0,.1981873,11.84267,0,0,0 +3,3.258096,0,5.717028,7.103322,0,11.84267,0,0,0 +1,3.258096,0,5.717028,7.103322,0,11.84267,0,0,0 +1,3.258096,0,5.717028,7.103322,0,11.84267,0,0,0 +2,3.258096,0,5.717028,7.103322,0,11.84267,0,0,0 +2,3.258096,0,5.717028,7.103322,0,11.84267,0,0,0 +4,0,0,6.246107,0,0,11.84267,0,0,0 +4,0,0,6.246107,0,0,11.84267,0,0,0 +5,0,0,6.246107,0,0,11.84267,0,0,0 +7,4.564348,0,6.639876,6.691169,.1981873,11.84267,0,0,0 +8,4.564348,0,6.639876,6.691169,.1981873,11.84267,0,0,0 +7,4.564348,0,6.639876,6.691169,.1981873,11.84267,0,0,0 +7,4.564348,0,6.639876,6.691169,.1981873,11.84267,0,0,0 +16,4.564348,0,6.639876,6.691169,.1981873,11.84267,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +1,0,0,0,0,0,3.4,0,0,0 +3,0,0,0,0,0,3.4,0,0,0 +5,0,0,0,0,0,3.4,0,0,0 +3,0,0,0,0,0,3.4,0,0,0 +0,4.564348,0,0,6.959049,1,27.6,0,0,0 +1,3.258096,0,6.280845,6.628041,0,11.84267,1,0,0 +4,3.258096,0,6.280845,6.628041,0,11.84267,1,0,0 +5,3.258096,0,6.280845,6.628041,0,11.84267,1,0,0 +7,3.258096,0,6.280845,6.628041,0,3.4,1,0,0 +26,3.258096,0,6.280845,6.628041,0,3.4,1,0,0 +11,3.258096,0,6.280845,6.628041,0,3.4,1,0,0 +2,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +0,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +1,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +2,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +2,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +2,3.258096,0,6.907755,8.294049,0,3.4,0,0,0 +5,3.258096,0,6.907755,8.294049,0,3.4,0,0,0 +1,3.258096,0,6.907755,8.294049,0,3.4,0,0,0 +0,3.258096,0,6.907755,8.294049,0,3.4,0,0,0 +0,3.258096,0,6.907755,8.294049,0,3.4,0,0,0 +0,3.258096,0,6.907755,8.294049,0,6.9,0,0,0 +2,3.258096,0,6.907755,8.294049,0,6.9,0,0,0 +2,3.258096,0,6.907755,8.294049,0,6.9,0,0,0 +0,3.258096,0,6.907755,8.294049,0,6.9,0,0,0 +0,3.258096,0,6.907755,8.294049,0,6.9,0,0,0 +1,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +0,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +1,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +2,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +2,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +1,0,0,0,0,.0221239,11.84267,0,0,0 +2,0,0,0,0,.0221239,11.84267,0,0,0 +0,0,0,0,0,.0221239,11.84267,0,0,0 +1,0,0,0,0,.0221239,11.84267,0,0,0 +3,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +2,4.564348,0,6.907755,6.959049,1,20.7,0,0,0 +1,0,0,5.355642,0,0,3.4,0,0,0 +1,0,0,5.355642,0,0,3.4,0,0,0 +2,0,0,5.355642,0,0,3.4,0,0,0 +9,0,0,5.355642,0,0,3.4,0,0,0 +3,0,0,5.355642,0,0,3.4,0,0,0 +15,0,0,4.587006,0,0,11.84267,0,0,0 +4,0,0,4.587006,0,0,11.84267,0,0,0 +1,0,0,4.587006,0,0,11.84267,0,0,0 +4,0,1,5.703783,5.755076,0,6.9,0,0,0 +0,0,1,5.703783,5.755076,0,6.9,0,0,0 +5,0,1,5.703783,5.755076,0,6.9,0,0,0 +3,3.258096,0,6.612041,7.998335,.0221239,11.84267,0,0,0 +5,3.258096,0,6.612041,7.998335,.0221239,11.84267,0,0,0 +0,3.258096,0,6.612041,7.998335,.0221239,11.84267,0,0,0 +4,0,1,6.109248,6.160541,0,0,0,0,0 +3,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +2,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +1,0,0,0,0,0,0,0,0,0 +3,0,0,0,0,0,0,0,0,0 +3,0,0,0,0,0,0,0,0,0 +3,0,1,0,5.755076,0,10.3,0,0,0 +4,0,1,0,5.755076,0,10.3,0,0,0 +0,0,1,0,5.755076,0,10.3,0,0,0 +0,0,1,0,5.755076,0,10.3,0,0,0 +0,0,1,0,5.755076,0,10.3,0,0,0 +5,0,1,0,5.755076,1,24.1,0,0,0 +2,0,1,0,5.755076,1,24.1,0,0,0 +4,0,1,0,5.755076,1,24.1,0,0,0 +1,0,1,0,5.755076,1,24.1,0,0,0 +7,0,1,0,5.755076,1,24.1,0,0,0 +3,3.258096,0,6.907755,8.294049,0,0,0,0,0 +1,3.258096,0,6.907755,8.294049,0,0,0,0,0 +4,3.258096,0,6.907755,8.294049,0,0,0,0,0 +0,3.258096,0,6.907755,8.294049,0,0,0,0,0 +0,3.258096,0,6.907755,8.294049,0,0,0,0,0 +2,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +3,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +1,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +0,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +1,3.258096,0,6.907755,8.294049,0,11.84267,0,0,0 +20,3.258096,0,6.907755,8.294049,0,17.2,0,0,0 +10,3.258096,0,6.907755,8.294049,0,17.2,0,0,0 +23,3.258096,0,6.907755,8.294049,0,17.2,0,0,0 +12,3.258096,0,6.907755,8.294049,0,17.2,0,0,0 +9,3.258096,0,6.907755,8.294049,0,17.2,0,0,0 +7,0,0,0,0,.0221239,11.84267,0,0,0 +6,0,0,0,0,.0221239,11.84267,0,0,0 +3,0,0,0,0,.0221239,11.84267,0,0,0 +4,4.564348,0,0,5.435788,0,10.3,0,0,0 +9,4.564348,0,0,5.435788,0,10.3,0,0,0 +5,4.564348,0,0,5.435788,0,10.3,0,0,0 +10,3.258096,0,6.280845,6.628041,1,13.8,0,0,0 +8,3.258096,0,6.280845,6.628041,1,13.8,0,0,0 +7,3.258096,0,6.280845,6.628041,1,13.8,0,0,0 +2,0,0,4.063885,0,0,3.4,0,0,0 +0,0,0,4.063885,0,0,3.4,0,0,0 +0,0,0,4.063885,0,0,3.4,0,0,0 +1,4.564348,0,6.907755,6.959049,0,11.84267,0,0,0 +0,3.258096,0,6.907755,8.294049,0,3.4,0,0,0 +0,3.258096,0,6.907755,8.294049,0,3.4,0,0,0 +0,3.258096,0,6.907755,8.294049,0,3.4,0,0,0 +1,3.258096,0,0,7.194437,0,6.9,0,0,0 +0,3.258096,0,0,7.194437,0,6.9,0,0,0 +0,3.258096,0,0,7.194437,0,6.9,0,0,0 +0,3.258096,0,0,7.194437,0,11.84267,0,0,0 +0,3.258096,0,0,7.194437,0,11.84267,0,0,0 +0,3.258096,0,0,7.194437,0,11.84267,0,0,0 +0,3.258096,0,0,6.866933,0,3.4,0,0,0 +1,3.258096,0,0,6.866933,0,3.4,0,0,0 +1,3.258096,0,0,6.866933,0,3.4,0,0,0 +0,3.258096,0,5.783825,7.17012,0,13.8,0,0,0 +1,3.258096,0,5.783825,7.17012,0,13.8,0,0,0 +1,3.258096,0,5.783825,7.17012,0,13.8,0,0,0 +10,0,0,0,0,0,10.3,0,0,0 +2,0,0,0,0,0,10.3,0,0,0 +4,0,0,0,0,0,10.3,0,0,0 +1,0,0,0,0,0,10.3,0,0,0 +4,0,0,0,0,0,10.3,0,0,0 +1,3.258096,0,5.521461,6.907755,1,13.8,0,0,0 +4,3.258096,0,5.521461,6.907755,1,13.8,0,0,0 +2,3.258096,0,5.521461,6.907755,1,13.8,0,0,0 +11,3.258096,0,5.886104,7.272398,.0221239,11.84267,0,0,0 +10,3.258096,0,5.886104,7.272398,.0221239,11.84267,0,0,0 +7,3.258096,0,5.886104,7.272398,.0221239,11.84267,0,0,0 +3,3.258096,0,5.886104,7.272398,.0221239,11.84267,0,0,0 +0,3.258096,0,5.886104,7.272398,.0221239,11.84267,0,0,0 +2,0,1,6.109248,6.160541,.0221239,11.84267,0,0,0 +1,0,1,6.109248,6.160541,.0221239,11.84267,0,0,0 +8,0,0,0,0,.0221239,11.84267,0,0,0 +5,0,0,0,0,.0221239,11.84267,0,0,0 +7,0,1,5.703783,5.755076,.0221239,11.84267,0,0,0 +2,0,1,5.703783,5.755076,.0221239,11.84267,0,0,0 +3,4.564348,0,5.519459,5.570752,.0221239,11.84267,0,0,0 +1,4.564348,0,5.519459,5.570752,.0221239,11.84267,0,0,0 +4,3.258096,0,6.907755,8.294049,.0221239,11.84267,0,0,0 +5,3.258096,0,6.907755,8.294049,.0221239,11.84267,0,0,0 +2,3.258096,0,6.43575,7.693937,.0221239,11.84267,0,0,0 +1,3.258096,0,6.43575,7.693937,.0221239,11.84267,0,0,0 +7,0,0,0,0,0,6.9,0,0,0 +0,0,0,0,0,0,6.9,0,0,0 +1,0,0,0,0,0,6.9,0,0,0 +1,0,0,0,0,0,6.9,0,0,0 +0,0,0,0,0,0,6.9,0,0,0 +2,0,0,0,0,.0221239,11.84267,0,0,0 +5,0,0,0,0,.0221239,11.84267,0,0,0 +2,0,0,0,0,.0221239,11.84267,0,0,0 +4,0,0,0,0,.0221239,11.84267,0,0,0 +3,0,0,0,0,.0221239,11.84267,0,0,0 +1,0,0,0,0,.0221239,11.84267,0,0,0 +15,4.564348,0,6.907755,6.959049,.0221239,11.84267,0,0,0 +12,4.564348,0,6.907755,6.959049,.0221239,11.84267,0,0,0 +8,4.564348,0,6.907755,6.959049,.0221239,11.84267,0,0,0 +4,4.564348,0,6.907755,6.959049,.0221239,11.84267,0,0,0 +10,0,0,5.871329,0,.0221239,11.84267,0,0,0 +6,0,0,5.871329,0,.0221239,11.84267,0,0,0 +11,0,0,5.330978,0,.0221239,11.84267,0,0,0 +6,0,0,5.330978,0,.0221239,11.84267,0,0,0 +4,0,0,5.330978,0,.0221239,11.84267,0,0,0 +3,0,0,5.330978,0,.0221239,11.84267,0,0,0 +7,3.258096,0,6.804725,8.19102,.0221239,11.84267,0,0,0 +4,3.258096,0,6.804725,8.19102,.0221239,11.84267,0,0,0 +6,0,1,6.109248,6.160541,0,3.4,0,0,0 +1,0,1,6.109248,6.160541,0,3.4,0,0,0 +5,0,1,6.109248,6.160541,0,3.4,0,0,0 +1,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +1,0,1,6.109248,6.160541,0,6.9,0,0,0 +1,0,1,6.109248,6.160541,0,6.9,0,0,0 +0,0,1,6.109248,6.160541,0,6.9,0,0,0 +2,0,1,6.109248,6.160541,0,6.9,0,0,0 +2,0,0,0,0,.0221239,11.84267,0,0,0 +1,0,0,0,0,.0221239,11.84267,0,0,0 +4,0,1,0,6.160541,.0221239,11.84267,0,0,0 +1,0,1,0,6.160541,.0221239,11.84267,0,0,0 +3,0,1,5.743003,5.755076,.0221239,11.84267,0,0,0 +0,0,1,5.743003,5.755076,.0221239,11.84267,0,0,0 +4,4.564348,0,6.907755,6.959049,.0221239,11.84267,0,0,0 +4,4.564348,0,6.907755,6.959049,.0221239,11.84267,0,0,0 +9,4.564348,0,6.703188,6.754481,.0221239,11.84267,0,0,0 +8,4.564348,0,6.703188,6.754481,.0221239,11.84267,0,0,0 +12,0,0,5.496512,0,.0221239,11.84267,0,0,0 +8,0,0,5.496512,0,.0221239,11.84267,0,0,0 +2,3.258096,0,6.907755,8.294049,.0221239,11.84267,0,0,0 +1,3.258096,0,6.907755,8.294049,.0221239,11.84267,0,0,0 +5,3.258096,0,6.87363,8.259924,.0221239,11.84267,0,0,0 +2,3.258096,0,6.87363,8.259924,.0221239,11.84267,0,0,0 +0,3.258096,0,6.87363,8.259924,.0221239,11.84267,0,0,0 +14,0,0,0,0,.0221239,11.84267,0,0,0 +12,0,0,0,0,.0221239,11.84267,0,0,0 +5,4.564348,0,6.547474,6.943732,.0221239,11.84267,0,0,0 +6,4.564348,0,6.547474,6.943732,.0221239,11.84267,0,0,0 +2,4.564348,0,6.547474,6.943732,.0221239,11.84267,0,0,0 +4,0,0,5.962654,0,.0221239,11.84267,0,0,0 +3,0,0,5.962654,0,.0221239,11.84267,0,0,0 +3,0,1,0,5.061929,.0221239,11.84267,0,0,0 +2,0,1,0,5.061929,.0221239,11.84267,0,0,0 +3,0,1,0,5.061929,.0221239,11.84267,0,0,0 +3,0,1,4.341856,5.755076,.0221239,11.84267,0,0,0 +5,0,1,4.341856,5.755076,.0221239,11.84267,0,0,0 +0,4.564348,0,6.743352,6.794645,.0221239,11.84267,0,0,0 +0,4.564348,0,6.743352,6.794645,.0221239,11.84267,0,0,0 +0,4.564348,0,6.743352,6.794645,.0221239,11.84267,0,0,0 +0,4.564348,0,6.743352,6.794645,.0221239,11.84267,0,0,0 +3,0,1,5.703783,6.160541,.0221239,11.84267,0,0,0 +2,0,1,5.617753,6.160541,.0221239,11.84267,0,0,0 +2,0,1,5.617753,6.160541,.0221239,11.84267,0,0,0 +2,0,1,5.617753,6.160541,.0221239,11.84267,0,0,0 +10,0,0,0,0,.0221239,11.84267,0,0,0 +2,0,0,0,0,.0221239,11.84267,0,0,0 +7,0,1,5.703783,5.755076,.0221239,11.84267,0,0,0 +1,0,1,5.703783,5.755076,.0221239,11.84267,0,0,0 +12,3.258096,0,6.342209,7.728504,.0221239,11.84267,0,0,0 +1,0,1,6.109248,6.160541,.0221239,11.84267,0,0,0 +5,3.258096,0,6.907755,8.294049,.0221239,11.84267,0,0,0 +12,4.564348,0,6.907755,6.959049,.0221239,11.84267,0,0,0 +6,3.258096,0,0,5.075174,.0221239,11.84267,0,0,0 +0,0,0,0,0,.0221239,11.84267,0,0,0 +3,0,1,6.109248,6.160541,.0221239,11.84267,0,0,0 +0,3.258096,0,0,7.194437,.0221239,11.84267,0,0,0 +6,4.564348,0,6.907755,6.959049,.0221239,11.84267,0,0,0 +1,4.564348,0,6.907755,6.959049,.0221239,11.84267,0,0,0 +1,4.564348,0,6.907755,6.959049,.0221239,11.84267,0,0,0 +4,0,0,0,0,.0221239,11.84267,0,0,0 +7,0,0,5.785915,0,.0221239,11.84267,0,0,0 +10,0,0,5.785915,0,.0221239,11.84267,0,0,0 +6,0,0,5.785915,0,.0221239,11.84267,0,0,0 +0,0,1,5.703783,5.755076,.0221239,11.84267,0,0,0 +6,0,1,5.703783,5.755076,.0221239,11.84267,0,0,0 +9,0,1,5.703783,5.755076,.0221239,11.84267,0,0,0 +3,0,0,5.355642,0,.0221239,11.84267,0,0,0 +6,0,0,5.355642,0,.0221239,11.84267,0,0,0 +3,0,0,5.355642,0,.0221239,11.84267,0,0,0 +1,0,0,0,0,.0221239,11.84267,0,0,0 +7,0,0,0,0,.0221239,11.84267,0,0,0 +2,0,0,0,0,.0221239,11.84267,0,0,0 +6,4.564348,0,6.547474,6.943732,.0221239,11.84267,0,0,0 +2,4.564348,0,6.547474,6.943732,.0221239,11.84267,0,0,0 +8,4.564348,0,6.72827,6.779563,.0221239,11.84267,0,0,0 +6,4.564348,0,6.72827,6.779563,.0221239,11.84267,0,0,0 +11,0,0,0,0,.0221239,11.84267,0,0,0 +2,0,0,0,0,.0221239,11.84267,0,0,0 +2,4.564348,0,6.907755,6.959049,.0221239,11.84267,0,0,0 +2,4.564348,0,6.907755,6.959049,.0221239,11.84267,0,0,0 +12,0,1,5.703783,5.755076,.0221239,11.84267,0,0,0 +8,0,1,5.703783,5.755076,.0221239,11.84267,0,0,0 +3,0,1,6.109248,6.160541,.0221239,11.84267,0,0,0 +8,4.564348,0,6.639876,6.691169,.0221239,11.84267,0,0,0 +7,0,0,0,0,.0221239,11.84267,0,0,0 +7,0,0,5.355642,0,.0221239,11.84267,0,0,0 +6,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +1,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +2,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +1,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +3,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +1,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +0,3.258096,0,6.620073,8.006368,0,0,0,0,0 +2,3.258096,0,6.620073,8.006368,0,0,0,0,0 +9,3.258096,0,6.620073,8.006368,0,0,0,0,0 +2,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +5,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +1,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +2,3.258096,0,6.620073,8.006368,1,17.2,1,0,0 +1,3.258096,0,6.620073,8.006368,1,17.2,1,0,0 +2,3.258096,0,6.620073,8.006368,1,17.2,1,0,0 +0,0,1,6.1441,5.755076,0,0,0,0,0 +3,0,1,6.1441,5.755076,0,0,0,0,0 +3,0,1,6.1441,5.755076,0,0,0,0,0 +4,0,1,6.1441,5.755076,0,10.3,0,0,0 +6,0,1,6.1441,5.755076,0,10.3,0,0,0 +1,0,1,6.1441,5.755076,0,10.3,0,0,0 +6,0,0,6.953913,0,0,9.967326,0,0,0 +2,0,0,6.953913,0,0,9.967326,0,0,0 +3,0,0,6.953913,0,0,9.967326,0,0,0 +2,0,0,6.953913,0,1,6.9,0,0,0 +1,0,0,6.953913,0,1,6.9,0,0,0 +37,0,0,6.953913,0,1,6.9,0,0,0 +1,0,0,6.953913,0,0,6.9,0,0,0 +3,0,0,6.953913,0,0,6.9,0,0,0 +1,0,0,6.953913,0,0,6.9,0,0,0 +6,0,0,6.953913,0,1,9.967326,0,0,0 +7,0,0,6.953913,0,1,9.967326,0,0,0 +13,0,0,6.953913,0,1,9.967326,0,0,0 +1,3.931826,0,6.907755,7.600903,0,0,1,0,0 +0,3.931826,0,6.907755,7.600903,0,0,1,0,0 +0,3.931826,0,6.907755,7.600903,0,0,1,0,0 +1,3.931826,0,6.907755,7.600903,0,9.967326,1,0,0 +0,3.931826,0,6.907755,7.600903,0,9.967326,1,0,0 +1,3.931826,0,6.907755,7.600903,0,9.967326,1,0,0 +4,3.931826,0,6.907755,7.600903,0,10.3,1,0,0 +2,3.931826,0,6.907755,7.600903,0,10.3,1,0,0 +1,3.931826,0,6.907755,7.600903,0,10.3,1,0,0 +2,3.931826,0,6.907755,7.600903,0,6.9,0,0,0 +1,3.931826,0,6.907755,7.600903,0,6.9,0,0,0 +1,3.931826,0,6.907755,7.600903,0,6.9,0,0,0 +0,3.931826,0,6.907755,7.600903,0,9.967326,1,0,0 +1,3.931826,0,6.907755,7.600903,0,9.967326,1,0,0 +1,3.931826,0,6.907755,7.600903,0,9.967326,1,0,0 +0,3.931826,0,6.907755,7.600903,0,3.4,1,0,0 +0,3.931826,0,6.907755,7.600903,0,3.4,1,0,0 +5,3.931826,0,6.907755,7.600903,0,3.4,1,0,0 +0,3.931826,0,6.907755,7.600903,0,9.967326,1,0,0 +0,3.931826,0,6.907755,7.600903,0,9.967326,1,0,0 +0,3.931826,0,6.907755,7.600903,0,9.967326,1,0,0 +1,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +1,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +2,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +1,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +2,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +1,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +0,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +1,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +0,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +1,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +3,3.258096,0,6.620073,8.006368,0,27.6,1,0,0 +2,3.258096,0,6.620073,8.006368,0,27.6,1,0,0 +1,3.258096,0,6.620073,8.006368,0,27.6,1,0,0 +6,3.258096,0,6.620073,8.006368,0,27.6,1,0,0 +5,3.258096,0,6.620073,8.006368,0,27.6,1,0,0 +1,0,0,5.629059,0,0,9.967326,0,0,0 +3,0,0,5.629059,0,0,9.967326,0,0,0 +5,0,0,5.629059,0,0,9.967326,0,0,0 +2,0,0,5.629059,0,0,9.967326,0,0,0 +4,0,0,5.629059,0,0,9.967326,0,0,0 +1,0,0,5.629059,0,0,9.967326,0,0,0 +1,0,0,5.629059,0,0,9.967326,0,0,0 +5,0,0,5.629059,0,0,9.967326,0,0,0 +2,0,0,5.629059,0,0,9.967326,0,0,0 +1,0,0,5.629059,0,0,9.967326,0,0,0 +1,0,0,5.629059,0,1,13.8,0,0,0 +2,0,0,5.629059,0,1,13.8,0,0,0 +1,0,0,5.629059,0,1,13.8,0,0,0 +2,0,0,5.629059,0,1,13.8,0,0,0 +2,0,0,5.629059,0,1,13.8,0,0,0 +2,0,0,5.629059,0,0,3.4,0,0,0 +6,0,0,5.629059,0,0,3.4,0,0,0 +0,0,0,5.629059,0,0,3.4,0,0,0 +1,0,0,5.629059,0,0,3.4,0,0,0 +1,0,0,5.629059,0,0,3.4,0,0,0 +1,0,0,0,0,0,3.4,0,0,0 +4,0,0,0,0,0,3.4,0,0,0 +5,0,0,0,0,0,3.4,0,0,0 +5,0,0,0,0,1,17.2,1,0,0 +3,0,0,0,0,1,17.2,1,0,0 +5,0,0,0,0,1,17.2,1,0,0 +1,0,0,0,0,0,9.967326,0,0,0 +2,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +1,0,1,6.694067,6.160541,0,0,1,0,0 +3,0,1,6.694067,6.160541,0,0,1,0,0 +2,0,1,6.694067,6.160541,0,0,1,0,0 +1,0,1,6.694067,6.160541,0,24.1,1,0,0 +1,0,1,6.694067,6.160541,0,24.1,1,0,0 +1,0,1,6.694067,6.160541,0,24.1,1,0,0 +5,0,1,6.694067,6.160541,0,9.967326,1,0,0 +4,0,1,6.694067,6.160541,0,9.967326,1,0,0 +6,0,1,6.694067,6.160541,0,9.967326,1,0,0 +0,4.564348,0,6.802395,6.959049,0,0,0,0,0 +0,4.564348,0,6.802395,6.959049,0,0,0,0,0 +2,4.564348,0,6.802395,6.959049,0,0,0,0,0 +0,4.564348,0,6.802395,6.959049,0,0,0,0,0 +0,4.564348,0,6.802395,6.959049,0,0,0,0,0 +1,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +2,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +4,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +1,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +4,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +3,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +9,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +2,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +2,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +4,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +7,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +5,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +11,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +2,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +2,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +6,0,0,0,0,0,9.967326,0,0,0 +34,0,0,0,0,0,9.967326,0,0,0 +2,0,0,0,0,0,20.7,1,0,0 +4,0,0,0,0,0,20.7,1,0,0 +5,0,0,0,0,0,20.7,1,0,0 +4,0,0,0,0,1,9.967326,0,0,0 +22,0,0,0,0,1,9.967326,0,0,0 +34,0,0,0,0,1,9.967326,0,0,0 +2,0,0,0,0,0,10.3,0,0,0 +4,0,0,0,0,0,10.3,0,0,0 +3,0,0,0,0,0,10.3,0,0,0 +5,3.258096,0,6.620073,8.006368,1,13.8,0,1,0 +5,3.258096,0,6.620073,8.006368,1,13.8,0,1,0 +4,3.258096,0,6.620073,8.006368,1,13.8,0,1,0 +0,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +0,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +1,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +2,0,0,6.364407,0,0,3.4,0,0,0 +1,0,0,6.364407,0,0,3.4,0,0,0 +3,0,0,6.364407,0,0,3.4,0,0,0 +1,0,0,6.364407,0,0,3.4,0,0,0 +2,0,0,6.364407,0,0,3.4,0,0,0 +5,0,0,6.364407,0,0,6.9,1,0,0 +2,0,0,6.364407,0,0,6.9,1,0,0 +2,0,0,6.364407,0,0,6.9,1,0,0 +0,0,0,6.364407,0,0,6.9,1,0,0 +2,0,0,6.364407,0,0,6.9,1,0,0 +2,0,0,6.364407,0,0,0,1,0,0 +0,0,0,6.364407,0,0,0,1,0,0 +3,0,0,6.364407,0,0,0,1,0,0 +1,0,0,6.364407,0,0,0,1,0,0 +9,0,0,6.364407,0,0,0,1,0,0 +1,0,0,6.364407,0,0,6.9,1,0,0 +2,0,0,6.364407,0,0,6.9,1,0,0 +9,0,0,6.364407,0,0,6.9,1,0,0 +3,0,0,6.364407,0,0,6.9,1,0,0 +8,0,0,6.364407,0,0,6.9,1,0,0 +11,4.564348,0,0,0,0,0,1,0,0 +6,4.564348,0,0,0,0,0,1,0,0 +2,4.564348,0,0,0,0,0,1,0,0 +1,0,1,5.010635,5.061929,0,13.8,1,0,0 +3,0,1,5.010635,5.061929,0,13.8,1,0,0 +2,0,1,5.010635,5.061929,0,13.8,1,0,0 +2,4.564348,0,6.907755,6.959049,0,0,0,0,0 +1,4.564348,0,6.907755,6.959049,0,0,0,0,0 +1,4.564348,0,6.907755,6.959049,0,0,0,0,0 +52,4.564348,0,6.907755,6.959049,0,13.8,0,0,0 +18,4.564348,0,6.907755,6.959049,0,13.8,0,0,0 +2,4.564348,0,6.907755,6.959049,0,13.8,0,0,0 +2,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +3,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +0,0,0,6.63752,0,0,24.1,0,0,0 +1,0,0,6.63752,0,0,24.1,0,0,0 +0,0,0,6.63752,0,0,24.1,0,0,0 +0,0,0,6.63752,0,0,24.1,0,0,0 +2,0,0,6.63752,0,0,24.1,0,0,0 +2,0,0,6.63752,0,1,9.967326,0,0,0 +1,0,0,6.63752,0,1,9.967326,0,0,0 +4,0,0,6.63752,0,1,9.967326,0,0,0 +8,0,0,6.63752,0,1,9.967326,0,0,0 +3,0,0,6.63752,0,1,9.967326,0,0,0 +0,0,0,6.63752,0,0,10.3,1,0,0 +1,0,0,6.63752,0,0,10.3,1,0,0 +0,0,0,6.63752,0,0,10.3,1,0,0 +0,0,0,6.63752,0,0,10.3,1,0,0 +0,0,0,6.63752,0,0,10.3,1,0,0 +0,0,0,6.63752,0,0,9.967326,0,0,0 +1,0,0,6.63752,0,0,9.967326,0,0,0 +2,0,0,6.63752,0,0,9.967326,0,0,0 +0,0,0,6.63752,0,0,9.967326,0,0,0 +0,0,0,6.63752,0,0,9.967326,0,0,0 +1,0,0,6.63752,0,0,9.967326,0,0,0 +1,0,0,6.63752,0,0,9.967326,0,0,0 +0,0,0,6.63752,0,0,9.967326,0,0,0 +1,0,0,6.63752,0,0,9.967326,0,0,0 +0,0,0,6.63752,0,0,9.967326,0,0,0 +3,0,0,6.63752,0,0,9.967326,0,0,0 +1,0,0,6.63752,0,0,9.967326,0,0,0 +3,0,0,6.63752,0,0,9.967326,0,0,0 +1,0,0,6.63752,0,0,9.967326,0,0,0 +3,0,0,6.63752,0,0,9.967326,0,0,0 +2,0,0,6.63752,0,0,9.967326,0,0,0 +3,0,0,6.63752,0,0,9.967326,0,0,0 +0,0,0,6.63752,0,0,9.967326,0,0,0 +0,0,0,6.63752,0,0,9.967326,0,0,0 +2,0,0,6.63752,0,0,9.967326,0,0,0 +4,3.931826,0,6.253829,7.600903,0,9.967326,0,0,0 +3,3.931826,0,6.253829,7.600903,0,9.967326,0,0,0 +1,3.931826,0,6.253829,7.600903,0,9.967326,0,0,0 +2,3.931826,0,6.253829,7.600903,0,3.4,0,0,0 +0,3.931826,0,6.253829,7.600903,0,3.4,0,0,0 +0,3.931826,0,6.253829,7.600903,0,3.4,0,0,0 +0,3.931826,0,6.253829,7.600903,0,0,0,0,0 +1,3.931826,0,6.253829,7.600903,0,0,0,0,0 +4,3.931826,0,6.253829,7.600903,0,0,0,0,0 +2,0,0,6.107112,0,0,10.3,1,0,0 +5,0,0,6.107112,0,0,10.3,1,0,0 +9,0,0,6.107112,0,0,10.3,1,0,0 +7,0,0,6.107112,0,0,9.967326,1,0,0 +3,0,0,6.107112,0,0,9.967326,1,0,0 +4,0,0,6.107112,0,0,9.967326,1,0,0 +1,0,0,6.107112,0,0,6.9,1,0,0 +0,0,0,6.107112,0,0,6.9,1,0,0 +1,0,0,6.107112,0,0,6.9,1,0,0 +2,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +2,0,1,6.109248,6.160541,0,20.7,1,0,0 +0,0,1,6.109248,6.160541,0,20.7,1,0,0 +3,0,1,6.109248,6.160541,0,20.7,1,0,0 +3,0,1,6.109248,6.160541,0,6.9,1,0,0 +2,0,1,6.109248,6.160541,0,6.9,1,0,0 +0,0,1,6.109248,6.160541,0,6.9,1,0,0 +2,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +0,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +1,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +1,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +1,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +1,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +3,3.258096,0,6.620073,8.006368,0,10.3,0,0,0 +4,3.258096,0,6.620073,8.006368,0,10.3,0,0,0 +4,3.258096,0,6.620073,8.006368,0,10.3,0,0,0 +3,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +0,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +1,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +2,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +3,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +1,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +2,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +1,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +1,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +1,3.931826,0,6.907755,7.600903,0,3.4,1,0,0 +3,3.931826,0,6.907755,7.600903,0,3.4,1,0,0 +1,3.931826,0,6.907755,7.600903,0,3.4,1,0,0 +4,3.931826,0,6.907755,7.600903,0,31,1,0,0 +6,3.931826,0,6.907755,7.600903,0,31,1,0,0 +5,3.931826,0,6.907755,7.600903,0,31,1,0,0 +5,4.564348,0,4.918885,4.970179,0,13.8,1,0,0 +4,4.564348,0,4.918885,4.970179,0,13.8,1,0,0 +2,4.564348,0,4.918885,4.970179,0,13.8,1,0,0 +1,4.564348,0,6.907755,6.959049,0,13.8,1,0,0 +1,4.564348,0,6.907755,6.959049,0,13.8,1,0,0 +0,4.564348,0,6.907755,6.959049,0,13.8,1,0,0 +1,4.564348,0,6.907755,6.959049,0,9.967326,1,0,0 +1,4.564348,0,6.907755,6.959049,0,9.967326,1,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,1,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,1,0,0 +1,4.564348,0,6.907755,6.959049,0,9.967326,1,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,1,0,0 +6,4.564348,0,6.907755,6.959049,0,13.8,1,0,0 +0,4.564348,0,6.907755,6.959049,0,13.8,1,0,0 +1,4.564348,0,6.907755,6.959049,0,13.8,1,0,0 +0,0,0,4.832943,0,0,6.9,0,0,0 +0,0,0,4.832943,0,0,6.9,0,0,0 +1,0,0,4.832943,0,0,6.9,0,0,0 +7,0,0,4.832943,0,0,10.3,0,0,0 +1,0,0,4.832943,0,0,10.3,0,0,0 +4,0,0,4.832943,0,0,10.3,0,0,0 +0,0,0,0,0,0,6.9,0,0,0 +0,0,0,0,0,0,6.9,0,0,0 +0,0,0,0,0,0,6.9,0,0,0 +2,0,0,0,0,0,31,1,0,0 +1,0,0,0,0,0,31,1,0,0 +2,0,0,0,0,0,31,1,0,0 +3,0,0,0,0,0,9.967326,1,0,0 +7,0,0,0,0,0,9.967326,1,0,0 +2,0,0,0,0,0,9.967326,1,0,0 +0,0,0,0,0,0,6.9,0,1,0 +2,0,0,0,0,0,6.9,0,1,0 +0,0,0,0,0,0,6.9,0,1,0 +1,0,1,5.083886,5.061929,0,17.2,1,0,0 +2,0,1,5.083886,5.061929,0,17.2,1,0,0 +0,0,1,5.083886,5.061929,0,17.2,1,0,0 +11,0,0,3.843316,0,0,13.8,0,0,0 +20,0,0,3.843316,0,0,13.8,0,0,0 +0,0,0,3.843316,0,1,9.967326,1,0,0 +4,0,0,3.843316,0,1,9.967326,1,0,0 +5,0,0,3.843316,0,1,9.967326,1,0,0 +1,0,0,3.843316,0,1,3.4,1,0,0 +2,0,0,3.843316,0,1,3.4,1,0,0 +15,0,0,3.843316,0,1,3.4,1,0,0 +1,0,0,3.843316,0,0,3.4,0,0,0 +1,0,0,3.843316,0,0,3.4,0,0,0 +3,0,0,3.843316,0,0,3.4,0,0,0 +2,0,0,3.843316,0,0,13.8,1,0,0 +0,0,0,3.843316,0,0,13.8,1,0,0 +1,0,0,3.843316,0,0,13.8,1,0,0 +3,0,0,3.843316,0,1,6.9,0,0,0 +5,0,0,3.843316,0,1,6.9,0,0,0 +4,0,0,3.843316,0,1,6.9,0,0,0 +4,0,0,3.843316,0,0,9.967326,0,0,0 +7,0,0,3.843316,0,0,9.967326,0,0,0 +0,0,0,3.843316,0,0,9.967326,0,0,0 +6,0,0,4.356709,0,0,0,1,0,0 +2,0,0,4.356709,0,0,0,1,0,0 +3,0,0,4.356709,0,0,0,1,0,0 +1,3.931826,0,6.907755,7.600903,0,0,0,0,0 +0,3.931826,0,6.907755,7.600903,0,0,0,0,0 +0,3.931826,0,6.907755,7.600903,0,0,0,0,0 +7,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +1,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +7,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +3,3.931826,0,6.907755,7.600903,0,10.3,0,0,0 +1,3.931826,0,6.907755,7.600903,0,10.3,0,0,0 +0,3.931826,0,6.907755,7.600903,0,10.3,0,0,0 +1,0,0,4.836282,0,0,3.4,0,0,0 +2,0,0,4.836282,0,0,3.4,0,0,0 +0,0,0,4.836282,0,0,3.4,0,0,0 +2,3.258096,0,0,0,0,6.9,1,0,0 +4,3.258096,0,0,0,0,6.9,1,0,0 +1,3.258096,0,0,0,0,6.9,1,0,0 +0,0,0,4.339902,0,0,3.4,0,0,0 +0,0,0,4.339902,0,0,3.4,0,0,0 +0,0,0,4.339902,0,0,3.4,0,0,0 +0,0,0,4.339902,0,0,3.4,0,0,0 +0,0,0,4.339902,0,0,3.4,0,0,0 +0,0,0,4.339902,0,0,3.4,0,0,0 +9,0,0,4.339902,0,0,3.4,0,0,0 +1,0,0,4.339902,0,0,3.4,0,0,0 +0,0,0,4.339902,0,0,3.4,0,0,0 +0,0,0,4.339902,0,0,3.4,0,0,0 +4,0,0,5.052161,0,0,9.967326,1,0,0 +1,0,0,5.052161,0,0,9.967326,1,0,0 +6,0,0,5.052161,0,0,9.967326,1,0,0 +5,0,0,5.052161,0,0,9.967326,1,0,0 +5,0,0,5.052161,0,0,9.967326,1,0,0 +3,0,0,5.052161,0,0,3.4,1,0,0 +3,0,0,5.052161,0,0,3.4,1,0,0 +1,0,0,5.052161,0,0,3.4,1,0,0 +3,0,0,5.052161,0,0,3.4,1,0,0 +2,0,0,5.052161,0,0,3.4,1,0,0 +4,0,0,5.052161,0,0,3.4,1,0,0 +3,0,0,5.052161,0,0,3.4,1,0,0 +4,0,0,5.052161,0,0,3.4,1,0,0 +1,0,0,5.052161,0,0,3.4,1,0,0 +1,0,0,5.052161,0,0,3.4,1,0,0 +9,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +4,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +2,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +1,3.931826,0,6.907755,7.600903,0,10.3,0,0,0 +1,3.931826,0,6.907755,7.600903,0,10.3,0,0,0 +3,3.931826,0,6.907755,7.600903,0,10.3,0,0,0 +1,3.931826,0,6.907755,7.600903,0,6.9,0,0,0 +1,3.931826,0,6.907755,7.600903,0,6.9,0,0,0 +0,3.931826,0,6.907755,7.600903,0,6.9,0,0,0 +1,3.931826,0,6.907755,7.600903,0,13.8,0,0,0 +1,3.931826,0,6.907755,7.600903,0,13.8,0,0,0 +2,3.931826,0,6.907755,7.600903,0,13.8,0,0,0 +1,3.258096,0,6.215408,7.601702,0,6.9,1,0,0 +0,3.258096,0,6.215408,7.601702,0,6.9,1,0,0 +1,3.258096,0,6.215408,7.601702,0,6.9,1,0,0 +3,3.258096,0,6.215408,7.601702,0,24.1,1,0,0 +0,3.258096,0,6.215408,7.601702,0,24.1,1,0,0 +2,3.258096,0,6.215408,7.601702,0,24.1,1,0,0 +0,0,0,5.949392,0,0,9.967326,0,0,0 +0,0,0,5.949392,0,0,9.967326,0,0,0 +0,0,0,5.949392,0,0,9.967326,0,0,0 +3,0,0,5.949392,0,1,24.1,1,0,0 +0,0,0,5.949392,0,1,24.1,1,0,0 +4,0,0,5.949392,0,1,24.1,1,0,0 +3,0,0,5.949392,0,0,9.967326,0,0,0 +0,0,0,5.949392,0,0,9.967326,0,0,0 +2,0,0,5.949392,0,0,9.967326,0,0,0 +3,0,0,5.949392,0,1,20.7,1,0,0 +0,0,0,5.949392,0,1,20.7,1,0,0 +3,0,0,5.949392,0,1,20.7,1,0,0 +8,0,0,0,0,1,20.7,1,0,0 +8,0,0,0,0,1,20.7,1,0,0 +10,0,0,0,0,1,20.7,1,0,0 +8,0,0,0,0,1,20.7,1,0,0 +13,0,0,0,0,1,20.7,1,0,0 +5,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +6,0,0,0,0,1,10.3,0,1,0 +0,0,0,0,0,1,9.967326,1,0,0 +2,0,0,0,0,1,9.967326,1,0,0 +3,0,0,0,0,0,10.3,0,1,0 +3,0,0,0,0,0,10.3,0,1,0 +5,0,0,0,0,0,10.3,0,1,0 +2,0,0,0,0,0,10.3,0,1,0 +10,0,0,0,0,0,10.3,0,1,0 +0,0,1,6.109248,6.160541,1,17.2,1,0,0 +1,0,1,6.109248,6.160541,1,17.2,1,0,0 +0,0,1,6.109248,6.160541,1,17.2,1,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +2,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,17.2,1,0,0 +0,0,1,6.109248,6.160541,0,17.2,1,0,0 +10,0,1,6.109248,6.160541,0,17.2,1,0,0 +0,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +1,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +1,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +1,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +3,0,0,6.061457,0,0,9.967326,0,0,0 +9,0,0,6.061457,0,0,9.967326,0,0,0 +5,0,0,6.061457,0,0,9.967326,0,0,0 +3,0,0,6.061457,0,0,9.967326,0,0,0 +2,0,0,6.061457,0,0,9.967326,0,0,0 +2,0,0,6.061457,0,0,9.967326,0,0,0 +2,0,0,6.061457,0,0,9.967326,0,0,0 +1,0,0,6.061457,0,0,9.967326,0,0,0 +1,0,0,6.061457,0,0,9.967326,0,0,0 +2,0,0,6.061457,0,0,9.967326,0,0,0 +3,0,0,6.061457,0,0,3.4,0,0,0 +6,0,0,6.061457,0,0,3.4,0,0,0 +6,0,0,6.061457,0,0,3.4,0,0,0 +3,0,0,6.061457,0,0,3.4,0,0,0 +1,0,0,6.061457,0,0,3.4,0,0,0 +4,0,0,6.061457,0,0,10.3,1,0,0 +2,0,0,6.061457,0,0,10.3,1,0,0 +1,0,0,6.061457,0,0,10.3,1,0,0 +2,0,0,6.061457,0,0,10.3,1,0,0 +1,0,0,6.061457,0,0,10.3,1,0,0 +3,0,0,6.061457,0,0,6.9,0,0,0 +6,0,0,6.061457,0,0,6.9,0,0,0 +7,0,0,6.061457,0,0,6.9,0,0,0 +0,0,0,6.061457,0,0,6.9,0,0,0 +0,0,0,6.061457,0,0,6.9,0,0,0 +3,0,0,6.061457,0,0,3.4,0,0,0 +0,0,0,6.061457,0,0,3.4,0,0,0 +0,0,0,6.061457,0,0,3.4,0,0,0 +2,0,0,6.061457,0,0,3.4,0,0,0 +1,0,0,6.061457,0,0,3.4,0,0,0 +5,0,0,6.865057,0,0,3.4,0,0,0 +1,0,0,6.865057,0,0,3.4,0,0,0 +4,0,0,6.865057,0,0,3.4,0,0,0 +9,0,0,6.865057,0,0,3.4,1,0,0 +2,0,0,6.865057,0,0,3.4,1,0,0 +3,0,0,6.865057,0,0,3.4,1,0,0 +2,0,0,6.865057,0,0,9.967326,1,0,0 +1,0,0,6.865057,0,0,9.967326,1,0,0 +0,0,0,6.865057,0,0,9.967326,1,0,0 +2,0,0,6.865057,0,0,9.967326,1,0,0 +3,0,0,6.865057,0,0,9.967326,1,0,0 +4,0,0,6.865057,0,0,9.967326,1,0,0 +2,0,1,6.109248,6.160541,0,0,0,0,0 +2,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +2,0,1,6.109248,6.160541,1,13.8,0,0,0 +3,0,1,6.109248,6.160541,1,13.8,0,0,0 +2,0,1,6.109248,6.160541,1,13.8,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +4,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,1,20.7,0,0,0 +0,0,1,6.109248,6.160541,1,20.7,0,0,0 +2,0,1,6.109248,6.160541,1,20.7,0,0,0 +10,0,1,6.109248,6.160541,0,9.967326,0,0,0 +5,0,1,6.109248,6.160541,0,9.967326,0,0,0 +11,0,1,6.109248,6.160541,0,9.967326,0,0,0 +10,0,1,6.109248,6.160541,0,9.967326,0,0,0 +7,0,1,6.109248,6.160541,0,9.967326,0,0,0 +4,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,0,0,0,0 +4,0,1,6.109248,6.160541,0,0,0,0,0 +3,0,1,6.109248,6.160541,0,0,0,0,0 +1,3.931826,0,6.558198,7.251345,0,9.967326,0,0,0 +2,3.931826,0,6.558198,7.251345,0,9.967326,0,0,0 +1,3.931826,0,6.558198,7.251345,0,9.967326,0,0,0 +2,3.931826,0,6.558198,7.251345,0,6.9,1,0,0 +3,3.931826,0,6.558198,7.251345,0,6.9,1,0,0 +5,3.931826,0,6.558198,7.251345,0,6.9,1,0,0 +7,3.931826,0,6.599871,7.293018,1,20.7,0,1,0 +3,3.931826,0,6.599871,7.293018,1,20.7,0,1,0 +2,3.931826,0,6.599871,7.293018,1,20.7,0,1,0 +4,4.564348,0,6.907755,6.959049,0,9.967326,0,1,0 +2,4.564348,0,6.907755,6.959049,0,9.967326,0,1,0 +2,4.564348,0,6.907755,6.959049,0,9.967326,0,1,0 +0,4.564348,0,6.907755,6.959049,0,3.4,1,0,0 +1,4.564348,0,6.907755,6.959049,0,3.4,1,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,1,0,0 +1,4.564348,0,6.907755,6.959049,0,9.967326,0,1,0 +1,4.564348,0,6.907755,6.959049,0,9.967326,0,1,0 +1,4.564348,0,6.907755,6.959049,0,9.967326,0,1,0 +0,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +1,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +1,4.564348,0,6.907755,6.959049,0,9.967326,0,1,0 +1,4.564348,0,6.907755,6.959049,0,9.967326,0,1,0 +3,4.564348,0,6.907755,6.959049,0,9.967326,0,1,0 +0,4.564348,0,6.39693,6.448223,0,20.7,0,0,0 +1,4.564348,0,6.39693,6.448223,0,20.7,0,0,0 +2,4.564348,0,6.39693,6.448223,0,20.7,0,0,0 +5,4.564348,0,6.907755,6.959049,0,6.9,1,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,1,0,0 +1,4.564348,0,6.907755,6.959049,0,6.9,1,0,0 +3,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +1,4.564348,0,6.148468,6.199761,0,9.967326,0,0,0 +2,4.564348,0,6.148468,6.199761,0,9.967326,0,0,0 +2,4.564348,0,6.148468,6.199761,0,9.967326,0,0,0 +4,4.564348,0,6.148468,6.199761,0,9.967326,0,0,0 +2,4.564348,0,6.148468,6.199761,0,9.967326,0,0,0 +3,4.564348,0,6.148468,6.199761,0,9.967326,0,0,0 +6,4.564348,0,6.148468,6.199761,0,6.9,0,0,0 +2,4.564348,0,6.148468,6.199761,0,6.9,0,0,0 +0,4.564348,0,6.148468,6.199761,0,6.9,0,0,0 +2,0,1,5.010635,5.061929,0,3.4,0,0,0 +0,0,1,5.010635,5.061929,0,3.4,0,0,0 +0,0,1,5.010635,5.061929,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,10.3,0,0,0 +0,0,1,6.109248,6.160541,0,10.3,0,0,0 +0,0,1,6.109248,6.160541,0,10.3,0,0,0 +6,0,1,6.109248,6.160541,0,0,0,0,0 +1,0,1,6.109248,6.160541,0,0,0,0,0 +2,0,1,6.109248,6.160541,0,0,0,0,0 +1,0,1,6.109248,6.160541,0,3.4,1,0,0 +0,0,1,6.109248,6.160541,0,3.4,1,0,0 +1,0,1,6.109248,6.160541,0,3.4,1,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +1,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +4,0,1,6.109248,6.160541,0,20.7,1,0,0 +5,0,1,6.109248,6.160541,0,20.7,1,0,0 +3,0,1,6.109248,6.160541,0,20.7,1,0,0 +2,3.258096,0,6.620073,8.006368,0,0,0,0,0 +0,3.258096,0,6.620073,8.006368,0,0,0,0,0 +6,3.258096,0,6.620073,8.006368,0,0,0,0,0 +0,3.258096,0,6.620073,8.006368,0,10.3,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.3,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.3,1,0,0 +2,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +0,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +2,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +2,3.258096,0,6.620073,8.006368,0,13.8,0,0,0 +2,3.258096,0,6.620073,8.006368,0,13.8,0,0,0 +2,3.258096,0,6.620073,8.006368,0,13.8,0,0,0 +4,3.258096,0,6.620073,8.006368,0,17.2,0,0,0 +2,3.258096,0,6.620073,8.006368,0,17.2,0,0,0 +1,3.258096,0,6.620073,8.006368,0,17.2,0,0,0 +0,0,1,6.200184,6.160541,0,9.967326,0,0,0 +3,0,1,6.200184,6.160541,0,9.967326,0,0,0 +0,0,1,6.200184,6.160541,0,9.967326,0,0,0 +0,0,1,6.200184,6.160541,0,17.2,0,0,0 +2,0,1,6.200184,6.160541,0,17.2,0,0,0 +2,0,1,6.200184,6.160541,0,17.2,0,0,0 +1,0,1,6.200184,6.160541,0,9.967326,0,0,0 +2,0,1,6.200184,6.160541,0,9.967326,0,0,0 +1,0,1,6.200184,6.160541,0,9.967326,0,0,0 +0,0,1,6.200184,6.160541,0,3.4,0,0,0 +2,0,1,6.200184,6.160541,0,3.4,0,0,0 +0,0,1,6.200184,6.160541,0,3.4,0,0,0 +0,0,0,4.922023,0,1,24.1,1,0,0 +0,0,0,4.922023,0,1,24.1,1,0,0 +0,0,0,4.922023,0,1,24.1,1,0,0 +6,0,0,0,0,0,3.4,0,0,0 +6,0,0,0,0,0,3.4,0,0,0 +10,0,0,0,0,0,3.4,0,0,0 +1,0,0,0,0,0,17.2,0,0,0 +2,0,0,0,0,0,17.2,0,0,0 +1,0,0,0,0,0,17.2,0,0,0 +7,0,0,5.45018,0,0,6.9,0,0,0 +6,0,0,5.45018,0,0,6.9,0,0,0 +3,0,0,5.45018,0,0,6.9,0,0,0 +1,0,0,5.45018,0,0,3.4,0,0,0 +1,0,0,5.45018,0,0,3.4,0,0,0 +3,0,0,5.45018,0,0,3.4,0,0,0 +7,0,0,5.45018,0,0,6.9,0,1,0 +4,0,0,5.45018,0,0,6.9,0,1,0 +2,0,0,5.45018,0,0,6.9,0,1,0 +4,0,0,5.45018,0,0,20.7,1,0,0 +9,0,0,5.45018,0,0,20.7,1,0,0 +14,0,0,5.45018,0,0,20.7,1,0,0 +21,0,0,5.45018,0,1,34.5,0,0,1 +6,0,0,5.45018,0,1,34.5,0,0,1 +6,0,0,5.45018,0,1,34.5,0,0,1 +2,4.564348,0,6.818924,6.870217,0,10.3,0,1,0 +6,4.564348,0,6.818924,6.870217,0,10.3,0,1,0 +1,4.564348,0,6.818924,6.870217,0,10.3,0,1,0 +1,4.564348,0,6.818924,6.870217,0,10.3,0,1,0 +5,4.564348,0,6.818924,6.870217,0,10.3,0,1,0 +7,4.564348,0,6.818924,6.870217,0,9.967326,1,0,0 +4,4.564348,0,6.818924,6.870217,0,9.967326,1,0,0 +2,4.564348,0,6.818924,6.870217,0,9.967326,1,0,0 +2,4.564348,0,6.818924,6.870217,0,9.967326,1,0,0 +3,4.564348,0,6.818924,6.870217,0,9.967326,1,0,0 +3,4.564348,0,6.818924,6.870217,0,3.4,0,0,0 +2,4.564348,0,6.818924,6.870217,0,3.4,0,0,0 +0,4.564348,0,6.818924,6.870217,0,3.4,0,0,0 +1,4.564348,0,6.818924,6.870217,0,3.4,0,0,0 +3,4.564348,0,6.818924,6.870217,0,3.4,0,0,0 +3,0,1,5.600494,5.061929,0,3.4,0,0,0 +4,0,1,5.600494,5.061929,0,3.4,0,0,0 +3,0,1,5.600494,5.061929,0,3.4,0,0,0 +15,0,0,0,0,1,27.6,0,1,0 +11,0,0,0,0,1,27.6,0,1,0 +9,0,0,0,0,1,27.6,0,1,0 +0,4.564348,0,6.620073,6.671367,0,9.967326,0,0,0 +2,4.564348,0,6.620073,6.671367,0,9.967326,0,0,0 +1,4.564348,0,6.620073,6.671367,0,9.967326,0,0,0 +0,4.564348,0,6.620073,6.671367,0,9.967326,0,0,0 +0,4.564348,0,6.620073,6.671367,0,9.967326,0,0,0 +2,4.564348,0,6.620073,6.671367,0,9.967326,0,0,0 +0,4.564348,0,6.620073,6.671367,0,10.3,0,0,0 +1,4.564348,0,6.620073,6.671367,0,10.3,0,0,0 +2,4.564348,0,6.620073,6.671367,0,10.3,0,0,0 +0,4.564348,0,6.620073,6.671367,0,9.967326,0,0,0 +1,4.564348,0,6.620073,6.671367,0,9.967326,0,0,0 +0,4.564348,0,6.620073,6.671367,0,9.967326,0,0,0 +4,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +3,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +2,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +0,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +2,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +3,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +2,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +0,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +2,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +0,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +4,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +6,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +3,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +0,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +2,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +3,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +1,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +1,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +1,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +1,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +7,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +2,0,1,6.109248,6.160541,0,3.4,0,0,0 +1,0,1,6.109248,6.160541,0,3.4,0,0,0 +1,0,1,6.109248,6.160541,0,3.4,0,0,0 +2,0,1,6.109248,6.160541,0,10.3,0,0,0 +1,0,1,6.109248,6.160541,0,10.3,0,0,0 +0,0,1,6.109248,6.160541,0,10.3,0,0,0 +3,0,0,0,0,0,10.3,1,0,0 +5,0,0,0,0,0,10.3,1,0,0 +3,0,0,0,0,0,10.3,1,0,0 +1,0,0,0,0,0,9.967326,0,0,0 +2,0,0,0,0,0,9.967326,0,0,0 +4,0,0,0,0,0,9.967326,0,0,0 +10,0,0,0,0,0,9.967326,0,1,0 +5,0,0,0,0,0,9.967326,0,1,0 +2,0,0,0,0,0,9.967326,1,0,0 +4,0,0,0,0,0,9.967326,1,0,0 +3,0,0,0,0,0,9.967326,1,0,0 +10,0,0,0,0,0,9.967326,1,0,0 +7,0,0,0,0,0,9.967326,1,0,0 +2,0,0,0,0,0,9.967326,1,0,0 +3,0,0,0,0,0,9.967326,1,0,0 +2,0,0,0,0,0,9.967326,1,0,0 +1,0,0,0,0,0,9.967326,1,0,0 +2,0,0,0,0,0,9.967326,1,0,0 +6,0,0,0,0,0,9.967326,1,0,0 +38,0,0,0,0,0,9.967326,1,0,0 +1,0,0,0,0,0,9.967326,1,0,0 +2,0,0,0,0,0,9.967326,1,0,0 +1,0,0,0,0,0,9.967326,1,0,0 +5,0,0,0,0,1,10.3,1,0,0 +3,0,0,0,0,1,10.3,1,0,0 +2,0,0,0,0,1,10.3,1,0,0 +8,0,0,0,0,0,3.4,0,0,0 +2,0,0,0,0,0,3.4,0,0,0 +3,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,9.967326,1,0,0 +3,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,9.967326,1,0,0 +5,0,0,0,0,0,9.967326,1,0,0 +1,0,0,0,0,0,9.967326,1,0,0 +7,0,0,0,0,0,34.5,1,0,0 +8,0,0,0,0,0,34.5,1,0,0 +7,0,0,0,0,0,34.5,1,0,0 +2,0,1,5.703783,5.755076,1,6.9,0,0,0 +2,0,1,5.703783,5.755076,1,6.9,0,0,0 +3,0,1,5.703783,5.755076,1,6.9,0,0,0 +1,0,1,5.703783,5.755076,0,10.3,0,0,0 +1,0,1,5.703783,5.755076,0,10.3,0,0,0 +0,0,1,5.703783,5.755076,0,10.3,0,0,0 +1,0,0,6.239028,0,0,10.3,1,0,0 +1,0,0,6.239028,0,0,10.3,1,0,0 +2,0,0,6.239028,0,0,10.3,1,0,0 +6,0,0,6.239028,0,0,3.4,1,0,0 +2,0,0,6.239028,0,0,3.4,1,0,0 +4,0,0,6.239028,0,0,3.4,1,0,0 +3,0,0,6.239028,0,0,20.7,0,0,0 +3,0,0,6.239028,0,0,20.7,0,0,0 +4,0,0,6.239028,0,0,20.7,0,0,0 +8,0,0,6.239028,0,1,41.4,1,0,0 +7,0,0,6.239028,0,1,41.4,1,0,0 +4,0,0,6.239028,0,1,41.4,1,0,0 +3,0,1,0,5.755076,0,6.9,1,0,0 +7,0,1,0,5.755076,0,6.9,1,0,0 +6,0,1,0,5.755076,0,6.9,1,0,0 +1,0,1,0,5.755076,0,6.9,1,0,0 +3,0,1,0,5.755076,0,6.9,1,0,0 +4,0,1,0,5.755076,0,10.3,1,0,0 +5,0,1,0,5.755076,0,10.3,1,0,0 +5,0,1,0,5.755076,0,10.3,1,0,0 +3,0,1,0,5.755076,0,10.3,1,0,0 +0,0,1,0,5.755076,0,10.3,1,0,0 +2,0,1,6.109248,6.160541,0,3.4,0,0,0 +2,0,1,6.109248,6.160541,0,3.4,0,0,0 +9,0,1,6.109248,6.160541,0,3.4,0,0,0 +3,0,1,6.109248,6.160541,0,3.4,0,0,0 +8,0,1,6.109248,6.160541,0,3.4,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +7,0,1,6.109248,6.160541,0,3.4,0,0,0 +2,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +2,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +4,3.258096,0,6.620073,8.006368,0,17.2,0,1,0 +2,3.258096,0,6.620073,8.006368,0,17.2,0,1,0 +3,3.258096,0,6.620073,8.006368,0,17.2,0,1,0 +18,3.258096,0,6.017132,7.403427,0,17.2,0,1,0 +11,3.258096,0,6.017132,7.403427,0,17.2,0,1,0 +9,3.258096,0,6.017132,7.403427,0,17.2,0,1,0 +3,3.258096,0,6.017132,7.403427,0,9.967326,1,0,0 +2,3.258096,0,6.017132,7.403427,0,9.967326,1,0,0 +2,3.258096,0,6.017132,7.403427,0,9.967326,1,0,0 +7,3.258096,0,6.017132,7.403427,0,9.967326,0,0,0 +7,3.258096,0,6.017132,7.403427,0,9.967326,0,0,0 +20,3.258096,0,6.017132,7.403427,0,9.967326,0,0,0 +1,0,1,5.010635,5.061929,0,20.7,1,0,0 +0,0,1,5.010635,5.061929,0,20.7,1,0,0 +0,0,1,5.010635,5.061929,0,20.7,1,0,0 +0,4.564348,0,6.185694,6.236988,0,0,0,0,0 +0,4.564348,0,6.185694,6.236988,0,0,0,0,0 +1,4.564348,0,6.185694,6.236988,0,0,0,0,0 +0,4.564348,0,6.185694,6.236988,0,0,0,0,0 +0,4.564348,0,6.185694,6.236988,0,0,0,0,0 +1,4.564348,0,6.185694,6.236988,1,6.9,1,0,0 +0,4.564348,0,6.185694,6.236988,1,6.9,1,0,0 +1,4.564348,0,6.185694,6.236988,1,6.9,1,0,0 +0,4.564348,0,6.185694,6.236988,1,6.9,1,0,0 +3,4.564348,0,6.185694,6.236988,1,6.9,1,0,0 +0,0,1,6.109248,6.160541,0,24.1,0,0,0 +1,0,1,6.109248,6.160541,0,24.1,0,0,0 +0,0,1,6.109248,6.160541,0,24.1,0,0,0 +6,0,1,6.109248,6.160541,0,17.2,0,0,0 +2,0,1,6.109248,6.160541,0,17.2,0,0,0 +1,0,1,6.109248,6.160541,0,17.2,0,0,0 +2,0,1,6.109248,6.160541,0,10.3,0,0,0 +2,0,1,6.109248,6.160541,0,10.3,0,0,0 +2,0,1,6.109248,6.160541,0,10.3,0,0,0 +5,0,1,6.109248,6.160541,0,10.3,1,0,0 +3,0,1,6.109248,6.160541,0,10.3,1,0,0 +2,0,1,6.109248,6.160541,0,10.3,1,0,0 +1,0,1,5.010635,5.061929,0,6.9,0,0,0 +1,0,1,5.010635,5.061929,0,6.9,0,0,0 +1,0,1,5.010635,5.061929,0,6.9,0,0,0 +11,3.258096,0,6.620073,8.006368,0,0,1,0,0 +6,3.258096,0,6.620073,8.006368,0,0,1,0,0 +10,3.258096,0,6.620073,8.006368,0,0,1,0,0 +7,3.258096,0,6.620073,8.006368,0,0,1,0,0 +5,3.258096,0,6.620073,8.006368,0,0,1,0,0 +1,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +1,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +1,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +0,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +0,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +0,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +2,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +2,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +6,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +5,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +1,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +3,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +4,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +2,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +8,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +7,3.258096,0,6.620073,8.006368,0,17.2,1,0,0 +7,3.258096,0,6.620073,8.006368,0,17.2,1,0,0 +5,3.258096,0,6.620073,8.006368,0,17.2,1,0,0 +6,3.258096,0,6.620073,8.006368,0,17.2,1,0,0 +9,3.258096,0,6.620073,8.006368,0,17.2,1,0,0 +3,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +4,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +2,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +2,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +9,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +2,0,0,3.594569,0,0,6.9,1,0,0 +3,0,0,3.594569,0,0,6.9,1,0,0 +1,0,0,3.594569,0,0,6.9,1,0,0 +3,0,0,3.594569,0,0,3.4,0,0,0 +4,0,0,3.594569,0,0,3.4,0,0,0 +4,0,0,3.594569,0,0,3.4,0,0,0 +1,0,0,3.594569,0,0,10.3,1,0,0 +3,0,0,3.594569,0,0,10.3,1,0,0 +1,0,0,3.594569,0,0,10.3,1,0,0 +6,0,1,6.109248,6.160541,0,9.967326,1,0,0 +1,0,1,6.109248,6.160541,0,9.967326,1,0,0 +44,0,1,6.109248,6.160541,0,9.967326,1,0,0 +0,0,1,6.109248,6.160541,0,0,1,0,0 +1,0,1,6.109248,6.160541,0,0,1,0,0 +0,0,1,6.109248,6.160541,0,0,1,0,0 +2,0,1,6.109248,6.160541,0,10.3,1,0,0 +2,0,1,6.109248,6.160541,0,10.3,1,0,0 +4,0,1,6.109248,6.160541,0,10.3,1,0,0 +0,0,1,6.109248,6.160541,1,3.4,1,0,0 +1,0,1,6.109248,6.160541,1,3.4,1,0,0 +1,0,1,6.109248,6.160541,1,3.4,1,0,0 +7,0,0,5.917603,0,0,10.3,1,0,0 +6,0,0,5.917603,0,0,10.3,1,0,0 +10,0,0,5.917603,0,0,10.3,1,0,0 +0,0,0,5.917603,0,0,9.967326,0,0,0 +2,0,0,5.917603,0,0,9.967326,0,0,0 +2,0,0,5.917603,0,0,9.967326,0,0,0 +1,0,0,5.917603,0,0,9.967326,0,0,0 +3,0,0,5.917603,0,0,9.967326,0,0,0 +2,0,0,5.917603,0,0,9.967326,0,0,0 +0,0,0,5.917603,0,0,6.9,0,0,0 +1,0,0,5.917603,0,0,6.9,0,0,0 +1,0,0,5.917603,0,0,6.9,0,0,0 +4,0,1,6.109248,6.160541,1,27.6,1,0,0 +6,0,1,6.109248,6.160541,1,27.6,1,0,0 +1,0,1,6.109248,6.160541,1,27.6,1,0,0 +3,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +4,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,0,1,0,0 +1,0,1,6.109248,6.160541,0,0,1,0,0 +0,0,1,6.109248,6.160541,0,0,1,0,0 +0,0,1,0,5.061929,1,27.6,0,1,0 +0,0,1,0,5.061929,1,27.6,0,1,0 +1,0,1,0,5.061929,1,27.6,0,1,0 +1,0,1,0,5.061929,1,27.6,0,1,0 +1,0,1,0,5.061929,1,27.6,0,1,0 +2,0,1,6.109248,6.160541,1,0,1,0,0 +1,0,1,6.109248,6.160541,1,0,1,0,0 +1,0,1,6.109248,6.160541,1,0,1,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +2,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,1,9.967326,1,0,0 +0,0,1,6.109248,6.160541,1,9.967326,1,0,0 +5,0,1,6.109248,6.160541,1,9.967326,1,0,0 +4,0,0,5.566358,0,0,3.4,0,0,0 +1,0,0,5.566358,0,0,3.4,0,0,0 +2,0,0,5.566358,0,0,3.4,0,0,0 +10,0,0,5.566358,0,1,9.967326,0,0,0 +5,0,0,5.566358,0,1,9.967326,0,0,0 +2,0,0,5.566358,0,1,9.967326,0,0,0 +3,0,0,5.566358,0,0,0,0,0,0 +2,0,0,5.566358,0,0,0,0,0,0 +0,0,0,5.566358,0,0,0,0,0,0 +4,0,0,0,0,0,3.4,0,0,0 +13,0,0,0,0,0,3.4,0,0,0 +2,0,0,0,0,0,3.4,0,0,0 +5,0,0,0,0,1,20.7,1,0,0 +6,0,0,0,0,1,20.7,1,0,0 +1,0,0,0,0,1,20.7,1,0,0 +1,0,0,0,0,0,9.967326,1,0,0 +2,0,0,0,0,0,9.967326,1,0,0 +5,0,0,0,0,0,9.967326,1,0,0 +3,0,0,5.45018,0,1,17.2,1,0,0 +2,0,0,5.45018,0,1,17.2,1,0,0 +6,0,0,5.45018,0,1,17.2,1,0,0 +3,0,0,5.45018,0,0,6.9,0,0,0 +1,0,0,5.45018,0,0,6.9,0,0,0 +3,0,0,5.45018,0,0,6.9,0,0,0 +2,0,1,5.703783,5.755076,0,13.8,0,0,0 +1,0,1,5.703783,5.755076,0,13.8,0,0,0 +0,0,1,5.703783,5.755076,0,13.8,0,0,0 +1,0,1,5.703783,5.755076,0,3.4,1,0,0 +1,0,1,5.703783,5.755076,0,3.4,1,0,0 +3,0,1,5.703783,5.755076,0,3.4,1,0,0 +2,4.564348,0,5.438079,5.489373,0,13.8,0,1,0 +0,4.564348,0,5.438079,5.489373,0,13.8,0,1,0 +9,4.564348,0,5.438079,5.489373,0,13.8,0,1,0 +1,3.258096,0,6.561596,7.947891,0,17.2,0,0,0 +1,3.258096,0,6.561596,7.947891,0,17.2,0,0,0 +0,3.258096,0,6.561596,7.947891,0,17.2,0,0,0 +2,3.258096,0,6.561596,7.947891,0,10.3,1,0,0 +4,3.258096,0,6.561596,7.947891,0,10.3,1,0,0 +5,3.258096,0,6.561596,7.947891,0,10.3,1,0,0 +0,3.258096,0,6.561596,7.947891,0,9.967326,0,0,0 +1,3.258096,0,6.561596,7.947891,0,9.967326,0,0,0 +0,3.258096,0,6.561596,7.947891,0,9.967326,0,0,0 +0,3.258096,0,6.561596,7.947891,0,6.9,1,0,0 +0,3.258096,0,6.561596,7.947891,0,6.9,1,0,0 +0,3.258096,0,6.561596,7.947891,0,6.9,1,0,0 +0,3.258096,0,5.068904,6.455199,0,9.967326,0,0,0 +1,3.258096,0,5.068904,6.455199,0,9.967326,0,0,0 +0,3.258096,0,5.068904,6.455199,0,9.967326,0,0,0 +2,3.258096,0,5.068904,6.455199,0,9.967326,0,0,0 +1,3.258096,0,5.068904,6.455199,0,9.967326,0,0,0 +6,3.258096,0,5.068904,6.455199,0,9.967326,0,0,0 +4,3.258096,0,5.068904,6.455199,1,17.2,1,0,0 +5,3.258096,0,5.068904,6.455199,1,17.2,1,0,0 +2,3.258096,0,5.068904,6.455199,1,17.2,1,0,0 +3,0,0,6.061457,0,1,13.8,0,1,0 +4,0,0,6.061457,0,1,13.8,0,1,0 +4,0,0,6.061457,0,1,13.8,0,1,0 +0,0,0,6.061457,0,0,13.8,0,0,0 +1,0,0,6.061457,0,0,13.8,0,0,0 +0,0,0,6.061457,0,0,13.8,0,0,0 +1,0,0,7.128143,0,0,6.9,0,0,0 +1,0,0,7.128143,0,0,6.9,0,0,0 +1,0,0,7.128143,0,0,6.9,0,0,0 +2,0,0,7.128143,0,0,0,0,0,0 +5,0,0,7.128143,0,0,0,0,0,0 +1,0,0,7.128143,0,0,0,0,0,0 +1,0,0,7.128143,0,0,0,0,0,0 +9,0,0,7.128143,0,0,0,0,0,0 +2,0,0,7.128143,0,0,0,0,0,0 +1,0,0,7.128143,0,0,9.967326,0,0,0 +2,0,0,7.128143,0,0,9.967326,0,0,0 +1,0,0,7.128143,0,0,9.967326,0,0,0 +1,0,0,7.128143,0,0,17.2,0,0,0 +2,0,0,7.128143,0,0,17.2,0,0,0 +4,0,0,7.128143,0,0,17.2,0,0,0 +2,0,0,7.128143,0,1,9.967326,0,0,0 +6,0,0,7.128143,0,1,9.967326,0,0,0 +4,0,0,7.128143,0,1,9.967326,0,0,0 +1,0,0,7.128143,0,0,9.967326,0,0,0 +2,0,0,7.128143,0,0,9.967326,0,0,0 +4,0,0,7.128143,0,0,9.967326,0,0,0 +3,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,6.9,0,0,0 +3,0,0,0,0,0,6.9,0,0,0 +5,0,0,0,0,0,6.9,0,0,0 +0,0,0,0,0,1,17.2,0,1,0 +1,0,0,0,0,1,17.2,0,1,0 +2,0,0,0,0,1,17.2,0,1,0 +1,0,0,0,0,0,9.967326,1,0,0 +3,0,0,0,0,0,9.967326,1,0,0 +0,0,0,0,0,0,9.967326,1,0,0 +2,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +2,0,0,0,0,0,9.967326,0,1,0 +4,0,0,0,0,0,9.967326,0,1,0 +2,0,0,0,0,0,9.967326,0,1,0 +17,0,1,6.772897,6.160541,0,13.8,1,0,0 +16,0,1,6.772897,6.160541,0,13.8,1,0,0 +10,0,1,6.772897,6.160541,0,13.8,1,0,0 +0,0,1,6.772897,6.160541,0,9.967326,0,0,0 +2,0,1,6.772897,6.160541,0,9.967326,0,0,0 +2,0,1,6.772897,6.160541,0,9.967326,0,0,0 +0,0,1,6.772897,6.160541,0,0,1,0,0 +1,0,1,6.772897,6.160541,0,0,1,0,0 +3,0,1,6.772897,6.160541,0,0,1,0,0 +10,3.931826,0,0,6.818924,.1572505,9.967326,0,0,1 +6,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +2,0,1,6.109248,6.160541,0,9.967326,0,0,0 +4,0,1,6.109248,6.160541,0,9.967326,0,0,0 +2,0,1,6.109248,6.160541,0,9.967326,0,0,0 +2,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +2,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,0,0,0,0 +7,0,1,6.109248,6.160541,0,0,0,0,0 +4,0,1,6.109248,6.160541,0,0,0,0,0 +3,0,1,6.109248,6.160541,0,0,0,0,0 +3,0,1,6.109248,6.160541,0,0,0,0,0 +7,0,1,6.109248,6.160541,0,6.9,0,0,0 +4,0,1,6.109248,6.160541,0,6.9,0,0,0 +5,0,1,6.109248,6.160541,0,6.9,0,0,0 +6,0,1,6.109248,6.160541,0,6.9,0,0,0 +3,0,1,6.109248,6.160541,0,6.9,0,0,0 +7,0,0,4.175003,0,0,13.8,0,0,0 +2,0,0,4.175003,0,0,13.8,0,0,0 +4,0,0,4.175003,0,0,13.8,0,0,0 +1,4.564348,0,6.907755,6.959049,0,17.2,0,0,0 +0,4.564348,0,6.907755,6.959049,0,17.2,0,0,0 +0,4.564348,0,6.907755,6.959049,0,17.2,0,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +1,4.564348,0,6.367501,6.418794,0,9.967326,0,0,0 +0,4.564348,0,6.367501,6.418794,0,9.967326,0,0,0 +0,4.564348,0,6.367501,6.418794,0,9.967326,0,0,0 +2,4.564348,0,6.367501,6.418794,0,9.967326,1,0,0 +0,4.564348,0,6.367501,6.418794,0,9.967326,1,0,0 +1,4.564348,0,6.367501,6.418794,0,9.967326,1,0,0 +1,4.564348,0,6.367501,6.418794,0,27.6,1,0,0 +4,4.564348,0,6.367501,6.418794,0,27.6,1,0,0 +2,4.564348,0,6.367501,6.418794,0,27.6,1,0,0 +2,4.564348,0,6.367501,6.418794,0,10.3,1,0,0 +1,4.564348,0,6.367501,6.418794,0,10.3,1,0,0 +0,4.564348,0,6.367501,6.418794,0,10.3,1,0,0 +1,4.564348,0,6.367501,6.418794,0,9.967326,1,0,0 +0,4.564348,0,6.367501,6.418794,0,9.967326,1,0,0 +2,4.564348,0,6.367501,6.418794,0,9.967326,1,0,0 +2,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +0,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +4,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +4,3.931826,0,6.907755,7.600903,0,6.9,0,0,0 +1,3.931826,0,6.907755,7.600903,0,6.9,0,0,0 +1,3.931826,0,6.907755,7.600903,0,6.9,0,0,0 +4,3.931826,0,6.907755,7.600903,0,10.3,0,0,0 +0,3.931826,0,6.907755,7.600903,0,10.3,0,0,0 +2,3.931826,0,6.907755,7.600903,0,10.3,0,0,0 +1,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +1,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +3,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +1,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +2,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +2,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +0,3.258096,0,6.332569,7.718863,0,6.9,0,0,0 +0,3.258096,0,6.332569,7.718863,0,6.9,0,0,0 +0,3.258096,0,6.332569,7.718863,0,6.9,0,0,0 +2,0,0,0,0,.1572505,9.967326,0,0,0 +2,0,0,0,0,.1572505,9.967326,0,0,0 +9,0,0,0,0,.1572505,9.967326,0,0,0 +9,0,0,0,0,.1572505,9.967326,0,0,0 +7,0,0,0,0,.1572505,9.967326,0,0,0 +1,0,0,5.426711,0,0,3.4,0,0,0 +0,0,0,5.426711,0,0,3.4,0,0,0 +3,0,0,5.426711,0,0,3.4,0,0,0 +0,0,0,5.426711,0,0,3.4,0,0,0 +0,0,0,5.426711,0,0,3.4,0,0,0 +8,0,0,0,0,.1572505,9.967326,0,0,0 +1,0,0,0,0,.1572505,9.967326,0,0,0 +2,0,0,0,0,.1572505,9.967326,0,0,0 +1,0,0,0,0,.1572505,9.967326,0,0,0 +1,0,0,0,0,.1572505,9.967326,0,0,0 +1,0,0,0,0,.1572505,9.967326,0,0,0 +4,0,0,0,0,.1572505,9.967326,0,0,0 +0,0,0,0,0,.1572505,9.967326,0,0,0 +1,0,0,0,0,.1572505,9.967326,0,0,0 +2,0,0,0,0,.1572505,9.967326,0,0,0 +3,0,0,5.911122,0,0,13.8,1,0,0 +1,0,0,5.911122,0,0,13.8,1,0,0 +2,0,0,5.911122,0,0,13.8,1,0,0 +2,0,0,5.911122,0,0,13.8,1,0,0 +2,0,0,5.911122,0,0,13.8,1,0,0 +1,0,0,5.911122,0,0,6.9,1,0,0 +0,0,0,5.911122,0,0,6.9,1,0,0 +3,0,0,5.911122,0,0,6.9,1,0,0 +8,0,0,5.911122,0,0,6.9,1,0,0 +3,0,0,5.911122,0,0,6.9,1,0,0 +0,0,0,5.911122,0,0,0,1,0,0 +1,0,0,5.911122,0,0,0,1,0,0 +2,0,0,5.911122,0,0,0,1,0,0 +2,0,0,5.911122,0,0,0,1,0,0 +2,0,0,5.911122,0,0,0,1,0,0 +7,0,0,0,0,0,9.967326,0,0,0 +4,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,1,24.1,1,0,0 +1,0,0,0,0,1,24.1,1,0,0 +0,0,0,0,0,1,24.1,1,0,0 +1,0,0,0,0,1,24.1,1,0,0 +1,0,0,0,0,1,24.1,1,0,0 +8,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,9.967326,0,0,0 +3,0,0,0,0,0,6.9,1,0,0 +3,0,0,0,0,0,6.9,1,0,0 +0,0,0,0,0,0,6.9,1,0,0 +1,0,0,0,0,0,6.9,1,0,0 +2,0,0,0,0,0,6.9,1,0,0 +1,0,0,0,0,.0431267,9.967326,0,1,0 +2,0,0,0,0,.0431267,9.967326,0,1,0 +3,0,0,0,0,.0431267,9.967326,0,1,0 +2,0,0,0,0,1,20.7,0,1,0 +11,0,0,0,0,1,20.7,0,1,0 +4,0,0,0,0,1,20.7,0,1,0 +9,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +1,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +2,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +0,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +0,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +0,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +8,0,1,6.109248,6.160541,0,17.2,0,0,0 +1,0,1,6.109248,6.160541,0,17.2,0,0,0 +1,0,1,6.109248,6.160541,0,17.2,0,0,0 +2,0,1,6.109248,6.160541,0,3.4,0,0,0 +1,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +2,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +2,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,3.258096,0,5.991465,7.377759,0,3.4,0,0,0 +0,3.258096,0,6.620073,8.006368,0,0,1,0,0 +1,3.258096,0,6.620073,8.006368,0,0,1,0,0 +0,3.258096,0,6.620073,8.006368,0,0,1,0,0 +3,4.564348,0,6.159518,6.262295,0,17.2,0,1,0 +2,4.564348,0,6.159518,6.262295,0,17.2,0,1,0 +3,4.564348,0,6.159518,6.262295,0,17.2,0,1,0 +2,4.564348,0,6.159518,6.262295,0,17.2,0,1,0 +2,4.564348,0,6.159518,6.262295,0,17.2,0,1,0 +2,4.564348,0,6.159518,6.262295,0,3.4,1,0,0 +0,4.564348,0,6.159518,6.262295,0,3.4,1,0,0 +1,4.564348,0,6.159518,6.262295,0,3.4,1,0,0 +1,4.564348,0,6.159518,6.262295,0,3.4,1,0,0 +1,4.564348,0,6.159518,6.262295,0,3.4,1,0,0 +1,4.564348,0,6.159518,6.262295,0,3.4,0,0,0 +0,4.564348,0,6.159518,6.262295,0,3.4,0,0,0 +0,4.564348,0,6.159518,6.262295,0,3.4,0,0,0 +0,4.564348,0,6.159518,6.262295,0,3.4,0,0,0 +0,4.564348,0,6.159518,6.262295,0,3.4,0,0,0 +3,0,0,5.796483,0,0,3.4,0,0,0 +1,0,0,5.796483,0,0,3.4,0,0,0 +0,0,0,5.796483,0,0,3.4,0,0,0 +1,0,0,5.796483,0,0,3.4,0,0,0 +0,0,0,5.796483,0,0,3.4,0,0,0 +4,0,0,5.796483,0,0,6.9,0,0,0 +6,0,0,5.796483,0,0,6.9,0,0,0 +7,0,0,5.796483,0,0,6.9,0,0,0 +1,0,0,5.796483,0,0,6.9,0,0,0 +4,0,0,5.796483,0,0,6.9,0,0,0 +1,3.258096,0,0,7.755767,0,9.967326,0,0,0 +0,3.258096,0,0,7.755767,0,9.967326,0,0,0 +0,3.258096,0,0,7.755767,0,9.967326,0,0,0 +0,3.258096,0,0,7.755767,0,9.967326,0,0,0 +0,3.258096,0,0,7.755767,0,9.967326,0,0,0 +0,3.258096,0,0,7.755767,0,9.967326,0,0,0 +0,3.258096,0,0,7.755767,0,9.967326,0,0,0 +1,3.258096,0,0,7.755767,0,9.967326,0,0,0 +1,3.258096,0,0,7.755767,0,9.967326,0,0,0 +12,3.258096,0,0,7.755767,0,6.9,0,0,0 +0,3.258096,0,0,7.755767,0,6.9,0,0,0 +4,3.258096,0,0,7.755767,0,6.9,0,0,0 +0,3.258096,0,0,7.755767,0,9.967326,0,0,0 +1,3.258096,0,0,7.755767,0,9.967326,0,0,0 +0,3.258096,0,0,7.755767,0,9.967326,0,0,0 +0,3.258096,0,0,7.755767,0,3.4,0,1,0 +0,3.258096,0,0,7.755767,0,3.4,0,1,0 +0,3.258096,0,0,7.755767,0,3.4,0,1,0 +1,0,1,5.010635,5.061929,0,24.1,1,0,0 +0,0,1,5.010635,5.061929,0,24.1,1,0,0 +0,0,1,5.010635,5.061929,0,24.1,1,0,0 +7,0,1,5.703783,5.755076,0,13.8,0,0,0 +14,0,1,5.703783,5.755076,0,13.8,0,0,0 +23,0,1,5.703783,5.755076,0,13.8,0,0,0 +14,0,1,5.703783,5.755076,0,13.8,0,0,0 +16,0,1,5.703783,5.755076,0,13.8,0,0,0 +21,0,1,5.703783,5.755076,0,20.7,0,0,0 +7,0,1,5.703783,5.755076,0,20.7,0,0,0 +5,0,1,5.703783,5.755076,0,20.7,0,0,0 +15,0,1,5.703783,5.755076,0,20.7,0,0,0 +5,0,1,5.703783,5.755076,0,20.7,0,0,0 +4,4.564348,0,6.620073,6.671367,0,17.2,1,0,0 +4,4.564348,0,6.620073,6.671367,0,17.2,1,0,0 +3,4.564348,0,6.620073,6.671367,0,17.2,1,0,0 +4,0,1,0,6.160541,0,0,0,0,0 +2,0,1,0,6.160541,0,0,0,0,0 +0,0,1,0,6.160541,0,0,0,0,0 +0,0,1,0,6.160541,0,0,0,0,0 +0,0,1,0,6.160541,0,0,0,0,0 +0,0,1,0,6.160541,0,0,0,0,0 +1,0,1,0,6.160541,0,9.967326,0,0,0 +0,0,1,0,6.160541,0,9.967326,0,0,0 +0,0,1,0,6.160541,0,9.967326,0,0,0 +5,0,1,5.010635,5.061929,0,20.7,0,0,0 +1,0,1,5.010635,5.061929,0,20.7,0,0,0 +6,0,1,5.010635,5.061929,0,20.7,0,0,0 +2,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +1,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +2,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +3,4.564348,0,6.907755,6.959049,0,0,0,0,0 +3,4.564348,0,6.907755,6.959049,0,0,0,0,0 +1,4.564348,0,6.907755,6.959049,0,0,0,0,0 +2,4.564348,0,6.907755,6.959049,0,0,0,0,0 +3,4.564348,0,6.907755,6.959049,0,0,0,0,0 +5,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +2,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +2,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +1,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +1,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +2,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +1,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +1,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +1,4.564348,0,6.907755,6.959049,0,13.8,1,0,0 +3,4.564348,0,6.907755,6.959049,0,13.8,1,0,0 +1,4.564348,0,6.907755,6.959049,0,13.8,1,0,0 +0,4.564348,0,6.907755,6.959049,0,13.8,1,0,0 +0,4.564348,0,6.907755,6.959049,0,13.8,1,0,0 +2,4.564348,0,6.907755,6.959049,0,6.9,1,0,0 +3,4.564348,0,6.907755,6.959049,0,6.9,1,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,1,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,1,0,0 +5,4.564348,0,6.907755,6.959049,0,6.9,1,0,0 +3,0,1,5.703783,5.755076,0,3.4,1,0,0 +1,0,1,5.703783,5.755076,0,3.4,1,0,0 +1,0,1,5.703783,5.755076,0,3.4,1,0,0 +0,0,1,5.703783,5.755076,0,3.4,0,0,0 +0,0,1,5.703783,5.755076,0,3.4,0,0,0 +5,0,1,5.703783,5.755076,0,3.4,0,0,0 +0,0,1,0,5.061929,0,6.9,1,0,0 +1,0,1,0,5.061929,0,6.9,1,0,0 +0,0,1,0,5.061929,0,6.9,1,0,0 +1,0,0,0,0,0,6.9,0,0,0 +3,0,1,5.703783,5.755076,1,17.2,1,0,0 +0,0,1,5.703783,5.755076,1,17.2,1,0,0 +2,0,1,5.703783,5.755076,1,17.2,1,0,0 +1,0,1,5.703783,5.755076,0,13.8,1,0,0 +0,0,1,5.703783,5.755076,0,13.8,1,0,0 +1,0,1,5.703783,5.755076,0,13.8,1,0,0 +2,0,1,5.50655,5.061929,1,10.3,1,0,0 +4,0,1,5.50655,5.061929,1,10.3,1,0,0 +11,0,1,5.50655,5.061929,1,10.3,1,0,0 +11,3.931826,0,6.907755,7.600903,0,10.3,0,0,0 +2,3.931826,0,6.907755,7.600903,0,10.3,0,0,0 +3,3.931826,0,6.907755,7.600903,0,10.3,0,0,0 +1,3.931826,0,6.907755,7.600903,0,6.9,0,0,0 +1,3.931826,0,6.907755,7.600903,0,6.9,0,0,0 +3,3.931826,0,6.907755,7.600903,0,6.9,0,0,0 +1,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +1,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +3,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +3,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +5,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +5,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +2,3.258096,0,6.324359,7.710653,1,27.6,0,0,0 +6,3.258096,0,6.324359,7.710653,1,27.6,0,0,0 +6,3.258096,0,6.324359,7.710653,1,27.6,0,0,0 +6,3.258096,0,6.324359,7.710653,1,27.6,0,0,0 +9,3.258096,0,6.324359,7.710653,1,27.6,0,0,0 +1,3.258096,0,6.324359,7.710653,0,3.4,0,0,0 +0,3.258096,0,6.324359,7.710653,0,3.4,0,0,0 +1,3.258096,0,6.324359,7.710653,0,3.4,0,0,0 +2,3.258096,0,6.324359,7.710653,0,3.4,0,0,0 +0,3.258096,0,6.324359,7.710653,0,3.4,0,0,0 +2,3.258096,0,6.324359,7.710653,0,6.9,0,0,0 +0,3.258096,0,6.324359,7.710653,0,6.9,0,0,0 +2,3.258096,0,6.324359,7.710653,0,6.9,0,0,0 +2,3.258096,0,6.324359,7.710653,0,6.9,0,0,0 +0,3.258096,0,6.324359,7.710653,0,6.9,0,0,0 +1,3.258096,0,6.324359,7.710653,0,9.967326,0,0,0 +0,3.258096,0,6.324359,7.710653,0,9.967326,0,0,0 +1,3.258096,0,6.324359,7.710653,0,9.967326,0,0,0 +1,3.258096,0,6.324359,7.710653,0,9.967326,0,0,0 +2,3.258096,0,6.324359,7.710653,0,9.967326,0,0,0 +3,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +7,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +8,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +7,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +12,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +2,3.258096,0,6.620073,8.006368,1,17.2,0,0,0 +1,3.258096,0,6.620073,8.006368,1,17.2,0,0,0 +1,3.258096,0,6.620073,8.006368,1,17.2,0,0,0 +4,3.258096,0,6.620073,8.006368,1,17.2,0,0,0 +2,3.258096,0,6.620073,8.006368,1,17.2,0,0,0 +1,3.258096,0,6.620073,8.006368,1,3.4,0,0,0 +1,3.258096,0,6.620073,8.006368,1,3.4,0,0,0 +3,3.258096,0,6.620073,8.006368,1,3.4,0,0,0 +1,3.258096,0,6.620073,8.006368,1,3.4,0,0,0 +6,3.258096,0,6.620073,8.006368,1,3.4,0,0,0 +2,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +1,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +2,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +4,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +4,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +6,0,0,4.60517,0,0,6.9,0,0,0 +10,0,0,4.60517,0,0,6.9,0,0,0 +5,0,0,4.60517,0,0,6.9,0,0,0 +13,0,0,4.60517,0,0,13.8,1,0,0 +1,0,0,4.60517,0,0,13.8,1,0,0 +1,0,0,4.60517,0,0,13.8,1,0,0 +2,3.258096,0,6.620073,8.006368,0,0,0,0,0 +2,3.258096,0,6.620073,8.006368,0,0,0,0,0 +5,3.258096,0,6.620073,8.006368,0,0,0,0,0 +2,3.258096,0,6.620073,8.006368,0,0,0,0,0 +1,3.258096,0,6.620073,8.006368,0,0,0,0,0 +10,3.258096,0,6.620073,8.006368,0,10.3,0,0,0 +1,3.258096,0,6.620073,8.006368,0,10.3,0,0,0 +15,3.258096,0,6.620073,8.006368,0,10.3,0,0,0 +11,3.258096,0,6.620073,8.006368,0,10.3,0,0,0 +7,3.258096,0,6.620073,8.006368,0,10.3,0,0,0 +4,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +1,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +0,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +2,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +2,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +7,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +3,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +1,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +7,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +3,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +3,0,0,6.256287,0,1,48.3,0,1,0 +0,0,0,6.256287,0,1,48.3,0,1,0 +2,0,0,6.256287,0,1,48.3,0,1,0 +7,0,0,6.256287,0,1,20.7,1,0,0 +4,0,0,6.256287,0,1,20.7,1,0,0 +4,0,0,6.256287,0,1,20.7,1,0,0 +4,0,0,6.256287,0,0,13.8,1,0,0 +3,0,0,6.256287,0,0,13.8,1,0,0 +1,0,0,6.256287,0,0,13.8,1,0,0 +0,0,0,6.256287,0,0,9.967326,0,1,0 +0,0,0,6.256287,0,0,9.967326,0,1,0 +4,0,0,6.256287,0,0,9.967326,0,1,0 +2,0,0,6.256287,0,0,9.967326,1,0,0 +2,0,0,6.256287,0,0,9.967326,1,0,0 +5,0,0,6.256287,0,0,9.967326,1,0,0 +0,0,1,6.109248,6.160541,0,6.9,1,0,0 +2,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.3,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.3,1,0,0 +1,4.564348,0,6.907755,6.959049,0,10.3,1,0,0 +1,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +1,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.907755,6.959049,0,0,1,0,0 +0,4.564348,0,6.907755,6.959049,0,0,1,0,0 +0,4.564348,0,6.907755,6.959049,0,0,1,0,0 +1,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +2,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +1,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +1,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +2,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +2,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +1,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +1,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +4,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +3,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +3,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +1,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +2,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +2,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +7,0,0,0,0,0,17.2,0,0,0 +3,0,0,0,0,0,17.2,0,0,0 +3,0,0,0,0,0,17.2,0,0,0 +2,0,0,0,0,0,17.2,0,0,0 +4,0,0,0,0,0,17.2,0,0,0 +6,0,0,0,0,0,3.4,1,0,0 +6,0,0,0,0,0,3.4,1,0,0 +1,0,0,0,0,0,3.4,1,0,0 +2,0,0,0,0,0,3.4,1,0,0 +3,0,0,0,0,0,3.4,1,0,0 +3,0,0,0,0,0,9.967326,0,0,0 +3,0,0,0,0,0,9.967326,0,0,0 +13,0,0,0,0,0,9.967326,0,0,0 +4,0,0,0,0,0,9.967326,0,0,0 +6,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +2,0,0,0,0,0,9.967326,0,0,0 +6,0,0,0,0,0,9.967326,0,0,0 +8,0,0,0,0,0,9.967326,0,0,0 +14,0,0,0,0,0,9.967326,0,0,0 +2,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,9.967326,0,0,0 +9,0,0,0,0,0,9.967326,0,0,0 +8,0,0,0,0,0,9.967326,0,0,0 +6,0,0,0,0,0,9.967326,0,0,0 +2,0,1,6.109248,6.160541,0,3.4,0,1,0 +0,0,1,6.109248,6.160541,0,3.4,0,1,0 +1,0,1,6.109248,6.160541,0,3.4,0,1,0 +0,0,1,6.109248,6.160541,0,3.4,0,1,0 +2,0,1,6.109248,6.160541,0,3.4,0,1,0 +0,0,1,6.109248,6.160541,0,3.4,1,0,0 +0,0,1,6.109248,6.160541,0,3.4,1,0,0 +4,0,1,6.109248,6.160541,0,3.4,1,0,0 +0,0,1,6.109248,6.160541,0,3.4,1,0,0 +0,0,1,6.109248,6.160541,0,3.4,1,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +2,0,1,6.109248,6.160541,0,3.4,0,0,0 +1,0,1,6.109248,6.160541,0,3.4,0,0,0 +1,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,1,0 +1,0,1,6.109248,6.160541,0,9.967326,0,1,0 +3,0,1,6.109248,6.160541,0,9.967326,0,1,0 +1,0,1,6.109248,6.160541,0,9.967326,0,1,0 +3,0,1,6.109248,6.160541,0,9.967326,0,1,0 +6,3.931826,0,0,7.600903,0,20.7,0,0,0 +1,3.931826,0,0,7.600903,0,20.7,0,0,0 +4,3.931826,0,0,7.600903,0,20.7,0,0,0 +5,3.931826,0,0,7.600903,0,20.7,0,0,0 +4,3.931826,0,0,7.600903,0,20.7,0,0,0 +0,3.931826,0,0,7.600903,0,3.4,0,0,0 +0,3.931826,0,0,7.600903,0,3.4,0,0,0 +0,3.931826,0,0,7.600903,0,3.4,0,0,0 +0,3.931826,0,0,7.600903,0,3.4,0,0,0 +1,3.931826,0,0,7.600903,0,3.4,0,0,0 +10,3.931826,0,0,7.600903,0,9.967326,0,0,0 +11,3.931826,0,0,7.600903,0,9.967326,0,0,0 +6,3.931826,0,0,7.600903,0,9.967326,0,0,0 +2,3.931826,0,0,7.600903,0,9.967326,0,0,0 +2,3.931826,0,0,7.600903,0,9.967326,0,0,0 +0,3.931826,0,0,7.600903,0,6.9,0,0,0 +2,3.931826,0,0,7.600903,0,6.9,0,0,0 +0,3.931826,0,0,7.600903,0,6.9,0,0,0 +2,3.931826,0,0,7.600903,0,6.9,0,0,0 +0,3.931826,0,0,7.600903,0,6.9,0,0,0 +1,0,1,0,6.160541,0,9.967326,0,0,0 +0,0,1,0,6.160541,0,9.967326,0,0,0 +0,0,1,0,6.160541,0,9.967326,0,0,0 +1,0,1,0,6.160541,0,10.3,0,0,0 +0,0,1,0,6.160541,0,10.3,0,0,0 +0,0,1,0,6.160541,0,10.3,0,0,0 +2,0,1,0,6.160541,0,9.967326,0,0,0 +0,0,1,0,6.160541,0,9.967326,0,0,0 +0,0,1,0,6.160541,0,9.967326,0,0,0 +1,0,1,0,6.160541,0,6.9,0,0,0 +0,0,1,0,6.160541,0,6.9,0,0,0 +0,0,1,0,6.160541,0,6.9,0,0,0 +5,0,0,4.356709,0,0,9.967326,0,0,0 +1,0,0,4.356709,0,0,9.967326,0,0,0 +3,0,0,4.356709,0,0,9.967326,0,0,0 +3,0,0,4.356709,0,0,6.9,0,0,0 +0,0,0,4.356709,0,0,6.9,0,0,0 +2,0,0,4.356709,0,0,6.9,0,0,0 +2,0,0,4.356709,0,0,6.9,0,0,0 +0,0,0,4.356709,0,0,6.9,0,0,0 +0,0,0,4.356709,0,0,6.9,0,0,0 +6,0,0,6.64066,0,1,24.1,1,0,0 +4,0,0,6.64066,0,1,24.1,1,0,0 +7,0,0,6.64066,0,1,24.1,1,0,0 +0,0,0,6.64066,0,0,0,0,0,0 +10,0,0,6.64066,0,0,0,0,0,0 +11,0,0,6.64066,0,0,0,0,0,0 +3,0,0,0,0,0,13.8,1,0,0 +4,0,0,0,0,0,13.8,1,0,0 +4,0,0,0,0,0,13.8,1,0,0 +1,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +5,0,0,0,0,0,3.4,0,0,0 +1,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +1,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +6,4.564348,0,6.907755,6.959049,1,6.9,1,0,0 +4,4.564348,0,6.907755,6.959049,1,6.9,1,0,0 +2,4.564348,0,6.907755,6.959049,1,6.9,1,0,0 +10,4.564348,0,6.907755,6.959049,0,24.1,0,1,0 +2,4.564348,0,6.907755,6.959049,0,24.1,0,1,0 +11,4.564348,0,6.907755,6.959049,0,24.1,0,1,0 +2,4.564348,0,6.659294,6.710587,0,6.9,0,0,0 +6,4.564348,0,6.659294,6.710587,0,6.9,0,0,0 +2,4.564348,0,6.659294,6.710587,0,6.9,0,0,0 +5,4.564348,0,0,6.784695,0,6.9,0,0,0 +12,4.564348,0,0,6.784695,0,6.9,0,0,0 +2,4.564348,0,0,6.784695,0,6.9,0,0,0 +0,0,1,5.010635,5.061929,0,3.4,0,0,0 +0,0,1,5.010635,5.061929,0,3.4,0,0,0 +1,0,1,5.010635,5.061929,0,3.4,0,0,0 +0,0,1,5.010635,5.061929,0,3.4,0,0,0 +2,0,1,5.010635,5.061929,0,3.4,0,0,0 +0,0,1,5.010635,5.061929,0,3.4,0,0,0 +0,0,1,5.010635,5.061929,0,3.4,0,0,0 +2,0,1,5.352806,5.061929,.1572505,9.967326,1,0,0 +3,0,1,5.352806,5.061929,.1572505,9.967326,1,0,0 +7,0,1,5.352806,5.061929,.1572505,9.967326,1,0,0 +1,0,0,5.51986,0,0,6.9,1,0,0 +3,0,0,5.51986,0,0,6.9,1,0,0 +0,0,0,5.51986,0,0,6.9,1,0,0 +4,0,0,5.51986,0,1,13.8,0,0,1 +7,0,0,5.51986,0,1,13.8,0,0,1 +10,0,0,5.51986,0,1,13.8,0,0,1 +1,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +2,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,9.967326,0,0,0 +3,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,10.3,0,0,0 +6,0,0,0,0,0,10.3,0,0,0 +4,0,0,0,0,0,10.3,0,0,0 +7,0,0,0,0,0,10.3,0,0,0 +5,0,0,0,0,0,10.3,0,0,0 +7,0,0,0,0,0,9.967326,1,0,0 +6,0,0,0,0,0,9.967326,1,0,0 +31,0,0,0,0,0,9.967326,1,0,0 +0,0,0,0,0,0,9.967326,1,0,0 +1,0,0,0,0,0,9.967326,1,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +2,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +3,0,0,0,0,0,13.8,1,0,0 +6,0,0,0,0,0,13.8,1,0,0 +5,0,0,0,0,0,13.8,1,0,0 +2,0,0,0,0,0,10.3,0,0,0 +1,0,0,0,0,0,10.3,0,0,0 +2,0,0,0,0,0,10.3,0,0,0 +2,0,0,5.040582,0,0,3.4,0,0,0 +2,0,0,5.040582,0,0,3.4,0,0,0 +8,0,0,5.040582,0,0,3.4,0,0,0 +1,0,0,5.45018,0,0,9.967326,1,0,0 +2,0,0,5.45018,0,0,9.967326,1,0,0 +2,0,0,5.45018,0,0,9.967326,1,0,0 +2,0,0,5.45018,0,0,9.967326,1,0,0 +3,0,0,5.45018,0,0,9.967326,1,0,0 +1,0,0,5.45018,0,0,9.967326,1,0,0 +0,0,0,5.45018,0,0,9.967326,1,0,0 +1,0,0,5.45018,0,0,9.967326,1,0,0 +0,0,0,5.45018,0,0,9.967326,1,0,0 +2,0,0,5.45018,0,0,9.967326,1,0,0 +0,0,0,5.45018,0,0,9.967326,0,0,0 +1,0,0,5.45018,0,0,9.967326,0,0,0 +0,0,0,5.45018,0,0,9.967326,0,0,0 +0,0,0,5.45018,0,0,9.967326,0,0,0 +2,0,0,5.45018,0,0,9.967326,0,0,0 +5,0,0,5.45018,0,0,6.9,1,0,0 +1,0,0,5.45018,0,0,6.9,1,0,0 +3,0,0,5.45018,0,0,6.9,1,0,0 +7,0,0,5.45018,0,0,6.9,1,0,0 +1,0,0,5.45018,0,0,6.9,1,0,0 +3,0,0,5.45018,0,0,3.4,1,0,0 +0,0,0,5.45018,0,0,3.4,1,0,0 +1,0,0,5.45018,0,0,3.4,1,0,0 +3,0,0,5.45018,0,0,3.4,1,0,0 +0,0,0,5.45018,0,0,3.4,1,0,0 +0,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +5,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +2,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +0,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +4,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +2,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +0,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +1,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +0,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +0,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +0,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +0,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +1,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +0,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +1,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +6,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +0,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +1,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +6,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +1,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +1,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +0,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +1,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +2,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +2,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +2,3.931826,0,6.586172,7.408531,0,0,0,0,0 +6,3.931826,0,6.586172,7.408531,0,0,0,0,0 +6,3.931826,0,6.586172,7.408531,0,0,0,0,0 +6,3.931826,0,6.586172,7.408531,0,0,0,0,0 +1,3.931826,0,6.586172,7.408531,0,0,0,0,0 +0,4.564348,0,5.247024,5.298317,0,17.2,0,0,0 +2,4.564348,0,6.586379,6.637672,1,20.7,0,0,0 +0,4.564348,0,6.586379,6.637672,1,20.7,0,0,0 +0,4.564348,0,6.586379,6.637672,1,20.7,0,0,0 +0,4.564348,0,6.586379,6.637672,0,6.9,0,0,0 +3,4.564348,0,6.586379,6.637672,0,6.9,0,0,0 +0,4.564348,0,6.586379,6.637672,0,6.9,0,0,0 +0,4.564348,0,6.586379,6.637672,0,9.967326,1,0,0 +0,4.564348,0,6.586379,6.637672,0,9.967326,1,0,0 +2,4.564348,0,6.586379,6.637672,0,9.967326,1,0,0 +0,4.564348,0,6.586379,6.637672,0,9.967326,0,0,0 +4,4.564348,0,6.586379,6.637672,0,9.967326,0,0,0 +1,4.564348,0,6.586379,6.637672,0,9.967326,0,0,0 +0,4.564348,0,6.586379,6.637672,0,3.4,0,0,0 +5,4.564348,0,6.586379,6.637672,0,3.4,0,0,0 +1,4.564348,0,6.586379,6.637672,0,3.4,0,0,0 +0,4.564348,0,6.586379,6.637672,0,9.967326,0,0,0 +3,4.564348,0,6.586379,6.637672,0,9.967326,0,0,0 +0,4.564348,0,6.586379,6.637672,0,9.967326,0,0,0 +2,0,0,5.672085,0,0,3.4,0,0,0 +3,0,0,5.672085,0,0,3.4,0,0,0 +1,0,0,5.672085,0,0,3.4,0,0,0 +2,0,0,5.672085,0,0,3.4,0,0,0 +0,0,0,5.672085,0,0,3.4,0,0,0 +1,0,0,5.672085,0,0,3.4,0,0,0 +1,3.258096,0,6.131227,7.517521,0,9.967326,0,0,0 +4,3.258096,0,6.131227,7.517521,0,9.967326,0,0,0 +1,3.258096,0,6.131227,7.517521,0,9.967326,0,0,0 +3,3.258096,0,6.131227,7.517521,0,9.967326,0,0,0 +0,3.258096,0,6.131227,7.517521,0,9.967326,0,0,0 +1,3.258096,0,6.131227,7.517521,0,37.9,1,0,0 +6,3.258096,0,6.131227,7.517521,0,37.9,1,0,0 +1,3.258096,0,6.131227,7.517521,0,37.9,1,0,0 +6,3.258096,0,6.131227,7.517521,0,37.9,1,0,0 +2,3.258096,0,6.131227,7.517521,0,37.9,1,0,0 +0,3.258096,0,6.131227,7.517521,0,9.967326,0,0,0 +4,3.258096,0,6.131227,7.517521,0,9.967326,0,0,0 +0,3.258096,0,6.131227,7.517521,0,9.967326,0,0,0 +0,3.258096,0,6.131227,7.517521,0,9.967326,0,0,0 +0,3.258096,0,6.131227,7.517521,0,9.967326,0,0,0 +1,3.258096,0,6.131227,7.517521,0,6.9,1,0,0 +2,3.258096,0,6.131227,7.517521,0,6.9,1,0,0 +0,3.258096,0,6.131227,7.517521,0,6.9,1,0,0 +0,3.258096,0,6.131227,7.517521,0,6.9,1,0,0 +0,3.258096,0,6.131227,7.517521,0,6.9,1,0,0 +2,0,0,0,0,0,20.7,0,0,0 +1,4.564348,0,5.164786,5.216079,0,3.4,0,0,0 +10,4.564348,0,5.164786,5.216079,0,3.4,0,0,0 +2,4.564348,0,5.164786,5.216079,0,3.4,0,0,0 +4,4.564348,0,5.164786,5.216079,0,3.4,0,0,0 +0,4.564348,0,5.164786,5.216079,0,3.4,0,0,0 +0,4.564348,0,5.164786,5.216079,0,3.4,0,0,0 +1,0,1,5.010635,5.061929,0,3.4,0,0,0 +0,0,1,5.010635,5.061929,0,3.4,0,0,0 +3,0,1,5.010635,5.061929,0,3.4,0,0,0 +0,0,1,5.010635,5.061929,0,10.3,0,0,0 +0,0,1,5.010635,5.061929,0,10.3,0,0,0 +0,0,1,5.010635,5.061929,0,10.3,0,0,0 +4,0,0,4.958078,0,0,13.8,1,0,0 +1,0,0,4.958078,0,0,13.8,1,0,0 +2,0,0,4.958078,0,0,13.8,1,0,0 +3,3.258096,0,6.620073,8.006368,0,13.8,1,0,0 +2,3.258096,0,6.620073,8.006368,0,13.8,1,0,0 +2,3.258096,0,6.620073,8.006368,0,13.8,1,0,0 +1,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +1,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +0,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +1,4.564348,0,6.49224,6.543533,0,17.2,1,0,0 +5,4.564348,0,6.49224,6.543533,0,17.2,1,0,0 +2,4.564348,0,6.49224,6.543533,0,17.2,1,0,0 +8,4.564348,0,6.49224,6.543533,0,9.967326,0,0,0 +4,4.564348,0,6.49224,6.543533,0,9.967326,0,0,0 +3,4.564348,0,6.49224,6.543533,0,9.967326,0,0,0 +0,4.564348,0,6.49224,6.543533,0,9.967326,0,0,0 +2,4.564348,0,6.49224,6.543533,0,9.967326,0,0,0 +0,4.564348,0,6.49224,6.543533,0,9.967326,0,0,0 +1,4.564348,0,6.49224,6.543533,0,6.9,0,0,0 +7,4.564348,0,6.49224,6.543533,0,6.9,0,0,0 +0,4.564348,0,6.49224,6.543533,0,6.9,0,0,0 +6,4.564348,0,6.49224,6.543533,0,9.967326,0,0,0 +5,4.564348,0,6.49224,6.543533,0,9.967326,0,0,0 +0,4.564348,0,6.49224,6.543533,0,9.967326,0,0,0 +4,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +2,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +8,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +1,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +0,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +1,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +0,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +5,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +0,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +0,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +1,3.931826,0,6.907755,7.600903,0,9.967326,1,0,0 +1,3.931826,0,6.907755,7.600903,0,9.967326,1,0,0 +5,3.931826,0,6.907755,7.600903,0,9.967326,1,0,0 +3,3.931826,0,6.907755,7.600903,0,9.967326,1,0,0 +2,3.931826,0,6.907755,7.600903,0,9.967326,1,0,0 +2,3.931826,0,6.907755,7.600903,0,13.8,0,0,0 +0,3.931826,0,6.907755,7.600903,0,13.8,0,0,0 +1,3.931826,0,6.907755,7.600903,0,13.8,0,0,0 +1,3.931826,0,6.907755,7.600903,0,13.8,0,0,0 +0,3.931826,0,6.907755,7.600903,0,13.8,0,0,0 +3,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +0,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +3,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +0,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +0,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +8,3.258096,0,6.620073,8.006368,1,24.1,0,1,0 +3,3.258096,0,6.620073,8.006368,1,24.1,0,1,0 +2,3.258096,0,6.620073,8.006368,1,24.1,0,1,0 +1,3.258096,0,6.620073,8.006368,1,20.7,1,0,0 +2,3.258096,0,6.620073,8.006368,1,20.7,1,0,0 +5,3.258096,0,6.620073,8.006368,1,20.7,1,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,24.1,0,0,0 +0,0,0,0,0,0,24.1,0,0,0 +0,0,0,0,0,0,24.1,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +3,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +2,0,0,0,0,0,17.2,0,0,0 +0,0,0,0,0,0,17.2,0,0,0 +0,0,0,0,0,0,17.2,0,0,0 +1,3.258096,0,6.476973,7.863267,0,10.3,1,0,0 +2,3.258096,0,6.476973,7.863267,0,10.3,1,0,0 +1,3.258096,0,6.476973,7.863267,0,10.3,1,0,0 +3,3.258096,0,6.476973,7.863267,0,10.3,0,0,0 +3,3.258096,0,6.476973,7.863267,0,10.3,0,0,0 +3,3.258096,0,6.476973,7.863267,0,10.3,0,0,0 +1,3.931826,0,5.416101,6.109248,0,6.9,1,0,0 +0,3.931826,0,5.416101,6.109248,0,6.9,1,0,0 +0,3.931826,0,5.416101,6.109248,0,6.9,1,0,0 +0,3.931826,0,5.416101,6.109248,0,9.967326,0,0,0 +1,3.931826,0,5.416101,6.109248,0,9.967326,0,0,0 +0,3.931826,0,5.416101,6.109248,0,9.967326,0,0,0 +6,0,0,6.965062,0,0,0,0,0,0 +1,0,0,6.965062,0,0,0,0,0,0 +0,0,0,6.965062,0,0,0,0,0,0 +1,0,0,6.965062,0,0,9.967326,0,0,0 +0,0,0,6.965062,0,0,9.967326,0,0,0 +1,0,0,6.965062,0,0,9.967326,0,0,0 +1,0,0,6.965062,0,0,10.3,0,0,0 +5,0,0,6.965062,0,0,10.3,0,0,0 +1,0,0,6.965062,0,0,10.3,0,0,0 +1,0,0,6.965062,0,0,9.967326,0,0,0 +0,0,0,6.965062,0,0,9.967326,0,0,0 +5,0,0,6.965062,0,0,9.967326,0,0,0 +7,3.931826,0,6.907755,7.600903,0,20.7,0,1,0 +4,3.931826,0,6.907755,7.600903,0,20.7,0,1,0 +6,3.931826,0,6.907755,7.600903,0,20.7,0,1,0 +6,3.931826,0,6.907755,7.600903,0,13.8,0,1,0 +13,3.931826,0,6.907755,7.600903,0,13.8,0,1,0 +5,3.931826,0,6.907755,7.600903,0,13.8,0,1,0 +2,0,1,5.703783,5.755076,0,9.967326,1,0,0 +0,0,1,5.703783,5.755076,0,9.967326,1,0,0 +0,0,1,5.703783,5.755076,0,9.967326,1,0,0 +1,0,1,5.703783,5.755076,0,10.3,1,0,0 +0,0,1,5.703783,5.755076,0,10.3,1,0,0 +2,0,1,5.703783,5.755076,0,10.3,1,0,0 +2,0,1,6.109248,6.160541,0,6.9,0,1,0 +6,0,1,6.109248,6.160541,0,6.9,0,1,0 +2,0,1,6.109248,6.160541,0,6.9,0,1,0 +1,0,1,6.109248,6.160541,0,9.967326,1,0,0 +1,0,1,6.109248,6.160541,0,9.967326,1,0,0 +0,0,1,6.109248,6.160541,0,9.967326,1,0,0 +0,0,1,6.109248,6.160541,0,9.967326,1,0,0 +1,0,1,6.109248,6.160541,0,9.967326,1,0,0 +0,0,1,6.109248,6.160541,0,9.967326,1,0,0 +2,0,1,6.109248,6.160541,0,3.4,1,0,0 +4,0,1,6.109248,6.160541,0,3.4,1,0,0 +1,0,1,6.109248,6.160541,0,3.4,1,0,0 +0,0,1,6.109248,6.160541,0,6.9,1,0,0 +18,0,1,6.109248,6.160541,0,6.9,1,0,0 +11,0,1,6.109248,6.160541,0,6.9,1,0,0 +1,0,1,6.109248,6.160541,0,9.967326,1,0,0 +0,0,1,6.109248,6.160541,0,9.967326,1,0,0 +8,0,1,6.109248,6.160541,0,9.967326,1,0,0 +11,3.258096,0,6.620073,8.006368,0,10.3,0,1,0 +5,3.258096,0,6.620073,8.006368,0,10.3,0,1,0 +6,3.258096,0,6.620073,8.006368,0,10.3,0,1,0 +14,3.258096,0,6.620073,8.006368,0,10.3,0,1,0 +10,3.258096,0,6.620073,8.006368,0,10.3,0,1,0 +1,3.258096,0,6.620073,8.006368,0,10.3,1,0,0 +3,3.258096,0,6.620073,8.006368,0,10.3,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.3,1,0,0 +1,3.258096,0,6.620073,8.006368,0,10.3,1,0,0 +1,3.258096,0,6.620073,8.006368,0,10.3,1,0,0 +1,0,1,6.109248,6.160541,1,20.7,0,1,0 +0,0,1,6.109248,6.160541,1,20.7,0,1,0 +0,0,1,6.109248,6.160541,1,20.7,0,1,0 +0,0,1,6.109248,6.160541,0,0,1,0,0 +0,0,1,6.109248,6.160541,0,0,1,0,0 +0,0,1,6.109248,6.160541,0,0,1,0,0 +0,0,1,6.109248,6.160541,0,17.2,1,0,0 +1,0,1,6.109248,6.160541,0,17.2,1,0,0 +0,0,1,6.109248,6.160541,0,17.2,1,0,0 +4,0,1,0,5.061929,0,6.9,1,0,0 +1,0,1,0,5.061929,0,6.9,1,0,0 +0,0,1,0,5.061929,0,6.9,1,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,1,0 +1,0,1,6.109248,6.160541,0,9.967326,0,1,0 +0,0,1,6.109248,6.160541,0,9.967326,0,1,0 +5,0,1,6.109248,6.160541,0,9.967326,1,0,0 +0,0,1,6.109248,6.160541,0,9.967326,1,0,0 +0,0,1,6.109248,6.160541,0,9.967326,1,0,0 +0,3.258096,0,6.620073,8.006368,1,10.3,0,0,0 +0,3.258096,0,6.620073,8.006368,1,10.3,0,0,0 +2,3.258096,0,6.620073,8.006368,1,10.3,0,0,0 +1,3.258096,0,6.620073,8.006368,0,0,0,0,0 +1,3.258096,0,6.620073,8.006368,0,0,0,0,0 +6,3.258096,0,6.620073,8.006368,0,0,0,0,0 +5,3.258096,0,6.620073,8.006368,0,13.8,1,0,0 +1,3.258096,0,6.620073,8.006368,0,13.8,1,0,0 +1,3.258096,0,6.620073,8.006368,0,13.8,1,0,0 +2,3.258096,0,6.620073,8.006368,1,9.967326,0,0,0 +0,3.258096,0,6.620073,8.006368,1,9.967326,0,0,0 +2,3.258096,0,6.620073,8.006368,1,9.967326,0,0,0 +1,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +3,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +4,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +1,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +0,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +3,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +1,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +4,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +1,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +2,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +2,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +0,3.258096,0,6.620073,8.006368,0,10.3,1,0,0 +1,3.258096,0,6.620073,8.006368,0,10.3,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.3,1,0,0 +0,4.564348,0,0,5.611975,0,0,0,0,0 +3,4.564348,0,0,5.611975,0,0,0,0,0 +0,4.564348,0,0,5.611975,0,0,0,0,0 +0,4.564348,0,5.926926,6.042758,0,13.8,0,0,0 +1,4.564348,0,5.926926,6.042758,0,13.8,0,0,0 +1,4.564348,0,5.926926,6.042758,0,13.8,0,0,0 +1,0,0,6.383034,0,0,0,0,1,0 +2,0,0,6.383034,0,0,0,0,1,0 +1,0,0,6.383034,0,0,0,0,1,0 +0,0,0,6.383034,0,0,3.4,0,1,0 +3,0,0,6.383034,0,0,3.4,0,1,0 +3,0,0,6.383034,0,0,3.4,0,1,0 +0,0,0,6.383034,0,0,9.967326,0,0,0 +1,0,0,6.383034,0,0,9.967326,0,0,0 +0,0,0,6.383034,0,0,9.967326,0,0,0 +23,0,0,6.383034,0,1,20.7,0,0,1 +72,0,0,6.383034,0,1,20.7,0,0,1 +18,0,0,6.383034,0,1,20.7,0,0,1 +3,0,0,6.383034,0,0,9.967326,1,0,0 +1,0,0,6.383034,0,0,9.967326,1,0,0 +3,0,0,6.383034,0,0,9.967326,1,0,0 +3,0,0,6.383034,0,1,0,0,0,1 +8,0,0,6.383034,0,1,0,0,0,1 +4,0,0,6.383034,0,1,0,0,0,1 +1,0,1,5.703783,5.755076,0,9.967326,0,0,0 +1,0,1,5.703783,5.755076,0,9.967326,0,0,0 +0,0,1,5.703783,5.755076,0,9.967326,0,0,0 +3,0,1,5.703783,5.755076,1,31,0,0,0 +1,0,1,5.703783,5.755076,1,31,0,0,0 +1,0,1,5.703783,5.755076,1,31,0,0,0 +5,0,1,5.010635,5.061929,1,10.3,0,1,0 +2,0,1,5.010635,5.061929,1,10.3,0,1,0 +1,0,1,5.703783,5.755076,0,10.3,0,0,0 +2,0,1,5.703783,5.755076,0,10.3,0,0,0 +3,0,1,5.703783,5.755076,0,10.3,0,0,0 +1,0,1,5.703783,5.755076,0,0,0,0,0 +1,0,1,5.703783,5.755076,0,0,0,0,0 +0,0,1,5.703783,5.755076,0,0,0,0,0 +3,0,0,6.660473,0,0,9.967326,0,0,0 +1,0,0,6.660473,0,0,9.967326,0,0,0 +6,0,0,6.660473,0,0,9.967326,0,0,0 +2,0,0,6.660473,0,1,3.4,0,0,0 +0,0,0,6.660473,0,1,3.4,0,0,0 +3,0,0,6.660473,0,1,3.4,0,0,0 +1,0,0,6.660473,0,0,10.3,1,0,0 +1,0,0,6.660473,0,0,10.3,1,0,0 +2,0,0,6.660473,0,0,10.3,1,0,0 +0,3.258096,0,6.418039,7.804333,0,3.4,0,0,0 +0,3.258096,0,6.418039,7.804333,0,3.4,0,0,0 +0,3.258096,0,6.418039,7.804333,0,3.4,0,0,0 +1,3.258096,0,6.418039,7.804333,0,3.4,0,0,0 +1,3.258096,0,6.418039,7.804333,0,3.4,0,0,0 +2,3.258096,0,6.418039,7.804333,0,3.4,0,0,0 +4,0,0,5.741848,0,0,13.8,1,0,0 +2,0,0,5.741848,0,0,13.8,1,0,0 +2,0,0,5.741848,0,0,13.8,1,0,0 +1,0,1,0,0,0,10.3,0,0,0 +9,0,0,5.741848,0,1,10.3,0,0,1 +7,0,0,5.741848,0,1,10.3,0,0,1 +15,0,0,5.741848,0,1,10.3,0,0,1 +5,4.564348,0,5.024538,5.075831,0,9.967326,0,0,0 +4,4.564348,0,5.024538,5.075831,0,9.967326,0,0,0 +1,4.564348,0,5.024538,5.075831,0,9.967326,0,0,0 +3,4.564348,0,5.024538,5.075831,1,20.7,0,1,0 +1,4.564348,0,5.024538,5.075831,1,20.7,0,1,0 +2,4.564348,0,5.024538,5.075831,1,20.7,0,1,0 +0,0,1,6.109248,6.160541,0,9.967326,0,1,0 +3,0,1,6.109248,6.160541,0,9.967326,0,1,0 +2,0,1,6.109248,6.160541,0,9.967326,0,1,0 +0,0,1,6.109248,6.160541,1,3.4,1,0,0 +0,0,1,6.109248,6.160541,1,3.4,1,0,0 +1,0,1,6.109248,6.160541,1,3.4,1,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +3,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +2,0,1,5.289478,5.061929,1,10.3,0,1,0 +2,0,1,5.289478,5.061929,1,10.3,0,1,0 +1,0,1,5.289478,5.061929,1,10.3,0,1,0 +2,0,0,0,0,0,10.3,0,0,0 +0,0,0,0,0,0,10.3,0,0,0 +0,0,0,0,0,0,10.3,0,0,0 +1,0,0,0,0,0,10.3,0,0,0 +0,0,0,0,0,0,10.3,0,0,0 +9,4.564348,0,6.407292,6.458586,0,13.8,0,0,0 +7,4.564348,0,6.407292,6.458586,0,13.8,0,0,0 +5,4.564348,0,6.407292,6.458586,0,13.8,0,0,0 +4,0,0,6.190643,0,1,6.9,1,0,0 +3,0,0,6.190643,0,1,6.9,1,0,0 +4,0,0,6.190643,0,1,6.9,1,0,0 +3,0,0,6.190643,0,0,6.9,1,0,0 +34,0,0,6.190643,0,0,6.9,1,0,0 +46,0,0,6.190643,0,0,6.9,1,0,0 +7,0,0,6.190643,0,1,13.8,0,0,0 +5,0,0,6.190643,0,1,13.8,0,0,0 +2,0,0,6.190643,0,1,13.8,0,0,0 +14,0,0,6.190643,0,0,3.4,0,0,0 +4,0,0,6.190643,0,0,3.4,0,0,0 +1,0,0,6.190643,0,0,3.4,0,0,0 +4,0,0,6.190643,0,0,0,0,0,0 +2,0,0,6.190643,0,0,0,0,0,0 +1,0,0,6.190643,0,0,0,0,0,0 +9,0,0,0,0,0,27.6,1,0,0 +5,0,0,0,0,0,27.6,1,0,0 +6,0,0,0,0,0,27.6,1,0,0 +3,0,0,0,0,0,9.967326,0,0,0 +5,0,0,0,0,0,9.967326,0,0,0 +6,0,0,0,0,0,9.967326,0,0,0 +3,0,0,0,0,0,9.967326,0,0,0 +5,0,0,0,0,0,9.967326,0,0,0 +6,0,0,0,0,0,9.967326,0,0,0 +10,0,0,0,0,0,3.4,1,0,0 +0,0,0,0,0,0,3.4,1,0,0 +1,0,0,0,0,0,3.4,1,0,0 +8,4.564348,0,6.052183,5.941943,1,24.1,0,1,0 +8,4.564348,0,6.052183,5.941943,1,24.1,0,1,0 +5,4.564348,0,6.052183,5.941943,1,24.1,0,1,0 +12,4.564348,0,6.052183,5.941943,1,24.1,0,1,0 +11,4.564348,0,6.052183,5.941943,1,24.1,0,1,0 +6,0,1,6.109248,6.160541,0,17.2,0,1,0 +13,0,1,6.109248,6.160541,0,17.2,0,1,0 +3,0,1,6.109248,6.160541,0,17.2,0,1,0 +8,0,1,6.109248,6.160541,0,17.2,0,1,0 +6,0,1,6.109248,6.160541,0,17.2,0,1,0 +5,0,1,6.109248,6.160541,0,17.2,1,0,0 +2,0,1,6.109248,6.160541,0,17.2,1,0,0 +1,0,1,6.109248,6.160541,0,9.967326,1,0,0 +2,0,1,6.109248,6.160541,0,9.967326,1,0,0 +1,0,1,6.109248,6.160541,0,9.967326,1,0,0 +2,0,1,6.109248,6.160541,0,9.967326,1,0,0 +3,0,1,6.109248,6.160541,0,9.967326,1,0,0 +3,0,1,6.109248,6.160541,0,3.4,1,0,0 +8,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +9,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +1,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +1,3.258096,0,6.620073,8.006368,0,0,1,0,0 +1,3.258096,0,6.620073,8.006368,0,0,1,0,0 +0,3.258096,0,6.620073,8.006368,0,0,1,0,0 +9,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +4,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +1,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +1,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +0,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +1,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +7,0,0,5.352806,0,1,17.2,0,0,0 +6,0,0,5.352806,0,1,17.2,0,0,0 +2,0,0,5.352806,0,1,17.2,0,0,0 +7,0,0,0,0,0,3.4,0,0,0 +5,0,0,0,0,0,3.4,0,0,0 +1,0,0,0,0,0,3.4,0,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +1,4.564348,0,6.907755,6.959049,0,3.4,1,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,1,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,1,0,0 +1,4.564348,0,6.907755,6.959049,1,24.1,1,0,0 +1,4.564348,0,6.907755,6.959049,1,24.1,1,0,0 +0,4.564348,0,6.907755,6.959049,1,24.1,1,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +2,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +4,0,1,6.109248,6.160541,0,9.967326,0,0,0 +2,0,1,6.109248,6.160541,0,9.967326,1,0,0 +3,0,1,6.109248,6.160541,0,9.967326,1,0,0 +3,0,1,6.109248,6.160541,0,9.967326,1,0,0 +3,0,1,6.109248,6.160541,0,10.3,1,0,0 +1,0,1,6.109248,6.160541,0,10.3,1,0,0 +2,0,1,6.109248,6.160541,0,10.3,1,0,0 +1,0,1,6.109248,6.160541,0,6.9,0,0,0 +4,0,1,6.109248,6.160541,0,6.9,0,0,0 +3,0,1,6.109248,6.160541,0,6.9,0,0,0 +1,0,1,6.109248,6.160541,1,9.967326,0,0,0 +2,0,1,6.109248,6.160541,1,9.967326,0,0,0 +1,0,1,6.109248,6.160541,1,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +4,0,1,6.109248,6.160541,0,0,0,0,0 +3,0,1,6.109248,6.160541,0,9.967326,0,1,0 +10,0,1,6.109248,6.160541,0,9.967326,0,1,0 +8,0,1,6.109248,6.160541,0,9.967326,0,1,0 +4,3.931826,0,6.835185,7.528332,0,3.4,0,0,0 +1,3.931826,0,6.835185,7.528332,0,3.4,0,0,0 +1,3.931826,0,6.835185,7.528332,0,3.4,0,0,0 +1,3.931826,0,6.835185,7.528332,0,27.6,1,0,0 +2,3.931826,0,6.835185,7.528332,0,27.6,1,0,0 +23,3.931826,0,6.835185,7.528332,0,27.6,1,0,0 +0,3.931826,0,6.835185,7.528332,0,9.967326,0,1,0 +1,3.931826,0,6.835185,7.528332,0,9.967326,0,1,0 +5,3.931826,0,6.835185,7.528332,0,9.967326,0,1,0 +0,3.931826,0,6.835185,7.528332,0,3.4,1,0,0 +0,3.931826,0,6.835185,7.528332,0,3.4,1,0,0 +5,3.931826,0,6.835185,7.528332,0,3.4,1,0,0 +6,4.564348,0,6.200184,6.249121,0,10.3,1,0,0 +2,4.564348,0,6.200184,6.249121,0,10.3,1,0,0 +6,4.564348,0,6.200184,6.249121,0,10.3,1,0,0 +7,3.258096,0,6.327937,7.714231,0,9.967326,0,0,0 +3,3.258096,0,6.327937,7.714231,0,9.967326,0,0,0 +5,3.258096,0,6.327937,7.714231,0,9.967326,0,0,0 +3,3.258096,0,6.327937,7.714231,0,3.4,0,0,0 +5,3.258096,0,6.327937,7.714231,0,3.4,0,0,0 +2,3.258096,0,6.327937,7.714231,0,3.4,0,0,0 +5,3.258096,0,6.327937,7.714231,0,9.967326,0,0,0 +5,3.258096,0,6.327937,7.714231,0,9.967326,0,0,0 +3,3.258096,0,6.327937,7.714231,0,9.967326,0,0,0 +3,3.258096,0,6.327937,7.714231,0,10.3,0,0,0 +0,3.258096,0,6.327937,7.714231,0,10.3,0,0,0 +2,3.258096,0,6.327937,7.714231,0,10.3,0,0,0 +2,0,1,5.010635,5.061929,0,10.3,1,0,0 +1,0,1,5.010635,5.061929,0,10.3,1,0,0 +2,0,1,5.010635,5.061929,0,10.3,1,0,0 +5,0,1,5.010635,5.061929,0,20.7,0,0,0 +14,0,1,5.010635,5.061929,0,20.7,0,0,0 +1,0,1,5.010635,5.061929,0,20.7,0,0,0 +8,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +8,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +13,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +5,3.258096,0,6.620073,8.006368,1,44.8,1,0,0 +4,3.258096,0,6.620073,8.006368,1,44.8,1,0,0 +1,3.258096,0,6.620073,8.006368,1,44.8,1,0,0 +5,3.258096,0,6.620073,8.006368,1,10.3,1,0,0 +1,3.258096,0,6.620073,8.006368,1,10.3,1,0,0 +2,3.258096,0,6.620073,8.006368,1,10.3,1,0,0 +4,3.258096,0,6.620073,8.006368,0,10.3,1,0,0 +9,3.258096,0,6.620073,8.006368,0,10.3,1,0,0 +2,3.258096,0,6.620073,8.006368,0,10.3,1,0,0 +4,3.258096,0,6.069814,7.456108,0,0,1,0,0 +5,3.258096,0,6.069814,7.456108,0,0,1,0,0 +3,3.258096,0,6.069814,7.456108,0,0,1,0,0 +0,3.258096,0,5.966147,7.352441,0,3.4,1,0,0 +1,3.258096,0,5.966147,7.352441,0,3.4,1,0,0 +1,3.258096,0,5.966147,7.352441,0,3.4,1,0,0 +0,0,1,6.109248,6.160541,0,6.9,0,0,0 +0,0,1,6.109248,6.160541,1,9.967326,0,1,0 +5,0,1,6.109248,6.160541,1,34.5,0,1,0 +0,0,1,6.109248,6.160541,0,9.967326,1,0,0 +0,0,1,6.109248,6.160541,0,9.967326,1,0,0 +6,0,1,6.109248,6.160541,0,10.3,1,0,0 +7,0,1,6.109248,6.160541,0,10.3,1,0,0 +1,0,1,6.109248,6.160541,0,10.3,1,0,0 +3,0,1,6.109248,6.160541,0,9.967326,0,0,0 +3,0,1,6.109248,6.160541,0,9.967326,0,0,0 +5,0,1,6.109248,6.160541,0,9.967326,0,0,0 +2,0,1,6.109248,6.160541,0,9.967326,1,0,0 +2,0,1,6.109248,6.160541,0,9.967326,1,0,0 +0,0,1,6.109248,6.160541,0,9.967326,1,0,0 +1,0,1,6.109248,6.160541,0,9.967326,1,0,0 +2,0,1,6.109248,6.160541,0,9.967326,1,0,0 +1,0,1,6.109248,6.160541,0,9.967326,1,0,0 +7,0,1,6.109248,6.160541,0,13.8,1,0,0 +4,0,1,6.109248,6.160541,0,13.8,1,0,0 +0,0,1,6.109248,6.160541,0,13.8,1,0,0 +1,3.258096,0,6.620073,8.006368,1,3.4,1,0,0 +2,3.258096,0,6.620073,8.006368,1,3.4,1,0,0 +3,3.258096,0,6.620073,8.006368,1,3.4,1,0,0 +12,3.258096,0,6.620073,8.006368,1,20.7,0,1,0 +5,3.258096,0,6.620073,8.006368,1,20.7,0,1,0 +8,3.258096,0,6.620073,8.006368,1,20.7,0,1,0 +4,0,0,0,0,.1572505,9.967326,0,0,0 +3,0,0,0,0,.1572505,9.967326,0,0,0 +0,0,0,0,0,.1572505,9.967326,0,0,0 +5,0,0,0,0,.1572505,9.967326,0,0,0 +2,0,0,0,0,.1572505,9.967326,0,0,0 +3,0,0,0,0,.1572505,9.967326,0,0,0 +2,0,0,0,0,.1572505,9.967326,0,0,0 +1,0,0,0,0,.1572505,9.967326,0,0,0 +2,0,0,0,0,.1572505,9.967326,0,0,0 +1,0,0,0,0,.1572505,9.967326,0,0,0 +3,0,0,0,0,.1572505,9.967326,0,0,0 +0,0,0,0,0,.1572505,9.967326,0,0,0 +1,0,0,0,0,.1572505,9.967326,0,0,0 +2,0,0,0,0,.1572505,9.967326,0,0,0 +6,3.258096,0,6.49224,7.878534,1,17.2,0,1,0 +6,3.258096,0,6.49224,7.878534,1,17.2,0,1,0 +4,3.258096,0,6.49224,7.878534,1,17.2,0,1,0 +1,3.258096,0,6.49224,7.878534,1,17.2,0,1,0 +8,3.258096,0,6.49224,7.878534,1,17.2,0,1,0 +6,3.258096,0,6.49224,7.878534,0,13.8,1,0,0 +2,3.258096,0,6.49224,7.878534,0,13.8,1,0,0 +4,3.258096,0,6.49224,7.878534,0,13.8,1,0,0 +5,3.258096,0,6.49224,7.878534,0,13.8,1,0,0 +8,3.258096,0,6.49224,7.878534,0,13.8,1,0,0 +5,3.258096,0,6.49224,7.878534,1,9.967326,1,0,0 +2,3.258096,0,6.49224,7.878534,1,9.967326,1,0,0 +7,3.258096,0,6.49224,7.878534,1,9.967326,1,0,0 +6,3.258096,0,6.49224,7.878534,1,9.967326,1,0,0 +6,3.258096,0,6.49224,7.878534,1,9.967326,1,0,0 +6,3.258096,0,6.49224,7.878534,0,9.967326,1,0,0 +5,3.258096,0,6.49224,7.878534,0,9.967326,1,0,0 +8,3.258096,0,6.49224,7.878534,0,9.967326,1,0,0 +4,3.258096,0,6.49224,7.878534,0,9.967326,1,0,0 +2,3.258096,0,6.49224,7.878534,0,9.967326,1,0,0 +16,3.258096,0,6.49224,7.878534,1,13.8,1,0,0 +2,3.258096,0,6.49224,7.878534,1,13.8,1,0,0 +12,3.258096,0,6.49224,7.878534,1,13.8,1,0,0 +5,3.258096,0,6.49224,7.878534,1,13.8,1,0,0 +14,3.258096,0,6.49224,7.878534,1,13.8,1,0,0 +4,3.258096,0,6.49224,7.878534,0,20.7,1,0,0 +4,3.258096,0,6.49224,7.878534,0,20.7,1,0,0 +2,3.258096,0,6.49224,7.878534,0,20.7,1,0,0 +4,3.258096,0,6.49224,7.878534,0,20.7,1,0,0 +5,3.258096,0,6.49224,7.878534,0,20.7,1,0,0 +0,3.258096,0,5.703783,7.090077,0,10.3,1,0,0 +2,3.258096,0,5.703783,7.090077,0,10.3,1,0,0 +1,3.258096,0,5.703783,7.090077,0,10.3,1,0,0 +1,3.258096,0,5.703783,7.090077,0,10.3,1,0,0 +1,3.258096,0,5.703783,7.090077,0,10.3,1,0,0 +3,0,1,6.109248,6.160541,0,9.967326,0,0,0 +6,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +2,0,1,6.109248,6.160541,0,0,1,0,0 +1,0,1,6.109248,6.160541,0,0,1,0,0 +0,0,1,6.109248,6.160541,0,0,1,0,0 +0,0,1,6.109248,6.160541,1,31,1,0,0 +0,0,1,6.109248,6.160541,1,31,1,0,0 +0,0,1,6.109248,6.160541,1,31,1,0,0 +4,0,1,6.109248,6.160541,1,24.1,1,0,0 +10,0,1,6.109248,6.160541,1,24.1,1,0,0 +1,0,1,6.109248,6.160541,0,9.967326,1,0,0 +2,0,1,6.109248,6.160541,0,9.967326,1,0,0 +1,0,1,6.109248,6.160541,0,9.967326,1,0,0 +0,0,1,6.109248,6.160541,0,3.4,1,0,0 +0,0,1,6.109248,6.160541,0,3.4,1,0,0 +0,0,1,6.109248,6.160541,0,3.4,1,0,0 +1,0,0,4.276666,0,0,3.4,0,0,0 +0,0,0,4.276666,0,0,3.4,0,0,0 +0,0,0,4.276666,0,0,3.4,0,0,0 +12,0,0,4.276666,0,1,20.7,0,0,0 +4,0,0,4.276666,0,1,20.7,0,0,0 +5,0,0,4.276666,0,1,20.7,0,0,0 +1,0,0,0,0,0,10.3,1,0,0 +5,0,0,0,0,0,10.3,1,0,0 +3,0,0,0,0,0,10.3,1,0,0 +4,0,0,0,0,0,10.3,1,0,0 +4,0,0,0,0,0,10.3,1,0,0 +1,0,0,0,0,0,24.1,1,0,0 +1,0,0,0,0,0,24.1,1,0,0 +1,0,0,0,0,0,24.1,1,0,0 +2,0,0,0,0,0,24.1,1,0,0 +6,0,0,0,0,0,24.1,1,0,0 +1,4.564348,0,5.741848,5.937397,0,13.8,0,0,0 +2,4.564348,0,5.741848,5.937397,0,13.8,0,0,0 +5,4.564348,0,5.741848,5.937397,0,13.8,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.3,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.3,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.3,1,0,0 +14,0,1,0,5.061929,1,24.1,1,0,0 +13,0,1,0,5.061929,1,24.1,1,0,0 +7,0,1,0,5.061929,1,24.1,1,0,0 +4,0,1,5.010635,5.061929,0,24.1,1,0,0 +11,0,1,5.010635,5.061929,0,24.1,1,0,0 +11,0,1,5.010635,5.061929,0,24.1,1,0,0 +0,3.258096,0,6.119858,7.506152,0,3.4,1,0,0 +1,3.258096,0,6.119858,7.506152,0,3.4,1,0,0 +0,3.258096,0,6.119858,7.506152,0,3.4,1,0,0 +0,3.258096,0,6.119858,7.506152,0,9.967326,0,0,0 +1,3.258096,0,6.119858,7.506152,0,9.967326,0,0,0 +2,3.258096,0,6.119858,7.506152,0,9.967326,0,0,0 +0,3.258096,0,6.119858,7.506152,0,3.4,0,0,0 +0,3.258096,0,6.119858,7.506152,0,3.4,0,0,0 +0,3.258096,0,6.119858,7.506152,0,3.4,0,0,0 +2,3.258096,0,6.119858,7.506152,0,9.967326,0,0,0 +0,3.258096,0,6.119858,7.506152,0,9.967326,0,0,0 +1,3.258096,0,6.119858,7.506152,0,9.967326,0,0,0 +2,3.258096,0,6.119858,7.506152,0,6.9,0,0,0 +1,3.258096,0,6.119858,7.506152,0,6.9,0,0,0 +5,3.258096,0,6.119858,7.506152,0,6.9,0,0,0 +1,3.258096,0,6.119858,7.506152,0,3.4,0,0,0 +0,3.258096,0,6.119858,7.506152,0,3.4,0,0,0 +0,3.258096,0,6.119858,7.506152,0,3.4,0,0,0 +0,3.258096,0,5.497783,6.884077,0,6.9,0,0,0 +0,3.258096,0,5.497783,6.884077,0,6.9,0,0,0 +0,3.258096,0,5.497783,6.884077,0,6.9,0,0,0 +1,0,1,5.352806,5.061929,1,3.4,1,0,0 +1,0,1,6.109248,6.160541,0,13.8,1,0,0 +1,0,1,6.109248,6.160541,0,13.8,1,0,0 +0,0,1,6.109248,6.160541,0,13.8,1,0,0 +0,0,1,6.109248,6.160541,0,6.9,1,0,0 +0,0,1,6.109248,6.160541,0,6.9,1,0,0 +1,0,1,6.109248,6.160541,0,6.9,1,0,0 +0,0,1,6.109248,6.160541,1,3.4,1,0,0 +0,0,1,6.109248,6.160541,1,3.4,1,0,0 +0,0,1,6.109248,6.160541,1,3.4,1,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +1,0,1,6.109248,6.160541,0,3.4,0,0,0 +1,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,13.8,0,0,0 +0,0,1,6.109248,6.160541,0,13.8,0,0,0 +0,0,1,6.109248,6.160541,0,13.8,0,0,0 +0,0,1,6.109248,6.160541,0,13.8,1,0,0 +1,0,1,6.109248,6.160541,0,13.8,1,0,0 +1,0,1,6.109248,6.160541,0,13.8,1,0,0 +2,0,0,0,0,0,9.967326,1,0,0 +2,0,0,0,0,0,9.967326,1,0,0 +4,0,0,0,0,0,9.967326,1,0,0 +8,0,0,0,0,0,9.967326,0,0,0 +9,0,0,0,0,0,9.967326,0,0,0 +4,0,0,0,0,0,9.967326,0,0,0 +2,0,0,0,0,0,17.2,0,0,0 +1,0,0,0,0,0,17.2,0,0,0 +1,0,0,0,0,0,17.2,0,0,0 +2,0,0,0,0,0,13.8,0,0,0 +3,0,0,0,0,0,13.8,0,0,0 +5,0,0,0,0,0,13.8,0,0,0 +2,4.564348,0,5.991465,6.042758,0,24.1,0,0,0 +1,4.564348,0,5.991465,6.042758,0,24.1,0,0,0 +0,4.564348,0,5.991465,6.042758,0,24.1,0,0,0 +0,0,1,6.109248,6.160541,0,17.2,0,0,0 +2,0,1,6.109248,6.160541,0,17.2,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,1,0,0 +1,0,1,6.109248,6.160541,0,9.967326,1,0,0 +5,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +1,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +9,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +4,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +3,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +2,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +5,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +2,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +2,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +3,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +3,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +1,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +1,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +1,0,1,5.010635,5.061929,1,10.3,1,0,0 +0,0,1,5.010635,5.061929,1,10.3,1,0,0 +0,0,1,5.010635,5.061929,1,10.3,1,0,0 +0,0,1,5.010635,5.061929,1,10.3,1,0,0 +2,0,1,5.010635,5.061929,1,10.3,1,0,0 +1,0,1,6.109248,6.160541,0,10.3,0,0,0 +0,0,1,6.109248,6.160541,0,10.3,0,0,0 +4,0,1,6.109248,6.160541,0,10.3,0,0,0 +4,0,1,6.109248,6.160541,0,9.967326,0,0,0 +2,0,1,6.109248,6.160541,0,9.967326,0,0,0 +3,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,0,0,0,0 +4,0,1,6.109248,6.160541,0,0,0,0,0 +1,0,1,6.109248,6.160541,0,0,0,0,0 +2,0,1,6.109248,6.160541,0,9.967326,0,0,0 +3,0,1,6.109248,6.160541,0,9.967326,0,0,0 +4,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,4.564348,0,6.605095,6.656388,0,10.3,1,0,0 +0,4.564348,0,6.605095,6.656388,0,10.3,1,0,0 +0,4.564348,0,6.605095,6.656388,0,10.3,1,0,0 +1,4.564348,0,6.605095,6.656388,0,3.4,0,0,0 +1,4.564348,0,6.605095,6.656388,0,3.4,0,0,0 +1,4.564348,0,6.605095,6.656388,0,3.4,0,0,0 +0,4.564348,0,6.605095,6.656388,0,6.9,0,0,0 +0,4.564348,0,6.605095,6.656388,0,6.9,0,0,0 +0,4.564348,0,6.605095,6.656388,0,6.9,0,0,0 +1,0,0,2.821379,0,0,10.3,0,0,0 +0,0,0,2.821379,0,0,10.3,0,0,0 +4,0,0,2.821379,0,0,10.3,0,0,0 +3,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,0,0,0,0 +1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0 +1,0,0,0,0,0,3.4,0,0,0 +2,0,0,0,0,0,3.4,0,0,0 +2,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +1,0,0,5.352806,0,0,17.2,0,1,0 +3,0,0,5.352806,0,0,17.2,0,1,0 +2,0,0,5.352806,0,0,17.2,0,1,0 +6,0,0,6.953913,0,0,9.967326,0,0,0 +7,0,0,6.953913,0,0,9.967326,0,0,0 +4,0,0,6.953913,0,0,9.967326,0,0,0 +6,0,0,4.356709,0,0,9.967326,0,0,0 +16,0,0,4.356709,0,0,9.967326,0,0,0 +2,0,0,4.356709,0,0,9.967326,0,0,0 +5,0,0,4.356709,0,1,6.9,0,0,0 +5,0,0,4.356709,0,1,6.9,0,0,0 +5,0,0,4.356709,0,1,6.9,0,0,0 +8,4.564348,0,6.907755,6.959049,.0268456,9.967326,0,0,0 +9,4.564348,0,6.907755,6.959049,.0268456,9.967326,0,0,0 +3,4.564348,0,6.907755,6.959049,.0268456,9.967326,0,0,0 +3,4.564348,0,6.907755,6.959049,.0268456,9.967326,0,0,0 +4,4.564348,0,6.907755,6.959049,.0268456,9.967326,0,0,0 +1,0,0,6.364407,0,1,0,0,0,0 +0,0,0,6.364407,0,1,0,0,0,0 +2,0,0,6.364407,0,1,0,0,0,0 +0,0,0,6.364407,0,1,0,0,0,0 +1,0,0,6.364407,0,1,0,0,0,0 +4,0,0,6.364407,0,0,3.4,0,0,0 +2,0,0,6.364407,0,0,3.4,0,0,0 +4,0,0,6.364407,0,0,3.4,0,0,0 +1,0,0,6.364407,0,0,3.4,0,0,0 +2,0,0,6.364407,0,0,3.4,0,0,0 +5,4.564348,0,0,0,.0268456,9.967326,0,0,0 +0,4.564348,0,0,0,.0268456,9.967326,0,0,0 +2,4.564348,0,0,0,.0268456,9.967326,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +1,4.564348,0,6.620073,6.671367,0,6.9,0,0,0 +3,4.564348,0,6.620073,6.671367,0,6.9,0,0,0 +0,4.564348,0,6.620073,6.671367,0,6.9,0,0,0 +1,4.564348,0,6.907755,6.959049,.0268456,9.967326,0,0,0 +0,4.564348,0,6.907755,6.959049,.0268456,9.967326,0,0,0 +0,4.564348,0,6.907755,6.959049,.0268456,9.967326,0,0,0 +1,3.931826,0,5.416101,6.109248,1,9.967326,0,0,0 +2,3.931826,0,5.416101,6.109248,1,9.967326,0,0,0 +1,3.931826,0,5.416101,6.109248,1,9.967326,0,0,0 +2,0,0,0,0,0,6.9,0,0,0 +9,0,1,6.109248,6.160541,0,9.967326,0,0,0 +11,0,1,6.109248,6.160541,0,9.967326,0,0,0 +17,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,4.564348,0,6.907755,6.959049,0,0,0,0,0 +0,4.564348,0,6.907755,6.959049,0,0,0,0,0 +0,4.564348,0,6.907755,6.959049,0,0,0,0,0 +0,4.564348,0,6.907755,6.959049,0,0,0,0,0 +1,4.564348,0,6.907755,6.959049,0,0,0,0,0 +1,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +1,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +2,0,0,6.087683,0,0,13.8,0,0,0 +2,0,0,6.087683,0,0,13.8,0,0,0 +9,0,0,6.087683,0,0,13.8,0,0,0 +3,0,0,0,0,0,3.4,0,0,0 +1,0,0,0,0,0,3.4,0,0,0 +1,0,0,0,0,0,3.4,0,0,0 +7,0,0,0,0,0,0,0,0,0 +3,0,0,0,0,0,0,0,0,0 +6,0,0,0,0,0,0,0,0,0 +1,4.564348,0,5.991465,6.042758,0,6.9,0,0,0 +2,4.564348,0,5.991465,6.042758,0,6.9,0,0,0 +2,4.564348,0,5.991465,6.042758,0,6.9,0,0,0 +4,0,0,5.629059,0,.0268456,9.967326,0,0,0 +1,0,0,5.629059,0,.0268456,9.967326,0,0,0 +2,0,0,5.629059,0,.0268456,9.967326,0,0,0 +2,0,0,5.629059,0,.0268456,9.967326,0,0,0 +5,3.931826,0,6.253829,7.600903,.0268456,9.967326,0,0,0 +1,3.931826,0,6.253829,7.600903,.0268456,9.967326,0,0,0 +7,0,1,6.109248,6.160541,.0268456,9.967326,0,0,0 +1,0,1,6.109248,6.160541,.0268456,9.967326,0,0,0 +13,0,0,6.953913,0,.0268456,9.967326,0,0,0 +14,0,0,6.953913,0,.0268456,9.967326,0,0,0 +5,0,0,0,0,.0268456,9.967326,0,0,0 +2,0,1,6.109248,6.160541,.0268456,9.967326,0,0,0 +3,0,1,6.109248,6.160541,.0268456,9.967326,0,0,0 +2,0,1,6.109248,6.160541,.0268456,9.967326,0,0,0 +4,0,1,6.109248,6.160541,.0268456,9.967326,0,0,0 +1,3.931826,0,6.907755,7.600903,.0268456,9.967326,0,0,0 +7,0,1,6.109248,6.160541,.0268456,9.967326,0,0,0 +6,0,1,6.109248,6.160541,.0268456,9.967326,0,0,0 +9,3.258096,0,5.966147,7.352441,.0268456,9.967326,0,0,0 +5,3.258096,0,5.966147,7.352441,.0268456,9.967326,0,0,0 +1,0,1,6.694067,6.160541,.0268456,9.967326,0,0,0 +4,0,0,5.796483,0,.0268456,9.967326,0,0,0 +5,0,0,5.796483,0,.0268456,9.967326,0,0,0 +6,0,0,5.796483,0,.0268456,9.967326,0,0,0 +8,3.258096,0,6.49224,7.878534,.0268456,9.967326,0,0,0 +5,3.258096,0,6.49224,7.878534,.0268456,9.967326,0,0,0 +5,3.258096,0,6.49224,7.878534,.0268456,9.967326,0,0,0 +7,0,0,5.566358,0,.0268456,9.967326,0,0,0 +12,0,0,6.660473,0,.0268456,9.967326,0,0,0 +8,0,0,4.832943,0,.0268456,9.967326,0,0,0 +4,0,1,5.703783,5.755076,.0268456,9.967326,0,0,0 +6,4.564348,0,6.818924,6.870217,.0268456,9.967326,0,0,0 +7,4.564348,0,6.818924,6.870217,.0268456,9.967326,0,0,0 +12,4.564348,0,6.818924,6.870217,.0268456,9.967326,0,0,0 +9,4.564348,0,6.620073,6.671367,.0268456,9.967326,0,0,0 +3,4.564348,0,6.907755,6.959049,.0268456,9.967326,0,0,0 +4,4.564348,0,6.907755,6.959049,.0268456,9.967326,0,0,0 +5,3.258096,0,6.327937,7.714231,.0268456,9.967326,0,0,0 +9,0,0,2.821379,0,.0268456,9.967326,0,0,0 +1,4.564348,0,6.802395,6.959049,.0268456,9.967326,0,0,0 +0,4.564348,0,6.802395,6.959049,.0268456,9.967326,0,0,0 +3,3.258096,0,6.49224,7.878534,.0268456,9.967326,0,0,0 +5,3.258096,0,6.49224,7.878534,.0268456,9.967326,0,0,0 +6,0,0,5.426711,0,.0268456,9.967326,0,0,0 +7,0,0,5.052161,0,.0268456,9.967326,0,0,0 +17,4.564348,0,6.818924,6.870217,.0268456,9.967326,0,0,0 +3,4.564348,0,6.907755,6.959049,0,6.9,1,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,1,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,1,0,0 +2,4.564348,0,6.55108,6.602374,1,10.3,1,0,0 +0,4.564348,0,6.55108,6.602374,1,10.3,1,0,0 +0,4.564348,0,6.55108,6.602374,1,10.3,1,0,0 +0,4.564348,0,6.55108,6.602374,0,9.967326,1,0,0 +0,4.564348,0,6.55108,6.602374,0,9.967326,1,0,0 +1,4.564348,0,6.55108,6.602374,0,9.967326,1,0,0 +0,4.564348,0,6.55108,6.602374,0,0,1,0,0 +0,4.564348,0,6.55108,6.602374,0,0,1,0,0 +8,4.564348,0,6.55108,6.602374,0,0,1,0,0 +0,4.564348,0,6.55108,6.602374,0,9.967326,1,0,0 +0,4.564348,0,6.55108,6.602374,0,9.967326,1,0,0 +0,4.564348,0,6.55108,6.602374,0,9.967326,1,0,0 +2,3.258096,0,6.586172,8.006368,0,6.9,0,0,0 +3,3.258096,0,6.586172,8.006368,0,6.9,0,0,0 +0,3.258096,0,6.586172,8.006368,0,6.9,0,0,0 +4,3.258096,0,6.586172,8.006368,0,9.967326,0,0,0 +6,3.258096,0,6.586172,8.006368,0,9.967326,0,0,0 +3,3.258096,0,6.586172,8.006368,0,9.967326,0,0,0 +2,3.258096,0,6.586172,8.006368,0,9.967326,1,0,0 +1,3.258096,0,6.586172,8.006368,0,9.967326,1,0,0 +3,3.258096,0,6.586172,8.006368,0,9.967326,1,0,0 +0,3.258096,0,6.586172,8.006368,0,13.8,0,0,0 +2,3.258096,0,6.586172,8.006368,0,13.8,0,0,0 +0,3.258096,0,6.586172,8.006368,0,13.8,0,0,0 +4,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +4,0,0,0,0,0,13.8,0,0,0 +0,0,0,0,0,0,13.8,0,0,0 +1,0,0,0,0,0,13.8,0,0,0 +1,0,0,0,0,0,10.3,1,0,0 +2,0,0,0,0,0,10.3,1,0,0 +1,0,0,0,0,0,10.3,1,0,0 +2,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,9.967326,0,0,0 +4,0,0,0,0,0,9.967326,0,0,0 +3,0,1,0,5.061929,0,6.9,1,0,0 +2,0,1,0,5.061929,0,6.9,1,0,0 +1,0,1,0,5.061929,0,6.9,1,0,0 +1,0,0,5.399971,0,0,10.3,1,0,0 +1,0,0,5.399971,0,0,10.3,1,0,0 +0,0,0,5.399971,0,0,10.3,1,0,0 +5,0,0,0,0,1,10.3,1,0,0 +3,0,0,0,0,1,10.3,1,0,0 +2,0,0,0,0,1,10.3,1,0,0 +1,0,0,0,0,1,0,1,0,0 +1,0,0,0,0,1,0,1,0,0 +1,0,0,0,0,1,0,1,0,0 +7,0,0,0,0,0,9.967326,0,1,0 +3,0,0,0,0,0,9.967326,0,1,0 +8,0,0,0,0,0,9.967326,0,1,0 +8,0,0,0,0,0,9.967326,1,0,0 +4,0,0,0,0,0,9.967326,1,0,0 +4,0,0,0,0,0,9.967326,1,0,0 +2,0,0,0,0,0,9.967326,0,0,0 +2,0,0,0,0,0,9.967326,0,0,0 +2,0,0,0,0,0,9.967326,0,0,0 +2,0,0,0,0,0,9.967326,0,0,0 +3,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,17.2,0,0,0 +1,0,0,0,0,0,17.2,0,0,0 +2,0,0,0,0,0,17.2,0,0,0 +8,0,0,0,0,0,17.2,0,0,0 +4,0,0,0,0,0,17.2,0,0,0 +0,0,1,6.226378,6.160541,0,10.3,0,0,0 +0,0,1,6.226378,6.160541,0,10.3,0,0,0 +0,0,1,6.226378,6.160541,0,10.3,0,0,0 +4,0,1,6.226378,6.160541,0,6.9,1,0,0 +0,0,1,6.226378,6.160541,0,6.9,1,0,0 +0,0,1,6.226378,6.160541,0,6.9,1,0,0 +1,0,1,6.226378,6.160541,0,9.967326,0,0,0 +1,0,1,6.226378,6.160541,0,9.967326,0,0,0 +1,0,1,6.226378,6.160541,0,9.967326,0,0,0 +5,0,0,0,0,0,6.9,1,0,0 +0,0,0,0,0,0,6.9,1,0,0 +0,0,0,0,0,0,6.9,1,0,0 +0,0,0,0,0,0,9.967326,1,0,0 +3,0,0,0,0,0,9.967326,1,0,0 +1,0,0,0,0,0,9.967326,1,0,0 +2,0,0,0,0,0,3.4,1,0,0 +0,0,0,0,0,0,3.4,1,0,0 +5,0,0,0,0,0,3.4,1,0,0 +1,0,0,0,0,0,3.4,1,0,0 +4,0,0,0,0,0,3.4,1,0,0 +3,0,0,0,0,0,3.4,1,0,0 +5,0,0,5.676206,0,1,3.4,1,0,0 +1,0,0,5.676206,0,1,3.4,1,0,0 +1,0,0,5.676206,0,1,3.4,1,0,0 +4,0,0,5.676206,0,1,3.4,1,0,0 +2,0,0,5.676206,0,1,3.4,1,0,0 +1,0,0,5.676206,0,1,9.967326,0,1,0 +2,0,0,5.676206,0,1,9.967326,0,1,0 +1,0,0,5.676206,0,1,9.967326,0,1,0 +8,0,0,5.676206,0,1,9.967326,0,1,0 +5,0,0,5.676206,0,1,9.967326,0,1,0 +7,0,0,5.676206,0,0,9.967326,0,1,0 +5,0,0,5.676206,0,0,9.967326,0,1,0 +0,0,0,5.676206,0,0,9.967326,0,1,0 +0,0,0,5.676206,0,0,9.967326,0,1,0 +1,0,0,5.676206,0,0,9.967326,0,1,0 +2,0,0,5.676206,0,0,9.967326,1,0,0 +2,0,0,5.676206,0,0,9.967326,1,0,0 +2,0,0,5.676206,0,0,9.967326,1,0,0 +5,0,0,5.676206,0,0,9.967326,1,0,0 +7,0,0,5.676206,0,0,9.967326,1,0,0 +11,0,0,5.676206,0,0,17.2,1,0,0 +4,0,0,5.676206,0,0,17.2,1,0,0 +11,0,0,5.676206,0,0,17.2,1,0,0 +9,0,0,5.676206,0,0,17.2,1,0,0 +8,0,0,5.676206,0,0,17.2,1,0,0 +6,0,0,5.676206,0,0,9.967326,0,1,0 +9,0,0,5.676206,0,0,9.967326,0,1,0 +6,0,0,5.676206,0,0,9.967326,0,1,0 +10,0,0,5.676206,0,0,9.967326,0,1,0 +5,0,0,5.676206,0,0,9.967326,0,1,0 +2,0,1,5.010635,5.061929,0,6.9,1,0,0 +0,0,1,5.010635,5.061929,0,6.9,1,0,0 +0,0,1,5.010635,5.061929,0,6.9,1,0,0 +2,0,1,5.010635,5.061929,0,6.9,0,0,0 +1,0,1,5.010635,5.061929,0,6.9,0,0,0 +0,0,1,5.010635,5.061929,0,6.9,0,0,0 +3,0,1,6.104436,6.160541,0,3.4,0,0,0 +0,0,1,6.104436,6.160541,0,3.4,0,0,0 +1,0,1,6.104436,6.160541,0,3.4,0,0,0 +5,0,1,6.104436,6.160541,0,24.1,1,0,0 +3,0,1,6.104436,6.160541,0,24.1,1,0,0 +1,0,1,6.104436,6.160541,0,24.1,1,0,0 +8,0,1,6.104436,6.160541,0,9.967326,1,0,0 +2,0,1,6.104436,6.160541,0,9.967326,1,0,0 +2,0,1,6.104436,6.160541,0,9.967326,1,0,0 +3,3.258096,0,6.586172,8.006368,0,9.967326,0,0,0 +7,3.258096,0,6.586172,8.006368,0,9.967326,0,0,0 +4,3.258096,0,6.586172,8.006368,0,9.967326,0,0,0 +0,3.258096,0,6.586172,8.006368,0,9.967326,0,0,0 +0,3.258096,0,6.586172,8.006368,0,9.967326,0,0,0 +0,3.258096,0,6.586172,8.006368,0,9.967326,0,0,0 +3,3.258096,0,6.586172,8.006368,0,9.967326,0,0,0 +0,3.258096,0,6.586172,8.006368,0,9.967326,0,0,0 +1,3.258096,0,6.586172,8.006368,0,9.967326,0,0,0 +1,3.258096,0,6.586172,8.006368,0,9.967326,0,0,0 +1,3.258096,0,6.586172,8.006368,0,0,0,0,0 +0,3.258096,0,6.586172,8.006368,0,0,0,0,0 +0,3.258096,0,6.586172,8.006368,0,0,0,0,0 +1,3.258096,0,6.586172,8.006368,0,0,0,0,0 +0,3.258096,0,6.586172,8.006368,0,0,0,0,0 +0,3.258096,0,6.586172,8.006368,0,3.4,0,0,0 +2,3.258096,0,6.586172,8.006368,0,3.4,0,0,0 +0,3.258096,0,6.586172,8.006368,0,3.4,0,0,0 +1,3.258096,0,6.586172,8.006368,0,3.4,0,0,0 +1,3.258096,0,6.586172,8.006368,0,3.4,0,0,0 +1,3.258096,0,6.586172,8.006368,0,9.967326,0,0,0 +3,3.258096,0,6.586172,8.006368,0,9.967326,0,0,0 +0,3.258096,0,6.586172,8.006368,0,9.967326,0,0,0 +1,3.258096,0,6.586172,8.006368,0,9.967326,0,0,0 +1,3.258096,0,6.586172,8.006368,0,9.967326,0,0,0 +0,3.258096,0,6.586172,8.006368,0,9.967326,0,0,0 +4,3.258096,0,6.586172,8.006368,0,9.967326,0,0,0 +1,3.258096,0,6.586172,8.006368,0,9.967326,0,0,0 +1,3.258096,0,6.586172,8.006368,0,9.967326,0,0,0 +1,3.258096,0,6.586172,8.006368,0,9.967326,0,0,0 +1,3.258096,0,6.586172,8.006368,1,10.3,1,0,0 +2,3.258096,0,6.586172,8.006368,1,10.3,1,0,0 +3,3.258096,0,6.586172,8.006368,1,10.3,1,0,0 +3,3.258096,0,6.586172,8.006368,1,10.3,1,0,0 +1,3.258096,0,6.586172,8.006368,1,10.3,1,0,0 +2,0,0,5.974827,0,0,13.8,0,0,0 +4,0,0,5.974827,0,0,13.8,0,0,0 +2,0,0,5.974827,0,0,13.8,0,0,0 +0,0,1,6.005367,5.061929,0,10.3,0,0,1 +1,0,1,6.005367,5.061929,0,10.3,0,0,1 +0,0,1,6.005367,5.061929,0,10.3,0,0,1 +1,3.258096,0,6.620073,8.006368,0,13.8,0,0,0 +1,3.258096,0,6.620073,8.006368,0,13.8,0,0,0 +1,3.258096,0,6.620073,8.006368,0,13.8,0,0,0 +1,0,0,5.437731,0,0,17.2,1,0,0 +5,0,0,5.437731,0,0,17.2,1,0,0 +2,0,0,5.437731,0,0,17.2,1,0,0 +2,0,0,5.437731,0,0,10.3,0,0,0 +3,0,0,5.437731,0,0,10.3,0,0,0 +1,0,0,5.437731,0,0,10.3,0,0,0 +4,0,1,5.703783,5.755076,1,13.8,0,1,0 +1,0,1,5.703783,5.755076,1,13.8,0,1,0 +3,0,1,5.703783,5.755076,1,13.8,0,1,0 +2,0,1,5.703783,5.755076,0,20.7,1,0,0 +1,0,1,5.703783,5.755076,0,20.7,1,0,0 +3,0,1,5.703783,5.755076,0,20.7,1,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +2,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +2,0,1,6.109248,6.160541,0,9.967326,0,0,0 +2,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +2,0,1,6.109248,6.160541,0,6.9,0,0,0 +0,0,1,6.109248,6.160541,0,6.9,0,0,0 +4,0,1,6.109248,6.160541,0,6.9,0,0,0 +3,0,1,6.109248,6.160541,0,6.9,0,0,0 +2,0,1,6.109248,6.160541,0,6.9,0,0,0 +1,0,1,6.109248,6.160541,0,3.4,0,0,0 +2,0,1,6.109248,6.160541,0,3.4,0,0,0 +1,0,1,6.109248,6.160541,0,3.4,0,0,0 +2,0,1,6.109248,6.160541,0,3.4,0,0,0 +1,0,1,6.109248,6.160541,0,3.4,0,0,0 +1,3.258096,0,6.620073,8.006368,0,10.3,0,0,0 +6,3.258096,0,6.620073,8.006368,0,10.3,0,0,0 +1,3.258096,0,6.620073,8.006368,0,10.3,0,0,0 +1,3.258096,0,6.620073,8.006368,0,13.8,0,0,0 +3,3.258096,0,6.620073,8.006368,0,13.8,0,0,0 +1,3.258096,0,6.620073,8.006368,0,13.8,0,0,0 +5,0,0,5.418764,0,1,17.2,1,0,0 +5,0,0,5.418764,0,1,17.2,1,0,0 +3,0,0,5.418764,0,1,17.2,1,0,0 +3,0,0,5.418764,0,0,9.967326,0,0,0 +1,0,0,5.418764,0,0,9.967326,0,0,0 +2,0,0,5.418764,0,0,9.967326,0,0,0 +5,0,0,5.418764,0,0,9.967326,0,0,0 +0,0,0,5.418764,0,0,9.967326,0,0,0 +0,0,0,5.418764,0,0,9.967326,0,0,0 +5,0,0,5.418764,0,0,20.7,0,0,0 +4,0,0,5.418764,0,0,20.7,0,0,0 +7,0,0,5.418764,0,0,20.7,0,0,0 +2,0,0,0,0,0,6.9,0,0,0 +1,0,0,0,0,0,6.9,0,0,0 +2,0,0,0,0,0,6.9,0,0,0 +2,4.564348,0,6.907755,6.959049,1,24.1,0,0,0 +2,4.564348,0,6.907755,6.959049,1,24.1,0,0,0 +0,4.564348,0,6.907755,6.959049,1,24.1,0,0,0 +0,4.564348,0,6.907755,6.959049,1,24.1,0,0,0 +0,4.564348,0,6.907755,6.959049,1,24.1,0,0,0 +3,4.564348,0,6.907755,6.959049,0,20.7,1,0,0 +5,4.564348,0,6.907755,6.959049,0,20.7,1,0,0 +6,4.564348,0,6.907755,6.959049,0,20.7,1,0,0 +2,4.564348,0,6.907755,6.959049,0,20.7,1,0,0 +8,4.564348,0,6.907755,6.959049,0,20.7,1,0,0 +4,0,0,6.346478,0,0,13.8,0,0,0 +1,0,0,6.346478,0,0,13.8,0,0,0 +10,0,0,6.346478,0,0,13.8,0,0,0 +3,0,0,6.346478,0,0,9.967326,0,0,0 +1,0,0,6.346478,0,0,9.967326,0,0,0 +2,0,0,6.346478,0,0,9.967326,0,0,0 +13,0,0,6.346478,0,0,9.967326,0,0,0 +4,0,0,6.346478,0,0,9.967326,0,0,0 +5,0,0,6.346478,0,0,9.967326,0,0,0 +3,0,1,5.703783,5.755076,0,3.4,1,0,0 +3,0,1,5.703783,5.755076,0,3.4,1,0,0 +0,0,1,5.703783,5.755076,0,3.4,1,0,0 +0,0,1,5.703783,5.755076,0,3.4,1,0,0 +1,0,1,5.703783,5.755076,0,3.4,1,0,0 +5,0,1,5.703783,5.755076,0,10.3,1,0,0 +5,0,1,5.703783,5.755076,0,10.3,1,0,0 +0,0,1,5.703783,5.755076,0,10.3,1,0,0 +3,0,1,5.703783,5.755076,0,10.3,1,0,0 +5,0,1,5.703783,5.755076,0,10.3,1,0,0 +4,0,0,0,0,0,0,1,0,0 +5,0,0,0,0,0,0,1,0,0 +1,0,0,0,0,0,3.4,1,0,0 +0,0,0,0,0,0,3.4,1,0,0 +1,0,0,0,0,0,3.4,1,0,0 +5,0,0,0,0,0,3.4,1,0,0 +4,0,0,0,0,0,10.3,1,0,0 +5,0,0,0,0,0,10.3,1,0,0 +5,0,0,0,0,0,10.3,1,0,0 +7,0,0,5.681128,0,1,27.6,1,0,0 +2,0,0,5.681128,0,1,27.6,1,0,0 +0,0,0,5.676206,0,0,9.967326,0,0,0 +1,0,0,5.676206,0,0,9.967326,0,0,0 +1,0,0,5.676206,0,0,9.967326,0,0,0 +4,0,0,5.676206,0,0,9.967326,0,0,0 +1,0,0,5.676206,0,0,9.967326,0,0,0 +1,0,0,5.676206,0,0,9.967326,0,0,0 +2,0,0,5.676206,0,0,13.8,0,0,0 +1,0,0,5.676206,0,0,13.8,0,0,0 +4,0,0,5.676206,0,0,13.8,0,0,0 +0,0,0,5.676206,0,1,24.1,0,0,0 +0,0,0,5.676206,0,1,24.1,0,0,0 +3,0,0,5.676206,0,1,24.1,0,0,0 +1,0,0,5.676206,0,0,9.967326,0,0,0 +1,0,0,5.676206,0,0,9.967326,0,0,0 +4,0,0,5.676206,0,0,9.967326,0,0,0 +4,0,0,5.676206,0,0,3.4,0,0,0 +0,0,0,5.676206,0,0,3.4,0,0,0 +1,0,0,5.676206,0,0,3.4,0,0,0 +2,0,0,0,0,0,9.967326,1,0,0 +1,0,0,0,0,0,9.967326,1,0,0 +2,0,0,0,0,0,9.967326,1,0,0 +5,0,0,0,0,0,9.967326,1,0,0 +1,0,0,0,0,0,9.967326,1,0,0 +2,0,0,0,0,0,9.967326,1,0,0 +0,0,0,0,0,0,9.967326,1,0,0 +1,0,0,0,0,0,9.967326,1,0,0 +2,0,0,0,0,0,9.967326,1,0,0 +2,0,0,0,0,0,9.967326,1,0,0 +5,0,0,0,0,1,37.9,0,1,0 +7,0,0,0,0,1,37.9,0,1,0 +1,0,0,0,0,1,37.9,0,1,0 +0,0,0,0,0,1,37.9,0,1,0 +2,0,0,0,0,1,37.9,0,1,0 +8,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +7,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +8,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +6,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +6,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +0,4.564348,0,6.907755,6.959049,0,0,0,0,0 +0,4.564348,0,6.907755,6.959049,0,0,0,0,0 +0,4.564348,0,6.907755,6.959049,0,0,0,0,0 +0,4.564348,0,6.907755,6.959049,0,0,0,0,0 +2,4.564348,0,6.907755,6.959049,0,0,0,0,0 +1,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +1,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +0,0,1,6.22543,6.160541,0,3.4,0,0,0 +1,0,1,6.22543,6.160541,0,3.4,0,0,0 +0,0,1,6.22543,6.160541,0,3.4,0,0,0 +0,0,1,6.22543,6.160541,0,9.967326,0,0,0 +0,0,1,6.22543,6.160541,0,9.967326,0,0,0 +0,0,1,6.22543,6.160541,0,9.967326,0,0,0 +0,0,1,6.22543,6.160541,0,9.967326,0,0,0 +1,0,1,6.22543,6.160541,0,9.967326,0,0,0 +1,0,1,6.22543,6.160541,0,9.967326,0,0,0 +4,0,1,6.22543,6.160541,0,9.967326,0,0,0 +3,0,1,6.22543,6.160541,0,9.967326,0,0,0 +4,0,1,6.22543,6.160541,0,9.967326,0,0,0 +8,0,1,6.22543,6.160541,0,6.9,0,0,0 +2,0,1,6.22543,6.160541,0,6.9,0,0,0 +0,0,1,6.22543,6.160541,0,6.9,0,0,0 +1,0,0,6.094202,0,0,9.967326,0,0,0 +3,0,0,6.094202,0,0,9.967326,0,0,0 +3,0,0,6.094202,0,0,9.967326,0,0,0 +0,0,0,6.094202,0,0,3.4,0,0,0 +0,0,0,6.094202,0,0,3.4,0,0,0 +0,0,0,6.094202,0,0,3.4,0,0,0 +2,0,0,6.094202,0,0,9.967326,0,0,0 +4,0,0,6.094202,0,0,9.967326,0,0,0 +2,0,0,6.094202,0,0,9.967326,0,0,0 +1,0,0,6.094202,0,0,10.3,0,0,0 +2,0,0,6.094202,0,0,10.3,0,0,0 +1,0,0,6.094202,0,0,10.3,0,0,0 +0,4.564348,0,6.882438,6.933731,0,24.1,0,0,0 +2,4.564348,0,6.882438,6.933731,0,24.1,0,0,0 +0,4.564348,0,6.882438,6.933731,0,24.1,0,0,0 +2,0,0,5.313501,0,0,17.2,1,0,0 +1,0,0,5.313501,0,0,17.2,1,0,0 +3,0,0,5.313501,0,0,17.2,1,0,0 +3,0,0,4.880982,0,0,0,1,0,0 +5,0,0,4.880982,0,0,0,1,0,0 +7,0,0,4.880982,0,0,0,1,0,0 +4,0,1,6.109248,6.160541,0,10.3,1,0,0 +0,0,1,6.109248,6.160541,0,10.3,1,0,0 +4,0,1,6.109248,6.160541,0,10.3,1,0,0 +6,0,1,6.109248,6.160541,0,13.8,1,0,0 +3,0,1,6.109248,6.160541,0,13.8,1,0,0 +9,0,1,6.109248,6.160541,0,13.8,1,0,0 +7,0,1,6.109248,6.160541,0,9.967326,0,1,0 +12,0,1,6.109248,6.160541,0,9.967326,0,1,0 +11,0,1,6.109248,6.160541,0,9.967326,0,1,0 +10,0,1,6.109248,6.160541,0,9.967326,1,0,0 +4,0,1,6.109248,6.160541,0,9.967326,1,0,0 +6,0,1,6.109248,6.160541,0,9.967326,1,0,0 +5,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,9.967326,0,0,0 +5,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,17.2,0,0,0 +2,0,0,0,0,0,17.2,0,0,0 +0,0,0,0,0,0,17.2,0,0,0 +3,0,0,0,0,0,10.3,1,0,0 +0,0,0,0,0,0,10.3,1,0,0 +1,0,0,0,0,0,10.3,1,0,0 +0,3.258096,0,5.703783,7.090077,0,3.4,0,0,0 +0,3.258096,0,5.703783,7.090077,0,3.4,0,0,0 +1,3.258096,0,5.703783,7.090077,0,3.4,0,0,0 +1,3.258096,0,5.703783,7.090077,0,3.4,0,0,0 +1,3.258096,0,5.703783,7.090077,0,3.4,0,0,0 +2,3.258096,0,5.703783,7.090077,0,9.967326,0,0,0 +0,3.258096,0,5.703783,7.090077,0,9.967326,0,0,0 +0,3.258096,0,5.703783,7.090077,0,9.967326,0,0,0 +2,3.258096,0,5.703783,7.090077,0,9.967326,0,0,0 +0,3.258096,0,5.703783,7.090077,0,9.967326,0,0,0 +1,3.258096,0,0,6.659294,0,9.967326,0,0,0 +2,3.258096,0,0,6.659294,0,9.967326,0,0,0 +0,3.258096,0,0,6.659294,0,9.967326,0,0,0 +2,3.258096,0,0,6.659294,0,3.4,0,0,0 +1,3.258096,0,0,6.659294,0,3.4,0,0,0 +2,3.258096,0,0,6.659294,0,3.4,0,0,0 +1,3.258096,0,6.098074,7.484369,0,3.4,0,0,0 +1,3.258096,0,6.098074,7.484369,0,3.4,0,0,0 +1,3.258096,0,6.098074,7.484369,0,3.4,0,0,0 +3,3.258096,0,6.620073,8.006368,0,20.7,1,0,0 +2,3.258096,0,6.620073,8.006368,0,20.7,1,0,0 +1,3.258096,0,6.620073,8.006368,0,20.7,1,0,0 +3,3.258096,0,6.620073,8.006368,0,20.7,0,0,0 +4,3.258096,0,6.620073,8.006368,0,20.7,0,0,0 +1,3.258096,0,6.620073,8.006368,0,20.7,0,0,0 +2,0,0,6.094202,0,0,9.967326,0,0,0 +3,0,0,6.094202,0,0,9.967326,0,0,0 +0,0,0,6.094202,0,0,9.967326,0,0,0 +4,0,0,6.094202,0,0,9.967326,1,0,0 +1,0,0,6.094202,0,0,9.967326,1,0,0 +3,0,0,6.094202,0,0,9.967326,1,0,0 +7,0,0,6.094202,0,0,10.3,1,0,0 +18,0,0,6.094202,0,0,10.3,1,0,0 +9,0,0,6.094202,0,0,10.3,1,0,0 +7,0,0,6.094202,0,0,20.7,1,0,0 +34,0,0,6.094202,0,0,20.7,1,0,0 +16,0,0,6.094202,0,0,20.7,1,0,0 +0,3.258096,0,6.2105,7.596794,0,13.8,0,0,0 +2,3.258096,0,6.2105,7.596794,0,13.8,0,0,0 +2,3.258096,0,6.2105,7.596794,0,13.8,0,0,0 +4,3.258096,0,6.2105,7.596794,0,9.967326,0,0,0 +2,3.258096,0,6.2105,7.596794,0,9.967326,0,0,0 +1,3.258096,0,6.2105,7.596794,0,9.967326,0,0,0 +11,3.258096,0,6.2105,7.596794,0,3.4,0,0,0 +3,3.258096,0,6.2105,7.596794,0,3.4,0,0,0 +0,3.258096,0,6.2105,7.596794,0,3.4,0,0,0 +4,3.258096,0,6.2105,7.596794,0,9.967326,0,0,0 +2,3.258096,0,6.2105,7.596794,0,9.967326,0,0,0 +2,3.258096,0,6.2105,7.596794,0,9.967326,0,0,0 +0,4.564348,0,5.398163,5.449456,0,9.967326,0,0,0 +0,4.564348,0,5.398163,5.449456,0,9.967326,0,0,0 +2,4.564348,0,5.398163,5.449456,0,3.4,0,0,0 +2,4.564348,0,5.398163,5.449456,0,3.4,0,0,0 +0,4.564348,0,5.398163,5.449456,0,3.4,0,0,0 +1,4.564348,0,5.398163,5.449456,1,24.1,1,0,0 +1,4.564348,0,5.398163,5.449456,1,24.1,1,0,0 +0,4.564348,0,5.398163,5.449456,1,24.1,1,0,0 +1,4.564348,0,5.398163,5.449456,0,9.967326,0,0,0 +0,4.564348,0,5.398163,5.449456,0,9.967326,0,0,0 +0,4.564348,0,5.398163,5.449456,0,9.967326,0,0,0 +2,4.564348,0,5.398163,5.449456,0,9.967326,0,0,0 +0,4.564348,0,5.398163,5.449456,0,9.967326,0,0,0 +2,4.564348,0,5.398163,5.449456,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,20.7,0,0,0 +2,0,1,6.109248,6.160541,0,20.7,0,0,0 +3,0,1,6.109248,6.160541,0,20.7,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +11,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,6.9,0,0,0 +0,0,1,6.109248,6.160541,0,6.9,0,0,0 +0,0,1,6.109248,6.160541,0,6.9,0,0,0 +5,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,9.967326,0,0,0 +3,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,9.967326,0,0,0 +3,0,0,0,0,0,9.967326,0,0,0 +3,0,0,0,0,0,3.4,0,0,0 +1,0,0,0,0,0,3.4,0,0,0 +4,0,0,0,0,0,3.4,0,0,0 +3,0,0,0,0,0,3.4,0,0,0 +1,0,0,0,0,0,3.4,0,0,0 +5,3.258096,0,6.620073,8.006368,0,20.7,0,0,0 +3,3.258096,0,6.620073,8.006368,0,20.7,0,0,0 +4,3.258096,0,6.620073,8.006368,0,20.7,0,0,0 +2,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +1,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +1,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +2,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +3,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +1,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +0,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +0,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +0,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +1,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +0,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +0,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +0,0,1,6.823765,5.755076,0,13.8,0,0,0 +1,0,1,6.823765,5.755076,0,13.8,0,0,0 +7,0,1,6.823765,5.755076,0,13.8,0,0,0 +0,0,1,6.823765,5.755076,0,3.4,0,0,0 +0,0,1,6.823765,5.755076,0,3.4,0,0,0 +0,0,1,6.823765,5.755076,0,3.4,0,0,0 +8,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +2,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +1,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +1,3.258096,0,6.620073,8.006368,1,13.8,0,0,0 +0,3.258096,0,6.620073,8.006368,1,13.8,0,0,0 +2,3.258096,0,6.620073,8.006368,1,13.8,0,0,0 +5,3.258096,0,6.620073,8.006368,0,13.8,0,0,0 +0,3.258096,0,6.620073,8.006368,0,13.8,0,0,0 +2,3.258096,0,6.620073,8.006368,0,13.8,0,0,0 +1,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +0,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +2,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +2,3.931826,0,6.639876,7.333023,0,13.8,1,0,0 +3,3.931826,0,6.639876,7.333023,0,13.8,1,0,0 +1,3.931826,0,6.639876,7.333023,0,13.8,1,0,0 +1,4.564348,0,6.533062,6.584355,1,17.2,0,0,0 +1,4.564348,0,6.533062,6.584355,1,17.2,0,0,0 +8,4.564348,0,6.533062,6.584355,1,17.2,0,0,0 +10,4.564348,0,6.533062,6.584355,1,17.2,0,0,0 +3,4.564348,0,6.533062,6.584355,1,17.2,0,0,0 +3,4.564348,0,6.533062,6.584355,1,20.7,1,0,0 +1,4.564348,0,6.533062,6.584355,1,20.7,1,0,0 +1,4.564348,0,6.533062,6.584355,1,20.7,1,0,0 +3,4.564348,0,6.533062,6.584355,1,20.7,1,0,0 +1,4.564348,0,6.533062,6.584355,1,20.7,1,0,0 +4,0,0,6.094202,0,0,6.9,0,0,0 +0,0,0,6.094202,0,0,6.9,0,0,0 +0,0,0,6.094202,0,0,6.9,0,0,0 +2,0,0,6.094202,0,0,27.6,0,0,0 +3,0,0,6.094202,0,0,27.6,0,0,0 +13,0,0,6.094202,0,0,27.6,0,0,0 +0,0,0,6.094202,0,0,6.9,0,0,0 +0,0,0,6.094202,0,0,6.9,0,0,0 +1,0,0,6.094202,0,0,6.9,0,0,0 +0,3.931826,0,6.907755,7.600903,0,6.9,1,0,0 +0,3.931826,0,6.907755,7.600903,0,6.9,1,0,0 +0,3.931826,0,6.907755,7.600903,0,6.9,1,0,0 +1,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +1,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +2,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +1,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +0,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +28,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +0,3.931826,0,6.907755,7.600903,0,6.9,1,0,0 +1,3.931826,0,6.907755,7.600903,0,6.9,1,0,0 +0,3.931826,0,6.907755,7.600903,0,6.9,1,0,0 +2,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +3,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +1,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,10.3,0,0,0 +3,0,1,6.109248,6.160541,0,10.3,0,0,0 +4,0,1,6.109248,6.160541,0,10.3,0,0,0 +1,0,1,6.109248,6.160541,0,10.3,0,0,0 +3,0,1,6.109248,6.160541,0,10.3,0,0,0 +6,0,1,6.109248,6.160541,0,17.2,1,0,0 +4,0,1,6.109248,6.160541,0,17.2,1,0,0 +4,0,1,6.109248,6.160541,0,17.2,1,0,0 +4,0,1,6.109248,6.160541,0,17.2,1,0,0 +4,0,1,6.109248,6.160541,0,17.2,1,0,0 +0,0,1,6.109248,6.160541,0,6.9,0,0,0 +0,0,1,6.109248,6.160541,0,6.9,0,0,0 +1,0,1,6.109248,6.160541,0,6.9,0,0,0 +1,0,1,6.109248,6.160541,0,6.9,0,0,0 +1,0,1,6.109248,6.160541,0,6.9,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +5,0,1,6.109248,6.160541,0,9.967326,0,0,0 +2,0,0,0,0,0,10.3,1,0,0 +3,0,0,0,0,0,10.3,1,0,0 +6,0,0,0,0,0,10.3,1,0,0 +6,0,1,5.703783,5.755076,0,17.2,0,0,0 +3,0,1,5.703783,5.755076,0,17.2,0,0,0 +0,0,1,5.703783,5.755076,0,17.2,0,0,0 +2,0,1,5.703783,5.755076,0,6.9,0,0,0 +0,0,1,5.703783,5.755076,0,6.9,0,0,0 +0,0,1,5.703783,5.755076,0,6.9,0,0,0 +4,0,0,4.836282,0,1,17.2,1,0,0 +7,0,0,4.836282,0,1,17.2,1,0,0 +6,0,0,4.836282,0,1,17.2,1,0,0 +2,0,0,0,0,0,9.967326,1,0,0 +0,0,0,0,0,0,9.967326,1,0,0 +0,0,0,0,0,0,9.967326,1,0,0 +1,0,0,0,0,0,9.967326,1,0,0 +6,0,0,0,0,0,9.967326,1,0,0 +11,0,0,0,0,0,6.9,1,0,0 +10,0,0,0,0,0,6.9,1,0,0 +10,0,0,0,0,0,6.9,1,0,0 +5,0,0,0,0,0,6.9,1,0,0 +4,0,0,0,0,0,6.9,1,0,0 +0,0,0,0,0,0,6.9,0,0,0 +2,0,0,0,0,0,6.9,0,0,0 +1,0,0,0,0,0,6.9,0,0,0 +2,0,0,0,0,0,6.9,0,0,0 +0,0,0,0,0,0,6.9,0,0,0 +2,0,0,0,0,0,3.4,1,0,0 +2,0,0,0,0,0,3.4,1,0,0 +3,0,0,0,0,0,3.4,1,0,0 +0,0,0,0,0,0,3.4,1,0,0 +6,0,0,0,0,0,3.4,1,0,0 +3,0,0,0,0,0,9.967326,1,0,0 +3,0,0,0,0,0,9.967326,1,0,0 +10,0,0,0,0,0,9.967326,1,0,0 +6,0,0,0,0,0,9.967326,1,0,0 +10,0,0,0,0,0,9.967326,1,0,0 +1,0,1,6.109248,6.160541,0,9.967326,1,0,0 +4,0,1,6.109248,6.160541,0,9.967326,1,0,0 +0,0,1,6.109248,6.160541,0,9.967326,1,0,0 +6,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +4,0,1,6.109248,6.160541,0,3.4,0,0,0 +4,0,1,6.109248,6.160541,0,3.4,0,0,0 +1,0,1,6.109248,6.160541,0,3.4,0,0,0 +1,0,1,6.109248,6.160541,0,3.4,0,0,0 +2,0,1,6.109248,6.160541,0,3.4,0,0,0 +7,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,0,4.836282,0,1,10.3,0,0,0 +0,0,0,4.836282,0,1,10.3,0,0,0 +0,0,0,4.836282,0,1,10.3,0,0,0 +2,0,0,4.836282,0,1,10.3,0,0,0 +4,0,0,4.836282,0,1,10.3,0,0,0 +1,0,0,4.836282,0,0,13.8,0,0,0 +0,0,0,4.836282,0,0,13.8,0,0,0 +1,0,0,4.836282,0,0,13.8,0,0,0 +1,0,0,4.836282,0,0,13.8,0,0,0 +1,0,0,4.836282,0,0,13.8,0,0,0 +8,0,0,0,0,0,13.8,1,0,0 +6,0,0,0,0,0,13.8,1,0,0 +17,0,0,0,0,0,13.8,1,0,0 +0,3.931826,0,6.907755,7.600903,0,10.3,1,0,0 +4,3.931826,0,6.907755,7.600903,0,10.3,1,0,0 +3,3.931826,0,6.907755,7.600903,0,10.3,1,0,0 +8,3.931826,0,6.907755,7.600903,1,10.3,1,0,0 +4,3.931826,0,6.907755,7.600903,1,10.3,1,0,0 +4,3.931826,0,6.907755,7.600903,1,10.3,1,0,0 +1,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +3,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +1,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +2,3.931826,0,6.907755,7.600903,0,10.3,1,0,0 +0,3.931826,0,6.907755,7.600903,0,10.3,1,0,0 +0,3.931826,0,6.907755,7.600903,0,10.3,1,0,0 +1,0,0,0,0,0,3.4,0,0,0 +3,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +1,0,1,6.472594,5.755076,0,10.3,0,0,0 +0,0,1,6.472594,5.755076,0,10.3,0,0,0 +2,0,1,6.472594,5.755076,0,10.3,0,0,0 +4,0,1,6.472594,5.755076,0,0,0,0,0 +4,0,1,6.472594,5.755076,0,0,0,0,0 +2,0,1,6.472594,5.755076,0,0,0,0,0 +1,0,1,5.075674,5.061929,0,6.9,0,0,0 +7,0,1,5.075674,5.061929,0,6.9,0,0,0 +6,0,1,5.075674,5.061929,0,6.9,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +1,0,0,0,0,0,3.4,0,0,0 +3,0,0,0,0,0,3.4,0,0,0 +1,0,0,0,0,1,6.9,0,1,0 +1,0,0,0,0,1,6.9,0,1,0 +5,0,0,0,0,1,6.9,0,1,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +2,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +2,0,1,6.109248,6.160541,0,9.967326,0,0,0 +4,0,1,6.109248,6.160541,1,17.2,0,0,0 +2,0,1,6.109248,6.160541,1,17.2,0,0,0 +0,0,1,6.109248,6.160541,1,17.2,0,0,0 +3,0,1,6.109248,6.160541,1,17.2,0,0,0 +1,0,1,6.109248,6.160541,1,17.2,0,0,0 +1,0,1,6.109248,6.160541,0,10.3,0,0,0 +6,0,1,6.109248,6.160541,0,10.3,0,0,0 +5,0,1,6.109248,6.160541,0,10.3,0,0,0 +1,0,1,6.109248,6.160541,0,10.3,0,0,0 +3,0,1,6.109248,6.160541,0,10.3,0,0,0 +3,0,1,6.109248,6.160541,0,9.967326,0,0,0 +4,0,1,6.109248,6.160541,0,9.967326,0,0,0 +3,0,1,6.109248,6.160541,0,9.967326,0,0,0 +8,0,1,6.109248,6.160541,0,9.967326,0,0,0 +3,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,0,0,0,0,24.1,1,0,0 +0,0,0,0,0,0,24.1,1,0,0 +1,0,0,0,0,0,24.1,1,0,0 +2,0,0,0,0,0,3.4,0,0,0 +3,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +10,0,0,0,0,0,9.967326,0,0,0 +9,0,0,0,0,0,9.967326,0,0,0 +5,0,0,0,0,0,9.967326,0,0,0 +4,0,0,0,0,0,10.3,0,0,0 +1,0,0,0,0,0,10.3,0,0,0 +0,0,0,0,0,0,10.3,0,0,0 +4,0,0,5.676206,0,0,3.4,0,0,0 +3,0,0,5.676206,0,0,3.4,0,0,0 +6,0,0,5.676206,0,0,3.4,0,0,0 +6,0,0,5.676206,0,0,3.4,0,0,0 +5,0,0,5.676206,0,0,3.4,0,0,0 +2,0,0,5.676206,0,0,3.4,0,0,0 +0,0,0,5.676206,0,0,3.4,0,0,0 +5,0,0,5.676206,0,0,3.4,0,0,0 +3,0,0,5.676206,0,0,3.4,0,0,0 +7,0,0,5.676206,0,0,3.4,0,0,0 +3,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +2,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +7,4.564348,0,6.907755,6.959049,0,13.8,0,0,0 +3,4.564348,0,6.907755,6.959049,0,13.8,0,0,0 +1,4.564348,0,6.907755,6.959049,0,13.8,0,0,0 +4,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +1,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +1,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +2,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +3,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +1,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +1,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +2,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +1,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +2,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +2,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +3,0,1,6.109248,6.160541,0,9.967326,0,0,0 +2,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +5,0,1,6.109248,6.160541,1,3.4,1,0,0 +2,0,1,6.109248,6.160541,1,3.4,1,0,0 +3,0,1,6.109248,6.160541,1,3.4,1,0,0 +1,0,1,6.109248,6.160541,0,6.9,0,0,0 +1,0,1,6.109248,6.160541,0,6.9,0,0,0 +3,0,1,6.109248,6.160541,0,6.9,0,0,0 +4,0,1,5.998539,5.755076,0,3.4,1,0,0 +0,0,1,5.998539,5.755076,0,3.4,1,0,0 +1,0,1,5.998539,5.755076,0,3.4,1,0,0 +1,0,1,5.998539,5.755076,0,10.3,0,0,0 +1,0,1,5.998539,5.755076,0,10.3,0,0,0 +0,0,1,5.998539,5.755076,0,10.3,0,0,0 +3,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,9.967326,0,0,0 +2,0,0,0,0,0,13.8,0,0,0 +1,0,0,0,0,0,13.8,0,0,0 +3,0,0,0,0,0,13.8,0,0,0 +1,0,0,0,0,0,0,0,0,0 +1,0,0,0,0,0,0,0,0,0 +3,0,0,0,0,0,0,0,0,0 +2,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,9.967326,0,0,0 +2,0,0,0,0,0,9.967326,0,0,0 +1,0,1,5.676206,5.061929,0,10.3,0,0,0 +3,0,1,5.676206,5.061929,0,10.3,0,0,0 +6,0,1,5.676206,5.061929,0,10.3,0,0,0 +3,4.564348,0,0,5.061929,0,0,0,0,0 +1,4.564348,0,0,5.061929,0,0,0,0,0 +0,4.564348,0,0,5.061929,0,0,0,0,0 +2,4.564348,0,5.347107,5.398401,0,6.9,0,0,0 +2,4.564348,0,5.347107,5.398401,0,6.9,0,0,0 +7,4.564348,0,5.347107,5.398401,0,6.9,0,0,0 +0,4.564348,0,6.882438,6.959049,0,6.9,0,0,0 +0,4.564348,0,6.882438,6.959049,0,6.9,0,0,0 +0,4.564348,0,6.882438,6.959049,0,6.9,0,0,0 +0,4.564348,0,6.882438,6.959049,0,6.9,0,0,0 +0,4.564348,0,6.882438,6.959049,0,6.9,0,0,0 +3,4.564348,0,6.882438,6.959049,0,9.967326,0,0,0 +2,4.564348,0,6.882438,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.882438,6.959049,0,9.967326,0,0,0 +1,4.564348,0,6.882438,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.882438,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.882438,6.959049,0,9.967326,0,0,0 +2,4.564348,0,6.882438,6.959049,0,9.967326,0,0,0 +1,4.564348,0,6.882438,6.959049,0,9.967326,0,0,0 +3,4.564348,0,6.882438,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.882438,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.882438,6.959049,0,10.3,1,0,0 +7,4.564348,0,6.882438,6.959049,0,10.3,1,0,0 +0,4.564348,0,6.882438,6.959049,0,10.3,1,0,0 +2,4.564348,0,6.882438,6.959049,0,10.3,1,0,0 +0,4.564348,0,6.882438,6.959049,0,10.3,1,0,0 +1,4.564348,0,6.882438,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.882438,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.882438,6.959049,0,9.967326,0,0,0 +1,4.564348,0,6.882438,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.882438,6.959049,0,9.967326,0,0,0 +3,0,0,5.918894,0,0,13.8,0,0,0 +0,0,0,5.918894,0,0,13.8,0,0,0 +0,0,0,5.918894,0,0,13.8,0,0,0 +16,0,0,5.918894,0,0,9.967326,0,0,0 +40,0,0,5.918894,0,0,9.967326,0,0,0 +19,0,0,5.918894,0,0,9.967326,0,0,0 +7,0,0,5.918894,0,0,17.2,0,0,1 +5,0,0,5.918894,0,0,17.2,0,0,1 +0,0,0,5.918894,0,0,17.2,0,0,1 +1,0,1,5.703783,5.755076,0,3.4,0,0,0 +0,0,1,5.703783,5.755076,0,3.4,0,0,0 +7,0,1,5.703783,5.755076,0,3.4,0,0,0 +3,0,1,5.703783,5.755076,0,6.9,0,0,0 +1,0,1,5.703783,5.755076,0,6.9,0,0,0 +1,0,1,5.703783,5.755076,0,6.9,0,0,0 +3,0,0,5.824229,0,1,6.9,0,0,0 +1,0,0,5.824229,0,1,6.9,0,0,0 +2,0,0,5.824229,0,1,6.9,0,0,0 +1,0,0,5.824229,0,0,9.967326,0,0,0 +1,0,0,5.824229,0,0,9.967326,0,0,0 +2,0,0,5.824229,0,0,9.967326,0,0,0 +3,0,0,5.824229,0,0,3.4,0,0,0 +1,0,0,5.824229,0,0,3.4,0,0,0 +0,0,0,5.824229,0,0,3.4,0,0,0 +2,0,0,5.824229,0,0,9.967326,0,0,0 +1,0,0,5.824229,0,0,9.967326,0,0,0 +3,0,0,5.824229,0,0,9.967326,0,0,0 +1,0,0,5.532757,0,0,10.3,1,0,0 +2,0,0,5.532757,0,0,10.3,1,0,0 +1,0,0,5.532757,0,0,10.3,1,0,0 +2,0,0,5.532757,0,0,10.3,1,0,0 +3,0,0,5.532757,0,0,10.3,1,0,0 +2,0,1,5.010635,5.061929,0,10.3,1,0,0 +1,0,1,5.010635,5.061929,0,10.3,1,0,0 +0,0,1,5.010635,5.061929,0,10.3,1,0,0 +0,0,0,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0 +1,0,0,0,0,0,0,1,0,0 +2,0,0,0,0,0,9.967326,1,0,0 +0,0,0,0,0,0,9.967326,1,0,0 +0,0,0,0,0,0,9.967326,1,0,0 +0,0,0,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0 +1,0,0,0,0,0,10.3,1,0,0 +1,0,0,0,0,0,10.3,1,0,0 +2,0,0,0,0,0,10.3,1,0,0 +2,0,0,0,0,0,9.967326,1,0,0 +0,0,0,0,0,0,9.967326,1,0,0 +1,0,0,0,0,0,9.967326,1,0,0 +1,0,0,0,0,0,9.967326,1,0,0 +0,0,0,0,0,0,9.967326,1,0,0 +2,0,0,0,0,0,9.967326,1,0,0 +1,0,0,0,0,0,6.9,1,0,0 +0,0,0,0,0,0,6.9,1,0,0 +3,0,0,0,0,0,6.9,1,0,0 +3,0,1,5.703783,5.755076,0,10.3,0,0,0 +0,0,1,5.703783,5.755076,0,10.3,0,0,0 +4,0,1,5.703783,5.755076,0,10.3,0,0,0 +12,0,1,5.703783,5.755076,0,6.9,1,0,0 +5,0,1,5.703783,5.755076,0,6.9,1,0,0 +0,4.564348,0,6.427944,6.479237,0,6.9,0,0,0 +2,4.564348,0,6.427944,6.479237,0,9.967326,0,0,0 +1,4.564348,0,6.427944,6.479237,0,9.967326,0,0,0 +2,4.564348,0,6.427944,6.479237,0,9.967326,0,0,0 +0,4.564348,0,6.427944,6.479237,0,13.8,0,0,0 +0,0,1,6.109248,6.160541,1,6.9,1,0,0 +8,0,1,6.109248,6.160541,1,6.9,1,0,0 +16,0,1,6.109248,6.160541,1,6.9,1,0,0 +16,0,1,6.109248,6.160541,1,6.9,1,0,0 +4,0,1,6.109248,6.160541,1,6.9,1,0,0 +1,0,1,6.109248,6.160541,1,9.967326,0,0,0 +2,0,1,6.109248,6.160541,1,9.967326,0,0,0 +0,0,1,6.109248,6.160541,1,9.967326,0,0,0 +1,0,1,6.109248,6.160541,1,9.967326,0,0,0 +1,0,1,6.109248,6.160541,1,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,20.7,0,1,0 +1,0,1,6.109248,6.160541,0,20.7,0,1,0 +1,0,1,6.109248,6.160541,0,20.7,0,1,0 +0,0,1,6.109248,6.160541,0,20.7,0,1,0 +1,0,1,6.109248,6.160541,0,20.7,0,1,0 +4,0,1,6.109248,6.160541,0,9.967326,1,0,0 +3,0,1,6.109248,6.160541,0,9.967326,1,0,0 +0,0,1,6.109248,6.160541,0,9.967326,1,0,0 +4,0,1,6.109248,6.160541,0,9.967326,1,0,0 +0,0,1,6.109248,6.160541,0,9.967326,1,0,0 +3,0,1,6.109248,6.160541,0,9.967326,0,0,0 +2,0,1,6.109248,6.160541,0,9.967326,0,0,0 +4,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +2,0,1,6.109248,6.160541,0,9.967326,0,0,0 +3,0,1,6.109248,6.160541,0,9.967326,1,0,0 +1,0,1,6.109248,6.160541,0,9.967326,1,0,0 +2,0,1,6.109248,6.160541,0,9.967326,1,0,0 +1,0,1,6.109248,6.160541,0,9.967326,1,0,0 +0,0,1,6.109248,6.160541,0,9.967326,1,0,0 +18,0,1,0,5.755076,1,41.4,0,1,0 +11,0,1,0,5.755076,1,41.4,0,1,0 +3,0,1,0,5.755076,1,41.4,0,1,0 +2,0,1,0,5.755076,1,41.4,0,1,0 +1,0,1,0,5.755076,0,13.8,0,0,0 +1,0,1,0,5.755076,0,13.8,0,0,0 +6,0,1,0,5.755076,0,13.8,0,0,0 +4,0,1,0,5.755076,0,13.8,0,0,0 +1,0,1,0,5.755076,0,13.8,0,0,0 +3,0,1,7.122189,5.755076,0,17.2,1,0,0 +2,0,1,7.122189,5.755076,0,17.2,1,0,0 +2,0,1,7.122189,5.755076,0,17.2,1,0,0 +2,0,1,7.122189,5.755076,0,17.2,1,0,0 +0,0,1,7.122189,5.755076,0,17.2,1,0,0 +0,0,1,7.122189,5.755076,0,17.2,1,0,0 +3,3.258096,0,6.401469,7.787764,.1572505,9.967326,1,0,0 +1,3.258096,0,6.401469,7.787764,.1572505,9.967326,1,0,0 +3,3.258096,0,6.401469,7.787764,.1572505,9.967326,1,0,0 +4,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +1,0,1,6.109248,6.160541,0,3.4,0,0,0 +2,0,1,6.109248,6.160541,0,3.4,0,0,0 +2,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +4,3.258096,0,6.586172,8.006368,0,3.4,1,0,0 +0,3.258096,0,6.586172,8.006368,0,3.4,1,0,0 +4,3.258096,0,6.586172,8.006368,0,3.4,1,0,0 +0,3.258096,0,6.586172,8.006368,0,20.7,1,0,0 +4,3.258096,0,6.586172,8.006368,0,20.7,1,0,0 +4,3.258096,0,6.586172,8.006368,0,20.7,1,0,0 +1,0,0,0,0,0,6.9,0,0,0 +0,0,0,0,0,0,6.9,0,0,0 +1,0,0,0,0,0,6.9,0,0,0 +3,0,0,0,0,0,0,0,0,0 +1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0 +1,0,0,0,0,0,9.967326,1,0,0 +1,0,0,0,0,0,9.967326,1,0,0 +2,0,0,0,0,0,9.967326,1,0,0 +3,0,0,0,0,0,9.967326,1,0,0 +3,0,0,0,0,0,9.967326,1,0,0 +2,0,0,0,0,0,9.967326,1,0,0 +3,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +4,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,1,0,0 +0,0,1,6.109248,6.160541,0,3.4,1,0,0 +2,0,1,6.109248,6.160541,0,3.4,1,0,0 +7,0,1,6.109248,6.160541,1,24.1,1,0,0 +8,0,1,6.109248,6.160541,1,24.1,1,0,0 +5,0,1,6.109248,6.160541,1,24.1,1,0,0 +2,0,1,6.109248,6.160541,0,9.967326,0,0,0 +4,0,1,6.109248,6.160541,0,9.967326,0,0,0 +7,0,1,6.109248,6.160541,0,9.967326,0,0,0 +5,0,1,6.109248,6.160541,0,3.4,1,0,0 +6,0,1,6.109248,6.160541,0,3.4,1,0,0 +4,0,1,6.109248,6.160541,0,3.4,1,0,0 +4,0,1,6.109248,6.160541,0,9.967326,0,1,0 +5,0,1,6.109248,6.160541,0,9.967326,0,1,0 +3,0,1,6.109248,6.160541,0,9.967326,0,1,0 +5,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +5,0,1,6.109248,6.160541,0,9.967326,0,0,0 +2,0,1,6.109248,6.160541,0,27.6,0,0,1 +9,0,1,6.109248,6.160541,0,27.6,0,0,1 +4,0,1,6.109248,6.160541,0,27.6,0,0,1 +4,4.564348,0,6.907755,6.959049,1,10.3,0,0,0 +1,4.564348,0,6.907755,6.959049,1,10.3,0,0,0 +1,4.564348,0,6.907755,6.959049,1,10.3,0,0,0 +2,0,0,5.228324,0,0,6.9,1,0,0 +1,0,0,5.228324,0,0,6.9,1,0,0 +5,0,0,5.228324,0,0,6.9,1,0,0 +3,0,0,5.228324,0,0,6.9,1,0,0 +3,0,0,5.228324,0,0,6.9,1,0,0 +3,0,0,5.228324,0,0,6.9,1,0,0 +1,0,0,5.228324,0,0,3.4,0,0,0 +2,0,0,5.228324,0,0,3.4,0,0,0 +1,0,0,5.228324,0,0,3.4,0,0,0 +2,0,0,5.228324,0,0,9.967326,0,0,0 +2,0,0,5.228324,0,0,9.967326,0,0,0 +2,0,0,5.228324,0,0,9.967326,0,0,0 +0,0,0,5.228324,0,0,3.4,1,0,0 +2,0,0,5.228324,0,0,3.4,1,0,0 +1,0,0,5.228324,0,0,3.4,1,0,0 +0,0,0,5.228324,0,0,9.967326,0,0,0 +0,0,0,5.228324,0,0,9.967326,0,0,0 +2,0,0,5.228324,0,0,9.967326,0,0,0 +4,3.258096,0,6.620073,8.006368,1,27.6,1,0,0 +3,3.258096,0,6.620073,8.006368,1,27.6,1,0,0 +2,3.258096,0,6.620073,8.006368,1,27.6,1,0,0 +1,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +0,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +2,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +7,3.258096,0,6.620073,8.006368,0,9.967326,1,0,0 +3,3.258096,0,6.620073,8.006368,0,9.967326,1,0,0 +1,3.258096,0,6.620073,8.006368,0,9.967326,1,0,0 +4,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +2,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +0,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +0,3.258096,0,6.620073,8.006368,0,10.3,0,0,0 +0,3.258096,0,6.620073,8.006368,0,10.3,0,0,0 +0,3.258096,0,6.620073,8.006368,0,10.3,0,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.907755,6.959049,1,20.7,0,0,0 +0,4.564348,0,6.907755,6.959049,1,20.7,0,0,0 +0,4.564348,0,6.907755,6.959049,1,20.7,0,0,0 +1,4.564348,0,6.907755,6.959049,1,3.4,0,0,0 +1,4.564348,0,6.907755,6.959049,1,3.4,0,0,0 +1,4.564348,0,6.907755,6.959049,1,3.4,0,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +1,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +2,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +2,0,0,0,0,0,6.9,1,0,0 +3,0,0,0,0,0,6.9,1,0,0 +1,0,0,0,0,0,6.9,1,0,0 +5,0,0,0,0,0,6.9,1,0,0 +4,0,0,0,0,0,6.9,1,0,0 +1,0,0,0,0,0,13.8,1,0,0 +1,0,0,0,0,0,13.8,1,0,0 +1,0,0,0,0,0,13.8,1,0,0 +2,0,0,0,0,0,13.8,1,0,0 +2,0,0,0,0,0,13.8,1,0,0 +5,0,0,0,0,0,9.967326,0,0,0 +2,0,0,0,0,0,9.967326,0,0,0 +2,0,0,0,0,0,9.967326,0,0,0 +4,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +4,0,0,0,0,0,9.967326,1,0,0 +2,0,0,0,0,0,9.967326,1,0,0 +2,0,0,0,0,0,9.967326,1,0,0 +2,0,0,0,0,0,9.967326,1,0,0 +1,0,0,0,0,0,9.967326,1,0,0 +0,3.258096,0,5.010635,6.39693,0,9.967326,0,0,0 +9,3.258096,0,5.010635,6.39693,0,9.967326,0,0,0 +1,3.258096,0,5.010635,6.39693,0,9.967326,0,0,0 +1,3.258096,0,5.010635,6.39693,0,10.3,1,0,0 +2,3.258096,0,5.010635,6.39693,0,10.3,1,0,0 +6,3.258096,0,5.010635,6.39693,0,10.3,1,0,0 +1,3.258096,0,5.68358,7.069874,0,9.967326,0,0,0 +1,3.258096,0,5.68358,7.069874,0,9.967326,0,0,0 +1,3.258096,0,5.68358,7.069874,0,9.967326,0,0,0 +1,3.258096,0,5.68358,7.069874,0,9.967326,0,0,0 +5,3.258096,0,5.68358,7.069874,0,9.967326,0,0,0 +7,3.258096,0,5.68358,7.069874,1,13.8,1,0,0 +2,3.258096,0,5.68358,7.069874,1,13.8,1,0,0 +0,3.258096,0,5.68358,7.069874,1,13.8,1,0,0 +12,3.258096,0,5.68358,7.069874,1,13.8,1,0,0 +11,3.258096,0,5.68358,7.069874,1,13.8,1,0,0 +2,3.258096,0,5.68358,7.069874,0,17.2,0,0,0 +9,3.258096,0,5.68358,7.069874,0,17.2,0,0,0 +1,3.258096,0,5.68358,7.069874,0,17.2,0,0,0 +1,3.258096,0,5.68358,7.069874,0,9.967326,0,0,0 +0,3.258096,0,5.68358,7.069874,0,9.967326,0,0,0 +1,3.258096,0,5.68358,7.069874,0,9.967326,0,0,0 +2,3.258096,0,5.68358,7.069874,0,9.967326,0,0,0 +5,3.258096,0,5.68358,7.069874,0,9.967326,0,0,0 +7,3.258096,0,5.68358,7.069874,0,9.967326,0,0,0 +4,3.258096,0,5.68358,7.069874,0,9.967326,0,0,0 +1,3.258096,0,5.68358,7.069874,0,9.967326,0,0,0 +0,3.258096,0,5.68358,7.069874,0,9.967326,0,0,0 +2,3.258096,0,5.68358,7.069874,0,9.967326,0,0,0 +1,3.258096,0,5.68358,7.069874,0,9.967326,0,0,0 +0,3.258096,0,5.68358,7.069874,0,9.967326,0,0,0 +1,3.258096,0,5.68358,7.069874,0,9.967326,0,0,0 +3,3.258096,0,5.68358,7.069874,0,9.967326,0,0,0 +0,3.258096,0,5.68358,7.069874,0,9.967326,0,0,0 +0,3.258096,0,5.68358,7.069874,0,9.967326,0,0,0 +1,3.258096,0,5.68358,7.069874,0,9.967326,0,0,0 +3,3.258096,0,5.68358,7.069874,0,9.967326,0,0,0 +1,3.258096,0,5.68358,7.069874,0,9.967326,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +3,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +4,4.564348,0,6.907755,6.959049,1,3.4,1,0,0 +5,4.564348,0,6.907755,6.959049,1,3.4,1,0,0 +3,4.564348,0,6.907755,6.959049,1,3.4,1,0,0 +5,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +5,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +1,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +2,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +4,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +0,0,1,5.676206,5.755076,0,9.967326,0,0,0 +2,0,1,5.676206,5.755076,0,9.967326,0,0,0 +5,0,1,5.676206,5.755076,0,9.967326,0,0,0 +6,0,1,5.676206,5.755076,0,13.8,0,0,0 +5,0,1,5.676206,5.755076,0,13.8,0,0,0 +0,0,1,5.676206,5.755076,0,13.8,0,0,0 +6,0,1,5.676206,5.755076,0,9.967326,0,0,0 +3,0,1,5.676206,5.755076,0,9.967326,0,0,0 +1,0,1,5.676206,5.755076,0,9.967326,0,0,0 +1,3.258096,0,6.619806,8.006368,0,9.967326,1,0,0 +1,3.258096,0,6.619806,8.006368,0,9.967326,1,0,0 +0,3.258096,0,6.619806,8.006368,0,9.967326,1,0,0 +1,3.258096,0,6.619806,8.006368,0,9.967326,1,0,0 +1,3.258096,0,6.619806,8.006368,0,9.967326,1,0,0 +2,3.258096,0,6.619806,8.006368,0,9.967326,1,0,0 +2,3.258096,0,6.619806,8.006368,0,9.967326,1,0,0 +1,3.258096,0,6.619806,8.006368,0,9.967326,1,0,0 +8,3.258096,0,6.619806,8.006368,0,9.967326,1,0,0 +4,3.258096,0,6.619806,8.006368,0,9.967326,1,0,0 +1,3.258096,0,6.619806,8.006368,0,10.3,0,0,0 +2,3.258096,0,6.619806,8.006368,0,10.3,0,0,0 +7,3.258096,0,6.619806,8.006368,0,10.3,0,0,0 +1,3.258096,0,6.619806,8.006368,0,10.3,0,0,0 +2,3.258096,0,6.619806,8.006368,0,10.3,0,0,0 +1,3.258096,0,6.619806,8.006368,0,0,0,0,0 +3,3.258096,0,6.619806,8.006368,0,0,0,0,0 +3,3.258096,0,6.619806,8.006368,0,0,0,0,0 +0,3.258096,0,6.619806,8.006368,0,0,0,0,0 +2,3.258096,0,6.619806,8.006368,0,0,0,0,0 +1,0,0,0,0,0,9.967326,1,0,0 +6,0,0,0,0,0,9.967326,1,0,0 +1,0,0,0,0,0,9.967326,1,0,0 +3,0,0,0,0,0,0,1,0,0 +4,0,0,0,0,0,0,1,0,0 +3,0,0,0,0,0,0,1,0,0 +3,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +2,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +3,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +2,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +4,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +8,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +1,3.258096,0,6.620073,8.006368,1,0,0,0,0 +1,3.258096,0,6.620073,8.006368,1,0,0,0,0 +5,3.258096,0,6.620073,8.006368,1,0,0,0,0 +5,3.258096,0,6.620073,8.006368,0,13.8,0,0,0 +2,3.258096,0,6.620073,8.006368,0,13.8,0,0,0 +3,3.258096,0,6.620073,8.006368,0,13.8,0,0,0 +6,0,0,3.401197,0,0,37.9,1,0,0 +3,0,0,3.401197,0,0,37.9,1,0,0 +0,0,0,3.401197,0,0,37.9,1,0,0 +3,0,0,3.401197,0,0,37.9,1,0,0 +5,0,0,3.401197,0,0,37.9,1,0,0 +3,0,0,3.401197,0,0,9.967326,0,0,0 +4,0,0,3.401197,0,0,9.967326,0,0,0 +0,0,0,3.401197,0,0,9.967326,0,0,0 +1,0,0,3.401197,0,0,9.967326,0,0,0 +1,0,0,3.401197,0,0,9.967326,0,0,0 +1,0,0,3.401197,0,0,9.967326,0,0,0 +0,0,0,3.401197,0,0,9.967326,0,0,0 +0,0,0,3.401197,0,0,9.967326,0,0,0 +1,0,0,3.401197,0,0,9.967326,0,0,0 +1,0,0,3.401197,0,0,9.967326,0,0,0 +1,0,0,3.401197,0,0,0,0,0,0 +1,0,0,3.401197,0,0,0,0,0,0 +6,0,0,3.401197,0,0,6.9,1,0,0 +1,0,0,3.401197,0,0,6.9,1,0,0 +1,0,0,3.401197,0,0,6.9,1,0,0 +0,0,0,3.401197,0,0,6.9,1,0,0 +4,0,0,3.401197,0,0,6.9,1,0,0 +1,0,0,5.852202,0,0,20.7,1,0,0 +1,0,0,5.852202,0,0,20.7,1,0,0 +4,0,0,5.852202,0,0,20.7,1,0,0 +3,0,0,5.852202,0,0,20.7,1,0,0 +0,0,0,5.852202,0,0,20.7,1,0,0 +1,0,0,0,0,0,6.9,1,0,0 +1,0,0,0,0,0,6.9,1,0,0 +2,0,0,0,0,0,6.9,1,0,0 +1,0,0,0,0,0,10.3,1,0,0 +5,0,0,0,0,0,10.3,1,0,0 +5,0,0,0,0,0,10.3,1,0,0 +3,0,0,0,0,0,9.967326,1,0,0 +2,0,0,0,0,0,9.967326,1,0,0 +0,0,0,0,0,0,9.967326,1,0,0 +2,0,0,5.321057,0,0,9.967326,0,0,0 +2,0,0,5.321057,0,0,9.967326,0,0,0 +1,0,0,5.321057,0,0,9.967326,0,0,0 +3,0,0,5.321057,0,0,9.967326,0,0,0 +3,0,0,5.321057,0,0,9.967326,0,0,0 +3,0,0,5.321057,0,0,9.967326,0,0,0 +4,0,0,5.321057,0,0,3.4,0,0,0 +0,0,0,5.321057,0,0,3.4,0,0,0 +7,0,0,5.321057,0,0,3.4,0,0,0 +3,0,0,5.321057,0,0,3.4,0,0,0 +1,0,0,5.321057,0,0,3.4,0,0,0 +2,0,0,5.321057,0,0,3.4,0,0,0 +3,0,1,5.703783,5.755076,0,9.967326,1,0,0 +5,0,1,5.703783,5.755076,0,9.967326,1,0,0 +8,0,1,5.703783,5.755076,0,9.967326,1,0,0 +1,0,1,5.703783,5.755076,0,17.2,0,0,0 +2,0,1,5.703783,5.755076,0,17.2,0,0,0 +0,0,1,5.703783,5.755076,0,17.2,0,0,0 +4,4.564348,0,5.774551,5.825845,0,9.967326,0,0,1 +7,4.564348,0,5.774551,5.825845,0,9.967326,0,0,1 +5,4.564348,0,5.774551,5.825845,0,9.967326,0,0,1 +0,4.564348,0,5.774551,5.825845,0,10.3,0,0,0 +4,4.564348,0,5.774551,5.825845,0,10.3,0,0,0 +4,4.564348,0,5.774551,5.825845,0,10.3,0,0,0 +1,4.564348,0,5.774551,5.825845,0,9.967326,1,0,0 +3,4.564348,0,5.774551,5.825845,0,9.967326,1,0,0 +2,4.564348,0,5.774551,5.825845,0,9.967326,1,0,0 +3,0,0,0,0,1,9.967326,0,0,0 +8,0,0,0,0,1,9.967326,0,0,0 +4,0,0,0,0,1,9.967326,0,0,0 +6,0,0,0,0,0,9.967326,0,0,0 +6,0,0,0,0,0,9.967326,0,0,0 +4,0,0,0,0,0,9.967326,0,0,0 +3,0,0,0,0,0,31,1,0,0 +3,0,0,0,0,0,31,1,0,0 +3,0,0,0,0,0,31,1,0,0 +7,0,0,0,0,0,9.967326,0,0,0 +8,0,0,0,0,0,9.967326,0,0,0 +5,0,0,0,0,0,9.967326,0,0,0 +4,0,0,0,0,0,9.967326,0,0,0 +7,0,0,0,0,0,9.967326,0,0,0 +2,0,0,0,0,0,9.967326,0,0,0 +3,0,0,0,0,1,24.1,0,1,0 +7,0,0,0,0,1,24.1,0,1,0 +30,0,0,0,0,1,24.1,0,1,0 +2,3.258096,0,6.26957,7.702105,0,9.967326,1,0,0 +4,3.258096,0,6.26957,7.702105,0,9.967326,1,0,0 +2,3.258096,0,6.26957,7.702105,0,9.967326,1,0,0 +3,3.258096,0,6.26957,7.702105,0,9.967326,1,0,0 +9,3.258096,0,6.26957,7.702105,0,9.967326,1,0,0 +2,3.258096,0,6.26957,7.702105,0,9.967326,1,0,0 +4,3.258096,0,6.26957,7.702105,0,9.967326,1,0,0 +2,3.258096,0,6.26957,7.702105,0,9.967326,1,0,0 +1,3.258096,0,6.26957,7.702105,0,9.967326,1,0,0 +1,3.258096,0,6.26957,7.702105,0,9.967326,1,0,0 +1,3.258096,0,6.26957,7.702105,1,13.8,1,0,0 +2,3.258096,0,6.26957,7.702105,1,13.8,1,0,0 +6,3.258096,0,6.26957,7.702105,1,13.8,1,0,0 +1,3.258096,0,6.26957,7.702105,1,13.8,1,0,0 +5,3.258096,0,6.26957,7.702105,1,13.8,1,0,0 +0,3.258096,0,6.26957,7.702105,0,0,1,0,0 +0,3.258096,0,6.26957,7.702105,0,0,1,0,0 +0,3.258096,0,6.26957,7.702105,0,0,1,0,0 +0,3.258096,0,6.26957,7.702105,0,0,1,0,0 +0,3.258096,0,6.26957,7.702105,0,0,1,0,0 +16,4.564348,0,6.907755,6.959049,1,24.1,0,1,0 +5,4.564348,0,6.907755,6.959049,1,24.1,0,1,0 +9,4.564348,0,6.907755,6.959049,1,24.1,0,1,0 +1,4.564348,0,6.907755,6.959049,0,37.9,0,1,0 +6,4.564348,0,6.907755,6.959049,0,37.9,0,1,0 +1,4.564348,0,6.907755,6.959049,0,37.9,0,1,0 +4,3.258096,0,6.620073,8.006368,0,0,0,0,0 +2,3.258096,0,6.620073,8.006368,0,0,0,0,0 +1,3.258096,0,6.620073,8.006368,0,0,0,0,0 +0,0,0,5.480639,0,0,6.9,0,0,0 +0,0,0,5.480639,0,0,6.9,0,0,0 +0,0,0,5.480639,0,0,6.9,0,0,0 +3,0,0,5.480639,0,0,3.4,0,0,0 +1,0,0,5.480639,0,0,3.4,0,0,0 +9,0,0,5.480639,0,0,3.4,0,0,0 +2,0,0,5.480639,0,0,13.8,0,0,0 +0,0,0,5.480639,0,0,13.8,0,0,0 +1,0,0,5.480639,0,0,13.8,0,0,0 +0,0,0,5.480639,0,0,9.967326,0,0,0 +0,0,0,5.480639,0,0,9.967326,0,0,0 +1,0,0,5.480639,0,0,9.967326,0,0,0 +2,0,0,5.480639,0,0,6.9,0,0,0 +1,0,0,5.480639,0,0,6.9,0,0,0 +0,0,0,5.480639,0,0,6.9,0,0,0 +2,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +1,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +1,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +0,3.258096,0,6.620073,8.006368,0,24.1,0,0,0 +3,3.258096,0,6.620073,8.006368,0,24.1,0,0,0 +0,3.258096,0,6.620073,8.006368,0,24.1,0,0,0 +3,3.258096,0,6.620073,8.006368,0,17.2,0,0,0 +2,3.258096,0,6.620073,8.006368,0,17.2,0,0,0 +2,3.258096,0,6.620073,8.006368,0,17.2,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +4,0,1,6.109248,6.160541,0,9.967326,0,0,0 +2,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +4,0,1,6.109248,6.160541,0,24.1,0,0,0 +1,0,1,6.109248,6.160541,0,24.1,0,0,0 +1,0,1,6.109248,6.160541,0,24.1,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +2,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,20.7,1,0,0 +2,0,1,6.109248,6.160541,0,20.7,1,0,0 +8,0,1,6.109248,6.160541,0,20.7,1,0,0 +1,0,1,6.109248,6.160541,0,3.4,0,0,0 +1,0,1,6.109248,6.160541,0,3.4,0,0,0 +1,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +2,0,1,6.109248,6.160541,1,13.8,1,0,0 +3,0,1,6.109248,6.160541,1,13.8,1,0,0 +2,0,1,6.109248,6.160541,1,13.8,1,0,0 +0,0,1,6.109248,6.160541,1,13.8,1,0,0 +0,0,1,6.109248,6.160541,1,13.8,1,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,27.6,1,0,0 +0,0,1,6.109248,6.160541,0,27.6,1,0,0 +0,0,1,6.109248,6.160541,0,27.6,1,0,0 +2,0,1,6.109248,6.160541,0,27.6,1,0,0 +0,0,1,6.109248,6.160541,0,27.6,1,0,0 +0,0,1,6.109248,6.160541,1,9.967326,0,1,0 +2,0,1,6.109248,6.160541,1,9.967326,0,1,0 +0,0,1,6.109248,6.160541,1,9.967326,0,1,0 +3,0,1,6.109248,6.160541,1,9.967326,0,1,0 +1,0,1,6.109248,6.160541,1,9.967326,0,1,0 +2,0,0,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0 +2,0,0,0,0,0,0,1,0,0 +5,0,0,0,0,0,0,1,0,0 +3,0,0,0,0,0,0,1,0,0 +2,0,0,0,0,0,13.8,0,0,0 +1,0,0,0,0,0,13.8,0,0,0 +0,0,0,0,0,0,13.8,0,0,0 +4,0,0,0,0,0,13.8,0,0,0 +3,0,0,0,0,0,13.8,0,0,0 +19,0,0,0,0,0,24.1,1,0,0 +14,0,0,0,0,0,24.1,1,0,0 +4,0,0,0,0,0,24.1,1,0,0 +8,0,0,0,0,0,24.1,1,0,0 +6,0,0,0,0,0,24.1,1,0,0 +2,0,1,6.109248,6.160541,0,6.9,0,0,0 +1,0,1,6.109248,6.160541,0,6.9,0,0,0 +0,0,1,6.109248,6.160541,0,6.9,0,0,0 +1,0,1,6.109248,6.160541,0,6.9,0,0,0 +0,0,1,6.109248,6.160541,0,6.9,0,0,0 +2,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +2,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +1,0,1,6.109248,6.160541,0,3.4,0,0,0 +1,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +3,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +4,3.258096,0,5.858676,7.24497,1,3.4,0,0,0 +5,3.258096,0,5.858676,7.24497,1,3.4,0,0,0 +4,3.258096,0,5.858676,7.24497,1,3.4,0,0,0 +0,3.931826,0,6.907935,7.600903,0,13.8,0,0,0 +3,3.931826,0,6.907935,7.600903,0,13.8,0,0,0 +1,3.931826,0,6.907935,7.600903,0,13.8,0,0,0 +4,3.931826,0,6.907935,7.600903,0,13.8,0,0,0 +2,3.931826,0,6.907935,7.600903,0,13.8,0,0,0 +3,3.931826,0,6.907935,7.600903,0,9.967326,0,0,0 +1,3.931826,0,6.907935,7.600903,0,9.967326,0,0,0 +6,3.931826,0,6.907935,7.600903,0,9.967326,0,0,0 +3,3.931826,0,6.907935,7.600903,0,9.967326,0,0,0 +4,3.931826,0,6.907935,7.600903,0,9.967326,0,0,0 +6,3.931826,0,6.907935,7.600903,0,9.967326,0,0,0 +3,3.931826,0,6.907935,7.600903,0,9.967326,0,0,0 +3,3.931826,0,6.907935,7.600903,0,9.967326,0,0,0 +6,3.931826,0,6.907935,7.600903,0,9.967326,0,0,0 +1,3.931826,0,6.907935,7.600903,0,9.967326,0,0,0 +2,3.931826,0,6.907935,7.600903,0,3.4,0,0,0 +5,3.931826,0,6.907935,7.600903,0,3.4,0,0,0 +2,3.931826,0,6.907935,7.600903,0,3.4,0,0,0 +5,3.931826,0,6.907935,7.600903,0,3.4,0,0,0 +3,3.931826,0,6.907935,7.600903,0,3.4,0,0,0 +3,3.258096,0,6.620073,8.006368,0,17.2,1,0,0 +2,3.258096,0,6.620073,8.006368,0,17.2,1,0,0 +2,3.258096,0,6.620073,8.006368,0,17.2,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.3,1,0,0 +1,3.258096,0,6.620073,8.006368,0,10.3,1,0,0 +1,3.258096,0,6.620073,8.006368,0,10.3,1,0,0 +4,3.258096,0,5.294309,7.156956,0,27.6,1,0,0 +2,3.258096,0,5.294309,7.156956,0,27.6,1,0,0 +3,3.258096,0,5.294309,7.156956,0,27.6,1,0,0 +3,3.258096,0,5.294309,7.156956,0,10.3,0,0,0 +3,3.258096,0,5.294309,7.156956,0,10.3,0,0,0 +5,3.258096,0,5.294309,7.156956,0,10.3,0,0,0 +2,4.564348,0,6.907755,6.959049,0,9.967326,1,0,0 +1,4.564348,0,6.907755,6.959049,0,9.967326,1,0,0 +2,4.564348,0,6.907755,6.959049,0,9.967326,1,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,1,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,1,0,0 +1,4.564348,0,6.907755,6.959049,0,3.4,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.3,1,0,0 +6,4.564348,0,6.907755,6.959049,0,10.3,1,0,0 +2,4.564348,0,6.907755,6.959049,0,10.3,1,0,0 +13,0,0,5.989262,0,1,13.8,1,0,0 +5,0,0,5.989262,0,1,13.8,1,0,0 +2,0,0,5.989262,0,1,13.8,1,0,0 +4,0,0,5.989262,0,0,6.9,1,0,0 +0,0,0,5.989262,0,0,6.9,1,0,0 +2,0,0,5.989262,0,0,6.9,1,0,0 +10,0,0,0,0,1,17.2,1,0,0 +4,0,0,0,0,1,17.2,1,0,0 +1,0,0,0,0,1,17.2,1,0,0 +5,0,0,0,0,0,13.8,0,0,0 +2,0,0,0,0,0,13.8,0,0,0 +1,0,0,0,0,0,13.8,0,0,0 +2,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,9.967326,0,0,0 +7,0,0,0,0,0,6.9,0,0,0 +4,0,0,0,0,0,6.9,0,0,0 +4,0,0,0,0,0,6.9,0,0,0 +13,0,0,0,0,0,6.9,0,0,0 +3,0,0,0,0,0,6.9,0,0,0 +1,0,0,0,0,0,6.9,0,0,0 +6,0,0,0,0,0,6.9,0,0,0 +0,0,0,0,0,0,6.9,0,0,0 +4,0,0,0,0,0,6.9,0,0,0 +2,0,0,0,0,0,9.967326,0,0,0 +2,0,0,0,0,0,9.967326,0,0,0 +4,0,0,0,0,0,9.967326,0,0,0 +5,0,0,0,0,0,9.967326,0,0,0 +6,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,9.967326,0,0,0 +2,4.564348,0,6.372978,6.424272,0,3.4,1,0,0 +1,4.564348,0,6.372978,6.424272,0,3.4,1,0,0 +0,4.564348,0,6.372978,6.424272,0,3.4,1,0,0 +1,4.564348,0,6.372978,6.424272,0,3.4,1,0,0 +1,4.564348,0,6.372978,6.424272,0,3.4,1,0,0 +2,4.564348,0,6.372978,6.424272,0,17.2,1,0,0 +2,4.564348,0,6.372978,6.424272,0,17.2,1,0,0 +1,4.564348,0,6.372978,6.424272,0,17.2,1,0,0 +1,4.564348,0,6.372978,6.424272,0,17.2,1,0,0 +1,4.564348,0,6.372978,6.424272,0,17.2,1,0,0 +3,4.564348,0,6.372978,6.424272,0,9.967326,0,0,0 +2,4.564348,0,6.372978,6.424272,0,9.967326,0,0,0 +3,4.564348,0,6.372978,6.424272,0,9.967326,0,0,0 +4,4.564348,0,6.372978,6.424272,0,9.967326,0,0,0 +2,4.564348,0,6.372978,6.424272,0,9.967326,0,0,0 +0,3.931826,0,5.518898,5.442418,0,6.9,0,0,0 +0,3.931826,0,5.518898,5.442418,0,6.9,0,0,0 +1,3.931826,0,5.518898,5.442418,0,6.9,0,0,0 +2,0,1,0,5.061929,0,20.7,1,0,0 +3,0,1,0,5.061929,0,20.7,1,0,0 +0,0,1,0,5.061929,0,20.7,1,0,0 +3,4.564348,0,6.907755,6.959049,0,0,0,0,0 +1,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +1,0,0,0,0,0,0,0,0,0 +1,0,0,0,0,0,0,0,0,0 +8,0,0,0,0,0,0,0,0,0 +2,0,0,0,0,0,6.9,1,0,0 +2,0,0,0,0,0,6.9,1,0,0 +1,0,0,0,0,0,6.9,1,0,0 +1,0,0,0,0,0,9.967326,1,0,0 +2,0,0,0,0,0,9.967326,1,0,0 +4,0,0,0,0,0,9.967326,1,0,0 +4,0,0,0,0,1,24.1,1,0,0 +3,0,0,0,0,1,24.1,1,0,0 +7,0,0,0,0,1,24.1,1,0,0 +4,0,0,0,0,0,3.4,1,0,0 +1,0,0,0,0,0,3.4,1,0,0 +8,0,0,0,0,0,3.4,1,0,0 +2,4.564348,0,6.836635,6.887928,0,27.6,1,0,0 +0,4.564348,0,6.836635,6.887928,0,27.6,1,0,0 +4,4.564348,0,6.836635,6.887928,0,6.9,1,0,0 +3,4.564348,0,6.836635,6.887928,0,6.9,1,0,0 +0,4.564348,0,6.802395,6.853688,0,10.3,0,0,0 +1,4.564348,0,6.802395,6.853688,0,10.3,0,0,0 +0,4.564348,0,6.802395,6.853688,0,10.3,0,0,0 +0,4.564348,0,6.802395,6.853688,0,10.3,0,0,0 +0,4.564348,0,6.802395,6.853688,0,10.3,0,0,0 +2,0,1,6.109248,6.160541,0,6.9,0,0,0 +5,0,1,6.109248,6.160541,0,6.9,0,0,0 +5,0,1,6.109248,6.160541,0,6.9,0,0,0 +2,0,1,6.109248,6.160541,0,9.967326,0,0,0 +2,0,1,6.109248,6.160541,0,9.967326,0,0,0 +3,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +3,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +2,0,1,6.109248,6.160541,0,9.967326,0,0,0 +3,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,6.9,0,0,0 +1,0,1,6.109248,6.160541,0,6.9,0,0,0 +0,0,1,6.109248,6.160541,0,6.9,0,0,0 +1,4.564348,0,6.365267,6.41656,0,9.967326,0,1,0 +1,4.564348,0,6.365267,6.41656,0,9.967326,0,1,0 +0,4.564348,0,6.365267,6.41656,0,9.967326,0,1,0 +0,4.564348,0,6.365267,6.41656,0,3.4,1,0,0 +0,4.564348,0,6.365267,6.41656,0,3.4,1,0,0 +1,4.564348,0,6.365267,6.41656,0,3.4,1,0,0 +0,4.564348,0,6.365267,6.41656,0,9.967326,1,0,0 +0,4.564348,0,6.365267,6.41656,0,9.967326,1,0,0 +0,4.564348,0,6.365267,6.41656,0,9.967326,1,0,0 +2,4.564348,0,6.365267,6.41656,0,3.4,0,0,0 +0,4.564348,0,6.365267,6.41656,0,3.4,0,0,0 +0,4.564348,0,6.365267,6.41656,0,3.4,0,0,0 +4,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +3,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +4,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +6,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +1,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +6,3.258096,0,6.620073,8.006368,0,13.8,0,0,0 +0,3.258096,0,6.620073,8.006368,0,13.8,0,0,0 +1,3.258096,0,6.620073,8.006368,0,13.8,0,0,0 +0,3.258096,0,6.620073,8.006368,0,13.8,0,0,0 +4,3.258096,0,6.620073,8.006368,0,13.8,0,0,0 +4,3.258096,0,0,6.877296,0,0,0,0,0 +9,3.258096,0,0,6.877296,0,0,0,0,0 +8,3.258096,0,0,6.877296,0,0,0,0,0 +1,0,0,5.154216,0,0,3.4,0,0,0 +0,0,0,5.154216,0,0,3.4,0,0,0 +2,0,0,5.154216,0,0,3.4,0,0,0 +0,0,0,5.154216,0,0,3.4,0,0,0 +0,0,0,5.154216,0,0,3.4,0,0,0 +0,0,0,5.154216,0,0,3.4,0,0,0 +5,0,0,5.154216,0,0,3.4,0,0,0 +4,0,0,5.154216,0,0,3.4,0,0,0 +2,0,0,5.154216,0,0,6.9,0,0,0 +0,0,0,5.154216,0,0,6.9,0,0,0 +0,0,0,5.154216,0,0,9.967326,0,0,0 +0,0,0,5.154216,0,0,9.967326,0,0,0 +1,0,0,5.154216,0,0,9.967326,0,0,0 +2,3.258096,0,6.586172,8.006368,0,10.3,0,0,0 +10,3.258096,0,6.586172,8.006368,0,10.3,0,0,0 +1,3.258096,0,6.586172,8.006368,0,10.3,0,0,0 +3,3.258096,0,6.586172,8.006368,0,13.8,1,0,0 +0,3.258096,0,6.586172,8.006368,0,13.8,1,0,0 +7,0,1,6.823765,6.160541,0,9.967326,0,0,0 +3,0,1,6.823765,6.160541,0,9.967326,0,0,0 +3,0,1,6.823765,6.160541,0,9.967326,0,0,0 +4,0,1,6.823765,6.160541,1,24.1,1,0,0 +7,0,1,6.823765,6.160541,1,24.1,1,0,0 +4,0,1,6.823765,6.160541,1,24.1,1,0,0 +2,0,1,6.823765,6.160541,0,13.8,0,0,0 +1,0,1,6.823765,6.160541,0,13.8,0,0,0 +0,0,1,6.823765,6.160541,0,13.8,0,0,0 +2,0,0,6.218202,0,0,10.3,0,0,0 +0,0,0,6.218202,0,0,10.3,0,0,0 +1,0,0,6.218202,0,0,10.3,0,0,0 +3,0,0,6.218202,0,0,6.9,1,0,0 +5,0,0,6.218202,0,0,6.9,1,0,0 +0,0,0,6.218202,0,0,6.9,1,0,0 +2,3.931826,0,0,7.600903,0,9.967326,1,0,0 +1,3.931826,0,0,7.600903,0,9.967326,1,0,0 +4,3.931826,0,0,7.600903,0,9.967326,1,0,0 +1,3.931826,0,0,7.600903,0,9.967326,1,0,0 +0,3.931826,0,0,7.600903,0,9.967326,1,0,0 +1,3.931826,0,0,7.600903,0,9.967326,1,0,0 +1,3.931826,0,0,7.600903,0,9.967326,1,0,0 +1,3.931826,0,0,7.600903,0,9.967326,1,0,0 +2,3.931826,0,0,7.600903,0,9.967326,1,0,0 +1,3.931826,0,0,7.600903,0,9.967326,1,0,0 +14,3.931826,0,0,7.600903,0,10.3,0,1,0 +15,3.931826,0,0,7.600903,0,10.3,0,1,0 +16,3.931826,0,0,7.600903,0,10.3,0,1,0 +41,3.931826,0,0,7.600903,0,10.3,0,1,0 +7,3.931826,0,0,7.600903,0,6.9,1,0,0 +4,3.931826,0,0,7.600903,0,6.9,1,0,0 +0,3.931826,0,0,7.600903,0,6.9,1,0,0 +5,3.931826,0,0,7.600903,0,6.9,1,0,0 +4,3.931826,0,0,7.600903,0,6.9,1,0,0 +2,3.931826,0,0,7.600903,0,9.967326,1,0,0 +1,3.931826,0,0,7.600903,0,9.967326,1,0,0 +2,3.931826,0,0,7.600903,0,9.967326,1,0,0 +1,3.931826,0,0,7.600903,0,9.967326,1,0,0 +5,3.931826,0,0,7.600903,0,9.967326,1,0,0 +1,3.931826,0,0,7.600903,0,3.4,1,0,0 +2,3.931826,0,0,7.600903,0,3.4,1,0,0 +2,3.931826,0,0,7.600903,0,3.4,1,0,0 +0,3.931826,0,0,7.600903,0,3.4,1,0,0 +1,3.931826,0,0,7.600903,0,3.4,1,0,0 +0,0,0,6.200184,0,0,9.967326,0,0,0 +4,0,0,6.200184,0,0,9.967326,0,0,0 +0,0,0,6.200184,0,0,9.967326,0,0,0 +4,0,0,6.200184,0,0,9.967326,0,0,0 +1,0,0,6.200184,0,0,9.967326,0,0,0 +4,0,0,6.200184,0,0,9.967326,0,0,0 +3,0,0,6.200184,0,0,9.967326,0,0,0 +2,0,0,6.200184,0,0,9.967326,0,0,0 +3,0,0,6.200184,0,0,9.967326,0,0,0 +0,0,0,6.200184,0,0,9.967326,0,0,0 +1,0,0,6.200184,0,0,9.967326,0,0,0 +8,0,0,6.200184,0,0,9.967326,0,0,0 +2,0,0,6.200184,0,0,9.967326,0,0,0 +0,0,0,6.200184,0,0,9.967326,0,0,0 +4,0,0,6.200184,0,0,9.967326,0,0,0 +2,0,0,6.200184,0,0,10.3,0,1,0 +7,0,0,6.200184,0,0,10.3,0,1,0 +2,0,0,6.200184,0,0,10.3,0,1,0 +1,0,0,6.200184,0,0,10.3,0,1,0 +3,0,0,6.200184,0,0,10.3,0,1,0 +4,0,0,6.200184,0,1,6.9,0,0,0 +0,0,0,6.200184,0,1,6.9,0,0,0 +1,0,0,6.200184,0,1,6.9,0,0,0 +1,0,0,6.200184,0,1,6.9,0,0,0 +6,0,0,6.200184,0,1,6.9,0,0,0 +2,0,0,5.198276,0,0,6.9,0,0,0 +6,0,0,5.198276,0,0,6.9,0,0,0 +3,0,0,5.198276,0,0,6.9,0,0,0 +2,0,0,5.198276,0,0,6.9,0,0,0 +2,0,0,5.198276,0,0,6.9,0,0,0 +0,0,0,5.198276,0,0,13.8,0,0,0 +0,0,0,5.198276,0,0,13.8,0,0,0 +4,0,0,5.198276,0,0,13.8,0,0,0 +0,0,0,5.198276,0,0,13.8,0,0,0 +1,0,0,5.198276,0,0,13.8,0,0,0 +24,0,0,5.991664,0,0,9.967326,0,0,0 +6,0,0,5.991664,0,0,9.967326,0,0,0 +5,0,0,5.991664,0,0,9.967326,0,0,0 +5,0,0,5.991664,0,0,9.967326,0,0,0 +7,0,0,5.991664,0,0,9.967326,0,0,0 +0,0,0,5.991664,0,0,6.9,0,0,0 +0,0,0,5.991664,0,0,6.9,0,0,0 +0,0,0,5.991664,0,0,6.9,0,0,0 +1,0,0,5.991664,0,0,6.9,0,0,0 +0,0,0,5.991664,0,0,6.9,0,0,0 +3,0,0,5.991664,0,0,9.967326,0,0,0 +1,0,0,5.991664,0,0,9.967326,0,0,0 +5,0,0,5.991664,0,0,9.967326,0,0,0 +2,0,0,5.991664,0,0,9.967326,0,0,0 +1,0,0,5.991664,0,0,9.967326,0,0,0 +8,0,0,5.991664,0,0,27.6,0,0,0 +5,0,0,5.991664,0,0,27.6,0,0,0 +4,0,0,5.991664,0,0,27.6,0,0,0 +3,0,0,5.991664,0,0,27.6,0,0,0 +4,0,0,5.991664,0,0,27.6,0,0,0 +0,4.564348,0,0,3.592253,0,6.9,0,0,0 +0,4.564348,0,0,3.592253,0,6.9,0,0,0 +1,4.564348,0,0,3.592253,0,6.9,0,0,0 +0,3.931826,0,0,7.185387,0,0,0,0,0 +2,3.931826,0,0,7.185387,0,0,0,0,0 +0,3.931826,0,0,7.185387,0,0,0,0,0 +0,3.931826,0,6.907755,7.600903,0,6.9,0,0,0 +1,3.931826,0,6.907755,7.600903,0,6.9,0,0,0 +0,3.931826,0,6.907755,7.600903,0,6.9,0,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +1,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +1,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +1,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +1,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +1,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +6,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +1,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +2,4.564348,0,6.907755,6.959049,0,6.9,1,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,1,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,1,0,0 +1,4.564348,0,6.907755,6.959049,0,6.9,1,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,1,0,0 +3,4.564348,0,6.907755,6.959049,0,13.8,1,0,0 +1,4.564348,0,6.907755,6.959049,0,13.8,1,0,0 +2,4.564348,0,6.907755,6.959049,0,13.8,1,0,0 +2,4.564348,0,6.907755,6.959049,0,13.8,1,0,0 +2,4.564348,0,6.907755,6.959049,0,13.8,1,0,0 +2,0,0,5.527523,0,0,9.967326,0,0,0 +1,0,0,5.527523,0,0,9.967326,0,0,0 +1,0,0,5.527523,0,0,9.967326,0,0,0 +2,0,0,5.527523,0,0,6.9,1,0,0 +2,0,0,5.527523,0,0,6.9,1,0,0 +2,0,0,5.527523,0,0,6.9,1,0,0 +22,0,0,5.527523,0,0,9.967326,0,1,0 +25,0,0,5.527523,0,0,9.967326,0,1,0 +30,0,0,5.527523,0,0,9.967326,0,1,0 +2,0,0,5.527523,0,0,10.3,1,0,0 +0,0,0,5.527523,0,0,10.3,1,0,0 +4,0,0,5.527523,0,0,10.3,1,0,0 +3,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +1,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +1,4.564348,0,6.872128,6.948998,0,17.2,1,0,0 +2,4.564348,0,6.872128,6.948998,0,17.2,1,0,0 +3,4.564348,0,6.872128,6.948998,0,17.2,1,0,0 +2,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +2,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +1,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +0,3.931826,0,6.907755,7.600903,0,10.3,1,0,0 +0,3.931826,0,6.907755,7.600903,0,10.3,1,0,0 +2,3.931826,0,6.907755,7.600903,0,10.3,1,0,0 +6,3.931826,0,6.907755,7.600903,0,17.2,1,0,0 +4,3.931826,0,6.907755,7.600903,0,17.2,1,0,0 +4,3.931826,0,6.907755,7.600903,0,17.2,1,0,0 +0,3.258096,0,0,6.618472,0,10.3,1,0,0 +1,3.258096,0,0,6.618472,0,10.3,1,0,0 +7,0,0,0,0,0,3.4,0,0,0 +2,0,0,0,0,0,3.4,0,0,0 +2,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +1,0,0,0,0,0,3.4,0,0,0 +2,0,0,5.11247,0,0,13.8,0,0,0 +6,0,0,5.11247,0,0,13.8,0,0,0 +3,0,0,5.11247,0,0,13.8,0,0,0 +1,3.931826,0,6.907755,7.600903,0,0,0,0,0 +3,3.931826,0,6.907755,7.600903,0,0,0,0,0 +4,3.931826,0,6.907755,7.600903,0,0,0,0,0 +8,3.931826,0,6.907755,7.600903,0,0,0,0,0 +6,3.931826,0,6.907755,7.600903,0,0,0,0,0 +0,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +0,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +0,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +1,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +0,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +2,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +2,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +1,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +3,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +1,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +1,0,1,5.703783,5.755076,0,17.2,0,0,0 +0,0,1,5.703783,5.755076,0,17.2,0,0,0 +0,0,1,5.703783,5.755076,0,17.2,0,0,0 +7,0,1,5.703783,5.755076,0,9.967326,0,0,0 +0,0,1,5.703783,5.755076,0,9.967326,0,0,0 +3,0,1,5.703783,5.755076,0,9.967326,0,0,0 +5,0,1,5.010635,5.061929,0,27.6,1,0,0 +0,0,1,5.010635,5.061929,0,27.6,1,0,0 +0,0,1,5.010635,5.061929,0,27.6,1,0,0 +1,0,1,5.010635,5.061929,0,27.6,1,0,0 +0,0,1,5.010635,5.061929,0,27.6,1,0,0 +7,0,0,0,0,1,6.9,1,0,0 +1,0,0,0,0,1,6.9,1,0,0 +4,0,0,0,0,1,6.9,1,0,0 +0,4.564348,0,6.907755,6.959049,0,13.8,0,0,0 +0,4.564348,0,6.907755,6.959049,0,13.8,0,0,0 +0,4.564348,0,6.907755,6.959049,0,13.8,0,0,0 +1,4.564348,0,6.907755,6.959049,0,10.3,1,0,0 +5,4.564348,0,6.907755,6.959049,0,10.3,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.3,1,0,0 +3,0,1,6.109248,6.160541,0,9.967326,0,0,0 +2,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,10.3,0,0,0 +4,0,1,6.109248,6.160541,0,10.3,0,0,0 +0,0,1,6.109248,6.160541,0,10.3,0,0,0 +2,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,3.4,0,0,0 +5,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,0,0,0,0,6.9,1,0,0 +0,0,0,0,0,0,6.9,1,0,0 +0,0,0,0,0,0,6.9,1,0,0 +1,0,0,4.836282,0,0,10.3,1,0,0 +1,0,0,4.836282,0,0,10.3,1,0,0 +2,0,0,4.836282,0,0,10.3,1,0,0 +1,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +1,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +3,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +0,4.564348,0,6.907755,6.959049,0,17.2,0,0,0 +0,4.564348,0,6.907755,6.959049,0,17.2,0,0,0 +0,4.564348,0,6.907755,6.959049,0,17.2,0,0,0 +1,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +1,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +1,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +24,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +33,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,9.967326,0,0,0 +9,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +2,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,9.967326,0,0,0 +5,0,0,0,0,0,9.967326,0,0,0 +12,0,0,0,0,0,3.4,0,0,0 +3,0,0,0,0,0,3.4,0,0,0 +13,0,0,0,0,0,3.4,0,0,0 +5,0,0,0,0,0,3.4,0,0,0 +5,0,0,0,0,0,3.4,0,0,0 +1,0,0,0,0,0,13.8,0,0,0 +2,0,0,0,0,0,13.8,0,0,0 +11,0,0,0,0,0,13.8,0,0,0 +5,0,0,0,0,0,13.8,0,0,0 +3,0,0,0,0,0,13.8,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +2,0,0,0,0,0,17.2,1,0,0 +2,0,0,0,0,0,17.2,1,0,0 +6,0,0,0,0,0,17.2,1,0,0 +1,0,0,0,0,0,10.3,0,0,0 +1,0,0,0,0,0,10.3,0,0,0 +0,0,0,0,0,0,10.3,0,0,0 +6,4.564348,0,0,4.573082,0,0,0,0,0 +3,4.564348,0,0,4.573082,0,0,0,0,0 +0,4.564348,0,0,4.573082,0,0,0,0,0 +1,4.564348,0,0,5.362033,0,10.3,1,0,0 +1,4.564348,0,0,5.362033,0,10.3,1,0,0 +2,4.564348,0,0,5.362033,0,10.3,1,0,0 +1,0,0,5.372497,0,0,3.4,0,0,0 +0,0,0,5.372497,0,0,3.4,0,0,0 +5,0,0,5.372497,0,0,3.4,0,0,0 +9,0,0,5.372497,0,0,9.967326,0,0,0 +1,0,0,5.372497,0,0,9.967326,0,0,0 +2,0,0,5.372497,0,0,9.967326,0,0,0 +2,0,0,5.372497,0,1,9.967326,0,0,0 +0,0,0,5.372497,0,1,9.967326,0,0,0 +3,0,0,5.372497,0,1,9.967326,0,0,0 +1,0,0,5.372497,0,0,13.8,0,0,0 +1,0,0,5.372497,0,0,13.8,0,0,0 +2,0,0,5.372497,0,0,13.8,0,0,0 +1,0,0,5.372497,0,0,9.967326,0,0,0 +0,0,0,5.372497,0,0,9.967326,0,0,0 +3,0,0,5.372497,0,0,9.967326,0,0,0 +2,0,1,6.200184,6.160541,0,9.967326,0,0,0 +1,0,1,6.200184,6.160541,0,9.967326,0,0,0 +6,0,1,6.200184,6.160541,0,9.967326,0,0,0 +0,0,1,6.200184,6.160541,0,3.4,0,0,0 +0,0,1,6.200184,6.160541,0,3.4,0,0,0 +0,0,1,6.200184,6.160541,0,3.4,0,0,0 +0,0,1,6.200184,6.160541,0,0,0,0,0 +0,0,1,6.200184,6.160541,0,0,0,0,0 +2,0,1,6.200184,6.160541,0,0,0,0,0 +0,0,1,6.200184,6.160541,0,9.967326,0,0,0 +0,0,1,6.200184,6.160541,0,9.967326,0,0,0 +1,0,1,6.200184,6.160541,0,9.967326,0,0,0 +5,0,0,0,0,1,6.9,0,0,0 +4,0,0,0,0,1,6.9,0,0,0 +7,0,0,0,0,1,6.9,0,0,0 +3,0,0,0,0,0,17.2,1,0,0 +3,0,0,0,0,0,17.2,1,0,0 +1,0,0,0,0,0,17.2,1,0,0 +3,3.258096,0,4.787492,6.173786,0,3.4,1,0,0 +7,3.258096,0,4.787492,6.173786,0,3.4,1,0,0 +10,3.258096,0,4.787492,6.173786,0,3.4,1,0,0 +23,3.258096,0,4.787492,6.173786,1,31,0,1,0 +18,3.258096,0,4.787492,6.173786,1,31,0,1,0 +4,3.258096,0,4.787492,6.173786,1,31,0,1,0 +7,3.258096,0,4.787492,6.173786,0,3.4,0,0,0 +5,3.258096,0,4.787492,6.173786,0,3.4,0,0,0 +1,3.258096,0,4.787492,6.173786,0,3.4,0,0,0 +0,3.258096,0,4.787492,6.173786,0,9.967326,0,0,0 +12,3.258096,0,4.787492,6.173786,0,9.967326,0,0,0 +3,3.258096,0,4.787492,6.173786,0,9.967326,0,0,0 +1,3.258096,0,4.787492,6.173786,0,13.8,0,0,0 +2,3.258096,0,4.787492,6.173786,0,13.8,0,0,0 +5,3.258096,0,4.787492,6.173786,0,13.8,0,0,0 +0,4.564348,0,6.141069,6.192362,0,13.8,1,0,0 +0,4.564348,0,6.141069,6.192362,0,13.8,1,0,0 +4,4.564348,0,6.141069,6.192362,0,13.8,1,0,0 +7,0,0,0,0,.1572505,9.967326,0,1,0 +2,0,0,0,0,.1572505,9.967326,0,1,0 +5,0,0,0,0,.1572505,9.967326,0,1,0 +4,0,0,0,0,.1572505,9.967326,1,0,0 +6,0,0,0,0,.1572505,9.967326,1,0,0 +3,0,0,0,0,.1572505,9.967326,1,0,0 +7,0,0,0,0,.1572505,9.967326,1,0,0 +1,0,0,0,0,.1572505,9.967326,1,0,0 +2,0,0,0,0,.1572505,9.967326,1,0,0 +8,0,0,0,0,.1572505,9.967326,1,0,0 +2,0,0,0,0,.1572505,9.967326,1,0,0 +0,0,0,0,0,.1572505,9.967326,1,0,0 +2,0,0,0,0,.1572505,9.967326,1,0,0 +2,0,0,0,0,.1572505,9.967326,1,0,0 +3,0,0,0,0,.1572505,9.967326,1,0,0 +2,0,1,3.73767,5.061929,0,6.9,1,0,0 +1,0,1,3.73767,5.061929,0,6.9,1,0,0 +1,0,1,3.73767,5.061929,0,6.9,1,0,0 +1,0,1,3.73767,5.061929,0,6.9,1,0,0 +5,0,1,3.73767,5.061929,0,6.9,1,0,0 +2,0,1,5.749202,5.755076,0,10.3,1,0,0 +1,0,1,5.749202,5.755076,0,10.3,1,0,0 +3,0,1,5.749202,5.755076,0,10.3,1,0,0 +0,0,1,5.749202,5.755076,0,10.3,1,0,0 +1,0,1,5.749202,5.755076,0,10.3,1,0,0 +1,0,1,5.881984,5.755076,0,9.967326,1,0,0 +2,0,1,5.881984,5.755076,0,9.967326,1,0,0 +1,0,1,5.881984,5.755076,0,9.967326,1,0,0 +1,0,1,5.881984,5.755076,0,9.967326,1,0,0 +0,0,1,5.881984,5.755076,0,17.2,1,0,0 +3,0,1,5.881984,5.755076,0,17.2,1,0,0 +2,0,1,5.881984,5.755076,0,17.2,1,0,0 +2,0,1,5.881984,5.755076,0,17.2,1,0,0 +0,0,0,0,0,0,3.4,1,0,0 +0,0,0,0,0,0,3.4,1,0,0 +0,0,0,0,0,0,3.4,1,0,0 +4,3.258096,0,6.476973,7.863267,0,9.967326,0,0,0 +2,3.258096,0,6.476973,7.863267,0,9.967326,0,0,0 +2,3.258096,0,6.476973,7.863267,0,9.967326,0,0,0 +1,3.258096,0,6.476973,7.863267,0,9.967326,0,0,0 +1,3.258096,0,6.476973,7.863267,0,9.967326,0,0,0 +1,3.258096,0,6.476973,7.863267,0,9.967326,0,0,0 +0,3.258096,0,6.476973,7.863267,0,6.9,0,0,0 +0,3.258096,0,6.476973,7.863267,0,6.9,0,0,0 +1,3.258096,0,6.476973,7.863267,0,6.9,0,0,0 +0,0,0,5.902633,0,0,17.2,0,0,0 +1,0,0,5.902633,0,0,17.2,0,0,0 +4,0,0,5.902633,0,0,17.2,0,0,0 +1,0,0,5.902633,0,0,9.967326,0,0,0 +0,0,0,5.902633,0,0,9.967326,0,0,0 +1,0,0,5.902633,0,0,9.967326,0,0,0 +1,0,0,5.902633,0,0,9.967326,0,0,0 +2,0,0,5.902633,0,0,9.967326,0,0,0 +1,0,0,5.902633,0,0,9.967326,0,0,0 +0,0,0,5.902633,0,0,6.9,0,0,0 +0,0,0,5.902633,0,0,6.9,0,0,0 +0,0,0,5.902633,0,0,6.9,0,0,0 +52,0,1,6.109248,6.160541,0,9.967326,0,0,0 +5,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +8,0,1,6.109248,6.160541,0,13.8,0,1,0 +2,0,1,6.109248,6.160541,0,13.8,0,1,0 +7,0,1,6.109248,6.160541,0,13.8,0,1,0 +0,0,1,6.109248,6.160541,0,6.9,0,0,0 +1,0,1,6.109248,6.160541,0,6.9,0,0,0 +1,0,1,6.109248,6.160541,0,6.9,0,0,0 +2,0,1,6.109248,6.160541,0,9.967326,1,0,0 +1,0,1,6.109248,6.160541,0,9.967326,1,0,0 +5,0,1,6.109248,6.160541,0,9.967326,1,0,0 +17,0,1,6.109248,6.160541,0,9.967326,0,0,0 +11,0,1,6.109248,6.160541,0,9.967326,0,0,0 +44,0,1,6.109248,6.160541,0,9.967326,0,0,0 +2,0,0,4.718499,0,0,6.9,1,0,0 +7,0,0,4.718499,0,0,6.9,1,0,0 +3,0,0,4.718499,0,0,6.9,1,0,0 +7,0,0,4.718499,0,0,20.7,1,0,0 +5,0,0,4.718499,0,0,20.7,1,0,0 +1,0,1,6.109248,6.160541,0,3.4,1,0,0 +1,0,1,6.109248,6.160541,0,3.4,1,0,0 +0,0,1,6.109248,6.160541,0,3.4,1,0,0 +1,0,1,6.109248,6.160541,0,3.4,1,0,0 +0,0,1,6.109248,6.160541,0,6.9,1,0,0 +10,0,1,6.109248,6.160541,0,6.9,1,0,0 +0,0,1,6.109248,6.160541,0,6.9,1,0,0 +0,0,1,6.109248,6.160541,0,6.9,1,0,0 +0,0,1,6.109248,6.160541,0,6.9,1,0,0 +1,0,1,6.109248,6.160541,0,13.8,1,0,0 +0,0,1,6.109248,6.160541,0,13.8,1,0,0 +0,0,1,6.109248,6.160541,0,13.8,1,0,0 +3,0,1,6.109248,6.160541,0,13.8,1,0,0 +0,0,1,6.109248,6.160541,0,13.8,1,0,0 +4,0,1,6.109248,6.160541,0,6.9,1,0,0 +3,0,1,6.109248,6.160541,0,6.9,1,0,0 +1,0,1,6.109248,6.160541,0,6.9,1,0,0 +1,0,1,6.109248,6.160541,0,6.9,1,0,0 +1,0,1,6.109248,6.160541,0,6.9,1,0,0 +0,0,1,6.109248,6.160541,0,3.4,1,0,0 +1,0,1,6.109248,6.160541,0,3.4,1,0,0 +2,0,1,6.109248,6.160541,0,3.4,1,0,0 +4,0,1,6.109248,6.160541,0,3.4,1,0,0 +1,0,1,6.109248,6.160541,0,3.4,1,0,0 +2,4.564348,0,6.044199,6.095492,0,6.9,0,0,0 +4,4.564348,0,6.044199,6.095492,0,6.9,0,0,0 +3,4.564348,0,6.044199,6.095492,0,6.9,0,0,0 +3,4.564348,0,6.044199,6.095492,0,6.9,0,0,0 +2,4.564348,0,6.044199,6.095492,0,6.9,0,0,0 +7,4.564348,0,6.044199,6.095492,0,20.7,0,0,0 +10,4.564348,0,6.044199,6.095492,0,20.7,0,0,0 +2,4.564348,0,6.044199,6.095492,0,20.7,0,0,0 +1,4.564348,0,6.044199,6.095492,0,20.7,0,0,0 +4,4.564348,0,6.044199,6.095492,0,20.7,0,0,0 +2,4.564348,0,6.044199,6.095492,1,3.4,1,0,0 +6,4.564348,0,6.044199,6.095492,1,3.4,1,0,0 +2,4.564348,0,6.044199,6.095492,1,3.4,1,0,0 +2,4.564348,0,6.044199,6.095492,1,3.4,1,0,0 +0,4.564348,0,6.044199,6.095492,1,3.4,1,0,0 +8,4.564348,0,6.044199,6.095492,0,0,1,0,0 +4,4.564348,0,6.044199,6.095492,0,0,1,0,0 +2,4.564348,0,6.044199,6.095492,0,0,1,0,0 +19,4.564348,0,6.044199,6.095492,0,0,1,0,0 +8,4.564348,0,6.044199,6.095492,0,0,1,0,0 +5,4.564348,0,6.044199,6.095492,0,3.4,0,0,0 +5,4.564348,0,6.044199,6.095492,0,3.4,0,0,0 +5,4.564348,0,6.044199,6.095492,0,3.4,0,0,0 +12,4.564348,0,6.044199,6.095492,0,3.4,0,0,0 +2,4.564348,0,6.044199,6.095492,0,3.4,0,0,0 +6,4.564348,0,6.044199,6.095492,0,9.967326,0,0,0 +2,4.564348,0,6.044199,6.095492,0,9.967326,0,0,0 +6,4.564348,0,6.044199,6.095492,0,9.967326,0,0,0 +0,4.564348,0,6.044199,6.095492,0,9.967326,0,0,0 +7,4.564348,0,6.044199,6.095492,0,9.967326,0,0,0 +0,3.258096,0,6.586172,8.006368,0,3.4,0,0,0 +3,3.258096,0,6.586172,8.006368,0,3.4,0,0,0 +1,3.258096,0,6.586172,8.006368,0,3.4,0,0,0 +2,3.258096,0,6.586172,8.006368,1,10.3,1,0,0 +3,3.258096,0,6.586172,8.006368,1,10.3,1,0,0 +2,3.258096,0,6.586172,8.006368,1,10.3,1,0,0 +2,3.258096,0,6.371441,7.757735,0,10.3,1,0,0 +2,3.258096,0,6.371441,7.757735,0,10.3,1,0,0 +1,3.258096,0,6.371441,7.757735,0,10.3,1,0,0 +9,0,0,0,0,0,20.7,1,0,0 +11,0,0,0,0,0,20.7,1,0,0 +6,0,0,0,0,0,20.7,1,0,0 +3,0,0,0,0,0,9.967326,0,0,0 +2,0,0,0,0,0,9.967326,0,0,0 +2,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,10.3,0,0,0 +2,0,0,0,0,0,10.3,0,0,0 +3,0,0,0,0,0,10.3,0,0,0 +4,0,0,0,0,0,9.967326,0,0,0 +3,0,0,0,0,0,9.967326,0,0,0 +2,0,0,0,0,0,9.967326,0,0,0 +2,4.564348,0,6.907755,6.959049,0,9.967326,1,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,1,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,1,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,1,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,1,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,1,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,1,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,1,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,1,0,0 +3,4.564348,0,6.907755,6.959049,0,13.8,1,0,0 +0,4.564348,0,6.907755,6.959049,0,13.8,1,0,0 +0,4.564348,0,6.907755,6.959049,0,13.8,1,0,0 +0,4.564348,0,6.907755,6.959049,0,0,1,0,0 +0,4.564348,0,6.907755,6.959049,0,0,1,0,0 +0,4.564348,0,6.907755,6.959049,0,0,1,0,0 +1,0,1,0,6.160541,0,9.967326,0,0,0 +1,0,1,0,6.160541,0,9.967326,0,0,0 +3,0,1,0,6.160541,0,9.967326,0,0,0 +5,0,1,0,6.160541,0,9.967326,0,0,0 +5,0,1,0,6.160541,0,9.967326,0,0,0 +2,0,1,0,6.160541,0,9.967326,0,0,0 +2,0,1,0,6.160541,0,0,0,0,0 +3,0,1,0,6.160541,0,0,0,0,0 +1,0,1,0,6.160541,0,0,0,0,0 +1,0,1,0,6.160541,0,3.4,0,0,0 +0,0,1,0,6.160541,0,3.4,0,0,0 +3,0,1,0,6.160541,0,3.4,0,0,0 +0,3.258096,0,6.497152,7.883446,0,0,0,0,0 +0,3.258096,0,6.497152,7.883446,0,0,0,0,0 +3,3.258096,0,6.497152,7.883446,0,0,0,0,0 +0,3.258096,0,6.497152,7.883446,0,6.9,1,0,0 +2,3.258096,0,6.497152,7.883446,0,6.9,1,0,0 +0,3.258096,0,6.497152,7.883446,0,6.9,1,0,0 +2,3.258096,0,6.497152,7.883446,0,9.967326,0,0,0 +3,3.258096,0,6.497152,7.883446,0,9.967326,0,0,0 +2,3.258096,0,6.497152,7.883446,0,9.967326,0,0,0 +0,0,1,5.010635,5.061929,0,3.4,0,0,0 +0,0,1,5.010635,5.061929,0,3.4,0,0,0 +1,0,1,5.010635,5.061929,0,3.4,0,0,0 +2,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +1,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +1,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +7,3.931826,0,6.907755,7.600903,0,0,0,0,0 +1,3.931826,0,6.907755,7.600903,0,0,0,0,0 +0,3.931826,0,6.907755,7.600903,0,0,0,0,0 +7,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +3,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +1,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +2,3.258096,0,6.55108,7.937375,1,24.1,0,1,0 +1,3.258096,0,6.55108,7.937375,1,24.1,0,1,0 +2,3.258096,0,6.55108,7.937375,1,24.1,0,1,0 +8,3.258096,0,6.55108,7.937375,0,17.2,0,1,0 +3,3.258096,0,6.55108,7.937375,0,17.2,0,1,0 +6,3.258096,0,6.55108,7.937375,0,17.2,0,1,0 +2,3.258096,0,6.55108,7.937375,0,9.967326,0,0,0 +1,3.258096,0,6.55108,7.937375,0,9.967326,0,0,0 +3,3.258096,0,6.55108,7.937375,0,9.967326,0,0,0 +1,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +0,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +0,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +1,3.931826,0,6.907755,7.600903,1,10.3,0,0,0 +0,3.931826,0,6.907755,7.600903,1,10.3,0,0,0 +0,3.931826,0,6.907755,7.600903,1,10.3,0,0,0 +0,3.931826,0,6.907755,7.600903,0,9.967326,1,0,0 +0,3.931826,0,6.907755,7.600903,0,9.967326,1,0,0 +2,3.931826,0,6.907755,7.600903,0,9.967326,1,0,0 +0,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +1,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +2,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +4,0,0,0,0,0,0,0,0,0 +5,0,0,0,0,0,0,0,0,0 +1,0,0,0,0,0,0,0,0,0 +21,0,0,0,0,1,13.8,0,0,0 +23,0,0,0,0,1,13.8,0,0,0 +15,0,0,0,0,1,13.8,0,0,0 +2,0,0,0,0,0,3.4,0,0,0 +2,0,0,0,0,0,3.4,0,0,0 +2,0,0,0,0,0,3.4,0,0,0 +0,4.564348,0,5.955423,5.911367,0,0,0,0,0 +0,4.564348,0,5.955423,5.911367,0,0,0,0,0 +0,4.564348,0,5.955423,5.911367,0,0,0,0,0 +2,4.564348,0,6.882438,6.959049,0,17.2,1,0,0 +0,4.564348,0,6.882438,6.959049,0,17.2,1,0,0 +4,4.564348,0,6.882438,6.959049,0,17.2,1,0,0 +0,4.564348,0,6.882438,6.959049,0,17.2,1,0,0 +5,4.564348,0,6.882438,6.959049,0,17.2,1,0,0 +5,4.564348,0,6.882438,6.959049,1,34.5,1,0,0 +4,4.564348,0,6.882438,6.959049,1,34.5,1,0,0 +5,4.564348,0,6.882438,6.959049,1,34.5,1,0,0 +4,4.564348,0,6.882438,6.959049,1,34.5,1,0,0 +11,4.564348,0,6.882438,6.959049,1,34.5,1,0,0 +1,4.564348,0,6.882438,6.959049,0,9.967326,1,0,0 +3,4.564348,0,6.882438,6.959049,0,9.967326,1,0,0 +4,4.564348,0,6.882438,6.959049,0,9.967326,1,0,0 +4,4.564348,0,6.882438,6.959049,0,9.967326,1,0,0 +1,4.564348,0,6.882438,6.959049,0,9.967326,1,0,0 +2,3.258096,0,6.620073,8.006368,1,9.967326,1,0,0 +5,3.258096,0,6.620073,8.006368,1,9.967326,1,0,0 +3,3.258096,0,6.620073,8.006368,1,9.967326,1,0,0 +1,3.258096,0,6.620073,8.006368,1,9.967326,1,0,0 +0,3.258096,0,6.620073,8.006368,1,9.967326,1,0,0 +2,3.258096,0,6.620073,8.006368,0,0,1,0,0 +1,3.258096,0,6.620073,8.006368,0,0,1,0,0 +1,3.258096,0,6.620073,8.006368,0,0,1,0,0 +1,3.258096,0,6.620073,8.006368,0,0,1,0,0 +2,3.258096,0,6.620073,8.006368,0,0,1,0,0 +2,3.258096,0,6.620073,8.006368,0,17.2,0,0,0 +1,3.258096,0,6.620073,8.006368,0,17.2,0,0,0 +0,3.258096,0,6.620073,8.006368,0,17.2,0,0,0 +1,3.258096,0,6.620073,8.006368,0,17.2,0,0,0 +1,3.258096,0,6.620073,8.006368,0,17.2,0,0,0 +2,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +1,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +2,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +2,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +2,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +1,3.258096,0,6.842769,8.006368,0,13.8,1,0,0 +2,3.258096,0,6.842769,8.006368,0,13.8,1,0,0 +2,3.258096,0,6.842769,8.006368,0,13.8,1,0,0 +2,3.258096,0,6.842769,8.006368,0,9.967326,0,0,0 +0,3.258096,0,6.842769,8.006368,0,9.967326,0,0,0 +0,3.258096,0,6.842769,8.006368,0,9.967326,0,0,0 +0,3.258096,0,6.842769,8.006368,0,9.967326,0,0,0 +2,3.258096,0,6.842769,8.006368,0,9.967326,0,0,0 +2,3.258096,0,6.842769,8.006368,0,9.967326,0,0,0 +0,3.258096,0,6.842769,8.006368,0,0,0,0,0 +2,3.258096,0,6.842769,8.006368,0,0,0,0,0 +2,3.258096,0,6.842769,8.006368,0,0,0,0,0 +4,0,0,0,0,1,31,0,1,0 +2,0,0,0,0,1,31,0,1,0 +3,0,0,0,0,1,31,0,1,0 +6,0,0,0,0,1,20.7,0,1,0 +0,0,0,0,0,1,20.7,0,1,0 +2,0,0,0,0,1,20.7,0,1,0 +1,4.564348,0,6.907755,6.959049,1,13.8,0,0,0 +1,4.564348,0,6.907755,6.959049,1,13.8,0,0,0 +3,4.564348,0,6.907755,6.959049,1,13.8,0,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +2,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +1,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +1,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +2,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +1,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +9,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +9,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +1,4.564348,0,6.907755,6.959049,1,10.3,1,0,0 +0,4.564348,0,6.907755,6.959049,1,10.3,1,0,0 +2,4.564348,0,6.907755,6.959049,1,10.3,1,0,0 +8,4.564348,0,6.907755,6.959049,1,27.6,0,0,0 +5,4.564348,0,6.907755,6.959049,1,27.6,0,0,0 +2,4.564348,0,6.907755,6.959049,1,27.6,0,0,0 +3,4.564348,0,6.907755,6.959049,1,3.4,0,0,0 +5,4.564348,0,6.907755,6.959049,1,3.4,0,0,0 +1,4.564348,0,6.907755,6.959049,1,3.4,0,0,0 +4,4.564348,0,6.907755,6.959049,1,3.4,0,0,0 +3,4.564348,0,6.907755,6.959049,1,3.4,0,0,0 +1,4.564348,0,6.907755,6.959049,1,10.3,0,0,0 +2,4.564348,0,6.907755,6.959049,1,10.3,0,0,0 +0,4.564348,0,6.907755,6.959049,1,10.3,0,0,0 +1,4.564348,0,6.907755,6.959049,1,10.3,0,0,0 +0,4.564348,0,6.907755,6.959049,1,10.3,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +18,0,1,6.109248,6.160541,0,17.2,1,0,0 +13,0,1,6.109248,6.160541,0,17.2,1,0,0 +4,0,1,6.109248,6.160541,0,17.2,1,0,0 +1,0,1,6.109248,6.160541,0,17.2,1,0,0 +2,0,1,6.109248,6.160541,0,17.2,1,0,0 +2,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +7,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +2,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +2,0,1,6.109248,6.160541,0,41.4,0,0,0 +3,0,1,6.109248,6.160541,0,41.4,0,0,0 +0,0,1,6.109248,6.160541,0,41.4,0,0,0 +0,0,1,6.109248,6.160541,0,41.4,0,0,0 +1,0,1,6.109248,6.160541,0,41.4,0,0,0 +8,0,1,6.109248,6.160541,0,10.3,1,0,0 +3,0,1,6.109248,6.160541,0,10.3,1,0,0 +4,0,1,6.109248,6.160541,0,10.3,1,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +2,0,1,6.109248,6.160541,0,10.3,0,1,0 +2,0,1,6.109248,6.160541,0,10.3,0,1,0 +2,0,1,6.109248,6.160541,0,10.3,0,1,0 +7,3.258096,0,6.586172,8.006368,0,20.7,1,0,0 +3,3.258096,0,6.586172,8.006368,0,20.7,1,0,0 +4,3.258096,0,6.586172,8.006368,0,20.7,1,0,0 +1,3.258096,0,6.586172,8.006368,0,3.4,1,0,0 +1,3.258096,0,6.586172,8.006368,0,3.4,1,0,0 +1,3.258096,0,6.586172,8.006368,0,3.4,1,0,0 +3,3.258096,0,6.586172,8.006368,0,13.8,1,0,0 +3,3.258096,0,6.586172,8.006368,0,13.8,1,0,0 +14,3.258096,0,6.586172,8.006368,0,13.8,1,0,0 +0,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +1,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +0,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +6,3.258096,0,6.620073,8.006368,0,0,1,0,0 +1,3.258096,0,6.620073,8.006368,0,0,1,0,0 +4,3.258096,0,6.620073,8.006368,0,0,1,0,0 +0,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +0,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +0,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +1,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +0,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +0,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +3,0,0,0,0,0,9.967326,0,0,0 +3,0,0,0,0,0,9.967326,0,0,0 +6,0,0,0,0,0,9.967326,0,0,0 +3,0,0,0,0,0,9.967326,0,0,0 +3,0,0,0,0,0,9.967326,0,0,0 +3,0,0,0,0,0,9.967326,0,0,0 +2,0,0,0,0,0,3.4,0,0,0 +1,0,0,0,0,0,3.4,0,0,0 +4,0,0,0,0,0,3.4,0,0,0 +2,0,0,0,0,0,0,0,0,0 +5,0,0,0,0,0,0,0,0,0 +4,0,0,0,0,0,0,0,0,0 +2,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +1,0,0,0,0,0,3.4,0,0,0 +1,0,0,0,0,0,6.9,0,0,0 +1,0,0,0,0,0,6.9,0,0,0 +0,0,0,0,0,0,6.9,0,0,0 +0,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +1,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +5,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +2,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +4,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +1,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +5,0,0,0,0,1,34.5,1,0,0 +9,0,0,0,0,1,34.5,1,0,0 +44,0,0,0,0,1,34.5,1,0,0 +76,0,0,0,0,1,34.5,1,0,0 +77,0,0,0,0,1,34.5,1,0,0 +1,0,0,0,0,1,17.2,0,0,0 +1,0,0,0,0,1,17.2,0,0,0 +8,0,0,0,0,1,17.2,0,0,0 +25,0,0,0,0,1,17.2,0,0,0 +12,0,0,0,0,1,17.2,0,0,0 +1,3.258096,0,6.620073,8.006368,0,10.3,1,0,0 +5,3.258096,0,6.620073,8.006368,0,10.3,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.3,1,0,0 +4,3.258096,0,6.620073,8.006368,0,9.967326,1,0,0 +0,3.258096,0,6.620073,8.006368,0,9.967326,1,0,0 +4,3.258096,0,6.620073,8.006368,0,9.967326,1,0,0 +0,3.258096,0,6.620073,8.006368,0,9.967326,1,0,0 +2,3.258096,0,6.620073,8.006368,0,9.967326,1,0,0 +0,3.258096,0,6.620073,8.006368,0,9.967326,1,0,0 +1,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +3,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +2,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +2,3.258096,0,6.620073,8.006368,0,9.967326,1,0,0 +1,3.258096,0,6.620073,8.006368,0,9.967326,1,0,0 +5,3.258096,0,6.620073,8.006368,0,9.967326,1,0,0 +2,0,0,0,0,0,13.8,1,0,0 +0,0,0,0,0,0,13.8,1,0,0 +3,0,0,0,0,0,13.8,1,0,0 +0,0,0,0,0,0,13.8,1,0,0 +5,0,0,0,0,0,13.8,1,0,0 +3,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +10,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +0,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +18,3.258096,0,6.802395,8.188689,0,27.6,0,0,0 +0,3.258096,0,6.802395,8.188689,0,27.6,0,0,0 +0,3.258096,0,6.802395,8.188689,0,27.6,0,0,0 +1,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,9.967326,0,0,0 +2,0,0,0,0,0,9.967326,0,0,0 +2,0,0,0,0,0,9.967326,0,0,0 +3,0,0,0,0,0,9.967326,0,0,0 +2,0,0,0,0,0,13.8,1,0,0 +1,0,0,0,0,0,13.8,1,0,0 +3,0,0,0,0,0,13.8,1,0,0 +0,0,0,0,0,0,13.8,1,0,0 +2,0,0,0,0,0,13.8,1,0,0 +0,0,0,0,0,0,6.9,1,0,0 +0,0,0,0,0,0,6.9,1,0,0 +0,0,0,0,0,0,6.9,1,0,0 +0,0,0,0,0,0,6.9,1,0,0 +1,0,0,0,0,0,6.9,1,0,0 +4,0,1,0,5.061929,0,6.9,1,0,0 +0,0,1,0,5.061929,0,6.9,1,0,0 +0,0,1,0,5.061929,0,6.9,1,0,0 +0,0,1,0,5.061929,0,6.9,1,0,0 +0,0,1,0,5.061929,0,6.9,1,0,0 +1,0,1,6.109248,6.160541,0,6.9,1,0,0 +1,0,1,6.109248,6.160541,0,6.9,1,0,0 +2,0,1,6.109248,6.160541,0,6.9,1,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +3,0,1,6.109248,6.160541,0,9.967326,0,0,0 +5,0,1,6.109248,6.160541,0,24.1,1,0,0 +7,0,1,6.109248,6.160541,0,24.1,1,0,0 +1,0,1,6.109248,6.160541,0,24.1,1,0,0 +2,0,1,6.109248,6.160541,0,9.967326,1,0,0 +2,0,1,6.109248,6.160541,0,9.967326,1,0,0 +1,0,1,6.109248,6.160541,0,9.967326,1,0,0 +0,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +0,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +1,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +5,3.931826,0,6.907755,7.600903,0,17.2,0,0,0 +1,3.931826,0,6.907755,7.600903,0,17.2,0,0,0 +0,3.931826,0,6.907755,7.600903,0,17.2,0,0,0 +0,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +1,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +0,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +3,3.931826,0,6.907755,7.600903,1,20.7,1,0,0 +3,3.931826,0,6.907755,7.600903,1,20.7,1,0,0 +9,3.931826,0,6.907755,7.600903,1,20.7,1,0,0 +1,3.931826,0,6.907755,7.600903,0,6.9,0,0,0 +0,3.931826,0,6.907755,7.600903,0,6.9,0,0,0 +0,3.931826,0,6.907755,7.600903,0,6.9,0,0,0 +3,3.931826,0,6.907755,7.600903,1,6.9,1,0,0 +0,3.931826,0,6.907755,7.600903,1,6.9,1,0,0 +0,3.931826,0,6.907755,7.600903,1,6.9,1,0,0 +1,3.931826,0,6.907755,7.600903,1,6.9,1,0,0 +2,3.931826,0,6.907755,7.600903,1,6.9,1,0,0 +2,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +0,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +2,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +13,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +4,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +1,3.931826,0,6.907755,7.600903,0,13.8,0,0,0 +0,3.931826,0,6.907755,7.600903,0,13.8,0,0,0 +1,3.931826,0,6.907755,7.600903,0,13.8,0,0,0 +5,3.931826,0,6.907755,7.600903,0,13.8,0,0,0 +3,3.931826,0,6.907755,7.600903,0,13.8,0,0,0 +1,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +1,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +3,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +1,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +3,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,13.8,1,0,0 +0,0,1,6.109248,6.160541,0,13.8,1,0,0 +2,0,1,6.109248,6.160541,0,13.8,1,0,0 +3,0,1,6.109248,6.160541,0,6.9,0,0,0 +0,0,1,6.109248,6.160541,0,6.9,0,0,0 +0,0,1,6.109248,6.160541,0,6.9,0,0,0 +2,0,1,6.109248,6.160541,0,9.967326,0,0,0 +1,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,0,1,6.109248,6.160541,0,9.967326,0,0,0 +6,0,1,6.109248,6.160541,0,6.9,1,0,0 +3,0,1,6.109248,6.160541,0,6.9,1,0,0 +0,0,1,6.109248,6.160541,0,6.9,1,0,0 +0,0,1,5.711089,5.061929,0,10.3,1,0,0 +0,0,1,5.711089,5.061929,0,10.3,1,0,0 +2,0,1,5.711089,5.061929,0,10.3,1,0,0 +8,0,0,0,0,1,31,1,0,0 +4,0,0,0,0,1,31,1,0,0 +4,0,0,0,0,1,31,1,0,0 +2,0,0,5.015954,0,0,13.8,0,0,0 +0,0,0,5.015954,0,0,13.8,0,0,0 +0,0,0,5.015954,0,0,13.8,0,0,0 +8,0,1,5.703783,5.755076,1,17.2,0,1,0 +10,0,1,5.703783,5.755076,1,17.2,0,1,0 +7,0,1,5.703783,5.755076,1,17.2,0,1,0 +9,0,1,5.703783,5.755076,1,17.2,0,1,0 +9,0,1,5.703783,5.755076,1,17.2,0,1,0 +1,0,1,5.703783,5.755076,1,24.1,1,0,0 +7,0,1,5.703783,5.755076,1,24.1,1,0,0 +4,0,1,5.703783,5.755076,1,24.1,1,0,0 +4,0,1,5.703783,5.755076,1,24.1,1,0,0 +5,0,1,5.703783,5.755076,1,24.1,1,0,0 +3,0,1,6.109248,6.160541,0,6.9,1,0,0 +2,0,1,6.109248,6.160541,0,6.9,1,0,0 +6,0,1,6.109248,6.160541,0,6.9,1,0,0 +2,0,1,6.109248,6.160541,0,3.4,0,0,0 +1,0,1,6.109248,6.160541,0,3.4,0,0,0 +4,0,1,6.109248,6.160541,0,3.4,0,0,0 +3,0,1,6.109248,6.160541,0,9.967326,1,0,0 +1,0,1,6.109248,6.160541,0,9.967326,1,0,0 +2,0,1,6.109248,6.160541,0,9.967326,1,0,0 +2,0,1,6.109248,6.160541,0,3.4,1,0,0 +7,0,1,6.109248,6.160541,0,3.4,1,0,0 +6,0,1,6.109248,6.160541,0,3.4,1,0,0 +5,0,1,5.855989,5.061929,0,3.4,0,0,0 +9,0,1,5.855989,5.061929,0,3.4,0,0,0 +11,0,1,5.855989,5.061929,0,3.4,0,0,0 +4,3.258096,0,6.620073,8.006368,0,9.967326,1,0,0 +3,3.258096,0,6.620073,8.006368,0,9.967326,1,0,0 +7,3.258096,0,6.620073,8.006368,0,9.967326,1,0,0 +3,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +4,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +17,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +1,3.258096,0,6.620073,8.006368,0,9.967326,1,0,0 +1,3.258096,0,6.620073,8.006368,0,9.967326,1,0,0 +5,3.258096,0,6.620073,8.006368,0,9.967326,1,0,0 +6,3.258096,0,6.620073,8.006368,0,17.2,1,0,0 +2,3.258096,0,6.620073,8.006368,0,17.2,1,0,0 +6,3.258096,0,6.620073,8.006368,0,17.2,1,0,0 +1,3.258096,0,6.620073,8.006368,0,9.967326,1,0,0 +2,3.258096,0,6.620073,8.006368,0,9.967326,1,0,0 +1,3.258096,0,6.620073,8.006368,0,9.967326,1,0,0 +3,4.564348,0,2.890372,2.941665,0,9.967326,0,0,0 +0,4.564348,0,2.890372,2.941665,0,9.967326,0,0,0 +1,4.564348,0,2.890372,2.941665,0,9.967326,0,0,0 +6,4.564348,0,2.890372,2.941665,0,20.7,1,0,0 +2,4.564348,0,2.890372,2.941665,0,20.7,1,0,0 +1,4.564348,0,2.890372,2.941665,0,20.7,1,0,0 +4,3.258096,0,6.55108,7.937375,0,9.967326,0,1,0 +3,3.258096,0,6.55108,7.937375,0,9.967326,0,1,0 +2,3.258096,0,6.55108,7.937375,0,9.967326,0,1,0 +0,3.258096,0,6.55108,7.937375,0,9.967326,0,1,0 +1,3.258096,0,6.55108,7.937375,0,9.967326,0,1,0 +14,3.258096,0,6.55108,7.937375,0,24.1,0,1,0 +13,3.258096,0,6.55108,7.937375,0,24.1,0,1,0 +4,3.258096,0,6.55108,7.937375,0,24.1,0,1,0 +1,3.258096,0,6.55108,7.937375,0,24.1,0,1,0 +1,3.258096,0,6.55108,7.937375,0,24.1,0,1,0 +1,3.258096,0,6.55108,7.937375,0,6.9,1,0,0 +2,3.258096,0,6.55108,7.937375,0,6.9,1,0,0 +0,3.258096,0,6.55108,7.937375,0,6.9,1,0,0 +0,3.258096,0,6.55108,7.937375,0,6.9,1,0,0 +1,3.258096,0,6.55108,7.937375,0,6.9,1,0,0 +0,4.564348,0,6.907755,6.959049,0,0,0,0,0 +0,4.564348,0,6.907755,6.959049,0,0,0,0,0 +0,4.564348,0,6.907755,6.959049,0,0,0,0,0 +0,4.564348,0,6.907755,6.959049,0,0,0,0,0 +0,4.564348,0,6.907755,6.959049,0,0,0,0,0 +0,4.564348,0,6.907755,6.959049,0,0,0,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +1,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +1,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +3,4.564348,0,0,5.755076,0,10.3,0,0,0 +0,4.564348,0,0,5.755076,0,10.3,0,0,0 +2,0,1,6.052089,6.160541,0,3.4,1,0,0 +2,0,1,6.052089,6.160541,0,3.4,1,0,0 +2,0,1,6.052089,6.160541,0,3.4,1,0,0 +2,0,1,6.052089,6.160541,0,9.967326,0,0,0 +1,0,1,6.052089,6.160541,0,9.967326,0,0,0 +1,0,1,6.052089,6.160541,0,9.967326,0,0,0 +2,0,1,6.052089,6.160541,0,13.8,0,0,0 +2,0,1,6.052089,6.160541,0,13.8,0,0,0 +1,0,1,6.052089,6.160541,0,13.8,0,0,0 +1,0,1,6.052089,6.160541,0,9.967326,0,0,0 +0,0,1,6.052089,6.160541,0,9.967326,0,0,0 +0,0,1,6.052089,6.160541,0,9.967326,0,0,0 +3,0,1,6.109248,6.160541,0,3.4,1,0,0 +1,0,1,6.109248,6.160541,0,3.4,1,0,0 +0,0,1,6.109248,6.160541,0,3.4,1,0,0 +6,0,1,6.109248,6.160541,0,6.9,1,0,0 +0,0,1,6.109248,6.160541,0,6.9,1,0,0 +1,0,1,6.109248,6.160541,0,6.9,1,0,0 +6,0,1,6.109248,6.160541,0,24.1,1,0,0 +1,0,1,6.109248,6.160541,0,24.1,1,0,0 +1,0,1,6.109248,6.160541,0,24.1,1,0,0 +6,0,1,5.010635,5.061929,0,31,1,0,0 +2,0,1,5.010635,5.061929,0,31,1,0,0 +6,0,1,5.010635,5.061929,0,31,1,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +2,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0 +2,0,0,0,0,0,0,0,0,0 +3,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0 +5,0,0,0,0,0,0,0,0,0 +0,0,0,6.200184,0,0,0,0,0,0 +4,0,0,6.200184,0,0,0,0,0,0 +5,0,0,6.200184,0,0,0,0,0,0 +0,0,0,6.200184,0,0,6.9,1,0,0 +0,0,0,6.200184,0,0,6.9,1,0,0 +0,0,0,6.200184,0,0,6.9,1,0,0 +0,0,0,6.200184,0,0,0,0,0,0 +1,0,0,6.200184,0,0,0,0,0,0 +0,0,0,6.200184,0,0,13.8,1,0,0 +2,0,0,6.200184,0,0,13.8,1,0,0 +3,0,0,6.200184,0,0,13.8,1,0,0 +0,0,0,6.200184,0,0,9.967326,0,0,0 +2,0,0,6.200184,0,0,9.967326,0,0,0 +0,0,0,6.200184,0,0,9.967326,0,0,0 +0,0,0,6.200184,0,0,9.967326,0,0,0 +0,0,0,6.200184,0,0,9.967326,0,0,0 +0,0,0,6.200184,0,0,9.967326,0,0,0 +1,0,0,6.200184,0,0,9.967326,0,0,0 +0,0,0,6.200184,0,0,9.967326,0,0,0 +1,0,0,6.200184,0,0,9.967326,0,0,0 +1,0,0,6.200184,0,0,6.9,0,0,0 +0,0,0,6.200184,0,0,6.9,0,0,0 +0,0,0,6.200184,0,0,6.9,0,0,0 +3,0,1,5.352806,5.061929,0,10.3,0,0,0 +0,0,1,5.352806,5.061929,0,10.3,0,0,0 +4,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +1,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +1,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +3,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +1,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +25,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +10,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +1,4.564348,0,6.907755,6.959049,0,0,0,0,0 +0,4.564348,0,6.907755,6.959049,0,0,0,0,0 +1,4.564348,0,6.907755,6.959049,0,0,0,0,0 +3,4.564348,0,6.907755,6.959049,0,0,0,0,0 +2,4.564348,0,6.907755,6.959049,0,0,0,0,0 +0,4.564348,0,6.907755,6.959049,0,0,0,0,0 +2,4.564348,0,6.907755,6.959049,0,31,0,1,0 +3,4.564348,0,6.907755,6.959049,0,31,0,1,0 +1,4.564348,0,6.907755,6.959049,0,31,0,1,0 +4,0,0,5.154216,0,0,9.967326,0,0,0 +7,0,0,5.154216,0,0,9.967326,0,0,0 +4,0,0,5.154216,0,0,9.967326,0,0,0 +7,0,0,5.154216,0,0,17.2,1,0,0 +19,0,0,5.154216,0,0,17.2,1,0,0 +6,0,0,5.154216,0,0,17.2,1,0,0 +0,0,0,5.154216,0,0,3.4,0,0,0 +0,0,0,5.154216,0,0,3.4,0,0,0 +1,0,0,5.154216,0,0,3.4,0,0,0 +1,3.258096,0,6.620073,8.006368,0,10.3,1,0,0 +2,3.258096,0,6.620073,8.006368,0,10.3,1,0,0 +2,3.258096,0,6.620073,8.006368,0,10.3,1,0,0 +3,3.258096,0,6.109248,8.006368,1,10.3,0,0,0 +8,3.258096,0,6.109248,8.006368,1,10.3,0,0,0 +0,3.258096,0,6.109248,8.006368,1,10.3,0,0,0 +3,4.564348,0,6.684612,6.735905,0,3.4,0,0,0 +3,4.564348,0,6.684612,6.735905,0,3.4,0,0,0 +9,4.564348,0,6.684612,6.735905,0,9.967326,0,1,0 +2,4.564348,0,6.684612,6.735905,0,9.967326,0,1,0 +0,4.564348,0,6.684612,6.735905,0,9.967326,0,1,0 +2,4.564348,0,6.684612,6.735905,0,17.2,0,0,0 +1,4.564348,0,6.684612,6.735905,0,17.2,0,0,0 +1,4.564348,0,6.684612,6.735905,0,17.2,0,0,0 +0,4.564348,0,6.684612,6.735905,0,9.967326,0,0,0 +0,4.564348,0,6.684612,6.735905,0,9.967326,0,0,0 +0,4.564348,0,6.684612,6.735905,0,9.967326,0,0,0 +3,4.564348,0,6.684612,6.735905,0,13.8,0,0,0 +2,4.564348,0,6.684612,6.735905,0,13.8,0,0,0 +1,4.564348,0,6.684612,6.735905,0,13.8,0,0,0 +2,4.564348,0,5.521461,5.572754,0,0,0,0,0 +0,4.564348,0,5.521461,5.572754,0,0,0,0,0 +0,4.564348,0,5.521461,5.572754,0,0,0,0,0 +2,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +3,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +5,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +1,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +2,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +2,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +6,3.258096,0,6.620073,8.006368,1,24.1,1,0,0 +9,3.258096,0,6.620073,8.006368,1,24.1,1,0,0 +5,3.258096,0,6.620073,8.006368,1,24.1,1,0,0 +2,3.931826,0,6.620073,7.313221,0,6.9,0,0,0 +1,3.931826,0,6.620073,7.313221,0,6.9,0,0,0 +3,3.931826,0,6.620073,7.313221,0,6.9,0,0,0 +1,3.931826,0,6.620073,7.313221,0,6.9,0,0,0 +3,3.931826,0,6.620073,7.313221,0,6.9,0,0,0 +4,0,0,0,0,0,10.3,0,0,0 +1,0,0,0,0,0,10.3,0,0,0 +1,0,0,0,0,0,10.3,0,0,0 +4,0,0,0,0,0,10.3,0,0,0 +0,0,0,0,0,0,10.3,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +4,0,0,0,0,0,9.967326,0,0,0 +3,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,9.967326,1,0,0 +3,0,0,0,0,0,9.967326,1,0,0 +5,0,0,0,0,0,9.967326,1,0,0 +0,0,0,0,0,0,9.967326,1,0,0 +0,0,0,0,0,0,9.967326,1,0,0 +3,0,0,0,0,0,9.967326,1,0,0 +3,0,0,0,0,0,9.967326,1,0,0 +2,0,0,0,0,0,9.967326,1,0,0 +1,0,0,0,0,0,9.967326,1,0,0 +1,0,0,0,0,0,9.967326,1,0,0 +4,0,1,5.010635,5.061929,1,0,1,0,0 +0,0,1,5.010635,5.061929,1,0,1,0,0 +0,0,1,5.010635,5.061929,1,0,1,0,0 +0,0,1,5.352806,5.061929,1,10.3,0,0,0 +1,0,1,5.352806,5.061929,1,10.3,0,0,0 +0,0,1,5.352806,5.061929,1,10.3,0,0,0 +0,0,1,5.703783,5.755076,0,9.967326,0,0,0 +2,0,1,5.703783,5.755076,0,9.967326,0,0,0 +0,0,1,5.703783,5.755076,0,9.967326,0,0,0 +3,0,1,5.703783,5.755076,0,34.5,1,0,0 +2,0,1,5.703783,5.755076,0,34.5,1,0,0 +0,0,1,5.703783,5.755076,0,34.5,1,0,0 +1,0,0,6.468878,0,0,9.967326,0,0,0 +1,0,0,6.468878,0,0,9.967326,0,0,0 +2,0,0,6.468878,0,0,9.967326,0,0,0 +1,0,0,6.468878,0,0,9.967326,0,0,0 +1,0,0,6.468878,0,0,9.967326,0,0,0 +1,0,0,6.468878,0,0,9.967326,0,0,0 +2,0,0,6.468878,0,0,9.967326,0,0,0 +1,0,0,6.468878,0,0,9.967326,0,0,0 +3,0,0,6.468878,0,0,9.967326,0,0,0 +1,0,0,6.468878,0,0,9.967326,0,0,0 +1,0,0,6.468878,0,0,9.967326,0,0,0 +1,0,0,6.468878,0,0,9.967326,0,0,0 +3,0,0,6.468878,0,0,9.967326,0,0,0 +1,0,0,6.468878,0,0,9.967326,0,0,0 +0,0,0,6.468878,0,0,9.967326,0,0,0 +2,0,0,6.468878,0,0,17.2,1,0,0 +3,0,0,6.468878,0,0,17.2,1,0,0 +1,0,0,6.468878,0,0,17.2,1,0,0 +1,0,0,6.468878,0,0,17.2,1,0,0 +1,0,0,6.468878,0,0,17.2,1,0,0 +1,0,0,6.468878,0,0,17.2,0,0,0 +6,0,0,6.468878,0,0,17.2,0,0,0 +5,0,0,6.468878,0,0,17.2,0,0,0 +5,0,0,6.468878,0,0,17.2,0,0,0 +1,0,0,6.468878,0,0,17.2,0,0,0 +1,0,1,5.703783,5.755076,0,6.9,0,0,0 +1,0,1,5.703783,5.755076,0,6.9,0,0,0 +0,0,1,5.703783,5.755076,0,6.9,0,0,0 +3,0,1,5.703783,5.755076,0,6.9,0,0,0 +0,0,1,5.703783,5.755076,0,6.9,0,0,0 +2,0,1,5.703783,5.755076,0,6.9,0,0,0 +4,0,1,5.504844,5.061929,0,13.8,1,0,0 +3,0,1,5.504844,5.061929,0,13.8,1,0,0 +1,0,1,5.504844,5.061929,0,13.8,1,0,0 +18,0,1,6.109248,6.160541,.0431267,9.967326,0,0,0 +6,0,1,6.109248,6.160541,.0431267,9.967326,0,0,0 +4,0,1,6.109248,6.160541,.0431267,9.967326,0,0,0 +0,0,1,6.109248,6.160541,.1572505,9.967326,0,0,0 +0,0,1,6.109248,6.160541,.1572505,9.967326,0,0,0 +0,0,1,6.109248,6.160541,.1572505,9.967326,0,0,0 +1,0,1,6.109248,6.160541,.1572505,9.967326,0,1,0 +4,0,1,6.109248,6.160541,.1572505,9.967326,0,1,0 +2,0,1,6.109248,6.160541,.1572505,9.967326,0,1,0 +0,0,1,5.010635,5.061929,0,0,0,0,0 +0,0,1,5.010635,5.061929,0,0,0,0,0 +0,0,1,5.010635,5.061929,0,0,0,0,0 +1,0,1,6.109248,6.160541,.0431267,9.967326,0,0,0 +0,0,1,6.109248,6.160541,.0431267,9.967326,0,0,0 +1,0,1,6.109248,6.160541,.0431267,9.967326,0,0,0 +7,0,1,5.010635,5.061929,0,6.9,0,0,0 +4,0,1,5.010635,5.061929,0,6.9,0,0,0 +2,0,1,5.010635,5.061929,0,6.9,0,0,0 +2,3.258096,0,6.263398,7.649693,.1572505,9.967326,1,0,0 +0,3.258096,0,6.263398,7.649693,.1572505,9.967326,1,0,0 +8,3.258096,0,6.263398,7.649693,.1572505,9.967326,1,0,0 +4,3.258096,0,6.263398,7.649693,.1572505,9.967326,1,0,0 +3,3.258096,0,6.263398,7.649693,.1572505,9.967326,1,0,0 +2,0,1,6.109248,6.160541,0,3.4,1,0,0 +4,0,1,6.109248,6.160541,0,3.4,1,0,0 +10,0,1,6.109248,6.160541,0,3.4,1,0,0 +10,0,1,6.109248,6.160541,0,9.967326,0,0,0 +12,0,1,6.109248,6.160541,0,9.967326,0,0,0 +6,0,1,6.109248,6.160541,0,9.967326,0,0,0 +8,0,1,6.109248,6.160541,0,13.8,0,0,0 +1,0,1,6.109248,6.160541,0,13.8,0,0,0 +7,0,1,6.109248,6.160541,0,13.8,0,0,0 +3,0,1,6.109248,6.160541,0,9.967326,0,0,0 +8,0,1,6.109248,6.160541,0,9.967326,0,0,0 +7,0,1,6.109248,6.160541,0,9.967326,0,0,0 +0,4.564348,0,6.907755,6.959049,.1572505,9.967326,0,0,0 +3,4.564348,0,6.907755,6.959049,.1572505,9.967326,0,0,0 +6,4.564348,0,6.907755,6.959049,.1572505,9.967326,0,0,0 +5,4.564348,0,6.907755,6.959049,.1572505,9.967326,0,0,0 +0,4.564348,0,6.907755,6.959049,.1572505,9.967326,0,0,0 +4,4.564348,0,6.907755,6.959049,.1572505,9.967326,0,0,0 +12,4.564348,0,0,0,0,0,0,0,0 +5,4.564348,0,0,0,0,0,0,0,0 +5,4.564348,0,0,0,0,0,0,0,0 +2,4.564348,0,6.907755,6.959049,.1572505,9.967326,0,0,0 +2,4.564348,0,6.907755,6.959049,.1572505,9.967326,0,0,0 +2,4.564348,0,6.907755,6.959049,.1572505,9.967326,0,0,0 +3,0,0,6.828582,0,0,17.2,0,0,0 +2,0,0,6.828582,0,0,17.2,0,0,0 +4,0,0,6.828582,0,0,17.2,0,0,0 +5,0,0,6.828582,0,0,6.9,0,0,0 +9,0,0,6.828582,0,0,6.9,0,0,0 +7,0,0,6.828582,0,0,6.9,0,0,0 +0,4.564348,0,6.476973,6.528265,0,10.3,1,0,0 +1,4.564348,0,6.476973,6.528265,0,10.3,1,0,0 +0,4.564348,0,6.476973,6.528265,0,10.3,1,0,0 +3,4.564348,0,6.476973,6.528265,0,9.967326,0,0,0 +2,4.564348,0,6.476973,6.528265,0,9.967326,0,0,0 +3,4.564348,0,6.476973,6.528265,0,9.967326,0,0,0 +1,4.564348,0,6.476973,6.528265,0,9.967326,0,0,0 +8,4.564348,0,6.476973,6.528265,0,9.967326,0,0,0 +5,4.564348,0,6.476973,6.528265,0,9.967326,0,0,0 +4,4.564348,0,6.476973,6.528265,0,0,1,0,0 +1,4.564348,0,6.476973,6.528265,0,0,1,0,0 +3,4.564348,0,6.476973,6.528265,0,0,1,0,0 +2,4.564348,0,6.907755,6.959049,0,13.8,1,0,0 +1,4.564348,0,6.907755,6.959049,0,13.8,1,0,0 +3,4.564348,0,6.907755,6.959049,0,13.8,1,0,0 +2,4.564348,0,6.907755,6.959049,0,13.8,1,0,0 +4,4.564348,0,6.907755,6.959049,0,13.8,1,0,0 +7,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +1,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +2,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +4,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +5,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +2,4.564348,0,6.907755,6.959049,0,9.967326,1,0,0 +5,4.564348,0,6.907755,6.959049,0,9.967326,1,0,0 +0,4.564348,0,6.907755,6.959049,0,9.967326,1,0,0 +1,4.564348,0,6.907755,6.959049,0,9.967326,1,0,0 +2,4.564348,0,6.907755,6.959049,0,9.967326,1,0,0 +3,0,0,5.189618,0,0,17.2,1,0,0 +5,0,0,5.189618,0,0,17.2,1,0,0 +1,0,0,5.189618,0,0,17.2,1,0,0 +4,0,1,5.893411,5.755076,0,0,0,0,0 +0,0,1,5.893411,5.755076,0,0,0,0,0 +1,0,1,5.893411,5.755076,0,0,0,0,0 +3,0,1,5.893411,5.755076,0,3.4,0,0,0 +2,0,1,5.893411,5.755076,0,3.4,0,0,0 +2,0,1,5.893411,5.755076,0,3.4,0,0,0 +1,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,9.967326,0,0,0 +3,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,9.967326,0,0,0 +2,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,9.967326,0,0,0 +4,0,0,0,0,0,9.967326,0,0,0 +5,0,0,0,0,0,9.967326,0,0,0 +0,0,0,0,0,0,13.8,0,0,0 +1,0,0,0,0,0,13.8,0,0,0 +0,0,0,0,0,0,13.8,0,0,0 +1,0,0,0,0,0,13.8,0,0,0 +2,0,0,0,0,0,13.8,0,0,0 +7,0,0,0,0,1,6.9,0,0,0 +1,0,0,0,0,1,6.9,0,0,0 +1,0,0,0,0,1,6.9,0,0,0 +2,0,0,0,0,1,6.9,0,0,0 +2,0,0,0,0,1,6.9,0,0,0 +5,3.258096,0,6.586172,8.006368,0,0,0,0,0 +8,3.258096,0,6.586172,8.006368,0,0,0,0,0 +6,3.258096,0,6.586172,8.006368,0,0,0,0,0 +2,3.258096,0,6.586172,8.006368,0,9.967326,0,0,0 +10,3.258096,0,6.586172,8.006368,0,9.967326,0,0,0 +4,3.258096,0,6.586172,8.006368,0,9.967326,0,0,0 +5,3.258096,0,6.586172,8.006368,0,3.4,0,0,0 +2,3.258096,0,6.586172,8.006368,0,3.4,0,0,0 +2,3.258096,0,6.586172,8.006368,0,3.4,0,0,0 +0,3.931826,0,6.907755,7.600903,0,20.7,1,0,0 +6,3.931826,0,6.907755,7.600903,0,20.7,1,0,0 +2,3.931826,0,6.907755,7.600903,0,20.7,1,0,0 +1,3.931826,0,6.907755,7.600903,1,10.3,1,0,0 +5,3.931826,0,6.907755,7.600903,1,10.3,1,0,0 +2,3.931826,0,6.907755,7.600903,1,10.3,1,0,0 +13,3.258096,0,6.611073,7.344202,0,0,1,0,0 +0,3.258096,0,6.611073,7.344202,0,0,1,0,0 +3,3.258096,0,6.611073,7.344202,0,0,1,0,0 +3,3.258096,0,6.611073,7.344202,0,9.967326,1,0,0 +2,3.258096,0,6.611073,7.344202,0,9.967326,1,0,0 +3,3.258096,0,6.611073,7.344202,0,9.967326,1,0,0 +0,0,1,6.611073,6.160541,1,3.4,1,0,0 +6,0,1,6.611073,6.160541,1,3.4,1,0,0 +5,0,1,6.611073,6.160541,1,3.4,1,0,0 +1,0,1,6.611073,6.160541,0,9.967326,1,0,0 +4,0,1,6.611073,6.160541,0,17.2,1,0,0 +5,0,1,6.611073,6.160541,0,17.2,1,0,0 +2,0,1,6.611073,6.160541,0,17.2,1,0,0 +2,0,0,0,0,0,10.3,1,0,0 +0,0,0,0,0,0,10.3,1,0,0 +0,0,0,0,0,0,10.3,1,0,0 +0,0,0,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0 +2,0,0,0,0,0,10.3,1,0,0 +0,0,0,0,0,0,10.3,1,0,0 +1,0,0,0,0,0,10.3,1,0,0 +26,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +14,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +11,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +0,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +3,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +2,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +1,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +2,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +2,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +3,3.258096,0,6.620073,8.006368,0,17.2,0,0,0 +3,3.258096,0,6.620073,8.006368,0,17.2,0,0,0 +4,3.258096,0,6.620073,8.006368,0,17.2,0,0,0 +1,3.258096,0,6.620073,8.006368,0,10.3,0,0,0 +1,3.258096,0,6.620073,8.006368,0,10.3,0,0,0 +0,3.258096,0,6.620073,8.006368,0,10.3,0,0,0 +2,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +3,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +1,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +2,4.564348,0,6.907555,6.959049,0,9.967326,1,0,0 +2,4.564348,0,6.907555,6.959049,0,9.967326,1,0,0 +1,4.564348,0,6.907555,6.959049,0,9.967326,1,0,0 +3,4.564348,0,6.907555,6.959049,0,6.9,1,0,0 +2,4.564348,0,6.907555,6.959049,0,6.9,1,0,0 +1,4.564348,0,6.907555,6.959049,0,6.9,1,0,0 +0,4.564348,0,6.907555,6.959049,0,3.4,1,0,0 +3,4.564348,0,6.907555,6.959049,0,3.4,1,0,0 +5,4.564348,0,6.907555,6.959049,0,3.4,1,0,0 +0,4.564348,0,6.756816,6.808109,0,13.8,0,1,0 +0,4.564348,0,6.756816,6.808109,0,13.8,0,1,0 +1,4.564348,0,6.756816,6.808109,0,9.967326,0,0,0 +0,4.564348,0,6.756816,6.808109,0,9.967326,0,0,0 +0,4.564348,0,6.756816,6.808109,0,6.9,0,0,1 +1,4.564348,0,6.756816,6.808109,0,6.9,0,0,1 +7,0,0,0,0,0,37.9,0,0,0 +6,0,0,0,0,0,37.9,0,0,0 +4,0,0,0,0,0,37.9,0,0,0 +3,0,0,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0 +1,0,0,0,0,0,0,1,0,0 +4,0,0,0,0,0,13.8,0,0,0 +2,0,0,0,0,0,13.8,0,0,0 +1,0,0,0,0,0,13.8,0,0,0 +6,0,0,0,0,1,17.2,1,0,0 +8,0,0,0,0,1,17.2,1,0,0 +2,0,0,0,0,1,17.2,1,0,0 +8,0,0,0,0,0,6.9,0,0,0 +2,0,0,0,0,0,6.9,0,0,0 +2,0,0,0,0,0,6.9,0,0,0 +4,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,9.967326,0,0,0 +1,0,0,0,0,0,9.967326,0,0,0 +2,0,0,0,0,0,3.4,0,0,0 +8,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +2,0,0,0,0,0,3.4,0,0,0 +1,0,0,0,0,0,3.4,0,0,0 +1,0,0,0,0,0,10.3,0,1,0 +2,0,0,0,0,0,10.3,0,1,0 +9,0,0,0,0,0,10.3,0,1,0 +8,0,0,0,0,0,10.3,0,1,0 +4,0,0,0,0,0,10.3,0,1,0 +9,0,0,0,0,0,9.967326,0,0,0 +10,0,0,0,0,0,9.967326,0,0,0 +9,0,0,0,0,0,9.967326,0,0,0 +6,0,0,0,0,0,9.967326,0,0,0 +3,0,0,0,0,0,9.967326,0,0,0 +11,0,0,0,0,1,9.967326,1,0,0 +11,0,0,0,0,1,9.967326,1,0,0 +14,0,0,0,0,1,9.967326,1,0,0 +9,0,0,0,0,1,9.967326,1,0,0 +11,0,0,0,0,1,9.967326,1,0,0 +0,4.564348,0,6.882438,6.959049,0,6.9,0,0,0 +0,4.564348,0,6.882438,6.959049,0,6.9,0,0,0 +1,4.564348,0,6.766191,6.817485,0,10.3,0,0,0 +0,4.564348,0,6.766191,6.817485,0,10.3,0,0,0 +0,4.564348,0,6.766191,6.817485,0,10.3,0,0,0 +0,0,1,6.052089,6.160541,0,6.9,1,0,0 +0,0,1,6.052089,6.160541,0,6.9,1,0,0 +1,0,1,6.052089,6.160541,0,6.9,1,0,0 +0,0,1,6.052089,6.160541,0,9.967326,0,0,0 +3,0,1,6.052089,6.160541,0,9.967326,0,0,0 +1,0,1,6.052089,6.160541,0,9.967326,0,0,0 +0,0,1,6.052089,6.160541,0,9.967326,0,0,0 +0,0,1,6.052089,6.160541,0,9.967326,0,0,0 +4,0,1,6.052089,6.160541,0,9.967326,0,0,0 +3,0,1,6.052089,6.160541,0,13.8,0,0,0 +0,0,1,6.052089,6.160541,0,13.8,0,0,0 +4,0,1,6.052089,6.160541,0,13.8,0,0,0 +1,0,1,6.052089,6.160541,0,9.967326,0,0,0 +0,0,1,6.052089,6.160541,0,9.967326,0,0,0 +0,0,1,6.052089,6.160541,0,9.967326,0,0,0 +4,0,0,4.836282,0,0,10.3,1,0,0 +8,0,0,4.836282,0,0,10.3,1,0,0 +10,0,0,4.836282,0,0,10.3,1,0,0 +9,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +0,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +1,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +0,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +2,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +1,3.931826,0,6.907755,7.600903,0,6.9,0,0,0 +0,3.931826,0,6.907755,7.600903,0,6.9,0,0,0 +4,3.931826,0,6.907755,7.600903,0,6.9,0,0,0 +2,3.931826,0,6.907755,7.600903,0,6.9,0,0,0 +6,3.931826,0,6.907755,7.600903,0,6.9,0,0,0 +8,3.931826,0,6.907755,7.600903,1,6.9,0,0,1 +8,3.931826,0,6.907755,7.600903,1,6.9,0,0,1 +5,3.931826,0,6.907755,7.600903,1,6.9,0,0,1 +4,3.931826,0,6.907755,7.600903,1,6.9,0,0,1 +8,3.931826,0,6.907755,7.600903,1,6.9,0,0,1 +7,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +8,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +5,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +7,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +7,3.931826,0,6.907755,7.600903,0,9.967326,0,0,0 +1,3.931826,0,6.907755,7.600903,0,27.6,0,0,0 +4,3.931826,0,6.907755,7.600903,0,27.6,0,0,0 +6,3.931826,0,6.907755,7.600903,0,27.6,0,0,0 +10,3.931826,0,6.907755,7.600903,0,27.6,0,0,0 +5,3.931826,0,6.907755,7.600903,0,27.6,0,0,0 +1,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +1,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +7,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +16,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +1,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +0,3.931826,0,6.907755,7.600903,0,0,0,0,0 +1,0,1,7.122189,5.755076,0,3.4,0,0,0 +1,0,1,7.122189,5.755076,0,3.4,0,0,0 +2,0,1,7.122189,5.755076,0,3.4,0,0,0 +0,0,1,7.122189,5.755076,0,3.4,0,0,0 +5,0,1,7.122189,5.755076,0,3.4,0,0,0 +0,0,1,7.122189,5.755076,0,0,0,0,0 +0,0,1,7.122189,5.755076,0,0,0,0,0 +0,0,1,7.122189,5.755076,0,0,0,0,0 +0,0,1,7.122189,5.755076,0,0,0,0,0 +1,0,1,7.122189,5.755076,0,0,0,0,0 +6,0,1,5.010635,5.061929,0,3.4,0,0,0 +3,0,1,5.010635,5.061929,0,3.4,0,0,0 +5,0,1,5.010635,5.061929,0,3.4,0,0,0 +6,0,1,5.010635,5.061929,0,3.4,0,0,0 +2,0,1,5.010635,5.061929,0,3.4,0,0,0 +1,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +1,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +1,4.564348,0,6.907755,6.959049,1,10.3,1,0,0 +5,4.564348,0,6.907755,6.959049,1,10.3,1,0,0 +0,4.564348,0,6.907755,6.959049,1,10.3,1,0,0 +5,0,1,0,5.061929,0,6.9,1,0,0 +0,0,1,0,5.061929,0,6.9,1,0,0 +4,0,1,0,5.061929,0,6.9,1,0,0 +3,0,0,0,0,1,37.9,1,0,0 +1,0,0,0,0,1,37.9,1,0,0 +2,0,0,0,0,0,3.4,1,0,0 +3,0,0,0,0,0,3.4,1,0,0 +3,0,0,0,0,0,3.4,1,0,0 +6,0,0,0,0,0,3.4,0,1,0 +2,0,0,0,0,0,3.4,0,1,0 +6,0,0,0,0,0,3.4,0,1,0 +1,3.258096,0,6.612955,7.999249,0,10.3,1,0,0 +2,3.258096,0,6.612955,7.999249,0,10.3,1,0,0 +3,3.258096,0,6.612955,7.999249,0,10.3,1,0,0 +2,3.258096,0,6.612955,7.999249,0,10.3,1,0,0 +0,3.258096,0,6.612955,7.999249,0,10.3,1,0,0 +4,3.258096,0,5.703783,7.090077,1,6.9,0,0,0 +2,3.258096,0,5.703783,7.090077,1,6.9,0,0,0 +1,3.258096,0,5.703783,7.090077,1,6.9,0,0,0 +1,3.258096,0,5.703783,7.090077,1,6.9,0,0,0 +1,3.258096,0,5.703783,7.090077,1,6.9,0,0,0 +3,3.258096,0,5.703783,7.090077,0,10.3,1,0,0 +6,3.258096,0,5.703783,7.090077,0,10.3,1,0,0 +7,3.258096,0,5.703783,7.090077,0,10.3,1,0,0 +3,3.258096,0,5.703783,7.090077,0,10.3,1,0,0 +14,3.258096,0,5.703783,7.090077,0,10.3,1,0,0 +1,3.258096,0,5.703783,7.090077,0,9.967326,0,0,0 +1,3.258096,0,5.703783,7.090077,0,9.967326,0,0,0 +2,3.258096,0,5.703783,7.090077,0,9.967326,0,0,0 +2,3.258096,0,5.703783,7.090077,0,9.967326,0,0,0 +2,3.258096,0,5.703783,7.090077,0,9.967326,0,0,0 +1,4.564348,0,6.123589,6.174882,0,3.4,1,0,0 +0,4.564348,0,6.123589,6.174882,0,3.4,1,0,0 +2,4.564348,0,6.123589,6.174882,0,3.4,1,0,0 +0,4.564348,0,6.123589,6.174882,0,24.1,1,0,0 +0,4.564348,0,6.123589,6.174882,0,24.1,1,0,0 +0,4.564348,0,6.123589,6.174882,0,24.1,1,0,0 +0,4.564348,0,6.123589,6.174882,0,13.8,1,0,0 +0,4.564348,0,6.123589,6.174882,0,13.8,1,0,0 +0,4.564348,0,6.123589,6.174882,0,13.8,1,0,0 +3,4.564348,0,6.123589,6.174882,0,3.4,1,0,0 +0,4.564348,0,6.123589,6.174882,0,3.4,1,0,0 +4,4.564348,0,6.123589,6.174882,0,3.4,1,0,0 +0,4.564348,0,5.416101,5.467394,0,6.9,1,0,0 +0,4.564348,0,5.416101,5.467394,0,6.9,1,0,0 +0,4.564348,0,5.416101,5.467394,0,6.9,1,0,0 +0,4.564348,0,6.802395,6.853688,0,3.4,0,0,0 +0,4.564348,0,6.802395,6.853688,0,3.4,0,0,0 +3,4.564348,0,6.802395,6.853688,0,3.4,0,0,0 +0,4.564348,0,6.802395,6.853688,1,10.3,0,0,0 +5,4.564348,0,6.802395,6.853688,1,10.3,0,0,0 +8,4.564348,0,6.802395,6.853688,1,10.3,0,0,0 +0,3.258096,0,6.620073,8.006368,0,0,0,0,0 +0,3.258096,0,6.620073,8.006368,0,0,0,0,0 +0,3.258096,0,6.620073,8.006368,0,0,0,0,0 +2,3.931826,0,6.907755,7.600903,0,6.9,0,0,0 +14,3.931826,0,6.907755,7.600903,0,6.9,0,0,0 +6,3.931826,0,6.907755,7.600903,0,6.9,0,0,0 +2,3.931826,0,6.907755,7.600903,0,6.9,0,0,0 +7,3.931826,0,6.907755,7.600903,0,6.9,0,0,0 +0,3.931826,0,5.741848,4.49981,0,0,0,0,0 +0,3.931826,0,5.741848,4.49981,0,0,0,0,0 +0,3.931826,0,5.741848,4.49981,0,0,0,0,0 +8,0,0,5.741848,0,0,10.3,0,1,0 +11,0,0,5.741848,0,0,10.3,0,1,0 +11,0,0,5.741848,0,0,10.3,0,1,0 +3,0,0,4.836282,0,0,6.9,1,0,0 +11,0,0,4.836282,0,0,6.9,1,0,0 +8,0,0,4.836282,0,0,6.9,1,0,0 +1,0,1,5.913449,5.755076,0,13.8,0,0,0 +0,0,1,5.913449,5.755076,0,13.8,0,0,0 +1,0,1,5.913449,5.755076,0,13.8,0,0,0 +2,0,1,5.913449,5.755076,0,13.8,0,0,0 +0,0,1,5.913449,5.755076,0,13.8,0,0,0 +2,0,1,5.913449,5.755076,0,10.3,1,0,0 +2,0,1,5.913449,5.755076,0,10.3,1,0,0 +1,0,1,5.913449,5.755076,0,10.3,1,0,0 +4,0,1,5.913449,5.755076,0,10.3,1,0,0 +1,0,1,5.913449,5.755076,0,10.3,1,0,0 +2,0,0,0,0,0,6.9,1,0,0 +10,0,0,0,0,0,6.9,1,0,0 +12,0,0,0,0,0,6.9,1,0,0 +11,0,0,0,0,0,6.9,1,0,0 +4,0,0,0,0,0,6.9,1,0,0 +7,0,0,5.418764,0,0,9.967326,0,0,0 +3,0,0,5.418764,0,0,9.967326,0,0,0 +0,0,0,5.418764,0,0,9.967326,0,0,0 +5,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +7,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +5,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +2,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +1,3.258096,0,6.620073,8.006368,0,9.967326,0,0,0 +1,0,1,5.749202,5.755076,0,10.3,0,0,0 +0,0,1,5.749202,5.755076,0,10.3,0,0,0 +1,0,1,5.749202,5.755076,0,10.3,0,0,0 +0,0,1,5.749202,5.755076,0,10.3,0,0,0 +2,0,1,5.749202,5.755076,0,10.3,0,0,0 +6,4.564348,0,6.372978,6.424272,.0268456,9.967326,0,0,0 +3,4.564348,0,6.372978,6.424272,.0268456,9.967326,0,0,0 +2,4.564348,0,6.372978,6.424272,.0268456,9.967326,0,0,0 +3,4.564348,0,6.372978,6.424272,.0268456,9.967326,0,0,0 +2,4.564348,0,6.372978,6.424272,.0268456,9.967326,0,0,0 +1,0,0,6.346478,0,0,0,0,0,0 +2,0,0,6.346478,0,0,0,0,0,0 +1,0,0,6.346478,0,0,0,0,0,0 +5,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +4,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +1,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +2,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +2,4.564348,0,6.907755,6.959049,0,9.967326,0,0,0 +0,0,0,3.401197,0,0,6.9,0,0,0 +0,0,0,3.401197,0,0,6.9,0,0,0 +1,0,0,3.401197,0,0,6.9,0,0,0 +4,0,0,3.401197,0,0,6.9,0,0,0 +5,0,0,0,0,1,10.3,0,0,0 +2,0,0,0,0,1,10.3,0,0,0 +3,0,0,0,0,0,10.3,0,0,0 +5,0,0,0,0,0,10.3,0,0,0 +5,0,0,0,0,0,10.3,0,0,0 +5,3.258096,0,6.620073,8.006368,1,37.9,0,0,0 +6,3.258096,0,6.620073,8.006368,1,37.9,0,0,0 +3,3.258096,0,6.620073,8.006368,1,37.9,0,0,0 +2,0,1,5.749202,5.755076,.0268456,9.967326,0,0,0 +3,0,1,5.749202,5.755076,.0268456,9.967326,0,0,0 +1,0,1,5.749202,5.755076,.0268456,9.967326,0,0,0 +3,0,1,5.749202,5.755076,.0268456,9.967326,0,0,0 +7,0,1,5.749202,5.755076,.0268456,9.967326,0,0,0 +0,0,0,0,0,.1572505,9.967326,0,0,0 +7,0,0,0,0,.0268456,9.967326,0,0,0 +4,0,0,0,0,.0268456,9.967326,0,0,0 +7,0,0,0,0,.0268456,9.967326,0,0,0 +2,0,0,0,0,.0268456,9.967326,0,0,0 +13,0,0,6.200184,0,.0268456,9.967326,0,0,0 +4,0,0,6.200184,0,.0268456,9.967326,0,0,0 +1,0,0,6.200184,0,.0268456,9.967326,0,0,0 +5,0,0,6.200184,0,.0268456,9.967326,0,0,0 +5,0,0,6.200184,0,.0268456,9.967326,0,0,0 +12,3.931826,0,6.907755,7.600903,.0268456,9.967326,0,0,0 +4,3.931826,0,6.907755,7.600903,.0268456,9.967326,0,0,0 +6,0,0,0,0,.0268456,9.967326,0,0,0 +7,0,0,0,0,.0268456,9.967326,0,0,0 +2,3.258096,0,5.703783,7.090077,.0268456,9.967326,0,0,0 +2,3.258096,0,5.703783,7.090077,.0268456,9.967326,0,0,0 +5,3.258096,0,5.703783,7.090077,.0268456,9.967326,0,0,0 +2,3.258096,0,5.703783,7.090077,.0268456,9.967326,0,0,0 +4,0,0,0,0,.0268456,9.967326,0,0,0 +3,0,0,0,0,.0268456,9.967326,0,0,0 +18,0,1,6.109248,6.160541,.0268456,9.967326,0,0,0 +13,0,1,6.109248,6.160541,.0268456,9.967326,0,0,0 +9,0,0,0,0,.0268456,9.967326,0,0,0 +10,0,0,0,0,.0268456,9.967326,0,0,0 +7,0,0,0,0,.0268456,9.967326,0,0,0 +7,0,0,0,0,.0268456,9.967326,0,0,0 +5,0,0,0,0,.0268456,9.967326,0,0,0 +4,0,0,0,0,.0268456,9.967326,0,0,0 +2,0,0,0,0,.0268456,9.967326,0,0,0 +4,0,0,0,0,.0268456,9.967326,0,0,0 +6,4.564348,0,6.907555,6.959049,.0268456,9.967326,0,0,0 +2,4.564348,0,6.907555,6.959049,.0268456,9.967326,0,0,0 +4,0,0,5.321057,0,.0268456,9.967326,0,0,0 +3,0,1,6.109248,6.160541,.0268456,9.967326,0,0,0 +3,0,0,0,0,.0268456,9.967326,0,0,0 +5,0,0,0,0,.0268456,9.967326,0,0,0 +3,0,1,5.703783,5.755076,.0268456,9.967326,0,0,0 +2,0,1,5.703783,5.755076,.0268456,9.967326,0,0,0 +1,0,1,5.703783,5.755076,.0268456,9.967326,0,0,0 +20,0,0,0,0,.0268456,9.967326,0,0,0 +6,4.564348,0,6.907755,6.959049,.0268456,9.967326,0,0,0 +1,0,0,0,0,.0268456,9.967326,0,0,0 +11,0,1,5.893411,5.755076,.0268456,9.967326,0,0,0 +7,4.564348,0,0,3.592253,.0268456,9.967326,0,0,0 +2,0,1,5.010635,5.061929,.0268456,9.967326,0,0,0 +3,0,1,5.010635,5.061929,.0268456,9.967326,0,0,0 +1,0,1,5.010635,5.061929,.0268456,9.967326,0,0,0 +7,0,1,5.749202,5.755076,.0268456,9.967326,0,0,0 +2,0,1,5.749202,5.755076,.0268456,9.967326,0,0,0 +1,0,1,5.749202,5.755076,.0268456,9.967326,0,0,0 +0,4.564348,0,5.521461,5.572754,.0268456,9.967326,0,0,0 +8,0,0,0,0,.0268456,9.967326,0,0,0 +3,3.258096,0,6.619806,8.006368,.0268456,9.967326,0,0,0 +7,3.258096,0,6.619806,8.006368,.0268456,9.967326,0,0,0 +7,3.258096,0,5.703783,7.090077,.0268456,9.967326,0,0,0 +2,3.258096,0,5.703783,7.090077,.0268456,9.967326,0,0,0 +4,0,1,5.881984,5.755076,.0268456,9.967326,0,0,0 +0,0,1,5.881984,5.755076,.0268456,9.967326,0,0,0 +6,0,1,5.749202,5.755076,.0268456,9.967326,0,0,0 +2,0,1,5.749202,5.755076,.0268456,9.967326,0,0,0 +7,0,1,0,0,.0268456,9.967326,0,0,0 +6,0,0,0,0,.0268456,9.967326,0,0,0 +8,3.258096,0,6.620073,8.006368,0,17.2,0,0,0 +7,3.258096,0,6.620073,8.006368,0,17.2,0,0,0 +9,3.258096,0,6.620073,8.006368,0,17.2,0,0,0 +2,0,0,0,0,0,6.9,0,0,0 +1,0,0,0,0,0,6.9,0,0,0 +2,0,0,0,0,0,6.9,0,0,0 +3,0,0,0,0,0,10.57626,0,0,0 +4,0,0,0,0,0,10.57626,0,0,0 +4,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,0,10.57626,0,1,0 +2,0,0,0,0,0,10.57626,0,1,0 +2,0,0,0,0,0,10.57626,0,1,0 +0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0 +1,0,1,0,5.755076,1,13.8,0,1,0 +3,0,1,0,5.755076,1,13.8,0,1,0 +0,0,1,0,5.755076,1,13.8,0,1,0 +0,0,1,0,5.755076,1,13.8,0,1,0 +2,0,1,0,5.755076,1,13.8,0,1,0 +0,0,1,0,5.755076,0,6.9,0,0,0 +0,0,1,0,5.755076,0,6.9,0,0,0 +0,0,1,0,5.755076,0,6.9,0,0,0 +0,0,1,0,5.755076,0,6.9,0,0,0 +0,0,1,0,5.755076,0,6.9,0,0,0 +3,0,0,0,0,0,20.7,0,0,0 +1,0,0,0,0,0,20.7,0,0,0 +0,0,0,0,0,0,20.7,0,0,0 +1,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +1,0,0,0,0,0,3.4,0,0,0 +3,0,0,0,0,0,3.4,0,0,0 +2,0,0,0,0,0,3.4,0,0,0 +2,0,0,0,0,0,31,0,1,0 +2,0,0,0,0,0,31,0,1,0 +2,0,0,0,0,0,31,0,1,0 +1,0,0,0,0,0,31,0,1,0 +7,0,0,0,0,0,31,0,1,0 +3,0,0,0,0,1,27.6,0,0,1 +5,0,0,0,0,1,27.6,0,0,1 +4,0,0,0,0,1,27.6,0,0,1 +8,0,0,0,0,1,27.6,0,0,1 +9,0,0,0,0,1,27.6,0,0,1 +9,0,0,0,0,0,3.4,1,0,0 +5,0,0,0,0,0,3.4,1,0,0 +0,0,0,0,0,0,3.4,1,0,0 +2,0,0,0,0,0,3.4,1,0,0 +8,0,0,0,0,0,3.4,1,0,0 +3,3.258096,0,6.620073,8.006368,1,24.1,0,1,0 +7,3.258096,0,6.620073,8.006368,1,24.1,0,1,0 +6,3.258096,0,6.620073,8.006368,1,24.1,0,1,0 +2,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +3,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +5,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +1,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +1,4.564348,0,6.907755,6.959049,0,10.3,0,0,0 +0,3.258096,0,0,6.866933,0,3.4,1,0,0 +0,3.258096,0,0,6.866933,0,3.4,1,0,0 +2,3.258096,0,0,6.866933,0,3.4,1,0,0 +1,0,1,0,5.061929,0,20.7,1,0,0 +3,0,1,0,5.061929,0,20.7,1,0,0 +1,0,1,0,5.061929,0,20.7,1,0,0 +0,0,0,0,0,1,27.6,0,0,1 +0,0,0,0,0,1,27.6,0,0,1 +0,0,0,0,0,1,27.6,0,0,1 +2,0,0,0,0,1,27.6,0,0,1 +0,0,0,0,0,1,27.6,0,0,1 +0,0,0,0,0,0,6.9,0,0,0 +0,0,0,0,0,0,6.9,0,0,0 +0,0,0,0,0,0,6.9,0,0,0 +0,0,0,0,0,0,6.9,0,0,0 +0,0,0,0,0,0,6.9,0,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +1,0,0,0,0,0,10.57626,0,0,0 +2,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +2,0,0,2.484907,0,0,17.2,0,0,0 +1,0,0,2.484907,0,0,17.2,0,0,0 +8,0,0,2.484907,0,0,17.2,0,0,0 +4,0,0,2.484907,0,0,17.2,0,0,0 +3,0,0,2.484907,0,0,17.2,0,0,0 +4,0,1,6.761573,6.160541,0,10.3,0,1,0 +1,0,1,6.761573,6.160541,0,10.3,0,1,0 +0,0,1,6.761573,6.160541,0,10.57626,0,0,0 +1,0,1,6.761573,6.160541,0,10.57626,0,0,0 +2,0,1,6.761573,6.160541,0,10.57626,0,0,0 +0,0,1,6.761573,6.160541,0,10.57626,0,0,0 +6,0,1,6.761573,6.160541,1,6.9,0,1,0 +0,0,1,6.761573,6.160541,1,6.9,0,1,0 +0,0,1,0,6.160541,0,10.57626,1,0,0 +0,0,1,0,6.160541,0,10.57626,1,0,0 +0,0,1,0,6.160541,0,10.57626,1,0,0 +0,0,1,0,6.160541,0,3.4,1,0,0 +0,0,1,0,6.160541,0,3.4,1,0,0 +0,0,1,0,6.160541,0,3.4,1,0,0 +0,0,1,0,6.160541,0,6.9,1,0,0 +13,0,1,6.109248,6.160541,0,6.9,0,0,0 +1,0,1,6.109248,6.160541,0,6.9,0,0,0 +2,0,1,6.109248,6.160541,0,6.9,0,0,0 +1,0,1,6.109248,6.160541,0,6.9,0,0,0 +5,0,1,6.109248,6.160541,0,6.9,0,0,0 +2,0,1,6.109248,6.160541,0,10.57626,0,0,0 +2,0,1,6.109248,6.160541,0,10.57626,0,0,0 +5,0,1,6.109248,6.160541,0,10.57626,0,0,0 +1,0,1,6.109248,6.160541,0,10.57626,0,0,0 +2,0,1,6.109248,6.160541,0,10.57626,0,0,0 +5,0,1,6.109248,6.160541,0,20.7,1,0,0 +3,0,1,6.109248,6.160541,0,20.7,1,0,0 +4,0,1,6.109248,6.160541,0,20.7,1,0,0 +6,0,1,6.109248,6.160541,0,20.7,1,0,0 +3,0,1,6.109248,6.160541,0,20.7,1,0,0 +0,4.564348,0,5.991465,6.042758,0,6.9,0,1,0 +0,4.564348,0,5.991465,6.042758,0,6.9,0,1,0 +0,4.564348,0,5.991465,6.042758,0,6.9,0,1,0 +0,4.564348,0,5.991465,6.042758,0,10.57626,0,0,0 +0,4.564348,0,5.991465,6.042758,0,10.57626,0,0,0 +0,4.564348,0,5.991465,6.042758,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,17.2,0,1,0 +3,0,1,6.109248,6.160541,0,17.2,0,1,0 +0,0,1,6.109248,6.160541,0,17.2,0,1,0 +0,0,1,6.109248,6.160541,0,17.2,0,1,0 +2,0,1,6.109248,6.160541,0,17.2,0,1,0 +0,0,1,6.109248,6.160541,0,3.4,0,1,0 +2,0,1,6.109248,6.160541,0,3.4,0,1,0 +0,0,1,6.109248,6.160541,0,3.4,0,1,0 +4,0,1,6.109248,6.160541,0,3.4,0,1,0 +0,0,1,6.109248,6.160541,0,3.4,0,1,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +1,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +4,0,1,5.010635,5.061929,0,10.3,1,0,0 +2,0,1,5.010635,5.061929,0,10.3,1,0,0 +5,0,1,5.010635,5.061929,0,10.3,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +1,0,0,0,0,0,10.57626,1,0,0 +1,0,0,0,0,0,10.57626,1,0,0 +1,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,3.4,1,0,0 +0,0,0,0,0,0,3.4,1,0,0 +0,0,0,0,0,0,3.4,1,0,0 +6,0,0,0,0,0,3.4,1,0,0 +0,0,0,0,0,0,3.4,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +3,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,24.1,0,1,0 +2,0,0,0,0,0,24.1,0,1,0 +8,0,0,0,0,0,24.1,0,1,0 +12,0,0,0,0,0,24.1,0,1,0 +16,0,0,0,0,0,24.1,0,1,0 +0,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +3,0,0,0,0,0,10.57626,0,0,0 +3,0,0,0,0,0,10.57626,0,0,0 +1,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,0,10.3,1,0,0 +2,0,0,0,0,0,10.3,1,0,0 +1,0,0,0,0,0,10.3,1,0,0 +3,0,0,0,0,0,10.3,1,0,0 +7,0,0,0,0,0,10.3,1,0,0 +0,0,0,0,0,0,13.8,1,0,0 +0,0,0,0,0,0,13.8,1,0,0 +0,0,0,0,0,0,13.8,1,0,0 +0,0,0,0,0,0,13.8,1,0,0 +0,0,0,0,0,0,13.8,1,0,0 +0,0,0,5.970139,0,0,3.4,0,0,0 +0,0,0,5.970139,0,0,3.4,0,0,0 +1,0,0,5.970139,0,0,3.4,0,0,0 +1,0,0,5.970139,0,0,3.4,0,0,0 +0,0,0,5.970139,0,0,3.4,0,0,0 +0,0,0,5.970139,0,0,0,1,0,0 +0,0,0,5.970139,0,0,0,1,0,0 +0,0,0,5.970139,0,0,0,1,0,0 +0,0,0,5.970139,0,0,0,1,0,0 +0,0,0,5.970139,0,0,0,1,0,0 +0,0,0,5.970139,0,0,10.57626,0,0,0 +0,0,0,5.970139,0,0,10.57626,0,0,0 +0,0,0,5.970139,0,0,10.57626,0,0,0 +0,0,0,5.970139,0,0,10.57626,0,0,0 +0,0,0,5.970139,0,0,10.57626,0,0,0 +1,0,0,5.970139,0,0,10.57626,1,0,0 +0,0,0,5.970139,0,0,10.57626,1,0,0 +0,0,0,5.970139,0,0,10.57626,1,0,0 +0,0,0,5.970139,0,0,10.57626,1,0,0 +0,0,0,5.970139,0,0,10.57626,1,0,0 +0,0,0,5.970139,0,0,10.57626,1,0,0 +0,0,0,5.970139,0,0,10.57626,1,0,0 +0,0,0,5.970139,0,0,10.57626,1,0,0 +0,0,0,5.970139,0,0,10.57626,1,0,0 +0,0,0,5.970139,0,0,10.57626,1,0,0 +5,0,1,6.109248,6.160541,0,20.7,0,0,0 +3,0,1,6.109248,6.160541,0,20.7,0,0,0 +3,0,1,6.109248,6.160541,0,20.7,0,0,0 +4,0,1,6.109248,6.160541,0,13.8,0,0,0 +1,0,1,6.109248,6.160541,0,13.8,0,0,0 +4,0,1,6.109248,6.160541,0,13.8,0,0,0 +5,0,0,6.240744,0,0,3.4,1,0,0 +7,0,0,6.240744,0,0,3.4,1,0,0 +4,0,0,6.240744,0,0,3.4,1,0,0 +1,0,0,6.240744,0,0,3.4,1,0,0 +1,0,0,6.240744,0,0,3.4,1,0,0 +11,0,0,6.240744,0,0,10.57626,1,0,0 +15,0,0,6.240744,0,0,10.57626,1,0,0 +6,0,0,6.240744,0,0,10.57626,1,0,0 +2,0,0,6.240744,0,0,10.57626,1,0,0 +2,0,0,6.240744,0,0,10.57626,1,0,0 +13,0,0,6.240744,0,0,10.57626,1,0,0 +17,0,0,6.240744,0,0,10.57626,1,0,0 +10,0,0,6.240744,0,0,10.57626,1,0,0 +13,0,0,6.240744,0,0,10.57626,1,0,0 +11,0,0,6.240744,0,0,10.57626,1,0,0 +5,0,0,6.240744,0,0,3.4,1,0,0 +7,0,0,6.240744,0,0,3.4,1,0,0 +5,0,0,6.240744,0,0,3.4,1,0,0 +4,0,0,6.240744,0,0,3.4,1,0,0 +3,0,0,6.240744,0,0,3.4,1,0,0 +7,0,1,5.703783,5.755076,0,13.8,1,0,0 +9,0,1,5.703783,5.755076,0,13.8,1,0,0 +11,0,1,5.703783,5.755076,0,13.8,1,0,0 +1,0,1,5.703783,5.755076,0,3.4,1,0,0 +2,0,1,5.703783,5.755076,0,3.4,1,0,0 +0,0,1,5.703783,5.755076,0,3.4,1,0,0 +0,0,1,5.010635,5.061929,0,3.4,1,0,0 +0,0,1,5.010635,5.061929,0,3.4,1,0,0 +0,0,1,5.010635,5.061929,0,3.4,1,0,0 +0,3.258096,0,6.471356,5.771441,0,10.57626,1,0,0 +0,3.258096,0,6.471356,5.771441,0,10.57626,1,0,0 +0,3.258096,0,6.471356,5.771441,0,10.57626,1,0,0 +0,3.258096,0,6.471356,5.771441,0,0,0,1,0 +1,3.258096,0,6.471356,5.771441,0,0,0,1,0 +0,3.258096,0,6.471356,5.771441,0,0,0,1,0 +0,3.258096,0,6.471356,5.771441,0,3.4,1,0,0 +0,3.258096,0,6.471356,5.771441,0,3.4,1,0,0 +0,3.258096,0,6.471356,5.771441,0,3.4,1,0,0 +0,3.258096,0,6.471356,5.771441,0,10.57626,1,0,0 +0,3.258096,0,6.471356,5.771441,0,10.57626,1,0,0 +0,3.258096,0,6.471356,5.771441,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,.1442925,10.57626,0,0,0 +0,0,1,6.109248,6.160541,.1442925,10.57626,0,0,0 +1,0,1,6.109248,6.160541,.1442925,10.57626,0,0,0 +0,0,1,6.109248,6.160541,.1442925,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,6.9,0,0,0 +0,0,1,6.109248,6.160541,0,6.9,0,0,0 +0,0,1,6.109248,6.160541,0,6.9,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,1,0 +0,0,1,6.109248,6.160541,0,3.4,0,1,0 +0,0,1,6.109248,6.160541,0,3.4,0,1,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +5,0,0,0,0,0,3.4,1,0,0 +0,0,0,0,0,0,3.4,1,0,0 +4,0,0,0,0,0,3.4,1,0,0 +1,4.564348,0,7.06732,6.675624,0,10.57626,0,0,0 +1,4.564348,0,7.06732,6.675624,0,10.57626,0,0,0 +0,4.564348,0,7.06732,6.675624,0,10.57626,0,0,0 +5,4.564348,0,7.06732,6.675624,0,10.57626,0,0,0 +8,4.564348,0,7.06732,6.675624,0,10.57626,0,0,0 +5,4.564348,0,7.06732,6.675624,0,13.8,0,0,0 +4,4.564348,0,7.06732,6.675624,0,13.8,0,0,0 +4,4.564348,0,7.06732,6.675624,0,13.8,0,0,0 +6,4.564348,0,7.06732,6.675624,0,13.8,0,0,0 +4,4.564348,0,7.06732,6.675624,0,13.8,0,0,0 +2,4.564348,0,7.06732,6.675624,0,3.4,0,0,0 +0,4.564348,0,7.06732,6.675624,0,3.4,0,0,0 +0,4.564348,0,7.06732,6.675624,0,3.4,0,0,0 +0,4.564348,0,7.06732,6.675624,0,3.4,0,0,0 +0,4.564348,0,7.06732,6.675624,0,3.4,0,0,0 +5,4.564348,0,7.06732,6.675624,1,10.57626,0,0,0 +9,4.564348,0,7.06732,6.675624,1,10.57626,0,0,0 +3,4.564348,0,7.06732,6.675624,1,10.57626,0,0,0 +4,4.564348,0,7.06732,6.675624,1,10.57626,0,0,0 +4,4.564348,0,7.06732,6.675624,1,10.57626,0,0,0 +1,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +0,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +1,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +5,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +5,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +1,0,0,5.009835,0,0,0,1,0,0 +2,0,0,5.009835,0,0,0,1,0,0 +0,0,0,5.009835,0,0,0,1,0,0 +0,0,0,5.009835,0,0,6.9,0,0,0 +0,0,0,5.009835,0,0,6.9,0,0,0 +0,0,0,5.009835,0,0,6.9,0,0,0 +2,0,0,3.401197,0,0,10.57626,0,0,0 +4,0,0,3.401197,0,0,10.57626,0,0,0 +2,0,0,3.401197,0,0,10.57626,0,0,0 +7,0,0,3.401197,0,0,17.2,1,0,0 +3,0,0,3.401197,0,0,17.2,1,0,0 +2,0,0,3.401197,0,0,17.2,1,0,0 +11,0,0,3.401197,0,0,10.57626,1,0,0 +14,0,0,3.401197,0,0,10.57626,1,0,0 +14,0,0,3.401197,0,0,10.57626,1,0,0 +0,0,0,3.401197,0,0,13.8,1,0,0 +0,0,0,3.401197,0,0,13.8,1,0,0 +1,0,0,3.401197,0,0,13.8,1,0,0 +2,0,0,3.401197,0,0,3.4,0,0,0 +1,0,0,3.401197,0,0,3.4,0,0,0 +2,0,0,3.401197,0,0,3.4,0,0,0 +13,4.564348,0,6.907755,6.959049,0,24.1,0,0,0 +3,4.564348,0,6.907755,6.959049,0,24.1,0,0,0 +9,4.564348,0,6.907755,6.959049,0,24.1,0,0,0 +4,3.258096,0,6.620073,8.006368,0,17.2,1,0,0 +4,3.258096,0,6.620073,8.006368,0,17.2,1,0,0 +8,3.258096,0,6.620073,8.006368,0,17.2,1,0,0 +2,3.258096,0,6.620073,8.006368,1,27.6,0,0,0 +3,3.258096,0,6.620073,8.006368,1,27.6,0,0,0 +2,3.258096,0,6.620073,8.006368,1,27.6,0,0,0 +1,3.258096,0,6.620073,8.006368,0,13.8,0,0,0 +0,3.258096,0,6.620073,8.006368,0,13.8,0,0,0 +0,3.258096,0,6.620073,8.006368,0,13.8,0,0,0 +5,0,1,6.109248,6.160541,0,10.57626,0,0,0 +2,0,1,6.109248,6.160541,0,10.57626,0,0,0 +5,0,1,6.109248,6.160541,0,17.2,0,0,0 +1,0,1,6.109248,6.160541,0,17.2,0,0,0 +2,0,1,6.109248,6.160541,0,6.9,0,0,0 +0,0,1,6.109248,6.160541,0,6.9,0,0,0 +1,4.564348,0,6.537792,6.282464,0,10.57626,1,0,0 +0,4.564348,0,6.537792,6.282464,1,10.3,1,0,0 +0,4.564348,0,6.537792,6.282464,1,10.3,1,0,0 +0,4.564348,0,6.537792,6.282464,0,10.3,1,0,0 +0,4.564348,0,6.537792,6.282464,0,10.3,1,0,0 +0,4.564348,0,6.537792,6.282464,1,10.3,1,0,0 +1,3.258096,0,6.620073,8.006368,0,10.3,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.3,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.3,1,0,0 +0,3.258096,0,6.620073,8.006368,0,17.2,1,0,0 +4,3.258096,0,6.620073,8.006368,0,17.2,1,0,0 +0,3.258096,0,6.620073,8.006368,0,17.2,1,0,0 +2,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +1,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +0,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +1,4.564348,0,6.235587,6.28688,0,10.57626,0,0,0 +0,4.564348,0,6.235587,6.28688,0,10.57626,0,0,0 +0,4.564348,0,6.235587,6.28688,0,10.57626,0,0,0 +0,4.564348,0,6.235587,6.28688,0,10.57626,0,0,0 +0,4.564348,0,6.235587,6.28688,0,10.57626,0,0,0 +6,4.564348,0,6.235587,6.28688,0,10.57626,0,0,0 +0,4.564348,0,6.235587,6.28688,0,0,0,0,0 +1,4.564348,0,6.235587,6.28688,0,0,0,0,0 +3,4.564348,0,6.235587,6.28688,0,0,0,0,0 +0,4.564348,0,6.235587,6.28688,0,6.9,1,0,0 +0,4.564348,0,6.235587,6.28688,0,6.9,1,0,0 +1,4.564348,0,6.235587,6.28688,0,6.9,1,0,0 +0,4.564348,0,6.235587,6.28688,0,10.57626,0,0,0 +0,4.564348,0,6.235587,6.28688,0,10.57626,0,0,0 +0,4.564348,0,6.235587,6.28688,0,10.57626,0,0,0 +1,4.564348,0,6.907755,6.959049,0,3.4,1,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,1,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,1,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,1,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,1,0,0 +1,4.564348,0,6.907755,6.959049,0,0,0,0,0 +0,4.564348,0,6.907755,6.959049,0,0,0,0,0 +0,4.564348,0,6.907755,6.959049,0,0,0,0,0 +1,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +2,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +6,4.564348,0,6.907755,6.959049,1,20.7,1,0,0 +2,4.564348,0,6.907755,6.959049,1,20.7,1,0,0 +1,4.564348,0,6.907755,6.959049,1,20.7,1,0,0 +7,4.564348,0,6.907755,6.959049,1,20.7,1,0,0 +15,4.564348,0,6.907755,6.959049,1,20.7,1,0,0 +2,4.564348,0,0,5.714254,1,13.8,1,0,0 +1,4.564348,0,0,5.714254,1,13.8,1,0,0 +4,4.564348,0,0,5.714254,1,13.8,1,0,0 +0,4.564348,0,4.959693,5.010986,1,6.9,1,0,0 +0,4.564348,0,4.959693,5.010986,1,6.9,1,0,0 +0,4.564348,0,4.959693,5.010986,1,6.9,1,0,0 +0,4.564348,0,4.959693,5.010986,1,13.8,0,0,0 +0,4.564348,0,4.959693,5.010986,1,13.8,0,0,0 +0,4.564348,0,4.959693,5.010986,1,13.8,0,0,0 +0,0,0,0,0,0,10.3,0,0,0 +2,0,0,0,0,0,10.3,0,0,0 +4,0,0,0,0,0,10.3,0,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +1,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +1,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,10.57626,0,1,0 +0,0,0,0,0,0,10.57626,0,1,0 +0,0,0,0,0,0,10.57626,0,1,0 +0,0,0,4.992878,0,.1442925,10.57626,0,0,0 +0,0,0,4.992878,0,.1442925,10.57626,0,0,0 +0,0,0,4.992878,0,.1442925,10.57626,0,0,0 +0,0,0,4.992878,0,1,6.9,1,0,0 +0,0,0,4.992878,0,1,6.9,1,0,0 +0,0,0,4.992878,0,1,6.9,1,0,0 +0,0,0,4.992878,0,.1442925,10.57626,0,0,0 +4,0,0,4.992878,0,.1442925,10.57626,0,0,0 +0,0,0,4.992878,0,.1442925,10.57626,0,0,0 +0,0,0,4.992878,0,0,13.8,1,0,0 +0,0,0,4.992878,0,0,13.8,1,0,0 +0,0,0,4.992878,0,0,13.8,1,0,0 +0,4.564348,0,5.172754,5.224048,0,10.3,1,0,0 +0,4.564348,0,5.172754,5.224048,0,10.3,1,0,0 +0,4.564348,0,5.172754,5.224048,0,10.3,1,0,0 +0,4.564348,0,5.172754,5.224048,.1442925,10.57626,1,0,0 +0,4.564348,0,5.172754,5.224048,.1442925,10.57626,1,0,0 +0,4.564348,0,5.172754,5.224048,.1442925,10.57626,1,0,0 +0,4.564348,0,5.172754,5.224048,.1442925,10.57626,0,0,0 +0,4.564348,0,5.172754,5.224048,.1442925,10.57626,0,0,0 +0,4.564348,0,5.172754,5.224048,.1442925,10.57626,0,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +3,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,0,6.9,0,0,0 +0,0,0,0,0,0,6.9,0,0,0 +1,0,0,0,0,0,6.9,0,0,0 +0,0,0,0,0,0,6.9,1,0,0 +0,0,0,0,0,0,6.9,1,0,0 +0,0,0,0,0,0,6.9,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +1,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +12,0,0,6.471356,0,0,3.4,0,0,0 +10,0,0,6.471356,0,0,3.4,0,0,0 +10,0,0,6.471356,0,0,3.4,0,0,0 +8,0,0,6.471356,0,1,10.3,0,0,0 +2,0,0,6.471356,0,1,10.3,0,0,0 +7,0,0,6.471356,0,1,10.3,0,0,0 +0,0,0,6.471356,0,0,10.57626,0,0,0 +1,0,0,6.471356,0,0,10.57626,0,0,0 +1,0,0,6.471356,0,0,10.57626,0,0,0 +4,0,0,6.471356,0,0,10.57626,0,0,0 +2,0,0,6.471356,0,0,10.57626,0,0,0 +5,0,0,6.471356,0,0,10.57626,0,0,0 +8,0,0,6.471356,0,0,10.57626,0,0,0 +3,0,0,6.471356,0,0,10.57626,0,0,0 +2,0,0,6.471356,0,0,10.57626,0,0,0 +0,3.258096,0,5.810392,7.196687,0,0,0,0,0 +0,3.258096,0,5.810392,7.196687,0,0,0,0,0 +0,3.258096,0,5.810392,7.196687,0,0,0,0,0 +0,3.258096,0,5.810392,7.196687,0,0,0,0,0 +0,3.258096,0,5.810392,7.196687,0,0,0,0,0 +0,3.258096,0,5.810392,7.196687,0,10.57626,0,1,0 +0,3.258096,0,5.810392,7.196687,0,10.57626,0,1,0 +0,3.258096,0,5.810392,7.196687,0,10.57626,0,1,0 +0,3.258096,0,5.810392,7.196687,0,10.57626,0,1,0 +0,3.258096,0,5.810392,7.196687,0,10.57626,0,1,0 +0,3.258096,0,5.810392,7.196687,0,6.9,0,1,0 +0,3.258096,0,5.810392,7.196687,0,6.9,0,1,0 +0,3.258096,0,5.810392,7.196687,0,6.9,0,1,0 +0,3.258096,0,5.810392,7.196687,0,6.9,0,1,0 +0,3.258096,0,5.810392,7.196687,0,6.9,0,1,0 +0,3.258096,0,5.810392,7.196687,0,10.57626,1,0,0 +0,3.258096,0,5.810392,7.196687,0,10.57626,1,0,0 +0,3.258096,0,5.810392,7.196687,0,10.57626,1,0,0 +2,3.258096,0,5.810392,7.196687,0,10.57626,1,0,0 +0,3.258096,0,5.810392,7.196687,0,10.57626,1,0,0 +0,3.258096,0,5.810392,7.196687,0,10.57626,1,0,0 +0,3.258096,0,5.810392,7.196687,0,10.57626,1,0,0 +0,3.258096,0,5.810392,7.196687,0,10.57626,1,0,0 +0,3.258096,0,5.810392,7.196687,0,10.57626,1,0,0 +0,3.258096,0,5.810392,7.196687,0,10.57626,1,0,0 +0,3.258096,0,5.810392,7.196687,0,3.4,0,1,0 +0,3.258096,0,5.810392,7.196687,0,3.4,0,1,0 +0,3.258096,0,5.810392,7.196687,0,3.4,0,1,0 +0,3.258096,0,5.810392,7.196687,0,3.4,0,1,0 +1,3.258096,0,5.810392,7.196687,0,3.4,0,1,0 +0,3.258096,0,5.810392,7.196687,0,0,0,1,0 +1,3.258096,0,5.810392,7.196687,0,0,0,1,0 +0,3.258096,0,5.810392,7.196687,0,0,0,1,0 +0,3.258096,0,5.810392,7.196687,0,0,0,1,0 +0,3.258096,0,5.810392,7.196687,0,0,0,1,0 +0,3.258096,0,5.810392,7.196687,0,3.4,1,0,0 +0,3.258096,0,5.810392,7.196687,0,3.4,1,0,0 +0,3.258096,0,5.810392,7.196687,0,3.4,1,0,0 +0,3.258096,0,5.810392,7.196687,0,3.4,1,0,0 +0,3.258096,0,5.810392,7.196687,0,3.4,1,0,0 +0,0,0,5.731462,0,0,0,0,0,0 +1,0,0,5.731462,0,0,0,0,0,0 +4,0,0,5.731462,0,0,0,0,0,0 +1,0,0,5.731462,0,0,13.8,0,1,0 +1,0,0,5.731462,0,0,13.8,0,1,0 +2,0,0,5.731462,0,0,13.8,0,1,0 +0,0,0,7.080969,0,0,10.3,1,0,0 +1,0,0,7.080969,0,0,10.3,1,0,0 +4,0,0,7.080969,0,0,10.3,1,0,0 +0,0,0,7.080969,0,.1442925,10.57626,1,0,0 +1,0,0,7.080969,0,.1442925,10.57626,1,0,0 +1,0,0,7.080969,0,.1442925,10.57626,1,0,0 +0,0,0,7.080969,0,0,0,1,0,0 +1,0,0,7.080969,0,0,0,1,0,0 +0,0,0,7.080969,0,0,0,1,0,0 +4,0,0,7.080969,0,0,3.4,1,0,0 +2,0,0,7.080969,0,0,3.4,1,0,0 +3,0,0,7.080969,0,0,3.4,1,0,0 +0,3.258096,0,0,8.006368,1,27.6,0,1,0 +0,3.258096,0,0,8.006368,1,27.6,0,1,0 +0,3.258096,0,0,8.006368,1,27.6,0,1,0 +4,3.258096,0,0,8.006368,1,27.6,0,1,0 +1,3.258096,0,0,8.006368,1,27.6,0,1,0 +0,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +4,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +13,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +0,4.564348,0,6.907755,6.959049,0,0,1,0,0 +0,4.564348,0,6.907755,6.959049,0,0,1,0,0 +0,4.564348,0,6.907755,6.959049,0,0,1,0,0 +0,4.564348,0,6.907755,6.959049,1,6.9,1,0,0 +2,4.564348,0,6.907755,6.959049,1,6.9,1,0,0 +1,4.564348,0,6.907755,6.959049,1,6.9,1,0,0 +0,0,0,3.809326,0,0,10.3,0,0,0 +0,0,0,3.809326,0,0,10.3,0,0,0 +0,0,0,3.809326,0,0,10.3,0,0,0 +0,0,0,3.809326,0,0,10.3,0,0,0 +1,0,0,3.809326,0,0,10.3,0,0,0 +1,0,0,3.809326,0,0,6.9,0,0,0 +1,0,0,3.809326,0,0,6.9,0,0,0 +0,0,0,3.809326,0,0,6.9,0,0,0 +0,0,0,3.809326,0,0,6.9,0,0,0 +2,0,0,3.809326,0,0,6.9,0,0,0 +1,0,0,0,0,0,6.9,0,0,0 +0,0,0,0,0,0,6.9,0,0,0 +1,0,0,0,0,0,6.9,0,0,0 +2,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,10.3,0,0,0 +0,0,0,0,0,0,10.3,0,0,0 +0,0,0,0,0,0,10.3,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +1,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,1,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,1,0,0 +2,4.564348,0,6.907755,6.959049,0,3.4,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +2,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +1,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +3,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +1,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +1,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +0,4.564348,0,6.907755,6.959049,1,10.3,1,0,0 +0,4.564348,0,6.907755,6.959049,1,10.3,1,0,0 +2,4.564348,0,6.907755,6.959049,1,10.3,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +3,3.258096,0,6.620073,8.006368,0,10.3,1,0,0 +6,3.258096,0,6.620073,8.006368,0,10.3,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.3,1,0,0 +1,3.258096,0,6.620073,8.006368,0,10.3,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.3,1,0,0 +5,3.258096,0,6.620073,8.006368,0,13.8,1,0,0 +1,3.258096,0,6.620073,8.006368,0,13.8,1,0,0 +4,3.258096,0,6.620073,8.006368,0,13.8,1,0,0 +5,3.258096,0,6.620073,8.006368,0,13.8,1,0,0 +0,3.258096,0,6.620073,8.006368,0,13.8,1,0,0 +0,3.931826,0,0,7.600903,1,20.7,0,1,0 +0,3.931826,0,0,7.600903,1,20.7,0,1,0 +0,3.931826,0,0,7.600903,1,20.7,0,1,0 +0,3.931826,0,0,7.600903,0,3.4,0,0,0 +0,3.931826,0,0,7.600903,0,3.4,0,0,0 +0,3.931826,0,0,7.600903,0,3.4,0,0,0 +1,3.931826,0,0,7.600903,0,13.8,1,0,0 +1,3.931826,0,0,7.600903,0,13.8,1,0,0 +0,3.931826,0,0,7.600903,0,13.8,1,0,0 +0,0,1,0,6.160541,0,6.9,1,0,0 +0,0,1,0,6.160541,0,6.9,1,0,0 +0,0,1,0,6.160541,0,6.9,1,0,0 +0,0,1,0,6.160541,0,6.9,1,0,0 +0,0,1,0,6.160541,0,6.9,1,0,0 +1,0,1,0,6.160541,1,20.7,0,0,1 +0,0,1,0,6.160541,1,20.7,0,0,1 +0,0,1,0,6.160541,1,20.7,0,0,1 +0,0,1,0,6.160541,1,20.7,0,0,1 +0,0,1,0,6.160541,1,20.7,0,0,1 +0,0,1,0,6.160541,0,10.57626,1,0,0 +0,0,1,0,6.160541,0,10.57626,1,0,0 +0,0,1,0,6.160541,0,10.57626,1,0,0 +0,0,1,0,6.160541,0,10.57626,1,0,0 +0,0,1,0,6.160541,0,10.57626,1,0,0 +0,0,1,0,6.160541,0,10.57626,0,0,0 +0,0,1,0,6.160541,0,10.57626,0,0,0 +0,0,1,0,6.160541,0,10.57626,0,0,0 +0,0,1,0,6.160541,0,10.57626,0,0,0 +0,0,1,0,6.160541,0,10.57626,0,0,0 +0,0,0,6.384047,0,0,10.57626,0,0,0 +3,0,0,6.384047,0,0,10.57626,0,0,0 +1,0,0,6.384047,0,0,10.57626,0,0,0 +1,0,0,6.384047,0,0,0,1,0,0 +2,0,0,6.384047,0,0,0,1,0,0 +1,0,0,6.384047,0,0,0,1,0,0 +1,0,0,6.384047,0,0,13.8,1,0,0 +4,0,0,6.384047,0,0,13.8,1,0,0 +1,0,0,6.384047,0,0,13.8,1,0,0 +1,4.564348,0,6.907755,6.959049,0,6.9,1,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,1,0,0 +1,4.564348,0,6.907755,6.959049,0,6.9,1,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,1,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,1,0,0 +0,0,0,0,0,0,3.4,0,1,0 +1,0,0,0,0,0,3.4,0,1,0 +0,0,0,0,0,0,3.4,0,1,0 +7,0,0,6.437399,0,1,37.9,0,1,0 +5,0,0,6.437399,0,1,37.9,0,1,0 +6,0,0,6.437399,0,1,37.9,0,1,0 +0,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +4,0,0,0,0,0,10.57626,1,0,0 +3,0,0,0,0,0,10.57626,1,0,0 +5,0,0,0,0,0,10.57626,1,0,0 +9,0,0,6.437399,0,0,17.2,1,0,0 +3,0,0,6.437399,0,0,17.2,1,0,0 +5,0,0,6.437399,0,0,17.2,1,0,0 +2,0,0,0,0,1,13.8,1,0,0 +2,0,0,0,0,1,13.8,1,0,0 +1,0,0,0,0,1,13.8,1,0,0 +2,0,0,6.437399,0,0,0,0,1,0 +2,0,1,6.109248,6.160541,1,10.3,1,0,0 +2,0,1,6.109248,6.160541,1,10.3,1,0,0 +6,0,1,6.109248,6.160541,1,10.3,1,0,0 +5,0,1,6.109248,6.160541,0,10.57626,0,0,0 +3,0,1,6.109248,6.160541,0,10.57626,0,0,0 +4,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,1,0,0,0,0 +3,0,1,6.109248,6.160541,1,0,0,0,0 +0,0,1,6.109248,6.160541,1,0,0,0,0 +4,0,1,6.109248,6.160541,0,10.3,0,0,0 +0,0,1,6.109248,6.160541,0,10.3,0,0,0 +2,0,1,6.109248,6.160541,0,10.3,0,0,0 +1,0,1,6.109248,6.160541,0,10.57626,0,0,0 +2,0,1,6.109248,6.160541,0,10.57626,0,0,0 +1,0,1,6.109248,6.160541,0,10.57626,0,0,0 +6,0,1,6.109248,6.160541,0,3.4,0,0,0 +3,0,1,6.109248,6.160541,0,3.4,0,0,0 +8,0,1,6.109248,6.160541,0,3.4,0,0,0 +9,0,0,6.148468,0,1,58.6,0,0,1 +1,0,0,6.148468,0,1,58.6,0,0,1 +7,0,0,6.148468,0,1,58.6,0,0,1 +19,0,0,6.148468,0,1,58.6,0,0,1 +21,0,0,6.148468,0,1,58.6,0,0,1 +1,0,0,6.148468,0,0,10.3,0,1,0 +0,0,0,6.148468,0,0,10.3,0,1,0 +1,0,0,6.148468,0,0,10.3,0,1,0 +0,0,0,6.148468,0,0,10.3,0,1,0 +2,0,0,6.148468,0,0,6.9,0,0,1 +0,0,0,6.148468,0,0,6.9,0,0,1 +0,0,0,6.148468,0,0,6.9,0,0,1 +4,0,0,6.148468,0,0,6.9,0,0,1 +7,0,0,6.148468,0,0,6.9,0,0,1 +0,0,0,6.148468,0,0,3.4,0,0,0 +0,0,0,6.148468,0,0,3.4,0,0,0 +0,0,0,6.148468,0,0,3.4,0,0,0 +0,0,0,6.148468,0,0,3.4,0,0,0 +1,0,0,6.148468,0,0,3.4,0,0,0 +0,0,0,4.032469,0,1,0,0,0,0 +0,0,0,4.032469,0,1,0,0,0,0 +0,0,0,4.032469,0,1,0,0,0,0 +3,0,0,0,0,0,13.8,0,0,0 +3,0,0,0,0,0,13.8,0,0,0 +2,0,0,0,0,0,13.8,0,0,0 +2,0,0,0,0,0,13.8,0,0,0 +2,0,0,0,0,0,13.8,0,0,0 +1,0,0,0,0,0,20.7,0,0,0 +3,0,0,0,0,0,20.7,0,0,0 +1,0,0,0,0,0,20.7,0,0,0 +1,0,0,0,0,0,20.7,0,0,0 +2,3.258096,0,5.646683,7.032977,0,3.4,0,0,0 +0,3.258096,0,5.646683,7.032977,0,3.4,0,0,0 +4,3.258096,0,5.646683,7.032977,0,3.4,0,0,0 +2,3.258096,0,5.646683,7.032977,0,10.57626,0,0,0 +2,3.258096,0,5.646683,7.032977,0,10.57626,0,0,0 +12,3.258096,0,5.646683,7.032977,0,10.57626,0,0,0 +0,3.258096,0,5.646683,7.032977,0,3.4,0,0,0 +0,3.258096,0,5.646683,7.032977,0,3.4,0,0,0 +2,3.258096,0,5.646683,7.032977,0,3.4,0,0,0 +3,0,0,5.879527,0,0,6.9,1,0,0 +4,0,0,5.879527,0,0,6.9,1,0,0 +1,0,0,5.879527,0,0,6.9,1,0,0 +0,0,0,5.879527,0,0,6.9,1,0,0 +0,0,0,5.879527,0,0,6.9,1,0,0 +0,0,0,5.879527,0,0,10.3,1,0,0 +3,0,0,5.879527,0,0,10.3,1,0,0 +0,0,0,5.879527,0,0,10.3,1,0,0 +0,0,0,5.879527,0,0,10.3,1,0,0 +0,0,0,5.879527,0,0,10.3,1,0,0 +2,0,0,5.879527,0,0,10.57626,0,0,0 +4,0,0,5.879527,0,0,10.57626,0,0,0 +3,0,0,5.879527,0,0,10.57626,0,0,0 +5,0,0,5.879527,0,0,10.57626,0,0,0 +0,0,0,5.879527,0,0,10.57626,0,0,0 +1,0,0,0,0,0,17.2,1,0,0 +5,0,0,0,0,0,17.2,1,0,0 +0,0,0,0,0,0,17.2,1,0,0 +1,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +1,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +3,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +0,0,0,0,0,0,10.3,0,1,0 +0,0,0,0,0,0,10.3,0,1,0 +0,0,0,0,0,0,10.3,0,1,0 +2,0,0,0,0,0,10.3,0,1,0 +3,0,0,0,0,0,10.3,0,1,0 +3,0,0,0,0,0,10.3,0,1,0 +3,0,0,0,0,0,10.3,0,1,0 +1,0,0,0,0,0,10.3,0,1,0 +0,0,0,0,0,1,3.4,1,0,0 +4,0,0,0,0,1,3.4,1,0,0 +1,0,0,0,0,1,3.4,1,0,0 +1,0,0,0,0,1,3.4,1,0,0 +3,0,0,0,0,1,3.4,1,0,0 +0,0,0,0,0,0,6.9,1,0,0 +3,0,0,0,0,0,6.9,1,0,0 +1,0,0,0,0,0,6.9,1,0,0 +0,0,0,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0 +2,0,0,0,0,0,17.2,0,0,0 +0,0,0,0,0,0,17.2,0,0,0 +0,0,0,0,0,0,17.2,0,0,0 +3,0,0,0,0,0,6.9,0,0,1 +1,0,0,0,0,0,6.9,0,0,1 +5,0,0,0,0,0,6.9,0,0,1 +0,0,1,6.109248,6.160541,0,13.8,1,0,0 +4,0,1,6.109248,6.160541,0,13.8,1,0,0 +0,0,1,6.109248,6.160541,0,13.8,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +1,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,.1442925,10.57626,1,0,0 +0,0,1,6.109248,6.160541,.1442925,10.57626,1,0,0 +0,0,1,6.109248,6.160541,.1442925,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,1,17.2,1,0,0 +0,0,1,6.109248,6.160541,1,17.2,1,0,0 +0,0,1,6.109248,6.160541,1,17.2,1,0,0 +2,0,1,6.368736,5.755076,0,10.3,1,0,0 +0,0,1,6.368736,5.755076,0,10.3,1,0,0 +3,0,1,6.368736,5.755076,0,10.3,1,0,0 +1,0,1,6.368736,5.755076,0,6.9,0,0,0 +0,0,1,6.368736,5.755076,0,6.9,0,0,0 +2,0,1,6.368736,5.755076,0,6.9,0,0,0 +1,0,1,6.651572,5.755076,0,13.8,0,0,0 +1,0,1,6.651572,5.755076,0,13.8,0,0,0 +5,0,1,6.651572,5.755076,0,13.8,0,0,0 +2,0,1,6.651572,5.755076,0,13.8,0,0,0 +4,0,1,6.651572,5.755076,0,13.8,0,0,0 +0,0,1,6.651572,5.755076,0,10.57626,0,0,0 +3,0,1,6.651572,5.755076,0,10.57626,0,0,0 +4,0,1,6.651572,5.755076,0,10.57626,0,0,0 +2,0,1,6.651572,5.755076,0,10.57626,0,0,0 +1,0,1,6.651572,5.755076,0,10.57626,0,0,0 +0,3.258096,0,6.55108,7.937375,0,10.57626,0,0,0 +0,3.258096,0,6.55108,7.937375,0,10.57626,0,0,0 +0,3.258096,0,6.55108,7.937375,0,3.4,0,0,0 +1,3.258096,0,6.55108,7.937375,0,3.4,0,0,0 +0,3.258096,0,6.55108,7.937375,0,10.57626,0,0,0 +2,3.258096,0,6.55108,7.937375,0,10.57626,0,0,0 +1,3.258096,0,6.55108,7.937375,0,10.57626,0,0,0 +0,3.258096,0,6.55108,7.937375,0,10.57626,0,0,0 +2,3.258096,0,6.55108,7.937375,0,10.57626,0,0,0 +1,3.258096,0,6.55108,7.937375,0,10.57626,0,0,0 +3,3.258096,0,6.55108,7.937375,0,10.57626,0,0,0 +0,3.258096,0,6.55108,7.937375,0,10.57626,0,0,0 +0,3.258096,0,6.55108,7.937375,0,10.57626,0,0,0 +0,3.258096,0,6.55108,7.937375,0,10.57626,0,0,0 +0,3.258096,0,6.55108,7.937375,0,10.57626,0,0,0 +0,3.258096,0,6.55108,7.937375,0,10.57626,0,0,0 +1,3.258096,0,6.55108,7.937375,1,17.2,0,1,0 +2,3.258096,0,6.55108,7.937375,1,17.2,0,1,0 +2,3.258096,0,6.55108,7.937375,1,17.2,0,1,0 +3,3.258096,0,6.55108,7.937375,1,17.2,0,1,0 +3,3.258096,0,6.55108,7.937375,0,10.3,0,0,0 +2,3.258096,0,6.55108,7.937375,0,10.3,0,0,0 +1,3.258096,0,6.55108,7.937375,0,10.3,0,0,0 +0,3.258096,0,6.55108,7.937375,0,10.3,0,0,0 +5,0,0,6.031934,0,.1442925,10.57626,0,0,0 +2,0,0,6.031934,0,.1442925,10.57626,0,0,0 +4,0,0,6.031934,0,.1442925,10.57626,0,0,0 +2,0,0,6.031934,0,.1442925,10.57626,0,0,0 +1,0,0,6.031934,0,.1442925,10.57626,0,0,0 +2,0,0,6.031934,0,.1442925,10.57626,0,0,0 +5,0,1,6.183674,6.160541,0,3.4,0,0,0 +0,0,1,6.183674,6.160541,0,3.4,0,0,0 +0,0,1,6.183674,6.160541,0,3.4,0,0,0 +5,0,1,6.183674,6.160541,0,3.4,0,0,0 +0,0,1,6.183674,6.160541,0,3.4,0,0,0 +0,0,1,6.183674,6.160541,0,3.4,0,0,0 +8,0,1,6.183674,6.160541,0,10.3,1,0,0 +1,0,1,6.183674,6.160541,0,10.3,1,0,0 +4,0,1,6.183674,6.160541,0,10.3,1,0,0 +2,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +1,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +0,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +3,3.258096,0,6.620073,8.006368,0,0,0,0,0 +1,3.258096,0,6.620073,8.006368,0,0,0,0,0 +0,3.258096,0,6.620073,8.006368,0,0,0,0,0 +0,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +0,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +0,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +0,3.258096,0,6.620073,8.006368,1,6.9,1,0,0 +0,3.258096,0,6.620073,8.006368,1,6.9,1,0,0 +0,3.258096,0,6.620073,8.006368,1,6.9,1,0,0 +0,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +1,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +1,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +5,0,0,0,0,0,20.7,1,0,0 +1,0,0,0,0,0,20.7,1,0,0 +0,0,0,0,0,0,20.7,1,0,0 +2,0,0,0,0,0,10.57626,1,0,0 +3,0,0,0,0,0,10.57626,1,0,0 +1,0,0,0,0,0,10.57626,1,0,0 +5,0,0,0,0,0,13.8,0,0,0 +1,0,0,0,0,0,13.8,0,0,0 +13,0,0,0,0,0,13.8,0,0,0 +2,0,0,0,0,1,13.8,1,0,0 +3,0,0,0,0,1,13.8,1,0,0 +1,0,0,0,0,1,13.8,1,0,0 +2,0,0,0,0,1,13.8,1,0,0 +5,0,0,0,0,1,13.8,1,0,0 +0,4.564348,0,0,6.804848,0,10.57626,1,0,0 +0,4.564348,0,0,6.804848,0,10.57626,1,0,0 +0,4.564348,0,0,6.804848,0,10.57626,1,0,0 +0,4.564348,0,0,6.804848,0,10.57626,1,0,0 +0,4.564348,0,0,6.804848,0,10.57626,1,0,0 +0,4.564348,0,0,6.804848,0,10.57626,1,0,0 +0,4.564348,0,0,6.804848,0,10.57626,1,0,0 +0,4.564348,0,0,6.804848,0,10.57626,1,0,0 +0,4.564348,0,0,6.804848,0,10.57626,1,0,0 +0,4.564348,0,0,6.804848,0,10.3,0,0,0 +0,4.564348,0,0,6.804848,0,10.3,0,0,0 +0,4.564348,0,0,6.804848,0,10.3,0,0,0 +0,4.564348,0,0,6.804848,0,3.4,1,0,0 +0,4.564348,0,0,6.804848,0,3.4,1,0,0 +0,4.564348,0,0,6.804848,0,3.4,1,0,0 +0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0 +2,0,0,0,0,0,0,0,0,0 +8,0,0,0,0,0,20.7,1,0,0 +1,0,0,0,0,0,20.7,1,0,0 +3,0,0,0,0,0,20.7,1,0,0 +16,4.564348,0,6.907755,6.959049,1,10.57626,0,0,1 +19,4.564348,0,6.907755,6.959049,1,10.57626,0,0,1 +14,4.564348,0,6.907755,6.959049,1,10.57626,0,0,1 +17,4.564348,0,6.907755,6.959049,1,10.57626,0,0,1 +7,4.564348,0,6.907755,6.959049,1,10.57626,0,0,1 +4,4.564348,0,6.907755,6.959049,1,3.4,0,1,0 +9,4.564348,0,6.907755,6.959049,1,3.4,0,1,0 +3,4.564348,0,6.907755,6.959049,1,3.4,0,1,0 +2,4.564348,0,6.907755,6.959049,1,3.4,0,1,0 +0,4.564348,0,6.907755,6.959049,1,3.4,0,1,0 +9,4.564348,0,6.907755,6.959049,1,24.1,0,1,0 +3,4.564348,0,6.907755,6.959049,1,24.1,0,1,0 +2,4.564348,0,6.907755,6.959049,1,24.1,0,1,0 +3,4.564348,0,6.907755,6.959049,1,24.1,0,1,0 +7,4.564348,0,6.907755,6.959049,1,24.1,0,1,0 +21,4.564348,0,6.907755,6.959049,1,27.6,0,0,1 +23,4.564348,0,6.907755,6.959049,1,27.6,0,0,1 +21,4.564348,0,6.907755,6.959049,1,27.6,0,0,1 +27,4.564348,0,6.907755,6.959049,1,27.6,0,0,1 +29,4.564348,0,6.907755,6.959049,1,27.6,0,0,1 +12,4.564348,0,6.907755,6.959049,1,31,0,1,0 +5,4.564348,0,6.907755,6.959049,1,31,0,1,0 +8,4.564348,0,6.907755,6.959049,1,31,0,1,0 +4,4.564348,0,6.907755,6.959049,0,10.57626,0,1,0 +4,4.564348,0,6.907755,6.959049,0,10.57626,0,1,0 +2,4.564348,0,6.907755,6.959049,0,10.57626,0,1,0 +2,4.564348,0,6.907755,6.959049,0,0,0,0,0 +0,4.564348,0,6.907755,6.959049,0,0,0,0,0 +1,4.564348,0,6.907755,6.959049,0,0,0,0,0 +5,4.564348,0,6.907755,6.959049,0,10.57626,0,1,0 +4,4.564348,0,6.907755,6.959049,0,10.57626,0,1,0 +3,4.564348,0,6.907755,6.959049,0,10.57626,0,1,0 +3,0,0,6.254329,0,0,10.57626,0,0,0 +1,0,0,6.254329,0,0,10.57626,0,0,0 +5,0,0,6.254329,0,0,10.57626,0,0,0 +7,0,0,6.254329,0,0,10.57626,0,0,0 +4,0,0,6.254329,0,0,10.57626,0,0,0 +0,0,0,6.254329,0,0,0,0,0,0 +5,0,0,6.254329,0,0,0,0,0,0 +0,0,0,6.254329,0,0,0,0,0,0 +3,0,0,6.254329,0,0,0,0,0,0 +10,0,0,6.254329,0,0,0,0,0,0 +9,0,0,6.254329,0,0,34.5,1,0,0 +13,0,0,6.254329,0,0,34.5,1,0,0 +22,0,0,6.254329,0,0,34.5,1,0,0 +14,0,0,6.254329,0,0,34.5,1,0,0 +17,0,0,6.254329,0,0,34.5,1,0,0 +2,0,0,6.254329,0,0,10.3,0,0,0 +1,0,0,6.254329,0,0,10.3,0,0,0 +1,0,0,6.254329,0,0,10.3,0,0,0 +1,0,0,6.254329,0,0,10.3,0,0,0 +5,0,0,6.254329,0,0,10.3,0,0,0 +2,3.258096,0,6.55108,7.937375,0,10.3,0,0,0 +0,3.258096,0,6.55108,7.937375,0,10.3,0,0,0 +8,3.258096,0,6.55108,7.937375,0,10.3,0,0,0 +3,3.258096,0,6.620073,8.006368,1,20.7,1,0,0 +0,3.258096,0,6.620073,8.006368,1,20.7,1,0,0 +1,3.258096,0,6.620073,8.006368,1,20.7,1,0,0 +0,3.258096,0,6.620073,8.006368,1,20.7,1,0,0 +1,3.258096,0,6.620073,8.006368,1,20.7,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,0,1,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,0,1,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,0,1,0 +1,3.258096,0,6.620073,8.006368,0,10.57626,0,1,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,0,1,0 +0,3.258096,0,6.620073,8.006368,1,10.57626,0,1,0 +1,3.258096,0,6.620073,8.006368,1,10.57626,0,1,0 +0,3.258096,0,6.620073,8.006368,1,10.57626,0,1,0 +0,3.258096,0,6.620073,8.006368,1,10.57626,0,1,0 +0,3.258096,0,6.620073,8.006368,1,10.57626,0,1,0 +0,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +0,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +0,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +0,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +0,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +0,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +0,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +1,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +0,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +0,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +0,4.564348,0,4.945919,4.997212,0,10.3,1,0,0 +0,4.564348,0,4.945919,4.997212,0,10.3,1,0,0 +0,4.564348,0,4.945919,4.997212,0,10.3,1,0,0 +0,4.564348,0,4.945919,4.997212,0,10.57626,0,1,0 +0,4.564348,0,4.945919,4.997212,0,10.57626,0,1,0 +0,4.564348,0,4.945919,4.997212,0,10.57626,0,1,0 +0,4.564348,0,4.945919,4.997212,1,0,1,0,0 +3,4.564348,0,4.945919,4.997212,1,0,1,0,0 +3,4.564348,0,4.945919,4.997212,1,0,1,0,0 +0,4.564348,0,4.945919,4.997212,1,10.3,0,0,1 +0,4.564348,0,4.945919,4.997212,1,10.3,0,0,1 +1,4.564348,0,4.945919,4.997212,1,10.3,0,0,1 +0,4.564348,0,4.945919,4.997212,0,0,0,1,0 +0,4.564348,0,4.945919,4.997212,0,0,0,1,0 +1,4.564348,0,4.945919,4.997212,0,0,0,1,0 +0,0,1,6.109248,6.160541,0,27.6,0,0,0 +2,0,1,6.109248,6.160541,0,27.6,0,0,0 +1,0,1,6.109248,6.160541,0,27.6,0,0,0 +0,0,1,6.109248,6.160541,0,27.6,0,0,0 +0,0,1,6.109248,6.160541,0,27.6,0,0,0 +0,0,1,6.109248,6.160541,0,10.3,0,0,0 +0,0,1,6.109248,6.160541,0,10.3,0,0,0 +0,0,1,6.109248,6.160541,0,10.3,0,0,0 +0,0,1,6.109248,6.160541,0,10.3,0,0,0 +2,0,1,6.109248,6.160541,0,10.3,0,0,0 +4,0,1,6.109248,6.160541,0,10.57626,0,0,0 +1,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +1,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,4.564348,0,2.960105,3.011398,0,10.57626,1,0,0 +1,4.564348,0,2.960105,3.011398,0,10.57626,1,0,0 +0,4.564348,0,2.960105,3.011398,0,10.57626,1,0,0 +2,4.564348,0,2.960105,3.011398,0,13.8,1,0,0 +4,4.564348,0,2.960105,3.011398,0,13.8,1,0,0 +1,4.564348,0,2.960105,3.011398,0,13.8,1,0,0 +0,4.564348,0,2.960105,3.011398,0,0,1,0,0 +0,4.564348,0,2.960105,3.011398,0,0,1,0,0 +1,4.564348,0,2.960105,3.011398,0,10.57626,1,0,0 +0,4.564348,0,2.960105,3.011398,0,10.57626,1,0,0 +0,4.564348,0,2.960105,3.011398,0,10.57626,1,0,0 +0,4.564348,0,2.960105,3.011398,0,10.57626,1,0,0 +0,4.564348,0,2.960105,3.011398,0,10.57626,1,0,0 +0,4.564348,0,2.960105,3.011398,0,10.57626,1,0,0 +0,3.931826,0,6.907755,7.600903,0,13.8,0,0,0 +1,3.931826,0,6.907755,7.600903,0,13.8,0,0,0 +1,3.931826,0,6.907755,7.600903,0,13.8,0,0,0 +8,3.931826,0,6.907755,7.600903,0,10.57626,0,0,0 +16,3.931826,0,6.907755,7.600903,0,10.57626,0,0,0 +5,3.931826,0,6.907755,7.600903,0,10.57626,0,0,0 +0,3.931826,0,6.907755,7.600903,0,0,0,0,0 +0,3.931826,0,6.907755,7.600903,0,0,0,0,0 +0,3.931826,0,6.907755,7.600903,0,0,0,0,0 +1,0,0,5.294309,0,0,0,0,0,0 +4,0,0,5.294309,0,0,0,0,0,0 +2,0,0,5.294309,0,0,0,0,0,0 +2,0,0,5.294309,0,0,10.57626,0,0,0 +0,0,0,5.294309,0,0,10.57626,0,0,0 +1,0,0,5.294309,0,0,10.57626,0,0,0 +1,0,0,5.294309,0,0,0,0,0,0 +2,0,0,5.294309,0,0,0,0,0,0 +4,0,0,5.294309,0,0,0,0,0,0 +1,0,0,4.992878,0,0,20.7,0,0,0 +0,0,0,4.992878,0,0,20.7,0,0,0 +3,0,0,4.992878,0,0,10.57626,0,0,0 +5,0,0,4.992878,0,0,10.57626,0,0,0 +4,3.258096,0,6.620073,8.006368,1,13.8,1,0,0 +2,3.258096,0,6.620073,8.006368,1,13.8,1,0,0 +4,3.258096,0,6.620073,8.006368,1,13.8,1,0,0 +3,3.258096,0,6.620073,8.006368,1,13.8,1,0,0 +4,3.258096,0,6.620073,8.006368,1,13.8,1,0,0 +2,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +1,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +4,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +3,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +10,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +1,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +1,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +1,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +2,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +2,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +10,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +0,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +0,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +3,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +3,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,3.4,1,0,0 +0,0,1,6.109248,6.160541,0,3.4,1,0,0 +0,0,1,6.109248,6.160541,0,3.4,1,0,0 +0,0,1,6.109248,6.160541,0,10.3,0,1,0 +0,0,1,6.109248,6.160541,0,10.3,0,1,0 +0,0,1,6.109248,6.160541,0,10.3,0,1,0 +0,4.564348,0,5.349961,5.401254,0,10.57626,0,0,0 +0,4.564348,0,5.349961,5.401254,0,10.57626,0,0,0 +0,4.564348,0,5.349961,5.401254,0,10.57626,0,0,0 +0,4.564348,0,5.349961,5.401254,0,10.57626,0,0,0 +1,4.564348,0,5.349961,5.401254,0,10.57626,0,0,0 +0,4.564348,0,5.349961,5.401254,0,10.57626,0,0,0 +0,4.564348,0,5.349961,5.401254,0,10.57626,0,0,0 +0,4.564348,0,5.349961,5.401254,0,10.57626,0,0,0 +0,4.564348,0,5.349961,5.401254,0,10.57626,0,0,0 +1,4.564348,0,5.349961,5.401254,0,10.57626,0,0,0 +0,4.564348,0,5.349961,5.401254,0,24.1,0,0,0 +0,4.564348,0,5.349961,5.401254,0,24.1,0,0,0 +2,4.564348,0,5.349961,5.401254,0,24.1,0,0,0 +1,4.564348,0,5.349961,5.401254,0,24.1,0,0,0 +2,4.564348,0,5.349961,5.401254,0,24.1,0,0,0 +0,4.564348,0,5.349961,5.401254,0,10.57626,0,0,0 +0,4.564348,0,5.349961,5.401254,0,10.57626,0,0,0 +0,4.564348,0,5.349961,5.401254,0,10.57626,0,0,0 +0,4.564348,0,5.349961,5.401254,0,10.57626,0,0,0 +0,4.564348,0,5.349961,5.401254,0,10.57626,0,0,0 +2,3.258096,0,6.620073,8.006368,0,24.1,0,0,0 +2,3.258096,0,6.620073,8.006368,0,24.1,0,0,0 +3,3.258096,0,6.620073,8.006368,0,24.1,0,0,0 +0,3.258096,0,6.620073,8.006368,0,10.3,0,0,0 +1,3.258096,0,6.620073,8.006368,0,10.3,0,0,0 +2,3.258096,0,6.620073,8.006368,0,10.3,0,0,0 +1,3.258096,0,0,8.006368,0,10.57626,1,0,0 +0,3.258096,0,0,8.006368,0,10.57626,1,0,0 +0,3.258096,0,0,8.006368,0,10.57626,1,0,0 +0,3.258096,0,0,8.006368,0,10.57626,0,1,0 +0,3.258096,0,0,8.006368,0,10.57626,0,1,0 +1,3.258096,0,0,8.006368,0,10.57626,0,1,0 +3,3.258096,0,0,8.006368,0,6.9,1,0,0 +0,3.258096,0,0,8.006368,0,6.9,1,0,0 +1,3.258096,0,0,8.006368,0,6.9,1,0,0 +4,3.258096,0,0,8.006368,0,27.6,1,0,0 +1,3.258096,0,0,8.006368,0,27.6,1,0,0 +2,3.258096,0,0,8.006368,0,27.6,1,0,0 +2,3.258096,0,0,8.006368,0,10.57626,1,0,0 +0,3.258096,0,0,8.006368,0,10.57626,1,0,0 +0,3.258096,0,0,8.006368,0,10.57626,1,0,0 +6,0,1,6.507039,5.755076,1,17.2,0,1,0 +5,0,1,6.507039,5.755076,1,17.2,0,1,0 +7,0,1,6.507039,5.755076,1,17.2,0,1,0 +3,0,1,5.928099,5.755076,0,3.4,1,0,0 +0,0,1,5.928099,5.755076,0,3.4,1,0,0 +0,0,1,5.928099,5.755076,0,3.4,1,0,0 +2,0,1,6.507039,5.755076,0,10.3,1,0,0 +2,0,1,6.507039,5.755076,0,10.3,1,0,0 +4,0,1,6.507039,5.755076,0,10.3,1,0,0 +0,3.258096,0,0,8.006368,0,6.9,0,0,0 +0,3.258096,0,0,8.006368,0,6.9,0,0,0 +0,3.258096,0,0,8.006368,0,6.9,0,0,0 +0,3.258096,0,0,8.006368,1,10.3,0,0,0 +0,3.258096,0,0,8.006368,1,10.3,0,0,0 +0,3.258096,0,0,8.006368,1,10.3,0,0,0 +0,3.258096,0,0,8.006368,1,10.57626,0,0,0 +0,3.258096,0,0,8.006368,1,10.57626,0,0,0 +0,3.258096,0,0,8.006368,1,10.57626,0,0,0 +0,3.258096,0,0,8.006368,0,13.8,1,0,0 +0,3.258096,0,0,8.006368,0,13.8,1,0,0 +1,3.258096,0,0,8.006368,0,13.8,1,0,0 +1,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +5,0,1,6.109248,6.160541,0,6.9,0,1,0 +11,0,1,6.109248,6.160541,0,6.9,0,1,0 +1,0,1,6.109248,6.160541,0,6.9,0,1,0 +2,0,1,6.109248,6.160541,0,6.9,0,1,0 +0,0,1,6.109248,6.160541,0,6.9,0,1,0 +4,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +1,0,1,6.109248,6.160541,0,13.8,1,0,0 +2,0,1,6.109248,6.160541,0,13.8,1,0,0 +0,0,1,6.109248,6.160541,0,13.8,1,0,0 +0,0,1,6.109248,6.160541,0,13.8,1,0,0 +0,0,1,6.109248,6.160541,0,13.8,1,0,0 +0,0,0,0,0,0,10.3,0,0,0 +0,0,0,0,0,0,10.3,0,0,0 +0,0,0,0,0,0,10.3,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +5,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,6.9,0,0,0 +0,0,0,0,0,0,6.9,0,0,0 +0,0,0,0,0,0,6.9,0,0,0 +0,0,0,0,0,0,13.8,0,0,0 +0,0,0,0,0,0,13.8,0,0,0 +0,0,0,0,0,0,13.8,0,0,0 +0,3.258096,0,0,6.635421,1,10.57626,0,1,0 +0,3.258096,0,0,6.635421,1,10.57626,0,1,0 +0,3.258096,0,0,6.635421,1,10.57626,0,1,0 +0,3.931826,0,0,6.984716,0,10.3,1,0,0 +0,3.931826,0,0,6.984716,0,10.3,1,0,0 +0,3.931826,0,0,6.984716,0,10.3,1,0,0 +0,3.931826,0,0,6.984716,0,10.3,1,0,0 +1,3.931826,0,0,6.984716,0,10.3,1,0,0 +0,3.931826,0,0,6.984716,0,10.57626,1,0,0 +0,3.931826,0,0,6.984716,0,10.57626,1,0,0 +0,3.931826,0,0,6.984716,0,10.57626,1,0,0 +0,3.931826,0,0,6.984716,0,10.57626,1,0,0 +0,3.931826,0,0,6.984716,0,10.57626,1,0,0 +0,3.931826,0,0,6.984716,0,10.57626,1,0,0 +0,3.931826,0,0,6.984716,0,10.57626,1,0,0 +0,3.931826,0,0,6.984716,0,10.57626,1,0,0 +0,3.931826,0,0,6.984716,0,10.57626,1,0,0 +0,3.931826,0,0,6.984716,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,0,1,0,0 +0,0,1,6.109248,6.160541,0,0,1,0,0 +0,0,1,6.109248,6.160541,0,0,1,0,0 +0,0,1,6.109248,6.160541,1,17.2,1,0,0 +0,0,1,6.109248,6.160541,1,17.2,1,0,0 +0,0,1,6.109248,6.160541,1,17.2,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,6.9,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,3.4,1,0,0 +0,0,1,6.109248,6.160541,0,3.4,1,0,0 +0,0,1,6.109248,6.160541,0,3.4,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +1,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,3.4,1,0,0 +0,3.931826,0,6.867558,7.560705,1,10.57626,0,0,0 +0,3.931826,0,6.867558,7.560705,1,10.57626,0,0,0 +0,3.931826,0,6.867558,7.560705,1,10.57626,0,0,0 +0,3.931826,0,6.867558,7.560705,1,10.57626,0,0,0 +0,3.931826,0,6.867558,7.560705,1,10.57626,0,0,0 +0,3.931826,0,6.867558,7.560705,0,10.57626,0,0,0 +0,3.931826,0,6.867558,7.560705,0,10.57626,0,0,0 +0,3.931826,0,6.867558,7.560705,0,10.57626,0,0,0 +0,3.931826,0,6.867558,7.560705,0,10.57626,0,0,0 +0,3.931826,0,6.867558,7.560705,0,10.57626,0,0,0 +0,3.931826,0,6.867558,7.560705,0,10.57626,0,0,0 +0,3.931826,0,6.867558,7.560705,0,10.57626,0,0,0 +0,3.931826,0,6.867558,7.560705,0,10.57626,0,0,0 +0,3.931826,0,6.867558,7.560705,0,10.57626,0,0,0 +0,3.931826,0,6.867558,7.560705,0,10.57626,0,0,0 +0,3.931826,0,6.867558,7.560705,0,3.4,0,1,0 +0,3.931826,0,6.867558,7.560705,0,3.4,0,1,0 +1,3.931826,0,6.867558,7.560705,0,3.4,0,1,0 +1,3.931826,0,6.867558,7.560705,0,3.4,0,1,0 +0,3.931826,0,6.867558,7.560705,0,3.4,0,1,0 +0,0,0,6.656212,0,0,13.8,0,1,0 +0,0,0,6.656212,0,0,13.8,0,1,0 +0,0,0,6.656212,0,0,13.8,0,1,0 +0,0,0,6.656212,0,0,3.4,0,0,0 +3,0,0,6.656212,0,0,3.4,0,0,0 +2,0,0,6.656212,0,0,3.4,0,0,0 +0,0,0,6.656212,0,0,20.7,0,1,0 +0,0,0,6.656212,0,0,20.7,0,1,0 +0,0,0,6.656212,0,0,20.7,0,1,0 +0,0,1,0,6.160541,1,0,1,0,0 +0,0,1,0,6.160541,1,0,1,0,0 +0,0,1,0,6.160541,1,0,1,0,0 +2,0,1,0,6.160541,1,0,1,0,0 +7,0,1,0,6.160541,1,0,1,0,0 +0,0,1,0,6.160541,0,13.8,1,0,0 +0,0,1,0,6.160541,0,13.8,1,0,0 +0,0,1,0,6.160541,0,13.8,1,0,0 +1,0,1,0,6.160541,0,13.8,1,0,0 +1,0,1,0,6.160541,0,13.8,1,0,0 +0,0,1,0,6.160541,0,0,1,0,0 +0,0,1,0,6.160541,0,0,1,0,0 +3,0,1,0,6.160541,0,0,1,0,0 +3,0,1,0,6.160541,0,0,1,0,0 +2,0,1,0,6.160541,0,0,1,0,0 +1,0,1,0,6.160541,0,10.57626,1,0,0 +0,0,1,0,6.160541,0,10.57626,1,0,0 +3,0,1,0,6.160541,0,10.57626,1,0,0 +1,0,1,0,6.160541,0,10.57626,1,0,0 +2,0,1,0,6.160541,0,10.57626,1,0,0 +0,4.564348,0,6.907755,6.959049,1,17.2,1,0,0 +3,4.564348,0,6.907755,6.959049,1,17.2,1,0,0 +7,4.564348,0,6.907755,6.959049,1,17.2,1,0,0 +1,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +2,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +3,4.564348,0,6.907755,6.959049,0,13.8,1,0,0 +4,4.564348,0,6.907755,6.959049,0,13.8,1,0,0 +3,4.564348,0,6.907755,6.959049,0,13.8,1,0,0 +1,0,0,6.337321,0,0,10.3,1,0,0 +3,0,0,6.337321,0,0,10.3,1,0,0 +4,0,0,6.337321,0,0,10.3,1,0,0 +5,0,0,6.337321,0,0,10.3,1,0,0 +6,0,0,6.337321,0,0,10.3,1,0,0 +8,0,0,6.337321,0,0,10.3,1,0,0 +5,4.564348,0,6.476973,6.528265,0,10.3,0,1,0 +4,4.564348,0,6.476973,6.528265,0,10.3,0,1,0 +4,4.564348,0,6.476973,6.528265,0,10.3,0,1,0 +4,4.564348,0,6.476973,6.528265,0,10.3,0,1,0 +5,4.564348,0,6.476973,6.528265,0,10.3,0,1,0 +0,4.564348,0,6.476973,6.528265,0,10.3,0,1,0 +0,4.564348,0,6.476973,6.528265,0,10.3,0,1,0 +0,4.564348,0,6.476973,6.528265,0,10.3,0,1,0 +0,4.564348,0,6.476973,6.528265,0,10.3,0,1,0 +1,4.564348,0,6.476973,6.528265,0,10.3,0,1,0 +9,0,1,6.109248,6.160541,0,20.7,0,0,0 +5,0,1,6.109248,6.160541,0,20.7,0,0,0 +4,0,1,6.109248,6.160541,0,20.7,0,0,0 +0,4.564348,0,6.907755,6.959049,0,0,0,0,0 +3,4.564348,0,6.907755,6.959049,0,0,0,0,0 +2,4.564348,0,6.907755,6.959049,0,0,0,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +1,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +2,0,1,6.47148,5.755076,0,10.3,0,0,0 +8,0,1,6.47148,5.755076,0,10.3,0,0,0 +2,0,1,6.47148,5.755076,0,10.3,0,0,0 +3,0,1,6.47148,5.755076,1,27.6,0,0,0 +2,0,1,6.47148,5.755076,1,27.6,0,0,0 +4,0,1,6.47148,5.755076,1,27.6,0,0,0 +3,0,1,5.010635,5.061929,0,13.8,0,0,0 +2,0,1,5.010635,5.061929,0,13.8,0,0,0 +4,0,1,5.010635,5.061929,0,13.8,0,0,0 +0,3.258096,0,6.620073,8.006368,.1442925,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,.1442925,10.57626,0,0,0 +3,3.258096,0,6.620073,8.006368,.1442925,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,0,17.2,1,0,0 +0,3.258096,0,6.620073,8.006368,0,17.2,1,0,0 +1,3.258096,0,6.620073,8.006368,0,17.2,1,0,0 +7,3.258096,0,6.620073,8.006368,1,20.7,0,1,0 +6,3.258096,0,6.620073,8.006368,1,20.7,0,1,0 +9,3.258096,0,6.620073,8.006368,1,20.7,0,1,0 +0,3.258096,0,6.620073,8.006368,.1442925,10.57626,0,1,0 +0,3.258096,0,6.620073,8.006368,.1442925,10.57626,0,1,0 +7,3.258096,0,6.620073,8.006368,.1442925,10.57626,0,1,0 +0,3.258096,0,6.620073,8.006368,0,13.8,0,0,0 +0,3.258096,0,6.620073,8.006368,0,13.8,0,0,0 +0,3.258096,0,6.620073,8.006368,0,13.8,0,0,0 +0,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +0,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +0,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +3,0,0,4.526127,0,0,20.7,0,0,1 +5,0,0,4.526127,0,0,20.7,0,0,1 +15,0,0,4.526127,0,0,20.7,0,0,1 +14,0,0,4.526127,0,0,24.1,0,1,0 +4,0,0,4.526127,0,0,24.1,0,1,0 +7,0,0,4.526127,0,0,24.1,0,1,0 +0,3.258096,0,0,5.243861,1,13.8,1,0,0 +7,3.258096,0,0,5.243861,1,13.8,1,0,0 +3,3.258096,0,0,5.243861,1,13.8,1,0,0 +0,3.258096,0,0,5.243861,0,0,0,0,0 +0,3.258096,0,0,5.243861,0,0,0,0,0 +2,3.258096,0,0,5.243861,0,0,0,0,0 +0,4.564348,0,6.802395,6.853688,0,10.57626,1,0,0 +0,4.564348,0,6.802395,6.853688,0,10.57626,1,0,0 +2,4.564348,0,6.802395,6.853688,0,10.57626,1,0,0 +0,4.564348,0,6.802395,6.853688,0,10.57626,1,0,0 +0,4.564348,0,6.802395,6.853688,0,10.57626,1,0,0 +0,4.564348,0,6.802395,6.853688,0,20.7,0,1,0 +2,4.564348,0,6.802395,6.853688,0,20.7,0,1,0 +4,4.564348,0,6.802395,6.853688,0,20.7,0,1,0 +12,4.564348,0,6.802395,6.853688,0,20.7,0,1,0 +5,4.564348,0,6.802395,6.853688,0,20.7,0,1,0 +0,4.564348,0,6.802395,6.853688,0,0,0,1,0 +0,4.564348,0,6.802395,6.853688,0,0,0,1,0 +0,4.564348,0,6.802395,6.853688,0,0,0,1,0 +0,4.564348,0,6.802395,6.853688,0,0,0,1,0 +0,4.564348,0,6.802395,6.853688,0,10.57626,1,0,0 +0,4.564348,0,6.802395,6.853688,0,10.57626,1,0,0 +1,4.564348,0,6.802395,6.853688,0,10.57626,1,0,0 +0,4.564348,0,6.802395,6.853688,0,10.57626,1,0,0 +2,4.564348,0,6.802395,6.853688,0,10.57626,1,0,0 +0,4.564348,0,6.802395,6.853688,0,3.4,1,0,0 +0,4.564348,0,6.802395,6.853688,0,3.4,1,0,0 +1,4.564348,0,6.802395,6.853688,0,3.4,1,0,0 +1,4.564348,0,6.802395,6.853688,0,3.4,1,0,0 +0,4.564348,0,6.802395,6.853688,0,3.4,1,0,0 +0,4.564348,0,6.802395,6.853688,0,10.57626,1,0,0 +0,4.564348,0,6.802395,6.853688,0,10.57626,1,0,0 +0,4.564348,0,6.802395,6.853688,0,10.57626,1,0,0 +6,4.564348,0,6.802395,6.853688,0,10.57626,1,0,0 +3,4.564348,0,6.802395,6.853688,0,10.57626,1,0,0 +9,0,1,6.471356,6.160541,0,24.1,0,0,1 +10,0,1,6.471356,6.160541,0,24.1,0,0,1 +12,0,1,6.471356,6.160541,0,24.1,0,0,1 +18,0,1,6.471356,6.160541,0,10.3,0,0,0 +13,0,1,6.471356,6.160541,0,10.3,0,0,0 +11,0,1,6.471356,6.160541,0,10.3,0,0,0 +6,0,1,6.471356,6.160541,1,10.3,0,1,0 +4,0,1,6.471356,6.160541,1,10.3,0,1,0 +5,0,1,6.471356,6.160541,1,10.3,0,1,0 +0,0,0,5.671328,0,0,0,0,0,0 +4,0,0,5.671328,0,0,0,0,0,0 +3,0,0,5.671328,0,0,0,0,0,0 +1,4.564348,0,5.98202,5.799093,0,10.3,1,0,0 +0,4.564348,0,5.98202,5.799093,0,10.3,1,0,0 +0,4.564348,0,5.98202,5.799093,0,10.3,1,0,0 +3,4.564348,0,5.98202,5.799093,0,20.7,1,0,0 +5,4.564348,0,5.98202,5.799093,0,20.7,1,0,0 +2,4.564348,0,5.98202,5.799093,0,20.7,1,0,0 +6,0,0,6.819711,0,0,6.9,0,0,0 +7,0,0,6.819711,0,0,6.9,0,0,0 +1,0,0,6.819711,0,0,6.9,0,0,0 +1,0,0,6.819711,0,0,10.3,1,0,0 +3,0,0,6.819711,0,0,10.3,1,0,0 +0,0,0,6.819711,0,0,10.3,1,0,0 +0,0,1,0,5.061929,0,10.3,0,0,0 +4,0,1,0,5.061929,0,10.3,0,0,0 +0,0,1,0,5.061929,0,10.3,0,0,0 +0,0,0,0,0,0,10.3,1,0,0 +1,0,0,0,0,0,10.3,1,0,0 +0,0,0,0,0,0,10.3,1,0,0 +0,0,0,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0 +10,0,0,0,0,0,0,1,0,0 +3,3.258096,0,6.210821,7.597116,0,10.57626,0,0,0 +1,3.258096,0,6.210821,7.597116,0,10.57626,0,0,0 +0,3.258096,0,6.210821,7.597116,0,10.57626,0,0,0 +3,3.258096,0,6.210821,7.597116,0,10.57626,0,0,0 +0,3.258096,0,6.210821,7.597116,0,10.57626,0,0,0 +0,3.258096,0,6.210821,7.597116,0,10.3,0,0,0 +0,3.258096,0,6.210821,7.597116,0,10.3,0,0,0 +1,3.258096,0,6.210821,7.597116,0,10.3,0,0,0 +0,3.258096,0,6.210821,7.597116,0,10.3,0,0,0 +0,3.258096,0,6.210821,7.597116,0,10.3,0,0,0 +1,3.258096,0,6.210821,7.597116,0,6.9,0,0,0 +0,3.258096,0,6.210821,7.597116,0,6.9,0,0,0 +0,3.258096,0,6.210821,7.597116,0,6.9,0,0,0 +0,3.258096,0,6.210821,7.597116,0,6.9,0,0,0 +1,3.258096,0,6.210821,7.597116,0,6.9,0,0,0 +2,0,1,5.703783,5.755076,0,3.4,0,0,0 +0,0,1,5.703783,5.755076,0,3.4,0,0,0 +0,0,1,5.703783,5.755076,0,3.4,0,0,0 +0,0,1,5.703783,5.755076,0,10.57626,1,0,0 +0,0,1,5.703783,5.755076,0,10.57626,1,0,0 +0,0,1,5.703783,5.755076,0,10.57626,1,0,0 +0,0,0,4.510859,0,0,3.4,1,0,0 +2,0,0,4.510859,0,0,3.4,1,0,0 +0,0,0,4.510859,0,0,3.4,1,0,0 +0,0,0,4.510859,0,0,13.8,1,0,0 +0,0,0,4.510859,0,0,13.8,1,0,0 +0,0,0,4.510859,0,0,10.57626,1,0,0 +0,0,0,4.510859,0,0,10.57626,1,0,0 +4,0,0,6.437399,0,0,13.8,0,0,0 +4,3.258096,0,6.620073,8.006368,0,13.8,1,0,0 +3,3.258096,0,6.620073,8.006368,0,13.8,1,0,0 +3,3.258096,0,6.620073,8.006368,0,13.8,1,0,0 +2,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +1,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +1,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +2,0,1,5.671328,5.061929,0,6.9,0,0,0 +1,0,1,5.671328,5.061929,0,6.9,0,0,0 +2,0,1,5.671328,5.061929,0,6.9,0,0,0 +0,3.258096,0,6.620073,8.006368,0,0,1,0,0 +0,3.258096,0,6.620073,8.006368,0,0,1,0,0 +0,3.258096,0,6.620073,8.006368,0,0,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +7,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +2,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +0,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +0,4.564348,0,5.753049,5.804342,1,10.57626,1,0,0 +9,4.564348,0,5.753049,5.804342,1,10.57626,1,0,0 +0,4.564348,0,5.753049,5.804342,1,10.57626,1,0,0 +0,4.564348,0,5.753049,5.804342,1,10.57626,1,0,0 +1,4.564348,0,5.753049,5.804342,1,10.57626,1,0,0 +1,4.564348,0,5.753049,5.804342,1,10.57626,1,0,0 +0,4.564348,0,5.753049,5.804342,0,13.8,0,0,0 +0,4.564348,0,5.753049,5.804342,0,13.8,0,0,0 +6,4.564348,0,5.753049,5.804342,0,13.8,0,0,0 +15,0,0,6.23973,0,1,17.2,0,0,1 +4,0,0,6.23973,0,1,17.2,0,0,1 +12,0,0,6.23973,0,1,17.2,0,0,1 +14,0,0,6.23973,0,1,24.1,0,1,0 +16,0,0,6.23973,0,1,24.1,0,1,0 +14,0,0,6.23973,0,1,24.1,0,1,0 +8,0,0,6.23973,0,0,3.4,0,0,0 +4,0,0,6.23973,0,0,3.4,0,0,0 +10,0,0,6.23973,0,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,1,0 +0,0,1,6.109248,6.160541,0,0,0,1,0 +1,0,1,6.109248,6.160541,0,0,0,1,0 +4,0,1,6.109248,6.160541,0,24.1,0,1,0 +7,0,1,6.109248,6.160541,0,24.1,0,1,0 +11,0,1,6.109248,6.160541,0,24.1,0,1,0 +6,0,0,6.815157,0,0,17.2,1,0,0 +5,0,0,6.815157,0,0,17.2,1,0,0 +3,0,0,6.815157,0,0,17.2,1,0,0 +2,0,0,6.815157,0,0,17.2,1,0,0 +0,0,0,6.815157,0,0,17.2,1,0,0 +5,0,0,6.815157,0,0,0,1,0,0 +1,0,0,6.815157,0,0,0,1,0,0 +0,0,0,6.815157,0,0,0,1,0,0 +2,0,0,6.815157,0,0,0,1,0,0 +2,0,0,6.815157,0,0,0,1,0,0 +2,0,0,6.815157,0,0,10.57626,1,0,0 +0,0,0,6.815157,0,0,10.57626,1,0,0 +5,0,0,6.815157,0,0,10.57626,1,0,0 +1,0,0,6.815157,0,0,10.57626,1,0,0 +2,0,0,6.815157,0,0,10.57626,1,0,0 +2,0,1,5.010635,5.061929,0,0,0,0,0 +2,0,1,5.010635,5.061929,0,0,0,0,0 +0,0,1,5.010635,5.061929,0,0,0,0,0 +0,0,1,5.010635,5.061929,0,0,0,0,0 +0,0,1,5.010635,5.061929,0,0,0,0,0 +0,3.258096,0,6.129377,7.515671,0,10.3,0,0,0 +9,3.258096,0,6.129377,7.515671,0,6.9,1,0,0 +1,0,1,5.735281,5.755076,0,27.6,1,0,0 +3,0,1,5.735281,5.755076,0,27.6,1,0,0 +3,0,1,5.735281,5.755076,1,34.5,0,1,0 +1,0,1,5.735281,5.755076,1,34.5,0,1,0 +2,0,1,5.735281,5.755076,1,34.5,0,1,0 +0,3.258096,0,5.773309,7.034916,0,3.4,0,0,0 +0,3.258096,0,5.773309,7.034916,0,3.4,0,0,0 +1,3.258096,0,5.773309,7.034916,0,3.4,0,0,0 +0,3.258096,0,5.773309,7.034916,0,3.4,0,0,0 +0,3.258096,0,5.773309,7.034916,0,3.4,0,0,0 +1,3.258096,0,5.773309,7.034916,0,17.2,0,0,0 +1,3.258096,0,5.773309,7.034916,0,17.2,0,0,0 +1,3.258096,0,5.773309,7.034916,0,17.2,0,0,0 +1,3.258096,0,5.773309,7.034916,0,17.2,0,0,0 +2,3.258096,0,5.773309,7.034916,0,17.2,0,0,0 +0,4.564348,0,0,6.721172,.1442925,10.57626,1,0,0 +2,4.564348,0,0,6.721172,.1442925,10.57626,1,0,0 +2,4.564348,0,0,6.721172,.1442925,10.57626,1,0,0 +0,0,0,2.890372,0,0,0,0,0,0 +3,0,0,2.890372,0,0,0,0,0,0 +3,0,0,2.890372,0,0,0,0,0,0 +0,0,1,5.089077,5.061929,0,6.9,0,0,0 +0,0,1,5.089077,5.061929,0,6.9,0,0,0 +4,0,1,5.089077,5.061929,0,6.9,0,0,0 +0,4.564348,0,6.160574,6.211867,0,10.57626,1,0,0 +1,4.564348,0,6.160574,6.211867,0,10.57626,1,0,0 +1,4.564348,0,6.160574,6.211867,0,10.57626,1,0,0 +0,4.564348,0,6.160574,6.211867,0,20.7,0,1,0 +1,4.564348,0,6.160574,6.211867,0,20.7,0,1,0 +5,4.564348,0,6.160574,6.211867,0,20.7,0,1,0 +0,4.564348,0,6.160574,6.211867,0,10.57626,0,0,0 +2,4.564348,0,6.160574,6.211867,0,10.57626,0,0,0 +0,4.564348,0,6.160574,6.211867,0,10.57626,0,0,0 +1,0,0,0,0,0,6.9,1,0,0 +0,0,0,0,0,0,6.9,1,0,0 +0,0,0,0,0,0,6.9,1,0,0 +0,0,0,0,0,0,6.9,1,0,0 +0,0,0,0,0,0,6.9,1,0,0 +0,0,0,0,0,0,3.4,1,0,0 +0,0,0,0,0,0,3.4,1,0,0 +0,0,0,0,0,0,3.4,1,0,0 +0,0,0,0,0,0,3.4,1,0,0 +0,0,0,0,0,0,3.4,1,0,0 +2,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +1,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +1,0,0,0,0,0,10.57626,1,0,0 +1,0,0,0,0,0,10.3,0,1,0 +2,0,0,0,0,0,10.3,0,1,0 +6,0,0,0,0,0,10.3,0,1,0 +0,0,0,0,0,0,0,0,0,0 +3,0,0,0,0,0,0,0,0,0 +3,0,0,0,0,0,0,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,0,0,0,0,0 +0,4.564348,0,6.907755,6.959049,0,0,0,0,0 +0,4.564348,0,6.907755,6.959049,1,10.3,0,0,0 +1,4.564348,0,6.907755,6.959049,1,10.3,0,0,0 +0,4.564348,0,6.907755,6.959049,1,6.9,0,0,0 +0,4.564348,0,6.907755,6.959049,1,6.9,0,0,0 +0,4.564348,0,6.907755,6.959049,1,27.6,0,0,0 +0,4.564348,0,6.907755,6.959049,1,27.6,0,0,0 +0,0,0,0,0,0,17.2,1,0,0 +2,0,0,0,0,0,17.2,1,0,0 +0,0,0,0,0,0,17.2,1,0,0 +0,3.931826,0,6.39693,7.090077,0,3.4,1,0,0 +0,3.931826,0,6.39693,7.090077,0,3.4,1,0,0 +0,3.931826,0,6.39693,7.090077,0,3.4,1,0,0 +0,3.931826,0,6.39693,7.090077,.1442925,10.57626,0,1,0 +0,3.931826,0,6.39693,7.090077,.1442925,10.57626,0,1,0 +0,3.931826,0,6.39693,7.090077,.1442925,10.57626,0,1,0 +4,0,0,4.822859,0,1,37.9,1,0,0 +7,0,0,4.822859,0,1,37.9,1,0,0 +7,0,0,4.822859,0,1,37.9,1,0,0 +2,0,0,4.822859,0,1,37.9,1,0,0 +2,0,0,4.822859,0,1,37.9,1,0,0 +1,0,0,4.822859,0,0,10.57626,0,0,0 +2,0,0,4.822859,0,0,10.57626,0,0,0 +0,0,0,4.822859,0,0,10.57626,0,0,0 +1,0,0,4.822859,0,0,10.57626,0,0,0 +0,0,0,4.822859,0,0,10.57626,0,0,0 +1,0,0,4.822859,0,0,10.3,0,0,0 +1,0,0,4.822859,0,0,10.3,0,0,0 +1,0,0,4.822859,0,0,10.3,0,0,0 +1,0,0,4.822859,0,0,10.3,0,0,0 +0,0,0,4.822859,0,0,10.3,0,0,0 +0,4.564348,0,6.907755,6.959049,1,20.7,1,0,0 +0,4.564348,0,6.907755,6.959049,1,20.7,1,0,0 +26,4.564348,0,6.907755,6.959049,1,20.7,1,0,0 +1,4.564348,0,6.907755,6.959049,0,13.8,0,0,0 +0,4.564348,0,6.907755,6.959049,0,13.8,0,0,0 +0,4.564348,0,6.907755,6.959049,0,13.8,0,0,0 +0,3.258096,0,6.347144,7.733438,0,10.3,1,0,0 +1,3.258096,0,6.347144,7.733438,0,10.3,1,0,0 +3,3.258096,0,6.347144,7.733438,0,10.3,1,0,0 +0,3.258096,0,5.420535,6.536633,0,6.9,0,0,0 +1,3.258096,0,5.420535,6.536633,0,6.9,0,0,0 +0,3.258096,0,5.420535,6.536633,0,6.9,0,0,0 +0,3.258096,0,5.420535,6.536633,0,3.4,0,0,0 +1,3.258096,0,5.420535,6.536633,0,3.4,0,0,0 +0,3.258096,0,5.420535,6.536633,0,3.4,0,0,0 +0,3.258096,0,5.420535,6.536633,.1442925,10.57626,0,0,0 +0,3.258096,0,5.420535,6.536633,.1442925,10.57626,0,0,0 +0,3.258096,0,5.420535,6.536633,.1442925,10.57626,0,0,0 +0,3.258096,0,5.420535,6.536633,.1442925,10.57626,0,0,0 +0,3.258096,0,5.420535,6.536633,.1442925,10.57626,0,0,0 +0,3.258096,0,5.420535,6.536633,.1442925,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,6.9,0,1,0 +0,0,1,6.109248,6.160541,0,6.9,0,1,0 +1,0,1,6.109248,6.160541,0,6.9,0,1,0 +6,0,1,6.109248,6.160541,0,6.9,0,1,0 +3,0,1,6.109248,6.160541,0,6.9,0,1,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +1,0,1,6.109248,6.160541,0,6.9,1,0,0 +2,0,1,6.109248,6.160541,0,6.9,1,0,0 +0,0,1,6.109248,6.160541,0,6.9,1,0,0 +3,0,1,6.109248,6.160541,0,6.9,1,0,0 +2,0,1,6.109248,6.160541,0,6.9,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +2,0,1,6.109248,6.160541,0,10.57626,1,0,0 +1,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,4.564348,0,5.783825,5.835118,.1442925,3.4,1,0,0 +0,4.564348,0,5.783825,5.835118,.1442925,3.4,1,0,0 +0,4.564348,0,5.783825,5.835118,.1442925,3.4,1,0,0 +0,4.564348,0,5.783825,5.835118,0,6.9,1,0,0 +0,4.564348,0,5.783825,5.835118,0,6.9,1,0,0 +0,4.564348,0,5.783825,5.835118,0,6.9,1,0,0 +0,4.564348,0,5.783825,5.835118,.1442925,10.57626,0,0,0 +4,4.564348,0,5.783825,5.835118,.1442925,10.57626,0,0,0 +0,4.564348,0,5.783825,5.835118,.1442925,10.57626,0,0,0 +6,0,0,6.206979,0,0,10.57626,0,0,0 +4,0,0,6.206979,0,0,10.57626,0,0,0 +4,0,0,6.206979,0,0,10.57626,0,0,0 +2,0,0,6.206979,0,0,6.9,1,0,0 +0,0,0,6.206979,0,0,6.9,1,0,0 +2,0,0,6.206979,0,0,6.9,1,0,0 +1,0,0,6.206979,0,0,3.4,1,0,0 +1,0,0,6.206979,0,0,3.4,1,0,0 +2,0,0,6.206979,0,0,3.4,1,0,0 +0,0,1,5.010635,5.061929,0,13.8,0,0,0 +1,0,1,5.010635,5.061929,0,13.8,0,0,0 +1,0,1,5.010635,5.061929,0,13.8,0,0,0 +0,0,0,0,0,0,10.57626,0,1,0 +0,0,0,0,0,0,10.57626,0,1,0 +0,0,0,0,0,0,10.57626,0,1,0 +1,0,0,0,0,1,6.9,1,0,0 +2,0,0,0,0,1,6.9,1,0,0 +0,0,0,0,0,1,6.9,1,0,0 +0,0,0,6.66899,0,1,6.9,0,1,0 +0,0,0,6.66899,0,1,6.9,0,1,0 +2,0,0,6.66899,0,1,6.9,0,1,0 +0,0,0,6.66899,0,0,10.3,0,1,0 +0,0,0,6.66899,0,0,10.3,0,1,0 +0,0,0,6.66899,0,0,10.3,0,1,0 +0,0,0,6.66899,0,0,13.8,0,1,0 +0,0,0,6.66899,0,0,13.8,0,1,0 +0,0,0,6.66899,0,0,13.8,0,1,0 +0,0,0,6.66899,0,0,0,0,1,0 +0,0,0,6.66899,0,0,0,0,1,0 +0,0,0,6.66899,0,0,0,0,1,0 +0,3.258096,0,0,7.532195,0,3.4,0,0,1 +1,3.258096,0,0,7.532195,0,3.4,0,0,1 +0,3.258096,0,0,7.532195,0,3.4,0,0,1 +2,0,1,0,5.061929,0,13.8,1,0,0 +0,0,1,0,5.061929,0,13.8,1,0,0 +1,0,1,0,5.061929,0,13.8,1,0,0 +1,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +3,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +5,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +0,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +1,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +1,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +2,3.258096,0,6.620073,8.006368,.1442925,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,.1442925,10.57626,0,0,0 +1,3.258096,0,6.620073,8.006368,.1442925,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +2,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,1,3.4,0,1,0 +0,0,0,0,0,1,3.4,0,1,0 +0,0,0,0,0,1,3.4,0,1,0 +0,0,0,0,0,1,3.4,0,1,0 +1,0,0,0,0,1,3.4,0,1,0 +1,4.564348,0,0,6.818751,.1442925,10.57626,1,0,0 +0,4.564348,0,0,6.818751,.1442925,10.57626,1,0,0 +0,4.564348,0,0,6.818751,.1442925,10.57626,1,0,0 +0,4.564348,0,0,6.818751,.1442925,10.57626,1,0,0 +0,4.564348,0,0,6.818751,.1442925,10.57626,1,0,0 +0,4.564348,0,0,6.818751,0,13.8,1,0,0 +0,4.564348,0,0,6.818751,0,13.8,1,0,0 +0,4.564348,0,0,6.818751,0,13.8,1,0,0 +0,4.564348,0,0,6.818751,0,13.8,1,0,0 +0,4.564348,0,0,6.818751,0,13.8,1,0,0 +1,4.564348,0,0,6.818751,.1442925,10.57626,1,0,0 +0,4.564348,0,0,6.818751,.1442925,10.57626,1,0,0 +1,4.564348,0,0,6.818751,.1442925,10.57626,1,0,0 +0,4.564348,0,0,6.818751,.1442925,10.57626,1,0,0 +0,4.564348,0,0,6.818751,.1442925,10.57626,1,0,0 +1,4.564348,0,0,6.818751,.1442925,10.57626,1,0,0 +0,4.564348,0,0,6.818751,.1442925,10.57626,1,0,0 +0,4.564348,0,0,6.818751,.1442925,10.57626,1,0,0 +0,4.564348,0,0,6.818751,.1442925,10.57626,1,0,0 +0,4.564348,0,0,6.818751,.1442925,10.57626,1,0,0 +0,4.564348,0,0,6.818751,.1442925,10.57626,1,0,0 +0,4.564348,0,0,6.818751,.1442925,10.57626,1,0,0 +0,4.564348,0,0,6.818751,.1442925,10.57626,1,0,0 +0,4.564348,0,0,6.818751,.1442925,10.57626,1,0,0 +0,4.564348,0,0,6.818751,.1442925,10.57626,1,0,0 +2,4.564348,0,0,6.818751,.1442925,10.57626,1,0,0 +0,4.564348,0,0,6.818751,.1442925,10.57626,1,0,0 +0,4.564348,0,0,6.818751,.1442925,10.57626,1,0,0 +0,4.564348,0,0,6.818751,.1442925,10.57626,1,0,0 +0,4.564348,0,0,6.818751,.1442925,10.57626,1,0,0 +1,4.564348,0,0,6.818751,.1442925,10.57626,1,0,0 +0,4.564348,0,0,6.818751,.1442925,10.57626,1,0,0 +1,4.564348,0,0,6.818751,.1442925,10.57626,1,0,0 +0,4.564348,0,0,6.818751,.1442925,10.57626,1,0,0 +0,4.564348,0,0,6.818751,.1442925,10.57626,1,0,0 +0,4.564348,0,0,6.818751,.1442925,10.57626,1,0,0 +1,4.564348,0,0,6.818751,.1442925,10.57626,1,0,0 +1,4.564348,0,0,6.818751,.1442925,10.57626,1,0,0 +0,4.564348,0,0,6.818751,.1442925,10.57626,1,0,0 +0,4.564348,0,0,6.818751,.1442925,10.57626,1,0,0 +7,3.258096,0,0,4.884316,0,6.9,1,0,0 +4,3.258096,0,0,4.884316,0,6.9,1,0,0 +2,3.258096,0,0,4.884316,0,6.9,1,0,0 +2,0,1,0,5.061929,0,13.8,0,0,0 +5,0,1,0,5.061929,0,13.8,0,0,0 +6,0,1,0,5.061929,0,13.8,0,0,0 +0,0,0,0,0,0,37.9,1,0,0 +3,0,0,0,0,0,37.9,1,0,0 +4,0,0,0,0,0,37.9,1,0,0 +0,0,0,0,0,.1442925,10.57626,1,0,0 +0,0,0,0,0,.1442925,10.57626,1,0,0 +1,0,0,0,0,.1442925,10.57626,1,0,0 +1,0,0,0,0,.1442925,10.57626,1,0,0 +1,0,0,0,0,.1442925,10.57626,1,0,0 +1,0,0,0,0,0,10.3,1,0,0 +0,0,0,0,0,0,10.3,1,0,0 +1,0,0,0,0,0,10.3,1,0,0 +0,0,0,0,0,0,20.7,0,0,1 +3,0,0,0,0,0,20.7,0,0,1 +6,0,0,0,0,0,20.7,0,0,1 +0,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +2,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,0,6.9,0,0,1 +1,0,0,0,0,0,6.9,0,0,1 +1,0,0,0,0,0,6.9,0,0,1 +2,0,0,6.030685,0,0,10.57626,1,0,0 +3,0,0,6.030685,0,0,10.57626,1,0,0 +5,0,0,6.030685,0,0,10.57626,1,0,0 +0,0,0,6.030685,0,1,10.3,0,1,0 +1,0,0,6.030685,0,1,10.3,0,1,0 +1,0,0,6.030685,0,1,10.3,0,1,0 +1,0,0,6.030685,0,0,6.9,0,0,0 +1,0,0,6.030685,0,0,6.9,0,0,0 +2,0,0,6.030685,0,0,6.9,0,0,0 +1,0,0,6.030685,0,0,10.57626,1,0,0 +0,0,0,6.030685,0,0,10.57626,1,0,0 +0,0,0,6.030685,0,0,10.57626,1,0,0 +2,0,0,2.890372,0,0,0,1,0,0 +3,0,0,2.890372,0,0,0,1,0,0 +7,0,0,2.890372,0,0,0,1,0,0 +0,0,0,6.030685,0,0,10.57626,1,0,0 +0,0,0,6.030685,0,0,10.57626,1,0,0 +0,0,0,6.030685,0,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +2,0,1,6.109248,6.160541,0,20.7,1,0,0 +2,0,1,6.109248,6.160541,0,20.7,1,0,0 +2,0,1,6.109248,6.160541,0,20.7,1,0,0 +4,0,1,6.109248,6.160541,0,10.3,0,1,0 +0,0,1,6.109248,6.160541,0,10.3,0,1,0 +10,0,1,6.109248,6.160541,0,10.3,0,1,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,3.258096,0,5.8925,7.278795,0,6.9,1,0,0 +0,3.258096,0,5.8925,7.278795,0,6.9,1,0,0 +0,3.258096,0,5.8925,7.278795,0,6.9,1,0,0 +0,3.258096,0,5.8925,7.278795,0,3.4,1,0,0 +0,3.258096,0,5.8925,7.278795,0,3.4,1,0,0 +0,3.258096,0,5.8925,7.278795,0,3.4,1,0,0 +0,3.258096,0,5.8925,7.278795,1,10.3,0,1,0 +0,3.258096,0,5.8925,7.278795,1,10.3,0,1,0 +0,3.258096,0,5.8925,7.278795,1,10.3,0,1,0 +0,3.258096,0,5.8925,7.278795,0,10.57626,1,0,0 +0,3.258096,0,5.8925,7.278795,0,10.57626,1,0,0 +0,3.258096,0,5.8925,7.278795,0,10.57626,1,0,0 +3,0,1,5.010635,5.061929,0,3.4,1,0,0 +4,0,1,5.010635,5.061929,0,3.4,1,0,0 +2,0,1,5.010635,5.061929,0,3.4,1,0,0 +0,4.564348,0,6.620007,6.6713,0,6.9,1,0,0 +0,4.564348,0,6.620007,6.6713,0,6.9,1,0,0 +0,4.564348,0,6.620007,6.6713,0,6.9,1,0,0 +5,4.564348,0,6.620007,6.6713,0,20.7,1,0,0 +2,4.564348,0,6.620007,6.6713,0,20.7,1,0,0 +1,4.564348,0,6.620007,6.6713,0,20.7,1,0,0 +0,0,1,6.109248,6.160541,0,0,1,0,0 +0,0,1,6.109248,6.160541,0,0,1,0,0 +0,0,1,6.109248,6.160541,0,0,1,0,0 +12,0,1,6.109248,6.160541,0,10.3,1,0,0 +2,0,1,6.109248,6.160541,0,10.3,1,0,0 +0,0,1,6.109248,6.160541,0,10.3,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +1,0,1,6.109248,6.160541,0,10.57626,1,0,0 +1,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,0,6.160541,0,13.8,1,0,0 +1,0,1,0,6.160541,0,13.8,1,0,0 +0,0,1,0,6.160541,0,13.8,1,0,0 +0,0,1,0,6.160541,0,10.3,0,1,0 +0,0,1,0,6.160541,0,10.3,0,1,0 +1,0,1,0,6.160541,0,10.3,0,1,0 +0,0,1,0,6.160541,0,10.57626,0,1,0 +0,0,1,0,6.160541,0,10.57626,0,1,0 +0,0,1,0,6.160541,0,10.57626,0,1,0 +1,0,0,4.268298,0,1,20.7,1,0,0 +1,0,0,4.268298,0,1,20.7,1,0,0 +0,0,0,4.268298,0,1,20.7,1,0,0 +0,0,0,4.564348,0,0,6.9,1,0,0 +0,0,0,4.564348,0,0,6.9,1,0,0 +0,0,0,4.564348,0,0,6.9,1,0,0 +5,0,1,5.594116,5.061929,0,10.3,1,0,0 +0,0,1,5.594116,5.061929,0,10.3,1,0,0 +4,0,1,5.594116,5.061929,0,10.3,1,0,0 +11,0,0,5.869636,0,0,6.9,0,0,0 +9,0,0,5.869636,0,0,6.9,0,0,0 +19,0,0,5.869636,0,0,6.9,0,0,0 +30,0,0,5.869636,0,0,6.9,0,0,0 +27,0,0,5.869636,0,0,6.9,0,0,0 +8,0,0,5.869636,0,0,3.4,0,0,0 +9,0,0,5.869636,0,0,3.4,0,0,0 +6,0,0,5.869636,0,0,3.4,0,0,0 +2,0,0,5.869636,0,0,3.4,0,0,0 +0,0,0,5.869636,0,0,3.4,0,0,0 +1,0,0,5.869636,0,0,6.9,0,0,0 +1,0,0,5.869636,0,0,6.9,0,0,0 +2,0,0,5.869636,0,0,6.9,0,0,0 +1,0,0,5.869636,0,0,6.9,0,0,0 +8,0,0,5.869636,0,0,6.9,0,0,0 +6,0,0,5.869636,0,0,10.57626,0,0,0 +1,0,0,5.869636,0,0,10.57626,0,0,0 +8,0,0,5.869636,0,0,10.57626,0,0,0 +9,0,0,5.869636,0,0,10.57626,0,0,0 +7,0,0,5.869636,0,0,10.57626,0,0,0 +2,4.564348,0,6.745236,6.79653,0,27.6,1,0,0 +1,4.564348,0,6.745236,6.79653,0,27.6,1,0,0 +2,0,0,6.152051,0,0,10.57626,1,0,0 +4,0,0,6.152051,0,0,10.57626,1,0,0 +2,0,0,6.152051,0,0,10.57626,1,0,0 +7,0,0,6.152051,0,0,10.57626,1,0,0 +2,0,0,6.152051,0,0,10.57626,1,0,0 +1,0,0,6.152051,0,0,6.9,1,0,0 +1,0,0,6.152051,0,0,6.9,1,0,0 +0,0,0,6.152051,0,0,6.9,1,0,0 +3,0,0,6.152051,0,0,6.9,1,0,0 +1,0,0,6.152051,0,0,6.9,1,0,0 +2,0,0,6.152051,0,0,24.1,1,0,0 +8,0,0,6.152051,0,0,24.1,1,0,0 +2,0,0,6.152051,0,0,24.1,1,0,0 +2,0,0,6.152051,0,0,24.1,1,0,0 +5,0,0,6.152051,0,0,24.1,1,0,0 +0,4.564348,0,0,0,0,3.4,1,0,0 +0,4.564348,0,0,0,0,3.4,1,0,0 +0,4.564348,0,0,0,0,3.4,1,0,0 +0,0,0,0,0,0,10.3,1,0,0 +0,0,0,0,0,0,10.3,1,0,0 +0,0,0,0,0,0,10.3,1,0,0 +2,0,0,0,0,0,10.3,1,0,0 +0,0,0,0,0,0,10.3,1,0,0 +0,0,0,0,0,0,10.3,1,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +0,0,0,5.713733,0,0,6.9,0,0,0 +4,0,0,5.713733,0,0,6.9,0,0,0 +2,0,0,5.713733,0,0,6.9,0,0,0 +4,0,0,5.713733,0,0,17.2,0,1,0 +3,0,0,5.713733,0,0,17.2,0,1,0 +1,0,0,5.713733,0,0,17.2,0,1,0 +1,3.258096,0,6.617403,8.003697,0,13.8,1,0,0 +2,3.258096,0,0,5.768321,0,20.7,1,0,0 +1,3.258096,0,0,5.768321,0,20.7,1,0,0 +5,3.258096,0,0,5.768321,0,20.7,1,0,0 +1,3.258096,0,0,5.768321,0,20.7,1,0,0 +0,3.258096,0,0,5.768321,0,20.7,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,1 +2,0,1,6.109248,6.160541,0,10.57626,0,0,1 +1,0,1,6.109248,6.160541,0,10.57626,0,0,1 +1,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,6.9,1,0,0 +0,0,1,6.109248,6.160541,0,6.9,1,0,0 +0,0,1,6.109248,6.160541,0,6.9,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +1,0,1,6.109248,6.160541,0,10.57626,0,0,0 +4,0,1,6.109248,6.160541,0,10.57626,0,0,0 +5,4.564348,0,6.907755,6.959049,0,6.9,1,0,0 +3,4.564348,0,6.907755,6.959049,0,6.9,1,0,0 +3,4.564348,0,6.907755,6.959049,0,6.9,1,0,0 +1,0,0,5.379713,0,0,6.9,0,0,0 +2,0,0,5.379713,0,0,6.9,0,0,0 +0,0,0,5.379713,0,0,6.9,0,0,0 +5,0,0,5.379713,0,0,13.8,0,0,1 +2,0,0,5.379713,0,0,13.8,0,0,1 +3,0,0,5.379713,0,0,13.8,0,0,1 +0,0,0,5.379713,0,0,0,0,0,0 +1,0,0,5.379713,0,0,0,0,0,0 +0,0,0,5.379713,0,0,0,0,0,0 +0,0,1,5.010635,6.160541,.1442925,10.57626,1,0,0 +0,0,1,5.010635,6.160541,.1442925,10.57626,0,0,0 +0,0,1,5.010635,6.160541,.1442925,10.57626,1,0,0 +0,0,1,5.010635,6.160541,.1442925,10.57626,0,0,0 +1,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +6,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +2,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +3,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +2,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +1,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +1,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +1,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +3,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +2,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +1,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +5,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +3,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +1,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +2,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +2,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +5,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +7,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +2,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +5,3.258096,0,6.620073,8.006368,0,20.7,1,0,0 +4,3.258096,0,6.620073,8.006368,0,20.7,1,0,0 +1,3.258096,0,6.620073,8.006368,0,20.7,1,0,0 +3,3.258096,0,6.620073,8.006368,0,20.7,1,0,0 +1,3.258096,0,6.620073,8.006368,0,20.7,1,0,0 +1,4.564348,0,6.649632,6.700925,0,3.4,1,0,0 +0,4.564348,0,6.649632,6.700925,0,3.4,1,0,0 +1,4.564348,0,6.649632,6.700925,0,3.4,1,0,0 +0,4.564348,0,6.649632,6.700925,0,10.3,0,0,0 +0,4.564348,0,6.649632,6.700925,0,10.3,0,0,0 +1,4.564348,0,6.649632,6.700925,0,10.3,0,0,0 +0,4.564348,0,6.649632,6.700925,0,3.4,1,0,0 +0,4.564348,0,6.649632,6.700925,0,3.4,1,0,0 +4,0,1,5.703783,5.755076,0,3.4,1,0,0 +1,0,1,5.703783,5.755076,0,3.4,1,0,0 +3,0,1,5.703783,5.755076,0,3.4,1,0,0 +1,0,1,5.703783,5.755076,0,3.4,1,0,0 +3,0,1,5.703783,5.755076,0,3.4,1,0,0 +2,0,1,5.703783,5.755076,0,10.3,1,0,0 +1,0,1,5.703783,5.755076,0,10.3,1,0,0 +1,0,1,5.703783,5.755076,0,10.3,1,0,0 +4,0,1,5.703783,5.755076,0,10.3,1,0,0 +1,0,1,5.703783,5.755076,0,10.3,1,0,0 +5,0,0,5.875043,0,1,17.2,1,0,0 +3,0,0,5.875043,0,1,17.2,1,0,0 +2,0,0,5.875043,0,1,17.2,1,0,0 +5,0,0,5.875043,0,.1442925,10.57626,0,0,0 +1,0,0,5.875043,0,.1442925,10.57626,0,0,0 +3,0,0,5.875043,0,.1442925,10.57626,0,0,0 +1,0,0,5.875043,0,.1442925,10.57626,0,0,0 +2,0,0,5.875043,0,.1442925,10.57626,0,0,0 +2,0,0,5.875043,0,.1442925,10.57626,0,0,0 +0,0,0,5.369708,0,0,0,0,0,0 +0,0,0,5.369708,0,0,0,0,0,0 +0,0,0,5.369708,0,0,0,0,0,0 +0,0,0,5.369708,0,0,10.57626,0,1,0 +0,0,0,5.369708,0,0,10.57626,0,1,0 +0,0,0,5.369708,0,0,10.57626,0,1,0 +0,0,0,5.369708,0,0,13.8,1,0,0 +0,0,0,5.369708,0,0,13.8,1,0,0 +0,0,0,5.369708,0,0,3.4,0,0,0 +0,0,0,5.369708,0,0,3.4,0,0,0 +2,0,0,5.369708,0,0,3.4,0,0,0 +0,0,1,0,6.160541,0,10.3,0,0,0 +0,0,1,0,6.160541,0,10.3,0,0,0 +0,0,1,0,6.160541,0,10.3,0,0,0 +0,0,1,0,6.160541,1,10.3,1,0,0 +1,0,1,0,6.160541,1,10.3,1,0,0 +4,0,1,0,6.160541,1,10.3,1,0,0 +1,4.564348,0,6.772966,6.824259,0,27.6,1,0,0 +1,4.564348,0,6.772966,6.824259,0,27.6,1,0,0 +6,4.564348,0,6.772966,6.824259,0,27.6,1,0,0 +0,4.564348,0,6.772966,6.824259,0,10.57626,0,0,0 +0,4.564348,0,6.772966,6.824259,0,10.57626,0,0,0 +2,4.564348,0,6.772966,6.824259,0,10.57626,0,0,0 +1,4.564348,0,6.772966,6.824259,0,6.9,1,0,0 +0,4.564348,0,6.772966,6.824259,0,6.9,1,0,0 +0,4.564348,0,6.772966,6.824259,0,6.9,1,0,0 +0,4.564348,0,6.19461,6.245903,0,10.57626,1,0,0 +0,4.564348,0,6.19461,6.245903,0,10.57626,1,0,0 +1,4.564348,0,6.19461,6.245903,0,10.57626,1,0,0 +1,4.564348,0,6.19461,6.245903,0,10.57626,1,0,0 +3,4.564348,0,6.19461,6.245903,0,10.57626,1,0,0 +0,4.564348,0,6.19461,6.245903,0,10.3,1,0,0 +1,4.564348,0,6.19461,6.245903,0,10.3,1,0,0 +0,4.564348,0,6.19461,6.245903,0,10.3,1,0,0 +3,4.564348,0,6.19461,6.245903,0,10.3,1,0,0 +4,4.564348,0,6.19461,6.245903,0,10.3,1,0,0 +12,0,0,6.934592,0,1,20.7,0,1,0 +8,0,0,6.934592,0,1,20.7,0,1,0 +4,0,0,6.934592,0,1,20.7,0,1,0 +0,0,0,6.934592,0,0,10.3,1,0,0 +0,0,0,6.934592,0,0,10.3,1,0,0 +0,0,0,6.934592,0,0,10.3,1,0,0 +7,4.564348,0,5.97269,5.046476,0,24.1,0,1,0 +13,4.564348,0,5.97269,5.046476,0,24.1,0,1,0 +5,4.564348,0,5.97269,5.046476,0,24.1,0,1,0 +1,0,1,5.703783,5.755076,0,6.9,1,0,0 +0,0,1,5.703783,5.755076,0,6.9,1,0,0 +0,0,1,5.703783,5.755076,0,6.9,1,0,0 +1,0,1,5.703783,5.755076,0,10.57626,1,0,0 +1,0,1,5.703783,5.755076,0,10.57626,1,0,0 +0,0,1,5.703783,5.755076,0,10.57626,1,0,0 +11,3.931826,0,6.907755,7.600903,0,41.4,1,0,0 +4,3.931826,0,6.907755,7.600903,0,41.4,1,0,0 +8,3.931826,0,6.907755,7.600903,0,41.4,1,0,0 +2,3.931826,0,6.907755,7.600903,0,17.2,1,0,0 +0,3.931826,0,6.907755,7.600903,0,17.2,1,0,0 +3,3.931826,0,6.907755,7.600903,0,17.2,1,0,0 +0,3.258096,0,0,7.091243,0,0,1,0,0 +0,3.258096,0,0,7.091243,0,0,1,0,0 +0,3.258096,0,0,7.091243,0,0,1,0,0 +0,3.258096,0,5.752573,7.138867,0,0,0,1,0 +0,3.258096,0,5.752573,7.138867,0,0,0,1,0 +0,3.258096,0,5.752573,7.138867,0,0,0,1,0 +7,0,1,5.703783,6.160541,0,6.9,1,0,0 +2,0,1,5.703783,6.160541,0,6.9,1,0,0 +4,0,1,5.703783,6.160541,0,6.9,1,0,0 +3,0,1,5.703783,6.160541,0,13.8,1,0,0 +10,0,1,5.703783,6.160541,0,13.8,1,0,0 +16,0,1,5.703783,6.160541,0,13.8,1,0,0 +1,0,1,5.703783,6.160541,1,24.1,0,1,0 +2,0,1,5.703783,6.160541,1,24.1,0,1,0 +2,0,1,5.703783,6.160541,1,24.1,0,1,0 +5,0,1,5.703783,6.160541,0,20.7,0,1,0 +3,0,1,5.703783,6.160541,0,20.7,0,1,0 +6,0,1,5.703783,6.160541,0,20.7,0,1,0 +2,0,1,5.703783,6.160541,1,20.7,1,0,0 +0,0,1,5.703783,6.160541,1,20.7,1,0,0 +2,0,1,5.703783,6.160541,1,20.7,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +1,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +4,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +8,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +2,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +4,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +5,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +1,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +3,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +1,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,13.8,1,0,0 +3,0,1,6.109248,6.160541,0,13.8,1,0,0 +0,0,1,6.109248,6.160541,0,13.8,1,0,0 +1,0,1,6.109248,6.160541,0,10.57626,0,0,0 +1,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +3,3.258096,0,6.620073,8.006368,0,13.8,0,0,0 +0,3.258096,0,6.620073,8.006368,0,13.8,0,0,0 +2,3.258096,0,6.620073,8.006368,0,13.8,0,0,0 +0,3.258096,0,6.620073,8.006368,0,13.8,0,0,0 +3,3.258096,0,6.620073,8.006368,0,13.8,0,0,0 +3,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +2,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +1,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +3,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +1,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +3,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +1,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +2,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +2,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +2,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +1,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +0,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +0,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,0,13.8,0,1,0 +0,0,0,0,0,0,13.8,0,1,0 +0,0,0,0,0,0,13.8,0,1,0 +0,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +6,0,1,6.109248,6.160541,0,10.3,1,0,0 +0,0,1,6.109248,6.160541,0,10.3,1,0,0 +0,0,1,6.109248,6.160541,0,10.3,1,0,0 +2,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +1,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +10,0,1,5.010635,6.160541,0,6.9,1,0,0 +5,0,1,5.010635,6.160541,0,6.9,1,0,0 +0,0,1,5.010635,6.160541,0,6.9,1,0,0 +3,0,1,5.010635,6.160541,0,10.57626,1,0,0 +1,0,1,5.010635,6.160541,0,10.57626,1,0,0 +0,0,1,5.010635,6.160541,0,10.57626,1,0,0 +2,0,1,5.010635,6.160541,1,17.2,1,0,0 +1,0,1,5.010635,6.160541,1,17.2,1,0,0 +2,0,1,5.010635,6.160541,1,17.2,1,0,0 +0,0,0,6.030685,0,1,34.5,0,0,1 +3,0,0,6.030685,0,1,34.5,0,0,1 +10,0,0,6.030685,0,1,34.5,0,0,1 +1,0,0,6.030685,0,0,6.9,0,1,0 +10,0,0,6.030685,0,0,6.9,0,1,0 +12,0,0,6.030685,0,0,6.9,0,1,0 +0,0,0,6.030685,0,0,0,1,0,0 +0,0,0,6.030685,0,0,0,1,0,0 +2,0,0,6.030685,0,0,0,1,0,0 +1,0,0,6.030685,0,0,17.2,1,0,0 +0,0,0,6.030685,0,0,17.2,1,0,0 +4,0,0,6.030685,0,0,17.2,1,0,0 +1,0,1,5.703783,5.755076,0,10.3,0,0,0 +3,0,1,5.703783,5.755076,0,10.3,0,0,0 +2,0,1,5.703783,5.755076,0,10.3,0,0,0 +11,0,1,5.703783,5.755076,1,13.8,1,0,0 +1,0,1,5.703783,5.755076,1,13.8,1,0,0 +4,0,1,5.703783,5.755076,1,13.8,1,0,0 +0,3.258096,0,0,7.391662,1,31,0,1,0 +0,3.258096,0,0,7.391662,1,31,0,1,0 +3,3.258096,0,0,7.391662,1,31,0,1,0 +10,3.258096,0,0,7.391662,1,31,0,1,0 +22,3.258096,0,0,7.391662,1,31,0,1,0 +2,0,1,6.109248,6.160541,0,13.8,1,0,0 +5,0,1,6.109248,6.160541,0,13.8,1,0,0 +6,0,1,6.109248,6.160541,0,13.8,1,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +4,0,1,6.109248,6.160541,0,6.9,0,0,0 +3,0,1,6.109248,6.160541,0,6.9,0,0,0 +4,0,1,6.109248,6.160541,0,6.9,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +4,0,1,6.109248,6.160541,0,0,0,0,0 +1,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +4,3.258096,0,7.006478,7.976801,0,13.8,0,0,0 +1,3.258096,0,7.006478,7.976801,0,13.8,0,0,0 +1,3.258096,0,7.006478,7.976801,0,13.8,0,0,0 +2,3.258096,0,7.006478,7.976801,0,10.57626,0,0,0 +2,3.258096,0,7.006478,7.976801,0,10.57626,0,0,0 +2,3.258096,0,7.006478,7.976801,0,10.57626,0,0,0 +1,3.258096,0,7.006478,7.976801,0,10.3,0,0,0 +0,3.258096,0,7.006478,7.976801,0,10.3,0,0,0 +0,3.258096,0,7.006478,7.976801,0,10.3,0,0,0 +0,3.258096,0,7.006478,7.976801,0,10.57626,0,0,0 +2,3.258096,0,7.006478,7.976801,0,10.57626,0,0,0 +0,3.258096,0,7.006478,7.976801,0,10.57626,0,0,0 +0,0,0,0,0,0,0,0,0,0 +4,0,0,0,0,0,0,0,0,0 +1,0,0,0,0,0,0,0,0,0 +8,3.258096,0,6.510258,7.896553,1,31,1,0,0 +3,3.258096,0,6.510258,7.896553,1,31,1,0,0 +7,3.258096,0,6.510258,7.896553,1,31,1,0,0 +1,3.258096,0,6.510258,7.896553,0,6.9,0,0,0 +2,3.258096,0,6.510258,7.896553,0,6.9,0,0,0 +2,3.258096,0,6.510258,7.896553,0,6.9,0,0,0 +0,3.258096,0,6.510258,7.896553,0,10.57626,0,0,0 +0,3.258096,0,6.510258,7.896553,0,10.57626,0,0,0 +1,3.258096,0,6.510258,7.896553,0,10.57626,0,0,0 +0,0,1,5.010635,5.061929,0,10.3,0,0,0 +0,0,1,5.010635,5.061929,0,10.3,0,0,0 +0,0,1,5.010635,5.061929,0,10.3,0,0,0 +3,3.258096,0,6.620073,8.006368,1,10.57626,1,0,0 +2,3.258096,0,6.620073,8.006368,1,10.57626,1,0,0 +2,3.258096,0,6.620073,8.006368,1,10.57626,1,0,0 +4,3.258096,0,6.620073,8.006368,1,27.6,1,0,0 +1,3.258096,0,6.620073,8.006368,1,27.6,1,0,0 +5,3.258096,0,6.620073,8.006368,1,27.6,1,0,0 +1,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +2,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +3,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +4,3.258096,0,6.620073,8.006368,1,37.9,0,0,1 +5,3.258096,0,6.620073,8.006368,1,37.9,0,0,1 +5,3.258096,0,6.620073,8.006368,1,37.9,0,0,1 +6,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +1,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +2,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +6,0,0,5.702181,0,0,17.2,0,0,0 +3,0,0,5.702181,0,0,17.2,0,0,0 +3,0,0,5.702181,0,0,17.2,0,0,0 +5,0,0,5.702181,0,0,17.2,0,0,0 +2,0,0,5.702181,0,0,17.2,0,0,0 +9,0,0,5.702181,0,0,13.8,0,0,0 +0,0,0,5.702181,0,0,13.8,0,0,0 +2,0,0,5.702181,0,0,13.8,0,0,0 +4,0,0,5.702181,0,0,13.8,0,0,0 +7,0,0,5.702181,0,0,13.8,0,0,0 +9,0,0,5.702181,0,0,3.4,1,0,0 +1,0,0,5.702181,0,0,3.4,1,0,0 +2,0,0,5.702181,0,0,3.4,1,0,0 +0,0,0,5.702181,0,0,3.4,1,0,0 +3,0,0,5.702181,0,0,3.4,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +1,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +1,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +2,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +2,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +1,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +0,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +1,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +2,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +2,3.258096,0,6.620073,8.006368,1,20.7,0,0,0 +1,3.258096,0,6.620073,8.006368,1,20.7,0,0,0 +0,3.258096,0,6.620073,8.006368,1,20.7,0,0,0 +0,0,0,0,0,0,6.9,0,0,0 +1,0,0,0,0,0,6.9,0,0,0 +0,0,0,0,0,0,6.9,0,0,0 +1,0,0,0,0,0,0,0,0,0 +2,0,0,0,0,0,0,0,0,0 +2,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +4,0,0,0,0,1,13.8,0,0,0 +5,0,0,0,0,1,13.8,0,0,0 +1,0,0,0,0,1,13.8,0,0,0 +0,3.258096,0,6.357409,7.743703,0,3.4,1,0,0 +0,3.258096,0,6.357409,7.743703,0,3.4,1,0,0 +1,3.258096,0,6.357409,7.743703,0,3.4,1,0,0 +0,3.258096,0,6.357409,7.743703,0,0,1,0,0 +7,3.258096,0,6.357409,7.743703,0,0,1,0,0 +1,3.258096,0,6.357409,7.743703,0,0,1,0,0 +0,3.258096,0,6.223171,7.609466,1,27.6,1,0,0 +0,3.258096,0,6.223171,7.609466,1,27.6,1,0,0 +1,3.258096,0,6.223171,7.609466,1,27.6,1,0,0 +0,3.258096,0,6.223171,7.609466,0,10.57626,0,0,0 +0,3.258096,0,6.223171,7.609466,0,10.57626,0,0,0 +0,3.258096,0,6.223171,7.609466,0,10.57626,0,0,0 +0,3.258096,0,6.223171,7.609466,0,10.3,0,0,0 +0,3.258096,0,6.223171,7.609466,0,10.3,0,0,0 +0,3.258096,0,6.223171,7.609466,0,10.3,0,0,0 +1,3.931826,0,0,7.600903,0,6.9,1,0,0 +0,3.931826,0,0,7.600903,0,6.9,1,0,0 +2,3.931826,0,0,7.600903,0,6.9,1,0,0 +0,3.931826,0,0,7.600903,0,10.57626,0,0,0 +2,3.931826,0,0,7.600903,0,10.57626,0,0,0 +4,3.931826,0,0,7.600903,0,10.57626,0,0,0 +0,3.931826,0,0,7.600903,0,10.57626,0,0,0 +0,3.931826,0,0,7.600903,0,10.57626,0,0,0 +0,3.931826,0,0,7.600903,0,10.57626,0,0,0 +0,0,0,2.890372,0,.1442925,10.57626,0,0,0 +2,0,0,2.890372,0,.1442925,10.57626,0,0,0 +0,0,0,2.890372,0,.1442925,10.57626,0,0,0 +3,0,0,2.890372,0,0,17.2,1,0,0 +3,0,0,2.890372,0,0,17.2,1,0,0 +4,0,0,2.890372,0,0,17.2,1,0,0 +2,0,0,2.890372,0,0,6.9,0,0,0 +1,0,0,2.890372,0,0,6.9,0,0,0 +3,0,0,2.890372,0,0,6.9,0,0,0 +0,0,1,5.010635,5.061929,0,6.9,0,0,0 +0,0,1,5.010635,5.061929,0,6.9,0,0,0 +0,0,1,5.010635,5.061929,0,6.9,0,0,0 +10,0,0,5.273,0,0,24.1,1,0,0 +2,0,0,5.273,0,0,24.1,1,0,0 +1,0,0,5.273,0,0,24.1,1,0,0 +2,0,0,5.273,0,0,10.57626,1,0,0 +0,0,0,5.273,0,0,10.57626,1,0,0 +1,0,0,5.273,0,0,10.57626,1,0,0 +4,0,0,5.273,0,0,3.4,1,0,0 +2,0,0,5.273,0,0,3.4,1,0,0 +1,0,0,5.273,0,0,3.4,1,0,0 +0,0,0,5.273,0,0,10.57626,1,0,0 +7,0,0,5.273,0,0,10.57626,1,0,0 +3,0,0,5.273,0,0,10.57626,1,0,0 +0,0,0,5.273,0,0,6.9,0,1,0 +0,0,0,5.273,0,0,6.9,0,1,0 +0,0,0,5.273,0,0,6.9,0,1,0 +0,4.564348,0,6.907755,6.959049,0,24.1,1,0,0 +0,4.564348,0,6.907755,6.959049,0,24.1,1,0,0 +2,4.564348,0,6.907755,6.959049,0,24.1,1,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,0,1,0 +0,4.564348,0,6.907755,6.959049,0,6.9,0,1,0 +0,4.564348,0,6.907755,6.959049,0,6.9,0,1,0 +1,4.564348,0,6.383507,6.4348,0,17.2,0,0,0 +3,4.564348,0,6.383507,6.4348,0,17.2,0,0,0 +0,4.564348,0,6.383507,6.4348,0,17.2,0,0,0 +0,4.564348,0,6.383507,6.4348,0,0,0,0,0 +0,4.564348,0,6.383507,6.4348,0,0,0,0,0 +0,4.564348,0,6.383507,6.4348,0,0,0,0,0 +1,0,0,0,0,.1442925,10.57626,0,0,0 +3,0,0,0,0,.1442925,10.57626,0,0,0 +3,0,0,0,0,.1442925,10.57626,0,0,0 +3,0,0,0,0,.1442925,10.57626,0,0,0 +0,0,0,0,0,.1442925,10.57626,0,0,0 +3,0,0,0,0,.1442925,10.57626,0,0,0 +3,0,0,0,0,.1442925,10.57626,0,0,0 +5,0,0,0,0,.1442925,10.57626,0,0,0 +2,0,0,0,0,.1442925,10.57626,0,0,0 +4,0,0,0,0,.1442925,10.57626,0,0,0 +2,0,0,0,0,.1442925,10.57626,0,0,0 +0,0,0,0,0,.1442925,10.57626,0,0,0 +4,0,0,0,0,.1442925,10.57626,0,0,0 +1,0,0,0,0,.1442925,10.57626,0,0,0 +1,0,0,0,0,.1442925,10.57626,0,0,0 +14,0,0,6.815157,0,0,10.57626,0,0,0 +12,0,0,6.815157,0,0,10.57626,0,0,0 +10,0,0,6.815157,0,0,10.57626,0,0,0 +5,0,0,6.815157,0,0,10.57626,0,0,0 +3,0,0,6.815157,0,0,10.57626,0,0,0 +6,0,0,0,0,1,6.9,0,0,0 +18,0,0,0,0,1,6.9,0,0,0 +11,0,0,0,0,1,6.9,0,0,0 +7,0,0,0,0,1,6.9,0,0,0 +4,0,0,0,0,1,6.9,0,0,0 +0,0,0,0,0,0,10.3,0,0,0 +7,0,0,0,0,0,10.3,0,0,0 +5,0,0,0,0,0,10.3,0,0,0 +2,0,0,0,0,0,10.3,0,0,0 +1,0,0,0,0,0,10.3,0,0,0 +0,4.564348,0,0,5.714254,0,3.4,0,0,0 +0,4.564348,0,0,5.714254,0,3.4,0,0,0 +0,4.564348,0,0,5.714254,0,3.4,0,0,0 +1,3.931826,0,6.907755,7.600903,0,20.7,0,0,0 +1,3.931826,0,6.907755,7.600903,0,20.7,0,0,0 +0,3.931826,0,6.907755,7.600903,0,20.7,0,0,0 +1,3.931826,0,6.907755,7.600903,0,20.7,0,0,0 +0,3.931826,0,6.907755,7.600903,0,20.7,0,0,0 +2,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +3,0,0,0,0,0,10.57626,0,0,0 +0,0,1,0,6.160541,0,10.57626,0,0,0 +0,0,1,0,6.160541,0,10.57626,0,0,0 +0,0,1,0,6.160541,0,10.57626,0,0,0 +1,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +1,0,1,6.109248,6.160541,0,3.4,0,0,0 +2,0,1,5.977771,5.755076,0,17.2,1,0,0 +5,0,1,5.977771,5.755076,0,17.2,1,0,0 +2,0,1,5.977771,5.755076,0,17.2,1,0,0 +0,0,1,5.977771,5.755076,1,3.4,1,0,0 +0,0,1,5.977771,5.755076,1,3.4,1,0,0 +0,0,1,5.977771,5.755076,1,3.4,1,0,0 +2,0,0,0,0,0,10.57626,0,0,0 +2,0,0,0,0,0,10.57626,0,0,0 +1,0,0,0,0,0,10.57626,0,0,0 +1,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +1,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +1,0,0,0,0,0,10.57626,0,0,0 +2,0,0,0,0,0,10.57626,0,0,0 +2,0,0,0,0,0,10.57626,0,0,0 +2,0,0,0,0,0,10.57626,0,0,0 +2,0,0,0,0,0,20.7,1,0,0 +3,0,0,0,0,0,20.7,1,0,0 +7,0,0,0,0,0,20.7,1,0,0 +3,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +10,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +4,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +10,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +2,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +2,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +3,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +4,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +1,3.258096,0,6.620073,8.006368,0,10.3,1,0,0 +4,3.258096,0,6.620073,8.006368,0,10.3,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.3,1,0,0 +0,3.931826,0,6.907755,7.600903,0,24.1,0,0,0 +0,3.931826,0,6.907755,7.600903,0,24.1,0,0,0 +1,3.931826,0,6.907755,7.600903,0,24.1,0,0,0 +1,3.931826,0,6.907755,7.600903,0,10.57626,0,0,0 +2,3.931826,0,6.907755,7.600903,0,10.57626,0,0,0 +0,3.931826,0,6.907755,7.600903,0,10.57626,0,0,0 +2,3.931826,0,6.907755,7.600903,0,13.8,0,0,0 +5,3.931826,0,6.907755,7.600903,0,13.8,0,0,0 +1,3.931826,0,6.907755,7.600903,0,13.8,0,0,0 +1,3.931826,0,6.907755,7.600903,1,10.57626,0,0,0 +0,3.931826,0,6.907755,7.600903,1,10.57626,0,0,0 +0,3.931826,0,6.907755,7.600903,1,10.57626,0,0,0 +1,0,0,6.287598,0,0,10.57626,0,0,0 +7,0,0,6.287598,0,0,10.57626,0,0,0 +7,0,0,6.287598,0,0,10.57626,0,0,0 +1,0,0,6.287598,0,0,10.57626,0,1,0 +3,0,0,6.287598,0,0,10.57626,0,1,0 +7,0,0,6.287598,0,0,10.57626,0,1,0 +1,0,0,6.287598,0,0,10.57626,0,1,0 +8,0,0,6.287598,0,0,10.57626,0,1,0 +5,0,0,6.287598,0,0,10.57626,0,1,0 +1,0,0,6.287598,0,0,6.9,0,0,0 +2,0,0,6.287598,0,0,6.9,0,0,0 +5,0,0,6.287598,0,0,6.9,0,0,0 +1,0,0,6.287598,0,0,10.3,0,1,0 +7,0,0,6.287598,0,0,10.3,0,1,0 +9,0,0,6.287598,0,0,10.3,0,1,0 +2,0,0,6.287598,0,0,10.57626,0,0,0 +3,0,0,6.287598,0,0,10.57626,0,0,0 +3,0,0,6.287598,0,0,10.57626,0,0,0 +6,0,0,6.287598,0,0,3.4,0,0,0 +6,0,0,6.287598,0,0,3.4,0,0,0 +0,0,0,6.287598,0,0,3.4,0,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +1,0,0,0,0,0,10.57626,0,0,0 +3,0,0,0,0,0,10.57626,0,0,0 +1,0,0,6.437399,0,0,6.9,0,0,0 +2,4.564348,0,6.745236,6.79653,0,13.8,0,0,0 +1,4.564348,0,6.745236,6.79653,0,13.8,0,0,0 +1,0,0,0,0,0,3.4,0,0,0 +1,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +0,0,0,6.384047,0,0,10.57626,0,0,0 +2,0,0,6.384047,0,0,10.57626,0,0,0 +1,0,0,6.384047,0,0,10.57626,0,0,0 +10,0,0,5.879527,0,.1442925,10.57626,0,0,0 +7,0,0,5.879527,0,.1442925,10.57626,0,0,0 +1,0,0,5.879527,0,.1442925,10.57626,0,0,0 +1,0,0,5.879527,0,.1442925,10.57626,0,0,0 +4,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +0,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +0,3.258096,0,6.620073,8.006368,0,3.4,0,0,0 +0,4.564348,0,4.959693,5.010986,0,10.57626,0,0,0 +0,4.564348,0,4.959693,5.010986,0,10.57626,0,0,0 +0,4.564348,0,4.959693,5.010986,0,10.57626,0,0,0 +4,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +3,0,1,6.109248,6.160541,1,6.9,0,0,0 +5,0,1,6.109248,6.160541,1,6.9,0,0,0 +8,0,1,6.109248,6.160541,1,6.9,0,0,0 +11,0,1,5.010635,5.061929,.1442925,10.57626,0,0,0 +0,0,1,5.010635,5.061929,.1442925,10.57626,0,0,0 +1,0,1,5.010635,5.061929,.1442925,10.57626,0,0,0 +0,0,1,5.010635,5.061929,.1442925,10.57626,0,0,0 +1,4.564348,0,5.98202,5.799093,.1442925,10.57626,0,0,0 +0,4.564348,0,5.98202,5.799093,.1442925,10.57626,0,0,0 +0,4.564348,0,5.98202,5.799093,.1442925,10.57626,0,0,0 +5,4.564348,0,6.907755,6.959049,0,10.57626,0,0,0 +12,4.564348,0,6.907755,6.959049,0,10.57626,0,0,0 +3,4.564348,0,6.907755,6.959049,0,10.57626,0,0,0 +11,0,0,6.152051,0,.1442925,10.57626,0,0,0 +12,0,0,6.152051,0,.1442925,10.57626,0,0,0 +5,0,0,6.152051,0,.1442925,10.57626,0,0,0 +4,0,0,6.152051,0,.1442925,10.57626,0,0,0 +28,0,0,0,0,.1442925,10.57626,0,0,0 +11,0,0,0,0,.1442925,10.57626,0,0,0 +5,0,0,0,0,.1442925,10.57626,0,0,0 +1,0,0,0,0,.1442925,10.57626,0,0,0 +0,3.258096,0,5.810392,7.196687,.1442925,10.57626,0,0,0 +1,3.258096,0,5.810392,7.196687,.1442925,10.57626,0,0,0 +0,3.258096,0,5.810392,7.196687,.1442925,10.57626,0,0,0 +0,3.258096,0,5.810392,7.196687,.1442925,10.57626,0,0,0 +5,4.564348,0,6.907755,6.959049,.1442925,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,.1442925,10.57626,0,0,0 +1,4.564348,0,6.907755,6.959049,.1442925,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,.1442925,10.57626,0,0,0 +5,0,1,6.109248,6.160541,0,10.57626,0,0,0 +3,0,1,6.109248,6.160541,0,10.57626,0,0,0 +4,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,0,6.160541,.1442925,10.57626,0,0,0 +0,0,1,0,6.160541,.1442925,10.57626,0,0,0 +0,0,1,0,6.160541,.1442925,10.57626,0,0,0 +2,0,1,0,6.160541,.1442925,10.57626,0,0,0 +15,0,1,6.109248,6.160541,0,10.57626,0,0,0 +2,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +8,0,0,6.819711,0,0,10.57626,0,0,0 +11,0,0,6.819711,0,0,10.57626,0,0,0 +9,0,0,6.819711,0,0,10.57626,0,0,0 +2,4.564348,0,6.907755,6.959049,0,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,0,0,0 +1,4.564348,0,6.907755,6.959049,0,10.57626,0,0,0 +0,4.564348,0,5.753049,5.804342,0,13.8,0,0,0 +0,4.564348,0,5.753049,5.804342,0,13.8,0,0,0 +0,4.564348,0,5.753049,5.804342,0,13.8,0,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +1,0,0,0,0,0,10.57626,0,0,0 +1,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,.1442925,10.57626,0,0,0 +6,0,0,0,0,.1442925,10.57626,0,0,0 +0,0,0,0,0,.1442925,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,0,0,0 +6,0,1,5.928099,5.755076,0,10.3,0,0,0 +0,0,1,5.928099,5.755076,0,10.3,0,0,0 +3,0,1,5.928099,5.755076,0,10.3,0,0,0 +1,0,0,6.532596,0,0,10.57626,0,0,0 +2,0,0,6.532596,0,0,10.57626,0,0,0 +1,0,0,6.532596,0,0,10.57626,0,0,0 +2,0,0,6.532596,0,0,17.2,0,0,0 +10,0,0,6.532596,0,0,17.2,0,0,0 +7,0,0,6.532596,0,0,17.2,0,0,0 +0,0,0,0,0,.1442925,10.57626,0,0,0 +0,0,0,0,0,.1442925,10.57626,0,0,0 +0,0,0,0,0,.1442925,10.57626,0,0,0 +0,4.564348,0,5.783825,5.835118,0,10.57626,0,0,0 +2,4.564348,0,5.783825,5.835118,0,10.57626,0,0,0 +0,4.564348,0,5.783825,5.835118,0,10.57626,0,0,0 +4,0,1,6.761573,6.160541,0,10.57626,0,0,0 +1,0,1,6.761573,6.160541,0,10.57626,0,0,0 +2,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +5,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +4,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +0,3.258096,0,6.471356,5.771441,0,10.57626,0,0,0 +0,3.258096,0,6.471356,5.771441,0,10.57626,0,0,0 +0,3.258096,0,6.471356,5.771441,0,10.57626,0,0,0 +8,3.931826,0,6.907755,7.600903,.1442925,10.57626,0,0,0 +4,3.931826,0,6.907755,7.600903,.1442925,10.57626,0,0,0 +2,3.931826,0,6.907755,7.600903,.1442925,10.57626,0,0,0 +10,0,1,6.109248,6.160541,.1442925,10.57626,0,0,0 +3,0,1,6.109248,6.160541,.1442925,10.57626,0,0,0 +3,0,1,6.109248,6.160541,.1442925,10.57626,0,0,0 +0,3.258096,0,0,6.635421,.1442925,10.57626,0,0,0 +0,3.258096,0,0,6.635421,.1442925,10.57626,0,0,0 +1,0,0,0,0,0,10.3,0,0,0 +2,0,0,0,0,0,10.3,0,0,0 +2,0,0,0,0,0,10.3,0,0,0 +0,0,1,0,6.160541,0,10.57626,0,0,0 +0,0,1,0,6.160541,0,10.57626,0,0,0 +2,0,1,0,6.160541,0,10.57626,0,0,0 +4,0,1,5.010635,6.160541,0,10.57626,0,0,0 +1,0,1,5.010635,6.160541,0,10.57626,0,0,0 +4,0,1,5.010635,6.160541,0,10.57626,0,0,0 +8,0,0,0,0,0,10.57626,0,0,0 +7,0,0,0,0,0,10.57626,0,0,0 +8,0,0,0,0,0,10.57626,0,0,0 +11,0,1,6.109248,6.160541,.1442925,10.57626,0,0,0 +9,0,1,6.109248,6.160541,.1442925,10.57626,0,0,0 +2,0,1,6.109248,6.160541,.1442925,10.57626,0,0,0 +0,0,0,4.510859,0,.1442925,10.57626,0,0,0 +0,0,0,4.510859,0,.1442925,10.57626,0,0,0 +1,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0 +0,0,0,0,0,1,0,0,0,0 +0,0,1,6.109248,6.160541,1,10.57626,0,0,0 +0,0,1,6.109248,6.160541,1,10.57626,0,0,0 +0,0,1,6.109248,6.160541,1,10.57626,0,0,0 +4,0,0,2.890372,0,0,10.57626,0,0,0 +3,0,0,2.890372,0,0,10.57626,0,0,0 +3,0,0,2.890372,0,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +3,0,0,0,0,.1442925,10.57626,0,0,0 +1,0,0,0,0,.1442925,10.57626,0,0,0 +0,0,0,7.080969,0,0,0,0,0,0 +0,0,0,7.080969,0,0,0,0,0,0 +0,0,0,7.080969,0,0,0,0,0,0 +1,0,0,0,0,.1442925,10.57626,0,0,0 +0,0,0,0,0,.1442925,10.57626,0,0,0 +14,4.564348,0,6.907755,6.959049,.1442925,10.57626,0,0,0 +8,4.564348,0,6.907755,6.959049,.1442925,10.57626,0,0,0 +2,4.564348,0,6.907755,6.959049,.1442925,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,.1442925,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,.1442925,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,.1442925,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,.1442925,10.57626,0,0,0 +6,4.564348,0,4.945919,4.997212,.1442925,10.57626,0,0,0 +1,4.564348,0,4.945919,4.997212,.1442925,10.57626,0,0,0 +17,0,0,6.030685,0,.1442925,10.57626,0,0,0 +12,0,0,6.030685,0,.1442925,10.57626,0,0,0 +1,3.258096,0,6.620073,8.006368,.1442925,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,.1442925,10.57626,0,0,0 +0,3.258096,0,5.752573,7.138867,.1442925,10.57626,0,0,0 +0,3.258096,0,5.752573,7.138867,.1442925,10.57626,0,0,0 +11,0,1,6.109248,6.160541,.1442925,10.57626,0,0,0 +10,0,1,6.109248,6.160541,.1442925,10.57626,0,0,0 +6,0,1,6.109248,6.160541,.1442925,10.57626,0,0,0 +13,0,0,6.819711,0,.1442925,10.57626,0,0,0 +8,0,0,6.819711,0,.1442925,10.57626,0,0,0 +2,4.564348,0,6.907755,6.959049,.1442925,10.57626,0,0,0 +7,0,1,6.109248,6.160541,.1442925,10.57626,0,0,0 +3,0,0,5.294309,0,.1442925,10.57626,0,0,0 +0,0,1,6.109248,6.160541,.1442925,10.57626,0,0,0 +0,0,1,6.109248,6.160541,.1442925,10.57626,0,0,0 +0,4.564348,0,7.06732,6.675624,.1442925,10.57626,0,0,0 +0,4.564348,0,7.06732,6.675624,.1442925,10.57626,0,0,0 +2,0,1,0,6.160541,.1442925,10.57626,0,0,0 +0,4.564348,0,5.783825,5.835118,.1442925,10.57626,0,0,0 +6,3.258096,0,6.357409,7.743703,.1442925,10.57626,0,0,0 +0,4.564348,0,6.160574,6.211867,.1442925,10.57626,0,0,0 +1,4.564348,0,6.160574,6.211867,.1442925,10.57626,0,0,0 +0,0,1,0,6.160541,.1442925,10.57626,0,0,0 +5,0,0,0,0,.1442925,10.57626,0,0,0 +6,4.564348,0,5.753049,5.804342,.1442925,10.57626,0,0,0 +5,0,0,0,0,.1442925,10.57626,0,0,0 +6,0,0,0,0,.1442925,10.57626,0,0,0 +18,0,0,0,0,.1442925,10.57626,0,0,0 +5,0,0,0,0,.1442925,10.57626,0,0,0 +8,0,0,0,0,.1442925,10.57626,0,0,0 +11,0,0,6.206979,0,.1442925,10.57626,0,0,0 +5,0,0,5.702181,0,.1442925,10.57626,0,0,0 +6,0,1,0,6.160541,.1442925,10.57626,0,0,0 +0,4.564348,0,6.649632,6.700925,.1442925,10.57626,0,0,0 +11,0,0,6.030685,0,.1442925,10.57626,0,0,0 +10,0,1,5.703783,5.755076,.1442925,10.57626,0,0,0 +0,3.258096,0,5.752573,7.138867,.1442925,10.57626,0,0,0 +0,4.564348,0,5.991465,6.042758,0,10.3,0,0,0 +0,4.564348,0,5.991465,6.042758,0,10.3,0,0,0 +0,4.564348,0,5.991465,6.042758,0,10.3,0,0,0 +0,4.564348,0,5.991465,6.042758,0,6.9,0,0,0 +2,4.564348,0,5.991465,6.042758,0,6.9,0,0,0 +2,4.564348,0,5.991465,6.042758,0,6.9,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.3,0,1,0 +0,4.564348,0,6.907755,6.959049,0,10.3,0,1,0 +1,4.564348,0,6.907755,6.959049,0,10.3,0,1,0 +1,4.564348,0,6.907755,6.959049,0,3.4,1,0,0 +1,4.564348,0,6.907755,6.959049,0,3.4,1,0,0 +1,4.564348,0,6.907755,6.959049,0,3.4,1,0,0 +2,3.258096,0,6.311226,6.966024,0,10.57626,0,0,0 +3,3.258096,0,6.311226,6.966024,0,10.57626,0,0,0 +0,3.258096,0,6.311226,6.966024,0,10.57626,0,0,0 +4,3.258096,0,6.311226,6.966024,0,6.9,0,0,0 +5,3.258096,0,6.311226,6.966024,0,6.9,0,0,0 +1,3.258096,0,6.311226,6.966024,0,6.9,0,0,0 +1,0,0,5.634933,0,0,10.57626,1,0,0 +0,0,0,5.634933,0,0,10.57626,1,0,0 +2,0,0,5.634933,0,0,10.57626,1,0,0 +3,0,0,5.634933,0,0,10.57626,1,0,0 +1,0,0,5.634933,0,0,10.57626,1,0,0 +0,0,0,5.634933,0,0,0,0,0,0 +0,0,0,5.634933,0,0,0,0,0,0 +2,0,0,5.634933,0,0,0,0,0,0 +5,0,0,5.634933,0,0,0,0,0,0 +1,0,0,5.634933,0,0,0,0,0,0 +18,0,0,5.634933,0,0,17.2,0,0,1 +4,0,0,5.634933,0,0,17.2,0,0,1 +9,0,0,5.634933,0,0,17.2,0,0,1 +4,0,0,5.634933,0,0,17.2,0,0,1 +3,0,0,5.634933,0,0,17.2,0,0,1 +1,0,0,5.634933,0,0,6.9,1,0,0 +9,0,0,5.634933,0,0,6.9,1,0,0 +1,0,0,5.634933,0,0,6.9,1,0,0 +0,0,0,5.634933,0,0,6.9,1,0,0 +0,0,0,5.634933,0,0,6.9,1,0,0 +2,0,0,6.264845,0,0,10.3,0,0,0 +5,0,0,6.264845,0,0,10.3,0,0,0 +3,0,0,6.264845,0,0,10.3,0,0,0 +2,0,0,6.264845,0,0,10.3,0,0,0 +2,0,0,6.264845,0,0,10.3,0,0,0 +2,0,0,6.264845,0,1,0,0,0,0 +1,0,0,6.264845,0,1,0,0,0,0 +1,0,0,6.264845,0,1,0,0,0,0 +1,0,0,6.264845,0,1,0,0,0,0 +1,0,0,6.264845,0,1,0,0,0,0 +3,0,0,6.264845,0,0,3.4,0,0,0 +3,0,0,6.264845,0,0,3.4,0,0,0 +1,0,0,6.264845,0,0,3.4,0,0,0 +3,0,0,6.264845,0,0,3.4,0,0,0 +3,0,0,6.264845,0,0,3.4,0,0,0 +2,0,0,6.264845,0,0,10.3,0,0,0 +1,0,0,6.264845,0,0,10.3,0,0,0 +4,0,0,6.264845,0,0,10.3,0,0,0 +3,0,0,6.264845,0,0,10.3,0,0,0 +2,0,0,6.264845,0,0,10.3,0,0,0 +0,4.564348,0,3.883624,3.934917,.1442925,10.57626,1,0,0 +0,4.564348,0,3.883624,3.934917,.1442925,10.57626,1,0,0 +0,4.564348,0,3.883624,3.934917,.1442925,10.57626,1,0,0 +0,4.564348,0,3.883624,3.934917,.1442925,10.57626,1,0,0 +0,4.564348,0,3.883624,3.934917,.1442925,10.57626,1,0,0 +0,4.564348,0,3.883624,3.934917,.1442925,10.57626,1,0,0 +0,4.564348,0,3.883624,3.934917,.1442925,10.57626,1,0,0 +0,4.564348,0,3.883624,3.934917,.1442925,10.57626,1,0,0 +0,4.564348,0,3.883624,3.934917,.1442925,10.57626,1,0,0 +0,4.564348,0,3.883624,3.934917,.1442925,10.57626,1,0,0 +0,4.564348,0,3.883624,3.934917,.1442925,10.57626,1,0,0 +0,4.564348,0,3.883624,3.934917,.1442925,10.57626,1,0,0 +1,4.564348,0,3.883624,3.934917,.1442925,10.57626,1,0,0 +1,4.564348,0,3.883624,3.934917,.1442925,10.57626,1,0,0 +3,4.564348,0,6.939874,6.602374,0,17.2,1,0,0 +0,4.564348,0,6.939874,6.602374,1,10.3,1,0,0 +2,4.564348,0,6.015181,5.734873,1,3.4,0,1,0 +1,4.564348,0,6.015181,5.734873,1,3.4,0,1,0 +1,4.564348,0,6.015181,5.734873,1,3.4,0,1,0 +9,4.564348,0,6.015181,5.734873,1,3.4,0,1,0 +3,4.564348,0,6.015181,5.734873,1,3.4,0,1,0 +2,4.564348,0,6.015181,5.734873,1,3.4,1,0,0 +0,4.564348,0,6.015181,5.734873,1,3.4,1,0,0 +2,4.564348,0,6.015181,5.734873,1,3.4,1,0,0 +0,4.564348,0,6.015181,5.734873,1,3.4,1,0,0 +3,4.564348,0,6.015181,5.734873,1,3.4,1,0,0 +7,4.564348,0,6.015181,5.734873,1,13.8,1,0,0 +13,4.564348,0,6.015181,5.734873,1,13.8,1,0,0 +7,4.564348,0,6.015181,5.734873,1,13.8,1,0,0 +17,4.564348,0,6.015181,5.734873,1,13.8,1,0,0 +10,4.564348,0,6.015181,5.734873,1,13.8,1,0,0 +1,4.564348,0,6.015181,5.734873,1,10.57626,1,0,0 +1,4.564348,0,6.015181,5.734873,1,10.57626,1,0,0 +0,4.564348,0,6.015181,5.734873,1,10.57626,1,0,0 +0,4.564348,0,6.015181,5.734873,1,10.57626,1,0,0 +0,4.564348,0,6.015181,5.734873,1,10.57626,1,0,0 +2,3.258096,0,0,6.907755,1,17.2,1,0,0 +1,3.258096,0,0,6.907755,1,17.2,1,0,0 +1,3.258096,0,0,6.907755,1,17.2,1,0,0 +0,0,0,0,0,1,31,1,0,0 +2,0,0,0,0,1,31,1,0,0 +2,0,0,0,0,1,31,1,0,0 +4,0,0,0,0,0,10.3,1,0,0 +3,0,0,0,0,0,10.3,1,0,0 +0,0,0,0,0,0,10.3,1,0,0 +0,0,0,0,0,0,20.7,1,0,0 +1,0,0,0,0,0,20.7,1,0,0 +1,0,0,0,0,0,20.7,1,0,0 +2,4.564348,0,6.232605,6.2643,1,13.8,1,0,0 +0,4.564348,0,6.232605,6.2643,1,13.8,1,0,0 +0,4.564348,0,6.232605,6.2643,1,13.8,1,0,0 +0,4.564348,0,6.232605,6.2643,1,13.8,1,0,0 +0,4.564348,0,6.232605,6.2643,1,13.8,1,0,0 +0,4.564348,0,6.232605,6.2643,1,10.3,1,0,0 +0,4.564348,0,6.232605,6.2643,1,10.3,1,0,0 +0,0,0,5.903944,0,0,10.3,1,0,0 +1,0,0,5.903944,0,0,10.3,1,0,0 +2,0,0,5.903944,0,0,10.3,1,0,0 +0,0,0,5.903944,0,0,10.57626,0,1,0 +2,0,0,5.903944,0,0,10.57626,0,1,0 +2,0,0,5.903944,0,0,10.57626,0,1,0 +1,0,0,4.094345,0,1,6.9,1,0,0 +3,0,0,4.094345,0,1,6.9,1,0,0 +4,0,0,4.094345,0,1,6.9,1,0,0 +4,0,0,4.094345,0,1,6.9,1,0,0 +2,0,0,4.094345,0,1,6.9,1,0,0 +4,0,0,4.094345,0,0,10.3,1,0,0 +14,0,0,4.094345,0,0,10.3,1,0,0 +13,0,0,4.094345,0,0,10.3,1,0,0 +7,0,0,4.094345,0,0,10.3,1,0,0 +1,0,0,4.094345,0,0,10.3,1,0,0 +0,0,1,5.703783,5.755076,0,0,1,0,0 +0,0,1,5.703783,5.755076,0,0,1,0,0 +1,0,1,5.703783,5.755076,0,0,1,0,0 +0,0,1,5.703783,5.755076,0,13.8,1,0,0 +1,0,1,5.703783,5.755076,0,13.8,1,0,0 +1,0,1,5.703783,5.755076,0,13.8,1,0,0 +2,0,0,0,0,0,6.9,0,0,0 +2,0,0,0,0,0,6.9,0,0,0 +5,0,0,0,0,0,6.9,0,0,0 +3,0,0,0,0,0,6.9,0,0,0 +5,0,0,0,0,0,6.9,0,0,0 +1,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +1,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +1,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +0,3.931826,0,6.907755,7.600903,0,17.2,0,0,0 +0,3.931826,0,6.907755,7.600903,0,17.2,0,0,0 +1,3.931826,0,6.907755,7.600903,0,17.2,0,0,0 +5,3.931826,0,6.907755,7.600903,0,20.7,0,1,0 +5,3.931826,0,6.907755,7.600903,0,20.7,0,1,0 +0,3.931826,0,6.907755,7.600903,0,20.7,0,1,0 +0,3.931826,0,6.907755,7.600903,0,6.9,1,0,0 +1,3.931826,0,6.907755,7.600903,0,6.9,1,0,0 +0,3.931826,0,6.907755,7.600903,0,6.9,1,0,0 +2,0,0,5.039806,0,0,0,0,1,0 +3,0,0,5.039806,0,0,0,0,1,0 +0,0,0,5.039806,0,0,0,0,1,0 +4,0,0,5.039806,0,0,10.3,0,1,0 +1,0,0,5.039806,0,0,10.3,0,1,0 +3,0,0,5.039806,0,0,10.3,0,1,0 +0,0,0,5.259992,0,0,13.8,1,0,0 +2,0,0,5.259992,0,0,13.8,1,0,0 +1,0,0,5.259992,0,0,13.8,1,0,0 +6,0,0,5.259992,0,0,17.2,0,1,0 +10,0,0,5.259992,0,0,17.2,0,1,0 +3,0,0,5.259992,0,0,17.2,0,1,0 +2,4.564348,0,5.752731,5.804342,1,6.9,0,1,0 +1,4.564348,0,5.752731,5.804342,1,6.9,0,1,0 +3,4.564348,0,5.752731,5.804342,1,6.9,0,1,0 +4,4.564348,0,5.752731,5.804342,1,6.9,0,1,0 +4,4.564348,0,5.752731,5.804342,1,6.9,0,1,0 +0,0,1,5.010635,5.061929,0,3.4,1,0,0 +0,0,1,5.010635,5.061929,0,3.4,1,0,0 +1,0,1,5.010635,5.061929,0,3.4,1,0,0 +7,3.258096,0,5.762052,7.148346,1,24.1,0,1,0 +19,3.258096,0,5.762052,7.148346,1,24.1,0,1,0 +6,3.258096,0,5.762052,7.148346,1,24.1,0,1,0 +0,3.258096,0,0,5.991465,0,3.4,0,0,0 +0,3.258096,0,0,5.991465,0,3.4,0,0,0 +3,3.258096,0,0,5.991465,0,3.4,0,0,0 +1,3.258096,0,5.762052,7.148346,0,10.57626,0,0,0 +2,3.258096,0,5.762052,7.148346,0,10.57626,0,0,0 +3,3.258096,0,5.762052,7.148346,0,10.57626,0,0,0 +0,0,1,5.703783,5.755076,1,34.5,0,1,0 +0,0,1,5.703783,5.755076,1,34.5,0,1,0 +0,0,1,5.703783,5.755076,1,34.5,0,1,0 +0,0,1,5.703783,5.755076,1,34.5,0,1,0 +0,0,1,5.703783,5.755076,1,34.5,0,1,0 +0,0,1,5.703783,5.755076,1,10.3,1,0,0 +0,0,1,5.703783,5.755076,1,10.3,1,0,0 +0,0,1,5.703783,5.755076,1,10.3,1,0,0 +0,0,1,5.703783,5.755076,1,10.3,1,0,0 +0,0,1,5.703783,5.755076,1,10.3,1,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +1,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,13.8,0,0,0 +1,0,1,6.109248,6.160541,0,13.8,0,0,0 +0,0,1,6.109248,6.160541,0,13.8,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +1,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +1,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +6,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +1,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +2,3.258096,0,6.620073,8.006368,0,10.3,1,0,0 +4,3.258096,0,6.620073,8.006368,0,10.3,1,0,0 +4,3.258096,0,6.620073,8.006368,0,10.3,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +1,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +2,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.3,0,0,0 +0,0,1,6.109248,6.160541,0,10.3,0,0,0 +1,0,1,6.109248,6.160541,0,10.3,0,0,0 +1,0,1,6.109248,6.160541,0,6.9,1,0,0 +0,0,1,6.109248,6.160541,0,6.9,1,0,0 +0,0,1,6.109248,6.160541,0,6.9,1,0,0 +1,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +1,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,6.9,0,0,0 +0,0,1,6.109248,6.160541,0,6.9,0,0,0 +3,0,1,6.109248,6.160541,0,6.9,0,0,0 +5,0,1,5.342525,5.061929,1,34.5,0,1,0 +6,0,1,5.342525,5.061929,1,34.5,0,1,0 +5,0,1,5.342525,5.061929,1,34.5,0,1,0 +0,0,1,0,6.160541,0,6.9,1,0,0 +0,0,1,0,6.160541,0,6.9,1,0,0 +0,0,1,0,6.160541,0,6.9,1,0,0 +0,0,1,0,6.160541,0,3.4,1,0,0 +3,0,1,0,6.160541,0,3.4,1,0,0 +2,0,1,0,6.160541,0,3.4,1,0,0 +0,0,1,0,6.160541,.1442925,10.57626,1,0,0 +0,0,1,0,6.160541,.1442925,10.57626,1,0,0 +0,0,1,0,6.160541,.1442925,10.57626,1,0,0 +1,3.258096,0,6.54002,7.926314,0,20.7,1,0,0 +4,3.258096,0,6.54002,7.926314,0,20.7,1,0,0 +1,3.258096,0,6.54002,7.926314,0,20.7,1,0,0 +0,3.258096,0,6.54002,7.926314,0,10.57626,0,0,0 +0,3.258096,0,6.54002,7.926314,0,10.57626,0,0,0 +0,3.258096,0,6.54002,7.926314,0,10.57626,0,0,0 +0,3.258096,0,6.54002,7.926314,0,10.3,1,0,0 +0,3.258096,0,6.54002,7.926314,0,10.3,1,0,0 +0,3.258096,0,6.54002,7.926314,0,10.3,1,0,0 +0,0,1,6.109248,6.160541,0,6.9,0,1,0 +2,0,1,6.109248,6.160541,0,6.9,0,1,0 +0,0,1,6.109248,6.160541,0,6.9,0,1,0 +0,0,1,6.109248,6.160541,0,10.57626,0,1,0 +0,0,1,6.109248,6.160541,0,10.57626,0,1,0 +0,0,1,6.109248,6.160541,0,10.57626,0,1,0 +0,0,1,6.109248,6.160541,1,10.57626,0,1,0 +0,0,1,6.109248,6.160541,1,10.57626,0,1,0 +0,0,1,6.109248,6.160541,1,10.57626,0,1,0 +0,0,1,6.109248,6.160541,0,10.57626,0,1,0 +0,0,1,6.109248,6.160541,0,10.57626,0,1,0 +0,0,1,6.109248,6.160541,0,10.57626,0,1,0 +0,4.564348,0,5.655992,4.646413,0,10.57626,0,0,0 +2,4.564348,0,5.655992,4.646413,0,10.57626,0,0,0 +0,4.564348,0,5.655992,4.646413,0,10.57626,0,0,0 +0,4.564348,0,5.655992,4.646413,.1442925,10.57626,0,0,0 +0,4.564348,0,5.655992,4.646413,.1442925,10.57626,0,0,0 +0,4.564348,0,5.655992,4.646413,.1442925,10.57626,0,0,0 +0,4.564348,0,5.655992,4.646413,0,0,0,0,0 +0,4.564348,0,5.655992,4.646413,0,0,0,0,0 +0,4.564348,0,5.655992,4.646413,0,0,0,0,0 +1,4.564348,0,5.655992,4.646413,0,34.5,0,0,0 +5,4.564348,0,5.655992,4.646413,0,34.5,0,0,0 +0,4.564348,0,5.655992,4.646413,0,34.5,0,0,0 +4,4.564348,0,5.655992,4.646413,1,27.6,1,0,0 +2,4.564348,0,5.655992,4.646413,1,27.6,1,0,0 +0,4.564348,0,5.655992,4.646413,1,27.6,1,0,0 +0,4.564348,0,5.655992,4.646413,.1442925,10.57626,0,0,0 +0,4.564348,0,5.655992,4.646413,.1442925,10.57626,0,0,0 +0,4.564348,0,5.655992,4.646413,.1442925,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +1,0,1,6.109248,6.160541,0,3.4,1,0,0 +3,0,1,6.109248,6.160541,0,3.4,1,0,0 +0,0,1,6.109248,6.160541,0,3.4,1,0,0 +2,0,1,6.109248,6.160541,0,3.4,1,0,0 +0,0,1,6.109248,6.160541,0,3.4,1,0,0 +0,0,1,6.109248,6.160541,0,3.4,1,0,0 +0,0,1,6.109248,6.160541,0,3.4,1,0,0 +0,0,1,6.109248,6.160541,0,3.4,1,0,0 +0,0,1,6.109248,6.160541,0,3.4,1,0,0 +0,0,1,6.109248,6.160541,0,3.4,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +1,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,0,6.160541,1,34.5,0,0,1 +0,0,1,0,6.160541,1,34.5,0,0,1 +1,0,1,0,6.160541,1,34.5,0,0,1 +0,0,1,0,6.160541,0,3.4,1,0,0 +0,0,1,0,6.160541,0,3.4,1,0,0 +0,0,1,0,6.160541,0,3.4,1,0,0 +1,0,1,0,6.160541,1,6.9,0,0,1 +2,0,1,0,6.160541,1,6.9,0,0,1 +1,0,1,0,6.160541,1,6.9,0,0,1 +5,4.564348,0,6.460843,6.512136,0,6.9,1,0,0 +0,4.564348,0,6.460843,6.512136,0,6.9,1,0,0 +0,4.564348,0,6.460843,6.512136,0,6.9,1,0,0 +0,3.931826,0,6.462249,7.155396,0,3.4,0,0,0 +1,3.931826,0,6.462249,7.155396,0,3.4,0,0,0 +0,3.931826,0,6.462249,7.155396,0,3.4,0,0,0 +40,0,0,5.315371,0,0,17.2,1,0,0 +12,0,0,5.315371,0,0,17.2,1,0,0 +9,0,0,5.315371,0,0,17.2,1,0,0 +9,0,0,5.315371,0,0,17.2,1,0,0 +3,0,0,5.315371,0,0,17.2,1,0,0 +3,0,0,5.315371,0,0,6.9,0,0,0 +0,0,0,5.315371,0,0,6.9,0,0,0 +0,0,0,5.315371,0,0,6.9,0,0,0 +3,0,0,5.315371,0,0,6.9,0,0,0 +6,0,0,5.315371,0,0,6.9,0,0,0 +3,0,0,6.100677,0,0,10.3,1,0,0 +2,0,0,6.100677,0,0,10.3,1,0,0 +1,0,0,6.100677,0,0,10.3,1,0,0 +1,0,0,6.100677,0,0,10.3,1,0,0 +0,0,0,6.100677,0,0,10.3,1,0,0 +2,0,0,6.100677,0,0,6.9,1,0,0 +0,0,0,6.100677,0,0,6.9,1,0,0 +0,0,0,6.100677,0,0,6.9,1,0,0 +0,0,0,6.100677,0,0,6.9,1,0,0 +1,0,0,6.100677,0,0,6.9,1,0,0 +0,0,0,6.100677,0,0,10.57626,1,0,0 +0,0,0,6.100677,0,0,10.57626,1,0,0 +1,0,0,6.100677,0,0,10.57626,1,0,0 +0,0,0,6.100677,0,0,10.57626,1,0,0 +2,0,0,6.100677,0,0,10.57626,1,0,0 +1,0,0,6.100677,0,0,17.2,1,0,0 +5,0,0,6.100677,0,0,17.2,1,0,0 +1,0,0,6.100677,0,0,17.2,1,0,0 +1,0,0,6.100677,0,0,17.2,1,0,0 +2,0,0,6.100677,0,0,17.2,1,0,0 +0,0,0,6.100677,0,0,20.7,0,1,0 +5,0,0,6.100677,0,0,20.7,0,1,0 +1,0,0,6.100677,0,0,20.7,0,1,0 +1,0,0,6.100677,0,0,20.7,0,1,0 +1,0,0,6.100677,0,0,20.7,0,1,0 +2,0,0,6.100677,0,0,6.9,1,0,0 +2,0,0,6.100677,0,0,6.9,1,0,0 +5,0,0,6.100677,0,0,6.9,1,0,0 +2,0,0,6.100677,0,0,6.9,1,0,0 +4,0,0,6.100677,0,0,6.9,1,0,0 +2,3.258096,0,6.507277,7.893572,0,6.9,0,1,0 +1,3.258096,0,6.507277,7.893572,0,6.9,0,1,0 +0,3.258096,0,6.507277,7.893572,0,6.9,0,1,0 +0,3.258096,0,6.507277,7.893572,.1442925,10.57626,1,0,0 +2,3.258096,0,6.507277,7.893572,.1442925,10.57626,1,0,0 +3,3.258096,0,6.507277,7.893572,.1442925,10.57626,1,0,0 +1,3.258096,0,6.507277,7.893572,.1442925,10.57626,1,0,0 +0,3.258096,0,6.507277,7.893572,.1442925,10.57626,1,0,0 +2,3.258096,0,6.507277,7.893572,.1442925,10.57626,1,0,0 +2,3.258096,0,6.507277,7.893572,0,10.3,0,1,0 +0,3.258096,0,6.507277,7.893572,0,10.3,0,1,0 +1,3.258096,0,6.507277,7.893572,0,10.3,0,1,0 +9,3.258096,0,5.156178,6.542472,0,3.4,1,0,0 +5,3.258096,0,5.156178,6.542472,0,3.4,1,0,0 +4,3.258096,0,5.156178,6.542472,0,3.4,1,0,0 +0,3.258096,0,5.156178,6.542472,0,6.9,0,0,0 +0,3.258096,0,5.156178,6.542472,0,6.9,0,0,0 +0,3.258096,0,5.156178,6.542472,0,6.9,0,0,0 +3,3.258096,0,5.156178,6.542472,1,24.1,0,1,0 +4,3.258096,0,5.156178,6.542472,1,24.1,0,1,0 +5,3.258096,0,5.156178,6.542472,1,24.1,0,1,0 +4,3.258096,0,5.156178,6.542472,0,6.9,1,0,0 +0,3.258096,0,5.156178,6.542472,0,6.9,1,0,0 +1,3.258096,0,5.156178,6.542472,0,6.9,1,0,0 +1,3.258096,0,5.156178,6.542472,1,17.2,0,0,0 +1,3.258096,0,5.156178,6.542472,1,17.2,0,0,0 +2,3.258096,0,5.156178,6.542472,1,17.2,0,0,0 +0,4.564348,0,0,6.679335,0,6.9,1,0,0 +0,4.564348,0,0,6.679335,0,6.9,1,0,0 +0,4.564348,0,0,6.679335,0,6.9,1,0,0 +0,4.564348,0,0,6.679335,0,17.2,0,1,0 +0,4.564348,0,0,6.679335,0,17.2,0,1,0 +0,4.564348,0,0,6.679335,0,17.2,0,1,0 +0,4.564348,0,0,6.679335,0,10.57626,0,0,0 +0,4.564348,0,0,6.679335,0,10.57626,0,0,0 +0,4.564348,0,0,6.679335,0,10.57626,0,0,0 +2,4.564348,0,5.857933,5.909226,0,3.4,1,0,0 +1,4.564348,0,5.857933,5.909226,1,10.57626,1,0,0 +2,4.564348,0,5.857933,5.909226,0,10.57626,1,0,0 +3,4.564348,0,5.857933,5.909226,1,10.3,1,0,0 +0,0,1,5.010635,6.160541,0,0,0,0,0 +0,0,1,5.010635,6.160541,0,0,0,0,0 +0,0,1,5.010635,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,10.3,1,0,0 +0,0,1,6.109248,6.160541,0,10.3,1,0,0 +0,0,1,6.109248,6.160541,0,10.3,1,0,0 +1,0,1,6.109248,6.160541,0,6.9,1,0,0 +0,0,1,6.109248,6.160541,0,6.9,1,0,0 +0,0,1,6.109248,6.160541,0,6.9,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +6,0,0,3.401197,0,1,6.9,0,0,1 +8,0,0,3.401197,0,1,6.9,0,0,1 +3,0,0,3.401197,0,1,6.9,0,0,1 +0,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +3,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +1,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +0,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +1,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +0,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +0,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +0,3.258096,0,6.620073,8.006368,0,0,0,0,0 +0,3.258096,0,6.620073,8.006368,0,0,0,0,0 +0,3.258096,0,6.620073,8.006368,0,0,0,0,0 +0,3.258096,0,6.620073,8.006368,0,0,0,0,0 +0,3.258096,0,6.620073,8.006368,0,0,0,0,0 +3,0,0,0,0,0,13.8,1,0,0 +1,0,0,0,0,0,13.8,1,0,0 +0,0,0,0,0,0,13.8,1,0,0 +1,0,0,0,0,.1442925,10.57626,0,0,0 +0,0,0,0,0,.1442925,10.57626,0,0,0 +2,0,0,0,0,.1442925,10.57626,0,0,0 +0,0,0,0,0,0,0,0,0,0 +1,0,0,0,0,0,0,0,0,0 +1,0,0,0,0,0,0,0,0,0 +2,0,1,6.109248,6.160541,0,10.57626,1,0,0 +1,0,1,6.109248,6.160541,0,10.57626,1,0,0 +1,0,1,6.109248,6.160541,0,10.57626,1,0,0 +3,0,1,6.109248,6.160541,0,10.57626,1,0,0 +2,0,1,6.109248,6.160541,0,10.57626,1,0,0 +2,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,0,1,0,0 +2,0,1,6.109248,6.160541,0,0,1,0,0 +0,0,1,6.109248,6.160541,0,0,1,0,0 +3,0,1,6.109248,6.160541,0,10.3,1,0,0 +16,0,1,6.109248,6.160541,0,10.3,1,0,0 +12,0,1,6.109248,6.160541,0,10.3,1,0,0 +5,3.258096,0,6.401171,7.787465,0,6.9,1,0,0 +1,3.258096,0,6.401171,7.787465,0,6.9,1,0,0 +1,3.258096,0,6.401171,7.787465,0,6.9,1,0,0 +0,3.258096,0,6.401171,7.787465,0,17.2,1,0,0 +0,3.258096,0,6.401171,7.787465,0,17.2,1,0,0 +0,3.258096,0,6.401171,7.787465,0,17.2,1,0,0 +0,3.258096,0,6.401171,7.787465,0,20.7,1,0,0 +1,3.258096,0,6.401171,7.787465,0,20.7,1,0,0 +3,3.258096,0,6.401171,7.787465,0,20.7,1,0,0 +11,0,0,5.030438,0,1,6.9,1,0,0 +11,0,0,5.030438,0,1,6.9,1,0,0 +9,0,0,5.030438,0,1,6.9,1,0,0 +7,0,0,5.030438,0,1,6.9,1,0,0 +2,0,0,5.030438,0,1,6.9,1,0,0 +0,0,1,5.010635,6.160541,0,0,1,0,0 +0,0,1,5.010635,6.160541,0,10.57626,0,1,0 +0,0,1,5.010635,6.160541,0,10.57626,0,1,0 +0,0,1,5.010635,6.160541,0,10.57626,0,1,0 +0,0,1,5.010635,6.160541,0,10.57626,0,1,0 +3,0,1,5.010635,6.160541,0,10.57626,0,1,0 +0,0,1,5.010635,6.160541,0,10.57626,0,1,0 +0,0,1,5.010635,6.160541,0,10.57626,1,0,0 +0,0,1,5.010635,6.160541,0,10.57626,1,0,0 +1,0,1,5.010635,6.160541,1,13.8,1,0,0 +29,0,1,5.010635,6.160541,1,13.8,1,0,0 +0,0,1,5.010635,6.160541,1,13.8,1,0,0 +0,0,1,5.010635,6.160541,0,17.2,0,0,0 +0,0,1,5.010635,6.160541,0,17.2,0,0,0 +0,0,1,5.010635,6.160541,0,17.2,0,0,0 +0,0,1,5.010635,6.160541,0,20.7,1,0,0 +6,0,1,5.010635,6.160541,0,20.7,1,0,0 +0,0,1,5.010635,6.160541,0,10.57626,1,0,0 +0,0,1,5.010635,6.160541,0,10.57626,1,0,0 +0,0,1,5.010635,6.160541,0,10.57626,1,0,0 +2,0,1,5.010635,5.755076,1,10.3,1,0,0 +0,0,1,5.010635,5.755076,1,10.3,1,0,0 +8,0,1,5.010635,5.755076,1,10.3,1,0,0 +0,0,1,5.010635,5.755076,0,0,0,0,0 +5,0,1,5.010635,5.755076,0,0,0,0,0 +1,0,1,5.010635,5.755076,0,0,0,0,0 +12,0,0,0,0,0,13.8,0,0,0 +8,0,0,0,0,0,13.8,0,0,0 +8,0,0,0,0,0,13.8,0,0,0 +8,0,0,0,0,0,10.57626,0,0,0 +4,0,0,0,0,0,10.57626,0,0,0 +2,0,0,0,0,0,10.57626,0,0,0 +8,0,0,0,0,0,17.2,0,0,0 +3,0,0,0,0,0,17.2,0,0,0 +3,0,0,0,0,0,17.2,0,0,0 +3,0,0,0,0,0,10.57626,0,0,0 +6,0,0,0,0,0,10.57626,0,0,0 +2,0,0,0,0,0,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +6,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +2,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +2,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +4,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +2,4.564348,0,6.907755,6.959049,0,3.4,1,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,1,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,1,0,0 +0,4.564348,0,6.907755,6.959049,0,0,1,0,0 +0,4.564348,0,6.907755,6.959049,0,0,1,0,0 +0,4.564348,0,6.907755,6.959049,0,0,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +3,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +2,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +2,0,0,5.482637,0,0,0,1,0,0 +1,0,0,5.482637,0,0,0,1,0,0 +2,0,0,5.482637,0,0,0,1,0,0 +1,0,1,6.109248,6.160541,1,31,0,1,0 +2,0,1,6.109248,6.160541,1,31,0,1,0 +7,0,1,6.109248,6.160541,1,31,0,1,0 +1,0,1,6.109248,6.160541,1,31,0,1,0 +2,0,1,6.109248,6.160541,1,31,0,1,0 +0,0,1,6.109248,6.160541,0,0,0,1,0 +0,0,1,6.109248,6.160541,0,0,0,1,0 +0,0,1,6.109248,6.160541,0,0,0,1,0 +0,0,1,6.109248,6.160541,0,0,0,1,0 +0,0,1,6.109248,6.160541,0,0,0,1,0 +0,0,1,6.109248,6.160541,0,3.4,0,1,0 +0,0,1,6.109248,6.160541,0,3.4,0,1,0 +0,0,1,6.109248,6.160541,0,3.4,0,1,0 +0,0,1,6.109248,6.160541,0,3.4,0,1,0 +0,0,1,6.109248,6.160541,0,3.4,0,1,0 +1,0,1,6.109248,6.160541,0,10.3,0,1,0 +2,0,1,6.109248,6.160541,0,10.3,0,1,0 +1,0,1,6.109248,6.160541,0,10.3,0,1,0 +2,0,1,6.109248,6.160541,0,10.3,0,1,0 +2,0,1,6.109248,6.160541,0,10.3,0,1,0 +0,0,1,6.109248,6.160541,0,10.57626,0,1,0 +1,0,1,6.109248,6.160541,0,10.57626,0,1,0 +0,0,1,6.109248,6.160541,0,10.57626,0,1,0 +0,0,1,6.109248,6.160541,0,10.57626,0,1,0 +0,0,1,6.109248,6.160541,0,10.57626,0,1,0 +2,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +3,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +3,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,1,3.4,1,0,0 +3,3.258096,0,6.620073,8.006368,1,3.4,1,0,0 +3,3.258096,0,6.620073,8.006368,1,3.4,1,0,0 +3,3.258096,0,6.620073,8.006368,0,27.6,0,0,0 +0,3.258096,0,6.620073,8.006368,0,27.6,0,0,0 +0,3.258096,0,6.620073,8.006368,0,27.6,0,0,0 +0,0,1,0,6.160541,0,3.4,0,1,0 +0,0,1,0,6.160541,0,3.4,0,1,0 +0,0,1,0,6.160541,0,3.4,0,1,0 +0,0,1,0,6.160541,0,6.9,0,1,0 +1,0,1,0,6.160541,0,6.9,0,1,0 +1,0,1,0,6.160541,0,6.9,0,1,0 +1,0,1,0,6.160541,0,10.57626,1,0,0 +0,0,1,0,6.160541,0,10.57626,1,0,0 +0,0,1,0,6.160541,0,10.57626,1,0,0 +0,4.564348,0,6.461468,6.512762,0,3.4,1,0,0 +0,4.564348,0,6.461468,6.512762,0,3.4,1,0,0 +0,4.564348,0,6.461468,6.512762,0,3.4,1,0,0 +0,4.564348,0,6.461468,6.512762,0,10.57626,0,0,0 +0,4.564348,0,6.461468,6.512762,0,10.57626,0,0,0 +0,4.564348,0,6.461468,6.512762,0,10.57626,0,0,0 +0,4.564348,0,6.461468,6.512762,1,24.1,1,0,0 +1,4.564348,0,6.461468,6.512762,1,24.1,1,0,0 +0,4.564348,0,6.461468,6.512762,1,24.1,1,0,0 +0,4.564348,0,6.461468,6.512762,0,3.4,1,0,0 +0,4.564348,0,6.461468,6.512762,0,3.4,1,0,0 +0,4.564348,0,6.461468,6.512762,0,3.4,1,0,0 +0,4.564348,0,6.461468,6.512762,0,10.57626,0,0,0 +0,4.564348,0,6.461468,6.512762,0,10.57626,0,0,0 +0,4.564348,0,6.461468,6.512762,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +1,0,1,6.109248,6.160541,0,10.57626,0,0,0 +1,0,1,6.109248,6.160541,0,10.3,1,0,0 +0,0,1,6.109248,6.160541,0,10.3,1,0,0 +1,0,1,6.109248,6.160541,0,10.3,1,0,0 +0,0,1,6.109248,6.160541,0,13.8,0,0,0 +1,0,1,6.109248,6.160541,0,13.8,0,0,0 +0,0,1,6.109248,6.160541,0,13.8,0,0,0 +0,0,0,4.822859,0,.1442925,10.57626,0,0,0 +0,0,0,4.822859,0,.1442925,10.57626,0,0,0 +3,0,0,4.822859,0,.1442925,10.57626,0,0,0 +0,0,0,4.822859,0,0,10.3,0,0,0 +1,0,0,4.822859,0,0,10.3,0,0,0 +9,0,0,4.822859,0,0,10.3,0,0,0 +7,0,0,5.042134,0,0,17.2,0,0,1 +9,0,0,5.042134,0,0,17.2,0,0,1 +5,0,0,5.042134,0,0,17.2,0,0,1 +3,0,0,5.042134,0,0,10.3,1,0,0 +2,0,0,5.042134,0,0,10.3,1,0,0 +0,0,0,5.042134,0,0,10.3,1,0,0 +3,0,0,5.042134,0,0,13.8,0,1,0 +1,0,0,5.042134,0,0,13.8,0,1,0 +3,0,0,5.042134,0,0,13.8,0,1,0 +2,0,0,5.042134,0,0,13.8,1,0,0 +6,0,0,5.042134,0,0,13.8,1,0,0 +4,0,0,5.042134,0,0,13.8,1,0,0 +7,0,0,5.042134,0,0,10.57626,1,0,0 +5,0,0,5.042134,0,0,10.57626,1,0,0 +4,0,0,5.042134,0,0,10.57626,1,0,0 +0,0,0,0,0,0,6.9,1,0,0 +0,0,0,0,0,0,6.9,1,0,0 +1,0,0,0,0,0,6.9,1,0,0 +1,0,0,0,0,0,6.9,1,0,0 +3,0,0,0,0,0,6.9,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +3,0,0,0,0,0,10.57626,1,0,0 +1,0,0,0,0,0,10.57626,1,0,0 +2,0,0,0,0,0,6.9,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +2,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,3.4,1,0,0 +0,0,0,0,0,0,3.4,1,0,0 +3,0,0,0,0,0,3.4,1,0,0 +1,0,0,0,0,0,3.4,1,0,0 +0,0,0,0,0,0,3.4,1,0,0 +0,0,0,0,0,0,13.8,1,0,0 +4,0,0,0,0,0,13.8,1,0,0 +10,0,0,0,0,0,13.8,1,0,0 +10,0,0,0,0,0,13.8,1,0,0 +9,0,0,0,0,0,13.8,1,0,0 +7,0,0,0,0,0,17.2,1,0,0 +2,0,0,0,0,0,17.2,1,0,0 +1,0,0,0,0,0,17.2,1,0,0 +1,0,0,0,0,0,17.2,1,0,0 +6,0,0,0,0,0,17.2,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +1,0,0,0,0,0,10.57626,1,0,0 +3,0,0,0,0,0,10.57626,1,0,0 +5,0,0,0,0,0,13.8,1,0,0 +6,0,0,0,0,0,13.8,1,0,0 +3,0,0,0,0,0,13.8,1,0,0 +1,0,0,0,0,0,10.57626,0,0,0 +4,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +2,0,0,0,0,0,17.2,1,0,0 +0,0,0,0,0,0,17.2,1,0,0 +1,0,0,0,0,0,17.2,1,0,0 +2,3.258096,0,0,8.006368,0,6.9,1,0,0 +1,3.258096,0,0,8.006368,0,6.9,1,0,0 +2,3.258096,0,0,8.006368,0,6.9,1,0,0 +5,0,1,6.109248,6.160541,0,3.4,1,0,0 +2,0,1,6.109248,6.160541,0,3.4,1,0,0 +2,0,1,6.109248,6.160541,0,3.4,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +1,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,6.9,1,0,0 +0,0,1,6.109248,6.160541,0,6.9,1,0,0 +0,0,1,6.109248,6.160541,0,6.9,1,0,0 +15,0,0,0,0,0,20.7,0,0,0 +6,0,0,0,0,0,20.7,0,0,0 +6,0,0,0,0,0,20.7,0,0,0 +11,0,0,0,0,0,20.7,0,0,0 +8,0,0,0,0,0,20.7,0,0,0 +2,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +4,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +1,0,0,0,0,0,10.57626,0,0,0 +4,0,0,0,0,0,10.57626,0,0,0 +2,0,0,0,0,0,10.57626,0,0,0 +4,0,0,0,0,0,10.57626,0,0,0 +1,0,0,0,0,0,10.57626,0,0,0 +2,0,0,0,0,0,10.57626,0,0,0 +7,0,1,0,6.160541,0,13.8,1,0,0 +1,0,1,0,6.160541,0,13.8,1,0,0 +2,0,1,0,6.160541,0,13.8,1,0,0 +4,0,1,0,6.160541,0,13.8,1,0,0 +10,0,1,0,6.160541,0,13.8,1,0,0 +2,0,1,0,6.160541,0,3.4,1,0,0 +1,0,1,0,6.160541,0,3.4,1,0,0 +1,0,1,0,6.160541,0,3.4,1,0,0 +0,0,1,0,6.160541,0,3.4,1,0,0 +3,0,1,0,6.160541,0,3.4,1,0,0 +4,0,1,0,6.160541,0,10.57626,1,0,0 +0,0,1,0,6.160541,0,10.57626,1,0,0 +0,0,1,0,6.160541,0,10.57626,1,0,0 +0,0,1,0,6.160541,0,10.57626,1,0,0 +1,0,1,0,6.160541,0,10.57626,1,0,0 +2,0,1,0,6.160541,0,10.57626,1,0,0 +0,0,1,0,6.160541,0,10.57626,1,0,0 +0,0,1,0,6.160541,0,10.57626,1,0,0 +1,0,1,0,6.160541,0,10.57626,1,0,0 +0,0,1,0,6.160541,0,10.57626,1,0,0 +0,0,1,0,6.160541,0,10.57626,1,0,0 +0,0,1,0,6.160541,0,10.57626,1,0,0 +0,0,1,0,6.160541,0,10.57626,1,0,0 +2,0,1,0,6.160541,0,10.57626,1,0,0 +1,0,1,0,6.160541,0,10.57626,1,0,0 +0,0,1,0,6.160541,0,10.57626,1,0,0 +1,0,1,0,6.160541,0,10.57626,1,0,0 +0,0,1,0,6.160541,0,10.57626,1,0,0 +0,0,1,0,6.160541,0,10.57626,1,0,0 +0,0,1,0,6.160541,0,10.57626,1,0,0 +0,0,1,0,6.160541,0,10.57626,1,0,0 +0,0,1,0,6.160541,0,10.57626,1,0,0 +0,0,1,0,6.160541,0,10.57626,1,0,0 +0,0,1,0,6.160541,0,10.57626,1,0,0 +0,0,1,0,6.160541,0,10.57626,1,0,0 +4,0,1,6.268187,5.755076,1,37.9,0,0,1 +7,0,1,6.268187,5.755076,1,37.9,0,0,1 +29,0,1,6.268187,5.755076,1,37.9,0,0,1 +5,0,1,6.268187,5.755076,1,37.9,0,0,1 +5,0,1,6.268187,5.755076,1,27.6,0,0,1 +3,3.931826,0,6.907755,7.600903,0,10.57626,1,0,0 +3,3.931826,0,6.907755,7.600903,0,10.57626,1,0,0 +1,3.931826,0,6.907755,7.600903,0,10.57626,1,0,0 +1,3.931826,0,6.907755,7.600903,1,10.3,1,0,0 +3,3.931826,0,6.907755,7.600903,1,10.3,1,0,0 +4,3.931826,0,6.907755,7.600903,1,10.3,1,0,0 +2,3.931826,0,6.907755,7.600903,0,13.8,0,1,0 +1,3.931826,0,6.907755,7.600903,0,13.8,0,1,0 +0,3.931826,0,6.907755,7.600903,0,13.8,0,1,0 +0,3.931826,0,6.907755,7.600903,0,10.57626,0,1,0 +2,3.931826,0,6.907755,7.600903,0,10.57626,0,1,0 +4,3.931826,0,6.907755,7.600903,0,10.57626,0,1,0 +12,0,0,5.632071,0,1,10.3,0,0,1 +0,0,0,5.632071,0,1,10.3,0,0,1 +2,0,0,5.632071,0,1,10.3,0,0,1 +0,0,0,5.632071,0,1,10.3,0,0,1 +11,0,0,5.632071,0,1,10.3,0,0,1 +5,0,0,0,0,0,6.9,0,1,0 +2,0,0,0,0,0,6.9,0,1,0 +3,0,0,0,0,0,6.9,0,1,0 +0,0,0,0,0,0,6.9,0,1,0 +3,0,0,0,0,0,6.9,0,1,0 +3,0,0,5.632071,0,0,3.4,0,1,0 +2,0,0,5.632071,0,0,3.4,0,1,0 +2,0,0,5.632071,0,0,3.4,0,1,0 +0,0,0,5.632071,0,0,3.4,0,1,0 +2,0,0,5.632071,0,0,3.4,0,1,0 +0,0,0,5.632071,0,0,3.4,0,1,0 +0,0,0,5.632071,0,0,3.4,0,1,0 +0,0,0,5.632071,0,0,3.4,0,1,0 +0,0,0,5.632071,0,0,3.4,0,1,0 +3,0,0,5.632071,0,0,3.4,0,1,0 +4,0,0,5.632071,0,0,10.57626,0,1,0 +3,0,0,5.632071,0,0,10.57626,0,1,0 +2,0,0,5.632071,0,0,10.57626,0,1,0 +0,0,0,5.632071,0,0,10.57626,0,1,0 +2,0,0,5.632071,0,0,10.57626,0,1,0 +4,0,0,5.632071,0,0,13.8,0,1,0 +1,0,0,5.632071,0,0,13.8,0,1,0 +10,0,0,5.632071,0,0,13.8,0,1,0 +3,0,0,5.632071,0,0,13.8,0,1,0 +8,0,0,5.632071,0,0,13.8,0,1,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +10,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +1,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +4,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +4,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +2,4.564348,0,6.907755,6.959049,0,20.7,0,1,0 +8,4.564348,0,6.907755,6.959049,0,20.7,0,1,0 +7,4.564348,0,6.907755,6.959049,0,20.7,0,1,0 +0,0,1,0,5.755076,0,10.57626,1,0,0 +1,0,1,0,5.755076,0,10.57626,1,0,0 +0,0,1,0,5.755076,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,3.4,1,0,0 +0,0,1,6.109248,6.160541,0,3.4,1,0,0 +0,0,1,6.109248,6.160541,0,3.4,1,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,1,0,0 +0,0,1,6.109248,6.160541,0,0,1,0,0 +0,0,1,6.109248,6.160541,0,0,1,0,0 +0,0,1,0,5.755076,0,3.4,1,0,0 +0,0,1,0,5.755076,0,3.4,1,0,0 +0,0,1,0,5.755076,0,3.4,1,0,0 +0,0,0,0,0,.1442925,10.57626,0,0,0 +2,0,0,0,0,.1442925,10.57626,0,0,0 +3,0,0,0,0,.1442925,10.57626,0,0,0 +0,0,0,0,0,.1442925,10.57626,0,0,0 +0,0,0,0,0,.1442925,10.57626,0,0,0 +0,0,0,0,0,.1442925,10.57626,0,0,0 +0,3.258096,0,3.039749,4.426044,0,10.57626,1,0,0 +0,3.258096,0,3.039749,4.426044,0,10.57626,1,0,0 +1,3.258096,0,3.039749,4.426044,0,10.57626,1,0,0 +0,3.258096,0,3.039749,4.426044,0,10.57626,0,1,0 +0,3.258096,0,3.039749,4.426044,0,10.57626,0,1,0 +0,3.258096,0,3.039749,4.426044,0,10.57626,0,1,0 +0,3.258096,0,3.039749,4.426044,1,0,1,0,0 +0,3.258096,0,3.039749,4.426044,1,0,1,0,0 +0,3.258096,0,3.039749,4.426044,1,0,1,0,0 +0,3.258096,0,3.039749,4.426044,1,34.5,0,0,1 +1,3.258096,0,3.039749,4.426044,1,34.5,0,0,1 +8,3.258096,0,3.039749,4.426044,1,34.5,0,0,1 +1,0,1,5.941959,5.755076,1,6.9,0,1,0 +0,0,1,5.941959,5.755076,1,6.9,0,1,0 +0,0,1,5.941959,5.755076,1,6.9,0,1,0 +0,0,1,5.941959,5.755076,1,6.9,0,1,0 +0,0,1,5.941959,5.755076,1,6.9,0,1,0 +1,0,1,5.941959,5.755076,0,3.4,1,0,0 +3,0,1,5.941959,5.755076,0,3.4,1,0,0 +1,0,1,5.941959,5.755076,0,3.4,1,0,0 +1,0,1,5.941959,5.755076,0,3.4,1,0,0 +2,0,1,5.941959,5.755076,0,3.4,1,0,0 +10,0,0,5.126342,0,0,3.4,1,0,0 +6,0,0,5.126342,0,0,3.4,1,0,0 +3,0,0,5.126342,0,0,3.4,1,0,0 +1,0,0,5.126342,0,0,10.57626,1,0,0 +0,0,0,5.126342,0,0,10.57626,1,0,0 +0,0,0,5.126342,0,0,10.57626,1,0,0 +2,0,0,5.126342,0,0,10.57626,1,0,0 +0,0,0,5.126342,0,0,10.57626,1,0,0 +0,0,0,5.126342,0,0,10.57626,1,0,0 +0,0,0,5.126342,0,0,10.3,0,1,0 +0,0,0,5.126342,0,0,10.3,0,1,0 +3,0,0,5.126342,0,0,10.3,0,1,0 +0,0,1,5.010635,6.160541,0,10.57626,0,0,0 +0,0,1,5.010635,6.160541,0,10.57626,0,0,0 +0,0,1,5.010635,6.160541,0,10.57626,0,0,0 +1,0,1,5.010635,6.160541,0,10.3,0,0,0 +1,0,1,5.010635,6.160541,0,10.3,0,0,0 +0,0,1,5.010635,6.160541,0,10.3,0,0,0 +1,0,1,5.010635,6.160541,0,10.57626,0,0,0 +0,0,1,5.010635,6.160541,0,10.57626,0,0,0 +0,0,1,5.010635,6.160541,0,10.57626,0,0,0 +0,0,1,5.010635,6.160541,0,6.9,0,0,0 +0,0,1,5.010635,6.160541,0,6.9,0,0,0 +1,0,1,5.010635,6.160541,0,6.9,0,0,0 +4,0,1,6.109248,6.160541,0,13.8,1,0,0 +2,0,1,6.109248,6.160541,0,13.8,1,0,0 +3,0,1,6.109248,6.160541,0,13.8,1,0,0 +2,0,1,6.109248,6.160541,0,6.9,0,0,0 +3,0,1,6.109248,6.160541,0,6.9,0,0,0 +6,0,1,6.109248,6.160541,0,6.9,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +3,0,1,6.109248,6.160541,0,10.57626,0,0,0 +2,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +1,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,27.6,1,0,0 +0,0,1,6.109248,6.160541,0,27.6,1,0,0 +0,0,1,6.109248,6.160541,0,27.6,1,0,0 +0,0,1,6.109248,6.160541,0,27.6,1,0,0 +0,0,1,6.109248,6.160541,0,27.6,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,27.6,1,0,0 +0,0,1,6.109248,6.160541,0,27.6,1,0,0 +0,0,1,6.109248,6.160541,0,27.6,1,0,0 +0,0,1,6.109248,6.160541,0,27.6,1,0,0 +0,0,1,6.109248,6.160541,0,27.6,1,0,0 +1,0,0,5.259992,0,0,6.9,1,0,0 +0,0,0,5.259992,0,0,6.9,1,0,0 +8,0,0,5.259992,0,0,6.9,1,0,0 +0,0,0,5.259992,0,0,10.3,1,0,0 +5,0,0,5.259992,0,0,10.3,1,0,0 +1,0,0,5.259992,0,0,10.3,1,0,0 +1,0,0,5.259992,0,0,10.57626,1,0,0 +1,0,0,5.259992,0,0,10.57626,1,0,0 +0,0,0,5.259992,0,0,10.57626,1,0,0 +3,0,0,5.259992,0,0,10.57626,1,0,0 +1,0,0,5.259992,0,0,10.57626,1,0,0 +0,0,0,5.259992,0,0,10.57626,1,0,0 +1,0,1,5.703783,5.755076,0,6.9,1,0,0 +0,0,1,5.703783,5.755076,0,6.9,1,0,0 +3,0,1,5.703783,5.755076,0,6.9,1,0,0 +0,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +3,0,0,0,0,0,3.4,0,0,0 +1,3.931826,0,6.07507,6.560323,0,17.2,0,1,0 +1,3.931826,0,6.07507,6.560323,0,17.2,0,1,0 +3,3.931826,0,6.07507,6.560323,0,17.2,0,1,0 +0,3.931826,0,6.07507,6.560323,0,3.4,0,0,1 +7,3.931826,0,6.07507,6.560323,0,3.4,0,0,1 +2,3.931826,0,6.07507,6.560323,0,3.4,0,0,1 +5,0,1,6.109248,6.160541,0,10.57626,0,1,0 +8,0,1,6.109248,6.160541,0,0,0,0,0 +3,0,1,6.109248,6.160541,0,0,1,0,0 +3,0,1,6.109248,6.160541,1,24.1,1,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +1,0,1,6.109248,6.160541,1,6.9,0,0,0 +0,3.258096,0,7.163699,8.006368,0,0,0,0,0 +0,3.258096,0,7.163699,8.006368,0,0,0,0,0 +0,3.258096,0,7.163699,8.006368,0,0,0,0,0 +0,3.258096,0,7.163699,8.006368,0,0,0,0,0 +0,3.258096,0,7.163699,8.006368,0,0,0,0,0 +1,3.258096,0,7.163699,8.006368,0,10.57626,0,0,0 +1,3.258096,0,7.163699,8.006368,0,10.57626,0,0,0 +2,3.258096,0,7.163699,8.006368,0,10.57626,0,0,0 +5,3.258096,0,7.163699,8.006368,0,10.57626,0,0,0 +1,3.258096,0,7.163699,8.006368,0,10.57626,0,0,0 +2,3.258096,0,7.163699,8.006368,0,10.57626,0,0,0 +0,3.258096,0,7.163699,8.006368,0,10.57626,0,0,0 +0,3.258096,0,7.163699,8.006368,0,10.57626,0,0,0 +2,3.258096,0,7.163699,8.006368,0,10.57626,0,0,0 +0,3.258096,0,7.163699,8.006368,0,10.57626,0,0,0 +1,3.931826,0,6.907755,7.600903,0,17.2,0,0,0 +0,3.931826,0,6.907755,7.600903,0,17.2,0,0,0 +0,3.931826,0,6.907755,7.600903,0,17.2,0,0,0 +12,3.931826,0,6.907755,7.600903,0,13.8,0,0,0 +9,3.931826,0,6.907755,7.600903,0,13.8,0,0,0 +0,3.931826,0,6.907755,7.600903,0,13.8,0,0,0 +0,3.931826,0,6.907755,7.600903,0,10.57626,0,0,0 +2,3.931826,0,6.907755,7.600903,0,10.57626,0,0,0 +2,3.931826,0,6.907755,7.600903,0,10.57626,0,0,0 +2,3.931826,0,6.907755,7.600903,0,10.57626,0,0,0 +2,3.931826,0,6.907755,7.600903,0,10.57626,0,0,0 +0,3.931826,0,6.907755,7.600903,0,10.57626,0,0,0 +1,0,1,6.109248,6.160541,0,17.2,1,0,0 +5,0,1,6.109248,6.160541,0,17.2,1,0,0 +0,0,1,6.109248,6.160541,0,17.2,1,0,0 +4,0,1,6.109248,6.160541,0,17.2,1,0,0 +1,0,1,6.109248,6.160541,0,17.2,1,0,0 +2,0,1,6.109248,6.160541,0,10.57626,0,0,0 +3,0,1,6.109248,6.160541,0,10.57626,0,0,0 +1,0,1,6.109248,6.160541,0,10.57626,0,0,0 +5,0,1,6.109248,6.160541,0,10.57626,0,0,0 +1,0,1,6.109248,6.160541,0,10.57626,0,0,0 +1,0,1,6.109248,6.160541,0,3.4,0,0,0 +3,0,1,6.109248,6.160541,0,3.4,0,0,0 +13,0,1,6.109248,6.160541,0,3.4,0,0,0 +2,0,1,6.109248,6.160541,0,3.4,0,0,0 +1,0,1,6.109248,6.160541,0,3.4,0,0,0 +4,0,0,4.457134,0,0,24.1,1,0,0 +4,0,0,4.457134,0,0,24.1,1,0,0 +1,0,0,4.457134,0,0,24.1,1,0,0 +1,0,0,4.457134,0,0,3.4,0,0,0 +1,0,0,4.457134,0,0,3.4,0,0,0 +0,0,0,4.457134,0,0,3.4,0,0,0 +2,0,0,4.457134,0,0,27.6,1,0,0 +1,0,0,4.457134,0,0,27.6,1,0,0 +2,0,0,4.457134,0,0,27.6,1,0,0 +2,0,1,6.708963,6.160541,0,20.7,0,0,0 +1,0,1,6.708963,6.160541,0,20.7,0,0,0 +3,0,1,6.708963,6.160541,0,20.7,0,0,0 +3,0,1,6.708963,6.160541,0,10.57626,0,0,0 +1,0,1,6.708963,6.160541,0,10.57626,0,0,0 +3,0,1,6.708963,6.160541,0,10.57626,0,0,0 +3,0,1,6.708963,6.160541,0,10.3,0,0,0 +0,0,1,6.708963,6.160541,0,10.3,0,0,0 +3,0,1,6.708963,6.160541,0,10.3,0,0,0 +7,0,1,6.708963,6.160541,0,10.57626,0,0,0 +3,0,1,6.708963,6.160541,0,10.57626,0,0,0 +3,0,1,6.708963,6.160541,0,10.57626,0,0,0 +4,0,0,6.370175,0,1,31,0,0,1 +0,0,0,6.370175,0,1,31,0,0,1 +0,0,1,6.109248,6.160541,0,17.2,0,0,0 +0,0,1,6.109248,6.160541,0,17.2,0,0,0 +0,0,1,6.109248,6.160541,0,17.2,0,0,0 +3,0,1,6.109248,6.160541,0,10.3,0,0,0 +1,0,1,6.109248,6.160541,0,10.3,0,0,0 +3,0,1,6.109248,6.160541,0,10.3,0,0,0 +9,0,1,6.109248,6.160541,0,10.57626,1,0,0 +13,0,1,6.109248,6.160541,0,10.57626,1,0,0 +4,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,0,0,0,0,6.9,0,1,0 +1,0,0,0,0,0,6.9,0,1,0 +4,0,0,0,0,0,6.9,0,1,0 +0,0,0,0,0,0,6.9,0,1,0 +1,0,0,0,0,0,10.57626,0,1,0 +1,0,0,0,0,0,10.57626,0,1,0 +3,0,0,0,0,0,10.57626,0,1,0 +3,0,0,0,0,0,10.57626,0,1,0 +2,0,0,0,0,0,10.57626,0,1,0 +11,0,0,0,0,1,17.2,0,1,0 +21,0,0,0,0,1,17.2,0,1,0 +19,0,0,0,0,1,17.2,0,1,0 +2,0,0,0,0,0,10.57626,0,1,0 +5,0,0,0,0,0,10.57626,0,1,0 +2,0,0,0,0,0,10.57626,0,1,0 +4,0,0,0,0,0,10.57626,0,1,0 +2,0,0,0,0,0,10.57626,0,1,0 +0,0,0,0,0,0,6.9,0,1,0 +3,0,0,0,0,0,6.9,0,1,0 +3,0,0,0,0,0,6.9,0,1,0 +4,0,0,0,0,0,6.9,0,1,0 +8,0,0,0,0,1,10.3,0,0,0 +4,0,0,0,0,1,10.3,0,0,0 +0,0,0,0,0,1,10.3,0,0,0 +0,0,1,5.010635,6.160541,0,10.57626,1,0,0 +0,0,1,5.010635,6.160541,0,10.57626,1,0,0 +0,0,1,5.010635,6.160541,0,10.57626,1,0,0 +0,0,1,5.010635,6.160541,0,10.57626,1,0,0 +0,0,1,5.010635,6.160541,0,10.57626,1,0,0 +0,0,1,5.010635,6.160541,0,10.57626,1,0,0 +3,0,1,5.010635,6.160541,0,3.4,1,0,0 +0,0,1,5.010635,6.160541,0,3.4,1,0,0 +0,0,1,5.010635,6.160541,0,3.4,1,0,0 +0,0,1,5.010635,6.160541,0,3.4,0,0,1 +0,0,1,5.010635,6.160541,0,3.4,0,0,1 +2,0,1,5.010635,6.160541,0,3.4,0,0,1 +1,0,1,5.010635,6.160541,0,10.57626,1,0,0 +1,0,1,5.010635,6.160541,0,10.57626,1,0,0 +0,0,1,5.010635,6.160541,0,10.57626,1,0,0 +2,3.931826,0,6.276455,6.969603,0,0,0,0,0 +0,3.931826,0,6.276455,6.969603,0,0,0,0,0 +2,3.931826,0,6.276455,6.969603,0,0,0,0,0 +1,3.931826,0,6.276455,6.969603,0,0,0,0,0 +2,3.931826,0,6.276455,6.969603,0,0,0,0,0 +4,0,0,5.377498,0,0,17.2,0,0,1 +10,0,0,5.377498,0,0,17.2,0,0,1 +4,0,0,5.377498,0,0,17.2,0,0,1 +1,0,0,5.377498,0,0,27.6,1,0,0 +3,0,0,5.377498,0,0,27.6,1,0,0 +3,0,0,5.377498,0,0,27.6,1,0,0 +2,0,0,5.377498,0,0,10.57626,0,0,1 +6,0,0,5.377498,0,0,10.57626,0,0,1 +6,0,0,5.377498,0,0,10.57626,0,0,1 +0,0,0,5.377498,0,0,0,0,0,0 +0,0,0,5.377498,0,0,0,0,0,0 +3,0,0,5.377498,0,0,3.4,1,0,0 +7,0,0,5.377498,0,0,3.4,1,0,0 +1,0,0,5.377498,0,0,3.4,1,0,0 +2,0,0,5.377498,0,0,10.57626,0,0,0 +1,0,0,5.377498,0,0,10.57626,0,0,0 +1,0,0,5.377498,0,0,10.57626,0,0,0 +2,0,0,5.377498,0,0,3.4,1,0,0 +0,0,0,5.377498,0,0,3.4,1,0,0 +0,0,0,5.377498,0,0,3.4,1,0,0 +4,4.564348,0,5.898527,5.94982,1,17.2,0,0,1 +0,4.564348,0,5.898527,5.94982,1,17.2,0,0,1 +1,4.564348,0,5.898527,5.94982,1,17.2,0,0,1 +2,0,0,0,0,1,0,0,1,0 +1,0,0,0,0,1,0,0,1,0 +1,0,0,0,0,1,0,0,1,0 +0,0,0,0,0,0,10.57626,1,0,0 +1,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +1,0,0,0,0,0,10.3,1,0,0 +0,0,0,0,0,0,10.3,1,0,0 +0,0,0,0,0,0,10.3,1,0,0 +3,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +1,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,3.4,0,1,0 +0,0,0,0,0,0,3.4,0,1,0 +3,0,0,0,0,0,3.4,0,1,0 +1,0,0,0,0,0,10.57626,1,0,0 +2,0,0,0,0,0,10.57626,1,0,0 +1,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +1,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,3.4,1,0,0 +1,0,0,0,0,0,3.4,1,0,0 +0,0,0,0,0,0,3.4,1,0,0 +1,3.258096,0,6.620073,8.006368,0,17.2,1,0,0 +4,3.258096,0,6.620073,8.006368,0,17.2,1,0,0 +0,3.258096,0,6.620073,8.006368,0,17.2,1,0,0 +2,3.258096,0,6.620073,8.006368,0,17.2,1,0,0 +0,3.258096,0,6.620073,8.006368,0,17.2,1,0,0 +0,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +9,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +0,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +1,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +1,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +1,0,1,5.163185,6.160541,.1442925,10.57626,1,0,0 +0,0,1,5.163185,6.160541,.1442925,10.57626,1,0,0 +0,0,1,5.163185,6.160541,.1442925,10.57626,1,0,0 +1,0,1,5.163185,6.160541,.1442925,10.57626,1,0,0 +0,0,1,5.163185,6.160541,.1442925,10.57626,1,0,0 +0,0,1,5.163185,6.160541,.1442925,10.57626,1,0,0 +7,0,1,5.163185,6.160541,0,20.7,1,0,0 +1,0,1,5.163185,6.160541,0,20.7,1,0,0 +0,0,1,5.163185,6.160541,0,20.7,1,0,0 +0,0,1,5.163185,6.160541,0,13.8,1,0,0 +0,0,1,5.163185,6.160541,0,13.8,1,0,0 +0,0,1,5.163185,6.160541,0,13.8,1,0,0 +0,3.258096,0,6.620073,8.006368,0,0,1,0,0 +1,3.258096,0,6.620073,8.006368,0,0,1,0,0 +0,3.258096,0,6.620073,8.006368,.1442925,0,1,0,0 +0,3.258096,0,6.620073,8.006368,.1442925,0,1,0,0 +1,3.258096,0,6.620073,8.006368,.1442925,0,1,0,0 +0,3.258096,0,6.620073,8.006368,.1442925,0,1,0,0 +0,3.258096,0,6.620073,8.006368,.1442925,0,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +1,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +0,3.258096,0,6.620073,8.006368,1,3.4,0,1,0 +0,3.258096,0,6.620073,8.006368,1,3.4,0,1,0 +1,3.258096,0,6.620073,8.006368,1,3.4,0,1,0 +0,3.258096,0,6.620073,8.006368,1,3.4,0,1,0 +0,3.258096,0,6.620073,8.006368,1,3.4,0,1,0 +0,3.258096,0,6.620073,8.006368,0,10.3,0,1,0 +2,3.258096,0,6.620073,8.006368,0,10.3,0,1,0 +0,3.258096,0,6.620073,8.006368,0,10.3,0,1,0 +0,3.258096,0,6.620073,8.006368,0,10.3,0,1,0 +2,3.258096,0,6.620073,8.006368,0,10.3,0,1,0 +0,4.564348,0,6.436151,5.741653,0,10.57626,0,1,0 +1,4.564348,0,6.436151,5.741653,0,10.57626,0,1,0 +0,4.564348,0,6.436151,5.741653,0,10.57626,0,1,0 +0,4.564348,0,6.436151,5.741653,1,13.8,1,0,0 +0,4.564348,0,6.436151,5.741653,1,13.8,1,0,0 +0,4.564348,0,6.436151,5.741653,1,13.8,1,0,0 +0,4.564348,0,6.436151,5.741653,0,0,0,1,0 +0,4.564348,0,6.436151,5.741653,0,0,0,1,0 +0,4.564348,0,6.436151,5.741653,0,0,0,1,0 +0,4.564348,0,6.436151,5.741653,0,10.57626,0,1,0 +0,4.564348,0,6.436151,5.741653,0,10.57626,0,1,0 +0,4.564348,0,6.436151,5.741653,0,10.57626,0,1,0 +0,4.564348,0,6.436151,5.741653,0,6.9,0,1,0 +1,4.564348,0,6.436151,5.741653,0,6.9,0,1,0 +0,4.564348,0,6.436151,5.741653,0,6.9,0,1,0 +0,4.564348,0,6.55108,6.602374,1,27.6,0,0,0 +1,4.564348,0,6.55108,6.602374,1,27.6,0,0,0 +0,4.564348,0,6.55108,6.602374,1,27.6,0,0,0 +4,4.564348,0,6.55108,6.602374,1,27.6,0,0,0 +2,4.564348,0,6.55108,6.602374,1,27.6,0,0,0 +0,4.564348,0,6.55108,6.602374,0,10.57626,0,0,0 +1,4.564348,0,6.55108,6.602374,0,10.57626,0,0,0 +0,4.564348,0,6.55108,6.602374,0,10.57626,0,0,0 +1,4.564348,0,6.55108,6.602374,0,10.57626,0,0,0 +1,4.564348,0,6.55108,6.602374,0,10.57626,0,0,0 +0,4.564348,0,6.55108,6.602374,1,6.9,0,0,0 +0,4.564348,0,6.55108,6.602374,1,6.9,0,0,0 +0,4.564348,0,6.55108,6.602374,1,6.9,0,0,0 +1,4.564348,0,6.55108,6.602374,1,6.9,0,0,0 +0,4.564348,0,6.55108,6.602374,1,6.9,0,0,0 +1,4.564348,0,6.55108,6.602374,0,10.57626,0,0,0 +2,4.564348,0,6.55108,6.602374,0,10.57626,0,0,0 +4,4.564348,0,6.55108,6.602374,0,10.57626,0,0,0 +1,4.564348,0,6.55108,6.602374,0,10.57626,0,0,0 +2,4.564348,0,6.55108,6.602374,0,10.57626,0,0,0 +0,4.564348,0,6.55108,6.602374,0,10.57626,0,0,0 +0,4.564348,0,6.55108,6.602374,0,10.57626,0,0,0 +0,4.564348,0,6.55108,6.602374,0,10.57626,0,0,0 +0,4.564348,0,6.55108,6.602374,0,10.57626,0,0,0 +2,4.564348,0,6.55108,6.602374,0,10.57626,0,0,0 +1,3.931826,0,6.907755,7.600903,0,10.57626,0,0,0 +1,3.931826,0,6.907755,7.600903,0,10.57626,0,0,0 +2,3.931826,0,6.907755,7.600903,0,10.57626,0,0,0 +5,3.931826,0,6.907755,7.600903,0,10.57626,0,0,0 +2,3.931826,0,6.907755,7.600903,0,10.57626,0,0,0 +2,3.931826,0,6.907755,7.600903,0,13.8,0,0,0 +0,3.931826,0,6.907755,7.600903,0,13.8,0,0,0 +0,3.931826,0,6.907755,7.600903,0,13.8,0,0,0 +1,3.931826,0,6.907755,7.600903,0,13.8,0,0,0 +1,3.931826,0,6.907755,7.600903,0,13.8,0,0,0 +3,3.931826,0,6.907755,7.600903,0,6.9,0,0,0 +2,3.931826,0,6.907755,7.600903,0,6.9,0,0,0 +0,3.931826,0,6.907755,7.600903,0,6.9,0,0,0 +3,3.931826,0,6.907755,7.600903,0,6.9,0,0,0 +2,3.931826,0,6.907755,7.600903,0,6.9,0,0,0 +0,0,1,6.115627,6.160541,.1442925,10.57626,1,0,0 +1,0,1,6.115627,6.160541,.1442925,10.57626,1,0,0 +0,0,1,6.115627,6.160541,.1442925,10.57626,1,0,0 +3,0,1,6.115627,6.160541,0,10.3,1,0,0 +0,0,1,6.115627,6.160541,0,10.3,1,0,0 +0,0,1,6.115627,6.160541,0,10.3,1,0,0 +20,0,1,6.115627,6.160541,1,3.4,1,0,0 +0,0,1,6.115627,6.160541,1,3.4,1,0,0 +2,0,1,6.115627,6.160541,1,3.4,1,0,0 +1,0,1,6.109248,6.160541,1,17.2,1,0,0 +0,0,1,6.109248,6.160541,1,17.2,1,0,0 +0,0,1,6.109248,6.160541,1,17.2,1,0,0 +4,0,0,0,0,0,10.57626,1,0,0 +8,0,0,0,0,0,10.57626,1,0,0 +1,0,0,0,0,0,10.57626,1,0,0 +2,0,0,0,0,0,10.57626,1,0,0 +5,0,0,0,0,0,10.57626,1,0,0 +1,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +3,0,0,0,0,0,10.57626,0,0,0 +2,0,0,0,0,0,10.57626,0,0,0 +3,0,0,0,0,0,6.9,1,0,0 +1,0,0,0,0,0,6.9,1,0,0 +3,0,0,0,0,0,6.9,1,0,0 +0,0,0,0,0,0,6.9,1,0,0 +1,0,0,0,0,0,6.9,1,0,0 +8,0,0,0,0,1,13.8,1,0,0 +2,0,0,0,0,1,13.8,1,0,0 +6,0,0,0,0,1,13.8,1,0,0 +5,0,0,0,0,1,13.8,1,0,0 +4,0,0,0,0,1,13.8,1,0,0 +1,0,0,0,0,0,10.57626,0,0,0 +1,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +2,0,0,0,0,0,10.57626,0,0,0 +8,3.258096,0,6.620073,8.006368,1,20.7,1,0,0 +12,3.258096,0,6.620073,8.006368,1,20.7,1,0,0 +21,3.258096,0,6.620073,8.006368,1,20.7,1,0,0 +18,3.258096,0,6.620073,8.006368,1,20.7,1,0,0 +3,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +7,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +3,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +15,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +14,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +1,0,0,5.827062,0,0,20.7,1,0,0 +2,0,0,5.827062,0,0,20.7,1,0,0 +1,0,0,5.827062,0,0,20.7,1,0,0 +4,0,0,5.827062,0,0,20.7,1,0,0 +6,0,0,5.827062,0,0,20.7,1,0,0 +7,0,0,5.827062,0,0,20.7,1,0,0 +5,3.258096,0,6.620073,8.006368,0,13.8,0,0,0 +2,3.258096,0,6.620073,8.006368,0,13.8,0,0,0 +3,3.258096,0,6.620073,8.006368,0,13.8,0,0,0 +4,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +1,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +1,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +5,0,0,0,0,0,6.9,1,0,0 +0,0,0,0,0,0,6.9,1,0,0 +2,0,0,0,0,0,6.9,1,0,0 +4,0,0,0,0,0,17.2,0,0,0 +3,0,0,0,0,0,17.2,0,0,0 +2,0,0,0,0,0,17.2,0,0,0 +4,0,0,5.567428,0,0,10.3,1,0,0 +0,0,0,5.567428,0,0,10.3,1,0,0 +2,0,0,5.567428,0,0,10.3,1,0,0 +8,0,0,5.567428,0,0,20.7,1,0,0 +8,0,0,5.567428,0,0,20.7,1,0,0 +7,0,0,5.567428,0,0,20.7,1,0,0 +2,0,1,5.703783,5.755076,1,37.9,0,1,0 +2,0,1,5.703783,5.755076,1,37.9,0,1,0 +5,0,1,5.703783,5.755076,1,37.9,0,1,0 +1,0,1,5.703783,5.755076,1,24.1,1,0,0 +9,0,1,5.703783,5.755076,1,24.1,1,0,0 +8,0,1,5.703783,5.755076,1,24.1,1,0,0 +2,3.258096,0,6.343529,7.729823,0,13.8,1,0,0 +1,3.258096,0,6.343529,7.729823,0,13.8,1,0,0 +0,3.258096,0,6.343529,7.729823,0,13.8,1,0,0 +0,3.258096,0,6.343529,7.729823,0,10.57626,1,0,0 +0,3.258096,0,6.343529,7.729823,0,10.57626,1,0,0 +0,3.258096,0,6.343529,7.729823,0,10.57626,1,0,0 +4,3.258096,0,6.343529,7.729823,0,3.4,1,0,0 +2,3.258096,0,6.343529,7.729823,0,3.4,1,0,0 +4,3.258096,0,6.343529,7.729823,0,3.4,1,0,0 +0,0,0,5.259992,0,0,6.9,0,0,0 +3,0,0,5.259992,0,0,6.9,0,0,0 +2,0,0,5.259992,0,0,6.9,0,0,0 +1,0,0,5.259992,0,0,10.3,1,0,0 +8,0,0,5.259992,0,0,10.3,1,0,0 +5,0,0,5.259992,0,0,10.3,1,0,0 +1,0,0,5.029653,0,0,3.4,0,1,0 +0,0,0,5.029653,0,0,3.4,0,1,0 +1,0,0,5.029653,0,0,3.4,0,1,0 +2,0,0,5.029653,0,0,3.4,0,1,0 +0,0,0,5.029653,0,0,3.4,0,1,0 +1,0,0,5.029653,0,1,10.3,0,0,1 +15,0,0,5.029653,0,1,10.3,0,0,1 +2,0,0,5.029653,0,1,10.3,0,0,1 +1,0,0,5.029653,0,1,10.3,0,0,1 +2,0,0,5.029653,0,1,10.3,0,0,1 +0,0,0,5.029653,0,0,13.8,0,0,1 +1,0,0,5.029653,0,0,13.8,0,0,1 +0,0,0,5.029653,0,0,13.8,0,0,1 +0,0,0,5.029653,0,0,13.8,0,0,1 +0,0,0,5.029653,0,0,13.8,0,0,1 +6,0,1,6.767757,6.160541,1,24.1,0,1,0 +22,0,1,6.767757,6.160541,1,24.1,0,1,0 +13,0,1,6.767757,6.160541,1,24.1,0,1,0 +2,0,1,6.767757,6.160541,0,0,0,0,0 +0,0,1,6.767757,6.160541,0,0,0,0,0 +0,0,1,6.767757,6.160541,0,0,0,0,0 +2,0,1,6.767757,6.160541,0,10.57626,0,0,0 +4,0,1,6.767757,6.160541,0,10.57626,0,0,0 +1,0,1,6.767757,6.160541,0,10.57626,0,0,0 +0,0,0,5.259992,0,1,20.7,1,0,0 +3,0,0,5.259992,0,1,20.7,1,0,0 +0,0,0,5.259992,0,1,20.7,1,0,0 +1,0,0,5.259992,0,0,6.9,0,0,0 +0,0,0,5.259992,0,0,6.9,0,0,0 +1,0,0,5.259992,0,0,6.9,0,0,0 +6,0,0,5.259992,0,1,20.7,1,0,0 +4,0,0,5.259992,0,1,20.7,1,0,0 +3,0,0,5.259992,0,1,20.7,1,0,0 +2,0,0,0,0,0,6.9,0,0,0 +2,0,0,0,0,0,6.9,0,0,0 +3,0,0,0,0,0,6.9,0,0,0 +3,3.258096,0,6.620073,8.006368,.1442925,10.57626,1,0,0 +8,3.258096,0,6.620073,8.006368,.1442925,10.57626,1,0,0 +2,3.258096,0,6.620073,8.006368,.1442925,10.57626,1,0,0 +1,0,0,5.259992,0,0,10.57626,1,0,0 +2,0,0,5.259992,0,0,10.57626,1,0,0 +3,0,0,5.259992,0,0,10.57626,1,0,0 +1,0,0,5.259992,0,0,3.4,1,0,0 +1,0,0,5.259992,0,0,3.4,1,0,0 +1,0,0,5.259992,0,0,3.4,1,0,0 +1,0,0,5.259992,0,0,3.4,1,0,0 +4,0,0,5.259992,0,0,3.4,1,0,0 +2,0,0,5.259992,0,0,3.4,1,0,0 +4,0,1,5.703783,5.755076,0,10.3,1,0,0 +1,0,1,5.703783,5.755076,0,10.3,1,0,0 +6,0,1,5.703783,5.755076,0,10.3,1,0,0 +0,0,1,5.703783,5.755076,0,0,0,0,0 +0,0,1,5.703783,5.755076,0,0,0,0,0 +1,0,1,5.703783,5.755076,0,0,0,0,0 +0,3.258096,0,5.204007,6.590301,0,10.57626,0,0,0 +0,3.258096,0,5.204007,6.590301,0,10.57626,0,0,0 +0,3.258096,0,5.204007,6.590301,0,10.57626,0,0,0 +0,3.258096,0,5.204007,6.590301,0,10.57626,0,0,0 +0,3.258096,0,5.204007,6.590301,0,10.57626,0,0,0 +0,3.258096,0,5.204007,6.590301,0,10.3,0,0,0 +0,3.258096,0,5.204007,6.590301,0,10.3,0,0,0 +0,3.258096,0,5.204007,6.590301,0,10.3,0,0,0 +1,3.258096,0,5.204007,6.590301,0,10.3,0,0,0 +2,3.258096,0,5.204007,6.590301,0,10.3,0,0,0 +2,3.258096,0,5.204007,6.590301,0,10.57626,0,0,0 +2,3.258096,0,5.204007,6.590301,0,10.57626,0,0,0 +0,3.258096,0,5.204007,6.590301,0,10.57626,0,0,0 +5,3.258096,0,5.204007,6.590301,0,10.57626,0,0,0 +3,3.258096,0,5.204007,6.590301,0,10.57626,0,0,0 +5,0,1,6.109248,6.160541,.1442925,10.57626,1,0,0 +4,0,1,6.109248,6.160541,.1442925,10.57626,1,0,0 +3,0,1,6.109248,6.160541,.1442925,10.57626,1,0,0 +3,0,1,6.109248,6.160541,0,20.7,1,0,0 +1,0,1,6.109248,6.160541,0,20.7,1,0,0 +1,0,1,6.109248,6.160541,0,20.7,1,0,0 +0,0,1,6.109248,6.160541,0,6.9,0,0,0 +0,0,1,6.109248,6.160541,0,6.9,0,0,0 +4,0,1,6.109248,6.160541,0,6.9,0,0,0 +2,0,1,6.109248,6.160541,.1442925,10.57626,1,0,0 +4,0,1,6.109248,6.160541,.1442925,10.57626,1,0,0 +0,0,1,6.109248,6.160541,.1442925,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +2,0,1,6.109248,6.160541,1,37.9,0,1,0 +4,0,1,6.109248,6.160541,1,37.9,0,1,0 +0,0,1,6.109248,6.160541,1,37.9,0,1,0 +2,0,1,6.109248,6.160541,0,13.8,0,0,0 +0,0,1,6.109248,6.160541,0,13.8,0,0,0 +0,0,1,6.109248,6.160541,0,13.8,0,0,0 +1,0,1,6.109248,6.160541,0,13.8,0,0,0 +2,0,1,6.109248,6.160541,0,13.8,0,0,0 +2,0,1,6.109248,6.160541,0,13.8,0,0,0 +2,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +1,0,1,6.109248,6.160541,0,10.57626,0,0,0 +1,0,1,6.109248,6.160541,0,10.57626,0,0,0 +2,0,1,6.109248,6.160541,0,10.57626,0,0,0 +2,0,1,6.109248,6.160541,0,10.57626,0,0,0 +1,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,4.564348,0,0,5.928188,0,6.9,1,0,0 +0,4.564348,0,0,5.928188,0,6.9,1,0,0 +0,4.564348,0,0,5.928188,0,6.9,1,0,0 +0,4.564348,0,6.709304,6.760598,0,3.4,1,0,0 +0,4.564348,0,6.709304,6.760598,0,3.4,1,0,0 +0,4.564348,0,6.709304,6.760598,0,3.4,1,0,0 +0,4.564348,0,6.709304,6.760598,0,10.57626,1,0,0 +0,4.564348,0,6.709304,6.760598,0,10.57626,1,0,0 +0,4.564348,0,6.709304,6.760598,0,10.57626,1,0,0 +0,4.564348,0,6.709304,6.760598,0,10.57626,1,0,0 +0,4.564348,0,6.709304,6.760598,0,10.57626,1,0,0 +0,4.564348,0,6.709304,6.760598,0,10.57626,1,0,0 +0,4.564348,0,6.709304,6.760598,0,13.8,1,0,0 +0,4.564348,0,6.709304,6.760598,0,13.8,1,0,0 +0,4.564348,0,6.709304,6.760598,0,13.8,1,0,0 +0,4.564348,0,6.709304,6.760598,0,10.57626,1,0,0 +0,4.564348,0,6.709304,6.760598,0,10.57626,1,0,0 +0,4.564348,0,6.709304,6.760598,0,10.57626,1,0,0 +0,4.564348,0,6.709304,6.760598,0,10.57626,1,0,0 +0,4.564348,0,6.709304,6.760598,0,10.57626,1,0,0 +0,4.564348,0,6.709304,6.760598,0,10.57626,1,0,0 +2,4.564348,0,4.393214,4.444507,0,10.3,0,1,0 +0,4.564348,0,4.393214,4.444507,0,10.3,0,1,0 +0,4.564348,0,4.393214,4.444507,0,10.3,0,1,0 +0,4.564348,0,4.393214,4.444507,0,10.57626,0,1,0 +0,4.564348,0,4.393214,4.444507,0,10.57626,0,1,0 +0,4.564348,0,4.393214,4.444507,0,10.57626,0,1,0 +0,4.564348,0,4.393214,4.444507,0,10.57626,0,0,0 +0,4.564348,0,4.393214,4.444507,0,10.57626,0,0,0 +0,4.564348,0,4.393214,4.444507,0,10.57626,0,0,0 +0,3.931826,0,0,7.600903,.1442925,10.57626,0,0,0 +14,3.931826,0,0,7.600903,.1442925,10.57626,0,0,0 +9,3.931826,0,0,7.600903,.1442925,10.57626,0,0,0 +0,3.931826,0,0,7.600903,.1442925,10.57626,0,0,0 +2,3.931826,0,0,7.600903,.1442925,10.57626,0,0,0 +13,0,0,0,0,0,3.4,1,0,0 +18,0,0,0,0,0,3.4,1,0,0 +16,0,0,0,0,0,3.4,1,0,0 +2,0,0,0,0,0,6.9,1,0,0 +2,0,0,0,0,0,6.9,1,0,0 +7,0,0,0,0,0,6.9,1,0,0 +0,0,0,0,0,0,3.4,1,0,0 +0,0,0,0,0,0,3.4,1,0,0 +2,0,0,0,0,0,3.4,1,0,0 +0,0,0,0,0,0,3.4,1,0,0 +1,0,0,0,0,0,3.4,1,0,0 +4,4.564348,0,5.283711,5.335004,1,24.1,0,0,1 +7,4.564348,0,5.283711,5.335004,1,24.1,0,0,1 +6,4.564348,0,5.283711,5.335004,1,24.1,0,0,1 +4,4.564348,0,5.283711,5.335004,1,24.1,0,0,1 +7,4.564348,0,5.283711,5.335004,1,24.1,0,0,1 +0,4.564348,0,5.283711,5.335004,0,20.7,0,0,1 +2,4.564348,0,5.283711,5.335004,0,20.7,0,0,1 +1,0,0,0,0,1,17.2,0,1,0 +0,0,0,0,0,1,17.2,0,1,0 +0,0,0,0,0,1,17.2,0,1,0 +0,0,0,0,0,1,17.2,0,1,0 +1,0,0,0,0,1,17.2,0,1,0 +6,0,0,0,0,0,24.1,1,0,0 +4,0,0,0,0,0,24.1,1,0,0 +6,0,0,0,0,0,24.1,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,0,1,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,0,1,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,0,1,0 +0,3.258096,0,6.620073,8.006368,0,6.9,0,1,0 +0,3.258096,0,6.620073,8.006368,0,6.9,0,1,0 +0,3.258096,0,6.620073,8.006368,0,6.9,0,1,0 +1,3.258096,0,6.620073,8.006368,0,13.8,0,1,0 +2,3.258096,0,6.620073,8.006368,0,13.8,0,1,0 +4,3.258096,0,6.620073,8.006368,0,13.8,0,1,0 +1,3.258096,0,6.620073,8.006368,.1442925,10.57626,1,0,0 +2,3.258096,0,6.620073,8.006368,.1442925,10.57626,1,0,0 +1,3.258096,0,6.620073,8.006368,.1442925,10.57626,1,0,0 +1,3.258096,0,6.620073,8.006368,0,31,0,1,0 +8,3.258096,0,6.620073,8.006368,0,31,0,1,0 +4,3.258096,0,6.620073,8.006368,0,31,0,1,0 +0,3.258096,0,6.620073,8.006368,0,10.3,1,0,0 +4,3.258096,0,6.620073,8.006368,0,10.3,1,0,0 +5,3.258096,0,6.620073,8.006368,0,10.3,1,0,0 +0,4.564348,0,6.907755,6.959049,1,3.4,0,0,0 +0,4.564348,0,6.907755,6.959049,1,3.4,0,0,0 +1,4.564348,0,6.907755,6.959049,1,3.4,0,0,0 +1,0,1,6.109248,6.160541,0,6.9,0,0,0 +2,0,1,6.109248,6.160541,0,6.9,0,0,0 +0,0,1,6.109248,6.160541,0,6.9,0,0,0 +5,0,1,6.109248,6.160541,0,6.9,0,0,0 +0,0,1,6.109248,6.160541,0,6.9,0,0,0 +0,0,1,6.109248,6.160541,0,6.9,0,0,0 +4,0,1,6.109248,6.160541,1,13.8,0,1,0 +18,0,1,6.109248,6.160541,1,13.8,0,1,0 +6,0,1,6.109248,6.160541,1,13.8,0,1,0 +3,0,0,0,0,0,10.3,0,0,0 +3,0,0,0,0,0,10.3,0,0,0 +4,0,0,0,0,0,10.3,0,0,0 +3,0,0,0,0,0,6.9,0,0,0 +0,0,0,0,0,0,6.9,0,0,0 +7,0,0,0,0,0,6.9,0,0,0 +7,0,0,0,0,0,10.57626,0,0,0 +12,0,0,0,0,0,10.57626,0,0,0 +7,0,0,0,0,0,10.57626,0,0,0 +0,0,1,0,6.160541,0,10.57626,0,0,0 +0,0,1,0,6.160541,0,10.57626,0,0,0 +0,0,1,0,6.160541,0,10.57626,0,0,0 +0,0,1,0,6.160541,0,0,0,1,0 +0,0,1,0,6.160541,0,0,0,1,0 +0,0,1,0,6.160541,0,0,0,1,0 +0,0,1,0,6.160541,0,10.57626,1,0,0 +0,0,1,0,6.160541,0,10.57626,1,0,0 +0,0,1,0,6.160541,0,10.57626,1,0,0 +0,0,1,0,6.160541,0,13.8,1,0,0 +0,0,1,0,6.160541,0,13.8,1,0,0 +0,0,1,0,6.160541,0,13.8,1,0,0 +0,0,1,0,6.160541,0,3.4,0,0,0 +0,0,1,0,6.160541,0,3.4,0,0,0 +0,0,1,0,6.160541,0,3.4,0,0,0 +19,0,0,5.444493,0,1,37.9,0,1,0 +15,0,0,5.444493,0,1,37.9,0,1,0 +17,0,0,5.444493,0,1,37.9,0,1,0 +28,0,0,5.444493,0,1,20.7,1,0,0 +32,0,0,5.444493,0,1,20.7,1,0,0 +0,0,0,3.178054,0,0,0,0,0,0 +0,0,0,3.178054,0,0,0,0,0,0 +0,0,0,3.178054,0,0,0,0,0,0 +5,0,0,3.178054,0,1,27.6,1,0,0 +7,0,0,3.178054,0,1,27.6,1,0,0 +6,0,0,3.178054,0,1,27.6,1,0,0 +0,3.258096,0,6.021509,6.918102,1,24.1,0,1,0 +0,3.258096,0,6.021509,6.918102,1,24.1,0,1,0 +0,3.258096,0,6.021509,6.918102,1,24.1,0,1,0 +0,3.931826,0,5.753049,6.446196,0,24.1,0,1,0 +1,3.931826,0,5.753049,6.446196,0,24.1,0,1,0 +0,3.931826,0,5.753049,6.446196,0,24.1,0,1,0 +0,3.931826,0,5.753049,6.446196,1,17.2,1,0,0 +0,3.931826,0,5.753049,6.446196,1,17.2,1,0,0 +2,3.258096,0,6.620073,8.006368,0,13.8,1,0,0 +3,3.258096,0,6.620073,8.006368,0,13.8,1,0,0 +2,3.258096,0,6.620073,8.006368,0,13.8,1,0,0 +8,3.258096,0,6.620073,8.006368,0,13.8,1,0,0 +3,3.258096,0,6.620073,8.006368,0,13.8,1,0,0 +3,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +5,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +3,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +7,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +4,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +16,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +5,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +8,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +6,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +7,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +1,3.258096,0,6.620073,8.006368,0,0,0,0,0 +0,3.258096,0,6.620073,8.006368,0,0,0,0,0 +0,3.258096,0,6.620073,8.006368,0,0,0,0,0 +1,3.258096,0,6.620073,8.006368,0,0,0,0,0 +2,3.258096,0,6.620073,8.006368,0,0,0,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,0,13.8,1,0,0 +1,3.258096,0,6.620073,8.006368,0,13.8,1,0,0 +1,3.258096,0,6.620073,8.006368,0,13.8,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +6,3.258096,0,6.620073,8.006368,1,24.1,1,0,0 +3,3.258096,0,6.620073,8.006368,1,24.1,1,0,0 +1,3.258096,0,6.620073,8.006368,1,24.1,1,0,0 +5,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +4,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +0,0,0,5.285232,0,0,6.9,0,0,0 +1,0,0,5.285232,0,0,6.9,0,0,0 +2,0,0,5.285232,0,0,6.9,0,0,0 +1,0,0,5.285232,0,0,10.3,0,0,0 +3,0,0,5.285232,0,0,10.3,0,0,0 +2,0,0,5.285232,0,0,10.3,0,0,0 +0,0,0,5.285232,0,0,10.3,0,0,0 +0,0,0,5.285232,0,0,10.3,0,0,0 +1,0,0,5.285232,0,0,10.3,0,0,0 +2,0,0,4.97231,0,0,17.2,1,0,0 +0,0,0,4.97231,0,0,17.2,1,0,0 +0,0,0,4.97231,0,0,17.2,1,0,0 +0,0,0,4.97231,0,0,10.57626,0,0,0 +1,0,0,4.97231,0,0,10.57626,0,0,0 +0,0,0,4.97231,0,0,10.57626,0,0,0 +2,0,0,4.97231,0,0,31,1,0,0 +2,0,0,4.97231,0,0,31,1,0,0 +1,0,0,4.97231,0,0,31,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +1,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.3,0,0,0 +0,0,1,6.109248,6.160541,0,10.3,0,0,0 +1,0,1,6.109248,6.160541,0,10.3,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +2,0,1,6.109248,6.160541,0,10.57626,1,0,0 +1,0,1,6.109248,6.160541,0,10.3,1,0,0 +0,0,1,6.109248,6.160541,0,10.3,1,0,0 +0,0,1,6.109248,6.160541,0,10.3,1,0,0 +5,0,0,0,0,0,10.3,0,1,0 +7,0,0,0,0,0,10.3,0,1,0 +13,0,0,0,0,0,10.3,0,1,0 +0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,1,0 +0,0,0,0,0,0,0,0,1,0 +0,4.564348,0,5.572838,6.959049,0,0,1,0,0 +0,4.564348,0,5.572838,6.959049,0,0,1,0,0 +0,4.564348,0,5.572838,6.959049,0,0,1,0,0 +0,4.564348,0,5.572838,6.959049,0,10.57626,1,0,0 +0,4.564348,0,5.572838,6.959049,0,10.57626,1,0,0 +0,4.564348,0,5.572838,6.959049,0,10.57626,1,0,0 +0,4.564348,0,5.572838,6.959049,0,0,1,0,0 +0,4.564348,0,5.572838,6.959049,0,0,1,0,0 +0,4.564348,0,5.572838,6.959049,0,0,1,0,0 +0,4.564348,0,5.572838,6.959049,0,10.57626,0,0,0 +0,4.564348,0,5.572838,6.959049,0,10.57626,0,0,0 +0,4.564348,0,5.572838,6.959049,0,10.57626,0,0,0 +1,0,0,4.668708,0,1,17.2,1,0,0 +3,0,0,4.668708,0,1,17.2,1,0,0 +2,0,0,4.668708,0,1,17.2,1,0,0 +1,0,0,4.668708,0,0,10.57626,1,0,0 +1,0,0,4.668708,0,0,10.57626,1,0,0 +2,0,0,4.668708,0,0,10.57626,1,0,0 +0,0,0,4.668708,0,0,10.57626,1,0,0 +0,0,0,4.668708,0,0,10.57626,1,0,0 +0,0,0,4.668708,0,0,10.57626,1,0,0 +0,0,0,4.668708,0,0,13.8,1,0,0 +1,0,0,4.668708,0,0,13.8,1,0,0 +1,0,0,4.668708,0,0,13.8,1,0,0 +0,0,0,4.668708,0,0,10.57626,1,0,0 +0,0,0,4.668708,0,0,10.57626,1,0,0 +0,0,0,4.668708,0,0,10.57626,1,0,0 +0,0,0,4.668708,0,0,10.57626,1,0,0 +3,0,0,4.668708,0,0,10.57626,1,0,0 +0,0,0,4.668708,0,0,10.57626,1,0,0 +2,0,0,4.668708,0,0,13.8,1,0,0 +3,0,0,4.668708,0,0,13.8,1,0,0 +4,0,0,4.668708,0,0,13.8,1,0,0 +1,0,0,4.668708,0,0,10.57626,1,0,0 +1,0,0,4.668708,0,0,10.57626,1,0,0 +1,0,0,4.668708,0,0,10.57626,1,0,0 +0,0,0,4.668708,0,0,10.57626,1,0,0 +1,0,0,4.668708,0,0,10.57626,1,0,0 +0,0,0,4.668708,0,0,10.57626,1,0,0 +1,0,0,4.668708,0,0,3.4,1,0,0 +1,0,0,4.668708,0,0,3.4,1,0,0 +0,0,0,4.668708,0,0,3.4,1,0,0 +1,4.564348,0,6.907755,6.959049,.1442925,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,.1442925,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,.1442925,10.57626,0,0,0 +1,4.564348,0,6.907755,6.959049,0,0,0,0,0 +1,4.564348,0,6.907755,6.959049,0,0,0,0,0 +2,4.564348,0,6.907755,6.959049,0,0,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,0,0,0 +3,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +4,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +1,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +3,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +2,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +4,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +8,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +3,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +5,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +0,0,1,6.109248,6.160541,0,6.9,1,0,0 +1,0,1,6.109248,6.160541,0,6.9,1,0,0 +0,0,1,6.109248,6.160541,0,6.9,1,0,0 +2,0,1,6.109248,6.160541,0,6.9,1,0,0 +0,0,1,6.109248,6.160541,0,6.9,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,0,1,0,0 +0,0,1,6.109248,6.160541,0,0,1,0,0 +0,0,1,6.109248,6.160541,0,0,1,0,0 +0,0,1,6.109248,6.160541,0,0,1,0,0 +0,0,1,6.109248,6.160541,0,0,1,0,0 +1,3.258096,0,6.620073,8.006368,1,10.3,1,0,0 +2,3.258096,0,6.620073,8.006368,1,10.3,1,0,0 +2,3.258096,0,6.620073,8.006368,1,10.3,1,0,0 +10,4.564348,0,6.50354,6.569703,0,17.2,1,0,0 +10,4.564348,0,6.50354,6.569703,0,17.2,1,0,0 +5,4.564348,0,6.50354,6.569703,0,17.2,1,0,0 +4,4.564348,0,6.50354,6.569703,0,17.2,1,0,0 +2,4.564348,0,6.50354,6.569703,0,17.2,1,0,0 +0,4.564348,0,6.50354,6.569703,0,6.9,0,0,0 +0,4.564348,0,6.50354,6.569703,0,6.9,0,0,0 +0,4.564348,0,6.50354,6.569703,0,6.9,0,0,0 +1,4.564348,0,6.50354,6.569703,0,6.9,0,0,0 +0,4.564348,0,6.50354,6.569703,0,6.9,0,0,0 +0,0,1,5.857819,5.755076,0,0,0,0,0 +0,0,1,5.857819,5.755076,0,0,0,0,0 +0,0,1,5.857819,5.755076,0,0,0,0,0 +1,0,1,5.857819,5.755076,0,0,0,0,0 +0,0,1,5.857819,5.755076,0,0,0,0,0 +0,0,1,5.857819,5.755076,0,13.8,0,0,0 +2,0,1,5.857819,5.755076,0,13.8,0,0,0 +1,0,1,5.857819,5.755076,0,13.8,0,0,0 +1,0,1,5.857819,5.755076,0,13.8,0,0,0 +0,0,1,5.857819,5.755076,0,13.8,0,0,0 +0,0,1,6.109248,6.160541,1,10.3,1,0,0 +4,0,1,6.109248,6.160541,1,10.3,1,0,0 +7,0,1,6.109248,6.160541,1,10.3,1,0,0 +2,0,1,6.109248,6.160541,0,10.3,0,1,0 +3,0,1,6.109248,6.160541,0,10.3,0,1,0 +1,0,1,6.109248,6.160541,0,10.3,0,1,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +1,0,1,6.109248,6.160541,0,10.57626,1,0,0 +2,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,4.564348,0,6.907755,6.959049,0,13.8,1,0,0 +2,4.564348,0,6.907755,6.959049,0,13.8,1,0,0 +0,4.564348,0,6.907755,6.959049,0,13.8,1,0,0 +2,4.564348,0,6.907755,6.959049,0,20.7,1,0,0 +1,4.564348,0,6.907755,6.959049,0,20.7,1,0,0 +0,4.564348,0,6.907755,6.959049,0,20.7,1,0,0 +0,0,1,6.109248,6.160541,1,10.57626,0,0,1 +2,0,1,6.109248,6.160541,1,10.57626,0,0,1 +0,0,1,6.109248,6.160541,1,10.57626,0,0,1 +0,0,1,6.109248,6.160541,1,6.9,1,0,0 +0,0,1,6.109248,6.160541,1,6.9,1,0,0 +3,0,1,6.109248,6.160541,1,6.9,1,0,0 +0,0,1,6.109248,6.160541,0,13.8,0,0,1 +0,0,1,6.109248,6.160541,0,13.8,0,0,1 +0,0,1,6.109248,6.160541,0,13.8,0,0,1 +0,0,1,6.109248,6.160541,0,6.9,0,1,0 +0,0,1,6.109248,6.160541,0,6.9,0,1,0 +0,0,1,6.109248,6.160541,0,6.9,0,1,0 +1,0,1,6.109248,6.160541,0,6.9,0,0,1 +1,0,1,6.109248,6.160541,0,6.9,0,0,1 +0,0,1,6.109248,6.160541,0,6.9,0,0,1 +1,0,1,6.109248,6.160541,0,10.57626,0,0,1 +0,0,1,6.109248,6.160541,0,10.57626,0,0,1 +0,0,1,6.109248,6.160541,0,10.57626,0,0,1 +0,0,1,5.615461,5.061929,0,0,0,1,0 +0,0,1,5.615461,5.061929,0,0,0,1,0 +0,3.258096,0,6.094923,7.481217,0,10.57626,0,1,0 +0,3.258096,0,6.094923,7.481217,0,10.57626,0,1,0 +0,3.258096,0,6.094923,7.481217,0,10.57626,0,1,0 +2,3.258096,0,6.094923,7.481217,0,10.57626,0,0,0 +0,3.258096,0,6.094923,7.481217,0,10.57626,0,0,0 +0,3.258096,0,6.094923,7.481217,0,10.57626,0,0,0 +0,3.258096,0,6.094923,7.481217,0,10.57626,1,0,0 +0,3.258096,0,6.094923,7.481217,0,10.57626,1,0,0 +2,3.258096,0,6.094923,7.481217,0,10.57626,1,0,0 +3,3.258096,0,6.094923,7.481217,0,10.3,0,1,0 +4,3.258096,0,6.094923,7.481217,0,10.3,0,1,0 +12,3.258096,0,6.094923,7.481217,0,10.3,0,1,0 +0,3.258096,0,6.094923,7.481217,0,10.57626,1,0,0 +0,3.258096,0,6.094923,7.481217,0,10.57626,1,0,0 +1,3.258096,0,6.094923,7.481217,0,10.57626,1,0,0 +0,3.258096,0,6.094923,7.481217,0,10.57626,1,0,0 +2,3.258096,0,6.094923,7.481217,0,10.57626,1,0,0 +3,3.258096,0,6.094923,7.481217,0,10.57626,1,0,0 +0,3.258096,0,6.094923,7.481217,0,10.57626,0,1,0 +0,3.258096,0,6.094923,7.481217,0,10.57626,0,1,0 +1,3.258096,0,6.094923,7.481217,0,10.57626,0,1,0 +0,3.258096,0,6.094923,7.481217,0,10.57626,0,1,0 +0,3.258096,0,6.094923,7.481217,0,10.57626,0,1,0 +0,3.258096,0,6.094923,7.481217,0,10.57626,0,1,0 +0,3.258096,0,6.094923,7.481217,0,10.57626,1,0,0 +2,3.258096,0,6.094923,7.481217,0,10.57626,1,0,0 +0,3.258096,0,6.094923,7.481217,0,10.57626,1,0,0 +4,3.258096,0,6.094923,7.481217,1,10.3,1,0,0 +3,3.258096,0,6.094923,7.481217,1,10.3,1,0,0 +3,3.258096,0,6.094923,7.481217,1,10.3,1,0,0 +0,0,0,5.986854,0,0,0,1,0,0 +1,0,0,5.986854,0,0,0,1,0,0 +0,0,0,5.986854,0,0,0,1,0,0 +12,0,0,5.743003,0,1,6.9,0,1,0 +5,0,0,5.743003,0,1,6.9,0,1,0 +7,0,0,5.743003,0,1,6.9,0,1,0 +1,0,0,5.743003,0,0,10.57626,1,0,0 +3,0,0,5.743003,0,0,10.57626,1,0,0 +1,0,0,5.743003,0,0,10.57626,1,0,0 +1,0,0,6.148468,0,0,6.9,1,0,0 +0,0,0,6.148468,0,0,6.9,1,0,0 +10,0,0,6.148468,0,0,6.9,1,0,0 +0,0,0,5.743003,0,0,0,1,0,0 +2,0,0,5.743003,0,0,0,1,0,0 +3,0,0,5.743003,0,0,0,1,0,0 +0,0,0,5.743003,0,1,6.9,0,1,0 +0,0,0,5.743003,0,1,6.9,0,1,0 +1,0,0,5.743003,0,1,6.9,0,1,0 +9,0,1,6.701961,5.755076,1,20.7,0,0,1 +14,0,1,6.701961,5.755076,1,20.7,0,0,1 +2,0,1,6.701961,5.755076,1,20.7,0,0,1 +1,0,1,6.701961,5.755076,0,6.9,0,1,0 +1,0,1,6.701961,5.755076,0,6.9,0,1,0 +2,0,1,6.701961,5.755076,0,6.9,0,1,0 +0,3.258096,0,6.476973,7.863267,0,10.57626,0,1,0 +0,3.258096,0,6.476973,7.863267,0,10.57626,0,1,0 +0,3.258096,0,6.476973,7.863267,0,10.57626,0,1,0 +1,3.258096,0,6.476973,7.863267,0,10.57626,0,1,0 +4,3.258096,0,6.476973,7.863267,0,10.57626,0,1,0 +1,3.258096,0,6.476973,7.863267,0,3.4,0,0,0 +0,3.258096,0,6.476973,7.863267,0,3.4,0,0,0 +0,3.258096,0,6.476973,7.863267,0,3.4,0,0,0 +1,3.258096,0,6.476973,7.863267,0,3.4,0,0,0 +2,3.258096,0,6.476973,7.863267,0,3.4,0,0,0 +2,3.258096,0,6.476973,7.863267,0,10.3,0,0,0 +0,3.258096,0,6.476973,7.863267,0,10.3,0,0,0 +1,3.258096,0,6.476973,7.863267,0,10.3,0,0,0 +3,3.258096,0,6.476973,7.863267,0,10.3,0,0,0 +8,3.258096,0,6.476973,7.863267,0,10.3,0,0,0 +0,4.564348,0,6.907755,6.959049,0,20.7,1,0,0 +1,4.564348,0,6.907755,6.959049,0,20.7,1,0,0 +2,4.564348,0,6.907755,6.959049,0,20.7,1,0,0 +1,0,1,6.109248,6.160541,0,20.7,1,0,0 +22,0,1,6.109248,6.160541,0,20.7,1,0,0 +1,0,1,6.109248,6.160541,0,20.7,1,0,0 +3,0,1,6.109248,6.160541,0,6.9,1,0,0 +1,0,1,6.109248,6.160541,0,6.9,1,0,0 +0,0,1,6.109248,6.160541,0,6.9,1,0,0 +2,0,1,6.109248,6.160541,0,10.57626,1,0,0 +3,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +2,0,1,6.109248,6.160541,0,10.57626,0,0,0 +1,0,1,6.109248,6.160541,0,10.57626,0,0,0 +6,0,1,0,5.755076,1,37.9,0,0,1 +3,0,1,0,5.755076,1,37.9,0,0,1 +7,0,1,0,5.755076,1,37.9,0,0,1 +2,0,1,0,5.755076,1,20.7,1,0,0 +5,0,1,0,5.755076,1,20.7,1,0,0 +1,0,1,0,5.755076,1,20.7,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +1,0,1,6.109248,6.160541,0,3.4,0,1,0 +0,0,1,6.109248,6.160541,0,3.4,0,1,0 +0,0,1,6.109248,6.160541,0,3.4,0,1,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +5,0,1,6.109248,6.160541,0,17.2,1,0,0 +0,0,1,6.109248,6.160541,0,17.2,1,0,0 +3,0,1,6.109248,6.160541,0,17.2,1,0,0 +1,0,1,6.109248,6.160541,0,10.57626,0,1,0 +0,0,1,6.109248,6.160541,0,10.57626,0,1,0 +0,0,1,6.109248,6.160541,0,10.57626,0,1,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,3.258096,0,6.603266,7.989561,0,3.4,0,0,0 +0,3.258096,0,6.603266,7.989561,0,3.4,0,0,0 +1,3.258096,0,6.603266,7.989561,0,3.4,0,0,0 +2,3.258096,0,6.603266,7.989561,0,3.4,0,0,0 +0,3.258096,0,6.603266,7.989561,0,3.4,0,0,0 +1,3.258096,0,6.603266,7.989561,0,0,1,0,0 +3,3.258096,0,6.603266,7.989561,0,0,1,0,0 +3,3.258096,0,6.603266,7.989561,0,0,1,0,0 +5,3.258096,0,6.603266,7.989561,0,0,1,0,0 +1,3.258096,0,6.603266,7.989561,0,0,1,0,0 +1,3.258096,0,6.603266,7.989561,0,10.57626,0,0,0 +0,3.258096,0,6.603266,7.989561,0,10.57626,0,0,0 +1,3.258096,0,6.603266,7.989561,0,10.57626,0,0,0 +1,3.258096,0,6.603266,7.989561,0,10.57626,0,0,0 +1,3.258096,0,6.603266,7.989561,0,10.57626,0,0,0 +0,3.258096,0,6.603266,7.989561,0,10.57626,0,0,0 +1,3.258096,0,6.603266,7.989561,0,10.57626,0,0,0 +2,3.258096,0,6.603266,7.989561,0,10.57626,0,0,0 +3,3.258096,0,6.603266,7.989561,0,10.57626,0,0,0 +2,3.258096,0,6.603266,7.989561,0,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,0,0,1,0,0 +1,4.564348,0,6.907755,6.959049,0,0,1,0,0 +0,4.564348,0,6.907755,6.959049,0,0,1,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,1,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,1,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +1,4.564348,0,6.907755,6.959049,0,6.9,1,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,1,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.3,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.3,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.3,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,1,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,1,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,1,0,0 +2,3.258096,0,6.408595,6.293789,0,17.2,0,1,0 +1,3.258096,0,6.408595,6.293789,0,17.2,0,1,0 +2,3.258096,0,6.408595,6.293789,0,17.2,0,1,0 +0,4.564348,0,5.933306,5.929029,0,10.57626,1,0,0 +0,4.564348,0,5.933306,5.929029,0,10.57626,1,0,0 +0,4.564348,0,5.933306,5.929029,0,10.57626,1,0,0 +0,4.564348,0,5.933306,5.929029,0,3.4,0,0,0 +0,4.564348,0,5.933306,5.929029,0,3.4,0,0,0 +0,4.564348,0,5.933306,5.929029,0,3.4,0,0,0 +0,4.564348,0,5.933306,5.929029,0,6.9,0,0,0 +0,4.564348,0,5.933306,5.929029,0,6.9,0,0,0 +0,4.564348,0,5.933306,5.929029,0,6.9,0,0,0 +0,4.564348,0,5.933306,5.929029,0,10.57626,0,0,0 +0,4.564348,0,5.933306,5.929029,0,10.57626,0,0,0 +0,4.564348,0,5.933306,5.929029,0,10.57626,0,0,0 +3,4.564348,0,6.907755,6.959049,0,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,0,0,0 +5,4.564348,0,6.907755,6.959049,0,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,0,0,0 +1,4.564348,0,6.907755,6.959049,1,6.9,0,0,1 +0,4.564348,0,6.907755,6.959049,1,6.9,0,0,1 +1,4.564348,0,6.907755,6.959049,1,6.9,0,0,1 +1,4.564348,0,6.907755,6.959049,0,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,0,0,0 +1,4.564348,0,6.907755,6.959049,0,10.57626,0,0,0 +2,4.564348,0,6.907755,6.959049,0,17.2,0,0,0 +0,4.564348,0,6.907755,6.959049,0,17.2,0,0,0 +7,4.564348,0,6.907755,6.959049,0,17.2,0,0,0 +1,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +4,4.564348,0,6.907755,6.959049,0,3.4,1,0,0 +3,4.564348,0,6.907755,6.959049,0,3.4,1,0,0 +3,4.564348,0,6.907755,6.959049,0,3.4,1,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +1,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +0,4.564348,0,6.907755,6.959049,0,13.8,1,0,0 +0,4.564348,0,6.907755,6.959049,0,13.8,1,0,0 +0,4.564348,0,6.907755,6.959049,0,13.8,1,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +2,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,1,10.3,1,0,0 +0,0,0,0,0,1,10.3,1,0,0 +0,0,0,0,0,1,10.3,1,0,0 +3,0,0,0,0,1,17.2,1,0,0 +3,0,0,0,0,1,17.2,1,0,0 +2,0,0,0,0,1,17.2,1,0,0 +0,3.258096,0,6.262826,7.649121,0,20.7,0,0,0 +0,3.258096,0,6.262826,7.649121,0,20.7,0,0,0 +0,3.258096,0,6.262826,7.649121,0,20.7,0,0,0 +0,3.258096,0,6.262826,7.649121,1,27.6,0,0,0 +4,3.258096,0,6.262826,7.649121,1,27.6,0,0,0 +0,3.258096,0,6.262826,7.649121,1,27.6,0,0,0 +0,3.258096,0,6.262826,7.649121,0,10.57626,0,0,0 +0,3.258096,0,6.262826,7.649121,0,10.57626,0,0,0 +0,3.258096,0,6.262826,7.649121,0,10.57626,0,0,0 +6,0,0,5.72984,0,1,20.7,0,1,0 +5,0,0,5.72984,0,1,20.7,0,1,0 +4,0,0,5.72984,0,1,20.7,0,1,0 +9,0,0,5.72984,0,1,20.7,0,1,0 +8,0,0,5.72984,0,1,20.7,0,1,0 +7,0,0,5.72984,0,1,24.1,1,0,0 +12,0,0,5.72984,0,1,24.1,1,0,0 +6,0,0,5.72984,0,1,24.1,1,0,0 +5,0,0,5.72984,0,0,10.57626,1,0,0 +6,0,0,5.72984,0,0,10.57626,1,0,0 +4,0,0,5.72984,0,0,10.57626,1,0,0 +4,0,0,5.72984,0,0,10.57626,1,0,0 +1,0,0,5.72984,0,0,10.57626,1,0,0 +1,0,1,5.010635,6.160541,0,10.57626,1,0,0 +3,0,1,5.010635,6.160541,0,10.57626,1,0,0 +1,0,1,5.010635,6.160541,0,10.57626,1,0,0 +1,0,1,5.010635,6.160541,0,10.57626,1,0,0 +1,0,1,5.010635,6.160541,0,10.57626,1,0,0 +0,0,1,5.010635,6.160541,0,10.57626,1,0,0 +0,0,1,5.010635,6.160541,0,10.3,0,0,0 +4,0,1,5.010635,6.160541,0,10.3,0,0,0 +5,0,1,5.010635,6.160541,0,10.3,0,0,0 +4,0,1,5.010635,6.160541,0,6.9,0,0,0 +0,0,1,5.010635,6.160541,0,6.9,0,0,0 +3,0,1,5.010635,6.160541,0,6.9,0,0,0 +13,0,0,0,0,0,10.57626,1,0,0 +7,0,0,0,0,0,10.57626,1,0,0 +3,0,0,0,0,0,10.57626,1,0,0 +1,0,0,0,0,0,3.4,1,0,0 +1,0,0,0,0,0,3.4,1,0,0 +0,0,0,0,0,0,3.4,1,0,0 +6,0,0,0,0,0,10.3,1,0,0 +9,0,0,0,0,0,10.3,1,0,0 +4,0,0,0,0,0,10.3,1,0,0 +20,0,0,0,0,0,10.57626,1,0,0 +7,0,0,0,0,0,10.57626,1,0,0 +4,0,0,0,0,0,10.57626,1,0,0 +3,3.258096,0,6.620073,8.006368,0,24.1,1,0,0 +1,3.258096,0,6.620073,8.006368,0,24.1,1,0,0 +1,3.258096,0,6.620073,8.006368,0,24.1,1,0,0 +2,3.258096,0,6.620073,8.006368,0,13.8,1,0,0 +2,3.258096,0,6.620073,8.006368,0,13.8,1,0,0 +1,3.258096,0,6.620073,8.006368,0,13.8,1,0,0 +0,0,1,5.703783,6.160541,0,10.3,0,1,0 +1,0,1,5.703783,6.160541,0,10.3,0,1,0 +9,0,1,5.703783,6.160541,0,10.3,0,1,0 +0,0,1,5.703783,6.160541,0,10.3,1,0,0 +0,0,1,5.703783,6.160541,0,10.3,1,0,0 +0,0,1,5.703783,6.160541,0,10.3,1,0,0 +10,0,0,5.560835,0,1,31,0,1,0 +8,0,0,5.560835,0,1,31,0,1,0 +10,0,0,5.560835,0,1,31,0,1,0 +7,0,0,5.560835,0,1,31,0,1,0 +9,0,0,5.560835,0,1,31,0,1,0 +1,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +1,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +2,4.564348,0,6.907755,6.959049,0,6.9,0,0,0 +2,4.564348,0,6.907755,6.959049,0,3.4,1,0,0 +1,4.564348,0,6.907755,6.959049,0,3.4,1,0,0 +6,4.564348,0,6.907755,6.959049,0,3.4,1,0,0 +0,3.258096,0,6.620073,8.006368,0,0,0,0,0 +1,3.258096,0,6.620073,8.006368,0,0,0,0,0 +0,3.258096,0,6.620073,8.006368,0,0,0,0,0 +3,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +1,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +1,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +1,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +3,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +2,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +1,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +0,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +0,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +9,0,1,5.593967,5.061929,1,37.9,0,1,0 +3,0,1,5.593967,5.061929,1,37.9,0,1,0 +5,0,1,5.593967,5.061929,1,37.9,0,1,0 +13,0,0,5.766538,0,1,31,1,0,0 +8,0,0,5.766538,0,1,31,1,0,0 +15,0,0,5.766538,0,1,31,1,0,0 +10,0,0,5.766538,0,1,27.6,0,1,0 +6,0,0,5.766538,0,1,27.6,0,1,0 +14,0,0,5.766538,0,1,27.6,0,1,0 +13,0,1,6.109248,6.160541,0,27.6,1,0,0 +5,0,1,6.109248,6.160541,0,27.6,1,0,0 +4,0,1,6.109248,6.160541,0,27.6,1,0,0 +3,0,1,6.109248,6.160541,0,10.3,1,0,0 +1,0,1,6.109248,6.160541,0,10.3,1,0,0 +4,0,1,6.109248,6.160541,0,10.3,1,0,0 +17,0,1,6.109248,6.160541,0,10.57626,1,0,0 +10,0,1,6.109248,6.160541,0,10.57626,1,0,0 +11,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,6.9,0,0,0 +1,0,1,6.109248,6.160541,0,6.9,0,0,0 +0,0,1,6.109248,6.160541,0,6.9,0,0,0 +0,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +0,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +3,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +2,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +1,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +1,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +0,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +3,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +1,0,0,0,0,0,6.9,0,0,0 +0,0,0,0,0,0,6.9,0,0,0 +2,0,0,0,0,0,6.9,0,0,0 +4,0,0,0,0,0,3.4,1,0,0 +0,0,0,0,0,0,3.4,1,0,0 +0,0,0,0,0,0,3.4,1,0,0 +0,0,1,6.109248,6.160541,0,10.3,0,0,0 +8,0,1,6.109248,6.160541,0,10.3,0,0,0 +3,0,1,6.109248,6.160541,0,10.3,0,0,0 +6,0,1,6.109248,6.160541,0,10.3,0,0,0 +9,0,1,6.109248,6.160541,0,10.3,0,0,0 +4,0,1,6.109248,6.160541,0,17.2,1,0,0 +4,0,1,6.109248,6.160541,0,17.2,1,0,0 +6,0,1,6.109248,6.160541,0,17.2,1,0,0 +11,0,1,6.109248,6.160541,0,17.2,1,0,0 +8,0,1,6.109248,6.160541,0,17.2,1,0,0 +3,0,0,0,0,1,24.1,0,0,1 +1,0,0,0,0,1,10.57626,0,1,0 +13,3.258096,0,6.238403,6.915723,1,37.9,0,0,1 +0,3.931826,0,0,7.37149,0,10.3,0,1,0 +3,3.931826,0,0,7.37149,0,10.3,0,1,0 +2,3.931826,0,0,7.37149,0,10.3,0,1,0 +0,3.931826,0,0,7.37149,1,10.57626,0,1,0 +3,3.931826,0,0,7.37149,1,10.57626,0,1,0 +0,3.931826,0,0,7.37149,1,10.57626,0,1,0 +0,3.931826,0,0,7.37149,1,10.57626,0,1,0 +0,3.931826,0,0,7.37149,1,10.57626,0,1,0 +0,3.931826,0,0,7.37149,1,10.57626,0,1,0 +0,3.931826,0,0,7.37149,1,10.57626,0,0,0 +0,3.931826,0,0,7.37149,1,10.57626,0,0,0 +1,3.931826,0,0,7.37149,1,10.57626,0,0,0 +0,3.931826,0,0,7.37149,1,10.57626,0,0,0 +0,3.931826,0,0,7.37149,1,10.57626,0,0,0 +0,3.931826,0,0,7.37149,1,10.57626,0,0,0 +1,3.931826,0,0,7.37149,0,3.4,0,1,0 +7,3.931826,0,0,7.37149,0,3.4,0,1,0 +2,3.931826,0,0,7.37149,0,3.4,0,1,0 +0,0,0,0,0,.1442925,3.4,0,0,0 +0,0,0,0,0,.1442925,3.4,0,0,0 +0,0,0,0,0,.1442925,3.4,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,10.3,0,1,0 +0,0,0,0,0,0,10.3,0,1,0 +0,0,0,0,0,0,10.3,0,1,0 +0,0,0,0,0,0,3.4,0,1,0 +2,0,0,4.094345,0,0,10.3,0,0,0 +3,0,0,4.094345,0,0,10.3,0,0,0 +4,0,0,4.094345,0,0,10.3,0,0,0 +4,0,0,4.094345,0,0,10.3,0,0,0 +1,0,0,4.094345,0,0,10.3,0,0,0 +3,0,0,4.094345,0,0,17.2,0,0,0 +2,0,0,4.094345,0,0,17.2,0,0,0 +2,0,0,4.094345,0,0,17.2,0,0,0 +1,0,0,4.094345,0,0,17.2,0,0,0 +7,0,0,4.094345,0,0,17.2,0,0,0 +0,0,0,5.094976,0,0,0,0,0,0 +0,0,0,5.094976,0,0,3.4,0,0,0 +1,0,0,5.094976,0,0,3.4,0,0,0 +0,0,0,5.094976,0,0,3.4,0,0,0 +0,0,0,5.094976,0,0,10.57626,0,0,0 +0,0,0,5.094976,0,0,10.57626,0,0,0 +0,0,0,5.094976,0,0,10.57626,0,0,0 +0,0,0,5.094976,0,0,10.57626,0,0,0 +1,0,0,5.094976,0,0,10.57626,0,0,0 +0,0,0,5.094976,0,0,10.57626,0,0,0 +0,0,0,5.094976,0,0,0,1,0,0 +1,0,0,5.094976,0,0,0,1,0,0 +0,0,0,5.094976,0,0,0,1,0,0 +0,0,0,5.094976,0,0,13.8,1,0,0 +1,0,0,5.094976,0,0,13.8,1,0,0 +0,0,0,5.094976,0,0,13.8,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +2,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +6,3.258096,0,6.620073,8.006368,0,13.8,1,0,0 +3,3.258096,0,6.620073,8.006368,0,13.8,1,0,0 +1,3.258096,0,6.620073,8.006368,0,13.8,1,0,0 +1,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +1,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +5,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +2,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +3,3.258096,0,6.620073,8.006368,0,6.9,1,0,0 +4,0,0,5.145166,0,0,6.9,0,0,0 +1,0,0,5.145166,0,0,6.9,0,0,0 +7,0,0,5.145166,0,0,6.9,0,0,0 +4,0,1,5.703783,5.755076,1,17.2,1,0,0 +3,0,1,5.703783,5.755076,1,17.2,1,0,0 +2,0,1,5.703783,5.755076,1,24.1,1,0,0 +7,0,1,5.703783,5.755076,1,24.1,1,0,0 +9,0,1,5.703783,5.755076,1,24.1,1,0,0 +0,3.931826,0,6.907755,7.600903,1,3.4,0,0,1 +0,3.931826,0,6.907755,7.600903,1,3.4,0,0,1 +0,3.931826,0,6.907755,7.600903,1,3.4,0,0,1 +3,3.931826,0,6.907755,7.600903,1,20.7,0,0,1 +2,3.931826,0,6.907755,7.600903,1,20.7,0,0,1 +2,3.931826,0,6.907755,7.600903,1,20.7,0,0,1 +12,0,0,5.046517,0,0,20.7,1,0,0 +21,0,0,5.046517,0,0,20.7,1,0,0 +16,0,0,5.046517,0,0,20.7,1,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,1,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,1,0,0 +0,4.564348,0,6.907755,6.959049,0,6.9,1,0,0 +1,4.564348,0,6.907755,6.959049,0,27.6,0,1,0 +9,4.564348,0,6.907755,6.959049,0,27.6,0,1,0 +1,4.564348,0,6.907755,6.959049,0,27.6,0,1,0 +0,4.564348,0,6.907755,6.959049,0,6.9,0,1,0 +0,4.564348,0,6.907755,6.959049,0,6.9,0,1,0 +0,4.564348,0,6.907755,6.959049,0,6.9,0,1,0 +0,4.564348,0,6.907755,6.959049,.1442925,10.57626,0,0,1 +0,4.564348,0,6.907755,6.959049,.1442925,10.57626,0,0,1 +0,4.564348,0,6.907755,6.959049,.1442925,10.57626,0,0,1 +0,0,0,5.436556,0,0,3.4,1,0,0 +1,0,0,5.436556,0,0,3.4,1,0,0 +2,0,0,5.436556,0,0,3.4,1,0,0 +3,0,0,5.436556,0,0,13.8,1,0,0 +3,0,0,5.436556,0,0,13.8,1,0,0 +8,0,0,5.436556,0,0,13.8,1,0,0 +6,0,0,5.436556,0,0,10.57626,1,0,0 +1,0,0,5.436556,0,0,10.57626,1,0,0 +2,0,0,5.436556,0,0,10.57626,1,0,0 +4,3.258096,0,6.579251,7.965546,0,6.9,1,0,0 +2,3.258096,0,6.579251,7.965546,0,6.9,1,0,0 +1,3.258096,0,6.579251,7.965546,0,6.9,1,0,0 +6,3.258096,0,6.579251,7.965546,0,27.6,0,1,0 +5,3.258096,0,6.579251,7.965546,0,27.6,0,1,0 +1,3.258096,0,6.579251,7.965546,0,27.6,0,1,0 +2,3.258096,0,6.579251,7.965546,0,3.4,0,1,0 +1,3.258096,0,6.579251,7.965546,0,3.4,0,1,0 +0,3.258096,0,6.579251,7.965546,0,3.4,0,1,0 +1,3.931826,0,6.907755,7.600903,0,10.57626,1,0,0 +0,3.931826,0,6.907755,7.600903,0,10.57626,1,0,0 +0,3.931826,0,6.907755,7.600903,0,10.57626,1,0,0 +0,3.931826,0,6.907755,7.600903,0,10.57626,1,0,0 +0,3.931826,0,6.907755,7.600903,0,10.57626,1,0,0 +0,3.931826,0,6.907755,7.600903,1,17.2,0,1,0 +0,3.931826,0,6.907755,7.600903,1,17.2,0,1,0 +0,3.931826,0,6.907755,7.600903,1,17.2,0,1,0 +0,3.931826,0,6.907755,7.600903,1,17.2,0,1,0 +0,3.931826,0,6.907755,7.600903,1,17.2,0,1,0 +1,3.931826,0,6.907755,7.600903,0,10.3,0,1,0 +1,3.931826,0,6.907755,7.600903,0,10.3,0,1,0 +1,3.931826,0,6.907755,7.600903,0,10.3,0,1,0 +0,3.931826,0,6.907755,7.600903,0,10.3,0,1,0 +0,3.931826,0,6.907755,7.600903,0,10.3,0,1,0 +4,3.931826,0,6.907755,7.600903,0,10.3,0,1,0 +3,3.931826,0,6.907755,7.600903,0,10.3,0,1,0 +3,3.931826,0,6.907755,7.600903,0,10.3,0,1,0 +4,3.931826,0,6.907755,7.600903,0,10.3,0,1,0 +3,3.931826,0,6.907755,7.600903,0,10.3,0,1,0 +1,0,0,5.943534,0,0,17.2,1,0,0 +2,0,0,5.943534,0,0,17.2,1,0,0 +0,0,0,5.943534,0,0,17.2,1,0,0 +0,0,0,0,0,0,27.6,0,1,0 +9,0,0,0,0,0,27.6,0,1,0 +13,0,0,0,0,0,27.6,0,1,0 +0,4.564348,0,5.160491,5.467394,0,3.4,0,1,0 +0,4.564348,0,5.160491,5.467394,0,3.4,0,1,0 +0,4.564348,0,5.160491,5.467394,0,3.4,0,0,0 +0,4.564348,0,5.160491,5.467394,0,3.4,0,0,0 +0,4.564348,0,5.160491,5.467394,0,3.4,0,0,0 +1,4.564348,0,5.160491,5.467394,0,3.4,0,0,0 +0,4.564348,0,5.160491,5.467394,0,3.4,0,0,0 +0,4.564348,0,5.160491,5.467394,0,10.57626,0,0,0 +0,4.564348,0,5.160491,5.467394,0,10.57626,0,0,0 +0,4.564348,0,0,4.420108,0,0,1,0,0 +0,4.564348,0,0,4.420108,0,0,1,0,0 +0,4.564348,0,0,4.420108,0,0,1,0,0 +0,4.564348,0,0,4.420108,0,0,1,0,0 +0,4.564348,0,0,4.420108,0,0,1,0,0 +9,0,0,5.757007,0,0,17.2,1,0,0 +6,0,0,5.757007,0,0,17.2,1,0,0 +3,0,0,5.757007,0,0,17.2,1,0,0 +5,0,0,5.757007,0,0,10.57626,1,0,0 +2,0,0,5.757007,0,0,10.57626,1,0,0 +2,0,0,5.757007,0,0,10.57626,1,0,0 +9,0,0,5.757007,0,0,17.2,1,0,0 +2,0,0,5.757007,0,0,17.2,1,0,0 +2,0,0,5.757007,0,0,17.2,1,0,0 +2,0,0,5.757007,0,0,10.57626,1,0,0 +3,0,0,5.757007,0,0,10.57626,1,0,0 +2,0,0,5.757007,0,0,10.57626,1,0,0 +2,0,0,5.470083,0,1,24.1,1,0,0 +26,0,0,5.470083,0,1,24.1,1,0,0 +11,0,0,5.470083,0,1,24.1,1,0,0 +8,0,0,5.470083,0,0,10.57626,1,0,0 +14,0,0,5.470083,0,0,10.57626,1,0,0 +5,0,0,5.470083,0,0,10.57626,1,0,0 +34,0,0,5.470083,0,1,44.8,1,0,0 +48,0,0,5.470083,0,1,44.8,1,0,0 +31,0,0,5.470083,0,1,44.8,1,0,0 +0,0,1,0,6.160541,0,3.4,1,0,0 +0,0,1,0,6.160541,0,3.4,1,0,0 +0,0,1,0,6.160541,0,3.4,1,0,0 +0,0,1,0,6.160541,0,0,0,1,0 +0,0,1,0,6.160541,0,3.4,1,0,0 +0,0,1,0,6.160541,0,3.4,1,0,0 +4,0,1,0,6.160541,0,3.4,1,0,0 +0,4.564348,0,0,6.448223,0,3.4,0,0,0 +0,4.564348,0,0,6.448223,0,3.4,0,0,0 +0,4.564348,0,0,6.448223,0,3.4,0,0,0 +0,3.258096,0,6.620073,8.006368,0,20.7,1,0,0 +1,3.258096,0,6.620073,8.006368,0,20.7,1,0,0 +0,3.258096,0,6.620073,8.006368,0,20.7,1,0,0 +0,3.258096,0,6.620073,8.006368,0,17.2,1,0,0 +0,3.258096,0,6.620073,8.006368,0,17.2,1,0,0 +0,3.258096,0,6.620073,8.006368,0,17.2,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.3,0,0,0 +1,0,1,6.109248,6.160541,0,10.3,0,0,0 +2,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +5,0,1,6.109248,6.160541,0,27.6,0,0,0 +1,0,1,6.109248,6.160541,0,27.6,0,0,0 +1,3.258096,0,5.269815,6.656109,0,24.1,0,0,0 +2,3.258096,0,5.269815,6.656109,0,24.1,0,0,0 +3,3.258096,0,5.269815,6.656109,0,24.1,0,0,0 +0,3.931826,0,6.907755,7.600903,0,13.8,0,1,0 +4,3.931826,0,6.907755,7.600903,0,13.8,0,1,0 +4,3.931826,0,6.907755,7.600903,0,13.8,0,1,0 +0,3.931826,0,6.907755,7.600903,0,3.4,1,0,0 +0,3.931826,0,6.907755,7.600903,0,3.4,1,0,0 +0,3.931826,0,6.907755,7.600903,0,3.4,1,0,0 +0,3.931826,0,6.907755,7.600903,0,10.57626,1,0,0 +0,3.931826,0,6.907755,7.600903,0,10.57626,1,0,0 +0,3.931826,0,6.907755,7.600903,0,10.57626,1,0,0 +6,3.931826,0,6.907755,7.600903,0,6.9,1,0,0 +1,3.931826,0,6.907755,7.600903,0,6.9,1,0,0 +2,3.931826,0,6.907755,7.600903,0,6.9,1,0,0 +0,3.931826,0,6.907755,7.600903,0,10.57626,0,1,0 +0,3.931826,0,6.907755,7.600903,0,10.57626,0,1,0 +0,3.931826,0,6.907755,7.600903,0,10.57626,0,1,0 +0,3.931826,0,6.907755,7.600903,0,10.57626,1,0,0 +0,3.931826,0,6.907755,7.600903,0,10.57626,1,0,0 +0,3.931826,0,6.907755,7.600903,0,3.4,1,0,0 +0,3.931826,0,6.907755,7.600903,0,3.4,1,0,0 +0,3.931826,0,6.907755,7.600903,0,3.4,1,0,0 +1,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +4,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +1,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,1,13.8,1,0,0 +8,3.258096,0,6.620073,8.006368,1,13.8,1,0,0 +4,3.258096,0,6.620073,8.006368,1,13.8,1,0,0 +5,3.258096,0,6.620073,8.006368,0,17.2,1,0,0 +4,3.258096,0,6.620073,8.006368,0,17.2,1,0,0 +4,3.258096,0,6.620073,8.006368,0,17.2,1,0,0 +5,0,1,5.703783,5.755076,0,0,1,0,0 +4,0,1,5.703783,5.755076,0,0,1,0,0 +1,0,1,5.703783,5.755076,0,0,1,0,0 +0,0,1,5.703783,5.755076,0,0,1,0,0 +1,0,1,5.703783,5.755076,0,0,1,0,0 +10,0,1,5.703783,5.755076,0,3.4,0,0,0 +0,0,1,5.703783,5.755076,0,3.4,0,0,0 +0,0,1,5.703783,5.755076,0,3.4,0,0,0 +1,0,1,5.703783,5.755076,0,3.4,0,0,0 +0,0,1,5.703783,5.755076,0,3.4,0,0,0 +5,4.564348,0,6.907755,6.959049,1,3.4,1,0,0 +4,4.564348,0,6.907755,6.959049,1,3.4,1,0,0 +6,4.564348,0,6.907755,6.959049,1,3.4,1,0,0 +13,4.564348,0,6.907755,6.959049,0,41.4,0,1,0 +11,4.564348,0,6.907755,6.959049,0,41.4,0,1,0 +13,4.564348,0,6.907755,6.959049,0,41.4,0,1,0 +1,0,1,6.109248,6.160541,0,6.9,1,0,0 +0,0,1,6.109248,6.160541,0,6.9,1,0,0 +0,0,1,6.109248,6.160541,0,6.9,1,0,0 +0,0,1,6.109248,6.160541,0,6.9,1,0,0 +0,0,1,6.109248,6.160541,0,6.9,1,0,0 +6,0,1,6.109248,6.160541,0,13.8,1,0,0 +0,0,1,6.109248,6.160541,0,13.8,1,0,0 +0,0,1,6.109248,6.160541,0,13.8,1,0,0 +0,0,1,6.109248,6.160541,0,13.8,1,0,0 +0,0,1,6.109248,6.160541,0,13.8,1,0,0 +3,0,1,6.109248,6.160541,0,20.7,1,0,0 +1,0,1,6.109248,6.160541,0,20.7,1,0,0 +2,0,1,6.109248,6.160541,0,20.7,1,0,0 +0,0,1,6.109248,6.160541,0,20.7,1,0,0 +1,0,1,6.109248,6.160541,0,20.7,1,0,0 +2,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +1,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +2,0,0,0,0,1,13.8,0,0,0 +0,0,0,0,0,1,13.8,0,0,0 +4,0,0,0,0,1,13.8,0,0,0 +0,0,0,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0 +1,0,0,0,0,0,3.4,1,0,0 +1,0,0,0,0,0,3.4,1,0,0 +0,0,0,0,0,0,3.4,1,0,0 +7,0,0,0,0,0,6.9,0,0,0 +5,0,0,0,0,0,6.9,0,0,0 +10,0,0,0,0,0,6.9,0,0,0 +1,0,0,0,0,0,10.57626,1,0,0 +4,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,3.4,1,0,0 +1,0,0,0,0,0,3.4,1,0,0 +1,0,0,0,0,0,3.4,1,0,0 +0,0,0,6.050488,0,.1442925,10.3,0,1,0 +0,0,0,6.050488,0,.1442925,10.3,0,1,0 +0,0,0,6.050488,0,.1442925,10.3,0,1,0 +9,0,0,6.050488,0,.1442925,10.3,0,1,0 +3,0,0,6.050488,0,.1442925,10.3,0,1,0 +5,0,0,6.050488,0,0,10.3,1,0,0 +0,0,0,6.050488,0,0,10.3,1,0,0 +0,0,0,6.050488,0,0,10.3,1,0,0 +14,0,0,6.050488,0,0,10.3,1,0,0 +7,0,0,6.050488,0,0,10.3,1,0,0 +5,0,0,5.88566,0,1,27.6,1,0,0 +0,0,0,5.88566,0,1,27.6,1,0,0 +2,0,0,5.88566,0,1,27.6,1,0,0 +2,0,0,5.88566,0,0,10.57626,0,0,0 +0,0,0,5.88566,0,0,10.57626,0,0,0 +0,0,0,5.88566,0,0,10.57626,0,0,0 +4,0,0,5.88566,0,0,10.57626,1,0,0 +1,0,0,5.88566,0,0,10.57626,1,0,0 +0,0,0,5.88566,0,0,10.57626,1,0,0 +1,0,0,5.88566,0,0,10.3,0,0,0 +2,0,0,5.88566,0,0,10.3,0,0,0 +3,0,0,5.88566,0,0,10.3,0,0,0 +5,0,0,5.88566,0,1,10.57626,1,0,0 +0,0,0,5.88566,0,1,10.57626,1,0,0 +0,0,0,5.88566,0,1,10.57626,1,0,0 +0,0,0,0,0,0,13.8,1,0,0 +3,0,0,0,0,0,13.8,1,0,0 +7,0,0,0,0,1,17.2,0,0,1 +18,0,0,0,0,1,17.2,0,0,1 +0,0,1,5.703783,6.160541,1,6.9,0,0,0 +0,0,1,5.703783,6.160541,1,6.9,0,0,0 +1,0,1,5.703783,6.160541,1,6.9,0,0,0 +0,0,1,5.703783,6.160541,0,10.3,0,0,0 +0,0,1,5.703783,6.160541,0,10.3,0,0,0 +0,0,1,5.703783,6.160541,0,10.3,0,0,0 +1,0,1,5.703783,6.160541,0,10.3,1,0,0 +0,0,1,5.703783,6.160541,0,10.3,1,0,0 +0,0,1,5.703783,6.160541,0,10.3,1,0,0 +1,0,0,6.704414,0,0,6.9,0,1,0 +3,0,0,6.704414,0,0,6.9,0,1,0 +0,0,0,6.704414,0,0,6.9,0,1,0 +1,0,0,6.704414,0,0,6.9,0,1,0 +0,0,0,6.704414,0,0,6.9,0,1,0 +1,0,0,6.704414,0,0,10.57626,1,0,0 +0,0,0,6.704414,0,0,10.57626,1,0,0 +2,0,0,6.704414,0,0,10.57626,1,0,0 +1,0,0,6.704414,0,0,10.57626,1,0,0 +1,0,0,6.704414,0,0,10.57626,1,0,0 +11,0,0,6.704414,0,0,10.3,0,1,0 +5,0,0,6.704414,0,0,10.3,0,1,0 +1,0,0,6.704414,0,0,10.3,0,1,0 +5,0,0,6.704414,0,0,10.3,0,1,0 +7,0,0,6.704414,0,0,10.3,0,1,0 +13,0,1,5.703783,5.755076,1,6.9,0,0,0 +3,0,1,5.703783,5.755076,1,6.9,0,0,0 +0,0,1,5.703783,5.755076,1,6.9,0,0,0 +1,0,1,5.703783,5.755076,0,6.9,0,0,1 +6,0,1,5.703783,5.755076,0,6.9,0,0,1 +6,0,1,5.703783,5.755076,0,6.9,0,0,1 +0,0,1,6.109248,6.160541,0,3.4,1,0,0 +0,0,1,6.109248,6.160541,0,3.4,1,0,0 +0,0,1,6.109248,6.160541,0,3.4,1,0,0 +1,0,1,6.109248,6.160541,.1442925,10.57626,1,0,0 +0,0,1,6.109248,6.160541,.1442925,10.57626,1,0,0 +0,0,1,6.109248,6.160541,.1442925,10.57626,1,0,0 +3,0,1,6.109248,6.160541,0,0,1,0,0 +1,0,1,6.109248,6.160541,0,0,1,0,0 +2,0,1,6.109248,6.160541,0,0,1,0,0 +1,3.258096,0,6.620073,8.006368,1,24.1,0,1,0 +2,3.258096,0,6.620073,8.006368,1,24.1,0,1,0 +2,3.258096,0,6.620073,8.006368,1,24.1,0,1,0 +0,3.258096,0,6.620073,8.006368,0,0,0,0,0 +0,3.258096,0,6.620073,8.006368,0,0,0,0,0 +4,3.258096,0,6.620073,8.006368,0,0,0,0,0 +1,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +2,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +5,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +3,0,0,5.957701,0,0,6.9,1,0,0 +1,0,0,5.957701,0,0,6.9,1,0,0 +1,0,0,5.957701,0,0,6.9,1,0,0 +0,0,0,5.957701,0,0,6.9,1,0,0 +3,0,0,5.957701,0,0,10.57626,0,0,0 +1,0,0,5.957701,0,0,10.57626,0,0,0 +3,0,0,5.957701,0,0,10.57626,0,0,0 +2,0,0,5.957701,0,0,10.57626,0,0,0 +1,0,0,5.957701,0,0,10.57626,0,0,0 +0,0,0,5.957701,0,0,10.57626,0,0,0 +3,0,0,5.957701,0,0,10.57626,0,0,0 +2,0,0,5.957701,0,0,10.57626,0,0,0 +1,0,0,5.957701,0,0,10.57626,0,0,0 +0,3.931826,0,6.907755,7.600903,0,6.9,1,0,0 +0,3.931826,0,6.907755,7.600903,0,6.9,1,0,0 +0,3.931826,0,6.907755,7.600903,0,6.9,1,0,0 +0,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +0,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +0,3.931826,0,6.907755,7.600903,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +1,0,1,6.109248,6.160541,0,10.57626,0,0,0 +7,0,1,6.109248,6.160541,1,17.2,1,0,0 +1,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +1,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +1,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +1,0,1,5.703783,5.755076,0,6.9,0,0,0 +2,0,1,5.703783,5.755076,0,6.9,0,0,0 +2,0,1,5.703783,5.755076,0,6.9,0,0,0 +1,0,1,5.703783,5.755076,0,10.3,1,0,0 +7,0,1,5.703783,5.755076,0,10.3,1,0,0 +0,0,1,5.703783,5.755076,0,10.3,1,0,0 +2,0,0,4.094345,0,0,3.4,0,0,0 +2,0,0,4.094345,0,0,3.4,0,0,0 +1,0,0,4.094345,0,0,3.4,0,0,0 +20,4.564348,0,6.49224,5.781393,0,20.7,1,0,0 +24,4.564348,0,6.49224,5.781393,0,20.7,1,0,0 +17,4.564348,0,6.49224,5.781393,0,20.7,1,0,0 +0,4.564348,0,6.49224,5.781393,0,3.4,1,0,0 +0,4.564348,0,6.49224,5.781393,0,3.4,1,0,0 +0,4.564348,0,6.49224,5.781393,0,3.4,1,0,0 +9,4.564348,0,6.49224,5.781393,0,10.57626,1,0,0 +4,4.564348,0,6.49224,5.781393,0,10.57626,1,0,0 +5,4.564348,0,6.49224,5.781393,0,10.57626,1,0,0 +1,0,0,5.482637,0,1,10.3,1,0,0 +2,0,0,5.482637,0,1,10.3,1,0,0 +2,0,0,5.482637,0,1,10.3,1,0,0 +0,3.258096,0,6.055495,7.44179,1,10.57626,0,1,0 +0,3.258096,0,6.055495,7.44179,1,10.57626,0,1,0 +0,3.258096,0,6.055495,7.44179,1,10.57626,0,1,0 +0,3.258096,0,6.055495,7.44179,1,10.57626,0,1,0 +0,3.258096,0,6.055495,7.44179,1,10.57626,0,1,0 +0,3.258096,0,6.055495,7.44179,0,10.57626,1,0,0 +0,3.258096,0,6.055495,7.44179,0,10.57626,1,0,0 +0,3.258096,0,6.055495,7.44179,0,10.57626,1,0,0 +0,3.258096,0,6.055495,7.44179,0,10.57626,1,0,0 +0,3.258096,0,6.055495,7.44179,0,10.57626,1,0,0 +0,3.258096,0,6.055495,7.44179,1,10.57626,0,1,0 +0,3.258096,0,6.055495,7.44179,1,10.57626,0,1,0 +0,3.258096,0,6.055495,7.44179,1,10.57626,0,1,0 +0,3.258096,0,6.055495,7.44179,1,10.57626,0,1,0 +0,3.258096,0,6.055495,7.44179,1,10.57626,0,1,0 +2,3.258096,0,6.055495,7.44179,0,10.3,0,0,1 +0,3.258096,0,6.055495,7.44179,0,10.3,0,0,1 +0,3.258096,0,6.055495,7.44179,0,10.3,0,0,1 +0,3.258096,0,6.055495,7.44179,0,10.3,0,0,1 +0,3.258096,0,6.055495,7.44179,0,10.3,0,0,1 +5,3.258096,0,6.055495,7.44179,0,20.7,1,0,0 +1,3.258096,0,6.055495,7.44179,0,20.7,1,0,0 +0,3.258096,0,6.055495,7.44179,0,20.7,1,0,0 +0,3.258096,0,6.055495,7.44179,0,20.7,1,0,0 +1,3.258096,0,6.055495,7.44179,0,20.7,1,0,0 +0,3.258096,0,6.055495,7.44179,1,10.57626,0,0,0 +0,3.258096,0,6.055495,7.44179,1,10.57626,0,0,0 +0,3.258096,0,6.055495,7.44179,1,10.57626,0,0,0 +0,3.258096,0,6.055495,7.44179,1,10.57626,0,0,0 +0,3.258096,0,6.055495,7.44179,1,10.57626,0,0,0 +0,3.258096,0,0,8.006368,0,0,0,0,0 +0,3.258096,0,0,8.006368,0,0,0,0,0 +0,3.258096,0,0,8.006368,0,0,0,0,0 +0,3.258096,0,6.620073,8.006368,.1442925,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,.1442925,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,.1442925,10.57626,0,0,0 +1,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +2,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +2,3.258096,0,6.620073,8.006368,0,3.4,1,0,0 +1,3.258096,0,6.620073,8.006368,.1442925,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,.1442925,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,.1442925,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,1,24.1,0,0,0 +0,3.258096,0,6.620073,8.006368,1,24.1,0,0,0 +0,3.258096,0,6.620073,8.006368,1,24.1,0,0,0 +0,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +0,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +0,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +4,0,0,0,0,0,6.9,0,0,0 +2,0,0,0,0,0,6.9,0,0,0 +6,0,0,0,0,0,6.9,0,0,0 +8,0,0,0,0,0,10.57626,0,0,0 +3,0,0,0,0,0,10.57626,0,0,0 +3,0,0,0,0,0,10.57626,0,0,0 +3,0,0,0,0,0,10.3,0,0,0 +5,0,0,0,0,0,10.3,0,0,0 +11,0,0,0,0,0,10.3,0,0,0 +5,0,0,0,0,0,10.57626,0,0,0 +10,0,0,0,0,0,10.57626,0,0,0 +5,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,0,3.4,0,1,0 +0,0,0,0,0,0,3.4,0,1,0 +2,0,0,0,0,0,3.4,0,1,0 +1,0,0,0,0,0,3.4,1,0,0 +3,0,0,0,0,0,3.4,1,0,0 +2,0,0,0,0,0,3.4,1,0,0 +1,0,0,0,0,0,10.57626,0,0,0 +4,0,0,0,0,0,10.57626,0,0,0 +1,0,0,0,0,0,10.57626,0,0,0 +3,0,0,0,0,0,10.57626,1,0,0 +3,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +3,0,0,0,0,0,10.3,0,1,0 +7,0,0,0,0,0,10.3,0,1,0 +4,0,0,0,0,0,10.3,0,1,0 +0,0,1,6.119022,5.755076,0,3.4,0,0,0 +1,0,1,6.119022,5.755076,0,3.4,0,0,0 +0,0,1,6.119022,5.755076,0,3.4,0,0,0 +0,0,1,6.119022,5.755076,0,3.4,0,0,0 +0,0,1,6.119022,5.755076,0,3.4,0,0,0 +1,0,1,6.119022,5.755076,0,6.9,0,0,0 +0,0,1,6.119022,5.755076,0,6.9,0,0,0 +0,0,1,6.119022,5.755076,0,6.9,0,0,0 +1,0,1,6.119022,5.755076,0,6.9,0,0,0 +3,0,1,6.119022,5.755076,0,6.9,0,0,0 +2,0,0,5.285232,0,0,3.4,0,0,0 +6,0,0,5.285232,0,0,3.4,0,0,0 +6,0,0,5.285232,0,0,3.4,0,0,0 +1,0,0,5.285232,0,0,3.4,0,0,0 +8,0,0,5.285232,0,0,3.4,0,0,0 +5,0,0,5.285232,0,0,3.4,0,0,0 +6,0,0,5.285232,0,0,10.57626,0,0,0 +5,0,0,5.285232,0,0,10.57626,0,0,0 +4,0,0,5.285232,0,0,10.57626,0,0,0 +24,0,0,5.285232,0,0,10.3,0,0,0 +12,0,0,5.285232,0,0,10.3,0,0,0 +9,0,0,5.285232,0,0,10.3,0,0,0 +2,3.258096,0,6.620073,8.006368,0,10.3,0,1,0 +0,3.258096,0,6.620073,8.006368,0,10.3,0,1,0 +2,3.258096,0,6.620073,8.006368,0,10.3,0,1,0 +0,3.258096,0,6.620073,8.006368,0,10.3,0,1,0 +0,3.258096,0,6.620073,8.006368,0,10.3,0,1,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +1,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,1,0,0 +1,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +6,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +8,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +5,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +9,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +3,3.258096,0,6.620073,8.006368,0,6.9,0,0,0 +1,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +1,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +0,0,1,6.313548,6.160541,0,6.9,0,0,0 +0,0,1,6.313548,6.160541,0,6.9,0,0,0 +0,0,1,6.313548,6.160541,0,6.9,0,0,0 +11,4.564348,0,6.907755,6.959049,0,0,0,0,0 +0,4.564348,0,6.907755,6.959049,0,0,0,0,0 +0,4.564348,0,6.907755,6.959049,0,0,0,0,0 +4,4.564348,0,6.907755,6.959049,0,31,0,0,0 +1,4.564348,0,6.907755,6.959049,0,31,0,0,0 +3,4.564348,0,6.907755,6.959049,0,31,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +0,3.258096,0,6.067036,7.45333,0,6.9,0,0,0 +0,3.258096,0,6.067036,7.45333,0,6.9,0,0,0 +0,3.258096,0,6.067036,7.45333,0,6.9,0,0,0 +0,3.258096,0,6.067036,7.45333,0,13.8,0,0,0 +0,3.258096,0,6.067036,7.45333,0,13.8,0,0,0 +7,3.258096,0,6.067036,7.45333,0,13.8,0,0,0 +0,3.258096,0,6.067036,7.45333,0,3.4,0,0,0 +0,3.258096,0,6.067036,7.45333,0,3.4,0,0,0 +0,3.258096,0,6.067036,7.45333,0,10.57626,0,0,0 +0,3.258096,0,6.067036,7.45333,0,10.57626,0,0,0 +0,3.258096,0,6.067036,7.45333,0,10.57626,0,0,0 +0,3.258096,0,6.067036,7.45333,0,3.4,0,0,0 +0,3.258096,0,6.067036,7.45333,0,3.4,0,0,0 +3,3.258096,0,6.067036,7.45333,0,3.4,0,0,0 +1,3.258096,0,6.067036,7.45333,0,3.4,0,0,0 +0,3.258096,0,6.067036,7.45333,0,3.4,0,0,0 +0,3.258096,0,6.067036,7.45333,0,10.57626,0,0,0 +0,3.258096,0,6.067036,7.45333,0,10.57626,0,0,0 +0,3.258096,0,6.067036,7.45333,0,10.57626,0,0,0 +0,3.258096,0,6.067036,7.45333,0,10.57626,0,0,0 +0,3.258096,0,6.067036,7.45333,0,10.57626,0,0,0 +1,3.258096,0,6.067036,7.45333,0,10.57626,0,0,0 +6,3.258096,0,6.874819,8.006368,0,3.4,1,0,0 +3,3.258096,0,6.874819,8.006368,0,3.4,1,0,0 +6,3.258096,0,6.874819,8.006368,0,3.4,1,0,0 +0,3.258096,0,6.874819,8.006368,0,17.2,1,0,0 +0,3.258096,0,6.874819,8.006368,0,17.2,1,0,0 +4,3.258096,0,6.874819,8.006368,0,17.2,1,0,0 +0,3.258096,0,6.874819,8.006368,0,3.4,1,0,0 +1,3.258096,0,6.874819,8.006368,0,3.4,1,0,0 +3,3.258096,0,6.874819,8.006368,0,3.4,1,0,0 +1,3.258096,0,6.874819,8.006368,1,10.3,1,0,0 +0,3.258096,0,6.874819,8.006368,1,10.3,1,0,0 +7,3.258096,0,6.874819,8.006368,1,10.3,1,0,0 +7,0,0,6.243312,0,0,10.3,1,0,0 +8,0,0,6.243312,0,0,10.3,1,0,0 +8,0,0,6.243312,0,0,10.3,1,0,0 +4,0,0,6.243312,0,0,10.57626,0,0,0 +4,0,0,6.243312,0,0,10.57626,0,0,0 +8,0,0,6.243312,0,0,10.57626,0,0,0 +4,0,0,6.243312,0,0,13.8,0,0,0 +4,0,0,6.243312,0,0,13.8,0,0,0 +0,0,0,6.243312,0,0,13.8,0,0,0 +1,3.258096,0,6.841616,8.006368,1,20.7,1,0,0 +3,3.258096,0,6.841616,8.006368,1,20.7,1,0,0 +1,3.258096,0,6.841616,8.006368,1,20.7,1,0,0 +1,3.258096,0,6.841616,8.006368,1,24.1,1,0,0 +1,3.258096,0,6.841616,8.006368,1,24.1,1,0,0 +4,3.258096,0,6.841616,8.006368,1,24.1,1,0,0 +1,0,0,5.267652,0,0,3.4,0,0,0 +8,0,0,5.267652,0,0,3.4,0,0,0 +4,0,0,5.267652,0,0,3.4,0,0,0 +2,0,0,5.267652,0,0,6.9,0,0,0 +0,0,0,5.267652,0,0,6.9,0,0,0 +0,0,0,5.267652,0,0,6.9,0,0,0 +0,0,0,5.267652,0,.1442925,10.57626,0,0,0 +0,0,0,5.267652,0,.1442925,10.57626,0,0,0 +2,0,0,5.267652,0,.1442925,10.57626,0,0,0 +2,0,0,5.267652,0,.1442925,10.57626,0,0,0 +2,0,0,5.267652,0,.1442925,10.57626,0,0,0 +0,0,0,5.267652,0,.1442925,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +1,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +1,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,1,0,0 +0,4.564348,0,6.907755,6.959049,1,17.2,1,0,0 +2,4.564348,0,6.907755,6.959049,1,17.2,1,0,0 +0,4.564348,0,6.907755,6.959049,1,17.2,1,0,0 +1,4.564348,0,6.907755,6.959049,.1442925,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +0,4.564348,0,6.907755,6.959049,.1442925,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,0,13.8,1,0,0 +2,4.564348,0,6.907755,6.959049,0,24.1,0,0,0 +2,0,0,6.717563,0,0,10.3,0,0,0 +2,0,0,6.717563,0,0,10.3,0,0,0 +5,0,0,6.717563,0,0,10.3,0,0,0 +2,0,0,6.717563,0,0,10.57626,0,0,0 +2,0,0,6.717563,0,0,10.57626,0,0,0 +3,0,0,6.717563,0,0,10.57626,0,0,0 +17,0,0,6.717563,0,0,6.9,0,0,0 +19,0,0,6.717563,0,0,6.9,0,0,0 +20,0,0,6.717563,0,0,6.9,0,0,0 +2,0,0,6.717563,0,0,10.57626,0,0,0 +3,0,0,6.717563,0,0,10.57626,0,0,0 +7,0,0,6.717563,0,0,10.57626,0,0,0 +4,0,0,6.717563,0,0,10.57626,0,0,0 +6,0,0,6.717563,0,0,10.57626,0,0,0 +3,0,0,6.717563,0,0,10.57626,0,0,0 +0,0,1,5.56268,5.061929,0,24.1,0,0,1 +2,0,1,5.56268,5.061929,0,24.1,0,0,1 +1,0,1,5.56268,5.061929,0,24.1,0,0,1 +0,4.564348,0,5.969474,6.020768,0,6.9,0,1,0 +0,4.564348,0,5.969474,6.020768,0,6.9,0,1,0 +2,4.564348,0,5.969474,6.020768,1,20.7,0,1,0 +0,4.564348,0,5.969474,6.020768,1,20.7,0,1,0 +0,4.564348,0,5.969474,6.020768,1,20.7,0,1,0 +0,4.564348,0,6.265776,6.31707,0,20.7,1,0,0 +5,4.564348,0,6.265776,6.31707,0,20.7,1,0,0 +0,4.564348,0,6.265776,6.31707,0,20.7,1,0,0 +6,3.258096,0,6.174827,7.561121,0,10.57626,0,0,0 +4,3.258096,0,6.174827,7.561121,0,10.57626,0,0,0 +8,3.258096,0,6.174827,7.561121,0,10.57626,0,0,0 +6,3.258096,0,6.174827,7.561121,0,10.57626,0,0,0 +11,3.258096,0,6.174827,7.561121,0,10.57626,0,0,0 +6,3.258096,0,6.174827,7.561121,0,10.57626,1,0,0 +9,3.258096,0,6.174827,7.561121,0,10.57626,1,0,0 +9,3.258096,0,6.174827,7.561121,0,10.57626,1,0,0 +3,3.258096,0,6.174827,7.561121,0,10.57626,1,0,0 +3,3.258096,0,6.174827,7.561121,0,10.57626,1,0,0 +1,3.258096,0,6.174827,7.561121,0,17.2,1,0,0 +0,3.258096,0,6.174827,7.561121,0,17.2,1,0,0 +1,3.258096,0,6.174827,7.561121,0,17.2,1,0,0 +3,3.258096,0,6.174827,7.561121,0,17.2,1,0,0 +0,3.258096,0,6.174827,7.561121,0,17.2,1,0,0 +3,3.258096,0,6.174827,7.561121,0,24.1,1,0,0 +2,3.258096,0,6.174827,7.561121,0,24.1,1,0,0 +3,3.258096,0,6.174827,7.561121,0,24.1,1,0,0 +4,3.258096,0,6.174827,7.561121,0,24.1,1,0,0 +1,3.258096,0,6.174827,7.561121,0,24.1,1,0,0 +0,3.258096,0,6.500689,7.886983,1,24.1,0,0,0 +2,3.258096,0,6.500689,7.886983,1,24.1,0,0,0 +2,3.258096,0,6.500689,7.886983,1,24.1,0,0,0 +1,3.258096,0,6.500689,7.886983,1,24.1,0,0,0 +2,3.258096,0,6.500689,7.886983,0,3.4,0,0,0 +0,3.258096,0,6.500689,7.886983,0,3.4,0,0,0 +0,3.258096,0,6.500689,7.886983,0,3.4,0,0,0 +0,3.258096,0,6.500689,7.886983,0,3.4,0,0,0 +0,3.258096,0,6.500689,7.886983,0,3.4,0,0,0 +2,3.258096,0,6.500689,7.886983,0,13.8,0,0,0 +0,3.258096,0,6.500689,7.886983,0,13.8,0,0,0 +1,3.258096,0,6.500689,7.886983,0,13.8,0,0,0 +1,3.258096,0,6.500689,7.886983,0,13.8,0,0,0 +2,3.258096,0,6.500689,7.886983,0,13.8,0,0,0 +0,3.258096,0,6.500689,7.886983,0,6.9,0,0,0 +0,3.258096,0,6.500689,7.886983,0,6.9,0,0,0 +0,3.258096,0,6.500689,7.886983,0,6.9,0,0,0 +0,3.258096,0,6.500689,7.886983,0,6.9,0,0,0 +0,3.258096,0,6.500689,7.886983,0,6.9,0,0,0 +5,0,0,6.163736,0,0,10.57626,0,0,0 +5,0,0,6.163736,0,0,10.57626,0,0,0 +3,0,0,6.163736,0,0,10.57626,0,0,0 +8,0,0,6.163736,0,0,10.57626,0,0,0 +8,0,0,6.163736,0,0,10.57626,0,0,0 +2,0,0,6.163736,0,0,10.57626,0,0,0 +2,0,0,6.163736,0,0,10.57626,0,0,0 +2,0,0,6.163736,0,0,10.57626,0,0,0 +2,0,0,6.163736,0,0,10.57626,0,0,0 +3,0,0,6.163736,0,0,10.57626,0,0,0 +2,0,0,6.163736,0,0,0,0,0,0 +2,0,0,6.163736,0,0,0,0,0,0 +2,0,0,6.163736,0,0,0,0,0,0 +1,0,0,6.163736,0,0,0,0,0,0 +3,0,0,6.163736,0,0,0,0,0,0 +8,0,0,6.163736,0,1,10.3,0,0,0 +5,0,0,6.163736,0,1,10.3,0,0,0 +4,0,0,6.163736,0,1,10.3,0,0,0 +2,0,0,6.163736,0,1,10.3,0,0,0 +2,0,0,6.163736,0,1,10.3,0,0,0 +2,0,0,6.690892,0,0,6.9,0,1,0 +0,0,0,6.690892,0,0,6.9,0,1,0 +0,0,0,6.690892,0,0,6.9,0,1,0 +2,0,0,6.690892,0,0,3.4,0,1,0 +0,0,0,6.690892,0,0,3.4,0,1,0 +1,0,0,6.690892,0,0,3.4,0,1,0 +1,0,0,6.690892,0,0,3.4,0,1,0 +2,0,0,6.690892,0,0,3.4,0,1,0 +2,0,0,6.690892,0,0,3.4,0,1,0 +3,0,0,6.690892,0,0,10.57626,0,1,0 +1,0,0,6.690892,0,0,10.57626,0,1,0 +1,0,0,6.690892,0,0,10.57626,0,1,0 +0,0,0,6.690892,0,0,10.57626,0,1,0 +0,0,0,6.690892,0,0,10.57626,0,1,0 +0,0,0,6.690892,0,0,10.57626,0,1,0 +1,0,1,6.109248,6.160541,0,10.57626,0,0,0 +2,0,1,6.109248,6.160541,0,10.57626,0,0,0 +1,0,1,6.109248,6.160541,0,10.57626,0,0,0 +2,0,1,6.109248,6.160541,0,10.57626,0,0,0 +3,0,1,6.109248,6.160541,0,10.57626,0,0,0 +3,0,1,6.109248,6.160541,0,3.4,0,0,0 +1,0,1,6.109248,6.160541,0,3.4,0,0,0 +1,0,1,6.109248,6.160541,0,3.4,0,0,0 +3,0,1,6.109248,6.160541,0,3.4,0,0,0 +1,0,1,6.109248,6.160541,0,3.4,0,0,0 +2,0,1,6.109248,6.160541,0,3.4,0,0,0 +0,0,1,6.109248,6.160541,0,3.4,0,0,0 +2,0,1,6.109248,6.160541,0,3.4,0,0,0 +1,0,1,6.109248,6.160541,0,3.4,0,0,0 +2,0,1,6.109248,6.160541,0,3.4,0,0,0 +2,0,1,6.109248,6.160541,0,17.2,0,0,0 +0,0,1,6.109248,6.160541,0,17.2,0,0,0 +1,0,1,6.109248,6.160541,0,17.2,0,0,0 +2,0,1,6.109248,6.160541,0,17.2,0,0,0 +2,0,1,6.109248,6.160541,0,17.2,0,0,0 +0,3.931826,0,6.907755,7.600903,.1442925,10.57626,1,0,0 +0,3.931826,0,6.907755,7.600903,.1442925,10.57626,1,0,0 +3,3.931826,0,6.907755,7.600903,.1442925,10.57626,1,0,0 +1,3.931826,0,6.907755,7.600903,0,0,1,0,0 +1,3.931826,0,6.907755,7.600903,0,0,1,0,0 +4,3.931826,0,6.907755,7.600903,0,0,1,0,0 +8,3.931826,0,6.907755,7.600903,0,13.8,0,1,0 +1,3.931826,0,6.907755,7.600903,0,13.8,0,1,0 +1,3.931826,0,6.907755,7.600903,0,13.8,0,1,0 +4,3.931826,0,6.907755,7.600903,.1442925,10.57626,0,0,0 +1,3.931826,0,6.907755,7.600903,.1442925,10.57626,0,0,0 +1,3.931826,0,6.907755,7.600903,.1442925,10.57626,0,0,0 +0,3.931826,0,6.907755,7.600903,0,0,1,0,0 +0,3.931826,0,6.907755,7.600903,0,0,1,0,0 +0,3.931826,0,6.907755,7.600903,0,0,1,0,0 +4,0,1,6.109248,6.160541,0,6.9,1,0,0 +8,0,1,6.109248,6.160541,0,6.9,1,0,0 +0,0,1,6.109248,6.160541,0,6.9,1,0,0 +0,0,1,6.109248,6.160541,0,6.9,1,0,0 +0,0,1,6.109248,6.160541,0,6.9,1,0,0 +5,0,1,6.109248,6.160541,1,24.1,1,0,0 +0,0,1,6.109248,6.160541,1,24.1,1,0,0 +0,0,1,6.109248,6.160541,1,24.1,1,0,0 +0,0,1,6.109248,6.160541,1,24.1,1,0,0 +0,0,1,6.109248,6.160541,1,24.1,1,0,0 +1,0,1,6.109248,6.160541,0,24.1,1,0,0 +0,0,1,6.109248,6.160541,0,24.1,1,0,0 +0,0,1,6.109248,6.160541,0,24.1,1,0,0 +2,0,1,6.109248,6.160541,0,24.1,1,0,0 +0,0,1,6.109248,6.160541,0,24.1,1,0,0 +1,3.258096,0,6.620073,8.006368,0,10.3,0,0,0 +3,3.258096,0,6.620073,8.006368,0,10.3,0,0,0 +4,3.258096,0,6.620073,8.006368,0,10.3,0,0,0 +4,0,1,5.703783,5.755076,0,10.3,1,0,0 +1,0,1,5.703783,5.755076,0,10.3,1,0,0 +3,0,1,5.703783,5.755076,0,10.3,1,0,0 +17,0,1,5.703783,5.755076,1,31,1,0,0 +17,0,1,5.703783,5.755076,1,31,1,0,0 +21,0,1,5.703783,5.755076,1,31,1,0,0 +15,0,0,4.094345,0,0,3.4,0,0,0 +2,0,0,4.094345,0,0,3.4,0,0,0 +1,0,0,4.094345,0,0,3.4,0,0,0 +3,0,0,4.094345,0,1,13.8,1,0,0 +3,0,0,4.094345,0,1,13.8,1,0,0 +6,0,0,4.094345,0,1,13.8,1,0,0 +6,0,0,4.094345,0,1,10.57626,1,0,0 +3,0,0,4.094345,0,1,10.57626,1,0,0 +8,0,0,4.094345,0,1,10.57626,1,0,0 +2,0,0,4.094345,0,0,3.4,0,0,0 +3,0,0,4.094345,0,0,3.4,0,0,0 +4,0,0,4.094345,0,0,3.4,0,0,0 +4,0,0,0,0,0,3.4,0,1,0 +4,0,0,0,0,0,3.4,0,1,0 +0,0,0,0,0,0,3.4,0,1,0 +2,0,0,0,0,.1442925,10.57626,0,0,0 +0,0,0,0,0,.1442925,10.57626,0,0,0 +3,0,0,0,0,.1442925,10.57626,0,0,0 +0,0,0,0,0,0,6.9,0,0,0 +2,0,0,0,0,0,6.9,0,0,0 +0,0,0,0,0,0,6.9,0,0,0 +1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0 +16,0,0,0,0,1,10.3,0,1,0 +9,0,0,0,0,1,10.3,0,1,0 +10,0,0,0,0,1,10.3,0,1,0 +0,0,0,5.796544,0,0,3.4,1,0,0 +1,0,0,5.796544,0,0,3.4,1,0,0 +4,0,0,5.796544,0,0,3.4,1,0,0 +5,0,0,0,0,0,17.2,0,0,0 +4,0,0,0,0,0,17.2,0,0,0 +4,0,0,0,0,0,17.2,0,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +3,0,0,0,0,0,10.57626,0,0,0 +1,0,0,0,0,0,10.57626,0,0,0 +2,0,0,0,0,1,3.4,0,0,0 +0,0,0,0,0,1,3.4,0,0,0 +1,0,0,0,0,1,3.4,0,0,0 +4,0,0,0,0,0,10.57626,0,0,0 +3,0,0,0,0,0,10.57626,0,0,0 +1,0,0,0,0,0,10.57626,0,0,0 +1,0,0,0,0,0,13.8,1,0,0 +3,0,0,0,0,0,13.8,1,0,0 +4,0,0,0,0,0,13.8,1,0,0 +4,0,0,0,0,1,10.3,1,0,0 +0,0,0,0,0,1,10.3,1,0,0 +2,0,0,0,0,1,10.3,1,0,0 +2,0,0,0,0,0,10.57626,0,1,0 +1,0,0,0,0,0,10.57626,0,1,0 +2,0,0,0,0,0,10.57626,0,1,0 +0,0,0,0,0,1,10.57626,1,0,0 +4,0,0,0,0,1,10.57626,1,0,0 +3,0,0,0,0,1,10.57626,1,0,0 +0,0,0,0,0,1,6.9,1,0,0 +9,0,0,0,0,1,6.9,1,0,0 +8,0,0,0,0,1,6.9,1,0,0 +0,0,0,0,0,0,10.3,1,0,0 +6,0,0,0,0,0,10.3,1,0,0 +3,0,0,0,0,0,10.3,1,0,0 +1,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +2,0,0,0,0,0,10.57626,1,0,0 +0,0,1,5.703783,5.755076,0,10.57626,0,0,0 +0,0,1,5.703783,5.755076,0,10.57626,0,0,0 +4,0,1,5.703783,5.755076,1,6.9,1,0,0 +5,0,1,5.703783,5.755076,1,6.9,1,0,0 +3,0,1,5.703783,5.755076,1,6.9,1,0,0 +0,0,0,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0 +0,0,0,0,0,1,10.57626,1,0,0 +0,0,0,0,0,1,10.57626,1,0,0 +0,0,0,0,0,1,10.57626,1,0,0 +0,0,0,0,0,1,10.57626,1,0,0 +0,0,0,0,0,1,10.57626,1,0,0 +0,0,0,0,0,1,10.57626,1,0,0 +0,0,0,0,0,0,3.4,1,0,0 +0,0,0,0,0,0,3.4,1,0,0 +2,0,0,0,0,0,3.4,1,0,0 +4,0,0,0,0,0,10.3,1,0,0 +0,0,0,0,0,0,10.3,1,0,0 +0,0,0,0,0,0,10.3,1,0,0 +5,0,0,0,0,0,10.3,1,0,0 +4,0,0,0,0,0,10.3,1,0,0 +3,0,0,0,0,0,10.3,1,0,0 +0,0,0,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0 +0,0,0,0,0,0,0,1,0,0 +1,0,1,5.010635,5.061929,0,31,1,0,0 +16,0,1,5.010635,5.061929,0,31,1,0,0 +16,0,1,5.010635,5.061929,0,31,1,0,0 +17,0,1,5.010635,5.061929,0,31,1,0,0 +11,0,1,5.010635,5.061929,0,31,1,0,0 +3,0,0,5.33001,0,0,20.7,1,0,0 +2,0,0,5.33001,0,0,20.7,1,0,0 +4,0,0,5.33001,0,0,20.7,1,0,0 +2,0,0,5.33001,0,0,20.7,1,0,0 +3,0,0,5.33001,0,0,20.7,1,0,0 +0,0,0,5.33001,0,0,10.57626,1,0,0 +1,0,0,5.33001,0,0,10.57626,1,0,0 +8,0,0,5.33001,0,0,10.57626,1,0,0 +0,0,0,5.33001,0,0,10.57626,1,0,0 +0,0,0,5.33001,0,0,10.57626,1,0,0 +0,0,0,5.33001,0,0,10.57626,1,0,0 +3,0,0,5.33001,0,0,10.57626,1,0,0 +7,0,0,5.33001,0,0,10.57626,1,0,0 +5,0,0,5.33001,0,0,10.57626,1,0,0 +4,0,0,5.33001,0,0,10.57626,1,0,0 +0,0,0,5.33001,0,0,10.57626,1,0,0 +5,0,0,5.33001,0,0,10.57626,1,0,0 +0,0,0,5.33001,0,0,10.57626,1,0,0 +2,0,0,5.33001,0,0,10.57626,1,0,0 +1,0,0,5.33001,0,0,10.57626,1,0,0 +1,0,0,5.33001,0,0,3.4,1,0,0 +1,0,0,5.33001,0,0,3.4,1,0,0 +0,0,0,5.33001,0,0,3.4,1,0,0 +2,0,0,5.33001,0,0,3.4,1,0,0 +2,0,0,5.33001,0,0,3.4,1,0,0 +1,0,0,5.33001,0,0,10.57626,1,0,0 +0,0,0,5.33001,0,0,10.57626,1,0,0 +0,0,0,5.33001,0,0,10.57626,1,0,0 +0,0,0,5.33001,0,0,10.57626,1,0,0 +1,0,0,5.33001,0,0,10.57626,1,0,0 +0,0,0,5.33001,0,0,10.57626,1,0,0 +0,0,0,5.33001,0,0,10.57626,1,0,0 +0,0,0,5.33001,0,0,10.57626,1,0,0 +3,0,0,5.33001,0,0,10.57626,1,0,0 +1,0,0,5.33001,0,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +4,0,1,6.109248,6.160541,0,10.57626,1,0,0 +0,0,1,6.109248,6.160541,0,10.57626,1,0,0 +1,0,1,6.109248,6.160541,0,3.4,1,0,0 +3,0,1,6.109248,6.160541,0,3.4,1,0,0 +4,0,1,6.109248,6.160541,0,3.4,1,0,0 +6,0,1,6.109248,6.160541,0,3.4,1,0,0 +5,0,1,6.109248,6.160541,0,3.4,1,0,0 +2,0,1,6.109248,6.160541,0,3.4,1,0,0 +0,0,0,4.97231,0,0,6.9,0,0,0 +3,0,0,4.97231,0,0,6.9,0,0,0 +5,0,0,4.97231,0,0,6.9,0,0,0 +0,0,0,4.97231,0,0,24.1,0,0,0 +0,0,0,4.97231,0,0,24.1,0,0,0 +4,0,0,4.97231,0,0,24.1,0,0,0 +2,0,0,4.97231,0,0,10.57626,0,0,0 +4,0,0,4.97231,0,0,10.57626,0,0,0 +3,0,0,4.97231,0,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,0,0,0,0,0 +0,0,1,6.109248,6.160541,1,10.3,0,0,0 +0,0,1,6.109248,6.160541,1,10.3,0,0,0 +0,0,1,6.109248,6.160541,1,10.3,0,0,0 +0,0,1,6.109248,6.160541,1,10.3,0,0,0 +0,0,1,6.109248,6.160541,1,10.3,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,1,10.3,1,0,0 +0,0,1,6.109248,6.160541,1,10.3,1,0,0 +0,0,1,6.109248,6.160541,1,10.3,1,0,0 +1,0,1,6.109248,6.160541,1,10.3,1,0,0 +4,0,1,6.109248,6.160541,1,10.3,1,0,0 +0,3.258096,0,6.620073,8.006368,.1442925,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,.1442925,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,.1442925,10.57626,0,0,0 +2,0,0,5.796544,0,.1442925,10.57626,1,0,0 +2,0,0,5.796544,0,.1442925,10.57626,1,0,0 +0,0,0,5.796544,0,.1442925,10.57626,1,0,0 +2,0,0,0,0,.1442925,10.57626,0,0,0 +1,0,0,0,0,.1442925,10.57626,0,0,0 +0,0,0,0,0,.1442925,10.57626,0,0,0 +0,0,0,0,0,.1442925,10.57626,0,0,0 +0,0,0,0,0,.1442925,10.57626,0,0,0 +0,0,0,0,0,.1442925,10.57626,0,0,0 +0,0,0,0,0,.1442925,10.57626,0,0,0 +0,0,0,0,0,.1442925,10.57626,0,0,0 +0,0,0,0,0,.1442925,10.57626,0,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +1,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +1,0,0,0,0,0,10.57626,1,0,0 +1,0,0,0,0,0,10.57626,1,0,0 +1,0,0,0,0,0,10.57626,1,0,0 +0,0,0,0,0,0,10.57626,1,0,0 +1,4.564348,0,6.907755,6.959049,1,17.2,0,0,0 +2,4.564348,0,6.907755,6.959049,1,17.2,0,0,0 +1,4.564348,0,6.907755,6.959049,1,17.2,0,0,0 +4,0,0,3.178054,0,0,10.57626,0,0,0 +3,0,0,3.178054,0,0,10.57626,0,0,0 +8,0,0,3.178054,0,0,10.57626,0,0,0 +11,0,0,0,0,0,10.57626,0,0,0 +7,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +2,0,0,0,0,0,10.57626,0,0,0 +3,0,0,0,0,0,10.57626,0,0,0 +4,0,0,0,0,0,3.4,0,0,0 +5,0,0,0,0,0,3.4,0,0,0 +4,0,0,0,0,0,3.4,0,0,0 +6,0,0,0,0,0,3.4,0,0,0 +0,0,0,0,0,0,3.4,0,0,0 +0,3.258096,0,0,8.006368,0,6.9,0,0,0 +0,3.258096,0,0,8.006368,0,6.9,0,0,0 +0,3.258096,0,0,8.006368,0,6.9,0,0,0 +0,3.258096,0,0,8.006368,0,6.9,0,0,0 +0,3.258096,0,0,8.006368,0,6.9,0,0,0 +0,3.258096,0,0,8.006368,0,0,0,0,0 +0,3.258096,0,0,8.006368,0,0,0,0,0 +0,3.258096,0,0,8.006368,0,0,0,0,0 +0,3.258096,0,0,8.006368,0,0,0,0,0 +0,3.258096,0,0,8.006368,0,0,0,0,0 +0,3.258096,0,0,8.006368,0,10.57626,0,0,0 +0,3.258096,0,0,8.006368,0,10.57626,0,0,0 +2,3.258096,0,0,8.006368,0,10.57626,0,0,0 +0,3.258096,0,0,8.006368,0,10.57626,0,0,0 +0,3.258096,0,0,8.006368,0,10.57626,0,0,0 +0,0,0,5.029653,0,0,3.4,0,0,0 +0,0,0,5.029653,0,0,3.4,0,0,0 +0,0,0,5.029653,0,0,3.4,0,0,0 +2,3.258096,0,6.476973,7.863267,0,10.57626,0,0,0 +0,3.258096,0,6.476973,7.863267,0,10.57626,0,0,0 +0,3.258096,0,6.476973,7.863267,0,10.57626,0,0,0 +0,3.258096,0,6.476973,7.863267,0,10.57626,0,0,0 +1,3.258096,0,6.476973,7.863267,0,10.57626,0,0,0 +4,0,1,6.109248,6.160541,0,10.57626,0,0,0 +7,0,1,6.109248,6.160541,0,10.57626,0,0,0 +13,0,1,6.109248,6.160541,0,10.57626,0,0,0 +7,0,1,6.109248,6.160541,0,10.57626,0,0,0 +9,0,1,6.109248,6.160541,0,10.57626,0,0,0 +1,3.258096,0,6.055495,7.44179,1,10.57626,0,0,0 +0,3.258096,0,6.055495,7.44179,1,10.57626,0,0,0 +0,3.258096,0,6.055495,7.44179,1,10.57626,0,0,0 +0,3.258096,0,6.055495,7.44179,1,10.57626,0,0,0 +0,3.258096,0,6.055495,7.44179,1,10.57626,0,0,0 +0,0,0,5.126342,0,0,10.57626,0,0,0 +3,0,0,5.126342,0,0,10.57626,0,0,0 +0,0,0,5.126342,0,0,10.57626,0,0,0 +5,0,0,0,0,0,10.3,0,0,0 +8,0,0,0,0,0,10.3,0,0,0 +12,0,0,0,0,0,10.3,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +1,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,0,4.668708,0,0,10.57626,0,0,0 +0,0,0,4.668708,0,0,10.57626,0,0,0 +0,0,0,4.668708,0,0,10.57626,0,0,0 +0,0,0,5.145166,0,0,3.4,0,0,0 +0,0,0,5.145166,0,0,3.4,0,0,0 +1,0,0,5.145166,0,0,3.4,0,0,0 +1,3.931826,0,6.907755,7.600903,0,10.57626,0,0,0 +0,3.931826,0,6.907755,7.600903,0,10.57626,0,0,0 +0,3.931826,0,6.907755,7.600903,0,10.57626,0,0,0 +5,0,0,4.094345,0,1,27.6,0,0,0 +4,0,0,4.094345,0,1,27.6,0,0,0 +0,0,0,4.094345,0,1,27.6,0,0,0 +0,0,0,4.094345,0,0,10.57626,0,0,0 +1,0,0,4.094345,0,0,10.57626,0,0,0 +1,0,0,4.094345,0,0,10.57626,0,0,0 +3,0,0,4.094345,0,0,10.57626,0,0,0 +2,0,0,4.094345,0,0,10.57626,0,0,0 +4,0,0,4.094345,0,0,10.57626,0,0,0 +3,0,0,4.458988,0,0,20.7,0,0,0 +3,0,0,4.458988,0,0,20.7,0,0,0 +5,0,0,4.458988,0,0,20.7,0,0,0 +4,0,0,4.458988,0,0,10.3,0,0,0 +4,0,0,4.458988,0,0,10.3,0,0,0 +2,0,0,4.458988,0,0,10.3,0,0,0 +3,0,0,0,0,.1442925,10.57626,0,0,0 +0,0,0,0,0,.1442925,10.57626,0,0,0 +0,0,0,0,0,.1442925,10.57626,0,0,0 +2,3.258096,0,6.620073,8.006368,0,13.8,0,0,0 +0,3.258096,0,6.620073,8.006368,0,13.8,0,0,0 +0,3.258096,0,6.620073,8.006368,0,13.8,0,0,0 +1,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +2,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +3,3.258096,0,6.620073,8.006368,0,0,0,0,0 +0,3.258096,0,6.620073,8.006368,0,0,0,0,0 +6,3.258096,0,6.620073,8.006368,0,0,0,0,0 +5,3.258096,0,6.620073,8.006368,0,24.1,0,0,0 +3,3.258096,0,6.620073,8.006368,0,24.1,0,0,0 +2,3.258096,0,6.620073,8.006368,0,24.1,0,0,0 +0,3.258096,0,6.620073,8.006368,0,10.3,0,0,0 +1,3.258096,0,6.620073,8.006368,0,10.3,0,0,0 +0,3.258096,0,6.620073,8.006368,0,10.3,0,0,0 +0,3.258096,0,6.784457,7.932075,0,10.57626,0,0,0 +0,3.258096,0,6.784457,7.932075,0,10.57626,0,0,0 +1,3.258096,0,6.784457,7.932075,0,10.57626,0,0,0 +3,3.258096,0,6.784457,7.932075,1,10.3,0,0,0 +1,3.258096,0,6.784457,7.932075,1,10.3,0,0,0 +2,3.258096,0,6.784457,7.932075,1,10.3,0,0,0 +0,3.258096,0,6.784457,7.932075,0,3.4,1,0,0 +1,3.258096,0,6.784457,7.932075,0,3.4,1,0,0 +0,3.258096,0,6.784457,7.932075,0,3.4,1,0,0 +0,3.258096,0,6.784457,7.932075,0,10.3,1,0,0 +0,3.258096,0,6.784457,7.932075,0,10.3,1,0,0 +1,3.258096,0,6.784457,7.932075,0,10.3,1,0,0 +1,3.258096,0,6.784457,7.932075,0,10.57626,0,0,0 +2,3.258096,0,6.784457,7.932075,0,10.57626,0,0,0 +2,3.258096,0,6.784457,7.932075,0,10.57626,0,0,0 +0,3.258096,0,6.784457,7.932075,0,10.57626,0,0,0 +1,3.258096,0,6.784457,7.932075,0,10.57626,0,0,0 +6,3.258096,0,6.784457,7.932075,0,10.57626,0,0,0 +0,0,1,5.010635,6.160541,0,0,0,0,0 +0,0,1,5.010635,6.160541,0,0,0,0,0 +0,0,1,5.010635,6.160541,0,0,0,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +0,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +1,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,1,10.3,0,0,0 +0,0,1,6.109248,6.160541,1,10.3,0,0,0 +0,0,1,6.109248,6.160541,1,10.3,0,0,0 +0,0,1,6.109248,6.160541,1,10.3,0,0,0 +4,0,1,6.109248,6.160541,1,10.3,0,0,0 +0,0,1,0,6.160541,0,10.57626,0,0,0 +0,0,1,0,6.160541,0,10.57626,0,0,0 +1,0,1,0,6.160541,0,10.57626,0,0,0 +0,0,1,0,6.160541,0,10.57626,0,0,0 +0,0,1,0,6.160541,0,10.57626,0,0,0 +0,0,1,0,6.160541,0,10.57626,0,0,0 +3,3.931826,0,6.907755,7.600903,0,10.57626,0,0,0 +2,3.931826,0,6.907755,7.600903,0,10.57626,0,0,0 +2,3.931826,0,6.907755,7.600903,0,10.57626,0,0,0 +1,3.931826,0,6.907755,7.600903,0,10.57626,0,0,0 +2,3.931826,0,6.907755,7.600903,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +4,0,1,0,5.061929,0,6.9,0,0,0 +0,0,1,0,5.061929,0,6.9,0,0,0 +0,0,1,0,5.061929,0,6.9,0,0,0 +0,0,1,0,5.061929,0,6.9,0,0,0 +1,0,1,0,5.061929,0,6.9,0,0,0 +0,0,0,6.050488,0,.1442925,10.57626,0,0,0 +0,0,0,6.050488,0,.1442925,10.57626,0,0,0 +0,0,0,6.050488,0,.1442925,10.57626,0,0,0 +0,0,0,6.050488,0,.1442925,10.57626,0,0,0 +0,0,0,6.050488,0,.1442925,10.57626,0,0,0 +0,0,0,6.050488,0,.1442925,20.7,0,0,0 +0,0,0,6.050488,0,.1442925,20.7,0,0,0 +0,0,0,6.050488,0,.1442925,20.7,0,0,0 +4,0,0,6.050488,0,.1442925,20.7,0,0,0 +9,0,0,6.050488,0,.1442925,20.7,0,0,0 +0,0,1,5.010635,6.160541,.1442925,10.57626,0,0,0 +0,0,1,5.010635,6.160541,.1442925,10.57626,0,0,0 +0,0,1,5.010635,6.160541,.1442925,10.57626,0,0,0 +1,0,0,0,0,0,13.8,0,0,0 +1,0,0,0,0,0,13.8,0,0,0 +13,0,0,0,0,0,13.8,0,0,0 +0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0 +2,0,0,0,0,0,0,0,0,0 +3,0,0,0,0,0,10.57626,0,0,0 +9,0,0,0,0,0,10.57626,0,0,0 +6,0,0,0,0,0,10.57626,0,0,0 +3,0,0,0,0,0,10.57626,0,0,0 +4,0,0,0,0,0,10.57626,0,0,0 +4,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +5,0,0,0,0,0,10.57626,0,0,0 +0,3.258096,0,6.579251,7.965546,0,10.57626,0,0,0 +1,3.258096,0,6.579251,7.965546,0,10.57626,0,0,0 +0,3.258096,0,6.579251,7.965546,0,10.57626,0,0,0 +0,4.564348,0,5.160491,5.467394,0,6.9,0,0,0 +0,4.564348,0,5.160491,5.467394,0,6.9,0,0,0 +0,4.564348,0,5.160491,5.467394,0,6.9,0,0,0 +0,4.564348,0,5.160491,5.467394,0,6.9,0,0,0 +0,4.564348,0,5.160491,5.467394,0,6.9,0,0,0 +8,0,0,4.094345,0,.1442925,10.57626,0,0,0 +2,0,0,4.094345,0,.1442925,10.57626,0,0,0 +2,0,0,4.094345,0,.1442925,10.57626,0,0,0 +2,0,0,4.094345,0,.1442925,10.57626,0,0,0 +0,4.564348,0,5.572838,6.959049,0,10.57626,0,0,0 +0,4.564348,0,5.572838,6.959049,0,10.57626,0,0,0 +0,4.564348,0,5.572838,6.959049,0,10.57626,0,0,0 +1,0,0,0,0,.1442925,10.57626,0,0,0 +4,0,0,0,0,.1442925,10.57626,0,0,0 +2,0,0,0,0,.1442925,10.57626,0,0,0 +6,0,0,0,0,1,13.8,0,0,0 +4,0,0,0,0,1,13.8,0,0,0 +5,0,0,0,0,1,13.8,0,0,0 +0,4.564348,0,6.015181,5.734873,.1442925,10.57626,0,0,0 +0,4.564348,0,6.015181,5.734873,.1442925,10.57626,0,0,0 +0,4.564348,0,6.015181,5.734873,.1442925,10.57626,0,0,0 +0,4.564348,0,6.015181,5.734873,.1442925,10.57626,0,0,0 +2,0,1,5.010635,6.160541,0,10.57626,0,0,0 +0,0,1,5.010635,6.160541,0,10.57626,0,0,0 +0,0,1,5.010635,6.160541,0,10.57626,0,0,0 +3,0,0,0,0,0,10.57626,0,0,0 +1,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +0,4.564348,0,6.709304,6.760598,.1442925,10.57626,0,0,0 +0,4.564348,0,6.709304,6.760598,.1442925,10.57626,0,0,0 +0,4.564348,0,6.709304,6.760598,.1442925,10.57626,0,0,0 +7,0,0,0,0,.1442925,10.57626,0,0,0 +3,0,0,0,0,.1442925,10.57626,0,0,0 +5,0,0,0,0,.1442925,10.57626,0,0,0 +4,0,0,0,0,.1442925,10.57626,0,0,0 +4,4.564348,0,6.907755,6.959049,0,13.8,0,0,0 +7,4.564348,0,6.907755,6.959049,0,13.8,0,0,0 +0,4.564348,0,6.907755,6.959049,0,13.8,0,0,0 +12,0,1,6.109248,6.160541,0,10.57626,0,0,0 +3,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +3,0,1,6.109248,6.160541,.1442925,10.57626,0,0,0 +1,0,1,6.109248,6.160541,.1442925,10.57626,0,0,0 +0,0,1,6.109248,6.160541,.1442925,10.57626,0,0,0 +6,0,0,4.094345,0,.1442925,10.57626,0,0,0 +3,0,0,4.094345,0,.1442925,10.57626,0,0,0 +2,0,0,4.094345,0,.1442925,10.57626,0,0,0 +6,0,0,4.094345,0,.1442925,10.57626,0,0,0 +2,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +2,0,1,6.109248,6.160541,0,10.57626,0,0,0 +8,0,1,6.109248,6.160541,.1442925,10.57626,0,0,0 +2,0,1,6.109248,6.160541,.1442925,10.57626,0,0,0 +5,0,1,6.109248,6.160541,.1442925,10.57626,0,0,0 +1,0,1,6.109248,6.160541,.1442925,10.57626,0,0,0 +1,3.258096,0,0,5.991465,0,10.57626,0,0,0 +5,3.258096,0,0,5.991465,0,10.57626,0,0,0 +2,3.258096,0,0,5.991465,0,10.57626,0,0,0 +2,0,0,6.050488,0,.1442925,10.57626,0,0,0 +2,0,0,6.050488,0,.1442925,10.57626,0,0,0 +4,0,0,6.050488,0,.1442925,10.57626,0,0,0 +2,0,0,6.050488,0,.1442925,10.57626,0,0,0 +5,0,0,6.050488,0,.1442925,10.57626,0,0,0 +0,0,0,6.050488,0,.1442925,10.57626,0,0,0 +3,0,0,6.050488,0,.1442925,10.57626,0,0,0 +1,0,0,6.050488,0,.1442925,10.57626,0,0,0 +14,0,1,5.857819,5.755076,.1442925,10.57626,0,0,0 +4,0,1,5.857819,5.755076,.1442925,10.57626,0,0,0 +1,0,1,5.857819,5.755076,.1442925,10.57626,0,0,0 +0,3.258096,0,0,8.006368,.1442925,10.57626,0,0,0 +0,3.258096,0,0,8.006368,.1442925,10.57626,0,0,0 +0,3.258096,0,0,8.006368,.1442925,10.57626,0,0,0 +0,0,1,6.109248,6.160541,.1442925,10.57626,0,0,0 +1,0,1,6.109248,6.160541,.1442925,10.57626,0,0,0 +0,0,1,6.109248,6.160541,.1442925,10.57626,0,0,0 +0,4.564348,0,3.883624,3.934917,.1442925,10.57626,0,0,0 +0,4.564348,0,3.883624,3.934917,.1442925,10.57626,0,0,0 +0,4.564348,0,3.883624,3.934917,.1442925,10.57626,0,0,0 +0,4.564348,0,3.883624,3.934917,.1442925,10.57626,0,0,0 +0,4.564348,0,3.883624,3.934917,.1442925,10.57626,0,0,0 +0,4.564348,0,3.883624,3.934917,.1442925,10.57626,0,0,0 +0,4.564348,0,3.883624,3.934917,.1442925,10.57626,0,0,0 +0,4.564348,0,3.883624,3.934917,.1442925,10.57626,0,0,0 +0,4.564348,0,3.883624,3.934917,.1442925,10.57626,0,0,0 +0,4.564348,0,3.883624,3.934917,.1442925,10.57626,0,0,0 +0,4.564348,0,3.883624,3.934917,.1442925,10.57626,0,0,0 +0,4.564348,0,3.883624,3.934917,.1442925,10.57626,0,0,0 +3,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +3,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +1,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +0,0,0,0,0,.1442925,10.57626,0,0,0 +0,0,0,0,0,.1442925,10.57626,0,0,0 +0,0,0,0,0,.1442925,10.57626,0,0,0 +4,0,1,6.109248,6.160541,0,10.57626,0,0,0 +2,0,1,6.109248,6.160541,0,10.57626,0,0,0 +4,0,1,6.109248,6.160541,0,10.57626,0,0,0 +20,4.564348,0,6.49224,5.781393,0,10.57626,0,0,0 +21,4.564348,0,6.49224,5.781393,0,10.57626,0,0,0 +28,4.564348,0,6.49224,5.781393,0,10.57626,0,0,0 +1,0,0,5.267652,0,1,10.57626,0,0,0 +9,0,0,5.267652,0,1,10.57626,0,0,0 +9,0,0,5.267652,0,1,10.57626,0,0,0 +1,0,1,6.109248,6.160541,1,10.57626,0,0,0 +1,0,1,6.109248,6.160541,1,10.57626,0,0,0 +0,0,1,6.109248,6.160541,1,10.57626,0,0,0 +0,0,1,6.109248,6.160541,1,20.7,0,0,0 +6,0,1,6.109248,6.160541,1,20.7,0,0,0 +5,0,1,6.109248,6.160541,1,20.7,0,0,0 +0,3.258096,0,5.269815,6.656109,0,0,0,0,0 +0,3.258096,0,5.269815,6.656109,0,0,0,0,0 +0,3.258096,0,5.269815,6.656109,0,0,0,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +0,0,0,0,0,0,10.57626,0,0,0 +3,0,0,0,0,.1442925,10.57626,0,0,0 +0,0,0,0,0,.1442925,10.57626,0,0,0 +0,0,0,0,0,.1442925,10.57626,0,0,0 +2,0,0,4.668708,0,0,10.57626,0,0,0 +0,0,0,4.668708,0,0,10.57626,0,0,0 +1,0,0,4.668708,0,0,10.57626,0,0,0 +1,0,0,4.668708,0,.1442925,10.57626,0,0,0 +1,0,0,4.668708,0,.1442925,10.57626,0,0,0 +3,0,0,4.668708,0,.1442925,10.57626,0,0,0 +1,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0 +0,0,0,0,0,0,0,0,0,0 +2,0,0,5.796544,0,0,10.57626,0,0,0 +2,0,0,5.796544,0,0,10.57626,0,0,0 +3,0,0,5.796544,0,0,10.57626,0,0,0 +0,0,1,5.703783,5.755076,1,27.6,0,0,0 +0,0,1,5.703783,5.755076,1,27.6,0,0,0 +0,0,1,5.703783,5.755076,1,27.6,0,0,0 +0,0,1,5.703783,5.755076,.1442925,10.57626,0,0,0 +0,0,1,5.703783,5.755076,.1442925,10.57626,0,0,0 +0,0,1,5.703783,5.755076,.1442925,10.57626,0,0,0 +1,0,1,5.703783,5.755076,0,10.57626,0,0,0 +0,0,1,5.703783,5.755076,0,10.57626,0,0,0 +1,0,1,5.703783,5.755076,0,10.57626,0,0,0 +1,3.931826,0,6.907755,7.600903,0,10.57626,0,0,0 +0,3.931826,0,6.907755,7.600903,0,10.57626,0,0,0 +2,3.931826,0,6.907755,7.600903,0,10.57626,0,0,0 +0,0,0,5.126342,0,0,10.57626,0,0,0 +1,0,0,5.126342,0,0,10.57626,0,0,0 +2,0,0,5.126342,0,0,10.57626,0,0,0 +2,0,1,6.109248,6.160541,0,10.57626,0,0,0 +1,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,0,1,6.109248,6.160541,0,10.57626,0,0,0 +0,4.564348,0,6.015181,5.734873,.1442925,10.57626,0,0,0 +0,4.564348,0,6.015181,5.734873,.1442925,10.57626,0,0,0 +0,4.564348,0,6.015181,5.734873,.1442925,10.57626,0,0,0 +13,0,0,0,0,0,10.57626,0,0,0 +11,0,0,0,0,0,10.57626,0,0,0 +12,0,0,0,0,0,10.57626,0,0,0 +10,4.564348,0,6.50354,6.569703,.1442925,10.57626,0,0,0 +10,4.564348,0,6.50354,6.569703,.1442925,10.57626,0,0,0 +6,4.564348,0,6.50354,6.569703,.1442925,10.57626,0,0,0 +1,0,0,6.050488,0,.1442925,10.57626,0,0,0 +0,0,0,6.050488,0,.1442925,10.57626,0,0,0 +2,0,0,6.050488,0,.1442925,10.57626,0,0,0 +11,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +7,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +4,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +5,0,0,0,0,0,10.57626,0,0,0 +2,0,0,0,0,0,10.57626,0,0,0 +2,0,0,0,0,0,10.57626,0,0,0 +2,0,1,6.109248,6.160541,0,17.2,0,0,0 +0,0,1,6.109248,6.160541,0,17.2,0,0,0 +0,0,1,6.109248,6.160541,0,17.2,0,0,0 +8,0,1,6.109248,6.160541,1,10.57626,0,0,0 +5,0,1,6.109248,6.160541,1,10.57626,0,0,0 +3,0,1,6.109248,6.160541,1,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +2,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,0,0,0 +0,3.931826,0,6.07507,6.560323,0,10.57626,0,0,0 +2,3.931826,0,6.07507,6.560323,0,10.57626,0,0,0 +0,3.931826,0,6.07507,6.560323,0,10.57626,0,0,0 +3,0,0,6.148468,0,0,10.57626,0,0,0 +6,0,0,6.148468,0,0,10.57626,0,0,0 +5,0,0,6.148468,0,0,10.57626,0,0,0 +8,3.258096,0,6.579251,7.965546,0,10.57626,0,0,0 +7,3.258096,0,6.579251,7.965546,0,10.57626,0,0,0 +0,3.258096,0,6.579251,7.965546,0,10.57626,0,0,0 +0,3.258096,0,0,8.006368,0,0,0,0,0 +3,3.258096,0,0,8.006368,0,0,0,0,0 +2,0,0,5.482637,0,0,10.57626,0,0,0 +1,0,0,5.482637,0,0,10.57626,0,0,0 +0,0,0,5.482637,0,0,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +0,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +2,4.564348,0,6.907755,6.959049,0,3.4,0,0,0 +0,4.564348,0,6.907755,6.959049,.1442925,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,.1442925,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,.1442925,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,0,10.57626,0,0,0 +1,4.564348,0,6.907755,6.959049,0,10.57626,0,0,0 +4,3.258096,0,0,8.006368,0,6.9,0,0,0 +1,3.258096,0,0,8.006368,0,6.9,0,0,0 +0,3.258096,0,0,8.006368,0,6.9,0,0,0 +0,0,1,6.313548,6.160541,0,10.57626,0,0,0 +0,0,1,6.313548,6.160541,0,10.57626,0,0,0 +1,0,1,6.313548,6.160541,0,10.57626,0,0,0 +5,0,1,6.313548,6.160541,0,24.1,0,0,0 +0,0,1,6.313548,6.160541,0,24.1,0,0,0 +6,0,1,6.313548,6.160541,0,24.1,0,0,0 +8,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +4,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +2,3.258096,0,6.620073,8.006368,0,10.57626,0,0,0 +2,0,1,5.703783,6.160541,0,10.57626,0,0,0 +0,0,1,5.703783,6.160541,0,10.57626,0,0,0 +0,0,1,5.703783,6.160541,0,10.57626,0,0,0 +12,0,0,0,0,0,17.2,0,0,0 +9,0,0,0,0,0,17.2,0,0,0 +1,0,0,0,0,0,17.2,0,0,0 +20,4.564348,0,6.49224,5.781393,0,10.57626,0,0,0 +15,4.564348,0,6.49224,5.781393,0,10.57626,0,0,0 +12,4.564348,0,6.49224,5.781393,0,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,.1442925,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,.1442925,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,.1442925,10.57626,0,0,0 +1,4.564348,0,6.232605,6.2643,.1442925,10.57626,0,0,0 +0,4.564348,0,6.232605,6.2643,.1442925,10.57626,0,0,0 +0,4.564348,0,6.232605,6.2643,.1442925,10.57626,0,0,0 +25,0,1,6.109248,6.160541,.1442925,10.57626,0,0,0 +16,0,1,6.109248,6.160541,.1442925,10.57626,0,0,0 +3,0,0,0,0,.1442925,10.57626,0,0,0 +8,0,0,0,0,.1442925,10.57626,0,0,0 +0,4.564348,0,4.393214,4.444507,.1442925,10.57626,0,0,0 +0,4.564348,0,4.393214,4.444507,.1442925,10.57626,0,0,0 +0,4.564348,0,0,6.679335,.1442925,10.57626,0,0,0 +0,4.564348,0,0,6.679335,.1442925,10.57626,0,0,0 +6,0,0,0,0,.1442925,10.57626,0,0,0 +0,0,1,6.109248,6.160541,.1442925,10.57626,0,0,0 +0,0,1,6.109248,6.160541,.1442925,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,.1442925,10.57626,0,0,0 +2,4.564348,0,6.907755,6.959049,.1442925,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,.1442925,10.57626,0,0,0 +9,0,0,0,0,.1442925,10.57626,0,0,0 +3,0,0,0,0,.1442925,10.57626,0,0,0 +2,0,0,0,0,.1442925,10.57626,0,0,0 +1,0,0,0,0,.1442925,10.57626,0,0,0 +0,0,0,0,0,.1442925,10.57626,0,0,0 +0,0,0,0,0,.1442925,10.57626,0,0,0 +0,0,0,0,0,.1442925,10.57626,0,0,0 +0,0,0,0,0,.1442925,10.57626,0,0,0 +2,0,1,5.703783,5.755076,.1442925,10.57626,0,0,0 +1,0,1,5.703783,5.755076,.1442925,10.57626,0,0,0 +14,4.564348,0,6.907755,6.959049,.1442925,10.57626,0,0,0 +14,4.564348,0,6.907755,6.959049,.1442925,10.57626,0,0,0 +14,4.564348,0,6.907755,6.959049,.1442925,10.57626,0,0,0 +1,0,1,5.010635,6.160541,.1442925,10.57626,0,0,0 +1,0,1,5.010635,6.160541,.1442925,10.57626,0,0,0 +0,0,1,5.010635,6.160541,.1442925,10.57626,0,0,0 +0,0,1,6.109248,6.160541,.1442925,10.57626,0,0,0 +1,0,1,6.109248,6.160541,.1442925,10.57626,0,0,0 +5,0,1,5.703783,6.160541,.1442925,10.57626,0,0,0 +0,0,1,5.703783,6.160541,.1442925,10.57626,0,0,0 +9,0,0,4.094345,0,.1442925,10.57626,0,0,0 +5,0,0,4.094345,0,.1442925,10.57626,0,0,0 +15,0,0,0,0,.1442925,10.57626,0,0,0 +6,0,0,0,0,.1442925,10.57626,0,0,0 +0,3.258096,0,0,8.006368,.1442925,10.57626,0,0,0 +0,3.258096,0,0,8.006368,.1442925,10.57626,0,0,0 +16,4.564348,0,6.907755,6.959049,.1442925,10.57626,0,0,0 +0,4.564348,0,6.907755,6.959049,.1442925,10.57626,0,0,0 +3,0,1,6.109248,6.160541,.1442925,10.57626,0,0,0 +0,0,1,6.109248,6.160541,.1442925,10.57626,0,0,0 +0,0,1,6.109248,6.160541,.1442925,10.57626,0,0,0 +9,0,1,5.857819,5.755076,.1442925,10.57626,0,0,0 +0,0,1,5.857819,5.755076,.1442925,10.57626,0,0,0 +2,0,1,6.109248,6.160541,.1442925,10.57626,0,0,0 +0,0,1,6.109248,6.160541,.1442925,10.57626,0,0,0 +12,0,0,5.33001,0,.1442925,10.57626,0,0,0 +2,0,0,5.33001,0,.1442925,10.57626,0,0,0 +0,0,1,5.010635,6.160541,.1442925,10.57626,0,0,0 +0,0,1,5.010635,6.160541,.1442925,10.57626,0,0,0 +8,0,0,6.264845,0,.1442925,10.57626,0,0,0 +10,0,0,6.264845,0,.1442925,10.57626,0,0,0 +7,0,0,5.259992,0,.1442925,10.57626,0,0,0 +7,0,0,6.050488,0,.1442925,10.57626,0,0,0 +1,0,0,6.050488,0,.1442925,10.57626,0,0,0 +1,0,0,5.029653,0,.1442925,10.57626,0,0,0 +21,3.258096,0,5.269815,6.656109,.1442925,10.57626,0,0,0 +0,4.564348,0,3.883624,3.934917,.1442925,10.57626,0,0,0 +3,0,0,4.668708,0,.1442925,10.57626,0,0,0 +5,3.258096,0,6.620073,8.006368,.1442925,10.57626,0,0,0 +8,3.258096,0,6.620073,8.006368,.1442925,10.57626,0,0,0 +8,0,1,5.703783,5.755076,.1442925,10.57626,0,0,0 +11,0,0,0,0,.1442925,10.57626,0,0,0 +0,0,0,5.126342,0,.1442925,10.57626,0,0,0 +6,0,0,0,0,.1442925,10.57626,0,0,0 +20,0,0,0,0,.1442925,10.57626,0,0,0 +2,3.258096,0,6.784457,7.932075,.1442925,10.57626,0,0,0 +1,3.258096,0,6.784457,7.932075,.1442925,10.57626,0,0,0 +3,3.931826,0,0,7.37149,.1442925,10.57626,0,0,0 +0,0,1,6.109248,6.160541,.1442925,10.57626,0,0,0 +5,3.258096,0,6.476973,7.863267,.1442925,10.57626,0,0,0 +0,3.258096,0,6.507277,7.893572,.1442925,10.57626,0,0,0 +1,4.564348,0,3.883624,3.934917,.1442925,10.57626,0,0,0 +0,3.258096,0,6.262826,7.649121,.1442925,10.57626,0,0,0 +2,0,0,5.377498,0,.1442925,10.57626,0,0,0 +0,0,0,5.377498,0,.1442925,10.57626,0,0,0 +8,3.258096,0,6.874819,8.006368,.1442925,10.57626,0,0,0 +8,3.258096,0,5.156178,6.542472,.1442925,10.57626,0,0,0 +6,3.258096,0,6.620073,8.006368,.1442925,10.57626,0,0,0 diff --git a/statsmodels/datasets/randhie/src/randdesc.txt b/statsmodels/datasets/randhie/src/randdesc.txt new file mode 100644 index 0000000..d312859 --- /dev/null +++ b/statsmodels/datasets/randhie/src/randdesc.txt @@ -0,0 +1,49 @@ + storage display value +variable name type format label variable label +-------------------------------------------------------------------- +plan float %9.0g hie plan number +site float %9.0g site +coins float %9.0g coinsurance -- medical +tookphys float %9.0g took baseline physical +year float %9.0g study year +zper float %9.0g person id, leading digit is sit +black float %9.0g black +income float %9.0g income based on annual income r +xage float %9.0g age that year +female float %9.0g female +educdec float %9.0g education of decision maker +time float %9.0g time eligible during the year +outpdol float %9.0g outpatient exp. excl. ment and +drugdol float %9.0g drugs purchased, outpatient +suppdol float %9.0g supplies purchased, outpatient +mentdol float %9.0g psychotherapy exp., outpatient +inpdol float %9.0g inpatient exp., facilities & md +meddol float %9.0g medical exp excl outpatient men +totadm float %9.0g number of hosp. admissions +inpmis float %9.0g missing any inpatient charges +mentvis float %9.0g number psychotherapy visits +mdvis float %9.0g number face-to-fact md visits +notmdvis float %9.0g number face-to-face, not-md vis +num float %9.0g family size +mhi float %9.0g mental health index -- baselin +disea float %9.0g count of chronic diseases -- ba +physlm float %9.0g physical limitations -- baselin +ghindx float %9.0g general health index -- baselin +mdeoff float %9.0g maximum expenditure offer +pioff float %9.0g participation incentive +child float %9.0g child +fchild float %9.0g female child +lfam float %9.0g log of family size +lpi float %9.0g log participation incentive +idp float %9.0g individual deductible plan +logc float %9.0g log(coinsurance+1) +fmde float %9.0g function of mdeoff +hlthg float %9.0g good health +hlthf float %9.0g fair health +hlthp float %9.0g poor health +xghindx float %9.0g ghi with imputation +linc float %9.0g +lnum float %9.0g +lnmeddol float %9.0g +binexp float %9.0g + diff --git a/statsmodels/datasets/randhie/src/randhie.csv b/statsmodels/datasets/randhie/src/randhie.csv new file mode 100644 index 0000000..698d767 --- /dev/null +++ b/statsmodels/datasets/randhie/src/randhie.csv @@ -0,0 +1,20191 @@ +plan,site,coins,tookphys,year,zper,black,income,xage,female,educdec,time,outpdol,drugdol,suppdol,mentdol,inpdol,meddol,totadm,inpmis,mentvis,mdvis,notmdvis,num,mhi,disea,physlm,ghindx,mdeoff,pioff,child,fchild,lfam,lpi,idp,logc,fmde,hlthg,hlthf,hlthp,xghindx,linc,lnum,lnmeddol,binexp +3,1,100,0,1,125024,1,13748.76,42.87748,0,12,1,0,8.451119,0,0,0,8.451119,0,0,0,0,0,4,95,13.73189,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,65.2078,9.528776,1.386294,2.134299,1 +3,1,100,0,2,125024,1,13748.76,43.87748,0,12,1,48.78706,13.28841,0,0,0,62.07547,0,0,0,2,0,4,95,13.73189,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,65.2078,9.528776,1.386294,4.128351,1 +3,1,100,0,3,125024,1,13748.76,44.87748,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,95,13.73189,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,65.2078,9.528776,1.386294,,0 +3,1,100,0,4,125024,1,13748.76,45.87748,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,95,13.73189,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,65.2078,9.528776,1.386294,,0 +3,1,100,0,5,125024,1,13748.76,46.87748,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,95,13.73189,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,65.2078,9.528776,1.386294,,0 +3,1,100,0,1,125025,1,13748.76,16.59138,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,93.8,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,0,0,0,76.34753,9.528776,1.386294,,0 +3,1,100,0,2,125025,1,13748.76,17.59138,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,93.8,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,0,0,0,76.34753,9.528776,1.386294,,0 +3,1,100,0,3,125025,1,13748.76,18.59138,0,12,1,7.371007,0,0,0,0,7.371007,0,0,0,1,0,4,93.8,13.73189,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,76.34753,9.528776,1.386294,1.997554,1 +3,1,100,0,4,125025,1,13748.76,19.59138,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,93.8,13.73189,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,76.34753,9.528776,1.386294,,0 +3,1,100,0,5,125025,1,13748.76,20.59138,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,93.8,13.73189,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,76.34753,9.528776,1.386294,,0 +3,1,100,0,1,125026,1,13748.76,14.49966,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,98.7,13.73189,0,,1000,1000,1,1,1.386294,6.907755,1,0,0,0,0,0,71.01083,9.528776,1.386294,,0 +3,1,100,0,2,125026,1,13748.76,15.49966,1,12,1,13.47709,14.28571,0,0,0,27.7628,0,0,0,1,0,4,98.7,13.73189,0,,1000,1000,1,1,1.386294,6.907755,1,0,0,0,0,0,71.01083,9.528776,1.386294,3.323697,1 +3,1,100,0,3,125026,1,13748.76,16.49966,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,98.7,13.73189,0,,1000,1000,1,1,1.386294,6.907755,1,0,0,0,0,0,71.01083,9.528776,1.386294,,0 +3,1,100,0,4,125026,1,13748.76,17.49966,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,98.7,13.73189,0,,1000,1000,1,1,1.386294,6.907755,1,0,0,0,0,0,71.01083,9.528776,1.386294,,0 +3,1,100,0,5,125026,1,13748.76,18.49966,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,98.7,13.73189,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,71.01083,9.528776,1.386294,,0 +3,1,100,0,1,125027,1,13748.76,43.14305,1,12,1,60.6596,42.93286,0,0,0,103.5925,0,0,0,6,0,4,96.3,13.73189,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,66.84741,9.528776,1.386294,4.640465,1 +3,1,100,0,2,125027,1,13748.76,44.14305,1,12,1,242.1186,11.07817,37.38544,0,0,290.5822,0,0,0,2,1,4,96.3,13.73189,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,66.84741,9.528776,1.386294,5.671886,1 +3,1,100,0,3,125027,1,13748.76,45.14305,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,96.3,13.73189,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,66.84741,9.528776,1.386294,,0 +3,1,100,0,4,125027,1,13748.76,46.14305,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,96.3,13.73189,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,66.84741,9.528776,1.386294,,0 +3,1,100,0,5,125027,1,13748.76,47.14305,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,96.3,13.73189,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,66.84741,9.528776,1.386294,,0 +1,1,0,1,1,125057,1,5107.692,13.54962,1,12,1,12.79001,0,0,0,382.9268,395.7168,1,0,0,1,0,3,74.36826,13.73189,0,,450,450,1,1,1.098612,6.109248,1,0,0,1,0,0,80.28564,8.538699,1.098612,5.980699,1 +1,1,0,1,2,125057,1,5107.692,14.54962,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,74.36826,13.73189,0,,450,450,1,1,1.098612,6.109248,1,0,0,1,0,0,80.28564,8.538699,1.098612,,0 +1,1,0,1,3,125057,1,5107.692,15.54962,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,74.36826,13.73189,0,,450,450,1,1,1.098612,6.109248,1,0,0,1,0,0,80.28564,8.538699,1.098612,,0 +1,1,0,1,4,125057,1,5107.692,16.54962,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,74.36826,13.73189,0,,450,450,1,1,1.098612,6.109248,1,0,0,1,0,0,80.28564,8.538699,1.098612,,0 +1,1,0,1,5,125057,1,5107.692,17.54962,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,74.36826,13.73189,0,,450,450,1,1,1.098612,6.109248,1,0,0,1,0,0,80.28564,8.538699,1.098612,,0 +1,1,0,1,1,125058,1,5107.692,15.28268,1,12,1,18.4414,0,0,0,0,18.4414,0,0,0,1,0,3,61.1,13,1,,450,450,1,1,1.098612,6.109248,1,0,0,1,0,0,63.74599,8.538699,1.098612,2.914598,1 +1,1,0,1,2,125058,1,5107.692,16.28268,1,12,1,0,2.39521,0,0,0,2.39521,0,0,0,0,0,3,61.1,13,1,,450,450,1,1,1.098612,6.109248,1,0,0,1,0,0,63.74599,8.538699,1.098612,.8734707,1 +1,1,0,1,3,125058,1,5107.692,17.28268,1,12,1,4.955401,17.09613,0,0,0,22.05154,0,0,0,1,0,3,61.1,13,1,,450,450,1,1,1.098612,6.109248,1,0,0,1,0,0,63.74599,8.538699,1.098612,3.093382,1 +1,1,0,1,4,125058,1,5107.692,18.28268,1,12,1,29.8302,25.7687,0,0,0,55.5989,0,0,0,2,0,3,61.1,13,1,,450,450,0,0,1.098612,6.109248,1,0,0,1,0,0,63.74599,8.538699,1.098612,4.018163,1 +1,1,0,1,5,125058,1,5107.692,19.28268,1,12,1,122.0025,11.75852,0,0,0,133.761,0,0,0,4,0,3,61.1,13,1,,450,450,0,0,1.098612,6.109248,1,0,0,1,0,0,63.74599,8.538699,1.098612,4.896055,1 +1,1,0,1,1,125059,1,5107.692,38.83094,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,81.1,17.4,0,,450,450,0,0,1.098612,6.109248,1,0,0,1,0,0,68.12782,8.538699,1.098612,,0 +1,1,0,1,2,125059,1,5107.692,39.83094,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,81.1,17.4,0,,450,450,0,0,1.098612,6.109248,1,0,0,1,0,0,68.12782,8.538699,1.098612,,0 +1,1,0,1,3,125059,1,5107.692,40.83094,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,81.1,17.4,0,,450,450,0,0,1.098612,6.109248,1,0,0,1,0,0,68.12782,8.538699,1.098612,,0 +1,1,0,1,4,125059,1,5107.692,41.83094,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,81.1,17.4,0,,450,450,0,0,1.098612,6.109248,1,0,0,1,0,0,68.12782,8.538699,1.098612,,0 +1,1,0,1,5,125059,1,5107.692,42.83094,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,81.1,17.4,0,,450,450,0,0,1.098612,6.109248,1,0,0,1,0,0,68.12782,8.538699,1.098612,,0 +1,1,0,0,1,125075,1,1,24.60233,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,80,4.3,0,,150,0,0,0,0,0,1,0,0,0,0,0,71.88312,.6931472,0,,0 +1,1,0,0,2,125075,1,1,25.60233,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,80,4.3,0,,150,0,0,0,0,0,1,0,0,0,0,0,71.88312,.6931472,0,,0 +1,1,0,0,3,125075,1,1,26.60233,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,80,4.3,0,,150,0,0,0,0,0,1,0,0,0,0,0,71.88312,.6931472,0,,0 +11,1,0,0,1,125126,1,5899.918,15.74538,1,9,1,0,0,0,0,0,0,0,0,0,0,0,4,61.1,13,0,,0,406,1,1,1.386294,6.006353,0,0,0,1,0,0,59.67566,8.682863,1.386294,,0 +11,1,0,0,2,125126,1,5899.918,16.74538,1,9,1,0,0,0,0,0,0,0,0,0,0,0,4,61.1,13,0,,0,406,1,1,1.386294,6.006353,0,0,0,1,0,0,59.67566,8.682863,1.386294,,0 +11,1,0,0,3,125126,1,5899.918,17.74538,1,9,1,0,0,0,0,0,0,0,0,0,0,0,4,61.1,13,0,,0,406,1,1,1.386294,6.006353,0,0,0,1,0,0,59.67566,8.682863,1.386294,,0 +11,1,0,1,1,125127,1,5899.918,60.48734,1,9,1,5.889281,0,0,0,0,5.889281,0,0,0,1,0,4,71.6,4.3,0,,0,406,0,0,1.386294,6.006353,0,0,0,1,0,0,63.0108,8.682863,1.386294,1.773134,1 +11,1,0,1,2,125127,1,5899.918,61.48734,1,9,1,0,0,0,0,0,0,0,0,0,0,0,4,71.6,4.3,0,,0,406,0,0,1.386294,6.006353,0,0,0,1,0,0,63.0108,8.682863,1.386294,,0 +11,1,0,1,3,125127,1,5899.918,62.48734,1,9,1,0,0,0,0,0,0,0,0,0,0,0,4,71.6,4.3,0,,0,406,0,0,1.386294,6.006353,0,0,0,1,0,0,63.0108,8.682863,1.386294,,0 +11,1,0,0,1,125128,1,5899.918,14.59001,1,9,1,0,0,0,0,0,0,0,0,0,0,0,4,63.5,13,0,,0,406,1,1,1.386294,6.006353,0,0,0,1,0,0,59.67566,8.682863,1.386294,,0 +11,1,0,0,2,125128,1,5899.918,15.59001,1,9,1,0,0,0,0,0,0,0,0,0,0,0,4,63.5,13,0,,0,406,1,1,1.386294,6.006353,0,0,0,1,0,0,59.67566,8.682863,1.386294,,0 +11,1,0,0,3,125128,1,5899.918,16.59001,1,9,1,0,0,0,0,0,0,0,0,0,0,0,4,63.5,13,0,,0,406,1,1,1.386294,6.006353,0,0,0,1,0,0,59.67566,8.682863,1.386294,,0 +11,1,0,1,1,125129,1,5899.918,59.27721,0,4,1,66.19553,67.13781,0,0,0,133.3333,0,0,0,1,0,4,71.6,13,0,,0,406,0,0,1.386294,6.006353,0,0,0,1,0,0,61.37119,8.682863,1.386294,4.892852,1 +11,1,0,1,2,125129,1,5899.918,60.27721,0,4,1,0,61.45552,0,0,0,61.45552,0,0,0,0,0,4,71.6,13,0,,0,406,0,0,1.386294,6.006353,0,0,0,1,0,0,61.37119,8.682863,1.386294,4.118314,1 +11,1,0,1,3,125129,1,5899.918,61.27721,0,4,1,695.5725,62.11302,5.405406,0,0,763.0909,0,0,0,7,32,4,71.6,13,0,,0,406,0,0,1.386294,6.006353,0,0,0,1,0,0,61.37119,8.682863,1.386294,6.637377,1 +11,1,0,1,1,125133,1,3596.154,14.22313,0,12,1,11.99041,7.284173,0,0,0,19.27458,0,0,0,1,0,3,92.6,4.3,0,,0,0,1,0,1.098612,0,0,0,0,0,0,0,75.73199,8.187899,1.098612,2.958787,1 +11,1,0,1,2,125133,1,3596.154,15.22313,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,92.6,4.3,0,,0,0,1,0,1.098612,0,0,0,0,0,0,0,75.73199,8.187899,1.098612,,0 +11,1,0,1,3,125133,1,3596.154,16.22313,0,12,1,28.42893,0,0,0,0,28.42893,0,0,0,2,0,3,92.6,4.3,0,,0,0,1,0,1.098612,0,0,0,0,0,0,0,75.73199,8.187899,1.098612,3.347407,1 +11,1,0,1,1,125134,1,3596.154,45.42916,0,7,1,455.9352,2.817746,0,0,0,458.753,0,0,0,8,0,3,83.2,0,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,67.10523,8.187899,1.098612,6.128512,1 +11,1,0,1,2,125134,1,3596.154,46.42916,0,7,1,94.38663,0,40.40526,0,0,134.7919,0,0,0,1,1,3,83.2,0,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,67.10523,8.187899,1.098612,4.903732,1 +11,1,0,1,3,125134,1,3596.154,47.42916,0,7,1,37.90524,0,0,0,1239.302,1277.207,1,0,0,2,0,3,83.2,0,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,67.10523,8.187899,1.098612,7.152431,1 +11,1,0,1,1,125135,1,3596.154,37.11157,1,12,1,5.995204,4.586331,0,0,0,10.58153,0,0,0,1,0,3,68.4,8.7,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,74.57648,8.187899,1.098612,2.35911,1 +11,1,0,1,2,125135,1,3596.154,38.11157,1,12,1,15.33406,14.0471,47.82585,0,0,77.20701,0,0,0,1,1,3,68.4,8.7,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,74.57648,8.187899,1.098612,4.34649,1 +11,1,0,1,3,125135,1,3596.154,39.11157,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,68.4,8.7,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,74.57648,8.187899,1.098612,,0 +2,1,100,0,1,125152,1,11468.98,55.32923,1,11,1,38.28033,11.23675,32.61484,0,0,82.13192,0,0,0,4,0,2,82.1,17.4,0,,900,900,0,0,.6931472,6.802395,1,0,0,1,0,0,60.89297,9.347488,.6931472,4.408327,1 +2,1,100,0,2,125152,1,11468.98,56.32923,1,11,1,120.4852,17.69811,0,0,0,138.1833,0,0,0,5,0,2,82.1,17.4,0,,900,900,0,0,.6931472,6.802395,1,0,0,1,0,0,60.89297,9.347488,.6931472,4.928581,1 +2,1,100,0,3,125152,1,11468.98,57.32923,1,11,1,126.5356,42.39312,52.37838,0,944.2113,1165.518,1,0,0,14,0,2,82.1,17.4,0,,900,900,0,0,.6931472,6.802395,1,0,0,1,0,0,60.89297,9.347488,.6931472,7.060921,1 +2,1,100,0,1,125153,1,11468.98,59.01711,0,7,1,20.61249,5.624264,0,0,0,26.23675,0,0,0,3,0,2,87.4,13,0,,900,900,0,0,.6931472,6.802395,1,0,0,1,0,0,59.25336,9.347488,.6931472,3.267161,1 +2,1,100,0,2,125153,1,11468.98,60.01711,0,7,1,18.86792,0,0,0,0,18.86792,0,0,0,3,0,2,87.4,13,0,,900,900,0,0,.6931472,6.802395,1,0,0,1,0,0,59.25336,9.347488,.6931472,2.937463,1 +2,1,100,0,3,125153,1,11468.98,61.01711,0,7,1,80.09828,3.759214,45.18919,0,0,129.0467,0,0,0,5,0,2,87.4,13,0,,900,900,0,0,.6931472,6.802395,1,0,0,1,0,0,59.25336,9.347488,.6931472,4.860174,1 +7,1,25,0,1,125159,0,7586.229,10.00411,1,12,1,4.711425,2.915194,0,0,0,7.626619,0,0,0,1,0,5,74.36826,13.73189,0,,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,0,0,0,78.48192,8.934221,1.609438,2.031645,1 +7,1,25,0,2,125159,0,7586.229,11.00411,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,0,0,0,78.48192,8.934221,1.609438,,0 +7,1,25,0,3,125159,0,7586.229,12.00411,1,12,1,32.92383,28.55037,0,0,0,61.4742,0,0,0,5,0,5,74.36826,13.73189,0,,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,0,0,0,78.48192,8.934221,1.609438,4.118618,1 +7,1,25,0,4,125159,0,7586.229,13.00411,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,0,0,0,78.48192,8.934221,1.609438,,0 +7,1,25,0,5,125159,0,7586.229,14.00411,1,12,1,10.42101,0,0,0,0,10.42101,0,0,0,1,0,5,74.36826,13.73189,0,,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,0,0,0,78.48192,8.934221,1.609438,2.343824,1 +7,1,25,0,1,125160,0,7586.229,32.61328,0,13,1,17.66784,0,0,191.4016,0,17.66784,0,0,16,0,0,5,60,0,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,77.5937,8.934221,1.609438,2.871746,1 +7,1,25,0,2,125160,0,7586.229,33.61328,0,13,1,0,0,0,0,0,0,0,0,0,0,0,5,60,0,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,77.5937,8.934221,1.609438,,0 +7,1,25,0,3,125160,0,7586.229,34.61328,0,13,1,9.336609,7.174447,0,0,0,16.51106,0,0,0,2,0,5,60,0,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,77.5937,8.934221,1.609438,2.80403,1 +7,1,25,0,4,125160,0,7586.229,35.61328,0,13,1,5.469462,4.010939,0,0,0,9.480401,0,0,0,1,0,5,60,0,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,77.5937,8.934221,1.609438,2.249227,1 +7,1,25,0,5,125160,0,7586.229,36.61328,0,13,1,0,0,0,0,0,0,0,0,0,0,0,5,60,0,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,77.5937,8.934221,1.609438,,0 +7,1,25,0,1,125161,0,7586.229,32.50377,1,12,1,15.90106,51.88457,0,459.364,0,67.78563,0,0,30,2,0,5,40,26.1,1,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,79.16502,8.934221,1.609438,4.21635,1 +7,1,25,0,2,125161,0,7586.229,33.50377,1,12,1,70.08086,50.88949,0,0,5875.984,5996.954,2,0,0,1,11,5,40,26.1,1,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,79.16502,8.934221,1.609438,8.699007,1 +7,1,25,0,3,125161,0,7586.229,34.50377,1,12,1,52.08845,105.9165,0,157.2482,0,158.0049,0,0,9,6,0,5,40,26.1,1,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,79.16502,8.934221,1.609438,5.062626,1 +7,1,25,0,4,125161,0,7586.229,35.50377,1,12,1,27.34731,3.696445,0,18.23154,0,31.04376,0,0,1,2,0,5,40,26.1,1,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,79.16502,8.934221,1.609438,3.435398,1 +7,1,25,0,5,125161,0,7586.229,36.50377,1,12,1,10.42101,32.97207,0,264.6936,0,43.39308,0,0,12,1,0,5,40,26.1,1,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,79.16502,8.934221,1.609438,3.7703,1 +7,1,25,0,1,125162,0,7586.229,3.720739,0,12,1,35.33569,16.93168,0,29.44641,0,52.26737,0,0,2,5,0,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,80.76491,8.934221,1.609438,3.956372,1 +7,1,25,0,2,125162,0,7586.229,4.720739,0,12,1,16.71159,1.832884,0,0,0,18.54447,0,0,0,3,0,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,80.76491,8.934221,1.609438,2.920172,1 +7,1,25,0,3,125162,0,7586.229,5.720739,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,80.76491,8.934221,1.609438,,0 +7,1,25,0,4,125162,0,7586.229,6.720739,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,80.76491,8.934221,1.609438,,0 +7,1,25,0,5,125162,0,7586.229,7.720739,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,80.76491,8.934221,1.609438,,0 +7,1,25,0,1,125163,0,7586.229,8.309377,0,12,1,22.37927,3.533569,0,0,0,25.91284,0,0,0,4,0,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,78.9959,8.934221,1.609438,3.254739,1 +7,1,25,0,2,125163,0,7586.229,9.309377,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,78.9959,8.934221,1.609438,,0 +7,1,25,0,3,125163,0,7586.229,10.30938,0,12,1,22.60442,3.847666,0,0,0,26.45209,0,0,0,1,0,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,78.9959,8.934221,1.609438,3.275335,1 +7,1,25,0,4,125163,0,7586.229,11.30938,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,78.9959,8.934221,1.609438,,0 +7,1,25,0,5,125163,0,7586.229,12.30938,0,12,1,32.51355,0,0,0,0,32.51355,0,0,0,1,0,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,78.9959,8.934221,1.609438,3.481657,1 +6,1,25,0,1,125164,0,7854.839,61.42642,0,13,1,15.90106,14.25206,62.77385,0,0,92.92697,0,0,0,1,1,3,85.3,30.4,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,77.34652,8.969012,1.098612,4.531814,1 +6,1,25,0,2,125164,0,7854.839,62.42642,0,13,1,39.3531,1.859838,0,0,0,41.21294,0,0,0,1,1,3,85.3,30.4,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,77.34652,8.969012,1.098612,3.718752,1 +6,1,25,0,3,125164,0,7854.839,63.42642,0,13,1,9.82801,0,55.45946,0,0,65.28747,0,0,0,0,1,3,85.3,30.4,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,77.34652,8.969012,1.098612,4.1788,1 +6,1,25,0,1,125165,0,7854.839,55.06366,1,12,1,279.7409,33.63369,62.77385,0,1107.167,1483.316,1,0,0,15,7,3,74.7,17.4,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,66.01054,8.969012,1.098612,7.302035,1 +6,1,25,0,2,125165,0,7854.839,56.06366,1,12,1,226.1456,.7708895,33.23989,0,1411.617,1671.774,1,0,0,6,4,3,74.7,17.4,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,66.01054,8.969012,1.098612,7.42164,1 +6,1,25,0,3,125165,0,7854.839,57.06366,1,12,1,83.63636,0,48.79607,0,439.1253,571.5577,1,0,0,2,1,3,74.7,17.4,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,66.01054,8.969012,1.098612,6.348365,1 +6,1,25,0,1,125166,0,7854.839,19.02259,1,12,1,36.51355,2.408716,0,0,0,38.92226,0,0,0,4,0,3,82.1,4.3,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,78.8187,8.969012,1.098612,3.661566,1 +6,1,25,0,2,125166,0,7854.839,20.02259,1,12,1,72.50674,20.31806,0,0,0,92.8248,0,0,0,4,0,3,82.1,4.3,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,78.8187,8.969012,1.098612,4.530714,1 +6,1,25,0,3,125166,0,7854.839,21.02259,1,12,1,17.19902,23.32678,0,0,0,40.5258,0,0,0,3,0,3,82.1,4.3,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,78.8187,8.969012,1.098612,3.701939,1 +11,1,0,1,1,125172,0,12934.86,45.82067,1,12,1,152.2782,71.61271,33.20744,0,0,257.0983,0,0,0,21,0,2,71.6,13,0,,0,0,0,0,.6931472,0,0,0,0,0,1,0,57.73302,9.467759,.6931472,5.549459,1 +11,1,0,1,2,125172,0,12934.86,46.82067,1,12,1,115.0055,87.29463,0,0,0,202.3001,0,0,0,15,0,2,71.6,13,0,,0,0,0,0,.6931472,0,0,0,0,0,1,0,57.73302,9.467759,.6931472,5.309752,1 +11,1,0,1,3,125172,0,12934.86,47.82067,1,12,1,236.409,152.015,41.93018,0,1868.364,2298.718,1,0,0,20,1,2,71.6,13,0,,0,0,0,0,.6931472,0,0,0,0,0,1,0,57.73302,9.467759,.6931472,7.740107,1 +11,1,0,1,4,125172,0,12934.86,48.82067,1,12,1,165.053,176.3024,0,0,0,341.3555,0,0,0,20,0,2,71.6,13,0,,0,0,0,0,.6931472,0,0,0,0,0,1,0,57.73302,9.467759,.6931472,5.832924,1 +11,1,0,1,5,125172,0,12934.86,49.82067,1,12,1,128.2268,156.8768,0,0,0,285.1037,0,0,0,17,0,2,71.6,13,0,,0,0,0,0,.6931472,0,0,0,0,0,1,0,57.73302,9.467759,.6931472,5.652853,1 +11,1,0,1,1,125173,0,12934.86,52.62149,0,11,1,41.96643,14.02878,12.88969,0,0,68.8849,0,0,0,7,0,2,76.8,17.4,0,,0,0,0,0,.6931472,0,0,0,0,1,0,0,62.14933,9.467759,.6931472,4.232437,1 +11,1,0,1,2,125173,0,12934.86,53.62149,0,11,1,66.81271,15.78861,42.35487,0,0,124.9562,0,0,0,8,0,2,76.8,17.4,0,,0,0,0,0,.6931472,0,0,0,0,1,0,0,62.14933,9.467759,.6931472,4.827963,1 +11,1,0,1,3,125173,0,12934.86,54.62149,0,11,1,66.33417,14.48379,42.69825,0,618.02,741.5361,1,0,0,6,1,2,76.8,17.4,0,,0,0,0,0,.6931472,0,0,0,0,1,0,0,62.14933,9.467759,.6931472,6.608724,1 +11,1,0,1,4,125173,0,12934.86,55.62149,0,11,1,95.43568,14.94698,0,0,36.88336,147.266,0,0,0,15,0,2,76.8,17.4,0,,0,0,0,0,.6931472,0,0,0,0,1,0,0,62.14933,9.467759,.6931472,4.99224,1 +11,1,0,1,5,125173,0,12934.86,56.62149,0,11,1,74.90479,18.64156,50.36818,0,0,143.9145,0,0,0,10,1,2,76.8,17.4,0,,0,0,0,0,.6931472,0,0,0,0,1,0,0,62.14933,9.467759,.6931472,4.96922,1 +8,1,50,1,1,125181,0,14684.86,21.68652,1,14,1,289.1187,17.17026,28.82494,0,0,335.1139,0,0,0,6,1,3,62.1,0,0,,799,799,0,0,1.098612,6.683361,0,3.931826,7.376508,1,0,0,73.27021,9.594641,1.098612,5.814471,1 +8,1,50,1,2,125181,0,14684.86,22.68652,1,14,1,100.2191,27.17963,0,0,0,127.3987,0,0,0,3,0,3,62.1,0,0,,799,799,0,0,1.098612,6.683361,0,3.931826,7.376508,1,0,0,73.27021,9.594641,1.098612,4.847322,1 +8,1,50,1,3,125181,0,14684.86,23.68652,1,14,1,113.7157,15.65087,17.601,0,0,146.9676,0,0,0,7,1,3,62.1,0,0,,799,799,0,0,1.098612,6.683361,0,3.931826,7.376508,1,0,0,73.27021,9.594641,1.098612,4.990212,1 +8,1,50,1,1,125182,0,14684.86,48.81862,1,11,1,17.98561,12.40408,36.8705,0,0,67.26019,0,0,0,1,1,3,87.4,34.8,0,,799,799,0,0,1.098612,6.683361,0,3.931826,7.376508,1,0,0,68.81352,9.594641,1.098612,4.208569,1 +8,1,50,1,2,125182,0,14684.86,49.81862,1,11,1,15.33406,3.192771,0,0,0,18.52683,0,0,0,1,0,3,87.4,34.8,0,,799,799,0,0,1.098612,6.683361,0,3.931826,7.376508,1,0,0,68.81352,9.594641,1.098612,2.91922,1 +8,1,50,1,3,125182,0,14684.86,50.81862,1,11,1,9.975062,0,33.35661,0,0,43.33167,0,0,0,0,1,3,87.4,34.8,0,,799,799,0,0,1.098612,6.683361,0,3.931826,7.376508,1,0,0,68.81352,9.594641,1.098612,3.768884,1 +8,1,50,1,1,125183,0,14684.86,47.6961,0,9,1,5.995204,0,0,0,0,5.995204,0,0,0,1,0,3,87.4,13,0,,799,799,0,0,1.098612,6.683361,0,3.931826,7.376508,0,1,0,64.34435,9.594641,1.098612,1.79096,1 +8,1,50,1,2,125183,0,14684.86,48.6961,0,9,1,21.90581,15.32311,26.90033,0,0,64.12924,0,0,0,1,2,3,87.4,13,0,,799,799,0,0,1.098612,6.683361,0,3.931826,7.376508,0,1,0,64.34435,9.594641,1.098612,4.160901,1 +8,1,50,1,3,125183,0,14684.86,49.6961,0,9,1,0,0,0,0,0,0,0,0,0,0,0,3,87.4,13,0,,799,799,0,0,1.098612,6.683361,0,3.931826,7.376508,0,1,0,64.34435,9.594641,1.098612,,0 +3,1,100,0,1,125184,0,12770.47,15.7755,0,12,1,2.944641,0,0,0,0,2.944641,0,0,0,1,0,6,88.4,0,0,,1000,1000,1,0,1.791759,6.907755,1,0,0,1,0,0,73.87741,9.454969,1.791759,1.079987,1 +3,1,100,0,2,125184,0,12770.47,16.7755,0,12,1,33.42318,4.366577,0,0,0,37.78976,0,0,0,4,0,6,88.4,0,0,,1000,1000,1,0,1.791759,6.907755,1,0,0,1,0,0,73.87741,9.454969,1.791759,3.632038,1 +3,1,100,0,3,125184,0,12770.47,17.7755,0,12,1,105.0369,0,0,0,0,105.0369,0,0,0,12,0,6,88.4,0,0,,1000,1000,1,0,1.791759,6.907755,1,0,0,1,0,0,73.87741,9.454969,1.791759,4.654311,1 +3,1,100,0,1,125185,0,12770.47,43.87132,0,12,1,34.74676,20.81861,25.84806,0,0,81.41343,0,0,0,3,1,6,58.9,17.4,0,,1000,1000,0,0,1.791759,6.907755,1,0,0,0,1,0,56.85956,9.454969,1.791759,4.39954,1 +3,1,100,0,2,125185,0,12770.47,44.87132,0,12,1,22.64151,18.92183,42.81401,0,0,84.37736,0,0,0,2,1,6,58.9,17.4,0,,1000,1000,0,0,1.791759,6.907755,1,0,0,0,1,0,56.85956,9.454969,1.791759,4.435299,1 +3,1,100,0,3,125185,0,12770.47,45.87132,0,12,1,91.40049,6.388206,46.90909,0,0,144.6978,0,0,0,2,4,6,58.9,17.4,0,,1000,1000,0,0,1.791759,6.907755,1,0,0,0,1,0,56.85956,9.454969,1.791759,4.974648,1 +3,1,100,0,1,125186,0,12770.47,11.95072,1,12,1,2.944641,0,0,0,0,2.944641,0,0,0,1,0,6,74.36826,13.73189,0,,1000,1000,1,1,1.791759,6.907755,1,0,0,1,0,0,78.63347,9.454969,1.791759,1.079987,1 +3,1,100,0,2,125186,0,12770.47,12.95072,1,12,1,40.43127,0,11.10512,0,0,51.53639,0,0,0,3,0,6,74.36826,13.73189,0,,1000,1000,1,1,1.791759,6.907755,1,0,0,1,0,0,78.63347,9.454969,1.791759,3.942288,1 +3,1,100,0,3,125186,0,12770.47,13.95072,1,12,1,12.77641,4.078624,0,0,0,16.85504,0,0,0,2,0,6,74.36826,13.73189,0,,1000,1000,1,1,1.791759,6.907755,1,0,0,1,0,0,78.63347,9.454969,1.791759,2.82465,1 +3,1,100,0,1,125187,0,12770.47,14.44216,0,12,1,12.95642,8.36278,0,0,0,21.3192,0,0,0,2,0,6,77.9,8.7,0,,1000,1000,1,0,1.791759,6.907755,1,0,0,1,0,0,73.87741,9.454969,1.791759,3.059608,1 +3,1,100,0,2,125187,0,12770.47,15.44216,0,12,1,11.32076,4.851752,0,0,0,16.17251,0,0,0,2,0,6,77.9,8.7,0,,1000,1000,1,0,1.791759,6.907755,1,0,0,1,0,0,73.87741,9.454969,1.791759,2.783313,1 +3,1,100,0,3,125187,0,12770.47,16.44216,0,12,1,6.879607,6.388206,0,0,0,13.26781,0,0,0,1,0,6,77.9,8.7,0,,1000,1000,1,0,1.791759,6.907755,1,0,0,1,0,0,73.87741,9.454969,1.791759,2.585341,1 +3,1,100,0,1,125188,0,12770.47,43.46064,1,12,1,27.38516,10.01178,0,0,0,37.39694,0,0,0,3,0,6,71.6,13,1,,1000,1000,0,0,1.791759,6.907755,1,0,0,1,0,0,71.8888,9.454969,1.791759,3.621589,1 +3,1,100,0,2,125188,0,12770.47,44.46064,1,12,1,24.25876,17.00809,58.59299,0,0,99.85984,0,0,0,1,1,6,71.6,13,1,,1000,1000,0,0,1.791759,6.907755,1,0,0,1,0,0,71.8888,9.454969,1.791759,4.603767,1 +3,1,100,0,3,125188,0,12770.47,45.46064,1,12,1,113.7592,0,0,0,785.9607,899.7199,1,0,0,4,0,6,71.6,13,1,,1000,1000,0,0,1.791759,6.907755,1,0,0,1,0,0,71.8888,9.454969,1.791759,6.802083,1 +3,1,100,0,1,125189,0,12770.47,17.13895,0,12,1,159.5995,8.863369,0,0,0,168.4629,0,0,0,20,0,6,71.6,21.7,0,,1000,1000,1,0,1.791759,6.907755,1,0,0,1,0,0,73.87741,9.454969,1.791759,5.126716,1 +3,1,100,0,2,125189,0,12770.47,18.13895,0,12,1,81.9407,142.3989,44.86253,0,0,269.2021,0,0,0,15,1,6,71.6,21.7,0,,1000,1000,0,0,1.791759,6.907755,1,0,0,1,0,0,73.87741,9.454969,1.791759,5.595463,1 +3,1,100,0,3,125189,0,12770.47,19.13895,0,12,1,124.8157,139.9853,37.27273,0,0,302.0737,0,0,0,11,1,6,71.6,21.7,0,,1000,1000,0,0,1.791759,6.907755,1,0,0,1,0,0,73.87741,9.454969,1.791759,5.710671,1 +11,1,0,0,1,125214,0,6866.625,54.21492,1,10,1,588.0447,447.4853,0,0,1195.518,2231.048,1,0,0,69,0,2,76.3,13.73189,1,,0,598,0,0,.6931472,6.393591,0,0,0,0,1,0,50.56934,8.834574,.6931472,7.710227,1 +11,1,0,0,2,125214,0,6866.625,55.21492,1,10,1,496.6146,343.035,25.33693,0,576.097,1441.084,1,0,0,58,1,2,76.3,13.73189,1,,0,598,0,0,.6931472,6.393591,0,0,0,0,1,0,50.56934,8.834574,.6931472,7.27315,1 +11,1,0,0,3,125214,0,6866.625,56.21492,1,10,1,799.8133,335.2776,28.2457,0,41.27764,1204.614,0,0,0,63,1,2,76.3,13.73189,1,,0,598,0,0,.6931472,6.393591,0,0,0,0,1,0,50.56934,8.834574,.6931472,7.093915,1 +11,1,0,0,1,125215,0,6866.625,49.56879,0,9,1,17.66784,0,0,0,0,17.66784,0,0,0,2,0,2,87.5,13.73189,1,,0,598,0,0,.6931472,6.393591,0,0,0,0,0,0,70.33569,8.834574,.6931472,2.871746,1 +11,1,0,0,2,125215,0,6866.625,50.56879,0,9,1,74.93262,9.347709,28.57143,0,0,112.8518,0,0,0,3,1,2,87.5,13.73189,1,,0,598,0,0,.6931472,6.393591,0,0,0,0,0,0,70.33569,8.834574,.6931472,4.726075,1 +11,1,0,0,3,125215,0,6866.625,51.56879,0,9,1,18.18182,8.255528,23.11057,0,0,49.54791,0,0,0,2,1,2,87.5,13.73189,1,,0,598,0,0,.6931472,6.393591,0,0,0,0,0,0,70.33569,8.834574,.6931472,3.90294,1 +11,1,0,1,1,125216,0,9106.079,6.171116,0,12,1,80.01189,26.79952,0,0,286.8055,393.6169,1,0,0,11,0,4,74.36826,13.73189,0,,0,0,1,0,1.386294,0,0,0,0,0,0,0,84.24345,9.116807,1.386294,5.975378,1 +11,1,0,1,2,125216,0,9106.079,7.171116,0,12,1,198.6935,16.08601,0,0,0,214.7795,0,0,0,9,0,4,74.36826,13.73189,0,,0,0,1,0,1.386294,0,0,0,0,0,0,0,84.24345,9.116807,1.386294,5.369612,1 +11,1,0,1,3,125216,0,9106.079,8.171116,0,12,1,34.68781,16.16948,0,0,0,50.85728,0,0,0,5,0,4,74.36826,13.73189,0,,0,0,1,0,1.386294,0,0,0,0,0,0,0,84.24345,9.116807,1.386294,3.929023,1 +11,1,0,1,4,125216,0,9106.079,9.171116,0,12,1,23.86416,7.755851,0,0,0,31.62001,0,0,0,3,0,3,74.36826,13.73189,0,,0,0,1,0,1.098612,0,0,0,0,0,0,0,84.24345,9.116807,1.098612,3.45379,1 +11,1,0,1,5,125216,0,9106.079,10.17112,0,12,1,153.8704,35.07783,0,0,0,188.9483,0,0,0,8,0,3,74.36826,13.73189,0,,0,0,1,0,1.098612,0,0,0,0,0,0,0,84.24345,9.116807,1.098612,5.241473,1 +11,1,0,1,1,125217,0,9106.079,10.39288,0,12,1,36.28793,4.46163,0,0,0,40.74955,0,0,0,6,0,4,74.36826,13.73189,0,,0,0,1,0,1.386294,0,0,0,0,1,0,0,74.06646,9.116807,1.386294,3.707445,1 +11,1,0,1,2,125217,0,9106.079,11.39288,0,12,1,18.50844,5.960806,0,0,0,24.46924,0,0,0,3,0,4,74.36826,13.73189,0,,0,0,1,0,1.386294,0,0,0,0,1,0,0,74.06646,9.116807,1.386294,3.197417,1 +11,1,0,1,3,125217,0,9106.079,12.39288,0,12,1,23.78593,6.665015,0,0,0,30.45094,0,0,0,4,0,4,74.36826,13.73189,0,,0,0,1,0,1.386294,0,0,0,0,1,0,0,74.06646,9.116807,1.386294,3.416117,1 +11,1,0,1,4,125217,0,9106.079,13.39288,0,12,1,15.14456,8.926113,0,0,0,24.07067,0,0,0,3,0,3,74.36826,13.73189,0,,0,0,1,0,1.098612,0,0,0,0,1,0,0,74.06646,9.116807,1.098612,3.180994,1 +11,1,0,1,5,125217,0,9106.079,14.39288,0,12,1,23.55911,1.262095,0,0,0,24.8212,0,0,0,2,0,3,74.36826,13.73189,0,,0,0,1,0,1.098612,0,0,0,0,1,0,0,74.06646,9.116807,1.098612,3.211698,1 +11,1,0,1,1,125218,0,9106.079,44.80219,0,10,1,197.204,6.097561,0,0,0,203.3016,0,0,0,6,0,4,80,17.4,0,,0,0,0,0,1.386294,0,0,0,0,0,0,0,69.65557,9.116807,1.386294,5.314691,1 +11,1,0,1,2,125218,0,9106.079,45.80219,0,10,1,166.0316,21.09418,0,0,7141.557,7328.683,2,0,0,10,0,4,80,17.4,0,,0,0,0,0,1.386294,0,0,0,0,0,0,0,69.65557,9.116807,1.386294,8.899551,1 +11,1,0,1,3,125218,0,9106.079,46.80219,0,10,1,444.9951,90.65907,29.58375,0,0,565.2379,0,0,0,12,31,4,80,17.4,0,,0,0,0,0,1.386294,0,0,0,0,0,0,0,69.65557,9.116807,1.386294,6.337246,1 +11,1,0,1,1,125219,0,9106.079,33.42916,1,12,1,249.8513,130.3093,3.777514,0,0,383.9381,0,0,0,35,0,4,55.8,13,0,,0,0,0,0,1.386294,0,0,0,0,0,0,0,78.52583,9.116807,1.386294,5.950481,1 +11,1,0,1,2,125219,0,9106.079,34.42916,1,12,1,381.0561,177.006,4.899292,0,1644.339,2207.3,1,0,0,9,15,4,55.8,13,0,,0,0,0,0,1.386294,0,0,0,0,0,0,0,78.52583,9.116807,1.386294,7.699525,1 +11,1,0,1,3,125219,0,9106.079,35.42916,1,12,1,98.11695,149.3062,170.9613,59.46482,0,418.3846,0,0,4,6,0,4,55.8,13,0,,0,0,0,0,1.386294,0,0,0,0,0,0,0,78.52583,9.116807,1.386294,6.036401,1 +11,1,0,1,4,125219,0,9106.079,36.42916,1,12,1,54.61221,145.5484,0,80.31207,1999.358,2199.518,1,0,5,6,0,3,55.8,13,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,78.52583,9.116807,1.098612,7.695993,1 +11,1,0,1,5,125219,0,9106.079,37.42916,1,12,1,110.223,271.9941,257.0467,117.7955,0,639.2638,0,0,8,14,0,3,55.8,13,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,78.52583,9.116807,1.098612,6.460317,1 +2,1,100,0,1,125220,0,12213.6,35.87132,0,17,1,33.57314,10.8813,0,0,0,44.45444,0,0,0,5,0,5,77.5,13.73189,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,1,0,0,72.73786,9.410387,1.609438,3.794465,1 +2,1,100,0,2,125220,0,12213.6,36.87132,0,17,1,23.54874,7.338445,0,0,0,30.88719,0,0,0,4,0,5,77.5,13.73189,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,1,0,0,72.73786,9.410387,1.609438,3.430341,1 +2,1,100,0,3,125220,0,12213.6,37.87132,0,17,1,43.81047,4.189526,37.0773,0,0,85.07731,0,0,0,2,1,5,77.5,13.73189,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,1,0,0,72.73786,9.410387,1.609438,4.44356,1 +2,1,100,0,4,125220,0,12213.6,38.87132,0,17,1,0,0,0,0,0,0,0,0,0,0,0,5,77.5,13.73189,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,1,0,0,72.73786,9.410387,1.609438,,0 +2,1,100,0,5,125220,0,12213.6,39.87132,0,17,1,0,0,0,0,0,0,0,0,0,0,0,5,77.5,13.73189,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,1,0,0,72.73786,9.410387,1.609438,,0 +2,1,100,0,1,125221,0,12213.6,10.94045,0,16,1,42.86571,.5395684,0,0,0,43.40528,0,0,0,1,2,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,1,0,0,0,0,0,87.05311,9.410387,1.609438,3.770581,1 +2,1,100,0,2,125221,0,12213.6,11.94045,0,16,1,29.84666,8.598028,26.85104,0,0,65.29573,0,0,0,2,1,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,1,0,0,0,0,0,87.05311,9.410387,1.609438,4.178926,1 +2,1,100,0,3,125221,0,12213.6,12.94045,0,16,1,7.381546,8.254364,0,0,0,15.63591,0,0,0,1,0,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,1,0,0,0,0,0,87.05311,9.410387,1.609438,2.74957,1 +2,1,100,0,4,125221,0,12213.6,13.94045,0,16,1,195.6893,3.665283,0,0,0,199.3545,0,0,0,5,0,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,1,0,0,0,0,0,87.05311,9.410387,1.609438,5.295085,1 +2,1,100,0,5,125221,0,12213.6,14.94045,0,16,1,90.71096,0,0,0,0,90.71096,0,0,0,3,0,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,1,0,0,0,0,0,87.05311,9.410387,1.609438,4.507678,1 +2,1,100,0,1,125222,0,12213.6,33.19096,1,16,1,45.20384,15.19784,0,0,0,60.40168,0,0,0,3,0,5,71.3,13.73189,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,0,0,0,80.14037,9.410387,1.609438,4.101017,1 +2,1,100,0,2,125222,0,12213.6,34.19096,1,16,1,21.35816,7.174151,0,0,0,28.53231,0,0,0,3,0,5,71.3,13.73189,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,0,0,0,80.14037,9.410387,1.609438,3.351037,1 +2,1,100,0,3,125222,0,12213.6,35.19096,1,16,1,23.94015,4.239401,0,0,0,28.17955,0,0,0,3,0,5,71.3,13.73189,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,0,0,0,80.14037,9.410387,1.609438,3.338597,1 +2,1,100,0,4,125222,0,12213.6,36.19096,1,16,1,6.915629,5.693868,0,0,0,12.6095,0,0,0,1,0,5,71.3,13.73189,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,0,0,0,80.14037,9.410387,1.609438,2.53445,1 +2,1,100,0,5,125222,0,12213.6,37.19096,1,16,1,49.93652,2.653407,0,0,0,52.58993,0,0,0,2,0,5,71.3,13.73189,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,0,0,0,80.14037,9.410387,1.609438,3.962525,1 +2,1,100,0,1,125223,0,12213.6,7.750855,0,16,1,34.77218,5.635491,0,0,0,40.40767,0,0,0,3,1,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,1,0,0,0,0,0,87.05311,9.410387,1.609438,3.69902,1 +2,1,100,0,2,125223,0,12213.6,8.750855,0,16,1,13.96495,10.35049,0,0,0,24.31544,0,0,0,2,0,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,1,0,0,0,0,0,87.05311,9.410387,1.609438,3.191112,1 +2,1,100,0,3,125223,0,12213.6,9.750855,0,16,1,29.55112,17.95511,0,0,0,47.50623,0,0,0,1,1,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,1,0,0,0,0,0,87.05311,9.410387,1.609438,3.860861,1 +2,1,100,0,4,125223,0,12213.6,10.75086,0,16,1,15.3988,9.22084,0,0,0,24.61964,0,0,0,1,0,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,1,0,0,0,0,0,87.05311,9.410387,1.609438,3.203545,1 +2,1,100,0,5,125223,0,12213.6,11.75086,0,16,1,11.84934,0,0,0,0,11.84934,0,0,0,1,0,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,1,0,0,0,0,0,87.05311,9.410387,1.609438,2.472273,1 +2,1,100,0,1,125224,0,12213.6,6.606434,1,16,1,31.41487,10.52158,0,0,0,41.93645,0,0,0,2,1,5,74.36826,13.73189,0,,1000,1000,1,1,1.609438,6.907755,1,0,0,0,0,0,86.53913,9.410387,1.609438,3.736156,1 +2,1,100,0,2,125224,0,12213.6,7.606434,1,16,1,24.26068,11.22672,0,0,0,35.4874,0,0,0,3,0,5,74.36826,13.73189,0,,1000,1000,1,1,1.609438,6.907755,1,0,0,0,0,0,86.53913,9.410387,1.609438,3.569178,1 +2,1,100,0,3,125224,0,12213.6,8.606434,1,16,1,1.995013,0,0,0,0,1.995013,0,0,0,0,0,5,74.36826,13.73189,0,,1000,1000,1,1,1.609438,6.907755,1,0,0,0,0,0,86.53913,9.410387,1.609438,.6906503,1 +2,1,100,0,4,125224,0,12213.6,9.606434,1,16,1,14.01568,0,0,0,0,14.01568,0,0,0,1,0,5,74.36826,13.73189,0,,1000,1000,1,1,1.609438,6.907755,1,0,0,0,0,0,86.53913,9.410387,1.609438,2.640176,1 +2,1,100,0,5,125224,0,12213.6,10.60643,1,16,1,13.22471,0,0,0,0,13.22471,0,0,0,1,0,5,74.36826,13.73189,0,,1000,1000,1,1,1.609438,6.907755,1,0,0,0,0,0,86.53913,9.410387,1.609438,2.582087,1 +11,1,0,1,1,125229,0,22318.24,41.1143,1,12,1,151.6786,88.81295,26.6307,0,0,267.1223,0,0,0,16,0,8,74.7,21.7,1,,0,0,0,0,2.079442,0,0,0,0,1,0,0,68.03587,10.0132,2.079442,5.587707,1 +11,1,0,1,2,125229,0,22318.24,42.1143,1,12,1,225.0822,26.31435,0,0,0,251.3965,0,0,0,16,0,8,74.7,21.7,1,,0,0,0,0,2.079442,0,0,0,0,1,0,0,68.03587,10.0132,2.079442,5.527031,1 +11,1,0,1,3,125229,0,22318.24,43.1143,1,12,1,185.2868,61.14713,35.91022,0,0,282.3441,0,0,0,17,0,9,74.7,21.7,1,,0,0,0,0,2.197225,0,0,0,0,1,0,0,68.03587,10.0132,2.197225,5.643126,1 +11,1,0,1,1,125230,0,22318.24,17.30869,0,12,1,5.395683,6.564748,0,0,0,11.96043,0,0,0,0,0,8,80,13,0,,0,0,1,0,2.079442,0,0,0,0,0,0,0,80.52389,10.0132,2.079442,2.481604,1 +11,1,0,1,2,125230,0,22318.24,18.30869,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,80,13,0,,0,0,0,0,2.079442,0,0,0,0,0,0,0,80.52389,10.0132,2.079442,,0 +11,1,0,1,3,125230,0,22318.24,19.30869,0,12,1,17.45636,9.077307,0,0,0,26.53367,0,0,0,3,0,9,80,13,0,,0,0,0,0,2.197225,0,0,0,0,0,0,0,80.52389,10.0132,2.197225,3.278414,1 +11,1,0,1,1,125231,0,22318.24,18.41205,0,12,1,13.48921,5.749401,0,0,0,19.23861,0,0,0,2,0,8,52.6,0,0,,0,0,0,0,2.079442,0,0,0,0,0,0,0,78.67783,10.0132,2.079442,2.956919,1 +11,1,0,1,2,125231,0,22318.24,19.41205,0,12,1,49.8357,15.33406,32.04819,0,0,97.21796,0,0,0,4,0,8,52.6,0,0,,0,0,0,0,2.079442,0,0,0,0,0,0,0,78.67783,10.0132,2.079442,4.576955,1 +11,1,0,1,3,125231,0,22318.24,20.41205,0,12,1,32.91771,8.304239,0,0,700.02,741.2419,1,0,0,3,0,9,52.6,0,0,,0,0,0,0,2.197225,0,0,0,0,0,0,0,78.67783,10.0132,2.197225,6.608327,1 +11,1,0,1,1,125232,0,22318.24,14.19576,0,12,1,59.95204,14.92806,0,0,0,74.8801,0,0,0,6,0,8,80,4.3,0,,0,0,1,0,2.079442,0,0,0,0,1,0,0,74.01256,10.0132,2.079442,4.315888,1 +11,1,0,1,2,125232,0,22318.24,15.19576,0,12,1,21.90581,35.20263,0,0,0,57.10843,0,0,0,3,0,8,80,4.3,0,,0,0,1,0,2.079442,0,0,0,0,1,0,0,74.01256,10.0132,2.079442,4.044952,1 +11,1,0,1,3,125232,0,22318.24,16.19576,0,12,1,19.95012,16.7581,0,0,0,36.70823,0,0,0,3,0,9,80,4.3,0,,0,0,1,0,2.197225,0,0,0,0,1,0,0,74.01256,10.0132,2.197225,3.603001,1 +11,1,0,1,1,125233,0,22318.24,16.1807,1,12,1,90.22782,44.44844,27.56595,0,0,162.2422,0,0,0,7,0,8,75.8,0,0,,0,0,1,1,2.079442,0,0,0,0,0,0,0,74.24654,10.0132,2.079442,5.08909,1 +11,1,0,1,2,125233,0,22318.24,17.1807,1,12,1,19.16758,27.40964,0,0,491.6375,538.2147,1,0,0,3,0,8,75.8,0,0,,0,0,1,1,2.079442,0,0,0,0,0,0,0,74.24654,10.0132,2.079442,6.288258,1 +11,1,0,1,3,125233,0,22318.24,18.1807,1,12,1,334.2444,11.47132,0,0,11.97007,357.6858,0,0,0,7,0,9,75.8,0,0,,0,0,0,0,2.197225,0,0,0,0,0,0,0,74.24654,10.0132,2.197225,5.879655,1 +11,1,0,1,1,125234,0,22318.24,43.61123,0,16,1,67.14629,178.0456,55.44365,0,0,300.6355,0,0,0,8,0,8,81.1,26.1,0,,0,0,0,0,2.079442,0,0,0,0,0,0,0,77.31422,10.0132,2.079442,5.705899,1 +11,1,0,1,2,125234,0,22318.24,44.61123,0,16,1,65.71741,122.6451,0,0,0,188.3625,0,0,0,8,0,8,81.1,26.1,0,,0,0,0,0,2.079442,0,0,0,0,0,0,0,77.31422,10.0132,2.079442,5.238369,1 +11,1,0,1,3,125234,0,22318.24,45.61123,0,16,1,70.82294,125.1122,46.90773,0,0,242.8429,0,0,0,4,0,9,81.1,26.1,0,,0,0,0,0,2.197225,0,0,0,0,0,0,0,77.31422,10.0132,2.197225,5.492415,1 +11,1,0,1,1,125235,0,22318.24,10.42026,0,12,1,26.3789,21.07314,0,0,0,47.45204,0,0,0,4,0,8,74.36826,13.73189,0,,0,0,1,0,2.079442,0,0,0,0,0,0,0,84.64054,10.0132,2.079442,3.85972,1 +11,1,0,1,2,125235,0,22318.24,11.42026,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,74.36826,13.73189,0,,0,0,1,0,2.079442,0,0,0,0,0,0,0,84.64054,10.0132,2.079442,,0 +11,1,0,1,3,125235,0,22318.24,12.42026,0,12,1,41.39651,10.69825,0,0,0,52.09476,0,0,0,4,0,9,74.36826,13.73189,0,,0,0,1,0,2.197225,0,0,0,0,0,0,0,84.64054,10.0132,2.197225,3.953064,1 +11,1,0,1,1,125236,0,22318.24,11.50445,0,12,1,59.95204,63.31535,64.04076,0,0,187.3082,0,0,0,8,0,8,74.36826,13.73189,1,,0,0,1,0,2.079442,0,0,0,0,1,0,0,74.46355,10.0132,2.079442,5.232755,1 +11,1,0,1,2,125236,0,22318.24,12.50445,0,12,1,23.00109,41.15005,54.45783,0,0,118.609,0,0,0,4,0,8,74.36826,13.73189,1,,0,0,1,0,2.079442,0,0,0,0,1,0,0,74.46355,10.0132,2.079442,4.775832,1 +11,1,0,1,3,125236,0,22318.24,13.50445,0,12,1,68.82793,62.04489,55.70075,0,0,186.5736,0,0,0,7,0,9,74.36826,13.73189,1,,0,0,1,0,2.197225,0,0,0,0,1,0,0,74.46355,10.0132,2.197225,5.228826,1 +11,1,0,1,1,125258,0,7810.794,41.70842,0,12,1,78.61987,51.86199,7.703748,0,0,138.1856,0,0,0,7,0,5,77.9,13,1,,0,232,0,0,1.609438,5.446737,0,0,0,1,0,0,63.76923,8.96339,1.609438,4.928598,1 +11,1,0,1,2,125258,0,7810.794,42.70842,0,12,1,192.1611,112.0577,87.09853,0,2911.241,3302.559,3,0,0,19,1,5,77.9,13,1,,0,232,0,0,1.609438,5.446737,0,0,0,1,0,0,63.76923,8.96339,1.609438,8.102453,1 +11,1,0,1,3,125258,0,7810.794,43.70842,0,12,1,663.4787,111.7344,26.26363,0,1011.516,1812.993,1,0,0,0,2,5,77.9,13,1,,0,232,0,0,1.609438,5.446737,0,0,0,1,0,0,63.76923,8.96339,1.609438,7.502734,1 +11,1,0,1,1,125259,0,7810.794,31.87406,1,10,1,101.7252,56.00238,0,0,0,157.7275,0,0,0,12,0,5,80,17.4,0,,0,232,0,0,1.609438,5.446737,0,0,0,0,0,0,76.00816,8.96339,1.609438,5.060869,1 +11,1,0,1,2,125259,0,7810.794,32.87406,1,10,1,60.42461,36.89167,0,0,0,97.31628,0,0,0,7,0,5,80,17.4,0,,0,232,0,0,1.609438,5.446737,0,0,0,0,0,0,76.00816,8.96339,1.609438,4.577966,1 +11,1,0,1,3,125259,0,7810.794,33.87406,1,10,1,26.75917,31.91774,0,0,0,58.67691,0,0,0,3,0,5,80,17.4,0,,0,232,0,0,1.609438,5.446737,0,0,0,0,0,0,76.00816,8.96339,1.609438,4.072046,1 +11,1,0,1,1,125260,0,7810.794,10.96509,0,10,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,0,232,1,0,1.609438,5.446737,0,0,0,0,0,0,79.16512,8.96339,1.609438,,0 +11,1,0,1,2,125260,0,7810.794,11.96509,0,10,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,0,232,1,0,1.609438,5.446737,0,0,0,0,0,0,79.16512,8.96339,1.609438,,0 +11,1,0,1,3,125260,0,7810.794,12.96509,0,10,1,5.946482,1.982161,0,0,0,7.928642,0,0,0,1,0,5,74.36826,13.73189,0,,0,232,1,0,1.609438,5.446737,0,0,0,0,0,0,79.16512,8.96339,1.609438,2.070482,1 +11,1,0,1,1,125261,0,7810.794,12.13415,0,10,1,71.0113,22.08209,0,0,0,93.0934,0,0,0,9,0,5,74.36826,13.73189,0,,0,232,1,0,1.609438,5.446737,0,0,0,0,0,0,79.16512,8.96339,1.609438,4.533603,1 +11,1,0,1,2,125261,0,7810.794,13.13415,0,10,1,37.56124,0,1.633097,0,0,39.19434,0,0,0,2,0,5,74.36826,13.73189,0,,0,232,1,0,1.609438,5.446737,0,0,0,0,0,0,79.16512,8.96339,1.609438,3.668532,1 +11,1,0,1,3,125261,0,7810.794,14.13415,0,10,1,21.80377,4.6333,0,0,0,26.43707,0,0,0,2,0,5,74.36826,13.73189,0,,0,232,1,0,1.609438,5.446737,0,0,0,0,0,0,79.16512,8.96339,1.609438,3.274767,1 +11,1,0,1,1,125262,0,7810.794,9.24846,0,10,1,19.63117,3.920285,0,0,0,23.55146,0,0,0,3,0,5,74.36826,13.73189,0,,0,232,1,0,1.609438,5.446737,0,0,0,0,0,0,79.16512,8.96339,1.609438,3.159188,1 +11,1,0,1,2,125262,0,7810.794,10.24846,0,10,1,22.86336,11.64398,0,0,0,34.50735,0,0,0,3,0,5,74.36826,13.73189,0,,0,232,1,0,1.609438,5.446737,0,0,0,0,0,0,79.16512,8.96339,1.609438,3.541172,1 +11,1,0,1,3,125262,0,7810.794,11.24846,0,10,1,128.8404,3.468781,0,0,0,132.3092,0,0,0,2,0,5,74.36826,13.73189,0,,0,232,1,0,1.609438,5.446737,0,0,0,0,0,0,79.16512,8.96339,1.609438,4.885142,1 +10,1,50,0,1,125292,0,7562.655,3.129364,1,12,1,38.96883,4.118705,0,0,0,43.08753,0,0,0,4,1,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.931826,7.600903,1,0,0,72.76939,8.931109,1.386294,3.763234,1 +10,1,50,0,2,125292,0,7562.655,4.129364,1,12,1,31.21577,10.38335,0,0,0,41.59912,0,0,0,3,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.931826,7.600903,1,0,0,72.76939,8.931109,1.386294,3.728079,1 +10,1,50,0,3,125292,0,7562.655,5.129364,1,12,1,15.9601,0,0,0,0,15.9601,0,0,0,3,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.931826,7.600903,1,0,0,72.76939,8.931109,1.386294,2.770092,1 +10,1,50,0,4,125292,0,7562.655,6.129364,1,12,1,239.6496,0,0,0,0,239.6496,0,0,0,4,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.931826,7.600903,1,0,0,72.76939,8.931109,1.386294,5.479178,1 +10,1,50,0,5,125292,0,7562.655,7.129364,1,12,1,42.74228,2.530681,0,0,0,45.27296,0,0,0,2,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.931826,7.600903,1,0,0,72.76939,8.931109,1.386294,3.81271,1 +10,1,50,0,1,125293,0,7562.655,25.76591,0,12,1,6.594724,15.55755,0,0,0,22.15228,0,0,0,1,0,4,90,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,77.12549,8.931109,1.386294,3.09794,1 +10,1,50,0,2,125293,0,7562.655,26.76591,0,12,1,102.4096,5.733844,0,0,0,108.1435,0,0,0,2,0,4,90,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,77.12549,8.931109,1.386294,4.683459,1 +10,1,50,0,3,125293,0,7562.655,27.76591,0,12,1,199.0025,0,0,0,0,199.0025,0,0,0,0,28,4,90,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,77.12549,8.931109,1.386294,5.293317,1 +10,1,50,0,4,125293,0,7562.655,28.76591,0,12,1,96.81881,0,0,0,0,96.81881,0,0,0,0,21,4,90,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,77.12549,8.931109,1.386294,4.572841,1 +10,1,50,0,5,125293,0,7562.655,29.76591,0,12,1,57.97715,0,0,0,0,57.97715,0,0,0,0,13,4,90,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,77.12549,8.931109,1.386294,4.060049,1 +10,1,50,0,1,125294,0,7562.655,25.56058,1,12,1,20.38369,9.028777,0,0,0,29.41247,0,0,0,2,0,4,81.3,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,1,0,0,71.5183,8.931109,1.386294,3.381419,1 +10,1,50,0,2,125294,0,7562.655,26.56058,1,12,1,4.928806,19.43045,0,0,0,24.35925,0,0,0,1,0,4,81.3,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,1,0,0,71.5183,8.931109,1.386294,3.192912,1 +10,1,50,0,3,125294,0,7562.655,27.56058,1,12,1,9.102244,1.361596,0,0,0,10.46384,0,0,0,1,0,4,81.3,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,1,0,0,71.5183,8.931109,1.386294,2.347926,1 +10,1,50,0,4,125294,0,7562.655,28.56058,1,12,1,11.06501,0,0,0,0,11.06501,0,0,0,2,0,4,81.3,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,1,0,0,71.5183,8.931109,1.386294,2.403788,1 +10,1,50,0,5,125294,0,7562.655,29.56058,1,12,1,18.6204,0,0,0,0,18.6204,0,0,0,2,0,4,81.3,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,1,0,0,71.5183,8.931109,1.386294,2.924258,1 +10,1,50,0,1,125295,0,7562.655,1.284052,1,12,1,23.98082,5.905276,0,0,0,29.88609,0,0,0,4,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.931826,7.600903,0,0,0,79.6642,8.931109,1.386294,3.397393,1 +10,1,50,0,2,125295,0,7562.655,2.284052,1,12,1,45.96933,8.603505,0,0,0,54.57284,0,0,0,5,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.931826,7.600903,0,0,0,79.6642,8.931109,1.386294,3.999536,1 +10,1,50,0,3,125295,0,7562.655,3.284052,1,12,1,25.93516,5.506235,0,0,0,31.4414,0,0,0,4,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.931826,7.600903,0,0,0,79.6642,8.931109,1.386294,3.448125,1 +10,1,50,0,4,125295,0,7562.655,4.284052,1,12,1,19.8248,0,0,0,0,19.8248,0,0,0,4,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.931826,7.600903,0,0,0,79.6642,8.931109,1.386294,2.986934,1 +10,1,50,0,5,125295,0,7562.655,5.284052,1,12,1,175.9204,0,0,0,320.4655,496.386,1,0,0,5,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.931826,7.600903,0,0,0,79.6642,8.931109,1.386294,6.207354,1 +7,1,25,1,1,125310,0,6375.931,42.06982,1,12,1,121.3563,27.78108,0,0,0,149.1374,0,0,0,3,0,2,83.2,13,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,1,0,0,71.44223,8.760442,.6931472,5.004868,1 +7,1,25,1,2,125310,0,6375.931,43.06982,1,12,1,148.6119,21.5841,0,0,0,170.196,0,0,0,4,0,2,83.2,13,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,1,0,0,71.44223,8.760442,.6931472,5.13695,1 +7,1,25,1,3,125310,0,6375.931,44.06982,1,12,1,77.7998,32.16056,0,0,0,109.9604,0,0,0,1,0,2,83.2,13,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,1,0,0,71.44223,8.760442,.6931472,4.70012,1 +7,1,25,1,4,125310,0,6375.931,45.06982,1,12,1,132.1707,21.61542,0,0,0,153.7861,0,0,0,3,0,2,83.2,13,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,1,0,0,71.44223,8.760442,.6931472,5.035563,1 +7,1,25,1,5,125310,0,6375.931,46.06982,1,12,1,125.7888,15.73412,25.87295,0,676.8364,844.2322,1,0,0,3,1,2,83.2,13,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,1,0,0,71.44223,8.760442,.6931472,6.738428,1 +7,1,25,1,1,125311,0,6375.931,52.39151,0,9,1,82.09399,0,34.50327,0,0,116.5973,0,0,0,2,1,2,95.8,26.1,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,1,0,0,66.65314,8.760442,.6931472,4.758726,1 +7,1,25,1,2,125311,0,6375.931,53.39151,0,9,1,62.0577,0,0,0,0,62.0577,0,0,0,1,0,2,95.8,26.1,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,1,0,0,66.65314,8.760442,.6931472,4.128065,1 +7,1,25,1,3,125311,0,6375.931,54.39151,0,9,1,83.74628,2.65114,0,0,1015.084,1101.482,1,0,0,3,0,2,95.8,26.1,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,1,0,0,66.65314,8.760442,.6931472,7.004412,1 +7,1,25,1,4,125311,0,6375.931,55.39151,0,9,1,122.9922,53.419,0,0,0,176.4112,0,0,0,4,0,2,95.8,26.1,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,1,0,0,66.65314,8.760442,.6931472,5.172818,1 +7,1,25,1,5,125311,0,6375.931,56.39151,0,9,1,87.50526,51.59865,35.75936,0,0,174.8633,0,0,0,1,1,2,95.8,26.1,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,1,0,0,66.65314,8.760442,.6931472,5.164004,1 +4,1,100,1,1,125323,0,15324.44,56.06297,0,14,1,32.71862,7.614515,0,0,0,40.33313,0,0,0,2,0,2,95.8,4.3,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,0,0,0,77.37316,9.63727,.6931472,3.697173,1 +4,1,100,1,2,125323,0,15324.44,57.06297,0,14,1,19.59717,0,0,0,0,19.59717,0,0,0,2,0,2,95.8,4.3,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,0,0,0,77.37316,9.63727,.6931472,2.975385,1 +4,1,100,1,3,125323,0,15324.44,58.06297,0,14,1,33.44896,0,35.99108,0,0,69.44004,0,0,0,2,0,2,95.8,4.3,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,0,0,0,77.37316,9.63727,.6931472,4.240464,1 +4,1,100,1,4,125323,0,15324.44,59.06297,0,14,1,20.19275,0,0,0,0,20.19275,0,0,0,2,0,2,95.8,4.3,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,0,0,0,77.37316,9.63727,.6931472,3.005324,1 +4,1,100,1,5,125323,0,15324.44,60.06297,0,14,1,6.310475,0,0,0,0,6.310475,0,0,0,1,0,2,95.8,4.3,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,0,0,0,77.37316,9.63727,.6931472,1.842211,1 +4,1,100,1,1,125324,0,15324.44,55.58659,1,12,1,36.58537,28.40571,26.73409,0,0,91.72517,0,0,0,4,0,2,78.9,17.4,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,1,0,0,66.03719,9.63727,.6931472,4.518797,1 +4,1,100,1,2,125324,0,15324.44,56.58659,1,12,1,79.47741,10.17964,0,0,0,89.65705,0,0,0,3,0,2,78.9,17.4,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,1,0,0,66.03719,9.63727,.6931472,4.495992,1 +4,1,100,1,3,125324,0,15324.44,57.58659,1,12,1,80.77304,76.58077,0,0,0,157.3538,0,0,0,10,0,2,78.9,17.4,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,1,0,0,66.03719,9.63727,.6931472,5.058497,1 +4,1,100,1,4,125324,0,15324.44,58.58659,1,12,1,44.51583,44.19917,38.36622,0,0,127.0812,0,0,0,5,0,2,78.9,17.4,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,1,0,0,66.03719,9.63727,.6931472,4.844827,1 +4,1,100,1,5,125324,0,15324.44,59.58659,1,12,1,123.6853,45.18721,32.97434,0,0,201.8469,0,0,0,11,4,2,78.9,17.4,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,1,0,0,66.03719,9.63727,.6931472,5.307509,1 +6,1,25,1,1,125337,0,6566.377,32.282,1,12,1,66.54888,39.25795,0,0,0,105.8068,0,0,0,5,1,5,36.8,17.4,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,66.28,8.78987,1.609438,4.661615,1 +6,1,25,1,2,125337,0,6566.377,33.282,1,12,1,26.95418,6.318059,0,0,0,33.27224,0,0,0,3,0,5,36.8,17.4,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,66.28,8.78987,1.609438,3.504723,1 +6,1,25,1,3,125337,0,6566.377,34.282,1,12,1,19.65602,2.358722,0,0,0,22.01474,0,0,0,2,0,5,36.8,17.4,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,66.28,8.78987,1.609438,3.091712,1 +6,1,25,1,4,125337,0,6566.377,35.282,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,36.8,17.4,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,66.28,8.78987,1.386294,,0 +6,1,25,1,5,125337,0,6566.377,36.282,1,12,1,78.69946,.8336807,0,0,0,79.53314,0,0,0,5,0,4,36.8,17.4,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,66.28,8.78987,1.386294,4.376174,1 +6,1,25,1,1,125338,0,6566.377,11.11567,0,12,1,110.1296,19.84099,0,0,3467.986,3597.956,1,0,0,7,0,5,74.36826,13.73189,1,,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,72.53985,8.78987,1.609438,8.188121,1 +6,1,25,1,2,125338,0,6566.377,12.11567,0,12,1,69.6496,3.876011,0,0,0,73.5256,0,0,0,1,1,5,74.36826,13.73189,1,,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,72.53985,8.78987,1.609438,4.297634,1 +6,1,25,1,3,125338,0,6566.377,13.11567,0,12,1,40.25553,4.19656,0,0,0,44.45209,0,0,0,2,0,5,74.36826,13.73189,1,,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,72.53985,8.78987,1.609438,3.794412,1 +6,1,25,1,4,125338,0,6566.377,14.11567,0,12,1,30.99362,0,0,0,0,30.99362,0,0,0,1,0,4,74.36826,13.73189,1,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,72.53985,8.78987,1.386294,3.433781,1 +6,1,25,1,5,125338,0,6566.377,15.11567,0,12,1,40.85035,6.669446,0,0,0,47.5198,0,0,0,5,0,4,74.36826,13.73189,1,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,72.53985,8.78987,1.386294,3.861146,1 +6,1,25,1,1,125339,0,6566.377,12.27378,1,12,1,11.77856,1.737338,0,0,0,13.5159,0,0,0,2,0,5,74.36826,13.73189,0,,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,1,0,0,76.26729,8.78987,1.609438,2.603867,1 +6,1,25,1,2,125339,0,6566.377,13.27378,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,1,0,0,76.26729,8.78987,1.609438,,0 +6,1,25,1,3,125339,0,6566.377,14.27378,1,12,1,21.13022,.5896806,0,0,397.5676,419.2875,1,0,0,3,0,5,74.36826,13.73189,0,,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,1,0,0,76.26729,8.78987,1.609438,6.038557,1 +6,1,25,1,4,125339,0,6566.377,15.27378,1,12,1,25.97995,0,0,0,0,25.97995,0,0,0,3,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,1,0,0,76.26729,8.78987,1.386294,3.257325,1 +6,1,25,1,5,125339,0,6566.377,16.27378,1,12,1,5.002084,.8336807,0,0,0,5.835765,0,0,0,1,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,1,0,0,76.26729,8.78987,1.386294,1.764005,1 +6,1,25,1,1,125340,0,6566.377,5.952087,1,12,1,26.50177,2.173145,0,0,0,28.67491,0,0,0,4,0,5,74.36826,13.73189,0,,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,1,0,0,72.02587,8.78987,1.609438,3.356023,1 +6,1,25,1,2,125340,0,6566.377,6.952087,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,1,0,0,72.02587,8.78987,1.609438,,0 +6,1,25,1,3,125340,0,6566.377,7.952087,1,12,1,90.90909,11.32187,0,0,278.3342,380.5651,1,0,0,1,0,5,74.36826,13.73189,0,,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,1,0,0,72.02587,8.78987,1.609438,5.941658,1 +6,1,25,1,4,125340,0,6566.377,8.952087,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,1,0,0,72.02587,8.78987,1.386294,,0 +6,1,25,1,5,125340,0,6566.377,9.952087,1,12,1,5.835765,0,0,0,0,5.835765,0,0,0,1,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,1,0,0,72.02587,8.78987,1.386294,1.764005,1 +6,1,25,1,1,125341,0,6566.377,35.60849,0,12,1,167.8445,71.67255,0,0,0,239.5171,0,0,0,11,0,5,34.7,21.7,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,61.01952,8.78987,1.609438,5.478625,1 +6,1,25,1,2,125341,0,6566.377,36.60849,0,12,1,36.1186,20.60917,0,0,0,56.72776,0,0,0,7,0,5,34.7,21.7,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,61.01952,8.78987,1.609438,4.038264,1 +6,1,25,1,3,125341,0,6566.377,37.60849,0,12,.9561644,0,4.058968,0,0,0,4.058968,0,0,0,0,0,5,34.7,21.7,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,61.01952,8.78987,1.609438,1.400929,1 +5,1,25,0,1,125352,0,5798.387,31.08829,0,12,1,15.31213,3.386337,0,0,0,18.69847,0,0,0,1,1,3,72.5,13.73189,0,,545,545,0,0,1.098612,6.300786,0,3.258096,7.68708,1,0,0,66.24147,8.665507,1.098612,2.928442,1 +5,1,25,0,2,125352,0,5798.387,32.08829,0,12,1,111.0512,3.22372,0,0,0,114.2749,0,0,0,2,0,3,72.5,13.73189,0,,545,545,0,0,1.098612,6.300786,0,3.258096,7.68708,1,0,0,66.24147,8.665507,1.098612,4.738607,1 +5,1,25,0,3,125352,0,5798.387,33.08829,0,12,1,266.0934,5.307125,0,0,783.8133,1055.214,1,0,0,4,0,3,72.5,13.73189,0,,545,545,0,0,1.098612,6.300786,0,3.258096,7.68708,1,0,0,66.24147,8.665507,1.098612,6.961499,1 +5,1,25,0,1,125353,0,5798.387,30.91855,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,63.8,13.73189,0,,545,545,0,0,1.098612,6.300786,0,3.258096,7.68708,1,0,0,69.36126,8.665507,1.098612,,0 +5,1,25,0,2,125353,0,5798.387,31.91855,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,63.8,13.73189,0,,545,545,0,0,1.098612,6.300786,0,3.258096,7.68708,1,0,0,69.36126,8.665507,1.098612,,0 +5,1,25,0,3,125353,0,5798.387,32.91855,1,12,1,36.85504,0,0,0,0,36.85504,0,0,0,1,0,3,63.8,13.73189,0,,545,545,0,0,1.098612,6.300786,0,3.258096,7.68708,1,0,0,69.36126,8.665507,1.098612,3.606992,1 +5,1,25,0,1,125354,0,5798.387,10.27515,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,74.36826,13.73189,0,,545,545,1,1,1.098612,6.300786,0,3.258096,7.68708,1,0,0,73.12908,8.665507,1.098612,,0 +5,1,25,0,2,125354,0,5798.387,11.27515,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,74.36826,13.73189,0,,545,545,1,1,1.098612,6.300786,0,3.258096,7.68708,1,0,0,73.12908,8.665507,1.098612,,0 +5,1,25,0,3,125354,0,5798.387,12.27515,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,74.36826,13.73189,0,,545,545,1,1,1.098612,6.300786,0,3.258096,7.68708,1,0,0,73.12908,8.665507,1.098612,,0 +3,1,100,1,1,125355,0,4906.328,31.66051,1,12,1,25.58001,32.79596,0,0,0,58.37597,0,0,0,4,0,1,77.9,17.4,0,,700,700,0,0,0,6.55108,1,0,0,0,0,0,78.576,8.498485,0,4.066904,1 +3,1,100,1,2,125355,0,4906.328,32.66051,1,12,1,87.6429,47.50681,33.5656,0,0,168.7153,0,0,0,10,0,1,77.9,17.4,0,,700,700,0,0,0,6.55108,1,0,0,0,0,0,78.576,8.498485,0,5.128212,1 +3,1,100,1,3,125355,0,4906.328,33.66051,1,12,1,12.3885,17.92864,0,0,0,30.31715,0,0,0,1,0,1,77.9,17.4,0,,700,700,0,0,0,6.55108,1,0,0,0,0,0,78.576,8.498485,0,3.411713,1 +4,1,100,0,1,125356,0,2566.822,5.303217,0,10,1,0,0,0,0,0,0,0,0,0,0,0,2,74.36826,13.73189,0,,537,0,1,0,.6931472,0,1,0,0,1,0,0,75.47171,7.850813,.6931472,,0 +4,1,100,0,2,125356,0,2566.822,6.303217,0,10,1,11.01322,0,0,0,0,11.01322,0,0,0,1,0,2,74.36826,13.73189,0,,537,0,1,0,.6931472,0,1,0,0,1,0,0,75.47171,7.850813,.6931472,2.399096,1 +4,1,100,0,3,125356,0,2566.822,7.303217,0,10,1,0,0,0,0,0,0,0,0,0,0,0,2,74.36826,13.73189,0,,537,0,1,0,.6931472,0,1,0,0,1,0,0,75.47171,7.850813,.6931472,,0 +4,1,100,0,1,125357,0,2566.822,37.57426,1,10,1,15.07841,1.833534,0,0,713.3414,730.2533,1,0,0,1,0,2,76.3,13.73189,0,,537,0,0,0,.6931472,0,1,0,0,1,0,0,63.56458,7.850813,.6931472,6.593391,1 +4,1,100,0,2,125357,0,2566.822,38.57426,1,10,1,13.76652,0,47.75881,0,0,61.52533,0,0,0,1,0,2,76.3,13.73189,0,,537,0,0,0,.6931472,0,1,0,0,1,0,0,63.56458,7.850813,.6931472,4.119449,1 +4,1,100,0,3,125357,0,2566.822,39.57426,1,10,1,0,0,0,0,0,0,0,0,0,0,0,2,76.3,13.73189,0,,537,0,0,0,.6931472,0,1,0,0,1,0,0,63.56458,7.850813,.6931472,,0 +4,1,100,1,1,125386,0,7636.477,14.57632,1,15,1,5.395683,14.1307,0,0,244.2866,263.813,1,0,0,1,0,2,92.2,4.3,0,,1000,1000,1,1,.6931472,6.907755,1,0,0,0,0,0,75.45777,8.940823,.6931472,5.57524,1 +4,1,100,1,2,125386,0,7636.477,15.57632,1,15,1,0,0,0,0,0,0,0,0,0,0,0,2,92.2,4.3,0,,1000,1000,1,1,.6931472,6.907755,1,0,0,0,0,0,75.45777,8.940823,.6931472,,0 +4,1,100,1,3,125386,0,7636.477,16.57632,1,15,1,0,0,0,0,0,0,0,0,0,0,0,2,92.2,4.3,0,,1000,1000,1,1,.6931472,6.907755,1,0,0,0,0,0,75.45777,8.940823,.6931472,,0 +4,1,100,1,1,125387,0,7636.477,55.44969,1,15,1,14.98801,10.7554,37.05036,0,0,62.79377,0,0,0,1,0,2,55.8,17.4,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,0,0,0,78.79291,8.940823,.6931472,4.139856,1 +4,1,100,1,2,125387,0,7636.477,56.44969,1,15,1,6.571742,2.185104,0,0,0,8.756845,0,0,0,1,0,2,55.8,17.4,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,0,0,0,78.79291,8.940823,.6931472,2.169836,1 +4,1,100,1,3,125387,0,7636.477,57.44969,1,15,1,74.81297,5.950125,0,0,0,80.76309,0,0,0,3,0,2,55.8,17.4,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,0,0,0,78.79291,8.940823,.6931472,4.39152,1 +2,1,100,0,1,125410,0,4534.119,23.95893,1,16,1,14.13428,1.413428,0,0,0,15.5477,0,0,0,3,0,1,68.4,4.3,0,,345,345,0,0,0,5.843544,1,0,0,0,0,0,78.4139,8.419606,0,2.743913,1 +2,1,100,0,2,125410,0,4534.119,24.95893,1,16,1,10.78167,1.407008,0,0,0,12.18868,0,0,0,2,0,1,68.4,4.3,0,,345,345,0,0,0,5.843544,1,0,0,0,0,0,78.4139,8.419606,0,2.500508,1 +2,1,100,0,3,125410,0,4534.119,25.95893,1,16,1,29.09091,1.184275,12.30467,0,257.5184,300.0983,1,0,0,1,2,1,68.4,4.3,0,,345,345,0,0,0,5.843544,1,0,0,0,0,0,78.4139,8.419606,0,5.70411,1 +2,1,100,0,4,125410,0,4534.119,26.95893,1,16,1,65.01823,7.301732,0,0,414.5852,486.9052,1,0,0,1,0,1,68.4,4.3,0,,345,345,0,0,0,5.843544,1,0,0,0,0,0,78.4139,8.419606,0,6.188069,1 +2,1,100,0,5,125410,0,4534.119,27.95893,1,16,1,65.23551,4.864527,0,0,0,70.10004,0,0,0,2,0,2,68.4,4.3,0,,345,345,0,0,.6931472,5.843544,1,0,0,0,0,0,78.4139,8.419606,.6931472,4.249923,1 +11,1,0,1,1,125425,0,6586.849,19.63039,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,71.6,17.4,0,,0,0,0,0,0,0,0,0,0,1,0,0,66.48602,8.792982,0,,0 +11,1,0,1,2,125425,0,6586.849,20.63039,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,71.6,17.4,0,,0,0,0,0,0,0,0,0,0,1,0,0,66.48602,8.792982,0,,0 +11,1,0,1,3,125425,0,6586.849,21.63039,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,71.6,17.4,0,,0,0,0,0,0,0,0,0,0,1,0,0,66.48602,8.792982,0,,0 +11,1,0,1,4,125425,0,6586.849,22.63039,0,12,1,32.73398,4.61042,0,0,0,37.3444,0,0,0,3,1,2,71.6,17.4,0,,0,0,0,0,.6931472,0,0,0,0,1,0,0,66.48602,8.792982,.6931472,3.620183,1 +11,1,0,1,5,125425,0,6586.849,23.63039,0,12,1,12.69573,0,0,0,0,12.69573,0,0,0,0,1,2,71.6,17.4,0,,0,0,0,0,.6931472,0,0,0,0,1,0,0,66.48602,8.792982,.6931472,2.541265,1 +11,1,0,1,1,125426,0,9542.002,19.99726,0,12,1,56.95444,4.046762,0,0,0,61.0012,0,0,0,6,0,1,69.5,4.3,0,,0,0,0,0,0,0,0,0,0,0,0,0,78.01653,9.163564,0,4.110894,1 +11,1,0,1,2,125426,0,9542.002,20.99726,0,12,1,10.9529,.5476452,0,0,0,11.50055,0,0,0,1,0,1,69.5,4.3,0,,0,0,0,0,0,0,0,0,0,0,0,0,78.01653,9.163564,0,2.442395,1 +11,1,0,1,3,125426,0,9542.002,21.99726,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,69.5,4.3,0,,0,0,0,0,0,0,0,0,0,0,0,0,78.01653,9.163564,0,,0 +11,1,0,1,4,125426,0,9542.002,22.99726,0,12,1,82.06547,18.02674,35.17289,0,0,135.2651,0,0,0,5,1,1,69.5,4.3,0,,0,0,0,0,0,0,0,0,0,0,0,0,78.01653,9.163564,0,4.907237,1 +11,1,0,1,5,125426,0,9542.002,23.99726,0,12,1,23.2755,6.982649,0,0,0,30.25815,0,0,0,1,0,1,69.5,4.3,0,,0,0,0,0,0,0,0,0,0,0,0,0,78.01653,9.163564,0,3.409765,1 +4,1,100,1,1,125432,0,2454.715,46.06434,0,17,1,108.813,112.3921,0,35.97122,0,221.205,0,0,5,11,1,4,38.9,8.7,1,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,66.84441,7.806173,1.386294,5.39909,1 +4,1,100,1,2,125432,0,2454.715,47.06434,0,17,1,370.4819,148.0449,23.46659,690.1698,2736.95,3278.943,3,0,48,44,1,4,38.9,8.7,1,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,66.84441,7.806173,1.386294,8.095277,1 +4,1,100,1,3,125432,0,2454.715,48.06434,0,17,1,168.0798,57.54115,0,139.6509,0,225.6209,0,0,7,7,0,4,38.9,8.7,1,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,66.84441,7.806173,1.386294,5.418856,1 +4,1,100,1,1,125433,0,2454.715,17.00479,1,12,1,38.3693,.8693045,0,0,0,39.23861,0,0,0,1,0,4,76.8,13,0,,1000,1000,1,1,1.386294,6.907755,1,0,0,1,0,0,64.73034,7.806173,1.386294,3.669661,1 +4,1,100,1,2,125433,0,2454.715,18.00479,1,12,1,18.15444,2.102957,33.7678,0,0,54.02519,0,0,0,1,1,4,76.8,13,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,64.73034,7.806173,1.386294,3.98945,1 +4,1,100,1,3,125433,0,2454.715,19.00479,1,12,1,22.44389,0,0,0,0,22.44389,0,0,0,3,0,4,76.8,13,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,64.73034,7.806173,1.386294,3.111018,1 +4,1,100,1,1,125434,0,2454.715,9.601643,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,1,,1000,1000,1,1,1.386294,6.907755,1,0,0,1,0,0,76.38216,7.806173,1.386294,,0 +4,1,100,1,2,125434,0,2454.715,10.60164,1,12,1,52.35487,0,0,0,0,52.35487,0,0,0,3,1,4,74.36826,13.73189,1,,1000,1000,1,1,1.386294,6.907755,1,0,0,1,0,0,76.38216,7.806173,1.386294,3.958045,1 +4,1,100,1,3,125434,0,2454.715,11.60164,1,12,1,18.95262,0,0,0,0,18.95262,0,0,0,1,0,4,74.36826,13.73189,1,,1000,1000,1,1,1.386294,6.907755,1,0,0,1,0,0,76.38216,7.806173,1.386294,2.941942,1 +4,1,100,1,1,125435,0,2454.715,47.8987,1,12,1,53.95683,68.91487,0,0,0,122.8717,0,0,0,8,0,4,42.1,39.1,1,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,1,0,54.82101,7.806173,1.386294,4.811141,1 +4,1,100,1,2,125435,0,2454.715,48.8987,1,12,1,60.78861,79.4414,30.33406,0,325.3012,495.8653,1,0,0,6,1,4,42.1,39.1,1,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,1,0,54.82101,7.806173,1.386294,6.206304,1 +4,1,100,1,3,125435,0,2454.715,49.8987,1,12,1,22.44389,2.009975,0,0,0,24.45387,0,0,0,3,0,4,42.1,39.1,1,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,1,0,54.82101,7.806173,1.386294,3.196788,1 +6,1,25,1,1,125454,0,1093.672,60.81862,1,6,1,32.71862,20.09518,0,0,0,52.8138,0,0,0,3,0,1,75.8,21.7,1,,226,226,0,0,0,5.420535,0,3.258096,6.806829,1,0,0,62.52559,6.99821,0,3.966773,1 +6,1,25,1,2,125454,0,1093.672,61.81862,1,6,1,26.12956,15.77572,0,0,0,41.90528,0,0,0,3,1,1,75.8,21.7,1,,226,226,0,0,0,5.420535,0,3.258096,6.806829,1,0,0,62.52559,6.99821,0,3.735412,1 +6,1,25,1,3,125454,0,1093.672,62.81862,1,6,1,16.84836,6.868186,0,0,0,23.71655,0,0,0,3,0,1,75.8,21.7,1,,226,226,0,0,0,5.420535,0,3.258096,6.806829,1,0,0,62.52559,6.99821,0,3.166173,1 +6,1,25,1,1,125455,0,3467.742,21.80698,1,12,1,27.95955,0,41.047,0,0,69.00655,0,0,0,2,0,1,68.4,8.7,0,,530,530,0,0,0,6.272877,0,3.258096,7.659172,0,0,0,79.25372,8.151547,0,4.234201,1 +6,1,25,1,2,125455,0,3467.742,22.80698,1,12,1,26.12956,9.450191,13.60915,0,0,49.1889,0,0,0,1,1,1,68.4,8.7,0,,530,530,0,0,0,6.272877,0,3.258096,7.659172,0,0,0,79.25372,8.151547,0,3.895668,1 +6,1,25,1,3,125455,0,3467.742,23.80698,1,12,1,20.19326,0,0,0,0,20.19326,0,0,0,1,0,1,68.4,8.7,0,,530,530,0,0,0,6.272877,0,3.258096,7.659172,0,0,0,79.25372,8.151547,0,3.005349,1 +3,1,100,0,1,125484,0,4986.759,33.18549,0,11,1,18.8457,2.915194,0,0,0,21.76089,0,0,0,3,0,3,77.9,0,0,,1000,1000,0,0,1.098612,6.907755,1,0,0,1,0,0,67.92956,8.514742,1.098612,3.080115,1 +3,1,100,0,2,125484,0,4986.759,34.18549,0,11,1,21.56334,0,0,0,0,21.56334,0,0,0,1,0,3,77.9,0,0,,1000,1000,0,0,1.098612,6.907755,1,0,0,1,0,0,67.92956,8.514742,1.098612,3.070995,1 +3,1,100,0,3,125484,0,4986.759,35.18549,0,11,1,0,0,0,0,0,0,0,0,0,0,0,3,77.9,0,0,,1000,1000,0,0,1.098612,6.907755,1,0,0,1,0,0,67.92956,8.514742,1.098612,,0 +3,1,100,0,1,125485,0,4986.759,6.672143,0,12,1,12.36749,28.97527,9.234393,0,360.424,411.0012,1,0,0,3,0,3,74.36826,13.73189,0,,1000,1000,1,0,1.098612,6.907755,1,0,0,1,0,0,73.90472,8.514742,1.098612,6.018596,1 +3,1,100,0,2,125485,0,4986.759,7.672143,0,12,1,138.7062,37.19677,0,0,0,175.903,0,0,0,17,0,3,74.36826,13.73189,0,,1000,1000,1,0,1.098612,6.907755,1,0,0,1,0,0,73.90472,8.514742,1.098612,5.169932,1 +3,1,100,0,3,125485,0,4986.759,8.672142,0,12,1,80.09828,7.149877,0,0,0,87.24815,0,0,0,21,1,3,74.36826,13.73189,0,,1000,1000,1,0,1.098612,6.907755,1,0,0,1,0,0,73.90472,8.514742,1.098612,4.468756,1 +3,1,100,0,1,125486,0,4986.759,29.27858,1,12,1,19.43463,5.859835,0,0,0,25.29446,0,0,0,5,0,3,44.2,39.1,1,,1000,1000,0,0,1.098612,6.907755,1,0,0,1,0,0,68.93575,8.514742,1.098612,3.230586,1 +3,1,100,0,2,125486,0,4986.759,30.27858,1,12,1,62.53369,97.96765,53.36927,0,2370.226,2584.097,2,0,0,5,0,3,44.2,39.1,1,,1000,1000,0,0,1.098612,6.907755,1,0,0,1,0,0,68.93575,8.514742,1.098612,7.857131,1 +3,1,100,0,3,125486,0,4986.759,31.27858,1,12,1,33.90664,87.46928,0,0,0,121.3759,0,0,0,3,0,3,44.2,39.1,1,,1000,1000,0,0,1.098612,6.907755,1,0,0,1,0,0,68.93575,8.514742,1.098612,4.798892,1 +11,1,0,0,1,125501,1,9055.211,39.57837,1,12,1,348.0216,43.64508,0,0,0,391.6667,0,0,0,10,0,8,45,13.73189,1,,0,0,0,0,2.079442,0,0,0,0,0,0,1,66.24201,9.111206,2.079442,5.970411,1 +11,1,0,0,2,125501,1,9055.211,40.57837,1,12,1,59.96714,7.721797,0,0,0,67.68893,0,0,0,1,0,8,45,13.73189,1,,0,0,0,0,2.079442,0,0,0,0,0,0,1,66.24201,9.111206,2.079442,4.214923,1 +11,1,0,0,3,125501,1,9055.211,41.57837,1,12,1,3.990025,12.06983,0,0,0,16.05985,0,0,0,1,0,8,45,13.73189,1,,0,0,0,0,2.079442,0,0,0,0,0,0,1,66.24201,9.111206,2.079442,2.776322,1 +11,1,0,0,4,125501,1,9055.211,42.57837,1,12,1,13.83126,21.96865,0,0,0,35.79991,0,0,0,2,0,8,45,13.73189,1,,0,0,0,0,2.079442,0,0,0,0,0,0,1,66.24201,9.111206,2.079442,3.577945,1 +11,1,0,0,5,125501,1,9055.211,43.57837,1,12,1,26.02624,20.94795,3.537876,0,0,50.51206,0,0,0,1,0,8,45,13.73189,1,,0,0,0,0,2.079442,0,0,0,0,0,0,1,66.24201,9.111206,2.079442,3.922212,1 +11,1,0,0,1,125502,1,9055.211,9.535934,1,12,1,64.7482,0,0,0,0,64.7482,0,0,0,2,0,8,74.36826,13.73189,0,,0,0,1,1,2.079442,0,0,0,0,0,0,0,78.46435,9.111206,2.079442,4.170506,1 +11,1,0,0,2,125502,1,9055.211,10.53593,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,74.36826,13.73189,0,,0,0,1,1,2.079442,0,0,0,0,0,0,0,78.46435,9.111206,2.079442,,0 +11,1,0,0,3,125502,1,9055.211,11.53593,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,74.36826,13.73189,0,,0,0,1,1,2.079442,0,0,0,0,0,0,0,78.46435,9.111206,2.079442,,0 +11,1,0,0,4,125502,1,9055.211,12.53593,1,12,1,56.93868,0,0,0,0,56.93868,0,0,0,3,0,8,74.36826,13.73189,0,,0,0,1,1,2.079442,0,0,0,0,0,0,0,78.46435,9.111206,2.079442,4.041975,1 +11,1,0,0,5,125502,1,9055.211,13.53593,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,74.36826,13.73189,0,,0,0,1,1,2.079442,0,0,0,0,0,0,0,78.46435,9.111206,2.079442,,0 +11,1,0,0,1,125503,1,9055.211,4.971937,0,12,1,35.3717,1.858513,0,0,0,37.23022,0,0,0,1,0,8,74.36826,13.73189,0,,0,0,1,0,2.079442,0,0,0,0,0,0,0,75.5467,9.111206,2.079442,3.617121,1 +11,1,0,0,2,125503,1,9055.211,5.971937,0,12,1,0,2.135816,0,0,0,2.135816,0,0,0,0,0,8,74.36826,13.73189,0,,0,0,1,0,2.079442,0,0,0,0,0,0,0,75.5467,9.111206,2.079442,.7588488,1 +11,1,0,0,3,125503,1,9055.211,6.971937,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,74.36826,13.73189,0,,0,0,1,0,2.079442,0,0,0,0,0,0,0,75.5467,9.111206,2.079442,,0 +11,1,0,0,4,125503,1,9055.211,7.971937,0,12,1,45.50484,0,0,0,0,45.50484,0,0,0,2,0,8,74.36826,13.73189,0,,0,0,1,0,2.079442,0,0,0,0,0,0,0,75.5467,9.111206,2.079442,3.817819,1 +11,1,0,0,5,125503,1,9055.211,8.971937,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,74.36826,13.73189,0,,0,0,1,0,2.079442,0,0,0,0,0,0,0,75.5467,9.111206,2.079442,,0 +11,1,0,0,1,125504,1,9055.211,16.19986,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,63.8,13.73189,0,,0,0,1,0,2.079442,0,0,0,0,0,0,0,75.33212,9.111206,2.079442,,0 +11,1,0,0,2,125504,1,9055.211,17.19986,0,12,1,146.2486,0,0,0,0,146.2486,0,0,0,7,0,8,63.8,13.73189,0,,0,0,1,0,2.079442,0,0,0,0,0,0,0,75.33212,9.111206,2.079442,4.985308,1 +11,1,0,0,3,125504,1,9055.211,18.19986,0,12,1,52.36908,0,0,0,0,52.36908,0,0,0,5,0,8,63.8,13.73189,0,,0,0,0,0,2.079442,0,0,0,0,0,0,0,75.33212,9.111206,2.079442,3.958316,1 +11,1,0,0,4,125504,1,9055.211,19.19986,0,12,1,0,5.928999,0,0,0,5.928999,0,0,0,0,0,8,63.8,13.73189,0,,0,0,0,0,2.079442,0,0,0,0,0,0,0,75.33212,9.111206,2.079442,1.779855,1 +11,1,0,0,5,125504,1,9055.211,20.19986,0,12,1,45.2391,0,0,0,0,45.2391,0,0,0,1,0,8,63.8,13.73189,0,,0,0,0,0,2.079442,0,0,0,0,0,0,0,75.33212,9.111206,2.079442,3.811962,1 +11,1,0,0,1,125505,1,9055.211,7.827516,0,12,1,25.77938,1.396883,0,0,0,27.17626,0,0,0,2,0,8,74.36826,13.73189,0,,0,0,1,0,2.079442,0,0,0,0,1,0,0,79.24362,9.111206,2.079442,3.302344,1 +11,1,0,0,2,125505,1,9055.211,8.827516,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,74.36826,13.73189,0,,0,0,1,0,2.079442,0,0,0,0,1,0,0,79.24362,9.111206,2.079442,,0 +11,1,0,0,3,125505,1,9055.211,9.827516,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,74.36826,13.73189,0,,0,0,1,0,2.079442,0,0,0,0,1,0,0,79.24362,9.111206,2.079442,,0 +11,1,0,0,4,125505,1,9055.211,10.82752,0,12,1,5.532504,0,0,0,0,5.532504,0,0,0,1,0,8,74.36826,13.73189,0,,0,0,1,0,2.079442,0,0,0,0,1,0,0,79.24362,9.111206,2.079442,1.71064,1 +11,1,0,0,5,125505,1,9055.211,11.82752,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,74.36826,13.73189,0,,0,0,1,0,2.079442,0,0,0,0,1,0,0,79.24362,9.111206,2.079442,,0 +11,1,0,0,1,125506,1,9055.211,14.91307,0,12,1,31.65468,1.318945,0,0,0,32.97362,0,0,0,2,0,8,80,13.73189,0,,0,0,1,0,2.079442,0,0,0,0,0,0,0,75.33212,9.111206,2.079442,3.495708,1 +11,1,0,0,2,125506,1,9055.211,15.91307,0,12,1,190.0986,11.74699,0,0,0,201.8456,0,0,0,2,0,8,80,13.73189,0,,0,0,1,0,2.079442,0,0,0,0,0,0,0,75.33212,9.111206,2.079442,5.307503,1 +11,1,0,0,3,125506,1,9055.211,16.91307,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,80,13.73189,0,,0,0,1,0,2.079442,0,0,0,0,0,0,0,75.33212,9.111206,2.079442,,0 +11,1,0,0,4,125506,1,9055.211,17.91307,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,80,13.73189,0,,0,0,1,0,2.079442,0,0,0,0,0,0,0,75.33212,9.111206,2.079442,,0 +11,1,0,0,5,125506,1,9055.211,18.91307,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,80,13.73189,0,,0,0,0,0,2.079442,0,0,0,0,0,0,0,75.33212,9.111206,2.079442,,0 +11,1,0,0,1,125507,1,9055.211,37.17728,0,3,1,0,0,0,0,0,0,0,0,0,0,0,8,73.8,13.73189,0,,0,0,0,0,2.079442,0,0,0,0,1,0,0,62.82508,9.111206,2.079442,,0 +11,1,0,0,2,125507,1,9055.211,38.17728,0,3,1,8.214677,4.791895,0,0,699.9124,712.9189,1,0,0,1,0,8,73.8,13.73189,0,,0,0,0,0,2.079442,0,0,0,0,1,0,0,62.82508,9.111206,2.079442,6.569368,1 +11,1,0,0,3,125507,1,9055.211,39.17728,0,3,1,0,0,0,0,0,0,0,0,0,0,0,8,73.8,13.73189,0,,0,0,0,0,2.079442,0,0,0,0,1,0,0,62.82508,9.111206,2.079442,,0 +11,1,0,0,4,125507,1,9055.211,40.17728,0,3,1,28.5846,5.048409,0,0,0,33.63301,0,0,0,6,0,8,73.8,13.73189,0,,0,0,0,0,2.079442,0,0,0,0,1,0,0,62.82508,9.111206,2.079442,3.515508,1 +11,1,0,0,5,125507,1,9055.211,41.17728,0,3,1,0,0,0,0,0,0,0,0,0,0,0,8,73.8,13.73189,0,,0,0,0,0,2.079442,0,0,0,0,1,0,0,62.82508,9.111206,2.079442,,0 +11,1,0,0,1,125520,1,9542.002,13.06776,1,8,1,23.79536,8.090423,0,0,0,31.88578,0,0,0,3,0,3,74.36826,13.73189,0,,0,0,1,1,1.098612,0,0,0,0,1,0,0,78.41846,9.163564,1.098612,3.46216,1 +11,1,0,0,2,125520,1,9542.002,14.06776,1,8,1,45.18236,8.111051,0,0,0,53.29342,0,0,0,4,0,3,74.36826,13.73189,0,,0,0,1,1,1.098612,0,0,0,0,1,0,0,78.41846,9.163564,1.098612,3.975813,1 +11,1,0,0,3,125520,1,9542.002,15.06776,1,8,1,77.05649,6.417245,0,0,0,83.47374,0,0,0,5,0,3,74.36826,13.73189,0,,0,0,1,1,1.098612,0,0,0,0,1,0,0,78.41846,9.163564,1.098612,4.424532,1 +11,1,0,0,1,125521,1,9542.002,55.04175,0,8,1,0,0,0,0,0,0,0,0,0,0,0,3,98.7,13.73189,0,,0,0,0,0,1.098612,0,0,0,0,0,1,0,66.12138,9.163564,1.098612,,0 +11,1,0,0,2,125521,1,9542.002,56.04175,0,8,1,0,0,0,0,0,0,0,0,0,0,0,3,98.7,13.73189,0,,0,0,0,0,1.098612,0,0,0,0,0,1,0,66.12138,9.163564,1.098612,,0 +11,1,0,0,3,125521,1,9542.002,57.04175,0,8,1,0,0,0,0,0,0,0,0,0,0,0,3,98.7,13.73189,0,,0,0,0,0,1.098612,0,0,0,0,0,1,0,66.12138,9.163564,1.098612,,0 +11,1,0,0,1,125522,1,9542.002,46.06982,1,8,1,52.94468,108.6615,0,0,0,161.6062,0,0,0,9,0,3,91.3,13.73189,1,,0,0,0,0,1.098612,0,0,0,0,0,1,0,61.18452,9.163564,1.098612,5.085163,1 +11,1,0,0,2,125522,1,9542.002,47.06982,1,8,1,59.88024,77.16386,0,0,0,137.0441,0,0,0,9,0,3,91.3,13.73189,1,,0,0,0,0,1.098612,0,0,0,0,0,1,0,61.18452,9.163564,1.098612,4.920303,1 +11,1,0,0,3,125522,1,9542.002,48.06982,1,8,1,90.68385,107.5322,0,0,0,198.216,0,0,0,10,0,3,91.3,13.73189,1,,0,0,0,0,1.098612,0,0,0,0,0,1,0,61.18452,9.163564,1.098612,5.289358,1 +5,1,25,0,1,125535,1,4560.794,54.19576,1,9,1,28.17746,0,0,0,0,28.17746,0,0,0,2,0,1,81.3,13.73189,0,,305,305,0,0,0,5.720312,0,3.258096,7.106606,0,1,0,62.11581,8.425471,0,3.338522,1 +5,1,25,0,2,125535,1,4560.794,55.19576,1,9,1,89.12924,14.40307,84.12924,0,0,187.6616,0,0,0,5,0,1,81.3,13.73189,0,,305,305,0,0,0,5.720312,0,3.258096,7.106606,0,1,0,62.11581,8.425471,0,5.23464,1 +5,1,25,0,3,125535,1,4560.794,56.19576,1,9,1,159.1022,0,0,0,54.86284,213.9651,1,1,0,9,0,1,81.3,13.73189,0,,305,305,0,0,0,5.720312,0,3.258096,7.106606,0,1,0,62.11581,8.425471,0,5.365813,1 +5,1,25,0,4,125535,1,4560.794,57.19576,1,9,1,1629.986,87.47349,369.29,0,10612.44,12699.19,6,0,0,48,99,1,81.3,13.73189,0,,305,305,0,0,0,5.720312,0,3.258096,7.106606,0,1,0,62.11581,8.425471,0,9.449294,1 +5,1,25,0,5,125535,1,4560.794,58.19576,1,9,.2684931,1913.957,74.28693,70.22429,0,445.6665,2504.135,1,0,0,8,78,1,81.3,13.73189,0,,305,305,0,0,0,5.720312,0,3.258096,7.106606,0,1,0,62.11581,8.425471,0,7.825698,1 +3,1,100,1,1,125558,0,10174.32,14.47775,1,12,1,34.50327,47.81678,0,0,0,82.32005,0,0,0,5,0,5,40,4.3,0,,1000,1000,1,1,1.609438,6.907755,1,0,0,0,0,0,73.93777,9.22772,1.609438,4.410614,1 +3,1,100,1,2,125558,0,10174.32,15.47775,1,12,1,53.89222,16.84812,0,0,0,70.74034,0,0,0,8,0,5,40,4.3,0,,1000,1000,1,1,1.609438,6.907755,1,0,0,0,0,0,73.93777,9.22772,1.609438,4.259016,1 +3,1,100,1,3,125558,0,10174.32,16.47775,1,12,1,96.25867,20.9663,0,0,0,117.225,0,0,0,14,0,5,40,4.3,0,,1000,1000,1,1,1.609438,6.907755,1,0,0,0,0,0,73.93777,9.22772,1.609438,4.764095,1 +3,1,100,1,1,125559,0,10174.32,11.84668,1,12,1,45.50863,13.48602,0,0,0,58.99464,0,0,0,5,0,5,74.36826,13.73189,0,,1000,1000,1,1,1.609438,6.907755,1,0,0,0,0,0,83.01885,9.22772,1.609438,4.077446,1 +3,1,100,1,2,125559,0,10174.32,12.84668,1,12,1,113.337,22.43876,34.69788,0,0,170.4736,0,0,0,10,1,5,74.36826,13.73189,0,,1000,1000,1,1,1.609438,6.907755,1,0,0,0,0,0,83.01885,9.22772,1.609438,5.13858,1 +3,1,100,1,3,125559,0,10174.32,13.84668,1,12,1,36.05054,9.088206,11.72943,0,0,56.86819,0,0,0,4,1,5,74.36826,13.73189,0,,1000,1000,1,1,1.609438,6.907755,1,0,0,0,0,0,83.01885,9.22772,1.609438,4.040736,1 +3,1,100,1,1,125560,0,10174.32,4.596851,1,12,1,52.94468,21.56454,0,0,0,74.50922,0,0,0,7,0,5,74.36826,13.73189,0,,1000,1000,1,1,1.609438,6.907755,1,0,0,0,0,0,79.58723,9.22772,1.609438,4.310923,1 +3,1,100,1,2,125560,0,10174.32,5.596851,1,12,1,62.0577,19.53185,0,0,0,81.58955,0,0,0,6,0,5,74.36826,13.73189,0,,1000,1000,1,1,1.609438,6.907755,1,0,0,0,0,0,79.58723,9.22772,1.609438,4.401701,1 +3,1,100,1,3,125560,0,10174.32,6.596851,1,12,1,27.99802,18.76611,0,0,0,46.76412,0,0,0,3,1,5,74.36826,13.73189,0,,1000,1000,1,1,1.609438,6.907755,1,0,0,0,0,0,79.58723,9.22772,1.609438,3.845116,1 +3,1,100,1,1,125561,0,10174.32,35.14032,1,12,1,21.71327,2.492564,0,0,0,24.20583,0,0,0,2,0,5,65.3,21.7,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,0,0,0,78.3196,9.22772,1.609438,3.186594,1 +3,1,100,1,2,125561,0,10174.32,36.14032,1,12,1,15.78661,4.284159,0,0,0,20.07077,0,0,0,2,0,5,65.3,21.7,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,0,0,0,78.3196,9.22772,1.609438,2.999264,1 +3,1,100,1,3,125561,0,10174.32,37.14032,1,12,1,20.6888,9.811695,0,0,0,30.5005,0,0,0,2,0,5,65.3,21.7,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,0,0,0,78.3196,9.22772,1.609438,3.417743,1 +3,1,100,1,1,125562,0,10174.32,37.46749,0,12,1,21.41582,.9399167,0,0,0,22.35574,0,0,0,1,0,5,72.6,0,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,0,0,0,77.42842,9.22772,1.609438,3.107083,1 +3,1,100,1,2,125562,0,10174.32,38.46749,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,72.6,0,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,0,0,0,77.42842,9.22772,1.609438,,0 +3,1,100,1,3,125562,0,10174.32,39.46749,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,72.6,0,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,0,0,0,77.42842,9.22772,1.609438,,0 +7,1,25,1,1,125563,0,5212.159,56.80493,0,11,1,384.89,464.2772,0,0,380.3688,1229.536,1,0,0,30,0,2,41.1,43.5,1,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,1,47.30153,8.558941,.6931472,7.114392,1 +7,1,25,1,2,125563,0,5212.159,57.80493,0,11,1,219.3794,246.9243,0,0,0,466.3037,0,0,0,25,0,2,41.1,43.5,1,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,1,47.30153,8.558941,.6931472,6.144837,1 +7,1,25,1,3,125563,0,5212.159,58.80493,0,11,1,172.9435,265.892,0,0,3273.32,3712.156,3,0,0,18,1,2,41.1,43.5,1,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,1,47.30153,8.558941,.6931472,8.219368,1 +7,1,25,1,4,125563,0,5212.159,59.80493,0,11,1,156.0349,325.6631,30.74805,0,0,512.4461,0,0,0,15,1,2,41.1,43.5,1,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,1,47.30153,8.558941,.6931472,6.239195,1 +7,1,25,1,5,125563,0,5212.159,60.80493,0,11,1,216.6597,202.5452,23.55911,0,3844.867,4287.631,5,0,0,20,0,2,41.1,43.5,1,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,1,47.30153,8.558941,.6931472,8.36349,1 +7,1,25,1,1,125564,0,5212.159,46.55989,1,12,1,685.9429,402.8673,6.912552,0,2913.075,4008.798,1,0,0,45,1,2,52.6,43.5,1,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,1,0,0,65.82284,8.558941,.6931472,8.296247,1 +7,1,25,1,2,125564,0,5212.159,47.55989,1,12,1,211.4861,452.5749,0,0,0,664.061,0,0,0,28,0,2,52.6,43.5,1,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,1,0,0,65.82284,8.558941,.6931472,6.498374,1 +7,1,25,1,3,125564,0,5212.159,48.55989,1,12,1,144.5441,268.776,25.11397,0,0,438.4341,0,0,0,14,1,2,52.6,43.5,1,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,1,0,0,65.82284,8.558941,.6931472,6.08321,1 +7,1,25,1,4,125564,0,5212.159,49.55989,1,12,1,196.2827,228.7334,3.212483,0,3800.069,4228.297,2,0,0,14,3,2,52.6,43.5,1,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,1,0,0,65.82284,8.558941,.6931472,8.349555,1 +7,1,25,1,5,125564,0,5212.159,50.55989,1,12,1,489.6929,264.2869,33.65587,0,2078.502,2866.138,3,0,0,28,5,2,52.6,43.5,1,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,1,0,0,65.82284,8.558941,.6931472,7.960721,1 +9,1,50,1,1,125567,0,10021.71,36.75565,1,17,1,22.01071,7.061273,0,0,0,29.07198,0,0,0,3,0,4,62.1,13,0,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,79.82717,9.212609,1.386294,3.369775,1 +9,1,50,1,2,125567,0,10021.71,37.75565,1,17,1,0,0,0,0,0,0,0,0,0,0,0,4,62.1,13,0,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,79.82717,9.212609,1.386294,,0 +9,1,50,1,3,125567,0,10021.71,38.75565,1,17,1,120.4163,3.320119,1.48662,14.8662,0,125.223,0,0,3,3,0,4,62.1,13,0,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,79.82717,9.212609,1.386294,4.830096,1 +9,1,50,1,1,125568,0,10021.71,6.329911,0,17,1,19.03629,2.825699,0,0,0,21.86199,0,0,0,1,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,85.78433,9.212609,1.386294,3.084749,1 +9,1,50,1,2,125568,0,10021.71,7.329911,0,17,1,34.02286,0,0,0,0,34.02286,0,0,0,1,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,85.78433,9.212609,1.386294,3.527033,1 +9,1,50,1,3,125568,0,10021.71,8.329911,0,17,1,12.3885,0,0,0,0,12.3885,0,0,0,0,1,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,85.78433,9.212609,1.386294,2.516769,1 +9,1,50,1,1,125569,0,10021.71,13.42642,1,17,1,24.98513,1.784652,0,0,0,26.76978,0,0,0,2,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.931826,7.600903,0,0,0,85.27036,9.212609,1.386294,3.287274,1 +9,1,50,1,2,125569,0,10021.71,14.42642,1,17,1,6.53239,2.177463,0,0,0,8.709853,0,0,0,1,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.931826,7.600903,0,0,0,85.27036,9.212609,1.386294,2.164455,1 +9,1,50,1,3,125569,0,10021.71,15.42642,1,17,1,14.8662,6.194252,0,14.8662,0,21.06046,0,0,3,3,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.931826,7.600903,0,0,0,85.27036,9.212609,1.386294,3.047397,1 +9,1,50,1,1,125570,0,10021.71,42.07529,0,10,1,14.8721,0,19.03629,0,0,33.90839,0,0,0,0,1,4,74.7,17.4,0,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,69.59772,9.212609,1.386294,3.523662,1 +9,1,50,1,2,125570,0,10021.71,43.07529,0,10,1,0,0,0,0,0,0,0,0,0,0,0,4,74.7,17.4,0,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,69.59772,9.212609,1.386294,,0 +9,1,50,1,3,125570,0,10021.71,44.07529,0,10,1,90.68385,1.73439,0,14.8662,0,92.41824,0,0,3,7,0,4,74.7,17.4,0,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,69.59772,9.212609,1.386294,4.526324,1 +2,1,100,1,1,125574,0,5724.566,27.76728,1,13,1,0,0,0,0,0,0,0,0,0,0,0,3,77.9,0,0,,359,359,0,0,1.098612,5.883322,1,0,0,1,0,0,72.43401,8.652697,1.098612,,0 +2,1,100,1,2,125574,0,5724.566,28.76728,1,13,1,0,0,0,0,0,0,0,0,0,0,0,3,77.9,0,0,,359,359,0,0,1.098612,5.883322,1,0,0,1,0,0,72.43401,8.652697,1.098612,,0 +2,1,100,1,3,125574,0,5724.566,29.76728,1,13,1,10.90188,0,0,0,0,10.90188,0,0,0,1,0,3,77.9,0,0,,359,359,0,0,1.098612,5.883322,1,0,0,1,0,0,72.43401,8.652697,1.098612,2.388936,1 +2,1,100,1,1,125575,0,5724.566,8.008214,0,13,1,0,0,0,0,0,0,0,0,0,0,0,3,74.36826,13.73189,0,,359,359,1,0,1.098612,5.883322,1,0,0,0,0,0,82.44528,8.652697,1.098612,,0 +2,1,100,1,2,125575,0,5724.566,9.008214,0,13,1,34.86663,0,0,0,0,34.86663,0,0,0,0,1,3,74.36826,13.73189,0,,359,359,1,0,1.098612,5.883322,1,0,0,0,0,0,82.44528,8.652697,1.098612,3.55153,1 +2,1,100,1,3,125575,0,5724.566,10.00821,0,13,1,9.910803,.9910803,0,0,0,10.90188,0,0,0,2,0,3,74.36826,13.73189,0,,359,359,1,0,1.098612,5.883322,1,0,0,0,0,0,82.44528,8.652697,1.098612,2.388936,1 +2,1,100,1,1,125576,0,5724.566,27.1102,0,16,1,0,0,0,0,0,0,0,0,0,0,0,3,62.1,26.1,0,,359,359,0,0,1.098612,5.883322,1,0,0,0,0,0,69.46257,8.652697,1.098612,,0 +2,1,100,1,2,125576,0,5724.566,28.1102,0,16,1,0,0,0,0,0,0,0,0,0,0,0,3,62.1,26.1,0,,359,359,0,0,1.098612,5.883322,1,0,0,0,0,0,69.46257,8.652697,1.098612,,0 +2,1,100,1,3,125576,0,5724.566,29.1102,0,16,1,0,0,0,0,0,0,0,0,0,0,0,3,62.1,26.1,0,,359,359,0,0,1.098612,5.883322,1,0,0,0,0,0,69.46257,8.652697,1.098612,,0 +2,1,100,1,1,125586,0,18062.99,17.12252,1,12,1,21.41582,4.491374,0,0,0,25.9072,0,0,0,2,1,6,56.8,8.7,0,,1000,1000,1,1,1.791759,6.907755,1,0,0,1,0,0,68.8233,9.801676,1.791759,3.254521,1 +2,1,100,1,2,125586,0,18062.99,18.12252,1,12,1,53.62003,1.360915,.9526402,0,0,55.93359,0,0,0,2,0,6,56.8,8.7,0,,1000,1000,0,0,1.791759,6.907755,1,0,0,1,0,0,68.8233,9.801676,1.791759,4.024165,1 +2,1,100,1,1,125587,0,18062.99,19.14305,1,12,1,152.1594,51.43367,33.56931,0,1869.024,2106.187,2,0,0,7,1,6,45.3,26.1,0,,1000,1000,0,0,1.791759,6.907755,1,0,0,0,1,0,57.79599,9.801676,1.791759,7.652634,1 +2,1,100,1,2,125587,0,18062.99,20.14305,1,12,1,40.55525,24.81764,0,0,0,65.37289,0,0,0,4,0,6,45.3,26.1,0,,1000,1000,0,0,1.791759,6.907755,1,0,0,0,1,0,57.79599,9.801676,1.791759,4.180108,1 +2,1,100,1,3,125587,0,18062.99,21.14305,1,12,1,117.6908,39.4004,37.28444,0,0,194.3756,0,0,0,9,1,5,45.3,26.1,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,0,1,0,57.79599,9.801676,1.609438,5.269793,1 +2,1,100,1,4,125587,0,18062.99,22.14305,1,12,1,80.771,33.29509,0,0,0,114.0661,0,0,0,10,0,5,45.3,26.1,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,0,1,0,57.79599,9.801676,1.609438,4.736778,1 +2,1,100,1,5,125587,0,18062.99,23.14305,1,12,1,260.2019,164.2785,32.5326,0,732.0782,1189.091,1,0,0,9,1,5,45.3,26.1,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,0,1,0,57.79599,9.801676,1.609438,7.080945,1 +2,1,100,1,1,125588,0,18062.99,43.6961,0,12,1,45.21119,45.09221,62.14753,0,0,152.4509,0,0,0,5,2,6,77.9,8.7,0,,1000,1000,0,0,1.791759,6.907755,1,0,0,1,0,0,64.31509,9.801676,1.791759,5.026843,1 +2,1,100,1,2,125588,0,18062.99,44.6961,0,12,1,117.583,71.36636,0,0,0,188.9494,0,0,0,9,6,6,77.9,8.7,0,,1000,1000,0,0,1.791759,6.907755,1,0,0,1,0,0,64.31509,9.801676,1.791759,5.241479,1 +2,1,100,1,3,125588,0,18062.99,45.6961,0,12,1,100.0991,27.70069,0,0,0,127.7998,0,0,0,7,0,5,77.9,8.7,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,1,0,0,64.31509,9.801676,1.609438,4.850465,1 +2,1,100,1,4,125588,0,18062.99,46.6961,0,12,1,16.98027,43.23084,0,0,0,60.21111,0,0,0,3,0,5,77.9,8.7,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,1,0,0,64.31509,9.801676,1.609438,4.097857,1 +2,1,100,1,5,125588,0,18062.99,47.6961,0,12,1,37.86285,47.72823,50.99706,0,0,136.5881,0,0,0,4,1,5,77.9,8.7,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,1,0,0,64.31509,9.801676,1.609438,4.91697,1 +2,1,100,1,1,125589,0,18062.99,39.83847,1,12,1,29.14932,0,42.27246,0,0,71.42178,0,0,0,3,1,6,81.1,8.7,1,,1000,1000,0,0,1.791759,6.907755,1,0,0,1,0,0,72.26447,9.801676,1.791759,4.268603,1 +2,1,100,1,2,125589,0,18062.99,40.83847,1,12,1,6.53239,2.384322,0,0,0,8.916712,0,0,0,3,0,6,81.1,8.7,1,,1000,1000,0,0,1.791759,6.907755,1,0,0,1,0,0,72.26447,9.801676,1.791759,2.187927,1 +2,1,100,1,3,125589,0,18062.99,41.83847,1,12,1,20.31715,3.508424,37.80476,0,0,61.63033,0,0,0,1,1,5,81.1,8.7,1,,1000,1000,0,0,1.609438,6.907755,1,0,0,1,0,0,72.26447,9.801676,1.609438,4.121154,1 +2,1,100,1,4,125589,0,18062.99,42.83847,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,81.1,8.7,1,,1000,1000,0,0,1.609438,6.907755,1,0,0,1,0,0,72.26447,9.801676,1.609438,,0 +2,1,100,1,5,125589,0,18062.99,43.83847,1,12,1,174.5688,0,43.08372,0,0,217.6525,0,0,0,3,1,5,81.1,8.7,1,,1000,1000,0,0,1.609438,6.907755,1,0,0,1,0,0,72.26447,9.801676,1.609438,5.3829,1 +2,1,100,1,1,125590,0,18062.99,17.12252,1,12,1,35.69304,0,23.00416,0,0,58.6972,0,0,0,4,1,6,76.8,13,0,,1000,1000,1,1,1.791759,6.907755,1,0,0,1,0,0,68.8233,9.801676,1.791759,4.072392,1 +2,1,100,1,2,125590,0,18062.99,18.12252,1,12,1,11.43168,0,0,0,0,11.43168,0,0,0,1,0,6,76.8,13,0,,1000,1000,0,0,1.791759,6.907755,1,0,0,1,0,0,68.8233,9.801676,1.791759,2.436388,1 +2,1,100,1,3,125590,0,18062.99,19.12252,1,12,1,36.66997,5.277503,14.4995,0,0,56.44698,0,0,0,1,1,5,76.8,13,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,1,0,0,68.8233,9.801676,1.609438,4.033302,1 +2,1,100,1,4,125590,0,18062.99,20.12252,1,12,1,36.71409,2.225792,0,0,0,38.93988,0,0,0,3,0,5,76.8,13,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,1,0,0,68.8233,9.801676,1.609438,3.662019,1 +2,1,100,1,5,125590,0,18062.99,21.12252,1,12,1,30.71098,6.327303,29.69289,0,0,66.73117,0,0,0,2,1,5,76.8,13,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,1,0,0,68.8233,9.801676,1.609438,4.200672,1 +2,1,100,1,1,125591,0,18062.99,13.03765,1,12,1,83.28376,3.450327,398.5842,0,1679.494,2164.813,1,0,0,1,2,6,74.36826,13.73189,1,,1000,1000,1,1,1.791759,6.907755,1,0,0,0,1,0,66.11668,9.801676,1.791759,7.680089,1 +2,1,100,1,2,125591,0,18062.99,14.03765,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,74.36826,13.73189,1,,1000,1000,1,1,1.791759,6.907755,1,0,0,0,1,0,66.11668,9.801676,1.791759,,0 +2,1,100,1,3,125591,0,18062.99,15.03765,1,12,1,3.468781,0,0,0,0,3.468781,0,0,0,1,0,5,74.36826,13.73189,1,,1000,1000,1,1,1.609438,6.907755,1,0,0,0,1,0,66.11668,9.801676,1.609438,1.243803,1 +2,1,100,1,4,125591,0,18062.99,16.03765,1,12,1,39.23818,5.598898,0,0,0,44.83708,0,0,0,3,0,5,74.36826,13.73189,1,,1000,1000,1,1,1.609438,6.907755,1,0,0,0,1,0,66.11668,9.801676,1.609438,3.803035,1 +2,1,100,1,5,125591,0,18062.99,17.03765,1,12,1,31.55238,0,30.33656,0,0,61.88894,0,0,0,1,1,5,74.36826,13.73189,1,,1000,1000,1,1,1.609438,6.907755,1,0,0,0,1,0,66.11668,9.801676,1.609438,4.125341,1 +11,1,0,1,1,125613,0,1388.958,20.10404,0,9,1,20.5235,36.35931,0,0,0,56.88281,0,0,0,2,0,1,46.3,17.4,1,,0,0,0,0,0,0,0,0,0,1,0,0,68.92193,7.237029,0,4.040993,1 +11,1,0,1,2,125613,0,1388.958,21.10404,0,9,1,34.38214,0,0,0,0,34.38214,0,0,0,1,0,1,46.3,17.4,1,,0,0,0,0,0,0,0,0,0,1,0,0,68.92193,7.237029,0,3.537537,1 +11,1,0,1,3,125613,0,1388.958,22.10404,0,9,1,37.41328,5.649158,0,0,0,43.06244,0,0,0,3,0,1,46.3,17.4,1,,0,0,0,0,0,0,0,0,0,1,0,0,68.92193,7.237029,0,3.762651,1 +11,1,0,1,4,125613,0,1388.958,23.10404,0,9,1,0,0,0,0,0,0,0,0,0,0,0,1,46.3,17.4,1,,0,0,0,0,0,0,0,0,0,1,0,0,68.92193,7.237029,0,,0 +11,1,0,1,5,125613,0,1388.958,24.10404,0,9,1,21.03492,0,0,0,0,21.03492,0,0,0,1,0,1,46.3,17.4,1,,0,0,0,0,0,0,0,0,0,1,0,0,68.92193,7.237029,0,3.046184,1 +11,1,0,1,1,125614,0,3273.573,57.48391,1,8,1,0,45.87745,0,26.76978,0,45.87745,0,0,3,0,0,1,83.2,13,0,,0,0,0,0,0,0,0,0,0,0,1,0,53.37024,8.093943,0,3.825974,1 +11,1,0,1,2,125614,0,3273.573,58.48391,1,8,1,0,32.69461,0,32.66195,0,32.69461,0,0,4,0,0,1,83.2,13,0,,0,0,0,0,0,0,0,0,0,0,1,0,53.37024,8.093943,0,3.48721,1 +11,1,0,1,3,125614,0,3273.573,59.48391,1,8,1,0,33.05748,0,22.29931,0,33.05748,0,0,3,0,0,1,83.2,13,0,,0,0,0,0,0,0,0,0,0,0,1,0,53.37024,8.093943,0,3.498248,1 +11,1,0,1,4,125614,0,3273.573,60.48391,1,8,1,0,35.09867,0,22.94631,0,35.09867,0,0,3,0,0,1,83.2,13,0,,0,0,0,0,0,0,0,0,0,0,1,0,53.37024,8.093943,0,3.558163,1 +11,1,0,1,5,125614,0,3273.573,61.48391,1,8,1,0,35.12411,0,33.65587,0,35.12411,0,0,4,0,0,1,83.2,13,0,,0,0,0,0,0,0,0,0,0,0,1,0,53.37024,8.093943,0,3.558888,1 +6,1,25,1,1,125617,0,9542.002,6.817248,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,74.36826,13.73189,0,,1000,1000,1,0,1.791759,6.907755,0,3.258096,8.294049,1,0,0,72.63244,9.163564,1.791759,,0 +6,1,25,1,2,125617,0,9542.002,7.817248,0,12,1,2.695418,0,0,0,0,2.695418,0,0,0,1,0,6,74.36826,13.73189,0,,1000,1000,1,0,1.791759,6.907755,0,3.258096,8.294049,1,0,0,72.63244,9.163564,1.791759,.9915532,1 +6,1,25,1,3,125617,0,9542.002,8.817248,0,12,1,67.66585,0,4.570024,0,0,72.23587,0,0,0,3,0,6,74.36826,13.73189,0,,1000,1000,1,0,1.791759,6.907755,0,3.258096,8.294049,1,0,0,72.63244,9.163564,1.791759,4.279937,1 +6,1,25,1,4,125617,0,9542.002,9.817248,0,12,1,24.38469,0,0,0,782.0739,806.4585,1,0,0,1,0,6,74.36826,13.73189,0,,1000,1000,1,0,1.791759,6.907755,0,3.258096,8.294049,1,0,0,72.63244,9.163564,1.791759,6.692652,1 +6,1,25,1,5,125617,0,9542.002,10.81725,0,12,1,236.9737,0,0,0,0,236.9737,0,0,0,4,0,6,74.36826,13.73189,0,,1000,1000,1,0,1.791759,6.907755,0,3.258096,8.294049,1,0,0,72.63244,9.163564,1.791759,5.467949,1 +6,1,25,1,1,125618,0,9542.002,3.693361,1,12,1,45.78917,0,27.07892,0,0,72.86808,0,0,0,1,0,6,74.36826,13.73189,0,,1000,1000,1,1,1.791759,6.907755,0,3.258096,8.294049,1,0,0,68.68684,9.163564,1.791759,4.288651,1 +6,1,25,1,2,125618,0,9542.002,4.693361,1,12,1,2.695418,0,0,0,0,2.695418,0,0,0,1,0,6,74.36826,13.73189,0,,1000,1000,1,1,1.791759,6.907755,0,3.258096,8.294049,1,0,0,68.68684,9.163564,1.791759,.9915532,1 +6,1,25,1,3,125618,0,9542.002,5.693361,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,74.36826,13.73189,0,,1000,1000,1,1,1.791759,6.907755,0,3.258096,8.294049,1,0,0,68.68684,9.163564,1.791759,,0 +6,1,25,1,4,125618,0,9542.002,6.693361,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,74.36826,13.73189,0,,1000,1000,1,1,1.791759,6.907755,0,3.258096,8.294049,1,0,0,68.68684,9.163564,1.791759,,0 +6,1,25,1,5,125618,0,9542.002,7.693361,1,12,1,10.42101,0,0,0,0,10.42101,0,0,0,1,0,6,74.36826,13.73189,0,,1000,1000,1,1,1.791759,6.907755,0,3.258096,8.294049,1,0,0,68.68684,9.163564,1.791759,2.343824,1 +6,1,25,1,1,125619,0,9542.002,4.807666,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,74.36826,13.73189,0,,1000,1000,1,0,1.791759,6.907755,0,3.258096,8.294049,1,0,0,69.20081,9.163564,1.791759,,0 +6,1,25,1,2,125619,0,9542.002,5.807666,0,12,1,2.695418,0,0,0,0,2.695418,0,0,0,1,0,6,74.36826,13.73189,0,,1000,1000,1,0,1.791759,6.907755,0,3.258096,8.294049,1,0,0,69.20081,9.163564,1.791759,.9915532,1 +6,1,25,1,3,125619,0,9542.002,6.807666,0,12,1,14.74201,0,23.48894,0,0,38.23096,0,0,0,1,0,6,74.36826,13.73189,0,,1000,1000,1,0,1.791759,6.907755,0,3.258096,8.294049,1,0,0,69.20081,9.163564,1.791759,3.643646,1 +6,1,25,1,4,125619,0,9542.002,7.807666,0,12,1,60.28715,0,14.28897,0,0,74.57612,0,0,0,3,0,6,74.36826,13.73189,0,,1000,1000,1,0,1.791759,6.907755,0,3.258096,8.294049,1,0,0,69.20081,9.163564,1.791759,4.311821,1 +6,1,25,1,5,125619,0,9542.002,8.807666,0,12,1,10.42101,0,20.90871,0,0,31.32972,0,0,0,1,0,6,74.36826,13.73189,0,,1000,1000,1,0,1.791759,6.907755,0,3.258096,8.294049,1,0,0,69.20081,9.163564,1.791759,3.444567,1 +6,1,25,1,1,125620,0,9542.002,35.6961,0,10,1,0,0,33.23322,0,0,33.23322,0,0,0,0,0,6,58.9,21.7,0,,1000,1000,0,0,1.791759,6.907755,0,3.258096,8.294049,1,0,0,67.52351,9.163564,1.791759,3.50355,1 +6,1,25,1,2,125620,0,9542.002,36.6961,0,10,1,140.9704,7.385445,0,0,0,148.3558,0,0,0,3,0,6,58.9,21.7,0,,1000,1000,0,0,1.791759,6.907755,0,3.258096,8.294049,1,0,0,67.52351,9.163564,1.791759,4.999613,1 +6,1,25,1,3,125620,0,9542.002,37.6961,0,10,1,35.74939,0,0,0,0,35.74939,0,0,0,1,0,6,58.9,21.7,0,,1000,1000,0,0,1.791759,6.907755,0,3.258096,8.294049,1,0,0,67.52351,9.163564,1.791759,3.576533,1 +6,1,25,1,4,125620,0,9542.002,38.6961,0,10,1,31.9052,0,0,0,675.6426,707.5479,1,0,0,0,3,6,58.9,21.7,0,,1000,1000,0,0,1.791759,6.907755,0,3.258096,8.294049,1,0,0,67.52351,9.163564,1.791759,6.561805,1 +6,1,25,1,5,125620,0,9542.002,39.6961,0,10,1,0,0,0,0,0,0,0,0,0,0,0,6,58.9,21.7,0,,1000,1000,0,0,1.791759,6.907755,0,3.258096,8.294049,1,0,0,67.52351,9.163564,1.791759,,0 +6,1,25,1,1,125621,0,9542.002,26.33539,1,12,1,0,3.239105,0,0,0,3.239105,0,0,0,0,0,6,49.5,21.7,0,,1000,1000,0,0,1.791759,6.907755,0,3.258096,8.294049,1,0,0,71.57712,9.163564,1.791759,1.175297,1 +6,1,25,1,2,125621,0,9542.002,27.33539,1,12,1,77.35849,5.175202,0,0,0,82.53369,0,0,0,4,9,6,49.5,21.7,0,,1000,1000,0,0,1.791759,6.907755,0,3.258096,8.294049,1,0,0,71.57712,9.163564,1.791759,4.413207,1 +6,1,25,1,3,125621,0,9542.002,28.33539,1,12,1,78.50123,1.719902,0,0,1031.071,1111.292,1,0,0,2,0,6,49.5,21.7,0,,1000,1000,0,0,1.791759,6.907755,0,3.258096,8.294049,1,0,0,71.57712,9.163564,1.791759,7.013279,1 +6,1,25,1,4,125621,0,9542.002,29.33539,1,12,1,48.76937,0,0,0,0,48.76937,0,0,0,2,2,6,49.5,21.7,0,,1000,1000,0,0,1.791759,6.907755,0,3.258096,8.294049,1,0,0,71.57712,9.163564,1.791759,3.887102,1 +6,1,25,1,5,125621,0,9542.002,30.33539,1,12,1,10.42101,0,0,0,0,10.42101,0,0,0,0,0,6,49.5,21.7,0,,1000,1000,0,0,1.791759,6.907755,0,3.258096,8.294049,1,0,0,71.57712,9.163564,1.791759,2.343824,1 +2,1,100,0,1,125635,0,6916.232,46.73785,1,9,1,62.42638,12.60306,29.44641,0,0,104.4759,0,0,0,2,2,3,73.8,13.73189,0,,300,300,0,0,1.098612,5.703783,1,0,0,1,0,0,67.80335,8.841771,1.098612,4.648956,1 +2,1,100,0,2,125635,0,6916.232,47.73785,1,9,1,8.625337,2.96496,0,0,0,11.5903,0,0,0,1,0,3,73.8,13.73189,0,,300,300,0,0,1.098612,5.703783,1,0,0,1,0,0,67.80335,8.841771,1.098612,2.450168,1 +2,1,100,0,3,125635,0,6916.232,48.73785,1,9,1,8.845209,6.486486,0,0,0,15.3317,0,0,0,1,0,3,73.8,13.73189,0,,300,300,0,0,1.098612,5.703783,1,0,0,1,0,0,67.80335,8.841771,1.098612,2.729922,1 +2,1,100,0,1,125636,0,6916.232,10.32717,0,9,1,1.766784,15.22379,0,0,0,16.99058,0,0,0,0,0,3,74.36826,13.73189,0,,300,300,1,0,1.098612,5.703783,1,0,0,1,0,0,75.82542,8.841771,1.098612,2.832659,1 +2,1,100,0,2,125636,0,6916.232,11.32717,0,9,1,54.44744,14.76011,0,0,0,69.20755,0,0,0,5,0,3,74.36826,13.73189,0,,300,300,1,0,1.098612,5.703783,1,0,0,1,0,0,75.82542,8.841771,1.098612,4.23711,1 +2,1,100,0,3,125636,0,6916.232,12.32717,0,9,1,4.422605,4.29484,0,0,0,8.717444,0,0,0,1,0,3,74.36826,13.73189,0,,300,300,1,0,1.098612,5.703783,1,0,0,1,0,0,75.82542,8.841771,1.098612,2.165326,1 +2,1,100,0,1,125637,0,6916.232,53.96851,0,11,1,141.9317,27.04947,0,0,0,168.9812,0,0,0,6,3,3,85,13.73189,0,,300,300,0,0,1.098612,5.703783,1,0,0,0,0,0,72.67507,8.841771,1.098612,5.129787,1 +2,1,100,0,2,125637,0,6916.232,54.96851,0,11,1,7.54717,0,0,0,0,7.54717,0,0,0,1,0,3,85,13.73189,0,,300,300,0,0,1.098612,5.703783,1,0,0,0,0,0,72.67507,8.841771,1.098612,2.021173,1 +2,1,100,0,3,125637,0,6916.232,55.96851,0,11,1,7.371007,11.08108,0,0,0,18.45209,0,0,0,3,0,3,85,13.73189,0,,300,300,0,0,1.098612,5.703783,1,0,0,0,0,0,72.67507,8.841771,1.098612,2.915178,1 +11,1,0,1,1,125658,0,9201.975,14.49144,1,12,1,32.97998,28.15077,0,0,0,61.13074,0,0,0,4,0,6,80,4.3,0,,0,0,1,1,1.791759,0,0,0,0,0,0,0,75.07128,9.127282,1.791759,4.113015,1 +11,1,0,1,2,125658,0,9201.975,15.49144,1,12,1,18.86792,2.156334,0,0,0,21.02426,0,0,0,2,0,6,80,4.3,0,,0,0,1,1,1.791759,0,0,0,0,0,0,0,75.07128,9.127282,1.791759,3.045677,1 +11,1,0,1,3,125658,0,9201.975,16.49144,1,12,1,19.53317,0,2.702703,0,0,22.23587,0,0,0,1,0,6,80,4.3,0,,0,0,1,1,1.791759,0,0,0,0,0,0,0,75.07128,9.127282,1.791759,3.101707,1 +11,1,0,1,1,125659,0,9201.975,44.49829,0,12,1,0,3.239105,22.77385,0,0,26.01296,0,0,0,0,0,6,91.6,8.7,0,,0,0,0,0,1.791759,0,0,0,0,0,0,0,76.77976,9.127282,1.791759,3.258595,1 +11,1,0,1,2,125659,0,9201.975,45.49829,0,12,1,5.390836,4.636118,0,0,0,10.02695,0,0,0,1,0,6,91.6,8.7,0,,0,0,0,0,1.791759,0,0,0,0,0,0,0,76.77976,9.127282,1.791759,2.305277,1 +11,1,0,1,3,125659,0,9201.975,46.49829,0,12,1,12.28501,0,44.71745,0,0,57.00246,0,0,0,1,0,6,91.6,8.7,0,,0,0,0,0,1.791759,0,0,0,0,0,0,0,76.77976,9.127282,1.791759,4.043094,1 +11,1,0,1,1,125660,0,9201.975,42.95688,1,12,1,14.7232,10.24735,36.93168,0,0,61.90224,0,0,0,1,0,6,93.7,4.3,0,,0,0,0,0,1.791759,0,0,0,0,0,0,0,78.40642,9.127282,1.791759,4.125556,1 +11,1,0,1,2,125660,0,9201.975,43.95688,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,93.7,4.3,0,,0,0,0,0,1.791759,0,0,0,0,0,0,0,78.40642,9.127282,1.791759,,0 +11,1,0,1,3,125660,0,9201.975,44.95688,1,12,1,17.07617,0,42.75184,0,0,59.82801,0,0,0,1,0,6,93.7,4.3,0,,0,0,0,0,1.791759,0,0,0,0,0,0,0,78.40642,9.127282,1.791759,4.091474,1 +11,1,0,1,1,125661,0,9201.975,12.38604,0,12,1,62.42638,1.766784,0,0,0,64.19317,0,0,0,4,0,6,74.36826,13.73189,0,,0,0,1,0,1.791759,0,0,0,0,0,0,0,85.15327,9.127282,1.791759,4.161897,1 +11,1,0,1,2,125661,0,9201.975,13.38604,0,12,1,26.84636,0,1.293801,0,0,28.14016,0,0,0,0,1,6,74.36826,13.73189,0,,0,0,1,0,1.791759,0,0,0,0,0,0,0,85.15327,9.127282,1.791759,3.337198,1 +11,1,0,1,3,125661,0,9201.975,14.38604,0,12,1,80.95823,0,1.351351,0,0,82.30959,0,0,0,2,1,6,74.36826,13.73189,0,,0,0,1,0,1.791759,0,0,0,0,0,0,0,85.15327,9.127282,1.791759,4.410488,1 +11,1,0,1,1,125662,0,9201.975,16.52019,0,12,1,8.833922,0,14.13428,0,0,22.9682,0,0,0,1,0,6,87.4,4.3,0,,0,0,1,0,1.791759,0,0,0,0,0,0,0,80.40798,9.127282,1.791759,3.134111,1 +11,1,0,1,2,125662,0,9201.975,17.52019,0,12,1,76.54987,61.83289,15.16981,0,0,153.5526,0,0,0,8,0,6,87.4,4.3,0,,0,0,1,0,1.791759,0,0,0,0,0,0,0,80.40798,9.127282,1.791759,5.034043,1 +11,1,0,1,3,125662,0,9201.975,18.52019,0,12,1,51.00246,7.518427,0,0,0,58.52089,0,0,0,3,0,6,87.4,4.3,0,,0,0,0,0,1.791759,0,0,0,0,0,0,0,80.40798,9.127282,1.791759,4.069384,1 +11,1,0,0,1,125663,0,9201.975,17.7577,1,12,1,88.19199,10.95406,0,0,0,99.14606,0,0,0,4,1,6,84.2,8.7,0,,0,0,1,1,1.791759,0,0,0,0,0,0,0,75.07128,9.127282,1.791759,4.596594,1 +11,1,0,0,2,125663,0,9201.975,18.7577,1,12,1,4.312668,0,0,0,0,4.312668,0,0,0,0,0,6,84.2,8.7,0,,0,0,0,0,1.791759,0,0,0,0,0,0,0,75.07128,9.127282,1.791759,1.461557,1 +11,1,0,0,3,125663,0,9201.975,19.7577,1,12,1,25.06142,0,0,0,0,25.06142,0,0,0,1,0,6,84.2,8.7,0,,0,0,0,0,1.791759,0,0,0,0,0,0,0,75.07128,9.127282,1.791759,3.22133,1 +8,1,50,1,1,125664,0,13812.04,52.90349,0,16,1,14.7232,0,32.27326,0,0,46.99647,0,0,0,1,0,2,82.1,8.7,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,0,0,0,77.5162,9.533368,.6931472,3.850072,1 +8,1,50,1,2,125664,0,13812.04,53.90349,0,16,1,8.086253,0,0,0,0,8.086253,0,0,0,0,0,2,82.1,8.7,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,0,0,0,77.5162,9.533368,.6931472,2.090165,1 +8,1,50,1,3,125664,0,13812.04,54.90349,0,16,1,13.75921,12.01474,10.01474,0,0,35.7887,0,0,0,2,0,2,82.1,8.7,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,0,0,0,77.5162,9.533368,.6931472,3.577632,1 +8,1,50,1,4,125664,0,13812.04,55.90349,0,16,1,155.8797,14.19781,0,0,0,170.0775,0,0,0,7,5,2,82.1,8.7,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,0,0,0,77.5162,9.533368,.6931472,5.136254,1 +8,1,50,1,5,125664,0,13812.04,56.90349,0,16,1,83.36807,31.82576,26.13589,0,0,141.3297,0,0,0,5,3,2,82.1,8.7,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,0,0,0,77.5162,9.533368,.6931472,4.951096,1 +8,1,50,1,1,125665,0,13812.04,50.8063,1,12,1,42.69729,0,46.82568,0,0,89.52296,0,0,0,2,1,2,87.4,13,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,66.96286,9.533368,.6931472,4.494495,1 +8,1,50,1,2,125665,0,13812.04,51.8063,1,12,1,56.60378,2.695418,15.20755,0,0,74.50674,0,0,0,2,2,2,87.4,13,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,66.96286,9.533368,.6931472,4.31089,1 +8,1,50,1,3,125665,0,13812.04,52.8063,1,12,1,25.06142,22.89435,0,0,0,47.95577,0,0,0,2,1,2,87.4,13,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,66.96286,9.533368,.6931472,3.870279,1 +8,1,50,1,4,125665,0,13812.04,53.8063,1,12,1,61.07566,6.800364,41.91431,0,0,109.7903,0,0,0,6,0,2,87.4,13,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,66.96286,9.533368,.6931472,4.698573,1 +8,1,50,1,5,125665,0,13812.04,54.8063,1,12,1,47.72822,27.10296,0,0,0,74.83118,0,0,0,2,1,2,87.4,13,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,66.96286,9.533368,.6931472,4.315235,1 +11,1,0,1,1,125666,0,14393.3,37.95756,1,12,1,93.99167,61.64188,29.7442,0,0,185.3777,0,0,0,10,0,4,83.2,17.4,0,,0,0,0,0,1.386294,0,0,0,0,0,0,0,75.78102,9.574588,1.386294,5.222395,1 +11,1,0,1,2,125666,0,14393.3,38.95756,1,12,1,106.4235,133.3587,26.06968,0,0,265.8519,0,0,0,7,1,4,83.2,17.4,0,,0,0,0,0,1.386294,0,0,0,0,0,0,0,75.78102,9.574588,1.386294,5.58294,1 +11,1,0,1,3,125666,0,14393.3,39.95756,1,12,1,157.334,97.64619,0,0,0,254.9802,0,0,0,8,0,4,83.2,17.4,0,,0,0,0,0,1.386294,0,0,0,0,0,0,0,75.78102,9.574588,1.386294,5.541186,1 +11,1,0,1,4,125666,0,14393.3,40.95756,1,12,1,46.35154,77.23267,0,0,0,123.5842,0,0,0,4,0,4,83.2,17.4,0,,0,0,0,0,1.386294,0,0,0,0,0,0,0,75.78102,9.574588,1.386294,4.816923,1 +11,1,0,1,5,125666,0,14393.3,41.95756,1,12,1,26.92469,77.76609,19.35213,0,0,124.0429,0,0,0,3,0,4,83.2,17.4,0,,0,0,0,0,1.386294,0,0,0,0,0,0,0,75.78102,9.574588,1.386294,4.820628,1 +11,1,0,1,1,125667,0,14393.3,44.67899,0,16,1,81.49911,8.56633,41.02915,0,0,131.0946,0,0,0,10,0,4,77.9,17.4,0,,0,0,0,0,1.386294,0,0,0,0,0,0,0,74.46688,9.574588,1.386294,4.875919,1 +11,1,0,1,2,125667,0,14393.3,45.67899,0,16,1,167.6647,45.82471,1.088732,0,0,214.5781,0,0,0,15,0,4,77.9,17.4,0,,0,0,0,0,1.386294,0,0,0,0,0,0,0,74.46688,9.574588,1.386294,5.368674,1 +11,1,0,1,3,125667,0,14393.3,46.67899,0,16,1,392.4678,36.85332,0,0,0,429.3211,0,0,0,16,0,4,77.9,17.4,0,,0,0,0,0,1.386294,0,0,0,0,0,0,0,74.46688,9.574588,1.386294,6.062205,1 +11,1,0,1,4,125667,0,14393.3,47.67899,0,16,1,59.43093,24.49289,0,0,0,83.92382,0,0,0,3,0,4,77.9,17.4,0,,0,0,0,0,1.386294,0,0,0,0,0,0,0,74.46688,9.574588,1.386294,4.42991,1 +11,1,0,1,5,125667,0,14393.3,48.67899,0,16,1,182.6336,19.06184,43.74422,0,0,245.4396,0,0,0,6,0,4,77.9,17.4,0,,0,0,0,0,1.386294,0,0,0,0,0,0,0,74.46688,9.574588,1.386294,5.503051,1 +11,1,0,1,1,125668,0,14393.3,12.15332,1,12,1,20.82094,0,0,0,0,20.82094,0,0,0,1,0,4,74.36826,13.73189,0,,0,0,1,1,1.386294,0,0,0,0,0,0,0,85.97237,9.574588,1.386294,3.035959,1 +11,1,0,1,2,125668,0,14393.3,13.15332,1,12,1,77.84431,7.234622,23.89222,0,0,108.9711,0,0,0,5,1,4,74.36826,13.73189,0,,0,0,1,1,1.386294,0,0,0,0,0,0,0,85.97237,9.574588,1.386294,4.691083,1 +11,1,0,1,3,125668,0,14393.3,14.15332,1,12,1,5.946482,0,0,0,0,5.946482,0,0,0,1,0,4,74.36826,13.73189,0,,0,0,1,1,1.386294,0,0,0,0,0,0,0,85.97237,9.574588,1.386294,1.7828,1 +11,1,0,1,4,125668,0,14393.3,15.15332,1,12,1,62.41395,10.76641,0,0,0,73.18036,0,0,0,5,1,4,74.36826,13.73189,0,,0,0,1,1,1.386294,0,0,0,0,0,0,0,85.97237,9.574588,1.386294,4.292927,1 +11,1,0,1,5,125668,0,14393.3,16.15332,1,12,1,94.23643,10.77829,26.33992,0,0,131.3546,0,0,0,14,1,4,74.36826,13.73189,0,,0,0,1,1,1.386294,0,0,0,0,0,0,0,85.97237,9.574588,1.386294,4.877901,1 +11,1,0,1,1,125669,0,14393.3,5.067762,0,12,1,41.64188,5.223082,0,0,0,46.86496,0,0,0,2,0,4,74.36826,13.73189,0,,0,0,1,0,1.386294,0,0,0,0,0,0,0,83.05472,9.574588,1.386294,3.84727,1 +11,1,0,1,2,125669,0,14393.3,6.067762,0,12,1,50.08165,1.720196,.8165487,0,0,52.6184,0,0,0,3,0,4,74.36826,13.73189,0,,0,0,1,0,1.386294,0,0,0,0,0,0,0,83.05472,9.574588,1.386294,3.963066,1 +11,1,0,1,3,125669,0,14393.3,7.067762,0,12,1,4.955401,1.233895,0,0,0,6.189296,0,0,0,1,0,4,74.36826,13.73189,0,,0,0,1,0,1.386294,0,0,0,0,0,0,0,83.05472,9.574588,1.386294,1.822821,1 +11,1,0,1,4,125669,0,14393.3,8.067761,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,0,0,1,0,1.386294,0,0,0,0,0,0,0,83.05472,9.574588,1.386294,,0 +11,1,0,1,5,125669,0,14393.3,9.067761,0,12,1,94.44678,3.84939,0,0,0,98.29617,0,0,0,13,1,4,74.36826,13.73189,0,,0,0,1,0,1.386294,0,0,0,0,0,0,0,83.05472,9.574588,1.386294,4.587985,1 +11,1,0,0,1,125674,0,14410.96,23.72895,1,16,1,5.995204,0,0,0,0,5.995204,0,0,0,1,0,3,83.8,13.73189,0,,0,492,0,0,1.098612,6.198479,0,0,0,0,0,0,79.16349,9.575813,1.098612,1.79096,1 +11,1,0,0,2,125674,0,14410.96,24.72895,1,16,1,412.5575,31.13363,0,0,0,443.6911,0,0,0,9,0,3,83.8,13.73189,0,,0,492,0,0,1.098612,6.198479,0,0,0,0,0,0,79.16349,9.575813,1.098612,6.095129,1 +11,1,0,0,3,125674,0,14410.96,25.72895,1,16,1,51.07232,29.69077,0,0,723.6409,804.404,1,0,0,1,0,3,83.8,13.73189,0,,0,492,0,0,1.098612,6.198479,0,0,0,0,0,0,79.16349,9.575813,1.098612,6.690102,1 +11,1,0,0,4,125674,0,14410.96,26.72895,1,16,1,28.5846,0,33.72522,0,0,62.30982,0,0,0,2,0,3,83.8,13.73189,0,,0,492,0,0,1.098612,6.198479,0,0,0,0,0,0,79.16349,9.575813,1.098612,4.132119,1 +11,1,0,0,5,125674,0,14410.96,27.72895,1,16,1,61.61659,0,14.1515,0,0,75.76809,0,0,0,2,0,3,83.8,13.73189,0,,0,492,0,0,1.098612,6.198479,0,0,0,0,0,0,79.16349,9.575813,1.098612,4.327677,1 +11,1,0,0,1,125675,0,14410.96,55.64956,1,15,1,55.27578,0,56.85851,0,0,112.1343,0,0,0,2,1,3,80,13.73189,0,,0,492,0,0,1.098612,6.198479,0,0,0,0,0,0,78.89941,9.575813,1.098612,4.719697,1 +11,1,0,0,2,125675,0,14410.96,56.64956,1,15,1,90.36144,0,0,0,0,90.36144,0,0,0,5,0,3,80,13.73189,0,,0,492,0,0,1.098612,6.198479,0,0,0,0,0,0,78.89941,9.575813,1.098612,4.503818,1 +11,1,0,0,3,125675,0,14410.96,57.64956,1,15,1,44.88778,0,0,0,0,44.88778,0,0,0,2,0,3,80,13.73189,0,,0,492,0,0,1.098612,6.198479,0,0,0,0,0,0,78.89941,9.575813,1.098612,3.804166,1 +11,1,0,0,4,125675,0,14410.96,58.64956,1,15,1,55.78608,0,0,0,0,55.78608,0,0,0,2,0,3,80,13.73189,0,,0,492,0,0,1.098612,6.198479,0,0,0,0,0,0,78.89941,9.575813,1.098612,4.021524,1 +11,1,0,0,5,125675,0,14410.96,59.64956,1,15,1,123.868,0,48.64579,0,0,172.5137,0,0,0,6,1,3,80,13.73189,0,,0,492,0,0,1.098612,6.198479,0,0,0,0,0,0,78.89941,9.575813,1.098612,5.150477,1 +11,1,0,0,1,125676,0,14410.96,55.15948,0,15,1,0,0,0,0,0,0,0,0,0,0,0,3,91.3,13.73189,0,,0,492,0,0,1.098612,6.198479,0,0,0,1,0,0,70.76144,9.575813,1.098612,,0 +11,1,0,0,2,125676,0,14410.96,56.15948,0,15,1,0,0,0,0,0,0,0,0,0,0,0,3,91.3,13.73189,0,,0,492,0,0,1.098612,6.198479,0,0,0,1,0,0,70.76144,9.575813,1.098612,,0 +11,1,0,0,3,125676,0,14410.96,57.15948,0,15,1,0,0,0,0,0,0,0,0,0,0,0,3,91.3,13.73189,0,,0,492,0,0,1.098612,6.198479,0,0,0,1,0,0,70.76144,9.575813,1.098612,,0 +11,1,0,0,4,125676,0,14410.96,58.15948,0,15,1,104.1955,0,0,0,0,104.1955,0,0,0,2,0,3,91.3,13.73189,0,,0,492,0,0,1.098612,6.198479,0,0,0,1,0,0,70.76144,9.575813,1.098612,4.646269,1 +11,1,0,0,5,125676,0,14410.96,59.15948,0,15,1,22.85231,0,61.91282,0,912.8227,997.5878,1,0,0,2,0,3,91.3,13.73189,0,,0,492,0,0,1.098612,6.198479,0,0,0,1,0,0,70.76144,9.575813,1.098612,6.90534,1 +11,1,0,0,1,125690,0,11982.63,13.87269,1,16,1,40.76739,10.47962,0,0,0,51.247,0,0,0,6,0,3,74.36826,13.73189,0,,0,288,1,1,1.098612,5.662961,0,0,0,0,0,0,86.44971,9.391296,1.098612,3.936657,1 +11,1,0,0,2,125690,0,11982.63,14.87269,1,16,1,29.02519,13.5816,0,0,0,42.60679,0,0,0,4,0,3,74.36826,13.73189,0,,0,288,1,1,1.098612,5.662961,0,0,0,0,0,0,86.44971,9.391296,1.098612,3.752014,1 +11,1,0,0,3,125690,0,11982.63,15.87269,1,16,1,39.4015,22.19451,0,0,0,61.59601,0,0,0,5,1,3,74.36826,13.73189,0,,0,288,1,1,1.098612,5.662961,0,0,0,0,0,0,86.44971,9.391296,1.098612,4.120597,1 +11,1,0,0,4,125690,0,11982.63,16.87269,1,16,1,5.532504,28.13278,0,0,0,33.66528,0,0,0,1,0,3,74.36826,13.73189,0,,0,288,1,1,1.098612,5.662961,0,0,0,0,0,0,86.44971,9.391296,1.098612,3.516467,1 +11,1,0,0,5,125690,0,11982.63,17.87269,1,16,1,28.98857,24.13457,24.96826,0,0,78.09141,0,0,0,2,1,3,74.36826,13.73189,0,,0,288,1,1,1.098612,5.662961,0,0,0,0,0,0,86.44971,9.391296,1.098612,4.35788,1 +11,1,0,0,1,125691,0,11982.63,49.93292,1,16,1,121.7026,14.65827,32.3741,0,0,168.735,0,0,0,4,1,3,92.5,13.73189,0,,0,288,0,0,1.098612,5.662961,0,0,0,0,0,0,79.07426,9.391296,1.098612,5.12833,1 +11,1,0,0,2,125691,0,11982.63,50.93292,1,16,1,31.76342,20.81051,17.25082,0,0,69.82475,0,0,0,4,1,3,92.5,13.73189,0,,0,288,0,0,1.098612,5.662961,0,0,0,0,0,0,79.07426,9.391296,1.098612,4.245988,1 +11,1,0,0,3,125691,0,11982.63,51.93292,1,16,1,44.13965,12.74314,32.53865,0,0,89.42145,0,0,0,1,1,3,92.5,13.73189,0,,0,288,0,0,1.098612,5.662961,0,0,0,0,0,0,79.07426,9.391296,1.098612,4.493361,1 +11,1,0,0,4,125691,0,11982.63,52.93292,1,16,1,8.759797,6.325496,0,0,0,15.08529,0,0,0,1,0,3,92.5,13.73189,0,,0,288,0,0,1.098612,5.662961,0,0,0,0,0,0,79.07426,9.391296,1.098612,2.71372,1 +11,1,0,0,5,125691,0,11982.63,53.93292,1,16,1,38.51037,27.10538,32.16251,0,0,97.77825,0,0,0,2,1,3,92.5,13.73189,0,,0,288,0,0,1.098612,5.662961,0,0,0,0,0,0,79.07426,9.391296,1.098612,4.582702,1 +11,1,0,0,1,125692,0,11982.63,54.93224,0,16,1,176.8585,98.89688,64.34652,0,0,340.1019,0,0,0,10,1,3,90,13.73189,0,,0,288,0,0,1.098612,5.662961,0,0,0,0,0,0,71.24387,9.391296,1.098612,5.829246,1 +11,1,0,0,2,125692,0,11982.63,55.93224,0,16,1,73.38445,85.47098,19.49617,0,0,178.3516,0,0,0,7,2,3,90,13.73189,0,,0,288,0,0,1.098612,5.662961,0,0,0,0,0,0,71.24387,9.391296,1.098612,5.183757,1 +11,1,0,0,3,125692,0,11982.63,56.93224,0,16,1,56.85786,81.89027,33.78554,0,0,172.5337,0,0,0,5,2,3,90,13.73189,0,,0,288,0,0,1.098612,5.662961,0,0,0,0,0,0,71.24387,9.391296,1.098612,5.150592,1 +11,1,0,0,4,125692,0,11982.63,57.93224,0,16,1,39.18856,88.06824,23.6284,0,0,150.8852,0,0,0,4,2,3,90,13.73189,0,,0,288,0,0,1.098612,5.662961,0,0,0,0,0,0,71.24387,9.391296,1.098612,5.01652,1 +11,1,0,0,5,125692,0,11982.63,58.93224,0,16,1,75.43377,56.97419,22.99619,0,0,155.4041,0,0,0,4,2,3,90,13.73189,0,,0,288,0,0,1.098612,5.662961,0,0,0,0,0,0,71.24387,9.391296,1.098612,5.046029,1 +11,1,0,0,1,125782,0,7207.816,7.958932,1,12,1,6.6345,4.191797,0,0,0,10.8263,0,0,0,1,0,5,74.36826,13.73189,0,,0,0,1,1,1.609438,0,0,0,0,1,0,0,76.96274,8.88306,1.609438,2.381978,1 +11,1,0,0,2,125782,0,7207.816,8.958932,1,12,1,5.506608,0,0,0,0,5.506608,0,0,0,1,0,5,74.36826,13.73189,0,,0,0,1,1,1.609438,0,0,0,0,1,0,0,76.96274,8.88306,1.609438,1.705949,1 +11,1,0,0,3,125782,0,7207.816,9.958932,1,12,1,5.524862,0,0,0,0,5.524862,0,0,0,1,0,5,74.36826,13.73189,0,,0,0,1,1,1.609438,0,0,0,0,1,0,0,76.96274,8.88306,1.609438,1.709258,1 +11,1,0,0,1,125783,0,7207.816,27.72895,1,12,1,30.75995,43.27503,0,0,0,74.03498,0,0,0,4,0,5,70,13.73189,0,,0,0,0,0,1.609438,0,0,0,0,1,0,0,71.7831,8.88306,1.609438,4.304538,1 +11,1,0,0,2,125783,0,7207.816,28.72895,1,12,1,26.98238,34.0859,0,0,0,61.06828,0,0,0,4,1,5,70,13.73189,0,,0,0,0,0,1.609438,0,0,0,0,1,0,0,71.7831,8.88306,1.609438,4.111993,1 +11,1,0,0,3,125783,0,7207.816,29.72895,1,12,1,43.69664,22.25013,17.96585,0,0,83.91261,0,0,0,4,1,5,70,13.73189,0,,0,0,0,0,1.609438,0,0,0,0,1,0,0,71.7831,8.88306,1.609438,4.429776,1 +11,1,0,0,1,125784,0,7207.816,2.38193,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,0,0,1,1,1.609438,0,0,0,0,1,0,0,73.53111,8.88306,1.609438,,0 +11,1,0,0,2,125784,0,7207.816,3.38193,1,12,1,25.3304,9.388766,0,0,0,34.71916,0,0,0,4,0,5,74.36826,13.73189,0,,0,0,1,1,1.609438,0,0,0,0,1,0,0,73.53111,8.88306,1.609438,3.547292,1 +11,1,0,0,3,125784,0,7207.816,4.38193,1,12,1,16.57458,7.132094,0,0,0,23.70668,0,0,0,3,0,5,74.36826,13.73189,0,,0,0,1,1,1.609438,0,0,0,0,1,0,0,73.53111,8.88306,1.609438,3.165757,1 +11,1,0,0,1,125785,0,7207.816,4.599589,0,12,1,21.10977,8.685163,0,0,0,29.79493,0,0,0,3,0,5,74.36826,13.73189,0,,0,0,1,0,1.609438,0,0,0,0,1,0,0,74.04509,8.88306,1.609438,3.394338,1 +11,1,0,0,2,125785,0,7207.816,5.599589,0,12,1,23.67841,20.56718,0,0,0,44.24559,0,0,0,5,0,5,74.36826,13.73189,0,,0,0,1,0,1.609438,0,0,0,0,1,0,0,74.04509,8.88306,1.609438,3.789756,1 +11,1,0,0,3,125785,0,7207.816,6.599589,0,12,1,24.10849,14.13862,0,0,0,38.24711,0,0,0,4,0,5,74.36826,13.73189,0,,0,0,1,0,1.609438,0,0,0,0,1,0,0,74.04509,8.88306,1.609438,3.644068,1 +11,1,0,0,1,125786,0,7207.816,33.67009,0,12,1,10.58504,0,0,0,0,10.58504,0,0,0,0,0,5,92.5,13.73189,0,,0,0,0,0,1.609438,0,0,0,0,1,0,0,71.81962,8.88306,1.609438,2.359442,1 +11,1,0,0,2,125786,0,7207.816,34.67009,0,12,1,16.51982,4.157489,20.14317,0,0,40.82048,0,0,0,2,1,5,92.5,13.73189,0,,0,0,0,0,1.609438,0,0,0,0,1,0,0,71.81962,8.88306,1.609438,3.709184,1 +11,1,0,0,3,125786,0,7207.816,35.67009,0,12,1,27.12205,7.332998,0,0,0,34.45505,0,0,0,4,1,5,92.5,13.73189,0,,0,0,0,0,1.609438,0,0,0,0,1,0,0,71.81962,8.88306,1.609438,3.539655,1 +8,1,50,0,1,125798,0,8419.976,3.496235,0,12,1,18.58513,5.785372,0,0,0,24.3705,0,0,0,3,0,4,74.36826,13.73189,0,,599,599,1,0,1.386294,6.395262,0,3.931826,7.088409,0,0,0,75.69691,9.038481,1.386294,3.193374,1 +8,1,50,0,2,125798,0,8419.976,4.496235,0,12,1,32.85871,8.652793,0,0,0,41.5115,0,0,0,6,0,4,74.36826,13.73189,0,,599,599,1,0,1.386294,6.395262,0,3.931826,7.088409,0,0,0,75.69691,9.038481,1.386294,3.725971,1 +8,1,50,0,3,125798,0,8419.976,5.496235,0,12,1,56.53366,2.493766,0,0,0,59.02743,0,0,0,4,0,4,74.36826,13.73189,0,,599,599,1,0,1.386294,6.395262,0,3.931826,7.088409,0,0,0,75.69691,9.038481,1.386294,4.078002,1 +8,1,50,0,4,125798,0,8419.976,6.496235,0,12,1,28.12356,1.032734,0,0,0,29.15629,0,0,0,2,1,5,74.36826,13.73189,0,,599,599,1,0,1.609438,6.395262,0,3.931826,7.088409,0,0,0,75.69691,9.038481,1.609438,3.372671,1 +8,1,50,0,5,125798,0,8419.976,7.496235,0,12,1,81.07914,16.08125,0,0,0,97.16039,0,0,0,7,0,5,74.36826,13.73189,0,,599,599,1,0,1.609438,6.395262,0,3.931826,7.088409,0,0,0,75.69691,9.038481,1.609438,4.576363,1 +8,1,50,0,1,125799,0,8419.976,27.74812,1,12,1,41.36691,17.44005,0,0,0,58.80695,0,0,0,6,0,4,82.5,13.73189,0,,599,599,0,0,1.386294,6.395262,0,3.931826,7.088409,0,0,0,78.26785,9.038481,1.386294,4.07426,1 +8,1,50,0,2,125799,0,8419.976,28.74812,1,12,1,30.12048,9.83023,0,0,0,39.95071,0,0,0,1,0,4,82.5,13.73189,0,,599,599,0,0,1.386294,6.395262,0,3.931826,7.088409,0,0,0,78.26785,9.038481,1.386294,3.687646,1 +8,1,50,0,3,125799,0,8419.976,29.74812,1,12,1,8.977556,5.21197,35.41147,0,1465.092,1514.693,1,0,0,0,1,4,82.5,13.73189,0,,599,599,0,0,1.386294,6.395262,0,3.931826,7.088409,0,0,0,78.26785,9.038481,1.386294,7.322968,1 +8,1,50,0,4,125799,0,8419.976,30.74812,1,12,1,24.2047,23.02905,0,0,0,47.23375,0,0,0,2,0,5,82.5,13.73189,0,,599,599,0,0,1.609438,6.395262,0,3.931826,7.088409,0,0,0,78.26785,9.038481,1.609438,3.855109,1 +8,1,50,0,5,125799,0,8419.976,31.74812,1,12,1,0,0,13.26703,0,0,13.26703,0,0,0,0,0,5,82.5,13.73189,0,,599,599,0,0,1.609438,6.395262,0,3.931826,7.088409,0,0,0,78.26785,9.038481,1.609438,2.585282,1 +8,1,50,0,1,125800,0,8419.976,32.05202,0,14,1,0,0,0,0,0,0,0,0,0,0,0,4,87.5,13.73189,0,,599,599,0,0,1.386294,6.395262,0,3.931826,7.088409,0,0,0,77.63718,9.038481,1.386294,,0 +8,1,50,0,2,125800,0,8419.976,33.05202,0,14,1,55.31216,23.84447,0,0,0,79.15662,0,0,0,5,0,4,87.5,13.73189,0,,599,599,0,0,1.386294,6.395262,0,3.931826,7.088409,0,0,0,77.63718,9.038481,1.386294,4.371428,1 +8,1,50,0,3,125800,0,8419.976,34.05202,0,14,1,46.90773,9.17207,27.9601,0,0,84.0399,0,0,0,3,0,4,87.5,13.73189,0,,599,599,0,0,1.386294,6.395262,0,3.931826,7.088409,0,0,0,77.63718,9.038481,1.386294,4.431292,1 +8,1,50,0,4,125800,0,8419.976,35.05202,0,14,1,20.05532,6.851083,0,0,0,26.90641,0,0,0,0,0,5,87.5,13.73189,0,,599,599,0,0,1.609438,6.395262,0,3.931826,7.088409,0,0,0,77.63718,9.038481,1.609438,3.292365,1 +8,1,50,0,5,125800,0,8419.976,36.05202,0,14,1,8.887008,0,0,0,0,8.887008,0,0,0,1,0,5,87.5,13.73189,0,,599,599,0,0,1.609438,6.395262,0,3.931826,7.088409,0,0,0,77.63718,9.038481,1.609438,2.18459,1 +8,1,50,0,1,125801,0,8419.976,.5804244,1,12,1,65.94724,10.76139,0,0,0,76.70863,0,0,0,8,0,4,74.36826,13.73189,0,,599,599,1,1,1.386294,6.395262,0,3.931826,7.088409,0,0,0,79.42434,9.038481,1.386294,4.340014,1 +8,1,50,0,2,125801,0,8419.976,1.580424,1,12,1,37.23987,19.82475,0,0,0,57.06462,0,0,0,7,0,4,74.36826,13.73189,0,,599,599,1,1,1.386294,6.395262,0,3.931826,7.088409,0,0,0,79.42434,9.038481,1.386294,4.044184,1 +8,1,50,0,3,125801,0,8419.976,2.580424,1,12,1,7.98005,0,0,0,0,7.98005,0,0,0,1,0,4,74.36826,13.73189,0,,599,599,1,1,1.386294,6.395262,0,3.931826,7.088409,0,0,0,79.42434,9.038481,1.386294,2.076945,1 +8,1,50,0,4,125801,0,8419.976,3.580424,1,12,1,27.66252,0,0,0,0,27.66252,0,0,0,3,0,5,74.36826,13.73189,0,,599,599,1,1,1.609438,6.395262,0,3.931826,7.088409,0,0,0,79.42434,9.038481,1.609438,3.320078,1 +8,1,50,0,5,125801,0,8419.976,4.580424,1,12,1,49.09014,0,0,0,0,49.09014,0,0,0,2,1,5,74.36826,13.73189,0,,599,599,1,1,1.609438,6.395262,0,3.931826,7.088409,0,0,0,79.42434,9.038481,1.609438,3.893658,1 +8,1,50,0,1,125806,0,14051.49,28.63244,1,12,1,8.833922,18.49823,0,0,0,27.33216,0,0,0,1,0,3,83.8,13.73189,0,,718,718,0,0,1.098612,6.576469,0,3.931826,7.269617,0,0,0,79.52938,9.550555,1.098612,3.308064,1 +8,1,50,0,2,125806,0,14051.49,29.63244,1,12,1,38.27493,14.47978,0,0,0,52.75472,0,0,0,4,2,3,83.8,13.73189,0,,718,718,0,0,1.098612,6.576469,0,3.931826,7.269617,0,0,0,79.52938,9.550555,1.098612,3.965653,1 +8,1,50,0,3,125806,0,14051.49,30.63244,1,12,1,8.845209,22.13268,0,0,0,30.97789,0,0,0,1,0,3,83.8,13.73189,0,,718,718,0,0,1.098612,6.576469,0,3.931826,7.269617,0,0,0,79.52938,9.550555,1.098612,3.433274,1 +8,1,50,0,1,125807,0,14051.49,8.531143,1,12,1,47.93875,7.832745,14.77032,0,0,70.54182,0,0,0,5,1,3,74.36826,13.73189,0,,718,718,1,1,1.098612,6.576469,0,3.931826,7.269617,1,0,0,79.35551,9.550555,1.098612,4.256206,1 +8,1,50,0,2,125807,0,14051.49,9.531143,1,12,1,16.17251,2.560647,21.04582,0,0,39.77898,0,0,0,1,1,3,74.36826,13.73189,0,,718,718,1,1,1.098612,6.576469,0,3.931826,7.269617,1,0,0,79.35551,9.550555,1.098612,3.683339,1 +8,1,50,0,3,125807,0,14051.49,10.53114,1,12,1,23.09582,0,11.05651,0,0,34.15233,0,0,0,2,1,3,74.36826,13.73189,0,,718,718,1,1,1.098612,6.576469,0,3.931826,7.269617,1,0,0,79.35551,9.550555,1.098612,3.530831,1 +8,1,50,0,1,125808,0,14051.49,8.531143,0,12,1,63.60424,18.22144,0,0,0,81.82568,0,0,0,13,0,3,74.36826,13.73189,0,,718,718,1,0,1.098612,6.576469,0,3.931826,7.269617,0,1,0,60.19517,9.550555,1.098612,4.404591,1 +8,1,50,0,2,125808,0,14051.49,9.531143,0,12,1,77.08895,21.96766,18.88949,0,0,117.9461,0,0,0,12,1,3,74.36826,13.73189,0,,718,718,1,0,1.098612,6.576469,0,3.931826,7.269617,0,1,0,60.19517,9.550555,1.098612,4.770227,1 +8,1,50,0,3,125808,0,14051.49,10.53114,0,12,1,72.72727,13.09582,8.039312,0,0,93.86241,0,0,0,13,1,3,74.36826,13.73189,0,,718,718,1,0,1.098612,6.576469,0,3.931826,7.269617,0,1,0,60.19517,9.550555,1.098612,4.54183,1 +6,1,25,0,1,125810,0,10455.96,8.303902,1,12,1,10.25332,0,0,0,0,10.25332,0,0,0,2,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,0,0,0,84.24701,9.255023,1.386294,2.327601,1 +6,1,25,0,2,125810,0,10455.96,9.303902,1,12,1,5.506608,0,0,0,0,5.506608,0,0,0,1,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,0,0,0,84.24701,9.255023,1.386294,1.705949,1 +6,1,25,0,3,125810,0,10455.96,10.3039,1,12,1,11.04972,0,0,0,166.6449,177.6946,1,0,0,0,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,0,0,0,84.24701,9.255023,1.386294,5.180067,1 +6,1,25,0,1,125811,0,10455.96,38.2642,1,12,1,138.1182,6.574186,0,0,0,144.6924,0,0,0,5,0,4,83.8,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,79.34193,9.255023,1.386294,4.97461,1 +6,1,25,0,2,125811,0,10455.96,39.2642,1,12,1,29.18502,13.51872,0,0,0,42.70374,0,0,0,3,0,4,83.8,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,79.34193,9.255023,1.386294,3.754287,1 +6,1,25,0,3,125811,0,10455.96,40.2642,1,12,1,8.538423,7.157207,0,0,0,15.69563,0,0,0,1,0,4,83.8,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,79.34193,9.255023,1.386294,2.753382,1 +6,1,25,0,1,125812,0,10455.96,15.65777,0,12,1,53.49819,51.538,0,0,0,105.0362,0,0,0,2,4,4,77.5,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,80.2968,9.255023,1.386294,4.654305,1 +6,1,25,0,2,125812,0,10455.96,16.65777,0,12,1,6.60793,36.17841,0,0,0,42.78634,0,0,0,1,0,4,77.5,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,80.2968,9.255023,1.386294,3.756219,1 +6,1,25,0,3,125812,0,10455.96,17.65777,0,12,1,24.61075,33.24962,0,0,0,57.86037,0,0,0,1,0,4,77.5,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,80.2968,9.255023,1.386294,4.058033,1 +6,1,25,0,1,125813,0,10455.96,42.66393,0,12,1,15.07841,0,38.76357,0,0,53.84198,0,0,0,1,0,4,82.5,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,76.66858,9.255023,1.386294,3.986053,1 +6,1,25,0,2,125813,0,10455.96,43.66393,0,12,1,89.75771,3.276432,0,0,0,93.03414,0,0,0,5,0,4,82.5,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,76.66858,9.255023,1.386294,4.532967,1 +6,1,25,0,3,125813,0,10455.96,44.66393,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,82.5,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,76.66858,9.255023,1.386294,,0 +6,1,25,0,1,125817,0,7893.92,27.98905,0,14,1,17.38609,11.95444,0,0,0,29.34053,0,0,0,3,0,2,80,13.73189,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,0,77.89652,8.973975,.6931472,3.37897,1 +6,1,25,0,2,125817,0,7893.92,28.98905,0,14,1,68.45564,33.51041,0,0,0,101.966,0,0,0,6,0,3,80,13.73189,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,77.89652,8.973975,1.098612,4.62464,1 +6,1,25,0,3,125817,0,7893.92,29.98905,0,14,1,28.91771,24.4389,0,0,0,53.35661,0,0,0,3,0,3,80,13.73189,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,77.89652,8.973975,1.098612,3.976998,1 +6,1,25,0,1,125818,0,7893.92,24.09309,1,12,1,80.03597,20.73741,0,0,1351.439,1452.212,2,0,0,5,2,2,86.3,13.73189,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,0,78.52718,8.973975,.6931472,7.280843,1 +6,1,25,0,2,125818,0,7893.92,25.09309,1,12,1,174.5619,19.24973,0,0,947.6287,1141.44,1,0,0,6,0,3,86.3,13.73189,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,78.52718,8.973975,1.098612,7.040046,1 +6,1,25,0,3,125818,0,7893.92,26.09309,1,12,1,48.00499,42.1197,0,0,0,90.12469,0,0,0,0,0,3,86.3,13.73189,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,78.52718,8.973975,1.098612,4.501194,1 +1,1,0,1,1,125819,0,6789.702,59.02533,1,14,1,19.03629,33.78941,0,0,0,52.8257,0,0,0,0,0,1,82.1,13,0,,150,93,0,0,0,4.532599,1,0,0,0,0,0,78.15913,8.82331,0,3.966998,1 +1,1,0,1,2,125819,0,6789.702,60.02533,1,14,1,145.3457,14.31682,52.62384,0,0,212.2863,0,0,0,4,0,1,82.1,13,0,,150,93,0,0,0,4.532599,1,0,0,0,0,0,78.15913,8.82331,0,5.357936,1 +1,1,0,1,3,125819,0,6789.702,61.02533,1,14,1,0,14.79187,0,0,0,14.79187,0,0,0,0,0,1,82.1,13,0,,150,93,0,0,0,4.532599,1,0,0,0,0,0,78.15913,8.82331,0,2.694078,1 +4,1,100,0,1,125825,0,5982.63,21.49213,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,74.7,0,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,1,0,0,68.84245,8.696783,.6931472,,0 +4,1,100,0,2,125825,0,5982.63,22.49213,0,12,1,4.043127,0,0,0,0,4.043127,0,0,0,1,0,2,74.7,0,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,1,0,0,68.84245,8.696783,.6931472,1.397018,1 +4,1,100,0,3,125825,0,5982.63,23.49213,0,12,1,7.371007,6.422605,0,0,0,13.79361,0,0,0,1,0,3,74.7,0,0,,1000,1000,0,0,1.098612,6.907755,1,0,0,1,0,0,68.84245,8.696783,1.098612,2.624206,1 +4,1,100,0,4,125825,0,5982.63,24.49213,0,12,1,9.913401,2.402005,0,0,0,12.31541,0,0,0,2,0,4,74.7,0,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,68.84245,8.696783,1.386294,2.510851,1 +4,1,100,0,5,125825,0,5982.63,25.49213,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,74.7,0,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,68.84245,8.696783,1.386294,,0 +4,1,100,0,1,125826,0,5982.63,21.79055,1,13,1,0,8.551237,0,0,0,8.551237,0,0,0,0,0,2,92.6,0,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,1,0,0,70.0071,8.696783,.6931472,2.146076,1 +4,1,100,0,2,125826,0,5982.63,22.79055,1,13,1,195.1483,7.681941,0,0,249.3261,452.1563,2,1,0,1,0,2,92.6,0,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,1,0,0,70.0071,8.696783,.6931472,6.114028,1 +4,1,100,0,3,125826,0,5982.63,23.79055,1,13,1,2.457002,26.60442,0,0,504.5946,533.656,1,0,0,0,0,3,92.6,0,0,,1000,1000,0,0,1.098612,6.907755,1,0,0,1,0,0,70.0071,8.696783,1.098612,6.279751,1 +4,1,100,0,4,125826,0,5982.63,24.79055,1,13,1,15.38286,6.536007,0,0,0,21.91887,0,0,0,1,0,4,92.6,0,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,70.0071,8.696783,1.386294,3.087348,1 +4,1,100,0,5,125826,0,5982.63,25.79055,1,13,1,37.51563,1.350563,0,0,0,38.8662,0,0,0,0,1,4,92.6,0,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,70.0071,8.696783,1.386294,3.660125,1 +11,1,0,0,1,125832,0,7975.186,2.302532,0,12,1,142.5513,5.500603,0,0,0,148.0519,0,0,0,4,0,4,74.36826,13.73189,0,,0,323,1,0,1.386294,5.777652,0,0,0,1,0,0,72.61372,8.984216,1.386294,4.997563,1 +11,1,0,0,2,125832,0,7975.186,3.302532,0,12,1,83.14978,10.5011,7.957048,0,0,101.6079,0,0,0,4,0,5,74.36826,13.73189,0,,0,323,1,0,1.609438,5.777652,0,0,0,1,0,0,72.61372,8.984216,1.609438,4.621121,1 +11,1,0,0,3,125832,0,7975.186,4.302533,0,12,1,37.66951,0,0,0,0,37.66951,0,0,0,4,0,5,74.36826,13.73189,0,,0,323,1,0,1.609438,5.777652,0,0,0,1,0,0,72.61372,8.984216,1.609438,3.628851,1 +11,1,0,0,4,125832,0,7975.186,5.302533,0,12,1,4.636069,4.942049,0,0,0,9.578117,0,0,0,1,0,5,74.36826,13.73189,0,,0,323,1,0,1.609438,5.777652,0,0,0,1,0,0,72.61372,8.984216,1.609438,2.259481,1 +11,1,0,0,5,125832,0,7975.186,6.302533,0,12,1,35.72948,4.100383,0,0,0,39.82986,0,0,0,3,1,5,74.36826,13.73189,0,,0,323,1,0,1.609438,5.777652,0,0,0,1,0,0,72.61372,8.984216,1.609438,3.684617,1 +11,1,0,0,1,125833,0,7975.186,28.26831,1,12,1,68.45597,27.46683,0,0,1018.16,1114.083,1,0,0,3,0,4,63.8,13.73189,0,,0,323,0,0,1.386294,5.777652,0,0,0,1,0,0,65.52039,8.984216,1.386294,7.015787,1 +11,1,0,0,2,125833,0,7975.186,29.26831,1,12,1,214.4824,41.87225,0,0,0,256.3546,0,0,0,12,0,5,63.8,13.73189,0,,0,323,0,0,1.609438,5.777652,0,0,0,1,0,0,65.52039,8.984216,1.609438,5.546562,1 +11,1,0,0,3,125833,0,7975.186,30.26831,1,12,1,382.3204,21.48669,0,0,0,403.8071,0,0,0,14,0,5,63.8,13.73189,0,,0,323,0,0,1.609438,5.777652,0,0,0,1,0,0,65.52039,8.984216,1.609438,6.000937,1 +11,1,0,0,4,125833,0,7975.186,31.26831,1,12,1,45.89708,7.612425,0,0,0,53.5095,0,0,0,5,0,5,63.8,13.73189,0,,0,323,0,0,1.609438,5.777652,0,0,0,1,0,0,65.52039,8.984216,1.609438,3.979859,1 +11,1,0,0,5,125833,0,7975.186,32.26831,1,12,1,369.2046,1.52701,0,0,0,370.7316,0,0,0,10,4,5,63.8,13.73189,0,,0,323,0,0,1.609438,5.777652,0,0,0,1,0,0,65.52039,8.984216,1.609438,5.915478,1 +11,1,0,0,1,125834,0,7975.186,5.185489,0,12,1,30.15681,40.94692,0,0,0,71.10374,0,0,0,4,0,4,74.36826,13.73189,0,,0,323,1,0,1.386294,5.777652,0,0,0,0,1,0,64.17065,8.984216,1.386294,4.26414,1 +11,1,0,0,2,125834,0,7975.186,6.185489,0,12,1,22.57709,13.67291,0,0,0,36.25,0,0,0,4,0,5,74.36826,13.73189,0,,0,323,1,0,1.609438,5.777652,0,0,0,0,1,0,64.17065,8.984216,1.609438,3.590439,1 +11,1,0,0,3,125834,0,7975.186,7.185489,0,12,1,24.10849,9.814164,0,0,0,33.92265,0,0,0,4,0,5,74.36826,13.73189,0,,0,323,1,0,1.609438,5.777652,0,0,0,0,1,0,64.17065,8.984216,1.609438,3.524083,1 +11,1,0,0,4,125834,0,7975.186,8.18549,0,12,1,15.76263,7.927677,0,0,0,23.69031,0,0,0,3,0,5,74.36826,13.73189,0,,0,323,1,0,1.609438,5.777652,0,0,0,0,1,0,64.17065,8.984216,1.609438,3.165066,1 +11,1,0,0,5,125834,0,7975.186,9.18549,0,12,1,35.30413,3.564441,0,0,0,38.86857,0,0,0,3,1,5,74.36826,13.73189,0,,0,323,1,0,1.609438,5.777652,0,0,0,0,1,0,64.17065,8.984216,1.609438,3.660186,1 +11,1,0,0,1,125835,0,7975.186,28.87337,0,12,1,28.95054,9.384801,0,0,0,38.33534,0,0,0,3,0,4,72.5,13.73189,0,,0,323,0,0,1.386294,5.777652,0,0,0,1,0,0,71.03061,8.984216,1.386294,3.646372,1 +11,1,0,0,2,125835,0,7975.186,29.87337,0,12,1,22.85242,10.76542,24.17401,0,0,57.79185,0,0,0,2,1,5,72.5,13.73189,0,,0,323,0,0,1.609438,5.777652,0,0,0,1,0,0,71.03061,8.984216,1.609438,4.056848,1 +11,1,0,0,3,125835,0,7975.186,30.87337,0,12,1,15.8212,0,0,0,0,15.8212,0,0,0,1,0,5,72.5,13.73189,0,,0,323,0,0,1.609438,5.777652,0,0,0,1,0,0,71.03061,8.984216,1.609438,2.761351,1 +11,1,0,0,4,125835,0,7975.186,31.87337,0,12,1,29.20723,10.54242,0,0,571.9843,611.7339,1,0,0,5,0,5,72.5,13.73189,0,,0,323,0,0,1.609438,5.777652,0,0,0,1,0,0,71.03061,8.984216,1.609438,6.416297,1 +11,1,0,0,5,125835,0,7975.186,32.87337,0,12,1,16.58869,2.973203,30.22544,0,0,49.78732,0,0,0,1,1,5,72.5,13.73189,0,,0,323,0,0,1.609438,5.777652,0,0,0,1,0,0,71.03061,8.984216,1.609438,3.90776,1 +3,1,100,0,1,125836,0,6799.007,36.56947,1,16,1,107.9614,53.13631,20.91074,99.51749,1011.683,1193.691,1,0,11,19,0,1,57.5,13.73189,0,,1000,1000,0,0,0,6.907755,1,0,0,0,0,0,79.52723,8.824679,0,7.084805,1 +3,1,100,0,2,125836,0,6799.007,37.56947,1,16,1,11.56388,16.35463,12.11454,115.6388,0,40.03304,0,0,6,2,0,1,57.5,13.73189,0,,1000,1000,0,0,0,6.907755,1,0,0,0,0,0,79.52723,8.824679,0,3.689705,1 +3,1,100,0,3,125836,0,6799.007,38.56947,1,16,1,31.64239,18.3325,0,421.8985,0,49.97489,0,0,42,4,0,1,57.5,13.73189,0,,1000,1000,0,0,0,6.907755,1,0,0,0,0,0,79.52723,8.824679,0,3.911521,1 +3,1,100,0,1,125837,0,8071.34,43.94524,1,12,1,122.1351,67.4427,27.73221,0,0,217.31,0,0,0,15,0,1,57.5,13.73189,0,,1000,1000,0,0,0,6.907755,1,0,0,1,0,0,67.36094,8.996199,0,5.381325,1 +3,1,100,0,2,125837,0,8071.34,44.94524,1,12,1,162.9956,25,0,0,0,187.9956,0,0,0,10,0,1,57.5,13.73189,0,,1000,1000,0,0,0,6.907755,1,0,0,1,0,0,67.36094,8.996199,0,5.236419,1 +3,1,100,0,3,125837,0,8071.34,45.94524,1,12,1,45.20341,30.24109,0,0,0,75.4445,0,0,0,7,0,1,57.5,13.73189,0,,1000,1000,0,0,0,6.907755,1,0,0,1,0,0,67.36094,8.996199,0,4.323397,1 +1,1,0,1,1,125838,0,7445.503,52.89528,1,12,1,34.98191,4.221954,40.97105,0,0,80.17491,0,0,0,3,2,2,89.5,8.7,0,,300,300,0,0,.6931472,5.703783,1,0,0,1,0,0,70.84401,8.9155,.6931472,4.384211,1 +1,1,0,1,2,125838,0,7445.503,53.89528,1,12,1,11.01322,0,24.46586,0,0,35.47908,0,0,0,0,1,2,89.5,8.7,0,,300,300,0,0,.6931472,5.703783,1,0,0,1,0,0,70.84401,8.9155,.6931472,3.568943,1 +1,1,0,1,3,125838,0,7445.503,54.89528,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,89.5,8.7,0,,300,300,0,0,.6931472,5.703783,1,0,0,1,0,0,70.84401,8.9155,.6931472,,0 +1,1,0,1,4,125838,0,7445.503,55.89528,1,12,1,4.636069,2.577654,0,0,0,7.213723,0,0,0,1,0,2,89.5,8.7,0,,300,300,0,0,.6931472,5.703783,1,0,0,1,0,0,70.84401,8.9155,.6931472,1.975985,1 +1,1,0,1,5,125838,0,7445.503,56.89528,1,12,1,11.05912,0,32.89239,0,0,43.95151,0,0,0,0,1,2,89.5,8.7,0,,300,300,0,0,.6931472,5.703783,1,0,0,1,0,0,70.84401,8.9155,.6931472,3.783087,1 +1,1,0,1,1,125839,0,7445.503,52.94182,0,10,1,62.72618,20.00603,40.97105,0,0,123.7033,0,0,0,5,2,2,76.8,17.4,1,,300,300,0,0,.6931472,5.703783,1,0,0,1,0,0,63.522,8.9155,.6931472,4.817885,1 +1,1,0,1,2,125839,0,7445.503,53.94182,0,10,1,33.03965,49.20154,24.46586,0,0,106.707,0,0,0,2,3,2,76.8,17.4,1,,300,300,0,0,.6931472,5.703783,1,0,0,1,0,0,63.522,8.9155,.6931472,4.670087,1 +1,1,0,1,3,125839,0,7445.503,54.94182,0,10,1,12.05424,19.37218,0,0,0,31.42642,0,0,0,0,2,2,76.8,17.4,1,,300,300,0,0,.6931472,5.703783,1,0,0,1,0,0,63.522,8.9155,.6931472,3.447649,1 +1,1,0,1,4,125839,0,7445.503,55.94182,0,10,1,43.11544,125.9805,12.98099,0,0,182.077,0,0,0,3,3,2,76.8,17.4,1,,300,300,0,0,.6931472,5.703783,1,0,0,1,0,0,63.522,8.9155,.6931472,5.20443,1 +1,1,0,1,5,125839,0,7445.503,56.94182,0,10,1,89.11102,135.6359,20.44662,0,4835.295,5080.489,1,0,0,4,5,2,76.8,17.4,1,,300,300,0,0,.6931472,5.703783,1,0,0,1,0,0,63.522,8.9155,.6931472,8.533163,1 +1,1,0,1,1,125840,0,10787.84,27.84942,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,89.5,0,0,,450,530,0,0,1.386294,6.272877,1,0,0,0,0,0,78.6153,9.286267,1.386294,,0 +1,1,0,1,2,125840,0,10787.84,28.84942,0,12,1,4.381161,11.99343,0,0,0,16.37459,0,0,0,1,0,4,89.5,0,0,,450,530,0,0,1.386294,6.272877,1,0,0,0,0,0,78.6153,9.286267,1.386294,2.795731,1 +1,1,0,1,3,125840,0,10787.84,29.84942,0,12,1,21.44638,13.51621,0,0,0,34.96259,0,0,0,3,0,4,89.5,0,0,,450,530,0,0,1.386294,6.272877,1,0,0,0,0,0,78.6153,9.286267,1.386294,3.554279,1 +1,1,0,1,1,125841,0,10787.84,6.390144,1,12,1,21.88249,0,0,0,0,21.88249,0,0,0,1,1,4,74.36826,13.73189,0,,450,530,1,1,1.386294,6.272877,1,0,0,0,0,0,84.83971,9.286267,1.386294,3.085687,1 +1,1,0,1,2,125841,0,10787.84,7.390144,1,12,1,0,1.807229,0,0,0,1.807229,0,0,0,0,0,4,74.36826,13.73189,0,,450,530,1,1,1.386294,6.272877,1,0,0,0,0,0,84.83971,9.286267,1.386294,.5917947,1 +1,1,0,1,3,125841,0,10787.84,8.390143,1,12,1,26.30923,39.56609,0,0,0,65.87531,0,0,0,4,0,4,74.36826,13.73189,0,,450,530,1,1,1.386294,6.272877,1,0,0,0,0,0,84.83971,9.286267,1.386294,4.187764,1 +1,1,0,1,1,125842,0,10787.84,24.34223,1,12,1,20.98321,6.594724,0,0,0,27.57794,0,0,0,4,0,4,87.4,13,0,,450,530,0,0,1.386294,6.272877,1,0,0,0,0,0,79.50648,9.286267,1.386294,3.317016,1 +1,1,0,1,2,125842,0,10787.84,25.34223,1,12,1,9.857613,8.105148,0,0,0,17.96276,0,0,0,2,0,4,87.4,13,0,,450,530,0,0,1.386294,6.272877,1,0,0,0,0,0,79.50648,9.286267,1.386294,2.888301,1 +1,1,0,1,3,125842,0,10787.84,26.34223,1,12,1,106.4838,18.42893,0,0,0,124.9127,0,0,0,6,0,4,87.4,13,0,,450,530,0,0,1.386294,6.272877,1,0,0,0,0,0,79.50648,9.286267,1.386294,4.827615,1 +1,1,0,1,1,125843,0,10787.84,3.863107,0,12,1,8.093525,7.494005,0,0,0,15.58753,0,0,0,1,0,4,74.36826,13.73189,0,,450,530,1,0,1.386294,6.272877,1,0,0,0,0,0,81.92207,9.286267,1.386294,2.746471,1 +1,1,0,1,2,125843,0,10787.84,4.863108,0,12,1,12.59584,4.24425,0,0,0,16.84009,0,0,0,2,0,4,74.36826,13.73189,0,,450,530,1,0,1.386294,6.272877,1,0,0,0,0,0,81.92207,9.286267,1.386294,2.823762,1 +1,1,0,1,3,125843,0,10787.84,5.863108,0,12,1,64.83791,18.85287,0,0,0,83.69077,0,0,0,5,1,4,74.36826,13.73189,0,,450,530,1,0,1.386294,6.272877,1,0,0,0,0,0,81.92207,9.286267,1.386294,4.427129,1 +7,1,25,0,1,125869,0,9542.002,4.889802,0,13,1,34.74676,3.292108,0,0,0,38.03887,0,0,0,1,1,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,80.91723,9.163564,1.386294,3.638608,1 +7,1,25,0,1,125870,0,9542.002,26.49144,1,13,1,17.07892,4.110719,0,0,0,21.18963,0,0,0,2,0,4,61.3,13.73189,1,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,72.26237,9.163564,1.386294,3.053512,1 +7,1,25,0,1,125871,0,9542.002,6.896646,1,13,1,25.91284,6.419317,0,0,0,32.33216,0,0,0,3,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,0,0,0,83.83487,9.163564,1.386294,3.476062,1 +7,1,25,0,1,125872,0,9542.002,27.436,0,13,1,24.14605,12.56184,14.57008,0,0,51.27797,0,0,0,2,0,4,68.8,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,77.78554,9.163564,1.386294,3.937261,1 +6,1,25,1,1,125891,0,19523.22,38.09172,1,14,1,62.72085,7.773851,0,0,0,70.4947,0,0,0,4,0,4,83.2,21.7,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,66.25087,9.879411,1.386294,4.255538,1 +6,1,25,1,2,125891,0,19523.22,39.09172,1,14,1,155.7952,6.652291,0,0,0,162.4474,0,0,0,4,1,4,83.2,21.7,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,66.25087,9.879411,1.386294,5.090354,1 +6,1,25,1,3,125891,0,19523.22,40.09172,1,14,1,225.5774,4.388206,28.99263,0,0,258.9582,0,0,0,7,1,4,83.2,21.7,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,66.25087,9.879411,1.386294,5.556667,1 +6,1,25,1,1,125892,0,19523.22,38.18207,0,15,1,0,0,0,0,0,0,0,0,0,0,0,4,95.8,0,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,79.21307,9.879411,1.386294,,0 +6,1,25,1,2,125892,0,19523.22,39.18207,0,15,1,0,0,0,0,0,0,0,0,0,0,0,4,95.8,0,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,79.21307,9.879411,1.386294,,0 +6,1,25,1,3,125892,0,19523.22,40.18207,0,15,1,17.19902,0,0,0,0,17.19902,0,0,0,1,0,4,95.8,0,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,79.21307,9.879411,1.386294,2.844852,1 +6,1,25,1,1,125893,0,19523.22,16.64066,0,14,1,41.8139,16.0424,0,0,0,57.8563,0,0,0,6,0,4,86.3,0,1,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,81.05912,9.879411,1.386294,4.057962,1 +6,1,25,1,2,125893,0,19523.22,17.64066,0,14,1,34.50135,1.617251,8.086253,0,0,44.20485,0,0,0,4,0,4,86.3,0,1,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,81.05912,9.879411,1.386294,3.788835,1 +6,1,25,1,3,125893,0,19523.22,18.64066,0,14,1,0,2.432432,0,0,0,2.432432,0,0,0,0,0,4,86.3,0,1,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,81.05912,9.879411,1.386294,.8888918,1 +6,1,25,1,1,125894,0,19523.22,17.66735,0,14,1,11.18964,0,0,0,0,11.18964,0,0,0,2,0,4,93.7,4.3,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,81.05912,9.879411,1.386294,2.414988,1 +6,1,25,1,2,125894,0,19523.22,18.66735,0,14,1,58.76011,2.458221,0,0,0,61.21833,0,0,0,3,0,4,93.7,4.3,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,81.05912,9.879411,1.386294,4.114447,1 +6,1,25,1,3,125894,0,19523.22,19.66735,0,14,1,145.4545,38.32924,0,0,0,183.7838,0,0,0,14,3,4,93.7,4.3,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,81.05912,9.879411,1.386294,5.21376,1 +1,1,0,1,1,125907,0,18647.29,38.52703,0,8,1,0,0,0,0,0,0,0,0,0,0,0,3,93.7,0,0,,113,113,0,0,1.098612,4.727388,1,0,0,0,0,0,75.67756,9.83351,1.098612,,0 +1,1,0,1,2,125907,0,18647.29,39.52703,0,8,1,0,0,0,0,0,0,0,0,0,0,0,3,93.7,0,0,,113,113,0,0,1.098612,4.727388,1,0,0,0,0,0,75.67756,9.83351,1.098612,,0 +1,1,0,1,3,125907,0,18647.29,40.52703,0,8,1,43.58722,0,0,0,0,43.58722,0,0,0,1,0,3,93.7,0,0,,113,113,0,0,1.098612,4.727388,1,0,0,0,0,0,75.67756,9.83351,1.098612,3.774764,1 +1,1,0,1,4,125907,0,18647.29,41.52703,0,8,1,10.93892,0,0,0,0,10.93892,0,0,0,2,0,3,93.7,0,0,,113,113,0,0,1.098612,4.727388,1,0,0,0,0,0,75.67756,9.83351,1.098612,2.392328,1 +1,1,0,1,5,125907,0,18647.29,42.52703,0,8,1,19.17466,5.122968,29.18716,0,0,53.48479,0,0,0,2,0,3,93.7,0,0,,113,113,0,0,1.098612,4.727388,1,0,0,0,0,0,75.67756,9.83351,1.098612,3.979397,1 +1,1,0,1,1,125908,0,18647.29,38.16564,1,11,1,21.20141,10.3298,0,0,0,31.53121,0,0,0,2,0,3,82.1,13,0,,113,113,0,0,1.098612,4.727388,1,0,0,0,0,0,76.56874,9.83351,1.098612,3.450978,1 +1,1,0,1,2,125908,0,18647.29,39.16564,1,11,1,33.531,9.229111,0,0,0,42.76011,0,0,0,0,1,3,82.1,13,0,,113,113,0,0,1.098612,4.727388,1,0,0,0,0,0,76.56874,9.83351,1.098612,3.755606,1 +1,1,0,1,3,125908,0,18647.29,40.16564,1,11,1,0,0,0,0,0,0,0,0,0,0,0,3,82.1,13,0,,113,113,0,0,1.098612,4.727388,1,0,0,0,0,0,76.56874,9.83351,1.098612,,0 +1,1,0,1,4,125908,0,18647.29,41.16564,1,11,1,430.2963,13.79672,25.48314,0,0,469.5761,0,0,0,7,0,3,82.1,13,0,,113,113,0,0,1.098612,4.727388,1,0,0,0,0,0,76.56874,9.83351,1.098612,6.15183,1 +1,1,0,1,5,125908,0,18647.29,42.16564,1,11,1,22.50938,5.769071,0,0,0,28.27845,0,0,0,3,0,3,82.1,13,0,,113,113,0,0,1.098612,4.727388,1,0,0,0,0,0,76.56874,9.83351,1.098612,3.3421,1 +1,1,0,1,1,125909,0,18647.29,16.5421,1,11,1,15.90106,18.43345,0,0,0,34.33451,0,0,0,3,0,3,82.1,8.7,0,,113,113,1,1,1.098612,4.727388,1,0,0,0,0,0,72.18691,9.83351,1.098612,3.536151,1 +1,1,0,1,2,125909,0,18647.29,17.5421,1,11,1,50.40431,10.27493,19.71968,0,0,80.39892,0,0,0,3,0,3,82.1,8.7,0,,113,113,1,1,1.098612,4.727388,1,0,0,0,0,0,72.18691,9.83351,1.098612,4.387001,1 +1,1,0,1,3,125909,0,18647.29,18.5421,1,11,1,17.69042,9.77887,0,0,0,27.46929,0,0,0,3,0,3,82.1,8.7,0,,113,113,0,0,1.098612,4.727388,1,0,0,0,0,0,72.18691,9.83351,1.098612,3.313069,1 +1,1,0,1,4,125909,0,18647.29,19.5421,1,11,1,0,0,0,0,0,0,0,0,0,0,0,3,82.1,8.7,0,,113,113,0,0,1.098612,4.727388,1,0,0,0,0,0,72.18691,9.83351,1.098612,,0 +1,1,0,1,5,125909,0,18647.29,20.5421,1,11,1,0,0,0,0,0,0,0,0,0,0,0,3,82.1,8.7,0,,113,113,0,0,1.098612,4.727388,1,0,0,0,0,0,72.18691,9.83351,1.098612,,0 +1,1,0,0,1,125962,0,3588.089,15.34292,1,10,1,0,0,0,0,0,0,0,0,0,0,0,3,80,13.73189,0,,450,0,1,1,1.098612,0,1,0,0,0,0,0,70.76381,8.185654,1.098612,,0 +1,1,0,0,2,125962,0,3588.089,16.34292,1,10,1,55.52561,0,1.886792,0,0,57.4124,0,0,0,2,2,3,80,13.73189,0,,450,0,1,1,1.098612,0,1,0,0,0,0,0,70.76381,8.185654,1.098612,4.05026,1 +1,1,0,0,3,125962,0,3588.089,17.34292,1,10,1,126.7813,0,0,0,0,126.7813,0,0,0,4,0,3,80,13.73189,0,,450,0,1,1,1.098612,0,1,0,0,0,0,0,70.76381,8.185654,1.098612,4.842464,1 +1,1,0,0,1,125963,0,3588.089,55.24162,1,10,1,0,0,0,0,0,0,0,0,0,0,0,3,83.8,13.73189,0,,450,0,0,0,1.098612,0,1,0,0,1,0,0,64.55314,8.185654,1.098612,,0 +1,1,0,0,2,125963,0,3588.089,56.24162,1,10,1,15.09434,3.234501,0,0,0,18.32884,0,0,0,1,0,3,83.8,13.73189,0,,450,0,0,0,1.098612,0,1,0,0,1,0,0,64.55314,8.185654,1.098612,2.908476,1 +1,1,0,0,3,125963,0,3588.089,57.24162,1,10,1,6.879607,0,0,0,0,6.879607,0,0,0,1,0,3,83.8,13.73189,0,,450,0,0,0,1.098612,0,1,0,0,1,0,0,64.55314,8.185654,1.098612,1.928561,1 +1,1,0,0,1,125964,0,3588.089,58.2204,0,9,1,0,0,0,0,0,0,0,0,0,0,0,3,70,13.73189,1,,450,0,0,0,1.098612,0,1,0,0,0,0,1,47.8484,8.185654,1.098612,,0 +1,1,0,0,2,125964,0,3588.089,59.2204,0,9,1,0,0,0,0,0,0,0,0,0,0,0,3,70,13.73189,1,,450,0,0,0,1.098612,0,1,0,0,0,0,1,47.8484,8.185654,1.098612,,0 +1,1,0,0,3,125964,0,3588.089,60.2204,0,9,1,0,0,0,0,360.2555,360.2555,1,0,0,0,0,3,70,13.73189,1,,450,0,0,0,1.098612,0,1,0,0,0,0,1,47.8484,8.185654,1.098612,5.886814,1 +1,1,0,0,1,125965,0,1,21.65366,0,9,1,10.60071,0,0,0,0,10.60071,0,0,0,2,0,1,45,13.73189,0,,150,0,0,0,0,0,1,0,0,1,0,0,68.1502,.6931472,0,2.360921,1 +1,1,0,0,2,125965,0,1,22.65366,0,9,1,9.703504,0,0,0,0,9.703504,0,0,0,1,0,1,45,13.73189,0,,150,0,0,0,0,0,1,0,0,1,0,0,68.1502,.6931472,0,2.272487,1 +1,1,0,0,3,125965,0,1,23.65366,0,9,1,57.64128,0,0,0,483.8575,541.4988,2,1,0,2,0,2,45,13.73189,0,,150,0,0,0,.6931472,0,1,0,0,1,0,0,68.1502,.6931472,.6931472,6.294341,1 +7,1,25,1,1,125967,1,1176.179,8.539356,1,5,1,0,0,0,0,0,0,0,0,0,0,0,6,74.36826,13.73189,0,,340,340,1,1,1.791759,5.828946,0,3.258096,7.21524,1,0,0,76.93629,7.070876,1.791759,,0 +7,1,25,1,2,125967,1,1176.179,9.539356,1,5,1,8.165487,0,0,0,0,8.165487,0,0,0,1,0,6,74.36826,13.73189,0,,340,340,1,1,1.791759,5.828946,0,3.258096,7.21524,1,0,0,76.93629,7.070876,1.791759,2.099916,1 +7,1,25,1,1,125968,1,1176.179,16.41615,1,5,1,0,0,0,0,0,0,0,0,0,0,0,6,75.8,4.3,0,,340,340,1,1,1.791759,5.828946,0,3.258096,7.21524,1,0,0,58.89369,7.070876,1.791759,,0 +7,1,25,1,2,125968,1,1176.179,17.41615,1,5,1,0,0,0,0,0,0,0,0,0,0,0,6,75.8,4.3,0,,340,340,1,1,1.791759,5.828946,0,3.258096,7.21524,1,0,0,58.89369,7.070876,1.791759,,0 +7,1,25,1,1,125969,1,1176.179,17.52225,1,5,1,136.8233,5.264723,0,0,0,142.088,0,0,0,3,0,6,85.3,4.3,0,,340,340,1,1,1.791759,5.828946,0,3.258096,7.21524,1,0,0,58.69306,7.070876,1.791759,4.956447,1 +7,1,25,1,2,125969,1,1176.179,18.52225,1,5,1,41.3718,3.739793,0,0,253.4295,298.5411,1,0,0,2,0,6,85.3,4.3,0,,340,340,0,0,1.791759,5.828946,0,3.258096,7.21524,1,0,0,58.69306,7.070876,1.791759,5.698908,1 +7,1,25,1,3,125969,1,1176.179,19.52225,1,5,1,9.415262,0,0,0,0,9.415262,0,0,0,0,0,1,85.3,4.3,0,,340,340,0,0,0,5.828946,0,3.258096,7.21524,1,0,0,58.69306,7.070876,0,2.242332,1 +7,1,25,1,4,125969,1,1176.179,20.52225,1,5,1,0,0,0,0,0,0,0,0,0,0,0,1,85.3,4.3,0,,340,340,0,0,0,5.828946,0,3.258096,7.21524,1,0,0,58.69306,7.070876,0,,0 +7,1,25,1,1,125970,1,1176.179,1.850787,0,5,1,0,0,0,0,0,0,0,0,0,0,0,6,74.36826,13.73189,0,,340,340,1,0,1.791759,5.828946,0,3.258096,7.21524,1,0,0,73.69083,7.070876,1.791759,,0 +7,1,25,1,2,125970,1,1176.179,2.850787,0,5,1,0,0,0,0,0,0,0,0,0,0,0,6,74.36826,13.73189,0,,340,340,1,0,1.791759,5.828946,0,3.258096,7.21524,1,0,0,73.69083,7.070876,1.791759,,0 +7,1,25,1,1,125971,1,1176.179,45.83984,1,5,1,0,0,0,0,0,0,0,0,0,0,0,6,63.3,8.7,0,,340,340,0,0,1.791759,5.828946,0,3.258096,7.21524,0,1,0,51.09576,7.070876,1.791759,,0 +7,1,25,1,2,125971,1,1176.179,46.83984,1,5,1,54.98095,10.90365,0,0,0,65.8846,0,0,0,5,0,6,63.3,8.7,0,,340,340,0,0,1.791759,5.828946,0,3.258096,7.21524,0,1,0,51.09576,7.070876,1.791759,4.187905,1 +1,1,0,0,1,125983,0,16303.07,27.41684,1,12,1,15.07841,8.455971,0,0,0,23.53438,0,0,0,2,0,2,35,13.73189,0,,300,300,0,0,.6931472,5.703783,1,0,0,1,0,0,72.96643,9.69917,.6931472,3.158462,1 +1,1,0,0,2,125983,0,16303.07,28.41684,1,12,1,88.10573,17.94604,0,0,0,106.0518,0,0,0,6,0,2,35,13.73189,0,,300,300,0,0,.6931472,5.703783,1,0,0,1,0,0,72.96643,9.69917,.6931472,4.663928,1 +1,1,0,0,3,125983,0,16303.07,29.41684,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,35,13.73189,0,,300,300,0,0,.6931472,5.703783,1,0,0,1,0,0,72.96643,9.69917,.6931472,,0 +1,1,0,0,1,125984,0,16303.07,9.434634,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,74.36826,13.73189,0,,300,300,1,0,.6931472,5.703783,1,0,0,0,0,0,86.51532,9.69917,.6931472,,0 +1,1,0,0,2,125984,0,16303.07,10.43463,0,12,1,16.51982,3.744493,0,0,0,20.26432,0,0,0,0,0,2,74.36826,13.73189,0,,300,300,1,0,.6931472,5.703783,1,0,0,0,0,0,86.51532,9.69917,.6931472,3.008862,1 +1,1,0,0,3,125984,0,16303.07,11.43463,0,12,1,10.0452,0,0,0,0,10.0452,0,0,0,2,0,2,74.36826,13.73189,0,,300,300,1,0,.6931472,5.703783,1,0,0,0,0,0,86.51532,9.69917,.6931472,2.307095,1 +1,1,0,0,1,126004,0,13952.85,51.66325,1,12,1,257.5848,48.26889,32.326,0,1196.336,1534.515,1,0,0,35,1,2,87.5,13.73189,1,,300,398,0,0,.6931472,5.986452,1,0,0,1,0,0,61.69535,9.543511,.6931472,7.33597,1 +1,1,0,0,2,126004,0,13952.85,52.66325,1,12,1,139.902,108.3778,9.798585,0,0,258.0784,0,0,0,20,0,2,87.5,13.73189,1,,300,398,0,0,.6931472,5.986452,1,0,0,1,0,0,61.69535,9.543511,.6931472,5.553263,1 +1,1,0,0,3,126004,0,13952.85,53.66325,1,12,1,99.85134,44.92072,0,0,0,144.772,0,0,0,16,0,2,87.5,13.73189,1,,300,398,0,0,.6931472,5.986452,1,0,0,1,0,0,61.69535,9.543511,.6931472,4.975161,1 +1,1,0,0,4,126004,0,13952.85,54.66325,1,12,1,187.2419,31.91831,51.85865,0,1240.936,1511.955,1,0,0,9,1,2,87.5,13.73189,1,,300,398,0,0,.6931472,5.986452,1,0,0,1,0,0,61.69535,9.543511,.6931472,7.321159,1 +1,1,0,0,5,126004,0,13952.85,55.66325,1,12,1,275.9781,53.71898,35.17038,0,903.7021,1268.57,1,0,0,16,1,2,87.5,13.73189,1,,300,398,0,0,.6931472,5.986452,1,0,0,1,0,0,61.69535,9.543511,.6931472,7.145645,1 +1,1,0,0,1,126005,0,13952.85,54.70226,0,16,1,217.7275,63.3373,36.68055,0,0,317.7454,0,0,0,22,1,2,85,13.73189,0,,300,398,0,0,.6931472,5.986452,1,0,0,1,0,0,64.83063,9.543511,.6931472,5.76125,1 +1,1,0,0,2,126005,0,13952.85,55.70226,0,16,1,213.9358,207.4088,23.08111,0,0,444.4257,0,0,0,9,1,2,85,13.73189,0,,300,398,0,0,.6931472,5.986452,1,0,0,1,0,0,64.83063,9.543511,.6931472,6.096783,1 +1,1,0,0,3,126005,0,13952.85,56.70226,0,16,1,239.3459,54.42517,29.73241,0,0,323.5035,0,0,0,13,1,2,85,13.73189,0,,300,398,0,0,.6931472,5.986452,1,0,0,1,0,0,64.83063,9.543511,.6931472,5.77921,1 +1,1,0,0,4,126005,0,13952.85,57.70226,0,16,1,174.6214,57.96237,22.94631,0,0,255.5301,0,0,0,8,0,2,85,13.73189,0,,300,398,0,0,.6931472,5.986452,1,0,0,1,0,0,64.83063,9.543511,.6931472,5.54334,1 +1,1,0,0,5,126005,0,13952.85,58.70226,0,16,1,71.93942,87.61464,31.59024,0,0,191.1443,0,0,0,5,1,2,85,13.73189,0,,300,398,0,0,.6931472,5.986452,1,0,0,1,0,0,64.83063,9.543511,.6931472,5.253029,1 +9,1,50,0,1,126039,0,9542.002,28.21082,1,10,1,18.4414,1.302796,31.08269,0,0,50.82689,0,0,0,1,1,5,91.3,13.73189,0,,799,799,0,0,1.609438,6.683361,0,3.931826,7.376508,1,0,0,68.16984,9.163564,1.609438,3.928426,1 +9,1,50,0,2,126039,0,9542.002,29.21082,1,10,1,10.88732,9.27055,0,0,0,20.15787,0,0,0,1,0,5,91.3,13.73189,0,,799,799,0,0,1.609438,6.683361,0,3.931826,7.376508,1,0,0,68.16984,9.163564,1.609438,3.003595,1 +9,1,50,0,3,126039,0,9542.002,30.21082,1,10,1,10.90188,9.544103,0,0,0,20.44599,0,0,0,1,0,5,91.3,13.73189,0,,799,799,0,0,1.609438,6.683361,0,3.931826,7.376508,1,0,0,68.16984,9.163564,1.609438,3.017787,1 +9,1,50,0,1,126040,0,9542.002,8.416153,1,10,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,799,799,1,1,1.609438,6.683361,0,3.931826,7.376508,1,0,0,71.09991,9.163564,1.609438,,0 +9,1,50,0,2,126040,0,9542.002,9.416153,1,10,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,799,799,1,1,1.609438,6.683361,0,3.931826,7.376508,1,0,0,71.09991,9.163564,1.609438,,0 +9,1,50,0,3,126040,0,9542.002,10.41615,1,10,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,799,799,1,1,1.609438,6.683361,0,3.931826,7.376508,1,0,0,71.09991,9.163564,1.609438,,0 +9,1,50,0,1,126041,0,9542.002,9.46475,1,10,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,799,799,1,1,1.609438,6.683361,0,3.931826,7.376508,1,0,0,71.09991,9.163564,1.609438,,0 +9,1,50,0,2,126041,0,9542.002,10.46475,1,10,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,799,799,1,1,1.609438,6.683361,0,3.931826,7.376508,1,0,0,71.09991,9.163564,1.609438,,0 +9,1,50,0,3,126041,0,9542.002,11.46475,1,10,1,226.2735,0,0,0,0,226.2735,0,0,0,3,0,5,74.36826,13.73189,0,,799,799,1,1,1.609438,6.683361,0,3.931826,7.376508,1,0,0,71.09991,9.163564,1.609438,5.421745,1 +9,1,50,0,1,126042,0,9542.002,32.282,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,95,13.73189,0,,799,799,0,0,1.609438,6.683361,0,3.931826,7.376508,1,0,0,71.35583,9.163564,1.609438,,0 +9,1,50,0,2,126042,0,9542.002,33.282,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,95,13.73189,0,,799,799,0,0,1.609438,6.683361,0,3.931826,7.376508,1,0,0,71.35583,9.163564,1.609438,,0 +9,1,50,0,3,126042,0,9542.002,34.282,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,95,13.73189,0,,799,799,0,0,1.609438,6.683361,0,3.931826,7.376508,1,0,0,71.35583,9.163564,1.609438,,0 +9,1,50,0,1,126049,0,12300.87,8.427105,1,11,1,118.0801,1.177856,0,0,0,119.2579,0,0,0,2,0,6,74.36826,13.73189,0,,1000,1000,1,1,1.791759,6.907755,0,3.931826,7.600903,1,0,0,73.41399,9.417506,1.791759,4.781289,1 +9,1,50,0,2,126049,0,12300.87,9.427105,1,11,1,16.71159,2.156334,0,0,0,18.86792,0,0,0,1,1,6,74.36826,13.73189,0,,1000,1000,1,1,1.791759,6.907755,0,3.931826,7.600903,1,0,0,73.41399,9.417506,1.791759,2.937463,1 +9,1,50,0,3,126049,0,12300.87,10.4271,1,11,1,7.371007,1.474201,0,0,0,8.845209,0,0,0,1,0,7,74.36826,13.73189,0,,1000,1000,1,1,1.94591,6.907755,0,3.931826,7.600903,1,0,0,73.41399,9.417506,1.94591,2.179876,1 +9,1,50,0,1,126050,0,12300.87,32.10678,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,70,13.73189,0,,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,1,0,0,71.28197,9.417506,1.791759,,0 +9,1,50,0,2,126050,0,12300.87,33.10678,0,12,1,10.78167,0,0,0,0,10.78167,0,0,0,0,1,6,70,13.73189,0,,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,1,0,0,71.28197,9.417506,1.791759,2.377848,1 +9,1,50,0,3,126050,0,12300.87,34.10678,0,12,1,0,0,0,0,0,0,0,0,0,0,0,7,70,13.73189,0,,1000,1000,0,0,1.94591,6.907755,0,3.931826,7.600903,1,0,0,71.28197,9.417506,1.94591,,0 +9,1,50,0,1,126051,0,12300.87,5.177276,0,11,1,44.75854,6.478209,0,0,0,51.23675,0,0,0,4,0,6,74.36826,13.73189,0,,1000,1000,1,0,1.791759,6.907755,0,3.931826,7.600903,1,0,0,74.73775,9.417506,1.791759,3.936457,1 +9,1,50,0,2,126051,0,12300.87,6.177276,0,11,1,15.63342,5.54717,0,0,0,21.18059,0,0,0,2,0,6,74.36826,13.73189,0,,1000,1000,1,0,1.791759,6.907755,0,3.931826,7.600903,1,0,0,74.73775,9.417506,1.791759,3.053085,1 +9,1,50,0,3,126051,0,12300.87,7.177276,0,11,1,467.9656,19.48894,0,0,1272.885,1760.339,1,0,0,8,0,7,74.36826,13.73189,0,,1000,1000,1,0,1.94591,6.907755,0,3.931826,7.600903,1,0,0,74.73775,9.417506,1.94591,7.473262,1 +9,1,50,0,1,126052,0,12300.87,1.544148,0,11,1,117.7856,16.48999,0,0,0,134.2756,0,0,0,10,0,6,74.36826,13.73189,0,,1000,1000,1,0,1.791759,6.907755,0,3.931826,7.600903,1,0,0,70.69041,9.417506,1.791759,4.899895,1 +9,1,50,0,2,126052,0,12300.87,2.544148,0,11,1,100.8086,8.371967,0,0,0,109.1806,0,0,0,5,5,6,74.36826,13.73189,0,,1000,1000,1,0,1.791759,6.907755,0,3.931826,7.600903,1,0,0,70.69041,9.417506,1.791759,4.693003,1 +9,1,50,0,3,126052,0,12300.87,3.544148,0,11,1,485.4546,6.579853,0,0,0,492.0344,0,0,0,5,60,7,74.36826,13.73189,0,,1000,1000,1,0,1.94591,6.907755,0,3.931826,7.600903,1,0,0,70.69041,9.417506,1.94591,6.198549,1 +9,1,50,0,1,126053,0,12300.87,29.73032,1,11,1,41.8139,9.110719,0,0,0,50.92462,0,0,0,2,1,6,87.5,13.73189,0,,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,0,0,0,75.535,9.417506,1.791759,3.930346,1 +9,1,50,0,2,126053,0,12300.87,30.73032,1,11,1,8.625337,13.66038,0,0,992.1833,1014.469,2,0,0,1,0,6,87.5,13.73189,0,,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,0,0,0,75.535,9.417506,1.791759,6.922121,1 +9,1,50,0,3,126053,0,12300.87,31.73032,1,11,1,19.16462,4.412776,0,0,0,23.5774,0,0,0,2,0,7,87.5,13.73189,0,,1000,1000,0,0,1.94591,6.907755,0,3.931826,7.600903,0,0,0,75.535,9.417506,1.94591,3.160289,1 +9,1,50,0,1,126054,0,12300.87,11.55099,1,11,1,88.33923,7.29682,347.4676,0,0,443.1036,0,0,0,5,2,6,74.36826,13.73189,0,,1000,1000,1,1,1.791759,6.907755,0,3.931826,7.600903,1,0,0,77.6554,9.417506,1.791759,6.093804,1 +9,1,50,0,2,126054,0,12300.87,12.55099,1,11,1,85.44474,2.156334,170.3504,0,0,257.9515,0,0,0,7,1,6,74.36826,13.73189,0,,1000,1000,1,1,1.791759,6.907755,0,3.931826,7.600903,1,0,0,77.6554,9.417506,1.791759,5.552772,1 +9,1,50,0,3,126054,0,12300.87,13.55099,1,11,1,150.0737,3.439803,19.65602,0,0,173.1695,0,0,0,10,1,7,74.36826,13.73189,0,,1000,1000,1,1,1.94591,6.907755,0,3.931826,7.600903,1,0,0,77.6554,9.417506,1.94591,5.154271,1 +2,1,100,0,1,126055,0,4093.052,21.77413,0,12,1,13.54535,0,38.86926,0,0,52.4146,0,0,0,0,1,1,88.8,13.73189,0,,400,0,0,0,0,0,1,0,0,0,0,0,78.66626,8.31729,0,3.959185,1 +2,1,100,0,2,126055,0,4093.052,22.77413,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,88.8,13.73189,0,,400,0,0,0,0,0,1,0,0,0,0,0,78.66626,8.31729,0,,0 +2,1,100,0,3,126055,0,4093.052,23.77413,0,12,1,15.72482,3.965602,0,0,0,19.69042,0,0,0,2,0,1,88.8,13.73189,0,,400,0,0,0,0,0,1,0,0,0,0,0,78.66626,8.31729,0,2.980132,1 +2,1,100,0,4,126055,0,4093.052,24.77413,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,88.8,13.73189,0,,400,0,0,0,0,0,1,0,0,0,0,0,78.66626,8.31729,0,,0 +2,1,100,0,5,126055,0,4093.052,25.77413,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,88.8,13.73189,0,,400,0,0,0,0,0,1,0,0,0,0,0,78.66626,8.31729,0,,0 +2,1,100,0,1,126056,0,8754.739,47.22792,1,8,1,58.30389,49.14016,0,0,477.0023,584.4464,1,0,0,2,0,3,88.8,13.73189,0,,800,800,0,0,1.098612,6.684612,1,0,0,1,0,0,68.69417,9.077465,1.098612,6.370665,1 +2,1,100,0,2,126056,0,8754.739,48.22792,1,8,1,33.96227,66.42587,38.30728,0,0,138.6954,0,0,0,3,1,3,88.8,13.73189,0,,800,800,0,0,1.098612,6.684612,1,0,0,1,0,0,68.69417,9.077465,1.098612,4.93228,1 +2,1,100,0,3,126056,0,8754.739,49.22792,1,8,1,18.91892,56.82064,0,0,0,75.73956,0,0,0,1,0,3,88.8,13.73189,0,,800,800,0,0,1.098612,6.684612,1,0,0,1,0,0,68.69417,9.077465,1.098612,4.327301,1 +2,1,100,0,4,126056,0,8754.739,50.22792,1,8,1,18.45943,27.31996,0,0,0,45.7794,0,0,0,1,0,3,88.8,13.73189,0,,800,800,0,0,1.098612,6.684612,1,0,0,1,0,0,68.69417,9.077465,1.098612,3.823834,1 +2,1,100,0,5,126056,0,8754.739,51.22792,1,8,1,295.0396,54.80617,0,0,0,349.8458,0,0,0,4,0,3,88.8,13.73189,0,,800,800,0,0,1.098612,6.684612,1,0,0,1,0,0,68.69417,9.077465,1.098612,5.857492,1 +2,1,100,0,1,126057,0,8754.739,53.3306,0,8,1,204.947,139.3404,40.61837,0,0,384.9058,0,0,0,15,1,3,82.5,13.73189,0,,800,800,0,0,1.098612,6.684612,1,0,0,1,0,0,67.05456,9.077465,1.098612,5.952999,1 +2,1,100,0,2,126057,0,8754.739,54.3306,0,8,1,118.248,12.54986,0,0,734.8302,865.6281,1,0,0,9,0,3,82.5,13.73189,0,,800,800,0,0,1.098612,6.684612,1,0,0,1,0,0,67.05456,9.077465,1.098612,6.763455,1 +2,1,100,0,3,126057,0,8754.739,55.3306,0,8,1,159.0909,42.67322,0,0,1207.027,1408.791,1,0,0,10,0,3,82.5,13.73189,0,,800,800,0,0,1.098612,6.684612,1,0,0,1,0,0,67.05456,9.077465,1.098612,7.250487,1 +2,1,100,0,4,126057,0,8754.739,56.3306,0,8,1,41.47675,4.494075,31.43573,0,0,77.40656,0,0,0,2,1,3,82.5,13.73189,0,,800,800,0,0,1.098612,6.684612,1,0,0,1,0,0,67.05456,9.077465,1.098612,4.349072,1 +2,1,100,0,5,126057,0,8754.739,57.3306,0,8,1,347.4781,16.36932,35.71905,0,0,399.5665,0,0,0,4,1,3,82.5,13.73189,0,,800,800,0,0,1.098612,6.684612,1,0,0,1,0,0,67.05456,9.077465,1.098612,5.99038,1 +2,1,100,0,1,126058,0,8754.739,18.12457,0,12.32507,1,25.91284,30.6066,0,0,0,56.51944,0,0,0,4,0,3,85,13.73189,0,,800,800,0,0,1.098612,6.684612,1,0,0,1,0,0,72.24671,9.077465,1.098612,4.034585,1 +2,1,100,0,2,126058,0,8754.739,19.12457,0,12.32507,1,19.94609,45.92992,16.90027,0,0,82.77628,0,0,0,2,1,3,85,13.73189,0,,800,800,0,0,1.098612,6.684612,1,0,0,1,0,0,72.24671,9.077465,1.098612,4.416142,1 +2,1,100,0,3,126058,0,8754.739,20.12457,0,12.32507,1,9.82801,52.79115,34.91892,0,0,97.53809,0,0,0,0,1,3,85,13.73189,0,,800,800,0,0,1.098612,6.684612,1,0,0,1,0,0,72.24671,9.077465,1.098612,4.580243,1 +2,1,100,0,4,126058,0,8754.739,21.12457,0,12.32507,1,32.81677,26.08478,0,0,0,58.90155,0,0,0,3,0,3,85,13.73189,0,,800,800,0,0,1.098612,6.684612,1,0,0,1,0,0,72.24671,9.077465,1.098612,4.075867,1 +2,1,100,0,5,126058,0,8754.739,22.12457,0,12.32507,1,0,0,0,0,0,0,0,0,0,0,0,3,85,13.73189,0,,800,800,0,0,1.098612,6.684612,1,0,0,1,0,0,72.24671,9.077465,1.098612,,0 +7,1,25,1,1,126064,0,7733.25,46.83094,1,7,1,74.34053,1.199041,51.81655,0,0,127.3561,0,0,0,6,1,2,78.9,17.4,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,1,37.95773,8.953414,.6931472,4.846987,1 +7,1,25,1,2,126064,0,7733.25,47.83094,1,7,1,23.00109,14.57284,5.476451,0,0,43.05038,0,0,0,2,0,2,78.9,17.4,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,1,37.95773,8.953414,.6931472,3.762371,1 +7,1,25,1,3,126064,0,7733.25,48.83094,1,7,1,37.90524,2.533666,0,0,0,40.4389,0,0,0,5,0,2,78.9,17.4,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,1,37.95773,8.953414,.6931472,3.699792,1 +7,1,25,1,1,126065,0,7733.25,52.93634,0,8,1,107.3141,139.3465,42.42206,0,0,289.0827,0,0,0,9,1,2,61.1,30.4,1,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,1,46.79753,8.953414,.6931472,5.666713,1 +7,1,25,1,2,126065,0,7733.25,53.93634,0,8,1,25.73932,52.24535,0,0,0,77.98466,0,0,0,2,0,2,61.1,30.4,1,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,1,46.79753,8.953414,.6931472,4.356512,1 +7,1,25,1,3,126065,0,7733.25,54.93634,0,8,1,194.2643,62.23441,0,0,7492.12,7748.619,3,0,0,8,0,2,61.1,30.4,1,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,1,46.79753,8.953414,.6931472,8.95527,1 +11,1,0,0,1,126084,0,11130.89,10.48323,0,9,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,0,0,1,0,1.609438,0,0,0,0,0,0,0,83.49574,9.31757,1.609438,,0 +11,1,0,0,2,126084,0,11130.89,11.48323,0,9,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,0,0,1,0,1.609438,0,0,0,0,0,0,0,83.49574,9.31757,1.609438,,0 +11,1,0,0,3,126084,0,11130.89,12.48323,0,9,1,4.914005,0,0,0,0,4.914005,0,0,0,1,0,5,74.36826,13.73189,0,,0,0,1,0,1.609438,0,0,0,0,0,0,0,83.49574,9.31757,1.609438,1.592089,1 +11,1,0,0,4,126084,0,11130.89,13.48323,0,9,1,7.748405,0,0,0,0,7.748405,0,0,0,1,0,5,74.36826,13.73189,0,,0,0,1,0,1.609438,0,0,0,0,0,0,0,83.49574,9.31757,1.609438,2.047487,1 +11,1,0,0,5,126084,0,11130.89,14.48323,0,9,1,20.84202,0,0,0,0,20.84202,0,0,0,1,0,5,74.36826,13.73189,0,,0,0,1,0,1.609438,0,0,0,0,0,0,0,83.49574,9.31757,1.609438,3.036971,1 +11,1,0,0,1,126085,0,11130.89,31.58932,0,9,1,8.833922,0,32.00824,0,0,40.84217,0,0,0,0,1,5,76.8,13,0,,0,0,0,0,1.609438,0,0,0,0,0,0,0,74.49057,9.31757,1.609438,3.709715,1 +11,1,0,0,2,126085,0,11130.89,32.58932,0,9,1,33.15364,0,2.156334,0,0,35.30997,0,0,0,0,1,5,76.8,13,0,,0,0,0,0,1.609438,0,0,0,0,0,0,0,74.49057,9.31757,1.609438,3.564166,1 +11,1,0,0,3,126085,0,11130.89,33.58932,0,9,1,0,0,0,0,0,0,0,0,0,0,0,5,76.8,13,0,,0,0,0,0,1.609438,0,0,0,0,0,0,0,74.49057,9.31757,1.609438,,0 +11,1,0,0,4,126085,0,11130.89,34.58932,0,9,1,0,0,0,54.69462,0,0,0,0,4,0,0,5,76.8,13,0,,0,0,0,0,1.609438,0,0,0,0,0,0,0,74.49057,9.31757,1.609438,,0 +11,1,0,0,5,126085,0,11130.89,35.58932,0,9,1,0,0,0,0,0,0,0,0,0,0,0,5,76.8,13,0,,0,0,0,0,1.609438,0,0,0,0,0,0,0,74.49057,9.31757,1.609438,,0 +11,1,0,0,1,126086,0,11130.89,12.10678,0,9,1,7.656066,5.235571,0,0,0,12.89164,0,0,0,1,0,5,74.36826,13.73189,0,,0,0,1,0,1.609438,0,0,0,0,1,0,0,75.63023,9.31757,1.609438,2.556579,1 +11,1,0,0,2,126086,0,11130.89,13.10678,0,9,1,7.54717,0,0,0,0,7.54717,0,0,0,2,0,5,74.36826,13.73189,0,,0,0,1,0,1.609438,0,0,0,0,1,0,0,75.63023,9.31757,1.609438,2.021173,1 +11,1,0,0,3,126086,0,11130.89,14.10678,0,9,1,9.336609,3.87715,0,0,0,13.21376,0,0,0,2,0,5,74.36826,13.73189,0,,0,0,1,0,1.609438,0,0,0,0,1,0,0,75.63023,9.31757,1.609438,2.581259,1 +11,1,0,0,4,126086,0,11130.89,15.10678,0,9,1,104.6035,0,0,0,0,104.6035,0,0,0,2,0,5,74.36826,13.73189,0,,0,0,1,0,1.609438,0,0,0,0,1,0,0,75.63023,9.31757,1.609438,4.650177,1 +11,1,0,0,5,126086,0,11130.89,16.10678,0,9,1,25.42726,0,0,0,0,25.42726,0,0,0,2,0,5,74.36826,13.73189,0,,0,0,1,0,1.609438,0,0,0,0,1,0,0,75.63023,9.31757,1.609438,3.235822,1 +11,1,0,0,1,126087,0,11130.89,9.407255,1,9,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,0,0,1,1,1.609438,0,0,0,0,0,0,0,82.98176,9.31757,1.609438,,0 +11,1,0,0,2,126087,0,11130.89,10.40726,1,9,1,0,2.097035,0,0,0,2.097035,0,0,0,0,0,5,74.36826,13.73189,0,,0,0,1,1,1.609438,0,0,0,0,0,0,0,82.98176,9.31757,1.609438,.7405244,1 +11,1,0,0,3,126087,0,11130.89,11.40726,1,9,1,12.28501,0,0,0,0,12.28501,0,0,0,2,0,5,74.36826,13.73189,0,,0,0,1,1,1.609438,0,0,0,0,0,0,0,82.98176,9.31757,1.609438,2.50838,1 +11,1,0,0,4,126087,0,11130.89,12.40726,1,9,1,6.381039,0,0,0,0,6.381039,0,0,0,1,0,5,74.36826,13.73189,0,,0,0,1,1,1.609438,0,0,0,0,0,0,0,82.98176,9.31757,1.609438,1.853331,1 +11,1,0,0,5,126087,0,11130.89,13.40726,1,9,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,0,0,1,1,1.609438,0,0,0,0,0,0,0,82.98176,9.31757,1.609438,,0 +11,1,0,0,1,126088,0,11130.89,27.19781,1,9,1,61.83746,37.04358,0,0,569.6584,668.5394,1,0,0,7,0,5,73.7,8.7,0,,0,0,0,0,1.609438,0,0,0,0,0,0,0,75.38175,9.31757,1.609438,6.505095,1 +11,1,0,0,2,126088,0,11130.89,28.19781,1,9,1,13.47709,7.024259,0,0,347.407,367.9084,1,0,0,2,0,5,73.7,8.7,0,,0,0,0,0,1.609438,0,0,0,0,0,0,0,75.38175,9.31757,1.609438,5.907834,1 +11,1,0,0,3,126088,0,11130.89,29.19781,1,9,1,19.65602,1.911548,0,0,0,21.56757,0,0,0,2,0,5,73.7,8.7,0,,0,0,0,0,1.609438,0,0,0,0,0,0,0,75.38175,9.31757,1.609438,3.071191,1 +11,1,0,0,4,126088,0,11130.89,30.19781,1,9,1,20.73838,3.682771,0,0,0,24.42115,0,0,0,1,0,5,73.7,8.7,0,,0,0,0,0,1.609438,0,0,0,0,0,0,0,75.38175,9.31757,1.609438,3.19545,1 +11,1,0,0,5,126088,0,11130.89,31.19781,1,9,1,43.14297,35.64402,0,0,797.9783,876.7653,1,0,0,4,0,5,73.7,8.7,0,,0,0,0,0,1.609438,0,0,0,0,0,0,0,75.38175,9.31757,1.609438,6.776239,1 +11,1,0,1,1,126091,0,6160.05,59.03628,1,12,1,94.84319,76.53197,34.66827,0,0,206.0434,0,0,0,5,1,1,56.8,34.8,1,,0,94,0,0,0,4.543295,0,0,0,1,0,0,68.39278,8.726003,0,5.328087,1 +11,1,0,1,2,126091,0,6160.05,60.03628,1,12,1,37.85793,134.6255,0,0,0,172.4835,0,0,0,5,0,1,56.8,34.8,1,,0,94,0,0,0,4.543295,0,0,0,1,0,0,68.39278,8.726003,0,5.150301,1 +11,1,0,1,3,126091,0,6160.05,61.03628,1,12,1,115.4093,74.85686,33.50075,0,0,223.767,0,0,0,8,2,1,56.8,34.8,1,,0,94,0,0,0,4.543295,0,0,0,1,0,0,68.39278,8.726003,0,5.410605,1 +11,1,0,1,4,126091,0,6160.05,62.03628,1,12,1,61.65971,48.77608,0,0,0,110.4358,0,0,0,7,0,1,56.8,34.8,1,,0,94,0,0,0,4.543295,0,0,0,1,0,0,68.39278,8.726003,0,4.704434,1 +11,1,0,1,5,126091,0,6160.05,63.03628,1,12,1,49.76606,65.95917,40.45087,0,0,156.1761,0,0,0,6,1,1,56.8,34.8,1,,0,94,0,0,0,4.543295,0,0,0,1,0,0,68.39278,8.726003,0,5.050984,1 +3,1,100,0,1,126107,0,8785.98,46.41752,1,8,1,10.60071,0,46.77856,0,0,57.37927,0,0,0,0,1,1,80,13.73189,0,,922,922,0,0,0,6.826545,1,0,0,1,0,0,62.95374,9.081026,0,4.049683,1 +3,1,100,0,2,126107,0,8785.98,47.41752,1,8,1,166.7763,0,0,0,0,166.7763,0,0,0,3,0,1,80,13.73189,0,,922,922,0,0,0,6.826545,1,0,0,1,0,0,62.95374,9.081026,0,5.116653,1 +3,1,100,0,3,126107,0,8785.98,48.41752,1,8,1,175.43,27.86241,0,0,1196.427,1399.72,1,0,0,5,0,1,80,13.73189,0,,922,922,0,0,0,6.826545,1,0,0,1,0,0,62.95374,9.081026,0,7.244028,1 +11,1,0,1,1,126119,0,13816.94,58.87748,0,16,1,0,0,0,0,0,0,0,0,0,0,0,3,93.7,4.3,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,77.25327,9.533723,1.098612,,0 +11,1,0,1,2,126119,0,13816.94,59.87748,0,16,1,31.93833,1.624449,16.0022,0,0,49.56498,0,0,0,1,1,3,93.7,4.3,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,77.25327,9.533723,1.098612,3.903285,1 +11,1,0,1,3,126119,0,13816.94,60.87748,0,16,1,32.14465,2.199899,0,0,0,34.34455,0,0,0,2,1,3,93.7,4.3,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,77.25327,9.533723,1.098612,3.536443,1 +11,1,0,1,4,126119,0,13816.94,61.87748,0,16,1,20.86231,0,0,0,0,20.86231,0,0,0,1,1,3,93.7,4.3,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,77.25327,9.533723,1.098612,3.037944,1 +11,1,0,1,5,126119,0,13816.94,62.87748,0,16,1,14.46193,0,45.44875,0,0,59.91068,0,0,0,0,2,3,93.7,4.3,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,77.25327,9.533723,1.098612,4.092854,1 +11,1,0,1,1,126120,0,13816.94,17.79055,0,12,1,54.28227,15.18697,31.73703,0,0,101.2063,0,0,0,5,1,3,92.6,4.3,0,,0,0,1,0,1.098612,0,0,0,0,0,0,0,80.46294,9.533723,1.098612,4.617161,1 +11,1,0,1,2,126120,0,13816.94,18.79055,0,12,1,0,6.150881,0,0,0,6.150881,0,0,0,0,0,3,92.6,4.3,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,80.46294,9.533723,1.098612,1.816595,1 +11,1,0,1,3,126120,0,13816.94,19.79055,0,12,1,51.58212,9.819186,0,0,0,61.40131,0,0,0,5,0,3,92.6,4.3,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,80.46294,9.533723,1.098612,4.117431,1 +11,1,0,1,4,126120,0,13816.94,20.79055,0,12,1,14.83542,0,22.41539,0,0,37.25081,0,0,0,0,2,3,92.6,4.3,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,80.46294,9.533723,1.098612,3.617674,1 +11,1,0,1,5,126120,0,13816.94,21.79055,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,92.6,4.3,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,80.46294,9.533723,1.098612,,0 +11,1,0,1,1,126121,0,13816.94,53.80151,1,12,1,81.4234,28.32328,0,0,310.6273,420.3739,1,0,0,7,0,3,86.3,17.4,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,71.963,9.533723,1.098612,6.041145,1 +11,1,0,1,2,126121,0,13816.94,54.80151,1,12,1,24.77974,15.00551,33.11674,0,1072.902,1145.804,1,0,0,1,1,3,86.3,17.4,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,71.963,9.533723,1.098612,7.043862,1 +11,1,0,1,3,126121,0,13816.94,55.80151,1,12,1,57.75992,10.7333,0,0,0,68.49322,0,0,0,1,1,3,86.3,17.4,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,71.963,9.533723,1.098612,4.226735,1 +11,1,0,1,4,126121,0,13816.94,56.80151,1,12,1,73.24989,5.535466,0,0,0,78.78535,0,0,0,3,1,3,86.3,17.4,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,71.963,9.533723,1.098612,4.366727,1 +11,1,0,1,5,126121,0,13816.94,57.80151,1,12,1,77.41386,9.136538,41.29307,0,0,127.8435,0,0,0,4,1,3,86.3,17.4,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,71.963,9.533723,1.098612,4.850807,1 +8,1,50,1,1,126129,0,11888.34,32.31485,0,9,1,25.58001,0,0,0,0,25.58001,0,0,0,2,0,2,88.4,8.7,0,,949,949,0,0,.6931472,6.855409,0,3.931826,7.548556,0,0,0,74.574,9.383397,.6931472,3.241811,1 +8,1,50,1,2,126129,0,11888.34,33.31485,0,9,1,0,0,0,0,0,0,0,0,0,0,0,2,88.4,8.7,0,,949,949,0,0,.6931472,6.855409,0,3.931826,7.548556,0,0,0,74.574,9.383397,.6931472,,0 +8,1,50,1,3,126129,0,11888.34,34.31485,0,9,1,17.3439,0,0,0,0,17.3439,0,0,0,1,0,2,88.4,8.7,0,,949,949,0,0,.6931472,6.855409,0,3.931826,7.548556,0,0,0,74.574,9.383397,.6931472,2.853241,1 +8,1,50,1,4,126129,0,11888.34,35.31485,0,9,1,6.883892,0,0,0,0,6.883892,0,0,0,1,0,2,88.4,8.7,0,,949,949,0,0,.6931472,6.855409,0,3.931826,7.548556,0,0,0,74.574,9.383397,.6931472,1.929184,1 +8,1,50,1,5,126129,0,11888.34,36.31485,0,9,1,0,0,0,0,0,0,0,0,0,0,0,2,88.4,8.7,0,,949,949,0,0,.6931472,6.855409,0,3.931826,7.548556,0,0,0,74.574,9.383397,.6931472,,0 +8,1,50,1,1,126130,0,11888.34,28.4627,1,15,1,73.17073,7.828673,28.81618,0,0,109.8156,0,0,0,8,1,2,81.1,21.7,0,,949,949,0,0,.6931472,6.855409,0,3.931826,7.548556,0,0,0,78.87518,9.383397,.6931472,4.698802,1 +8,1,50,1,2,126130,0,11888.34,29.4627,1,15,1,19.0528,1.453457,12.90147,0,0,33.40773,0,0,0,1,1,2,81.1,21.7,0,,949,949,0,0,.6931472,6.855409,0,3.931826,7.548556,0,0,0,78.87518,9.383397,.6931472,3.508787,1 +8,1,50,1,3,126130,0,11888.34,30.4627,1,15,1,38.65213,5.891972,0,0,0,44.5441,0,0,0,5,1,2,81.1,21.7,0,,949,949,0,0,.6931472,6.855409,0,3.931826,7.548556,0,0,0,78.87518,9.383397,.6931472,3.79648,1 +8,1,50,1,4,126130,0,11888.34,31.4627,1,15,1,20.65167,2.014686,33.18495,0,0,55.85131,0,0,0,3,0,2,81.1,21.7,0,,949,949,0,0,.6931472,6.855409,0,3.931826,7.548556,0,0,0,78.87518,9.383397,.6931472,4.022693,1 +8,1,50,1,5,126130,0,11888.34,32.4627,1,15,1,49.22171,4.362642,0,0,0,53.58435,0,0,0,7,0,2,81.1,21.7,0,,949,949,0,0,.6931472,6.855409,0,3.931826,7.548556,0,0,0,78.87518,9.383397,.6931472,3.981257,1 +7,1,25,1,1,126134,0,9542.002,32.39699,0,14,1,11.99041,0,31.99041,0,0,43.98082,0,0,0,0,1,6,84.2,17.4,0,,0,0,0,0,1.791759,0,0,3.258096,0,0,0,0,77.76795,9.163564,1.791759,3.783754,1 +7,1,25,1,2,126134,0,9542.002,33.39699,0,14,1,0,2.272727,0,0,0,2.272727,0,0,0,0,0,6,84.2,17.4,0,,0,0,0,0,1.791759,0,0,3.258096,0,0,0,0,77.76795,9.163564,1.791759,.8209805,1 +7,1,25,1,3,126134,0,9542.002,34.39699,0,14,1,0,0,29.03242,0,0,29.03242,0,0,0,0,0,6,84.2,17.4,0,,0,0,0,0,1.791759,0,0,3.258096,0,0,0,0,77.76795,9.163564,1.791759,3.368413,1 +7,1,25,1,4,126134,0,9542.002,35.39699,0,14,1,0,0,0,0,0,0,0,0,0,0,0,6,84.2,17.4,0,,0,0,0,0,1.791759,0,0,3.258096,0,0,0,0,77.76795,9.163564,1.791759,,0 +7,1,25,1,5,126134,0,9542.002,36.39699,0,14,1,12.69573,0,28.81083,0,0,41.50656,0,0,0,1,0,6,84.2,17.4,0,,0,0,0,0,1.791759,0,0,3.258096,0,0,0,0,77.76795,9.163564,1.791759,3.725852,1 +7,1,25,1,1,126135,0,9542.002,32.72553,1,14,1,59.95204,11.84053,27.50599,0,0,99.29856,0,0,0,5,1,6,81.1,30.4,0,,0,0,0,0,1.791759,0,0,3.258096,0,0,0,0,78.65913,9.163564,1.791759,4.598131,1 +7,1,25,1,2,126135,0,9542.002,33.72553,1,14,1,19.16758,5.531216,0,0,0,24.6988,0,0,0,2,0,6,81.1,30.4,0,,0,0,0,0,1.791759,0,0,3.258096,0,0,0,0,78.65913,9.163564,1.791759,3.206754,1 +7,1,25,1,3,126135,0,9542.002,34.72553,1,14,1,19.95012,1.496259,0,0,0,21.44638,0,0,0,2,0,6,81.1,30.4,0,,0,0,0,0,1.791759,0,0,3.258096,0,0,0,0,78.65913,9.163564,1.791759,3.065556,1 +7,1,25,1,4,126135,0,9542.002,35.72553,1,14,1,0,0,0,0,0,0,0,0,0,0,0,6,81.1,30.4,0,,0,0,0,0,1.791759,0,0,3.258096,0,0,0,0,78.65913,9.163564,1.791759,,0 +7,1,25,1,5,126135,0,9542.002,36.72553,1,14,1,8.463818,2.835379,0,0,0,11.2992,0,0,0,1,0,6,81.1,30.4,0,,0,0,0,0,1.791759,0,0,3.258096,0,0,0,0,78.65913,9.163564,1.791759,2.424731,1 +7,1,25,1,1,126136,0,9542.002,8.065708,0,14,1,5.395683,1.498801,0,0,0,6.894485,0,0,0,0,1,6,74.36826,13.73189,0,,0,0,1,0,1.791759,0,0,3.258096,0,0,0,0,83.32977,9.163564,1.791759,1.930722,1 +7,1,25,1,2,126136,0,9542.002,9.065708,0,14,1,42.71632,0,0,0,0,42.71632,0,0,0,1,4,6,74.36826,13.73189,0,,0,0,1,0,1.791759,0,0,3.258096,0,0,0,0,83.32977,9.163564,1.791759,3.754581,1 +7,1,25,1,3,126136,0,9542.002,10.06571,0,14,1,25.93516,0,23.35162,0,0,49.28678,0,0,0,2,0,6,74.36826,13.73189,0,,0,0,1,0,1.791759,0,0,3.258096,0,0,0,0,83.32977,9.163564,1.791759,3.897656,1 +7,1,25,1,4,126136,0,9542.002,11.06571,0,14,1,187.8746,2.236053,0,0,0,190.1107,0,0,0,3,1,6,74.36826,13.73189,0,,0,0,1,0,1.791759,0,0,3.258096,0,0,0,0,83.32977,9.163564,1.791759,5.247606,1 +7,1,25,1,5,126136,0,9542.002,12.06571,0,14,1,52.89886,0,23.19509,0,0,76.09395,0,0,0,3,0,6,74.36826,13.73189,0,,0,0,1,0,1.791759,0,0,3.258096,0,0,0,0,83.32977,9.163564,1.791759,4.331969,1 +7,1,25,1,1,126137,0,9542.002,6.316222,0,14,1,5.395683,0,0,0,0,5.395683,0,0,0,0,1,6,74.36826,13.73189,0,,0,0,1,0,1.791759,0,0,3.258096,0,0,0,0,83.32977,9.163564,1.791759,1.685599,1 +7,1,25,1,2,126137,0,9542.002,7.316222,0,14,1,62.97919,0,0,0,0,62.97919,0,0,0,2,2,6,74.36826,13.73189,0,,0,0,1,0,1.791759,0,0,3.258096,0,0,0,0,83.32977,9.163564,1.791759,4.142804,1 +7,1,25,1,3,126137,0,9542.002,8.316222,0,14,1,66.20947,0,0,0,0,66.20947,0,0,0,0,1,6,74.36826,13.73189,0,,0,0,1,0,1.791759,0,0,3.258096,0,0,0,0,83.32977,9.163564,1.791759,4.192823,1 +7,1,25,1,4,126137,0,9542.002,9.316222,0,14,1,23.51314,0,25.27432,0,0,48.78746,0,0,0,1,1,6,74.36826,13.73189,0,,0,0,1,0,1.791759,0,0,3.258096,0,0,0,0,83.32977,9.163564,1.791759,3.887473,1 +7,1,25,1,5,126137,0,9542.002,10.31622,0,14,1,9.310199,0,0,0,0,9.310199,0,0,0,1,0,6,74.36826,13.73189,0,,0,0,1,0,1.791759,0,0,3.258096,0,0,0,0,83.32977,9.163564,1.791759,2.23111,1 +7,1,25,1,1,126138,0,9542.002,8.065708,0,14,1,23.38129,10.13189,0,0,0,33.51319,0,0,0,3,1,6,74.36826,13.73189,0,,0,0,1,0,1.791759,0,0,3.258096,0,0,0,0,81.39986,9.163564,1.791759,3.511939,1 +7,1,25,1,2,126138,0,9542.002,9.065708,0,14,1,34.50164,4.162103,23.92661,0,0,62.59036,0,0,0,3,1,6,74.36826,13.73189,0,,0,0,1,0,1.791759,0,0,3.258096,0,0,0,0,81.39986,9.163564,1.791759,4.136611,1 +7,1,25,1,3,126138,0,9542.002,10.06571,0,14,1,0,0,0,0,0,0,0,0,0,0,0,6,74.36826,13.73189,0,,0,0,1,0,1.791759,0,0,3.258096,0,0,0,0,81.39986,9.163564,1.791759,,0 +7,1,25,1,4,126138,0,9542.002,11.06571,0,14,1,23.51314,2.051637,15.73075,0,0,41.29553,0,0,0,1,1,6,74.36826,13.73189,0,,0,0,1,0,1.791759,0,0,3.258096,0,0,0,0,81.39986,9.163564,1.791759,3.720754,1 +7,1,25,1,5,126138,0,9542.002,12.06571,0,14,1,11.42615,0,0,0,0,11.42615,0,0,0,1,0,6,74.36826,13.73189,0,,0,0,1,0,1.791759,0,0,3.258096,0,0,0,0,81.39986,9.163564,1.791759,2.435905,1 +7,1,25,1,1,126139,0,9542.002,9.204655,1,14,1,25.77938,8.603118,0,0,0,34.3825,0,0,0,2,1,6,74.36826,13.73189,0,,0,0,1,1,1.791759,0,0,3.258096,0,0,0,0,82.8158,9.163564,1.791759,3.537548,1 +7,1,25,1,2,126139,0,9542.002,10.20465,1,14,1,29.02519,3.242059,0,0,0,32.26725,0,0,0,2,1,6,74.36826,13.73189,0,,0,0,1,1,1.791759,0,0,3.258096,0,0,0,0,82.8158,9.163564,1.791759,3.474053,1 +7,1,25,1,3,126139,0,9542.002,11.20465,1,14,1,0,0,0,0,0,0,0,0,0,0,0,6,74.36826,13.73189,0,,0,0,1,1,1.791759,0,0,3.258096,0,0,0,0,82.8158,9.163564,1.791759,,0 +7,1,25,1,4,126139,0,9542.002,12.20465,1,14,1,22.59105,0,0,0,0,22.59105,0,0,0,1,1,6,74.36826,13.73189,0,,0,0,1,1,1.791759,0,0,3.258096,0,0,0,0,82.8158,9.163564,1.791759,3.117554,1 +7,1,25,1,5,126139,0,9542.002,13.20465,1,14,1,73.63521,2.750741,368.1761,0,0,444.562,0,0,0,5,0,6,74.36826,13.73189,0,,0,0,1,1,1.791759,0,0,3.258096,0,0,0,0,82.8158,9.163564,1.791759,6.09709,1 +4,1,100,1,1,126151,0,8923.697,43.38124,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,86.3,0,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,1,0,0,70.32339,9.096578,.6931472,,0 +4,1,100,1,2,126151,0,8923.697,44.38124,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,86.3,0,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,1,0,0,70.32339,9.096578,.6931472,,0 +4,1,100,1,3,126151,0,8923.697,45.38124,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,86.3,0,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,1,0,0,70.32339,9.096578,.6931472,,0 +4,1,100,1,1,126152,0,8923.697,42.28337,1,12,1,10.79137,0,0,0,0,10.79137,0,0,0,1,0,2,90.5,4.3,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,0,0,0,78.46137,9.096578,.6931472,2.378747,1 +4,1,100,1,2,126152,0,8923.697,43.28337,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,90.5,4.3,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,0,0,0,78.46137,9.096578,.6931472,,0 +4,1,100,1,3,126152,0,8923.697,44.28337,1,12,1,5.985037,0,23.94015,0,0,29.92519,0,0,0,0,1,2,90.5,4.3,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,0,0,0,78.46137,9.096578,.6931472,3.3987,1 +5,1,25,0,1,126156,0,4841.812,46.5243,1,9,1,27.67962,3.898704,0,0,0,31.57833,0,0,0,4,0,1,85.6,13,0,,375,375,0,0,0,5.926926,0,3.258096,7.313221,1,0,0,68.95127,8.48525,0,3.452471,1 +5,1,25,0,2,126156,0,4841.812,47.5243,1,9,1,0,0,0,0,0,0,0,0,0,0,0,1,85.6,13,0,,375,375,0,0,0,5.926926,0,3.258096,7.313221,1,0,0,68.95127,8.48525,0,,0 +5,1,25,0,3,126156,0,4841.812,48.5243,1,9,1,0,0,0,0,0,0,0,0,0,0,0,1,85.6,13,0,,375,375,0,0,0,5.926926,0,3.258096,7.313221,1,0,0,68.95127,8.48525,0,,0 +5,1,25,0,4,126156,0,4841.812,49.5243,1,9,1,10.93892,0,30.44212,0,0,41.38104,0,0,0,0,1,1,85.6,13,0,,375,375,0,0,0,5.926926,0,3.258096,7.313221,1,0,0,68.95127,8.48525,0,3.722823,1 +5,1,25,0,5,126156,0,4841.812,50.5243,1,9,1,0,0,0,0,0,0,0,0,0,0,0,1,85.6,13,0,,375,375,0,0,0,5.926926,0,3.258096,7.313221,1,0,0,68.95127,8.48525,0,,0 +4,1,100,0,1,126157,0,9122.829,38.24504,0,12,1,13.68233,10.35098,0,0,0,24.03331,0,0,0,2,0,4,58.8,13.73189,1,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,65.64435,9.118645,1.386294,3.179441,1 +4,1,100,0,2,126157,0,9122.829,39.24504,0,12,1,381.6004,0,37.54491,0,0,419.1454,0,0,0,1,45,4,58.8,13.73189,1,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,65.64435,9.118645,1.386294,6.038218,1 +4,1,100,0,3,126157,0,9122.829,40.24504,0,12,1,5.946482,0,0,0,0,5.946482,0,0,0,0,1,4,58.8,13.73189,1,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,65.64435,9.118645,1.386294,1.7828,1 +4,1,100,0,1,126158,0,9122.829,35.38124,1,10,1,20.82094,21.14813,0,0,0,41.96907,0,0,0,1,1,4,56.3,13.73189,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,68.66209,9.118645,1.386294,3.736933,1 +4,1,100,0,2,126158,0,9122.829,36.38124,1,10,1,221.0125,22.37343,6.53239,0,0,249.9184,0,0,0,1,33,4,56.3,13.73189,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,68.66209,9.118645,1.386294,5.521134,1 +4,1,100,0,3,126158,0,9122.829,37.38124,1,10,1,0,0,0,0,0,0,0,0,0,0,0,4,56.3,13.73189,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,68.66209,9.118645,1.386294,,0 +4,1,100,0,1,126159,0,9122.829,14.94045,0,10,1,25.58001,0,0,0,0,25.58001,0,0,0,1,1,4,82.5,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,1,0,0,69.60401,9.118645,1.386294,3.241811,1 +4,1,100,0,2,126159,0,9122.829,15.94045,0,10,1,8.165487,0,0,0,0,8.165487,0,0,0,0,1,4,82.5,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,1,0,0,69.60401,9.118645,1.386294,2.099916,1 +4,1,100,0,3,126159,0,9122.829,16.94045,0,10,1,0,0,0,0,0,0,0,0,0,0,0,4,82.5,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,1,0,0,69.60401,9.118645,1.386294,,0 +4,1,100,0,1,126160,0,9122.829,18.52156,1,12,1,21.49911,5.562165,0,0,0,27.06127,0,0,0,3,1,4,91.3,13.73189,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,71.81157,9.118645,1.386294,3.298104,1 +4,1,100,0,2,126160,0,9122.829,19.52156,1,12,1,305.4763,14.70332,0,0,0,320.1796,0,0,0,8,36,4,91.3,13.73189,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,71.81157,9.118645,1.386294,5.768882,1 +4,1,100,0,3,126160,0,9122.829,20.52156,1,12,1,9.142715,.6937562,0,0,0,9.836472,0,0,0,0,1,4,91.3,13.73189,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,71.81157,9.118645,1.386294,2.286097,1 +3,1,100,0,1,126177,0,10341.81,52.85695,0,12,1,75.97173,6.089517,0,0,0,82.06125,0,0,0,3,0,5,86.3,21.7,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,1,0,0,66.41367,9.244047,1.609438,4.407466,1 +3,1,100,0,2,126177,0,10341.81,53.85695,0,12,1,361.5903,18.72776,50.42049,0,6563.558,6994.296,2,0,0,12,0,5,86.3,21.7,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,1,0,0,66.41367,9.244047,1.609438,8.85285,1 +3,1,100,0,3,126177,0,10341.81,54.85695,0,12,1,565.1351,59.71008,9.085995,0,834.1572,1468.089,1,0,0,18,1,5,86.3,21.7,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,1,0,0,66.41367,9.244047,1.609438,7.291717,1 +3,1,100,0,1,126178,0,10341.81,53.33333,1,12,1,110.7185,38.45701,0,0,0,149.1755,0,0,0,8,0,5,80,13,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,0,0,0,74.55164,9.244047,1.609438,5.005124,1 +3,1,100,0,2,126178,0,10341.81,54.33333,1,12,1,69.00269,47.7035,40.56065,0,1090.016,1247.283,1,0,0,4,1,5,80,13,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,0,0,0,74.55164,9.244047,1.609438,7.128723,1 +3,1,100,0,3,126178,0,10341.81,55.33333,1,12,1,105.774,65.58723,51.59705,0,0,222.9582,0,0,0,13,1,5,80,13,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,0,0,0,74.55164,9.244047,1.609438,5.406984,1 +3,1,100,0,1,126179,0,10341.81,12.38877,0,12,1,18.8457,3.374558,0,0,0,22.22026,0,0,0,2,0,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,1,0,0,0,0,0,85.67059,9.244047,1.609438,3.101004,1 +3,1,100,0,2,126179,0,10341.81,13.38877,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,1,0,0,0,0,0,85.67059,9.244047,1.609438,,0 +3,1,100,0,3,126179,0,10341.81,14.38877,0,12,1,19.65602,1.503685,0,0,0,21.1597,0,0,0,1,0,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,1,0,0,0,0,0,85.67059,9.244047,1.609438,3.052099,1 +3,1,100,0,1,126180,0,10341.81,16.52841,1,12,1,15.31213,2.479388,0,0,0,17.79152,0,0,0,2,0,5,72.6,13,0,,1000,1000,1,1,1.609438,6.907755,1,0,0,0,0,0,75.20459,9.244047,1.609438,2.878722,1 +3,1,100,0,2,126180,0,10341.81,17.52841,1,12,1,21.56334,11.21833,0,0,0,32.78167,0,0,0,2,1,5,72.6,13,0,,1000,1000,1,1,1.609438,6.907755,1,0,0,0,0,0,75.20459,9.244047,1.609438,3.48987,1 +3,1,100,0,3,126180,0,10341.81,18.52841,1,12,1,61.42506,14.27518,3.415233,0,0,79.11548,0,0,0,4,0,5,72.6,13,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,0,0,0,75.20459,9.244047,1.609438,4.370909,1 +3,1,100,0,1,126181,0,10341.81,18.2423,0,12.32507,1,91.8728,8.60424,0,0,0,100.477,0,0,0,6,0,5,42.1,13,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,0,0,0,78.95576,9.244047,1.609438,4.609929,1 +3,1,100,0,2,126181,0,10341.81,19.2423,0,12.32507,1,3.234501,1.078167,0,0,0,4.312668,0,0,0,0,0,5,42.1,13,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,0,0,0,78.95576,9.244047,1.609438,1.461557,1 +3,1,100,0,3,126181,0,10341.81,20.2423,0,12.32507,1,193.4742,22.92383,0,0,0,216.398,0,0,0,8,0,5,42.1,13,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,0,0,0,78.95576,9.244047,1.609438,5.37712,1 +3,1,100,0,1,126182,0,9542.002,21.45927,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,72.6,8.7,0,,1000,1000,0,0,0,6.907755,1,0,0,0,0,0,76.1736,9.163564,0,,0 +3,1,100,0,2,126182,0,9542.002,22.45927,1,12,1,0,.6630728,0,0,0,.6630728,0,0,0,0,0,1,72.6,8.7,0,,1000,1000,0,0,0,6.907755,1,0,0,0,0,0,76.1736,9.163564,0,-.4108706,1 +3,1,100,0,3,126182,0,9542.002,23.45927,1,12,1,115.7248,41.2973,30.02948,0,0,187.0516,0,0,0,7,4,1,72.6,8.7,0,,1000,1000,0,0,0,6.907755,1,0,0,0,0,0,76.1736,9.163564,0,5.231384,1 +5,1,25,1,1,126192,0,7179.28,53.90007,0,10,1,20.98321,4.664268,0,0,0,25.64748,0,0,0,1,0,3,45.3,30.4,0,,799,799,0,0,1.098612,6.683361,0,3.258096,8.069655,1,0,0,63.23743,8.879094,1.098612,3.244445,1 +5,1,25,1,2,126192,0,7179.28,54.90007,0,10,1,6.024096,3.450164,0,0,0,9.47426,0,0,0,1,0,3,45.3,30.4,0,,799,799,0,0,1.098612,6.683361,0,3.258096,8.069655,1,0,0,63.23743,8.879094,1.098612,2.248579,1 +5,1,25,1,3,126192,0,7179.28,55.90007,0,10,1,61.7207,2.488778,0,0,0,64.20947,0,0,0,2,0,3,45.3,30.4,0,,799,799,0,0,1.098612,6.683361,0,3.258096,8.069655,1,0,0,63.23743,8.879094,1.098612,4.162151,1 +5,1,25,1,4,126192,0,7179.28,56.90007,0,10,1,158.5293,29.65422,0,0,1485.177,1673.361,1,0,0,12,0,3,45.3,30.4,0,,799,799,0,0,1.098612,6.683361,0,3.258096,8.069655,1,0,0,63.23743,8.879094,1.098612,7.422589,1 +5,1,25,1,5,126192,0,7179.28,57.90007,0,10,1,35.12484,21.30766,1.481168,125.8951,0,57.91367,0,0,15,3,1,3,45.3,30.4,0,,799,799,0,0,1.098612,6.683361,0,3.258096,8.069655,1,0,0,63.23743,8.879094,1.098612,4.058953,1 +5,1,25,1,1,126193,0,7179.28,13.78782,0,12,1,61.15108,8.141487,0,0,0,69.29256,0,0,0,4,0,3,74.36826,13.73189,0,,799,799,1,0,1.098612,6.683361,0,3.258096,8.069655,1,0,0,78.66734,8.879094,1.098612,4.238338,1 +5,1,25,1,2,126193,0,7179.28,14.78782,0,12,1,22.45345,2.924425,36.8839,0,0,62.26178,0,0,0,2,0,3,74.36826,13.73189,0,,799,799,1,0,1.098612,6.683361,0,3.258096,8.069655,1,0,0,78.66734,8.879094,1.098612,4.131348,1 +5,1,25,1,3,126193,0,7179.28,15.78782,0,12,1,33.91521,11.08728,0,0,0,45.00249,0,0,0,3,0,3,74.36826,13.73189,0,,799,799,1,0,1.098612,6.683361,0,3.258096,8.069655,1,0,0,78.66734,8.879094,1.098612,3.806718,1 +5,1,25,1,4,126193,0,7179.28,16.78782,0,12,1,19.59428,2.996773,27.18764,0,0,49.7787,0,0,0,2,0,3,74.36826,13.73189,0,,799,799,1,0,1.098612,6.683361,0,3.258096,8.069655,1,0,0,78.66734,8.879094,1.098612,3.907587,1 +5,1,25,1,5,126193,0,7179.28,17.78782,0,12,1,35.89928,2.276767,0,0,0,38.17605,0,0,0,2,0,3,74.36826,13.73189,0,,799,799,1,0,1.098612,6.683361,0,3.258096,8.069655,1,0,0,78.66734,8.879094,1.098612,3.642208,1 +5,1,25,1,1,126194,0,7179.28,34.96235,1,12,1,29.3765,17.90168,33.0036,0,0,80.28178,0,0,0,2,0,3,71.6,30.4,1,,799,799,0,0,1.098612,6.683361,0,3.258096,8.069655,1,0,0,69.07321,8.879094,1.098612,4.385543,1 +5,1,25,1,2,126194,0,7179.28,35.96235,1,12,1,9.857613,11.45674,0,0,0,21.31435,0,0,0,1,0,3,71.6,30.4,1,,799,799,0,0,1.098612,6.683361,0,3.258096,8.069655,1,0,0,69.07321,8.879094,1.098612,3.059381,1 +5,1,25,1,3,126194,0,7179.28,36.96235,1,12,1,25.93516,1.94015,0,0,0,27.87531,0,0,0,2,0,3,71.6,30.4,1,,799,799,0,0,1.098612,6.683361,0,3.258096,8.069655,1,0,0,69.07321,8.879094,1.098612,3.327741,1 +5,1,25,1,4,126194,0,7179.28,37.96235,1,12,1,30.42877,15.09451,0,0,0,45.52328,0,0,0,3,0,3,71.6,30.4,1,,799,799,0,0,1.098612,6.683361,0,3.258096,8.069655,1,0,0,69.07321,8.879094,1.098612,3.818224,1 +5,1,25,1,5,126194,0,7179.28,38.96235,1,12,1,121.4558,2.175201,0,276.6653,0,123.631,0,0,23,3,0,3,71.6,30.4,1,,799,799,0,0,1.098612,6.683361,0,3.258096,8.069655,1,0,0,69.07321,8.879094,1.098612,4.817301,1 +5,1,25,1,1,126195,0,3355.459,19.83573,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,66.3,4.3,0,,259,259,0,0,0,5.556828,0,3.258096,6.943122,1,0,0,67.43752,8.118642,0,,0 +5,1,25,1,2,126195,0,3355.459,20.83573,0,12,1,9.309967,0,36.05695,0,0,45.36692,0,0,0,0,1,1,66.3,4.3,0,,259,259,0,0,0,5.556828,0,3.258096,6.943122,1,0,0,67.43752,8.118642,0,3.814783,1 +5,1,25,1,3,126195,0,3355.459,21.83573,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,66.3,4.3,0,,259,259,0,0,0,5.556828,0,3.258096,6.943122,1,0,0,67.43752,8.118642,0,,0 +5,1,25,1,4,126195,0,3355.459,22.83573,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,66.3,4.3,0,,259,259,0,0,0,5.556828,0,3.258096,6.943122,1,0,0,67.43752,8.118642,0,,0 +5,1,25,1,5,126195,0,3355.459,23.83573,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,66.3,4.3,0,,259,259,0,0,0,5.556828,0,3.258096,6.943122,1,0,0,67.43752,8.118642,0,,0 +11,1,0,0,1,126198,0,11809.23,20.53388,0,13,1,61.24853,18.55124,34.06949,0,0,113.8693,0,0,0,7,0,3,85,13.73189,0,,0,464,0,0,1.098612,6.139884,0,0,0,0,0,0,79.07556,9.376721,1.098612,4.735051,1 +11,1,0,0,2,126198,0,11809.23,21.53388,0,13,1,84.20485,23.42318,.4851752,0,0,108.1132,0,0,0,6,2,3,85,13.73189,0,,0,464,0,0,1.098612,6.139884,0,0,0,0,0,0,79.07556,9.376721,1.098612,4.683179,1 +11,1,0,0,3,126198,0,11809.23,22.53388,0,13,1,217.1499,11.10565,32.33415,0,0,260.5897,0,0,0,12,1,3,85,13.73189,0,,0,464,0,0,1.098612,6.139884,0,0,0,0,0,0,79.07556,9.376721,1.098612,5.562947,1 +11,1,0,0,1,126199,0,11809.23,48.39151,1,12,1,72.61484,5.270907,44.00471,0,0,121.8905,0,0,0,5,2,3,67.5,13.73189,0,,0,464,0,0,1.098612,6.139884,0,0,0,1,0,0,72.16116,9.376721,1.098612,4.803123,1 +11,1,0,0,2,126199,0,11809.23,49.39151,1,12,1,212.3181,48.61995,.2695418,0,0,261.2076,0,0,0,10,0,3,67.5,13.73189,0,,0,464,0,0,1.098612,6.139884,0,0,0,1,0,0,72.16116,9.376721,1.098612,5.565315,1 +11,1,0,0,3,126199,0,11809.23,50.39151,1,12,1,116.9533,11.7199,56.48649,0,0,185.1597,0,0,0,5,0,3,67.5,13.73189,0,,0,464,0,0,1.098612,6.139884,0,0,0,1,0,0,72.16116,9.376721,1.098612,5.221219,1 +11,1,0,0,1,126200,0,11809.23,13.55236,0,12,1,20.61249,2.502945,0,0,0,23.11543,0,0,0,3,0,3,74.36826,13.73189,0,,0,464,1,0,1.098612,6.139884,0,0,0,0,0,0,87.52181,9.376721,1.098612,3.1405,1 +11,1,0,0,2,126200,0,11809.23,14.55236,0,12,1,46.36119,10.08625,0,0,0,56.44744,0,0,0,7,0,3,74.36826,13.73189,0,,0,464,1,0,1.098612,6.139884,0,0,0,0,0,0,87.52181,9.376721,1.098612,4.03331,1 +11,1,0,0,3,126200,0,11809.23,15.55236,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,74.36826,13.73189,0,,0,464,1,0,1.098612,6.139884,0,0,0,0,0,0,87.52181,9.376721,1.098612,,0 +7,1,25,1,1,126205,0,8393.3,6.31896,1,13,1,9.518144,2.647234,0,0,0,12.16538,0,0,0,1,0,3,74.36826,13.73189,0,,1000,1000,1,1,1.098612,6.907755,0,3.258096,8.294049,0,0,0,83.31136,9.035308,1.098612,2.498594,1 +7,1,25,1,2,126205,0,8393.3,7.31896,1,13,1,0,0,0,0,0,0,0,0,0,0,0,3,74.36826,13.73189,0,,1000,1000,1,1,1.098612,6.907755,0,3.258096,8.294049,0,0,0,83.31136,9.035308,1.098612,,0 +7,1,25,1,3,126205,0,8393.3,8.318959,1,13,1,14.8662,7.433102,0,0,0,22.29931,0,0,0,3,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,0,0,0,83.31136,9.035308,1.386294,3.104556,1 +7,1,25,1,1,126206,0,8393.3,30.34634,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,80,17.4,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,75.11373,9.035308,1.098612,,0 +7,1,25,1,2,126206,0,8393.3,31.34634,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,80,17.4,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,75.11373,9.035308,1.098612,,0 +7,1,25,1,3,126206,0,8393.3,32.34634,0,12,1,26.16452,0,39.99009,0,0,66.15461,0,0,0,1,1,4,80,17.4,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,75.11373,9.035308,1.386294,4.191995,1 +7,1,25,1,1,126207,0,8393.3,28.46817,1,13,1,30.63653,18.38192,0,0,0,49.01844,0,0,0,1,0,3,41.1,21.7,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,76.69158,9.035308,1.098612,3.892197,1 +7,1,25,1,2,126207,0,8393.3,29.46817,1,13,1,5.443658,4.327708,3.266195,0,933.2335,946.2711,2,0,0,1,0,3,41.1,21.7,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,76.69158,9.035308,1.098612,6.852529,1 +7,1,25,1,3,126207,0,8393.3,30.46817,1,13,1,37.6115,14.14272,0,0,0,51.75421,0,0,0,3,0,4,41.1,21.7,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,76.69158,9.035308,1.386294,3.946506,1 +9,1,50,1,1,126208,0,12392.06,54.0616,0,12,1,131.1719,20.19631,0,0,0,151.3682,0,0,0,8,0,3,95.8,13,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,77.03518,9.424891,1.098612,5.019715,1 +9,1,50,1,2,126208,0,12392.06,55.0616,0,12,1,101.0343,13.28253,0,0,2096.51,2210.827,2,0,0,8,1,3,95.8,13,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,77.03518,9.424891,1.098612,7.701122,1 +9,1,50,1,3,126208,0,12392.06,56.0616,0,12,1,72.74529,16.82359,0,0,0,89.56888,0,0,0,8,0,3,95.8,13,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,77.03518,9.424891,1.098612,4.495008,1 +9,1,50,1,1,126209,0,12392.06,15.93155,0,16,1,39.26234,11.60024,28.59607,0,0,79.45866,0,0,0,5,1,3,77.9,4.3,0,,1000,1000,1,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,81.08195,9.424891,1.098612,4.375237,1 +9,1,50,1,2,126209,0,12392.06,16.93155,0,16,1,10.77844,19.13446,0,0,0,29.9129,0,0,0,2,0,3,77.9,4.3,0,,1000,1000,1,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,81.08195,9.424891,1.098612,3.39829,1 +9,1,50,1,3,126209,0,12392.06,17.93155,0,16,1,54.60852,4.286422,24.28147,0,0,83.17641,0,0,0,3,2,3,77.9,4.3,0,,1000,1000,1,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,81.08195,9.424891,1.098612,4.420964,1 +9,1,50,1,1,126210,0,12392.06,50.22313,1,16,1,155.7406,39.29209,31.52885,0,0,226.5616,0,0,0,6,2,3,86.3,21.7,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,78.13973,9.424891,1.098612,5.423017,1 +9,1,50,1,2,126210,0,12392.06,51.22313,1,16,1,50.08165,37.20741,31.85629,0,0,119.1453,0,0,0,4,1,3,86.3,21.7,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,78.13973,9.424891,1.098612,4.780344,1 +9,1,50,1,3,126210,0,12392.06,52.22313,1,16,1,42.76511,39.51933,0,0,0,82.28444,0,0,0,5,0,3,86.3,21.7,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,78.13973,9.424891,1.098612,4.410182,1 +10,1,50,0,1,126222,0,25825.28,54.11088,0,19,1,50.05889,0,0,38.86926,0,50.05889,0,0,3,0,0,2,81.3,13.73189,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,0,0,0,77.43079,10.15915,.6931472,3.9132,1 +10,1,50,0,2,126222,0,25825.28,55.11088,0,19,1,13.47709,0,0,266.8464,0,13.47709,0,0,15,0,0,2,81.3,13.73189,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,0,0,0,77.43079,10.15915,.6931472,2.600991,1 +10,1,50,0,3,126222,0,25825.28,56.11088,0,19,1,0,0,0,16.21622,0,0,0,0,1,0,0,2,81.3,13.73189,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,0,0,0,77.43079,10.15915,.6931472,,0 +10,1,50,0,1,126223,0,25825.28,52.73375,1,13,1,0,0,0,0,0,0,0,0,0,0,0,2,75,13.73189,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,0,0,0,78.89941,10.15915,.6931472,,0 +10,1,50,0,2,126223,0,25825.28,53.73375,1,13,1,0,0,0,0,0,0,0,0,0,0,0,2,75,13.73189,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,0,0,0,78.89941,10.15915,.6931472,,0 +10,1,50,0,3,126223,0,25825.28,54.73375,1,13,1,0,0,0,0,0,0,0,0,0,0,0,2,75,13.73189,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,0,0,0,78.89941,10.15915,.6931472,,0 +1,1,0,1,1,126231,0,3460.918,51.72895,1,12,1,128.9753,61.96113,17.85041,0,0,208.7868,0,0,0,7,0,1,85.3,13,0,,150,203,0,0,0,5.313206,1,0,0,0,0,0,79.21188,8.149578,0,5.341314,1 +1,1,0,1,2,126231,0,3460.918,52.72895,1,12,1,170.8895,74.88949,44.60917,0,0,290.3882,0,0,0,9,2,1,85.3,13,0,,150,203,0,0,0,5.313206,1,0,0,0,0,0,79.21188,8.149578,0,5.671218,1 +1,1,0,1,3,126231,0,3460.918,53.72895,1,12,1,47.66585,37.99509,62.63882,0,0,148.2998,0,0,0,5,0,1,85.3,13,0,,150,203,0,0,0,5.313206,1,0,0,0,0,0,79.21188,8.149578,0,4.999236,1 +4,1,100,1,1,126240,0,9577.765,28.52019,1,9,1,0,0,0,0,0,0,0,0,0,0,0,4,52.6,17.4,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,1,0,59.58581,9.167304,1.386294,,0 +4,1,100,1,2,126240,0,9577.765,29.52019,1,9,1,0,0,0,0,0,0,0,0,0,0,0,4,52.6,17.4,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,1,0,59.58581,9.167304,1.386294,,0 +4,1,100,1,3,126240,0,9577.765,30.52019,1,9,1,0,0,0,0,0,0,0,0,0,0,0,4,52.6,17.4,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,1,0,59.58581,9.167304,1.386294,,0 +4,1,100,1,1,126241,0,9577.765,32.32854,0,11,1,5.889281,0,0,0,0,5.889281,0,0,0,1,0,4,33.7,30.4,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,67.88706,9.167304,1.386294,1.773134,1 +4,1,100,1,2,126241,0,9577.765,33.32854,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,33.7,30.4,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,67.88706,9.167304,1.386294,,0 +4,1,100,1,3,126241,0,9577.765,34.32854,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,33.7,30.4,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,67.88706,9.167304,1.386294,,0 +4,1,100,1,1,126242,0,9577.765,11.16222,0,9,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,0,0,0,81.2337,9.167304,1.386294,,0 +4,1,100,1,2,126242,0,9577.765,12.16222,0,9,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,0,0,0,81.2337,9.167304,1.386294,,0 +4,1,100,1,3,126242,0,9577.765,13.16222,0,9,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,0,0,0,81.2337,9.167304,1.386294,,0 +4,1,100,1,1,126243,0,9577.765,12.92539,0,9,1,21.3192,0,0,0,0,21.3192,0,0,0,1,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,0,0,0,81.2337,9.167304,1.386294,3.059608,1 +4,1,100,1,2,126243,0,9577.765,13.92539,0,9,1,8.086253,9.153639,0,0,0,17.23989,0,0,0,1,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,0,0,0,81.2337,9.167304,1.386294,2.847226,1 +4,1,100,1,3,126243,0,9577.765,14.92539,0,9,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,0,0,0,81.2337,9.167304,1.386294,,0 +10,1,50,1,1,126250,0,11668.83,45.38809,1,11,1,36.27098,36.3729,33.71103,0,0,106.3549,0,0,0,4,0,3,80,4.3,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,75.51671,9.364761,1.098612,4.666782,1 +10,1,50,1,2,126250,0,11668.83,46.38809,1,11,1,71.08434,16.78532,8.105148,0,0,95.97481,0,0,0,6,0,3,80,4.3,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,75.51671,9.364761,1.098612,4.564086,1 +10,1,50,1,3,126250,0,11668.83,47.38809,1,11,1,46.13466,14.3591,37.29177,0,0,97.78554,0,0,0,4,1,3,80,4.3,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,75.51671,9.364761,1.098612,4.582777,1 +10,1,50,1,4,126250,0,11668.83,48.38809,1,11,1,35.96127,9.400645,0,0,0,45.36192,0,0,0,3,0,3,80,4.3,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,75.51671,9.364761,1.098612,3.814673,1 +10,1,50,1,5,126250,0,11668.83,49.38809,1,11,1,125.6877,34.24884,0,0,0,159.9365,0,0,0,8,0,3,80,4.3,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,75.51671,9.364761,1.098612,5.074777,1 +10,1,50,1,1,126251,0,11668.83,46.72416,0,11,1,138.1895,26.90648,31.03717,0,990.5935,1186.727,2,0,0,6,0,3,71.6,13,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,73.89005,9.364761,1.098612,7.078954,1 +10,1,50,1,2,126251,0,11668.83,47.72416,0,11,1,13.14348,11.65936,0,0,0,24.80285,0,0,0,2,0,3,71.6,13,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,73.89005,9.364761,1.098612,3.210958,1 +10,1,50,1,3,126251,0,11668.83,48.72416,0,11,1,43.01746,14.46883,33.99002,0,0,91.47631,0,0,0,3,0,3,71.6,13,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,73.89005,9.364761,1.098612,4.51608,1 +10,1,50,1,4,126251,0,11668.83,49.72416,0,11,1,48.4094,4.319963,0,0,0,52.72937,0,0,0,6,0,3,71.6,13,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,73.89005,9.364761,1.098612,3.965173,1 +10,1,50,1,5,126251,0,11668.83,50.72416,0,11,1,11.42615,0,29.67414,0,0,41.1003,0,0,0,0,1,3,71.6,13,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,73.89005,9.364761,1.098612,3.716015,1 +10,1,50,1,1,126252,0,11668.83,18.41752,0,11,1,32.07434,11.66067,0,0,632.9616,676.6967,1,0,0,3,0,3,82.1,4.3,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,75.67222,9.364761,1.098612,6.517223,1 +10,1,50,1,2,126252,0,11668.83,19.41752,0,11,1,5.476451,2.584885,0,0,0,8.061337,0,0,0,1,0,3,82.1,4.3,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,75.67222,9.364761,1.098612,2.087079,1 +10,1,50,1,3,126252,0,11668.83,20.41752,0,11,1,16.70823,2.992519,0,0,0,19.70075,0,0,0,2,0,3,82.1,4.3,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,75.67222,9.364761,1.098612,2.980657,1 +10,1,50,1,4,126252,0,11668.83,21.41752,0,11,1,82.98755,15.20055,0,0,2542.153,2640.341,2,0,0,6,0,3,82.1,4.3,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,75.67222,9.364761,1.098612,7.878664,1 +10,1,50,1,5,126252,0,11668.83,22.41752,0,11,1,95.64114,21.17647,0,0,0,116.8176,0,0,0,11,0,3,82.1,4.3,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,75.67222,9.364761,1.098612,4.760614,1 +5,1,25,1,1,126256,0,17812.88,41.86721,0,16,1,24.98513,8.893516,27.35277,0,0,61.23141,0,0,0,1,0,4,78.9,0,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,73.33533,9.787733,1.386294,4.11466,1 +5,1,25,1,2,126256,0,17812.88,42.86721,0,16,1,26.21121,0,0,0,0,26.21121,0,0,0,1,0,4,78.9,0,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,73.33533,9.787733,1.386294,3.266187,1 +5,1,25,1,3,126256,0,17812.88,43.86721,0,16,1,98.11695,6.243806,9.32111,0,0,113.6819,0,0,0,1,2,4,78.9,0,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,73.33533,9.787733,1.386294,4.733404,1 +5,1,25,1,4,126256,0,17812.88,44.86721,0,16,1,15.14456,0,44.60303,0,0,59.74759,0,0,0,1,0,4,78.9,0,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,73.33533,9.787733,1.386294,4.090129,1 +5,1,25,1,5,126256,0,17812.88,45.86721,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,78.9,0,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,73.33533,9.787733,1.386294,,0 +5,1,25,1,1,126257,0,17812.88,17.46201,0,15,1,28.55443,6.216538,0,0,0,34.77097,0,0,0,4,0,4,82.1,8.7,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,76.80552,9.787733,1.386294,3.548783,1 +5,1,25,1,2,126257,0,17812.88,18.46201,0,15,1,50.62602,1.986935,0,0,0,52.61296,0,0,0,3,0,4,82.1,8.7,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,76.80552,9.787733,1.386294,3.962962,1 +5,1,25,1,3,126257,0,17812.88,19.46201,0,15,1,25.76809,4.212091,0,0,0,29.98018,0,0,0,2,0,4,82.1,8.7,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,76.80552,9.787733,1.386294,3.400537,1 +5,1,25,1,4,126257,0,17812.88,20.46201,0,15,1,23.40523,0,0,0,0,23.40523,0,0,0,1,0,4,82.1,8.7,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,76.80552,9.787733,1.386294,3.15296,1 +5,1,25,1,5,126257,0,17812.88,21.46201,0,15,1,4.417333,0,0,0,0,4.417333,0,0,0,0,0,4,82.1,8.7,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,76.80552,9.787733,1.386294,1.485536,1 +5,1,25,1,1,126258,0,17812.88,9.459274,1,15,1,41.047,27.79298,0,0,0,68.83997,0,0,0,8,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,0,0,0,81.77095,9.787733,1.386294,4.231785,1 +5,1,25,1,2,126258,0,17812.88,10.45927,1,15,1,22.319,3.810561,0,0,0,26.12956,0,0,0,4,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,0,0,0,81.77095,9.787733,1.386294,3.263067,1 +5,1,25,1,3,126258,0,17812.88,11.45927,1,15,1,22.29931,4.831516,0,0,0,27.13082,0,0,0,2,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,0,0,0,81.77095,9.787733,1.386294,3.30067,1 +5,1,25,1,4,126258,0,17812.88,12.45927,1,15,1,43.13905,12.09729,0,0,0,55.23635,0,0,0,3,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,0,0,0,81.77095,9.787733,1.386294,4.011621,1 +5,1,25,1,5,126258,0,17812.88,13.45927,1,15,1,47.11822,11.42196,0,0,0,58.54018,0,0,0,6,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,0,0,0,81.77095,9.787733,1.386294,4.069713,1 +5,1,25,1,1,126259,0,17812.88,39.07187,1,15,1,101.7252,0,0,0,0,101.7252,0,0,0,3,0,4,80,17.4,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,75.85065,9.787733,1.386294,4.622275,1 +5,1,25,1,2,126259,0,17812.88,40.07187,1,15,1,126.0207,0,0,0,0,126.0207,0,0,0,3,0,4,80,17.4,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,75.85065,9.787733,1.386294,4.836446,1 +5,1,25,1,3,126259,0,17812.88,41.07187,1,15,1,19.82161,2.750248,0,0,0,22.57185,0,0,0,2,0,4,80,17.4,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,75.85065,9.787733,1.386294,3.116704,1 +5,1,25,1,4,126259,0,17812.88,42.07187,1,15,1,18.81597,0,0,0,0,18.81597,0,0,0,1,0,4,80,17.4,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,75.85065,9.787733,1.386294,2.934706,1 +5,1,25,1,5,126259,0,17812.88,43.07187,1,15,1,109.8023,23.09634,3.407657,0,0,136.3063,0,0,0,4,0,4,80,17.4,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,75.85065,9.787733,1.386294,4.914905,1 +7,1,25,0,1,126288,0,11939.83,4.073922,0,12,1,35.92462,0,0,0,0,35.92462,0,0,0,2,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,81.3802,9.387718,1.386294,3.581423,1 +7,1,25,0,2,126288,0,11939.83,5.073922,0,12,1,28.84097,0,0,0,0,28.84097,0,0,0,0,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,81.3802,9.387718,1.386294,3.361797,1 +7,1,25,0,3,126288,0,11939.83,6.073922,0,12,1,52.82555,0,4.511056,4.299754,0,57.33661,0,0,1,2,1,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,81.3802,9.387718,1.386294,4.048939,1 +7,1,25,0,4,126288,0,11939.83,7.073922,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,81.3802,9.387718,1.386294,,0 +7,1,25,0,5,126288,0,11939.83,8.073922,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,81.3802,9.387718,1.386294,,0 +7,1,25,0,1,126289,0,11939.83,29.62628,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,91.6,0,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,75.3162,9.387718,1.386294,,0 +7,1,25,0,2,126289,0,11939.83,30.62628,0,11,1,24.25876,0,0,0,0,24.25876,0,0,0,2,0,4,91.6,0,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,75.3162,9.387718,1.386294,3.188778,1 +7,1,25,0,3,126289,0,11939.83,31.62628,0,11,1,0,0,0,19.04177,0,0,0,0,3,0,0,4,91.6,0,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,75.3162,9.387718,1.386294,,0 +7,1,25,0,4,126289,0,11939.83,32.62628,0,11,1,87.39745,0,0,0,0,87.39745,0,0,0,3,0,4,91.6,0,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,75.3162,9.387718,1.386294,4.470466,1 +7,1,25,0,5,126289,0,11939.83,33.62628,0,11,1,33.97249,0,0,0,0,33.97249,0,0,0,1,0,4,91.6,0,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,75.3162,9.387718,1.386294,3.525551,1 +7,1,25,0,1,126290,0,11939.83,29.02943,1,12,1,438.1036,0,17.85041,0,0,455.9541,0,0,0,3,1,4,61.1,17.4,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,79.35686,9.387718,1.386294,6.122392,1 +7,1,25,0,2,126290,0,11939.83,30.02943,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,61.1,17.4,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,79.35686,9.387718,1.386294,,0 +7,1,25,0,3,126290,0,11939.83,31.02943,1,12,1,12.28501,0,32.40786,50.9828,0,44.69287,0,0,5,0,1,4,61.1,17.4,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,79.35686,9.387718,1.386294,3.799814,1 +7,1,25,0,4,126290,0,11939.83,32.02943,1,12,1,458.7284,0,7.146764,0,1132.84,1598.715,1,0,0,3,0,4,61.1,17.4,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,79.35686,9.387718,1.386294,7.376956,1 +7,1,25,0,5,126290,0,11939.83,33.02943,1,12,1,12.50521,0,0,0,0,12.50521,0,0,0,1,0,4,61.1,17.4,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,79.35686,9.387718,1.386294,2.526145,1 +7,1,25,0,1,126291,0,11939.83,8.657084,1,12,1,75.97173,0,0,0,0,75.97173,0,0,0,2,1,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,1,0,0,78.36227,9.387718,1.386294,4.330361,1 +7,1,25,0,2,126291,0,11939.83,9.657084,1,12,1,24.20485,0,0,0,0,24.20485,0,0,0,0,1,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,1,0,0,78.36227,9.387718,1.386294,3.186553,1 +7,1,25,0,3,126291,0,11939.83,10.65708,1,12,1,20.63882,0,0,4.299754,0,20.63882,0,0,1,1,1,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,1,0,0,78.36227,9.387718,1.386294,3.027174,1 +7,1,25,0,4,126291,0,11939.83,11.65708,1,12,1,116.4768,2.734731,0,0,0,119.2115,0,0,0,4,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,1,0,0,78.36227,9.387718,1.386294,4.780899,1 +7,1,25,0,5,126291,0,11939.83,12.65708,1,12,1,91.9133,0,0,0,0,91.9133,0,0,0,0,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,1,0,0,78.36227,9.387718,1.386294,4.520846,1 +5,1,25,1,1,126311,0,7136.477,35.90691,0,12,1,58.15348,2.93765,0,0,0,61.09113,0,0,0,2,0,3,85.3,8.7,0,,678,678,0,0,1.098612,6.519147,0,3.258096,7.905442,0,0,0,78.56193,8.873115,1.098612,4.112367,1 +5,1,25,1,2,126311,0,7136.477,36.90691,0,12,1,44.35926,0,0,0,0,44.35926,0,0,0,3,0,3,85.3,8.7,0,,678,678,0,0,1.098612,6.519147,0,3.258096,7.905442,0,0,0,78.56193,8.873115,1.098612,3.792321,1 +5,1,25,1,3,126311,0,7136.477,37.90691,0,12,1,444.1596,27.6808,0,0,0,471.8404,0,0,0,2,1,3,85.3,8.7,0,,678,678,0,0,1.098612,6.519147,0,3.258096,7.905442,0,0,0,78.56193,8.873115,1.098612,6.156641,1 +5,1,25,1,4,126311,0,7136.477,38.90691,0,12,1,76.07192,6.339327,52.0332,0,0,134.4444,0,0,0,5,1,3,85.3,8.7,0,,678,678,0,0,1.098612,6.519147,0,3.258096,7.905442,0,0,0,78.56193,8.873115,1.098612,4.901151,1 +5,1,25,1,5,126311,0,7136.477,39.90691,0,12,1,20.31316,8.78121,0,0,0,29.09437,0,0,0,5,0,3,85.3,8.7,0,,678,678,0,0,1.098612,6.519147,0,3.258096,7.905442,0,0,0,78.56193,8.873115,1.098612,3.370545,1 +5,1,25,1,1,126312,0,7136.477,.6680356,0,7,1,35.3717,2.068345,0,0,0,37.44005,0,0,0,6,0,3,74.36826,13.73189,0,,678,678,1,0,1.098612,6.519147,0,3.258096,7.905442,0,0,0,80.9538,8.873115,1.098612,3.622741,1 +5,1,25,1,2,126312,0,7136.477,1.668036,0,7,1,8.214677,2.382256,0,0,0,10.59693,0,0,0,1,0,3,74.36826,13.73189,0,,678,678,1,0,1.098612,6.519147,0,3.258096,7.905442,0,0,0,80.9538,8.873115,1.098612,2.360565,1 +5,1,25,1,3,126312,0,7136.477,2.668036,0,7,1,4.987531,0,0,0,0,4.987531,0,0,0,1,0,3,74.36826,13.73189,0,,678,678,1,0,1.098612,6.519147,0,3.258096,7.905442,0,0,0,80.9538,8.873115,1.098612,1.606941,1 +5,1,25,1,4,126312,0,7136.477,3.668036,0,7,1,0,0,0,0,0,0,0,0,0,0,0,3,74.36826,13.73189,0,,678,678,1,0,1.098612,6.519147,0,3.258096,7.905442,0,0,0,80.9538,8.873115,1.098612,,0 +5,1,25,1,5,126312,0,7136.477,4.668036,0,7,1,22.85231,0,0,0,0,22.85231,0,0,0,2,1,3,74.36826,13.73189,0,,678,678,1,0,1.098612,6.519147,0,3.258096,7.905442,0,0,0,80.9538,8.873115,1.098612,3.129052,1 +5,1,25,1,1,126313,0,7136.477,36.23819,1,7,1,11.39089,21.94245,0,0,0,33.33333,0,0,0,0,0,3,64.2,17.4,0,,678,678,0,0,1.098612,6.519147,0,3.258096,7.905442,0,0,0,69.21714,8.873115,1.098612,3.506558,1 +5,1,25,1,2,126313,0,7136.477,37.23819,1,7,1,43.81161,27.65608,0,0,0,71.46769,0,0,0,1,0,3,64.2,17.4,0,,678,678,0,0,1.098612,6.519147,0,3.258096,7.905442,0,0,0,69.21714,8.873115,1.098612,4.269246,1 +5,1,25,1,3,126313,0,7136.477,38.23819,1,7,1,23.94015,34.0399,26.58354,0,0,84.56359,0,0,0,1,1,3,64.2,17.4,0,,678,678,0,0,1.098612,6.519147,0,3.258096,7.905442,0,0,0,69.21714,8.873115,1.098612,4.437504,1 +5,1,25,1,4,126313,0,7136.477,39.23819,1,7,1,47.02628,47.30291,0,0,0,94.32919,0,0,0,3,0,3,64.2,17.4,0,,678,678,0,0,1.098612,6.519147,0,3.258096,7.905442,0,0,0,69.21714,8.873115,1.098612,4.546791,1 +5,1,25,1,5,126313,0,7136.477,40.23819,1,7,1,121.5404,33.64367,56.60601,0,0,211.7901,0,0,0,5,1,3,64.2,17.4,0,,678,678,0,0,1.098612,6.519147,0,3.258096,7.905442,0,0,0,69.21714,8.873115,1.098612,5.355596,1 +5,1,25,1,1,126314,0,2291.563,19.36208,0,12,1,8.992805,0,38.21943,0,0,47.21223,0,0,0,0,1,1,73.7,0,0,,179,0,0,0,0,0,0,3.258096,6.57368,0,0,0,77.80665,7.737426,0,3.854653,1 +5,1,25,1,2,126314,0,2291.563,20.36208,0,12,1,0,0,39.49069,0,0,39.49069,0,0,0,0,0,1,73.7,0,0,,179,0,0,0,0,0,0,3.258096,6.57368,0,0,0,77.80665,7.737426,0,3.676065,1 +5,1,25,1,3,126314,0,2291.563,21.36208,0,12,1,8.977556,1.9202,31.79551,0,0,42.69327,0,0,0,0,1,1,73.7,0,0,,179,0,0,0,0,0,0,3.258096,6.57368,0,0,0,77.80665,7.737426,0,3.754041,1 +5,1,25,1,4,126314,0,2291.563,22.36208,0,12,1,49.80175,0,20.71922,0,0,70.52098,0,0,0,1,0,1,73.7,0,0,,179,0,0,0,0,0,0,3.258096,6.57368,0,0,0,77.80665,7.737426,0,4.25591,1 +5,1,25,1,5,126314,0,2291.563,23.36208,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,73.7,0,0,,179,0,0,0,0,0,0,3.258096,6.57368,0,0,0,77.80665,7.737426,0,,0 +8,1,50,0,1,126319,0,3717.07,6.833675,0,13,1,12.58993,10.61151,0,0,0,23.20144,0,0,0,2,0,4,74.36826,13.73189,0,,0,0,1,0,1.386294,0,0,3.931826,0,0,0,0,84.2508,8.22096,1.386294,3.144214,1 +8,1,50,0,2,126319,0,3717.07,7.833675,0,13,1,34.50164,15.03286,0,0,0,49.5345,0,0,0,5,0,4,74.36826,13.73189,0,,0,0,1,0,1.386294,0,0,3.931826,0,0,0,0,84.2508,8.22096,1.386294,3.902669,1 +8,1,50,0,3,126319,0,3717.07,8.833675,0,13,1,42.39402,16.28429,0,0,0,58.6783,0,0,0,7,0,4,74.36826,13.73189,0,,0,0,1,0,1.386294,0,0,3.931826,0,0,0,0,84.2508,8.22096,1.386294,4.07207,1 +8,1,50,0,1,126320,0,3717.07,34.01232,0,17,1,111.8106,2.667866,0,0,0,114.4784,0,0,0,7,0,4,33.8,13.73189,0,,0,0,0,0,1.386294,0,0,3.931826,0,0,0,0,74.86721,8.22096,1.386294,4.740386,1 +8,1,50,0,2,126320,0,3717.07,35.01232,0,17,1,30.66813,13.82804,37.48631,0,0,81.98248,0,0,0,4,0,4,33.8,13.73189,0,,0,0,0,0,1.386294,0,0,3.931826,0,0,0,0,74.86721,8.22096,1.386294,4.406506,1 +8,1,50,0,3,126320,0,3717.07,36.01232,0,17,1,84.78803,16.70823,0,0,0,101.4963,0,0,0,1,0,4,33.8,13.73189,0,,0,0,0,0,1.386294,0,0,3.931826,0,0,0,0,74.86721,8.22096,1.386294,4.620022,1 +8,1,50,0,1,126321,0,3717.07,32.33128,1,13,1,125,24.79017,102.0923,0,783.5432,1035.426,1,0,0,9,0,4,62.5,13.73189,1,,0,0,0,0,1.386294,0,0,3.931826,0,1,0,0,66.88633,8.22096,1.386294,6.942568,1 +8,1,50,0,2,126321,0,3717.07,33.33128,1,13,1,77.76561,40.82694,328.5871,0,1728.598,2175.778,2,0,0,7,0,4,62.5,13.73189,1,,0,0,0,0,1.386294,0,0,3.931826,0,1,0,0,66.88633,8.22096,1.386294,7.685142,1 +8,1,50,0,3,126321,0,3717.07,34.33128,1,13,1,483.5162,15.3616,249.3766,0,982.2244,1730.479,1,0,0,14,0,4,62.5,13.73189,1,,0,0,0,0,1.386294,0,0,3.931826,0,1,0,0,66.88633,8.22096,1.386294,7.456153,1 +8,1,50,0,1,126322,0,3717.07,.6926762,1,13,1,90.52758,16.78657,0,0,0,107.3141,0,0,0,11,1,4,74.36826,13.73189,0,,0,0,1,1,1.386294,0,0,3.931826,0,0,0,0,80.3052,8.22096,1.386294,4.67576,1 +8,1,50,0,2,126322,0,3717.07,1.692676,1,13,1,355.942,60.68456,0,0,0,416.6265,0,0,0,16,0,4,74.36826,13.73189,0,,0,0,1,1,1.386294,0,0,3.931826,0,0,0,0,80.3052,8.22096,1.386294,6.03219,1 +8,1,50,0,3,126322,0,3717.07,2.692676,1,13,1,100.7481,32.74314,0,0,352.1596,485.6509,1,0,0,15,0,4,74.36826,13.73189,0,,0,0,1,1,1.386294,0,0,3.931826,0,0,0,0,80.3052,8.22096,1.386294,6.18549,1 +1,1,0,0,1,126331,0,8401.985,1.689254,0,16,1,21.20141,21.2662,0,0,0,42.46761,0,0,0,4,0,3,74.36826,13.73189,0,,450,450,1,0,1.098612,6.109248,1,0,0,0,0,0,80.40897,9.036343,1.098612,3.748742,1 +1,1,0,0,2,126331,0,8401.985,2.689254,0,16,1,20.48518,19.89757,0,0,0,40.38275,0,0,0,3,0,3,74.36826,13.73189,0,,450,450,1,0,1.098612,6.109248,1,0,0,0,0,0,80.40897,9.036343,1.098612,3.698403,1 +1,1,0,0,3,126331,0,8401.985,3.689254,0,16,1,24.57002,20.2113,0,0,0,44.78133,0,0,0,3,0,4,74.36826,13.73189,0,,450,450,1,0,1.386294,6.109248,1,0,0,0,0,0,80.40897,9.036343,1.386294,3.801791,1 +1,1,0,0,1,126332,0,8401.985,28.7447,0,16,1,21.49588,5.223793,0,0,0,26.71967,0,0,0,1,1,3,80,17.4,0,,450,450,0,0,1.098612,6.109248,1,0,0,0,0,0,78.62843,9.036343,1.098612,3.2854,1 +1,1,0,0,2,126332,0,8401.985,29.7447,0,16,1,18.86792,0,0,0,0,18.86792,0,0,0,0,1,3,80,17.4,0,,450,450,0,0,1.098612,6.109248,1,0,0,0,0,0,78.62843,9.036343,1.098612,2.937463,1 +1,1,0,0,3,126332,0,8401.985,30.7447,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,80,17.4,0,,450,450,0,0,1.386294,6.109248,1,0,0,0,0,0,78.62843,9.036343,1.386294,,0 +1,1,0,0,1,126333,0,8401.985,29.08419,1,16,1,60.6596,27.34393,42.40283,0,0,130.4064,0,0,0,4,1,3,87.4,13,0,,450,450,0,0,1.098612,6.109248,1,0,0,0,0,0,79.51961,9.036343,1.098612,4.870656,1 +1,1,0,0,2,126333,0,8401.985,30.08419,1,16,1,2.695418,27.78976,0,0,736.7925,767.2776,1,0,0,0,0,3,87.4,13,0,,450,450,0,0,1.098612,6.109248,1,0,0,0,0,0,79.51961,9.036343,1.098612,6.642848,1 +1,1,0,0,3,126333,0,8401.985,31.08419,1,16,1,26.04423,24.44226,0,0,0,50.48649,0,0,0,3,0,4,87.4,13,0,,450,450,0,0,1.386294,6.109248,1,0,0,0,0,0,79.51961,9.036343,1.386294,3.921706,1 +11,1,0,1,1,126340,0,6321.658,17.30048,1,14,1,132.0643,70.28555,42.75431,0,0,245.1041,0,0,0,19,0,3,92.6,13,0,,0,0,1,1,1.098612,0,0,0,0,0,0,0,74.41844,8.751895,1.098612,5.501683,1 +11,1,0,1,2,126340,0,6321.658,18.30048,1,14,1,22.86336,70.44093,0,0,0,93.3043,0,0,0,3,0,3,92.6,13,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,74.41844,8.751895,1.098612,4.535866,1 +11,1,0,1,3,126340,0,6321.658,19.30048,1,14,1,101.0902,64.54411,45.16848,0,0,210.8028,0,0,0,10,0,3,92.6,13,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,74.41844,8.751895,1.098612,5.350923,1 +11,1,0,1,1,126341,0,6321.658,53.70021,1,14,1,60.08328,23.3492,46.62106,0,0,130.0535,0,0,0,7,0,3,38.9,17.4,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,78.69423,8.751895,1.098612,4.867946,1 +11,1,0,1,2,126341,0,6321.658,54.70021,1,14,1,67.55579,39.62983,4.545455,0,832.798,944.5291,1,0,0,9,0,3,38.9,17.4,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,78.69423,8.751895,1.098612,6.850687,1 +11,1,0,1,3,126341,0,6321.658,55.70021,1,14,1,181.8632,15.36174,44.33102,0,0,241.556,0,0,0,6,1,3,38.9,17.4,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,78.69423,8.751895,1.098612,5.487102,1 +11,1,0,1,1,126342,0,6321.658,53.65366,0,14,1,66.62701,12.0464,38.07257,0,0,116.746,0,0,0,5,6,3,52.6,13,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,76.12692,8.751895,1.098612,4.760001,1 +11,1,0,1,2,126342,0,6321.658,54.65366,0,14,1,97.44148,37.34349,0,0,0,134.785,0,0,0,10,5,3,52.6,13,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,76.12692,8.751895,1.098612,4.903681,1 +11,1,0,1,3,126342,0,6321.658,55.65366,0,14,1,46.08523,23.14172,37.16551,0,0,106.3925,0,0,0,1,5,3,52.6,13,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,76.12692,8.751895,1.098612,4.667135,1 +11,1,0,1,1,126343,0,5065.757,23.02259,0,12,1,46.84117,6.632957,34.19393,0,0,87.66805,0,0,0,6,0,1,62.1,4.3,0,,0,52,0,0,0,3.951244,0,0,0,0,0,0,77.42352,8.530457,0,4.473557,1 +11,1,0,1,2,126343,0,5065.757,24.02259,0,12,1,20.6859,8.328797,0,0,0,29.0147,0,0,0,4,0,1,62.1,4.3,0,,0,52,0,0,0,3.951244,0,0,0,0,0,0,77.42352,8.530457,0,3.367803,1 +11,1,0,1,3,126343,0,5065.757,25.02259,0,12,1,48.56293,12.31417,29.51933,0,0,90.39643,0,0,0,7,0,1,62.1,4.3,0,,0,52,0,0,0,3.951244,0,0,0,0,0,0,77.42352,8.530457,0,4.504205,1 +5,1,25,0,1,126350,0,9707.816,61.90281,1,11,1,107.3322,87.77974,39.3934,0,0,234.5053,0,0,0,15,0,1,95,13.73189,0,,716,716,0,0,0,6.57368,0,3.258096,7.959975,0,0,0,76.49065,9.18079,0,5.457478,1 +5,1,25,0,2,126350,0,9707.816,62.90281,1,11,1,165.2291,86.33962,46.47979,0,1636.14,1934.189,1,0,0,16,0,1,95,13.73189,0,,716,716,0,0,0,6.57368,0,3.258096,7.959975,0,0,0,76.49065,9.18079,0,7.567443,1 +5,1,25,0,3,126350,0,9707.816,63.90281,1,11,1,29.48403,50.71253,0,0,0,80.19656,0,0,0,3,0,1,95,13.73189,0,,716,716,0,0,0,6.57368,0,3.258096,7.959975,0,0,0,76.49065,9.18079,0,4.38448,1 +5,1,25,0,1,126359,0,6277.295,32.53114,1,9,1,6.478209,0,0,0,0,6.478209,0,0,0,1,0,4,95,13.73189,0,,500,500,0,0,1.386294,6.214608,0,3.258096,7.600903,1,0,0,69.47372,8.744854,1.386294,1.868444,1 +5,1,25,0,2,126359,0,6277.295,33.53114,1,9,1,25.87601,2.156334,0,0,0,28.03234,0,0,0,2,0,4,95,13.73189,0,,500,500,0,0,1.386294,6.214608,0,3.258096,7.600903,1,0,0,69.47372,8.744854,1.386294,3.333359,1 +5,1,25,0,3,126359,0,6277.295,34.53114,1,9,1,46.06879,6.314497,0,0,0,52.38329,0,0,0,3,0,4,95,13.73189,0,,500,500,0,0,1.386294,6.214608,0,3.258096,7.600903,1,0,0,69.47372,8.744854,1.386294,3.958588,1 +5,1,25,0,4,126359,0,6277.295,35.53114,1,9,1,26.89152,0,0,0,0,26.89152,0,0,0,2,0,4,95,13.73189,0,,500,500,0,0,1.386294,6.214608,0,3.258096,7.600903,1,0,0,69.47372,8.744854,1.386294,3.291811,1 +5,1,25,0,5,126359,0,6277.295,36.53114,1,9,1,350.3126,6.669446,196.0192,0,0,553.0012,0,0,0,9,0,4,95,13.73189,0,,500,500,0,0,1.386294,6.214608,0,3.258096,7.600903,1,0,0,69.47372,8.744854,1.386294,6.31536,1 +5,1,25,0,1,126360,0,6277.295,9.029432,1,9,1,19.43463,0,20.84806,0,0,40.28268,0,0,0,2,1,4,74.36826,13.73189,0,,500,500,1,1,1.386294,6.214608,0,3.258096,7.600903,1,0,0,76.85021,8.744854,1.386294,3.695922,1 +5,1,25,0,2,126360,0,6277.295,10.02943,1,9,1,5.390836,2.495957,8.964959,0,0,16.85175,0,0,0,1,0,4,74.36826,13.73189,0,,500,500,1,1,1.386294,6.214608,0,3.258096,7.600903,1,0,0,76.85021,8.744854,1.386294,2.824455,1 +5,1,25,0,3,126360,0,6277.295,11.02943,1,9,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,500,500,1,1,1.386294,6.214608,0,3.258096,7.600903,1,0,0,76.85021,8.744854,1.386294,,0 +5,1,25,0,4,126360,0,6277.295,12.02943,1,9,1,46.03464,2.734731,0,0,0,48.76937,0,0,0,2,1,4,74.36826,13.73189,0,,500,500,1,1,1.386294,6.214608,0,3.258096,7.600903,1,0,0,76.85021,8.744854,1.386294,3.887102,1 +5,1,25,0,5,126360,0,6277.295,13.02943,1,9,1,40.45436,5.360567,23.88495,0,492.0342,561.7341,1,0,0,2,0,4,74.36826,13.73189,0,,500,500,1,1,1.386294,6.214608,0,3.258096,7.600903,1,0,0,76.85021,8.744854,1.386294,6.331028,1 +5,1,25,0,1,126361,0,6277.295,32.85695,0,12.32507,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,.12982,,500,500,0,0,1.386294,6.214608,0,3.258096,7.600903,1,0,0,71.97958,8.744854,1.386294,,0 +5,1,25,0,2,126361,0,6277.295,33.85695,0,12.32507,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,.12982,,500,500,0,0,1.386294,6.214608,0,3.258096,7.600903,1,0,0,71.97958,8.744854,1.386294,,0 +5,1,25,0,3,126361,0,6277.295,34.85695,0,12.32507,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,.12982,,500,500,0,0,1.386294,6.214608,0,3.258096,7.600903,1,0,0,71.97958,8.744854,1.386294,,0 +5,1,25,0,4,126361,0,6277.295,35.85695,0,12.32507,1,30.76572,0,0,0,0,30.76572,0,0,0,1,0,4,74.36826,13.73189,.12982,,500,500,0,0,1.386294,6.214608,0,3.258096,7.600903,1,0,0,71.97958,8.744854,1.386294,3.426401,1 +5,1,25,0,5,126361,0,6277.295,36.85695,0,12.32507,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,.12982,,500,500,0,0,1.386294,6.214608,0,3.258096,7.600903,1,0,0,71.97958,8.744854,1.386294,,0 +5,1,25,0,1,126362,0,6277.295,14.23956,0,9,1,104.2108,.8598351,0,0,0,105.0707,0,0,0,3,0,4,95,13.73189,0,,500,500,1,0,1.386294,6.214608,0,3.258096,7.600903,1,0,0,70.41564,8.744854,1.386294,4.654633,1 +5,1,25,0,2,126362,0,6277.295,15.23956,0,9,1,0,0,0,0,0,0,0,0,0,0,0,4,95,13.73189,0,,500,500,1,0,1.386294,6.214608,0,3.258096,7.600903,1,0,0,70.41564,8.744854,1.386294,,0 +5,1,25,0,3,126362,0,6277.295,16.23956,0,9,1,0,0,0,0,0,0,0,0,0,0,0,4,95,13.73189,0,,500,500,1,0,1.386294,6.214608,0,3.258096,7.600903,1,0,0,70.41564,8.744854,1.386294,,0 +5,1,25,0,4,126362,0,6277.295,17.23956,0,9,1,0,0,0,0,0,0,0,0,0,0,0,4,95,13.73189,0,,500,500,1,0,1.386294,6.214608,0,3.258096,7.600903,1,0,0,70.41564,8.744854,1.386294,,0 +5,1,25,0,5,126362,0,6277.295,18.23956,0,9,1,0,0,0,0,0,0,0,0,0,0,0,4,95,13.73189,0,,500,500,0,0,1.386294,6.214608,0,3.258096,7.600903,1,0,0,70.41564,8.744854,1.386294,,0 +4,1,100,1,1,126384,0,4298.431,62.02327,1,11,1,26.50177,11.16019,0,0,0,37.66196,0,0,0,3,0,1,81.1,17.4,0,,1000,1000,0,0,0,6.907755,1,0,0,1,0,0,68.18743,8.366238,0,3.62865,1 +4,1,100,1,2,126384,0,4298.431,63.02327,1,11,1,202.4259,99.78436,431.1752,0,0,733.3854,0,0,0,7,1,1,81.1,17.4,0,,1000,1000,0,0,0,6.907755,1,0,0,1,0,0,68.18743,8.366238,0,6.597672,1 +4,1,100,1,3,126384,0,4298.431,64.02327,1,11,1,351.8427,100.1228,107.4889,0,703.9951,1263.45,1,0,0,14,0,1,81.1,17.4,0,,1000,1000,0,0,0,6.907755,1,0,0,1,0,0,68.18743,8.366238,0,7.141601,1 +5,1,25,1,1,126386,0,7500,31.64134,1,12,1,47.29328,14.6282,0,0,0,61.92147,0,0,0,5,0,4,74.7,13,0,,455,455,0,0,1.386294,6.120297,0,3.258096,7.506592,0,0,0,77.99498,8.922791,1.386294,4.125867,1 +5,1,25,1,2,126386,0,7500,32.64134,1,12,1,51.44257,27.51769,0,0,0,78.96026,0,0,0,4,0,4,74.7,13,0,,455,455,0,0,1.386294,6.120297,0,3.258096,7.506592,0,0,0,77.99498,8.922791,1.386294,4.368945,1 +5,1,25,1,3,126386,0,7500,33.64134,1,12,1,9.910803,0,0,0,0,9.910803,0,0,0,1,0,4,74.7,13,0,,455,455,0,0,1.386294,6.120297,0,3.258096,7.506592,0,0,0,77.99498,8.922791,1.386294,2.293625,1 +5,1,25,1,4,126386,0,7500,34.64134,1,12,1,68.60945,4.566315,0,0,0,73.17577,0,0,0,4,0,4,74.7,13,0,,455,455,0,0,1.386294,6.120297,0,3.258096,7.506592,0,0,0,77.99498,8.922791,1.386294,4.292864,1 +5,1,25,1,5,126386,0,7500,35.64134,1,12,1,29.86958,0,126.2095,0,0,156.0791,0,0,0,3,0,4,74.7,13,0,,455,455,0,0,1.386294,6.120297,0,3.258096,7.506592,0,0,0,77.99498,8.922791,1.386294,5.050363,1 +5,1,25,1,1,126387,0,7500,3.069131,0,12,1,0,5.086258,0,0,0,5.086258,0,0,0,0,0,4,74.36826,13.73189,0,,455,455,1,0,1.386294,6.120297,0,3.258096,7.506592,0,0,0,79.16171,8.922791,1.386294,1.626542,1 +5,1,25,1,2,126387,0,7500,4.069131,0,12,1,18.50844,2.721829,0,0,0,21.23027,0,0,0,2,0,4,74.36826,13.73189,0,,455,455,1,0,1.386294,6.120297,0,3.258096,7.506592,0,0,0,79.16171,8.922791,1.386294,3.055428,1 +5,1,25,1,3,126387,0,7500,5.069131,0,12,1,66.89792,3.468781,0,0,0,70.3667,0,0,0,5,0,4,74.36826,13.73189,0,,455,455,1,0,1.386294,6.120297,0,3.258096,7.506592,0,0,0,79.16171,8.922791,1.386294,4.25372,1 +5,1,25,1,4,126387,0,7500,6.069131,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,455,455,1,0,1.386294,6.120297,0,3.258096,7.506592,0,0,0,79.16171,8.922791,1.386294,,0 +5,1,25,1,5,126387,0,7500,7.069131,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,455,455,1,0,1.386294,6.120297,0,3.258096,7.506592,0,0,0,79.16171,8.922791,1.386294,,0 +5,1,25,1,1,126388,0,7500,31.48528,0,12,1,9.815586,0,0,0,0,9.815586,0,0,0,1,0,4,65.3,4.3,0,,455,455,0,0,1.386294,6.120297,0,3.258096,7.506592,0,0,0,78.04445,8.922791,1.386294,2.283972,1 +5,1,25,1,2,126388,0,7500,32.48528,0,12,1,15.24224,0,0,0,0,15.24224,0,0,0,1,0,4,65.3,4.3,0,,455,455,0,0,1.386294,6.120297,0,3.258096,7.506592,0,0,0,78.04445,8.922791,1.386294,2.724071,1 +5,1,25,1,3,126388,0,7500,33.48528,0,12,1,7.680872,2.477701,0,0,0,10.15857,0,0,0,1,0,4,65.3,4.3,0,,455,455,0,0,1.386294,6.120297,0,3.258096,7.506592,0,0,0,78.04445,8.922791,1.386294,2.318318,1 +5,1,25,1,4,126388,0,7500,34.48528,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,65.3,4.3,0,,455,455,0,0,1.386294,6.120297,0,3.258096,7.506592,0,0,0,78.04445,8.922791,1.386294,,0 +5,1,25,1,5,126388,0,7500,35.48528,0,12,1,13.46235,0,0,0,0,13.46235,0,0,0,1,0,4,65.3,4.3,0,,455,455,0,0,1.386294,6.120297,0,3.258096,7.506592,0,0,0,78.04445,8.922791,1.386294,2.599897,1 +5,1,25,1,1,126389,0,7500,5.738535,0,12,1,11.89768,7.406306,0,0,0,19.30399,0,0,0,1,0,4,74.36826,13.73189,0,,455,455,1,0,1.386294,6.120297,0,3.258096,7.506592,0,0,0,82.59333,8.922791,1.386294,2.960312,1 +5,1,25,1,2,126389,0,7500,6.738535,0,12,1,24.76864,5.389222,0,0,0,30.15787,0,0,0,3,0,4,74.36826,13.73189,0,,455,455,1,0,1.386294,6.120297,0,3.258096,7.506592,0,0,0,82.59333,8.922791,1.386294,3.406446,1 +5,1,25,1,3,126389,0,7500,7.738535,0,12,1,28.74133,4.88107,0,0,0,33.6224,0,0,0,3,0,4,74.36826,13.73189,0,,455,455,1,0,1.386294,6.120297,0,3.258096,7.506592,0,0,0,82.59333,8.922791,1.386294,3.515193,1 +5,1,25,1,4,126389,0,7500,8.738535,0,12,1,13.99725,2.294631,0,0,0,16.29188,0,0,0,2,0,4,74.36826,13.73189,0,,455,455,1,0,1.386294,6.120297,0,3.258096,7.506592,0,0,0,82.59333,8.922791,1.386294,2.790667,1 +5,1,25,1,5,126389,0,7500,9.738535,0,12,1,34.939,0,0,0,0,34.939,0,0,0,2,0,4,74.36826,13.73189,0,,455,455,1,0,1.386294,6.120297,0,3.258096,7.506592,0,0,0,82.59333,8.922791,1.386294,3.553604,1 +1,1,0,1,1,126390,0,4179.28,43.07734,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,80,17.4,0,,450,460,0,0,1.098612,6.131227,1,0,0,1,0,0,70.18314,8.338134,1.098612,,0 +1,1,0,1,2,126390,0,4179.28,44.07734,1,12,1,46.36119,2.695418,14.01617,0,0,63.07278,0,0,0,4,1,3,80,17.4,0,,450,460,0,0,1.098612,6.131227,1,0,0,1,0,0,70.18314,8.338134,1.098612,4.144289,1 +1,1,0,1,3,126390,0,4179.28,45.07734,1,12,1,8.353808,0,0,0,0,8.353808,0,0,0,1,0,3,80,17.4,0,,450,460,0,0,1.098612,6.131227,1,0,0,1,0,0,70.18314,8.338134,1.098612,2.122718,1 +1,1,0,1,4,126390,0,4179.28,46.07734,1,12,1,9.11577,0,0,0,0,9.11577,0,0,0,0,0,2,80,17.4,0,,450,460,0,0,.6931472,6.131227,1,0,0,1,0,0,70.18314,8.338134,.6931472,2.210006,1 +1,1,0,1,5,126390,0,4179.28,47.07734,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,80,17.4,0,,450,460,0,0,1.098612,6.131227,1,0,0,1,0,0,70.18314,8.338134,1.098612,,0 +1,1,0,1,1,126391,0,4179.28,13.04586,0,12,1,5.300354,1.766784,0,0,0,7.067138,0,0,0,1,0,3,74.36826,13.73189,0,,450,460,1,0,1.098612,6.131227,1,0,0,1,0,0,75.23473,8.338134,1.098612,1.955456,1 +1,1,0,1,2,126391,0,4179.28,14.04586,0,12,1,28.03234,0,19.11051,0,0,47.14286,0,0,0,1,1,3,74.36826,13.73189,0,,450,460,1,0,1.098612,6.131227,1,0,0,1,0,0,75.23473,8.338134,1.098612,3.853183,1 +1,1,0,1,3,126391,0,4179.28,15.04586,0,12,1,62.89926,0,0,0,0,62.89926,0,0,0,3,0,3,74.36826,13.73189,0,,450,460,1,0,1.098612,6.131227,1,0,0,1,0,0,75.23473,8.338134,1.098612,4.141534,1 +1,1,0,1,4,126391,0,4179.28,16.04586,0,12,1,75.90246,0,34.77211,0,0,110.6746,0,0,0,5,1,2,74.36826,13.73189,0,,450,460,1,0,.6931472,6.131227,1,0,0,1,0,0,75.23473,8.338134,.6931472,4.706594,1 +1,1,0,1,5,126391,0,4179.28,17.04586,0,12,1,15.00625,.8336807,0,0,0,15.83993,0,0,0,1,0,3,74.36826,13.73189,0,,450,460,1,0,1.098612,6.131227,1,0,0,1,0,0,75.23473,8.338134,1.098612,2.762534,1 +1,1,0,1,1,126392,0,4179.28,39.97262,0,11,1,0,0,0,0,0,0,0,0,0,0,0,3,76.8,4.3,0,,450,460,0,0,1.098612,6.131227,1,0,0,1,0,0,67.17622,8.338134,1.098612,,0 +1,1,0,1,2,126392,0,4179.28,40.97262,0,11,1,0,0,0,0,0,0,0,0,0,0,0,3,76.8,4.3,0,,450,460,0,0,1.098612,6.131227,1,0,0,1,0,0,67.17622,8.338134,1.098612,,0 +1,1,0,1,3,126392,0,4179.28,41.97262,0,11,1,66.58477,0,0,0,0,66.58477,0,0,0,1,0,3,76.8,4.3,0,,450,460,0,0,1.098612,6.131227,1,0,0,1,0,0,67.17622,8.338134,1.098612,4.198476,1 +1,1,0,1,5,126392,0,4179.28,43.97262,0,11,1,45.22718,0,4.126719,0,0,49.3539,0,0,0,2,0,3,76.8,4.3,0,,450,460,0,0,1.098612,6.131227,1,0,0,1,0,0,67.17622,8.338134,1.098612,3.899017,1 +9,1,50,0,1,126410,0,10069.48,26.74607,1,16,1,200.8393,22.97362,0,0,0,223.8129,0,0,0,12,0,2,93.8,13.73189,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,69.61801,9.217363,.6931472,5.41081,1 +9,1,50,0,2,126410,0,10069.48,27.74607,1,16,1,465.3341,0,0,0,0,465.3341,0,0,0,5,0,2,93.8,13.73189,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,69.61801,9.217363,.6931472,6.142756,1 +9,1,50,0,3,126410,0,10069.48,28.74607,1,16,1,74.06483,0,0,0,0,74.06483,0,0,0,1,0,2,93.8,13.73189,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,69.61801,9.217363,.6931472,4.304941,1 +9,1,50,0,1,126411,0,10069.48,26.6475,0,16,1,0,0,0,0,0,0,0,0,0,0,0,2,92.5,13.73189,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,72.70196,9.217363,.6931472,,0 +9,1,50,0,2,126411,0,10069.48,27.6475,0,16,1,6.571742,0,36.8839,0,0,43.45564,0,0,0,0,1,2,92.5,13.73189,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,72.70196,9.217363,.6931472,3.771741,1 +9,1,50,0,3,126411,0,10069.48,28.6475,0,16,1,0,0,0,0,0,0,0,0,0,0,0,2,92.5,13.73189,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,72.70196,9.217363,.6931472,,0 +11,1,0,0,1,126417,0,7262.407,25.62354,1,18,1,24.14605,14.68787,0,0,0,38.83392,0,0,0,2,0,3,75,13.73189,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,78.44444,8.890604,1.098612,3.659294,1 +11,1,0,0,2,126417,0,7262.407,26.62354,1,18,1,173.5849,26.81402,17.57412,0,0,217.9731,0,0,0,10,1,3,75,13.73189,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,78.44444,8.890604,1.098612,5.384371,1 +11,1,0,0,3,126417,0,7262.407,27.62354,1,18,1,48.2801,10.79115,0,0,0,59.07125,0,0,0,5,0,3,75,13.73189,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,78.44444,8.890604,1.098612,4.078744,1 +11,1,0,0,4,126417,0,7262.407,28.62354,1,18,1,55.8113,4.443938,0,0,0,60.25524,0,0,0,3,0,3,75,13.73189,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,78.44444,8.890604,1.098612,4.098589,1 +11,1,0,0,5,126417,0,7262.407,29.62354,1,18,1,38.76615,4.43935,22.62609,0,0,65.8316,0,0,0,3,1,3,75,13.73189,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,78.44444,8.890604,1.098612,4.1871,1 +11,1,0,0,1,126418,0,7262.407,27.29363,0,18,1,0,0,0,0,0,0,0,0,0,0,0,3,78.8,13.73189,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,77.55326,8.890604,1.098612,,0 +11,1,0,0,2,126418,0,7262.407,28.29363,0,18,1,103.504,1.078167,29.29919,0,0,133.8814,0,0,0,2,0,3,78.8,13.73189,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,77.55326,8.890604,1.098612,4.896955,1 +11,1,0,0,3,126418,0,7262.407,29.29363,0,18,1,12.28501,5.189189,0,0,0,17.4742,0,0,0,1,1,3,78.8,13.73189,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,77.55326,8.890604,1.098612,2.860726,1 +11,1,0,0,4,126418,0,7262.407,30.29363,0,18,1,0,0,0,0,0,0,0,0,0,0,0,3,78.8,13.73189,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,77.55326,8.890604,1.098612,,0 +11,1,0,0,5,126418,0,7262.407,31.29363,0,18,1,15.00625,4.326803,22.62609,0,0,41.95915,0,0,0,1,1,3,78.8,13.73189,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,77.55326,8.890604,1.098612,3.736696,1 +5,1,25,1,1,126426,0,15193.55,44.84873,1,12,1,177.8269,189.2933,28.92815,0,711.9258,1107.974,1,0,0,17,0,3,44.2,26.1,1,,800,800,0,0,1.098612,6.684612,0,3.258096,8.070906,1,0,0,67.97492,9.628692,1.098612,7.010289,1 +5,1,25,1,2,126426,0,15193.55,45.84873,1,12,1,93.26145,158.4852,25.3531,0,1780.819,2057.919,2,0,0,10,0,3,44.2,26.1,1,,800,800,0,0,1.098612,6.684612,0,3.258096,8.070906,1,0,0,67.97492,9.628692,1.098612,7.629451,1 +5,1,25,1,3,126426,0,15193.55,46.84873,1,12,1,222.8501,94.44226,0,0,0,317.2924,0,0,0,8,0,3,44.2,26.1,1,,800,800,0,0,1.098612,6.684612,0,3.258096,8.070906,1,0,0,67.97492,9.628692,1.098612,5.759824,1 +5,1,25,1,4,126426,0,15193.55,47.84873,1,12,1,147.6755,75.87967,30.433,0,0,253.9881,0,0,0,6,0,3,44.2,26.1,1,,800,800,0,0,1.098612,6.684612,0,3.258096,8.070906,1,0,0,67.97492,9.628692,1.098612,5.537288,1 +5,1,25,1,5,126426,0,15193.55,48.84873,1,12,1,19.69571,77.93247,0,0,0,97.62818,0,0,0,1,0,3,44.2,26.1,1,,800,800,0,0,1.098612,6.684612,0,3.258096,8.070906,1,0,0,67.97492,9.628692,1.098612,4.581166,1 +5,1,25,1,1,126427,0,15193.55,42.23682,0,16,1,99.23439,207.9564,0,0,1480.071,1787.261,2,0,0,8,0,3,65.3,21.7,1,,800,800,0,0,1.098612,6.684612,0,3.258096,8.070906,0,1,0,59.88523,9.628692,1.098612,7.48844,1 +5,1,25,1,2,126427,0,15193.55,43.23682,0,16,1,110.1078,131.3693,0,0,0,241.4771,0,0,0,5,0,3,65.3,21.7,1,,800,800,0,0,1.098612,6.684612,0,3.258096,8.070906,0,1,0,59.88523,9.628692,1.098612,5.486774,1 +5,1,25,1,3,126427,0,15193.55,44.23682,0,16,1,126.9042,86.81081,0,0,1071.646,1285.361,1,0,0,4,1,3,65.3,21.7,1,,800,800,0,0,1.098612,6.684612,0,3.258096,8.070906,0,1,0,59.88523,9.628692,1.098612,7.158795,1 +5,1,25,1,4,126427,0,15193.55,45.23682,0,16,1,13.90155,79.85415,0,0,0,93.7557,0,0,0,2,0,3,65.3,21.7,1,,800,800,0,0,1.098612,6.684612,0,3.258096,8.070906,0,1,0,59.88523,9.628692,1.098612,4.540692,1 +5,1,25,1,5,126427,0,15193.55,46.23682,0,16,1,156.5235,55.02293,24.32263,0,645.8733,881.7424,1,0,0,4,0,3,65.3,21.7,1,,800,800,0,0,1.098612,6.684612,0,3.258096,8.070906,0,1,0,59.88523,9.628692,1.098612,6.7819,1 +5,1,25,1,1,126428,0,15193.55,19.40862,0,12.32507,1,143.9929,11.78445,0,0,0,155.7774,0,0,0,11,0,3,80,13,0,,800,800,0,0,1.098612,6.684612,0,3.258096,8.070906,0,0,0,77.93675,9.628692,1.098612,5.048428,1 +5,1,25,1,2,126428,0,15193.55,20.40862,0,12.32507,1,130.9973,9.681941,30.42048,680.8625,0,171.0997,0,0,33,6,0,3,80,13,0,,800,800,0,0,1.098612,6.684612,0,3.258096,8.070906,0,0,0,77.93675,9.628692,1.098612,5.142247,1 +5,1,25,1,3,126428,0,15193.55,21.40862,0,12.32507,1,107.8624,0,27.72973,0,621.0024,756.5946,1,0,0,6,0,3,80,13,0,,800,800,0,0,1.098612,6.684612,0,3.258096,8.070906,0,0,0,77.93675,9.628692,1.098612,6.628828,1 +5,1,25,1,4,126428,0,15193.55,22.40862,0,12.32507,1,23.35916,0,0,0,0,23.35916,0,0,0,2,0,3,80,13,0,,800,800,0,0,1.098612,6.684612,0,3.258096,8.070906,0,0,0,77.93675,9.628692,1.098612,3.150989,1 +5,1,25,1,5,126428,0,15193.55,23.40862,0,12.32507,1,69.50813,7.582326,0,0,0,77.09045,0,0,0,7,0,3,80,13,0,,800,800,0,0,1.098612,6.684612,0,3.258096,8.070906,0,0,0,77.93675,9.628692,1.098612,4.344979,1 +7,1,25,0,1,126461,0,6078.164,49.24572,1,14,1,0,0,0,0,0,0,0,0,0,0,0,1,82.5,13.73189,0,,843,843,0,0,0,6.736967,0,3.258096,8.123261,0,0,0,79.31465,8.712623,0,,0 +7,1,25,0,2,126461,0,6078.164,50.24572,1,14,1,0,0,0,0,0,0,0,0,0,0,0,1,82.5,13.73189,0,,843,843,0,0,0,6.736967,0,3.258096,8.123261,0,0,0,79.31465,8.712623,0,,0 +7,1,25,0,3,126461,0,6078.164,51.24572,1,14,1,0,0,0,0,0,0,0,0,0,0,0,1,82.5,13.73189,0,,843,843,0,0,0,6.736967,0,3.258096,8.123261,0,0,0,79.31465,8.712623,0,,0 +2,1,100,0,1,126465,0,9542.002,59.37577,1,8,1,77.73852,111.331,0,0,0,189.0695,0,0,0,14,0,1,93.7,26.1,1,,107,0,0,0,0,0,1,0,0,0,0,0,74.02026,9.163564,0,5.242115,1 +2,1,100,0,2,126465,0,9542.002,60.37577,1,8,.4098361,33.42318,51.71429,0,0,0,85.13747,0,0,0,3,1,1,93.7,26.1,1,,107,0,0,0,0,0,1,0,0,0,0,0,74.02026,9.163564,0,4.444267,1 +1,1,0,0,1,126467,0,9542.002,51.60301,0,13,1,59.48174,17.95642,0,0,0,77.43816,0,0,0,7,0,3,52.6,21.7,0,,450,450,0,0,1.098612,6.109248,1,0,0,1,0,0,69.33797,9.163564,1.098612,4.34948,1 +1,1,0,0,2,126467,0,9542.002,52.60301,0,13,1,17.78976,0,0,0,0,17.78976,0,0,0,3,0,3,52.6,21.7,0,,450,450,0,0,1.098612,6.109248,1,0,0,1,0,0,69.33797,9.163564,1.098612,2.878623,1 +1,1,0,0,3,126467,0,9542.002,53.60301,0,13,1,28.13268,0,0,0,0,28.13268,0,0,0,2,0,3,52.6,21.7,0,,450,450,0,0,1.098612,6.109248,1,0,0,1,0,0,69.33797,9.163564,1.098612,3.336932,1 +1,1,0,0,1,126468,0,9542.002,18.52704,1,12,1,30.62426,9.045937,0,0,0,39.6702,0,0,0,1,0,3,42.1,13,0,,450,450,0,0,1.098612,6.109248,1,0,0,1,0,0,72.70441,9.163564,1.098612,3.6806,1 +1,1,0,0,2,126468,0,9542.002,19.52704,1,12,1,40.97035,5.369272,26.41509,0,0,72.75471,0,0,0,3,0,3,42.1,13,0,,450,450,0,0,1.098612,6.109248,1,0,0,1,0,0,72.70441,9.163564,1.098612,4.287094,1 +1,1,0,0,3,126468,0,9542.002,20.52704,1,12,1,42.01474,11.95086,0,0,767.0762,821.0417,1,0,0,2,0,3,42.1,13,0,,450,450,0,0,1.098612,6.109248,1,0,0,1,0,0,72.70441,9.163564,1.098612,6.710574,1 +1,1,0,0,1,126469,0,9542.002,47.10199,1,12,1,89.28151,26.27797,0,0,992.2438,1107.803,1,0,0,8,0,3,51.6,8.7,0,,450,450,0,0,1.098612,6.109248,1,0,0,1,0,0,71.65771,9.163564,1.098612,7.010134,1 +1,1,0,0,2,126469,0,9542.002,48.10199,1,12,1,284.717,61.062,0,0,0,345.779,0,0,0,14,0,3,51.6,8.7,0,,450,450,0,0,1.098612,6.109248,1,0,0,1,0,0,71.65771,9.163564,1.098612,5.8458,1 +1,1,0,0,3,126469,0,9542.002,49.10199,1,12,1,51.30221,44.10811,0,0,0,95.41032,0,0,0,6,0,3,51.6,8.7,0,,450,450,0,0,1.098612,6.109248,1,0,0,1,0,0,71.65771,9.163564,1.098612,4.558187,1 +8,1,50,1,1,126486,0,1728.908,10.76797,0,11,1,0,0,0,0,0,0,0,0,0,0,0,3,74.36826,13.73189,0,,163,450,1,0,1.098612,6.109248,0,3.931826,5.786897,1,0,0,76.10808,7.455823,1.098612,,0 +8,1,50,1,2,126486,0,1728.908,11.76797,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,163,450,1,0,1.386294,6.109248,0,3.931826,5.786897,1,0,0,76.10808,7.455823,1.386294,,0 +8,1,50,1,3,126486,0,1728.908,12.76797,0,11,1,16.35283,0,0,0,0,16.35283,0,0,0,2,0,4,74.36826,13.73189,0,,163,450,1,0,1.386294,6.109248,0,3.931826,5.786897,1,0,0,76.10808,7.455823,1.386294,2.794401,1 +8,1,50,1,4,126486,0,1728.908,13.76797,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,163,450,1,0,1.386294,6.109248,0,3.931826,5.786897,1,0,0,76.10808,7.455823,1.386294,,0 +8,1,50,1,5,126486,0,1728.908,14.76797,0,11,1,41.22844,4.585612,0,0,0,45.81405,0,0,0,5,0,4,74.36826,13.73189,0,,163,450,1,0,1.386294,6.109248,0,3.931826,5.786897,1,0,0,76.10808,7.455823,1.386294,3.824591,1 +8,1,50,1,1,126488,0,1728.908,47.95893,1,11,1,98.15586,20.80904,39.78584,0,0,158.7507,0,0,0,4,1,3,64.2,26.1,0,,163,450,0,0,1.098612,6.109248,0,3.931826,5.786897,1,0,0,67.26075,7.455823,1.098612,5.067335,1 +8,1,50,1,2,126488,0,1728.908,48.95893,1,11,1,0,0,0,0,0,0,0,0,0,0,0,4,64.2,26.1,0,,163,450,0,0,1.386294,6.109248,0,3.931826,5.786897,1,0,0,67.26075,7.455823,1.386294,,0 +8,1,50,1,3,126488,0,1728.908,49.95893,1,11,1,81.26859,19.94053,54.89098,0,0,156.1001,0,0,0,9,1,4,64.2,26.1,0,,163,450,0,0,1.386294,6.109248,0,3.931826,5.786897,1,0,0,67.26075,7.455823,1.386294,5.050498,1 +8,1,50,1,4,126488,0,1728.908,50.95893,1,11,1,19.73382,9.343736,0,0,0,29.07756,0,0,0,2,0,4,64.2,26.1,0,,163,450,0,0,1.386294,6.109248,0,3.931826,5.786897,1,0,0,67.26075,7.455823,1.386294,3.369967,1 +8,1,50,1,5,126488,0,1728.908,51.95893,1,11,1,276.7144,45.35128,47.48002,0,470.8162,840.3618,1,0,0,7,1,4,64.2,26.1,0,,163,450,0,0,1.386294,6.109248,0,3.931826,5.786897,1,0,0,67.26075,7.455823,1.386294,6.733832,1 +8,1,50,1,1,126489,0,1728.908,15.86858,1,11,1,95.18144,36.38311,0,0,25263.65,25395.21,1,0,0,9,0,3,75.8,13,0,,163,450,1,1,1.098612,6.109248,0,3.931826,5.786897,1,0,0,63.92562,7.455823,1.098612,10.14232,1 +8,1,50,1,2,126489,0,1728.908,16.86858,1,11,1,27.21829,27.10942,0,0,0,54.32771,0,0,0,3,0,4,75.8,13,0,,163,450,1,1,1.386294,6.109248,0,3.931826,5.786897,1,0,0,63.92562,7.455823,1.386294,3.995034,1 +8,1,50,1,3,126489,0,1728.908,17.86858,1,11,1,80.94153,38.60258,41.94747,0,0,161.4916,0,0,0,7,2,4,75.8,13,0,,163,450,1,1,1.386294,6.109248,0,3.931826,5.786897,1,0,0,63.92562,7.455823,1.386294,5.084453,1 +8,1,50,1,4,126489,0,1728.908,18.86858,1,11,1,76.8793,25.69527,0,0,0,102.5746,0,0,0,4,0,4,75.8,13,0,,163,450,0,0,1.386294,6.109248,0,3.931826,5.786897,1,0,0,63.92562,7.455823,1.386294,4.63059,1 +8,1,50,1,5,126489,0,1728.908,19.86858,1,11,1,134.8296,25.7257,0,0,223.8199,384.3753,1,0,0,5,1,4,75.8,13,0,,163,450,0,0,1.386294,6.109248,0,3.931826,5.786897,1,0,0,63.92562,7.455823,1.386294,5.951619,1 +7,1,25,1,1,126497,0,5035.244,58.32717,0,8,1,143.735,43.96283,25.94125,0,558.5552,772.1943,1,0,0,10,0,2,65.3,21.7,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,1,0,58.96577,8.524416,.6931472,6.649236,1 +7,1,25,1,2,126497,0,5035.244,59.32717,0,8,1,15.88171,57.19058,30.77218,0,0,103.8445,0,0,0,2,1,2,65.3,21.7,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,1,0,58.96577,8.524416,.6931472,4.642894,1 +7,1,25,1,1,126498,0,5035.244,49.82888,1,8,1,285.8513,28.84892,0,0,0,314.7002,0,0,0,6,0,2,80,8.7,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,1,0,0,63.43494,8.524416,.6931472,5.75162,1 +7,1,25,1,2,126498,0,5035.244,50.82888,1,8,1,17.52464,11.33625,37.48083,0,448.7952,515.1369,1,0,0,2,1,2,80,8.7,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,1,0,0,63.43494,8.524416,.6931472,6.244433,1 +3,1,100,0,1,126516,0,17296.53,33.73032,1,16,1,16.65675,11.08864,0,0,0,27.74539,0,0,0,2,0,5,73.8,13.73189,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,1,0,0,69.55659,9.758319,1.609438,3.32307,1 +3,1,100,0,2,126516,0,17296.53,34.73032,1,16,1,371.8018,30.44638,0,0,0,402.2482,0,0,0,10,0,5,73.8,13.73189,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,1,0,0,69.55659,9.758319,1.609438,5.997069,1 +3,1,100,0,3,126516,0,17296.53,35.73032,1,16,1,10.15857,43.91972,0,0,0,54.0783,0,0,0,1,0,5,73.8,13.73189,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,1,0,0,69.55659,9.758319,1.609438,3.990433,1 +3,1,100,0,1,126517,0,17296.53,9.330595,0,16,1,20.22606,17.93575,0,0,0,38.16181,0,0,0,3,0,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,1,0,0,1,0,0,77.79649,9.758319,1.609438,3.641835,1 +3,1,100,0,2,126517,0,17296.53,10.3306,0,16,1,29.9129,4.599891,0,0,0,34.51279,0,0,0,2,0,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,1,0,0,1,0,0,77.79649,9.758319,1.609438,3.54133,1 +3,1,100,0,3,126517,0,17296.53,11.3306,0,16,1,22.79485,3.657086,0,0,0,26.45193,0,0,0,3,0,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,1,0,0,1,0,0,77.79649,9.758319,1.609438,3.275329,1 +3,1,100,0,1,126518,0,17296.53,10.42026,1,16,1,24.39024,1.754908,0,0,0,26.14515,0,0,0,3,0,5,74.36826,13.73189,0,,1000,1000,1,1,1.609438,6.907755,1,0,0,0,0,0,83.2181,9.758319,1.609438,3.263664,1 +3,1,100,0,2,126518,0,17296.53,11.42026,1,16,1,77.81709,13.05389,0,0,182.5259,273.3969,1,0,0,2,0,5,74.36826,13.73189,0,,1000,1000,1,1,1.609438,6.907755,1,0,0,0,0,0,83.2181,9.758319,1.609438,5.610924,1 +3,1,100,0,3,126518,0,17296.53,12.42026,1,16,1,14.37066,0,0,0,0,14.37066,0,0,0,1,0,5,74.36826,13.73189,0,,1000,1000,1,1,1.609438,6.907755,1,0,0,0,0,0,83.2181,9.758319,1.609438,2.665189,1 +3,1,100,0,1,126519,0,17296.53,34.54894,0,18,1,35.09816,49.55384,0,0,0,84.65199,0,0,0,5,0,5,80,13.73189,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,1,0,0,64.61339,9.758319,1.609438,4.438549,1 +3,1,100,0,2,126519,0,17296.53,35.54894,0,18,1,159.4992,37.40882,0,0,0,196.908,0,0,0,7,0,5,80,13.73189,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,1,0,0,64.61339,9.758319,1.609438,5.282737,1 +3,1,100,0,3,126519,0,17296.53,36.54894,0,18,1,101.5857,55.32706,0,0,0,156.9128,0,0,0,10,0,5,80,13.73189,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,1,0,0,64.61339,9.758319,1.609438,5.05569,1 +3,1,100,0,1,126520,0,17296.53,4.112252,1,16,1,39.26234,15.84176,0,0,0,55.1041,0,0,0,5,0,5,74.36826,13.73189,0,,1000,1000,1,1,1.609438,6.907755,1,0,0,1,0,0,71.73346,9.758319,1.609438,4.009224,1 +3,1,100,0,2,126520,0,17296.53,5.112252,1,16,1,89.82036,26.32553,0,0,0,116.1459,0,0,0,6,0,5,74.36826,13.73189,0,,1000,1000,1,1,1.609438,6.907755,1,0,0,1,0,0,71.73346,9.758319,1.609438,4.754847,1 +3,1,100,0,3,126520,0,17296.53,6.112252,1,16,1,8.919723,16.0555,0,0,0,24.97522,0,0,0,1,0,5,74.36826,13.73189,0,,1000,1000,1,1,1.609438,6.907755,1,0,0,1,0,0,71.73346,9.758319,1.609438,3.217884,1 +8,1,50,0,1,126544,0,13919.98,11.49076,1,12,1,28.85748,2.37338,0,0,0,31.23086,0,0,0,2,0,3,74.36826,13.73189,0,,1000,1000,1,1,1.098612,6.907755,0,3.931826,7.600903,0,0,0,84.23631,9.541152,1.098612,3.441407,1 +8,1,50,0,2,126544,0,13919.98,12.49076,1,12,1,9.703504,0,0,0,0,9.703504,0,0,0,0,1,3,74.36826,13.73189,0,,1000,1000,1,1,1.098612,6.907755,0,3.931826,7.600903,0,0,0,84.23631,9.541152,1.098612,2.272487,1 +8,1,50,0,3,126544,0,13919.98,13.49076,1,12,1,7.371007,1.941032,0,0,0,9.312039,0,0,0,1,0,3,74.36826,13.73189,0,,1000,1000,1,1,1.098612,6.907755,0,3.931826,7.600903,0,0,0,84.23631,9.541152,1.098612,2.231308,1 +8,1,50,0,1,126545,0,13919.98,42.7269,1,12,1,283.5689,45.36514,0,0,0,328.9341,0,0,0,12,0,3,34.7,26.1,1,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,1,0,0,66.0592,9.541152,1.098612,5.795857,1 +8,1,50,0,2,126545,0,13919.98,43.7269,1,12,1,264.469,92.54447,33.66038,0,0,390.6739,0,0,0,17,6,3,34.7,26.1,1,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,1,0,0,66.0592,9.541152,1.098612,5.967873,1 +8,1,50,0,3,126545,0,13919.98,44.7269,1,12,1,0,47.2629,0,0,0,47.2629,0,0,0,0,0,3,34.7,26.1,1,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,1,0,0,66.0592,9.541152,1.098612,3.855726,1 +8,1,50,0,1,126546,0,13919.98,43.47981,0,11,1,191.9906,6.861013,0,0,0,198.8516,0,0,0,2,0,3,74.7,4.3,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,1,0,0,61.27012,9.541152,1.098612,5.292559,1 +8,1,50,0,2,126546,0,13919.98,44.47981,0,11,1,0,8.916442,0,0,0,8.916442,0,0,0,0,0,3,74.7,4.3,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,1,0,0,61.27012,9.541152,1.098612,2.187897,1 +8,1,50,0,3,126546,0,13919.98,45.47981,0,11,1,32.43243,2.584767,53.40541,0,0,88.42261,0,0,0,1,0,3,74.7,4.3,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,1,0,0,61.27012,9.541152,1.098612,4.482128,1 +3,1,100,1,1,126553,0,11575.06,3.471595,1,14,1,7.237636,0,0,0,0,7.237636,0,0,0,1,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,1,0,0,1,0,0,74.41945,9.356694,1.386294,1.979295,1 +3,1,100,1,2,126553,0,11575.06,4.471595,1,14,1,18.72247,0,0,0,0,18.72247,0,0,0,2,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,1,0,0,1,0,0,74.41945,9.356694,1.386294,2.929724,1 +3,1,100,1,3,126553,0,11575.06,5.471595,1,14,1,39.02562,2.556504,0,0,0,41.58212,0,0,0,3,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,1,0,0,1,0,0,74.41945,9.356694,1.386294,3.72767,1 +3,1,100,1,4,126553,0,11575.06,6.471595,1,14,1,12.05378,0,0,0,0,12.05378,0,0,0,0,1,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,1,0,0,1,0,0,74.41945,9.356694,1.386294,2.489378,1 +3,1,100,1,5,126553,0,11575.06,7.471595,1,14,1,16.58869,0,0,0,0,16.58869,0,0,0,1,1,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,1,0,0,1,0,0,74.41945,9.356694,1.386294,2.808721,1 +3,1,100,1,1,126554,0,11575.06,32.55578,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,77.9,17.4,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,71.67448,9.356694,1.386294,,0 +3,1,100,1,2,126554,0,11575.06,33.55578,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,77.9,17.4,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,71.67448,9.356694,1.386294,,0 +3,1,100,1,3,126554,0,11575.06,34.55578,0,16,1,12.05424,0,14.1336,0,0,26.18785,0,0,0,0,1,4,77.9,17.4,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,71.67448,9.356694,1.386294,3.265295,1 +3,1,100,1,4,126554,0,11575.06,35.55578,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,77.9,17.4,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,71.67448,9.356694,1.386294,,0 +3,1,100,1,5,126554,0,11575.06,36.55578,0,16,1,11.90983,0,0,0,0,11.90983,0,0,0,0,1,4,77.9,17.4,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,71.67448,9.356694,1.386294,2.477364,1 +3,1,100,1,1,126555,0,11575.06,6.401095,1,14,1,9.650181,8.27503,0,0,0,17.92521,0,0,0,1,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,1,0,0,1,0,0,77.85107,9.356694,1.386294,2.886208,1 +3,1,100,1,2,126555,0,11575.06,7.401095,1,14,1,0,7.621145,0,0,0,7.621145,0,0,0,0,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,1,0,0,1,0,0,77.85107,9.356694,1.386294,2.030927,1 +3,1,100,1,3,126555,0,11575.06,8.401095,1,14,1,15.57007,4.650929,0,0,0,20.22099,0,0,0,1,1,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,1,0,0,1,0,0,77.85107,9.356694,1.386294,3.006721,1 +3,1,100,1,4,126555,0,11575.06,9.401095,1,14,1,12.05378,2.545202,20.34771,0,0,34.94669,0,0,0,0,1,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,1,0,0,1,0,0,77.85107,9.356694,1.386294,3.553824,1 +3,1,100,1,5,126555,0,11575.06,10.4011,1,14,1,16.58869,0,12.44577,0,0,29.03445,0,0,0,1,1,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,1,0,0,1,0,0,77.85107,9.356694,1.386294,3.368483,1 +3,1,100,1,1,126556,0,11575.06,31.86311,1,14,1,28.34741,0,25.84439,0,0,54.1918,0,0,0,2,1,4,86.3,13,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,72.42058,9.356694,1.386294,3.99253,1 +3,1,100,1,2,126556,0,11575.06,32.86311,1,14,1,0,0,0,0,0,0,0,0,0,0,0,4,86.3,13,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,72.42058,9.356694,1.386294,,0 +3,1,100,1,3,126556,0,11575.06,33.86311,1,14,1,10.54746,0,0,0,0,10.54746,0,0,0,1,0,4,86.3,13,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,72.42058,9.356694,1.386294,2.355886,1 +3,1,100,1,4,126556,0,11575.06,34.86311,1,14,1,23.64395,1.687529,0,0,0,25.33148,0,0,0,1,1,4,86.3,13,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,72.42058,9.356694,1.386294,3.232048,1 +3,1,100,1,5,126556,0,11575.06,35.86311,1,14,1,11.48448,0,0,0,0,11.48448,0,0,0,1,0,4,86.3,13,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,72.42058,9.356694,1.386294,2.440996,1 +4,1,100,1,1,126566,0,8857.32,37.21561,0,13,1,80.33573,134.2626,0,0,0,214.5983,0,0,0,4,0,5,93.7,8.7,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,1,0,0,72.11638,9.089112,1.609438,5.368768,1 +4,1,100,1,2,126566,0,8857.32,38.21561,0,13,1,108.4337,120.2026,22.32202,0,0,250.9584,0,0,0,3,0,5,93.7,8.7,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,1,0,0,72.11638,9.089112,1.609438,5.525287,1 +4,1,100,1,3,126566,0,8857.32,39.21561,0,13,1,9.476309,0,0,0,0,9.476309,0,0,0,1,0,6,93.7,8.7,0,,1000,1000,0,0,1.791759,6.907755,1,0,0,1,0,0,72.11638,9.089112,1.791759,2.248795,1 +4,1,100,1,4,126566,0,8857.32,40.21561,0,13,1,9.22084,4.601199,0,0,0,13.82204,0,0,0,1,0,6,93.7,8.7,0,,1000,1000,0,0,1.791759,6.907755,1,0,0,1,0,0,72.11638,9.089112,1.791759,2.626264,1 +4,1,100,1,5,126566,0,8857.32,41.21561,0,13,1,.5289886,2.391028,0,0,0,2.920017,0,0,0,0,0,6,93.7,8.7,0,,1000,1000,0,0,1.791759,6.907755,1,0,0,1,0,0,72.11638,9.089112,1.791759,1.071589,1 +4,1,100,1,1,126567,0,8857.32,14.45311,0,12,1,29.3765,0,0,0,0,29.3765,0,0,0,0,0,5,95.8,0,0,,1000,1000,1,0,1.609438,6.907755,1,0,0,0,0,0,79.27259,9.089112,1.609438,3.380195,1 +4,1,100,1,2,126567,0,8857.32,15.45311,0,12,1,0,4.359255,0,0,0,4.359255,0,0,0,0,0,5,95.8,0,0,,1000,1000,1,0,1.609438,6.907755,1,0,0,0,0,0,79.27259,9.089112,1.609438,1.472301,1 +4,1,100,1,3,126567,0,8857.32,16.45311,0,12,1,26.18454,6.528678,0,0,0,32.71322,0,0,0,3,0,6,95.8,0,0,,1000,1000,1,0,1.791759,6.907755,1,0,0,0,0,0,79.27259,9.089112,1.791759,3.487779,1 +4,1,100,1,4,126567,0,8857.32,17.45311,0,12,1,23.0521,0,0,0,0,23.0521,0,0,0,2,0,6,95.8,0,0,,1000,1000,1,0,1.791759,6.907755,1,0,0,0,0,0,79.27259,9.089112,1.791759,3.137757,1 +4,1,100,1,5,126567,0,8857.32,18.45311,0,12,1,8.463818,0,0,0,0,8.463818,0,0,0,1,0,6,95.8,0,0,,1000,1000,0,0,1.791759,6.907755,1,0,0,0,0,0,79.27259,9.089112,1.791759,2.1358,1 +4,1,100,1,1,126568,0,8857.32,13.40178,1,12,1,14.98801,3.52518,0,0,0,18.51319,0,0,0,1,0,5,74.36826,13.73189,.0277778,,1000,1000,1,1,1.609438,6.907755,1,0,0,1,0,0,77.07726,9.089112,1.609438,2.918483,1 +4,1,100,1,2,126568,0,8857.32,14.40178,1,12,1,6.024096,4.813801,16.59912,0,0,27.43702,0,0,0,1,0,5,74.36826,13.73189,.0277778,,1000,1000,1,1,1.609438,6.907755,1,0,0,1,0,0,77.07726,9.089112,1.609438,3.311893,1 +4,1,100,1,3,126568,0,8857.32,15.40178,1,12,1,17.45636,2.024938,0,0,0,19.4813,0,0,0,2,0,6,74.36826,13.73189,.0277778,,1000,1000,1,1,1.791759,6.907755,1,0,0,1,0,0,77.07726,9.089112,1.791759,2.969455,1 +4,1,100,1,4,126568,0,8857.32,16.40178,1,12,1,0,3.720608,0,0,0,3.720608,0,0,0,0,0,6,74.36826,13.73189,.0277778,,1000,1000,1,1,1.791759,6.907755,1,0,0,1,0,0,77.07726,9.089112,1.791759,1.313887,1 +4,1,100,1,5,126568,0,8857.32,17.40178,1,12,1,74.1642,3.643673,28.67964,0,0,106.4875,0,0,0,2,1,6,74.36826,13.73189,.0277778,,1000,1000,1,1,1.791759,6.907755,1,0,0,1,0,0,77.07726,9.089112,1.791759,4.668028,1 +4,1,100,1,1,126569,0,8857.32,6.075291,1,12,1,4.196643,12.58993,0,0,0,16.78657,0,0,0,0,0,5,74.36826,13.73189,0,,1000,1000,1,1,1.609438,6.907755,1,0,0,0,0,0,83.01283,9.089112,1.609438,2.820579,1 +4,1,100,1,2,126569,0,8857.32,7.075291,1,12,1,16.977,11.17196,0,0,0,28.14896,0,0,0,1,1,5,74.36826,13.73189,0,,1000,1000,1,1,1.609438,6.907755,1,0,0,0,0,0,83.01283,9.089112,1.609438,3.33751,1 +4,1,100,1,3,126569,0,8857.32,8.075291,1,12,1,0,3.690773,0,0,0,3.690773,0,0,0,0,0,6,74.36826,13.73189,0,,1000,1000,1,1,1.791759,6.907755,1,0,0,0,0,0,83.01283,9.089112,1.791759,1.305836,1 +4,1,100,1,4,126569,0,8857.32,9.075291,1,12,1,29.50669,6.325496,0,0,0,35.83218,0,0,0,1,3,6,74.36826,13.73189,0,,1000,1000,1,1,1.791759,6.907755,1,0,0,0,0,0,83.01283,9.089112,1.791759,3.578846,1 +4,1,100,1,5,126569,0,8857.32,10.07529,1,12,1,17.45662,1.447313,0,0,0,18.90394,0,0,0,0,3,6,74.36826,13.73189,0,,1000,1000,1,1,1.791759,6.907755,1,0,0,0,0,0,83.01283,9.089112,1.791759,2.93937,1 +4,1,100,1,1,126570,0,8857.32,32.82683,1,12,1,40.76739,2.392086,0,0,0,43.15947,0,0,0,2,0,5,88.4,8.7,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,1,0,0,66.55627,9.089112,1.609438,3.764902,1 +4,1,100,1,2,126570,0,8857.32,33.82683,1,12,1,60.24096,11.12815,0,0,1100.181,1171.55,1,0,0,6,0,5,88.4,8.7,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,1,0,0,66.55627,9.089112,1.609438,7.066083,1 +4,1,100,1,3,126570,0,8857.32,34.82683,1,12,1,2.992519,2.109726,0,0,0,5.102244,0,0,0,0,0,6,88.4,8.7,0,,1000,1000,0,0,1.791759,6.907755,1,0,0,1,0,0,66.55627,9.089112,1.791759,1.629681,1 +4,1,100,1,4,126570,0,8857.32,35.82683,1,12,1,62.24067,0,0,0,0,62.24067,0,0,0,1,1,6,88.4,8.7,0,,1000,1000,0,0,1.791759,6.907755,1,0,0,1,0,0,66.55627,9.089112,1.791759,4.131009,1 +4,1,100,1,5,126570,0,8857.32,36.82683,1,12,1,18.30301,2.835379,0,0,0,21.13838,0,0,0,1,0,6,88.4,8.7,0,,1000,1000,0,0,1.791759,6.907755,1,0,0,1,0,0,66.55627,9.089112,1.791759,3.05109,1 +9,1,50,1,1,126596,0,14330.02,35.03354,1,20,1,106.0071,42.30271,0,0,696.6019,844.9117,1,0,0,12,0,4,67.4,21.7,1,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,1,0,0,64.92197,9.570182,1.386294,6.739232,1 +9,1,50,1,2,126596,0,14330.02,36.03354,1,20,1,100.2695,26.14016,8.625337,0,1220.782,1355.817,1,0,0,9,0,4,67.4,21.7,1,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,1,0,0,64.92197,9.570182,1.386294,7.212159,1 +9,1,50,1,3,126596,0,14330.02,37.03354,1,20,1,83.53809,47.91155,0,0,0,131.4496,0,0,0,7,0,4,67.4,21.7,1,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,1,0,0,64.92197,9.570182,1.386294,4.878624,1 +9,1,50,1,1,126597,0,14330.02,42.59822,0,24,1,21.20141,5.683156,49.85277,0,0,76.73734,0,0,0,3,0,4,68.4,13,1,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,68.74699,9.570182,1.386294,4.340388,1 +9,1,50,1,2,126597,0,14330.02,43.59822,0,24,1,1.617251,2.754717,0,0,0,4.371968,0,0,0,2,0,4,68.4,13,1,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,68.74699,9.570182,1.386294,1.475213,1 +9,1,50,1,3,126597,0,14330.02,44.59822,0,24,1,26.53563,4.127764,48.27027,0,0,78.93366,0,0,0,3,0,4,68.4,13,1,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,68.74699,9.570182,1.386294,4.368608,1 +9,1,50,1,1,126598,0,14330.02,2.023272,0,20,1,55.35925,13.26266,4.711425,0,0,73.33334,0,0,0,10,1,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,1,0,0,66.69353,9.570182,1.386294,4.295015,1 +9,1,50,1,2,126598,0,14330.02,3.023272,0,20,1,51.21294,1.644205,0,0,0,52.85714,0,0,1,7,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,1,0,0,66.69353,9.570182,1.386294,3.967593,1 +9,1,50,1,3,126598,0,14330.02,4.023272,0,20,1,24.57002,11.46929,0,0,0,36.03931,0,0,0,5,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,1,0,0,66.69353,9.570182,1.386294,3.58461,1 +9,1,50,1,1,126599,0,14330.02,4.607803,0,20,1,324.7644,8.386337,0,0,0,333.1508,0,0,0,5,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,1,0,0,66.69353,9.570182,1.386294,5.808595,1 +9,1,50,1,2,126599,0,14330.02,5.607803,0,20,1,24.25876,4.684636,0,0,0,28.9434,0,0,0,5,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,1,0,0,66.69353,9.570182,1.386294,3.365342,1 +9,1,50,1,3,126599,0,14330.02,6.607803,0,20,1,15.23342,10.93366,0,0,0,26.16708,0,0,0,3,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,1,0,0,66.69353,9.570182,1.386294,3.264502,1 +2,1,100,0,1,126609,0,9542.002,41.79603,1,12,1,45.34747,11.702,0,0,0,57.04947,0,0,0,4,0,4,90.5,8.7,0,,0,0,0,0,1.386294,0,1,0,0,1,0,0,72.1002,9.163564,1.386294,4.043919,1 +2,1,100,0,2,126609,0,9542.002,42.79603,1,12,1,89.75742,4.911051,0,0,0,94.66846,0,0,0,3,0,4,90.5,8.7,0,,0,0,0,0,1.386294,0,1,0,0,1,0,0,72.1002,9.163564,1.386294,4.550381,1 +2,1,100,0,3,126609,0,9542.002,43.79603,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,90.5,8.7,0,,0,0,0,0,1.386294,0,1,0,0,1,0,0,72.1002,9.163564,1.386294,,0 +2,1,100,0,4,126609,0,9542.002,44.79603,1,12,1,13.67366,2.962625,0,0,0,16.63628,0,0,0,1,0,4,90.5,8.7,0,,0,0,0,0,1.386294,0,1,0,0,1,0,0,72.1002,9.163564,1.386294,2.811586,1 +2,1,100,0,5,126609,0,9542.002,45.79603,1,12,1,38.76615,0,0,0,0,38.76615,0,0,0,1,0,4,90.5,8.7,0,,0,0,0,0,1.386294,0,1,0,0,1,0,0,72.1002,9.163564,1.386294,3.657547,1 +2,1,100,0,1,126610,0,9542.002,14.57632,0,12,1,5.889281,0,0,0,0,5.889281,0,0,0,1,0,4,73.7,4.3,0,,0,0,1,0,1.386294,0,1,0,0,1,0,0,74.08881,9.163564,1.386294,1.773134,1 +2,1,100,0,2,126610,0,9542.002,15.57632,0,12,1,13.47709,0,0,0,0,13.47709,0,0,0,1,0,4,73.7,4.3,0,,0,0,1,0,1.386294,0,1,0,0,1,0,0,74.08881,9.163564,1.386294,2.600991,1 +2,1,100,0,3,126610,0,9542.002,16.57632,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,73.7,4.3,0,,0,0,1,0,1.386294,0,1,0,0,1,0,0,74.08881,9.163564,1.386294,,0 +2,1,100,0,4,126610,0,9542.002,17.57632,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,73.7,4.3,0,,0,0,1,0,1.386294,0,1,0,0,1,0,0,74.08881,9.163564,1.386294,,0 +2,1,100,0,5,126610,0,9542.002,18.57632,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,73.7,4.3,0,,0,0,0,0,1.386294,0,1,0,0,1,0,0,74.08881,9.163564,1.386294,,0 +2,1,100,0,1,126611,0,9542.002,8.405202,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,0,0,1,1,1.386294,0,1,0,0,1,0,0,79.46868,9.163564,1.386294,,0 +2,1,100,0,2,126611,0,9542.002,9.405202,1,12,1,4.851752,3.28841,0,0,0,8.140162,0,0,0,1,0,4,74.36826,13.73189,0,,0,0,1,1,1.386294,0,1,0,0,1,0,0,79.46868,9.163564,1.386294,2.09681,1 +2,1,100,0,3,126611,0,9542.002,10.4052,1,12,1,118.6732,23.14496,0,0,0,141.8182,0,0,0,8,0,4,74.36826,13.73189,0,,0,0,1,1,1.386294,0,1,0,0,1,0,0,79.46868,9.163564,1.386294,4.954546,1 +2,1,100,0,4,126611,0,9542.002,11.4052,1,12,1,34.43482,15.10939,0,0,0,49.54421,0,0,0,3,0,4,74.36826,13.73189,0,,0,0,1,1,1.386294,0,1,0,0,1,0,0,79.46868,9.163564,1.386294,3.902865,1 +2,1,100,0,5,126611,0,9542.002,12.4052,1,12,1,22.50938,21.21717,0,0,0,43.72655,0,0,0,2,0,4,74.36826,13.73189,0,,0,0,1,1,1.386294,0,1,0,0,1,0,0,79.46868,9.163564,1.386294,3.777956,1 +2,1,100,0,1,126612,0,9542.002,19.47433,1,13,1,48.29211,40.22968,21.49588,0,0,110.0177,0,0,0,7,0,1,78.9,17.4,0,,0,0,0,0,0,0,1,0,0,1,0,0,74.33247,9.163564,0,4.700641,1 +2,1,100,0,2,126612,0,9542.002,20.47433,1,13,1,44.20485,29.82749,0,0,0,74.03235,0,0,0,5,0,1,78.9,17.4,0,,0,0,0,0,0,0,1,0,0,1,0,0,74.33247,9.163564,0,4.304502,1 +2,1,100,0,3,126612,0,9542.002,21.47433,1,13,1,45.70024,17.79852,0,0,0,63.49877,0,0,0,4,0,1,78.9,17.4,0,,0,0,0,0,0,0,1,0,0,1,0,0,74.33247,9.163564,0,4.151021,1 +2,1,100,0,4,126612,0,9542.002,22.47433,1,13,1,34.27985,5.556062,0,0,0,39.83591,0,0,0,2,0,1,78.9,17.4,0,,0,0,0,0,0,0,1,0,0,1,0,0,74.33247,9.163564,0,3.684769,1 +2,1,100,0,5,126612,0,9542.002,23.47433,1,13,1,33.34723,8.724468,0,0,0,42.0717,0,0,0,4,0,1,78.9,17.4,0,,0,0,0,0,0,0,1,0,0,1,0,0,74.33247,9.163564,0,3.739375,1 +2,1,100,0,1,126613,0,9542.002,42.00411,0,12,1,24.44052,8.763251,37.27915,0,0,70.48292,0,0,0,1,0,4,77.9,13,0,,0,0,0,0,1.386294,0,1,0,0,0,1,0,66.69038,9.163564,1.386294,4.255371,1 +2,1,100,0,2,126613,0,9542.002,43.00411,0,12,1,379.2668,48.46361,0,0,0,427.7305,0,0,0,6,0,4,77.9,13,0,,0,0,0,0,1.386294,0,1,0,0,0,1,0,66.69038,9.163564,1.386294,6.058493,1 +2,1,100,0,3,126613,0,9542.002,44.00411,0,12,1,15.47912,16.09337,0,0,0,31.57248,0,0,0,2,0,4,77.9,13,0,,0,0,0,0,1.386294,0,1,0,0,0,1,0,66.69038,9.163564,1.386294,3.452286,1 +2,1,100,0,4,126613,0,9542.002,45.00411,0,12,1,29.62625,24.09754,37.09207,0,0,90.81586,0,0,0,4,0,4,77.9,13,0,,0,0,0,0,1.386294,0,1,0,0,0,1,0,66.69038,9.163564,1.386294,4.508834,1 +2,1,100,0,5,126613,0,9542.002,46.00411,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,77.9,13,0,,0,0,0,0,1.386294,0,1,0,0,0,1,0,66.69038,9.163564,1.386294,,0 +1,1,0,0,1,126635,0,9092.432,1.092402,0,19,1,47.59072,9.970256,0,0,0,57.56097,0,0,0,8,0,4,74.36826,13.73189,0,,450,450,1,0,1.386294,6.109248,1,0,0,0,0,0,79.71203,9.115308,1.386294,4.052845,1 +1,1,0,0,2,126635,0,9092.432,2.092402,0,19,1,31.8454,3.712575,0,0,0,35.55798,0,0,0,4,0,4,74.36826,13.73189,0,,450,450,1,0,1.386294,6.109248,1,0,0,0,0,0,79.71203,9.115308,1.386294,3.571164,1 +1,1,0,0,3,126635,0,9092.432,3.092402,0,19,1,66.15461,10.53023,18.58276,0,0,95.26759,0,0,0,6,0,4,74.36826,13.73189,0,,450,450,1,0,1.386294,6.109248,1,0,0,0,0,0,79.71203,9.115308,1.386294,4.55669,1 +1,1,0,0,4,126635,0,9092.432,4.092402,0,19,1,33.73107,5.043598,0,0,0,38.77467,0,0,0,4,0,4,74.36826,13.73189,0,,450,450,1,0,1.386294,6.109248,1,0,0,0,0,0,79.71203,9.115308,1.386294,3.657767,1 +1,1,0,0,5,126635,0,9092.432,5.092402,0,19,1,40.80774,7.942785,28.18679,0,0,76.93732,0,0,0,3,0,4,74.36826,13.73189,0,,450,450,1,0,1.386294,6.109248,1,0,0,0,0,0,79.71203,9.115308,1.386294,4.342991,1 +1,1,0,0,1,126636,0,9092.432,3.92334,1,19,1,27.36466,5.591909,0,0,0,32.95657,0,0,0,4,0,4,74.36826,13.73189,0,,450,450,1,1,1.386294,6.109248,1,0,0,0,0,0,79.19805,9.115308,1.386294,3.495191,1 +1,1,0,0,2,126636,0,9092.432,4.92334,1,19,1,31.02885,5.035384,0,0,0,36.06424,0,0,0,3,0,4,74.36826,13.73189,0,,450,450,1,1,1.386294,6.109248,1,0,0,0,0,0,79.19805,9.115308,1.386294,3.585302,1 +1,1,0,0,3,126636,0,9092.432,5.92334,1,19,1,84.14272,0,0,0,0,84.14272,0,0,0,2,1,4,74.36826,13.73189,0,,450,450,1,1,1.386294,6.109248,1,0,0,0,0,0,79.19805,9.115308,1.386294,4.432514,1 +1,1,0,0,4,126636,0,9092.432,6.92334,1,19,1,19.04543,10.11014,0,0,0,29.15558,0,0,0,3,0,4,74.36826,13.73189,0,,450,450,1,1,1.386294,6.109248,1,0,0,0,0,0,79.19805,9.115308,1.386294,3.372646,1 +1,1,0,0,5,126636,0,9092.432,7.92334,1,19,1,66.91628,14.11022,0,0,0,81.0265,0,0,0,3,0,4,74.36826,13.73189,0,,450,450,1,1,1.386294,6.109248,1,0,0,0,0,0,79.19805,9.115308,1.386294,4.394776,1 +1,1,0,0,1,126637,0,9092.432,32.19439,0,19,1,14.8721,0,35.12195,0,0,49.99405,0,0,0,1,0,4,57.5,13.73189,0,,450,450,0,0,1.386294,6.109248,1,0,0,1,0,0,68.50468,9.115308,1.386294,3.911904,1 +1,1,0,0,2,126637,0,9092.432,33.19439,0,19,1,0,0,0,0,0,0,0,0,0,0,0,4,57.5,13.73189,0,,450,450,0,0,1.386294,6.109248,1,0,0,1,0,0,68.50468,9.115308,1.386294,,0 +1,1,0,0,3,126637,0,9092.432,34.19439,0,19,1,51.53617,2.685827,25.76809,0,0,79.99009,0,0,0,4,0,4,57.5,13.73189,0,,450,450,0,0,1.386294,6.109248,1,0,0,1,0,0,68.50468,9.115308,1.386294,4.381903,1 +1,1,0,0,4,126637,0,9092.432,35.19439,0,19,1,116.5672,6.094539,0,0,0,122.6618,0,0,0,3,0,4,57.5,13.73189,0,,450,450,0,0,1.386294,6.109248,1,0,0,1,0,0,68.50468,9.115308,1.386294,4.809431,1 +1,1,0,0,5,126637,0,9092.432,36.19439,0,19,1,3.365587,0,0,0,0,3.365587,0,0,0,0,0,4,57.5,13.73189,0,,450,450,0,0,1.386294,6.109248,1,0,0,1,0,0,68.50468,9.115308,1.386294,1.213602,1 +1,1,0,0,1,126638,0,9092.432,30.88022,1,19,1,33.3135,27.72159,27.35277,0,0,88.38786,0,0,0,3,0,4,62.5,13.73189,0,,450,450,0,0,1.386294,6.109248,1,0,0,1,0,0,67.19316,9.115308,1.386294,4.481735,1 +1,1,0,0,2,126638,0,9092.432,31.88022,1,19,1,26.12956,11.24115,0,0,0,37.37071,0,0,0,2,0,4,62.5,13.73189,0,,450,450,0,0,1.386294,6.109248,1,0,0,1,0,0,67.19316,9.115308,1.386294,3.620887,1 +1,1,0,0,3,126638,0,9092.432,32.88022,1,19,1,14.8662,9.781962,0,0,0,24.64817,0,0,0,1,0,4,62.5,13.73189,0,,450,450,0,0,1.386294,6.109248,1,0,0,1,0,0,67.19316,9.115308,1.386294,3.204703,1 +1,1,0,0,4,126638,0,9092.432,33.88022,1,19,1,48.64617,2.505737,0,0,0,51.15191,0,0,0,2,0,4,62.5,13.73189,0,,450,450,0,0,1.386294,6.109248,1,0,0,1,0,0,67.19316,9.115308,1.386294,3.9348,1 +1,1,0,0,5,126638,0,9092.432,34.88022,1,19,1,24.8212,0,0,0,0,24.8212,0,0,0,2,0,4,62.5,13.73189,0,,450,450,0,0,1.386294,6.109248,1,0,0,1,0,0,67.19316,9.115308,1.386294,3.211698,1 +6,1,25,0,1,126650,0,9743.176,32.97467,0,14,1,0,2.338045,0,0,0,2.338045,0,0,0,0,0,4,91.3,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,78.79201,9.184425,1.386294,.8493149,1 +6,1,25,0,2,126650,0,9743.176,33.97467,0,14,1,43.66577,6.080863,0,0,0,49.74663,0,0,0,2,0,4,91.3,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,78.79201,9.184425,1.386294,3.906943,1 +6,1,25,0,3,126650,0,9743.176,34.97467,0,14,1,7.371007,7.208845,0,0,0,14.57985,0,0,0,1,0,5,91.3,13.73189,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,78.79201,9.184425,1.609438,2.679641,1 +6,1,25,0,1,126651,0,9743.176,6.130048,0,12,1,50.79505,3.274441,0,0,0,54.06949,0,0,0,4,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,85.04264,9.184425,1.386294,3.99027,1 +6,1,25,0,2,126651,0,9743.176,7.130048,0,12,1,18.86792,8.722372,0,0,0,27.5903,0,0,0,2,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,85.04264,9.184425,1.386294,3.317464,1 +6,1,25,0,3,126651,0,9743.176,8.130048,0,12,1,64.37347,9.7543,0,0,0,74.12776,0,0,0,3,1,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,85.04264,9.184425,1.609438,4.30579,1 +6,1,25,0,1,126652,0,9743.176,31.21424,1,12,1,80.09423,51.60188,0,0,0,131.6961,0,0,0,9,0,4,86.3,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,1,0,56.3639,9.184425,1.386294,4.880497,1 +6,1,25,0,2,126652,0,9743.176,32.21424,1,12,1,124.5283,109.504,35.76819,0,4801.725,5071.525,1,0,0,11,0,4,86.3,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,1,0,56.3639,9.184425,1.386294,8.531397,1 +6,1,25,0,3,126652,0,9743.176,33.21424,1,12,1,6.633907,58.45209,0,0,0,65.086,0,0,0,1,0,5,86.3,13.73189,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,1,0,56.3639,9.184425,1.609438,4.175709,1 +6,1,25,0,1,126653,0,9743.176,8.919918,0,12,1,130.7421,58.75147,0,0,0,189.4935,0,0,0,7,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,73.90643,9.184425,1.386294,5.244355,1 +6,1,25,0,2,126653,0,9743.176,9.919918,0,12,1,90.29649,40.14016,26.95418,0,0,157.3908,0,0,0,31,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,73.90643,9.184425,1.386294,5.058732,1 +6,1,25,0,3,126653,0,9743.176,10.91992,0,12,1,7.371007,18.92875,0,0,0,26.29976,0,0,0,1,0,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,73.90643,9.184425,1.609438,3.26956,1 +11,1,0,1,1,126665,0,5583.747,3.039014,0,11,1,51.56815,9.408926,0,0,255.5609,316.538,1,0,0,5,1,5,74.36826,13.73189,0,,0,458,1,0,1.609438,6.126869,0,0,0,0,0,0,79.08629,8.627794,1.609438,5.757443,1 +11,1,0,1,2,126665,0,5583.747,4.039014,0,11,1,62.67621,0,0,0,0,62.67621,0,0,0,3,0,6,74.36826,13.73189,0,,0,458,1,0,1.791759,6.126869,0,0,0,0,0,0,79.08629,8.627794,1.791759,4.137982,1 +11,1,0,1,3,126665,0,5583.747,5.039014,0,11,1,47.21246,14.21396,0,0,0,61.42642,0,0,0,6,0,6,74.36826,13.73189,0,,0,458,1,0,1.791759,6.126869,0,0,0,0,0,0,79.08629,8.627794,1.791759,4.11784,1 +11,1,0,1,4,126665,0,5583.747,6.039014,0,11,1,25.96198,5.656003,0,0,0,31.61799,0,0,0,4,0,6,74.36826,13.73189,0,,0,458,1,0,1.791759,6.126869,0,0,0,0,0,0,79.08629,8.627794,1.791759,3.453726,1 +11,1,0,1,5,126665,0,5583.747,7.039014,0,11,1,13.61123,2.105487,20.44662,0,0,36.16333,0,0,0,1,1,6,74.36826,13.73189,0,,0,458,1,0,1.791759,6.126869,0,0,0,0,0,0,79.08629,8.627794,1.791759,3.588046,1 +11,1,0,1,1,126666,0,5583.747,22.5243,1,11,1,15.68154,12.14113,0,0,1307.382,1335.205,1,0,0,3,0,5,96.8,8.7,0,,0,458,0,0,1.609438,6.126869,0,0,0,0,0,0,75.68143,8.627794,1.609438,7.19684,1 +11,1,0,1,2,126666,0,5583.747,23.5243,1,11,1,237.5991,13.05066,0,0,0,250.6498,0,0,0,9,0,6,96.8,8.7,0,,0,458,0,0,1.791759,6.126869,0,0,0,0,0,0,75.68143,8.627794,1.791759,5.524056,1 +11,1,0,1,3,126666,0,5583.747,24.5243,1,11,1,47.40332,1.808137,0,0,1024.405,1073.616,1,0,0,1,0,6,96.8,8.7,0,,0,458,0,0,1.791759,6.126869,0,0,0,0,0,0,75.68143,8.627794,1.791759,6.978788,1 +11,1,0,1,4,126666,0,5583.747,25.5243,1,11,1,25.49838,10.75568,0,0,0,36.25406,0,0,0,4,0,6,96.8,8.7,0,,0,458,0,0,1.791759,6.126869,0,0,0,0,0,0,75.68143,8.627794,1.791759,3.590551,1 +11,1,0,1,5,126666,0,5583.747,26.5243,1,11,1,5.104211,9.506593,0,0,0,14.6108,0,0,0,1,0,6,96.8,8.7,0,,0,458,0,0,1.791759,6.126869,0,0,0,0,0,0,75.68143,8.627794,1.791759,2.681761,1 +11,1,0,1,1,126667,0,5583.747,23.90144,0,11,1,1.809409,5.458384,0,0,0,7.267793,0,0,0,1,0,5,93.7,0,0,,0,458,0,0,1.609438,6.126869,0,0,0,0,0,0,74.79025,8.627794,1.609438,1.983453,1 +11,1,0,1,2,126667,0,5583.747,24.90144,0,11,1,23.95374,7.075991,0,0,0,31.02974,0,0,0,3,0,6,93.7,0,0,,0,458,0,0,1.791759,6.126869,0,0,0,0,0,0,74.79025,8.627794,1.791759,3.434946,1 +11,1,0,1,3,126667,0,5583.747,25.90144,0,11,1,0,0,0,0,0,0,0,0,0,0,0,6,93.7,0,0,,0,458,0,0,1.791759,6.126869,0,0,0,0,0,0,74.79025,8.627794,1.791759,,0 +11,1,0,1,4,126667,0,5583.747,26.90144,0,11,1,10.19935,1.34446,0,0,0,11.54381,0,0,0,2,0,6,93.7,0,0,,0,458,0,0,1.791759,6.126869,0,0,0,0,0,0,74.79025,8.627794,1.791759,2.446149,1 +11,1,0,1,5,126667,0,5583.747,27.90144,0,11,1,7.230966,5.338154,0,0,0,12.56912,0,0,0,1,0,6,93.7,0,0,,0,458,0,0,1.791759,6.126869,0,0,0,0,0,0,74.79025,8.627794,1.791759,2.531243,1 +11,1,0,1,1,126668,0,5583.747,1.954826,1,11,1,24.12545,11.78528,0,0,0,35.91074,0,0,0,3,0,5,74.36826,13.73189,0,,0,458,1,1,1.609438,6.126869,0,0,0,0,0,0,78.57231,8.627794,1.609438,3.581036,1 +11,1,0,1,2,126668,0,5583.747,2.954825,1,11,1,29.29515,14.17952,0,0,0,43.47467,0,0,0,5,0,6,74.36826,13.73189,0,,0,458,1,1,1.791759,6.126869,0,0,0,0,0,0,78.57231,8.627794,1.791759,3.772178,1 +11,1,0,1,3,126668,0,5583.747,3.954825,1,11,1,42.69212,10.29633,0,0,0,52.98845,0,0,0,7,0,6,74.36826,13.73189,0,,0,458,1,1,1.791759,6.126869,0,0,0,0,0,0,78.57231,8.627794,1.791759,3.970074,1 +11,1,0,1,4,126668,0,5583.747,4.954825,1,11,1,15.76263,0,0,0,0,15.76263,0,0,0,3,0,6,74.36826,13.73189,0,,0,458,1,1,1.791759,6.126869,0,0,0,0,0,0,78.57231,8.627794,1.791759,2.757642,1 +11,1,0,1,5,126668,0,5583.747,5.954825,1,11,1,0,0,0,0,0,0,0,0,0,0,0,6,74.36826,13.73189,0,,0,458,1,1,1.791759,6.126869,0,0,0,0,0,0,78.57231,8.627794,1.791759,,0 +11,1,0,1,1,126669,0,5583.747,4.911705,0,11,1,6.6345,2.110977,0,0,0,8.745477,0,0,0,1,0,5,74.36826,13.73189,0,,0,458,1,0,1.609438,6.126869,0,0,0,0,0,0,79.08629,8.627794,1.609438,2.168537,1 +11,1,0,1,2,126669,0,5583.747,5.911705,0,11,1,25.88106,8.397577,0,0,0,34.27863,0,0,0,5,0,6,74.36826,13.73189,0,,0,458,1,0,1.791759,6.126869,0,0,0,0,0,0,79.08629,8.627794,1.791759,3.534522,1 +11,1,0,1,3,126669,0,5583.747,6.911705,0,11,1,46.7102,18.08137,0,0,360.2059,424.9975,1,0,0,7,0,6,74.36826,13.73189,0,,0,458,1,0,1.791759,6.126869,0,0,0,0,0,0,79.08629,8.627794,1.791759,6.052083,1 +11,1,0,1,4,126669,0,5583.747,7.911705,0,11,1,19.70329,15.80899,0,0,0,35.51229,0,0,0,4,0,6,74.36826,13.73189,0,,0,458,1,0,1.791759,6.126869,0,0,0,0,0,0,79.08629,8.627794,1.791759,3.569879,1 +11,1,0,1,5,126669,0,5583.747,8.911704,0,11,1,16.37601,3.913229,0,0,0,20.28924,0,0,0,2,0,6,74.36826,13.73189,0,,0,458,1,0,1.791759,6.126869,0,0,0,0,0,0,79.08629,8.627794,1.791759,3.010091,1 +11,1,0,1,1,126670,0,5098.015,57.87269,0,4,1,136.6906,17.47002,25.77938,0,0,179.94,0,0,0,8,1,2,61.1,30.4,1,,0,0,0,0,.6931472,0,0,0,0,0,0,1,49.52655,8.536802,.6931472,5.192624,1 +11,1,0,1,2,126670,0,5098.015,58.87269,0,4,1,117.7437,23.46659,0,0,0,141.2103,0,0,0,9,0,2,61.1,30.4,1,,0,0,0,0,.6931472,0,0,0,0,0,0,1,49.52655,8.536802,.6931472,4.95025,1 +11,1,0,1,3,126670,0,5098.015,59.87269,0,4,1,26.43392,13.49127,0,0,0,39.92519,0,0,0,2,0,2,61.1,30.4,1,,0,0,0,0,.6931472,0,0,0,0,0,0,1,49.52655,8.536802,.6931472,3.687007,1 +11,1,0,1,4,126670,0,5098.015,60.87269,0,4,1,57.63025,23.12125,28.35408,0,0,109.1056,0,0,0,4,1,2,61.1,30.4,1,,0,0,0,0,.6931472,0,0,0,0,0,0,1,49.52655,8.536802,.6931472,4.692316,1 +11,1,0,1,5,126670,0,5098.015,61.87269,0,4,1,35.97122,14.28269,0,0,0,50.25391,0,0,0,3,0,2,61.1,30.4,1,,0,0,0,0,.6931472,0,0,0,0,0,0,1,49.52655,8.536802,.6931472,3.917089,1 +11,1,0,1,1,126671,0,5098.015,53.72211,1,6,1,143.4353,39.52038,26.3789,0,0,209.3345,0,0,0,15,1,2,63.2,30.4,0,,0,0,0,0,.6931472,0,0,0,0,0,1,0,54.70358,8.536802,.6931472,5.343934,1 +11,1,0,1,2,126671,0,5098.015,54.72211,1,6,1,262.2399,60.87075,0,0,0,323.1106,0,0,0,28,1,2,63.2,30.4,0,,0,0,0,0,.6931472,0,0,0,0,0,1,0,54.70358,8.536802,.6931472,5.777995,1 +11,1,0,1,3,126671,0,5098.015,55.72211,1,6,1,78.80299,119.6908,0,0,0,198.4938,0,0,0,11,0,2,63.2,30.4,0,,0,0,0,0,.6931472,0,0,0,0,0,1,0,54.70358,8.536802,.6931472,5.290758,1 +11,1,0,1,4,126671,0,5098.015,56.72211,1,6,1,160.9036,100.5994,28.35408,0,0,289.8571,0,0,0,16,2,2,63.2,30.4,0,,0,0,0,0,.6931472,0,0,0,0,0,1,0,54.70358,8.536802,.6931472,5.669388,1 +11,1,0,1,5,126671,0,5098.015,57.72211,1,6,1,141.7689,124.3716,0,0,0,266.1405,0,0,0,17,0,2,63.2,30.4,0,,0,0,0,0,.6931472,0,0,0,0,0,1,0,54.70358,8.536802,.6931472,5.584024,1 +1,1,0,1,1,126674,0,3711.042,24.17796,0,12,1,0,0,0,0,344.0648,344.0648,1,0,0,0,0,1,34.7,4.3,0,,150,0,0,0,0,0,1,0,0,0,0,0,78.79221,8.219337,0,5.84083,1 +1,1,0,1,2,126674,0,3711.042,25.17796,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,34.7,4.3,0,,150,0,0,0,0,0,1,0,0,0,0,0,78.79221,8.219337,0,,0 +1,1,0,1,3,126674,0,3711.042,26.17796,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,34.7,4.3,0,,150,0,0,0,0,0,1,0,0,0,0,0,78.79221,8.219337,0,,0 +1,1,0,1,4,126674,0,3711.042,27.17796,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,34.7,4.3,0,,150,0,0,0,0,0,1,0,0,0,0,0,78.79221,8.219337,0,,0 +1,1,0,1,5,126674,0,3711.042,28.17796,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,34.7,4.3,0,,150,0,0,0,0,0,1,0,0,0,0,0,78.79221,8.219337,0,,0 +4,1,100,0,1,126678,0,4242.556,11.52088,1,10,1,0,0,0,0,0,0,0,0,0,0,0,7,74.36826,13.73189,0,,1000,1000,1,1,1.94591,6.907755,1,0,0,1,0,0,75.05559,8.353157,1.94591,,0 +4,1,100,0,2,126678,0,4242.556,12.52088,1,10,1,0,0,0,0,0,0,0,0,0,0,0,7,74.36826,13.73189,0,,1000,1000,1,1,1.94591,6.907755,1,0,0,1,0,0,75.05559,8.353157,1.94591,,0 +4,1,100,0,3,126678,0,4242.556,13.52088,1,10,1,0,0,0,0,0,0,0,0,0,0,0,7,74.36826,13.73189,0,,1000,1000,1,1,1.94591,6.907755,1,0,0,1,0,0,75.05559,8.353157,1.94591,,0 +4,1,100,0,1,126679,0,4242.556,10.59274,1,10,1,0,0,0,0,0,0,0,0,0,0,0,7,74.36826,13.73189,0,,1000,1000,1,1,1.94591,6.907755,1,0,0,0,0,0,80.99117,8.353157,1.94591,,0 +4,1,100,0,2,126679,0,4242.556,11.59274,1,10,1,0,0,0,0,0,0,0,0,0,0,0,7,74.36826,13.73189,0,,1000,1000,1,1,1.94591,6.907755,1,0,0,0,0,0,80.99117,8.353157,1.94591,,0 +4,1,100,0,3,126679,0,4242.556,12.59274,1,10,1,0,0,0,0,0,0,0,0,0,0,0,7,74.36826,13.73189,0,,1000,1000,1,1,1.94591,6.907755,1,0,0,0,0,0,80.99117,8.353157,1.94591,,0 +4,1,100,0,1,126680,0,4242.556,2.778919,1,10,1,0,0,0,0,0,0,0,0,0,0,0,7,74.36826,13.73189,0,,1000,1000,1,1,1.94591,6.907755,1,0,0,1,0,0,68.34178,8.353157,1.94591,,0 +4,1,100,0,2,126680,0,4242.556,3.778919,1,10,1,0,1.518781,0,0,0,1.518781,0,0,0,0,0,7,74.36826,13.73189,0,,1000,1000,1,1,1.94591,6.907755,1,0,0,1,0,0,68.34178,8.353157,1.94591,.4179078,1 +4,1,100,0,3,126680,0,4242.556,4.778919,1,10,1,0,0,0,0,0,0,0,0,0,0,0,7,74.36826,13.73189,0,,1000,1000,1,1,1.94591,6.907755,1,0,0,1,0,0,68.34178,8.353157,1.94591,,0 +4,1,100,0,1,126681,0,4242.556,30.5681,0,8,1,38.66746,16.00238,0,0,0,54.66984,0,0,0,4,1,7,60,13.73189,1,,1000,1000,0,0,1.94591,6.907755,1,0,0,0,1,0,59.22386,8.353157,1.94591,4.001312,1 +4,1,100,0,2,126681,0,4242.556,31.5681,0,8,1,0,0,0,0,0,0,0,0,0,0,0,7,60,13.73189,1,,1000,1000,0,0,1.94591,6.907755,1,0,0,0,1,0,59.22386,8.353157,1.94591,,0 +4,1,100,0,3,126681,0,4242.556,32.5681,0,8,1,23.29039,0,0,0,0,23.29039,0,0,0,3,0,7,60,13.73189,1,,1000,1000,0,0,1.94591,6.907755,1,0,0,0,1,0,59.22386,8.353157,1.94591,3.148041,1 +4,1,100,0,1,126682,0,4242.556,28.33402,1,10,1,0,0,0,0,0,0,0,0,0,0,0,7,72.5,13.73189,0,,1000,1000,0,0,1.94591,6.907755,1,0,0,1,0,0,69.16129,8.353157,1.94591,,0 +4,1,100,0,2,126682,0,4242.556,29.33402,1,10,1,0,0,0,0,0,0,0,0,0,0,0,7,72.5,13.73189,0,,1000,1000,0,0,1.94591,6.907755,1,0,0,1,0,0,69.16129,8.353157,1.94591,,0 +4,1,100,0,3,126682,0,4242.556,30.33402,1,10,1,0,0,0,0,0,0,0,0,0,0,0,7,72.5,13.73189,0,,1000,1000,0,0,1.94591,6.907755,1,0,0,1,0,0,69.16129,8.353157,1.94591,,0 +4,1,100,0,1,126683,0,4242.556,7.980835,0,10,1,0,0,0,0,0,0,0,0,0,0,0,7,74.36826,13.73189,0,,1000,1000,1,0,1.94591,6.907755,1,0,0,1,0,0,71.32816,8.353157,1.94591,,0 +4,1,100,0,2,126683,0,4242.556,8.980835,0,10,1,0,0,0,0,0,0,0,0,0,0,0,7,74.36826,13.73189,0,,1000,1000,1,0,1.94591,6.907755,1,0,0,1,0,0,71.32816,8.353157,1.94591,,0 +4,1,100,0,3,126683,0,4242.556,9.980835,0,10,1,0,1.778989,0,0,0,1.778989,0,0,0,0,0,7,74.36826,13.73189,0,,1000,1000,1,0,1.94591,6.907755,1,0,0,1,0,0,71.32816,8.353157,1.94591,.5760453,1 +4,1,100,0,1,126684,0,4242.556,9.38809,0,10,1,5.94884,1.302796,0,0,0,7.251636,0,0,0,1,0,7,74.36826,13.73189,0,,1000,1000,1,0,1.94591,6.907755,1,0,0,0,0,0,82.46437,8.353157,1.94591,1.981227,1 +4,1,100,0,2,126684,0,4242.556,10.38809,0,10,1,0,0,0,0,0,0,0,0,0,0,0,7,74.36826,13.73189,0,,1000,1000,1,0,1.94591,6.907755,1,0,0,0,0,0,82.46437,8.353157,1.94591,,0 +4,1,100,0,3,126684,0,4242.556,11.38809,0,10,1,0,0,0,0,0,0,0,0,0,0,0,7,74.36826,13.73189,0,,1000,1000,1,0,1.94591,6.907755,1,0,0,0,0,0,82.46437,8.353157,1.94591,,0 +11,1,0,1,1,126755,0,4586.849,50.34086,1,12,1,39.26234,2.492564,0,0,0,41.75491,0,0,0,4,0,3,77.8,17.4,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,71.87788,8.431167,1.098612,3.731817,1 +11,1,0,1,2,126755,0,4586.849,51.34086,1,12,1,50.08165,16.44529,0,0,0,66.52695,0,0,0,5,0,3,77.8,17.4,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,71.87788,8.431167,1.098612,4.197607,1 +11,1,0,1,3,126755,0,4586.849,52.34086,1,12,1,0,7.41328,0,0,0,7.41328,0,0,0,0,0,3,77.8,17.4,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,71.87788,8.431167,1.098612,2.003273,1 +11,1,0,1,4,126755,0,4586.849,53.34086,1,12,1,0,12.29004,0,0,0,12.29004,0,0,0,0,0,3,77.8,17.4,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,71.87788,8.431167,1.098612,2.508789,1 +11,1,0,1,5,126755,0,4586.849,54.34086,1,12,1,19.77282,22.36853,0,0,0,42.14135,0,0,0,3,0,3,77.8,17.4,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,71.87788,8.431167,1.098612,3.74103,1 +11,1,0,1,1,126756,0,4586.849,18.26694,1,11,1,39.26234,8.370018,0,0,342.0583,389.6907,1,0,0,4,0,3,85.3,4.3,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,69.7751,8.431167,1.098612,5.965353,1 +11,1,0,1,2,126756,0,4586.849,19.26694,1,11,1,0,0,0,0,0,0,0,0,0,0,0,3,85.3,4.3,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,69.7751,8.431167,1.098612,,0 +11,1,0,1,3,126756,0,4586.849,20.26694,1,11,1,0,0,0,0,0,0,0,0,0,0,0,3,85.3,4.3,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,69.7751,8.431167,1.098612,,0 +11,1,0,1,4,126756,0,4586.849,21.26694,1,11,1,0,0,0,0,0,0,0,0,0,0,0,3,85.3,4.3,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,69.7751,8.431167,1.098612,,0 +11,1,0,1,5,126756,0,4586.849,22.26694,1,11,1,12.62095,2.440051,0,0,0,15.061,0,0,0,2,0,3,85.3,4.3,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,69.7751,8.431167,1.098612,2.712109,1 +11,1,0,1,1,126757,0,4586.849,11.57837,1,12,1,5.94884,2.367638,0,0,0,8.316479,0,0,0,1,0,3,74.36826,13.73189,0,,0,0,1,1,1.098612,0,0,0,0,1,0,0,77.3399,8.431167,1.098612,2.118239,1 +11,1,0,1,2,126757,0,4586.849,12.57837,1,12,1,32.11758,3.102885,0,0,0,35.22047,0,0,0,1,1,3,74.36826,13.73189,0,,0,0,1,1,1.098612,0,0,0,0,1,0,0,77.3399,8.431167,1.098612,3.561627,1 +11,1,0,1,3,126757,0,4586.849,13.57837,1,12,1,90.82259,9.068384,0,0,0,99.89098,0,0,0,4,0,3,74.36826,13.73189,0,,0,0,1,1,1.098612,0,0,0,0,1,0,0,77.3399,8.431167,1.098612,4.604079,1 +11,1,0,1,4,126757,0,4586.849,14.57837,1,12,1,17.89812,10.67003,35.00689,0,0,63.57504,0,0,0,2,1,3,74.36826,13.73189,0,,0,0,1,1,1.098612,0,0,0,0,1,0,0,77.3399,8.431167,1.098612,4.152221,1 +11,1,0,1,5,126757,0,4586.849,15.57837,1,12,1,18.51073,0,0,0,0,18.51073,0,0,0,2,0,3,74.36826,13.73189,0,,0,0,1,1,1.098612,0,0,0,0,1,0,0,77.3399,8.431167,1.098612,2.91835,1 +9,1,50,0,1,126758,0,84.36725,45.90828,1,12,1,151.9435,49.29918,37.76796,0,1272.267,1511.278,1,0,0,10,0,3,76.3,13.73189,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,1,0,0,70.80224,4.446962,1.098612,7.320711,1 +9,1,50,0,2,126758,0,84.36725,46.90828,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,76.3,13.73189,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,1,0,0,70.80224,4.446962,1.098612,,0 +9,1,50,0,3,126758,0,84.36725,47.90828,1,12,1,25.55283,0,31.70516,0,0,57.25798,0,0,0,2,0,3,76.3,13.73189,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,1,0,0,70.80224,4.446962,1.098612,4.047567,1 +9,1,50,0,4,126758,0,84.36725,48.90828,1,12,1,226.9827,0,0,0,0,226.9827,0,0,0,2,0,3,76.3,13.73189,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,1,0,0,70.80224,4.446962,1.098612,5.424874,1 +9,1,50,0,5,126758,0,84.36725,49.90828,1,12,1,70.44602,18.2326,41.26719,0,0,129.9458,0,0,0,6,0,3,76.3,13.73189,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,1,0,0,70.80224,4.446962,1.098612,4.867117,1 +9,1,50,0,1,126759,0,84.36725,46.73238,0,12,1,44.16961,0,31.50766,0,0,75.67727,0,0,0,2,0,3,71.3,13.73189,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,1,0,0,62.74828,4.446962,1.098612,4.326478,1 +9,1,50,0,2,126759,0,84.36725,47.73238,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,71.3,13.73189,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,1,0,0,62.74828,4.446962,1.098612,,0 +9,1,50,0,3,126759,0,84.36725,48.73238,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,71.3,13.73189,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,1,0,0,62.74828,4.446962,1.098612,,0 +9,1,50,0,4,126759,0,84.36725,49.73238,0,12,1,12.76208,0,0,0,0,12.76208,0,0,0,1,0,3,71.3,13.73189,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,1,0,0,62.74828,4.446962,1.098612,2.546478,1 +9,1,50,0,5,126759,0,84.36725,50.73238,0,12,1,18.75782,0,31.26303,0,0,50.02084,0,0,0,0,0,3,71.3,13.73189,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,1,0,0,62.74828,4.446962,1.098612,3.91244,1 +10,1,50,1,1,126765,0,13699.75,43.59753,1,12,1,53.59246,39.69376,23.26266,0,0,116.5489,0,0,0,5,1,3,74.7,26.1,1,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,1,0,62.05545,9.525206,1.098612,4.758311,1 +10,1,50,1,2,126765,0,13699.75,44.59753,1,12,1,18.32884,31.47709,10.7062,0,0,60.51213,0,0,0,2,0,3,74.7,26.1,1,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,1,0,62.05545,9.525206,1.098612,4.102844,1 +10,1,50,1,3,126765,0,13699.75,45.59753,1,12,1,63.39066,35.8231,30.60934,0,0,129.8231,0,0,0,5,1,3,74.7,26.1,1,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,1,0,62.05545,9.525206,1.098612,4.866173,1 +10,1,50,1,4,126765,0,13699.75,46.59753,1,12,1,20.96627,27.52963,0,0,1209.435,1257.931,1,0,0,3,0,3,74.7,26.1,1,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,1,0,62.05545,9.525206,1.098612,7.137223,1 +10,1,50,1,5,126765,0,13699.75,47.59753,1,12,1,45.01876,12.85536,0,0,0,57.87411,0,0,0,4,0,3,74.7,26.1,1,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,1,0,62.05545,9.525206,1.098612,4.05827,1 +10,1,50,1,1,126766,0,13699.75,43.93977,0,8,1,10.60071,0,36.21908,0,0,46.81979,0,0,0,0,1,3,75.8,13,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,1,0,0,67.41241,9.525206,1.098612,3.846306,1 +10,1,50,1,2,126766,0,13699.75,44.93977,0,8,1,0,0,0,0,0,0,0,0,0,0,0,3,75.8,13,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,1,0,0,67.41241,9.525206,1.098612,,0 +10,1,50,1,3,126766,0,13699.75,45.93977,0,8,1,0,0,0,0,0,0,0,0,0,0,0,3,75.8,13,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,1,0,0,67.41241,9.525206,1.098612,,0 +10,1,50,1,4,126766,0,13699.75,46.93977,0,8,1,15.49681,0,51.44029,0,0,66.9371,0,0,0,1,1,3,75.8,13,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,1,0,0,67.41241,9.525206,1.098612,4.203753,1 +10,1,50,1,5,126766,0,13699.75,47.93977,0,8,1,0,0,0,0,0,0,0,0,0,0,0,3,75.8,13,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,1,0,0,67.41241,9.525206,1.098612,,0 +10,1,50,1,1,126767,0,13699.75,15.26352,0,12,1,167.9623,6.036513,0,0,174.3522,348.351,1,0,0,4,13,3,83.2,13,0,,1000,1000,1,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,80.70143,9.525206,1.098612,5.85321,1 +10,1,50,1,2,126767,0,13699.75,16.26352,0,12,1,24.25876,5.401617,13.33154,0,0,42.99191,0,0,0,2,0,3,83.2,13,0,,1000,1000,1,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,80.70143,9.525206,1.098612,3.761012,1 +10,1,50,1,3,126767,0,13699.75,17.26352,0,12,1,7.371007,0,26.7027,0,0,34.07371,0,0,0,1,0,3,83.2,13,0,,1000,1000,1,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,80.70143,9.525206,1.098612,3.528526,1 +10,1,50,1,4,126767,0,13699.75,18.26352,0,12,1,15.9526,0,0,0,0,15.9526,0,0,0,2,0,3,83.2,13,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,80.70143,9.525206,1.098612,2.769622,1 +10,1,50,1,5,126767,0,13699.75,19.26352,0,12,1,5.835765,0,0,0,0,5.835765,0,0,0,1,0,3,83.2,13,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,80.70143,9.525206,1.098612,1.764005,1 +11,1,0,1,1,126783,0,4239.454,61.69199,0,9,1,129.9821,58.19155,32.95063,0,1693.105,1914.23,2,0,0,3,1,2,80,17.4,1,,0,0,0,0,.6931472,0,0,0,0,1,0,0,61.22078,8.352426,.6931472,7.557071,1 +11,1,0,1,2,126783,0,4239.454,62.69199,0,9,1,231.1922,65.24769,0,0,0,296.4398,0,0,0,6,0,2,80,17.4,1,,0,0,0,0,.6931472,0,0,0,0,1,0,0,61.22078,8.352426,.6931472,5.691844,1 +11,1,0,1,3,126783,0,4239.454,63.69199,0,9,1,29.23687,13.09713,38.32012,0,716.5065,797.1606,1,0,0,2,1,2,80,17.4,1,,0,0,0,0,.6931472,0,0,0,0,1,0,0,61.22078,8.352426,.6931472,6.681056,1 +11,1,0,1,1,126784,0,4239.454,61.80972,1,7,1,79.71445,0,32.65913,0,0,112.3736,0,0,0,2,1,2,62.1,30.4,1,,0,0,0,0,.6931472,0,0,0,0,0,1,0,52.71434,8.352426,.6931472,4.721829,1 +11,1,0,1,2,126784,0,4239.454,62.80972,1,7,1,37.56124,7.642896,0,0,0,45.20414,0,0,0,1,0,2,62.1,30.4,1,,0,0,0,0,.6931472,0,0,0,0,0,1,0,52.71434,8.352426,.6931472,3.811189,1 +11,1,0,1,3,126784,0,4239.454,63.80972,1,7,1,55.5005,43.43409,48.44896,0,1622.894,1770.277,1,0,0,5,1,2,62.1,30.4,1,,0,0,0,0,.6931472,0,0,0,0,0,1,0,52.71434,8.352426,.6931472,7.478891,1 +5,1,25,0,1,126791,1,9542.002,51.154,0,12,1,202.0612,24.46996,0,0,7511.667,7738.198,2,0,0,8,0,1,46.3,13.73189,1,,110,110,0,0,0,4.70048,0,3.258096,6.086775,0,1,0,65.7506,9.163564,0,8.953924,1 +5,1,25,0,2,126791,1,9542.002,52.154,0,12,.2240437,120.7547,8.301887,210.7817,0,3156.113,3495.951,1,0,0,5,0,1,46.3,13.73189,1,,110,110,0,0,0,4.70048,0,3.258096,6.086775,0,1,0,65.7506,9.163564,0,8.159361,1 +11,1,0,1,1,126794,1,9542.002,18.95688,1,12,1,26.1749,0,0,0,0,26.1749,0,0,0,0,0,3,93.7,4.3,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,67.68577,9.163564,1.098612,3.264801,1 +11,1,0,1,2,126794,1,9542.002,19.95688,1,12,1,23.40773,0,26.16767,0,677.6592,727.2346,1,0,0,1,1,3,93.7,4.3,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,67.68577,9.163564,1.098612,6.589249,1 +11,1,0,1,3,126794,1,9542.002,20.95688,1,12,1,19.32607,4.44004,6.729435,0,0,30.49554,0,0,0,3,0,4,93.7,4.3,0,,0,0,0,0,1.386294,0,0,0,0,1,0,0,67.68577,9.163564,1.386294,3.41758,1 +11,1,0,1,4,126794,1,9542.002,21.95688,1,12,1,9.178522,0,31.17485,0,559.8486,600.2019,1,0,0,0,1,4,93.7,4.3,0,,0,0,0,0,1.386294,0,0,0,0,1,0,0,67.68577,9.163564,1.386294,6.397266,1 +11,1,0,1,5,126794,1,9542.002,22.95688,1,12,1,12.20025,4.636096,0,0,0,16.83635,0,0,0,2,0,5,93.7,4.3,0,,0,0,0,0,1.609438,0,0,0,0,1,0,0,67.68577,9.163564,1.609438,2.82354,1 +11,1,0,1,1,126795,1,9542.002,51.71252,1,8,1,17.25164,0,43.42653,0,0,60.67817,0,0,0,2,1,3,64.2,8.7,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,61.64053,9.163564,1.098612,4.105584,1 +11,1,0,1,2,126795,1,9542.002,52.71252,1,8,1,0,0,0,0,0,0,0,0,0,0,0,3,64.2,8.7,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,61.64053,9.163564,1.098612,,0 +11,1,0,1,3,126795,1,9542.002,53.71252,1,8,1,0,0,0,0,0,0,0,0,0,0,0,4,64.2,8.7,0,,0,0,0,0,1.386294,0,0,0,0,1,0,0,61.64053,9.163564,1.386294,,0 +11,1,0,1,4,126795,1,9542.002,54.71252,1,8,1,8.26067,0,34.87838,0,0,43.13905,0,0,0,0,1,4,64.2,8.7,0,,0,0,0,0,1.386294,0,0,0,0,1,0,0,61.64053,9.163564,1.386294,3.764429,1 +11,1,0,1,5,126795,1,9542.002,55.71252,1,8,1,5.04838,0,0,0,0,5.04838,0,0,0,1,0,5,64.2,8.7,0,,0,0,0,0,1.609438,0,0,0,0,1,0,0,61.64053,9.163564,1.609438,1.619067,1 +11,1,0,1,1,126796,1,9542.002,21.71937,0,12,1,21.41582,0,0,0,0,21.41582,0,0,0,0,0,3,80,8.7,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,66.78163,9.163564,1.098612,3.06413,1 +11,1,0,1,2,126796,1,9542.002,22.71937,0,12,1,9.254219,0,0,0,0,9.254219,0,0,0,1,0,3,80,8.7,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,66.78163,9.163564,1.098612,2.22508,1 +11,1,0,1,3,126796,1,9542.002,23.71937,0,12,1,116.997,4.578791,0,0,0,121.5758,0,0,0,8,0,4,80,8.7,0,,0,0,0,0,1.386294,0,0,0,0,1,0,0,66.78163,9.163564,1.386294,4.800538,1 +11,1,0,1,4,126796,1,9542.002,24.71937,0,12,1,5.96604,0,0,0,0,5.96604,0,0,0,1,0,4,80,8.7,0,,0,0,0,0,1.386294,0,0,0,0,1,0,0,66.78163,9.163564,1.386294,1.786083,1 +11,1,0,1,5,126796,1,9542.002,25.71937,0,12,1,42.49054,.8413967,.3575936,0,0,43.68953,0,0,0,3,0,5,80,8.7,0,,0,0,0,0,1.609438,0,0,0,0,1,0,0,66.78163,9.163564,1.609438,3.777108,1 +11,1,0,0,1,126797,1,9542.002,23.11294,1,12,1,24.98513,9.571684,21.94527,0,0,56.50208,0,0,0,4,0,1,78.9,0,0,,0,72,0,0,0,4.276666,0,0,0,1,0,0,63.49755,9.163564,0,4.034277,1 +11,1,0,0,2,126797,1,9542.002,24.11294,1,12,1,617.534,13.03212,18.96026,0,0,649.5264,0,0,0,10,1,1,78.9,0,0,,0,72,0,0,0,4.276666,0,0,0,1,0,0,63.49755,9.163564,0,6.476243,1 +11,1,0,0,3,126797,1,9542.002,25.11294,1,12,1,406.5857,28.15164,0,0,29.73241,464.4698,0,0,0,8,0,1,78.9,0,0,,0,72,0,0,0,4.276666,0,0,0,1,0,0,63.49755,9.163564,0,6.140896,1 +11,1,0,0,4,126797,1,9542.002,26.11294,1,12,1,519.9404,51.39054,38.84809,0,2560.996,3171.175,1,0,0,3,1,1,78.9,0,0,,0,72,0,0,0,4.276666,0,0,0,1,0,0,63.49755,9.163564,0,8.061857,1 +11,1,0,0,5,126797,1,9542.002,27.11294,1,12,1,648.3172,59.20909,16.48717,0,0,724.0135,0,0,0,2,3,1,78.9,0,0,,0,72,0,0,0,4.276666,0,0,0,1,0,0,63.49755,9.163564,0,6.58481,1 +4,1,100,0,1,126800,1,2297.767,52.39699,1,8,1,189.4582,0,0,0,0,189.4582,0,0,0,8,0,1,35.8,21.7,0,,0,0,0,0,0,0,1,0,0,0,0,1,62.06791,7.740128,0,5.244168,1 +4,1,100,0,2,126800,1,2297.767,53.39699,1,8,1,0,0,0,0,0,0,0,0,0,0,0,1,35.8,21.7,0,,0,0,0,0,0,0,1,0,0,0,0,1,62.06791,7.740128,0,,0 +4,1,100,0,3,126800,1,2297.767,54.39699,1,8,1,0,0,0,0,0,0,0,0,0,0,0,1,35.8,21.7,0,,0,0,0,0,0,0,1,0,0,0,0,1,62.06791,7.740128,0,,0 +5,1,25,0,1,126805,1,898.263,13.59617,0,9,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,101,101,1,0,1.609438,4.61512,0,3.258096,6.001415,0,0,0,75.72706,6.801576,1.609438,,0 +5,1,25,0,2,126805,1,898.263,14.59617,0,9,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,101,101,1,0,1.609438,4.61512,0,3.258096,6.001415,0,0,0,75.72706,6.801576,1.609438,,0 +5,1,25,0,1,126806,1,898.263,11.47159,0,9,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,101,101,1,0,1.609438,4.61512,0,3.258096,6.001415,0,0,0,75.72706,6.801576,1.609438,,0 +5,1,25,0,2,126806,1,898.263,12.47159,0,9,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,101,101,1,0,1.609438,4.61512,0,3.258096,6.001415,0,0,0,75.72706,6.801576,1.609438,,0 +5,1,25,0,1,126807,1,898.263,9.409993,1,9,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,101,101,1,1,1.609438,4.61512,0,3.258096,6.001415,0,0,0,75.21308,6.801576,1.609438,,0 +5,1,25,0,2,126807,1,898.263,10.40999,1,9,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,101,101,1,1,1.609438,4.61512,0,3.258096,6.001415,0,0,0,75.21308,6.801576,1.609438,,0 +5,1,25,0,1,126808,1,898.263,14.93224,1,9,1,0,0,0,0,0,0,0,0,0,0,0,5,75.8,8.7,0,,101,101,1,1,1.609438,4.61512,0,3.258096,6.001415,0,0,0,65.00531,6.801576,1.609438,,0 +5,1,25,0,2,126808,1,898.263,15.93224,1,9,1,0,0,0,0,0,0,0,0,0,0,0,5,75.8,8.7,0,,101,101,1,1,1.609438,4.61512,0,3.258096,6.001415,0,0,0,65.00531,6.801576,1.609438,,0 +5,1,25,0,1,126809,1,898.263,32.79945,1,9,1,0,0,0,0,0,0,0,0,0,0,0,5,62.1,21.7,0,,101,101,0,0,1.609438,4.61512,0,3.258096,6.001415,0,0,0,69.38714,6.801576,1.609438,,0 +5,1,25,0,2,126809,1,898.263,33.79945,1,9,1,0,0,0,0,0,0,0,0,0,0,0,5,62.1,21.7,0,,101,101,0,0,1.609438,4.61512,0,3.258096,6.001415,0,0,0,69.38714,6.801576,1.609438,,0 +11,1,0,0,1,126815,1,3944.789,51.42231,1,6,1,307.2278,0,0,0,0,307.2278,0,0,0,2,0,1,94.7,13,0,,0,0,0,0,0,0,0,0,0,0,0,0,67.9421,8.280404,0,5.72759,1 +11,1,0,0,2,126815,1,3944.789,52.42231,1,6,1,133.914,5.307567,0,0,0,139.2216,0,0,0,5,0,1,94.7,13,0,,0,0,0,0,0,0,0,0,0,0,0,0,67.9421,8.280404,0,4.936067,1 +11,1,0,0,3,126815,1,3944.789,53.42231,1,6,1,129.2121,0,34.14272,0,0,163.3548,0,0,0,5,1,1,94.7,13,0,,0,0,0,0,0,0,0,0,0,0,0,0,67.9421,8.280404,0,5.095924,1 +11,1,0,0,4,126815,1,3944.789,54.42231,1,6,1,128.4993,0,0,0,0,128.4993,0,0,0,5,0,1,94.7,13,0,,0,0,0,0,0,0,0,0,0,0,0,0,67.9421,8.280404,0,4.855924,1 +11,1,0,0,5,126815,1,3944.789,55.42231,1,6,1,138.1994,0,46.38199,0,749.2806,933.862,1,0,0,5,0,1,94.7,13,0,,0,0,0,0,0,0,0,0,0,0,0,0,67.9421,8.280404,0,6.839329,1 +9,1,50,1,1,126822,0,14151.37,7.118412,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,74.36826,13.73189,0,,1000,1000,1,1,1.791759,6.907755,0,3.931826,7.600903,0,0,0,81.68566,9.557637,1.791759,,0 +9,1,50,1,2,126822,0,14151.37,8.118412,1,12,1,8.259912,0,0,0,0,8.259912,0,0,0,1,0,6,74.36826,13.73189,0,,1000,1000,1,1,1.791759,6.907755,0,3.931826,7.600903,0,0,0,81.68566,9.557637,1.791759,2.111414,1 +9,1,50,1,3,126822,0,14151.37,9.118412,1,12,1,2.009041,0,0,0,0,2.009041,0,0,0,1,0,6,74.36826,13.73189,0,,1000,1000,1,1,1.791759,6.907755,0,3.931826,7.600903,0,0,0,81.68566,9.557637,1.791759,.6976573,1 +9,1,50,1,4,126822,0,14151.37,10.11841,1,12,1,2.318034,0,0,0,0,2.318034,0,0,0,1,0,6,74.36826,13.73189,0,,1000,1000,1,1,1.791759,6.907755,0,3.931826,7.600903,0,0,0,81.68566,9.557637,1.791759,.8407196,1 +9,1,50,1,5,126822,0,14151.37,11.11841,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,74.36826,13.73189,0,,1000,1000,1,1,1.791759,6.907755,0,3.931826,7.600903,0,0,0,81.68566,9.557637,1.791759,,0 +9,1,50,1,1,126823,0,14151.37,8.678987,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,74.36826,13.73189,0,,1000,1000,1,1,1.791759,6.907755,0,3.931826,7.600903,0,0,0,85.92707,9.557637,1.791759,,0 +9,1,50,1,2,126823,0,14151.37,9.678987,1,12,1,46.25551,2.114537,28.19934,0,0,76.56938,0,0,0,6,0,6,74.36826,13.73189,0,,1000,1000,1,1,1.791759,6.907755,0,3.931826,7.600903,0,0,0,85.92707,9.557637,1.791759,4.338197,1 +9,1,50,1,3,126823,0,14151.37,10.67899,1,12,1,24.10849,0,0,0,0,24.10849,0,0,0,5,0,6,74.36826,13.73189,0,,1000,1000,1,1,1.791759,6.907755,0,3.931826,7.600903,0,0,0,85.92707,9.557637,1.791759,3.182564,1 +9,1,50,1,4,126823,0,14151.37,11.67899,1,12,1,49.95364,0,29.13305,0,0,79.08669,0,0,0,3,1,6,74.36826,13.73189,0,,1000,1000,1,1,1.791759,6.907755,0,3.931826,7.600903,0,0,0,85.92707,9.557637,1.791759,4.370544,1 +9,1,50,1,5,126823,0,14151.37,12.67899,1,12,1,14.88728,0,11.90983,0,0,26.79711,0,0,0,1,0,6,74.36826,13.73189,0,,1000,1000,1,1,1.791759,6.907755,0,3.931826,7.600903,0,0,0,85.92707,9.557637,1.791759,3.288294,1 +9,1,50,1,1,126824,0,14151.37,35.06092,1,12,1,3.015682,0,0,0,0,3.015682,0,0,0,0,0,6,72.6,0,0,,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,1,0,0,69.27332,9.557637,1.791759,1.103826,1 +9,1,50,1,2,126824,0,14151.37,36.06092,1,12,1,22.57709,0,0,0,0,22.57709,0,0,0,1,0,6,72.6,0,0,,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,1,0,0,69.27332,9.557637,1.791759,3.116936,1 +9,1,50,1,3,126824,0,14151.37,37.06092,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,72.6,0,0,,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,1,0,0,69.27332,9.557637,1.791759,,0 +9,1,50,1,4,126824,0,14151.37,38.06092,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,72.6,0,0,,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,1,0,0,69.27332,9.557637,1.791759,,0 +9,1,50,1,5,126824,0,14151.37,39.06092,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,72.6,0,0,,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,1,0,0,69.27332,9.557637,1.791759,,0 +9,1,50,1,1,126825,0,14151.37,13.82615,1,12,1,4.221954,1.206273,33.40772,0,0,38.83595,0,0,0,1,0,6,74.36826,13.73189,0,,1000,1000,1,1,1.791759,6.907755,0,3.931826,7.600903,0,0,0,85.92707,9.557637,1.791759,3.659346,1 +9,1,50,1,2,126825,0,14151.37,14.82615,1,12,1,13.76652,0,0,0,0,13.76652,0,0,0,1,0,6,74.36826,13.73189,0,,1000,1000,1,1,1.791759,6.907755,0,3.931826,7.600903,0,0,0,85.92707,9.557637,1.791759,2.62224,1 +9,1,50,1,3,126825,0,14151.37,15.82615,1,12,1,4.018081,0,95.42944,0,0,99.44752,0,0,0,1,0,6,74.36826,13.73189,0,,1000,1000,1,1,1.791759,6.907755,0,3.931826,7.600903,0,0,0,85.92707,9.557637,1.791759,4.59963,1 +9,1,50,1,4,126825,0,14151.37,16.82615,1,12,1,17.61706,0,24.22346,0,0,41.84052,0,0,0,2,0,6,74.36826,13.73189,0,,1000,1000,1,1,1.791759,6.907755,0,3.931826,7.600903,0,0,0,85.92707,9.557637,1.791759,3.733865,1 +9,1,50,1,5,126825,0,14151.37,17.82615,1,12,1,2.552105,0,6.682263,0,0,9.234368,0,0,0,1,0,6,74.36826,13.73189,0,,1000,1000,1,1,1.791759,6.907755,0,3.931826,7.600903,0,0,0,85.92707,9.557637,1.791759,2.222932,1 +9,1,50,1,1,126826,0,14151.37,41.97399,0,16,1,18.09409,0,0,0,0,18.09409,0,0,0,1,0,6,84.2,21.7,1,,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,1,0,0,65.73057,9.557637,1.791759,2.895585,1 +9,1,50,1,2,126826,0,14151.37,42.97399,0,16,1,0,0,17.84141,0,0,17.84141,0,0,0,0,0,6,84.2,21.7,1,,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,1,0,0,65.73057,9.557637,1.791759,2.881522,1 +9,1,50,1,3,126826,0,14151.37,43.97399,0,16,1,16.57458,0,0,0,0,16.57458,0,0,0,1,0,6,84.2,21.7,1,,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,1,0,0,65.73057,9.557637,1.791759,2.80787,1 +9,1,50,1,4,126826,0,14151.37,44.97399,0,16,1,13.90821,0,47.2879,0,0,61.19611,0,0,0,1,0,6,84.2,21.7,1,,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,1,0,0,65.73057,9.557637,1.791759,4.114084,1 +9,1,50,1,5,126826,0,14151.37,45.97399,0,16,1,11.48448,0,0,0,0,11.48448,0,0,0,2,0,6,84.2,21.7,1,,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,1,0,0,65.73057,9.557637,1.791759,2.440996,1 +9,1,50,1,1,126827,0,14151.37,12.54483,0,12,1,3.015682,0,0,0,0,3.015682,0,0,0,1,0,6,74.36826,13.73189,0,,1000,1000,1,0,1.791759,6.907755,0,3.931826,7.600903,0,0,0,86.44105,9.557637,1.791759,1.103826,1 +9,1,50,1,2,126827,0,14151.37,13.54483,0,12,1,98.01762,0,0,0,0,98.01762,0,0,0,4,0,6,74.36826,13.73189,0,,1000,1000,1,0,1.791759,6.907755,0,3.931826,7.600903,0,0,0,86.44105,9.557637,1.791759,4.585147,1 +9,1,50,1,3,126827,0,14151.37,14.54483,0,12,1,2.009041,0,0,0,0,2.009041,0,0,0,1,0,6,74.36826,13.73189,0,,1000,1000,1,0,1.791759,6.907755,0,3.931826,7.600903,0,0,0,86.44105,9.557637,1.791759,.6976573,1 +9,1,50,1,4,126827,0,14151.37,15.54483,0,12,1,115.9017,0,0,0,0,115.9017,0,0,0,3,0,6,74.36826,13.73189,0,,1000,1000,1,0,1.791759,6.907755,0,3.931826,7.600903,0,0,0,86.44105,9.557637,1.791759,4.752743,1 +9,1,50,1,5,126827,0,14151.37,16.54483,0,12,1,298.4688,33.93024,0,0,0,332.399,0,0,0,6,0,6,74.36826,13.73189,0,,1000,1000,1,0,1.791759,6.907755,0,3.931826,7.600903,0,0,0,86.44105,9.557637,1.791759,5.806336,1 +6,1,25,0,1,126835,0,12640.82,26.57084,1,8,1,14.13428,12.45583,0,0,0,26.59011,0,0,0,2,0,4,75.8,13,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,69.97394,9.444766,1.386294,3.280539,1 +6,1,25,0,2,126835,0,12640.82,27.57084,1,8,1,16.17251,7.02965,0,0,0,23.20216,0,0,0,2,0,4,75.8,13,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,69.97394,9.444766,1.386294,3.144245,1 +6,1,25,0,3,126835,0,12640.82,28.57084,1,8,1,8.845209,0,0,0,0,8.845209,0,0,0,1,0,4,75.8,13,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,69.97394,9.444766,1.386294,2.179876,1 +6,1,25,0,4,126835,0,12640.82,29.57084,1,8,1,0,0,0,0,0,0,0,0,0,0,0,4,75.8,13,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,69.97394,9.444766,1.386294,,0 +6,1,25,0,5,126835,0,12640.82,30.57084,1,8,1,42.93456,0,0,0,0,42.93456,0,0,0,4,0,4,75.8,13,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,69.97394,9.444766,1.386294,3.759677,1 +6,1,25,0,1,126836,0,12640.82,30.97604,0,12,1,14.13428,11.42521,0,0,0,25.55948,0,0,0,2,0,4,72.6,21.7,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,72.21928,9.444766,1.386294,3.241008,1 +6,1,25,0,2,126836,0,12640.82,31.97604,0,12,1,57.14286,8.533692,0,0,0,65.67655,0,0,0,9,0,4,72.6,21.7,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,72.21928,9.444766,1.386294,4.184742,1 +6,1,25,0,3,126836,0,12640.82,32.97604,0,12,1,60.93366,10.4226,.7371007,0,0,72.09337,0,0,0,4,1,4,72.6,21.7,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,72.21928,9.444766,1.386294,4.277962,1 +6,1,25,0,4,126836,0,12640.82,33.97604,0,12,1,5.925251,0,0,0,0,5.925251,0,0,0,1,0,4,72.6,21.7,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,72.21928,9.444766,1.386294,1.779223,1 +6,1,25,0,5,126836,0,12640.82,34.97604,0,12,1,50.85452,0,0,0,0,50.85452,0,0,0,2,0,4,72.6,21.7,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,72.21928,9.444766,1.386294,3.928969,1 +6,1,25,0,1,126837,0,12640.82,8.791239,0,8,1,154.1519,26.88457,0,0,0,181.0365,0,0,0,8,1,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,1,0,58.4809,9.444766,1.386294,5.198699,1 +6,1,25,0,2,126837,0,12640.82,9.791239,0,8,1,72.29111,0,0,0,0,72.29111,0,0,0,5,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,1,0,58.4809,9.444766,1.386294,4.280701,1 +6,1,25,0,3,126837,0,12640.82,10.79124,0,8,1,5.405406,3.552825,0,0,0,8.958231,0,0,0,1,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,1,0,58.4809,9.444766,1.386294,2.192573,1 +6,1,25,0,4,126837,0,12640.82,11.79124,0,8,1,41.02097,0,0,0,0,41.02097,0,0,0,4,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,1,0,58.4809,9.444766,1.386294,3.714083,1 +6,1,25,0,5,126837,0,12640.82,12.79124,0,8,1,29.28304,0,0,0,0,29.28304,0,0,0,1,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,1,0,58.4809,9.444766,1.386294,3.377008,1 +6,1,25,0,1,126838,0,12640.82,11.44695,1,8,1,16.48999,7.232038,0,0,0,23.72203,0,0,0,2,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,1,0,0,78.60046,9.444766,1.386294,3.166404,1 +6,1,25,0,2,126838,0,12640.82,12.44695,1,8,1,12.93801,4.819407,0,0,0,17.75741,0,0,0,2,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,1,0,0,78.60046,9.444766,1.386294,2.876803,1 +6,1,25,0,3,126838,0,12640.82,13.44695,1,8,1,5.896806,6.943489,0,0,0,12.84029,0,0,0,1,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,1,0,0,78.60046,9.444766,1.386294,2.552588,1 +6,1,25,0,4,126838,0,12640.82,14.44695,1,8,1,36.78213,0,.911577,0,0,37.69371,0,0,0,3,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,1,0,0,78.60046,9.444766,1.386294,3.629493,1 +6,1,25,0,5,126838,0,12640.82,15.44695,1,8,1,31.88829,0,0,0,0,31.88829,0,0,0,2,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,1,0,0,78.60046,9.444766,1.386294,3.462239,1 +5,1,25,0,1,126839,0,13224.14,26.36276,1,13,1,81.86102,31.21908,0,0,530.1649,643.245,1,0,0,7,0,4,71.6,13,0,,679,679,0,0,1.386294,6.520621,0,3.258096,7.906916,1,0,0,70.1928,9.489875,1.386294,6.466526,1 +5,1,25,0,2,126839,0,13224.14,27.36276,1,13,1,119.6766,33.57412,0,0,0,153.2507,0,0,0,13,0,4,71.6,13,0,,679,679,0,0,1.386294,6.520621,0,3.258096,7.906916,1,0,0,70.1928,9.489875,1.386294,5.032075,1 +5,1,25,0,3,126839,0,13224.14,28.36276,1,13,1,79.60688,13.03685,34.91892,0,0,127.5627,0,0,0,4,1,4,71.6,13,0,,679,679,0,0,1.386294,6.520621,0,3.258096,7.906916,1,0,0,70.1928,9.489875,1.386294,4.848608,1 +5,1,25,0,1,126840,0,13224.14,28.4627,0,12,1,5.300354,5.683156,0,0,0,10.98351,0,0,0,1,0,4,83.2,8.7,0,,679,679,0,0,1.386294,6.520621,0,3.258096,7.906916,1,0,0,69.02815,9.489875,1.386294,2.396395,1 +5,1,25,0,2,126840,0,13224.14,29.4627,0,12,1,4.851752,4.177897,0,0,0,9.02965,0,0,0,1,0,4,83.2,8.7,0,,679,679,0,0,1.386294,6.520621,0,3.258096,7.906916,1,0,0,69.02815,9.489875,1.386294,2.200514,1 +5,1,25,0,3,126840,0,13224.14,30.4627,0,12,1,102.8256,24.99754,0,0,0,127.8231,0,0,0,7,2,4,83.2,8.7,0,,679,679,0,0,1.386294,6.520621,0,3.258096,7.906916,1,0,0,69.02815,9.489875,1.386294,4.850647,1 +5,1,25,0,1,126841,0,13224.14,5.155373,0,13,1,26.79623,9.952886,0,0,320.3769,357.126,1,0,0,2,1,4,74.36826,13.73189,0,,679,679,1,0,1.386294,6.520621,0,3.258096,7.906916,1,0,0,73.48592,9.489875,1.386294,5.878089,1 +5,1,25,0,2,126841,0,13224.14,6.155373,0,13,1,12.93801,4.716981,0,0,0,17.65499,0,0,0,1,0,4,74.36826,13.73189,0,,679,679,1,0,1.386294,6.520621,0,3.258096,7.906916,1,0,0,73.48592,9.489875,1.386294,2.871018,1 +5,1,25,0,3,126841,0,13224.14,7.155373,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,679,679,1,0,1.386294,6.520621,0,3.258096,7.906916,1,0,0,73.48592,9.489875,1.386294,,0 +5,1,25,0,1,126842,0,13224.14,6.63655,1,13,1,1.766784,5.918728,0,0,0,7.685513,0,0,0,0,0,4,74.36826,13.73189,0,,679,679,1,1,1.386294,6.520621,0,3.258096,7.906916,1,0,0,76.40357,9.489875,1.386294,2.039337,1 +5,1,25,0,2,126842,0,13224.14,7.63655,1,13,1,5.390836,0,0,0,0,5.390836,0,0,0,1,0,4,74.36826,13.73189,0,,679,679,1,1,1.386294,6.520621,0,3.258096,7.906916,1,0,0,76.40357,9.489875,1.386294,1.6847,1 +5,1,25,0,3,126842,0,13224.14,8.63655,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,679,679,1,1,1.386294,6.520621,0,3.258096,7.906916,1,0,0,76.40357,9.489875,1.386294,,0 +1,1,0,0,1,126859,0,10039.08,30.91581,0,14,1,191.8433,11.21319,33.5689,0,0,236.6254,0,0,0,5,2,3,56.8,30.4,0,,450,450,0,0,1.098612,6.109248,1,0,0,1,0,0,66.07695,9.21434,1.098612,5.466478,1 +1,1,0,0,2,126859,0,10039.08,31.91581,0,14,1,70.08086,1.617251,0,0,0,71.69811,0,0,0,2,0,3,56.8,30.4,0,,450,450,0,0,1.098612,6.109248,1,0,0,1,0,0,66.07695,9.21434,1.098612,4.272464,1 +1,1,0,0,3,126859,0,10039.08,32.91581,0,14,1,0,0,0,0,0,0,0,0,0,0,0,3,56.8,30.4,0,,450,450,0,0,1.098612,6.109248,1,0,0,1,0,0,66.07695,9.21434,1.098612,,0 +1,1,0,0,4,126859,0,10039.08,33.91581,0,14,1,34.18414,9.553328,12.13765,0,0,55.87511,0,0,0,3,1,3,56.8,30.4,0,,450,450,0,0,1.098612,6.109248,1,0,0,1,0,0,66.07695,9.21434,1.098612,4.023119,1 +1,1,0,0,5,126859,0,10039.08,34.91581,0,14,1,36.68195,5.944143,0,0,0,42.62609,0,0,0,4,0,3,56.8,30.4,0,,450,450,0,0,1.098612,6.109248,1,0,0,1,0,0,66.07695,9.21434,1.098612,3.752467,1 +1,1,0,0,1,126860,0,10039.08,26.48871,1,9,1,58.33333,32.86808,24.73498,0,1244.411,1360.347,2,0,0,2,1,3,64.2,17.4,1,,450,450,0,0,1.098612,6.109248,1,0,0,1,0,0,63.57109,9.21434,1.098612,7.215496,1 +1,1,0,0,2,126860,0,10039.08,27.48871,1,9,1,21.56334,0,0,0,514.6092,536.1725,1,0,0,1,0,3,64.2,17.4,1,,450,450,0,0,1.098612,6.109248,1,0,0,1,0,0,63.57109,9.21434,1.098612,6.284456,1 +1,1,0,0,3,126860,0,10039.08,28.48871,1,9,1,15.23342,4.117936,0,0,0,19.35135,0,0,0,1,0,3,64.2,17.4,1,,450,450,0,0,1.098612,6.109248,1,0,0,1,0,0,63.57109,9.21434,1.098612,2.962762,1 +1,1,0,0,4,126860,0,10039.08,29.48871,1,9,1,24.15679,5.720146,29.17047,0,0,59.0474,0,0,0,1,1,3,64.2,17.4,1,,450,450,0,0,1.098612,6.109248,1,0,0,1,0,0,63.57109,9.21434,1.098612,4.078341,1 +1,1,0,0,5,126860,0,10039.08,30.48871,1,9,1,100.0417,6.335973,0,0,0,106.3777,0,0,0,1,1,3,64.2,17.4,1,,450,450,0,0,1.098612,6.109248,1,0,0,1,0,0,63.57109,9.21434,1.098612,4.666996,1 +1,1,0,0,1,126861,0,10039.08,7.359343,1,9,1,58.89281,7.108363,0,0,0,66.00117,0,0,0,9,0,3,74.36826,13.73189,0,,450,450,1,1,1.098612,6.109248,1,0,0,1,0,0,72.6246,9.21434,1.098612,4.189672,1 +1,1,0,0,2,126861,0,10039.08,8.359343,1,9,1,105.6604,21.6496,24.25876,0,0,151.5687,0,0,0,10,1,3,74.36826,13.73189,0,,450,450,1,1,1.098612,6.109248,1,0,0,1,0,0,72.6246,9.21434,1.098612,5.021039,1 +1,1,0,0,3,126861,0,10039.08,9.359343,1,9,1,73.46437,13.72482,0,0,0,87.18919,0,0,0,8,0,3,74.36826,13.73189,0,,450,450,1,1,1.098612,6.109248,1,0,0,1,0,0,72.6246,9.21434,1.098612,4.468081,1 +1,1,0,0,4,126861,0,10039.08,10.35934,1,9,1,56.06199,27.39289,20.4649,0,0,103.9198,0,0,0,6,1,3,74.36826,13.73189,0,,450,450,1,1,1.098612,6.109248,1,0,0,1,0,0,72.6246,9.21434,1.098612,4.64362,1 +1,1,0,0,5,126861,0,10039.08,11.35934,1,9,1,130.471,21.85911,10.83785,0,0,163.168,0,0,0,8,1,3,74.36826,13.73189,0,,450,450,1,1,1.098612,6.109248,1,0,0,1,0,0,72.6246,9.21434,1.098612,5.09478,1 +9,1,50,1,1,126862,0,10156.33,29.44832,0,13,1,0,0,0,0,0,0,0,0,0,0,0,3,84.2,0,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,72.47523,9.22595,1.098612,,0 +9,1,50,1,2,126862,0,10156.33,30.44832,0,13,1,30.12048,16.57722,0,0,0,46.6977,0,0,0,3,0,3,84.2,0,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,72.47523,9.22595,1.098612,3.843695,1 +9,1,50,1,3,126862,0,10156.33,31.44832,0,13,1,5.985037,0,37.08229,0,0,43.06733,0,0,0,0,1,3,84.2,0,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,72.47523,9.22595,1.098612,3.762765,1 +9,1,50,1,4,126862,0,10156.33,32.44832,0,13,1,23.51314,17.75011,0,0,0,41.26326,0,0,0,2,1,3,84.2,0,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,72.47523,9.22595,1.098612,3.719972,1 +9,1,50,1,5,126862,0,10156.33,33.44832,0,13,1,40.71096,1.531951,.6347863,0,0,42.8777,0,0,0,2,0,3,84.2,0,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,72.47523,9.22595,1.098612,3.758352,1 +9,1,50,1,1,126863,0,10156.33,2.915811,1,12,1,4.796163,18.59712,0,0,0,23.39329,0,0,0,1,0,3,74.36826,13.73189,0,,1000,1000,1,1,1.098612,6.907755,0,3.931826,7.600903,0,0,0,80.70722,9.22595,1.098612,3.152449,1 +9,1,50,1,2,126863,0,10156.33,3.915811,1,12,1,0,8.849945,0,0,0,8.849945,0,0,0,0,0,3,74.36826,13.73189,0,,1000,1000,1,1,1.098612,6.907755,0,3.931826,7.600903,0,0,0,80.70722,9.22595,1.098612,2.180411,1 +9,1,50,1,3,126863,0,10156.33,4.915811,1,12,1,17.95511,1.915212,0,0,0,19.87033,0,0,0,2,0,3,74.36826,13.73189,0,,1000,1000,1,1,1.098612,6.907755,0,3.931826,7.600903,0,0,0,80.70722,9.22595,1.098612,2.989228,1 +9,1,50,1,4,126863,0,10156.33,5.915811,1,12,1,5.532504,15.67543,0,0,0,21.20793,0,0,0,1,0,3,74.36826,13.73189,0,,1000,1000,1,1,1.098612,6.907755,0,3.931826,7.600903,0,0,0,80.70722,9.22595,1.098612,3.054375,1 +9,1,50,1,5,126863,0,10156.33,6.915811,1,12,1,5.924672,12.91578,0,0,0,18.84046,0,0,0,1,0,3,74.36826,13.73189,0,,1000,1000,1,1,1.098612,6.907755,0,3.931826,7.600903,0,0,0,80.70722,9.22595,1.098612,2.936007,1 +9,1,50,1,1,126864,0,10156.33,24.84599,1,12,1,76.73861,33.05156,0,0,0,109.7902,0,0,0,4,0,3,84.2,21.7,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,79.30963,9.22595,1.098612,4.698571,1 +9,1,50,1,2,126864,0,10156.33,25.84599,1,12,1,10.9529,4.457831,0,0,0,15.41073,0,0,0,1,0,3,84.2,21.7,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,79.30963,9.22595,1.098612,2.735064,1 +9,1,50,1,3,126864,0,10156.33,26.84599,1,12,1,40.89775,20.54364,0,0,0,61.44139,0,0,0,5,0,3,84.2,21.7,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,79.30963,9.22595,1.098612,4.118084,1 +9,1,50,1,4,126864,0,10156.33,27.84599,1,12,1,43.79898,43.30567,0,0,0,87.10466,0,0,0,4,1,3,84.2,21.7,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,79.30963,9.22595,1.098612,4.46711,1 +9,1,50,1,5,126864,0,10156.33,28.84599,1,12,1,26.66102,25.26449,0,0,0,51.92552,0,0,0,3,0,3,84.2,21.7,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,79.30963,9.22595,1.098612,3.94981,1 +9,1,50,1,1,126865,0,17723.95,18.58179,0,11,1,4.759072,0,0,0,0,4.759072,0,0,0,1,0,6,65.3,8.7,0,,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,1,0,0,68.26189,9.782728,1.791759,1.560053,1 +9,1,50,1,2,126865,0,17723.95,19.58179,0,11,1,0,0,0,0,0,0,0,0,0,0,0,6,65.3,8.7,0,,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,1,0,0,68.26189,9.782728,1.791759,,0 +9,1,50,1,3,126865,0,17723.95,20.58179,0,11,1,0,0,0,0,0,0,0,0,0,0,0,7,65.3,8.7,0,,1000,1000,0,0,1.94591,6.907755,0,3.931826,7.600903,1,0,0,68.26189,9.782728,1.94591,,0 +9,1,50,1,1,126866,0,17723.95,15.44422,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,64.2,4.3,0,,1000,1000,1,0,1.791759,6.907755,0,3.931826,7.600903,1,0,0,73.25742,9.782728,1.791759,,0 +9,1,50,1,2,126866,0,17723.95,16.44422,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,64.2,4.3,0,,1000,1000,1,0,1.791759,6.907755,0,3.931826,7.600903,1,0,0,73.25742,9.782728,1.791759,,0 +9,1,50,1,3,126866,0,17723.95,17.44422,0,12,1,3.964321,0,0,0,0,3.964321,0,0,0,1,0,7,64.2,4.3,0,,1000,1000,1,0,1.94591,6.907755,0,3.931826,7.600903,1,0,0,73.25742,9.782728,1.94591,1.377335,1 +9,1,50,1,1,126867,0,17723.95,17.24025,1,12,1,19.63117,5.205235,0,0,0,24.83641,0,0,0,2,0,6,46.3,0,0,,1000,1000,1,1,1.791759,6.907755,0,3.931826,7.600903,1,0,0,67.93368,9.782728,1.791759,3.212311,1 +9,1,50,1,2,126867,0,17723.95,18.24025,1,12,1,51.71475,4.148067,0,0,0,55.86282,0,0,0,2,1,6,46.3,0,0,,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,1,0,0,67.93368,9.782728,1.791759,4.022899,1 +9,1,50,1,3,126867,0,17723.95,19.24025,1,12,1,29.23687,6.778989,0,0,0,36.01586,0,0,0,6,0,7,46.3,0,0,,1000,1000,0,0,1.94591,6.907755,0,3.931826,7.600903,1,0,0,67.93368,9.782728,1.94591,3.583959,1 +9,1,50,1,1,126868,0,17723.95,41.54415,0,12,1,7.733492,0,0,0,0,7.733492,0,0,0,1,0,6,73.7,21.7,0,,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,1,0,0,69.6292,9.782728,1.791759,2.045561,1 +9,1,50,1,2,126868,0,17723.95,42.54415,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,73.7,21.7,0,,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,1,0,0,69.6292,9.782728,1.791759,,0 +9,1,50,1,3,126868,0,17723.95,43.54415,0,12,1,12.3885,1.466799,0,0,0,13.8553,0,0,0,2,0,7,73.7,21.7,0,,1000,1000,0,0,1.94591,6.907755,0,3.931826,7.600903,1,0,0,69.6292,9.782728,1.94591,2.628668,1 +9,1,50,1,1,126869,0,17723.95,40.38877,1,12,1,21.41582,0,0,0,0,21.41582,0,0,0,0,0,6,60,30.4,1,,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,1,0,0,71.26881,9.782728,1.791759,3.06413,1 +9,1,50,1,2,126869,0,17723.95,41.38877,1,12,1,22.86336,2.928688,0,0,0,25.79205,0,0,0,2,0,6,60,30.4,1,,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,1,0,0,71.26881,9.782728,1.791759,3.250066,1 +9,1,50,1,3,126869,0,17723.95,42.38877,1,12,1,69.87116,11.04063,54.50941,0,1599.336,1734.757,2,0,0,6,1,7,60,30.4,1,,1000,1000,0,0,1.94591,6.907755,0,3.931826,7.600903,1,0,0,71.26881,9.782728,1.94591,7.458623,1 +9,1,50,1,1,126870,0,17723.95,10.39836,1,12,1,9.518144,1.778703,0,0,0,11.29685,0,0,0,1,0,6,74.36826,13.73189,0,,1000,1000,1,1,1.791759,6.907755,0,3.931826,7.600903,1,0,0,79.00697,9.782728,1.791759,2.424524,1 +9,1,50,1,2,126870,0,17723.95,11.39836,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,74.36826,13.73189,0,,1000,1000,1,1,1.791759,6.907755,0,3.931826,7.600903,1,0,0,79.00697,9.782728,1.791759,,0 +9,1,50,1,3,126870,0,17723.95,12.39836,1,12,1,50.54509,10.41625,0,0,0,60.96135,0,0,0,7,0,7,74.36826,13.73189,0,,1000,1000,1,1,1.94591,6.907755,0,3.931826,7.600903,1,0,0,79.00697,9.782728,1.94591,4.11024,1 +9,1,50,1,1,126871,0,4004.963,20.87064,1,12,1,15.46698,17.07317,0,0,0,32.54015,0,0,0,2,0,1,83.2,21.7,0,,580.31,580.31,0,0,0,6.363563,0,3.931826,7.05671,1,0,0,71.42945,8.295539,0,3.482475,1 +9,1,50,1,2,126871,0,4004.963,21.87064,1,12,1,23.9521,16.66848,0,0,0,40.62058,0,0,0,2,0,1,83.2,21.7,0,,580.31,580.31,0,0,0,6.363563,0,3.931826,7.05671,1,0,0,71.42945,8.295539,0,3.704275,1 +9,1,50,1,3,126871,0,4004.963,22.87064,1,12,1,12.3885,5.133796,36.76908,0,0,54.29138,0,0,0,1,1,1,83.2,21.7,0,,580.31,580.31,0,0,0,6.363563,0,3.931826,7.05671,1,0,0,71.42945,8.295539,0,3.994365,1 +8,1,50,1,1,126894,0,8056.452,28.20808,1,13,1,41.64188,7.013682,0,0,0,48.65556,0,0,0,2,0,4,68.4,8.7,0,,525,525,0,0,1.386294,6.263398,0,3.931826,6.956545,0,0,0,79.3287,8.994352,1.386294,3.884766,1 +8,1,50,1,2,126894,0,8056.452,29.20808,1,13,1,22.72727,0,0,0,0,22.72727,0,0,0,2,0,4,68.4,8.7,0,,525,525,0,0,1.386294,6.263398,0,3.931826,6.956545,0,0,0,79.3287,8.994352,1.386294,3.123566,1 +8,1,50,1,3,126894,0,8056.452,30.20808,1,13,1,0,7.190288,0,0,0,7.190288,0,0,0,0,0,4,68.4,8.7,0,,525,525,0,0,1.386294,6.263398,0,3.931826,6.956545,0,0,0,79.3287,8.994352,1.386294,1.972731,1 +8,1,50,1,4,126894,0,8056.452,31.20808,1,13,1,18.35704,9.307021,32.13401,0,0,59.79807,0,0,0,1,1,4,68.4,8.7,0,,525,525,0,0,1.386294,6.263398,0,3.931826,6.956545,0,0,0,79.3287,8.994352,1.386294,4.090973,1 +8,1,50,1,5,126894,0,8056.452,32.20808,1,13,1,7.57257,2.086664,0,0,0,9.659234,0,0,0,1,0,4,68.4,8.7,0,,525,525,0,0,1.386294,6.263398,0,3.931826,6.956545,0,0,0,79.3287,8.994352,1.386294,2.267914,1 +8,1,50,1,1,126895,0,8056.452,8.271048,1,13,1,13.08745,7.067222,0,0,0,20.15467,0,0,0,2,0,4,74.36826,13.73189,0,,525,525,1,1,1.386294,6.263398,0,3.931826,6.956545,0,0,0,77.73626,8.994352,1.386294,3.003436,1 +8,1,50,1,2,126895,0,8056.452,9.271048,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,525,525,1,1,1.386294,6.263398,0,3.931826,6.956545,0,0,0,77.73626,8.994352,1.386294,,0 +8,1,50,1,3,126895,0,8056.452,10.27105,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,525,525,1,1,1.386294,6.263398,0,3.931826,6.956545,0,0,0,77.73626,8.994352,1.386294,,0 +8,1,50,1,4,126895,0,8056.452,11.27105,1,13,1,30.51859,0,22.54245,0,0,53.06104,0,0,0,2,1,4,74.36826,13.73189,0,,525,525,1,1,1.386294,6.263398,0,3.931826,6.956545,0,0,0,77.73626,8.994352,1.386294,3.971443,1 +8,1,50,1,5,126895,0,8056.452,12.27105,1,13,1,33.65587,0,15.38494,0,0,49.04081,0,0,0,1,1,4,74.36826,13.73189,0,,525,525,1,1,1.386294,6.263398,0,3.931826,6.956545,0,0,0,77.73626,8.994352,1.386294,3.892653,1 +8,1,50,1,1,126896,0,8056.452,5.842574,0,13,1,121.3563,8.596074,0,0,517.1624,647.1148,1,0,0,16,6,4,74.36826,13.73189,0,,525,525,1,0,1.386294,6.263398,0,3.931826,6.956545,0,0,0,83.45087,8.994352,1.386294,6.472524,1 +8,1,50,1,2,126896,0,8056.452,6.842574,0,13,1,146.9788,2.280893,31.29015,0,0,180.5498,0,0,0,16,4,4,74.36826,13.73189,0,,525,525,1,0,1.386294,6.263398,0,3.931826,6.956545,0,0,0,83.45087,8.994352,1.386294,5.196007,1 +8,1,50,1,3,126896,0,8056.452,7.842574,0,13,1,48.06739,0,37.80476,0,0,85.87215,0,0,0,7,0,4,74.36826,13.73189,0,,525,525,1,0,1.386294,6.263398,0,3.931826,6.956545,0,0,0,83.45087,8.994352,1.386294,4.452859,1 +8,1,50,1,4,126896,0,8056.452,8.842573,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,525,525,1,0,1.386294,6.263398,0,3.931826,6.956545,0,0,0,83.45087,8.994352,1.386294,,0 +8,1,50,1,5,126896,0,8056.452,9.842573,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,525,525,1,0,1.386294,6.263398,0,3.931826,6.956545,0,0,0,83.45087,8.994352,1.386294,,0 +8,1,50,1,1,126897,0,8056.452,29.61533,0,14,1,37.47769,18.91731,0,0,0,56.395,0,0,0,4,0,4,75.8,17.4,0,,525,525,0,0,1.386294,6.263398,0,3.931826,6.956545,0,0,0,78.43752,8.994352,1.386294,4.032381,1 +8,1,50,1,2,126897,0,8056.452,30.61533,0,14,1,9.798585,0,43.23353,0,0,53.03212,0,0,0,0,1,4,75.8,17.4,0,,525,525,0,0,1.386294,6.263398,0,3.931826,6.956545,0,0,0,78.43752,8.994352,1.386294,3.970898,1 +8,1,50,1,3,126897,0,8056.452,31.61533,0,14,1,18.83052,2.552032,0,0,0,21.38256,0,0,0,3,0,4,75.8,17.4,0,,525,525,0,0,1.386294,6.263398,0,3.931826,6.956545,0,0,0,78.43752,8.994352,1.386294,3.062576,1 +8,1,50,1,4,126897,0,8056.452,32.61533,0,14,1,3.212483,3.969711,0,0,0,7.182194,0,0,0,1,0,4,75.8,17.4,0,,525,525,0,0,1.386294,6.263398,0,3.931826,6.956545,0,0,0,78.43752,8.994352,1.386294,1.971605,1 +8,1,50,1,5,126897,0,8056.452,33.61533,0,14,1,9.255363,8.140513,0,0,0,17.39588,0,0,0,2,0,4,75.8,17.4,0,,525,525,0,0,1.386294,6.263398,0,3.931826,6.956545,0,0,0,78.43752,8.994352,1.386294,2.856233,1 +5,1,25,0,1,126899,1,1,6.8282,1,10,1,0,0,0,0,0,0,0,0,0,0,0,2,74.36826,13.73189,1,,72,72,1,1,.6931472,4.276666,0,3.258096,5.662961,0,1,0,63.00796,.6931472,.6931472,,0 +5,1,25,0,2,126899,1,1,7.8282,1,10,1,0,0,0,0,0,0,0,0,0,0,0,2,74.36826,13.73189,1,,72,72,1,1,.6931472,4.276666,0,3.258096,5.662961,0,1,0,63.00796,.6931472,.6931472,,0 +5,1,25,0,3,126899,1,1,8.828199,1,10,1,274.4472,29.65111,0,0,678.231,982.3292,1,0,0,29,4,2,74.36826,13.73189,1,,72,72,1,1,.6931472,4.276666,0,3.258096,5.662961,0,1,0,63.00796,.6931472,.6931472,6.889926,1 +5,1,25,0,1,126900,1,1,48.79671,1,10,1,0,0,0,0,0,0,0,0,0,0,0,2,55.8,26.1,1,,72,72,0,0,.6931472,4.276666,0,3.258096,5.662961,0,1,0,51.71064,.6931472,.6931472,,0 +5,1,25,0,2,126900,1,1,49.79671,1,10,1,0,0,0,0,0,0,0,0,0,0,0,2,55.8,26.1,1,,72,72,0,0,.6931472,4.276666,0,3.258096,5.662961,0,1,0,51.71064,.6931472,.6931472,,0 +5,1,25,0,3,126900,1,1,50.79671,1,10,1,158.4767,53.55774,0,0,0,212.0344,0,0,0,12,0,2,55.8,26.1,1,,72,72,0,0,.6931472,4.276666,0,3.258096,5.662961,0,1,0,51.71064,.6931472,.6931472,5.356749,1 +4,1,100,1,1,126916,0,13328.78,14.84736,1,18,1,52.94468,0,0,0,0,52.94468,0,0,0,3,0,4,68.4,8.7,0,,1000,1000,1,1,1.386294,6.907755,1,0,0,0,0,0,75.75117,9.497756,1.386294,3.969248,1 +4,1,100,1,2,126916,0,13328.78,15.84736,1,18,1,1.633097,1.252041,0,0,0,2.885139,0,0,0,0,0,4,68.4,8.7,0,,1000,1000,1,1,1.386294,6.907755,1,0,0,0,0,0,75.75117,9.497756,1.386294,1.059573,1 +4,1,100,1,3,126916,0,13328.78,16.84736,1,18,1,45.09415,12.63132,0,0,0,57.72547,0,0,0,7,0,4,68.4,8.7,0,,1000,1000,1,1,1.386294,6.907755,1,0,0,0,0,0,75.75117,9.497756,1.386294,4.055698,1 +4,1,100,1,4,126916,0,13328.78,17.84736,1,18,1,14.22671,13.24002,0,0,0,27.46673,0,0,0,2,0,4,68.4,8.7,0,,1000,1000,1,1,1.386294,6.907755,1,0,0,0,0,0,75.75117,9.497756,1.386294,3.312975,1 +4,1,100,1,5,126916,0,13328.78,18.84736,1,18,1,10.09676,5.889777,0,0,0,15.98654,0,0,0,1,0,4,68.4,8.7,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,75.75117,9.497756,1.386294,2.771747,1 +4,1,100,1,1,126917,0,13328.78,45.85352,0,15,1,67.22189,2.135633,52.8376,0,0,122.1951,0,0,0,4,0,4,54.7,4.3,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,73.31355,9.497756,1.386294,4.805619,1 +4,1,100,1,2,126917,0,13328.78,46.85352,0,15,1,0,0,0,0,0,0,0,0,0,0,0,4,54.7,4.3,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,73.31355,9.497756,1.386294,,0 +4,1,100,1,3,126917,0,13328.78,47.85352,0,15,1,0,0,0,0,0,0,0,0,0,0,0,4,54.7,4.3,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,73.31355,9.497756,1.386294,,0 +4,1,100,1,4,126917,0,13328.78,48.85352,0,15,1,0,0,0,0,0,0,0,0,0,0,0,4,54.7,4.3,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,73.31355,9.497756,1.386294,,0 +4,1,100,1,5,126917,0,13328.78,49.85352,0,15,1,12.62095,0,40.44173,0,0,53.06268,0,0,0,1,0,4,54.7,4.3,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,73.31355,9.497756,1.386294,3.971474,1 +4,1,100,1,1,126918,0,13328.78,16.09309,0,18,1,20.82094,0,0,0,0,20.82094,0,0,0,1,0,4,77.9,4.3,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,0,0,0,81.08788,9.497756,1.386294,3.035959,1 +4,1,100,1,2,126918,0,13328.78,17.09309,0,18,1,35.38378,2.885139,28.16004,0,0,66.42896,0,0,0,3,0,4,77.9,4.3,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,0,0,0,81.08788,9.497756,1.386294,4.196133,1 +4,1,100,1,3,126918,0,13328.78,18.09309,0,18,1,47.40833,0,0,0,0,47.40833,0,0,0,1,0,4,77.9,4.3,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,81.08788,9.497756,1.386294,3.858798,1 +4,1,100,1,4,126918,0,13328.78,19.09309,0,18,1,16.06241,0,16.06241,0,0,32.12483,0,0,0,0,2,4,77.9,4.3,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,81.08788,9.497756,1.386294,3.469629,1 +4,1,100,1,5,126918,0,13328.78,20.09309,0,18,1,80.77409,1.598654,0,0,0,82.37274,0,0,0,2,1,4,77.9,4.3,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,81.08788,9.497756,1.386294,4.411254,1 +4,1,100,1,1,126919,0,13328.78,51.32923,1,18,1,66.27008,0,35.69304,0,0,101.9631,0,0,0,2,1,4,58.9,26.1,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,66.3842,9.497756,1.386294,4.624611,1 +4,1,100,1,2,126919,0,13328.78,52.32923,1,18,1,48.44856,10.01633,0,0,0,58.46489,0,0,0,4,0,4,58.9,26.1,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,66.3842,9.497756,1.386294,4.068427,1 +4,1,100,1,3,126919,0,13328.78,53.32923,1,18,1,16.35283,13.95441,0,0,0,30.30724,0,0,0,1,0,4,58.9,26.1,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,66.3842,9.497756,1.386294,3.411386,1 +4,1,100,1,4,126919,0,13328.78,54.32923,1,18,1,80.31207,0,0,0,0,80.31207,0,0,0,4,0,4,58.9,26.1,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,66.3842,9.497756,1.386294,4.38592,1 +4,1,100,1,5,126919,0,13328.78,55.32923,1,18,1,44.17333,0,0,250.3155,0,44.17333,0,0,17,6,0,4,58.9,26.1,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,66.3842,9.497756,1.386294,3.788121,1 +4,1,100,1,1,126920,0,4392.68,1.919233,1,11,1,129.6231,0,0,0,0,129.6231,0,0,0,2,3,2,74.36826,13.73189,0,,75,75,1,1,.6931472,4.317488,1,0,0,0,0,0,75.32616,8.387922,.6931472,4.864631,1 +4,1,100,1,2,126920,0,4392.68,2.919233,1,11,1,69.54178,11.37466,0,0,0,80.91644,0,0,0,8,0,2,74.36826,13.73189,0,,75,75,1,1,.6931472,4.317488,1,0,0,0,0,0,75.32616,8.387922,.6931472,4.393417,1 +4,1,100,1,3,126920,0,4392.68,3.919233,1,11,1,45.70024,2.712531,0,0,0,48.41278,0,0,0,2,0,3,74.36826,13.73189,0,,75,75,1,1,1.098612,4.317488,1,0,0,0,0,0,75.32616,8.387922,1.098612,3.879764,1 +4,1,100,1,4,126920,0,4392.68,4.919233,1,11,1,25.75205,20.1732,0,0,0,45.92525,0,0,0,4,0,3,74.36826,13.73189,0,,75,75,1,1,1.098612,4.317488,1,0,0,0,0,0,75.32616,8.387922,1.098612,3.827015,1 +4,1,100,1,5,126920,0,4392.68,5.919233,1,11,1,63.77657,16.09421,0,0,0,79.87078,0,0,0,4,0,3,74.36826,13.73189,0,,75,75,1,1,1.098612,4.317488,1,0,0,0,0,0,75.32616,8.387922,1.098612,4.38041,1 +4,1,100,1,1,126921,0,4392.68,18.73511,1,11,1,235.4535,17.23204,0,0,0,252.6855,0,0,0,8,0,2,52.6,21.7,0,,75,75,0,0,.6931472,4.317488,1,0,0,0,0,0,73.02412,8.387922,.6931472,5.532146,1 +4,1,100,1,2,126921,0,4392.68,19.73511,1,11,1,170.0809,8.975741,0,140.1617,1719.865,1898.922,2,0,8,3,1,2,52.6,21.7,0,,75,75,0,0,.6931472,4.317488,1,0,0,0,0,0,73.02412,8.387922,.6931472,7.549042,1 +4,1,100,1,3,126921,0,4392.68,20.73511,1,11,1,361.6708,25.49386,1.474201,0,0,388.6388,0,0,0,16,16,3,52.6,21.7,0,,75,75,0,0,1.098612,4.317488,1,0,0,0,0,0,73.02412,8.387922,1.098612,5.96265,1 +4,1,100,1,4,126921,0,4392.68,21.73511,1,11,1,282.7028,34.11577,0,0,0,316.8186,0,0,0,18,9,3,52.6,21.7,0,,75,75,0,0,1.098612,4.317488,1,0,0,0,0,0,73.02412,8.387922,1.098612,5.758329,1 +4,1,100,1,5,126921,0,4392.68,22.73511,1,11,1,73.78074,13.13047,0,33.34723,211.7341,298.6453,1,0,2,8,0,3,52.6,21.7,0,,75,75,0,0,1.098612,4.317488,1,0,0,0,0,0,73.02412,8.387922,1.098612,5.699256,1 +3,1,100,0,1,126931,0,8213.399,15.79192,1,16,1,11.99041,5.065947,0,0,0,17.05635,0,0,0,1,0,3,77.5,13.73189,0,,1000,1000,1,1,1.098612,6.907755,1,0,0,0,0,0,74.30457,9.013644,1.098612,2.836523,1 +3,1,100,0,2,126931,0,8213.399,16.79192,1,16,1,5.476451,0,0,0,0,5.476451,0,0,0,1,0,3,77.5,13.73189,0,,1000,1000,1,1,1.098612,6.907755,1,0,0,0,0,0,74.30457,9.013644,1.098612,1.700457,1 +3,1,100,0,3,126931,0,8213.399,17.79192,1,16,1,20.44888,0,24.62843,0,0,45.0773,0,0,0,2,0,3,77.5,13.73189,0,,1000,1000,1,1,1.098612,6.907755,1,0,0,0,0,0,74.30457,9.013644,1.098612,3.808379,1 +3,1,100,0,4,126931,0,8213.399,18.79192,1,16,1,0,5.348087,0,0,0,5.348087,0,0,0,0,0,3,77.5,13.73189,0,,1000,1000,0,0,1.098612,6.907755,1,0,0,0,0,0,74.30457,9.013644,1.098612,1.676739,1 +3,1,100,0,5,126931,0,8213.399,19.79192,1,16,1,12.69573,0,31.84088,0,0,44.53661,0,0,0,1,0,3,77.5,13.73189,0,,1000,1000,0,0,1.098612,6.907755,1,0,0,0,0,0,74.30457,9.013644,1.098612,3.796311,1 +3,1,100,0,1,126932,0,8213.399,46.4011,1,16,1,25.17986,14.53837,0,0,0,39.71822,0,0,0,2,0,3,83.8,13.73189,0,,1000,1000,0,0,1.098612,6.907755,1,0,0,0,0,0,74.59227,9.013644,1.098612,3.68181,1 +3,1,100,0,2,126932,0,8213.399,47.4011,1,16,1,13.69113,11.88938,44.069,0,0,69.64951,0,0,0,1,0,3,83.8,13.73189,0,,1000,1000,0,0,1.098612,6.907755,1,0,0,0,0,0,74.59227,9.013644,1.098612,4.243475,1 +3,1,100,0,3,126932,0,8213.399,48.4011,1,16,1,10.97257,3.082294,0,0,0,14.05486,0,0,0,1,0,3,83.8,13.73189,0,,1000,1000,0,0,1.098612,6.907755,1,0,0,0,0,0,74.59227,9.013644,1.098612,2.642968,1 +3,1,100,0,4,126932,0,8213.399,49.4011,1,16,1,36.42231,34.43061,34.20931,0,0,105.0622,0,0,0,7,0,3,83.8,13.73189,0,,1000,1000,0,0,1.098612,6.907755,1,0,0,0,0,0,74.59227,9.013644,1.098612,4.654553,1 +3,1,100,0,5,126932,0,8213.399,50.4011,1,16,1,18.6204,2.873466,0,0,0,21.49386,0,0,0,2,0,3,83.8,13.73189,0,,1000,1000,0,0,1.098612,6.907755,1,0,0,0,0,0,74.59227,9.013644,1.098612,3.067768,1 +3,1,100,0,1,126933,0,8213.399,47.45243,0,16,1,71.34293,68.4952,39.91607,0,0,179.7542,0,0,0,5,1,3,62.5,13.73189,1,,1000,1000,0,0,1.098612,6.907755,1,0,0,0,1,0,59.58566,9.013644,1.098612,5.19159,1 +3,1,100,0,2,126933,0,8213.399,48.45243,0,16,1,25.73932,74.11829,9.731654,0,0,109.5893,0,0,0,1,0,3,62.5,13.73189,1,,1000,1000,0,0,1.098612,6.907755,1,0,0,0,1,0,59.58566,9.013644,1.098612,4.696739,1 +3,1,100,0,3,126933,0,8213.399,49.45243,0,16,1,78.67831,231.1022,0,39.90025,0,309.7805,0,0,2,11,0,3,62.5,13.73189,1,,1000,1000,0,0,1.098612,6.907755,1,0,0,0,1,0,59.58566,9.013644,1.098612,5.735864,1 +3,1,100,0,4,126933,0,8213.399,50.45243,0,16,1,73.76672,134.0295,29.87091,110.6501,746.9802,984.6473,1,0,6,8,1,3,62.5,13.73189,1,,1000,1000,0,0,1.098612,6.907755,1,0,0,0,1,0,59.58566,9.013644,1.098612,6.892283,1 +3,1,100,0,5,126933,0,8213.399,51.45243,0,16,1,155.7342,91.84512,0,0,6111.405,6358.984,1,0,0,9,0,3,62.5,13.73189,1,,1000,1000,0,0,1.098612,6.907755,1,0,0,0,1,0,59.58566,9.013644,1.098612,8.757624,1 +1,1,0,1,1,126935,0,16733.25,48.67077,0,12,1,226.0559,239.298,60.95776,0,0,526.3117,0,0,0,6,1,2,55.8,26.1,1,,300,80,0,0,.6931472,4.382027,1,0,0,1,0,0,61.78216,9.725213,.6931472,6.265893,1 +1,1,0,1,2,126935,0,16733.25,49.67077,0,12,1,49.53729,188.1873,37.01688,0,0,274.7414,0,0,0,2,1,2,55.8,26.1,1,,300,80,0,0,.6931472,4.382027,1,0,0,1,0,0,61.78216,9.725213,.6931472,5.61583,1 +1,1,0,1,3,126935,0,16733.25,50.67077,0,12,1,52.27948,192.8692,0,0,0,245.1487,0,0,0,4,0,2,55.8,26.1,1,,300,80,0,0,.6931472,4.382027,1,0,0,1,0,0,61.78216,9.725213,.6931472,5.501865,1 +1,1,0,1,4,126935,0,16733.25,51.67077,0,12,1,236.5764,229.7705,34.41946,0,0,500.7664,0,0,0,3,1,2,55.8,26.1,1,,300,80,0,0,.6931472,4.382027,1,0,0,1,0,0,61.78216,9.725213,.6931472,6.21614,1 +1,1,0,1,5,126935,0,16733.25,52.67077,0,12,1,185.528,152.44,35.59108,0,0,373.5591,0,0,0,6,1,2,55.8,26.1,1,,300,80,0,0,.6931472,4.382027,1,0,0,1,0,0,61.78216,9.725213,.6931472,5.923076,1 +1,1,0,1,1,126936,0,16733.25,47.9562,1,10,1,139.7977,22.96252,42.89708,0,0,205.6573,0,0,0,3,0,2,86.3,4.3,0,,300,80,0,0,.6931472,4.382027,1,0,0,0,0,0,74.56667,9.725213,.6931472,5.326211,1 +1,1,0,1,2,126936,0,16733.25,48.9562,1,10,1,57.43059,5.307567,13.65269,0,0,76.39085,0,0,0,4,0,2,86.3,4.3,0,,300,80,0,0,.6931472,4.382027,1,0,0,0,0,0,74.56667,9.725213,.6931472,4.335863,1 +1,1,0,1,3,126936,0,16733.25,49.9562,1,10,1,42.12091,0,47.86422,0,0,89.98513,0,0,0,3,1,2,86.3,4.3,0,,300,80,0,0,.6931472,4.382027,1,0,0,0,0,0,74.56667,9.725213,.6931472,4.499644,1 +1,1,0,1,4,126936,0,16733.25,50.9562,1,10,1,511.363,0,33.52455,0,0,544.8876,0,0,0,3,0,2,86.3,4.3,0,,300,80,0,0,.6931472,4.382027,1,0,0,0,0,0,74.56667,9.725213,.6931472,6.30058,1 +1,1,0,1,5,126936,0,16733.25,51.9562,1,10,1,92.55364,4.724442,36.04964,0,0,133.3277,0,0,0,5,1,2,86.3,4.3,0,,300,80,0,0,.6931472,4.382027,1,0,0,0,0,0,74.56667,9.725213,.6931472,4.89281,1 +11,1,0,1,1,126945,0,12635.86,53.18549,0,18,1,14.8721,0,19.89292,0,0,34.76502,0,0,0,1,0,5,91.6,8.7,0,,0,0,0,0,1.609438,0,0,0,0,0,0,0,73.38226,9.444373,1.609438,3.548612,1 +11,1,0,1,2,126945,0,12635.86,54.18549,0,18,1,13.60915,2.705498,0,0,0,16.31464,0,0,0,1,0,5,91.6,8.7,0,,0,0,0,0,1.609438,0,0,0,0,0,0,0,73.38226,9.444373,1.609438,2.792063,1 +11,1,0,1,3,126945,0,12635.86,55.18549,0,18,1,32.21011,2.244797,0,0,0,34.45491,0,0,0,2,0,5,91.6,8.7,0,,0,0,0,0,1.609438,0,0,0,0,0,0,0,73.38226,9.444373,1.609438,3.539651,1 +11,1,0,1,4,126945,0,12635.86,56.18549,0,18,1,48.18724,11.77145,23.50161,0,0,83.4603,0,0,0,6,0,5,91.6,8.7,0,,0,0,0,0,1.609438,0,0,0,0,0,0,0,73.38226,9.444373,1.609438,4.424371,1 +11,1,0,1,5,126945,0,12635.86,57.18549,0,18,1,139.6719,2.519983,0,0,0,142.1918,0,0,0,4,0,5,91.6,8.7,0,,0,0,0,0,1.609438,0,0,0,0,0,0,0,73.38226,9.444373,1.609438,4.957177,1 +11,1,0,1,1,126946,0,12635.86,50.19028,1,16,1,82.68887,29.81559,47.87032,0,0,160.3748,0,0,0,5,0,5,89.5,17.4,0,,0,0,0,0,1.609438,0,0,0,0,0,0,0,78.05634,9.444373,1.609438,5.077513,1 +11,1,0,1,2,126946,0,12635.86,51.19028,1,16,1,28.30702,.843767,0,0,0,29.15079,0,0,0,2,0,5,89.5,17.4,0,,0,0,0,0,1.609438,0,0,0,0,0,0,0,78.05634,9.444373,1.609438,3.372482,1 +11,1,0,1,3,126946,0,12635.86,52.19028,1,16,1,39.64321,0,55.00496,0,0,94.64816,0,0,0,4,0,5,89.5,17.4,0,,0,0,0,0,1.609438,0,0,0,0,0,0,0,78.05634,9.444373,1.609438,4.550167,1 +11,1,0,1,4,126946,0,12635.86,53.19028,1,16,1,264.8004,0,0,0,0,264.8004,0,0,0,3,0,5,89.5,17.4,0,,0,0,0,0,1.609438,0,0,0,0,0,0,0,78.05634,9.444373,1.609438,5.578976,1 +11,1,0,1,5,126946,0,12635.86,54.19028,1,16,1,130.4165,23.04165,50.9045,0,0,204.3626,0,0,0,5,0,5,89.5,17.4,0,,0,0,0,0,1.609438,0,0,0,0,0,0,0,78.05634,9.444373,1.609438,5.319896,1 +11,1,0,1,1,126947,0,12635.86,13.05681,1,16,1,64.84235,11.87388,0,0,0,76.71624,0,0,0,6,0,5,74.36826,13.73189,0,,0,0,1,1,1.609438,0,0,0,0,0,0,0,86.10995,9.444373,1.609438,4.340114,1 +11,1,0,1,2,126947,0,12635.86,14.05681,1,16,1,29.94012,2.172019,0,0,0,32.11214,0,0,0,3,0,5,74.36826,13.73189,0,,0,0,1,1,1.609438,0,0,0,0,0,0,0,86.10995,9.444373,1.609438,3.469234,1 +11,1,0,1,3,126947,0,12635.86,15.05681,1,16,1,61.44698,0,0,0,0,61.44698,0,0,0,8,0,5,74.36826,13.73189,0,,0,0,1,1,1.609438,0,0,0,0,0,0,0,86.10995,9.444373,1.609438,4.118175,1 +11,1,0,1,4,126947,0,12635.86,16.05681,1,16,1,32.58376,5.025241,23.86416,0,0,61.47315,0,0,0,5,0,5,74.36826,13.73189,0,,0,0,1,1,1.609438,0,0,0,0,0,0,0,86.10995,9.444373,1.609438,4.1186,1 +11,1,0,1,5,126947,0,12635.86,17.05681,1,16,1,33.65587,12.62516,14.50989,0,0,60.79091,0,0,0,3,0,5,74.36826,13.73189,0,,0,0,1,1,1.609438,0,0,0,0,0,0,0,86.10995,9.444373,1.609438,4.10744,1 +11,1,0,1,1,126948,0,12635.86,18.10814,0,12.32507,1,139.2029,3.723974,38.54253,0,0,181.4694,0,0,0,15,0,5,71.6,8.7,0,,0,0,0,0,1.609438,0,0,0,0,0,0,0,78.99447,9.444373,1.609438,5.201087,1 +11,1,0,1,2,126948,0,12635.86,19.10814,0,12.32507,1,21.23027,3.756124,32.99401,0,0,57.9804,0,0,0,4,0,5,71.6,8.7,0,,0,0,0,0,1.609438,0,0,0,0,0,0,0,78.99447,9.444373,1.609438,4.060105,1 +11,1,0,1,3,126948,0,12635.86,20.10814,0,12.32507,1,45.09415,1.699703,33.36472,0,0,80.15857,0,0,0,5,0,5,71.6,8.7,0,,0,0,0,0,1.609438,0,0,0,0,0,0,0,78.99447,9.444373,1.609438,4.384007,1 +11,1,0,1,4,126948,0,12635.86,21.10814,0,12.32507,1,25.24094,1.652134,17.2648,0,0,44.15787,0,0,0,2,0,5,71.6,8.7,0,,0,0,0,0,1.609438,0,0,0,0,0,0,0,78.99447,9.444373,1.609438,3.787771,1 +11,1,0,1,5,126948,0,12635.86,22.10814,0,12.32507,1,0,1.598654,0,0,0,1.598654,0,0,0,0,0,5,71.6,8.7,0,,0,0,0,0,1.609438,0,0,0,0,0,0,0,78.99447,9.444373,1.609438,.4691619,1 +11,1,0,1,1,126949,0,12635.86,14.5462,1,16,1,14.27722,4.419988,0,0,0,18.6972,0,0,0,2,0,5,67.4,4.3,0,,0,0,1,1,1.609438,0,0,0,0,0,0,0,75.66186,9.444373,1.609438,2.928374,1 +11,1,0,1,2,126949,0,12635.86,15.5462,1,16,1,67.50136,26.33097,0,0,0,93.83234,0,0,0,12,0,5,67.4,4.3,0,,0,0,1,1,1.609438,0,0,0,0,0,0,0,75.66186,9.444373,1.609438,4.54151,1 +11,1,0,1,3,126949,0,12635.86,16.5462,1,16,1,74.33102,10.46581,0,0,0,84.79683,0,0,0,9,0,5,67.4,4.3,0,,0,0,1,1,1.609438,0,0,0,0,0,0,0,75.66186,9.444373,1.609438,4.440258,1 +11,1,0,1,4,126949,0,12635.86,17.5462,1,16,1,111.0601,16.838,0,0,0,127.8981,0,0,0,4,0,5,67.4,4.3,0,,0,0,1,1,1.609438,0,0,0,0,0,0,0,75.66186,9.444373,1.609438,4.851234,1 +11,1,0,1,5,126949,0,12635.86,18.5462,1,16,1,26.504,6.327303,25.27976,0,0,58.11106,0,0,0,2,0,5,67.4,4.3,0,,0,0,0,0,1.609438,0,0,0,0,0,0,0,75.66186,9.444373,1.609438,4.062356,1 +11,1,0,0,1,126956,0,12002.48,49.6345,0,22,1,124.8528,55.88928,44.16961,0,0,224.9117,0,0,0,3,2,4,71.3,13.73189,0,,0,233,0,0,1.386294,5.451038,0,0,0,1,0,0,64.51054,9.392952,1.386294,5.415708,1 +11,1,0,0,2,126956,0,12002.48,50.6345,0,22,1,155.7952,27.52022,0,0,0,183.3154,0,0,0,5,0,4,71.3,13.73189,0,,0,233,0,0,1.386294,5.451038,0,0,0,1,0,0,64.51054,9.392952,1.386294,5.211208,1 +11,1,0,0,3,126956,0,12002.48,51.6345,0,22,1,49.14005,24.69287,0,0,0,73.83292,0,0,0,4,0,4,71.3,13.73189,0,,0,233,0,0,1.386294,5.451038,0,0,0,1,0,0,64.51054,9.392952,1.386294,4.301805,1 +11,1,0,0,4,126956,0,12002.48,52.6345,0,22,1,208.2953,19.50775,27.34731,0,0,255.1504,0,0,0,5,1,4,71.3,13.73189,0,,0,233,0,0,1.386294,5.451038,0,0,0,1,0,0,64.51054,9.392952,1.386294,5.541853,1 +11,1,0,0,5,126956,0,12002.48,53.6345,0,22,1,122.9679,10.56273,0,0,0,133.5306,0,0,0,3,0,4,71.3,13.73189,0,,0,233,0,0,1.386294,5.451038,0,0,0,1,0,0,64.51054,9.392952,1.386294,4.894331,1 +11,1,0,0,1,126957,0,12002.48,53.49213,1,12,1,140.1649,25.8245,0,0,0,165.9894,0,0,0,4,0,4,85,13.73189,0,,0,233,0,0,1.386294,5.451038,0,0,0,1,0,0,71.93534,9.392952,1.386294,5.111924,1 +11,1,0,0,2,126957,0,12002.48,54.49213,1,12,1,53.90836,13.14286,46.36119,0,0,113.4124,0,0,0,5,1,4,85,13.73189,0,,0,233,0,0,1.386294,5.451038,0,0,0,1,0,0,71.93534,9.392952,1.386294,4.731031,1 +11,1,0,0,3,126957,0,12002.48,55.49213,1,12,1,71.74447,11.59705,0,0,0,83.34152,0,0,0,6,0,4,85,13.73189,0,,0,233,0,0,1.386294,5.451038,0,0,0,1,0,0,71.93534,9.392952,1.386294,4.422947,1 +11,1,0,0,4,126957,0,12002.48,56.49213,1,12,1,113.0356,8.226983,20.30538,0,1468.728,1610.296,1,0,0,5,0,4,85,13.73189,0,,0,233,0,0,1.386294,5.451038,0,0,0,1,0,0,71.93534,9.392952,1.386294,7.384173,1 +11,1,0,0,5,126957,0,12002.48,57.49213,1,12,1,75.03127,11.84243,38.76615,0,0,125.6398,0,0,0,6,1,4,85,13.73189,0,,0,233,0,0,1.386294,5.451038,0,0,0,1,0,0,71.93534,9.392952,1.386294,4.833419,1 +11,1,0,0,1,126958,0,12002.48,17.63997,0,12,1,10.60071,0,0,0,0,10.60071,0,0,0,1,0,4,51.3,13.73189,0,,0,233,1,0,1.386294,5.451038,0,0,0,1,0,0,73.92395,9.392952,1.386294,2.360921,1 +11,1,0,0,2,126958,0,12002.48,18.63997,0,12,1,13.47709,2.695418,33.23989,0,0,49.4124,0,0,0,1,0,4,51.3,13.73189,0,,0,233,0,0,1.386294,5.451038,0,0,0,1,0,0,73.92395,9.392952,1.386294,3.900201,1 +11,1,0,0,3,126958,0,12002.48,19.63997,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,51.3,13.73189,0,,0,233,0,0,1.386294,5.451038,0,0,0,1,0,0,73.92395,9.392952,1.386294,,0 +11,1,0,0,4,126958,0,12002.48,20.63997,0,12,1,9.11577,5.036463,22.78942,0,0,36.94166,0,0,0,0,1,4,51.3,13.73189,0,,0,233,0,0,1.386294,5.451038,0,0,0,1,0,0,73.92395,9.392952,1.386294,3.60934,1 +11,1,0,0,5,126958,0,12002.48,21.63997,0,12,1,8.336807,3.626511,0,0,0,11.96332,0,0,0,1,0,4,51.3,13.73189,0,,0,233,0,0,1.386294,5.451038,0,0,0,1,0,0,73.92395,9.392952,1.386294,2.481845,1 +11,1,0,0,1,126959,0,12002.48,15.72895,0,12,1,44.75854,21.67256,0,0,0,66.4311,0,0,0,9,0,4,86.3,13.73189,0,,0,233,1,0,1.386294,5.451038,0,0,0,1,0,0,73.92395,9.392952,1.386294,4.196165,1 +11,1,0,0,2,126959,0,12002.48,16.72895,0,12,1,63.61186,13.60108,5.956873,0,0,83.16982,0,0,0,4,0,4,86.3,13.73189,0,,0,233,1,0,1.386294,5.451038,0,0,0,1,0,0,73.92395,9.392952,1.386294,4.420885,1 +11,1,0,0,3,126959,0,12002.48,17.72895,0,12,1,12.77641,7.592138,0,0,0,20.36855,0,0,0,2,0,4,86.3,13.73189,0,,0,233,1,0,1.386294,5.451038,0,0,0,1,0,0,73.92395,9.392952,1.386294,3.013992,1 +11,1,0,0,4,126959,0,12002.48,18.72895,0,12,1,15.9526,26.39016,0,0,0,42.34275,0,0,0,2,0,4,86.3,13.73189,0,,0,233,0,0,1.386294,5.451038,0,0,0,1,0,0,73.92395,9.392952,1.386294,3.745797,1 +11,1,0,0,5,126959,0,12002.48,19.72895,0,12,1,62.005,31.2797,0,0,0,93.2847,0,0,0,4,0,4,86.3,13.73189,0,,0,233,0,0,1.386294,5.451038,0,0,0,1,0,0,73.92395,9.392952,1.386294,4.535656,1 +7,1,25,1,1,126960,0,10653.9,59.69062,0,14,1,31.21319,53.12132,33.85159,0,0,118.1861,0,0,0,4,0,2,68.4,17.4,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,1,0,0,69.64326,9.273775,.6931472,4.772261,1 +7,1,25,1,2,126960,0,10653.9,60.69062,0,14,1,149.3261,43.71968,0,0,0,193.0458,0,0,0,5,0,2,68.4,17.4,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,1,0,0,69.64326,9.273775,.6931472,5.262928,1 +7,1,25,1,3,126960,0,10653.9,61.69062,0,14,1,142.9975,43.23341,0,0,0,186.231,0,0,0,6,0,2,68.4,17.4,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,1,0,0,69.64326,9.273775,.6931472,5.226988,1 +7,1,25,1,1,126961,0,10653.9,57.26762,1,12,1,55.35925,60.8775,0,0,0,116.2367,0,0,0,11,0,2,86.3,21.7,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,1,0,0,71.963,9.273775,.6931472,4.755629,1 +7,1,25,1,2,126961,0,10653.9,58.26762,1,12,1,121.2938,55.28302,0,0,0,176.5768,0,0,0,13,0,2,86.3,21.7,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,1,0,0,71.963,9.273775,.6931472,5.173756,1 +7,1,25,1,3,126961,0,10653.9,59.26762,1,12,1,60.44226,58.25553,33.63636,0,0,152.3342,0,0,0,9,0,2,86.3,21.7,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,1,0,0,71.963,9.273775,.6931472,5.026076,1 +2,1,100,1,1,126984,0,8362.283,49.6345,0,12,1,40.45211,0,0,0,0,40.45211,0,0,0,1,1,2,44.2,4.3,0,,699,699,0,0,.6931472,6.549651,1,0,0,0,0,0,72.58436,9.031607,.6931472,3.700119,1 +2,1,100,1,2,126984,0,8362.283,50.6345,0,12,1,132.8253,12.22101,24.65977,0,0,169.706,0,0,0,6,1,2,44.2,4.3,0,,699,699,0,0,.6931472,6.549651,1,0,0,0,0,0,72.58436,9.031607,.6931472,5.134068,1 +2,1,100,1,3,126984,0,8362.283,51.6345,0,12,1,0,7.408325,0,0,0,7.408325,0,0,0,0,0,2,44.2,4.3,0,,699,699,0,0,.6931472,6.549651,1,0,0,0,0,0,72.58436,9.031607,.6931472,2.002604,1 +2,1,100,1,4,126984,0,8362.283,52.6345,0,12,1,58.28362,18.79302,43.162,0,0,120.2386,0,0,0,6,1,2,44.2,4.3,0,,699,699,0,0,.6931472,6.549651,1,0,0,0,0,0,72.58436,9.031607,.6931472,4.789478,1 +2,1,100,1,5,126984,0,8362.283,53.6345,0,12,1,151.8721,5.456458,0,0,0,157.3286,0,0,0,5,0,2,44.2,4.3,0,,699,699,0,0,.6931472,6.549651,1,0,0,0,0,0,72.58436,9.031607,.6931472,5.058336,1 +2,1,100,1,1,126985,0,8362.283,50.57084,1,12,1,177.8703,18.67936,0,0,0,196.5497,0,0,0,22,3,2,68.4,26.1,0,,699,699,0,0,.6931472,6.549651,1,0,0,1,0,0,67.71264,9.031607,.6931472,5.280915,1 +2,1,100,1,2,126985,0,8362.283,51.57084,1,12,1,34.29505,24.49102,30.48449,0,0,89.27055,0,0,0,2,1,2,68.4,26.1,0,,699,699,0,0,.6931472,6.549651,1,0,0,1,0,0,67.71264,9.031607,.6931472,4.491672,1 +2,1,100,1,3,126985,0,8362.283,52.57084,1,12,1,0,21.56095,0,0,0,21.56095,0,0,0,0,0,2,68.4,26.1,0,,699,699,0,0,.6931472,6.549651,1,0,0,1,0,0,67.71264,9.031607,.6931472,3.070884,1 +2,1,100,1,4,126985,0,8362.283,53.57084,1,12,1,25.24094,18.40294,45.82377,0,0,89.46764,0,0,0,2,0,2,68.4,26.1,0,,699,699,0,0,.6931472,6.549651,1,0,0,1,0,0,67.71264,9.031607,.6931472,4.493877,1 +2,1,100,1,5,126985,0,8362.283,54.57084,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,68.4,26.1,0,,699,699,0,0,.6931472,6.549651,1,0,0,1,0,0,67.71264,9.031607,.6931472,,0 +1,1,0,0,1,127001,0,9542.002,2.102669,0,16,1,115.4299,22.84452,0,0,0,138.2744,0,0,0,8,2,3,74.36826,13.73189,0,,450,145,1,0,1.098612,4.976734,1,0,0,0,0,0,78.82387,9.163564,1.098612,4.92924,1 +1,1,0,0,2,127001,0,9542.002,3.102669,0,16,1,53.36927,12.67924,0,0,0,66.04852,0,0,0,7,0,4,74.36826,13.73189,0,,450,145,1,0,1.386294,4.976734,1,0,0,0,0,0,78.82387,9.163564,1.386294,4.19039,1 +1,1,0,0,3,127001,0,9542.002,4.102669,0,16,1,7.862408,1.371007,0,0,0,9.233416,0,0,0,1,0,4,74.36826,13.73189,0,,450,145,1,0,1.386294,4.976734,1,0,0,0,0,0,78.82387,9.163564,1.386294,2.222829,1 +1,1,0,0,1,127002,0,9542.002,31.37851,1,16,1,11.18964,34.65842,0,0,762.0789,807.927,1,0,0,0,0,3,67.5,13.73189,0,,450,145,0,0,1.098612,4.976734,1,0,0,1,0,0,72.19561,9.163564,1.098612,6.694472,1 +1,1,0,0,2,127002,0,9542.002,32.37851,1,16,1,156.0647,8.743936,0,0,0,164.8086,0,0,0,7,0,4,67.5,13.73189,0,,450,145,0,0,1.386294,4.976734,1,0,0,1,0,0,72.19561,9.163564,1.386294,5.104785,1 +1,1,0,0,3,127002,0,9542.002,33.37851,1,16,1,101.7199,15.31204,0,0,0,117.0319,0,0,0,6,0,4,67.5,13.73189,0,,450,145,0,0,1.386294,4.976734,1,0,0,1,0,0,72.19561,9.163564,1.386294,4.762447,1 +1,1,0,0,1,127003,0,9542.002,33.21561,0,16,1,0,0,0,0,0,0,0,0,0,0,0,3,86.3,13.73189,0,,450,145,0,0,1.098612,4.976734,1,0,0,1,0,0,68.24405,9.163564,1.098612,,0 +1,1,0,0,2,127003,0,9542.002,34.21561,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,86.3,13.73189,0,,450,145,0,0,1.386294,4.976734,1,0,0,1,0,0,68.24405,9.163564,1.386294,,0 +1,1,0,0,3,127003,0,9542.002,35.21561,0,16,1,4.914005,0,0,0,0,4.914005,0,0,0,0,0,4,86.3,13.73189,0,,450,145,0,0,1.386294,4.976734,1,0,0,1,0,0,68.24405,9.163564,1.386294,1.592089,1 +10,1,50,1,1,127053,0,14800.25,37.21834,0,16,1,11.09113,0,0,0,0,11.09113,0,0,0,1,0,3,98.9,0,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,79.07086,9.602467,1.098612,2.406146,1 +10,1,50,1,2,127053,0,14800.25,38.21834,0,16,1,26.28697,5.16977,0,0,0,31.45674,0,0,0,2,0,3,98.9,0,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,79.07086,9.602467,1.098612,3.448613,1 +10,1,50,1,3,127053,0,14800.25,39.21834,0,16,1,37.40648,0,40.399,0,0,77.80549,0,0,0,2,1,3,98.9,0,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,79.07086,9.602467,1.098612,4.354212,1 +10,1,50,1,1,127054,0,14800.25,7.137577,0,12,1,9.592326,4.556355,0,0,0,14.14868,0,0,0,1,0,3,74.36826,13.73189,0,,1000,1000,1,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,84.53857,9.602467,1.098612,2.649621,1 +10,1,50,1,2,127054,0,14800.25,8.137577,0,12,1,7.119387,5.843373,0,0,0,12.96276,0,0,0,1,0,3,74.36826,13.73189,0,,1000,1000,1,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,84.53857,9.602467,1.098612,2.562081,1 +10,1,50,1,3,127054,0,14800.25,9.137577,0,12,1,15.23691,0,0,0,0,15.23691,0,0,0,2,0,3,74.36826,13.73189,0,,1000,1000,1,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,84.53857,9.602467,1.098612,2.723721,1 +10,1,50,1,1,127055,0,14800.25,40.87885,1,12,1,34.77218,4.868105,0,0,0,39.64029,0,0,0,2,0,3,70.5,21.7,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,77.55615,9.602467,1.098612,3.679846,1 +10,1,50,1,2,127055,0,14800.25,41.87885,1,12,1,203.4502,11.33078,40.71741,0,0,255.4984,0,0,0,5,2,3,70.5,21.7,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,77.55615,9.602467,1.098612,5.543216,1 +10,1,50,1,3,127055,0,14800.25,42.87885,1,12,1,31.42145,16.4788,0,0,0,47.90025,0,0,0,4,0,3,70.5,21.7,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,77.55615,9.602467,1.098612,3.869121,1 +10,1,50,1,1,127059,0,9848.635,34.73785,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,95.8,0,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,78.73395,9.195189,1.098612,,0 +10,1,50,1,2,127059,0,9848.635,35.73785,0,12,1,6.53239,0,0,0,0,6.53239,0,0,0,1,0,3,95.8,0,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,78.73395,9.195189,1.098612,1.876773,1 +10,1,50,1,3,127059,0,9848.635,36.73785,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,95.8,0,0,,1000,1000,0,0,0,6.907755,0,3.931826,7.600903,0,0,0,78.73395,9.195189,0,,0 +10,1,50,1,1,127060,0,9848.635,10.09993,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,74.36826,13.73189,0,,1000,1000,1,0,1.098612,6.907755,0,3.931826,7.600903,1,0,0,79.89645,9.195189,1.098612,,0 +10,1,50,1,2,127060,0,9848.635,11.09993,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,74.36826,13.73189,0,,1000,1000,1,0,1.098612,6.907755,0,3.931826,7.600903,1,0,0,79.89645,9.195189,1.098612,,0 +10,1,50,1,1,127061,0,9848.635,33.32786,1,12,1,28.55443,56.45449,0,0,0,85.00893,0,0,0,4,0,3,87.4,4.3,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,1,0,0,66.92303,9.195189,1.098612,4.442756,1 +10,1,50,1,2,127061,0,9848.635,34.32786,1,12,1,21.77463,1.986935,0,0,0,23.76157,0,0,0,2,0,3,87.4,4.3,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,1,0,0,66.92303,9.195189,1.098612,3.16807,1 +10,1,50,1,1,127074,0,11740.07,22.89391,0,13,1,0,1.6247,0,0,0,1.6247,0,0,0,0,0,1,75.8,0,0,,1000,1000,0,0,0,6.907755,0,3.931826,7.600903,1,0,0,66.68941,9.370849,0,.4853233,1 +10,1,50,1,2,127074,0,11740.07,23.89391,0,13,1,12.04819,0,0,0,0,12.04819,0,0,0,1,0,1,75.8,0,0,,1000,1000,0,0,0,6.907755,0,3.931826,7.600903,1,0,0,66.68941,9.370849,0,2.488915,1 +10,1,50,1,3,127074,0,11740.07,24.89391,0,13,1,4.987531,0,0,0,0,4.987531,0,0,0,1,0,1,75.8,0,0,,1000,1000,0,0,0,6.907755,0,3.931826,7.600903,1,0,0,66.68941,9.370849,0,1.606941,1 +10,1,50,1,4,127074,0,11740.07,25.89391,0,13,1,5.532504,0,0,0,0,5.532504,0,0,0,1,0,1,75.8,0,0,,1000,1000,0,0,0,6.907755,0,3.931826,7.600903,1,0,0,66.68941,9.370849,0,1.71064,1 +10,1,50,1,5,127074,0,11740.07,26.89391,0,13,1,0,0,0,0,0,0,0,0,0,0,0,1,75.8,0,0,,1000,1000,0,0,0,6.907755,0,3.931826,7.600903,1,0,0,66.68941,9.370849,0,,0 +4,1,100,1,1,127075,0,7539.082,.8158795,0,12,1,20.38369,1.306954,0,0,0,21.69065,0,0,0,2,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,0,0,0,80.7198,8.927988,1.386294,3.076881,1 +4,1,100,1,2,127075,0,7539.082,1.81588,0,12,1,20.26287,1.484118,0,0,0,21.74699,0,0,0,2,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,0,0,0,80.7198,8.927988,1.386294,3.079475,1 +4,1,100,1,3,127075,0,7539.082,2.81588,0,12,1,7.98005,0,0,0,0,7.98005,0,0,0,1,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,0,0,0,80.7198,8.927988,1.386294,2.076945,1 +4,1,100,1,4,127075,0,7539.082,3.81588,0,12,1,14.75334,0,0,0,0,14.75334,0,0,0,2,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,0,0,0,80.7198,8.927988,1.386294,2.69147,1 +4,1,100,1,5,127075,0,7539.082,4.815879,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,0,0,0,80.7198,8.927988,1.386294,,0 +4,1,100,1,1,127076,0,7539.082,25.78508,0,12,1,17.38609,0,0,0,0,17.38609,0,0,0,1,0,4,97.9,4.3,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,78.25877,8.927988,1.386294,2.85567,1 +4,1,100,1,2,127076,0,7539.082,26.78508,0,12,1,2.190581,0,47.27273,0,0,49.46331,0,0,0,0,0,4,97.9,4.3,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,78.25877,8.927988,1.386294,3.901231,1 +4,1,100,1,3,127076,0,7539.082,27.78508,0,12,1,9.476309,0,0,0,0,9.476309,0,0,0,1,0,4,97.9,4.3,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,78.25877,8.927988,1.386294,2.248795,1 +4,1,100,1,4,127076,0,7539.082,28.78508,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,97.9,4.3,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,78.25877,8.927988,1.386294,,0 +4,1,100,1,5,127076,0,7539.082,29.78508,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,97.9,4.3,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,78.25877,8.927988,1.386294,,0 +4,1,100,1,1,127077,0,7539.082,3.531827,0,12,1,16.18705,1.306954,0,0,0,17.49401,0,0,0,2,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,1,0,0,70.5428,8.927988,1.386294,2.861858,1 +4,1,100,1,2,127077,0,7539.082,4.531827,0,12,1,50.38335,15.73932,0,0,307.6396,373.7623,1,0,0,6,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,1,0,0,70.5428,8.927988,1.386294,5.92362,1 +4,1,100,1,3,127077,0,7539.082,5.531827,0,12,1,19.95012,1.391521,0,0,0,21.34165,0,0,0,3,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,1,0,0,70.5428,8.927988,1.386294,3.06066,1 +4,1,100,1,4,127077,0,7539.082,6.531827,0,12,1,18.44168,3.379437,0,0,191.9087,213.7298,1,1,0,2,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,1,0,0,70.5428,8.927988,1.386294,5.364713,1 +4,1,100,1,5,127077,0,7539.082,7.531827,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,1,0,0,70.5428,8.927988,1.386294,,0 +4,1,100,1,1,127078,0,7539.082,23.96715,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,83.2,13,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,79.14996,8.927988,1.386294,,0 +4,1,100,1,2,127078,0,7539.082,24.96715,1,12,1,42.71632,4.83023,34.33735,0,0,81.8839,0,0,0,4,1,4,83.2,13,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,79.14996,8.927988,1.386294,4.405303,1 +4,1,100,1,3,127078,0,7539.082,25.96715,1,12,1,34.91272,3.241895,0,0,0,38.15461,0,0,0,3,0,4,83.2,13,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,79.14996,8.927988,1.386294,3.641647,1 +4,1,100,1,4,127078,0,7539.082,26.96715,1,12,1,7.376671,2.434302,0,0,0,9.810973,0,0,0,1,0,4,83.2,13,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,79.14996,8.927988,1.386294,2.283501,1 +4,1,100,1,5,127078,0,7539.082,27.96715,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,83.2,13,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,79.14996,8.927988,1.386294,,0 +5,1,25,1,1,127097,0,8867.866,.9089665,1,16,1,110.1296,20.01178,0,0,0,130.1413,0,0,0,15,0,4,74.36826,13.73189,0,,640,640,1,1,1.386294,6.461468,0,3.258096,7.847763,1,0,0,73.34382,9.090302,1.386294,4.868621,1 +5,1,25,1,2,127097,0,8867.866,1.908966,1,16,1,21.02426,7.929919,0,0,0,28.95418,0,0,0,4,0,4,74.36826,13.73189,0,,640,640,1,1,1.386294,6.461468,0,3.258096,7.847763,1,0,0,73.34382,9.090302,1.386294,3.365715,1 +5,1,25,1,3,127097,0,8867.866,2.908967,1,16,1,52.92383,6.240786,0,0,0,59.16462,0,0,0,6,1,4,74.36826,13.73189,0,,640,640,1,1,1.386294,6.461468,0,3.258096,7.847763,1,0,0,73.34382,9.090302,1.386294,4.080324,1 +5,1,25,1,1,127098,0,8867.866,34.62286,0,16,1,125.4417,25.9364,0,0,0,151.3781,0,0,0,11,0,4,57.9,30.4,1,,640,640,0,0,1.386294,6.461468,0,3.258096,7.847763,0,1,0,63.20214,9.090302,1.386294,5.019781,1 +5,1,25,1,2,127098,0,8867.866,35.62286,0,16,1,13.47709,1.061995,0,0,0,14.53908,0,0,0,1,0,4,57.9,30.4,1,,640,640,0,0,1.386294,6.461468,0,3.258096,7.847763,0,1,0,63.20214,9.090302,1.386294,2.676841,1 +5,1,25,1,3,127098,0,8867.866,36.62286,0,16,1,133.1695,1.965602,50.84029,0,242.7568,428.7322,1,0,0,6,1,4,57.9,30.4,1,,640,640,0,0,1.386294,6.461468,0,3.258096,7.847763,0,1,0,63.20214,9.090302,1.386294,6.060833,1 +5,1,25,1,1,127099,0,8867.866,3.931554,1,16,1,44.75854,15.00589,0,0,0,59.76443,0,0,0,7,0,4,74.36826,13.73189,0,,640,640,1,1,1.386294,6.461468,0,3.258096,7.847763,1,0,0,70.0731,9.090302,1.386294,4.090411,1 +5,1,25,1,2,127099,0,8867.866,4.931554,1,16,1,32.8841,13.29919,0,0,0,46.18329,0,0,0,6,0,4,74.36826,13.73189,0,,640,640,1,1,1.386294,6.461468,0,3.258096,7.847763,1,0,0,70.0731,9.090302,1.386294,3.832618,1 +5,1,25,1,3,127099,0,8867.866,5.931554,1,16,1,26.53563,4.825553,0,0,0,31.36118,0,0,0,5,0,4,74.36826,13.73189,0,,640,640,1,1,1.386294,6.461468,0,3.258096,7.847763,1,0,0,70.0731,9.090302,1.386294,3.445571,1 +5,1,25,1,1,127100,0,8867.866,33.295,1,16,1,50.05889,18.32155,45.02356,0,0,113.404,0,0,0,2,1,4,83.2,26.1,0,,640,640,0,0,1.386294,6.461468,0,3.258096,7.847763,0,0,0,75.64986,9.090302,1.386294,4.730957,1 +5,1,25,1,2,127100,0,8867.866,34.295,1,16,1,465.6334,18.71698,0,0,0,484.3504,0,0,0,9,0,4,83.2,26.1,0,,640,640,0,0,1.386294,6.461468,0,3.258096,7.847763,0,0,0,75.64986,9.090302,1.386294,6.182808,1 +5,1,25,1,3,127100,0,8867.866,35.295,1,16,1,84.02949,13.94595,0,0,0,97.97543,0,0,0,4,0,4,83.2,26.1,0,,640,640,0,0,1.386294,6.461468,0,3.258096,7.847763,0,0,0,75.64986,9.090302,1.386294,4.584717,1 +11,1,0,0,1,127104,0,14157.57,52,1,13,1,42.56595,58.15348,34.43045,0,0,135.1499,0,0,0,4,0,2,82.5,13.73189,0,,0,166,0,0,.6931472,5.111988,0,0,0,1,0,0,67.18981,9.558075,.6931472,4.906384,1 +11,1,0,0,2,127104,0,14157.57,53,1,13,1,33.954,49.09639,0,0,0,83.05038,0,0,0,4,0,2,82.5,13.73189,0,,0,166,0,0,.6931472,5.111988,0,0,0,1,0,0,67.18981,9.558075,.6931472,4.419447,1 +11,1,0,0,3,127104,0,14157.57,54,1,13,1,47.8803,35.03741,0,0,0,82.91771,0,0,0,6,0,2,82.5,13.73189,0,,0,166,0,0,.6931472,5.111988,0,0,0,1,0,0,67.18981,9.558075,.6931472,4.417849,1 +11,1,0,0,1,127105,0,14157.57,51.43327,0,12,1,80.93525,9.106714,0,0,0,90.04197,0,0,0,2,0,2,68.8,13.73189,0,,0,166,0,0,.6931472,5.111988,0,0,0,0,0,0,70.86036,9.558075,.6931472,4.500276,1 +11,1,0,0,2,127105,0,14157.57,52.43327,0,12,1,60.24096,3.444688,0,0,0,63.68565,0,0,0,1,0,2,68.8,13.73189,0,,0,166,0,0,.6931472,5.111988,0,0,0,0,0,0,70.86036,9.558075,.6931472,4.153959,1 +11,1,0,0,3,127105,0,14157.57,53.43327,0,12,1,30.92269,7.047381,16.6783,0,0,54.64838,0,0,0,5,0,2,68.8,13.73189,0,,0,166,0,0,.6931472,5.111988,0,0,0,0,0,0,70.86036,9.558075,.6931472,4.000919,1 +11,1,0,0,1,127106,0,7895.782,22.43669,1,16,1,111.5108,12.47602,42.44005,0,0,166.4269,0,0,0,5,0,1,71.3,13.73189,0,,0,166,0,0,0,5.111988,0,0,0,0,0,0,75.76809,8.974211,0,5.114556,1 +11,1,0,0,2,127106,0,7895.782,23.43669,1,16,1,57.63965,14.15115,0,0,0,71.7908,0,0,0,5,0,1,71.3,13.73189,0,,0,166,0,0,0,5.111988,0,0,0,0,0,0,75.76809,8.974211,0,4.273757,1 +11,1,0,0,3,127106,0,7895.782,24.43669,1,16,1,73.71571,0,0,0,0,73.71571,0,0,0,3,1,1,71.3,13.73189,0,,0,166,0,0,0,5.111988,0,0,0,0,0,0,75.76809,8.974211,0,4.300216,1 +5,1,25,1,1,127107,0,8823.201,22.49966,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,80,0,0,,500,500,0,0,1.386294,6.214608,0,3.258096,7.600903,0,0,0,74.03484,9.085254,1.386294,,0 +5,1,25,1,2,127107,0,8823.201,23.49966,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,80,0,0,,500,500,0,0,1.386294,6.214608,0,3.258096,7.600903,0,0,0,74.03484,9.085254,1.386294,,0 +5,1,25,1,3,127107,0,8823.201,24.49966,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,80,0,0,,500,500,0,0,1.386294,6.214608,0,3.258096,7.600903,0,0,0,74.03484,9.085254,1.386294,,0 +5,1,25,1,4,127107,0,8823.201,25.49966,0,11,1,0,7.155879,0,0,0,7.155879,0,0,0,0,0,4,80,0,0,,500,500,0,0,1.386294,6.214608,0,3.258096,7.600903,0,0,0,74.03484,9.085254,1.386294,1.967934,1 +5,1,25,1,5,127107,0,8823.201,26.49966,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,80,0,0,,500,500,0,0,1.386294,6.214608,0,3.258096,7.600903,0,0,0,74.03484,9.085254,1.386294,,0 +5,1,25,1,1,127108,0,8823.201,3.909651,0,12,1,73.52768,22.10247,0,0,0,95.63015,0,0,0,8,0,4,74.36826,13.73189,0,,500,500,1,0,1.386294,6.214608,0,3.258096,7.600903,0,0,0,80.33704,9.085254,1.386294,4.560488,1 +5,1,25,1,2,127108,0,8823.201,4.909651,0,12,1,15.63342,14.85175,0,0,783.3207,813.8059,1,0,0,3,0,4,74.36826,13.73189,0,,500,500,1,0,1.386294,6.214608,0,3.258096,7.600903,0,0,0,80.33704,9.085254,1.386294,6.701722,1 +5,1,25,1,3,127108,0,8823.201,5.909651,0,12,1,10.31941,4.186732,0,0,0,14.50614,0,0,0,2,0,4,74.36826,13.73189,0,,500,500,1,0,1.386294,6.214608,0,3.258096,7.600903,0,0,0,80.33704,9.085254,1.386294,2.674572,1 +5,1,25,1,4,127108,0,8823.201,6.909651,0,12,1,30.53783,7.848678,0,0,0,38.38651,0,0,0,4,0,4,74.36826,13.73189,0,,500,500,1,0,1.386294,6.214608,0,3.258096,7.600903,0,0,0,80.33704,9.085254,1.386294,3.647706,1 +5,1,25,1,5,127108,0,8823.201,7.909651,0,12,1,5.418924,1.763235,0,0,0,7.182159,0,0,0,1,0,4,74.36826,13.73189,0,,500,500,1,0,1.386294,6.214608,0,3.258096,7.600903,0,0,0,80.33704,9.085254,1.386294,1.9716,1 +5,1,25,1,1,127109,0,8823.201,1.629021,1,12,1,49.46996,25.78916,0,0,0,75.25912,0,0,0,10,0,4,74.36826,13.73189,0,,500,500,1,1,1.386294,6.214608,0,3.258096,7.600903,0,0,0,79.82306,9.085254,1.386294,4.320937,1 +5,1,25,1,2,127109,0,8823.201,2.629021,1,12,1,67.22372,2.867924,0,0,0,70.09164,0,0,0,6,0,4,74.36826,13.73189,0,,500,500,1,1,1.386294,6.214608,0,3.258096,7.600903,0,0,0,79.82306,9.085254,1.386294,4.249804,1 +5,1,25,1,3,127109,0,8823.201,3.629021,1,12,1,56.26536,0,0,0,0,56.26536,0,0,0,2,0,4,74.36826,13.73189,0,,500,500,1,1,1.386294,6.214608,0,3.258096,7.600903,0,0,0,79.82306,9.085254,1.386294,4.030079,1 +5,1,25,1,4,127109,0,8823.201,4.629021,1,12,1,11.50866,0,0,0,0,11.50866,0,0,0,1,0,4,74.36826,13.73189,0,,500,500,1,1,1.386294,6.214608,0,3.258096,7.600903,0,0,0,79.82306,9.085254,1.386294,2.4431,1 +5,1,25,1,5,127109,0,8823.201,5.629021,1,12,1,49.48729,2.796999,0,0,0,52.28429,0,0,0,2,0,4,74.36826,13.73189,0,,500,500,1,1,1.386294,6.214608,0,3.258096,7.600903,0,0,0,79.82306,9.085254,1.386294,3.956696,1 +5,1,25,1,1,127110,0,8823.201,21.95756,1,12,1,546.7314,14.18139,0,0,0,560.9128,0,0,0,6,0,4,70.5,26.1,0,,500,500,0,0,1.386294,6.214608,0,3.258096,7.600903,0,0,0,79.01614,9.085254,1.386294,6.329566,1 +5,1,25,1,2,127110,0,8823.201,22.95756,1,12,1,16.71159,18.18868,24.22642,5.390836,0,59.12669,0,0,1,1,0,4,70.5,26.1,0,,500,500,0,0,1.386294,6.214608,0,3.258096,7.600903,0,0,0,79.01614,9.085254,1.386294,4.079682,1 +5,1,25,1,3,127110,0,8823.201,23.95756,1,12,1,24.57002,4.894349,0,0,0,29.46437,0,0,0,4,0,4,70.5,26.1,0,,500,500,0,0,1.386294,6.214608,0,3.258096,7.600903,0,0,0,79.01614,9.085254,1.386294,3.383182,1 +5,1,25,1,4,127110,0,8823.201,24.95756,1,12,1,13.67366,0,0,0,0,13.67366,0,0,0,1,0,4,70.5,26.1,0,,500,500,0,0,1.386294,6.214608,0,3.258096,7.600903,0,0,0,79.01614,9.085254,1.386294,2.615471,1 +5,1,25,1,5,127110,0,8823.201,25.95756,1,12,1,11.25469,18.42018,0,0,0,29.67486,0,0,0,1,0,4,70.5,26.1,0,,500,500,0,0,1.386294,6.214608,0,3.258096,7.600903,0,0,0,79.01614,9.085254,1.386294,3.3903,1 +2,1,100,0,1,127133,0,7798.387,56.5065,1,12,1,0,31.35453,0,0,0,31.35453,0,0,0,0,0,2,83.2,26.1,0,,600,600,0,0,.6931472,6.39693,1,0,0,1,0,0,67.63052,8.961801,.6931472,3.445359,1 +2,1,100,0,2,127133,0,7798.387,57.5065,1,12,1,439.3046,30.83019,49.01348,0,0,519.1483,0,0,0,4,1,2,83.2,26.1,0,,600,600,0,0,.6931472,6.39693,1,0,0,1,0,0,67.63052,8.961801,.6931472,6.25219,1 +2,1,100,0,3,127133,0,7798.387,58.5065,1,12,1,17.19902,21.14496,0,0,0,38.34398,0,0,0,0,0,2,83.2,26.1,0,,600,600,0,0,.6931472,6.39693,1,0,0,1,0,0,67.63052,8.961801,.6931472,3.646598,1 +2,1,100,0,4,127133,0,7798.387,59.5065,1,12,1,11.39471,10.08204,28.10392,0,0,49.58067,0,0,0,0,1,2,83.2,26.1,0,,600,600,0,0,.6931472,6.39693,1,0,0,1,0,0,67.63052,8.961801,.6931472,3.903601,1 +2,1,100,0,5,127133,0,7798.387,60.5065,1,12,1,60.0792,25.33973,12.50521,0,0,97.92413,0,0,0,2,0,2,83.2,26.1,0,,600,600,0,0,.6931472,6.39693,1,0,0,1,0,0,67.63052,8.961801,.6931472,4.584193,1 +2,1,100,0,1,127134,0,7798.387,56.61876,0,11,1,104.5347,16.35453,0,0,0,120.8893,0,0,0,4,0,2,91.6,4.3,0,,600,600,0,0,.6931472,6.39693,1,0,0,0,0,0,73.34084,8.961801,.6931472,4.794875,1 +2,1,100,0,2,127134,0,7798.387,57.61876,0,11,1,2.695418,15.50943,0,0,0,18.20485,0,0,0,1,0,2,91.6,4.3,0,,600,600,0,0,.6931472,6.39693,1,0,0,0,0,0,73.34084,8.961801,.6931472,2.901688,1 +2,1,100,0,3,127134,0,7798.387,58.61876,0,11,1,0,20.05405,0,0,0,20.05405,0,0,0,0,0,2,91.6,4.3,0,,600,600,0,0,.6931472,6.39693,1,0,0,0,0,0,73.34084,8.961801,.6931472,2.998431,1 +2,1,100,0,4,127134,0,7798.387,59.61876,0,11,1,16.40839,.756609,0,0,0,17.165,0,0,0,1,0,2,91.6,4.3,0,,600,600,0,0,.6931472,6.39693,1,0,0,0,0,0,73.34084,8.961801,.6931472,2.842872,1 +2,1,100,0,5,127134,0,7798.387,60.61876,0,11,1,192.6928,15.47311,0,0,3459.266,3667.432,1,0,0,7,0,2,91.6,4.3,0,,600,600,0,0,.6931472,6.39693,1,0,0,0,0,0,73.34084,8.961801,.6931472,8.207247,1 +1,1,0,1,1,127135,0,10474.57,10.31348,1,11,1,11.60024,6.353361,0,0,0,17.9536,0,0,0,1,0,8,74.36826,13.73189,0,,450,0,1,1,2.079442,0,1,0,0,0,0,0,79.74134,9.256801,2.079442,2.887791,1 +1,1,0,1,2,127135,0,10474.57,11.31348,1,11,1,0,0,0,0,0,0,0,0,0,0,0,8,74.36826,13.73189,0,,450,0,1,1,2.079442,0,1,0,0,0,0,0,79.74134,9.256801,2.079442,,0 +1,1,0,1,3,127135,0,10474.57,12.31348,1,11,1,0,0,0,0,0,0,0,0,0,0,0,8,74.36826,13.73189,0,,450,0,1,1,2.079442,0,1,0,0,0,0,0,79.74134,9.256801,2.079442,,0 +1,1,0,1,4,127135,0,10474.57,13.31348,1,11,1,0,0,0,0,0,0,0,0,0,0,0,8,74.36826,13.73189,0,,450,0,1,1,2.079442,0,1,0,0,0,0,0,79.74134,9.256801,2.079442,,0 +1,1,0,1,5,127135,0,10474.57,14.31348,1,11,1,0,0,0,0,0,0,0,0,0,0,0,8,74.36826,13.73189,0,,450,0,1,1,2.079442,0,1,0,0,0,0,0,79.74134,9.256801,2.079442,,0 +1,1,0,1,1,127136,0,10474.57,39.59206,1,11,1,39.26234,32.86139,0,0,0,72.12373,0,0,0,5,0,8,36.8,17.4,0,,450,0,0,0,2.079442,0,1,0,0,1,0,0,67.32787,9.256801,2.079442,4.278383,1 +1,1,0,1,2,127136,0,10474.57,40.59206,1,11,1,73.2172,0,0,0,0,73.2172,0,0,0,3,0,8,36.8,17.4,0,,450,0,0,0,2.079442,0,1,0,0,1,0,0,67.32787,9.256801,2.079442,4.29343,1 +1,1,0,1,3,127136,0,10474.57,41.59206,1,11,1,0,18.13677,0,0,0,18.13677,0,0,0,0,0,8,36.8,17.4,0,,450,0,0,0,2.079442,0,1,0,0,1,0,0,67.32787,9.256801,2.079442,2.897941,1 +1,1,0,1,4,127136,0,10474.57,42.59206,1,11,1,147.6595,57.96237,34.4883,0,0,240.1101,0,0,0,9,2,8,36.8,17.4,0,,450,0,0,0,2.079442,0,1,0,0,1,0,0,67.32787,9.256801,2.079442,5.481098,1 +1,1,0,1,5,127136,0,10474.57,43.59206,1,11,1,138.2836,46.2053,33.30669,88.34666,0,217.7955,0,0,7,9,3,8,36.8,17.4,0,,450,0,0,0,2.079442,0,1,0,0,1,0,0,67.32787,9.256801,2.079442,5.383557,1 +1,1,0,1,1,127137,0,10474.57,18.88296,0,9,1,0,0,0,0,0,0,0,0,0,0,0,8,73.7,8.7,0,,450,0,0,0,2.079442,0,1,0,0,0,0,0,71.0389,9.256801,2.079442,,0 +1,1,0,1,2,127137,0,10474.57,19.88296,0,9,1,0,0,0,0,0,0,0,0,0,0,0,8,73.7,8.7,0,,450,0,0,0,2.079442,0,1,0,0,0,0,0,71.0389,9.256801,2.079442,,0 +1,1,0,1,3,127137,0,10474.57,20.88296,0,9,1,43.11199,.9910803,0,0,0,44.10307,0,0,0,5,0,8,73.7,8.7,0,,450,0,0,0,2.079442,0,1,0,0,0,0,0,71.0389,9.256801,2.079442,3.78653,1 +1,1,0,1,4,127137,0,10474.57,21.88296,0,9,1,14.22671,3.469481,0,0,0,17.69619,0,0,0,2,0,8,73.7,8.7,0,,450,0,0,0,2.079442,0,1,0,0,0,0,0,71.0389,9.256801,2.079442,2.873349,1 +1,1,0,1,5,127137,0,10474.57,22.88296,0,9,1,0,0,0,0,0,0,0,0,0,0,0,8,73.7,8.7,0,,450,0,0,0,2.079442,0,1,0,0,0,0,0,71.0389,9.256801,2.079442,,0 +1,1,0,1,1,127138,0,10474.57,40.93361,0,4,1,0,3.765616,0,0,0,3.765616,0,0,0,0,0,8,60,8.7,0,,450,0,0,0,2.079442,0,1,0,0,0,0,0,73.24482,9.256801,2.079442,1.325911,1 +1,1,0,1,2,127138,0,10474.57,41.93361,0,4,1,8.165487,0,44.94828,0,0,53.11377,0,0,0,0,1,8,60,8.7,0,,450,0,0,0,2.079442,0,1,0,0,0,0,0,73.24482,9.256801,2.079442,3.972436,1 +1,1,0,1,3,127138,0,10474.57,42.93361,0,4,1,11.39742,1.942517,0,0,0,13.33994,0,0,0,0,1,8,60,8.7,0,,450,0,0,0,2.079442,0,1,0,0,0,0,0,73.24482,9.256801,2.079442,2.590763,1 +1,1,0,1,4,127138,0,10474.57,43.93361,0,4,1,76.84718,12.93254,0,0,1469.986,1559.766,1,0,0,2,0,8,60,8.7,0,,450,0,0,0,2.079442,0,1,0,0,0,0,0,73.24482,9.256801,2.079442,7.352291,1 +1,1,0,1,5,127138,0,10474.57,44.93361,0,4,1,69.41523,30.73202,29.01557,0,0,129.1628,0,0,0,3,1,8,60,8.7,0,,450,0,0,0,2.079442,0,1,0,0,0,0,0,73.24482,9.256801,2.079442,4.861073,1 +1,1,0,1,1,127139,0,10474.57,16.18891,1,11,1,16.95419,3.604997,0,0,0,20.55919,0,0,0,2,0,8,43.2,13,0,,450,0,1,1,2.079442,0,1,0,0,0,0,0,67.54826,9.256801,2.079442,3.023308,1 +1,1,0,1,2,127139,0,10474.57,17.18891,1,11,1,0,0,0,0,0,0,0,0,0,0,0,8,43.2,13,0,,450,0,1,1,2.079442,0,1,0,0,0,0,0,67.54826,9.256801,2.079442,,0 +1,1,0,1,3,127139,0,10474.57,18.18891,1,11,1,0,0,0,0,0,0,0,0,0,0,0,8,43.2,13,0,,450,0,0,0,2.079442,0,1,0,0,0,0,0,67.54826,9.256801,2.079442,,0 +1,1,0,1,4,127139,0,10474.57,19.18891,1,11,1,10.09637,1.684259,35.00689,0,0,46.78752,0,0,0,0,1,8,43.2,13,0,,450,0,0,0,2.079442,0,1,0,0,0,0,0,67.54826,9.256801,2.079442,3.845616,1 +1,1,0,1,5,127139,0,10474.57,20.18891,1,11,1,21.03492,0,0,0,0,21.03492,0,0,0,3,0,8,43.2,13,0,,450,0,0,0,2.079442,0,1,0,0,0,0,0,67.54826,9.256801,2.079442,3.046184,1 +1,1,0,1,1,127140,0,10474.57,12.73922,0,11,1,0,0,0,0,0,0,0,0,0,0,0,8,74.36826,13.73189,0,,450,0,1,0,2.079442,0,1,0,0,0,0,0,77.94382,9.256801,2.079442,,0 +1,1,0,1,2,127140,0,10474.57,13.73922,0,11,1,0,0,0,0,0,0,0,0,0,0,0,8,74.36826,13.73189,0,,450,0,1,0,2.079442,0,1,0,0,0,0,0,77.94382,9.256801,2.079442,,0 +1,1,0,1,3,127140,0,10474.57,14.73922,0,11,1,26.26363,12.00198,0,0,0,38.26561,0,0,0,2,0,8,74.36826,13.73189,0,,450,0,1,0,2.079442,0,1,0,0,0,0,0,77.94382,9.256801,2.079442,3.644552,1 +1,1,0,1,4,127140,0,10474.57,15.73922,0,11,1,96.94814,7.88894,0,0,0,104.8371,0,0,0,6,0,8,74.36826,13.73189,0,,450,0,1,0,2.079442,0,1,0,0,0,0,0,77.94382,9.256801,2.079442,4.652408,1 +1,1,0,1,5,127140,0,10474.57,16.73922,0,11,1,9.255363,0,0,0,0,9.255363,0,0,0,1,0,8,74.36826,13.73189,0,,450,0,1,0,2.079442,0,1,0,0,0,0,0,77.94382,9.256801,2.079442,2.225203,1 +1,1,0,1,1,127141,0,10474.57,17.51951,0,11,1,8.328376,0,0,0,0,8.328376,0,0,0,1,0,8,63.2,8.7,0,,450,0,1,0,2.079442,0,1,0,0,0,0,0,72.88496,9.256801,2.079442,2.119668,1 +1,1,0,1,2,127141,0,10474.57,18.51951,0,11,1,0,0,0,0,0,0,0,0,0,0,0,8,63.2,8.7,0,,450,0,0,0,2.079442,0,1,0,0,0,0,0,72.88496,9.256801,2.079442,,0 +1,1,0,1,3,127141,0,10474.57,19.51951,0,11,1,0,0,0,0,0,0,0,0,0,0,0,8,63.2,8.7,0,,450,0,0,0,2.079442,0,1,0,0,0,0,0,72.88496,9.256801,2.079442,,0 +1,1,0,1,4,127141,0,10474.57,20.51951,0,11,1,39.59615,2.202845,0,0,0,41.79899,0,0,0,1,0,8,63.2,8.7,0,,450,0,0,0,2.079442,0,1,0,0,0,0,0,72.88496,9.256801,2.079442,3.732872,1 +1,1,0,1,5,127141,0,10474.57,21.51951,0,11,1,33.44552,0,0,0,0,33.44552,0,0,0,1,0,8,63.2,8.7,0,,450,0,0,0,2.079442,0,1,0,0,0,0,0,72.88496,9.256801,2.079442,3.509918,1 +11,1,0,1,1,127158,0,8062.035,60.58316,1,13,1,170.7317,82.06425,0,0,0,252.796,0,0,0,2,1,1,80,26.1,0,,0,0,0,0,0,0,0,0,0,1,0,0,73.09361,8.995046,0,5.532583,1 +11,1,0,1,2,127158,0,8062.035,61.58316,1,13,1,219.9238,49.15623,44.37126,0,0,313.4513,0,0,0,38,0,1,80,26.1,0,,0,0,0,0,0,0,0,0,0,1,0,0,73.09361,8.995046,0,5.747644,1 +11,1,0,1,3,127158,0,8062.035,62.58316,1,13,1,95.63924,79.23687,0,0,0,174.8761,0,0,0,22,0,1,80,26.1,0,,0,0,0,0,0,0,0,0,0,1,0,0,73.09361,8.995046,0,5.164078,1 +11,1,0,0,1,127174,0,10403.23,13.7577,1,12,1,51.82568,15.08834,0,0,0,66.91402,0,0,0,6,0,8,74.36826,13.73189,0,,0,60,1,1,2.079442,4.094345,0,0,0,0,0,0,83.22755,9.249968,2.079442,4.203408,1 +11,1,0,0,2,127174,0,10403.23,14.7577,1,12,1,0,0,0,0,0,0,0,0,0,0,0,7,74.36826,13.73189,0,,0,60,1,1,1.94591,4.094345,0,0,0,0,0,0,83.22755,9.249968,1.94591,,0 +11,1,0,0,3,127174,0,10403.23,15.7577,1,12,1,14.25061,0,2.457002,0,0,16.70762,0,0,0,1,0,7,74.36826,13.73189,0,,0,60,1,1,1.94591,4.094345,0,0,0,0,0,0,83.22755,9.249968,1.94591,2.815865,1 +11,1,0,0,4,127174,0,10403.23,16.7577,1,12,1,5.925251,0,0,0,0,5.925251,0,0,0,1,0,7,74.36826,13.73189,0,,0,60,1,1,1.94591,4.094345,0,0,0,0,0,0,83.22755,9.249968,1.94591,1.779223,1 +11,1,0,0,5,127174,0,10403.23,17.7577,1,12,1,16.88203,2.755315,0,0,0,19.63735,0,0,0,1,0,7,74.36826,13.73189,0,,0,60,1,1,1.94591,4.094345,0,0,0,0,0,0,83.22755,9.249968,1.94591,2.977433,1 +11,1,0,0,1,127175,0,10403.23,16.30938,0,12,1,34.74676,3.533569,36.9258,0,0,75.20612,0,0,0,4,1,8,80,0,0,,0,60,1,0,2.079442,4.094345,0,0,0,0,0,0,79.33826,9.249968,2.079442,4.320233,1 +11,1,0,0,2,127175,0,10403.23,17.30938,0,12,1,28.57143,9.105122,0,0,0,37.67655,0,0,0,3,0,7,80,0,0,,0,60,1,0,1.94591,4.094345,0,0,0,0,0,0,79.33826,9.249968,1.94591,3.629038,1 +11,1,0,0,3,127175,0,10403.23,18.30938,0,12,1,12.53071,3.710074,0,0,0,16.24079,0,0,0,1,0,7,80,0,0,,0,60,0,0,1.94591,4.094345,0,0,0,0,0,0,79.33826,9.249968,1.94591,2.787526,1 +11,1,0,0,4,127175,0,10403.23,19.30938,0,12,1,49.64449,3.755697,0,0,0,53.40018,0,0,0,3,0,7,80,0,0,,0,60,0,0,1.94591,4.094345,0,0,0,0,0,0,79.33826,9.249968,1.94591,3.977814,1 +11,1,0,0,5,127175,0,10403.23,20.30938,0,12,1,138.1826,3.989162,0,0,0,142.1717,0,0,0,5,0,7,80,0,0,,0,60,0,0,1.94591,4.094345,0,0,0,0,0,0,79.33826,9.249968,1.94591,4.957036,1 +11,1,0,0,1,127176,0,10403.23,17.25667,0,12,1,83.53946,4.941107,0,0,0,88.48057,0,0,0,5,1,8,92.2,0,0,,0,60,1,0,2.079442,4.094345,0,0,0,0,0,0,79.33826,9.249968,2.079442,4.482783,1 +11,1,0,0,2,127176,0,10403.23,18.25667,0,12,1,0,0,0,0,0,0,0,0,0,0,0,7,92.2,0,0,,0,60,0,0,1.94591,4.094345,0,0,0,0,0,0,79.33826,9.249968,1.94591,,0 +11,1,0,0,3,127176,0,10403.23,19.25667,0,12,1,8.353808,3.012285,0,0,0,11.36609,0,0,0,1,0,7,92.2,0,0,,0,60,0,0,1.94591,4.094345,0,0,0,0,0,0,79.33826,9.249968,1.94591,2.430635,1 +11,1,0,0,4,127176,0,10403.23,20.25667,0,12,1,5.925251,7.452142,0,0,0,13.37739,0,0,0,1,0,7,92.2,0,0,,0,60,0,0,1.94591,4.094345,0,0,0,0,0,0,79.33826,9.249968,1.94591,2.593566,1 +11,1,0,0,5,127176,0,10403.23,21.25667,0,12,1,0,0,0,0,0,0,0,0,0,0,0,7,92.2,0,0,,0,60,0,0,1.94591,4.094345,0,0,0,0,0,0,79.33826,9.249968,1.94591,,0 +11,1,0,0,1,127177,0,10403.23,41.25941,0,17,.8876712,176.119,1.766784,0,0,0,177.8857,0,0,0,6,0,8,81.1,13,0,,0,60,0,0,2.079442,4.094345,0,0,0,0,0,0,76.12859,9.249968,2.079442,5.181141,1 +11,1,0,0,1,127178,0,10403.23,6.485969,1,12,1,8.833922,0,0,0,0,8.833922,0,0,0,0,1,8,74.36826,13.73189,0,,0,60,1,1,2.079442,4.094345,0,0,0,0,0,0,83.22755,9.249968,2.079442,2.178599,1 +11,1,0,0,2,127178,0,10403.23,7.485969,1,12,1,0,0,0,0,0,0,0,0,0,0,0,7,74.36826,13.73189,0,,0,60,1,1,1.94591,4.094345,0,0,0,0,0,0,83.22755,9.249968,1.94591,,0 +11,1,0,0,3,127178,0,10403.23,8.485969,1,12,1,8.353808,0,0,0,0,8.353808,0,0,0,0,1,7,74.36826,13.73189,0,,0,60,1,1,1.94591,4.094345,0,0,0,0,0,0,83.22755,9.249968,1.94591,2.122718,1 +11,1,0,0,4,127178,0,10403.23,9.485969,1,12,1,20.96627,4.175023,0,0,0,25.14129,0,0,0,3,0,7,74.36826,13.73189,0,,0,60,1,1,1.94591,4.094345,0,0,0,0,0,0,83.22755,9.249968,1.94591,3.224512,1 +11,1,0,0,5,127178,0,10403.23,10.48597,1,12,1,74.19759,8.69529,0,0,0,82.89288,0,0,0,6,1,7,74.36826,13.73189,0,,0,60,1,1,1.94591,4.094345,0,0,0,0,0,0,83.22755,9.249968,1.94591,4.417549,1 +11,1,0,0,1,127179,0,10403.23,10.9514,1,12,1,14.7232,0,0,0,0,14.7232,0,0,0,1,1,8,74.36826,13.73189,0,,0,60,1,1,2.079442,4.094345,0,0,0,0,0,0,83.22755,9.249968,2.079442,2.689425,1 +11,1,0,0,2,127179,0,10403.23,11.9514,1,12,1,0,0,0,0,0,0,0,0,0,0,0,7,74.36826,13.73189,0,,0,60,1,1,1.94591,4.094345,0,0,0,0,0,0,83.22755,9.249968,1.94591,,0 +11,1,0,0,3,127179,0,10403.23,12.9514,1,12,1,12.53071,0,0,0,0,12.53071,0,0,0,1,0,7,74.36826,13.73189,0,,0,60,1,1,1.94591,4.094345,0,0,0,0,0,0,83.22755,9.249968,1.94591,2.528183,1 +11,1,0,0,4,127179,0,10403.23,13.9514,1,12,1,36.69098,4.453054,0,0,0,41.14403,0,0,0,2,0,7,74.36826,13.73189,0,,0,60,1,1,1.94591,4.094345,0,0,0,0,0,0,83.22755,9.249968,1.94591,3.717079,1 +11,1,0,0,5,127179,0,10403.23,14.9514,1,12,1,41.89246,3.397249,0,0,0,45.2897,0,0,0,3,1,7,74.36826,13.73189,0,,0,60,1,1,1.94591,4.094345,0,0,0,0,0,0,83.22755,9.249968,1.94591,3.81308,1 +11,1,0,0,1,127180,0,10403.23,5.045859,1,12,1,27.67962,7.579505,0,0,0,35.25913,0,0,0,2,1,8,74.36826,13.73189,0,,0,60,1,1,2.079442,4.094345,0,0,0,0,0,0,79.79594,9.249968,2.079442,3.562724,1 +11,1,0,0,2,127180,0,10403.23,6.045859,1,12,1,9.703504,6.938005,0,0,0,16.64151,0,0,0,2,0,7,74.36826,13.73189,0,,0,60,1,1,1.94591,4.094345,0,0,0,0,0,0,79.79594,9.249968,1.94591,2.8119,1 +11,1,0,0,3,127180,0,10403.23,7.045859,1,12,1,17.19902,1.371007,0,0,0,18.57002,0,0,0,1,1,7,74.36826,13.73189,0,,0,60,1,1,1.94591,4.094345,0,0,0,0,0,0,79.79594,9.249968,1.94591,2.921549,1 +11,1,0,0,4,127180,0,10403.23,8.045859,1,12,1,25.52416,6.540565,0,0,0,32.06472,0,0,0,4,0,7,74.36826,13.73189,0,,0,60,1,1,1.94591,4.094345,0,0,0,0,0,0,79.79594,9.249968,1.94591,3.467756,1 +11,1,0,0,5,127180,0,10403.23,9.045859,1,12,1,13.33889,2.067528,0,0,0,15.40642,0,0,0,1,1,7,74.36826,13.73189,0,,0,60,1,1,1.94591,4.094345,0,0,0,0,0,0,79.79594,9.249968,1.94591,2.734784,1 +11,1,0,0,1,127182,0,10403.23,42.16564,1,12,1,26.50177,17.54417,24.6172,0,0,68.66313,0,0,0,1,1,8,84.2,13,0,,0,60,0,0,2.079442,4.094345,0,0,0,0,0,0,77.33669,9.249968,2.079442,4.229212,1 +11,1,0,0,2,127182,0,10403.23,43.16564,1,12,1,5.929919,9.681941,0,0,0,15.61186,0,0,0,1,0,7,84.2,13,0,,0,60,0,0,1.94591,4.094345,0,0,0,0,0,0,77.33669,9.249968,1.94591,2.748031,1 +11,1,0,0,3,127182,0,10403.23,44.16564,1,12,1,46.92875,25.14496,34.40786,0,0,106.4816,0,0,0,4,1,7,84.2,13,0,,0,60,0,0,1.94591,4.094345,0,0,0,0,0,0,77.33669,9.249968,1.94591,4.667972,1 +11,1,0,0,4,127182,0,10403.23,45.16564,1,12,1,11.8505,17.41112,0,0,0,29.26162,0,0,0,2,0,7,84.2,13,0,,0,60,0,0,1.94591,4.094345,0,0,0,0,0,0,77.33669,9.249968,1.94591,3.376277,1 +11,1,0,0,5,127182,0,10403.23,46.16564,1,12,1,77.32388,33.23885,27.44477,0,0,138.0075,0,0,0,5,1,7,84.2,13,0,,0,60,0,0,1.94591,4.094345,0,0,0,0,0,0,77.33669,9.249968,1.94591,4.927308,1 +1,1,0,1,1,127199,0,8439.206,38.84737,0,11,1,74.20495,6.478209,0,0,0,80.68316,0,0,0,14,0,2,97.9,21.7,0,,300,300,0,0,.6931472,5.703783,1,0,0,1,0,0,68.78981,9.040762,.6931472,4.39053,1 +1,1,0,1,2,127199,0,8439.206,39.84737,0,11,1,90.97035,3.045822,0,0,0,94.01617,0,0,0,4,0,2,97.9,21.7,0,,300,300,0,0,.6931472,5.703783,1,0,0,1,0,0,68.78981,9.040762,.6931472,4.543467,1 +1,1,0,1,3,127199,0,8439.206,40.84737,0,11,1,83.04668,13.91646,31.76904,0,637.5676,766.2997,1,0,0,11,1,2,97.9,21.7,0,,300,300,0,0,.6931472,5.703783,1,0,0,1,0,0,68.78981,9.040762,.6931472,6.641573,1 +1,1,0,1,4,127199,0,8439.206,41.84737,0,11,1,81.77302,5.64722,0,0,13.67366,101.0939,0,0,0,13,0,2,97.9,21.7,0,,300,300,0,0,.6931472,5.703783,1,0,0,1,0,0,68.78981,9.040762,.6931472,4.61605,1 +1,1,0,1,5,127199,0,8439.206,42.84737,0,11,1,142.7678,30.80867,0,0,0,173.5765,0,0,0,12,0,2,97.9,21.7,0,,300,300,0,0,.6931472,5.703783,1,0,0,1,0,0,68.78981,9.040762,.6931472,5.156619,1 +1,1,0,1,1,127200,0,8439.206,42.18207,1,12,1,182.5677,30.06478,0,0,634.8233,847.4558,1,0,0,24,0,2,89.5,4.3,0,,300,300,0,0,.6931472,5.703783,1,0,0,1,0,0,70.85607,9.040762,.6931472,6.742239,1 +1,1,0,1,2,127200,0,8439.206,43.18207,1,12,1,228.1671,29.54717,21.78437,0,0,279.4987,0,0,0,12,1,2,89.5,4.3,0,,300,300,0,0,.6931472,5.703783,1,0,0,1,0,0,70.85607,9.040762,.6931472,5.632998,1 +1,1,0,1,3,127200,0,8439.206,44.18207,1,12,1,176.1671,53.73464,38.25553,0,1246.246,1514.403,1,0,0,18,0,2,89.5,4.3,0,,300,300,0,0,.6931472,5.703783,1,0,0,1,0,0,70.85607,9.040762,.6931472,7.322776,1 +1,1,0,1,4,127200,0,8439.206,45.18207,1,12,1,173.1996,76.36281,0,0,2648.706,2898.268,2,0,0,19,0,2,89.5,4.3,0,,300,300,0,0,.6931472,5.703783,1,0,0,1,0,0,70.85607,9.040762,.6931472,7.971869,1 +1,1,0,1,5,127200,0,8439.206,46.18207,1,12,1,145.6232,143.4181,44.73948,0,442.0175,775.7983,1,0,0,18,0,2,89.5,4.3,0,,300,300,0,0,.6931472,5.703783,1,0,0,1,0,0,70.85607,9.040762,.6931472,6.653893,1 +10,1,50,0,1,127204,0,3783.499,58.65572,1,12,1,41.22497,8.892815,0,0,0,50.11779,0,0,0,5,0,1,52.6,30.4,1,,0,0,0,0,0,0,0,3.931826,0,1,0,0,65.2276,8.238668,0,3.914376,1 +10,1,50,0,2,127204,0,3783.499,59.65572,1,12,1,499.6765,33.69272,0,0,0,533.3693,0,0,0,23,0,1,52.6,30.4,1,,0,0,0,0,0,0,0,3.931826,0,1,0,0,65.2276,8.238668,0,6.279214,1 +10,1,50,0,3,127204,0,3783.499,60.65572,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,52.6,30.4,1,,0,0,0,0,0,0,0,3.931826,0,1,0,0,65.2276,8.238668,0,,0 +10,1,50,1,1,127205,0,3455.335,26.43942,0,13,1,0,0,0,0,0,0,0,0,0,0,0,1,53.7,34.8,1,,1000,0,0,0,0,0,0,3.931826,7.600903,1,0,0,66.19184,8.147964,0,,0 +10,1,50,1,2,127205,0,3455.335,27.43942,0,13,1,0,0,0,0,0,0,0,0,0,0,0,1,53.7,34.8,1,,1000,0,0,0,0,0,0,3.931826,7.600903,1,0,0,66.19184,8.147964,0,,0 +10,1,50,1,3,127205,0,3455.335,28.43942,0,13,1,0,0,0,0,0,0,0,0,0,0,0,1,53.7,34.8,1,,1000,0,0,0,0,0,0,3.931826,7.600903,1,0,0,66.19184,8.147964,0,,0 +1,1,0,0,1,127206,0,7291.563,28.61054,1,12,1,106.8905,16.87279,0,0,825.4182,949.1814,1,0,0,6,0,4,76.3,13.73189,0,,450,374,0,0,1.386294,5.924256,1,0,0,1,0,0,71.54827,8.89461,1.386294,6.8556,1 +1,1,0,0,2,127206,0,7291.563,29.61054,1,12,1,7.008086,.5390835,0,0,0,7.54717,0,0,0,1,0,4,76.3,13.73189,0,,450,374,0,0,1.386294,5.924256,1,0,0,1,0,0,71.54827,8.89461,1.386294,2.021173,1 +1,1,0,0,3,127206,0,7291.563,30.61054,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,76.3,13.73189,0,,450,374,0,0,1.386294,5.924256,1,0,0,1,0,0,71.54827,8.89461,1.386294,,0 +1,1,0,0,1,127207,0,7291.563,29.08419,0,16,1,0,2.267373,0,0,0,2.267373,0,0,0,0,0,4,86.3,13.73189,0,,450,374,0,0,1.386294,5.924256,1,0,0,0,0,0,78.51466,8.89461,1.386294,.8186221,1 +1,1,0,0,2,127207,0,7291.563,30.08419,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,86.3,13.73189,0,,450,374,0,0,1.386294,5.924256,1,0,0,0,0,0,78.51466,8.89461,1.386294,,0 +1,1,0,0,3,127207,0,7291.563,31.08419,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,86.3,13.73189,0,,450,374,0,0,1.386294,5.924256,1,0,0,0,0,0,78.51466,8.89461,1.386294,,0 +1,1,0,0,1,127208,0,7291.563,1.609856,0,12,1,24.14605,7.302709,0,0,0,31.44876,0,0,0,3,0,4,74.36826,13.73189,0,,450,374,1,0,1.386294,5.924256,1,0,0,0,0,0,79.29922,8.89461,1.386294,3.44836,1 +1,1,0,0,2,127208,0,7291.563,2.609856,0,12,1,29.46092,4.25876,0,0,0,33.71968,0,0,0,3,0,4,74.36826,13.73189,0,,450,374,1,0,1.386294,5.924256,1,0,0,0,0,0,79.29922,8.89461,1.386294,3.518082,1 +1,1,0,0,3,127208,0,7291.563,3.609856,0,12,1,25.06142,8.280098,0,0,0,33.34152,0,0,0,3,0,4,74.36826,13.73189,0,,450,374,1,0,1.386294,5.924256,1,0,0,0,0,0,79.29922,8.89461,1.386294,3.506804,1 +1,1,0,0,1,127209,0,7291.563,4.191649,0,12,1,22.9682,2.090695,0,0,0,25.05889,0,0,0,2,0,4,74.36826,13.73189,0,,450,374,1,0,1.386294,5.924256,1,0,0,0,0,0,78.32853,8.89461,1.386294,3.221229,1 +1,1,0,0,2,127209,0,7291.563,5.191649,0,12,1,9.16442,0,0,0,0,9.16442,0,0,0,1,0,4,74.36826,13.73189,0,,450,374,1,0,1.386294,5.924256,1,0,0,0,0,0,78.32853,8.89461,1.386294,2.215329,1 +1,1,0,0,3,127209,0,7291.563,6.191649,0,12,1,8.845209,4.864865,0,0,0,13.71007,0,0,0,1,0,4,74.36826,13.73189,0,,450,374,1,0,1.386294,5.924256,1,0,0,0,0,0,78.32853,8.89461,1.386294,2.618131,1 +11,1,0,1,1,127217,0,4460.298,56.08487,1,16,1,834.5112,125.4358,286.0718,0,1492.156,2738.174,1,0,0,1,106,1,61.1,21.7,1,,0,0,0,0,0,0,0,0,0,0,0,1,47.66432,8.403195,0,7.915047,1 +11,1,0,1,2,127217,0,4460.298,57.08487,1,16,1,430.1887,142.5067,90.66846,0,0,663.3639,0,0,0,5,38,1,61.1,21.7,1,,0,0,0,0,0,0,0,0,0,0,0,1,47.66432,8.403195,0,6.497324,1 +11,1,0,1,3,127217,0,4460.298,58.08487,1,16,1,457.4939,49.43489,467.7985,0,1704.619,2679.346,1,0,0,3,16,1,61.1,21.7,1,,0,0,0,0,0,0,0,0,0,0,0,1,47.66432,8.403195,0,7.893328,1 +11,1,0,1,4,127217,0,4460.298,59.08487,1,16,1,515.041,0,114.608,0,9089.563,9719.212,3,0,0,9,6,1,61.1,21.7,1,,0,0,0,0,0,0,0,0,0,0,0,1,47.66432,8.403195,0,9.18186,1 +11,1,0,1,5,127217,0,4460.298,60.08487,1,16,1,312.8387,0,180.5544,208.4202,6626.84,7120.233,2,0,10,4,0,1,61.1,21.7,1,,0,0,0,0,0,0,0,0,0,0,0,1,47.66432,8.403195,0,8.870696,1 +11,1,0,1,1,127219,0,5075.062,21.22108,1,13,1,96.10312,29.09472,32.57794,0,0,157.7758,0,0,0,7,0,2,70.5,13,0,,0,0,0,0,.6931472,0,0,0,0,1,0,0,65.88802,8.532291,.6931472,5.061175,1 +11,1,0,1,2,127219,0,5075.062,22.22108,1,13,1,74.75356,37.21249,0,0,0,111.966,0,0,0,9,0,2,70.5,13,0,,0,0,0,0,.6931472,0,0,0,0,1,0,0,65.88802,8.532291,.6931472,4.718196,1 +11,1,0,1,3,127219,0,5075.062,23.22108,1,13,1,33.66584,13.31671,3.566085,0,1794.175,1844.723,1,0,0,1,0,2,70.5,13,0,,0,0,0,0,.6931472,0,0,0,0,1,0,0,65.88802,8.532291,.6931472,7.520084,1 +11,1,0,1,4,127219,0,5075.062,24.22108,1,13,1,39.18856,9.930843,4.329184,0,0,53.44859,0,0,0,4,0,3,70.5,13,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,65.88802,8.532291,1.098612,3.97872,1 +11,1,0,1,5,127219,0,5075.062,25.22108,1,13,1,71.43462,27.57512,0,0,900.3851,999.3948,1,0,0,1,0,3,70.5,13,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,65.88802,8.532291,1.098612,6.90715,1 +11,1,0,1,1,127220,0,5075.062,23.34839,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,90.5,4.3,0,,0,0,0,0,.6931472,0,0,0,0,0,0,0,77.43843,8.532291,.6931472,,0 +11,1,0,1,2,127220,0,5075.062,24.34839,0,12,1,6.024096,3.012048,0,0,0,9.036144,0,0,0,1,0,2,90.5,4.3,0,,0,0,0,0,.6931472,0,0,0,0,0,0,0,77.43843,8.532291,.6931472,2.201233,1 +11,1,0,1,3,127220,0,5075.062,25.34839,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,90.5,4.3,0,,0,0,0,0,.6931472,0,0,0,0,0,0,0,77.43843,8.532291,.6931472,,0 +11,1,0,1,4,127220,0,5075.062,26.34839,0,12,1,4.61042,10.83449,0,0,0,15.44491,0,0,0,1,0,3,90.5,4.3,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,77.43843,8.532291,1.098612,2.737279,1 +11,1,0,1,5,127220,0,5075.062,27.34839,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,90.5,4.3,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,77.43843,8.532291,1.098612,,0 +3,1,100,0,1,127222,0,2485.112,56.53114,1,11,1,180.5065,83.48646,37.63251,0,1603.139,1904.764,2,0,0,13,0,1,46.3,13.73189,1,,562,562,0,0,0,6.331502,1,0,0,1,0,0,61.29097,7.818475,0,7.552114,1 +3,1,100,0,2,127222,0,2485.112,57.53114,1,11,1,0,19.6496,0,0,0,19.6496,0,0,0,0,0,1,46.3,13.73189,1,,562,562,0,0,0,6.331502,1,0,0,1,0,0,61.29097,7.818475,0,2.978057,1 +3,1,100,0,3,127222,0,2485.112,58.53114,1,11,1,235.6658,89.30713,0,0,482.5897,807.5627,1,0,0,7,1,1,46.3,13.73189,1,,562,562,0,0,0,6.331502,1,0,0,1,0,0,61.29097,7.818475,0,6.694021,1 +3,1,100,0,4,127222,0,2485.112,59.53114,1,11,1,231.8824,72.08295,202.9353,0,297.7211,804.6217,1,0,0,12,0,1,46.3,13.73189,1,,562,562,0,0,0,6.331502,1,0,0,1,0,0,61.29097,7.818475,0,6.690372,1 +3,1,100,0,5,127222,0,2485.112,60.53114,1,11,1,302.8345,81.74239,0,0,0,384.5769,0,0,0,15,7,1,46.3,13.73189,1,,562,562,0,0,0,6.331502,1,0,0,1,0,0,61.29097,7.818475,0,5.952144,1 +1,1,0,1,1,127229,0,3681.762,55.59753,1,12,1,0,4.842356,0,0,0,4.842356,0,0,0,0,0,1,55.8,13,1,,150,222,0,0,0,5.402678,1,0,0,1,0,0,65.05453,8.211418,0,1.577401,1 +1,1,0,1,2,127229,0,3681.762,56.59753,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,55.8,13,1,,150,222,0,0,0,5.402678,1,0,0,1,0,0,65.05453,8.211418,0,,0 +1,1,0,1,3,127229,0,3681.762,57.59753,1,12,1,3.964321,0,15.60951,0,0,19.57384,0,0,0,1,0,1,55.8,13,1,,150,222,0,0,0,5.402678,1,0,0,1,0,0,65.05453,8.211418,0,2.974194,1 +1,1,0,1,4,127229,0,3681.762,58.59753,1,12,1,253.6255,2.257916,0,0,0,255.8834,0,0,0,4,0,1,55.8,13,1,,150,222,0,0,0,5.402678,1,0,0,1,0,0,65.05453,8.211418,0,5.544722,1 +1,1,0,1,5,127229,0,3681.762,59.59753,1,12,1,29.44888,28.78418,26.92469,0,844.1818,929.3395,1,0,0,3,1,1,55.8,13,1,,150,222,0,0,0,5.402678,1,0,0,1,0,0,65.05453,8.211418,0,6.834474,1 +4,1,100,0,1,127230,0,5570.099,14.67488,1,12,1,13.78897,2.014389,36.33693,0,0,52.14029,0,0,0,2,0,3,85,13.73189,0,,749,749,1,1,1.098612,6.618739,1,0,0,1,0,0,68.3137,8.625348,1.098612,3.953938,1 +4,1,100,0,1,127231,0,5570.099,37.20192,1,12,1,36.57074,1.7506,37.6199,0,0,75.94125,0,0,0,3,1,3,76.3,13.73189,0,,749,749,0,0,1.098612,6.618739,1,0,0,1,0,0,71.75487,8.625348,1.098612,4.32996,1 +4,1,100,0,2,127231,0,5570.099,38.20192,1,12,1,486.2267,23.44469,13.73494,0,0,523.4064,0,0,0,11,0,2,76.3,13.73189,0,,749,749,0,0,.6931472,6.618739,1,0,0,1,0,0,71.75487,8.625348,.6931472,6.260358,1 +4,1,100,0,3,127231,0,5570.099,39.20192,1,12,1,26.18454,2.543641,23.97506,0,822.2593,874.9626,1,0,0,3,1,2,76.3,13.73189,0,,749,749,0,0,.6931472,6.618739,1,0,0,1,0,0,71.75487,8.625348,.6931472,6.774181,1 +4,1,100,0,4,127231,0,5570.099,40.20192,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,76.3,13.73189,0,,749,749,0,0,.6931472,6.618739,1,0,0,1,0,0,71.75487,8.625348,.6931472,,0 +4,1,100,0,5,127231,0,5570.099,41.20192,1,12,1,77.86712,0,3.343208,0,0,81.21033,0,0,0,4,0,2,76.3,13.73189,0,,749,749,0,0,.6931472,6.618739,1,0,0,1,0,0,71.75487,8.625348,.6931472,4.397042,1 +4,1,100,0,1,127232,0,5570.099,16.08487,1,12,1,93.89088,19.2506,36.57074,0,0,149.7122,0,0,0,8,1,3,26.3,13.73189,0,,749,749,1,1,1.098612,6.618739,1,0,0,1,0,0,68.3137,8.625348,1.098612,5.008715,1 +4,1,100,0,2,127232,0,5570.099,17.08487,1,12,1,23.00109,4.211391,0,0,599.9178,627.1303,1,0,0,1,0,2,26.3,13.73189,0,,749,749,1,1,.6931472,6.618739,1,0,0,1,0,0,68.3137,8.625348,.6931472,6.441154,1 +4,1,100,0,3,127232,0,5570.099,18.08487,1,12,1,4.987531,3.63591,0,0,0,8.623442,0,0,0,1,0,2,26.3,13.73189,0,,749,749,0,0,.6931472,6.618739,1,0,0,1,0,0,68.3137,8.625348,.6931472,2.154484,1 +4,1,100,0,4,127232,0,5570.099,19.08487,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,26.3,13.73189,0,,749,749,0,0,.6931472,6.618739,1,0,0,1,0,0,68.3137,8.625348,.6931472,,0 +4,1,100,0,5,127232,0,5570.099,20.08487,1,12,1,31.78163,0,0,0,665.912,697.6936,1,0,0,1,0,2,26.3,13.73189,0,,749,749,0,0,.6931472,6.618739,1,0,0,1,0,0,68.3137,8.625348,.6931472,6.54778,1 +8,1,50,1,1,127238,0,5155.707,51.30458,1,15,1,16.18705,0,0,0,0,16.18705,0,0,0,2,0,1,93.3,13,0,,389,389,0,0,0,5.963579,0,3.931826,6.656726,0,0,0,78.97939,8.548054,0,2.784212,1 +8,1,50,1,2,127238,0,5155.707,52.30458,1,15,1,52.30011,0,0,0,0,52.30011,0,0,0,1,0,1,93.3,13,0,,389,389,0,0,0,5.963579,0,3.931826,6.656726,0,0,0,78.97939,8.548054,0,3.956999,1 +8,1,50,1,3,127238,0,5155.707,53.30458,1,15,1,14.96259,0,36.73317,0,0,51.69576,0,0,0,1,0,1,93.3,13,0,,389,389,0,0,0,5.963579,0,3.931826,6.656726,0,0,0,78.97939,8.548054,0,3.945376,1 +11,1,0,0,1,127241,0,4911.911,23.44148,0,16,1,88.12949,0,45.67146,0,0,133.801,0,0,0,2,1,1,82.5,13.73189,0,,0,0,0,0,0,0,0,0,0,0,0,0,77.1768,8.499621,0,4.896353,1 +11,1,0,0,2,127241,0,4911.911,24.44148,0,16,1,0,0,0,0,0,0,0,0,0,0,0,1,82.5,13.73189,0,,0,0,0,0,0,0,0,0,0,0,0,0,77.1768,8.499621,0,,0 +11,1,0,0,3,127241,0,4911.911,25.44148,0,16,1,8.977556,0,37.00748,0,0,45.98504,0,0,0,0,1,1,82.5,13.73189,0,,0,0,0,0,0,0,0,0,0,0,0,0,77.1768,8.499621,0,3.828316,1 +11,1,0,1,1,127244,0,15527.12,18.00958,0,12.32507,1,28.94582,6.613663,23.02709,0,0,58.58657,0,0,0,1,2,10,70.5,8.7,0,,0,0,0,0,2.302585,0,0,0,0,0,0,0,77.83328,9.650408,2.302585,4.070506,1 +11,1,0,1,1,127245,0,15527.12,16.33402,0,12,1,70.67138,7.21437,23.11543,0,0,101.0012,0,0,0,3,3,10,80,4.3,0,,0,0,1,0,2.302585,0,0,0,0,0,0,0,80.35947,9.650408,2.302585,4.615132,1 +11,1,0,1,2,127245,0,15527.12,17.33402,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,80,4.3,0,,0,0,1,0,2.079442,0,0,0,0,0,0,0,80.35947,9.650408,2.079442,,0 +11,1,0,1,3,127245,0,15527.12,18.33402,0,12,1,28.34889,2.211302,28.24079,0,0,58.80098,0,0,0,2,1,8,80,4.3,0,,0,0,0,0,2.079442,0,0,0,0,0,0,0,80.35947,9.650408,2.079442,4.074159,1 +11,1,0,1,4,127245,0,15527.12,19.33402,0,12,1,19.59891,7.201458,0,0,0,26.80037,0,0,0,2,0,8,80,4.3,0,,0,0,0,0,2.079442,0,0,0,0,0,0,0,80.35947,9.650408,2.079442,3.288415,1 +11,1,0,1,5,127245,0,15527.12,20.33402,0,12,1,50.43768,6.71113,25.70238,0,0,82.85119,0,0,0,2,1,8,80,4.3,0,,0,0,0,0,2.079442,0,0,0,0,0,0,0,80.35947,9.650408,2.079442,4.417046,1 +11,1,0,1,1,127246,0,15527.12,14.9514,0,12,1,49.46996,60.03534,92.66785,0,0,202.1731,0,0,0,5,2,10,82.1,13,0,,0,0,1,0,2.302585,0,0,0,0,0,0,0,75.09638,9.650408,2.302585,5.309124,1 +11,1,0,1,2,127246,0,15527.12,15.9514,0,12,1,45.8221,48.95957,69.77898,0,0,164.5607,0,0,0,7,0,8,82.1,13,0,,0,0,1,0,2.079442,0,0,0,0,0,0,0,75.09638,9.650408,2.079442,5.103279,1 +11,1,0,1,3,127246,0,15527.12,16.9514,0,12,1,28.00983,50.78133,98.86978,0,0,177.6609,0,0,0,3,1,8,82.1,13,0,,0,0,1,0,2.079442,0,0,0,0,0,0,0,75.09638,9.650408,2.079442,5.179877,1 +11,1,0,1,4,127246,0,15527.12,17.9514,0,12,1,25.97995,34.50775,54.37101,0,0,114.8587,0,0,0,1,0,8,82.1,13,0,,0,0,1,0,2.079442,0,0,0,0,0,0,0,75.09638,9.650408,2.079442,4.743703,1 +11,1,0,1,5,127246,0,15527.12,18.9514,0,12,1,1684.869,69.70821,95.03543,0,8297.091,10146.7,2,0,0,14,0,8,82.1,13,0,,0,0,0,0,2.079442,0,0,0,0,0,0,0,75.09638,9.650408,2.079442,9.224904,1 +11,1,0,1,1,127247,0,15527.12,11.41136,0,12,1,22.37927,0,0,0,0,22.37927,0,0,0,0,1,10,74.36826,13.73189,0,,0,0,1,0,2.302585,0,0,0,0,0,0,0,84.97813,9.650408,2.302585,3.108135,1 +11,1,0,1,2,127247,0,15527.12,12.41136,0,12,1,7.54717,7.061995,0,0,0,14.60916,0,0,0,2,0,8,74.36826,13.73189,0,,0,0,1,0,2.079442,0,0,0,0,0,0,0,84.97813,9.650408,2.079442,2.681649,1 +11,1,0,1,3,127247,0,15527.12,13.41136,0,12,1,23.9312,5.724816,0,0,0,29.65602,0,0,0,3,0,8,74.36826,13.73189,0,,0,0,1,0,2.079442,0,0,0,0,0,0,0,84.97813,9.650408,2.079442,3.389665,1 +11,1,0,1,4,127247,0,15527.12,14.41136,0,12,1,77.25616,29.46673,0,0,0,106.7229,0,0,0,6,0,8,74.36826,13.73189,0,,0,0,1,0,2.079442,0,0,0,0,0,0,0,84.97813,9.650408,2.079442,4.670236,1 +11,1,0,1,5,127247,0,15527.12,15.41136,0,12,1,18.34097,3.939141,0,0,0,22.28012,0,0,0,2,0,8,74.36826,13.73189,0,,0,0,1,0,2.079442,0,0,0,0,0,0,0,84.97813,9.650408,2.079442,3.103695,1 +11,1,0,1,1,127248,0,15527.12,13.37988,0,12,1,8.244994,10.24735,0,0,0,18.49234,0,0,0,1,0,10,74.36826,13.73189,0,,0,0,1,0,2.302585,0,0,0,0,0,0,0,84.97813,9.650408,2.302585,2.917357,1 +11,1,0,1,2,127248,0,15527.12,14.37988,0,12,1,60.37736,21.67116,12.93801,0,0,94.98653,0,0,0,5,1,8,74.36826,13.73189,0,,0,0,1,0,2.079442,0,0,0,0,0,0,0,84.97813,9.650408,2.079442,4.553735,1 +11,1,0,1,3,127248,0,15527.12,15.37988,0,12,1,52.08845,0,0,0,0,52.08845,0,0,0,3,0,8,74.36826,13.73189,0,,0,0,1,0,2.079442,0,0,0,0,0,0,0,84.97813,9.650408,2.079442,3.952943,1 +11,1,0,1,4,127248,0,15527.12,16.37988,0,12,1,21.87785,13.53692,0,0,0,35.41477,0,0,0,4,0,8,74.36826,13.73189,0,,0,0,1,0,2.079442,0,0,0,0,0,0,0,84.97813,9.650408,2.079442,3.567129,1 +11,1,0,1,5,127248,0,15527.12,17.37988,0,12,1,31.67987,10.29596,0,0,0,41.97582,0,0,0,3,1,8,74.36826,13.73189,0,,0,0,1,0,2.079442,0,0,0,0,0,0,0,84.97813,9.650408,2.079442,3.737094,1 +11,1,0,1,1,127249,0,15527.12,43.93977,1,12,1,59.48174,2.226148,37.53828,0,0,99.24617,0,0,0,3,2,10,89.5,26.1,0,,0,0,0,0,2.302585,0,0,0,0,0,0,0,77.41725,9.650408,2.302585,4.597603,1 +11,1,0,1,2,127249,0,15527.12,44.93977,1,12,1,24.79784,2.264151,0,0,0,27.06199,0,0,0,3,0,8,89.5,26.1,0,,0,0,0,0,2.079442,0,0,0,0,0,0,0,77.41725,9.650408,2.079442,3.29813,1 +11,1,0,1,3,127249,0,15527.12,45.93977,1,12,1,76.65848,2.407862,42.32433,0,0,121.3907,0,0,0,6,1,8,89.5,26.1,0,,0,0,0,0,2.079442,0,0,0,0,0,0,0,77.41725,9.650408,2.079442,4.799014,1 +11,1,0,1,4,127249,0,15527.12,46.93977,1,12,1,75.68369,24.49863,0,0,0,100.1823,0,0,0,8,1,8,89.5,26.1,0,,0,0,0,0,2.079442,0,0,0,0,0,0,0,77.41725,9.650408,2.079442,4.606992,1 +11,1,0,1,5,127249,0,15527.12,47.93977,1,12,1,50.85452,0,41.10046,0,0,91.95498,0,0,0,5,1,8,89.5,26.1,0,,0,0,0,0,2.079442,0,0,0,0,0,0,0,77.41725,9.650408,2.079442,4.521299,1 +11,1,0,1,1,127250,0,15527.12,46.24504,0,12,1,26.50177,10.36514,28.41578,0,0,65.28268,0,0,0,1,2,10,87.4,21.7,0,,0,0,0,0,2.302585,0,0,0,0,0,0,0,76.73125,9.650408,2.302585,4.178727,1 +11,1,0,1,2,127250,0,15527.12,47.24504,0,12,1,79.24529,12.18329,0,0,0,91.42857,0,0,0,3,0,8,87.4,21.7,0,,0,0,0,0,2.079442,0,0,0,0,0,0,0,76.73125,9.650408,2.079442,4.515558,1 +11,1,0,1,3,127250,0,15527.12,48.24504,0,12,1,124.8157,51.03194,0,0,0,175.8477,0,0,0,9,0,8,87.4,21.7,0,,0,0,0,0,2.079442,0,0,0,0,0,0,0,76.73125,9.650408,2.079442,5.169618,1 +11,1,0,1,4,127250,0,15527.12,49.24504,0,12,1,31.9052,70.98906,0,0,0,102.8943,0,0,0,4,0,8,87.4,21.7,0,,0,0,0,0,2.079442,0,0,0,0,0,0,0,76.73125,9.650408,2.079442,4.633702,1 +11,1,0,1,5,127250,0,15527.12,50.24504,0,12,1,52.10505,60.40017,39.57899,0,0,152.0842,0,0,0,6,1,8,87.4,21.7,0,,0,0,0,0,2.079442,0,0,0,0,0,0,0,76.73125,9.650408,2.079442,5.024434,1 +11,1,0,1,1,127251,0,15527.12,3.915127,1,12,1,5.889281,27.53239,0,0,0,33.42167,0,0,0,1,0,10,74.36826,13.73189,0,,0,0,1,1,2.302585,0,0,0,0,0,0,0,81.03252,9.650408,2.302585,3.509205,1 +11,1,0,1,2,127251,0,15527.12,4.915127,1,12,1,17.78976,13.45014,0,0,353.0728,384.3127,1,0,0,3,0,8,74.36826,13.73189,0,,0,0,1,1,2.079442,0,0,0,0,0,0,0,81.03252,9.650408,2.079442,5.951457,1 +11,1,0,1,3,127251,0,15527.12,5.915127,1,12,1,6.879607,0,0,0,0,6.879607,0,0,0,1,0,8,74.36826,13.73189,0,,0,0,1,1,2.079442,0,0,0,0,0,0,0,81.03252,9.650408,2.079442,1.928561,1 +11,1,0,1,4,127251,0,15527.12,6.915127,1,12,1,5.925251,14.15223,0,0,0,20.07748,0,0,0,1,0,8,74.36826,13.73189,0,,0,0,1,1,2.079442,0,0,0,0,0,0,0,81.03252,9.650408,2.079442,2.999599,1 +11,1,0,1,5,127251,0,15527.12,7.915127,1,12,1,51.47978,17.15298,0,0,0,68.63277,0,0,0,6,1,8,74.36826,13.73189,0,,0,0,1,1,2.079442,0,0,0,0,0,0,0,81.03252,9.650408,2.079442,4.22877,1 +11,1,0,1,1,127252,0,15527.12,19.70157,1,13,1,20.31802,2.120141,11.69611,0,0,34.13428,0,0,0,1,2,10,84.2,13,0,,0,0,0,0,2.302585,0,0,0,0,0,0,0,78.72446,9.650408,2.302585,3.530302,1 +11,1,0,1,1,127253,0,15527.12,.881588,1,12,1,23.85159,25.17668,0,0,0,49.02827,0,0,0,3,0,10,74.36826,13.73189,0,,0,0,1,1,2.302585,0,0,0,0,0,0,0,81.03252,9.650408,2.302585,3.892397,1 +11,1,0,1,2,127253,0,15527.12,1.881588,1,12,1,27.7628,22.74933,0,0,0,50.51213,0,0,0,5,0,8,74.36826,13.73189,0,,0,0,1,1,2.079442,0,0,0,0,0,0,0,81.03252,9.650408,2.079442,3.922214,1 +11,1,0,1,3,127253,0,15527.12,2.881588,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,74.36826,13.73189,0,,0,0,1,1,2.079442,0,0,0,0,0,0,0,81.03252,9.650408,2.079442,,0 +11,1,0,1,4,127253,0,15527.12,3.881588,1,12,1,51.95989,52.66636,0,0,0,104.6263,0,0,0,10,0,8,74.36826,13.73189,0,,0,0,1,1,2.079442,0,0,0,0,0,0,0,81.03252,9.650408,2.079442,4.650394,1 +11,1,0,1,5,127253,0,15527.12,4.881588,1,12,1,254.2726,122.9054,0,0,0,377.178,0,0,0,51,1,8,74.36826,13.73189,0,,0,0,1,1,2.079442,0,0,0,0,0,0,0,81.03252,9.650408,2.079442,5.932717,1 +3,1,100,1,1,127297,0,2896.791,6.773443,0,14,1,20.02356,0,0,0,0,20.02356,0,0,0,3,0,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,1,0,0,0,0,0,82.37522,7.971704,1.609438,2.996909,1 +3,1,100,1,2,127297,0,2896.791,7.773443,0,14,1,44.12399,2.668464,30.98652,0,0,77.77898,0,0,0,4,2,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,1,0,0,0,0,0,82.37522,7.971704,1.609438,4.353871,1 +3,1,100,1,3,127297,0,2896.791,8.773443,0,14,1,9.82801,2.447175,15.40541,0,0,27.68059,0,0,0,0,1,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,1,0,0,0,0,0,82.37522,7.971704,1.609438,3.320731,1 +3,1,100,1,4,127297,0,2896.791,9.773443,0,14,1,95.71559,15.01823,0,0,0,110.7338,0,0,0,6,1,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,0,0,0,82.37522,7.971704,1.386294,4.707129,1 +3,1,100,1,5,127297,0,2896.791,10.77344,0,14,1,81.70071,46.26928,28.49104,0,0,156.461,0,0,0,23,1,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,0,0,0,82.37522,7.971704,1.386294,5.052807,1 +3,1,100,1,1,127298,0,2896.791,41.39631,0,14,1,54.77032,90.02945,0,0,0,144.7998,0,0,0,23,0,5,62.1,21.7,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,0,0,0,73.19926,7.971704,1.609438,4.975352,1 +3,1,100,1,2,127298,0,2896.791,42.39631,0,14,1,68.46362,0,0,0,0,68.46362,0,0,0,12,2,5,62.1,21.7,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,0,0,0,73.19926,7.971704,1.609438,4.226303,1 +3,1,100,1,3,127298,0,2896.791,43.39631,0,14,1,61.42506,66.82064,0,0,0,128.2457,0,0,0,17,0,5,62.1,21.7,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,0,0,0,73.19926,7.971704,1.609438,4.853948,1 +3,1,100,1,4,127298,0,2896.791,44.39631,0,14,1,72.47038,40,38.10392,0,0,150.5743,0,0,0,11,1,4,62.1,21.7,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,73.19926,7.971704,1.386294,5.014457,1 +3,1,100,1,5,127298,0,2896.791,45.39631,0,14,1,98.79116,68.77866,12.08837,0,0,179.6582,0,0,0,13,0,4,62.1,21.7,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,73.19926,7.971704,1.386294,5.191056,1 +3,1,100,1,1,127299,0,2896.791,36.58316,1,14,1,34.15783,4.652533,25.47703,0,0,64.2874,0,0,0,2,1,5,92.6,13,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,1,0,0,69.37424,7.971704,1.609438,4.163363,1 +3,1,100,1,2,127299,0,2896.791,37.58316,1,14,1,12.39892,0,0,0,0,12.39892,0,0,0,2,0,5,92.6,13,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,1,0,0,69.37424,7.971704,1.609438,2.51761,1 +3,1,100,1,3,127299,0,2896.791,38.58316,1,14,1,6.388206,0,0,0,0,6.388206,0,0,0,1,0,5,92.6,13,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,1,0,0,69.37424,7.971704,1.609438,1.854454,1 +3,1,100,1,4,127299,0,2896.791,39.58316,1,14,1,345.0319,0,27.62534,0,0,372.6573,0,0,0,5,1,4,92.6,13,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,69.37424,7.971704,1.386294,5.920659,1 +3,1,100,1,5,127299,0,2896.791,40.58316,1,14,1,16.67361,4.614423,0,0,0,21.28804,0,0,0,2,0,4,92.6,13,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,69.37424,7.971704,1.386294,3.058145,1 +3,1,100,1,1,127300,0,2896.791,11.66324,0,14,1,9.422851,0,0,0,0,9.422851,0,0,0,2,0,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,1,0,0,0,0,0,82.37522,7.971704,1.609438,2.243138,1 +3,1,100,1,2,127300,0,2896.791,12.66324,0,14,1,13.47709,0,15.21294,0,0,28.69003,0,0,0,2,1,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,1,0,0,0,0,0,82.37522,7.971704,1.609438,3.35655,1 +3,1,100,1,3,127300,0,2896.791,13.66324,0,14,1,64.71745,2.432432,32.86486,0,0,100.0147,0,0,0,2,2,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,1,0,0,0,0,0,82.37522,7.971704,1.609438,4.605318,1 +3,1,100,1,4,127300,0,2896.791,14.66324,0,14,1,27.34731,4.512306,0,0,0,31.85962,0,0,0,2,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,0,0,0,82.37522,7.971704,1.386294,3.461339,1 +3,1,100,1,5,127300,0,2896.791,15.66324,0,14,1,47.10296,9.349729,29.62068,0,0,86.07336,0,0,0,5,1,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,0,0,0,82.37522,7.971704,1.386294,4.4552,1 +3,1,100,1,1,127301,0,2896.791,14.59822,0,14,1,45.9364,13.69258,36.9258,0,0,96.55477,0,0,0,4,1,5,78.9,4.3,0,,1000,1000,1,0,1.609438,6.907755,1,0,0,0,0,0,76.82748,7.971704,1.609438,4.57011,1 +3,1,100,1,2,127301,0,2896.791,15.59822,0,14,1,18.32884,28.93262,0,0,0,47.26146,0,0,0,3,0,5,78.9,4.3,0,,1000,1000,1,0,1.609438,6.907755,1,0,0,0,0,0,76.82748,7.971704,1.609438,3.855695,1 +3,1,100,1,3,127301,0,2896.791,16.59822,0,14,1,63.88206,26.3145,31.32678,0,0,121.5233,0,0,0,5,1,5,78.9,4.3,0,,1000,1000,1,0,1.609438,6.907755,1,0,0,0,0,0,76.82748,7.971704,1.609438,4.800107,1 +5,1,25,1,1,127311,0,14820.32,42.91034,0,14,1,0,71.58273,0,0,0,71.58273,0,0,0,0,0,4,73.7,21.7,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,64.57561,9.603822,1.386294,4.270854,1 +5,1,25,1,2,127311,0,14820.32,43.91034,0,14,1,13.69113,100.4107,39.32092,0,0,153.4228,0,0,0,0,1,4,73.7,21.7,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,64.57561,9.603822,1.386294,5.033197,1 +5,1,25,1,3,127311,0,14820.32,44.91034,0,14,1,94.56359,112.9077,0,0,0,207.4713,0,0,0,5,0,4,73.7,21.7,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,64.57561,9.603822,1.386294,5.334993,1 +5,1,25,1,4,127311,0,14820.32,45.91034,0,14,1,10.14292,77.39511,0,0,0,87.53803,0,0,0,1,0,4,73.7,21.7,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,64.57561,9.603822,1.386294,4.472074,1 +5,1,25,1,5,127311,0,14820.32,46.91034,0,14,1,35.97122,47.20694,0,0,0,83.17816,0,0,0,5,0,4,73.7,21.7,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,64.57561,9.603822,1.386294,4.420985,1 +5,1,25,1,1,127312,0,14820.32,17.10062,0,15,1,26.3789,1.798561,25.28177,0,0,53.45923,0,0,0,1,1,4,78.9,17.4,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,79.97823,9.603822,1.386294,3.978919,1 +5,1,25,1,2,127312,0,14820.32,18.10062,0,15,1,41.07338,2.190581,0,0,0,43.26397,0,0,0,5,0,4,78.9,17.4,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,79.97823,9.603822,1.386294,3.76732,1 +5,1,25,1,3,127312,0,14820.32,19.10062,0,15,1,0,0,0,0,0,0,0,0,0,0,0,4,78.9,17.4,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,79.97823,9.603822,1.386294,,0 +5,1,25,1,4,127312,0,14820.32,20.10062,0,15,1,0,0,0,0,0,0,0,0,0,0,0,4,78.9,17.4,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,79.97823,9.603822,1.386294,,0 +5,1,25,1,5,127312,0,14820.32,21.10062,0,15,1,0,0,0,0,0,0,0,0,0,0,0,4,78.9,17.4,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,79.97823,9.603822,1.386294,,0 +5,1,25,1,1,127313,0,14820.32,7.244353,1,15,1,11.99041,0,0,0,0,11.99041,0,0,0,0,1,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,0,0,0,82.31068,9.603822,1.386294,2.484107,1 +5,1,25,1,2,127313,0,14820.32,8.244353,1,15,1,24.09639,1.09529,31.68675,0,0,56.87842,0,0,0,2,1,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,0,0,0,82.31068,9.603822,1.386294,4.040916,1 +5,1,25,1,3,127313,0,14820.32,9.244353,1,15,1,7.481297,0,0,0,0,7.481297,0,0,0,1,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,0,0,0,82.31068,9.603822,1.386294,2.012406,1 +5,1,25,1,4,127313,0,14820.32,10.24435,1,15,1,25.81835,5.855233,31.51222,0,0,63.1858,0,0,0,3,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,0,0,0,82.31068,9.603822,1.386294,4.14608,1 +5,1,25,1,5,127313,0,14820.32,11.24435,1,15,1,26.23783,0,3.377063,0,0,29.6149,0,0,0,2,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,0,0,0,82.31068,9.603822,1.386294,3.388278,1 +5,1,25,1,1,127314,0,14820.32,42.61191,1,15,1,13.18945,0,0,0,0,13.18945,0,0,0,1,0,4,82.1,8.7,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,77.97667,9.603822,1.386294,2.579417,1 +5,1,25,1,2,127314,0,14820.32,43.61191,1,15,1,72.8368,0,36.98248,0,0,109.8193,0,0,0,4,1,4,82.1,8.7,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,77.97667,9.603822,1.386294,4.698836,1 +5,1,25,1,3,127314,0,14820.32,44.61191,1,15,1,128.5287,0,0,0,116.0898,244.6185,1,0,0,1,0,4,82.1,8.7,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,77.97667,9.603822,1.386294,5.4997,1 +5,1,25,1,4,127314,0,14820.32,45.61191,1,15,1,87.59797,5.60166,0,0,0,93.19963,0,0,0,5,0,4,82.1,8.7,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,77.97667,9.603822,1.386294,4.534744,1 +5,1,25,1,5,127314,0,14820.32,46.61191,1,15,1,135.8697,0,0,0,979.3737,1115.243,1,0,0,2,0,4,82.1,8.7,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,77.97667,9.603822,1.386294,7.016828,1 +7,1,25,0,1,127315,0,9408.188,44.71458,0,16,1,8.833922,0,36.9258,0,0,45.75972,0,0,0,0,1,5,78.8,13.73189,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,66.6989,9.149442,1.609438,3.823404,1 +7,1,25,0,2,127315,0,9408.188,45.71458,0,16,1,6.469003,0,0,0,0,6.469003,0,0,0,1,0,5,78.8,13.73189,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,66.6989,9.149442,1.609438,1.867022,1 +7,1,25,0,3,127315,0,9408.188,46.71458,0,16,1,0,5.356266,0,0,0,5.356266,0,0,0,0,0,5,78.8,13.73189,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,66.6989,9.149442,1.609438,1.678267,1 +7,1,25,0,4,127315,0,9408.188,47.71458,0,16,1,9.11577,0,51.85506,0,0,60.97083,0,0,0,0,1,5,78.8,13.73189,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,66.6989,9.149442,1.609438,4.110395,1 +7,1,25,0,5,127315,0,9408.188,48.71458,0,16,1,5.418924,2.163401,0,0,0,7.582326,0,0,0,1,0,5,78.8,13.73189,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,66.6989,9.149442,1.609438,2.02582,1 +7,1,25,0,1,127316,0,9408.188,17.31143,0,12,1,24.14605,0,1.177856,0,0,25.32391,0,0,0,5,0,5,87.5,13.73189,0,,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,72.956,9.149442,1.609438,3.231749,1 +7,1,25,0,2,127316,0,9408.188,18.31143,0,12,1,54.44744,6.134771,0,0,0,60.58221,0,0,0,3,3,5,87.5,13.73189,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,72.956,9.149442,1.609438,4.104002,1 +7,1,25,0,3,127316,0,9408.188,19.31143,0,12,1,168.7617,3.70516,0,0,0,172.4668,0,0,0,5,0,5,87.5,13.73189,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,72.956,9.149442,1.609438,5.150205,1 +7,1,25,0,4,127316,0,9408.188,20.31143,0,12,1,50.59253,0,0,0,0,50.59253,0,0,0,3,0,5,87.5,13.73189,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,72.956,9.149442,1.609438,3.923804,1 +7,1,25,0,5,127316,0,9408.188,21.31143,0,12,1,18.75782,.8336807,0,0,0,19.5915,0,0,0,2,0,5,87.5,13.73189,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,72.956,9.149442,1.609438,2.975096,1 +7,1,25,0,1,127317,0,9408.188,15.33744,0,12,1,32.39105,0,0,0,0,32.39105,0,0,0,3,0,5,76.3,13.73189,0,,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,72.956,9.149442,1.609438,3.477882,1 +7,1,25,0,2,127317,0,9408.188,16.33744,0,12,1,29.11051,0,0,0,0,29.11051,0,0,0,1,2,5,76.3,13.73189,0,,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,72.956,9.149442,1.609438,3.371099,1 +7,1,25,0,3,127317,0,9408.188,17.33744,0,12,1,30.95823,8.643735,0,0,0,39.60197,0,0,0,5,0,5,76.3,13.73189,0,,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,72.956,9.149442,1.609438,3.678879,1 +7,1,25,0,4,127317,0,9408.188,18.33744,0,12,1,123.5187,2.39289,0,0,0,125.9116,0,0,0,2,13,5,76.3,13.73189,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,72.956,9.149442,1.609438,4.83558,1 +7,1,25,0,5,127317,0,9408.188,19.33744,0,12,1,265.5273,6.335973,32.23426,0,0,304.0975,0,0,0,33,3,5,76.3,13.73189,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,72.956,9.149442,1.609438,5.717349,1 +7,1,25,0,1,127318,0,9408.188,44.18617,1,12,1,24.14605,0,0,0,0,24.14605,0,0,0,3,0,5,82.5,13.73189,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,67.91996,9.149442,1.609438,3.184121,1 +7,1,25,0,2,127318,0,9408.188,45.18617,1,12,1,339.0836,0,0,0,0,339.0836,0,0,0,5,0,5,82.5,13.73189,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,67.91996,9.149442,1.609438,5.826247,1 +7,1,25,0,3,127318,0,9408.188,46.18617,1,12,1,16.21622,3.734644,0,0,0,19.95086,0,0,0,2,0,5,82.5,13.73189,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,67.91996,9.149442,1.609438,2.993272,1 +7,1,25,0,4,127318,0,9408.188,47.18617,1,12,1,76.11668,9.52598,33.16773,0,0,118.8104,0,0,0,8,0,5,82.5,13.73189,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,67.91996,9.149442,1.609438,4.777529,1 +7,1,25,0,5,127318,0,9408.188,48.18617,1,12,1,179.5248,30.37932,42.51772,0,0,252.4218,0,0,0,10,2,5,82.5,13.73189,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,67.91996,9.149442,1.609438,5.531102,1 +7,1,25,0,1,127319,0,9408.188,14.46133,1,12,1,30.3298,10.13545,0,0,0,40.46525,0,0,0,4,0,5,62.5,13.73189,0,,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,1,0,0,67.63226,9.149442,1.609438,3.700444,1 +7,1,25,0,2,127319,0,9408.188,15.46133,1,12,1,361.3154,1.185984,0,0,0,362.5013,0,0,0,5,0,5,62.5,13.73189,0,,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,1,0,0,67.63226,9.149442,1.609438,5.893028,1 +7,1,25,0,3,127319,0,9408.188,16.46133,1,12,1,76.90417,5.710074,0,0,0,82.61425,0,0,0,5,0,5,62.5,13.73189,0,,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,1,0,0,67.63226,9.149442,1.609438,4.414182,1 +7,1,25,0,4,127319,0,9408.188,17.46133,1,12,1,36.46308,6.020966,0,0,667.0146,709.4987,1,0,0,5,0,5,62.5,13.73189,0,,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,1,0,0,67.63226,9.149442,1.609438,6.564559,1 +7,1,25,0,5,127319,0,9408.188,18.46133,1,12,1,46.18591,23.84744,0,0,0,70.03335,0,0,0,4,0,5,62.5,13.73189,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,67.63226,9.149442,1.609438,4.248971,1 +5,1,25,0,1,127345,0,9044.045,13.45927,0,12,1,29.59364,0,0,0,0,29.59364,0,0,0,0,1,7,74.36826,13.73189,0,,515,515,1,0,1.94591,6.244167,0,3.258096,7.630461,1,0,0,77.87675,9.109972,1.94591,3.387559,1 +5,1,25,0,2,127345,0,9044.045,14.45927,0,12,1,26.95418,0,0,0,0,26.95418,0,0,0,2,0,7,74.36826,13.73189,0,,515,515,1,0,1.94591,6.244167,0,3.258096,7.630461,1,0,0,77.87675,9.109972,1.94591,3.294138,1 +5,1,25,0,3,127345,0,9044.045,15.45927,0,12,1,0,0,0,0,0,0,0,0,0,0,0,7,74.36826,13.73189,0,,515,515,1,0,1.94591,6.244167,0,3.258096,7.630461,1,0,0,77.87675,9.109972,1.94591,,0 +5,1,25,0,1,127346,0,9044.045,11.54552,0,12,1,0,0,0,0,0,0,0,0,0,0,0,7,74.36826,13.73189,0,,515,515,1,0,1.94591,6.244167,0,3.258096,7.630461,1,0,0,77.87675,9.109972,1.94591,,0 +5,1,25,0,2,127346,0,9044.045,12.54552,0,12,1,72.2372,0,0,0,0,72.2372,0,0,0,4,0,7,74.36826,13.73189,0,,515,515,1,0,1.94591,6.244167,0,3.258096,7.630461,1,0,0,77.87675,9.109972,1.94591,4.279955,1 +5,1,25,0,3,127346,0,9044.045,13.54552,0,12,1,0,0,0,0,0,0,0,0,0,0,0,7,74.36826,13.73189,0,,515,515,1,0,1.94591,6.244167,0,3.258096,7.630461,1,0,0,77.87675,9.109972,1.94591,,0 +5,1,25,0,1,127347,0,9044.045,14.51608,0,12,1,0,0,0,0,0,0,0,0,0,0,0,7,78.8,13.73189,0,,515,515,1,0,1.94591,6.244167,0,3.258096,7.630461,1,0,0,73.47551,9.109972,1.94591,,0 +5,1,25,0,2,127347,0,9044.045,15.51608,0,12,1,13.47709,0,0,0,0,13.47709,0,0,0,1,0,7,78.8,13.73189,0,,515,515,1,0,1.94591,6.244167,0,3.258096,7.630461,1,0,0,73.47551,9.109972,1.94591,2.600991,1 +5,1,25,0,3,127347,0,9044.045,16.51608,0,12,1,17.51843,5.061425,0,0,0,22.57985,0,0,0,1,0,7,78.8,13.73189,0,,515,515,1,0,1.94591,6.244167,0,3.258096,7.630461,1,0,0,73.47551,9.109972,1.94591,3.117058,1 +5,1,25,0,1,127348,0,9044.045,6.55989,1,12,1,8.244994,0,0,0,0,8.244994,0,0,0,1,0,7,74.36826,13.73189,0,,515,515,1,1,1.94591,6.244167,0,3.258096,7.630461,1,0,0,77.36277,9.109972,1.94591,2.109606,1 +5,1,25,0,2,127348,0,9044.045,7.55989,1,12,1,3.773585,0,15.77359,0,0,19.54717,0,0,0,0,1,7,74.36826,13.73189,0,,515,515,1,1,1.94591,6.244167,0,3.258096,7.630461,1,0,0,77.36277,9.109972,1.94591,2.972831,1 +5,1,25,0,3,127348,0,9044.045,8.559891,1,12,1,0,0,0,0,0,0,0,0,0,0,0,7,74.36826,13.73189,0,,515,515,1,1,1.94591,6.244167,0,3.258096,7.630461,1,0,0,77.36277,9.109972,1.94591,,0 +5,1,25,0,1,127349,0,9044.045,10.0835,1,12,1,0,0,0,0,0,0,0,0,0,0,0,7,74.36826,13.73189,0,,515,515,1,1,1.94591,6.244167,0,3.258096,7.630461,1,0,0,77.36277,9.109972,1.94591,,0 +5,1,25,0,2,127349,0,9044.045,11.0835,1,12,1,5.390836,1.078167,0,0,0,6.469003,0,0,0,1,0,7,74.36826,13.73189,0,,515,515,1,1,1.94591,6.244167,0,3.258096,7.630461,1,0,0,77.36277,9.109972,1.94591,1.867022,1 +5,1,25,0,3,127349,0,9044.045,12.0835,1,12,1,0,0,0,0,0,0,0,0,0,0,0,7,74.36826,13.73189,0,,515,515,1,1,1.94591,6.244167,0,3.258096,7.630461,1,0,0,77.36277,9.109972,1.94591,,0 +5,1,25,0,1,127350,0,9044.045,32.64887,1,12,1,25.32391,12.04947,0,0,0,37.37338,0,0,0,3,0,7,73.8,13.73189,0,,515,515,0,0,1.94591,6.244167,0,3.258096,7.630461,1,0,0,71.59294,9.109972,1.94591,3.620959,1 +5,1,25,0,2,127350,0,9044.045,33.64887,1,12,1,17.25067,12.02695,16.33962,16.17251,0,45.61725,0,0,2,0,1,7,73.8,13.73189,0,,515,515,0,0,1.94591,6.244167,0,3.258096,7.630461,1,0,0,71.59294,9.109972,1.94591,3.820286,1 +5,1,25,0,3,127350,0,9044.045,34.64887,1,12,1,4.914005,4.732187,0,0,0,9.646192,0,0,0,1,0,7,73.8,13.73189,0,,515,515,0,0,1.94591,6.244167,0,3.258096,7.630461,1,0,0,71.59294,9.109972,1.94591,2.266563,1 +5,1,25,0,1,127351,0,9044.045,41.00479,0,12,1,0,0,0,0,0,0,0,0,0,0,0,7,72.5,13.73189,0,,515,515,0,0,1.94591,6.244167,0,3.258096,7.630461,1,0,0,68.90664,9.109972,1.94591,,0 +5,1,25,0,2,127351,0,9044.045,42.00479,0,12,1,8.086253,3.962264,0,0,0,12.04852,0,0,0,1,0,7,72.5,13.73189,0,,515,515,0,0,1.94591,6.244167,0,3.258096,7.630461,1,0,0,68.90664,9.109972,1.94591,2.488942,1 +5,1,25,0,3,127351,0,9044.045,43.00479,0,12,1,0,0,0,0,0,0,0,0,0,0,0,7,72.5,13.73189,0,,515,515,0,0,1.94591,6.244167,0,3.258096,7.630461,1,0,0,68.90664,9.109972,1.94591,,0 +3,1,100,0,1,127361,0,9542.002,8.287475,0,10,1,0,0,0,0,0,0,0,0,0,0,0,6,74.36826,13.73189,0,,283,283,1,0,1.791759,5.645447,1,0,0,1,0,0,73.43399,9.163564,1.791759,,0 +3,1,100,0,2,127361,0,9542.002,9.287475,0,10,1,0,0,0,0,0,0,0,0,0,0,0,6,74.36826,13.73189,0,,283,283,1,0,1.791759,5.645447,1,0,0,1,0,0,73.43399,9.163564,1.791759,,0 +3,1,100,0,3,127361,0,9542.002,10.28747,0,10,1,0,0,0,0,0,0,0,0,0,0,0,6,74.36826,13.73189,0,,283,283,1,0,1.791759,5.645447,1,0,0,1,0,0,73.43399,9.163564,1.791759,,0 +3,1,100,0,1,127362,0,9542.002,7.074606,1,10,1,0,0,0,0,0,0,0,0,0,0,0,6,74.36826,13.73189,0,,283,283,1,1,1.791759,5.645447,1,0,0,1,0,0,72.92001,9.163564,1.791759,,0 +3,1,100,0,2,127362,0,9542.002,8.074607,1,10,1,0,0,0,0,0,0,0,0,0,0,0,6,74.36826,13.73189,0,,283,283,1,1,1.791759,5.645447,1,0,0,1,0,0,72.92001,9.163564,1.791759,,0 +3,1,100,0,3,127362,0,9542.002,9.074607,1,10,1,0,0,0,0,0,0,0,0,0,0,0,6,74.36826,13.73189,0,,283,283,1,1,1.791759,5.645447,1,0,0,1,0,0,72.92001,9.163564,1.791759,,0 +3,1,100,0,1,127363,0,9542.002,9.166325,1,10,1,0,0,0,0,0,0,0,0,0,0,0,6,74.36826,13.73189,0,,283,283,1,1,1.791759,5.645447,1,0,0,1,0,0,69.64929,9.163564,1.791759,,0 +3,1,100,0,2,127363,0,9542.002,10.16632,1,10,1,0,0,0,0,0,0,0,0,0,0,0,6,74.36826,13.73189,0,,283,283,1,1,1.791759,5.645447,1,0,0,1,0,0,69.64929,9.163564,1.791759,,0 +3,1,100,0,3,127363,0,9542.002,11.16632,1,10,1,0,0,0,0,0,0,0,0,0,0,0,6,74.36826,13.73189,0,,283,283,1,1,1.791759,5.645447,1,0,0,1,0,0,69.64929,9.163564,1.791759,,0 +3,1,100,0,1,127364,0,9542.002,27.91239,1,10,1,0,0,0,0,0,0,0,0,0,0,0,6,82.1,0,0,,283,283,0,0,1.791759,5.645447,1,0,0,1,0,0,63.48573,9.163564,1.791759,,0 +3,1,100,0,2,127364,0,9542.002,28.91239,1,10,1,8.086253,6.134771,0,0,0,14.22102,0,0,0,0,0,6,82.1,0,0,,283,283,0,0,1.791759,5.645447,1,0,0,1,0,0,63.48573,9.163564,1.791759,2.654721,1 +3,1,100,0,3,127364,0,9542.002,29.91239,1,10,1,0,0,0,0,0,0,0,0,0,0,0,6,82.1,0,0,,283,283,0,0,1.791759,5.645447,1,0,0,1,0,0,63.48573,9.163564,1.791759,,0 +3,1,100,0,1,127365,0,9542.002,4.43258,1,10,1,0,0,0,0,0,0,0,0,0,0,0,6,74.36826,13.73189,0,,283,283,1,1,1.791759,5.645447,1,0,0,1,0,0,69.4884,9.163564,1.791759,,0 +3,1,100,0,2,127365,0,9542.002,5.43258,1,10,1,0,0,0,0,0,0,0,0,0,0,0,6,74.36826,13.73189,0,,283,283,1,1,1.791759,5.645447,1,0,0,1,0,0,69.4884,9.163564,1.791759,,0 +3,1,100,0,3,127365,0,9542.002,6.43258,1,10,1,0,0,0,0,0,0,0,0,0,0,0,6,74.36826,13.73189,0,,283,283,1,1,1.791759,5.645447,1,0,0,1,0,0,69.4884,9.163564,1.791759,,0 +9,1,50,0,1,127368,0,9542.002,25.28131,0,15,1,46.94935,1.319199,0,0,0,48.26855,0,0,0,2,1,1,54.7,17.4,1,,550,550,0,0,0,6.309918,0,3.931826,7.003066,0,0,1,52.34806,9.163564,0,3.87678,1 +9,1,50,0,2,127368,0,9542.002,26.28131,0,15,1,72.50674,0,459.6981,0,38649.81,39182.02,2,0,0,0,0,1,54.7,17.4,1,,550,550,0,0,0,6.309918,0,3.931826,7.003066,0,0,1,52.34806,9.163564,0,10.57597,1 +9,1,50,0,1,127369,0,1524.194,22.71321,0,14,1,0,0,0,0,0,0,0,0,0,0,0,1,81.1,4.3,0,,760,760,0,0,0,6.633318,0,3.931826,7.326466,1,0,0,69.06231,7.329876,0,,0 +9,1,50,0,2,127369,0,1524.194,23.71321,0,14,1,17.25067,9.299191,0,0,0,26.54987,0,0,0,3,0,1,81.1,4.3,0,,760,760,0,0,0,6.633318,0,3.931826,7.326466,1,0,0,69.06231,7.329876,0,3.279025,1 +9,1,50,0,3,127369,0,1524.194,24.71321,0,14,1,0,3.710074,0,0,0,3.710074,0,0,0,0,0,1,81.1,4.3,0,,760,760,0,0,0,6.633318,0,3.931826,7.326466,1,0,0,69.06231,7.329876,0,1.311052,1 +9,1,50,0,4,127369,0,1524.194,25.71321,0,14,1,0,0,0,0,0,0,0,0,0,0,0,1,81.1,4.3,0,,760,760,0,0,0,6.633318,0,3.931826,7.326466,1,0,0,69.06231,7.329876,0,,0 +9,1,50,0,5,127369,0,1524.194,26.71321,0,14,1,72.94706,6.969571,0,0,0,79.91663,0,0,0,5,0,1,81.1,4.3,0,,760,760,0,0,0,6.633318,0,3.931826,7.326466,1,0,0,69.06231,7.329876,0,4.380984,1 +11,1,0,0,1,127370,0,7700.372,25.62354,1,8,1,59.71049,30.5187,31.51387,0,505.4765,627.2195,1,0,0,4,1,4,22.7,13.73189,1,,0,0,0,0,1.386294,0,0,0,0,0,0,0,75.49265,8.949154,1.386294,6.441297,1 +11,1,0,0,2,127370,0,7700.372,26.62354,1,8,1,25.88106,10.40749,0,11.01322,0,36.28855,0,0,1,3,0,4,22.7,13.73189,1,,0,0,0,0,1.386294,0,0,0,0,0,0,0,75.49265,8.949154,1.386294,3.591502,1 +11,1,0,0,3,127370,0,7700.372,27.62354,1,8,1,14.06328,1.25565,0,0,0,15.31894,0,0,0,1,0,4,22.7,13.73189,1,,0,0,0,0,1.386294,0,0,0,0,0,0,0,75.49265,8.949154,1.386294,2.72909,1 +11,1,0,0,1,127371,0,7700.372,5.587954,1,8,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,0,0,1,1,1.386294,0,0,0,0,0,0,0,79.6293,8.949154,1.386294,,0 +11,1,0,0,2,127371,0,7700.372,6.587954,1,8,1,20.09912,2.257709,0,0,696.5253,718.8821,1,0,0,0,0,4,74.36826,13.73189,0,,0,0,1,1,1.386294,0,0,0,0,0,0,0,79.6293,8.949154,1.386294,6.577697,1 +11,1,0,0,3,127371,0,7700.372,7.587954,1,8,1,41.43646,14.23908,0,0,0,55.67554,0,0,0,5,0,4,74.36826,13.73189,0,,0,0,1,1,1.386294,0,0,0,0,0,0,0,79.6293,8.949154,1.386294,4.019541,1 +11,1,0,0,1,127372,0,7700.372,4.388775,1,8,1,13.87214,0,0,0,0,13.87214,0,0,0,1,0,4,74.36826,13.73189,0,,0,0,1,1,1.386294,0,0,0,0,0,0,0,76.19768,8.949154,1.386294,2.629882,1 +11,1,0,0,2,127372,0,7700.372,5.388775,1,8,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,0,0,1,1,1.386294,0,0,0,0,0,0,0,76.19768,8.949154,1.386294,,0 +11,1,0,0,3,127372,0,7700.372,6.388775,1,8,1,28.65394,2.009041,0,0,0,30.66298,0,0,0,2,0,4,74.36826,13.73189,0,,0,0,1,1,1.386294,0,0,0,0,0,0,0,76.19768,8.949154,1.386294,3.423056,1 +11,1,0,0,1,127373,0,7700.372,29.94935,0,11,1,26.13993,2.050663,0,0,0,28.19059,0,0,0,1,0,4,61.3,13.73189,0,,0,0,0,0,1.386294,0,0,0,0,0,0,0,74.60146,8.949154,1.386294,3.338988,1 +11,1,0,0,2,127373,0,7700.372,30.94935,0,11,1,83.70044,0,0,0,0,83.70044,0,0,0,0,10,4,61.3,13.73189,0,,0,0,0,0,1.386294,0,0,0,0,0,0,0,74.60146,8.949154,1.386294,4.427244,1 +11,1,0,0,3,127373,0,7700.372,31.94935,0,11,1,96.93621,.5022601,0,0,0,97.43848,0,0,0,1,18,4,61.3,13.73189,0,,0,0,0,0,1.386294,0,0,0,0,0,0,0,74.60146,8.949154,1.386294,4.579221,1 +6,1,25,1,1,127378,0,3809.553,36.846,0,3,1,0,0,0,0,0,0,0,0,0,0,0,4,96.8,0,0,,700,700,0,0,1.386294,6.55108,0,3.258096,7.937375,0,0,0,74.64081,8.24553,1.386294,,0 +6,1,25,1,2,127378,0,3809.553,37.846,0,3,1,0,0,0,0,0,0,0,0,0,0,0,4,96.8,0,0,,700,700,0,0,1.386294,6.55108,0,3.258096,7.937375,0,0,0,74.64081,8.24553,1.386294,,0 +6,1,25,1,3,127378,0,3809.553,38.846,0,3,1,37.666,0,0,0,0,37.666,0,0,0,1,0,4,96.8,0,0,,700,700,0,0,1.386294,6.55108,0,3.258096,7.937375,0,0,0,74.64081,8.24553,1.386294,3.628758,1 +6,1,25,1,1,127379,0,3809.553,8.64887,0,7,1,13.68233,0,0,0,0,13.68233,0,0,0,0,1,4,74.36826,13.73189,0,,700,700,1,0,1.386294,6.55108,0,3.258096,7.937375,0,0,0,82.16232,8.24553,1.386294,2.616105,1 +6,1,25,1,2,127379,0,3809.553,9.64887,0,7,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,700,700,1,0,1.386294,6.55108,0,3.258096,7.937375,0,0,0,82.16232,8.24553,1.386294,,0 +6,1,25,1,3,127379,0,3809.553,10.64887,0,7,1,36.91774,0,0,0,0,36.91774,0,0,0,1,0,4,74.36826,13.73189,0,,700,700,1,0,1.386294,6.55108,0,3.258096,7.937375,0,0,0,82.16232,8.24553,1.386294,3.608692,1 +6,1,25,1,1,127380,0,3809.553,24.06297,1,7,1,0,0,0,0,0,0,0,0,0,0,0,4,84.2,4.3,0,,700,700,0,0,1.386294,6.55108,0,3.258096,7.937375,0,0,0,75.53199,8.24553,1.386294,,0 +6,1,25,1,2,127380,0,3809.553,25.06297,1,7,1,0,0,0,0,0,0,0,0,0,0,0,4,84.2,4.3,0,,700,700,0,0,1.386294,6.55108,0,3.258096,7.937375,0,0,0,75.53199,8.24553,1.386294,,0 +6,1,25,1,3,127380,0,3809.553,26.06297,1,7,1,0,0,0,0,0,0,0,0,0,0,0,4,84.2,4.3,0,,700,700,0,0,1.386294,6.55108,0,3.258096,7.937375,0,0,0,75.53199,8.24553,1.386294,,0 +6,1,25,1,1,127381,0,3809.553,9.500342,1,7,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,700,700,1,1,1.386294,6.55108,0,3.258096,7.937375,0,0,0,81.64835,8.24553,1.386294,,0 +6,1,25,1,2,127381,0,3809.553,10.50034,1,7,1,16.98421,6.303756,0,0,0,23.28797,0,0,0,1,0,4,74.36826,13.73189,0,,700,700,1,1,1.386294,6.55108,0,3.258096,7.937375,0,0,0,81.64835,8.24553,1.386294,3.147937,1 +6,1,25,1,3,127381,0,3809.553,11.50034,1,7,1,19.32607,0,0,0,0,19.32607,0,0,0,1,0,4,74.36826,13.73189,0,,700,700,1,1,1.386294,6.55108,0,3.258096,7.937375,0,0,0,81.64835,8.24553,1.386294,2.961455,1 +11,1,0,1,1,127385,0,9658.188,13.39357,1,12,1,16.35931,0,0,0,0,16.35931,0,0,0,1,0,5,74.36826,13.73189,0,,0,0,1,1,1.609438,0,0,0,0,0,0,0,83.986,9.175665,1.609438,2.794797,1 +11,1,0,1,2,127385,0,9658.188,14.39357,1,12,1,29.94012,6.614045,0,0,0,36.55416,0,0,0,4,0,5,74.36826,13.73189,0,,0,0,1,1,1.609438,0,0,0,0,0,0,0,83.986,9.175665,1.609438,3.598795,1 +11,1,0,1,3,127385,0,9658.188,15.39357,1,12,1,15.85728,2.006938,0,0,0,17.86422,0,0,0,2,0,5,74.36826,13.73189,0,,0,0,1,1,1.609438,0,0,0,0,0,0,0,83.986,9.175665,1.609438,2.8828,1 +11,1,0,1,4,127385,0,9658.188,16.39357,1,12,1,11.01423,0,0,0,0,11.01423,0,0,0,2,0,5,74.36826,13.73189,0,,0,0,1,1,1.609438,0,0,0,0,0,0,0,83.986,9.175665,1.609438,2.399188,1 +11,1,0,1,5,127385,0,9658.188,17.39357,1,12,1,32.94068,11.63231,0,0,0,44.57299,0,0,0,3,0,5,74.36826,13.73189,0,,0,0,1,1,1.609438,0,0,0,0,0,0,0,83.986,9.175665,1.609438,3.797128,1 +11,1,0,1,1,127386,0,9658.188,15.04449,1,12,1,43.18858,6.543724,0,0,0,49.7323,0,0,0,3,0,5,83.2,4.3,0,,0,0,1,1,1.609438,0,0,0,0,0,0,0,74.88091,9.175665,1.609438,3.906655,1 +11,1,0,1,2,127386,0,9658.188,16.04449,1,12,1,34.83941,13.60915,0,0,0,48.44856,0,0,0,2,0,5,83.2,4.3,0,,0,0,1,1,1.609438,0,0,0,0,0,0,0,74.88091,9.175665,1.609438,3.880503,1 +11,1,0,1,3,127386,0,9658.188,17.04449,1,12,1,24.0337,13.00793,0,0,0,37.04163,0,0,0,1,2,5,83.2,4.3,0,,0,0,1,1,1.609438,0,0,0,0,0,0,0,74.88091,9.175665,1.609438,3.612042,1 +11,1,0,1,4,127386,0,9658.188,18.04449,1,12,1,34.41946,4.841671,0,0,323.2675,362.5287,1,0,0,3,0,5,83.2,4.3,0,,0,0,0,0,1.609438,0,0,0,0,0,0,0,74.88091,9.175665,1.609438,5.893104,1 +11,1,0,1,5,127386,0,9658.188,19.04449,1,12,1,72.60413,24.63189,0,0,1328.132,1425.368,1,0,0,2,0,5,83.2,4.3,0,,0,0,0,0,1.609438,0,0,0,0,0,0,0,74.88091,9.175665,1.609438,7.262186,1 +11,1,0,1,1,127387,0,9658.188,39.80835,0,7,1,67.22189,104.4319,0,0,522.4688,694.1226,1,0,0,9,0,5,63.2,0,0,,0,0,0,0,1.609438,0,0,0,0,0,0,0,75.22207,9.175665,1.609438,6.542648,1 +11,1,0,1,2,127387,0,9658.188,40.80835,0,7,1,319.5427,70.20686,29.0147,8.165487,0,418.7643,0,0,1,17,15,5,63.2,0,0,,0,0,0,0,1.609438,0,0,0,0,0,0,0,75.22207,9.175665,1.609438,6.037308,1 +11,1,0,1,3,127387,0,9658.188,41.80835,0,7,1,109.2666,77.84936,0,22.29931,0,187.116,0,0,2,31,0,5,63.2,0,0,,0,0,0,0,1.609438,0,0,0,0,0,0,0,75.22207,9.175665,1.609438,5.231729,1 +11,1,0,1,4,127387,0,9658.188,42.80835,0,7,1,315.7412,127.3107,19.66498,0,978.4855,1441.202,1,0,0,13,1,5,63.2,0,0,,0,0,0,0,1.609438,0,0,0,0,0,0,0,75.22207,9.175665,1.609438,7.273233,1 +11,1,0,1,5,127387,0,9658.188,43.80835,0,7,1,146.8237,111.9899,0,0,0,258.8136,0,0,0,6,0,5,63.2,0,0,,0,0,0,0,1.609438,0,0,0,0,0,0,0,75.22207,9.175665,1.609438,5.556108,1 +11,1,0,1,1,127388,0,9658.188,6.220397,0,12,1,103.8251,18.35217,0,0,0,122.1773,0,0,0,8,0,5,74.36826,13.73189,0,,0,0,1,0,1.609438,0,0,0,0,0,0,0,84.49998,9.175665,1.609438,4.805473,1 +11,1,0,1,2,127388,0,9658.188,7.220397,0,12,1,11.97605,1.796407,0,0,0,13.77246,0,0,0,2,0,5,74.36826,13.73189,0,,0,0,1,0,1.609438,0,0,0,0,0,0,0,84.49998,9.175665,1.609438,2.622671,1 +11,1,0,1,3,127388,0,9658.188,8.220397,0,12,1,4.955401,4.058474,0,0,0,9.013875,0,0,0,1,0,5,74.36826,13.73189,0,,0,0,1,0,1.609438,0,0,0,0,0,0,0,84.49998,9.175665,1.609438,2.198765,1 +11,1,0,1,4,127388,0,9658.188,9.220397,0,12,1,39.05461,8.210188,0,0,0,47.2648,0,0,0,4,0,5,74.36826,13.73189,0,,0,0,1,0,1.609438,0,0,0,0,0,0,0,84.49998,9.175665,1.609438,3.855766,1 +11,1,0,1,5,127388,0,9658.188,10.2204,0,12,1,75.58266,1.867901,1.262095,0,0,78.71266,0,0,0,2,0,5,74.36826,13.73189,0,,0,0,1,0,1.609438,0,0,0,0,0,0,0,84.49998,9.175665,1.609438,4.365804,1 +11,1,0,1,1,127389,0,9658.188,34.05886,1,12,1,148.6496,78.35812,27.97739,0,0,254.9851,0,0,0,15,1,5,71.6,13,0,,0,0,0,0,1.609438,0,0,0,0,0,0,0,78.32207,9.175665,1.609438,5.541205,1 +11,1,0,1,2,127389,0,9658.188,35.05886,1,12,1,361.1486,125.9499,0,0,780.7022,1267.801,1,0,0,28,1,5,71.6,13,0,,0,0,0,0,1.609438,0,0,0,0,0,0,0,78.32207,9.175665,1.609438,7.145039,1 +11,1,0,1,3,127389,0,9658.188,36.05886,1,12,1,100.5947,119.108,22.78493,29.73241,397.2547,639.7423,1,0,2,10,1,5,71.6,13,0,,0,0,0,0,1.609438,0,0,0,0,0,0,0,78.32207,9.175665,1.609438,6.461065,1 +11,1,0,1,4,127389,0,9658.188,37.05886,1,12,1,301.3768,82.1799,12.46902,0,793.4282,1189.454,1,0,0,20,1,5,71.6,13,0,,0,0,0,0,1.609438,0,0,0,0,0,0,0,78.32207,9.175665,1.609438,7.08125,1 +11,1,0,1,5,127389,0,9658.188,38.05886,1,12,1,182.5831,145.4186,.1051746,0,2992.705,3320.812,2,0,0,16,0,5,71.6,13,0,,0,0,0,0,1.609438,0,0,0,0,0,0,0,78.32207,9.175665,1.609438,8.107965,1 +10,1,50,0,1,127395,0,2235.732,46.56263,1,10,1,18.69723,14.06514,0,0,0,32.76236,0,0,0,6,0,2,60,13.73189,0,,342,0,0,0,.6931472,0,0,3.931826,6.527958,0,0,0,74.09964,7.712771,.6931472,3.48928,1 +10,1,50,0,2,127395,0,2235.732,47.56263,1,10,1,23.67841,9.036344,0,0,0,32.71476,0,0,0,2,0,2,60,13.73189,0,,342,0,0,0,.6931472,0,0,3.931826,6.527958,0,0,0,74.09964,7.712771,.6931472,3.487826,1 +10,1,50,0,3,127395,0,2235.732,48.56263,1,10,1,13.05876,9.648417,37.2677,0,0,59.97489,0,0,0,3,1,2,60,13.73189,0,,342,0,0,0,.6931472,0,0,3.931826,6.527958,0,0,0,74.09964,7.712771,.6931472,4.093926,1 +10,1,50,0,1,127396,0,2235.732,11.92608,0,10,1,4.82509,3.618818,0,0,0,8.443909,0,0,0,1,0,2,74.36826,13.73189,0,,342,0,1,0,.6931472,0,0,3.931826,6.527958,0,0,0,81.16636,7.712771,.6931472,2.133445,1 +10,1,50,0,2,127396,0,2235.732,12.92608,0,10,1,0,0,0,0,0,0,0,0,0,0,0,2,74.36826,13.73189,0,,342,0,1,0,.6931472,0,0,3.931826,6.527958,0,0,0,81.16636,7.712771,.6931472,,0 +10,1,50,0,3,127396,0,2235.732,13.92608,0,10,1,4.520341,3.013561,0,0,0,7.533903,0,0,0,1,0,2,74.36826,13.73189,0,,342,0,1,0,.6931472,0,0,3.931826,6.527958,0,0,0,81.16636,7.712771,.6931472,2.019413,1 +8,1,50,0,1,127400,0,9542.002,16.15606,0,12,1,6.478209,0,0,0,0,6.478209,0,0,0,1,0,3,70,13.73189,0,,415,415,1,0,1.098612,6.028278,0,3.931826,6.721426,0,0,0,80.34551,9.163564,1.098612,1.868444,1 +8,1,50,0,2,127400,0,9542.002,17.15606,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,70,13.73189,0,,415,415,1,0,1.098612,6.028278,0,3.931826,6.721426,0,0,0,80.34551,9.163564,1.098612,,0 +8,1,50,0,3,127400,0,9542.002,18.15606,0,12,1,41.27764,0,0,0,0,41.27764,0,0,0,2,0,3,70,13.73189,0,,415,415,0,0,1.098612,6.028278,0,3.931826,6.721426,0,0,0,80.34551,9.163564,1.098612,3.720321,1 +8,1,50,0,4,127400,0,9542.002,19.15606,0,12,1,13.67366,0,0,0,0,13.67366,0,0,0,0,1,3,70,13.73189,0,,415,415,0,0,1.098612,6.028278,0,3.931826,6.721426,0,0,0,80.34551,9.163564,1.098612,2.615471,1 +8,1,50,0,5,127400,0,9542.002,20.15606,0,12,1,8.336807,0,0,0,0,8.336807,0,0,0,0,1,3,70,13.73189,0,,415,415,0,0,1.098612,6.028278,0,3.931826,6.721426,0,0,0,80.34551,9.163564,1.098612,2.12068,1 +8,1,50,0,1,127401,0,9542.002,52.89801,0,12,1,97.76207,4.581861,0,0,0,102.3439,0,0,0,0,0,3,71.3,13.73189,0,,415,415,0,0,1.098612,6.028278,0,3.931826,6.721426,0,0,0,73.66986,9.163564,1.098612,4.628339,1 +8,1,50,0,2,127401,0,9542.002,53.89801,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,71.3,13.73189,0,,415,415,0,0,1.098612,6.028278,0,3.931826,6.721426,0,0,0,73.66986,9.163564,1.098612,,0 +8,1,50,0,3,127401,0,9542.002,54.89801,0,12,1,95.3317,6.280098,0,0,0,101.6118,0,0,0,1,0,3,71.3,13.73189,0,,415,415,0,0,1.098612,6.028278,0,3.931826,6.721426,0,0,0,73.66986,9.163564,1.098612,4.62116,1 +8,1,50,0,4,127401,0,9542.002,55.89801,0,12,1,106.6545,8.395624,55.19143,0,0,170.2416,0,0,0,1,1,3,71.3,13.73189,0,,415,415,0,0,1.098612,6.028278,0,3.931826,6.721426,0,0,0,73.66986,9.163564,1.098612,5.137218,1 +8,1,50,0,5,127401,0,9542.002,56.89801,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,71.3,13.73189,0,,415,415,0,0,1.098612,6.028278,0,3.931826,6.721426,0,0,0,73.66986,9.163564,1.098612,,0 +8,1,50,0,1,127402,0,9542.002,21.61533,1,14,1,12.95642,4.829211,0,0,0,17.78563,0,0,0,2,0,1,78.8,13.73189,0,,335,335,0,0,0,5.81413,0,3.931826,6.507277,0,0,0,79.63555,9.163564,0,2.878391,1 +8,1,50,0,2,127402,0,9542.002,22.61533,1,14,1,0,0,0,0,0,0,0,0,0,0,0,1,78.8,13.73189,0,,335,335,0,0,0,5.81413,0,3.931826,6.507277,0,0,0,79.63555,9.163564,0,,0 +8,1,50,0,3,127402,0,9542.002,23.61533,1,14,1,364.3735,4.712531,0,0,57.49386,426.5799,0,0,0,4,0,1,78.8,13.73189,0,,335,335,0,0,0,5.81413,0,3.931826,6.507277,0,0,0,79.63555,9.163564,0,6.055799,1 +8,1,50,0,4,127402,0,9542.002,24.61533,1,14,1,6.381039,12.35187,0,0,0,18.73291,0,0,0,1,0,1,78.8,13.73189,0,,335,335,0,0,0,5.81413,0,3.931826,6.507277,0,0,0,79.63555,9.163564,0,2.930282,1 +8,1,50,0,5,127402,0,9542.002,25.61533,1,14,1,7.503126,0,0,0,0,7.503126,0,0,0,1,0,1,78.8,13.73189,0,,335,335,0,0,0,5.81413,0,3.931826,6.507277,0,0,0,79.63555,9.163564,0,2.01532,1 +8,1,50,0,1,127403,0,9542.002,47.87406,1,12,1,32.39105,51.19552,0,0,0,83.58657,0,0,0,4,0,3,82.5,13.73189,0,,415,415,0,0,1.098612,6.028278,0,3.931826,6.721426,1,0,0,70.90492,9.163564,1.098612,4.425883,1 +8,1,50,0,2,127403,0,9542.002,48.87406,1,12,1,15.63342,30.26415,0,0,0,45.89758,0,0,0,1,0,3,82.5,13.73189,0,,415,415,0,0,1.098612,6.028278,0,3.931826,6.721426,1,0,0,70.90492,9.163564,1.098612,3.826412,1 +8,1,50,0,3,127403,0,9542.002,49.87406,1,12,1,28.99263,22.4226,29.27273,0,0,80.68796,0,0,0,1,1,3,82.5,13.73189,0,,415,415,0,0,1.098612,6.028278,0,3.931826,6.721426,1,0,0,70.90492,9.163564,1.098612,4.390589,1 +8,1,50,0,4,127403,0,9542.002,50.87406,1,12,1,13.67366,25.82953,0,0,0,39.50319,0,0,0,1,1,3,82.5,13.73189,0,,415,415,0,0,1.098612,6.028278,0,3.931826,6.721426,1,0,0,70.90492,9.163564,1.098612,3.676381,1 +8,1,50,0,5,127403,0,9542.002,51.87406,1,12,1,17.92414,24.4852,42.68862,0,0,85.09795,0,0,0,1,1,3,82.5,13.73189,0,,415,415,0,0,1.098612,6.028278,0,3.931826,6.721426,1,0,0,70.90492,9.163564,1.098612,4.443803,1 +11,1,0,0,1,127409,0,13933.62,6.105407,1,12,1,9.518144,4.497323,0,0,0,14.01547,0,0,0,1,0,5,74.36826,13.73189,0,,0,65,1,1,1.609438,4.174387,0,0,0,0,0,0,85.02243,9.542131,1.609438,2.640162,1 +11,1,0,0,2,127409,0,13933.62,7.105407,1,12,1,18.50844,2.874252,0,0,1257.104,1278.487,1,0,0,2,0,5,74.36826,13.73189,0,,0,65,1,1,1.609438,4.174387,0,0,0,0,0,0,85.02243,9.542131,1.609438,7.153432,1 +11,1,0,0,3,127409,0,13933.62,8.105408,1,12,1,53.51833,2.973241,0,0,0,56.49158,0,0,0,5,2,5,74.36826,13.73189,0,,0,65,1,1,1.609438,4.174387,0,0,0,0,0,0,85.02243,9.542131,1.609438,4.034091,1 +11,1,0,0,1,127410,0,13933.62,45.1143,0,21,1,81.49911,11.96907,54.08685,0,0,147.555,0,0,0,8,1,5,78.8,13.73189,0,,0,65,0,0,1.609438,4.174387,0,0,0,1,0,0,68.91296,9.542131,1.609438,4.994201,1 +11,1,0,0,2,127410,0,13933.62,46.1143,0,21,1,20.41372,6.886228,0,0,0,27.29995,0,0,0,3,0,5,78.8,13.73189,0,,0,65,0,0,1.609438,4.174387,0,0,0,1,0,0,68.91296,9.542131,1.609438,3.306885,1 +11,1,0,0,3,127410,0,13933.62,47.1143,0,21,1,29.23687,3.389495,0,0,100.7284,133.3548,1,0,0,4,1,5,78.8,13.73189,0,,0,65,0,0,1.609438,4.174387,0,0,0,1,0,0,68.91296,9.542131,1.609438,4.893013,1 +11,1,0,0,1,127411,0,13933.62,30.17112,1,12,1,65.43724,20.73171,34.81261,0,0,120.9816,0,0,0,5,1,5,78.8,13.73189,0,,0,65,0,0,1.609438,4.174387,0,0,0,0,0,0,78.83035,9.542131,1.609438,4.795638,1 +11,1,0,0,2,127411,0,13933.62,31.17112,1,12,1,81.1105,8.579206,0,0,0,89.68971,0,0,0,11,0,5,78.8,13.73189,0,,0,65,0,0,1.609438,4.174387,0,0,0,0,0,0,78.83035,9.542131,1.609438,4.496356,1 +11,1,0,0,3,127411,0,13933.62,32.17112,1,12,1,86.22398,6.526264,46.08523,0,0,138.8355,0,0,0,7,1,5,78.8,13.73189,0,,0,65,0,0,1.609438,4.174387,0,0,0,0,0,0,78.83035,9.542131,1.609438,4.93329,1 +11,1,0,0,1,127412,0,13933.62,7.148529,1,12,1,14.8721,2.629387,0,0,0,17.50149,0,0,0,1,1,5,74.36826,13.73189,0,,0,65,1,1,1.609438,4.174387,0,0,0,0,0,0,85.02243,9.542131,1.609438,2.862286,1 +11,1,0,0,2,127412,0,13933.62,8.148528,1,12,1,13.50027,1.317365,0,14.26238,0,14.81764,0,0,1,0,0,5,74.36826,13.73189,0,,0,65,1,1,1.609438,4.174387,0,0,0,0,0,0,85.02243,9.542131,1.609438,2.695818,1 +11,1,0,0,3,127412,0,13933.62,9.148528,1,12,1,10.90188,3.409316,0,0,0,14.3112,0,0,0,2,0,5,74.36826,13.73189,0,,0,65,1,1,1.609438,4.174387,0,0,0,0,0,0,85.02243,9.542131,1.609438,2.661042,1 +11,1,0,0,1,127413,0,13933.62,1.566051,1,12,1,156.4545,6.650803,0,0,0,163.1053,0,0,0,6,2,5,74.36826,13.73189,0,,0,65,1,1,1.609438,4.174387,0,0,0,0,0,0,81.59081,9.542131,1.609438,5.094396,1 +11,1,0,0,2,127413,0,13933.62,2.566051,1,12,1,133.914,7.958628,0,0,0,141.8726,0,0,0,5,0,5,74.36826,13.73189,0,,0,65,1,1,1.609438,4.174387,0,0,0,0,0,0,81.59081,9.542131,1.609438,4.95493,1 +11,1,0,0,3,127413,0,13933.62,3.566051,1,12,1,220.5154,14.75718,0,0,0,235.2726,0,0,0,12,29,5,74.36826,13.73189,0,,0,65,1,1,1.609438,4.174387,0,0,0,0,0,0,81.59081,9.542131,1.609438,5.460745,1 +11,1,0,1,1,127425,0,11437.34,17.36345,0,16,1,44.24461,9.262589,0,0,0,53.50719,0,0,0,3,0,4,86.3,4.3,0,,0,60,1,0,1.386294,4.094345,0,0,0,0,0,0,78.55583,9.344727,1.386294,3.979816,1 +11,1,0,1,2,127425,0,11437.34,18.36345,0,16,1,17.52464,8.910186,28.04491,0,0,54.47974,0,0,0,1,1,4,86.3,4.3,0,,0,60,0,0,1.386294,4.094345,0,0,0,0,0,0,78.55583,9.344727,1.386294,3.997829,1 +11,1,0,1,3,127425,0,11437.34,19.36345,0,16,1,13.46633,0,0,0,0,13.46633,0,0,0,1,0,4,86.3,4.3,0,,0,60,0,0,1.386294,4.094345,0,0,0,0,0,0,78.55583,9.344727,1.386294,2.600193,1 +11,1,0,1,4,127425,0,11437.34,20.36345,0,16,1,11.52605,0,26.98018,0,0,38.50623,0,0,0,0,1,4,86.3,4.3,0,,0,60,0,0,1.386294,4.094345,0,0,0,0,0,0,78.55583,9.344727,1.386294,3.65082,1 +11,1,0,1,5,127425,0,11437.34,21.36345,0,16,1,109.0986,1.468472,0,0,0,110.5671,0,0,0,5,0,4,86.3,4.3,0,,0,60,0,0,1.386294,4.094345,0,0,0,0,0,0,78.55583,9.344727,1.386294,4.705622,1 +11,1,0,1,1,127426,0,11437.34,12.5859,1,16,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,0,60,1,1,1.386294,4.094345,0,0,0,0,0,0,84.24542,9.344727,1.386294,,0 +11,1,0,1,2,127426,0,11437.34,13.5859,1,16,1,13.14348,4.819277,0,0,0,17.96276,0,0,0,2,0,4,74.36826,13.73189,0,,0,60,1,1,1.386294,4.094345,0,0,0,0,0,0,84.24542,9.344727,1.386294,2.888301,1 +11,1,0,1,3,127426,0,11437.34,14.5859,1,16,1,29.42643,7.945137,0,0,0,37.37157,0,0,0,3,0,4,74.36826,13.73189,0,,0,60,1,1,1.386294,4.094345,0,0,0,0,0,0,84.24542,9.344727,1.386294,3.62091,1 +11,1,0,1,4,127426,0,11437.34,15.5859,1,16,1,11.52605,0,21.15722,0,0,32.68327,0,0,0,0,1,4,74.36826,13.73189,0,,0,60,1,1,1.386294,4.094345,0,0,0,0,0,0,84.24542,9.344727,1.386294,3.486863,1 +11,1,0,1,5,127426,0,11437.34,16.5859,1,16,1,12.69573,0,13.69022,0,0,26.38595,0,0,0,0,1,4,74.36826,13.73189,0,,0,60,1,1,1.386294,4.094345,0,0,0,0,0,0,84.24542,9.344727,1.386294,3.272832,1 +11,1,0,1,1,127427,0,11437.34,14.5462,0,16,1,19.78417,0,30.01799,0,0,49.80216,0,0,0,1,1,4,94.4,8.7,0,,0,60,1,0,1.386294,4.094345,0,0,0,0,0,0,78.55583,9.344727,1.386294,3.908058,1 +11,1,0,1,2,127427,0,11437.34,15.5462,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,94.4,8.7,0,,0,60,1,0,1.386294,4.094345,0,0,0,0,0,0,78.55583,9.344727,1.386294,,0 +11,1,0,1,3,127427,0,11437.34,16.5462,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,94.4,8.7,0,,0,60,1,0,1.386294,4.094345,0,0,0,0,0,0,78.55583,9.344727,1.386294,,0 +11,1,0,1,4,127427,0,11437.34,17.5462,0,16,1,11.52605,0,22.12079,0,0,33.64684,0,0,0,0,1,4,94.4,8.7,0,,0,60,1,0,1.386294,4.094345,0,0,0,0,0,0,78.55583,9.344727,1.386294,3.515919,1 +11,1,0,1,5,127427,0,11437.34,18.5462,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,94.4,8.7,0,,0,60,0,0,1.386294,4.094345,0,0,0,0,0,0,78.55583,9.344727,1.386294,,0 +11,1,0,1,1,127428,0,11437.34,40.88159,1,16,1,50.95923,115,0,0,0,165.9592,0,0,0,6,0,4,60,13,1,,0,60,0,0,1.386294,4.094345,0,0,0,0,0,0,73.39796,9.344727,1.386294,5.111742,1 +11,1,0,1,2,127428,0,11437.34,41.88159,1,16,1,40.52574,118.3516,0,0,0,158.8773,0,0,0,3,0,4,60,13,1,,0,60,0,0,1.386294,4.094345,0,0,0,0,0,0,73.39796,9.344727,1.386294,5.068132,1 +11,1,0,1,3,127428,0,11437.34,42.88159,1,16,1,48.8778,105.1421,23.45636,0,0,177.4763,0,0,0,4,1,4,60,13,1,,0,60,0,0,1.386294,4.094345,0,0,0,0,0,0,73.39796,9.344727,1.386294,5.178837,1 +11,1,0,1,4,127428,0,11437.34,43.88159,1,16,1,20.74689,117.9852,0,0,0,138.7321,0,0,0,2,0,4,60,13,1,,0,60,0,0,1.386294,4.094345,0,0,0,0,0,0,73.39796,9.344727,1.386294,4.932545,1 +11,1,0,1,5,127428,0,11437.34,44.88159,1,16,1,35.54803,117.7613,41.95514,0,0,195.2645,0,0,0,1,1,4,60,13,1,,0,60,0,0,1.386294,4.094345,0,0,0,0,0,0,73.39796,9.344727,1.386294,5.274355,1 +7,1,25,0,1,127437,0,7905.087,57.11978,0,9,1,50.35971,44.80216,36.8825,0,0,132.0444,0,0,0,6,1,2,91.3,13.73189,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,1,0,57.70329,8.975389,.6931472,4.883138,1 +7,1,25,0,2,127437,0,7905.087,58.11978,0,9,1,54.76451,55.5586,25.73932,0,0,136.0624,0,0,0,6,1,2,91.3,13.73189,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,1,0,57.70329,8.975389,.6931472,4.913114,1 +7,1,25,0,3,127437,0,7905.087,59.11978,0,9,1,68.82793,84.18454,0,0,0,153.0125,0,0,0,8,0,2,91.3,13.73189,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,1,0,57.70329,8.975389,.6931472,5.030519,1 +7,1,25,0,1,127438,0,7905.087,53.74675,1,11,1,62.35012,76.32494,31.8705,0,0,170.5456,0,0,0,6,1,2,70,13.73189,1,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,1,0,0,62.17246,8.975389,.6931472,5.139002,1 +7,1,25,0,2,127438,0,7905.087,54.74675,1,11,1,40.52574,80.31216,0,0,0,120.8379,0,0,0,5,0,2,70,13.73189,1,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,1,0,0,62.17246,8.975389,.6931472,4.79445,1 +7,1,25,0,3,127438,0,7905.087,55.74675,1,11,1,38.40399,20.89775,36.93766,0,0,96.2394,0,0,0,3,1,2,70,13.73189,1,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,1,0,0,62.17246,8.975389,.6931472,4.566839,1 +11,1,0,1,1,127439,0,6820.72,52.74469,0,10,1,173.2005,41.15408,53.15289,0,0,267.5074,0,0,0,5,0,2,86.3,21.7,0,,0,0,0,0,.6931472,0,0,0,0,0,1,0,55.48558,8.827867,.6931472,5.589148,1 +11,1,0,1,2,127439,0,6820.72,53.74469,0,10,1,77.29994,28.0675,29.58084,0,0,134.9483,0,0,0,5,0,2,86.3,21.7,0,,0,0,0,0,.6931472,0,0,0,0,0,1,0,55.48558,8.827867,.6931472,4.904891,1 +11,1,0,1,3,127439,0,6820.72,54.74469,0,10,1,22.79485,15.14371,0,0,0,37.93855,0,0,0,3,0,2,86.3,21.7,0,,0,0,0,0,.6931472,0,0,0,0,0,1,0,55.48558,8.827867,.6931472,3.635968,1 +11,1,0,1,1,127440,0,6820.72,52.90623,1,11,1,226.3534,46.1511,50.66627,0,0,323.1707,0,0,0,2,23,2,69.5,47.8,0,,0,0,0,0,.6931472,0,0,0,0,0,1,0,52.57277,8.827867,.6931472,5.778181,1 +11,1,0,1,2,127440,0,6820.72,53.90623,1,11,1,247.1421,28.79695,0,0,0,275.939,0,0,0,1,21,2,69.5,47.8,0,,0,0,0,0,.6931472,0,0,0,0,0,1,0,52.57277,8.827867,.6931472,5.62018,1 +11,1,0,1,3,127440,0,6820.72,54.90623,1,11,1,389.1229,42.81467,0,0,81.76412,513.7017,0,0,0,4,17,2,69.5,47.8,0,,0,0,0,0,.6931472,0,0,0,0,0,1,0,52.57277,8.827867,.6931472,6.241642,1 +6,1,25,1,1,127470,0,9668.734,40.4846,0,13,1,10.79137,0,37.41007,0,0,48.20144,0,0,0,0,1,5,58.9,13,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,70.47347,9.176756,1.609438,3.875389,1 +6,1,25,1,2,127470,0,9668.734,41.4846,0,13,1,0,0,0,0,0,0,0,0,0,0,0,5,58.9,13,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,70.47347,9.176756,1.609438,,0 +6,1,25,1,3,127470,0,9668.734,42.4846,0,13,1,17.45636,7.256858,32.83292,0,0,57.54613,0,0,0,2,1,5,58.9,13,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,70.47347,9.176756,1.609438,4.052587,1 +6,1,25,1,4,127470,0,9668.734,43.4846,0,13,1,6.915629,3.457815,0,0,0,10.37344,0,0,0,1,0,5,58.9,13,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,70.47347,9.176756,1.609438,2.339249,1 +6,1,25,1,5,127470,0,9668.734,44.4846,0,13,1,25.81464,0,24.32501,0,0,50.13965,0,0,0,1,1,5,58.9,13,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,70.47347,9.176756,1.609438,3.914812,1 +6,1,25,1,1,127471,0,9668.734,7.422314,0,13,1,0,13.09352,0,0,0,13.09352,0,0,0,0,0,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,78.55493,9.176756,1.609438,2.572118,1 +6,1,25,1,2,127471,0,9668.734,8.422314,0,13,1,9.309967,0,0,0,0,9.309967,0,0,0,0,1,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,78.55493,9.176756,1.609438,2.231086,1 +6,1,25,1,3,127471,0,9668.734,9.422314,0,13,1,11.47132,1.820449,0,0,0,13.29177,0,0,0,2,0,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,78.55493,9.176756,1.609438,2.587145,1 +6,1,25,1,4,127471,0,9668.734,10.42231,0,13,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,78.55493,9.176756,1.609438,,0 +6,1,25,1,5,127471,0,9668.734,11.42231,0,13,1,26.66102,3.787558,0,0,0,30.44858,0,0,0,2,0,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,78.55493,9.176756,1.609438,3.416039,1 +6,1,25,1,1,127472,0,9668.734,12.29295,0,13,1,38.3693,13.78897,37.58993,0,0,89.7482,0,0,0,3,1,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,78.55493,9.176756,1.609438,4.497008,1 +6,1,25,1,2,127472,0,9668.734,13.29295,0,13,1,19.71523,6.818182,17.16867,0,0,43.70208,0,0,0,2,1,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,78.55493,9.176756,1.609438,3.777396,1 +6,1,25,1,3,127472,0,9668.734,14.29295,0,13,1,34.41396,2.119701,28.84289,14.96259,0,65.37656,0,0,1,3,1,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,78.55493,9.176756,1.609438,4.180164,1 +6,1,25,1,4,127472,0,9668.734,15.29295,0,13,1,25.35731,2.581835,0,0,0,27.93914,0,0,0,2,0,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,78.55493,9.176756,1.609438,3.330029,1 +6,1,25,1,5,127472,0,9668.734,16.29295,0,13,1,14.81168,0,23.7537,0,0,38.56538,0,0,0,1,1,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,78.55493,9.176756,1.609438,3.652355,1 +6,1,25,1,1,127473,0,9668.734,38.16564,1,13,1,31.77458,20.44365,34.27458,0,0,86.49281,0,0,0,2,1,5,58.9,26.1,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,1,0,56.59937,9.176756,1.609438,4.460061,1 +6,1,25,1,2,127473,0,9668.734,39.16564,1,13,1,101.862,40.36145,0,0,0,142.2234,0,0,0,3,0,5,58.9,26.1,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,1,0,56.59937,9.176756,1.609438,4.957399,1 +6,1,25,1,3,127473,0,9668.734,40.16564,1,13,1,49.87531,32.49377,43.78055,0,0,126.1496,0,0,0,2,1,5,58.9,26.1,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,1,0,56.59937,9.176756,1.609438,4.837469,1 +6,1,25,1,4,127473,0,9668.734,41.16564,1,13,1,47.02628,4.702628,0,0,0,51.72891,0,0,0,3,0,5,58.9,26.1,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,1,0,56.59937,9.176756,1.609438,3.946017,1 +6,1,25,1,5,127473,0,9668.734,42.16564,1,13,1,42.31908,10.77021,25.6496,0,0,78.73889,0,0,0,4,1,5,58.9,26.1,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,1,0,56.59937,9.176756,1.609438,4.366137,1 +6,1,25,1,1,127474,0,9668.734,14.28884,1,13,1,107.9137,82.73381,0,0,0,190.6475,0,0,0,34,0,5,74.7,4.3,0,,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,1,0,0,68.77795,9.176756,1.609438,5.250426,1 +6,1,25,1,2,127474,0,9668.734,15.28884,1,13,1,75.02738,95.0712,0,0,0,170.0986,0,0,0,24,1,5,74.7,4.3,0,,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,1,0,0,68.77795,9.176756,1.609438,5.136378,1 +6,1,25,1,3,127474,0,9668.734,16.28884,1,13,1,182.2943,45.40648,0,0,0,227.7007,0,0,0,28,1,5,74.7,4.3,0,,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,1,0,0,68.77795,9.176756,1.609438,5.428032,1 +6,1,25,1,4,127474,0,9668.734,17.28884,1,13,1,108.1143,4.495159,24.09405,0,0,136.7036,0,0,0,22,1,5,74.7,4.3,0,,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,1,0,0,68.77795,9.176756,1.609438,4.917815,1 +6,1,25,1,5,127474,0,9668.734,18.28884,1,13,1,94.79475,6.749894,0,0,535.1968,636.7415,1,0,0,24,0,5,74.7,4.3,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,68.77795,9.176756,1.609438,6.456364,1 +1,1,0,0,1,127486,0,10792.37,5.193703,1,12,1,7.733492,0,0,0,0,7.733492,0,0,0,1,0,5,74.36826,13.73189,0,,450,450,1,1,1.609438,6.109248,1,0,0,0,0,0,81.95454,9.286687,1.609438,2.045561,1 +1,1,0,0,2,127486,0,10792.37,6.193703,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,450,450,1,1,1.609438,6.109248,1,0,0,0,0,0,81.95454,9.286687,1.609438,,0 +1,1,0,0,3,127486,0,10792.37,7.193703,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,450,450,1,1,1.609438,6.109248,1,0,0,0,0,0,81.95454,9.286687,1.609438,,0 +1,1,0,0,1,127487,0,10792.37,18.14374,0,12.32507,1,45.21119,0,0,0,0,45.21119,0,0,0,2,0,5,81.3,13.73189,0,,450,450,0,0,1.609438,6.109248,1,0,0,0,0,0,79.01041,9.286687,1.609438,3.811345,1 +1,1,0,0,2,127487,0,10792.37,19.14374,0,12.32507,1,37.56124,0,0,0,0,37.56124,0,0,0,1,0,5,81.3,13.73189,0,,450,450,0,0,1.609438,6.109248,1,0,0,0,0,0,79.01041,9.286687,1.609438,3.625973,1 +1,1,0,0,3,127487,0,10792.37,20.14374,0,12.32507,1,0,0,0,0,0,0,0,0,0,0,0,5,81.3,13.73189,0,,450,450,0,0,1.609438,6.109248,1,0,0,0,0,0,79.01041,9.286687,1.609438,,0 +1,1,0,0,1,127488,0,10792.37,50.19849,1,12,1,33.3135,88.65556,2.379536,0,0,124.3486,0,0,0,2,0,5,55,13.73189,0,,450,450,0,0,1.609438,6.109248,1,0,0,0,0,0,77.65372,9.286687,1.609438,4.823089,1 +1,1,0,0,2,127488,0,10792.37,51.19849,1,12,1,42.46053,63.02667,20.14153,0,0,125.6287,0,0,0,2,1,5,55,13.73189,0,,450,450,0,0,1.609438,6.109248,1,0,0,0,0,0,77.65372,9.286687,1.609438,4.833331,1 +1,1,0,0,3,127488,0,10792.37,52.19849,1,12,1,20.81269,38.45887,0,0,0,59.27156,0,0,0,2,0,5,55,13.73189,0,,450,450,0,0,1.609438,6.109248,1,0,0,0,0,0,77.65372,9.286687,1.609438,4.082129,1 +1,1,0,0,1,127489,0,10792.37,24.3039,1,12,1,48.1856,20.65437,0,0,0,68.83997,0,0,0,3,0,5,66.3,13.73189,0,,450,450,0,0,1.609438,6.109248,1,0,0,0,0,0,79.64108,9.286687,1.609438,4.231785,1 +1,1,0,0,2,127489,0,10792.37,25.3039,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,66.3,13.73189,0,,450,450,0,0,1.609438,6.109248,1,0,0,0,0,0,79.64108,9.286687,1.609438,,0 +1,1,0,0,3,127489,0,10792.37,26.3039,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,66.3,13.73189,0,,450,450,0,0,1.609438,6.109248,1,0,0,0,0,0,79.64108,9.286687,1.609438,,0 +1,1,0,0,1,127490,0,10792.37,49.90281,0,10,1,0,0,0,0,0,0,0,0,0,0,0,5,68.8,13.73189,0,,450,450,0,0,1.609438,6.109248,1,0,0,0,0,0,73.81825,9.286687,1.609438,,0 +1,1,0,0,2,127490,0,10792.37,50.90281,0,10,1,8.709853,0,20.14153,0,0,28.85139,0,0,0,0,1,5,68.8,13.73189,0,,450,450,0,0,1.609438,6.109248,1,0,0,0,0,0,73.81825,9.286687,1.609438,3.362158,1 +1,1,0,0,3,127490,0,10792.37,51.90281,0,10,1,120.664,34.2666,0,0,0,154.9306,0,0,0,8,6,5,68.8,13.73189,0,,450,450,0,0,1.609438,6.109248,1,0,0,0,0,0,73.81825,9.286687,1.609438,5.042977,1 +2,1,100,0,1,127496,0,4168.734,57.92471,0,12,1,0,2.255595,0,0,0,2.255595,0,0,0,0,0,1,74.7,17.4,0,,170,170,0,0,0,5.135798,1,0,0,0,1,0,65.84276,8.335608,0,.8134137,1 +2,1,100,0,2,127496,0,4168.734,58.92471,0,12,1,57.68194,7.563342,0,0,0,65.24529,0,0,0,3,0,1,74.7,17.4,0,,170,170,0,0,0,5.135798,1,0,0,0,1,0,65.84276,8.335608,0,4.178154,1 +2,1,100,0,3,127496,0,4168.734,59.92471,0,12,1,22.85012,32.3489,0,0,0,55.19902,0,0,0,2,0,1,74.7,17.4,0,,170,170,0,0,0,5.135798,1,0,0,0,1,0,65.84276,8.335608,0,4.010945,1 +2,1,100,0,4,127496,0,4168.734,60.92471,0,12,1,0,22.1103,0,0,0,22.1103,0,0,0,0,0,1,74.7,17.4,0,,170,170,0,0,0,5.135798,1,0,0,0,1,0,65.84276,8.335608,0,3.096044,1 +2,1,100,0,5,127496,0,4168.734,61.92471,0,12,1,93.58066,67.77824,27.44477,0,1607.753,1796.557,2,0,0,4,6,1,74.7,17.4,0,,170,170,0,0,0,5.135798,1,0,0,0,1,0,65.84276,8.335608,0,7.493627,1 +5,1,25,1,1,127511,0,1191.067,53.73032,1,3,1,9.592326,0,34.77218,0,0,44.36451,0,0,0,0,1,1,71.6,30.4,1,,0,0,0,0,0,0,0,3.258096,0,0,1,0,52.28558,7.083444,0,3.79244,1 +5,1,25,1,2,127511,0,1191.067,54.73032,1,3,1,0,0,0,0,0,0,0,0,0,0,0,1,71.6,30.4,1,,0,0,0,0,0,0,0,3.258096,0,0,1,0,52.28558,7.083444,0,,0 +5,1,25,1,3,127511,0,1191.067,55.73032,1,3,1,0,0,0,0,0,0,0,0,0,0,0,1,71.6,30.4,1,,0,0,0,0,0,0,0,3.258096,0,0,1,0,52.28558,7.083444,0,,0 +1,1,0,0,1,127513,0,7029.777,3.879534,1,9,1,0,14.46643,0,0,0,14.46643,0,0,0,0,0,4,74.36826,13.73189,0,,450,0,1,1,1.386294,0,1,0,0,0,1,0,57.77286,8.858052,1.386294,2.671831,1 +1,1,0,0,2,127513,0,7029.777,4.879535,1,9,1,11.50055,8.209201,0,0,0,19.70975,0,0,0,2,0,4,74.36826,13.73189,0,,450,0,1,1,1.386294,0,1,0,0,0,1,0,57.77286,8.858052,1.386294,2.981113,1 +1,1,0,0,3,127513,0,7029.777,5.879535,1,9,1,76.30923,11.42145,0,0,0,87.73067,0,0,0,4,0,4,74.36826,13.73189,0,,450,0,1,1,1.386294,0,1,0,0,0,1,0,57.77286,8.858052,1.386294,4.474272,1 +1,1,0,0,4,127513,0,7029.777,6.879535,1,9,1,27.20148,20.72845,0,0,0,47.92992,0,0,0,4,0,4,74.36826,13.73189,0,,450,0,1,1,1.386294,0,1,0,0,0,1,0,57.77286,8.858052,1.386294,3.86974,1 +1,1,0,0,5,127513,0,7029.777,7.879535,1,9,1,83.03004,9.983072,0,0,0,93.01312,0,0,0,5,0,4,74.36826,13.73189,0,,450,0,1,1,1.386294,0,1,0,0,0,1,0,57.77286,8.858052,1.386294,4.532741,1 +1,1,0,0,1,127514,0,7029.777,27.0527,0,10,1,25.17986,27.96763,0,0,0,53.14748,0,0,0,0,2,4,73.8,13.73189,1,,450,0,0,0,1.386294,0,1,0,0,1,0,0,64.24998,8.858052,1.386294,3.973071,1 +1,1,0,0,2,127514,0,7029.777,28.0527,0,10,1,0,0,0,0,0,0,0,0,0,0,0,4,73.8,13.73189,1,,450,0,0,0,1.386294,0,1,0,0,1,0,0,64.24998,8.858052,1.386294,,0 +1,1,0,0,3,127514,0,7029.777,29.0527,0,10,1,4.488778,6.284289,0,0,0,10.77307,0,0,0,1,0,4,73.8,13.73189,1,,450,0,0,0,1.386294,0,1,0,0,1,0,0,64.24998,8.858052,1.386294,2.377049,1 +1,1,0,0,4,127514,0,7029.777,30.0527,0,10,1,4.61042,4.633471,0,0,0,9.243891,0,0,0,1,0,4,73.8,13.73189,1,,450,0,0,0,1.386294,0,1,0,0,1,0,0,64.24998,8.858052,1.386294,2.223963,1 +1,1,0,0,5,127514,0,7029.777,31.0527,0,10,1,5.924672,2.598392,0,0,0,8.523064,0,0,0,1,0,4,73.8,13.73189,1,,450,0,0,0,1.386294,0,1,0,0,1,0,0,64.24998,8.858052,1.386294,2.142776,1 +1,1,0,0,1,127515,0,7029.777,2.767967,1,9,1,4.196643,10.71343,0,0,0,14.91007,0,0,0,1,0,4,74.36826,13.73189,0,,450,0,1,1,1.386294,0,1,0,0,1,0,0,69.64755,8.858052,1.386294,2.702037,1 +1,1,0,0,2,127515,0,7029.777,3.767967,1,9,1,4.381161,8.187295,0,0,0,12.56846,0,0,0,1,0,4,74.36826,13.73189,0,,450,0,1,1,1.386294,0,1,0,0,1,0,0,69.64755,8.858052,1.386294,2.53119,1 +1,1,0,0,3,127515,0,7029.777,4.767967,1,9,1,16.45885,9.002494,0,0,0,25.46135,0,0,0,3,0,4,74.36826,13.73189,0,,450,0,1,1,1.386294,0,1,0,0,1,0,0,69.64755,8.858052,1.386294,3.237162,1 +1,1,0,0,4,127515,0,7029.777,5.767967,1,9,1,0,6.219456,0,0,0,6.219456,0,0,0,0,0,4,74.36826,13.73189,0,,450,0,1,1,1.386294,0,1,0,0,1,0,0,69.64755,8.858052,1.386294,1.827682,1 +1,1,0,0,5,127515,0,7029.777,6.767967,1,9,1,19.04359,14.78206,0,0,0,33.82565,0,0,0,3,0,4,74.36826,13.73189,0,,450,0,1,1,1.386294,0,1,0,0,1,0,0,69.64755,8.858052,1.386294,3.521219,1 +1,1,0,0,1,127516,0,7029.777,25.68652,1,9,1,16.18705,13.26739,0,0,0,29.45444,0,0,0,2,1,4,68.8,13.73189,0,,450,0,0,0,1.386294,0,1,0,0,1,0,0,65.15411,8.858052,1.386294,3.382845,1 +1,1,0,0,2,127516,0,7029.777,26.68652,1,9,1,8.762322,2.245345,0,0,0,11.00767,0,0,0,1,0,4,68.8,13.73189,0,,450,0,0,0,1.386294,0,1,0,0,1,0,0,65.15411,8.858052,1.386294,2.398592,1 +1,1,0,0,3,127516,0,7029.777,27.68652,1,9,1,18.95262,0,0,0,0,18.95262,0,0,0,3,0,4,68.8,13.73189,0,,450,0,0,0,1.386294,0,1,0,0,1,0,0,65.15411,8.858052,1.386294,2.941942,1 +1,1,0,0,4,127516,0,7029.777,28.68652,1,9,1,26.27939,19.2485,0,0,0,45.52789,0,0,0,2,0,4,68.8,13.73189,0,,450,0,0,0,1.386294,0,1,0,0,1,0,0,65.15411,8.858052,1.386294,3.818325,1 +1,1,0,0,5,127516,0,7029.777,29.68652,1,9,1,58.18874,17.43546,0,0,0,75.62421,0,0,0,2,0,4,68.8,13.73189,0,,450,0,0,0,1.386294,0,1,0,0,1,0,0,65.15411,8.858052,1.386294,4.325777,1 +6,1,25,1,1,127517,0,2530.464,20.85969,0,12,1,13.18945,3.597122,0,0,978.8969,995.6835,1,0,0,2,0,2,26.3,26.1,0,,343,343,0,0,.6931472,5.83773,0,3.258096,7.224025,1,0,0,64.05187,7.836553,.6931472,6.90343,1 +6,1,25,1,2,127517,0,2530.464,21.85969,0,12,1,0,5.531216,0,0,0,5.531216,0,0,0,0,0,1,26.3,26.1,0,,343,343,0,0,0,5.83773,0,3.258096,7.224025,1,0,0,64.05187,7.836553,0,1.710408,1 +6,1,25,1,3,127517,0,2530.464,22.85969,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,26.3,26.1,0,,343,343,0,0,0,5.83773,0,3.258096,7.224025,1,0,0,64.05187,7.836553,0,,0 +6,1,25,1,4,127517,0,2530.464,23.85969,0,12,1,88.52006,0,0,0,0,88.52006,0,0,0,2,0,1,26.3,26.1,0,,343,343,0,0,0,5.83773,0,3.258096,7.224025,1,0,0,64.05187,7.836553,0,4.483229,1 +6,1,25,1,5,127517,0,2530.464,24.85969,0,12,1,331.57,2.539145,12.69573,0,2180.301,2527.105,2,0,0,26,10,1,26.3,26.1,0,,343,343,0,0,0,5.83773,0,3.258096,7.224025,1,0,0,64.05187,7.836553,0,7.83483,1 +6,1,25,1,1,127518,0,2530.464,20.67351,1,12,1,15.28777,0,33.8729,0,456.205,505.3657,1,0,0,0,1,2,47.4,17.4,1,,343,343,0,0,.6931472,5.83773,0,3.258096,7.224025,1,0,0,64.956,7.836553,.6931472,6.225282,1 +4,1,100,0,1,127545,0,17136.48,6.485969,0,15,1,2.355713,0,0,0,0,2.355713,0,0,0,0,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,0,0,0,75.91927,9.749022,1.386294,.8568433,1 +4,1,100,0,2,127545,0,17136.48,7.485969,0,15,1,8.625337,0,0,0,0,8.625337,0,0,0,1,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,0,0,0,75.91927,9.749022,1.386294,2.154704,1 +4,1,100,0,3,127545,0,17136.48,8.485969,0,15,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,0,0,0,75.91927,9.749022,1.386294,,0 +4,1,100,0,1,127546,0,17136.48,35.30458,0,12,1,85.39458,60.39458,0,0,0,145.7892,0,0,0,7,0,4,83.8,13.73189,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,77.61796,9.749022,1.386294,4.982162,1 +4,1,100,0,2,127546,0,17136.48,36.30458,0,12,1,94.87871,87.51482,0,0,0,182.3935,0,0,0,6,1,4,83.8,13.73189,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,77.61796,9.749022,1.386294,5.206167,1 +4,1,100,0,3,127546,0,17136.48,37.30458,0,12,1,82.06388,54.50123,0,0,0,136.5651,0,0,0,8,0,4,83.8,13.73189,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,77.61796,9.749022,1.386294,4.916801,1 +4,1,100,0,1,127547,0,17136.48,34.63929,1,15,1,69.49352,11.27797,0,0,0,80.7715,0,0,0,1,0,4,85,13.73189,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,78.76966,9.749022,1.386294,4.391624,1 +4,1,100,0,2,127547,0,17136.48,35.63929,1,15,1,115.4986,36.28032,34.28571,0,0,186.0647,0,0,0,3,2,4,85,13.73189,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,78.76966,9.749022,1.386294,5.226094,1 +4,1,100,0,3,127547,0,17136.48,36.63929,1,15,1,29.97543,67.48895,0,0,0,97.46437,0,0,0,1,0,4,85,13.73189,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,78.76966,9.749022,1.386294,4.579487,1 +4,1,100,0,1,127548,0,17136.48,10.01506,1,15,1,21.20141,1.325088,0,0,0,22.5265,0,0,0,2,1,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,1,0,0,0,0,0,75.4053,9.749022,1.386294,3.114692,1 +4,1,100,0,2,127548,0,17136.48,11.01506,1,15,1,53.90836,21.40162,0,0,0,75.30997,0,0,0,6,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,1,0,0,0,0,0,75.4053,9.749022,1.386294,4.321612,1 +4,1,100,0,3,127548,0,17136.48,12.01506,1,15,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,1,0,0,0,0,0,75.4053,9.749022,1.386294,,0 +11,1,0,1,1,127549,0,7982.012,14.22861,1,12,1,27.95955,0,0,0,0,27.95955,0,0,0,2,0,4,85.3,4.3,0,,0,0,1,1,1.386294,0,0,0,0,0,0,0,71.7188,8.985071,1.386294,3.330759,1 +11,1,0,1,2,127549,0,7982.012,15.22861,1,12,1,32.11758,3.097441,0,0,0,35.21502,0,0,0,4,0,4,85.3,4.3,0,,0,0,1,1,1.386294,0,0,0,0,0,0,0,71.7188,8.985071,1.386294,3.561473,1 +11,1,0,1,3,127549,0,7982.012,16.22861,1,12,1,110.2577,33.3003,0,0,0,143.558,0,0,0,10,0,4,85.3,4.3,0,,0,0,1,1,1.386294,0,0,0,0,0,0,0,71.7188,8.985071,1.386294,4.966739,1 +11,1,0,1,1,127550,0,7982.012,10.66119,1,12,1,11.89768,0,0,232.0048,0,11.89768,0,0,9,1,0,4,74.36826,13.73189,0,,0,0,1,1,1.386294,0,0,0,0,0,0,0,84.93909,8.985071,1.386294,2.476343,1 +11,1,0,1,2,127550,0,7982.012,11.66119,1,12,1,214.3277,3.24442,0,0,0,217.5721,0,0,0,7,0,4,74.36826,13.73189,0,,0,0,1,1,1.386294,0,0,0,0,0,0,0,84.93909,8.985071,1.386294,5.38253,1 +11,1,0,1,3,127550,0,7982.012,12.66119,1,12,1,197.3736,0,6.214073,0,0,203.5877,0,0,0,7,0,4,74.36826,13.73189,0,,0,0,1,1,1.386294,0,0,0,0,0,0,0,84.93909,8.985071,1.386294,5.316097,1 +11,1,0,1,1,127551,0,7982.012,16.76386,1,12,1,154.075,12.73647,0,0,0,166.8114,0,0,0,6,1,4,83.2,13,0,,0,0,1,1,1.386294,0,0,0,0,0,0,0,71.7188,8.985071,1.386294,5.116864,1 +11,1,0,1,2,127551,0,7982.012,17.76386,1,12,1,28.85139,6.015242,0,0,0,34.86663,0,0,0,4,0,4,83.2,13,0,,0,0,1,1,1.386294,0,0,0,0,0,0,0,71.7188,8.985071,1.386294,3.55153,1 +11,1,0,1,3,127551,0,7982.012,18.76386,1,12,1,14.8662,27.9336,11.4222,0,0,54.222,0,0,0,2,0,4,83.2,13,0,,0,0,0,0,1.386294,0,0,0,0,0,0,0,71.7188,8.985071,1.386294,3.993087,1 +11,1,0,1,1,127552,0,7982.012,45.88091,1,12,1,78.52469,7.001785,32.95063,0,0,118.4771,0,0,0,4,0,4,53.7,26.1,0,,0,0,0,0,1.386294,0,0,0,0,0,0,0,76.9501,8.985071,1.386294,4.77472,1 +11,1,0,1,2,127552,0,7982.012,46.88091,1,12,1,95.26402,7.065868,28.85139,0,0,131.1813,0,0,0,2,0,4,53.7,26.1,0,,0,0,0,0,1.386294,0,0,0,0,0,0,0,76.9501,8.985071,1.386294,4.87658,1 +11,1,0,1,3,127552,0,7982.012,47.88091,1,12,1,220.5401,2.031715,51.78394,0,0,274.3558,0,0,0,5,2,4,53.7,26.1,0,,0,0,0,0,1.386294,0,0,0,0,0,0,0,76.9501,8.985071,1.386294,5.614426,1 +4,1,100,1,1,127566,0,7645.161,51.09925,0,7,1,84.53237,26.52278,0,0,0,111.0552,0,0,0,18,0,2,97.9,0,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,0,0,0,73.07475,8.941959,.6931472,4.710027,1 +4,1,100,1,2,127566,0,7645.161,52.09925,0,7,1,99.12376,20.46002,0,0,0,119.5838,0,0,0,21,0,2,97.9,0,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,0,0,0,73.07475,8.941959,.6931472,4.784017,1 +4,1,100,1,3,127566,0,7645.161,53.09925,0,7,1,52.1197,24.53865,0,0,0,76.65836,0,0,0,14,0,2,97.9,0,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,0,0,0,73.07475,8.941959,.6931472,4.339359,1 +4,1,100,1,4,127566,0,7645.161,54.09925,0,7,1,37.3444,20.74689,0,0,0,58.09129,0,0,0,10,0,2,97.9,0,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,0,0,0,73.07475,8.941959,.6931472,4.062016,1 +4,1,100,1,5,127566,0,7645.161,55.09925,0,7,1,48.66695,19.04359,0,0,0,67.71054,0,0,0,14,0,2,97.9,0,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,0,0,0,73.07475,8.941959,.6931472,4.215242,1 +4,1,100,1,1,127567,0,7645.161,46.09446,1,11,1,99.52039,83.85492,0,0,0,183.3753,0,0,0,11,0,2,64.2,17.4,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,1,0,0,61.68202,8.941959,.6931472,5.211535,1 +4,1,100,1,2,127567,0,7645.161,47.09446,1,11,1,54.76451,63.74589,0,0,0,118.5104,0,0,0,8,0,2,64.2,17.4,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,1,0,0,61.68202,8.941959,.6931472,4.775001,1 +4,1,100,1,3,127567,0,7645.161,48.09446,1,11,1,181.6708,100.788,0,0,780.0798,1062.539,1,0,0,16,0,2,64.2,17.4,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,1,0,0,61.68202,8.941959,.6931472,6.968416,1 +4,1,100,1,4,127567,0,7645.161,49.09446,1,11,1,18.90272,44.93315,0,0,0,63.83587,0,0,0,3,0,2,64.2,17.4,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,1,0,0,61.68202,8.941959,.6931472,4.156315,1 +4,1,100,1,5,127567,0,7645.161,50.09446,1,11,1,33.43208,38.23952,0,0,0,71.6716,0,0,0,4,0,2,64.2,17.4,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,1,0,0,61.68202,8.941959,.6931472,4.272095,1 +4,1,100,1,1,127568,0,6055.831,20.10678,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,91.6,13,0,,374,374,0,0,0,5.924256,1,0,0,0,0,0,76.94312,8.708942,0,,0 +4,1,100,1,2,127568,0,6055.831,21.10678,0,12,1,19.16758,2.201533,0,0,537.7218,559.0909,1,0,0,3,0,1,91.6,13,0,,374,374,0,0,0,5.924256,1,0,0,0,0,0,76.94312,8.708942,0,6.326312,1 +4,1,100,1,3,127568,0,6055.831,22.10678,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,91.6,13,0,,374,374,0,0,0,5.924256,1,0,0,0,0,0,76.94312,8.708942,0,,0 +4,1,100,1,4,127568,0,6055.831,23.10678,0,12,1,7.376671,0,0,0,0,7.376671,0,0,0,1,0,1,91.6,13,0,,374,374,0,0,0,5.924256,1,0,0,0,0,0,76.94312,8.708942,0,1.998322,1 +4,1,100,1,5,127568,0,6055.831,24.10678,0,12,1,0,0,0,0,666.5975,666.5975,1,0,0,0,0,2,91.6,13,0,,374,374,0,0,.6931472,5.924256,1,0,0,0,0,0,76.94312,8.708942,.6931472,6.502186,1 +11,1,0,1,1,127595,0,10902.61,2.45859,0,9,1,67.14629,29.10072,0,0,0,96.247,0,0,0,6,2,5,74.36826,13.73189,0,,0,291,1,0,1.609438,5.673323,0,0,0,1,0,0,72.88785,9.296849,1.609438,4.566918,1 +11,1,0,1,2,127595,0,10902.61,3.45859,0,9,1,32.31106,15.36145,0,0,0,47.67251,0,0,0,5,0,5,74.36826,13.73189,0,,0,291,1,0,1.609438,5.673323,0,0,0,1,0,0,72.88785,9.296849,1.609438,3.864355,1 +11,1,0,1,3,127595,0,10902.61,4.45859,0,9,1,93.46633,59.89526,0,0,0,153.3616,0,0,0,14,0,5,74.36826,13.73189,0,,0,291,1,0,1.609438,5.673323,0,0,0,1,0,0,72.88785,9.296849,1.609438,5.032799,1 +11,1,0,1,1,127596,0,10902.61,11.19507,0,9,1,24.58034,2.002398,23.80696,0,0,50.38969,0,0,0,2,1,5,74.36826,13.73189,0,,0,291,1,0,1.609438,5.673323,0,0,0,1,0,0,74.00797,9.296849,1.609438,3.919786,1 +11,1,0,1,2,127596,0,10902.61,12.19507,0,9,1,65.71741,5.750274,14.30449,0,0,85.77218,0,0,0,5,1,5,74.36826,13.73189,0,,0,291,1,0,1.609438,5.673323,0,0,0,1,0,0,74.00797,9.296849,1.609438,4.451694,1 +11,1,0,1,3,127596,0,10902.61,13.19507,0,9,1,262.2494,5.955112,24.49875,0,0,292.7032,0,0,0,5,1,5,74.36826,13.73189,0,,0,291,1,0,1.609438,5.673323,0,0,0,1,0,0,74.00797,9.296849,1.609438,5.679159,1 +11,1,0,1,1,127597,0,10902.61,32.24915,1,9,1,80.33573,17.48801,31.32494,0,0,129.1487,0,0,0,5,2,5,78.9,34.8,0,,0,291,0,0,1.609438,5.673323,0,0,0,1,0,0,65.76151,9.296849,1.609438,4.860964,1 +11,1,0,1,2,127597,0,10902.61,33.24915,1,9,1,349.0854,28.63089,0,0,0,377.7163,0,0,0,11,1,5,78.9,34.8,0,,0,291,0,0,1.609438,5.673323,0,0,0,1,0,0,65.76151,9.296849,1.609438,5.934144,1 +11,1,0,1,3,127597,0,10902.61,34.24915,1,9,1,228.7581,46.49377,36.48379,0,394.8678,706.6035,1,0,0,11,1,5,78.9,34.8,0,,0,291,0,0,1.609438,5.673323,0,0,0,1,0,0,65.76151,9.296849,1.609438,6.56047,1 +11,1,0,1,1,127598,0,10902.61,31.96441,0,12,1,74.34053,38.81894,31.32494,0,720.2338,864.7182,2,0,0,6,1,5,82.1,17.4,0,,0,291,0,0,1.609438,5.673323,0,0,0,0,0,1,53.44062,9.296849,1.609438,6.762403,1 +11,1,0,1,2,127598,0,10902.61,32.96441,0,12,1,215.2245,33.61446,38.33516,0,0,287.1742,0,0,0,11,7,5,82.1,17.4,0,,0,291,0,0,1.609438,5.673323,0,0,0,0,0,1,53.44062,9.296849,1.609438,5.660089,1 +11,1,0,1,3,127598,0,10902.61,33.96441,0,12,1,175.3865,88.24937,34.399,0,0,298.0349,0,0,0,11,1,5,82.1,17.4,0,,0,291,0,0,1.609438,5.673323,0,0,0,0,0,1,53.44062,9.296849,1.609438,5.697211,1 +11,1,0,1,1,127599,0,10902.61,10.11088,1,9,1,34.17266,0,0,0,0,34.17266,0,0,0,3,1,5,74.36826,13.73189,0,,0,291,1,1,1.609438,5.673323,0,0,0,1,0,0,75.8055,9.296849,1.609438,3.531426,1 +11,1,0,1,2,127599,0,10902.61,11.11088,1,9,1,49.28806,6.440307,30.33406,0,0,86.06243,0,0,0,6,1,5,74.36826,13.73189,0,,0,291,1,1,1.609438,5.673323,0,0,0,1,0,0,75.8055,9.296849,1.609438,4.455073,1 +11,1,0,1,3,127599,0,10902.61,12.11088,1,9,1,17.45636,4.82793,31.79551,0,0,54.0798,0,0,0,2,1,5,74.36826,13.73189,0,,0,291,1,1,1.609438,5.673323,0,0,0,1,0,0,75.8055,9.296849,1.609438,3.990461,1 +6,1,25,1,1,127600,0,7676.799,21.86995,1,15,1,23.98082,6.294964,31.95444,0,0,62.23022,0,0,0,2,0,4,84.2,0,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,79.52619,8.946088,1.386294,4.130841,1 +6,1,25,1,2,127600,0,7676.799,22.86995,1,15,1,38.8828,13.36254,0,0,0,52.24535,0,0,0,4,0,4,84.2,0,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,79.52619,8.946088,1.386294,3.955951,1 +6,1,25,1,3,127600,0,7676.799,23.86995,1,15,1,23.4414,2.319202,38.04988,0,0,63.81047,0,0,0,2,0,4,84.2,0,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,79.52619,8.946088,1.386294,4.155917,1 +6,1,25,1,1,127601,0,7676.799,17.16906,1,12,1,13.18945,11.1211,0,0,0,24.31055,0,0,0,2,0,4,78.9,0,0,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,0,0,0,74.88385,8.946088,1.386294,3.19091,1 +6,1,25,1,2,127601,0,7676.799,18.16906,1,12,1,33.954,0,31.47864,0,0,65.43264,0,0,0,3,0,4,78.9,0,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,74.88385,8.946088,1.386294,4.181021,1 +6,1,25,1,3,127601,0,7676.799,19.16906,1,12,1,50.87282,7.082294,0,0,0,57.95511,0,0,0,4,0,4,78.9,0,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,74.88385,8.946088,1.386294,4.059669,1 +6,1,25,1,1,127602,0,7676.799,53.17728,0,12,1,19.78417,49.43045,0,0,0,69.21463,0,0,0,2,0,4,85.3,17.4,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,63.87726,8.946088,1.386294,4.237212,1 +6,1,25,1,2,127602,0,7676.799,54.17728,0,12,1,57.41512,31.06791,33.19277,0,0,121.6758,0,0,0,5,0,4,85.3,17.4,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,63.87726,8.946088,1.386294,4.80136,1 +6,1,25,1,3,127602,0,7676.799,55.17728,0,12,1,75.5611,48.17955,0,0,0,123.7406,0,0,0,5,0,4,85.3,17.4,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,63.87726,8.946088,1.386294,4.818188,1 +6,1,25,1,1,127603,0,7676.799,53.577,1,12,1,68.95084,51.25899,230.8154,0,1179.568,1530.594,1,0,0,2,0,4,71.6,21.7,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,65.51687,8.946088,1.386294,7.333411,1 +6,1,25,1,2,127603,0,7676.799,54.577,1,12,1,62.43155,65.4436,42.91895,0,0,170.7941,0,0,0,5,0,4,71.6,21.7,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,65.51687,8.946088,1.386294,5.140459,1 +6,1,25,1,3,127603,0,7676.799,55.577,1,12,1,22.44389,51.94514,0,0,0,74.38903,0,0,0,2,0,4,71.6,21.7,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,65.51687,8.946088,1.386294,4.309309,1 +4,1,100,1,1,127611,0,11610.42,11.06639,0,13,1,113.6631,22.9682,0,0,0,136.6313,0,0,0,10,1,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,1,0,0,1,0,0,79.12157,9.359744,1.609438,4.917286,1 +4,1,100,1,2,127611,0,11610.42,12.06639,0,13,1,8.086253,0,0,0,0,8.086253,0,0,0,1,0,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,1,0,0,1,0,0,79.12157,9.359744,1.609438,2.090165,1 +4,1,100,1,3,127611,0,11610.42,13.06639,0,13,1,123.8329,13.2973,0,71.04177,1380.973,1518.103,1,0,13,13,8,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,1,0,0,1,0,0,79.12157,9.359744,1.609438,7.325217,1 +4,1,100,1,1,127612,0,11610.42,8.689939,0,13,1,50.05889,63.03298,0,0,887.8975,1000.989,1,0,0,5,0,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,1,0,0,1,0,0,74.88016,9.359744,1.609438,6.908744,1 +4,1,100,1,2,127612,0,11610.42,9.689939,0,13,1,105.4771,32.70081,0,182.2102,0,138.1779,0,0,21,7,1,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,1,0,0,1,0,0,74.88016,9.359744,1.609438,4.928542,1 +4,1,100,1,3,127612,0,11610.42,10.68994,0,13,1,55.03685,17.09091,0,194.5209,0,72.12776,0,0,21,4,1,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,1,0,0,1,0,0,74.88016,9.359744,1.609438,4.278439,1 +4,1,100,1,1,127613,0,11610.42,34.77618,0,12,1,106.0071,48.20966,0,0,204.9764,359.1932,1,0,0,8,1,5,53.7,17.4,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,1,0,0,64.79161,9.359744,1.609438,5.88386,1 +4,1,100,1,2,127613,0,11610.42,35.77618,0,12,1,30.18868,22.73854,0,75.47169,0,52.92722,0,0,4,3,0,5,53.7,17.4,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,1,0,0,64.79161,9.359744,1.609438,3.968918,1 +4,1,100,1,3,127613,0,11610.42,36.77618,0,12,1,74.69287,10.05405,0,171.9902,0,84.74693,0,0,7,5,1,5,53.7,17.4,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,1,0,0,64.79161,9.359744,1.609438,4.43967,1 +4,1,100,1,1,127614,0,11610.42,35.45517,1,13,1,148.4099,50.30035,0,0,0,198.7103,0,0,0,15,0,5,38.9,21.7,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,1,0,0,67.10754,9.359744,1.609438,5.291848,1 +4,1,100,1,2,127614,0,11610.42,36.45517,1,13,1,67.16982,43.47709,0,16.17251,0,110.6469,0,0,1,4,0,5,38.9,21.7,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,1,0,0,67.10754,9.359744,1.609438,4.706344,1 +4,1,100,1,3,127614,0,11610.42,37.45517,1,13,1,187.715,87.88698,0,243.0319,0,275.602,0,0,24,9,4,5,38.9,21.7,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,1,0,0,67.10754,9.359744,1.609438,5.618958,1 +4,1,100,1,1,127615,0,11610.42,12.72005,1,13,1,130.7421,41.56655,30.62426,0,0,202.9329,0,0,0,22,0,5,74.36826,13.73189,0,,1000,1000,1,1,1.609438,6.907755,1,0,0,1,0,0,78.60759,9.359744,1.609438,5.312875,1 +4,1,100,1,2,127615,0,11610.42,13.72005,1,13,1,140.1617,31.34232,0,0,0,171.504,0,0,0,23,0,5,74.36826,13.73189,0,,1000,1000,1,1,1.609438,6.907755,1,0,0,1,0,0,78.60759,9.359744,1.609438,5.144607,1 +4,1,100,1,3,127615,0,11610.42,14.72005,1,13,1,110.5651,15.47912,26.04423,74.72236,0,152.0885,0,0,13,13,7,5,74.36826,13.73189,0,,1000,1000,1,1,1.609438,6.907755,1,0,0,1,0,0,78.60759,9.359744,1.609438,5.024462,1 +2,1,100,0,1,127628,0,8910.67,15.91786,0,12,1,0,4.640095,14.30101,0,0,18.94111,0,0,0,0,0,6,76.3,13.73189,0,,624,624,1,0,1.791759,6.436151,1,0,0,0,0,0,80.20427,9.095117,1.791759,2.941334,1 +2,1,100,0,2,127628,0,8910.67,16.91786,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,76.3,13.73189,0,,624,624,1,0,1.791759,6.436151,1,0,0,0,0,0,80.20427,9.095117,1.791759,,0 +2,1,100,0,3,127628,0,8910.67,17.91786,0,12,1,12.3885,0,0,0,0,12.3885,0,0,0,1,0,6,76.3,13.73189,0,,624,624,1,0,1.791759,6.436151,1,0,0,0,0,0,80.20427,9.095117,1.791759,2.516769,1 +2,1,100,0,4,127628,0,8910.67,18.91786,0,12,1,3.212483,2.349702,0,0,0,5.562184,0,0,0,1,0,6,76.3,13.73189,0,,624,624,0,0,1.791759,6.436151,1,0,0,0,0,0,80.20427,9.095117,1.791759,1.715991,1 +2,1,100,0,5,127628,0,8910.67,19.91786,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,76.3,13.73189,0,,624,624,0,0,1.791759,6.436151,1,0,0,0,0,0,80.20427,9.095117,1.791759,,0 +2,1,100,0,1,127629,0,8910.67,17.71389,0,12,1,19.54194,0,0,0,0,19.54194,0,0,0,0,0,6,92.5,13.73189,0,,624,624,1,0,1.791759,6.436151,1,0,0,0,0,0,80.20427,9.095117,1.791759,2.972563,1 +2,1,100,0,2,127629,0,8910.67,18.71389,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,92.5,13.73189,0,,624,624,0,0,1.791759,6.436151,1,0,0,0,0,0,80.20427,9.095117,1.791759,,0 +2,1,100,0,3,127629,0,8910.67,19.71389,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,92.5,13.73189,0,,624,624,0,0,1.791759,6.436151,1,0,0,0,0,0,80.20427,9.095117,1.791759,,0 +2,1,100,0,4,127629,0,8910.67,20.71389,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,92.5,13.73189,0,,624,624,0,0,1.791759,6.436151,1,0,0,0,0,0,80.20427,9.095117,1.791759,,0 +2,1,100,0,5,127629,0,8910.67,21.71389,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,92.5,13.73189,0,,624,624,0,0,1.791759,6.436151,1,0,0,0,0,0,80.20427,9.095117,1.791759,,0 +2,1,100,0,1,127630,0,8910.67,47.63039,0,12,1,10.70791,0,43.27781,0,0,53.98572,0,0,0,0,1,6,90,13.73189,0,,624,624,0,0,1.791759,6.436151,1,0,0,1,0,0,66.07664,9.095117,1.791759,3.98872,1 +2,1,100,0,2,127630,0,8910.67,48.63039,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,90,13.73189,0,,624,624,0,0,1.791759,6.436151,1,0,0,1,0,0,66.07664,9.095117,1.791759,,0 +2,1,100,0,3,127630,0,8910.67,49.63039,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,90,13.73189,0,,624,624,0,0,1.791759,6.436151,1,0,0,1,0,0,66.07664,9.095117,1.791759,,0 +2,1,100,0,4,127630,0,8910.67,50.63039,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,90,13.73189,0,,624,624,0,0,1.791759,6.436151,1,0,0,1,0,0,66.07664,9.095117,1.791759,,0 +2,1,100,0,5,127630,0,8910.67,51.63039,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,90,13.73189,0,,624,624,0,0,1.791759,6.436151,1,0,0,1,0,0,66.07664,9.095117,1.791759,,0 +2,1,100,0,1,127631,0,8910.67,9.270363,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,74.36826,13.73189,0,,624,624,1,0,1.791759,6.436151,1,0,0,0,0,0,84.45741,9.095117,1.791759,,0 +2,1,100,0,2,127631,0,8910.67,10.27036,0,12,1,26.12956,4.082744,0,0,0,30.2123,0,0,0,1,1,6,74.36826,13.73189,0,,624,624,1,0,1.791759,6.436151,1,0,0,0,0,0,84.45741,9.095117,1.791759,3.408249,1 +2,1,100,0,3,127631,0,8910.67,11.27036,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,74.36826,13.73189,0,,624,624,1,0,1.791759,6.436151,1,0,0,0,0,0,84.45741,9.095117,1.791759,,0 +2,1,100,0,4,127631,0,8910.67,12.27036,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,74.36826,13.73189,0,,624,624,1,0,1.791759,6.436151,1,0,0,0,0,0,84.45741,9.095117,1.791759,,0 +2,1,100,0,5,127631,0,8910.67,13.27036,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,74.36826,13.73189,0,,624,624,1,0,1.791759,6.436151,1,0,0,0,0,0,84.45741,9.095117,1.791759,,0 +2,1,100,0,1,127632,0,8910.67,47.85216,1,12,1,19.63117,0,39.78584,0,0,59.41702,0,0,0,1,1,6,82.5,13.73189,0,,624,624,0,0,1.791759,6.436151,1,0,0,1,0,0,70.76368,9.095117,1.791759,4.08458,1 +2,1,100,0,2,127632,0,8910.67,48.85216,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,82.5,13.73189,0,,624,624,0,0,1.791759,6.436151,1,0,0,1,0,0,70.76368,9.095117,1.791759,,0 +2,1,100,0,3,127632,0,8910.67,49.85216,1,12,1,29.23687,11.11497,33.45391,0,0,73.80575,0,0,0,2,1,6,82.5,13.73189,0,,624,624,0,0,1.791759,6.436151,1,0,0,1,0,0,70.76368,9.095117,1.791759,4.301436,1 +2,1,100,0,4,127632,0,8910.67,50.85216,1,12,1,0,11.7531,0,0,0,11.7531,0,0,0,0,0,6,82.5,13.73189,0,,624,624,0,0,1.791759,6.436151,1,0,0,1,0,0,70.76368,9.095117,1.791759,2.464117,1 +2,1,100,0,5,127632,0,8910.67,51.85216,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,82.5,13.73189,0,,624,624,0,0,1.791759,6.436151,1,0,0,1,0,0,70.76368,9.095117,1.791759,,0 +2,1,100,0,1,127633,0,8910.67,14.77071,1,12,1,41.19572,2.40928,0,0,0,43.605,0,0,0,1,1,6,85,13.73189,0,,624,624,1,1,1.791759,6.436151,1,0,0,0,0,0,74.86757,9.095117,1.791759,3.775172,1 +2,1,100,0,2,127633,0,8910.67,15.77071,1,12,1,13.06478,4.082744,26.12956,0,0,43.27708,0,0,0,0,1,6,85,13.73189,0,,624,624,1,1,1.791759,6.436151,1,0,0,0,0,0,74.86757,9.095117,1.791759,3.767623,1 +2,1,100,0,3,127633,0,8910.67,16.7707,1,12,1,3.468781,0,0,0,0,3.468781,0,0,0,1,0,6,85,13.73189,0,,624,624,1,1,1.791759,6.436151,1,0,0,0,0,0,74.86757,9.095117,1.791759,1.243803,1 +2,1,100,0,4,127633,0,8910.67,17.7707,1,12,1,22.48738,0,0,0,0,22.48738,0,0,0,3,0,6,85,13.73189,0,,624,624,1,1,1.791759,6.436151,1,0,0,0,0,0,74.86757,9.095117,1.791759,3.112954,1 +2,1,100,0,5,127633,0,8910.67,18.7707,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,85,13.73189,0,,624,624,0,0,1.791759,6.436151,1,0,0,0,0,0,74.86757,9.095117,1.791759,,0 +4,1,100,1,1,127637,0,2199.752,48.90623,1,13,1,21.10977,0,43.80579,0,0,64.91556,0,0,0,2,0,1,61.1,21.7,0,,403,403,0,0,0,5.998937,1,0,0,1,0,0,69.50401,7.696554,0,4.173087,1 +4,1,100,1,2,127637,0,2199.752,49.90623,1,13,1,0,0,0,0,0,0,0,0,0,0,0,1,61.1,21.7,0,,403,403,0,0,0,5.998937,1,0,0,1,0,0,69.50401,7.696554,0,,0 +4,1,100,1,3,127637,0,2199.752,50.90623,1,13,1,0,0,0,0,0,0,0,0,0,0,0,1,61.1,21.7,0,,403,403,0,0,0,5.998937,1,0,0,1,0,0,69.50401,7.696554,0,,0 +4,1,100,1,4,127637,0,2199.752,51.90623,1,13,1,23.18034,0,25.656,0,0,48.83635,0,0,0,3,0,1,61.1,21.7,0,,403,403,0,0,0,5.998937,1,0,0,1,0,0,69.50401,7.696554,0,3.888475,1 +4,1,100,1,5,127637,0,2199.752,52.90623,1,13,1,380.5827,0,55.08294,0,1714.241,2149.906,1,0,0,2,0,1,61.1,21.7,0,,403,403,0,0,0,5.998937,1,0,0,1,0,0,69.50401,7.696554,0,7.67318,1 +11,1,0,1,1,127641,0,9150.124,.6872005,0,12,1,101.3189,18.94484,0,0,0,120.2638,0,0,0,6,1,4,74.36826,13.73189,0,,0,0,1,0,1.386294,0,0,0,0,1,0,0,74.24259,9.121632,1.386294,4.789688,1 +11,1,0,1,2,127641,0,9150.124,1.687201,0,12,1,79.68237,23.05586,0,0,0,102.7382,0,0,0,6,1,4,74.36826,13.73189,0,,0,0,1,0,1.386294,0,0,0,0,1,0,0,74.24259,9.121632,1.386294,4.632185,1 +11,1,0,1,3,127641,0,9150.124,2.687201,0,12,1,57.4813,22.81796,0,0,236.813,317.1122,1,0,0,6,0,4,74.36826,13.73189,0,,0,0,1,0,1.386294,0,0,0,0,1,0,0,74.24259,9.121632,1.386294,5.759256,1 +11,1,0,1,4,127641,0,9150.124,3.687201,0,12,1,89.5574,10.23513,0,0,0,99.79253,0,0,0,8,0,4,74.36826,13.73189,0,,0,0,1,0,1.386294,0,0,0,0,1,0,0,74.24259,9.121632,1.386294,4.603093,1 +11,1,0,1,5,127641,0,9150.124,4.687201,0,12,1,45.70461,15.88235,0,0,0,61.58697,0,0,0,6,0,4,74.36826,13.73189,0,,0,0,1,0,1.386294,0,0,0,0,1,0,0,74.24259,9.121632,1.386294,4.12045,1 +11,1,0,1,1,127642,0,9150.124,25.93566,1,12,1,98.32134,53.5012,0,0,0,151.8225,0,0,0,7,0,4,42.1,21.7,1,,0,0,0,0,1.386294,0,0,0,0,1,0,0,67.19587,9.121632,1.386294,5.022712,1 +11,1,0,1,2,127642,0,9150.124,26.93566,1,12,1,63.52684,23.7678,0,0,0,87.29463,0,0,0,7,0,4,42.1,21.7,1,,0,0,0,0,1.386294,0,0,0,0,1,0,0,67.19587,9.121632,1.386294,4.469289,1 +11,1,0,1,3,127642,0,9150.124,27.93566,1,12,1,44.88778,30.44888,0,0,0,75.33665,0,0,0,6,0,4,42.1,21.7,1,,0,0,0,0,1.386294,0,0,0,0,1,0,0,67.19587,9.121632,1.386294,4.321967,1 +11,1,0,1,4,127642,0,9150.124,28.93566,1,12,1,117.1047,57.42278,0,0,0,174.5274,0,0,0,9,0,4,42.1,21.7,1,,0,0,0,0,1.386294,0,0,0,0,1,0,0,67.19587,9.121632,1.386294,5.162082,1 +11,1,0,1,5,127642,0,9150.124,29.93566,1,12,1,118.2818,46.21244,0,0,724.4604,888.9547,1,0,0,6,0,4,42.1,21.7,1,,0,0,0,0,1.386294,0,0,0,0,1,0,0,67.19587,9.121632,1.386294,6.790046,1 +11,1,0,1,1,127643,0,9150.124,4.982888,0,12,1,34.77218,1.199041,0,0,0,35.97122,0,0,0,3,0,4,74.36826,13.73189,0,,0,0,1,0,1.386294,0,0,0,0,1,0,0,74.24259,9.121632,1.386294,3.582719,1 +11,1,0,1,2,127643,0,9150.124,5.982888,0,12,1,83.7897,1.09529,0,0,0,84.88499,0,0,0,5,1,4,74.36826,13.73189,0,,0,0,1,0,1.386294,0,0,0,0,1,0,0,74.24259,9.121632,1.386294,4.441298,1 +11,1,0,1,3,127643,0,9150.124,6.982888,0,12,1,67.98504,0,0,0,0,67.98504,0,0,0,4,0,4,74.36826,13.73189,0,,0,0,1,0,1.386294,0,0,0,0,1,0,0,74.24259,9.121632,1.386294,4.219288,1 +11,1,0,1,4,127643,0,9150.124,7.982888,0,12,1,26.74043,7.076994,0,0,0,33.81743,0,0,0,3,0,4,74.36826,13.73189,0,,0,0,1,0,1.386294,0,0,0,0,1,0,0,74.24259,9.121632,1.386294,3.520976,1 +11,1,0,1,5,127643,0,9150.124,8.982888,0,12,1,10.57977,0,0,0,0,10.57977,0,0,0,1,0,4,74.36826,13.73189,0,,0,0,1,0,1.386294,0,0,0,0,1,0,0,74.24259,9.121632,1.386294,2.358944,1 +11,1,0,1,1,127644,0,9150.124,26.34908,0,14,1,57.40408,6.792566,0,0,299.7602,363.9568,1,1,0,1,0,4,70.5,8.7,0,,0,0,0,0,1.386294,0,0,0,0,1,0,0,71.81533,9.121632,1.386294,5.897035,1 +11,1,0,1,2,127644,0,9150.124,27.34908,0,14,1,107.667,2.88609,20.60241,0,0,131.1555,0,0,0,6,2,4,70.5,8.7,0,,0,0,0,0,1.386294,0,0,0,0,1,0,0,71.81533,9.121632,1.386294,4.876384,1 +11,1,0,1,3,127644,0,9150.124,28.34908,0,14,1,0,4.927681,0,0,0,4.927681,0,0,0,0,0,4,70.5,8.7,0,,0,0,0,0,1.386294,0,0,0,0,1,0,0,71.81533,9.121632,1.386294,1.594869,1 +11,1,0,1,4,127644,0,9150.124,29.34908,0,14,1,0,0,0,0,822.2914,822.2914,1,0,0,0,0,4,70.5,8.7,0,,0,0,0,0,1.386294,0,0,0,0,1,0,0,71.81533,9.121632,1.386294,6.712095,1 +11,1,0,1,5,127644,0,9150.124,30.34908,0,14,1,11.00296,0,0,0,0,11.00296,0,0,0,1,0,4,70.5,8.7,0,,0,0,0,0,1.386294,0,0,0,0,1,0,0,71.81533,9.121632,1.386294,2.398165,1 +6,1,25,0,1,127645,0,13521.71,39.54826,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,76.3,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,78.64024,9.512126,1.386294,,0 +6,1,25,0,2,127645,0,13521.71,40.54826,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,76.3,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,78.64024,9.512126,1.386294,,0 +6,1,25,0,3,127645,0,13521.71,41.54826,0,12,1,16.70762,0,0,0,0,16.70762,0,0,0,2,0,4,76.3,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,78.64024,9.512126,1.386294,2.815865,1 +6,1,25,0,4,127645,0,13521.71,42.54826,0,12,1,30.08204,0,0,0,0,30.08204,0,0,0,1,0,3,76.3,13.73189,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,78.64024,9.512126,1.098612,3.403929,1 +6,1,25,0,5,127645,0,13521.71,43.54826,0,12,1,118.1117,3.980825,0,0,0,122.0925,0,0,0,3,0,3,76.3,13.73189,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,78.64024,9.512126,1.098612,4.804779,1 +6,1,25,0,1,127646,0,13521.71,36.74469,1,12,1,35.92462,15.04711,0,0,0,50.97173,0,0,0,4,0,4,78.8,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,79.53143,9.512126,1.386294,3.931271,1 +6,1,25,0,2,127646,0,13521.71,37.74469,1,12,1,98.65229,17.70889,8.528302,0,1512.577,1637.466,1,0,0,6,0,4,78.8,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,79.53143,9.512126,1.386294,7.400906,1 +6,1,25,0,3,127646,0,13521.71,38.74469,1,12,1,41.03194,0,0,0,0,41.03194,0,0,0,1,1,4,78.8,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,79.53143,9.512126,1.386294,3.714351,1 +6,1,25,0,4,127646,0,13521.71,39.74469,1,12,1,164.0839,0,0,0,0,164.0839,0,0,0,5,0,3,78.8,13.73189,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,79.53143,9.512126,1.098612,5.100378,1 +6,1,25,0,5,127646,0,13521.71,40.74469,1,12,1,51.27136,1.538141,0,0,1592.955,1645.765,2,0,0,8,0,3,78.8,13.73189,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,79.53143,9.512126,1.098612,7.405961,1 +6,1,25,0,1,127647,0,13521.71,3.367557,0,12,1,34.15783,13.10365,0,0,0,47.26148,0,0,0,2,3,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,82.0187,9.512126,1.386294,3.855696,1 +6,1,25,0,2,127647,0,13521.71,4.367557,0,12,1,57.14286,20.96496,0,0,0,78.10782,0,0,0,9,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,82.0187,9.512126,1.386294,4.35809,1 +6,1,25,0,3,127647,0,13521.71,5.367557,0,12,1,75.18427,14.38329,0,0,0,89.56757,0,0,0,10,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,82.0187,9.512126,1.386294,4.494993,1 +6,1,25,0,4,127647,0,13521.71,6.367557,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,74.36826,13.73189,0,,1000,1000,1,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,82.0187,9.512126,1.098612,,0 +6,1,25,0,5,127647,0,13521.71,7.367557,0,12,1,20.42518,0,0,0,0,20.42518,0,0,0,2,0,3,74.36826,13.73189,0,,1000,1000,1,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,82.0187,9.512126,1.098612,3.016768,1 +6,1,25,0,1,127648,0,13521.71,14.33812,0,12,1,42.99176,9.422851,0,0,0,52.4146,0,0,0,5,0,4,76.3,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,80.4863,9.512126,1.386294,3.959185,1 +6,1,25,0,2,127648,0,13521.71,15.33812,0,12,1,99.19138,0,4.285714,0,0,103.4771,0,0,0,8,0,4,76.3,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,80.4863,9.512126,1.386294,4.63935,1 +6,1,25,0,3,127648,0,13521.71,16.33813,0,12,1,70.34398,2.088452,11.63145,0,0,84.06388,0,0,0,8,0,4,76.3,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,80.4863,9.512126,1.386294,4.431577,1 +1,1,0,1,1,127650,0,1594.661,9.355236,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,74.36826,13.73189,0,,0,0,1,1,.6931472,0,1,0,0,1,0,0,73.40184,7.375044,.6931472,,0 +1,1,0,1,2,127650,0,1594.661,10.35524,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,74.36826,13.73189,0,,0,0,1,1,.6931472,0,1,0,0,1,0,0,73.40184,7.375044,.6931472,,0 +1,1,0,1,3,127650,0,1594.661,11.35524,1,12,1,23.4414,0,0,0,0,23.4414,0,0,0,1,0,2,74.36826,13.73189,0,,0,0,1,1,.6931472,0,1,0,0,1,0,0,73.40184,7.375044,.6931472,3.154504,1 +1,1,0,1,4,127650,0,1594.661,12.35524,1,12,1,19.8248,0,0,0,0,19.8248,0,0,0,1,0,2,74.36826,13.73189,0,,0,0,1,1,.6931472,0,1,0,0,1,0,0,73.40184,7.375044,.6931472,2.986934,1 +1,1,0,1,5,127650,0,1594.661,13.35524,1,12,1,33.43208,0,0,0,0,33.43208,0,0,0,0,0,2,74.36826,13.73189,0,,0,0,1,1,.6931472,0,1,0,0,1,0,0,73.40184,7.375044,.6931472,3.509516,1 +1,1,0,1,1,127651,0,1594.661,35.21971,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,64.2,17.4,0,,0,0,0,0,.6931472,0,1,0,0,1,0,0,64.5417,7.375044,.6931472,,0 +1,1,0,1,2,127651,0,1594.661,36.21971,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,64.2,17.4,0,,0,0,0,0,.6931472,0,1,0,0,1,0,0,64.5417,7.375044,.6931472,,0 +1,1,0,1,3,127651,0,1594.661,37.21971,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,64.2,17.4,0,,0,0,0,0,.6931472,0,1,0,0,1,0,0,64.5417,7.375044,.6931472,,0 +1,1,0,1,4,127651,0,1594.661,38.21971,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,64.2,17.4,0,,0,0,0,0,.6931472,0,1,0,0,1,0,0,64.5417,7.375044,.6931472,,0 +1,1,0,1,5,127651,0,1594.661,39.21971,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,64.2,17.4,0,,0,0,0,0,.6931472,0,1,0,0,1,0,0,64.5417,7.375044,.6931472,,0 +5,1,25,0,1,127660,0,8630.273,28.58864,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,84.2,4.3,0,,560,560,0,0,1.386294,6.327937,0,3.258096,7.714231,1,0,0,64.77914,9.063148,1.386294,,0 +5,1,25,0,2,127660,0,8630.273,29.58864,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,84.2,4.3,0,,560,560,0,0,1.386294,6.327937,0,3.258096,7.714231,1,0,0,64.77914,9.063148,1.386294,,0 +5,1,25,0,3,127660,0,8630.273,30.58864,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,84.2,4.3,0,,560,560,0,0,1.386294,6.327937,0,3.258096,7.714231,1,0,0,64.77914,9.063148,1.386294,,0 +5,1,25,0,4,127660,0,8630.273,31.58864,0,16,1,160.2552,7.976299,0,0,0,168.2315,0,0,0,2,0,4,84.2,4.3,0,,560,560,0,0,1.386294,6.327937,0,3.258096,7.714231,1,0,0,64.77914,9.063148,1.386294,5.125341,1 +5,1,25,0,5,127660,0,8630.273,32.58864,0,16,1,263.7557,8.962068,0,0,0,272.7178,0,0,0,2,0,4,84.2,4.3,0,,560,560,0,0,1.386294,6.327937,0,3.258096,7.714231,1,0,0,64.77914,9.063148,1.386294,5.608438,1 +5,1,25,0,1,127661,0,8630.273,1.582478,0,12,1,32.39105,13.30978,0,0,0,45.70082,0,0,0,4,0,4,74.36826,13.73189,0,,560,560,1,0,1.386294,6.327937,0,3.258096,7.714231,1,0,0,74.69028,9.063148,1.386294,3.822116,1 +5,1,25,0,2,127661,0,8630.273,2.582478,0,12,1,23.98922,15.2345,0,0,0,39.22372,0,0,0,3,0,4,74.36826,13.73189,0,,560,560,1,0,1.386294,6.327937,0,3.258096,7.714231,1,0,0,74.69028,9.063148,1.386294,3.669282,1 +5,1,25,0,3,127661,0,8630.273,3.582478,0,12,1,17.19902,4.968059,0,0,0,22.16708,0,0,0,2,0,4,74.36826,13.73189,0,,560,560,1,0,1.386294,6.327937,0,3.258096,7.714231,1,0,0,74.69028,9.063148,1.386294,3.098608,1 +5,1,25,0,4,127661,0,8630.273,4.582478,0,12,1,29.17047,0,0,0,0,29.17047,0,0,0,1,1,4,74.36826,13.73189,0,,560,560,1,0,1.386294,6.327937,0,3.258096,7.714231,1,0,0,74.69028,9.063148,1.386294,3.373157,1 +5,1,25,0,5,127661,0,8630.273,5.582478,0,12,1,40.85035,2.705294,0,0,0,43.55565,0,0,0,6,0,4,74.36826,13.73189,0,,560,560,1,0,1.386294,6.327937,0,3.258096,7.714231,1,0,0,74.69028,9.063148,1.386294,3.77404,1 +5,1,25,0,1,127662,0,8630.273,27.45243,1,12,1,21.20141,15.95995,30.62426,0,0,67.78563,0,0,0,1,1,4,86.3,8.7,0,,560,560,0,0,1.386294,6.327937,0,3.258096,7.714231,1,0,0,72.61974,9.063148,1.386294,4.21635,1 +5,1,25,0,2,127662,0,8630.273,28.45243,1,12,1,31.53639,20.26415,14.55526,0,0,66.3558,0,0,0,2,1,4,86.3,8.7,0,,560,560,0,0,1.386294,6.327937,0,3.258096,7.714231,1,0,0,72.61974,9.063148,1.386294,4.195031,1 +5,1,25,0,3,127662,0,8630.273,29.45243,1,12,1,5.896806,29.30221,0,0,0,35.19902,0,0,0,1,0,4,86.3,8.7,0,,560,560,0,0,1.386294,6.327937,0,3.258096,7.714231,1,0,0,72.61974,9.063148,1.386294,3.561018,1 +5,1,25,0,4,127662,0,8630.273,30.45243,1,12,1,13.67366,0,0,0,0,13.67366,0,0,0,1,0,4,86.3,8.7,0,,560,560,0,0,1.386294,6.327937,0,3.258096,7.714231,1,0,0,72.61974,9.063148,1.386294,2.615471,1 +5,1,25,0,5,127662,0,8630.273,31.45243,1,12,1,23.7599,0,22.92622,0,0,46.68612,0,0,0,1,1,4,86.3,8.7,0,,560,560,0,0,1.386294,6.327937,0,3.258096,7.714231,1,0,0,72.61974,9.063148,1.386294,3.843447,1 +5,1,25,0,1,127663,0,8630.273,4.635181,1,12,1,20.02356,12.26737,0,0,0,32.29093,0,0,0,2,0,4,74.36826,13.73189,0,,560,560,1,1,1.386294,6.327937,0,3.258096,7.714231,1,0,0,74.1763,9.063148,1.386294,3.474787,1 +5,1,25,0,2,127663,0,8630.273,5.635181,1,12,1,63.8814,6.210243,3.180593,0,0,73.27224,0,0,0,6,0,4,74.36826,13.73189,0,,560,560,1,1,1.386294,6.327937,0,3.258096,7.714231,1,0,0,74.1763,9.063148,1.386294,4.294182,1 +5,1,25,0,3,127663,0,8630.273,6.635181,1,12,1,27.51843,8.737101,0,0,0,36.25553,0,0,0,4,0,4,74.36826,13.73189,0,,560,560,1,1,1.386294,6.327937,0,3.258096,7.714231,1,0,0,74.1763,9.063148,1.386294,3.590592,1 +5,1,25,0,4,127663,0,8630.273,7.635181,1,12,1,21.87785,0,0,0,0,21.87785,0,0,0,1,1,4,74.36826,13.73189,0,,560,560,1,1,1.386294,6.327937,0,3.258096,7.714231,1,0,0,74.1763,9.063148,1.386294,3.085475,1 +5,1,25,0,5,127663,0,8630.273,8.635181,1,12,1,14.58941,2.709462,0,0,0,17.29887,0,0,0,2,0,4,74.36826,13.73189,0,,560,560,1,1,1.386294,6.327937,0,3.258096,7.714231,1,0,0,74.1763,9.063148,1.386294,2.850641,1 +1,1,0,1,1,127686,0,15181.76,48.29295,1,12,1,93.24807,93.99762,0,0,0,187.2457,0,0,0,6,0,2,71.6,30.4,0,,300,398,0,0,.6931472,5.986452,1,0,0,1,0,0,66.75724,9.627916,.6931472,5.232421,1 +1,1,0,1,2,127686,0,15181.76,49.29295,1,12,1,149.7006,82.13391,0,0,0,231.8345,0,0,0,13,0,2,71.6,30.4,0,,300,398,0,0,.6931472,5.986452,1,0,0,1,0,0,66.75724,9.627916,.6931472,5.446024,1 +1,1,0,1,3,127686,0,15181.76,50.29295,1,12,1,173.9346,110.1586,47.64123,0,0,331.7344,0,0,0,19,0,2,71.6,30.4,0,,300,398,0,0,.6931472,5.986452,1,0,0,1,0,0,66.75724,9.627916,.6931472,5.804335,1 +1,1,0,1,1,127688,0,15181.76,22.06708,1,15,1,82.09399,62.52231,0,0,0,144.6163,0,0,0,14,0,2,62.1,26.1,1,,300,398,0,0,.6931472,5.986452,1,0,0,1,0,0,74.26819,9.627916,.6931472,4.974084,1 +1,1,0,1,2,127688,0,15181.76,23.06708,1,15,1,230.8111,111.644,0,0,0,342.4551,0,0,0,30,0,2,62.1,26.1,1,,300,398,0,0,.6931472,5.986452,1,0,0,1,0,0,74.26819,9.627916,.6931472,5.836141,1 +1,1,0,1,3,127688,0,15181.76,24.06708,1,15,1,311.6947,94.99009,4.142715,0,0,410.8275,0,0,0,38,0,2,62.1,26.1,1,,300,398,0,0,.6931472,5.986452,1,0,0,1,0,0,74.26819,9.627916,.6931472,6.018174,1 +10,1,50,0,1,127696,0,7948.511,24.49008,1,13,1,68.31567,13.37456,26.79623,0,0,108.4865,0,0,0,4,1,3,80,13.73189,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,79.86204,8.980865,1.098612,4.686625,1 +10,1,50,0,2,127696,0,7948.511,25.49008,1,13,1,33.42318,21.54178,0,0,0,54.96496,0,0,0,4,0,3,80,13.73189,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,79.86204,8.980865,1.098612,4.006696,1 +10,1,50,0,3,127696,0,7948.511,26.49008,1,13,1,52.57985,6.216216,24.90909,0,0,83.70516,0,0,0,4,1,3,80,13.73189,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,79.86204,8.980865,1.098612,4.4273,1 +10,1,50,0,1,127697,0,7948.511,25.50856,0,13,1,91.28387,54.00471,0,0,2267.821,2413.11,3,0,0,10,1,3,80,13.73189,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,1,0,0,61.89945,8.980865,1.098612,7.788671,1 +10,1,50,0,2,127697,0,7948.511,26.50856,0,13,1,50.53909,28.07008,0,0,0,78.60916,0,0,0,4,0,3,80,13.73189,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,1,0,0,61.89945,8.980865,1.098612,4.364488,1 +10,1,50,0,3,127697,0,7948.511,27.50856,0,13,1,103.1941,49.69533,14.31941,0,0,167.2088,0,0,0,9,1,3,80,13.73189,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,1,0,0,61.89945,8.980865,1.098612,5.119244,1 +6,1,25,0,1,127717,0,4333.747,26.02875,1,13,1,222.0259,22.81508,13.93993,0,0,258.7809,0,0,0,11,0,1,83.8,13.73189,0,,750,750,0,0,0,6.620073,0,3.258096,8.006368,1,0,0,72.50717,8.374418,0,5.555982,1 +6,1,25,0,2,127717,0,4333.747,27.02875,1,13,1,120.9704,45.28841,0,0,0,166.2588,0,0,0,18,0,1,83.8,13.73189,0,,750,750,0,0,0,6.620073,0,3.258096,8.006368,1,0,0,72.50717,8.374418,0,5.113545,1 +6,1,25,0,3,127717,0,4333.747,28.02875,1,13,1,24.57002,9.764128,0,0,0,34.33415,0,0,0,2,0,1,83.8,13.73189,0,,750,750,0,0,0,6.620073,0,3.258096,8.006368,1,0,0,72.50717,8.374418,0,3.53614,1 +6,1,25,0,4,127717,0,4333.747,29.02875,1,13,1,14.58523,5.989061,0,0,0,20.57429,0,0,0,2,0,1,83.8,13.73189,0,,750,750,0,0,0,6.620073,0,3.258096,8.006368,1,0,0,72.50717,8.374418,0,3.024042,1 +6,1,25,0,5,127717,0,4333.747,30.02875,1,13,1,0,0,0,0,0,0,0,0,0,0,0,1,83.8,13.73189,0,,750,750,0,0,0,6.620073,0,3.258096,8.006368,1,0,0,72.50717,8.374418,0,,0 +2,1,100,0,1,127737,0,9179.9,17.77413,0,12,1,23.20048,14.53302,0,0,0,37.73349,0,0,0,4,0,3,94.7,8.7,0,,632,632,1,0,1.098612,6.448889,1,0,0,0,0,0,80.22991,9.124881,1.098612,3.630548,1 +2,1,100,0,2,127737,0,9179.9,18.77413,0,12,1,6.53239,5.900926,0,0,0,12.43332,0,0,0,1,0,3,94.7,8.7,0,,632,632,0,0,1.098612,6.448889,1,0,0,0,0,0,80.22991,9.124881,1.098612,2.52038,1 +2,1,100,0,3,127737,0,9179.9,19.77413,0,12,1,14.37066,.9365709,0,0,0,15.30723,0,0,0,2,0,3,94.7,8.7,0,,632,632,0,0,1.098612,6.448889,1,0,0,0,0,0,80.22991,9.124881,1.098612,2.728326,1 +2,1,100,1,1,127738,0,9179.9,53.68378,0,13,1,24.39024,6.234384,0,0,0,30.62463,0,0,0,4,0,3,94.7,8.7,0,,632,632,0,0,1.098612,6.448889,1,0,0,0,0,0,76.86221,9.124881,1.098612,3.421804,1 +2,1,100,1,2,127738,0,9179.9,54.68378,0,13,1,0,0,0,0,0,0,0,0,0,0,0,3,94.7,8.7,0,,632,632,0,0,1.098612,6.448889,1,0,0,0,0,0,76.86221,9.124881,1.098612,,0 +2,1,100,1,3,127738,0,9179.9,55.68378,0,13,1,17.83945,0,0,0,0,17.83945,0,0,0,1,0,3,94.7,8.7,0,,632,632,0,0,1.098612,6.448889,1,0,0,0,0,0,76.86221,9.124881,1.098612,2.881412,1 +2,1,100,1,1,127739,0,9179.9,51.95893,1,12,1,19.03629,19.03034,35.43724,0,0,73.50387,0,0,0,1,1,3,95.8,17.4,0,,632,632,0,0,1.098612,6.448889,1,0,0,0,0,0,77.2877,9.124881,1.098612,4.297338,1 +2,1,100,1,2,127739,0,9179.9,52.95893,1,12,1,6.53239,0,0,0,0,6.53239,0,0,0,1,0,3,95.8,17.4,0,,632,632,0,0,1.098612,6.448889,1,0,0,0,0,0,77.2877,9.124881,1.098612,1.876773,1 +2,1,100,1,3,127739,0,9179.9,53.95893,1,12,1,656.5907,3.899901,52.03172,0,0,712.5223,0,0,0,0,5,3,95.8,17.4,0,,632,632,0,0,1.098612,6.448889,1,0,0,0,0,0,77.2877,9.124881,1.098612,6.568811,1 +1,1,0,0,1,127751,0,3132.623,22.38193,1,12,1,8.244994,0,36.9258,0,0,45.17079,0,0,0,0,1,1,68.8,13.73189,0,,150,78,0,0,0,4.356709,1,0,0,0,0,0,78.20497,8.049945,0,3.810451,1 +1,1,0,0,2,127751,0,3132.623,23.38193,1,12,1,30.18868,4.06469,19.15364,0,0,53.40701,0,0,0,4,1,1,68.8,13.73189,0,,150,78,0,0,0,4.356709,1,0,0,0,0,0,78.20497,8.049945,0,3.977942,1 +1,1,0,0,3,127751,0,3132.623,24.38193,1,12,1,57.98526,6.117936,0,0,0,64.1032,0,0,0,9,0,1,68.8,13.73189,0,,150,78,0,0,0,4.356709,1,0,0,0,0,0,78.20497,8.049945,0,4.160494,1 +1,1,0,0,4,127751,0,3132.623,25.38193,1,12,1,20.0547,0,20.96627,0,0,41.02097,0,0,0,2,1,1,68.8,13.73189,0,,150,78,0,0,0,4.356709,1,0,0,0,0,0,78.20497,8.049945,0,3.714083,1 +1,1,0,0,5,127751,0,3132.623,26.38193,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,68.8,13.73189,0,,150,78,0,0,0,4.356709,1,0,0,0,0,0,78.20497,8.049945,0,,0 +7,1,25,0,1,127759,0,10660.67,45.97673,1,12,1,43.87515,13.1331,22.46172,0,0,79.46996,0,0,0,3,1,2,84.2,21.7,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,0,73.24699,9.27441,.6931472,4.375379,1 +7,1,25,0,2,127759,0,10660.67,46.97673,1,12,1,69.54178,6.96496,27.97844,0,0,104.4852,0,0,0,3,1,2,84.2,21.7,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,0,73.24699,9.27441,.6931472,4.649045,1 +7,1,25,0,3,127759,0,10660.67,47.97673,1,12,1,623.0958,33.79853,0,0,876.4619,1533.356,1,0,0,7,0,2,84.2,21.7,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,0,73.24699,9.27441,.6931472,7.335214,1 +7,1,25,0,4,127759,0,10660.67,48.97673,1,12,1,190.9754,7.921604,40.33728,0,0,239.2343,0,0,0,2,1,2,84.2,21.7,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,0,73.24699,9.27441,.6931472,5.477443,1 +7,1,25,0,5,127759,0,10660.67,49.97673,1,12,1,10.42101,3.192997,36.15673,0,0,49.77074,0,0,0,0,1,2,84.2,21.7,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,0,73.24699,9.27441,.6931472,3.907427,1 +7,1,25,0,1,127760,0,10660.67,45.71937,0,11,1,176.6785,81.1543,44.31096,0,0,302.1437,0,0,0,15,1,2,87.4,13,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,0,73.73394,9.27441,.6931472,5.710903,1 +7,1,25,0,2,127760,0,10660.67,46.71937,0,11,1,24.25876,36.79245,0,0,0,61.05121,0,0,0,5,0,2,87.4,13,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,0,73.73394,9.27441,.6931472,4.111713,1 +7,1,25,0,3,127760,0,10660.67,47.71937,0,11,1,133.1695,84.23587,57.13022,0,3313.268,3587.803,2,0,0,16,1,2,87.4,13,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,0,73.73394,9.27441,.6931472,8.185295,1 +7,1,25,0,4,127760,0,10660.67,48.71937,0,11,1,41.02097,60.74749,0,0,0,101.7685,0,0,0,8,0,2,87.4,13,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,0,73.73394,9.27441,.6931472,4.6227,1 +7,1,25,0,5,127760,0,10660.67,49.71937,0,11,1,56.69029,78.99958,0,0,0,135.6899,0,0,0,6,1,2,87.4,13,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,0,73.73394,9.27441,.6931472,4.910372,1 +6,1,25,1,1,127764,0,14575.68,10.83915,1,14,1,1.798561,0,0,0,0,1.798561,0,0,0,1,0,7,74.36826,13.73189,0,,1000,1000,1,1,1.94591,6.907755,0,3.258096,8.294049,0,0,0,85.55971,9.587178,1.94591,.586987,1 +6,1,25,1,2,127764,0,14575.68,11.83915,1,14,1,21.90581,3.47207,0,0,941.6429,967.0208,1,0,0,2,0,7,74.36826,13.73189,0,,1000,1000,1,1,1.94591,6.907755,0,3.258096,8.294049,0,0,0,85.55971,9.587178,1.94591,6.87422,1 +6,1,25,1,3,127764,0,14575.68,12.83915,1,14,1,24.28928,1.630923,0,0,0,25.9202,0,0,0,1,0,7,74.36826,13.73189,0,,1000,1000,1,1,1.94591,6.907755,0,3.258096,8.294049,0,0,0,85.55971,9.587178,1.94591,3.255023,1 +6,1,25,1,1,127765,0,14575.68,2.757016,1,14,1,39.56834,20.22782,0,0,0,59.79616,0,0,0,5,0,7,74.36826,13.73189,0,,1000,1000,1,1,1.94591,6.907755,0,3.258096,8.294049,0,0,0,82.12809,9.587178,1.94591,4.090941,1 +6,1,25,1,2,127765,0,14575.68,3.757016,1,14,1,24.09639,12.13582,0,0,0,36.2322,0,0,0,3,0,7,74.36826,13.73189,0,,1000,1000,1,1,1.94591,6.907755,0,3.258096,8.294049,0,0,0,82.12809,9.587178,1.94591,3.589948,1 +6,1,25,1,3,127765,0,14575.68,4.757016,1,14,1,85.78554,17.75561,0,0,0,103.5411,0,0,0,5,1,7,74.36826,13.73189,0,,1000,1000,1,1,1.94591,6.907755,0,3.258096,8.294049,0,0,0,82.12809,9.587178,1.94591,4.639969,1 +6,1,25,1,1,127766,0,14575.68,6.004107,0,14,1,130.3957,1.672662,0,0,0,132.0683,0,0,0,2,0,7,74.36826,13.73189,0,,1000,1000,1,0,1.94591,6.907755,0,3.258096,8.294049,0,0,0,86.07368,9.587178,1.94591,4.883319,1 +6,1,25,1,2,127766,0,14575.68,7.004107,0,14,1,15.33406,0,0,0,0,15.33406,0,0,0,1,0,7,74.36826,13.73189,0,,1000,1000,1,0,1.94591,6.907755,0,3.258096,8.294049,0,0,0,86.07368,9.587178,1.94591,2.730077,1 +6,1,25,1,3,127766,0,14575.68,8.004107,0,14,1,21.44638,5.955112,0,59.85037,0,27.4015,0,0,1,3,0,7,74.36826,13.73189,0,,1000,1000,1,0,1.94591,6.907755,0,3.258096,8.294049,0,0,0,86.07368,9.587178,1.94591,3.310598,1 +6,1,25,1,1,127767,0,14575.68,40.69815,0,16,1,0,0,0,0,0,0,0,0,0,0,0,7,75.8,0,0,,1000,1000,0,0,1.94591,6.907755,0,3.258096,8.294049,0,0,0,77.52456,9.587178,1.94591,,0 +6,1,25,1,2,127767,0,14575.68,41.69815,0,16,1,0,0,0,0,0,0,0,0,0,0,0,7,75.8,0,0,,1000,1000,0,0,1.94591,6.907755,0,3.258096,8.294049,0,0,0,77.52456,9.587178,1.94591,,0 +6,1,25,1,3,127767,0,14575.68,42.69815,0,16,1,0,1.261845,0,0,0,1.261845,0,0,0,0,0,7,75.8,0,0,,1000,1000,0,0,1.94591,6.907755,0,3.258096,8.294049,0,0,0,77.52456,9.587178,1.94591,.2325752,1 +6,1,25,1,1,127768,0,14575.68,40.62149,1,14,1,22.18225,0,28.19544,0,0,50.3777,0,0,0,2,0,7,75.8,21.7,0,,1000,1000,0,0,1.94591,6.907755,0,3.258096,8.294049,0,0,0,78.99319,9.587178,1.94591,3.919549,1 +6,1,25,1,2,127768,0,14575.68,41.62149,1,14,1,15.33406,0,13.73494,0,0,29.069,0,0,0,1,0,7,75.8,21.7,0,,1000,1000,0,0,1.94591,6.907755,0,3.258096,8.294049,0,0,0,78.99319,9.587178,1.94591,3.369673,1 +6,1,25,1,3,127768,0,14575.68,42.62149,1,14,1,0,0,0,0,0,0,0,0,0,0,0,7,75.8,21.7,0,,1000,1000,0,0,1.94591,6.907755,0,3.258096,8.294049,0,0,0,78.99319,9.587178,1.94591,,0 +6,1,25,1,1,127769,0,14575.68,9.401779,0,14,1,29.97602,5.413669,24.1247,0,0,59.51439,0,0,0,4,0,7,74.36826,13.73189,0,,1000,1000,1,0,1.94591,6.907755,0,3.258096,8.294049,0,0,0,86.07368,9.587178,1.94591,4.086218,1 +6,1,25,1,2,127769,0,14575.68,10.40178,0,14,1,15.33406,0,13.73494,0,0,29.069,0,0,0,1,0,7,74.36826,13.73189,0,,1000,1000,1,0,1.94591,6.907755,0,3.258096,8.294049,0,0,0,86.07368,9.587178,1.94591,3.369673,1 +6,1,25,1,3,127769,0,14575.68,11.40178,0,14,1,75.31172,0,16.6783,0,0,91.99003,0,0,0,5,0,7,74.36826,13.73189,0,,1000,1000,1,0,1.94591,6.907755,0,3.258096,8.294049,0,0,0,86.07368,9.587178,1.94591,4.52168,1 +6,1,25,1,1,127770,0,14575.68,14.89938,0,14,1,16.78657,0,0,204.5863,0,16.78657,0,0,10,3,0,7,66.3,8.7,0,,1000,1000,1,0,1.94591,6.907755,0,3.258096,8.294049,0,0,0,80.99475,9.587178,1.94591,2.820579,1 +6,1,25,1,2,127770,0,14575.68,15.89938,0,14,1,147.0427,7.984666,0,0,0,155.0274,0,0,0,2,0,7,66.3,8.7,0,,1000,1000,1,0,1.94591,6.907755,0,3.258096,8.294049,0,0,0,80.99475,9.587178,1.94591,5.043602,1 +6,1,25,1,3,127770,0,14575.68,16.89938,0,14,1,53.36658,2.693267,0,0,0,56.05985,0,0,1,2,0,7,66.3,8.7,0,,1000,1000,1,0,1.94591,6.907755,0,3.258096,8.294049,0,0,0,80.99475,9.587178,1.94591,4.02642,1 +4,1,100,0,1,127779,0,9723.945,26.0397,1,12,1,40.63604,7.067138,0,0,914.9058,962.6089,1,0,0,3,0,2,64.2,21.7,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,1,0,0,65.72105,9.182449,.6931472,6.869647,1 +4,1,100,0,2,127779,0,9723.945,27.0397,1,12,1,66.84636,9.622642,0,0,868.5714,945.0404,1,0,0,3,0,3,64.2,21.7,0,,1000,1000,0,0,1.098612,6.907755,1,0,0,1,0,0,65.72105,9.182449,1.098612,6.851228,1 +4,1,100,0,3,127779,0,9723.945,28.0397,1,12,1,60.56511,17.91155,16.21622,0,0,94.69287,0,0,0,5,3,4,64.2,21.7,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,65.72105,9.182449,1.386294,4.550639,1 +4,1,100,0,4,127779,0,9723.945,29.0397,1,12,1,546.7867,30.42388,0,254.1021,0,577.2106,0,0,12,11,7,4,64.2,21.7,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,65.72105,9.182449,1.386294,6.358207,1 +4,1,100,0,5,127779,0,9723.945,30.0397,1,12,1,14.58941,3.272197,0,0,0,17.86161,0,0,0,2,0,4,64.2,21.7,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,65.72105,9.182449,1.386294,2.882654,1 +4,1,100,0,1,127780,0,9723.945,25.99315,0,12,1,234.9823,14.69376,0,0,0,249.6761,0,0,0,7,6,2,60,13,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,1,0,0,71.23127,9.182449,.6931472,5.520164,1 +4,1,100,0,2,127780,0,9723.945,26.99315,0,12,1,218.3288,0,0,0,0,218.3288,0,0,0,6,3,3,60,13,0,,1000,1000,0,0,1.098612,6.907755,1,0,0,1,0,0,71.23127,9.182449,1.098612,5.386003,1 +4,1,100,0,3,127780,0,9723.945,27.99315,0,12,1,74.20148,2.432432,0,0,590.9484,667.5823,1,0,0,2,2,4,60,13,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,71.23127,9.182449,1.386294,6.503663,1 +4,1,100,0,4,127780,0,9723.945,28.99315,0,12,1,15.49681,0,0,0,0,15.49681,0,0,0,2,1,4,60,13,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,71.23127,9.182449,1.386294,2.740634,1 +4,1,100,0,5,127780,0,9723.945,29.99315,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,60,13,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,71.23127,9.182449,1.386294,,0 +2,1,100,1,1,127844,0,7080.025,54.13005,1,7,1,56.51398,68.73885,0,0,0,125.2528,0,0,0,5,1,2,71.6,21.7,0,,897,897,0,0,.6931472,6.799056,1,0,0,0,1,0,54.37621,8.865174,.6931472,4.830334,1 +2,1,100,1,2,127844,0,7080.025,55.13005,1,7,1,66.95699,46.81546,0,0,0,113.7725,0,0,0,8,0,2,71.6,21.7,0,,897,897,0,0,.6931472,6.799056,1,0,0,0,1,0,54.37621,8.865174,.6931472,4.7342,1 +2,1,100,1,3,127844,0,7080.025,56.13005,1,7,1,88.8008,49.57384,0,0,1069.876,1208.251,1,0,0,6,0,2,71.6,21.7,0,,897,897,0,0,.6931472,6.799056,1,0,0,0,1,0,54.37621,8.865174,.6931472,7.096929,1 +2,1,100,1,4,127844,0,7080.025,57.13005,1,7,1,256.7692,95.79623,40.28453,0,0,392.8499,0,0,0,9,0,2,71.6,21.7,0,,897,897,0,0,.6931472,6.799056,1,0,0,0,1,0,54.37621,8.865174,.6931472,5.973428,1 +2,1,100,1,5,127844,0,7080.025,58.13005,1,7,1,24.8212,97.3496,0,0,0,122.1708,0,0,0,4,0,2,71.6,21.7,0,,897,897,0,0,.6931472,6.799056,1,0,0,0,1,0,54.37621,8.865174,.6931472,4.80542,1 +2,1,100,1,1,127845,0,7080.025,59.80014,0,10,1,4.759072,0,0,0,0,4.759072,0,0,0,1,0,2,56.8,30.4,1,,897,897,0,0,.6931472,6.799056,1,0,0,0,1,0,58.17178,8.865174,.6931472,1.560053,1 +2,1,100,1,2,127845,0,7080.025,60.80014,0,10,1,0,0,0,0,0,0,0,0,0,0,0,2,56.8,30.4,1,,897,897,0,0,.6931472,6.799056,1,0,0,0,1,0,58.17178,8.865174,.6931472,,0 +2,1,100,1,3,127845,0,7080.025,61.80014,0,10,1,0,2.428147,0,0,0,2.428147,0,0,0,0,0,2,56.8,30.4,1,,897,897,0,0,.6931472,6.799056,1,0,0,0,1,0,58.17178,8.865174,.6931472,.8871282,1 +2,1,100,1,4,127845,0,7080.025,62.80014,0,10,1,0,0,0,0,0,0,0,0,0,0,0,2,56.8,30.4,1,,897,897,0,0,.6931472,6.799056,1,0,0,0,1,0,58.17178,8.865174,.6931472,,0 +2,1,100,1,5,127845,0,7080.025,63.80014,0,10,1,0,0,0,0,0,0,0,0,0,0,0,2,56.8,30.4,1,,897,897,0,0,.6931472,6.799056,1,0,0,0,1,0,58.17178,8.865174,.6931472,,0 +2,1,100,1,1,127853,0,10884.62,52.2245,1,10,1,5.94884,8.76859,0,0,0,14.71743,0,0,0,1,0,1,83.2,13,0,,678,678,0,0,0,6.519147,1,0,0,1,0,0,69.8115,9.295197,0,2.689033,1 +2,1,100,1,2,127853,0,10884.62,53.2245,1,10,1,22.86336,8.43767,31.81274,0,0,63.11377,0,0,0,1,1,1,83.2,13,0,,678,678,0,0,0,6.519147,1,0,0,1,0,0,69.8115,9.295197,0,4.144939,1 +2,1,100,1,3,127853,0,10884.62,54.2245,1,10,1,12.88404,11.52131,0,0,0,24.40535,0,0,0,0,1,1,83.2,13,0,,678,678,0,0,0,6.519147,1,0,0,1,0,0,69.8115,9.295197,0,3.194803,1 +2,1,100,1,4,127853,0,10884.62,55.2245,1,10,1,11.47315,11.15649,0,0,0,22.62965,0,0,0,1,0,1,83.2,13,0,,678,678,0,0,0,6.519147,1,0,0,1,0,0,69.8115,9.295197,0,3.119261,1 +2,1,100,1,5,127853,0,10884.62,56.2245,1,10,1,0,7.421119,0,0,0,7.421119,0,0,0,0,0,1,83.2,13,0,,678,678,0,0,0,6.519147,1,0,0,1,0,0,69.8115,9.295197,0,2.00433,1 +11,1,0,0,1,127859,0,8602.978,28.0794,0,16,1,8.833922,0,32.39105,0,0,41.22497,0,0,0,0,1,1,49.5,21.7,0,,0,247,0,0,0,5.509388,0,0,0,0,0,0,76.30257,9.059979,0,3.719044,1 +11,1,0,0,2,127859,0,8602.978,29.0794,0,16,1,5.929919,5.660378,0,0,0,11.5903,0,0,0,1,0,1,49.5,21.7,0,,0,247,0,0,0,5.509388,0,0,0,0,0,0,76.30257,9.059979,0,2.450168,1 +11,1,0,0,3,127859,0,8602.978,30.0794,0,16,1,12.77641,8.968059,0,0,0,21.74447,0,0,0,2,0,1,49.5,21.7,0,,0,247,0,0,0,5.509388,0,0,0,0,0,0,76.30257,9.059979,0,3.07936,1 +11,1,0,0,4,127859,0,8602.978,31.0794,0,16,1,15.49681,3.19052,28.91522,0,0,47.60255,0,0,0,1,1,1,49.5,21.7,0,,0,247,0,0,0,5.509388,0,0,0,0,0,0,76.30257,9.059979,0,3.862886,1 +11,1,0,0,5,127859,0,8602.978,32.0794,0,16,1,5.002084,2.396832,0,0,0,7.398916,0,0,0,1,0,1,49.5,21.7,0,,0,247,0,0,0,5.509388,0,0,0,0,0,0,76.30257,9.059979,0,2.001333,1 +10,1,50,1,1,127869,0,9542.002,22.37919,1,13,1,34.88995,19.98215,0,0,0,54.8721,0,0,0,2,0,3,73.7,8.7,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,73.05471,9.163564,1.098612,4.005005,1 +10,1,50,1,1,127870,0,9542.002,23.25257,0,12,1,4.759072,9.417014,0,0,0,14.17609,0,0,0,1,0,3,88.4,8.7,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,78.10675,9.163564,1.098612,2.651556,1 +10,1,50,1,1,127871,0,9542.002,1.650924,1,13,1,120.4878,25.66924,0,0,0,146.157,0,0,0,9,0,3,74.36826,13.73189,0,,1000,1000,1,1,1.098612,6.907755,0,3.931826,7.600903,0,0,0,76.42117,9.163564,1.098612,4.984682,1 +1,1,0,0,1,127908,1,9542.002,52.4846,0,7,1,52.62073,1.766784,0,0,0,54.38752,0,0,0,0,0,2,75.8,30.4,0,,300,300,0,0,.6931472,5.703783,1,0,0,1,0,0,60.18914,9.163564,.6931472,3.996135,1 +1,1,0,0,2,127908,1,9542.002,53.4846,0,7,.3142076,76.79784,0,0,0,2641.412,2718.21,1,0,0,2,1,2,75.8,30.4,0,,300,300,0,0,.6931472,5.703783,1,0,0,1,0,0,60.18914,9.163564,.6931472,7.907729,1 +1,1,0,0,1,127909,1,9542.002,46.8063,1,9,1,159.4818,586.1484,43.79859,23.55713,0,789.4287,0,0,2,13,3,2,55.8,26.1,1,,300,300,0,0,.6931472,5.703783,1,0,0,0,1,0,59.73195,9.163564,.6931472,6.671309,1 +1,1,0,0,2,127909,1,9542.002,47.8063,1,9,.5382513,130.8356,233.6765,32.51752,21.56334,1045.892,1442.922,1,0,2,12,1,2,55.8,26.1,1,,300,300,0,0,.6931472,5.703783,1,0,0,0,1,0,59.73195,9.163564,.6931472,7.274426,1 +11,1,0,1,1,127920,1,5730.991,38.30527,0,10,1,155.6092,42.2497,47.25573,0,0,245.1146,0,0,0,7,0,3,69.5,17.4,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,62.38857,8.653818,1.098612,5.501726,1 +11,1,0,1,2,127920,1,5730.991,39.30527,0,10,1,343.0617,60.80397,0,0,640.9141,1044.78,1,0,0,11,2,3,69.5,17.4,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,62.38857,8.653818,1.098612,6.951561,1 +11,1,0,1,3,127920,1,5730.991,40.30527,0,10,1,115.0176,63.27473,48.81467,0,0,227.107,0,0,0,11,0,3,69.5,17.4,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,62.38857,8.653818,1.098612,5.425421,1 +11,1,0,1,1,127921,1,5730.991,41.85626,1,10,1,22.31604,0,49.16767,0,0,71.48372,0,0,0,2,0,3,78.9,30.4,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,59.65693,8.653818,1.098612,4.26947,1 +11,1,0,1,2,127921,1,5730.991,42.85626,1,10,1,37.44493,12.47247,0,0,0,49.9174,0,0,0,2,0,3,78.9,30.4,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,59.65693,8.653818,1.098612,3.91037,1 +11,1,0,1,3,127921,1,5730.991,43.85626,1,10,1,30.63787,8.864892,0,0,0,39.50276,0,0,0,2,0,3,78.9,30.4,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,59.65693,8.653818,1.098612,3.676371,1 +11,1,0,1,1,127922,1,5730.991,15.37851,0,10,1,6.031363,0,0,0,0,6.031363,0,0,0,1,0,3,81.1,4.3,0,,0,0,1,0,1.098612,0,0,0,0,0,0,0,69.89707,8.653818,1.098612,1.796973,1 +11,1,0,1,2,127922,1,5730.991,16.37851,0,10,1,27.53304,3.221366,0,0,0,30.75441,0,0,0,0,1,3,81.1,4.3,0,,0,0,1,0,1.098612,0,0,0,0,0,0,0,69.89707,8.653818,1.098612,3.426033,1 +11,1,0,1,3,127922,1,5730.991,17.37851,0,10,1,53.91763,13.2898,0,0,0,67.20744,0,0,0,4,0,3,81.1,4.3,0,,0,0,1,0,1.098612,0,0,0,0,0,0,0,69.89707,8.653818,1.098612,4.207784,1 +5,1,25,1,1,127923,1,10909.43,26.94319,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,78.9,4.3,0,,399,399,0,0,0,5.988961,0,3.258096,7.375256,0,0,0,71.59248,9.297475,0,,0 +5,1,25,1,2,127923,1,10909.43,27.94319,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,78.9,4.3,0,,399,399,0,0,0,5.988961,0,3.258096,7.375256,0,0,0,71.59248,9.297475,0,,0 +5,1,25,1,3,127923,1,10909.43,28.94319,0,12,1,22.44389,0,0,0,0,22.44389,0,0,0,2,0,2,78.9,4.3,0,,399,399,0,0,.6931472,5.988961,0,3.258096,7.375256,0,0,0,71.59248,9.297475,.6931472,3.111018,1 +5,1,25,1,4,127923,1,10909.43,29.94319,0,12,1,67.31213,6.897188,37.50576,0,0,111.7151,0,0,0,1,0,2,78.9,4.3,0,,399,399,0,0,.6931472,5.988961,0,3.258096,7.375256,0,0,0,71.59248,9.297475,.6931472,4.715951,1 +5,1,25,1,5,127923,1,10909.43,30.94319,0,12,1,9.73339,7.685146,0,0,0,17.41854,0,0,0,1,0,2,78.9,4.3,0,,399,399,0,0,.6931472,5.988961,0,3.258096,7.375256,0,0,0,71.59248,9.297475,.6931472,2.857535,1 +3,1,100,0,1,127949,0,4003.102,52.83778,1,10,1,0,0,0,0,0,0,0,0,0,0,0,1,86.3,13.73189,0,,546,546,0,0,0,6.302619,1,0,0,0,1,0,54.90957,8.295074,0,,0 +3,1,100,0,2,127949,0,4003.102,53.83778,1,10,1,0,0,0,0,0,0,0,0,0,0,0,1,86.3,13.73189,0,,546,546,0,0,0,6.302619,1,0,0,0,1,0,54.90957,8.295074,0,,0 +3,1,100,0,3,127949,0,4003.102,54.83778,1,10,1,80.58968,0,0,0,0,80.58968,0,0,0,0,0,1,86.3,13.73189,0,,546,546,0,0,0,6.302619,1,0,0,0,1,0,54.90957,8.295074,0,4.38937,1 +4,1,100,0,1,127950,0,8390.819,6.863792,0,13,1,35.97122,9.148681,0,0,0,45.1199,0,0,0,6,0,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,1,0,0,0,0,0,82.86884,9.035012,1.609438,3.809324,1 +4,1,100,0,2,127950,0,8390.819,7.863792,0,13,1,30.66813,1.949617,0,32.85871,503.9266,536.5444,1,0,4,4,0,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,1,0,0,0,0,0,82.86884,9.035012,1.609438,6.285149,1 +4,1,100,0,3,127950,0,8390.819,8.863791,0,13,1,0,3.591022,0,0,0,3.591022,0,0,0,0,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,0,0,0,82.86884,9.035012,1.386294,1.278437,1 +4,1,100,0,4,127950,0,8390.819,9.863791,0,13,1,6.915629,2.065468,0,0,0,8.981097,0,0,0,1,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,0,0,0,82.86884,9.035012,1.386294,2.195122,1 +4,1,100,0,5,127950,0,8390.819,10.86379,0,13,1,13.11892,11.8832,0,0,0,25.00212,0,0,0,2,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,0,0,0,82.86884,9.035012,1.386294,3.218961,1 +4,1,100,0,1,127951,0,8390.819,27.94524,1,13,1,10.19185,12.1223,0,0,0,22.31415,0,0,0,1,0,5,82.5,13.73189,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,0,0,0,78.51599,9.035012,1.609438,3.105221,1 +4,1,100,0,2,127951,0,8390.819,28.94524,1,13,1,100.2191,28.94852,30.31216,167.0318,0,159.4797,0,0,9,5,0,5,82.5,13.73189,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,0,0,0,78.51599,9.035012,1.609438,5.071917,1 +4,1,100,0,3,127951,0,8390.819,29.94524,1,13,1,48.92768,17.64589,0,0,267.0075,333.5811,1,0,0,4,0,4,82.5,13.73189,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,78.51599,9.035012,1.386294,5.809886,1 +4,1,100,0,4,127951,0,8390.819,30.94524,1,13,1,109.728,7.722453,33.88659,0,474.0526,625.3896,1,0,0,5,3,4,82.5,13.73189,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,78.51599,9.035012,1.386294,6.438375,1 +4,1,100,0,5,127951,0,8390.819,31.94524,1,13,1,17.47778,17.16885,13.54211,0,746.8895,795.0783,1,0,0,1,0,4,82.5,13.73189,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,78.51599,9.035012,1.386294,6.678441,1 +4,1,100,0,1,127952,0,8390.819,29.28405,0,12,1,40.16787,180.1559,0,17.98561,0,220.3237,0,0,3,6,0,5,57.5,13.73189,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,1,0,0,64.43861,9.035012,1.609438,5.395098,1 +4,1,100,0,2,127952,0,8390.819,30.28405,0,12,.2076503,0,31.61555,0,49.28806,3129.995,3161.61,1,0,3,0,0,5,57.5,13.73189,0,,1000,1000,0,0,1.609438,6.907755,1,0,0,1,0,0,64.43861,9.035012,1.609438,8.058837,1 +4,1,100,0,1,127953,0,8390.819,8.440794,1,13,1,51.25899,9.742207,0,0,0,61.0012,0,0,0,8,0,5,74.36826,13.73189,0,,1000,1000,1,1,1.609438,6.907755,1,0,0,0,0,0,82.35487,9.035012,1.609438,4.110894,1 +4,1,100,0,2,127953,0,8390.819,9.440794,1,13,1,24.64403,2.146769,0,0,0,26.7908,0,0,0,1,0,5,74.36826,13.73189,0,,1000,1000,1,1,1.609438,6.907755,1,0,0,0,0,0,82.35487,9.035012,1.609438,3.288059,1 +4,1,100,0,3,127953,0,8390.819,10.44079,1,13,1,13.46633,6.408978,0,0,0,19.87531,0,0,0,2,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,1,0,0,0,0,0,82.35487,9.035012,1.386294,2.989478,1 +4,1,100,0,4,127953,0,8390.819,11.44079,1,13,1,25.81835,8.805902,0,0,0,34.62425,0,0,0,4,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,1,0,0,0,0,0,82.35487,9.035012,1.386294,3.544554,1 +4,1,100,0,5,127953,0,8390.819,12.44079,1,13,1,0,3.719848,0,0,0,3.719848,0,0,0,0,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,1,0,0,0,0,0,82.35487,9.035012,1.386294,1.313683,1 +4,1,100,0,1,127954,0,8390.819,3.290897,1,13,1,29.07674,11.39089,0,0,0,40.46762,0,0,0,5,0,5,74.36826,13.73189,0,,1000,1000,1,1,1.609438,6.907755,1,0,0,0,0,0,78.92324,9.035012,1.609438,3.700502,1 +4,1,100,0,2,127954,0,8390.819,4.290896,1,13,1,87.62322,22.10843,0,0,295.356,405.0876,1,0,0,13,0,5,74.36826,13.73189,0,,1000,1000,1,1,1.609438,6.907755,1,0,0,0,0,0,78.92324,9.035012,1.609438,6.004103,1 +4,1,100,0,3,127954,0,8390.819,5.290896,1,13,1,11.97007,6.32419,0,0,0,18.29426,0,0,0,2,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,1,0,0,0,0,0,78.92324,9.035012,1.386294,2.906588,1 +4,1,100,0,4,127954,0,8390.819,6.290896,1,13,1,8.298756,2.065468,0,0,349.9078,360.272,1,0,0,1,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,1,0,0,0,0,0,78.92324,9.035012,1.386294,5.886859,1 +4,1,100,0,5,127954,0,8390.819,7.290896,1,13,1,12.69573,0,10.15658,0,0,22.85231,0,0,0,2,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,1,0,0,0,0,0,78.92324,9.035012,1.386294,3.129052,1 +1,1,0,0,1,127955,0,2800.868,35.57837,0,12,1,7.138608,4.033313,0,0,0,11.17192,0,0,0,1,0,2,83.8,13.73189,0,,300,300,0,0,.6931472,5.703783,1,0,0,0,0,0,77.12907,7.938042,.6931472,2.413404,1 +1,1,0,0,1,127956,0,2800.868,21.32238,1,13,1,5.353956,9.69066,0,0,0,15.04462,0,0,0,1,0,2,67.5,13.73189,0,,300,300,0,0,.6931472,5.703783,1,0,0,1,0,0,65.36804,7.938042,.6931472,2.71102,1 +1,1,0,0,2,127956,0,2800.868,22.32238,1,13,1,0,0,0,0,0,0,0,0,0,0,0,1,67.5,13.73189,0,,300,300,0,0,0,5.703783,1,0,0,1,0,0,65.36804,7.938042,0,,0 +1,1,0,0,3,127956,0,2800.868,23.32238,1,13,1,0,0,0,0,0,0,0,0,0,0,0,1,67.5,13.73189,0,,300,300,0,0,0,5.703783,1,0,0,1,0,0,65.36804,7.938042,0,,0 +11,1,0,1,1,127957,0,9542.002,4.867898,0,10,1,67.83274,5.647821,0,0,0,73.48057,0,0,0,4,0,4,74.36826,13.73189,0,,0,0,1,0,1.386294,0,0,0,0,1,0,0,70.7345,9.163564,1.386294,4.297021,1 +11,1,0,1,2,127957,0,9542.002,5.867898,0,10,1,114.7439,24.42048,0,0,898.6685,1037.833,2,0,0,8,0,4,74.36826,13.73189,0,,0,0,1,0,1.386294,0,0,0,0,1,0,0,70.7345,9.163564,1.386294,6.94489,1 +11,1,0,1,3,127957,0,9542.002,6.867898,0,10,1,35.87223,14.05405,0,0,0,49.92629,0,0,0,4,0,4,74.36826,13.73189,0,,0,0,1,0,1.386294,0,0,0,0,1,0,0,70.7345,9.163564,1.386294,3.910548,1 +11,1,0,1,4,127957,0,9542.002,7.867898,0,10,1,37.16955,0,0,0,0,37.16955,0,0,0,1,0,4,74.36826,13.73189,0,,0,0,1,0,1.386294,0,0,0,0,1,0,0,70.7345,9.163564,1.386294,3.61549,1 +11,1,0,1,5,127957,0,9542.002,8.867899,0,10,1,40.20425,3.376407,0,0,0,43.58066,0,0,0,2,0,4,74.36826,13.73189,0,,0,0,1,0,1.386294,0,0,0,0,1,0,0,70.7345,9.163564,1.386294,3.774613,1 +11,1,0,1,1,127958,0,9542.002,7.126626,1,10,1,44.16961,8.486455,0,50.05889,0,52.65607,0,0,1,5,1,4,74.36826,13.73189,0,,0,0,1,1,1.386294,0,0,0,0,1,0,0,78.85278,9.163564,1.386294,3.963781,1 +11,1,0,1,2,127958,0,9542.002,8.126626,1,10,1,22.10243,2.598383,0,0,478.2857,502.9865,2,0,0,2,0,4,74.36826,13.73189,0,,0,0,1,1,1.386294,0,0,0,0,1,0,0,78.85278,9.163564,1.386294,6.220563,1 +11,1,0,1,3,127958,0,9542.002,9.126626,1,10,1,60.75676,14.42752,0,0,0,75.18427,0,0,0,6,0,4,74.36826,13.73189,0,,0,0,1,1,1.386294,0,0,0,0,1,0,0,78.85278,9.163564,1.386294,4.319942,1 +11,1,0,1,4,127958,0,9542.002,10.12663,1,10,1,23.24521,5.651778,21.47676,0,0,50.37374,0,0,0,2,1,4,74.36826,13.73189,0,,0,0,1,1,1.386294,0,0,0,0,1,0,0,78.85278,9.163564,1.386294,3.91947,1 +11,1,0,1,5,127958,0,9542.002,11.12663,1,10,1,219.1538,14.92288,16.11922,0,0,250.1959,0,0,0,7,0,4,74.36826,13.73189,0,,0,0,1,1,1.386294,0,0,0,0,1,0,0,78.85278,9.163564,1.386294,5.522244,1 +11,1,0,1,1,127959,0,9542.002,25.80424,1,10,1,55.35925,46.18375,0,0,0,101.543,0,0,0,5,0,4,77.9,21.7,0,,0,0,0,0,1.386294,0,0,0,0,1,0,0,63.82829,9.163564,1.386294,4.620482,1 +11,1,0,1,2,127959,0,9542.002,26.80424,1,10,1,83.07278,58.10242,0,0,0,141.1752,0,0,0,5,0,4,77.9,21.7,0,,0,0,0,0,1.386294,0,0,0,0,1,0,0,63.82829,9.163564,1.386294,4.950002,1 +11,1,0,1,3,127959,0,9542.002,27.80424,1,10,1,66.83047,57.67567,0,0,0,124.5061,0,0,0,7,0,4,77.9,21.7,0,,0,0,0,0,1.386294,0,0,0,0,1,0,0,63.82829,9.163564,1.386294,4.824355,1 +11,1,0,1,4,127959,0,9542.002,28.80424,1,10,1,49.68095,56.92799,0,0,0,106.6089,0,0,0,5,0,4,77.9,21.7,0,,0,0,0,0,1.386294,0,0,0,0,1,0,0,63.82829,9.163564,1.386294,4.669168,1 +11,1,0,1,5,127959,0,9542.002,29.80424,1,10,1,106.3568,63.28887,0,0,498.2576,667.9033,1,0,0,9,0,4,77.9,21.7,0,,0,0,0,0,1.386294,0,0,0,0,1,0,0,63.82829,9.163564,1.386294,6.504143,1 +11,1,0,0,1,127960,0,9542.002,26.92402,0,10,1,26.55477,8.763251,0,0,0,35.31802,0,0,0,2,0,4,44.2,17.4,0,,0,0,0,0,1.386294,0,0,0,0,1,0,0,68.18724,9.163564,1.386294,3.564393,1 +11,1,0,0,2,127960,0,9542.002,27.92402,0,10,1,43.87062,13.4124,0,0,0,57.28302,0,0,0,3,0,4,44.2,17.4,0,,0,0,0,0,1.386294,0,0,0,0,1,0,0,68.18724,9.163564,1.386294,4.048004,1 +11,1,0,0,3,127960,0,9542.002,28.92402,0,10,1,41.52334,16.60442,0,0,0,58.12777,0,0,0,3,0,4,44.2,17.4,0,,0,0,0,0,1.386294,0,0,0,0,1,0,0,68.18724,9.163564,1.386294,4.062644,1 +11,1,0,0,4,127960,0,9542.002,29.92402,0,10,1,99.97721,6.768459,0,0,0,106.7457,0,0,0,1,3,4,44.2,17.4,0,,0,0,0,0,1.386294,0,0,0,0,1,0,0,68.18724,9.163564,1.386294,4.670449,1 +11,1,0,0,5,127960,0,9542.002,30.92402,0,10,1,143.4556,8.149229,0,0,0,151.6048,0,0,0,3,0,4,44.2,17.4,0,,0,0,0,0,1.386294,0,0,0,0,1,0,0,68.18724,9.163564,1.386294,5.021277,1 +8,1,50,0,1,127974,0,1579.404,19.08008,0,12,1,38.28033,1.766784,18.9576,0,0,59.00471,0,0,0,3,0,1,70,4.3,0,,0,90,0,0,0,4.49981,0,3.931826,0,1,0,0,64.78301,7.365436,0,4.077617,1 +8,1,50,0,2,127974,0,1579.404,20.08008,0,12,1,210.2426,2.625337,0,0,0,212.8679,0,0,0,6,0,1,70,4.3,0,,0,90,0,0,0,4.49981,0,3.931826,0,1,0,0,64.78301,7.365436,0,5.360672,1 +8,1,50,0,3,127974,0,1579.404,21.08008,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,70,4.3,0,,0,90,0,0,0,4.49981,0,3.931826,0,1,0,0,64.78301,7.365436,0,,0 +11,1,0,1,1,127986,1,8864.541,56.85968,0,5,1,130.577,36.85901,51.60024,0,1243.319,1462.356,1,0,0,13,1,2,85.3,26.1,0,,0,0,0,0,.6931472,0,0,0,0,0,1,0,66.48095,9.089928,.6931472,7.287804,1 +11,1,0,1,2,127986,1,8864.541,57.85968,0,5,1,6.53239,10.4736,0,0,0,17.00599,0,0,0,1,0,2,85.3,26.1,0,,0,0,0,0,.6931472,0,0,0,0,0,1,0,66.48095,9.089928,.6931472,2.833565,1 +11,1,0,1,3,127986,1,8864.541,58.85968,0,5,1,19.32607,11.94252,47.15064,0,0,78.41923,0,0,0,2,1,2,85.3,26.1,0,,0,0,0,0,.6931472,0,0,0,0,0,1,0,66.48095,9.089928,.6931472,4.362069,1 +11,1,0,1,1,127987,1,8864.541,50.64476,1,10,1,50.56514,165.1814,0,0,0,215.7466,0,0,0,9,0,2,57.9,43.5,1,,0,0,0,0,.6931472,0,0,0,0,0,1,0,55.03077,9.089928,.6931472,5.374104,1 +11,1,0,1,2,127987,1,8864.541,51.64476,1,10,1,58.79151,127.436,0,0,962.0033,1148.231,1,0,0,7,0,2,57.9,43.5,1,,0,0,0,0,.6931472,0,0,0,0,0,1,0,55.03077,9.089928,.6931472,7.045978,1 +11,1,0,1,3,127987,1,8864.541,52.64476,1,10,1,505.773,128.553,0,0,0,634.326,0,0,0,13,0,2,57.9,43.5,1,,0,0,0,0,.6931472,0,0,0,0,0,1,0,55.03077,9.089928,.6931472,6.452563,1 +7,1,25,0,1,128034,0,9542.002,25.62902,0,12,1,93.10954,12.96231,0,0,628.1508,734.2226,1,0,1,4,1,1,82.7,13.73189,0,,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,0,1,0,69.75751,9.163564,0,6.598812,1 +7,1,25,0,2,128034,0,9542.002,26.62902,0,12,1,42.04852,12.01078,0,0,0,54.0593,0,0,0,2,0,1,82.7,13.73189,0,,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,0,1,0,69.75751,9.163564,0,3.990082,1 +7,1,25,0,3,128034,0,9542.002,27.62902,0,12,1,50.9828,8.14742,0,0,1144.295,1203.425,1,0,0,3,0,1,82.7,13.73189,0,,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,0,1,0,69.75751,9.163564,0,7.092927,1 +7,1,25,0,4,128034,0,9542.002,28.62902,0,12,1,88.87876,0,0,0,0,88.87876,0,0,0,2,2,1,82.7,13.73189,0,,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,0,1,0,69.75751,9.163564,0,4.487273,1 +7,1,25,0,5,128034,0,9542.002,29.62902,0,12,1,185.494,13.6807,0,0,0,199.1747,0,0,0,11,1,1,82.7,13.73189,0,,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,0,1,0,69.75751,9.163564,0,5.294182,1 +3,1,100,1,1,128040,0,6588.709,31.33196,1,16,1,19.72909,24.92933,0,0,880.689,925.3475,1,0,0,4,0,2,75.8,0,0,,900,900,0,0,.6931472,6.802395,1,0,0,0,0,0,79.34842,8.793264,.6931472,6.830169,1 +3,1,100,1,2,128040,0,6588.709,32.33196,1,16,1,22.64151,0,0,0,0,22.64151,0,0,0,2,0,3,75.8,0,0,,900,900,0,0,1.098612,6.802395,1,0,0,0,0,0,79.34842,8.793264,1.098612,3.119785,1 +3,1,100,1,3,128040,0,6588.709,33.33196,1,16,1,112.5307,22.2113,33.89189,0,771.5283,940.1622,1,0,0,5,1,3,75.8,0,0,,900,900,0,0,1.098612,6.802395,1,0,0,0,0,0,79.34842,8.793264,1.098612,6.846052,1 +3,1,100,1,1,128041,0,6588.709,27.48802,0,16,1,103.6514,4.475854,0,0,0,108.1272,0,0,0,5,0,2,70.5,8.7,0,,900,900,0,0,.6931472,6.802395,1,0,0,0,0,0,78.45724,8.793264,.6931472,4.683308,1 +3,1,100,1,2,128041,0,6588.709,28.48802,0,16,1,0,0,0,0,0,0,0,0,0,0,0,3,70.5,8.7,0,,900,900,0,0,1.098612,6.802395,1,0,0,0,0,0,78.45724,8.793264,1.098612,,0 +3,1,100,1,3,128041,0,6588.709,29.48802,0,16,1,7.371007,1.719902,0,0,0,9.090909,0,0,0,1,0,3,70.5,8.7,0,,900,900,0,0,1.098612,6.802395,1,0,0,0,0,0,78.45724,8.793264,1.098612,2.207275,1 +7,1,25,1,1,128051,0,5192.928,26.49966,1,16,1,85.73141,10.31175,0,0,0,96.04317,0,0,0,9,0,1,84.2,8.7,0,,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,0,0,0,80.17492,8.555245,0,4.564798,1 +7,1,25,1,2,128051,0,5192.928,27.49966,1,16,1,95.29025,6.106243,24.5126,0,0,125.9091,0,0,0,8,1,1,84.2,8.7,0,,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,0,0,0,80.17492,8.555245,0,4.83556,1 +7,1,25,1,3,128051,0,5192.928,28.49966,1,16,1,43.39152,6.433915,0,0,0,49.82544,0,0,0,4,0,1,84.2,8.7,0,,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,0,0,0,80.17492,8.555245,0,3.908526,1 +7,1,25,1,4,128051,0,5192.928,29.49966,1,16,1,43.10742,27.85616,31.16644,0,0,102.13,0,0,0,3,1,1,84.2,8.7,0,,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,0,0,0,80.17492,8.555245,0,4.626246,1 +7,1,25,1,5,128051,0,5192.928,30.49966,1,16,1,28.35379,8.760051,0,0,0,37.11384,0,0,0,1,1,1,84.2,8.7,0,,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,0,0,0,80.17492,8.555245,0,3.61399,1 +7,1,25,1,1,128052,0,5367.866,28.48186,1,16,1,53.35732,8.723022,29.04077,0,0,91.1211,0,0,0,5,1,1,76.8,8.7,0,,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,1,0,0,67.53278,8.588372,0,4.512189,1 +7,1,25,1,3,128052,0,5367.866,30.48186,1,16,1,9.476309,19.38653,3.102244,0,0,31.96509,0,0,0,1,0,1,76.8,8.7,0,,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,1,0,0,67.53278,8.588372,0,3.464644,1 +7,1,25,1,4,128052,0,5367.866,31.48186,1,16,1,41.49377,16.48225,0,0,0,57.97602,0,0,0,4,0,1,76.8,8.7,0,,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,1,0,0,67.53278,8.588372,0,4.06003,1 +7,1,25,1,5,128052,0,5367.866,32.48186,1,16,1,129.0732,4.0584,0,0,648.4977,781.6293,1,0,0,5,0,1,76.8,8.7,0,,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,1,0,0,67.53278,8.588372,0,6.661381,1 +6,1,25,0,1,128057,0,6310.174,23.30185,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,87.5,13.73189,0,,873,873,0,0,.6931472,6.771935,0,3.258096,8.15823,0,0,0,78.89305,8.750077,.6931472,,0 +6,1,25,0,2,128057,0,6310.174,24.30185,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,87.5,13.73189,0,,873,873,0,0,.6931472,6.771935,0,3.258096,8.15823,0,0,0,78.89305,8.750077,.6931472,,0 +6,1,25,0,3,128057,0,6310.174,25.30185,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,87.5,13.73189,0,,873,873,0,0,.6931472,6.771935,0,3.258096,8.15823,0,0,0,78.89305,8.750077,.6931472,,0 +6,1,25,0,4,128057,0,6310.174,26.30185,1,12,1,13.83126,0,0,0,0,13.83126,0,0,0,1,0,2,87.5,13.73189,0,,873,873,0,0,.6931472,6.771935,0,3.258096,8.15823,0,0,0,78.89305,8.750077,.6931472,2.626931,1 +6,1,25,0,5,128057,0,6310.174,27.30185,1,12,1,21.79433,12.5603,0,0,0,34.35463,0,0,0,2,0,2,87.5,13.73189,0,,873,873,0,0,.6931472,6.771935,0,3.258096,8.15823,0,0,0,78.89305,8.750077,.6931472,3.536737,1 +6,1,25,0,1,128058,0,6310.174,41.29774,0,14,1,0,0,0,0,0,0,0,0,0,0,0,2,83.8,13.73189,0,,873,873,0,0,.6931472,6.771935,0,3.258096,8.15823,1,0,0,69.96889,8.750077,.6931472,,0 +6,1,25,0,2,128058,0,6310.174,42.29774,0,14,1,0,0,0,0,0,0,0,0,0,0,0,2,83.8,13.73189,0,,873,873,0,0,.6931472,6.771935,0,3.258096,8.15823,1,0,0,69.96889,8.750077,.6931472,,0 +6,1,25,0,3,128058,0,6310.174,43.29774,0,14,1,0,0,0,0,0,0,0,0,0,0,0,2,83.8,13.73189,0,,873,873,0,0,.6931472,6.771935,0,3.258096,8.15823,1,0,0,69.96889,8.750077,.6931472,,0 +6,1,25,0,4,128058,0,6310.174,44.29774,0,14,1,0,0,0,0,0,0,0,0,0,0,0,2,83.8,13.73189,0,,873,873,0,0,.6931472,6.771935,0,3.258096,8.15823,1,0,0,69.96889,8.750077,.6931472,,0 +6,1,25,0,5,128058,0,6310.174,45.29774,0,14,1,0,0,0,0,0,0,0,0,0,0,0,2,83.8,13.73189,0,,873,873,0,0,.6931472,6.771935,0,3.258096,8.15823,1,0,0,69.96889,8.750077,.6931472,,0 +11,1,0,0,1,128062,0,8689.826,30.39836,0,18,1,66.54676,15.61751,35.40168,58.45324,0,117.5659,0,0,3,2,0,2,67.5,13.73189,0,,0,0,0,0,.6931472,0,0,0,0,0,0,0,75.15482,9.070024,.6931472,4.766999,1 +11,1,0,0,2,128062,0,8689.826,31.39836,0,18,1,24.64403,30.83242,0,470.9748,0,55.47645,0,0,16,4,0,3,67.5,13.73189,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,75.15482,9.070024,1.098612,4.015959,1 +11,1,0,0,3,128062,0,8689.826,32.39836,0,18,1,64.83791,20.64838,29.45137,226.9327,0,114.9377,0,0,7,4,0,3,67.5,13.73189,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,75.15482,9.070024,1.098612,4.74439,1 +11,1,0,0,1,128063,0,8689.826,30.00958,1,17,1,210.4317,193.9089,8.363309,112.4101,780.0359,1192.74,1,0,6,31,0,2,73.8,13.73189,0,,0,0,0,0,.6931472,0,0,0,0,1,0,0,66.18069,9.070024,.6931472,7.084008,1 +11,1,0,0,2,128063,0,8689.826,31.00958,1,17,1,127.6013,83.72398,0,676.3417,0,211.3253,0,0,23,17,0,3,73.8,13.73189,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,66.18069,9.070024,1.098612,5.353399,1 +11,1,0,0,3,128063,0,8689.826,32.00958,1,17,1,130.4239,61.48629,0,226.9327,0,191.9102,0,0,7,9,1,3,73.8,13.73189,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,66.18069,9.070024,1.098612,5.257028,1 +3,1,100,0,1,128070,0,13029.78,1.667351,0,16,1,13.18945,0,0,0,0,13.18945,0,0,0,2,0,3,74.36826,13.73189,0,,1000,1000,1,0,1.098612,6.907755,1,0,0,0,0,0,77.90071,9.475069,1.098612,2.579417,1 +3,1,100,0,2,128070,0,13029.78,2.667351,0,16,1,34.50164,2.152245,0,0,0,36.65389,0,0,0,3,0,3,74.36826,13.73189,0,,1000,1000,1,0,1.098612,6.907755,1,0,0,0,0,0,77.90071,9.475069,1.098612,3.60152,1 +3,1,100,0,3,128070,0,13029.78,3.667351,0,16,1,6.48379,2.259352,0,0,0,8.743142,0,0,0,1,0,3,74.36826,13.73189,0,,1000,1000,1,0,1.098612,6.907755,1,0,0,0,0,0,77.90071,9.475069,1.098612,2.16827,1 +3,1,100,0,4,128070,0,13029.78,4.667351,0,16,1,13.37022,0,0,0,0,13.37022,0,0,0,1,0,3,74.36826,13.73189,0,,1000,1000,1,0,1.098612,6.907755,1,0,0,0,0,0,77.90071,9.475069,1.098612,2.593029,1 +3,1,100,0,5,128070,0,13029.78,5.667351,0,16,1,0,0,0,0,0,0,0,0,0,0,0,3,74.36826,13.73189,0,,1000,1000,1,0,1.098612,6.907755,1,0,0,0,0,0,77.90071,9.475069,1.098612,,0 +3,1,100,0,1,128071,0,13029.78,26.96235,0,18,1,0,10.48561,0,0,0,10.48561,0,0,0,0,0,3,83.2,8.7,0,,1000,1000,0,0,1.098612,6.907755,1,0,0,0,0,0,78.19019,9.475069,1.098612,2.350004,1 +3,1,100,0,2,128071,0,13029.78,27.96235,0,18,1,0,0,0,0,0,0,0,0,0,0,0,3,83.2,8.7,0,,1000,1000,0,0,1.098612,6.907755,1,0,0,0,0,0,78.19019,9.475069,1.098612,,0 +3,1,100,0,3,128071,0,13029.78,28.96235,0,18,1,0,0,0,0,0,0,0,0,0,0,0,3,83.2,8.7,0,,1000,1000,0,0,1.098612,6.907755,1,0,0,0,0,0,78.19019,9.475069,1.098612,,0 +3,1,100,0,4,128071,0,13029.78,29.96235,0,18,1,0,0,0,0,0,0,0,0,0,0,0,3,83.2,8.7,0,,1000,1000,0,0,1.098612,6.907755,1,0,0,0,0,0,78.19019,9.475069,1.098612,,0 +3,1,100,0,5,128071,0,13029.78,30.96235,0,18,1,0,0,0,0,0,0,0,0,0,0,0,3,83.2,8.7,0,,1000,1000,0,0,1.098612,6.907755,1,0,0,0,0,0,78.19019,9.475069,1.098612,,0 +3,1,100,0,1,128072,0,13029.78,29.17454,1,16,1,7.793765,7.152278,30.98321,0,797.1523,843.0815,1,0,0,0,1,3,86.3,4.3,0,,1000,1000,0,0,1.098612,6.907755,1,0,0,0,0,0,79.08138,9.475069,1.098612,6.737064,1 +3,1,100,0,2,128072,0,13029.78,30.17454,1,16,1,32.85871,0,0,0,0,32.85871,0,0,0,1,0,3,86.3,4.3,0,,1000,1000,0,0,1.098612,6.907755,1,0,0,0,0,0,79.08138,9.475069,1.098612,3.492217,1 +3,1,100,0,3,128072,0,13029.78,31.17454,1,16,1,7.481297,2.438903,0,0,0,9.920199,0,0,0,1,0,3,86.3,4.3,0,,1000,1000,0,0,1.098612,6.907755,1,0,0,0,0,0,79.08138,9.475069,1.098612,2.294573,1 +3,1,100,0,4,128072,0,13029.78,32.17454,1,16,1,6.915629,0,0,0,0,6.915629,0,0,0,1,0,3,86.3,4.3,0,,1000,1000,0,0,1.098612,6.907755,1,0,0,0,0,0,79.08138,9.475069,1.098612,1.933784,1 +3,1,100,0,5,128072,0,13029.78,33.17454,1,16,1,8.463818,0,0,0,0,8.463818,0,0,0,2,0,3,86.3,4.3,0,,1000,1000,0,0,1.098612,6.907755,1,0,0,0,0,0,79.08138,9.475069,1.098612,2.1358,1 +5,1,25,0,1,128076,0,12376.42,15.24709,1,17,1,11.89768,0,30.18441,0,0,42.08209,0,0,0,0,1,4,63.8,13.73189,0,,762,762,1,1,1.386294,6.635947,0,3.258096,8.022241,0,0,0,72.40894,9.423629,1.386294,3.739622,1 +5,1,25,0,2,128076,0,12376.42,16.24709,1,17,1,21.23027,6.069679,0,0,0,27.29995,0,0,0,1,0,4,63.8,13.73189,0,,762,762,1,1,1.386294,6.635947,0,3.258096,8.022241,0,0,0,72.40894,9.423629,1.386294,3.306885,1 +5,1,25,0,3,128076,0,12376.42,17.24709,1,17,1,101.338,3.414272,0,0,9.910803,114.663,0,0,0,6,0,4,63.8,13.73189,0,,762,762,1,1,1.386294,6.635947,0,3.258096,8.022241,0,0,0,72.40894,9.423629,1.386294,4.741998,1 +5,1,25,0,1,128077,0,12376.42,42.25051,1,17,1,86.85307,101.6776,0,0,0,188.5306,0,0,0,8,0,4,78.8,13.73189,1,,762,762,0,0,1.386294,6.635947,0,3.258096,8.022241,0,0,0,75.74407,9.423629,1.386294,5.239261,1 +5,1,25,0,2,128077,0,12376.42,43.25051,1,17,1,178.6064,75.40011,0,0,0,254.0065,0,0,0,6,0,4,78.8,13.73189,1,,762,762,0,0,1.386294,6.635947,0,3.258096,8.022241,0,0,0,75.74407,9.423629,1.386294,5.53736,1 +5,1,25,0,3,128077,0,12376.42,44.25051,1,17,1,69.87116,54.74232,0,0,0,124.6135,0,0,0,8,0,4,78.8,13.73189,1,,762,762,0,0,1.386294,6.635947,0,3.258096,8.022241,0,0,0,75.74407,9.423629,1.386294,4.825217,1 +5,1,25,0,1,128078,0,12376.42,17.92197,0,17,1,88.10232,3.866746,32.69482,0,0,124.6639,0,0,0,3,1,4,82.5,13.73189,0,,762,762,1,0,1.386294,6.635947,0,3.258096,8.022241,0,0,0,77.74564,9.423629,1.386294,4.825621,1 +5,1,25,0,2,128078,0,12376.42,18.92197,0,17,1,14.15351,3.756124,0,0,0,17.90964,0,0,0,2,0,4,82.5,13.73189,0,,762,762,0,0,1.386294,6.635947,0,3.258096,8.022241,0,0,0,77.74564,9.423629,1.386294,2.885339,1 +5,1,25,0,3,128078,0,12376.42,19.92197,0,17,1,0,0,0,0,0,0,0,0,0,0,0,4,82.5,13.73189,0,,762,762,0,0,1.386294,6.635947,0,3.258096,8.022241,0,0,0,77.74564,9.423629,1.386294,,0 +5,1,25,0,1,128079,0,12376.42,19.00616,0,12,1,41.047,0,33.28971,0,0,74.33671,0,0,0,3,1,4,35,13.73189,1,,762,762,0,0,1.386294,6.635947,0,3.258096,8.022241,0,0,0,75.48103,9.423629,1.386294,4.308605,1 +5,1,25,0,2,128079,0,12376.42,20.00616,0,12,1,70.76756,8.633642,14.62167,0,0,94.02287,0,0,0,2,1,4,35,13.73189,1,,762,762,0,0,1.386294,6.635947,0,3.258096,8.022241,0,0,0,75.48103,9.423629,1.386294,4.543538,1 +5,1,25,0,3,128079,0,12376.42,21.00616,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,35,13.73189,1,,762,762,0,0,1.386294,6.635947,0,3.258096,8.022241,0,0,0,75.48103,9.423629,1.386294,,0 +11,1,0,0,1,128084,0,8041.563,4.835044,0,12,1,31.80212,5.57126,0,0,0,37.37338,0,0,0,3,0,4,74.36826,13.73189,0,,0,0,1,0,1.386294,0,0,0,0,0,0,0,78.92502,8.992503,1.386294,3.620959,1 +11,1,0,0,2,128084,0,8041.563,5.835044,0,12,1,46.36119,11.26146,0,0,0,57.62264,0,0,0,5,0,4,74.36826,13.73189,0,,0,0,1,0,1.386294,0,0,0,0,0,0,0,78.92502,8.992503,1.386294,4.053916,1 +11,1,0,0,3,128084,0,8041.563,6.835044,0,12,1,227.2727,82.0344,0,0,0,309.3071,0,0,0,23,2,4,74.36826,13.73189,0,,0,0,1,0,1.386294,0,0,0,0,0,0,0,78.92502,8.992503,1.386294,5.734335,1 +11,1,0,0,1,128085,0,8041.563,1.716632,0,12,1,22.9682,7.043581,0,0,0,30.01178,0,0,0,4,0,4,74.36826,13.73189,0,,0,0,1,0,1.386294,0,0,0,0,0,0,0,78.92502,8.992503,1.386294,3.40159,1 +11,1,0,0,2,128085,0,8041.563,2.716632,0,12,1,19.40701,0,0,0,0,19.40701,0,0,0,3,0,4,74.36826,13.73189,0,,0,0,1,0,1.386294,0,0,0,0,0,0,0,78.92502,8.992503,1.386294,2.965634,1 +11,1,0,0,3,128085,0,8041.563,3.716632,0,12,1,19.16462,2.815725,0,0,0,21.98034,0,0,0,2,0,4,74.36826,13.73189,0,,0,0,1,0,1.386294,0,0,0,0,0,0,0,78.92502,8.992503,1.386294,3.090149,1 +11,1,0,0,1,128086,0,8041.563,36.61602,0,9,1,88.33923,0,0,0,0,88.33923,0,0,0,1,0,4,78.8,13.73189,0,,0,0,0,0,1.386294,0,0,0,0,0,0,0,73.86172,8.992503,1.386294,4.481184,1 +11,1,0,0,2,128086,0,8041.563,37.61602,0,9,1,53.36927,0,0,0,0,53.36927,0,0,0,1,0,4,78.8,13.73189,0,,0,0,0,0,1.386294,0,0,0,0,0,0,0,73.86172,8.992503,1.386294,3.977235,1 +11,1,0,0,3,128086,0,8041.563,38.61602,0,9,1,20.63882,0,0,0,0,20.63882,0,0,0,2,1,4,78.8,13.73189,0,,0,0,0,0,1.386294,0,0,0,0,0,0,0,73.86172,8.992503,1.386294,3.027174,1 +11,1,0,0,1,128087,0,8041.563,28.39699,1,12,1,146.7903,45.18846,0,0,0,191.9788,0,0,0,5,0,4,78.8,13.73189,0,,0,0,0,0,1.386294,0,0,0,0,0,0,0,77.90237,8.992503,1.386294,5.257385,1 +11,1,0,0,2,128087,0,8041.563,29.39699,1,12,1,56.60378,7.202157,0,0,0,63.80593,0,0,0,1,0,4,78.8,13.73189,0,,0,0,0,0,1.386294,0,0,0,0,0,0,0,77.90237,8.992503,1.386294,4.155846,1 +11,1,0,0,3,128087,0,8041.563,30.39699,1,12,1,62.89926,5.110565,0,0,0,68.00983,0,0,0,4,0,4,78.8,13.73189,0,,0,0,0,0,1.386294,0,0,0,0,0,0,0,77.90237,8.992503,1.386294,4.219652,1 +11,1,0,0,1,128088,0,9542.002,27.37851,1,15,1,151.6786,141.9364,0,0,0,293.6151,0,0,0,11,0,3,28.8,13.73189,0,,0,258,0,0,1.098612,5.552959,0,0,0,1,0,0,73.3112,9.163564,1.098612,5.68227,1 +11,1,0,0,2,128088,0,9542.002,28.37851,1,15,1,116.1008,116.5663,0,0,460.1259,692.793,1,0,0,3,0,3,28.8,13.73189,0,,0,258,0,0,1.098612,5.552959,0,0,0,1,0,0,73.3112,9.163564,1.098612,6.540731,1 +11,1,0,0,3,128088,0,9542.002,29.37851,1,15,1,65.83541,142.0199,0,0,0,207.8554,0,0,0,6,0,3,28.8,13.73189,0,,0,258,0,0,1.098612,5.552959,0,0,0,1,0,0,73.3112,9.163564,1.098612,5.336843,1 +11,1,0,0,4,128088,0,9542.002,30.37851,1,15,1,75.8414,85.0023,0,0,745.0945,905.9382,1,0,0,6,0,3,28.8,13.73189,0,,0,258,0,0,1.098612,5.552959,0,0,0,1,0,0,73.3112,9.163564,1.098612,6.808971,1 +11,1,0,0,5,128088,0,9542.002,31.37851,1,15,1,410.8422,155.5438,24.41388,0,0,590.7998,0,0,0,2,1,4,28.8,13.73189,0,,0,258,0,0,1.386294,5.552959,0,0,0,1,0,0,73.3112,9.163564,1.386294,6.381477,1 +11,1,0,0,1,128089,0,9542.002,3.017112,0,15,1,0,0,0,0,0,0,0,0,0,0,0,3,74.36826,13.73189,0,,0,258,1,0,1.098612,5.552959,0,0,0,1,0,0,69.03037,9.163564,1.098612,,0 +11,1,0,0,2,128089,0,9542.002,4.017112,0,15,1,9.857613,0,0,0,0,9.857613,0,0,0,1,0,3,74.36826,13.73189,0,,0,258,1,0,1.098612,5.552959,0,0,0,1,0,0,69.03037,9.163564,1.098612,2.288244,1 +11,1,0,0,3,128089,0,9542.002,5.017112,0,15,1,136.2095,15.18703,.798005,0,0,152.1945,0,0,0,5,0,3,74.36826,13.73189,0,,0,258,1,0,1.098612,5.552959,0,0,0,1,0,0,69.03037,9.163564,1.098612,5.025159,1 +11,1,0,0,4,128089,0,9542.002,6.017112,0,15,1,43.79898,18.55694,0,0,287.953,350.3089,1,0,0,6,0,3,74.36826,13.73189,0,,0,258,1,0,1.098612,5.552959,0,0,0,1,0,0,69.03037,9.163564,1.098612,5.858815,1 +11,1,0,0,5,128089,0,9542.002,7.017112,0,15,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,0,258,1,0,1.386294,5.552959,0,0,0,1,0,0,69.03037,9.163564,1.386294,,0 +11,1,0,0,1,128090,0,9542.002,5.481177,0,15,1,35.97122,11.90048,0,0,0,47.8717,0,0,0,1,0,3,74.36826,13.73189,0,,0,258,1,0,1.098612,5.552959,0,0,0,1,0,0,72.462,9.163564,1.098612,3.868525,1 +11,1,0,0,2,128090,0,9542.002,6.481177,0,15,1,21.35816,14.23877,0,0,0,35.59693,0,0,0,1,1,3,74.36826,13.73189,0,,0,258,1,0,1.098612,5.552959,0,0,0,1,0,0,72.462,9.163564,1.098612,3.572259,1 +11,1,0,0,3,128090,0,9542.002,7.481177,0,15,1,9.476309,40.52369,0,0,0,50,0,0,0,2,0,3,74.36826,13.73189,0,,0,258,1,0,1.098612,5.552959,0,0,0,1,0,0,72.462,9.163564,1.098612,3.912023,1 +11,1,0,0,4,128090,0,9542.002,8.481177,0,15,1,261.2494,57.51498,7.607192,0,0,326.3716,0,0,0,11,0,3,74.36826,13.73189,0,,0,258,1,0,1.098612,5.552959,0,0,0,1,0,0,72.462,9.163564,1.098612,5.788037,1 +11,1,0,0,5,128090,0,9542.002,9.481177,0,15,1,90.56284,34.84977,32.69996,410.4951,0,158.1126,0,0,26,5,1,4,74.36826,13.73189,0,,0,258,1,0,1.386294,5.552959,0,0,0,1,0,0,72.462,9.163564,1.386294,5.063307,1 +4,1,100,0,1,128091,0,10933.62,27.28268,1,16,1,29.7442,10.61868,0,0,0,40.36288,0,0,0,4,0,1,70,13.73189,0,,1000,1000,0,0,0,6.907755,1,0,0,1,0,0,72.76367,9.299689,0,3.697911,1 +4,1,100,0,2,128091,0,10933.62,28.28268,1,16,1,50.62602,11.66032,0,0,0,62.28633,0,0,0,2,1,1,70,13.73189,0,,1000,1000,0,0,0,6.907755,1,0,0,1,0,0,72.76367,9.299689,0,4.131742,1 +4,1,100,0,3,128091,0,10933.62,29.28268,1,16,1,37.66105,11.61546,14.8662,0,0,64.14272,0,0,0,3,1,1,70,13.73189,0,,1000,1000,0,0,0,6.907755,1,0,0,1,0,0,72.76367,9.299689,0,4.16111,1 +4,1,100,0,4,128091,0,10933.62,30.28268,1,16,1,20.19275,22.69849,0,0,0,42.89124,0,0,0,3,0,1,70,13.73189,0,,1000,1000,0,0,0,6.907755,1,0,0,1,0,0,72.76367,9.299689,0,3.758667,1 +4,1,100,0,5,128091,0,10933.62,31.28268,1,16,1,10.93816,11.76693,0,0,0,22.70509,0,0,0,2,0,1,70,13.73189,0,,1000,1000,0,0,0,6.907755,1,0,0,1,0,0,72.76367,9.299689,0,3.122589,1 +4,1,100,0,1,128092,0,5406.948,27.50445,1,16,1,24.98513,76.14515,0,0,0,101.1303,0,0,0,3,0,1,76.3,13.73189,0,,1000,1000,0,0,0,6.907755,1,0,0,0,0,0,76.18845,8.595625,0,4.61641,1 +4,1,100,0,2,128092,0,5406.948,28.50445,1,16,1,29.94012,37.01688,0,0,0,66.95699,0,0,0,5,0,1,76.3,13.73189,0,,1000,1000,0,0,0,6.907755,1,0,0,0,0,0,76.18845,8.595625,0,4.204051,1 +4,1,100,0,3,128092,0,5406.948,29.50445,1,16,1,23.98414,40.51041,0,0,0,64.49455,0,0,0,2,2,1,76.3,13.73189,0,,1000,1000,0,0,0,6.907755,1,0,0,0,0,0,76.18845,8.595625,0,4.166581,1 +4,1,100,0,4,128092,0,5406.948,30.50445,1,16,1,11.47315,29.42175,0,0,0,40.89491,0,0,0,1,0,1,76.3,13.73189,0,,1000,1000,0,0,0,6.907755,1,0,0,0,0,0,76.18845,8.595625,0,3.711005,1 +4,1,100,0,5,128092,0,5406.948,31.50445,1,16,1,7.57257,0,0,0,0,7.57257,0,0,0,1,0,1,76.3,13.73189,0,,1000,1000,0,0,0,6.907755,1,0,0,0,0,0,76.18845,8.595625,0,2.024533,1 +3,1,100,0,1,128093,0,6576.303,24.33676,1,13,1,17.66784,15.23557,0,0,0,32.90342,0,0,0,2,0,2,92.5,13.73189,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,0,0,0,79.71188,8.79138,.6931472,3.493577,1 +3,1,100,0,2,128093,0,6576.303,25.33676,1,13,1,18.86792,16.08086,0,0,0,34.94879,0,0,0,2,0,2,92.5,13.73189,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,0,0,0,79.71188,8.79138,.6931472,3.553884,1 +3,1,100,0,3,128093,0,6576.303,26.33676,1,13,1,19.16462,21.88698,0,0,0,41.0516,0,0,0,2,0,2,92.5,13.73189,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,0,0,0,79.71188,8.79138,.6931472,3.71483,1 +3,1,100,0,1,128094,0,6576.303,37.62902,0,13,1,0,0,0,0,0,0,0,0,0,0,0,2,74.36826,13.73189,.12982,,1000,1000,0,0,.6931472,6.907755,1,0,0,0,0,0,78.8207,8.79138,.6931472,,0 +3,1,100,0,2,128094,0,6576.303,38.62902,0,13,1,0,0,0,0,0,0,0,0,0,0,0,2,74.36826,13.73189,.12982,,1000,1000,0,0,.6931472,6.907755,1,0,0,0,0,0,78.8207,8.79138,.6931472,,0 +3,1,100,0,3,128094,0,6576.303,39.62902,0,13,1,0,0,0,0,0,0,0,0,0,0,0,2,74.36826,13.73189,.12982,,1000,1000,0,0,.6931472,6.907755,1,0,0,0,0,0,78.8207,8.79138,.6931472,,0 +6,1,25,0,1,128097,0,4321.96,26.02601,1,13,1,25.61837,18.10954,0,0,0,43.72792,0,0,0,2,0,1,65,13.73189,0,,700,700,0,0,0,6.55108,0,3.258096,7.937375,0,0,0,78.92638,8.371696,0,3.777987,1 +6,1,25,0,2,128097,0,4321.96,27.02601,1,13,1,25.33693,19.94609,0,0,0,45.28302,0,0,0,3,0,1,65,13.73189,0,,700,700,0,0,0,6.55108,0,3.258096,7.937375,0,0,0,78.92638,8.371696,0,3.812932,1 +6,1,25,0,3,128097,0,4321.96,28.02601,1,13,1,72.60442,19.31204,0,0,0,91.91646,0,0,0,3,1,1,65,13.73189,0,,700,700,0,0,0,6.55108,0,3.258096,7.937375,0,0,0,78.92638,8.371696,0,4.52088,1 +6,1,25,0,4,128097,0,4321.96,29.02601,1,13,1,16.86418,14.75387,0,0,0,31.61805,0,0,0,2,0,1,65,13.73189,0,,700,700,0,0,0,6.55108,0,3.258096,7.937375,0,0,0,78.92638,8.371696,0,3.453728,1 +6,1,25,0,5,128097,0,4321.96,30.02601,1,13,1,32.93039,0,0,0,0,32.93039,0,0,0,4,0,1,65,13.73189,0,,700,700,0,0,0,6.55108,0,3.258096,7.937375,0,0,0,78.92638,8.371696,0,3.494396,1 +2,1,100,1,1,128103,0,7545.561,10.15195,1,13,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,399,399,1,1,1.609438,5.988961,1,0,0,0,0,0,82.314,8.928847,1.609438,,0 +2,1,100,1,2,128103,0,7545.561,11.15195,1,13,1,138.0066,14.50712,29.02519,0,0,181.5389,0,0,0,6,0,5,74.36826,13.73189,0,,399,399,1,1,1.609438,5.988961,1,0,0,0,0,0,82.314,8.928847,1.609438,5.20147,1 +2,1,100,1,3,128103,0,7545.561,12.15195,1,13,1,127.4314,3.266833,11.63092,0,0,142.3292,0,0,0,6,0,5,74.36826,13.73189,0,,399,399,1,1,1.609438,5.988961,1,0,0,0,0,0,82.314,8.928847,1.609438,4.958143,1 +2,1,100,1,1,128104,0,7545.561,37.71115,0,18,1,68.94485,33.4952,0,0,0,102.44,0,0,0,3,0,5,62.1,21.7,0,,399,399,0,0,1.609438,5.988961,1,0,0,0,0,0,78.36037,8.928847,1.609438,4.629278,1 +2,1,100,1,2,128104,0,7545.561,38.71115,0,18,1,26.28697,33.16539,9.56736,0,0,69.01971,0,0,0,1,0,5,62.1,21.7,0,,399,399,0,0,1.609438,5.988961,1,0,0,0,0,0,78.36037,8.928847,1.609438,4.234392,1 +2,1,100,1,3,128104,0,7545.561,39.71115,0,18,1,89.2818,47.7606,33.46634,0,4.488778,174.9975,0,0,0,2,0,5,62.1,21.7,0,,399,399,0,0,1.609438,5.988961,1,0,0,0,0,0,78.36037,8.928847,1.609438,5.164772,1 +2,1,100,1,1,128105,0,7545.561,36.46544,1,13,1,119.3046,8.051558,0,0,0,127.3561,0,0,0,2,0,5,63.2,17.4,0,,399,399,0,0,1.609438,5.988961,1,0,0,1,0,0,72.59515,8.928847,1.609438,4.846987,1 +2,1,100,1,2,128105,0,7545.561,37.46544,1,13,1,68.45564,14.81928,0,0,229.6112,312.8861,1,0,0,2,0,5,63.2,17.4,0,,399,399,0,0,1.609438,5.988961,1,0,0,1,0,0,72.59515,8.928847,1.609438,5.745839,1 +2,1,100,1,3,128105,0,7545.561,38.46544,1,13,1,31.9202,29.04239,26.59352,0,0,87.55611,0,0,0,3,0,5,63.2,17.4,0,,399,399,0,0,1.609438,5.988961,1,0,0,1,0,0,72.59515,8.928847,1.609438,4.47228,1 +2,1,100,1,1,128106,0,7545.561,13.4757,0,13,1,86.03117,27.79976,93.04556,0,0,206.8765,0,0,0,8,1,5,74.36826,13.73189,0,,399,399,1,0,1.609438,5.988961,1,0,0,1,0,0,72.65098,8.928847,1.609438,5.332122,1 +2,1,100,1,2,128106,0,7545.561,14.4757,0,13,1,37.23987,66.91676,62.15772,0,2215.767,2382.081,2,0,0,3,0,5,74.36826,13.73189,0,,399,399,1,0,1.609438,5.988961,1,0,0,1,0,0,72.65098,8.928847,1.609438,7.77573,1 +2,1,100,1,3,128106,0,7545.561,15.4757,0,13,1,320.6384,147.2618,127.2668,0,1133.676,1728.843,3,0,0,20,0,5,74.36826,13.73189,0,,399,399,1,0,1.609438,5.988961,1,0,0,1,0,0,72.65098,8.928847,1.609438,7.455208,1 +2,1,100,1,1,128107,0,7545.561,15.72074,1,13,1,139.6882,0,19.70024,0,0,159.3885,0,0,0,7,0,5,71.6,8.7,0,,399,399,1,1,1.609438,5.988961,1,0,0,0,0,0,74.71169,8.928847,1.609438,5.071344,1 +2,1,100,1,2,128107,0,7545.561,16.72074,1,13,1,4.928806,2.749179,36.3253,0,0,44.00328,0,0,0,1,0,5,71.6,8.7,0,,399,399,1,1,1.609438,5.988961,1,0,0,0,0,0,74.71169,8.928847,1.609438,3.784264,1 +2,1,100,1,3,128107,0,7545.561,17.72074,1,13,1,75.31172,12.41895,13.74564,0,210.8778,312.3541,1,0,0,5,0,5,71.6,8.7,0,,399,399,1,1,1.609438,5.988961,1,0,0,0,0,0,74.71169,8.928847,1.609438,5.744138,1 +10,1,50,1,1,128124,0,8723.945,23.91786,1,16,1,153.777,66.43285,0,0,0,220.2098,0,0,0,15,1,1,75.8,8.7,0,,200,200,0,0,0,5.298317,0,3.931826,5.991465,1,0,0,67.59779,9.073941,0,5.394581,1 +10,1,50,1,2,128124,0,8723.945,24.91786,1,16,1,56.65389,20.18072,11.24863,0,788.3351,876.4184,1,0,0,2,1,1,75.8,8.7,0,,200,200,0,0,0,5.298317,0,3.931826,5.991465,1,0,0,67.59779,9.073941,0,6.775844,1 +10,1,50,1,3,128124,0,8723.945,25.91786,1,16,1,29.42643,13.62095,0,0,0,43.04738,0,0,0,1,2,2,75.8,8.7,0,,200,200,0,0,.6931472,5.298317,0,3.931826,5.991465,1,0,0,67.59779,9.073941,.6931472,3.762301,1 +10,1,50,1,4,128124,0,8723.945,26.91786,1,16,1,418.7736,18.03596,0,0,0,436.8096,0,0,0,4,1,2,75.8,8.7,0,,200,200,0,0,.6931472,5.298317,0,3.931826,5.991465,1,0,0,67.59779,9.073941,.6931472,6.079497,1 +10,1,50,1,5,128124,0,8723.945,27.91786,1,16,1,71.94244,49.97461,0,0,0,121.9171,0,0,0,2,1,2,75.8,8.7,0,,200,200,0,0,.6931472,5.298317,0,3.931826,5.991465,1,0,0,67.59779,9.073941,.6931472,4.803341,1 +8,1,50,1,1,128125,0,4032.878,24.02738,1,16,1,9.422851,1.766784,0,0,0,11.18964,0,0,0,2,0,1,89.5,8.7,0,,115,115,0,0,0,4.744932,0,3.931826,5.438079,1,0,0,71.18497,8.302484,0,2.414988,1 +8,1,50,1,2,128125,0,4032.878,25.02738,1,16,1,0,0,0,0,0,0,0,0,0,0,0,1,89.5,8.7,0,,115,115,0,0,0,4.744932,0,3.931826,5.438079,1,0,0,71.18497,8.302484,0,,0 +8,1,50,1,3,128125,0,4032.878,26.02738,1,16,1,0,0,0,0,0,0,0,0,0,0,0,1,89.5,8.7,0,,115,115,0,0,0,4.744932,0,3.931826,5.438079,1,0,0,71.18497,8.302484,0,,0 +8,1,50,1,4,128125,0,4032.878,27.02738,1,16,1,9.571559,1.458523,0,0,0,11.03008,0,0,0,2,0,1,89.5,8.7,0,,115,115,0,0,0,4.744932,0,3.931826,5.438079,1,0,0,71.18497,8.302484,0,2.400626,1 +8,1,50,1,5,128125,0,4032.878,28.02738,1,16,1,130.9712,6.490204,0,0,0,137.4614,0,0,0,5,0,1,89.5,8.7,0,,115,115,0,0,0,4.744932,0,3.931826,5.438079,1,0,0,71.18497,8.302484,0,4.923344,1 +9,1,50,0,1,128127,0,9204.095,31.49897,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,95,13.73189,0,,1000,1000,0,0,0,6.907755,0,3.931826,7.600903,0,0,0,79.2669,9.127512,0,,0 +9,1,50,0,2,128127,0,9204.095,32.49897,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,95,13.73189,0,,1000,1000,0,0,0,6.907755,0,3.931826,7.600903,0,0,0,79.2669,9.127512,0,,0 +9,1,50,0,3,128127,0,9204.095,33.49897,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,95,13.73189,0,,1000,1000,0,0,0,6.907755,0,3.931826,7.600903,0,0,0,79.2669,9.127512,0,,0 +9,1,50,0,4,128127,0,9204.095,34.49897,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,95,13.73189,0,,1000,1000,0,0,0,6.907755,0,3.931826,7.600903,0,0,0,79.2669,9.127512,0,,0 +9,1,50,0,5,128127,0,9204.095,35.49897,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,95,13.73189,0,,1000,1000,0,0,0,6.907755,0,3.931826,7.600903,0,0,0,79.2669,9.127512,0,,0 +11,1,0,1,1,128129,0,11576.82,4.668036,0,12,1,26.1749,4.544914,0,0,0,30.71981,0,0,0,2,0,4,74.36826,13.73189,0,,0,291,1,0,1.386294,5.673323,0,0,0,0,0,0,82.35892,9.356847,1.386294,3.424908,1 +11,1,0,1,2,128129,0,11576.82,5.668036,0,12,1,7.621121,3.162765,0,0,0,10.78389,0,0,0,1,0,4,74.36826,13.73189,0,,0,291,1,0,1.386294,5.673323,0,0,0,0,0,0,82.35892,9.356847,1.386294,2.378053,1 +11,1,0,1,3,128129,0,11576.82,6.668036,0,12,1,90.68385,4.44004,0,0,0,95.12389,0,0,0,1,1,4,74.36826,13.73189,0,,0,291,1,0,1.386294,5.673323,0,0,0,0,0,0,82.35892,9.356847,1.386294,4.55518,1 +11,1,0,1,4,128129,0,11576.82,7.668036,0,12,1,35.33731,6.883892,0,0,0,42.2212,0,0,0,3,0,4,74.36826,13.73189,0,,0,291,1,0,1.386294,5.673323,0,0,0,0,0,0,82.35892,9.356847,1.386294,3.742923,1 +11,1,0,1,5,128129,0,11576.82,8.668036,0,12,1,12.62095,0,25.94026,0,0,38.56121,0,0,0,1,0,4,74.36826,13.73189,0,,0,291,1,0,1.386294,5.673323,0,0,0,0,0,0,82.35892,9.356847,1.386294,3.652247,1 +11,1,0,1,1,128130,0,11576.82,26.73511,1,12,1,51.75491,17.40036,44.14039,0,0,113.2957,0,0,0,6,1,4,69.5,17.4,0,,0,291,0,0,1.386294,5.673323,0,0,0,1,0,0,66.9132,9.356847,1.386294,4.730001,1 +11,1,0,1,2,128130,0,11576.82,27.73511,1,12,1,56.06968,3.511159,0,0,0,59.58084,0,0,0,3,0,4,69.5,17.4,0,,0,291,0,0,1.386294,5.673323,0,0,0,1,0,0,66.9132,9.356847,1.386294,4.087334,1 +11,1,0,1,3,128130,0,11576.82,28.73511,1,12,1,258.3251,15.58969,0,0,0,273.9148,0,0,0,7,0,4,69.5,17.4,0,,0,291,0,0,1.386294,5.673323,0,0,0,1,0,0,66.9132,9.356847,1.386294,5.612817,1 +11,1,0,1,4,128130,0,11576.82,29.73511,1,12,1,106.0119,6.810463,37.88894,0,837.9532,988.6646,1,0,0,8,1,4,69.5,17.4,0,,0,291,0,0,1.386294,5.673323,0,0,0,1,0,0,66.9132,9.356847,1.386294,6.896355,1 +11,1,0,1,5,128130,0,11576.82,30.73511,1,12,1,21.03492,4.299537,0,0,0,25.33446,0,0,0,2,0,4,69.5,17.4,0,,0,291,0,0,1.386294,5.673323,0,0,0,1,0,0,66.9132,9.356847,1.386294,3.232165,1 +11,1,0,1,1,128131,0,11576.82,9.839836,1,12,1,32.71862,6.061868,0,0,0,38.78049,0,0,0,1,2,4,74.36826,13.73189,0,,0,291,1,1,1.386294,5.673323,0,0,0,0,0,0,85.27657,9.356847,1.386294,3.657917,1 +11,1,0,1,2,128131,0,11576.82,10.83984,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,0,291,1,1,1.386294,5.673323,0,0,0,0,0,0,85.27657,9.356847,1.386294,,0 +11,1,0,1,3,128131,0,11576.82,11.83984,1,12,1,111.4965,1.655104,0,0,0,113.1516,0,0,0,3,2,4,74.36826,13.73189,0,,0,291,1,1,1.386294,5.673323,0,0,0,0,0,0,85.27657,9.356847,1.386294,4.728729,1 +11,1,0,1,4,128131,0,11576.82,12.83984,1,12,1,61.95502,5.392382,0,0,0,67.3474,0,0,0,6,0,4,74.36826,13.73189,0,,0,291,1,1,1.386294,5.673323,0,0,0,0,0,0,85.27657,9.356847,1.386294,4.209864,1 +11,1,0,1,5,128131,0,11576.82,13.83984,1,12,1,12.62095,0,0,0,0,12.62095,0,0,0,1,0,4,74.36826,13.73189,0,,0,291,1,1,1.386294,5.673323,0,0,0,0,0,0,85.27657,9.356847,1.386294,2.535358,1 +11,1,0,1,1,128132,0,11576.82,30.79261,0,12,1,12.49256,2.325996,0,0,0,14.81856,0,0,0,2,0,4,100,8.7,0,,0,291,0,0,1.386294,5.673323,0,0,0,0,0,0,78.72413,9.356847,1.386294,2.69588,1 +11,1,0,1,2,128132,0,11576.82,31.79261,0,12,1,10.88732,8.21448,0,0,143.3587,162.4605,1,0,0,2,0,4,100,8.7,0,,0,291,0,0,1.386294,5.673323,0,0,0,0,0,0,78.72413,9.356847,1.386294,5.090435,1 +11,1,0,1,3,128132,0,11576.82,32.79261,0,12,1,393.9544,9.187314,0,0,0,403.1417,0,0,0,5,4,4,100,8.7,0,,0,291,0,0,1.386294,5.673323,0,0,0,0,0,0,78.72413,9.356847,1.386294,5.999288,1 +11,1,0,1,4,128132,0,11576.82,33.79261,0,12,1,31.98715,0,43.64388,0,0,75.63102,0,0,0,3,0,4,100,8.7,0,,0,291,0,0,1.386294,5.673323,0,0,0,0,0,0,78.72413,9.356847,1.386294,4.325867,1 +11,1,0,1,5,128132,0,11576.82,34.79261,0,12,1,33.44552,2.309634,0,0,0,35.75515,0,0,0,2,0,4,100,8.7,0,,0,291,0,0,1.386294,5.673323,0,0,0,0,0,0,78.72413,9.356847,1.386294,3.576694,1 +2,1,100,0,1,128137,0,13813.28,5.229295,1,12,1,4.82509,4.282268,0,0,0,9.107358,0,0,0,1,0,4,74.36826,13.73189,0,,978,978,1,1,1.386294,6.885509,1,0,0,0,0,0,80.12564,9.533458,1.386294,2.209083,1 +2,1,100,0,2,128137,0,13813.28,6.229295,1,12,1,40.7489,0,0,0,0,40.7489,0,0,0,3,0,4,74.36826,13.73189,0,,978,978,1,1,1.386294,6.885509,1,0,0,0,0,0,80.12564,9.533458,1.386294,3.707429,1 +2,1,100,0,3,128137,0,13813.28,7.229295,1,12,1,7.533903,0,0,0,0,7.533903,0,0,0,1,0,4,74.36826,13.73189,0,,978,978,1,1,1.386294,6.885509,1,0,0,0,0,0,80.12564,9.533458,1.386294,2.019413,1 +2,1,100,0,1,128138,0,13813.28,4.262834,1,12,1,14.47527,4.101327,0,0,0,18.5766,0,0,0,2,0,4,74.36826,13.73189,0,,978,978,1,1,1.386294,6.885509,1,0,0,0,0,0,80.93543,9.533458,1.386294,2.921903,1 +2,1,100,0,2,128138,0,13813.28,5.262834,1,12,1,5.506608,0,0,0,0,5.506608,0,0,0,1,0,4,74.36826,13.73189,0,,978,978,1,1,1.386294,6.885509,1,0,0,0,0,0,80.93543,9.533458,1.386294,1.705949,1 +2,1,100,0,3,128138,0,13813.28,6.262834,1,12,1,20.09041,0,0,0,0,20.09041,0,0,0,2,0,4,74.36826,13.73189,0,,978,978,1,1,1.386294,6.885509,1,0,0,0,0,0,80.93543,9.533458,1.386294,3.000242,1 +2,1,100,0,1,128139,0,13813.28,34.96783,0,20,1,0,0,0,0,0,0,0,0,0,0,0,4,82.5,13.73189,0,,978,978,0,0,1.386294,6.885509,1,0,0,0,0,0,79.15443,9.533458,1.386294,,0 +2,1,100,0,2,128139,0,13813.28,35.96783,0,20,1,90.80396,0,.5506608,0,0,91.35462,0,0,0,3,1,4,82.5,13.73189,0,,978,978,0,0,1.386294,6.885509,1,0,0,0,0,0,79.15443,9.533458,1.386294,4.514749,1 +2,1,100,0,3,128139,0,13813.28,36.96783,0,20,1,0,0,0,0,0,0,0,0,0,0,0,4,82.5,13.73189,0,,978,978,0,0,1.386294,6.885509,1,0,0,0,0,0,79.15443,9.533458,1.386294,,0 +2,1,100,0,1,128140,0,13813.28,24.83778,1,12,1,219.3004,28.75754,0,0,0,248.0579,0,0,0,22,0,4,68.8,13.73189,0,,978,978,0,0,1.386294,6.885509,1,0,0,1,0,0,66.92496,9.533458,1.386294,5.513662,1 +2,1,100,0,2,128140,0,13813.28,25.83778,1,12,1,152.533,16.68502,36.82819,0,0,206.0462,0,0,0,19,0,4,68.8,13.73189,0,,978,978,0,0,1.386294,6.885509,1,0,0,1,0,0,66.92496,9.533458,1.386294,5.328101,1 +2,1,100,0,3,128140,0,13813.28,26.83778,1,12,1,89.40231,14.68106,0,0,0,104.0834,0,0,0,14,0,4,68.8,13.73189,0,,978,978,0,0,1.386294,6.885509,1,0,0,1,0,0,66.92496,9.533458,1.386294,4.645192,1 +2,1,100,1,1,128155,0,8172.457,16.1232,1,12,1,0,0,0,0,0,0,0,0,0,0,0,7,52.6,0,0,,0,0,1,1,1.94591,0,1,0,0,1,0,0,68.42788,9.008647,1.94591,,0 +2,1,100,1,2,128155,0,8172.457,17.1232,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,52.6,0,0,,0,0,1,1,2.079442,0,1,0,0,1,0,0,68.42788,9.008647,2.079442,,0 +2,1,100,1,3,128155,0,8172.457,18.1232,1,12,1,13.62735,8.657086,0,0,0,22.28444,0,0,0,1,0,8,52.6,0,0,,0,0,0,0,2.079442,0,1,0,0,1,0,0,68.42788,9.008647,2.079442,3.103889,1 +2,1,100,1,4,128155,0,8172.457,19.1232,1,12,1,0,6.929784,0,0,340.1331,347.0629,1,0,0,0,0,8,52.6,0,0,,0,0,0,0,2.079442,0,1,0,0,1,0,0,68.42788,9.008647,2.079442,5.849506,1 +2,1,100,1,5,128155,0,8172.457,20.1232,1,12,1,0,0,0,0,0,0,0,0,0,0,0,9,52.6,0,0,,0,0,0,0,2.197225,0,1,0,0,1,0,0,68.42788,9.008647,2.197225,,0 +2,1,100,1,1,128156,0,8172.457,10.89938,1,12,1,4.759072,0,0,0,0,4.759072,0,0,0,1,0,7,74.36826,13.73189,0,,0,0,1,1,1.94591,0,1,0,0,1,0,0,78.19813,9.008647,1.94591,1.560053,1 +2,1,100,1,2,128156,0,8172.457,11.89938,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,74.36826,13.73189,0,,0,0,1,1,2.079442,0,1,0,0,1,0,0,78.19813,9.008647,2.079442,,0 +2,1,100,1,3,128156,0,8172.457,12.89938,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,74.36826,13.73189,0,,0,0,1,1,2.079442,0,1,0,0,1,0,0,78.19813,9.008647,2.079442,,0 +2,1,100,1,4,128156,0,8172.457,13.89938,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,74.36826,13.73189,0,,0,0,1,1,2.079442,0,1,0,0,1,0,0,78.19813,9.008647,2.079442,,0 +2,1,100,1,5,128156,0,8172.457,14.89938,1,12,1,0,0,0,0,0,0,0,0,0,0,0,9,74.36826,13.73189,0,,0,0,1,1,2.197225,0,1,0,0,1,0,0,78.19813,9.008647,2.197225,,0 +2,1,100,1,1,128157,0,8172.457,46.67214,0,9,1,9.518144,20.93992,0,0,0,30.45806,0,0,0,2,0,7,38.9,21.7,0,,0,0,0,0,1.94591,0,1,0,0,1,0,0,60.7702,9.008647,1.94591,3.416351,1 +2,1,100,1,2,128157,0,8172.457,47.67214,0,9,1,0,0,0,0,0,0,0,0,0,0,0,8,38.9,21.7,0,,0,0,0,0,2.079442,0,1,0,0,1,0,0,60.7702,9.008647,2.079442,,0 +2,1,100,1,3,128157,0,8172.457,48.67214,0,9,1,0,0,0,0,0,0,0,0,0,0,0,8,38.9,21.7,0,,0,0,0,0,2.079442,0,1,0,0,1,0,0,60.7702,9.008647,2.079442,,0 +2,1,100,1,4,128157,0,8172.457,49.67214,0,9,1,0,0,0,0,0,0,0,0,0,0,0,8,38.9,21.7,0,,0,0,0,0,2.079442,0,1,0,0,1,0,0,60.7702,9.008647,2.079442,,0 +2,1,100,1,5,128157,0,8172.457,50.67214,0,9,1,16.40724,0,0,0,350.0841,366.4914,1,0,0,1,0,9,38.9,21.7,0,,0,0,0,0,2.197225,0,1,0,0,1,0,0,60.7702,9.008647,2.197225,5.903975,1 +2,1,100,1,1,128158,0,8172.457,14.77071,0,12,1,0,0,0,0,0,0,0,0,0,0,0,7,81.1,0,0,,0,0,1,0,1.94591,0,1,0,0,1,0,0,73.75163,9.008647,1.94591,,0 +2,1,100,1,2,128158,0,8172.457,15.77071,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,81.1,0,0,,0,0,1,0,2.079442,0,1,0,0,1,0,0,73.75163,9.008647,2.079442,,0 +2,1,100,1,3,128158,0,8172.457,16.7707,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,81.1,0,0,,0,0,1,0,2.079442,0,1,0,0,1,0,0,73.75163,9.008647,2.079442,,0 +2,1,100,1,4,128158,0,8172.457,17.7707,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,81.1,0,0,,0,0,1,0,2.079442,0,1,0,0,1,0,0,73.75163,9.008647,2.079442,,0 +2,1,100,1,5,128158,0,8172.457,18.7707,0,12,1,0,0,0,0,0,0,0,0,0,0,0,9,81.1,0,0,,0,0,0,0,2.197225,0,1,0,0,1,0,0,73.75163,9.008647,2.197225,,0 +2,1,100,1,1,128159,0,8172.457,8.919918,0,12,1,4.759072,0,0,0,0,4.759072,0,0,0,1,0,7,74.36826,13.73189,0,,0,0,1,0,1.94591,0,1,0,0,1,0,0,78.7121,9.008647,1.94591,1.560053,1 +2,1,100,1,2,128159,0,8172.457,9.919918,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,74.36826,13.73189,0,,0,0,1,0,2.079442,0,1,0,0,1,0,0,78.7121,9.008647,2.079442,,0 +2,1,100,1,3,128159,0,8172.457,10.91992,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,74.36826,13.73189,0,,0,0,1,0,2.079442,0,1,0,0,1,0,0,78.7121,9.008647,2.079442,,0 +2,1,100,1,4,128159,0,8172.457,11.91992,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,74.36826,13.73189,0,,0,0,1,0,2.079442,0,1,0,0,1,0,0,78.7121,9.008647,2.079442,,0 +2,1,100,1,5,128159,0,8172.457,12.91992,0,12,1,0,0,0,0,0,0,0,0,0,0,0,9,74.36826,13.73189,0,,0,0,1,0,2.197225,0,1,0,0,1,0,0,78.7121,9.008647,2.197225,,0 +2,1,100,1,1,128160,0,8172.457,40.27652,1,12,1,198.0964,6.30577,0,0,351.398,555.8001,1,1,0,5,0,7,44.2,21.7,0,,0,0,0,0,1.94591,0,1,0,0,1,0,0,65.55928,9.008647,1.94591,6.320409,1 +2,1,100,1,2,128160,0,8172.457,41.27652,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,44.2,21.7,0,,0,0,0,0,2.079442,0,1,0,0,1,0,0,65.55928,9.008647,2.079442,,0 +2,1,100,1,3,128160,0,8172.457,42.27652,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,44.2,21.7,0,,0,0,0,0,2.079442,0,1,0,0,1,0,0,65.55928,9.008647,2.079442,,0 +2,1,100,1,4,128160,0,8172.457,43.27652,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,44.2,21.7,0,,0,0,0,0,2.079442,0,1,0,0,1,0,0,65.55928,9.008647,2.079442,,0 +2,1,100,1,5,128160,0,8172.457,44.27652,1,12,1,0,0,0,0,0,0,0,0,0,0,0,9,44.2,21.7,0,,0,0,0,0,2.197225,0,1,0,0,1,0,0,65.55928,9.008647,2.197225,,0 +2,1,100,1,1,128161,0,8172.457,12.79398,0,12,1,5.353956,0,0,0,0,5.353956,0,0,0,1,0,7,74.36826,13.73189,0,,0,0,1,0,1.94591,0,1,0,0,1,0,0,78.7121,9.008647,1.94591,1.677836,1 +2,1,100,1,2,128161,0,8172.457,13.79398,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,74.36826,13.73189,0,,0,0,1,0,2.079442,0,1,0,0,1,0,0,78.7121,9.008647,2.079442,,0 +2,1,100,1,3,128161,0,8172.457,14.79398,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,74.36826,13.73189,0,,0,0,1,0,2.079442,0,1,0,0,1,0,0,78.7121,9.008647,2.079442,,0 +2,1,100,1,4,128161,0,8172.457,15.79398,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,74.36826,13.73189,0,,0,0,1,0,2.079442,0,1,0,0,1,0,0,78.7121,9.008647,2.079442,,0 +2,1,100,1,5,128161,0,8172.457,16.79398,0,12,1,0,0,0,0,0,0,0,0,0,0,0,9,74.36826,13.73189,0,,0,0,1,0,2.197225,0,1,0,0,1,0,0,78.7121,9.008647,2.197225,,0 +11,1,0,0,1,128190,0,13406.87,19.57837,1,13,1,61.83746,23.351,36.00118,0,0,121.1896,0,0,0,3,0,5,82.5,13.73189,0,,0,165,0,0,1.609438,5.105946,0,0,0,0,0,0,79.76627,9.503597,1.609438,4.797357,1 +11,1,0,0,2,128190,0,13406.87,20.57837,1,13,1,41.50943,20.78167,14.92722,0,0,77.21833,0,0,0,4,0,5,82.5,13.73189,0,,0,165,0,0,1.609438,5.105946,0,0,0,0,0,0,79.76627,9.503597,1.609438,4.346637,1 +11,1,0,0,3,128190,0,13406.87,21.57837,1,13,1,10.81081,12.93366,0,0,0,23.74447,0,0,0,1,0,5,82.5,13.73189,0,,0,165,0,0,1.609438,5.105946,0,0,0,0,0,0,79.76627,9.503597,1.609438,3.16735,1 +11,1,0,0,4,128190,0,13406.87,22.57837,1,13,1,59.25251,7.233364,0,0,0,66.48587,0,0,0,3,0,5,82.5,13.73189,0,,0,165,0,0,1.609438,5.105946,0,0,0,0,0,0,79.76627,9.503597,1.609438,4.19699,1 +11,1,0,0,5,128190,0,13406.87,23.57837,1,13,1,77.11546,2.667778,27.22801,0,0,107.0113,0,0,0,9,0,5,82.5,13.73189,0,,0,165,0,0,1.609438,5.105946,0,0,0,0,0,0,79.76627,9.503597,1.609438,4.672934,1 +11,1,0,0,1,128191,0,13406.87,50.16016,0,11,1,38.28033,30.21201,51.08363,0,0,119.576,0,0,0,4,0,5,96.3,13.73189,0,,0,165,0,0,1.609438,5.105946,0,0,0,1,0,0,66.23094,9.503597,1.609438,4.783952,1 +11,1,0,0,2,128191,0,13406.87,51.16016,0,11,1,285.4447,81.02426,0,0,448.0809,814.5499,1,0,0,11,0,5,96.3,13.73189,0,,0,165,0,0,1.609438,5.105946,0,0,0,1,0,0,66.23094,9.503597,1.609438,6.702636,1 +11,1,0,0,3,128191,0,13406.87,52.16016,0,11,1,80.58968,89.90172,45.44472,0,0,215.9361,0,0,0,7,0,5,96.3,13.73189,0,,0,165,0,0,1.609438,5.105946,0,0,0,1,0,0,66.23094,9.503597,1.609438,5.374982,1 +11,1,0,0,4,128191,0,13406.87,53.16016,0,11,1,67.50228,53.71468,0,0,331.0848,452.3017,1,0,0,6,0,5,96.3,13.73189,0,,0,165,0,0,1.609438,5.105946,0,0,0,1,0,0,66.23094,9.503597,1.609438,6.114349,1 +11,1,0,0,5,128191,0,13406.87,54.16016,0,11,1,33.76407,153.6765,43.1263,0,1068.424,1298.991,1,0,0,4,0,5,96.3,13.73189,0,,0,165,0,0,1.609438,5.105946,0,0,0,1,0,0,66.23094,9.503597,1.609438,7.169343,1 +11,1,0,0,1,128192,0,13406.87,48.0438,1,12,1,56.89046,0,27.38516,0,0,84.27562,0,0,0,2,0,5,92.5,13.73189,0,,0,165,0,0,1.609438,5.105946,0,0,0,0,0,0,77.5184,9.503597,1.609438,4.434093,1 +11,1,0,0,2,128192,0,13406.87,49.0438,1,12,1,0,8.490566,0,0,0,8.490566,0,0,0,0,0,5,92.5,13.73189,0,,0,165,0,0,1.609438,5.105946,0,0,0,0,0,0,77.5184,9.503597,1.609438,2.138956,1 +11,1,0,0,3,128192,0,13406.87,50.0438,1,12,1,54.79115,21.49877,0,0,0,76.28992,0,0,0,4,0,5,92.5,13.73189,0,,0,165,0,0,1.609438,5.105946,0,0,0,0,0,0,77.5184,9.503597,1.609438,4.334541,1 +11,1,0,0,4,128192,0,13406.87,51.0438,1,12,1,185.278,87.7165,22.38833,0,1501.436,1796.819,1,0,0,7,0,5,92.5,13.73189,0,,0,165,0,0,1.609438,5.105946,0,0,0,0,0,0,77.5184,9.503597,1.609438,7.493773,1 +11,1,0,0,5,128192,0,13406.87,52.0438,1,12,1,131.7216,32.9679,25.91913,0,0,190.6086,0,0,0,11,0,5,92.5,13.73189,0,,0,165,0,0,1.609438,5.105946,0,0,0,0,0,0,77.5184,9.503597,1.609438,5.250222,1 +11,1,0,0,1,128193,0,13406.87,17.10335,1,12,1,73.91048,22.67373,0,0,0,96.58421,0,0,0,4,1,5,78.8,13.73189,0,,0,165,1,1,1.609438,5.105946,0,0,0,0,0,0,75.12392,9.503597,1.609438,4.570415,1 +11,1,0,0,2,128193,0,13406.87,18.10335,1,12,1,106.7385,11.21294,0,0,0,117.9515,0,0,0,5,0,5,78.8,13.73189,0,,0,165,0,0,1.609438,5.105946,0,0,0,0,0,0,75.12392,9.503597,1.609438,4.770273,1 +11,1,0,0,3,128193,0,13406.87,19.10335,1,12,1,98.7715,31.27764,0,0,0,130.0491,0,0,0,7,0,5,78.8,13.73189,0,,0,165,0,0,1.609438,5.105946,0,0,0,0,0,0,75.12392,9.503597,1.609438,4.867912,1 +11,1,0,0,4,128193,0,13406.87,20.10335,1,12,1,53.64631,9.252507,5.287147,0,0,68.18596,0,0,0,4,0,5,78.8,13.73189,0,,0,165,0,0,1.609438,5.105946,0,0,0,0,0,0,75.12392,9.503597,1.609438,4.222239,1 +11,1,0,0,5,128193,0,13406.87,21.10335,1,12,1,57.10713,19.07045,0,0,0,76.17757,0,0,0,5,0,5,78.8,13.73189,0,,0,165,0,0,1.609438,5.105946,0,0,0,0,0,0,75.12392,9.503597,1.609438,4.333067,1 +11,1,0,0,1,128194,0,13406.87,14.54894,1,12,1,0,1.531213,0,0,0,1.531213,0,0,0,0,0,5,62.5,13.73189,0,,0,165,1,1,1.609438,5.105946,0,0,0,0,0,0,75.12392,9.503597,1.609438,.4260603,1 +11,1,0,0,2,128194,0,13406.87,15.54894,1,12,1,180.4367,11.67116,24.78706,0,0,216.8949,0,0,0,8,0,5,62.5,13.73189,0,,0,165,1,1,1.609438,5.105946,0,0,0,0,0,0,75.12392,9.503597,1.609438,5.379413,1 +11,1,0,0,3,128194,0,13406.87,16.54894,1,12,1,85.84766,24.64373,0,0,0,110.4914,0,0,0,4,0,5,62.5,13.73189,0,,0,165,1,1,1.609438,5.105946,0,0,0,0,0,0,75.12392,9.503597,1.609438,4.704938,1 +11,1,0,0,4,128194,0,13406.87,17.54894,1,12,1,11.8505,2.164995,0,0,0,14.0155,0,0,0,1,0,5,62.5,13.73189,0,,0,165,1,1,1.609438,5.105946,0,0,0,0,0,0,75.12392,9.503597,1.609438,2.640164,1 +11,1,0,0,5,128194,0,13406.87,18.54894,1,12,1,59.19133,7.419758,0,0,0,66.61109,0,0,0,4,0,5,62.5,13.73189,0,,0,165,0,0,1.609438,5.105946,0,0,0,0,0,0,75.12392,9.503597,1.609438,4.198871,1 +4,1,100,0,1,128204,1,476.4268,41.74401,1,10,1,41.4311,101.9965,1.277974,0,1356.243,1500.948,1,0,0,1,1,1,61.3,13.73189,1,,211,211,0,0,0,5.351858,1,0,0,0,0,1,60.9457,6.168411,0,7.313852,1 +4,1,100,0,2,128204,1,476.4268,42.74401,1,10,1,140.6199,16.84636,0,0,789.3746,946.8409,1,0,0,11,0,1,61.3,13.73189,1,,211,211,0,0,0,5.351858,1,0,0,0,0,1,60.9457,6.168411,0,6.853131,1 +4,1,100,0,3,128204,1,476.4268,43.74401,1,10,1,39.65602,1.474201,0,0,0,41.13022,0,0,0,1,1,1,61.3,13.73189,1,,211,211,0,0,0,5.351858,1,0,0,0,0,1,60.9457,6.168411,0,3.716743,1 +4,1,100,0,1,128205,1,445.4094,19.66872,0,11,1,0,0,0,0,0,0,0,0,0,0,0,1,73.8,13.73189,0,,75,75,0,0,0,4.317488,1,0,0,1,0,0,57.70424,6.101236,0,,0 +4,1,100,0,2,128205,1,445.4094,20.66872,0,11,1,0,0,0,0,0,0,0,0,0,0,0,1,73.8,13.73189,0,,75,75,0,0,0,4.317488,1,0,0,1,0,0,57.70424,6.101236,0,,0 +4,1,100,0,3,128205,1,445.4094,21.66872,0,11,1,30.46683,0,0,0,783.7444,814.2113,1,0,0,2,0,1,73.8,13.73189,0,,75,75,0,0,0,4.317488,1,0,0,1,0,0,57.70424,6.101236,0,6.70222,1 +7,1,25,1,1,128214,1,9542.002,24.85969,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,56.8,17.4,0,,169,169,0,0,.6931472,5.129899,0,3.258096,6.516193,1,0,0,64.19868,9.163564,.6931472,,0 +7,1,25,1,2,128214,1,9542.002,25.85969,1,12,1,13.60915,0,25.58519,0,0,39.19434,0,0,0,1,0,2,56.8,17.4,0,,169,169,0,0,.6931472,5.129899,0,3.258096,6.516193,1,0,0,64.19868,9.163564,.6931472,3.668532,1 +7,1,25,1,3,128214,1,9542.002,26.85969,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,56.8,17.4,0,,169,169,0,0,.6931472,5.129899,0,3.258096,6.516193,1,0,0,64.19868,9.163564,.6931472,,0 +7,1,25,1,1,128215,1,9542.002,6.078029,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,74.36826,13.73189,0,,169,169,1,1,.6931472,5.129899,0,3.258096,6.516193,1,0,0,82.36971,9.163564,.6931472,,0 +7,1,25,1,2,128215,1,9542.002,7.078029,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,74.36826,13.73189,0,,169,169,1,1,.6931472,5.129899,0,3.258096,6.516193,1,0,0,82.36971,9.163564,.6931472,,0 +7,1,25,1,3,128215,1,9542.002,8.078029,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,74.36826,13.73189,0,,169,169,1,1,.6931472,5.129899,0,3.258096,6.516193,1,0,0,82.36971,9.163564,.6931472,,0 +3,1,100,0,1,128224,1,9542.002,4.750171,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,74.36826,13.73189,.0327869,,137,137,1,1,.6931472,4.919981,1,0,0,0,0,0,74.08566,9.163564,.6931472,,0 +3,1,100,0,1,128225,1,9542.002,23.82478,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,74.36826,13.73189,.12982,,137,137,0,0,.6931472,4.919981,1,0,0,1,0,0,62.46246,9.163564,.6931472,,0 +10,1,50,0,1,128227,1,9542.002,47.39767,1,11,1,0,0,0,0,0,0,0,0,0,0,0,2,74.36826,13.73189,.12982,,179,179,0,0,.6931472,5.187386,0,3.931826,5.880533,1,0,0,60.93108,9.163564,.6931472,,0 +10,1,50,0,2,128227,1,9542.002,48.39767,1,11,1,0,0,0,0,0,0,0,0,0,0,0,2,74.36826,13.73189,.12982,,179,179,0,0,.6931472,5.187386,0,3.931826,5.880533,1,0,0,60.93108,9.163564,.6931472,,0 +10,1,50,0,3,128227,1,9542.002,49.39767,1,11,1,0,0,0,0,0,0,0,0,0,0,0,2,74.36826,13.73189,.12982,,179,179,0,0,.6931472,5.187386,0,3.931826,5.880533,1,0,0,60.93108,9.163564,.6931472,,0 +10,1,50,0,1,128228,1,9542.002,18.73511,0,11,1,9.422851,0,0,0,0,9.422851,0,0,0,1,0,2,85.3,8.7,0,,179,179,0,0,.6931472,5.187386,0,3.931826,5.880533,1,0,0,60.33361,9.163564,.6931472,2.243138,1 +10,1,50,0,2,128228,1,9542.002,19.73511,0,11,1,0,0,0,0,0,0,0,0,0,0,0,2,85.3,8.7,0,,179,179,0,0,.6931472,5.187386,0,3.931826,5.880533,1,0,0,60.33361,9.163564,.6931472,,0 +10,1,50,0,3,128228,1,9542.002,20.73511,0,11,1,0,0,0,0,0,0,0,0,0,0,0,2,85.3,8.7,0,,179,179,0,0,.6931472,5.187386,0,3.931826,5.880533,1,0,0,60.33361,9.163564,.6931472,,0 +11,1,0,0,1,128239,1,1191.067,4.043806,0,10,1,0,0,0,0,0,0,0,0,0,0,0,2,74.36826,13.73189,0,,0,0,1,0,.6931472,0,0,0,0,0,1,0,70.64633,7.083444,.6931472,,0 +11,1,0,0,2,128239,1,1191.067,5.043806,0,10,1,0,0,0,0,0,0,0,0,0,0,0,2,74.36826,13.73189,0,,0,0,1,0,.6931472,0,0,0,0,0,1,0,70.64633,7.083444,.6931472,,0 +11,1,0,0,1,128240,1,1191.067,32.15606,1,10,1,0,0,0,0,0,0,0,0,0,0,0,2,90,13.73189,0,,0,0,0,0,.6931472,0,0,0,0,0,0,0,69.84738,7.083444,.6931472,,0 +11,1,0,0,2,128240,1,1191.067,33.15606,1,10,1,0,0,0,0,0,0,0,0,0,0,0,2,90,13.73189,0,,0,0,0,0,.6931472,0,0,0,0,0,0,0,69.84738,7.083444,.6931472,,0 +6,1,25,0,1,128248,0,14105.46,11.19507,0,12,1,77.59129,2.679623,33.54535,0,0,113.8163,0,0,0,5,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,81.27783,9.554388,1.386294,4.734585,1 +6,1,25,0,2,128248,0,14105.46,12.19507,0,12,1,24.79784,1.078167,35.49326,0,0,61.36927,0,0,0,3,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,81.27783,9.554388,1.386294,4.11691,1 +6,1,25,0,3,128248,0,14105.46,13.19507,0,12,1,61.91646,3.906634,16.68305,0,0,82.50614,0,0,0,6,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,81.27783,9.554388,1.386294,4.412873,1 +6,1,25,0,4,128248,0,14105.46,14.19507,0,12,1,65.63354,38.49134,0,0,0,104.1249,0,0,0,6,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,81.27783,9.554388,1.386294,4.645591,1 +6,1,25,0,5,128248,0,14105.46,15.19507,0,12,1,39.59983,26.2401,0,0,0,65.83994,0,0,0,7,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,81.27783,9.554388,1.386294,4.187227,1 +6,1,25,0,1,128249,0,14105.46,44.66804,0,17,1,79.5053,0,0,0,0,79.5053,0,0,0,2,0,4,82.5,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,76.57204,9.554388,1.386294,4.375823,1 +6,1,25,0,2,128249,0,14105.46,45.66804,0,17,1,120.7547,6.738544,32.95957,0,0,160.4528,0,0,0,5,0,4,82.5,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,76.57204,9.554388,1.386294,5.078,1 +6,1,25,0,3,128249,0,14105.46,46.66804,0,17,1,83.78378,0,28.75676,0,0,112.5405,0,0,0,4,0,4,82.5,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,76.57204,9.554388,1.386294,4.723313,1 +6,1,25,0,4,128249,0,14105.46,47.66804,0,17,1,91.3856,14.17502,0,0,0,105.5606,0,0,0,3,0,4,82.5,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,76.57204,9.554388,1.386294,4.659286,1 +6,1,25,0,5,128249,0,14105.46,48.66804,0,17,1,12.50521,7.169654,23.95998,0,0,43.63485,0,0,0,1,0,4,82.5,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,76.57204,9.554388,1.386294,3.775856,1 +6,1,25,0,1,128250,0,14105.46,14.05886,0,12,1,35.92462,15.34158,0,0,0,51.2662,0,0,0,5,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,82.23705,9.554388,1.386294,3.937032,1 +6,1,25,0,2,128250,0,14105.46,15.05886,0,12,1,88.40971,15.06739,0,0,0,103.4771,0,0,0,4,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,82.23705,9.554388,1.386294,4.63935,1 +6,1,25,0,3,128250,0,14105.46,16.05886,0,12,1,63.88206,18.69779,0,0,0,82.57985,0,0,0,8,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,82.23705,9.554388,1.386294,4.413766,1 +6,1,25,0,4,128250,0,14105.46,17.05886,0,12,1,109.2753,16.45397,0,0,0,125.7293,0,0,0,6,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,82.23705,9.554388,1.386294,4.834131,1 +6,1,25,0,5,128250,0,14105.46,18.05886,0,12,1,22.92622,3.480617,0,0,0,26.40684,0,0,0,3,0,4,74.36826,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,82.23705,9.554388,1.386294,3.273623,1 +6,1,25,0,1,128251,0,14105.46,40.33675,1,12,1,107.7738,49.08716,0,0,0,156.861,0,0,0,8,0,4,82.5,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,77.78014,9.554388,1.386294,5.05536,1 +6,1,25,0,2,128251,0,14105.46,41.33675,1,12,1,191.1051,40.67385,0,0,0,231.779,0,0,0,11,0,4,82.5,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,77.78014,9.554388,1.386294,5.445784,1 +6,1,25,0,3,128251,0,14105.46,42.33675,1,12,1,206.8796,28.74693,0,0,0,235.6265,0,0,0,12,0,4,82.5,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,77.78014,9.554388,1.386294,5.462248,1 +6,1,25,0,4,128251,0,14105.46,43.33675,1,12,1,112.3519,91.53601,0,0,0,203.8879,0,0,0,9,0,4,82.5,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,77.78014,9.554388,1.386294,5.31757,1 +6,1,25,0,5,128251,0,14105.46,44.33675,1,12,1,66.27762,101.5006,24.55606,0,0,192.3343,0,0,0,8,0,4,82.5,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,77.78014,9.554388,1.386294,5.259235,1 +7,1,25,0,1,128265,0,9542.002,53.15263,0,3,1,204.9529,40.71849,290.3416,0,2527.833,3063.846,2,0,0,2,1,1,63.8,13.73189,1,,0,0,0,0,0,0,0,3.258096,0,0,1,0,54.80615,9.163564,0,8.027426,1 +7,1,25,0,2,128265,0,9542.002,54.15263,0,3,1,221.4286,32.41509,0,56.60378,640.6469,894.4905,1,0,3,2,1,1,63.8,13.73189,1,,0,0,0,0,0,0,0,3.258096,0,0,1,0,54.80615,9.163564,0,6.796254,1 +7,1,25,0,3,128265,0,9542.002,55.15263,0,3,1,128.6978,18.28993,0,0,761.2678,908.2556,1,0,0,4,0,1,63.8,13.73189,1,,0,0,0,0,0,0,0,3.258096,0,0,1,0,54.80615,9.163564,0,6.811526,1 +7,1,25,0,4,128265,0,9542.002,56.15263,0,3,1,373.6372,38.15406,0,0,1635.72,2047.511,1,0,0,4,0,1,63.8,13.73189,1,,0,0,0,0,0,0,0,3.258096,0,0,1,0,54.80615,9.163564,0,7.624381,1 +7,1,25,0,5,128265,0,9542.002,57.15263,0,3,1,307.0488,142.8095,0,0,1835.511,2285.369,3,0,0,7,0,1,63.8,13.73189,1,,0,0,0,0,0,0,0,3.258096,0,0,1,0,54.80615,9.163564,0,7.734283,1 +6,1,25,0,1,128267,1,9542.002,55.04996,1,13,1,333.3333,198.828,0,0,0,532.1614,0,0,0,20,0,1,81.3,13.73189,1,,182,259,0,0,0,5.556828,0,3.258096,6.590301,0,1,0,63.87963,9.163564,0,6.276947,1 +3,1,100,0,1,128268,0,1094.293,59.8193,1,12,1,22.9682,0,22.50883,0,0,45.47703,0,0,0,2,0,1,92.5,13.73189,0,,127,127,0,0,0,4.844187,1,0,0,1,0,0,68.38589,6.998777,0,3.817207,1 +3,1,100,0,2,128268,0,1094.293,60.8193,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,92.5,13.73189,0,,127,127,0,0,0,4.844187,1,0,0,1,0,0,68.38589,6.998777,0,,0 +2,1,100,1,1,128302,1,9276.055,35.74812,0,12,1,0,5.936942,0,0,0,5.936942,0,0,0,0,0,5,75.8,8.7,0,,650,650,0,0,1.609438,6.476973,1,0,0,0,0,0,73.78603,9.1353,1.609438,1.781194,1 +2,1,100,1,2,128302,1,9276.055,36.74812,0,12,1,87.6429,24.61622,0,0,0,112.2591,0,0,0,4,1,5,75.8,8.7,0,,650,650,0,0,1.609438,6.476973,1,0,0,0,0,0,73.78603,9.1353,1.609438,4.72081,1 +2,1,100,1,3,128302,1,9276.055,37.74812,0,12,1,4.955401,0,0,0,0,4.955401,0,0,0,1,0,5,75.8,8.7,0,,650,650,0,0,1.609438,6.476973,1,0,0,0,0,0,73.78603,9.1353,1.609438,1.600478,1 +2,1,100,1,4,128302,1,9276.055,38.74812,0,12,1,11.93208,9.325378,0,0,0,21.25746,0,0,0,2,0,5,75.8,8.7,0,,650,650,0,0,1.609438,6.476973,1,0,0,0,0,0,73.78603,9.1353,1.609438,3.056708,1 +2,1,100,1,5,128302,1,9276.055,39.74812,0,12,1,126.7985,0,0,0,0,126.7985,0,0,0,3,0,5,75.8,8.7,0,,650,650,0,0,1.609438,6.476973,1,0,0,0,0,0,73.78603,9.1353,1.609438,4.842599,1 +2,1,100,1,1,128303,1,9276.055,34.69131,1,12,1,57.10886,8.120167,0,0,0,65.22903,0,0,0,8,0,5,87.4,8.7,0,,650,650,0,0,1.609438,6.476973,1,0,0,0,0,0,73.93718,9.1353,1.609438,4.177905,1 +2,1,100,1,2,128303,1,9276.055,35.69131,1,12,1,34.29505,15.73217,0,0,0,50.02722,0,0,0,5,0,5,87.4,8.7,0,,650,650,0,0,1.609438,6.476973,1,0,0,0,0,0,73.93718,9.1353,1.609438,3.912567,1 +2,1,100,1,3,128303,1,9276.055,36.69131,1,12,1,81.88801,8.369673,0,0,0,90.25768,0,0,0,4,0,5,87.4,8.7,0,,650,650,0,0,1.609438,6.476973,1,0,0,0,0,0,73.93718,9.1353,1.609438,4.502669,1 +2,1,100,1,4,128303,1,9276.055,37.69131,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,87.4,8.7,0,,650,650,0,0,1.609438,6.476973,1,0,0,0,0,0,73.93718,9.1353,1.609438,,0 +2,1,100,1,5,128303,1,9276.055,38.69131,1,12,1,16.82793,5.982331,0,0,0,22.81026,0,0,0,2,0,5,87.4,8.7,0,,650,650,0,0,1.609438,6.476973,1,0,0,0,0,0,73.93718,9.1353,1.609438,3.127211,1 +2,1,100,1,1,128304,1,9276.055,4.062971,0,12,1,53.21237,6.20464,0,0,0,59.41702,0,0,0,3,1,5,74.36826,13.73189,0,,650,650,1,0,1.609438,6.476973,1,0,0,0,0,0,76.88281,9.1353,1.609438,4.08458,1 +2,1,100,1,2,128304,1,9276.055,5.062971,0,12,1,4.899292,0,0,0,222.4551,227.3544,1,0,0,1,0,5,74.36826,13.73189,0,,650,650,1,0,1.609438,6.476973,1,0,0,0,0,0,76.88281,9.1353,1.609438,5.42651,1 +2,1,100,1,3,128304,1,9276.055,6.062971,0,12,1,6.442022,0,0,0,0,6.442022,0,0,0,1,0,5,74.36826,13.73189,0,,650,650,1,0,1.609438,6.476973,1,0,0,0,0,0,76.88281,9.1353,1.609438,1.862842,1 +2,1,100,1,4,128304,1,9276.055,7.062971,0,12,1,0,3.822855,0,0,0,3.822855,0,0,0,0,0,5,74.36826,13.73189,0,,650,650,1,0,1.609438,6.476973,1,0,0,0,0,0,76.88281,9.1353,1.609438,1.340997,1 +2,1,100,1,5,128304,1,9276.055,8.06297,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,650,650,1,0,1.609438,6.476973,1,0,0,0,0,0,76.88281,9.1353,1.609438,,0 +2,1,100,1,1,128305,1,9276.055,11.26899,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,650,650,1,1,1.609438,6.476973,1,0,0,0,0,0,78.84123,9.1353,1.609438,,0 +2,1,100,1,2,128305,1,9276.055,12.26899,1,12,1,14.15351,3.369624,0,0,0,17.52314,0,0,0,1,0,5,74.36826,13.73189,0,,650,650,1,1,1.609438,6.476973,1,0,0,0,0,0,78.84123,9.1353,1.609438,2.863522,1 +2,1,100,1,3,128305,1,9276.055,13.26899,1,12,1,4.955401,0,0,0,0,4.955401,0,0,0,1,0,5,74.36826,13.73189,0,,650,650,1,1,1.609438,6.476973,1,0,0,0,0,0,78.84123,9.1353,1.609438,1.600478,1 +2,1,100,1,4,128305,1,9276.055,14.26899,1,12,1,41.50987,0,0,0,0,41.50987,0,0,0,2,0,5,74.36826,13.73189,0,,650,650,1,1,1.609438,6.476973,1,0,0,0,0,0,78.84123,9.1353,1.609438,3.725931,1 +2,1,100,1,5,128305,1,9276.055,15.26899,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,650,650,1,1,1.609438,6.476973,1,0,0,0,0,0,78.84123,9.1353,1.609438,,0 +2,1,100,1,1,128306,1,9276.055,8.125941,1,12,1,23.20048,0,13.68233,0,0,36.88281,0,0,0,3,0,5,74.36826,13.73189,0,,650,650,1,1,1.609438,6.476973,1,0,0,0,0,0,78.84123,9.1353,1.609438,3.607746,1 +2,1,100,1,2,128306,1,9276.055,9.125941,1,12,1,14.69788,0,32.99401,0,0,47.69189,0,0,0,2,0,5,74.36826,13.73189,0,,650,650,1,1,1.609438,6.476973,1,0,0,0,0,0,78.84123,9.1353,1.609438,3.864761,1 +2,1,100,1,3,128306,1,9276.055,10.12594,1,12,1,7.928642,0,0,0,0,7.928642,0,0,0,1,0,5,74.36826,13.73189,0,,650,650,1,1,1.609438,6.476973,1,0,0,0,0,0,78.84123,9.1353,1.609438,2.070482,1 +2,1,100,1,4,128306,1,9276.055,11.12594,1,12,1,37.76962,2.134007,28.75172,0,0,68.65535,0,0,0,4,0,5,74.36826,13.73189,0,,650,650,1,1,1.609438,6.476973,1,0,0,0,0,0,78.84123,9.1353,1.609438,4.229099,1 +2,1,100,1,5,128306,1,9276.055,12.12594,1,12,1,5.04838,.8960875,0,0,0,5.944468,0,0,0,1,0,5,74.36826,13.73189,0,,650,650,1,1,1.609438,6.476973,1,0,0,0,0,0,78.84123,9.1353,1.609438,1.782461,1 +1,1,0,1,1,128326,0,11965.26,35.28542,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,83.2,21.7,0,,450,120,0,0,1.386294,4.787492,1,0,0,0,0,0,78.30748,9.389847,1.386294,,0 +1,1,0,1,2,128326,0,11965.26,36.28542,0,16,1,13.60915,0,0,0,0,13.60915,0,0,0,1,0,4,83.2,21.7,0,,450,120,0,0,1.386294,4.787492,1,0,0,0,0,0,78.30748,9.389847,1.386294,2.610742,1 +1,1,0,1,3,128326,0,11965.26,37.28542,0,16,1,29.23687,0,0,0,0,29.23687,0,0,0,1,0,4,83.2,21.7,0,,450,120,0,0,1.386294,4.787492,1,0,0,0,0,0,78.30748,9.389847,1.386294,3.375431,1 +1,1,0,1,4,128326,0,11965.26,38.28542,0,16,1,0,0,22.00551,0,0,22.00551,0,0,0,0,0,4,83.2,21.7,0,,450,120,0,0,1.386294,4.787492,1,0,0,0,0,0,78.30748,9.389847,1.386294,3.091293,1 +1,1,0,1,5,128326,0,11965.26,39.28542,0,16,1,69.83593,5.107278,0,0,0,74.94321,0,0,0,2,0,5,83.2,21.7,0,,450,120,0,0,1.609438,4.787492,1,0,0,0,0,0,78.30748,9.389847,1.609438,4.31673,1 +1,1,0,1,1,128327,0,11965.26,33.0924,1,15,1,0,0,0,0,0,0,0,0,0,0,0,4,72.6,0,0,,450,120,0,0,1.386294,4.787492,1,0,0,0,0,0,79.98129,9.389847,1.386294,,0 +1,1,0,1,2,128327,0,11965.26,34.0924,1,15,1,0,0,0,0,0,0,0,0,0,0,0,4,72.6,0,0,,450,120,0,0,1.386294,4.787492,1,0,0,0,0,0,79.98129,9.389847,1.386294,,0 +1,1,0,1,3,128327,0,11965.26,35.0924,1,15,1,0,0,0,0,0,0,0,0,0,0,0,4,72.6,0,0,,450,120,0,0,1.386294,4.787492,1,0,0,0,0,0,79.98129,9.389847,1.386294,,0 +1,1,0,1,4,128327,0,11965.26,36.0924,1,15,1,17.66866,20.21569,0,0,1247.728,1285.613,1,0,0,0,0,4,72.6,0,0,,450,120,0,0,1.386294,4.787492,1,0,0,0,0,0,79.98129,9.389847,1.386294,7.158991,1 +1,1,0,1,5,128327,0,11965.26,37.0924,1,15,1,9.570888,3.819941,0,0,0,13.39083,0,0,0,1,0,5,72.6,0,0,,450,120,0,0,1.609438,4.787492,1,0,0,0,0,0,79.98129,9.389847,1.609438,2.59457,1 +1,1,0,1,1,128328,0,11965.26,3.115674,1,15,1,9.518144,0,0,0,0,9.518144,0,0,0,1,0,4,74.36826,13.73189,0,,450,120,1,1,1.386294,4.787492,1,0,0,0,0,0,81.84772,9.389847,1.386294,2.2532,1 +1,1,0,1,2,128328,0,11965.26,4.115674,1,15,1,9.798585,0,0,0,0,9.798585,0,0,0,1,0,4,74.36826,13.73189,0,,450,120,1,1,1.386294,4.787492,1,0,0,0,0,0,81.84772,9.389847,1.386294,2.282238,1 +1,1,0,1,3,128328,0,11965.26,5.115674,1,15,1,13.37958,0,0,0,0,13.37958,0,0,0,1,0,4,74.36826,13.73189,0,,450,120,1,1,1.386294,4.787492,1,0,0,0,0,0,81.84772,9.389847,1.386294,2.59373,1 +1,1,0,1,4,128328,0,11965.26,6.115674,1,15,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,450,120,1,1,1.386294,4.787492,1,0,0,0,0,0,81.84772,9.389847,1.386294,,0 +1,1,0,1,5,128328,0,11965.26,7.115674,1,15,1,55.88978,0,0,0,0,55.88978,0,0,0,3,0,5,74.36826,13.73189,0,,450,120,1,1,1.609438,4.787492,1,0,0,0,0,0,81.84772,9.389847,1.609438,4.023382,1 +1,1,0,1,1,128329,0,11965.26,9.319644,0,15,1,50.2677,0,0,0,0,50.2677,0,0,0,2,1,4,74.36826,13.73189,0,,450,120,1,0,1.386294,4.787492,1,0,0,0,0,0,85.79333,9.389847,1.386294,3.917363,1 +1,1,0,1,2,128329,0,11965.26,10.31964,0,15,1,14.15351,0,0,0,0,14.15351,0,0,0,1,0,4,74.36826,13.73189,0,,450,120,1,0,1.386294,4.787492,1,0,0,0,0,0,85.79333,9.389847,1.386294,2.649963,1 +1,1,0,1,3,128329,0,11965.26,11.31964,0,15,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,450,120,1,0,1.386294,4.787492,1,0,0,0,0,0,85.79333,9.389847,1.386294,,0 +1,1,0,1,4,128329,0,11965.26,12.31964,0,15,1,22.3497,0,1.032584,0,0,23.38229,0,0,0,1,0,4,74.36826,13.73189,0,,450,120,1,0,1.386294,4.787492,1,0,0,0,0,0,85.79333,9.389847,1.386294,3.151979,1 +1,1,0,1,5,128329,0,11965.26,13.31964,0,15,1,99.01556,0,3.828355,0,0,102.8439,0,0,0,4,0,5,74.36826,13.73189,0,,450,120,1,0,1.609438,4.787492,1,0,0,0,0,0,85.79333,9.389847,1.609438,4.633213,1 +5,1,25,1,1,128360,0,13322.58,33.62628,0,16,1,11.89768,0,15.27662,0,0,27.1743,0,0,0,0,1,7,89.5,4.3,0,,964,964,0,0,1.94591,6.871091,0,3.258096,8.257385,0,0,0,79.16077,9.497291,1.94591,3.302272,1 +5,1,25,1,2,128360,0,13322.58,34.62628,0,16,1,0,0,0,0,0,0,0,0,0,0,0,7,89.5,4.3,0,,964,964,0,0,1.94591,6.871091,0,3.258096,8.257385,0,0,0,79.16077,9.497291,1.94591,,0 +5,1,25,1,3,128360,0,13322.58,35.62628,0,16,1,47.57185,30.00496,0,0,0,77.57681,0,0,0,5,1,7,89.5,4.3,0,,964,964,0,0,1.94591,6.871091,0,3.258096,8.257385,0,0,0,79.16077,9.497291,1.94591,4.351268,1 +5,1,25,1,1,128361,0,13322.58,7.008898,0,16,1,22.60559,8.774539,0,0,0,31.38013,0,0,0,4,0,7,74.36826,13.73189,0,,964,964,1,0,1.94591,6.871091,0,3.258096,8.257385,0,0,0,86.65917,9.497291,1.94591,3.446175,1 +5,1,25,1,2,128361,0,13322.58,8.008898,0,16,1,9.254219,0,0,0,0,9.254219,0,0,0,2,0,7,74.36826,13.73189,0,,964,964,1,0,1.94591,6.871091,0,3.258096,8.257385,0,0,0,86.65917,9.497291,1.94591,2.22508,1 +5,1,25,1,3,128361,0,13322.58,9.008898,0,16,1,11.39742,0,0,0,0,11.39742,0,0,0,1,0,7,74.36826,13.73189,0,,964,964,1,0,1.94591,6.871091,0,3.258096,8.257385,0,0,0,86.65917,9.497291,1.94591,2.433387,1 +5,1,25,1,1,128362,0,13322.58,5.713894,0,16,1,14.8721,3.997621,0,0,0,18.86972,0,0,0,2,0,7,74.36826,13.73189,0,,964,964,1,0,1.94591,6.871091,0,3.258096,8.257385,0,0,0,86.65917,9.497291,1.94591,2.937559,1 +5,1,25,1,2,128362,0,13322.58,6.713894,0,16,1,43.0049,0,0,0,0,43.0049,0,0,0,1,4,7,74.36826,13.73189,0,,964,964,1,0,1.94591,6.871091,0,3.258096,8.257385,0,0,0,86.65917,9.497291,1.94591,3.761314,1 +5,1,25,1,3,128362,0,13322.58,7.713894,0,16,1,30.72349,3.528246,0,0,0,34.25174,0,0,0,2,3,7,74.36826,13.73189,0,,964,964,1,0,1.94591,6.871091,0,3.258096,8.257385,0,0,0,86.65917,9.497291,1.94591,3.533737,1 +5,1,25,1,1,128363,0,13322.58,4.654346,0,16,1,35.99048,5.48483,0,0,293.8132,335.2885,1,0,0,1,1,7,74.36826,13.73189,1,,964,964,1,0,1.94591,6.871091,0,3.258096,8.257385,0,0,0,83.22755,9.497291,1.94591,5.814991,1 +5,1,25,1,2,128363,0,13322.58,5.654346,0,16,1,13.06478,1.475231,0,0,0,14.54001,0,0,0,2,0,7,74.36826,13.73189,1,,964,964,1,0,1.94591,6.871091,0,3.258096,8.257385,0,0,0,83.22755,9.497291,1.94591,2.676904,1 +5,1,25,1,3,128363,0,13322.58,6.654346,0,16,1,6.442022,0,0,0,0,6.442022,0,0,0,1,0,7,74.36826,13.73189,1,,964,964,1,0,1.94591,6.871091,0,3.258096,8.257385,0,0,0,83.22755,9.497291,1.94591,1.862842,1 +5,1,25,1,1,128364,0,13322.58,30.62286,1,16,1,39.55978,5.841761,0,0,0,45.40155,0,0,0,2,0,7,87.4,13,0,,964,964,0,0,1.94591,6.871091,0,3.258096,8.257385,0,0,0,76.06387,9.497291,1.94591,3.815546,1 +5,1,25,1,2,128364,0,13322.58,31.62286,1,16,1,13.60915,0,0,0,0,13.60915,0,0,0,1,0,7,87.4,13,0,,964,964,0,0,1.94591,6.871091,0,3.258096,8.257385,0,0,0,76.06387,9.497291,1.94591,2.610742,1 +5,1,25,1,3,128364,0,13322.58,32.62286,1,16,1,12.3885,0,0,0,0,12.3885,0,0,0,1,0,7,87.4,13,0,,964,964,0,0,1.94591,6.871091,0,3.258096,8.257385,0,0,0,76.06387,9.497291,1.94591,2.516769,1 +5,1,25,1,1,128365,0,13322.58,.9117043,1,16,1,39.85723,0,0,0,0,39.85723,0,0,0,6,0,7,74.36826,13.73189,0,,964,964,1,1,1.94591,6.871091,0,3.258096,8.257385,0,0,0,82.71357,9.497291,1.94591,3.685304,1 +5,1,25,1,2,128365,0,13322.58,1.911704,1,16,1,9.254219,0,0,0,0,9.254219,0,0,0,1,0,7,74.36826,13.73189,0,,964,964,1,1,1.94591,6.871091,0,3.258096,8.257385,0,0,0,82.71357,9.497291,1.94591,2.22508,1 +5,1,25,1,3,128365,0,13322.58,2.911704,1,16,1,7.928642,0,0,0,0,7.928642,0,0,0,1,0,7,74.36826,13.73189,0,,964,964,1,1,1.94591,6.871091,0,3.258096,8.257385,0,0,0,82.71357,9.497291,1.94591,2.070482,1 +5,1,25,1,1,128366,0,13322.58,3.389459,0,16,1,116.2998,2.082094,0,0,143.0696,261.4515,1,0,0,4,1,7,74.36826,13.73189,0,,964,964,1,0,1.94591,6.871091,0,3.258096,8.257385,0,0,0,83.22755,9.497291,1.94591,5.566249,1 +5,1,25,1,2,128366,0,13322.58,4.389459,0,16,1,7.076756,0,0,0,0,7.076756,0,0,0,1,0,7,74.36826,13.73189,0,,964,964,1,0,1.94591,6.871091,0,3.258096,8.257385,0,0,0,83.22755,9.497291,1.94591,1.956816,1 +5,1,25,1,3,128366,0,13322.58,5.389459,0,16,1,8.424182,0,0,0,0,8.424182,0,0,0,1,0,7,74.36826,13.73189,0,,964,964,1,0,1.94591,6.871091,0,3.258096,8.257385,0,0,0,83.22755,9.497291,1.94591,2.131106,1 +5,1,25,0,1,128383,0,16140.09,46.6256,1,13,1,7.067138,17.55006,0,0,0,24.6172,0,0,0,1,0,3,85.3,13,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,67.22846,9.689123,1.098612,3.203445,1 +5,1,25,0,2,128383,0,16140.09,47.6256,1,13,1,6.469003,9.757412,0,0,0,16.22642,0,0,0,1,0,3,85.3,13,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,67.22846,9.689123,1.098612,2.78664,1 +5,1,25,0,3,128383,0,16140.09,48.6256,1,13,1,21.62162,15.74939,33.89189,0,0,71.2629,0,0,0,2,0,3,85.3,13,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,67.22846,9.689123,1.098612,4.266376,1 +5,1,25,0,1,128384,0,16140.09,18.68309,0,12,1,0,5.182568,30.59482,0,0,35.77739,0,0,0,0,0,3,73.7,17.4,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,78.88491,9.689123,1.098612,3.577316,1 +5,1,25,0,2,128384,0,16140.09,19.68309,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,73.7,17.4,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,78.88491,9.689123,1.098612,,0 +5,1,25,0,3,128384,0,16140.09,20.68309,0,12,1,22.11302,0,25.16462,0,0,47.27764,0,0,0,1,0,3,73.7,17.4,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,78.88491,9.689123,1.098612,3.856037,1 +5,1,25,0,1,128385,0,16140.09,52.03012,0,12,1,51.23675,73.16843,0,0,0,124.4052,0,0,0,4,0,3,87.4,17.4,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,63.23641,9.689123,1.098612,4.823544,1 +5,1,25,0,2,128385,0,16140.09,53.03012,0,12,1,45.8221,73.8814,39.40701,0,0,159.1105,0,0,0,3,0,3,87.4,17.4,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,63.23641,9.689123,1.098612,5.069599,1 +5,1,25,0,3,128385,0,16140.09,54.03012,0,12,1,43.24324,103.0713,22.08354,0,0,168.398,0,0,0,2,0,3,87.4,17.4,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,63.23641,9.689123,1.098612,5.12633,1 +11,1,0,1,1,128411,0,9645.161,10.0178,0,12,1,76.14515,9.613325,0,0,0,85.75848,0,0,0,3,1,4,74.36826,13.73189,0,,0,233,1,0,1.386294,5.451038,0,0,0,0,0,0,85.65124,9.174315,1.386294,4.451535,1 +11,1,0,1,2,128411,0,9645.161,11.0178,0,12,1,44.638,3.135547,0,0,0,47.77354,0,0,0,6,1,4,74.36826,13.73189,0,,0,233,1,0,1.386294,5.451038,0,0,0,0,0,0,85.65124,9.174315,1.386294,3.866472,1 +11,1,0,1,3,128411,0,9645.161,12.0178,0,12,1,27.75025,5.673934,0,0,0,33.42418,0,0,0,3,0,4,74.36826,13.73189,0,,0,233,1,0,1.386294,5.451038,0,0,0,0,0,0,85.65124,9.174315,1.386294,3.50928,1 +11,1,0,1,4,128411,0,9645.161,13.0178,0,12,1,56.67738,0,0,0,0,56.67738,0,0,0,4,1,4,74.36826,13.73189,0,,0,233,1,0,1.386294,5.451038,0,0,0,0,0,0,85.65124,9.174315,1.386294,4.037375,1 +11,1,0,1,5,128411,0,9645.161,14.0178,0,12,1,75.72571,12.25494,0,0,0,87.98064,0,0,0,6,0,4,74.36826,13.73189,0,,0,233,1,0,1.386294,5.451038,0,0,0,0,0,0,85.65124,9.174315,1.386294,4.477117,1 +11,1,0,1,1,128412,0,9645.161,45.86448,1,12,1,75.49078,74.17014,11.8144,0,0,161.4753,0,0,0,4,0,4,76.8,13,0,,0,233,0,0,1.386294,5.451038,0,0,0,0,0,0,77.59435,9.174315,1.386294,5.084352,1 +11,1,0,1,2,128412,0,9645.161,46.86448,1,12,1,109.4175,106.0425,31.29015,0,0,246.7501,0,0,0,10,1,4,76.8,13,0,,0,233,0,0,1.386294,5.451038,0,0,0,0,0,0,77.59435,9.174315,1.386294,5.508376,1 +11,1,0,1,3,128412,0,9645.161,47.86448,1,12,1,103.0723,32.41328,0,0,0,135.4856,0,0,0,3,0,4,76.8,13,0,,0,233,0,0,1.386294,5.451038,0,0,0,0,0,0,77.59435,9.174315,1.386294,4.908865,1 +11,1,0,1,4,128412,0,9645.161,48.86448,1,12,1,83.98348,39.02249,47.47591,0,0,170.4819,0,0,0,7,1,4,76.8,13,0,,0,233,0,0,1.386294,5.451038,0,0,0,0,0,0,77.59435,9.174315,1.386294,5.138629,1 +11,1,0,1,5,128412,0,9645.161,49.86448,1,12,1,53.84939,105.7089,0,0,414.6992,574.2574,1,0,0,5,0,4,76.8,13,0,,0,233,0,0,1.386294,5.451038,0,0,0,0,0,0,77.59435,9.174315,1.386294,6.353078,1 +11,1,0,1,1,128413,0,9645.161,8.123203,0,12,1,49.97026,49.26829,0,0,0,99.23855,0,0,0,5,0,4,74.36826,13.73189,0,,0,233,1,0,1.386294,5.451038,0,0,0,0,0,0,84.69201,9.174315,1.386294,4.597527,1 +11,1,0,1,2,128413,0,9645.161,9.123203,0,12,1,53.34785,60.31573,28.44311,0,0,142.1067,0,0,0,3,4,4,74.36826,13.73189,0,,0,233,1,0,1.386294,5.451038,0,0,0,0,0,0,84.69201,9.174315,1.386294,4.956578,1 +11,1,0,1,3,128413,0,9645.161,10.1232,0,12,1,58.47374,63.35976,0,0,0,121.8335,0,0,0,5,3,4,74.36826,13.73189,0,,0,233,1,0,1.386294,5.451038,0,0,0,0,0,0,84.69201,9.174315,1.386294,4.802655,1 +11,1,0,1,4,128413,0,9645.161,11.1232,0,12,1,21.1106,29.25195,0,0,0,50.36255,0,0,0,2,1,4,74.36826,13.73189,0,,0,233,1,0,1.386294,5.451038,0,0,0,0,0,0,84.69201,9.174315,1.386294,3.919248,1 +11,1,0,1,5,128413,0,9645.161,12.1232,0,12,1,34.91796,30.53008,0,0,0,65.44804,0,0,0,4,1,4,74.36826,13.73189,0,,0,233,1,0,1.386294,5.451038,0,0,0,0,0,0,84.69201,9.174315,1.386294,4.181257,1 +11,1,0,1,1,128414,0,9645.161,43.7755,0,16,1,137.4182,34.33076,0,0,0,171.749,0,0,0,4,0,4,94.7,4.3,0,,0,233,0,0,1.386294,5.451038,0,0,0,0,0,0,77.32689,9.174315,1.386294,5.146034,1 +11,1,0,1,2,128414,0,9645.161,44.7755,0,16,1,188.8949,33.78879,0,0,0,222.6837,0,0,0,7,0,4,94.7,4.3,0,,0,233,0,0,1.386294,5.451038,0,0,0,0,0,0,77.32689,9.174315,1.386294,5.405753,1 +11,1,0,1,3,128414,0,9645.161,45.7755,0,16,1,282.4579,30.66402,21.23389,0,0,334.3558,0,0,0,6,1,4,94.7,4.3,0,,0,233,0,0,1.386294,5.451038,0,0,0,0,0,0,77.32689,9.174315,1.386294,5.812206,1 +11,1,0,1,4,128414,0,9645.161,46.7755,0,16,1,293.2538,49.88527,0,0,0,343.1391,0,0,0,12,0,4,94.7,4.3,0,,0,233,0,0,1.386294,5.451038,0,0,0,0,0,0,77.32689,9.174315,1.386294,5.838136,1 +11,1,0,1,5,128414,0,9645.161,47.7755,0,16,1,21.87631,31.66597,0,0,0,53.54228,0,0,0,1,0,4,94.7,4.3,0,,0,233,0,0,1.386294,5.451038,0,0,0,0,0,0,77.32689,9.174315,1.386294,3.980472,1 +2,1,100,1,1,128431,0,5694.789,27.08008,1,7,1,92.92566,50.67746,32.57794,0,306.1631,482.3441,1,0,0,13,1,5,66.3,34.8,1,,594,594,0,0,1.609438,6.386879,1,0,0,0,1,0,52.32401,8.647483,1.609438,6.178658,1 +2,1,100,1,2,128431,0,5694.789,28.08008,1,7,1,117.1961,28.75137,0,0,0,145.9474,0,0,0,5,0,5,66.3,34.8,1,,594,594,0,0,1.609438,6.386879,1,0,0,0,1,0,52.32401,8.647483,1.609438,4.983246,1 +2,1,100,1,3,128431,0,5694.789,29.08008,1,7,1,17.45636,9.900249,26.58354,0,0,53.94015,0,0,0,1,1,5,66.3,34.8,1,,594,594,0,0,1.609438,6.386879,1,0,0,0,1,0,52.32401,8.647483,1.609438,3.987875,1 +2,1,100,1,1,128432,0,5694.789,7.937029,0,7,1,10.79137,7.847722,0,0,0,18.63909,0,0,0,1,0,5,74.36826,13.73189,0,,594,594,1,0,1.609438,6.386879,1,0,0,0,1,0,59.21023,8.647483,1.609438,2.925261,1 +2,1,100,1,2,128432,0,5694.789,8.93703,0,7,1,60.24096,4.156627,0,0,2155.75,2220.148,2,0,0,6,0,5,74.36826,13.73189,0,,594,594,1,0,1.609438,6.386879,1,0,0,0,1,0,59.21023,8.647483,1.609438,7.705329,1 +2,1,100,1,3,128432,0,5694.789,9.93703,0,7,1,555.3616,7.845387,0,0,2160.798,2724.005,2,0,0,7,2,5,74.36826,13.73189,0,,594,594,1,0,1.609438,6.386879,1,0,0,0,1,0,59.21023,8.647483,1.609438,7.909858,1 +2,1,100,1,1,128433,0,5694.789,10.80356,0,7,1,20.38369,1.193046,26.97842,0,0,48.55516,0,0,0,1,2,5,74.36826,13.73189,0,,594,594,1,0,1.609438,6.386879,1,0,0,0,1,0,63.0433,8.647483,1.609438,3.8827,1 +2,1,100,1,2,128433,0,5694.789,11.80356,0,7,1,50.38335,3.214677,0,0,0,53.59803,0,0,0,3,0,5,74.36826,13.73189,0,,594,594,1,0,1.609438,6.386879,1,0,0,0,1,0,63.0433,8.647483,1.609438,3.981512,1 +2,1,100,1,3,128433,0,5694.789,12.80356,0,7,1,30.1995,8.249376,0,0,358.9526,397.4015,1,0,0,2,0,5,74.36826,13.73189,0,,594,594,1,0,1.609438,6.386879,1,0,0,0,1,0,63.0433,8.647483,1.609438,5.984947,1 +2,1,100,1,1,128434,0,5694.789,4.172484,0,7,1,49.46043,12.11031,0,0,0,61.57074,0,0,0,4,1,5,74.36826,13.73189,0,,594,594,1,0,1.609438,6.386879,1,0,0,0,0,0,75.11046,8.647483,1.609438,4.120187,1 +2,1,100,1,2,128434,0,5694.789,5.172484,0,7,1,98.35706,5.219058,0,0,0,103.5761,0,0,0,6,0,5,74.36826,13.73189,0,,594,594,1,0,1.609438,6.386879,1,0,0,0,0,0,75.11046,8.647483,1.609438,4.640307,1 +2,1,100,1,3,128434,0,5694.789,6.172484,0,7,1,20.94763,7.246883,0,0,0,28.19451,0,0,0,2,0,5,74.36826,13.73189,0,,594,594,1,0,1.609438,6.386879,1,0,0,0,0,0,75.11046,8.647483,1.609438,3.339127,1 +2,1,100,1,1,128435,0,5694.789,32.46544,0,12,1,185.7014,3.219424,0,0,0,188.9209,0,0,0,2,0,5,65.3,17.4,0,,594,594,0,0,1.609438,6.386879,1,0,0,1,0,0,70.86124,8.647483,1.609438,5.241328,1 +2,1,100,1,2,128435,0,5694.789,33.46544,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,65.3,17.4,0,,594,594,0,0,1.609438,6.386879,1,0,0,1,0,0,70.86124,8.647483,1.609438,,0 +2,1,100,1,3,128435,0,5694.789,34.46544,0,12,1,18.95262,2.049875,0,0,0,21.00249,0,0,0,1,0,5,65.3,17.4,0,,594,594,0,0,1.609438,6.386879,1,0,0,1,0,0,70.86124,8.647483,1.609438,3.044641,1 +11,1,0,1,1,128438,0,14655.34,47.23614,1,12,1,89.32854,307.9616,39.47842,0,0,436.7686,0,0,0,6,1,3,46.3,13,0,,0,329,0,0,1.098612,5.796058,0,0,0,0,0,0,78.72062,9.592628,1.098612,6.079403,1 +11,1,0,1,2,128438,0,14655.34,48.23614,1,12,1,0,304.2169,0,0,0,304.2169,0,0,0,0,0,3,46.3,13,0,,0,329,0,0,1.098612,5.796058,0,0,0,0,0,0,78.72062,9.592628,1.098612,5.717741,1 +11,1,0,1,3,128438,0,14655.34,49.23614,1,12,1,14.96259,64.68828,16.6783,0,0,96.32918,0,0,0,1,1,3,46.3,13,0,,0,329,0,0,1.098612,5.796058,0,0,0,0,0,0,78.72062,9.592628,1.098612,4.567771,1 +11,1,0,1,4,128438,0,14655.34,50.23614,1,12,1,51.6367,44.92854,0,0,0,96.56524,0,0,0,3,1,3,46.3,13,0,,0,329,0,0,1.098612,5.796058,0,0,0,0,0,0,78.72062,9.592628,1.098612,4.570219,1 +11,1,0,1,5,128438,0,14655.34,51.23614,1,12,1,101.1426,62.95387,25.20525,0,451.3161,640.6179,1,0,0,2,0,3,46.3,13,0,,0,329,0,0,1.098612,5.796058,0,0,0,0,0,0,78.72062,9.592628,1.098612,6.462433,1 +11,1,0,1,1,128439,0,14655.34,18.45311,1,12,1,11.99041,0,29.73022,0,0,41.72062,0,0,0,0,1,3,65.3,4.3,0,,0,329,0,0,1.098612,5.796058,0,0,0,0,0,0,79.76731,9.592628,1.098612,3.730996,1 +11,1,0,1,2,128439,0,14655.34,19.45311,1,12,1,31.21577,5.969332,0,0,0,37.1851,0,0,0,4,0,3,65.3,4.3,0,,0,329,0,0,1.098612,5.796058,0,0,0,0,0,0,79.76731,9.592628,1.098612,3.615908,1 +11,1,0,1,3,128439,0,14655.34,20.45311,1,12,1,40.399,15.12219,24.0798,0,0,79.601,0,0,0,3,1,3,65.3,4.3,0,,0,329,0,0,1.098612,5.796058,0,0,0,0,0,0,79.76731,9.592628,1.098612,4.377027,1 +11,1,0,1,4,128439,0,14655.34,21.45311,1,12,1,22.59105,57.13232,0,0,0,79.72337,0,0,0,3,0,3,65.3,4.3,0,,0,329,0,0,1.098612,5.796058,0,0,0,0,0,0,79.76731,9.592628,1.098612,4.378563,1 +11,1,0,1,5,128439,0,14655.34,22.45311,1,12,1,28.35379,37.93906,27.08845,0,0,93.38129,0,0,0,2,1,3,65.3,4.3,0,,0,329,0,0,1.098612,5.796058,0,0,0,0,0,0,79.76731,9.592628,1.098612,4.536691,1 +11,1,0,1,1,128440,0,14655.34,52.82409,0,12,1,39.56834,67.91367,16.91846,0,0,124.4005,0,0,0,4,1,3,66.3,17.4,0,,0,329,0,0,1.098612,5.796058,0,0,0,1,0,0,64.3789,9.592628,1.098612,4.823506,1 +11,1,0,1,2,128440,0,14655.34,53.82409,0,12,1,83.24206,58.61446,0,0,3381.911,3523.768,1,0,0,11,0,3,66.3,17.4,0,,0,329,0,0,1.098612,5.796058,0,0,0,1,0,0,64.3789,9.592628,1.098612,8.167286,1 +11,1,0,1,3,128440,0,14655.34,54.82409,0,12,1,70.07481,24.01496,18.95262,0,938.4589,1051.501,1,0,0,7,1,3,66.3,17.4,0,,0,329,0,0,1.098612,5.796058,0,0,0,1,0,0,64.3789,9.592628,1.098612,6.957974,1 +11,1,0,1,4,128440,0,14655.34,55.82409,0,12,1,38.72752,27.70862,0,0,0,66.43614,0,0,0,3,0,3,66.3,17.4,0,,0,329,0,0,1.098612,5.796058,0,0,0,1,0,0,64.3789,9.592628,1.098612,4.196241,1 +11,1,0,1,5,128440,0,14655.34,56.82409,0,12,1,69.4033,34.40542,0,0,0,103.8087,0,0,0,5,1,3,66.3,17.4,0,,0,329,0,0,1.098612,5.796058,0,0,0,1,0,0,64.3789,9.592628,1.098612,4.64255,1 +2,1,100,0,1,128443,0,9138.338,3.674196,1,13,1,7.656066,0,0,0,0,7.656066,0,0,0,1,0,3,74.36826,13.73189,0,,890,890,1,1,1.098612,6.791222,1,0,0,0,0,0,78.11302,9.120343,1.098612,2.035498,1 +2,1,100,0,2,128443,0,9138.338,4.674196,1,13,1,15.63342,2.12938,0,0,0,17.7628,0,0,0,2,0,4,74.36826,13.73189,0,,890,890,1,1,1.386294,6.791222,1,0,0,0,0,0,78.11302,9.120343,1.386294,2.877107,1 +2,1,100,0,3,128443,0,9138.338,5.674196,1,13,1,13.26781,.982801,0,0,0,14.25061,0,0,0,1,0,4,74.36826,13.73189,0,,890,890,1,1,1.386294,6.791222,1,0,0,0,0,0,78.11302,9.120343,1.386294,2.6568,1 +2,1,100,0,4,128443,0,9138.338,6.674196,1,13,1,15.04102,0,0,0,0,15.04102,0,0,0,1,0,4,74.36826,13.73189,0,,890,890,1,1,1.386294,6.791222,1,0,0,0,0,0,78.11302,9.120343,1.386294,2.710781,1 +2,1,100,0,5,128443,0,9138.338,7.674196,1,13,1,22.50938,0,0,0,0,22.50938,0,0,0,3,0,4,74.36826,13.73189,0,,890,890,1,1,1.386294,6.791222,1,0,0,0,0,0,78.11302,9.120343,1.386294,3.113932,1 +2,1,100,0,1,128444,0,9138.338,28.71184,0,14,1,337.1614,5.276796,21.66667,0,0,364.1048,0,0,0,4,1,3,50.5,0,0,,890,890,0,0,1.098612,6.791222,1,0,0,0,0,0,77.94995,9.120343,1.098612,5.897442,1 +2,1,100,0,2,128444,0,9138.338,29.71184,0,14,1,41.53639,4.204852,0,0,0,45.74124,0,0,0,3,0,4,50.5,0,0,,890,890,0,0,1.386294,6.791222,1,0,0,0,0,0,77.94995,9.120343,1.386294,3.823,1 +2,1,100,0,3,128444,0,9138.338,30.71184,0,14,1,9.82801,5.174447,0,0,0,15.00246,0,0,0,2,0,4,50.5,0,0,,890,890,0,0,1.386294,6.791222,1,0,0,0,0,0,77.94995,9.120343,1.386294,2.708214,1 +2,1,100,0,4,128444,0,9138.338,31.71184,0,14,1,5.469462,0,0,0,0,5.469462,0,0,0,1,0,4,50.5,0,0,,890,890,0,0,1.386294,6.791222,1,0,0,0,0,0,77.94995,9.120343,1.386294,1.69918,1 +2,1,100,0,5,128444,0,9138.338,32.71184,0,14,1,77.2822,2.917882,0,0,0,80.20008,0,0,0,4,0,4,50.5,0,0,,890,890,0,0,1.386294,6.791222,1,0,0,0,0,0,77.94995,9.120343,1.386294,4.384524,1 +2,1,100,0,1,128445,0,9138.338,25.40452,1,13,1,85.39458,11.40754,0,0,665.3121,762.1143,1,0,0,2,0,3,84.2,8.7,0,,890,890,0,0,1.098612,6.791222,1,0,0,0,0,0,73.57805,9.120343,1.098612,6.636096,1 +2,1,100,0,2,128445,0,9138.338,26.40452,1,13,1,21.02426,6.091644,0,0,0,27.1159,0,0,0,3,0,4,84.2,8.7,0,,890,890,0,0,1.386294,6.791222,1,0,0,0,0,0,73.57805,9.120343,1.386294,3.30012,1 +2,1,100,0,3,128445,0,9138.338,27.40452,1,13,1,43.24324,3.439803,0,0,0,46.68305,0,0,0,6,0,4,84.2,8.7,0,,890,890,0,0,1.386294,6.791222,1,0,0,0,0,0,73.57805,9.120343,1.386294,3.843381,1 +2,1,100,0,4,128445,0,9138.338,28.40452,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,84.2,8.7,0,,890,890,0,0,1.386294,6.791222,1,0,0,0,0,0,73.57805,9.120343,1.386294,,0 +2,1,100,0,5,128445,0,9138.338,29.40452,1,13,1,19.17466,0,0,0,0,19.17466,0,0,0,2,0,4,84.2,8.7,0,,890,890,0,0,1.386294,6.791222,1,0,0,0,0,0,73.57805,9.120343,1.386294,2.953589,1 +11,1,0,0,1,128468,0,10325.68,19.80561,0,12,1,32.97998,9.140165,41.54299,0,0,83.66313,0,0,0,2,1,4,78.9,4.3,0,,0,195,0,0,1.386294,5.273,0,0,0,0,0,0,78.46669,9.242486,1.386294,4.426798,1 +11,1,0,0,2,128468,0,10325.68,20.80561,0,12,1,57.68194,0,0,0,0,57.68194,0,0,0,3,0,4,78.9,4.3,0,,0,195,0,0,1.386294,5.273,0,0,0,0,0,0,78.46669,9.242486,1.386294,4.054944,1 +11,1,0,0,3,128468,0,10325.68,21.80561,0,12,1,253.0713,5.479115,0,0,0,258.5504,0,0,0,1,22,4,78.9,4.3,0,,0,195,0,0,1.386294,5.273,0,0,0,0,0,0,78.46669,9.242486,1.386294,5.55509,1 +11,1,0,0,4,128468,0,10325.68,22.80561,0,12,.2684931,260.711,0,0,0,0,260.711,0,0,0,0,21,4,78.9,4.3,0,,0,195,0,0,1.386294,5.273,0,0,0,0,0,0,78.46669,9.242486,1.386294,5.563413,1 +11,1,0,0,1,128469,0,10325.68,40.51472,1,12,1,11.77856,0,0,0,0,11.77856,0,0,0,0,0,4,84.2,4.3,0,,0,195,0,0,1.386294,5.273,0,0,0,0,0,0,78.31118,9.242486,1.386294,2.466281,1 +11,1,0,0,2,128469,0,10325.68,41.51472,1,12,1,43.66577,2.156334,366.5768,0,0,412.3989,0,0,0,4,0,4,84.2,4.3,0,,0,195,0,0,1.386294,5.273,0,0,0,0,0,0,78.31118,9.242486,1.386294,6.021991,1 +11,1,0,0,3,128469,0,10325.68,42.51472,1,12,1,14.74201,0,0,0,271.9754,286.7174,1,0,0,2,0,4,84.2,4.3,0,,0,195,0,0,1.386294,5.273,0,0,0,0,0,0,78.31118,9.242486,1.386294,5.658497,1 +11,1,0,0,4,128469,0,10325.68,43.51472,1,12,1,15.9526,0,15.9526,0,0,31.9052,0,0,0,1,0,4,84.2,4.3,0,,0,195,0,0,1.386294,5.273,0,0,0,0,0,0,78.31118,9.242486,1.386294,3.462769,1 +11,1,0,0,5,128469,0,10325.68,44.51472,1,12,1,45.85244,5.814923,0,0,0,51.66736,0,0,0,2,0,3,84.2,4.3,0,,0,195,0,0,1.098612,5.273,0,0,0,0,0,0,78.31118,9.242486,1.098612,3.944826,1 +11,1,0,0,1,128470,0,10325.68,40.4627,0,11,1,98.0742,16.16608,0,0,0,114.2403,0,0,0,7,1,4,83.2,0,0,,0,195,0,0,1.386294,5.273,0,0,0,0,0,0,73.53505,9.242486,1.386294,4.738304,1 +11,1,0,0,2,128470,0,10325.68,41.4627,0,11,1,5.390836,0,0,0,0,5.390836,0,0,0,1,0,4,83.2,0,0,,0,195,0,0,1.386294,5.273,0,0,0,0,0,0,73.53505,9.242486,1.386294,1.6847,1 +11,1,0,0,3,128470,0,10325.68,42.4627,0,11,1,269.7789,1.891892,29.27273,0,0,300.9435,0,0,0,2,13,4,83.2,0,0,,0,195,0,0,1.386294,5.273,0,0,0,0,0,0,73.53505,9.242486,1.386294,5.706923,1 +11,1,0,0,4,128470,0,10325.68,43.4627,0,11,1,209.6627,0,0,0,0,209.6627,0,0,0,1,18,4,83.2,0,0,,0,195,0,0,1.386294,5.273,0,0,0,0,0,0,73.53505,9.242486,1.386294,5.3455,1 +11,1,0,0,5,128470,0,10325.68,44.4627,0,11,1,125.2188,.2084202,0,0,0,125.4273,0,0,0,4,0,3,83.2,0,0,,0,195,0,0,1.098612,5.273,0,0,0,0,0,0,73.53505,9.242486,1.098612,4.831726,1 +11,1,0,0,1,128471,0,10325.68,15.37851,0,12,1,14.13428,4.240283,0,0,0,18.37456,0,0,0,2,0,4,83.2,0,0,,0,195,1,0,1.386294,5.273,0,0,0,0,0,0,80.31274,9.242486,1.386294,2.910967,1 +11,1,0,0,2,128471,0,10325.68,16.37851,0,12,1,33.42318,2.156334,0,0,0,35.57951,0,0,0,3,0,4,83.2,0,0,,0,195,1,0,1.386294,5.273,0,0,0,0,0,0,80.31274,9.242486,1.386294,3.57177,1 +11,1,0,0,3,128471,0,10325.68,17.37851,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,83.2,0,0,,0,195,1,0,1.386294,5.273,0,0,0,0,0,0,80.31274,9.242486,1.386294,,0 +11,1,0,0,4,128471,0,10325.68,18.37851,0,12,1,25.06837,0,0,0,0,25.06837,0,0,0,4,0,4,83.2,0,0,,0,195,0,0,1.386294,5.273,0,0,0,0,0,0,80.31274,9.242486,1.386294,3.221607,1 +11,1,0,0,5,128471,0,10325.68,19.37851,0,12,1,31.26303,0,0,0,0,31.26303,0,0,0,1,0,3,83.2,0,0,,0,195,0,0,1.098612,5.273,0,0,0,0,0,0,80.31274,9.242486,1.098612,3.442436,1 +7,1,25,0,1,128493,0,11517.37,12.82957,1,12,1,17.07892,1.177856,0,0,0,18.25677,0,0,0,3,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,1,0,0,73.87948,9.351699,1.386294,2.904536,1 +7,1,25,0,2,128493,0,11517.37,13.82957,1,12,1,33.96227,0,0,0,0,33.96227,0,0,0,1,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,1,0,0,73.87948,9.351699,1.386294,3.52525,1 +7,1,25,0,3,128493,0,11517.37,14.82957,1,12,1,21.62162,.982801,0,0,0,22.60442,0,0,0,4,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,1,0,0,73.87948,9.351699,1.386294,3.118146,1 +7,1,25,0,4,128493,0,11517.37,15.82957,1,12,1,37.60255,0,32.38833,0,0,69.99088,0,0,0,4,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,1,0,0,73.87948,9.351699,1.386294,4.248365,1 +7,1,25,0,5,128493,0,11517.37,16.82957,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,1,0,0,73.87948,9.351699,1.386294,,0 +7,1,25,0,1,128494,0,11517.37,38.95414,0,10,1,50.05889,1.177856,0,0,0,51.23675,0,0,0,2,0,4,82.5,13.73189,1,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,71.52279,9.351699,1.386294,3.936457,1 +7,1,25,0,2,128494,0,11517.37,39.95414,0,10,1,0,0,0,0,0,0,0,0,0,0,0,4,82.5,13.73189,1,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,71.52279,9.351699,1.386294,,0 +7,1,25,0,3,128494,0,11517.37,40.95414,0,10,1,12.28501,0,28.99263,0,0,41.27764,0,0,0,1,0,4,82.5,13.73189,1,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,71.52279,9.351699,1.386294,3.720321,1 +7,1,25,0,4,128494,0,11517.37,41.95414,0,10,1,0,0,0,0,0,0,0,0,0,0,0,4,82.5,13.73189,1,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,71.52279,9.351699,1.386294,,0 +7,1,25,0,5,128494,0,11517.37,42.95414,0,10,1,172.5719,0,37.09879,0,0,209.6707,0,0,0,4,4,4,82.5,13.73189,1,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,71.52279,9.351699,1.386294,5.345538,1 +7,1,25,0,1,128495,0,11517.37,10.46133,1,12,1,9.422851,6.919906,0,0,0,16.34276,0,0,0,2,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,1,0,0,76.19097,9.351699,1.386294,2.793785,1 +7,1,25,0,2,128495,0,11517.37,11.46133,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,1,0,0,76.19097,9.351699,1.386294,,0 +7,1,25,0,3,128495,0,11517.37,12.46133,1,12,1,8.845209,0,0,0,0,8.845209,0,0,0,2,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,1,0,0,76.19097,9.351699,1.386294,2.179876,1 +7,1,25,0,4,128495,0,11517.37,13.46133,1,12,1,10.25524,0,0,0,0,10.25524,0,0,0,1,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,1,0,0,76.19097,9.351699,1.386294,2.327789,1 +7,1,25,0,5,128495,0,11517.37,14.46133,1,12,1,8.336807,0,0,0,0,8.336807,0,0,0,1,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,1,0,0,76.19097,9.351699,1.386294,2.12068,1 +7,1,25,0,1,128496,0,11517.37,34.08624,1,12,1,283.2744,67.55595,27.67962,0,0,378.51,0,0,0,19,0,4,80,13.73189,1,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,1,0,56.49276,9.351699,1.386294,5.936243,1 +7,1,25,0,2,128496,0,11517.37,35.08624,1,12,1,76.54987,32.19946,0,0,0,108.7493,0,0,0,11,0,4,80,13.73189,1,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,1,0,56.49276,9.351699,1.386294,4.689045,1 +7,1,25,0,3,128496,0,11517.37,36.08624,1,12,1,40.29484,20.93366,0,0,0,61.2285,0,0,0,8,0,4,80,13.73189,1,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,1,0,56.49276,9.351699,1.386294,4.114613,1 +7,1,25,0,4,128496,0,11517.37,37.08624,1,12,1,20.96627,0,0,0,0,20.96627,0,0,0,1,1,4,80,13.73189,1,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,1,0,56.49276,9.351699,1.386294,3.042915,1 +7,1,25,0,5,128496,0,11517.37,38.08624,1,12,1,32.51355,4.997916,26.5694,0,0,64.08086,0,0,0,3,0,4,80,13.73189,1,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,1,0,56.49276,9.351699,1.386294,4.160146,1 +10,1,50,0,1,128497,0,10301.49,7.545517,0,9,1,8.833922,0,0,0,0,8.833922,0,0,0,1,0,6,74.36826,13.73189,0,,1000,1000,1,0,1.791759,6.907755,0,3.931826,7.600903,0,0,0,84.4333,9.240141,1.791759,2.178599,1 +10,1,50,0,2,128497,0,10301.49,8.545517,0,9,1,90.02695,0,0,0,173.5094,263.5364,1,0,0,2,2,6,74.36826,13.73189,0,,1000,1000,1,0,1.791759,6.907755,0,3.931826,7.600903,0,0,0,84.4333,9.240141,1.791759,5.574192,1 +10,1,50,0,1,128498,0,10301.49,27.53183,1,9,1,30.03534,5.300354,0,0,0,35.33569,0,0,0,4,0,6,65,13.73189,0,,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,1,0,0,63.61448,9.240141,1.791759,3.564893,1 +10,1,50,0,2,128498,0,10301.49,28.53183,1,9,1,14.01617,1.617251,29.6496,0,0,45.28302,0,0,0,1,0,6,65,13.73189,0,,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,1,0,0,63.61448,9.240141,1.791759,3.812932,1 +10,1,50,0,1,128499,0,10301.49,10.04517,1,9,1,0,0,0,0,0,0,0,0,0,0,0,6,74.36826,13.73189,0,,1000,1000,1,1,1.791759,6.907755,0,3.931826,7.600903,0,0,0,83.91933,9.240141,1.791759,,0 +10,1,50,0,2,128499,0,10301.49,11.04517,1,9,1,0,0,0,0,0,0,0,0,0,0,0,6,74.36826,13.73189,0,,1000,1000,1,1,1.791759,6.907755,0,3.931826,7.600903,0,0,0,83.91933,9.240141,1.791759,,0 +10,1,50,0,1,128500,0,10301.49,11.32101,0,9,1,0,0,0,0,0,0,0,0,0,0,0,6,74.36826,13.73189,0,,1000,1000,1,0,1.791759,6.907755,0,3.931826,7.600903,0,0,0,84.4333,9.240141,1.791759,,0 +10,1,50,0,2,128500,0,10301.49,12.32101,0,9,1,7.008086,0,0,0,0,7.008086,0,0,0,1,0,6,74.36826,13.73189,0,,1000,1000,1,0,1.791759,6.907755,0,3.931826,7.600903,0,0,0,84.4333,9.240141,1.791759,1.947065,1 +10,1,50,0,1,128501,0,10301.49,4.911705,1,9,1,101.2956,0,0,0,0,101.2956,0,0,0,4,2,6,74.36826,13.73189,0,,1000,1000,1,1,1.791759,6.907755,0,3.931826,7.600903,0,0,0,80.4877,9.240141,1.791759,4.618043,1 +10,1,50,0,2,128501,0,10301.49,5.911705,1,9,1,0,0,0,0,0,0,0,0,0,0,0,6,74.36826,13.73189,0,,1000,1000,1,1,1.791759,6.907755,0,3.931826,7.600903,0,0,0,80.4877,9.240141,1.791759,,0 +10,1,50,0,1,128502,0,10301.49,31.90417,0,8,1,8.462897,16.66078,0,0,0,25.12367,0,0,0,0,0,6,90,13.73189,0,,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,1,0,0,61.55907,9.240141,1.791759,3.223811,1 +10,1,50,0,2,128502,0,10301.49,32.90417,0,8,1,229.3801,2.32345,0,0,0,231.7035,0,0,0,2,1,6,90,13.73189,0,,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,1,0,0,61.55907,9.240141,1.791759,5.445458,1 +11,1,0,1,1,128520,0,9861.166,15.50171,0,12,1,19.63117,0,36.68055,0,0,56.31172,0,0,0,1,1,6,98.9,13,0,,0,196,1,0,1.791759,5.278115,0,0,0,0,0,0,80.40273,9.196461,1.791759,4.030903,1 +11,1,0,1,2,128520,0,9861.166,16.50171,0,12,1,9.798585,1.633097,0,0,0,11.43168,0,0,0,2,0,6,98.9,13,0,,0,196,1,0,1.791759,5.278115,0,0,0,0,0,0,80.40273,9.196461,1.791759,2.436388,1 +11,1,0,1,3,128520,0,9861.166,17.50171,0,12,1,53.51833,14.49455,0,0,0,68.01289,0,0,0,5,0,6,98.9,13,0,,0,196,1,0,1.791759,5.278115,0,0,0,0,0,0,80.40273,9.196461,1.791759,4.219697,1 +11,1,0,1,4,128520,0,9861.166,18.50171,0,12,1,219.0225,36.85177,19.66498,0,0,275.5392,0,0,0,3,1,6,98.9,13,0,,0,196,0,0,1.791759,5.278115,0,0,0,0,0,0,80.40273,9.196461,1.791759,5.61873,1 +11,1,0,1,5,128520,0,9861.166,19.50171,0,12,1,33.65587,27.34539,0,0,0,61.00126,0,0,0,0,0,6,98.9,13,0,,0,196,0,0,1.791759,5.278115,0,0,0,0,0,0,80.40273,9.196461,1.791759,4.110895,1 +11,1,0,1,1,128521,0,9861.166,8.960985,1,12,1,27.95955,7.346817,0,0,0,35.30637,0,0,0,4,0,6,74.36826,13.73189,0,,0,196,1,1,1.791759,5.278115,0,0,0,0,0,0,84.62004,9.196461,1.791759,3.564063,1 +11,1,0,1,2,128521,0,9861.166,9.960985,1,12,1,16.33097,3.701688,0,0,0,20.03266,0,0,0,3,0,6,74.36826,13.73189,0,,0,196,1,1,1.791759,5.278115,0,0,0,0,0,0,84.62004,9.196461,1.791759,2.997364,1 +11,1,0,1,3,128521,0,9861.166,10.96099,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,74.36826,13.73189,0,,0,196,1,1,1.791759,5.278115,0,0,0,0,0,0,84.62004,9.196461,1.791759,,0 +11,1,0,1,4,128521,0,9861.166,11.96099,1,12,1,11.93208,0,0,0,0,11.93208,0,0,0,1,1,6,74.36826,13.73189,0,,0,196,1,1,1.791759,5.278115,0,0,0,0,0,0,84.62004,9.196461,1.791759,2.47923,1 +11,1,0,1,5,128521,0,9861.166,12.96099,1,12,1,18.93143,0,0,0,0,18.93143,0,0,0,2,0,6,74.36826,13.73189,0,,0,196,1,1,1.791759,5.278115,0,0,0,0,0,0,84.62004,9.196461,1.791759,2.940823,1 +11,1,0,1,1,128522,0,9861.166,11.76454,1,12,1,224.0631,213.028,51.08864,0,0,488.1797,0,0,0,20,0,6,74.36826,13.73189,0,,0,196,1,1,1.791759,5.278115,0,0,0,1,0,0,74.44305,9.196461,1.791759,6.190683,1 +11,1,0,1,2,128522,0,9861.166,12.76454,1,12,1,44.09363,98.44855,0,0,319.4883,462.0305,1,0,0,9,0,6,74.36826,13.73189,0,,0,196,1,1,1.791759,5.278115,0,0,0,1,0,0,74.44305,9.196461,1.791759,6.135631,1 +11,1,0,1,3,128522,0,9861.166,13.76454,1,12,1,127.8494,71.67988,0,0,0,199.5292,0,0,0,26,0,6,74.36826,13.73189,0,,0,196,1,1,1.791759,5.278115,0,0,0,1,0,0,74.44305,9.196461,1.791759,5.295961,1 +11,1,0,1,4,128522,0,9861.166,14.76454,1,12,1,114.5021,82.07893,.6883892,0,407.8476,605.117,1,0,0,28,1,6,74.36826,13.73189,0,,0,196,1,1,1.791759,5.278115,0,0,0,1,0,0,74.44305,9.196461,1.791759,6.405422,1 +11,1,0,1,5,128522,0,9861.166,15.76454,1,12,1,225.6458,82.06563,0,0,0,307.7114,0,0,0,33,0,6,74.36826,13.73189,0,,0,196,1,1,1.791759,5.278115,0,0,0,1,0,0,74.44305,9.196461,1.791759,5.729162,1 +11,1,0,1,1,128523,0,9861.166,41.42368,0,12,1,151.6954,39.64902,36.68055,0,1444.325,1672.35,2,0,0,13,1,6,100,8.7,0,,0,196,0,0,1.791759,5.278115,0,0,0,0,0,0,76.77452,9.196461,1.791759,7.421985,1 +11,1,0,1,2,128523,0,9861.166,42.42368,0,12,1,91.99783,33.043,0,0,0,125.0408,0,0,0,11,0,6,100,8.7,0,,0,196,0,0,1.791759,5.278115,0,0,0,0,0,0,76.77452,9.196461,1.791759,4.82864,1 +11,1,0,1,3,128523,0,9861.166,43.42368,0,12,1,95.14371,26.53617,0,0,0,121.6799,0,0,0,12,0,6,100,8.7,0,,0,196,0,0,1.791759,5.278115,0,0,0,0,0,0,76.77452,9.196461,1.791759,4.801394,1 +11,1,0,1,4,128523,0,9861.166,44.42368,0,12,1,55.98899,34.69481,0,0,0,90.6838,0,0,0,7,0,6,100,8.7,0,,0,196,0,0,1.791759,5.278115,0,0,0,0,0,0,76.77452,9.196461,1.791759,4.507379,1 +11,1,0,1,5,128523,0,9861.166,45.42368,0,12,1,147.1435,32.96172,36.04544,0,0,216.1506,0,0,0,16,0,6,100,8.7,0,,0,196,0,0,1.791759,5.278115,0,0,0,0,0,0,76.77452,9.196461,1.791759,5.375976,1 +11,1,0,1,1,128524,0,9861.166,39.96167,1,12,1,42.23676,22.57585,24.98513,0,0,89.79774,0,0,0,6,0,6,77.9,8.7,0,,0,196,0,0,1.791759,5.278115,0,0,0,0,0,0,79.44787,9.196461,1.791759,4.49756,1 +11,1,0,1,2,128524,0,9861.166,40.96167,1,12,1,193.5493,5.770278,21.62221,0,0,220.9418,0,0,0,3,1,6,77.9,8.7,0,,0,196,0,0,1.791759,5.278115,0,0,0,0,0,0,79.44787,9.196461,1.791759,5.397899,1 +11,1,0,1,3,128524,0,9861.166,41.96167,1,12,1,48.06739,8.671952,0,0,0,56.73935,0,0,0,6,0,6,77.9,8.7,0,,0,196,0,0,1.791759,5.278115,0,0,0,0,0,0,79.44787,9.196461,1.791759,4.038468,1 +11,1,0,1,4,128524,0,9861.166,42.96167,1,12,1,64.70858,17.37035,53.7173,0,0,135.7962,0,0,0,7,1,6,77.9,8.7,0,,0,196,0,0,1.791759,5.278115,0,0,0,0,0,0,79.44787,9.196461,1.791759,4.911156,1 +11,1,0,1,5,128524,0,9861.166,43.96167,1,12,1,251.6702,37.54733,31.15692,0,0,320.3744,0,0,0,6,0,6,77.9,8.7,0,,0,196,0,0,1.791759,5.278115,0,0,0,0,0,0,79.44787,9.196461,1.791759,5.76949,1 +11,1,0,1,1,128525,0,9861.166,10.65571,1,12,1,19.63117,1.784652,0,0,0,21.41582,0,0,0,2,0,6,74.36826,13.73189,0,,0,196,1,1,1.791759,5.278115,0,0,0,0,0,0,84.62004,9.196461,1.791759,3.06413,1 +11,1,0,1,2,128525,0,9861.166,11.65571,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,74.36826,13.73189,0,,0,196,1,1,1.791759,5.278115,0,0,0,0,0,0,84.62004,9.196461,1.791759,,0 +11,1,0,1,3,128525,0,9861.166,12.65571,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,74.36826,13.73189,0,,0,196,1,1,1.791759,5.278115,0,0,0,0,0,0,84.62004,9.196461,1.791759,,0 +11,1,0,1,4,128525,0,9861.166,13.65571,1,12,1,35.79624,.9178522,0,0,0,36.71409,0,0,0,3,1,6,74.36826,13.73189,0,,0,196,1,1,1.791759,5.278115,0,0,0,0,0,0,84.62004,9.196461,1.791759,3.603161,1 +11,1,0,1,5,128525,0,9861.166,14.65571,1,12,1,22.71771,0,0,0,0,22.71771,0,0,0,3,0,6,74.36826,13.73189,0,,0,196,1,1,1.791759,5.278115,0,0,0,0,0,0,84.62004,9.196461,1.791759,3.123145,1 +5,1,25,0,1,128550,1,5445.176,5.004791,1,14,1,100.2698,0,0,0,464.0707,564.3405,1,0,0,2,0,3,74.36826,13.73189,0,,359,359,1,1,1.098612,5.883322,0,3.258096,7.269617,1,0,0,76.07727,8.602669,1.098612,6.335658,1 +5,1,25,0,2,128550,1,5445.176,6.004791,1,14,1,13.30778,6.818182,0,0,0,20.12596,0,0,0,1,0,3,74.36826,13.73189,0,,359,359,1,1,1.098612,5.883322,0,3.258096,7.269617,1,0,0,76.07727,8.602669,1.098612,3.00201,1 +5,1,25,0,3,128550,1,5445.176,7.004791,1,14,1,0,0,0,0,0,0,0,0,0,0,0,3,74.36826,13.73189,0,,359,359,1,1,1.098612,5.883322,0,3.258096,7.269617,1,0,0,76.07727,8.602669,1.098612,,0 +5,1,25,0,1,128551,1,5445.176,27.5154,1,14,1,18.58513,0,0,0,0,18.58513,0,0,0,2,0,3,80,13.73189,0,,359,359,0,0,1.098612,5.883322,0,3.258096,7.269617,1,0,0,68.25694,8.602669,1.098612,2.922362,1 +5,1,25,0,2,128551,1,5445.176,28.5154,1,14,1,378.0285,0,0,0,0,378.0285,0,0,0,3,0,3,80,13.73189,0,,359,359,0,0,1.098612,5.883322,0,3.258096,7.269617,1,0,0,68.25694,8.602669,1.098612,5.934969,1 +5,1,25,0,3,128551,1,5445.176,29.5154,1,14,1,33.41646,0,0,0,0,33.41646,0,0,0,4,0,3,80,13.73189,0,,359,359,0,0,1.098612,5.883322,0,3.258096,7.269617,1,0,0,68.25694,8.602669,1.098612,3.509048,1 +5,1,25,0,1,128552,1,5445.176,5.965777,1,14,1,22.93165,0,0,0,0,22.93165,0,0,0,1,0,3,74.36826,13.73189,0,,359,359,1,1,1.098612,5.883322,0,3.258096,7.269617,1,0,0,79.50889,8.602669,1.098612,3.132518,1 +5,1,25,0,2,128552,1,5445.176,6.965777,1,14,1,5.476451,0,0,0,0,5.476451,0,0,0,1,0,3,74.36826,13.73189,0,,359,359,1,1,1.098612,5.883322,0,3.258096,7.269617,1,0,0,79.50889,8.602669,1.098612,1.700457,1 +5,1,25,0,3,128552,1,5445.176,7.965777,1,14,1,4.987531,0,0,0,0,4.987531,0,0,0,1,0,3,74.36826,13.73189,0,,359,359,1,1,1.098612,5.883322,0,3.258096,7.269617,1,0,0,79.50889,8.602669,1.098612,1.606941,1 +1,1,0,1,1,128569,1,15095.53,24.39973,1,16,1,54.72933,0,0,0,0,54.72933,0,0,0,2,0,2,73.7,8.7,0,,300,300,0,0,.6931472,5.703783,1,0,0,1,0,0,65.77286,9.62222,.6931472,4.0024,1 +1,1,0,1,2,128569,1,15095.53,25.39973,1,16,1,117.583,0,29.1399,0,0,146.7229,0,0,0,6,1,2,73.7,8.7,0,,300,300,0,0,.6931472,5.703783,1,0,0,1,0,0,65.77286,9.62222,.6931472,4.988546,1 +1,1,0,1,3,128569,1,15095.53,26.39973,1,16,1,24.77701,0,0,0,865.4361,890.2131,1,0,0,1,0,2,73.7,8.7,0,,300,300,0,0,.6931472,5.703783,1,0,0,1,0,0,65.77286,9.62222,.6931472,6.791461,1 +1,1,0,1,1,128570,1,15095.53,28.9473,0,18,1,25.25282,0,0,0,346.3712,371.624,1,0,0,0,0,2,68.4,4.3,0,,300,300,0,0,.6931472,5.703783,1,0,0,1,0,0,67.4578,9.62222,.6931472,5.917882,1 +1,1,0,1,2,128570,1,15095.53,29.9473,0,18,1,121.3936,0,0,0,0,121.3936,0,0,0,7,0,2,68.4,4.3,0,,300,300,0,0,.6931472,5.703783,1,0,0,1,0,0,67.4578,9.62222,.6931472,4.799038,1 +1,1,0,1,3,128570,1,15095.53,30.9473,0,18,1,601.4371,20.48067,0,0,45.09415,667.0119,0,0,0,6,1,2,68.4,4.3,0,,300,300,0,0,.6931472,5.703783,1,0,0,1,0,0,67.4578,9.62222,.6931472,6.502808,1 +7,1,25,0,1,128581,1,14949.13,36.22724,0,18,1,65.84217,38.27444,24.73498,106.0071,1154.152,1283.004,2,0,14,1,1,5,73.8,13.73189,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,65.67462,9.612475,1.609438,7.156959,1 +7,1,25,0,2,128581,1,14949.13,37.22724,0,18,1,29.6496,0,0,75.47169,1867.17,1896.819,1,0,14,0,0,5,73.8,13.73189,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,65.67462,9.612475,1.609438,7.547934,1 +7,1,25,0,3,128581,1,14949.13,38.22724,0,18,1,0,0,0,0,0,0,0,0,0,0,0,5,73.8,13.73189,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,65.67462,9.612475,1.609438,,0 +7,1,25,0,1,128582,1,14949.13,35.23888,1,16,1,310.6596,165.689,0,0,0,476.3486,0,0,0,37,1,5,47.5,13.73189,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,68.22718,9.612475,1.609438,6.16615,1 +7,1,25,0,2,128582,1,14949.13,36.23888,1,16,1,53.36927,164.3666,0,0,0,217.7359,0,0,0,6,0,5,47.5,13.73189,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,68.22718,9.612475,1.609438,5.383283,1 +7,1,25,0,3,128582,1,14949.13,37.23888,1,16,1,228.6241,155.8673,0,0,0,384.4914,0,0,0,11,1,5,47.5,13.73189,0,,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,68.22718,9.612475,1.609438,5.951921,1 +7,1,25,0,1,128583,1,14949.13,8.536619,1,16,1,145.1708,13.39812,0,0,0,158.5689,0,0,0,6,1,5,74.36826,13.73189,1,,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,1,0,0,88.60927,9.612475,1.609438,5.066189,1 +7,1,25,0,2,128583,1,14949.13,9.536619,1,16,1,41.50943,21.45553,0,0,0,62.96496,0,0,0,8,0,5,74.36826,13.73189,1,,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,1,0,0,88.60927,9.612475,1.609438,4.142578,1 +7,1,25,0,3,128583,1,14949.13,10.53662,1,16,1,122.344,17.62162,0,0,403.6265,543.5922,1,0,0,5,0,5,74.36826,13.73189,1,,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,1,0,0,88.60927,9.612475,1.609438,6.298199,1 +7,1,25,0,1,128584,1,14949.13,11.48528,1,16,1,80.38869,7.714959,20.17668,0,0,108.2803,0,0,0,4,1,5,74.36826,13.73189,0,,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,1,0,0,83.93784,9.612475,1.609438,4.684723,1 +7,1,25,0,2,128584,1,14949.13,12.48528,1,16,1,0,0,28,0,0,28,0,0,0,0,0,5,74.36826,13.73189,0,,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,1,0,0,83.93784,9.612475,1.609438,3.332205,1 +7,1,25,0,3,128584,1,14949.13,13.48528,1,16,1,14.25061,0,0,0,0,14.25061,0,0,0,1,0,5,74.36826,13.73189,0,,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,1,0,0,83.93784,9.612475,1.609438,2.6568,1 +7,1,25,0,1,128585,1,14949.13,10.31348,0,16,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,82.66042,9.612475,1.609438,,0 +7,1,25,0,2,128585,1,14949.13,11.31348,0,16,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,82.66042,9.612475,1.609438,,0 +7,1,25,0,3,128585,1,14949.13,12.31348,0,16,1,149.8772,0,0,0,1039.926,1189.803,1,0,0,6,0,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,82.66042,9.612475,1.609438,7.081543,1 +5,1,25,1,1,128596,1,11635.86,39.49897,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,98.9,4.3,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,74.38396,9.361933,1.098612,,0 +5,1,25,1,2,128596,1,11635.86,40.49897,0,12,1,67.22918,4.001089,0,0,1182.967,1254.197,1,0,0,3,0,2,98.9,4.3,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,0,74.38396,9.361933,.6931472,7.134251,1 +5,1,25,1,3,128596,1,11635.86,41.49897,0,12,1,29.73241,0,0,0,185.8275,215.56,1,1,0,2,0,2,98.9,4.3,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,0,74.38396,9.361933,.6931472,5.373239,1 +5,1,25,1,1,128597,1,11635.86,4.405202,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,74.36826,13.73189,.0327869,,1000,1000,1,1,1.098612,6.907755,0,3.258096,8.294049,0,0,0,76.82845,9.361933,1.098612,,0 +5,1,25,1,1,128598,1,11635.86,39.54826,1,12,1,273.7359,71.98096,0,0,858.2927,1204.01,3,0,0,5,0,3,82.1,8.7,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,74.3345,9.361933,1.098612,7.093412,1 +5,1,25,1,2,128598,1,11635.86,40.54826,1,12,1,377.6538,10.07077,48.35057,0,0,436.0751,0,0,0,3,0,2,82.1,8.7,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,0,74.3345,9.361933,.6931472,6.077815,1 +5,1,25,1,3,128598,1,11635.86,41.54826,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,82.1,8.7,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,0,74.3345,9.361933,.6931472,,0 +11,1,0,1,1,128616,0,10317.62,42.92676,1,12,1,4.759072,2.528257,0,0,0,7.287329,0,0,0,1,0,4,92.6,17.4,0,,0,0,0,0,1.386294,0,0,0,0,0,0,0,78.52303,9.241705,1.386294,1.986137,1 +11,1,0,1,2,128616,0,10317.62,43.92676,1,12,1,60.42461,0,0,0,827.5177,887.9423,1,0,0,4,0,4,92.6,17.4,0,,0,0,0,0,1.386294,0,0,0,0,0,0,0,78.52303,9.241705,1.386294,6.788907,1 +11,1,0,1,3,128616,0,10317.62,44.92676,1,12,1,13.87512,0,37.39346,0,0,51.26858,0,0,0,1,0,4,92.6,17.4,0,,0,0,0,0,1.386294,0,0,0,0,0,0,0,78.52303,9.241705,1.386294,3.937078,1 +11,1,0,1,4,128616,0,10317.62,45.92676,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,92.6,17.4,0,,0,0,0,0,1.386294,0,0,0,0,0,0,0,78.52303,9.241705,1.386294,,0 +11,1,0,1,5,128616,0,10317.62,46.92676,1,12,1,12.62095,0,40.6647,0,0,53.28566,0,0,0,1,0,4,92.6,17.4,0,,0,0,0,0,1.386294,0,0,0,0,0,0,0,78.52303,9.241705,1.386294,3.975667,1 +11,1,0,1,1,128617,0,10317.62,16.9692,1,12,1,26.1749,14.03926,10.57109,0,0,50.78525,0,0,0,3,0,4,75.8,8.7,0,,0,0,1,1,1.386294,0,0,0,0,0,0,0,75.1879,9.241705,1.386294,3.927606,1 +11,1,0,1,2,128617,0,10317.62,17.9692,1,12,1,24.49646,9.145346,18.76973,0,25.91181,78.32336,1,0,0,2,0,4,75.8,8.7,0,,0,0,1,1,1.386294,0,0,0,0,0,0,0,75.1879,9.241705,1.386294,4.360846,1 +11,1,0,1,3,128617,0,10317.62,18.9692,1,12,1,57.9782,2.700694,0,0,0,60.67889,0,0,0,3,0,4,75.8,8.7,0,,0,0,0,0,1.386294,0,0,0,0,0,0,0,75.1879,9.241705,1.386294,4.105596,1 +11,1,0,1,4,128617,0,10317.62,19.9692,1,12,1,12.84993,1.376778,0,0,0,14.22671,0,0,0,1,0,4,75.8,8.7,0,,0,0,0,0,1.386294,0,0,0,0,0,0,0,75.1879,9.241705,1.386294,2.655121,1 +11,1,0,1,5,128617,0,10317.62,20.9692,1,12,1,29.44888,3.618006,0,0,0,33.06689,0,0,0,3,0,4,75.8,8.7,0,,0,0,0,0,1.386294,0,0,0,0,0,0,0,75.1879,9.241705,1.386294,3.498533,1 +11,1,0,1,1,128618,0,10317.62,14.19849,1,12,1,38.07257,17.1624,0,0,0,55.23498,0,0,0,6,0,4,77.9,8.7,0,,0,0,1,1,1.386294,0,0,0,0,0,0,0,75.1879,9.241705,1.386294,4.011596,1 +11,1,0,1,2,128618,0,10317.62,15.19849,1,12,1,47.35983,18.86228,36.40718,0,0,102.6293,0,0,0,7,0,4,77.9,8.7,0,,0,0,1,1,1.386294,0,0,0,0,0,0,0,75.1879,9.241705,1.386294,4.631124,1 +11,1,0,1,3,128618,0,10317.62,16.19849,1,12,1,87.21507,31.83845,13.9445,0,0,132.998,0,0,0,8,0,4,77.9,8.7,0,,0,0,1,1,1.386294,0,0,0,0,0,0,0,75.1879,9.241705,1.386294,4.890334,1 +11,1,0,1,4,128618,0,10317.62,17.19849,1,12,1,26.61771,6.975677,0,0,0,33.59339,0,0,0,2,0,4,77.9,8.7,0,,0,0,1,1,1.386294,0,0,0,0,0,0,0,75.1879,9.241705,1.386294,3.514329,1 +11,1,0,1,5,128618,0,10317.62,18.19849,1,12,1,20.19352,2.633572,22.22129,0,0,45.04838,0,0,0,2,0,4,77.9,8.7,0,,0,0,0,0,1.386294,0,0,0,0,0,0,0,75.1879,9.241705,1.386294,3.807737,1 +11,1,0,1,1,128619,0,10317.62,48.24641,0,18,1,33.3135,3.242118,46.00833,0,0,82.56395,0,0,0,2,0,4,89.5,17.4,0,,0,0,0,0,1.386294,0,0,0,0,0,0,0,77.31493,9.241705,1.386294,4.413573,1 +11,1,0,1,2,128619,0,10317.62,49.24641,0,18,1,0,2.776266,0,0,0,2.776266,0,0,0,0,0,4,89.5,17.4,0,,0,0,0,0,1.386294,0,0,0,0,0,0,0,77.31493,9.241705,1.386294,1.021107,1 +11,1,0,1,3,128619,0,10317.62,50.24641,0,18,1,0,0,0,0,0,0,0,0,0,0,0,4,89.5,17.4,0,,0,0,0,0,1.386294,0,0,0,0,0,0,0,77.31493,9.241705,1.386294,,0 +11,1,0,1,4,128619,0,10317.62,51.24641,0,18,1,11.01423,1.376778,0,0,0,12.39101,0,0,0,2,0,4,89.5,17.4,0,,0,0,0,0,1.386294,0,0,0,0,0,0,0,77.31493,9.241705,1.386294,2.516971,1 +11,1,0,1,5,128619,0,10317.62,52.24641,0,18,1,0,0,0,0,0,0,0,0,0,0,0,4,89.5,17.4,0,,0,0,0,0,1.386294,0,0,0,0,0,0,0,77.31493,9.241705,1.386294,,0 +1,1,0,0,1,128631,0,5385.856,60.2026,0,12,.8219178,211.6313,497.0259,50.57715,0,2080.018,2839.252,4,0,0,12,0,2,65.3,47.8,1,,0,0,0,0,.6931472,0,1,0,0,0,0,1,57.29132,8.591717,.6931472,7.951296,1 +1,1,0,0,1,128632,0,5385.856,57.78234,1,12,1,492.9329,464.0283,40.61837,0,0,997.5795,0,0,0,38,0,2,58.9,30.4,1,,0,0,0,0,.6931472,0,1,0,0,1,0,0,71.7804,8.591717,.6931472,6.905332,1 +1,1,0,0,2,128632,0,5385.856,58.78234,1,12,1,207.3585,312.6146,0,0,0,519.973,0,0,0,11,0,1,58.9,30.4,1,,0,0,0,0,0,0,1,0,0,1,0,0,71.7804,8.591717,0,6.253777,1 +1,1,0,0,3,128632,0,5385.856,59.78234,1,12,1,92.13759,361.5086,44.41769,0,0,498.0639,0,0,0,6,0,1,58.9,30.4,1,,0,0,0,0,0,0,1,0,0,1,0,0,71.7804,8.591717,0,6.210728,1 +1,1,0,0,4,128632,0,5385.856,60.78234,1,12,1,113.7192,259.6171,0,0,0,373.3364,0,0,0,9,7,1,58.9,30.4,1,,0,0,0,0,0,0,1,0,0,1,0,0,71.7804,8.591717,0,5.92248,1 +1,1,0,0,5,128632,0,5385.856,61.78234,1,12,1,73.05127,178.3243,0,0,0,251.3756,0,0,0,7,0,1,58.9,30.4,1,,0,0,0,0,0,0,1,0,0,1,0,0,71.7804,8.591717,0,5.526948,1 +8,1,50,0,1,128649,0,7208.437,58.62012,1,10,1,317.3706,70.70197,0,0,0,388.0726,0,0,0,27,0,2,72.5,13.73189,1,,607,607,0,0,.6931472,6.408529,0,3.931826,7.101676,0,0,1,38.15974,8.883146,.6931472,5.961192,1 +8,1,50,0,2,128649,0,7208.437,59.62012,1,10,1,10.88732,0,22.86336,0,0,33.75068,0,0,0,0,1,2,72.5,13.73189,1,,607,607,0,0,.6931472,6.408529,0,3.931826,7.101676,0,0,1,38.15974,8.883146,.6931472,3.519001,1 +8,1,50,0,3,128649,0,7208.437,60.62012,1,10,1,0,0,0,0,0,0,0,0,0,0,0,2,72.5,13.73189,1,,607,607,0,0,.6931472,6.408529,0,3.931826,7.101676,0,0,1,38.15974,8.883146,.6931472,,0 +8,1,50,0,1,128650,0,7208.437,56.95825,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,90,13.73189,0,,607,607,0,0,.6931472,6.408529,0,3.931826,7.101676,1,0,0,67.03755,8.883146,.6931472,,0 +8,1,50,0,2,128650,0,7208.437,57.95825,0,12,1,59.88024,20.0871,30.83832,0,0,110.8057,0,0,0,9,1,2,90,13.73189,0,,607,607,0,0,.6931472,6.408529,0,3.931826,7.101676,1,0,0,67.03755,8.883146,.6931472,4.707778,1 +8,1,50,0,3,128650,0,7208.437,58.95825,0,12,1,54.50941,19.57384,0,0,0,74.08325,0,0,0,11,0,2,90,13.73189,0,,607,607,0,0,.6931472,6.408529,0,3.931826,7.101676,1,0,0,67.03755,8.883146,.6931472,4.30519,1 +10,1,50,1,1,128652,0,10080.02,58.64476,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,93.7,4.3,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,0,0,0,76.83472,9.21841,.6931472,,0 +10,1,50,1,2,128652,0,10080.02,59.64476,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,93.7,4.3,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,0,0,0,76.83472,9.21841,.6931472,,0 +10,1,50,1,3,128652,0,10080.02,60.64476,0,12,1,8.424182,0,33.66204,0,0,42.08622,0,0,0,0,1,2,93.7,4.3,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,0,0,0,76.83472,9.21841,.6931472,3.73972,1 +10,1,50,1,4,128652,0,10080.02,61.64476,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,93.7,4.3,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,0,0,0,76.83472,9.21841,.6931472,,0 +10,1,50,1,5,128652,0,10080.02,62.64476,0,12,1,7.57257,0,35.27556,0,0,42.84813,0,0,0,0,1,2,93.7,4.3,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,0,0,0,76.83472,9.21841,.6931472,3.757662,1 +10,1,50,1,1,128653,0,10080.02,56.42437,1,12,1,12.49256,0,44.13445,0,0,56.62701,0,0,0,2,0,2,86.3,17.4,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,0,0,0,78.46137,9.21841,.6931472,4.036486,1 +10,1,50,1,2,128653,0,10080.02,57.42437,1,12,1,17.41971,6.472509,0,0,0,23.89222,0,0,0,3,0,2,86.3,17.4,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,0,0,0,78.46137,9.21841,.6931472,3.173553,1 +10,1,50,1,3,128653,0,10080.02,58.42437,1,12,1,20.31715,4.68781,45.56491,0,0,70.56987,0,0,0,1,2,2,86.3,17.4,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,0,0,0,78.46137,9.21841,.6931472,4.256603,1 +10,1,50,1,4,128653,0,10080.02,59.42437,1,12,1,7.801744,4.520422,0,0,0,12.32217,0,0,0,1,0,2,86.3,17.4,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,0,0,0,78.46137,9.21841,.6931472,2.5114,1 +10,1,50,1,5,128653,0,10080.02,60.42437,1,12,1,63.10476,0,38.68742,0,0,101.7922,0,0,0,1,0,2,86.3,17.4,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,0,0,0,78.46137,9.21841,.6931472,4.622933,1 +10,1,50,1,1,128660,0,5170.596,57.07324,1,8,1,9.518144,15.52647,0,0,0,25.04462,0,0,0,2,0,1,81.1,17.4,0,,666,666,0,0,0,6.50129,0,3.931826,7.194437,1,0,0,69.13512,8.550937,0,3.220659,1 +10,1,50,1,2,128660,0,5170.596,58.07324,1,8,1,20.6859,28.64453,0,0,0,49.33043,0,0,0,3,0,1,81.1,17.4,0,,666,666,0,0,0,6.50129,0,3.931826,7.194437,1,0,0,69.13512,8.550937,0,3.898541,1 +10,1,50,1,3,128660,0,5170.596,59.07324,1,8,1,22.29931,21.556,0,0,0,43.8553,0,0,0,2,1,1,81.1,17.4,0,,666,666,0,0,0,6.50129,0,3.931826,7.194437,1,0,0,69.13512,8.550937,0,3.780896,1 +6,1,25,1,1,128665,0,7717.122,3.863107,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,76.57796,8.951326,1.386294,,0 +6,1,25,1,2,128665,0,7717.122,4.863108,0,16,1,10.40526,0,0,0,0,10.40526,0,0,0,1,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,76.57796,8.951326,1.386294,2.342311,1 +6,1,25,1,3,128665,0,7717.122,5.863108,0,16,1,11.47132,0,0,0,0,11.47132,0,0,0,2,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,76.57796,8.951326,1.386294,2.43985,1 +6,1,25,1,4,128665,0,7717.122,6.863108,0,16,1,5.532504,0,0,0,0,5.532504,0,0,0,1,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,76.57796,8.951326,1.386294,1.71064,1 +6,1,25,1,5,128665,0,7717.122,7.863108,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,76.57796,8.951326,1.386294,,0 +6,1,25,1,1,128666,0,7717.122,32.76112,0,18,1,0,0,0,0,0,0,0,0,0,0,0,4,84.2,13,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,72.46915,8.951326,1.386294,,0 +6,1,25,1,2,128666,0,7717.122,33.76112,0,18,1,36.4184,0,0,0,0,36.4184,0,0,0,1,0,4,84.2,13,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,72.46915,8.951326,1.386294,3.595074,1 +6,1,25,1,3,128666,0,7717.122,34.76112,0,18,1,0,0,0,0,0,0,0,0,0,0,0,4,84.2,13,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,72.46915,8.951326,1.386294,,0 +6,1,25,1,4,128666,0,7717.122,35.76112,0,18,1,0,0,0,0,0,0,0,0,0,0,0,4,84.2,13,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,72.46915,8.951326,1.386294,,0 +6,1,25,1,5,128666,0,7717.122,36.76112,0,18,1,0,0,0,0,0,0,0,0,0,0,0,4,84.2,13,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,72.46915,8.951326,1.386294,,0 +6,1,25,1,1,128667,0,7717.122,31.86311,1,16,1,5.995204,4.256595,0,0,0,10.2518,0,0,0,1,0,4,85.3,8.7,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,73.37328,8.951326,1.386294,2.327453,1 +6,1,25,1,2,128667,0,7717.122,32.86311,1,16,1,9.58379,0,0,0,0,9.58379,0,0,0,1,0,4,85.3,8.7,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,73.37328,8.951326,1.386294,2.260073,1 +6,1,25,1,3,128667,0,7717.122,33.86311,1,16,1,38.65337,0,0,0,0,38.65337,0,0,0,2,0,4,85.3,8.7,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,73.37328,8.951326,1.386294,3.654634,1 +6,1,25,1,4,128667,0,7717.122,34.86311,1,16,1,9.22084,0,0,0,0,9.22084,0,0,0,1,0,4,85.3,8.7,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,73.37328,8.951326,1.386294,2.221466,1 +6,1,25,1,5,128667,0,7717.122,35.86311,1,16,1,0,0,0,0,0,0,0,0,0,0,0,4,85.3,8.7,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,73.37328,8.951326,1.386294,,0 +2,1,100,1,1,128670,0,14238.83,32.47091,0,17,1,11.3028,2.968471,21.13623,0,0,35.4075,0,0,0,1,1,2,83.2,8.7,0,,949,949,0,0,.6931472,6.855409,1,0,0,0,0,0,76.08279,9.563799,.6931472,3.566924,1 +2,1,100,1,2,128670,0,14238.83,33.47091,0,17,1,0,5.225912,0,0,0,5.225912,0,0,0,0,0,2,83.2,8.7,0,,949,949,0,0,.6931472,6.855409,1,0,0,0,0,0,76.08279,9.563799,.6931472,1.653629,1 +2,1,100,1,3,128670,0,14238.83,34.47091,0,17,1,0,0,0,0,0,0,0,0,0,0,0,2,83.2,8.7,0,,949,949,0,0,.6931472,6.855409,1,0,0,0,0,0,76.08279,9.563799,.6931472,,0 +2,1,100,1,1,128671,0,14238.83,28.13963,1,12,1,105.8894,84.21178,0,0,0,190.1011,0,0,0,13,0,2,80,30.4,0,,949,949,0,0,.6931472,6.855409,1,0,0,0,0,0,76.55543,9.563799,.6931472,5.247556,1 +2,1,100,1,2,128671,0,14238.83,29.13963,1,12,1,144.2569,68.38868,27.3816,0,0,240.0272,0,0,0,8,0,2,80,30.4,0,,949,949,0,0,.6931472,6.855409,1,0,0,0,0,0,76.55543,9.563799,.6931472,5.480752,1 +2,1,100,1,3,128671,0,14238.83,30.13963,1,12,1,129.9554,83.04757,9.737364,0,0,222.7403,0,0,0,11,0,2,80,30.4,0,,949,949,0,0,.6931472,6.855409,1,0,0,0,0,0,76.55543,9.563799,.6931472,5.406007,1 +3,1,100,1,1,128686,0,16350.5,53.42094,0,12,1,14.8721,4.312909,0,0,0,19.18501,0,0,0,1,0,2,64.2,21.7,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,1,0,0,64.33474,9.702075,.6931472,2.954129,1 +3,1,100,1,2,128686,0,16350.5,54.42094,0,12,1,61.78552,6.303756,0,0,0,68.08928,0,0,0,4,0,2,64.2,21.7,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,1,0,0,64.33474,9.702075,.6931472,4.22082,1 +3,1,100,1,3,128686,0,16350.5,55.42094,0,12,1,4.459861,0,0,0,0,4.459861,0,0,0,1,0,2,64.2,21.7,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,1,0,0,64.33474,9.702075,.6931472,1.495118,1 +3,1,100,1,4,128686,0,16350.5,56.42094,0,12,1,69.29784,13.24461,0,0,0,82.54245,0,0,0,2,0,2,64.2,21.7,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,1,0,0,64.33474,9.702075,.6931472,4.413313,1 +3,1,100,1,5,128686,0,16350.5,57.42094,0,12,1,31.13168,4.106016,0,0,0,35.23769,0,0,0,3,1,2,64.2,21.7,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,1,0,0,64.33474,9.702075,.6931472,3.562116,1 +3,1,100,1,1,128687,0,16350.5,51.39767,1,13,1,73.17073,95.03271,0,0,0,168.2034,0,0,0,5,0,2,51.6,30.4,1,,1000,1000,0,0,.6931472,6.907755,1,0,0,0,1,0,55.8782,9.702075,.6931472,5.125174,1 +3,1,100,1,2,128687,0,16350.5,52.39767,1,13,1,20.6859,57.24551,31.30103,0,0,109.2324,0,0,0,2,0,2,51.6,30.4,1,,1000,1000,0,0,.6931472,6.907755,1,0,0,0,1,0,55.8782,9.702075,.6931472,4.693478,1 +3,1,100,1,3,128687,0,16350.5,53.39767,1,13,1,36.17443,35.51041,0,0,0,71.68484,0,0,0,3,0,2,51.6,30.4,1,,1000,1000,0,0,.6931472,6.907755,1,0,0,0,1,0,55.8782,9.702075,.6931472,4.272279,1 +3,1,100,1,4,128687,0,16350.5,54.39767,1,13,1,109.9862,111.8862,0,0,3041.831,3263.704,1,0,0,13,1,2,51.6,30.4,1,,1000,1000,0,0,.6931472,6.907755,1,0,0,0,1,0,55.8782,9.702075,.6931472,8.090618,1 +3,1,100,1,5,128687,0,16350.5,55.39767,1,13,1,201.9352,116.3147,0,86.66386,5679.966,5998.216,3,0,5,6,0,2,51.6,30.4,1,,1000,1000,0,0,.6931472,6.907755,1,0,0,0,1,0,55.8782,9.702075,.6931472,8.699218,1 +8,1,50,0,1,128705,0,11037.84,11.20055,0,12,1,5.94884,0,0,0,0,5.94884,0,0,0,1,0,4,74.36826,13.73189,0,,690,690,1,0,1.386294,6.536692,0,3.931826,7.229839,0,0,0,86.56511,9.309175,1.386294,1.783196,1 +8,1,50,0,2,128705,0,11037.84,12.20055,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,690,690,1,0,1.386294,6.536692,0,3.931826,7.229839,0,0,0,86.56511,9.309175,1.386294,,0 +8,1,50,0,3,128705,0,11037.84,13.20055,0,12,1,5.946482,2.948464,0,0,0,8.894945,0,0,0,1,0,4,74.36826,13.73189,0,,690,690,1,0,1.386294,6.536692,0,3.931826,7.229839,0,0,0,86.56511,9.309175,1.386294,2.185483,1 +8,1,50,0,1,128706,0,11037.84,13.28679,0,12,1,20.22606,3.271862,27.97739,0,0,51.47531,0,0,0,2,0,4,74.36826,13.73189,0,,690,690,1,0,1.386294,6.536692,0,3.931826,7.229839,0,0,0,86.56511,9.309175,1.386294,3.941102,1 +8,1,50,0,2,128706,0,11037.84,14.28679,0,12,1,10.88732,2.504083,0,0,0,13.3914,0,0,0,2,0,4,74.36826,13.73189,0,,690,690,1,0,1.386294,6.536692,0,3.931826,7.229839,0,0,0,86.56511,9.309175,1.386294,2.594613,1 +8,1,50,0,3,128706,0,11037.84,15.28679,0,12,1,26.75917,1.783944,22.29931,0,0,50.84242,0,0,0,3,0,4,74.36826,13.73189,0,,690,690,1,0,1.386294,6.536692,0,3.931826,7.229839,0,0,0,86.56511,9.309175,1.386294,3.928731,1 +8,1,50,0,1,128708,0,11037.84,36.48186,1,12,1,125.5205,122.9209,0,0,0,248.4414,0,0,0,9,0,4,57.5,13.73189,1,,690,690,0,0,1.386294,6.536692,0,3.931826,7.229839,1,0,0,69.93219,9.309175,1.386294,5.515207,1 +8,1,50,0,2,128708,0,11037.84,37.48186,1,12,1,75.12248,135.89,0,0,0,211.0125,0,0,0,7,0,4,57.5,13.73189,1,,690,690,0,0,1.386294,6.536692,0,3.931826,7.229839,1,0,0,69.93219,9.309175,1.386294,5.351917,1 +8,1,50,0,3,128708,0,11037.84,38.48186,1,12,1,74.33102,123.2656,0,0,0,197.5966,0,0,0,5,0,4,57.5,13.73189,1,,690,690,0,0,1.386294,6.536692,0,3.931826,7.229839,1,0,0,69.93219,9.309175,1.386294,5.286228,1 +8,1,50,0,1,128709,0,11037.84,12.20534,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,690,690,1,1,1.386294,6.536692,0,3.931826,7.229839,0,0,0,86.05113,9.309175,1.386294,,0 +8,1,50,0,2,128709,0,11037.84,13.20534,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,690,690,1,1,1.386294,6.536692,0,3.931826,7.229839,0,0,0,86.05113,9.309175,1.386294,,0 +8,1,50,0,3,128709,0,11037.84,14.20534,1,12,1,3.468781,2.452924,0,0,0,5.921705,0,0,0,1,0,4,74.36826,13.73189,0,,690,690,1,1,1.386294,6.536692,0,3.931826,7.229839,0,0,0,86.05113,9.309175,1.386294,1.778624,1 +10,1,50,0,1,128723,0,7967.122,37.25667,1,12,1,63.95003,4.134444,0,0,0,68.08447,0,0,0,2,0,5,81.3,13.73189,0,,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,71.8062,8.983204,1.609438,4.220749,1 +10,1,50,0,2,128723,0,7967.122,38.25667,1,12,1,12.52041,0,0,0,0,12.52041,0,0,0,1,0,5,81.3,13.73189,0,,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,71.8062,8.983204,1.609438,2.52736,1 +10,1,50,0,3,128723,0,7967.122,39.25667,1,12,1,48.56293,0,27.25471,0,0,75.81764,0,0,0,4,0,5,81.3,13.73189,0,,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,71.8062,8.983204,1.609438,4.328331,1 +10,1,50,0,1,128724,0,7967.122,41.35524,0,18,1,62.46282,6.216538,30.93397,0,0,99.61333,0,0,0,3,0,5,77.5,13.73189,0,,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,72.91832,8.983204,1.609438,4.601296,1 +10,1,50,0,2,128724,0,7967.122,42.35524,0,18,1,88.73163,5.715841,29.94012,0,0,124.3876,0,0,0,2,10,5,77.5,13.73189,0,,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,72.91832,8.983204,1.609438,4.823402,1 +10,1,50,0,3,128724,0,7967.122,43.35524,0,18,1,274.777,2.973241,38.65213,0,0,316.4024,0,0,0,6,14,5,77.5,13.73189,0,,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,72.91832,8.983204,1.609438,5.757015,1 +10,1,50,0,1,128725,0,7967.122,9.141684,1,12,1,72.57585,.892326,0,0,0,73.46817,0,0,0,2,1,5,74.36826,13.73189,0,,1000,1000,1,1,1.609438,6.907755,0,3.931826,7.600903,0,0,0,82.71185,8.983204,1.609438,4.296852,1 +10,1,50,0,2,128725,0,7967.122,10.14168,1,12,1,1.633097,0,0,0,0,1.633097,0,0,0,1,0,5,74.36826,13.73189,0,,1000,1000,1,1,1.609438,6.907755,0,3.931826,7.600903,0,0,0,82.71185,8.983204,1.609438,.4904785,1 +10,1,50,0,3,128725,0,7967.122,11.14168,1,12,1,20.81269,4.905848,0,0,0,25.71853,0,0,0,2,0,5,74.36826,13.73189,0,,1000,1000,1,1,1.609438,6.907755,0,3.931826,7.600903,0,0,0,82.71185,8.983204,1.609438,3.247212,1 +10,1,50,0,1,128726,0,7967.122,11.54552,0,12,1,34.50327,9.351577,0,0,0,43.85485,0,0,0,3,0,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,1,0,0,78.24947,8.983204,1.609438,3.780885,1 +10,1,50,0,2,128726,0,7967.122,12.54552,0,12,1,23.40773,0,0,0,0,23.40773,0,0,0,2,0,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,1,0,0,78.24947,8.983204,1.609438,3.153066,1 +10,1,50,0,3,128726,0,7967.122,13.54552,0,12,1,62.68583,1.73439,29.23687,0,0,93.65709,0,0,0,3,1,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,1,0,0,78.24947,8.983204,1.609438,4.53964,1 +10,1,50,0,1,128727,0,7967.122,6.004107,0,12,1,42.23676,10.79714,24.24747,0,0,77.28138,0,0,0,5,0,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,1,0,0,76.31956,8.983204,1.609438,4.347453,1 +10,1,50,0,2,128727,0,7967.122,7.004107,0,12,1,81.65487,2.150245,22.59118,0,350.92,457.3163,1,0,0,8,0,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,1,0,0,76.31956,8.983204,1.609438,6.125375,1 +10,1,50,0,3,128727,0,7967.122,8.004107,0,12,1,24.77701,6.119921,7.680872,0,0,38.5778,0,0,0,3,0,5,74.36826,13.73189,0,,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,1,0,0,76.31956,8.983204,1.609438,3.652677,1 +9,1,50,1,1,128757,0,11526.05,15.73443,0,12,1,23.53118,0,31.95444,0,0,55.48561,0,0,0,2,0,5,94.4,0,0,,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,80.43655,9.352452,1.609438,4.016124,1 +9,1,50,1,2,128757,0,11526.05,16.73443,0,12,1,20.81051,12.51369,0,0,0,33.32421,0,0,0,3,0,6,94.4,0,0,,1000,1000,1,0,1.791759,6.907755,0,3.931826,7.600903,0,0,0,80.43655,9.352452,1.791759,3.506284,1 +9,1,50,1,3,128757,0,11526.05,17.73443,0,12,1,205.8105,2.917706,27.62593,0,0,236.3541,0,0,0,4,0,6,94.4,0,0,,1000,1000,1,0,1.791759,6.907755,0,3.931826,7.600903,0,0,0,80.43655,9.352452,1.791759,5.465331,1 +9,1,50,1,4,128757,0,11526.05,18.73443,0,12,1,11.52605,0,12.44813,0,0,23.97418,0,0,0,0,1,6,94.4,0,0,,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,0,0,0,80.43655,9.352452,1.791759,3.176977,1 +9,1,50,1,5,128757,0,11526.05,19.73443,0,12,1,7.617435,2.877698,0,0,0,10.49513,0,0,0,1,0,6,94.4,0,0,,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,0,0,0,80.43655,9.352452,1.791759,2.350912,1 +9,1,50,1,1,128758,0,11526.05,17.26763,0,12,1,25.77938,0,31.95444,0,0,57.73381,0,0,0,2,0,5,66.3,8.7,0,,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,80.43655,9.352452,1.609438,4.055843,1 +9,1,50,1,2,128758,0,11526.05,18.26763,0,12,1,6.845564,0,0,0,0,6.845564,0,0,0,1,0,6,66.3,8.7,0,,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,0,0,0,80.43655,9.352452,1.791759,1.923601,1 +9,1,50,1,3,128758,0,11526.05,19.26763,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,66.3,8.7,0,,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,0,0,0,80.43655,9.352452,1.791759,,0 +9,1,50,1,4,128758,0,11526.05,20.26763,0,12,1,24.89627,.9220839,0,0,0,25.81835,0,0,0,1,0,6,66.3,8.7,0,,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,0,0,0,80.43655,9.352452,1.791759,3.251086,1 +9,1,50,1,5,128758,0,11526.05,21.26763,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,66.3,8.7,0,,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,0,0,0,80.43655,9.352452,1.791759,,0 +9,1,50,1,1,128759,0,11526.05,37.77139,1,12,1,11.99041,4.376499,27.56595,0,961.0971,1005.03,1,0,0,1,0,5,80,8.7,0,,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,78.54103,9.352452,1.609438,6.912773,1 +9,1,50,1,2,128759,0,11526.05,38.77139,1,12,1,10.9529,0,0,0,0,10.9529,0,0,0,1,0,6,80,8.7,0,,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,0,0,0,78.54103,9.352452,1.791759,2.393605,1 +9,1,50,1,3,128759,0,11526.05,39.77139,1,12,1,18.70324,0,0,0,0,18.70324,0,0,0,2,0,6,80,8.7,0,,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,0,0,0,78.54103,9.352452,1.791759,2.928697,1 +9,1,50,1,4,128759,0,11526.05,40.77139,1,12,1,7.837713,0,0,0,0,7.837713,0,0,0,0,0,6,80,8.7,0,,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,0,0,0,78.54103,9.352452,1.791759,2.058947,1 +9,1,50,1,5,128759,0,11526.05,41.77139,1,12,1,194.2023,11.91282,35.01904,0,0,241.1342,0,0,0,4,9,6,80,8.7,0,,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,0,0,0,78.54103,9.352452,1.791759,5.485353,1 +9,1,50,1,1,128760,0,11526.05,14.78713,1,12,1,35.3717,7.284173,0,0,0,42.65588,0,0,0,1,0,5,73.3,8.7,0,,1000,1000,1,1,1.609438,6.907755,0,3.931826,7.600903,0,0,0,75.09985,9.352452,1.609438,3.753165,1 +9,1,50,1,2,128760,0,11526.05,15.78713,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,73.3,8.7,0,,1000,1000,1,1,1.791759,6.907755,0,3.931826,7.600903,0,0,0,75.09985,9.352452,1.791759,,0 +9,1,50,1,3,128760,0,11526.05,16.78713,1,12,1,38.52868,1.745636,0,0,0,40.27431,0,0,0,2,0,6,73.3,8.7,0,,1000,1000,1,1,1.791759,6.907755,0,3.931826,7.600903,0,0,0,75.09985,9.352452,1.791759,3.695714,1 +9,1,50,1,4,128760,0,11526.05,17.78713,1,12,1,42.41586,33.3656,.9220839,0,431.3278,508.0313,1,0,0,4,0,6,73.3,8.7,0,,1000,1000,1,1,1.791759,6.907755,0,3.931826,7.600903,0,0,0,75.09985,9.352452,1.791759,6.230543,1 +9,1,50,1,5,128760,0,11526.05,18.78713,1,12,1,0,1.967837,0,0,0,1.967837,0,0,0,0,0,6,73.3,8.7,0,,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,0,0,0,75.09985,9.352452,1.791759,.6769352,1 +9,1,50,1,1,128761,0,11526.05,36.88706,0,18,1,57.85372,8.033573,38.21943,0,0,104.1067,0,0,0,3,0,5,71.6,0,0,,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,79.00905,9.352452,1.609438,4.645416,1 +9,1,50,1,2,128761,0,11526.05,37.88706,0,18,1,41.07338,7.420591,0,0,0,48.49398,0,0,0,0,3,6,71.6,0,0,,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,0,0,0,79.00905,9.352452,1.791759,3.88144,1 +9,1,50,1,3,128761,0,11526.05,38.88706,0,18,1,47.38155,0,0,0,257.6559,305.0374,1,0,0,2,0,6,71.6,0,0,,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,0,0,0,79.00905,9.352452,1.791759,5.720435,1 +9,1,50,1,4,128761,0,11526.05,39.88706,0,18,1,0,0,0,0,0,0,0,0,0,0,0,6,71.6,0,0,,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,0,0,0,79.00905,9.352452,1.791759,,0 +9,1,50,1,5,128761,0,11526.05,40.88706,0,18,1,13.11892,0,27.74016,0,0,40.85908,0,0,0,1,0,6,71.6,0,0,,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,0,0,0,79.00905,9.352452,1.791759,3.710129,1 +2,1,100,1,1,128767,0,9549.008,32.92539,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,80,13,0,,900,900,0,0,1.386294,6.802395,1,0,0,0,0,0,77.67306,9.164297,1.386294,,0 +2,1,100,1,2,128767,0,9549.008,33.92539,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,80,13,0,,900,900,0,0,1.386294,6.802395,1,0,0,0,0,0,77.67306,9.164297,1.386294,,0 +2,1,100,1,3,128767,0,9549.008,34.92539,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,80,13,0,,900,900,0,0,1.386294,6.802395,1,0,0,0,0,0,77.67306,9.164297,1.386294,,0 +2,1,100,1,1,128768,0,9549.008,29.96852,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,84.2,13,0,,900,900,0,0,1.386294,6.802395,1,0,0,0,0,0,79.50489,9.164297,1.386294,,0 +2,1,100,1,2,128768,0,9549.008,30.96852,1,12,1,24.49646,0,0,0,0,24.49646,0,0,0,1,0,4,84.2,13,0,,900,900,0,0,1.386294,6.802395,1,0,0,0,0,0,79.50489,9.164297,1.386294,3.198529,1 +2,1,100,1,3,128768,0,9549.008,31.96852,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,84.2,13,0,,900,900,0,0,1.386294,6.802395,1,0,0,0,0,0,79.50489,9.164297,1.386294,,0 +2,1,100,1,1,128769,0,9549.008,9.245722,0,12,1,35.69304,6.71624,0,0,0,42.40928,0,0,0,3,0,4,74.36826,13.73189,0,,900,900,1,0,1.386294,6.802395,1,0,0,0,0,0,85.34759,9.164297,1.386294,3.747367,1 +2,1,100,1,2,128769,0,9549.008,10.24572,0,12,1,4.899292,1.061513,0,0,0,5.960806,0,0,0,1,0,4,74.36826,13.73189,0,,900,900,1,0,1.386294,6.802395,1,0,0,0,0,0,85.34759,9.164297,1.386294,1.785206,1 +2,1,100,1,3,128769,0,9549.008,11.24572,0,12,1,7.433102,4.658077,0,0,0,12.09118,0,0,0,1,0,4,74.36826,13.73189,0,,900,900,1,0,1.386294,6.802395,1,0,0,0,0,0,85.34759,9.164297,1.386294,2.492476,1 +2,1,100,1,1,128770,0,9549.008,12.4052,1,12,1,16.65675,.9518144,0,0,0,17.60857,0,0,0,1,0,4,74.36826,13.73189,0,,900,900,1,1,1.386294,6.802395,1,0,0,0,0,0,84.83361,9.164297,1.386294,2.868386,1 +2,1,100,1,2,128770,0,9549.008,13.4052,1,12,1,6.53239,0,0,0,0,6.53239,0,0,0,1,0,4,74.36826,13.73189,0,,900,900,1,1,1.386294,6.802395,1,0,0,0,0,0,84.83361,9.164297,1.386294,1.876773,1 +2,1,100,1,3,128770,0,9549.008,14.4052,1,12,1,22.29931,0,0,0,0,22.29931,0,0,0,1,0,4,74.36826,13.73189,0,,900,900,1,1,1.386294,6.802395,1,0,0,0,0,0,84.83361,9.164297,1.386294,3.104556,1 +6,1,25,1,1,128771,0,17027.92,30.54346,0,17,1,35.09816,0,34.19393,0,0,69.29209,0,0,0,2,0,3,90.5,8.7,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,79.23241,9.742668,1.098612,4.238331,1 +6,1,25,1,2,128771,0,17027.92,31.54346,0,17,1,6.53239,4.654328,0,0,0,11.18672,0,0,0,1,0,4,90.5,8.7,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,79.23241,9.742668,1.386294,2.414727,1 +6,1,25,1,3,128771,0,17027.92,32.54346,0,17,1,19.32607,8.414271,28.99901,0,0,56.73935,0,0,0,2,0,4,90.5,8.7,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,79.23241,9.742668,1.386294,4.038468,1 +6,1,25,1,1,128772,0,17027.92,3.126626,1,15,1,42.23676,34.17609,0,0,0,76.41285,0,0,0,5,0,3,74.36826,13.73189,0,,1000,1000,1,1,1.098612,6.907755,0,3.258096,8.294049,0,0,0,81.77524,9.742668,1.098612,4.336151,1 +6,1,25,1,2,128772,0,17027.92,4.126626,1,15,1,268.6445,10.96897,0,0,0,279.6135,0,0,0,22,41,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,0,0,0,81.77524,9.742668,1.386294,5.633408,1 +6,1,25,1,3,128772,0,17027.92,5.126626,1,15,1,280.9713,40.88206,0,0,0,321.8533,0,0,0,41,32,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,0,0,0,81.77524,9.742668,1.386294,5.774096,1 +6,1,25,1,1,128773,0,17027.92,28.36413,1,15,1,48.1856,19.36347,0,0,731.7133,799.2623,1,0,0,2,0,3,96.8,4.3,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,79.96555,9.742668,1.098612,6.683689,1 +6,1,25,1,2,128773,0,17027.92,29.36413,1,15,1,263.2009,17.17474,0,0,2118.759,2399.135,1,0,0,22,0,4,96.8,4.3,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,79.96555,9.742668,1.386294,7.782863,1 +6,1,25,1,3,128773,0,17027.92,30.36413,1,15,1,622.3984,220.7978,0,0,0,843.1962,0,0,0,65,0,4,96.8,4.3,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,79.96555,9.742668,1.386294,6.7372,1 +11,1,0,1,1,128808,0,9253.722,31.62218,0,17,1,0,29.71823,0,0,0,29.71823,0,0,0,0,0,3,55.8,8.7,0,,0,192,0,0,1.098612,5.257495,0,0,0,1,0,0,65.66811,9.132889,1.098612,3.391761,1 +11,1,0,1,2,128808,0,9253.722,32.62218,0,17,1,113.6364,6.544359,0,21.90581,1063.527,1183.708,1,0,1,2,0,3,55.8,8.7,0,,0,192,0,0,1.098612,5.257495,0,0,0,1,0,0,65.66811,9.132889,1.098612,7.076407,1 +11,1,0,1,3,128808,0,9253.722,33.62218,0,17,1,0,0,0,0,0,0,0,0,0,0,0,3,55.8,8.7,0,,0,192,0,0,1.098612,5.257495,0,0,0,1,0,0,65.66811,9.132889,1.098612,,0 +11,1,0,1,1,128809,0,9253.722,28.39425,1,12,1,40.76739,3.657074,0,0,0,44.42446,0,0,0,2,1,3,71.6,17.4,0,,0,192,0,0,1.098612,5.257495,0,0,0,1,0,0,71.41678,9.132889,1.098612,3.79379,1 +11,1,0,1,2,128809,0,9253.722,29.39425,1,12,1,127.5192,2.135816,0,0,950.0547,1079.71,1,0,0,3,1,3,71.6,17.4,0,,0,192,0,0,1.098612,5.257495,0,0,0,1,0,0,71.41678,9.132889,1.098612,6.984447,1 +11,1,0,1,3,128809,0,9253.722,30.39425,1,12,1,29.92519,0,0,0,0,29.92519,0,0,0,1,0,3,71.6,17.4,0,,0,192,0,0,1.098612,5.257495,0,0,0,1,0,0,71.41678,9.132889,1.098612,3.3987,1 +11,1,0,1,1,128810,0,9253.722,4.202601,1,12,1,44.96403,3.597122,0,0,0,48.56115,0,0,0,4,0,3,74.36826,13.73189,0,,0,192,1,1,1.098612,5.257495,0,0,0,0,0,0,79.40221,9.132889,1.098612,3.882824,1 +11,1,0,1,2,128810,0,9253.722,5.202601,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,74.36826,13.73189,0,,0,192,1,1,1.098612,5.257495,0,0,0,0,0,0,79.40221,9.132889,1.098612,,0 +11,1,0,1,3,128810,0,9253.722,6.202601,1,12,1,18.95262,3.990025,0,0,0,22.94264,0,0,0,3,0,3,74.36826,13.73189,0,,0,192,1,1,1.098612,5.257495,0,0,0,0,0,0,79.40221,9.132889,1.098612,3.132997,1 +11,1,0,1,1,128812,0,13159.43,13.07598,1,12,1,20.98321,3.357314,24.43645,0,0,48.77698,0,0,0,1,1,4,74.36826,13.73189,0,,0,60,1,1,1.386294,4.094345,0,0,0,0,0,0,83.29486,9.48497,1.386294,3.887259,1 +11,1,0,1,2,128812,0,13159.43,14.07598,1,12,1,33.40635,8.871851,0,0,0,42.2782,0,0,0,2,0,4,74.36826,13.73189,0,,0,60,1,1,1.386294,4.094345,0,0,0,0,0,0,83.29486,9.48497,1.386294,3.744272,1 +11,1,0,1,3,128812,0,13159.43,15.07598,1,12,1,12.46883,12.06983,23.69077,0,0,48.22943,0,0,0,1,0,4,74.36826,13.73189,0,,0,60,1,1,1.386294,4.094345,0,0,0,0,0,0,83.29486,9.48497,1.386294,3.875969,1 +11,1,0,1,4,128812,0,13159.43,16.07598,1,12,1,46.10419,7.100046,0,0,0,53.20424,0,0,0,4,0,4,74.36826,13.73189,0,,0,60,1,1,1.386294,4.094345,0,0,0,0,0,0,83.29486,9.48497,1.386294,3.974138,1 +11,1,0,1,5,128812,0,13159.43,17.07598,1,12,1,21.37114,6.157427,26.23783,0,0,53.7664,0,0,0,2,0,4,74.36826,13.73189,0,,0,60,1,1,1.386294,4.094345,0,0,0,0,0,0,83.29486,9.48497,1.386294,3.984649,1 +11,1,0,1,1,128813,0,13159.43,9.453798,0,12,1,178.0576,62.73981,23.4952,0,534.982,799.2746,1,0,0,34,0,4,74.36826,13.73189,0,,0,60,1,0,1.386294,4.094345,0,0,0,1,0,0,74.60253,9.48497,1.386294,6.683704,1 +11,1,0,1,2,128813,0,13159.43,10.4538,0,12,1,94.74261,19.27711,14.23877,0,0,128.2585,0,0,0,22,0,4,74.36826,13.73189,0,,0,60,1,0,1.386294,4.094345,0,0,0,1,0,0,74.60253,9.48497,1.386294,4.854048,1 +11,1,0,1,3,128813,0,13159.43,11.4538,0,12,1,157.8554,16.68329,14.46384,0,0,189.0025,0,0,0,31,0,4,74.36826,13.73189,0,,0,60,1,0,1.386294,4.094345,0,0,0,1,0,0,74.60253,9.48497,1.386294,5.24176,1 +11,1,0,1,4,128813,0,13159.43,12.4538,0,12,1,59.47441,5.532504,32.9645,0,0,97.97141,0,0,0,4,0,4,74.36826,13.73189,0,,0,60,1,0,1.386294,4.094345,0,0,0,1,0,0,74.60253,9.48497,1.386294,4.584676,1 +11,1,0,1,5,128813,0,13159.43,13.4538,0,12,1,116.1659,9.331359,24.65087,0,0,150.1481,0,0,0,7,0,4,74.36826,13.73189,0,,0,60,1,0,1.386294,4.094345,0,0,0,1,0,0,74.60253,9.48497,1.386294,5.011622,1 +11,1,0,1,1,128814,0,13159.43,37.65366,1,12,1,32.67386,216.0791,0,119.9041,0,248.753,0,0,5,2,0,4,36.8,17.4,0,,0,60,0,0,1.386294,4.094345,0,0,0,0,0,0,73.39919,9.48497,1.386294,5.51646,1 +11,1,0,1,2,128814,0,13159.43,38.65366,1,12,1,48.19277,181.4841,30.66813,150.6024,0,260.345,0,0,6,4,0,4,36.8,17.4,0,,0,60,0,0,1.386294,4.094345,0,0,0,0,0,0,73.39919,9.48497,1.386294,5.562008,1 +11,1,0,1,3,128814,0,13159.43,39.65366,1,12,1,48.37905,227.1571,38.65337,256.8578,0,314.1895,0,0,12,2,0,4,36.8,17.4,0,,0,60,0,0,1.386294,4.094345,0,0,0,0,0,0,73.39919,9.48497,1.386294,5.749996,1 +11,1,0,1,4,128814,0,13159.43,40.65366,1,12,1,107.8838,207.2845,0,228.2158,2219.751,2534.919,1,0,10,10,0,4,36.8,17.4,0,,0,60,0,0,1.386294,4.094345,0,0,0,0,0,0,73.39919,9.48497,1.386294,7.837917,1 +11,1,0,1,5,128814,0,13159.43,41.65366,1,12,1,178.375,130.1523,29.83496,152.3487,0,338.3622,0,0,6,12,0,4,36.8,17.4,0,,0,60,0,0,1.386294,4.094345,0,0,0,0,0,0,73.39919,9.48497,1.386294,5.824117,1 +11,1,0,1,1,128815,0,13159.43,40.26831,0,16,1,189.7482,37.33213,31.17506,0,0,258.2554,0,0,0,28,0,4,66.3,13,0,,0,60,0,0,1.386294,4.094345,0,0,0,0,0,0,73.36005,9.48497,1.386294,5.553949,1 +11,1,0,1,2,128815,0,13159.43,41.26831,0,16,1,47.64513,26.58817,18.07229,54.76451,0,92.30559,0,0,2,9,0,4,66.3,13,0,,0,60,0,0,1.386294,4.094345,0,0,0,0,0,0,73.36005,9.48497,1.386294,4.525105,1 +11,1,0,1,3,128815,0,13159.43,42.26831,0,16,1,14.96259,7.306733,34.16459,296.7581,0,56.43391,0,0,13,1,0,4,66.3,13,0,,0,60,0,0,1.386294,4.094345,0,0,0,0,0,0,73.36005,9.48497,1.386294,4.03307,1 +11,1,0,1,4,128815,0,13159.43,43.26831,0,16,1,65.00691,16.41309,23.0521,0,0,104.4721,0,0,0,9,0,4,66.3,13,0,,0,60,0,0,1.386294,4.094345,0,0,0,0,0,0,73.36005,9.48497,1.386294,4.64892,1 +11,1,0,1,5,128815,0,13159.43,44.26831,0,16,1,139.5472,27.06306,45.28142,0,0,211.8917,0,0,0,24,0,4,66.3,13,0,,0,60,0,0,1.386294,4.094345,0,0,0,0,0,0,73.36005,9.48497,1.386294,5.356075,1 +11,1,0,1,1,128840,0,4372.829,58.75154,1,16,1,46.76259,107.7998,0,0,0,154.5623,0,0,0,6,0,1,68.4,17.4,0,,0,258,0,0,0,5.552959,0,0,0,1,0,0,66.1049,8.383394,0,5.040597,1 +11,1,0,1,2,128840,0,4372.829,59.75154,1,16,1,36.14458,49.2333,52.65608,0,0,138.034,0,0,0,5,0,1,68.4,17.4,0,,0,258,0,0,0,5.552959,0,0,0,1,0,0,66.1049,8.383394,0,4.9275,1 +11,1,0,1,3,128840,0,4372.829,60.75154,1,16,1,68.82793,63.85536,0,0,0,132.6833,0,0,0,6,0,1,68.4,17.4,0,,0,258,0,0,0,5.552959,0,0,0,1,0,0,66.1049,8.383394,0,4.887965,1 +11,1,0,1,4,128840,0,4372.829,61.75154,1,16,1,95.43568,64.47672,0,0,0,159.9124,0,0,0,11,0,1,68.4,17.4,0,,0,258,0,0,0,5.552959,0,0,0,1,0,0,66.1049,8.383394,0,5.074626,1 +11,1,0,1,5,128840,0,4372.829,62.75154,1,16,1,477.8671,66.08125,4.159966,0,0,548.1083,0,0,0,10,0,1,68.4,17.4,0,,0,258,0,0,0,5.552959,0,0,0,1,0,0,66.1049,8.383394,0,6.306473,1 +11,1,0,0,1,128865,0,15260.55,36.5421,1,17,1,38.57479,40.97173,0,0,0,79.54652,0,0,0,4,0,4,57.9,13,0,,0,84,0,0,1.386294,4.430817,0,0,0,0,0,0,79.29243,9.633092,1.386294,4.376342,1 +11,1,0,0,2,128865,0,15260.55,37.5421,1,17,1,63.34232,40.48518,26.95418,0,0,130.7817,0,0,0,4,0,4,57.9,13,0,,0,84,0,0,1.386294,4.430817,0,0,0,0,0,0,79.29243,9.633092,1.386294,4.873529,1 +11,1,0,0,3,128865,0,15260.55,38.5421,1,17,1,244.5946,27.64128,12.77641,0,0,285.0123,0,0,0,5,0,4,57.9,13,0,,0,84,0,0,1.386294,4.430817,0,0,0,0,0,0,79.29243,9.633092,1.386294,5.652532,1 +11,1,0,0,4,128865,0,15260.55,39.5421,1,17,1,34.41203,18.79216,26.89152,0,0,80.09572,0,0,0,4,0,4,57.9,13,0,,0,84,0,0,1.386294,4.430817,0,0,0,0,0,0,79.29243,9.633092,1.386294,4.383223,1 +11,1,0,0,5,128865,0,15260.55,40.5421,1,17,1,142.9762,77.84493,0,0,0,220.8212,0,0,0,10,0,4,57.9,13,0,,0,84,0,0,1.386294,4.430817,0,0,0,0,0,0,79.29243,9.633092,1.386294,5.397353,1 +11,1,0,0,1,128866,0,15260.55,14.86379,0,17,1,135.8952,65.41814,30.62426,0,0,231.9376,0,0,0,16,0,4,49.5,13,0,,0,84,1,0,1.386294,4.430817,0,0,0,0,0,0,72.45129,9.633092,1.386294,5.446468,1 +11,1,0,0,2,128866,0,15260.55,15.86379,0,17,1,38.81401,54.28571,0,0,0,93.09973,0,0,0,8,0,4,49.5,13,0,,0,84,1,0,1.386294,4.430817,0,0,0,0,0,0,72.45129,9.633092,1.386294,4.533671,1 +11,1,0,0,3,128866,0,15260.55,16.86379,0,17,1,30.95823,73.34152,0,0,0,104.2998,0,0,0,7,0,4,49.5,13,0,,0,84,1,0,1.386294,4.430817,0,0,0,0,0,0,72.45129,9.633092,1.386294,4.647269,1 +11,1,0,0,4,128866,0,15260.55,17.86379,0,17,1,26.89152,36.98724,0,0,0,63.87876,0,0,0,5,0,4,49.5,13,0,,0,84,1,0,1.386294,4.430817,0,0,0,0,0,0,72.45129,9.633092,1.386294,4.156987,1 +11,1,0,0,5,128866,0,15260.55,18.86379,0,17,1,81.86327,33.38891,12.50521,0,0,127.7574,0,0,0,7,1,4,49.5,13,0,,0,84,0,0,1.386294,4.430817,0,0,0,0,0,0,72.45129,9.633092,1.386294,4.850133,1 +11,1,0,0,1,128867,0,15260.55,42.35455,0,17,1,35.48292,13.82803,0,0,0,49.31096,0,0,0,4,0,4,71.6,13,0,,0,84,0,0,1.386294,4.430817,0,0,0,0,0,0,76.61908,9.633092,1.386294,3.898146,1 +11,1,0,0,2,128867,0,15260.55,43.35455,0,17,1,13.47709,0,29.11051,0,0,42.5876,0,0,0,1,0,4,71.6,13,0,,0,84,0,0,1.386294,4.430817,0,0,0,0,0,0,76.61908,9.633092,1.386294,3.751563,1 +11,1,0,0,3,128867,0,15260.55,44.35455,0,17,1,30.58968,24.00491,0,0,0,54.59459,0,0,0,4,0,4,71.6,13,0,,0,84,0,0,1.386294,4.430817,0,0,0,0,0,0,76.61908,9.633092,1.386294,3.999935,1 +11,1,0,0,4,128867,0,15260.55,45.35455,0,17,1,55.6062,31.95078,36.00729,0,0,123.5643,0,0,0,4,0,4,71.6,13,0,,0,84,0,0,1.386294,4.430817,0,0,0,0,0,0,76.61908,9.633092,1.386294,4.816761,1 +11,1,0,0,5,128867,0,15260.55,46.35455,0,17,1,87.11964,7.23218,0,0,0,94.35181,0,0,0,2,0,4,71.6,13,0,,0,84,0,0,1.386294,4.430817,0,0,0,0,0,0,76.61908,9.633092,1.386294,4.54703,1 +11,1,0,0,1,128868,0,15260.55,11.75633,1,17,1,50.05889,5.65371,31.38987,0,0,87.10247,0,0,0,4,0,4,74.36826,13.73189,0,,0,84,1,1,1.386294,4.430817,0,0,0,1,0,0,80.09667,9.633092,1.386294,4.467085,1 +11,1,0,0,2,128868,0,15260.55,12.75633,1,17,1,71.15903,83.95148,12.93801,0,0,168.0485,0,0,0,11,0,4,74.36826,13.73189,0,,0,84,1,1,1.386294,4.430817,0,0,0,1,0,0,80.09667,9.633092,1.386294,5.124253,1 +11,1,0,0,3,128868,0,15260.55,13.75633,1,17,1,88.57494,168.7568,12.77641,0,0,270.1081,0,0,0,13,0,4,74.36826,13.73189,0,,0,84,1,1,1.386294,4.430817,0,0,0,1,0,0,80.09667,9.633092,1.386294,5.598822,1 +11,1,0,0,4,128868,0,15260.55,14.75633,1,17,1,34.82224,135.8022,0,0,0,170.6244,0,0,0,6,0,4,74.36826,13.73189,0,,0,84,1,1,1.386294,4.430817,0,0,0,1,0,0,80.09667,9.633092,1.386294,5.139465,1 +11,1,0,0,5,128868,0,15260.55,15.75633,1,17,1,57.31555,188.1617,23.34306,0,0,268.8203,0,0,0,9,0,4,74.36826,13.73189,0,,0,84,1,1,1.386294,4.430817,0,0,0,1,0,0,80.09667,9.633092,1.386294,5.594043,1 +11,1,0,0,1,128869,0,18811.16,11.55647,0,12,1,57.71496,2.944641,0,0,0,60.6596,0,0,0,5,0,5,74.36826,13.73189,0,,0,0,1,0,1.609438,0,0,0,0,0,0,0,85.46126,9.842258,1.609438,4.105278,1 +11,1,0,0,2,128869,0,18811.16,12.55647,0,12,1,37.19677,2.156334,0,0,0,39.3531,0,0,0,2,0,5,74.36826,13.73189,0,,0,0,1,0,1.609438,0,0,0,0,0,0,0,85.46126,9.842258,1.609438,3.672575,1 +11,1,0,0,3,128869,0,18811.16,13.55647,0,12,1,95.15971,15.70025,0,0,0,110.8599,0,0,0,9,0,5,74.36826,13.73189,0,,0,0,1,0,1.609438,0,0,0,0,0,0,0,85.46126,9.842258,1.609438,4.708268,1 +11,1,0,0,1,128870,0,18811.16,50.33812,1,12,1,247.3498,30.50648,0,0,0,277.8563,0,0,0,5,1,5,61.3,13.73189,0,,0,0,0,0,1.609438,0,0,0,0,1,0,0,71.26979,9.842258,1.609438,5.627104,1 +11,1,0,0,2,128870,0,18811.16,51.33812,1,12,1,28.57143,28.32884,52.39353,0,0,109.2938,0,0,0,2,0,5,61.3,13.73189,0,,0,0,0,0,1.609438,0,0,0,0,1,0,0,71.26979,9.842258,1.609438,4.69404,1 +11,1,0,0,3,128870,0,18811.16,52.33812,1,12,1,420.4423,83.63636,28.97789,0,0,533.0565,0,0,0,12,0,5,61.3,13.73189,0,,0,0,0,0,1.609438,0,0,0,0,1,0,0,71.26979,9.842258,1.609438,6.278627,1 +11,1,0,0,1,128872,0,18811.16,16.14511,0,12,1,50.64782,14.28151,0,0,0,64.92933,0,0,0,3,0,5,66.3,13.73189,0,,0,0,1,0,1.609438,0,0,0,0,0,0,0,79.76973,9.842258,1.609438,4.173299,1 +11,1,0,0,2,128872,0,18811.16,17.14511,0,12,1,53.63881,8.247978,30.42048,0,0,92.30727,0,0,0,8,0,5,66.3,13.73189,0,,0,0,1,0,1.609438,0,0,0,0,0,0,0,79.76973,9.842258,1.609438,4.525123,1 +11,1,0,0,3,128872,0,18811.16,18.14511,0,12,1,66.09337,38.13268,12.32432,0,0,116.5504,0,0,0,18,0,5,66.3,13.73189,0,,0,0,0,0,1.609438,0,0,0,0,0,0,0,79.76973,9.842258,1.609438,4.758324,1 +11,1,0,0,1,128873,0,18811.16,50.37098,0,16,1,14.7232,0,22.15548,0,0,36.87868,0,0,0,1,0,5,83.8,13.73189,0,,0,0,0,0,1.609438,0,0,0,0,0,0,0,76.56006,9.842258,1.609438,3.607634,1 +11,1,0,0,2,128873,0,18811.16,51.37098,0,16,1,18.86792,2.803235,0,0,0,21.67116,0,0,0,1,0,5,83.8,13.73189,0,,0,0,0,0,1.609438,0,0,0,0,0,0,0,76.56006,9.842258,1.609438,3.075982,1 +11,1,0,0,3,128873,0,18811.16,52.37098,0,16,1,228.5012,4.692875,37.32678,0,0,270.5209,0,0,0,4,0,5,83.8,13.73189,0,,0,0,0,0,1.609438,0,0,0,0,0,0,0,76.56006,9.842258,1.609438,5.600349,1 +11,1,0,0,1,128874,0,18811.16,22.14647,0,13,1,117.7856,40.10601,38.15665,0,0,196.0483,0,0,0,6,0,5,78.8,13.73189,0,,0,0,0,0,1.609438,0,0,0,0,1,0,0,71.67287,9.842258,1.609438,5.278361,1 +11,1,0,0,2,128874,0,18811.16,23.14647,0,13,1,94.87871,22.37736,0,0,0,117.2561,0,0,0,5,2,5,78.8,13.73189,0,,0,0,0,0,1.609438,0,0,0,0,1,0,0,71.67287,9.842258,1.609438,4.76436,1 +11,1,0,0,3,128874,0,18811.16,24.14647,0,13,1,46.68305,45.38084,30.29976,0,0,122.3636,0,0,0,6,0,5,78.8,13.73189,0,,0,0,0,0,1.609438,0,0,0,0,1,0,0,71.67287,9.842258,1.609438,4.806997,1 +9,1,50,1,1,128875,0,12632.75,18.35729,1,11,1,40.15467,1.784652,0,0,0,41.93932,0,0,0,2,0,2,76.8,8.7,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,70.05626,9.444127,.6931472,3.736224,1 +9,1,50,1,2,128875,0,12632.75,19.35729,1,11,1,13.60915,0,27.76266,0,0,41.3718,0,0,0,0,1,2,76.8,8.7,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,70.05626,9.444127,.6931472,3.7226,1 +9,1,50,1,3,128875,0,12632.75,20.35729,1,11,1,30.72349,14.81665,3.349851,0,0,48.88999,0,0,0,4,0,2,76.8,8.7,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,70.05626,9.444127,.6931472,3.889573,1 +9,1,50,1,4,128875,0,12632.75,21.35729,1,11,1,0,0,0,0,0,0,0,0,0,0,0,2,76.8,8.7,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,70.05626,9.444127,.6931472,,0 +9,1,50,1,5,128875,0,12632.75,22.35729,1,11,1,0,0,0,0,0,0,0,0,0,0,0,2,76.8,8.7,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,70.05626,9.444127,.6931472,,0 +9,1,50,1,1,128876,0,12632.75,53.1499,1,15,1,0,0,0,0,0,0,0,0,0,0,0,2,71.6,13,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,72.41956,9.444127,.6931472,,0 +9,1,50,1,2,128876,0,12632.75,54.1499,1,15,1,8.165487,0,20.47904,0,0,28.64453,0,0,0,0,1,2,71.6,13,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,72.41956,9.444127,.6931472,3.354963,1 +9,1,50,1,3,128876,0,12632.75,55.1499,1,15,1,8.424182,0,39.14767,0,0,47.57185,0,0,0,0,1,2,71.6,13,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,72.41956,9.444127,.6931472,3.862241,1 +9,1,50,1,4,128876,0,12632.75,56.1499,1,15,1,8.26067,0,39.46765,0,0,47.72832,0,0,0,0,1,2,71.6,13,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,72.41956,9.444127,.6931472,3.865525,1 +9,1,50,1,5,128876,0,12632.75,57.1499,1,15,1,13.46235,0,14.06815,0,0,27.5305,0,0,0,1,0,2,71.6,13,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,72.41956,9.444127,.6931472,3.315295,1 +1,1,0,1,1,128883,0,16769.85,8.788501,1,15,1,7.194244,7.20024,0,0,0,14.39448,0,0,0,1,0,5,74.36826,13.73189,0,,450,0,1,1,1.609438,0,1,0,0,0,0,0,84.27559,9.727398,1.609438,2.666845,1 +1,1,0,1,2,128883,0,16769.85,9.788501,1,15,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,450,0,1,1,1.609438,0,1,0,0,0,0,0,84.27559,9.727398,1.609438,,0 +1,1,0,1,3,128883,0,16769.85,10.7885,1,15,1,12.96758,5.63591,0,0,0,18.60349,0,0,0,2,0,5,74.36826,13.73189,0,,450,0,1,1,1.609438,0,1,0,0,0,0,0,84.27559,9.727398,1.609438,2.923349,1 +1,1,0,1,4,128883,0,16769.85,11.7885,1,15,1,46.56524,.8068234,27.46427,0,0,74.83633,0,0,0,2,0,5,74.36826,13.73189,0,,450,0,1,1,1.609438,0,1,0,0,0,0,0,84.27559,9.727398,1.609438,4.315303,1 +1,1,0,1,5,128883,0,16769.85,12.7885,1,15,1,11.42615,0,0,0,0,11.42615,0,0,0,1,0,5,74.36826,13.73189,0,,450,0,1,1,1.609438,0,1,0,0,0,0,0,84.27559,9.727398,1.609438,2.435905,1 +1,1,0,1,1,128884,0,16769.85,31.46612,1,15,1,489.1187,13.57314,0,0,0,502.6918,0,0,0,10,0,5,81.1,30.4,1,,450,0,0,0,1.609438,0,1,0,0,1,0,0,69.4852,9.727398,1.609438,6.219977,1 +1,1,0,1,2,128884,0,16769.85,32.46612,1,15,1,38.8828,11.96605,0,0,0,50.84885,0,0,0,3,0,5,81.1,30.4,1,,450,0,0,0,1.609438,0,1,0,0,1,0,0,69.4852,9.727398,1.609438,3.928858,1 +1,1,0,1,3,128884,0,16769.85,33.46612,1,15,1,15.46135,0,0,0,0,15.46135,0,0,0,1,0,5,81.1,30.4,1,,450,0,0,0,1.609438,0,1,0,0,1,0,0,69.4852,9.727398,1.609438,2.738343,1 +1,1,0,1,4,128884,0,16769.85,34.46612,1,15,1,29.96773,4.656524,0,0,0,34.62425,0,0,0,2,0,5,81.1,30.4,1,,450,0,0,0,1.609438,0,1,0,0,1,0,0,69.4852,9.727398,1.609438,3.544554,1 +1,1,0,1,5,128884,0,16769.85,35.46612,1,15,1,0,0,0,0,0,0,0,0,0,0,0,5,81.1,30.4,1,,450,0,0,0,1.609438,0,1,0,0,1,0,0,69.4852,9.727398,1.609438,,0 +1,1,0,1,1,128885,0,16769.85,32.3039,0,20,1,86.93046,1.372902,31.17506,0,0,119.4784,0,0,0,3,0,5,85.3,0,0,,450,0,0,0,1.609438,0,1,0,0,0,0,0,78.29784,9.727398,1.609438,4.783136,1 +1,1,0,1,2,128885,0,16769.85,33.3039,0,20,1,0,0,0,0,0,0,0,0,0,0,0,5,85.3,0,0,,450,0,0,0,1.609438,0,1,0,0,0,0,0,78.29784,9.727398,1.609438,,0 +1,1,0,1,3,128885,0,16769.85,34.3039,0,20,1,0,0,0,0,0,0,0,0,0,0,0,5,85.3,0,0,,450,0,0,0,1.609438,0,1,0,0,0,0,0,78.29784,9.727398,1.609438,,0 +1,1,0,1,4,128885,0,16769.85,35.3039,0,20,1,0,.8068234,0,0,0,.8068234,0,0,0,0,0,5,85.3,0,0,,450,0,0,0,1.609438,0,1,0,0,0,0,0,78.29784,9.727398,1.609438,-.2146504,1 +1,1,0,1,5,128885,0,16769.85,36.3039,0,20,1,55.01481,0,29.62336,0,0,84.63817,0,0,0,3,0,5,85.3,0,0,,450,0,0,0,1.609438,0,1,0,0,0,0,0,78.29784,9.727398,1.609438,4.438385,1 +1,1,0,1,1,128886,0,16769.85,6.757016,0,15,1,11.39089,.9292566,0,0,0,12.32014,0,0,0,2,0,5,74.36826,13.73189,0,,450,0,1,0,1.609438,0,1,0,0,0,0,0,84.78957,9.727398,1.609438,2.511236,1 +1,1,0,1,2,128886,0,16769.85,7.757016,0,15,1,4.381161,0,0,0,0,4.381161,0,0,0,0,0,5,74.36826,13.73189,0,,450,0,1,0,1.609438,0,1,0,0,0,0,0,84.78957,9.727398,1.609438,1.477314,1 +1,1,0,1,3,128886,0,16769.85,8.757016,0,15,1,21.94514,0,.9975063,0,0,22.94264,0,0,0,2,0,5,74.36826,13.73189,0,,450,0,1,0,1.609438,0,1,0,0,0,0,0,84.78957,9.727398,1.609438,3.132997,1 +1,1,0,1,4,128886,0,16769.85,9.757016,0,15,1,9.22084,2.259106,0,0,0,11.47994,0,0,0,1,0,5,74.36826,13.73189,0,,450,0,1,0,1.609438,0,1,0,0,0,0,0,84.78957,9.727398,1.609438,2.440602,1 +1,1,0,1,5,128886,0,16769.85,10.75702,0,15,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,450,0,1,0,1.609438,0,1,0,0,0,0,0,84.78957,9.727398,1.609438,,0 +1,1,0,1,1,128887,0,16769.85,4.459959,0,15,1,55.15588,3.243405,0,0,0,58.39928,0,0,0,6,0,5,74.36826,13.73189,0,,450,0,1,0,1.609438,0,1,0,0,0,0,0,81.35795,9.727398,1.609438,4.067304,1 +1,1,0,1,2,128887,0,16769.85,5.459959,0,15,1,0,3.822563,0,0,0,3.822563,0,0,0,0,0,5,74.36826,13.73189,0,,450,0,1,0,1.609438,0,1,0,0,0,0,0,81.35795,9.727398,1.609438,1.340921,1 +1,1,0,1,3,128887,0,16769.85,6.459959,0,15,1,7.98005,5.605985,0,0,0,13.58603,0,0,0,1,0,5,74.36826,13.73189,0,,450,0,1,0,1.609438,0,1,0,0,0,0,0,81.35795,9.727398,1.609438,2.609042,1 +1,1,0,1,4,128887,0,16769.85,7.459959,0,15,1,203.8958,6.210235,0,0,0,210.106,0,0,0,4,0,5,74.36826,13.73189,0,,450,0,1,0,1.609438,0,1,0,0,0,0,0,81.35795,9.727398,1.609438,5.347612,1 +1,1,0,1,5,128887,0,16769.85,8.459959,0,15,1,12.69573,1.836648,0,0,0,14.53237,0,0,0,1,0,5,74.36826,13.73189,0,,450,0,1,0,1.609438,0,1,0,0,0,0,0,81.35795,9.727398,1.609438,2.676379,1 +8,1,50,1,1,128894,0,14080.65,2.302532,0,16,1,427.1267,24.13444,12.48662,0,0,463.7478,0,0,0,11,0,4,74.36826,13.73189,0,,999,999,1,0,1.386294,6.906755,0,3.931826,7.599902,1,0,0,72.31981,9.552628,1.386294,6.139341,1 +8,1,50,1,2,128894,0,14080.65,3.302532,0,16,1,99.07458,22.04682,24.48557,0,0,145.607,0,0,0,7,0,4,74.36826,13.73189,0,,999,999,1,0,1.386294,6.906755,0,3.931826,7.599902,1,0,0,72.31981,9.552628,1.386294,4.980911,1 +8,1,50,1,3,128894,0,14080.65,4.302533,0,16,1,84.24182,26.84836,24.64321,0,0,135.7334,0,0,0,9,0,4,74.36826,13.73189,0,,999,999,1,0,1.386294,6.906755,0,3.931826,7.599902,1,0,0,72.31981,9.552628,1.386294,4.910693,1 +8,1,50,1,4,128894,0,14080.65,5.302533,0,16,1,44.51583,28.91693,25.46122,0,0,98.89399,0,0,0,6,0,4,74.36826,13.73189,0,,999,999,1,0,1.386294,6.906755,0,3.931826,7.599902,1,0,0,72.31981,9.552628,1.386294,4.594049,1 +8,1,50,1,5,128894,0,14080.65,6.302533,0,16,1,129.1544,19.44888,27.43795,0,0,176.0412,0,0,0,4,8,4,74.36826,13.73189,0,,999,999,1,0,1.386294,6.906755,0,3.931826,7.599902,1,0,0,72.31981,9.552628,1.386294,5.170718,1 +8,1,50,1,1,128895,0,14080.65,33.29227,1,16,1,102.9149,31.21951,50.20821,0,0,184.3427,0,0,0,8,0,4,32.6,17.4,0,,999,999,0,0,1.386294,6.906755,0,3.931826,7.599902,1,0,0,67.40203,9.552628,1.386294,5.216796,1 +8,1,50,1,2,128895,0,14080.65,34.29227,1,16,1,132.5531,64.05553,10.61513,0,0,207.2237,0,0,0,6,6,4,32.6,17.4,0,,999,999,0,0,1.386294,6.906755,0,3.931826,7.599902,1,0,0,67.40203,9.552628,1.386294,5.333799,1 +8,1,50,1,3,128895,0,14080.65,35.29227,1,16,1,294.8464,48.10704,0,0,0,342.9534,0,0,0,6,5,4,32.6,17.4,0,,999,999,0,0,1.386294,6.906755,0,3.931826,7.599902,1,0,0,67.40203,9.552628,1.386294,5.837595,1 +8,1,50,1,4,128895,0,14080.65,36.29227,1,16,1,91.32629,58.972,0,0,0,150.2983,0,0,0,6,0,4,32.6,17.4,0,,999,999,0,0,1.386294,6.906755,0,3.931826,7.599902,1,0,0,67.40203,9.552628,1.386294,5.012622,1 +8,1,50,1,5,128895,0,14080.65,37.29227,1,16,1,358.8557,66.47034,0,0,0,425.326,0,0,0,12,20,4,32.6,17.4,0,,999,999,0,0,1.386294,6.906755,0,3.931826,7.599902,1,0,0,67.40203,9.552628,1.386294,6.052856,1 +8,1,50,1,1,128896,0,14080.65,4.383299,1,16,1,32.12374,24.47353,0,0,0,56.59726,0,0,0,3,0,4,74.36826,13.73189,0,,999,999,1,1,1.386294,6.906755,0,3.931826,7.599902,1,0,0,71.80583,9.552628,1.386294,4.035961,1 +8,1,50,1,2,128896,0,14080.65,5.383299,1,16,1,63.14643,21.50245,0,0,313.5547,398.2036,1,0,0,7,0,4,74.36826,13.73189,0,,999,999,1,1,1.386294,6.906755,0,3.931826,7.599902,1,0,0,71.80583,9.552628,1.386294,5.986963,1 +8,1,50,1,3,128896,0,14080.65,6.383299,1,16,1,132.3092,103.0377,0,0,0,235.3469,0,0,0,13,0,4,74.36826,13.73189,0,,999,999,1,1,1.386294,6.906755,0,3.931826,7.599902,1,0,0,71.80583,9.552628,1.386294,5.461061,1 +8,1,50,1,4,128896,0,14080.65,7.383299,1,16,1,34.41946,34.53878,10.22946,0,0,79.1877,0,0,0,10,0,4,74.36826,13.73189,0,,999,999,1,1,1.386294,6.906755,0,3.931826,7.599902,1,0,0,71.80583,9.552628,1.386294,4.371821,1 +8,1,50,1,5,128896,0,14080.65,8.383299,1,16,1,158.7085,110.5385,0,0,0,269.2469,0,0,0,2,21,4,74.36826,13.73189,0,,999,999,1,1,1.386294,6.906755,0,3.931826,7.599902,1,0,0,71.80583,9.552628,1.386294,5.595629,1 +8,1,50,1,1,128897,0,14080.65,37.89459,0,18,1,282.4212,92.15943,0,0,0,374.5806,0,0,0,2,1,4,65.3,26.1,0,,999,999,0,0,1.386294,6.906755,0,3.931826,7.599902,1,0,0,66.49789,9.552628,1.386294,5.925807,1 +8,1,50,1,2,128897,0,14080.65,38.89459,0,18,1,24.49646,122.7545,0,0,816.086,963.337,1,0,0,2,0,4,65.3,26.1,0,,999,999,0,0,1.386294,6.906755,0,3.931826,7.599902,1,0,0,66.49789,9.552628,1.386294,6.870403,1 +8,1,50,1,3,128897,0,14080.65,39.89459,0,18,1,33.69673,86.93261,0,0,0,120.6293,0,0,0,4,0,4,65.3,26.1,0,,999,999,0,0,1.386294,6.906755,0,3.931826,7.599902,1,0,0,66.49789,9.552628,1.386294,4.792723,1 +8,1,50,1,4,128897,0,14080.65,40.89459,0,18,1,61.4961,34.57549,0,0,0,96.07159,0,0,0,3,0,4,65.3,26.1,0,,999,999,0,0,1.386294,6.906755,0,3.931826,7.599902,1,0,0,66.49789,9.552628,1.386294,4.565094,1 +8,1,50,1,5,128897,0,14080.65,41.89459,0,18,1,88.76736,115.406,0,0,0,204.1733,0,0,0,4,0,4,65.3,26.1,0,,999,999,0,0,1.386294,6.906755,0,3.931826,7.599902,1,0,0,66.49789,9.552628,1.386294,5.318969,1 +11,1,0,0,1,128948,0,5863.523,60.92539,1,12,1,499.7644,19.37574,0,0,889.3993,1408.539,1,0,0,8,28,1,56.3,13.73189,1,,0,24,0,0,0,3.178054,0,0,0,1,0,0,63.60422,8.676677,0,7.250309,1 +11,1,0,0,2,128948,0,5863.523,61.92539,1,12,1,301.3477,0,42.25337,0,0,343.6011,0,0,0,1,50,1,56.3,13.73189,1,,0,24,0,0,0,3.178054,0,0,0,1,0,0,63.60422,8.676677,0,5.839481,1 +11,1,0,0,3,128948,0,5863.523,62.92539,1,12,1,153.8083,0,4.914005,0,0,158.7224,0,0,0,0,26,1,56.3,13.73189,1,,0,24,0,0,0,3.178054,0,0,0,1,0,0,63.60422,8.676677,0,5.067156,1 +8,1,50,0,1,128955,0,8527.916,19.69336,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,55.8,8.7,1,,550,550,0,0,1.098612,6.309918,0,3.931826,7.003066,1,0,0,71.63822,9.051217,1.098612,,0 +8,1,50,0,2,128955,0,8527.916,20.69336,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,55.8,8.7,1,,550,550,0,0,1.098612,6.309918,0,3.931826,7.003066,1,0,0,71.63822,9.051217,1.098612,,0 +8,1,50,0,3,128955,0,8527.916,21.69336,0,12,1,0,3.194103,0,0,0,3.194103,0,0,0,0,0,3,55.8,8.7,1,,550,550,0,0,1.098612,6.309918,0,3.931826,7.003066,1,0,0,71.63822,9.051217,1.098612,1.161306,1 +8,1,50,0,4,128955,0,8527.916,22.69336,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,55.8,8.7,1,,550,550,0,0,1.098612,6.309918,0,3.931826,7.003066,1,0,0,71.63822,9.051217,1.098612,,0 +8,1,50,0,5,128955,0,8527.916,23.69336,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,55.8,8.7,1,,550,550,0,0,.6931472,6.309918,0,3.931826,7.003066,1,0,0,71.63822,9.051217,.6931472,,0 +8,1,50,0,1,128956,0,8527.916,57.79055,0,12,1,20.02356,0,0,0,0,20.02356,0,0,0,1,0,3,81.1,8.7,0,,550,550,0,0,1.098612,6.309918,0,3.931826,7.003066,1,0,0,64.59297,9.051217,1.098612,2.996909,1 +8,1,50,0,2,128956,0,8527.916,58.79055,0,12,1,24.25876,40.97035,0,0,1705.515,1770.744,2,0,0,0,0,3,81.1,8.7,0,,550,550,0,0,1.098612,6.309918,0,3.931826,7.003066,1,0,0,64.59297,9.051217,1.098612,7.479155,1 +8,1,50,0,3,128956,0,8527.916,59.79055,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,81.1,8.7,0,,550,550,0,0,1.098612,6.309918,0,3.931826,7.003066,1,0,0,64.59297,9.051217,1.098612,,0 +8,1,50,0,4,128956,0,8527.916,60.79055,0,12,.5945206,33.27256,2.848678,0,0,1163.974,1200.096,1,0,0,4,0,3,81.1,8.7,0,,550,550,0,0,1.098612,6.309918,0,3.931826,7.003066,1,0,0,64.59297,9.051217,1.098612,7.090157,1 +8,1,50,0,1,128957,0,8527.916,48.32033,1,11,1,53.00353,49.60542,0,0,632.1143,734.7232,1,0,0,10,0,3,75.8,21.7,0,,550,550,0,0,1.098612,6.309918,0,3.931826,7.003066,1,0,0,68.34619,9.051217,1.098612,6.599494,1 +8,1,50,0,2,128957,0,8527.916,49.32033,1,11,1,122.911,68.54447,0,0,0,191.4555,0,0,0,22,0,3,75.8,21.7,0,,550,550,0,0,1.098612,6.309918,0,3.931826,7.003066,1,0,0,68.34619,9.051217,1.098612,5.254655,1 +8,1,50,0,3,128957,0,8527.916,50.32033,1,11,1,60.44226,40.81081,0,0,0,101.2531,0,0,0,8,0,3,75.8,21.7,0,,550,550,0,0,1.098612,6.309918,0,3.931826,7.003066,1,0,0,68.34619,9.051217,1.098612,4.617623,1 +8,1,50,0,4,128957,0,8527.916,51.32033,1,11,1,223.7922,28.4959,35.24612,0,0,287.5342,0,0,0,22,6,3,75.8,21.7,0,,550,550,0,0,1.098612,6.309918,0,3.931826,7.003066,1,0,0,68.34619,9.051217,1.098612,5.661342,1 +8,1,50,0,5,128957,0,8527.916,52.32033,1,11,1,108.7953,58.06586,0,0,1546.052,1712.914,2,0,0,18,0,2,75.8,21.7,0,,550,550,0,0,.6931472,6.309918,0,3.931826,7.003066,1,0,0,68.34619,9.051217,.6931472,7.445951,1 +2,1,100,1,1,128962,0,18413.77,15.1102,1,14,1,81.79655,6.781678,16.163,0,0,104.7412,0,0,0,7,0,5,83.2,4.3,0,,900,900,1,1,1.609438,6.802395,1,0,0,0,0,0,75.43546,9.820909,1.609438,4.651493,1 +2,1,100,1,2,128962,0,18413.77,16.1102,1,14,1,84.13174,2.286336,30.15242,0,0,116.5705,0,0,0,7,0,5,83.2,4.3,0,,900,900,1,1,1.609438,6.802395,1,0,0,0,0,0,75.43546,9.820909,1.609438,4.758496,1 +2,1,100,1,3,128962,0,18413.77,17.1102,1,14,1,26.26363,9.985134,0,0,0,36.24876,0,0,0,2,0,5,83.2,4.3,0,,900,900,1,1,1.609438,6.802395,1,0,0,0,0,0,75.43546,9.820909,1.609438,3.590405,1 +2,1,100,1,1,128963,0,18413.77,42.02601,0,9,1,16.77573,0,0,0,0,16.77573,0,0,0,0,0,5,88.4,4.3,0,,900,900,0,0,1.609438,6.802395,1,0,0,0,0,0,73.73394,9.820909,1.609438,2.819933,1 +2,1,100,1,2,128963,0,18413.77,43.02601,0,9,1,105.9336,4.708764,31.2847,0,0,141.927,0,0,0,3,0,5,88.4,4.3,0,,900,900,0,0,1.609438,6.802395,1,0,0,0,0,0,73.73394,9.820909,1.609438,4.955313,1 +2,1,100,1,3,128963,0,18413.77,44.02601,0,9,1,0,0,22.52725,0,0,22.52725,0,0,0,0,0,5,88.4,4.3,0,,900,900,0,0,1.609438,6.802395,1,0,0,0,0,0,73.73394,9.820909,1.609438,3.114726,1 +2,1,100,1,1,128964,0,18413.77,18.02601,1,12.32507,1,71.74301,37.50743,0,0,0,109.2504,0,0,0,6,0,5,64.2,0,0,,900,900,0,0,1.609438,6.802395,1,0,0,0,0,0,79.81728,9.820909,1.609438,4.693643,1 +2,1,100,1,2,128964,0,18413.77,19.02601,1,12.32507,1,45.8356,36.56505,0,0,0,82.40065,0,0,0,5,0,5,64.2,0,0,,900,900,0,0,1.609438,6.802395,1,0,0,0,0,0,79.81728,9.820909,1.609438,4.411593,1 +2,1,100,1,3,128964,0,18413.77,20.02601,1,12.32507,1,161.9425,77.03667,0,0,0,238.9792,0,0,0,7,0,5,64.2,0,0,,900,900,0,0,1.609438,6.802395,1,0,0,0,0,0,79.81728,9.820909,1.609438,5.476377,1 +2,1,100,1,1,128965,0,18413.77,40.57221,1,14,1,26.76978,0,0,0,0,26.76978,0,0,0,2,0,5,81.1,17.4,0,,900,900,0,0,1.609438,6.802395,1,0,0,0,0,0,78.77059,9.820909,1.609438,3.287274,1 +2,1,100,1,2,128965,0,18413.77,41.57221,1,14,1,157.6483,19.12357,32.92324,0,335.0027,544.6979,1,0,0,8,0,5,81.1,17.4,0,,900,900,0,0,1.609438,6.802395,1,0,0,0,0,0,78.77059,9.820909,1.609438,6.300231,1 +2,1,100,1,3,128965,0,18413.77,42.57221,1,14,1,27.25471,35.72844,0,0,0,62.98315,0,0,0,3,0,5,81.1,17.4,0,,900,900,0,0,1.609438,6.802395,1,0,0,0,0,0,78.77059,9.820909,1.609438,4.142867,1 +2,1,100,1,1,128966,0,18413.77,4.128679,0,14,1,34.74123,16.32957,0,0,0,51.07079,0,0,0,3,0,5,74.36826,13.73189,0,,900,900,1,0,1.609438,6.802395,1,0,0,0,0,0,81.65595,9.820909,1.609438,3.933213,1 +2,1,100,1,2,128966,0,18413.77,5.128679,0,14,1,35.27491,15.59608,0,0,0,50.87099,0,0,0,4,0,5,74.36826,13.73189,0,,900,900,1,0,1.609438,6.802395,1,0,0,0,0,0,81.65595,9.820909,1.609438,3.929293,1 +2,1,100,1,3,128966,0,18413.77,6.128679,0,14,1,10.40634,24.05847,0,0,0,34.46482,0,0,0,2,0,5,74.36826,13.73189,0,,900,900,1,0,1.609438,6.802395,1,0,0,0,0,0,81.65595,9.820909,1.609438,3.539939,1 +10,1,50,0,1,128967,0,10415.01,58.88843,0,13,1,68.31567,38.03298,229.5583,0,0,335.907,0,0,0,4,0,2,65.3,13,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,64.26467,9.2511,.6931472,5.816834,1 +10,1,50,0,2,128967,0,10415.01,59.88843,0,13,1,14.55526,34.469,42.81401,0,0,91.83827,0,0,0,2,0,2,65.3,13,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,64.26467,9.2511,.6931472,4.520029,1 +10,1,50,0,3,128967,0,10415.01,60.88843,0,13,1,17.69042,21.71007,2.029484,0,0,41.42997,0,0,0,1,0,2,65.3,13,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,64.26467,9.2511,.6931472,3.724005,1 +10,1,50,0,4,128967,0,10415.01,61.88843,0,13,1,38.74202,49.95442,0,0,0,88.69644,0,0,0,3,0,2,65.3,13,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,64.26467,9.2511,.6931472,4.48522,1 +10,1,50,0,5,128967,0,10415.01,62.88843,0,13,1,25.42726,35.83993,0,0,0,61.26719,0,0,0,1,0,2,65.3,13,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,64.26467,9.2511,.6931472,4.115244,1 +10,1,50,0,1,128968,0,10415.01,56.03559,1,12,1,56.09541,27.56184,0,0,0,83.65724,0,0,0,2,0,2,80,17.4,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,70.90685,9.2511,.6931472,4.426728,1 +10,1,50,0,2,128968,0,10415.01,57.03559,1,12,1,48.84097,4.474393,43.66577,0,0,96.98113,0,0,0,2,0,2,80,17.4,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,70.90685,9.2511,.6931472,4.574516,1 +10,1,50,0,3,128968,0,10415.01,58.03559,1,12,1,27.02703,0,0,0,0,27.02703,0,0,0,1,0,2,80,17.4,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,70.90685,9.2511,.6931472,3.296837,1 +10,1,50,0,4,128968,0,10415.01,59.03559,1,12,1,13.74202,30.19599,0,0,0,43.93801,0,0,0,1,0,2,80,17.4,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,70.90685,9.2511,.6931472,3.78278,1 +10,1,50,0,5,128968,0,10415.01,60.03559,1,12,1,39.18299,7.899125,0,0,0,47.08212,0,0,0,2,1,2,80,17.4,0,,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,70.90685,9.2511,.6931472,3.851893,1 +11,1,0,1,1,128969,0,28065.76,56.89254,1,16,1,53.88692,0,0,0,0,53.88692,0,0,0,1,0,2,85.3,13,0,,0,607,0,0,.6931472,6.408529,0,0,0,1,0,0,68.57099,10.24234,.6931472,3.986888,1 +11,1,0,1,2,128969,0,28065.76,57.89254,1,16,1,83.82749,0,0,0,0,83.82749,0,0,0,2,0,2,85.3,13,0,,0,607,0,0,.6931472,6.408529,0,0,0,1,0,0,68.57099,10.24234,.6931472,4.428761,1 +11,1,0,1,3,128969,0,28065.76,58.89254,1,16,1,48.89435,3.857494,0,0,0,52.75184,0,0,0,1,4,2,85.3,13,0,,0,607,0,0,.6931472,6.408529,0,0,0,1,0,0,68.57099,10.24234,.6931472,3.965599,1 +11,1,0,1,1,128970,0,28065.76,58.22587,0,16,1,102.768,141.4723,28.48645,0,0,272.7267,0,0,0,5,0,2,83.2,34.8,1,,0,607,0,0,.6931472,6.408529,0,0,0,1,0,0,67.87204,10.24234,.6931472,5.60847,1 +11,1,0,1,2,128970,0,28065.76,59.22587,0,16,1,194.7439,122.9326,48.51752,0,0,366.1941,0,0,0,9,0,2,83.2,34.8,1,,0,607,0,0,.6931472,6.408529,0,0,0,1,0,0,67.87204,10.24234,.6931472,5.903163,1 +11,1,0,1,3,128970,0,28065.76,60.22587,0,16,1,289.1892,117.2727,76.16708,0,646.1032,1128.732,1,0,0,11,5,2,83.2,34.8,1,,0,607,0,0,.6931472,6.408529,0,0,0,1,0,0,67.87204,10.24234,.6931472,7.02885,1 +6,1,25,1,1,128971,0,14011.17,32.66804,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,81.1,13,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,77.59959,9.547681,1.098612,,0 +6,1,25,1,2,128971,0,14011.17,33.66804,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,81.1,13,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,77.59959,9.547681,1.098612,,0 +6,1,25,1,3,128971,0,14011.17,34.66804,0,12,1,7.433102,2.96333,0,0,0,10.39643,0,0,0,1,0,3,81.1,13,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,77.59959,9.547681,1.098612,2.341463,1 +6,1,25,1,4,128971,0,14011.17,35.66804,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,81.1,13,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,77.59959,9.547681,1.098612,,0 +6,1,25,1,5,128971,0,14011.17,36.66804,0,12,1,10.51746,0,26.0833,0,0,36.60076,0,0,0,0,1,3,81.1,13,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,77.59959,9.547681,1.098612,3.600069,1 +6,1,25,1,1,128972,0,14011.17,32.12868,1,16,1,31.52885,12.19512,0,0,0,43.72397,0,0,0,3,0,3,81.1,13,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,78.90932,9.547681,1.098612,3.777896,1 +6,1,25,1,2,128972,0,14011.17,33.12868,1,16,1,26.12956,0,0,0,0,26.12956,0,0,0,1,1,3,81.1,13,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,78.90932,9.547681,1.098612,3.263067,1 +6,1,25,1,3,128972,0,14011.17,34.12868,1,16,1,26.75917,0,0,0,0,26.75917,0,0,0,2,0,3,81.1,13,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,78.90932,9.547681,1.098612,3.286877,1 +6,1,25,1,4,128972,0,14011.17,35.12868,1,16,1,31.89536,0,25.24094,0,0,57.1363,0,0,0,0,1,3,81.1,13,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,78.90932,9.547681,1.098612,4.04544,1 +6,1,25,1,5,128972,0,14011.17,36.12868,1,16,1,34.91796,0,0,0,0,34.91796,0,0,0,2,0,3,81.1,13,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,78.90932,9.547681,1.098612,3.553001,1 +6,1,25,1,1,128973,0,14011.17,6.009583,0,16,1,10.70791,5.710886,0,0,0,16.4188,0,0,0,2,0,3,74.36826,13.73189,0,,1000,1000,1,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,84.90688,9.547681,1.098612,2.798427,1 +6,1,25,1,2,128973,0,14011.17,7.009583,0,16,1,54.98095,0,0,0,0,54.98095,0,0,0,5,0,3,74.36826,13.73189,0,,1000,1000,1,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,84.90688,9.547681,1.098612,4.006987,1 +6,1,25,1,3,128973,0,14011.17,8.009583,0,16,1,9.910803,0,0,0,0,9.910803,0,0,0,1,0,3,74.36826,13.73189,0,,1000,1000,1,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,84.90688,9.547681,1.098612,2.293625,1 +6,1,25,1,4,128973,0,14011.17,9.009583,0,16,1,14.34144,0,0,0,0,14.34144,0,0,0,1,0,3,74.36826,13.73189,0,,1000,1000,1,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,84.90688,9.547681,1.098612,2.663153,1 +6,1,25,1,5,128973,0,14011.17,10.00958,0,16,1,1.262095,0,0,0,0,1.262095,0,0,0,1,0,3,74.36826,13.73189,0,,1000,1000,1,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,84.90688,9.547681,1.098612,.2327731,1 +10,1,50,1,1,128998,0,12082.51,60.35866,1,12,1,32.42118,7.63831,38.4414,0,0,78.50089,0,0,0,1,2,1,92.6,8.7,0,,1000,1000,0,0,0,6.907755,0,3.931826,7.600903,0,0,0,73.20397,9.399596,0,4.36311,1 +10,1,50,1,2,128998,0,12082.51,61.35866,1,12,1,13.06478,0,0,0,0,13.06478,0,0,0,1,0,1,92.6,8.7,0,,1000,1000,0,0,0,6.907755,0,3.931826,7.600903,0,0,0,73.20397,9.399596,0,2.56992,1 +10,1,50,1,3,128998,0,12082.51,62.35866,1,12,1,87.21507,0,43.89495,0,0,131.11,0,0,0,2,1,1,92.6,8.7,0,,1000,1000,0,0,0,6.907755,0,3.931826,7.600903,0,0,0,73.20397,9.399596,0,4.876037,1 +8,1,50,0,1,129005,0,10670.6,31.42779,1,16,1,84.80566,29.5053,21.5371,0,0,135.8481,0,0,0,5,0,4,46.3,17.4,0,,149,149,0,0,1.386294,5.003946,0,3.931826,5.697093,0,0,0,72.45773,9.275341,1.386294,4.911537,1 +8,1,50,0,2,129005,0,10670.6,32.42779,1,16,1,34.77089,19.03504,7.816711,0,0,61.62264,0,0,0,3,0,4,46.3,17.4,0,,149,149,0,0,1.386294,5.003946,0,3.931826,5.697093,0,0,0,72.45773,9.275341,1.386294,4.121029,1 +8,1,50,0,3,129005,0,10670.6,33.42779,1,16,1,44.22604,19.46437,0,0,0,63.69042,0,0,0,2,0,4,46.3,17.4,0,,149,149,0,0,1.386294,5.003946,0,3.931826,5.697093,0,0,0,72.45773,9.275341,1.386294,4.154034,1 +8,1,50,0,4,129005,0,10670.6,34.42779,1,16,1,72.69827,29.25706,0,0,0,101.9553,0,0,0,5,0,4,46.3,17.4,0,,149,149,0,0,1.386294,5.003946,0,3.931826,5.697093,0,0,0,72.45773,9.275341,1.386294,4.624535,1 +8,1,50,0,5,129005,0,10670.6,35.42779,1,16,1,47.72822,15.71488,0,0,0,63.4431,0,0,0,4,0,4,46.3,17.4,0,,149,149,0,0,1.386294,5.003946,0,3.931826,5.697093,0,0,0,72.45773,9.275341,1.386294,4.150144,1 +8,1,50,0,1,129006,0,10670.6,8.29295,1,16,1,26.79623,12.73852,0,0,0,39.53475,0,0,0,3,0,4,74.36826,13.73189,0,,149,149,1,1,1.386294,5.003946,0,3.931826,5.697093,0,0,0,81.14014,9.275341,1.386294,3.67718,1 +8,1,50,0,2,129006,0,10670.6,9.29295,1,16,1,22.91105,5.498652,6.469003,0,0,34.87871,0,0,0,2,0,4,74.36826,13.73189,0,,149,149,1,1,1.386294,5.003946,0,3.931826,5.697093,0,0,0,81.14014,9.275341,1.386294,3.551877,1 +8,1,50,0,3,129006,0,10670.6,10.29295,1,16,1,54.29976,11.4398,29.41032,0,0,95.14988,0,0,0,6,0,4,74.36826,13.73189,0,,149,149,1,1,1.386294,5.003946,0,3.931826,5.697093,0,0,0,81.14014,9.275341,1.386294,4.555453,1 +8,1,50,0,4,129006,0,10670.6,11.29295,1,16,1,44.66727,15.81586,.2051048,0,0,60.68824,0,0,0,4,0,4,74.36826,13.73189,0,,149,149,1,1,1.386294,5.003946,0,3.931826,5.697093,0,0,0,81.14014,9.275341,1.386294,4.10575,1 +8,1,50,0,5,129006,0,10670.6,12.29295,1,16,1,21.05044,23.78908,0,0,0,44.83952,0,0,0,3,0,4,74.36826,13.73189,0,,149,149,1,1,1.386294,5.003946,0,3.931826,5.697093,0,0,0,81.14014,9.275341,1.386294,3.80309,1 +8,1,50,0,1,129007,0,10670.6,6.354552,0,16,1,33.5689,10.44759,0,0,0,44.01649,0,0,0,4,0,4,74.36826,13.73189,0,,149,149,1,0,1.386294,5.003946,0,3.931826,5.697093,1,0,0,73.78861,9.275341,1.386294,3.784564,1 +8,1,50,0,2,129007,0,10670.6,7.354552,0,16,1,28.30189,2.727763,0,0,0,31.02965,0,0,0,3,0,4,74.36826,13.73189,0,,149,149,1,0,1.386294,5.003946,0,3.931826,5.697093,1,0,0,73.78861,9.275341,1.386294,3.434943,1 +8,1,50,0,3,129007,0,10670.6,8.354551,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,149,149,1,0,1.386294,5.003946,0,3.931826,5.697093,1,0,0,73.78861,9.275341,1.386294,,0 +8,1,50,0,4,129007,0,10670.6,9.354551,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,149,149,1,0,1.386294,5.003946,0,3.931826,5.697093,1,0,0,73.78861,9.275341,1.386294,,0 +8,1,50,0,5,129007,0,10670.6,10.35455,0,16,1,25.42726,2.125886,0,0,0,27.55315,0,0,0,3,0,4,74.36826,13.73189,0,,149,149,1,0,1.386294,5.003946,0,3.931826,5.697093,1,0,0,73.78861,9.275341,1.386294,3.316117,1 +8,1,50,0,1,129008,0,10670.6,3.52909,1,16,1,40.63604,24.98233,0,0,0,65.61838,0,0,0,4,0,4,74.36826,13.73189,0,,149,149,1,1,1.386294,5.003946,0,3.931826,5.697093,0,0,0,77.70851,9.275341,1.386294,4.183856,1 +8,1,50,0,2,129008,0,10670.6,4.529089,1,16,1,24.79784,3.396226,0,0,0,28.19407,0,0,0,2,0,4,74.36826,13.73189,0,,149,149,1,1,1.386294,5.003946,0,3.931826,5.697093,0,0,0,77.70851,9.275341,1.386294,3.339112,1 +8,1,50,0,3,129008,0,10670.6,5.529089,1,16,1,115.2334,27.2285,3.931204,0,0,146.3931,0,0,0,6,0,4,74.36826,13.73189,0,,149,149,1,1,1.386294,5.003946,0,3.931826,5.697093,0,0,0,77.70851,9.275341,1.386294,4.986296,1 +8,1,50,0,4,129008,0,10670.6,6.529089,1,16,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,149,149,1,1,1.386294,5.003946,0,3.931826,5.697093,0,0,0,77.70851,9.275341,1.386294,,0 +8,1,50,0,5,129008,0,10670.6,7.529089,1,16,1,144.1184,4.126719,0,0,0,148.2451,0,0,0,5,0,4,74.36826,13.73189,0,,149,149,1,1,1.386294,5.003946,0,3.931826,5.697093,0,0,0,77.70851,9.275341,1.386294,4.998867,1 +2,1,100,0,1,129011,0,9756.203,52.13963,0,12,1,145.7597,26.73734,0,0,0,172.4971,0,0,0,3,0,2,70,13.73189,0,,856,856,0,0,.6931472,6.75227,1,0,0,0,0,0,76.06852,9.185761,.6931472,5.15038,1 +2,1,100,0,2,129011,0,9756.203,53.13963,0,12,1,0,2.830189,0,0,0,2.830189,0,0,0,0,0,2,70,13.73189,0,,856,856,0,0,.6931472,6.75227,1,0,0,0,0,0,76.06852,9.185761,.6931472,1.040343,1 +2,1,100,0,3,129011,0,9756.203,54.13963,0,12,1,14.98771,2.063882,186.8747,0,0,203.9263,0,0,0,1,1,2,70,13.73189,0,,856,856,0,0,.6931472,6.75227,1,0,0,0,0,0,76.06852,9.185761,.6931472,5.317759,1 +2,1,100,0,4,129011,0,9756.203,55.13963,0,12,1,39.19781,1.203282,0,0,0,40.40109,0,0,0,2,0,2,70,13.73189,0,,856,856,0,0,.6931472,6.75227,1,0,0,0,0,0,76.06852,9.185761,.6931472,3.698857,1 +2,1,100,0,5,129011,0,9756.203,56.13963,0,12,1,7.919967,0,32.47186,0,0,40.39183,0,0,0,0,1,2,70,13.73189,0,,856,856,0,0,.6931472,6.75227,1,0,0,0,0,0,76.06852,9.185761,.6931472,3.698627,1 +2,1,100,0,1,129012,0,9756.203,49.43737,1,12,1,233.5395,11.27797,23.55713,0,0,268.3746,0,0,0,6,1,2,67.5,13.73189,0,,856,856,0,0,.6931472,6.75227,1,0,0,0,0,0,77.69517,9.185761,.6931472,5.592384,1 +2,1,100,0,2,129012,0,9756.203,50.43737,1,12,1,0,5.283019,0,0,0,5.283019,0,0,0,0,0,2,67.5,13.73189,0,,856,856,0,0,.6931472,6.75227,1,0,0,0,0,0,77.69517,9.185761,.6931472,1.664498,1 +2,1,100,0,3,129012,0,9756.203,51.43737,1,12,1,83.78378,7.542997,30.41769,0,0,121.7445,0,0,0,3,1,2,67.5,13.73189,0,,856,856,0,0,.6931472,6.75227,1,0,0,0,0,0,77.69517,9.185761,.6931472,4.801924,1 +2,1,100,0,4,129012,0,9756.203,52.43737,1,12,1,5.469462,1.326345,0,0,0,6.795807,0,0,0,1,0,2,67.5,13.73189,0,,856,856,0,0,.6931472,6.75227,1,0,0,0,0,0,77.69517,9.185761,.6931472,1.916306,1 +2,1,100,0,5,129012,0,9756.203,53.43737,1,12,1,7.503126,0,20.82117,0,0,28.3243,0,0,0,0,1,2,67.5,13.73189,0,,856,856,0,0,.6931472,6.75227,1,0,0,0,0,0,77.69517,9.185761,.6931472,3.34372,1 +3,1,100,0,1,129024,0,14846.15,31.03901,1,16,1,11.99041,3.639089,0,0,0,15.6295,0,0,0,2,0,4,73.8,13.73189,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,78.97472,9.605563,1.386294,2.74916,1 +3,1,100,0,2,129024,0,14846.15,32.03901,1,16,1,462.1851,3.828039,0,0,0,466.0132,0,0,0,4,0,4,73.8,13.73189,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,78.97472,9.605563,1.386294,6.144214,1 +3,1,100,0,3,129024,0,14846.15,33.03901,1,16,1,397.5561,9.750624,0,0,1006.828,1414.135,1,0,0,1,0,4,73.8,13.73189,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,78.97472,9.605563,1.386294,7.254273,1 +3,1,100,0,1,129025,0,14846.15,28.62697,0,17,1,0,0,0,0,0,0,0,0,0,0,0,4,92.5,13.73189,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,79.02419,9.605563,1.386294,,0 +3,1,100,0,2,129025,0,14846.15,29.62697,0,17,1,0,0,0,0,0,0,0,0,0,0,0,4,92.5,13.73189,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,79.02419,9.605563,1.386294,,0 +3,1,100,0,3,129025,0,14846.15,30.62697,0,17,1,12.46883,0,31.27182,0,0,43.74065,0,0,0,1,0,4,92.5,13.73189,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,79.02419,9.605563,1.386294,3.778278,1 +3,1,100,0,1,129026,0,14846.15,6.718686,0,16,1,0,2.368105,0,0,0,2.368105,0,0,0,0,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,0,0,0,86.10872,9.605563,1.386294,.8620902,1 +3,1,100,0,2,129026,0,14846.15,7.718686,0,16,1,0,3.231106,0,0,0,3.231106,0,0,0,0,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,0,0,0,86.10872,9.605563,1.386294,1.172825,1 +3,1,100,0,3,129026,0,14846.15,8.718686,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,0,0,0,86.10872,9.605563,1.386294,,0 +3,1,100,0,1,129027,0,14846.15,1.61807,0,16,1,114.2086,14.53837,0,0,0,128.747,0,0,0,7,1,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,0,0,0,77.47646,9.605563,1.386294,4.857849,1 +3,1,100,0,2,129027,0,14846.15,2.61807,0,16,1,76.39649,3.285871,0,0,266.9222,346.6046,1,0,0,4,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,0,0,0,77.47646,9.605563,1.386294,5.848185,1 +3,1,100,0,3,129027,0,14846.15,3.61807,0,16,1,0,.7481297,0,0,0,.7481297,0,0,0,0,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,0,0,0,77.47646,9.605563,1.386294,-.290179,1 +8,1,50,1,1,129038,0,1081.886,12.05202,0,8,1,0,0,0,0,0,0,0,0,0,0,0,2,74.36826,13.73189,0,,244,348,1,0,.6931472,5.852202,0,3.931826,6.190315,1,0,0,77.12702,6.987385,.6931472,,0 +8,1,50,1,2,129038,0,1081.886,13.05202,0,8,1,18.23626,3.783342,0,0,0,22.0196,0,0,0,0,1,2,74.36826,13.73189,0,,244,348,1,0,.6931472,5.852202,0,3.931826,6.190315,1,0,0,77.12702,6.987385,.6931472,3.091933,1 +8,1,50,1,3,129038,0,1081.886,14.05202,0,8,1,16.35283,0,0,0,0,16.35283,0,0,0,1,0,2,74.36826,13.73189,0,,244,348,1,0,.6931472,5.852202,0,3.931826,6.190315,1,0,0,77.12702,6.987385,.6931472,2.794401,1 +8,1,50,1,1,129039,0,1081.886,56.62697,1,8,1,14.27722,119.3754,0,0,0,133.6526,0,0,0,2,0,2,67.4,30.4,1,,244,348,0,0,.6931472,5.852202,0,3.931826,6.190315,0,1,0,53.3388,6.987385,.6931472,4.895244,1 +8,1,50,1,2,129039,0,1081.886,57.62697,1,8,1,0,0,0,0,0,0,0,0,0,0,0,2,67.4,30.4,1,,244,348,0,0,.6931472,5.852202,0,3.931826,6.190315,0,1,0,53.3388,6.987385,.6931472,,0 +8,1,50,1,3,129039,0,1081.886,58.62697,1,8,1,0,0,0,0,0,0,0,0,0,0,0,2,67.4,30.4,1,,244,348,0,0,.6931472,5.852202,0,3.931826,6.190315,0,1,0,53.3388,6.987385,.6931472,,0 +3,1,100,1,1,129061,1,7638.337,51.37577,0,12,1,42.21954,21.79735,81.79735,0,0,145.8142,0,0,0,4,1,2,86.3,8.7,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,1,0,0,59.68835,8.941066,.6931472,4.982334,1 +3,1,100,1,2,129061,1,7638.337,52.37577,0,12,1,11.56388,52.84141,42.2467,0,0,106.652,0,0,0,1,0,2,86.3,8.7,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,1,0,0,59.68835,8.941066,.6931472,4.669571,1 +3,1,100,1,3,129061,1,7638.337,53.37577,0,12,1,8.036162,28.71924,51.92366,0,0,88.67905,0,0,0,1,0,2,86.3,8.7,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,1,0,0,59.68835,8.941066,.6931472,4.485023,1 +3,1,100,1,1,129062,1,7638.337,48.92813,1,12,1,85.64536,9.589868,17.02051,0,0,112.2557,0,0,0,3,1,2,74.7,13,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,1,0,0,65.70995,8.941066,.6931472,4.720779,1 +3,1,100,1,2,129062,1,7638.337,49.92813,1,12,1,119.7687,2.17511,18.99229,0,0,140.9361,0,0,0,3,1,2,74.7,13,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,1,0,0,65.70995,8.941066,.6931472,4.948307,1 +3,1,100,1,3,129062,1,7638.337,50.92813,1,12,1,18.08137,0,0,0,0,18.08137,0,0,0,1,0,2,74.7,13,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,1,0,0,65.70995,8.941066,.6931472,2.894882,1 +11,1,0,1,1,129071,1,9542.002,18.72416,1,11,1,0,1.013189,0,0,0,1.013189,0,0,0,0,0,8,58.8,13.73189,0,,0,325,0,0,2.079442,5.783825,0,0,0,0,0,0,72.29684,9.163564,2.079442,.0131032,1 +11,1,0,1,2,129071,1,9542.002,19.72416,1,11,1,7.119387,0,34.50164,0,0,41.62103,0,0,0,0,1,8,58.8,13.73189,0,,0,325,0,0,2.079442,5.783825,0,0,0,0,0,0,72.29684,9.163564,2.079442,3.728606,1 +11,1,0,1,3,129071,1,9542.002,20.72416,1,11,1,185.0374,15.17706,0,0,1599.815,1800.03,1,0,0,3,0,9,58.8,13.73189,0,,0,325,0,0,2.197225,5.783825,0,0,0,0,0,0,72.29684,9.163564,2.197225,7.495559,1 +11,1,0,1,4,129071,1,9542.002,21.72416,1,11,1,300.5533,6.874135,0,0,0,307.4274,0,0,0,6,0,10,58.8,13.73189,0,,0,325,0,0,2.302585,5.783825,0,0,0,0,0,0,72.29684,9.163564,2.302585,5.728239,1 +11,1,0,1,5,129071,1,9542.002,22.72416,1,11,1,499.598,1.39653,0,0,2491.697,2992.691,2,0,0,5,0,10,58.8,13.73189,0,,0,325,0,0,2.302585,5.783825,0,0,0,0,0,0,72.29684,9.163564,2.302585,8.003928,1 +11,1,0,1,1,129072,1,9542.002,9.234771,1,13,1,18.58513,0,0,0,0,18.58513,0,0,0,1,1,8,74.36826,13.73189,0,,0,325,1,1,2.079442,5.783825,0,0,0,0,0,0,80.56938,9.163564,2.079442,2.922362,1 +11,1,0,1,2,129072,1,9542.002,10.23477,1,13,1,3.833516,0,0,0,0,3.833516,0,0,0,1,0,8,74.36826,13.73189,0,,0,325,1,1,2.079442,5.783825,0,0,0,0,0,0,80.56938,9.163564,2.079442,1.343782,1 +11,1,0,1,3,129072,1,9542.002,11.23477,1,13,1,47.38155,0,0,0,0,47.38155,0,0,0,4,0,9,74.36826,13.73189,0,,0,325,1,1,2.197225,5.783825,0,0,0,0,0,0,80.56938,9.163564,2.197225,3.858233,1 +11,1,0,1,4,129072,1,9542.002,12.23477,1,13,1,0,0,0,0,0,0,0,0,0,0,0,10,74.36826,13.73189,0,,0,325,1,1,2.302585,5.783825,0,0,0,0,0,0,80.56938,9.163564,2.302585,,0 +11,1,0,1,5,129072,1,9542.002,13.23477,1,13,1,5.924672,0,0,0,0,5.924672,0,0,0,1,0,10,74.36826,13.73189,0,,0,325,1,1,2.302585,5.783825,0,0,0,0,0,0,80.56938,9.163564,2.302585,1.779125,1 +11,1,0,1,1,129073,1,9542.002,35.2909,1,13,1,140.1379,24.02878,0,0,329.3525,493.5192,1,0,0,5,0,8,75.8,8.7,0,,0,325,0,0,2.079442,5.783825,0,0,0,0,0,0,75.5062,9.163564,2.079442,6.201562,1 +11,1,0,1,2,129073,1,9542.002,36.2909,1,13,1,559.874,9.884995,28.91566,0,939.9124,1538.587,1,0,0,8,0,8,75.8,8.7,0,,0,325,0,0,2.079442,5.783825,0,0,0,0,0,0,75.5062,9.163564,2.079442,7.33862,1 +11,1,0,1,3,129073,1,9542.002,37.2909,1,13,1,52.36908,10.32419,0,0,0,62.69327,0,0,0,1,0,9,75.8,8.7,0,,0,325,0,0,2.197225,5.783825,0,0,0,0,0,0,75.5062,9.163564,2.197225,4.138254,1 +11,1,0,1,4,129073,1,9542.002,38.2909,1,13,1,19.36376,0,0,0,0,19.36376,0,0,0,1,0,10,75.8,8.7,0,,0,325,0,0,2.302585,5.783825,0,0,0,0,0,0,75.5062,9.163564,2.302585,2.963403,1 +11,1,0,1,5,129073,1,9542.002,39.2909,1,13,1,0,0,0,0,0,0,0,0,0,0,0,10,75.8,8.7,0,,0,325,0,0,2.302585,5.783825,0,0,0,0,0,0,75.5062,9.163564,2.302585,,0 +11,1,0,1,1,129074,1,9542.002,10.78987,0,13,1,14.98801,0,30.70144,0,0,45.68945,0,0,0,1,0,8,74.36826,13.73189,0,,0,325,1,0,2.079442,5.783825,0,0,0,0,0,0,81.08335,9.163564,2.079442,3.821867,1 +11,1,0,1,2,129074,1,9542.002,11.78987,0,13,1,3.833516,0,0,0,0,3.833516,0,0,0,1,0,8,74.36826,13.73189,0,,0,325,1,0,2.079442,5.783825,0,0,0,0,0,0,81.08335,9.163564,2.079442,1.343782,1 +11,1,0,1,3,129074,1,9542.002,12.78987,0,13,1,24.93766,0,33.91521,0,0,58.85287,0,0,0,2,0,9,74.36826,13.73189,0,,0,325,1,0,2.197225,5.783825,0,0,0,0,0,0,81.08335,9.163564,2.197225,4.07504,1 +11,1,0,1,4,129074,1,9542.002,13.78987,0,13,1,5.993546,0,0,0,0,5.993546,0,0,0,1,0,10,74.36826,13.73189,0,,0,325,1,0,2.302585,5.783825,0,0,0,0,0,0,81.08335,9.163564,2.302585,1.790683,1 +11,1,0,1,5,129074,1,9542.002,14.78987,0,13,1,0,0,0,0,0,0,0,0,0,0,0,10,74.36826,13.73189,0,,0,325,1,0,2.302585,5.783825,0,0,0,0,0,0,81.08335,9.163564,2.302585,,0 +11,1,0,1,1,129075,1,9542.002,20.62149,1,13,1,32.97362,28.34532,0,0,0,61.31894,0,0,0,4,0,8,67.4,0,0,,0,325,0,0,2.079442,5.783825,0,0,0,0,0,0,72.91712,9.163564,2.079442,4.116089,1 +11,1,0,1,2,129075,1,9542.002,21.62149,1,13,1,37.73275,6.900329,0,0,0,44.63308,0,0,0,4,1,8,67.4,0,0,,0,325,0,0,2.079442,5.783825,0,0,0,0,0,0,72.91712,9.163564,2.079442,3.798475,1 +11,1,0,1,3,129075,1,9542.002,22.62149,1,13,1,499.7756,17.60599,0,0,0,517.3815,0,0,0,9,0,9,67.4,0,0,,0,325,0,0,2.197225,5.783825,0,0,0,0,0,0,72.91712,9.163564,2.197225,6.248781,1 +11,1,0,1,4,129075,1,9542.002,23.62149,1,13,1,151.2218,14.56893,0,0,0,165.7907,0,0,0,4,0,10,67.4,0,0,,0,325,0,0,2.302585,5.783825,0,0,0,0,0,0,72.91712,9.163564,2.302585,5.110726,1 +11,1,0,1,5,129075,1,9542.002,24.62149,1,13,1,52.05247,0,0,0,0,52.05247,0,0,0,7,0,10,67.4,0,0,,0,325,0,0,2.302585,5.783825,0,0,0,0,0,0,72.91712,9.163564,2.302585,3.952252,1 +11,1,0,1,1,129076,1,9542.002,46.31348,0,3,1,0,0,0,0,0,0,0,0,0,0,0,8,57.9,0,0,,0,325,0,0,2.079442,5.783825,0,0,0,1,0,0,60.2207,9.163564,2.079442,,0 +11,1,0,1,2,129076,1,9542.002,47.31348,0,3,1,24.91785,.8214677,49.28806,0,0,75.02738,0,0,0,2,0,8,57.9,0,0,,0,325,0,0,2.079442,5.783825,0,0,0,1,0,0,60.2207,9.163564,2.079442,4.317853,1 +11,1,0,1,3,129076,1,9542.002,48.31348,0,3,1,0,0,0,0,0,0,0,0,0,0,0,9,57.9,0,0,,0,325,0,0,2.197225,5.783825,0,0,0,1,0,0,60.2207,9.163564,2.197225,,0 +11,1,0,1,4,129076,1,9542.002,49.31348,0,3,1,55.78608,7.330567,0,0,0,63.11664,0,0,0,4,0,10,57.9,0,0,,0,325,0,0,2.302585,5.783825,0,0,0,1,0,0,60.2207,9.163564,2.302585,4.144984,1 +11,1,0,1,5,129076,1,9542.002,50.31348,0,3,1,0,0,0,0,0,0,0,0,0,0,0,10,57.9,0,0,,0,325,0,0,2.302585,5.783825,0,0,0,1,0,0,60.2207,9.163564,2.302585,,0 +11,1,0,1,1,129077,1,9542.002,9.492128,1,13,1,0,0,0,0,0,0,0,0,0,0,0,8,74.36826,13.73189,0,,0,325,1,1,2.079442,5.783825,0,0,0,0,0,0,80.56938,9.163564,2.079442,,0 +11,1,0,1,2,129077,1,9542.002,10.49213,1,13,1,3.833516,0,0,0,0,3.833516,0,0,0,1,0,8,74.36826,13.73189,0,,0,325,1,1,2.079442,5.783825,0,0,0,0,0,0,80.56938,9.163564,2.079442,1.343782,1 +11,1,0,1,3,129077,1,9542.002,11.49213,1,13,1,9.975062,0,0,0,0,9.975062,0,0,0,1,0,9,74.36826,13.73189,0,,0,325,1,1,2.197225,5.783825,0,0,0,0,0,0,80.56938,9.163564,2.197225,2.300088,1 +11,1,0,1,4,129077,1,9542.002,12.49213,1,13,1,0,0,0,0,0,0,0,0,0,0,0,10,74.36826,13.73189,0,,0,325,1,1,2.302585,5.783825,0,0,0,0,0,0,80.56938,9.163564,2.302585,,0 +11,1,0,1,5,129077,1,9542.002,13.49213,1,13,1,0,0,0,0,0,0,0,0,0,0,0,10,74.36826,13.73189,0,,0,325,1,1,2.302585,5.783825,0,0,0,0,0,0,80.56938,9.163564,2.302585,,0 +11,1,0,1,1,129082,1,5959.057,50.58453,1,9,1,27.95955,31.66568,0,0,0,59.62522,0,0,0,3,1,3,84.2,26.1,1,,0,313,0,0,1.098612,5.746203,0,0,0,0,0,1,52.06449,8.692836,1.098612,4.088078,1 +11,1,0,1,2,129082,1,5959.057,51.58453,1,9,1,228.0893,26.40174,0,0,0,254.491,0,0,0,7,10,3,84.2,26.1,1,,0,313,0,0,1.098612,5.746203,0,0,0,0,0,1,52.06449,8.692836,1.098612,5.539266,1 +11,1,0,1,3,129082,1,5959.057,52.58453,1,9,1,122.3984,40.05946,26.92765,0,0,189.3855,0,0,0,6,6,3,84.2,26.1,1,,0,313,0,0,1.098612,5.746203,0,0,0,0,0,1,52.06449,8.692836,1.098612,5.243785,1 +11,1,0,1,1,129083,1,5959.057,18.05613,1,12.32507,1,35.09816,.594884,0,0,0,35.69304,0,0,0,3,0,3,83.2,17.4,0,,0,313,0,0,1.098612,5.746203,0,0,0,0,1,0,62.13012,8.692836,1.098612,3.574956,1 +11,1,0,1,2,129083,1,5959.057,19.05613,1,12.32507,1,69.67883,13.62003,0,0,0,83.29886,0,0,0,8,0,3,83.2,17.4,0,,0,313,0,0,1.098612,5.746203,0,0,0,0,1,0,62.13012,8.692836,1.098612,4.422435,1 +11,1,0,1,3,129083,1,5959.057,20.05613,1,12.32507,1,0,0,0,0,0,0,0,0,0,0,0,3,83.2,17.4,0,,0,313,0,0,1.098612,5.746203,0,0,0,0,1,0,62.13012,8.692836,1.098612,,0 +11,1,0,1,1,129084,1,5959.057,56,0,2,1,131.1719,67.55502,21.76086,0,1095.604,1316.092,1,0,0,9,1,3,75.8,34.8,1,,0,313,0,0,1.098612,5.746203,0,0,0,0,0,1,60.90429,8.692836,1.098612,7.182422,1 +11,1,0,1,2,129084,1,5959.057,57,0,2,1,136.6358,50.28851,0,0,0,186.9243,0,0,0,8,6,3,75.8,34.8,1,,0,313,0,0,1.098612,5.746203,0,0,0,0,0,1,60.90429,8.692836,1.098612,5.230704,1 +11,1,0,1,3,129084,1,5959.057,58,0,2,1,66.40238,43.68186,21.74926,0,0,131.8335,0,0,0,6,3,3,75.8,34.8,1,,0,313,0,0,1.098612,5.746203,0,0,0,0,0,1,60.90429,8.692836,1.098612,4.88154,1 +11,1,0,0,1,129090,0,4912.531,49.28679,1,11,1,23.55713,55.73027,0,0,0,79.2874,0,0,0,2,0,1,87.5,13.73189,0,,0,0,0,0,0,0,0,0,0,0,0,0,75.54311,8.499748,0,4.373079,1 +11,1,0,0,2,129090,0,4912.531,50.28679,1,11,1,80.86253,58.14016,0,0,0,139.0027,0,0,0,9,0,1,87.5,13.73189,0,,0,0,0,0,0,0,0,0,0,0,0,0,75.54311,8.499748,0,4.934494,1 +11,1,0,0,3,129090,0,4912.531,51.28679,1,11,1,28.99263,28.7027,48.78624,0,0,106.4816,0,0,0,2,1,1,87.5,13.73189,0,,0,0,0,0,0,0,0,0,0,0,0,0,75.54311,8.499748,0,4.667972,1 +11,1,0,0,4,129090,0,4912.531,52.28679,1,11,1,11.8505,29.98177,0,0,0,41.83227,0,0,0,1,0,1,87.5,13.73189,0,,0,0,0,0,0,0,0,0,0,0,0,0,75.54311,8.499748,0,3.733668,1 +11,1,0,0,5,129090,0,4912.531,53.28679,1,11,1,27.09462,24.73948,45.30221,0,0,97.13631,0,0,0,4,1,1,87.5,13.73189,0,,0,0,0,0,0,0,0,0,0,0,0,0,75.54311,8.499748,0,4.576115,1 +11,1,0,0,1,129091,0,7755.583,21.3963,0,11,1,0,0,0,0,0,0,0,0,0,0,0,1,83.8,13.73189,0,,0,204,0,0,0,5.31812,0,0,0,0,0,0,69.5586,8.956297,0,,0 +11,1,0,0,2,129091,0,7755.583,22.3963,0,11,1,0,0,0,0,0,0,0,0,0,0,0,1,83.8,13.73189,0,,0,204,0,0,0,5.31812,0,0,0,0,0,0,69.5586,8.956297,0,,0 +11,1,0,0,3,129091,0,7755.583,23.3963,0,11,1,0,0,0,0,0,0,0,0,0,0,0,2,83.8,13.73189,0,,0,204,0,0,.6931472,5.31812,0,0,0,0,0,0,69.5586,8.956297,.6931472,,0 +11,1,0,0,4,129091,0,7755.583,24.3963,0,11,1,0,0,0,0,0,0,0,0,0,0,0,2,83.8,13.73189,0,,0,204,0,0,.6931472,5.31812,0,0,0,0,0,0,69.5586,8.956297,.6931472,,0 +11,1,0,0,5,129091,0,7755.583,25.3963,0,11,1,14.58941,0,0,0,0,14.58941,0,0,0,1,0,2,83.8,13.73189,0,,0,204,0,0,.6931472,5.31812,0,0,0,0,0,0,69.5586,8.956297,.6931472,2.680296,1 +7,1,25,1,1,129103,0,6910.05,5.472964,1,12,1,222.7218,12.71583,0,0,0,235.4377,0,0,0,12,1,4,74.36826,13.73189,0,,224,398,1,1,1.386294,5.986452,0,3.258096,6.79794,0,0,0,76.40307,8.840877,1.386294,5.461446,1 +7,1,25,1,2,129103,0,6910.05,6.472964,1,12,1,127.0537,4.742607,0,0,0,131.7963,0,0,0,12,1,4,74.36826,13.73189,0,,224,398,1,1,1.386294,5.986452,0,3.258096,6.79794,0,0,0,76.40307,8.840877,1.386294,4.881258,1 +7,1,25,1,3,129103,0,6910.05,7.472964,1,12,1,68.32918,14.43392,0,0,0,82.76309,0,0,0,7,1,4,74.36826,13.73189,0,,224,398,1,1,1.386294,5.986452,0,3.258096,6.79794,0,0,0,76.40307,8.840877,1.386294,4.415982,1 +7,1,25,1,1,129104,0,6910.05,38.43943,0,8,1,329.7362,135.4736,28.19544,0,0,493.4053,0,0,0,21,1,4,87.4,30.4,1,,224,398,0,0,1.386294,5.986452,0,3.258096,6.79794,0,0,1,47.57713,8.840877,1.386294,6.201331,1 +7,1,25,1,2,129104,0,6910.05,39.43943,0,8,1,134.7207,65.96385,0,0,2631.38,2832.065,1,0,0,10,0,4,87.4,30.4,1,,224,398,0,0,1.386294,5.986452,0,3.258096,6.79794,0,0,1,47.57713,8.840877,1.386294,7.948761,1 +7,1,25,1,3,129104,0,6910.05,40.43943,0,8,1,143.8903,14.93766,0,0,0,158.8279,0,0,0,12,0,4,87.4,30.4,1,,224,398,0,0,1.386294,5.986452,0,3.258096,6.79794,0,0,1,47.57713,8.840877,1.386294,5.067822,1 +7,1,25,1,1,129105,0,6910.05,33.98768,1,12,1,508.3933,79.76619,41.03717,0,0,629.1967,0,0,0,38,1,4,78.9,26.1,0,,224,398,0,0,1.386294,5.986452,0,3.258096,6.79794,1,0,0,70.62605,8.840877,1.386294,6.444444,1 +7,1,25,1,2,129105,0,6910.05,34.98768,1,12,1,277.1084,22.51369,0,0,0,299.6221,0,0,0,13,1,4,78.9,26.1,0,,224,398,0,0,1.386294,5.986452,0,3.258096,6.79794,1,0,0,70.62605,8.840877,1.386294,5.702522,1 +7,1,25,1,3,129105,0,6910.05,35.98768,1,12,1,261.3466,23.19701,34.00998,0,538.4988,857.0524,1,0,0,15,0,4,78.9,26.1,0,,224,398,0,0,1.386294,5.986452,0,3.258096,6.79794,1,0,0,70.62605,8.840877,1.386294,6.753499,1 +7,1,25,1,1,129106,0,6910.05,8.221766,0,12,1,345.024,44.55635,0,0,210.3777,599.958,1,0,0,35,3,4,74.36826,13.73189,0,,224,398,1,0,1.386294,5.986452,0,3.258096,6.79794,0,0,0,81.70934,8.840877,1.386294,6.39686,1 +7,1,25,1,2,129106,0,6910.05,9.221766,0,12,1,289.1566,50.91457,0,0,0,340.0712,0,0,0,46,0,4,74.36826,13.73189,0,,224,398,1,0,1.386294,5.986452,0,3.258096,6.79794,0,0,0,81.70934,8.840877,1.386294,5.829155,1 +7,1,25,1,3,129106,0,6910.05,10.22177,0,12,1,253.4414,20.40898,4.912718,0,0,278.7631,0,0,0,31,0,4,74.36826,13.73189,0,,224,398,1,0,1.386294,5.986452,0,3.258096,6.79794,0,0,0,81.70934,8.840877,1.386294,5.630363,1 +5,1,25,0,1,129128,0,9542.002,54.53799,1,13,1,79.13669,172.6859,0,0,0,251.8225,0,0,0,13,0,1,53.8,13.73189,1,,278,278,0,0,0,5.627621,0,3.258096,7.013916,0,0,0,71.19215,9.163564,0,5.528725,1 +11,1,0,1,1,129131,0,7450.372,20.3039,0,11,1,5.353956,0,0,0,0,5.353956,0,0,0,1,0,3,61.1,8.7,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,68.49515,8.916154,1.098612,1.677836,1 +11,1,0,1,2,129131,0,7450.372,21.3039,0,11,1,22.86336,.7185629,0,0,0,23.58193,0,0,0,2,0,3,61.1,8.7,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,68.49515,8.916154,1.098612,3.16048,1 +11,1,0,1,3,129131,0,7450.372,22.3039,0,11,1,0,0,0,0,0,0,0,0,0,0,0,3,61.1,8.7,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,68.49515,8.916154,1.098612,,0 +11,1,0,1,1,129132,0,7450.372,45.63723,0,8,1,6.543724,3.926234,0,0,0,10.46996,0,0,0,1,0,3,62.1,13,0,,0,0,0,0,1.098612,0,0,0,0,0,1,0,55.14676,8.916154,1.098612,2.34851,1 +11,1,0,1,2,129132,0,7450.372,46.63723,0,8,1,0,0,0,0,0,0,0,0,0,0,0,3,62.1,13,0,,0,0,0,0,1.098612,0,0,0,0,0,1,0,55.14676,8.916154,1.098612,,0 +11,1,0,1,3,129132,0,7450.372,47.63723,0,8,1,0,0,0,0,0,0,0,0,0,0,0,3,62.1,13,0,,0,0,0,0,1.098612,0,0,0,0,0,1,0,55.14676,8.916154,1.098612,,0 +11,1,0,1,1,129133,0,7450.372,45.59617,1,7,1,34.20583,16.38905,0,0,0,50.59488,0,0,0,1,0,3,43.2,13,0,,0,0,0,0,1.098612,0,0,0,0,0,1,0,51.12005,8.916154,1.098612,3.923851,1 +11,1,0,1,2,129133,0,7450.372,46.59617,1,7,1,5.988024,12.87969,0,0,0,18.86772,0,0,0,1,0,3,43.2,13,0,,0,0,0,0,1.098612,0,0,0,0,0,1,0,51.12005,8.916154,1.098612,2.937453,1 +11,1,0,1,3,129133,0,7450.372,47.59617,1,7,1,73.33994,22.3439,0,0,0,95.68385,0,0,0,3,0,3,43.2,13,0,,0,0,0,0,1.098612,0,0,0,0,0,1,0,51.12005,8.916154,1.098612,4.561049,1 +4,1,100,1,1,129134,0,5577.543,13.45654,0,10,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,0,0,1,0,1.609438,0,1,0,0,0,0,0,81.31855,8.626683,1.609438,,0 +4,1,100,1,2,129134,0,5577.543,14.45654,0,10,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,0,0,1,0,1.609438,0,1,0,0,0,0,0,81.31855,8.626683,1.609438,,0 +4,1,100,1,3,129134,0,5577.543,15.45654,0,10,1,8.478803,0,0,0,0,8.478803,0,0,0,1,0,5,74.36826,13.73189,0,,0,0,1,0,1.609438,0,1,0,0,0,0,0,81.31855,8.626683,1.609438,2.137569,1 +4,1,100,1,1,129135,0,5577.543,15.76728,1,10,1,8.992805,29.1247,0,0,0,38.1175,0,0,0,1,0,5,64.2,17.4,1,,0,0,1,1,1.609438,0,1,0,0,0,0,0,70.25932,8.626683,1.609438,3.640674,1 +4,1,100,1,2,129135,0,5577.543,16.76728,1,10,1,19.71523,6.369113,0,0,0,26.08434,0,0,0,3,0,5,64.2,17.4,1,,0,0,1,1,1.609438,0,1,0,0,0,0,0,70.25932,8.626683,1.609438,3.261335,1 +4,1,100,1,3,129135,0,5577.543,17.76728,1,10,1,36.90773,2.513716,0,0,0,39.42145,0,0,0,2,0,5,64.2,17.4,1,,0,0,1,1,1.609438,0,1,0,0,0,0,0,70.25932,8.626683,1.609438,3.67431,1 +4,1,100,1,1,129136,0,5577.543,10.36277,0,10,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,0,0,1,0,1.609438,0,1,0,0,0,0,0,81.31855,8.626683,1.609438,,0 +4,1,100,1,2,129136,0,5577.543,11.36277,0,10,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,0,0,1,0,1.609438,0,1,0,0,0,0,0,81.31855,8.626683,1.609438,,0 +4,1,100,1,3,129136,0,5577.543,12.36277,0,10,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,0,0,1,0,1.609438,0,1,0,0,0,0,0,81.31855,8.626683,1.609438,,0 +4,1,100,1,1,129137,0,5577.543,50.59548,1,10,1,13.18945,0,0,0,0,13.18945,0,0,0,2,0,5,94.7,8.7,0,,0,0,0,0,1.609438,0,1,0,0,0,0,0,74.53511,8.626683,1.609438,2.579417,1 +4,1,100,1,2,129137,0,5577.543,51.59548,1,10,1,0,0,0,0,0,0,0,0,0,0,0,5,94.7,8.7,0,,0,0,0,0,1.609438,0,1,0,0,0,0,0,74.53511,8.626683,1.609438,,0 +4,1,100,1,3,129137,0,5577.543,52.59548,1,10,1,0,0,0,0,0,0,0,0,0,0,0,5,94.7,8.7,0,,0,0,0,0,1.609438,0,1,0,0,0,0,0,74.53511,8.626683,1.609438,,0 +4,1,100,1,1,129138,0,5577.543,49.30048,0,9,1,0,0,0,0,0,0,0,0,0,0,0,5,71.6,13,1,,0,0,0,0,1.609438,0,1,0,0,1,0,0,63.3497,8.626683,1.609438,,0 +4,1,100,1,2,129138,0,5577.543,50.30048,0,9,1,0,0,0,0,0,0,0,0,0,0,0,5,71.6,13,1,,0,0,0,0,1.609438,0,1,0,0,1,0,0,63.3497,8.626683,1.609438,,0 +4,1,100,1,3,129138,0,5577.543,51.30048,0,9,1,0,0,0,0,0,0,0,0,0,0,0,5,71.6,13,1,,0,0,0,0,1.609438,0,1,0,0,1,0,0,63.3497,8.626683,1.609438,,0 +2,1,100,0,1,129147,0,5788.461,24.89254,0,12,1,4.196643,3.477218,0,0,0,7.673861,0,0,0,0,1,1,88.8,13.73189,0,,261,261,0,0,0,5.56452,1,0,0,1,0,0,68.8223,8.663795,0,2.03782,1 +2,1,100,0,2,129147,0,5788.461,25.89254,0,12,1,218.5104,13.15991,0,0,1205.619,1437.289,1,0,0,13,0,1,88.8,13.73189,0,,261,261,0,0,0,5.56452,1,0,0,1,0,0,68.8223,8.663795,0,7.270514,1 +2,1,100,0,3,129147,0,5788.461,26.89254,0,12,1,80.54863,3.261845,0,0,0,83.81047,0,0,0,6,0,1,88.8,13.73189,0,,261,261,0,0,0,5.56452,1,0,0,1,0,0,68.8223,8.663795,0,4.428558,1 +2,1,100,0,4,129147,0,5788.461,27.89254,0,12,1,5.532504,0,0,0,0,5.532504,0,0,0,1,0,1,88.8,13.73189,0,,261,261,0,0,0,5.56452,1,0,0,1,0,0,68.8223,8.663795,0,1.71064,1 +2,1,100,0,5,129147,0,5788.461,28.89254,0,12,1,39.35675,3.385527,0,0,0,42.74228,0,0,0,4,1,1,88.8,13.73189,0,,261,261,0,0,0,5.56452,1,0,0,1,0,0,68.8223,8.663795,0,3.755188,1 +11,1,0,0,1,129179,0,3657.568,60.11225,1,12,1,48.29211,66.19553,46.77267,35.33569,0,161.2603,0,0,4,3,1,1,53.7,39.1,1,,0,259,0,0,0,5.556828,0,0,0,1,0,0,71.72364,8.204827,0,5.08302,1 +11,1,0,0,2,129179,0,3657.568,61.11225,1,12,1,71.15903,95.90836,0,32.34501,0,167.0674,0,0,4,7,0,1,53.7,39.1,1,,0,259,0,0,0,5.556828,0,0,0,1,0,0,71.72364,8.204827,0,5.118397,1 +11,1,0,0,3,129179,0,3657.568,62.11225,1,12,1,95.8231,102.113,38,44.22604,0,235.9361,0,0,6,10,2,1,53.7,39.1,1,,0,259,0,0,0,5.556828,0,0,0,1,0,0,71.72364,8.204827,0,5.463561,1 +2,1,100,1,1,129203,1,5182.125,27.6386,1,16,1,0,0,0,0,0,0,0,0,0,0,0,2,75.8,21.7,0,,149,0,0,0,.6931472,0,1,0,0,1,0,0,67.06125,8.553164,.6931472,,0 +2,1,100,1,2,129203,1,5182.125,28.6386,1,16,1,0,0,0,0,0,0,0,0,0,0,0,2,75.8,21.7,0,,149,0,0,0,.6931472,0,1,0,0,1,0,0,67.06125,8.553164,.6931472,,0 +2,1,100,1,3,129203,1,5182.125,29.6386,1,16,1,0,6.359102,0,0,0,6.359102,0,0,0,0,0,2,75.8,21.7,0,,149,0,0,0,.6931472,0,1,0,0,1,0,0,67.06125,8.553164,.6931472,1.849887,1 +2,1,100,1,1,129204,1,5182.125,2.201232,1,16,1,0,0,0,0,0,0,0,0,0,0,0,2,74.36826,13.73189,0,,149,0,1,1,.6931472,0,1,0,0,1,0,0,82.66727,8.553164,.6931472,,0 +2,1,100,1,2,129204,1,5182.125,3.201232,1,16,1,0,0,0,0,0,0,0,0,0,0,0,2,74.36826,13.73189,0,,149,0,1,1,.6931472,0,1,0,0,1,0,0,82.66727,8.553164,.6931472,,0 +2,1,100,1,3,129204,1,5182.125,4.201232,1,16,1,0,0,0,0,0,0,0,0,0,0,0,2,74.36826,13.73189,0,,149,0,1,1,.6931472,0,1,0,0,1,0,0,82.66727,8.553164,.6931472,,0 +7,1,25,0,1,129210,0,4188.585,20.94182,1,12,1,148.9988,68.49235,0,0,529.4464,746.9376,1,0,0,9,0,1,41.1,17.4,0,,600,600,0,0,0,6.39693,0,3.258096,7.783224,1,0,0,65.09395,8.340357,0,6.615982,1 +7,1,25,0,2,129210,0,4188.585,21.94182,1,12,1,171.3208,81.22372,0,0,0,252.5445,0,0,0,15,1,1,41.1,17.4,0,,600,600,0,0,0,6.39693,0,3.258096,7.783224,1,0,0,65.09395,8.340357,0,5.531588,1 +7,1,25,0,3,129210,0,4188.585,22.94182,1,12,1,211.769,46.82555,27.02703,0,756.0393,1041.661,2,0,0,19,2,1,41.1,17.4,0,,600,600,0,0,0,6.39693,0,3.258096,7.783224,1,0,0,65.09395,8.340357,0,6.948572,1 +7,1,25,0,4,129210,0,4188.585,23.94182,1,12,1,87.4886,0,.7520511,0,836.4585,924.6992,1,0,0,2,0,1,41.1,17.4,0,,600,600,0,0,0,6.39693,0,3.258096,7.783224,1,0,0,65.09395,8.340357,0,6.829468,1 +7,1,25,0,5,129210,0,4188.585,24.94182,1,12,1,75.4481,0,0,0,0,75.4481,0,0,0,3,1,2,41.1,17.4,0,,600,600,0,0,.6931472,6.39693,0,3.258096,7.783224,1,0,0,65.09395,8.340357,.6931472,4.323445,1 +7,1,25,0,1,129211,0,246.8983,23.35113,1,12,1,159.894,34.2874,0,0,0,194.1814,0,0,0,9,1,2,53.7,30.4,0,,0,0,0,0,.6931472,0,0,3.258096,0,0,1,0,55.25999,5.513019,.6931472,5.268793,1 +7,1,25,0,2,129211,0,246.8983,24.35113,1,12,1,249.0566,109.8976,0,0,0,358.9542,0,0,0,12,2,2,53.7,30.4,0,,0,0,0,0,.6931472,0,0,3.258096,0,0,1,0,55.25999,5.513019,.6931472,5.883195,1 +7,1,25,0,3,129211,0,246.8983,25.35113,1,12,1,188.5012,94.82555,0,0,0,283.3268,0,0,0,9,2,2,53.7,30.4,0,,0,0,0,0,.6931472,0,0,3.258096,0,0,1,0,55.25999,5.513019,.6931472,5.646601,1 +7,1,25,0,4,129211,0,246.8983,26.35113,1,12,1,368.7329,112.1422,0,0,1234.48,1715.355,1,0,0,8,1,2,53.7,30.4,0,,0,0,0,0,.6931472,0,0,3.258096,0,0,1,0,55.25999,5.513019,.6931472,7.447376,1 +7,1,25,0,5,129211,0,246.8983,27.35113,1,12,1,306.1693,209.7541,0,449.1455,0,515.9233,0,0,24,12,0,3,53.7,30.4,0,,0,0,0,0,1.098612,0,0,3.258096,0,0,1,0,55.25999,5.513019,1.098612,6.245958,1 +7,1,25,0,1,129212,0,246.8983,4.741958,0,12,1,45.78917,1.914016,0,0,0,47.70318,0,0,0,2,1,2,74.36826,13.73189,0,,0,0,1,0,.6931472,0,0,3.258096,0,1,0,0,72.59683,5.513019,.6931472,3.864998,1 +7,1,25,0,2,129212,0,246.8983,5.741958,0,12,1,6.469003,1.886792,0,0,0,8.355795,0,0,0,1,0,2,74.36826,13.73189,0,,0,0,1,0,.6931472,0,0,3.258096,0,1,0,0,72.59683,5.513019,.6931472,2.122955,1 +7,1,25,0,3,129212,0,246.8983,6.741958,0,12,1,19.16462,2.211302,0,0,0,21.37592,0,0,0,2,0,2,74.36826,13.73189,0,,0,0,1,0,.6931472,0,0,3.258096,0,1,0,0,72.59683,5.513019,.6931472,3.062265,1 +7,1,25,0,4,129212,0,246.8983,7.741958,0,12,1,16.86418,5.350957,0,0,0,22.21513,0,0,0,1,1,2,74.36826,13.73189,0,,0,0,1,0,.6931472,0,0,3.258096,0,1,0,0,72.59683,5.513019,.6931472,3.100774,1 +7,1,25,0,5,129212,0,246.8983,8.741958,0,12,1,61.69237,0,0,151.1046,0,61.69237,0,0,9,2,1,3,74.36826,13.73189,0,,0,0,1,0,1.098612,0,0,3.258096,0,1,0,0,72.59683,5.513019,1.098612,4.12216,1 +7,1,25,0,1,129214,0,945.2643,19.68515,1,12,1,21.20141,27.88575,0,0,0,49.08716,0,0,0,2,0,1,58.9,8.7,0,,0,0,0,0,0,0,0,3.258096,0,1,0,0,62.32022,6.852522,0,3.893598,1 +7,1,25,0,2,129214,0,945.2643,20.68515,1,12,1,29.6496,0,31.69811,0,0,61.34771,0,0,0,2,0,1,58.9,8.7,0,,0,0,0,0,0,0,0,3.258096,0,1,0,0,62.32022,6.852522,0,4.116558,1 +7,1,25,0,3,129214,0,945.2643,21.68515,1,12,1,73.21867,24.15725,0,0,0,97.37592,0,0,0,5,0,1,58.9,8.7,0,,0,0,0,0,0,0,0,3.258096,0,1,0,0,62.32022,6.852522,0,4.578579,1 +7,1,25,0,4,129214,0,945.2643,22.68515,1,12,1,39.19781,18.03555,0,0,0,57.23336,0,0,0,4,0,1,58.9,8.7,0,,0,0,0,0,0,0,0,3.258096,0,1,0,0,62.32022,6.852522,0,4.047137,1 +7,1,25,0,5,129214,0,945.2643,23.68515,1,12,1,161.7341,4.114214,23.07211,0,0,188.9204,0,0,0,8,0,1,58.9,8.7,0,,0,0,0,0,0,0,0,3.258096,0,1,0,0,62.32022,6.852522,0,5.241326,1 +11,1,0,1,1,129223,0,8825.683,5.314168,0,10,1,123.6749,23.89281,0,0,0,147.5677,0,0,0,11,0,5,74.36826,13.73189,0,,0,0,1,0,1.609438,0,0,0,0,1,0,0,73.78497,9.085534,1.609438,4.994287,1 +11,1,0,1,2,129223,0,8825.683,6.314168,0,10,1,93.90836,13.64421,0,0,0,107.5526,0,0,0,2,1,5,74.36826,13.73189,0,,0,0,1,0,1.609438,0,0,0,0,1,0,0,73.78497,9.085534,1.609438,4.677979,1 +11,1,0,1,3,129223,0,8825.683,7.314168,0,10,1,16.21622,3.341523,0,0,0,19.55774,0,0,0,3,0,5,74.36826,13.73189,0,,0,0,1,0,1.609438,0,0,0,0,1,0,0,73.78497,9.085534,1.609438,2.973371,1 +11,1,0,1,1,129224,0,8825.683,6.707735,1,10,1,18.25677,15.10601,0,0,0,33.36278,0,0,0,3,0,5,74.36826,13.73189,0,,0,0,1,1,1.609438,0,0,0,0,1,0,0,76.70262,9.085534,1.609438,3.507441,1 +11,1,0,1,2,129224,0,8825.683,7.707735,1,10,1,53.18059,2.070081,0,0,0,55.25068,0,0,0,2,2,5,74.36826,13.73189,0,,0,0,1,1,1.609438,0,0,0,0,1,0,0,76.70262,9.085534,1.609438,4.01188,1 +11,1,0,1,3,129224,0,8825.683,8.707734,1,10,1,38.82064,5.380836,0,0,0,44.20147,0,0,0,4,0,5,74.36826,13.73189,0,,0,0,1,1,1.609438,0,0,0,0,1,0,0,76.70262,9.085534,1.609438,3.788758,1 +11,1,0,1,1,129225,0,8825.683,8.67625,1,10,1,25.91284,9.228504,0,0,0,35.14134,0,0,0,4,0,5,74.36826,13.73189,0,,0,0,1,1,1.609438,0,0,0,0,1,0,0,76.70262,9.085534,1.609438,3.559378,1 +11,1,0,1,2,129225,0,8825.683,9.67625,1,10,1,16.17251,2.695418,0,0,0,18.86792,0,0,0,3,0,5,74.36826,13.73189,0,,0,0,1,1,1.609438,0,0,0,0,1,0,0,76.70262,9.085534,1.609438,2.937463,1 +11,1,0,1,3,129225,0,8825.683,10.67625,1,10,1,42.26044,3.439803,0,0,0,45.70024,0,0,0,4,0,5,74.36826,13.73189,0,,0,0,1,1,1.609438,0,0,0,0,1,0,0,76.70262,9.085534,1.609438,3.822104,1 +11,1,0,1,1,129226,0,8825.683,24.72553,1,10,1,582.2438,26.8139,0,0,0,609.0577,0,0,0,13,0,5,76.8,26.1,0,,0,0,0,0,1.609438,0,0,0,0,1,0,0,69.42252,9.085534,1.609438,6.411913,1 +11,1,0,1,2,129226,0,8825.683,25.72553,1,10,1,221.1429,28.06469,22.2372,0,1094.771,1366.216,1,0,0,14,1,5,76.8,26.1,0,,0,0,0,0,1.609438,0,0,0,0,1,0,0,69.42252,9.085534,1.609438,7.2198,1 +11,1,0,1,3,129226,0,8825.683,26.72553,1,10,1,27.02703,9.68059,0,0,0,36.70761,0,0,0,2,0,5,76.8,26.1,0,,0,0,0,0,1.609438,0,0,0,0,1,0,0,69.42252,9.085534,1.609438,3.602984,1 +11,1,0,1,1,129227,0,8825.683,29.88912,0,10,1,122.4971,38.404,0,0,0,160.9011,0,0,0,10,0,5,86.3,13,0,,0,0,0,0,1.609438,0,0,0,0,1,0,0,63.37903,9.085534,1.609438,5.08079,1 +11,1,0,1,2,129227,0,8825.683,30.88912,0,10,1,101.8868,13.16981,0,0,0,115.0566,0,0,0,4,0,5,86.3,13,0,,0,0,0,0,1.609438,0,0,0,0,1,0,0,63.37903,9.085534,1.609438,4.745424,1 +11,1,0,1,3,129227,0,8825.683,31.88912,0,10,1,36.85504,12.35872,0,0,0,49.21376,0,0,0,3,0,5,86.3,13,0,,0,0,0,0,1.609438,0,0,0,0,1,0,0,63.37903,9.085534,1.609438,3.896173,1 +8,1,50,0,1,129232,0,1,19.39767,0,6,1,6.031363,0,33.1725,0,0,39.20386,0,0,0,0,1,2,83.8,13.73189,0,,83,0,0,0,.6931472,0,0,3.931826,5.111988,0,0,0,71.22549,.6931472,.6931472,3.668775,1 +8,1,50,0,2,129232,0,1,20.39767,0,6,1,0,0,0,0,0,0,0,0,0,0,0,2,83.8,13.73189,0,,83,0,0,0,.6931472,0,0,3.931826,5.111988,0,0,0,71.22549,.6931472,.6931472,,0 +8,1,50,0,3,129232,0,1,21.39767,0,6,1,0,0,0,0,0,0,0,0,0,0,0,2,83.8,13.73189,0,,83,0,0,0,.6931472,0,0,3.931826,5.111988,0,0,0,71.22549,.6931472,.6931472,,0 +8,1,50,0,1,129233,0,1,19.07461,1,12,1,65.24728,1.960193,0,0,0,67.20748,0,0,0,3,0,2,97.5,13.73189,0,,83,0,0,0,.6931472,0,0,3.931826,5.111988,0,0,0,75.26614,.6931472,.6931472,4.207785,1 +8,1,50,0,2,129233,0,1,20.07461,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,97.5,13.73189,0,,83,0,0,0,.6931472,0,0,3.931826,5.111988,0,0,0,75.26614,.6931472,.6931472,,0 +8,1,50,0,3,129233,0,1,21.07461,1,12,1,150.9292,26.25816,0,0,457.1371,634.3245,1,0,0,6,1,2,97.5,13.73189,0,,83,0,0,0,.6931472,0,0,3.931826,5.111988,0,0,0,75.26614,.6931472,.6931472,6.45256,1 +8,1,50,0,4,129233,0,1,22.07461,1,12,1,67.79787,12.23922,0,0,0,80.03709,0,0,0,8,0,1,97.5,13.73189,0,,83,0,0,0,0,0,0,3.931826,5.111988,0,0,0,75.26614,.6931472,0,4.38249,1 +8,1,50,0,5,129233,0,1,23.07461,1,12,1,143.3433,19.77882,0,37.2182,1318.609,1481.731,1,0,2,17,0,1,97.5,13.73189,0,,83,0,0,0,0,0,0,3.931826,5.111988,0,0,0,75.26614,.6931472,0,7.300966,1 +6,1,25,1,1,129245,0,5303.97,23.75633,1,14,1,0,49.74668,7.237636,0,1212.581,1269.566,1,0,0,0,0,2,93.7,8.7,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,0,79.52284,8.5764,.6931472,7.14643,1 +6,1,25,1,2,129245,0,5303.97,24.75633,1,14,1,26.43172,19.10793,18.99229,0,0,64.53194,0,0,0,2,1,3,93.7,8.7,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,79.52284,8.5764,1.098612,4.16716,1 +6,1,25,1,3,129245,0,5303.97,25.75633,1,14,1,22.60171,3.360121,28.34254,0,0,54.30437,0,0,0,1,1,3,93.7,8.7,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,79.52284,8.5764,1.098612,3.994605,1 +6,1,25,1,4,129245,0,5303.97,26.75633,1,14,1,28.28002,53.84794,0,0,0,82.12795,0,0,0,2,1,3,93.7,8.7,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,79.52284,8.5764,1.098612,4.408278,1 +6,1,25,1,5,129245,0,5303.97,27.75633,1,14,1,30.62527,49.87239,0,0,0,80.49766,0,0,0,3,0,3,93.7,8.7,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,79.52284,8.5764,1.098612,4.388228,1 +6,1,25,1,1,129246,0,5303.97,24.59411,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,89.5,0,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,0,78.37115,8.5764,.6931472,,0 +6,1,25,1,2,129246,0,5303.97,25.59411,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,89.5,0,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,78.37115,8.5764,1.098612,,0 +6,1,25,1,3,129246,0,5303.97,26.59411,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,89.5,0,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,78.37115,8.5764,1.098612,,0 +6,1,25,1,4,129246,0,5303.97,27.59411,0,12,1,7.881317,0,0,0,0,7.881317,0,0,0,1,0,3,89.5,0,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,78.37115,8.5764,1.098612,2.064495,1 +6,1,25,1,5,129246,0,5303.97,28.59411,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,89.5,0,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,78.37115,8.5764,1.098612,,0 +11,1,0,1,1,129252,1,1004.963,3.156742,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,74.36826,13.73189,0,,0,0,1,1,1.098612,0,0,0,0,0,1,0,77.77277,6.9137,1.098612,,0 +11,1,0,1,2,129252,1,1004.963,4.156742,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,0,0,1,1,1.386294,0,0,0,0,0,1,0,77.77277,6.9137,1.386294,,0 +11,1,0,1,3,129252,1,1004.963,5.156742,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,0,0,1,1,1.386294,0,0,0,0,0,1,0,77.77277,6.9137,1.386294,,0 +11,1,0,1,1,129253,1,1004.963,25.50582,1,12,1,0,0,0,0,0,0,1,1,0,0,0,3,76.8,26.1,0,,0,0,0,0,1.098612,0,0,0,0,0,1,0,63.3701,6.9137,1.098612,,0 +11,1,0,1,2,129253,1,1004.963,26.50582,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,76.8,26.1,0,,0,0,0,0,1.386294,0,0,0,0,0,1,0,63.3701,6.9137,1.386294,,0 +11,1,0,1,3,129253,1,1004.963,27.50582,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,76.8,26.1,0,,0,0,0,0,1.386294,0,0,0,0,0,1,0,63.3701,6.9137,1.386294,,0 +11,1,0,1,1,129254,1,1004.963,1.683778,1,12,1,4.796163,0,0,0,0,4.796163,0,0,0,0,0,3,74.36826,13.73189,0,,0,0,1,1,1.098612,0,0,0,0,0,1,0,77.77277,6.9137,1.098612,1.567816,1 +11,1,0,1,2,129254,1,1004.963,2.683778,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,0,0,1,1,1.386294,0,0,0,0,0,1,0,77.77277,6.9137,1.386294,,0 +11,1,0,1,3,129254,1,1004.963,3.683778,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,0,0,1,1,1.386294,0,0,0,0,0,1,0,77.77277,6.9137,1.386294,,0 +11,1,0,1,1,129255,0,6108.39,21.74675,0,12,1,14.98801,0,32.94365,0,0,47.93166,0,0,0,1,0,2,80,4.3,0,,0,146,0,0,.6931472,4.983607,0,0,0,0,0,0,71.70338,8.717582,.6931472,3.869776,1 +11,1,0,1,2,129255,0,6108.39,22.74675,0,12,1,46.00219,1.09529,0,0,0,47.09748,0,0,0,6,0,2,80,4.3,0,,0,146,0,0,.6931472,4.983607,0,0,0,0,0,0,71.70338,8.717582,.6931472,3.85222,1 +11,1,0,1,3,129255,0,6108.39,23.74675,0,12,1,19.45137,.9975063,0,0,0,20.44888,0,0,0,2,0,3,80,4.3,0,,0,146,0,0,1.098612,4.983607,0,0,0,0,0,0,71.70338,8.717582,1.098612,3.017928,1 +11,1,0,1,1,129256,0,6108.39,20.68446,1,12,1,167.6859,0,0,0,0,167.6859,0,0,0,9,0,2,73.7,8.7,0,,0,146,0,0,.6931472,4.983607,0,0,0,0,0,0,72.59457,8.717582,.6931472,5.122092,1 +11,1,0,1,2,129256,0,6108.39,21.68446,1,12,1,34.50164,4.107338,31.47317,0,828.5597,898.6418,1,0,0,3,0,2,73.7,8.7,0,,0,146,0,0,.6931472,4.983607,0,0,0,0,0,0,72.59457,8.717582,.6931472,6.800885,1 +11,1,0,1,3,129256,0,6108.39,22.68446,1,12,1,24.93766,0,0,0,0,24.93766,0,0,0,3,0,3,73.7,8.7,0,,0,146,0,0,1.098612,4.983607,0,0,0,0,0,0,72.59457,8.717582,1.098612,3.216379,1 +11,1,0,1,1,129270,0,12332.6,35.96714,1,12,1,59.95204,18.57914,19.76019,0,646.7866,745.0779,1,0,0,5,1,5,77.9,8.7,0,,0,195.84,0,0,1.609438,5.277298,0,0,0,1,0,0,69.12635,9.420083,1.609438,6.613489,1 +11,1,0,1,2,129270,0,12332.6,36.96714,1,12,1,20.04381,10.02191,0,0,0,30.06572,0,0,0,2,1,5,77.9,8.7,0,,0,195.84,0,0,1.609438,5.277298,0,0,0,1,0,0,69.12635,9.420083,1.609438,3.403386,1 +11,1,0,1,3,129270,0,12332.6,37.96714,1,12,1,30.52369,6.80798,0,0,0,37.33167,0,0,0,3,0,5,77.9,8.7,0,,0,195.84,0,0,1.609438,5.277298,0,0,0,1,0,0,69.12635,9.420083,1.609438,3.619842,1 +11,1,0,0,1,129271,0,12332.6,15.54825,0,12,1,27.81775,15.25779,30.54556,14.98801,1601.679,1675.3,1,0,1,2,1,5,74.36826,13.73189,.12982,,0,195.84,1,0,1.609438,5.277298,0,0,0,0,0,0,76.5796,9.420083,1.609438,7.423748,1 +11,1,0,0,2,129271,0,12332.6,16.54825,0,12,1,74.56188,15.03286,2.601314,13.69113,0,92.19606,0,0,1,6,0,5,74.36826,13.73189,.12982,,0,195.84,1,0,1.609438,5.277298,0,0,0,0,0,0,76.5796,9.420083,1.609438,4.523917,1 +11,1,0,0,3,129271,0,12332.6,17.54825,0,12,1,10.17456,6.932668,0,0,0,17.10723,0,0,0,2,0,5,74.36826,13.73189,.12982,,0,195.84,1,0,1.609438,5.277298,0,0,0,0,0,0,76.5796,9.420083,1.609438,2.839501,1 +11,1,0,1,1,129272,0,12332.6,12.54757,1,12,1,95.80336,3.776978,21.7506,0,0,121.3309,0,0,0,3,1,5,74.36826,13.73189,0,,0,195.84,1,1,1.609438,5.277298,0,0,0,0,0,0,84.30681,9.420083,1.609438,4.798522,1 +11,1,0,1,2,129272,0,12332.6,13.54757,1,12,1,28.03943,0,19.59474,0,0,47.63417,0,0,0,2,1,5,74.36826,13.73189,0,,0,195.84,1,1,1.609438,5.277298,0,0,0,0,0,0,84.30681,9.420083,1.609438,3.86355,1 +11,1,0,1,3,129272,0,12332.6,14.54757,1,12,1,59.75062,1.995013,10.97257,0,0,72.7182,0,0,0,4,1,5,74.36826,13.73189,0,,0,195.84,1,1,1.609438,5.277298,0,0,0,0,0,0,84.30681,9.420083,1.609438,4.286592,1 +11,1,0,1,1,129273,0,12332.6,9.667351,1,12,1,42.20623,5.845324,14.64628,0,0,62.69784,0,0,0,3,1,5,74.36826,13.73189,0,,0,195.84,1,1,1.609438,5.277298,0,0,0,0,0,0,85.26604,9.420083,1.609438,4.138327,1 +11,1,0,1,2,129273,0,12332.6,10.66735,1,12,1,54.70975,10.21358,9.364732,0,0,74.28806,0,0,0,5,1,5,74.36826,13.73189,0,,0,195.84,1,1,1.609438,5.277298,0,0,0,0,0,0,85.26604,9.420083,1.609438,4.30795,1 +11,1,0,1,3,129273,0,12332.6,11.66735,1,12,1,37.30673,3.915212,21.10225,0,0,62.32419,0,0,0,4,1,5,74.36826,13.73189,0,,0,195.84,1,1,1.609438,5.277298,0,0,0,0,0,0,85.26604,9.420083,1.609438,4.132349,1 +11,1,0,1,1,129274,0,12332.6,37.24846,0,13,1,127.0983,42.68585,30.04796,0,0,199.8321,0,0,0,8,2,5,69.5,21.7,0,,0,195.84,0,0,1.609438,5.277298,0,0,0,0,0,0,78.98214,9.420083,1.609438,5.297478,1 +11,1,0,1,2,129274,0,12332.6,38.24846,0,13,1,219.7152,63.19825,0,0,162.8149,445.7284,1,0,0,10,1,5,69.5,21.7,0,,0,195.84,0,0,1.609438,5.277298,0,0,0,0,0,0,78.98214,9.420083,1.609438,6.09971,1 +11,1,0,1,3,129274,0,12332.6,39.24846,0,13,1,74.71322,97.00748,24.5187,0,366.5636,562.803,1,0,0,10,1,5,69.5,21.7,0,,0,195.84,0,0,1.609438,5.277298,0,0,0,0,0,0,78.98214,9.420083,1.609438,6.33293,1 +8,1,50,1,1,129300,1,7050.248,8.64887,1,16,1,9.592326,0,0,0,0,9.592326,0,0,0,0,1,2,74.36826,13.73189,0,,399,399,1,1,.6931472,5.988961,0,3.931826,6.682108,1,0,0,87.67074,8.86096,.6931472,2.260963,1 +8,1,50,1,2,129300,1,7050.248,9.64887,1,16,1,20.28477,0,20.78313,0,0,41.06791,0,0,0,1,1,2,74.36826,13.73189,0,,399,399,1,1,.6931472,5.988961,0,3.931826,6.682108,1,0,0,87.67074,8.86096,.6931472,3.715227,1 +8,1,50,1,3,129300,1,7050.248,10.64887,1,16,1,0,0,0,0,0,0,0,0,0,0,0,2,74.36826,13.73189,0,,399,399,1,1,.6931472,5.988961,0,3.931826,6.682108,1,0,0,87.67074,8.86096,.6931472,,0 +8,1,50,1,4,129300,1,7050.248,11.64887,1,16,1,0,0,0,0,0,0,0,0,0,0,0,2,74.36826,13.73189,0,,399,399,1,1,.6931472,5.988961,0,3.931826,6.682108,1,0,0,87.67074,8.86096,.6931472,,0 +8,1,50,1,5,129300,1,7050.248,12.64887,1,16,1,26.66102,0,0,0,0,26.66102,0,0,0,1,0,2,74.36826,13.73189,0,,399,399,1,1,.6931472,5.988961,0,3.931826,6.682108,1,0,0,87.67074,8.86096,.6931472,3.283203,1 +8,1,50,1,1,129301,1,7050.248,24.47912,1,16,1,113.783,12.94964,0,0,0,126.7326,0,0,0,7,1,2,73.7,8.7,0,,399,399,0,0,.6931472,5.988961,0,3.931826,6.682108,1,0,0,69.04362,8.86096,.6931472,4.84208,1 +8,1,50,1,2,129301,1,7050.248,25.47912,1,16,1,280.8488,24.04162,.5476452,0,0,305.4381,0,0,0,10,3,2,73.7,8.7,0,,399,399,0,0,.6931472,5.988961,0,3.931826,6.682108,1,0,0,69.04362,8.86096,.6931472,5.721747,1 +8,1,50,1,3,129301,1,7050.248,26.47912,1,16,1,97.75561,21.98005,0,0,0,119.7357,0,0,0,4,0,2,73.7,8.7,0,,399,399,0,0,.6931472,5.988961,0,3.931826,6.682108,1,0,0,69.04362,8.86096,.6931472,4.785286,1 +8,1,50,1,4,129301,1,7050.248,27.47912,1,16,1,0,0,0,0,0,0,0,0,0,0,0,2,73.7,8.7,0,,399,399,0,0,.6931472,5.988961,0,3.931826,6.682108,1,0,0,69.04362,8.86096,.6931472,,0 +8,1,50,1,5,129301,1,7050.248,28.47912,1,16,1,37.2408,0,0,0,0,37.2408,0,0,0,1,0,2,73.7,8.7,0,,399,399,0,0,.6931472,5.988961,0,3.931826,6.682108,1,0,0,69.04362,8.86096,.6931472,3.617405,1 +9,1,50,0,1,129302,0,4777.916,1.330595,1,12,1,90.47044,12.8468,0,0,594.7527,698.0699,1,0,0,9,0,4,74.36826,13.73189,0,,970,0,1,1,1.386294,0,0,3.931826,7.570443,0,0,0,79.16405,8.471969,1.386294,6.548319,1 +9,1,50,0,2,129302,0,4777.916,2.330595,1,12,1,66.35462,8.001101,0,0,0,74.35573,0,0,0,1,7,4,74.36826,13.73189,0,,970,0,1,1,1.386294,0,0,3.931826,7.570443,0,0,0,79.16405,8.471969,1.386294,4.308861,1 +9,1,50,0,3,129302,0,4777.916,3.330595,1,12,1,208.9402,0,0,0,0,208.9402,0,0,0,2,0,4,74.36826,13.73189,0,,970,0,1,1,1.386294,0,0,3.931826,7.570443,0,0,0,79.16405,8.471969,1.386294,5.342048,1 +9,1,50,0,4,129302,0,4777.916,4.330595,1,12,1,44.04265,0,0,0,0,44.04265,0,0,0,4,0,4,74.36826,13.73189,0,,970,0,1,1,1.386294,0,0,3.931826,7.570443,0,0,0,79.16405,8.471969,1.386294,3.785159,1 +9,1,50,0,5,129302,0,4777.916,5.330595,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,970,0,1,1,1.386294,0,0,3.931826,7.570443,0,0,0,79.16405,8.471969,1.386294,,0 +9,1,50,0,1,129303,0,4777.916,28.73922,0,13,1,5.428227,0,0,0,0,5.428227,0,0,0,1,0,4,80,13.73189,0,,970,0,0,0,1.386294,0,0,3.931826,7.570443,0,0,0,78.1277,8.471969,1.386294,1.691613,1 +9,1,50,0,2,129303,0,4777.916,29.73922,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,80,13.73189,0,,970,0,0,0,1.386294,0,0,3.931826,7.570443,0,0,0,78.1277,8.471969,1.386294,,0 +9,1,50,0,3,129303,0,4777.916,30.73922,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,80,13.73189,0,,970,0,0,0,1.386294,0,0,3.931826,7.570443,0,0,0,78.1277,8.471969,1.386294,,0 +9,1,50,0,4,129303,0,4777.916,31.73922,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,80,13.73189,0,,970,0,0,0,1.386294,0,0,3.931826,7.570443,0,0,0,78.1277,8.471969,1.386294,,0 +9,1,50,0,5,129303,0,4777.916,32.73922,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,80,13.73189,0,,970,0,0,0,1.386294,0,0,3.931826,7.570443,0,0,0,78.1277,8.471969,1.386294,,0 +9,1,50,0,1,129304,0,4777.916,25.1718,1,12,1,105.5489,0,0,0,0,105.5489,0,0,0,8,0,4,57.5,13.73189,0,,970,0,0,0,1.386294,0,0,3.931826,7.570443,1,0,0,72.25999,8.471969,1.386294,4.659174,1 +9,1,50,0,2,129304,0,4777.916,26.1718,1,12,1,31.38766,5.286344,0,0,0,36.67401,0,0,0,5,0,4,57.5,13.73189,0,,970,0,0,0,1.386294,0,0,3.931826,7.570443,1,0,0,72.25999,8.471969,1.386294,3.602068,1 +9,1,50,0,3,129304,0,4777.916,27.1718,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,57.5,13.73189,0,,970,0,0,0,1.386294,0,0,3.931826,7.570443,1,0,0,72.25999,8.471969,1.386294,,0 +9,1,50,0,4,129304,0,4777.916,28.1718,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,57.5,13.73189,0,,970,0,0,0,1.386294,0,0,3.931826,7.570443,1,0,0,72.25999,8.471969,1.386294,,0 +9,1,50,0,5,129304,0,4777.916,29.1718,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,57.5,13.73189,0,,970,0,0,0,1.386294,0,0,3.931826,7.570443,1,0,0,72.25999,8.471969,1.386294,,0 +9,1,50,0,1,129305,0,4777.916,4.134155,1,12,1,22.91918,2.237636,0,0,0,25.15681,0,0,0,3,0,4,74.36826,13.73189,0,,970,0,1,1,1.386294,0,0,3.931826,7.570443,0,0,0,79.16405,8.471969,1.386294,3.225129,1 +9,1,50,0,2,129305,0,4777.916,5.134155,1,12,1,12.6652,0,0,0,0,12.6652,0,0,0,1,2,4,74.36826,13.73189,0,,970,0,1,1,1.386294,0,0,3.931826,7.570443,0,0,0,79.16405,8.471969,1.386294,2.538858,1 +9,1,50,0,3,129305,0,4777.916,6.134155,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,970,0,1,1,1.386294,0,0,3.931826,7.570443,0,0,0,79.16405,8.471969,1.386294,,0 +9,1,50,0,4,129305,0,4777.916,7.134155,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,970,0,1,1,1.386294,0,0,3.931826,7.570443,0,0,0,79.16405,8.471969,1.386294,,0 +9,1,50,0,5,129305,0,4777.916,8.134154,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,970,0,1,1,1.386294,0,0,3.931826,7.570443,0,0,0,79.16405,8.471969,1.386294,,0 +7,1,25,0,1,129306,0,4133.375,26.90212,1,12,1,61.83746,86.71967,0,0,0,148.5571,0,0,0,9,0,1,72.6,13,0,,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,1,0,0,71.01371,8.327091,0,5.000969,1 +7,1,25,0,2,129306,0,4133.375,27.90212,1,12,1,26.95418,83.71967,22.53369,0,0,133.2076,0,0,0,4,0,1,72.6,13,0,,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,1,0,0,71.01371,8.327091,0,4.891909,1 +7,1,25,0,3,129306,0,4133.375,28.90212,1,12,1,68.30466,41.7199,0,0,0,110.0246,0,0,0,8,0,1,72.6,13,0,,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,1,0,0,71.01371,8.327091,0,4.700704,1 +11,1,0,0,1,129307,1,1,21.62081,0,13,1,15.07841,1.718938,0,0,0,16.79735,0,0,0,1,0,2,81.3,13.73189,0,,0,0,0,0,.6931472,0,0,0,0,0,1,0,71.36481,.6931472,.6931472,2.821221,1 +11,1,0,0,2,129307,1,1,22.62081,0,13,1,63.32599,0,0,0,0,63.32599,0,0,0,3,0,3,81.3,13.73189,0,,0,0,0,0,1.098612,0,0,0,0,0,1,0,71.36481,.6931472,1.098612,4.148296,1 +11,1,0,0,3,129307,1,1,23.62081,0,13,1,51.7328,0,33.06881,0,0,84.80161,0,0,0,4,2,3,81.3,13.73189,0,,0,0,0,0,1.098612,0,0,0,0,0,1,0,71.36481,.6931472,1.098612,4.440314,1 +11,1,0,0,1,129308,1,1,21.13895,1,14,1,0,0,0,0,0,0,1,1,0,0,0,2,96.3,13.73189,0,,0,0,0,0,.6931472,0,0,0,0,1,0,0,64.04893,.6931472,.6931472,,0 +11,1,0,0,2,129308,1,1,22.13895,1,14,1,9.911894,0,35.10463,0,0,45.01652,0,0,0,0,1,3,96.3,13.73189,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,64.04893,.6931472,1.098612,3.807029,1 +11,1,0,0,3,129308,1,1,23.13895,1,14,1,82.37067,0,0,0,0,82.37067,0,0,0,7,0,3,96.3,13.73189,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,64.04893,.6931472,1.098612,4.41123,1 +1,1,0,0,1,129310,0,9542.002,21.45106,1,12,1,40.04712,15.63604,17.85041,0,0,73.53357,0,0,0,3,1,2,76.8,13,0,,300,649,0,0,.6931472,6.475433,1,0,0,0,0,0,78.30641,9.163564,.6931472,4.297742,1 +1,1,0,0,2,129310,0,9542.002,22.45106,1,12,1,53.90836,37.7089,0,0,0,91.61725,0,0,0,6,0,2,76.8,13,0,,300,649,0,0,.6931472,6.475433,1,0,0,0,0,0,78.30641,9.163564,.6931472,4.51762,1 +1,1,0,0,3,129310,0,9542.002,23.45106,1,12,1,38.82064,15.87224,0,0,0,54.69287,0,0,0,3,1,2,76.8,13,0,,300,649,0,0,.6931472,6.475433,1,0,0,0,0,0,78.30641,9.163564,.6931472,4.001733,1 +1,1,0,0,1,129311,0,9542.002,24.15058,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,74.7,0,0,,300,649,0,0,.6931472,6.475433,1,0,0,0,0,0,77.41523,9.163564,.6931472,,0 +1,1,0,0,2,129311,0,9542.002,25.15058,0,12,1,353.3154,19.86523,0,0,0,373.1806,0,0,0,9,0,2,74.7,0,0,,300,649,0,0,.6931472,6.475433,1,0,0,0,0,0,77.41523,9.163564,.6931472,5.922062,1 +1,1,0,0,3,129311,0,9542.002,26.15058,0,12,1,3.685504,2.653563,0,0,0,6.339067,0,0,0,0,0,2,74.7,0,0,,300,649,0,0,.6931472,6.475433,1,0,0,0,0,0,77.41523,9.163564,.6931472,1.846732,1 +11,1,0,1,1,129314,0,9542.002,.9390828,0,12,1,97.46761,27.73852,0,0,0,125.2061,0,0,0,5,7,2,74.36826,13.73189,0,,0,0,1,0,.6931472,0,0,0,0,0,0,0,81.70645,9.163564,.6931472,4.829961,1 +11,1,0,1,2,129314,0,9542.002,1.939083,0,12,1,73.31536,34.93261,0,0,0,108.248,0,0,0,12,0,2,74.36826,13.73189,0,,0,0,1,0,.6931472,0,0,0,0,0,0,0,81.70645,9.163564,.6931472,4.684425,1 +11,1,0,1,3,129314,0,9542.002,2.939083,0,12,1,282.5061,58.91892,0,0,0,341.425,0,0,0,44,1,2,74.36826,13.73189,0,,0,0,1,0,.6931472,0,0,0,0,0,0,0,81.70645,9.163564,.6931472,5.833128,1 +11,1,0,1,4,129314,0,9542.002,3.939083,0,12,1,292.753,91.9918,0,0,835.6199,1220.365,1,0,0,56,0,3,74.36826,13.73189,0,,0,0,1,0,1.098612,0,0,0,0,0,0,0,81.70645,9.163564,1.098612,7.106905,1 +11,1,0,1,5,129314,0,9542.002,4.939083,0,12,1,244.8729,115.6899,0,0,0,360.5627,0,0,0,38,0,3,74.36826,13.73189,0,,0,0,1,0,1.098612,0,0,0,0,0,0,0,81.70645,9.163564,1.098612,5.887666,1 +11,1,0,1,1,129316,0,9542.002,27.58932,1,12,1,149.5878,36.21908,0,0,0,185.8068,0,0,0,10,0,2,35.8,8.7,0,,0,0,0,0,.6931472,0,0,0,0,0,0,0,79.3485,9.163564,.6931472,5.224708,1 +11,1,0,1,2,129316,0,9542.002,28.58932,1,12,1,29.11051,26.76011,0,0,0,55.87062,0,0,0,4,0,2,35.8,8.7,0,,0,0,0,0,.6931472,0,0,0,0,0,0,0,79.3485,9.163564,.6931472,4.023039,1 +11,1,0,1,3,129316,0,9542.002,29.58932,1,12,1,33.90664,17.88206,0,0,1251.101,1302.889,1,0,0,4,0,2,35.8,8.7,0,,0,0,0,0,.6931472,0,0,0,0,0,0,0,79.3485,9.163564,.6931472,7.17234,1 +11,1,0,1,4,129316,0,9542.002,30.58932,1,12,1,15.04102,1.873291,0,0,0,16.91431,0,0,0,1,0,3,35.8,8.7,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,79.3485,9.163564,1.098612,2.82816,1 +11,1,0,1,5,129316,0,9542.002,31.58932,1,12,1,83.36807,0,16.25677,0,0,99.62485,0,0,0,3,2,3,35.8,8.7,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,79.3485,9.163564,1.098612,4.601412,1 +11,1,0,0,1,129337,0,8508.685,27.55373,0,17,1,8.833922,0,33.245,0,0,42.07891,0,0,0,0,1,3,86.3,13.73189,0,,0,60,0,0,1.098612,4.094345,0,0,0,0,0,0,78.16702,9.04896,1.098612,3.739547,1 +11,1,0,0,2,129337,0,8508.685,28.55373,0,17,1,66.84636,3.121294,0,0,0,69.96765,0,0,0,5,0,4,86.3,13.73189,0,,0,60,0,0,1.386294,4.094345,0,0,0,0,0,0,78.16702,9.04896,1.386294,4.248033,1 +11,1,0,0,3,129337,0,8508.685,29.55373,0,17,1,9.82801,0,31.83784,0,0,41.66585,0,0,0,0,1,4,86.3,13.73189,0,,0,60,0,0,1.386294,4.094345,0,0,0,0,0,0,78.16702,9.04896,1.386294,3.729682,1 +11,1,0,0,1,129338,0,8508.685,4.062971,1,15,1,43.58068,10.5477,24.00471,0,0,78.13309,0,0,0,7,1,3,74.36826,13.73189,0,,0,60,1,1,1.098612,4.094345,0,0,0,0,0,0,78.34785,9.04896,1.098612,4.358414,1 +11,1,0,0,2,129338,0,8508.685,5.062971,1,15,1,68.46362,11.22372,20.28032,0,0,99.96765,0,0,0,7,1,4,74.36826,13.73189,0,,0,60,1,1,1.386294,4.094345,0,0,0,0,0,0,78.34785,9.04896,1.386294,4.604846,1 +11,1,0,0,3,129338,0,8508.685,6.062971,1,15,1,56.26536,18.88452,0,0,0,75.14988,0,0,0,9,0,4,74.36826,13.73189,0,,0,60,1,1,1.386294,4.094345,0,0,0,0,0,0,78.34785,9.04896,1.386294,4.319485,1 +11,1,0,0,1,129339,0,8508.685,24.99658,1,15,1,84.21673,29.6172,0,0,679.0047,792.8386,1,0,0,3,0,3,87.5,13.73189,0,,0,60,0,0,1.098612,4.094345,0,0,0,0,0,0,75.85274,9.04896,1.098612,6.67562,1 +11,1,0,0,2,129339,0,8508.685,25.99658,1,15,1,187.0296,41.81671,0,0,0,228.8464,0,0,0,7,0,4,87.5,13.73189,0,,0,60,0,0,1.386294,4.094345,0,0,0,0,0,0,75.85274,9.04896,1.386294,5.433051,1 +11,1,0,0,3,129339,0,8508.685,26.99658,1,15,1,48.40295,19.54791,31.32678,0,0,99.27764,0,0,0,4,1,4,87.5,13.73189,0,,0,60,0,0,1.386294,4.094345,0,0,0,0,0,0,75.85274,9.04896,1.386294,4.59792,1 +3,1,100,1,1,129357,0,9579.404,23.82478,0,17,1,5.035971,2.278177,0,0,0,7.314149,0,0,0,1,0,2,64.2,4.3,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,0,0,0,78.02597,9.167475,.6931472,1.989811,1 +3,1,100,1,2,129357,0,9579.404,24.82478,0,17,1,80.83242,16.92223,0,0,0,97.75465,0,0,0,5,0,2,64.2,4.3,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,0,0,0,78.02597,9.167475,.6931472,4.582461,1 +3,1,100,1,3,129357,0,9579.404,25.82478,0,17,1,22.59352,4.538653,0,0,0,27.13217,0,0,0,3,0,2,64.2,4.3,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,0,0,0,78.02597,9.167475,.6931472,3.30072,1 +3,1,100,1,1,129358,0,9579.404,23.46064,1,16,1,31.17506,8.303357,0,0,0,39.47842,0,0,0,3,0,2,68.4,8.7,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,0,0,0,77.9765,9.167475,.6931472,3.675754,1 +3,1,100,1,2,129358,0,9579.404,24.46064,1,16,1,55.42169,9.611172,0,0,0,65.03286,0,0,0,5,0,2,68.4,8.7,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,0,0,0,77.9765,9.167475,.6931472,4.174893,1 +3,1,100,1,3,129358,0,9579.404,25.46064,1,16,1,9.975062,10.84788,0,0,0,20.82294,0,0,0,1,0,2,68.4,8.7,0,,1000,1000,0,0,.6931472,6.907755,1,0,0,0,0,0,77.9765,9.167475,.6931472,3.036055,1 +4,1,100,0,1,129373,1,248.139,21.90554,0,11,1,23.98082,0,0,0,0,23.98082,0,0,0,1,0,1,93.7,0,0,,1000,0,0,0,0,0,1,0,0,0,0,0,71.14789,5.518011,0,3.177254,1 +4,1,100,0,2,129373,1,248.139,22.90554,0,11,1,29.02519,33.43373,0,0,0,62.45893,0,0,0,2,0,1,93.7,0,0,,1000,0,0,0,0,0,1,0,0,0,0,0,71.14789,5.518011,0,4.134509,1 +4,1,100,0,3,129373,1,248.139,23.90554,0,11,1,0,10.22444,0,0,0,10.22444,0,0,0,0,0,1,93.7,0,0,,1000,0,0,0,0,0,1,0,0,0,0,0,71.14789,5.518011,0,2.324781,1 +4,1,100,0,5,129373,1,248.139,25.90554,0,11,1,0,0,0,0,0,0,0,0,0,0,0,1,93.7,0,0,,1000,0,0,0,0,0,1,0,0,0,0,0,71.14789,5.518011,0,,0 +11,1,0,1,1,129383,0,14693.55,16.08761,0,12,1,118.9635,44.58186,36.51355,0,574.6407,774.6996,1,0,0,4,0,3,81.1,4.3,0,,0,0,1,0,1.098612,0,0,0,0,0,0,0,79.81767,9.595232,1.098612,6.652475,1 +11,1,0,1,2,129383,0,14693.55,17.08761,0,12,1,30.18868,27.22372,0,0,0,57.4124,0,0,0,5,0,3,81.1,4.3,0,,0,0,1,0,1.098612,0,0,0,0,0,0,0,79.81767,9.595232,1.098612,4.05026,1 +11,1,0,1,3,129383,0,14693.55,18.08761,0,12,1,44.22604,20.33907,28.75676,0,0,93.32187,0,0,0,3,1,3,81.1,4.3,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,79.81767,9.595232,1.098612,4.536055,1 +11,1,0,1,1,129384,0,14693.55,61.52772,0,12,1,107.1849,105.477,48.00353,0,0,260.6655,0,0,0,8,1,3,85.3,0,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,70.92638,9.595232,1.098612,5.563238,1 +11,1,0,1,2,129384,0,14693.55,62.52772,0,12,1,161.7251,29.73046,0,0,1735.822,1927.278,1,0,0,10,0,3,85.3,0,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,70.92638,9.595232,1.098612,7.563864,1 +11,1,0,1,3,129384,0,14693.55,63.52772,0,12,1,846.8452,26.43735,58.57985,0,0,931.8624,0,0,0,7,0,3,85.3,0,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,70.92638,9.595232,1.098612,6.837185,1 +11,1,0,0,1,129385,0,14693.55,47.38672,1,12,1,151.9435,206.6843,53.23322,0,1282.951,1694.812,1,0,0,13,0,3,58.9,39.1,1,,0,0,0,0,1.098612,0,0,0,0,0,0,0,77.81611,9.595232,1.098612,7.435327,1 +11,1,0,0,2,129385,0,14693.55,48.38672,1,12,1,119.3261,122.4528,0,0,0,241.779,0,0,0,10,1,3,58.9,39.1,1,,0,0,0,0,1.098612,0,0,0,0,0,0,0,77.81611,9.595232,1.098612,5.488024,1 +11,1,0,0,3,129385,0,14693.55,49.38672,1,12,1,726.0344,135.6658,37.83784,0,0,899.5381,0,0,0,11,1,3,58.9,39.1,1,,0,0,0,0,1.098612,0,0,0,0,0,0,0,77.81611,9.595232,1.098612,6.801881,1 +5,1,25,1,1,129404,0,14198.51,50.51609,1,12,1,73.76562,0,35.93694,0,0,109.7026,0,0,0,5,0,2,90.5,8.7,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,0,78.70685,9.560963,.6931472,4.697773,1 +5,1,25,1,2,129404,0,14198.51,51.51609,1,12,1,77.29994,2.302667,65.84104,0,0,145.4437,0,0,0,3,0,2,90.5,8.7,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,0,78.70685,9.560963,.6931472,4.979789,1 +5,1,25,1,3,129404,0,14198.51,52.51609,1,12,1,33.20119,6.23885,49.27156,0,0,88.71159,0,0,0,2,2,2,90.5,8.7,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,0,78.70685,9.560963,.6931472,4.485391,1 +5,1,25,1,1,129405,0,14198.51,56.66256,0,21,1,154.6698,49.63117,47.59072,0,0,251.8917,0,0,0,13,0,2,87.4,13,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,1,0,0,68.89549,9.560963,.6931472,5.528999,1 +5,1,25,1,2,129405,0,14198.51,57.66256,0,21,1,201.4153,74.33315,0,0,0,275.7485,0,0,0,16,0,2,87.4,13,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,1,0,0,68.89549,9.560963,.6931472,5.619489,1 +5,1,25,1,3,129405,0,14198.51,58.66256,0,21,1,111.2488,70.43607,64.45986,0,0,246.1447,0,0,0,7,1,2,87.4,13,0,,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,1,0,0,68.89549,9.560963,.6931472,5.505919,1 +8,1,50,0,1,129412,0,8082.506,20.66256,0,12,1,28.17746,9.820144,0,0,0,37.9976,0,0,0,4,0,1,91.3,13.73189,0,,399,399,0,0,0,5.988961,0,3.931826,6.682108,1,0,0,67.90727,8.997581,0,3.637523,1 +8,1,50,0,2,129412,0,8082.506,21.66256,0,12,1,19.16758,5.312158,0,0,0,24.47974,0,0,0,3,0,1,91.3,13.73189,0,,399,399,0,0,0,5.988961,0,3.931826,6.682108,1,0,0,67.90727,8.997581,0,3.197846,1 +8,1,50,0,3,129412,0,8082.506,22.66256,0,12,1,12.46883,0,0,0,0,12.46883,0,0,0,0,1,1,91.3,13.73189,0,,399,399,0,0,0,5.988961,0,3.931826,6.682108,1,0,0,67.90727,8.997581,0,2.523232,1 +2,1,100,0,1,129417,0,5361.663,19.10198,1,11,1,0,1.193046,0,0,0,1.193046,0,0,0,0,0,3,63.2,13,0,,409,0,0,0,1.098612,0,1,0,0,0,0,0,74.09004,8.587215,1.098612,.1765094,1 +2,1,100,0,2,129417,0,5361.663,20.10198,1,11,1,13.69113,0,0,0,0,13.69113,0,0,0,0,0,3,63.2,13,0,,409,0,0,0,1.098612,0,1,0,0,0,0,0,74.09004,8.587215,1.098612,2.616748,1 +2,1,100,0,3,129417,0,5361.663,21.10198,1,11,1,20.82294,8.468828,0,0,879.4514,908.7432,3,0,0,0,0,3,63.2,13,0,,409,0,0,0,1.098612,0,1,0,0,0,0,0,74.09004,8.587215,1.098612,6.812063,1 +2,1,100,0,4,129417,0,5361.663,22.10198,1,11,1,49.51591,0,0,0,0,49.51591,0,0,0,1,0,4,63.2,13,0,,409,0,0,0,1.386294,0,1,0,0,0,0,0,74.09004,8.587215,1.386294,3.902294,1 +2,1,100,0,5,129417,0,5361.663,23.10198,1,11,1,19.04359,2.391028,0,0,614.2192,635.6538,1,0,0,1,1,4,63.2,13,0,,409,0,0,0,1.386294,0,1,0,0,0,0,0,74.09004,8.587215,1.386294,6.454654,1 +2,1,100,0,1,129418,0,5361.663,2.16564,1,11,1,0,0,0,0,0,0,0,0,0,0,0,3,74.36826,13.73189,0,,409,0,1,1,1.098612,0,1,0,0,0,0,0,76.23925,8.587215,1.098612,,0 +2,1,100,0,2,129418,0,5361.663,3.16564,1,11,1,0,0,0,0,0,0,0,0,0,0,0,3,74.36826,13.73189,0,,409,0,1,1,1.098612,0,1,0,0,0,0,0,76.23925,8.587215,1.098612,,0 +2,1,100,0,3,129418,0,5361.663,4.16564,1,11,1,6.48379,0,0,0,0,6.48379,0,0,0,1,0,3,74.36826,13.73189,0,,409,0,1,1,1.098612,0,1,0,0,0,0,0,76.23925,8.587215,1.098612,1.869305,1 +2,1,100,0,4,129418,0,5361.663,5.16564,1,11,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,409,0,1,1,1.386294,0,1,0,0,0,0,0,76.23925,8.587215,1.386294,,0 +2,1,100,0,5,129418,0,5361.663,6.16564,1,11,1,10.57977,0,0,0,0,10.57977,0,0,0,0,1,4,74.36826,13.73189,0,,409,0,1,1,1.386294,0,1,0,0,0,0,0,76.23925,8.587215,1.386294,2.358944,1 +2,1,100,0,1,129419,0,5361.663,20.16153,0,11,1,0,0,0,0,0,0,0,0,0,0,0,3,69.5,8.7,0,,409,0,0,0,1.098612,0,1,0,0,0,0,0,73.19886,8.587215,1.098612,,0 +2,1,100,0,2,129419,0,5361.663,21.16153,0,11,1,0,0,0,0,0,0,0,0,0,0,0,3,69.5,8.7,0,,409,0,0,0,1.098612,0,1,0,0,0,0,0,73.19886,8.587215,1.098612,,0 +2,1,100,0,3,129419,0,5361.663,22.16153,0,11,1,134.8379,4.528678,24.97257,0,0,164.3392,0,0,0,7,1,3,69.5,8.7,0,,409,0,0,0,1.098612,0,1,0,0,0,0,0,73.19886,8.587215,1.098612,5.101933,1 +2,1,100,0,4,129419,0,5361.663,23.16153,0,11,1,7.376671,0,0,0,0,7.376671,0,0,0,1,0,4,69.5,8.7,0,,409,0,0,0,1.386294,0,1,0,0,0,0,0,73.19886,8.587215,1.386294,1.998322,1 +2,1,100,0,5,129419,0,5361.663,24.16153,0,11,1,116.8007,0,30.40626,0,0,147.2069,0,0,0,3,1,4,69.5,8.7,0,,409,0,0,0,1.386294,0,1,0,0,0,0,0,73.19886,8.587215,1.386294,4.991839,1 +10,1,50,0,1,129425,0,13275.43,1.938398,0,17,1,32.97998,21.76678,0,0,0,54.74676,0,0,0,5,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,78.00792,9.493746,1.386294,4.002718,1 +10,1,50,0,2,129425,0,13275.43,2.938398,0,17,1,61.2938,15.55256,0,0,0,76.84636,0,0,0,8,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,78.00792,9.493746,1.386294,4.341808,1 +10,1,50,0,3,129425,0,13275.43,3.938398,0,17,1,78.86978,11.86732,0,0,0,90.7371,0,0,0,6,1,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,78.00792,9.493746,1.386294,4.507967,1 +10,1,50,0,4,129425,0,13275.43,4.938398,0,17,1,100.7293,42.83956,0,0,393.938,537.5068,1,0,0,11,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,78.00792,9.493746,1.386294,6.286942,1 +10,1,50,0,5,129425,0,13275.43,5.938398,0,17,1,33.76407,7.899125,0,0,0,41.66319,0,0,0,5,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,78.00792,9.493746,1.386294,3.729618,1 +10,1,50,0,1,129426,0,13275.43,34.79261,0,20,1,7.067138,14.25206,0,0,0,21.3192,0,0,0,1,0,4,51.3,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,75.16824,9.493746,1.386294,3.059608,1 +10,1,50,0,2,129426,0,13275.43,35.79261,0,20,1,11.32076,16.06469,0,0,0,27.38544,0,0,0,1,0,4,51.3,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,75.16824,9.493746,1.386294,3.310012,1 +10,1,50,0,3,129426,0,13275.43,36.79261,0,20,1,7.862408,6.142506,0,0,0,14.00491,0,0,0,1,0,4,51.3,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,75.16824,9.493746,1.386294,2.639408,1 +10,1,50,0,4,129426,0,13275.43,37.79261,0,20,1,95.03191,20.03191,0,0,0,115.0638,0,0,0,6,0,4,51.3,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,75.16824,9.493746,1.386294,4.745487,1 +10,1,50,0,5,129426,0,13275.43,38.79261,0,20,1,48.77032,9.866611,0,0,0,58.63693,0,0,0,3,0,4,51.3,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,75.16824,9.493746,1.386294,4.071365,1 +10,1,50,0,1,129427,0,13275.43,34.05339,1,17,1,230.2709,15.95995,0,0,0,246.2309,0,0,0,6,1,4,76.3,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,76.05943,9.493746,1.386294,5.506269,1 +10,1,50,0,2,129427,0,13275.43,35.05339,1,17,1,243.6658,7.843666,0,0,0,251.5094,0,0,0,4,3,4,76.3,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,76.05943,9.493746,1.386294,5.527481,1 +10,1,50,0,3,129427,0,13275.43,36.05339,1,17,1,31.94103,2.407862,16.21622,0,0,50.56511,0,0,0,2,1,4,76.3,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,76.05943,9.493746,1.386294,3.923262,1 +10,1,50,0,4,129427,0,13275.43,37.05339,1,17,1,59.4804,21.28532,0,0,0,80.76572,0,0,0,3,1,4,76.3,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,76.05943,9.493746,1.386294,4.391552,1 +10,1,50,0,5,129427,0,13275.43,38.05339,1,17,1,181.1171,16.87786,8.336807,0,0,206.3318,0,0,0,10,0,4,76.3,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,76.05943,9.493746,1.386294,5.329485,1 +10,1,50,0,1,129428,0,13275.43,6.009583,1,17,1,162.2497,27.67962,0,0,0,189.9293,0,0,0,30,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.931826,7.600903,0,0,0,85.16698,9.493746,1.386294,5.246652,1 +10,1,50,0,2,129428,0,13275.43,7.009583,1,17,1,97.57413,20.61995,0,0,0,118.1941,0,0,0,18,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.931826,7.600903,0,0,0,85.16698,9.493746,1.386294,4.772328,1 +10,1,50,0,3,129428,0,13275.43,8.009583,1,17,1,96.21622,12.72727,1.228501,0,0,110.172,0,0,0,18,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.931826,7.600903,0,0,0,85.16698,9.493746,1.386294,4.702043,1 +10,1,50,0,4,129428,0,13275.43,9.009583,1,17,1,123.0629,22.21969,0,0,0,145.2826,0,0,0,17,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.931826,7.600903,0,0,0,85.16698,9.493746,1.386294,4.978681,1 +10,1,50,0,5,129428,0,13275.43,10.00958,1,17,1,89.9333,14.8812,20.03752,0,0,124.852,0,0,0,14,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.931826,7.600903,0,0,0,85.16698,9.493746,1.386294,4.827129,1 +7,1,25,0,1,129436,0,15786.6,36.2026,0,20,1,173.7338,27.31449,43.69847,0,0,244.7468,0,0,0,19,0,7,44.2,26.1,1,,1000,1000,0,0,1.94591,6.907755,0,3.258096,8.294049,1,0,0,68.73036,9.66698,1.94591,5.500224,1 +7,1,25,0,2,129436,0,15786.6,37.2026,0,20,1,167.1159,49.062,67.38544,261.4555,0,283.5634,0,0,20,23,0,7,44.2,26.1,1,,1000,1000,0,0,1.94591,6.907755,0,3.258096,8.294049,1,0,0,68.73036,9.66698,1.94591,5.647436,1 +7,1,25,0,3,129436,0,15786.6,38.2026,0,20,1,223.5627,62.92875,37.06142,0,0,323.5528,0,0,0,29,0,7,44.2,26.1,1,,1000,1000,0,0,1.94591,6.907755,0,3.258096,8.294049,1,0,0,68.73036,9.66698,1.94591,5.779362,1 +7,1,25,0,4,129436,0,15786.6,39.2026,0,20,1,208.5232,36.45396,1.189608,0,0,246.1668,0,0,0,27,0,7,44.2,26.1,1,,1000,1000,0,0,1.94591,6.907755,0,3.258096,8.294049,1,0,0,68.73036,9.66698,1.94591,5.50601,1 +7,1,25,0,5,129436,0,15786.6,40.2026,0,20,1,127.97,55.42309,34.74364,0,0,218.1367,0,0,0,25,0,7,44.2,26.1,1,,1000,1000,0,0,1.94591,6.907755,0,3.258096,8.294049,1,0,0,68.73036,9.66698,1.94591,5.385122,1 +7,1,25,0,1,129437,0,15786.6,12.64066,0,10,1,0,0,0,0,0,0,0,0,0,0,0,7,74.36826,13.73189,0,,1000,1000,1,0,1.94591,6.907755,0,3.258096,8.294049,1,0,0,76.57921,9.66698,1.94591,,0 +7,1,25,0,2,129437,0,15786.6,13.64066,0,10,1,0,0,0,0,0,0,0,0,0,0,0,7,74.36826,13.73189,0,,1000,1000,1,0,1.94591,6.907755,0,3.258096,8.294049,1,0,0,76.57921,9.66698,1.94591,,0 +7,1,25,0,3,129437,0,15786.6,14.64066,0,10,1,16.21622,.982801,0,0,0,17.19902,0,0,0,3,0,7,74.36826,13.73189,0,,1000,1000,1,0,1.94591,6.907755,0,3.258096,8.294049,1,0,0,76.57921,9.66698,1.94591,2.844852,1 +7,1,25,0,4,129437,0,15786.6,15.64066,0,10,1,0,0,0,0,0,0,0,0,0,0,0,7,74.36826,13.73189,0,,1000,1000,1,0,1.94591,6.907755,0,3.258096,8.294049,1,0,0,76.57921,9.66698,1.94591,,0 +7,1,25,0,5,129437,0,15786.6,16.64066,0,10,1,13.75573,2.551063,0,0,0,16.3068,0,0,0,2,0,7,74.36826,13.73189,0,,1000,1000,1,0,1.94591,6.907755,0,3.258096,8.294049,1,0,0,76.57921,9.66698,1.94591,2.791582,1 +7,1,25,0,1,129438,0,15786.6,7.772758,0,10,1,5.300354,0,0,0,0,5.300354,0,0,0,1,0,7,74.36826,13.73189,0,,1000,1000,1,0,1.94591,6.907755,0,3.258096,8.294049,1,0,0,76.57921,9.66698,1.94591,1.667773,1 +7,1,25,0,2,129438,0,15786.6,8.772758,0,10,1,0,0,0,0,0,0,0,0,0,0,0,7,74.36826,13.73189,0,,1000,1000,1,0,1.94591,6.907755,0,3.258096,8.294049,1,0,0,76.57921,9.66698,1.94591,,0 +7,1,25,0,3,129438,0,15786.6,9.772758,0,10,1,20.14742,2.457002,0,0,0,22.60442,0,0,0,3,0,7,74.36826,13.73189,0,,1000,1000,1,0,1.94591,6.907755,0,3.258096,8.294049,1,0,0,76.57921,9.66698,1.94591,3.118146,1 +7,1,25,0,4,129438,0,15786.6,10.77276,0,10,1,0,0,0,0,0,0,0,0,0,0,0,7,74.36826,13.73189,0,,1000,1000,1,0,1.94591,6.907755,0,3.258096,8.294049,1,0,0,76.57921,9.66698,1.94591,,0 +7,1,25,0,5,129438,0,15786.6,11.77276,0,10,1,17.5073,8.520217,0,0,0,26.02751,0,0,0,2,0,7,74.36826,13.73189,0,,1000,1000,1,0,1.94591,6.907755,0,3.258096,8.294049,1,0,0,76.57921,9.66698,1.94591,3.259154,1 +7,1,25,0,1,129439,0,15786.6,10.02327,0,10,1,9.422851,9.729093,0,0,0,19.15194,0,0,0,2,0,7,74.36826,13.73189,0,,1000,1000,1,0,1.94591,6.907755,0,3.258096,8.294049,1,0,0,76.57921,9.66698,1.94591,2.952404,1 +7,1,25,0,2,129439,0,15786.6,11.02327,0,10,1,43.39622,8.25876,0,0,0,51.65499,0,0,0,6,0,7,74.36826,13.73189,0,,1000,1000,1,0,1.94591,6.907755,0,3.258096,8.294049,1,0,0,76.57921,9.66698,1.94591,3.944587,1 +7,1,25,0,3,129439,0,15786.6,12.02327,0,10,1,44.22604,4.157248,0,0,0,48.38329,0,0,0,4,0,7,74.36826,13.73189,0,,1000,1000,1,0,1.94591,6.907755,0,3.258096,8.294049,1,0,0,76.57921,9.66698,1.94591,3.879155,1 +7,1,25,0,4,129439,0,15786.6,13.02327,0,10,1,101.6408,3.646308,5.528715,0,0,110.8159,0,0,0,3,0,7,74.36826,13.73189,0,,1000,1000,1,0,1.94591,6.907755,0,3.258096,8.294049,1,0,0,76.57921,9.66698,1.94591,4.70787,1 +7,1,25,0,5,129439,0,15786.6,14.02327,0,10,1,83.47228,4.172572,0,0,0,87.64485,0,0,0,7,0,7,74.36826,13.73189,0,,1000,1000,1,0,1.94591,6.907755,0,3.258096,8.294049,1,0,0,76.57921,9.66698,1.94591,4.473293,1 +7,1,25,0,1,129440,0,15786.6,13.55784,1,10,1,20.02356,1.177856,41.23675,0,0,62.43816,0,0,0,2,0,7,74.36826,13.73189,0,,1000,1000,1,1,1.94591,6.907755,0,3.258096,8.294049,1,0,0,76.06523,9.66698,1.94591,4.134177,1 +7,1,25,0,2,129440,0,15786.6,14.55784,1,10,1,45.8221,8.334231,0,0,0,54.15633,0,0,0,4,0,7,74.36826,13.73189,0,,1000,1000,1,1,1.94591,6.907755,0,3.258096,8.294049,1,0,0,76.06523,9.66698,1.94591,3.991875,1 +7,1,25,0,3,129440,0,15786.6,15.55784,1,10,1,33.41523,6.914005,0,0,0,40.32924,0,0,0,5,0,7,74.36826,13.73189,0,,1000,1000,1,1,1.94591,6.907755,0,3.258096,8.294049,1,0,0,76.06523,9.66698,1.94591,3.697077,1 +7,1,25,0,4,129440,0,15786.6,16.55784,1,10,1,27.34731,1.823154,0,0,0,29.17047,0,0,0,4,0,7,74.36826,13.73189,0,,1000,1000,1,1,1.94591,6.907755,0,3.258096,8.294049,1,0,0,76.06523,9.66698,1.94591,3.373157,1 +7,1,25,0,5,129440,0,15786.6,17.55784,1,10,1,31.88829,5.060442,0,0,0,36.94873,0,0,0,2,0,7,74.36826,13.73189,0,,1000,1000,1,1,1.94591,6.907755,0,3.258096,8.294049,1,0,0,76.06523,9.66698,1.94591,3.609531,1 +7,1,25,0,1,129441,0,15786.6,33.65914,1,10,1,99.52885,47.54417,0,0,0,147.073,0,0,0,4,0,7,24.2,21.7,0,,1000,1000,0,0,1.94591,6.907755,0,3.258096,8.294049,1,0,0,63.85081,9.66698,1.94591,4.990929,1 +7,1,25,0,2,129441,0,15786.6,34.65914,1,10,1,115.903,50.22102,0,318.0593,0,166.124,0,0,23,6,0,7,24.2,21.7,0,,1000,1000,0,0,1.94591,6.907755,0,3.258096,8.294049,1,0,0,63.85081,9.66698,1.94591,5.112734,1 +7,1,25,0,3,129441,0,15786.6,35.65914,1,10,1,56.01966,17.88206,0,0,0,73.90172,0,0,0,2,0,7,24.2,21.7,0,,1000,1000,0,0,1.94591,6.907755,0,3.258096,8.294049,1,0,0,63.85081,9.66698,1.94591,4.302736,1 +7,1,25,0,4,129441,0,15786.6,36.65914,1,10,1,295.8067,4.922516,0,0,0,300.7292,0,0,0,1,0,7,24.2,21.7,0,,1000,1000,0,0,1.94591,6.907755,0,3.258096,8.294049,1,0,0,63.85081,9.66698,1.94591,5.70621,1 +7,1,25,0,5,129441,0,15786.6,37.65914,1,10,1,75.4481,5.939975,0,0,0,81.38808,0,0,0,6,0,7,24.2,21.7,0,,1000,1000,0,0,1.94591,6.907755,0,3.258096,8.294049,1,0,0,63.85081,9.66698,1.94591,4.399229,1 +7,1,25,0,1,129442,0,15786.6,11.68515,0,10,1,41.22497,4.658422,0,0,0,45.88339,0,0,0,5,0,7,74.36826,13.73189,0,,1000,1000,1,0,1.94591,6.907755,0,3.258096,8.294049,1,0,0,76.57921,9.66698,1.94591,3.826103,1 +7,1,25,0,2,129442,0,15786.6,12.68515,0,10,1,17.25067,0,0,0,0,17.25067,0,0,0,2,0,7,74.36826,13.73189,0,,1000,1000,1,0,1.94591,6.907755,0,3.258096,8.294049,1,0,0,76.57921,9.66698,1.94591,2.847851,1 +7,1,25,0,3,129442,0,15786.6,13.68515,0,10,1,12.28501,.982801,0,0,0,13.26781,0,0,0,3,0,7,74.36826,13.73189,0,,1000,1000,1,0,1.94591,6.907755,0,3.258096,8.294049,1,0,0,76.57921,9.66698,1.94591,2.585341,1 +7,1,25,0,4,129442,0,15786.6,14.68515,0,10,1,33.52325,2.461258,0,0,641.6135,677.598,1,0,0,4,0,7,74.36826,13.73189,0,,1000,1000,1,0,1.94591,6.907755,0,3.258096,8.294049,1,0,0,76.57921,9.66698,1.94591,6.518554,1 +7,1,25,0,5,129442,0,15786.6,15.68515,0,10,1,6.252605,0,0,0,0,6.252605,0,0,0,1,0,7,74.36826,13.73189,0,,1000,1000,1,0,1.94591,6.907755,0,3.258096,8.294049,1,0,0,76.57921,9.66698,1.94591,1.832998,1 +2,1,100,0,1,129446,0,2588.71,4.533881,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,400,405.56,1,0,1.386294,6.005269,1,0,0,0,0,0,79.54541,7.859301,1.386294,,0 +2,1,100,0,2,129446,0,2588.71,5.533881,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,400,405.56,1,0,1.386294,6.005269,1,0,0,0,0,0,79.54541,7.859301,1.386294,,0 +2,1,100,0,3,129446,0,2588.71,6.533881,0,12,1,12.46883,0,31.27182,0,0,43.74065,0,0,0,0,1,4,74.36826,13.73189,0,,400,405.56,1,0,1.386294,6.005269,1,0,0,0,0,0,79.54541,7.859301,1.386294,3.778278,1 +2,1,100,0,1,129447,0,2588.71,2.469541,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,400,405.56,1,1,1.386294,6.005269,1,0,0,0,0,0,79.03143,7.859301,1.386294,,0 +2,1,100,0,2,129447,0,2588.71,3.469541,1,12,1,2.738226,4.441402,0,0,0,7.179627,0,0,0,1,0,4,74.36826,13.73189,0,,400,405.56,1,1,1.386294,6.005269,1,0,0,0,0,0,79.03143,7.859301,1.386294,1.971247,1 +2,1,100,0,3,129447,0,2588.71,4.469542,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,400,405.56,1,1,1.386294,6.005269,1,0,0,0,0,0,79.03143,7.859301,1.386294,,0 +2,1,100,0,1,129448,0,2588.71,24.95004,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,61.3,13.73189,0,,400,405.56,0,0,1.386294,6.005269,1,0,0,0,0,0,78.70184,7.859301,1.386294,,0 +2,1,100,0,2,129448,0,2588.71,25.95004,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,61.3,13.73189,0,,400,405.56,0,0,1.386294,6.005269,1,0,0,0,0,0,78.70184,7.859301,1.386294,,0 +2,1,100,0,3,129448,0,2588.71,26.95004,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,61.3,13.73189,0,,400,405.56,0,0,1.386294,6.005269,1,0,0,0,0,0,78.70184,7.859301,1.386294,,0 +2,1,100,0,1,129449,0,2588.71,27.07734,0,15,1,0,0,0,0,0,0,0,0,0,0,0,4,77.5,13.73189,0,,400,405.56,0,0,1.386294,6.005269,1,0,0,0,0,0,78.07117,7.859301,1.386294,,0 +2,1,100,0,2,129449,0,2588.71,28.07734,0,15,1,5.476451,7.738225,0,0,0,13.21468,0,0,0,0,1,4,77.5,13.73189,0,,400,405.56,0,0,1.386294,6.005269,1,0,0,0,0,0,78.07117,7.859301,1.386294,2.581328,1 +2,1,100,0,3,129449,0,2588.71,29.07734,0,15,1,7.481297,2.523691,22.06983,0,0,32.07481,0,0,0,1,0,4,77.5,13.73189,0,,400,405.56,0,0,1.386294,6.005269,1,0,0,0,0,0,78.07117,7.859301,1.386294,3.468071,1 +4,1,100,1,1,129458,0,8129.032,27.72622,0,12,1,14.98801,0,0,0,0,14.98801,0,0,0,1,0,4,76.8,8.7,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,77.82298,9.00332,1.386294,2.707251,1 +4,1,100,1,2,129458,0,8129.032,28.72622,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,76.8,8.7,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,77.82298,9.00332,1.386294,,0 +4,1,100,1,3,129458,0,8129.032,29.72622,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,76.8,8.7,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,77.82298,9.00332,1.386294,,0 +4,1,100,1,1,129459,0,8129.032,7.104723,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,1,0,0,0,0,0,84.02346,9.00332,1.386294,,0 +4,1,100,1,2,129459,0,8129.032,8.104723,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,1,0,0,0,0,0,84.02346,9.00332,1.386294,,0 +4,1,100,1,3,129459,0,8129.032,9.104723,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,1,0,0,0,0,0,84.02346,9.00332,1.386294,,0 +4,1,100,1,1,129460,0,8129.032,26.54894,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,78.9,8.7,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,78.97468,9.00332,1.386294,,0 +4,1,100,1,2,129460,0,8129.032,27.54894,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,78.9,8.7,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,78.97468,9.00332,1.386294,,0 +4,1,100,1,3,129460,0,8129.032,28.54894,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,78.9,8.7,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,0,0,0,78.97468,9.00332,1.386294,,0 +4,1,100,1,1,129461,0,8129.032,6.162902,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,0,0,0,84.53744,9.00332,1.386294,,0 +4,1,100,1,2,129461,0,8129.032,7.162902,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,0,0,0,84.53744,9.00332,1.386294,,0 +4,1,100,1,3,129461,0,8129.032,8.162902,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,0,0,0,84.53744,9.00332,1.386294,,0 +10,1,50,0,1,129466,0,4528.536,20.27105,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,85.3,4.3,0,,750,750,0,0,0,6.620073,0,3.931826,7.313221,0,0,0,77.9943,8.418375,0,,0 +10,1,50,0,2,129466,0,4528.536,21.27105,0,12,1,33.82749,0,0,0,0,33.82749,0,0,0,0,1,1,85.3,4.3,0,,750,750,0,0,0,6.620073,0,3.931826,7.313221,0,0,0,77.9943,8.418375,0,3.521274,1 +10,1,50,0,3,129466,0,4528.536,22.27105,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,85.3,4.3,0,,750,750,0,0,0,6.620073,0,3.931826,7.313221,0,0,0,77.9943,8.418375,0,,0 +4,1,100,1,1,129467,1,7848.96,32.72827,0,16,1,5.94884,0,0,0,0,5.94884,0,0,0,1,0,4,91.6,17.4,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,66.55058,8.968264,1.386294,1.783196,1 +4,1,100,1,2,129467,1,7848.96,33.72827,0,16,1,154.8775,1.796407,0,0,0,156.6739,0,0,0,5,0,4,91.6,17.4,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,66.55058,8.968264,1.386294,5.054167,1 +4,1,100,1,3,129467,1,7848.96,34.72827,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,91.6,17.4,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,66.55058,8.968264,1.386294,,0 +4,1,100,1,4,129467,1,7848.96,35.72827,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,91.6,17.4,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,66.55058,8.968264,1.386294,,0 +4,1,100,1,5,129467,1,7848.96,36.72827,0,16,1,96.33151,1.262095,0,0,0,97.59361,0,0,0,6,0,4,91.6,17.4,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,66.55058,8.968264,1.386294,4.580812,1 +4,1,100,1,1,129468,1,7848.96,30.68583,1,16,1,23.79536,3.569304,0,0,0,27.36466,0,0,0,3,0,4,92.6,21.7,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,67.45471,8.968264,1.386294,3.309253,1 +4,1,100,1,2,129468,1,7848.96,31.68583,1,16,1,90.36472,4.899292,0,0,791.3609,886.6249,2,0,0,5,0,4,92.6,21.7,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,67.45471,8.968264,1.386294,6.787422,1 +4,1,100,1,3,129468,1,7848.96,32.68583,1,16,1,4.955401,0,0,0,0,4.955401,0,0,0,1,0,4,92.6,21.7,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,67.45471,8.968264,1.386294,1.600478,1 +4,1,100,1,4,129468,1,7848.96,33.68583,1,16,1,303.1804,.9178522,0,0,0,304.0982,0,0,0,4,0,4,92.6,21.7,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,67.45471,8.968264,1.386294,5.71735,1 +4,1,100,1,5,129468,1,7848.96,34.68583,1,16,1,71.51872,10.53849,14.50989,0,1084.666,1181.233,1,0,0,1,1,4,92.6,21.7,0,,1000,1000,0,0,1.386294,6.907755,1,0,0,1,0,0,67.45471,8.968264,1.386294,7.074314,1 +4,1,100,1,1,129469,1,7848.96,9.437371,0,16,1,21.41582,0,0,0,0,21.41582,0,0,0,0,1,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,1,0,0,82.78881,8.968264,1.386294,3.06413,1 +4,1,100,1,2,129469,1,7848.96,10.43737,0,16,1,13.60915,0,0,0,0,13.60915,0,0,0,1,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,1,0,0,82.78881,8.968264,1.386294,2.610742,1 +4,1,100,1,3,129469,1,7848.96,11.43737,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,1,0,0,82.78881,8.968264,1.386294,,0 +4,1,100,1,4,129469,1,7848.96,12.43737,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,1,0,0,82.78881,8.968264,1.386294,,0 +4,1,100,1,5,129469,1,7848.96,13.43737,0,16,1,49.81068,0,0,0,0,49.81068,0,0,0,3,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,1,0,0,82.78881,8.968264,1.386294,3.90823,1 +4,1,100,1,1,129470,1,7848.96,7.318275,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,1,0,0,82.78881,8.968264,1.386294,,0 +4,1,100,1,2,129470,1,7848.96,8.318275,0,16,1,13.60915,0,0,0,0,13.60915,0,0,0,1,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,1,0,0,82.78881,8.968264,1.386294,2.610742,1 +4,1,100,1,3,129470,1,7848.96,9.318275,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,1,0,0,82.78881,8.968264,1.386294,,0 +4,1,100,1,4,129470,1,7848.96,10.31828,0,16,1,17.89812,0,0,0,0,17.89812,0,0,0,1,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,1,0,0,82.78881,8.968264,1.386294,2.884696,1 +4,1,100,1,5,129470,1,7848.96,11.31828,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,1,0,0,1,0,0,82.78881,8.968264,1.386294,,0 +6,1,25,0,1,129474,0,10085.61,1.708419,0,14,1,48.78049,6.472338,0,0,0,55.25283,0,0,0,10,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,75.35837,9.218964,1.386294,4.011919,1 +6,1,25,0,2,129474,0,10085.61,2.708419,0,14,1,16.33097,4.30049,0,0,0,20.63146,0,0,0,3,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,75.35837,9.218964,1.386294,3.026817,1 +6,1,25,0,3,129474,0,10085.61,3.708419,0,14,1,8.424182,1.367691,0,0,0,9.791873,0,0,0,1,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,75.35837,9.218964,1.386294,2.281553,1 +6,1,25,0,1,129475,0,10085.61,29.94114,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,86.3,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,74.78748,9.218964,1.386294,,0 +6,1,25,0,2,129475,0,10085.61,30.94114,0,16,1,204.1372,16.46707,0,0,0,220.6042,0,0,0,6,0,4,86.3,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,74.78748,9.218964,1.386294,5.39637,1 +6,1,25,0,3,129475,0,10085.61,31.94114,0,16,1,41.3776,11.12488,0,0,0,52.50248,0,0,0,3,0,4,86.3,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,74.78748,9.218964,1.386294,3.96086,1 +6,1,25,0,1,129476,0,10085.61,29.64819,1,14,1,29.7442,7.911957,0,0,0,37.65616,0,0,0,3,0,4,80,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,78.56806,9.218964,1.386294,3.628496,1 +6,1,25,0,2,129476,0,10085.61,30.64819,1,14,1,28.30702,8.628199,33.20631,0,0,70.14153,0,0,0,1,1,4,80,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,78.56806,9.218964,1.386294,4.250515,1 +6,1,25,0,3,129476,0,10085.61,31.64819,1,14,1,165.3865,13.18137,12.42815,0,0,190.996,0,0,0,8,1,4,80,13.73189,0,,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,78.56806,9.218964,1.386294,5.252253,1 +6,1,25,0,1,129477,0,10085.61,2.833676,0,14,1,45.80607,21.47531,0,0,0,67.28138,0,0,0,8,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,75.35837,9.218964,1.386294,4.208883,1 +6,1,25,0,2,129477,0,10085.61,3.833676,0,14,1,14.15351,55.44366,0,0,0,69.59717,0,0,0,2,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,75.35837,9.218964,1.386294,4.242724,1 +6,1,25,0,3,129477,0,10085.61,4.833675,0,14,1,81.26859,41.65015,0,0,0,122.9187,0,0,0,9,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,75.35837,9.218964,1.386294,4.811523,1 +11,1,0,0,1,129481,0,1518.61,24.78576,1,11,1,31.6247,18.07554,0,0,0,49.70024,1,1,0,3,0,2,97.5,13.73189,0,,0,0,0,0,.6931472,0,0,0,0,0,0,0,74.46398,7.32621,.6931472,3.90601,1 +11,1,0,0,2,129481,0,1518.61,25.78576,1,11,1,183.5433,12.49726,0,0,69.1402,265.1807,1,0,0,8,1,3,97.5,13.73189,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,74.46398,7.32621,1.098612,5.580411,1 +11,1,0,0,3,129481,0,1518.61,26.78576,1,11,1,33.04239,12.74314,0,0,0,45.78554,0,0,0,0,0,3,97.5,13.73189,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,74.46398,7.32621,1.098612,3.823968,1 +11,1,0,0,4,129481,0,1518.61,27.78576,1,11,1,120.2397,30.54403,0,0,633.4025,784.1863,1,0,0,1,2,3,97.5,13.73189,0,,0,0,0,0,1.098612,0,0,0,0,0,0,0,74.46398,7.32621,1.098612,6.664647,1 +11,1,0,0,5,129481,0,1518.61,28.78576,1,11,1,36.56369,18.42996,.2539145,0,712.7592,768.0068,1,0,0,2,0,4,97.5,13.73189,0,,0,0,0,0,1.386294,0,0,0,0,0,0,0,74.46398,7.32621,1.386294,6.643798,1 +11,1,0,0,1,129482,0,1518.61,3.811088,1,11,1,46.76259,7.07434,0,0,0,53.83693,0,0,0,8,0,2,74.36826,13.73189,0,,0,0,1,1,.6931472,0,0,0,0,0,0,0,76.44289,7.32621,.6931472,3.98596,1 +11,1,0,0,2,129482,0,1518.61,4.811088,1,11,1,6.571742,2.628697,0,0,0,9.200438,0,0,0,1,0,3,74.36826,13.73189,0,,0,0,1,1,1.098612,0,0,0,0,0,0,0,76.44289,7.32621,1.098612,2.219251,1 +11,1,0,0,3,129482,0,1518.61,5.811088,1,11,1,0,0,0,0,0,0,0,0,0,0,0,3,74.36826,13.73189,0,,0,0,1,1,1.098612,0,0,0,0,0,0,0,76.44289,7.32621,1.098612,,0 +11,1,0,0,4,129482,0,1518.61,6.811088,1,11,1,8.298756,0,0,0,0,8.298756,0,0,0,2,0,3,74.36826,13.73189,0,,0,0,1,1,1.098612,0,0,0,0,0,0,0,76.44289,7.32621,1.098612,2.116106,1 +11,1,0,0,5,129482,0,1518.61,7.811088,1,11,1,4.655099,2.010157,0,0,0,6.665256,0,0,0,1,0,4,74.36826,13.73189,0,,0,0,1,1,1.386294,0,0,0,0,0,0,0,76.44289,7.32621,1.386294,1.896908,1 +11,1,0,1,1,129489,0,7368.771,24.77207,0,14,1,14.8721,0,16.35931,0,0,31.23141,0,0,0,1,0,2,75.8,8.7,0,,0,0,0,0,.6931472,0,0,0,0,1,0,0,66.63726,8.905142,.6931472,3.441424,1 +11,1,0,1,2,129489,0,7368.771,25.77207,0,14,1,16.33097,0,0,0,0,16.33097,0,0,0,0,0,2,75.8,8.7,0,,0,0,0,0,.6931472,0,0,0,0,1,0,0,66.63726,8.905142,.6931472,2.793064,1 +11,1,0,1,3,129489,0,7368.771,26.77207,0,14,1,0,0,0,0,0,0,0,0,0,0,0,2,75.8,8.7,0,,0,0,0,0,.6931472,0,0,0,0,1,0,0,66.63726,8.905142,.6931472,,0 +11,1,0,1,1,129490,0,7368.771,24.8898,1,13,1,26.76978,0,0,0,0,26.76978,0,0,0,2,0,2,67.4,21.7,0,,0,0,0,0,.6931472,0,0,0,0,1,0,0,68.8164,8.905142,.6931472,3.287274,1 +11,1,0,1,2,129490,0,7368.771,25.8898,1,13,1,22.86336,0,0,0,0,22.86336,0,0,0,2,0,2,67.4,21.7,0,,0,0,0,0,.6931472,0,0,0,0,1,0,0,68.8164,8.905142,.6931472,3.129536,1 +11,1,0,1,3,129490,0,7368.771,26.8898,1,13,1,27.75025,0,0,0,0,27.75025,0,0,0,1,0,2,67.4,21.7,0,,0,0,0,0,.6931472,0,0,0,0,1,0,0,68.8164,8.905142,.6931472,3.323245,1 +5,1,25,0,1,129498,0,13740.69,27.41684,1,12,1,20.82094,4.521118,33.79536,0,0,59.13742,0,0,0,1,1,3,71.3,13.73189,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,69.22522,9.52819,1.098612,4.079864,1 +5,1,25,0,2,129498,0,13740.69,28.41684,1,12,1,43.54927,1.137725,14.62167,0,0,59.30865,0,0,0,2,1,3,71.3,13.73189,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,69.22522,9.52819,1.098612,4.082755,1 +5,1,25,0,3,129498,0,13740.69,29.41684,1,12,1,122.3984,3.409316,0,138.7512,1198.622,1324.43,1,0,8,2,2,3,71.3,13.73189,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,69.22522,9.52819,1.098612,7.188737,1 +5,1,25,0,4,129498,0,13740.69,30.41684,1,12,1,27.53557,0,0,13.76778,0,27.53557,0,0,1,3,0,3,71.3,13.73189,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,69.22522,9.52819,1.098612,3.315479,1 +5,1,25,0,5,129498,0,13740.69,31.41684,1,12,1,181.7417,3.878839,0,0,0,185.6205,0,0,0,6,0,3,71.3,13.73189,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,69.22522,9.52819,1.098612,5.223704,1 +5,1,25,0,1,129499,0,13740.69,7.29911,0,12,1,15.46698,0,0,0,0,15.46698,0,0,0,1,0,3,74.36826,13.73189,0,,1000,1000,1,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,77.38953,9.52819,1.098612,2.738708,1 +5,1,25,0,2,129499,0,13740.69,8.29911,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,74.36826,13.73189,0,,1000,1000,1,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,77.38953,9.52819,1.098612,,0 +5,1,25,0,3,129499,0,13740.69,9.29911,0,12,1,51.53617,6.818632,0,0,0,58.3548,0,0,0,3,1,3,74.36826,13.73189,0,,1000,1000,1,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,77.38953,9.52819,1.098612,4.066542,1 +5,1,25,0,4,129499,0,13740.69,10.29911,0,12,1,54.15328,4.708582,0,0,0,58.86186,0,0,0,6,0,3,74.36826,13.73189,0,,1000,1000,1,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,77.38953,9.52819,1.098612,4.075193,1 +5,1,25,0,5,129499,0,13740.69,11.29911,0,12,1,17.66933,0,0,0,0,17.66933,0,0,0,2,0,3,74.36826,13.73189,0,,1000,1000,1,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,77.38953,9.52819,1.098612,2.87183,1 +5,1,25,0,1,129500,0,13740.69,30.81177,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,77.5,13.73189,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,66.10543,9.52819,1.098612,,0 +5,1,25,0,2,129500,0,13740.69,31.81177,0,12,1,139.902,11.17039,0,0,0,151.0724,0,0,0,2,0,3,77.5,13.73189,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,66.10543,9.52819,1.098612,5.017759,1 +5,1,25,0,3,129500,0,13740.69,32.81177,0,12,1,22.79485,3.944499,0,0,0,26.73935,0,0,0,1,0,3,77.5,13.73189,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,66.10543,9.52819,1.098612,3.286136,1 +5,1,25,0,4,129500,0,13740.69,33.81177,0,12,1,22.48738,0,0,0,0,22.48738,0,0,0,2,0,3,77.5,13.73189,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,66.10543,9.52819,1.098612,3.112954,1 +5,1,25,0,5,129500,0,13740.69,34.81177,0,12,1,15.14514,5.961296,0,0,0,21.10644,0,0,0,2,0,3,77.5,13.73189,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,66.10543,9.52819,1.098612,3.049578,1 +11,1,0,0,1,129521,0,10726.43,30.55441,0,19,1,121.6538,141.743,29.2207,0,0,292.6175,0,0,0,8,0,3,83.8,13.73189,1,,0,101,0,0,1.098612,4.61512,0,0,0,0,0,0,75.44648,9.280559,1.098612,5.678866,1 +11,1,0,0,2,129521,0,10726.43,31.55441,0,19,1,76.4834,78.68808,0,0,0,155.1715,0,0,0,2,0,3,83.8,13.73189,1,,0,101,0,0,1.098612,4.61512,0,0,0,0,0,0,75.44648,9.280559,1.098612,5.044531,1 +11,1,0,0,3,129521,0,10726.43,32.55442,0,19,1,77.7998,150.7929,0,0,0,228.5927,0,0,0,6,0,3,83.8,13.73189,1,,0,101,0,0,1.098612,4.61512,0,0,0,0,0,0,75.44648,9.280559,1.098612,5.431942,1 +11,1,0,0,4,129521,0,10726.43,33.55442,0,19,1,39.46765,137.6549,96.37448,0,0,273.497,0,0,0,4,0,4,83.8,13.73189,1,,0,101,0,0,1.386294,4.61512,0,0,0,0,0,0,75.44648,9.280559,1.386294,5.61129,1 +11,1,0,0,5,129521,0,10726.43,34.55442,0,19,1,62.68406,185.7804,32.5873,0,0,281.0518,0,0,0,3,0,4,83.8,13.73189,1,,0,101,0,0,1.386294,4.61512,0,0,0,0,0,0,75.44648,9.280559,1.386294,5.638539,1 +11,1,0,0,1,129522,0,10726.43,27.24162,1,13,1,201.6657,25.49673,0,0,0,227.1624,0,0,0,7,0,3,56.3,13.73189,0,,0,101,0,0,1.098612,4.61512,0,0,0,0,0,0,77.56129,9.280559,1.098612,5.425665,1 +11,1,0,0,2,129522,0,10726.43,28.24162,1,13,1,320.577,8.747958,0,0,0,329.325,0,0,0,6,3,3,56.3,13.73189,0,,0,101,0,0,1.098612,4.61512,0,0,0,0,0,0,77.56129,9.280559,1.098612,5.797045,1 +11,1,0,0,3,129522,0,10726.43,29.24162,1,13,1,40.95639,17.46779,2.973241,0,955.8077,1017.205,1,0,0,0,0,3,56.3,13.73189,0,,0,101,0,0,1.098612,4.61512,0,0,0,0,0,0,77.56129,9.280559,1.098612,6.924814,1 +11,1,0,0,4,129522,0,10726.43,30.24162,1,13,1,13.76778,6.815053,0,0,0,20.58284,0,0,0,0,0,4,56.3,13.73189,0,,0,101,0,0,1.386294,4.61512,0,0,0,0,0,0,77.56129,9.280559,1.386294,3.024457,1 +11,1,0,0,5,129522,0,10726.43,31.24162,1,13,1,426.2726,29.44888,0,0,2364.295,2820.017,2,0,0,10,0,4,56.3,13.73189,0,,0,101,0,0,1.386294,4.61512,0,0,0,0,0,0,77.56129,9.280559,1.386294,7.944498,1 +11,1,0,0,1,129523,0,10726.43,3.789186,1,13,1,58.89352,39.68471,0,0,0,98.57822,0,0,0,9,0,3,74.36826,13.73189,1,,0,101,1,1,1.098612,4.61512,0,0,0,0,0,0,80.52754,9.280559,1.098612,4.59085,1 +11,1,0,0,2,129523,0,10726.43,4.789186,1,13,1,54.70876,21.38269,0,0,0,76.09145,0,0,0,6,0,3,74.36826,13.73189,1,,0,101,1,1,1.098612,4.61512,0,0,0,0,0,0,80.52754,9.280559,1.098612,4.331936,1 +11,1,0,0,3,129523,0,10726.43,5.789186,1,13,1,110.5104,24.52924,0,0,0,135.0396,0,0,0,9,0,3,74.36826,13.73189,1,,0,101,1,1,1.098612,4.61512,0,0,0,0,0,0,80.52754,9.280559,1.098612,4.905569,1 +11,1,0,0,4,129523,0,10726.43,6.789186,1,13,1,145.0206,28.61404,0,0,0,173.6347,0,0,0,12,0,4,74.36826,13.73189,1,,0,101,1,1,1.386294,4.61512,0,0,0,0,0,0,80.52754,9.280559,1.386294,5.156954,1 +11,1,0,0,5,129523,0,10726.43,7.789186,1,13,1,4.206984,2.166597,0,0,0,6.37358,0,0,0,0,0,4,74.36826,13.73189,1,,0,101,1,1,1.386294,4.61512,0,0,0,0,0,0,80.52754,9.280559,1.386294,1.852161,1 +8,1,50,1,1,129524,0,5722.705,27.61944,1,12,1,309.7762,42.4735,0,0,0,352.2497,0,0,0,15,1,1,60,8.7,0,,400,400,0,0,0,5.991465,0,3.931826,6.684612,1,0,0,66.98128,8.652371,0,5.86434,1 +8,1,50,1,2,129524,0,5722.705,28.61944,1,12,1,316.7116,32.77628,0,0,0,349.4879,0,0,0,4,0,1,60,8.7,0,,400,400,0,0,0,5.991465,0,3.931826,6.684612,1,0,0,66.98128,8.652371,0,5.856469,1 +8,1,50,1,3,129524,0,5722.705,29.61944,1,12,1,58.23096,3.036855,0,0,0,61.26781,0,0,0,2,0,1,60,8.7,0,,400,400,0,0,0,5.991465,0,3.931826,6.684612,1,0,0,66.98128,8.652371,0,4.115255,1 +8,1,50,1,1,129525,0,4029.156,28.14237,1,10,1,46.52533,11.96113,0,0,0,58.48645,0,0,0,2,1,1,69.5,13,0,,200,219,0,0,0,5.389072,0,3.931826,5.991465,0,0,0,75.91062,8.30156,0,4.068795,1 +8,1,50,1,2,129525,0,4029.156,29.14237,1,10,1,17.52022,1.590297,0,0,0,19.11051,0,0,0,1,0,1,69.5,13,0,,200,219,0,0,0,5.389072,0,3.931826,5.991465,0,0,0,75.91062,8.30156,0,2.950238,1 +8,1,50,1,3,129525,0,4029.156,30.14237,1,10,1,12.53071,0,0,0,0,12.53071,0,0,0,1,0,1,69.5,13,0,,200,219,0,0,0,5.389072,0,3.931826,5.991465,0,0,0,75.91062,8.30156,0,2.528183,1 +11,1,0,1,1,129533,0,5911.911,25.68378,0,13,1,56.09756,24.71743,0,0,0,80.81499,0,0,0,7,2,3,67.4,0,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,68.15562,8.684894,1.098612,4.392162,1 +11,1,0,1,2,129533,0,5911.911,26.68378,0,13,1,13.3914,12.24823,0,0,0,25.63963,0,0,0,2,0,3,67.4,0,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,68.15562,8.684894,1.098612,3.244139,1 +11,1,0,1,3,129533,0,5911.911,27.68378,0,13,1,125.0743,18.45887,0,0,0,143.5332,0,0,0,4,0,3,67.4,0,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,68.15562,8.684894,1.098612,4.966567,1 +11,1,0,1,4,129533,0,5911.911,28.68378,0,13,1,2.294631,0,0,20.65167,0,2.294631,0,0,1,1,0,3,67.4,0,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,68.15562,8.684894,1.098612,.8305718,1 +11,1,0,1,5,129533,0,5911.911,29.68378,0,13,1,14.72444,4.375263,0,0,0,19.0997,0,0,0,2,0,3,67.4,0,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,68.15562,8.684894,1.098612,2.949673,1 +11,1,0,1,1,129534,0,5911.911,25.44011,1,12,1,82.80785,70.07733,0,0,0,152.8852,0,0,0,4,1,3,73.7,13,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,68.79924,8.684894,1.098612,5.029687,1 +11,1,0,1,2,129534,0,5911.911,26.44011,1,12,1,31.95427,37.39793,0,0,0,69.3522,0,0,0,4,0,3,73.7,13,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,68.79924,8.684894,1.098612,4.239198,1 +11,1,0,1,3,129534,0,5911.911,27.44011,1,12,1,74.28146,31.20912,0,0,0,105.4906,0,0,0,8,0,3,73.7,13,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,68.79924,8.684894,1.098612,4.658622,1 +11,1,0,1,4,129534,0,5911.911,28.44011,1,12,1,39.37586,40.22028,0,362.5516,0,79.59615,0,0,14,4,0,3,73.7,13,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,68.79924,8.684894,1.098612,4.376966,1 +11,1,0,1,5,129534,0,5911.911,29.44011,1,12,1,47.95961,37.48422,0,63.10476,0,85.44384,0,0,3,4,1,3,73.7,13,0,,0,0,0,0,1.098612,0,0,0,0,1,0,0,68.79924,8.684894,1.098612,4.447859,1 +11,1,0,1,1,129535,0,5911.911,.3723477,0,12,1,71.86198,32.0345,0,0,0,103.8965,0,0,0,7,3,3,74.36826,13.73189,0,,0,0,1,0,1.098612,0,0,0,0,0,0,0,81.14257,8.684894,1.098612,4.643395,1 +11,1,0,1,2,129535,0,5911.911,1.372348,0,12,1,90.36472,26.3963,0,0,0,116.761,0,0,0,9,1,3,74.36826,13.73189,0,,0,0,1,0,1.098612,0,0,0,0,0,0,0,81.14257,8.684894,1.098612,4.760129,1 +11,1,0,1,3,129535,0,5911.911,2.372348,0,12,1,105.5996,32.54212,0,0,283.5728,421.7146,1,0,0,12,0,3,74.36826,13.73189,0,,0,0,1,0,1.098612,0,0,0,0,0,0,0,81.14257,8.684894,1.098612,6.044329,1 +11,1,0,1,4,129535,0,5911.911,3.372348,0,12,1,23.68059,7.631941,0,0,0,31.31253,0,0,0,4,0,3,74.36826,13.73189,0,,0,0,1,0,1.098612,0,0,0,0,0,0,0,81.14257,8.684894,1.098612,3.444018,1 +11,1,0,1,5,129535,0,5911.911,4.372348,0,12,1,101.3883,20.63946,0,0,0,122.0278,0,0,0,9,1,3,74.36826,13.73189,0,,0,0,1,0,1.098612,0,0,0,0,0,0,0,81.14257,8.684894,1.098612,4.804249,1 +1,1,0,0,1,129541,0,10361.66,25.53046,0,16,1,16.48999,2.355713,0,0,0,18.8457,0,0,0,1,1,2,76.3,13.73189,0,,300,300,0,0,.6931472,5.703783,1,0,0,0,0,0,74.89308,9.245964,.6931472,2.936285,1 +1,1,0,0,2,129541,0,10361.66,26.53046,0,16,1,0,0,0,0,0,0,0,0,0,0,0,2,76.3,13.73189,0,,300,300,0,0,.6931472,5.703783,1,0,0,0,0,0,74.89308,9.245964,.6931472,,0 +1,1,0,0,3,129541,0,10361.66,27.53046,0,16,1,11.79361,6.742015,0,0,0,18.53563,0,0,0,2,0,2,76.3,13.73189,0,,300,300,0,0,.6931472,5.703783,1,0,0,0,0,0,74.89308,9.245964,.6931472,2.919695,1 +1,1,0,0,1,129542,0,10361.66,24.38604,1,16,1,23.55713,0,18.25677,0,0,41.8139,0,0,0,2,0,2,95,13.73189,0,,300,300,0,0,.6931472,5.703783,1,0,0,0,0,0,73.56861,9.245964,.6931472,3.733229,1 +1,1,0,0,2,129542,0,10361.66,25.38604,1,16,1,10.78167,0,33.20216,0,0,43.98383,0,0,0,1,0,2,95,13.73189,0,,300,300,0,0,.6931472,5.703783,1,0,0,0,0,0,73.56861,9.245964,.6931472,3.783822,1 +1,1,0,0,3,129542,0,10361.66,26.38604,1,16,1,83.53809,10.25553,13.26781,0,0,107.0614,0,0,0,4,1,2,95,13.73189,0,,300,300,0,0,.6931472,5.703783,1,0,0,0,0,0,73.56861,9.245964,.6931472,4.673403,1 +6,1,25,0,1,129564,1,13351.74,55.32649,0,18,1,198.9887,83.31945,49.72635,0,0,332.0345,0,0,0,3,13,1,85,13.73189,0,,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,0,1,0,69.70229,9.499476,0,5.805239,1 +6,1,25,0,2,129564,1,13351.74,56.32649,0,18,1,168.6718,85.98802,0,0,0,254.6598,0,0,0,2,12,1,85,13.73189,0,,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,0,1,0,69.70229,9.499476,0,5.539928,1 +6,1,25,0,3,129564,1,13351.74,57.32649,0,18,1,183.8454,82.14569,53.04757,0,0,319.0387,0,0,0,4,12,1,85,13.73189,0,,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,0,1,0,69.70229,9.499476,0,5.765312,1 +8,1,50,0,1,129584,0,9925.559,24.28747,1,17,1,56.5371,28.72791,0,0,0,85.26501,0,0,0,2,0,2,76.3,13.73189,0,,600,600,0,0,.6931472,6.39693,0,3.931826,7.090077,0,1,0,57.52052,9.20297,.6931472,4.445764,1 +8,1,50,0,2,129584,0,9925.559,25.28747,1,17,1,34.50135,19.36927,0,0,0,53.87062,0,0,0,5,0,2,76.3,13.73189,0,,600,600,0,0,.6931472,6.39693,0,3.931826,7.090077,0,1,0,57.52052,9.20297,.6931472,3.986585,1 +8,1,50,0,3,129584,0,9925.559,26.28747,1,17,1,35.50368,36.91892,0,0,0,72.42261,0,0,0,4,0,2,76.3,13.73189,0,,600,600,0,0,.6931472,6.39693,0,3.931826,7.090077,0,1,0,57.52052,9.20297,.6931472,4.282518,1 +8,1,50,0,1,129585,0,9925.559,25.295,0,17,1,26.50177,0,0,0,0,26.50177,0,0,0,4,0,2,77.5,13.73189,0,,600,600,0,0,.6931472,6.39693,0,3.931826,7.090077,0,0,0,77.59619,9.20297,.6931472,3.277211,1 +8,1,50,0,2,129585,0,9925.559,26.295,0,17,1,5.929919,2.145553,0,0,0,8.075472,0,0,0,1,0,2,77.5,13.73189,0,,600,600,0,0,.6931472,6.39693,0,3.931826,7.090077,0,0,0,77.59619,9.20297,.6931472,2.088831,1 +8,1,50,0,3,129585,0,9925.559,27.295,0,17,1,5.896806,0,0,0,0,5.896806,0,0,0,0,0,2,77.5,13.73189,0,,600,600,0,0,.6931472,6.39693,0,3.931826,7.090077,0,0,0,77.59619,9.20297,.6931472,1.774411,1 +11,1,0,0,1,129590,0,6960.298,2.247776,0,12,1,31.80212,31.12485,0,0,0,62.92697,0,0,0,5,0,3,74.36826,13.73189,0,,0,120,1,0,1.098612,4.787492,0,0,0,0,0,0,74.35735,8.848122,1.098612,4.141975,1 +11,1,0,0,2,129590,0,6960.298,3.247776,0,12,1,131.5364,33.14286,0,0,0,164.6792,0,0,0,11,1,3,74.36826,13.73189,0,,0,120,1,0,1.098612,4.787492,0,0,0,0,0,0,74.35735,8.848122,1.098612,5.104,1 +11,1,0,0,3,129590,0,6960.298,4.247776,0,12,1,261.8673,91.94595,0,0,0,353.8133,0,0,0,41,1,3,74.36826,13.73189,0,,0,120,1,0,1.098612,4.787492,0,0,0,0,0,0,74.35735,8.848122,1.098612,5.868769,1 +11,1,0,0,1,129591,0,6960.298,25.54689,0,12,1,20.02356,6.289752,38.15665,0,0,64.46996,0,0,0,2,1,3,67.5,13.73189,0,,0,120,0,0,1.098612,4.787492,0,0,0,0,0,0,76.87543,8.848122,1.098612,4.166199,1 +11,1,0,0,2,129591,0,6960.298,26.54689,0,12,1,28.03234,11.51482,20.28032,0,0,59.82749,0,0,0,3,1,3,67.5,13.73189,0,,0,120,0,0,1.098612,4.787492,0,0,0,0,0,0,76.87543,8.848122,1.098612,4.091465,1 +11,1,0,0,3,129591,0,6960.298,27.54689,0,12,1,27.02703,10.32924,34.11302,0,0,71.46928,0,0,0,3,1,3,67.5,13.73189,0,,0,120,0,0,1.098612,4.787492,0,0,0,0,0,0,76.87543,8.848122,1.098612,4.269268,1 +11,1,0,0,1,129592,0,6960.298,24.89254,1,12,1,104.2403,10.76561,1.766784,0,0,116.7727,0,0,0,7,1,3,73.8,13.73189,0,,0,120,0,0,1.098612,4.787492,0,0,0,1,0,0,66.00516,8.848122,1.098612,4.760229,1 +11,1,0,0,2,129592,0,6960.298,25.89254,1,12,1,86.79245,34.80323,0,0,0,121.5957,0,0,0,10,0,3,73.8,13.73189,0,,0,120,0,0,1.098612,4.787492,0,0,0,1,0,0,66.00516,8.848122,1.098612,4.800702,1 +11,1,0,0,3,129592,0,6960.298,26.89254,1,12,1,77.64128,43.24324,0,0,0,120.8845,0,0,0,10,1,3,73.8,13.73189,0,,0,120,0,0,1.098612,4.787492,0,0,0,1,0,0,66.00516,8.848122,1.098612,4.794836,1 +1,1,0,0,1,129681,0,9542.002,61.9384,1,4,1,63.01531,91.47232,41.84924,0,409.9293,606.2662,1,0,0,7,0,3,68.8,13.73189,1,,450,0,0,0,1.098612,0,1,0,0,0,0,1,40.99886,9.163564,1.098612,6.407319,1 +1,1,0,0,2,129681,0,9542.002,62.9384,1,4,1,51.21294,80.469,0,0,0,131.6819,0,0,0,6,0,3,68.8,13.73189,1,,450,0,0,0,1.098612,0,1,0,0,0,0,1,40.99886,9.163564,1.098612,4.88039,1 +1,1,0,0,3,129681,0,9542.002,63.9384,1,4,1,387.3956,172.4619,0,0,15062.12,15621.98,3,0,0,11,2,3,68.8,13.73189,1,,450,0,0,0,1.098612,0,1,0,0,0,0,1,40.99886,9.163564,1.098612,9.656434,1 +1,1,0,0,1,129682,0,9542.002,14.48597,1,4,1,71.26031,12.50294,0,0,0,83.76325,0,0,0,4,0,3,52.5,13.73189,0,,450,0,1,1,1.098612,0,1,0,0,1,0,0,63.93338,9.163564,1.098612,4.427994,1 +1,1,0,0,2,129682,0,9542.002,15.48597,1,4,1,53.47709,27.09434,29.85984,0,1364.836,1475.267,2,0,0,7,0,3,52.5,13.73189,0,,450,0,1,1,1.098612,0,1,0,0,1,0,0,63.93338,9.163564,1.098612,7.296594,1 +1,1,0,0,3,129682,0,9542.002,16.48597,1,4,1,49.45946,18.36364,0,0,0,67.8231,0,0,0,6,1,3,52.5,13.73189,0,,450,0,1,1,1.098612,0,1,0,0,1,0,0,63.93338,9.163564,1.098612,4.216903,1 +1,1,0,0,1,129683,0,9542.002,61.5332,0,4,1,19.43463,11.1543,41.84924,0,0,72.43816,0,0,0,2,0,3,35,13.73189,1,,450,0,0,0,1.098612,0,1,0,0,0,1,0,55.00333,9.163564,1.098612,4.282733,1 +1,1,0,0,2,129683,0,9542.002,62.5332,0,4,1,8.625337,13.19137,0,0,0,21.81671,0,0,0,2,0,3,35,13.73189,1,,450,0,0,0,1.098612,0,1,0,0,0,1,0,55.00333,9.163564,1.098612,3.082676,1 +1,1,0,0,3,129683,0,9542.002,63.5332,0,4,1,134.8894,23.32187,0,0,0,158.2113,0,0,0,4,0,3,35,13.73189,1,,450,0,0,0,1.098612,0,1,0,0,0,1,0,55.00333,9.163564,1.098612,5.063931,1 +10,1,50,1,1,129684,0,6771.712,4.120465,1,13,1,45.50863,3.491969,0,0,0,49.0006,0,0,0,2,1,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.931826,7.600903,0,0,0,79.02408,8.820657,1.386294,3.891832,1 +10,1,50,1,2,129684,0,6771.712,5.120465,1,13,1,39.7387,3.739793,0,0,0,43.4785,0,0,0,4,1,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.931826,7.600903,0,0,0,79.02408,8.820657,1.386294,3.772266,1 +10,1,50,1,3,129684,0,6771.712,6.120465,1,13,1,9.910803,0,23.20119,0,0,33.11199,0,0,0,0,1,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.931826,7.600903,0,0,0,79.02408,8.820657,1.386294,3.499896,1 +10,1,50,1,1,129685,0,6771.712,5.207392,1,13,1,22.60559,10.5235,0,0,0,33.12909,0,0,0,2,0,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.931826,7.600903,0,0,0,79.02408,8.820657,1.386294,3.500412,1 +10,1,50,1,2,129685,0,6771.712,6.207392,1,13,1,49.53729,1.62221,20.37017,0,0,71.52967,0,0,0,1,1,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.931826,7.600903,0,0,0,79.02408,8.820657,1.386294,4.270113,1 +10,1,50,1,3,129685,0,6771.712,7.207392,1,13,1,27.25471,2.477701,36.43211,0,0,66.16452,0,0,0,1,2,4,74.36826,13.73189,0,,1000,1000,1,1,1.386294,6.907755,0,3.931826,7.600903,0,0,0,79.02408,8.820657,1.386294,4.192144,1 +10,1,50,1,1,129686,0,6771.712,24.282,1,13,1,39.26234,13.38489,0,0,0,52.64723,0,0,0,3,0,4,78.9,17.4,0,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,1,0,0,67.72769,8.820657,1.386294,3.963614,1 +10,1,50,1,2,129686,0,6771.712,25.282,1,13,1,95.80838,29.86391,0,0,0,125.6723,0,0,0,6,0,4,78.9,17.4,0,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,1,0,0,67.72769,8.820657,1.386294,4.833678,1 +10,1,50,1,3,129686,0,6771.712,26.282,1,13,1,164.668,36.86819,13.46383,0,0,215,0,0,0,13,0,4,78.9,17.4,0,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,1,0,0,67.72769,8.820657,1.386294,5.370638,1 +10,1,50,1,1,129687,0,6771.712,26.52704,0,14,1,0,0,0,0,0,0,0,0,0,0,0,4,76.8,0,0,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,78.59797,8.820657,1.386294,,0 +10,1,50,1,2,129687,0,6771.712,27.52704,0,14,1,0,0,0,0,0,0,0,0,0,0,0,4,76.8,0,0,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,78.59797,8.820657,1.386294,,0 +10,1,50,1,3,129687,0,6771.712,28.52704,0,14,1,0,0,0,0,0,0,0,0,0,0,0,4,76.8,0,0,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,78.59797,8.820657,1.386294,,0 +10,1,50,0,1,129693,0,4394.988,27.54552,0,10,1,0,0,0,0,0,0,0,0,0,0,0,4,78.9,4.3,0,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,1,0,61.37853,8.388448,1.386294,,0 +10,1,50,0,2,129693,0,4394.988,28.54552,0,10,1,5.390836,0,0,0,453.6604,459.0512,1,0,0,1,0,4,78.9,4.3,0,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,1,0,61.37853,8.388448,1.386294,6.129162,1 +10,1,50,0,3,129693,0,4394.988,29.54552,0,10,1,0,0,0,0,0,0,0,0,0,0,0,4,78.9,4.3,0,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,1,0,61.37853,8.388448,1.386294,,0 +10,1,50,0,4,129693,0,4394.988,30.54552,0,10,1,53.6691,0,6.836828,0,0,60.50592,0,0,0,2,0,4,78.9,4.3,0,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,1,0,61.37853,8.388448,1.386294,4.102741,1 +10,1,50,0,5,129693,0,4394.988,31.54552,0,10,1,0,0,0,0,0,0,0,0,0,0,0,4,78.9,4.3,0,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,1,0,61.37853,8.388448,1.386294,,0 +10,1,50,0,1,129694,0,4394.988,25.69199,1,11,1,0,0,0,0,0,0,0,0,0,0,0,4,74.7,17.4,0,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,1,0,0,68.15965,8.388448,1.386294,,0 +10,1,50,0,2,129694,0,4394.988,26.69199,1,11,1,0,0,7.719676,0,0,7.719676,0,0,0,0,0,4,74.7,17.4,0,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,1,0,0,68.15965,8.388448,1.386294,2.043772,1 +10,1,50,0,3,129694,0,4394.988,27.69199,1,11,1,0,5.208845,0,0,0,5.208845,0,0,0,0,0,4,74.7,17.4,0,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,1,0,0,68.15965,8.388448,1.386294,1.650358,1 +10,1,50,0,4,129694,0,4394.988,28.69199,1,11,1,68.82407,11.54512,0,0,0,80.36919,0,0,0,6,0,4,74.7,17.4,0,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,1,0,0,68.15965,8.388448,1.386294,4.386631,1 +10,1,50,0,5,129694,0,4394.988,29.69199,1,11,1,65.23551,0,0,0,0,65.23551,0,0,0,2,0,4,74.7,17.4,0,,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,1,0,0,68.15965,8.388448,1.386294,4.178004,1 +10,1,50,0,1,129695,0,4394.988,4.676249,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,.0327869,,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,78.88596,8.388448,1.386294,,0 +10,1,50,0,2,129695,0,4394.988,5.676249,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,.0327869,,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,78.88596,8.388448,1.386294,,0 +10,1,50,0,3,129695,0,4394.988,6.676249,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,.0327869,,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,78.88596,8.388448,1.386294,,0 +10,1,50,0,4,129695,0,4394.988,7.676249,0,11,1,5.925251,1.937101,0,0,0,7.862352,0,0,0,1,0,4,74.36826,13.73189,.0327869,,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,78.88596,8.388448,1.386294,2.062086,1 +10,1,50,0,5,129695,0,4394.988,8.67625,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,.0327869,,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,78.88596,8.388448,1.386294,,0 +2,1,100,0,1,129696,0,7392.06,21.99589,0,12,1,5.94884,0,0,0,0,5.94884,0,0,0,1,0,3,71.6,8.7,0,,599,599,0,0,1.098612,6.395262,1,0,0,1,0,0,68.6146,8.908297,1.098612,1.783196,1 +2,1,100,0,2,129696,0,7392.06,22.99589,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,71.6,8.7,0,,599,599,0,0,1.098612,6.395262,1,0,0,1,0,0,68.6146,8.908297,1.098612,,0 +2,1,100,0,3,129696,0,7392.06,23.99589,0,12,1,9.910803,0,0,0,0,9.910803,0,0,0,2,0,3,71.6,8.7,0,,599,599,0,0,1.098612,6.395262,1,0,0,1,0,0,68.6146,8.908297,1.098612,2.293625,1 +2,1,100,0,1,129697,0,7392.06,20.45996,1,11,1,5.94884,0,0,0,0,5.94884,0,0,0,1,0,3,31.6,17.4,1,,599,599,0,0,1.098612,6.395262,1,0,0,0,1,0,54.00756,8.908297,1.098612,1.783196,1 +2,1,100,0,2,129697,0,7392.06,21.45996,1,11,1,40.82743,11.5841,0,0,0,52.41154,0,0,0,0,0,3,31.6,17.4,1,,599,599,0,0,1.098612,6.395262,1,0,0,0,1,0,54.00756,8.908297,1.098612,3.959127,1 +2,1,100,0,3,129697,0,7392.06,22.45996,1,11,1,15.36174,15.66898,0,0,762.1853,793.2161,1,0,0,2,0,3,31.6,17.4,1,,599,599,0,0,1.098612,6.395262,1,0,0,0,1,0,54.00756,8.908297,1.098612,6.676095,1 +2,1,100,0,1,129698,0,7392.06,.991102,1,11,1,0,0,0,0,0,0,0,0,0,0,0,3,74.36826,13.73189,0,,599,599,1,1,1.098612,6.395262,1,0,0,1,0,0,69.01308,8.908297,1.098612,,0 +2,1,100,0,2,129698,0,7392.06,1.991102,1,11,1,0,0,0,0,0,0,0,0,0,0,0,3,74.36826,13.73189,0,,599,599,1,1,1.098612,6.395262,1,0,0,1,0,0,69.01308,8.908297,1.098612,,0 +2,1,100,0,3,129698,0,7392.06,2.991102,1,11,1,16.35283,0,0,0,0,16.35283,0,0,0,2,0,3,74.36826,13.73189,0,,599,599,1,1,1.098612,6.395262,1,0,0,1,0,0,69.01308,8.908297,1.098612,2.794401,1 +3,1,100,1,1,129699,0,4174.593,18.51061,0,9,1,0,0,0,0,0,0,0,0,0,0,0,4,73.7,17.4,0,,513,0,0,0,1.386294,0,1,0,0,1,0,0,63.95783,8.337011,1.386294,,0 +3,1,100,1,2,129699,0,4174.593,19.51061,0,9,1,0,0,0,0,0,0,0,0,0,0,0,4,73.7,17.4,0,,513,0,0,0,1.386294,0,1,0,0,1,0,0,63.95783,8.337011,1.386294,,0 +3,1,100,1,3,129699,0,4174.593,20.51061,0,9,1,0,0,0,0,0,0,0,0,0,0,0,4,73.7,17.4,0,,513,0,0,0,1.386294,0,1,0,0,1,0,0,63.95783,8.337011,1.386294,,0 +3,1,100,1,4,129699,0,4174.593,21.51061,0,9,1,0,0,0,0,0,0,0,0,0,0,0,4,73.7,17.4,0,,513,0,0,0,1.386294,0,1,0,0,1,0,0,63.95783,8.337011,1.386294,,0 +3,1,100,1,1,129700,0,4174.593,16.45448,1,9,1,0,0,0,0,0,0,0,0,0,0,0,4,61.1,8.7,0,,513,0,1,1,1.386294,0,1,0,0,1,0,0,60.48014,8.337011,1.386294,,0 +3,1,100,1,2,129700,0,4174.593,17.45448,1,9,1,0,0,0,0,0,0,0,0,0,0,0,4,61.1,8.7,0,,513,0,1,1,1.386294,0,1,0,0,1,0,0,60.48014,8.337011,1.386294,,0 +3,1,100,1,3,129700,0,4174.593,18.45448,1,9,1,0,0,0,0,0,0,0,0,0,0,0,4,61.1,8.7,0,,513,0,0,0,1.386294,0,1,0,0,1,0,0,60.48014,8.337011,1.386294,,0 +3,1,100,1,4,129700,0,4174.593,19.45448,1,9,1,0,0,0,0,0,0,0,0,0,0,0,4,61.1,8.7,0,,513,0,0,0,1.386294,0,1,0,0,1,0,0,60.48014,8.337011,1.386294,,0 +3,1,100,1,5,129700,0,4174.593,20.45448,1,9,1,0,0,0,0,0,0,0,0,0,0,0,3,61.1,8.7,0,,513,0,0,0,1.098612,0,1,0,0,1,0,0,60.48014,8.337011,1.098612,,0 +3,1,100,1,1,129701,0,4174.593,51.77823,1,9,1,0,0,0,0,0,0,0,0,0,0,0,4,42.1,34.8,0,,513,0,0,0,1.386294,0,1,0,0,0,1,0,48.03789,8.337011,1.386294,,0 +3,1,100,1,2,129701,0,4174.593,52.77823,1,9,1,0,0,0,0,0,0,0,0,0,0,0,4,42.1,34.8,0,,513,0,0,0,1.386294,0,1,0,0,0,1,0,48.03789,8.337011,1.386294,,0 +3,1,100,1,3,129701,0,4174.593,53.77823,1,9,1,0,0,0,0,0,0,0,0,0,0,0,4,42.1,34.8,0,,513,0,0,0,1.386294,0,1,0,0,0,1,0,48.03789,8.337011,1.386294,,0 +3,1,100,1,4,129701,0,4174.593,54.77823,1,9,1,0,0,0,0,0,0,0,0,0,0,0,4,42.1,34.8,0,,513,0,0,0,1.386294,0,1,0,0,0,1,0,48.03789,8.337011,1.386294,,0 +3,1,100,1,5,129701,0,4174.593,55.77823,1,9,1,0,0,0,0,0,0,0,0,0,0,0,3,42.1,34.8,0,,513,0,0,0,1.098612,0,1,0,0,0,1,0,48.03789,8.337011,1.098612,,0 +3,1,100,1,1,129702,0,4174.593,55.30732,0,9,1,0,0,0,0,0,0,0,0,0,0,0,4,96.8,4.3,0,,513,0,0,0,1.386294,0,1,0,0,0,0,0,72.67507,8.337011,1.386294,,0 +3,1,100,1,2,129702,0,4174.593,56.30732,0,9,1,0,0,0,0,0,0,0,0,0,0,0,4,96.8,4.3,0,,513,0,0,0,1.386294,0,1,0,0,0,0,0,72.67507,8.337011,1.386294,,0 +3,1,100,1,3,129702,0,4174.593,57.30732,0,9,1,0,0,0,0,0,0,0,0,0,0,0,4,96.8,4.3,0,,513,0,0,0,1.386294,0,1,0,0,0,0,0,72.67507,8.337011,1.386294,,0 +3,1,100,1,4,129702,0,4174.593,58.30732,0,9,1,0,0,0,0,0,0,0,0,0,0,0,4,96.8,4.3,0,,513,0,0,0,1.386294,0,1,0,0,0,0,0,72.67507,8.337011,1.386294,,0 +3,1,100,1,5,129702,0,4174.593,59.30732,0,9,1,0,0,0,0,0,0,0,0,0,0,0,3,96.8,4.3,0,,513,0,0,0,1.098612,0,1,0,0,0,0,0,72.67507,8.337011,1.098612,,0 +4,1,100,0,1,129703,0,9542.002,21.23751,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,87.4,13,0,,1000,1000,0,0,1.098612,6.907755,1,0,0,0,0,0,72.72614,9.163564,1.098612,,0 +4,1,100,0,1,129704,0,9542.002,23.34292,0,14,1,0,0,0,0,0,0,0,0,0,0,0,3,76.8,13,0,,1000,1000,0,0,1.098612,6.907755,1,0,0,0,0,0,72.09547,9.163564,1.098612,,0 +4,1,100,0,1,129705,0,9542.002,.6652977,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,74.36826,13.73189,0,,1000,1000,1,1,1.098612,6.907755,1,0,0,1,0,0,69.41489,9.163564,1.098612,,0 +5,1,25,1,1,129706,0,13354.84,54.72964,1,13,1,191.8917,231.4515,71.64188,0,0,494.9851,0,0,0,7,1,3,86.3,17.4,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,66.29183,9.499709,1.098612,6.204528,1 +5,1,25,1,2,129706,0,13354.84,55.72964,1,13,1,313.865,226.3963,18.50844,0,0,558.7697,0,0,0,5,21,3,86.3,17.4,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,66.29183,9.499709,1.098612,6.325737,1 +5,1,25,1,3,129706,0,13354.84,56.72964,1,13,1,183.3499,280.3023,50.54509,0,0,514.1972,0,0,0,4,25,3,86.3,17.4,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,66.29183,9.499709,1.098612,6.242607,1 +5,1,25,1,1,129707,0,13354.84,53.22108,0,18,1,67.22189,3.099346,0,0,0,70.32124,0,0,0,2,7,3,71.6,26.1,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,76.58466,9.499709,1.098612,4.253074,1 +5,1,25,1,2,129707,0,13354.84,54.22108,0,18,1,158.9548,27.13119,22.75449,0,0,208.8405,0,0,0,2,11,3,71.6,26.1,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,76.58466,9.499709,1.098612,5.341571,1 +5,1,25,1,3,129707,0,13354.84,55.22108,0,18,1,220.2428,30.00496,34.1774,0,0,284.4252,0,0,0,15,15,3,71.6,26.1,0,,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,76.58466,9.499709,1.098612,5.65047,1 +5,1,25,1,1,129708,0,13354.84,14.42574,0,13,1,0,0,0,0,0,0,0,0,0,0,0,3,63.2,4.3,0,,1000,1000,1,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,80.99551,9.499709,1.098612,,0 +5,1,25,1,2,129708,0,13354.84,15.42574,0,13,1,22.319,10.37017,13.08655,0,0,45.77572,0,0,0,2,1,3,63.2,4.3,0,,1000,1000,1,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,80.99551,9.499709,1.098612,3.823754,1 +5,1,25,1,3,129708,0,13354.84,16.42574,0,13,1,15.85728,0,25.46085,0,0,41.31814,0,0,0,1,1,3,63.2,4.3,0,,1000,1000,1,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,80.99551,9.499709,1.098612,3.721302,1 +3,1,100,1,1,129711,0,6417.494,20.31759,1,13,1,39.85723,7.311124,41.12433,0,0,88.29269,0,0,0,3,0,2,86.3,8.7,0,,549,549,0,0,.6931472,6.308098,1,0,0,0,0,0,74.39403,8.766939,.6931472,4.480657,1 +3,1,100,1,2,129711,0,6417.494,21.31759,1,13,1,12.52041,14.8503,12.1448,0,0,39.51551,0,0,0,1,0,2,86.3,8.7,0,,549,549,0,0,.6931472,6.308098,1,0,0,0,0,0,74.39403,8.766939,.6931472,3.676693,1 +3,1,100,1,3,129711,0,6417.494,22.31759,1,13,1,39.39544,2.106045,1.555996,0,0,43.05748,0,0,0,3,0,2,86.3,8.7,0,,549,549,0,0,.6931472,6.308098,1,0,0,0,0,0,74.39403,8.766939,.6931472,3.762536,1 +3,1,100,1,1,129712,0,6417.494,20.5859,0,12,1,33.3135,0,33.56931,0,0,66.8828,0,0,0,4,0,2,78.9,21.7,0,,549,549,0,0,.6931472,6.308098,1,0,0,0,0,0,76.28976,8.766939,.6931472,4.202942,1 +3,1,100,1,2,129712,0,6417.494,21.5859,0,12,1,14.69788,9.031029,0,0,0,23.72891,0,0,0,3,0,2,78.9,21.7,0,,549,549,0,0,.6931472,6.308098,1,0,0,0,0,0,76.28976,8.766939,.6931472,3.166694,1 +3,1,100,1,3,129712,0,6417.494,22.5859,0,12,1,0,2.725471,0,0,0,2.725471,0,0,0,0,0,2,78.9,21.7,0,,549,549,0,0,.6931472,6.308098,1,0,0,0,0,0,76.28976,8.766939,.6931472,1.002641,1 +4,1,100,0,1,129720,0,20.47146,57.06229,1,12,1,62.42638,174.9234,0,0,0,237.3498,0,0,0,7,0,1,73.7,8.7,1,,1000,1000,0,0,0,6.907755,1,0,0,0,1,0,55.02307,3.066725,0,5.469535,1 +4,1,100,0,2,129720,0,20.47146,58.06229,1,12,1,112.1294,84.61456,42.04852,0,0,238.7924,0,0,0,8,0,1,73.7,8.7,1,,1000,1000,0,0,0,6.907755,1,0,0,0,1,0,55.02307,3.066725,0,5.475595,1 +4,1,100,0,3,129720,0,20.47146,59.06229,1,12,1,69.28747,128.0393,0,0,5207.415,5404.742,3,0,0,9,0,1,73.7,8.7,1,,1000,1000,0,0,0,6.907755,1,0,0,0,1,0,55.02307,3.066725,0,8.595032,1 +4,1,100,0,4,129720,0,20.47146,60.06229,1,12,1,59.93619,105.9572,41.16226,0,0,207.0556,0,0,0,8,0,1,73.7,8.7,1,,1000,1000,0,0,0,6.907755,1,0,0,0,1,0,55.02307,3.066725,0,5.332987,1 +4,1,100,0,5,129720,0,20.47146,61.06229,1,12,1,73.3639,125.173,0,0,0,198.5369,0,0,0,7,0,1,73.7,8.7,1,,1000,1000,0,0,0,6.907755,1,0,0,0,1,0,55.02307,3.066725,0,5.290975,1 +11,1,0,0,1,129721,0,14764.89,53.44832,1,9,1,52.23082,15.77038,31.70732,0,0,99.7085,0,0,0,1,1,1,87.5,13.73189,0,,0,0,0,0,0,0,0,0,0,1,0,0,69.5894,9.600075,0,4.602251,1 +11,1,0,0,2,129721,0,14764.89,54.44832,1,9,1,281.3609,10.74034,0,0,403.3043,695.4056,1,0,0,1,0,1,87.5,13.73189,0,,0,0,0,0,0,0,0,0,0,1,0,0,69.5894,9.600075,0,6.544495,1 +11,1,0,0,3,129721,0,14764.89,55.44832,1,9,1,53.96432,51.11496,43.49851,0,0,148.5778,0,0,0,5,2,1,87.5,13.73189,0,,0,0,0,0,0,0,0,0,0,1,0,0,69.5894,9.600075,0,5.001109,1 +11,1,0,0,1,129723,0,4022.953,24.11225,1,12,1,149.4646,48.34622,0,0,0,197.8108,0,0,0,5,1,1,78.8,13.73189,0,,0,72,0,0,0,4.276666,0,0,0,0,0,0,79.25463,8.30002,0,5.287311,1 +11,1,0,0,2,129723,0,4022.953,25.11225,1,12,1,56.34186,31.72564,18.20359,0,0,106.2711,0,0,0,3,1,1,78.8,13.73189,0,,0,72,0,0,0,4.276666,0,0,0,0,0,0,79.25463,8.30002,0,4.665993,1 +11,1,0,0,3,129723,0,4022.953,26.11225,1,12,1,20.81269,47.72052,0,0,1215.03,1283.563,1,0,0,2,1,1,78.8,13.73189,0,,0,72,0,0,0,4.276666,0,0,0,0,0,0,79.25463,8.30002,0,7.157395,1 +3,1,100,0,1,129724,1,9542.002,50.97057,0,12,1,7.656066,0,35.33569,0,0,42.99176,0,0,0,0,1,1,75,13.73189,0,,0,0,0,0,0,0,1,0,0,0,1,0,69.46405,9.163564,0,3.761009,1 +3,1,100,0,2,129724,1,9542.002,51.97057,0,12,1,52.04313,0,0,0,0,52.04313,0,0,0,1,0,1,75,13.73189,0,,0,0,0,0,0,0,1,0,0,0,1,0,69.46405,9.163564,0,3.952073,1 +3,1,100,0,3,129724,1,9542.002,52.97057,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,75,13.73189,0,,0,0,0,0,0,0,1,0,0,0,1,0,69.46405,9.163564,0,,0 +3,1,100,0,4,129724,1,9542.002,53.97057,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,75,13.73189,0,,0,0,0,0,0,0,1,0,0,0,1,0,69.46405,9.163564,0,,0 +3,1,100,0,5,129724,1,9542.002,54.97057,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,75,13.73189,0,,0,0,0,0,0,0,1,0,0,0,1,0,69.46405,9.163564,0,,0 +11,1,0,0,1,129727,1,9055.211,.3367556,0,12,1,32.3741,6.90048,0,0,0,39.27458,0,0,0,1,2,8,74.36826,13.73189,1,,0,0,1,0,2.079442,0,0,0,0,0,1,0,79.11517,9.111206,2.079442,3.670578,1 +11,1,0,0,2,129727,1,9055.211,1.336756,0,12,1,4.381161,0,0,0,0,4.381161,0,0,0,1,0,8,74.36826,13.73189,1,,0,0,1,0,2.079442,0,0,0,0,0,1,0,79.11517,9.111206,2.079442,1.477314,1 +11,1,0,0,3,129727,1,9055.211,2.336756,0,12,1,16.20948,0,0,0,0,16.20948,0,0,0,1,0,8,74.36826,13.73189,1,,0,0,1,0,2.079442,0,0,0,0,0,1,0,79.11517,9.111206,2.079442,2.785596,1 +11,1,0,0,4,129727,1,9055.211,3.336756,0,12,1,82.1208,14.52743,0,0,0,96.64822,0,0,0,7,0,8,74.36826,13.73189,1,,0,0,1,0,2.079442,0,0,0,0,0,1,0,79.11517,9.111206,2.079442,4.571078,1 +11,1,0,0,5,129727,1,9055.211,4.336756,0,12,1,6.347863,2.179433,0,0,0,8.527296,0,0,0,1,0,8,74.36826,13.73189,1,,0,0,1,0,2.079442,0,0,0,0,0,1,0,79.11517,9.111206,2.079442,2.143272,1 +6,1,25,1,1,129730,0,9542.002,.5201917,0,12,1,59.33451,6.448763,0,0,0,65.78327,0,0,0,1,0,6,74.36826,13.73189,0,,1000,1000,1,0,1.791759,6.907755,0,3.258096,8.294049,1,0,0,69.2646,9.163564,1.791759,4.186366,1 +6,1,25,1,2,129730,0,9542.002,1.520192,0,12,1,98.62534,2.12938,0,0,0,100.7547,0,0,0,3,0,6,74.36826,13.73189,0,,1000,1000,1,0,1.791759,6.907755,0,3.258096,8.294049,1,0,0,69.2646,9.163564,1.791759,4.612689,1 +6,1,25,1,3,129730,0,9542.002,2.520192,0,12,1,50.95823,2.432432,0,0,300.5651,353.9558,1,0,0,4,0,6,74.36826,13.73189,0,,1000,1000,1,0,1.791759,6.907755,0,3.258096,8.294049,1,0,0,69.2646,9.163564,1.791759,5.869172,1 +6,1,25,1,4,129730,0,9542.002,3.520192,0,12,1,14.58523,0,0,0,0,14.58523,0,0,0,1,0,6,74.36826,13.73189,0,,1000,1000,1,0,1.791759,6.907755,0,3.258096,8.294049,1,0,0,69.2646,9.163564,1.791759,2.68001,1 +6,1,25,1,5,129730,0,9542.002,4.520192,0,12,1,45.85244,0,0,0,0,45.85244,0,0,0,3,0,6,74.36826,13.73189,0,,1000,1000,1,0,1.791759,6.907755,0,3.258096,8.294049,1,0,0,69.2646,9.163564,1.791759,3.825428,1 +7,1,25,1,1,129732,1,1176.179,.4079398,0,5,1,0,0,0,0,0,0,0,0,0,0,0,6,74.36826,13.73189,0,,340,340,1,0,1.791759,5.828946,0,3.258096,7.21524,0,1,0,76.96879,7.070876,1.791759,,0 +7,1,25,1,2,129732,1,1176.179,1.40794,0,5,1,0,0,0,0,0,0,0,0,0,0,0,6,74.36826,13.73189,0,,340,340,1,0,1.791759,5.828946,0,3.258096,7.21524,0,1,0,76.96879,7.070876,1.791759,,0 +9,1,50,0,1,129733,0,9542.002,.3477071,1,10,1,20.82094,0,0,0,0,20.82094,0,0,0,3,0,5,74.36826,13.73189,0,,799,799,1,1,1.609438,6.683361,0,3.931826,7.376508,0,0,0,78.49355,9.163564,1.609438,3.035959,1 +9,1,50,0,2,129733,0,9542.002,1.347707,1,10,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,799,799,1,1,1.609438,6.683361,0,3.931826,7.376508,0,0,0,78.49355,9.163564,1.609438,,0 +9,1,50,0,3,129733,0,9542.002,2.347707,1,10,1,0,0,0,0,0,0,0,0,0,0,0,5,74.36826,13.73189,0,,799,799,1,1,1.609438,6.683361,0,3.931826,7.376508,0,0,0,78.49355,9.163564,1.609438,,0 +11,1,0,0,1,129734,0,7262.407,.2628337,1,18,1,64.19317,6.990577,0,0,0,71.18375,0,0,0,8,0,3,74.36826,13.73189,0,,0,0,1,1,1.098612,0,0,0,0,0,0,0,79.03451,8.890604,1.098612,4.265265,1 +11,1,0,0,2,129734,0,7262.407,1.262834,1,18,1,80.6469,14.57682,0,0,0,95.22372,0,0,0,9,0,3,74.36826,13.73189,0,,0,0,1,1,1.098612,0,0,0,0,0,0,0,79.03451,8.890604,1.098612,4.556229,1 +11,1,0,0,3,129734,0,7262.407,2.262834,1,18,1,23.58722,14.57494,0,0,0,38.16216,0,0,0,3,0,3,74.36826,13.73189,0,,0,0,1,1,1.098612,0,0,0,0,0,0,0,79.03451,8.890604,1.098612,3.641845,1 +11,1,0,0,4,129734,0,7262.407,3.262834,1,18,1,18.68733,14.7402,0,0,0,33.42753,0,0,0,2,0,3,74.36826,13.73189,0,,0,0,1,1,1.098612,0,0,0,0,0,0,0,79.03451,8.890604,1.098612,3.50938,1 +11,1,0,0,5,129734,0,7262.407,4.262834,1,18,1,45.01876,11.32138,0,0,0,56.34014,0,0,0,6,0,3,74.36826,13.73189,0,,0,0,1,1,1.098612,0,0,0,0,0,0,0,79.03451,8.890604,1.098612,4.031407,1 +9,1,50,0,1,129736,0,84.36725,20.80493,0,12.32507,1,19.43463,0,33.23911,0,0,52.67373,0,0,0,2,0,3,86.3,13.73189,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,78.6664,4.446962,1.098612,3.964117,1 +9,1,50,0,2,129736,0,84.36725,21.80493,0,12.32507,1,56.87331,3.22911,0,0,0,60.10242,0,0,0,4,0,3,86.3,13.73189,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,78.6664,4.446962,1.098612,4.09605,1 +9,1,50,0,3,129736,0,84.36725,22.80493,0,12.32507,1,45.70024,.972973,30.46683,0,0,77.14005,0,0,0,3,1,3,86.3,13.73189,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,78.6664,4.446962,1.098612,4.345623,1 +9,1,50,0,4,129736,0,84.36725,23.80493,0,12.32507,1,12.76208,0,26.67274,0,0,39.43482,0,0,0,1,0,3,86.3,13.73189,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,78.6664,4.446962,1.098612,3.674649,1 +9,1,50,0,5,129736,0,84.36725,24.80493,0,12.32507,1,0,0,0,0,0,0,0,0,0,0,0,3,86.3,13.73189,0,,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,78.6664,4.446962,1.098612,,0 +1,1,0,1,1,129738,0,10474.57,.1451061,0,11,1,10.88638,2.314099,0,0,429.655,442.8554,1,0,0,1,0,8,74.36826,13.73189,1,,450,0,1,0,2.079442,0,1,0,0,0,0,0,79.9105,9.256801,2.079442,6.093244,1 +1,1,0,1,2,129738,0,10474.57,1.145106,0,11,1,0,0,0,0,0,0,0,0,0,0,0,8,74.36826,13.73189,1,,450,0,1,0,2.079442,0,1,0,0,0,0,0,79.9105,9.256801,2.079442,,0 +1,1,0,1,3,129738,0,10474.57,2.145106,0,11,1,13.37958,0,0,0,71.35778,84.73737,0,0,0,3,0,8,74.36826,13.73189,1,,450,0,1,0,2.079442,0,1,0,0,0,0,0,79.9105,9.256801,2.079442,4.439557,1 +1,1,0,1,4,129738,0,10474.57,3.145106,0,11,1,55.98899,16.12207,0,0,0,72.11106,0,0,0,9,0,8,74.36826,13.73189,1,,450,0,1,0,2.079442,0,1,0,0,0,0,0,79.9105,9.256801,2.079442,4.278207,1 +1,1,0,1,5,129738,0,10474.57,4.145106,0,11,1,7.57257,2.141355,0,0,0,9.713925,0,0,0,1,0,8,74.36826,13.73189,1,,450,0,1,0,2.079442,0,1,0,0,0,0,0,79.9105,9.256801,2.079442,2.273561,1 +3,1,100,0,1,129740,0,9542.002,.1670089,0,10,1,0,0,0,0,0,0,0,0,0,0,0,6,74.36826,13.73189,0,,283,283,1,0,1.791759,5.645447,1,0,0,0,0,0,76.84648,9.163564,1.791759,,0 +3,1,100,0,2,129740,0,9542.002,1.167009,0,10,1,0,0,0,0,0,0,0,0,0,0,0,6,74.36826,13.73189,0,,283,283,1,0,1.791759,5.645447,1,0,0,0,0,0,76.84648,9.163564,1.791759,,0 +3,1,100,0,3,129740,0,9542.002,2.167009,0,10,1,0,0,0,0,0,0,0,0,0,0,0,6,74.36826,13.73189,0,,283,283,1,0,1.791759,5.645447,1,0,0,0,0,0,76.84648,9.163564,1.791759,,0 +10,1,50,0,1,129741,0,7948.511,.1560575,0,13,1,97.46761,54.91755,0,0,0,152.3852,0,0,0,16,0,3,74.36826,13.73189,0,,1000,1000,1,0,1.098612,6.907755,0,3.931826,7.600903,1,0,0,71.92097,8.980865,1.098612,5.026411,1 +10,1,50,0,2,129741,0,7948.511,1.156057,0,13,1,44.74393,20.91105,0,0,0,65.65498,0,0,0,6,0,3,74.36826,13.73189,0,,1000,1000,1,0,1.098612,6.907755,0,3.931826,7.600903,1,0,0,71.92097,8.980865,1.098612,4.184413,1 +10,1,50,0,3,129741,0,7948.511,2.156058,0,13,1,43.73464,23.56757,0,0,271.7445,339.0467,1,0,0,9,0,3,74.36826,13.73189,0,,1000,1000,1,0,1.098612,6.907755,0,3.931826,7.600903,1,0,0,71.92097,8.980865,1.098612,5.826138,1 +6,1,25,1,1,129742,0,7717.122,.2956879,0,16,1,29.97602,0,0,0,0,29.97602,0,0,0,3,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,82.4164,8.951326,1.386294,3.400398,1 +6,1,25,1,2,129742,0,7717.122,1.295688,0,16,1,22.45345,0,0,0,0,22.45345,0,0,0,2,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,82.4164,8.951326,1.386294,3.111444,1 +6,1,25,1,3,129742,0,7717.122,2.295688,0,16,1,4.987531,0,0,0,0,4.987531,0,0,0,1,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,82.4164,8.951326,1.386294,1.606941,1 +6,1,25,1,4,129742,0,7717.122,3.295688,0,16,1,7.376671,0,0,0,0,7.376671,0,0,0,1,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,82.4164,8.951326,1.386294,1.998322,1 +6,1,25,1,5,129742,0,7717.122,4.295688,0,16,1,43.90605,0,0,0,0,43.90605,0,0,0,1,0,4,74.36826,13.73189,0,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,82.4164,8.951326,1.386294,3.782052,1 +11,1,0,0,1,129743,1,9542.002,.0903491,1,13,1,135.5216,6.18705,0,0,1714.658,1856.367,3,0,0,9,6,8,74.36826,13.73189,.0327869,,0,325,1,1,2.079442,5.783825,0,0,0,0,0,0,77.93793,9.163564,2.079442,7.526377,1 +11,1,0,0,2,129743,1,9542.002,1.090349,1,13,1,174.2881,18.34611,0,0,2025.767,2218.401,2,0,0,23,1,8,74.36826,13.73189,.0327869,,0,325,1,1,2.079442,5.783825,0,0,0,0,0,0,77.93793,9.163564,2.079442,7.704542,1 +11,1,0,0,3,129743,1,9542.002,2.090349,1,13,1,183.9152,10.09975,0,0,654.5885,848.6035,1,0,0,41,0,9,74.36826,13.73189,.0327869,,0,325,1,1,2.197225,5.783825,0,0,0,0,0,0,77.93793,9.163564,2.197225,6.743592,1 +11,1,0,0,4,129743,1,9542.002,3.090349,1,13,1,81.92715,0,0,0,1009.106,1091.033,1,1,0,20,0,10,74.36826,13.73189,.0327869,,0,325,1,1,2.302585,5.783825,0,0,0,0,0,0,77.93793,9.163564,2.302585,6.99488,1 +11,1,0,0,5,129743,1,9542.002,4.090349,1,13,1,122.7888,16.29285,0,0,924.3419,1063.424,1,0,0,21,0,10,74.36826,13.73189,.0327869,,0,325,1,1,2.302585,5.783825,0,0,0,0,0,0,77.93793,9.163564,2.302585,6.969249,1 +10,1,50,0,1,129744,0,4394.988,.5475702,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,.0327869,,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,78.57345,8.388448,1.386294,,0 +10,1,50,0,2,129744,0,4394.988,1.54757,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,.0327869,,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,78.57345,8.388448,1.386294,,0 +10,1,50,0,3,129744,0,4394.988,2.54757,0,11,1,13.75921,5.208845,0,0,0,18.96806,0,0,0,1,0,4,74.36826,13.73189,.0327869,,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,78.57345,8.388448,1.386294,2.942756,1 +10,1,50,0,4,129744,0,4394.988,3.54757,0,11,1,38.74202,9.380128,0,0,0,48.12215,0,0,0,4,0,4,74.36826,13.73189,.0327869,,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,78.57345,8.388448,1.386294,3.873743,1 +10,1,50,0,5,129744,0,4394.988,4.54757,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,.0327869,,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,78.57345,8.388448,1.386294,,0 +11,1,0,0,2,129746,0,5583.747,.5017111,1,11,1,94.71365,33.18282,0,0,354.3447,482.2412,1,0,0,15,0,6,74.36826,13.73189,.0327869,,0,458,1,1,1.791759,6.126869,0,0,0,0,0,0,78.6601,8.627794,1.791759,6.178444,1 +11,1,0,0,3,129746,0,5583.747,1.501711,1,11,1,39.17629,6.805625,0,0,0,45.98192,0,0,0,7,0,6,74.36826,13.73189,.0327869,,0,458,1,1,1.791759,6.126869,0,0,0,0,0,0,78.6601,8.627794,1.791759,3.828248,1 +11,1,0,0,4,129746,0,5583.747,2.501711,1,11,1,23.64395,20.48679,0,0,0,44.13074,0,0,0,5,0,6,74.36826,13.73189,.0327869,,0,458,1,1,1.791759,6.126869,0,0,0,0,0,0,78.6601,8.627794,1.791759,3.787157,1 +11,1,0,0,5,129746,0,5583.747,3.501711,1,11,1,0,3.913229,0,0,0,3.913229,0,0,0,0,0,6,74.36826,13.73189,.0327869,,0,458,1,1,1.791759,6.126869,0,0,0,0,0,0,78.6601,8.627794,1.791759,1.364363,1 +1,1,0,0,2,129747,0,9542.002,.5126626,0,16,1,39.89218,2.792453,0,0,0,42.68464,0,0,0,5,0,4,74.36826,13.73189,.0327869,,450,145,1,0,1.386294,4.976734,1,0,0,0,0,0,80.89316,9.163564,1.386294,3.753839,1 +1,1,0,0,3,129747,0,9542.002,1.512663,0,16,1,60.44226,17.37101,0,0,0,77.81327,0,0,0,8,0,4,74.36826,13.73189,.0327869,,450,145,1,0,1.386294,4.976734,1,0,0,0,0,0,80.89316,9.163564,1.386294,4.354312,1 +4,1,100,0,2,129748,0,9723.945,.5017111,0,12,1,158.8679,20,0,0,0,178.8679,0,0,0,13,0,3,74.36826,13.73189,.0327869,,1000,1000,1,0,1.098612,6.907755,1,0,0,0,0,0,82.17735,9.182449,1.098612,5.186648,1 +4,1,100,0,3,129748,0,9723.945,1.501711,0,12,1,41.76904,16.69779,0,0,0,58.46683,0,0,0,7,0,4,74.36826,13.73189,.0327869,,1000,1000,1,0,1.386294,6.907755,1,0,0,0,0,0,82.17735,9.182449,1.386294,4.06846,1 +4,1,100,0,4,129748,0,9723.945,2.501711,0,12,1,30.99362,9.52598,0,0,0,40.5196,0,0,0,5,0,4,74.36826,13.73189,.0327869,,1000,1000,1,0,1.386294,6.907755,1,0,0,0,0,0,82.17735,9.182449,1.386294,3.701786,1 +4,1,100,0,5,129748,0,9723.945,3.501711,0,12,1,42.51772,14.65194,0,0,0,57.16965,0,0,0,8,0,4,74.36826,13.73189,.0327869,,1000,1000,1,0,1.386294,6.907755,1,0,0,0,0,0,82.17735,9.182449,1.386294,4.046023,1 +2,1,100,0,2,129750,0,8172.457,.4934976,0,12,1,38.64997,7.174741,0,0,0,45.82471,0,0,0,5,0,8,74.36826,13.73189,.0327869,,0,0,1,0,2.079442,0,1,0,0,0,0,0,81.06033,9.008647,2.079442,3.824824,1 +2,1,100,0,3,129750,0,8172.457,1.493498,0,12,1,4.955401,0,0,0,0,4.955401,0,0,0,1,0,8,74.36826,13.73189,.0327869,,0,0,1,0,2.079442,0,1,0,0,0,0,0,81.06033,9.008647,2.079442,1.600478,1 +2,1,100,0,4,129750,0,8172.457,2.493498,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,74.36826,13.73189,.0327869,,0,0,1,0,2.079442,0,1,0,0,0,0,0,81.06033,9.008647,2.079442,,0 +2,1,100,0,5,129750,0,8172.457,3.493498,0,12,1,10.93816,0,0,0,0,10.93816,0,0,0,2,0,9,74.36826,13.73189,.0327869,,0,0,1,0,2.197225,0,1,0,0,0,0,0,81.06033,9.008647,2.197225,2.392257,1 +11,1,0,0,2,129756,1,1,.8795345,0,14,1,51.56938,0,0,0,0,51.56938,0,0,0,1,0,3,74.36826,13.73189,.0327869,,0,0,1,0,1.098612,0,0,0,0,0,0,0,73.85006,.6931472,1.098612,3.942928,1 +11,1,0,0,3,129756,1,1,1.879535,0,14,1,30.13561,0,0,0,0,30.13561,0,0,0,2,0,3,74.36826,13.73189,.0327869,,0,0,1,0,1.098612,0,0,0,0,0,0,0,73.85006,.6931472,1.098612,3.405708,1 +8,1,50,0,2,129773,0,1728.908,.247091,1,11,1,106.9679,5.764834,0,2.721829,0,112.7327,0,0,1,13,0,4,74.36826,13.73189,.0327869,,163,450,1,1,1.386294,6.109248,0,3.931826,5.786897,0,0,0,78.02865,7.455823,1.386294,4.72502,1 +8,1,50,0,3,129773,0,1728.908,1.247091,1,11,1,44.59861,8.002974,0,0,0,52.60159,0,0,0,6,0,4,74.36826,13.73189,.0327869,,163,450,1,1,1.386294,6.109248,0,3.931826,5.786897,0,0,0,78.02865,7.455823,1.386294,3.962746,1 +8,1,50,0,4,129773,0,1728.908,2.247091,1,11,1,26.61771,10.94539,0,0,0,37.5631,0,0,0,3,0,4,74.36826,13.73189,.0327869,,163,450,1,1,1.386294,6.109248,0,3.931826,5.786897,0,0,0,78.02865,7.455823,1.386294,3.626022,1 +8,1,50,0,5,129773,0,1728.908,3.247091,1,11,1,10.51746,2.103492,0,0,0,12.62095,0,0,0,0,0,4,74.36826,13.73189,.0327869,,163,450,1,1,1.386294,6.109248,0,3.931826,5.786897,0,0,0,78.02865,7.455823,1.386294,2.535358,1 +7,1,25,0,3,129793,0,8393.3,.8610541,0,13,1,34.68781,5.450942,0,0,0,40.13875,0,0,0,4,0,4,74.36826,13.73189,.0327869,,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,81.74842,9.035308,1.386294,3.692342,1 +11,1,0,0,3,129803,1,9542.002,.9869952,1,13,1,130.4239,3.117207,0,0,2036.983,2170.524,3,0,0,13,0,9,74.36826,13.73189,.0327869,,0,325,1,1,2.197225,5.783825,0,0,0,0,0,0,77.93793,9.163564,2.197225,7.682724,1 +11,1,0,0,4,129803,1,9542.002,1.986995,1,13,1,31.44306,3.250346,0,0,0,34.69341,0,0,0,2,0,10,74.36826,13.73189,.0327869,,0,325,1,1,2.302585,5.783825,0,0,0,0,0,0,77.93793,9.163564,2.302585,3.54655,1 +11,1,0,0,5,129803,1,9542.002,2.986995,1,13,1,8.887008,0,0,0,0,8.887008,0,0,0,1,0,10,74.36826,13.73189,.0327869,,0,325,1,1,2.302585,5.783825,0,0,0,0,0,0,77.93793,9.163564,2.302585,2.18459,1 +11,1,0,0,2,129811,1,1004.963,.4880219,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,.0327869,,0,0,1,1,1.386294,0,0,0,0,0,0,0,73.3017,6.9137,1.386294,,0 +11,1,0,0,3,129811,1,1004.963,1.488022,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,.0327869,,0,0,1,1,1.386294,0,0,0,0,0,0,0,73.3017,6.9137,1.386294,,0 +9,1,50,0,2,129812,0,11526.05,.6769336,0,12,1,81.59912,15.03286,8.214677,0,0,104.8467,0,0,0,10,0,6,74.36826,13.73189,.0327869,,1000,1000,1,0,1.791759,6.907755,0,3.931826,7.600903,0,0,0,81.83923,9.352452,1.791759,4.652499,1 +9,1,50,0,3,129812,0,11526.05,1.676934,0,12,1,63.71571,.8728179,0,0,0,64.58853,0,0,0,5,0,6,74.36826,13.73189,.0327869,,1000,1000,1,0,1.791759,6.907755,0,3.931826,7.600903,0,0,0,81.83923,9.352452,1.791759,4.168037,1 +9,1,50,0,4,129812,0,11526.05,2.676934,0,12,1,16.59751,4.550484,0,0,0,21.14799,0,0,0,2,0,6,74.36826,13.73189,.0327869,,1000,1000,1,0,1.791759,6.907755,0,3.931826,7.600903,0,0,0,81.83923,9.352452,1.791759,3.051545,1 +9,1,50,0,5,129812,0,11526.05,3.676934,0,12,1,17.77402,0,0,0,0,17.77402,0,0,0,2,0,6,74.36826,13.73189,.0327869,,1000,1000,1,0,1.791759,6.907755,0,3.931826,7.600903,0,0,0,81.83923,9.352452,1.791759,2.877738,1 +6,1,25,0,2,129813,0,7893.92,.8877481,0,12,1,51.47864,16.54436,0,0,0,68.023,0,0,0,8,0,3,74.36826,13.73189,.0327869,,1000,1000,1,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,81.94308,8.973975,1.098612,4.219846,1 +6,1,25,0,3,129813,0,7893.92,1.887748,0,12,1,23.4414,25.13217,0,0,0,48.57357,0,0,0,4,0,3,74.36826,13.73189,.0327869,,1000,1000,1,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,81.94308,8.973975,1.098612,3.88308,1 +3,1,100,0,2,129814,0,6588.709,.8795345,1,16,1,26.41509,0,0,0,0,26.41509,0,0,0,4,0,3,74.36826,13.73189,.0327869,,900,900,1,1,1.098612,6.802395,1,0,0,0,0,0,80.37918,8.793264,1.098612,3.273936,1 +3,1,100,0,3,129814,0,6588.709,1.879535,1,16,1,14.74201,10.95823,0,0,0,25.70024,0,0,0,2,0,3,74.36826,13.73189,.0327869,,900,900,1,1,1.098612,6.802395,1,0,0,0,0,0,80.37918,8.793264,1.098612,3.2465,1 +11,1,0,0,2,129815,0,7975.186,.8384668,1,12,1,45.70485,12.27423,0,0,0,57.97908,0,0,0,6,0,5,74.36826,13.73189,.0327869,,0,323,1,1,1.609438,5.777652,0,0,0,0,0,0,80.7588,8.984216,1.609438,4.060082,1 +11,1,0,0,3,129815,0,7975.186,1.838467,1,12,1,23.10397,5.273732,0,0,0,28.3777,0,0,0,3,0,5,74.36826,13.73189,.0327869,,0,323,1,1,1.609438,5.777652,0,0,0,0,0,0,80.7588,8.984216,1.609438,3.345604,1 +11,1,0,0,4,129815,0,7975.186,2.838467,1,12,1,11.59017,2.012054,0,0,0,13.60223,0,0,0,2,0,5,74.36826,13.73189,.0327869,,0,323,1,1,1.609438,5.777652,0,0,0,0,0,0,80.7588,8.984216,1.609438,2.610233,1 +11,1,0,0,5,129815,0,7975.186,3.838467,1,12,1,49.55338,10.6678,0,0,0,60.22118,0,0,0,5,1,5,74.36826,13.73189,.0327869,,0,323,1,1,1.609438,5.777652,0,0,0,0,0,0,80.7588,8.984216,1.609438,4.098024,1 +11,1,0,0,2,129816,0,8689.826,.6632444,1,17,1,79.13472,23.78423,0,0,0,102.9189,0,0,0,9,1,3,74.36826,13.73189,.0327869,,0,0,1,1,1.098612,0,0,0,0,0,0,0,82.75417,9.070024,1.098612,4.633942,1 +11,1,0,0,3,129816,0,8689.826,1.663244,1,17,1,49.37656,5.820449,6.254364,0,0,61.45137,0,0,0,7,0,3,74.36826,13.73189,.0327869,,0,0,1,1,1.098612,0,0,0,0,0,0,0,82.75417,9.070024,1.098612,4.118246,1 +6,1,25,0,2,129817,0,17027.92,.7015743,1,15,1,77.84431,28.03484,0,0,0,105.8792,0,0,0,9,0,4,74.36826,13.73189,.0327869,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,0,0,0,81.92996,9.742668,1.386294,4.662298,1 +6,1,25,0,3,129817,0,17027.92,1.701574,1,15,1,88.70168,35.85233,0,0,0,124.554,0,0,0,22,0,4,74.36826,13.73189,.0327869,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,0,0,0,81.92996,9.742668,1.386294,4.824739,1 +6,1,25,0,2,129818,0,5303.97,.5756331,1,14,1,39.64758,16.16189,0,0,0,55.80947,0,0,0,5,0,3,74.36826,13.73189,.0327869,,1000,1000,1,1,1.098612,6.907755,0,3.258096,8.294049,0,0,0,80.03653,8.5764,1.098612,4.021944,1 +6,1,25,0,3,129818,0,5303.97,1.575633,1,14,1,16.07232,10.77348,0,0,0,26.84581,0,0,0,2,0,3,74.36826,13.73189,.0327869,,1000,1000,1,1,1.098612,6.907755,0,3.258096,8.294049,0,0,0,80.03653,8.5764,1.098612,3.29011,1 +6,1,25,0,4,129818,0,5303.97,2.575633,1,14,1,216.319,17.16273,0,0,0,233.4817,0,0,0,8,0,3,74.36826,13.73189,.0327869,,1000,1000,1,1,1.098612,6.907755,0,3.258096,8.294049,0,0,0,80.03653,8.5764,1.098612,5.453104,1 +6,1,25,0,5,129818,0,5303.97,3.575633,1,14,1,7.656316,8.906848,0,0,0,16.56316,0,0,0,1,0,3,74.36826,13.73189,.0327869,,1000,1000,1,1,1.098612,6.907755,0,3.258096,8.294049,0,0,0,80.03653,8.5764,1.098612,2.807181,1 +11,1,0,0,2,129819,0,8508.685,.9069131,0,15,1,20.48518,10.48518,0,0,0,30.97035,0,0,0,2,0,4,74.36826,13.73189,.0327869,,0,60,1,0,1.386294,4.094345,0,0,0,0,0,0,81.83858,9.04896,1.386294,3.43303,1 +11,1,0,0,3,129819,0,8508.685,1.906913,0,15,1,19.41032,1.174447,0,0,0,20.58477,0,0,0,3,0,4,74.36826,13.73189,.0327869,,0,60,1,0,1.386294,4.094345,0,0,0,0,0,0,81.83858,9.04896,1.386294,3.024551,1 +11,1,0,0,2,129820,0,1518.61,.9370294,1,11,1,44.35926,15.7448,0,0,0,60.10405,0,0,0,7,0,3,74.36826,13.73189,.0327869,,0,0,1,1,1.098612,0,0,0,0,0,0,0,76.39096,7.32621,1.098612,4.096077,1 +11,1,0,0,3,129820,0,1518.61,1.937029,1,11,1,11.47132,4.114713,0,0,0,15.58603,0,0,1,1,0,3,74.36826,13.73189,.0327869,,0,0,1,1,1.098612,0,0,0,0,0,0,0,76.39096,7.32621,1.098612,2.746375,1 +11,1,0,0,4,129820,0,1518.61,2.937029,1,11,1,14.2923,10.4426,0,0,0,24.7349,0,0,0,3,0,3,74.36826,13.73189,.0327869,,0,0,1,1,1.098612,0,0,0,0,0,0,0,76.39096,7.32621,1.098612,3.208215,1 +11,1,0,0,5,129820,0,1518.61,3.937029,1,11,1,11.84934,3.470165,0,0,0,15.31951,0,0,0,2,0,4,74.36826,13.73189,.0327869,,0,0,1,1,1.386294,0,0,0,0,0,0,0,76.39096,7.32621,1.386294,2.729127,1 +2,1,100,0,2,129821,0,9138.338,.8329911,0,13,1,26.95418,1.428571,0,0,0,28.38275,0,0,0,3,0,4,74.36826,13.73189,.0327869,,890,890,1,0,1.386294,6.791222,1,0,0,0,0,0,81.7118,9.120343,1.386294,3.345782,1 +2,1,100,0,3,129821,0,9138.338,1.832991,0,13,1,9.336609,.982801,0,0,0,10.31941,0,0,0,1,0,4,74.36826,13.73189,.0327869,,890,890,1,0,1.386294,6.791222,1,0,0,0,0,0,81.7118,9.120343,1.386294,2.334027,1 +2,1,100,0,4,129821,0,9138.338,2.832991,0,13,1,15.04102,4.922516,0,0,0,19.96354,0,0,0,2,0,4,74.36826,13.73189,.0327869,,890,890,1,0,1.386294,6.791222,1,0,0,0,0,0,81.7118,9.120343,1.386294,2.993907,1 +2,1,100,0,5,129821,0,9138.338,3.832991,0,13,1,325.7857,7.419758,0,0,0,333.2055,0,0,0,6,56,4,74.36826,13.73189,.0327869,,890,890,1,0,1.386294,6.791222,1,0,0,0,0,0,81.7118,9.120343,1.386294,5.808759,1 +11,1,0,0,3,129842,0,22318.24,.7296372,1,12,1,117.9551,27.73067,0,0,0,145.6858,0,0,0,13,0,9,74.36826,13.73189,.0327869,,0,0,1,1,2.197225,0,0,0,0,0,0,0,81.69742,10.0132,2.197225,4.981452,1 +9,1,50,0,3,129846,0,17723.95,.8391513,1,12,1,32.70565,6.471754,0,0,0,39.1774,0,0,0,4,0,7,74.36826,13.73189,.0327869,,1000,1000,1,1,1.94591,6.907755,0,3.931826,7.600903,0,0,0,82.52234,9.782728,1.94591,3.6681,1 +5,1,25,0,3,129847,1,10909.43,.7926078,0,12,1,24.93766,0,0,0,0,24.93766,0,0,0,5,0,2,74.36826,13.73189,.0327869,,399,399,1,0,.6931472,5.988961,0,3.258096,7.375256,0,0,0,77.02913,9.297475,.6931472,3.216379,1 +5,1,25,0,4,129847,1,10909.43,1.792608,0,12,1,40.91747,2.807745,0,0,0,43.72522,0,0,0,5,0,2,74.36826,13.73189,.0327869,,399,399,1,0,.6931472,5.988961,0,3.258096,7.375256,0,0,0,77.02913,9.297475,.6931472,3.777925,1 +5,1,25,0,5,129847,1,10909.43,2.792608,0,12,1,7.194244,0,0,0,0,7.194244,0,0,0,1,0,2,74.36826,13.73189,.0327869,,399,399,1,0,.6931472,5.988961,0,3.258096,7.375256,0,0,0,77.02913,9.297475,.6931472,1.973281,1 +4,1,100,0,3,129851,0,5982.63,.715948,1,13,1,15.97052,2.599509,0,0,0,18.57002,0,0,0,3,0,3,74.36826,13.73189,.0327869,,1000,1000,1,1,1.098612,6.907755,1,0,0,0,0,0,80.58455,8.696783,1.098612,2.921549,1 +4,1,100,0,4,129851,0,5982.63,1.715948,1,13,1,1.709207,9.913401,0,0,0,11.62261,0,0,0,0,0,4,74.36826,13.73189,.0327869,,1000,1000,1,1,1.386294,6.907755,1,0,0,0,0,0,80.58455,8.696783,1.386294,2.452952,1 +4,1,100,0,5,129851,0,5982.63,2.715948,1,13,1,0,6.673614,0,0,0,6.673614,0,0,0,0,0,4,74.36826,13.73189,.0327869,,1000,1000,1,1,1.386294,6.907755,1,0,0,0,0,0,80.58455,8.696783,1.386294,1.898162,1 +11,1,0,0,3,129854,0,7755.583,.6447639,1,11,1,77.64128,8.594595,0,0,0,86.23587,0,0,0,6,0,2,74.36826,13.73189,.0327869,,0,204,1,1,.6931472,5.31812,0,0,0,0,0,0,80.04872,8.956297,.6931472,4.457086,1 +11,1,0,0,4,129854,0,7755.583,1.644764,1,11,1,23.24521,2.274385,0,0,0,25.5196,0,0,0,1,0,2,74.36826,13.73189,.0327869,,0,204,1,1,.6931472,5.31812,0,0,0,0,0,0,80.04872,8.956297,.6931472,3.239447,1 +11,1,0,0,5,129854,0,7755.583,2.644764,1,11,1,57.25302,0,0,0,0,57.25302,0,0,0,2,0,2,74.36826,13.73189,.0327869,,0,204,1,1,.6931472,5.31812,0,0,0,0,0,0,80.04872,8.956297,.6931472,4.047481,1 +11,1,0,0,3,129856,1,9542.002,.9568788,0,8,1,70.3667,7.081269,0,0,0,77.44797,0,0,0,6,0,4,74.36826,13.73189,.0327869,,0,0,1,0,1.386294,0,0,0,0,0,0,0,75.50523,9.163564,1.386294,4.349607,1 +11,1,0,0,4,129856,1,9542.002,1.956879,0,8,1,19.2749,11.00046,0,0,0,30.27536,0,0,0,4,0,4,74.36826,13.73189,.0327869,,0,0,1,0,1.386294,0,0,0,0,0,0,0,75.50523,9.163564,1.386294,3.410334,1 +11,1,0,0,5,129856,1,9542.002,2.956879,0,8,1,114.8507,10.58898,0,0,0,125.4396,0,0,0,7,0,5,74.36826,13.73189,.0327869,,0,0,1,0,1.609438,0,0,0,0,0,0,0,75.50523,9.163564,1.609438,4.831825,1 +10,1,50,0,3,129859,0,8723.945,.4339494,0,16,1,83.29177,18.89775,19.54613,0,0,121.7357,0,0,0,7,0,2,74.36826,13.73189,.0327869,,200,200,1,0,.6931472,5.298317,0,3.931826,5.991465,0,0,0,78.04851,9.073941,.6931472,4.801852,1 +10,1,50,0,4,129859,0,8723.945,1.433949,0,16,1,18.90272,21.1941,33.72983,0,0,73.82664,0,0,0,2,0,2,74.36826,13.73189,.0327869,,200,200,1,0,.6931472,5.298317,0,3.931826,5.991465,0,0,0,78.04851,9.073941,.6931472,4.30172,1 +10,1,50,0,5,129859,0,8723.945,2.433949,0,16,1,21.15954,8.556919,28.73889,0,0,58.45535,0,0,0,3,0,2,74.36826,13.73189,.0327869,,200,200,1,0,.6931472,5.298317,0,3.931826,5.991465,0,0,0,78.04851,9.073941,.6931472,4.068263,1 +9,1,50,0,3,129866,0,12300.87,.4941821,1,11,1,60.93366,7.361179,0,0,0,68.29484,0,0,0,7,0,7,74.36826,13.73189,.0327869,,1000,1000,1,1,1.94591,6.907755,0,3.931826,7.600903,0,0,0,81.108,9.417506,1.94591,4.223834,1 +4,1,100,0,3,129867,0,8857.32,.3983573,1,12,1,30.42394,6.503741,0,0,0,36.92768,0,0,0,4,0,6,74.36826,13.73189,.0327869,,1000,1000,1,1,1.791759,6.907755,1,0,0,0,0,0,80.58329,9.089112,1.791759,3.608961,1 +4,1,100,0,4,129867,0,8857.32,1.398357,1,12,1,29.04564,9.460581,0,0,0,38.50623,0,0,0,1,3,6,74.36826,13.73189,.0327869,,1000,1000,1,1,1.791759,6.907755,1,0,0,0,0,0,80.58329,9.089112,1.791759,3.65082,1 +4,1,100,0,5,129867,0,8857.32,2.398357,1,12,1,36.9234,6.068557,0,0,0,42.99196,0,0,0,0,6,6,74.36826,13.73189,.0327869,,1000,1000,1,1,1.791759,6.907755,1,0,0,0,0,0,80.58329,9.089112,1.791759,3.761013,1 +6,1,25,0,3,129868,0,9743.176,.4640657,1,12,1,127.1499,10.00491,0,0,0,137.1548,0,0,0,11,1,5,74.36826,13.73189,.0327869,,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,0,0,0,81.11051,9.184425,1.609438,4.92111,1 +11,1,0,0,3,129870,0,6108.39,.3080082,1,12,1,85.28678,5.23192,0,0,0,90.5187,0,0,0,11,0,3,74.36826,13.73189,.0327869,,0,146,1,1,1.098612,4.983607,0,0,0,0,0,0,80.16436,8.717582,1.098612,4.505557,1 +4,1,100,0,3,129871,0,4392.68,.5407255,0,11,1,8.845209,3.528255,0,0,0,12.37346,0,0,0,1,0,3,74.36826,13.73189,.0327869,,75,75,1,0,1.098612,4.317488,1,0,0,0,0,0,75.84013,8.387922,1.098612,2.515554,1 +4,1,100,0,4,129871,0,4392.68,1.540726,0,11,1,0,0,0,0,0,0,0,0,0,0,0,3,74.36826,13.73189,.0327869,,75,75,1,0,1.098612,4.317488,1,0,0,0,0,0,75.84013,8.387922,1.098612,,0 +4,1,100,0,5,129871,0,4392.68,2.540725,0,11,1,0,0,0,0,0,0,0,0,0,0,0,3,74.36826,13.73189,.0327869,,75,75,1,0,1.098612,4.317488,1,0,0,0,0,0,75.84013,8.387922,1.098612,,0 +4,1,100,0,3,129872,0,9723.945,.3408624,0,12,1,117.4447,22.62899,10.01474,0,0,150.0885,0,0,0,18,0,4,74.36826,13.73189,.0327869,,1000,1000,1,0,1.386294,6.907755,1,0,0,0,0,0,82.17735,9.182449,1.386294,5.011225,1 +4,1,100,0,4,129872,0,9723.945,1.340862,0,12,1,32.81677,1.98268,0,0,0,34.79945,0,0,0,5,0,4,74.36826,13.73189,.0327869,,1000,1000,1,0,1.386294,6.907755,1,0,0,0,0,0,82.17735,9.182449,1.386294,3.549602,1 +4,1,100,0,5,129872,0,9723.945,2.340863,0,12,1,18.34097,0,0,0,0,18.34097,0,0,0,2,0,4,74.36826,13.73189,.0327869,,1000,1000,1,0,1.386294,6.907755,1,0,0,0,0,0,82.17735,9.182449,1.386294,2.909138,1 +11,1,0,0,4,129889,0,9542.002,.779603,0,12,1,262.7165,26.75934,0,0,0,289.4758,0,0,0,12,0,3,74.36826,13.73189,.0327869,,0,0,1,0,1.098612,0,0,0,0,0,0,0,82.56407,9.163564,1.098612,5.668072,1 +11,1,0,0,5,129889,0,9542.002,1.779603,0,12,1,47.93664,0,0,0,0,47.93664,0,0,0,8,0,3,74.36826,13.73189,.0327869,,0,0,1,0,1.098612,0,0,0,0,0,0,0,82.56407,9.163564,1.098612,3.86988,1 +1,1,0,0,3,129892,0,8401.985,.3819302,1,16,1,81.57248,10.7027,0,0,930.2949,1022.57,1,0,0,8,0,4,74.36826,13.73189,.0327869,,450,450,1,1,1.386294,6.109248,1,0,0,0,0,0,80.21985,9.036343,1.386294,6.930074,1 +11,1,0,0,4,129905,0,5075.062,.4291581,0,13,1,163.4855,7.833103,0,0,0,171.3186,0,0,0,15,0,3,74.36826,13.73189,.0327869,,0,0,1,0,1.098612,0,0,0,0,0,0,0,79.02892,8.532291,1.098612,5.143525,1 +11,1,0,0,5,129905,0,5075.062,1.429158,0,13,1,30.46974,13.96107,0,0,0,44.43081,0,0,0,6,0,3,74.36826,13.73189,.0327869,,0,0,1,0,1.098612,0,0,0,0,0,0,0,79.02892,8.532291,1.098612,3.793933,1 +8,1,50,0,4,129908,0,8419.976,.8480493,1,12,1,50.25357,6.860304,0,0,0,57.11388,0,0,0,6,0,5,74.36826,13.73189,.0327869,,599,599,1,1,1.609438,6.395262,0,3.931826,7.088409,0,0,0,80.42316,9.038481,1.609438,4.045047,1 +8,1,50,0,5,129908,0,8419.976,1.848049,1,12,1,28.77698,8.451121,0,0,0,37.2281,0,0,0,6,0,5,74.36826,13.73189,.0327869,,599,599,1,1,1.609438,6.395262,0,3.931826,7.088409,0,0,0,80.42316,9.038481,1.609438,3.617064,1 +11,1,0,0,4,129910,1,9542.002,.3880903,0,13,1,59.01337,0,0,0,0,59.01337,0,0,0,4,0,10,74.36826,13.73189,.0327869,,0,325,1,0,2.302585,5.783825,0,0,0,0,0,0,78.4519,9.163564,2.302585,4.077764,1 +11,1,0,0,5,129910,1,9542.002,1.38809,0,13,1,25.81464,0,0,0,0,25.81464,0,0,0,3,0,10,74.36826,13.73189,.0327869,,0,325,1,0,2.302585,5.783825,0,0,0,0,0,0,78.4519,9.163564,2.302585,3.250942,1 +11,1,0,0,4,129914,0,6586.849,.3004791,0,12,1,66.39005,26.83725,0,0,0,93.22729,0,0,0,8,0,2,74.36826,13.73189,.0327869,,0,0,1,0,.6931472,0,0,0,0,0,0,0,79.42117,8.792982,.6931472,4.53504,1 +11,1,0,0,5,129914,0,6586.849,1.300479,0,12,1,47.04613,2.323318,0,0,0,49.36945,0,0,0,6,0,2,74.36826,13.73189,.0327869,,0,0,1,0,.6931472,0,0,0,0,0,0,0,79.42117,8.792982,.6931472,3.899332,1 +11,1,0,0,4,129932,0,10726.43,.4236824,1,13,1,269.1602,21.43185,0,0,215.1675,505.7595,1,0,0,20,0,4,74.36826,13.73189,.0327869,,0,101,1,1,1.386294,4.61512,0,0,0,0,0,0,80.68107,9.280559,1.386294,6.226061,1 +11,1,0,0,5,129932,0,10726.43,1.423682,1,13,1,179.0913,33.68953,0,0,0,212.7808,0,0,0,14,0,4,74.36826,13.73189,.0327869,,0,101,1,1,1.386294,4.61512,0,0,0,0,0,0,80.68107,9.280559,1.386294,5.360263,1 +4,1,100,0,4,129933,0,5982.63,.2046544,0,13,1,29.96809,5.542388,0,0,0,35.51048,0,0,0,2,0,4,74.36826,13.73189,.0327869,,1000,1000,1,0,1.386294,6.907755,1,0,0,0,0,0,81.09853,8.696783,1.386294,3.569828,1 +4,1,100,0,5,129933,0,5982.63,1.204654,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,.0327869,,1000,1000,1,0,1.386294,6.907755,1,0,0,0,0,0,81.09853,8.696783,1.386294,,0 +2,1,100,0,4,129937,0,5361.663,.2758385,1,11,1,0,0,0,0,0,0,0,0,0,0,0,4,74.36826,13.73189,.0327869,,409,0,1,1,1.386294,0,1,0,0,0,0,0,78.56108,8.587215,1.386294,,0 +2,1,100,0,5,129937,0,5361.663,1.275838,1,11,1,85.06136,1.269573,0,0,0,86.33093,0,0,0,5,0,4,74.36826,13.73189,.0327869,,409,0,1,1,1.386294,0,1,0,0,0,0,0,78.56108,8.587215,1.386294,4.458188,1 +11,1,0,0,5,129942,0,1518.61,.8596851,1,11,1,44.01185,6.191282,0,0,0,50.20313,0,0,0,7,0,4,74.36826,13.73189,.0327869,,0,0,1,1,1.386294,0,0,0,0,0,0,0,76.39096,7.32621,1.386294,3.916077,1 +7,1,25,0,5,129946,0,246.8983,.9253936,1,12,1,77.71989,9.028762,0,0,0,86.74864,0,0,0,6,0,3,74.36826,13.73189,.0327869,,0,0,1,1,1.098612,0,0,3.258096,0,0,0,0,76.69736,5.513019,1.098612,4.463015,1 +1,1,0,0,3,129951,0,1,.45859,0,9,1,12.28501,4.422605,0,0,0,16.70762,0,0,0,2,0,2,74.36826,13.73189,.0327869,,150,0,1,0,.6931472,0,1,0,0,0,0,0,78.54263,.6931472,.6931472,2.815865,1 +11,1,0,0,5,129974,1,9542.002,.4544832,1,8,1,36.60076,5.115692,0,0,0,41.71645,0,0,0,7,0,5,74.36826,13.73189,.0327869,,0,0,1,1,1.609438,0,0,0,0,0,0,0,74.99126,9.163564,1.609438,3.730896,1 +11,1,0,0,5,129978,0,9542.002,.2217659,1,15,1,38.93356,29.64452,0,0,0,68.57808,0,0,0,5,0,4,74.36826,13.73189,.0327869,,0,258,1,1,1.386294,5.552959,0,0,0,0,0,0,80.92299,9.163564,1.386294,4.227973,1 +2,1,100,0,5,129979,0,4534.119,.3832991,1,16,1,0,2.634431,0,0,0,2.634431,0,0,0,0,0,2,74.36826,13.73189,.0327869,,345,345,1,1,.6931472,5.843544,1,0,0,0,0,0,80.91808,8.419606,.6931472,.9686673,1 +2,1,100,0,5,129984,0,8172.457,.4435318,1,12,1,11.35886,3.188894,0,0,0,14.54775,0,0,0,2,0,9,74.36826,13.73189,.0327869,,0,0,1,1,2.197225,0,1,0,0,0,0,0,80.54636,9.008647,2.197225,2.677436,1 +7,1,25,0,5,129987,0,4188.585,.2491444,1,12,1,33.76407,0,0,0,0,33.76407,0,0,0,4,0,2,74.36826,13.73189,.0327869,,600,600,1,1,.6931472,6.39693,0,3.258096,7.783224,0,0,0,78.79649,8.340357,.6931472,3.519397,1 +1,1,0,0,5,129989,0,11965.26,.0657084,1,15,1,45.85612,6.705932,0,0,0,52.56205,0,0,0,7,0,5,74.36826,13.73189,.0327869,,450,120,1,1,1.609438,4.787492,1,0,0,0,0,0,81.90672,9.389847,1.609438,3.961994,1 +4,1,100,0,5,129992,0,6055.831,.0848734,0,12,1,104.7397,0,0,0,0,104.7397,0,0,0,13,0,2,74.36826,13.73189,.0327869,,374,374,1,0,.6931472,5.924256,1,0,0,0,0,0,78.3275,8.708942,.6931472,4.651479,1 +13,2,0,0,1,225019,0,6242.815,23.78645,0,12,1,82.6833,0,36.72387,0,0,119.4072,0,0,0,2,0,2,49.5,13.8,0,59.1,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,59.1,8.739347,.6931472,4.782539,1 +13,2,0,0,2,225019,0,6242.815,24.78645,0,12,1,5.255614,0,0,0,0,5.255614,0,0,0,1,0,3,49.5,13.8,0,59.1,300,300,0,0,1.098612,5.703783,1,4.564348,5.755076,0,0,0,59.1,8.739347,1.098612,1.659297,1 +13,2,0,0,3,225019,0,6242.815,25.78645,0,12,1,19.75417,0,0,0,0,19.75417,0,0,0,0,1,3,49.5,13.8,0,59.1,300,300,0,0,1.098612,5.703783,1,4.564348,5.755076,0,0,0,59.1,8.739347,1.098612,2.983365,1 +15,2,95,1,1,225020,0,4848.094,25.6564,0,16,1,0,0,0,0,0,0,0,0,0,0,0,2,75,6.9,0,55.7,550,550,0,0,.6931472,6.309918,0,4.564348,6.361212,1,0,0,55.7,8.486547,.6931472,,0 +15,2,95,1,2,225020,0,4848.094,26.6564,0,16,1,0,0,0,0,0,0,0,0,0,0,0,2,75,6.9,0,55.7,550,550,0,0,.6931472,6.309918,0,4.564348,6.361212,1,0,0,55.7,8.486547,.6931472,,0 +15,2,95,1,3,225020,0,4848.094,27.6564,0,16,1,30.60072,0,0,0,0,30.60072,0,0,0,3,0,2,75,6.9,0,55.7,550,550,0,0,.6931472,6.309918,0,4.564348,6.361212,1,0,0,55.7,8.486547,.6931472,3.421024,1 +15,2,95,1,4,225020,0,4848.094,28.6564,0,16,1,127.9694,0,0,0,0,127.9694,0,0,0,3,0,2,75,6.9,0,55.7,550,550,0,0,.6931472,6.309918,0,4.564348,6.361212,1,0,0,55.7,8.486547,.6931472,4.851791,1 +15,2,95,1,5,225020,0,4848.094,29.6564,0,16,1,0,0,0,0,0,0,0,0,0,0,0,2,75,6.9,0,55.7,550,550,0,0,.6931472,6.309918,0,4.564348,6.361212,1,0,0,55.7,8.486547,.6931472,,0 +15,2,95,1,1,225021,0,4848.094,23.3347,1,16,1,19.80728,6.183084,0,0,0,25.99036,0,0,0,1,1,2,79.3,10.3,0,80.7,550,550,0,0,.6931472,6.309918,0,4.564348,6.361212,1,0,0,80.7,8.486547,.6931472,3.257726,1 +15,2,95,1,2,225021,0,4848.094,24.3347,1,16,1,41.48365,32.75744,0,0,0,74.2411,0,0,0,3,1,2,79.3,10.3,0,80.7,550,550,0,0,.6931472,6.309918,0,4.564348,6.361212,1,0,0,80.7,8.486547,.6931472,4.307318,1 +15,2,95,1,3,225021,0,4848.094,25.3347,1,16,1,6.775068,.9530262,0,0,0,7.728094,0,0,0,0,0,2,79.3,10.3,0,80.7,550,550,0,0,.6931472,6.309918,0,4.564348,6.361212,1,0,0,80.7,8.486547,.6931472,2.044862,1 +15,2,95,1,4,225021,0,4848.094,26.3347,1,16,1,0,0,0,0,0,0,0,0,0,0,0,2,79.3,10.3,0,80.7,550,550,0,0,.6931472,6.309918,0,4.564348,6.361212,1,0,0,80.7,8.486547,.6931472,,0 +15,2,95,1,5,225021,0,4848.094,27.3347,1,16,1,0,0,0,0,0,0,0,0,0,0,0,2,79.3,10.3,0,80.7,550,550,0,0,.6931472,6.309918,0,4.564348,6.361212,1,0,0,80.7,8.486547,.6931472,,0 +11,2,0,1,1,225022,0,9751.906,36.1807,0,13,1,75.57211,0,0,0,0,75.57211,0,0,0,1,6,2,85.6,10.3,0,68.2,0,179.04,0,0,.6931472,5.187609,0,0,0,1,0,0,68.2,9.185321,.6931472,4.325088,1 +11,2,0,1,2,225022,0,9751.906,37.1807,0,13,1,34.90063,0,0,0,0,34.90063,0,0,0,0,6,2,85.6,10.3,0,68.2,0,179.04,0,0,.6931472,5.187609,0,0,0,1,0,0,68.2,9.185321,.6931472,3.552505,1 +11,2,0,1,3,225022,0,9751.906,38.1807,0,13,1,104.7844,0,35.30099,0,0,140.0854,0,0,0,2,7,2,85.6,10.3,0,68.2,0,179.04,0,0,.6931472,5.187609,0,0,0,1,0,0,68.2,9.185321,.6931472,4.942252,1 +11,2,0,1,1,225023,0,9751.906,28.04381,1,12,1,101.8095,15.65194,0,0,0,117.4614,0,0,0,2,7,2,80.9,27.6,0,70.5,0,179.04,0,0,.6931472,5.187609,0,0,0,1,0,0,70.5,9.185321,.6931472,4.76611,1 +11,2,0,1,2,225023,0,9751.906,29.04381,1,12,1,104.096,0,0,0,0,104.096,0,0,0,3,4,2,80.9,27.6,0,70.5,0,179.04,0,0,.6931472,5.187609,0,0,0,1,0,0,70.5,9.185321,.6931472,4.645313,1 +11,2,0,1,3,225023,0,9751.906,30.04381,1,12,1,404.1779,17.99191,0,0,0,422.1698,0,0,0,6,13,2,80.9,27.6,0,70.5,0,179.04,0,0,.6931472,5.187609,0,0,0,1,0,0,70.5,9.185321,.6931472,6.045408,1 +13,2,0,1,1,225032,0,8263.93,7.603012,1,12,1,260.3504,18.10243,0,0,56.95418,335.407,1,0,0,3,1,5,85,11.84267,0,74.1,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,74.1,9.019776,1.609438,5.815345,1 +13,2,0,1,2,225032,0,8263.93,8.603012,1,12,1,24.32432,0,0,0,0,24.32432,0,0,0,1,1,5,85,11.84267,0,74.1,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,74.1,9.019776,1.609438,3.191477,1 +13,2,0,1,3,225032,0,8263.93,9.603012,1,12,1,33.27256,10.82954,0,0,0,44.1021,0,0,0,2,1,5,85,11.84267,0,74.1,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,74.1,9.019776,1.609438,3.786507,1 +13,2,0,1,1,225033,0,8263.93,30.30801,0,9,1,13.47709,0,31.36927,0,0,44.84636,0,0,0,0,1,5,85.6,6.9,0,72.7,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,72.7,9.019776,1.609438,3.803242,1 +13,2,0,1,2,225033,0,8263.93,31.30801,0,9,1,0,0,0,0,0,0,0,0,0,0,0,5,85.6,6.9,0,72.7,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,72.7,9.019776,1.609438,,0 +13,2,0,1,3,225033,0,8263.93,32.30801,0,9,1,85.5743,20.10483,0,0,0,105.6791,0,0,0,9,1,5,85.6,6.9,0,72.7,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,72.7,9.019776,1.609438,4.660408,1 +13,2,0,1,1,225034,0,8263.93,.8596851,1,12,1,157.0081,34.58221,0,0,0,191.5903,0,0,0,19,0,5,81.35272,11.84267,0,74.1,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,74.1,9.019776,1.609438,5.255359,1 +13,2,0,1,2,225034,0,8263.93,1.859685,1,12,1,69.04177,35.71008,0,0,0,104.7518,0,0,0,6,0,5,81.35272,11.84267,0,74.1,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,74.1,9.019776,1.609438,4.651594,1 +13,2,0,1,3,225034,0,8263.93,2.859685,1,12,1,70.64722,39.45305,0,0,283.2726,393.3728,1,0,0,7,0,5,81.35272,11.84267,0,74.1,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,74.1,9.019776,1.609438,5.974758,1 +13,2,0,1,1,225035,0,8263.93,9.500342,0,12,1,13.47709,0,25.83288,0,0,39.30997,0,0,0,0,1,5,85,11.84267,0,74.1,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,74.1,9.019776,1.609438,3.671478,1 +13,2,0,1,2,225035,0,8263.93,10.50034,0,12,1,116.4619,0,14.74201,0,0,131.2039,0,0,0,5,1,5,85,11.84267,0,74.1,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,74.1,9.019776,1.609438,4.876753,1 +13,2,0,1,3,225035,0,8263.93,11.50034,0,12,1,105.0592,22.79398,28.08569,0,0,155.9389,0,0,0,6,1,5,85,11.84267,0,74.1,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,74.1,9.019776,1.609438,5.049464,1 +13,2,0,1,1,225036,0,8263.93,31.04996,1,12,1,72.938,3.374663,34.63073,0,0,110.9434,0,0,0,4,2,5,65.4,24.1,0,43.2,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,43.2,9.019776,1.609438,4.70902,1 +13,2,0,1,2,225036,0,8263.93,32.04996,1,12,1,52.33415,16.69287,0,0,1866.167,1935.194,2,0,0,5,0,5,65.4,24.1,0,43.2,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,43.2,9.019776,1.609438,7.567963,1 +13,2,0,1,3,225036,0,8263.93,33.04996,1,12,1,39.6536,0,0,0,0,39.6536,0,0,0,2,2,5,65.4,24.1,0,43.2,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,43.2,9.019776,1.609438,3.680182,1 +7,2,25,1,1,225040,0,8288.563,54.02875,1,10,1,14.04056,15.39262,0,0,0,29.43318,0,0,0,2,0,2,92,20.7,0,84.1,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,1,0,0,84.1,9.022753,.6931472,3.382123,1 +7,2,25,1,2,225040,0,8288.563,55.02875,1,10,1,16.72241,0,35.57573,0,0,52.29814,0,0,0,0,1,2,92,20.7,0,84.1,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,1,0,0,84.1,9.022753,.6931472,3.956961,1 +7,2,25,1,3,225040,0,8288.563,56.02875,1,10,1,72.10272,2.589991,307.2871,0,0,381.9798,0,0,0,2,0,2,92,20.7,0,84.1,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,1,0,0,84.1,9.022753,.6931472,5.945368,1 +7,2,25,1,4,225040,0,8288.563,57.02875,1,10,1,12.76426,0,35.81173,0,0,48.57599,0,0,0,0,1,2,92,20.7,0,84.1,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,1,0,0,84.1,9.022753,.6931472,3.883129,1 +7,2,25,1,5,225040,0,8288.563,58.02875,1,10,1,18.12908,0,0,0,0,18.12908,0,0,0,2,0,2,92,20.7,0,84.1,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,1,0,0,84.1,9.022753,.6931472,2.897517,1 +7,2,25,1,1,225041,0,8288.563,59.32101,0,12,1,18.72075,4.550182,0,0,0,23.27093,0,0,0,1,0,2,93.1,6.9,0,81.8,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,0,81.8,9.022753,.6931472,3.147205,1 +7,2,25,1,2,225041,0,8288.563,60.32101,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,93.1,6.9,0,81.8,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,0,81.8,9.022753,.6931472,,0 +7,2,25,1,3,225041,0,8288.563,61.32101,0,12,1,13.16945,0,49.50834,0,0,62.67779,0,0,0,0,1,2,93.1,6.9,0,81.8,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,0,81.8,9.022753,.6931472,4.138007,1 +7,2,25,1,4,225041,0,8288.563,62.32101,0,12,1,7.179896,5.540487,0,0,0,12.72038,0,0,0,1,0,2,93.1,6.9,0,81.8,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,0,81.8,9.022753,.6931472,2.543206,1 +7,2,25,1,5,225041,0,8288.563,63.32101,0,12,1,85.71429,2.751994,0,0,0,88.46628,0,0,0,3,0,2,93.1,6.9,0,81.8,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,0,81.8,9.022753,.6931472,4.482622,1 +11,2,0,0,1,225060,0,9883.284,24.21903,0,12,1,37.64289,0,0,0,0,37.64289,0,0,0,1,0,2,73.4,6.9,0,67,0,0,0,0,.6931472,0,0,0,0,1,0,0,67,9.198701,.6931472,3.628144,1 +11,2,0,0,2,225060,0,9883.284,25.21903,0,12,1,60.20813,9.395441,0,0,0,69.60357,0,0,0,3,0,2,73.4,6.9,0,67,0,0,0,0,.6931472,0,0,0,0,1,0,0,67,9.198701,.6931472,4.242816,1 +11,2,0,0,3,225060,0,9883.284,26.21903,0,12,1,16.06241,0,42.02386,0,0,58.08628,0,0,0,0,1,3,73.4,6.9,0,67,0,0,0,0,1.098612,0,0,0,0,1,0,0,67,9.198701,1.098612,4.061929,1 +11,2,0,0,1,225061,0,9883.284,21.54141,1,12,1,128.4703,9.49374,0,0,70.76756,208.7316,1,1,0,6,3,2,71.3,6.9,0,64.8,0,0,0,0,.6931472,0,0,0,0,0,0,0,64.8,9.198701,.6931472,5.341049,1 +11,2,0,0,2,225061,0,9883.284,22.54141,1,12,1,24.0337,55.37165,2.953419,0,715.6343,797.993,1,0,0,1,0,2,71.3,6.9,0,64.8,0,0,0,0,.6931472,0,0,0,0,0,0,0,64.8,9.198701,.6931472,6.6821,1 +11,2,0,0,3,225061,0,9883.284,23.54141,1,12,1,0,15.14915,0,0,0,15.14915,0,0,0,0,0,3,71.3,6.9,0,64.8,0,0,0,0,1.098612,0,0,0,0,0,0,0,64.8,9.198701,1.098612,2.717944,1 +14,2,95,1,1,225062,0,5547.801,26.0616,0,18,1,0,0,0,0,0,0,0,0,0,0,0,2,89.9,0,0,97.7,205.1,81.93,0,0,.6931472,4.405865,0,4.564348,5.374791,0,0,0,97.7,8.621337,.6931472,,0 +14,2,95,1,2,225062,0,5547.801,27.0616,0,18,1,0,0,0,0,0,0,0,0,0,0,0,2,89.9,0,0,97.7,205.1,81.93,0,0,.6931472,4.405865,0,4.564348,5.374791,0,0,0,97.7,8.621337,.6931472,,0 +14,2,95,1,3,225062,0,5547.801,28.0616,0,18,1,0,0,0,0,0,0,0,0,0,0,0,2,89.9,0,0,97.7,205.1,81.93,0,0,.6931472,4.405865,0,4.564348,5.374791,0,0,0,97.7,8.621337,.6931472,,0 +14,2,95,1,1,225063,0,5547.801,22.34634,1,16,1,19.40701,9.865229,0,0,0,29.27224,0,0,0,1,0,2,73.4,20.7,1,46.6,205.1,81.93,0,0,.6931472,4.405865,0,4.564348,5.374791,1,0,0,46.6,8.621337,.6931472,3.37664,1 +14,2,95,1,2,225063,0,5547.801,23.34634,1,16,1,8.353808,11.58722,22.11302,0,0,42.05405,0,0,0,1,0,2,73.4,20.7,1,46.6,205.1,81.93,0,0,.6931472,4.405865,0,4.564348,5.374791,1,0,0,46.6,8.621337,.6931472,3.738956,1 +14,2,95,1,3,225063,0,5547.801,24.34634,1,16,1,0,0,0,0,0,0,0,0,0,0,0,2,73.4,20.7,1,46.6,205.1,81.93,0,0,.6931472,4.405865,0,4.564348,5.374791,1,0,0,46.6,8.621337,.6931472,,0 +11,2,0,1,1,225064,0,6253.373,24.05202,0,13,1,32.25375,0,0,0,0,32.25375,0,0,0,2,0,2,70.2,6.9,0,44.3,0,0,0,0,.6931472,0,0,0,0,1,0,0,44.3,8.741036,.6931472,3.473634,1 +11,2,0,1,2,225064,0,6253.373,25.05202,0,13,1,17.32553,1.756955,0,0,0,19.08248,0,0,0,2,0,2,70.2,6.9,0,44.3,0,0,0,0,.6931472,0,0,0,0,1,0,0,44.3,8.741036,.6931472,2.948771,1 +11,2,0,1,3,225064,0,6253.373,26.05202,0,13,1,39.29539,5.140018,0,18.06685,0,44.43541,0,0,2,4,0,2,70.2,6.9,0,44.3,0,0,0,0,.6931472,0,0,0,0,1,0,0,44.3,8.741036,.6931472,3.794037,1 +11,2,0,1,1,225065,0,6253.373,20.69815,1,12,1,151.2313,11.31692,0,0,0,162.5482,0,0,0,14,0,2,84,13.8,0,60.2,0,0,0,0,.6931472,0,0,0,0,1,0,0,60.2,8.741036,.6931472,5.090974,1 +11,2,0,1,2,225065,0,6253.373,21.69815,1,12,1,107.7355,4.636408,0,0,0,112.3719,0,0,0,10,0,2,84,13.8,0,60.2,0,0,0,0,.6931472,0,0,0,0,1,0,0,60.2,8.741036,.6931472,4.721814,1 +11,2,0,1,3,225065,0,6253.373,22.69815,1,12,1,233.9657,45.98916,0,31.61698,797.3758,1077.331,1,0,3,22,0,2,84,13.8,0,60.2,0,0,0,0,.6931472,0,0,0,0,1,0,0,60.2,8.741036,.6931472,6.982242,1 +13,2,0,1,1,225066,0,4092.669,20.21355,1,13,1,43.40921,3.54685,19.0577,0,643.7692,709.783,1,0,0,1,1,3,66.5,10.3,0,85.2,450,0,0,0,1.098612,0,1,4.564348,6.160541,0,0,0,85.2,8.317197,1.098612,6.564959,1 +13,2,0,1,2,225066,0,4092.669,21.21355,1,13,1,12.54826,0,0,0,0,12.54826,0,0,0,1,0,4,66.5,10.3,0,85.2,450,0,0,0,1.386294,0,1,4.564348,6.160541,0,0,0,85.2,8.317197,1.386294,2.529582,1 +13,2,0,1,3,225066,0,4092.669,22.21355,1,13,1,4.450378,4.650645,0,0,593.5024,602.6035,1,0,0,0,0,4,66.5,10.3,0,85.2,450,0,0,0,1.386294,0,1,4.564348,6.160541,0,0,0,85.2,8.317197,1.386294,6.401259,1 +13,2,0,1,1,225067,0,4092.669,27.29911,0,13,1,40.23293,0,35.0397,0,0,75.27263,0,0,0,3,0,3,73.4,0,0,60.2,450,0,0,0,1.098612,0,1,4.564348,6.160541,0,0,0,60.2,8.317197,1.098612,4.321116,1 +13,2,0,1,2,225067,0,4092.669,28.29911,0,13,1,22.6834,3.875483,0,0,0,26.55888,0,0,0,2,0,4,73.4,0,0,60.2,450,0,0,0,1.386294,0,1,4.564348,6.160541,0,0,0,60.2,8.317197,1.386294,3.279364,1 +13,2,0,1,3,225067,0,4092.669,29.29911,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,73.4,0,0,60.2,450,0,0,0,1.386294,0,1,4.564348,6.160541,0,0,0,60.2,8.317197,1.386294,,0 +15,2,95,1,1,225068,0,12639.3,27.2334,0,15,1,16.71159,0,0,0,0,16.71159,0,0,0,1,0,2,80.9,3.4,0,53.4,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,53.4,9.444645,.6931472,2.816103,1 +15,2,95,1,2,225068,0,12639.3,28.2334,0,15,1,86.97789,0,0,0,0,86.97789,0,0,0,3,0,2,80.9,3.4,0,53.4,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,53.4,9.444645,.6931472,4.465654,1 +15,2,95,1,3,225068,0,12639.3,29.2334,0,15,1,0,0,0,0,0,0,0,0,0,0,0,2,80.9,3.4,0,53.4,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,53.4,9.444645,.6931472,,0 +15,2,95,1,1,225069,0,12639.3,24.9473,1,14,1,33.42318,2.932615,19.40701,0,0,55.7628,0,0,0,3,0,2,72.9,13.8,0,56.8,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,56.8,9.444645,.6931472,4.021107,1 +15,2,95,1,2,225069,0,12639.3,25.9473,1,14,1,12.28501,0,0,0,0,12.28501,0,0,0,1,0,2,72.9,13.8,0,56.8,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,56.8,9.444645,.6931472,2.50838,1 +15,2,95,1,3,225069,0,12639.3,26.9473,1,14,1,9.11577,0,0,0,0,9.11577,0,0,0,1,0,2,72.9,13.8,0,56.8,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,56.8,9.444645,.6931472,2.210006,1 +13,2,0,0,1,225075,0,3851.026,50.31896,1,12,1,95.31169,12.39052,36.56878,0,0,144.271,0,0,0,3,0,1,64.9,10.3,0,75,150,0,0,0,0,0,1,4.564348,5.061929,0,0,0,75,8.256354,0,4.971694,1 +13,2,0,0,2,225075,0,3851.026,51.31896,1,12,1,75.99432,21.30208,0,0,0,97.2964,0,0,0,7,0,1,64.9,10.3,0,75,150,0,0,0,0,0,1,4.564348,5.061929,0,0,0,75,8.256354,0,4.577762,1 +13,2,0,0,3,225075,0,3851.026,52.31896,1,12,1,163.6324,23.03858,0,0,0,186.671,0,0,0,13,0,1,64.9,10.3,0,75,150,0,0,0,0,0,1,4.564348,5.061929,0,0,0,75,8.256354,0,5.229348,1 +11,2,0,0,1,225076,0,6874.487,57.01027,1,12,1,85.49251,33.51178,57.27516,0,0,176.2794,0,0,0,4,0,1,87.4,13.8,0,100,0,481.92,0,0,0,6.177778,0,0,0,0,0,0,100,8.835718,0,5.172071,1 +11,2,0,0,2,225076,0,6874.487,58.01027,1,12,1,125.3538,30.55149,0,0,0,155.9053,0,0,0,3,0,1,87.4,13.8,0,100,0,481.92,0,0,0,6.177778,0,0,0,0,0,0,100,8.835718,0,5.049249,1 +11,2,0,0,3,225076,0,6874.487,59.01027,1,12,1,86.72087,25.75881,14.81481,0,0,127.2945,0,0,0,3,0,1,87.4,13.8,0,100,0,481.92,0,0,0,6.177778,0,0,0,0,0,0,100,8.835718,0,4.846503,1 +11,2,0,0,4,225076,0,6874.487,60.01027,1,12,1,60.38048,63.32093,49.33002,0,0,173.0314,0,0,0,4,0,1,87.4,13.8,0,100,0,481.92,0,0,0,6.177778,0,0,0,0,0,0,100,8.835718,0,5.153473,1 +11,2,0,0,5,225076,0,6874.487,61.01027,1,12,1,290.5365,63.49106,46.68406,0,0,400.7116,0,0,0,8,0,1,87.4,13.8,0,100,0,481.92,0,0,0,6.177778,0,0,0,0,0,0,100,8.835718,0,5.993242,1 +15,2,95,1,1,225077,0,5484.751,3.964408,1,10,1,14.69788,1.769189,0,0,0,16.46707,0,0,0,2,0,5,81.35272,11.84267,0,63,552.5,396.19,1,1,1.609438,5.981894,0,4.564348,6.365746,1,0,0,63,8.609909,1.609438,2.801362,1 +15,2,95,1,2,225077,0,5484.751,4.964408,1,10,1,0,0,0,0,0,0,0,0,0,0,0,5,81.35272,11.84267,0,63,552.5,396.19,1,1,1.609438,5.981894,0,4.564348,6.365746,1,0,0,63,8.609909,1.609438,,0 +15,2,95,1,3,225077,0,5484.751,5.964408,1,10,1,12.62047,3.373107,0,0,0,15.99358,0,0,0,1,0,5,81.35272,11.84267,0,63,552.5,396.19,1,1,1.609438,5.981894,0,4.564348,6.365746,1,0,0,63,8.609909,1.609438,2.772187,1 +15,2,95,1,1,225078,0,5484.751,35.30458,0,12,1,16.33097,1.143168,0,0,0,17.47414,0,0,0,2,0,5,85.6,10.3,0,62.5,552.5,396.19,0,0,1.609438,5.981894,0,4.564348,6.365746,1,0,0,62.5,8.609909,1.609438,2.860722,1 +15,2,95,1,2,225078,0,5484.751,36.30458,0,12,1,69.37562,0,25.39148,0,0,94.7671,0,0,0,8,1,5,85.6,10.3,0,62.5,552.5,396.19,0,0,1.609438,5.981894,0,4.564348,6.365746,1,0,0,62.5,8.609909,1.609438,4.551422,1 +15,2,95,1,3,225078,0,5484.751,37.30458,0,12,1,16.98027,8.733364,0,0,0,25.71363,0,0,0,2,0,5,85.6,10.3,0,62.5,552.5,396.19,0,0,1.609438,5.981894,0,4.564348,6.365746,1,0,0,62.5,8.609909,1.609438,3.247021,1 +15,2,95,1,1,225079,0,5484.751,31.72895,1,10,1,0,7.512248,0,0,0,7.512248,0,0,0,0,0,5,70.2,27.6,1,60.2,552.5,396.19,0,0,1.609438,5.981894,0,4.564348,6.365746,1,0,0,60.2,8.609909,1.609438,2.016535,1 +15,2,95,1,2,225079,0,5484.751,32.72895,1,10,1,68.88008,0,0,0,0,68.88008,0,0,0,3,0,5,70.2,27.6,1,60.2,552.5,396.19,0,0,1.609438,5.981894,0,4.564348,6.365746,1,0,0,60.2,8.609909,1.609438,4.232367,1 +15,2,95,1,3,225079,0,5484.751,33.72895,1,10,1,132.1707,16.99403,0,0,0,149.1647,0,0,0,6,0,5,70.2,27.6,1,60.2,552.5,396.19,0,0,1.609438,5.981894,0,4.564348,6.365746,1,0,0,60.2,8.609909,1.609438,5.005052,1 +15,2,95,1,1,225080,0,5484.751,8.366872,0,10,1,31.30103,1.137725,0,0,161.8672,194.3059,1,0,0,3,0,5,60,11.84267,0,63,552.5,396.19,1,0,1.609438,5.981894,0,4.564348,6.365746,1,0,0,63,8.609909,1.609438,5.269434,1 +15,2,95,1,2,225080,0,5484.751,9.366872,0,10,1,87.33895,12.72052,0,0,0,100.0595,0,0,0,6,0,5,60,11.84267,0,63,552.5,396.19,1,0,1.609438,5.981894,0,4.564348,6.365746,1,0,0,63,8.609909,1.609438,4.605765,1 +15,2,95,1,3,225080,0,5484.751,10.36687,0,10,1,66.29188,0,0,0,0,66.29188,0,0,0,1,0,5,60,11.84267,0,63,552.5,396.19,1,0,1.609438,5.981894,0,4.564348,6.365746,1,0,0,63,8.609909,1.609438,4.194067,1 +15,2,95,1,1,225081,0,5484.751,6.893909,1,10,1,0,0,0,0,0,0,0,0,0,0,0,5,60,11.84267,0,55.6,552.5,396.19,1,1,1.609438,5.981894,0,4.564348,6.365746,1,0,0,55.6,8.609909,1.609438,,0 +15,2,95,1,2,225081,0,5484.751,7.893909,1,10,1,14.8662,2.725471,0,0,0,17.59167,0,0,0,2,0,5,60,11.84267,0,55.6,552.5,396.19,1,1,1.609438,5.981894,0,4.564348,6.365746,1,0,0,55.6,8.609909,1.609438,2.867426,1 +15,2,95,1,3,225081,0,5484.751,8.893909,1,10,1,131.62,0,0,0,0,131.62,0,0,0,3,0,5,60,11.84267,0,55.6,552.5,396.19,1,1,1.609438,5.981894,0,4.564348,6.365746,1,0,0,55.6,8.609909,1.609438,4.879919,1 +13,2,0,1,1,225099,0,13923.17,12.64613,0,17,1,0,0,0,0,0,0,0,0,0,0,0,5,93.3,11.84267,0,66.7,450,235.27,1,0,1.609438,5.460734,1,4.564348,6.160541,0,0,0,66.7,9.541381,1.609438,,0 +13,2,0,1,2,225099,0,13923.17,13.64613,0,17,1,19.38924,1.33301,20.77072,0,0,41.49297,0,0,0,1,0,5,93.3,11.84267,0,66.7,450,235.27,1,0,1.609438,5.460734,1,4.564348,6.160541,0,0,0,66.7,9.541381,1.609438,3.725524,1 +13,2,0,1,3,225099,0,13923.17,14.64613,0,17,1,30.9973,13.2345,53.43666,0,0,97.66846,0,0,0,3,0,5,93.3,11.84267,0,66.7,450,235.27,1,0,1.609438,5.460734,1,4.564348,6.160541,0,0,0,66.7,9.541381,1.609438,4.581579,1 +13,2,0,1,4,225099,0,13923.17,15.64613,0,17,1,60.73041,55.85556,1.148954,0,0,117.7349,0,0,0,8,0,5,93.3,11.84267,0,66.7,450,235.27,1,0,1.609438,5.460734,1,4.564348,6.160541,0,0,0,66.7,9.541381,1.609438,4.768435,1 +13,2,0,1,5,225099,0,13923.17,16.64613,0,17,1,16.62971,27.12491,0,0,0,43.75462,0,0,0,3,0,5,93.3,11.84267,0,66.7,450,235.27,1,0,1.609438,5.460734,1,4.564348,6.160541,0,0,0,66.7,9.541381,1.609438,3.778597,1 +13,2,0,1,1,225100,0,13923.17,7.811088,0,17,1,4.789782,0,0,0,0,4.789782,0,0,0,1,0,5,86.7,11.84267,0,63,450,235.27,1,0,1.609438,5.460734,1,4.564348,6.160541,0,0,0,63,9.541381,1.609438,1.566485,1 +13,2,0,1,2,225100,0,13923.17,8.811089,0,17,1,38.17257,6.034901,0,0,0,44.20747,0,0,0,3,0,5,86.7,11.84267,0,63,450,235.27,1,0,1.609438,5.460734,1,4.564348,6.160541,0,0,0,63,9.541381,1.609438,3.788894,1 +13,2,0,1,3,225100,0,13923.17,9.811089,0,17,1,15.27403,2.4708,0,0,0,17.74483,0,0,0,2,0,5,86.7,11.84267,0,63,450,235.27,1,0,1.609438,5.460734,1,4.564348,6.160541,0,0,0,63,9.541381,1.609438,2.876094,1 +13,2,0,1,4,225100,0,13923.17,10.81109,0,17,1,7.38613,2.872384,0,0,0,10.25851,0,0,0,1,0,5,86.7,11.84267,0,63,450,235.27,1,0,1.609438,5.460734,1,4.564348,6.160541,0,0,0,63,9.541381,1.609438,2.328108,1 +13,2,0,1,5,225100,0,13923.17,11.81109,0,17,1,24.02069,1.459719,30.14782,0,0,55.62823,0,0,0,2,0,5,86.7,11.84267,0,63,450,235.27,1,0,1.609438,5.460734,1,4.564348,6.160541,0,0,0,63,9.541381,1.609438,4.018691,1 +13,2,0,1,1,225101,0,13923.17,45.81793,0,16,1,13.30495,0,30.49494,0,0,43.79989,0,0,0,1,0,5,88.3,3.4,0,80.7,450,235.27,0,0,1.609438,5.460734,1,4.564348,6.160541,0,0,0,80.7,9.541381,1.609438,3.779631,1 +13,2,0,1,2,225101,0,13923.17,46.81793,0,16,1,37.32428,0,0,0,0,37.32428,0,0,0,1,0,5,88.3,3.4,0,80.7,450,235.27,0,0,1.609438,5.460734,1,4.564348,6.160541,0,0,0,80.7,9.541381,1.609438,3.619644,1 +13,2,0,1,3,225101,0,13923.17,47.81793,0,16,1,0,2.672956,0,0,0,2.672956,0,0,0,0,0,5,88.3,3.4,0,80.7,450,235.27,0,0,1.609438,5.460734,1,4.564348,6.160541,0,0,0,80.7,9.541381,1.609438,.983185,1 +13,2,0,1,4,225101,0,13923.17,48.81793,0,16,1,8.206812,2.769799,0,0,0,10.97661,0,0,0,1,0,5,88.3,3.4,0,80.7,450,235.27,0,0,1.609438,5.460734,1,4.564348,6.160541,0,0,0,80.7,9.541381,1.609438,2.395767,1 +13,2,0,1,5,225101,0,13923.17,49.81793,0,16,1,20.3252,0,0,0,0,20.3252,0,0,0,1,0,5,88.3,3.4,0,80.7,450,235.27,0,0,1.609438,5.460734,1,4.564348,6.160541,0,0,0,80.7,9.541381,1.609438,3.011862,1 +13,2,0,1,1,225102,0,13923.17,10.69131,0,17,1,61.17616,7.317722,0,0,0,68.49388,0,0,0,4,0,5,93.3,11.84267,0,77.8,450,235.27,1,0,1.609438,5.460734,1,4.564348,6.160541,0,0,0,77.8,9.541381,1.609438,4.226745,1 +13,2,0,1,2,225102,0,13923.17,11.69131,0,17,1,30.41687,1.33301,0,0,0,31.74988,0,0,0,2,0,5,93.3,11.84267,0,77.8,450,235.27,1,0,1.609438,5.460734,1,4.564348,6.160541,0,0,0,77.8,9.541381,1.609438,3.457889,1 +13,2,0,1,3,225102,0,13923.17,12.69131,0,17,1,33.69272,5.952381,0,0,0,39.6451,0,0,0,3,0,5,93.3,11.84267,0,77.8,450,235.27,1,0,1.609438,5.460734,1,4.564348,6.160541,0,0,0,77.8,9.541381,1.609438,3.679967,1 +13,2,0,1,4,225102,0,13923.17,13.69131,0,17,1,7.38613,0,0,0,0,7.38613,0,0,0,1,0,5,93.3,11.84267,0,77.8,450,235.27,1,0,1.609438,5.460734,1,4.564348,6.160541,0,0,0,77.8,9.541381,1.609438,1.999604,1 +13,2,0,1,5,225102,0,13923.17,14.69131,0,17,1,39.54176,2.494457,34.45307,0,0,76.48928,0,0,0,4,0,5,93.3,11.84267,0,77.8,450,235.27,1,0,1.609438,5.460734,1,4.564348,6.160541,0,0,0,77.8,9.541381,1.609438,4.337151,1 +13,2,0,1,1,225103,0,13923.17,41.29227,1,17,1,6.386376,2.261841,0,0,0,8.648217,0,0,0,1,0,5,87.2,3.4,0,77.3,450,235.27,0,0,1.609438,5.460734,1,4.564348,6.160541,0,0,0,77.3,9.541381,1.609438,2.157353,1 +13,2,0,1,2,225103,0,13923.17,42.29227,1,17,1,12.11827,0,0,0,0,12.11827,0,0,0,1,0,5,87.2,3.4,0,77.3,450,235.27,0,0,1.609438,5.460734,1,4.564348,6.160541,0,0,0,77.3,9.541381,1.609438,2.494715,1 +13,2,0,1,3,225103,0,13923.17,43.29227,1,17,1,0,2.628032,0,0,0,2.628032,0,0,0,0,0,5,87.2,3.4,0,77.3,450,235.27,0,0,1.609438,5.460734,1,4.564348,6.160541,0,0,0,77.3,9.541381,1.609438,.9662355,1 +13,2,0,1,4,225103,0,13923.17,44.29227,1,17,1,17.02913,3.631514,0,0,0,20.66065,0,0,0,1,0,5,87.2,3.4,0,77.3,450,235.27,0,0,1.609438,5.460734,1,4.564348,6.160541,0,0,0,77.3,9.541381,1.609438,3.028231,1 +13,2,0,1,5,225103,0,13923.17,45.29227,1,17,1,7.390983,1.940133,0,0,0,9.331116,0,0,0,1,0,5,87.2,3.4,0,77.3,450,235.27,0,0,1.609438,5.460734,1,4.564348,6.160541,0,0,0,77.3,9.541381,1.609438,2.233355,1 +7,2,25,0,1,225114,0,6836.364,5.467488,0,12,1,21.77463,4.354927,0,0,0,26.12956,0,0,0,3,0,3,93.3,11.84267,0,88.9,1000,1000,1,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,88.9,8.830157,1.098612,3.263067,1 +7,2,25,0,2,225114,0,6836.364,6.467488,0,12,1,46.58077,2.552032,0,0,0,49.1328,0,0,0,2,3,3,93.3,11.84267,0,88.9,1000,1000,1,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,88.9,8.830157,1.098612,3.894527,1 +7,2,25,0,3,225114,0,6836.364,7.467488,0,12,1,25.58513,9.798073,0,0,0,35.3832,0,0,0,1,0,3,93.3,11.84267,0,88.9,1000,1000,1,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,88.9,8.830157,1.098612,3.566237,1 +7,2,25,0,1,225115,0,6836.364,29.32512,1,12,1,51.71475,1.72564,0,0,0,53.44039,0,0,0,1,1,3,63.8,13.8,0,80.7,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,80.7,8.830157,1.098612,3.978567,1 +7,2,25,0,2,225115,0,6836.364,30.32512,1,12,1,4.955401,2.725471,0,0,0,7.680872,0,0,0,1,0,3,63.8,13.8,0,80.7,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,80.7,8.830157,1.098612,2.038733,1 +7,2,25,0,3,225115,0,6836.364,31.32512,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,63.8,13.8,0,80.7,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,80.7,8.830157,1.098612,,0 +7,2,25,0,1,225116,0,6836.364,30.00685,0,12,1,250.4083,51.82362,0,0,0,302.2319,0,0,0,8,1,3,70.7,0,0,63.6,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,63.6,8.830157,1.098612,5.711195,1 +7,2,25,0,2,225116,0,6836.364,31.00685,0,12,1,25.52032,5.302279,0,0,0,30.8226,0,0,0,2,0,3,70.7,0,0,63.6,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,63.6,8.830157,1.098612,3.428248,1 +7,2,25,0,3,225116,0,6836.364,32.00684,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,70.7,0,0,63.6,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,63.6,8.830157,1.098612,,0 +13,2,0,1,1,225117,0,4512.023,38.2642,1,16,1,212.0849,11.58955,9.798585,0,0,233.4731,0,0,0,12,0,1,54.8,27.6,1,70.5,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,70.5,8.414722,0,5.453067,1 +13,2,0,1,2,225117,0,4512.023,39.2642,1,16,1,5.946482,3.444004,0,0,0,9.390486,0,0,0,1,0,1,54.8,27.6,1,70.5,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,70.5,8.414722,0,2.239697,1 +13,2,0,1,3,225117,0,4512.023,40.2642,1,16,1,122.8775,16.26893,0,0,0,139.1464,0,0,0,5,0,1,54.8,27.6,1,70.5,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,70.5,8.414722,0,4.935526,1 +13,2,0,1,1,225129,0,2858.064,2.067077,0,12,1,13.30495,0,0,0,0,13.30495,0,0,0,1,0,4,81.35272,11.84267,0,63,450,600,1,0,1.386294,6.39693,1,4.564348,6.160541,0,0,0,63,7.95825,1.386294,2.588136,1 +13,2,0,1,2,225129,0,2858.064,3.067077,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,81.35272,11.84267,0,63,450,600,1,0,1.386294,6.39693,1,4.564348,6.160541,0,0,0,63,7.95825,1.386294,,0 +13,2,0,1,1,225130,0,2858.064,26.36824,0,14,1,117.6158,6.865354,0,0,0,124.4811,0,0,0,2,1,4,73.4,10.3,1,73.9,450,600,0,0,1.386294,6.39693,1,4.564348,6.160541,1,0,0,73.9,7.95825,1.386294,4.824154,1 +13,2,0,1,2,225130,0,2858.064,27.36824,0,14,1,5.332041,0,0,0,0,5.332041,0,0,0,1,0,4,73.4,10.3,1,73.9,450,600,0,0,1.386294,6.39693,1,4.564348,6.160541,1,0,0,73.9,7.95825,1.386294,1.673734,1 +13,2,0,1,1,225131,0,2858.064,21.7796,1,12,1,282.8632,14.61948,0,0,0,297.4827,0,0,0,7,0,4,53.2,34.5,1,73.9,450,600,0,0,1.386294,6.39693,1,4.564348,6.160541,0,0,0,73.9,7.95825,1.386294,5.695356,1 +13,2,0,1,2,225131,0,2858.064,22.7796,1,12,1,18.41978,17.76054,0,0,0,36.18032,0,0,0,2,0,4,53.2,34.5,1,73.9,450,600,0,0,1.386294,6.39693,1,4.564348,6.160541,0,0,0,73.9,7.95825,1.386294,3.588515,1 +11,2,0,1,1,225143,0,10517.89,38.423,0,15,1,81.1105,51.50245,41.14861,0,0,173.7616,0,0,0,9,1,4,56.9,10.3,0,72.7,0,0,0,0,1.386294,0,0,0,0,1,0,0,72.7,9.260928,1.386294,5.157684,1 +11,2,0,1,2,225143,0,10517.89,39.423,0,15,1,26.06541,7.680872,0,0,0,33.74628,0,0,0,3,0,4,56.9,10.3,0,72.7,0,0,0,0,1.386294,0,0,0,0,1,0,0,72.7,9.260928,1.386294,3.51887,1 +11,2,0,1,3,225143,0,10517.89,40.423,0,15,1,18.35704,30.19734,22.02845,0,0,70.58284,0,0,0,1,0,4,56.9,10.3,0,72.7,0,0,0,0,1.386294,0,0,0,0,1,0,0,72.7,9.260928,1.386294,4.256787,1 +11,2,0,1,1,225144,0,10517.89,7.463381,1,14,1,6.53239,0,0,0,0,6.53239,0,0,0,1,0,4,96.7,11.84267,0,100,0,0,1,1,1.386294,0,0,0,0,0,0,0,100,9.260928,1.386294,1.876773,1 +11,2,0,1,2,225144,0,10517.89,8.463381,1,14,1,42.2448,2.1556,0,0,0,44.4004,0,0,0,1,0,4,96.7,11.84267,0,100,0,0,1,1,1.386294,0,0,0,0,0,0,0,100,9.260928,1.386294,3.793248,1 +11,2,0,1,3,225144,0,10517.89,9.463381,1,14,1,20.88114,0,0,0,0,20.88114,0,0,0,1,0,4,96.7,11.84267,0,100,0,0,1,1,1.386294,0,0,0,0,0,0,0,100,9.260928,1.386294,3.038846,1 +11,2,0,1,1,225145,0,10517.89,30.59001,1,14,1,10.88732,0,0,0,0,10.88732,0,0,0,1,0,4,73.4,6.9,0,88.6,0,0,0,0,1.386294,0,0,0,0,0,0,0,88.6,9.260928,1.386294,2.387599,1 +11,2,0,1,2,225145,0,10517.89,31.59001,1,14,1,0,0,0,0,0,0,0,0,0,0,0,4,73.4,6.9,0,88.6,0,0,0,0,1.386294,0,0,0,0,0,0,0,88.6,9.260928,1.386294,,0 +11,2,0,1,3,225145,0,10517.89,32.59001,1,14,1,43.94218,0,0,0,960.0184,1003.961,1,0,0,3,0,4,73.4,6.9,0,88.6,0,0,0,0,1.386294,0,0,0,0,0,0,0,88.6,9.260928,1.386294,6.911708,1 +11,2,0,1,1,225146,0,10517.89,6.401095,0,14,1,0,0,0,0,0,0,0,0,0,0,0,4,86.7,11.84267,0,59.3,0,0,1,0,1.386294,0,0,0,0,0,0,0,59.3,9.260928,1.386294,,0 +11,2,0,1,2,225146,0,10517.89,7.401095,0,14,1,18.83052,0,0,0,0,18.83052,0,0,0,1,0,4,86.7,11.84267,0,59.3,0,0,1,0,1.386294,0,0,0,0,0,0,0,59.3,9.260928,1.386294,2.935479,1 +11,2,0,1,3,225146,0,10517.89,8.401095,0,14,1,18.35704,0,0,0,0,18.35704,0,0,0,1,0,4,86.7,11.84267,0,59.3,0,0,1,0,1.386294,0,0,0,0,0,0,0,59.3,9.260928,1.386294,2.910013,1 +19,2,25,0,1,225150,0,8428.739,14.81725,1,12,1,16.87534,0,0,0,0,16.87534,0,0,0,0,2,3,86.2,6.9,0,77.3,1000,1000,1,1,1.098612,6.907755,0,3.258096,8.294049,0,0,0,77.3,9.039521,1.098612,2.825853,1 +19,2,25,0,2,225150,0,8428.739,15.81725,1,12,1,19.82161,2.675917,0,0,0,22.49752,0,0,0,2,0,3,86.2,6.9,0,77.3,1000,1000,1,1,1.098612,6.907755,0,3.258096,8.294049,0,0,0,77.3,9.039521,1.098612,3.113405,1 +19,2,25,0,3,225150,0,8428.739,16.81725,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,86.2,6.9,0,77.3,1000,1000,1,1,1.098612,6.907755,0,3.258096,8.294049,0,0,0,77.3,9.039521,1.098612,,0 +19,2,25,0,1,225151,0,8428.739,39.07734,0,12,1,38.10561,4.082744,0,0,0,42.18835,0,0,0,3,0,3,93.1,3.4,0,81.8,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,81.8,9.039521,1.098612,3.742144,1 +19,2,25,0,2,225151,0,8428.739,40.07734,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,93.1,3.4,0,81.8,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,81.8,9.039521,1.098612,,0 +19,2,25,0,3,225151,0,8428.739,41.07734,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,93.1,3.4,0,81.8,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,81.8,9.039521,1.098612,,0 +19,2,25,0,1,225152,0,8428.739,38.10267,1,12,1,19.86935,1.829069,0,0,0,21.69842,0,0,0,1,0,3,85.6,10.3,0,67,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,67,9.039521,1.098612,3.07724,1 +19,2,25,0,2,225152,0,8428.739,39.10267,1,12,1,67.889,0,0,0,0,67.889,0,0,0,3,0,3,85.6,10.3,0,67,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,67,9.039521,1.098612,4.217874,1 +19,2,25,0,3,225152,0,8428.739,40.10267,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,85.6,10.3,0,67,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,67,9.039521,1.098612,,0 +11,2,0,1,1,225170,0,7399.414,37.64271,0,15,1,70.39615,13.07816,0,319.8608,0,83.4743,0,0,18,3,0,1,75.5,3.4,0,69.3,0,113.36,0,0,0,4.730568,0,0,0,0,0,0,69.3,8.909291,0,4.424539,1 +11,2,0,1,2,225170,0,7399.414,38.64271,0,15,1,15.61737,56.89605,32.79161,700.3416,0,105.305,0,0,41,1,0,1,75.5,3.4,0,69.3,0,113.36,0,0,0,4.730568,0,0,0,0,0,0,69.3,8.909291,0,4.656861,1 +11,2,0,1,3,225170,0,7399.414,39.64271,0,15,1,2.710027,0,0,785.9078,0,2.710027,0,0,45,1,0,1,75.5,3.4,0,69.3,0,113.36,0,0,0,4.730568,0,0,0,0,0,0,69.3,8.909291,0,.9969587,1 +11,2,0,1,1,225171,0,10711.44,1.711157,1,16,1,56.06469,27.71428,0,0,0,83.77898,0,0,0,7,1,3,81.35272,11.84267,0,92.6,0,206.64,1,1,1.098612,5.330978,0,0,0,0,0,0,92.6,9.27916,1.098612,4.428182,1 +11,2,0,1,2,225171,0,10711.44,2.711157,1,16,1,52.57985,17.22359,0,0,0,69.80344,0,0,0,7,0,4,81.35272,11.84267,0,92.6,0,206.64,1,1,1.386294,5.330978,0,0,0,0,0,0,92.6,9.27916,1.386294,4.245683,1 +11,2,0,1,3,225171,0,10711.44,3.711157,1,16,1,114.4029,11.73655,0,0,0,126.1395,0,0,0,7,2,4,81.35272,11.84267,0,92.6,0,206.64,1,1,1.386294,5.330978,0,0,0,0,0,0,92.6,9.27916,1.386294,4.837388,1 +11,2,0,1,4,225171,0,10711.44,4.711157,1,16,1,185.9942,14.46436,0,0,0,200.4585,0,0,0,11,0,4,81.35272,11.84267,0,92.6,0,206.64,1,1,1.386294,5.330978,0,0,0,0,0,0,92.6,9.27916,1.386294,5.300607,1 +11,2,0,1,5,225171,0,10711.44,5.711157,1,16,1,93.86722,20.1988,0,0,0,114.066,0,0,0,6,2,4,81.35272,11.84267,0,92.6,0,206.64,1,1,1.386294,5.330978,0,0,0,0,0,0,92.6,9.27916,1.386294,4.736777,1 +11,2,0,1,1,225172,0,10711.44,31.50992,0,18,1,33.42318,0,23.18059,0,0,56.60378,0,0,0,2,1,3,83.5,0,0,79.5,0,206.64,0,0,1.098612,5.330978,0,0,0,0,0,0,79.5,9.27916,1.098612,4.036076,1 +11,2,0,1,2,225172,0,10711.44,32.50993,0,18,1,15.23342,12.62899,25.64619,0,0,53.5086,0,0,0,2,0,4,83.5,0,0,79.5,0,206.64,0,0,1.386294,5.330978,0,0,0,0,0,0,79.5,9.27916,1.386294,3.979842,1 +11,2,0,1,3,225172,0,10711.44,33.50993,0,18,1,56.40383,6.198724,0,0,0,62.60255,0,0,0,4,0,4,83.5,0,0,79.5,0,206.64,0,0,1.386294,5.330978,0,0,0,0,0,0,79.5,9.27916,1.386294,4.136806,1 +11,2,0,1,4,225172,0,10711.44,34.50993,0,18,1,13.96415,2.959567,21.7549,0,0,38.67862,0,0,0,1,0,4,83.5,0,0,79.5,0,206.64,0,0,1.386294,5.330978,0,0,0,0,0,0,79.5,9.27916,1.386294,3.655287,1 +11,2,0,1,5,225172,0,10711.44,35.50993,0,18,1,44.16729,3.694674,12.997,0,0,60.85896,0,0,0,4,0,4,83.5,0,0,79.5,0,206.64,0,0,1.386294,5.330978,0,0,0,0,0,0,79.5,9.27916,1.386294,4.108559,1 +11,2,0,1,1,225173,0,10711.44,29.97125,1,16,1,19.40701,16.14555,2.695418,0,1264.987,1303.234,1,0,0,1,0,3,88.8,3.4,0,87.5,0,206.64,0,0,1.098612,5.330978,0,0,0,0,0,0,87.5,9.27916,1.098612,7.172605,1 +11,2,0,1,2,225173,0,10711.44,30.97125,1,16,1,19.90172,21.13022,0,0,0,41.03194,0,0,0,2,0,4,88.8,3.4,0,87.5,0,206.64,0,0,1.386294,5.330978,0,0,0,0,0,0,87.5,9.27916,1.386294,3.714351,1 +11,2,0,1,3,225173,0,10711.44,31.97125,1,16,1,239.5169,35.64266,0,0,0,275.1595,0,0,0,7,1,4,88.8,3.4,0,87.5,0,206.64,0,0,1.386294,5.330978,0,0,0,0,0,0,87.5,9.27916,1.386294,5.617351,1 +11,2,0,1,4,225173,0,10711.44,32.97125,1,16,1,88.99541,45.76907,4.793664,0,0,139.5582,0,0,0,5,0,4,88.8,3.4,0,87.5,0,206.64,0,0,1.386294,5.330978,0,0,0,0,0,0,87.5,9.27916,1.386294,4.938481,1 +11,2,0,1,5,225173,0,10711.44,33.97125,1,16,1,234.9287,60.64891,0,0,0,295.5776,0,0,0,7,10,4,88.8,3.4,0,87.5,0,206.64,0,0,1.386294,5.330978,0,0,0,0,0,0,87.5,9.27916,1.386294,5.688931,1 +11,2,0,1,1,225176,0,15780.65,49.68104,1,11,1,548.9828,45.53533,0,0,0,594.5182,0,0,0,12,2,2,86.2,31,0,67,0,0,0,0,.6931472,0,0,0,0,0,0,0,67,9.666603,.6931472,6.387751,1 +11,2,0,1,2,225176,0,15780.65,50.68104,1,11,1,95.65642,24.48023,51.67887,0,0,171.8155,0,0,0,6,0,2,86.2,31,0,67,0,0,0,0,.6931472,0,0,0,0,0,0,0,67,9.666603,.6931472,5.146421,1 +11,2,0,1,3,225176,0,15780.65,51.68104,1,11,1,201.897,28.91599,0,0,0,230.813,0,0,0,7,1,2,86.2,31,0,67,0,0,0,0,.6931472,0,0,0,0,0,0,0,67,9.666603,.6931472,5.441608,1 +11,2,0,1,4,225176,0,15780.65,52.68104,1,11,1,148.5732,33.66005,.4135649,0,723.6146,906.2614,1,0,0,7,0,2,86.2,31,0,67,0,0,0,0,.6931472,0,0,0,0,0,0,0,67,9.666603,.6931472,6.809328,1 +11,2,0,1,5,225176,0,15780.65,53.68104,1,11,1,147.7273,31.16617,35.9538,0,0,214.8472,0,0,0,8,0,2,86.2,31,0,67,0,0,0,0,.6931472,0,0,0,0,0,0,0,67,9.666603,.6931472,5.369927,1 +11,2,0,1,1,225177,0,15780.65,51.67419,0,16,1,113.4904,5.883297,0,0,0,119.3737,0,0,0,7,0,2,93.6,31,1,73.9,0,0,0,0,.6931472,0,0,0,0,0,0,0,73.9,9.666603,.6931472,4.782259,1 +11,2,0,1,2,225177,0,15780.65,52.67419,0,16,1,112.4939,0,64.01659,0,0,176.5105,0,0,0,7,0,2,93.6,31,1,73.9,0,0,0,0,.6931472,0,0,0,0,0,0,0,73.9,9.666603,.6931472,5.17338,1 +11,2,0,1,3,225177,0,15780.65,53.67419,0,16,1,171.1834,24.81482,6.874435,0,0,202.8726,0,0,0,5,2,2,93.6,31,1,73.9,0,0,0,0,.6931472,0,0,0,0,0,0,0,73.9,9.666603,.6931472,5.312578,1 +11,2,0,1,4,225177,0,15780.65,54.67419,0,16,1,75.06203,12.75021,2.593052,0,0,90.4053,0,0,0,5,0,2,93.6,31,1,73.9,0,0,0,0,.6931472,0,0,0,0,0,0,0,73.9,9.666603,.6931472,4.504303,1 +11,2,0,1,5,225177,0,15780.65,55.67419,0,16,1,138.2265,20.26826,44.06855,0,0,202.5633,0,0,0,6,3,2,93.6,31,1,73.9,0,0,0,0,.6931472,0,0,0,0,0,0,0,73.9,9.666603,.6931472,5.311053,1 +11,2,0,1,1,225188,0,8269.208,27.73717,0,11,1,73.82749,6.938005,0,0,0,80.7655,0,0,0,2,0,4,57.4,3.4,0,76.2,0,0,0,0,1.386294,0,0,0,0,0,0,0,76.2,9.020415,1.386294,4.39155,1 +11,2,0,1,2,225188,0,8269.208,28.73717,0,11,1,11.54791,0,0,0,0,11.54791,0,0,0,1,0,4,57.4,3.4,0,76.2,0,0,0,0,1.386294,0,0,0,0,0,0,0,76.2,9.020415,1.386294,2.446505,1 +11,2,0,1,3,225188,0,8269.208,29.73717,0,11,1,82.04193,2.256153,31.34913,0,0,115.6472,0,0,0,1,1,4,57.4,3.4,0,76.2,0,0,0,0,1.386294,0,0,0,0,0,0,0,76.2,9.020415,1.386294,4.750545,1 +11,2,0,1,1,225189,0,8269.208,29.2293,1,12,1,59.56873,37.60108,35.83828,0,0,133.0081,0,0,0,6,1,4,67.6,0,0,75,0,0,0,0,1.386294,0,0,0,0,0,0,0,75,9.020415,1.386294,4.89041,1 +11,2,0,1,2,225189,0,8269.208,30.2293,1,12,1,101.9656,42.18673,32.08845,0,0,176.2408,0,0,0,7,1,4,67.6,0,0,75,0,0,0,0,1.386294,0,0,0,0,0,0,0,75,9.020415,1.386294,5.171851,1 +11,2,0,1,3,225189,0,8269.208,31.2293,1,12,1,171.6044,20.21422,28.94713,0,0,220.7657,0,0,0,8,1,4,67.6,0,0,75,0,0,0,0,1.386294,0,0,0,0,0,0,0,75,9.020415,1.386294,5.397102,1 +11,2,0,1,1,225190,0,8269.208,4.328542,1,12,1,16.17251,6.285714,0,0,0,22.45822,0,0,0,3,0,4,81.35272,11.84267,0,77.8,0,0,1,1,1.386294,0,0,0,0,0,0,0,77.8,9.020415,1.386294,3.111657,1 +11,2,0,1,2,225190,0,8269.208,5.328542,1,12,1,36.16708,0,0,0,0,36.16708,0,0,0,4,0,4,81.35272,11.84267,0,77.8,0,0,1,1,1.386294,0,0,0,0,0,0,0,77.8,9.020415,1.386294,3.588149,1 +11,2,0,1,3,225190,0,8269.208,6.328542,1,12,1,19.8268,2.620784,0,0,0,22.44758,0,0,0,3,0,4,81.35272,11.84267,0,77.8,0,0,1,1,1.386294,0,0,0,0,0,0,0,77.8,9.020415,1.386294,3.111183,1 +11,2,0,1,1,225191,0,8269.208,7.485284,0,12,1,67.00809,25.531,0,0,0,92.53909,0,0,0,8,0,4,83.3,11.84267,0,74.1,0,0,1,0,1.386294,0,0,0,0,0,0,0,74.1,9.020415,1.386294,4.527631,1 +11,2,0,1,2,225191,0,8269.208,8.485284,0,12,1,37.83784,6.535626,0,0,0,44.37346,0,0,0,4,0,4,83.3,11.84267,0,74.1,0,0,1,0,1.386294,0,0,0,0,0,0,0,74.1,9.020415,1.386294,3.792642,1 +11,2,0,1,3,225191,0,8269.208,9.485284,0,12,1,74.93163,11.32634,0,0,0,86.25797,0,0,0,4,0,4,83.3,11.84267,0,74.1,0,0,1,0,1.386294,0,0,0,0,0,0,0,74.1,9.020415,1.386294,4.457343,1 +11,2,0,1,1,225223,1,12310.85,38.20123,0,18,1,0,0,0,0,0,0,0,0,0,0,0,1,68.6,6.9,0,70.5,0,0,0,0,0,0,0,0,0,0,0,0,70.5,9.418318,0,,0 +11,2,0,1,2,225223,1,12310.85,39.20123,0,18,1,0,0,0,0,0,0,0,0,0,0,0,1,68.6,6.9,0,70.5,0,0,0,0,0,0,0,0,0,0,0,0,70.5,9.418318,0,,0 +11,2,0,1,3,225223,1,12310.85,40.20123,0,18,1,0,0,0,0,0,0,0,0,0,0,0,1,68.6,6.9,0,70.5,0,0,0,0,0,0,0,0,0,0,0,0,70.5,9.418318,0,,0 +11,2,0,0,1,225227,0,13358.94,12.84326,1,12,1,10.30514,0,0,0,0,10.30514,0,0,0,1,0,3,80,11.84267,0,59.3,0,282,1,1,1.098612,5.641907,0,0,0,0,0,0,59.3,9.500016,1.098612,2.332643,1 +11,2,0,0,2,225227,0,13358.94,13.84326,1,12,1,125.427,18.96047,0,0,0,144.3875,0,0,0,12,0,3,80,11.84267,0,59.3,0,282,1,1,1.098612,5.641907,0,0,0,0,0,0,59.3,9.500016,1.098612,4.972501,1 +11,2,0,0,3,225227,0,13358.94,14.84326,1,12,1,128.5005,20.93496,0,0,0,149.4354,0,0,0,14,0,3,80,11.84267,0,59.3,0,282,1,1,1.098612,5.641907,0,0,0,0,0,0,59.3,9.500016,1.098612,5.006864,1 +11,2,0,0,1,225228,0,13358.94,31.46064,1,12,1,68.92398,13.35653,0,0,0,82.28052,0,0,0,3,0,3,87.2,17.2,1,67,0,282,0,0,1.098612,5.641907,0,0,0,0,0,0,67,9.500016,1.098612,4.410134,1 +11,2,0,0,2,225228,0,13358.94,32.46064,1,12,1,51.73255,15.37335,0,0,0,67.1059,0,0,0,3,0,3,87.2,17.2,1,67,0,282,0,0,1.098612,5.641907,0,0,0,0,0,0,67,9.500016,1.098612,4.206272,1 +11,2,0,0,3,225228,0,13358.94,33.46064,1,12,1,28.45528,13.70822,0,0,0,42.16351,0,0,0,2,0,3,87.2,17.2,1,67,0,282,0,0,1.098612,5.641907,0,0,0,0,0,0,67,9.500016,1.098612,3.741555,1 +11,2,0,0,1,225229,0,13358.94,28.7666,0,16,1,122.9925,0,0,0,0,122.9925,0,0,0,3,0,3,78.2,13.8,0,76.1,0,282,0,0,1.098612,5.641907,0,0,0,0,0,0,76.1,9.500016,1.098612,4.812123,1 +11,2,0,0,2,225229,0,13358.94,29.7666,0,16,1,34.65105,4.367984,0,0,0,39.01904,0,0,0,3,0,3,78.2,13.8,0,76.1,0,282,0,0,1.098612,5.641907,0,0,0,0,0,0,76.1,9.500016,1.098612,3.66405,1 +11,2,0,0,3,225229,0,13358.94,30.7666,0,16,1,14.45348,8.988256,0,0,0,23.44173,0,0,0,1,0,3,78.2,13.8,0,76.1,0,282,0,0,1.098612,5.641907,0,0,0,0,0,0,76.1,9.500016,1.098612,3.154518,1 +11,2,0,1,1,225235,0,9003.52,1.303217,0,13,1,38.00539,5.3531,0,0,0,43.35849,0,0,0,4,0,4,81.35272,11.84267,0,81.5,0,0,1,0,1.386294,0,0,0,0,0,0,0,81.5,9.105482,1.386294,3.769503,1 +11,2,0,1,2,225235,0,9003.52,2.303217,0,13,1,36.60934,10.28993,0,0,0,46.89926,0,0,0,4,0,4,81.35272,11.84267,0,81.5,0,0,1,0,1.386294,0,0,0,0,0,0,0,81.5,9.105482,1.386294,3.848002,1 +11,2,0,1,3,225235,0,9003.52,3.303217,0,13,1,39.4257,13.86964,12.01003,0,0,65.30538,0,0,0,5,0,4,81.35272,11.84267,0,81.5,0,0,1,0,1.386294,0,0,0,0,0,0,0,81.5,9.105482,1.386294,4.179074,1 +11,2,0,1,1,225236,0,9003.52,34.85284,0,14,1,13.47709,0,33.95687,0,0,47.43396,0,0,0,1,0,4,73.9,6.9,0,69.3,0,0,0,0,1.386294,0,0,0,0,0,0,0,69.3,9.105482,1.386294,3.859339,1 +11,2,0,1,2,225236,0,9003.52,35.85284,0,14,1,0,0,0,0,0,0,0,0,0,0,0,4,73.9,6.9,0,69.3,0,0,0,0,1.386294,0,0,0,0,0,0,0,69.3,9.105482,1.386294,,0 +11,2,0,1,3,225236,0,9003.52,36.85284,0,14,1,0,7.657247,0,0,0,7.657247,0,0,0,0,0,4,73.9,6.9,0,69.3,0,0,0,0,1.386294,0,0,0,0,0,0,0,69.3,9.105482,1.386294,2.035653,1 +11,2,0,1,1,225237,0,9003.52,29.54962,1,13,1,25.87601,21.4124,0,0,0,47.28841,0,0,0,1,0,4,78.2,3.4,0,97.7,0,0,0,0,1.386294,0,0,0,0,0,0,0,97.7,9.105482,1.386294,3.856265,1 +11,2,0,1,2,225237,0,9003.52,30.54962,1,13,1,25.55283,23.20885,0,0,0,48.76167,0,0,0,1,0,4,78.2,3.4,0,97.7,0,0,0,0,1.386294,0,0,0,0,0,0,0,97.7,9.105482,1.386294,3.886945,1 +11,2,0,1,3,225237,0,9003.52,31.54962,1,13,1,42.38833,39.04284,0,0,0,81.43118,0,0,0,3,0,4,78.2,3.4,0,97.7,0,0,0,0,1.386294,0,0,0,0,0,0,0,97.7,9.105482,1.386294,4.399758,1 +11,2,0,1,1,225238,0,9003.52,5.182752,1,13,1,38.81401,1.590297,12.50135,0,0,52.90566,0,0,0,3,0,4,71.7,11.84267,0,96.3,0,0,1,1,1.386294,0,0,0,0,0,0,0,96.3,9.105482,1.386294,3.96851,1 +11,2,0,1,2,225238,0,9003.52,6.182752,1,13,1,20.63882,0,0,0,0,20.63882,0,0,0,3,0,4,71.7,11.84267,0,96.3,0,0,1,1,1.386294,0,0,0,0,0,0,0,96.3,9.105482,1.386294,3.027174,1 +11,2,0,1,3,225238,0,9003.52,7.182752,1,13,1,44.43938,11.43118,22.4248,0,0,78.29535,0,0,0,5,0,4,71.7,11.84267,0,96.3,0,0,1,1,1.386294,0,0,0,0,0,0,0,96.3,9.105482,1.386294,4.360488,1 +13,2,0,1,1,225242,0,8665.641,6.255989,1,12,1,86.06469,0,0,0,0,86.06469,0,0,0,4,1,4,90,11.84267,0,100,450,275.27,1,1,1.386294,5.617753,1,4.564348,6.160541,0,0,0,100,9.067237,1.386294,4.455099,1 +13,2,0,1,2,225242,0,8665.641,7.255989,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,90,11.84267,0,100,450,275.27,1,1,1.386294,5.617753,1,4.564348,6.160541,0,0,0,100,9.067237,1.386294,,0 +13,2,0,1,3,225242,0,8665.641,8.255989,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,90,11.84267,0,100,450,275.27,1,1,1.609438,5.617753,1,4.564348,6.160541,0,0,0,100,9.067237,1.609438,,0 +13,2,0,1,4,225242,0,8665.641,9.255989,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,90,11.84267,0,100,450,275.27,1,1,1.609438,5.617753,1,4.564348,6.160541,0,0,0,100,9.067237,1.609438,,0 +13,2,0,1,5,225242,0,8665.641,10.25599,1,12,1,59.1898,0,0,0,0,59.1898,0,0,0,5,0,5,90,11.84267,0,100,450,275.27,1,1,1.609438,5.617753,1,4.564348,6.160541,0,0,0,100,9.067237,1.609438,4.080749,1 +13,2,0,1,1,225243,0,8665.641,30.04791,0,16,1,267.7628,2.021563,0,0,0,269.7844,0,0,0,2,0,4,88.3,6.9,0,65.9,450,275.27,0,0,1.386294,5.617753,1,4.564348,6.160541,0,0,0,65.9,9.067237,1.386294,5.597623,1 +13,2,0,1,2,225243,0,8665.641,31.04791,0,16,1,116.5553,0,11.43489,0,0,127.9902,0,0,0,3,0,4,88.3,6.9,0,65.9,450,275.27,0,0,1.386294,5.617753,1,4.564348,6.160541,0,0,0,65.9,9.067237,1.386294,4.851954,1 +13,2,0,1,3,225243,0,8665.641,32.04791,0,16,1,27.34731,8.181404,8.204193,0,0,43.73291,0,0,0,1,0,5,88.3,6.9,0,65.9,450,275.27,0,0,1.609438,5.617753,1,4.564348,6.160541,0,0,0,65.9,9.067237,1.609438,3.778101,1 +13,2,0,1,4,225243,0,8665.641,33.04791,0,16,1,33.34723,0,52.10505,0,0,85.45227,0,0,0,2,0,5,88.3,6.9,0,65.9,450,275.27,0,0,1.609438,5.617753,1,4.564348,6.160541,0,0,0,65.9,9.067237,1.609438,4.447958,1 +13,2,0,1,5,225243,0,8665.641,34.04791,0,16,1,0,0,43.03451,0,0,43.03451,0,0,0,0,0,5,88.3,6.9,0,65.9,450,275.27,0,0,1.609438,5.617753,1,4.564348,6.160541,0,0,0,65.9,9.067237,1.609438,3.762002,1 +13,2,0,1,1,225244,0,8665.641,27.93703,1,12,1,179.8383,6.522911,33.07278,0,0,219.434,0,0,0,8,1,4,79.3,10.3,1,68.2,450,275.27,0,0,1.386294,5.617753,1,4.564348,6.160541,0,0,0,68.2,9.067237,1.386294,5.391051,1 +13,2,0,1,2,225244,0,8665.641,28.93703,1,12,1,250.4668,0,0,928.7469,776.683,1027.15,1,0,42,3,1,4,79.3,10.3,1,68.2,450,275.27,0,0,1.386294,5.617753,1,4.564348,6.160541,0,0,0,68.2,9.067237,1.386294,6.934543,1 +13,2,0,1,3,225244,0,8665.641,29.93703,1,12,1,16.45397,0,0,0,0,16.45397,0,0,0,1,0,5,79.3,10.3,1,68.2,450,275.27,0,0,1.609438,5.617753,1,4.564348,6.160541,0,0,0,68.2,9.067237,1.609438,2.800566,1 +13,2,0,1,4,225244,0,8665.641,30.93703,1,12,1,25.42726,3.705711,0,0,0,29.13297,0,0,0,1,0,5,79.3,10.3,1,68.2,450,275.27,0,0,1.609438,5.617753,1,4.564348,6.160541,0,0,0,68.2,9.067237,1.609438,3.371871,1 +13,2,0,1,5,225244,0,8665.641,31.93703,1,12,1,62.26557,9.433608,16.07652,0,0,87.7757,0,0,0,3,0,5,79.3,10.3,1,68.2,450,275.27,0,0,1.609438,5.617753,1,4.564348,6.160541,0,0,0,68.2,9.067237,1.609438,4.474785,1 +11,2,0,1,1,225266,0,13228.15,17.31964,1,12,1,27.30193,13.35653,0,0,0,40.65846,0,0,0,5,0,3,78.7,6.9,0,81.8,0,0,1,1,1.098612,0,0,0,0,0,0,0,81.8,9.490178,1.098612,3.705207,1 +11,2,0,1,2,225266,0,13228.15,18.31964,1,12,1,35.13909,27.03758,0,0,0,62.17667,0,0,0,6,0,3,78.7,6.9,0,81.8,0,0,0,0,1.098612,0,0,0,0,0,0,0,81.8,9.490178,1.098612,4.12998,1 +11,2,0,1,3,225266,0,13228.15,19.31964,1,12,1,47.99006,15.05872,0,0,0,63.04878,0,0,0,5,0,3,78.7,6.9,0,81.8,0,0,0,0,1.098612,0,0,0,0,0,0,0,81.8,9.490178,1.098612,4.143909,1 +11,2,0,1,1,225268,0,13228.15,45.7796,1,12,1,126.606,89.27731,0,13.3833,0,215.8833,0,0,2,6,0,3,61.2,17.2,0,62.5,0,0,0,0,1.098612,0,0,0,0,1,0,0,62.5,9.490178,1.098612,5.374738,1 +11,2,0,1,2,225268,0,13228.15,46.7796,1,12,1,236.7984,144.3143,43.77257,48.80429,0,424.8853,0,0,4,27,0,3,61.2,17.2,0,62.5,0,0,0,0,1.098612,0,0,0,0,1,0,0,62.5,9.490178,1.098612,6.051819,1 +11,2,0,1,3,225268,0,13228.15,47.7796,1,12,1,214.1373,114.6251,51.84282,65.49232,0,380.6052,0,0,5,15,0,3,61.2,17.2,0,62.5,0,0,0,0,1.098612,0,0,0,0,1,0,0,62.5,9.490178,1.098612,5.941762,1 +11,2,0,1,1,225270,0,13228.15,46.12183,0,16,1,16.05996,0,38.394,0,0,54.45396,0,0,0,1,0,3,83,0,0,77.3,0,0,0,0,1.098612,0,0,0,0,0,0,0,77.3,9.490178,1.098612,3.997356,1 +11,2,0,1,2,225270,0,13228.15,47.12183,0,16,1,0,0,0,0,0,0,0,0,0,0,0,3,83,0,0,77.3,0,0,0,0,1.098612,0,0,0,0,0,0,0,77.3,9.490178,1.098612,,0 +11,2,0,1,3,225270,0,13228.15,48.12183,0,16,1,160.2303,0,40.03162,0,201.8293,402.0912,1,0,0,4,0,3,83,0,0,77.3,0,0,0,0,1.098612,0,0,0,0,0,0,0,77.3,9.490178,1.098612,5.996679,1 +11,2,0,1,1,225277,0,6885.044,6.091718,0,12,1,8.165487,7.893304,0,0,0,16.05879,0,0,0,2,0,4,80,11.84267,0,81.5,0,357.36,1,0,1.386294,5.878744,0,0,0,1,0,0,81.5,8.837252,1.386294,2.776257,1 +11,2,0,1,2,225277,0,6885.044,7.091718,0,12,1,104.8067,16.08028,21.34787,0,0,142.2349,0,0,0,10,0,4,80,11.84267,0,81.5,0,357.36,1,0,1.386294,5.878744,0,0,0,1,0,0,81.5,8.837252,1.386294,4.95748,1 +11,2,0,1,3,225277,0,6885.044,8.091718,0,12,1,75.63102,16.57182,0,0,0,92.20284,0,0,0,6,0,4,80,11.84267,0,81.5,0,357.36,1,0,1.386294,5.878744,0,0,0,1,0,0,81.5,8.837252,1.386294,4.523991,1 +11,2,0,1,1,225278,0,6885.044,25.80972,1,12,1,26.12956,8.301579,0,21.50245,0,34.43114,0,0,2,3,0,4,58,13.8,0,67,0,357.36,0,0,1.386294,5.878744,0,0,0,1,0,0,67,8.837252,1.386294,3.538961,1 +11,2,0,1,2,225278,0,6885.044,26.80972,1,12,1,107.2844,19.82161,0,304.7572,0,127.106,0,0,41,7,0,4,58,13.8,0,67,0,357.36,0,0,1.386294,5.878744,0,0,0,1,0,0,67,8.837252,1.386294,4.845022,1 +11,2,0,1,3,225278,0,6885.044,27.80972,1,12,1,50.9408,6.516751,0,215.6953,0,57.45755,0,0,31,3,0,4,58,13.8,0,67,0,357.36,0,0,1.386294,5.878744,0,0,0,1,0,0,67,8.837252,1.386294,4.051046,1 +11,2,0,1,1,225279,0,6885.044,29.12252,0,12,1,10.34295,11.81274,0,37.83342,0,22.15569,0,0,3,1,0,4,64.9,6.9,0,77.3,0,357.36,0,0,1.386294,5.878744,0,0,0,1,0,0,77.3,8.837252,1.386294,3.098094,1 +11,2,0,1,2,225279,0,6885.044,30.12252,0,12,1,79.16254,2.527255,0,304.7572,0,81.68979,0,0,41,5,0,4,64.9,6.9,0,77.3,0,357.36,0,0,1.386294,5.878744,0,0,0,1,0,0,77.3,8.837252,1.386294,4.402929,1 +11,2,0,1,3,225279,0,6885.044,31.12252,0,12,1,52.89124,9.224415,0,215.6953,0,62.11565,0,0,31,5,0,4,64.9,6.9,0,77.3,0,357.36,0,0,1.386294,5.878744,0,0,0,1,0,0,77.3,8.837252,1.386294,4.128998,1 +11,2,0,1,1,225280,0,6885.044,4.569473,1,12,1,59.88024,6.096897,0,0,0,65.97713,0,0,0,9,0,4,81.35272,11.84267,0,70.4,0,357.36,1,1,1.386294,5.878744,0,0,0,1,0,0,70.4,8.837252,1.386294,4.189308,1 +11,2,0,1,2,225280,0,6885.044,5.569473,1,12,1,75.3221,4.905848,0,0,277.8494,358.0773,1,0,0,8,0,4,81.35272,11.84267,0,70.4,0,357.36,1,1,1.386294,5.878744,0,0,0,1,0,0,70.4,8.837252,1.386294,5.880749,1 +11,2,0,1,3,225280,0,6885.044,6.569473,1,12,1,22.02845,6.723268,0,0,0,28.75172,0,0,0,4,0,4,81.35272,11.84267,0,70.4,0,357.36,1,1,1.386294,5.878744,0,0,0,1,0,0,70.4,8.837252,1.386294,3.358698,1 +15,2,95,0,1,225281,0,10362.61,26.36003,0,15,1,0,0,0,0,0,0,0,0,0,0,0,2,75,0,0,73.9,984.8,697.48,0,0,.6931472,6.547474,0,4.564348,6.943732,0,0,0,73.9,9.246056,.6931472,,0 +15,2,95,0,2,225281,0,10362.61,27.36003,0,15,1,126.7692,4.119082,0,0,0,130.8882,0,0,0,3,0,2,75,0,0,73.9,984.8,697.48,0,0,.6931472,6.547474,0,4.564348,6.943732,0,0,0,73.9,9.246056,.6931472,4.874344,1 +15,2,95,0,3,225281,0,10362.61,28.36003,0,15,1,0,0,0,0,0,0,0,0,0,0,0,3,75,0,0,73.9,984.8,697.48,0,0,1.098612,6.547474,0,4.564348,6.943732,0,0,0,73.9,9.246056,1.098612,,0 +15,2,95,0,4,225281,0,10362.61,29.36003,0,15,1,0,0,0,0,0,0,0,0,0,0,0,4,75,0,0,73.9,984.8,697.48,0,0,1.386294,6.547474,0,4.564348,6.943732,0,0,0,73.9,9.246056,1.386294,,0 +15,2,95,0,5,225281,0,10362.61,30.36003,0,15,1,0,0,0,0,0,0,0,0,0,0,0,4,75,0,0,73.9,984.8,697.48,0,0,1.386294,6.547474,0,4.564348,6.943732,0,0,0,73.9,9.246056,1.386294,,0 +15,2,95,0,1,225282,0,10362.61,23.77276,1,12,1,0,3.74197,0,0,0,3.74197,0,0,0,0,0,2,54.3,17.2,0,56.8,984.8,697.48,0,0,.6931472,6.547474,0,4.564348,6.943732,0,0,0,56.8,9.246056,.6931472,1.319612,1 +15,2,95,0,2,225282,0,10362.61,24.77276,1,12,1,42.94778,6.82284,44.34358,0,656.9839,751.0981,1,0,0,2,1,2,54.3,17.2,0,56.8,984.8,697.48,0,0,.6931472,6.547474,0,4.564348,6.943732,0,0,0,56.8,9.246056,.6931472,6.621536,1 +15,2,95,0,3,225282,0,10362.61,25.77276,1,12,1,0,15.13098,0,0,614.4761,629.6071,1,0,0,0,0,3,54.3,17.2,0,56.8,984.8,697.48,0,0,1.098612,6.547474,0,4.564348,6.943732,0,0,0,56.8,9.246056,1.098612,6.445096,1 +15,2,95,0,4,225282,0,10362.61,26.77276,1,12,1,114.0199,0,2.336642,0,0,116.3565,0,0,0,4,0,4,54.3,17.2,0,56.8,984.8,697.48,0,0,1.386294,6.547474,0,4.564348,6.943732,0,0,0,56.8,9.246056,1.386294,4.756659,1 +15,2,95,0,5,225282,0,10362.61,27.77276,1,12,1,9.314456,0,0,0,0,9.314456,0,0,0,1,0,4,54.3,17.2,0,56.8,984.8,697.48,0,0,1.386294,6.547474,0,4.564348,6.943732,0,0,0,56.8,9.246056,1.386294,2.231568,1 +6,2,25,1,1,225286,0,6382.991,25.86448,1,13,1,18.38865,20.55675,0,0,596.7612,635.7067,1,0,0,1,0,2,77.7,10.3,0,63.6,902.1,902.1,0,0,.6931472,6.804725,0,3.258096,8.19102,1,0,0,63.6,8.761549,.6931472,6.454737,1 +6,2,25,1,2,225286,0,6382.991,26.86448,1,13,1,23.23084,23.51391,0,0,0,46.74475,0,0,0,1,0,3,77.7,10.3,0,63.6,902.1,902.1,0,0,1.098612,6.804725,0,3.258096,8.19102,1,0,0,63.6,8.761549,1.098612,3.844702,1 +6,2,25,1,3,225286,0,6382.991,27.86448,1,13,1,17.38934,16.80217,0,0,723.0352,757.2267,1,0,0,1,0,3,77.7,10.3,0,63.6,902.1,902.1,0,0,1.098612,6.804725,0,3.258096,8.19102,1,0,0,63.6,8.761549,1.098612,6.629663,1 +6,2,25,1,1,225287,0,6382.991,24.72827,0,16,1,34.79657,2.45182,34.04176,0,0,71.29015,0,0,0,4,0,2,88.3,6.9,0,76.1,902.1,902.1,0,0,.6931472,6.804725,0,3.258096,8.19102,0,0,0,76.1,8.761549,.6931472,4.266758,1 +6,2,25,1,2,225287,0,6382.991,25.72827,0,16,1,17.20351,1.512933,0,0,0,18.71645,0,0,0,2,0,3,88.3,6.9,0,76.1,902.1,902.1,0,0,1.098612,6.804725,0,3.258096,8.19102,0,0,0,76.1,8.761549,1.098612,2.929403,1 +6,2,25,1,3,225287,0,6382.991,26.72827,0,16,1,0,0,0,0,0,0,0,0,0,0,0,3,88.3,6.9,0,76.1,902.1,902.1,0,0,1.098612,6.804725,0,3.258096,8.19102,0,0,0,76.1,8.761549,1.098612,,0 +13,2,0,0,1,225299,0,10360.12,4,1,16,1,10.24259,0,0,0,0,10.24259,0,0,0,1,0,4,81.35272,11.84267,0,96.3,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,96.3,9.245815,1.386294,2.326554,1 +13,2,0,0,2,225299,0,10360.12,5,1,16,1,14.25061,0,0,0,0,14.25061,0,0,0,1,0,4,81.35272,11.84267,0,96.3,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,96.3,9.245815,1.386294,2.6568,1 +13,2,0,0,3,225299,0,10360.12,6,1,16,1,5.469462,0,0,0,0,5.469462,0,0,0,0,1,4,81.35272,11.84267,0,96.3,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,96.3,9.245815,1.386294,1.69918,1 +13,2,0,0,1,225300,0,10360.12,6.368241,1,16,1,0,0,0,0,0,0,0,0,0,0,0,4,80,11.84267,0,96.3,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,96.3,9.245815,1.386294,,0 +13,2,0,0,2,225300,0,10360.12,7.368241,1,16,1,0,0,0,0,0,0,0,0,0,0,0,4,80,11.84267,0,96.3,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,96.3,9.245815,1.386294,,0 +13,2,0,0,3,225300,0,10360.12,8.368241,1,16,1,23.701,1.800365,0,0,0,25.50137,0,0,0,3,1,4,80,11.84267,0,96.3,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,96.3,9.245815,1.386294,3.238732,1 +13,2,0,0,1,225301,0,10360.12,36.89528,1,16,1,369.3261,11.26146,0,0,0,380.5876,0,0,0,5,0,4,76.6,6.9,0,81.8,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,81.8,9.245815,1.386294,5.941716,1 +13,2,0,0,2,225301,0,10360.12,37.89528,1,16,1,15.72482,4.34398,0,0,0,20.0688,0,0,0,0,2,4,76.6,6.9,0,81.8,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,81.8,9.245815,1.386294,2.999166,1 +13,2,0,0,3,225301,0,10360.12,38.89528,1,16,1,25.97995,0,0,0,0,25.97995,0,0,0,1,1,4,76.6,6.9,0,81.8,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,81.8,9.245815,1.386294,3.257325,1 +13,2,0,0,1,225302,0,10360.12,34.00411,0,20,1,0,0,0,0,0,0,0,0,0,0,0,4,83,3.4,0,84.1,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,84.1,9.245815,1.386294,,0 +13,2,0,0,2,225302,0,10360.12,35.00411,0,20,1,65.8231,4.914005,36.85504,0,0,107.5921,0,0,0,6,0,4,83,3.4,0,84.1,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,84.1,9.245815,1.386294,4.678348,1 +13,2,0,0,3,225302,0,10360.12,36.00411,0,20,1,0,3.245214,0,0,0,3.245214,0,0,0,0,0,4,83,3.4,0,84.1,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,84.1,9.245815,1.386294,1.177181,1 +17,2,25,1,1,225309,0,4666.276,59.61944,1,12,1,57.43059,0,0,0,0,57.43059,0,0,0,1,0,1,78.7,27.6,0,81.8,200,200,0,0,0,5.298317,0,3.258096,6.684612,0,0,0,81.8,8.448331,0,4.050577,1 +17,2,25,1,2,225309,0,4666.276,60.61944,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,78.7,27.6,0,81.8,200,200,0,0,0,5.298317,0,3.258096,6.684612,0,0,0,81.8,8.448331,0,,0 +17,2,25,1,3,225309,0,4666.276,61.61944,1,12,1,272.1432,0,48.88022,0,0,321.0234,0,0,0,19,3,1,78.7,27.6,0,81.8,200,200,0,0,0,5.298317,0,3.258096,6.684612,0,0,0,81.8,8.448331,0,5.771514,1 +17,2,25,1,4,225309,0,4666.276,62.61944,1,12,1,511.3589,0,0,0,0,511.3589,0,0,0,30,0,1,78.7,27.6,0,81.8,200,200,0,0,0,5.298317,0,3.258096,6.684612,0,0,0,81.8,8.448331,0,6.237072,1 +17,2,25,1,5,225309,0,4666.276,63.61944,1,12,1,276.1617,0,0,0,0,276.1617,0,0,0,18,0,1,78.7,27.6,0,81.8,200,200,0,0,0,5.298317,0,3.258096,6.684612,0,0,0,81.8,8.448331,0,5.620986,1 +11,2,0,0,1,225316,0,4458.622,3.227926,0,10,1,28.57143,.8571429,0,0,0,29.42857,0,0,0,1,0,5,81.35272,11.84267,0,100,0,0,1,0,1.609438,0,0,0,0,0,0,0,100,8.40282,1.609438,3.381966,1 +11,2,0,0,2,225316,0,4458.622,4.227926,0,10,1,8.353808,0,0,0,0,8.353808,0,0,0,1,0,6,81.35272,11.84267,0,100,0,0,1,0,1.791759,0,0,0,0,0,0,0,100,8.40282,1.791759,2.122718,1 +11,2,0,0,3,225316,0,4458.622,5.227926,0,10,1,17.77575,14.33455,0,71.78669,0,32.1103,0,0,5,1,0,6,81.35272,11.84267,0,100,0,0,1,0,1.791759,0,0,0,0,0,0,0,100,8.40282,1.791759,3.469177,1 +11,2,0,0,4,225316,0,4458.622,6.227926,0,10,1,6.669446,17.38224,0,68.77866,0,24.05169,0,0,4,1,0,6,81.35272,11.84267,0,100,0,0,1,0,1.791759,0,0,0,0,0,0,0,100,8.40282,1.791759,3.180205,1 +11,2,0,0,1,225317,0,4458.622,26.13826,1,10,1,511.2668,185.6658,0,0,1898.038,2594.97,4,0,0,28,1,5,76.6,17.2,1,59.1,0,0,0,0,1.609438,0,0,0,0,1,0,0,59.1,8.40282,1.609438,7.861331,1 +11,2,0,0,2,225317,0,4458.622,27.13826,1,10,1,377.6658,144.4275,31.95577,307.0909,2690.865,3244.914,2,0,37,20,1,6,76.6,17.2,1,59.1,0,0,0,0,1.791759,0,0,0,0,1,0,0,59.1,8.40282,1.791759,8.084845,1 +11,2,0,0,3,225317,0,4458.622,28.13826,1,10,1,32.47493,128.9471,0,789.6536,543.5734,704.9954,1,0,39,2,0,6,76.6,17.2,1,59.1,0,0,0,0,1.791759,0,0,0,0,1,0,0,59.1,8.40282,1.791759,6.558191,1 +11,2,0,0,4,225317,0,4458.622,29.13826,1,10,1,53.14714,75.47311,0,673.1971,0,128.6203,0,0,35,0,0,6,76.6,17.2,1,59.1,0,0,0,0,1.791759,0,0,0,0,1,0,0,59.1,8.40282,1.791759,4.856864,1 +11,2,0,0,5,225317,0,4458.622,30.13826,1,10,1,0,54.5949,0,720.1801,1144.111,1198.706,1,0,34,0,0,4,76.6,17.2,1,59.1,0,0,0,0,1.386294,0,0,0,0,1,0,0,59.1,8.40282,1.386294,7.088998,1 +11,2,0,0,1,225318,0,4458.622,26.49966,0,13,1,124.3935,13.84906,30.18868,129.3801,0,168.4313,0,0,2,4,1,5,75.5,10.3,0,69.3,0,0,0,0,1.609438,0,0,0,0,0,0,0,69.3,8.40282,1.609438,5.126528,1 +11,2,0,0,2,225318,0,4458.622,27.49966,0,13,1,17.69042,30.41769,0,341.5577,1179.238,1227.346,1,0,39,1,0,6,75.5,10.3,0,69.3,0,0,0,0,1.791759,0,0,0,0,0,0,0,69.3,8.40282,1.791759,7.11261,1 +11,2,0,0,3,225318,0,4458.622,28.49966,0,13,1,56.74567,8.773929,27.7165,881.9507,0,93.2361,0,0,44,3,1,6,75.5,10.3,0,69.3,0,0,0,0,1.791759,0,0,0,0,0,0,0,69.3,8.40282,1.791759,4.535135,1 +11,2,0,0,4,225318,0,4458.622,29.49966,0,13,1,15.00625,1.229679,31.17132,216.757,0,47.40725,0,0,11,0,1,6,75.5,10.3,0,69.3,0,0,0,0,1.791759,0,0,0,0,0,0,0,69.3,8.40282,1.791759,3.858775,1 +11,2,0,0,5,225318,0,4458.622,30.49966,0,13,1,36.03151,5.915229,18.75469,96.58665,0,60.70142,0,0,5,2,0,4,75.5,10.3,0,69.3,0,0,0,0,1.386294,0,0,0,0,0,0,0,69.3,8.40282,1.386294,4.105967,1 +11,2,0,0,1,225319,0,4458.622,7.986311,0,10,1,6.738544,2.12938,0,0,0,8.867925,0,0,0,1,0,5,83.3,11.84267,0,100,0,0,1,0,1.609438,0,0,0,0,0,0,0,100,8.40282,1.609438,2.182441,1 +11,2,0,0,2,225319,0,4458.622,8.986311,0,10,1,135.4889,3.882064,6.358722,0,0,145.7297,0,0,0,7,0,6,83.3,11.84267,0,100,0,0,1,0,1.791759,0,0,0,0,0,0,0,100,8.40282,1.791759,4.981754,1 +11,2,0,0,3,225319,0,4458.622,9.986311,0,10,1,0,0,0,0,0,0,0,0,0,0,0,6,83.3,11.84267,0,100,0,0,1,0,1.791759,0,0,0,0,0,0,0,100,8.40282,1.791759,,0 +11,2,0,0,4,225319,0,4458.622,10.98631,0,10,1,6.461025,0,0,22.92622,0,6.461025,0,0,1,1,0,6,83.3,11.84267,0,100,0,0,1,0,1.791759,0,0,0,0,0,0,0,100,8.40282,1.791759,1.865788,1 +11,2,0,0,5,225319,0,4458.622,11.98631,0,10,1,20.25131,0,0,0,0,20.25131,0,0,0,1,0,4,83.3,11.84267,0,100,0,0,1,0,1.386294,0,0,0,0,0,0,0,100,8.40282,1.386294,3.008219,1 +11,2,0,0,1,225320,0,4458.622,6.954141,1,10,1,0,1.28841,0,0,0,1.28841,0,0,0,0,0,5,83.3,11.84267,0,92.6,0,0,1,1,1.609438,0,0,0,0,0,0,0,92.6,8.40282,1.609438,.2534087,1 +11,2,0,0,2,225320,0,4458.622,7.954141,1,10,1,0,0,0,0,0,0,0,0,0,0,0,6,83.3,11.84267,0,92.6,0,0,1,1,1.791759,0,0,0,0,0,0,0,92.6,8.40282,1.791759,,0 +11,2,0,0,3,225320,0,4458.622,8.954141,1,10,1,8.659982,0,0,0,0,8.659982,0,0,0,1,0,6,83.3,11.84267,0,92.6,0,0,1,1,1.791759,0,0,0,0,0,0,0,92.6,8.40282,1.791759,2.158713,1 +11,2,0,0,4,225320,0,4458.622,9.954141,1,10,1,23.13464,0,0,0,0,23.13464,0,0,0,2,0,6,83.3,11.84267,0,92.6,0,0,1,1,1.791759,0,0,0,0,0,0,0,92.6,8.40282,1.791759,3.141331,1 +13,2,0,1,1,225331,0,9689.149,61.01574,0,14,1,156.233,168.7534,0,0,0,324.9864,0,0,0,11,0,2,88.3,3.4,0,85.2,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,85.2,9.178865,.6931472,5.783783,1 +13,2,0,1,2,225331,0,9689.149,62.01574,0,14,1,79.41031,49.57879,0,0,0,128.9891,0,0,0,7,0,2,88.3,3.4,0,85.2,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,85.2,9.178865,.6931472,4.859728,1 +13,2,0,1,3,225331,0,9689.149,63.01574,0,14,1,112.7811,23.82744,43.63469,0,0,180.2432,0,0,0,7,0,2,88.3,3.4,0,85.2,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,85.2,9.178865,.6931472,5.194307,1 +13,2,0,1,1,225332,0,9689.149,54.63107,1,15,1,36.47251,0,43.22809,0,0,79.7006,0,0,0,3,0,2,82.4,10.3,0,65.9,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,65.9,9.178865,.6931472,4.378277,1 +13,2,0,1,2,225332,0,9689.149,55.63107,1,15,1,9.910803,5.896928,0,0,0,15.80773,0,0,0,1,0,2,82.4,10.3,0,65.9,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,65.9,9.178865,.6931472,2.760499,1 +13,2,0,1,3,225332,0,9689.149,56.63107,1,15,1,148.6921,12.39101,45.69986,0,0,206.7829,0,0,0,8,0,2,82.4,10.3,0,65.9,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,65.9,9.178865,.6931472,5.33167,1 +6,2,25,1,1,225333,0,5103.226,30.43121,0,17,1,57.95148,0,46.84636,0,0,104.7978,0,0,0,4,0,1,87.2,6.9,0,85.2,950,950,0,0,0,6.856462,0,3.258096,8.242756,0,0,0,85.2,8.537824,0,4.652033,1 +6,2,25,1,2,225333,0,5103.226,31.43121,0,17,1,26.04423,0,0,0,0,26.04423,0,0,0,2,0,1,87.2,6.9,0,85.2,950,950,0,0,0,6.856462,0,3.258096,8.242756,0,0,0,85.2,8.537824,0,3.259796,1 +6,2,25,1,3,225333,0,5103.226,32.43121,0,17,1,64.72197,0,0,0,0,64.72197,0,0,0,2,0,1,87.2,6.9,0,85.2,950,950,0,0,0,6.856462,0,3.258096,8.242756,0,0,0,85.2,8.537824,0,4.170101,1 +6,2,25,1,4,225333,0,5103.226,33.43121,0,17,1,28.76198,0,36.1734,0,0,64.93539,0,0,0,2,0,1,87.2,6.9,0,85.2,950,950,0,0,0,6.856462,0,3.258096,8.242756,0,0,0,85.2,8.537824,0,4.173393,1 +6,2,25,1,5,225333,0,5103.226,34.43121,0,17,1,77.08177,0,0,0,300.3526,377.4344,1,0,0,5,0,1,87.2,6.9,0,85.2,950,950,0,0,0,6.856462,0,3.258096,8.242756,0,0,0,85.2,8.537824,0,5.933397,1 +18,2,25,1,1,225341,0,9695.602,41.34702,1,12,1,19.80728,16.73983,0,0,0,36.54711,0,0,0,3,0,5,60.6,24.1,0,58,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,58,9.179531,1.609438,3.598602,1 +18,2,25,1,2,225341,0,9695.602,42.34702,1,12,1,13.6652,16.59346,0,0,0,30.25866,0,0,0,1,0,5,60.6,24.1,0,58,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,58,9.179531,1.609438,3.409783,1 +18,2,25,1,3,225341,0,9695.602,43.34702,1,12,1,0,11.42728,0,0,0,11.42728,0,0,0,0,0,5,60.6,24.1,0,58,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,58,9.179531,1.609438,2.436004,1 +18,2,25,1,1,225342,0,9695.602,5.620808,1,12,1,21.41328,2.623126,0,0,0,24.0364,0,0,0,2,0,5,73.3,11.84267,0,66.7,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,1,0,0,66.7,9.179531,1.609438,3.179569,1 +18,2,25,1,2,225342,0,9695.602,6.620808,1,12,1,17.0815,0,0,0,0,17.0815,0,0,0,1,0,5,73.3,11.84267,0,66.7,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,1,0,0,66.7,9.179531,1.609438,2.837996,1 +18,2,25,1,3,225342,0,9695.602,7.620808,1,12,1,6.775068,0,0,0,0,6.775068,0,0,0,1,0,5,73.3,11.84267,0,66.7,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,1,0,0,66.7,9.179531,1.609438,1.913249,1 +18,2,25,1,1,225343,0,9695.602,40.88433,0,14,1,0,0,0,0,0,0,0,0,0,0,0,5,45.2,17.2,0,46.6,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,46.6,9.179531,1.609438,,0 +18,2,25,1,2,225343,0,9695.602,41.88433,0,14,1,0,1.903368,0,0,0,1.903368,0,0,0,0,0,5,45.2,17.2,0,46.6,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,46.6,9.179531,1.609438,.6436247,1 +18,2,25,1,3,225343,0,9695.602,42.88433,0,14,1,49.23216,1.124661,28.73532,0,0,79.09214,0,0,0,2,1,5,45.2,17.2,0,46.6,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,46.6,9.179531,1.609438,4.370614,1 +18,2,25,1,1,225344,0,9695.602,8.183436,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,70,11.84267,0,70.4,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,0,0,0,70.4,9.179531,1.609438,,0 +18,2,25,1,2,225344,0,9695.602,9.183436,1,12,1,17.0815,0,0,0,0,17.0815,0,0,0,1,0,5,70,11.84267,0,70.4,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,0,0,0,70.4,9.179531,1.609438,2.837996,1 +18,2,25,1,3,225344,0,9695.602,10.18344,1,12,1,9.485095,2.66486,0,0,0,12.14995,0,0,0,1,0,5,70,11.84267,0,70.4,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,0,0,0,70.4,9.179531,1.609438,2.497325,1 +18,2,25,1,1,225345,0,9695.602,3.370294,0,12,1,9.635974,4.175589,0,0,0,13.81156,0,0,0,1,0,5,81.35272,11.84267,0,77.8,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,77.8,9.179531,1.609438,2.625506,1 +18,2,25,1,2,225345,0,9695.602,4.370294,0,12,1,30.25866,12.9429,0,5.856515,0,43.20156,0,0,1,5,0,5,81.35272,11.84267,0,77.8,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,77.8,9.179531,1.609438,3.765877,1 +18,2,25,1,3,225345,0,9695.602,5.370294,0,12,1,27.43902,4.042457,0,0,0,31.48148,0,0,0,2,0,5,81.35272,11.84267,0,77.8,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,77.8,9.179531,1.609438,3.449399,1 +11,2,0,0,1,225349,0,3643.402,28.30116,1,18,1,39.90899,3.752677,28.1531,0,0,71.81477,0,0,0,1,1,3,79.8,6.9,0,88.6,0,864.48,0,0,1.098612,6.762128,0,0,0,0,0,0,88.6,8.200948,1.098612,4.27409,1 +11,2,0,0,2,225349,0,3643.402,29.30116,1,18,1,38.55539,0,0,0,0,38.55539,0,0,0,2,0,3,79.8,6.9,0,88.6,0,864.48,0,0,1.098612,6.762128,0,0,0,0,0,0,88.6,8.200948,1.098612,3.652096,1 +11,2,0,0,3,225349,0,3643.402,30.30116,1,18,1,114.7245,27.63324,33.23397,0,964.2954,1139.887,2,0,0,2,0,3,79.8,6.9,0,88.6,0,864.48,0,0,1.098612,6.762128,0,0,0,0,0,0,88.6,8.200948,1.098612,7.038684,1 +11,2,0,0,1,225350,0,3643.402,29.57974,0,20,1,10.70664,0,30.29443,0,0,41.00107,0,0,0,0,1,3,70.7,0,0,92,0,864.48,0,0,1.098612,6.762128,0,0,0,0,0,0,92,8.200948,1.098612,3.713598,1 +11,2,0,0,2,225350,0,3643.402,30.57974,0,20,1,28.30649,4.367984,0,0,0,32.67448,0,0,0,2,1,3,70.7,0,0,92,0,864.48,0,0,1.098612,6.762128,0,0,0,0,0,0,92,8.200948,1.098612,3.486594,1 +11,2,0,0,3,225350,0,3643.402,31.57974,0,20,1,56.00723,0,35.04065,0,0,91.04787,0,0,0,2,0,3,70.7,0,0,92,0,864.48,0,0,1.098612,6.762128,0,0,0,0,0,0,92,8.200948,1.098612,4.511385,1 +5,2,25,1,1,225353,0,8343.108,58.00411,1,17,1,56.33423,0,32.53909,0,0,88.87331,0,0,0,3,0,1,91.5,13.8,0,93.2,333.12,333.12,0,0,0,5.808503,0,3.258096,7.194797,0,0,0,93.2,9.029311,0,4.487212,1 +5,2,25,1,2,225353,0,8343.108,59.00411,1,17,1,25.55283,2.353808,0,0,0,27.90663,0,0,0,3,0,1,91.5,13.8,0,93.2,333.12,333.12,0,0,0,5.808503,0,3.258096,7.194797,0,0,0,93.2,9.029311,0,3.328864,1 +5,2,25,1,3,225353,0,8343.108,60.00411,1,17,1,131.0392,18.0082,0,0,991.0665,1140.114,1,0,0,3,0,1,91.5,13.8,0,93.2,333.12,333.12,0,0,0,5.808503,0,3.258096,7.194797,0,0,0,93.2,9.029311,0,7.038883,1 +11,2,0,1,1,225362,0,12487.39,11.57016,1,12,1,69.32615,0,0,0,0,69.32615,0,0,0,2,0,6,93.3,11.84267,0,100,0,445.56,1,1,1.791759,6.099332,0,0,0,0,0,0,100,9.432554,1.791759,4.238822,1 +11,2,0,1,2,225362,0,12487.39,12.57016,1,12,1,14.25061,1.769042,0,0,0,16.01966,0,0,0,2,0,6,93.3,11.84267,0,100,0,445.56,1,1,1.791759,6.099332,0,0,0,0,0,0,100,9.432554,1.791759,2.773816,1 +11,2,0,1,3,225362,0,12487.39,13.57016,1,12,1,54.69462,0,0,0,0,54.69462,0,0,0,5,0,6,93.3,11.84267,0,100,0,445.56,1,1,1.791759,6.099332,0,0,0,0,0,0,100,9.432554,1.791759,4.001765,1 +11,2,0,1,1,225363,0,12487.39,12.71458,1,12,1,147.4933,6.592992,0,0,0,154.0863,0,0,0,7,0,6,88.3,11.84267,0,85.2,0,445.56,1,1,1.791759,6.099332,0,0,0,0,0,0,85.2,9.432554,1.791759,5.037513,1 +11,2,0,1,2,225363,0,12487.39,13.71458,1,12,1,102.7027,3.464373,0,0,0,106.1671,0,0,0,12,0,6,88.3,11.84267,0,85.2,0,445.56,1,1,1.791759,6.099332,0,0,0,0,0,0,85.2,9.432554,1.791759,4.665014,1 +11,2,0,1,3,225363,0,12487.39,14.71458,1,12,1,73.701,2.119416,32.16955,0,0,107.99,0,0,0,6,0,6,88.3,11.84267,0,85.2,0,445.56,1,1,1.791759,6.099332,0,0,0,0,0,0,85.2,9.432554,1.791759,4.682038,1 +11,2,0,1,1,225364,0,12487.39,9.730322,0,12,1,33.42318,6.7062,0,0,0,40.12938,0,0,0,4,0,6,80,11.84267,0,88.9,0,445.56,1,0,1.791759,6.099332,0,0,0,0,0,0,88.9,9.432554,1.791759,3.692109,1 +11,2,0,1,2,225364,0,12487.39,10.73032,0,12,1,27.51843,1.090909,0,0,0,28.60934,0,0,0,3,0,6,80,11.84267,0,88.9,0,445.56,1,0,1.791759,6.099332,0,0,0,0,0,0,88.9,9.432554,1.791759,3.353733,1 +11,2,0,1,3,225364,0,12487.39,11.73032,0,12,1,36.00729,6.736554,0,0,0,42.74385,0,0,0,4,0,6,80,11.84267,0,88.9,0,445.56,1,0,1.791759,6.099332,0,0,0,0,0,0,88.9,9.432554,1.791759,3.755225,1 +11,2,0,1,1,225365,0,12487.39,30.71595,1,12,1,175.7412,29.02426,0,0,0,204.7655,0,0,0,11,0,6,83,10.3,0,78.4,0,445.56,0,0,1.791759,6.099332,0,0,0,0,0,0,78.4,9.432554,1.791759,5.321866,1 +11,2,0,1,2,225365,0,12487.39,31.71595,1,12,1,122.8501,28.13268,34.93366,0,0,185.9165,0,0,0,9,0,6,83,10.3,0,78.4,0,445.56,0,0,1.791759,6.099332,0,0,0,0,0,0,78.4,9.432554,1.791759,5.225297,1 +11,2,0,1,3,225365,0,12487.39,32.71595,1,12,1,112.124,15.71103,0,0,0,127.835,0,0,0,5,0,6,83,10.3,0,78.4,0,445.56,0,0,1.791759,6.099332,0,0,0,0,0,0,78.4,9.432554,1.791759,4.85074,1 +11,2,0,1,1,225366,0,12487.39,3.638604,1,12,1,25.33693,0,0,0,0,25.33693,0,0,0,2,0,6,81.35272,11.84267,0,88.9,0,445.56,1,1,1.791759,6.099332,0,0,0,0,0,0,88.9,9.432554,1.791759,3.232263,1 +11,2,0,1,2,225366,0,12487.39,4.638604,1,12,1,31.44963,2.039312,0,0,0,33.48895,0,0,0,2,0,6,81.35272,11.84267,0,88.9,0,445.56,1,1,1.791759,6.099332,0,0,0,0,0,0,88.9,9.432554,1.791759,3.511215,1 +11,2,0,1,3,225366,0,12487.39,5.638604,1,12,1,21.87785,1.891522,0,0,0,23.76937,0,0,0,1,0,6,81.35272,11.84267,0,88.9,0,445.56,1,1,1.791759,6.099332,0,0,0,0,0,0,88.9,9.432554,1.791759,3.168398,1 +11,2,0,1,1,225367,0,12487.39,32.24093,0,13,1,115.5795,10.84636,32.28571,0,583.7305,742.4421,1,0,0,3,0,6,78.7,20.7,0,88.6,0,445.56,0,0,1.791759,6.099332,0,0,0,0,0,0,88.6,9.432554,1.791759,6.609945,1 +11,2,0,1,2,225367,0,12487.39,33.24093,0,13,1,126.0442,3.759214,0,0,0,129.8034,0,0,0,3,0,6,78.7,20.7,0,88.6,0,445.56,0,0,1.791759,6.099332,0,0,0,0,0,0,88.6,9.432554,1.791759,4.866021,1 +11,2,0,1,3,225367,0,12487.39,34.24093,0,13,1,249.3163,12.33364,0,0,0,261.65,0,0,0,6,0,6,78.7,20.7,0,88.6,0,445.56,0,0,1.791759,6.099332,0,0,0,0,0,0,88.6,9.432554,1.791759,5.567008,1 +11,2,0,1,1,225371,0,3402.933,61.54415,1,14,1,193.8005,150.3181,0,0,0,344.1186,0,0,0,8,0,1,87.2,41.4,1,48.9,0,293,0,0,0,5.680172,0,0,0,0,1,0,48.9,8.132687,0,5.840986,1 +11,2,0,1,2,225371,0,3402.933,62.54415,1,14,1,571.2531,183.9017,34.64865,0,0,789.8035,0,0,0,8,1,1,87.2,41.4,1,48.9,0,293,0,0,0,5.680172,0,0,0,0,1,0,48.9,8.132687,0,6.671784,1 +11,2,0,1,3,225371,0,3402.933,63.54415,1,14,1,438.9243,193.7967,23.24521,0,0,655.9662,0,0,0,13,1,1,87.2,41.4,1,48.9,0,293,0,0,0,5.680172,0,0,0,0,1,0,48.9,8.132687,0,6.486109,1 +11,2,0,1,1,225382,0,5023.46,23.34839,1,17,1,294.4326,45.63705,0,0,0,340.0696,0,0,0,31,0,1,73.9,3.4,0,87.5,0,0,0,0,0,0,0,0,0,0,0,0,87.5,8.522074,0,5.82915,1 +11,2,0,1,2,225382,0,5023.46,24.34839,1,17,1,258.1747,67.49634,0,0,0,325.6711,0,0,0,33,1,1,73.9,3.4,0,87.5,0,0,0,0,0,0,0,0,0,0,0,0,87.5,8.522074,0,5.785888,1 +11,2,0,1,3,225382,0,5023.46,25.34839,1,17,1,98.91599,73.17073,0,0,0,172.0867,0,0,0,11,0,1,73.9,3.4,0,87.5,0,0,0,0,0,0,0,0,0,0,0,0,87.5,8.522074,0,5.147998,1 +11,2,0,1,1,225383,0,2118.475,19.60301,1,12,1,65.84583,16.83619,34.04176,0,0,116.7238,0,0,0,3,0,1,66.5,3.4,0,70.5,0,0,0,0,0,0,0,0,0,0,0,0,70.5,7.658924,0,4.75981,1 +11,2,0,1,2,225383,0,2118.475,20.60301,1,12,1,142.7526,31.64959,0,21.96193,0,174.4021,0,0,1,11,0,1,66.5,3.4,0,70.5,0,0,0,0,0,0,0,0,0,0,0,0,70.5,7.658924,0,5.161364,1 +11,2,0,1,3,225383,0,2118.475,21.60301,1,12,1,44.48961,0,30.271,0,0,74.76061,0,0,0,3,0,1,66.5,3.4,0,70.5,0,0,0,0,0,0,0,0,0,0,0,0,70.5,7.658924,0,4.314291,1 +11,2,0,0,1,225388,0,3725.806,49.5989,1,25,1,61.51334,13.82689,0,0,0,75.34023,0,0,0,1,3,1,79.8,17.2,0,65.5,0,0,0,0,0,0,0,0,0,1,0,0,65.5,8.223307,0,4.322014,1 +11,2,0,0,2,225388,0,3725.806,50.5989,1,25,1,331.5164,12.68583,48.6224,0,0,392.8246,0,0,0,3,22,1,79.8,17.2,0,65.5,0,0,0,0,0,0,0,0,0,1,0,0,65.5,8.223307,0,5.973363,1 +11,2,0,0,3,225388,0,3725.806,51.5989,1,25,1,192.1524,7.732905,0,0,0,199.8853,0,0,0,2,24,1,79.8,17.2,0,65.5,0,0,0,0,0,0,0,0,0,1,0,0,65.5,8.223307,0,5.297743,1 +13,2,0,1,1,225389,0,8138.417,53.24025,0,12,1,73.85445,11.80593,20.91644,0,0,106.5768,0,0,0,3,0,2,80.3,13.8,0,79.5,300,400.32,0,0,.6931472,5.992264,1,4.564348,5.755076,1,0,0,79.5,9.004474,.6931472,4.668866,1 +13,2,0,1,2,225389,0,8138.417,54.24025,0,12,1,0,6.855037,0,0,0,6.855037,0,0,0,0,0,2,80.3,13.8,0,79.5,300,400.32,0,0,.6931472,5.992264,1,4.564348,5.755076,1,0,0,79.5,9.004474,.6931472,1.924984,1 +13,2,0,1,3,225389,0,8138.417,55.24025,0,12,1,100.0456,27.68004,32.36098,0,0,160.0866,0,0,0,3,0,2,80.3,13.8,0,79.5,300,400.32,0,0,.6931472,5.992264,1,4.564348,5.755076,1,0,0,79.5,9.004474,.6931472,5.075715,1 +13,2,0,1,1,225390,0,8138.417,51.93155,1,13,1,74.39353,66.53909,29.0027,0,0,169.9353,0,0,0,10,0,2,83,31,1,85.2,300,400.32,0,0,.6931472,5.992264,1,4.564348,5.755076,1,0,0,85.2,9.004474,.6931472,5.135418,1 +13,2,0,1,2,225390,0,8138.417,52.93155,1,13,1,31.94103,69.28747,0,51.59705,0,101.2285,0,0,7,3,0,2,83,31,1,85.2,300,400.32,0,0,.6931472,5.992264,1,4.564348,5.755076,1,0,0,85.2,9.004474,.6931472,4.61738,1 +13,2,0,1,3,225390,0,8138.417,53.93155,1,13,1,116.6819,95.53327,0,0,0,212.2151,0,0,0,9,0,2,83,31,1,85.2,300,400.32,0,0,.6931472,5.992264,1,4.564348,5.755076,1,0,0,85.2,9.004474,.6931472,5.357601,1 +11,2,0,1,1,225391,0,5517.889,31.5154,1,13,1,101.159,16.2372,0,0,0,117.3962,0,0,0,5,0,1,71.8,34.5,1,76.1,0,0,0,0,0,0,0,0,0,0,0,0,76.1,8.615932,0,4.765555,1 +11,2,0,1,2,225391,0,5517.889,32.5154,1,13,1,208.3538,21.49386,0,19.65602,0,229.8477,0,0,1,8,0,1,71.8,34.5,1,76.1,0,0,0,0,0,0,0,0,0,0,0,0,76.1,8.615932,0,5.437417,1 +11,2,0,1,3,225391,0,5517.889,33.5154,1,13,1,319.7357,42.14676,0,102.5524,0,361.8824,0,0,5,16,0,1,71.8,34.5,1,76.1,0,0,0,0,0,0,0,0,0,0,0,0,76.1,8.615932,0,5.891319,1 +14,2,95,0,1,225392,0,9703.226,53.95209,1,13,1,18.86792,2.156334,0,0,0,21.02426,0,0,0,2,0,2,70.2,13.8,1,83,598.1,598,0,0,.6931472,6.393591,0,4.564348,6.445051,1,0,0,83,9.180317,.6931472,3.045677,1 +14,2,95,0,2,225392,0,9703.226,54.95209,1,13,1,0,0,0,0,0,0,0,0,0,0,0,2,70.2,13.8,1,83,598.1,598,0,0,.6931472,6.393591,0,4.564348,6.445051,1,0,0,83,9.180317,.6931472,,0 +14,2,95,0,3,225392,0,9703.226,55.95209,1,13,1,0,0,0,0,0,0,0,0,0,0,0,2,70.2,13.8,1,83,598.1,598,0,0,.6931472,6.393591,0,4.564348,6.445051,1,0,0,83,9.180317,.6931472,,0 +14,2,95,1,1,225393,0,9703.226,18.02327,0,11,1,26.68464,4.25876,0,0,0,30.9434,0,0,0,1,0,2,79.3,10.3,0,84.1,598.1,598,0,0,.6931472,6.393591,0,4.564348,6.445051,0,0,0,84.1,9.180317,.6931472,3.43216,1 +14,2,95,1,2,225393,0,9703.226,19.02327,0,11,1,12.28501,0,0,0,0,12.28501,0,0,0,1,0,2,79.3,10.3,0,84.1,598.1,598,0,0,.6931472,6.393591,0,4.564348,6.445051,0,0,0,84.1,9.180317,.6931472,2.50838,1 +14,2,95,1,3,225393,0,9703.226,20.02327,0,11,1,75.63811,11.16682,0,0,444.7721,531.577,1,0,0,3,0,2,79.3,10.3,0,84.1,598.1,598,0,0,.6931472,6.393591,0,4.564348,6.445051,0,0,0,84.1,9.180317,.6931472,6.275848,1 +7,2,25,1,1,225394,0,8015.836,1.700205,1,10,1,0,0,0,0,0,0,0,0,0,0,0,5,81.35272,11.84267,0,88.9,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,0,0,0,88.9,8.989299,1.609438,,0 +7,2,25,1,2,225394,0,8015.836,2.700205,1,10,1,48.40295,0,0,0,0,48.40295,0,0,0,3,0,5,81.35272,11.84267,0,88.9,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,0,0,0,88.9,8.989299,1.609438,3.879561,1 +7,2,25,1,3,225394,0,8015.836,3.700205,1,10,1,0,0,0,0,0,0,0,0,0,0,0,5,81.35272,11.84267,0,88.9,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,0,0,0,88.9,8.989299,1.609438,,0 +7,2,25,1,1,225395,0,8015.836,26.63381,0,13,1,0,0,0,0,0,0,0,0,0,0,0,5,77.7,3.4,0,79.5,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,79.5,8.989299,1.609438,,0 +7,2,25,1,2,225395,0,8015.836,27.63381,0,13,1,0,0,0,0,0,0,0,0,0,0,0,5,77.7,3.4,0,79.5,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,79.5,8.989299,1.609438,,0 +7,2,25,1,3,225395,0,8015.836,28.63381,0,13,1,0,0,0,0,0,0,0,0,0,0,0,5,77.7,3.4,0,79.5,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,79.5,8.989299,1.609438,,0 +7,2,25,1,1,225396,0,8015.836,23.75633,1,10,1,0,0,0,0,0,0,0,0,0,0,0,5,62.2,3.4,0,60.2,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,60.2,8.989299,1.609438,,0 +7,2,25,1,2,225396,0,8015.836,24.75633,1,10,1,0,0,0,0,0,0,0,0,0,0,0,5,62.2,3.4,0,60.2,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,60.2,8.989299,1.609438,,0 +7,2,25,1,3,225396,0,8015.836,25.75633,1,10,1,65.24612,9.024612,0,0,0,74.27074,0,0,0,1,0,5,62.2,3.4,0,60.2,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,60.2,8.989299,1.609438,4.307717,1 +7,2,25,1,1,225397,0,8015.836,5.519507,1,10,1,0,0,0,0,0,0,0,0,0,0,0,5,86.7,11.84267,0,88.9,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,0,0,0,88.9,8.989299,1.609438,,0 +7,2,25,1,2,225397,0,8015.836,6.519507,1,10,1,20.63882,0,35.31204,0,0,55.95086,0,0,0,1,1,5,86.7,11.84267,0,88.9,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,0,0,0,88.9,8.989299,1.609438,4.024474,1 +7,2,25,1,3,225397,0,8015.836,7.519507,1,10,1,16.40839,11.32634,0,0,0,27.73473,0,0,0,3,0,5,86.7,11.84267,0,88.9,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,0,0,0,88.9,8.989299,1.609438,3.322685,1 +7,2,25,1,1,225398,0,8015.836,3.638604,0,10,1,0,0,0,0,0,0,0,0,0,0,0,5,81.35272,11.84267,0,77.8,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,77.8,8.989299,1.609438,,0 +7,2,25,1,2,225398,0,8015.836,4.638604,0,10,1,44.71745,0,0,0,0,44.71745,0,0,0,2,0,5,81.35272,11.84267,0,77.8,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,77.8,8.989299,1.609438,3.800364,1 +7,2,25,1,3,225398,0,8015.836,5.638604,0,10,1,15.9526,0,0,0,0,15.9526,0,0,0,1,0,5,81.35272,11.84267,0,77.8,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,77.8,8.989299,1.609438,2.769622,1 +13,2,0,0,1,225399,0,5174.193,23.74264,1,16,1,34.59287,4.390633,0,0,0,38.9835,0,0,0,2,0,1,87.8,0,0,84.1,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,84.1,8.551632,0,3.663139,1 +13,2,0,0,2,225399,0,5174.193,24.74264,1,16,1,58.65245,3.611246,0,0,0,62.26369,0,0,0,8,0,1,87.8,0,0,84.1,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,84.1,8.551632,0,4.131379,1 +13,2,0,0,3,225399,0,5174.193,25.74264,1,16,1,106.9182,3.360287,0,0,0,110.2785,0,0,0,2,3,1,87.8,0,0,84.1,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,84.1,8.551632,0,4.703009,1 +16,2,95,1,1,225400,0,5232.563,6.231349,1,12,1,15.52462,3.185225,0,0,0,18.70985,0,0,0,2,0,3,83.3,11.84267,0,85.2,375,375,1,1,1.098612,5.926926,0,4.564348,5.97822,0,0,0,85.2,8.562847,1.098612,2.92905,1 +16,2,95,1,2,225400,0,5232.563,7.231349,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,83.3,11.84267,0,85.2,375,375,1,1,1.098612,5.926926,0,4.564348,5.97822,0,0,0,85.2,8.562847,1.098612,,0 +16,2,95,1,3,225400,0,5232.563,8.231348,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,83.3,11.84267,0,85.2,375,375,1,1,1.098612,5.926926,0,4.564348,5.97822,0,0,0,85.2,8.562847,1.098612,,0 +16,2,95,1,4,225400,0,5232.563,9.231348,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,83.3,11.84267,0,85.2,375,375,1,1,1.098612,5.926926,0,4.564348,5.97822,0,0,0,85.2,8.562847,1.098612,,0 +16,2,95,1,5,225400,0,5232.563,10.23135,1,12,1,14.15797,0,0,0,0,14.15797,0,0,0,1,0,3,83.3,11.84267,0,85.2,375,375,1,1,1.098612,5.926926,0,4.564348,5.97822,0,0,0,85.2,8.562847,1.098612,2.650278,1 +16,2,95,1,1,225401,0,5232.563,4.251882,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,81.35272,11.84267,0,85.2,375,375,1,0,1.098612,5.926926,0,4.564348,5.97822,0,0,0,85.2,8.562847,1.098612,,0 +16,2,95,1,2,225401,0,5232.563,5.251882,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,81.35272,11.84267,0,85.2,375,375,1,0,1.098612,5.926926,0,4.564348,5.97822,0,0,0,85.2,8.562847,1.098612,,0 +16,2,95,1,3,225401,0,5232.563,6.251882,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,81.35272,11.84267,0,85.2,375,375,1,0,1.098612,5.926926,0,4.564348,5.97822,0,0,0,85.2,8.562847,1.098612,,0 +16,2,95,1,4,225401,0,5232.563,7.251882,0,12,1,0,2.229115,0,0,0,2.229115,0,0,0,0,0,3,81.35272,11.84267,0,85.2,375,375,1,0,1.098612,5.926926,0,4.564348,5.97822,0,0,0,85.2,8.562847,1.098612,.8016046,1 +16,2,95,1,5,225401,0,5232.563,8.251883,0,12,1,6.706409,0,0,0,0,6.706409,0,0,0,1,0,3,81.35272,11.84267,0,85.2,375,375,1,0,1.098612,5.926926,0,4.564348,5.97822,0,0,0,85.2,8.562847,1.098612,1.903064,1 +16,2,95,1,1,225403,0,5232.563,25.54141,1,12,1,9.635974,18.06745,0,0,0,27.70343,0,0,0,1,0,3,89.9,0,0,85.2,375,375,0,0,1.098612,5.926926,0,4.564348,5.97822,1,0,0,85.2,8.562847,1.098612,3.321556,1 +16,2,95,1,2,225403,0,5232.563,26.54141,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,89.9,0,0,85.2,375,375,0,0,1.098612,5.926926,0,4.564348,5.97822,1,0,0,85.2,8.562847,1.098612,,0 +16,2,95,1,3,225403,0,5232.563,27.54141,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,89.9,0,0,85.2,375,375,0,0,1.098612,5.926926,0,4.564348,5.97822,1,0,0,85.2,8.562847,1.098612,,0 +16,2,95,1,4,225403,0,5232.563,28.54141,1,12,1,45.07858,0,0,0,417.5972,462.6758,1,0,0,5,0,3,89.9,0,0,85.2,375,375,0,0,1.098612,5.926926,0,4.564348,5.97822,1,0,0,85.2,8.562847,1.098612,6.137026,1 +16,2,95,1,5,225403,0,5232.563,29.54141,1,12,1,28.68852,2.514903,0,0,731.1848,762.3882,1,0,0,2,1,3,89.9,0,0,85.2,375,375,0,0,1.098612,5.926926,0,4.564348,5.97822,1,0,0,85.2,8.562847,1.098612,6.636456,1 +5,2,25,1,1,225405,0,10753.08,58.67762,0,8,1,289.4609,51.72507,0,0,0,341.186,0,0,0,14,0,2,84.6,20.7,0,61.4,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,0,61.4,9.28304,.6931472,5.832428,1 +5,2,25,1,2,225405,0,10753.08,59.67762,0,8,1,68.79607,15.55283,0,0,0,84.34889,0,0,0,3,0,2,84.6,20.7,0,61.4,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,0,61.4,9.28304,.6931472,4.434962,1 +5,2,25,1,3,225405,0,10753.08,60.67762,0,8,1,141.1805,21.18049,32.64357,0,0,195.0046,0,0,0,6,1,2,84.6,20.7,0,61.4,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,0,61.4,9.28304,.6931472,5.273023,1 +5,2,25,1,1,225406,0,10753.08,58.07803,1,12,1,48.51752,14.25876,0,0,0,62.77628,0,0,0,2,1,2,85.1,20.7,0,65.9,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,0,65.9,9.28304,.6931472,4.139577,1 +5,2,25,1,2,225406,0,10753.08,59.07803,1,12,1,52.7027,13.46437,0,0,0,66.16708,0,0,0,2,0,2,85.1,20.7,0,65.9,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,0,65.9,9.28304,.6931472,4.192183,1 +5,2,25,1,3,225406,0,10753.08,60.07803,1,12,1,84.54877,18.76481,40.84777,0,0,144.1613,0,0,0,4,1,2,85.1,20.7,0,65.9,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,0,65.9,9.28304,.6931472,4.970933,1 +11,2,0,1,1,225408,0,1006.452,44.25736,0,12,1,186.1995,8.285714,0,59.29919,0,194.4852,0,0,1,5,0,2,87.8,10.3,0,70.5,0,634.8,0,0,.6931472,6.45331,0,0,0,1,0,0,70.5,6.915179,.6931472,5.270356,1 +11,2,0,1,2,225408,0,1006.452,45.25736,0,12,1,267.027,34.00491,37.53808,0,0,338.57,0,0,0,14,0,2,87.8,10.3,0,70.5,0,634.8,0,0,.6931472,6.45331,0,0,0,1,0,0,70.5,6.915179,.6931472,5.824731,1 +11,2,0,1,3,225408,0,1006.452,46.25736,0,12,1,210.9389,40.01823,0,0,0,250.9572,0,0,0,13,0,2,87.8,10.3,0,70.5,0,634.8,0,0,.6931472,6.45331,0,0,0,1,0,0,70.5,6.915179,.6931472,5.525282,1 +11,2,0,1,4,225408,0,1006.452,47.25736,0,12,1,83.57649,43.78908,0,0,1256.482,1383.847,1,0,0,9,0,2,87.8,10.3,0,70.5,0,634.8,0,0,.6931472,6.45331,0,0,0,1,0,0,70.5,6.915179,.6931472,7.232623,1 +11,2,0,1,5,225408,0,1006.452,48.25736,0,12,1,104.201,45.38634,0,0,432.6519,582.2393,1,0,0,13,0,2,87.8,10.3,0,70.5,0,634.8,0,0,.6931472,6.45331,0,0,0,1,0,0,70.5,6.915179,.6931472,6.366881,1 +11,2,0,1,1,225410,0,1006.452,31.82204,1,12,1,132.2102,3.207547,38.05391,0,475.089,648.5607,1,0,0,9,3,2,71.3,13.8,1,37.5,0,634.8,0,0,.6931472,6.45331,0,0,0,0,0,1,37.5,6.915179,.6931472,6.474756,1 +11,2,0,1,2,225410,0,1006.452,32.82204,1,12,1,98.13268,31.13022,33.85258,0,2303.907,2467.022,4,0,0,10,0,2,71.3,13.8,1,37.5,0,634.8,0,0,.6931472,6.45331,0,0,0,0,0,1,37.5,6.915179,.6931472,7.810767,1 +11,2,0,1,3,225410,0,1006.452,33.82204,1,12,1,298.5871,46.53601,33.62808,0,1944.439,2323.19,3,0,0,19,0,2,71.3,13.8,1,37.5,0,634.8,0,0,.6931472,6.45331,0,0,0,0,0,1,37.5,6.915179,.6931472,7.750697,1 +11,2,0,1,4,225410,0,1006.452,34.82204,1,12,1,117.9658,34.03502,0,0,0,152.0008,0,0,0,13,0,2,71.3,13.8,1,37.5,0,634.8,0,0,.6931472,6.45331,0,0,0,0,0,1,37.5,6.915179,.6931472,5.023886,1 +11,2,0,1,5,225410,0,1006.452,35.82204,1,12,1,172.3556,36.72168,21.41785,0,0,230.4951,0,0,0,19,0,2,71.3,13.8,1,37.5,0,634.8,0,0,.6931472,6.45331,0,0,0,0,0,1,37.5,6.915179,.6931472,5.44023,1 +13,2,0,1,1,225411,1,8665.641,3.734428,1,12,1,4.851752,0,0,0,0,4.851752,0,0,0,1,0,4,81.35272,11.84267,0,74.1,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,74.1,9.067237,1.386294,1.57934,1 +13,2,0,1,2,225411,1,8665.641,4.734428,1,12,1,20.63882,0,0,0,0,20.63882,0,0,0,3,0,4,81.35272,11.84267,0,74.1,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,74.1,9.067237,1.386294,3.027174,1 +13,2,0,1,3,225411,1,8665.641,5.734428,1,12,1,6.381039,0,0,0,0,6.381039,0,0,0,1,0,5,81.35272,11.84267,0,74.1,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,74.1,9.067237,1.609438,1.853331,1 +13,2,0,1,1,225412,1,8665.641,1.199179,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,81.35272,11.84267,0,81.5,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,81.5,9.067237,1.386294,,0 +13,2,0,1,2,225412,1,8665.641,2.199179,0,12,1,13.75921,0,0,0,0,13.75921,0,0,0,2,0,4,81.35272,11.84267,0,81.5,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,81.5,9.067237,1.386294,2.621709,1 +13,2,0,1,3,225412,1,8665.641,3.199179,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,81.35272,11.84267,0,81.5,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,81.5,9.067237,1.609438,,0 +13,2,0,1,1,225413,1,8665.641,31.54004,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,89.9,0,0,83,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,83,9.067237,1.386294,,0 +13,2,0,1,2,225413,1,8665.641,32.54004,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,89.9,0,0,83,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,83,9.067237,1.386294,,0 +13,2,0,1,3,225413,1,8665.641,33.54004,0,13,1,0,0,0,0,0,0,0,0,0,0,0,5,89.9,0,0,83,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,83,9.067237,1.609438,,0 +13,2,0,1,1,225414,1,8665.641,23.67146,1,12,1,42.85714,0,0,0,0,42.85714,0,0,0,6,0,4,62.8,24.1,0,64.8,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,64.8,9.067237,1.386294,3.757872,1 +13,2,0,1,2,225414,1,8665.641,24.67146,1,12,1,0,10.54054,0,0,813.0467,823.5872,1,0,0,0,0,4,62.8,24.1,0,64.8,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,64.8,9.067237,1.386294,6.713669,1 +13,2,0,1,3,225414,1,8665.641,25.67146,1,12,1,18.23154,0,0,0,0,18.23154,0,0,0,1,0,5,62.8,24.1,0,64.8,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,64.8,9.067237,1.609438,2.903153,1 +16,2,95,0,1,225415,0,10419.94,47.75633,1,12,1,91.50944,3.61186,32.50674,0,0,127.628,0,0,0,5,1,2,93.1,10.3,0,90.9,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,90.9,9.251573,.6931472,4.84912,1 +16,2,95,0,2,225415,0,10419.94,48.75633,1,12,1,51.9656,29.76904,0,0,0,81.73464,0,0,0,4,0,2,93.1,10.3,0,90.9,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,90.9,9.251573,.6931472,4.403478,1 +16,2,95,0,3,225415,0,10419.94,49.75633,1,12,1,97.76664,23.38195,45.47858,0,0,166.6272,0,0,0,4,2,2,93.1,10.3,0,90.9,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,90.9,9.251573,.6931472,5.115759,1 +16,2,95,0,1,225416,0,10419.94,60.16975,0,12,1,74.93262,22.64151,0,0,1262.421,1359.995,2,0,0,2,0,2,95.2,17.2,0,89.8,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,89.8,9.251573,.6931472,7.215236,1 +16,2,95,0,2,225416,0,10419.94,61.16975,0,12,1,19.65602,6.378378,0,0,0,26.0344,0,0,0,2,0,2,95.2,17.2,0,89.8,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,89.8,9.251573,.6931472,3.259419,1 +16,2,95,0,3,225416,0,10419.94,62.16975,0,12,1,17.77575,4.024612,33.85141,0,0,55.65178,0,0,0,1,0,2,95.2,17.2,0,89.8,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,89.8,9.251573,.6931472,4.019114,1 +13,2,0,0,1,225425,0,7472.141,26.17385,1,16,1,0,0,0,0,0,0,0,0,0,0,0,1,54.3,13.8,0,69.3,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,69.3,8.91907,0,,0 +13,2,0,0,2,225425,0,7472.141,27.17385,1,16,1,0,0,0,0,0,0,0,0,0,0,0,1,54.3,13.8,0,69.3,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,69.3,8.91907,0,,0 +13,2,0,0,3,225425,0,7472.141,28.17385,1,16,1,59.4804,0,0,0,0,59.4804,0,0,0,2,0,1,54.3,13.8,0,69.3,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,69.3,8.91907,0,4.085647,1 +13,2,0,0,4,225425,0,7472.141,29.17385,1,16,1,47.5198,0,0,0,0,47.5198,0,0,0,2,0,1,54.3,13.8,0,69.3,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,69.3,8.91907,0,3.861146,1 +13,2,0,0,5,225425,0,7472.141,30.17385,1,16,1,0,0,0,0,0,0,0,0,0,0,0,1,54.3,13.8,0,69.3,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,69.3,8.91907,0,,0 +19,2,25,1,1,225426,0,2614.076,25.48665,1,17,1,72.40065,7.550354,31.88895,0,0,111.84,0,0,0,4,0,1,63.3,24.1,0,55.7,195,195,0,0,0,5.273,0,3.258096,6.659294,1,0,0,55.7,7.869049,0,4.717069,1 +19,2,25,1,2,225426,0,2614.076,26.48665,1,17,1,24.77701,7.641229,21.65015,0,0,54.06839,0,0,0,3,1,1,63.3,24.1,0,55.7,195,195,0,0,0,5.273,0,3.258096,6.659294,1,0,0,55.7,7.869049,0,3.99025,1 +19,2,25,1,3,225426,0,2614.076,27.48665,1,17,1,301.0739,0,45.47499,0,0,346.5489,0,0,0,7,0,1,63.3,24.1,0,55.7,195,195,0,0,0,5.273,0,3.258096,6.659294,1,0,0,55.7,7.869049,0,5.848024,1 +11,2,0,1,1,225466,0,11262.76,38.6475,0,17,1,79.38005,0,0,26.95418,0,79.38005,0,0,1,4,0,1,93.6,3.4,0,84.1,0,0,0,0,0,0,0,0,0,0,0,0,84.1,9.329346,0,4.374247,1 +11,2,0,1,2,225466,0,11262.76,39.6475,0,17,1,153.1253,12.95823,0,49.14005,0,166.0835,0,0,2,5,0,1,93.6,3.4,0,84.1,0,0,0,0,0,0,0,0,0,0,0,0,84.1,9.329346,0,5.112491,1 +11,2,0,1,3,225466,0,11262.76,40.6475,0,17,1,77.73929,0,0,0,0,77.73929,0,0,0,4,0,1,93.6,3.4,0,84.1,0,0,0,0,0,0,0,0,0,0,0,0,84.1,9.329346,0,4.353361,1 +13,2,0,0,1,225473,0,6472.141,34.34086,0,16,1,169.407,57.65499,0,0,0,227.062,0,0,0,11,0,1,75,20.7,0,73.9,150,40,0,0,0,3.688879,1,4.564348,5.061929,0,0,0,73.9,8.775416,0,5.425223,1 +13,2,0,0,2,225473,0,6472.141,35.34086,0,16,1,17.19902,51.52334,0,0,0,68.72236,0,0,0,1,0,1,75,20.7,0,73.9,150,40,0,0,0,3.688879,1,4.564348,5.061929,0,0,0,73.9,8.775416,0,4.230074,1 +13,2,0,0,3,225473,0,6472.141,36.34086,0,16,1,6.836828,27.48405,40.07293,0,0,74.3938,0,0,0,1,0,1,75,20.7,0,73.9,150,40,0,0,0,3.688879,1,4.564348,5.061929,0,0,0,73.9,8.775416,0,4.309372,1 +14,2,95,1,1,225474,0,9421.701,59.30458,1,8,1,79.38005,36.59838,0,0,0,115.9784,0,0,0,2,1,2,88.8,24.1,0,62.5,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,62.5,9.150877,.6931472,4.753404,1 +14,2,95,1,2,225474,0,9421.701,60.30458,1,8,1,74.07862,47.76413,0,0,0,121.8428,0,0,0,4,0,2,88.8,24.1,0,62.5,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,62.5,9.150877,.6931472,4.802732,1 +14,2,95,1,3,225474,0,9421.701,61.30458,1,8,1,250,87.49772,11.59982,0,0,349.0975,0,0,0,13,0,2,88.8,24.1,0,62.5,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,62.5,9.150877,.6931472,5.855351,1 +14,2,95,1,4,225474,0,9421.701,62.30458,1,8,1,298.02,74.31013,5.060442,0,5573.372,5950.763,2,0,0,12,0,2,88.8,24.1,0,62.5,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,62.5,9.150877,.6931472,8.691275,1 +14,2,95,1,5,225474,0,9421.701,63.30458,1,8,1,123.2183,121.1965,5.903976,0,0,250.3188,0,0,0,4,3,2,88.8,24.1,0,62.5,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,62.5,9.150877,.6931472,5.522736,1 +14,2,95,1,1,225475,0,9421.701,55.65777,0,12,1,19.13747,0,0,0,0,19.13747,0,0,0,1,0,2,93.1,3.4,0,79.5,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,79.5,9.150877,.6931472,2.951648,1 +14,2,95,1,2,225475,0,9421.701,56.65777,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,93.1,3.4,0,79.5,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,79.5,9.150877,.6931472,,0 +14,2,95,1,3,225475,0,9421.701,57.65777,0,12,1,83.63719,0,35.56518,0,0,119.2024,0,0,0,1,1,2,93.1,3.4,0,79.5,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,79.5,9.150877,.6931472,4.780823,1 +14,2,95,1,4,225475,0,9421.701,58.65777,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,93.1,3.4,0,79.5,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,79.5,9.150877,.6931472,,0 +14,2,95,1,5,225475,0,9421.701,59.65777,0,12,1,17.44186,31.42911,0,0,0,48.87097,0,0,0,2,0,2,93.1,3.4,0,79.5,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,79.5,9.150877,.6931472,3.889184,1 +11,2,0,0,1,225493,0,9946.041,53.73032,1,12,1,62.32989,92.61295,43.54382,0,0,198.4867,0,0,0,4,0,3,63.3,31,1,54.8,0,0,0,0,1.098612,0,0,0,0,1,0,0,54.8,9.20503,1.098612,5.290722,1 +11,2,0,0,2,225493,0,9946.041,54.73032,1,12,1,58.72151,49.52428,0,0,0,108.2458,0,0,0,1,0,3,63.3,31,1,54.8,0,0,0,0,1.098612,0,0,0,0,1,0,0,54.8,9.20503,1.098612,4.684404,1 +11,2,0,0,3,225493,0,9946.041,55.73032,1,12,1,57.54934,21.72556,0,0,0,79.27489,0,0,0,2,0,3,63.3,31,1,54.8,0,0,0,0,1.098612,0,0,0,0,1,0,0,54.8,9.20503,1.098612,4.372921,1 +11,2,0,0,4,225493,0,9946.041,56.73032,1,12,1,289.4994,43.50442,69.30164,0,0,402.3054,0,0,0,8,0,3,63.3,31,1,54.8,0,0,0,0,1.098612,0,0,0,0,1,0,0,54.8,9.20503,1.098612,5.997211,1 +11,2,0,0,5,225493,0,9946.041,57.73032,1,12,1,38.00529,47.10616,0,0,0,85.11145,0,0,0,3,0,3,63.3,31,1,54.8,0,0,0,0,1.098612,0,0,0,0,1,0,0,54.8,9.20503,1.098612,4.443962,1 +11,2,0,0,1,225494,0,9946.041,15.25804,0,12,1,34.56723,22.72727,2.776266,0,0,60.07077,0,0,0,2,0,3,72.9,3.4,0,75,0,0,1,0,1.098612,0,0,0,0,1,0,0,75,9.20503,1.098612,4.095523,1 +11,2,0,0,2,225494,0,9946.041,16.25804,0,12,1,296.9276,32.55699,7.859267,0,0,337.3439,0,0,0,11,1,3,72.9,3.4,0,75,0,0,1,0,1.098612,0,0,0,0,1,0,0,75,9.20503,1.098612,5.821103,1 +11,2,0,0,3,225494,0,9946.041,17.25804,0,12,1,35.33731,42.12942,0,0,0,77.46673,0,0,0,3,0,3,72.9,3.4,0,75,0,0,1,0,1.098612,0,0,0,0,1,0,0,75,9.20503,1.098612,4.349849,1 +11,2,0,0,4,225494,0,9946.041,18.25804,0,12,1,234.7497,40.36601,0,0,0,275.1157,0,0,0,10,1,3,72.9,3.4,0,75,0,0,0,0,1.098612,0,0,0,0,1,0,0,75,9.20503,1.098612,5.617192,1 +11,2,0,0,5,225494,0,9946.041,19.25804,0,12,1,126.9362,32.3725,0,0,0,159.3087,0,0,0,8,0,3,72.9,3.4,0,75,0,0,0,0,1.098612,0,0,0,0,1,0,0,75,9.20503,1.098612,5.070844,1 +11,2,0,0,1,225495,0,9946.041,57.96578,0,10,1,101.5787,0,0,0,0,101.5787,0,0,0,7,0,3,75,13.8,0,61.4,0,0,0,0,1.098612,0,0,0,0,0,0,0,61.4,9.20503,1.098612,4.620833,1 +11,2,0,0,2,225495,0,9946.041,58.96578,0,10,1,19.82161,2.725471,0,0,0,22.54708,0,0,0,2,0,3,75,13.8,0,61.4,0,0,0,0,1.098612,0,0,0,0,0,0,0,61.4,9.20503,1.098612,3.115605,1 +11,2,0,0,3,225495,0,9946.041,59.96578,0,10,1,231.2988,32.23038,41.30335,0,0,304.8325,0,0,0,5,1,3,75,13.8,0,61.4,0,0,0,0,1.098612,0,0,0,0,0,0,0,61.4,9.20503,1.098612,5.719762,1 +11,2,0,0,4,225495,0,9946.041,60.96578,0,10,1,208.0353,35.59529,0,0,0,243.6306,0,0,0,7,0,3,75,13.8,0,61.4,0,0,0,0,1.098612,0,0,0,0,0,0,0,61.4,9.20503,1.098612,5.495653,1 +11,2,0,0,5,225495,0,9946.041,61.96578,0,10,1,370.7404,26.16925,47.14016,0,1751.53,2195.58,1,0,0,9,4,3,75,13.8,0,61.4,0,0,0,0,1.098612,0,0,0,0,0,0,0,61.4,9.20503,1.098612,7.694201,1 +11,2,0,1,1,225500,0,15980.06,10.47502,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,95,11.84267,0,96.3,0,99.36,1,0,1.386294,4.59875,0,0,0,0,0,0,96.3,9.679159,1.386294,,0 +11,2,0,1,2,225500,0,15980.06,11.47502,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,95,11.84267,0,96.3,0,99.36,1,0,1.386294,4.59875,0,0,0,0,0,0,96.3,9.679159,1.386294,,0 +11,2,0,1,3,225500,0,15980.06,12.47502,0,16,1,11.39471,0,0,0,0,11.39471,0,0,0,1,0,4,95,11.84267,0,96.3,0,99.36,1,0,1.386294,4.59875,0,0,0,0,0,0,96.3,9.679159,1.386294,2.433149,1 +11,2,0,1,1,225501,0,15980.06,41.01848,0,14,1,228.0323,8.409703,0,0,589.6496,826.0916,1,0,0,4,0,4,85.6,3.4,0,78.4,0,99.36,0,0,1.386294,4.59875,0,0,0,0,0,0,78.4,9.679159,1.386294,6.716706,1 +11,2,0,1,2,225501,0,15980.06,42.01848,0,14,1,45.70024,0,0,0,718.7469,764.4472,1,0,0,1,0,4,85.6,3.4,0,78.4,0,99.36,0,0,1.386294,4.59875,0,0,0,0,0,0,78.4,9.679159,1.386294,6.639153,1 +11,2,0,1,3,225501,0,15980.06,43.01848,0,14,1,112.8077,0,29.95898,9.726527,0,142.7666,0,0,2,3,0,4,85.6,3.4,0,78.4,0,99.36,0,0,1.386294,4.59875,0,0,0,0,0,0,78.4,9.679159,1.386294,4.961211,1 +11,2,0,1,1,225502,0,15980.06,41.25941,1,16,1,68.46362,14.17251,35.27763,0,0,117.9137,0,0,0,5,0,4,82.4,10.3,0,92,0,99.36,0,0,1.386294,4.59875,0,0,0,0,0,0,92,9.679159,1.386294,4.769953,1 +11,2,0,1,2,225502,0,15980.06,42.25941,1,16,1,8.845209,2.948403,0,0,0,11.79361,0,0,0,1,0,4,82.4,10.3,0,92,0,99.36,0,0,1.386294,4.59875,0,0,0,0,0,0,92,9.679159,1.386294,2.467558,1 +11,2,0,1,3,225502,0,15980.06,43.25941,1,16,1,7.748405,15.2917,0,9.721969,0,23.04011,0,0,2,1,0,4,82.4,10.3,0,92,0,99.36,0,0,1.386294,4.59875,0,0,0,0,0,0,92,9.679159,1.386294,3.137237,1 +11,2,0,1,1,225503,0,15980.06,13.16906,0,16,1,8.625337,0,0,0,0,8.625337,0,0,0,1,0,4,90,11.84267,0,88.9,0,99.36,1,0,1.386294,4.59875,0,0,0,1,0,0,88.9,9.679159,1.386294,2.154704,1 +11,2,0,1,2,225503,0,15980.06,14.16906,0,16,1,10.81081,0,0,0,0,10.81081,0,0,0,1,0,4,90,11.84267,0,88.9,0,99.36,1,0,1.386294,4.59875,0,0,0,1,0,0,88.9,9.679159,1.386294,2.380547,1 +11,2,0,1,3,225503,0,15980.06,15.16906,0,16,1,12.76208,1.823154,0,140.9891,0,14.58523,0,0,11,1,0,4,90,11.84267,0,88.9,0,99.36,1,0,1.386294,4.59875,0,0,0,1,0,0,88.9,9.679159,1.386294,2.68001,1 +13,2,0,1,1,225518,0,4309.091,22.78166,1,12,1,82.47142,11.14317,0,0,0,93.61459,0,0,0,0,13,1,42.6,20.7,1,38.6,150,0,0,0,0,0,1,4.564348,5.061929,0,0,0,38.6,8.368714,0,4.539186,1 +13,2,0,1,2,225518,0,4309.091,23.78166,1,12,1,55.99604,3.612488,0,0,615.7483,675.3568,1,0,0,0,11,1,42.6,20.7,1,38.6,150,0,0,0,0,0,1,4.564348,5.061929,0,0,0,38.6,8.368714,0,6.515241,1 +13,2,0,1,3,225518,0,4309.091,24.78166,1,12,1,25.24094,3.441946,0,0,0,28.68288,0,0,0,0,5,2,42.6,20.7,1,38.6,150,0,0,0,.6931472,0,1,4.564348,5.061929,0,0,0,38.6,8.368714,.6931472,3.356301,1 +13,2,0,1,4,225518,0,4309.091,25.78166,1,12,1,12.62095,0,0,0,0,12.62095,0,0,0,1,1,2,42.6,20.7,1,38.6,150,0,0,0,.6931472,0,1,4.564348,5.061929,0,0,0,38.6,8.368714,.6931472,2.535358,1 +13,2,0,1,5,225518,0,4309.091,26.78166,1,12,1,73.6683,1.922932,0,0,0,75.59123,0,0,0,2,8,2,42.6,20.7,1,38.6,150,0,0,0,.6931472,0,1,4.564348,5.061929,0,0,0,38.6,8.368714,.6931472,4.32534,1 +13,2,0,0,1,225528,0,6106.745,3.017112,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,81.35272,11.84267,0,100,450,0,1,1,1.609438,0,1,4.564348,6.160541,0,0,0,100,8.717313,1.609438,,0 +13,2,0,0,2,225528,0,6106.745,4.017112,1,12,1,10.56511,0,0,0,0,10.56511,0,0,0,1,0,5,81.35272,11.84267,0,100,450,0,1,1,1.609438,0,1,4.564348,6.160541,0,0,0,100,8.717313,1.609438,2.357557,1 +13,2,0,0,3,225528,0,6106.745,5.017112,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,81.35272,11.84267,0,100,450,0,1,1,1.609438,0,1,4.564348,6.160541,0,0,0,100,8.717313,1.609438,,0 +13,2,0,0,1,225529,0,6106.745,30.79261,1,12,1,27.7628,1.450135,16.17251,0,0,45.38544,0,0,0,1,1,5,65.4,13.8,0,98.9,450,0,0,0,1.609438,0,1,4.564348,6.160541,0,0,0,98.9,8.717313,1.609438,3.815192,1 +13,2,0,0,2,225529,0,6106.745,31.79261,1,12,1,17.69042,0,0,0,0,17.69042,0,0,0,2,0,5,65.4,13.8,0,98.9,450,0,0,0,1.609438,0,1,4.564348,6.160541,0,0,0,98.9,8.717313,1.609438,2.873023,1 +13,2,0,0,3,225529,0,6106.745,32.79261,1,12,1,31.6773,0,0,0,0,31.6773,0,0,0,2,0,5,65.4,13.8,0,98.9,450,0,0,0,1.609438,0,1,4.564348,6.160541,0,0,0,98.9,8.717313,1.609438,3.4556,1 +13,2,0,0,1,225530,0,6106.745,11.66598,0,12,1,11.05121,0,0,0,0,11.05121,0,0,0,1,0,5,98.3,11.84267,0,100,450,0,1,0,1.609438,0,1,4.564348,6.160541,0,0,0,100,8.717313,1.609438,2.40254,1 +13,2,0,0,2,225530,0,6106.745,12.66598,0,12,1,29.23833,0,0,0,0,29.23833,0,0,0,2,0,5,98.3,11.84267,0,100,450,0,1,0,1.609438,0,1,4.564348,6.160541,0,0,0,100,8.717313,1.609438,3.37548,1 +13,2,0,0,3,225530,0,6106.745,13.66598,0,12,1,45.21422,0,0,0,0,45.21422,0,0,0,2,0,5,98.3,11.84267,0,100,450,0,1,0,1.609438,0,1,4.564348,6.160541,0,0,0,100,8.717313,1.609438,3.811412,1 +13,2,0,0,1,225531,0,6106.745,6.581793,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,95,11.84267,0,100,450,0,1,1,1.609438,0,1,4.564348,6.160541,0,0,0,100,8.717313,1.609438,,0 +13,2,0,0,2,225531,0,6106.745,7.581793,1,12,1,10.56511,0,0,0,0,10.56511,0,0,0,1,0,5,95,11.84267,0,100,450,0,1,1,1.609438,0,1,4.564348,6.160541,0,0,0,100,8.717313,1.609438,2.357557,1 +13,2,0,0,3,225531,0,6106.745,8.581793,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,95,11.84267,0,100,450,0,1,1,1.609438,0,1,4.564348,6.160541,0,0,0,100,8.717313,1.609438,,0 +13,2,0,0,1,225532,0,6106.745,31.66598,0,16,1,69.81132,7.660378,31.04582,0,0,108.5175,0,0,0,1,1,5,53.2,10.3,0,79.5,450,0,0,0,1.609438,0,1,4.564348,6.160541,1,0,0,79.5,8.717313,1.609438,4.686912,1 +13,2,0,0,2,225532,0,6106.745,32.66598,0,16,1,0,0,0,0,0,0,0,0,0,0,0,5,53.2,10.3,0,79.5,450,0,0,0,1.609438,0,1,4.564348,6.160541,1,0,0,79.5,8.717313,1.609438,,0 +13,2,0,0,3,225532,0,6106.745,33.66598,0,16,1,34.32087,0,0,0,0,34.32087,0,0,0,1,0,5,53.2,10.3,0,79.5,450,0,0,0,1.609438,0,1,4.564348,6.160541,1,0,0,79.5,8.717313,1.609438,3.535754,1 +17,2,25,1,1,225533,0,14851.03,49.88091,0,12,1,151.5364,5.121294,36.43666,0,0,193.0943,0,0,0,4,11,3,77.1,0,0,85.2,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,85.2,9.605891,1.098612,5.263179,1 +17,2,25,1,2,225533,0,14851.03,50.88091,0,12,1,75.42998,3.002457,0,0,0,78.43243,0,0,0,1,0,3,77.1,0,0,85.2,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,85.2,9.605891,1.098612,4.362237,1 +17,2,25,1,3,225533,0,14851.03,51.88091,0,12,1,29.39836,5.733819,0,0,0,35.13218,0,0,0,3,0,2,77.1,0,0,85.2,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,0,85.2,9.605891,.6931472,3.559118,1 +17,2,25,1,1,225534,0,14851.03,44.69542,1,12,1,148.7871,0,56.60378,0,1284.302,1489.693,1,0,0,6,0,3,78.2,13.8,0,78.4,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,78.4,9.605891,1.098612,7.306325,1 +17,2,25,1,2,225534,0,14851.03,45.69542,1,12,1,0,12.51597,0,0,0,12.51597,0,0,0,0,0,3,78.2,13.8,0,78.4,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,78.4,9.605891,1.098612,2.527005,1 +17,2,25,1,3,225534,0,14851.03,46.69542,1,12,1,172.7439,25.70191,0,0,0,198.4458,0,0,0,5,0,2,78.2,13.8,0,78.4,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,1,0,0,78.4,9.605891,.6931472,5.290516,1 +17,2,25,1,1,225535,0,14851.03,15.50445,0,12,1,162.5337,40.31267,0,0,0,202.8464,0,0,0,35,0,3,62.8,13.8,0,51.1,1000,1000,1,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,51.1,9.605891,1.098612,5.312449,1 +17,2,25,1,2,225535,0,14851.03,16.50445,0,12,1,218.5504,43.03194,0,0,0,261.5823,0,0,0,25,0,3,62.8,13.8,0,51.1,1000,1000,1,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,51.1,9.605891,1.098612,5.566749,1 +16,2,95,1,1,225544,0,5000,3.690623,0,13,1,89.16442,13.531,0,0,0,102.6954,0,0,0,37,0,5,81.35272,11.84267,0,66.7,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,1,0,0,66.7,8.517393,1.609438,4.631768,1 +16,2,95,1,2,225544,0,5000,4.690623,0,13,1,96.02457,34.00983,0,0,0,130.0344,0,0,0,23,0,5,81.35272,11.84267,0,66.7,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,1,0,0,66.7,8.517393,1.609438,4.867799,1 +16,2,95,1,3,225544,0,5000,5.690623,0,13,1,60.61987,3.176846,0,0,0,63.79672,0,0,0,15,0,5,81.35272,11.84267,0,66.7,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,1,0,0,66.7,8.517393,1.609438,4.155702,1 +16,2,95,1,1,225545,0,5000,6.631074,1,13,1,1.886792,0,0,0,0,1.886792,0,0,0,0,0,5,60,11.84267,0,96.3,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,96.3,8.517393,1.609438,.6348783,1 +16,2,95,1,2,225545,0,5000,7.631074,1,13,1,6.879607,0,0,0,0,6.879607,0,0,0,0,0,5,60,11.84267,0,96.3,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,96.3,8.517393,1.609438,1.928561,1 +16,2,95,1,3,225545,0,5000,8.631075,1,13,1,0,0,0,0,0,0,0,0,0,0,0,5,60,11.84267,0,96.3,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,96.3,8.517393,1.609438,,0 +16,2,95,1,1,225546,0,5000,28.63244,0,16,1,0,0,0,0,0,0,0,0,0,0,0,5,75.5,3.4,1,78.4,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,1,0,0,78.4,8.517393,1.609438,,0 +16,2,95,1,2,225546,0,5000,29.63244,0,16,1,28.50123,0,27.22359,0,0,55.72482,0,0,0,1,1,5,75.5,3.4,1,78.4,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,1,0,0,78.4,8.517393,1.609438,4.020426,1 +16,2,95,1,3,225546,0,5000,30.63244,0,16,1,0,0,0,0,0,0,0,0,0,0,0,5,75.5,3.4,1,78.4,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,1,0,0,78.4,8.517393,1.609438,,0 +16,2,95,1,1,225547,0,5000,28.46817,1,13,1,0,0,0,0,0,0,0,0,0,0,0,5,63.8,17.2,0,77.3,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,1,0,0,77.3,8.517393,1.609438,,0 +16,2,95,1,2,225547,0,5000,29.46817,1,13,1,20.88452,0,20.7027,0,0,41.58722,0,0,0,1,1,5,63.8,17.2,0,77.3,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,1,0,0,77.3,8.517393,1.609438,3.727793,1 +16,2,95,1,3,225547,0,5000,30.46817,1,13,1,25.06837,0,0,0,0,25.06837,0,0,0,1,0,5,63.8,17.2,0,77.3,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,1,0,0,77.3,8.517393,1.609438,3.221607,1 +14,2,95,1,1,225553,0,3848.68,60.98563,0,17,1,0,16.90566,0,0,0,16.90566,0,0,0,0,0,1,92,6.9,0,79.5,800,378.6,0,0,0,5.93648,0,4.564348,6.735905,0,0,0,79.5,8.255746,0,2.827648,1 +14,2,95,1,2,225553,0,3848.68,61.98563,0,17,1,0,0,0,0,0,0,0,0,0,0,0,1,92,6.9,0,79.5,800,378.6,0,0,0,5.93648,0,4.564348,6.735905,0,0,0,79.5,8.255746,0,,0 +14,2,95,1,3,225553,0,3848.68,62.98563,0,17,1,0,0,0,0,0,0,0,0,0,0,0,1,92,6.9,0,79.5,800,378.6,0,0,0,5.93648,0,4.564348,6.735905,0,0,0,79.5,8.255746,0,,0 +6,2,25,0,1,225554,0,8512.023,56.2245,1,9,1,67.84367,62.02156,0,0,0,129.8652,0,0,0,2,0,1,92,10.3,0,80.7,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,1,0,0,80.7,9.049353,0,4.866497,1 +6,2,25,0,2,225554,0,8512.023,57.2245,1,9,1,159.7052,4.275184,37.40049,0,0,201.3808,0,0,0,6,0,1,92,10.3,0,80.7,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,1,0,0,80.7,9.049353,0,5.305198,1 +6,2,25,0,3,225554,0,8512.023,58.2245,1,9,1,0,2.853236,0,0,0,2.853236,0,0,0,0,0,1,92,10.3,0,80.7,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,1,0,0,80.7,9.049353,0,1.048454,1 +6,2,25,0,4,225554,0,8512.023,59.2245,1,9,1,79.19967,8.153398,43.46811,0,0,130.8212,0,0,0,4,0,1,92,10.3,0,80.7,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,1,0,0,80.7,9.049353,0,4.873831,1 +6,2,25,0,5,225554,0,8512.023,60.2245,1,9,1,59.67742,5.228807,0,0,0,64.90623,0,0,0,1,0,1,92,10.3,0,80.7,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,1,0,0,80.7,9.049353,0,4.172944,1 +13,2,0,1,1,225558,0,8664.517,1.221081,1,12,1,6.423983,5.208779,0,0,0,11.63276,0,0,0,1,0,3,81.35272,11.84267,0,74.1,450,300,1,1,1.098612,5.703783,1,4.564348,6.160541,0,0,0,74.1,9.067107,1.098612,2.453825,1 +13,2,0,1,2,225558,0,8664.517,2.221081,1,12,1,7.320644,9.350903,0,0,0,16.67155,0,0,0,1,0,3,81.35272,11.84267,0,74.1,450,300,1,1,1.098612,5.703783,1,4.564348,6.160541,0,0,0,74.1,9.067107,1.098612,2.813704,1 +13,2,0,1,3,225558,0,8664.517,3.221081,1,12,1,26.6486,2.172538,0,0,0,28.82114,0,0,0,1,0,4,81.35272,11.84267,0,74.1,450,300,1,1,1.386294,5.703783,1,4.564348,6.160541,0,0,0,74.1,9.067107,1.386294,3.361109,1 +13,2,0,1,1,225559,0,8664.517,26.97057,1,12,1,16.32762,17.76767,0,0,0,34.09529,0,0,0,0,0,3,76.1,6.9,0,72.7,450,300,0,0,1.098612,5.703783,1,4.564348,6.160541,0,0,0,72.7,9.067107,1.098612,3.529159,1 +13,2,0,1,2,225559,0,8664.517,27.97057,1,12,1,31.23475,33.66032,0,0,519.8145,584.7096,1,0,0,2,0,3,76.1,6.9,0,72.7,450,300,0,0,1.098612,5.703783,1,4.564348,6.160541,0,0,0,72.7,9.067107,1.098612,6.371115,1 +13,2,0,1,3,225559,0,8664.517,28.97057,1,12,1,18.29268,26.19241,0,0,0,44.4851,0,0,0,1,0,4,76.1,6.9,0,72.7,450,300,0,0,1.386294,5.703783,1,4.564348,6.160541,0,0,0,72.7,9.067107,1.386294,3.795154,1 +13,2,0,1,1,225560,0,8664.517,29.56058,0,14,1,6.423983,3.340471,0,0,0,9.764454,0,0,0,1,0,3,73.9,6.9,0,67,450,300,0,0,1.098612,5.703783,1,4.564348,6.160541,0,0,0,67,9.067107,1.098612,2.278749,1 +13,2,0,1,2,225560,0,8664.517,30.56058,0,14,1,44.65593,7.120547,35.89068,0,0,87.66715,0,0,0,2,0,3,73.9,6.9,0,67,450,300,0,0,1.098612,5.703783,1,4.564348,6.160541,0,0,0,67,9.067107,1.098612,4.473547,1 +13,2,0,1,3,225560,0,8664.517,31.56058,0,14,1,0,0,0,0,0,0,0,0,0,0,0,4,73.9,6.9,0,67,450,300,0,0,1.386294,5.703783,1,4.564348,6.160541,0,0,0,67,9.067107,1.386294,,0 +13,2,0,0,1,225573,0,5214.123,23.27173,1,15,1,270.0539,76.68464,0,0,0,346.7386,0,0,0,10,22,2,54.3,10.3,0,43.2,300,156.85,0,0,.6931472,5.05529,1,4.564348,5.755076,0,1,0,43.2,8.559318,.6931472,5.848571,1 +13,2,0,0,2,225573,0,5214.123,24.27173,1,15,1,62.48157,37.34644,0,0,0,99.82801,0,0,0,3,5,2,54.3,10.3,0,43.2,300,156.85,0,0,.6931472,5.05529,1,4.564348,5.755076,0,1,0,43.2,8.559318,.6931472,4.603449,1 +13,2,0,0,1,225574,0,5214.123,26.0397,0,10,1,37.87062,9.541779,0,0,0,47.4124,0,0,0,2,0,2,56.4,17.2,0,65.9,300,156.85,0,0,.6931472,5.05529,1,4.564348,5.755076,0,0,0,65.9,8.559318,.6931472,3.858884,1 +13,2,0,0,2,225574,0,5214.123,27.0397,0,10,1,0,0,0,0,0,0,0,0,0,0,0,2,56.4,17.2,0,65.9,300,156.85,0,0,.6931472,5.05529,1,4.564348,5.755076,0,0,0,65.9,8.559318,.6931472,,0 +6,2,25,0,1,225583,0,10636.36,29.02669,1,19,1,40.70081,24.39353,35.30458,0,0,100.3989,0,0,0,3,0,3,76.1,17.2,0,80.7,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,80.7,9.272128,1.098612,4.609151,1 +6,2,25,0,2,225583,0,10636.36,30.02669,1,19,1,61.05651,9.557739,0,0,0,70.61425,0,0,0,5,0,3,76.1,17.2,0,80.7,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,80.7,9.272128,1.098612,4.257232,1 +6,2,25,0,3,225583,0,10636.36,31.02669,1,19,1,40.33728,24.97721,0,0,0,65.31449,0,0,0,3,0,3,76.1,17.2,0,80.7,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,80.7,9.272128,1.098612,4.179214,1 +6,2,25,0,1,225584,0,10636.36,31.11841,0,18,1,175.0404,0,0,0,0,175.0404,0,0,0,2,0,3,70.2,6.9,0,63.6,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,63.6,9.272128,1.098612,5.165017,1 +6,2,25,0,2,225584,0,10636.36,32.11841,0,18,1,46.06879,0,0,0,0,46.06879,0,0,0,1,0,3,70.2,6.9,0,63.6,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,63.6,9.272128,1.098612,3.830136,1 +6,2,25,0,3,225584,0,10636.36,33.11841,0,18,1,164.0383,0,43.17685,0,0,207.2151,0,0,0,3,0,3,70.2,6.9,0,63.6,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,63.6,9.272128,1.098612,5.333757,1 +6,2,25,0,1,225585,0,10636.36,.6187543,1,19,1,128.5714,6.571429,0,0,0,135.1429,0,0,0,11,0,3,81.35272,11.84267,0,92.6,1000,1000,1,1,1.098612,6.907755,0,3.258096,8.294049,1,0,0,92.6,9.272128,1.098612,4.906332,1 +6,2,25,0,2,225585,0,10636.36,1.618754,1,19,1,58.47666,5.82801,0,0,0,64.30466,0,0,0,6,0,3,81.35272,11.84267,0,92.6,1000,1000,1,1,1.098612,6.907755,0,3.258096,8.294049,1,0,0,92.6,9.272128,1.098612,4.163632,1 +6,2,25,0,3,225585,0,10636.36,2.618754,1,19,1,15.49681,8.363719,0,0,0,23.86053,0,0,0,2,0,3,81.35272,11.84267,0,92.6,1000,1000,1,1,1.098612,6.907755,0,3.258096,8.294049,1,0,0,92.6,9.272128,1.098612,3.172225,1 +18,2,25,0,1,225586,0,8665.641,2.217659,0,12,1,26.95418,0,3.234501,0,0,30.18868,0,0,0,3,0,3,81.35272,11.84267,0,88.9,716.68,716.68,1,0,1.098612,6.574629,0,3.258096,7.960924,0,0,0,88.9,9.067237,1.098612,3.407467,1 +18,2,25,0,2,225586,0,8665.641,3.217659,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,81.35272,11.84267,0,88.9,716.68,716.68,1,0,1.098612,6.574629,0,3.258096,7.960924,0,0,0,88.9,9.067237,1.098612,,0 +18,2,25,0,3,225586,0,8665.641,4.217659,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,81.35272,11.84267,0,88.9,716.68,716.68,1,0,1.098612,6.574629,0,3.258096,7.960924,0,0,0,88.9,9.067237,1.098612,,0 +18,2,25,0,4,225586,0,8665.641,5.217659,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,81.35272,11.84267,0,88.9,716.68,716.68,1,0,1.098612,6.574629,0,3.258096,7.960924,0,0,0,88.9,9.067237,1.098612,,0 +18,2,25,0,5,225586,0,8665.641,6.217659,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,81.35272,11.84267,0,88.9,716.68,716.68,1,0,1.098612,6.574629,0,3.258096,7.960924,0,0,0,88.9,9.067237,1.098612,,0 +18,2,25,0,1,225587,0,8665.641,31.14031,1,12,1,99.73046,30.44744,0,0,0,130.1779,0,0,0,11,0,3,75.5,10.3,1,71.6,716.68,716.68,0,0,1.098612,6.574629,0,3.258096,7.960924,0,0,0,71.6,9.067237,1.098612,4.868902,1 +18,2,25,0,2,225587,0,8665.641,32.14032,1,12,1,6.756757,5.808354,0,0,0,12.56511,0,0,0,1,0,3,75.5,10.3,1,71.6,716.68,716.68,0,0,1.098612,6.574629,0,3.258096,7.960924,0,0,0,71.6,9.067237,1.098612,2.530924,1 +18,2,25,0,3,225587,0,8665.641,33.14032,1,12,1,0,7.155879,0,0,0,7.155879,0,0,0,0,0,3,75.5,10.3,1,71.6,716.68,716.68,0,0,1.098612,6.574629,0,3.258096,7.960924,0,0,0,71.6,9.067237,1.098612,1.967934,1 +18,2,25,0,4,225587,0,8665.641,34.14032,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,75.5,10.3,1,71.6,716.68,716.68,0,0,1.098612,6.574629,0,3.258096,7.960924,0,0,0,71.6,9.067237,1.098612,,0 +18,2,25,0,5,225587,0,8665.641,35.14032,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,75.5,10.3,1,71.6,716.68,716.68,0,0,1.098612,6.574629,0,3.258096,7.960924,0,0,0,71.6,9.067237,1.098612,,0 +18,2,25,0,1,225589,0,8665.641,4.046544,0,12,1,7.681941,0,0,0,0,7.681941,0,0,0,1,0,3,81.35272,11.84267,0,92.6,716.68,716.68,1,0,1.098612,6.574629,0,3.258096,7.960924,0,0,0,92.6,9.067237,1.098612,2.038872,1 +18,2,25,0,2,225589,0,8665.641,5.046544,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,81.35272,11.84267,0,92.6,716.68,716.68,1,0,1.098612,6.574629,0,3.258096,7.960924,0,0,0,92.6,9.067237,1.098612,,0 +18,2,25,0,3,225589,0,8665.641,6.046544,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,81.35272,11.84267,0,92.6,716.68,716.68,1,0,1.098612,6.574629,0,3.258096,7.960924,0,0,0,92.6,9.067237,1.098612,,0 +18,2,25,0,4,225589,0,8665.641,7.046544,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,81.35272,11.84267,0,92.6,716.68,716.68,1,0,1.098612,6.574629,0,3.258096,7.960924,0,0,0,92.6,9.067237,1.098612,,0 +18,2,25,0,5,225589,0,8665.641,8.046543,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,81.35272,11.84267,0,92.6,716.68,716.68,1,0,1.098612,6.574629,0,3.258096,7.960924,0,0,0,92.6,9.067237,1.098612,,0 +11,2,0,0,1,225592,0,8038.709,52.14237,1,9,1,448.787,157.8167,58,0,0,664.6038,0,0,0,24,0,2,88.3,10.3,0,64.8,0,40.32,0,0,.6931472,3.696848,0,0,0,0,1,0,64.8,8.992148,.6931472,6.499191,1 +11,2,0,0,2,225592,0,8038.709,53.14237,1,9,1,381.5725,160.4668,0,0,384.5651,926.6044,1,0,0,11,3,2,88.3,10.3,0,64.8,0,40.32,0,0,.6931472,3.696848,0,0,0,0,1,0,64.8,8.992148,.6931472,6.831527,1 +11,2,0,0,3,225592,0,8038.709,54.14237,1,9,1,82.95351,309.412,42.84412,0,0,435.2097,0,0,0,4,4,2,88.3,10.3,0,64.8,0,40.32,0,0,.6931472,3.696848,0,0,0,0,1,0,64.8,8.992148,.6931472,6.075828,1 +11,2,0,1,1,225593,0,8038.709,57.013,0,4.5,1,193.531,18.22102,47.75741,0,0,259.5094,0,0,0,6,0,2,100,13.8,0,70.5,0,40.32,0,0,.6931472,3.696848,0,0,0,0,1,0,70.5,8.992148,.6931472,5.558793,1 +11,2,0,1,2,225593,0,8038.709,58.013,0,4.5,1,117.7641,9.95086,0,0,0,127.715,0,0,0,4,2,2,100,13.8,0,70.5,0,40.32,0,0,.6931472,3.696848,0,0,0,0,1,0,70.5,8.992148,.6931472,4.849801,1 +11,2,0,1,3,225593,0,8038.709,59.013,0,4.5,1,161.4768,9.822243,53.78304,0,544.0748,769.1568,1,0,0,3,4,2,100,13.8,0,70.5,0,40.32,0,0,.6931472,3.696848,0,0,0,0,1,0,70.5,8.992148,.6931472,6.645295,1 +5,2,25,0,1,225594,0,5115.542,4.66256,1,14,1,98.38275,9.380054,0,0,0,107.7628,0,0,0,7,0,4,81.35272,11.84267,0,74.1,452.9,452.9,1,1,1.386294,6.115671,0,3.258096,7.501966,1,0,0,74.1,8.540235,1.386294,4.679933,1 +5,2,25,0,2,225594,0,5115.542,5.66256,1,14,1,66.09337,10.90909,0,0,0,77.00246,0,0,0,8,0,4,81.35272,11.84267,0,74.1,452.9,452.9,1,1,1.386294,6.115671,0,3.258096,7.501966,1,0,0,74.1,8.540235,1.386294,4.343837,1 +5,2,25,0,3,225594,0,5115.542,6.66256,1,14,1,18.23154,5.546946,0,0,0,23.77849,0,0,0,3,0,4,81.35272,11.84267,0,74.1,452.9,452.9,1,1,1.386294,6.115671,0,3.258096,7.501966,1,0,0,74.1,8.540235,1.386294,3.168781,1 +5,2,25,0,1,225595,0,5115.542,30.75428,1,14,1,24.74393,10.10782,0,0,793.7466,828.5984,1,0,0,2,0,4,50,27.6,0,42,452.9,452.9,0,0,1.386294,6.115671,0,3.258096,7.501966,1,0,0,42,8.540235,1.386294,6.719736,1 +5,2,25,0,2,225595,0,5115.542,31.75428,1,14,1,102.7027,3.316953,0,0,0,106.0197,0,0,1,3,0,4,50,27.6,0,42,452.9,452.9,0,0,1.386294,6.115671,0,3.258096,7.501966,1,0,0,42,8.540235,1.386294,4.663624,1 +5,2,25,0,3,225595,0,5115.542,32.75428,1,14,1,16.40839,2.269827,0,0,0,18.67821,0,0,0,1,0,4,50,27.6,0,42,452.9,452.9,0,0,1.386294,6.115671,0,3.258096,7.501966,1,0,0,42,8.540235,1.386294,2.927358,1 +5,2,25,0,1,225596,0,5115.542,29.79603,0,13,1,14.55526,2.830189,0,0,0,17.38544,0,0,0,2,0,4,44.7,10.3,0,72.7,452.9,452.9,0,0,1.386294,6.115671,0,3.258096,7.501966,1,0,0,72.7,8.540235,1.386294,2.855633,1 +5,2,25,0,2,225596,0,5115.542,30.79603,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,44.7,10.3,0,72.7,452.9,452.9,0,0,1.386294,6.115671,0,3.258096,7.501966,1,0,0,72.7,8.540235,1.386294,,0 +5,2,25,0,3,225596,0,5115.542,31.79603,0,13,1,16.86418,3.833181,0,0,0,20.69736,0,0,0,1,0,4,44.7,10.3,0,72.7,452.9,452.9,0,0,1.386294,6.115671,0,3.258096,7.501966,1,0,0,72.7,8.540235,1.386294,3.030006,1 +11,2,0,0,1,225609,0,9254.546,13.4538,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,75,11.84267,0,92.6,0,0,1,1,1.098612,0,0,0,0,0,0,0,92.6,9.132978,1.098612,,0 +11,2,0,0,2,225609,0,9254.546,14.4538,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,75,11.84267,0,92.6,0,0,1,1,1.098612,0,0,0,0,0,0,0,92.6,9.132978,1.098612,,0 +11,2,0,0,3,225609,0,9254.546,15.4538,1,12,1,35.33731,6.567233,0,0,0,41.90454,0,0,0,3,0,3,75,11.84267,0,92.6,0,0,1,1,1.098612,0,0,0,0,0,0,0,92.6,9.132978,1.098612,3.735394,1 +11,2,0,0,1,225610,0,9254.546,32.56673,1,12,1,26.94611,7.974959,0,0,0,34.92107,0,0,0,2,0,3,75,0,0,93.2,0,0,0,0,1.098612,0,0,0,0,0,0,0,93.2,9.132978,1.098612,3.55309,1 +11,2,0,0,2,225610,0,9254.546,33.56673,1,12,1,28.74133,0,0,0,0,28.74133,0,0,0,2,0,3,75,0,0,93.2,0,0,0,0,1.098612,0,0,0,0,0,0,0,93.2,9.132978,1.098612,3.358336,1 +11,2,0,0,3,225610,0,9254.546,34.56673,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,75,0,0,93.2,0,0,0,0,1.098612,0,0,0,0,0,0,0,93.2,9.132978,1.098612,,0 +11,2,0,0,1,225611,0,9254.546,36.06845,0,13,1,0,0,0,0,0,0,0,0,0,0,0,3,78.7,3.4,0,92,0,0,0,0,1.098612,0,0,0,0,0,0,0,92,9.132978,1.098612,,0 +11,2,0,0,2,225611,0,9254.546,37.06845,0,13,1,11.24876,0,0,0,0,11.24876,0,0,0,1,0,3,78.7,3.4,0,92,0,0,0,0,1.098612,0,0,0,0,0,0,0,92,9.132978,1.098612,2.420258,1 +11,2,0,0,3,225611,0,9254.546,38.06845,0,13,1,0,0,0,0,0,0,0,0,0,0,0,3,78.7,3.4,0,92,0,0,0,0,1.098612,0,0,0,0,0,0,0,92,9.132978,1.098612,,0 +16,2,95,1,1,225612,0,8665.641,22.10541,1,12,1,47.08764,0,0,0,0,47.08764,0,0,0,3,0,1,71.8,27.6,1,55.7,382.8,382.8,0,0,0,5.947513,0,4.564348,5.998806,0,1,0,55.7,9.067237,0,3.85201,1 +13,2,0,1,1,225613,0,8665.641,37.31964,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,73.9,6.9,0,62.5,150,0,0,0,0,0,1,4.564348,5.061929,0,0,0,62.5,9.067237,0,,0 +13,2,0,1,2,225613,0,8665.641,38.31964,0,12,1,124.8157,0,0,0,0,124.8157,0,0,0,0,10,1,73.9,6.9,0,62.5,150,0,0,0,0,0,1,4.564348,5.061929,0,0,0,62.5,9.067237,0,4.826838,1 +13,2,0,1,3,225613,0,8665.641,39.31964,0,12,1,85.7794,24.20237,0,0,432.4521,542.4339,1,0,0,3,0,1,73.9,6.9,0,62.5,150,0,0,0,0,0,1,4.564348,5.061929,0,0,0,62.5,9.067237,0,6.296066,1 +13,2,0,1,1,225619,0,9371.848,4.246407,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,81.35272,11.84267,0,92.6,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,1,0,0,92.6,9.145573,1.609438,,0 +13,2,0,1,2,225619,0,9371.848,5.246407,1,11,1,11.22499,0,0,0,0,11.22499,0,0,0,1,0,5,81.35272,11.84267,0,92.6,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,1,0,0,92.6,9.145573,1.609438,2.418142,1 +13,2,0,1,3,225619,0,9371.848,6.246407,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,81.35272,11.84267,0,92.6,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,1,0,0,92.6,9.145573,1.609438,,0 +13,2,0,1,1,225620,0,9371.848,30.65024,0,7,1,18.46895,0,2.67666,0,0,21.14561,0,0,0,1,0,5,77.1,6.9,0,65.9,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,65.9,9.145573,1.609438,3.051432,1 +13,2,0,1,2,225620,0,9371.848,31.65024,0,7,1,17.0815,0,29.09712,19.52172,982.6013,1028.78,1,0,2,1,0,5,77.1,6.9,0,65.9,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,65.9,9.145573,1.609438,6.936129,1 +13,2,0,1,3,225620,0,9371.848,32.65024,0,7,1,44.39928,0,0,56.68473,134.5483,178.9476,1,0,3,1,0,5,77.1,6.9,0,65.9,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,65.9,9.145573,1.609438,5.187093,1 +13,2,0,1,1,225621,0,9371.848,10.83368,0,11,1,0,0,0,0,0,0,0,0,0,0,0,5,98.3,11.84267,0,88.9,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,88.9,9.145573,1.609438,,0 +13,2,0,1,2,225621,0,9371.848,11.83368,0,11,1,26.84236,2.284041,33.48951,0,0,62.61591,0,0,0,2,0,5,98.3,11.84267,0,88.9,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,88.9,9.145573,1.609438,4.137019,1 +13,2,0,1,3,225621,0,9371.848,12.83368,0,11,1,45.0542,0,0,0,0,45.0542,0,0,0,2,0,5,98.3,11.84267,0,88.9,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,88.9,9.145573,1.609438,3.807866,1 +13,2,0,1,1,225622,0,9371.848,28.52019,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,64.4,17.2,0,54.5,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,54.5,9.145573,1.609438,,0 +13,2,0,1,2,225622,0,9371.848,29.52019,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,64.4,17.2,0,54.5,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,54.5,9.145573,1.609438,,0 +13,2,0,1,3,225622,0,9371.848,30.52019,1,11,1,0,0,0,112.9178,0,0,0,0,5,0,0,5,64.4,17.2,0,54.5,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,54.5,9.145573,1.609438,,0 +13,2,0,1,1,225623,0,9371.848,8.621492,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,100,11.84267,0,92.6,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,1,0,0,92.6,9.145573,1.609438,,0 +13,2,0,1,2,225623,0,9371.848,9.621492,1,11,1,5.856515,0,0,0,0,5.856515,0,0,0,1,0,5,100,11.84267,0,92.6,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,1,0,0,92.6,9.145573,1.609438,1.767555,1 +13,2,0,1,3,225623,0,9371.848,10.62149,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,100,11.84267,0,92.6,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,1,0,0,92.6,9.145573,1.609438,,0 +11,2,0,0,1,225636,0,4135.484,2.105407,1,12,1,39.19434,3.973871,0,0,0,43.16821,0,0,0,2,1,3,81.35272,11.84267,0,85.2,0,0,1,1,1.098612,0,0,0,0,0,0,0,85.2,8.327601,1.098612,3.765104,1 +11,2,0,0,2,225636,0,4135.484,3.105407,1,12,1,138.1318,41.26858,0,0,362.7602,542.1606,1,0,0,9,0,3,81.35272,11.84267,0,85.2,0,0,1,1,1.098612,0,0,0,0,0,0,0,85.2,8.327601,1.098612,6.295562,1 +11,2,0,0,3,225636,0,4135.484,4.105407,1,12,1,159.0179,38.25149,0,0,381.2988,578.5682,1,0,0,14,0,3,81.35272,11.84267,0,85.2,0,0,1,1,1.098612,0,0,0,0,0,0,0,85.2,8.327601,1.098612,6.360557,1 +11,2,0,0,1,225637,0,4135.484,25.90007,0,12,1,362.0033,19.89113,30.51715,462.7109,0,412.4115,0,0,32,9,1,3,70.7,10.3,0,55.7,0,0,0,0,1.098612,0,0,0,0,1,0,0,55.7,8.327601,1.098612,6.022022,1 +11,2,0,0,2,225637,0,4135.484,26.90007,0,12,1,158.7711,12.26957,0,676.4123,0,171.0406,0,0,30,6,1,3,70.7,10.3,0,55.7,0,0,0,0,1.098612,0,0,0,0,1,0,0,55.7,8.327601,1.098612,5.141901,1 +11,2,0,0,3,225637,0,4135.484,27.90007,0,12,1,22.94631,0,32.40936,0,0,55.35567,0,0,0,1,1,3,70.7,10.3,0,55.7,0,0,0,0,1.098612,0,0,0,0,1,0,0,55.7,8.327601,1.098612,4.013779,1 +11,2,0,0,1,225638,0,4135.484,24.74743,1,12,1,34.24061,9.199782,28.91127,1012.52,0,72.35166,0,0,47,1,1,3,75,3.4,0,88.6,0,0,0,0,1.098612,0,0,0,0,0,0,0,88.6,8.327601,1.098612,4.281538,1 +11,2,0,0,2,225638,0,4135.484,25.74743,1,12,1,374.4054,51.72943,1.48662,237.8593,0,427.6214,0,0,12,7,16,3,75,3.4,0,88.6,0,0,0,0,1.098612,0,0,0,0,0,0,0,88.6,8.327601,1.098612,6.058238,1 +11,2,0,0,3,225638,0,4135.484,26.74743,1,12,1,114.8004,44.27719,39.00872,0,0,198.0863,0,0,0,8,1,3,75,3.4,0,88.6,0,0,0,0,1.098612,0,0,0,0,0,0,0,88.6,8.327601,1.098612,5.288702,1 +13,2,0,0,1,225642,0,5781.231,22.63381,1,13,1,14.82266,5.812599,0,0,658.9465,679.5818,1,0,0,1,0,2,81.9,10.3,0,83,300,76.85,0,0,.6931472,4.341856,1,4.564348,5.755076,0,0,0,83,8.662545,.6931472,6.521478,1 +13,2,0,0,2,225642,0,5781.231,23.63381,1,13,1,9.893823,19.45946,0,0,0,29.35328,0,0,0,1,0,3,81.9,10.3,0,83,300,76.85,0,0,1.098612,4.341856,1,4.564348,5.755076,0,0,0,83,8.662545,1.098612,3.379404,1 +13,2,0,0,3,225642,0,5781.231,24.63381,1,13,1,26.25723,3.093013,0,0,332.7325,362.0828,1,0,0,2,0,3,81.9,10.3,0,83,300,76.85,0,0,1.098612,4.341856,1,4.564348,5.755076,0,0,0,83,8.662545,1.098612,5.891873,1 +13,2,0,0,1,225643,0,5781.231,26.83641,0,15,1,6.881948,23.90154,0,0,0,30.78348,0,0,0,1,0,2,84,6.9,0,72.7,300,76.85,0,0,.6931472,4.341856,1,4.564348,5.755076,1,0,0,72.7,8.662545,.6931472,3.426978,1 +13,2,0,0,2,225643,0,5781.231,27.83641,0,15,1,0,27.33591,0,0,0,27.33591,0,0,0,0,0,3,84,6.9,0,72.7,300,76.85,0,0,1.098612,4.341856,1,4.564348,5.755076,1,0,0,72.7,8.662545,1.098612,3.308201,1 +13,2,0,0,3,225643,0,5781.231,28.83641,0,15,1,0,26.45305,0,0,0,26.45305,0,0,0,0,0,3,84,6.9,0,72.7,300,76.85,0,0,1.098612,4.341856,1,4.564348,5.755076,1,0,0,72.7,8.662545,1.098612,3.275371,1 +11,2,0,0,1,225652,0,7661.583,13.82888,0,12,1,99.24529,4.770889,0,0,0,104.0162,0,0,0,5,0,7,83.6,11.84267,0,92.6,0,0,1,0,1.94591,0,0,0,0,0,0,0,92.6,8.944104,1.94591,4.644547,1 +11,2,0,0,2,225652,0,7661.583,14.82888,0,12,1,16.85504,0,0,0,0,16.85504,0,0,0,2,0,7,83.6,11.84267,0,92.6,0,0,1,0,1.94591,0,0,0,0,0,0,0,92.6,8.944104,1.94591,2.82465,1 +11,2,0,0,3,225652,0,7661.583,15.82888,0,12,1,25.06837,9.042844,0,0,0,34.11121,0,0,0,2,0,7,83.6,11.84267,0,92.6,0,0,1,0,1.94591,0,0,0,0,0,0,0,92.6,8.944104,1.94591,3.529626,1 +11,2,0,0,1,225653,0,7661.583,15.95072,1,12,1,40.97035,12.14016,35.35849,0,0,88.469,0,0,0,5,0,7,88.3,6.9,0,69.3,0,0,1,1,1.94591,0,0,0,0,0,0,0,69.3,8.944104,1.94591,4.482652,1 +11,2,0,0,2,225653,0,7661.583,16.95072,1,12,1,46.41278,15.00737,0,0,0,61.42015,0,0,0,4,0,7,88.3,6.9,0,69.3,0,0,1,1,1.94591,0,0,0,0,0,0,0,69.3,8.944104,1.94591,4.117738,1 +11,2,0,0,3,225653,0,7661.583,17.95072,1,12,1,0,0,0,0,0,0,0,0,0,0,0,7,88.3,6.9,0,69.3,0,0,1,1,1.94591,0,0,0,0,0,0,0,69.3,8.944104,1.94591,,0 +11,2,0,0,1,225654,0,7661.583,18.22313,0,11,1,40.05391,3.126685,0,0,0,43.18059,0,0,0,4,0,7,63.8,13.8,0,60.2,0,0,0,0,1.94591,0,0,0,0,0,0,0,60.2,8.944104,1.94591,3.765391,1 +11,2,0,0,2,225654,0,7661.583,19.22313,0,11,1,6.879607,0,0,0,0,6.879607,0,0,0,1,0,7,63.8,13.8,0,60.2,0,0,0,0,1.94591,0,0,0,0,0,0,0,60.2,8.944104,1.94591,1.928561,1 +11,2,0,0,3,225654,0,7661.583,20.22313,0,11,1,17.06928,0,0,0,0,17.06928,0,0,0,1,0,7,63.8,13.8,0,60.2,0,0,0,0,1.94591,0,0,0,0,0,0,0,60.2,8.944104,1.94591,2.837281,1 +11,2,0,0,1,225655,0,7661.583,40.07392,1,12,1,212.372,21.18598,4.312668,0,1328.76,1566.631,1,0,0,10,0,7,80.3,24.1,1,68.2,0,0,0,0,1.94591,0,0,0,0,1,0,0,68.2,8.944104,1.94591,7.356683,1 +11,2,0,0,2,225655,0,7661.583,41.07392,1,12,1,75.13513,25.88698,0,0,0,101.0221,0,0,0,4,2,7,80.3,24.1,1,68.2,0,0,0,0,1.94591,0,0,0,0,1,0,0,68.2,8.944104,1.94591,4.615339,1 +11,2,0,0,3,225655,0,7661.583,42.07392,1,12,1,42.95807,14.43482,0,0,0,57.39289,0,0,0,3,0,7,80.3,24.1,1,68.2,0,0,0,0,1.94591,0,0,0,0,1,0,0,68.2,8.944104,1.94591,4.049921,1 +11,2,0,0,1,225656,0,7661.583,11.9781,1,12,1,38.94879,1.051213,0,0,0,40,0,0,0,2,0,7,85,11.84267,0,63,0,0,1,1,1.94591,0,0,0,0,0,0,0,63,8.944104,1.94591,3.688879,1 +11,2,0,0,2,225656,0,7661.583,12.9781,1,12,1,23.83292,0,30.75676,0,0,54.58968,0,0,0,2,0,7,85,11.84267,0,63,0,0,1,1,1.94591,0,0,0,0,0,0,0,63,8.944104,1.94591,3.999845,1 +11,2,0,0,3,225656,0,7661.583,13.9781,1,12,1,25.06837,2.256153,15.9526,0,0,43.27712,0,0,0,1,1,7,85,11.84267,0,63,0,0,1,1,1.94591,0,0,0,0,0,0,0,63,8.944104,1.94591,3.767624,1 +11,2,0,0,1,225657,0,7661.583,42.01232,0,12,1,82.88409,8.544475,33.69272,0,0,125.1213,0,0,0,7,0,7,77.1,17.2,1,61.4,0,0,0,0,1.94591,0,0,0,0,0,1,0,61.4,8.944104,1.94591,4.829284,1 +11,2,0,0,2,225657,0,7661.583,43.01232,0,12,1,87.32187,16.27027,20.09828,0,250,373.6904,1,0,0,7,0,7,77.1,17.2,1,61.4,0,0,0,0,1.94591,0,0,0,0,0,1,0,61.4,8.944104,1.94591,5.923428,1 +11,2,0,0,3,225657,0,7661.583,44.01232,0,12,1,25.13674,0,0,0,0,25.13674,0,0,0,0,0,7,77.1,17.2,1,61.4,0,0,0,0,1.94591,0,0,0,0,0,1,0,61.4,8.944104,1.94591,3.22433,1 +11,2,0,0,1,225658,0,7661.583,5.048597,1,12,1,17.97844,5.175202,0,0,0,23.15364,0,0,0,2,0,7,85,11.84267,0,85.2,0,0,1,1,1.94591,0,0,0,0,0,0,0,85.2,8.944104,1.94591,3.142152,1 +11,2,0,0,2,225658,0,7661.583,6.048597,1,12,1,36.24079,8.083538,0,0,0,44.32433,0,0,0,2,0,7,85,11.84267,0,85.2,0,0,1,1,1.94591,0,0,0,0,0,0,0,85.2,8.944104,1.94591,3.791534,1 +11,2,0,0,3,225658,0,7661.583,7.048597,1,12,1,112.124,28.46399,0,0,0,140.588,0,0,0,1,1,7,85,11.84267,0,85.2,0,0,1,1,1.94591,0,0,0,0,0,0,0,85.2,8.944104,1.94591,4.945833,1 +13,2,0,1,1,225672,0,11346.63,.7255304,0,12,1,183.0728,50.03773,14.18868,0,0,247.2992,0,0,0,15,0,5,81.35272,11.84267,1,66.7,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,66.7,9.336764,1.609438,5.510599,1 +13,2,0,1,2,225672,0,11346.63,1.725531,0,12,1,258.5258,22.64865,0,0,0,281.1744,0,0,0,9,0,5,81.35272,11.84267,1,66.7,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,66.7,9.336764,1.609438,5.638975,1 +13,2,0,1,3,225672,0,11346.63,2.72553,0,12,1,14.81313,0,0,0,0,14.81313,0,0,0,2,0,5,81.35272,11.84267,1,66.7,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,66.7,9.336764,1.609438,2.695514,1 +13,2,0,1,4,225672,0,11346.63,3.72553,0,12,1,144.4352,7.044602,0,0,0,151.4798,0,0,0,5,0,5,81.35272,11.84267,1,66.7,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,66.7,9.336764,1.609438,5.020452,1 +13,2,0,1,5,225672,0,11346.63,4.725531,0,12,1,15.00375,1.980495,0,0,741.1215,758.1058,1,0,0,2,0,5,81.35272,11.84267,1,66.7,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,66.7,9.336764,1.609438,6.630823,1 +13,2,0,1,1,225673,0,11346.63,28.73648,0,13,1,114,5.784367,0,175.2022,0,119.7844,0,0,8,5,0,5,77.7,17.2,0,68.2,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,68.2,9.336764,1.609438,4.785693,1 +13,2,0,1,2,225673,0,11346.63,29.73648,0,13,1,24.44717,1.995086,0,0,0,26.44226,0,0,0,2,0,5,77.7,17.2,0,68.2,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,68.2,9.336764,1.609438,3.274964,1 +13,2,0,1,3,225673,0,11346.63,30.73648,0,13,1,131.3582,4.416591,0,0,0,135.7748,0,0,0,5,0,5,77.7,17.2,0,68.2,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,68.2,9.336764,1.609438,4.910998,1 +13,2,0,1,4,225673,0,11346.63,31.73648,0,13,1,111.609,19.21634,11.25469,0,0,142.08,0,0,0,6,0,5,77.7,17.2,0,68.2,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,68.2,9.336764,1.609438,4.95639,1 +13,2,0,1,5,225673,0,11346.63,32.73648,0,13,1,96.3991,2.205551,0,0,0,98.60465,0,0,0,4,5,5,77.7,17.2,0,68.2,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,68.2,9.336764,1.609438,4.591118,1 +13,2,0,1,1,225674,0,11346.63,7.66872,1,12,1,14.98652,3.401617,0,0,0,18.38814,0,0,0,1,0,5,80,11.84267,0,81.5,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,1,0,0,81.5,9.336764,1.609438,2.911706,1 +13,2,0,1,2,225674,0,11346.63,8.66872,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,80,11.84267,0,81.5,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,1,0,0,81.5,9.336764,1.609438,,0 +13,2,0,1,3,225674,0,11346.63,9.66872,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,80,11.84267,0,81.5,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,1,0,0,81.5,9.336764,1.609438,,0 +13,2,0,1,4,225674,0,11346.63,10.66872,1,12,1,23.7599,2.621926,0,0,0,26.38183,0,0,0,2,0,5,80,11.84267,0,81.5,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,1,0,0,81.5,9.336764,1.609438,3.272675,1 +13,2,0,1,5,225674,0,11346.63,11.66872,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,80,11.84267,0,81.5,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,1,0,0,81.5,9.336764,1.609438,,0 +13,2,0,1,1,225675,0,11346.63,30.09446,1,12,1,82.45283,44.70081,0,481.1321,0,127.1536,0,0,45,3,0,5,56.4,20.7,0,77.3,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,77.3,9.336764,1.609438,4.845396,1 +13,2,0,1,2,225675,0,11346.63,31.09446,1,12,1,8.648648,24.13268,0,0,0,32.78133,0,0,0,1,0,5,56.4,20.7,0,77.3,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,77.3,9.336764,1.609438,3.489859,1 +13,2,0,1,3,225675,0,11346.63,32.09446,1,12,1,25.97995,3.828624,0,0,0,29.80857,0,0,0,2,0,5,56.4,20.7,0,77.3,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,77.3,9.336764,1.609438,3.394796,1 +13,2,0,1,4,225675,0,11346.63,33.09446,1,12,1,44.18508,6.2401,0,0,0,50.42518,0,0,0,3,0,5,56.4,20.7,0,77.3,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,77.3,9.336764,1.609438,3.920491,1 +13,2,0,1,5,225675,0,11346.63,34.09446,1,12,1,48.012,16.11028,0,0,0,64.12228,0,0,0,3,0,5,56.4,20.7,0,77.3,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,77.3,9.336764,1.609438,4.160792,1 +13,2,0,1,1,225676,0,11346.63,10.54346,0,12,1,3.180593,0,0,0,0,3.180593,0,0,0,0,0,5,73.3,11.84267,0,92.6,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,92.6,9.336764,1.609438,1.157068,1 +13,2,0,1,2,225676,0,11346.63,11.54346,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,73.3,11.84267,0,92.6,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,92.6,9.336764,1.609438,,0 +13,2,0,1,3,225676,0,11346.63,12.54346,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,73.3,11.84267,0,92.6,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,92.6,9.336764,1.609438,,0 +13,2,0,1,4,225676,0,11346.63,13.54346,0,12,1,7.503126,0,0,0,0,7.503126,0,0,0,1,0,5,73.3,11.84267,0,92.6,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,92.6,9.336764,1.609438,2.01532,1 +13,2,0,1,5,225676,0,11346.63,14.54346,0,12,1,9.377344,0,0,0,0,9.377344,0,0,0,1,0,5,73.3,11.84267,0,92.6,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,92.6,9.336764,1.609438,2.238297,1 +13,2,0,1,1,225679,0,17232.26,17.91923,1,16,1,65.57816,24.49143,8.029979,0,0,98.09957,0,0,0,6,2,4,57.4,3.4,0,31.8,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,31.8,9.754597,1.386294,4.585983,1 +13,2,0,1,2,225679,0,17232.26,18.91923,1,16,1,8.784773,9.32162,0,0,0,18.10639,0,0,0,1,0,4,57.4,3.4,0,31.8,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,31.8,9.754597,1.386294,2.896265,1 +13,2,0,1,3,225679,0,17232.26,19.91923,1,16,1,0,0,0,0,0,0,0,0,0,0,0,4,57.4,3.4,0,31.8,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,31.8,9.754597,1.386294,,0 +13,2,0,1,1,225680,0,17232.26,22.03148,0,12,1,5.353319,0,0,0,0,5.353319,0,0,0,1,0,4,76.1,3.4,0,77.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,77.3,9.754597,1.386294,1.677717,1 +13,2,0,1,2,225680,0,17232.26,23.03148,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,76.1,3.4,0,77.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,77.3,9.754597,1.386294,,0 +13,2,0,1,3,225680,0,17232.26,24.03148,0,12,1,9.372177,0,0,0,0,9.372177,0,0,0,1,0,4,76.1,3.4,0,77.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,77.3,9.754597,1.386294,2.237746,1 +13,2,0,1,1,225682,0,17232.26,43.19507,1,16,1,28.37259,11.56852,32.97109,0,0,72.91221,0,0,0,3,0,4,80.3,13.8,1,83,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,83,9.754597,1.386294,4.289256,1 +13,2,0,1,2,225682,0,17232.26,44.19507,1,16,1,27.3304,0,0,97.60859,0,27.3304,0,0,5,4,0,4,80.3,13.8,1,83,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,83,9.754597,1.386294,3.308,1 +13,2,0,1,3,225682,0,17232.26,45.19507,1,16,1,8.807588,0,0,505.8717,0,8.807588,0,0,28,1,0,4,80.3,13.8,1,83,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,83,9.754597,1.386294,2.175614,1 +13,2,0,1,1,225683,0,17232.26,47.53456,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,72.9,3.4,0,78.4,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,78.4,9.754597,1.386294,,0 +13,2,0,1,2,225683,0,17232.26,48.53456,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,72.9,3.4,0,78.4,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,78.4,9.754597,1.386294,,0 +13,2,0,1,3,225683,0,17232.26,49.53456,0,13,1,47.42548,0,0,0,0,47.42548,0,0,0,5,0,4,72.9,3.4,0,78.4,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,78.4,9.754597,1.386294,3.859159,1 +11,2,0,1,1,225686,0,8224.634,6.521561,1,12,1,67.90846,3.672166,0,0,0,71.58063,0,0,0,5,0,3,90,11.84267,0,77.8,0,0,1,1,1.098612,0,0,0,0,0,0,0,77.8,9.015011,1.098612,4.270824,1 +11,2,0,1,2,225686,0,8224.634,7.521561,1,12,1,131.9195,8.119244,0,0,0,140.0388,0,0,0,6,0,3,90,11.84267,0,77.8,0,0,1,1,1.098612,0,0,0,0,0,0,0,77.8,9.015011,1.098612,4.941919,1 +11,2,0,1,3,225686,0,8224.634,8.521561,1,12,1,31.89578,1.72956,0,0,0,33.62534,0,0,0,3,0,4,90,11.84267,0,77.8,0,0,1,1,1.386294,0,0,0,0,0,0,0,77.8,9.015011,1.386294,3.51528,1 +11,2,0,1,1,225687,0,8224.634,2.507871,1,12,1,29.5636,0,0,0,0,29.5636,0,0,0,2,0,3,81.35272,11.84267,0,77.8,0,0,1,1,1.098612,0,0,0,0,0,0,0,77.8,9.015011,1.098612,3.386544,1 +11,2,0,1,2,225687,0,8224.634,3.507871,1,12,1,19.14687,5.113912,0,0,0,24.26079,0,0,0,2,0,3,81.35272,11.84267,0,77.8,0,0,1,1,1.098612,0,0,0,0,0,0,0,77.8,9.015011,1.098612,3.188861,1 +11,2,0,1,3,225687,0,8224.634,4.507871,1,12,1,23.13567,0,0,0,0,23.13567,0,0,0,1,0,4,81.35272,11.84267,0,77.8,0,0,1,1,1.386294,0,0,0,0,0,0,0,77.8,9.015011,1.386294,3.141376,1 +11,2,0,1,1,225688,0,8224.634,25.8809,1,12,1,134.1671,41.93188,0,0,0,176.099,0,0,0,8,0,3,73.4,13.8,0,70.5,0,0,0,0,1.098612,0,0,0,0,0,0,0,70.5,9.015011,1.098612,5.171046,1 +11,2,0,1,2,225688,0,8224.634,26.8809,1,12,1,80.10179,58.07077,0,0,746.2191,884.3917,1,0,0,5,0,3,73.4,13.8,0,70.5,0,0,0,0,1.098612,0,0,0,0,0,0,0,70.5,9.015011,1.098612,6.7849,1 +11,2,0,1,3,225688,0,8224.634,27.8809,1,12,1,110.1752,15.04492,0,0,0,125.2201,0,0,0,3,0,4,73.4,13.8,0,70.5,0,0,0,0,1.386294,0,0,0,0,0,0,0,70.5,9.015011,1.386294,4.830073,1 +11,2,0,1,1,225691,0,4414.076,43.50445,0,12,1,321.2017,8.189518,48.41186,0,0,377.8031,0,0,0,6,11,1,63.8,20.7,1,46.6,0,0,0,0,0,0,0,0,0,0,1,0,46.6,8.39278,0,5.934373,1 +11,2,0,1,2,225691,0,4414.076,44.50445,0,12,1,0,2.051158,0,0,0,2.051158,0,0,0,0,0,1,63.8,20.7,1,46.6,0,0,0,0,0,0,0,0,0,0,1,0,46.6,8.39278,0,.7184046,1 +11,2,0,1,3,225691,0,4414.076,45.50445,0,12,1,8.077436,0,0,0,0,8.077436,0,0,0,0,0,1,63.8,20.7,1,46.6,0,0,0,0,0,0,0,0,0,0,1,0,46.6,8.39278,0,2.089075,1 +11,2,0,1,4,225691,0,4414.076,46.50445,0,12,1,24.80683,5.673038,34.47743,0,0,64.9573,0,0,0,1,1,1,63.8,20.7,1,46.6,0,0,0,0,0,0,0,0,0,0,1,0,46.6,8.39278,0,4.17373,1 +11,2,0,1,5,225691,0,4414.076,47.50445,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,63.8,20.7,1,46.6,0,0,0,0,0,0,0,0,0,0,1,0,46.6,8.39278,0,,0 +5,2,25,1,1,225703,1,10402.35,32.52567,1,12,1,112.938,40.68464,0,0,0,153.6226,0,0,0,4,0,4,82.5,3.4,0,61.4,966.45,966.45,0,0,1.386294,6.87363,0,3.258096,8.259924,1,0,0,61.4,9.249883,1.386294,5.034499,1 +5,2,25,1,2,225703,1,10402.35,33.52567,1,12,1,0,29.42015,0,0,696.8059,726.2261,1,0,0,0,0,4,82.5,3.4,0,61.4,966.45,966.45,0,0,1.386294,6.87363,0,3.258096,8.259924,1,0,0,61.4,9.249883,1.386294,6.587862,1 +5,2,25,1,3,225703,1,10402.35,34.52567,1,12,1,116.9553,27.5752,0,0,0,144.5305,0,0,0,2,0,5,82.5,3.4,0,61.4,966.45,966.45,0,0,1.609438,6.87363,0,3.258096,8.259924,1,0,0,61.4,9.249883,1.609438,4.973491,1 +5,2,25,1,4,225703,1,10402.35,35.52567,1,12,1,60.02501,2.250938,0,0,0,62.27595,0,0,0,3,0,5,82.5,3.4,0,61.4,966.45,966.45,0,0,1.609438,6.87363,0,3.258096,8.259924,1,0,0,61.4,9.249883,1.609438,4.131575,1 +5,2,25,1,5,225703,1,10402.35,36.52567,1,12,1,132.9707,0,40.82146,0,0,173.7922,0,0,0,11,0,5,82.5,3.4,0,61.4,966.45,966.45,0,0,1.609438,6.87363,0,3.258096,8.259924,1,0,0,61.4,9.249883,1.609438,5.15786,1 +5,2,25,1,1,225704,1,10402.35,36.05476,0,12,1,18.86792,0,0,0,0,18.86792,0,0,0,1,0,4,89.4,0,0,95.5,966.45,966.45,0,0,1.386294,6.87363,0,3.258096,8.259924,0,0,0,95.5,9.249883,1.386294,2.937463,1 +5,2,25,1,2,225704,1,10402.35,37.05476,0,12,1,8.599508,7.277641,0,0,0,15.87715,0,0,0,1,0,4,89.4,0,0,95.5,966.45,966.45,0,0,1.386294,6.87363,0,3.258096,8.259924,0,0,0,95.5,9.249883,1.386294,2.764881,1 +5,2,25,1,3,225704,1,10402.35,38.05476,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,89.4,0,0,95.5,966.45,966.45,0,0,1.609438,6.87363,0,3.258096,8.259924,0,0,0,95.5,9.249883,1.609438,,0 +5,2,25,1,4,225704,1,10402.35,39.05476,0,12,1,11.67153,0,0,0,0,11.67153,0,0,0,1,0,5,89.4,0,0,95.5,966.45,966.45,0,0,1.609438,6.87363,0,3.258096,8.259924,0,0,0,95.5,9.249883,1.609438,2.457153,1 +5,2,25,1,5,225704,1,10402.35,40.05476,0,12,1,6.751688,4.354839,0,0,0,11.10653,0,0,0,1,0,5,89.4,0,0,95.5,966.45,966.45,0,0,1.609438,6.87363,0,3.258096,8.259924,0,0,0,95.5,9.249883,1.609438,2.407533,1 +5,2,25,1,1,225705,1,10402.35,10.59822,0,12,1,31.80593,0,0,0,0,31.80593,0,0,0,3,0,4,85,11.84267,0,48.1,966.45,966.45,1,0,1.386294,6.87363,0,3.258096,8.259924,0,0,0,48.1,9.249883,1.386294,3.459653,1 +5,2,25,1,2,225705,1,10402.35,11.59822,0,12,1,17.19902,0,0,0,0,17.19902,0,0,0,1,0,4,85,11.84267,0,48.1,966.45,966.45,1,0,1.386294,6.87363,0,3.258096,8.259924,0,0,0,48.1,9.249883,1.386294,2.844852,1 +5,2,25,1,3,225705,1,10402.35,12.59822,0,12,1,9.11577,0,0,0,0,9.11577,0,0,0,1,0,5,85,11.84267,0,48.1,966.45,966.45,1,0,1.609438,6.87363,0,3.258096,8.259924,0,0,0,48.1,9.249883,1.609438,2.210006,1 +5,2,25,1,4,225705,1,10402.35,13.59822,0,12,1,19.5915,0,36.88203,0,0,56.47353,0,0,0,1,0,5,85,11.84267,0,48.1,966.45,966.45,1,0,1.609438,6.87363,0,3.258096,8.259924,0,0,0,48.1,9.249883,1.609438,4.033772,1 +5,2,25,1,5,225705,1,10402.35,14.59822,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,85,11.84267,0,48.1,966.45,966.45,1,0,1.609438,6.87363,0,3.258096,8.259924,0,0,0,48.1,9.249883,1.609438,,0 +5,2,25,1,1,225706,1,10402.35,7.022587,1,12,1,83.55795,0,0,0,0,83.55795,0,0,0,3,0,4,93.3,11.84267,0,81.5,966.45,966.45,1,1,1.386294,6.87363,0,3.258096,8.259924,0,0,0,81.5,9.249883,1.386294,4.42554,1 +5,2,25,1,2,225706,1,10402.35,8.022587,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,93.3,11.84267,0,81.5,966.45,966.45,1,1,1.386294,6.87363,0,3.258096,8.259924,0,0,0,81.5,9.249883,1.386294,,0 +5,2,25,1,3,225706,1,10402.35,9.022587,1,12,1,6.836828,0,0,0,0,6.836828,0,0,0,1,0,5,93.3,11.84267,0,81.5,966.45,966.45,1,1,1.609438,6.87363,0,3.258096,8.259924,0,0,0,81.5,9.249883,1.609438,1.922324,1 +5,2,25,1,4,225706,1,10402.35,10.02259,1,12,1,15.83993,0,0,0,0,15.83993,0,0,0,1,0,5,93.3,11.84267,0,81.5,966.45,966.45,1,1,1.609438,6.87363,0,3.258096,8.259924,0,0,0,81.5,9.249883,1.609438,2.762534,1 +5,2,25,1,5,225706,1,10402.35,11.02259,1,12,1,38.25956,0,0,0,0,38.25956,0,0,0,3,0,5,93.3,11.84267,0,81.5,966.45,966.45,1,1,1.609438,6.87363,0,3.258096,8.259924,0,0,0,81.5,9.249883,1.609438,3.644393,1 +11,2,0,0,1,225707,0,10331.38,44.77481,0,12,1,0,5.432771,0,0,0,5.432771,0,0,0,0,0,1,89.9,3.4,0,78.4,0,0,0,0,0,0,0,0,0,0,0,0,78.4,9.243038,0,1.692449,1 +11,2,0,0,2,225707,0,10331.38,45.77481,0,12,1,65.65907,4.241824,0,0,0,69.90089,0,0,0,2,0,1,89.9,3.4,0,78.4,0,0,0,0,0,0,0,0,0,0,0,0,78.4,9.243038,0,4.247078,1 +11,2,0,0,3,225707,0,10331.38,46.77481,0,12,1,0,0,38.24231,0,0,38.24231,0,0,0,0,0,1,89.9,3.4,0,78.4,0,0,0,0,0,0,0,0,0,0,0,0,78.4,9.243038,0,3.643943,1 +13,2,0,0,1,225737,0,7747.214,51.85489,0,12,1,16.98113,0,0,0,0,16.98113,0,0,0,1,0,2,92,10.3,0,81.8,300,0,0,0,.6931472,0,1,4.564348,5.755076,0,0,0,81.8,8.955217,.6931472,2.832103,1 +13,2,0,0,2,225737,0,7747.214,52.85489,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,92,10.3,0,81.8,300,0,0,0,.6931472,0,1,4.564348,5.755076,0,0,0,81.8,8.955217,.6931472,,0 +13,2,0,0,3,225737,0,7747.214,53.85489,0,12,1,30.53783,0,40.84777,0,0,71.3856,0,0,0,1,1,2,92,10.3,0,81.8,300,0,0,0,.6931472,0,1,4.564348,5.755076,0,0,0,81.8,8.955217,.6931472,4.268096,1 +13,2,0,0,4,225737,0,7747.214,54.85489,0,12,1,13.33889,0,0,0,0,13.33889,0,0,0,0,0,2,92,10.3,0,81.8,300,0,0,0,.6931472,0,1,4.564348,5.755076,0,0,0,81.8,8.955217,.6931472,2.590684,1 +13,2,0,0,5,225737,0,7747.214,55.85489,0,12,1,21.1928,0,33.67592,0,0,54.86872,0,0,0,0,3,2,92,10.3,0,81.8,300,0,0,0,.6931472,0,1,4.564348,5.755076,0,0,0,81.8,8.955217,.6931472,4.004943,1 +13,2,0,0,1,225738,0,7747.214,49.16906,1,12,1,9.218328,21.00809,0,0,0,30.22642,0,0,0,1,0,2,79.3,10.3,0,67,300,0,0,0,.6931472,0,1,4.564348,5.755076,1,0,0,67,8.955217,.6931472,3.408716,1 +13,2,0,0,2,225738,0,7747.214,50.16906,1,12,1,149.0909,30.17199,0,0,0,179.2629,0,0,0,7,5,2,79.3,10.3,0,67,300,0,0,0,.6931472,0,1,4.564348,5.755076,1,0,0,67,8.955217,.6931472,5.188853,1 +13,2,0,0,3,225738,0,7747.214,51.16906,1,12,1,32.81677,8.021878,23.701,0,0,64.53965,0,0,0,1,1,2,79.3,10.3,0,67,300,0,0,0,.6931472,0,1,4.564348,5.755076,1,0,0,67,8.955217,.6931472,4.16728,1 +13,2,0,0,4,225738,0,7747.214,52.16906,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,79.3,10.3,0,67,300,0,0,0,.6931472,0,1,4.564348,5.755076,1,0,0,67,8.955217,.6931472,,0 +13,2,0,0,5,225738,0,7747.214,53.16906,1,12,1,385.9715,13.84846,28.11328,0,0,427.9332,0,0,0,1,1,2,79.3,10.3,0,67,300,0,0,0,.6931472,0,1,4.564348,5.755076,1,0,0,67,8.955217,.6931472,6.058967,1 +16,2,95,1,1,225743,0,7975.953,2.841889,1,13,1,32.66195,7.719107,0,0,0,40.38106,0,0,0,5,0,5,81.35272,11.84267,0,77.8,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,77.8,8.984312,1.609438,3.698361,1 +16,2,95,1,2,225743,0,7975.953,3.841889,1,13,1,28.24579,16.60555,0,0,0,44.85134,0,0,0,4,0,5,81.35272,11.84267,0,77.8,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,77.8,8.984312,1.609438,3.803353,1 +16,2,95,1,3,225743,0,7975.953,4.841889,1,13,1,34.41946,6.002754,0,0,0,40.42221,0,0,0,3,0,5,81.35272,11.84267,0,77.8,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,77.8,8.984312,1.609438,3.699379,1 +16,2,95,1,1,225744,0,7975.953,1.820671,0,13,1,13.06478,3.685357,0,0,0,16.75014,0,0,0,2,0,5,81.35272,11.84267,0,88.9,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,88.9,8.984312,1.609438,2.818406,1 +16,2,95,1,2,225744,0,7975.953,2.820671,0,13,1,30.22795,20.52527,0,0,0,50.75322,0,0,0,3,0,5,81.35272,11.84267,0,88.9,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,88.9,8.984312,1.609438,3.926975,1 +16,2,95,1,3,225744,0,7975.953,3.820671,0,13,1,69.52731,25.84672,0,0,0,95.37402,0,0,0,8,0,5,81.35272,11.84267,0,88.9,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,88.9,8.984312,1.609438,4.557806,1 +16,2,95,1,1,225745,0,7975.953,30.56263,1,13,1,83.28797,30.57703,0,0,0,113.865,0,0,0,12,0,5,78.7,13.8,0,78.4,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,78.4,8.984312,1.609438,4.735013,1 +16,2,95,1,2,225745,0,7975.953,31.56263,1,13,1,404.0387,16.2438,0,0,0,420.2825,0,0,0,6,0,5,78.7,13.8,0,78.4,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,78.4,8.984312,1.609438,6.040927,1 +16,2,95,1,3,225745,0,7975.953,32.56263,1,13,1,66.54429,8.926113,0,0,0,75.4704,0,0,0,3,0,5,78.7,13.8,0,78.4,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,78.4,8.984312,1.609438,4.32374,1 +16,2,95,1,1,225746,0,7975.953,37.03217,0,12,1,10.88732,7.583016,0,0,0,18.47033,0,0,0,1,0,5,88.3,6.9,0,72.7,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,72.7,8.984312,1.609438,2.916166,1 +16,2,95,1,2,225746,0,7975.953,38.03217,0,12,1,32.21011,10.12389,0,0,0,42.334,0,0,0,2,0,5,88.3,6.9,0,72.7,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,72.7,8.984312,1.609438,3.74559,1 +16,2,95,1,3,225746,0,7975.953,39.03217,0,12,1,0,4.176228,0,0,0,4.176228,0,0,0,0,0,5,88.3,6.9,0,72.7,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,72.7,8.984312,1.609438,1.429408,1 +16,2,95,1,1,225747,0,7975.953,5.629021,1,13,1,64.23517,14.34404,0,0,0,78.57921,0,0,0,6,0,5,83.3,11.84267,0,81.5,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,81.5,8.984312,1.609438,4.364107,1 +16,2,95,1,2,225747,0,7975.953,6.629021,1,13,1,90.68385,46.87314,0,0,312.8345,450.3915,1,0,0,7,0,5,83.3,11.84267,0,81.5,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,81.5,8.984312,1.609438,6.110117,1 +16,2,95,1,3,225747,0,7975.953,7.629021,1,13,1,67.25562,19.98164,0,0,0,87.23727,0,0,0,3,0,5,83.3,11.84267,0,81.5,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,81.5,8.984312,1.609438,4.468632,1 +16,2,95,0,1,225754,0,2260.997,26.81177,1,16,1,33.20631,18.69897,2.003266,0,0,53.90855,0,0,0,2,1,1,88.8,27.6,0,56.8,1000,0,0,0,0,0,0,4.564348,6.959049,1,0,0,56.8,7.724003,0,3.987289,1 +16,2,95,0,2,225754,0,2260.997,27.81177,1,16,1,60.4559,44.82161,1.828543,0,0,107.106,0,0,0,1,4,1,88.8,27.6,0,56.8,1000,0,0,0,0,0,0,4.564348,6.959049,1,0,0,56.8,7.724003,0,4.67382,1 +16,2,95,0,3,225754,0,2260.997,28.81177,1,16,1,60.57825,35.22258,0,0,0,95.80083,0,0,0,5,0,1,88.8,27.6,0,56.8,1000,0,0,0,0,0,0,4.564348,6.959049,1,0,0,56.8,7.724003,0,4.562271,1 +6,2,25,1,1,225792,0,14826.98,11.96167,0,12,1,31.31692,5.519272,0,0,0,36.83619,0,0,0,3,0,4,83.3,11.84267,0,85.2,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,85.2,9.604271,1.386294,3.606481,1 +6,2,25,1,2,225792,0,14826.98,12.96167,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,83.3,11.84267,0,85.2,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,85.2,9.604271,1.386294,,0 +6,2,25,1,3,225792,0,14826.98,13.96167,0,12,1,197.8772,14.25926,0,0,0,212.1364,0,0,0,11,0,4,83.3,11.84267,0,85.2,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,85.2,9.604271,1.386294,5.357229,1 +6,2,25,1,1,225793,0,14826.98,36.82135,1,12,1,52.46253,282.3233,0,0,0,334.7859,0,0,0,4,0,4,85.1,13.8,0,78.4,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,78.4,9.604271,1.386294,5.813491,1 +6,2,25,1,2,225793,0,14826.98,37.82135,1,12,1,24.89019,42.73304,0,0,0,67.62323,0,0,0,2,0,4,85.1,13.8,0,78.4,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,78.4,9.604271,1.386294,4.213952,1 +6,2,25,1,3,225793,0,14826.98,38.82135,1,12,1,36.58537,29.91418,0,0,0,66.49955,0,0,0,2,0,4,85.1,13.8,0,78.4,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,78.4,9.604271,1.386294,4.197195,1 +6,2,25,1,1,225794,0,14826.98,41.27036,0,19,1,50.05353,57.4197,0,0,828.7206,936.1938,1,0,0,3,0,4,83.5,0,0,70.5,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,70.5,9.604271,1.386294,6.841823,1 +6,2,25,1,2,225794,0,14826.98,42.27036,0,19,1,25.86628,40.40508,33.62128,0,0,99.89263,0,0,0,3,0,4,83.5,0,0,70.5,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,70.5,9.604271,1.386294,4.604096,1 +6,2,25,1,3,225794,0,14826.98,43.27036,0,19,1,32.06865,55.44264,0,0,0,87.51129,0,0,0,4,0,4,83.5,0,0,70.5,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,70.5,9.604271,1.386294,4.471768,1 +6,2,25,1,1,225795,0,14826.98,9.785079,1,12,1,206.9058,190.0964,0,0,0,397.0021,0,0,0,11,0,4,76.7,11.84267,1,38.9,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,0,1,0,38.9,9.604271,1.386294,5.983942,1 +6,2,25,1,2,225795,0,14826.98,10.78508,1,12,1,268.1796,116.7204,0,0,3344.676,3729.575,1,0,0,11,0,4,76.7,11.84267,1,38.9,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,0,1,0,38.9,9.604271,1.386294,8.22405,1 +6,2,25,1,3,225795,0,14826.98,11.78508,1,12,1,424.1192,88.64499,0,0,0,512.7642,0,0,0,11,0,4,76.7,11.84267,1,38.9,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,0,1,0,38.9,9.604271,1.386294,6.239816,1 +11,2,0,1,1,225803,0,22723.17,39.06366,0,12,1,80.65114,15.61673,0,0,0,96.26787,0,0,0,2,0,4,61.2,6.9,0,86.4,0,0,0,0,1.386294,0,0,0,0,0,0,0,86.4,10.03118,1.386294,4.567134,1 +11,2,0,1,2,225803,0,22723.17,40.06366,0,12,1,56.46718,0,0,0,0,56.46718,0,0,0,0,7,4,61.2,6.9,0,86.4,0,0,0,0,1.386294,0,0,0,0,0,0,0,86.4,10.03118,1.386294,4.033659,1 +11,2,0,1,3,225803,0,22723.17,41.06366,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,61.2,6.9,0,86.4,0,0,0,0,1.386294,0,0,0,0,0,0,0,86.4,10.03118,1.386294,,0 +11,2,0,1,1,225804,0,22723.17,36.29843,1,12,1,211.6993,7.411329,28.17364,0,0,247.2843,0,0,0,3,22,4,67.6,17.2,0,71.6,0,0,0,0,1.386294,0,0,0,0,0,0,0,71.6,10.03118,1.386294,5.510539,1 +11,2,0,1,2,225804,0,22723.17,37.29843,1,12,1,133.1081,3.257722,33.38321,0,0,169.749,0,0,0,3,20,4,67.6,17.2,0,71.6,0,0,0,0,1.386294,0,0,0,0,0,0,0,71.6,10.03118,1.386294,5.134321,1 +11,2,0,1,3,225804,0,22723.17,38.29843,1,12,1,36.71562,0,0,0,0,36.71562,0,0,0,1,4,4,67.6,17.2,0,71.6,0,0,0,0,1.386294,0,0,0,0,0,0,0,71.6,10.03118,1.386294,3.603202,1 +11,2,0,1,1,225805,0,22723.17,12.64613,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,78.3,11.84267,0,88.9,0,0,1,0,1.386294,0,0,0,0,0,0,0,88.9,10.03118,1.386294,,0 +11,2,0,1,2,225805,0,22723.17,13.64613,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,78.3,11.84267,0,88.9,0,0,1,0,1.386294,0,0,0,0,0,0,0,88.9,10.03118,1.386294,,0 +11,2,0,1,3,225805,0,22723.17,14.64613,0,12,1,25.81219,7.29862,0,0,0,33.11081,0,0,0,3,0,4,78.3,11.84267,0,88.9,0,0,1,0,1.386294,0,0,0,0,0,0,0,88.9,10.03118,1.386294,3.49986,1 +11,2,0,1,1,225806,0,22723.17,17.4319,1,12,1,17.46956,9.311805,0,0,0,26.78137,0,0,0,1,1,4,58.5,6.9,0,83,0,0,1,1,1.386294,0,0,0,0,0,0,0,83,10.03118,1.386294,3.287706,1 +11,2,0,1,2,225806,0,22723.17,18.4319,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,58.5,6.9,0,83,0,0,0,0,1.386294,0,0,0,0,0,0,0,83,10.03118,1.386294,,0 +11,2,0,1,3,225806,0,22723.17,19.4319,1,12,1,77.88162,0,0,0,0,77.88162,0,0,0,3,0,4,58.5,6.9,0,83,0,0,0,0,1.386294,0,0,0,0,0,0,0,83,10.03118,1.386294,4.35519,1 +13,2,0,1,1,225807,0,10788.27,30.68583,0,16,1,23.01927,0,32.69807,0,732.2484,787.9658,1,0,0,2,1,5,83.5,10.3,0,73.9,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,73.9,9.286307,1.609438,6.669455,1 +13,2,0,1,2,225807,0,10788.27,31.68583,0,16,1,0,0,0,0,0,0,0,0,0,0,0,5,83.5,10.3,0,73.9,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,73.9,9.286307,1.609438,,0 +13,2,0,1,3,225807,0,10788.27,32.68583,0,16,1,0,0,0,0,0,0,0,0,0,0,0,5,83.5,10.3,0,73.9,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,73.9,9.286307,1.609438,,0 +13,2,0,1,1,225808,0,10788.27,10.97878,1,12,1,11.7773,4.416488,0,0,0,16.19379,0,0,0,1,0,5,73.3,11.84267,0,77.8,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,77.8,9.286307,1.609438,2.784628,1 +13,2,0,1,2,225808,0,10788.27,11.97878,1,12,1,16.10542,0,16.12982,0,0,32.23524,0,0,0,1,0,5,73.3,11.84267,0,77.8,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,77.8,9.286307,1.609438,3.47306,1 +13,2,0,1,3,225808,0,10788.27,12.97878,1,12,1,45.16712,4.855465,0,0,0,50.02258,0,0,0,4,0,5,73.3,11.84267,0,77.8,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,77.8,9.286307,1.609438,3.912475,1 +13,2,0,1,1,225809,0,10788.27,5.111567,0,12,1,20.87794,0,0,0,0,20.87794,0,0,0,2,0,5,78.3,11.84267,0,74.1,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,74.1,9.286307,1.609438,3.038693,1 +13,2,0,1,2,225809,0,10788.27,6.111567,0,12,1,10.73695,2.171791,0,0,0,12.90874,0,0,0,1,0,5,78.3,11.84267,0,74.1,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,74.1,9.286307,1.609438,2.557904,1 +13,2,0,1,3,225809,0,10788.27,7.111567,0,12,1,16.71183,3.68112,0,0,0,20.39295,0,0,0,2,0,5,78.3,11.84267,0,74.1,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,74.1,9.286307,1.609438,3.015189,1 +13,2,0,1,1,225810,0,10788.27,30.23409,1,12,1,87.36617,1.472163,0,0,425.4283,514.2666,1,0,0,6,0,5,79.3,10.3,0,69.3,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,69.3,9.286307,1.609438,6.242742,1 +13,2,0,1,2,225810,0,10788.27,31.23409,1,12,1,38.31137,4.807223,0,0,0,43.1186,0,0,0,2,0,5,79.3,10.3,0,69.3,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,69.3,9.286307,1.609438,3.763954,1 +13,2,0,1,3,225810,0,10788.27,32.23409,1,12,1,70.23487,5.691057,1.242096,0,0,77.16802,0,0,0,4,0,5,79.3,10.3,0,69.3,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,69.3,9.286307,1.609438,4.345985,1 +13,2,0,1,1,225811,0,10788.27,9.127995,1,12,1,19.80728,3.929336,0,0,0,23.73662,0,0,0,3,0,5,73.3,11.84267,0,70.4,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,70.4,9.286307,1.609438,3.167019,1 +13,2,0,1,2,225811,0,10788.27,10.12799,1,12,1,5.856515,1.898487,0,0,0,7.755002,0,0,0,1,0,5,73.3,11.84267,0,70.4,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,70.4,9.286307,1.609438,2.048338,1 +13,2,0,1,3,225811,0,10788.27,11.12799,1,12,1,31.61698,4.476061,0,0,0,36.09304,0,0,0,3,0,5,73.3,11.84267,0,70.4,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,70.4,9.286307,1.609438,3.5861,1 +13,2,0,1,1,225814,0,8665.641,60.76112,1,13,1,151.9322,100.3176,0,0,0,252.2499,0,0,0,7,0,1,31.9,24.1,0,35.2,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,1,0,35.2,9.067237,0,5.53042,1 +13,2,0,1,2,225814,0,8665.641,61.76112,1,13,1,265.1786,45.94595,0,0,0,311.1245,0,0,0,16,0,1,31.9,24.1,0,35.2,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,1,0,35.2,9.067237,0,5.740193,1 +13,2,0,1,3,225814,0,8665.641,62.76112,1,13,1,205.385,0,0,0,0,205.385,0,0,0,10,2,1,31.9,24.1,0,35.2,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,1,0,35.2,9.067237,0,5.324886,1 +13,2,0,1,1,225838,0,7184.751,23.92608,0,12,1,26.3438,0,0,0,0,26.3438,0,0,0,2,0,1,79.8,10.3,0,67,150,78.43,0,0,0,4.362206,1,4.564348,5.061929,1,0,0,67,8.879855,0,3.271233,1 +13,2,0,1,2,225838,0,7184.751,24.92608,0,12,1,36.79108,0,0,0,0,36.79108,0,0,0,2,0,1,79.8,10.3,0,67,150,78.43,0,0,0,4.362206,1,4.564348,5.061929,1,0,0,67,8.879855,0,3.605255,1 +13,2,0,1,3,225838,0,7184.751,25.92608,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,79.8,10.3,0,67,150,78.43,0,0,0,4.362206,1,4.564348,5.061929,1,0,0,67,8.879855,0,,0 +18,2,25,1,1,225853,0,3585.337,20.89528,1,13,1,34.26124,7.537473,0,0,0,41.79871,0,0,0,2,0,1,63.8,6.9,1,44.3,469.5,469.5,0,0,0,6.151668,0,3.258096,7.537962,0,0,0,44.3,8.184887,0,3.732866,1 +18,2,25,1,2,225853,0,3585.337,21.89528,1,13,1,17.0815,2.376769,0,0,0,19.45827,0,0,0,1,0,1,63.8,6.9,1,44.3,469.5,469.5,0,0,0,6.151668,0,3.258096,7.537962,0,0,0,44.3,8.184887,0,2.968272,1 +18,2,25,1,3,225853,0,3585.337,22.89528,1,13,1,110.8401,84.98193,0,0,0,195.822,0,0,0,12,0,1,63.8,6.9,1,44.3,469.5,469.5,0,0,0,6.151668,0,3.258096,7.537962,0,0,0,44.3,8.184887,0,5.277206,1 +18,2,25,1,4,225853,0,3585.337,23.89528,1,13,1,70.51282,98.1555,0,682.3821,295.6824,464.3507,1,0,34,3,1,1,63.8,6.9,1,44.3,469.5,469.5,0,0,0,6.151668,0,3.258096,7.537962,0,0,0,44.3,8.184887,0,6.14064,1 +18,2,25,1,5,225853,0,3585.337,24.89528,1,13,1,73.21162,5.391207,0,409.8361,0,78.60283,0,0,22,4,0,1,63.8,6.9,1,44.3,469.5,469.5,0,0,0,6.151668,0,3.258096,7.537962,0,0,0,44.3,8.184887,0,4.364408,1 +18,2,25,1,1,225854,0,3491.496,54.9076,1,12,1,36.38814,11.15903,35.68733,0,0,83.2345,0,0,0,2,1,1,83,17.2,0,79.5,472.5,472.5,0,0,0,6.158038,0,3.258096,7.544332,1,0,0,79.5,8.158372,0,4.421662,1 +18,2,25,1,2,225854,0,3491.496,55.9076,1,12,1,86.85503,12.82555,0,0,0,99.68059,0,0,0,7,0,1,83,17.2,0,79.5,472.5,472.5,0,0,0,6.158038,0,3.258096,7.544332,1,0,0,79.5,8.158372,0,4.601971,1 +18,2,25,1,3,225854,0,3491.496,56.9076,1,12,1,41.02097,12.32908,0,0,0,53.35004,0,0,0,5,0,1,83,17.2,0,79.5,472.5,472.5,0,0,0,6.158038,0,3.258096,7.544332,1,0,0,79.5,8.158372,0,3.976875,1 +18,2,25,1,4,225854,0,3491.496,57.9076,1,12,1,42.51772,8.232597,0,0,0,50.75031,0,0,0,5,0,1,83,17.2,0,79.5,472.5,472.5,0,0,0,6.158038,0,3.258096,7.544332,1,0,0,79.5,8.158372,0,3.926918,1 +18,2,25,1,5,225854,0,3491.496,58.9076,1,12,1,75.76894,8.552138,34.05101,0,0,118.3721,0,0,0,6,1,1,83,17.2,0,79.5,472.5,472.5,0,0,0,6.158038,0,3.258096,7.544332,1,0,0,79.5,8.158372,0,4.773833,1 +13,2,0,0,1,225873,0,11360.7,51.54552,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,91.5,6.9,0,90.9,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,90.9,9.338004,.6931472,,0 +13,2,0,0,2,225873,0,11360.7,52.54552,0,12,1,90.64469,1.20698,50.34416,0,982.4042,1124.6,1,0,0,4,1,2,91.5,6.9,0,90.9,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,90.9,9.338004,.6931472,7.025183,1 +13,2,0,0,3,225873,0,11360.7,53.54552,0,12,1,134.7709,0,0,0,0,134.7709,0,0,0,9,0,2,91.5,6.9,0,90.9,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,90.9,9.338004,.6931472,4.903576,1 +13,2,0,0,1,225874,0,11360.7,51.90417,1,12,1,137.8393,14.65673,51.19212,0,0,203.6881,0,0,0,3,14,2,89.9,6.9,1,67,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,67,9.338004,.6931472,5.31659,1 +13,2,0,0,2,225874,0,11360.7,52.90417,1,12,1,33.44644,15.3175,0,0,0,48.76394,0,0,0,1,3,2,89.9,6.9,1,67,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,67,9.338004,.6931472,3.886991,1 +13,2,0,0,3,225874,0,11360.7,53.90417,1,12,1,50.65139,0,0,0,0,50.65139,0,0,0,1,2,2,89.9,6.9,1,67,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,67,9.338004,.6931472,3.924967,1 +15,2,95,0,1,225996,0,3843.402,24.70089,0,16,1,48.61474,0,0,0,0,48.61474,0,0,0,2,1,1,76.6,17.2,1,62.5,267,267,0,0,0,5.587249,0,4.564348,5.638542,1,0,0,62.5,8.254374,0,3.883927,1 +15,2,95,0,2,225996,0,3843.402,25.70089,0,16,1,362.7583,7.568477,54.54108,36.04036,0,424.8679,0,0,3,14,0,1,76.6,17.2,1,62.5,267,267,0,0,0,5.587249,0,4.564348,5.638542,1,0,0,62.5,8.254374,0,6.051778,1 +15,2,95,0,3,225996,0,3843.402,26.70089,0,16,1,42.95154,0,0,99.11894,0,42.95154,0,0,9,2,0,1,76.6,17.2,1,62.5,267,267,0,0,0,5.587249,0,4.564348,5.638542,1,0,0,62.5,8.254374,0,3.760072,1 +11,2,0,1,1,226016,0,7989.443,59.98083,1,12,1,325.7052,65.10378,55.58808,0,0,446.397,0,0,0,0,52,1,93.1,13.8,0,78.4,0,76.91,0,0,0,4.342636,0,0,0,1,0,0,78.4,8.986001,0,6.101209,1 +11,2,0,1,2,226016,0,7989.443,60.98083,1,12,1,205.5259,77.68298,0,0,0,283.2089,0,0,0,3,27,1,93.1,13.8,0,78.4,0,76.91,0,0,0,4.342636,0,0,0,1,0,0,78.4,8.986001,0,5.646185,1 +11,2,0,1,3,226016,0,7989.443,61.98083,1,12,1,238.0952,64.83827,59.13747,0,249.1689,611.2399,1,0,0,3,29,1,93.1,13.8,0,78.4,0,76.91,0,0,0,4.342636,0,0,0,1,0,0,78.4,8.986001,0,6.41549,1 +16,2,95,0,1,226019,0,11106.75,31.05818,0,21,1,27.30551,0,0,0,0,27.30551,0,0,0,1,0,2,72.9,13.8,0,80.7,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,80.7,9.315398,.6931472,3.307089,1 +16,2,95,0,1,226020,0,11106.75,28.26831,1,16,1,33.48789,.7727975,0,0,0,34.26069,0,0,0,2,0,2,84.6,27.6,0,97.7,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,97.7,9.315398,.6931472,3.533998,1 +16,2,95,0,1,226029,0,7957.771,28.73648,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,78.2,13.8,0,77.3,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,77.3,8.98203,.6931472,,0 +16,2,95,0,2,226029,0,7957.771,29.73648,1,12,1,52.82555,3.906634,0,0,0,56.73219,0,0,0,3,0,2,78.2,13.8,0,77.3,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,77.3,8.98203,.6931472,4.038342,1 +16,2,95,0,3,226029,0,7957.771,30.73648,1,12,1,43.7557,19.16591,0,0,611.0301,673.9517,1,0,0,3,0,2,78.2,13.8,0,77.3,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,77.3,8.98203,.6931472,6.513158,1 +16,2,95,0,1,226030,0,7957.771,27.30459,0,12,1,8.086253,5.380054,0,0,0,13.46631,0,0,0,1,0,2,68.6,3.4,0,72.7,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,72.7,8.98203,.6931472,2.600191,1 +16,2,95,0,2,226030,0,7957.771,28.30459,0,12,1,91.74447,2.432432,0,0,0,94.1769,0,0,0,1,0,2,68.6,3.4,0,72.7,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,72.7,8.98203,.6931472,4.545175,1 +16,2,95,0,3,226030,0,7957.771,29.30459,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,68.6,3.4,0,72.7,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,72.7,8.98203,.6931472,,0 +11,2,0,0,1,226042,0,8665.641,25.70842,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,85.1,20.7,0,85.2,0,0,0,0,.6931472,0,0,0,0,1,0,0,85.2,9.067237,.6931472,,0 +11,2,0,0,2,226042,0,8665.641,26.70842,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,85.1,20.7,0,85.2,0,0,0,0,.6931472,0,0,0,0,1,0,0,85.2,9.067237,.6931472,,0 +11,2,0,0,3,226042,0,8665.641,27.70842,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,85.1,20.7,0,85.2,0,0,0,0,.6931472,0,0,0,0,1,0,0,85.2,9.067237,.6931472,,0 +11,2,0,0,4,226042,0,8665.641,28.70842,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,85.1,20.7,0,85.2,0,0,0,0,.6931472,0,0,0,0,1,0,0,85.2,9.067237,.6931472,,0 +11,2,0,0,5,226042,0,8665.641,29.70842,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,85.1,20.7,0,85.2,0,0,0,0,.6931472,0,0,0,0,1,0,0,85.2,9.067237,.6931472,,0 +11,2,0,0,1,226043,0,8665.641,24.95004,1,12,1,110.572,62.89581,0,0,0,173.4678,0,0,0,11,0,2,85.6,6.9,0,79.5,0,0,0,0,.6931472,0,0,0,0,0,0,0,79.5,9.067237,.6931472,5.155992,1 +11,2,0,0,2,226043,0,8665.641,25.95004,1,12,1,109.9391,127.0792,0,0,0,237.0183,0,0,0,16,1,2,85.6,6.9,0,79.5,0,0,0,0,.6931472,0,0,0,0,0,0,0,79.5,9.067237,.6931472,5.468137,1 +11,2,0,0,3,226043,0,8665.641,26.95004,1,12,1,97.59243,103.3104,0,0,0,200.9028,0,0,0,16,0,2,85.6,6.9,0,79.5,0,0,0,0,.6931472,0,0,0,0,0,0,0,79.5,9.067237,.6931472,5.302821,1 +11,2,0,0,4,226043,0,8665.641,27.95004,1,12,1,24.42807,39.55021,0,0,0,63.97829,0,0,0,6,0,2,85.6,6.9,0,79.5,0,0,0,0,.6931472,0,0,0,0,0,0,0,79.5,9.067237,.6931472,4.158544,1 +11,2,0,0,5,226043,0,8665.641,28.95004,1,12,1,234.4834,29.7523,0,0,0,264.2357,0,0,0,11,0,2,85.6,6.9,0,79.5,0,0,0,0,.6931472,0,0,0,0,0,0,0,79.5,9.067237,.6931472,5.576841,1 +5,2,25,0,1,226069,0,13229.91,8.492813,1,18,1,11.5903,0,0,0,0,11.5903,0,0,0,1,0,4,88.3,11.84267,0,100,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,0,0,0,100,9.490312,1.386294,2.450168,1 +5,2,25,0,2,226069,0,13229.91,9.492813,1,18,1,0,0,0,0,0,0,0,0,0,0,0,4,88.3,11.84267,0,100,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,0,0,0,100,9.490312,1.386294,,0 +5,2,25,0,3,226069,0,13229.91,10.49281,1,18,1,24.15679,0,0,0,0,24.15679,0,0,0,2,0,4,88.3,11.84267,0,100,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,0,0,0,100,9.490312,1.386294,3.184566,1 +5,2,25,0,1,226070,0,13229.91,39.92608,0,18,1,198.5175,2.12938,0,0,0,200.6469,0,0,0,8,0,4,81.9,6.9,0,77.3,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,77.3,9.490312,1.386294,5.301547,1 +5,2,25,0,2,226070,0,13229.91,40.92608,0,18,1,102.5061,10.14742,0,88.45209,0,112.6536,0,0,4,3,9,4,81.9,6.9,0,77.3,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,77.3,9.490312,1.386294,4.724317,1 +5,2,25,0,3,226070,0,13229.91,41.92608,0,18,1,15.04102,0,0,0,0,15.04102,0,0,0,1,0,4,81.9,6.9,0,77.3,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,77.3,9.490312,1.386294,2.710781,1 +5,2,25,0,1,226071,0,13229.91,35.47433,1,18,1,45.8221,6.954178,0,0,0,52.77628,0,0,0,4,0,4,86.2,24.1,0,69.3,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,69.3,9.490312,1.386294,3.966062,1 +5,2,25,0,2,226071,0,13229.91,36.47433,1,18,1,276.7322,3.105651,0,0,0,279.8378,0,0,0,6,0,4,86.2,24.1,0,69.3,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,69.3,9.490312,1.386294,5.63421,1 +5,2,25,0,3,226071,0,13229.91,37.47433,1,18,1,73.38195,3.509572,0,0,0,76.89153,0,0,0,5,0,4,86.2,24.1,0,69.3,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,69.3,9.490312,1.386294,4.342396,1 +5,2,25,0,1,226072,0,13229.91,6.212183,1,18,1,0,0,0,0,0,0,0,0,0,0,0,4,88.3,11.84267,0,66.7,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,0,0,0,66.7,9.490312,1.386294,,0 +5,2,25,0,2,226072,0,13229.91,7.212183,1,18,1,12.89926,0,0,0,0,12.89926,0,0,0,1,0,4,88.3,11.84267,0,66.7,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,0,0,0,66.7,9.490312,1.386294,2.55717,1 +5,2,25,0,3,226072,0,13229.91,8.212183,1,18,1,15.04102,0,0,0,0,15.04102,0,0,0,1,0,4,88.3,11.84267,0,66.7,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,0,0,0,66.7,9.490312,1.386294,2.710781,1 +7,2,25,0,1,226087,0,13652.2,55.14305,0,14,1,32.64506,0,45.52535,0,0,78.17041,0,0,0,1,1,5,89.9,27.6,1,58,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,1,0,58,9.521729,1.609438,4.358891,1 +7,2,25,0,2,226087,0,13652.2,56.14305,0,14,1,224.6997,30.96588,0,0,0,255.6655,0,0,0,7,0,5,89.9,27.6,1,58,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,1,0,58,9.521729,1.609438,5.54387,1 +7,2,25,0,3,226087,0,13652.2,57.14305,0,14,1,71.69604,36.01762,41.7533,0,0,149.467,0,0,0,3,1,5,89.9,27.6,1,58,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,1,0,58,9.521729,1.609438,5.007075,1 +7,2,25,0,4,226087,0,13652.2,58.14305,0,14,1,11.59274,31.97581,0,0,0,43.56855,0,0,0,1,0,5,89.9,27.6,1,58,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,1,0,58,9.521729,1.609438,3.774336,1 +7,2,25,0,5,226087,0,13652.2,59.14305,0,14,1,45.17304,48.6521,33.79964,0,0,127.6248,0,0,0,1,1,5,89.9,27.6,1,58,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,1,0,58,9.521729,1.609438,4.849094,1 +7,2,25,0,1,226088,0,13652.2,13.08145,1,12,1,18.29587,0,18.29587,0,0,36.59174,0,0,0,1,0,5,93.3,11.84267,1,88.9,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,0,0,0,88.9,9.521729,1.609438,3.599823,1 +7,2,25,0,2,226088,0,13652.2,14.08145,1,12,1,64.99279,7.063911,3.925997,0,0,75.9827,0,0,0,3,0,5,93.3,11.84267,1,88.9,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,0,0,0,88.9,9.521729,1.609438,4.330506,1 +7,2,25,0,3,226088,0,13652.2,15.08145,1,12,1,42.07048,0,14.44053,0,0,56.51101,0,0,0,2,0,5,93.3,11.84267,1,88.9,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,0,0,0,88.9,9.521729,1.609438,4.034436,1 +7,2,25,0,4,226088,0,13652.2,16.08145,1,12,1,25,7.66129,0,0,0,32.66129,0,0,0,2,0,5,93.3,11.84267,1,88.9,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,0,0,0,88.9,9.521729,1.609438,3.486191,1 +7,2,25,0,5,226088,0,13652.2,17.08145,1,12,1,66.68488,8.608378,15.61384,0,0,90.9071,0,0,0,4,0,5,93.3,11.84267,1,88.9,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,0,0,0,88.9,9.521729,1.609438,4.509838,1 +7,2,25,0,1,226089,0,13652.2,48.99384,1,12,1,230.3973,112.07,58.69838,0,0,401.1657,0,0,0,9,0,5,83,31,1,63.6,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,1,0,63.6,9.521729,1.609438,5.994375,1 +7,2,25,0,2,226089,0,13652.2,49.99384,1,12,1,106.9197,105.1081,15.75204,0,0,227.7799,0,0,0,4,0,5,83,31,1,63.6,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,1,0,63.6,9.521729,1.609438,5.42838,1 +7,2,25,0,3,226089,0,13652.2,50.99384,1,12,1,39.64758,53.68723,45.59472,0,0,138.9295,0,0,0,3,0,5,83,31,1,63.6,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,1,0,63.6,9.521729,1.609438,4.933967,1 +7,2,25,0,4,226089,0,13652.2,51.99384,1,12,1,42.74194,74.81855,0,0,0,117.5605,0,0,0,2,0,5,83,31,1,63.6,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,1,0,63.6,9.521729,1.609438,4.766953,1 +7,2,25,0,5,226089,0,13652.2,52.99384,1,12,1,51.73042,89.10747,15.61384,0,0,156.4517,0,0,0,2,0,5,83,31,1,63.6,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,1,0,63.6,9.521729,1.609438,5.052748,1 +7,2,25,0,1,226090,0,13652.2,10.49692,0,12,1,40.25092,30.73706,32.97961,0,0,103.9676,0,0,0,3,0,5,88.3,11.84267,1,92.6,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,0,1,0,92.6,9.521729,1.609438,4.644079,1 +7,2,25,0,2,226090,0,13652.2,11.49692,0,12,1,55.74243,14.89668,0,0,0,70.63911,0,0,0,4,0,5,88.3,11.84267,1,92.6,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,0,1,0,92.6,9.521729,1.609438,4.257584,1 +7,2,25,0,3,226090,0,13652.2,12.49692,0,12,1,40.52863,11.06167,39.02203,0,0,90.61234,0,0,0,2,0,5,88.3,11.84267,1,92.6,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,0,1,0,92.6,9.521729,1.609438,4.50659,1 +7,2,25,0,4,226090,0,13652.2,13.49692,0,12,1,80.84677,45.19355,0,0,0,126.0403,0,0,0,7,0,5,88.3,11.84267,1,92.6,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,0,1,0,92.6,9.521729,1.609438,4.836602,1 +7,2,25,0,5,226090,0,13652.2,14.49692,0,12,1,42.98725,44.62659,33.83607,0,0,121.4499,0,0,0,3,0,5,88.3,11.84267,1,92.6,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,0,1,0,92.6,9.521729,1.609438,4.799502,1 +7,2,25,0,1,226091,0,13652.2,14.15469,1,12,1,25.61422,20.77888,33.24621,0,0,79.63931,0,0,0,2,0,5,88.3,13.8,1,56,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,1,0,0,56,9.521729,1.609438,4.377508,1 +7,2,25,0,2,226091,0,13652.2,15.15469,1,12,1,41.32629,14.36809,0,0,0,55.69438,0,0,0,2,0,5,88.3,13.8,1,56,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,1,0,0,56,9.521729,1.609438,4.019879,1 +7,2,25,0,3,226091,0,13652.2,16.15469,1,12,1,17.62115,12.00441,14.44053,0,0,44.06608,0,0,0,1,0,5,88.3,13.8,1,56,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,1,0,0,56,9.521729,1.609438,3.78569,1 +7,2,25,0,4,226091,0,13652.2,17.15469,1,12,1,18.14516,14.91935,0,0,0,33.06452,0,0,0,1,0,5,88.3,13.8,1,56,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,1,0,0,56,9.521729,1.609438,3.498461,1 +7,2,25,0,5,226091,0,13652.2,18.15469,1,12,1,26.95811,28.29508,29.35519,0,0,84.60838,0,0,0,3,0,5,88.3,13.8,1,56,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,56,9.521729,1.609438,4.438033,1 +18,2,25,1,1,226098,0,7165.396,36.45996,0,12,1,0,2.600104,0,0,0,2.600104,0,0,0,0,0,2,76.6,3.4,0,76.1,744,744,0,0,.6931472,6.612041,0,3.258096,7.998335,0,0,0,76.1,8.877158,.6931472,.9555515,1 +18,2,25,1,2,226098,0,7165.396,37.45996,0,12,1,89.58433,0,0,0,0,89.58433,0,0,0,2,0,2,76.6,3.4,0,76.1,744,744,0,0,.6931472,6.612041,0,3.258096,7.998335,0,0,0,76.1,8.877158,.6931472,4.495181,1 +18,2,25,1,3,226098,0,7165.396,38.45996,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,76.6,3.4,0,76.1,744,744,0,0,.6931472,6.612041,0,3.258096,7.998335,0,0,0,76.1,8.877158,.6931472,,0 +15,2,95,1,1,226099,0,4052.463,22.55989,1,12,1,13.3833,3.035332,0,0,626.0974,642.5161,1,0,0,1,0,1,83.5,17.2,1,65.9,297.5,154.88,0,0,0,5.042651,0,4.564348,5.746707,0,0,0,65.9,8.307327,0,6.465392,1 +15,2,95,1,2,226099,0,4052.463,23.55989,1,12,1,8.784773,12.25964,0,0,0,21.04441,0,0,0,1,0,1,83.5,17.2,1,65.9,297.5,154.88,0,0,0,5.042651,0,4.564348,5.746707,0,0,0,65.9,8.307327,0,3.046635,1 +15,2,95,1,3,226099,0,4052.463,24.55989,1,12,1,15.80849,0,38.74435,0,0,54.55285,0,0,0,1,1,1,83.5,17.2,1,65.9,297.5,154.88,0,0,0,5.042651,0,4.564348,5.746707,0,0,0,65.9,8.307327,0,3.99917,1 +15,2,95,1,1,226100,0,8665.641,23.18686,0,14,1,0,0,0,0,0,0,0,0,0,0,0,1,64.4,10.3,0,62.5,249.5,249.5,0,0,0,5.519459,0,4.564348,5.570752,0,0,0,62.5,9.067237,0,,0 +15,2,95,1,2,226100,0,8665.641,24.18686,0,14,1,0,0,0,0,0,0,0,0,0,0,0,2,64.4,10.3,0,62.5,249.5,249.5,0,0,.6931472,5.519459,0,4.564348,5.570752,0,0,0,62.5,9.067237,.6931472,,0 +15,2,95,1,3,226100,0,8665.641,25.18686,0,14,1,0,0,0,0,0,0,0,0,0,0,0,2,64.4,10.3,0,62.5,249.5,249.5,0,0,.6931472,5.519459,0,4.564348,5.570752,0,0,0,62.5,9.067237,.6931472,,0 +7,2,25,1,1,226121,0,6541.349,22.28611,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,78.2,6.9,0,90.9,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,90.9,8.786052,1.098612,,0 +7,2,25,1,2,226121,0,6541.349,23.28611,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,78.2,6.9,0,90.9,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,90.9,8.786052,1.386294,,0 +7,2,25,1,3,226121,0,6541.349,24.28611,0,12,1,30.08204,6.144029,0,0,0,36.22607,0,0,0,3,0,4,78.2,6.9,0,90.9,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,90.9,8.786052,1.386294,3.589779,1 +7,2,25,1,1,226122,0,6541.349,20.63518,1,12,1,10.24259,5.09434,0,0,584.2048,599.5418,1,0,0,0,0,3,77.7,6.9,0,79.5,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,79.5,8.786052,1.098612,6.396166,1 +7,2,25,1,2,226122,0,6541.349,21.63518,1,12,1,57.98526,16.69287,52.83047,0,0,127.5086,0,0,0,3,0,4,77.7,6.9,0,79.5,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,79.5,8.786052,1.386294,4.848184,1 +7,2,25,1,3,226122,0,6541.349,22.63518,1,12,1,53.21331,5.259799,0,0,0,58.47311,0,0,0,2,0,4,77.7,6.9,0,79.5,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,79.5,8.786052,1.386294,4.068567,1 +7,2,25,1,1,226123,0,6541.349,.678987,1,12,1,37.19677,0,0,0,0,37.19677,0,0,0,3,0,3,81.35272,11.84267,0,100,1000,1000,1,1,1.098612,6.907755,0,3.258096,8.294049,0,0,0,100,8.786052,1.098612,3.616222,1 +7,2,25,1,2,226123,0,6541.349,1.678987,1,12,1,22.60442,0,0,0,0,22.60442,0,0,0,3,0,4,81.35272,11.84267,0,100,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,0,0,0,100,8.786052,1.386294,3.118146,1 +7,2,25,1,3,226123,0,6541.349,2.678987,1,12,1,10.02735,0,0,0,0,10.02735,0,0,0,1,0,4,81.35272,11.84267,0,100,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,0,0,0,100,8.786052,1.386294,2.305316,1 +13,2,0,1,1,226128,0,6354.252,16.25188,1,14,1,74.94646,11.8576,0,0,0,86.80407,0,0,0,5,0,3,68.6,3.4,0,84.1,450,0,1,1,1.098612,0,1,4.564348,6.160541,0,0,1,84.1,8.757037,1.098612,4.463654,1 +13,2,0,1,2,226128,0,6354.252,17.25188,1,14,1,114.6901,27.19863,0,0,756.1494,898.0381,1,0,0,4,0,2,68.6,3.4,0,84.1,450,0,1,1,.6931472,0,1,4.564348,6.160541,0,0,1,84.1,8.757037,.6931472,6.800212,1 +13,2,0,1,3,226128,0,6354.252,18.25188,1,14,1,64.09214,3.477868,0,0,0,67.57001,0,0,0,3,0,2,68.6,3.4,0,84.1,450,0,0,0,.6931472,0,1,4.564348,6.160541,0,0,1,84.1,8.757037,.6931472,4.213164,1 +13,2,0,1,1,226129,0,6354.252,16.25188,0,14,1,0,0,0,0,0,0,0,0,0,0,0,3,64.9,6.9,0,75,450,0,1,0,1.098612,0,1,4.564348,6.160541,0,0,0,75,8.757037,1.098612,,0 +13,2,0,1,1,226130,0,6354.252,45.89185,1,14,1,303.8008,36.16167,0,0,0,339.9625,0,0,0,8,0,3,79.3,13.8,0,98.9,450,0,0,0,1.098612,0,1,4.564348,6.160541,1,0,0,98.9,8.757037,1.098612,5.828835,1 +13,2,0,1,2,226130,0,6354.252,46.89185,1,14,1,338.2528,35.87115,45.67594,0,0,419.7999,0,0,0,8,1,2,79.3,13.8,0,98.9,450,0,0,0,.6931472,0,1,4.564348,6.160541,1,0,0,98.9,8.757037,.6931472,6.039778,1 +13,2,0,1,3,226130,0,6354.252,47.89185,1,14,1,153.5682,52.37127,0,0,0,205.9395,0,0,0,5,0,2,79.3,13.8,0,98.9,450,0,0,0,.6931472,0,1,4.564348,6.160541,1,0,0,98.9,8.757037,.6931472,5.327582,1 +11,2,0,0,1,226189,0,8665.641,55.83025,0,16,1,221.3597,16.0439,43.01392,0,0,280.4176,0,0,0,2,11,3,74.5,17.2,1,69.3,0,649.2,0,0,1.098612,6.475741,0,0,0,1,0,0,69.3,9.067237,1.098612,5.63628,1 +11,2,0,0,2,226189,0,8665.641,56.83025,0,16,1,235.7247,41.88385,0,0,0,277.6086,0,0,0,6,0,3,74.5,17.2,1,69.3,0,649.2,0,0,1.098612,6.475741,0,0,0,1,0,0,69.3,9.067237,1.098612,5.626212,1 +11,2,0,0,3,226189,0,8665.641,57.83025,0,16,1,308.0397,173.9115,41.88347,0,0,523.8347,0,0,0,13,6,3,74.5,17.2,1,69.3,0,649.2,0,0,1.098612,6.475741,0,0,0,1,0,0,69.3,9.067237,1.098612,6.261176,1 +11,2,0,0,1,226190,0,8665.641,53.15811,1,12,1,31.58458,0,46.16702,0,0,77.75161,0,0,0,2,0,3,77.1,20.7,1,64.8,0,649.2,0,0,1.098612,6.475741,0,0,0,1,0,0,64.8,9.067237,1.098612,4.353519,1 +11,2,0,0,2,226190,0,8665.641,54.15811,1,12,1,10.73695,0,0,0,0,10.73695,0,0,0,1,0,3,77.1,20.7,1,64.8,0,649.2,0,0,1.098612,6.475741,0,0,0,1,0,0,64.8,9.067237,1.098612,2.373691,1 +11,2,0,0,3,226190,0,8665.641,55.15811,1,12,1,148.1481,14.28184,42.35772,0,0,204.7877,0,0,0,5,0,3,77.1,20.7,1,64.8,0,649.2,0,0,1.098612,6.475741,0,0,0,1,0,0,64.8,9.067237,1.098612,5.321974,1 +11,2,0,0,1,226191,0,8665.641,12.04107,1,12,1,47.64454,4.116703,0,0,0,51.76124,0,0,0,6,0,3,88.3,11.84267,0,96.3,0,649.2,1,1,1.098612,6.475741,0,0,0,0,0,0,96.3,9.067237,1.098612,3.946642,1 +11,2,0,0,2,226191,0,8665.641,13.04107,1,12,1,125.427,24.21181,0,0,0,149.6389,0,0,0,8,0,3,88.3,11.84267,0,96.3,0,649.2,1,1,1.098612,6.475741,0,0,0,0,0,0,96.3,9.067237,1.098612,5.008225,1 +11,2,0,0,3,226191,0,8665.641,14.04107,1,12,1,96.88347,7.439024,33.77597,0,0,138.0985,0,0,0,6,0,3,88.3,11.84267,0,96.3,0,649.2,1,1,1.098612,6.475741,0,0,0,0,0,0,96.3,9.067237,1.098612,4.927967,1 +11,2,0,0,1,226211,0,21330.21,45.39357,1,12,1,84.35338,185.0772,56.67376,0,0,326.1043,0,0,0,6,0,5,90.4,13.8,0,77.3,0,27,0,0,1.609438,3.295837,0,0,0,1,0,0,77.3,9.967926,1.609438,5.787217,1 +11,2,0,0,2,226211,0,21330.21,46.39357,1,12,1,83.37373,162.9859,0,0,0,246.3597,0,0,0,7,0,5,90.4,13.8,0,77.3,0,27,0,0,1.609438,3.295837,0,0,0,1,0,0,77.3,9.967926,1.609438,5.506793,1 +11,2,0,0,3,226211,0,21330.21,47.39357,1,12,1,37.96047,80.39084,0,0,0,118.3513,0,0,0,5,0,5,90.4,13.8,0,77.3,0,27,0,0,1.609438,3.295837,0,0,0,1,0,0,77.3,9.967926,1.609438,4.773657,1 +11,2,0,0,4,226211,0,21330.21,48.39357,1,12,1,91.34181,63.86951,75.59705,0,0,230.8084,0,0,0,10,0,5,90.4,13.8,0,77.3,0,27,0,0,1.609438,3.295837,0,0,0,1,0,0,77.3,9.967926,1.609438,5.441588,1 +11,2,0,0,5,226211,0,21330.21,49.39357,1,12,1,80.54324,90.13304,.9238729,0,0,171.6001,0,0,0,10,0,5,90.4,13.8,0,77.3,0,27,0,0,1.609438,3.295837,0,0,0,1,0,0,77.3,9.967926,1.609438,5.145167,1 +11,2,0,0,1,226212,0,21330.21,11.29363,0,12,1,6.120277,.798297,0,0,0,6.918574,0,0,0,1,0,5,86.7,11.84267,0,85.2,0,27,1,0,1.609438,3.295837,0,0,0,0,0,0,85.2,9.967926,1.609438,1.93421,1 +11,2,0,0,2,226212,0,21330.21,12.29363,0,12,1,6.059137,2.326709,0,0,0,8.385846,0,0,0,1,0,5,86.7,11.84267,0,85.2,0,27,1,0,1.609438,3.295837,0,0,0,0,0,0,85.2,9.967926,1.609438,2.126545,1 +11,2,0,0,3,226212,0,21330.21,13.29363,0,12,1,6.513927,0,0,0,0,6.513927,0,0,0,1,0,5,86.7,11.84267,0,85.2,0,27,1,0,1.609438,3.295837,0,0,0,0,0,0,85.2,9.967926,1.609438,1.873942,1 +11,2,0,0,4,226212,0,21330.21,14.29363,0,12,1,22.97907,4.883053,0,0,0,27.86213,0,0,0,2,0,5,86.7,11.84267,0,85.2,0,27,1,0,1.609438,3.295837,0,0,0,0,0,0,85.2,9.967926,1.609438,3.327268,1 +11,2,0,0,5,226212,0,21330.21,15.29363,0,12,1,25.49889,22.30229,0,0,0,47.80118,0,0,0,3,0,5,86.7,11.84267,0,85.2,0,27,1,0,1.609438,3.295837,0,0,0,0,0,0,85.2,9.967926,1.609438,3.86705,1 +11,2,0,0,1,226213,0,21330.21,16.53662,0,12,1,17.56253,3.991485,0,0,0,21.55402,0,0,0,1,0,5,91.5,0,0,72.7,0,27,1,0,1.609438,3.295837,0,0,0,0,0,0,72.7,9.967926,1.609438,3.070562,1 +11,2,0,0,2,226213,0,21330.21,17.53662,0,12,1,0,1.357247,0,0,0,1.357247,0,0,0,0,0,5,91.5,0,0,72.7,0,27,1,0,1.609438,3.295837,0,0,0,0,0,0,72.7,9.967926,1.609438,.3054582,1 +11,2,0,0,3,226213,0,21330.21,18.53662,0,12,1,15.94789,0,0,0,0,15.94789,0,0,0,1,0,5,91.5,0,0,72.7,0,27,0,0,1.609438,3.295837,0,0,0,0,0,0,72.7,9.967926,1.609438,2.769326,1 +11,2,0,0,4,226213,0,21330.21,19.53662,0,12,1,111.6537,4.123923,.4103406,0,0,116.1879,0,0,0,4,0,5,91.5,0,0,72.7,0,27,0,0,1.609438,3.295837,0,0,0,0,0,0,72.7,9.967926,1.609438,4.755209,1 +11,2,0,0,5,226213,0,21330.21,20.53662,0,12,1,36.95491,4.748706,.3880266,0,0,42.09165,0,0,0,4,0,5,91.5,0,0,72.7,0,27,0,0,1.609438,3.295837,0,0,0,0,0,0,72.7,9.967926,1.609438,3.739849,1 +11,2,0,0,1,226214,0,21330.21,48.30116,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,90.4,6.9,0,77.3,0,27,0,0,1.609438,3.295837,0,0,0,0,0,0,77.3,9.967926,1.609438,,0 +11,2,0,0,2,226214,0,21330.21,49.30116,0,12,1,16.96558,0,44.3238,0,0,61.28938,0,0,0,1,0,5,90.4,6.9,0,77.3,0,27,0,0,1.609438,3.295837,0,0,0,0,0,0,77.3,9.967926,1.609438,4.115607,1 +11,2,0,0,3,226214,0,21330.21,50.30116,0,12,1,14.37556,7.884097,0,0,0,22.25966,0,0,0,0,2,5,90.4,6.9,0,77.3,0,27,0,0,1.609438,3.295837,0,0,0,0,0,0,77.3,9.967926,1.609438,3.102776,1 +11,2,0,0,4,226214,0,21330.21,51.30116,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,90.4,6.9,0,77.3,0,27,0,0,1.609438,3.295837,0,0,0,0,0,0,77.3,9.967926,1.609438,,0 +11,2,0,0,5,226214,0,21330.21,52.30116,0,12,1,84.88544,11.32668,46.09386,0,0,142.306,0,0,0,5,0,5,90.4,6.9,0,77.3,0,27,0,0,1.609438,3.295837,0,0,0,0,0,0,77.3,9.967926,1.609438,4.95798,1 +11,2,0,0,1,226215,0,21330.21,20.13963,1,13,1,58.54178,27.73816,40.57478,0,0,126.8547,0,0,0,6,0,5,89.9,6.9,0,70.5,0,27,0,0,1.609438,3.295837,0,0,0,0,0,0,70.5,9.967926,1.609438,4.843042,1 +11,2,0,0,2,226215,0,21330.21,21.13963,1,13,1,226.5148,42.18614,5.681047,0,0,274.382,0,0,0,17,0,5,89.9,6.9,0,70.5,0,27,0,0,1.609438,3.295837,0,0,0,0,0,0,70.5,9.967926,1.609438,5.614521,1 +11,2,0,0,3,226215,0,21330.21,22.13963,1,13,1,118.1491,11.37916,0,67.38544,0,129.5283,0,0,3,7,0,5,89.9,6.9,0,70.5,0,27,0,0,1.609438,3.295837,0,0,0,0,0,0,70.5,9.967926,1.609438,4.863899,1 +11,2,0,0,4,226215,0,21330.21,23.13963,1,13,1,90.7263,13.91055,36.67624,0,0,141.3131,0,0,0,6,0,5,89.9,6.9,0,70.5,0,27,0,0,1.609438,3.295837,0,0,0,0,0,0,70.5,9.967926,1.609438,4.950978,1 +11,2,0,0,5,226215,0,21330.21,24.13963,1,13,1,171.7664,19.7524,28.78788,0,0,220.3067,0,0,0,7,0,5,89.9,6.9,0,70.5,0,27,0,0,1.609438,3.295837,0,0,0,0,0,0,70.5,9.967926,1.609438,5.395021,1 +14,2,95,1,1,226220,0,8665.641,32.87885,0,14,1,0,0,0,0,0,0,0,0,0,0,0,4,72.3,13.8,0,83,426,0,0,0,1.386294,0,0,4.564348,6.105732,0,0,0,83,9.067237,1.386294,,0 +14,2,95,1,2,226220,0,8665.641,33.87885,0,14,1,0,0,0,0,0,0,0,0,0,0,0,4,72.3,13.8,0,83,426,0,0,0,1.386294,0,0,4.564348,6.105732,0,0,0,83,9.067237,1.386294,,0 +14,2,95,1,3,226220,0,8665.641,34.87885,0,14,1,0,0,0,0,0,0,0,0,0,0,0,4,72.3,13.8,0,83,426,0,0,0,1.386294,0,0,4.564348,6.105732,0,0,0,83,9.067237,1.386294,,0 +14,2,95,1,4,226220,0,8665.641,35.87885,0,14,1,32.93039,0,0,0,0,32.93039,0,0,0,2,0,4,72.3,13.8,0,83,426,0,0,0,1.386294,0,0,4.564348,6.105732,0,0,0,83,9.067237,1.386294,3.494396,1 +14,2,95,1,5,226220,0,8665.641,36.87885,0,14,1,5.20255,2.483121,0,0,0,7.685671,0,0,0,0,1,4,72.3,13.8,0,83,426,0,0,0,1.386294,0,0,4.564348,6.105732,0,0,0,83,9.067237,1.386294,2.039358,1 +14,2,95,1,1,226221,0,8665.641,6.551677,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,73.3,11.84267,0,100,426,0,1,1,1.386294,0,0,4.564348,6.105732,0,0,0,100,9.067237,1.386294,,0 +14,2,95,1,2,226221,0,8665.641,7.551677,1,13,1,262.3096,0,0,0,0,262.3096,0,0,0,3,0,4,73.3,11.84267,0,100,426,0,1,1,1.386294,0,0,4.564348,6.105732,0,0,0,100,9.067237,1.386294,5.569525,1 +14,2,95,1,3,226221,0,8665.641,8.551677,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,73.3,11.84267,0,100,426,0,1,1,1.386294,0,0,4.564348,6.105732,0,0,0,100,9.067237,1.386294,,0 +14,2,95,1,4,226221,0,8665.641,9.551677,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,73.3,11.84267,0,100,426,0,1,1,1.386294,0,0,4.564348,6.105732,0,0,0,100,9.067237,1.386294,,0 +14,2,95,1,5,226221,0,8665.641,10.55168,1,13,1,7.501875,0,0,0,0,7.501875,0,0,0,1,0,4,73.3,11.84267,0,100,426,0,1,1,1.386294,0,0,4.564348,6.105732,0,0,0,100,9.067237,1.386294,2.015153,1 +14,2,95,1,1,226222,0,8665.641,4.232718,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,81.35272,11.84267,0,100,426,0,1,1,1.386294,0,0,4.564348,6.105732,0,0,0,100,9.067237,1.386294,,0 +14,2,95,1,2,226222,0,8665.641,5.232718,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,81.35272,11.84267,0,100,426,0,1,1,1.386294,0,0,4.564348,6.105732,0,0,0,100,9.067237,1.386294,,0 +14,2,95,1,3,226222,0,8665.641,6.232718,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,81.35272,11.84267,0,100,426,0,1,1,1.386294,0,0,4.564348,6.105732,0,0,0,100,9.067237,1.386294,,0 +14,2,95,1,4,226222,0,8665.641,7.232718,1,13,1,20.42518,3.167987,0,0,0,23.59316,0,0,0,2,0,4,81.35272,11.84267,0,100,426,0,1,1,1.386294,0,0,4.564348,6.105732,0,0,0,100,9.067237,1.386294,3.160957,1 +14,2,95,1,5,226222,0,8665.641,8.232718,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,81.35272,11.84267,0,100,426,0,1,1,1.386294,0,0,4.564348,6.105732,0,0,0,100,9.067237,1.386294,,0 +14,2,95,1,1,226223,0,8665.641,32.36687,1,13,1,8.894878,0,0,0,0,8.894878,0,0,0,1,0,4,84,13.8,0,75,426,0,0,0,1.386294,0,0,4.564348,6.105732,0,0,0,75,9.067237,1.386294,2.185476,1 +14,2,95,1,2,226223,0,8665.641,33.36687,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,84,13.8,0,75,426,0,0,0,1.386294,0,0,4.564348,6.105732,0,0,0,75,9.067237,1.386294,,0 +14,2,95,1,3,226223,0,8665.641,34.36687,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,84,13.8,0,75,426,0,0,0,1.386294,0,0,4.564348,6.105732,0,0,0,75,9.067237,1.386294,,0 +14,2,95,1,4,226223,0,8665.641,35.36687,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,84,13.8,0,75,426,0,0,0,1.386294,0,0,4.564348,6.105732,0,0,0,75,9.067237,1.386294,,0 +14,2,95,1,5,226223,0,8665.641,36.36687,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,84,13.8,0,75,426,0,0,0,1.386294,0,0,4.564348,6.105732,0,0,0,75,9.067237,1.386294,,0 +11,2,0,0,1,226239,0,11449.27,24.27926,1,15,1,25.43906,20.64928,0,0,0,46.08834,0,0,0,2,0,2,86.2,6.9,0,83,0,0,0,0,.6931472,0,0,0,0,1,0,0,83,9.345768,.6931472,3.83056,1 +11,2,0,0,2,226239,0,11449.27,25.27926,1,15,1,60.59137,15.11876,0,0,0,75.71013,0,0,0,1,8,2,86.2,6.9,0,83,0,0,0,0,.6931472,0,0,0,0,1,0,0,83,9.345768,.6931472,4.326912,1 +11,2,0,0,3,226239,0,11449.27,26.27926,1,15,1,200.1348,2.511231,36.60826,0,1019.16,1258.414,1,0,0,4,15,2,86.2,6.9,0,83,0,0,0,0,.6931472,0,0,0,0,1,0,0,83,9.345768,.6931472,7.137608,1 +11,2,0,0,4,226239,0,11449.27,27.27926,1,15,1,142.7985,6.877308,0,0,0,149.6758,0,0,0,3,16,3,86.2,6.9,0,83,0,0,0,0,1.098612,0,0,0,0,1,0,0,83,9.345768,1.098612,5.008472,1 +11,2,0,0,5,226239,0,11449.27,28.27926,1,15,1,76.68145,3.252033,0,0,1115.484,1195.418,1,0,0,0,9,3,86.2,6.9,0,83,0,0,0,0,1.098612,0,0,0,0,1,0,0,83,9.345768,1.098612,7.086251,1 +11,2,0,0,1,226240,0,11449.27,27.6167,0,17,1,54.81639,0,0,0,0,54.81639,0,0,0,2,0,2,79.3,3.4,0,65.9,0,0,0,0,.6931472,0,0,0,0,0,0,0,65.9,9.345768,.6931472,4.003989,1 +11,2,0,0,2,226240,0,11449.27,28.6167,0,17,1,101.3088,7.523025,0,0,0,108.8318,0,0,0,3,7,2,79.3,3.4,0,65.9,0,0,0,0,.6931472,0,0,0,0,0,0,0,65.9,9.345768,.6931472,4.689804,1 +11,2,0,0,3,226240,0,11449.27,29.6167,0,17,1,102.9874,0,0,0,0,102.9874,0,0,0,1,7,2,79.3,3.4,0,65.9,0,0,0,0,.6931472,0,0,0,0,0,0,0,65.9,9.345768,.6931472,4.634607,1 +11,2,0,0,4,226240,0,11449.27,30.6167,0,17,1,108.7403,0,0,0,0,108.7403,0,0,0,1,15,3,79.3,3.4,0,65.9,0,0,0,0,1.098612,0,0,0,0,0,0,0,65.9,9.345768,1.098612,4.688962,1 +11,2,0,0,5,226240,0,11449.27,31.6167,0,17,1,109.2018,0,0,0,0,109.2018,0,0,0,2,6,3,79.3,3.4,0,65.9,0,0,0,0,1.098612,0,0,0,0,0,0,0,65.9,9.345768,1.098612,4.693197,1 +13,2,0,1,1,226248,0,9796.48,24.50924,1,15,1,14.29328,0,0,0,0,14.29328,0,0,0,1,0,2,79.8,20.7,0,90.9,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,90.9,9.18988,.6931472,2.659789,1 +13,2,0,1,2,226248,0,9796.48,25.50924,1,15,1,21.23552,11.3417,35.71429,0,0,68.2915,0,0,0,1,1,2,79.8,20.7,0,90.9,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,90.9,9.18988,.6931472,4.223785,1 +13,2,0,1,3,226248,0,9796.48,26.50924,1,15,1,40.94348,6.987094,0,0,521.6733,569.6039,1,0,0,1,0,2,79.8,20.7,0,90.9,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,90.9,9.18988,.6931472,6.344941,1 +13,2,0,1,4,226248,0,9796.48,27.50924,1,15,1,15.98211,16.02277,0,0,0,32.00488,0,0,0,1,0,3,79.8,20.7,0,90.9,300,300,0,0,1.098612,5.703783,1,4.564348,5.755076,0,0,0,90.9,9.18988,1.098612,3.465888,1 +13,2,0,1,5,226248,0,9796.48,28.50924,1,15,1,73.68035,23.75,30.05865,0,9379.772,9507.262,2,0,0,6,1,3,79.8,20.7,0,90.9,300,300,0,0,1.098612,5.703783,1,4.564348,5.755076,0,0,0,90.9,9.18988,1.098612,9.159811,1 +13,2,0,1,1,226249,0,9796.48,25.51129,0,15,1,5.293806,2.038116,0,0,0,7.331922,0,0,0,1,0,2,86.7,3.4,0,70.5,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,70.5,9.18988,.6931472,1.992238,1 +13,2,0,1,2,226249,0,9796.48,26.51129,0,15,1,46.33205,0,0,0,0,46.33205,0,0,0,4,0,2,86.7,3.4,0,70.5,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,70.5,9.18988,.6931472,3.835834,1 +13,2,0,1,3,226249,0,9796.48,27.51129,0,15,1,58.96751,2.00267,0,0,0,60.97018,0,0,0,2,0,2,86.7,3.4,0,70.5,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,70.5,9.18988,.6931472,4.110385,1 +13,2,0,1,4,226249,0,9796.48,28.51129,0,15,1,6.10004,0,0,0,0,6.10004,0,0,0,1,0,3,86.7,3.4,0,70.5,300,300,0,0,1.098612,5.703783,1,4.564348,5.755076,0,0,0,70.5,9.18988,1.098612,1.808295,1 +13,2,0,1,5,226249,0,9796.48,29.51129,0,15,1,56.26833,0,0,0,0,56.26833,0,0,0,3,0,3,86.7,3.4,0,70.5,300,300,0,0,1.098612,5.703783,1,4.564348,5.755076,0,0,0,70.5,9.18988,1.098612,4.030132,1 +13,2,0,1,1,226261,0,5978.299,27.49897,0,12,1,13.83715,2.751464,0,0,0,16.58861,0,0,0,1,0,2,73.4,3.4,0,77.4,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,77.4,8.696058,.6931472,2.808716,1 +13,2,0,1,2,226261,0,5978.299,28.49897,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,73.4,3.4,0,77.4,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,77.4,8.696058,.6931472,,0 +13,2,0,1,3,226261,0,5978.299,29.49897,0,12,1,20.21563,1.334232,0,0,0,21.54987,0,0,0,1,0,2,73.4,3.4,0,77.4,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,77.4,8.696058,.6931472,3.070369,1 +13,2,0,1,1,226262,0,5978.299,27.34018,1,12,1,43.90633,15.70516,0,0,0,59.6115,0,0,0,2,0,2,78.2,17.2,0,64.8,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,64.8,8.696058,.6931472,4.087849,1 +13,2,0,1,2,226262,0,5978.299,28.34018,1,12,1,92.09888,3.829375,0,0,0,95.92826,0,0,0,5,0,2,78.2,17.2,0,64.8,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,64.8,8.696058,.6931472,4.563601,1 +13,2,0,1,3,226262,0,5978.299,29.34018,1,12,1,142.1833,0,0,0,0,142.1833,0,0,0,8,0,2,78.2,17.2,0,64.8,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,64.8,8.696058,.6931472,4.957117,1 +13,2,0,1,1,226281,0,11672.14,52.04928,1,12,1,81.42629,23.38478,60.42576,0,0,165.2368,0,0,0,16,0,2,81.9,3.4,0,93.2,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,93.2,9.365046,.6931472,5.10738,1 +13,2,0,1,2,226281,0,11672.14,53.04928,1,12,1,11.63354,5.487154,0,0,0,17.1207,0,0,0,3,0,2,81.9,3.4,0,93.2,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,93.2,9.365046,.6931472,2.840288,1 +13,2,0,1,3,226281,0,11672.14,54.04928,1,12,1,122.3046,3.993711,69.51033,0,0,195.8086,0,0,0,6,0,2,81.9,3.4,0,93.2,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,93.2,9.365046,.6931472,5.277138,1 +13,2,0,1,1,226282,0,11672.14,48.86516,0,14,1,57.74348,27.38159,0,0,0,85.12507,0,0,0,12,0,2,92.6,10.3,0,81.8,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,81.8,9.365046,.6931472,4.444121,1 +13,2,0,1,2,226282,0,11672.14,49.86516,0,14,1,37.80902,30.77557,0,0,0,68.58459,0,0,0,6,0,2,92.6,10.3,0,81.8,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,81.8,9.365046,.6931472,4.228068,1 +13,2,0,1,3,226282,0,11672.14,50.86516,0,14,1,10.78167,3.324349,0,0,0,14.10602,0,0,0,3,0,2,92.6,10.3,0,81.8,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,81.8,9.365046,.6931472,2.646602,1 +11,2,0,1,1,226326,0,1,3.19781,0,13,1,55.88079,32.82065,0,0,0,88.70144,0,0,0,7,0,4,81.35272,11.84267,0,63,0,0,1,0,1.386294,0,0,0,0,0,0,0,63,.6931472,1.386294,4.485276,1 +11,2,0,1,2,226326,0,1,4.19781,0,13,1,55.28357,16.81047,0,0,0,72.09404,0,0,0,5,1,5,81.35272,11.84267,0,63,0,0,1,0,1.609438,0,0,0,0,0,0,0,63,.6931472,1.609438,4.277971,1 +11,2,0,1,3,226326,0,1,5.19781,0,13,1,60.87152,4.725966,0,0,0,65.59748,0,0,0,4,1,5,81.35272,11.84267,0,63,0,0,1,0,1.609438,0,0,0,0,0,0,0,63,.6931472,1.609438,4.183537,1 +11,2,0,1,1,226327,0,1,25.16906,0,14,1,22.83129,11.90527,0,0,0,34.73656,0,0,0,3,0,4,44.7,6.9,0,63.6,0,0,0,0,1.386294,0,0,0,0,1,0,0,63.6,.6931472,1.386294,3.547793,1 +11,2,0,1,2,226327,0,1,26.16906,0,14,1,13.3301,6.325739,0,0,0,19.65584,0,0,0,2,0,5,44.7,6.9,0,63.6,0,0,0,0,1.609438,0,0,0,0,1,0,0,63.6,.6931472,1.609438,2.978374,1 +11,2,0,1,3,226327,0,1,27.16906,0,14,1,0,2.35849,0,0,0,2.35849,0,0,0,0,0,5,44.7,6.9,0,63.6,0,0,0,0,1.609438,0,0,0,0,1,0,0,63.6,.6931472,1.609438,.8580218,1 +11,2,0,1,1,226328,0,1,1.793292,1,13,1,71.84673,8.610963,0,0,0,80.45769,0,0,0,8,0,4,81.35272,11.84267,0,55.6,0,0,1,1,1.386294,0,0,0,0,0,0,0,55.6,.6931472,1.386294,4.387732,1 +11,2,0,1,2,226328,0,1,2.793292,1,13,1,97.30975,15.10422,0,0,0,112.414,0,0,0,9,1,5,81.35272,11.84267,0,55.6,0,0,1,1,1.609438,0,0,0,0,0,0,0,55.6,.6931472,1.609438,4.722188,1 +11,2,0,1,3,226328,0,1,3.793292,1,13,1,58.71518,9.950584,0,0,0,68.66577,0,0,0,7,1,5,81.35272,11.84267,0,55.6,0,0,1,1,1.609438,0,0,0,0,0,0,0,55.6,.6931472,1.609438,4.229251,1 +11,2,0,1,1,226329,0,1,23.74264,1,13,1,196.8866,109.7126,15.96594,0,742.0969,1064.662,1,0,0,8,6,4,50,17.2,0,44.3,0,0,0,0,1.386294,0,0,0,0,0,0,0,44.3,.6931472,1.386294,6.970413,1 +11,2,0,1,2,226329,0,1,24.74264,1,13,1,165.681,25.54532,0,9.694619,0,191.2264,0,0,1,11,9,5,50,17.2,0,44.3,0,0,0,0,1.609438,0,0,0,0,0,0,0,44.3,.6931472,1.609438,5.253458,1 +11,2,0,1,3,226329,0,1,25.74264,1,13,1,127.7628,54.35759,17.96945,67.38544,670.6199,870.7098,1,0,4,7,11,5,50,17.2,0,44.3,0,0,0,0,1.609438,0,0,0,0,0,0,0,44.3,.6931472,1.609438,6.769309,1 +11,2,0,1,1,226330,0,10835.19,32.96099,1,12,1,69.35225,34.41114,0,0,0,103.7634,0,0,0,4,0,4,77.1,17.2,0,68.2,0,0,0,0,1.386294,0,0,0,0,0,0,0,68.2,9.290647,1.386294,4.642113,1 +11,2,0,1,2,226330,0,10835.19,33.96099,1,12,1,168.7164,7.115666,0,0,0,175.8321,0,0,0,5,0,4,77.1,17.2,0,68.2,0,0,0,0,1.386294,0,0,0,0,0,0,0,68.2,9.290647,1.386294,5.169529,1 +11,2,0,1,3,226330,0,10835.19,34.96099,1,12,1,242.1635,46.01626,0,0,0,288.1798,0,0,0,14,1,4,77.1,17.2,0,68.2,0,0,0,0,1.386294,0,0,0,0,0,0,0,68.2,9.290647,1.386294,5.663585,1 +11,2,0,1,4,226330,0,10835.19,35.96099,1,12,1,23.5732,13.68486,0,0,0,37.25806,0,0,0,2,0,4,77.1,17.2,0,68.2,0,0,0,0,1.386294,0,0,0,0,0,0,0,68.2,9.290647,1.386294,3.617868,1 +11,2,0,1,5,226330,0,10835.19,36.96099,1,12,1,38.37556,26.97839,0,0,0,65.35395,0,0,0,5,0,4,77.1,17.2,0,68.2,0,0,0,0,1.386294,0,0,0,0,0,0,0,68.2,9.290647,1.386294,4.179818,1 +11,2,0,1,1,226331,0,10835.19,33.16085,0,10,1,102.7837,0,36.18308,0,525.9368,664.9036,1,0,0,8,1,4,70.7,6.9,0,76.1,0,0,0,0,1.386294,0,0,0,0,0,0,0,76.1,9.290647,1.386294,6.499642,1 +11,2,0,1,2,226331,0,10835.19,34.16085,0,10,1,172.4012,1.70327,.9760859,0,0,175.0805,0,0,0,4,0,4,70.7,6.9,0,76.1,0,0,0,0,1.386294,0,0,0,0,0,0,0,76.1,9.290647,1.386294,5.165246,1 +11,2,0,1,3,226331,0,10835.19,35.16085,0,10,1,54.90063,8.888889,62.58356,0,0,126.3731,0,0,0,3,2,4,70.7,6.9,0,76.1,0,0,0,0,1.386294,0,0,0,0,0,0,0,76.1,9.290647,1.386294,4.839239,1 +11,2,0,1,4,226331,0,10835.19,36.16085,0,10,1,54.17701,0,0,0,0,54.17701,0,0,0,0,4,4,70.7,6.9,0,76.1,0,0,0,0,1.386294,0,0,0,0,0,0,0,76.1,9.290647,1.386294,3.992257,1 +11,2,0,1,5,226331,0,10835.19,37.16085,0,10,1,181.0209,6.71386,0,0,0,187.7347,0,0,0,3,6,4,70.7,6.9,0,76.1,0,0,0,0,1.386294,0,0,0,0,0,0,0,76.1,9.290647,1.386294,5.23503,1 +11,2,0,1,1,226332,0,10835.19,6.822724,1,12,1,47.10921,3.297645,0,0,0,50.40685,0,0,0,5,0,4,70,11.84267,0,88.9,0,0,1,1,1.386294,0,0,0,0,0,0,0,88.9,9.290647,1.386294,3.920127,1 +11,2,0,1,2,226332,0,10835.19,7.822724,1,12,1,92.97218,15.78819,0,0,0,108.7604,0,0,0,7,1,4,70,11.84267,0,88.9,0,0,1,1,1.386294,0,0,0,0,0,0,0,88.9,9.290647,1.386294,4.689147,1 +11,2,0,1,3,226332,0,10835.19,8.822724,1,12,1,42.00542,3.292683,0,0,0,45.2981,0,0,0,3,1,4,70,11.84267,0,88.9,0,0,1,1,1.386294,0,0,0,0,0,0,0,88.9,9.290647,1.386294,3.813265,1 +11,2,0,1,4,226332,0,10835.19,9.822724,1,12,1,35.77337,1.393714,0,0,0,37.16708,0,0,0,2,1,4,70,11.84267,0,88.9,0,0,1,1,1.386294,0,0,0,0,0,0,0,88.9,9.290647,1.386294,3.615423,1 +11,2,0,1,5,226332,0,10835.19,10.82272,1,12,1,30.36513,0,0,0,0,30.36513,0,0,0,4,0,4,70,11.84267,0,88.9,0,0,1,1,1.386294,0,0,0,0,0,0,0,88.9,9.290647,1.386294,3.413295,1 +11,2,0,1,1,226333,0,10835.19,3.047228,1,12,1,49.25053,4.85546,0,0,0,54.106,0,0,0,5,0,4,81.35272,11.84267,0,70.4,0,0,1,1,1.386294,0,0,0,0,1,0,0,70.4,9.290647,1.386294,3.990945,1 +11,2,0,1,2,226333,0,10835.19,4.047228,1,12,1,144.2167,5.998048,0,0,0,150.2147,0,0,0,6,0,4,81.35272,11.84267,0,70.4,0,0,1,1,1.386294,0,0,0,0,1,0,0,70.4,9.290647,1.386294,5.012066,1 +11,2,0,1,3,226333,0,10835.19,5.047228,1,12,1,149.6161,31.57633,0,0,0,181.1924,0,0,0,11,1,4,81.35272,11.84267,0,70.4,0,0,1,1,1.386294,0,0,0,0,1,0,0,70.4,9.290647,1.386294,5.19956,1 +11,2,0,1,4,226333,0,10835.19,6.047228,1,12,1,119.7271,0,30.14061,0,0,149.8677,0,0,0,5,2,4,81.35272,11.84267,0,70.4,0,0,1,1,1.386294,0,0,0,0,1,0,0,70.4,9.290647,1.386294,5.009753,1 +11,2,0,1,5,226333,0,10835.19,7.047228,1,12,1,124.6088,9.418778,0,0,0,134.0276,0,0,0,9,1,4,81.35272,11.84267,0,70.4,0,0,1,1,1.386294,0,0,0,0,1,0,0,70.4,9.290647,1.386294,4.898046,1 +13,2,0,1,1,226349,0,10812.9,54.65845,1,12,1,5.227392,5.723994,0,0,0,10.95139,0,0,0,1,0,2,74.5,13.8,0,79.5,300,0,0,0,.6931472,0,1,4.564348,5.755076,1,0,0,79.5,9.288588,.6931472,2.393466,1 +13,2,0,1,2,226349,0,10812.9,55.65845,1,12,1,22.58529,0,0,0,0,22.58529,0,0,0,2,0,2,74.5,13.8,0,79.5,300,0,0,0,.6931472,0,1,4.564348,5.755076,1,0,0,79.5,9.288588,.6931472,3.117299,1 +13,2,0,1,3,226349,0,10812.9,56.65845,1,12,1,0,5.264317,0,0,0,5.264317,0,0,0,0,0,2,74.5,13.8,0,79.5,300,0,0,0,.6931472,0,1,4.564348,5.755076,1,0,0,79.5,9.288588,.6931472,1.660951,1 +13,2,0,1,1,226350,0,10812.9,54.40657,0,12,1,134.344,0,0,0,0,134.344,0,0,0,3,0,2,89.4,10.3,0,87.5,300,0,0,0,.6931472,0,1,4.564348,5.755076,0,0,0,87.5,9.288588,.6931472,4.900403,1 +13,2,0,1,2,226350,0,10812.9,55.40657,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,89.4,10.3,0,87.5,300,0,0,0,.6931472,0,1,4.564348,5.755076,0,0,0,87.5,9.288588,.6931472,,0 +13,2,0,1,3,226350,0,10812.9,56.40657,0,12,1,332.4229,1.85022,0,0,0,334.2731,0,0,0,3,0,2,89.4,10.3,0,87.5,300,0,0,0,.6931472,0,1,4.564348,5.755076,0,0,0,87.5,9.288588,.6931472,5.811958,1 +19,2,25,1,1,226362,0,14273.9,31.54278,1,13,1,16.17251,0,0,0,0,16.17251,0,0,0,1,0,2,84,17.2,1,87.5,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,0,87.5,9.566258,.6931472,2.783313,1 +19,2,25,1,2,226362,0,14273.9,32.54278,1,13,1,18.67322,0,0,0,0,18.67322,0,0,0,2,0,2,84,17.2,1,87.5,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,0,87.5,9.566258,.6931472,2.92709,1 +19,2,25,1,3,226362,0,14273.9,33.54278,1,13,1,21.42206,0,193.7101,22.78942,0,215.1322,0,0,1,1,0,2,84,17.2,1,87.5,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,0,87.5,9.566258,.6931472,5.371253,1 +19,2,25,1,1,226363,0,14273.9,32.34223,0,13,1,66.469,4.447439,0,0,0,70.91644,0,0,0,3,0,2,91,10.3,1,76.1,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,1,0,0,76.1,9.566258,.6931472,4.261502,1 +19,2,25,1,2,226363,0,14273.9,33.34223,0,13,1,407.1253,0,0,0,0,407.1253,0,0,0,3,44,2,91,10.3,1,76.1,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,1,0,0,76.1,9.566258,.6931472,6.009121,1 +19,2,25,1,3,226363,0,14273.9,34.34223,0,13,1,120.784,0,0,0,444.371,565.155,1,0,0,15,0,2,91,10.3,1,76.1,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,1,0,0,76.1,9.566258,.6931472,6.3371,1 +5,2,25,1,1,226406,0,8234.604,53.5113,0,16,1,92.07709,4.443255,166.6542,0,0,263.1745,0,0,0,6,0,4,71.8,24.1,1,73.9,701.4,701.4,0,0,1.386294,6.553078,0,3.258096,7.939373,0,0,0,73.9,9.016222,1.386294,5.572817,1 +5,2,25,1,2,226406,0,8234.604,54.5113,0,16,1,23.42606,9.292337,15.50512,0,0,48.22352,0,0,0,2,0,4,71.8,24.1,1,73.9,701.4,701.4,0,0,1.386294,6.553078,0,3.258096,7.939373,0,0,0,73.9,9.016222,1.386294,3.875847,1 +5,2,25,1,3,226406,0,8234.604,55.5113,0,16,1,139.5664,19.06052,0,0,0,158.6269,0,0,0,5,0,4,71.8,24.1,1,73.9,701.4,701.4,0,0,1.386294,6.553078,0,3.258096,7.939373,0,0,0,73.9,9.016222,1.386294,5.066555,1 +5,2,25,1,1,226407,0,8234.604,50.46407,1,12,1,26.23126,30.25696,3.238758,0,0,59.72698,0,0,0,2,0,4,66,24.1,1,78.4,701.4,701.4,0,0,1.386294,6.553078,0,3.258096,7.939373,0,0,0,78.4,9.016222,1.386294,4.089784,1 +5,2,25,1,2,226407,0,8234.604,51.46407,1,12,1,37.45729,33.8897,42.9673,0,0,114.3143,0,0,0,3,0,4,66,24.1,1,78.4,701.4,701.4,0,0,1.386294,6.553078,0,3.258096,7.939373,0,0,0,78.4,9.016222,1.386294,4.738952,1 +5,2,25,1,3,226407,0,8234.604,52.46407,1,12,1,189.1373,34.19151,0,0,0,223.3288,0,0,0,5,0,4,66,24.1,1,78.4,701.4,701.4,0,0,1.386294,6.553078,0,3.258096,7.939373,0,0,0,78.4,9.016222,1.386294,5.408645,1 +5,2,25,1,1,226408,0,8234.604,11.99179,0,12,1,38.5439,0,0,0,0,38.5439,0,0,0,3,0,4,73.3,11.84267,0,77.8,701.4,701.4,1,0,1.386294,6.553078,0,3.258096,7.939373,0,0,0,77.8,9.016222,1.386294,3.651798,1 +5,2,25,1,2,226408,0,8234.604,12.99179,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,73.3,11.84267,0,77.8,701.4,701.4,1,0,1.386294,6.553078,0,3.258096,7.939373,0,0,0,77.8,9.016222,1.386294,,0 +5,2,25,1,3,226408,0,8234.604,13.99179,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,73.3,11.84267,0,77.8,701.4,701.4,1,0,1.386294,6.553078,0,3.258096,7.939373,0,0,0,77.8,9.016222,1.386294,,0 +5,2,25,1,1,226409,0,8234.604,10.53251,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,78.3,11.84267,0,77.8,701.4,701.4,1,0,1.386294,6.553078,0,3.258096,7.939373,0,0,0,77.8,9.016222,1.386294,,0 +5,2,25,1,2,226409,0,8234.604,11.53251,0,12,1,17.32553,1.752074,0,0,0,19.0776,0,0,0,1,0,4,78.3,11.84267,0,77.8,701.4,701.4,1,0,1.386294,6.553078,0,3.258096,7.939373,0,0,0,77.8,9.016222,1.386294,2.948515,1 +5,2,25,1,3,226409,0,8234.604,12.53251,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,78.3,11.84267,0,77.8,701.4,701.4,1,0,1.386294,6.553078,0,3.258096,7.939373,0,0,0,77.8,9.016222,1.386294,,0 +11,2,0,1,1,226420,0,8005.279,51.96988,1,12,1,70.51624,74.06599,49.26557,0,0,193.8478,0,0,0,5,1,2,80.3,34.5,1,70.5,0,398.64,0,0,.6931472,5.988059,0,0,0,1,0,0,70.5,8.987982,.6931472,5.267073,1 +11,2,0,1,2,226420,0,8005.279,52.96988,1,12,1,257.0528,67.14494,19.38924,0,0,343.587,0,0,0,7,6,2,80.3,34.5,1,70.5,0,398.64,0,0,.6931472,5.988059,0,0,0,1,0,0,70.5,8.987982,.6931472,5.83944,1 +11,2,0,1,3,226420,0,8005.279,53.96988,1,12,1,97.25966,75.24708,36.66667,0,0,209.1734,0,0,0,8,6,2,80.3,34.5,1,70.5,0,398.64,0,0,.6931472,5.988059,0,0,0,1,0,0,70.5,8.987982,.6931472,5.343163,1 +11,2,0,1,1,226421,0,8005.279,55.30185,0,12,1,190.3938,6.546035,38.87706,0,0,235.8169,0,0,0,5,0,2,80.9,6.9,1,60.2,0,398.64,0,0,.6931472,5.988059,0,0,0,1,0,0,60.2,8.987982,.6931472,5.463056,1 +11,2,0,1,2,226421,0,8005.279,56.30185,0,12,1,239.5783,16.15124,2.985943,0,1630.296,1889.011,2,0,0,9,1,2,80.9,6.9,1,60.2,0,398.64,0,0,.6931472,5.988059,0,0,0,1,0,0,60.2,8.987982,.6931472,7.543809,1 +11,2,0,1,3,226421,0,8005.279,57.30185,0,12,1,42.22821,11.48697,47.22372,0,0,100.9389,0,0,0,3,1,2,80.9,6.9,1,60.2,0,398.64,0,0,.6931472,5.988059,0,0,0,1,0,0,60.2,8.987982,.6931472,4.614515,1 +14,2,95,0,1,226422,0,10179.47,38.19028,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,86.2,0,0,78.4,835.7,835.7,0,0,1.609438,6.72827,0,4.564348,6.779563,0,0,0,78.4,9.228227,1.609438,,0 +14,2,95,0,2,226422,0,10179.47,39.19028,0,12,1,21.13022,0,8.457003,0,0,29.58722,0,0,0,1,1,5,86.2,0,0,78.4,835.7,835.7,0,0,1.609438,6.72827,0,4.564348,6.779563,0,0,0,78.4,9.228227,1.609438,3.387343,1 +14,2,95,0,3,226422,0,10179.47,40.19028,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,86.2,0,0,78.4,835.7,835.7,0,0,1.609438,6.72827,0,4.564348,6.779563,0,0,0,78.4,9.228227,1.609438,,0 +14,2,95,0,4,226422,0,10179.47,41.19028,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,86.2,0,0,78.4,835.7,835.7,0,0,1.791759,6.72827,0,4.564348,6.779563,0,0,0,78.4,9.228227,1.791759,,0 +14,2,95,0,5,226422,0,10179.47,42.19028,0,12,1,132.4081,0,35.10503,0,0,167.5131,0,0,0,1,19,6,86.2,0,0,78.4,835.7,835.7,0,0,1.791759,6.72827,0,4.564348,6.779563,0,0,0,78.4,9.228227,1.791759,5.121062,1 +14,2,95,0,1,226423,0,10179.47,9.848049,0,12,1,17.78976,0,0,0,0,17.78976,0,0,0,1,0,5,86.7,11.84267,0,63,835.7,835.7,1,0,1.609438,6.72827,0,4.564348,6.779563,0,0,0,63,9.228227,1.609438,2.878623,1 +14,2,95,0,2,226423,0,10179.47,10.84805,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,86.7,11.84267,0,63,835.7,835.7,1,0,1.609438,6.72827,0,4.564348,6.779563,0,0,0,63,9.228227,1.609438,,0 +14,2,95,0,3,226423,0,10179.47,11.84805,0,12,1,24.63537,0,0,0,0,24.63537,0,0,0,1,0,5,86.7,11.84267,0,63,835.7,835.7,1,0,1.609438,6.72827,0,4.564348,6.779563,0,0,0,63,9.228227,1.609438,3.204183,1 +14,2,95,0,4,226423,0,10179.47,12.84805,0,12,1,8.336807,1.621509,0,0,0,9.958316,0,0,0,1,0,6,86.7,11.84267,0,63,835.7,835.7,1,0,1.791759,6.72827,0,4.564348,6.779563,0,0,0,63,9.228227,1.791759,2.298408,1 +14,2,95,0,5,226423,0,10179.47,13.84805,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,86.7,11.84267,0,63,835.7,835.7,1,0,1.791759,6.72827,0,4.564348,6.779563,0,0,0,63,9.228227,1.791759,,0 +14,2,95,0,1,226424,0,10179.47,12.82683,1,12,1,16.17251,0,0,0,0,16.17251,0,0,0,2,0,5,68.3,11.84267,0,66.7,835.7,835.7,1,1,1.609438,6.72827,0,4.564348,6.779563,0,0,0,66.7,9.228227,1.609438,2.783313,1 +14,2,95,0,2,226424,0,10179.47,13.82683,1,12,1,69.70516,0,0,0,0,69.70516,0,0,0,3,0,5,68.3,11.84267,0,66.7,835.7,835.7,1,1,1.609438,6.72827,0,4.564348,6.779563,0,0,0,66.7,9.228227,1.609438,4.244274,1 +14,2,95,0,3,226424,0,10179.47,14.82683,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,68.3,11.84267,0,66.7,835.7,835.7,1,1,1.609438,6.72827,0,4.564348,6.779563,0,0,0,66.7,9.228227,1.609438,,0 +14,2,95,0,4,226424,0,10179.47,15.82683,1,12,1,22.50938,0,0,0,0,22.50938,0,0,0,1,0,6,68.3,11.84267,0,66.7,835.7,835.7,1,1,1.791759,6.72827,0,4.564348,6.779563,0,0,0,66.7,9.228227,1.791759,3.113932,1 +14,2,95,0,5,226424,0,10179.47,16.82683,1,12,1,67.81696,2.044261,0,0,0,69.86121,0,0,0,4,0,6,68.3,11.84267,0,66.7,835.7,835.7,1,1,1.791759,6.72827,0,4.564348,6.779563,0,0,0,66.7,9.228227,1.791759,4.246511,1 +14,2,95,0,1,226425,0,10179.47,11.04723,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,53.3,11.84267,0,59.3,835.7,835.7,1,1,1.609438,6.72827,0,4.564348,6.779563,0,0,0,59.3,9.228227,1.609438,,0 +14,2,95,0,2,226425,0,10179.47,12.04723,1,12,1,14.1769,0,0,0,0,14.1769,0,0,0,1,0,5,53.3,11.84267,0,59.3,835.7,835.7,1,1,1.609438,6.72827,0,4.564348,6.779563,0,0,0,59.3,9.228227,1.609438,2.651614,1 +14,2,95,0,3,226425,0,10179.47,13.04723,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,53.3,11.84267,0,59.3,835.7,835.7,1,1,1.609438,6.72827,0,4.564348,6.779563,0,0,0,59.3,9.228227,1.609438,,0 +14,2,95,0,4,226425,0,10179.47,14.04723,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,53.3,11.84267,0,59.3,835.7,835.7,1,1,1.791759,6.72827,0,4.564348,6.779563,0,0,0,59.3,9.228227,1.791759,,0 +14,2,95,0,5,226425,0,10179.47,15.04723,1,12,1,110.6527,0,0,0,0,110.6527,0,0,0,0,16,6,53.3,11.84267,0,59.3,835.7,835.7,1,1,1.791759,6.72827,0,4.564348,6.779563,0,0,0,59.3,9.228227,1.791759,4.706396,1 +14,2,95,0,1,226426,0,10179.47,35.66872,1,12,1,90.56604,24.92183,0,0,0,115.4879,0,0,0,6,1,5,76.1,10.3,1,63.6,835.7,835.7,0,0,1.609438,6.72827,0,4.564348,6.779563,0,0,0,63.6,9.228227,1.609438,4.749166,1 +14,2,95,0,2,226426,0,10179.47,36.66872,1,12,1,48.64865,11.5774,0,0,0,60.22604,0,0,0,2,0,5,76.1,10.3,1,63.6,835.7,835.7,0,0,1.609438,6.72827,0,4.564348,6.779563,0,0,0,63.6,9.228227,1.609438,4.098105,1 +14,2,95,0,3,226426,0,10179.47,37.66872,1,12,1,121.5816,11.35825,0,0,626.495,759.4348,1,0,0,1,0,5,76.1,10.3,1,63.6,835.7,835.7,0,0,1.609438,6.72827,0,4.564348,6.779563,0,0,0,63.6,9.228227,1.609438,6.632575,1 +14,2,95,0,4,226426,0,10179.47,38.66872,1,12,1,252.0842,15.49396,0,0,1586.094,1853.672,1,0,0,4,29,6,76.1,10.3,1,63.6,835.7,835.7,0,0,1.791759,6.72827,0,4.564348,6.779563,0,0,0,63.6,9.228227,1.791759,7.524924,1 +14,2,95,0,5,226426,0,10179.47,39.66872,1,12,1,363.3721,45.65266,.6564141,0,0,409.6812,0,0,0,8,12,6,76.1,10.3,1,63.6,835.7,835.7,0,0,1.791759,6.72827,0,4.564348,6.779563,0,0,0,63.6,9.228227,1.791759,6.015379,1 +11,2,0,1,1,226428,0,12289.74,30.61465,1,13,1,93.80054,15.23989,29.22911,0,0,138.2695,0,0,0,5,1,1,84,13.8,0,60.2,0,0,0,0,0,0,0,0,0,1,0,0,60.2,9.416601,0,4.929205,1 +11,2,0,1,2,226428,0,12289.74,31.61465,1,13,1,13.26781,9.43489,0,0,1058.305,1081.007,1,0,0,2,0,1,84,13.8,0,60.2,0,0,0,0,0,0,0,0,0,1,0,0,60.2,9.416601,0,6.985649,1 +11,2,0,1,3,226428,0,12289.74,32.61465,1,13,1,11.39471,0,35.90702,0,0,47.30173,0,0,0,0,1,1,84,13.8,0,60.2,0,0,0,0,0,0,0,0,0,1,0,0,60.2,9.416601,0,3.856547,1 +11,2,0,1,4,226428,0,12289.74,33.61465,1,13,1,113.3806,0,0,0,0,113.3806,0,0,0,5,0,1,84,13.8,0,60.2,0,0,0,0,0,0,0,0,0,1,0,0,60.2,9.416601,0,4.73075,1 +11,2,0,1,5,226428,0,12289.74,34.61465,1,13,1,145.1613,0,0,0,0,145.1613,0,0,0,2,19,1,84,13.8,0,60.2,0,0,0,0,0,0,0,0,0,1,0,0,60.2,9.416601,0,4.977846,1 +13,2,0,1,1,226432,0,13241.06,40.78302,0,12,1,134.7698,0,2.67666,0,282.3608,419.8073,1,0,0,7,0,3,79.8,6.9,0,67,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,67,9.491153,1.098612,6.039796,1 +13,2,0,1,2,226432,0,13241.06,41.78302,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,79.8,6.9,0,67,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,67,9.491153,1.098612,,0 +13,2,0,1,3,226432,0,13241.06,42.78302,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,79.8,6.9,0,67,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,67,9.491153,1.098612,,0 +13,2,0,1,1,226433,0,13241.06,11.5729,1,12,1,13.65096,0,0,0,0,13.65096,0,0,0,1,0,3,93.3,11.84267,0,100,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,0,0,0,100,9.491153,1.098612,2.61381,1 +13,2,0,1,2,226433,0,13241.06,12.5729,1,12,1,13.17716,0,0,0,0,13.17716,0,0,0,1,0,3,93.3,11.84267,0,100,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,0,0,0,100,9.491153,1.098612,2.578485,1 +13,2,0,1,3,226433,0,13241.06,13.5729,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,93.3,11.84267,0,100,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,0,0,0,100,9.491153,1.098612,,0 +13,2,0,1,1,226434,0,13241.06,39.13758,1,12,1,16.05996,0,38.27088,0,0,54.33083,0,0,0,1,0,3,87.8,3.4,0,96.6,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,96.6,9.491153,1.098612,3.995092,1 +13,2,0,1,2,226434,0,13241.06,40.13758,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,87.8,3.4,0,96.6,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,96.6,9.491153,1.098612,,0 +13,2,0,1,3,226434,0,13241.06,41.13758,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,87.8,3.4,0,96.6,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,96.6,9.491153,1.098612,,0 +13,2,0,1,1,226456,0,12642.23,21.99863,1,14,1,47.97844,41.94609,0,51.21294,0,89.92453,0,0,2,2,0,3,70.7,3.4,0,60.2,450,437,0,0,1.098612,6.079933,1,4.564348,6.160541,1,0,0,60.2,9.444877,1.098612,4.498971,1 +13,2,0,1,2,226456,0,12642.23,22.99863,1,14,1,51.52334,12.23096,0,0,0,63.7543,0,0,0,3,0,3,70.7,3.4,0,60.2,450,437,0,0,1.098612,6.079933,1,4.564348,6.160541,1,0,0,60.2,9.444877,1.098612,4.155036,1 +13,2,0,1,1,226457,0,12642.23,47.48528,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,93.1,6.9,0,97.7,450,437,0,0,1.098612,6.079933,1,4.564348,6.160541,0,0,0,97.7,9.444877,1.098612,,0 +13,2,0,1,2,226457,0,12642.23,48.48528,0,12,1,24.07862,0,0,0,0,24.07862,0,0,0,0,1,3,93.1,6.9,0,97.7,450,437,0,0,1.098612,6.079933,1,4.564348,6.160541,0,0,0,97.7,9.444877,1.098612,3.181324,1 +13,2,0,1,3,226457,0,12642.23,49.48528,0,12,1,24.15679,0,40.22789,0,0,64.38468,0,0,0,2,0,2,93.1,6.9,0,97.7,450,437,0,0,.6931472,6.079933,1,4.564348,6.160541,0,0,0,97.7,9.444877,.6931472,4.164876,1 +13,2,0,1,1,226458,0,12642.23,47.87406,1,13,1,12.39892,0,31.71968,0,0,44.1186,0,0,0,0,1,3,91.5,3.4,0,96.6,450,437,0,0,1.098612,6.079933,1,4.564348,6.160541,0,0,0,96.6,9.444877,1.098612,3.786881,1 +13,2,0,1,2,226458,0,12642.23,48.87406,1,13,1,0,0,0,0,0,0,0,0,0,0,0,3,91.5,3.4,0,96.6,450,437,0,0,1.098612,6.079933,1,4.564348,6.160541,0,0,0,96.6,9.444877,1.098612,,0 +13,2,0,1,3,226458,0,12642.23,49.87406,1,13,1,0,0,0,0,0,0,0,0,0,0,0,2,91.5,3.4,0,96.6,450,437,0,0,.6931472,6.079933,1,4.564348,6.160541,0,0,0,96.6,9.444877,.6931472,,0 +16,2,95,1,1,226459,0,6233.138,29.96304,1,9,1,197.6713,16.01178,0,0,539.4807,753.1638,1,0,0,4,0,2,74.3,10.3,1,85.2,796.8,796.8,0,0,.6931472,6.680604,0,4.564348,6.731897,1,0,0,85.2,8.737796,.6931472,6.624283,1 +16,2,95,1,2,226459,0,6233.138,30.96304,1,9,1,108.5407,9.297218,0,0,1767.472,1885.31,1,0,0,4,0,2,74.3,10.3,1,85.2,796.8,796.8,0,0,.6931472,6.680604,0,4.564348,6.731897,1,0,0,85.2,8.737796,.6931472,7.541848,1 +16,2,95,1,3,226459,0,6233.138,31.96304,1,9,1,0,0,0,0,0,0,0,0,0,0,0,2,74.3,10.3,1,85.2,796.8,796.8,0,0,.6931472,6.680604,0,4.564348,6.731897,1,0,0,85.2,8.737796,.6931472,,0 +16,2,95,1,1,226461,0,6233.138,12.20808,0,9,1,58.43148,3.61349,0,82.36082,0,62.04497,0,0,2,2,0,2,76.7,11.84267,0,88.9,796.8,796.8,1,0,.6931472,6.680604,0,4.564348,6.731897,0,0,0,88.9,8.737796,.6931472,4.12786,1 +16,2,95,1,2,226461,0,6233.138,13.20808,0,9,1,35.01708,5.583211,0,0,0,40.60029,0,0,0,1,0,2,76.7,11.84267,0,88.9,796.8,796.8,1,0,.6931472,6.680604,0,4.564348,6.731897,0,0,0,88.9,8.737796,.6931472,3.703775,1 +16,2,95,1,3,226461,0,6233.138,14.20808,0,9,1,22.7823,0,0,0,0,22.7823,0,0,0,1,0,2,76.7,11.84267,0,88.9,796.8,796.8,1,0,.6931472,6.680604,0,4.564348,6.731897,0,0,0,88.9,8.737796,.6931472,3.125984,1 +11,2,0,0,1,226476,0,197.654,21.94935,0,14,1,269.8518,35.8073,0,0,608.7348,914.3939,1,0,0,13,1,1,73.9,6.9,0,73.9,0,0,0,0,0,0,0,0,0,1,0,0,73.9,5.291564,0,6.818262,1 +11,2,0,0,2,226476,0,197.654,22.94935,0,14,1,55.26062,5.733591,0,0,0,60.99421,0,0,0,7,0,1,73.9,6.9,0,73.9,0,0,0,0,0,0,0,0,0,1,0,0,73.9,5.291564,0,4.110779,1 +11,2,0,0,3,226476,0,197.654,23.94935,0,14,1,86.11482,2.12283,35.3271,0,0,123.5648,0,0,0,5,1,1,73.9,6.9,0,73.9,0,0,0,0,0,0,0,0,0,1,0,0,73.9,5.291564,0,4.816765,1 +16,2,95,0,1,226520,0,10697.95,4.566735,1,13,1,31.26685,15.05121,0,0,0,46.31806,0,0,0,4,0,4,81.35272,11.84267,0,81.5,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,1,0,0,81.5,9.277901,1.386294,3.835532,1 +16,2,95,0,2,226520,0,10697.95,5.566735,1,13,1,61.91646,2.334152,0,0,0,64.25062,0,0,0,2,0,4,81.35272,11.84267,0,81.5,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,1,0,0,81.5,9.277901,1.386294,4.162791,1 +16,2,95,0,3,226520,0,10697.95,6.566735,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,81.35272,11.84267,0,81.5,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,1,0,0,81.5,9.277901,1.386294,,0 +16,2,95,0,1,226521,0,10697.95,36.08487,1,13,1,6.469003,6.026954,0,0,0,12.49596,0,0,0,1,0,4,91,3.4,0,83,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,83,9.277901,1.386294,2.525405,1 +16,2,95,0,2,226521,0,10697.95,37.08487,1,13,1,147.9115,27.39558,7.764128,0,0,183.0713,0,0,0,6,0,4,91,3.4,0,83,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,83,9.277901,1.386294,5.209876,1 +16,2,95,0,3,226521,0,10697.95,38.08487,1,13,1,29.85415,9.106654,0,0,0,38.9608,0,0,0,2,0,4,91,3.4,0,83,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,83,9.277901,1.386294,3.662556,1 +16,2,95,0,1,226522,0,10697.95,30.57906,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,92,6.9,0,85.2,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,85.2,9.277901,1.386294,,0 +16,2,95,0,2,226522,0,10697.95,31.57906,0,11,1,36.85504,12.77641,0,0,0,49.63145,0,0,0,2,0,4,92,6.9,0,85.2,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,85.2,9.277901,1.386294,3.904625,1 +16,2,95,0,3,226522,0,10697.95,32.57906,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,92,6.9,0,85.2,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,85.2,9.277901,1.386294,,0 +16,2,95,0,1,226523,0,10697.95,3.15948,1,13,1,12.85714,0,0,0,0,12.85714,0,0,0,1,0,4,81.35272,11.84267,0,81.5,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,1,0,0,81.5,9.277901,1.386294,2.5539,1 +16,2,95,0,2,226523,0,10697.95,4.15948,1,13,1,6.879607,1.371007,0,0,0,8.250614,0,0,0,1,0,4,81.35272,11.84267,0,81.5,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,1,0,0,81.5,9.277901,1.386294,2.110288,1 +16,2,95,0,3,226523,0,10697.95,5.15948,1,13,1,18.23154,4.412033,0,0,0,22.64357,0,0,0,2,0,4,81.35272,11.84267,0,81.5,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,1,0,0,81.5,9.277901,1.386294,3.119876,1 +14,2,95,1,1,226530,0,8665.641,1.089665,0,16,1,33.19058,1.445396,0,0,0,34.63597,0,0,0,1,0,4,81.35272,11.84267,0,81.5,999.95,216,1,0,1.386294,5.375278,0,4.564348,6.958999,0,0,0,81.5,9.067237,1.386294,3.544893,1 +14,2,95,1,2,226530,0,8665.641,2.089665,0,16,1,34.16301,0,0,0,0,34.16301,0,0,0,2,0,4,81.35272,11.84267,0,81.5,999.95,216,1,0,1.386294,5.375278,0,4.564348,6.958999,0,0,0,81.5,9.067237,1.386294,3.531143,1 +14,2,95,1,3,226530,0,8665.641,3.089665,0,16,1,9.936766,0,0,0,0,9.936766,0,0,0,1,0,4,81.35272,11.84267,0,81.5,999.95,216,1,0,1.386294,5.375278,0,4.564348,6.958999,0,0,0,81.5,9.067237,1.386294,2.296242,1 +14,2,95,1,1,226531,0,8665.641,30.43942,1,16,1,98.50107,0,0,0,0,98.50107,0,0,0,3,0,4,87.2,20.7,0,88.6,999.95,216,0,0,1.386294,5.375278,0,4.564348,6.958999,0,0,0,88.6,9.067237,1.386294,4.590067,1 +14,2,95,1,2,226531,0,8665.641,31.43942,1,16,1,3.416301,0,0,0,0,3.416301,0,0,0,0,0,4,87.2,20.7,0,88.6,999.95,216,0,0,1.386294,5.375278,0,4.564348,6.958999,0,0,0,88.6,9.067237,1.386294,1.228558,1 +14,2,95,1,3,226531,0,8665.641,32.43943,1,16,1,27.10027,0,0,0,0,27.10027,0,0,0,1,0,4,87.2,20.7,0,88.6,999.95,216,0,0,1.386294,5.375278,0,4.564348,6.958999,0,0,0,88.6,9.067237,1.386294,3.299544,1 +14,2,95,1,1,226532,0,8665.641,33.71389,0,22,1,97.4304,21.54711,3.211992,0,0,122.1895,0,0,0,6,0,4,87.2,6.9,0,68.2,999.95,216,0,0,1.386294,5.375278,0,4.564348,6.958999,0,0,0,68.2,9.067237,1.386294,4.805573,1 +14,2,95,1,2,226532,0,8665.641,34.71389,0,22,1,8.29673,0,0,0,0,8.29673,0,0,0,1,0,4,87.2,6.9,0,68.2,999.95,216,0,0,1.386294,5.375278,0,4.564348,6.958999,0,0,0,68.2,9.067237,1.386294,2.115861,1 +14,2,95,1,3,226532,0,8665.641,35.71389,0,22,1,0,0,0,0,0,0,0,0,0,0,0,4,87.2,6.9,0,68.2,999.95,216,0,0,1.386294,5.375278,0,4.564348,6.958999,0,0,0,68.2,9.067237,1.386294,,0 +14,2,95,1,1,226533,0,8665.641,5.80972,0,16,1,146.4668,3.185225,0,0,0,149.652,0,0,0,3,0,4,83.3,11.84267,0,88.9,999.95,216,1,0,1.386294,5.375278,0,4.564348,6.958999,0,0,0,88.9,9.067237,1.386294,5.008313,1 +14,2,95,1,2,226533,0,8665.641,6.80972,0,16,1,8.29673,0,0,0,0,8.29673,0,0,0,1,0,4,83.3,11.84267,0,88.9,999.95,216,1,0,1.386294,5.375278,0,4.564348,6.958999,0,0,0,88.9,9.067237,1.386294,2.115861,1 +14,2,95,1,3,226533,0,8665.641,7.80972,0,16,1,9.936766,0,0,0,0,9.936766,0,0,0,1,0,4,83.3,11.84267,0,88.9,999.95,216,1,0,1.386294,5.375278,0,4.564348,6.958999,0,0,0,88.9,9.067237,1.386294,2.296242,1 +11,2,0,0,1,226551,0,8807.625,17.23477,1,10,1,37.60948,0,31.73107,0,0,69.34055,0,0,0,4,1,4,81.9,6.9,0,61.4,0,58.2,1,1,1.386294,4.063885,0,0,0,1,0,0,61.4,9.083487,1.386294,4.23903,1 +11,2,0,0,2,226551,0,8807.625,18.23477,1,10,1,0,0,0,0,0,0,0,0,0,0,0,4,81.9,6.9,0,61.4,0,58.2,0,0,1.386294,4.063885,0,0,0,1,0,0,61.4,9.083487,1.386294,,0 +11,2,0,0,3,226551,0,8807.625,19.23477,1,10,1,82.57478,0,0,0,0,82.57478,0,0,0,4,1,4,81.9,6.9,0,61.4,0,58.2,0,0,1.386294,4.063885,0,0,0,1,0,0,61.4,9.083487,1.386294,4.413704,1 +11,2,0,0,1,226552,0,8807.625,41.84805,0,3,1,193.1994,8.799588,45.12622,0,0,247.1252,0,0,0,8,2,4,86.2,17.2,0,50,0,58.2,0,0,1.386294,4.063885,0,0,0,1,0,0,50,9.083487,1.386294,5.509895,1 +11,2,0,0,2,226552,0,8807.625,42.84805,0,3,1,13.73106,0,0,0,257.5757,271.3068,1,0,0,1,1,4,86.2,17.2,0,50,0,58.2,0,0,1.386294,4.063885,0,0,0,1,0,0,50,9.083487,1.386294,5.603251,1 +11,2,0,0,3,226552,0,8807.625,43.84805,0,3,1,55.91677,0,51.92024,0,0,107.837,0,0,0,2,1,4,86.2,17.2,0,50,0,58.2,0,0,1.386294,4.063885,0,0,0,1,0,0,50,9.083487,1.386294,4.680621,1 +11,2,0,0,1,226553,0,8807.625,35.0527,1,10,1,124.9356,25.69294,35.33746,0,0,185.966,0,0,0,10,2,4,93.1,13.8,0,83,0,58.2,0,0,1.386294,4.063885,0,0,0,1,0,0,83,9.083487,1.386294,5.225564,1 +11,2,0,0,2,226553,0,8807.625,36.0527,1,10,1,295.2178,3.101326,0,0,0,298.3191,0,0,0,7,1,4,93.1,13.8,0,83,0,58.2,0,0,1.386294,4.063885,0,0,0,1,0,0,83,9.083487,1.386294,5.698164,1 +11,2,0,0,3,226553,0,8807.625,37.0527,1,10,1,84.95882,7.498916,33.28132,0,0,125.7391,0,0,0,7,1,4,93.1,13.8,0,83,0,58.2,0,0,1.386294,4.063885,0,0,0,1,0,0,83,9.083487,1.386294,4.834209,1 +11,2,0,1,1,226554,0,13850.44,14.44216,0,10,1,32.02753,10.50291,0,0,279.6718,322.2022,1,0,0,3,0,6,72.9,6.9,0,79.5,0,935.4,1,0,1.791759,6.840974,0,0,0,0,0,0,79.5,9.536144,1.791759,5.775179,1 +11,2,0,1,2,226554,0,13850.44,15.44216,0,10,1,92.18147,0,0,0,0,92.18147,0,0,0,1,6,6,72.9,6.9,0,79.5,0,935.4,1,0,1.791759,6.840974,0,0,0,0,0,0,79.5,9.536144,1.791759,4.523759,1 +11,2,0,1,3,226554,0,13850.44,16.44216,0,10,1,261.571,11.59324,0,40.05341,0,273.1642,0,0,2,4,2,6,72.9,6.9,0,79.5,0,935.4,1,0,1.791759,6.840974,0,0,0,0,0,0,79.5,9.536144,1.791759,5.610073,1 +11,2,0,1,1,226555,0,13850.44,45.03217,1,10,1,211.2229,63.34039,0,0,0,274.5633,0,0,0,2,0,6,67,24.1,0,72.7,0,935.4,0,0,1.791759,6.840974,0,0,0,0,0,0,72.7,9.536144,1.791759,5.615182,1 +11,2,0,1,2,226555,0,13850.44,46.03217,1,10,1,30.64672,59.43533,40.63224,0,0,130.7143,0,0,0,2,0,6,67,24.1,0,72.7,0,935.4,0,0,1.791759,6.840974,0,0,0,0,0,0,72.7,9.536144,1.791759,4.873014,1 +11,2,0,1,3,226555,0,13850.44,47.03217,1,10,1,86.55986,51.40187,0,0,0,137.9617,0,0,0,3,0,6,67,24.1,0,72.7,0,935.4,0,0,1.791759,6.840974,0,0,0,0,0,0,72.7,9.536144,1.791759,4.926976,1 +11,2,0,1,1,226556,0,13850.44,12.3614,1,10,1,41.82107,1.561673,0,0,0,43.38274,0,0,0,2,0,6,71.7,11.84267,0,74.1,0,935.4,1,1,1.791759,6.840974,0,0,0,0,0,0,74.1,9.536144,1.791759,3.770062,1 +11,2,0,1,2,226556,0,13850.44,13.3614,1,10,1,58.39768,0,36.4334,0,0,94.83108,0,0,0,4,0,6,71.7,11.84267,0,74.1,0,935.4,1,1,1.791759,6.840974,0,0,0,0,0,0,74.1,9.536144,1.791759,4.552097,1 +11,2,0,1,3,226556,0,13850.44,14.3614,1,10,1,66.31064,3.18202,0,0,0,69.49266,0,0,0,4,0,6,71.7,11.84267,0,74.1,0,935.4,1,1,1.791759,6.840974,0,0,0,0,0,0,74.1,9.536144,1.791759,4.241221,1 +11,2,0,1,1,226558,0,13850.44,4.377823,0,10,1,0,1.900476,0,0,0,1.900476,0,0,0,0,0,6,81.35272,11.84267,0,96.3,0,935.4,1,0,1.791759,6.840974,0,0,0,0,0,0,96.3,9.536144,1.791759,.6421046,1 +11,2,0,1,2,226558,0,13850.44,5.377823,0,10,1,27.50965,5.067567,0,0,0,32.57722,0,0,0,3,0,6,81.35272,11.84267,0,96.3,0,935.4,1,0,1.791759,6.840974,0,0,0,0,0,0,96.3,9.536144,1.791759,3.483613,1 +11,2,0,1,3,226558,0,13850.44,6.377823,0,10,1,8.010681,0,0,0,0,8.010681,0,0,0,1,0,6,81.35272,11.84267,0,96.3,0,935.4,1,0,1.791759,6.840974,0,0,0,0,0,0,96.3,9.536144,1.791759,2.080776,1 +11,2,0,1,1,226559,0,13850.44,10.28884,0,10,1,17.46956,11.30228,0,0,0,28.77184,0,0,0,2,0,6,86.7,11.84267,0,96.3,0,935.4,1,0,1.791759,6.840974,0,0,0,0,0,0,96.3,9.536144,1.791759,3.359397,1 +11,2,0,1,2,226559,0,13850.44,11.28884,0,10,1,100.0241,0,31.18726,0,0,131.2114,0,0,0,4,0,6,86.7,11.84267,0,96.3,0,935.4,1,0,1.791759,6.840974,0,0,0,0,0,0,96.3,9.536144,1.791759,4.87681,1 +11,2,0,1,3,226559,0,13850.44,12.28884,0,10,1,14.24121,1.624388,0,0,0,15.8656,0,0,0,1,0,6,86.7,11.84267,0,96.3,0,935.4,1,0,1.791759,6.840974,0,0,0,0,0,0,96.3,9.536144,1.791759,2.764153,1 +11,2,0,1,1,226560,0,13850.44,46.20671,0,8,1,84.30386,21.32345,0,0,0,105.6273,0,0,0,2,0,6,56.9,13.8,.1981873,65.9,0,935.4,0,0,1.791759,6.840974,0,0,0,0,0,0,65.9,9.536144,1.791759,4.659917,1 +11,2,0,1,2,226560,0,13850.44,47.20671,0,8,1,54.05405,4.295367,57.76545,0,0,116.1149,0,0,0,2,0,6,56.9,13.8,.1981873,65.9,0,935.4,0,0,1.791759,6.840974,0,0,0,0,0,0,65.9,9.536144,1.791759,4.75458,1 +11,2,0,1,3,226560,0,13850.44,48.20671,0,8,1,24.47708,8.077436,0,0,0,32.55452,0,0,0,1,0,6,56.9,13.8,.1981873,65.9,0,935.4,0,0,1.791759,6.840974,0,0,0,0,0,0,65.9,9.536144,1.791759,3.482916,1 +11,2,0,1,1,226563,0,4079.179,37.61259,0,13,1,111.0814,119.4593,0,0,570.7977,801.3383,1,0,0,11,0,1,78.2,10.3,0,95.5,0,0,0,0,0,0,0,0,0,0,0,0,95.5,8.313896,0,6.686283,1 +11,2,0,1,2,226563,0,4079.179,38.61259,0,13,1,165.4466,96.19327,0,0,0,261.6398,0,0,0,9,0,1,78.2,10.3,0,95.5,0,0,0,0,0,0,0,0,0,0,0,0,95.5,8.313896,0,5.566969,1 +11,2,0,1,3,226563,0,4079.179,39.61259,0,13,1,62.7823,37.60163,1.878952,0,429.7426,532.0054,1,0,0,6,0,1,78.2,10.3,0,95.5,0,0,0,0,0,0,0,0,0,0,0,0,95.5,8.313896,0,6.276654,1 +18,2,25,0,1,226572,0,4642.815,26.31622,1,12,1,96.78801,152.8854,0,0,0,249.6734,0,0,0,7,0,1,43.1,24.1,0,51.1,715.1,715.1,0,0,0,6.572423,0,3.258096,7.958717,1,0,0,51.1,8.443292,0,5.520154,1 +18,2,25,0,2,226572,0,4642.815,27.31622,1,12,1,298.3895,158.1113,0,0,0,456.5007,0,0,0,9,0,1,43.1,24.1,0,51.1,715.1,715.1,0,0,0,6.572423,0,3.258096,7.958717,1,0,0,51.1,8.443292,0,6.12359,1 +18,2,25,0,3,226572,0,4642.815,28.31622,1,12,1,165.6052,221.0795,0,0,0,386.6847,0,0,0,9,0,1,43.1,24.1,0,51.1,715.1,715.1,0,0,0,6.572423,0,3.258096,7.958717,1,0,0,51.1,8.443292,0,5.95761,1 +13,2,0,1,1,226573,0,2107.918,19.75359,1,12,1,90.8728,5.497605,35.97126,0,0,132.3417,0,0,0,5,1,2,85.6,3.4,0,85.2,300,0,0,0,.6931472,0,1,4.564348,5.755076,0,0,0,85.2,7.65393,.6931472,4.885387,1 +13,2,0,1,2,226573,0,2107.918,20.75359,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,85.6,3.4,0,85.2,300,0,0,0,.6931472,0,1,4.564348,5.755076,0,0,0,85.2,7.65393,.6931472,,0 +13,2,0,1,3,226573,0,2107.918,21.75359,1,12,1,48.51752,0,38.08625,0,0,86.60378,0,0,0,3,1,2,85.6,3.4,0,85.2,300,0,0,0,.6931472,0,1,4.564348,5.755076,0,0,0,85.2,7.65393,.6931472,4.461343,1 +13,2,0,1,1,226574,0,2107.918,23.09925,0,11,1,11.97445,0,0,0,0,11.97445,0,0,0,1,0,2,82.4,3.4,0,81.8,300,0,0,0,.6931472,0,1,4.564348,5.755076,0,0,0,81.8,7.65393,.6931472,2.482776,1 +13,2,0,1,2,226574,0,2107.918,24.09925,0,11,1,0,0,0,0,0,0,0,0,0,0,0,2,82.4,3.4,0,81.8,300,0,0,0,.6931472,0,1,4.564348,5.755076,0,0,0,81.8,7.65393,.6931472,,0 +13,2,0,1,3,226574,0,2107.918,25.09925,0,11,1,11.23091,0,0,0,0,11.23091,0,0,0,1,0,2,82.4,3.4,0,81.8,300,0,0,0,.6931472,0,1,4.564348,5.755076,0,0,0,81.8,7.65393,.6931472,2.418669,1 +17,2,25,0,1,226575,0,2067.449,20.94182,1,12,1,28.81402,9.2938,40.56065,0,505.3154,583.9838,1,0,0,2,0,2,80.9,10.3,0,81.8,324.3,0,0,0,.6931472,0,0,3.258096,7.167964,1,0,0,81.8,7.634554,.6931472,6.369874,1 +17,2,25,0,2,226575,0,2067.449,21.94182,1,12,1,17.98526,15.62162,0,0,0,33.60688,0,0,0,3,0,3,80.9,10.3,0,81.8,324.3,0,0,0,1.098612,0,0,3.258096,7.167964,1,0,0,81.8,7.634554,1.098612,3.514731,1 +17,2,25,0,3,226575,0,2067.449,22.94182,1,12,1,39.53965,12.46582,30.94804,0,483.8149,566.7684,1,0,0,2,0,3,80.9,10.3,0,81.8,324.3,0,0,0,1.098612,0,0,3.258096,7.167964,1,0,0,81.8,7.634554,1.098612,6.339951,1 +17,2,25,0,1,226576,0,2067.449,22.02875,0,12,1,5.390836,3.202156,0,0,0,8.592992,0,0,0,1,0,2,81.9,3.4,0,85.2,324.3,0,0,0,.6931472,0,0,3.258096,7.167964,0,0,0,85.2,7.634554,.6931472,2.150947,1 +17,2,25,0,2,226576,0,2067.449,23.02875,0,12,1,26.33907,18.25553,0,0,0,44.59459,0,0,0,3,0,3,81.9,3.4,0,85.2,324.3,0,0,0,1.098612,0,0,3.258096,7.167964,0,0,0,85.2,7.634554,1.098612,3.797613,1 +17,2,25,0,3,226576,0,2067.449,24.02875,0,12,1,147.7165,5.209663,0,0,0,152.9262,0,0,0,4,0,3,81.9,3.4,0,85.2,324.3,0,0,0,1.098612,0,0,3.258096,7.167964,0,0,0,85.2,7.634554,1.098612,5.029955,1 +11,2,0,1,1,226580,0,9224.634,44.89801,0,16,1,33.71968,21.04582,0,0,167.8652,222.6307,1,0,0,3,0,4,98.4,3.4,0,85.2,0,0,0,0,1.386294,0,0,0,0,0,0,0,85.2,9.129741,1.386294,5.405514,1 +11,2,0,1,2,226580,0,9224.634,45.89801,0,16,1,70.83538,9.390663,42.39312,0,0,122.6192,0,0,0,5,0,4,98.4,3.4,0,85.2,0,0,0,0,1.386294,0,0,0,0,0,0,0,85.2,9.129741,1.386294,4.809083,1 +11,2,0,1,3,226580,0,9224.634,46.89801,0,16,1,10.71103,4.680948,0,0,0,15.39198,0,0,0,1,0,4,98.4,3.4,0,85.2,0,0,0,0,1.386294,0,0,0,0,0,0,0,85.2,9.129741,1.386294,2.733846,1 +11,2,0,1,4,226580,0,9224.634,47.89801,0,16,1,55.43977,20.15423,0,0,0,75.59399,0,0,0,6,0,4,98.4,3.4,0,85.2,0,0,0,0,1.386294,0,0,0,0,0,0,0,85.2,9.129741,1.386294,4.325377,1 +11,2,0,1,5,226580,0,9224.634,48.89801,0,16,1,185.6714,14.22731,43.61591,0,0,243.5146,0,0,0,23,0,4,98.4,3.4,0,85.2,0,0,0,0,1.386294,0,0,0,0,0,0,0,85.2,9.129741,1.386294,5.495177,1 +11,2,0,1,1,226581,0,9224.634,13.61533,0,12,1,11.75202,0,0,0,0,11.75202,0,0,0,1,0,4,93.3,11.84267,0,77.8,0,0,1,0,1.386294,0,0,0,0,0,0,0,77.8,9.129741,1.386294,2.464025,1 +11,2,0,1,2,226581,0,9224.634,14.61533,0,12,1,26.04423,0,33.98526,0,0,60.02948,0,0,0,2,0,4,93.3,11.84267,0,77.8,0,0,1,0,1.386294,0,0,0,0,0,0,0,77.8,9.129741,1.386294,4.094836,1 +11,2,0,1,3,226581,0,9224.634,15.61533,0,12,1,54.01094,17.75752,0,0,0,71.76846,0,0,0,9,0,4,93.3,11.84267,0,77.8,0,0,1,0,1.386294,0,0,0,0,0,0,0,77.8,9.129741,1.386294,4.273445,1 +11,2,0,1,4,226581,0,9224.634,16.61533,0,12,1,85.55648,13.62234,0,0,0,99.17883,0,0,0,6,0,4,93.3,11.84267,0,77.8,0,0,1,0,1.386294,0,0,0,0,0,0,0,77.8,9.129741,1.386294,4.596924,1 +11,2,0,1,5,226581,0,9224.634,17.61533,0,12,1,30.3826,11.86047,33.67592,0,0,75.91898,0,0,0,3,0,4,93.3,11.84267,0,77.8,0,0,1,0,1.386294,0,0,0,0,0,0,0,77.8,9.129741,1.386294,4.329667,1 +11,2,0,1,1,226582,0,9224.634,9.634497,0,12,1,0,1.827493,0,0,0,1.827493,0,0,0,0,0,4,87.3,11.84267,0,92.6,0,0,1,0,1.386294,0,0,0,0,0,0,0,92.6,9.129741,1.386294,.6029453,1 +11,2,0,1,2,226582,0,9224.634,10.6345,0,12,1,5.896806,4.732187,0,0,0,10.62899,0,0,0,1,0,4,87.3,11.84267,0,92.6,0,0,1,0,1.386294,0,0,0,0,0,0,0,92.6,9.129741,1.386294,2.363585,1 +11,2,0,1,3,226582,0,9224.634,11.6345,0,12,1,52.87147,7.092069,0,0,0,59.96354,0,0,0,3,0,4,87.3,11.84267,0,92.6,0,0,1,0,1.386294,0,0,0,0,0,0,0,92.6,9.129741,1.386294,4.093737,1 +11,2,0,1,4,226582,0,9224.634,12.6345,0,12,1,60.52939,5.081284,0,0,0,65.61067,0,0,0,6,0,4,87.3,11.84267,0,92.6,0,0,1,0,1.386294,0,0,0,0,0,0,0,92.6,9.129741,1.386294,4.183738,1 +11,2,0,1,5,226582,0,9224.634,13.6345,0,12,1,111.9655,52.5919,30.30008,0,0,194.8575,0,0,0,11,0,4,87.3,11.84267,0,92.6,0,0,1,0,1.386294,0,0,0,0,0,0,0,92.6,9.129741,1.386294,5.272268,1 +11,2,0,1,1,226583,0,9224.634,45.73854,1,12,1,104.8787,51.93531,28.7062,0,0,185.5202,0,0,0,11,0,4,97.3,20.7,0,78.4,0,0,0,0,1.386294,0,0,0,0,0,0,0,78.4,9.129741,1.386294,5.223164,1 +11,2,0,1,2,226583,0,9224.634,46.73854,1,12,1,26.04423,50.04423,0,0,0,76.08846,0,0,0,2,0,4,97.3,20.7,0,78.4,0,0,0,0,1.386294,0,0,0,0,0,0,0,78.4,9.129741,1.386294,4.331897,1 +11,2,0,1,3,226583,0,9224.634,47.73854,1,12,1,54.23883,34.92707,29.45305,0,0,118.619,0,0,0,4,0,4,97.3,20.7,0,78.4,0,0,0,0,1.386294,0,0,0,0,0,0,0,78.4,9.129741,1.386294,4.775916,1 +11,2,0,1,4,226583,0,9224.634,48.73854,1,12,1,179.4498,45.45644,.5669029,0,0,225.4731,0,0,0,13,0,4,97.3,20.7,0,78.4,0,0,0,0,1.386294,0,0,0,0,0,0,0,78.4,9.129741,1.386294,5.418201,1 +11,2,0,1,5,226583,0,9224.634,49.73854,1,12,1,124.5311,42.06676,37.05176,0,82.55814,286.2078,1,0,0,18,0,4,97.3,20.7,0,78.4,0,0,0,0,1.386294,0,0,0,0,0,0,0,78.4,9.129741,1.386294,5.656718,1 +11,2,0,0,1,226589,0,3387.097,47.10472,1,9,1,105.455,16.52475,0,0,0,121.9798,0,0,0,4,1,3,67,10.3,0,59.1,0,0,0,0,1.098612,0,0,0,0,0,0,0,59.1,8.128023,1.098612,4.803855,1 +11,2,0,0,2,226589,0,3387.097,48.10472,1,9,1,64.46922,0,40.19389,0,0,104.6631,0,0,0,2,1,3,67,10.3,0,59.1,0,0,0,0,1.098612,0,0,0,0,0,0,0,59.1,8.128023,1.098612,4.650747,1 +11,2,0,0,3,226589,0,3387.097,49.10472,1,9,1,43.80054,0,23.36029,0,0,67.16083,0,0,0,1,1,3,67,10.3,0,59.1,0,0,0,0,1.098612,0,0,0,0,0,0,0,59.1,8.128023,1.098612,4.20709,1 +11,2,0,0,1,226590,0,3387.097,16.45175,0,9,1,37.78606,14.31613,0,0,0,52.10218,0,0,0,4,0,3,81.4,0,0,67,0,0,1,0,1.098612,0,0,0,0,0,1,0,67,8.128023,1.098612,3.953207,1 +11,2,0,0,2,226590,0,3387.097,17.45175,0,9,1,65.92342,7.275812,0,0,0,73.19923,0,0,0,3,0,3,81.4,0,0,67,0,0,1,0,1.098612,0,0,0,0,0,1,0,67,8.128023,1.098612,4.293185,1 +11,2,0,0,3,226590,0,3387.097,18.45175,0,9,1,77.26865,13.86792,0,0,0,91.13657,0,0,0,4,0,3,81.4,0,0,67,0,0,0,0,1.098612,0,0,0,0,0,1,0,67,8.128023,1.098612,4.512359,1 +11,2,0,0,1,226597,0,3651.613,23.3128,0,10,1,147.2326,0,0,0,0,147.2326,0,0,0,4,0,3,81.9,17.2,0,67.9,0,0,0,0,1.098612,0,0,0,0,1,0,0,67.9,8.203198,1.098612,4.992013,1 +11,2,0,0,2,226597,0,3651.613,24.3128,0,10,1,41.20213,2.787203,0,0,0,43.98933,0,0,0,2,0,4,81.9,17.2,0,67.9,0,0,0,0,1.386294,0,0,0,0,1,0,0,67.9,8.203198,1.386294,3.783947,1 +11,2,0,0,3,226597,0,3651.613,25.3128,0,10,1,147.929,0,0,0,0,147.929,0,0,0,5,0,4,81.9,17.2,0,67.9,0,0,0,0,1.386294,0,0,0,0,1,0,0,67.9,8.203198,1.386294,4.996733,1 +11,2,0,0,1,226598,0,3651.613,24.18617,1,12,1,18.41405,0,41.07504,0,286.5088,345.9979,1,0,0,1,0,3,76.1,10.3,0,86.4,0,0,0,0,1.098612,0,0,0,0,1,0,0,86.4,8.203198,1.098612,5.846433,1 +11,2,0,0,2,226598,0,3651.613,25.18617,1,12,1,16.96558,0,0,0,0,16.96558,0,0,0,1,0,4,76.1,10.3,0,86.4,0,0,0,0,1.386294,0,0,0,0,1,0,0,86.4,8.203198,1.386294,2.831187,1 +11,2,0,0,3,226598,0,3651.613,26.18617,1,12,1,45.59748,0,0,0,0,45.59748,0,0,0,2,0,4,76.1,10.3,0,86.4,0,0,0,0,1.386294,0,0,0,0,1,0,0,86.4,8.203198,1.386294,3.819853,1 +11,2,0,1,1,226608,0,8465.103,25.99042,0,8,1,171.4286,33.48248,33.20216,0,0,238.1132,0,0,0,8,1,4,59.6,6.9,1,43.2,0,0,0,0,1.386294,0,0,0,0,0,0,0,43.2,9.043825,1.386294,5.472746,1 +11,2,0,1,2,226608,0,8465.103,26.99042,0,8,1,20.14742,23.10074,0,0,0,43.24816,0,0,0,3,0,4,59.6,6.9,1,43.2,0,0,0,0,1.386294,0,0,0,0,0,0,0,43.2,9.043825,1.386294,3.766955,1 +11,2,0,1,3,226608,0,8465.103,27.99042,0,8,1,112.124,30.30994,0,0,0,142.4339,0,0,0,5,0,4,59.6,6.9,1,43.2,0,0,0,0,1.386294,0,0,0,0,0,0,0,43.2,9.043825,1.386294,4.958878,1 +11,2,0,1,1,226609,0,8465.103,5.144422,1,11,1,30.72776,11.44474,0,0,0,42.17251,0,0,0,3,0,4,51.7,11.84267,0,40.7,0,0,1,1,1.386294,0,0,0,0,1,0,0,40.7,9.043825,1.386294,3.741769,1 +11,2,0,1,2,226609,0,8465.103,6.144422,1,11,1,72.35872,8.948403,0,0,1045.479,1126.786,1,0,0,4,0,4,51.7,11.84267,0,40.7,0,0,1,1,1.386294,0,0,0,0,1,0,0,40.7,9.043825,1.386294,7.027125,1 +11,2,0,1,3,226609,0,8465.103,7.144422,1,11,1,5.469462,0,0,0,0,5.469462,0,0,0,1,0,4,51.7,11.84267,0,40.7,0,0,1,1,1.386294,0,0,0,0,1,0,0,40.7,9.043825,1.386294,1.69918,1 +11,2,0,1,1,226610,0,8465.103,2.160164,1,11,1,135.31,27.20216,0,0,0,162.5121,0,0,0,10,0,4,81.35272,11.84267,0,3.7,0,0,1,1,1.386294,0,0,0,0,0,1,0,3.7,9.043825,1.386294,5.090753,1 +11,2,0,1,2,226610,0,8465.103,3.160164,1,11,1,64.37347,30.63391,0,0,0,95.00737,0,0,0,7,0,4,81.35272,11.84267,0,3.7,0,0,1,1,1.386294,0,0,0,0,0,1,0,3.7,9.043825,1.386294,4.553955,1 +11,2,0,1,3,226610,0,8465.103,4.160164,1,11,1,109.6171,13.55971,0,0,0,123.1768,0,0,0,6,0,4,81.35272,11.84267,0,3.7,0,0,1,1,1.386294,0,0,0,0,0,1,0,3.7,9.043825,1.386294,4.813621,1 +11,2,0,1,1,226611,0,8465.103,24.04381,1,11,1,324.1509,172.4043,43.98383,0,1084.34,1624.879,2,0,0,17,2,4,41.5,34.5,1,30.7,0,0,0,0,1.386294,0,0,0,0,0,1,0,30.7,9.043825,1.386294,7.393188,1 +11,2,0,1,2,226611,0,8465.103,25.04381,1,11,1,165.8477,230.2998,0,0,0,396.1474,0,0,0,19,0,4,41.5,34.5,1,30.7,0,0,0,0,1.386294,0,0,0,0,0,1,0,30.7,9.043825,1.386294,5.981786,1 +11,2,0,1,3,226611,0,8465.103,26.04381,1,11,1,151.9827,178.7283,0,0,0,330.711,0,0,0,13,0,4,41.5,34.5,1,30.7,0,0,0,0,1.386294,0,0,0,0,0,1,0,30.7,9.043825,1.386294,5.801245,1 +11,2,0,1,1,226634,0,12231.67,53.73854,0,16,1,134.4627,100.5294,0,37.05664,0,234.9921,0,0,2,6,8,2,83,10.3,0,55.7,0,99.4,0,0,.6931472,4.599152,0,0,0,0,0,0,55.7,9.411865,.6931472,5.459552,1 +11,2,0,1,2,226634,0,12231.67,54.73854,0,16,1,54.53668,0,58.67278,392.1332,0,113.2095,0,0,32,2,7,2,83,10.3,0,55.7,0,99.4,0,0,.6931472,4.599152,0,0,0,0,0,0,55.7,9.411865,.6931472,4.72924,1 +11,2,0,1,3,226634,0,12231.67,55.73854,0,16,1,233.6226,23.32443,0,240.3204,484.9355,741.8825,1,0,24,7,2,2,83,10.3,0,55.7,0,99.4,0,0,.6931472,4.599152,0,0,0,0,0,0,55.7,9.411865,.6931472,6.609191,1 +11,2,0,1,1,226635,0,12231.67,48.32581,1,12,1,79.4071,86.87136,54.52091,63.52568,0,220.7994,0,0,3,4,0,2,72.9,17.2,1,63.6,0,99.4,0,0,.6931472,4.599152,0,0,0,0,1,0,63.6,9.411865,.6931472,5.397254,1 +11,2,0,1,2,226635,0,12231.67,49.32581,1,12,1,114.3822,92.49517,0,361.9691,0,206.8774,0,0,30,6,0,2,72.9,17.2,1,63.6,0,99.4,0,0,.6931472,4.599152,0,0,0,0,1,0,63.6,9.411865,.6931472,5.332127,1 +11,2,0,1,3,226635,0,12231.67,50.32581,1,12,1,91.23276,39.55496,0,300.4005,0,130.7877,0,0,27,4,0,2,72.9,17.2,1,63.6,0,99.4,0,0,.6931472,4.599152,0,0,0,0,1,0,63.6,9.411865,.6931472,4.873576,1 +13,2,0,1,1,226654,0,7791.202,43.89322,1,10,1,5.32198,25.76903,0,0,0,31.09101,0,0,0,1,0,2,71.8,27.6,0,77.3,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,77.3,8.960878,.6931472,3.436918,1 +13,2,0,1,2,226654,0,7791.202,44.89322,1,10,1,64.46922,22.56423,49.41832,0,0,136.4518,0,0,0,8,0,2,71.8,27.6,0,77.3,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,77.3,8.960878,.6931472,4.915971,1 +13,2,0,1,3,226654,0,7791.202,45.89322,1,10,1,16.84636,3.063792,0,0,0,19.91015,0,0,0,2,0,2,71.8,27.6,0,77.3,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,77.3,8.960878,.6931472,2.99123,1 +13,2,0,1,1,226655,0,7791.202,49.58795,0,11,1,0,45.9074,0,0,0,45.9074,0,0,0,0,0,2,83,17.2,0,67,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,67,8.960878,.6931472,3.826626,1 +13,2,0,1,2,226655,0,7791.202,50.58795,0,11,1,88.4634,53.61609,0,0,0,142.0795,0,0,0,4,0,2,83,17.2,0,67,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,67,8.960878,.6931472,4.956387,1 +13,2,0,1,3,226655,0,7791.202,51.58795,0,11,1,26.05571,86.48697,47.10242,0,0,159.6451,0,0,0,3,0,2,83,17.2,0,67,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,67,8.960878,.6931472,5.072953,1 +14,2,95,1,1,226665,0,10747.8,10.54073,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,73.3,11.84267,0,77.8,725.25,452.58,1,0,1.609438,6.114964,0,4.564348,6.63781,0,0,0,77.8,9.28255,1.609438,,0 +14,2,95,1,2,226665,0,10747.8,11.54073,0,12,1,15.99612,0,37.11585,0,0,53.11197,0,0,0,1,0,5,73.3,11.84267,0,77.8,725.25,452.58,1,0,1.609438,6.114964,0,4.564348,6.63781,0,0,0,77.8,9.28255,1.609438,3.972402,1 +14,2,95,1,3,226665,0,10747.8,12.54073,0,12,1,17.07098,0,0,0,0,17.07098,0,0,0,1,0,5,73.3,11.84267,0,77.8,725.25,452.58,1,0,1.609438,6.114964,0,4.564348,6.63781,0,0,0,77.8,9.28255,1.609438,2.83738,1 +14,2,95,1,4,226665,0,10747.8,13.54073,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,73.3,11.84267,0,77.8,725.25,452.58,1,0,1.609438,6.114964,0,4.564348,6.63781,0,0,0,77.8,9.28255,1.609438,,0 +14,2,95,1,5,226665,0,10747.8,14.54073,0,12,1,14.78197,0,21.0643,0,0,35.84627,0,0,0,1,0,5,73.3,11.84267,0,77.8,725.25,452.58,1,0,1.609438,6.114964,0,4.564348,6.63781,0,0,0,77.8,9.28255,1.609438,3.579239,1 +14,2,95,1,1,226666,0,10747.8,11.95893,1,12,1,81.95849,0,16.76424,0,0,98.72272,0,0,0,13,0,5,71.7,11.84267,0,85.2,725.25,452.58,1,1,1.609438,6.114964,0,4.564348,6.63781,0,0,0,85.2,9.28255,1.609438,4.592315,1 +14,2,95,1,2,226666,0,10747.8,12.95893,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,71.7,11.84267,0,85.2,725.25,452.58,1,1,1.609438,6.114964,0,4.564348,6.63781,0,0,0,85.2,9.28255,1.609438,,0 +14,2,95,1,3,226666,0,10747.8,13.95893,1,12,1,17.07098,0,14.72597,0,0,31.79695,0,0,0,1,0,5,71.7,11.84267,0,85.2,725.25,452.58,1,1,1.609438,6.114964,0,4.564348,6.63781,0,0,0,85.2,9.28255,1.609438,3.45937,1 +14,2,95,1,4,226666,0,10747.8,14.95893,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,71.7,11.84267,0,85.2,725.25,452.58,1,1,1.609438,6.114964,0,4.564348,6.63781,0,0,0,85.2,9.28255,1.609438,,0 +14,2,95,1,5,226666,0,10747.8,15.95893,1,12,1,0,0,15.83888,0,0,15.83888,0,0,0,0,0,5,71.7,11.84267,0,85.2,725.25,452.58,1,1,1.609438,6.114964,0,4.564348,6.63781,0,0,0,85.2,9.28255,1.609438,2.762467,1 +14,2,95,1,1,226667,0,10747.8,34.52703,0,15,1,0,0,0,0,0,0,0,0,0,0,0,5,73.9,3.4,0,85.2,725.25,452.58,0,0,1.609438,6.114964,0,4.564348,6.63781,1,0,0,85.2,9.28255,1.609438,,0 +14,2,95,1,2,226667,0,10747.8,35.52703,0,15,1,0,0,0,0,0,0,0,0,0,0,0,5,73.9,3.4,0,85.2,725.25,452.58,0,0,1.609438,6.114964,0,4.564348,6.63781,1,0,0,85.2,9.28255,1.609438,,0 +14,2,95,1,3,226667,0,10747.8,36.52703,0,15,1,0,0,0,0,0,0,0,0,0,0,0,5,73.9,3.4,0,85.2,725.25,452.58,0,0,1.609438,6.114964,0,4.564348,6.63781,1,0,0,85.2,9.28255,1.609438,,0 +14,2,95,1,4,226667,0,10747.8,37.52703,0,15,1,0,0,0,0,0,0,0,0,0,0,0,5,73.9,3.4,0,85.2,725.25,452.58,0,0,1.609438,6.114964,0,4.564348,6.63781,1,0,0,85.2,9.28255,1.609438,,0 +14,2,95,1,5,226667,0,10747.8,38.52703,0,15,1,0,0,0,0,0,0,0,0,0,0,0,5,73.9,3.4,0,85.2,725.25,452.58,0,0,1.609438,6.114964,0,4.564348,6.63781,1,0,0,85.2,9.28255,1.609438,,0 +14,2,95,1,1,226668,0,10747.8,30.80082,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,60.6,10.3,0,72.7,725.25,452.58,0,0,1.609438,6.114964,0,4.564348,6.63781,0,0,0,72.7,9.28255,1.609438,,0 +14,2,95,1,2,226668,0,10747.8,31.80082,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,60.6,10.3,0,72.7,725.25,452.58,0,0,1.609438,6.114964,0,4.564348,6.63781,0,0,0,72.7,9.28255,1.609438,,0 +14,2,95,1,3,226668,0,10747.8,32.80082,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,60.6,10.3,0,72.7,725.25,452.58,0,0,1.609438,6.114964,0,4.564348,6.63781,0,0,0,72.7,9.28255,1.609438,,0 +14,2,95,1,4,226668,0,10747.8,33.80082,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,60.6,10.3,0,72.7,725.25,452.58,0,0,1.609438,6.114964,0,4.564348,6.63781,0,0,0,72.7,9.28255,1.609438,,0 +14,2,95,1,5,226668,0,10747.8,34.80082,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,60.6,10.3,0,72.7,725.25,452.58,0,0,1.609438,6.114964,0,4.564348,6.63781,0,0,0,72.7,9.28255,1.609438,,0 +14,2,95,1,1,226669,0,10747.8,13.00205,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,76.7,11.84267,0,88.9,725.25,452.58,1,0,1.609438,6.114964,0,4.564348,6.63781,0,0,0,88.9,9.28255,1.609438,,0 +14,2,95,1,2,226669,0,10747.8,14.00205,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,76.7,11.84267,0,88.9,725.25,452.58,1,0,1.609438,6.114964,0,4.564348,6.63781,0,0,0,88.9,9.28255,1.609438,,0 +14,2,95,1,3,226669,0,10747.8,15.00205,0,12,1,30.54807,0,34.39802,0,0,64.94609,0,0,0,2,0,5,76.7,11.84267,0,88.9,725.25,452.58,1,0,1.609438,6.114964,0,4.564348,6.63781,0,0,0,88.9,9.28255,1.609438,4.173558,1 +14,2,95,1,4,226669,0,10747.8,16.00205,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,76.7,11.84267,0,88.9,725.25,452.58,1,0,1.609438,6.114964,0,4.564348,6.63781,0,0,0,88.9,9.28255,1.609438,,0 +14,2,95,1,5,226669,0,10747.8,17.00205,0,12,1,16.62971,0,36.19734,0,0,52.82705,0,0,0,1,0,5,76.7,11.84267,0,88.9,725.25,452.58,1,0,1.609438,6.114964,0,4.564348,6.63781,0,0,0,88.9,9.28255,1.609438,3.967023,1 +11,2,0,1,1,226677,0,13673.9,16.39699,0,15,1,6.881948,2.964531,0,0,0,9.846479,0,0,0,1,0,5,77.1,0,0,95.5,0,96,1,0,1.609438,4.564348,0,0,0,0,0,0,95.5,9.523317,1.609438,2.287114,1 +11,2,0,1,2,226677,0,13673.9,17.39699,0,15,1,6.756757,0,0,0,0,6.756757,0,0,0,1,0,5,77.1,0,0,95.5,0,96,1,0,1.609438,4.564348,0,0,0,0,0,0,95.5,9.523317,1.609438,1.910543,1 +11,2,0,1,3,226677,0,13673.9,18.39699,0,15,1,6.675568,0,0,0,0,6.675568,0,0,0,1,0,5,77.1,0,0,95.5,0,96,0,0,1.609438,4.564348,0,0,0,0,0,0,95.5,9.523317,1.609438,1.898454,1 +11,2,0,1,4,226677,0,13673.9,19.39699,0,15,1,17.48678,0,15.1281,0,0,32.61488,0,0,0,1,0,5,77.1,0,0,95.5,0,96,0,0,1.609438,4.564348,0,0,0,0,0,0,95.5,9.523317,1.609438,3.484769,1 +11,2,0,1,5,226677,0,13673.9,20.39699,0,15,1,41.55059,0,0,0,0,41.55059,0,0,0,3,0,5,77.1,0,0,95.5,0,96,0,0,1.609438,4.564348,0,0,0,0,0,0,95.5,9.523317,1.609438,3.726912,1 +11,2,0,1,1,226678,0,13673.9,14.59001,0,15,1,0,0,0,0,0,0,0,0,0,0,0,5,60.6,0,0,72.7,0,96,1,0,1.609438,4.564348,0,0,0,0,0,0,72.7,9.523317,1.609438,,0 +11,2,0,1,2,226678,0,13673.9,15.59001,0,15,1,103.5232,0,3.378378,0,0,106.9015,0,0,0,8,0,5,60.6,0,0,72.7,0,96,1,0,1.609438,4.564348,0,0,0,0,0,0,72.7,9.523317,1.609438,4.671908,1 +11,2,0,1,3,226678,0,13673.9,16.59001,0,15,1,0,0,0,0,0,0,0,0,0,0,0,5,60.6,0,0,72.7,0,96,1,0,1.609438,4.564348,0,0,0,0,0,0,72.7,9.523317,1.609438,,0 +11,2,0,1,4,226678,0,13673.9,17.59001,0,15,1,41.78934,1.606344,0,0,0,43.39569,0,0,0,1,0,5,60.6,0,0,72.7,0,96,1,0,1.609438,4.564348,0,0,0,0,0,0,72.7,9.523317,1.609438,3.77036,1 +11,2,0,1,5,226678,0,13673.9,18.59001,0,15,1,66.8805,0,10.35557,0,0,77.23607,0,0,0,4,0,5,60.6,0,0,72.7,0,96,0,0,1.609438,4.564348,0,0,0,0,0,0,72.7,9.523317,1.609438,4.346867,1 +11,2,0,1,1,226679,0,13673.9,54.53525,0,12,1,96.45315,21.9693,48.48597,0,0,166.9084,0,0,0,10,0,5,54.3,31,1,36.4,0,96,0,0,1.609438,4.564348,0,0,0,1,0,0,36.4,9.523317,1.609438,5.117445,1 +11,2,0,1,2,226679,0,13673.9,55.53525,0,12,1,56.94981,16.38514,23.64865,0,0,96.98359,0,0,0,6,0,5,54.3,31,1,36.4,0,96,0,0,1.609438,4.564348,0,0,0,1,0,0,36.4,9.523317,1.609438,4.574542,1 +11,2,0,1,3,226679,0,13673.9,56.53525,0,12,1,20.0267,72.06943,0,0,0,92.09613,0,0,0,3,0,5,54.3,31,1,36.4,0,96,0,0,1.609438,4.564348,0,0,0,1,0,0,36.4,9.523317,1.609438,4.522833,1 +11,2,0,1,4,226679,0,13673.9,57.53525,0,12,1,34.97357,54.40016,16.99878,0,0,106.3725,0,0,0,3,0,5,54.3,31,1,36.4,0,96,0,0,1.609438,4.564348,0,0,0,1,0,0,36.4,9.523317,1.609438,4.666947,1 +11,2,0,1,5,226679,0,13673.9,58.53525,0,12,1,75.87977,83.64369,27.30938,0,0,186.8328,0,0,0,8,0,5,54.3,31,1,36.4,0,96,0,0,1.609438,4.564348,0,0,0,1,0,0,36.4,9.523317,1.609438,5.230214,1 +11,2,0,1,1,226680,0,13673.9,11.99726,1,15,1,0,0,0,0,0,0,0,0,0,0,0,5,85,11.84267,0,96.3,0,96,1,1,1.609438,4.564348,0,0,0,0,0,0,96.3,9.523317,1.609438,,0 +11,2,0,1,2,226680,0,13673.9,12.99726,1,15,1,39.57529,2.123552,0,0,0,41.69884,0,0,0,5,0,5,85,11.84267,0,96.3,0,96,1,1,1.609438,4.564348,0,0,0,0,0,0,96.3,9.523317,1.609438,3.730473,1 +11,2,0,1,3,226680,0,13673.9,13.99726,1,15,1,40.49844,2.180685,0,0,0,42.67913,0,0,0,4,0,5,85,11.84267,0,96.3,0,96,1,1,1.609438,4.564348,0,0,0,0,0,0,96.3,9.523317,1.609438,3.75371,1 +11,2,0,1,4,226680,0,13673.9,14.99726,1,15,1,53.88369,0,0,0,0,53.88369,0,0,0,6,0,5,85,11.84267,0,96.3,0,96,1,1,1.609438,4.564348,0,0,0,0,0,0,96.3,9.523317,1.609438,3.986828,1 +11,2,0,1,5,226680,0,13673.9,15.99726,1,15,1,87.97654,8.467742,0,0,0,96.44428,0,0,0,4,0,5,85,11.84267,0,96.3,0,96,1,1,1.609438,4.564348,0,0,0,0,0,0,96.3,9.523317,1.609438,4.568965,1 +11,2,0,1,1,226681,0,13673.9,47.07734,1,15,1,118.6871,47.98835,51.21228,0,0,217.8878,0,0,0,9,0,5,70.2,10.3,0,93.2,0,96,0,0,1.609438,4.564348,0,0,0,0,0,0,93.2,9.523317,1.609438,5.38398,1 +11,2,0,1,2,226681,0,13673.9,48.07734,1,15,1,0,7.504826,0,0,0,7.504826,0,0,0,0,0,5,70.2,10.3,0,93.2,0,96,0,0,1.609438,4.564348,0,0,0,0,0,0,93.2,9.523317,1.609438,2.015546,1 +11,2,0,1,3,226681,0,13673.9,49.07734,1,15,1,11.12595,0,43.96084,0,0,55.08678,0,0,0,0,1,5,70.2,10.3,0,93.2,0,96,0,0,1.609438,4.564348,0,0,0,0,0,0,93.2,9.523317,1.609438,4.00891,1 +11,2,0,1,4,226681,0,13673.9,50.07734,1,15,1,7.726718,0,0,0,0,7.726718,0,0,0,1,0,5,70.2,10.3,0,93.2,0,96,0,0,1.609438,4.564348,0,0,0,0,0,0,93.2,9.523317,1.609438,2.044684,1 +11,2,0,1,5,226681,0,13673.9,51.07734,1,15,1,21.99413,6.799853,0,0,0,28.79399,0,0,0,3,0,5,70.2,10.3,0,93.2,0,96,0,0,1.609438,4.564348,0,0,0,0,0,0,93.2,9.523317,1.609438,3.360167,1 +13,2,0,1,1,226697,0,11253.96,47.55099,0,12,1,85.09794,13.26098,38.83536,222.3399,0,137.1943,0,0,12,5,0,3,59,13.8,1,38.6,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,38.6,9.328564,1.098612,4.921398,1 +13,2,0,1,2,226697,0,11253.96,48.55099,0,12,1,0,9.942085,0,33.78378,0,9.942085,0,0,2,0,0,3,59,13.8,1,38.6,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,38.6,9.328564,1.098612,2.296777,1 +13,2,0,1,3,226697,0,11253.96,49.55099,0,12,1,159.101,0,0,0,0,159.101,0,0,0,6,0,3,59,13.8,1,38.6,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,38.6,9.328564,1.098612,5.06954,1 +13,2,0,1,1,226698,0,11253.96,52.63792,1,15,1,98.99418,95.84436,42.35045,1101.112,0,237.189,0,0,52,3,2,3,91.5,20.7,0,68.2,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,68.2,9.328564,1.098612,5.468857,1 +13,2,0,1,2,226698,0,11253.96,53.63792,1,15,1,194.1361,46.35618,0,926.6409,0,240.4923,0,0,47,6,2,3,91.5,20.7,0,68.2,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,68.2,9.328564,1.098612,5.482688,1 +13,2,0,1,3,226698,0,11253.96,54.63792,1,15,1,107.9217,117.4232,0,907.8772,0,225.3449,0,0,49,3,2,3,91.5,20.7,0,68.2,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,68.2,9.328564,1.098612,5.417632,1 +13,2,0,1,1,226699,0,11253.96,6.850103,0,15,1,52.6469,5.399683,0,0,0,58.04659,0,0,0,4,0,3,93.3,11.84267,0,77.8,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,77.8,9.328564,1.098612,4.061246,1 +13,2,0,1,2,226699,0,11253.96,7.850103,0,15,1,13.51351,2.871622,0,0,0,16.38514,0,0,0,1,0,3,93.3,11.84267,0,77.8,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,77.8,9.328564,1.098612,2.796375,1 +13,2,0,1,3,226699,0,11253.96,8.850102,0,15,1,28.48242,3.004005,0,0,0,31.48643,0,0,0,2,0,3,93.3,11.84267,0,77.8,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,77.8,9.328564,1.098612,3.449557,1 +16,2,95,0,1,226709,0,9902.053,40.31485,1,12,1,24.89293,0,0,0,0,24.89293,0,0,0,2,0,1,70.2,27.6,0,85.2,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,1,0,0,85.2,9.200599,0,3.214584,1 +16,2,95,0,2,226709,0,9902.053,41.31485,1,12,1,101.4153,0,0,0,0,101.4153,0,0,0,3,0,1,70.2,27.6,0,85.2,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,1,0,0,85.2,9.200599,0,4.619224,1 +16,2,95,0,3,226709,0,9902.053,42.31485,1,12,1,23.14815,0,0,0,0,23.14815,0,0,0,2,0,1,70.2,27.6,0,85.2,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,1,0,0,85.2,9.200599,0,3.141915,1 +16,2,95,0,4,226709,0,9902.053,43.31485,1,12,1,76.30273,0,0,0,0,76.30273,0,0,0,2,0,1,70.2,27.6,0,85.2,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,1,0,0,85.2,9.200599,0,4.334709,1 +16,2,95,0,5,226709,0,9902.053,44.31485,1,12,1,68.92697,0,0,0,0,68.92697,0,0,0,2,2,1,70.2,27.6,0,85.2,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,1,0,0,85.2,9.200599,0,4.233047,1 +13,2,0,1,1,226714,0,8665.641,1.0705,0,12,1,12.31263,0,0,0,0,12.31263,0,0,0,1,0,3,81.35272,11.84267,0,77.8,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,77.8,9.067237,1.098612,2.510626,1 +13,2,0,1,1,226715,0,8665.641,26.11088,0,14,1,0,3.329764,0,0,0,3.329764,0,0,0,0,0,3,80.3,13.8,0,70.5,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,70.5,9.067237,1.098612,1.202901,1 +13,2,0,1,1,226716,0,8665.641,22.25599,1,12,1,13.3833,0,19.05782,0,0,32.44111,0,0,0,0,1,3,59,6.9,0,84.1,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,84.1,9.067237,1.098612,3.479427,1 +19,2,25,1,1,226727,0,16639.88,57.39083,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,82.4,13.8,0,84.1,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,84.1,9.719618,1.609438,,0 +19,2,25,1,2,226727,0,16639.88,58.39083,1,12,1,5.332041,2.544838,0,0,0,7.876878,0,0,0,1,0,5,82.4,13.8,0,84.1,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,84.1,9.719618,1.609438,2.063932,1 +19,2,25,1,3,226727,0,16639.88,59.39083,1,12,1,20.21563,0,30.8266,0,0,51.04223,0,0,0,1,0,4,82.4,13.8,0,84.1,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,84.1,9.719618,1.386294,3.932653,1 +19,2,25,1,1,226728,0,16639.88,20.04107,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,62.2,3.4,0,77.3,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,77.3,9.719618,1.609438,,0 +19,2,25,1,2,226728,0,16639.88,21.04107,1,12,1,46.53417,0,0,0,0,46.53417,0,0,0,1,1,5,62.2,3.4,0,77.3,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,77.3,9.719618,1.609438,3.840187,1 +19,2,25,1,3,226728,0,16639.88,22.04107,1,12,1,148.4726,0,0,0,5523.145,5671.617,1,0,0,5,0,4,62.2,3.4,0,77.3,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,77.3,9.719618,1.386294,8.643229,1 +19,2,25,1,1,226729,0,16639.88,55.65229,0,13,1,199.4678,12.54391,36.2959,0,6307.914,6556.221,2,0,0,12,0,5,80.3,13.8,0,69.3,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,69.3,9.719618,1.609438,8.78817,1 +19,2,25,1,2,226729,0,16639.88,56.65229,0,13,1,989.3844,245.7925,291.6093,0,0,1526.786,0,0,0,62,0,5,80.3,13.8,0,69.3,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,69.3,9.719618,1.609438,7.33092,1 +19,2,25,1,3,226729,0,16639.88,57.65229,0,13,1,1613.073,519.4654,325.9164,0,4942.969,7401.424,1,0,0,74,3,4,80.3,13.8,0,69.3,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,69.3,9.719618,1.386294,8.909428,1 +19,2,25,0,1,226730,0,16639.88,18.30527,0,10,1,0,0,0,0,0,0,0,0,0,0,0,5,64.9,3.4,0,65.9,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,65.9,9.719618,1.609438,,0 +19,2,25,0,2,226730,0,16639.88,19.30527,0,10,1,170.7222,10.61561,0,0,0,181.3379,0,0,0,3,0,5,64.9,3.4,0,65.9,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,65.9,9.719618,1.609438,5.200362,1 +19,2,25,1,1,226731,0,16639.88,15.66051,1,12,1,27.54124,0,27.35498,0,0,54.89622,0,0,0,2,0,5,74.5,3.4,1,80.7,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,1,0,0,80.7,9.719618,1.609438,4.005445,1 +19,2,25,1,2,226731,0,16639.88,16.66051,1,12,1,53.87785,3.756665,0,0,0,57.63451,0,0,0,1,0,5,74.5,3.4,1,80.7,1000,1000,1,1,1.609438,6.907755,0,3.258096,8.294049,1,0,0,80.7,9.719618,1.609438,4.054121,1 +19,2,25,1,3,226731,0,16639.88,17.66051,1,12,1,92.09344,0,0,0,0,92.09344,0,0,0,3,0,4,74.5,3.4,1,80.7,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,1,0,0,80.7,9.719618,1.386294,4.522804,1 +16,2,95,1,1,226753,0,17438.12,31.40315,1,17,1,79.4071,52.63631,0,0,0,132.0434,0,0,0,11,1,1,85.6,6.9,0,79.5,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,0,0,0,79.5,9.766472,0,4.883131,1 +16,2,95,1,2,226753,0,17438.12,32.40315,1,17,1,110.1593,123.5666,0,0,726.1824,959.9083,1,0,0,16,0,1,85.6,6.9,0,79.5,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,0,0,0,79.5,9.766472,0,6.866838,1 +16,2,95,1,3,226753,0,17438.12,33.40315,1,17,1,146.1949,92.3053,0,0,0,238.5002,0,0,0,26,0,2,85.6,6.9,0,79.5,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,79.5,9.766472,.6931472,5.47437,1 +19,2,25,0,1,226778,0,6173.021,1.037645,0,13,1,75.96612,4.547379,0,0,0,80.5135,0,0,0,7,0,4,81.35272,11.84267,0,100,1000,0,1,0,1.386294,0,0,3.258096,8.294049,0,0,0,100,8.728106,1.386294,4.388425,1 +19,2,25,0,2,226778,0,6173.021,2.037645,0,13,1,50.43436,4.430502,0,0,0,54.86486,0,0,0,3,3,4,81.35272,11.84267,0,100,1000,0,1,0,1.386294,0,0,3.258096,8.294049,0,0,0,100,8.728106,1.386294,4.004873,1 +19,2,25,0,3,226778,0,6173.021,3.037645,0,13,1,79.87984,2.403204,0,0,0,82.28304,0,0,0,4,0,4,81.35272,11.84267,0,100,1000,0,1,0,1.386294,0,0,3.258096,8.294049,0,0,0,100,8.728106,1.386294,4.410165,1 +19,2,25,0,4,226778,0,6173.021,4.037645,0,13,1,4.880033,0,0,0,0,4.880033,0,0,0,1,0,4,81.35272,11.84267,0,100,1000,0,1,0,1.386294,0,0,3.258096,8.294049,0,0,0,100,8.728106,1.386294,1.585152,1 +19,2,25,0,5,226778,0,6173.021,5.037645,0,13,1,33.21481,0,0,0,0,33.21481,0,0,0,2,0,4,81.35272,11.84267,0,100,1000,0,1,0,1.386294,0,0,3.258096,8.294049,0,0,0,100,8.728106,1.386294,3.502996,1 +19,2,25,0,1,226779,0,6173.021,3.493498,0,13,1,23.29275,4.547379,0,0,0,27.84013,0,0,0,3,0,4,81.35272,11.84267,0,63,1000,0,1,0,1.386294,0,0,3.258096,8.294049,0,0,0,63,8.728106,1.386294,3.326478,1 +19,2,25,0,2,226779,0,6173.021,4.493497,0,13,1,16.89189,0,0,0,0,16.89189,0,0,0,2,0,4,81.35272,11.84267,0,63,1000,0,1,0,1.386294,0,0,3.258096,8.294049,0,0,0,63,8.728106,1.386294,2.826834,1 +19,2,25,0,3,226779,0,6173.021,5.493497,0,13,1,12.01602,0,0,0,0,12.01602,0,0,0,1,0,4,81.35272,11.84267,0,63,1000,0,1,0,1.386294,0,0,3.258096,8.294049,0,0,0,63,8.728106,1.386294,2.486241,1 +19,2,25,0,4,226779,0,6173.021,6.493497,0,13,1,25.41277,0,0,0,0,25.41277,0,0,0,2,0,4,81.35272,11.84267,0,63,1000,0,1,0,1.386294,0,0,3.258096,8.294049,0,0,0,63,8.728106,1.386294,3.235252,1 +19,2,25,0,5,226779,0,6173.021,7.493497,0,13,1,54.2522,0,2.199414,0,0,56.45161,0,0,0,4,0,4,81.35272,11.84267,0,63,1000,0,1,0,1.386294,0,0,3.258096,8.294049,0,0,0,63,8.728106,1.386294,4.033384,1 +19,2,25,0,1,226780,0,6173.021,27.05544,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,68.6,10.3,0,54.5,1000,0,0,0,1.386294,0,0,3.258096,8.294049,0,0,0,54.5,8.728106,1.386294,,0 +19,2,25,0,2,226780,0,6173.021,28.05544,0,12,1,262.3069,0,0,259.4112,0,262.3069,0,0,25,1,34,4,68.6,10.3,0,54.5,1000,0,0,0,1.386294,0,0,3.258096,8.294049,0,0,0,54.5,8.728106,1.386294,5.569515,1 +19,2,25,0,3,226780,0,6173.021,29.05544,0,12,1,87.22742,0,0,278.1487,0,87.22742,0,0,29,0,14,4,68.6,10.3,0,54.5,1000,0,0,0,1.386294,0,0,3.258096,8.294049,0,0,0,54.5,8.728106,1.386294,4.468519,1 +19,2,25,0,4,226780,0,6173.021,30.05544,0,12,1,24.40016,0,0,0,0,24.40016,0,0,0,0,4,4,68.6,10.3,0,54.5,1000,0,0,0,1.386294,0,0,3.258096,8.294049,0,0,0,54.5,8.728106,1.386294,3.19459,1 +19,2,25,0,5,226780,0,6173.021,31.05544,0,12,1,71.48094,0,0,0,0,71.48094,0,0,0,2,10,4,68.6,10.3,0,54.5,1000,0,0,0,1.386294,0,0,3.258096,8.294049,0,0,0,54.5,8.728106,1.386294,4.269431,1 +19,2,25,0,1,226781,0,6173.021,25.98768,1,13,1,28.32186,6.352568,0,0,0,34.67443,0,0,0,3,0,4,62.2,13.8,0,90.9,1000,0,0,0,1.386294,0,0,3.258096,8.294049,0,0,0,90.9,8.728106,1.386294,3.546003,1 +19,2,25,0,2,226781,0,6173.021,26.98768,1,13,1,197.3793,2.171815,33.98649,639.4788,0,233.5376,0,0,56,4,2,4,62.2,13.8,0,90.9,1000,0,0,0,1.386294,0,0,3.258096,8.294049,0,0,0,90.9,8.728106,1.386294,5.453343,1 +19,2,25,0,3,226781,0,6173.021,27.98768,1,13,1,71.53983,29.00757,0,333.7784,1728.781,1829.328,1,0,34,6,0,4,62.2,13.8,0,90.9,1000,0,0,0,1.386294,0,0,3.258096,8.294049,0,0,0,90.9,8.728106,1.386294,7.511704,1 +19,2,25,0,4,226781,0,6173.021,28.98768,1,13,1,36.49858,0,0,445.303,0,36.49858,0,0,29,1,0,4,62.2,13.8,0,90.9,1000,0,0,0,1.386294,0,0,3.258096,8.294049,0,0,0,90.9,8.728106,1.386294,3.597273,1 +19,2,25,0,5,226781,0,6173.021,29.98768,1,13,1,38.8563,8.614369,36.20968,0,0,83.68035,0,0,0,2,1,4,62.2,13.8,0,90.9,1000,0,0,0,1.386294,0,0,3.258096,8.294049,0,0,0,90.9,8.728106,1.386294,4.427004,1 +5,2,25,0,1,226782,0,3041.642,28.73922,0,12,1,195.6058,4.274571,0,0,0,199.8804,0,0,1,4,0,1,83,6.9,0,87.5,188.35,0,0,0,0,0,0,3.258096,6.624596,0,0,0,87.5,8.020482,0,5.297719,1 +5,2,25,0,2,226782,0,3041.642,29.73922,0,12,1,121.7296,1.944577,0,0,0,123.6741,0,0,0,4,0,1,83,6.9,0,87.5,188.35,0,0,0,0,0,0,3.258096,6.624596,0,0,0,87.5,8.020482,0,4.81765,1 +5,2,25,0,3,226782,0,3041.642,30.73922,0,12,1,205.4434,0,0,0,0,205.4434,0,0,0,2,11,1,83,6.9,0,87.5,188.35,0,0,0,0,0,0,3.258096,6.624596,0,0,0,87.5,8.020482,0,5.325171,1 +15,2,95,0,1,226790,0,8771.261,26.0397,0,14,1,0,0,0,0,0,0,0,0,0,0,0,2,77.7,6.9,0,81.8,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,81.8,9.07935,.6931472,,0 +15,2,95,0,2,226790,0,8771.261,27.0397,0,14,1,81.01513,6.573938,0,0,0,87.58907,0,0,0,11,0,3,77.7,6.9,0,81.8,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,81.8,9.07935,1.098612,4.472656,1 +15,2,95,0,3,226790,0,8771.261,28.0397,0,14,1,99.36766,0,0,0,0,99.36766,0,0,0,19,0,3,77.7,6.9,0,81.8,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,81.8,9.07935,1.098612,4.598827,1 +15,2,95,0,4,226790,0,8771.261,29.0397,0,14,1,83.12655,0,0,0,0,83.12655,0,0,0,19,0,4,77.7,6.9,0,81.8,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,81.8,9.07935,1.386294,4.420364,1 +15,2,95,0,5,226790,0,8771.261,30.0397,0,14,1,0,0,0,0,0,0,0,0,0,0,0,4,77.7,6.9,0,81.8,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,81.8,9.07935,1.386294,,0 +15,2,95,0,1,226791,0,8771.261,25.08966,1,12,1,163.2762,25.87794,0,0,460.7066,649.8608,1,0,0,8,0,2,84,10.3,0,65.9,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,65.9,9.07935,.6931472,6.476758,1 +15,2,95,0,2,226791,0,8771.261,26.08966,1,12,1,12.4451,19.05808,0,0,0,31.50317,0,0,0,4,0,3,84,10.3,0,65.9,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,65.9,9.07935,1.098612,3.450088,1 +15,2,95,0,3,226791,0,8771.261,27.08966,1,12,1,56.23306,7.289973,0,0,942.963,1006.486,1,0,0,0,0,3,84,10.3,0,65.9,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,65.9,9.07935,1.098612,6.91422,1 +15,2,95,0,4,226791,0,8771.261,28.08966,1,12,1,5.583127,0,0,0,0,5.583127,0,0,0,3,0,4,84,10.3,0,65.9,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,65.9,9.07935,1.386294,1.719749,1 +15,2,95,0,5,226791,0,8771.261,29.08966,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,84,10.3,0,65.9,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,65.9,9.07935,1.386294,,0 +18,2,25,1,1,226798,0,10598.83,31.01164,0,11,1,8.56531,2.189507,0,0,0,10.75482,0,0,0,1,0,5,79.8,3.4,0,67,1000,1076.54,0,0,1.609438,6.981507,0,3.258096,8.294049,1,0,0,67,9.268593,1.609438,2.375354,1 +18,2,25,1,2,226798,0,10598.83,32.01163,0,11,1,38.5798,0,0,0,0,38.5798,0,0,0,1,0,5,79.8,3.4,0,67,1000,1076.54,0,0,1.609438,6.981507,0,3.258096,8.294049,1,0,0,67,9.268593,1.609438,3.652729,1 +18,2,25,1,3,226798,0,10598.83,33.01163,0,11,1,0,0,0,0,0,0,0,0,0,0,0,5,79.8,3.4,0,67,1000,1076.54,0,0,1.609438,6.981507,0,3.258096,8.294049,1,0,0,67,9.268593,1.609438,,0 +18,2,25,1,1,226799,0,10598.83,10.32991,0,12,1,101.0439,6.466809,0,0,0,107.5107,0,0,0,4,0,5,71.7,11.84267,0,93.3,1000,1076.54,1,0,1.609438,6.981507,0,3.258096,8.294049,1,0,0,93.3,9.268593,1.609438,4.67759,1 +18,2,25,1,2,226799,0,10598.83,11.32991,0,12,1,34.65105,0,35.27086,0,0,69.92191,0,0,0,2,0,5,71.7,11.84267,0,93.3,1000,1076.54,1,0,1.609438,6.981507,0,3.258096,8.294049,1,0,0,93.3,9.268593,1.609438,4.247379,1 +18,2,25,1,3,226799,0,10598.83,12.32991,0,12,1,116.2602,0,15.33875,0,0,131.5989,0,0,0,5,0,5,71.7,11.84267,0,93.3,1000,1076.54,1,0,1.609438,6.981507,0,3.258096,8.294049,1,0,0,93.3,9.268593,1.609438,4.879759,1 +18,2,25,1,1,226800,0,10598.83,5.691992,1,12,1,31.31692,0,27.40364,0,0,58.72056,0,0,0,3,1,5,98.3,11.84267,0,92.6,1000,1076.54,1,1,1.609438,6.981507,0,3.258096,8.294049,1,0,0,92.6,9.268593,1.609438,4.07279,1 +18,2,25,1,2,226800,0,10598.83,6.691992,1,12,1,7.320644,4.519278,0,0,0,11.83992,0,0,0,1,0,5,98.3,11.84267,0,92.6,1000,1076.54,1,1,1.609438,6.981507,0,3.258096,8.294049,1,0,0,92.6,9.268593,1.609438,2.471477,1 +18,2,25,1,3,226800,0,10598.83,7.691992,1,12,1,13.55014,0,26.92864,0,0,40.47877,0,0,0,1,0,5,98.3,11.84267,0,92.6,1000,1076.54,1,1,1.609438,6.981507,0,3.258096,8.294049,1,0,0,92.6,9.268593,1.609438,3.700778,1 +18,2,25,1,1,226801,0,10598.83,7.540041,0,12,1,10.70664,0,0,0,0,10.70664,0,0,0,1,0,5,88.3,11.84267,0,96.3,1000,1076.54,1,0,1.609438,6.981507,0,3.258096,8.294049,1,0,0,96.3,9.268593,1.609438,2.370864,1 +18,2,25,1,2,226801,0,10598.83,8.540041,0,12,1,41.50805,0,0,0,0,41.50805,0,0,0,2,0,5,88.3,11.84267,0,96.3,1000,1076.54,1,0,1.609438,6.981507,0,3.258096,8.294049,1,0,0,96.3,9.268593,1.609438,3.725888,1 +18,2,25,1,3,226801,0,10598.83,9.540041,0,12,1,261.2692,0,0,0,0,261.2692,0,0,0,3,0,5,88.3,11.84267,0,96.3,1000,1076.54,1,0,1.609438,6.981507,0,3.258096,8.294049,1,0,0,96.3,9.268593,1.609438,5.565551,1 +18,2,25,1,1,226802,0,10598.83,29.10335,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,72.3,10.3,1,77.3,1000,1076.54,0,0,1.609438,6.981507,0,3.258096,8.294049,1,0,0,77.3,9.268593,1.609438,,0 +18,2,25,1,2,226802,0,10598.83,30.10335,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,72.3,10.3,1,77.3,1000,1076.54,0,0,1.609438,6.981507,0,3.258096,8.294049,1,0,0,77.3,9.268593,1.609438,,0 +18,2,25,1,3,226802,0,10598.83,31.10335,1,12,1,55.78139,0,31.44535,0,0,87.22674,0,0,0,2,0,5,72.3,10.3,1,77.3,1000,1076.54,0,0,1.609438,6.981507,0,3.258096,8.294049,1,0,0,77.3,9.268593,1.609438,4.468511,1 +11,2,0,1,1,226825,0,4219.355,58.09446,0,8,1,244.0445,8.125993,1.810482,0,1778.481,2032.462,2,0,0,10,0,1,48.9,6.9,1,73.9,0,0,0,0,0,0,0,0,0,0,0,0,73.9,8.347674,0,7.617003,1 +11,2,0,1,2,226825,0,4219.355,59.09446,0,8,1,42.51931,1.954633,591.4913,0,0,635.9653,0,0,0,4,1,1,48.9,6.9,1,73.9,0,0,0,0,0,0,0,0,0,0,0,0,73.9,8.347674,0,6.455144,1 +11,2,0,1,3,226825,0,4219.355,60.09446,0,8,1,0,17.73921,14.0721,0,0,31.8113,0,0,0,0,0,1,48.9,6.9,1,73.9,0,0,0,0,0,0,0,0,0,0,0,0,73.9,8.347674,0,3.459822,1 +6,2,25,0,1,226831,0,12080.35,25.4319,0,14,1,53.84213,0,0,0,0,53.84213,0,0,0,2,0,1,86.2,6.9,0,77.3,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,0,0,0,77.3,9.399418,0,3.986056,1 +6,2,25,0,2,226831,0,12080.35,26.4319,0,14,1,62.9505,5.305142,0,0,0,68.25565,0,0,0,6,0,1,86.2,6.9,0,77.3,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,0,0,0,77.3,9.399418,0,4.22326,1 +6,2,25,0,3,226831,0,12080.35,27.4319,0,14,1,48.23788,0,33.97357,0,0,82.21146,0,0,0,3,0,2,86.2,6.9,0,77.3,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,0,77.3,9.399418,.6931472,4.409295,1 +18,2,25,1,1,226834,1,222.8739,37.48939,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,62.3,17.2,0,64.8,416.4,416.4,0,0,1.609438,6.031646,0,3.258096,7.417941,0,1,0,64.8,5.411083,1.609438,,0 +18,2,25,1,2,226834,1,222.8739,38.48939,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,62.3,17.2,0,64.8,416.4,416.4,0,0,1.609438,6.031646,0,3.258096,7.417941,0,1,0,64.8,5.411083,1.609438,,0 +18,2,25,1,3,226834,1,222.8739,39.48939,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,62.3,17.2,0,64.8,416.4,416.4,0,0,1.609438,6.031646,0,3.258096,7.417941,0,1,0,64.8,5.411083,1.609438,,0 +18,2,25,1,1,226835,1,222.8739,2.069815,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,81.35272,11.84267,0,66.7,416.4,416.4,1,0,1.609438,6.031646,0,3.258096,7.417941,0,1,0,66.7,5.411083,1.609438,,0 +18,2,25,1,2,226835,1,222.8739,3.069815,0,12,1,35.81081,1.858108,0,0,0,37.66892,0,0,0,2,0,5,81.35272,11.84267,0,66.7,416.4,416.4,1,0,1.609438,6.031646,0,3.258096,7.417941,0,1,0,66.7,5.411083,1.609438,3.628835,1 +18,2,25,1,3,226835,1,222.8739,4.069815,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,81.35272,11.84267,0,66.7,416.4,416.4,1,0,1.609438,6.031646,0,3.258096,7.417941,0,1,0,66.7,5.411083,1.609438,,0 +18,2,25,1,1,226836,1,222.8739,14.22313,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,64.4,0,0,65.9,416.4,416.4,1,0,1.609438,6.031646,0,3.258096,7.417941,0,1,0,65.9,5.411083,1.609438,,0 +18,2,25,1,2,226836,1,222.8739,15.22313,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,64.4,0,0,65.9,416.4,416.4,1,0,1.609438,6.031646,0,3.258096,7.417941,0,1,0,65.9,5.411083,1.609438,,0 +18,2,25,1,3,226836,1,222.8739,16.22313,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,64.4,0,0,65.9,416.4,416.4,1,0,1.609438,6.031646,0,3.258096,7.417941,0,1,0,65.9,5.411083,1.609438,,0 +18,2,25,1,1,226837,1,222.8739,15.85216,1,12,1,30.9423,0,0,0,318.5813,349.5236,1,0,0,2,0,5,70.2,0,0,56.8,416.4,416.4,1,1,1.609438,6.031646,0,3.258096,7.417941,0,1,0,56.8,5.411083,1.609438,5.856571,1 +18,2,25,1,2,226837,1,222.8739,16.85216,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,70.2,0,0,56.8,416.4,416.4,1,1,1.609438,6.031646,0,3.258096,7.417941,0,1,0,56.8,5.411083,1.609438,,0 +18,2,25,1,3,226837,1,222.8739,17.85216,1,12,1,30.04005,0,0,0,0,30.04005,0,0,0,3,0,5,70.2,0,0,56.8,416.4,416.4,1,1,1.609438,6.031646,0,3.258096,7.417941,0,1,0,56.8,5.411083,1.609438,3.402532,1 +18,2,25,1,1,226838,1,222.8739,4.372348,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,88.3,11.84267,0,81.5,416.4,416.4,1,1,1.609438,6.031646,0,3.258096,7.417941,0,1,0,81.5,5.411083,1.609438,,0 +18,2,25,1,2,226838,1,222.8739,5.372348,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,88.3,11.84267,0,81.5,416.4,416.4,1,1,1.609438,6.031646,0,3.258096,7.417941,0,1,0,81.5,5.411083,1.609438,,0 +18,2,25,1,3,226838,1,222.8739,6.372348,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,88.3,11.84267,0,81.5,416.4,416.4,1,1,1.609438,6.031646,0,3.258096,7.417941,0,1,0,81.5,5.411083,1.609438,,0 +11,2,0,0,1,226867,0,9482.698,59.85216,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,78.2,10.3,0,55.7,0,0,0,0,0,0,0,0,0,0,1,0,55.7,9.15733,0,,0 +11,2,0,0,2,226867,0,9482.698,60.85216,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,78.2,10.3,0,55.7,0,0,0,0,0,0,0,0,0,0,1,0,55.7,9.15733,0,,0 +11,2,0,0,3,226867,0,9482.698,61.85216,0,12,1,6.738544,0,0,0,0,6.738544,0,0,0,1,0,1,78.2,10.3,0,55.7,0,0,0,0,0,0,0,0,0,0,1,0,55.7,9.15733,0,1.907844,1 +11,2,0,1,1,226868,0,6939.589,53.89185,0,12,1,43.40921,0,0,0,0,43.40921,0,0,0,1,0,2,91,6.9,0,67,0,0,0,0,.6931472,0,0,0,0,1,0,0,67,8.845142,.6931472,3.770672,1 +11,2,0,1,2,226868,0,6939.589,54.89185,0,12,1,125.9652,2.968147,44.56564,0,0,173.499,0,0,0,4,5,2,91,6.9,0,67,0,0,0,0,.6931472,0,0,0,0,1,0,0,67,8.845142,.6931472,5.156172,1 +11,2,0,1,3,226868,0,6939.589,55.89185,0,12,1,257.0093,4.080997,0,0,0,261.0903,0,0,0,4,6,2,91,6.9,0,67,0,0,0,0,.6931472,0,0,0,0,1,0,0,67,8.845142,.6931472,5.564867,1 +11,2,0,1,1,226869,0,6939.589,52.29843,1,8,1,19.58708,3.493912,0,0,0,23.081,0,0,0,1,0,2,89.4,34.5,1,58,0,0,0,0,.6931472,0,0,0,0,1,0,0,58,8.845142,.6931472,3.139009,1 +11,2,0,1,2,226869,0,6939.589,53.29843,1,8,1,0,3.006757,0,0,0,3.006757,0,0,0,0,0,2,89.4,34.5,1,58,0,0,0,0,.6931472,0,0,0,0,1,0,0,58,8.845142,.6931472,1.100862,1 +11,2,0,1,3,226869,0,6939.589,54.29843,1,8,1,257.6769,5.313752,25.81219,0,0,288.8029,0,0,0,3,7,2,89.4,34.5,1,58,0,0,0,0,.6931472,0,0,0,0,1,0,0,58,8.845142,.6931472,5.665744,1 +14,2,95,1,1,226870,0,12958.94,29.13347,0,14,1,47.90895,4.976178,0,0,0,52.88512,0,0,0,5,0,3,79.3,6.9,0,75,815,815,0,0,1.098612,6.703188,0,4.564348,6.754481,0,0,0,75,9.469619,1.098612,3.968122,1 +14,2,95,1,2,226870,0,12958.94,30.13347,0,14,1,22.92471,2.8861,0,0,0,25.81081,0,0,0,2,0,4,79.3,6.9,0,75,815,815,0,0,1.386294,6.703188,0,4.564348,6.754481,0,0,0,75,9.469619,1.386294,3.250793,1 +14,2,95,1,3,226870,0,12958.94,31.13347,0,14,1,114.8198,0,0,0,0,114.8198,0,0,0,2,0,4,79.3,6.9,0,75,815,815,0,0,1.386294,6.703188,0,4.564348,6.754481,0,0,0,75,9.469619,1.386294,4.743364,1 +14,2,95,1,1,226871,0,12958.94,2.078029,0,17,1,24.08682,2.41927,0,0,0,26.50609,0,0,0,3,0,3,81.35272,11.84267,0,85.2,815,815,1,0,1.098612,6.703188,0,4.564348,6.754481,0,0,0,85.2,9.469619,1.098612,3.277375,1 +14,2,95,1,2,226871,0,12958.94,3.078029,0,17,1,0,0,0,0,0,0,0,0,0,0,0,4,81.35272,11.84267,0,85.2,815,815,1,0,1.386294,6.703188,0,4.564348,6.754481,0,0,0,85.2,9.469619,1.386294,,0 +14,2,95,1,3,226871,0,12958.94,4.078029,0,17,1,28.08189,0,0,0,0,28.08189,0,0,0,2,0,4,81.35272,11.84267,0,85.2,815,815,1,0,1.386294,6.703188,0,4.564348,6.754481,0,0,0,85.2,9.469619,1.386294,3.335125,1 +14,2,95,1,1,226872,0,12958.94,28.282,1,17,1,93.96506,30.37586,35.6432,0,626.2043,786.1885,1,0,0,2,0,3,67.6,6.9,0,80.7,815,815,0,0,1.098612,6.703188,0,4.564348,6.754481,0,0,0,80.7,9.469619,1.098612,6.667197,1 +14,2,95,1,2,226872,0,12958.94,29.282,1,17,1,14.96139,13.5666,0,0,0,28.52799,0,0,0,1,0,4,67.6,6.9,0,80.7,815,815,0,0,1.386294,6.703188,0,4.564348,6.754481,0,0,0,80.7,9.469619,1.386294,3.350886,1 +14,2,95,1,3,226872,0,12958.94,30.282,1,17,1,51.84691,9.341344,24.47708,0,0,85.66533,0,0,0,3,0,4,67.6,6.9,0,80.7,815,815,0,0,1.386294,6.703188,0,4.564348,6.754481,0,0,0,80.7,9.469619,1.386294,4.450448,1 +15,2,95,0,1,226873,0,11890.32,7.720739,0,12,1,80.78349,2.218105,0,0,0,83.00159,0,0,0,6,0,4,78.3,11.84267,1,77.8,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,1,0,77.8,9.383564,1.386294,4.41886,1 +15,2,95,0,2,226873,0,11890.32,8.720739,0,12,1,0,1.761583,0,0,0,1.761583,0,0,0,0,0,4,78.3,11.84267,1,77.8,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,1,0,77.8,9.383564,1.386294,.5662128,1 +15,2,95,0,3,226873,0,11890.32,9.720739,0,12,1,4.450378,0,0,0,0,4.450378,0,0,0,1,0,4,78.3,11.84267,1,77.8,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,1,0,77.8,9.383564,1.386294,1.492989,1 +15,2,95,0,1,226874,0,11890.32,42.13826,0,12,1,33.35098,0,0,0,0,33.35098,0,0,0,3,0,4,86.2,13.8,0,88.6,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,88.6,9.383564,1.386294,3.507087,1 +15,2,95,0,2,226874,0,11890.32,43.13826,0,12,1,10.61776,0,0,0,0,10.61776,0,0,0,1,0,4,86.2,13.8,0,88.6,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,88.6,9.383564,1.386294,2.362528,1 +15,2,95,0,3,226874,0,11890.32,44.13826,0,12,1,26.70227,0,0,0,0,26.70227,0,0,0,2,0,4,86.2,13.8,0,88.6,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,88.6,9.383564,1.386294,3.284749,1 +15,2,95,0,1,226875,0,11890.32,41.56057,1,12,1,6.352568,30.82054,0,0,0,37.17311,0,0,0,1,0,4,60.1,20.7,0,68.2,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,68.2,9.383564,1.386294,3.615586,1 +15,2,95,0,2,226875,0,11890.32,42.56057,1,12,1,0,18.67278,0,0,0,18.67278,0,0,0,0,0,4,60.1,20.7,0,68.2,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,68.2,9.383564,1.386294,2.927067,1 +15,2,95,0,3,226875,0,11890.32,43.56057,1,12,1,6.675568,30.16021,0,0,0,36.83578,0,0,0,1,0,4,60.1,20.7,0,68.2,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,68.2,9.383564,1.386294,3.60647,1 +15,2,95,0,1,226876,0,11890.32,15.25804,1,12,1,248.2795,44.76443,0,0,0,293.0439,0,0,0,45,0,4,77.1,6.9,0,83,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,0,0,0,83,9.383564,1.386294,5.680323,1 +15,2,95,0,2,226876,0,11890.32,16.25804,1,12,1,112.9344,48.62452,0,0,0,161.5589,0,0,0,37,0,4,77.1,6.9,0,83,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,0,0,0,83,9.383564,1.386294,5.08487,1 +15,2,95,0,3,226876,0,11890.32,17.25804,1,12,1,24.03204,0,0,0,0,24.03204,0,0,0,2,0,4,77.1,6.9,0,83,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,0,0,0,83,9.383564,1.386294,3.179388,1 +14,2,95,0,1,226884,0,3374.194,14.36277,0,10,1,6.697578,6.434827,0,0,0,13.13241,0,0,0,1,0,2,81.9,6.9,0,72.7,200,200,1,0,.6931472,5.298317,0,4.564348,5.349611,1,0,0,72.7,8.124207,.6931472,2.575083,1 +14,2,95,0,2,226884,0,3374.194,15.36277,0,10,1,0,0,0,0,0,0,0,0,0,0,0,2,81.9,6.9,0,72.7,200,200,1,0,.6931472,5.298317,0,4.564348,5.349611,1,0,0,72.7,8.124207,.6931472,,0 +14,2,95,0,3,226884,0,3374.194,16.36276,0,10,1,0,0,0,0,0,0,0,0,0,0,0,2,81.9,6.9,0,72.7,200,200,1,0,.6931472,5.298317,0,4.564348,5.349611,1,0,0,72.7,8.124207,.6931472,,0 +14,2,95,0,1,226885,0,3374.194,34.39836,1,10,1,220.2473,29.25811,0,0,0,249.5054,0,0,0,4,7,2,80.9,17.2,1,19.3,200,200,0,0,.6931472,5.298317,0,4.564348,5.349611,1,0,0,19.3,8.124207,.6931472,5.519481,1 +14,2,95,0,2,226885,0,3374.194,35.39836,1,10,1,29.20455,85.98485,0,0,0,115.1894,0,0,0,2,0,2,80.9,17.2,1,19.3,200,200,0,0,.6931472,5.298317,0,4.564348,5.349611,1,0,0,19.3,8.124207,.6931472,4.746578,1 +14,2,95,0,3,226885,0,3374.194,36.39836,1,10,1,224.1873,6.311227,0,0,0,230.4985,0,0,0,4,5,2,80.9,17.2,1,19.3,200,200,0,0,.6931472,5.298317,0,4.564348,5.349611,1,0,0,19.3,8.124207,.6931472,5.440244,1 +13,2,0,0,1,226912,0,6392.962,29.05955,0,14,1,180.0054,4.737688,32.16809,107.0664,0,216.9111,0,0,5,4,2,1,82.4,6.9,0,85.2,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,85.2,8.763109,0,5.379488,1 +13,2,0,0,2,226912,0,6392.962,30.05955,0,14,1,106.6374,32.06442,1.220107,0,0,139.9219,0,0,0,7,0,1,82.4,6.9,0,85.2,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,85.2,8.763109,0,4.941084,1 +13,2,0,0,3,226912,0,6392.962,31.05955,0,14,1,93.04427,15.56459,0,0,0,108.6089,0,0,0,7,1,1,82.4,6.9,0,85.2,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,85.2,8.763109,0,4.687753,1 +13,2,0,0,1,226913,0,5351.32,22.2642,0,12,1,14.28571,3.773585,0,0,0,18.0593,0,0,0,1,0,1,58.5,3.4,0,79.5,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,79.5,8.585285,0,2.893661,1 +13,2,0,0,2,226913,0,5351.32,23.2642,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,58.5,3.4,0,79.5,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,79.5,8.585285,0,,0 +13,2,0,0,3,226913,0,5351.32,24.2642,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,58.5,3.4,0,79.5,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,79.5,8.585285,0,,0 +13,2,0,0,1,226914,0,6853.959,22.12183,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,72.3,13.8,0,68.2,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,68.2,8.832727,0,,0 +13,2,0,0,2,226914,0,6853.959,23.12183,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,72.3,13.8,0,68.2,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,68.2,8.832727,0,,0 +13,2,0,0,3,226914,0,6853.959,24.12183,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,72.3,13.8,0,68.2,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,68.2,8.832727,0,,0 +13,2,0,0,1,226915,0,5033.431,24.43258,0,12,1,3.640146,3.463339,0,0,0,7.103484,0,0,0,1,0,1,85.6,0,0,85.2,150,0,0,0,0,0,1,4.564348,5.061929,0,0,0,85.2,8.524055,0,1.960585,1 +13,2,0,0,2,226915,0,5033.431,25.43258,0,12,1,25.20306,0,0,0,0,25.20306,0,0,0,3,0,1,85.6,0,0,85.2,150,0,0,0,0,0,1,4.564348,5.061929,0,0,0,85.2,8.524055,0,3.226965,1 +13,2,0,0,3,226915,0,5033.431,26.43258,0,12,1,25.46093,0,0,0,0,25.46093,0,0,0,2,0,1,85.6,0,0,85.2,150,0,0,0,0,0,1,4.564348,5.061929,0,0,0,85.2,8.524055,0,3.237145,1 +13,2,0,0,1,226916,0,3809.677,33.50034,0,12,1,8.320333,2.199688,0,0,0,10.52002,0,0,0,1,0,1,65.4,3.4,0,78.4,150,0,0,0,0,0,1,4.564348,5.061929,0,0,0,78.4,8.245563,0,2.35328,1 +13,2,0,0,2,226916,0,3809.677,34.50034,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,65.4,3.4,0,78.4,150,0,0,0,0,0,1,4.564348,5.061929,0,0,0,78.4,8.245563,0,,0 +13,2,0,0,3,226916,0,3809.677,35.50034,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,65.4,3.4,0,78.4,150,0,0,0,0,0,1,4.564348,5.061929,0,0,0,78.4,8.245563,0,,0 +11,2,0,1,1,226944,0,11005.87,30.47228,1,12,1,64.92815,0,11.70836,0,0,76.63651,0,0,0,4,1,4,80.9,10.3,0,80.7,0,455,0,0,1.386294,6.120297,0,0,0,0,0,0,80.7,9.306274,1.386294,4.339074,1 +11,2,0,1,2,226944,0,11005.87,31.47228,1,12,1,86.76685,0,0,29.08386,0,86.76685,0,0,2,3,0,4,80.9,10.3,0,80.7,0,455,0,0,1.386294,6.120297,0,0,0,0,0,0,80.7,9.306274,1.386294,4.463224,1 +11,2,0,1,3,226944,0,11005.87,32.47228,1,12,1,40.31896,0,30.89847,0,0,71.21743,0,0,0,2,1,4,80.9,10.3,0,80.7,0,455,0,0,1.386294,6.120297,0,0,0,0,0,0,80.7,9.306274,1.386294,4.265738,1 +11,2,0,1,1,226945,0,11005.87,5.240246,1,12,1,42.57584,0,0,0,0,42.57584,0,0,0,4,0,4,81.7,11.84267,0,96.3,0,455,1,1,1.386294,6.120297,0,0,0,0,0,0,96.3,9.306274,1.386294,3.751287,1 +11,2,0,1,2,226945,0,11005.87,6.240246,1,12,1,16.48085,0,0,0,0,16.48085,0,0,0,1,0,4,81.7,11.84267,0,96.3,0,455,1,1,1.386294,6.120297,0,0,0,0,0,0,96.3,9.306274,1.386294,2.802199,1 +11,2,0,1,3,226945,0,11005.87,7.240246,1,12,1,17.52022,0,0,0,0,17.52022,0,0,0,2,0,4,81.7,11.84267,0,96.3,0,455,1,1,1.386294,6.120297,0,0,0,0,0,0,96.3,9.306274,1.386294,2.863355,1 +11,2,0,1,1,226946,0,11005.87,8.876112,0,12,1,90.47366,0,31.6711,0,356.86,479.0048,1,0,0,2,1,4,78.3,11.84267,0,100,0,455,1,0,1.386294,6.120297,0,0,0,0,0,0,100,9.306274,1.386294,6.17171,1 +11,2,0,1,2,226946,0,11005.87,9.876112,0,12,1,47.01891,0,0,0,0,47.01891,0,0,0,5,0,4,78.3,11.84267,0,100,0,455,1,0,1.386294,6.120297,0,0,0,0,0,0,100,9.306274,1.386294,3.85055,1 +11,2,0,1,3,226946,0,11005.87,10.87611,0,12,1,26.50494,0,15.27403,0,0,41.77898,0,0,0,2,1,4,78.3,11.84267,0,100,0,455,1,0,1.386294,6.120297,0,0,0,0,0,0,100,9.306274,1.386294,3.732393,1 +11,2,0,1,1,226947,0,11005.87,31.64408,0,16,1,75.83821,0,27.98829,0,0,103.8265,0,0,0,1,1,4,81.4,10.3,0,75,0,455,0,0,1.386294,6.120297,0,0,0,0,0,0,75,9.306274,1.386294,4.642721,1 +11,2,0,1,2,226947,0,11005.87,32.64408,0,16,1,157.2952,0,0,0,0,157.2952,0,0,0,2,14,4,81.4,10.3,0,75,0,455,0,0,1.386294,6.120297,0,0,0,0,0,0,75,9.306274,1.386294,5.058124,1 +11,2,0,1,3,226947,0,11005.87,33.64408,0,16,1,31.89578,0,30.42677,0,0,62.32255,0,0,0,1,3,4,81.4,10.3,0,75,0,455,0,0,1.386294,6.120297,0,0,0,0,0,0,75,9.306274,1.386294,4.132323,1 +11,2,0,0,1,226957,0,8312.61,32.01643,1,12,1,30.72776,23.25607,35.89758,0,0,89.8814,0,0,0,1,1,4,78.2,6.9,0,71.6,0,0,0,0,1.386294,0,0,0,0,0,0,0,71.6,9.025649,1.386294,4.498491,1 +11,2,0,0,2,226957,0,8312.61,33.01643,1,12,1,173.3661,10.07371,31.94103,0,0,215.3808,0,0,0,2,6,4,78.2,6.9,0,71.6,0,0,0,0,1.386294,0,0,0,0,0,0,0,71.6,9.025649,1.386294,5.372408,1 +11,2,0,0,3,226957,0,8312.61,34.01643,1,12,1,135.3692,50.50592,37.18323,0,0,223.0583,0,0,0,4,0,4,78.2,6.9,0,71.6,0,0,0,0,1.386294,0,0,0,0,0,0,0,71.6,9.025649,1.386294,5.407434,1 +11,2,0,0,1,226958,0,8312.61,30.41205,0,15,1,30.72776,0,35.89758,0,0,66.62534,0,0,0,2,1,4,92.6,0,0,73.9,0,0,0,0,1.386294,0,0,0,0,0,0,0,73.9,9.025649,1.386294,4.199085,1 +11,2,0,0,2,226958,0,8312.61,31.41205,0,15,1,71.00737,0,18.32924,0,0,89.33661,0,0,0,2,0,4,92.6,0,0,73.9,0,0,0,0,1.386294,0,0,0,0,0,0,0,73.9,9.025649,1.386294,4.492411,1 +11,2,0,0,3,226958,0,8312.61,32.41205,0,15,1,0,4.484959,40.73838,0,0,45.22334,0,0,0,0,0,4,92.6,0,0,73.9,0,0,0,0,1.386294,0,0,0,0,0,0,0,73.9,9.025649,1.386294,3.811613,1 +11,2,0,0,1,226959,0,8312.61,3.140315,0,12,1,21.83288,1.342318,0,0,0,23.1752,0,0,0,3,0,4,81.35272,11.84267,0,77.8,0,0,1,0,1.386294,0,0,0,0,0,0,0,77.8,9.025649,1.386294,3.143083,1 +11,2,0,0,2,226959,0,8312.61,4.140315,0,12,1,126.2899,15.11548,0,0,414.4226,555.828,1,0,0,7,0,4,81.35272,11.84267,0,77.8,0,0,1,0,1.386294,0,0,0,0,0,0,0,77.8,9.025649,1.386294,6.320459,1 +11,2,0,0,3,226959,0,8312.61,5.140315,0,12,1,15.9526,0,0,0,0,15.9526,0,0,0,1,0,4,81.35272,11.84267,0,77.8,0,0,1,0,1.386294,0,0,0,0,0,0,0,77.8,9.025649,1.386294,2.769622,1 +15,2,95,1,1,226961,0,10456.12,60.88433,1,12,1,220.2223,11.5405,0,0,0,231.7628,0,0,0,7,7,2,64.4,37.9,0,64.8,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,64.8,9.255038,.6931472,5.445714,1 +15,2,95,1,2,226961,0,10456.12,61.88433,1,12,1,27.02703,14.02992,66.92567,0,0,107.9826,0,0,0,1,3,2,64.4,37.9,0,64.8,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,64.8,9.255038,.6931472,4.681971,1 +15,2,95,1,3,226961,0,10456.12,62.88433,1,12,1,48.50912,5.358255,0,0,0,53.86738,0,0,0,2,4,2,64.4,37.9,0,64.8,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,64.8,9.255038,.6931472,3.986525,1 +15,2,95,1,1,226962,0,10456.12,58.45585,0,7,1,75.70143,0,0,0,0,75.70143,0,0,0,2,0,2,81.9,24.1,0,53.4,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,53.4,9.255038,.6931472,4.326797,1 +15,2,95,1,2,226962,0,10456.12,59.45585,0,7,1,304.5125,11.80985,0,0,606.2741,922.5965,1,0,0,10,0,2,81.9,24.1,0,53.4,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,53.4,9.255038,.6931472,6.827192,1 +15,2,95,1,3,226962,0,10456.12,60.45585,0,7,1,323.231,12.74588,37.16511,0,0,373.142,0,0,0,5,7,2,81.9,24.1,0,53.4,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,53.4,9.255038,.6931472,5.921959,1 +13,2,0,1,1,226969,1,5347.801,27.73443,0,12,1,0,1.165514,0,0,0,1.165514,0,0,0,0,0,1,68.1,10.3,0,65.9,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,65.9,8.584628,0,.1531618,1 +13,2,0,1,2,226969,1,5347.801,28.73443,0,12,1,70.04362,7.489094,41.64324,38.77848,0,119.176,0,0,2,3,1,1,68.1,10.3,0,65.9,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,65.9,8.584628,0,4.780601,1 +13,2,0,1,3,226969,1,5347.801,29.73443,0,12,1,184.5238,5.287511,0,0,0,189.8113,0,0,0,4,0,1,68.1,10.3,0,65.9,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,65.9,8.584628,0,5.24603,1 +13,2,0,1,4,226969,1,5347.801,30.73443,0,12,1,25.44112,0,0,0,0,25.44112,0,0,0,0,2,1,68.1,10.3,0,65.9,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,65.9,8.584628,0,3.236367,1 +13,2,0,1,5,226969,1,5347.801,31.73443,0,12,1,49.15004,7.390983,44.81892,207.0288,0,101.3599,0,0,10,0,1,1,68.1,10.3,0,65.9,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,65.9,8.584628,0,4.618678,1 +16,2,95,0,1,226972,0,1605.865,54.76797,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,40.4,20.7,1,50,750,0,0,0,0,0,0,4.564348,6.671367,0,0,0,50,7.382041,0,,0 +16,2,95,0,2,226972,0,1605.865,55.76797,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,40.4,20.7,1,50,750,0,0,0,0,0,0,4.564348,6.671367,0,0,0,50,7.382041,0,,0 +16,2,95,0,3,226972,0,1605.865,56.76797,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,40.4,20.7,1,50,750,0,0,0,0,0,0,4.564348,6.671367,0,0,0,50,7.382041,0,,0 +16,2,95,0,4,226972,0,1605.865,57.76797,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,40.4,20.7,1,50,750,0,0,0,0,0,0,4.564348,6.671367,0,0,0,50,7.382041,0,,0 +16,2,95,0,5,226972,0,1605.865,58.76797,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,40.4,20.7,1,50,750,0,0,0,0,0,0,4.564348,6.671367,0,0,0,50,7.382041,0,,0 +19,2,25,1,1,226973,0,10369.5,61.31964,1,12,1,184.4892,49.51826,42.35045,0,0,276.3578,0,0,0,5,1,1,72.3,24.1,1,58,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,1,0,0,58,9.24672,0,5.621696,1 +19,2,25,1,2,226973,0,10369.5,62.31964,1,12,1,7.239382,60.5695,0,0,0,67.80888,0,0,0,1,0,1,72.3,24.1,1,58,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,1,0,0,58,9.24672,0,4.216693,1 +19,2,25,1,3,226973,0,10369.5,63.31964,1,12,1,188.0285,75.81219,51.93591,0,0,315.7766,0,0,0,5,0,1,72.3,24.1,1,58,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,1,0,0,58,9.24672,0,5.755035,1 +5,2,25,0,1,226980,0,11900.88,51.0089,0,9,1,58.99021,4.095827,59.19114,0,0,122.2772,0,0,0,4,1,3,87.2,3.4,0,92,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,92,9.384452,1.098612,4.806291,1 +5,2,25,0,2,226980,0,11900.88,52.0089,0,9,1,45.45454,4.640152,33.14394,0,0,83.23864,0,0,0,4,1,3,87.2,3.4,0,92,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,92,9.384452,1.098612,4.421711,1 +5,2,25,0,3,226980,0,11900.88,53.0089,0,9,1,24.70741,0,0,0,0,24.70741,0,0,0,1,0,3,87.2,3.4,0,92,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,92,9.384452,1.098612,3.207103,1 +5,2,25,0,1,226981,0,11900.88,16.70363,1,12,1,15.45595,0,0,0,0,15.45595,0,0,0,1,0,3,91.5,6.9,0,68.2,1000,1000,1,1,1.098612,6.907755,0,3.258096,8.294049,0,0,0,68.2,9.384452,1.098612,2.737994,1 +5,2,25,0,2,226981,0,11900.88,17.70363,1,12,1,14.20455,0,36.42992,0,0,50.63447,0,0,0,1,0,3,91.5,6.9,0,68.2,1000,1000,1,1,1.098612,6.907755,0,3.258096,8.294049,0,0,0,68.2,9.384452,1.098612,3.924633,1 +5,2,25,0,3,226981,0,11900.88,18.70363,1,12,1,9.969658,0,0,0,0,9.969658,0,0,0,1,0,3,91.5,6.9,0,68.2,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,68.2,9.384452,1.098612,2.299546,1 +5,2,25,0,1,226982,0,11900.88,45.77687,1,12,1,167.8259,15.37867,0,0,0,183.2045,0,0,0,4,17,3,73.4,17.2,0,67,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,67,9.384452,1.098612,5.210603,1 +5,2,25,0,2,226982,0,11900.88,46.77687,1,12,1,92.32954,13.84943,0,0,0,106.179,0,0,0,8,5,3,73.4,17.2,0,67,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,67,9.384452,1.098612,4.665126,1 +5,2,25,0,3,226982,0,11900.88,47.77687,1,12,1,185.0889,32.18465,22.61378,0,1655.878,1895.765,1,0,0,8,10,3,73.4,17.2,0,67,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,67,9.384452,1.098612,7.547378,1 +17,2,25,0,1,227002,0,8139.003,8.123203,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,93.3,11.84267,0,96.3,595,599,1,0,1.609438,6.395262,0,3.258096,7.774856,0,0,0,96.3,9.004546,1.609438,,0 +17,2,25,0,2,227002,0,8139.003,9.123203,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,93.3,11.84267,0,96.3,595,599,1,0,1.609438,6.395262,0,3.258096,7.774856,0,0,0,96.3,9.004546,1.609438,,0 +17,2,25,0,3,227002,0,8139.003,10.1232,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,93.3,11.84267,0,96.3,595,599,1,0,1.609438,6.395262,0,3.258096,7.774856,0,0,0,96.3,9.004546,1.609438,,0 +17,2,25,0,1,227003,0,8139.003,37.45927,0,17,1,0,74.75819,0,0,0,74.75819,0,0,0,0,0,5,92.6,3.4,0,85.2,595,599,0,0,1.609438,6.395262,0,3.258096,7.774856,1,0,0,85.2,9.004546,1.609438,4.314259,1 +17,2,25,0,2,227003,0,8139.003,38.45927,0,17,1,84.08982,89.93789,34.68227,0,0,208.71,0,0,0,21,0,5,92.6,3.4,0,85.2,595,599,0,0,1.609438,6.395262,0,3.258096,7.774856,1,0,0,85.2,9.004546,1.609438,5.340946,1 +17,2,25,0,3,227003,0,8139.003,39.45927,0,17,1,26.1633,97.90166,0,0,0,124.065,0,0,0,6,0,5,92.6,3.4,0,85.2,595,599,0,0,1.609438,6.395262,0,3.258096,7.774856,1,0,0,85.2,9.004546,1.609438,4.820806,1 +17,2,25,0,1,227004,0,8139.003,12.52293,0,12,1,50.44202,3.146126,0,0,0,53.58814,0,0,0,4,0,5,93.3,11.84267,0,96.3,595,599,1,0,1.609438,6.395262,0,3.258096,7.774856,0,0,0,96.3,9.004546,1.609438,3.981328,1 +17,2,25,0,2,227004,0,8139.003,13.52293,0,12,1,31.53368,0,.6306736,0,0,32.16436,0,0,0,3,0,5,93.3,11.84267,0,96.3,595,599,1,0,1.609438,6.395262,0,3.258096,7.774856,0,0,0,96.3,9.004546,1.609438,3.470859,1 +17,2,25,0,3,227004,0,8139.003,14.52293,0,12,1,97.01492,8.406497,0,0,0,105.4214,0,0,0,5,0,5,93.3,11.84267,0,96.3,595,599,1,0,1.609438,6.395262,0,3.258096,7.774856,0,0,0,96.3,9.004546,1.609438,4.657966,1 +17,2,25,0,1,227005,0,8139.003,9.946612,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,98.3,11.84267,0,100,595,599,1,1,1.609438,6.395262,0,3.258096,7.774856,0,0,0,100,9.004546,1.609438,,0 +17,2,25,0,2,227005,0,8139.003,10.94661,1,12,1,12.90014,0,0,0,0,12.90014,0,0,0,1,0,5,98.3,11.84267,0,100,595,599,1,1,1.609438,6.395262,0,3.258096,7.774856,0,0,0,100,9.004546,1.609438,2.557238,1 +17,2,25,0,3,227005,0,8139.003,11.94661,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,98.3,11.84267,0,100,595,599,1,1,1.609438,6.395262,0,3.258096,7.774856,0,0,0,100,9.004546,1.609438,,0 +17,2,25,0,1,227006,0,8139.003,36.85421,1,12,1,11.96048,0,36.18825,0,0,48.14873,0,0,0,0,1,5,76.1,3.4,0,73.9,595,599,0,0,1.609438,6.395262,0,3.258096,7.774856,1,0,0,73.9,9.004546,1.609438,3.874295,1 +17,2,25,0,2,227006,0,8139.003,37.85421,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,76.1,3.4,0,73.9,595,599,0,0,1.609438,6.395262,0,3.258096,7.774856,1,0,0,73.9,9.004546,1.609438,,0 +17,2,25,0,3,227006,0,8139.003,38.85421,1,12,1,13.16945,0,21.29061,0,0,34.46005,0,0,0,0,1,5,76.1,3.4,0,73.9,595,599,0,0,1.609438,6.395262,0,3.258096,7.774856,1,0,0,73.9,9.004546,1.609438,3.539801,1 +13,2,0,1,1,227007,0,1173.021,26.98152,0,11,1,0,0,0,0,0,0,0,0,0,0,0,1,57.4,3.4,0,51.1,150,0,0,0,0,0,1,4.564348,5.061929,0,1,0,51.1,7.06819,0,,0 +13,2,0,1,2,227007,0,1173.021,27.98152,0,11,1,0,0,0,0,0,0,0,0,0,0,0,1,57.4,3.4,0,51.1,150,0,0,0,0,0,1,4.564348,5.061929,0,1,0,51.1,7.06819,0,,0 +13,2,0,1,3,227007,0,1173.021,28.98152,0,11,1,0,0,0,0,0,0,0,0,0,0,0,1,57.4,3.4,0,51.1,150,0,0,0,0,0,1,4.564348,5.061929,0,1,0,51.1,7.06819,0,,0 +11,2,0,1,1,227008,0,15428.15,38.26694,0,18,1,97.08841,7.993648,0,0,50.82054,155.9026,1,1,0,5,1,3,77.7,6.9,0,76.1,0,354.72,0,0,1.098612,5.871329,0,0,0,1,0,0,76.1,9.644014,1.098612,5.049232,1 +11,2,0,1,2,227008,0,15428.15,39.26694,0,18,1,138.4218,3.257722,0,0,0,141.6795,0,0,0,5,0,4,77.7,6.9,0,76.1,0,354.72,0,0,1.386294,5.871329,0,0,0,1,0,0,76.1,9.644014,1.386294,4.953568,1 +11,2,0,1,3,227008,0,15428.15,40.26694,0,18,1,70.98354,9.870939,0,0,0,80.85447,0,0,0,4,0,4,77.7,6.9,0,76.1,0,354.72,0,0,1.386294,5.871329,0,0,0,1,0,0,76.1,9.644014,1.386294,4.392651,1 +11,2,0,1,1,227009,0,15428.15,31.33744,1,16,1,70.67231,24.58973,0,0,831.3923,926.6543,1,0,0,5,0,3,63.8,10.3,1,86.4,0,354.72,0,0,1.098612,5.871329,0,0,0,1,0,0,86.4,9.644014,1.098612,6.831581,1 +11,2,0,1,2,227009,0,15428.15,32.33744,1,16,1,139.7201,49.63803,0,0,0,189.3581,0,0,0,14,2,4,63.8,10.3,1,86.4,0,354.72,0,0,1.386294,5.871329,0,0,0,1,0,0,86.4,9.644014,1.386294,5.24364,1 +11,2,0,1,3,227009,0,15428.15,33.33744,1,16,1,617.0449,17.21851,0,0,804.3836,1438.647,1,0,0,6,0,4,63.8,10.3,1,86.4,0,354.72,0,0,1.386294,5.871329,0,0,0,1,0,0,86.4,9.644014,1.386294,7.271459,1 +13,2,0,1,1,227025,0,9795.895,28.69268,0,13,1,0,0,0,0,0,0,0,0,0,0,0,2,77.7,0,0,77.3,300,312,0,0,.6931472,5.743003,1,4.564348,5.755076,0,1,0,77.3,9.18982,.6931472,,0 +13,2,0,1,2,227025,0,9795.895,29.69268,0,13,1,0,0,0,0,0,0,0,0,0,0,0,3,77.7,0,0,77.3,300,312,0,0,1.098612,5.743003,1,4.564348,5.755076,0,1,0,77.3,9.18982,1.098612,,0 +13,2,0,1,3,227025,0,9795.895,30.69268,0,13,1,0,0,0,0,0,0,0,0,0,0,0,3,77.7,0,0,77.3,300,312,0,0,1.098612,5.743003,1,4.564348,5.755076,0,1,0,77.3,9.18982,1.098612,,0 +13,2,0,1,1,227027,0,9795.895,23.14579,1,12,1,55.41035,26.25196,0,0,785.1804,866.8427,1,0,0,4,0,2,25,10.3,0,37.5,300,312,0,0,.6931472,5.743003,1,4.564348,5.755076,0,1,0,37.5,9.18982,.6931472,6.764857,1 +13,2,0,1,2,227027,0,9795.895,24.14579,1,12,1,12.97453,9.673234,0,0,0,22.64777,0,0,0,2,0,3,25,10.3,0,37.5,300,312,0,0,1.098612,5.743003,1,4.564348,5.755076,0,1,0,37.5,9.18982,1.098612,3.120061,1 +13,2,0,1,3,227027,0,9795.895,25.14579,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,25,10.3,0,37.5,300,312,0,0,1.098612,5.743003,1,4.564348,5.755076,0,1,0,37.5,9.18982,1.098612,,0 +11,2,0,0,1,227032,0,11667.45,29.50856,1,16,1,133.1657,6.087877,0,0,0,139.2536,0,0,0,3,1,3,84.6,10.3,0,87.5,0,332.28,0,0,1.098612,5.805978,0,0,0,0,0,0,87.5,9.364644,1.098612,4.936296,1 +11,2,0,0,2,227032,0,11667.45,30.50856,1,16,1,189.9131,28.28185,0,0,0,218.195,0,0,0,34,0,3,84.6,10.3,0,87.5,0,332.28,0,0,1.098612,5.805978,0,0,0,0,0,0,87.5,9.364644,1.098612,5.385389,1 +11,2,0,0,3,227032,0,11667.45,31.50856,1,16,1,134.2012,6.94259,0,0,0,141.1438,0,0,0,18,1,3,84.6,10.3,0,87.5,0,332.28,0,0,1.098612,5.805978,0,0,0,0,0,0,87.5,9.364644,1.098612,4.949779,1 +11,2,0,0,1,227033,0,11667.45,33.0267,0,22,1,0,0,0,0,0,0,0,0,0,0,0,3,75,17.2,0,69.3,0,332.28,0,0,1.098612,5.805978,0,0,0,0,0,0,69.3,9.364644,1.098612,,0 +11,2,0,0,2,227033,0,11667.45,34.0267,0,22,1,164.6525,18.23842,31.37066,0,128.6631,342.9247,1,0,0,1,1,3,75,17.2,0,69.3,0,332.28,0,0,1.098612,5.805978,0,0,0,0,0,0,69.3,9.364644,1.098612,5.837511,1 +11,2,0,0,3,227033,0,11667.45,35.0267,0,22,1,187.3209,10.45394,0,0,0,197.7748,0,0,0,3,0,3,75,17.2,0,69.3,0,332.28,0,0,1.098612,5.805978,0,0,0,0,0,0,69.3,9.364644,1.098612,5.287129,1 +11,2,0,0,1,227034,0,11667.45,1.026694,1,16,1,61.14346,13.01747,0,0,0,74.16093,0,0,0,7,0,3,81.35272,11.84267,0,92.6,0,332.28,1,1,1.098612,5.805978,0,0,0,0,0,0,92.6,9.364644,1.098612,4.306238,1 +11,2,0,0,2,227034,0,11667.45,2.026694,1,16,1,7.722008,0,0,0,0,7.722008,0,0,0,1,0,3,81.35272,11.84267,0,92.6,0,332.28,1,1,1.098612,5.805978,0,0,0,0,0,0,92.6,9.364644,1.098612,2.044074,1 +11,2,0,0,3,227034,0,11667.45,3.026694,1,16,1,20.69426,0,0,0,0,20.69426,0,0,0,2,0,3,81.35272,11.84267,0,92.6,0,332.28,1,1,1.098612,5.805978,0,0,0,0,0,0,92.6,9.364644,1.098612,3.029856,1 +11,2,0,0,1,227058,0,10673.9,20.26557,0,12,1,0,1.615264,0,0,0,1.615264,0,0,0,0,0,3,73.7,13.8,0,72.7,0,246.24,0,0,1.098612,5.506307,0,0,0,1,0,0,72.7,9.275651,1.098612,.4794984,1 +11,2,0,0,2,227058,0,10673.9,21.26557,0,12,1,16.81884,3.382989,0,0,0,20.20183,0,0,0,1,0,3,73.7,13.8,0,72.7,0,246.24,0,0,1.098612,5.506307,0,0,0,1,0,0,72.7,9.275651,1.098612,3.005773,1 +11,2,0,0,3,227058,0,10673.9,22.26557,0,12,1,8.810573,0,0,0,0,8.810573,0,0,0,1,0,3,73.7,13.8,0,72.7,0,246.24,0,0,1.098612,5.506307,0,0,0,1,0,0,72.7,9.275651,1.098612,2.175952,1 +11,2,0,0,1,227059,0,10673.9,46.47502,0,12,1,234.4485,7.867224,57.28698,0,0,299.6027,0,0,0,7,1,3,73.2,3.4,0,64.3,0,246.24,0,0,1.098612,5.506307,0,0,0,1,0,0,64.3,9.275651,1.098612,5.702457,1 +11,2,0,0,2,227059,0,10673.9,47.47502,0,12,1,107.6406,0,0,0,0,107.6406,0,0,0,4,1,3,73.2,3.4,0,64.3,0,246.24,0,0,1.098612,5.506307,0,0,0,1,0,0,64.3,9.275651,1.098612,4.678798,1 +11,2,0,0,3,227059,0,10673.9,48.47502,0,12,1,163.1057,8.792952,0,0,0,171.8987,0,0,0,2,19,3,73.2,3.4,0,64.3,0,246.24,0,0,1.098612,5.506307,0,0,0,1,0,0,64.3,9.275651,1.098612,5.146905,1 +11,2,0,0,1,227060,0,10673.9,45.82341,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,89.4,17.2,0,72.7,0,246.24,0,0,1.098612,5.506307,0,0,0,1,0,0,72.7,9.275651,1.098612,,0 +11,2,0,0,2,227060,0,10673.9,46.82341,1,12,1,16.81884,8.24123,0,0,0,25.06007,0,0,0,1,1,3,89.4,17.2,0,72.7,0,246.24,0,0,1.098612,5.506307,0,0,0,1,0,0,72.7,9.275651,1.098612,3.221276,1 +11,2,0,0,3,227060,0,10673.9,47.82341,1,12,1,151.5419,16.20264,30.96916,0,0,198.7137,0,0,0,3,16,3,89.4,17.2,0,72.7,0,246.24,0,0,1.098612,5.506307,0,0,0,1,0,0,72.7,9.275651,1.098612,5.291865,1 +5,2,25,1,1,227084,0,9892.669,28.27652,1,12,1,76.63651,34.50772,0,0,0,111.1442,0,0,0,8,0,5,81.9,10.3,0,75,722.1,0,0,0,1.609438,0,0,3.258096,7.968458,0,1,0,75,9.199651,1.609438,4.710829,1 +5,2,25,1,2,227084,0,9892.669,29.27652,1,12,1,89.91759,68.4828,17.93505,0,0,176.3354,0,0,0,10,0,5,81.9,10.3,0,75,722.1,0,0,0,1.609438,0,0,3.258096,7.968458,0,1,0,75,9.199651,1.609438,5.172388,1 +5,2,25,1,3,227084,0,9892.669,30.27652,1,12,1,113.6568,96.34322,0,0,0,210,0,0,0,12,0,5,81.9,10.3,0,75,722.1,0,0,0,1.609438,0,0,3.258096,7.968458,0,1,0,75,9.199651,1.609438,5.347107,1 +5,2,25,1,1,227085,0,9892.669,6.75154,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,91.7,11.84267,0,100,722.1,0,1,0,1.609438,0,0,3.258096,7.968458,1,0,0,100,9.199651,1.609438,,0 +5,2,25,1,2,227085,0,9892.669,7.75154,0,12,1,58.03684,2.443044,0,0,0,60.47989,0,0,0,3,0,5,91.7,11.84267,0,100,722.1,0,1,0,1.609438,0,0,3.258096,7.968458,1,0,0,100,9.199651,1.609438,4.102311,1 +5,2,25,1,3,227085,0,9892.669,8.75154,0,12,1,21.11411,0,0,0,0,21.11411,0,0,0,2,0,5,91.7,11.84267,0,100,722.1,0,1,0,1.609438,0,0,3.258096,7.968458,1,0,0,100,9.199651,1.609438,3.049941,1 +5,2,25,1,1,227086,0,9892.669,9.377139,0,12,1,76.05109,3.459287,0,0,0,79.51038,0,0,0,8,0,5,91.7,11.84267,0,100,722.1,0,1,0,1.609438,0,0,3.258096,7.968458,1,0,0,100,9.199651,1.609438,4.375887,1 +5,2,25,1,2,227086,0,9892.669,10.37714,0,12,1,40.01454,11.63354,0,0,0,51.64809,0,0,0,6,0,5,91.7,11.84267,0,100,722.1,0,1,0,1.609438,0,0,3.258096,7.968458,1,0,0,100,9.199651,1.609438,3.944453,1 +5,2,25,1,3,227086,0,9892.669,11.37714,0,12,1,46.72057,7.353998,0,0,0,54.07457,0,0,0,7,0,5,91.7,11.84267,0,100,722.1,0,1,0,1.609438,0,0,3.258096,7.968458,1,0,0,100,9.199651,1.609438,3.990364,1 +5,2,25,1,1,227087,0,9892.669,31.66324,0,12,1,124.8004,24.0447,0,0,0,148.8451,0,0,0,11,0,5,72.3,10.3,1,58,722.1,0,0,0,1.609438,0,0,3.258096,7.968458,0,1,0,58,9.199651,1.609438,5.002906,1 +5,2,25,1,2,227087,0,9892.669,32.66325,0,12,1,11.87591,3.11682,0,0,0,14.99273,0,0,0,2,0,5,72.3,10.3,1,58,722.1,0,0,0,1.609438,0,0,3.258096,7.968458,0,1,0,58,9.199651,1.609438,2.707565,1 +5,2,25,1,3,227087,0,9892.669,33.66325,0,12,1,79.84726,7.237197,0,0,0,87.08446,0,0,0,7,0,5,72.3,10.3,1,58,722.1,0,0,0,1.609438,0,0,3.258096,7.968458,0,1,0,58,9.199651,1.609438,4.466878,1 +5,2,25,1,1,227088,0,9892.669,8.394251,1,12,1,79.0314,6.88132,0,0,0,85.91272,0,0,0,6,0,5,91.7,11.84267,0,100,722.1,0,1,1,1.609438,0,0,3.258096,7.968458,1,0,0,100,9.199651,1.609438,4.453332,1 +5,2,25,1,2,227088,0,9892.669,9.394251,1,12,1,22.17644,5.647116,0,0,0,27.82356,0,0,0,3,0,5,91.7,11.84267,0,100,722.1,0,1,1,1.609438,0,0,3.258096,7.968458,1,0,0,100,9.199651,1.609438,3.325883,1 +5,2,25,1,3,227088,0,9892.669,10.39425,1,12,1,57.74932,4.173405,0,0,0,61.92273,0,0,0,6,0,5,91.7,11.84267,0,100,722.1,0,1,1,1.609438,0,0,3.258096,7.968458,1,0,0,100,9.199651,1.609438,4.125887,1 +13,2,0,1,1,227098,0,8665.641,47.05818,0,9,1,68.68713,28.67655,54.83854,21.17522,0,152.2022,0,0,2,2,1,4,77.7,6.9,0,93.2,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,93.2,9.067237,1.386294,5.02521,1 +13,2,0,1,2,227098,0,8665.641,48.05818,0,9,1,413.972,30.57915,0,19.30502,0,444.5511,0,0,1,13,0,4,77.7,6.9,0,93.2,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,93.2,9.067237,1.386294,6.097065,1 +13,2,0,1,3,227098,0,8665.641,49.05818,0,9,1,108.0329,5.594125,0,0,0,113.6271,0,0,0,0,13,4,77.7,6.9,0,93.2,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,93.2,9.067237,1.386294,4.732922,1 +13,2,0,1,1,227099,0,8665.641,46.61739,1,8,1,167.549,10.26998,0,0,264.1186,441.9375,1,0,0,10,0,4,91.5,13.8,0,97.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,97.7,9.067237,1.386294,6.091168,1 +13,2,0,1,2,227099,0,8665.641,47.61739,1,8,1,19.78765,0,0,0,1281.559,1301.347,1,0,0,4,0,4,91.5,13.8,0,97.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,97.7,9.067237,1.386294,7.171155,1 +13,2,0,1,3,227099,0,8665.641,48.61739,1,8,1,52.51447,2.527815,32.9595,0,0,88.00178,0,0,0,3,0,4,91.5,13.8,0,97.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,97.7,9.067237,1.386294,4.477357,1 +13,2,0,1,1,227100,0,8665.641,12.96646,1,8,1,0,0,0,0,0,0,0,0,0,0,0,4,100,11.84267,0,100,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,100,9.067237,1.386294,,0 +13,2,0,1,2,227100,0,8665.641,13.96646,1,8,1,7.239382,1.737452,0,0,0,8.976834,0,0,0,1,0,4,100,11.84267,0,100,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,100,9.067237,1.386294,2.194647,1 +13,2,0,1,3,227100,0,8665.641,14.96646,1,8,1,13.79617,0,0,0,0,13.79617,0,0,0,1,0,4,100,11.84267,0,100,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,100,9.067237,1.386294,2.624391,1 +13,2,0,1,1,227101,0,8665.641,14.17933,0,8,1,7.94071,0,0,0,0,7.94071,0,0,0,1,0,4,91.5,0,1,100,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,100,9.067237,1.386294,2.072003,1 +13,2,0,1,2,227101,0,8665.641,15.17933,0,8,1,0,0,0,0,0,0,0,0,0,0,0,4,91.5,0,1,100,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,100,9.067237,1.386294,,0 +13,2,0,1,3,227101,0,8665.641,16.17933,0,8,1,0,0,0,0,0,0,0,0,0,0,0,4,91.5,0,1,100,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,100,9.067237,1.386294,,0 +11,2,0,1,1,227117,0,2940.281,36.69815,0,12,1,9.845662,0,0,0,0,9.845662,0,0,0,2,0,1,59,6.9,0,76.1,0,0,0,0,0,0,0,0,0,0,0,0,76.1,7.986601,0,2.287031,1 +11,2,0,1,2,227117,0,2940.281,37.69815,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,59,6.9,0,76.1,0,0,0,0,0,0,0,0,0,0,0,0,76.1,7.986601,0,,0 +11,2,0,1,3,227117,0,2940.281,38.69815,0,12,1,201.2579,53.4142,0,0,0,254.6721,0,0,0,7,0,1,59,6.9,0,76.1,0,0,0,0,0,0,0,0,0,0,0,0,76.1,7.986601,0,5.539977,1 +11,2,0,1,1,227170,0,8665.641,20.61875,1,11,1,189.4004,32.25375,42.80514,0,0,264.4593,0,0,0,8,1,2,62.8,17.2,1,34.1,0,0,0,0,.6931472,0,0,0,0,0,1,0,34.1,9.067237,.6931472,5.577687,1 +11,2,0,1,2,227170,0,8665.641,21.61875,1,11,1,113.47,16.6325,35.69058,0,0,165.7931,0,0,0,4,2,2,62.8,17.2,1,34.1,0,0,0,0,.6931472,0,0,0,0,0,1,0,34.1,9.067237,.6931472,5.110741,1 +11,2,0,1,3,227170,0,8665.641,22.61875,1,11,1,228.8482,4.322493,0,9.485095,0,233.1707,0,0,1,5,1,2,62.8,17.2,1,34.1,0,0,0,0,.6931472,0,0,0,0,0,1,0,34.1,9.067237,.6931472,5.451771,1 +11,2,0,1,4,227170,0,8665.641,23.61875,1,11,1,115.1778,12.30356,30.3019,0,0,157.7833,0,0,0,7,2,2,62.8,17.2,1,34.1,0,0,0,0,.6931472,0,0,0,0,0,1,0,34.1,9.067237,.6931472,5.061223,1 +11,2,0,1,5,227170,0,8665.641,24.61875,1,11,1,49.92548,7.816691,0,0,658.588,716.3301,1,0,0,3,0,2,62.8,17.2,1,34.1,0,0,0,0,.6931472,0,0,0,0,0,1,0,34.1,9.067237,.6931472,6.574141,1 +11,2,0,1,1,227171,0,8665.641,3.18412,1,11,1,38.81156,17.26445,0,0,0,56.07602,0,0,0,5,0,2,81.35272,11.84267,0,92.6,0,0,1,1,.6931472,0,0,0,0,1,0,0,92.6,9.067237,.6931472,4.026708,1 +11,2,0,1,2,227171,0,8665.641,4.184121,1,11,1,35.38311,0,0,0,201.3128,236.696,1,0,0,2,0,2,81.35272,11.84267,0,92.6,0,0,1,1,.6931472,0,0,0,0,1,0,0,92.6,9.067237,.6931472,5.466776,1 +11,2,0,1,3,227171,0,8665.641,5.184121,1,11,1,66.6215,7.673893,0,38.39205,0,74.29539,0,0,3,7,0,2,81.35272,11.84267,0,92.6,0,0,1,1,.6931472,0,0,0,0,1,0,0,92.6,9.067237,.6931472,4.308049,1 +11,2,0,1,4,227171,0,8665.641,6.184121,1,11,1,36.39371,12.29942,0,0,0,48.69313,0,0,0,5,0,2,81.35272,11.84267,0,92.6,0,0,1,1,.6931472,0,0,0,0,1,0,0,92.6,9.067237,.6931472,3.885538,1 +11,2,0,1,5,227171,0,8665.641,7.184121,1,11,1,238.0216,0,0,0,0,238.0216,0,0,0,6,0,2,81.35272,11.84267,0,92.6,0,0,1,1,.6931472,0,0,0,0,1,0,0,92.6,9.067237,.6931472,5.472362,1 +19,2,25,0,1,227172,0,2217.009,22.53799,1,12,1,105.5056,40.56644,0,7.411329,0,146.072,0,0,1,10,0,3,46.8,10.3,0,68.2,514.8,514.8,0,0,1.098612,6.243779,0,3.258096,7.630073,0,0,0,68.2,7.704365,1.098612,4.984099,1 +19,2,25,0,2,227172,0,2217.009,23.53799,1,12,1,84.26641,36.28378,0,0,0,120.5502,0,0,0,7,0,3,46.8,10.3,0,68.2,514.8,514.8,0,0,1.098612,6.243779,0,3.258096,7.630073,0,0,0,68.2,7.704365,1.098612,4.792066,1 +19,2,25,0,3,227172,0,2217.009,24.53799,1,12,1,533.6226,10.83667,0,0,293.6805,838.1398,1,0,0,7,1,3,46.8,10.3,0,68.2,514.8,514.8,0,0,1.098612,6.243779,0,3.258096,7.630073,0,0,0,68.2,7.704365,1.098612,6.731185,1 +19,2,25,0,1,227173,0,2217.009,2.069815,1,12,1,24.88089,3.05982,0,0,0,27.94071,0,0,0,3,0,3,81.35272,11.84267,0,66.7,514.8,514.8,1,1,1.098612,6.243779,0,3.258096,7.630073,0,1,0,66.7,7.704365,1.098612,3.330085,1 +19,2,25,0,2,227173,0,2217.009,3.069815,1,12,1,0,5.173745,0,0,0,5.173745,0,0,0,0,0,3,81.35272,11.84267,0,66.7,514.8,514.8,1,1,1.098612,6.243779,0,3.258096,7.630073,0,1,0,66.7,7.704365,1.098612,1.643597,1 +19,2,25,0,3,227173,0,2217.009,4.069815,1,12,1,21.91811,2.242991,0,0,0,24.1611,0,0,0,1,0,3,81.35272,11.84267,0,66.7,514.8,514.8,1,1,1.098612,6.243779,0,3.258096,7.630073,0,1,0,66.7,7.704365,1.098612,3.184744,1 +19,2,25,0,1,227174,0,2217.009,3.627652,0,12,1,39.70355,0,0,0,0,39.70355,0,0,0,3,0,3,81.35272,11.84267,0,51.9,514.8,514.8,1,0,1.098612,6.243779,0,3.258096,7.630073,0,0,0,51.9,7.704365,1.098612,3.681441,1 +19,2,25,0,2,227174,0,2217.009,4.627652,0,12,1,33.78378,4.937259,0,0,0,38.72104,0,0,0,3,0,3,81.35272,11.84267,0,51.9,514.8,514.8,1,0,1.098612,6.243779,0,3.258096,7.630073,0,0,0,51.9,7.704365,1.098612,3.656383,1 +19,2,25,0,3,227174,0,2217.009,5.627652,0,12,1,13.57365,3.377837,0,0,0,16.95149,0,0,0,1,0,3,81.35272,11.84267,0,51.9,514.8,514.8,1,0,1.098612,6.243779,0,3.258096,7.630073,0,0,0,51.9,7.704365,1.098612,2.830356,1 +11,2,0,1,1,227178,0,19315.54,22.39836,0,14,1,0,0,0,0,0,0,0,0,0,0,0,1,63.8,13.8,0,62.5,0,0,0,0,0,0,0,0,0,1,0,0,62.5,9.868717,0,,0 +11,2,0,1,2,227178,0,19315.54,23.39836,0,14,1,0,0,0,0,0,0,0,0,0,0,0,1,63.8,13.8,0,62.5,0,0,0,0,0,0,0,0,0,1,0,0,62.5,9.868717,0,,0 +11,2,0,1,3,227178,0,19315.54,24.39836,0,14,1,0,0,0,0,0,0,0,0,0,0,0,1,63.8,13.8,0,62.5,0,0,0,0,0,0,0,0,0,1,0,0,62.5,9.868717,0,,0 +11,2,0,1,4,227178,0,19315.54,25.39836,0,14,1,0,0,0,0,0,0,0,0,0,0,0,1,63.8,13.8,0,62.5,0,0,0,0,0,0,0,0,0,1,0,0,62.5,9.868717,0,,0 +11,2,0,1,5,227178,0,19315.54,26.39836,0,14,1,0,0,0,0,0,0,0,0,0,0,0,1,63.8,13.8,0,62.5,0,0,0,0,0,0,0,0,0,1,0,0,62.5,9.868717,0,,0 +13,2,0,0,1,227182,0,4913.196,53.57426,1,12,1,200.2141,49.00964,53.7152,0,993.8704,1296.809,1,0,0,19,12,2,64.9,31,1,73.9,300,500.4,0,0,.6931472,6.215408,1,4.564348,5.755076,0,0,0,73.9,8.499884,.6931472,7.167662,1 +13,2,0,0,2,227182,0,4913.196,54.57426,1,12,1,236.9449,74.97316,0,0,0,311.918,0,0,0,19,17,1,64.9,31,1,73.9,300,500.4,0,0,0,6.215408,1,4.564348,5.755076,0,0,0,73.9,8.499884,0,5.74274,1 +13,2,0,0,3,227182,0,4913.196,55.57426,1,12,1,216.1247,58.21138,0,0,0,274.336,0,0,0,12,10,1,64.9,31,1,73.9,300,500.4,0,0,0,6.215408,1,4.564348,5.755076,0,0,0,73.9,8.499884,0,5.614354,1 +13,2,0,0,1,227183,0,4913.196,18.2642,1,11,1,92.07709,7.200214,0,0,0,99.27731,0,0,0,2,14,2,68.1,3.4,0,84.1,300,500.4,0,0,.6931472,6.215408,1,4.564348,5.755076,0,0,0,84.1,8.499884,.6931472,4.597917,1 +11,2,0,1,1,227195,0,8665.641,16.58864,1,12,1,128.6395,8.17893,0,0,100,236.8184,1,0,0,5,12,4,39.9,10.3,1,46.6,0,48,1,1,1.386294,3.871201,0,0,0,0,0,0,46.6,9.067237,1.386294,5.467294,1 +11,2,0,1,2,227195,0,8665.641,17.58864,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,39.9,10.3,1,46.6,0,48,1,1,1.386294,3.871201,0,0,0,0,0,0,46.6,9.067237,1.386294,,0 +11,2,0,1,3,227195,0,8665.641,18.58864,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,39.9,10.3,1,46.6,0,48,0,0,1.386294,3.871201,0,0,0,0,0,0,46.6,9.067237,1.386294,,0 +11,2,0,1,1,227196,0,8665.641,19.38946,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,26.6,13.8,1,46.6,0,48,0,0,1.386294,3.871201,0,0,0,0,0,0,46.6,9.067237,1.386294,,0 +11,2,0,1,2,227196,0,8665.641,20.38946,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,26.6,13.8,1,46.6,0,48,0,0,1.386294,3.871201,0,0,0,0,0,0,46.6,9.067237,1.386294,,0 +11,2,0,1,3,227196,0,8665.641,21.38946,0,12,1,0,0,33.27993,0,0,33.27993,0,0,0,0,0,4,26.6,13.8,1,46.6,0,48,0,0,1.386294,3.871201,0,0,0,0,0,0,46.6,9.067237,1.386294,3.504955,1 +11,2,0,1,1,227197,0,8665.641,20.34771,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,55.9,3.4,0,70.5,0,48,0,0,1.386294,3.871201,0,0,0,0,0,0,70.5,9.067237,1.386294,,0 +11,2,0,1,2,227197,0,8665.641,21.34771,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,55.9,3.4,0,70.5,0,48,0,0,1.386294,3.871201,0,0,0,0,0,0,70.5,9.067237,1.386294,,0 +11,2,0,1,3,227197,0,8665.641,22.34771,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,55.9,3.4,0,70.5,0,48,0,0,1.386294,3.871201,0,0,0,0,0,0,70.5,9.067237,1.386294,,0 +11,2,0,1,1,227199,0,8665.641,39.69336,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,71.3,17.2,0,68.2,0,48,0,0,1.386294,3.871201,0,0,0,0,0,0,68.2,9.067237,1.386294,,0 +11,2,0,1,2,227199,0,8665.641,40.69336,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,71.3,17.2,0,68.2,0,48,0,0,1.386294,3.871201,0,0,0,0,0,0,68.2,9.067237,1.386294,,0 +11,2,0,1,3,227199,0,8665.641,41.69336,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,71.3,17.2,0,68.2,0,48,0,0,1.386294,3.871201,0,0,0,0,0,0,68.2,9.067237,1.386294,,0 +5,2,25,0,1,227226,0,7191.202,37.80424,1,14,1,81.80593,21.30997,0,0,0,103.1159,0,0,0,9,0,3,72.9,17.2,0,70.5,539.85,539.85,0,0,1.098612,6.291291,0,3.258096,7.677586,0,0,0,70.5,8.880753,1.098612,4.635854,1 +5,2,25,0,2,227226,0,7191.202,38.80424,1,14,1,60.07371,7.82801,0,0,0,67.90172,0,0,0,12,0,3,72.9,17.2,0,70.5,539.85,539.85,0,0,1.098612,6.291291,0,3.258096,7.677586,0,0,0,70.5,8.880753,1.098612,4.218061,1 +5,2,25,0,3,227226,0,7191.202,39.80424,1,14,1,57.20146,13.268,0,0,0,70.46946,0,0,0,10,0,1,72.9,17.2,0,70.5,539.85,539.85,0,0,0,6.291291,0,3.258096,7.677586,0,0,0,70.5,8.880753,0,4.255179,1 +5,2,25,0,1,227227,0,7191.202,15.55099,0,14,1,26.95418,0,0,0,0,26.95418,0,0,0,1,0,3,64.9,10.3,0,73.9,539.85,539.85,1,0,1.098612,6.291291,0,3.258096,7.677586,0,0,0,73.9,8.880753,1.098612,3.294138,1 +5,2,25,0,2,227227,0,7191.202,16.55099,0,14,1,40.29484,9.38575,0,0,0,49.68059,0,0,0,5,0,3,64.9,10.3,0,73.9,539.85,539.85,1,0,1.098612,6.291291,0,3.258096,7.677586,0,0,0,73.9,8.880753,1.098612,3.905614,1 +5,2,25,0,1,227228,0,7191.202,12.75291,0,14,1,18.32884,0,0,0,0,18.32884,0,0,0,1,0,3,66.7,11.84267,0,74.1,539.85,539.85,1,0,1.098612,6.291291,0,3.258096,7.677586,0,0,0,74.1,8.880753,1.098612,2.908476,1 +5,2,25,0,2,227228,0,7191.202,13.75291,0,14,.4684932,17.69042,7.257985,0,0,0,24.9484,0,0,0,3,0,3,66.7,11.84267,0,74.1,539.85,539.85,1,0,1.098612,6.291291,0,3.258096,7.677586,0,0,0,74.1,8.880753,1.098612,3.21681,1 +11,2,0,0,1,227231,0,3516.129,8.506502,1,12,1,0,.7494647,0,0,0,.7494647,0,0,0,0,0,6,88.3,11.84267,0,85.2,0,0,1,1,1.791759,0,0,0,0,0,0,0,85.2,8.165401,1.791759,-.2883961,1 +11,2,0,0,2,227231,0,3516.129,9.506502,1,12,1,10.00488,4.880429,0,0,0,14.88531,0,0,0,1,0,6,88.3,11.84267,0,85.2,0,0,1,1,1.791759,0,0,0,0,0,0,0,85.2,8.165401,1.791759,2.700375,1 +11,2,0,0,3,227231,0,3516.129,10.5065,1,12,1,15.58266,28.55917,0,0,0,44.14183,0,0,0,2,0,6,88.3,11.84267,0,85.2,0,0,1,1,1.791759,0,0,0,0,0,0,0,85.2,8.165401,1.791759,3.787408,1 +11,2,0,0,1,227232,0,3516.129,9.338809,1,12,1,0,.7494647,0,0,0,.7494647,0,0,0,0,0,6,85,11.84267,1,51.9,0,0,1,1,1.791759,0,0,0,0,0,1,0,51.9,8.165401,1.791759,-.2883961,1 +11,2,0,0,2,227232,0,3516.129,10.33881,1,12,1,6.100537,6.564178,0,0,0,12.66471,0,0,0,1,0,6,85,11.84267,1,51.9,0,0,1,1,1.791759,0,0,0,0,0,1,0,51.9,8.165401,1.791759,2.53882,1 +11,2,0,0,3,227232,0,3516.129,11.33881,1,12,1,44.30894,7.859078,0,0,0,52.16802,0,0,0,2,0,6,85,11.84267,1,51.9,0,0,1,1,1.791759,0,0,0,0,0,1,0,51.9,8.165401,1.791759,3.95447,1 +11,2,0,0,1,227233,0,3516.129,4.982888,1,12,1,13.3833,.7494647,0,0,0,14.13276,0,0,0,1,0,6,81.35272,11.84267,0,59.3,0,0,1,1,1.791759,0,0,0,0,0,1,0,59.3,8.165401,1.791759,2.648496,1 +11,2,0,0,2,227233,0,3516.129,5.982888,1,12,1,0,4.148365,0,0,0,4.148365,0,0,0,0,0,6,81.35272,11.84267,0,59.3,0,0,1,1,1.791759,0,0,0,0,0,1,0,59.3,8.165401,1.791759,1.422714,1 +11,2,0,0,3,227233,0,3516.129,6.982888,1,12,1,0,1.535682,0,0,0,1.535682,0,0,0,0,0,6,81.35272,11.84267,0,59.3,0,0,1,1,1.791759,0,0,0,0,0,1,0,59.3,8.165401,1.791759,.4289746,1 +11,2,0,0,1,227234,0,3516.129,27.69336,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,81.9,27.6,0,58,0,0,0,0,1.791759,0,0,0,0,1,0,0,58,8.165401,1.791759,,0 +11,2,0,0,2,227234,0,3516.129,28.69336,1,12,1,76.37872,80.8492,0,0,1139.932,1297.16,2,0,0,6,0,6,81.9,27.6,0,58,0,0,0,0,1.791759,0,0,0,0,1,0,0,58,8.165401,1.791759,7.167932,1 +11,2,0,0,3,227234,0,3516.129,29.69336,1,12,1,15.80849,33.34688,0,0,0,49.15538,0,0,0,2,0,6,81.9,27.6,0,58,0,0,0,0,1.791759,0,0,0,0,1,0,0,58,8.165401,1.791759,3.894986,1 +11,2,0,0,1,227235,0,3516.129,7.438741,0,12,1,330.1338,132.8747,0,0,0,463.0086,0,0,0,14,0,6,88.3,11.84267,1,33.3,0,0,1,0,1.791759,0,0,0,0,0,1,0,33.3,8.165401,1.791759,6.137745,1 +11,2,0,0,2,227235,0,3516.129,8.438741,0,12,1,138.9409,117.2523,0,0,0,256.1933,0,0,0,8,0,6,88.3,11.84267,1,33.3,0,0,1,0,1.791759,0,0,0,0,0,1,0,33.3,8.165401,1.791759,5.545932,1 +11,2,0,0,3,227235,0,3516.129,9.438741,0,12,1,36.01626,125.1807,0,0,0,161.1969,0,0,0,3,0,6,88.3,11.84267,1,33.3,0,0,1,0,1.791759,0,0,0,0,0,1,0,33.3,8.165401,1.791759,5.082627,1 +11,2,0,0,1,227236,0,3516.129,5.927447,1,12,1,14.1863,.7494647,0,0,0,14.93576,0,0,0,3,0,6,86.7,11.84267,0,85.2,0,0,1,1,1.791759,0,0,0,0,0,0,0,85.2,8.165401,1.791759,2.703758,1 +11,2,0,0,2,227236,0,3516.129,6.927447,1,12,1,5.856515,9.004393,0,0,0,14.86091,0,0,0,1,0,6,86.7,11.84267,0,85.2,0,0,1,1,1.791759,0,0,0,0,0,0,0,85.2,8.165401,1.791759,2.698734,1 +11,2,0,0,3,227236,0,3516.129,7.927447,1,12,1,6.775068,1.535682,0,0,0,8.31075,0,0,0,1,0,6,86.7,11.84267,0,85.2,0,0,1,1,1.791759,0,0,0,0,0,0,0,85.2,8.165401,1.791759,2.11755,1 +18,2,25,1,1,227245,0,2105.572,26.26147,1,14,1,160.6469,148.0916,21.56334,1261.725,1564.555,1894.857,1,0,47,4,0,2,42,20.7,0,71.6,320,320,0,0,.6931472,5.768321,0,3.258096,7.154615,1,0,0,71.6,7.652817,.6931472,7.546899,1 +18,2,25,1,2,227245,0,2105.572,27.26147,1,14,1,65.84766,106.1622,0,1086.978,0,172.0098,0,0,41,4,0,2,42,20.7,0,71.6,320,320,0,0,.6931472,5.768321,0,3.258096,7.154615,1,0,0,71.6,7.652817,.6931472,5.147552,1 +18,2,25,1,3,227245,0,2105.572,28.26147,1,14,1,67.22881,96.57247,0,1071.103,0,163.8013,0,0,40,7,0,2,42,20.7,0,71.6,320,320,0,0,.6931472,5.768321,0,3.258096,7.154615,1,0,0,71.6,7.652817,.6931472,5.098654,1 +18,2,25,1,1,227246,0,2105.572,6.091718,0,14,1,20.48518,0,0,0,296.9811,317.4663,1,0,0,3,0,2,88.3,11.84267,0,88.9,320,320,1,0,.6931472,5.768321,0,3.258096,7.154615,0,0,0,88.9,7.652817,.6931472,5.760372,1 +18,2,25,1,2,227246,0,2105.572,7.091718,0,14,1,20.63882,0,0,0,0,20.63882,0,0,0,3,0,2,88.3,11.84267,0,88.9,320,320,1,0,.6931472,5.768321,0,3.258096,7.154615,0,0,0,88.9,7.652817,.6931472,3.027174,1 +18,2,25,1,3,227246,0,2105.572,8.091718,0,14,1,0,0,0,0,0,0,0,0,0,0,0,2,88.3,11.84267,0,88.9,320,320,1,0,.6931472,5.768321,0,3.258096,7.154615,0,0,0,88.9,7.652817,.6931472,,0 +17,2,25,0,1,227258,0,10679.77,10.81177,1,10,1,47.55281,2.210201,0,0,0,49.76301,0,0,0,6,1,5,83.3,11.84267,0,85.2,780,780,1,1,1.609438,6.659294,0,3.258096,8.045588,0,0,0,85.2,9.276199,1.609438,3.907272,1 +17,2,25,0,2,227258,0,10679.77,11.81177,1,10,1,109.6117,0,0,0,0,109.6117,0,0,0,7,0,5,83.3,11.84267,0,85.2,780,780,1,1,1.609438,6.659294,0,3.258096,8.045588,0,0,0,85.2,9.276199,1.609438,4.696945,1 +17,2,25,0,3,227258,0,10679.77,12.81177,1,10,1,63.93585,0,0,0,0,63.93585,0,0,0,4,0,5,83.3,11.84267,0,85.2,780,780,1,1,1.609438,6.659294,0,3.258096,8.045588,0,0,0,85.2,9.276199,1.609438,4.15788,1 +17,2,25,0,1,227259,0,10679.77,31.70431,1,10,1,43.79186,4.739825,0,0,0,48.53168,0,0,0,3,0,5,74.5,17.2,0,81.8,780,780,0,0,1.609438,6.659294,0,3.258096,8.045588,1,0,0,81.8,9.276199,1.609438,3.882217,1 +17,2,25,0,2,227259,0,10679.77,32.70431,1,10,1,0,0,0,0,0,0,0,0,0,0,0,5,74.5,17.2,0,81.8,780,780,0,0,1.609438,6.659294,0,3.258096,8.045588,1,0,0,81.8,9.276199,1.609438,,0 +17,2,25,0,3,227259,0,10679.77,33.70431,1,10,1,54.65973,10.99263,30.68054,0,0,96.3329,0,0,0,3,0,5,74.5,17.2,0,81.8,780,780,0,0,1.609438,6.659294,0,3.258096,8.045588,1,0,0,81.8,9.276199,1.609438,4.56781,1 +17,2,25,0,1,227260,0,10679.77,12.67351,0,10,1,12.36476,0,0,0,0,12.36476,0,0,0,1,0,5,88.3,11.84267,0,92.6,780,780,1,0,1.609438,6.659294,0,3.258096,8.045588,0,0,0,92.6,9.276199,1.609438,2.514851,1 +17,2,25,0,2,227260,0,10679.77,13.67351,0,10,1,32.55208,0,.4734848,0,0,33.02557,0,0,0,4,0,5,88.3,11.84267,0,92.6,780,780,1,0,1.609438,6.659294,0,3.258096,8.045588,0,0,0,92.6,9.276199,1.609438,3.497282,1 +17,2,25,0,3,227260,0,10679.77,14.67351,0,10,1,16.47161,0,0,0,0,16.47161,0,0,0,1,0,5,88.3,11.84267,0,92.6,780,780,1,0,1.609438,6.659294,0,3.258096,8.045588,0,0,0,92.6,9.276199,1.609438,2.801638,1 +17,2,25,0,1,227261,0,10679.77,1.50308,0,10,1,29.35085,0,0,0,0,29.35085,0,0,0,3,0,5,81.35272,11.84267,0,92.6,780,780,1,0,1.609438,6.659294,0,3.258096,8.045588,0,0,0,92.6,9.276199,1.609438,3.379322,1 +17,2,25,0,2,227261,0,10679.77,2.50308,0,10,1,62.00284,0,0,0,0,62.00284,0,0,0,5,0,5,81.35272,11.84267,0,92.6,780,780,1,0,1.609438,6.659294,0,3.258096,8.045588,0,0,0,92.6,9.276199,1.609438,4.12718,1 +17,2,25,0,3,227261,0,10679.77,3.50308,0,10,1,35.54399,0,0,0,0,35.54399,0,0,0,3,0,5,81.35272,11.84267,0,92.6,780,780,1,0,1.609438,6.659294,0,3.258096,8.045588,0,0,0,92.6,9.276199,1.609438,3.570771,1 +17,2,25,0,1,227262,0,10679.77,29.03217,0,16,1,95.43019,0,33.27666,0,0,128.7068,0,0,0,6,0,5,70.2,0,0,79.5,780,780,0,0,1.609438,6.659294,0,3.258096,8.045588,0,0,0,79.5,9.276199,1.609438,4.857537,1 +17,2,25,0,2,227262,0,10679.77,30.03217,0,16,1,0,0,0,0,0,0,0,0,0,0,0,5,70.2,0,0,79.5,780,780,0,0,1.609438,6.659294,0,3.258096,8.045588,0,0,0,79.5,9.276199,1.609438,,0 +17,2,25,0,3,227262,0,10679.77,31.03217,0,16,1,0,4.291287,51.25271,0,0,55.54399,0,0,0,0,0,5,70.2,0,0,79.5,780,780,0,0,1.609438,6.659294,0,3.258096,8.045588,0,0,0,79.5,9.276199,1.609438,4.017175,1 +11,2,0,1,1,227275,0,29237.54,34.95688,1,14,1,300,96.7802,0,1128.26,0,396.7802,0,0,53,5,3,3,51.6,6.9,0,56.8,0,114,0,0,1.098612,4.736198,0,0,0,0,0,0,56.8,10.28324,1.098612,5.983383,1 +11,2,0,1,2,227275,0,29237.54,35.95688,1,14,1,220.1648,49.2729,0,1008.24,868.3422,1137.78,1,0,52,8,3,3,51.6,6.9,0,56.8,0,114,0,0,1.098612,4.736198,0,0,0,0,0,0,56.8,10.28324,1.098612,7.036834,1 +11,2,0,1,3,227275,0,29237.54,36.95688,1,14,1,93.44115,39.71249,0,909.7035,34.36658,167.5202,0,0,45,7,0,3,51.6,6.9,0,56.8,0,114,0,0,1.098612,4.736198,0,0,0,0,0,0,56.8,10.28324,1.098612,5.121104,1 +11,2,0,1,1,227276,0,29237.54,10.93224,0,14,1,65.99255,8.142629,0,0,0,74.13518,0,0,0,4,0,3,78.3,11.84267,0,59.3,0,114,1,0,1.098612,4.736198,0,0,0,1,0,0,59.3,10.28324,1.098612,4.30589,1 +11,2,0,1,2,227276,0,29237.54,11.93224,0,14,1,21.81289,27.72661,0,213.2816,0,49.53951,0,0,10,1,1,3,78.3,11.84267,0,59.3,0,114,1,0,1.098612,4.736198,0,0,0,1,0,0,59.3,10.28324,1.098612,3.902771,1 +11,2,0,1,3,227276,0,29237.54,12.93224,0,14,1,38.18509,8.580413,0,220.1258,0,46.7655,0,0,11,4,1,3,78.3,11.84267,0,59.3,0,114,1,0,1.098612,4.736198,0,0,0,1,0,0,59.3,10.28324,1.098612,3.845146,1 +11,2,0,1,1,227277,0,29237.54,6.220397,1,14,1,36.18946,10.11176,55.65194,0,0,101.9532,0,0,0,2,2,3,73.3,11.84267,0,81.5,0,114,1,1,1.098612,4.736198,0,0,0,1,0,0,81.5,10.28324,1.098612,4.624514,1 +11,2,0,1,2,227277,0,29237.54,7.220397,1,14,1,35.38536,0,0,0,0,35.38536,0,0,0,3,1,3,73.3,11.84267,0,81.5,0,114,1,1,1.098612,4.736198,0,0,0,1,0,0,81.5,10.28324,1.098612,3.566298,1 +11,2,0,1,3,227277,0,29237.54,8.220397,1,14,1,28.75112,0,20.84007,0,0,49.59119,0,0,0,2,1,3,73.3,11.84267,0,81.5,0,114,1,1,1.098612,4.736198,0,0,0,1,0,0,81.5,10.28324,1.098612,3.903813,1 +14,2,95,1,1,227288,0,5181.818,53.84531,1,8,1,70.39615,51.8576,37.78908,0,0,160.0428,0,0,0,8,1,1,96.8,17.2,0,75,35.78,266.4,0,0,0,5.584999,0,4.564348,3.628682,0,0,0,75,8.553104,0,5.075441,1 +14,2,95,1,2,227288,0,5181.818,54.84531,1,8,1,82.23524,25.16349,0,0,0,107.3987,0,0,0,2,0,1,96.8,17.2,0,75,35.78,266.4,0,0,0,5.584999,0,4.564348,3.628682,0,0,0,75,8.553104,0,4.676548,1 +14,2,95,1,3,227288,0,5181.818,55.84531,1,8,1,228.3198,20.2439,39.19603,0,4271.522,4559.282,2,0,0,3,1,1,96.8,17.2,0,75,35.78,266.4,0,0,0,5.584999,0,4.564348,3.628682,0,0,0,75,8.553104,0,8.42492,1 +14,2,95,1,1,227300,1,1710.85,48.85695,1,5,1,308.6456,59.50214,31.90043,0,0,400.0482,0,0,0,12,0,5,55.9,24.1,1,47.6,291.6,291.6,0,0,1.609438,5.675383,0,4.564348,5.726676,0,1,0,47.6,7.44533,1.609438,5.991585,1 +14,2,95,1,2,227300,1,1710.85,49.85695,1,5,1,49.80478,41.33724,0,0,0,91.14202,0,0,0,4,0,5,55.9,24.1,1,47.6,291.6,291.6,0,0,1.609438,5.675383,0,4.564348,5.726676,0,1,0,47.6,7.44533,1.609438,4.512419,1 +14,2,95,1,3,227300,1,1710.85,50.85695,1,5,1,653.0714,104.2457,49.90063,0,0,807.2177,0,0,0,15,0,5,55.9,24.1,1,47.6,291.6,291.6,0,0,1.609438,5.675383,0,4.564348,5.726676,0,1,0,47.6,7.44533,1.609438,6.693594,1 +14,2,95,1,1,227301,1,1710.85,15.56194,0,5,1,51.5257,0,0,0,0,51.5257,0,0,0,3,0,5,76.1,3.4,1,72.7,291.6,291.6,1,0,1.609438,5.675383,0,4.564348,5.726676,0,1,0,72.7,7.44533,1.609438,3.942081,1 +14,2,95,1,2,227301,1,1710.85,16.56194,0,5,1,9.272816,2.415812,0,0,0,11.68863,0,0,0,1,0,5,76.1,3.4,1,72.7,291.6,291.6,1,0,1.609438,5.675383,0,4.564348,5.726676,0,1,0,72.7,7.44533,1.609438,2.458616,1 +14,2,95,1,3,227301,1,1710.85,17.56194,0,5,1,68.94761,2.687443,0,0,0,71.63505,0,0,0,2,0,5,76.1,3.4,1,72.7,291.6,291.6,1,0,1.609438,5.675383,0,4.564348,5.726676,0,1,0,72.7,7.44533,1.609438,4.271585,1 +14,2,95,1,1,227302,1,1710.85,17.58795,0,5,1,0,0,0,0,0,0,0,0,0,0,0,5,79.2,6.9,0,72.7,291.6,291.6,1,0,1.609438,5.675383,0,4.564348,5.726676,0,1,0,72.7,7.44533,1.609438,,0 +14,2,95,1,2,227302,1,1710.85,18.58795,0,5,1,8.29673,0,0,0,0,8.29673,0,0,0,1,0,5,79.2,6.9,0,72.7,291.6,291.6,0,0,1.609438,5.675383,0,4.564348,5.726676,0,1,0,72.7,7.44533,1.609438,2.115861,1 +14,2,95,1,3,227302,1,1710.85,19.58795,0,5,1,16.71183,0,0,0,0,16.71183,0,0,0,1,0,5,79.2,6.9,0,72.7,291.6,291.6,0,0,1.609438,5.675383,0,4.564348,5.726676,0,1,0,72.7,7.44533,1.609438,2.816117,1 +14,2,95,1,1,227303,1,1710.85,16.67625,0,5,1,111.7077,31.3758,5.888651,0,775.4443,924.4165,1,0,0,8,0,5,76.6,0,0,72.7,291.6,291.6,1,0,1.609438,5.675383,0,4.564348,5.726676,1,0,0,72.7,7.44533,1.609438,6.829163,1 +14,2,95,1,2,227303,1,1710.85,17.67625,0,5,1,53.68472,10.78575,0,0,0,64.47047,0,0,0,5,0,5,76.6,0,0,72.7,291.6,291.6,1,0,1.609438,5.675383,0,4.564348,5.726676,1,0,0,72.7,7.44533,1.609438,4.166207,1 +14,2,95,1,3,227303,1,1710.85,18.67625,0,5,.9589041,0,1.784101,0,0,0,1.784101,0,0,0,0,0,5,76.6,0,0,72.7,291.6,291.6,0,0,1.609438,5.675383,0,4.564348,5.726676,1,0,0,72.7,7.44533,1.609438,.5789147,1 +14,2,95,1,1,227304,1,1710.85,17.58795,1,5,1,24.62527,12.95503,0,0,0,37.5803,0,0,0,2,0,5,47.3,6.9,1,52.4,291.6,291.6,1,1,1.609438,5.675383,0,4.564348,5.726676,1,0,0,52.4,7.44533,1.609438,3.62648,1 +14,2,95,1,2,227304,1,1710.85,18.58795,1,5,1,75.76867,33.94827,0,0,0,109.7169,0,0,0,5,0,5,47.3,6.9,1,52.4,291.6,291.6,0,0,1.609438,5.675383,0,4.564348,5.726676,1,0,0,52.4,7.44533,1.609438,4.697904,1 +14,2,95,1,3,227304,1,1710.85,19.58795,1,5,1,81.82024,39.37669,0,0,0,121.1969,0,0,0,5,0,5,47.3,6.9,1,52.4,291.6,291.6,0,0,1.609438,5.675383,0,4.564348,5.726676,1,0,0,52.4,7.44533,1.609438,4.797417,1 +19,2,25,1,1,227305,0,3580.645,26.71869,0,11,1,27.80734,0,0,0,0,27.80734,0,0,0,1,0,1,90.4,10.3,0,79.8,450,0,0,0,0,0,0,3.258096,7.495542,0,1,0,79.8,8.183578,0,3.3253,1 +19,2,25,1,2,227305,0,3580.645,27.71869,0,11,1,11.14881,2.399418,0,0,0,13.54823,0,0,0,1,0,1,90.4,10.3,0,79.8,450,0,0,0,0,0,0,3.258096,7.495542,0,1,0,79.8,8.183578,0,2.606256,1 +19,2,25,1,3,227305,0,3580.645,28.71869,0,11,1,44.69901,0,0,0,0,44.69901,0,0,0,1,0,1,90.4,10.3,0,79.8,450,0,0,0,0,0,0,3.258096,7.495542,0,1,0,79.8,8.183578,0,3.799951,1 +19,2,25,1,4,227305,0,3580.645,29.71869,0,11,1,12.00246,0,0,0,0,12.00246,0,0,0,1,0,1,90.4,10.3,0,79.8,450,0,0,0,0,0,0,3.258096,7.495542,0,1,0,79.8,8.183578,0,2.485112,1 +19,2,25,1,5,227305,0,3580.645,30.71869,0,11,1,0,0,0,0,0,0,0,0,0,0,0,1,90.4,10.3,0,79.8,450,0,0,0,0,0,0,3.258096,7.495542,0,1,0,79.8,8.183578,0,,0 +14,2,95,1,1,227317,0,8665.641,2.316222,1,9,1,63.79037,7.12017,0,0,0,70.91054,0,0,0,19,0,2,81.35272,11.84267,0,56.2,127.5,127.5,1,1,.6931472,4.848116,0,4.564348,4.89941,0,0,0,56.2,9.067237,.6931472,4.261419,1 +14,2,95,1,1,227318,0,8665.641,22.80356,1,9,1,5.823187,4.986765,0,0,0,10.80995,0,0,0,1,0,2,86.2,13.8,0,62.5,127.5,127.5,0,0,.6931472,4.848116,0,4.564348,4.89941,0,0,0,62.5,9.067237,.6931472,2.380467,1 +16,2,95,1,1,227329,0,12489.74,55.14032,1,8,1,300,80.01617,0,0,0,380.0162,0,0,0,15,2,2,66,20.7,1,42,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,1,0,42,9.432742,.6931472,5.940214,1 +16,2,95,1,2,227329,0,12489.74,56.14032,1,8,1,1515.577,97.49386,19.0172,0,1049.032,2681.12,2,0,0,26,0,2,66,20.7,1,42,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,1,0,42,9.432742,.6931472,7.89399,1 +16,2,95,1,3,227329,0,12489.74,57.14032,1,8,.5616438,1302.256,237.8532,1.367366,0,5012.101,6561.326,2,0,0,40,0,2,66,20.7,1,42,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,1,0,42,9.432742,.6931472,8.788948,1 +16,2,95,1,1,227330,0,12489.74,56.41341,0,12,1,17.25067,0,13.80593,0,0,31.0566,0,0,0,1,0,2,84.6,10.3,0,72.7,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,72.7,9.432742,.6931472,3.435812,1 +16,2,95,1,2,227330,0,12489.74,57.41341,0,12,1,11.79361,5.886978,0,0,0,17.68059,0,0,0,2,0,2,84.6,10.3,0,72.7,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,72.7,9.432742,.6931472,2.872468,1 +16,2,95,1,3,227330,0,12489.74,58.41341,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,84.6,10.3,0,72.7,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,72.7,9.432742,.6931472,,0 +11,2,0,1,1,227346,0,9813.489,53.42642,1,12,1,519.1325,69.41991,19.9042,0,6006.69,6615.146,2,0,0,10,0,1,59,17.2,1,50,0,200.72,0,0,0,5.301911,0,0,0,1,0,0,50,9.191615,0,8.797117,1 +11,2,0,1,2,227346,0,9813.489,54.42642,1,12,1,115.5356,31.82259,277.0383,0,1281.289,1705.686,2,0,0,10,0,1,59,17.2,1,50,0,200.72,0,0,0,5.301911,0,0,0,1,0,0,50,9.191615,0,7.441722,1 +11,2,0,1,3,227346,0,9813.489,55.42642,1,12,1,60.53459,12.08446,313.0099,0,275.2246,660.8536,1,0,0,3,1,1,59,17.2,1,50,0,200.72,0,0,0,5.301911,0,0,0,1,0,0,50,9.191615,0,6.493532,1 +11,2,0,1,4,227346,0,9813.489,56.42642,1,12,1,140.3734,64.40295,244.2183,0,0,448.9947,0,0,0,3,0,1,59,17.2,1,50,0,200.72,0,0,0,5.301911,0,0,0,1,0,0,50,9.191615,0,6.107011,1 +11,2,0,1,5,227346,0,9813.489,57.42642,1,12,1,6.651885,92.60902,260.1663,0,886.0273,1245.455,1,0,0,1,0,1,59,17.2,1,50,0,200.72,0,0,0,5.301911,0,0,0,1,0,0,50,9.191615,0,7.127256,1 +16,2,95,1,1,227351,.0220994,8665.641,4.071184,0,12.75671,1,0,0,0,0,0,0,0,0,0,0,0,2,81.35272,11.84267,0,55.6,675,0,1,0,.6931472,0,0,4.564348,6.566006,0,0,0,55.6,9.067237,.6931472,,0 +16,2,95,1,2,227351,.0220994,8665.641,5.071184,0,12.75671,1,0,0,0,0,0,0,0,0,0,0,0,2,81.35272,11.84267,0,55.6,675,0,1,0,.6931472,0,0,4.564348,6.566006,0,0,0,55.6,9.067237,.6931472,,0 +16,2,95,1,3,227351,.0220994,8665.641,6.071184,0,12.75671,1,0,0,0,0,0,0,0,0,0,0,0,2,81.35272,11.84267,0,55.6,675,0,1,0,.6931472,0,0,4.564348,6.566006,0,0,0,55.6,9.067237,.6931472,,0 +16,2,95,0,1,227352,0,8665.641,57.67556,0,16,1,32.38758,0,22.48394,0,0,54.87152,0,0,0,2,1,2,73.9,17.2,0,75,150,162,0,0,.6931472,5.087596,0,4.564348,5.061929,1,0,0,75,9.067237,.6931472,4.004994,1 +16,2,95,0,2,227352,0,8665.641,58.67556,0,16,1,0,0,0,0,0,0,0,0,0,0,0,2,73.9,17.2,0,75,150,162,0,0,.6931472,5.087596,0,4.564348,5.061929,1,0,0,75,9.067237,.6931472,,0 +16,2,95,0,3,227352,0,8665.641,59.67556,0,16,1,0,0,0,0,0,0,0,0,0,0,0,2,73.9,17.2,0,75,150,162,0,0,.6931472,5.087596,0,4.564348,5.061929,1,0,0,75,9.067237,.6931472,,0 +16,2,95,0,1,227353,0,8665.641,50.5024,1,16,1,179.9518,0,222.6124,0,0,402.5642,0,0,0,8,1,2,71.3,13.8,0,70.5,150,162,0,0,.6931472,5.087596,0,4.564348,5.061929,1,0,0,70.5,9.067237,.6931472,5.997855,1 +16,2,95,0,2,227353,0,8665.641,51.5024,1,16,1,0,0,0,0,0,0,0,0,0,0,0,2,71.3,13.8,0,70.5,150,162,0,0,.6931472,5.087596,0,4.564348,5.061929,1,0,0,70.5,9.067237,.6931472,,0 +16,2,95,0,3,227353,0,8665.641,52.5024,1,16,1,0,0,0,0,0,0,0,0,0,0,0,2,71.3,13.8,0,70.5,150,162,0,0,.6931472,5.087596,0,4.564348,5.061929,1,0,0,70.5,9.067237,.6931472,,0 +13,2,0,1,1,227382,0,8212.316,.9746749,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,81.35272,11.84267,0,55.6,300,300,1,1,.6931472,5.703783,1,4.564348,5.755076,0,0,0,55.6,9.013512,.6931472,,0 +13,2,0,1,2,227382,0,8212.316,1.974675,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,81.35272,11.84267,0,55.6,300,300,1,1,.6931472,5.703783,1,4.564348,5.755076,0,0,0,55.6,9.013512,.6931472,,0 +13,2,0,1,3,227382,0,8212.316,2.974675,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,81.35272,11.84267,0,55.6,300,300,1,1,.6931472,5.703783,1,4.564348,5.755076,0,0,0,55.6,9.013512,.6931472,,0 +13,2,0,1,1,227383,0,8212.316,31.25804,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,55.3,10.3,0,69.3,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,69.3,9.013512,.6931472,,0 +13,2,0,1,2,227383,0,8212.316,32.25804,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,55.3,10.3,0,69.3,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,69.3,9.013512,.6931472,,0 +13,2,0,1,3,227383,0,8212.316,33.25804,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,55.3,10.3,0,69.3,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,69.3,9.013512,.6931472,,0 +7,2,25,1,1,227425,0,12811.14,51.0527,1,13,1,285.6573,24.02874,46.80149,0,0,356.4875,0,0,0,13,1,1,67,27.6,0,72.7,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,1,0,0,72.7,9.458149,0,5.876299,1 +7,2,25,1,2,227425,0,12811.14,52.0527,1,13,1,436.1367,47.7557,0,0,459.0402,942.9326,1,0,0,7,32,1,67,27.6,0,72.7,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,1,0,0,72.7,9.458149,0,6.848995,1 +7,2,25,1,3,227425,0,12811.14,53.0527,1,13,1,594.4294,60.79964,56.54987,0,0,711.779,0,0,0,15,17,1,67,27.6,0,72.7,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,1,0,0,72.7,9.458149,0,6.567768,1 +13,2,0,1,1,227515,0,8665.641,56.64339,1,15,1,54.60386,0,0,0,0,54.60386,0,0,0,2,0,1,71.8,17.2,0,68.2,150,466.8,0,0,0,6.145901,1,4.564348,5.061929,0,0,0,68.2,9.067237,0,4.000104,1 +11,2,0,1,1,227521,0,5299.707,60.17522,1,13,1,44.99735,0,0,0,0,44.99735,0,0,0,2,0,1,74.5,6.9,0,95.5,0,0,0,0,0,0,0,0,0,0,0,0,95.5,8.575596,0,3.806604,1 +11,2,0,1,2,227521,0,5299.707,61.17522,1,13,1,54.77799,17.81853,0,0,0,72.59653,0,0,0,2,5,1,74.5,6.9,0,95.5,0,0,0,0,0,0,0,0,0,0,0,0,95.5,8.575596,0,4.284917,1 +11,2,0,1,3,227521,0,5299.707,62.17522,1,13,1,13.35114,0,33.37784,0,0,46.72897,0,0,0,0,1,1,74.5,6.9,0,95.5,0,0,0,0,0,0,0,0,0,0,0,0,95.5,8.575596,0,3.844364,1 +11,2,0,0,1,227526,0,5668.035,10.41752,1,17,1,17.13062,0,0,0,0,17.13062,0,0,0,1,0,3,76.7,11.84267,0,48.1,0,380.52,1,1,1.098612,5.941539,0,0,0,0,0,0,48.1,8.642775,1.098612,2.840868,1 +11,2,0,0,2,227526,0,5668.035,11.41752,1,17,1,17.0815,2.733041,0,0,0,19.81454,0,0,0,3,0,3,76.7,11.84267,0,48.1,0,380.52,1,1,1.098612,5.941539,0,0,0,0,0,0,48.1,8.642775,1.098612,2.986416,1 +11,2,0,0,3,227526,0,5668.035,12.41752,1,17,1,21.22855,0,28.73532,0,0,49.96387,0,0,0,2,0,3,76.7,11.84267,0,48.1,0,380.52,1,1,1.098612,5.941539,0,0,0,0,0,0,48.1,8.642775,1.098612,3.9113,1 +11,2,0,0,1,227527,0,5668.035,5.804244,1,17,1,31.34368,3.131692,0,0,0,34.47538,0,0,0,3,0,3,76.7,11.84267,0,77.8,0,380.52,1,1,1.098612,5.941539,0,0,0,1,0,0,77.8,8.642775,1.098612,3.540245,1 +11,2,0,0,2,227527,0,5668.035,6.804244,1,17,1,65.17814,8.369937,0,0,0,73.54807,0,0,0,7,0,3,76.7,11.84267,0,77.8,0,380.52,1,1,1.098612,5.941539,0,0,0,1,0,0,77.8,8.642775,1.098612,4.297939,1 +11,2,0,0,3,227527,0,5668.035,7.804244,1,17,1,19.87353,0,0,0,0,19.87353,0,0,0,2,0,3,76.7,11.84267,0,77.8,0,380.52,1,1,1.098612,5.941539,0,0,0,1,0,0,77.8,8.642775,1.098612,2.989389,1 +11,2,0,0,1,227528,0,5668.035,32.59959,1,17,1,50.85653,13.16916,33.61349,0,0,97.63918,0,0,0,6,0,3,47.9,34.5,0,54.5,0,380.52,0,0,1.098612,5.941539,0,0,0,0,0,0,54.5,8.642775,1.098612,4.581279,1 +11,2,0,0,2,227528,0,5668.035,33.59959,1,17,1,61.3226,29.47779,0,0,0,90.80039,0,0,0,7,0,3,47.9,34.5,0,54.5,0,380.52,0,0,1.098612,5.941539,0,0,0,0,0,0,54.5,8.642775,1.098612,4.508664,1 +11,2,0,0,3,227528,0,5668.035,34.59959,1,17,1,19.87353,9.214092,0,0,0,29.08762,0,0,0,3,0,3,47.9,34.5,0,54.5,0,380.52,0,0,1.098612,5.941539,0,0,0,0,0,0,54.5,8.642775,1.098612,3.370313,1 +11,2,0,1,1,227539,0,22434.02,32.56947,1,16,1,152.5696,5.663812,0,0,0,158.2334,0,0,0,2,5,4,39.9,17.2,1,55.7,0,0,0,0,1.386294,0,0,0,0,1,0,0,55.7,10.01838,1.386294,5.064071,1 +11,2,0,1,2,227539,0,22434.02,33.56947,1,16,1,25.0366,22.81601,28.94095,0,0,76.79356,0,0,0,0,1,4,39.9,17.2,1,55.7,0,0,0,0,1.386294,0,0,0,0,1,0,0,55.7,10.01838,1.386294,4.341121,1 +11,2,0,1,3,227539,0,22434.02,34.56947,1,16,1,63.23397,18.65402,30.49232,0,0,112.3803,0,0,0,4,0,4,39.9,17.2,1,55.7,0,0,0,0,1.386294,0,0,0,0,1,0,0,55.7,10.01838,1.386294,4.721889,1 +11,2,0,1,1,227540,0,22434.02,34.56263,0,16,1,7.226981,0,0,0,0,7.226981,0,0,0,1,0,4,81.4,3.4,0,83,0,0,0,0,1.386294,0,0,0,0,0,0,0,83,10.01838,1.386294,1.977821,1 +11,2,0,1,2,227540,0,22434.02,35.56263,0,16,1,33.35773,9.136164,29.18497,0,1023.719,1095.398,1,0,0,2,0,4,81.4,3.4,0,83,0,0,0,0,1.386294,0,0,0,0,0,0,0,83,10.01838,1.386294,6.998873,1 +11,2,0,1,3,227540,0,22434.02,36.56263,0,16,1,0,0,31.44535,0,2560.176,2591.622,2,0,0,0,0,4,81.4,3.4,0,83,0,0,0,0,1.386294,0,0,0,0,0,0,0,83,10.01838,1.386294,7.860039,1 +11,2,0,1,1,227541,0,22434.02,1.382615,0,16,1,162.5535,21.10278,0,0,0,183.6563,0,0,0,8,0,4,81.35272,11.84267,0,51.9,0,0,1,0,1.386294,0,0,0,0,0,0,0,51.9,10.01838,1.386294,5.213066,1 +11,2,0,1,2,227541,0,22434.02,2.382615,0,16,1,97.90141,3.001464,0,0,0,100.9029,0,0,0,2,0,4,81.35272,11.84267,0,51.9,0,0,1,0,1.386294,0,0,0,0,0,0,0,51.9,10.01838,1.386294,4.614159,1 +11,2,0,1,3,227541,0,22434.02,3.382615,0,16,1,55.32972,0,0,0,0,55.32972,0,0,0,4,1,4,81.35272,11.84267,0,51.9,0,0,1,0,1.386294,0,0,0,0,0,0,0,51.9,10.01838,1.386294,4.01331,1 +11,2,0,1,1,227549,0,10646.33,59.22245,1,14,1,112.152,86.38116,61.34368,0,0,259.8769,0,0,0,4,1,1,91.5,34.5,0,84.1,0,0,0,0,0,0,0,0,0,1,0,0,84.1,9.273065,0,5.560208,1 +11,2,0,1,2,227549,0,10646.33,60.22245,1,14,1,403.1235,78.52123,0,0,71.35188,552.9966,1,0,0,13,0,1,91.5,34.5,0,84.1,0,0,0,0,0,0,0,0,0,1,0,0,84.1,9.273065,0,6.315352,1 +11,2,0,1,3,227549,0,10646.33,61.22245,1,14,1,283.5366,125.009,0,0,0,408.5456,0,0,0,10,0,1,91.5,34.5,0,84.1,0,0,0,0,0,0,0,0,0,1,0,0,84.1,9.273065,0,6.012604,1 +11,2,0,1,1,227588,0,11380.06,.9965777,0,14,1,126.5257,12.9818,0,0,0,139.5075,0,0,0,16,0,3,81.35272,11.84267,0,92.6,0,0,1,0,1.098612,0,0,0,0,1,0,0,92.6,9.339705,1.098612,4.938118,1 +11,2,0,1,2,227588,0,11380.06,1.996578,0,14,1,75.32943,16.25183,0,0,0,91.58126,0,0,0,5,0,3,81.35272,11.84267,0,92.6,0,0,1,0,1.098612,0,0,0,0,1,0,0,92.6,9.339705,1.098612,4.517227,1 +11,2,0,1,3,227588,0,11380.06,2.996578,0,14,1,34.10117,4.471545,0,0,0,38.57272,0,0,0,2,0,3,81.35272,11.84267,0,92.6,0,0,1,0,1.098612,0,0,0,0,1,0,0,92.6,9.339705,1.098612,3.652545,1 +11,2,0,1,1,227589,0,11380.06,30.68036,1,14,1,95.12848,109.4272,0,0,0,204.5557,0,0,0,6,0,3,69.7,3.4,0,90.5,0,0,0,0,1.098612,0,0,0,0,0,0,0,90.5,9.339705,1.098612,5.32084,1 +11,2,0,1,2,227589,0,11380.06,31.68036,1,14,1,84.30942,134.6364,0,0,0,218.9458,0,0,0,6,0,3,69.7,3.4,0,90.5,0,0,0,0,1.098612,0,0,0,0,0,0,0,90.5,9.339705,1.098612,5.388824,1 +11,2,0,1,3,227589,0,11380.06,32.68036,1,14,1,108.0623,233.3966,0,0,0,341.4589,0,0,0,7,0,3,69.7,3.4,0,90.5,0,0,0,0,1.098612,0,0,0,0,0,0,0,90.5,9.339705,1.098612,5.833227,1 +11,2,0,1,1,227590,0,11380.06,33.63176,0,16,1,5.353319,4.577088,0,0,1120.905,1130.835,1,0,0,1,0,3,73.9,0,0,77.3,0,0,0,0,1.098612,0,0,0,0,0,0,0,77.3,9.339705,1.098612,7.030712,1 +11,2,0,1,2,227590,0,11380.06,34.63176,0,16,1,0,0,0,0,0,0,0,0,0,0,0,3,73.9,0,0,77.3,0,0,0,0,1.098612,0,0,0,0,0,0,0,77.3,9.339705,1.098612,,0 +11,2,0,1,3,227590,0,11380.06,35.63176,0,16,1,7.226739,5.465221,0,0,0,12.69196,0,0,0,1,0,3,73.9,0,0,77.3,0,0,0,0,1.098612,0,0,0,0,0,0,0,77.3,9.339705,1.098612,2.540969,1 +18,2,25,0,1,227604,0,4313.196,44.86516,1,16,1,0,0,0,0,0,0,0,0,0,0,0,4,75,3.4,0,64.8,48,48,0,0,1.386294,3.871201,0,3.258096,5.257495,1,0,0,64.8,8.369666,1.386294,,0 +18,2,25,0,2,227604,0,4313.196,45.86516,1,16,1,98.72159,13.92519,0,337.3579,0,112.6468,0,0,22,10,0,4,75,3.4,0,64.8,48,48,0,0,1.386294,3.871201,0,3.258096,5.257495,1,0,0,64.8,8.369666,1.386294,4.724257,1 +18,2,25,0,3,227604,0,4313.196,46.86516,1,16,1,10.40312,0,0,0,0,10.40312,0,0,0,4,0,4,75,3.4,0,64.8,48,48,0,0,1.386294,3.871201,0,3.258096,5.257495,1,0,0,64.8,8.369666,1.386294,2.342106,1 +18,2,25,0,4,227604,0,4313.196,47.86516,1,16,1,0,0,0,0,0,0,0,0,0,0,0,4,75,3.4,0,64.8,48,48,0,0,1.386294,3.871201,0,3.258096,5.257495,1,0,0,64.8,8.369666,1.386294,,0 +18,2,25,0,5,227604,0,4313.196,48.86516,1,16,1,75.67084,0,33.91055,171.7352,0,109.5814,0,0,12,4,0,4,75,3.4,0,64.8,48,48,0,0,1.386294,3.871201,0,3.258096,5.257495,1,0,0,64.8,8.369666,1.386294,4.696668,1 +18,2,25,0,1,227605,0,4313.196,44.47091,0,16,1,26.50696,0,0,0,0,26.50696,0,0,0,1,0,4,68.6,10.3,1,63.6,48,48,0,0,1.386294,3.871201,0,3.258096,5.257495,1,0,0,63.6,8.369666,1.386294,3.277407,1 +18,2,25,0,2,227605,0,4313.196,45.47091,0,16,1,0,0,0,443.8921,0,0,0,0,27,0,0,4,68.6,10.3,1,63.6,48,48,0,0,1.386294,3.871201,0,3.258096,5.257495,1,0,0,63.6,8.369666,1.386294,,0 +18,2,25,0,3,227605,0,4313.196,46.47091,0,16,1,119.4192,0,0,10.83658,0,119.4192,0,0,1,5,0,4,68.6,10.3,1,63.6,48,48,0,0,1.386294,3.871201,0,3.258096,5.257495,1,0,0,63.6,8.369666,1.386294,4.78264,1 +18,2,25,0,4,227605,0,4313.196,47.47091,0,16,1,40.33084,0,.7089405,0,0,41.03978,0,0,0,2,0,4,68.6,10.3,1,63.6,48,48,0,0,1.386294,3.871201,0,3.258096,5.257495,1,0,0,63.6,8.369666,1.386294,3.714542,1 +18,2,25,0,5,227605,0,4313.196,48.47091,0,16,1,67.95349,2.715564,0,0,0,70.66905,0,0,0,4,0,4,68.6,10.3,1,63.6,48,48,0,0,1.386294,3.871201,0,3.258096,5.257495,1,0,0,63.6,8.369666,1.386294,4.258008,1 +18,2,25,0,1,227606,0,4313.196,15.72074,0,16,1,201.4941,12.48326,0,0,0,213.9773,0,0,0,24,0,4,86.2,10.3,0,75,48,48,1,0,1.386294,3.871201,0,3.258096,5.257495,1,0,0,75,8.369666,1.386294,5.36587,1 +18,2,25,0,2,227606,0,4313.196,16.72074,0,16,1,68.18182,32.83144,0,106.5341,8939.611,9040.625,1,0,7,16,0,4,86.2,10.3,0,75,48,48,1,0,1.386294,3.871201,0,3.258096,5.257495,1,0,0,75,8.369666,1.386294,9.109484,1 +18,2,25,0,3,227606,0,4313.196,17.72074,0,16,1,216.6667,24.39098,0,65.01951,4609.623,4850.681,1,0,6,9,0,4,86.2,10.3,0,75,48,48,1,0,1.386294,3.871201,0,3.258096,5.257495,1,0,0,75,8.369666,1.386294,8.486875,1 +18,2,25,0,4,227606,0,4313.196,18.72074,0,16,1,55.74636,98.79874,0,452.9342,3489.854,3644.399,1,0,53,4,0,4,86.2,10.3,0,75,48,48,0,0,1.386294,3.871201,0,3.258096,5.257495,1,0,0,75,8.369666,1.386294,8.200947,1 +18,2,25,0,5,227606,0,4313.196,19.72074,0,16,1,40.78712,10.08587,0,0,0,50.87299,0,0,0,4,0,4,86.2,10.3,0,75,48,48,0,0,1.386294,3.871201,0,3.258096,5.257495,1,0,0,75,8.369666,1.386294,3.929332,1 +18,2,25,0,1,227607,0,4313.196,17.78782,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,84,3.4,0,86.4,48,48,1,0,1.386294,3.871201,0,3.258096,5.257495,1,0,0,86.4,8.369666,1.386294,,0 +18,2,25,0,2,227607,0,4313.196,18.78782,0,16,1,5.681818,0,0,0,0,5.681818,0,0,0,1,0,4,84,3.4,0,86.4,48,48,0,0,1.386294,3.871201,0,3.258096,5.257495,1,0,0,86.4,8.369666,1.386294,1.737271,1 +18,2,25,0,3,227607,0,4313.196,19.78782,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,84,3.4,0,86.4,48,48,0,0,1.386294,3.871201,0,3.258096,5.257495,1,0,0,86.4,8.369666,1.386294,,0 +18,2,25,0,4,227607,0,4313.196,20.78782,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,84,3.4,0,86.4,48,48,0,0,1.386294,3.871201,0,3.258096,5.257495,1,0,0,86.4,8.369666,1.386294,,0 +18,2,25,0,5,227607,0,4313.196,21.78782,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,84,3.4,0,86.4,48,48,0,0,1.386294,3.871201,0,3.258096,5.257495,1,0,0,86.4,8.369666,1.386294,,0 +11,2,0,0,1,227614,0,14107.92,32.32854,1,17,1,423.7858,4.810193,31.61726,0,0,460.2132,0,0,0,10,1,2,72.9,13.8,0,70.5,0,276.6,0,0,.6931472,5.622572,0,0,0,0,0,0,70.5,9.554563,.6931472,6.13169,1 +11,2,0,0,2,227614,0,14107.92,33.32854,1,17,1,152.5323,2.718586,0,0,231.3904,386.6412,1,0,0,9,0,2,72.9,13.8,0,70.5,0,276.6,0,0,.6931472,5.622572,0,0,0,0,0,0,70.5,9.554563,.6931472,5.957497,1 +11,2,0,0,3,227614,0,14107.92,34.32854,1,17,1,16.6813,3.248464,0,0,732.7041,752.6339,1,0,0,1,0,2,72.9,13.8,0,70.5,0,276.6,0,0,.6931472,5.622572,0,0,0,0,0,0,70.5,9.554563,.6931472,6.623579,1 +11,2,0,0,1,227615,0,14107.92,30.13005,0,18,1,76.96308,0,0,0,0,76.96308,0,0,0,2,0,2,87.2,3.4,0,95.5,0,276.6,0,0,.6931472,5.622572,0,0,0,0,0,0,95.5,9.554563,.6931472,4.343326,1 +11,2,0,0,2,227615,0,14107.92,31.13005,0,18,1,46.58385,0,0,0,0,46.58385,0,0,0,3,0,2,87.2,3.4,0,95.5,0,276.6,0,0,.6931472,5.622572,0,0,0,0,0,0,95.5,9.554563,.6931472,3.841254,1 +11,2,0,0,3,227615,0,14107.92,32.13005,0,18,1,24.67076,0,0,0,0,24.67076,0,0,0,1,0,2,87.2,3.4,0,95.5,0,276.6,0,0,.6931472,5.622572,0,0,0,0,0,0,95.5,9.554563,.6931472,3.205619,1 +13,2,0,1,1,227616,0,11551.91,29.50308,1,12,1,13.06848,0,0,0,0,13.06848,0,0,0,1,0,4,80.3,0,0,90.9,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,90.9,9.354692,1.386294,2.570203,1 +13,2,0,1,2,227616,0,11551.91,30.50308,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,80.3,0,0,90.9,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,90.9,9.354692,1.386294,,0 +13,2,0,1,3,227616,0,11551.91,31.50308,1,12,1,56.47577,0,0,0,322.6212,379.0969,1,0,0,2,0,4,80.3,0,0,90.9,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,90.9,9.354692,1.386294,5.937792,1 +13,2,0,1,1,227617,0,11551.91,5.166325,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,81.7,11.84267,0,77.8,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,77.8,9.354692,1.386294,,0 +13,2,0,1,2,227617,0,11551.91,6.166325,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,81.7,11.84267,0,77.8,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,77.8,9.354692,1.386294,,0 +13,2,0,1,3,227617,0,11551.91,7.166325,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,81.7,11.84267,0,77.8,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,77.8,9.354692,1.386294,,0 +13,2,0,1,1,227618,0,11551.91,30.28337,0,7,1,8.886565,0,0,0,0,8.886565,0,0,0,1,0,4,63.3,10.3,0,73.9,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,73.9,9.354692,1.386294,2.184541,1 +13,2,0,1,2,227618,0,11551.91,31.28337,0,7,1,0,0,0,0,0,0,0,0,0,0,0,4,63.3,10.3,0,73.9,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,73.9,9.354692,1.386294,,0 +13,2,0,1,3,227618,0,11551.91,32.28337,0,7,1,182.8194,0,0,0,0,182.8194,0,0,0,16,0,4,63.3,10.3,0,73.9,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,73.9,9.354692,1.386294,5.208498,1 +13,2,0,1,1,227619,0,11551.91,10.53251,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,81.7,11.84267,0,77.8,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,77.8,9.354692,1.386294,,0 +13,2,0,1,2,227619,0,11551.91,11.53251,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,81.7,11.84267,0,77.8,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,77.8,9.354692,1.386294,,0 +13,2,0,1,3,227619,0,11551.91,12.53251,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,81.7,11.84267,0,77.8,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,77.8,9.354692,1.386294,,0 +15,2,95,1,1,227620,0,9891.495,12.68994,0,16,1,20.87794,4.336188,0,0,0,25.21413,0,0,0,2,0,3,83.3,11.84267,0,88.9,545,545,1,0,1.098612,6.300786,0,4.564348,6.352079,0,0,0,88.9,9.199532,1.098612,3.227405,1 +15,2,95,1,1,227621,0,9891.495,13.94661,0,16,1,5.353319,0,0,0,0,5.353319,0,0,0,1,0,3,91.7,11.84267,0,100,545,545,1,0,1.098612,6.300786,0,4.564348,6.352079,0,0,0,100,9.199532,1.098612,1.677717,1 +15,2,95,1,1,227622,0,9891.495,33.31691,1,16,1,51.39186,46.11349,0,0,0,97.50536,0,0,0,4,0,3,58,17.2,0,95.5,545,545,0,0,1.098612,6.300786,0,4.564348,6.352079,0,0,0,95.5,9.199532,1.098612,4.579907,1 +11,2,0,1,1,227626,0,3479.179,20.82683,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,71.3,13.8,0,71.6,0,0,0,0,0,0,0,0,0,0,0,0,71.6,8.154839,0,,0 +11,2,0,1,2,227626,0,3479.179,21.82683,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,71.3,13.8,0,71.6,0,0,0,0,0,0,0,0,0,0,0,0,71.6,8.154839,0,,0 +11,2,0,1,3,227626,0,3479.179,22.82683,0,12,1,112.7621,0,0,0,0,112.7621,0,0,0,2,0,1,71.3,13.8,0,71.6,0,0,0,0,0,0,0,0,0,0,0,0,71.6,8.154839,0,4.72528,1 +16,2,95,1,1,227643,0,6992.962,35.63313,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,64.4,6.9,0,86.4,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,0,0,0,86.4,8.852802,0,,0 +16,2,95,1,2,227643,0,6992.962,36.63313,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,64.4,6.9,0,86.4,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,0,0,0,86.4,8.852802,0,,0 +16,2,95,1,3,227643,0,6992.962,37.63313,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,64.4,6.9,0,86.4,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,0,0,0,86.4,8.852802,0,,0 +16,2,95,0,1,227674,0,7612.317,53.56331,0,12,1,16.85393,88.48315,0,0,0,105.3371,0,0,0,2,0,5,82.4,10.3,0,68.2,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,1,0,68.2,8.937654,1.609438,4.657166,1 +16,2,95,0,2,227674,0,7612.317,54.56331,0,12,1,23.44116,109.8547,0,0,0,133.2958,0,0,0,2,0,4,82.4,10.3,0,68.2,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,1,0,68.2,8.937654,1.386294,4.892571,1 +16,2,95,0,3,227674,0,7612.317,55.56331,0,12,1,68.14273,123.9639,45.39123,773.8607,1028.899,1266.397,1,0,36,5,0,3,82.4,10.3,0,68.2,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,1,0,68.2,8.937654,1.098612,7.143931,1 +16,2,95,0,1,227675,0,7612.317,18.5243,0,11,1,14.30031,2.145046,0,0,0,16.44535,0,0,0,1,0,5,70.2,10.3,0,92,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,92,8.937654,1.609438,2.800043,1 +16,2,95,0,1,227676,0,7612.317,14.4011,1,12,1,18.38611,0,0,0,0,18.38611,0,0,0,2,0,5,78.7,10.3,0,63.6,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,1,0,0,63.6,8.937654,1.609438,2.911595,1 +16,2,95,0,2,227676,0,7612.317,15.4011,1,12,1,93.99906,5.110174,0,0,0,99.10924,0,0,0,6,1,4,78.7,10.3,0,63.6,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,1,0,0,63.6,8.937654,1.386294,4.596223,1 +16,2,95,0,1,227677,0,7612.317,12.85421,0,12,1,17.36466,5.26047,0,0,0,22.62513,0,0,0,2,0,5,90,11.84267,0,22.2,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,1,0,0,22.2,8.937654,1.609438,3.119061,1 +16,2,95,0,2,227677,0,7612.317,13.85421,0,12,1,23.44116,13.45523,0,0,0,36.89639,0,0,0,3,0,4,90,11.84267,0,22.2,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,22.2,8.937654,1.386294,3.608114,1 +16,2,95,0,3,227677,0,7612.317,14.85421,0,12,1,0,5.137575,0,0,0,5.137575,0,0,0,0,0,3,90,11.84267,0,22.2,1000,1000,1,0,1.098612,6.907755,0,4.564348,6.959049,1,0,0,22.2,8.937654,1.098612,1.636581,1 +16,2,95,0,1,227679,0,7612.317,50.19576,1,12,1,83.27375,153.8458,0,0,0,237.1195,0,0,0,8,0,5,76.1,37.9,1,29.5,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,1,0,29.5,8.937654,1.609438,5.468564,1 +16,2,95,0,2,227679,0,7612.317,51.19576,1,12,1,37.41209,131.3127,0,0,0,168.7248,0,0,0,5,0,4,76.1,37.9,1,29.5,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,1,0,29.5,8.937654,1.386294,5.128269,1 +16,2,95,0,3,227679,0,7612.317,52.19576,1,12,1,188.1685,176.5606,47.11092,0,0,411.8401,0,0,0,7,0,3,76.1,37.9,1,29.5,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,1,0,29.5,8.937654,1.098612,6.020635,1 +11,2,0,1,1,227711,0,6928.446,11.06639,0,11,1,115.3273,2.118148,32.77807,0,188.6642,338.8877,1,0,0,3,1,4,73.3,11.84267,1,85.2,0,573.3,1,0,1.386294,6.351409,0,0,0,0,0,0,85.2,8.843535,1.386294,5.825669,1 +11,2,0,1,2,227711,0,6928.446,12.06639,0,11,1,68.46825,0,0,0,0,68.46825,0,0,0,3,0,4,73.3,11.84267,1,85.2,0,573.3,1,0,1.386294,6.351409,0,0,0,0,0,0,85.2,8.843535,1.386294,4.22637,1 +11,2,0,1,3,227711,0,6928.446,13.06639,0,11,1,17.96945,0,29.02965,0,0,46.9991,0,0,0,0,1,4,73.3,11.84267,1,85.2,0,573.3,1,0,1.386294,6.351409,0,0,0,0,0,0,85.2,8.843535,1.386294,3.850128,1 +11,2,0,1,1,227712,0,6928.446,5.782341,1,11,1,88.34486,13.75732,31.18148,0,0,133.2837,0,0,0,3,1,4,88.3,11.84267,0,92.6,0,573.3,1,1,1.386294,6.351409,0,0,0,0,0,0,92.6,8.843535,1.386294,4.892479,1 +11,2,0,1,2,227712,0,6928.446,6.782341,1,11,1,31.99224,6.490548,26.03975,0,0,64.52254,0,0,0,1,1,4,88.3,11.84267,0,92.6,0,573.3,1,1,1.386294,6.351409,0,0,0,0,0,0,92.6,8.843535,1.386294,4.167015,1 +11,2,0,1,3,227712,0,6928.446,7.782341,1,11,1,30.54807,2.201258,0,0,0,32.74932,0,0,0,0,0,4,88.3,11.84267,0,92.6,0,573.3,1,1,1.386294,6.351409,0,0,0,0,0,0,92.6,8.843535,1.386294,3.488882,1 +11,2,0,1,1,227713,0,6928.446,32.44353,1,11,1,81.55934,0,36.50346,396.4875,0,118.0628,0,0,36,3,1,4,56.4,10.3,1,59.1,0,573.3,0,0,1.386294,6.351409,0,0,0,1,0,0,59.1,8.843535,1.386294,4.771217,1 +11,2,0,1,2,227713,0,6928.446,33.44353,1,11,1,68.51188,2.399418,0,36.35482,0,70.91129,0,0,3,2,0,4,56.4,10.3,1,59.1,0,573.3,0,0,1.386294,6.351409,0,0,0,1,0,0,59.1,8.843535,1.386294,4.26143,1 +11,2,0,1,3,227713,0,6928.446,34.44353,1,11,1,88.77808,12.48877,0,0,0,101.2668,0,0,0,3,0,4,56.4,10.3,1,59.1,0,573.3,0,0,1.386294,6.351409,0,0,0,1,0,0,59.1,8.843535,1.386294,4.617759,1 +11,2,0,1,1,227728,0,5501.466,58.74059,1,12,1,51.22844,1.751176,42.79665,0,0,95.77627,0,0,0,4,0,1,91,17.2,0,85.2,0,36,0,0,0,3.583519,0,0,0,1,0,0,85.2,8.612951,0,4.562015,1 +11,2,0,1,2,227728,0,5501.466,59.74059,1,12,1,17.29938,5.800096,0,0,0,23.09947,0,0,0,3,0,1,91,17.2,0,85.2,0,36,0,0,0,3.583519,0,0,0,1,0,0,85.2,8.612951,0,3.13981,1 +11,2,0,1,3,227728,0,5501.466,60.74059,1,12,1,192.4009,12.99559,51.99559,0,0,257.3921,0,0,0,9,9,1,91,17.2,0,85.2,0,36,0,0,0,3.583519,0,0,0,1,0,0,85.2,8.612951,0,5.550601,1 +11,2,0,1,1,227737,0,7643.402,31.61123,1,17,1,35.20381,21.01641,0,0,0,56.22022,0,0,0,2,0,1,84.6,20.7,1,78.4,0,0,0,0,0,0,0,0,0,0,0,0,78.4,8.941729,0,4.029276,1 +11,2,0,1,2,227737,0,7643.402,32.61123,1,17,1,107.1429,4.720077,0,0,0,111.8629,0,0,0,3,0,1,84.6,20.7,1,78.4,0,0,0,0,0,0,0,0,0,0,0,0,78.4,8.941729,0,4.717274,1 +11,2,0,1,3,227737,0,7643.402,33.61123,1,17,1,26.70227,12.22964,42.9773,0,0,81.90921,0,0,0,2,0,1,84.6,20.7,1,78.4,0,0,0,0,0,0,0,0,0,0,0,0,78.4,8.941729,0,4.405612,1 +11,2,0,1,1,227739,0,5029.912,27.93977,1,16,1,84.08728,18.58968,0,0,0,102.677,0,0,0,7,1,1,41,10.3,1,61.4,0,0,0,0,0,0,0,0,0,1,0,0,61.4,8.523356,0,4.631588,1 +11,2,0,1,2,227739,0,5029.912,28.93977,1,16,1,107.3679,61.68202,0,0,0,169.0499,0,0,0,11,0,1,41,10.3,1,61.4,0,0,0,0,0,0,0,0,0,1,0,0,61.4,8.523356,0,5.130194,1 +11,2,0,1,3,227739,0,5029.912,29.93977,1,16,1,234.389,51.67116,0,0,0,286.0602,0,0,0,4,40,1,41,10.3,1,61.4,0,0,0,0,0,0,0,0,0,1,0,0,61.4,8.523356,0,5.656202,1 +6,2,25,0,1,227752,0,1847.507,20.44353,1,12,1,197.459,65.00794,40.28057,0,0,302.7475,0,0,0,5,1,1,48.4,17.2,0,86.4,40,0,0,0,0,0,0,3.258096,5.075174,0,0,0,86.4,7.522134,0,5.712899,1 +6,2,25,0,2,227752,0,1847.507,21.44353,1,12,1,88.32047,49.48359,19.30502,212.3552,823.0116,980.1207,1,0,10,6,1,1,48.4,17.2,0,86.4,40,0,0,0,0,0,0,3.258096,5.075174,0,0,0,86.4,7.522134,0,6.887676,1 +6,2,25,0,3,227752,0,1847.507,22.44353,1,12,1,216.6444,67.41878,36.67112,111.2595,302.3587,623.093,1,0,5,13,0,2,48.4,17.2,0,86.4,40,0,0,0,.6931472,0,0,3.258096,5.075174,0,0,0,86.4,7.522134,.6931472,6.434696,1 +15,2,95,1,1,227757,0,5533.138,23.83573,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,77.7,3.4,0,95.5,712.1,0,0,0,1.098612,0,0,4.564348,6.619512,0,0,0,95.5,8.618691,1.098612,,0 +15,2,95,1,2,227757,0,5533.138,24.83573,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,77.7,3.4,0,95.5,712.1,0,0,0,1.098612,0,0,4.564348,6.619512,0,0,0,95.5,8.618691,1.098612,,0 +15,2,95,1,3,227757,0,5533.138,25.83573,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,77.7,3.4,0,95.5,712.1,0,0,0,1.098612,0,0,4.564348,6.619512,0,0,0,95.5,8.618691,1.098612,,0 +15,2,95,1,1,227758,0,5533.138,22.68036,1,12,1,47.56926,0,0,0,0,47.56926,0,0,0,2,0,3,24.5,3.4,0,22.7,712.1,0,0,0,1.098612,0,0,4.564348,6.619512,1,0,0,22.7,8.618691,1.098612,3.862187,1 +15,2,95,1,2,227758,0,5533.138,23.68036,1,12,1,33.63767,0,0,0,0,33.63767,0,0,0,2,0,3,24.5,3.4,0,22.7,712.1,0,0,0,1.098612,0,0,4.564348,6.619512,1,0,0,22.7,8.618691,1.098612,3.515647,1 +15,2,95,1,3,227758,0,5533.138,24.68036,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,24.5,3.4,0,22.7,712.1,0,0,0,1.098612,0,0,4.564348,6.619512,1,0,0,22.7,8.618691,1.098612,,0 +15,2,95,1,1,227759,0,5533.138,3.238878,0,12,1,20.90957,0,0,0,0,20.90957,0,0,0,0,0,3,81.35272,11.84267,0,96.3,712.1,0,1,0,1.098612,0,0,4.564348,6.619512,0,0,0,96.3,8.618691,1.098612,3.040207,1 +15,2,95,1,2,227759,0,5533.138,4.238877,0,12,1,9.610765,0,0,0,0,9.610765,0,0,0,1,0,3,81.35272,11.84267,0,96.3,712.1,0,1,0,1.098612,0,0,4.564348,6.619512,0,0,0,96.3,8.618691,1.098612,2.262884,1 +15,2,95,1,3,227759,0,5533.138,5.238877,0,12,1,11.67401,4.38326,0,0,0,16.05727,0,0,0,1,0,3,81.35272,11.84267,0,96.3,712.1,0,1,0,1.098612,0,0,4.564348,6.619512,0,0,0,96.3,8.618691,1.098612,2.776162,1 +13,2,0,1,1,227761,0,9331.965,25.55236,0,16,1,8.73478,0,34.08682,0,0,42.8216,0,0,0,0,0,1,86.2,17.2,0,80.7,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,80.7,9.141308,0,3.757043,1 +16,2,95,1,1,227770,0,8265.103,44.17796,0,18,1,12.3736,0,0,0,0,12.3736,0,0,0,0,0,4,58.5,27.6,1,40.9,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,40.9,9.019918,1.386294,2.515565,1 +16,2,95,1,2,227770,0,8265.103,45.17796,0,18,1,0,0,0,0,0,0,0,0,0,0,0,4,58.5,27.6,1,40.9,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,40.9,9.019918,1.386294,,0 +16,2,95,1,3,227770,0,8265.103,46.17796,0,18,1,0,0,0,0,0,0,0,0,0,0,0,4,58.5,27.6,1,40.9,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,40.9,9.019918,1.386294,,0 +16,2,95,1,1,227771,0,8265.103,10.90212,1,14,1,26.3438,0,0,0,0,26.3438,0,0,0,2,0,4,66.7,11.84267,0,77.8,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,0,0,0,77.8,9.019918,1.386294,3.271233,1 +16,2,95,1,2,227771,0,8265.103,11.90212,1,14,1,15.99612,0,0,0,0,15.99612,0,0,0,1,0,4,66.7,11.84267,0,77.8,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,0,0,0,77.8,9.019918,1.386294,2.772346,1 +16,2,95,1,3,227771,0,8265.103,12.90212,1,14,1,21.11411,0,0,0,0,21.11411,0,0,0,1,0,4,66.7,11.84267,0,77.8,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,0,0,0,77.8,9.019918,1.386294,3.049941,1 +16,2,95,1,1,227772,0,8265.103,39.7974,1,14,1,18.62693,22.32038,0,0,0,40.94731,0,0,0,1,0,4,83,31,0,75,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,75,9.019918,1.386294,3.712286,1 +16,2,95,1,2,227772,0,8265.103,40.7974,1,14,1,22.68541,15.71983,0,0,0,38.40524,0,0,0,2,0,4,83,31,0,75,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,75,9.019918,1.386294,3.648194,1 +16,2,95,1,3,227772,0,8265.103,41.7974,1,14,1,27.40341,0,0,0,0,27.40341,0,0,0,2,0,4,83,31,0,75,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,75,9.019918,1.386294,3.310668,1 +16,2,95,1,1,227773,0,8265.103,13.36345,0,14,1,18.22778,0,0,0,0,18.22778,0,0,0,1,0,4,50,11.84267,0,100,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,100,9.019918,1.386294,2.902947,1 +16,2,95,1,2,227773,0,8265.103,14.36345,0,14,1,45.51624,0,1.696558,0,0,47.2128,0,0,0,3,0,4,50,11.84267,0,100,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,100,9.019918,1.386294,3.854665,1 +16,2,95,1,3,227773,0,8265.103,15.36345,0,14,1,8.984726,0,0,0,0,8.984726,0,0,0,1,0,4,50,11.84267,0,100,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,100,9.019918,1.386294,2.195526,1 +11,2,0,0,1,227847,0,5767.155,59.65777,1,12,1,63.70255,14.76859,55.16901,0,0,133.6402,0,0,0,5,0,1,81.4,27.6,1,73.9,0,292.49,0,0,0,5.678431,0,0,0,1,0,0,73.9,8.660108,0,4.895151,1 +11,2,0,0,2,227847,0,5767.155,60.65777,1,12,1,67.20019,1.337793,0,0,0,68.53799,0,0,0,2,0,1,81.4,27.6,1,73.9,0,292.49,0,0,0,5.678431,0,0,0,1,0,0,73.9,8.660108,0,4.227388,1 +11,2,0,0,3,227847,0,5767.155,61.65777,1,12,1,49.60492,9.956101,0,0,0,59.56102,0,0,0,3,0,1,81.4,27.6,1,73.9,0,292.49,0,0,0,5.678431,0,0,0,1,0,0,73.9,8.660108,0,4.087001,1 +13,2,0,0,1,227889,0,7839.296,32.57769,1,18,1,0,3.735188,0,0,0,3.735188,0,0,0,0,0,1,54.8,17.2,1,79.5,150,340.8,0,0,0,5.831296,1,4.564348,5.061929,0,0,0,79.5,8.967031,0,1.317798,1 +13,2,0,0,2,227889,0,7839.296,33.57769,1,18,1,22.91667,1.931818,0,0,0,24.84848,0,0,0,1,0,1,54.8,17.2,1,79.5,150,340.8,0,0,0,5.831296,1,4.564348,5.061929,0,0,0,79.5,8.967031,0,3.212797,1 +13,2,0,0,3,227889,0,7839.296,34.57769,1,18,1,0,10.19506,1.603814,0,0,11.79887,0,0,0,0,0,1,54.8,17.2,1,79.5,150,340.8,0,0,0,5.831296,1,4.564348,5.061929,0,0,0,79.5,8.967031,0,2.468004,1 +13,2,0,0,1,227890,0,1700.88,26.88296,0,14,1,0,0,0,10.30397,0,0,0,0,1,0,0,1,86.7,0,0,79.5,150,0,0,0,0,0,1,4.564348,5.061929,0,0,0,79.5,7.439489,0,,0 +13,2,0,0,2,227890,0,1700.88,27.88296,0,14,1,11.36364,2.911932,0,0,0,14.27557,0,0,0,2,0,1,86.7,0,0,79.5,150,0,0,0,0,0,1,4.564348,5.061929,0,0,0,79.5,7.439489,0,2.65855,1 +13,2,0,0,3,227890,0,1700.88,28.88296,0,14,1,0,0,0,0,0,0,0,0,0,0,0,1,86.7,0,0,79.5,150,0,0,0,0,0,1,4.564348,5.061929,0,0,0,79.5,7.439489,0,,0 +13,2,0,1,1,227922,0,10902.05,4.33128,1,12,1,72.53748,9.98394,0,0,0,82.52142,0,0,0,7,0,4,81.35272,11.84267,0,66.7,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,66.7,9.296798,1.386294,4.413058,1 +13,2,0,1,2,227922,0,10902.05,5.33128,1,12,1,130.3075,26.11518,0,0,0,156.4226,0,0,0,11,3,4,81.35272,11.84267,0,66.7,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,66.7,9.296798,1.386294,5.052562,1 +13,2,0,1,3,227922,0,10902.05,6.33128,1,12,1,9.936766,3.252033,0,0,0,13.1888,0,0,0,1,1,4,81.35272,11.84267,0,66.7,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,66.7,9.296798,1.386294,2.579368,1 +13,2,0,1,1,227923,0,10902.05,27.35387,1,12,1,152.0343,44.5878,40.43897,1070.664,0,237.061,0,0,50,5,9,4,67.6,13.8,0,58,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,58,9.296798,1.386294,5.468318,1 +13,2,0,1,2,227923,0,10902.05,28.35387,1,12,1,365.0561,23.00146,33.60664,783.309,0,421.6642,0,0,40,10,16,4,67.6,13.8,0,58,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,58,9.296798,1.386294,6.044209,1 +13,2,0,1,3,227923,0,10902.05,29.35387,1,12,1,306.4137,15.83107,43.24752,307.1364,0,365.4923,0,0,17,6,11,4,67.6,13.8,0,58,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,58,9.296798,1.386294,5.901245,1 +13,2,0,1,1,227924,0,10902.05,7.181383,0,12,1,201.8201,76.52034,124.106,0,0,402.4465,0,0,0,24,5,4,70,11.84267,1,22.2,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,22.2,9.296798,1.386294,5.997562,1 +13,2,0,1,2,227924,0,10902.05,8.181382,0,12,1,355.0757,50.73206,0,0,0,405.8077,0,0,0,39,9,4,70,11.84267,1,22.2,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,22.2,9.296798,1.386294,6.005879,1 +13,2,0,1,3,227924,0,10902.05,9.181382,0,12,1,224.8193,35.85817,.6775068,0,0,261.355,0,0,0,12,7,4,70,11.84267,1,22.2,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,22.2,9.296798,1.386294,5.56588,1 +13,2,0,1,1,227925,0,10902.05,32.68172,0,12,1,166.4882,31.17238,0,0,0,197.6606,0,0,0,8,5,4,73.9,6.9,0,71.6,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,71.6,9.296798,1.386294,5.286551,1 +13,2,0,1,2,227925,0,10902.05,33.68172,0,12,1,79.06296,7.242558,38.54075,0,0,124.8463,0,0,0,6,1,4,73.9,6.9,0,71.6,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,71.6,9.296798,1.386294,4.827083,1 +13,2,0,1,3,227925,0,10902.05,34.68172,0,12,1,47.19964,2.190605,3.31075,0,0,52.70099,0,0,0,2,2,4,73.9,6.9,0,71.6,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,71.6,9.296798,1.386294,3.964634,1 +11,2,0,1,1,227926,0,8665.641,3.110198,1,11,1,29.53476,7.030842,0,0,0,36.56561,0,0,0,3,0,3,81.35272,11.84267,0,74.1,0,0,1,1,1.098612,0,0,0,0,0,0,0,74.1,9.067237,1.098612,3.599108,1 +11,2,0,1,1,227927,0,8665.641,23.80835,1,11,1,162.4935,34.39101,41.08207,0,520.6221,758.5886,1,0,0,4,1,3,41,20.7,1,43.2,0,0,0,0,1.098612,0,0,0,0,0,1,0,43.2,9.067237,1.098612,6.63146,1 +11,2,0,1,1,227928,0,8665.641,36.05202,0,10,1,109.2525,2.88552,0,0,0,112.138,0,0,0,5,0,3,76.6,17.2,1,14.8,0,0,0,0,1.098612,0,0,0,0,1,0,0,14.8,9.067237,1.098612,4.71973,1 +17,2,25,0,1,227941,0,11326.69,13.54689,1,9,1,11.70836,8.461947,0,0,0,20.1703,0,0,0,2,0,3,93.3,11.84267,0,66.7,900.4,900.4,1,1,1.098612,6.802839,0,3.258096,8.189134,0,0,0,66.7,9.335005,1.098612,3.004211,1 +17,2,25,0,2,227941,0,11326.69,14.54689,1,9,1,26.10276,8.773631,0,0,0,34.87639,0,0,0,2,0,3,93.3,11.84267,0,66.7,900.4,900.4,1,1,1.098612,6.802839,0,3.258096,8.189134,0,0,0,66.7,9.335005,1.098612,3.55181,1 +17,2,25,0,3,227941,0,11326.69,15.54689,1,9,1,107.3675,27.86164,0,0,0,135.2291,0,0,0,11,0,3,93.3,11.84267,0,66.7,900.4,900.4,1,1,1.098612,6.802839,0,3.258096,8.189134,0,0,0,66.7,9.335005,1.098612,4.906971,1 +17,2,25,0,4,227941,0,11326.69,16.54689,1,9,1,180.9233,33.63972,0,0,0,214.563,0,0,0,12,0,3,93.3,11.84267,0,66.7,900.4,900.4,1,1,1.098612,6.802839,0,3.258096,8.189134,0,0,0,66.7,9.335005,1.098612,5.368603,1 +17,2,25,0,5,227941,0,11326.69,17.54689,1,9,1,66.33408,51.26756,37.98965,0,0,155.5913,0,0,0,5,1,2,93.3,11.84267,0,66.7,900.4,900.4,1,1,.6931472,6.802839,0,3.258096,8.189134,0,0,0,66.7,9.335005,.6931472,5.047233,1 +17,2,25,0,1,227942,0,11326.69,57.04038,0,12,1,18.62693,0,16.76424,0,0,35.39117,0,0,0,1,0,3,70.2,10.3,1,83,900.4,900.4,0,0,1.098612,6.802839,0,3.258096,8.189134,1,0,0,83,9.335005,1.098612,3.566462,1 +17,2,25,0,2,227942,0,11326.69,58.04038,0,12,1,109.7431,0,0,0,0,109.7431,0,0,0,4,0,3,70.2,10.3,1,83,900.4,900.4,0,0,1.098612,6.802839,0,3.258096,8.189134,1,0,0,83,9.335005,1.098612,4.698142,1 +17,2,25,0,3,227942,0,11326.69,59.04038,0,12,1,173.1357,16.32076,0,0,0,189.4564,0,0,0,5,0,3,70.2,10.3,1,83,900.4,900.4,0,0,1.098612,6.802839,0,3.258096,8.189134,1,0,0,83,9.335005,1.098612,5.244159,1 +17,2,25,0,4,227942,0,11326.69,60.04038,0,12,.6639344,2599.902,210.3898,0,0,1143.357,3953.648,2,0,0,29,1,3,70.2,10.3,1,83,900.4,900.4,0,0,1.098612,6.802839,0,3.258096,8.189134,1,0,0,83,9.335005,1.098612,8.282394,1 +17,2,25,0,1,227943,0,11326.69,55.06639,1,9,1,163.7573,63.25705,1.12826,0,445.9287,674.0713,1,0,0,11,0,3,96.8,20.7,1,51.1,900.4,900.4,0,0,1.098612,6.802839,0,3.258096,8.189134,1,0,0,51.1,9.335005,1.098612,6.513336,1 +17,2,25,0,2,227943,0,11326.69,56.06639,1,9,1,35.38536,45.73922,41.77896,0,0,122.9035,0,0,0,3,0,3,96.8,20.7,1,51.1,900.4,900.4,0,0,1.098612,6.802839,0,3.258096,8.189134,1,0,0,51.1,9.335005,1.098612,4.8114,1 +17,2,25,0,3,227943,0,11326.69,57.06639,1,9,1,273.1357,65.44923,14.28571,0,0,352.8706,0,0,0,14,0,3,96.8,20.7,1,51.1,900.4,900.4,0,0,1.098612,6.802839,0,3.258096,8.189134,1,0,0,51.1,9.335005,1.098612,5.866101,1 +17,2,25,0,4,227943,0,11326.69,58.06639,1,9,1,110.3611,85.60115,14.17727,0,0,210.1395,0,0,0,5,0,3,96.8,20.7,1,51.1,900.4,900.4,0,0,1.098612,6.802839,0,3.258096,8.189134,1,0,0,51.1,9.335005,1.098612,5.347772,1 +17,2,25,0,5,227943,0,11326.69,59.06639,1,9,1,79.12048,105.8906,0,0,0,185.0111,0,0,0,5,0,2,96.8,20.7,1,51.1,900.4,900.4,0,0,.6931472,6.802839,0,3.258096,8.189134,1,0,0,51.1,9.335005,.6931472,5.220416,1 +13,2,0,0,1,227951,0,73.31378,5.653662,1,8,1,15.19835,0,0,0,0,15.19835,0,0,0,2,0,5,88.3,11.84267,0,81.5,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,1,0,0,81.5,4.308296,1.609438,2.721187,1 +13,2,0,0,2,227951,0,73.31378,6.653662,1,8,1,6.155303,0,0,0,0,6.155303,0,0,0,1,0,5,88.3,11.84267,0,81.5,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,1,0,0,81.5,4.308296,1.609438,1.817314,1 +13,2,0,0,3,227951,0,73.31378,7.653662,1,8,1,0,0,0,0,0,0,0,0,0,0,0,5,88.3,11.84267,0,81.5,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,1,0,0,81.5,4.308296,1.609438,,0 +13,2,0,0,1,227952,0,73.31378,37.29227,1,8,1,12.36476,0,0,0,0,12.36476,0,0,0,2,0,5,59.6,3.4,0,60.2,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,1,60.2,4.308296,1.609438,2.514851,1 +13,2,0,0,2,227952,0,73.31378,38.29227,1,8,1,13.25758,0,0,0,0,13.25758,0,0,0,1,0,5,59.6,3.4,0,60.2,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,1,60.2,4.308296,1.609438,2.584569,1 +13,2,0,0,3,227952,0,73.31378,39.29227,1,8,1,0,0,0,0,0,0,0,0,0,0,0,5,59.6,3.4,0,60.2,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,1,60.2,4.308296,1.609438,,0 +13,2,0,0,1,227953,0,73.31378,15.56468,1,8,1,0,0,0,0,0,0,0,0,0,0,0,5,77.7,3.4,0,69.3,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,1,0,69.3,4.308296,1.609438,,0 +13,2,0,0,2,227953,0,73.31378,16.56468,1,8,1,13.73106,0,0,0,0,13.73106,0,0,0,1,0,5,77.7,3.4,0,69.3,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,1,0,69.3,4.308296,1.609438,2.61966,1 +13,2,0,0,3,227953,0,73.31378,17.56468,1,8,1,0,0,0,0,0,0,0,0,0,0,0,5,77.7,3.4,0,69.3,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,1,0,69.3,4.308296,1.609438,,0 +13,2,0,0,1,227954,0,73.31378,17.58248,0,8,1,0,0,0,0,0,0,0,0,0,0,0,5,88.3,0,0,60.2,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,1,0,60.2,4.308296,1.609438,,0 +13,2,0,0,2,227954,0,73.31378,18.58248,0,8,1,0,0,0,0,0,0,0,0,0,0,0,5,88.3,0,0,60.2,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,1,0,60.2,4.308296,1.609438,,0 +13,2,0,0,3,227954,0,73.31378,19.58248,0,8,1,0,0,0,0,0,0,0,0,0,0,0,5,88.3,0,0,60.2,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,1,0,60.2,4.308296,1.609438,,0 +13,2,0,0,1,227955,0,73.31378,14.65298,1,8,1,0,0,0,0,0,0,0,0,0,0,0,5,68.6,6.9,0,68.2,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,1,0,68.2,4.308296,1.609438,,0 +13,2,0,0,2,227955,0,73.31378,15.65298,1,8,1,34.56439,0,0,0,0,34.56439,0,0,0,3,0,5,68.6,6.9,0,68.2,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,1,0,68.2,4.308296,1.609438,3.542824,1 +13,2,0,0,3,227955,0,73.31378,16.65298,1,8,1,0,0,0,0,0,0,0,0,0,0,0,5,68.6,6.9,0,68.2,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,1,0,68.2,4.308296,1.609438,,0 +13,2,0,0,1,227960,0,8756.599,20.81588,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,86.7,0,0,78.4,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,78.4,9.077677,0,,0 +13,2,0,0,2,227960,0,8756.599,21.81588,1,12,1,69.31653,0,0,0,282.9375,352.254,1,0,0,2,0,1,86.7,0,0,78.4,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,78.4,9.077677,0,5.864353,1 +13,2,0,0,3,227960,0,8756.599,22.81588,1,12,1,22.91105,0,0,0,829.9191,852.8302,2,0,0,0,0,1,86.7,0,0,78.4,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,78.4,9.077677,0,6.74856,1 +18,2,25,0,1,227961,0,13146.04,36.50924,1,12,1,50.23184,7.444616,30.83462,0,0,88.51108,0,0,0,3,0,4,81.4,13.8,0,90.9,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,90.9,9.483952,1.386294,4.483128,1 +18,2,25,0,2,227961,0,13146.04,37.50924,1,12,1,20.35985,0,0,0,0,20.35985,0,0,0,1,0,4,81.4,13.8,0,90.9,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,90.9,9.483952,1.386294,3.013565,1 +18,2,25,0,3,227961,0,13146.04,38.50924,1,12,1,0,3.857824,0,0,0,3.857824,0,0,0,0,0,4,81.4,13.8,0,90.9,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,90.9,9.483952,1.386294,1.350103,1 +18,2,25,0,1,227962,0,13146.04,17.21834,1,12,1,100.3349,12.27203,14.42555,0,0,127.0325,0,0,0,9,0,4,42.6,27.6,1,42,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,1,0,0,42,9.483952,1.386294,4.844443,1 +18,2,25,0,2,227962,0,13146.04,18.21834,1,12,1,121.875,19.55966,13.25758,0,323.5511,478.2434,1,0,0,7,0,4,42.6,27.6,1,42,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,42,9.483952,1.386294,6.17012,1 +18,2,25,0,3,227962,0,13146.04,19.21834,1,12,1,306.567,43.61509,13.0039,6.501951,267.4036,630.5895,1,0,1,19,0,4,42.6,27.6,1,42,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,1,0,0,42,9.483952,1.386294,6.446655,1 +18,2,25,0,1,227963,0,13146.04,40.25188,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,61.7,17.2,1,65.9,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,65.9,9.483952,1.386294,,0 +18,2,25,0,2,227963,0,13146.04,41.25188,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,61.7,17.2,1,65.9,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,65.9,9.483952,1.386294,,0 +18,2,25,0,3,227963,0,13146.04,42.25188,0,12,1,60.25141,12.52709,.8669267,0,0,73.64542,0,0,0,4,0,4,61.7,17.2,1,65.9,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,65.9,9.483952,1.386294,4.299262,1 +18,2,25,0,1,227965,0,13146.04,15.82478,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,51.1,3.4,0,76.1,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,76.1,9.483952,1.386294,,0 +18,2,25,0,2,227965,0,13146.04,16.82478,0,12,1,0,6.174242,0,0,0,6.174242,0,0,0,0,0,4,51.1,3.4,0,76.1,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,76.1,9.483952,1.386294,1.820386,1 +18,2,25,0,3,227965,0,13146.04,17.82478,0,12,1,16.03815,4.746424,0,0,0,20.78457,0,0,0,2,0,4,51.1,3.4,0,76.1,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,76.1,9.483952,1.386294,3.034211,1 +11,2,0,0,1,227980,0,7794.135,37.00479,1,8,1,65.8595,11.68707,0,0,0,77.54657,0,0,0,4,0,4,77.7,13.8,1,60.2,0,0,0,0,1.386294,0,0,0,0,1,0,0,60.2,8.961255,1.386294,4.350879,1 +11,2,0,0,2,227980,0,7794.135,38.00479,1,8,1,34.4159,25.01212,0,0,0,59.42802,0,0,0,4,0,4,77.7,13.8,1,60.2,0,0,0,0,1.386294,0,0,0,0,1,0,0,60.2,8.961255,1.386294,4.084766,1 +11,2,0,0,3,227980,0,7794.135,39.00479,1,8,1,37.73585,13.12668,0,0,2284.712,2335.575,2,0,0,12,0,4,77.7,13.8,1,60.2,0,0,0,0,1.386294,0,0,0,0,1,0,0,60.2,8.961255,1.386294,7.756013,1 +11,2,0,0,4,227980,0,7794.135,40.00479,1,8,1,112.8437,51.2064,0,0,1990.501,2154.551,3,0,0,8,0,4,77.7,13.8,1,60.2,0,0,0,0,1.386294,0,0,0,0,1,0,0,60.2,8.961255,1.386294,7.675337,1 +11,2,0,0,5,227980,0,7794.135,41.00479,1,8,1,199.9261,140.3252,27.24686,0,0,367.4981,0,0,0,52,0,4,77.7,13.8,1,60.2,0,0,0,0,1.386294,0,0,0,0,1,0,0,60.2,8.961255,1.386294,5.906718,1 +11,2,0,0,1,227981,0,7794.135,2.173854,1,8,1,31.39968,23.48058,0,0,0,54.88026,0,0,0,4,0,4,81.35272,11.84267,0,70.4,0,0,1,1,1.386294,0,0,0,0,0,0,0,70.4,8.961255,1.386294,4.005154,1 +11,2,0,0,2,227981,0,7794.135,3.173854,1,8,1,0,7.770237,0,0,0,7.770237,0,0,0,0,0,4,81.35272,11.84267,0,70.4,0,0,1,1,1.386294,0,0,0,0,0,0,0,70.4,8.961255,1.386294,2.050301,1 +11,2,0,0,3,227981,0,7794.135,4.173853,1,8,1,95.2381,14.08356,0,0,0,109.3217,0,0,0,11,0,4,81.35272,11.84267,0,70.4,0,0,1,1,1.386294,0,0,0,0,0,0,0,70.4,8.961255,1.386294,4.694294,1 +11,2,0,0,4,227981,0,7794.135,5.173853,1,8,1,73.65614,13.15962,0,0,0,86.81576,0,0,0,5,0,4,81.35272,11.84267,0,70.4,0,0,1,1,1.386294,0,0,0,0,0,0,0,70.4,8.961255,1.386294,4.463788,1 +11,2,0,0,5,227981,0,7794.135,6.173853,1,8,1,0,0,0,0,0,0,0,0,0,0,0,4,81.35272,11.84267,0,70.4,0,0,1,1,1.386294,0,0,0,0,0,0,0,70.4,8.961255,1.386294,,0 +11,2,0,0,1,227982,0,7794.135,12.63518,1,8,1,30.86748,8.861096,0,0,0,39.72858,0,0,0,3,0,4,66.7,11.84267,0,55.6,0,0,1,1,1.386294,0,0,0,0,0,0,0,55.6,8.961255,1.386294,3.682071,1 +11,2,0,0,2,227982,0,7794.135,13.63518,1,8,1,112.8211,11.8856,0,0,0,124.7067,0,0,0,6,0,4,66.7,11.84267,0,55.6,0,0,1,1,1.386294,0,0,0,0,0,0,0,55.6,8.961255,1.386294,4.825965,1 +11,2,0,0,3,227982,0,7794.135,14.63518,1,8,1,211.5903,15.01797,0,0,0,226.6083,0,0,0,11,0,4,66.7,11.84267,0,55.6,0,0,1,1,1.386294,0,0,0,0,0,0,0,55.6,8.961255,1.386294,5.423223,1 +11,2,0,0,4,227982,0,7794.135,15.63518,1,8,1,118.5064,32.8929,0,0,117.8908,269.2901,1,0,0,8,0,4,66.7,11.84267,0,55.6,0,0,1,1,1.386294,0,0,0,0,0,0,0,55.6,8.961255,1.386294,5.595789,1 +11,2,0,0,5,227982,0,7794.135,16.63518,1,8,1,241.5743,56.00148,0,0,0,297.5757,0,0,0,8,0,4,66.7,11.84267,0,55.6,0,0,1,1,1.386294,0,0,0,0,0,0,0,55.6,8.961255,1.386294,5.695669,1 +11,2,0,0,1,227983,0,7794.135,45.88364,0,12,1,18.62693,0,40.20224,0,0,58.82916,0,0,0,1,0,4,69.7,10.3,0,67,0,0,0,0,1.386294,0,0,0,0,0,0,0,67,8.961255,1.386294,4.074638,1 +11,2,0,0,2,227983,0,7794.135,46.88364,0,12,1,0,8.293747,18.61367,0,0,26.90742,0,0,0,0,0,4,69.7,10.3,0,67,0,0,0,0,1.386294,0,0,0,0,0,0,0,67,8.961255,1.386294,3.292402,1 +11,2,0,0,3,227983,0,7794.135,47.88364,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,69.7,10.3,0,67,0,0,0,0,1.386294,0,0,0,0,0,0,0,67,8.961255,1.386294,,0 +11,2,0,0,4,227983,0,7794.135,48.88364,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,69.7,10.3,0,67,0,0,0,0,1.386294,0,0,0,0,0,0,0,67,8.961255,1.386294,,0 +11,2,0,0,5,227983,0,7794.135,49.88364,0,12,1,1039.634,0,0,0,581.1899,1620.824,1,0,0,6,0,4,69.7,10.3,0,67,0,0,0,0,1.386294,0,0,0,0,0,0,0,67,8.961255,1.386294,7.39069,1 +11,2,0,0,1,227984,0,6380.059,59.93155,1,12,1,160.1376,92.35574,0,0,0,252.4934,0,0,0,11,0,1,83,10.3,1,70.5,0,396,0,0,0,5.981414,0,0,0,1,0,0,70.5,8.761089,0,5.531385,1 +11,2,0,0,2,227984,0,6380.059,60.93155,1,12,1,194.2568,111.5203,0,0,0,305.777,0,0,0,15,0,1,83,10.3,1,70.5,0,396,0,0,0,5.981414,0,0,0,1,0,0,70.5,8.761089,0,5.722856,1 +11,2,0,0,3,227984,0,6380.059,61.93155,1,12,1,168.6693,33.69827,51.97152,0,0,254.3391,0,0,0,13,0,1,83,10.3,1,70.5,0,396,0,0,0,5.981414,0,0,0,1,0,0,70.5,8.761089,0,5.538669,1 +11,2,0,0,4,227984,0,6380.059,62.93155,1,12,1,236.4782,64.88817,0,0,0,301.3664,0,0,0,13,0,1,83,10.3,1,70.5,0,396,0,0,0,5.981414,0,0,0,1,0,0,70.5,8.761089,0,5.708327,1 +11,2,0,0,5,227984,0,6380.059,63.93155,1,12,1,221.5909,31.97214,0,0,0,253.563,0,0,0,11,0,1,83,10.3,1,70.5,0,396,0,0,0,5.981414,0,0,0,1,0,0,70.5,8.761089,0,5.535613,1 +11,2,0,1,1,227998,0,12757,18.62012,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,66.5,3.4,0,96.6,0,180,0,0,1.386294,5.192957,0,0,0,0,0,0,96.6,9.453914,1.386294,,0 +11,2,0,1,2,227998,0,12757,19.62012,0,12,1,0,6.235521,0,0,0,6.235521,0,0,0,0,0,4,66.5,3.4,0,96.6,0,180,0,0,1.386294,5.192957,0,0,0,0,0,0,96.6,9.453914,1.386294,1.830262,1 +11,2,0,1,3,227998,0,12757,20.62012,0,12,1,2.447708,3.88073,0,0,0,6.328438,0,0,0,1,0,4,66.5,3.4,0,96.6,0,180,0,0,1.386294,5.192957,0,0,0,0,0,0,96.6,9.453914,1.386294,1.845053,1 +11,2,0,1,1,227999,0,12757,55.40589,0,11,1,67.01958,18.56538,45.26734,0,0,130.8523,0,0,0,3,0,4,70.7,6.9,0,70.5,0,180,0,0,1.386294,5.192957,0,0,0,0,0,0,70.5,9.453914,1.386294,4.874069,1 +11,2,0,1,2,227999,0,12757,56.40589,0,11,1,63.70656,35.66602,14.5029,0,0,113.8755,0,0,0,3,0,4,70.7,6.9,0,70.5,0,180,0,0,1.386294,5.192957,0,0,0,0,0,0,70.5,9.453914,1.386294,4.735106,1 +11,2,0,1,3,227999,0,12757,57.40589,0,11,1,62.75033,17.97953,0,0,0,80.72986,0,0,0,2,0,4,70.7,6.9,0,70.5,0,180,0,0,1.386294,5.192957,0,0,0,0,0,0,70.5,9.453914,1.386294,4.391109,1 +11,2,0,1,1,228000,0,12757,14.89665,0,12,1,16.94018,0,0,0,0,16.94018,0,0,0,1,0,4,80.3,0,0,72.7,0,180,1,0,1.386294,5.192957,0,0,0,0,0,0,72.7,9.453914,1.386294,2.829688,1 +11,2,0,1,2,228000,0,12757,15.89665,0,12,1,18.33977,2.84749,0,0,0,21.18726,0,0,0,2,0,4,80.3,0,0,72.7,0,180,1,0,1.386294,5.192957,0,0,0,0,0,0,72.7,9.453914,1.386294,3.0534,1 +11,2,0,1,3,228000,0,12757,16.89665,0,12,1,41.7223,2.069426,1.557632,0,0,45.34935,0,0,0,2,0,4,80.3,0,0,72.7,0,180,1,0,1.386294,5.192957,0,0,0,0,0,0,72.7,9.453914,1.386294,3.814396,1 +11,2,0,1,1,228001,0,12757,55.436,1,12,1,115.6697,28.50185,0,0,0,144.1715,0,0,0,5,0,4,81.4,13.8,1,35.2,0,180,0,0,1.386294,5.192957,0,0,0,0,0,1,35.2,9.453914,1.386294,4.971004,1 +11,2,0,1,2,228001,0,12757,56.436,1,12,1,23.40734,9.121622,0,0,0,32.52896,0,0,0,1,0,4,81.4,13.8,1,35.2,0,180,0,0,1.386294,5.192957,0,0,0,0,0,1,35.2,9.453914,1.386294,3.482131,1 +11,2,0,1,3,228001,0,12757,57.436,1,12,1,102.0472,12.87939,0,0,0,114.9266,0,0,0,3,0,4,81.4,13.8,1,35.2,0,180,0,0,1.386294,5.192957,0,0,0,0,0,1,35.2,9.453914,1.386294,4.744293,1 +14,2,95,0,1,228020,0,10168.92,43.00342,1,11,1,7.676019,3.28216,0,0,0,10.95818,0,0,0,1,0,8,82.4,17.2,0,80.7,829.6,829.6,0,0,2.079442,6.720943,0,4.564348,6.772237,1,0,0,80.7,9.227189,2.079442,2.394086,1 +14,2,95,0,2,228020,0,10168.92,44.00342,1,11,1,12.54826,0,0,0,0,12.54826,0,0,0,1,0,6,82.4,17.2,0,80.7,829.6,829.6,0,0,1.791759,6.720943,0,4.564348,6.772237,1,0,0,80.7,9.227189,1.791759,2.529582,1 +14,2,95,0,3,228020,0,10168.92,45.00342,1,11,1,203.1598,25.32265,0,0,0,228.4824,0,0,0,5,1,6,82.4,17.2,0,80.7,829.6,829.6,0,0,1.791759,6.720943,0,4.564348,6.772237,1,0,0,80.7,9.227189,1.791759,5.431459,1 +14,2,95,0,1,228021,0,10168.92,6.962355,1,11,1,37.05664,13.94918,0,0,344.1821,395.1879,1,0,0,4,0,8,83.3,11.84267,0,74.1,829.6,829.6,1,1,2.079442,6.720943,0,4.564348,6.772237,0,0,0,74.1,9.227189,2.079442,5.979362,1 +14,2,95,0,2,228021,0,10168.92,7.962355,1,11,1,32.09459,5.936294,0,0,0,38.03089,0,0,0,1,0,6,83.3,11.84267,0,74.1,829.6,829.6,1,1,1.791759,6.720943,0,4.564348,6.772237,0,0,0,74.1,9.227189,1.791759,3.638399,1 +14,2,95,0,3,228021,0,10168.92,8.962355,1,11,1,20.47174,0,0,0,0,20.47174,0,0,0,2,0,6,83.3,11.84267,0,74.1,829.6,829.6,1,1,1.791759,6.720943,0,4.564348,6.772237,0,0,0,74.1,9.227189,1.791759,3.019045,1 +14,2,95,0,1,228022,0,10168.92,15.68241,1,11,1,11.91106,3.92271,0,0,0,15.83377,0,0,0,1,0,8,59,13.8,0,48.8,829.6,829.6,1,1,2.079442,6.720943,0,4.564348,6.772237,1,0,0,48.8,9.227189,2.079442,2.762145,1 +14,2,95,0,2,228022,0,10168.92,16.68241,1,11,1,35.47297,0,0,0,0,35.47297,0,0,0,4,0,6,59,13.8,0,48.8,829.6,829.6,1,1,1.791759,6.720943,0,4.564348,6.772237,1,0,0,48.8,9.227189,1.791759,3.568771,1 +14,2,95,0,3,228022,0,10168.92,17.68241,1,11,1,11.12595,0,0,0,0,11.12595,0,0,0,0,1,6,59,13.8,0,48.8,829.6,829.6,1,1,1.791759,6.720943,0,4.564348,6.772237,1,0,0,48.8,9.227189,1.791759,2.40928,1 +14,2,95,0,1,228023,0,10168.92,1.002053,0,11,1,115.5903,12.49338,0,0,699.8571,827.9407,2,0,0,9,0,8,81.35272,11.84267,0,92.6,829.6,829.6,1,0,2.079442,6.720943,0,4.564348,6.772237,1,0,0,92.6,9.227189,2.079442,6.718942,1 +14,2,95,0,1,228024,0,10168.92,48.25736,0,13,1,7.676019,2.805717,0,0,0,10.48174,0,0,0,1,0,8,80.3,10.3,0,71.6,829.6,829.6,0,0,2.079442,6.720943,0,4.564348,6.772237,0,0,0,71.6,9.227189,2.079442,2.349634,1 +14,2,95,0,2,228024,0,10168.92,49.25736,0,13,1,7.239382,0,50.00965,0,0,57.24903,0,0,0,0,1,6,80.3,10.3,0,71.6,829.6,829.6,0,0,1.791759,6.720943,0,4.564348,6.772237,0,0,0,71.6,9.227189,1.791759,4.047411,1 +14,2,95,0,3,228024,0,10168.92,50.25736,0,13,1,12.23854,0,51.56208,0,0,63.80062,0,0,0,0,1,6,80.3,10.3,0,71.6,829.6,829.6,0,0,1.791759,6.720943,0,4.564348,6.772237,0,0,0,71.6,9.227189,1.791759,4.155763,1 +14,2,95,0,1,228025,0,10168.92,17.99863,1,11,1,27.2631,8.263632,0,0,0,35.52673,0,0,0,2,0,8,58,10.3,0,62.5,829.6,829.6,1,1,2.079442,6.720943,0,4.564348,6.772237,0,1,0,62.5,9.227189,2.079442,3.570286,1 +14,2,95,0,1,228026,0,10168.92,8.561259,0,11,1,69.61356,1.535204,0,0,0,71.14876,0,0,0,4,0,8,60,11.84267,0,40.7,829.6,829.6,1,0,2.079442,6.720943,0,4.564348,6.772237,0,1,0,40.7,9.227189,2.079442,4.264773,1 +14,2,95,0,2,228026,0,10168.92,9.561259,0,11,1,0,0,0,0,0,0,0,0,0,0,0,6,60,11.84267,0,40.7,829.6,829.6,1,0,1.791759,6.720943,0,4.564348,6.772237,0,1,0,40.7,9.227189,1.791759,,0 +14,2,95,0,3,228026,0,10168.92,10.56126,0,11,1,26.03471,0,0,0,0,26.03471,0,0,0,2,0,6,60,11.84267,0,40.7,829.6,829.6,1,0,1.791759,6.720943,0,4.564348,6.772237,0,1,0,40.7,9.227189,1.791759,3.259431,1 +14,2,95,0,1,228027,0,10168.92,13.26762,0,11,1,21.70461,0,0,0,0,21.70461,0,0,0,2,0,8,80,11.84267,0,74.1,829.6,829.6,1,0,2.079442,6.720943,0,4.564348,6.772237,0,0,0,74.1,9.227189,2.079442,3.077524,1 +14,2,95,0,2,228027,0,10168.92,14.26762,0,11,1,22.6834,0,0,0,0,22.6834,0,0,0,2,0,6,80,11.84267,0,74.1,829.6,829.6,1,0,1.791759,6.720943,0,4.564348,6.772237,0,0,0,74.1,9.227189,1.791759,3.121633,1 +14,2,95,0,3,228027,0,10168.92,15.26762,0,11,1,11.12595,0,39.9555,0,0,51.08144,0,0,0,0,1,6,80,11.84267,0,74.1,829.6,829.6,1,0,1.791759,6.720943,0,4.564348,6.772237,0,0,0,74.1,9.227189,1.791759,3.933421,1 +13,2,0,0,1,228105,0,17689.74,30.55989,0,12,1,10.92044,9.178367,0,0,0,20.0988,0,0,0,1,0,3,47.9,20.7,0,55.7,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,55.7,9.780796,1.098612,3.00066,1 +13,2,0,0,2,228105,0,17689.74,31.55989,0,12,1,21.50024,21.33302,0,23.88915,0,42.83325,0,0,1,3,0,3,47.9,20.7,0,55.7,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,55.7,9.780796,1.098612,3.757315,1 +13,2,0,0,3,228105,0,17689.74,32.55989,0,12,1,91.90079,21.90518,0,166.813,0,113.806,0,0,10,2,0,3,47.9,20.7,0,55.7,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,55.7,9.780796,1.098612,4.734495,1 +13,2,0,0,4,228105,0,17689.74,33.55989,0,12,1,121.6594,6.322298,0,0,0,127.9817,0,0,0,4,0,3,47.9,20.7,0,55.7,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,55.7,9.780796,1.098612,4.851887,1 +13,2,0,0,5,228105,0,17689.74,34.55989,0,12,1,143.1291,3.607687,0,119.6519,0,146.7368,0,0,6,8,0,3,47.9,20.7,0,55.7,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,55.7,9.780796,1.098612,4.98864,1 +13,2,0,0,1,228106,0,17689.74,8.991102,0,12,1,8.060323,0,0,0,0,8.060323,0,0,0,1,0,3,93.3,11.84267,0,88.9,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,88.9,9.780796,1.098612,2.086954,1 +13,2,0,0,2,228106,0,17689.74,9.991102,0,12,1,10.03344,0,0,0,0,10.03344,0,0,0,1,0,3,93.3,11.84267,0,88.9,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,88.9,9.780796,1.098612,2.305924,1 +13,2,0,0,3,228106,0,17689.74,10.9911,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,93.3,11.84267,0,88.9,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,88.9,9.780796,1.098612,,0 +13,2,0,0,4,228106,0,17689.74,11.9911,0,12,1,93.39848,13.76147,0,0,0,107.16,0,0,0,4,0,3,93.3,11.84267,0,88.9,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,88.9,9.780796,1.098612,4.674323,1 +13,2,0,0,5,228106,0,17689.74,12.9911,0,12,1,53.1182,9.408992,0,0,0,62.52719,0,0,0,6,0,3,93.3,11.84267,0,88.9,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,88.9,9.780796,1.098612,4.135602,1 +13,2,0,0,1,228107,0,17689.74,32.72553,1,12,1,29.9012,95.94384,39.25637,0,0,165.1014,0,0,0,2,0,3,37.8,17.2,1,28.4,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,1,0,28.4,9.780796,1.098612,5.10656,1 +13,2,0,0,2,228107,0,17689.74,33.72553,1,12,1,105.1123,97.72098,0,0,0,202.8333,0,0,0,9,0,3,37.8,17.2,1,28.4,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,1,0,28.4,9.780796,1.098612,5.312384,1 +13,2,0,0,3,228107,0,17689.74,34.72553,1,12,1,115.5619,75.26339,0,0,0,190.8253,0,0,0,6,0,3,37.8,17.2,1,28.4,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,1,0,28.4,9.780796,1.098612,5.251359,1 +13,2,0,0,4,228107,0,17689.74,35.72553,1,12,1,50.53849,57.47906,0,0,0,108.0175,0,0,0,5,0,3,37.8,17.2,1,28.4,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,1,0,28.4,9.780796,1.098612,4.682294,1 +13,2,0,0,5,228107,0,17689.74,36.72553,1,12,1,49.49239,52.01233,30.73967,0,0,132.2444,0,0,0,3,1,3,37.8,17.2,1,28.4,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,1,0,28.4,9.780796,1.098612,4.884652,1 +13,2,0,1,1,228112,0,6118.475,29.82615,1,13,1,118.4004,90.02614,46.8322,0,0,255.2588,0,0,0,19,1,1,61.7,31,0,48.9,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,48.9,8.719232,0,5.542278,1 +13,2,0,1,2,228112,0,6118.475,30.82615,1,13,1,339.6684,30.34118,44.98799,0,0,414.9976,0,0,0,32,1,1,61.7,31,0,48.9,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,48.9,8.719232,0,6.028273,1 +13,2,0,1,3,228112,0,6118.475,31.82615,1,13,1,188.0176,21.97797,29.95595,0,276.1234,516.0749,1,0,0,3,1,1,61.7,31,0,48.9,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,48.9,8.719232,0,6.246252,1 +15,2,95,0,1,228120,0,8665.641,28.53936,0,14,1,91.00364,3.406136,0,0,0,94.40977,0,0,0,3,0,3,70.7,6.9,0,78.4,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,1,0,0,78.4,9.067237,1.098612,4.547645,1 +15,2,95,0,2,228120,0,8665.641,29.53936,0,14,1,10.75012,0,0,0,0,10.75012,0,0,0,1,0,1,70.7,6.9,0,78.4,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,1,0,0,78.4,9.067237,0,2.374917,1 +15,2,95,0,3,228120,0,8665.641,30.53936,0,14,1,0,0,0,0,0,0,0,0,0,0,0,1,70.7,6.9,0,78.4,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,1,0,0,78.4,9.067237,0,,0 +16,2,95,1,1,228121,0,2739.589,22.1848,1,11,1,0,0,0,0,0,0,0,0,0,0,0,1,45.7,17.2,0,46.6,600,393.69,0,0,0,5.975564,0,4.564348,6.448223,1,0,0,46.6,7.915928,0,,0 +16,2,95,1,2,228121,0,2739.589,23.1848,1,11,1,0,0,0,0,0,0,0,0,0,0,0,1,45.7,17.2,0,46.6,600,393.69,0,0,0,5.975564,0,4.564348,6.448223,1,0,0,46.6,7.915928,0,,0 +16,2,95,1,3,228121,0,2739.589,24.1848,1,11,1,0,0,0,0,0,0,0,0,0,0,0,1,45.7,17.2,0,46.6,600,393.69,0,0,0,5.975564,0,4.564348,6.448223,1,0,0,46.6,7.915928,0,,0 +13,2,0,0,1,228122,0,12571.26,50.35455,1,12,1,112.7426,31.65475,0,0,0,144.3973,0,0,0,7,0,4,72.3,13.8,0,62.5,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,62.5,9.439248,1.386294,4.972569,1 +13,2,0,0,2,228122,0,12571.26,51.35455,1,12,1,77.82466,18.29348,40.66104,0,0,136.7792,0,0,0,2,0,3,72.3,13.8,0,62.5,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,62.5,9.439248,1.098612,4.918368,1 +13,2,0,0,3,228122,0,12571.26,52.35455,1,12,1,127.3861,21.90026,0,0,0,149.2863,0,0,0,10,0,3,72.3,13.8,0,62.5,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,62.5,9.439248,1.098612,5.005866,1 +13,2,0,0,1,228123,0,12571.26,52.85147,0,12,1,55.41369,1.731359,0,0,0,57.14505,0,0,0,2,0,4,92.6,20.7,0,85.2,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.439248,1.386294,4.045593,1 +13,2,0,0,2,228123,0,12571.26,53.85147,0,12,1,50.86732,0,0,0,0,50.86732,0,0,0,2,0,3,92.6,20.7,0,85.2,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.439248,1.098612,3.929221,1 +13,2,0,0,3,228123,0,12571.26,54.85147,0,12,1,201.6337,17.11522,1.573517,0,0,220.3224,0,0,0,6,9,3,92.6,20.7,0,85.2,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.439248,1.098612,5.395092,1 +13,2,0,0,1,228124,0,12571.26,20.44901,0,13,1,15.32176,0,21.96119,0,0,37.28294,0,0,0,1,0,4,66.5,10.3,0,70.5,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,70.5,9.439248,1.386294,3.618536,1 +13,2,0,0,1,228125,0,12571.26,16.95551,1,12,1,12.76813,0,0,0,0,12.76813,0,0,0,1,0,4,64.4,10.3,0,65.9,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,65.9,9.439248,1.386294,2.546952,1 +13,2,0,0,2,228125,0,12571.26,17.95551,1,12,1,14.0647,0,0,0,0,14.0647,0,0,0,1,0,3,64.4,10.3,0,65.9,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,0,0,0,65.9,9.439248,1.098612,2.643668,1 +13,2,0,0,3,228125,0,12571.26,18.95551,1,12,1,24.50559,0,0,0,0,24.50559,0,0,0,2,0,3,64.4,10.3,0,65.9,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,65.9,9.439248,1.098612,3.198901,1 +11,2,0,1,1,228136,1,2651.026,.8049281,0,12,1,56.37904,0,0,0,0,56.37904,0,0,0,7,0,4,81.35272,11.84267,0,88.9,0,0,1,0,1.386294,0,0,0,0,0,0,0,88.9,7.88308,1.386294,4.032097,1 +11,2,0,1,2,228136,1,2651.026,1.804928,0,12,1,19.78765,2.895753,0,0,0,22.6834,0,0,0,3,0,4,81.35272,11.84267,0,88.9,0,0,1,0,1.386294,0,0,0,0,0,0,0,88.9,7.88308,1.386294,3.121633,1 +11,2,0,1,3,228136,1,2651.026,2.804928,0,12,1,13.79617,0,0,0,0,13.79617,0,0,0,3,0,4,81.35272,11.84267,0,88.9,0,0,1,0,1.386294,0,0,0,0,0,0,0,88.9,7.88308,1.386294,2.624391,1 +11,2,0,1,1,228137,1,2651.026,5.226557,0,12,1,52.93806,26.89254,0,0,0,79.8306,0,0,0,5,0,4,88.3,11.84267,0,73.5,0,0,1,0,1.386294,0,0,0,0,1,0,0,73.5,7.88308,1.386294,4.379907,1 +11,2,0,1,2,228137,1,2651.026,6.226557,0,12,1,5.791506,0,0,0,0,5.791506,0,0,0,1,0,4,88.3,11.84267,0,73.5,0,0,1,0,1.386294,0,0,0,0,1,0,0,73.5,7.88308,1.386294,1.756392,1 +11,2,0,1,3,228137,1,2651.026,7.226557,0,12,1,10.68091,0,0,0,0,10.68091,0,0,0,2,0,4,88.3,11.84267,0,73.5,0,0,1,0,1.386294,0,0,0,0,1,0,0,73.5,7.88308,1.386294,2.368458,1 +11,2,0,1,1,228138,1,2651.026,25.54415,1,12,1,7.411329,1.852832,0,0,0,9.264161,0,0,0,1,0,4,63.3,3.4,0,62.5,0,0,0,0,1.386294,0,0,0,0,0,0,0,62.5,7.88308,1.386294,2.226153,1 +11,2,0,1,2,228138,1,2651.026,26.54415,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,63.3,3.4,0,62.5,0,0,0,0,1.386294,0,0,0,0,0,0,0,62.5,7.88308,1.386294,,0 +11,2,0,1,3,228138,1,2651.026,27.54415,1,12,1,62.97285,0,0,0,0,62.97285,0,0,0,3,0,4,63.3,3.4,0,62.5,0,0,0,0,1.386294,0,0,0,0,0,0,0,62.5,7.88308,1.386294,4.142704,1 +11,2,0,1,1,228139,1,2651.026,5.226557,0,12,1,19.58708,7.252514,0,0,0,26.8396,0,0,0,2,0,4,88.3,11.84267,0,77.8,0,0,1,0,1.386294,0,0,0,0,1,0,0,77.8,7.88308,1.386294,3.289878,1 +11,2,0,1,2,228139,1,2651.026,6.226557,0,12,1,35.71429,0,0,0,0,35.71429,0,0,0,1,1,4,88.3,11.84267,0,77.8,0,0,1,0,1.386294,0,0,0,0,1,0,0,77.8,7.88308,1.386294,3.575551,1 +11,2,0,1,3,228139,1,2651.026,7.226557,0,12,1,40.05341,0,0,22.25189,0,40.05341,0,0,1,2,0,4,88.3,11.84267,0,77.8,0,0,1,0,1.386294,0,0,0,0,1,0,0,77.8,7.88308,1.386294,3.690214,1 +13,2,0,1,1,228141,0,8630.498,56.11773,1,14,1,69.61356,19.1477,0,0,0,88.76125,0,0,0,4,0,1,70.2,27.6,0,71.6,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,71.6,9.063173,0,4.48595,1 +13,2,0,1,2,228141,0,8630.498,57.11773,1,14,1,12.78958,3.016409,0,0,0,15.80598,0,0,0,1,0,1,70.2,27.6,0,71.6,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,71.6,9.063173,0,2.760389,1 +13,2,0,1,3,228141,0,8630.498,58.11773,1,14,1,18.69159,3.87628,47.08945,0,0,69.65732,0,0,0,2,0,1,70.2,27.6,0,71.6,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,71.6,9.063173,0,4.243588,1 +13,2,0,1,4,228141,0,8630.498,59.11773,1,14,1,131.8625,1.297275,0,0,0,133.1598,0,0,0,3,0,1,70.2,27.6,0,71.6,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,71.6,9.063173,0,4.89155,1 +13,2,0,1,5,228141,0,8630.498,60.11773,1,14,1,93.65836,3.56305,43.92595,0,0,141.1474,0,0,0,3,0,1,70.2,27.6,0,71.6,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,71.6,9.063173,0,4.949804,1 +11,2,0,0,1,228152,0,6836.95,32.53388,1,12,1,84.75253,1.942523,0,0,0,86.69505,0,0,0,3,0,4,83.5,0,0,84.1,0,0,0,0,1.386294,0,0,0,0,1,0,0,84.1,8.830243,1.386294,4.462397,1 +11,2,0,0,2,228152,0,6836.95,33.53388,1,12,1,71.01308,0,0,0,0,71.01308,0,0,0,2,0,4,83.5,0,0,84.1,0,0,0,0,1.386294,0,0,0,0,1,0,0,84.1,8.830243,1.386294,4.262864,1 +11,2,0,0,3,228152,0,6836.95,34.53388,1,12,1,56.60378,3.818509,34.37556,0,0,94.79784,0,0,0,2,0,4,83.5,0,0,84.1,0,0,0,0,1.386294,0,0,0,0,1,0,0,84.1,8.830243,1.386294,4.551747,1 +11,2,0,0,1,228153,0,6836.95,11.40041,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,96.7,11.84267,0,96.3,0,0,1,1,1.386294,0,0,0,0,0,0,0,96.3,8.830243,1.386294,,0 +11,2,0,0,2,228153,0,6836.95,12.40041,1,12,1,15.75376,1.454193,0,0,0,17.20795,0,0,0,2,0,4,96.7,11.84267,0,96.3,0,0,1,1,1.386294,0,0,0,0,0,0,0,96.3,8.830243,1.386294,2.845371,1 +11,2,0,0,3,228153,0,6836.95,13.40041,1,12,1,22.86613,0,0,0,0,22.86613,0,0,0,1,0,4,96.7,11.84267,0,96.3,0,0,1,1,1.386294,0,0,0,0,0,0,0,96.3,8.830243,1.386294,3.129657,1 +11,2,0,0,1,228154,0,6836.95,8.80219,0,12,1,0,3.352847,0,0,0,3.352847,0,0,0,0,0,4,95,11.84267,0,92.6,0,0,1,0,1.386294,0,0,0,0,1,0,0,92.6,8.830243,1.386294,1.20981,1 +11,2,0,0,2,228154,0,6836.95,9.80219,0,12,1,17.54726,1.575376,0,0,0,19.12264,0,0,0,2,0,4,95,11.84267,0,92.6,0,0,1,0,1.386294,0,0,0,0,1,0,0,92.6,8.830243,1.386294,2.950873,1 +11,2,0,0,3,228154,0,6836.95,10.80219,0,12,1,88.94878,7.277628,0,0,194.991,291.2174,1,0,0,5,0,4,95,11.84267,0,92.6,0,0,1,0,1.386294,0,0,0,0,1,0,0,92.6,8.830243,1.386294,5.67407,1 +11,2,0,0,1,228155,0,6836.95,32.19439,0,10,1,171.4742,21.04843,0,0,0,192.5226,0,0,0,7,0,4,76.6,17.2,0,64.8,0,0,0,0,1.386294,0,0,0,0,1,0,0,64.8,8.830243,1.386294,5.260214,1 +11,2,0,0,2,228155,0,6836.95,33.19439,0,10,1,41.05671,14.83762,0,0,0,55.89433,0,0,0,4,0,4,76.6,17.2,0,64.8,0,0,0,0,1.386294,0,0,0,0,1,0,0,64.8,8.830243,1.386294,4.023463,1 +11,2,0,0,3,228155,0,6836.95,34.19439,0,10,1,147.3495,5.525607,0,0,541.9138,694.7889,1,0,0,3,0,4,76.6,17.2,0,64.8,0,0,0,0,1.386294,0,0,0,0,1,0,0,64.8,8.830243,1.386294,6.543608,1 +5,2,25,0,1,228159,0,8902.64,43.04723,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,92,6.9,0,61.4,467.05,467.05,0,0,0,6.146436,0,3.258096,7.532731,1,0,0,61.4,9.094215,0,,0 +5,2,25,0,2,228159,0,8902.64,44.04723,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,92,6.9,0,61.4,467.05,467.05,0,0,0,6.146436,0,3.258096,7.532731,1,0,0,61.4,9.094215,0,,0 +5,2,25,0,3,228159,0,8902.64,45.04723,0,12,1,77.88162,0,0,0,0,77.88162,0,0,0,1,0,1,92,6.9,0,61.4,467.05,467.05,0,0,0,6.146436,0,3.258096,7.532731,1,0,0,61.4,9.094215,0,4.35519,1 +15,2,95,1,1,228160,0,11349.56,11.69336,0,16,1,6.918574,5.614689,0,0,0,12.53326,0,0,0,1,0,5,66.7,11.84267,0,88.9,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,88.9,9.337023,1.609438,2.528386,1 +15,2,95,1,2,228160,0,11349.56,12.69336,0,16,1,0,0,0,0,0,0,0,0,0,0,0,5,66.7,11.84267,0,88.9,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,88.9,9.337023,1.609438,,0 +15,2,95,1,3,228160,0,11349.56,13.69336,0,16,1,56.60378,0,0,0,0,56.60378,0,0,0,4,0,5,66.7,11.84267,0,88.9,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,88.9,9.337023,1.609438,4.036076,1 +15,2,95,1,4,228160,0,11349.56,14.69336,0,16,1,23.38941,1.641362,0,0,0,25.03078,0,0,0,2,0,5,66.7,11.84267,0,88.9,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,88.9,9.337023,1.609438,3.220106,1 +15,2,95,1,5,228160,0,11349.56,15.69336,0,16,1,10.31042,4.43459,0,0,0,14.74501,0,0,0,1,0,5,66.7,11.84267,0,88.9,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,88.9,9.337023,1.609438,2.690905,1 +15,2,95,1,1,228161,0,11349.56,44.90623,1,16,1,0,2.66099,0,0,0,2.66099,0,0,0,0,0,5,67.6,0,0,92,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,1,0,0,92,9.337023,1.609438,.9786983,1 +15,2,95,1,2,228161,0,11349.56,45.90623,1,16,1,19.87397,0,0,0,0,19.87397,0,0,0,1,0,5,67.6,0,0,92,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,1,0,0,92,9.337023,1.609438,2.989411,1 +15,2,95,1,3,228161,0,11349.56,46.90623,1,16,1,0,0,0,0,0,0,0,0,0,0,0,5,67.6,0,0,92,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,1,0,0,92,9.337023,1.609438,,0 +15,2,95,1,4,228161,0,11349.56,47.90623,1,16,1,16.41362,0,0,0,0,16.41362,0,0,0,1,0,5,67.6,0,0,92,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,1,0,0,92,9.337023,1.609438,2.798112,1 +15,2,95,1,5,228161,0,11349.56,48.90623,1,16,1,12.93422,0,0,0,0,12.93422,0,0,0,1,0,5,67.6,0,0,92,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,1,0,0,92,9.337023,1.609438,2.559876,1 +15,2,95,1,1,228162,0,11349.56,50.54073,0,16,1,15.96594,60.27142,0,0,0,76.23736,0,0,0,1,0,5,85.6,10.3,0,67,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,1,0,0,67,9.337023,1.609438,4.333852,1 +15,2,95,1,2,228162,0,11349.56,51.54073,0,16,1,150.509,79.71401,0,0,0,230.223,0,0,0,9,0,5,85.6,10.3,0,67,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,1,0,0,67,9.337023,1.609438,5.439048,1 +15,2,95,1,3,228162,0,11349.56,52.54073,0,16,1,39.75741,52.62803,0,0,0,92.38544,0,0,0,0,0,5,85.6,10.3,0,67,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,1,0,0,67,9.337023,1.609438,4.52597,1 +15,2,95,1,4,228162,0,11349.56,53.54073,0,16,1,16.41362,48.62536,0,0,0,65.03898,0,0,0,1,0,5,85.6,10.3,0,67,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,1,0,0,67,9.337023,1.609438,4.174987,1 +15,2,95,1,5,228162,0,11349.56,54.54073,0,16,1,78.99113,77.53141,0,0,0,156.5225,0,0,0,2,0,5,85.6,10.3,0,67,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,1,0,0,67,9.337023,1.609438,5.0532,1 +15,2,95,1,1,228163,0,11349.56,9.401779,1,16,1,23.94891,3.326237,0,0,0,27.27515,0,0,0,2,0,5,63.3,11.84267,0,70.4,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,70.4,9.337023,1.609438,3.305976,1 +15,2,95,1,2,228163,0,11349.56,10.40178,1,16,1,36.35482,9.597673,0,0,0,45.9525,0,0,0,3,0,5,63.3,11.84267,0,70.4,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,70.4,9.337023,1.609438,3.827608,1 +15,2,95,1,3,228163,0,11349.56,11.40178,1,16,1,13.02785,0,0,0,0,13.02785,0,0,0,2,0,5,63.3,11.84267,0,70.4,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,70.4,9.337023,1.609438,2.56709,1 +15,2,95,1,4,228163,0,11349.56,12.40178,1,16,1,25.85146,2.62618,0,0,0,28.47764,0,0,0,3,0,5,63.3,11.84267,0,70.4,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,70.4,9.337023,1.609438,3.349119,1 +15,2,95,1,5,228163,0,11349.56,13.40178,1,16,1,30.67258,1.773836,0,0,0,32.44641,0,0,0,2,0,5,63.3,11.84267,0,70.4,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,70.4,9.337023,1.609438,3.47959,1 +15,2,95,1,1,228164,0,11349.56,14.51882,1,16,1,41.51144,7.557211,0,0,0,49.06865,0,0,0,4,0,5,82.4,10.3,0,60.2,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,60.2,9.337023,1.609438,3.89322,1 +15,2,95,1,2,228164,0,11349.56,15.51882,1,16,1,0,0,0,0,0,0,0,0,0,0,0,5,82.4,10.3,0,60.2,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,60.2,9.337023,1.609438,,0 +15,2,95,1,3,228164,0,11349.56,16.51882,1,16,1,10.33243,2.35849,0,0,0,12.69093,0,0,0,2,0,5,82.4,10.3,0,60.2,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,60.2,9.337023,1.609438,2.540887,1 +15,2,95,1,4,228164,0,11349.56,17.51882,1,16,1,30.77554,4.329093,0,0,0,35.10464,0,0,0,2,0,5,82.4,10.3,0,60.2,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,60.2,9.337023,1.609438,3.558333,1 +15,2,95,1,5,228164,0,11349.56,18.51882,1,16,1,0,0,0,0,0,0,0,0,0,0,0,5,82.4,10.3,0,60.2,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,60.2,9.337023,1.609438,,0 +17,2,25,1,1,228173,0,5948.974,50.29979,1,12,1,450.2118,136.469,45.83907,0,1368.978,2001.498,1,0,0,34,8,2,79.8,31,1,47.7,535,535,0,0,.6931472,6.282267,0,3.258096,7.668561,0,1,0,47.7,8.691142,.6931472,7.601651,1 +17,2,25,1,1,228174,0,5948.974,53.80151,0,13,1,100.0529,12.08576,17.73425,0,0,129.873,0,0,0,13,0,2,85.6,10.3,0,70.5,535,535,0,0,.6931472,6.282267,0,3.258096,7.668561,0,1,0,70.5,8.691142,.6931472,4.866557,1 +13,2,0,0,1,228198,0,8665.641,29.45927,1,15,1,39.15508,6.414219,0,0,0,45.56929,0,0,0,2,0,4,37.8,24.1,0,68.2,450,769.56,0,0,1.386294,6.645819,1,4.564348,6.160541,1,0,0,68.2,9.067237,1.386294,3.819234,1 +13,2,0,0,2,228198,0,8665.641,30.45927,1,15,1,60.13258,5.743371,35.75284,0,0,101.6288,0,0,0,4,0,4,37.8,24.1,0,68.2,450,769.56,0,0,1.386294,6.645819,1,4.564348,6.160541,1,0,0,68.2,9.067237,1.386294,4.621327,1 +13,2,0,0,3,228198,0,8665.641,31.45927,1,15,1,22.5401,5.158214,0,0,0,27.69831,0,0,0,1,0,4,37.8,24.1,0,68.2,450,769.56,0,0,1.386294,6.645819,1,4.564348,6.160541,1,0,0,68.2,9.067237,1.386294,3.321371,1 +13,2,0,0,1,228199,0,8665.641,5.284052,0,15,1,87.58372,24.76043,0,0,0,112.3442,0,0,0,9,0,4,81.7,11.84267,0,77.8,450,769.56,1,0,1.386294,6.645819,1,4.564348,6.160541,0,0,0,77.8,9.067237,1.386294,4.721567,1 +13,2,0,0,2,228199,0,8665.641,6.284052,0,15,1,244.8674,70.68655,0,0,85.79072,401.3447,1,0,0,35,0,4,81.7,11.84267,0,77.8,450,769.56,1,0,1.386294,6.645819,1,4.564348,6.160541,0,0,0,77.8,9.067237,1.386294,5.994821,1 +13,2,0,0,3,228199,0,8665.641,7.284052,0,15,1,482.1847,196.1205,0,0,0,678.3052,0,0,0,30,0,4,81.7,11.84267,0,77.8,450,769.56,1,0,1.386294,6.645819,1,4.564348,6.160541,0,0,0,77.8,9.067237,1.386294,6.519598,1 +13,2,0,0,1,228200,0,8665.641,2.850103,1,15,1,44.82226,8.691396,0,0,0,53.51365,0,0,0,5,0,4,81.35272,11.84267,0,88.9,450,769.56,1,1,1.386294,6.645819,1,4.564348,6.160541,0,0,0,88.9,9.067237,1.386294,3.979937,1 +13,2,0,0,2,228200,0,8665.641,3.850103,1,15,1,17.51894,8.011364,0,0,0,25.5303,0,0,0,2,0,4,81.35272,11.84267,0,88.9,450,769.56,1,1,1.386294,6.645819,1,4.564348,6.160541,0,0,0,88.9,9.067237,1.386294,3.239866,1 +13,2,0,0,3,228200,0,8665.641,4.850103,1,15,1,26.15952,0,0,0,0,26.15952,0,0,0,1,0,4,81.35272,11.84267,0,88.9,450,769.56,1,1,1.386294,6.645819,1,4.564348,6.160541,0,0,0,88.9,9.067237,1.386294,3.264213,1 +13,2,0,0,1,228201,0,8665.641,29.45106,0,15,1,0,0,0,0,0,0,0,0,0,0,0,4,70.2,17.2,0,76.1,450,769.56,0,0,1.386294,6.645819,1,4.564348,6.160541,0,0,0,76.1,9.067237,1.386294,,0 +13,2,0,0,2,228201,0,8665.641,30.45106,0,15,1,25.89962,0,0,0,0,25.89962,0,0,0,1,0,4,70.2,17.2,0,76.1,450,769.56,0,0,1.386294,6.645819,1,4.564348,6.160541,0,0,0,76.1,9.067237,1.386294,3.254228,1 +13,2,0,0,3,228201,0,8665.641,31.45106,0,15,1,0,0,0,0,0,0,0,0,0,0,0,4,70.2,17.2,0,76.1,450,769.56,0,0,1.386294,6.645819,1,4.564348,6.160541,0,0,0,76.1,9.067237,1.386294,,0 +11,2,0,1,1,228222,0,17144.49,39.41957,0,12,1,99.5034,9.121799,0,0,548.1965,656.8217,2,0,0,4,0,5,83,3.4,0,77.3,0,0,0,0,1.609438,0,0,0,0,0,0,0,77.3,9.74949,1.609438,6.487412,1 +11,2,0,1,2,228222,0,17144.49,40.41957,0,12,1,45.41086,5.550216,0,0,0,50.96107,0,0,0,3,0,5,83,3.4,0,77.3,0,0,0,0,1.609438,0,0,0,0,0,0,0,77.3,9.74949,1.609438,3.931062,1 +11,2,0,1,3,228222,0,17144.49,41.41957,0,12,1,43.39207,10.57269,0,0,0,53.96476,0,0,0,3,0,5,83,3.4,0,77.3,0,0,0,0,1.609438,0,0,0,0,0,0,0,77.3,9.74949,1.609438,3.988331,1 +11,2,0,1,1,228223,0,17144.49,18.82546,0,11,1,49.13748,0,0,0,0,49.13748,0,0,0,3,0,5,77.1,6.9,0,78.4,0,0,0,0,1.609438,0,0,0,0,0,0,0,78.4,9.74949,1.609438,3.894622,1 +11,2,0,1,2,228223,0,17144.49,19.82546,0,11,1,24.98799,12.90245,29.35608,0,0,67.24651,0,0,0,4,0,5,77.1,6.9,0,78.4,0,0,0,0,1.609438,0,0,0,0,0,0,0,78.4,9.74949,1.609438,4.208365,1 +11,2,0,1,3,228223,0,17144.49,20.82546,0,11,1,501.7621,2.268723,7.797357,0,0,511.8282,0,0,0,1,30,5,77.1,6.9,0,78.4,0,0,0,0,1.609438,0,0,0,0,0,0,0,78.4,9.74949,1.609438,6.237989,1 +11,2,0,1,1,228224,0,17144.49,15.34292,0,11,1,15.68217,0,0,0,0,15.68217,0,0,0,1,0,5,68.6,0,1,60.2,0,0,1,0,1.609438,0,0,0,0,0,0,0,60.2,9.74949,1.609438,2.752525,1 +11,2,0,1,2,228224,0,17144.49,16.34292,0,11,1,16.81884,3.027391,0,0,0,19.84623,0,0,0,2,0,5,68.6,0,1,60.2,0,0,1,0,1.609438,0,0,0,0,0,0,0,60.2,9.74949,1.609438,2.988014,1 +11,2,0,1,3,228224,0,17144.49,17.34292,0,11,1,77.97357,9.581498,40.37004,0,0,127.9251,0,0,0,0,2,5,68.6,0,1,60.2,0,0,1,0,1.609438,0,0,0,0,0,0,0,60.2,9.74949,1.609438,4.851445,1 +11,2,0,1,1,228225,0,17144.49,37.38261,1,11,1,117.3549,5.541035,0,0,0,122.896,0,0,0,7,0,5,61.2,34.5,1,60.2,0,0,0,0,1.609438,0,0,0,0,1,0,0,60.2,9.74949,1.609438,4.811338,1 +11,2,0,1,2,228225,0,17144.49,38.38261,1,11,1,33.3974,6.823642,0,0,0,40.22105,0,0,0,2,0,5,61.2,34.5,1,60.2,0,0,0,0,1.609438,0,0,0,0,1,0,0,60.2,9.74949,1.609438,3.69439,1 +11,2,0,1,3,228225,0,17144.49,39.38261,1,11,1,40.30837,0,35.24229,0,0,75.55066,0,0,0,1,1,5,61.2,34.5,1,60.2,0,0,0,0,1.609438,0,0,0,0,1,0,0,60.2,9.74949,1.609438,4.324803,1 +13,2,0,1,1,228226,0,1759.531,4.985626,1,10,1,23.82213,6.537851,0,0,0,30.35998,0,0,0,2,0,2,81.35272,11.84267,0,77.8,300,300,1,1,.6931472,5.703783,1,4.564348,5.755076,1,0,0,77.8,7.473371,.6931472,3.413125,1 +13,2,0,1,2,228226,0,1759.531,5.985626,1,10,1,46.33205,0,0,0,0,46.33205,0,0,0,2,0,2,81.35272,11.84267,0,77.8,300,300,1,1,.6931472,5.703783,1,4.564348,5.755076,1,0,0,77.8,7.473371,.6931472,3.835834,1 +13,2,0,1,3,228226,0,1759.531,6.985626,1,10,1,50.40054,15.33155,0,0,0,65.73209,0,0,0,4,0,4,81.35272,11.84267,0,77.8,300,300,1,1,1.386294,5.703783,1,4.564348,5.755076,1,0,0,77.8,7.473371,1.386294,4.185587,1 +13,2,0,1,1,228227,0,1759.531,23.72348,1,10,1,48.96771,3.335098,0,0,0,52.30281,0,0,0,3,0,2,69.1,24.1,0,69.3,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,69.3,7.473371,.6931472,3.95705,1 +13,2,0,1,2,228227,0,1759.531,24.72348,1,10,1,64.55116,19.85521,0,0,1716.192,1800.599,1,0,0,1,0,2,69.1,24.1,0,69.3,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,69.3,7.473371,.6931472,7.495874,1 +13,2,0,1,3,228227,0,1759.531,25.72348,1,10,1,20.0267,26.4575,31.49978,0,0,77.98398,0,0,0,1,1,4,69.1,24.1,0,69.3,300,300,0,0,1.386294,5.703783,1,4.564348,5.755076,1,0,0,69.3,7.473371,1.386294,4.356503,1 +13,2,0,0,1,228230,0,15426.63,47.60575,1,8,1,23.29275,28.25834,0,0,1128.613,1180.164,1,0,0,5,0,2,88.8,13.8,0,62.5,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,62.5,9.643915,.6931472,7.073409,1 +13,2,0,0,2,228230,0,15426.63,48.60575,1,8,1,323.1178,5.859073,0,0,0,328.9768,0,0,0,11,13,2,88.8,13.8,0,62.5,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,62.5,9.643915,.6931472,5.795987,1 +13,2,0,0,3,228230,0,15426.63,49.60575,1,8,1,63.52915,0,53.95193,0,0,117.4811,0,0,0,1,1,2,88.8,13.8,0,62.5,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,62.5,9.643915,.6931472,4.766277,1 +13,2,0,0,1,228231,0,15426.63,45.24572,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,78.7,10.3,0,56.8,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,1,0,56.8,9.643915,.6931472,,0 +13,2,0,0,2,228231,0,15426.63,46.24572,0,12,1,24.85521,0,0,0,1238.151,1263.007,1,0,0,2,0,2,78.7,10.3,0,56.8,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,1,0,56.8,9.643915,.6931472,7.141251,1 +13,2,0,0,3,228231,0,15426.63,47.24572,0,12,1,64.97552,0,9.719626,0,0,74.69515,0,0,0,6,0,2,78.7,10.3,0,56.8,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,1,0,56.8,9.643915,.6931472,4.313415,1 +11,2,0,1,1,228232,0,4994.721,53.9165,1,14,1,261.2493,11.49285,15.62202,0,0,288.3642,0,0,0,4,20,1,79.8,10.3,0,79.5,0,64.2,0,0,0,4.162003,0,0,0,0,0,0,79.5,8.516337,0,5.664224,1 +11,2,0,1,2,228232,0,4994.721,54.9165,1,14,1,26.06178,10.05791,0,0,0,36.11969,0,0,0,1,0,1,79.8,10.3,0,79.5,0,64.2,0,0,0,4.162003,0,0,0,0,0,0,79.5,8.516337,0,3.586838,1 +11,2,0,1,3,228232,0,4994.721,55.9165,1,14,1,74.32132,10.57855,0,0,0,84.89986,0,0,0,5,0,1,79.8,10.3,0,79.5,0,64.2,0,0,0,4.162003,0,0,0,0,0,0,79.5,8.516337,0,4.441473,1 +11,2,0,1,4,228232,0,4994.721,56.9165,1,14,1,357.0964,1.285075,29.5974,0,1873.282,2261.261,2,0,0,8,0,1,79.8,10.3,0,79.5,0,64.2,0,0,0,4.162003,0,0,0,0,0,0,79.5,8.516337,0,7.723678,1 +11,2,0,1,5,228232,0,4994.721,57.9165,1,14,1,1232.863,14.22287,0,0,1636.602,2883.688,5,0,0,6,0,1,79.8,10.3,0,79.5,0,64.2,0,0,0,4.162003,0,0,0,0,0,0,79.5,8.516337,0,7.966825,1 +13,2,0,0,1,228235,0,3820.792,24.6872,0,16,1,125.5987,27.86056,38.70676,0,0,192.166,0,0,0,3,0,1,87.2,13.8,1,29.5,150,0,0,0,0,0,1,4.564348,5.061929,0,1,0,29.5,8.248475,0,5.25836,1 +13,2,0,0,2,228235,0,3820.792,25.6872,0,16,1,51.38148,19.81096,23.54823,0,0,94.74067,0,0,0,1,0,1,87.2,13.8,1,29.5,150,0,0,0,0,0,1,4.564348,5.061929,0,1,0,29.5,8.248475,0,4.551143,1 +13,2,0,0,3,228235,0,3820.792,26.6872,0,16,1,129.1554,37.12938,31.81042,0,0,198.0952,0,0,0,3,0,1,87.2,13.8,1,29.5,150,0,0,0,0,0,1,4.564348,5.061929,0,1,0,29.5,8.248475,0,5.288748,1 +13,2,0,0,4,228235,0,3820.792,27.6872,0,16,1,89.762,20.97251,50.85761,0,0,161.5921,0,0,0,2,0,1,87.2,13.8,1,29.5,150,0,0,0,0,0,1,4.564348,5.061929,0,1,0,29.5,8.248475,0,5.085075,1 +13,2,0,0,5,228235,0,3820.792,28.6872,0,16,1,85.82779,24.54545,29.97413,0,0,140.3474,0,0,0,3,0,1,87.2,13.8,1,29.5,150,0,0,0,0,0,1,4.564348,5.061929,0,1,0,29.5,8.248475,0,4.944121,1 +17,2,25,1,1,228252,0,5495.601,30.28063,0,16,1,0,0,0,0,0,0,0,0,0,0,0,2,58,6.9,0,68.2,955,493,0,0,.6931472,6.200509,0,3.258096,8.248006,0,0,0,68.2,8.611885,.6931472,,0 +17,2,25,1,2,228252,0,5495.601,31.28063,0,16,1,0,0,0,0,0,0,0,0,0,0,0,2,58,6.9,0,68.2,955,493,0,0,.6931472,6.200509,0,3.258096,8.248006,0,0,0,68.2,8.611885,.6931472,,0 +17,2,25,1,3,228252,0,5495.601,32.28063,0,16,1,0,0,0,0,0,0,0,0,0,0,0,2,58,6.9,0,68.2,955,493,0,0,.6931472,6.200509,0,3.258096,8.248006,0,0,0,68.2,8.611885,.6931472,,0 +17,2,25,1,1,228253,0,5495.601,29.45654,1,17,1,38.6827,11.33298,39.65499,0,0,89.67068,0,0,0,3,0,2,81.9,10.3,0,95.5,955,493,0,0,.6931472,6.200509,0,3.258096,8.248006,0,0,0,95.5,8.611885,.6931472,4.496144,1 +17,2,25,1,2,228253,0,5495.601,30.45654,1,17,1,33.63767,29.36569,0,0,0,63.00336,0,0,0,2,0,2,81.9,10.3,0,95.5,955,493,0,0,.6931472,6.200509,0,3.258096,8.248006,0,0,0,95.5,8.611885,.6931472,4.143188,1 +17,2,25,1,3,228253,0,5495.601,31.45654,1,17,1,272.5551,14.59031,39.55066,0,0,326.696,0,0,0,5,22,2,81.9,10.3,0,95.5,955,493,0,0,.6931472,6.200509,0,3.258096,8.248006,0,0,0,95.5,8.611885,.6931472,5.78903,1 +5,2,25,1,1,228254,0,12940.76,15.92882,0,12,1,22.88451,9.952102,0,0,0,32.83662,0,0,0,3,0,4,64.4,6.9,0,67,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,67,9.468215,1.386294,3.491544,1 +5,2,25,1,2,228254,0,12940.76,16.92882,0,12,1,6.786233,2.81144,0,0,0,9.597673,0,0,0,1,0,4,64.4,6.9,0,67,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,67,9.468215,1.386294,2.261521,1 +5,2,25,1,3,228254,0,12940.76,17.92882,0,12,1,35.48967,8.760108,0,0,743.239,787.4888,1,0,0,3,0,4,64.4,6.9,0,67,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,67,9.468215,1.386294,6.668849,1 +5,2,25,1,1,228255,0,12940.76,37.13895,1,12,1,31.93188,48.74934,34.68334,0,0,115.3646,0,0,0,2,0,4,79.3,13.8,0,80.7,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,80.7,9.468215,1.386294,4.748097,1 +5,2,25,1,2,228255,0,12940.76,38.13895,1,12,1,63.01503,15.14784,0,0,0,78.16287,0,0,0,2,0,4,79.3,13.8,0,80.7,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,80.7,9.468215,1.386294,4.358795,1 +5,2,25,1,3,228255,0,12940.76,39.13895,1,12,1,41.55436,11.47799,0,0,0,53.03234,0,0,0,3,0,4,79.3,13.8,0,80.7,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,80.7,9.468215,1.386294,3.970902,1 +5,2,25,1,1,228256,0,12940.76,38.69952,0,12,1,191.4582,0,0,0,0,191.4582,0,0,0,3,0,4,80.3,13.8,0,56.8,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,56.8,9.468215,1.386294,5.25467,1 +5,2,25,1,2,228256,0,12940.76,39.69952,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,80.3,13.8,0,56.8,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,56.8,9.468215,1.386294,,0 +5,2,25,1,3,228256,0,12940.76,40.69952,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,80.3,13.8,0,56.8,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,56.8,9.468215,1.386294,,0 +5,2,25,1,1,228257,0,12940.76,17.58795,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,79.3,6.9,0,76.1,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,76.1,9.468215,1.386294,,0 +5,2,25,1,2,228257,0,12940.76,18.58795,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,79.3,6.9,0,76.1,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,76.1,9.468215,1.386294,,0 +5,2,25,1,3,228257,0,12940.76,19.58795,0,12,1,17.96945,10.44025,0,0,0,28.4097,0,0,0,1,0,4,79.3,6.9,0,76.1,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,76.1,9.468215,1.386294,3.346731,1 +16,2,95,1,1,228278,0,7336.07,43.73443,1,12,1,98.5442,12.94336,0,0,786.1832,897.6707,2,0,0,5,0,4,26.6,13.8,1,39.8,651,0,0,0,1.386294,0,0,4.564348,6.529803,0,0,0,39.8,8.900695,1.386294,6.799803,1 +16,2,95,1,2,228278,0,7336.07,44.73443,1,12,1,181.4672,5.936294,18.38803,0,0,205.7915,0,0,0,7,0,4,26.6,13.8,1,39.8,651,0,0,0,1.386294,0,0,4.564348,6.529803,0,0,0,39.8,8.900695,1.386294,5.326864,1 +16,2,95,1,3,228278,0,7336.07,45.73443,1,12,1,145.9234,.2447708,0,0,0,146.1682,0,0,0,3,0,4,26.6,13.8,1,39.8,651,0,0,0,1.386294,0,0,4.564348,6.529803,0,0,0,39.8,8.900695,1.386294,4.984758,1 +16,2,95,1,1,228279,0,7336.07,42.86927,0,13,1,116.7284,41.4505,47.30545,0,0,205.4844,0,0,0,4,1,4,56.9,17.2,0,34.1,651,0,0,0,1.386294,0,0,4.564348,6.529803,0,0,1,34.1,8.900695,1.386294,5.32537,1 +16,2,95,1,2,228279,0,7336.07,43.86927,0,13,1,33.34942,31.62162,17.6834,0,0,82.65444,0,0,0,1,0,4,56.9,17.2,0,34.1,651,0,0,0,1.386294,0,0,4.564348,6.529803,0,0,1,34.1,8.900695,1.386294,4.414669,1 +16,2,95,1,3,228279,0,7336.07,44.86927,0,13,1,0,19.77303,5.126836,0,0,24.89987,0,0,0,0,0,4,56.9,17.2,0,34.1,651,0,0,0,1.386294,0,0,4.564348,6.529803,0,0,1,34.1,8.900695,1.386294,3.214862,1 +16,2,95,1,1,228280,0,7336.07,9.886379,0,12,1,82.00106,0,0,489.6771,0,82.00106,0,0,24,6,0,4,41.7,11.84267,1,51.9,651,0,1,0,1.386294,0,0,4.564348,6.529803,0,0,0,51.9,8.900695,1.386294,4.406732,1 +16,2,95,1,2,228280,0,7336.07,10.88638,0,12,1,17.13321,0,0,67.56757,0,17.13321,0,0,4,2,0,4,41.7,11.84267,1,51.9,651,0,1,0,1.386294,0,0,4.564348,6.529803,0,0,0,51.9,8.900695,1.386294,2.841018,1 +16,2,95,1,3,228280,0,7336.07,11.88638,0,12,1,54.51714,0,0,0,0,54.51714,0,0,0,3,0,4,41.7,11.84267,1,51.9,651,0,1,0,1.386294,0,0,4.564348,6.529803,0,0,0,51.9,8.900695,1.386294,3.998515,1 +16,2,95,1,1,228281,0,7336.07,6.045175,0,12,1,17.46956,0,0,0,0,17.46956,0,0,0,2,0,4,80,11.84267,0,70.4,651,0,1,0,1.386294,0,0,4.564348,6.529803,0,0,0,70.4,8.900695,1.386294,2.86046,1 +16,2,95,1,2,228281,0,7336.07,7.045175,0,12,1,8.204633,0,0,0,0,8.204633,0,0,0,1,0,4,80,11.84267,0,70.4,651,0,1,0,1.386294,0,0,4.564348,6.529803,0,0,0,70.4,8.900695,1.386294,2.104699,1 +16,2,95,1,3,228281,0,7336.07,8.045175,0,12,1,272.4521,0,5.117935,0,0,277.5701,0,0,0,6,0,4,80,11.84267,0,70.4,651,0,1,0,1.386294,0,0,4.564348,6.529803,0,0,0,70.4,8.900695,1.386294,5.626073,1 +11,2,0,1,1,228284,0,15661.58,28.14784,1,14,1,4.257584,26.53539,0,0,767.472,798.265,1,0,0,1,0,2,76.1,20.7,0,61.9,0,243.84,0,0,.6931472,5.496512,0,0,0,0,0,0,61.9,9.65903,.6931472,6.682441,1 +11,2,0,1,2,228284,0,15661.58,29.14784,1,14,1,54.53223,24.3238,0,0,0,78.85603,0,0,0,5,0,3,76.1,20.7,0,61.9,0,243.84,0,0,1.098612,5.496512,0,0,0,0,0,0,61.9,9.65903,1.098612,4.367624,1 +11,2,0,1,3,228284,0,15661.58,30.14784,1,14,1,9.119497,8.468104,0,0,0,17.5876,0,0,0,1,0,3,76.1,20.7,0,61.9,0,243.84,0,0,1.098612,5.496512,0,0,0,0,0,0,61.9,9.65903,1.098612,2.867194,1 +11,2,0,1,1,228285,0,15661.58,35.00616,0,14,1,22.35232,0,33.84247,0,0,56.19479,0,0,0,1,1,2,83,6.9,0,76.1,0,243.84,0,0,.6931472,5.496512,0,0,0,0,0,0,76.1,9.65903,.6931472,4.028824,1 +11,2,0,1,2,228285,0,15661.58,36.00616,0,14,1,18.29859,0,0,0,0,18.29859,0,0,0,4,0,3,83,6.9,0,76.1,0,243.84,0,0,1.098612,5.496512,0,0,0,0,0,0,76.1,9.65903,1.098612,2.906824,1 +11,2,0,1,3,228285,0,15661.58,37.00616,0,14,1,106.3567,36.44205,33.14465,0,0,175.9434,0,0,0,6,0,3,83,6.9,0,76.1,0,243.84,0,0,1.098612,5.496512,0,0,0,0,0,0,76.1,9.65903,1.098612,5.170162,1 +11,2,0,0,1,228294,0,6634.018,29.54415,0,11,1,359.4997,136.0937,30.02129,95.79564,0,525.6147,0,0,4,38,5,1,66,3.4,0,83,0,0,0,0,0,0,0,0,0,0,0,0,83,8.800117,0,6.264568,1 +11,2,0,0,2,228294,0,6634.018,30.54415,0,11,1,305.8652,136.2336,0,0,0,442.0989,0,0,0,26,19,1,66,3.4,0,83,0,0,0,0,0,0,0,0,0,0,0,0,83,8.800117,0,6.091534,1 +11,2,0,0,3,228294,0,6634.018,31.54415,0,11,1,443.3962,145.3279,38.89488,0,0,627.619,0,0,0,32,20,1,66,3.4,0,83,0,0,0,0,0,0,0,0,0,0,0,0,83,8.800117,0,6.441933,1 +15,2,95,0,1,228298,0,2996.481,51.38946,1,10,1,41.77754,36.03513,0,0,0,77.81267,0,0,0,2,2,1,75,24.1,0,79.5,815,815,0,0,0,6.703188,0,4.564348,6.754481,1,0,0,79.5,8.005527,0,4.354304,1 +15,2,95,0,2,228298,0,2996.481,52.38946,1,10,1,93.40766,51.42995,0,0,0,144.8376,0,0,0,8,1,1,75,24.1,0,79.5,815,815,0,0,0,6.703188,0,4.564348,6.754481,1,0,0,79.5,8.005527,0,4.975613,1 +15,2,95,0,3,228298,0,2996.481,53.38946,1,10,1,151.3926,57.79874,67.20126,0,0,276.3926,0,0,0,10,0,1,75,24.1,0,79.5,815,815,0,0,0,6.703188,0,4.564348,6.754481,1,0,0,79.5,8.005527,0,5.621822,1 +11,2,0,0,1,228342,0,8174.78,31.75633,0,13,1,9.579563,0,29.58488,0,0,39.16445,0,0,0,0,1,5,77.7,0,0,93.2,0,0,0,0,1.609438,0,0,0,0,0,0,0,93.2,9.008931,1.609438,3.667769,1 +11,2,0,0,2,228342,0,8174.78,32.75633,0,13,1,11.63354,5.448376,0,0,0,17.08192,0,0,0,2,0,5,77.7,0,0,93.2,0,0,0,0,1.609438,0,0,0,0,0,0,0,93.2,9.008931,1.609438,2.838021,1 +11,2,0,0,3,228342,0,8174.78,33.75633,0,13,1,17.07098,0,0,0,0,17.07098,0,0,0,1,0,5,77.7,0,0,93.2,0,0,0,0,1.609438,0,0,0,0,0,0,0,93.2,9.008931,1.609438,2.83738,1 +11,2,0,0,4,228342,0,8174.78,34.75633,0,13,1,41.85474,0,0,0,0,41.85474,0,0,0,2,3,5,77.7,0,0,93.2,0,0,0,0,1.609438,0,0,0,0,0,0,0,93.2,9.008931,1.609438,3.734205,1 +11,2,0,0,5,228342,0,8174.78,35.75633,0,13,1,72.30229,0,0,0,0,72.30229,0,0,0,3,2,5,77.7,0,0,93.2,0,0,0,0,1.609438,0,0,0,0,0,0,0,93.2,9.008931,1.609438,4.280856,1 +11,2,0,0,1,228343,0,8174.78,1.976728,0,10,1,21.28792,6.061735,0,0,0,27.34965,0,0,0,4,0,5,81.35272,11.84267,0,70.4,0,0,1,0,1.609438,0,0,0,0,1,0,0,70.4,9.008931,1.609438,3.308704,1 +11,2,0,0,2,228343,0,8174.78,2.976728,0,10,1,26.17547,0,0,0,0,26.17547,0,0,0,2,0,5,81.35272,11.84267,0,70.4,0,0,1,0,1.609438,0,0,0,0,1,0,0,70.4,9.008931,1.609438,3.264823,1 +11,2,0,0,3,228343,0,8174.78,3.976728,0,10,1,168.1491,1.527403,0,0,0,169.6765,0,0,0,8,0,5,81.35272,11.84267,0,70.4,0,0,1,0,1.609438,0,0,0,0,1,0,0,70.4,9.008931,1.609438,5.133894,1 +11,2,0,0,4,228343,0,8174.78,4.976728,0,10,1,69.34756,5.3016,0,0,550.5334,625.1826,2,0,0,4,0,5,81.35272,11.84267,0,70.4,0,0,1,0,1.609438,0,0,0,0,1,0,0,70.4,9.008931,1.609438,6.438044,1 +11,2,0,0,5,228343,0,8174.78,5.976728,0,10,1,64.96674,6.688839,0,0,0,71.65558,0,0,0,4,0,5,81.35272,11.84267,0,70.4,0,0,1,0,1.609438,0,0,0,0,1,0,0,70.4,9.008931,1.609438,4.271871,1 +11,2,0,0,1,228344,0,8174.78,4.720055,1,10,1,20.54284,0,0,0,0,20.54284,0,0,0,2,0,5,81.35272,11.84267,0,55.6,0,0,1,1,1.609438,0,0,0,0,0,0,0,55.6,9.008931,1.609438,3.022513,1 +11,2,0,0,2,228344,0,8174.78,5.720055,1,10,1,0,0,0,0,0,0,0,0,0,0,0,5,81.35272,11.84267,0,55.6,0,0,1,1,1.609438,0,0,0,0,0,0,0,55.6,9.008931,1.609438,,0 +11,2,0,0,3,228344,0,8174.78,6.720055,1,10,1,14.37556,0,0,0,0,14.37556,0,0,0,1,0,5,81.35272,11.84267,0,55.6,0,0,1,1,1.609438,0,0,0,0,0,0,0,55.6,9.008931,1.609438,2.66553,1 +11,2,0,0,4,228344,0,8174.78,7.720055,1,10,1,81.16537,5.86787,0,0,361.2639,448.2971,1,0,0,6,0,5,81.35272,11.84267,0,55.6,0,0,1,1,1.609438,0,0,0,0,0,0,0,55.6,9.008931,1.609438,6.105456,1 +11,2,0,0,5,228344,0,8174.78,8.720055,1,10,1,38.50702,4.951959,.8130081,0,0,44.27199,0,0,0,2,0,5,81.35272,11.84267,0,55.6,0,0,1,1,1.609438,0,0,0,0,0,0,0,55.6,9.008931,1.609438,3.790352,1 +11,2,0,0,1,228345,0,8174.78,29.80972,1,10,1,27.1421,11.20277,0,0,0,38.34486,0,0,0,5,0,5,89.4,10.3,0,61.4,0,0,0,0,1.609438,0,0,0,0,1,0,0,61.4,9.008931,1.609438,3.646621,1 +11,2,0,0,2,228345,0,8174.78,30.80972,1,10,1,31.79835,21.82259,0,0,0,53.62094,0,0,0,5,0,5,89.4,10.3,0,61.4,0,0,0,0,1.609438,0,0,0,0,1,0,0,61.4,9.008931,1.609438,3.98194,1 +11,2,0,0,3,228345,0,8174.78,31.80972,1,10,1,39.53279,10.82659,23.13567,0,0,73.49506,0,0,0,4,0,5,89.4,10.3,0,61.4,0,0,0,0,1.609438,0,0,0,0,1,0,0,61.4,9.008931,1.609438,4.297218,1 +11,2,0,0,4,228345,0,8174.78,32.80972,1,10,1,22.36356,11.65367,0,0,0,34.01723,0,0,0,2,0,5,89.4,10.3,0,61.4,0,0,0,0,1.609438,0,0,0,0,1,0,0,61.4,9.008931,1.609438,3.526867,1 +11,2,0,0,5,228345,0,8174.78,33.80972,1,10,1,91.09386,16.94383,0,0,0,108.0377,0,0,0,5,0,5,89.4,10.3,0,61.4,0,0,0,0,1.609438,0,0,0,0,1,0,0,61.4,9.008931,1.609438,4.68248,1 +11,2,0,0,1,228346,0,8174.78,6.160164,0,10,1,29.27089,6.998404,0,0,0,36.26929,0,0,0,3,0,5,95,11.84267,0,85.2,0,0,1,0,1.609438,0,0,0,0,0,0,0,85.2,9.008931,1.609438,3.590971,1 +11,2,0,0,2,228346,0,8174.78,7.160164,0,10,1,295.2739,14.7746,0,0,0,310.0485,0,0,0,6,0,5,95,11.84267,0,85.2,0,0,1,0,1.609438,0,0,0,0,0,0,0,85.2,9.008931,1.609438,5.736729,1 +11,2,0,0,3,228346,0,8174.78,8.160164,0,10,1,41.32974,0,0,0,0,41.32974,0,0,0,4,0,5,95,11.84267,0,85.2,0,0,1,0,1.609438,0,0,0,0,0,0,0,85.2,9.008931,1.609438,3.721582,1 +11,2,0,0,4,228346,0,8174.78,9.160164,0,10,1,101.149,5.231843,0,0,304.3907,410.7715,1,0,0,6,0,5,95,11.84267,0,85.2,0,0,1,0,1.609438,0,0,0,0,0,0,0,85.2,9.008931,1.609438,6.018037,1 +11,2,0,0,5,228346,0,8174.78,10.16016,0,10,1,69.84479,2.40207,0,0,0,72.24686,0,0,0,4,0,5,95,11.84267,0,85.2,0,0,1,0,1.609438,0,0,0,0,0,0,0,85.2,9.008931,1.609438,4.280089,1 +6,2,25,1,1,228354,0,4906.158,26.59001,0,13,1,27.52779,14.76972,42.39809,0,0,84.6956,0,0,0,3,0,1,65.4,24.1,0,64.8,445,445,0,0,0,6.098074,0,3.258096,7.484369,1,0,0,64.8,8.49845,0,4.439064,1 +6,2,25,1,2,228354,0,4906.158,27.59001,0,13,1,0,3.566602,0,0,0,3.566602,0,0,0,0,0,1,65.4,24.1,0,64.8,445,445,0,0,0,6.098074,0,3.258096,7.484369,1,0,0,64.8,8.49845,0,1.271613,1 +6,2,25,1,3,228354,0,4906.158,28.59001,0,13,1,18.69159,2.550067,41.73565,0,0,62.9773,0,0,0,1,1,1,65.4,24.1,0,64.8,445,445,0,0,0,6.098074,0,3.258096,7.484369,1,0,0,64.8,8.49845,0,4.142775,1 +13,2,0,1,1,228362,0,12263.34,61.07871,0,12,1,31.7099,16.8343,0,0,0,48.5442,0,0,0,3,0,2,80.9,17.2,0,73.9,300,348.16,0,0,.6931472,5.852662,1,4.564348,5.755076,1,0,0,73.9,9.414452,.6931472,3.882475,1 +13,2,0,1,2,228362,0,12263.34,62.07871,0,12,1,59.24228,8.098455,0,0,0,67.34074,0,0,0,1,0,2,80.9,17.2,0,73.9,300,348.16,0,0,.6931472,5.852662,1,4.564348,5.755076,1,0,0,73.9,9.414452,.6931472,4.209765,1 +13,2,0,1,3,228362,0,12263.34,63.07871,0,12,1,48.50912,13.76057,0,0,0,62.26969,0,0,0,1,0,2,80.9,17.2,0,73.9,300,348.16,0,0,.6931472,5.852662,1,4.564348,5.755076,1,0,0,73.9,9.414452,.6931472,4.131475,1 +13,2,0,1,1,228363,0,12263.34,55.13758,1,12,1,406.379,85.05559,0,0,0,491.4346,0,0,0,20,0,2,87.2,27.6,1,54.5,300,348.16,0,0,.6931472,5.852662,1,4.564348,5.755076,0,1,0,54.5,9.414452,.6931472,6.197329,1 +13,2,0,1,2,228363,0,12263.34,56.13758,1,12,1,468.6776,108.4266,39.47876,0,116.0473,732.6303,1,0,0,38,0,2,87.2,27.6,1,54.5,300,348.16,0,0,.6931472,5.852662,1,4.564348,5.755076,0,1,0,54.5,9.414452,.6931472,6.596641,1 +13,2,0,1,3,228363,0,12263.34,57.13758,1,12,1,802.2252,241.0058,0,0,82.02047,1125.251,1,0,0,26,0,2,87.2,27.6,1,54.5,300,348.16,0,0,.6931472,5.852662,1,4.564348,5.755076,0,1,0,54.5,9.414452,.6931472,7.025762,1 +7,2,25,1,1,228364,0,9759.531,30.64203,0,14,1,34.32677,2.60777,0,0,0,36.93454,0,0,0,4,0,3,79.3,10.3,0,77.3,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,77.3,9.186102,1.098612,3.609147,1 +7,2,25,1,2,228364,0,9759.531,31.64203,0,14,1,16.96558,0,33.28163,0,0,50.24721,0,0,0,1,0,4,79.3,10.3,0,77.3,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,77.3,9.186102,1.386294,3.916955,1 +7,2,25,1,3,228364,0,9759.531,32.64202,0,14,1,0,0,0,0,0,0,0,0,0,0,0,4,79.3,10.3,0,77.3,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,77.3,9.186102,1.386294,,0 +7,2,25,1,1,228365,0,9759.531,32.85421,1,16,1,20.75572,10.47366,35.43906,0,627.0623,693.7307,1,0,0,1,0,3,65.4,6.9,1,89.8,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,89.8,9.186102,1.098612,6.542084,1 +7,2,25,1,2,228365,0,9759.531,33.85421,1,16,1,0,0,0,0,0,0,0,0,0,0,0,4,65.4,6.9,1,89.8,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,89.8,9.186102,1.386294,,0 +7,2,25,1,3,228365,0,9759.531,34.85421,1,16,1,0,0,0,0,0,0,0,0,0,0,0,4,65.4,6.9,1,89.8,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,89.8,9.186102,1.386294,,0 +7,2,25,1,1,228366,0,9759.531,2.819986,0,16,1,15.99255,0,0,0,0,15.99255,0,0,0,1,0,3,81.35272,11.84267,0,92.6,1000,1000,1,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,92.6,9.186102,1.098612,2.772123,1 +7,2,25,1,2,228366,0,9759.531,3.819986,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,81.35272,11.84267,0,92.6,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,92.6,9.186102,1.386294,,0 +7,2,25,1,3,228366,0,9759.531,4.819986,0,16,1,20.66487,0,0,0,0,20.66487,0,0,0,1,0,4,81.35272,11.84267,0,92.6,1000,1000,1,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,92.6,9.186102,1.386294,3.028435,1 +6,2,25,0,1,228367,0,4692.082,25.94935,1,10,1,29.64532,28.69243,0,0,0,58.33775,0,0,0,2,0,5,63.3,27.6,1,47.7,360,360,0,0,1.609438,5.886104,0,3.258096,7.272398,0,0,0,47.7,8.453845,1.609438,4.066249,1 +6,2,25,0,2,228367,0,4692.082,26.94935,1,10,1,326.6168,14.55116,39.01545,0,0,380.1834,0,0,0,9,1,5,63.3,27.6,1,47.7,360,360,0,0,1.609438,5.886104,0,3.258096,7.272398,0,0,0,47.7,8.453845,1.609438,5.940654,1 +6,2,25,0,3,228367,0,4692.082,27.94935,1,10,1,233.0441,11.48643,0,0,648.0641,892.5945,1,0,0,3,0,5,63.3,27.6,1,47.7,360,360,0,0,1.609438,5.886104,0,3.258096,7.272398,0,0,0,47.7,8.453845,1.609438,6.794132,1 +6,2,25,0,4,228367,0,4692.082,28.94935,1,10,1,89.26393,16.36438,48.10085,0,419.9065,573.6356,1,0,0,6,1,5,63.3,27.6,1,47.7,360,360,0,0,1.609438,5.886104,0,3.258096,7.272398,0,0,0,47.7,8.453845,1.609438,6.351995,1 +6,2,25,0,5,228367,0,4692.082,29.94935,1,10,1,65.24927,0,0,0,0,65.24927,0,0,0,3,0,5,63.3,27.6,1,47.7,360,360,0,0,1.609438,5.886104,0,3.258096,7.272398,0,0,0,47.7,8.453845,1.609438,4.178215,1 +6,2,25,0,1,228368,0,4692.082,4.498289,0,10,1,160.9582,62.38751,0,0,0,223.3457,0,0,0,5,0,5,81.35272,11.84267,1,66.7,360,360,1,0,1.609438,5.886104,0,3.258096,7.272398,0,1,0,66.7,8.453845,1.609438,5.408721,1 +6,2,25,0,2,228368,0,4692.082,5.498289,0,10,1,350.3089,93.33977,0,0,508.2288,951.8774,1,0,0,12,0,5,81.35272,11.84267,1,66.7,360,360,1,0,1.609438,5.886104,0,3.258096,7.272398,0,1,0,66.7,8.453845,1.609438,6.858436,1 +6,2,25,0,3,228368,0,4692.082,6.498289,0,10,1,234.4014,82.55006,0,0,766.5554,1083.507,1,0,0,2,9,5,81.35272,11.84267,1,66.7,360,360,1,0,1.609438,5.886104,0,3.258096,7.272398,0,1,0,66.7,8.453845,1.609438,6.987958,1 +6,2,25,0,4,228368,0,4692.082,7.498289,0,10,1,197.133,59.5486,0,0,0,256.6816,0,0,0,2,10,5,81.35272,11.84267,1,66.7,360,360,1,0,1.609438,5.886104,0,3.258096,7.272398,0,1,0,66.7,8.453845,1.609438,5.547836,1 +6,2,25,0,5,228368,0,4692.082,8.498289,0,10,1,26.20968,10.67815,0,0,0,36.88783,0,0,0,2,0,5,81.35272,11.84267,1,66.7,360,360,1,0,1.609438,5.886104,0,3.258096,7.272398,0,1,0,66.7,8.453845,1.609438,3.607882,1 +6,2,25,0,1,228369,0,4692.082,25.05407,0,12,1,70.937,12.3081,0,0,0,83.2451,0,0,0,8,0,5,69.1,17.2,1,70.5,360,360,0,0,1.609438,5.886104,0,3.258096,7.272398,0,0,0,70.5,8.453845,1.609438,4.421789,1 +6,2,25,0,2,228369,0,4692.082,26.05407,0,12,1,309.8456,0,0,325.7722,0,309.8456,0,0,16,13,0,5,69.1,17.2,1,70.5,360,360,0,0,1.609438,5.886104,0,3.258096,7.272398,0,0,0,70.5,8.453845,1.609438,5.736074,1 +6,2,25,0,3,228369,0,4692.082,27.05407,0,12,1,114.3747,8.170895,0,440.5875,0,122.5456,0,0,22,8,0,5,69.1,17.2,1,70.5,360,360,0,0,1.609438,5.886104,0,3.258096,7.272398,0,0,0,70.5,8.453845,1.609438,4.808483,1 +6,2,25,0,4,228369,0,4692.082,28.05407,0,12,1,67.10045,0,0,0,0,67.10045,0,0,0,5,0,5,69.1,17.2,1,70.5,360,360,0,0,1.609438,5.886104,0,3.258096,7.272398,0,0,0,70.5,8.453845,1.609438,4.206191,1 +6,2,25,0,5,228369,0,4692.082,29.05407,0,12,1,17.22874,0,0,0,0,17.22874,0,0,0,1,0,5,69.1,17.2,1,70.5,360,360,0,0,1.609438,5.886104,0,3.258096,7.272398,0,0,0,70.5,8.453845,1.609438,2.846579,1 +6,2,25,0,1,228370,0,4692.082,1.577002,1,10,1,72.26045,11.22287,0,0,303.2028,386.6861,1,0,0,9,0,5,81.35272,11.84267,0,85.2,360,360,1,1,1.609438,5.886104,0,3.258096,7.272398,0,0,0,85.2,8.453845,1.609438,5.957613,1 +6,2,25,0,2,228370,0,4692.082,2.577002,1,10,1,54.29537,0,0,0,0,54.29537,0,0,0,11,0,5,81.35272,11.84267,0,85.2,360,360,1,1,1.609438,5.886104,0,3.258096,7.272398,0,0,0,85.2,8.453845,1.609438,3.994439,1 +6,2,25,0,3,228370,0,4692.082,3.577002,1,10,1,36.93814,7.089453,0,0,0,44.02759,0,0,0,5,0,5,81.35272,11.84267,0,85.2,360,360,1,1,1.609438,5.886104,0,3.258096,7.272398,0,0,0,85.2,8.453845,1.609438,3.784817,1 +6,2,25,0,4,228370,0,4692.082,4.577002,1,10,1,21.35014,2.179748,0,0,0,23.52989,0,0,0,3,0,5,81.35272,11.84267,0,85.2,360,360,1,1,1.609438,5.886104,0,3.258096,7.272398,0,0,0,85.2,8.453845,1.609438,3.158272,1 +6,2,25,0,5,228370,0,4692.082,5.577002,1,10,1,0,0,0,0,0,0,0,0,0,0,0,5,81.35272,11.84267,0,85.2,360,360,1,1,1.609438,5.886104,0,3.258096,7.272398,0,0,0,85.2,8.453845,1.609438,,0 +13,2,0,1,1,228377,0,3079.179,8.774812,0,16,1,123.8751,0,0,0,0,123.8751,0,0,0,5,1,4,80,11.84267,0,77.8,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,77.8,8.032743,1.386294,4.819273,1 +13,2,0,1,2,228377,0,3079.179,9.774812,0,16,1,131.7568,0,0,0,0,131.7568,0,0,1,4,1,4,80,11.84267,0,77.8,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,77.8,8.032743,1.386294,4.880958,1 +13,2,0,1,3,228377,0,3079.179,10.77481,0,16,1,0,0,0,0,0,0,0,0,0,0,0,5,80,11.84267,0,77.8,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,77.8,8.032743,1.609438,,0 +13,2,0,1,1,228378,0,3079.179,35.46886,1,16,1,328.216,16.98782,40.01588,566.4373,0,385.2197,0,0,25,9,5,4,77.7,13.8,0,77.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,77.3,8.032743,1.386294,5.953814,1 +13,2,0,1,2,228378,0,3079.179,36.46886,1,16,1,160.8349,18.14672,58.88031,562.2587,844.498,1082.36,1,0,33,3,5,4,77.7,13.8,0,77.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,77.3,8.032743,1.386294,6.986899,1 +13,2,0,1,3,228378,0,3079.179,37.46886,1,16,1,137.5167,0,31.39742,231.4197,0,168.9141,0,0,13,4,3,5,77.7,13.8,0,77.3,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,77.3,8.032743,1.609438,5.12939,1 +13,2,0,1,1,228379,0,3079.179,11.47159,1,16,1,166.6226,0,0,0,0,166.6226,0,0,0,7,1,4,81.7,11.84267,0,81.5,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,81.5,8.032743,1.386294,5.115731,1 +13,2,0,1,2,228379,0,3079.179,12.47159,1,16,1,129.4643,0,0,0,0,129.4643,0,0,1,3,0,4,81.7,11.84267,0,81.5,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,81.5,8.032743,1.386294,4.863405,1 +13,2,0,1,3,228379,0,3079.179,13.47159,1,16,1,27.6146,0,0,0,0,27.6146,0,0,0,2,0,5,81.7,11.84267,0,81.5,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,81.5,8.032743,1.609438,3.318345,1 +13,2,0,1,1,228380,0,3079.179,1.7577,1,16,1,256.4849,21.2811,0,0,0,277.766,0,0,0,9,1,4,81.35272,11.84267,0,96.3,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,96.3,8.032743,1.386294,5.626779,1 +13,2,0,1,2,228380,0,3079.179,2.7577,1,16,1,27.26834,18.09846,0,0,0,45.36679,0,0,0,1,0,4,81.35272,11.84267,0,96.3,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,96.3,8.032743,1.386294,3.81478,1 +13,2,0,1,3,228380,0,3079.179,3.7577,1,16,1,0,0,0,0,0,0,0,0,0,0,0,5,81.35272,11.84267,0,96.3,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,96.3,8.032743,1.609438,,0 +11,2,0,0,1,228387,0,2519.648,24.91992,1,11,1,181.5966,251.0218,0,162.3204,180.6333,613.2517,1,1,12,9,0,5,44.1,31,1,39.8,0,0,0,0,1.609438,0,0,0,0,0,1,0,39.8,7.832272,1.609438,6.418776,1 +11,2,0,0,2,228387,0,2519.648,25.91992,1,11,1,75.8604,356.316,0,0,967.1255,1399.302,1,0,0,5,0,5,44.1,31,1,39.8,0,0,0,0,1.609438,0,0,0,0,0,1,0,39.8,7.832272,1.609438,7.243729,1 +11,2,0,0,3,228387,0,2519.648,26.91992,1,11,1,203.6163,91.15454,0,0,0,294.7709,0,0,0,24,0,6,44.1,31,1,39.8,0,0,0,0,1.791759,0,0,0,0,0,1,0,39.8,7.832272,1.791759,5.686198,1 +11,2,0,0,1,228388,0,2519.648,34.81451,0,11,1,117.4827,71.60724,0,0,0,189.0899,0,0,0,6,0,5,58.5,17.2,1,53.4,0,0,0,0,1.609438,0,0,0,0,0,1,0,53.4,7.832272,1.609438,5.242223,1 +11,2,0,0,2,228388,0,2519.648,35.81451,0,11,1,26.17547,92.29278,0,0,0,118.4682,0,0,0,4,0,5,58.5,17.2,1,53.4,0,0,0,0,1.609438,0,0,0,0,0,1,0,53.4,7.832272,1.609438,4.774645,1 +11,2,0,0,3,228388,0,2519.648,36.81451,0,11,1,100.6244,31.08266,.5615454,0,357.5696,489.8383,1,0,0,2,4,6,58.5,17.2,1,53.4,0,0,0,0,1.791759,0,0,0,0,0,1,0,53.4,7.832272,1.791759,6.194075,1 +11,2,0,0,1,228389,0,2519.648,5.672827,0,11,1,6.386376,1.915913,0,0,0,8.302288,0,0,0,1,0,5,91.7,11.84267,0,77.8,0,0,1,0,1.609438,0,0,0,0,0,0,0,77.8,7.832272,1.609438,2.116531,1 +11,2,0,0,2,228389,0,2519.648,6.672827,0,11,1,7.755696,4.934561,0,0,0,12.69026,0,0,0,0,0,5,91.7,11.84267,0,77.8,0,0,1,0,1.609438,0,0,0,0,0,0,0,77.8,7.832272,1.609438,2.540834,1 +11,2,0,0,3,228389,0,2519.648,7.672827,0,11,1,0,0,0,0,0,0,0,0,0,0,0,6,91.7,11.84267,0,77.8,0,0,1,0,1.791759,0,0,0,0,0,0,0,77.8,7.832272,1.791759,,0 +11,2,0,0,1,228390,0,2519.648,6.694045,0,11,1,15.96594,2.55455,0,0,0,18.52049,0,0,0,1,0,5,91.7,11.84267,0,77.8,0,0,1,0,1.609438,0,0,0,0,0,0,0,77.8,7.832272,1.609438,2.918878,1 +11,2,0,0,2,228390,0,2519.648,7.694045,0,11,1,33.27678,0,0,0,0,33.27678,0,0,0,2,0,5,91.7,11.84267,0,77.8,0,0,1,0,1.609438,0,0,0,0,0,0,0,77.8,7.832272,1.609438,3.50486,1 +11,2,0,0,3,228390,0,2519.648,8.694045,0,11,1,0,0,0,0,0,0,0,0,0,0,0,6,91.7,11.84267,0,77.8,0,0,1,0,1.791759,0,0,0,0,0,0,0,77.8,7.832272,1.791759,,0 +11,2,0,0,1,228391,0,2519.648,3.085558,0,11,1,0,0,0,0,0,0,0,0,0,0,0,5,81.35272,11.84267,0,85.2,0,0,1,0,1.609438,0,0,0,0,0,0,0,85.2,7.832272,1.609438,,0 +11,2,0,0,2,228391,0,2519.648,4.085558,0,11,1,5.816772,0,0,0,0,5.816772,0,0,0,1,0,5,81.35272,11.84267,0,85.2,0,0,1,0,1.609438,0,0,0,0,0,0,0,85.2,7.832272,1.609438,1.760745,1 +11,2,0,0,3,228391,0,2519.648,5.085558,0,11,1,34.83378,0,0,0,1052.201,1087.035,1,0,0,1,0,6,81.35272,11.84267,0,85.2,0,0,1,0,1.791759,0,0,0,0,0,0,0,85.2,7.832272,1.791759,6.991209,1 +11,2,0,0,1,228415,0,8665.641,61.36345,1,12,1,15.68217,5.075797,48.0345,0,0,68.79247,0,0,0,1,0,1,55.3,24.1,0,71.6,0,0,0,0,0,0,0,0,0,0,0,0,71.6,9.067237,0,4.231094,1 +11,2,0,0,2,228415,0,8665.641,62.36345,1,12,1,59.34647,0,0,0,0,59.34647,0,0,0,2,0,1,55.3,24.1,0,71.6,0,0,0,0,0,0,0,0,0,0,0,0,71.6,9.067237,0,4.083393,1 +11,2,0,0,3,228415,0,8665.641,63.36345,1,12,1,29.73568,0,52.36564,0,0,82.10132,0,0,0,2,0,1,55.3,24.1,0,71.6,0,0,0,0,0,0,0,0,0,0,0,0,71.6,9.067237,0,4.407954,1 +16,2,95,0,1,228420,0,5025.807,25.58795,1,13,1,459.6085,43.03452,44.50798,0,1863.333,2410.484,4,0,0,10,0,1,68.1,20.7,1,50,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,0,1,0,50,8.52254,0,7.787583,1 +16,2,95,0,2,228420,0,5025.807,26.58795,1,13,1,83.33334,17.2964,0,0,0,100.6297,0,0,0,6,0,2,68.1,20.7,1,50,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,1,0,50,8.52254,.6931472,4.611448,1 +16,2,95,0,3,228420,0,5025.807,27.58795,1,13,1,6.068487,29.02471,0,0,150.1517,185.2449,1,0,0,1,0,2,68.1,20.7,1,50,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,1,0,50,8.52254,.6931472,5.221679,1 +13,2,0,1,1,228429,0,8926.687,23.76181,1,12,1,245.6094,0,.798297,0,469.2762,715.6839,1,0,0,2,32,3,65.4,10.3,0,67,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,67,9.096912,1.098612,6.573238,1 +13,2,0,1,2,228429,0,8926.687,24.76181,1,12,1,16.96558,0,0,0,0,16.96558,0,0,0,0,3,4,65.4,10.3,0,67,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,67,9.096912,1.386294,2.831187,1 +13,2,0,1,3,228429,0,8926.687,25.76181,1,12,1,11.23091,0,0,0,0,11.23091,0,0,0,2,0,4,65.4,10.3,0,67,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,67,9.096912,1.386294,2.418669,1 +13,2,0,1,1,228430,0,8926.687,26.96783,0,12,1,71.84673,0,0,0,0,71.84673,0,0,0,1,0,3,73.4,3.4,0,73.9,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,73.9,9.096912,1.098612,4.274535,1 +13,2,0,1,2,228430,0,8926.687,27.96783,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,73.4,3.4,0,73.9,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,73.9,9.096912,1.386294,,0 +13,2,0,1,3,228430,0,8926.687,28.96783,0,12,1,17.07098,0,32.69542,0,0,49.7664,0,0,0,1,0,4,73.4,3.4,0,73.9,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,73.9,9.096912,1.386294,3.90734,1 +13,2,0,1,1,228431,0,8926.687,3.359343,1,12,1,16.23204,0,0,0,0,16.23204,0,0,0,1,2,3,81.35272,11.84267,0,88.9,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,0,0,0,88.9,9.096912,1.098612,2.786987,1 +13,2,0,1,2,228431,0,8926.687,4.359343,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,81.35272,11.84267,0,88.9,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,88.9,9.096912,1.386294,,0 +13,2,0,1,3,228431,0,8926.687,5.359343,1,12,1,32.79425,0,0,0,0,32.79425,0,0,0,2,0,4,81.35272,11.84267,0,88.9,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,88.9,9.096912,1.386294,3.490253,1 +11,2,0,1,1,228470,0,2823.097,44,1,19,1,47.89782,21.66578,37.51464,745.0771,0,107.0782,0,0,35,3,0,1,20.7,17.2,0,56.8,0,0,0,0,0,0,0,0,0,1,0,0,56.8,7.945944,0,4.67356,1 +11,2,0,1,2,228470,0,2823.097,45,1,19,1,0,17.37761,0,591.3718,0,17.37761,0,0,38,0,0,1,20.7,17.2,0,56.8,0,0,0,0,0,0,0,0,0,1,0,0,56.8,7.945944,0,2.855182,1 +11,2,0,1,3,228470,0,2823.097,46,1,19,1,139.2183,5.363882,33.53998,148.248,0,178.1222,0,0,15,5,0,1,20.7,17.2,0,56.8,0,0,0,0,0,0,0,0,0,1,0,0,56.8,7.945944,0,5.18247,1 +17,2,25,1,1,228514,0,4917.889,61.26762,1,12,1,206.7433,322.4517,26.13696,0,0,555.3319,0,0,0,19,0,1,78.7,34.5,1,39.8,468.21,468.21,0,0,0,6.148917,0,3.258096,7.535211,1,0,0,39.8,8.500838,0,6.319566,1 +17,2,25,1,2,228514,0,4917.889,62.26762,1,12,1,330.8506,377.631,0,0,3561.917,4270.399,2,0,0,32,0,1,78.7,34.5,1,39.8,468.21,468.21,0,0,0,6.148917,0,3.258096,7.535211,1,0,0,39.8,8.500838,0,8.359463,1 +17,2,25,1,3,228514,0,4917.889,63.26762,1,12,1,435.4185,328.8106,38.76652,11.01322,0,802.9956,0,0,1,27,1,1,78.7,34.5,1,39.8,468.21,468.21,0,0,0,6.148917,0,3.258096,7.535211,1,0,0,39.8,8.500838,0,6.688349,1 +17,2,25,0,1,228515,0,5075.66,22.72142,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,88.3,6.9,0,81.8,105,0,0,0,0,0,0,3.258096,6.040255,1,0,0,81.8,8.532409,0,,0 +17,2,25,0,2,228515,0,5075.66,23.72142,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,88.3,6.9,0,81.8,105,0,0,0,0,0,0,3.258096,6.040255,1,0,0,81.8,8.532409,0,,0 +17,2,25,0,3,228515,0,5075.66,24.72142,0,12,1,66.28622,15.53995,0,0,0,81.82616,0,0,0,6,0,1,88.3,6.9,0,81.8,105,0,0,0,0,0,0,3.258096,6.040255,1,0,0,81.8,8.532409,0,4.404597,1 +13,2,0,0,1,228535,0,5102.053,52.60233,1,13,1,264.3006,27.93032,63.13573,192.4077,336.7135,692.0801,1,0,11,11,1,1,40.4,10.3,0,23.9,150,0,0,0,0,0,1,4.564348,5.061929,0,0,0,23.9,8.537594,0,6.539701,1 +13,2,0,0,2,228535,0,5102.053,53.60233,1,13,1,135.571,22.87626,0,0,0,158.4472,0,0,0,2,0,1,40.4,10.3,0,23.9,150,0,0,0,0,0,1,4.564348,5.061929,0,0,0,23.9,8.537594,0,5.065422,1 +13,2,0,0,3,228535,0,5102.053,54.60233,1,13,1,185.1405,14.34153,64.63126,0,0,264.1133,0,0,0,9,0,1,40.4,10.3,0,23.9,150,0,0,0,0,0,1,4.564348,5.061929,0,0,0,23.9,8.537594,0,5.576378,1 +11,2,0,0,1,228573,0,8665.641,37.45654,1,10,1,60.14941,15.43534,0,0,0,75.58475,0,0,0,3,0,9,43.1,27.6,1,56,0,0,0,0,2.197225,0,0,0,0,1,0,0,56,9.067237,2.197225,4.325254,1 +11,2,0,0,2,228573,0,8665.641,38.45654,1,10,1,25.56818,15.28409,0,0,0,40.85227,0,0,0,2,0,11,43.1,27.6,1,56,0,0,0,0,2.397895,0,0,0,0,1,0,0,56,9.067237,2.397895,3.709962,1 +11,2,0,0,3,228573,0,8665.641,39.45654,1,10,1,57.3472,3.402688,0,0,0,60.74989,0,0,0,2,0,11,43.1,27.6,1,56,0,0,0,0,2.397895,0,0,0,0,1,0,0,56,9.067237,2.397895,4.106765,1 +11,2,0,0,1,228574,0,8665.641,10.08624,0,10,1,153.7867,0,0,0,0,153.7867,0,0,0,6,0,9,83.3,11.84267,0,59.3,0,0,1,0,2.197225,0,0,0,0,1,0,0,59.3,9.067237,2.197225,5.035567,1 +11,2,0,0,2,228574,0,8665.641,11.08624,0,10,1,12.31061,0,29.17614,0,0,41.48674,0,0,0,0,1,11,83.3,11.84267,0,59.3,0,0,1,0,2.397895,0,0,0,0,1,0,0,59.3,9.067237,2.397895,3.725374,1 +11,2,0,0,3,228574,0,8665.641,12.08624,0,10,1,14.73775,0,13.87083,0,0,28.60858,0,0,0,0,1,11,83.3,11.84267,0,59.3,0,0,1,0,2.397895,0,0,0,0,1,0,0,59.3,9.067237,2.397895,3.353707,1 +11,2,0,0,1,228575,0,8665.641,13.5551,0,10,1,23.05513,0,0,0,0,23.05513,0,0,0,1,0,9,88.3,11.84267,0,55.6,0,0,1,0,2.197225,0,0,0,0,0,0,0,55.6,9.067237,2.197225,3.137888,1 +11,2,0,0,2,228575,0,8665.641,14.5551,0,10,1,0,0,0,0,0,0,0,0,0,0,0,11,88.3,11.84267,0,55.6,0,0,1,0,2.397895,0,0,0,0,0,0,0,55.6,9.067237,2.397895,,0 +11,2,0,0,1,228576,0,8665.641,15.9206,1,10,1,69.80938,23.27666,.7727975,0,582.5605,676.4194,1,0,0,5,0,9,81.9,17.2,1,58,0,0,1,1,2.197225,0,0,0,0,1,0,0,58,9.067237,2.197225,6.516813,1 +11,2,0,0,2,228576,0,8665.641,16.9206,1,10,1,56.58144,28.19129,0,0,0,84.77273,0,0,0,6,0,11,81.9,17.2,1,58,0,0,1,1,2.397895,0,0,0,0,1,0,0,58,9.067237,2.397895,4.439974,1 +11,2,0,0,3,228576,0,8665.641,17.9206,1,10,1,178.3702,69.45817,1.257044,0,0,249.0854,0,0,0,5,0,11,81.9,17.2,1,58,0,0,1,1,2.397895,0,0,0,0,1,0,0,58,9.067237,2.397895,5.517796,1 +11,2,0,0,1,228577,0,8665.641,11.24435,0,10,1,0,0,0,0,0,0,0,0,0,0,0,9,70,11.84267,0,48.1,0,0,1,0,2.197225,0,0,0,0,1,0,0,48.1,9.067237,2.197225,,0 +11,2,0,0,2,228577,0,8665.641,12.24435,0,10,1,66.99811,9.360795,29.17614,0,0,105.535,0,0,0,2,1,11,70,11.84267,0,48.1,0,0,1,0,2.397895,0,0,0,0,1,0,0,48.1,9.067237,2.397895,4.659043,1 +11,2,0,0,3,228577,0,8665.641,13.24435,0,10,1,14.73775,0,0,0,0,14.73775,0,0,0,0,1,11,70,11.84267,0,48.1,0,0,1,0,2.397895,0,0,0,0,1,0,0,48.1,9.067237,2.397895,2.690413,1 +11,2,0,0,1,228580,0,8665.641,14.46407,0,10,1,11.33436,0,0,0,0,11.33436,0,0,0,0,1,9,78.7,10.3,0,55.7,0,0,1,0,2.197225,0,0,0,0,0,0,0,55.7,9.067237,2.197225,2.427839,1 +11,2,0,0,2,228580,0,8665.641,15.46407,0,10,1,14.08617,0,0,0,0,14.08617,0,0,0,2,0,11,78.7,10.3,0,55.7,0,0,1,0,2.397895,0,0,0,0,0,0,0,55.7,9.067237,2.397895,2.645194,1 +11,2,0,0,3,228580,0,8665.641,16.46407,0,10,1,28.17512,0,34.8938,0,0,63.06892,0,0,0,1,1,11,78.7,10.3,0,55.7,0,0,1,0,2.397895,0,0,0,0,0,0,0,55.7,9.067237,2.397895,4.144228,1 +11,2,0,0,1,228581,0,8665.641,18.88296,1,12.75671,1,19.57754,3.910356,0,0,813.3436,836.8315,1,0,0,3,0,9,61.2,6.9,0,51.1,0,0,0,0,2.197225,0,0,0,0,1,0,0,51.1,9.067237,2.197225,6.729623,1 +11,2,0,0,2,228581,0,8665.641,19.88296,1,12.75671,1,20.24148,0,0,0,388.3049,408.5464,1,0,0,1,0,11,61.2,6.9,0,51.1,0,0,0,0,2.397895,0,0,0,0,1,0,0,51.1,9.067237,2.397895,6.012606,1 +11,2,0,0,3,228581,0,8665.641,20.88296,1,12.75671,1,101.1053,0,0,0,0,101.1053,0,0,0,3,0,11,61.2,6.9,0,51.1,0,0,0,0,2.397895,0,0,0,0,1,0,0,51.1,9.067237,2.397895,4.616163,1 +11,2,0,0,1,228582,0,8665.641,3.477071,1,10,1,24.72952,0,0,0,0,24.72952,0,0,0,2,0,9,81.35272,11.84267,0,85.2,0,0,1,1,2.197225,0,0,0,0,0,0,0,85.2,9.067237,2.197225,3.207998,1 +11,2,0,0,2,228582,0,8665.641,4.47707,1,10,1,59.25663,0,0,0,0,59.25663,0,0,0,3,0,11,81.35272,11.84267,0,85.2,0,0,1,1,2.397895,0,0,0,0,0,0,0,85.2,9.067237,2.397895,4.081878,1 +11,2,0,0,3,228582,0,8665.641,5.47707,1,10,1,0,0,0,0,0,0,0,0,0,0,0,11,81.35272,11.84267,0,85.2,0,0,1,1,2.397895,0,0,0,0,0,0,0,85.2,9.067237,2.397895,,0 +11,2,0,0,1,228583,0,8665.641,8.317591,1,10,1,58.47501,3.755796,0,0,0,62.23081,0,0,0,3,0,9,85,11.84267,0,92.6,0,0,1,1,2.197225,0,0,0,0,1,0,0,92.6,9.067237,2.197225,4.13085,1 +11,2,0,0,2,228583,0,8665.641,9.317591,1,10,1,25.9233,10.07102,0,0,0,35.99432,0,0,0,3,0,11,85,11.84267,0,92.6,0,0,1,1,2.397895,0,0,0,0,1,0,0,92.6,9.067237,2.397895,3.583361,1 +11,2,0,0,3,228583,0,8665.641,10.31759,1,10,1,27.13481,3.207629,0,0,0,30.34244,0,0,0,2,0,11,85,11.84267,0,92.6,0,0,1,1,2.397895,0,0,0,0,1,0,0,92.6,9.067237,2.397895,3.412547,1 +15,2,95,0,1,228587,0,13960.7,58.53525,1,15,1,300,4.981968,82.57599,0,1173.395,1560.953,1,0,0,4,13,2,78.2,37.9,0,77.3,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,77.3,9.544073,.6931472,7.353052,1 +15,2,95,0,2,228587,0,13960.7,59.53525,1,15,1,184.4223,0,0,0,1129.01,1313.433,1,0,0,3,9,2,78.2,37.9,0,77.3,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,77.3,9.544073,.6931472,7.180399,1 +15,2,95,0,3,228587,0,13960.7,60.53525,1,15,1,197.4426,9.163416,0,0,0,206.606,0,0,0,4,18,2,78.2,37.9,0,77.3,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,77.3,9.544073,.6931472,5.330813,1 +15,2,95,0,1,228588,0,13960.7,60.17796,0,16,1,22.15353,10.97373,0,0,0,33.12725,0,0,0,1,0,2,95.7,13.8,0,90.9,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,90.9,9.544073,.6931472,3.500356,1 +15,2,95,0,2,228588,0,13960.7,61.17796,0,16,1,0,5.288826,0,0,0,5.288826,0,0,0,0,0,2,95.7,13.8,0,90.9,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,90.9,9.544073,.6931472,1.665596,1 +15,2,95,0,3,228588,0,13960.7,62.17796,0,16,1,0,0,0,0,0,0,0,0,0,0,0,2,95.7,13.8,0,90.9,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,90.9,9.544073,.6931472,,0 +13,2,0,0,1,228617,0,12144.87,3.649555,0,12,1,381.762,89.97939,0,0,345.1056,816.847,1,0,0,38,0,4,81.35272,11.84267,0,74.1,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,74.1,9.404744,1.386294,6.705452,1 +13,2,0,0,2,228617,0,12144.87,4.649555,0,12,1,291.6667,8.688447,0,0,0,300.3551,0,0,0,37,0,4,81.35272,11.84267,0,74.1,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,74.1,9.404744,1.386294,5.704966,1 +13,2,0,0,3,228617,0,12144.87,5.649555,0,12,1,163.8492,18.15345,0,0,0,182.0026,0,0,0,16,0,4,81.35272,11.84267,0,74.1,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,74.1,9.404744,1.386294,5.204021,1 +13,2,0,0,1,228618,0,12144.87,9.163587,1,12,1,11.33436,0,0,0,0,11.33436,0,0,0,1,0,4,80,11.84267,0,100,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,100,9.404744,1.386294,2.427839,1 +13,2,0,0,2,228618,0,12144.87,10.16359,1,12,1,13.25758,0,0,0,0,13.25758,0,0,0,0,1,4,80,11.84267,0,100,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,100,9.404744,1.386294,2.584569,1 +13,2,0,0,3,228618,0,12144.87,11.16359,1,12,1,40.31209,0,0,0,0,40.31209,0,0,0,1,0,4,80,11.84267,0,100,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,100,9.404744,1.386294,3.696651,1 +13,2,0,0,1,228619,0,12144.87,11.29363,1,12,1,30.2679,7.614632,0,0,0,37.88253,0,0,0,2,0,4,76.7,11.84267,0,100,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,100,9.404744,1.386294,3.63449,1 +13,2,0,0,2,228619,0,12144.87,12.29363,1,12,1,13.25758,0,0,0,0,13.25758,0,0,0,0,1,4,76.7,11.84267,0,100,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,100,9.404744,1.386294,2.584569,1 +13,2,0,0,3,228619,0,12144.87,13.29363,1,12,1,27.74166,1.642826,35.82575,0,0,65.21023,0,0,0,1,1,4,76.7,11.84267,0,100,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,100,9.404744,1.386294,4.177616,1 +13,2,0,0,1,228620,0,12144.87,34.06434,1,12,1,64.91499,0,43.06543,0,0,107.9804,0,0,0,0,4,4,66.5,3.4,0,75,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,75,9.404744,1.386294,4.68195,1 +13,2,0,0,2,228620,0,12144.87,35.06434,1,12,1,19.41288,13.93466,0,0,0,33.34754,0,0,0,1,0,4,66.5,3.4,0,75,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,75,9.404744,1.386294,3.506984,1 +13,2,0,0,3,228620,0,12144.87,36.06434,1,12,1,124.0182,2.050282,37.03944,0,0,163.1079,0,0,0,1,14,4,66.5,3.4,0,75,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,75,9.404744,1.386294,5.094412,1 +18,2,25,1,1,228644,0,8665.641,10.64476,0,10,1,36.92148,1.346854,5.033802,0,0,43.30213,0,0,0,3,0,5,81.7,11.84267,0,88.9,1000,0,1,0,1.609438,0,0,3.258096,8.294049,0,0,0,88.9,9.067237,1.609438,3.768202,1 +18,2,25,1,1,228645,0,8665.641,13.86448,1,10,1,72.28289,0,1.040042,0,0,73.32293,0,0,0,3,0,5,76.7,11.84267,0,51.9,1000,0,1,1,1.609438,0,0,3.258096,8.294049,0,0,0,51.9,9.067237,1.609438,4.294873,1 +18,2,25,1,1,228646,0,8665.641,36.75838,0,10,1,30.68123,0,34.10817,0,0,64.78939,0,0,0,0,5,5,60.6,10.3,1,63.6,1000,0,0,0,1.609438,0,0,3.258096,8.294049,0,0,0,63.6,9.067237,1.609438,4.171142,1 +18,2,25,1,1,228647,0,8665.641,31.4141,1,10,1,68.90276,16.06344,43.46854,0,0,128.4347,0,0,0,4,2,5,64.9,31,1,67,1000,0,0,0,1.609438,0,0,3.258096,8.294049,0,1,0,67,9.067237,1.609438,4.855421,1 +18,2,25,1,1,228648,0,8665.641,12.39973,0,10,1,71.24285,3.374935,.7280291,0,0,75.34582,0,0,0,4,0,5,83.3,11.84267,0,88.9,1000,0,1,0,1.609438,0,0,3.258096,8.294049,0,0,0,88.9,9.067237,1.609438,4.322088,1 +11,2,0,1,1,228689,0,13626.98,15.3128,1,16,1,0,0,0,0,0,0,0,0,0,0,0,3,74.8,0,0,68.2,0,0,1,1,1.098612,0,0,0,0,0,0,0,68.2,9.51988,1.098612,,0 +11,2,0,1,2,228689,0,13626.98,16.3128,1,16,1,29.9135,0,0,0,0,29.9135,0,0,0,2,0,3,74.8,0,0,68.2,0,0,1,1,1.098612,0,0,0,0,0,0,0,68.2,9.51988,1.098612,3.39831,1 +11,2,0,1,3,228689,0,13626.98,17.3128,1,16,1,40.17621,5.709251,0,198.2379,0,45.88546,0,0,9,4,0,3,74.8,0,0,68.2,0,0,1,1,1.098612,0,0,0,0,0,0,0,68.2,9.51988,1.098612,3.826148,1 +11,2,0,1,4,228689,0,13626.98,18.3128,1,16,1,23.3871,0,0,0,0,23.3871,0,0,0,2,0,3,74.8,0,0,68.2,0,0,0,0,1.098612,0,0,0,0,0,0,0,68.2,9.51988,1.098612,3.152184,1 +11,2,0,1,5,228689,0,13626.98,19.3128,1,16,1,138.7067,1.038251,0,0,0,139.745,0,0,0,3,0,2,74.8,0,0,68.2,0,0,0,0,.6931472,0,0,0,0,0,0,0,68.2,9.51988,.6931472,4.939819,1 +11,2,0,1,1,228690,0,13626.98,52.14237,1,16,1,158.965,94.81966,66.52901,0,781.4951,1101.809,1,0,0,8,4,3,70.2,17.2,1,63.6,0,0,0,0,1.098612,0,0,0,0,0,1,0,63.6,9.51988,1.098612,7.004708,1 +11,2,0,1,2,228690,0,13626.98,53.14237,1,16,1,287.482,78.54397,0,480.5382,0,366.0259,0,0,21,8,7,3,70.2,17.2,1,63.6,0,0,0,0,1.098612,0,0,0,0,0,1,0,63.6,9.51988,1.098612,5.902704,1 +11,2,0,1,3,228690,0,13626.98,54.14237,1,16,1,1802.418,547.7181,0,352.4229,2429.485,4779.621,3,0,16,21,4,3,70.2,17.2,1,63.6,0,0,0,0,1.098612,0,0,0,0,0,1,0,63.6,9.51988,1.098612,8.472116,1 +11,2,0,1,4,228690,0,13626.98,55.14237,1,16,.2076503,136.254,87.5,0,0,2696.573,2920.327,6,0,0,2,0,3,70.2,17.2,1,63.6,0,0,0,0,1.098612,0,0,0,0,0,1,0,63.6,9.51988,1.098612,7.979451,1 +11,2,0,1,1,228691,0,13626.98,52.47912,0,12,1,146.1056,29.19498,113.1051,0,575.5724,863.978,1,0,0,11,0,3,67,20.7,0,76.1,0,0,0,0,1.098612,0,0,0,0,1,0,0,76.1,9.51988,1.098612,6.761548,1 +11,2,0,1,2,228691,0,13626.98,53.47912,0,12,1,0,12.90245,0,0,0,12.90245,0,0,0,0,0,3,67,20.7,0,76.1,0,0,0,0,1.098612,0,0,0,0,1,0,0,76.1,9.51988,1.098612,2.557417,1 +11,2,0,1,3,228691,0,13626.98,54.47912,0,12,1,39.20705,12.52863,43.07489,0,0,94.81057,0,0,0,2,0,3,67,20.7,0,76.1,0,0,0,0,1.098612,0,0,0,0,1,0,0,76.1,9.51988,1.098612,4.551881,1 +11,2,0,1,4,228691,0,13626.98,55.47912,0,12,1,147.1774,25.40322,0,0,1058.093,1230.673,1,0,0,7,0,3,67,20.7,0,76.1,0,0,0,0,1.098612,0,0,0,0,1,0,0,76.1,9.51988,1.098612,7.115317,1 +11,2,0,1,5,228691,0,13626.98,56.47912,0,12,1,37.52277,4.31694,43.45355,0,0,85.29326,0,0,0,3,0,2,67,20.7,0,76.1,0,0,0,0,.6931472,0,0,0,0,1,0,0,76.1,9.51988,.6931472,4.446095,1 +19,2,25,0,1,228722,0,8665.641,26.85284,0,12,1,0,0,0,0,386.3988,386.3988,1,0,0,0,0,1,75,3.4,0,83,450,450,0,0,0,6.109248,0,3.258096,7.495542,0,0,0,83,9.067237,0,5.95687,1 +19,2,25,0,2,228722,0,8665.641,27.85284,0,12,1,51.49148,0,0,0,1789.702,1841.193,1,0,0,1,0,1,75,3.4,0,83,450,450,0,0,0,6.109248,0,3.258096,7.495542,0,0,0,83,9.067237,0,7.518169,1 +19,2,25,0,3,228722,0,8665.641,28.85284,0,12,1,17.772,0,0,0,0,17.772,0,0,0,1,0,1,75,3.4,0,83,450,450,0,0,0,6.109248,0,3.258096,7.495542,0,0,0,83,9.067237,0,2.877624,1 +19,2,25,0,4,228722,0,8665.641,29.85284,0,12,1,63.80465,0,0,0,0,63.80465,0,0,0,2,0,1,75,3.4,0,83,450,450,0,0,0,6.109248,0,3.258096,7.495542,0,0,0,83,9.067237,0,4.155826,1 +19,2,25,0,5,228722,0,8665.641,30.85284,0,12,1,95.70662,1.449016,0,0,0,97.15563,0,0,0,4,0,1,75,3.4,0,83,450,450,0,0,0,6.109248,0,3.258096,7.495542,0,0,0,83,9.067237,0,4.576314,1 +11,2,0,0,1,228733,0,6234.604,22.33813,1,14,1,72.26045,30.82583,0,0,0,103.0863,0,0,0,5,0,1,71.3,17.2,0,73.9,0,0,0,0,0,0,0,0,0,1,0,0,73.9,8.73803,0,4.635566,1 +11,2,0,0,2,228733,0,6234.604,23.33813,1,14,1,41.98842,0,0,0,0,41.98842,0,0,0,3,0,1,71.3,17.2,0,73.9,0,0,0,0,0,0,0,0,0,1,0,0,73.9,8.73803,0,3.737394,1 +11,2,0,0,3,228733,0,6234.604,24.33813,1,14,1,121.117,1.513129,0,0,237.3476,359.9778,1,0,0,2,0,1,71.3,17.2,0,73.9,0,0,0,0,0,0,0,0,0,1,0,0,73.9,8.73803,0,5.886042,1 +13,2,0,0,1,228749,0,9087.977,27.07734,1,13,1,34.65939,2.99012,0,0,0,37.64951,0,0,0,1,3,4,61.7,13.8,0,72.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,72.7,9.114818,1.386294,3.62832,1 +13,2,0,0,2,228749,0,9087.977,28.07734,1,13,1,4.777831,0,0,0,0,4.777831,0,0,0,0,1,4,61.7,13.8,0,72.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,72.7,9.114818,1.386294,1.563987,1 +13,2,0,0,3,228749,0,9087.977,29.07734,1,13,1,55.31168,0,0,118.525,0,55.31168,0,0,6,1,3,4,61.7,13.8,0,72.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,72.7,9.114818,1.386294,4.012984,1 +13,2,0,0,1,228750,0,9087.977,33.92745,0,16,1,41.08164,0,0,0,0,41.08164,0,0,0,1,0,4,79.8,3.4,0,83,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,83,9.114818,1.386294,3.715561,1 +13,2,0,0,2,228750,0,9087.977,34.92745,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,79.8,3.4,0,83,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,83,9.114818,1.386294,,0 +13,2,0,0,3,228750,0,9087.977,35.92745,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,79.8,3.4,0,83,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,83,9.114818,1.386294,,0 +13,2,0,0,1,228751,0,9087.977,5.002053,1,13,1,61.62246,0,0,0,0,61.62246,0,0,0,5,0,4,81.35272,11.84267,0,70.4,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,70.4,9.114818,1.386294,4.121027,1 +13,2,0,0,2,228751,0,9087.977,6.002053,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,81.35272,11.84267,0,70.4,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,70.4,9.114818,1.386294,,0 +13,2,0,0,3,228751,0,9087.977,7.002053,1,13,1,23.04653,0,0,0,0,23.04653,0,0,0,2,0,4,81.35272,11.84267,0,70.4,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,70.4,9.114818,1.386294,3.137515,1 +13,2,0,0,1,228752,0,9087.977,1.379877,0,13,1,8.320333,0,0,0,0,8.320333,0,0,0,1,0,4,81.35272,11.84267,0,74.1,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,74.1,9.114818,1.386294,2.118702,1 +13,2,0,0,2,228752,0,9087.977,2.379877,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,81.35272,11.84267,0,74.1,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,74.1,9.114818,1.386294,,0 +13,2,0,0,3,228752,0,9087.977,3.379877,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,81.35272,11.84267,0,74.1,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,74.1,9.114818,1.386294,,0 +16,2,95,0,1,228803,0,1849.853,19.62765,1,12,1,203.3745,53.86914,0,12.87996,0,257.2437,0,0,1,8,0,2,58,6.9,0,59.1,750.15,750.15,0,0,.6931472,6.620273,0,4.564348,6.671566,0,0,0,59.1,7.523402,.6931472,5.550024,1 +16,2,95,0,2,228803,0,1849.853,20.62765,1,12,1,123.3902,36.41098,0,158.6174,0,159.8011,0,0,14,5,0,2,58,6.9,0,59.1,750.15,750.15,0,0,.6931472,6.620273,0,4.564348,6.671566,0,0,0,59.1,7.523402,.6931472,5.07393,1 +16,2,95,0,3,228803,0,1849.853,21.62765,1,12,1,98.39619,33.14261,0,15.17122,0,131.5388,0,0,1,8,0,2,58,6.9,0,59.1,750.15,750.15,0,0,.6931472,6.620273,0,4.564348,6.671566,0,0,0,59.1,7.523402,.6931472,4.879302,1 +16,2,95,0,1,228804,0,1849.853,54.39014,1,12,1,109.4797,133.1273,41.41679,0,245.1571,529.1808,1,0,0,11,0,2,51.6,31,1,54.8,750.15,750.15,0,0,.6931472,6.620273,0,4.564348,6.671566,0,0,1,54.8,7.523402,.6931472,6.27133,1 +16,2,95,0,2,228804,0,1849.853,55.39014,1,12,1,197.3958,129.8438,0,153.8826,0,327.2396,0,0,13,10,0,2,51.6,31,1,54.8,750.15,750.15,0,0,.6931472,6.620273,0,4.564348,6.671566,0,0,1,54.8,7.523402,.6931472,5.790693,1 +16,2,95,0,3,228804,0,1849.853,56.39014,1,12,1,111.2917,175.5483,28.1101,182.0546,0,314.9502,0,0,12,7,0,2,51.6,31,1,54.8,750.15,750.15,0,0,.6931472,6.620273,0,4.564348,6.671566,0,0,1,54.8,7.523402,.6931472,5.752414,1 +11,2,0,0,1,228805,0,8621.701,39.24162,1,13,1,0,0,0,0,0,0,0,0,0,0,0,6,86.7,20.7,0,58,0,0,0,0,1.791759,0,0,0,0,1,0,0,58,9.062154,1.791759,,0 +11,2,0,0,2,228805,0,8621.701,40.24162,1,13,1,83.38068,0,0,0,0,83.38068,0,0,0,4,0,6,86.7,20.7,0,58,0,0,0,0,1.791759,0,0,0,0,1,0,0,58,9.062154,1.791759,4.423417,1 +11,2,0,0,3,228805,0,8621.701,41.24162,1,13,1,0,0,0,0,0,0,0,0,0,0,0,6,86.7,20.7,0,58,0,0,0,0,1.791759,0,0,0,0,1,0,0,58,9.062154,1.791759,,0 +11,2,0,0,1,228806,0,8621.701,7.991786,0,13,1,0,0,0,0,0,0,0,0,0,0,0,6,91.7,11.84267,0,63,0,0,1,0,1.791759,0,0,0,0,0,0,0,63,9.062154,1.791759,,0 +11,2,0,0,2,228806,0,8621.701,8.991786,0,13,1,0,0,0,0,0,0,0,0,0,0,0,6,91.7,11.84267,0,63,0,0,1,0,1.791759,0,0,0,0,0,0,0,63,9.062154,1.791759,,0 +11,2,0,0,3,228806,0,8621.701,9.991786,0,13,1,0,0,0,0,0,0,0,0,0,0,0,6,91.7,11.84267,0,63,0,0,1,0,1.791759,0,0,0,0,0,0,0,63,9.062154,1.791759,,0 +11,2,0,0,1,228807,0,8621.701,10.30801,0,13,1,30.43277,0,0,0,0,30.43277,0,0,0,1,0,6,90,11.84267,0,96.3,0,0,1,0,1.791759,0,0,0,0,0,0,0,96.3,9.062154,1.791759,3.41552,1 +11,2,0,0,2,228807,0,8621.701,11.30801,0,13,1,0,0,0,0,0,0,0,0,0,0,0,6,90,11.84267,0,96.3,0,0,1,0,1.791759,0,0,0,0,0,0,0,96.3,9.062154,1.791759,,0 +11,2,0,0,3,228807,0,8621.701,12.30801,0,13,1,0,0,0,0,0,0,0,0,0,0,0,6,90,11.84267,0,96.3,0,0,1,0,1.791759,0,0,0,0,0,0,0,96.3,9.062154,1.791759,,0 +11,2,0,0,1,228808,0,8621.701,13.1499,0,13,1,18.03194,0,0,0,0,18.03194,0,0,0,1,0,6,85,11.84267,0,100,0,0,1,0,1.791759,0,0,0,0,0,0,0,100,9.062154,1.791759,2.892145,1 +11,2,0,0,2,228808,0,8621.701,14.1499,0,13,1,17.51894,0,0,0,0,17.51894,0,0,0,1,0,6,85,11.84267,0,100,0,0,1,0,1.791759,0,0,0,0,0,0,0,100,9.062154,1.791759,2.863283,1 +11,2,0,0,3,228808,0,8621.701,15.1499,0,13,1,86.64933,0,0,0,0,86.64933,0,0,0,3,0,6,85,11.84267,0,100,0,0,1,0,1.791759,0,0,0,0,0,0,0,100,9.062154,1.791759,4.461869,1 +11,2,0,0,1,228809,0,8621.701,43.96714,0,10,1,51.8238,6.651211,0,0,0,58.47501,0,0,0,2,0,6,90.7,24.1,0,64.8,0,0,0,0,1.791759,0,0,0,0,1,0,0,64.8,9.062154,1.791759,4.0686,1 +11,2,0,0,2,228809,0,8621.701,44.96714,0,10,1,177.1828,0,0,0,0,177.1828,0,0,0,3,0,6,90.7,24.1,0,64.8,0,0,0,0,1.791759,0,0,0,0,1,0,0,64.8,9.062154,1.791759,5.177182,1 +11,2,0,0,3,228809,0,8621.701,45.96714,0,10,1,52.40572,0,0,0,0,52.40572,0,0,0,3,0,6,90.7,24.1,0,64.8,0,0,0,0,1.791759,0,0,0,0,1,0,0,64.8,9.062154,1.791759,3.959016,1 +11,2,0,0,1,228810,0,8621.701,11.45243,0,13,1,0,0,0,0,0,0,0,0,0,0,0,6,85,11.84267,0,59.3,0,0,1,0,1.791759,0,0,0,0,1,0,0,59.3,9.062154,1.791759,,0 +11,2,0,0,2,228810,0,8621.701,12.45243,0,13,1,81.12216,0,0,0,0,81.12216,0,0,0,3,0,6,85,11.84267,0,59.3,0,0,1,0,1.791759,0,0,0,0,1,0,0,59.3,9.062154,1.791759,4.395956,1 +11,2,0,0,3,228810,0,8621.701,13.45243,0,13,1,0,0,0,0,0,0,0,0,0,0,0,6,85,11.84267,0,59.3,0,0,1,0,1.791759,0,0,0,0,1,0,0,59.3,9.062154,1.791759,,0 +18,2,25,0,1,228812,0,8026.95,43.9425,1,12,1,49.66022,7.579718,0,0,0,57.23994,0,0,0,3,0,2,89.4,13.8,0,72.7,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,1,0,0,72.7,8.990685,.6931472,4.047252,1 +18,2,25,0,2,228812,0,8026.95,44.9425,1,12,1,16.81884,0,40.16819,0,1087.66,1144.647,1,0,0,1,1,2,89.4,13.8,0,72.7,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,1,0,0,72.7,8.990685,.6931472,7.042851,1 +18,2,25,0,3,228812,0,8026.95,45.9425,1,12,1,53.96476,23.70044,33.9207,0,0,111.5859,0,0,0,2,1,2,89.4,13.8,0,72.7,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,1,0,0,72.7,8.990685,.6931472,4.714795,1 +18,2,25,0,1,228813,0,8026.95,46.64476,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,89.9,3.4,0,67,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,1,0,0,67,8.990685,.6931472,,0 +18,2,25,0,2,228813,0,8026.95,47.64476,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,89.9,3.4,0,67,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,1,0,0,67,8.990685,.6931472,,0 +18,2,25,0,3,228813,0,8026.95,48.64476,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,89.9,3.4,0,67,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,1,0,0,67,8.990685,.6931472,,0 +11,2,0,1,1,228866,0,7696.129,29.13347,1,15,1,43.2828,16.62311,36.90016,0,0,96.80606,0,0,0,3,0,3,63.8,0,0,98.9,0,423,0,0,1.098612,6.047372,0,0,0,0,0,0,98.9,8.948603,1.098612,4.57271,1 +11,2,0,1,2,228866,0,7696.129,30.13347,1,15,1,102.8352,0,4.324844,215.7617,0,107.16,0,0,37,2,9,3,63.8,0,0,98.9,0,423,0,0,1.098612,6.047372,0,0,0,0,0,0,98.9,8.948603,1.098612,4.674323,1 +11,2,0,1,3,228866,0,7696.129,31.13347,1,15,1,16.29956,19.82379,0,39.31718,0,36.12335,0,0,7,1,0,3,63.8,0,0,98.9,0,423,0,0,1.098612,6.047372,0,0,0,0,0,0,98.9,8.948603,1.098612,3.586939,1 +11,2,0,1,1,228867,0,7696.129,29.05133,0,16,1,57.86723,0,1.045478,0,0,58.9127,0,0,0,3,0,3,73.4,0,0,81.8,0,423,0,0,1.098612,6.047372,0,0,0,0,0,0,81.8,8.948603,1.098612,4.076057,1 +11,2,0,1,2,228867,0,7696.129,30.05133,0,16,1,279.0966,3.195579,.4805382,377.2225,0,282.7727,0,0,38,7,16,3,73.4,0,0,81.8,0,423,0,0,1.098612,6.047372,0,0,0,0,0,0,81.8,8.948603,1.098612,5.644643,1 +11,2,0,1,3,228867,0,7696.129,31.05133,0,16,1,243.2159,1.54185,21.14537,460.9031,0,265.9031,0,0,37,5,19,3,73.4,0,0,81.8,0,423,0,0,1.098612,6.047372,0,0,0,0,0,0,81.8,8.948603,1.098612,5.583132,1 +11,2,0,1,1,228868,0,7696.129,3.909651,0,15,1,32.93257,0,0,0,0,32.93257,0,0,0,3,0,3,81.35272,11.84267,0,92.6,0,423,1,0,1.098612,6.047372,0,0,0,0,0,0,92.6,8.948603,1.098612,3.494462,1 +11,2,0,1,2,228868,0,7696.129,4.909651,0,15,1,56.43921,14.80058,0,0,0,71.23979,0,0,0,6,0,3,81.35272,11.84267,0,92.6,0,423,1,0,1.098612,6.047372,0,0,0,0,0,0,92.6,8.948603,1.098612,4.266052,1 +11,2,0,1,3,228868,0,7696.129,5.909651,0,15,1,27.31277,2.444934,0,0,0,29.75771,0,0,0,3,0,3,81.35272,11.84267,0,92.6,0,423,1,0,1.098612,6.047372,0,0,0,0,0,0,92.6,8.948603,1.098612,3.393088,1 +15,2,95,0,1,228882,0,12744.28,26.03148,1,13,1,42.3493,14.89438,0,0,0,57.24369,0,0,0,3,0,4,72.9,10.3,0,73.9,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,73.9,9.452916,1.386294,4.047318,1 +15,2,95,0,2,228882,0,12744.28,27.03148,1,13,1,25.33144,8.380682,0,0,0,33.71212,0,0,0,2,0,4,72.9,10.3,0,73.9,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,73.9,9.452916,1.386294,3.517857,1 +15,2,95,0,3,228882,0,12744.28,28.03148,1,13,1,47.68097,2.254009,28.46987,0,372.0069,450.4118,1,0,0,3,0,4,72.9,10.3,0,73.9,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,73.9,9.452916,1.386294,6.110162,1 +15,2,95,0,1,228883,0,12744.28,1.71937,1,13,1,20.60793,0,0,0,0,20.60793,0,0,0,2,0,4,81.35272,11.84267,0,55.6,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,0,0,0,55.6,9.452916,1.386294,3.025676,1 +15,2,95,0,2,228883,0,12744.28,2.71937,1,13,1,25,5.776515,0,0,0,30.77652,0,0,0,3,0,4,81.35272,11.84267,0,55.6,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,0,0,0,55.6,9.452916,1.386294,3.426752,1 +15,2,95,0,3,228883,0,12744.28,3.71937,1,13,1,51.90724,2.384048,0,0,0,54.29129,0,0,0,4,0,4,81.35272,11.84267,0,55.6,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,0,0,0,55.6,9.452916,1.386294,3.994364,1 +15,2,95,0,1,228884,0,12744.28,28.70363,0,12,1,52.55023,0,0,0,0,52.55023,0,0,0,1,0,4,83.5,6.9,0,68.2,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,68.2,9.452916,1.386294,3.96177,1 +15,2,95,0,2,228884,0,12744.28,29.70363,0,12,1,37.4053,3.480114,0,0,0,40.88542,0,0,0,3,0,4,83.5,6.9,0,68.2,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,68.2,9.452916,1.386294,3.710773,1 +15,2,95,0,3,228884,0,12744.28,30.70363,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,83.5,6.9,0,68.2,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,68.2,9.452916,1.386294,,0 +15,2,95,0,1,228885,0,12744.28,3.720739,1,13,1,8.243174,0,0,0,0,8.243174,0,0,0,1,0,4,81.35272,11.84267,0,66.7,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,0,0,0,66.7,9.452916,1.386294,2.109385,1 +15,2,95,0,2,228885,0,12744.28,4.720739,1,13,1,16.80871,7.305871,0,0,0,24.11458,0,0,0,1,0,4,81.35272,11.84267,0,66.7,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,0,0,0,66.7,9.452916,1.386294,3.182817,1 +15,2,95,0,3,228885,0,12744.28,5.720739,1,13,1,18.96402,3.289987,0,0,0,22.25401,0,0,0,3,0,4,81.35272,11.84267,0,66.7,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,0,0,0,66.7,9.452916,1.386294,3.102522,1 +5,2,25,0,1,228889,0,4344.868,48.30664,1,9,1,10.30397,0,0,0,0,10.30397,0,0,0,2,0,1,60.1,20.7,1,51.1,611.25,611.25,0,0,0,6.415506,0,3.258096,7.8018,0,1,0,51.1,8.376981,0,2.332529,1 +5,2,25,0,1,228890,0,3621.701,25.73853,1,12,1,89.90211,0,0,0,0,89.90211,0,0,0,1,0,1,73.4,3.4,0,83,299.05,299.05,0,0,0,5.700611,0,3.258096,7.086905,0,0,0,83,8.194975,0,4.498722,1 +5,2,25,0,2,228890,0,3621.701,26.73853,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,73.4,3.4,0,83,299.05,299.05,0,0,0,5.700611,0,3.258096,7.086905,0,0,0,83,8.194975,0,,0 +5,2,25,0,3,228890,0,3621.701,27.73853,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,73.4,3.4,0,83,299.05,299.05,0,0,0,5.700611,0,3.258096,7.086905,0,0,0,83,8.194975,0,,0 +13,2,0,0,1,228893,0,11755.42,21.72758,0,14,1,44.20177,3.884555,34.52418,0,0,82.6105,0,0,0,4,1,3,66,0,0,51.1,450,507,0,0,1.098612,6.228511,1,4.564348,6.160541,0,1,0,51.1,9.372155,1.098612,4.414137,1 +13,2,0,0,2,228893,0,11755.42,22.72758,0,14,1,7.166746,0,0,0,0,7.166746,0,0,0,1,0,3,66,0,0,51.1,450,507,0,0,1.098612,6.228511,1,4.564348,6.160541,0,1,0,51.1,9.372155,1.098612,1.969452,1 +13,2,0,0,3,228893,0,11755.42,23.72758,0,14,1,0,0,0,0,0,0,0,0,0,0,0,3,66,0,0,51.1,450,507,0,0,1.098612,6.228511,1,4.564348,6.160541,0,1,0,51.1,9.372155,1.098612,,0 +13,2,0,0,4,228893,0,11755.42,24.72758,0,14,1,0,0,0,0,0,0,0,0,0,0,0,3,66,0,0,51.1,450,507,0,0,1.098612,6.228511,1,4.564348,6.160541,0,1,0,51.1,9.372155,1.098612,,0 +13,2,0,0,1,228894,0,11755.42,48.66804,1,13,1,147.4259,8.689548,54.79459,0,1388.04,1598.95,1,0,0,10,1,3,88.3,20.7,0,77.3,450,507,0,0,1.098612,6.228511,1,4.564348,6.160541,1,0,0,77.3,9.372155,1.098612,7.377102,1 +13,2,0,0,2,228894,0,11755.42,49.66804,1,13,1,38.70043,6.741519,0,0,0,45.44195,0,0,0,5,0,3,88.3,20.7,0,77.3,450,507,0,0,1.098612,6.228511,1,4.564348,6.160541,1,0,0,77.3,9.372155,1.098612,3.816436,1 +13,2,0,0,3,228894,0,11755.42,50.66804,1,13,1,94.60052,0,45.82967,0,0,140.4302,0,0,0,2,1,3,88.3,20.7,0,77.3,450,507,0,0,1.098612,6.228511,1,4.564348,6.160541,1,0,0,77.3,9.372155,1.098612,4.944711,1 +13,2,0,0,4,228894,0,11755.42,51.66804,1,13,1,20.34304,5.480654,0,0,0,25.82369,0,0,0,3,0,3,88.3,20.7,0,77.3,450,507,0,0,1.098612,6.228511,1,4.564348,6.160541,1,0,0,77.3,9.372155,1.098612,3.251292,1 +13,2,0,0,5,228894,0,11755.42,52.66804,1,13,1,40.60914,10.22118,33.64032,0,0,84.47063,0,0,0,4,1,2,88.3,20.7,0,77.3,450,507,0,0,.6931472,6.228511,1,4.564348,6.160541,1,0,0,77.3,9.372155,.6931472,4.436404,1 +13,2,0,0,1,228895,0,11755.42,50.02875,0,11,1,100.624,35.43422,0,0,0,136.0582,0,0,0,9,0,3,79.3,6.9,0,70.5,450,507,0,0,1.098612,6.228511,1,4.564348,6.160541,0,1,0,70.5,9.372155,1.098612,4.913083,1 +13,2,0,0,2,228895,0,11755.42,51.02875,0,11,1,8.600096,12.47014,0,0,0,21.07023,0,0,0,1,0,3,79.3,6.9,0,70.5,450,507,0,0,1.098612,6.228511,1,4.564348,6.160541,0,1,0,70.5,9.372155,1.098612,3.047861,1 +13,2,0,0,3,228895,0,11755.42,52.02875,0,11,1,87.55927,0,43.07726,0,0,130.6365,0,0,0,2,1,3,79.3,6.9,0,70.5,450,507,0,0,1.098612,6.228511,1,4.564348,6.160541,0,1,0,70.5,9.372155,1.098612,4.872419,1 +13,2,0,0,4,228895,0,11755.42,53.02875,0,11,1,0,0,0,0,0,0,0,0,0,0,0,3,79.3,6.9,0,70.5,450,507,0,0,1.098612,6.228511,1,4.564348,6.160541,0,1,0,70.5,9.372155,1.098612,,0 +13,2,0,0,5,228895,0,11755.42,54.02875,0,11,1,231.5446,10.60551,43.82886,0,7978.72,8264.699,2,0,0,6,1,2,79.3,6.9,0,70.5,450,507,0,0,.6931472,6.228511,1,4.564348,6.160541,0,1,0,70.5,9.372155,.6931472,9.019749,1 +13,2,0,0,1,228898,0,2521.994,20.96099,1,12,1,299.8454,3.101494,0,0,0,302.9469,0,0,0,9,0,1,68.6,17.2,0,85.2,150,44.22,0,0,0,3.789177,1,4.564348,5.061929,0,0,0,85.2,7.833201,0,5.713558,1 +13,2,0,0,2,228898,0,2521.994,21.96099,1,12,1,11.36364,0,0,0,0,11.36364,0,0,0,1,0,1,68.6,17.2,0,85.2,150,44.22,0,0,0,3.789177,1,4.564348,5.061929,0,0,0,85.2,7.833201,0,2.430418,1 +13,2,0,0,3,228898,0,2521.994,22.96099,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,68.6,17.2,0,85.2,150,44.22,0,0,0,3.789177,1,4.564348,5.061929,0,0,0,85.2,7.833201,0,,0 +11,2,0,0,1,228932,0,8505.572,28.55852,1,13,1,112.3245,5.590224,0,0,284.6334,402.5481,1,0,0,5,0,2,88.3,10.3,0,88.6,0,211.8,0,0,.6931472,5.355642,0,0,0,0,0,0,88.6,9.048594,.6931472,5.997815,1 +11,2,0,0,2,228932,0,8505.572,29.55852,1,13,1,14.81128,17.23841,0,0,1206.756,1238.806,1,0,0,0,0,2,88.3,10.3,0,88.6,0,211.8,0,0,.6931472,5.355642,0,0,0,0,0,0,88.6,9.048594,.6931472,7.121903,1 +11,2,0,0,3,228932,0,8505.572,30.55852,1,13,1,0,0,0,0,0,0,0,0,0,0,0,3,88.3,10.3,0,88.6,0,211.8,0,0,1.098612,5.355642,0,0,0,0,0,0,88.6,9.048594,1.098612,,0 +11,2,0,0,4,228932,0,8505.572,31.55852,1,13,1,79.41763,9.79657,0,0,1381.611,1470.826,1,0,0,1,0,3,88.3,10.3,0,88.6,0,211.8,0,0,1.098612,5.355642,0,0,0,0,0,0,88.6,9.048594,1.098612,7.293579,1 +11,2,0,0,5,228932,0,8505.572,32.55852,1,13,1,9.06454,2.353154,0,106.9616,0,11.41769,0,0,9,1,0,4,88.3,10.3,0,88.6,0,211.8,0,0,1.386294,5.355642,0,0,0,0,0,0,88.6,9.048594,1.386294,2.435164,1 +11,2,0,1,1,228945,0,6363.636,23.26078,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,90.4,0,0,93.2,0,516,0,0,1.609438,6.246107,0,0,0,0,0,0,93.2,8.758512,1.609438,,0 +11,2,0,1,2,228945,0,6363.636,24.26078,0,12,1,7.208073,0,0,0,0,7.208073,0,0,0,1,0,5,90.4,0,0,93.2,0,516,0,0,1.609438,6.246107,0,0,0,0,0,0,93.2,8.758512,1.609438,1.975202,1 +11,2,0,1,3,228945,0,6363.636,25.26078,0,12,1,117.0925,12.66079,5.726872,0,0,135.4802,0,0,0,8,0,5,90.4,0,0,93.2,0,516,0,0,1.609438,6.246107,0,0,0,0,0,0,93.2,8.758512,1.609438,4.908825,1 +11,2,0,1,1,228946,0,6363.636,1.848049,1,12,1,47.83063,5.541035,0,0,0,53.37167,0,0,0,5,0,5,81.35272,11.84267,0,81.5,0,516,1,1,1.609438,6.246107,0,0,0,0,1,0,81.5,8.758512,1.609438,3.97728,1 +11,2,0,1,2,228946,0,6363.636,2.848049,1,12,1,14.05574,4.204709,0,0,224.2431,242.5036,1,0,0,2,0,5,81.35272,11.84267,0,81.5,0,516,1,1,1.609438,6.246107,0,0,0,0,1,0,81.5,8.758512,1.609438,5.491016,1 +11,2,0,1,3,228946,0,6363.636,3.848049,1,12,1,26.87225,8.973568,0,0,0,35.84581,0,0,0,4,0,5,81.35272,11.84267,0,81.5,0,516,1,1,1.609438,6.246107,0,0,0,0,1,0,81.5,8.758512,1.609438,3.579227,1 +11,2,0,1,1,228947,0,6363.636,6.324435,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,68.3,11.84267,0,85.2,0,516,1,0,1.609438,6.246107,0,0,0,0,0,0,85.2,8.758512,1.609438,,0 +11,2,0,1,2,228947,0,6363.636,7.324435,0,12,1,98.7506,1.753964,0,0,0,100.5046,0,0,0,5,0,5,68.3,11.84267,0,85.2,0,516,1,0,1.609438,6.246107,0,0,0,0,0,0,85.2,8.758512,1.609438,4.610203,1 +11,2,0,1,3,228947,0,6363.636,8.324435,0,12,1,42.95154,4.863436,0,0,0,47.81498,0,0,0,3,0,5,68.3,11.84267,0,85.2,0,516,1,0,1.609438,6.246107,0,0,0,0,0,0,85.2,8.758512,1.609438,3.867339,1 +11,2,0,1,1,228948,0,6363.636,22.96235,1,12,1,183.9519,7.239937,0,0,0,191.1918,0,0,0,2,16,5,64.9,10.3,0,68.2,0,516,0,0,1.609438,6.246107,0,0,0,1,0,0,68.2,8.758512,1.609438,5.253277,1 +11,2,0,1,2,228948,0,6363.636,23.96235,1,12,1,148.6881,16.70831,0,12.97453,271.5041,436.9005,1,0,1,7,3,5,64.9,10.3,0,68.2,0,516,0,0,1.609438,6.246107,0,0,0,1,0,0,68.2,8.758512,1.609438,6.079706,1 +11,2,0,1,3,228948,0,6363.636,24.96235,1,12,1,200.8811,10.23789,0,0,0,211.1189,0,0,0,7,0,5,64.9,10.3,0,68.2,0,516,0,0,1.609438,6.246107,0,0,0,1,0,0,68.2,8.758512,1.609438,5.352422,1 +11,2,0,0,1,228965,0,14764.22,20.3614,0,13,1,15.71355,11.695,0,0,0,27.40855,0,0,0,2,0,3,62.2,10.3,0,63.6,0,184.8,0,0,1.098612,5.219274,0,0,0,1,0,0,63.6,9.60003,1.098612,3.310855,1 +11,2,0,0,2,228965,0,14764.22,21.3614,0,13,1,16.57197,0,43.50852,0,0,60.08049,0,0,0,1,0,3,62.2,10.3,0,63.6,0,184.8,0,0,1.098612,5.219274,0,0,0,1,0,0,63.6,9.60003,1.098612,4.095685,1 +11,2,0,0,3,228965,0,14764.22,22.3614,0,13,1,0,0,0,0,0,0,0,0,0,0,0,3,62.2,10.3,0,63.6,0,184.8,0,0,1.098612,5.219274,0,0,0,1,0,0,63.6,9.60003,1.098612,,0 +11,2,0,0,1,228966,0,14764.22,53.91924,1,15,1,203.5033,7.856775,44.4204,0,223.493,479.2736,1,0,0,11,0,3,89.4,17.2,1,52.3,0,184.8,0,0,1.098612,5.219274,0,0,0,0,1,0,52.3,9.60003,1.098612,6.172272,1 +11,2,0,0,2,228966,0,14764.22,54.91924,1,15,1,359.7301,22.33902,137.8314,0,16946.08,17465.98,6,0,0,2,17,3,89.4,17.2,1,52.3,0,184.8,0,0,1.098612,5.219274,0,0,0,0,1,0,52.3,9.60003,1.098612,9.76801,1 +11,2,0,0,3,228966,0,14764.22,55.91924,1,15,1,1778.067,312.4187,165.5873,0,0,2256.073,0,0,0,1,109,3,89.4,17.2,1,52.3,0,184.8,0,0,1.098612,5.219274,0,0,0,0,1,0,52.3,9.60003,1.098612,7.721381,1 +11,2,0,0,1,228967,0,14764.22,52.77208,0,12,1,144.5131,1.545595,0,0,0,146.0587,0,0,0,1,0,3,75.5,13.8,0,60.2,0,184.8,0,0,1.098612,5.219274,0,0,0,0,1,0,60.2,9.60003,1.098612,4.984009,1 +11,2,0,0,2,228967,0,14764.22,53.77208,0,12,1,27.46212,47.96402,0,0,0,75.42614,0,0,0,0,0,3,75.5,13.8,0,60.2,0,184.8,0,0,1.098612,5.219274,0,0,0,0,1,0,60.2,9.60003,1.098612,4.323154,1 +11,2,0,0,3,228967,0,14764.22,54.77208,0,12,1,100.13,13.24231,36.66233,0,109.2328,259.2675,0,0,0,5,0,3,75.5,13.8,0,60.2,0,184.8,0,0,1.098612,5.219274,0,0,0,0,1,0,60.2,9.60003,1.098612,5.55786,1 +15,2,95,1,1,229034,0,5791.789,42.53251,0,10,1,9.360374,0,34.62819,0,0,43.98856,0,0,0,0,1,4,96.3,3.4,0,83.3,500,0,0,0,1.386294,0,0,4.564348,6.265902,0,0,0,83.3,8.66437,1.386294,3.78393,1 +15,2,95,1,2,229034,0,5791.789,43.53251,0,10,1,0,0,0,0,0,0,0,0,0,0,0,4,96.3,3.4,0,83.3,500,0,0,0,1.386294,0,0,4.564348,6.265902,0,0,0,83.3,8.66437,1.386294,,0 +15,2,95,1,3,229034,0,5791.789,44.53251,0,10,1,0,0,0,0,0,0,0,0,0,0,0,4,96.3,3.4,0,83.3,500,0,0,0,1.386294,0,0,4.564348,6.265902,0,0,0,83.3,8.66437,1.386294,,0 +15,2,95,1,1,229035,0,5791.789,9.226557,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,95,11.84267,0,96.3,500,0,1,1,1.386294,0,0,4.564348,6.265902,0,0,0,96.3,8.66437,1.386294,,0 +15,2,95,1,2,229035,0,5791.789,10.22656,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,95,11.84267,0,96.3,500,0,1,1,1.386294,0,0,4.564348,6.265902,0,0,0,96.3,8.66437,1.386294,,0 +15,2,95,1,3,229035,0,5791.789,11.22656,1,13,1,60.6892,0,0,0,0,60.6892,0,0,0,4,0,4,95,11.84267,0,96.3,500,0,1,1,1.386294,0,0,4.564348,6.265902,0,0,0,96.3,8.66437,1.386294,4.105766,1 +15,2,95,1,1,229036,0,5791.789,34.27242,1,13,1,20.80083,0,0,0,0,20.80083,0,0,0,1,0,4,94.7,10.3,0,92,500,0,0,0,1.386294,0,0,4.564348,6.265902,0,0,0,92,8.66437,1.386294,3.034993,1 +15,2,95,1,2,229036,0,5791.789,35.27242,1,13,1,17.67797,0,0,0,0,17.67797,0,0,0,1,0,4,94.7,10.3,0,92,500,0,0,0,1.386294,0,0,4.564348,6.265902,0,0,0,92,8.66437,1.386294,2.872319,1 +15,2,95,1,3,229036,0,5791.789,36.27242,1,13,1,45.2151,0,0,0,0,45.2151,0,0,0,5,0,4,94.7,10.3,0,92,500,0,0,0,1.386294,0,0,4.564348,6.265902,0,0,0,92,8.66437,1.386294,3.811431,1 +15,2,95,1,1,229037,0,5791.789,12.33676,0,13,1,61.88248,15.0806,0,0,0,76.96308,0,0,0,6,0,4,86.7,11.84267,0,96.3,500,0,1,0,1.386294,0,0,4.564348,6.265902,0,0,0,96.3,8.66437,1.386294,4.343326,1 +15,2,95,1,2,229037,0,5791.789,13.33676,0,13,1,26.75585,10.8839,0,0,0,37.63975,0,0,0,3,0,4,86.7,11.84267,0,96.3,500,0,1,0,1.386294,0,0,4.564348,6.265902,0,0,0,96.3,8.66437,1.386294,3.628061,1 +15,2,95,1,3,229037,0,5791.789,14.33676,0,13,1,18.65672,0,0,0,0,18.65672,0,0,0,2,0,4,86.7,11.84267,0,96.3,500,0,1,0,1.386294,0,0,4.564348,6.265902,0,0,0,96.3,8.66437,1.386294,2.926206,1 +13,2,0,0,1,229038,0,6634.604,49.02943,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,92.6,10.3,0,76.1,300,0,0,0,.6931472,0,1,4.564348,5.755076,1,0,0,76.1,8.800205,.6931472,,0 +13,2,0,0,2,229038,0,6634.604,50.02943,0,12,1,36.72241,1.839465,34.21883,0,272.322,345.1027,1,0,0,1,1,2,92.6,10.3,0,76.1,300,0,0,0,.6931472,0,1,4.564348,5.755076,1,0,0,76.1,8.800205,.6931472,5.843842,1 +13,2,0,0,3,229038,0,6634.604,51.02943,0,12,1,116.4618,78.07287,0,0,1055.004,1249.539,2,0,0,2,0,2,92.6,10.3,0,76.1,300,0,0,0,.6931472,0,1,4.564348,5.755076,1,0,0,76.1,8.800205,.6931472,7.13053,1 +13,2,0,0,1,229039,0,6634.604,53.24572,1,10,1,0,0,0,0,0,0,0,0,0,0,0,2,75,10.3,0,62.5,300,0,0,0,.6931472,0,1,4.564348,5.755076,1,0,0,62.5,8.800205,.6931472,,0 +13,2,0,0,2,229039,0,6634.604,54.24572,1,10,1,51.9828,0,59.54133,0,0,111.5241,0,0,0,1,1,2,75,10.3,0,62.5,300,0,0,0,.6931472,0,1,4.564348,5.755076,1,0,0,62.5,8.800205,.6931472,4.714241,1 +13,2,0,0,3,229039,0,6634.604,55.24572,1,10,1,0,0,0,0,0,0,0,0,0,0,0,2,75,10.3,0,62.5,300,0,0,0,.6931472,0,1,4.564348,5.755076,1,0,0,62.5,8.800205,.6931472,,0 +19,2,25,0,1,229041,0,18542.52,34.8063,1,14,1,48.17105,4.688305,0,0,1432.844,1485.703,2,0,0,4,0,1,82.4,10.3,0,75,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,1,0,0,75,9.827876,0,7.303644,1 +19,2,25,0,2,229041,0,18542.52,35.8063,1,14,1,15.625,1.870265,0,0,0,17.49527,0,0,0,2,0,1,82.4,10.3,0,75,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,1,0,0,75,9.827876,0,2.86193,1 +19,2,25,0,3,229041,0,18542.52,36.8063,1,14,1,171.7815,7.81101,0,0,0,179.5925,0,0,0,10,0,1,82.4,10.3,0,75,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,1,0,0,75,9.827876,0,5.190691,1 +19,2,25,0,4,229041,0,18542.52,37.8063,1,14,1,71.68176,17.99133,0,0,0,89.6731,0,0,0,3,0,1,82.4,10.3,0,75,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,1,0,0,75,9.827876,0,4.496171,1 +19,2,25,0,5,229041,0,18542.52,38.8063,1,14,1,28.98032,8.515205,0,0,0,37.49553,0,0,0,1,0,1,82.4,10.3,0,75,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,1,0,0,75,9.827876,0,3.624222,1 +17,2,25,0,1,229047,0,7324.927,26.48871,0,13,1,0,6.578263,0,0,0,6.578263,0,0,0,0,0,2,87.2,3.4,0,84.1,568.05,568.05,0,0,.6931472,6.342209,0,3.258096,7.728504,0,0,0,84.1,8.899175,.6931472,1.883771,1 +17,2,25,0,2,229047,0,7324.927,27.48871,0,13,1,5.255614,3.774486,0,0,0,9.0301,0,0,0,1,0,2,87.2,3.4,0,84.1,568.05,568.05,0,0,.6931472,6.342209,0,3.258096,7.728504,0,0,0,84.1,8.899175,.6931472,2.200563,1 +17,2,25,0,3,229047,0,7324.927,28.48871,0,13,1,7.243196,1.646181,30.28973,0,0,39.1791,0,0,0,1,0,3,87.2,3.4,0,84.1,568.05,568.05,0,0,1.098612,6.342209,0,3.258096,7.728504,0,0,0,84.1,8.899175,1.098612,3.668144,1 +17,2,25,0,1,229048,0,7324.927,20.50103,1,12,1,207.9563,62.4025,.9100364,0,0,271.2689,0,0,0,15,0,2,79.3,27.6,1,67,568.05,568.05,0,0,.6931472,6.342209,0,3.258096,7.728504,1,0,0,67,8.899175,.6931472,5.60311,1 +17,2,25,0,2,229048,0,7324.927,21.50103,1,12,1,48.25609,15.91018,0,0,707.1429,771.3091,1,0,0,6,0,2,79.3,27.6,1,67,568.05,568.05,0,0,.6931472,6.342209,0,3.258096,7.728504,1,0,0,67,8.899175,.6931472,6.648089,1 +17,2,25,0,3,229048,0,7324.927,22.50103,1,12,1,127.5241,30.07902,0,0,0,157.6032,0,0,0,12,0,3,79.3,27.6,1,67,568.05,568.05,0,0,1.098612,6.342209,0,3.258096,7.728504,1,0,0,67,8.899175,1.098612,5.06008,1 +13,2,0,0,1,229060,0,7905.572,29.50856,0,12,1,119.7836,12.90572,0,0,0,132.6893,0,0,0,6,0,5,77.1,13.8,0,78.4,450,658.44,0,0,1.609438,6.489873,1,4.564348,6.160541,0,0,0,78.4,8.97545,1.609438,4.888011,1 +13,2,0,0,2,229060,0,7905.572,30.50856,0,12,1,22.25379,0,0,0,0,22.25379,0,0,0,1,0,5,77.1,13.8,0,78.4,450,658.44,0,0,1.609438,6.489873,1,4.564348,6.160541,0,0,0,78.4,8.97545,1.609438,3.102512,1 +13,2,0,0,3,229060,0,7905.572,31.50856,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,77.1,13.8,0,78.4,450,658.44,0,0,1.609438,6.489873,1,4.564348,6.160541,0,0,0,78.4,8.97545,1.609438,,0 +13,2,0,0,1,229061,0,7905.572,2.447639,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,81.35272,11.84267,0,96.3,450,658.44,1,1,1.609438,6.489873,1,4.564348,6.160541,0,0,0,96.3,8.97545,1.609438,,0 +13,2,0,0,2,229061,0,7905.572,3.447639,1,11,1,16.4536,0,0,0,0,16.4536,0,0,0,1,0,5,81.35272,11.84267,0,96.3,450,658.44,1,1,1.609438,6.489873,1,4.564348,6.160541,0,0,0,96.3,8.97545,1.609438,2.800544,1 +13,2,0,0,3,229061,0,7905.572,4.447639,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,81.35272,11.84267,0,96.3,450,658.44,1,1,1.609438,6.489873,1,4.564348,6.160541,0,0,0,96.3,8.97545,1.609438,,0 +13,2,0,0,1,229062,0,7905.572,28.2026,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,63.3,24.1,0,69.3,450,658.44,0,0,1.609438,6.489873,1,4.564348,6.160541,0,0,0,69.3,8.97545,1.609438,,0 +13,2,0,0,2,229062,0,7905.572,29.2026,1,11,1,15.625,0,0,0,0,15.625,0,0,0,1,0,5,63.3,24.1,0,69.3,450,658.44,0,0,1.609438,6.489873,1,4.564348,6.160541,0,0,0,69.3,8.97545,1.609438,2.748872,1 +13,2,0,0,3,229062,0,7905.572,30.2026,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,63.3,24.1,0,69.3,450,658.44,0,0,1.609438,6.489873,1,4.564348,6.160541,0,0,0,69.3,8.97545,1.609438,,0 +13,2,0,0,1,229063,0,7905.572,10.04517,0,11,1,0,2.756311,0,0,0,2.756311,0,0,0,0,0,5,56.7,11.84267,0,96.3,450,658.44,1,0,1.609438,6.489873,1,4.564348,6.160541,0,0,0,96.3,8.97545,1.609438,1.013893,1 +13,2,0,0,2,229063,0,7905.572,11.04517,0,11,1,0,0,0,0,0,0,0,0,0,0,0,5,56.7,11.84267,0,96.3,450,658.44,1,0,1.609438,6.489873,1,4.564348,6.160541,0,0,0,96.3,8.97545,1.609438,,0 +13,2,0,0,3,229063,0,7905.572,12.04517,0,11,1,0,0,0,0,0,0,0,0,0,0,0,5,56.7,11.84267,0,96.3,450,658.44,1,0,1.609438,6.489873,1,4.564348,6.160541,0,0,0,96.3,8.97545,1.609438,,0 +13,2,0,0,1,229064,0,7905.572,8.021903,1,11,1,155.5899,53.08089,0,0,0,208.6708,0,0,0,20,0,5,71.7,11.84267,1,81.5,450,658.44,1,1,1.609438,6.489873,1,4.564348,6.160541,0,0,0,81.5,8.97545,1.609438,5.340758,1 +13,2,0,0,2,229064,0,7905.572,9.021903,1,11,1,61.6714,81.73769,0,0,0,143.4091,0,0,0,18,0,5,71.7,11.84267,1,81.5,450,658.44,1,1,1.609438,6.489873,1,4.564348,6.160541,0,0,0,81.5,8.97545,1.609438,4.965701,1 +13,2,0,0,3,229064,0,7905.572,10.0219,1,11,1,87.12614,17.33854,.9752926,0,0,105.44,0,0,0,16,0,5,71.7,11.84267,1,81.5,450,658.44,1,1,1.609438,6.489873,1,4.564348,6.160541,0,0,0,81.5,8.97545,1.609438,4.658142,1 +11,2,0,1,1,229093,0,9953.079,11.12115,1,12,1,5.227392,1.777313,0,0,0,7.004704,0,0,0,1,0,4,61.7,11.84267,0,70.4,0,0,1,1,1.386294,0,0,0,0,0,0,0,70.4,9.205738,1.386294,1.946582,1 +11,2,0,1,2,229093,0,9953.079,12.12115,1,12,1,29.12062,0,31.93176,0,0,61.05238,0,0,0,2,1,3,61.7,11.84267,0,70.4,0,0,1,1,1.098612,0,0,0,0,0,0,0,70.4,9.205738,1.098612,4.111732,1 +11,2,0,1,3,229093,0,9953.079,13.12115,1,12,1,33.03965,6.449339,0,0,0,39.48899,0,0,0,5,0,3,61.7,11.84267,0,70.4,0,0,1,1,1.098612,0,0,0,0,0,0,0,70.4,9.205738,1.098612,3.676022,1 +11,2,0,1,4,229093,0,9953.079,14.12115,1,12,1,43.46774,2.741935,0,0,0,46.20968,0,0,0,3,0,3,61.7,11.84267,0,70.4,0,0,1,1,1.098612,0,0,0,0,0,0,0,70.4,9.205738,1.098612,3.833189,1 +11,2,0,1,5,229093,0,9953.079,15.12115,1,12,1,106.6485,13.34791,34.52823,0,0,154.5246,0,0,0,7,1,3,61.7,11.84267,0,70.4,0,0,1,1,1.098612,0,0,0,0,0,0,0,70.4,9.205738,1.098612,5.040353,1 +11,2,0,1,1,229094,0,9953.079,35.71252,1,12,1,58.28542,9.179299,0,0,0,67.46471,0,0,0,4,0,4,77.7,6.9,1,56.8,0,0,0,0,1.386294,0,0,0,0,1,0,0,56.8,9.205738,1.386294,4.211605,1 +11,2,0,1,2,229094,0,9953.079,36.71252,1,12,1,24.02691,9.634791,0,0,0,33.6617,0,0,0,5,0,3,77.7,6.9,1,56.8,0,0,0,0,1.098612,0,0,0,0,1,0,0,56.8,9.205738,1.098612,3.516361,1 +11,2,0,1,3,229094,0,9953.079,37.71252,1,12,1,42.73128,8.440529,0,0,0,51.17181,0,0,0,6,1,3,77.7,6.9,1,56.8,0,0,0,0,1.098612,0,0,0,0,1,0,0,56.8,9.205738,1.098612,3.935189,1 +11,2,0,1,4,229094,0,9953.079,38.71252,1,12,1,225.4032,27.64113,25.20161,0,0,278.246,0,0,0,15,1,3,77.7,6.9,1,56.8,0,0,0,0,1.098612,0,0,0,0,1,0,0,56.8,9.205738,1.098612,5.628506,1 +11,2,0,1,5,229094,0,9953.079,39.71252,1,12,1,201.6393,22.9326,38.17122,0,0,262.7432,0,0,0,6,1,3,77.7,6.9,1,56.8,0,0,0,0,1.098612,0,0,0,0,1,0,0,56.8,9.205738,1.098612,5.571177,1 +11,2,0,1,1,229096,0,9953.079,38.3217,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,77.1,13.8,0,85.7,0,0,0,0,1.386294,0,0,0,0,0,0,0,85.7,9.205738,1.386294,,0 +11,2,0,1,2,229096,0,9953.079,39.3217,0,12,1,12.01346,0,30.58626,0,0,42.59971,0,0,0,0,1,3,77.1,13.8,0,85.7,0,0,0,0,1.098612,0,0,0,0,0,0,0,85.7,9.205738,1.098612,3.751848,1 +11,2,0,1,3,229096,0,9953.079,40.3217,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,77.1,13.8,0,85.7,0,0,0,0,1.098612,0,0,0,0,0,0,0,85.7,9.205738,1.098612,,0 +11,2,0,1,4,229096,0,9953.079,41.3217,0,12,1,20.96774,5.233871,0,0,0,26.20161,0,0,0,1,0,3,77.1,13.8,0,85.7,0,0,0,0,1.098612,0,0,0,0,0,0,0,85.7,9.205738,1.098612,3.265821,1 +11,2,0,1,5,229096,0,9953.079,42.3217,0,12,1,21.85792,13.62477,46.49909,0,0,81.98179,0,0,0,1,1,3,77.1,13.8,0,85.7,0,0,0,0,1.098612,0,0,0,0,0,0,0,85.7,9.205738,1.098612,4.406497,1 +11,2,0,1,1,229097,0,9953.079,15.31006,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,56.4,10.3,0,29.5,0,0,1,1,1.386294,0,0,0,0,0,0,0,29.5,9.205738,1.386294,,0 +11,2,0,1,1,229105,0,6694.428,57.75496,1,12,1,6.24025,2.178887,7.654706,0,0,16.07384,0,0,0,1,0,1,86.7,44.8,0,69.3,0,0,0,0,0,0,0,0,0,0,1,0,69.3,8.80918,0,2.777193,1 +11,2,0,1,2,229105,0,6694.428,58.75496,1,12,1,93.40659,0,110.3297,0,0,203.7363,0,0,0,3,0,1,86.7,44.8,0,69.3,0,0,0,0,0,0,0,0,0,0,1,0,69.3,8.80918,0,5.316826,1 +11,2,0,1,3,229105,0,6694.428,59.75496,1,12,1,204.1001,7.295874,205.3336,0,0,416.7296,0,0,0,3,0,1,86.7,44.8,0,69.3,0,0,0,0,0,0,0,0,0,0,1,0,69.3,8.80918,0,6.032437,1 +7,2,25,0,1,229107,0,4496.188,25.12252,0,14,1,19.11076,0,0,0,0,19.11076,0,0,0,0,0,1,79.8,6.9,0,90.9,1000,0,0,0,0,0,0,3.258096,8.294049,0,0,0,90.9,8.411207,0,2.950252,1 +7,2,25,0,2,229107,0,4496.188,26.12252,0,14,1,0,0,0,0,0,0,0,0,0,0,0,1,79.8,6.9,0,90.9,1000,0,0,0,0,0,0,3.258096,8.294049,0,0,0,90.9,8.411207,0,,0 +7,2,25,0,3,229107,0,4496.188,27.12252,0,14,1,0,0,0,0,0,0,0,0,0,0,0,1,79.8,6.9,0,90.9,1000,0,0,0,0,0,0,3.258096,8.294049,0,0,0,90.9,8.411207,0,,0 +11,2,0,0,1,229151,0,3083.284,51.78097,1,9,1,141.3157,16.90068,43.26053,0,0,201.4769,0,0,0,9,0,4,60.1,20.7,1,54.8,0,0,0,0,1.386294,0,0,0,0,1,0,0,54.8,8.034075,1.386294,5.305675,1 +11,2,0,0,2,229151,0,3083.284,52.78097,1,9,1,142.6183,31.70091,30.00478,0,0,204.3239,0,0,0,18,0,4,60.1,20.7,1,54.8,0,0,0,0,1.386294,0,0,0,0,1,0,0,54.8,8.034075,1.386294,5.319707,1 +11,2,0,0,3,229151,0,3083.284,53.78097,1,9,1,30.28973,5.00439,43.27919,0,0,78.57331,0,0,0,3,0,3,60.1,20.7,1,54.8,0,0,0,0,1.098612,0,0,0,0,1,0,0,54.8,8.034075,1.098612,4.364032,1 +11,2,0,0,4,229151,0,3083.284,54.78097,1,9,1,4.786598,2.094136,0,0,0,6.880734,0,0,0,0,1,3,60.1,20.7,1,54.8,0,0,0,0,1.098612,0,0,0,0,1,0,0,54.8,8.034075,1.098612,1.928725,1 +11,2,0,0,5,229151,0,3083.284,55.78097,1,9,1,27.5562,0,37.81001,0,0,65.36621,0,0,0,1,1,3,60.1,20.7,1,54.8,0,0,0,0,1.098612,0,0,0,0,1,0,0,54.8,8.034075,1.098612,4.180006,1 +11,2,0,0,1,229152,0,3083.284,13.07871,0,9,1,106.5523,10.73843,6.656266,0,0,123.947,0,0,0,9,0,4,55,11.84267,0,70.4,0,0,1,0,1.386294,0,0,0,0,1,0,0,70.4,8.034075,1.386294,4.819854,1 +11,2,0,0,2,229152,0,3083.284,14.07871,0,9,1,28.66698,0,0,17.08075,0,28.66698,0,0,1,3,0,4,55,11.84267,0,70.4,0,0,1,0,1.386294,0,0,0,0,1,0,0,70.4,8.034075,1.386294,3.355746,1 +11,2,0,0,1,229153,0,3083.284,15.46612,0,9,1,15.91264,3.380135,0,0,0,19.29277,0,0,0,2,0,4,68.1,6.9,0,59.1,0,0,1,0,1.386294,0,0,0,0,1,0,0,59.1,8.034075,1.386294,2.959731,1 +11,2,0,0,2,229153,0,3083.284,16.46612,0,9,1,0,0,0,0,0,0,0,0,0,0,0,4,68.1,6.9,0,59.1,0,0,1,0,1.386294,0,0,0,0,1,0,0,59.1,8.034075,1.386294,,0 +11,2,0,0,3,229153,0,3083.284,17.46612,0,9,1,6.584723,9.745391,0,0,0,16.33011,0,0,0,1,0,3,68.1,6.9,0,59.1,0,0,1,0,1.098612,0,0,0,0,1,0,0,59.1,8.034075,1.098612,2.793011,1 +11,2,0,0,4,229153,0,3083.284,18.46612,0,9,1,76.785,4.527324,.4188273,0,0,81.73116,0,0,0,4,0,3,68.1,6.9,0,59.1,0,0,0,0,1.098612,0,0,0,0,1,0,0,59.1,8.034075,1.098612,4.403435,1 +11,2,0,0,5,229153,0,3083.284,19.46612,0,9,1,23.98477,4.496012,0,0,0,28.48078,0,0,0,2,0,3,68.1,6.9,0,59.1,0,0,0,0,1.098612,0,0,0,0,1,0,0,59.1,8.034075,1.098612,3.34923,1 +11,2,0,0,1,229154,0,3083.284,17.85079,0,9,1,35.72543,3.900156,0,0,0,39.62558,0,0,0,4,0,4,70.7,6.9,1,58,0,0,1,0,1.386294,0,0,0,0,1,0,0,58,8.034075,1.386294,3.679475,1 +11,2,0,0,2,229154,0,3083.284,18.85079,0,9,1,17.67797,0,0,0,0,17.67797,0,0,0,2,0,4,70.7,6.9,1,58,0,0,0,0,1.386294,0,0,0,0,1,0,0,58,8.034075,1.386294,2.872319,1 +11,2,0,0,3,229154,0,3083.284,19.85079,0,9,1,0,0,0,0,0,0,0,0,0,0,0,3,70.7,6.9,1,58,0,0,0,0,1.098612,0,0,0,0,1,0,0,58,8.034075,1.098612,,0 +11,2,0,0,4,229154,0,3083.284,20.85079,0,9,1,0,0,0,0,0,0,0,0,0,0,0,3,70.7,6.9,1,58,0,0,0,0,1.098612,0,0,0,0,1,0,0,58,8.034075,1.098612,,0 +11,2,0,0,5,229154,0,3083.284,21.85079,0,9,1,0,2.628716,0,0,0,2.628716,0,0,0,0,0,3,70.7,6.9,1,58,0,0,0,0,1.098612,0,0,0,0,1,0,0,58,8.034075,1.098612,.9664957,1 +11,2,0,0,1,229163,0,12450.44,33.59069,0,19,1,0,0,0,0,0,0,0,0,0,0,0,1,68.6,6.9,1,60.2,0,141,0,0,0,4.94876,0,0,0,1,0,0,60.2,9.429591,0,,0 +11,2,0,0,2,229163,0,12450.44,34.59069,0,19,1,16.72241,0,32.00669,0,0,48.7291,0,0,0,1,0,1,68.6,6.9,1,60.2,0,141,0,0,0,4.94876,0,0,0,1,0,0,60.2,9.429591,0,3.886276,1 +11,2,0,0,3,229163,0,12450.44,35.59069,0,19,1,50.92186,0,0,0,0,50.92186,0,0,0,2,0,1,68.6,6.9,1,60.2,0,141,0,0,0,4.94876,0,0,0,1,0,0,60.2,9.429591,0,3.930292,1 +11,2,0,0,4,229163,0,12450.44,36.59069,0,19,1,0,0,0,0,0,0,0,0,0,0,0,1,68.6,6.9,1,60.2,0,141,0,0,0,4.94876,0,0,0,1,0,0,60.2,9.429591,0,,0 +11,2,0,0,5,229163,0,12450.44,37.59069,0,19,1,40.24656,0,19.5794,0,0,59.82596,0,0,0,1,1,1,68.6,6.9,1,60.2,0,141,0,0,0,4.94876,0,0,0,1,0,0,60.2,9.429591,0,4.09144,1 +11,2,0,1,1,229173,0,5309.091,28.44079,0,21,1,0,0,0,0,0,0,0,0,0,0,0,4,79.3,0,0,73.9,0,0,0,0,1.386294,0,0,0,0,0,0,0,73.9,8.577364,1.386294,,0 +11,2,0,1,2,229173,0,5309.091,29.44079,0,21,1,0,0,0,0,0,0,0,0,0,0,0,4,79.3,0,0,73.9,0,0,0,0,1.386294,0,0,0,0,0,0,0,73.9,8.577364,1.386294,,0 +11,2,0,1,3,229173,0,5309.091,30.44079,0,21,1,0,0,0,0,0,0,0,0,0,0,0,5,79.3,0,0,73.9,0,0,0,0,1.609438,0,0,0,0,0,0,0,73.9,8.577364,1.609438,,0 +11,2,0,1,1,229174,0,5309.091,2.67488,1,16,1,32.02753,6.193753,0,0,0,38.22128,0,0,0,2,0,4,81.35272,11.84267,0,63,0,0,1,1,1.386294,0,0,0,0,0,0,0,63,8.577364,1.386294,3.643393,1 +11,2,0,1,2,229174,0,5309.091,3.67488,1,16,1,8.204633,3.78861,0,0,0,11.99324,0,0,0,1,0,4,81.35272,11.84267,0,63,0,0,1,1,1.386294,0,0,0,0,0,0,0,63,8.577364,1.386294,2.484344,1 +11,2,0,1,3,229174,0,5309.091,4.67488,1,16,1,25.36716,0,0,0,0,25.36716,0,0,0,1,0,5,81.35272,11.84267,0,63,0,0,1,1,1.609438,0,0,0,0,0,0,0,63,8.577364,1.609438,3.233455,1 +11,2,0,1,1,229175,0,5309.091,4.186174,1,16,1,15.88142,0,0,0,0,15.88142,0,0,0,1,0,4,81.35272,11.84267,0,77.8,0,0,1,1,1.386294,0,0,0,0,0,0,0,77.8,8.577364,1.386294,2.76515,1 +11,2,0,1,2,229175,0,5309.091,5.186174,1,16,1,0,0,0,0,0,0,0,0,0,0,0,4,81.35272,11.84267,0,77.8,0,0,1,1,1.386294,0,0,0,0,0,0,0,77.8,8.577364,1.386294,,0 +11,2,0,1,3,229175,0,5309.091,6.186174,1,16,1,23.14197,0,0,0,0,23.14197,0,0,0,1,0,5,81.35272,11.84267,0,77.8,0,0,1,1,1.609438,0,0,0,0,0,0,0,77.8,8.577364,1.609438,3.141648,1 +11,2,0,1,1,229176,0,5309.091,30.32717,1,16,1,0,0,0,0,0,0,0,0,0,0,0,4,83,10.3,0,75,0,0,0,0,1.386294,0,0,0,0,0,0,0,75,8.577364,1.386294,,0 +11,2,0,1,2,229176,0,5309.091,31.32717,1,16,1,0,0,0,0,796.6216,796.6216,1,0,0,0,0,4,83,10.3,0,75,0,0,0,0,1.386294,0,0,0,0,0,0,0,75,8.577364,1.386294,6.68038,1 +11,2,0,1,3,229176,0,5309.091,32.32717,1,16,1,0,6.11927,0,0,0,6.11927,0,0,0,0,0,5,83,10.3,0,75,0,0,0,0,1.609438,0,0,0,0,0,0,0,75,8.577364,1.609438,1.811443,1 +11,2,0,1,1,229201,0,4706.158,45.98768,1,18,1,16.95268,0,11.96048,0,0,28.91316,0,0,0,0,1,2,67.6,17.2,0,76.1,0,0,0,0,.6931472,0,0,0,0,0,0,0,76.1,8.45684,.6931472,3.364297,1 +11,2,0,1,2,229201,0,4706.158,46.98768,1,18,1,0,0,0,0,0,0,0,0,0,0,0,2,67.6,17.2,0,76.1,0,0,0,0,.6931472,0,0,0,0,0,0,0,76.1,8.45684,.6931472,,0 +11,2,0,1,3,229201,0,4706.158,47.98768,1,18,1,17.8885,2.721686,22.82704,0,0,43.43723,0,0,0,1,1,2,67.6,17.2,0,76.1,0,0,0,0,.6931472,0,0,0,0,0,0,0,76.1,8.45684,.6931472,3.771317,1 +11,2,0,1,4,229201,0,4706.158,48.98768,1,18,1,0,0,0,0,0,0,0,0,0,0,0,2,67.6,17.2,0,76.1,0,0,0,0,.6931472,0,0,0,0,0,0,0,76.1,8.45684,.6931472,,0 +11,2,0,1,5,229201,0,4706.158,49.98768,1,18,1,42.8934,0,0,377.0848,0,42.8934,0,0,20,2,0,2,67.6,17.2,0,76.1,0,0,0,0,.6931472,0,0,0,0,0,0,0,76.1,8.45684,.6931472,3.758718,1 +11,2,0,1,1,229202,0,4706.158,14.86927,1,18,1,312.1165,2.704108,0,18.20073,1199.61,1514.431,1,0,2,9,1,2,62.2,6.9,1,63.6,0,0,1,1,.6931472,0,0,0,0,1,0,0,63.6,8.45684,.6931472,7.322795,1 +11,2,0,1,2,229202,0,4706.158,15.86927,1,18,1,86.71763,16.48352,0,869.5652,0,103.2011,0,0,51,11,0,2,62.2,6.9,1,63.6,0,0,1,1,.6931472,0,0,0,0,1,0,0,63.6,8.45684,.6931472,4.63668,1 +11,2,0,1,3,229202,0,4706.158,16.86927,1,18,1,57.94557,0,32.63828,190.957,0,90.58385,0,0,7,6,0,2,62.2,6.9,1,63.6,0,0,1,1,.6931472,0,0,0,0,1,0,0,63.6,8.45684,.6931472,4.506276,1 +11,2,0,1,4,229202,0,4706.158,17.86927,1,18,1,113.6817,18.12924,0,111.6873,0,131.8109,0,0,8,10,1,2,62.2,6.9,1,63.6,0,0,1,1,.6931472,0,0,0,0,1,0,0,63.6,8.45684,.6931472,4.881369,1 +11,2,0,1,5,229202,0,4706.158,18.86927,1,18,1,34.26396,0,0,621.8274,0,34.26396,0,0,49,5,0,2,62.2,6.9,1,63.6,0,0,0,0,.6931472,0,0,0,0,1,0,0,63.6,8.45684,.6931472,3.534094,1 +13,2,0,1,1,229204,0,6144.868,32.66804,0,11,1,342.1328,40.3816,0,0,243.2305,625.7449,1,0,0,8,10,3,93.1,6.9,0,72.7,450,872.4,0,0,1.098612,6.771248,1,4.564348,6.160541,0,0,0,72.7,8.723536,1.098612,6.438943,1 +13,2,0,1,2,229204,0,6144.868,33.66804,0,11,1,89.86064,17.9481,0,0,0,107.8087,0,0,0,5,0,3,93.1,6.9,0,72.7,450,872.4,0,0,1.098612,6.771248,1,4.564348,6.160541,0,0,0,72.7,8.723536,1.098612,4.680359,1 +13,2,0,1,3,229204,0,6144.868,34.66804,0,11,1,24.6696,29.09692,0,0,0,53.76652,0,0,0,3,0,3,93.1,6.9,0,72.7,450,872.4,0,0,1.098612,6.771248,1,4.564348,6.160541,0,0,0,72.7,8.723536,1.098612,3.984651,1 +13,2,0,1,1,229205,0,6144.868,30.57632,1,12,1,79.45635,45.954,0,2.613696,0,125.4103,0,0,1,8,0,3,58.5,10.3,1,61.4,450,872.4,0,0,1.098612,6.771248,1,4.564348,6.160541,1,0,0,61.4,8.723536,1.098612,4.831591,1 +13,2,0,1,2,229205,0,6144.868,31.57632,1,12,1,43.96925,50.84575,0,0,0,94.81499,0,0,0,5,0,3,58.5,10.3,1,61.4,450,872.4,0,0,1.098612,6.771248,1,4.564348,6.160541,1,0,0,61.4,8.723536,1.098612,4.551928,1 +13,2,0,1,3,229205,0,6144.868,32.57632,1,12,1,80.79295,56.47137,0,0,0,137.2643,0,0,0,8,0,3,58.5,10.3,1,61.4,450,872.4,0,0,1.098612,6.771248,1,4.564348,6.160541,1,0,0,61.4,8.723536,1.098612,4.921908,1 +13,2,0,1,1,229206,0,6144.868,5.768651,0,12,1,6.27287,4.626242,0,0,0,10.89911,0,0,0,2,0,3,63.3,11.84267,0,85.2,450,872.4,1,0,1.098612,6.771248,1,4.564348,6.160541,0,0,0,85.2,8.723536,1.098612,2.388681,1 +13,2,0,1,2,229206,0,6144.868,6.768651,0,12,1,2.883229,5.372417,0,0,0,8.255647,0,0,0,1,0,3,63.3,11.84267,0,85.2,450,872.4,1,0,1.098612,6.771248,1,4.564348,6.160541,0,0,0,85.2,8.723536,1.098612,2.110897,1 +13,2,0,1,3,229206,0,6144.868,7.768651,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,63.3,11.84267,0,85.2,450,872.4,1,0,1.098612,6.771248,1,4.564348,6.160541,0,0,0,85.2,8.723536,1.098612,,0 +15,2,95,1,1,229221,0,12526.1,18.02601,0,11,1,0,0,0,0,0,0,0,0,0,0,0,5,78.2,0,0,76.1,1000,0,0,0,1.609438,0,0,4.564348,6.959049,0,0,0,76.1,9.43565,1.609438,,0 +15,2,95,1,2,229221,0,12526.1,19.02601,0,11,1,7.722008,0,0,0,0,7.722008,0,0,0,1,0,5,78.2,0,0,76.1,1000,0,0,0,1.609438,0,0,4.564348,6.959049,0,0,0,76.1,9.43565,1.609438,2.044074,1 +15,2,95,1,3,229221,0,12526.1,20.02601,0,11,1,0,0,0,0,0,0,0,0,0,0,0,5,78.2,0,0,76.1,1000,0,0,0,1.609438,0,0,4.564348,6.959049,0,0,0,76.1,9.43565,1.609438,,0 +15,2,95,1,4,229221,0,12526.1,21.02601,0,11,1,0,0,0,0,0,0,0,0,0,0,0,5,78.2,0,0,76.1,1000,0,0,0,1.609438,0,0,4.564348,6.959049,0,0,0,76.1,9.43565,1.609438,,0 +15,2,95,1,5,229221,0,12526.1,22.02601,0,11,1,10.26393,0,0,0,0,10.26393,0,0,0,1,0,5,78.2,0,0,76.1,1000,0,0,0,1.609438,0,0,4.564348,6.959049,0,0,0,76.1,9.43565,1.609438,2.328636,1 +15,2,95,1,1,229222,0,12526.1,43.34839,0,14,1,13.7639,0,0,0,0,13.7639,0,0,0,2,0,5,98.4,10.3,0,98.9,1000,0,0,0,1.609438,0,0,4.564348,6.959049,0,0,0,98.9,9.43565,1.609438,2.622049,1 +15,2,95,1,2,229222,0,12526.1,44.34839,0,14,1,16.40927,0,0,0,0,16.40927,0,0,0,1,0,5,98.4,10.3,0,98.9,1000,0,0,0,1.609438,0,0,4.564348,6.959049,0,0,0,98.9,9.43565,1.609438,2.797846,1 +15,2,95,1,3,229222,0,12526.1,45.34839,0,14,1,0,0,0,0,4374.909,4374.909,1,0,0,0,0,5,98.4,10.3,0,98.9,1000,0,0,0,1.609438,0,0,4.564348,6.959049,0,0,0,98.9,9.43565,1.609438,8.383641,1 +15,2,95,1,4,229222,0,12526.1,46.34839,0,14,1,47.17365,0,41.08987,0,30.5002,118.7637,0,0,0,0,1,5,98.4,10.3,0,98.9,1000,0,0,0,1.609438,0,0,4.564348,6.959049,0,0,0,98.9,9.43565,1.609438,4.777136,1 +15,2,95,1,5,229222,0,12526.1,47.34839,0,14,1,0,0,0,0,0,0,0,0,0,0,0,5,98.4,10.3,0,98.9,1000,0,0,0,1.609438,0,0,4.564348,6.959049,0,0,0,98.9,9.43565,1.609438,,0 +15,2,95,1,1,229223,0,12526.1,38.52156,1,12,1,14.02859,0,0,0,0,14.02859,0,0,0,1,0,5,90.1,6.9,0,81.8,1000,0,0,0,1.609438,0,0,4.564348,6.959049,0,0,0,81.8,9.43565,1.609438,2.641097,1 +15,2,95,1,2,229223,0,12526.1,39.52156,1,12,1,7.722008,0,0,0,0,7.722008,0,0,0,1,0,5,90.1,6.9,0,81.8,1000,0,0,0,1.609438,0,0,4.564348,6.959049,0,0,0,81.8,9.43565,1.609438,2.044074,1 +15,2,95,1,3,229223,0,12526.1,40.52156,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,90.1,6.9,0,81.8,1000,0,0,0,1.609438,0,0,4.564348,6.959049,0,0,0,81.8,9.43565,1.609438,,0 +15,2,95,1,4,229223,0,12526.1,41.52156,1,12,1,87.43391,0,34.90443,0,0,122.3383,0,0,0,2,1,5,90.1,6.9,0,81.8,1000,0,0,0,1.609438,0,0,4.564348,6.959049,0,0,0,81.8,9.43565,1.609438,4.80679,1 +15,2,95,1,5,229223,0,12526.1,42.52156,1,12,1,11.18035,0,0,0,0,11.18035,0,0,0,1,0,5,90.1,6.9,0,81.8,1000,0,0,0,1.609438,0,0,4.564348,6.959049,0,0,0,81.8,9.43565,1.609438,2.414158,1 +15,2,95,1,1,229224,0,12526.1,13.21013,0,12,1,63.18158,13.34039,0,0,0,76.52197,0,0,0,8,0,5,86.7,11.84267,0,74.1,1000,0,1,0,1.609438,0,0,4.564348,6.959049,0,0,0,74.1,9.43565,1.609438,4.337578,1 +15,2,95,1,2,229224,0,12526.1,14.21013,0,12,1,50.57915,0,0,0,0,50.57915,0,0,0,2,0,5,86.7,11.84267,0,74.1,1000,0,1,0,1.609438,0,0,4.564348,6.959049,0,0,0,74.1,9.43565,1.609438,3.923539,1 +15,2,95,1,3,229224,0,12526.1,15.21013,0,12,1,61.41522,0,.6675568,0,0,62.08278,0,0,0,4,0,5,86.7,11.84267,0,74.1,1000,0,1,0,1.609438,0,0,4.564348,6.959049,0,0,0,74.1,9.43565,1.609438,4.128469,1 +15,2,95,1,4,229224,0,12526.1,16.21013,0,12,1,70.76048,0,10.06507,0,0,80.82554,0,0,0,6,0,5,86.7,11.84267,0,74.1,1000,0,1,0,1.609438,0,0,4.564348,6.959049,0,0,0,74.1,9.43565,1.609438,4.392293,1 +15,2,95,1,5,229224,0,12526.1,17.21013,0,12,1,34.27419,0,0,0,0,34.27419,0,0,0,3,0,5,86.7,11.84267,0,74.1,1000,0,1,0,1.609438,0,0,4.564348,6.959049,0,0,0,74.1,9.43565,1.609438,3.534393,1 +15,2,95,1,1,229225,0,12526.1,15.83573,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,83,0,0,69.3,1000,0,1,1,1.609438,0,0,4.564348,6.959049,0,0,0,69.3,9.43565,1.609438,,0 +15,2,95,1,2,229225,0,12526.1,16.83573,1,12,1,6.756757,1.906371,0,0,0,8.663127,0,0,0,1,0,5,83,0,0,69.3,1000,0,1,1,1.609438,0,0,4.564348,6.959049,0,0,0,69.3,9.43565,1.609438,2.159076,1 +15,2,95,1,3,229225,0,12526.1,17.83573,1,12,1,9.790833,0,0,0,0,9.790833,0,0,0,1,0,5,83,0,0,69.3,1000,0,1,1,1.609438,0,0,4.564348,6.959049,0,0,0,69.3,9.43565,1.609438,2.281446,1 +15,2,95,1,4,229225,0,12526.1,18.83573,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,83,0,0,69.3,1000,0,0,0,1.609438,0,0,4.564348,6.959049,0,0,0,69.3,9.43565,1.609438,,0 +15,2,95,1,5,229225,0,12526.1,19.83573,1,12,1,16.4956,0,0,0,0,16.4956,0,0,0,1,0,5,83,0,0,69.3,1000,0,0,0,1.609438,0,0,4.564348,6.959049,0,0,0,69.3,9.43565,1.609438,2.803094,1 +7,2,25,1,1,229226,0,5918.475,27.13484,1,16,1,71.50286,2.74051,39.77639,0,0,114.0198,0,0,0,5,0,1,62.8,13.8,0,93.2,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,0,0,0,93.2,8.686003,0,4.736372,1 +7,2,25,1,2,229226,0,5918.475,28.13484,1,16,1,59.34066,3.10559,0,0,0,62.44625,0,0,0,5,0,1,62.8,13.8,0,93.2,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,0,0,0,93.2,8.686003,0,4.134306,1 +7,2,25,1,3,229226,0,5918.475,29.13484,1,16,1,84.3942,18.51185,0,0,0,102.9061,0,0,0,5,0,1,62.8,13.8,0,93.2,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,0,0,0,93.2,8.686003,0,4.633817,1 +13,2,0,1,1,229230,0,8560.704,24.22998,1,11,1,380.1352,14.31097,0,0,0,394.4462,0,0,0,10,1,2,45.7,13.8,0,50,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,50,9.055055,.6931472,5.977483,1 +13,2,0,1,2,229230,0,8560.704,25.22998,1,11,1,21.61968,18.74821,0,0,844.6727,885.0406,1,0,0,0,0,3,45.7,13.8,0,50,300,300,0,0,1.098612,5.703783,1,4.564348,5.755076,0,0,0,50,9.055055,1.098612,6.785634,1 +13,2,0,1,3,229230,0,8560.704,26.22998,1,11,1,0,0,0,0,0,0,0,0,0,0,0,4,45.7,13.8,0,50,300,300,0,0,1.386294,5.703783,1,4.564348,5.755076,0,0,0,50,9.055055,1.386294,,0 +13,2,0,1,1,229231,0,8560.704,27.06366,0,10,1,74.10297,0,34.36818,0,0,108.4711,0,0,0,1,1,2,61.2,10.3,1,76.1,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,76.1,9.055055,.6931472,4.686484,1 +13,2,0,1,2,229231,0,8560.704,28.06366,0,10,1,5.733397,0,0,0,0,5.733397,0,0,0,0,1,3,61.2,10.3,1,76.1,300,300,0,0,1.098612,5.703783,1,4.564348,5.755076,1,0,0,76.1,9.055055,1.098612,1.746308,1 +13,2,0,1,3,229231,0,8560.704,29.06366,0,10,1,39.09131,0,0,0,0,39.09131,0,0,0,1,0,4,61.2,10.3,1,76.1,300,300,0,0,1.386294,5.703783,1,4.564348,5.755076,1,0,0,76.1,9.055055,1.386294,3.6659,1 +7,2,25,1,1,229246,0,6148.974,29.84531,1,17,1,110.7729,19.53415,43.41451,0,0,173.7215,0,0,0,2,0,1,55.9,20.7,0,43.2,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,1,0,0,43.2,8.724203,0,5.157454,1 +7,2,25,1,2,229246,0,6148.974,30.84531,1,17,1,104.7297,11.70367,0,542.9537,0,116.4334,0,0,26,1,0,1,55.9,20.7,0,43.2,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,1,0,0,43.2,8.724203,0,4.757319,1 +7,2,25,1,3,229246,0,6148.974,31.84531,1,17,1,35.38051,27.17401,0,872.2742,0,62.55452,0,0,51,3,0,1,55.9,20.7,0,43.2,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,1,0,0,43.2,8.724203,0,4.136038,1 +5,2,25,0,1,229272,0,4540.176,53.82888,0,16,1,206.9878,0,43.19217,0,1410.386,1660.566,1,0,0,5,1,4,73.9,17.2,0,78.4,285,675.6,0,0,1.386294,6.515601,0,3.258096,7.038784,0,0,0,78.4,8.420941,1.386294,7.414914,1 +5,2,25,0,2,229272,0,4540.176,54.82888,0,16,1,84.94209,0,0,0,0,84.94209,0,0,0,1,0,4,73.9,17.2,0,78.4,285,675.6,0,0,1.386294,6.515601,0,3.258096,7.038784,0,0,0,78.4,8.420941,1.386294,4.44197,1 +5,2,25,0,3,229272,0,4540.176,55.82888,0,16,1,73.87628,6.653316,46.40855,0,0,126.9381,0,0,0,2,1,3,73.9,17.2,0,78.4,285,675.6,0,0,1.098612,6.515601,0,3.258096,7.038784,0,0,0,78.4,8.420941,1.098612,4.8437,1 +5,2,25,0,4,229272,0,4540.176,56.82888,0,16,1,49.939,0,0,0,0,49.939,0,0,0,2,0,3,73.9,17.2,0,78.4,285,675.6,0,0,1.098612,6.515601,0,3.258096,7.038784,0,0,0,78.4,8.420941,1.098612,3.910802,1 +5,2,25,0,5,229272,0,4540.176,57.82888,0,16,1,74.04692,36.6349,0,0,300.8798,411.5616,1,0,0,6,0,3,73.9,17.2,0,78.4,285,675.6,0,0,1.098612,6.515601,0,3.258096,7.038784,0,0,0,78.4,8.420941,1.098612,6.019958,1 +5,2,25,0,1,229273,0,4540.176,14.72964,1,12,1,10.58761,0,31.54579,0,0,42.1334,0,0,0,0,1,4,70.7,3.4,0,71.6,285,675.6,1,1,1.386294,6.515601,0,3.258096,7.038784,0,0,0,71.6,8.420941,1.386294,3.740841,1 +5,2,25,0,2,229273,0,4540.176,15.72964,1,12,1,26.30309,0,27.70753,0,0,54.01062,0,0,0,1,1,4,70.7,3.4,0,71.6,285,675.6,1,1,1.386294,6.515601,0,3.258096,7.038784,0,0,0,71.6,8.420941,1.386294,3.989181,1 +5,2,25,0,3,229273,0,4540.176,16.72964,1,12,1,15.57632,0,0,0,0,15.57632,0,0,0,0,1,3,70.7,3.4,0,71.6,285,675.6,1,1,1.098612,6.515601,0,3.258096,7.038784,0,0,0,71.6,8.420941,1.098612,2.745752,1 +5,2,25,0,4,229273,0,4540.176,17.72964,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,70.7,3.4,0,71.6,285,675.6,1,1,1.098612,6.515601,0,3.258096,7.038784,0,0,0,71.6,8.420941,1.098612,,0 +5,2,25,0,5,229273,0,4540.176,18.72964,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,70.7,3.4,0,71.6,285,675.6,0,0,1.098612,6.515601,0,3.258096,7.038784,0,0,0,71.6,8.420941,1.098612,,0 +5,2,25,0,1,229274,0,4540.176,50.71321,1,12,1,265.6167,61.49815,45.83907,0,488.4066,861.3605,1,0,0,11,1,4,80.9,10.3,0,54.5,285,675.6,0,0,1.386294,6.515601,0,3.258096,7.038784,0,0,0,54.5,8.420941,1.386294,6.758513,1 +5,2,25,0,2,229274,0,4540.176,51.71321,1,12,.8739726,809.9421,113.6052,14.6139,0,3745.27,4683.432,3,0,0,18,7,4,80.9,10.3,0,54.5,285,675.6,0,0,1.386294,6.515601,0,3.258096,7.038784,0,0,0,54.5,8.420941,1.386294,8.451786,1 +5,2,25,0,1,229275,0,4540.176,19.15674,0,12,1,5.293806,3.541556,0,0,0,8.835362,0,0,0,1,0,4,57.4,10.3,0,72.7,285,675.6,0,0,1.386294,6.515601,0,3.258096,7.038784,0,0,0,72.7,8.420941,1.386294,2.178762,1 +5,2,25,0,2,229275,0,4540.176,20.15674,0,12,1,102.7992,3.185328,0,0,840.3861,946.3707,1,0,0,8,0,4,57.4,10.3,0,72.7,285,675.6,0,0,1.386294,6.515601,0,3.258096,7.038784,0,0,0,72.7,8.420941,1.386294,6.852634,1 +5,2,25,0,3,229275,0,4540.176,21.15674,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,57.4,10.3,0,72.7,285,675.6,0,0,1.098612,6.515601,0,3.258096,7.038784,0,0,0,72.7,8.420941,1.098612,,0 +5,2,25,0,4,229275,0,4540.176,22.15674,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,57.4,10.3,0,72.7,285,675.6,0,0,1.098612,6.515601,0,3.258096,7.038784,0,0,0,72.7,8.420941,1.098612,,0 +5,2,25,0,5,229275,0,4540.176,23.15674,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,57.4,10.3,0,72.7,285,675.6,0,0,1.098612,6.515601,0,3.258096,7.038784,0,0,0,72.7,8.420941,1.098612,,0 +6,2,25,1,1,229302,0,7550.146,5.494866,0,11,1,13.59122,0,0,0,0,13.59122,0,0,0,1,0,5,91.7,11.84267,0,70.4,911.1,911.1,1,0,1.609438,6.814652,0,3.258096,8.200947,1,0,0,70.4,8.929455,1.609438,2.609424,1 +6,2,25,1,2,229302,0,7550.146,6.494866,0,11,1,0,0,0,0,0,0,0,0,0,0,0,5,91.7,11.84267,0,70.4,911.1,911.1,1,0,1.609438,6.814652,0,3.258096,8.200947,1,0,0,70.4,8.929455,1.609438,,0 +6,2,25,1,3,229302,0,7550.146,7.494866,0,11,1,0,0,0,0,0,0,0,0,0,0,0,5,91.7,11.84267,0,70.4,911.1,911.1,1,0,1.609438,6.814652,0,3.258096,8.200947,1,0,0,70.4,8.929455,1.609438,,0 +6,2,25,1,1,229303,0,7550.146,7.227926,1,11,1,14.6367,0,0,0,0,14.6367,0,0,0,1,0,5,86.7,11.84267,0,66.7,911.1,911.1,1,1,1.609438,6.814652,0,3.258096,8.200947,1,0,0,66.7,8.929455,1.609438,2.683532,1 +6,2,25,1,2,229303,0,7550.146,8.227926,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,86.7,11.84267,0,66.7,911.1,911.1,1,1,1.609438,6.814652,0,3.258096,8.200947,1,0,0,66.7,8.929455,1.609438,,0 +6,2,25,1,3,229303,0,7550.146,9.227926,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,86.7,11.84267,0,66.7,911.1,911.1,1,1,1.609438,6.814652,0,3.258096,8.200947,1,0,0,66.7,8.929455,1.609438,,0 +6,2,25,1,1,229304,0,7550.146,35.63586,0,8,1,69.00157,5.096707,0,0,0,74.09827,0,0,0,3,0,5,83.5,17.2,0,78.4,911.1,911.1,0,0,1.609438,6.814652,0,3.258096,8.200947,1,0,0,78.4,8.929455,1.609438,4.305392,1 +6,2,25,1,2,229304,0,7550.146,36.63586,0,8,1,0,0,0,0,0,0,0,0,0,0,0,5,83.5,17.2,0,78.4,911.1,911.1,0,0,1.609438,6.814652,0,3.258096,8.200947,1,0,0,78.4,8.929455,1.609438,,0 +6,2,25,1,3,229304,0,7550.146,37.63586,0,8,1,0,0,0,0,0,0,0,0,0,0,0,5,83.5,17.2,0,78.4,911.1,911.1,0,0,1.609438,6.814652,0,3.258096,8.200947,1,0,0,78.4,8.929455,1.609438,,0 +6,2,25,1,1,229305,0,7550.146,35.63039,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,85.1,10.3,0,72.7,911.1,911.1,0,0,1.609438,6.814652,0,3.258096,8.200947,1,0,0,72.7,8.929455,1.609438,,0 +6,2,25,1,2,229305,0,7550.146,36.63039,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,85.1,10.3,0,72.7,911.1,911.1,0,0,1.609438,6.814652,0,3.258096,8.200947,1,0,0,72.7,8.929455,1.609438,,0 +6,2,25,1,3,229305,0,7550.146,37.63039,1,11,1,11.01322,0,0,0,0,11.01322,0,0,0,0,1,5,85.1,10.3,0,72.7,911.1,911.1,0,0,1.609438,6.814652,0,3.258096,8.200947,1,0,0,72.7,8.929455,1.609438,2.399096,1 +6,2,25,1,1,229306,0,7550.146,10.13279,0,11,1,24.046,0,0,0,0,24.046,0,0,0,2,0,5,80,11.84267,0,66.7,911.1,911.1,1,0,1.609438,6.814652,0,3.258096,8.200947,1,0,0,66.7,8.929455,1.609438,3.179969,1 +6,2,25,1,2,229306,0,7550.146,11.13279,0,11,1,0,0,0,0,0,0,0,0,0,0,0,5,80,11.84267,0,66.7,911.1,911.1,1,0,1.609438,6.814652,0,3.258096,8.200947,1,0,0,66.7,8.929455,1.609438,,0 +6,2,25,1,3,229306,0,7550.146,12.13279,0,11,1,0,0,0,0,0,0,0,0,0,0,0,5,80,11.84267,0,66.7,911.1,911.1,1,0,1.609438,6.814652,0,3.258096,8.200947,1,0,0,66.7,8.929455,1.609438,,0 +5,2,25,1,1,229311,0,6978.299,27.78645,1,16,1,29.79613,7.966545,0,0,0,37.76268,0,0,0,1,0,4,73.4,13.8,0,81.8,527.5,722.16,0,0,1.386294,6.582247,0,3.258096,7.654443,1,0,0,81.8,8.850704,1.386294,3.631321,1 +5,2,25,1,2,229311,0,6978.299,28.78645,1,16,1,0,5.992311,0,0,0,5.992311,0,0,0,0,0,4,73.4,13.8,0,81.8,527.5,722.16,0,0,1.386294,6.582247,0,3.258096,7.654443,1,0,0,81.8,8.850704,1.386294,1.790477,1 +5,2,25,1,3,229311,0,6978.299,29.78645,1,16,1,27.7533,11.34802,0,0,843.0176,882.119,1,0,0,2,0,4,73.4,13.8,0,81.8,527.5,722.16,0,0,1.386294,6.582247,0,3.258096,7.654443,1,0,0,81.8,8.850704,1.386294,6.782327,1 +5,2,25,1,1,229312,0,6978.299,27.23066,0,16,1,99.58181,40.1725,0,0,481.1814,620.9357,1,0,0,8,0,4,94,0,0,76.2,527.5,722.16,0,0,1.386294,6.582247,0,3.258096,7.654443,0,0,0,76.2,8.850704,1.386294,6.431228,1 +5,2,25,1,2,229312,0,6978.299,28.23066,0,16,1,62.9505,11.19654,0,0,0,74.14704,0,0,0,4,0,4,94,0,0,76.2,527.5,722.16,0,0,1.386294,6.582247,0,3.258096,7.654443,0,0,0,76.2,8.850704,1.386294,4.30605,1 +5,2,25,1,3,229312,0,6978.299,29.23066,0,16,1,98.78854,1.762115,0,0,0,100.5507,0,0,0,4,0,4,94,0,0,76.2,527.5,722.16,0,0,1.386294,6.582247,0,3.258096,7.654443,0,0,0,76.2,8.850704,1.386294,4.610662,1 +5,2,25,1,1,229313,0,6978.299,3.912389,0,16,1,94.35442,14.30737,0,0,259.0695,367.7313,1,0,0,8,0,4,81.35272,11.84267,0,48.1,527.5,722.16,1,0,1.386294,6.582247,0,3.258096,7.654443,0,0,0,48.1,8.850704,1.386294,5.907352,1 +5,2,25,1,2,229313,0,6978.299,4.912389,0,16,1,72.56127,15.46372,0,0,0,88.02499,0,0,0,7,0,4,81.35272,11.84267,0,48.1,527.5,722.16,1,0,1.386294,6.582247,0,3.258096,7.654443,0,0,0,48.1,8.850704,1.386294,4.477621,1 +5,2,25,1,3,229313,0,6978.299,5.912389,0,16,1,147.2467,39.36123,0,0,245.7489,432.3568,1,0,0,10,0,4,81.35272,11.84267,0,48.1,527.5,722.16,1,0,1.386294,6.582247,0,3.258096,7.654443,0,0,0,48.1,8.850704,1.386294,6.069251,1 +5,2,25,1,1,229314,0,6978.299,.843258,0,16,1,155.2535,23.86304,0,5.227392,0,179.1166,0,0,1,11,0,4,81.35272,11.84267,0,51.9,527.5,722.16,1,0,1.386294,6.582247,0,3.258096,7.654443,0,0,0,51.9,8.850704,1.386294,5.188037,1 +5,2,25,1,2,229314,0,6978.299,1.843258,0,16,1,88.2989,36.21816,0,0,0,124.5171,0,0,0,10,0,4,81.35272,11.84267,0,51.9,527.5,722.16,1,0,1.386294,6.582247,0,3.258096,7.654443,0,0,0,51.9,8.850704,1.386294,4.824443,1 +5,2,25,1,3,229314,0,6978.299,2.843258,0,16,1,151.2996,31.36564,0,0,556.5198,739.185,2,0,0,7,0,4,81.35272,11.84267,0,51.9,527.5,722.16,1,0,1.386294,6.582247,0,3.258096,7.654443,0,0,0,51.9,8.850704,1.386294,6.605548,1 +14,2,95,1,1,229331,0,8818.769,39.96988,0,16,1,7.318348,0,0,0,0,7.318348,0,0,0,1,0,6,78.2,3.4,0,70.5,825.95,532.08,0,0,1.791759,6.276794,0,4.564348,6.767828,1,0,0,70.5,9.084751,1.791759,1.990385,1 +14,2,95,1,2,229331,0,8818.769,40.96988,0,16,1,7.208073,0,0,0,0,7.208073,0,0,0,1,0,6,78.2,3.4,0,70.5,825.95,532.08,0,0,1.791759,6.276794,0,4.564348,6.767828,1,0,0,70.5,9.084751,1.791759,1.975202,1 +14,2,95,1,3,229331,0,8818.769,41.96988,0,16,1,0,0,0,0,0,0,0,0,0,0,0,5,78.2,3.4,0,70.5,825.95,532.08,0,0,1.609438,6.276794,0,4.564348,6.767828,1,0,0,70.5,9.084751,1.609438,,0 +14,2,95,1,1,229332,0,8818.769,13.74401,1,12,1,7.841087,0,0,0,0,7.841087,0,0,0,1,0,6,88.3,11.84267,0,88.9,825.95,532.08,1,1,1.791759,6.276794,0,4.564348,6.767828,1,0,0,88.9,9.084751,1.791759,2.059377,1 +14,2,95,1,2,229332,0,8818.769,14.74401,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,88.3,11.84267,0,88.9,825.95,532.08,1,1,1.791759,6.276794,0,4.564348,6.767828,1,0,0,88.9,9.084751,1.791759,,0 +14,2,95,1,3,229332,0,8818.769,15.74401,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,88.3,11.84267,0,88.9,825.95,532.08,1,1,1.609438,6.276794,0,4.564348,6.767828,1,0,0,88.9,9.084751,1.609438,,0 +14,2,95,1,1,229333,0,8818.769,34.61191,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,80.3,20.7,0,75,825.95,532.08,0,0,1.791759,6.276794,0,4.564348,6.767828,1,0,0,75,9.084751,1.791759,,0 +14,2,95,1,2,229333,0,8818.769,35.61191,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,80.3,20.7,0,75,825.95,532.08,0,0,1.791759,6.276794,0,4.564348,6.767828,1,0,0,75,9.084751,1.791759,,0 +14,2,95,1,3,229333,0,8818.769,36.61191,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,80.3,20.7,0,75,825.95,532.08,0,0,1.609438,6.276794,0,4.564348,6.767828,1,0,0,75,9.084751,1.609438,,0 +14,2,95,1,1,229334,0,8818.769,16.29569,1,12,1,8.75588,0,0,0,0,8.75588,0,0,0,1,0,6,84,3.4,0,72.7,825.95,532.08,1,1,1.791759,6.276794,0,4.564348,6.767828,1,0,0,72.7,9.084751,1.791759,2.169725,1 +14,2,95,1,2,229334,0,8818.769,17.29569,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,84,3.4,0,72.7,825.95,532.08,1,1,1.791759,6.276794,0,4.564348,6.767828,1,0,0,72.7,9.084751,1.791759,,0 +14,2,95,1,1,229335,0,8818.769,10.98973,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,90,11.84267,0,88.9,825.95,532.08,1,0,1.791759,6.276794,0,4.564348,6.767828,1,0,0,88.9,9.084751,1.791759,,0 +14,2,95,1,2,229335,0,8818.769,11.98973,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,90,11.84267,0,88.9,825.95,532.08,1,0,1.791759,6.276794,0,4.564348,6.767828,1,0,0,88.9,9.084751,1.791759,,0 +14,2,95,1,3,229335,0,8818.769,12.98973,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,90,11.84267,0,88.9,825.95,532.08,1,0,1.609438,6.276794,0,4.564348,6.767828,1,0,0,88.9,9.084751,1.609438,,0 +14,2,95,1,1,229336,0,8818.769,15.18686,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,72.3,10.3,0,70.5,825.95,532.08,1,1,1.791759,6.276794,0,4.564348,6.767828,1,0,0,70.5,9.084751,1.791759,,0 +14,2,95,1,2,229336,0,8818.769,16.18686,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,72.3,10.3,0,70.5,825.95,532.08,1,1,1.791759,6.276794,0,4.564348,6.767828,1,0,0,70.5,9.084751,1.791759,,0 +14,2,95,1,3,229336,0,8818.769,17.18686,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,72.3,10.3,0,70.5,825.95,532.08,1,1,1.609438,6.276794,0,4.564348,6.767828,1,0,0,70.5,9.084751,1.609438,,0 +11,2,0,0,1,229342,0,8124.927,23.62491,1,13,1,35.36142,8.008321,36.70827,0,669.8128,749.8908,1,0,0,2,1,2,91,20.7,1,54.5,0,0,0,0,.6931472,0,0,0,0,1,0,0,54.5,9.002815,.6931472,6.619927,1 +11,2,0,0,2,229342,0,8124.927,24.62491,1,13,1,0,4.706163,0,0,0,4.706163,0,0,0,0,0,3,91,20.7,1,54.5,0,0,0,0,1.098612,0,0,0,0,1,0,0,54.5,9.002815,1.098612,1.548873,1 +11,2,0,0,3,229342,0,8124.927,25.62491,1,13,1,0,27.54609,0,0,0,27.54609,0,0,0,0,0,3,91,20.7,1,54.5,0,0,0,0,1.098612,0,0,0,0,1,0,0,54.5,9.002815,1.098612,3.315861,1 +11,2,0,0,4,229342,0,8124.927,26.62491,1,13,1,76.14679,9.018747,0,0,925.5804,1010.746,1,0,0,2,0,3,91,20.7,1,54.5,0,0,0,0,1.098612,0,0,0,0,1,0,0,54.5,9.002815,1.098612,6.918444,1 +11,2,0,0,5,229342,0,8124.927,27.62491,1,13,1,113.9413,21.14213,14.50326,0,1114.13,1263.716,1,0,0,5,1,4,91,20.7,1,54.5,0,0,0,0,1.386294,0,0,0,0,1,0,0,54.5,9.002815,1.386294,7.141812,1 +11,2,0,0,1,229343,0,8124.927,27.51266,0,14,1,26.00104,13.20853,0,0,0,39.20957,0,0,0,4,0,2,79.8,10.3,0,73.9,0,0,0,0,.6931472,0,0,0,0,1,0,0,73.9,9.002815,.6931472,3.668921,1 +11,2,0,0,2,229343,0,8124.927,28.51266,0,14,1,41.61491,0,0,0,0,41.61491,0,0,0,2,0,3,79.8,10.3,0,73.9,0,0,0,0,1.098612,0,0,0,0,1,0,0,73.9,9.002815,1.098612,3.728458,1 +11,2,0,0,3,229343,0,8124.927,29.51266,0,14,1,0,0,0,0,0,0,0,0,0,0,0,3,79.8,10.3,0,73.9,0,0,0,0,1.098612,0,0,0,0,1,0,0,73.9,9.002815,1.098612,,0 +11,2,0,0,4,229343,0,8124.927,30.51266,0,14,1,60.78979,18.23694,0,0,0,79.02673,0,0,0,3,0,3,79.8,10.3,0,73.9,0,0,0,0,1.098612,0,0,0,0,1,0,0,73.9,9.002815,1.098612,4.369786,1 +11,2,0,0,5,229343,0,8124.927,31.51266,0,14,1,61.63887,1.337926,0,0,0,62.9768,0,0,0,4,0,4,79.8,10.3,0,73.9,0,0,0,0,1.386294,0,0,0,0,1,0,0,73.9,9.002815,1.386294,4.142766,1 +11,2,0,1,1,229369,0,6358.944,38.07803,1,10,1,58.02405,18.75065,0,0,111.908,188.6827,1,0,0,3,0,4,78.2,13.8,0,75,0,249.6,0,0,1.386294,5.51986,0,0,0,0,0,0,75,8.757775,1.386294,5.240067,1 +11,2,0,1,2,229369,0,6358.944,39.07803,1,10,1,0,0,0,0,0,0,0,0,0,0,0,3,78.2,13.8,0,75,0,249.6,0,0,1.098612,5.51986,0,0,0,0,0,0,75,8.757775,1.098612,,0 +11,2,0,1,3,229369,0,6358.944,40.07803,1,10,1,7.488987,0,0,0,862.8458,870.3348,1,0,0,1,0,3,78.2,13.8,0,75,0,249.6,0,0,1.098612,5.51986,0,0,0,0,0,0,75,8.757775,1.098612,6.768878,1 +11,2,0,1,1,229370,0,6358.944,11.09103,0,10,1,32.93257,0,0,0,0,32.93257,0,0,0,1,0,4,81.7,11.84267,0,96.3,0,249.6,1,0,1.386294,5.51986,0,0,0,0,0,0,96.3,8.757775,1.386294,3.494462,1 +11,2,0,1,2,229370,0,6358.944,12.09103,0,10,1,0,0,0,0,0,0,0,0,0,0,0,3,81.7,11.84267,0,96.3,0,249.6,1,0,1.098612,5.51986,0,0,0,0,0,0,96.3,8.757775,1.098612,,0 +11,2,0,1,3,229370,0,6358.944,13.09103,0,10,1,0,0,0,0,0,0,0,0,0,0,0,3,81.7,11.84267,0,96.3,0,249.6,1,0,1.098612,5.51986,0,0,0,0,0,0,96.3,8.757775,1.098612,,0 +11,2,0,1,1,229371,0,6358.944,13.40452,0,10,1,139.8066,0,0,0,635.2692,775.0758,1,0,0,8,0,4,80,11.84267,0,96.3,0,249.6,1,0,1.386294,5.51986,0,0,0,1,0,0,96.3,8.757775,1.386294,6.652961,1 +11,2,0,1,2,229371,0,6358.944,14.40452,0,10,1,145.8433,0,0,0,0,145.8433,0,0,0,4,0,3,80,11.84267,0,96.3,0,249.6,1,0,1.098612,5.51986,0,0,0,1,0,0,96.3,8.757775,1.098612,4.982533,1 +11,2,0,1,3,229371,0,6358.944,15.40452,0,10,1,0,0,0,0,0,0,0,0,0,0,0,3,80,11.84267,0,96.3,0,249.6,1,0,1.098612,5.51986,0,0,0,1,0,0,96.3,8.757775,1.098612,,0 +11,2,0,1,1,229372,0,6358.944,17.87817,1,10,1,44.17146,9.492943,32.1955,0,0,85.85991,0,0,0,4,0,4,78.7,10.3,0,62.5,0,249.6,1,1,1.386294,5.51986,0,0,0,1,0,0,62.5,8.757775,1.386294,4.452717,1 +11,2,0,0,1,229373,0,1951.32,45.13621,1,10,1,154.8171,19.62906,33.48789,0,0,207.9341,0,0,0,15,1,1,85.6,6.9,0,77.3,0,0,0,0,0,0,0,0,0,1,0,0,77.3,7.576774,0,5.337221,1 +11,2,0,0,2,229373,0,1951.32,46.13621,1,10,1,21.07008,2.50947,0,0,0,23.57955,0,0,0,2,0,1,85.6,6.9,0,77.3,0,0,0,0,0,0,0,0,0,1,0,0,77.3,7.576774,0,3.16038,1 +11,2,0,0,3,229373,0,1951.32,47.13621,1,10,1,168.4005,30.59385,32.41439,0,0,231.4088,0,0,0,17,1,1,85.6,6.9,0,77.3,0,0,0,0,0,0,0,0,0,1,0,0,77.3,7.576774,0,5.444186,1 +13,2,0,0,1,229390,0,8665.641,57.57153,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,60.1,17.2,1,65.9,450,450,0,0,.6931472,6.109248,1,4.564348,6.160541,1,0,0,65.9,9.067237,.6931472,,0 +13,2,0,0,1,229391,0,8665.641,57.36345,1,12,1,33.09932,19.59958,56.68227,0,0,109.3812,0,0,0,3,0,2,72.3,13.8,0,73.9,450,450,0,0,.6931472,6.109248,1,4.564348,6.160541,0,1,0,73.9,9.067237,.6931472,4.694839,1 +13,2,0,1,1,229396,0,11793.55,22.00137,0,13,1,26.26105,1.74207,0,0,0,28.00312,0,0,0,1,0,2,74.5,3.4,0,88.6,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,88.6,9.375393,.6931472,3.332316,1 +13,2,0,1,2,229396,0,11793.55,23.00137,0,13,1,12.90014,0,0,0,0,12.90014,0,0,0,1,0,2,74.5,3.4,0,88.6,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,88.6,9.375393,.6931472,2.557238,1 +13,2,0,1,3,229396,0,11793.55,24.00137,0,13,1,0,0,0,0,0,0,0,0,0,0,0,2,74.5,3.4,0,88.6,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,88.6,9.375393,.6931472,,0 +13,2,0,1,1,229397,0,11793.55,21.80151,1,13,1,0,10.36922,0,0,0,10.36922,0,0,0,0,0,2,78.7,6.9,0,88.6,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,88.6,9.375393,.6931472,2.338841,1 +13,2,0,1,2,229397,0,11793.55,22.80151,1,13,1,126.1347,8.52365,0,0,0,134.6584,0,0,0,5,0,2,78.7,6.9,0,88.6,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,88.6,9.375393,.6931472,4.902741,1 +13,2,0,1,3,229397,0,11793.55,23.80151,1,13,1,19.0957,0,0,0,0,19.0957,0,0,0,1,0,2,78.7,6.9,0,88.6,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,88.6,9.375393,.6931472,2.949463,1 +13,2,0,1,1,229451,0,10422.29,41.15811,0,16,1,0,0,35.66823,0,0,35.66823,0,0,0,0,0,5,72.3,24.1,0,65.9,450,235.27,0,0,1.609438,5.460734,1,4.564348,6.160541,1,0,0,65.9,9.251798,1.609438,3.57426,1 +13,2,0,1,2,229451,0,10422.29,42.15811,0,16,1,117.6541,4.419494,0,0,0,122.0736,0,0,0,3,0,5,72.3,24.1,0,65.9,450,235.27,0,0,1.609438,5.460734,1,4.564348,6.160541,1,0,0,65.9,9.251798,1.609438,4.804624,1 +13,2,0,1,3,229451,0,10422.29,43.15811,0,16,1,0,0,0,0,0,0,0,0,0,0,0,5,72.3,24.1,0,65.9,450,235.27,0,0,1.609438,5.460734,1,4.564348,6.160541,1,0,0,65.9,9.251798,1.609438,,0 +13,2,0,1,1,229452,0,10422.29,11.04449,1,18,1,67.60271,58.32553,0,0,0,125.9282,0,0,0,5,0,5,63.3,11.84267,0,66.7,450,235.27,1,1,1.609438,5.460734,1,4.564348,6.160541,1,0,0,66.7,9.251798,1.609438,4.835712,1 +13,2,0,1,2,229452,0,10422.29,12.04449,1,18,1,31.0559,72.74725,0,0,0,103.8032,0,0,0,2,0,5,63.3,11.84267,0,66.7,450,235.27,1,1,1.609438,5.460734,1,4.564348,6.160541,1,0,0,66.7,9.251798,1.609438,4.642497,1 +13,2,0,1,3,229452,0,10422.29,13.04449,1,18,1,57.50658,30.10975,0,0,0,87.61633,0,0,0,2,0,5,63.3,11.84267,0,66.7,450,235.27,1,1,1.609438,5.460734,1,4.564348,6.160541,1,0,0,66.7,9.251798,1.609438,4.472968,1 +13,2,0,1,1,229453,0,10422.29,8.84052,0,18,1,94.12376,52.70411,.8580343,0,0,147.6859,0,0,0,8,0,5,41.7,11.84267,0,59.3,450,235.27,1,0,1.609438,5.460734,1,4.564348,6.160541,1,0,0,59.3,9.251798,1.609438,4.995088,1 +13,2,0,1,2,229453,0,10422.29,9.84052,0,18,1,32.48925,41.30435,0,0,0,73.79359,0,0,0,2,0,5,41.7,11.84267,0,59.3,450,235.27,1,0,1.609438,5.460734,1,4.564348,6.160541,1,0,0,59.3,9.251798,1.609438,4.301272,1 +13,2,0,1,3,229453,0,10422.29,10.84052,0,18,1,70.23705,46.55838,0,362.1598,0,116.7954,0,0,18,4,0,5,41.7,11.84267,0,59.3,450,235.27,1,0,1.609438,5.460734,1,4.564348,6.160541,1,0,0,59.3,9.251798,1.609438,4.760424,1 +13,2,0,1,1,229454,0,10422.29,38.96235,1,18,1,182.3713,38.90796,0,0,0,221.2793,0,0,0,5,0,5,56.4,20.7,0,69.3,450,235.27,0,0,1.609438,5.460734,1,4.564348,6.160541,1,0,0,69.3,9.251798,1.609438,5.399426,1 +13,2,0,1,2,229454,0,10422.29,39.96235,1,18,1,0,5.136168,0,0,0,5.136168,0,0,0,0,0,5,56.4,20.7,0,69.3,450,235.27,0,0,1.609438,5.460734,1,4.564348,6.160541,1,0,0,69.3,9.251798,1.609438,1.636307,1 +13,2,0,1,3,229454,0,10422.29,40.96235,1,18,1,104.6971,2.541703,2.080773,0,0,109.3196,0,0,0,4,1,5,56.4,20.7,0,69.3,450,235.27,0,0,1.609438,5.460734,1,4.564348,6.160541,1,0,0,69.3,9.251798,1.609438,4.694275,1 +13,2,0,1,1,229455,0,10422.29,8.117727,1,18,1,97.24389,26.78107,0,0,0,124.025,0,0,0,11,0,5,70,11.84267,0,51.9,450,235.27,1,1,1.609438,5.460734,1,4.564348,6.160541,1,0,0,51.9,9.251798,1.609438,4.820483,1 +13,2,0,1,2,229455,0,10422.29,9.117727,1,18,1,57.33397,12.43192,0,0,0,69.76588,0,0,0,5,0,5,70,11.84267,0,51.9,450,235.27,1,1,1.609438,5.460734,1,4.564348,6.160541,1,0,0,51.9,9.251798,1.609438,4.245145,1 +13,2,0,1,3,229455,0,10422.29,10.11773,1,18,1,119.842,40.96576,.9262511,0,0,161.734,0,0,0,11,0,5,70,11.84267,0,51.9,450,235.27,1,1,1.609438,5.460734,1,4.564348,6.160541,1,0,0,51.9,9.251798,1.609438,5.085953,1 +19,2,25,0,1,229478,1,11017.6,29.07871,0,16,1,0,0,0,0,0,0,0,0,0,0,0,2,83,6.9,0,61.4,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,0,61.4,9.30734,.6931472,,0 +19,2,25,0,2,229478,1,11017.6,30.07871,0,16,1,0,0,0,0,0,0,0,0,0,0,0,2,83,6.9,0,61.4,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,0,61.4,9.30734,.6931472,,0 +19,2,25,0,3,229478,1,11017.6,31.07871,0,16,1,0,0,0,0,0,0,0,0,0,0,0,2,83,6.9,0,61.4,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,0,61.4,9.30734,.6931472,,0 +11,2,0,1,1,229501,0,6168.329,31.5154,0,16,1,83.72335,0,0,0,0,83.72335,0,0,0,2,0,4,85.1,3.4,0,67,0,538.08,0,0,1.386294,6.288007,0,0,0,0,0,0,67,8.727345,1.386294,4.427518,1 +11,2,0,1,2,229501,0,6168.329,32.5154,0,16,1,6.450072,0,0,0,0,6.450072,0,0,0,1,0,4,85.1,3.4,0,67,0,538.08,0,0,1.386294,6.288007,0,0,0,0,0,0,67,8.727345,1.386294,1.864091,1 +11,2,0,1,3,229501,0,6168.329,33.5154,0,16,1,0,5.662862,0,0,0,5.662862,0,0,0,0,0,4,85.1,3.4,0,67,0,538.08,0,0,1.386294,6.288007,0,0,0,0,0,0,67,8.727345,1.386294,1.73393,1 +11,2,0,1,1,229502,0,6168.329,5.546885,0,14,1,68.92876,20.38482,34.07696,0,0,123.3905,0,0,0,8,0,4,93.3,11.84267,0,96.3,0,538.08,1,0,1.386294,6.288007,0,0,0,0,0,0,96.3,8.727345,1.386294,4.815354,1 +11,2,0,1,2,229502,0,6168.329,6.546885,0,14,1,88.9871,15.16961,22.21691,0,0,126.3736,0,0,0,7,0,4,93.3,11.84267,0,96.3,0,538.08,1,0,1.386294,6.288007,0,0,0,0,0,0,96.3,8.727345,1.386294,4.839243,1 +11,2,0,1,3,229502,0,6168.329,7.546885,0,14,1,13.82792,0,28.964,0,0,42.79192,0,0,0,1,0,4,93.3,11.84267,0,96.3,0,538.08,1,0,1.386294,6.288007,0,0,0,0,0,0,96.3,8.727345,1.386294,3.756349,1 +11,2,0,1,1,229503,0,6168.329,2.015058,0,14,1,52.62611,7.982319,0,0,0,60.60843,0,0,0,4,0,4,81.35272,11.84267,0,88.9,0,538.08,1,0,1.386294,6.288007,0,0,0,0,0,0,88.9,8.727345,1.386294,4.104434,1 +11,2,0,1,2,229503,0,6168.329,3.015058,0,14,1,0,2.53225,0,0,0,2.53225,0,0,0,0,0,4,81.35272,11.84267,0,88.9,0,538.08,1,0,1.386294,6.288007,0,0,0,0,0,0,88.9,8.727345,1.386294,.9291084,1 +11,2,0,1,3,229503,0,6168.329,4.015058,0,14,1,0,0,0,0,0,0,0,0,0,0,0,4,81.35272,11.84267,0,88.9,0,538.08,1,0,1.386294,6.288007,0,0,0,0,0,0,88.9,8.727345,1.386294,,0 +11,2,0,1,1,229504,0,6168.329,27.98083,1,14,1,28.91316,1.820073,0,0,0,30.73323,0,0,0,1,0,4,78.2,13.8,0,64.8,0,538.08,0,0,1.386294,6.288007,0,0,0,1,0,0,64.8,8.727345,1.386294,3.425344,1 +11,2,0,1,2,229504,0,6168.329,28.98083,1,14,1,8.361204,4.180602,0,0,0,12.54181,0,0,0,1,0,4,78.2,13.8,0,64.8,0,538.08,0,0,1.386294,6.288007,0,0,0,1,0,0,64.8,8.727345,1.386294,2.529068,1 +11,2,0,1,3,229504,0,6168.329,29.98083,1,14,1,45.43459,6.826163,0,0,0,52.26075,0,0,0,2,0,4,78.2,13.8,0,64.8,0,538.08,0,0,1.386294,6.288007,0,0,0,1,0,0,64.8,8.727345,1.386294,3.956246,1 +17,2,25,1,1,229525,0,8954.252,53.83984,1,16,1,27.96655,26.04286,0,0,0,54.00941,0,0,0,2,0,2,81.9,10.3,0,84.1,1000,520,0,0,.6931472,6.253829,0,3.258096,8.294049,1,0,0,84.1,9.099996,.6931472,3.989158,1 +17,2,25,1,2,229525,0,8954.252,54.83984,1,16,1,0,16.14128,0,0,0,16.14128,0,0,0,0,0,2,81.9,10.3,0,84.1,1000,520,0,0,.6931472,6.253829,0,3.258096,8.294049,1,0,0,84.1,9.099996,.6931472,2.78138,1 +17,2,25,1,3,229525,0,8954.252,55.83984,1,16,1,54.18502,22.55066,0,0,0,76.73568,0,0,0,3,0,2,81.9,10.3,0,84.1,1000,520,0,0,.6931472,6.253829,0,3.258096,8.294049,1,0,0,84.1,9.099996,.6931472,4.340367,1 +17,2,25,1,4,229525,0,8954.252,56.83984,1,16,1,20.96774,12.53629,0,0,0,33.50403,0,0,0,1,0,2,81.9,10.3,0,84.1,1000,520,0,0,.6931472,6.253829,0,3.258096,8.294049,1,0,0,84.1,9.099996,.6931472,3.511666,1 +17,2,25,1,5,229525,0,8954.252,57.83984,1,16,1,0,4.728598,0,0,0,4.728598,0,0,0,0,0,2,81.9,10.3,0,84.1,1000,520,0,0,.6931472,6.253829,0,3.258096,8.294049,1,0,0,84.1,9.099996,.6931472,1.553629,1 +17,2,25,1,1,229526,0,8954.252,50.86927,0,15,1,13.06848,0,26.75902,0,0,39.8275,0,0,0,0,1,2,79.3,0,0,100,1000,520,0,0,.6931472,6.253829,0,3.258096,8.294049,1,0,0,100,9.099996,.6931472,3.684557,1 +17,2,25,1,2,229526,0,8954.252,51.86927,0,15,1,116.2902,0,0,0,0,116.2902,0,0,0,5,0,2,79.3,0,0,100,1000,520,0,0,.6931472,6.253829,0,3.258096,8.294049,1,0,0,100,9.099996,.6931472,4.756089,1 +17,2,25,1,3,229526,0,8954.252,52.86927,0,15,1,0,0,35.14537,0,0,35.14537,0,0,0,0,0,2,79.3,0,0,100,1000,520,0,0,.6931472,6.253829,0,3.258096,8.294049,1,0,0,100,9.099996,.6931472,3.559493,1 +17,2,25,1,4,229526,0,8954.252,53.86927,0,15,1,19.35484,2.298387,0,0,0,21.65322,0,0,0,1,0,2,79.3,0,0,100,1000,520,0,0,.6931472,6.253829,0,3.258096,8.294049,1,0,0,100,9.099996,.6931472,3.075154,1 +17,2,25,1,5,229526,0,8954.252,54.86927,0,15,1,0,0,9.205829,0,0,9.205829,0,0,0,0,0,2,79.3,0,0,100,1000,520,0,0,.6931472,6.253829,0,3.258096,8.294049,1,0,0,100,9.099996,.6931472,2.219837,1 +11,2,0,1,1,229617,0,7644.575,35.1102,0,16,1,124.7778,3.894407,7.543126,0,737.4543,873.6696,1,0,0,6,1,3,56.4,24.1,1,40.9,0,318,0,0,1.098612,5.762052,0,0,0,0,1,0,40.9,8.941882,1.098612,6.772702,1 +11,2,0,1,2,229617,0,7644.575,36.1102,0,16,1,103.0754,4.584334,11.06199,0,0,118.7218,0,0,0,2,5,3,56.4,24.1,1,40.9,0,318,0,0,1.098612,5.762052,0,0,0,0,1,0,40.9,8.941882,1.098612,4.776783,1 +11,2,0,1,3,229617,0,7644.575,37.1102,0,16,1,140.0881,4.885463,20.27753,0,0,165.2511,0,0,0,3,5,3,56.4,24.1,1,40.9,0,318,0,0,1.098612,5.762052,0,0,0,0,1,0,40.9,8.941882,1.098612,5.107466,1 +11,2,0,1,1,229618,0,7644.575,9.776865,0,16,1,10.45478,0,28.22791,0,0,38.6827,0,0,0,0,1,3,86.7,11.84267,0,86.4,0,318,1,0,1.098612,5.762052,0,0,0,0,0,0,86.4,8.941882,1.098612,3.655392,1 +11,2,0,1,2,229618,0,7644.575,10.77687,0,16,1,0,0,0,0,0,0,0,0,0,0,0,3,86.7,11.84267,0,86.4,0,318,1,0,1.098612,5.762052,0,0,0,0,0,0,86.4,8.941882,1.098612,,0 +11,2,0,1,3,229618,0,7644.575,11.77687,0,16,1,0,0,0,0,0,0,0,0,0,0,0,3,86.7,11.84267,0,86.4,0,318,1,0,1.098612,5.762052,0,0,0,0,0,0,86.4,8.941882,1.098612,,0 +11,2,0,1,1,229619,0,7644.575,8.303902,1,16,1,0,0,0,0,0,0,0,0,0,0,0,3,86.7,11.84267,0,59.3,0,318,1,1,1.098612,5.762052,0,0,0,0,0,0,59.3,8.941882,1.098612,,0 +11,2,0,1,2,229619,0,7644.575,9.303902,1,16,1,0,0,0,0,0,0,0,0,0,0,0,3,86.7,11.84267,0,59.3,0,318,1,1,1.098612,5.762052,0,0,0,0,0,0,59.3,8.941882,1.098612,,0 +11,2,0,1,3,229619,0,7644.575,10.3039,1,16,1,0,0,0,0,0,0,0,0,0,0,0,3,86.7,11.84267,0,59.3,0,318,1,1,1.098612,5.762052,0,0,0,0,0,0,59.3,8.941882,1.098612,,0 +11,2,0,0,1,229620,0,568.915,38.70226,1,13,1,47.04652,25.77104,28.75065,0,0,101.5682,0,0,0,3,1,2,74.29414,11.84267,.1981873,,0,216,0,0,.6931472,5.375278,0,0,0,1,0,0,71.31672,6.345487,.6931472,4.62073,1 +11,2,0,0,2,229620,0,568.915,39.70226,1,13,1,171.8164,16.79,0,0,0,188.6064,0,0,0,4,0,2,74.29414,11.84267,.1981873,,0,216,0,0,.6931472,5.375278,0,0,0,1,0,0,71.31672,6.345487,.6931472,5.239663,1 +11,2,0,0,3,229620,0,568.915,40.70226,1,13,1,136.5639,3.784141,0,0,0,140.348,0,0,0,0,16,2,74.29414,11.84267,.1981873,,0,216,0,0,.6931472,5.375278,0,0,0,1,0,0,71.31672,6.345487,.6931472,4.944125,1 +11,2,0,0,1,229621,0,568.915,18.20945,1,11,1,88.99634,15.46262,0,0,0,104.459,0,0,0,6,2,2,74.29414,11.84267,.1981873,,0,216,0,0,.6931472,5.375278,0,0,0,0,1,0,71.31672,6.345487,.6931472,4.648794,1 +11,2,0,0,2,229621,0,568.915,19.20945,1,11,1,57.03989,37.89044,0,0,0,94.93032,0,0,0,6,0,2,74.29414,11.84267,.1981873,,0,216,0,0,.6931472,5.375278,0,0,0,0,1,0,71.31672,6.345487,.6931472,4.553143,1 +11,2,0,0,3,229621,0,568.915,20.20945,1,11,1,32.81938,20.79295,0,0,0,53.61234,0,0,0,1,1,2,74.29414,11.84267,.1981873,,0,216,0,0,.6931472,5.375278,0,0,0,0,1,0,71.31672,6.345487,.6931472,3.981779,1 +11,2,0,1,1,229691,0,6920.234,22.24778,1,12,1,72.52515,0,0,0,0,72.52515,0,0,0,2,1,3,68.6,3.4,0,73.9,0,325.68,0,0,1.098612,5.785915,0,0,0,1,0,0,73.9,8.842349,1.098612,4.283933,1 +11,2,0,1,2,229691,0,6920.234,23.24778,1,12,1,93.62934,35.94595,0,0,571.1149,700.6901,1,0,0,2,0,3,68.6,3.4,0,73.9,0,325.68,0,0,1.098612,5.785915,0,0,0,1,0,0,73.9,8.842349,1.098612,6.552066,1 +11,2,0,1,3,229691,0,6920.234,24.24778,1,12,1,49.3992,3.119715,0,0,0,52.51891,0,0,0,2,0,4,68.6,3.4,0,73.9,0,325.68,0,0,1.386294,5.785915,0,0,0,1,0,0,73.9,8.842349,1.386294,3.961173,1 +11,2,0,1,4,229691,0,6920.234,25.24778,1,12,1,120.9841,47.87312,0,0,0,168.8573,0,0,0,7,0,4,68.6,3.4,0,73.9,0,325.68,0,0,1.386294,5.785915,0,0,0,1,0,0,73.9,8.842349,1.386294,5.129054,1 +11,2,0,1,5,229691,0,6920.234,26.24778,1,12,1,187.2251,32.13343,0,0,880.5499,1099.908,1,0,0,5,0,4,68.6,3.4,0,73.9,0,325.68,0,0,1.386294,5.785915,0,0,0,1,0,0,73.9,8.842349,1.386294,7.002982,1 +11,2,0,1,1,229692,0,6920.234,20.28474,0,12,1,18.52832,0,0,0,0,18.52832,0,0,0,1,0,3,74.5,3.4,0,68.2,0,325.68,0,0,1.098612,5.785915,0,0,0,1,0,0,68.2,8.842349,1.098612,2.919301,1 +11,2,0,1,2,229692,0,6920.234,21.28474,0,12,1,19.30502,.719112,0,0,0,20.02413,0,0,0,2,0,3,74.5,3.4,0,68.2,0,325.68,0,0,1.098612,5.785915,0,0,0,1,0,0,68.2,8.842349,1.098612,2.996938,1 +11,2,0,1,3,229692,0,6920.234,22.28474,0,12,1,0,2.447708,0,0,0,2.447708,0,0,0,0,0,4,74.5,3.4,0,68.2,0,325.68,0,0,1.386294,5.785915,0,0,0,1,0,0,68.2,8.842349,1.386294,.8951522,1 +11,2,0,1,4,229692,0,6920.234,23.28474,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,74.5,3.4,0,68.2,0,325.68,0,0,1.386294,5.785915,0,0,0,1,0,0,68.2,8.842349,1.386294,,0 +11,2,0,1,5,229692,0,6920.234,24.28474,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,74.5,3.4,0,68.2,0,325.68,0,0,1.386294,5.785915,0,0,0,1,0,0,68.2,8.842349,1.386294,,0 +11,2,0,0,1,229696,0,11503.81,25.00205,0,12,1,62.54508,0,30.70067,0,0,93.24575,0,0,0,1,1,4,76.6,6.9,0,80.7,0,364.26,0,0,1.386294,5.897868,0,0,0,1,0,0,80.7,9.350521,1.386294,4.535238,1 +11,2,0,0,2,229696,0,11503.81,26.00205,0,12,1,69.36553,0,13.73106,0,0,83.09659,0,0,0,5,1,4,76.6,6.9,0,80.7,0,364.26,0,0,1.386294,5.897868,0,0,0,1,0,0,80.7,9.350521,1.386294,4.420003,1 +11,2,0,0,3,229696,0,11503.81,27.00205,0,12,1,166.4066,11.00564,34.43,0,0,211.8422,0,0,0,8,1,4,76.6,6.9,0,80.7,0,364.26,0,0,1.386294,5.897868,0,0,0,1,0,0,80.7,9.350521,1.386294,5.355842,1 +11,2,0,0,1,229697,0,11503.81,7.321013,0,11,1,39.97939,5.435343,0,0,275.3735,320.7882,1,0,0,4,0,4,58.3,11.84267,0,63,0,364.26,1,0,1.386294,5.897868,0,0,0,1,0,0,63,9.350521,1.386294,5.770781,1 +11,2,0,0,2,229697,0,11503.81,8.321013,0,11,1,12.26326,2.249053,0,0,0,14.51231,0,0,0,1,0,4,58.3,11.84267,0,63,0,364.26,1,0,1.386294,5.897868,0,0,0,1,0,0,63,9.350521,1.386294,2.674997,1 +11,2,0,0,3,229697,0,11503.81,9.321013,0,11,1,41.6775,0,0,0,0,41.6775,0,0,0,2,0,4,58.3,11.84267,0,63,0,364.26,1,0,1.386294,5.897868,0,0,0,1,0,0,63,9.350521,1.386294,3.729961,1 +11,2,0,0,1,229698,0,11503.81,4.145106,1,11,1,145.7238,22.65842,0,0,0,168.3823,0,0,0,11,0,4,81.35272,11.84267,0,70.4,0,364.26,1,1,1.386294,5.897868,0,0,0,1,0,0,70.4,9.350521,1.386294,5.126237,1 +11,2,0,0,2,229698,0,11503.81,5.145106,1,11,1,37.21591,5.326705,0,0,0,42.54261,0,0,0,3,0,4,81.35272,11.84267,0,70.4,0,364.26,1,1,1.386294,5.897868,0,0,0,1,0,0,70.4,9.350521,1.386294,3.750506,1 +11,2,0,0,3,229698,0,11503.81,6.145106,1,11,1,42.52276,1.647161,0,0,0,44.16992,0,0,0,3,0,4,81.35272,11.84267,0,70.4,0,364.26,1,1,1.386294,5.897868,0,0,0,1,0,0,70.4,9.350521,1.386294,3.788044,1 +11,2,0,0,1,229699,0,11503.81,26.00137,1,11,1,166.4451,5.255023,0,0,0,171.7001,0,0,0,6,5,4,77.6,3.4,0,81.8,0,364.26,0,0,1.386294,5.897868,0,0,0,1,0,0,81.8,9.350521,1.386294,5.14575,1 +11,2,0,0,2,229699,0,11503.81,27.00137,1,11,1,31.53409,0,0,0,0,31.53409,0,0,0,2,0,4,77.6,3.4,0,81.8,0,364.26,0,0,1.386294,5.897868,0,0,0,1,0,0,81.8,9.350521,1.386294,3.451069,1 +11,2,0,0,3,229699,0,11503.81,28.00137,1,11,1,0,0,0,0,0,0,0,0,0,0,0,4,77.6,3.4,0,81.8,0,364.26,0,0,1.386294,5.897868,0,0,0,1,0,0,81.8,9.350521,1.386294,,0 +11,2,0,0,1,229769,0,13434.02,54.31896,1,12,1,41.60167,87.2907,40.82683,0,0,169.7192,0,0,0,8,0,2,88.3,6.9,0,53.4,0,514.54,0,0,.6931472,6.243273,0,0,0,1,0,0,53.4,9.50562,.6931472,5.134145,1 +11,2,0,0,2,229769,0,13434.02,55.31896,1,12,1,70.23412,63.78882,34.16149,0,0,168.1844,0,0,0,4,0,2,88.3,6.9,0,53.4,0,514.54,0,0,.6931472,6.243273,0,0,0,1,0,0,53.4,9.50562,.6931472,5.125061,1 +11,2,0,0,3,229769,0,13434.02,56.31896,1,12,1,24.14399,52.41001,42.16418,0,0,118.7182,0,0,0,2,0,2,88.3,6.9,0,53.4,0,514.54,0,0,.6931472,6.243273,0,0,0,1,0,0,53.4,9.50562,.6931472,4.776752,1 +11,2,0,0,1,229770,0,13434.02,55.0089,0,14,1,122.3349,53.81695,75.59542,0,0,251.7473,0,0,0,10,0,2,93.6,10.3,0,80.7,0,514.54,0,0,.6931472,6.243273,0,0,0,1,0,0,80.7,9.50562,.6931472,5.528426,1 +11,2,0,0,2,229770,0,13434.02,56.0089,0,14,1,189.9666,57.0043,39.45533,0,0,286.4262,0,0,0,10,0,2,93.6,10.3,0,80.7,0,514.54,0,0,.6931472,6.243273,0,0,0,1,0,0,80.7,9.50562,.6931472,5.657481,1 +11,2,0,0,3,229770,0,13434.02,57.0089,0,14,1,79.12643,49.62687,66.71642,0,0,195.4697,0,0,0,4,0,2,93.6,10.3,0,80.7,0,514.54,0,0,.6931472,6.243273,0,0,0,1,0,0,80.7,9.50562,.6931472,5.275405,1 +11,2,0,1,1,229771,0,7369.501,48.01917,1,12,1,83.89964,29.03293,46.3356,0,0,159.2682,0,0,0,6,0,4,80.9,20.7,1,76.1,0,607.2,0,0,1.386294,6.408858,0,0,0,1,0,0,76.1,8.905241,1.386294,5.07059,1 +11,2,0,1,2,229771,0,7369.501,49.01917,1,12,1,71.60019,29.15425,0,0,0,100.7544,0,0,0,3,0,4,80.9,20.7,1,76.1,0,607.2,0,0,1.386294,6.408858,0,0,0,1,0,0,76.1,8.905241,1.386294,4.612686,1 +11,2,0,1,3,229771,0,7369.501,50.01917,1,12,1,94.49339,48.87225,44.44934,0,0,187.815,0,0,0,5,0,4,80.9,20.7,1,76.1,0,607.2,0,0,1.386294,6.408858,0,0,0,1,0,0,76.1,8.905241,1.386294,5.235457,1 +11,2,0,1,4,229771,0,7369.501,51.01917,1,12,1,24.79839,34.58468,0,0,0,59.38306,0,0,0,3,0,4,80.9,20.7,1,76.1,0,607.2,0,0,1.386294,6.408858,0,0,0,1,0,0,76.1,8.905241,1.386294,4.084009,1 +11,2,0,1,5,229771,0,7369.501,52.01917,1,12,1,40.25501,42.72495,32.60474,0,0,115.5847,0,0,0,3,0,4,80.9,20.7,1,76.1,0,607.2,0,0,1.386294,6.408858,0,0,0,1,0,0,76.1,8.905241,1.386294,4.750004,1 +11,2,0,1,1,229772,0,7369.501,50.09993,0,12,1,6.27287,0,0,0,0,6.27287,0,0,0,1,0,4,76.6,17.2,1,37.5,0,607.2,0,0,1.386294,6.408858,0,0,0,0,1,0,37.5,8.905241,1.386294,1.836234,1 +11,2,0,1,2,229772,0,7369.501,51.09993,0,12,1,117.2513,1.672273,46.15089,0,0,165.0745,0,0,0,2,6,4,76.6,17.2,1,37.5,0,607.2,0,0,1.386294,6.408858,0,0,0,0,1,0,37.5,8.905241,1.386294,5.106397,1 +11,2,0,1,3,229772,0,7369.501,52.09993,0,12,1,37.88546,0,0,0,0,37.88546,0,0,0,1,3,4,76.6,17.2,1,37.5,0,607.2,0,0,1.386294,6.408858,0,0,0,0,1,0,37.5,8.905241,1.386294,3.634567,1 +11,2,0,1,4,229772,0,7369.501,53.09993,0,12,1,547.0161,99.50404,0,0,0,646.5201,0,0,0,8,8,4,76.6,17.2,1,37.5,0,607.2,0,0,1.386294,6.408858,0,0,0,0,1,0,37.5,8.905241,1.386294,6.471604,1 +11,2,0,1,5,229772,0,7369.501,54.09993,0,12,1,210.1275,88.94717,24.33516,0,0,323.4099,0,0,0,4,5,4,76.6,17.2,1,37.5,0,607.2,0,0,1.386294,6.408858,0,0,0,0,1,0,37.5,8.905241,1.386294,5.77892,1 +11,2,0,1,1,229773,0,7369.501,10.38741,1,12,1,14.11396,0,0,0,0,14.11396,0,0,0,2,0,4,86.7,11.84267,0,100,0,607.2,1,1,1.386294,6.408858,0,0,0,0,0,0,100,8.905241,1.386294,2.647164,1 +11,2,0,1,2,229773,0,7369.501,11.38741,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,86.7,11.84267,0,100,0,607.2,1,1,1.386294,6.408858,0,0,0,0,0,0,100,8.905241,1.386294,,0 +11,2,0,1,3,229773,0,7369.501,12.38741,1,12,1,25.11013,2.035242,0,0,0,27.14537,0,0,0,3,0,4,86.7,11.84267,0,100,0,607.2,1,1,1.386294,6.408858,0,0,0,0,0,0,100,8.905241,1.386294,3.301207,1 +11,2,0,1,4,229773,0,7369.501,13.38741,1,12,1,15.12097,9.008064,0,0,0,24.12903,0,0,0,2,0,4,86.7,11.84267,0,100,0,607.2,1,1,1.386294,6.408858,0,0,0,0,0,0,100,8.905241,1.386294,3.183416,1 +11,2,0,1,5,229773,0,7369.501,14.38741,1,12,1,59.01639,12.28415,0,0,0,71.30054,0,0,0,6,0,4,86.7,11.84267,0,100,0,607.2,1,1,1.386294,6.408858,0,0,0,0,0,0,100,8.905241,1.386294,4.266904,1 +11,2,0,1,1,229774,0,7369.501,12.26831,0,12,1,10.45478,0,0,0,0,10.45478,0,0,0,1,0,4,83.3,11.84267,0,88.9,0,607.2,1,0,1.386294,6.408858,0,0,0,0,0,0,88.9,8.905241,1.386294,2.34706,1 +11,2,0,1,2,229774,0,7369.501,13.26831,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,83.3,11.84267,0,88.9,0,607.2,1,0,1.386294,6.408858,0,0,0,0,0,0,88.9,8.905241,1.386294,,0 +11,2,0,1,3,229774,0,7369.501,14.26831,0,12,1,6.60793,0,26.51982,0,0,33.12775,0,0,0,1,0,4,83.3,11.84267,0,88.9,0,607.2,1,0,1.386294,6.408858,0,0,0,0,0,0,88.9,8.905241,1.386294,3.500371,1 +11,2,0,1,4,229774,0,7369.501,15.26831,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,83.3,11.84267,0,88.9,0,607.2,1,0,1.386294,6.408858,0,0,0,0,0,0,88.9,8.905241,1.386294,,0 +11,2,0,1,5,229774,0,7369.501,16.26831,0,12,1,16.39344,0,0,0,0,16.39344,0,0,0,1,0,4,83.3,11.84267,0,88.9,0,607.2,1,0,1.386294,6.408858,0,0,0,0,0,0,88.9,8.905241,1.386294,2.796881,1 +13,2,0,1,1,229799,0,19802.93,1.451061,0,14,1,67.21269,18.44514,0,0,0,85.65783,0,0,0,9,0,4,81.35272,11.84267,1,66.7,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,66.7,9.893636,1.386294,4.450361,1 +13,2,0,1,2,229799,0,19802.93,2.451061,0,14,1,273.8892,14.2666,0,0,307.6684,595.8242,1,0,0,11,31,4,81.35272,11.84267,1,66.7,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,66.7,9.893636,1.386294,6.389946,1 +13,2,0,1,3,229799,0,19802.93,3.451061,0,14,1,565.8472,49.06058,0,0,0,614.9078,0,0,0,14,70,4,81.35272,11.84267,1,66.7,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,66.7,9.893636,1.386294,6.421473,1 +13,2,0,1,1,229800,0,19802.93,3.175907,1,14,1,121.8149,147.9043,32.19449,0,0,301.9137,0,0,0,14,0,4,81.35272,11.84267,0,66.7,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,66.7,9.893636,1.386294,5.710141,1 +13,2,0,1,2,229800,0,19802.93,4.175907,1,14,1,65.45628,77.77831,0,0,0,143.2346,0,0,0,8,0,4,81.35272,11.84267,0,66.7,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,66.7,9.893636,1.386294,4.964484,1 +13,2,0,1,3,229800,0,19802.93,5.175907,1,14,1,517.5593,83.55136,30.61018,0,0,631.7208,0,0,0,17,0,4,81.35272,11.84267,0,66.7,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,66.7,9.893636,1.386294,6.448448,1 +13,2,0,1,1,229801,0,19802.93,31.14031,1,14,1,29.38118,13.46334,0,0,0,42.84451,0,0,0,1,1,4,73.2,17.2,0,68.2,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,68.2,9.893636,1.386294,3.757578,1 +13,2,0,1,2,229801,0,19802.93,32.14032,1,14,1,75.48973,81.11324,0,0,206.2112,362.8141,1,0,0,5,0,4,73.2,17.2,0,68.2,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,68.2,9.893636,1.386294,5.893891,1 +13,2,0,1,3,229801,0,19802.93,33.14032,1,14,1,31.71642,21.30816,0,0,0,53.02458,0,0,0,2,0,4,73.2,17.2,0,68.2,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,68.2,9.893636,1.386294,3.970756,1 +13,2,0,1,1,229802,0,19802.93,32.65435,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,76.6,3.4,0,89.8,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,89.8,9.893636,1.386294,,0 +13,2,0,1,2,229802,0,19802.93,33.65435,0,16,1,40.37267,12.12136,34.73483,0,0,87.22886,0,0,0,3,0,4,76.6,3.4,0,89.8,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,89.8,9.893636,1.386294,4.468535,1 +13,2,0,1,3,229802,0,19802.93,34.65435,0,16,1,35.27217,41.47937,26.03161,0,0,102.7831,0,0,0,3,0,4,76.6,3.4,0,89.8,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,89.8,9.893636,1.386294,4.632621,1 +16,2,95,0,1,229812,0,10601.75,53.90007,0,14,1,8.243174,2.189593,0,0,0,10.43277,0,0,0,1,0,1,93.1,13.8,0,71.6,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,1,0,0,71.6,9.268869,0,2.344952,1 +16,2,95,0,2,229812,0,10601.75,54.90007,0,14,1,0,0,0,0,0,0,0,0,0,0,0,1,93.1,13.8,0,71.6,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,1,0,0,71.6,9.268869,0,,0 +16,2,95,0,3,229812,0,10601.75,55.90007,0,14,1,0,0,0,0,0,0,0,0,0,0,0,1,93.1,13.8,0,71.6,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,1,0,0,71.6,9.268869,0,,0 +16,2,95,0,4,229812,0,10601.75,56.90007,0,14,1,0,0,0,0,0,0,0,0,0,0,0,1,93.1,13.8,0,71.6,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,1,0,0,71.6,9.268869,0,,0 +16,2,95,0,5,229812,0,10601.75,57.90007,0,14,1,0,0,0,0,0,0,0,0,0,0,0,1,93.1,13.8,0,71.6,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,1,0,0,71.6,9.268869,0,,0 +6,2,25,0,1,229823,0,5543.108,27.29637,0,16,1,0,0,0,0,0,0,0,0,0,0,0,1,58,3.4,0,64.8,715.9,715.9,0,0,0,6.573541,0,3.258096,7.959835,1,0,0,64.8,8.620491,0,,0 +6,2,25,0,2,229823,0,5543.108,28.29637,0,16,1,35.35595,0,0,0,0,35.35595,0,0,0,3,1,1,58,3.4,0,64.8,715.9,715.9,0,0,0,6.573541,0,3.258096,7.959835,1,0,0,64.8,8.620491,0,3.565467,1 +6,2,25,0,3,229823,0,5543.108,29.29637,0,16,1,5.267779,0,0,0,0,5.267779,0,0,0,1,0,1,58,3.4,0,64.8,715.9,715.9,0,0,0,6.573541,0,3.258096,7.959835,1,0,0,64.8,8.620491,0,1.661609,1 +11,2,0,0,1,229826,0,17655.13,16.07666,0,10,1,12.4805,6.432657,0,0,0,18.91316,0,0,0,2,0,5,68.8,0,0,61.4,0,336.24,1,0,1.609438,5.817825,0,0,0,1,0,0,61.4,9.778838,1.609438,2.939858,1 +11,2,0,0,2,229826,0,17655.13,17.07666,0,10,1,61.63402,40.57334,0,0,0,102.2074,0,0,0,4,0,5,68.8,0,0,61.4,0,336.24,1,0,1.609438,5.817825,0,0,0,1,0,0,61.4,9.778838,1.609438,4.627004,1 +11,2,0,0,3,229826,0,17655.13,18.07666,0,10,1,61.8964,25.39508,0,0,0,87.29148,0,0,0,6,0,4,68.8,0,0,61.4,0,336.24,0,0,1.386294,5.817825,0,0,0,1,0,0,61.4,9.778838,1.386294,4.469253,1 +11,2,0,0,1,229827,0,17655.13,38.17112,1,10,1,87.6235,45.24181,33.79615,0,0,166.6615,0,0,0,10,0,5,80.3,27.6,0,65.9,0,336.24,0,0,1.609438,5.817825,0,0,0,1,0,0,65.9,9.778838,1.609438,5.115964,1 +11,2,0,0,2,229827,0,17655.13,39.17112,1,10,1,49.68944,33.41615,0,0,0,83.10559,0,0,0,8,0,5,80.3,27.6,0,65.9,0,336.24,0,0,1.609438,5.817825,0,0,0,1,0,0,65.9,9.778838,1.609438,4.420112,1 +11,2,0,0,3,229827,0,17655.13,40.17112,1,10,1,91.19842,93.3626,0,0,0,184.561,0,0,0,5,0,4,80.3,27.6,0,65.9,0,336.24,0,0,1.386294,5.817825,0,0,0,1,0,0,65.9,9.778838,1.386294,5.21798,1 +11,2,0,0,1,229828,0,17655.13,18.16564,0,11,1,65.0026,25.28861,0,0,0,90.29121,0,0,0,9,0,5,78.2,6.9,0,81.8,0,336.24,0,0,1.609438,5.817825,0,0,0,0,0,0,81.8,9.778838,1.609438,4.50304,1 +11,2,0,0,2,229828,0,17655.13,19.16564,0,11,1,26.75585,9.818442,0,0,0,36.5743,0,0,0,2,0,5,78.2,6.9,0,81.8,0,336.24,0,0,1.609438,5.817825,0,0,0,0,0,0,81.8,9.778838,1.609438,3.599346,1 +11,2,0,0,3,229828,0,17655.13,20.16564,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,78.2,6.9,0,81.8,0,336.24,0,0,1.386294,5.817825,0,0,0,0,0,0,81.8,9.778838,1.386294,,0 +11,2,0,0,1,229829,0,17655.13,19.54552,1,12,1,121.6849,41.99688,0,0,0,163.6817,0,0,0,9,0,5,73.4,3.4,0,62.5,0,336.24,0,0,1.609438,5.817825,0,0,0,0,0,0,62.5,9.778838,1.609438,5.097924,1 +11,2,0,0,2,229829,0,17655.13,20.54552,1,12,1,118.7291,31.23746,0,0,0,149.9666,0,0,0,11,0,5,73.4,3.4,0,62.5,0,336.24,0,0,1.609438,5.817825,0,0,0,0,0,0,62.5,9.778838,1.609438,5.010412,1 +11,2,0,0,1,229830,0,17655.13,30.0616,0,12,1,60.84243,0,0,0,0,60.84243,0,0,0,4,0,5,80.3,10.3,0,64.8,0,336.24,0,0,1.609438,5.817825,0,0,0,1,0,0,64.8,9.778838,1.609438,4.108287,1 +11,2,0,0,2,229830,0,17655.13,31.0616,0,12,1,14.33349,9.268991,0,0,0,23.60248,0,0,0,2,0,5,80.3,10.3,0,64.8,0,336.24,0,0,1.609438,5.817825,0,0,0,1,0,0,64.8,9.778838,1.609438,3.161352,1 +11,2,0,0,3,229830,0,17655.13,32.0616,0,12,1,9.657595,0,0,0,0,9.657595,0,0,0,1,0,4,80.3,10.3,0,64.8,0,336.24,0,0,1.386294,5.817825,0,0,0,1,0,0,64.8,9.778838,1.386294,2.267745,1 +11,2,0,0,1,229833,0,11348.97,3.381246,1,16,1,20.80083,3.884555,0,0,0,24.68539,0,0,0,3,0,5,81.35272,11.84267,0,70.4,0,0,1,1,1.609438,0,0,0,0,0,0,0,70.4,9.33697,1.609438,3.206211,1 +11,2,0,0,2,229833,0,11348.97,4.381246,1,16,1,38.70043,5.475394,0,0,0,44.17582,0,0,0,5,0,5,81.35272,11.84267,0,70.4,0,0,1,1,1.609438,0,0,0,0,0,0,0,70.4,9.33697,1.609438,3.788178,1 +11,2,0,0,3,229833,0,11348.97,5.381246,1,16,1,13.16945,0,0,0,0,13.16945,0,0,0,2,0,5,81.35272,11.84267,0,70.4,0,0,1,1,1.609438,0,0,0,0,0,0,0,70.4,9.33697,1.609438,2.577899,1 +11,2,0,0,1,229834,0,11348.97,33.05133,1,16,1,40.0416,13.48414,21.84087,0,1760.208,1835.575,2,0,0,2,2,5,77.7,10.3,0,73.9,0,0,0,0,1.609438,0,0,0,0,0,0,0,73.9,9.33697,1.609438,7.515113,1 +11,2,0,0,2,229834,0,11348.97,34.05133,1,16,1,102.2456,21.47635,0,0,0,123.7219,0,0,0,9,0,5,77.7,10.3,0,73.9,0,0,0,0,1.609438,0,0,0,0,0,0,0,73.9,9.33697,1.609438,4.818037,1 +11,2,0,0,3,229834,0,11348.97,35.05133,1,16,1,65.84724,0,17.55926,0,0,83.40649,0,0,0,3,1,5,77.7,10.3,0,73.9,0,0,0,0,1.609438,0,0,0,0,0,0,0,73.9,9.33697,1.609438,4.423726,1 +11,2,0,0,1,229835,0,11348.97,34.03422,0,16,1,15.60062,0,39.00156,0,0,54.60218,0,0,0,0,1,5,89.9,3.4,0,60.7,0,0,0,0,1.609438,0,0,0,0,0,0,0,60.7,9.33697,1.609438,4.000074,1 +11,2,0,0,2,229835,0,11348.97,35.03422,0,16,1,0,0,0,0,0,0,0,0,0,0,0,5,89.9,3.4,0,60.7,0,0,0,0,1.609438,0,0,0,0,0,0,0,60.7,9.33697,1.609438,,0 +11,2,0,0,3,229835,0,11348.97,36.03422,0,16,1,8.779632,0,26.77788,0,0,35.55751,0,0,0,0,1,5,89.9,3.4,0,60.7,0,0,0,0,1.609438,0,0,0,0,0,0,0,60.7,9.33697,1.609438,3.571151,1 +11,2,0,0,1,229836,0,11348.97,9.38809,1,16,1,0,0,0,0,0,0,0,0,0,0,0,5,78.3,11.84267,0,81.5,0,0,1,1,1.609438,0,0,0,0,0,0,0,81.5,9.33697,1.609438,,0 +11,2,0,0,2,229836,0,11348.97,10.38809,1,16,1,42.76159,0,0,0,0,42.76159,0,0,0,4,0,5,78.3,11.84267,0,81.5,0,0,1,1,1.609438,0,0,0,0,0,0,0,81.5,9.33697,1.609438,3.75564,1 +11,2,0,0,3,229836,0,11348.97,11.38809,1,16,1,34.67954,0,0,0,0,34.67954,0,0,0,4,0,5,78.3,11.84267,0,81.5,0,0,1,1,1.609438,0,0,0,0,0,0,0,81.5,9.33697,1.609438,3.54615,1 +11,2,0,0,1,229837,0,11348.97,1.587953,0,16,1,112.3245,17.60271,0,0,0,129.9272,0,0,0,12,0,5,81.35272,11.84267,0,70.4,0,0,1,0,1.609438,0,0,0,0,0,0,0,70.4,9.33697,1.609438,4.866974,1 +11,2,0,0,2,229837,0,11348.97,2.587954,0,16,1,77.87865,14.32394,7.520306,0,0,99.72289,0,0,0,12,0,5,81.35272,11.84267,0,70.4,0,0,1,0,1.609438,0,0,0,0,0,0,0,70.4,9.33697,1.609438,4.602395,1 +11,2,0,0,3,229837,0,11348.97,3.587954,0,16,1,59.70149,0,0,0,0,59.70149,0,0,0,6,0,5,81.35272,11.84267,0,70.4,0,0,1,0,1.609438,0,0,0,0,0,0,0,70.4,9.33697,1.609438,4.089357,1 +13,2,0,1,1,229838,0,4183.578,27.92882,0,16,1,0,0,0,0,0,0,0,0,0,0,0,1,72.3,3.4,0,100,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,100,8.339161,0,,0 +13,2,0,1,2,229838,0,4183.578,28.92882,0,16,1,0,0,0,0,0,0,0,0,0,0,0,1,72.3,3.4,0,100,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,100,8.339161,0,,0 +13,2,0,1,3,229838,0,4183.578,29.92882,0,16,1,17.55926,0,0,0,0,17.55926,0,0,0,1,0,1,72.3,3.4,0,100,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,100,8.339161,0,2.865582,1 +13,2,0,1,4,229838,0,4183.578,30.92882,0,16,1,0,0,0,0,0,0,0,0,0,0,0,1,72.3,3.4,0,100,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,100,8.339161,0,,0 +13,2,0,1,5,229838,0,4183.578,31.92882,0,16,1,0,0,0,0,0,0,0,0,0,0,0,1,72.3,3.4,0,100,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,100,8.339161,0,,0 +15,2,95,0,1,229845,0,10120.16,46.5681,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,95.2,3.4,0,88.6,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,88.6,9.222383,.6931472,,0 +15,2,95,0,2,229845,0,10120.16,47.5681,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,95.2,3.4,0,88.6,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,88.6,9.222383,.6931472,,0 +15,2,95,0,3,229845,0,10120.16,48.5681,0,12,1,0,0,0,0,1203.783,1203.783,1,0,0,0,0,2,95.2,3.4,0,88.6,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,88.6,9.222383,.6931472,7.093225,1 +15,2,95,0,4,229845,0,10120.16,49.5681,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,95.2,3.4,0,88.6,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,88.6,9.222383,.6931472,,0 +15,2,95,0,5,229845,0,10120.16,50.5681,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,95.2,3.4,0,88.6,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,88.6,9.222383,.6931472,,0 +15,2,95,0,1,229846,0,10120.16,18.31075,0,11,1,0,0,0,0,0,0,0,0,0,0,0,2,38.8,10.3,1,60.2,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,60.2,9.222383,.6931472,,0 +15,2,95,0,2,229846,0,10120.16,19.31075,0,11,1,190.3422,0,0,14.0647,0,190.3422,0,0,1,5,0,2,38.8,10.3,1,60.2,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,60.2,9.222383,.6931472,5.248824,1 +15,2,95,0,3,229846,0,10120.16,20.31075,0,11,1,12.46776,0,0,0,1391.84,1404.308,2,0,0,2,0,2,38.8,10.3,1,60.2,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,60.2,9.222383,.6931472,7.2473,1 +15,2,95,0,4,229846,0,10120.16,21.31075,0,11,1,0,0,0,0,0,0,0,0,0,0,0,2,38.8,10.3,1,60.2,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,60.2,9.222383,.6931472,,0 +15,2,95,0,5,229846,0,10120.16,22.31075,0,11,1,70.62987,0,0,0,277.6504,348.2802,1,0,0,2,0,2,38.8,10.3,1,60.2,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,60.2,9.222383,.6931472,5.853007,1 +13,2,0,0,1,229847,0,8130.792,25.57153,0,17,1,47.84192,3.957358,17.4207,0,0,69.21997,0,0,0,3,1,2,80.9,13.8,0,86.4,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,86.4,9.003536,.6931472,4.237289,1 +13,2,0,0,2,229847,0,8130.792,26.57153,0,17,1,0,0,0,0,0,0,0,0,0,0,0,2,80.9,13.8,0,86.4,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,86.4,9.003536,.6931472,,0 +13,2,0,0,3,229847,0,8130.792,27.57153,0,17,1,57.85777,0,0,0,0,57.85777,0,0,0,0,2,2,80.9,13.8,0,86.4,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,86.4,9.003536,.6931472,4.057988,1 +13,2,0,0,4,229847,0,8130.792,28.57153,0,17,1,43.07938,0,29.4296,0,0,72.50897,0,0,0,1,1,2,80.9,13.8,0,86.4,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,86.4,9.003536,.6931472,4.28371,1 +13,2,0,0,5,229847,0,8130.792,29.57153,0,17,1,29.73169,0,28.56418,0,0,58.29587,0,0,0,0,1,2,80.9,13.8,0,86.4,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,86.4,9.003536,.6931472,4.065531,1 +13,2,0,0,1,229848,0,8130.792,23.47707,1,13,1,72.5429,19.39678,32.80811,0,0,124.7478,0,0,0,4,1,2,93.6,3.4,0,93.2,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,93.2,9.003536,.6931472,4.826294,1 +13,2,0,0,2,229848,0,8130.792,24.47707,1,13,1,0,11.42379,0,0,0,11.42379,0,0,0,0,0,2,93.6,3.4,0,93.2,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,93.2,9.003536,.6931472,2.435698,1 +13,2,0,0,3,229848,0,8130.792,25.47707,1,13,1,59.37226,30.0439,30.93064,0,0,120.3468,0,0,0,4,1,2,93.6,3.4,0,93.2,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,93.2,9.003536,.6931472,4.790378,1 +13,2,0,0,4,229848,0,8130.792,26.47707,1,13,1,145.6522,46.00319,0,0,0,191.6554,0,0,0,44,0,2,93.6,3.4,0,93.2,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,93.2,9.003536,.6931472,5.255699,1 +13,2,0,0,5,229848,0,8130.792,27.47707,1,13,1,195.0689,20.18492,27.47643,0,0,242.7302,0,0,0,57,3,2,93.6,3.4,0,93.2,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,93.2,9.003536,.6931472,5.491951,1 +13,2,0,1,1,229878,0,15204.69,12.13689,0,16,1,50.052,0,0,0,0,50.052,0,0,0,5,0,5,83.3,11.84267,0,70.4,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,70.4,9.629425,1.609438,3.913063,1 +13,2,0,1,2,229878,0,15204.69,13.13689,0,16,1,133.3015,7.35786,24.36694,137.6015,1287.74,1452.766,2,0,31,11,0,5,83.3,11.84267,0,70.4,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,70.4,9.629425,1.609438,7.281225,1 +13,2,0,1,3,229878,0,15204.69,14.13689,0,16,1,38.19139,0,7.023705,42.14223,0,45.2151,0,0,13,3,0,5,83.3,11.84267,0,70.4,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,70.4,9.629425,1.609438,3.811431,1 +13,2,0,1,1,229879,0,15204.69,16.33949,0,16,1,18.33073,5.200208,0,0,0,23.53094,0,0,0,2,0,5,58,10.3,0,69.3,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,69.3,9.629425,1.609438,3.158316,1 +13,2,0,1,2,229879,0,15204.69,17.33949,0,16,1,16.72241,2.293359,23.88915,137.6015,0,42.90492,0,0,31,1,0,5,58,10.3,0,69.3,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,69.3,9.629425,1.609438,3.758986,1 +13,2,0,1,3,229879,0,15204.69,18.33949,0,16,1,258.5382,12.48903,31.72959,42.14223,13776.92,14079.68,2,0,13,11,0,5,58,10.3,0,69.3,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,69.3,9.629425,1.609438,9.552488,1 +13,2,0,1,1,229880,0,15204.69,40.49281,1,16,1,135.5434,17.5403,0,371.8149,0,153.0837,0,0,15,4,0,5,28.2,17.2,0,46.6,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,46.6,9.629425,1.609438,5.030985,1 +13,2,0,1,2,229880,0,15204.69,41.49281,1,16,1,44.43383,97.94553,15.28906,730.0526,0,157.6684,0,0,45,5,0,5,28.2,17.2,0,46.6,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,46.6,9.629425,1.609438,5.060494,1 +13,2,0,1,3,229880,0,15204.69,42.49281,1,16,1,92.62511,124.6708,25.02195,937.0325,1393.064,1635.382,2,0,62,6,0,5,28.2,17.2,0,46.6,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,46.6,9.629425,1.609438,7.399632,1 +13,2,0,1,1,229881,0,15204.69,44.15332,0,19,1,25.48102,9.916797,0,0,0,35.39782,0,0,0,2,0,5,80.3,17.2,0,73.9,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,73.9,9.629425,1.609438,3.56665,1 +13,2,0,1,2,229881,0,15204.69,45.15332,0,19,1,29.14477,15.48017,16.72241,137.6015,0,61.34735,0,0,31,3,0,5,80.3,17.2,0,73.9,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,73.9,9.629425,1.609438,4.116552,1 +13,2,0,1,3,229881,0,15204.69,46.15332,0,19,1,37.31343,21.35645,9.218613,548.9728,606.6945,674.5829,1,0,54,3,0,5,80.3,17.2,0,73.9,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,73.9,9.629425,1.609438,6.514095,1 +13,2,0,1,1,229882,0,15204.69,15.03354,0,16,1,7.280291,0,0,45.50182,0,7.280291,0,0,4,1,0,5,77.6,10.3,0,75,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,75,9.629425,1.609438,1.985171,1 +13,2,0,1,2,229882,0,15204.69,16.03354,0,16,1,0,0,0,137.6015,0,0,0,0,31,0,0,5,77.6,10.3,0,75,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,75,9.629425,1.609438,,0 +13,2,0,1,3,229882,0,15204.69,17.03354,0,16,1,4.389816,0,0,804.324,0,4.389816,0,0,52,0,0,5,77.6,10.3,0,75,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,75,9.629425,1.609438,1.479287,1 +13,2,0,1,1,229888,0,8812.903,8.358659,0,15,1,28.34113,16.04264,0,0,0,44.38377,0,0,0,0,0,4,93.3,11.84267,0,85.2,450,195.27,1,0,1.386294,5.274383,1,4.564348,6.160541,0,0,0,85.2,9.084085,1.386294,3.792874,1 +13,2,0,1,2,229888,0,8812.903,9.358659,0,15,1,0,16.98519,0,0,0,16.98519,0,0,0,0,0,4,93.3,11.84267,0,85.2,450,195.27,1,0,1.386294,5.274383,1,4.564348,6.160541,0,0,0,85.2,9.084085,1.386294,2.832342,1 +13,2,0,1,3,229888,0,8812.903,10.35866,0,15,1,0,0,0,0,0,0,0,0,0,0,0,4,93.3,11.84267,0,85.2,450,195.27,1,0,1.386294,5.274383,1,4.564348,6.160541,0,0,0,85.2,9.084085,1.386294,,0 +13,2,0,1,1,229889,0,8812.903,34.27242,1,15,1,81.77327,23.73895,0,0,0,105.5122,0,0,0,3,0,4,78.7,10.3,0,86.4,450,195.27,0,0,1.386294,5.274383,1,4.564348,6.160541,0,0,0,86.4,9.084085,1.386294,4.658827,1 +13,2,0,1,2,229889,0,8812.903,35.27242,1,15,1,6.21118,6.765409,0,0,0,12.97659,0,0,0,0,0,4,78.7,10.3,0,86.4,450,195.27,0,0,1.386294,5.274383,1,4.564348,6.160541,0,0,0,86.4,9.084085,1.386294,2.563147,1 +13,2,0,1,3,229889,0,8812.903,36.27242,1,15,1,0,0,0,0,0,0,0,0,0,0,0,4,78.7,10.3,0,86.4,450,195.27,0,0,1.386294,5.274383,1,4.564348,6.160541,0,0,0,86.4,9.084085,1.386294,,0 +13,2,0,1,1,229890,0,8812.903,35.154,0,20,1,23.40094,0,30.49402,0,0,53.89495,0,0,0,1,1,4,82.4,0,0,78.4,450,195.27,0,0,1.386294,5.274383,1,4.564348,6.160541,0,0,0,78.4,9.084085,1.386294,3.987037,1 +13,2,0,1,2,229890,0,8812.903,36.154,0,20,1,89.82322,8.499762,0,0,0,98.32298,0,0,0,2,0,4,82.4,0,0,78.4,450,195.27,0,0,1.386294,5.274383,1,4.564348,6.160541,0,0,0,78.4,9.084085,1.386294,4.588258,1 +13,2,0,1,3,229890,0,8812.903,37.154,0,20,1,14.81563,0,0,0,0,14.81563,0,0,0,1,0,4,82.4,0,0,78.4,450,195.27,0,0,1.386294,5.274383,1,4.564348,6.160541,0,0,0,78.4,9.084085,1.386294,2.695683,1 +13,2,0,1,1,229891,0,8812.903,6.198494,0,15,1,13.00052,3.957358,0,0,0,16.95788,0,0,0,1,0,4,93.3,11.84267,0,96.3,450,195.27,1,0,1.386294,5.274383,1,4.564348,6.160541,0,0,0,96.3,9.084085,1.386294,2.830733,1 +13,2,0,1,2,229891,0,8812.903,7.198494,0,15,1,16.00573,0,0,0,0,16.00573,0,0,0,1,0,4,93.3,11.84267,0,96.3,450,195.27,1,0,1.386294,5.274383,1,4.564348,6.160541,0,0,0,96.3,9.084085,1.386294,2.772947,1 +13,2,0,1,3,229891,0,8812.903,8.198494,0,15,1,0,0,0,0,0,0,0,0,0,0,0,4,93.3,11.84267,0,96.3,450,195.27,1,0,1.386294,5.274383,1,4.564348,6.160541,0,0,0,96.3,9.084085,1.386294,,0 +16,2,95,0,1,229907,0,4181.818,24.69815,0,12,1,12.44204,0,0,0,0,12.44204,0,0,0,1,0,1,86.7,10.3,0,59.1,848.4,848.4,0,0,0,6.743352,0,4.564348,6.794645,1,0,0,59.1,8.33874,0,2.521081,1 +16,2,95,0,2,229907,0,4181.818,25.69815,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,86.7,10.3,0,59.1,848.4,848.4,0,0,.6931472,6.743352,0,4.564348,6.794645,1,0,0,59.1,8.33874,.6931472,,0 +16,2,95,0,3,229907,0,4181.818,26.69815,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,86.7,10.3,0,59.1,848.4,848.4,0,0,.6931472,6.743352,0,4.564348,6.794645,1,0,0,59.1,8.33874,.6931472,,0 +16,2,95,0,4,229907,0,4181.818,27.69815,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,86.7,10.3,0,59.1,848.4,848.4,0,0,.6931472,6.743352,0,4.564348,6.794645,1,0,0,59.1,8.33874,.6931472,,0 +16,2,95,0,5,229907,0,4181.818,28.69815,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,86.7,10.3,0,59.1,848.4,848.4,0,0,.6931472,6.743352,0,4.564348,6.794645,1,0,0,59.1,8.33874,.6931472,,0 +11,2,0,0,1,229910,0,8665.641,17.35797,0,11,1,59.82839,0,0,0,0,59.82839,0,0,0,2,0,3,58,6.9,0,52.3,0,0,1,0,1.098612,0,0,0,0,1,0,0,52.3,9.067237,1.098612,4.09148,1 +11,2,0,0,2,229910,0,8665.641,18.35797,0,11,1,33.9226,7.095079,0,0,0,41.01768,0,0,0,2,0,3,58,6.9,0,52.3,0,0,0,0,1.098612,0,0,0,0,1,0,0,52.3,9.067237,1.098612,3.714003,1 +11,2,0,0,1,229911,0,8665.641,14.51335,0,11,1,30.94124,0,0,0,0,30.94124,0,0,0,2,0,3,53.2,10.3,0,87.5,0,0,1,0,1.098612,0,0,0,0,1,0,0,87.5,9.067237,1.098612,3.43209,1 +11,2,0,0,2,229911,0,8665.641,15.51335,0,11,1,0,0,0,0,0,0,0,0,0,0,0,3,53.2,10.3,0,87.5,0,0,1,0,1.098612,0,0,0,0,1,0,0,87.5,9.067237,1.098612,,0 +11,2,0,0,3,229911,0,8665.641,16.51335,0,11,1,23.37577,2.172959,0,0,0,25.54873,0,0,0,1,0,2,53.2,10.3,0,87.5,0,0,1,0,.6931472,0,0,0,0,1,0,0,87.5,9.067237,.6931472,3.240587,1 +11,2,0,0,1,229912,0,8665.641,35.45243,1,11,1,18.98076,11.90848,0,0,0,30.88924,0,0,0,1,0,3,43.6,27.6,1,70.5,0,0,0,0,1.098612,0,0,0,0,1,0,0,70.5,9.067237,1.098612,3.430408,1 +11,2,0,0,2,229912,0,8665.641,36.45243,1,11,1,49.68944,12.18347,0,0,0,61.87291,0,0,0,4,0,3,43.6,27.6,1,70.5,0,0,0,0,1.098612,0,0,0,0,1,0,0,70.5,9.067237,1.098612,4.125082,1 +11,2,0,0,3,229912,0,8665.641,37.45243,1,11,1,80.55312,19.20544,0,0,0,99.75856,0,0,0,4,0,2,43.6,27.6,1,70.5,0,0,0,0,.6931472,0,0,0,0,1,0,0,70.5,9.067237,.6931472,4.602753,1 +5,2,25,1,1,229913,0,6803.519,2.395619,0,12,1,46.00105,13.01098,0,0,0,59.01202,0,0,0,3,0,4,81.35272,11.84267,0,81.5,304,304,1,0,1.386294,5.717028,0,3.258096,7.103322,0,0,0,81.5,8.825342,1.386294,4.077741,1 +5,2,25,1,2,229913,0,6803.519,3.395619,0,12,1,312.8544,19.06295,0,0,0,331.9174,0,0,0,33,0,4,81.35272,11.84267,0,81.5,304,304,1,0,1.386294,5.717028,0,3.258096,7.103322,0,0,0,81.5,8.825342,1.386294,5.804886,1 +5,2,25,1,3,229913,0,6803.519,4.395619,0,12,1,30.17621,0,0,0,315.3965,345.5727,1,0,0,3,0,4,81.35272,11.84267,0,81.5,304,304,1,0,1.386294,5.717028,0,3.258096,7.103322,0,0,0,81.5,8.825342,1.386294,5.845203,1 +5,2,25,1,4,229913,0,6803.519,5.395619,0,12,1,79.33064,1.915323,0,0,0,81.24596,0,0,0,6,0,4,81.35272,11.84267,0,81.5,304,304,1,0,1.386294,5.717028,0,3.258096,7.103322,0,0,0,81.5,8.825342,1.386294,4.397481,1 +5,2,25,1,5,229913,0,6803.519,6.395619,0,12,1,42.62295,19.31876,0,0,0,61.94171,0,0,0,5,0,4,81.35272,11.84267,0,81.5,304,304,1,0,1.386294,5.717028,0,3.258096,7.103322,0,0,0,81.5,8.825342,1.386294,4.126194,1 +5,2,25,1,1,229914,0,6803.519,22.62012,1,12,1,23.52326,1.641401,0,0,0,25.16466,0,0,0,3,0,4,91,3.4,0,89.8,304,304,0,0,1.386294,5.717028,0,3.258096,7.103322,0,0,0,89.8,8.825342,1.386294,3.225441,1 +5,2,25,1,2,229914,0,6803.519,23.62012,1,12,1,17.77991,4.906295,0,0,0,22.68621,0,0,0,1,0,4,91,3.4,0,89.8,304,304,0,0,1.386294,5.717028,0,3.258096,7.103322,0,0,0,89.8,8.825342,1.386294,3.121757,1 +5,2,25,1,3,229914,0,6803.519,24.62012,1,12,1,19.82379,0,0,0,0,19.82379,0,0,0,1,0,4,91,3.4,0,89.8,304,304,0,0,1.386294,5.717028,0,3.258096,7.103322,0,0,0,89.8,8.825342,1.386294,2.986883,1 +5,2,25,1,4,229914,0,6803.519,25.62012,1,12,1,4.435484,0,0,0,0,4.435484,0,0,0,1,0,4,91,3.4,0,89.8,304,304,0,0,1.386294,5.717028,0,3.258096,7.103322,0,0,0,89.8,8.825342,1.386294,1.489637,1 +5,2,25,1,5,229914,0,6803.519,26.62012,1,12,1,5.82878,9.763206,0,0,0,15.59199,0,0,0,1,0,4,91,3.4,0,89.8,304,304,0,0,1.386294,5.717028,0,3.258096,7.103322,0,0,0,89.8,8.825342,1.386294,2.746757,1 +5,2,25,1,1,229915,0,6803.519,23.40862,0,13,1,14.6367,0,0,0,0,14.6367,0,0,0,1,0,4,79.3,0,0,85.2,304,304,0,0,1.386294,5.717028,0,3.258096,7.103322,0,0,0,85.2,8.825342,1.386294,2.683532,1 +5,2,25,1,2,229915,0,6803.519,24.40862,0,13,1,7.92888,2.609323,0,0,0,10.5382,0,0,0,1,0,4,79.3,0,0,85.2,304,304,0,0,1.386294,5.717028,0,3.258096,7.103322,0,0,0,85.2,8.825342,1.386294,2.355007,1 +5,2,25,1,3,229915,0,6803.519,25.40862,0,13,1,0,1.872247,0,0,0,1.872247,0,0,0,0,0,4,79.3,0,0,85.2,304,304,0,0,1.386294,5.717028,0,3.258096,7.103322,0,0,0,85.2,8.825342,1.386294,.6271392,1 +5,2,25,1,4,229915,0,6803.519,26.40862,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,79.3,0,0,85.2,304,304,0,0,1.386294,5.717028,0,3.258096,7.103322,0,0,0,85.2,8.825342,1.386294,,0 +5,2,25,1,5,229915,0,6803.519,27.40862,0,13,1,52.64117,0,0,0,0,52.64117,0,0,0,1,4,4,79.3,0,0,85.2,304,304,0,0,1.386294,5.717028,0,3.258096,7.103322,0,0,0,85.2,8.825342,1.386294,3.963498,1 +11,2,0,0,1,229919,0,13936.07,30.1629,1,13,1,23.18393,13.41061,0,0,0,36.59454,0,0,0,2,0,4,76.1,3.4,1,80.7,0,0,0,0,1.386294,0,0,0,0,0,0,0,80.7,9.542308,1.386294,3.599899,1 +11,2,0,0,2,229919,0,13936.07,31.1629,1,13,1,15.15152,0,28.22917,0,0,43.38068,0,0,0,1,0,4,76.1,3.4,1,80.7,0,0,0,0,1.386294,0,0,0,0,0,0,0,80.7,9.542308,1.386294,3.770014,1 +11,2,0,0,3,229919,0,13936.07,32.1629,1,13,1,185.0022,11.41309,10.83658,0,0,207.2518,0,0,0,4,9,4,76.1,3.4,1,80.7,0,0,0,0,1.386294,0,0,0,0,0,0,0,80.7,9.542308,1.386294,5.333935,1 +11,2,0,0,1,229920,0,13936.07,33.48118,0,16,1,171.5611,0,12.87996,0,0,184.441,0,0,0,1,4,4,72.9,6.9,0,92,0,0,0,0,1.386294,0,0,0,0,0,0,0,92,9.542308,1.386294,5.21733,1 +11,2,0,0,2,229920,0,13936.07,34.48118,0,16,1,149.2898,8.148674,32.01704,0,0,189.4555,0,0,0,6,0,4,72.9,6.9,0,92,0,0,0,0,1.386294,0,0,0,0,0,0,0,92,9.542308,1.386294,5.244154,1 +11,2,0,0,3,229920,0,13936.07,35.48118,0,16,1,70.65453,11.10533,0,0,0,81.75986,0,0,0,3,0,4,72.9,6.9,0,92,0,0,0,0,1.386294,0,0,0,0,0,0,0,92,9.542308,1.386294,4.403787,1 +11,2,0,0,1,229921,0,13936.07,7.534565,1,13,1,18.03194,0,0,0,0,18.03194,0,0,0,1,1,4,80,11.84267,0,96.3,0,0,1,1,1.386294,0,0,0,0,0,0,0,96.3,9.542308,1.386294,2.892145,1 +11,2,0,0,2,229921,0,13936.07,8.534565,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,80,11.84267,0,96.3,0,0,1,1,1.386294,0,0,0,0,0,0,0,96.3,9.542308,1.386294,,0 +11,2,0,0,3,229921,0,13936.07,9.534565,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,80,11.84267,0,96.3,0,0,1,1,1.386294,0,0,0,0,0,0,0,96.3,9.542308,1.386294,,0 +11,2,0,0,1,229922,0,13936.07,5.360712,0,13,1,47.65585,11.61772,0,0,0,59.27357,0,0,0,7,1,4,91.7,11.84267,0,55.6,0,0,1,0,1.386294,0,0,0,0,0,0,0,55.6,9.542308,1.386294,4.082163,1 +11,2,0,0,2,229922,0,13936.07,6.360712,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,91.7,11.84267,0,55.6,0,0,1,0,1.386294,0,0,0,0,0,0,0,55.6,9.542308,1.386294,,0 +11,2,0,0,3,229922,0,13936.07,7.360712,0,13,1,7.585609,0,0,0,0,7.585609,0,0,0,1,0,4,91.7,11.84267,0,55.6,0,0,1,0,1.386294,0,0,0,0,0,0,0,55.6,9.542308,1.386294,2.026253,1 +16,2,95,1,1,229938,0,14281.53,37.90007,1,16,1,25.09148,19.63408,0,0,0,44.72556,0,0,0,2,0,5,94.1,13.8,0,97.7,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,97.7,9.566792,1.609438,3.800545,1 +16,2,95,1,2,229938,0,14281.53,38.90007,1,16,1,78.23162,2.397886,35.70399,0,0,116.3335,0,0,0,5,1,5,94.1,13.8,0,97.7,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,97.7,9.566792,1.609438,4.756461,1 +16,2,95,1,3,229938,0,14281.53,39.90007,1,16,1,0,0,0,0,0,0,0,0,0,0,0,5,94.1,13.8,0,97.7,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,97.7,9.566792,1.609438,,0 +16,2,95,1,4,229938,0,14281.53,40.90007,1,16,1,11.29032,3.842742,0,0,0,15.13306,0,0,0,1,0,5,94.1,13.8,0,97.7,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,97.7,9.566792,1.609438,2.716882,1 +16,2,95,1,5,229938,0,14281.53,41.90007,1,16,1,111.1111,0,46.38251,0,0,157.4936,0,0,0,5,0,5,94.1,13.8,0,97.7,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,97.7,9.566792,1.609438,5.059385,1 +16,2,95,1,1,229939,0,14281.53,37.33333,0,16,1,0,20.26137,0,0,0,20.26137,0,0,0,0,0,5,98.4,6.9,0,88.6,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,88.6,9.566792,1.609438,3.008716,1 +16,2,95,1,2,229939,0,14281.53,38.33333,0,16,1,0,0,27.87122,0,0,27.87122,0,0,0,0,0,5,98.4,6.9,0,88.6,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,88.6,9.566792,1.609438,3.327595,1 +16,2,95,1,3,229939,0,14281.53,39.33333,0,16,1,0,0,0,0,0,0,0,0,0,0,0,5,98.4,6.9,0,88.6,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,88.6,9.566792,1.609438,,0 +16,2,95,1,4,229939,0,14281.53,40.33333,0,16,1,60.08065,0,0,0,0,60.08065,0,0,0,5,0,5,98.4,6.9,0,88.6,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,88.6,9.566792,1.609438,4.095688,1 +16,2,95,1,5,229939,0,14281.53,41.33333,0,16,1,329.6903,35.12933,38.61567,0,7858.652,8262.088,2,0,0,5,0,5,98.4,6.9,0,88.6,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,88.6,9.566792,1.609438,9.019433,1 +16,2,95,1,1,229940,0,14281.53,13.99589,1,16,1,0,0,0,0,0,0,0,0,0,0,0,5,96.7,11.84267,0,100,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,100,9.566792,1.609438,,0 +16,2,95,1,2,229940,0,14281.53,14.99589,1,16,1,27.15041,0,28.83229,0,0,55.9827,0,0,0,2,0,5,96.7,11.84267,0,100,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,100,9.566792,1.609438,4.025043,1 +16,2,95,1,3,229940,0,14281.53,15.99589,1,16,1,30.837,0,0,0,0,30.837,0,0,0,2,0,5,96.7,11.84267,0,100,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,100,9.566792,1.609438,3.428715,1 +16,2,95,1,4,229940,0,14281.53,16.99589,1,16,1,8.064516,0,0,0,0,8.064516,0,0,0,1,0,5,96.7,11.84267,0,100,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,100,9.566792,1.609438,2.087474,1 +16,2,95,1,5,229940,0,14281.53,17.99589,1,16,1,32.05829,0,21.98907,0,0,54.04736,0,0,0,3,0,5,96.7,11.84267,0,100,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,100,9.566792,1.609438,3.989861,1 +16,2,95,1,1,229941,0,14281.53,11.00068,0,16,1,0,0,0,0,0,0,0,0,0,0,0,5,100,11.84267,0,100,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,100,9.566792,1.609438,,0 +16,2,95,1,2,229941,0,14281.53,12.00068,0,16,1,18.50072,0,0,0,0,18.50072,0,0,0,2,0,5,100,11.84267,0,100,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,100,9.566792,1.609438,2.91781,1 +16,2,95,1,3,229941,0,14281.53,13.00068,0,16,1,0,0,0,0,0,0,0,0,0,0,0,5,100,11.84267,0,100,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,100,9.566792,1.609438,,0 +16,2,95,1,4,229941,0,14281.53,14.00068,0,16,1,0,9.866936,0,0,0,9.866936,0,0,0,0,0,5,100,11.84267,0,100,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,100,9.566792,1.609438,2.289189,1 +16,2,95,1,5,229941,0,14281.53,15.00068,0,16,1,29.5082,2.892532,5.464481,0,572.4772,610.3425,1,0,0,1,0,5,100,11.84267,0,100,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,100,9.566792,1.609438,6.41402,1 +16,2,95,1,1,229942,0,14281.53,6.398357,0,16,1,36.069,25.53058,0,0,0,61.59958,0,0,0,8,0,5,96.7,11.84267,0,100,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,100,9.566792,1.609438,4.120655,1 +16,2,95,1,2,229942,0,14281.53,7.398357,0,16,1,55.23787,33.3061,0,0,0,88.54397,0,0,0,6,0,5,96.7,11.84267,0,100,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,100,9.566792,1.609438,4.483499,1 +16,2,95,1,3,229942,0,14281.53,8.398357,0,16,1,15.85903,1.832599,0,0,0,17.69163,0,0,0,2,0,5,96.7,11.84267,0,100,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,100,9.566792,1.609438,2.873092,1 +16,2,95,1,4,229942,0,14281.53,9.398357,0,16,1,39.81855,3.701613,0,0,0,43.52016,0,0,0,2,0,5,96.7,11.84267,0,100,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,100,9.566792,1.609438,3.773224,1 +16,2,95,1,5,229942,0,14281.53,10.39836,0,16,1,134.0619,0,0,0,0,134.0619,0,0,0,7,0,5,96.7,11.84267,0,100,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,100,9.566792,1.609438,4.898302,1 +13,2,0,0,1,229993,0,6859.824,20.54757,0,13,1,126.0175,0,9.27357,0,0,135.2911,0,0,0,1,9,2,80.9,6.9,0,77.3,300,514.54,0,0,.6931472,6.243273,1,4.564348,5.755076,0,0,0,77.3,8.833583,.6931472,4.907429,1 +13,2,0,0,2,229993,0,6859.824,21.54757,0,13,1,34.09091,0,0,0,0,34.09091,0,0,0,0,6,2,80.9,6.9,0,77.3,300,514.54,0,0,.6931472,6.243273,1,4.564348,5.755076,0,0,0,77.3,8.833583,.6931472,3.529031,1 +13,2,0,0,3,229993,0,6859.824,22.54757,0,13,1,0,0,0,0,0,0,0,0,0,0,0,2,80.9,6.9,0,77.3,300,514.54,0,0,.6931472,6.243273,1,4.564348,5.755076,0,0,0,77.3,8.833583,.6931472,,0 +13,2,0,0,1,229994,0,6859.824,54.87201,1,12,1,18.54714,8.191654,0,0,0,26.73879,0,0,0,1,0,2,86.7,10.3,0,71.6,300,514.54,0,0,.6931472,6.243273,1,4.564348,5.755076,0,0,0,71.6,8.833583,.6931472,3.286115,1 +13,2,0,0,2,229994,0,6859.824,55.87201,1,12,1,173.2955,10.02367,0,0,0,183.3191,0,0,0,19,5,2,86.7,10.3,0,71.6,300,514.54,0,0,.6931472,6.243273,1,4.564348,5.755076,0,0,0,71.6,8.833583,.6931472,5.211228,1 +13,2,0,0,3,229994,0,6859.824,56.87201,1,12,1,19.93932,5.656697,0,0,0,25.59601,0,0,0,1,0,2,86.7,10.3,0,71.6,300,514.54,0,0,.6931472,6.243273,1,4.564348,5.755076,0,0,0,71.6,8.833583,.6931472,3.242437,1 +17,2,25,0,1,230004,0,3701.466,25.3963,1,16,1,203.864,24.38434,33.53426,128.7996,0,261.7826,0,0,20,14,1,1,54.8,27.6,0,55.7,75,198.6,0,0,0,5.291293,0,3.258096,5.703783,1,0,0,55.7,8.216755,0,5.567514,1 +17,2,25,0,2,230004,0,3701.466,26.3963,1,16,1,121.9223,47.95928,13.25758,0,0,183.1392,0,0,0,11,0,1,54.8,27.6,0,55.7,75,198.6,0,0,0,5.291293,0,3.258096,5.703783,1,0,0,55.7,8.216755,0,5.210247,1 +17,2,25,0,3,230004,0,3701.466,27.3963,1,16,1,523.4504,15.1062,23.6671,0,0,562.2237,0,0,0,10,32,1,54.8,27.6,0,55.7,75,198.6,0,0,0,5.291293,0,3.258096,5.703783,1,0,0,55.7,8.216755,0,6.3319,1 +17,2,25,0,1,230006,0,8221.701,25.06229,1,16,1,65.62819,12.97242,3.013279,0,0,81.61389,0,0,0,3,1,2,69.1,3.4,0,70.5,250,250,0,0,.6931472,5.521461,0,3.258096,6.907755,0,0,0,70.5,9.014654,.6931472,4.401999,1 +17,2,25,0,2,230006,0,8221.701,26.06229,1,16,1,61.41585,20.58603,0,0,0,82.00188,0,0,0,6,0,2,69.1,3.4,0,70.5,250,250,0,0,.6931472,5.521461,0,3.258096,6.907755,0,0,0,70.5,9.014654,.6931472,4.406742,1 +17,2,25,0,3,230006,0,8221.701,27.06229,1,16,1,62.33878,43.30181,0,0,0,105.6406,0,0,0,6,0,2,69.1,3.4,0,70.5,250,250,0,0,.6931472,5.521461,0,3.258096,6.907755,0,0,0,70.5,9.014654,.6931472,4.660043,1 +14,2,95,1,1,230021,0,7490.909,11.83573,1,12,1,86.19968,0,0,0,0,86.19968,0,0,0,7,0,3,80,11.84267,0,96.3,420,420,1,1,1.098612,6.040255,0,4.564348,6.091548,0,0,0,96.3,8.921579,1.098612,4.456666,1 +14,2,95,1,2,230021,0,7490.909,12.83573,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,80,11.84267,0,96.3,420,420,1,1,1.098612,6.040255,0,4.564348,6.091548,0,0,0,96.3,8.921579,1.098612,,0 +14,2,95,1,3,230021,0,7490.909,13.83573,1,12,1,58.48018,13.85463,0,0,0,72.3348,0,0,0,6,0,3,80,11.84267,0,96.3,420,420,1,1,1.098612,6.040255,0,4.564348,6.091548,0,0,0,96.3,8.921579,1.098612,4.281305,1 +14,2,95,1,1,230022,0,7490.909,10.55168,1,12,1,64.57397,5.462624,0,0,0,70.03659,0,0,0,6,0,3,83.3,11.84267,0,96.3,420,420,1,1,1.098612,6.040255,0,4.564348,6.091548,0,0,0,96.3,8.921579,1.098612,4.249018,1 +14,2,95,1,2,230022,0,7490.909,11.55168,1,12,1,30.75444,0,.4805382,0,0,31.23498,0,0,0,2,0,3,83.3,11.84267,0,96.3,420,420,1,1,1.098612,6.040255,0,4.564348,6.091548,0,0,0,96.3,8.921579,1.098612,3.441539,1 +14,2,95,1,3,230022,0,7490.909,12.55168,1,12,1,18.5022,0,0,0,0,18.5022,0,0,0,2,0,3,83.3,11.84267,0,96.3,420,420,1,1,1.098612,6.040255,0,4.564348,6.091548,0,0,0,96.3,8.921579,1.098612,2.91789,1 +14,2,95,1,1,230023,0,7490.909,36.24641,1,12,1,31.36435,0,0,0,0,31.36435,0,0,0,2,0,3,68.1,6.9,0,86.4,420,420,0,0,1.098612,6.040255,0,4.564348,6.091548,0,0,0,86.4,8.921579,1.098612,3.445672,1 +14,2,95,1,2,230023,0,7490.909,37.24641,1,12,1,21.62422,0,0,0,0,21.62422,0,0,0,2,0,3,68.1,6.9,0,86.4,420,420,0,0,1.098612,6.040255,0,4.564348,6.091548,0,0,0,86.4,8.921579,1.098612,3.073814,1 +14,2,95,1,3,230023,0,7490.909,38.24641,1,12,1,43.8326,13.56828,0,0,0,57.40088,0,0,0,3,0,3,68.1,6.9,0,86.4,420,420,0,0,1.098612,6.040255,0,4.564348,6.091548,0,0,0,86.4,8.921579,1.098612,4.05006,1 +15,2,95,0,1,230024,0,8607.038,52.0794,1,14,1,105.6157,104.6059,0,0,0,210.2215,0,0,0,5,0,3,53.7,20.7,1,71.6,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,1,0,0,71.6,9.060452,1.098612,5.348162,1 +15,2,95,0,2,230024,0,8607.038,53.0794,1,14,1,43.08712,82.87405,0,0,0,125.9612,0,0,0,5,0,3,53.7,20.7,1,71.6,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,1,0,0,71.6,9.060452,1.098612,4.835974,1 +15,2,95,0,3,230024,0,8607.038,54.0794,1,14,1,74.77243,62.49241,0,0,0,137.2648,0,0,0,4,0,3,53.7,20.7,1,71.6,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,1,0,0,71.6,9.060452,1.098612,4.921912,1 +15,2,95,0,1,230025,0,8607.038,18.19302,0,11,1,32.97269,0,0,0,0,32.97269,0,0,0,2,0,3,80.3,6.9,0,78.4,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,1,0,0,78.4,9.060452,1.098612,3.49568,1 +15,2,95,0,2,230025,0,8607.038,19.19302,0,11,1,91.78503,1.302083,0,0,0,93.08712,0,0,0,5,0,3,80.3,6.9,0,78.4,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,1,0,0,78.4,9.060452,1.098612,4.533536,1 +15,2,95,0,3,230025,0,8607.038,20.19302,0,11,1,364.1092,1.972258,0,0,0,366.0815,0,0,0,1,0,3,80.3,6.9,0,78.4,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,1,0,0,78.4,9.060452,1.098612,5.902856,1 +15,2,95,0,1,230026,0,8607.038,22.74607,1,16,1,19.26842,58.67594,0,0,0,77.94436,0,0,0,3,0,3,61.2,17.2,1,51.1,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,1,0,0,51.1,9.060452,1.098612,4.355995,1 +15,2,95,0,2,230026,0,8607.038,23.74607,1,16,1,28.88258,34.80114,0,0,0,63.68371,0,0,0,3,0,3,61.2,17.2,1,51.1,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,1,0,0,51.1,9.060452,1.098612,4.153929,1 +15,2,95,0,3,230026,0,8607.038,24.74607,1,16,1,74.44733,47.36888,0,912.4404,0,121.8162,0,0,47,3,0,3,61.2,17.2,1,51.1,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,1,0,0,51.1,9.060452,1.098612,4.802514,1 +13,2,0,0,1,230030,0,9126.687,23.30732,1,14,1,0,4.250386,0,0,0,4.250386,0,0,0,0,0,2,81.4,6.9,0,80.7,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,80.7,9.119067,.6931472,1.44701,1 +13,2,0,0,2,230030,0,9126.687,24.30732,1,14,1,0,0,0,0,0,0,0,0,0,0,0,2,81.4,6.9,0,80.7,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,80.7,9.119067,.6931472,,0 +13,2,0,0,3,230030,0,9126.687,25.30732,1,14,1,0,0,0,0,0,0,0,0,0,0,0,2,81.4,6.9,0,80.7,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,80.7,9.119067,.6931472,,0 +13,2,0,0,4,230030,0,9126.687,26.30732,1,14,1,0,0,0,0,0,0,0,0,0,0,0,2,81.4,6.9,0,80.7,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,80.7,9.119067,.6931472,,0 +13,2,0,0,5,230030,0,9126.687,27.30732,1,14,1,0,0,0,0,0,0,0,0,0,0,0,2,81.4,6.9,0,80.7,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,80.7,9.119067,.6931472,,0 +13,2,0,0,1,230032,0,9126.687,58.57906,1,10,1,21.12313,1.803194,0,0,0,22.92633,0,0,0,1,0,2,69.7,24.1,0,58,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,58,9.119067,.6931472,3.132286,1 +13,2,0,0,2,230032,0,9126.687,59.57906,1,10,1,22.25379,5.066288,61.92235,0,0,89.24242,0,0,0,2,1,2,69.7,24.1,0,58,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,58,9.119067,.6931472,4.491356,1 +13,2,0,0,3,230032,0,9126.687,60.57906,1,10,1,6.501951,1.278717,0,0,0,7.780667,0,0,0,1,0,2,69.7,24.1,0,58,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,58,9.119067,.6931472,2.051642,1 +13,2,0,0,4,230032,0,9126.687,61.57906,1,10,1,19.69279,0,0,0,0,19.69279,0,0,0,1,0,2,69.7,24.1,0,58,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,58,9.119067,.6931472,2.980253,1 +13,2,0,0,5,230032,0,9126.687,62.57906,1,10,1,77.28086,5.191413,0,0,0,82.47227,0,0,0,5,0,2,69.7,24.1,0,58,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,58,9.119067,.6931472,4.412462,1 +16,2,95,0,1,230037,0,8665.641,55.75085,1,12,1,0,15.37867,0,0,0,15.37867,0,0,0,0,0,1,75.5,10.3,0,63.6,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,1,0,0,63.6,9.067237,0,2.732981,1 +16,2,95,0,2,230037,0,8665.641,56.75085,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,75.5,10.3,0,63.6,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,1,0,0,63.6,9.067237,0,,0 +16,2,95,0,3,230037,0,8665.641,57.75085,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,75.5,10.3,0,63.6,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,1,0,0,63.6,9.067237,0,,0 +16,2,95,0,4,230037,0,8665.641,58.75085,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,75.5,10.3,0,63.6,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,1,0,0,63.6,9.067237,0,,0 +16,2,95,0,5,230037,0,8665.641,59.75085,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,75.5,10.3,0,63.6,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,1,0,0,63.6,9.067237,0,,0 +13,2,0,0,1,230060,0,1290.323,22.13279,0,15,1,0,0,0,0,0,0,0,0,0,0,0,1,26.6,13.8,1,30.7,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,30.7,7.163422,0,,0 +13,2,0,0,2,230060,0,1290.323,23.13279,0,15,1,0,1.870605,0,0,0,1.870605,0,0,0,0,0,1,26.6,13.8,1,30.7,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,30.7,7.163422,0,.6262618,1 +13,2,0,0,3,230060,0,1290.323,24.13279,0,15,1,14.61737,0,0,0,0,14.61737,0,0,0,0,0,1,26.6,13.8,1,30.7,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,30.7,7.163422,0,2.68221,1 +15,2,95,0,1,230072,0,7283.285,58.60917,0,13,1,41.87947,1.292135,0,0,0,43.1716,0,0,0,3,0,4,79.8,10.3,0,67,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,67,8.893475,1.386294,3.765183,1 +15,2,95,0,1,230073,1,7283.285,20.48734,1,13,1,0,0,0,0,284.4331,284.4331,1,1,0,0,0,4,73.4,10.3,0,52.3,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,52.3,8.893475,1.386294,5.650498,1 +15,2,95,0,1,230074,1,7283.285,50.85558,1,11,1,62.30848,0,0,0,0,62.30848,0,0,0,1,0,4,75.5,20.7,0,73.9,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,1,0,73.9,8.893475,1.386294,4.132098,1 +14,2,95,0,1,230075,0,4346.627,24.75565,1,15,1,13.00052,0,42.94852,0,0,55.94904,0,0,0,0,1,1,75,17.2,0,64.8,350,350,0,0,0,5.857933,0,4.564348,5.909226,0,0,0,64.8,8.377385,0,4.024441,1 +14,2,95,0,2,230075,0,4346.627,25.75565,1,15,1,0,0,0,0,0,0,0,0,0,0,0,1,75,17.2,0,64.8,350,350,0,0,0,5.857933,0,4.564348,5.909226,0,0,0,64.8,8.377385,0,,0 +14,2,95,0,3,230075,0,4346.627,26.75565,1,15,1,0,0,0,0,0,0,0,0,0,0,0,1,75,17.2,0,64.8,350,350,0,0,0,5.857933,0,4.564348,5.909226,0,0,0,64.8,8.377385,0,,0 +14,2,95,1,1,230080,0,13221.11,29.99863,0,12,1,131.8158,19.24298,0,0,0,151.0588,0,0,0,14,0,4,79.8,17.2,0,69.3,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,69.3,9.489646,1.386294,5.017669,1 +14,2,95,1,2,230080,0,13221.11,30.99863,0,12,1,0,1.539575,0,0,0,1.539575,0,0,0,0,0,4,79.8,17.2,0,69.3,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,69.3,9.489646,1.386294,.4315066,1 +14,2,95,1,3,230080,0,13221.11,31.99863,0,12,1,49.97775,0,0,0,0,49.97775,0,0,0,4,0,4,79.8,17.2,0,69.3,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,69.3,9.489646,1.386294,3.911578,1 +14,2,95,1,4,230080,0,13221.11,32.99863,0,12,1,21.96015,.7726718,0,0,0,22.73282,0,0,0,1,0,4,79.8,17.2,0,69.3,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,69.3,9.489646,1.386294,3.12381,1 +14,2,95,1,5,230080,0,13221.11,33.99863,0,12,1,158.7243,6.840176,3.665689,0,0,169.2302,0,0,0,1,10,4,79.8,17.2,0,69.3,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,69.3,9.489646,1.386294,5.13126,1 +14,2,95,1,1,230081,0,13221.11,36.16427,1,13,1,361.8317,29.88354,.794071,0,0,392.5093,0,0,0,21,20,4,63.3,20.7,0,37.5,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,37.5,9.489646,1.386294,5.97256,1 +14,2,95,1,2,230081,0,13221.11,37.16427,1,13,1,330.8398,39.82143,86.61197,0,2627.596,3084.87,2,0,0,13,8,4,63.3,20.7,0,37.5,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,37.5,9.489646,1.386294,8.034265,1 +14,2,95,1,3,230081,0,13221.11,38.16427,1,13,1,470.405,41.44637,25.19804,0,876.1014,1413.151,1,0,0,20,22,4,63.3,20.7,0,37.5,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,37.5,9.489646,1.386294,7.253577,1 +14,2,95,1,4,230081,0,13221.11,39.16427,1,13,1,128.2229,29.09719,1.122407,0,0,158.4425,0,0,0,7,8,4,63.3,20.7,0,37.5,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,37.5,9.489646,1.386294,5.065392,1 +14,2,95,1,5,230081,0,13221.11,40.16427,1,13,1,118.2735,10.00733,3.152493,0,0,131.4333,0,0,0,3,6,4,63.3,20.7,0,37.5,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,37.5,9.489646,1.386294,4.8785,1 +14,2,95,1,1,230082,0,13221.11,14.93771,0,13,1,7.94071,0,0,0,0,7.94071,0,0,0,1,0,4,81.4,3.4,0,88.6,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,88.6,9.489646,1.386294,2.072003,1 +14,2,95,1,2,230082,0,13221.11,15.93771,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,81.4,3.4,0,88.6,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,88.6,9.489646,1.386294,,0 +14,2,95,1,3,230082,0,13221.11,16.93771,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,81.4,3.4,0,88.6,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,88.6,9.489646,1.386294,,0 +14,2,95,1,4,230082,0,13221.11,17.93771,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,81.4,3.4,0,88.6,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,88.6,9.489646,1.386294,,0 +14,2,95,1,5,230082,0,13221.11,18.93771,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,81.4,3.4,0,88.6,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,88.6,9.489646,1.386294,,0 +14,2,95,1,1,230083,0,13221.11,11.29911,1,13,1,156.1673,8.523028,0,0,0,164.6903,0,0,0,3,8,4,61.7,11.84267,0,48.1,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,1,0,0,48.1,9.489646,1.386294,5.104067,1 +14,2,95,1,2,230083,0,13221.11,12.29911,1,13,1,41.50579,3.026062,.7239382,0,273.4556,318.7114,1,0,0,2,1,4,61.7,11.84267,0,48.1,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,1,0,0,48.1,9.489646,1.386294,5.764286,1 +14,2,95,1,3,230083,0,13221.11,13.29911,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,61.7,11.84267,0,48.1,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,1,0,0,48.1,9.489646,1.386294,,0 +14,2,95,1,4,230083,0,13221.11,14.29911,1,13,1,60.59374,0,0,0,0,60.59374,0,0,0,2,3,4,61.7,11.84267,0,48.1,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,1,0,0,48.1,9.489646,1.386294,4.104192,1 +14,2,95,1,5,230083,0,13221.11,15.29911,1,13,1,364.2229,36.38563,0,0,0,400.6085,0,0,0,15,12,4,61.7,11.84267,0,48.1,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,1,0,0,48.1,9.489646,1.386294,5.992985,1 +11,2,0,1,1,230112,1,5907.332,28.59411,1,12,1,24.961,0,19.24077,0,299.61,343.8118,1,0,0,2,0,2,88.8,13.8,0,61.4,0,0,0,0,.6931472,0,0,0,0,1,0,0,61.4,8.684119,.6931472,5.840094,1 +11,2,0,1,2,230112,1,5907.332,29.59411,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,88.8,13.8,0,61.4,0,0,0,0,.6931472,0,0,0,0,1,0,0,61.4,8.684119,.6931472,,0 +11,2,0,1,3,230112,1,5907.332,30.59411,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,88.8,13.8,0,61.4,0,0,0,0,.6931472,0,0,0,0,1,0,0,61.4,8.684119,.6931472,,0 +11,2,0,1,4,230112,1,5907.332,31.59411,1,12,1,18.34862,0,0,119.6649,0,18.34862,0,0,6,1,0,2,88.8,13.8,0,61.4,0,0,0,0,.6931472,0,0,0,0,1,0,0,61.4,8.684119,.6931472,2.909554,1 +11,2,0,1,5,230112,1,5907.332,32.59411,1,12,1,37.87165,0,0,0,0,37.87165,0,0,0,1,0,2,88.8,13.8,0,61.4,0,0,0,0,.6931472,0,0,0,0,1,0,0,61.4,8.684119,.6931472,3.634203,1 +11,2,0,1,1,230113,1,5907.332,11.42505,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,73.3,11.84267,0,81.5,0,0,1,0,.6931472,0,0,0,0,1,0,0,81.5,8.684119,.6931472,,0 +11,2,0,1,2,230113,1,5907.332,12.42505,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,73.3,11.84267,0,81.5,0,0,1,0,.6931472,0,0,0,0,1,0,0,81.5,8.684119,.6931472,,0 +11,2,0,1,3,230113,1,5907.332,13.42505,0,12,1,8.230905,0,0,0,0,8.230905,0,0,0,1,0,2,73.3,11.84267,0,81.5,0,0,1,0,.6931472,0,0,0,0,1,0,0,81.5,8.684119,.6931472,2.107896,1 +11,2,0,1,4,230113,1,5907.332,14.42505,0,12,1,66.61348,0,0,79.77663,0,66.61348,0,0,2,3,1,2,73.3,11.84267,0,81.5,0,0,1,0,.6931472,0,0,0,0,1,0,0,81.5,8.684119,.6931472,4.198907,1 +11,2,0,1,5,230113,1,5907.332,15.42505,0,12,1,15.95359,0,0,0,0,15.95359,0,0,0,1,0,2,73.3,11.84267,0,81.5,0,0,1,0,.6931472,0,0,0,0,1,0,0,81.5,8.684119,.6931472,2.769684,1 +16,2,95,0,1,230120,0,14376.54,15.27721,1,14,1,0,0,0,0,0,0,0,0,0,0,0,4,83.5,10.3,0,77.3,1000,669.48,1,1,1.386294,6.506501,0,4.564348,6.959049,0,0,0,77.3,9.573422,1.386294,,0 +16,2,95,0,2,230120,0,14376.54,16.27721,1,14,1,32.01147,9.483994,0,0,0,41.49546,0,0,0,4,0,4,83.5,10.3,0,77.3,1000,669.48,1,1,1.386294,6.506501,0,4.564348,6.959049,0,0,0,77.3,9.573422,1.386294,3.725584,1 +16,2,95,0,3,230120,0,14376.54,17.27721,1,14,1,6.145742,2.61194,0,0,0,8.757682,0,0,0,1,0,4,83.5,10.3,0,77.3,1000,669.48,1,1,1.386294,6.506501,0,4.564348,6.959049,0,0,0,77.3,9.573422,1.386294,2.169931,1 +16,2,95,0,1,230121,0,14376.54,11.54278,0,14,1,114.6646,0,0,417.0827,0,114.6646,0,0,29,9,0,4,95,11.84267,1,70.4,1000,669.48,1,0,1.386294,6.506501,0,4.564348,6.959049,0,0,0,70.4,9.573422,1.386294,4.742011,1 +16,2,95,0,2,230121,0,14376.54,12.54278,0,14,1,16.00573,3.320592,0,0,0,19.32633,0,0,0,2,0,4,95,11.84267,1,70.4,1000,669.48,1,0,1.386294,6.506501,0,4.564348,6.959049,0,0,0,70.4,9.573422,1.386294,2.961468,1 +16,2,95,0,3,230121,0,14376.54,13.54278,0,14,1,28.09482,0,0,0,0,28.09482,0,0,0,4,0,4,95,11.84267,1,70.4,1000,669.48,1,0,1.386294,6.506501,0,4.564348,6.959049,0,0,0,70.4,9.573422,1.386294,3.335585,1 +16,2,95,0,1,230122,0,14376.54,44.41615,0,14,1,53.82215,0,0,32.68331,0,53.82215,0,0,5,1,0,4,72.3,17.2,0,69.3,1000,669.48,0,0,1.386294,6.506501,0,4.564348,6.959049,0,0,0,69.3,9.573422,1.386294,3.985685,1 +16,2,95,0,2,230122,0,14376.54,45.41615,0,14,1,21.97802,7.90731,8.504539,0,786.4548,824.8447,1,0,0,3,0,4,72.3,17.2,0,69.3,1000,669.48,0,0,1.386294,6.506501,0,4.564348,6.959049,0,0,0,69.3,9.573422,1.386294,6.715195,1 +16,2,95,0,3,230122,0,14376.54,46.41615,0,14,1,9.657595,0,0,0,0,9.657595,0,0,0,1,0,4,72.3,17.2,0,69.3,1000,669.48,0,0,1.386294,6.506501,0,4.564348,6.959049,0,0,0,69.3,9.573422,1.386294,2.267745,1 +16,2,95,0,1,230123,0,14376.54,39.66598,1,14,1,151.326,46.30785,0,406.9683,468.6011,666.235,1,0,33,7,0,4,66,27.6,0,84.1,1000,669.48,0,0,1.386294,6.506501,0,4.564348,6.959049,0,0,0,84.1,9.573422,1.386294,6.501643,1 +16,2,95,0,2,230123,0,14376.54,40.66598,1,14,1,246.8896,57.50119,0,102.7234,0,304.3908,0,0,8,55,19,4,66,27.6,0,84.1,1000,669.48,0,0,1.386294,6.506501,0,4.564348,6.959049,0,0,0,84.1,9.573422,1.386294,5.718313,1 +16,2,95,0,3,230123,0,14376.54,41.66598,1,14,1,25.89991,31.58472,0,0,0,57.48463,0,0,0,3,0,4,66,27.6,0,84.1,1000,669.48,0,0,1.386294,6.506501,0,4.564348,6.959049,0,0,0,84.1,9.573422,1.386294,4.051517,1 +13,2,0,0,1,230127,0,3255.132,24.11773,0,12,1,6.24025,0,0,0,0,6.24025,0,0,0,1,0,1,71.8,0,0,77.3,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,77.3,8.088295,0,1.83102,1 +13,2,0,0,1,230128,0,1755.425,20.12047,0,12,1,213.9626,3.213729,14.56058,0,0,231.7369,0,0,0,14,0,1,64.9,24.1,1,79.5,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,79.5,7.471036,0,5.445602,1 +13,2,0,0,2,230128,0,1755.425,21.12047,0,12,1,332.0354,3.798376,1.433349,0,0,337.2671,0,0,0,2,0,1,64.9,24.1,1,79.5,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,79.5,7.471036,0,5.820875,1 +13,2,0,0,3,230128,0,1755.425,22.12047,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,64.9,24.1,1,79.5,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,79.5,7.471036,0,,0 +13,2,0,1,1,230150,0,13334.31,4.150582,0,12,1,18.81861,21.61526,14.37533,0,258.6775,313.4867,1,0,0,2,0,4,81.35272,11.84267,0,100,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,100,9.498171,1.386294,5.747757,1 +13,2,0,1,2,230150,0,13334.31,5.150582,0,12,1,47.57328,0,0,0,187.0975,234.6708,1,0,0,4,0,4,81.35272,11.84267,0,100,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,100,9.498171,1.386294,5.458184,1 +13,2,0,1,3,230150,0,13334.31,6.150582,0,12,1,27.31277,0,0,0,0,27.31277,0,0,0,1,0,4,81.35272,11.84267,0,100,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,100,9.498171,1.386294,3.307354,1 +13,2,0,1,4,230150,0,13334.31,7.150582,0,12,1,30.64516,0,19.75806,0,0,50.40322,0,0,0,2,0,4,81.35272,11.84267,0,100,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,100,9.498171,1.386294,3.920055,1 +13,2,0,1,5,230150,0,13334.31,8.150581,0,12,1,16.39344,0,0,0,0,16.39344,0,0,0,1,0,4,81.35272,11.84267,0,100,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,100,9.498171,1.386294,2.796881,1 +13,2,0,1,1,230151,0,13334.31,7.088295,0,12,1,5.227392,0,0,0,0,5.227392,0,0,0,1,0,4,75,11.84267,0,96.3,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,96.3,9.498171,1.386294,1.653912,1 +13,2,0,1,2,230151,0,13334.31,8.088296,0,12,1,18.26045,0,0,0,0,18.26045,0,0,0,1,0,4,75,11.84267,0,96.3,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,96.3,9.498171,1.386294,2.904738,1 +13,2,0,1,3,230151,0,13334.31,9.088296,0,12,1,19.82379,0,0,0,0,19.82379,0,0,0,1,0,4,75,11.84267,0,96.3,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,96.3,9.498171,1.386294,2.986883,1 +13,2,0,1,4,230151,0,13334.31,10.0883,0,12,1,30.64516,0,27.71371,0,0,58.35887,0,0,0,2,0,4,75,11.84267,0,96.3,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,96.3,9.498171,1.386294,4.066611,1 +13,2,0,1,5,230151,0,13334.31,11.0883,0,12,1,237.8033,0,24.77231,0,0,262.5756,0,0,0,5,0,4,75,11.84267,0,96.3,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,96.3,9.498171,1.386294,5.570539,1 +13,2,0,1,1,230152,0,13334.31,27.40589,1,12,1,58.54678,20.59592,18.50497,0,0,97.64767,0,0,0,6,0,4,76.1,10.3,0,89.8,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,89.8,9.498171,1.386294,4.581366,1 +13,2,0,1,2,230152,0,13334.31,28.40589,1,12,1,129.5051,28.81307,27.87122,0,0,186.1893,0,0,0,9,0,4,76.1,10.3,0,89.8,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,89.8,9.498171,1.386294,5.226764,1 +13,2,0,1,3,230152,0,13334.31,29.40589,1,12,1,75.3304,20.36123,0,215.859,0,95.69163,0,0,10,5,0,4,76.1,10.3,0,89.8,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,89.8,9.498171,1.386294,4.561131,1 +13,2,0,1,4,230152,0,13334.31,30.40589,1,12,1,32.25806,7.16129,0,510.0807,0,39.41935,0,0,23,3,0,4,76.1,10.3,0,89.8,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,89.8,9.498171,1.386294,3.674257,1 +13,2,0,1,5,230152,0,13334.31,31.40589,1,12,1,101.8215,5.68306,12.75045,0,0,120.255,0,0,0,6,0,4,76.1,10.3,0,89.8,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,89.8,9.498171,1.386294,4.789615,1 +13,2,0,1,1,230153,0,13334.31,34.18754,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,78.2,3.4,0,89.8,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,89.8,9.498171,1.386294,,0 +13,2,0,1,2,230153,0,13334.31,35.18754,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,78.2,3.4,0,89.8,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,89.8,9.498171,1.386294,,0 +13,2,0,1,3,230153,0,13334.31,36.18754,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,78.2,3.4,0,89.8,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,89.8,9.498171,1.386294,,0 +13,2,0,1,4,230153,0,13334.31,37.18754,0,12,1,138.1048,0,0,0,0,138.1048,0,0,0,6,0,4,78.2,3.4,0,89.8,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,89.8,9.498171,1.386294,4.928013,1 +13,2,0,1,5,230153,0,13334.31,38.18754,0,12,1,71.03825,0,0,0,0,71.03825,0,0,0,3,0,4,78.2,3.4,0,89.8,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,89.8,9.498171,1.386294,4.263218,1 +16,2,95,0,1,230154,0,7921.408,11.35661,1,12,1,8.060323,0,0,0,0,8.060323,0,0,0,1,0,5,83.3,11.84267,0,88.9,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,88.9,8.97745,1.609438,2.086954,1 +16,2,95,0,2,230154,0,7921.408,12.35661,1,12,1,9.555662,0,0,0,0,9.555662,0,0,0,1,0,5,83.3,11.84267,0,88.9,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,88.9,8.97745,1.609438,2.257134,1 +16,2,95,0,3,230154,0,7921.408,13.35661,1,12,1,16.46181,0,0,0,0,16.46181,0,0,0,1,0,6,83.3,11.84267,0,88.9,1000,1000,1,1,1.791759,6.907755,0,4.564348,6.959049,0,0,0,88.9,8.97745,1.791759,2.801043,1 +16,2,95,0,4,230154,0,7921.408,14.35661,1,12,1,11.96649,2.373355,0,0,0,14.33985,0,0,0,2,0,6,83.3,11.84267,0,88.9,1000,1000,1,1,1.791759,6.907755,0,4.564348,6.959049,0,0,0,88.9,8.97745,1.791759,2.663042,1 +16,2,95,0,5,230154,0,7921.408,15.35661,1,12,1,13.05294,3.071066,0,0,0,16.124,0,0,0,2,0,6,83.3,11.84267,0,88.9,1000,1000,1,1,1.791759,6.907755,0,4.564348,6.959049,0,0,0,88.9,8.97745,1.791759,2.780309,1 +16,2,95,0,1,230155,0,7921.408,37.7796,0,14,1,0,0,0,0,0,0,0,0,0,0,0,5,79.8,6.9,0,59.1,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,59.1,8.97745,1.609438,,0 +16,2,95,0,2,230155,0,7921.408,38.7796,0,14,1,43.00048,0,0,0,0,43.00048,0,0,0,1,0,5,79.8,6.9,0,59.1,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,59.1,8.97745,1.609438,3.761211,1 +16,2,95,0,3,230155,0,7921.408,39.7796,0,14,1,0,0,0,0,0,0,0,0,0,0,0,6,79.8,6.9,0,59.1,1000,1000,0,0,1.791759,6.907755,0,4.564348,6.959049,0,0,0,59.1,8.97745,1.791759,,0 +16,2,95,0,4,230155,0,7921.408,40.7796,0,14,1,0,0,0,0,0,0,0,0,0,0,0,6,79.8,6.9,0,59.1,1000,1000,0,0,1.791759,6.907755,0,4.564348,6.959049,0,0,0,59.1,8.97745,1.791759,,0 +16,2,95,0,5,230155,0,7921.408,41.7796,0,14,1,0,0,0,0,0,0,0,0,0,0,0,6,79.8,6.9,0,59.1,1000,1000,0,0,1.791759,6.907755,0,4.564348,6.959049,0,0,0,59.1,8.97745,1.791759,,0 +16,2,95,0,1,230156,0,7921.408,35.75633,1,12,1,10.40042,0,0,0,0,10.40042,0,0,0,1,0,5,73.9,10.3,0,89.8,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,89.8,8.97745,1.609438,2.341846,1 +16,2,95,0,2,230156,0,7921.408,36.75633,1,12,1,36.31152,12.90014,0,0,616.1252,665.3369,1,0,0,2,1,5,73.9,10.3,0,89.8,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,89.8,8.97745,1.609438,6.500293,1 +16,2,95,0,3,230156,0,7921.408,37.75633,1,12,1,186.4355,5.061458,0,0,0,191.4969,0,0,0,4,0,6,73.9,10.3,0,89.8,1000,1000,0,0,1.791759,6.907755,0,4.564348,6.959049,0,0,0,89.8,8.97745,1.791759,5.254872,1 +16,2,95,0,4,230156,0,7921.408,38.75633,1,12,1,17.35142,0,0,0,0,17.35142,0,0,0,1,0,6,73.9,10.3,0,89.8,1000,1000,0,0,1.791759,6.907755,0,4.564348,6.959049,0,0,0,89.8,8.97745,1.791759,2.853674,1 +16,2,95,0,5,230156,0,7921.408,39.75633,1,12,1,20.03263,0,0,0,0,20.03263,0,0,0,1,0,6,73.9,10.3,0,89.8,1000,1000,0,0,1.791759,6.907755,0,4.564348,6.959049,0,0,0,89.8,8.97745,1.791759,2.997363,1 +16,2,95,0,1,230157,0,7921.408,8.109514,0,12,1,14.82059,0,0,0,0,14.82059,0,0,0,2,0,5,81.7,11.84267,0,100,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,100,8.97745,1.609438,2.696018,1 +16,2,95,0,2,230157,0,7921.408,9.109514,0,12,1,9.555662,2.197802,0,0,0,11.75346,0,0,0,1,0,5,81.7,11.84267,0,100,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,100,8.97745,1.609438,2.464148,1 +16,2,95,0,3,230157,0,7921.408,10.10951,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,81.7,11.84267,0,100,1000,1000,1,0,1.791759,6.907755,0,4.564348,6.959049,0,0,0,100,8.97745,1.791759,,0 +16,2,95,0,4,230157,0,7921.408,11.10951,0,12,1,10.37096,0,0,0,0,10.37096,0,0,0,2,0,6,81.7,11.84267,0,100,1000,1000,1,0,1.791759,6.907755,0,4.564348,6.959049,0,0,0,100,8.97745,1.791759,2.33901,1 +16,2,95,0,5,230157,0,7921.408,12.10951,0,12,1,6.88905,0,0,0,0,6.88905,0,0,0,1,0,6,81.7,11.84267,0,100,1000,1000,1,0,1.791759,6.907755,0,4.564348,6.959049,0,0,0,100,8.97745,1.791759,1.929933,1 +16,2,95,0,1,230158,0,7921.408,1.960301,0,12,1,9.360374,0,0,0,0,9.360374,0,0,0,1,0,5,81.35272,11.84267,0,63,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,63,8.97745,1.609438,2.236485,1 +16,2,95,0,2,230158,0,7921.408,2.960301,0,12,1,25.3225,2.627807,0,0,603.4401,631.3903,1,0,0,3,0,5,81.35272,11.84267,0,63,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,63,8.97745,1.609438,6.447924,1 +16,2,95,0,3,230158,0,7921.408,3.960301,0,12,1,10.09658,1.294996,0,0,0,11.39157,0,0,0,2,0,6,81.35272,11.84267,0,63,1000,1000,1,0,1.791759,6.907755,0,4.564348,6.959049,0,0,0,63,8.97745,1.791759,2.432874,1 +16,2,95,0,4,230158,0,7921.408,4.960301,0,12,1,17.94974,5.544476,0,0,0,23.49422,0,0,0,3,0,6,81.35272,11.84267,0,63,1000,1000,1,0,1.791759,6.907755,0,4.564348,6.959049,0,0,0,63,8.97745,1.791759,3.156754,1 +16,2,95,0,5,230158,0,7921.408,5.960301,0,12,1,6.163887,4.314721,0,0,0,10.47861,0,0,0,1,0,6,81.35272,11.84267,0,63,1000,1000,1,0,1.791759,6.907755,0,4.564348,6.959049,0,0,0,63,8.97745,1.791759,2.349336,1 +11,2,0,0,1,230162,0,14051.03,7.216975,1,12,1,26.53271,7.496136,0,0,0,34.02885,0,0,0,3,0,4,86.7,11.84267,0,96.3,0,535.16,1,1,1.386294,6.282566,0,0,0,0,0,0,96.3,9.550522,1.386294,3.527209,1 +11,2,0,0,2,230162,0,14051.03,8.216974,1,12,1,27.46212,0,0,0,0,27.46212,0,0,0,2,0,4,86.7,11.84267,0,96.3,0,535.16,1,1,1.386294,6.282566,0,0,0,0,0,0,96.3,9.550522,1.386294,3.312808,1 +11,2,0,0,3,230162,0,14051.03,9.216974,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,86.7,11.84267,0,96.3,0,535.16,1,1,1.386294,6.282566,0,0,0,0,0,0,96.3,9.550522,1.386294,,0 +11,2,0,0,1,230163,0,14051.03,17.04038,0,12,1,10.69037,0,0,0,0,10.69037,0,0,0,1,0,4,80.3,6.9,0,78.4,0,535.16,1,0,1.386294,6.282566,0,0,0,0,0,0,78.4,9.550522,1.386294,2.369343,1 +11,2,0,0,2,230163,0,14051.03,18.04038,0,12,1,0,6.368371,0,0,0,6.368371,0,0,0,0,0,4,80.3,6.9,0,78.4,0,535.16,0,0,1.386294,6.282566,0,0,0,0,0,0,78.4,9.550522,1.386294,1.851344,1 +11,2,0,0,3,230163,0,14051.03,19.04038,0,12,1,67.05679,1.404421,0,0,0,68.4612,0,0,0,3,0,4,80.3,6.9,0,78.4,0,535.16,0,0,1.386294,6.282566,0,0,0,0,0,0,78.4,9.550522,1.386294,4.226267,1 +11,2,0,0,1,230164,0,14051.03,42.25873,0,12,1,17.51674,0,0,0,0,17.51674,0,0,0,1,0,4,51.1,6.9,0,46.6,0,535.16,0,0,1.386294,6.282566,0,0,0,1,0,0,46.6,9.550522,1.386294,2.863157,1 +11,2,0,0,2,230164,0,14051.03,43.25873,0,12,1,0,0,9.327652,0,0,9.327652,0,0,0,0,0,4,51.1,6.9,0,46.6,0,535.16,0,0,1.386294,6.282566,0,0,0,1,0,0,46.6,9.550522,1.386294,2.232983,1 +11,2,0,0,3,230164,0,14051.03,44.25873,0,12,1,21.52146,7.758995,24.91547,0,0,54.19593,0,0,0,1,1,4,51.1,6.9,0,46.6,0,535.16,0,0,1.386294,6.282566,0,0,0,1,0,0,46.6,9.550522,1.386294,3.992606,1 +11,2,0,0,1,230165,0,14051.03,40.2601,1,12,1,86.29572,18.4441,0,0,0,104.7398,0,0,0,7,0,4,75,3.4,0,89.8,0,535.16,0,0,1.386294,6.282566,0,0,0,1,0,0,89.8,9.550522,1.386294,4.651479,1 +11,2,0,0,2,230165,0,14051.03,41.2601,1,12,1,144.9337,21.90814,0,0,0,166.8419,0,0,0,7,0,4,75,3.4,0,89.8,0,535.16,0,0,1.386294,6.282566,0,0,0,1,0,0,89.8,9.550522,1.386294,5.117046,1 +11,2,0,0,3,230165,0,14051.03,42.2601,1,12,1,33.37668,6.675336,46.71868,0,0,86.7707,0,0,0,3,0,4,75,3.4,0,89.8,0,535.16,0,0,1.386294,6.282566,0,0,0,1,0,0,89.8,9.550522,1.386294,4.463269,1 +13,2,0,0,1,230221,0,12099.12,58.49418,0,13,1,277.6919,56.54302,49.90211,0,0,384.1371,0,0,0,14,10,1,80.9,13.8,0,73.9,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,73.9,9.40097,0,5.950999,1 +13,2,0,0,2,230221,0,12099.12,59.49418,0,13,1,97.06439,32.24432,0,0,0,129.3087,0,0,0,7,2,1,80.9,13.8,0,73.9,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,73.9,9.40097,0,4.862203,1 +13,2,0,0,3,230221,0,12099.12,60.49418,0,13,1,32.07629,4.096229,46.3199,0,0,82.49242,0,0,0,3,1,1,80.9,13.8,0,73.9,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,73.9,9.40097,0,4.412706,1 +14,2,95,1,1,230225,0,4199.414,19.64956,1,12,1,27.39545,13.98094,0,0,0,41.37639,0,0,0,3,0,1,79.8,6.9,0,93.2,175,175,0,0,0,5.164786,0,4.564348,5.216079,0,0,0,93.2,8.342938,0,3.72271,1 +14,2,95,1,2,230225,0,4199.414,20.64956,1,12,1,42.47104,0,0,0,0,42.47104,0,0,0,5,0,1,79.8,6.9,0,93.2,175,175,0,0,0,5.164786,0,4.564348,5.216079,0,0,0,93.2,8.342938,0,3.748822,1 +14,2,95,1,3,230225,0,4199.414,21.64956,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,79.8,6.9,0,93.2,175,175,0,0,0,5.164786,0,4.564348,5.216079,0,0,0,93.2,8.342938,0,,0 +14,2,95,1,4,230225,0,4199.414,22.64956,1,12,1,12.20008,0,0,0,0,12.20008,0,0,0,1,0,1,79.8,6.9,0,93.2,175,175,0,0,0,5.164786,0,4.564348,5.216079,0,0,0,93.2,8.342938,0,2.501443,1 +14,2,95,1,5,230225,0,4199.414,23.64956,1,12,1,16.4956,0,0,0,0,16.4956,0,0,0,1,0,1,79.8,6.9,0,93.2,175,175,0,0,0,5.164786,0,4.564348,5.216079,0,0,0,93.2,8.342938,0,2.803094,1 +16,2,95,1,1,230226,0,9771.848,29.36071,0,12,1,31.10298,8.07632,0,0,0,39.1793,0,0,0,2,0,4,86.2,17.2,0,64.8,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,64.8,9.187364,1.386294,3.668149,1 +16,2,95,1,2,230226,0,9771.848,30.36071,0,12,1,76.40557,20.91302,33.45507,0,0,130.7737,0,0,0,3,0,4,86.2,17.2,0,64.8,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,64.8,9.187364,1.386294,4.873468,1 +16,2,95,1,3,230226,0,9771.848,31.36071,0,12,1,80.30837,34.18502,0,0,0,114.4934,0,0,0,5,0,4,86.2,17.2,0,64.8,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,64.8,9.187364,1.386294,4.740517,1 +16,2,95,1,1,230227,0,9771.848,24.79124,1,8,1,222.9482,8.531103,0,0,0,231.4794,0,0,0,3,3,4,94.1,6.9,0,97.7,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,97.7,9.187364,1.386294,5.444491,1 +16,2,95,1,2,230227,0,9771.848,25.79124,1,8,1,72.22489,27.7655,0,0,367.5637,467.554,1,0,0,2,0,4,94.1,6.9,0,97.7,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,97.7,9.187364,1.386294,6.147515,1 +16,2,95,1,3,230227,0,9771.848,26.79124,1,8,1,143.3921,18.03965,0,0,825.9692,987.4009,1,0,0,3,2,4,94.1,6.9,0,97.7,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,97.7,9.187364,1.386294,6.895076,1 +16,2,95,1,1,230228,0,9771.848,6.551677,1,8,1,48.61474,0,0,0,0,48.61474,0,0,0,3,0,4,70,11.84267,0,66.7,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,0,0,0,66.7,9.187364,1.386294,3.883927,1 +16,2,95,1,2,230228,0,9771.848,7.551677,1,8,1,0,0,0,0,0,0,0,0,0,0,0,4,70,11.84267,0,66.7,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,0,0,0,66.7,9.187364,1.386294,,0 +16,2,95,1,3,230228,0,9771.848,8.551677,1,8,1,13.43612,0,0,0,0,13.43612,0,0,0,1,0,4,70,11.84267,0,66.7,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,0,0,0,66.7,9.187364,1.386294,2.597947,1 +16,2,95,1,1,230229,0,9771.848,2.223135,1,8,1,20.38683,10.40251,0,0,0,30.78934,0,0,0,2,0,4,81.35272,11.84267,0,77.8,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,0,0,0,77.8,9.187364,1.386294,3.427168,1 +16,2,95,1,2,230229,0,9771.848,3.223135,1,8,1,12.97453,1.874099,0,0,0,14.84863,0,0,0,1,0,4,81.35272,11.84267,0,77.8,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,0,0,0,77.8,9.187364,1.386294,2.697908,1 +16,2,95,1,3,230229,0,9771.848,4.223135,1,8,1,22.90749,24.03084,0,0,0,46.93833,0,0,0,2,1,4,81.35272,11.84267,0,77.8,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,0,0,0,77.8,9.187364,1.386294,3.848835,1 +13,2,0,1,1,230230,0,8665.641,52.3614,1,16,1,0,0,0,0,0,0,0,0,0,0,0,2,83.5,17.2,0,76.1,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,76.1,9.067237,.6931472,,0 +13,2,0,1,1,230231,0,8665.641,60.39699,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,87.8,13.8,0,72.7,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,72.7,9.067237,.6931472,,0 +6,2,25,1,1,230232,0,10397.07,29.50582,0,13,1,0,0,0,58.50234,0,0,0,0,4,0,0,3,87.8,0,0,63.6,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,63.6,9.249375,1.098612,,0 +6,2,25,1,2,230232,0,10397.07,30.50582,0,13,1,0,0,0,0,0,0,0,0,0,0,0,3,87.8,0,0,63.6,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,63.6,9.249375,1.098612,,0 +6,2,25,1,3,230232,0,10397.07,31.50582,0,13,1,62.09394,20.29412,0,153.6435,0,82.38806,0,0,7,2,0,3,87.8,0,0,63.6,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,63.6,9.249375,1.098612,4.41144,1 +6,2,25,1,1,230233,0,10397.07,1.752224,1,14,1,34.84139,3.614145,0,0,0,38.45554,0,0,0,5,0,3,81.35272,11.84267,0,92.6,1000,1000,1,1,1.098612,6.907755,0,3.258096,8.294049,0,0,0,92.6,9.249375,1.098612,3.649503,1 +6,2,25,1,2,230233,0,10397.07,2.752224,1,14,1,21.02246,3.368371,0,0,0,24.39083,0,0,0,3,0,3,81.35272,11.84267,0,92.6,1000,1000,1,1,1.098612,6.907755,0,3.258096,8.294049,0,0,0,92.6,9.249375,1.098612,3.194207,1 +6,2,25,1,3,230233,0,10397.07,3.752224,1,14,1,108.1431,62.04126,0,0,0,170.1844,0,0,0,8,0,3,81.35272,11.84267,0,92.6,1000,1000,1,1,1.098612,6.907755,0,3.258096,8.294049,0,0,0,92.6,9.249375,1.098612,5.136882,1 +6,2,25,1,1,230234,0,10397.07,26.89665,1,14,1,98.17992,30.71763,0,50.70203,0,128.8976,0,0,4,9,0,3,52.1,24.1,0,72.7,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,72.7,9.249375,1.098612,4.859018,1 +6,2,25,1,2,230234,0,10397.07,27.89665,1,14,1,101.0511,32.37458,27.94076,0,0,161.3665,0,0,0,6,0,3,52.1,24.1,0,72.7,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,72.7,9.249375,1.098612,5.083678,1 +6,2,25,1,3,230234,0,10397.07,28.89665,1,14,1,201.2335,52.21247,76.82177,0,0,330.2678,0,0,0,7,4,3,52.1,24.1,0,72.7,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,1,0,0,72.7,9.249375,1.098612,5.799904,1 +6,2,25,0,1,230238,0,6097.361,42.86927,0,12,1,0,5.175117,0,0,0,5.175117,0,0,0,0,0,3,87.8,0,0,65.9,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,65.9,8.715775,1.098612,1.643862,1 +6,2,25,0,2,230238,0,6097.361,43.86927,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,87.8,0,0,65.9,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,65.9,8.715775,1.098612,,0 +6,2,25,0,3,230238,0,6097.361,44.86927,0,12,1,120.3084,8.612335,0,0,0,128.9207,0,0,0,3,0,3,87.8,0,0,65.9,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,65.9,8.715775,1.098612,4.859198,1 +6,2,25,1,1,230239,0,6097.361,42.14648,1,10,1,87.03607,4.155777,30.92002,0,0,122.1119,0,0,0,4,1,3,87.4,13.8,1,56,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,1,0,56,8.715775,1.098612,4.804937,1 +6,2,25,1,2,230239,0,6097.361,43.14648,1,10,1,4.805382,0,0,0,0,4.805382,0,0,0,1,0,3,87.4,13.8,1,56,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,1,0,56,8.715775,1.098612,1.569737,1 +6,2,25,1,3,230239,0,6097.361,44.14648,1,10,1,0,0,0,0,0,0,0,0,0,0,0,3,87.4,13.8,1,56,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,1,0,56,8.715775,1.098612,,0 +6,2,25,0,1,230240,0,6097.361,15.74812,0,10,1,45.21694,7.292211,37.10925,0,0,89.6184,0,0,0,2,1,3,80.3,10.3,0,65,1000,1000,1,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,65,8.715775,1.098612,4.495561,1 +6,2,25,0,2,230240,0,6097.361,16.74812,0,10,1,111.8933,.9610764,46.12686,0,607.8808,766.8621,1,0,0,4,0,3,80.3,10.3,0,65,1000,1000,1,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,65,8.715775,1.098612,6.642307,1 +6,2,25,0,3,230240,0,6097.361,17.74812,0,10,1,9.69163,0,0,0,0,9.69163,0,0,0,0,0,3,80.3,10.3,0,65,1000,1000,1,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,65,8.715775,1.098612,2.271263,1 +6,2,25,1,1,230241,0,8665.641,20.6653,0,10,1,24.44098,1.040042,0,0,0,25.48102,0,0,0,2,0,1,62.2,13.8,0,55.7,630,0,0,0,0,0,0,3.258096,7.832014,1,0,0,55.7,9.067237,0,3.237934,1 +6,2,25,1,2,230241,0,8665.641,21.6653,0,10,1,46.72718,0,0,0,0,46.72718,0,0,0,1,0,1,62.2,13.8,0,55.7,630,0,0,0,0,0,0,3.258096,7.832014,1,0,0,55.7,9.067237,0,3.844326,1 +6,2,25,1,3,230241,0,8665.641,22.6653,0,10,1,0,0,0,0,0,0,0,0,0,0,0,1,62.2,13.8,0,55.7,630,0,0,0,0,0,0,3.258096,7.832014,1,0,0,55.7,9.067237,0,,0 +13,2,0,0,1,230243,0,3789.748,25.74675,0,17,1,12.4805,0,0,0,0,12.4805,0,0,0,1,0,1,78.7,17.2,0,68.2,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,68.2,8.240318,0,2.524167,1 +13,2,0,0,2,230243,0,3789.748,26.74675,0,17,1,0,0,0,0,0,0,0,0,0,0,0,1,78.7,17.2,0,68.2,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,68.2,8.240318,0,,0 +13,2,0,0,3,230243,0,3789.748,27.74675,0,17,1,0,0,0,0,0,0,0,0,0,0,0,1,78.7,17.2,0,68.2,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,68.2,8.240318,0,,0 +13,2,0,0,1,230244,0,3725.806,24.20808,0,12,1,40.82163,4.576183,0,0,0,45.39782,0,0,0,0,1,1,83,6.9,0,87.5,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,87.5,8.223307,0,3.815464,1 +13,2,0,0,2,230244,0,3725.806,25.20808,0,12,1,60.77401,0,0,0,0,60.77401,0,0,0,1,0,1,83,6.9,0,87.5,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,87.5,8.223307,0,4.107162,1 +13,2,0,0,3,230244,0,3725.806,26.20808,0,12,1,10.95698,0,0,0,0,10.95698,0,0,0,1,0,1,83,6.9,0,87.5,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,87.5,8.223307,0,2.393977,1 +13,2,0,0,1,230245,0,2689.443,24.93908,0,15,1,49.30837,205.5174,0,0,0,254.8258,0,0,0,2,0,1,75.5,13.8,1,40.5,150,0,0,0,0,0,1,4.564348,5.061929,0,1,0,40.5,7.897461,0,5.54058,1 +13,2,0,0,2,230245,0,2689.443,25.93908,0,15,1,0,178.7386,0,0,0,178.7386,0,0,0,0,0,1,75.5,13.8,1,40.5,150,0,0,0,0,0,1,4.564348,5.061929,0,1,0,40.5,7.897461,0,5.185925,1 +13,2,0,0,3,230245,0,2689.443,26.93908,0,15,1,11.41352,113.5865,0,0,0,125,0,0,0,2,0,1,75.5,13.8,1,40.5,150,0,0,0,0,0,1,4.564348,5.061929,0,1,0,40.5,7.897461,0,4.828314,1 +11,2,0,0,1,230266,0,7068.035,20.70089,1,14,1,33.67135,17.17109,0,0,0,50.84243,0,0,0,3,0,3,48.9,10.3,0,72.7,0,98.2,0,0,1.098612,4.587006,0,0,0,0,0,0,72.7,8.86348,1.098612,3.928731,1 +11,2,0,0,2,230266,0,7068.035,21.70089,1,14,1,65.05017,12.96703,0,0,0,78.0172,0,0,0,3,0,3,48.9,10.3,0,72.7,0,98.2,0,0,1.098612,4.587006,0,0,0,0,0,0,72.7,8.86348,1.098612,4.356929,1 +11,2,0,0,3,230266,0,7068.035,22.70089,1,14,1,94.44688,33.7928,0,0,0,128.2397,0,0,0,6,0,3,48.9,10.3,0,72.7,0,98.2,0,0,1.098612,4.587006,0,0,0,0,0,0,72.7,8.86348,1.098612,4.853901,1 +11,2,0,0,1,230267,0,7068.035,22.65024,0,14,1,5.720229,12.24129,0,0,0,17.96152,0,0,0,1,0,3,69.1,6.9,0,64.8,0,98.2,0,0,1.098612,4.587006,0,0,0,1,0,0,64.8,8.86348,1.098612,2.888232,1 +11,2,0,0,2,230267,0,7068.035,23.65024,0,14,1,0,6.340181,0,0,0,6.340181,0,0,0,0,0,3,69.1,6.9,0,64.8,0,98.2,0,0,1.098612,4.587006,0,0,0,1,0,0,64.8,8.86348,1.098612,1.846907,1 +11,2,0,0,3,230267,0,7068.035,24.65024,0,14,1,60.22827,43.45478,0,0,0,103.6831,0,0,0,5,0,3,69.1,6.9,0,64.8,0,98.2,0,0,1.098612,4.587006,0,0,0,1,0,0,64.8,8.86348,1.098612,4.641339,1 +14,2,95,0,1,230288,0,8665.641,26.28884,0,12,1,0,7.284904,0,0,0,7.284904,0,0,0,0,0,1,89.9,17.2,1,76.1,60,0,0,0,0,0,0,4.564348,4.145638,0,0,0,76.1,9.067237,0,1.985804,1 +14,2,95,0,2,230288,0,8665.641,27.28884,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,89.9,17.2,1,76.1,60,0,0,0,0,0,0,4.564348,4.145638,0,0,0,76.1,9.067237,0,,0 +11,2,0,0,1,230314,0,11768.33,29.02122,0,16,1,98.54395,19.64639,0,0,0,118.1903,0,0,0,5,0,3,86.2,13.8,0,76.1,0,388.64,0,0,1.098612,5.962654,0,0,0,0,0,0,76.1,9.373252,1.098612,4.772296,1 +11,2,0,0,2,230314,0,11768.33,30.02122,0,16,1,41.08934,6.215958,0,0,0,47.3053,0,0,0,6,0,4,86.2,13.8,0,76.1,0,388.64,0,0,1.386294,5.962654,0,0,0,0,0,0,76.1,9.373252,1.386294,3.856622,1 +11,2,0,0,3,230314,0,11768.33,31.02122,0,16,1,21.94908,4.126427,38.09482,0,0,64.17033,0,0,0,2,0,4,86.2,13.8,0,76.1,0,388.64,0,0,1.386294,5.962654,0,0,0,0,0,0,76.1,9.373252,1.386294,4.161541,1 +11,2,0,0,1,230315,0,11768.33,1.174538,1,17,1,72.02288,10.0104,0,0,0,82.03328,0,0,0,5,0,3,81.35272,11.84267,0,59.3,0,388.64,1,1,1.098612,5.962654,0,0,0,0,0,0,59.3,9.373252,1.098612,4.407125,1 +11,2,0,0,2,230315,0,11768.33,2.174538,1,17,1,24.46249,2.150024,0,0,0,26.61252,0,0,0,1,0,4,81.35272,11.84267,0,59.3,0,388.64,1,1,1.386294,5.962654,0,0,0,0,0,0,59.3,9.373252,1.386294,3.281382,1 +11,2,0,0,3,230315,0,11768.33,3.174538,1,17,1,34.67954,17.37489,0,0,0,52.05443,0,0,0,4,0,4,81.35272,11.84267,0,59.3,0,388.64,1,1,1.386294,5.962654,0,0,0,0,0,0,59.3,9.373252,1.386294,3.95229,1 +11,2,0,0,1,230316,0,11768.33,29.31691,1,17,1,22.3609,12.16849,0,0,718.8248,753.3541,1,0,0,1,0,3,88.3,3.4,0,81.8,0,388.64,0,0,1.098612,5.962654,0,0,0,0,0,0,81.8,9.373252,1.098612,6.624536,1 +11,2,0,0,2,230316,0,11768.33,30.31691,1,17,1,23.88915,0,0,0,0,23.88915,0,0,0,3,0,4,88.3,3.4,0,81.8,0,388.64,0,0,1.386294,5.962654,0,0,0,0,0,0,81.8,9.373252,1.386294,3.173424,1 +11,2,0,0,3,230316,0,11768.33,31.31691,1,17,1,61.8964,0,28.5338,0,0,90.4302,0,0,0,4,0,4,88.3,3.4,0,81.8,0,388.64,0,0,1.386294,5.962654,0,0,0,0,0,0,81.8,9.373252,1.386294,4.504578,1 +11,2,0,1,1,230373,0,15775.37,34.9733,1,12,1,25.09148,5.959226,0,0,0,31.0507,0,0,0,4,0,2,87.2,24.1,0,72.7,0,0,0,0,.6931472,0,0,0,0,0,0,0,72.7,9.666268,.6931472,3.435622,1 +11,2,0,1,2,230373,0,15775.37,35.9733,1,12,1,76.64584,3.65209,16.81884,0,0,97.11677,0,0,0,6,1,2,87.2,24.1,0,72.7,0,0,0,0,.6931472,0,0,0,0,0,0,0,72.7,9.666268,.6931472,4.575914,1 +11,2,0,1,3,230373,0,15775.37,36.9733,1,12,1,27.7533,9.678414,28.63436,0,929.2203,995.2863,1,0,0,2,1,2,87.2,24.1,0,72.7,0,0,0,0,.6931472,0,0,0,0,0,0,0,72.7,9.666268,.6931472,6.90303,1 +11,2,0,1,1,230374,0,15775.37,31.8768,0,16,1,0,0,0,0,0,0,0,0,0,0,0,2,76.6,3.4,0,71.6,0,0,0,0,.6931472,0,0,0,0,0,0,0,71.6,9.666268,.6931472,,0 +11,2,0,1,2,230374,0,15775.37,32.8768,0,16,1,0,0,0,0,0,0,0,0,0,0,0,2,76.6,3.4,0,71.6,0,0,0,0,.6931472,0,0,0,0,0,0,0,71.6,9.666268,.6931472,,0 +11,2,0,1,3,230374,0,15775.37,33.8768,0,16,1,14.53745,0,34.34802,0,0,48.88546,0,0,0,1,0,2,76.6,3.4,0,71.6,0,0,0,0,.6931472,0,0,0,0,0,0,0,71.6,9.666268,.6931472,3.88948,1 +7,2,25,0,1,230375,0,3528.886,20.89528,1,12,1,138.0732,4.971664,35.85265,0,0,178.8975,0,0,0,3,10,1,69.7,6.9,0,83,285.75,144,0,0,0,4.969813,0,3.258096,7.041412,1,0,0,83,8.169021,0,5.186813,1 +7,2,25,0,2,230375,0,3528.886,21.89528,1,12,1,289.6544,0,17.99242,0,0,307.6468,0,0,0,6,18,1,69.7,6.9,0,83,285.75,144,0,0,0,4.969813,0,3.258096,7.041412,1,0,0,83,8.169021,0,5.728952,1 +7,2,25,0,3,230375,0,3528.886,22.89528,1,12,1,175.531,12.72215,48.66927,0,294.7681,531.6905,1,0,0,9,0,1,69.7,6.9,0,83,285.75,144,0,0,0,4.969813,0,3.258096,7.041412,1,0,0,83,8.169021,0,6.276062,1 +7,2,25,0,1,230376,0,2003.519,22.97604,0,12,1,0,2.009274,0,0,0,2.009274,0,0,0,0,0,1,67,13.8,0,72.7,180,0,0,0,0,0,0,3.258096,6.579251,0,1,0,72.7,7.603159,0,.6977732,1 +7,2,25,0,2,230376,0,2003.519,23.97604,0,12,1,11.83712,2.831439,0,0,0,14.66856,0,0,0,1,0,1,67,13.8,0,72.7,180,0,0,0,0,0,0,3.258096,6.579251,0,1,0,72.7,7.603159,0,2.685706,1 +7,2,25,0,3,230376,0,2003.519,24.97604,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,67,13.8,0,72.7,180,0,0,0,0,0,0,3.258096,6.579251,0,1,0,72.7,7.603159,0,,0 +11,2,0,1,1,230409,0,8665.641,20.62149,0,12,1,72.12811,2.408682,45.57438,0,0,120.1112,0,0,0,5,1,1,63.3,3.4,0,51.1,0,0,0,0,0,0,0,0,0,0,0,0,51.1,9.067237,0,4.788418,1 +11,2,0,1,2,230409,0,8665.641,21.62149,0,12,1,64.18919,0,30.40541,0,0,94.5946,0,0,0,4,1,1,63.3,3.4,0,51.1,0,0,0,0,0,0,0,0,0,0,0,0,51.1,9.067237,0,4.5496,1 +11,2,0,1,3,230409,0,8665.641,22.62149,0,12,1,41.38852,6.519804,0,0,0,47.90832,0,0,0,4,0,1,63.3,3.4,0,51.1,0,0,0,0,0,0,0,0,0,0,0,0,51.1,9.067237,0,3.869289,1 +11,2,0,1,1,230410,0,8665.641,19.10472,0,9,1,0,0,0,0,0,0,0,0,0,0,0,1,77.7,0,0,73.9,0,0,0,0,0,0,0,0,0,0,0,0,73.9,9.067237,0,,0 +11,2,0,1,1,230447,0,12724.34,60.48186,1,17,1,122.8437,50.28751,36.25196,0,265.9435,475.3267,1,0,0,9,0,2,66,13.8,0,72.7,0,90.84,0,0,.6931472,4.509099,0,0,0,1,0,0,72.7,9.45135,.6931472,6.164002,1 +11,2,0,1,2,230447,0,12724.34,61.48186,1,17,1,323.4743,42.19125,31.13888,0,0,396.8044,0,0,0,12,6,2,66,13.8,0,72.7,0,90.84,0,0,.6931472,4.509099,0,0,0,1,0,0,72.7,9.45135,.6931472,5.983443,1 +11,2,0,1,3,230447,0,12724.34,62.48186,1,17,1,172.511,34.33921,37.15419,0,0,244.0044,0,0,0,10,0,2,66,13.8,0,72.7,0,90.84,0,0,.6931472,4.509099,0,0,0,1,0,0,72.7,9.45135,.6931472,5.497186,1 +11,2,0,1,1,230448,0,12724.34,60.92813,0,13,1,51.64663,14.2185,42.36801,0,0,108.2331,0,0,0,4,0,2,88.3,10.3,0,69.3,0,90.84,0,0,.6931472,4.509099,0,0,0,1,0,0,69.3,9.45135,.6931472,4.684288,1 +11,2,0,1,2,230448,0,12724.34,61.92813,0,13,1,426.1653,37.12157,0,0,411.7828,875.0697,1,0,0,11,0,2,88.3,10.3,0,69.3,0,90.84,0,0,.6931472,4.509099,0,0,0,1,0,0,69.3,9.45135,.6931472,6.774303,1 +11,2,0,1,3,230448,0,12724.34,62.92813,0,13,1,98.23788,69.82379,40.5815,0,0,208.6432,0,0,0,9,0,2,88.3,10.3,0,69.3,0,90.84,0,0,.6931472,4.509099,0,0,0,1,0,0,69.3,9.45135,.6931472,5.340625,1 +6,2,25,0,1,230480,0,351.3196,20.81862,0,10,1,0,0,0,0,0,0,0,0,0,0,0,1,32.4,6.9,0,61.4,90,90,0,0,0,4.49981,0,3.258096,5.886104,0,0,0,61.4,5.864539,0,,0 +6,2,25,0,2,230480,0,351.3196,21.81862,0,10,1,9.845288,12.4707,0,0,0,22.31599,0,0,0,1,0,1,32.4,6.9,0,61.4,90,90,0,0,0,4.49981,0,3.258096,5.886104,0,0,0,61.4,5.864539,0,3.105303,1 +6,2,25,0,3,230480,0,351.3196,22.81862,0,10,1,0,0,0,0,0,0,0,0,0,0,0,1,32.4,6.9,0,61.4,90,90,0,0,0,4.49981,0,3.258096,5.886104,0,0,0,61.4,5.864539,0,,0 +13,2,0,0,1,230492,0,4783.578,15.22519,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,93.1,0,0,85.2,450,450,1,1,.6931472,6.109248,1,4.564348,6.160541,0,0,0,85.2,8.473153,.6931472,,0 +13,2,0,0,2,230492,0,4783.578,16.22519,1,12,1,24.96417,0,0,0,0,24.96417,0,0,0,1,0,2,93.1,0,0,85.2,450,450,1,1,.6931472,6.109248,1,4.564348,6.160541,0,0,0,85.2,8.473153,.6931472,3.217442,1 +13,2,0,0,3,230492,0,4783.578,17.22519,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,93.1,0,0,85.2,450,450,1,1,.6931472,6.109248,1,4.564348,6.160541,0,0,0,85.2,8.473153,.6931472,,0 +13,2,0,0,4,230492,0,4783.578,18.22519,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,93.1,0,0,85.2,450,450,0,0,.6931472,6.109248,1,4.564348,6.160541,0,0,0,85.2,8.473153,.6931472,,0 +13,2,0,0,5,230492,0,4783.578,19.22519,1,12,1,26.46846,0,0,0,0,26.46846,0,0,0,1,0,2,93.1,0,0,85.2,450,450,0,0,.6931472,6.109248,1,4.564348,6.160541,0,0,0,85.2,8.473153,.6931472,3.275954,1 +13,2,0,0,1,230493,0,4783.578,38.71047,1,12,1,44.46178,23.41134,33.72335,0,0,101.5965,0,0,0,2,0,2,58.5,24.1,0,84.1,450,450,0,0,.6931472,6.109248,1,4.564348,6.160541,0,0,0,84.1,8.473153,.6931472,4.621009,1 +13,2,0,0,2,230493,0,4783.578,39.71047,1,12,1,148.3755,4.414716,0,0,0,152.7903,0,0,0,3,0,2,58.5,24.1,0,84.1,450,450,0,0,.6931472,6.109248,1,4.564348,6.160541,0,0,0,84.1,8.473153,.6931472,5.029066,1 +13,2,0,0,3,230493,0,4783.578,40.71047,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,58.5,24.1,0,84.1,450,450,0,0,.6931472,6.109248,1,4.564348,6.160541,0,0,0,84.1,8.473153,.6931472,,0 +13,2,0,0,4,230493,0,4783.578,41.71047,1,12,1,64.61906,4.858397,29.7487,0,0,99.22617,0,0,0,2,0,2,58.5,24.1,0,84.1,450,450,0,0,.6931472,6.109248,1,4.564348,6.160541,0,0,0,84.1,8.473153,.6931472,4.597402,1 +13,2,0,0,5,230493,0,4783.578,42.71047,1,12,1,32.26976,14.45613,0,0,0,46.72589,0,0,0,2,0,2,58.5,24.1,0,84.1,450,450,0,0,.6931472,6.109248,1,4.564348,6.160541,0,0,0,84.1,8.473153,.6931472,3.844298,1 +11,2,0,1,1,230517,0,7652.927,23.01437,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,76.1,3.4,0,86.4,0,0,0,0,0,0,0,0,0,0,0,0,86.4,8.942974,0,,0 +11,2,0,1,2,230517,0,7652.927,24.01437,0,12,1,27.50965,0,0,0,0,27.50965,0,0,0,2,0,1,76.1,3.4,0,86.4,0,0,0,0,0,0,0,0,0,0,0,0,86.4,8.942974,0,3.314537,1 +11,2,0,1,3,230517,0,7652.927,25.01437,0,12,1,24.1433,0,0,0,134.9577,159.101,1,0,0,2,0,1,76.1,3.4,0,86.4,0,0,0,0,0,0,0,0,0,0,0,0,86.4,8.942974,0,5.06954,1 +11,2,0,1,4,230517,0,7652.927,26.01437,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,76.1,3.4,0,86.4,0,0,0,0,0,0,0,0,0,0,0,0,86.4,8.942974,0,,0 +11,2,0,1,5,230517,0,7652.927,27.01437,0,12,1,7.148094,0,0,0,0,7.148094,0,0,0,1,0,1,76.1,3.4,0,86.4,0,0,0,0,0,0,0,0,0,0,0,0,86.4,8.942974,0,1.966846,1 +15,2,95,1,1,230561,0,8665.641,61.79877,1,12,1,37.96152,0,0,0,0,37.96152,0,0,0,1,0,1,81.4,13.8,0,65,452.05,0,0,0,0,0,0,4.564348,6.165086,1,0,0,65,9.067237,0,3.636573,1 +15,2,95,1,2,230561,0,8665.641,62.79877,1,12,1,257.8118,11.70569,80.77879,0,2469.613,2819.909,2,0,0,9,0,1,81.4,13.8,0,65,452.05,0,0,0,0,0,0,4.564348,6.165086,1,0,0,65,9.067237,0,7.94446,1 +15,2,95,1,3,230561,0,8665.641,63.79877,1,12,1,206.3652,155.8385,38.54258,0,1027.84,1428.586,1,0,0,11,0,1,81.4,13.8,0,65,452.05,0,0,0,0,0,0,4.564348,6.165086,1,0,0,65,9.067237,0,7.264441,1 +14,2,95,0,1,230575,0,8577.126,24.82136,0,14,1,82.74961,5.159435,0,0,0,87.90904,0,0,0,3,1,2,82.4,0,0,87.5,765,765,0,0,.6931472,6.639876,0,4.564348,6.691169,0,0,0,87.5,9.056971,.6931472,4.476303,1 +14,2,95,0,2,230575,0,8577.126,25.82136,0,14,1,13.69534,3.575204,0,0,0,17.27054,0,0,0,1,0,2,82.4,0,0,87.5,765,765,0,0,.6931472,6.639876,0,4.564348,6.691169,0,0,0,87.5,9.056971,.6931472,2.849002,1 +14,2,95,0,3,230575,0,8577.126,26.82136,0,14,1,168.8458,2.46696,0,0,0,171.3128,0,0,0,5,0,2,82.4,0,0,87.5,765,765,0,0,.6931472,6.639876,0,4.564348,6.691169,0,0,0,87.5,9.056971,.6931472,5.143491,1 +14,2,95,0,4,230575,0,8577.126,27.82136,0,14,1,32.52016,0,0,0,0,32.52016,0,0,0,2,0,2,82.4,0,0,87.5,765,765,0,0,.6931472,6.639876,0,4.564348,6.691169,0,0,0,87.5,9.056971,.6931472,3.48186,1 +14,2,95,0,5,230575,0,8577.126,28.82136,0,14,1,61.18397,0,0,0,0,61.18397,0,0,0,1,0,3,82.4,0,0,87.5,765,765,0,0,1.098612,6.639876,0,4.564348,6.691169,0,0,0,87.5,9.056971,1.098612,4.113885,1 +13,2,0,0,1,230581,0,14106.75,17.91923,0,12,1,163.2865,32.17369,18.20073,0,279.1368,492.7977,1,0,0,13,1,3,87.8,6.9,0,79.5,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,79.5,9.55448,1.098612,6.200099,1 +13,2,0,0,2,230581,0,14106.75,18.91923,0,12,1,21.50024,0,0,0,0,21.50024,0,0,0,2,0,3,87.8,6.9,0,79.5,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,79.5,9.55448,1.098612,3.068064,1 +13,2,0,0,3,230581,0,14106.75,19.91923,0,12,1,8.779632,8.981563,32.92362,0,0,50.68481,0,0,0,1,0,3,87.8,6.9,0,79.5,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,79.5,9.55448,1.098612,3.925626,1 +13,2,0,0,1,230582,0,14106.75,52.81041,0,12,1,152.6261,13.93136,0,0,0,166.5575,0,0,0,7,0,3,89.4,6.9,0,86.4,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,86.4,9.55448,1.098612,5.11534,1 +13,2,0,0,2,230582,0,14106.75,53.81041,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,89.4,6.9,0,86.4,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,86.4,9.55448,1.098612,,0 +13,2,0,0,3,230582,0,14106.75,54.81041,0,12,1,97.01492,0,34.24056,0,0,131.2555,0,0,0,2,0,3,89.4,6.9,0,86.4,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,86.4,9.55448,1.098612,4.877146,1 +13,2,0,0,1,230583,0,14106.75,51.24709,1,12,1,85.80343,59.02756,6.49506,0,0,151.326,0,0,0,7,0,3,77.7,17.2,0,75,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,75,9.55448,1.098612,5.019437,1 +13,2,0,0,2,230583,0,14106.75,52.24709,1,12,1,103.2011,20.23411,34.0086,0,0,157.4439,0,0,0,7,0,3,77.7,17.2,0,75,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,75,9.55448,1.098612,5.059069,1 +13,2,0,0,3,230583,0,14106.75,53.24709,1,12,1,67.60316,20.3863,0,0,673.9904,761.9798,1,0,0,3,0,3,77.7,17.2,0,75,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,75,9.55448,1.098612,6.63592,1 +17,2,25,1,1,230584,0,3818.182,24.45175,0,12,1,183.586,4.140094,28.37428,0,0,216.1004,0,0,0,11,0,1,93.6,3.4,0,86.4,146.8,146.8,0,0,0,4.989071,0,3.258096,6.375365,0,0,0,86.4,8.247791,0,5.375743,1 +17,2,25,1,2,230584,0,3818.182,25.45175,0,12,.3205479,0,0,0,0,0,0,0,0,0,0,0,1,93.6,3.4,0,86.4,146.8,146.8,0,0,0,4.989071,0,3.258096,6.375365,0,0,0,86.4,8.247791,0,,0 +11,2,0,0,1,230595,0,10527.27,14.85832,1,12,1,178.8872,4.664587,33.58814,0,0,217.1399,0,0,0,8,0,4,70.7,6.9,0,92,0,0,1,1,1.386294,0,0,0,0,0,0,0,92,9.26182,1.386294,5.380542,1 +11,2,0,0,2,230595,0,10527.27,15.85832,1,12,1,132.107,15.54228,0,0,0,147.6493,0,0,0,6,5,4,70.7,6.9,0,92,0,0,1,1,1.386294,0,0,0,0,0,0,0,92,9.26182,1.386294,4.99484,1 +11,2,0,0,3,230595,0,10527.27,16.85832,1,12,1,262.6207,1.975417,19.49078,0,0,284.0869,0,0,0,13,0,4,70.7,6.9,0,92,0,0,1,1,1.386294,0,0,0,0,0,0,0,92,9.26182,1.386294,5.64928,1 +11,2,0,0,1,230596,0,10527.27,42.41205,1,12,1,378.5751,3.51014,65.82943,0,0,447.9147,0,0,0,7,0,4,88.3,10.3,1,68.2,0,0,0,0,1.386294,0,0,0,0,1,0,0,68.2,9.26182,1.386294,6.104603,1 +11,2,0,0,2,230596,0,10527.27,43.41205,1,12,1,139.3932,0,0,0,0,139.3932,0,0,0,4,5,4,88.3,10.3,1,68.2,0,0,0,0,1.386294,0,0,0,0,1,0,0,68.2,9.26182,1.386294,4.937299,1 +11,2,0,0,3,230596,0,10527.27,44.41205,1,12,1,62.33538,0,0,0,2530.509,2592.844,1,0,0,1,0,4,88.3,10.3,1,68.2,0,0,0,0,1.386294,0,0,0,0,1,0,0,68.2,9.26182,1.386294,7.860511,1 +11,2,0,0,1,230597,0,10527.27,17.02122,0,12,1,45.37181,0,0,0,0,45.37181,0,0,0,2,0,4,67,6.9,0,67,0,0,1,0,1.386294,0,0,0,0,0,1,0,67,9.26182,1.386294,3.814891,1 +11,2,0,0,2,230597,0,10527.27,18.02122,0,12,1,31.53368,0,0,0,0,31.53368,0,0,0,1,0,4,67,6.9,0,67,0,0,0,0,1.386294,0,0,0,0,0,1,0,67,9.26182,1.386294,3.451056,1 +11,2,0,0,3,230597,0,10527.27,19.02122,0,12,1,6.584723,0,0,0,0,6.584723,0,0,0,1,0,4,67,6.9,0,67,0,0,0,0,1.386294,0,0,0,0,0,1,0,67,9.26182,1.386294,1.884752,1 +11,2,0,0,1,230598,0,10527.27,47.28268,0,12,1,0,4.940197,0,0,0,4.940197,0,0,0,0,0,4,89.9,6.9,1,92,0,0,0,0,1.386294,0,0,0,0,0,0,0,92,9.26182,1.386294,1.597405,1 +11,2,0,0,2,230598,0,10527.27,48.28268,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,89.9,6.9,1,92,0,0,0,0,1.386294,0,0,0,0,0,0,0,92,9.26182,1.386294,,0 +11,2,0,0,3,230598,0,10527.27,49.28268,0,12,1,63.98156,0,0,0,0,63.98156,0,0,0,3,0,4,89.9,6.9,1,92,0,0,0,0,1.386294,0,0,0,0,0,0,0,92,9.26182,1.386294,4.158595,1 +17,2,25,1,1,230620,0,14321.41,38.16838,1,12,1,32.24129,0,0,0,0,32.24129,0,0,0,2,0,5,83,10.3,0,73.9,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,73.9,9.56958,1.609438,3.473248,1 +17,2,25,1,2,230620,0,14321.41,39.16838,1,12,1,41.08934,2.197802,0,0,0,43.28715,0,0,0,3,0,5,83,10.3,0,73.9,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,73.9,9.56958,1.609438,3.767856,1 +17,2,25,1,3,230620,0,14321.41,40.16838,1,12,1,101.8437,2.414399,28.92888,0,0,133.187,0,0,0,6,0,5,83,10.3,0,73.9,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,1,0,0,73.9,9.56958,1.609438,4.891754,1 +17,2,25,1,1,230621,0,14321.41,8.161533,0,12,1,11.44046,0,0,0,0,11.44046,0,0,0,1,0,5,93.3,11.84267,0,88.9,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,88.9,9.56958,1.609438,2.437156,1 +17,2,25,1,2,230621,0,14321.41,9.161533,0,12,1,10.51123,0,0,0,0,10.51123,0,0,0,1,0,5,93.3,11.84267,0,88.9,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,88.9,9.56958,1.609438,2.352444,1 +17,2,25,1,3,230621,0,14321.41,10.16153,0,12,1,19.53468,0,0,0,0,19.53468,0,0,0,2,0,5,93.3,11.84267,0,88.9,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,88.9,9.56958,1.609438,2.972191,1 +17,2,25,1,1,230622,0,14321.41,13.16632,0,12,1,14.56058,0,25.94384,0,0,40.50442,0,0,0,1,0,5,98.3,11.84267,0,100,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,100,9.56958,1.609438,3.701411,1 +17,2,25,1,2,230622,0,14321.41,14.16632,0,12,1,22.93359,0,0,0,0,22.93359,0,0,0,2,0,5,98.3,11.84267,0,100,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,100,9.56958,1.609438,3.132602,1 +17,2,25,1,3,230622,0,14321.41,15.16632,0,12,1,16.46181,0,.8779631,0,0,17.33977,0,0,0,2,0,5,98.3,11.84267,0,100,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,100,9.56958,1.609438,2.853003,1 +17,2,25,1,1,230623,0,14321.41,39.32101,0,17,1,21.58086,2.844514,20.80083,0,0,45.22621,0,0,0,2,0,5,88.3,17.2,0,69.3,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,69.3,9.56958,1.609438,3.811677,1 +17,2,25,1,2,230623,0,14321.41,40.32101,0,17,1,0,0,0,0,0,0,0,0,0,0,0,5,88.3,17.2,0,69.3,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,69.3,9.56958,1.609438,,0 +17,2,25,1,3,230623,0,14321.41,41.32101,0,17,1,5.487269,0,0,0,0,5.487269,0,0,0,1,0,5,88.3,17.2,0,69.3,1000,1000,0,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,69.3,9.56958,1.609438,1.702431,1 +17,2,25,1,1,230624,0,14321.41,10.04517,0,12,1,37.5715,13.28653,0,0,0,50.85804,0,0,0,3,0,5,96.7,11.84267,0,92.6,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,92.6,9.56958,1.609438,3.929038,1 +17,2,25,1,2,230624,0,14321.41,11.04517,0,12,1,10.51123,0,0,0,0,10.51123,0,0,0,1,0,5,96.7,11.84267,0,92.6,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,92.6,9.56958,1.609438,2.352444,1 +17,2,25,1,3,230624,0,14321.41,12.04517,0,12,1,23.04653,0,0,0,0,23.04653,0,0,0,2,0,5,96.7,11.84267,0,92.6,1000,1000,1,0,1.609438,6.907755,0,3.258096,8.294049,0,0,0,92.6,9.56958,1.609438,3.137515,1 +15,2,95,1,1,230625,0,537.8299,37.54415,1,17,1,12.17575,17.12546,0,0,0,29.30122,0,0,0,1,0,1,55.9,37.9,1,31.8,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,0,0,0,31.8,6.2894,0,3.377629,1 +15,2,95,1,2,230625,0,537.8299,38.54415,1,17,1,79.15058,23.88996,33.10328,0,0,136.1438,0,0,0,4,0,1,55.9,37.9,1,31.8,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,0,0,0,31.8,6.2894,0,4.913712,1 +15,2,95,1,3,230625,0,537.8299,39.54415,1,17,1,40.49844,13.90743,0,0,0,54.40588,0,0,0,1,0,1,55.9,37.9,1,31.8,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,0,0,0,31.8,6.2894,0,3.996472,1 +15,2,95,1,4,230625,0,537.8299,40.54415,1,17,1,77.90972,6.807645,0,0,0,84.71736,0,0,0,2,0,1,55.9,37.9,1,31.8,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,0,0,0,31.8,6.2894,0,4.439321,1 +15,2,95,1,5,230625,0,537.8299,41.54415,1,17,1,0,7.580645,0,0,0,7.580645,0,0,0,0,0,1,55.9,37.9,1,31.8,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,0,0,0,31.8,6.2894,0,2.025598,1 +11,2,0,0,1,230640,0,392.9619,26.5024,0,16,1,69.45863,0,0,0,0,69.45863,0,0,0,2,0,1,50,6.9,0,45.5,0,0,0,0,0,0,0,0,0,1,0,0,45.5,5.976254,0,4.240731,1 +11,2,0,0,2,230640,0,392.9619,27.5024,0,16,1,11.25176,5.954055,0,0,0,17.20581,0,0,0,1,0,1,50,6.9,0,45.5,0,0,0,0,0,0,0,0,0,1,0,0,45.5,5.976254,0,2.845247,1 +11,2,0,0,3,230640,0,392.9619,28.5024,0,16,1,42.13242,0,37.30869,0,0,79.4411,0,0,0,2,1,1,50,6.9,0,45.5,0,0,0,0,0,0,0,0,0,1,0,0,45.5,5.976254,0,4.375016,1 +11,2,0,0,1,230641,0,751.3196,26.56263,0,16,1,0,0,0,0,0,0,0,0,0,0,0,1,66.5,6.9,0,69.3,0,0,0,0,0,0,0,0,0,1,0,0,69.3,6.623161,0,,0 +11,2,0,0,2,230641,0,751.3196,27.56263,0,16,1,0,0,0,0,0,0,0,0,0,0,0,1,66.5,6.9,0,69.3,0,0,0,0,0,0,0,0,0,1,0,0,69.3,6.623161,0,,0 +11,2,0,0,3,230641,0,751.3196,28.56263,0,16,1,21.67317,0,1.30039,0,0,22.97356,0,0,0,1,0,1,66.5,6.9,0,69.3,0,0,0,0,0,0,0,0,0,1,0,0,69.3,6.623161,0,3.134344,1 +13,2,0,0,1,230643,0,4081.525,49.08693,1,14,1,422.8809,123.0785,23.81175,120.6448,0,569.7712,0,0,7,9,28,2,80.3,10.3,1,86.4,300,538.92,0,0,.6931472,6.289567,1,4.564348,5.755076,0,0,0,86.4,8.314471,.6931472,6.345235,1 +13,2,0,0,2,230643,0,4081.525,50.08693,1,14,1,217.6541,125.2126,30.52556,7.644529,0,373.3923,0,0,1,8,13,2,80.3,10.3,1,86.4,300,538.92,0,0,.6931472,6.289567,1,4.564348,5.755076,0,0,0,86.4,8.314471,.6931472,5.922629,1 +13,2,0,0,3,230643,0,4081.525,51.08693,1,14,1,423.683,269.5039,36.55838,0,0,729.7454,0,0,1,10,9,2,80.3,10.3,1,86.4,300,538.92,0,0,.6931472,6.289567,1,4.564348,5.755076,0,0,0,86.4,8.314471,.6931472,6.592696,1 +13,2,0,0,1,230644,0,4081.525,15.09103,1,14,1,0,0,0,0,0,0,0,0,0,0,0,2,44.7,10.3,0,55.7,300,538.92,1,1,.6931472,6.289567,1,4.564348,5.755076,0,0,0,55.7,8.314471,.6931472,,0 +13,2,0,0,2,230644,0,4081.525,16.09103,1,14,1,16.72241,0,0,0,0,16.72241,0,0,0,1,0,2,44.7,10.3,0,55.7,300,538.92,1,1,.6931472,6.289567,1,4.564348,5.755076,0,0,0,55.7,8.314471,.6931472,2.81675,1 +13,2,0,0,3,230644,0,4081.525,17.09103,1,14,1,0,0,0,0,0,0,0,0,0,0,0,2,44.7,10.3,0,55.7,300,538.92,1,1,.6931472,6.289567,1,4.564348,5.755076,0,0,0,55.7,8.314471,.6931472,,0 +11,2,0,0,1,230645,0,8129.619,28.69268,1,12,1,19.86409,1.437533,0,0,0,21.30162,0,0,0,2,0,5,74.5,24.1,0,84.1,0,383.64,0,0,1.609438,5.949705,0,0,0,0,0,0,84.1,9.003392,1.609438,3.058783,1 +11,2,0,0,2,230645,0,8129.619,29.69268,1,12,1,66.31427,0,0,0,0,66.31427,0,0,0,5,0,5,74.5,24.1,0,84.1,0,383.64,0,0,1.609438,5.949705,0,0,0,0,0,0,84.1,9.003392,1.609438,4.194405,1 +11,2,0,0,3,230645,0,8129.619,30.69268,1,12,1,60.79295,0,28.07489,0,0,88.86784,0,0,0,3,0,5,74.5,24.1,0,84.1,0,383.64,0,0,1.609438,5.949705,0,0,0,0,0,0,84.1,9.003392,1.609438,4.48715,1 +11,2,0,0,1,230646,0,8129.619,4.720055,0,12,1,18.29587,4.103502,0,0,0,22.39937,0,0,0,2,0,5,81.35272,11.84267,0,81.5,0,383.64,1,0,1.609438,5.949705,0,0,0,0,0,0,81.5,9.003392,1.609438,3.109033,1 +11,2,0,0,2,230646,0,8129.619,5.720055,0,12,1,15.13695,2.691014,0,0,0,17.82797,0,0,0,1,0,5,81.35272,11.84267,0,81.5,0,383.64,1,0,1.609438,5.949705,0,0,0,0,0,0,81.5,9.003392,1.609438,2.880768,1 +11,2,0,0,3,230646,0,8129.619,6.720055,0,12,1,50.66079,0,0,0,0,50.66079,0,0,0,4,0,5,81.35272,11.84267,0,81.5,0,383.64,1,0,1.609438,5.949705,0,0,0,0,0,0,81.5,9.003392,1.609438,3.925152,1 +11,2,0,0,1,230647,0,8129.619,3.310062,1,12,1,105.5933,12.62415,0,0,0,118.2175,0,0,0,3,0,5,81.35272,11.84267,0,81.5,0,383.64,1,1,1.609438,5.949705,0,0,0,0,0,0,81.5,9.003392,1.609438,4.772526,1 +11,2,0,0,2,230647,0,8129.619,4.310061,1,12,1,19.94234,7.063911,0,0,0,27.00625,0,0,0,2,0,5,81.35272,11.84267,0,81.5,0,383.64,1,1,1.609438,5.949705,0,0,0,0,0,0,81.5,9.003392,1.609438,3.296068,1 +11,2,0,0,3,230647,0,8129.619,5.310061,1,12,1,11.01322,0,0,0,0,11.01322,0,0,0,1,0,5,81.35272,11.84267,0,81.5,0,383.64,1,1,1.609438,5.949705,0,0,0,0,0,0,81.5,9.003392,1.609438,2.399096,1 +11,2,0,0,1,230648,0,8129.619,3.310062,1,12,1,21.17094,2.06482,0,0,0,23.23576,0,0,0,2,0,5,81.35272,11.84267,0,59.3,0,383.64,1,1,1.609438,5.949705,0,0,0,0,0,0,59.3,9.003392,1.609438,3.145692,1 +11,2,0,0,2,230648,0,8129.619,4.310061,1,12,1,12.73426,0,0,0,0,12.73426,0,0,0,1,0,5,81.35272,11.84267,0,59.3,0,383.64,1,1,1.609438,5.949705,0,0,0,0,0,0,59.3,9.003392,1.609438,2.544296,1 +11,2,0,0,3,230648,0,8129.619,5.310061,1,12,1,11.01322,0,0,0,0,11.01322,0,0,0,1,0,5,81.35272,11.84267,0,59.3,0,383.64,1,1,1.609438,5.949705,0,0,0,0,0,0,59.3,9.003392,1.609438,2.399096,1 +11,2,0,0,1,230649,0,8129.619,28.26831,0,14,1,72.66074,0,0,0,0,72.66074,0,0,0,6,0,5,76.6,10.3,0,93.2,0,383.64,0,0,1.609438,5.949705,0,0,0,0,0,0,93.2,9.003392,1.609438,4.285801,1 +11,2,0,0,2,230649,0,8129.619,29.26831,0,14,1,71.84046,0,0,0,0,71.84046,0,0,0,7,0,5,76.6,10.3,0,93.2,0,383.64,0,0,1.609438,5.949705,0,0,0,0,0,0,93.2,9.003392,1.609438,4.274448,1 +11,2,0,0,3,230649,0,8129.619,30.26831,0,14,1,103.9648,5.563877,0,0,0,109.5286,0,0,0,6,0,5,76.6,10.3,0,93.2,0,383.64,0,0,1.609438,5.949705,0,0,0,0,0,0,93.2,9.003392,1.609438,4.696186,1 +11,2,0,0,1,230668,0,15134.31,37.26215,1,12,1,469.5788,6.619865,0,0,0,476.1986,0,0,0,3,0,5,78.7,10.3,0,93.2,0,0,0,0,1.609438,0,0,0,0,1,0,0,93.2,9.624785,1.609438,6.165835,1 +11,2,0,0,2,230668,0,15134.31,38.26215,1,12,1,83.01481,0,0,0,0,83.01481,0,0,0,16,0,5,78.7,10.3,0,93.2,0,0,0,0,1.609438,0,0,0,0,1,0,0,93.2,9.624785,1.609438,4.419019,1 +11,2,0,0,3,230668,0,15134.31,39.26215,1,12,1,201.0536,3.630378,0,0,0,204.6839,0,0,0,2,25,5,78.7,10.3,0,93.2,0,0,0,0,1.609438,0,0,0,0,1,0,0,93.2,9.624785,1.609438,5.321467,1 +11,2,0,0,1,230669,0,15134.31,7.657769,1,12,1,19.89079,21.39886,0,0,0,41.28965,0,0,0,2,0,5,73.3,11.84267,0,40.7,0,0,1,1,1.609438,0,0,0,0,1,0,0,40.7,9.624785,1.609438,3.720612,1 +11,2,0,0,2,230669,0,15134.31,8.657768,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,73.3,11.84267,0,40.7,0,0,1,1,1.609438,0,0,0,0,1,0,0,40.7,9.624785,1.609438,,0 +11,2,0,0,3,230669,0,15134.31,9.657768,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,73.3,11.84267,0,40.7,0,0,1,1,1.609438,0,0,0,0,1,0,0,40.7,9.624785,1.609438,,0 +11,2,0,0,1,230670,0,15134.31,39.8768,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,83,6.9,0,81.8,0,0,0,0,1.609438,0,0,0,0,1,0,0,81.8,9.624785,1.609438,,0 +11,2,0,0,2,230670,0,15134.31,40.8768,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,83,6.9,0,81.8,0,0,0,0,1.609438,0,0,0,0,1,0,0,81.8,9.624785,1.609438,,0 +11,2,0,0,3,230670,0,15134.31,41.8768,0,12,1,119.0737,14.66198,0,0,0,133.7357,0,0,0,3,0,5,83,6.9,0,81.8,0,0,0,0,1.609438,0,0,0,0,1,0,0,81.8,9.624785,1.609438,4.895866,1 +11,2,0,0,1,230671,0,15134.31,18.91855,0,11,1,13.91056,6.422257,0,0,0,20.33281,0,0,0,1,0,5,63.8,10.3,0,69.3,0,0,0,0,1.609438,0,0,0,0,0,0,0,69.3,9.624785,1.609438,3.012236,1 +11,2,0,0,2,230671,0,15134.31,19.91855,0,11,1,0,0,0,0,0,0,0,0,0,0,0,5,63.8,10.3,0,69.3,0,0,0,0,1.609438,0,0,0,0,0,0,0,69.3,9.624785,1.609438,,0 +11,2,0,0,3,230671,0,15134.31,20.91855,0,11,1,0,0,0,0,0,0,0,0,0,0,0,5,63.8,10.3,0,69.3,0,0,0,0,1.609438,0,0,0,0,0,0,0,69.3,9.624785,1.609438,,0 +11,2,0,0,1,230672,0,15134.31,12.43532,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,86.7,11.84267,0,100,0,0,1,0,1.609438,0,0,0,0,0,0,0,100,9.624785,1.609438,,0 +11,2,0,0,2,230672,0,15134.31,13.43532,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,86.7,11.84267,0,100,0,0,1,0,1.609438,0,0,0,0,0,0,0,100,9.624785,1.609438,,0 +11,2,0,0,3,230672,0,15134.31,14.43532,0,12,1,8.779632,0,0,0,0,8.779632,0,0,0,1,0,5,86.7,11.84267,0,100,0,0,1,0,1.609438,0,0,0,0,0,0,0,100,9.624785,1.609438,2.172435,1 +7,2,25,1,1,230678,0,8665.641,23.38398,1,12,1,35.4685,0,0,0,0,35.4685,0,0,0,1,0,2,85.6,13.8,0,87.5,600,600,0,0,.6931472,6.39693,0,3.258096,7.783224,0,0,0,87.5,9.067237,.6931472,3.568645,1 +7,2,25,1,2,230678,0,8665.641,24.38398,1,12,1,74.80695,0,0,0,0,74.80695,0,0,0,3,0,2,85.6,13.8,0,87.5,600,600,0,0,.6931472,6.39693,0,3.258096,7.783224,0,0,0,87.5,9.067237,.6931472,4.314911,1 +7,2,25,1,1,230679,0,8665.641,5.234771,1,12,1,0,3.123346,0,0,0,3.123346,0,0,0,0,0,2,85,11.84267,0,100,600,600,1,1,.6931472,6.39693,0,3.258096,7.783224,0,0,0,100,9.067237,.6931472,1.138905,1 +7,2,25,1,2,230679,0,8665.641,6.234771,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,85,11.84267,0,100,600,600,1,1,.6931472,6.39693,0,3.258096,7.783224,0,0,0,100,9.067237,.6931472,,0 +7,2,25,0,1,230723,0,13557.77,14.77892,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,92.9,3.4,0,81.8,1000,1000,1,1,1.098612,6.907755,0,3.258096,8.294049,0,0,0,81.8,9.514789,1.098612,,0 +7,2,25,0,2,230723,0,13557.77,15.77892,1,12,1,16.87764,3.338022,0,0,0,20.21566,0,0,0,2,0,3,92.9,3.4,0,81.8,1000,1000,1,1,1.098612,6.907755,0,3.258096,8.294049,0,0,0,81.8,9.514789,1.098612,3.006458,1 +7,2,25,0,3,230723,0,13557.77,16.77892,1,12,1,3.439381,0,0,0,0,3.439381,0,0,0,0,0,3,92.9,3.4,0,81.8,1000,1000,1,1,1.098612,6.907755,0,3.258096,8.294049,0,0,0,81.8,9.514789,1.098612,1.235291,1 +7,2,25,0,4,230723,0,13557.77,17.77892,1,12,1,48.4684,0,0,0,0,48.4684,0,0,0,3,0,3,92.9,3.4,0,81.8,1000,1000,1,1,1.098612,6.907755,0,3.258096,8.294049,0,0,0,81.8,9.514789,1.098612,3.880912,1 +7,2,25,0,5,230723,0,13557.77,18.77892,1,12,1,5.573248,0,0,0,0,5.573248,0,0,0,1,0,3,92.9,3.4,0,81.8,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,81.8,9.514789,1.098612,1.717978,1 +7,2,25,0,1,230724,0,13557.77,36.98015,0,15,1,22.98264,2.757916,0,0,0,25.74055,0,0,0,1,0,3,89.9,6.9,0,95.5,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,95.5,9.514789,1.098612,3.248068,1 +7,2,25,0,2,230724,0,13557.77,37.98015,0,15,1,35.86498,5.344585,40.04688,0,0,81.25645,0,0,0,2,1,3,89.9,6.9,0,95.5,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,95.5,9.514789,1.098612,4.39761,1 +7,2,25,0,3,230724,0,13557.77,38.98015,0,15,1,0,0,0,0,0,0,0,0,0,0,0,3,89.9,6.9,0,95.5,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,95.5,9.514789,1.098612,,0 +7,2,25,0,4,230724,0,13557.77,39.98015,0,15,1,22.48934,2.927491,45.47499,0,0,70.89182,0,0,0,1,1,3,89.9,6.9,0,95.5,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,95.5,9.514789,1.098612,4.261155,1 +7,2,25,0,5,230724,0,13557.77,40.98015,0,15,1,45.138,2.388535,0,0,0,47.52654,0,0,0,3,0,3,89.9,6.9,0,95.5,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,95.5,9.514789,1.098612,3.861288,1 +7,2,25,0,1,230725,0,13557.77,34.78439,1,12,1,68.69254,17.23698,0,0,0,85.92952,0,0,0,2,0,3,90.4,3.4,0,88.6,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,88.6,9.514789,1.098612,4.453527,1 +7,2,25,0,2,230725,0,13557.77,35.78439,1,12,1,428.903,0,0,0,0,428.903,0,0,0,4,0,3,90.4,3.4,0,88.6,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,88.6,9.514789,1.098612,6.061231,1 +7,2,25,0,3,230725,0,13557.77,36.78439,1,12,1,51.16079,0,0,0,363.3233,414.4841,1,0,0,4,0,3,90.4,3.4,0,88.6,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,88.6,9.514789,1.098612,6.027035,1 +7,2,25,0,4,230725,0,13557.77,37.78439,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,90.4,3.4,0,88.6,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,88.6,9.514789,1.098612,,0 +7,2,25,0,5,230725,0,13557.77,38.78439,1,12,1,69.70984,8.280254,0,0,0,77.99009,0,0,0,2,0,3,90.4,3.4,0,88.6,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,88.6,9.514789,1.098612,4.356582,1 +13,2,0,0,1,230740,0,6634.604,32.19439,0,12,1,261.0504,30.41602,0,0,216.2767,507.7431,1,0,0,12,0,2,79.8,3.4,1,85.2,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,85.2,8.800205,.6931472,6.229976,1 +13,2,0,0,2,230740,0,6634.604,33.19439,0,12,1,82.65647,7.166746,0,301.0034,0,89.82322,0,0,9,3,0,2,79.8,3.4,1,85.2,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,85.2,8.800205,.6931472,4.497844,1 +13,2,0,0,3,230740,0,6634.604,34.19439,0,12,1,2.194908,6.584723,0,1290.606,0,8.779632,0,0,45,1,0,2,79.8,3.4,1,85.2,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,85.2,8.800205,.6931472,2.172435,1 +13,2,0,0,4,230740,0,6634.604,35.19439,0,12,1,31.11288,0,0,712.0064,0,31.11288,0,0,25,1,0,2,79.8,3.4,1,85.2,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,85.2,8.800205,.6931472,3.437622,1 +13,2,0,0,5,230740,0,6634.604,36.19439,0,12,1,126.1784,6.613488,9.06454,0,1587.353,1729.21,3,0,0,4,3,2,79.8,3.4,1,85.2,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,85.2,8.800205,.6931472,7.45542,1 +13,2,0,0,1,230741,0,6634.604,30.75975,1,14,1,55.51222,2.932917,0,0,0,58.44514,0,0,0,4,0,2,62.8,13.8,0,81.8,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,81.8,8.800205,.6931472,4.068089,1 +13,2,0,0,2,230741,0,6634.604,31.75975,1,14,1,20.54467,0,37.08552,150.5017,0,57.6302,0,0,9,1,1,2,62.8,13.8,0,81.8,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,81.8,8.800205,.6931472,4.054047,1 +13,2,0,0,3,230741,0,6634.604,32.75975,1,14,1,17.33977,.9657595,0,676.0316,0,18.30553,0,0,44,2,0,2,62.8,13.8,0,81.8,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,81.8,8.800205,.6931472,2.907203,1 +13,2,0,0,4,230741,0,6634.604,33.75975,1,14,1,29.91623,0,6.781013,656.1627,0,36.69725,0,0,47,3,0,2,62.8,13.8,0,81.8,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,81.8,8.800205,.6931472,3.602702,1 +13,2,0,0,5,230741,0,6634.604,34.75975,1,14,1,0,0,7.770123,0,0,7.770123,0,0,0,0,0,2,62.8,13.8,0,81.8,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,81.8,8.800205,.6931472,2.050286,1 +11,2,0,0,1,230771,0,13633.43,15.89322,1,11,1,9.620385,0,0,0,0,9.620385,0,0,0,1,0,6,92,0,0,98.9,0,0,1,1,1.791759,0,0,0,0,0,0,0,98.9,9.520353,1.791759,2.263884,1 +11,2,0,0,2,230771,0,13633.43,16.89322,1,11,1,17.91687,0,0,0,0,17.91687,0,0,0,0,1,5,92,0,0,98.9,0,0,1,1,1.609438,0,0,0,0,0,0,0,98.9,9.520353,1.609438,2.885742,1 +11,2,0,0,3,230771,0,13633.43,17.89322,1,11,1,12.73046,7.177349,0,0,591.2204,611.1282,1,0,0,0,0,5,92,0,0,98.9,0,0,1,1,1.609438,0,0,0,0,0,0,0,98.9,9.520353,1.609438,6.415307,1 +11,2,0,0,1,230773,0,13633.43,37.32512,1,11,1,203.9002,8.367135,3.010921,0,0,215.2782,0,0,0,8,0,6,81.9,10.3,0,75,0,0,0,0,1.791759,0,0,0,0,1,0,0,75,9.520353,1.791759,5.371931,1 +11,2,0,0,2,230773,0,13633.43,38.32512,1,11,1,53.51171,41.08934,25.39417,0,0,119.9952,0,0,0,5,0,5,81.9,10.3,0,75,0,0,0,0,1.609438,0,0,0,0,1,0,0,75,9.520353,1.609438,4.787452,1 +11,2,0,0,3,230773,0,13633.43,39.32512,1,11,1,56.62862,58.05092,64.87708,0,0,179.5566,0,0,0,4,0,5,81.9,10.3,0,75,0,0,0,0,1.609438,0,0,0,0,1,0,0,75,9.520353,1.609438,5.190491,1 +11,2,0,0,1,230774,0,13633.43,14.40931,1,11,1,47.4779,4.118565,0,0,0,51.59646,0,0,0,6,0,6,89.4,3.4,0,93.2,0,0,1,1,1.791759,0,0,0,0,0,0,0,93.2,9.520353,1.791759,3.943453,1 +11,2,0,0,2,230774,0,13633.43,15.40931,1,11,1,64.26183,4.171046,0,0,0,68.43287,0,0,0,4,1,5,89.4,3.4,0,93.2,0,0,1,1,1.609438,0,0,0,0,0,0,0,93.2,9.520353,1.609438,4.225853,1 +11,2,0,0,3,230774,0,13633.43,16.40931,1,11,1,32.48463,11.39596,0,0,0,43.8806,0,0,0,4,0,5,89.4,3.4,0,93.2,0,0,1,1,1.609438,0,0,0,0,0,0,0,93.2,9.520353,1.609438,3.781472,1 +11,2,0,0,1,230775,0,13633.43,38.75702,0,15,1,0,0,0,0,0,0,0,0,0,0,0,6,74.29414,6.9,0,96.6,0,0,0,0,1.791759,0,0,0,0,0,0,0,96.6,9.520353,1.791759,,0 +11,2,0,0,2,230775,0,13633.43,39.75702,0,15,1,12.42236,11.04634,0,0,0,23.46871,0,0,0,2,0,5,74.29414,6.9,0,96.6,0,0,0,0,1.609438,0,0,0,0,0,0,0,96.6,9.520353,1.609438,3.155668,1 +11,2,0,0,3,230775,0,13633.43,40.75702,0,15,1,10.75505,1.097454,0,0,0,11.8525,0,0,0,1,0,5,74.29414,6.9,0,96.6,0,0,0,0,1.609438,0,0,0,0,0,0,0,96.6,9.520353,1.609438,2.472539,1 +11,2,0,0,1,230776,0,13633.43,13.33881,0,11,1,21.32085,0,34.62819,0,0,55.94904,0,0,0,2,0,6,83.3,11.84267,0,77.8,0,0,1,0,1.791759,0,0,0,0,0,0,0,77.8,9.520353,1.791759,4.024441,1 +11,2,0,0,2,230776,0,13633.43,14.33881,0,11,1,32.01147,0,11.13235,0,0,43.14381,0,0,0,1,1,5,83.3,11.84267,0,77.8,0,0,1,0,1.609438,0,0,0,0,0,0,0,77.8,9.520353,1.609438,3.764539,1 +11,2,0,0,3,230776,0,13633.43,15.33881,0,11,1,14.2669,0,0,0,0,14.2669,0,0,0,1,0,5,83.3,11.84267,0,77.8,0,0,1,0,1.609438,0,0,0,0,0,0,0,77.8,9.520353,1.609438,2.657942,1 +11,2,0,0,1,230777,0,13633.43,8.536619,0,11,1,10.66043,0,191.8357,0,439.0796,641.5757,1,0,0,2,0,6,83.3,11.84267,1,55.6,0,0,1,0,1.791759,0,0,0,0,0,0,0,55.6,9.520353,1.791759,6.463927,1 +11,2,0,1,1,230778,0,2910.85,18.06981,1,8,1,153.4145,49.36474,32.07517,0,0,234.8544,0,0,0,5,1,3,46.3,24.1,0,43.2,0,234,0,0,1.098612,5.455321,0,0,0,0,1,0,43.2,7.976544,1.098612,5.458966,1 +11,2,0,1,2,230778,0,2910.85,19.06981,1,8,1,949.8069,34.96139,17.37452,0,0,1002.143,0,0,0,8,1,3,46.3,24.1,0,43.2,0,234,0,0,1.098612,5.455321,0,0,0,0,1,0,43.2,7.976544,1.098612,6.909896,1 +11,2,0,1,3,230778,0,2910.85,20.06981,1,8,1,98.48687,38.11749,0,0,0,136.6044,0,0,0,9,0,3,46.3,24.1,0,43.2,0,234,0,0,1.098612,5.455321,0,0,0,0,1,0,43.2,7.976544,1.098612,4.917089,1 +11,2,0,1,1,230779,0,2910.85,21.91102,0,9,1,310.2435,59.69296,0,0,1412.282,1782.218,2,0,0,11,1,3,35.1,20.7,1,59.1,0,234,0,0,1.098612,5.455321,0,0,0,0,0,0,59.1,7.976544,1.098612,7.485614,1 +11,2,0,1,2,230779,0,2910.85,22.91102,0,9,1,543.2432,15.34749,0,0,0,558.5908,0,0,0,9,0,3,35.1,20.7,1,59.1,0,234,0,0,1.098612,5.455321,0,0,0,0,0,0,59.1,7.976544,1.098612,6.325417,1 +11,2,0,1,3,230779,0,2910.85,23.91102,0,9,1,167.0004,0,0,0,0,167.0004,0,0,0,4,0,3,35.1,20.7,1,59.1,0,234,0,0,1.098612,5.455321,0,0,0,0,0,0,59.1,7.976544,1.098612,5.117997,1 +11,2,0,1,1,230780,0,2910.85,1.138946,0,8,1,202.0381,35.49497,0,0,308.2054,545.7385,1,0,0,6,0,3,81.35272,11.84267,0,37,0,234,1,0,1.098612,5.455321,0,0,0,0,0,0,37,7.976544,1.098612,6.30214,1 +11,2,0,1,2,230780,0,2910.85,2.138946,0,8,1,23.16602,4.416023,0,0,0,27.58205,0,0,0,2,0,3,81.35272,11.84267,0,37,0,234,1,0,1.098612,5.455321,0,0,0,0,0,0,37,7.976544,1.098612,3.317165,1 +11,2,0,1,3,230780,0,2910.85,3.138946,0,8,1,2.225189,1.869159,0,0,0,4.094348,0,0,0,1,0,3,81.35272,11.84267,0,37,0,234,1,0,1.098612,5.455321,0,0,0,0,0,0,37,7.976544,1.098612,1.409608,1 +11,2,0,1,1,230793,0,16585.92,54.94867,0,16,1,115.4446,0,30.60322,0,0,146.0478,0,0,0,4,1,2,89.9,0,0,84.1,0,589.2,0,0,.6931472,6.378766,0,0,0,0,0,0,84.1,9.71637,.6931472,4.983934,1 +11,2,0,1,2,230793,0,16585.92,55.94867,0,16,1,43.71715,0,0,0,0,43.71715,0,0,0,2,0,2,89.9,0,0,84.1,0,589.2,0,0,.6931472,6.378766,0,0,0,0,0,0,84.1,9.71637,.6931472,3.77774,1 +11,2,0,1,3,230793,0,16585.92,56.94867,0,16,1,134.1089,0,29.41176,0,0,163.5206,0,0,0,4,1,2,89.9,0,0,84.1,0,589.2,0,0,.6931472,6.378766,0,0,0,0,0,0,84.1,9.71637,.6931472,5.096939,1 +11,2,0,1,1,230794,0,16585.92,51.43053,1,12,1,63.18253,95.34582,0,0,0,158.5283,0,0,0,6,0,2,87.2,10.3,1,85.2,0,589.2,0,0,.6931472,6.378766,0,0,0,0,0,0,85.2,9.71637,.6931472,5.065933,1 +11,2,0,1,2,230794,0,16585.92,52.43053,1,12,1,54.94505,107.1046,0,0,1280.053,1442.102,1,0,0,2,2,2,87.2,10.3,1,85.2,0,589.2,0,0,.6931472,6.378766,0,0,0,0,0,0,85.2,9.71637,.6931472,7.273857,1 +11,2,0,1,3,230794,0,16585.92,53.43053,1,12,1,26.77788,155.6673,40.61457,0,0,223.0597,0,0,0,3,1,2,87.2,10.3,1,85.2,0,589.2,0,0,.6931472,6.378766,0,0,0,0,0,0,85.2,9.71637,.6931472,5.40744,1 +13,2,0,1,1,230796,0,8665.641,35.154,1,12,1,31.23366,59.27339,32.85416,0,0,123.3612,0,0,0,1,1,4,60.1,24.1,0,76.1,450,517.56,0,0,1.386294,6.249125,1,4.564348,6.160541,1,0,0,76.1,9.067237,1.386294,4.815117,1 +13,2,0,1,2,230796,0,8665.641,36.154,1,12,1,419.7501,44.86785,0,0,0,464.618,0,0,0,6,0,4,60.1,24.1,0,76.1,450,517.56,0,0,1.386294,6.249125,1,4.564348,6.160541,1,0,0,76.1,9.067237,1.386294,6.141215,1 +13,2,0,1,3,230796,0,8665.641,37.154,1,12,1,358.7004,77.4185,38.86784,0,0,474.9868,0,0,0,24,2,4,60.1,24.1,0,76.1,450,517.56,0,0,1.386294,6.249125,1,4.564348,6.160541,1,0,0,76.1,9.067237,1.386294,6.163287,1 +13,2,0,1,1,230797,0,8665.641,9.190965,1,12,1,33.19394,5.196027,26.44015,0,0,64.83011,0,0,0,2,1,4,80,11.84267,0,96.3,450,517.56,1,1,1.386294,6.249125,1,4.564348,6.160541,0,0,0,96.3,9.067237,1.386294,4.17177,1 +13,2,0,1,2,230797,0,8665.641,10.19096,1,12,1,9.25036,4.204709,0,0,0,13.45507,0,0,0,1,0,4,80,11.84267,0,96.3,450,517.56,1,1,1.386294,6.249125,1,4.564348,6.160541,0,0,0,96.3,9.067237,1.386294,2.599356,1 +13,2,0,1,3,230797,0,8665.641,11.19096,1,12,1,41.18943,5.837004,29.70485,0,0,76.73128,0,0,0,5,0,4,80,11.84267,0,96.3,450,517.56,1,1,1.386294,6.249125,1,4.564348,6.160541,0,0,0,96.3,9.067237,1.386294,4.34031,1 +13,2,0,1,1,230798,0,8665.641,33.48939,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,91,6.9,0,81.8,450,517.56,0,0,1.386294,6.249125,1,4.564348,6.160541,0,0,0,81.8,9.067237,1.386294,,0 +13,2,0,1,2,230798,0,8665.641,34.48939,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,91,6.9,0,81.8,450,517.56,0,0,1.386294,6.249125,1,4.564348,6.160541,0,0,0,81.8,9.067237,1.386294,,0 +13,2,0,1,3,230798,0,8665.641,35.48939,0,13,1,84.14097,26.34361,35.14537,0,590.9207,736.5507,1,0,0,3,0,4,91,6.9,0,81.8,450,517.56,0,0,1.386294,6.249125,1,4.564348,6.160541,0,0,0,81.8,9.067237,1.386294,6.601978,1 +13,2,0,1,1,230799,0,8665.641,7.353867,0,12,1,13.59122,0,0,0,0,13.59122,0,0,0,0,1,4,75,11.84267,0,96.3,450,517.56,1,0,1.386294,6.249125,1,4.564348,6.160541,0,0,0,96.3,9.067237,1.386294,2.609424,1 +13,2,0,1,2,230799,0,8665.641,8.353868,0,12,1,15.61749,6.621817,0,0,0,22.23931,0,0,0,2,0,4,75,11.84267,0,96.3,450,517.56,1,0,1.386294,6.249125,1,4.564348,6.160541,0,0,0,96.3,9.067237,1.386294,3.101861,1 +13,2,0,1,3,230799,0,8665.641,9.353868,0,12,1,13.87665,0,0,0,0,13.87665,0,0,0,1,0,4,75,11.84267,0,96.3,450,517.56,1,0,1.386294,6.249125,1,4.564348,6.160541,0,0,0,96.3,9.067237,1.386294,2.630208,1 +11,2,0,1,1,230803,0,7353.666,29.04312,0,12,1,40.30161,0,34.05616,0,0,74.35777,0,0,0,4,0,1,61.7,13.8,0,55.7,0,0,0,0,0,0,0,0,0,0,0,0,55.7,8.90309,0,4.308888,1 +11,2,0,1,2,230803,0,7353.666,30.04312,0,12,1,94.60105,5.059723,0,0,0,99.66077,0,0,0,4,0,1,61.7,13.8,0,55.7,0,0,0,0,0,0,0,0,0,0,0,0,55.7,8.90309,0,4.601772,1 +11,2,0,1,3,230803,0,7353.666,31.04312,0,12,1,48.50746,4.925373,27.12028,0,0,80.55312,0,0,0,3,0,1,61.7,13.8,0,55.7,0,0,0,0,0,0,0,0,0,0,0,0,55.7,8.90309,0,4.388917,1 +5,2,25,0,1,230804,0,8665.641,27.47707,1,16,1,13.00052,0,34.05616,0,568.7208,615.7774,1,0,0,1,0,3,74.5,24.1,1,69.3,548.75,623.75,0,0,1.098612,6.43575,0,3.258096,7.693937,1,0,0,69.3,9.067237,1.098612,6.422885,1 +5,2,25,0,2,230804,0,8665.641,28.47707,1,16,1,0,0,16.86574,0,0,16.86574,0,0,0,0,0,4,74.5,24.1,1,69.3,548.75,623.75,0,0,1.386294,6.43575,0,3.258096,7.693937,1,0,0,69.3,9.067237,1.386294,2.825284,1 +5,2,25,0,3,230804,0,8665.641,29.47707,1,16,1,0,0,0,0,0,0,0,0,0,0,0,4,74.5,24.1,1,69.3,548.75,623.75,0,0,1.386294,6.43575,0,3.258096,7.693937,1,0,0,69.3,9.067237,1.386294,,0 +5,2,25,0,1,230805,0,8665.641,29.16632,0,16,1,47.32189,0,2.979719,0,0,50.30161,0,0,0,2,0,3,67.6,13.8,1,47.7,548.75,623.75,0,0,1.098612,6.43575,0,3.258096,7.693937,1,0,0,47.7,9.067237,1.098612,3.918037,1 +5,2,25,0,2,230805,0,8665.641,30.16632,0,16,1,14.33349,0,0,0,0,14.33349,0,0,0,1,0,4,67.6,13.8,1,47.7,548.75,623.75,0,0,1.386294,6.43575,0,3.258096,7.693937,1,0,0,47.7,9.067237,1.386294,2.662599,1 +5,2,25,0,3,230805,0,8665.641,31.16632,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,67.6,13.8,1,47.7,548.75,623.75,0,0,1.386294,6.43575,0,3.258096,7.693937,1,0,0,47.7,9.067237,1.386294,,0 +5,2,25,0,1,230806,0,8665.641,2.01232,0,16,1,10.40042,1.606864,0,0,0,12.00728,0,0,0,1,0,3,81.35272,11.84267,0,77.8,548.75,623.75,1,0,1.098612,6.43575,0,3.258096,7.693937,0,0,0,77.8,9.067237,1.098612,2.485513,1 +5,2,25,0,2,230806,0,8665.641,3.01232,0,16,1,10.51123,0,0,0,0,10.51123,0,0,0,2,0,4,81.35272,11.84267,0,77.8,548.75,623.75,1,0,1.386294,6.43575,0,3.258096,7.693937,0,0,0,77.8,9.067237,1.386294,2.352444,1 +5,2,25,0,3,230806,0,8665.641,4.012321,0,16,1,7.023705,0,0,0,0,7.023705,0,0,0,1,0,4,81.35272,11.84267,0,77.8,548.75,623.75,1,0,1.386294,6.43575,0,3.258096,7.693937,0,0,0,77.8,9.067237,1.386294,1.949291,1 +14,2,95,0,1,230808,0,3993.548,41.71115,0,12,1,102.2881,3.010921,32.02808,0,1421.789,1559.116,1,0,0,3,0,1,87.8,13.8,0,79.5,386.2,386.2,0,0,0,5.956356,0,4.564348,6.007648,0,0,0,79.5,8.292686,0,7.351874,1 +14,2,95,0,2,230808,0,3993.548,42.71115,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,87.8,13.8,0,79.5,386.2,386.2,0,0,0,5.956356,0,4.564348,6.007648,0,0,0,79.5,8.292686,0,,0 +13,2,0,0,1,230849,0,7508.504,36.45722,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,85.1,0,0,80.7,150,38.43,0,0,0,3.648839,1,4.564348,5.061929,1,0,0,80.7,8.923924,0,,0 +13,2,0,0,2,230849,0,7508.504,37.45722,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,85.1,0,0,80.7,150,38.43,0,0,0,3.648839,1,4.564348,5.061929,1,0,0,80.7,8.923924,0,,0 +13,2,0,0,3,230849,0,7508.504,38.45722,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,85.1,0,0,80.7,150,38.43,0,0,0,3.648839,1,4.564348,5.061929,1,0,0,80.7,8.923924,0,,0 +13,2,0,0,4,230849,0,7508.504,39.45722,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,85.1,0,0,80.7,150,38.43,0,0,0,3.648839,1,4.564348,5.061929,1,0,0,80.7,8.923924,0,,0 +13,2,0,0,5,230849,0,7508.504,40.45722,0,12,1,24.5975,0,0,0,457.7639,482.3614,1,0,0,0,0,1,85.1,0,0,80.7,150,38.43,0,0,0,3.648839,1,4.564348,5.061929,1,0,0,80.7,8.923924,0,6.178694,1 +11,2,0,0,1,230877,0,1052.786,22.99247,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,78.2,24.1,0,70.5,0,189.6,0,0,0,5.244916,0,0,0,1,0,0,70.5,6.960145,0,,0 +11,2,0,0,2,230877,0,1052.786,23.99247,0,12,1,41.90341,0,0,0,0,41.90341,0,0,0,2,0,1,78.2,24.1,0,70.5,0,189.6,0,0,0,5.244916,0,0,0,1,0,0,70.5,6.960145,0,3.735367,1 +11,2,0,0,3,230877,0,1052.786,24.99247,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,78.2,24.1,0,70.5,0,189.6,0,0,0,5.244916,0,0,0,1,0,0,70.5,6.960145,0,,0 +11,2,0,0,4,230877,0,1052.786,25.99247,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,78.2,24.1,0,70.5,0,189.6,0,0,0,5.244916,0,0,0,1,0,0,70.5,6.960145,0,,0 +11,2,0,0,5,230877,0,1052.786,26.99247,0,12,1,39.78533,0,0,0,0,39.78533,0,0,0,1,0,1,78.2,24.1,0,70.5,0,189.6,0,0,0,5.244916,0,0,0,1,0,0,70.5,6.960145,0,3.683498,1 +11,2,0,0,1,230878,0,8665.641,21.65366,1,12,1,229.1087,21.71046,0,0,0,250.8192,0,0,0,6,0,1,58,17.2,0,51.2,0,133.8,0,0,0,4.896346,0,0,0,1,0,0,51.2,9.067237,0,5.524732,1 +11,2,0,0,2,230878,0,8665.641,22.65366,1,12,1,62.26326,23.48485,0,0,0,85.74811,0,0,0,2,1,1,58,17.2,0,51.2,0,133.8,0,0,0,4.896346,0,0,0,1,0,0,51.2,9.067237,0,4.451414,1 +11,2,0,0,3,230878,0,8665.641,23.65366,1,12,1,42.26268,11.09666,0,0,0,53.35934,0,0,0,1,0,1,58,17.2,0,51.2,0,133.8,0,0,0,4.896346,0,0,0,1,0,0,51.2,9.067237,0,3.977049,1 +11,2,0,0,4,230878,0,8665.641,24.65366,1,12,1,12.80031,9.275305,0,0,0,22.07562,0,0,0,1,0,1,58,17.2,0,51.2,0,133.8,0,0,0,4.896346,0,0,0,1,0,0,51.2,9.067237,0,3.094474,1 +11,2,0,0,5,230878,0,8665.641,25.65366,1,12,1,53.52415,21.43471,0,0,0,74.95885,0,0,0,3,0,1,58,17.2,0,51.2,0,133.8,0,0,0,4.896346,0,0,0,1,0,0,51.2,9.067237,0,4.316939,1 +11,2,0,0,1,230879,0,1,25.68925,0,13,1,20.80083,15.23661,33.28133,0,0,69.31877,0,0,0,0,1,1,77.1,10.3,0,68.2,0,0,0,0,0,0,0,0,0,1,0,0,68.2,.6931472,0,4.238716,1 +11,2,0,0,2,230879,0,1,26.68925,0,13,1,70.23412,1.428571,0,0,0,71.66268,0,0,0,1,2,1,77.1,10.3,0,68.2,0,0,0,0,0,0,0,0,0,1,0,0,68.2,.6931472,0,4.27197,1 +11,2,0,0,3,230879,0,1,27.68925,0,13,1,56.29939,9.76734,21.94908,0,0,88.0158,0,0,0,2,1,1,77.1,10.3,0,68.2,0,0,0,0,0,0,0,0,0,1,0,0,68.2,.6931472,0,4.477516,1 +11,2,0,0,4,230879,0,1,28.68925,0,13,1,9.872357,16.37415,0,0,0,26.24651,0,0,0,1,0,1,77.1,10.3,0,68.2,0,0,0,0,0,0,0,0,0,1,0,0,68.2,.6931472,0,3.267533,1 +11,2,0,0,5,230879,0,1,29.68925,0,13,1,14.50326,22.78825,29.28934,0,0,66.58086,0,0,0,0,1,1,77.1,10.3,0,68.2,0,0,0,0,0,0,0,0,0,1,0,0,68.2,.6931472,0,4.198417,1 +11,2,0,1,1,230880,0,400,22.72142,1,12,1,177.0256,50.00523,105.0706,0,0,332.1014,0,0,0,8,3,1,78.2,13.8,1,58.3,0,0,0,0,0,0,0,0,0,1,0,0,58.3,5.993961,0,5.80544,1 +11,2,0,1,2,230880,0,400,23.72142,1,12,1,165.7857,34.4642,0,0,0,200.2499,0,0,0,9,5,1,78.2,13.8,1,58.3,0,0,0,0,0,0,0,0,0,1,0,0,58.3,5.993961,0,5.299566,1 +11,2,0,1,3,230880,0,400,24.72142,1,12,1,193.5022,67.88546,0,0,0,261.3877,0,0,0,9,11,1,78.2,13.8,1,58.3,0,0,0,0,0,0,0,0,0,1,0,0,58.3,5.993961,0,5.566005,1 +11,2,0,1,4,230880,0,400,25.72142,1,12,1,296.2621,52.43952,17.28226,26.20968,0,365.9839,0,0,1,11,9,1,78.2,13.8,1,58.3,0,0,0,0,0,0,0,0,0,1,0,0,58.3,5.993961,0,5.902589,1 +11,2,0,1,5,230880,0,400,26.72142,1,12,1,1006.047,78.64117,36.40802,0,1270.31,2391.406,1,0,0,6,55,1,78.2,13.8,1,58.3,0,0,0,0,0,0,0,0,0,1,0,0,58.3,5.993961,0,7.779637,1 +5,2,25,0,1,230900,0,4070.381,54.91034,1,13,1,13.91056,3.120125,44.50858,0,0,61.53926,0,0,0,1,1,1,65.4,17.2,1,78.4,325,325,0,0,0,5.783825,0,3.258096,7.17012,1,0,0,78.4,8.311738,0,4.119675,1 +5,2,25,0,1,230901,0,1728.446,26.54894,1,14,1,31.46126,4.082163,0,0,0,35.54342,0,0,0,2,0,1,78.2,20.7,0,77.3,140.15,0,0,0,0,0,0,3.258096,6.329008,1,0,0,77.3,7.455556,0,3.570755,1 +5,2,25,0,2,230901,0,1728.446,27.54894,1,14,1,23.29193,0,0,0,0,23.29193,0,0,0,2,0,1,78.2,20.7,0,77.3,140.15,0,0,0,0,0,0,3.258096,6.329008,1,0,0,77.3,7.455556,0,3.148107,1 +5,2,25,0,3,230901,0,1728.446,28.54894,1,14,1,94.0518,3.050922,0,0,0,97.10272,0,0,0,5,0,1,78.2,20.7,0,77.3,140.15,0,0,0,0,0,0,3.258096,6.329008,1,0,0,77.3,7.455556,0,4.575769,1 +5,2,25,0,4,230901,0,1728.446,29.54894,1,14,1,288.0135,15.76785,0,0,0,303.7814,0,0,0,4,13,1,78.2,20.7,0,77.3,140.15,0,0,0,0,0,0,3.258096,6.329008,1,0,0,77.3,7.455556,0,5.716309,1 +5,2,25,0,5,230901,0,1728.446,30.54894,1,14,1,37.98042,2.824511,0,0,0,40.80493,0,0,0,1,4,1,78.2,20.7,0,77.3,140.15,0,0,0,0,0,0,3.258096,6.329008,1,0,0,77.3,7.455556,0,3.708803,1 +11,2,0,0,1,230923,0,2352.493,25.0486,0,15,1,45.96527,0,0,0,0,45.96527,0,0,0,2,0,1,78.2,3.4,0,71.6,0,0,0,0,0,0,0,0,0,0,0,0,71.6,7.763656,0,3.827886,1 +11,2,0,0,2,230923,0,2352.493,26.0486,0,15,1,0,0,0,0,0,0,0,0,0,0,0,1,78.2,3.4,0,71.6,0,0,0,0,0,0,0,0,0,0,0,0,71.6,7.763656,0,,0 +11,2,0,0,3,230923,0,2352.493,27.0486,0,15,1,29.01978,0,36.01892,0,0,65.0387,0,0,0,1,1,1,78.2,3.4,0,71.6,0,0,0,0,0,0,0,0,0,0,0,0,71.6,7.763656,0,4.174983,1 +13,2,0,0,1,230953,0,18432.84,15.80835,1,12,1,52.73238,11.41471,0,0,1190.347,1254.494,1,0,0,3,0,3,78.2,13.8,0,79.5,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,0,0,0,79.5,9.821943,1.098612,7.134488,1 +13,2,0,0,2,230953,0,18432.84,16.80835,1,12,1,101.7346,25.53211,33.57712,0,425.2227,586.0666,1,0,0,8,1,3,78.2,13.8,0,79.5,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,0,0,0,79.5,9.821943,1.098612,6.373434,1 +13,2,0,0,3,230953,0,18432.84,17.80835,1,12,1,59.54428,16.1006,0,0,0,75.64488,0,0,0,3,1,3,78.2,13.8,0,79.5,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,0,0,0,79.5,9.821943,1.098612,4.32605,1 +13,2,0,0,4,230953,0,18432.84,18.80835,1,12,1,171.3067,7.696782,21.3261,0,0,200.3296,0,0,0,10,0,3,78.2,13.8,0,79.5,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,79.5,9.821943,1.098612,5.299964,1 +13,2,0,0,5,230953,0,18432.84,19.80835,1,12,1,23.2661,0,0,0,0,23.2661,0,0,0,1,0,2,78.2,13.8,0,79.5,450,450,0,0,.6931472,6.109248,1,4.564348,6.160541,0,0,0,79.5,9.821943,.6931472,3.146997,1 +13,2,0,0,1,230956,0,8665.641,23.5373,0,12,1,32.40598,2.462648,0,0,0,34.86863,0,0,0,2,0,1,71.8,3.4,0,67.5,150,0,0,0,0,0,1,4.564348,5.061929,0,0,0,67.5,9.067237,0,3.551587,1 +13,2,0,0,2,230956,0,8665.641,24.5373,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,71.8,3.4,0,67.5,150,0,0,0,0,0,1,4.564348,5.061929,0,0,0,67.5,9.067237,0,,0 +13,2,0,0,3,230956,0,8665.641,25.5373,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,71.8,3.4,0,67.5,150,0,0,0,0,0,1,4.564348,5.061929,0,0,0,67.5,9.067237,0,,0 +13,2,0,0,4,230956,0,8665.641,26.5373,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,71.8,3.4,0,67.5,150,0,0,0,0,0,1,4.564348,5.061929,0,0,0,67.5,9.067237,0,,0 +14,2,95,0,1,230962,0,4582.405,22.13552,1,12,1,183.3504,55.21961,31.15424,0,0,269.7242,0,0,0,14,0,2,84,3.4,0,70.5,218,0,0,0,.6931472,0,0,4.564348,5.435788,0,0,0,70.5,8.430198,.6931472,5.5974,1 +14,2,95,0,2,230962,0,4582.405,23.13552,1,12,1,220.933,57.50117,34.49601,0,0,312.9301,0,0,0,9,0,2,84,3.4,0,70.5,218,0,0,0,.6931472,0,0,4.564348,5.435788,0,0,0,70.5,8.430198,.6931472,5.74598,1 +14,2,95,0,3,230962,0,4582.405,24.13552,1,12,1,574.0112,96.06621,0,0,939.7249,1609.802,1,0,0,23,0,2,84,3.4,0,70.5,218,0,0,0,.6931472,0,0,4.564348,5.435788,0,0,0,70.5,8.430198,.6931472,7.383867,1 +13,2,0,0,1,230967,0,12936.07,42.37645,1,12,1,218.9593,23.23545,33.69397,0,0,275.8887,0,0,0,7,12,5,84,10.3,0,79.5,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,79.5,9.467853,1.609438,5.619998,1 +13,2,0,0,2,230967,0,12936.07,43.37645,1,12,1,107.4811,24.33712,0,0,0,131.8182,0,0,0,4,4,5,84,10.3,0,79.5,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,79.5,9.467853,1.609438,4.881423,1 +13,2,0,0,3,230967,0,12936.07,44.37645,1,12,1,124.6207,15.42263,50.0997,0,0,190.143,0,0,0,6,1,5,84,10.3,0,79.5,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,79.5,9.467853,1.609438,5.247777,1 +13,2,0,0,4,230967,0,12936.07,45.37645,1,12,1,100.3939,8.60575,11.21308,0,0,120.2127,0,0,0,3,0,5,84,10.3,0,79.5,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,79.5,9.467853,1.609438,4.789263,1 +13,2,0,0,5,230967,0,12936.07,46.37645,1,12,1,131.7531,9.101968,37.67442,0,1362.1,1540.63,1,0,0,3,4,6,84,10.3,0,79.5,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,79.5,9.467853,1.791759,7.339946,1 +13,2,0,0,1,230968,0,12936.07,14.93498,0,12,1,59.76301,26.84184,.618238,0,0,87.22308,0,0,0,5,0,5,82.4,10.3,0,88.6,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,88.6,9.467853,1.609438,4.468469,1 +13,2,0,0,2,230968,0,12936.07,15.93498,0,12,1,136.8371,16.99337,0,0,0,153.8305,0,0,0,4,4,5,82.4,10.3,0,88.6,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,88.6,9.467853,1.609438,5.035851,1 +13,2,0,0,3,230968,0,12936.07,16.93498,0,12,1,301.0836,32.62245,4.334634,0,0,338.0407,0,0,0,9,6,5,82.4,10.3,0,88.6,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,88.6,9.467853,1.609438,5.823166,1 +13,2,0,0,4,230968,0,12936.07,17.93498,0,12,1,96.51437,6.100827,0,0,0,102.6152,0,0,0,4,0,5,82.4,10.3,0,88.6,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,88.6,9.467853,1.609438,4.630986,1 +13,2,0,0,5,230968,0,12936.07,18.93498,0,12,1,69.94633,1.413238,0,0,0,71.35957,0,0,0,5,3,6,82.4,10.3,0,88.6,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,88.6,9.467853,1.791759,4.267732,1 +13,2,0,0,1,230969,0,12936.07,49.37988,0,12,1,82.94694,7.676455,49.84544,0,0,140.4688,0,0,0,2,1,5,86.7,6.9,0,77.3,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,77.3,9.467853,1.609438,4.944985,1 +13,2,0,0,2,230969,0,12936.07,50.37988,0,12,1,102.036,13.61269,0,0,0,115.6487,0,0,0,6,0,5,86.7,6.9,0,77.3,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,77.3,9.467853,1.609438,4.750557,1 +13,2,0,0,3,230969,0,12936.07,51.37988,0,12,1,89.51019,9.687906,0,0,0,99.19809,0,0,0,3,4,5,86.7,6.9,0,77.3,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,77.3,9.467853,1.609438,4.597119,1 +13,2,0,0,4,230969,0,12936.07,52.37988,0,12,1,124.5569,13.30445,0,0,1231.489,1369.35,1,0,0,3,7,5,86.7,6.9,0,77.3,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,77.3,9.467853,1.609438,7.222092,1 +13,2,0,0,5,230969,0,12936.07,53.37988,0,12,1,91.59213,14.39356,38.56887,0,0,144.5546,0,0,0,7,5,6,86.7,6.9,0,77.3,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,77.3,9.467853,1.791759,4.973657,1 +13,2,0,0,1,230970,0,12936.07,18.40931,0,11,1,40.95827,12.10716,0,0,0,53.06543,0,0,0,2,0,5,79.8,3.4,0,79.5,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,79.5,9.467853,1.609438,3.971526,1 +13,2,0,0,2,230970,0,12936.07,19.40931,0,11,1,127.8409,24.05303,0,0,0,151.8939,0,0,0,13,0,5,79.8,3.4,0,79.5,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,79.5,9.467853,1.609438,5.023182,1 +13,2,0,0,3,230970,0,12936.07,20.40931,0,11,1,137.8197,41.17902,0,0,0,178.9987,0,0,0,10,0,5,79.8,3.4,0,79.5,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,79.5,9.467853,1.609438,5.187378,1 +13,2,0,0,4,230970,0,12936.07,21.40931,0,11,1,75.8527,23.63135,0,0,0,99.48405,0,0,0,6,0,5,79.8,3.4,0,79.5,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,79.5,9.467853,1.609438,4.599998,1 +13,2,0,0,5,230970,0,12936.07,22.40931,0,11,1,196.1538,42.30412,0,0,0,238.458,0,0,0,14,0,6,79.8,3.4,0,79.5,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,79.5,9.467853,1.791759,5.474193,1 +17,2,25,0,1,230994,0,5780.645,32.07666,0,14,1,45.96527,47.22165,0,0,0,93.18693,0,0,0,5,0,1,70.2,17.2,0,75,452.5,452.5,0,0,0,6.114788,0,3.258096,7.501082,0,0,0,75,8.662443,0,4.534607,1 +17,2,25,0,2,230994,0,5780.645,33.07666,0,14,1,191.7487,66.68073,0,140.647,11785.68,12044.11,4,0,6,12,0,1,70.2,17.2,0,75,452.5,452.5,0,0,0,6.114788,0,3.258096,7.501082,0,0,0,75,8.662443,0,9.396331,1 +17,2,25,0,3,230994,0,5780.645,34.07666,0,14,1,349.0542,29.30783,0,0,0,378.362,0,0,0,21,15,1,70.2,17.2,0,75,452.5,452.5,0,0,0,6.114788,0,3.258096,7.501082,0,0,0,75,8.662443,0,5.935852,1 +11,2,0,1,1,231014,0,5622.874,4.281999,1,14,1,10.58761,0,0,0,0,10.58761,0,0,0,0,0,3,81.35272,11.84267,0,92.6,0,66,1,1,1.098612,4.189655,0,0,0,0,0,0,92.6,8.634776,1.098612,2.359685,1 +11,2,0,1,2,231014,0,5622.874,5.281999,1,14,1,8.735521,0,0,0,0,8.735521,0,0,0,1,0,3,81.35272,11.84267,0,92.6,0,66,1,1,1.098612,4.189655,0,0,0,0,0,0,92.6,8.634776,1.098612,2.167398,1 +11,2,0,1,3,231014,0,5622.874,6.281999,1,14,1,10.82332,2.225189,0,0,0,13.04851,0,0,0,1,0,3,81.35272,11.84267,0,92.6,0,66,1,1,1.098612,4.189655,0,0,0,0,0,0,92.6,8.634776,1.098612,2.568674,1 +11,2,0,1,1,231015,0,5622.874,7.397673,1,14,1,37.05664,0,0,0,0,37.05664,0,0,0,1,0,3,78.3,11.84267,0,88.9,0,66,1,1,1.098612,4.189655,0,0,0,1,0,0,88.9,8.634776,1.098612,3.612448,1 +11,2,0,1,2,231015,0,5622.874,8.397673,1,14,1,22.2973,3.590734,36.01351,0,0,61.90154,0,0,0,2,0,3,78.3,11.84267,0,88.9,0,66,1,1,1.098612,4.189655,0,0,0,1,0,0,88.9,8.634776,1.098612,4.125545,1 +11,2,0,1,3,231015,0,5622.874,9.397673,1,14,1,67.95283,7.721406,15.57632,0,0,91.25056,0,0,0,6,0,3,78.3,11.84267,0,88.9,0,66,1,1,1.098612,4.189655,0,0,0,1,0,0,88.9,8.634776,1.098612,4.513609,1 +11,2,0,1,1,231016,0,5622.874,29.56058,1,14,1,148.756,31.82636,0,0,0,180.5823,0,0,0,5,8,3,75,13.8,0,86.4,0,66,0,0,1.098612,4.189655,0,0,0,0,0,0,86.4,8.634776,1.098612,5.196187,1 +11,2,0,1,2,231016,0,5622.874,30.56058,1,14,1,27.74131,6.669884,0,0,314.6042,349.0154,1,0,0,2,0,3,75,13.8,0,86.4,0,66,0,0,1.098612,4.189655,0,0,0,0,0,0,86.4,8.634776,1.098612,5.855116,1 +11,2,0,1,3,231016,0,5622.874,31.56058,1,14,1,54.68625,9.279038,31.87361,0,0,95.8389,0,0,0,4,1,3,75,13.8,0,86.4,0,66,0,0,1.098612,4.189655,0,0,0,0,0,0,86.4,8.634776,1.098612,4.562669,1 +13,2,0,1,1,231025,0,8052.105,7.23614,0,12,1,20.90957,1.542081,2.587559,0,0,25.03921,0,0,0,0,1,3,90,11.84267,0,88.9,450,0,1,0,1.098612,0,1,4.564348,6.160541,1,0,0,88.9,8.993814,1.098612,3.220443,1 +13,2,0,1,2,231025,0,8052.105,8.236139,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,90,11.84267,0,88.9,450,0,1,0,.6931472,0,1,4.564348,6.160541,1,0,0,88.9,8.993814,.6931472,,0 +13,2,0,1,3,231025,0,8052.105,9.236139,0,12,1,5.726872,0,3.061674,0,0,8.788547,0,0,0,1,0,2,90,11.84267,0,88.9,450,0,1,0,.6931472,0,1,4.564348,6.160541,1,0,0,88.9,8.993814,.6931472,2.173449,1 +13,2,0,1,4,231025,0,8052.105,10.23614,0,12,1,21.67339,0,0,0,0,21.67339,0,0,0,2,0,2,90,11.84267,0,88.9,450,0,1,0,.6931472,0,1,4.564348,6.160541,1,0,0,88.9,8.993814,.6931472,3.076085,1 +13,2,0,1,5,231025,0,8052.105,11.23614,0,12,1,5.82878,4.28051,0,0,0,10.10929,0,0,0,1,0,2,90,11.84267,0,88.9,450,0,1,0,.6931472,0,1,4.564348,6.160541,1,0,0,88.9,8.993814,.6931472,2.313455,1 +13,2,0,1,1,231026,0,8052.105,34.17112,1,12,1,39.885,48.90225,0,0,216.3095,305.0967,1,0,0,3,1,3,86.2,6.9,1,92,450,0,0,0,1.098612,0,1,4.564348,6.160541,1,0,0,92,8.993814,1.098612,5.720629,1 +13,2,0,1,2,231026,0,8052.105,35.17112,1,12,1,60.11533,35.1754,0,0,509.0101,604.3008,2,0,0,5,0,2,86.2,6.9,1,92,450,0,0,0,.6931472,0,1,4.564348,6.160541,1,0,0,92,8.993814,.6931472,6.404072,1 +13,2,0,1,3,231026,0,8052.105,36.17112,1,12,1,32.81938,31.10573,0,0,332.9075,396.8326,1,0,0,4,0,2,86.2,6.9,1,92,450,0,0,0,.6931472,0,1,4.564348,6.160541,1,0,0,92,8.993814,.6931472,5.983515,1 +13,2,0,1,4,231026,0,8052.105,37.17112,1,12,1,27.82258,10.60484,27.78226,0,0,66.20968,0,0,0,0,1,2,86.2,6.9,1,92,450,0,0,0,.6931472,0,1,4.564348,6.160541,1,0,0,92,8.993814,.6931472,4.192827,1 +13,2,0,1,5,231026,0,8052.105,38.17112,1,12,1,8.925319,4.298725,0,0,312.8524,326.0765,1,0,0,1,0,2,86.2,6.9,1,92,450,0,0,0,.6931472,0,1,4.564348,6.160541,1,0,0,92,8.993814,.6931472,5.787132,1 +13,2,0,1,1,231027,0,8052.105,4.914442,1,12,.3369863,0,0,0,0,0,0,0,0,0,0,0,3,81.35272,11.84267,0,37,450,0,1,1,1.098612,0,1,4.564348,6.160541,1,0,0,37,8.993814,1.098612,,0 +11,2,0,0,1,231038,.0220994,8665.641,35.87406,1,7,1,138.0655,94.24337,32.01768,36.40145,0,264.3266,0,0,2,15,1,4,36.7,20.7,1,70.5,0,0,0,0,1.386294,0,0,0,0,1,0,0,70.5,9.067237,1.386294,5.577185,1 +11,2,0,0,2,231038,.0220994,8665.641,36.87406,1,7,1,72.14525,83.63115,0,195.8911,0,155.7764,0,0,8,9,0,4,36.7,20.7,1,70.5,0,0,0,0,1.386294,0,0,0,0,1,0,0,70.5,9.067237,1.386294,5.048422,1 +11,2,0,0,3,231038,.0220994,8665.641,37.87406,1,7,1,112.1598,135.2897,0,232.6602,1208.402,1455.852,3,0,11,1,0,4,36.7,20.7,1,70.5,0,0,0,0,1.386294,0,0,0,0,1,0,0,70.5,9.067237,1.386294,7.283346,1 +11,2,0,0,1,231039,.0220994,8665.641,12.91718,1,7,1,6.50026,0,33.06812,0,0,39.56838,0,0,0,0,1,4,15,11.84267,1,81.5,0,0,1,1,1.386294,0,0,0,0,0,0,0,81.5,9.067237,1.386294,3.67803,1 +11,2,0,0,2,231039,.0220994,8665.641,13.91718,1,7,1,7.166746,0,15.76684,0,0,22.93359,0,0,0,0,1,4,15,11.84267,1,81.5,0,0,1,1,1.386294,0,0,0,0,0,0,0,81.5,9.067237,1.386294,3.132602,1 +11,2,0,0,3,231039,.0220994,8665.641,14.91718,1,7,1,15.36436,0,35.89991,0,0,51.26427,0,0,0,1,0,4,15,11.84267,1,81.5,0,0,1,1,1.386294,0,0,0,0,0,0,0,81.5,9.067237,1.386294,3.936994,1 +11,2,0,0,1,231040,.0220994,8665.641,46.60643,0,16,1,8.840354,0,62.14769,0,0,70.98804,0,0,0,0,1,4,97.3,10.3,0,78.4,0,0,0,0,1.386294,0,0,0,0,0,1,0,78.4,9.067237,1.386294,4.262511,1 +11,2,0,0,2,231040,.0220994,8665.641,47.60643,0,16,1,173.4353,0,0,0,0,173.4353,0,0,0,6,0,4,97.3,10.3,0,78.4,0,0,0,0,1.386294,0,0,0,0,0,1,0,78.4,9.067237,1.386294,5.155804,1 +11,2,0,0,3,231040,.0220994,8665.641,48.60643,0,16,1,0,0,28.43723,0,0,28.43723,0,0,0,0,0,4,97.3,10.3,0,78.4,0,0,0,0,1.386294,0,0,0,0,0,1,0,78.4,9.067237,1.386294,3.347699,1 +11,2,0,0,1,231041,.0220994,8665.641,14.41205,0,7,1,6.50026,3.380135,29.12116,0,0,39.00156,0,0,0,0,1,4,61.7,3.4,0,90.9,0,0,1,0,1.386294,0,0,0,0,0,0,0,90.9,9.067237,1.386294,3.663602,1 +11,2,0,0,2,231041,.0220994,8665.641,15.41205,0,7,1,4.777831,0,0,0,0,4.777831,0,0,0,1,0,4,61.7,3.4,0,90.9,0,0,1,0,1.386294,0,0,0,0,0,0,0,90.9,9.067237,1.386294,1.563987,1 +11,2,0,0,3,231041,.0220994,8665.641,16.41205,0,7,1,5.267779,0,0,0,0,5.267779,0,0,0,1,0,4,61.7,3.4,0,90.9,0,0,1,0,1.386294,0,0,0,0,0,0,0,90.9,9.067237,1.386294,1.661609,1 +11,2,0,1,1,231060,0,8690.322,23.53456,0,9,1,56.11435,13.8433,0,0,0,69.95765,0,0,0,3,0,2,77.1,6.9,0,76.2,0,0,0,0,.6931472,0,0,0,0,0,0,0,76.2,9.070081,.6931472,4.24789,1 +11,2,0,1,2,231060,0,8690.322,24.53456,0,9,1,9.169884,1.930502,0,0,0,11.10039,0,0,0,0,0,2,77.1,6.9,0,76.2,0,0,0,0,.6931472,0,0,0,0,0,0,0,76.2,9.070081,.6931472,2.40698,1 +11,2,0,1,3,231060,0,8690.322,25.53456,0,9,1,19.75968,5.113485,0,0,0,24.87317,0,0,0,2,0,2,77.1,6.9,0,76.2,0,0,0,0,.6931472,0,0,0,0,0,0,0,76.2,9.070081,.6931472,3.213789,1 +11,2,0,1,1,231061,0,8690.322,20.52567,1,12,1,55.05558,14.97088,0,0,682.001,752.0275,1,0,0,4,0,2,72.3,0,0,70.5,0,0,0,0,.6931472,0,0,0,0,1,0,0,70.5,9.070081,.6931472,6.622773,1 +11,2,0,1,2,231061,0,8690.322,21.52567,1,12,1,32.57722,7.818533,32.15251,0,0,72.54826,0,0,0,2,0,2,72.3,0,0,70.5,0,0,0,0,.6931472,0,0,0,0,1,0,0,70.5,9.070081,.6931472,4.284252,1 +11,2,0,1,3,231061,0,8690.322,22.52567,1,12,1,56.83133,15.27815,0,0,0,72.10948,0,0,0,3,0,2,72.3,0,0,70.5,0,0,0,0,.6931472,0,0,0,0,1,0,0,70.5,9.070081,.6931472,4.278185,1 +13,2,0,0,1,231079,0,10666.86,61.66461,0,16,1,359.8661,155.796,60.74189,0,0,576.4039,0,0,0,21,0,2,80.9,20.7,1,46.6,300,962.4,0,0,.6931472,6.86943,1,4.564348,5.755076,0,1,0,46.6,9.274991,.6931472,6.356809,1 +13,2,0,0,2,231079,0,10666.86,62.66461,0,16,1,683.0019,447.3248,0,0,0,1130.327,0,0,0,41,0,2,80.9,20.7,1,46.6,300,962.4,0,0,.6931472,6.86943,1,4.564348,5.755076,0,1,0,46.6,9.274991,.6931472,7.030262,1 +13,2,0,0,3,231079,0,10666.86,63.66461,0,16,1,438.4482,193.368,49.75293,0,7132.323,7813.893,2,0,0,25,3,2,80.9,20.7,1,46.6,300,962.4,0,0,.6931472,6.86943,1,4.564348,5.755076,0,1,0,46.6,9.274991,.6931472,8.963658,1 +13,2,0,0,1,231080,0,10666.86,58.00137,1,13,1,24.72952,23.49304,13.57548,0,0,61.79804,0,0,0,1,0,2,81.9,17.2,1,64.8,300,962.4,0,0,.6931472,6.86943,1,4.564348,5.755076,0,0,0,64.8,9.274991,.6931472,4.123872,1 +13,2,0,0,2,231080,0,10666.86,59.00137,1,13,1,11.83712,18.27652,34.75379,0,0,64.86742,0,0,0,1,0,2,81.9,17.2,1,64.8,300,962.4,0,0,.6931472,6.86943,1,4.564348,5.755076,0,0,0,64.8,9.274991,.6931472,4.172346,1 +13,2,0,0,3,231080,0,10666.86,60.00137,1,13,1,13.0039,8.972692,31.80754,0,0,53.78413,0,0,0,1,0,2,81.9,17.2,1,64.8,300,962.4,0,0,.6931472,6.86943,1,4.564348,5.755076,0,0,0,64.8,9.274991,.6931472,3.984978,1 +13,2,0,0,1,231100,0,9123.167,8.936345,1,16,1,5.823187,0,0,0,0,5.823187,0,0,0,1,0,4,85,11.84267,0,92.6,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,92.6,9.118682,1.386294,1.761848,1 +13,2,0,0,2,231100,0,9123.167,9.936345,1,16,1,0,0,0,0,0,0,0,0,0,0,0,4,85,11.84267,0,92.6,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,92.6,9.118682,1.386294,,0 +13,2,0,0,3,231100,0,9123.167,10.93635,1,16,1,8.010681,0,0,0,0,8.010681,0,0,0,1,0,4,85,11.84267,0,92.6,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,92.6,9.118682,1.386294,2.080776,1 +13,2,0,0,1,231101,0,9123.167,34.4887,0,17,1,0,0,0,0,0,0,0,0,0,0,0,4,84,0,0,72.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,72.7,9.118682,1.386294,,0 +13,2,0,0,2,231101,0,9123.167,35.4887,0,17,1,0,0,0,0,0,0,0,0,0,0,0,4,84,0,0,72.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,72.7,9.118682,1.386294,,0 +13,2,0,0,3,231101,0,9123.167,36.4887,0,17,1,22.25189,.1112595,0,0,0,22.36315,0,0,0,1,0,4,84,0,0,72.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,72.7,9.118682,1.386294,3.107414,1 +13,2,0,0,1,231102,0,9123.167,5.407255,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,93.3,11.84267,0,85.2,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.118682,1.386294,,0 +13,2,0,0,2,231102,0,9123.167,6.407255,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,93.3,11.84267,0,85.2,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.118682,1.386294,,0 +13,2,0,0,3,231102,0,9123.167,7.407255,0,16,1,57.14286,0,0,0,279.6618,336.8046,1,0,0,4,0,4,93.3,11.84267,0,85.2,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.118682,1.386294,5.819503,1 +13,2,0,0,1,231103,0,9123.167,34.34086,1,16,1,33.35098,0,21.88989,0,0,55.24087,0,0,0,1,1,4,86.7,3.4,0,83,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,83,9.118682,1.386294,4.011703,1 +13,2,0,0,2,231103,0,9123.167,35.34086,1,16,1,0,0,0,0,0,0,0,0,0,0,0,4,86.7,3.4,0,83,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,83,9.118682,1.386294,,0 +13,2,0,0,3,231103,0,9123.167,36.34086,1,16,1,0,0,0,0,0,0,0,0,0,0,0,4,86.7,3.4,0,83,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,83,9.118682,1.386294,,0 +7,2,25,0,1,231121,0,14490.91,15.66598,0,16,1,0,0,25.83759,0,0,25.83759,0,0,0,0,0,3,83.5,6.9,0,72.7,1000,80,1,0,1.098612,4.382027,0,3.258096,8.294049,0,0,0,72.7,9.581346,1.098612,3.25183,1 +7,2,25,0,2,231121,0,14490.91,16.66598,0,16,1,30.66104,0,18.28411,0,0,48.94515,0,0,0,1,1,3,83.5,6.9,0,72.7,1000,80,1,0,1.098612,4.382027,0,3.258096,8.294049,0,0,0,72.7,9.581346,1.098612,3.8907,1 +7,2,25,0,3,231121,0,14490.91,17.66598,0,16,1,8.598453,0,0,0,0,8.598453,0,0,0,1,0,3,83.5,6.9,0,72.7,1000,80,1,0,1.098612,4.382027,0,3.258096,8.294049,0,0,0,72.7,9.581346,1.098612,2.151582,1 +7,2,25,0,4,231121,0,14490.91,18.66598,0,16,1,19.38736,0,12.71035,0,0,32.09771,0,0,0,0,2,3,83.5,6.9,0,72.7,1000,80,0,0,1.098612,4.382027,0,3.258096,8.294049,0,0,0,72.7,9.581346,1.098612,3.468785,1 +7,2,25,0,5,231121,0,14490.91,19.66598,0,16,1,12.385,4.437367,26.99221,0,0,43.81458,0,0,0,0,1,3,83.5,6.9,0,72.7,1000,80,0,0,1.098612,4.382027,0,3.258096,8.294049,0,0,0,72.7,9.581346,1.098612,3.779967,1 +7,2,25,0,1,231122,0,14490.91,49.69747,0,16,1,12.25741,0,37.28294,0,0,49.54035,0,0,0,0,2,3,73.9,3.4,0,69.3,1000,80,0,0,1.098612,4.382027,0,3.258096,8.294049,0,0,0,69.3,9.581346,1.098612,3.902787,1 +7,2,25,0,2,231122,0,14490.91,50.69747,0,16,1,72.19878,0,0,0,0,72.19878,0,0,0,2,0,3,73.9,3.4,0,69.3,1000,80,0,0,1.098612,4.382027,0,3.258096,8.294049,0,0,0,69.3,9.581346,1.098612,4.279423,1 +7,2,25,0,3,231122,0,14490.91,51.69747,0,16,1,164.6604,0,44.71195,0,0,209.3723,0,0,0,7,1,3,73.9,3.4,0,69.3,1000,80,0,0,1.098612,4.382027,0,3.258096,8.294049,0,0,0,69.3,9.581346,1.098612,5.344114,1 +7,2,25,0,4,231122,0,14490.91,52.69747,0,16,1,61.34161,3.606049,25.59131,0,0,90.53897,0,0,0,3,1,3,73.9,3.4,0,69.3,1000,80,0,0,1.098612,4.382027,0,3.258096,8.294049,0,0,0,69.3,9.581346,1.098612,4.50578,1 +7,2,25,0,5,231122,0,14490.91,53.69747,0,16,1,15.21585,0,23.35456,0,0,38.57042,0,0,0,0,1,3,73.9,3.4,0,69.3,1000,80,0,0,1.098612,4.382027,0,3.258096,8.294049,0,0,0,69.3,9.581346,1.098612,3.652486,1 +7,2,25,0,1,231123,0,14490.91,48.98837,1,16,1,12.76813,0,32.23187,0,0,45,0,0,0,0,1,3,80.9,17.2,0,83,1000,80,0,0,1.098612,4.382027,0,3.258096,8.294049,0,0,0,83,9.581346,1.098612,3.806663,1 +7,2,25,0,2,231123,0,14490.91,49.98837,1,16,1,37.50586,15.68214,2.808251,0,0,55.99625,0,0,0,5,0,3,80.9,17.2,0,83,1000,80,0,0,1.098612,4.382027,0,3.258096,8.294049,0,0,0,83,9.581346,1.098612,4.025285,1 +7,2,25,0,3,231123,0,14490.91,50.98837,1,16,1,458.319,62.34738,74.06277,0,0,594.7291,0,0,0,8,1,3,80.9,17.2,0,83,1000,80,0,0,1.098612,4.382027,0,3.258096,8.294049,0,0,0,83,9.581346,1.098612,6.388106,1 +7,2,25,0,4,231123,0,14490.91,51.98837,1,16,1,11.63242,20.65529,0,0,0,32.28771,0,0,0,2,0,3,80.9,17.2,0,83,1000,80,0,0,1.098612,4.382027,0,3.258096,8.294049,0,0,0,83,9.581346,1.098612,3.474687,1 +7,2,25,0,5,231123,0,14490.91,52.98837,1,16,1,18.75442,4.561217,0,0,0,23.31564,0,0,0,1,0,3,80.9,17.2,0,83,1000,80,0,0,1.098612,4.382027,0,3.258096,8.294049,0,0,0,83,9.581346,1.098612,3.149124,1 +11,2,0,0,1,231126,0,2650.44,51.57016,1,12,1,173.3642,32.84389,53.5085,0,0,259.7166,0,0,0,9,1,2,89.9,10.3,0,76.1,0,0,0,0,.6931472,0,0,0,0,0,0,0,76.1,7.882858,.6931472,5.559591,1 +11,2,0,0,2,231126,0,2650.44,52.57016,1,12,1,651.9413,38.84943,14.20455,97.06439,0,704.9952,0,0,4,13,42,2,89.9,10.3,0,76.1,0,0,0,0,.6931472,0,0,0,0,0,0,0,76.1,7.882858,.6931472,6.558191,1 +11,2,0,0,3,231126,0,2650.44,53.57016,1,12,1,419.5925,41.94192,87.31253,0,958.0624,1506.909,2,0,0,14,1,2,89.9,10.3,0,76.1,0,0,0,0,.6931472,0,0,0,0,0,0,0,76.1,7.882858,.6931472,7.317816,1 +13,2,0,0,1,231148,0,8665.641,20.90075,0,11,1,0,0,0,0,0,0,0,0,0,0,0,1,70.2,0,0,65.9,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,65.9,9.067237,0,,0 +13,2,0,0,1,231149,0,1207.625,20.73922,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,76.6,10.3,0,84.1,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,84.1,7.097239,0,,0 +13,2,0,0,2,231149,0,1207.625,21.73922,1,12,1,6.450072,0,0,0,0,6.450072,0,0,0,1,0,1,76.6,10.3,0,84.1,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,84.1,7.097239,0,1.864091,1 +13,2,0,0,3,231149,0,1207.625,22.73922,1,12,1,345.5882,74.62687,35.44776,0,0,455.6629,0,0,0,10,1,1,76.6,10.3,0,84.1,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,84.1,7.097239,0,6.121753,1 +13,2,0,0,4,231149,0,1207.625,23.73922,1,12,1,84.284,85.6083,34.81452,0,0,204.7068,0,0,0,4,0,1,76.6,10.3,0,84.1,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,84.1,7.097239,0,5.321579,1 +13,2,0,0,5,231149,0,1207.625,24.73922,1,12,1,56.21827,82.16461,2.175489,0,0,140.5584,0,0,0,4,0,1,76.6,10.3,0,84.1,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,84.1,7.097239,0,4.945623,1 +11,2,0,0,1,231164,0,10620.53,54.38467,0,12,1,224.2551,17.95609,0,0,0,242.2112,0,0,0,3,0,4,79.3,20.7,0,62.5,0,0,0,0,1.386294,0,0,0,0,0,1,0,62.5,9.270638,1.386294,5.48981,1 +11,2,0,0,2,231164,0,10620.53,55.38467,0,12,1,0,0,0,0,828.2797,828.2797,1,0,0,0,0,4,79.3,20.7,0,62.5,0,0,0,0,1.386294,0,0,0,0,0,1,0,62.5,9.270638,1.386294,6.719351,1 +11,2,0,0,3,231164,0,10620.53,56.38467,0,12,1,139.0529,56.42291,0,0,1015.264,1210.74,1,0,0,8,0,4,79.3,20.7,0,62.5,0,0,0,0,1.386294,0,0,0,0,0,1,0,62.5,9.270638,1.386294,7.098987,1 +11,2,0,0,4,231164,0,10620.53,57.38467,0,12,1,104.4355,57.56855,0,0,321.6734,483.6774,1,0,0,7,0,4,79.3,20.7,0,62.5,0,0,0,0,1.386294,0,0,0,0,0,1,0,62.5,9.270638,1.386294,6.181418,1 +11,2,0,0,1,231165,0,10620.53,11.34839,1,12,1,15.15944,6.445374,0,0,0,21.60481,0,0,0,1,0,4,75,11.84267,0,100,0,0,1,1,1.386294,0,0,0,0,1,0,0,100,9.270638,1.386294,3.072916,1 +11,2,0,0,2,231165,0,10620.53,12.34839,1,12,1,0,2.162422,0,0,0,2.162422,0,0,0,0,0,4,75,11.84267,0,100,0,0,1,1,1.386294,0,0,0,0,1,0,0,100,9.270638,1.386294,.7712288,1 +11,2,0,0,3,231165,0,10620.53,13.34839,1,12,1,19.38326,0,0,0,0,19.38326,0,0,0,1,0,4,75,11.84267,0,100,0,0,1,1,1.386294,0,0,0,0,1,0,0,100,9.270638,1.386294,2.96441,1 +11,2,0,0,4,231165,0,10620.53,14.34839,1,12,1,60.08065,7.665323,1.209677,0,0,68.95564,0,0,0,5,0,4,75,11.84267,0,100,0,0,1,1,1.386294,0,0,0,0,1,0,0,100,9.270638,1.386294,4.233463,1 +11,2,0,0,5,231165,0,10620.53,15.34839,1,12,1,12.75045,0,0,0,0,12.75045,0,0,0,1,1,3,75,11.84267,0,100,0,0,1,1,1.098612,0,0,0,0,1,0,0,100,9.270638,1.098612,2.545567,1 +11,2,0,0,1,231166,0,10620.53,47.2334,1,12,1,478.6722,84.14532,9.006796,0,823.9937,1395.818,1,0,0,19,11,4,75,24.1,0,29.5,0,0,0,0,1.386294,0,0,0,0,0,0,1,29.5,9.270638,1.386294,7.241236,1 +11,2,0,0,2,231166,0,10620.53,48.2334,1,12,1,402.5949,53.08506,0,0,488.0682,943.7482,1,0,0,14,3,4,75,24.1,0,29.5,0,0,0,0,1.386294,0,0,0,0,0,0,1,29.5,9.270638,1.386294,6.849859,1 +11,2,0,0,3,231166,0,10620.53,49.2334,1,12,1,696.652,104.0881,52.14978,0,1078.194,1931.084,1,0,0,23,38,4,75,24.1,0,29.5,0,0,0,0,1.386294,0,0,0,0,0,0,1,29.5,9.270638,1.386294,7.565836,1 +11,2,0,0,4,231166,0,10620.53,50.2334,1,12,1,604.6371,96.84274,0,0,755.8468,1457.327,2,0,0,23,32,4,75,24.1,0,29.5,0,0,0,0,1.386294,0,0,0,0,0,0,1,29.5,9.270638,1.386294,7.284359,1 +11,2,0,0,5,231166,0,10620.53,51.2334,1,12,1,326.4845,114.6885,0,0,1237.297,1678.47,2,0,0,14,20,3,75,24.1,0,29.5,0,0,0,0,1.098612,0,0,0,0,0,0,1,29.5,9.270638,1.098612,7.425638,1 +11,2,0,0,1,231179,0,8857.478,16.8104,1,13,1,43.7661,4.636785,35.98661,0,0,84.38949,0,0,0,4,1,4,78.2,13.8,1,69.3,0,0,1,1,1.386294,0,0,0,0,0,0,0,69.3,9.08913,1.386294,4.435443,1 +11,2,0,0,2,231179,0,8857.478,17.8104,1,13,1,140.696,19.24716,20.24148,0,0,180.1847,0,0,0,9,1,4,78.2,13.8,1,69.3,0,0,1,1,1.386294,0,0,0,0,0,0,0,69.3,9.08913,1.386294,5.193982,1 +11,2,0,0,3,231179,0,8857.478,18.8104,1,13,1,442.241,22.19766,32.41439,0,990.1387,1486.992,2,0,0,6,1,4,78.2,13.8,1,69.3,0,0,0,0,1.386294,0,0,0,0,0,0,0,69.3,9.08913,1.386294,7.304511,1 +11,2,0,0,1,231180,0,8857.478,14.41205,0,13,1,75.47655,6.18238,0,0,0,81.65894,0,0,0,5,0,4,86.2,6.9,0,69.3,0,0,1,0,1.386294,0,0,0,0,0,0,0,69.3,9.08913,1.386294,4.402551,1 +11,2,0,0,2,231180,0,8857.478,15.41205,0,13,1,85.69602,6.747159,0,0,0,92.44318,0,0,0,7,1,4,86.2,6.9,0,69.3,0,0,1,0,1.386294,0,0,0,0,0,0,0,69.3,9.08913,1.386294,4.526594,1 +11,2,0,0,3,231180,0,8857.478,16.41205,0,13,1,123.2423,7.061118,0,0,0,130.3034,0,0,0,8,0,4,86.2,6.9,0,69.3,0,0,1,0,1.386294,0,0,0,0,0,0,0,69.3,9.08913,1.386294,4.869866,1 +11,2,0,0,1,231181,0,8857.478,24.44079,0,12,1,16.20299,0,34.30706,0,0,50.51005,0,0,0,1,0,4,70.2,6.9,0,86.4,0,0,0,0,1.386294,0,0,0,0,0,0,0,86.4,9.08913,1.386294,3.922172,1 +11,2,0,0,2,231181,0,8857.478,25.44079,0,12,1,16.69034,0,0,0,0,16.69034,0,0,0,2,0,4,70.2,6.9,0,86.4,0,0,0,0,1.386294,0,0,0,0,0,0,0,86.4,9.08913,1.386294,2.81483,1 +11,2,0,0,3,231181,0,8857.478,26.44079,0,12,1,43.17295,.9796272,31.98093,0,0,76.13351,0,0,0,2,0,4,70.2,6.9,0,86.4,0,0,0,0,1.386294,0,0,0,0,0,0,0,86.4,9.08913,1.386294,4.332489,1 +11,2,0,0,1,231182,0,8857.478,62.27515,1,13,1,0,0,57.65585,0,0,57.65585,0,0,0,0,0,4,61.7,13.8,0,78.4,0,0,0,0,1.386294,0,0,0,0,0,0,0,78.4,9.08913,1.386294,4.054492,1 +11,2,0,0,2,231182,0,8857.478,63.27515,1,13,1,40.36458,2.642045,0,0,0,43.00663,0,0,0,3,0,4,61.7,13.8,0,78.4,0,0,0,0,1.386294,0,0,0,0,0,0,0,78.4,9.08913,1.386294,3.761354,1 +11,2,0,0,3,231182,0,8857.478,64.27515,1,13,1,125.2709,5.309927,0,0,0,130.5808,0,0,0,3,1,4,61.7,13.8,0,78.4,0,0,0,0,1.386294,0,0,0,0,0,0,0,78.4,9.08913,1.386294,4.871993,1 +11,2,0,0,1,231202,0,8182.405,50.66667,0,16,1,10.58761,0,0,0,0,10.58761,0,0,0,1,0,1,70.7,13.8,0,65.9,0,0,0,0,0,0,0,0,0,1,0,0,65.9,9.009864,0,2.359685,1 +11,2,0,0,2,231202,0,8182.405,51.66667,0,16,1,16.40927,0,49.0444,0,0,65.45367,0,0,0,0,1,1,70.7,13.8,0,65.9,0,0,0,0,0,0,0,0,0,1,0,0,65.9,9.009864,0,4.181343,1 +11,2,0,0,3,231202,0,8182.405,52.66667,0,16,1,0,0,0,0,0,0,0,0,0,0,0,1,70.7,13.8,0,65.9,0,0,0,0,0,0,0,0,0,1,0,0,65.9,9.009864,0,,0 +11,2,0,0,4,231202,0,8182.405,53.66667,0,16,1,80.11387,0,48.71086,0,0,128.8247,0,0,0,3,1,1,70.7,13.8,0,65.9,0,0,0,0,0,0,0,0,0,1,0,0,65.9,9.009864,0,4.858453,1 +11,2,0,0,5,231202,0,8182.405,54.66667,0,16,1,0,0,0,0,0,0,0,0,0,0,0,1,70.7,13.8,0,65.9,0,0,0,0,0,0,0,0,0,1,0,0,65.9,9.009864,0,,0 +15,2,95,0,1,231279,0,8665.641,19.27721,0,11,1,0,0,0,0,0,0,0,0,0,0,0,1,68.6,0,0,90.9,190,190,0,0,0,5.247024,0,4.564348,5.298317,0,0,0,90.9,9.067237,0,,0 +11,2,0,0,1,231284,0,8665.641,27.19233,0,16,1,58.21741,4.714065,0,0,0,62.93148,0,0,0,6,0,1,79.3,0,1,83,0,0,0,0,0,0,0,0,0,0,0,0,83,9.067237,0,4.142046,1 +11,2,0,0,2,231284,0,8665.641,28.19233,0,16,1,65.81439,19.18087,.7954546,0,0,85.79072,0,0,0,4,1,1,79.3,0,1,83,0,0,0,0,0,0,0,0,0,0,0,0,83,9.067237,0,4.451911,1 +11,2,0,0,3,231284,0,8665.641,29.19233,0,16,1,203.1209,16.93975,0,0,0,220.0607,0,0,0,9,3,1,79.3,0,1,83,0,0,0,0,0,0,0,0,0,0,0,0,83,9.067237,0,5.393903,1 +11,2,0,0,1,231286,0,4171.848,25.12252,1,14,1,33.19714,12.10929,0,0,0,45.30643,0,0,0,1,1,1,80.3,10.3,0,73.9,0,30,0,0,0,3.401197,0,0,0,0,0,0,73.9,8.336354,0,3.813449,1 +11,2,0,0,2,231286,0,4171.848,26.12252,1,14,1,62.61135,14.68823,0,0,0,77.29958,0,0,0,4,0,1,80.3,10.3,0,73.9,0,30,0,0,0,3.401197,0,0,0,0,0,0,73.9,8.336354,0,4.347689,1 +11,2,0,0,3,231286,0,4171.848,27.12252,1,14,1,23.21582,7.248495,2.265692,0,0,32.73001,0,0,0,2,0,1,80.3,10.3,0,73.9,0,30,0,0,0,3.401197,0,0,0,0,0,0,73.9,8.336354,0,3.488292,1 +18,2,25,0,1,231287,0,4421.701,55.83573,1,8,1,0,0,0,0,0,0,0,0,0,0,0,2,52.1,20.7,1,70.5,573.5,573.5,0,0,.6931472,6.351758,0,3.258096,7.738052,1,0,0,70.5,8.394506,.6931472,,0 +18,2,25,0,2,231287,0,4421.701,56.83573,1,8,1,90.10091,4.805382,34.47861,0,0,129.3849,0,0,0,6,0,2,52.1,20.7,1,70.5,573.5,573.5,0,0,.6931472,6.351758,0,3.258096,7.738052,1,0,0,70.5,8.394506,.6931472,4.862792,1 +18,2,25,0,3,231287,0,4421.701,57.83573,1,8,1,47.6652,10.26432,0,0,0,57.92952,0,0,0,4,0,2,52.1,20.7,1,70.5,573.5,573.5,0,0,.6931472,6.351758,0,3.258096,7.738052,1,0,0,70.5,8.394506,.6931472,4.059227,1 +18,2,25,0,1,231288,0,4421.701,6.321697,0,8,1,22.21641,9.283848,0,0,0,31.50026,0,0,0,2,0,2,56.7,11.84267,0,81.5,573.5,573.5,1,0,.6931472,6.351758,0,3.258096,7.738052,0,0,0,81.5,8.394506,.6931472,3.449996,1 +18,2,25,0,2,231288,0,4421.701,7.321697,0,8,1,30.27391,3.700144,0,0,0,33.97405,0,0,0,3,0,2,56.7,11.84267,0,81.5,573.5,573.5,1,0,.6931472,6.351758,0,3.258096,7.738052,0,0,0,81.5,8.394506,.6931472,3.525597,1 +18,2,25,0,3,231288,0,4421.701,8.321697,0,8,1,30.837,0,0,0,0,30.837,0,0,0,2,0,2,56.7,11.84267,0,81.5,573.5,573.5,1,0,.6931472,6.351758,0,3.258096,7.738052,0,0,0,81.5,8.394506,.6931472,3.428715,1 +11,2,0,1,1,231315,0,6947.214,28.03833,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,70.7,13.8,0,50,0,0,0,0,0,0,0,0,0,1,0,0,50,8.84624,0,,0 +11,2,0,1,2,231315,0,6947.214,29.03833,0,12,1,38.12741,3.692085,0,0,0,41.8195,0,0,0,2,0,1,70.7,13.8,0,50,0,0,0,0,0,0,0,0,0,1,0,0,50,8.84624,0,3.733363,1 +11,2,0,1,3,231315,0,6947.214,30.03833,0,12,1,16.91144,0,28.11749,0,0,45.02893,0,0,0,1,0,1,70.7,13.8,0,50,0,0,0,0,0,0,0,0,0,1,0,0,50,8.84624,0,3.807305,1 +11,2,0,1,4,231315,0,6947.214,31.03833,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,70.7,13.8,0,50,0,0,0,0,0,0,0,0,0,1,0,0,50,8.84624,0,,0 +11,2,0,1,5,231315,0,6947.214,32.03833,0,12,1,12.09677,0,0,0,0,12.09677,0,0,0,1,0,1,70.7,13.8,0,50,0,0,0,0,0,0,0,0,0,1,0,0,50,8.84624,0,2.492939,1 +19,2,25,0,1,231318,0,8665.641,25.76044,0,12,1,7.660879,2.911134,0,0,0,10.57201,0,0,0,1,0,1,42,10.3,0,62.5,1000,0,0,0,0,0,0,3.258096,8.294049,1,0,0,62.5,9.067237,0,2.35821,1 +13,2,0,0,1,231332,0,6123.754,24.39699,1,13,1,57.98232,0,0,0,0,57.98232,0,0,0,2,0,3,77.7,13.8,0,86.4,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,86.4,8.720094,1.098612,4.060138,1 +13,2,0,0,2,231332,0,6123.754,25.39699,1,13,1,0,0,0,0,0,0,0,0,0,0,0,3,77.7,13.8,0,86.4,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,86.4,8.720094,1.098612,,0 +13,2,0,0,3,231332,0,6123.754,26.39699,1,13,1,39.94732,0,0,0,705.9745,745.9219,2,1,0,4,0,3,77.7,13.8,0,86.4,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,86.4,8.720094,1.098612,6.614621,1 +13,2,0,0,1,231333,0,6123.754,25.35797,0,13,1,0,0,0,0,0,0,0,0,0,0,0,3,88.8,6.9,0,86.4,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,86.4,8.720094,1.098612,,0 +13,2,0,0,2,231333,0,6123.754,26.35797,0,13,1,0,0,0,0,0,0,0,0,0,0,0,3,88.8,6.9,0,86.4,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,86.4,8.720094,1.098612,,0 +13,2,0,0,3,231333,0,6123.754,27.35797,0,13,1,17.55926,0,0,0,0,17.55926,0,0,0,1,0,3,88.8,6.9,0,86.4,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,86.4,8.720094,1.098612,2.865582,1 +13,2,0,0,1,231334,0,6123.754,.6461328,0,13,1,44.9818,0,0,0,0,44.9818,0,0,0,5,0,3,81.35272,11.84267,0,92.6,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,92.6,8.720094,1.098612,3.806258,1 +13,2,0,0,2,231334,0,6123.754,1.646133,0,13,1,0,0,0,0,0,0,0,0,0,0,0,3,81.35272,11.84267,0,92.6,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,92.6,8.720094,1.098612,,0 +13,2,0,0,3,231334,0,6123.754,2.646133,0,13,1,17.55926,0,0,0,0,17.55926,0,0,0,1,0,3,81.35272,11.84267,0,92.6,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,92.6,8.720094,1.098612,2.865582,1 +11,2,0,0,1,231338,0,7339.003,14.423,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,72.3,0,0,69,0,0,1,0,1.386294,0,0,0,0,1,0,0,69,8.901094,1.386294,,0 +11,2,0,0,2,231338,0,7339.003,15.423,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,72.3,0,0,69,0,0,1,0,1.386294,0,0,0,0,1,0,0,69,8.901094,1.386294,,0 +11,2,0,0,1,231340,0,7339.003,16.99384,1,12,1,98.9696,0,0,0,0,98.9696,0,0,0,2,1,4,62.8,27.6,1,48.8,0,0,1,1,1.386294,0,0,0,0,1,0,0,48.8,8.901094,1.386294,4.594813,1 +11,2,0,0,2,231340,0,7339.003,17.99384,1,12,1,33.02557,2.192235,0,0,0,35.2178,0,0,0,0,2,4,62.8,27.6,1,48.8,0,0,1,1,1.386294,0,0,0,0,1,0,0,48.8,8.901094,1.386294,3.561552,1 +11,2,0,0,3,231340,0,7339.003,18.99384,1,12,1,29.47551,0,0,0,0,29.47551,0,0,0,0,0,3,62.8,27.6,1,48.8,0,0,0,0,1.098612,0,0,0,0,1,0,0,48.8,8.901094,1.098612,3.38356,1 +11,2,0,0,1,231342,0,7339.003,39.17865,0,12,1,5.692942,0,0,0,0,5.692942,0,0,0,1,0,4,83,3.4,1,75,0,0,0,0,1.386294,0,0,0,0,0,0,1,75,8.901094,1.386294,1.739227,1 +11,2,0,0,2,231342,0,7339.003,40.17865,0,12,1,24.14773,0,0,0,0,24.14773,0,0,0,0,2,4,83,3.4,1,75,0,0,0,0,1.386294,0,0,0,0,0,0,1,75,8.901094,1.386294,3.18419,1 +11,2,0,0,3,231342,0,7339.003,41.17865,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,83,3.4,1,75,0,0,0,0,1.098612,0,0,0,0,0,0,1,75,8.901094,1.098612,,0 +11,2,0,0,1,231344,0,7339.003,15.78645,0,12,1,15.71355,0,0,0,0,15.71355,0,0,0,1,0,4,80.9,3.4,0,59.1,0,0,1,0,1.386294,0,0,0,0,1,0,0,59.1,8.901094,1.386294,2.754523,1 +11,2,0,0,2,231344,0,7339.003,16.78645,0,12,1,31.69508,.4734848,0,0,0,32.16856,0,0,0,1,0,4,80.9,3.4,0,59.1,0,0,1,0,1.386294,0,0,0,0,1,0,0,59.1,8.901094,1.386294,3.470989,1 +11,2,0,0,3,231344,0,7339.003,17.78645,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,80.9,3.4,0,59.1,0,0,1,0,1.098612,0,0,0,0,1,0,0,59.1,8.901094,1.098612,,0 +16,2,95,1,1,231350,0,9090.322,11.58385,1,16,1,0,0,0,0,0,0,0,0,0,0,0,4,86.7,11.84267,0,70.4,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,0,0,0,70.4,9.115076,1.386294,,0 +16,2,95,1,2,231350,0,9090.322,12.58385,1,16,1,0,0,0,0,0,0,0,0,0,0,0,4,86.7,11.84267,0,70.4,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,0,0,0,70.4,9.115076,1.386294,,0 +16,2,95,1,3,231350,0,9090.322,13.58385,1,16,1,8.900757,6.497552,0,0,0,15.39831,0,0,0,1,0,4,86.7,11.84267,0,70.4,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,0,0,0,70.4,9.115076,1.386294,2.734258,1 +16,2,95,1,1,231351,0,9090.322,9.218344,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,90,11.84267,0,70.4,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,70.4,9.115076,1.386294,,0 +16,2,95,1,2,231351,0,9090.322,10.21834,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,90,11.84267,0,70.4,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,70.4,9.115076,1.386294,,0 +16,2,95,1,3,231351,0,9090.322,11.21834,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,90,11.84267,0,70.4,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,70.4,9.115076,1.386294,,0 +16,2,95,1,1,231352,0,9090.322,37.24846,1,16,1,8.999471,0,3.149815,0,0,12.14929,0,0,0,1,0,4,89.4,3.4,0,89.8,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,89.8,9.115076,1.386294,2.49727,1 +16,2,95,1,2,231352,0,9090.322,38.24846,1,16,1,26.06178,0,0,0,0,26.06178,0,0,0,0,4,4,89.4,3.4,0,89.8,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,89.8,9.115076,1.386294,3.26047,1 +16,2,95,1,3,231352,0,9090.322,39.24846,1,16,1,15.57632,0,0,0,0,15.57632,0,0,0,1,0,4,89.4,3.4,0,89.8,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,89.8,9.115076,1.386294,2.745752,1 +16,2,95,1,1,231353,0,9090.322,35.06366,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,90.4,10.3,0,95.5,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,95.5,9.115076,1.386294,,0 +16,2,95,1,2,231353,0,9090.322,36.06366,0,13,1,21.71815,3.257722,0,0,0,24.97587,0,0,0,2,0,4,90.4,10.3,0,95.5,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,95.5,9.115076,1.386294,3.21791,1 +16,2,95,1,3,231353,0,9090.322,37.06366,0,13,1,6.675568,2.736983,0,0,0,9.41255,0,0,0,1,0,4,90.4,10.3,0,95.5,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,95.5,9.115076,1.386294,2.242044,1 +14,2,95,0,1,231376,0,10604.69,31.09103,1,12,1,41.60167,6.469059,31.90328,0,359.0744,439.0484,1,0,0,3,0,5,89.9,13.8,0,88.6,769.5,769.5,0,0,1.609438,6.645741,0,4.564348,6.697034,0,0,0,88.6,9.269146,1.609438,6.08461,1 +14,2,95,0,2,231376,0,10604.69,32.09103,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,89.9,13.8,0,88.6,769.5,769.5,0,0,1.609438,6.645741,0,4.564348,6.697034,0,0,0,88.6,9.269146,1.609438,,0 +14,2,95,0,3,231376,0,10604.69,33.09103,1,12,1,3.072871,0,0,0,0,3.072871,0,0,0,0,0,5,89.9,13.8,0,88.6,769.5,769.5,0,0,1.609438,6.645741,0,4.564348,6.697034,0,0,0,88.6,9.269146,1.609438,1.122612,1 +14,2,95,0,1,231377,0,10604.69,16.44353,1,12,1,43.16173,1.128445,0,0,0,44.29017,0,0,0,3,0,5,78.2,6.9,0,75,769.5,769.5,1,1,1.609438,6.645741,0,4.564348,6.697034,0,0,0,75,9.269146,1.609438,3.790763,1 +14,2,95,0,2,231377,0,10604.69,17.44353,1,12,1,32.25036,0,0,0,0,32.25036,0,0,0,1,0,5,78.2,6.9,0,75,769.5,769.5,1,1,1.609438,6.645741,0,4.564348,6.697034,0,0,0,75,9.269146,1.609438,3.473529,1 +14,2,95,0,3,231377,0,10604.69,18.44353,1,12,1,3.072871,0,0,0,0,3.072871,0,0,0,0,0,5,78.2,6.9,0,75,769.5,769.5,0,0,1.609438,6.645741,0,4.564348,6.697034,0,0,0,75,9.269146,1.609438,1.122612,1 +14,2,95,0,1,231378,0,10604.69,38.2423,0,12,1,30.16121,2.054082,37.5767,0,0,69.79199,0,0,0,2,0,5,78.7,0,0,76.1,769.5,769.5,0,0,1.609438,6.645741,0,4.564348,6.697034,0,0,0,76.1,9.269146,1.609438,4.245519,1 +14,2,95,0,2,231378,0,10604.69,39.2423,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,78.7,0,0,76.1,769.5,769.5,0,0,1.609438,6.645741,0,4.564348,6.697034,0,0,0,76.1,9.269146,1.609438,,0 +14,2,95,0,3,231378,0,10604.69,40.2423,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,78.7,0,0,76.1,769.5,769.5,0,0,1.609438,6.645741,0,4.564348,6.697034,0,0,0,76.1,9.269146,1.609438,,0 +14,2,95,0,1,231379,0,10604.69,15.41684,1,12,1,40.56162,9.895996,0,0,311.5185,361.9761,1,0,0,3,0,5,69.7,17.2,0,50,769.5,769.5,1,1,1.609438,6.645741,0,4.564348,6.697034,0,0,0,50,9.269146,1.609438,5.891578,1 +14,2,95,0,2,231379,0,10604.69,16.41684,1,12,1,5.972289,0,0,0,0,5.972289,0,0,0,1,0,5,69.7,17.2,0,50,769.5,769.5,1,1,1.609438,6.645741,0,4.564348,6.697034,0,0,0,50,9.269146,1.609438,1.78713,1 +14,2,95,0,3,231379,0,10604.69,17.41684,1,12,1,60.57946,0,0,0,0,60.57946,0,0,0,1,0,5,69.7,17.2,0,50,769.5,769.5,1,1,1.609438,6.645741,0,4.564348,6.697034,0,0,0,50,9.269146,1.609438,4.103956,1 +14,2,95,0,1,231380,0,10604.69,13.52225,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,85,11.84267,0,96.3,769.5,769.5,1,0,1.609438,6.645741,0,4.564348,6.697034,0,0,0,96.3,9.269146,1.609438,,0 +14,2,95,0,2,231380,0,10604.69,14.52225,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,85,11.84267,0,96.3,769.5,769.5,1,0,1.609438,6.645741,0,4.564348,6.697034,0,0,0,96.3,9.269146,1.609438,,0 +14,2,95,0,3,231380,0,10604.69,15.52225,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,85,11.84267,0,96.3,769.5,769.5,1,0,1.609438,6.645741,0,4.564348,6.697034,0,0,0,96.3,9.269146,1.609438,,0 +13,2,0,1,1,231416,0,2594.721,35.70979,0,13,1,0,0,0,0,0,0,0,0,0,0,0,1,79.8,3.4,0,93.2,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,93.2,7.86162,0,,0 +13,2,0,1,2,231416,0,2594.721,36.70979,0,13,1,47.30053,0,0,0,0,47.30053,0,0,0,0,8,1,79.8,3.4,0,93.2,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,93.2,7.86162,0,3.856521,1 +13,2,0,1,3,231416,0,2594.721,37.70979,0,13,1,0,0,0,0,0,0,0,0,0,0,0,1,79.8,3.4,0,93.2,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,93.2,7.86162,0,,0 +16,2,95,0,1,231420,0,11916.72,21.99589,0,15,1,0,0,0,0,0,0,0,0,0,0,0,4,85.1,6.9,0,73.9,1000,0,0,0,1.386294,0,0,4.564348,6.959049,0,0,0,73.9,9.385781,1.386294,,0 +16,2,95,0,1,231421,0,11916.72,20.90075,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,50,17.2,0,72.7,1000,0,0,0,1.386294,0,0,4.564348,6.959049,0,0,0,72.7,9.385781,1.386294,,0 +16,2,95,0,1,231422,0,11916.72,19.70979,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,51.6,17.2,1,52.3,1000,0,0,0,1.386294,0,0,4.564348,6.959049,0,0,0,52.3,9.385781,1.386294,,0 +13,2,0,0,1,231440,0,8665.641,46.30253,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,73.9,10.3,0,73.9,150,258.48,0,0,0,5.554818,1,4.564348,5.061929,0,0,1,73.9,9.067237,0,,0 +13,2,0,0,2,231440,0,8665.641,47.30253,0,12,1,24.37881,1.875293,0,0,0,26.2541,0,0,0,2,0,1,73.9,10.3,0,73.9,150,258.48,0,0,0,5.554818,1,4.564348,5.061929,0,0,1,73.9,9.067237,0,3.267822,1 +13,2,0,0,3,231440,0,8665.641,48.30253,0,12,1,19.34652,9.11436,45.47721,0,986.8444,1060.782,1,0,0,1,1,1,73.9,10.3,0,73.9,150,258.48,0,0,0,5.554818,1,4.564348,5.061929,0,0,1,73.9,9.067237,0,6.966762,1 +14,2,95,0,1,231443,0,8665.641,25.79055,0,16,1,0,0,0,0,0,0,0,0,0,0,0,1,83,3.4,0,79.5,700,0,0,0,0,0,0,4.564348,6.602374,0,0,0,79.5,9.067237,0,,0 +14,2,95,0,2,231443,0,8665.641,26.79055,0,16,1,0,0,0,0,0,0,0,0,0,0,0,1,83,3.4,0,79.5,700,0,0,0,0,0,0,4.564348,6.602374,0,0,0,79.5,9.067237,0,,0 +14,2,95,0,3,231443,0,8665.641,27.79055,0,16,1,0,0,0,0,0,0,0,0,0,0,0,1,83,3.4,0,79.5,700,0,0,0,0,0,0,4.564348,6.602374,0,0,0,79.5,9.067237,0,,0 +11,2,0,0,1,231458,0,2084.458,20.58043,0,13,1,0,0,0,0,0,0,0,0,0,0,0,1,74.29414,11.84267,.1981873,,0,0,0,0,0,0,0,0,0,0,0,0,71.31672,7.642744,0,,0 +11,2,0,0,2,231458,0,2084.458,21.58043,0,13,1,0,0,0,0,0,0,0,0,0,0,0,1,74.29414,11.84267,.1981873,,0,0,0,0,0,0,0,0,0,0,0,0,71.31672,7.642744,0,,0 +11,2,0,0,3,231458,0,2084.458,22.58043,0,13,1,0,0,0,0,0,0,0,0,0,0,0,1,74.29414,11.84267,.1981873,,0,0,0,0,0,0,0,0,0,0,0,0,71.31672,7.642744,0,,0 +11,2,0,0,1,231459,0,3451.32,20.15058,0,13,1,0,0,0,0,0,0,0,0,0,0,0,1,79.8,0,1,72.7,0,0,0,0,0,0,0,0,0,0,1,0,72.7,8.146802,0,,0 +11,2,0,0,2,231459,0,3451.32,21.15058,0,13,1,7.239382,0,0,0,0,7.239382,0,0,0,0,1,1,79.8,0,1,72.7,0,0,0,0,0,0,0,0,0,0,1,0,72.7,8.146802,0,1.979536,1 +11,2,0,0,3,231459,0,3451.32,22.15058,0,13,1,107.3876,0,0,0,0,107.3876,0,0,0,0,9,1,79.8,0,1,72.7,0,0,0,0,0,0,0,0,0,0,1,0,72.7,8.146802,0,4.676445,1 +18,2,25,0,1,231504,0,1,24.46817,0,12,1,14.04056,0,10.66043,0,0,24.70099,0,0,0,0,1,1,37.2,6.9,0,83,450,0,0,0,0,0,0,3.258096,7.495542,1,0,0,83,.6931472,0,3.206843,1 +18,2,25,0,2,231504,0,1,25.46817,0,12,1,227.4247,3.449594,26.99475,0,0,257.8691,0,0,0,7,0,1,37.2,6.9,0,83,450,0,0,0,0,0,0,3.258096,7.495542,1,0,0,83,.6931472,0,5.552452,1 +18,2,25,0,3,231504,0,1,26.46817,0,12,1,32.1993,3.928885,13.93766,0,0,50.06585,0,0,0,2,0,1,37.2,6.9,0,83,450,0,0,0,0,0,0,3.258096,7.495542,1,0,0,83,.6931472,0,3.913339,1 +7,2,25,0,1,231505,0,8148.974,36.98563,0,16,1,127.9251,23.19293,0,0,0,151.118,0,0,0,5,0,1,77.1,24.1,0,75,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,1,0,0,75,9.00577,0,5.018061,1 +7,2,25,0,2,231505,0,8148.974,37.98563,0,16,1,113.2346,21.66746,0,0,0,134.9021,0,0,0,2,0,1,77.1,24.1,0,75,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,1,0,0,75,9.00577,0,4.904549,1 +7,2,25,0,3,231505,0,8148.974,38.98563,0,16,1,47.19052,15.27656,0,0,0,62.46708,0,0,0,1,0,1,77.1,24.1,0,75,1000,1000,0,0,0,6.907755,0,3.258096,8.294049,1,0,0,75,9.00577,0,4.13464,1 +14,2,95,0,1,231507,0,8665.641,19.8193,0,12,1,28.85111,0,35.46626,0,0,64.31736,0,0,0,1,3,1,65.4,6.9,0,55.7,116.25,0,0,0,0,0,0,4.564348,4.807036,1,0,0,55.7,9.067237,0,4.16383,1 +14,2,95,0,2,231507,0,8665.641,20.8193,0,12,1,301.7046,0,7.575758,0,0,309.2803,0,0,0,5,2,1,65.4,6.9,0,55.7,116.25,0,0,0,0,0,0,4.564348,4.807036,1,0,0,55.7,9.067237,0,5.734248,1 +14,2,95,0,3,231507,0,8665.641,21.8193,0,12,1,0,0,13.05158,0,0,13.05158,0,0,0,0,0,1,65.4,6.9,0,55.7,116.25,0,0,0,0,0,0,4.564348,4.807036,1,0,0,55.7,9.067237,0,2.568909,1 +18,2,25,1,1,231523,0,1642.229,34.72416,0,12,1,241.6017,6.682267,29.12116,0,724.4514,1001.856,1,0,0,7,5,1,31.4,6.9,1,56.8,476.3,0,0,0,0,0,0,3.258096,7.552342,1,0,0,56.8,7.404418,0,6.90961,1 +18,2,25,1,2,231523,0,1642.229,35.72416,0,12,1,51.95891,0,25.3225,0,0,77.28142,0,0,0,1,3,1,31.4,6.9,1,56.8,476.3,0,0,0,0,0,0,3.258096,7.552342,1,0,0,56.8,7.404418,0,4.347454,1 +18,2,25,1,3,231523,0,1642.229,36.72416,0,12,1,24.14399,7.199297,29.31519,0,0,60.65847,0,0,0,1,1,1,31.4,6.9,1,56.8,476.3,0,0,0,0,0,0,3.258096,7.552342,1,0,0,56.8,7.404418,0,4.105259,1 +14,2,95,1,1,231526,0,5577.712,18.67762,0,11,1,60.0624,15.70463,36.65627,0,0,112.4233,0,0,0,7,0,2,77.7,24.1,1,61.4,276.75,326.52,0,0,.6931472,5.788491,0,4.564348,5.674408,1,0,0,61.4,8.626714,.6931472,4.722271,1 +14,2,95,1,2,231526,0,5577.712,19.67762,0,11,1,99.97611,0,45.4754,0,0,145.4515,0,0,0,4,0,2,77.7,24.1,1,61.4,276.75,326.52,0,0,.6931472,5.788491,0,4.564348,5.674408,1,0,0,61.4,8.626714,.6931472,4.979843,1 +14,2,95,1,3,231526,0,5577.712,20.67762,0,11,1,184.3723,0,26.82177,0,0,211.194,0,0,0,3,17,2,77.7,24.1,1,61.4,276.75,326.52,0,0,.6931472,5.788491,0,4.564348,5.674408,1,0,0,61.4,8.626714,.6931472,5.352777,1 +14,2,95,1,1,231527,0,5577.712,54.02327,1,12,1,74.62299,0,45.86063,0,0,120.4836,0,0,0,2,0,2,72.7,27.6,1,55.7,276.75,326.52,0,0,.6931472,5.788491,0,4.564348,5.674408,1,0,0,55.7,8.626714,.6931472,4.791514,1 +14,2,95,1,2,231527,0,5577.712,55.02327,1,12,1,132.9431,21.04634,0,0,0,153.9895,0,0,0,6,0,2,72.7,27.6,1,55.7,276.75,326.52,0,0,.6931472,5.788491,0,4.564348,5.674408,1,0,0,55.7,8.626714,.6931472,5.036884,1 +14,2,95,1,3,231527,0,5577.712,56.02327,1,12,1,321.993,19.01229,52.86216,0,0,393.8674,0,0,0,11,16,2,72.7,27.6,1,55.7,276.75,326.52,0,0,.6931472,5.788491,0,4.564348,5.674408,1,0,0,55.7,8.626714,.6931472,5.976015,1 +11,2,0,1,1,231535,0,5601.173,20.68994,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,79.8,3.4,0,77.3,0,0,0,0,0,0,0,0,0,0,0,0,77.3,8.63091,0,,0 +11,2,0,1,2,231535,0,5601.173,21.68994,0,12,1,16.21622,0,0,0,0,16.21622,0,0,0,1,0,1,79.8,3.4,0,77.3,0,0,0,0,0,0,0,0,0,0,0,0,77.3,8.63091,0,2.786012,1 +11,2,0,1,3,231535,0,5601.173,22.68994,0,12,1,2.278943,0,0,0,0,2.278943,0,0,0,0,1,1,79.8,3.4,0,77.3,0,0,0,0,0,0,0,0,0,0,0,0,77.3,8.63091,0,.8237116,1 +13,2,0,1,1,231536,0,8665.641,.3340178,1,12,1,139.7844,10.70081,0,0,0,150.4852,0,0,0,12,0,4,81.35272,11.84267,0,88.9,450,275.27,1,1,1.386294,5.617753,1,4.564348,6.160541,0,0,0,88.9,9.067237,1.386294,5.013865,1 +13,2,0,1,2,231536,0,8665.641,1.334018,1,12,1,105.0369,1.400491,0,0,0,106.4373,0,0,0,8,0,4,81.35272,11.84267,0,88.9,450,275.27,1,1,1.386294,5.617753,1,4.564348,6.160541,0,0,0,88.9,9.067237,1.386294,4.667557,1 +13,2,0,1,3,231536,0,8665.641,2.334018,1,12,1,377.3929,5.788514,0,0,0,383.1814,0,0,0,6,0,5,81.35272,11.84267,0,88.9,450,275.27,1,1,1.609438,5.617753,1,4.564348,6.160541,0,0,0,88.9,9.067237,1.609438,5.948508,1 +13,2,0,1,4,231536,0,8665.641,3.334018,1,12,1,56.99875,0,0,0,0,56.99875,0,0,0,3,0,5,81.35272,11.84267,0,88.9,450,275.27,1,1,1.609438,5.617753,1,4.564348,6.160541,0,0,0,88.9,9.067237,1.609438,4.043029,1 +13,2,0,1,5,231536,0,8665.641,4.334018,1,12,1,34.47112,0,0,0,285.5364,320.0075,1,0,0,3,0,5,81.35272,11.84267,0,88.9,450,275.27,1,1,1.609438,5.617753,1,4.564348,6.160541,0,0,0,88.9,9.067237,1.609438,5.768344,1 +16,2,95,1,1,231537,0,5000,.3477071,0,13,1,0,0,0,0,0,0,0,0,0,0,0,5,81.35272,11.84267,0,40.7,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,40.7,8.517393,1.609438,,0 +16,2,95,1,2,231537,0,5000,1.347707,0,13,1,94.62408,8.216216,0,0,0,102.8403,0,0,0,4,0,5,81.35272,11.84267,0,40.7,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,40.7,8.517393,1.609438,4.633177,1 +16,2,95,1,3,231537,0,5000,2.347707,0,13,1,0,0,0,0,0,0,0,0,0,0,0,5,81.35272,11.84267,0,40.7,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,40.7,8.517393,1.609438,,0 +5,2,25,0,1,231538,0,5115.542,.3696099,1,14,1,63.8814,19.3531,0,0,0,83.2345,0,0,0,5,0,4,81.35272,11.84267,0,92.6,452.9,452.9,1,1,1.386294,6.115671,0,3.258096,7.501966,0,0,0,92.6,8.540235,1.386294,4.421662,1 +5,2,25,0,2,231538,0,5115.542,1.36961,1,14,1,42.99754,1.351351,0,0,423.145,467.4939,1,0,0,3,0,4,81.35272,11.84267,0,92.6,452.9,452.9,1,1,1.386294,6.115671,0,3.258096,7.501966,0,0,0,92.6,8.540235,1.386294,6.147386,1 +5,2,25,0,3,231538,0,5115.542,2.36961,1,14,1,84.77666,0,23.50957,0,659.4348,767.7211,1,0,0,9,0,4,81.35272,11.84267,0,92.6,452.9,452.9,1,1,1.386294,6.115671,0,3.258096,7.501966,0,0,0,92.6,8.540235,1.386294,6.643426,1 +14,2,95,0,1,231552,0,3713.783,23.68789,0,14,1,15.45595,0,28.99021,0,0,44.44616,0,0,0,1,0,1,54.8,10.3,1,78.4,132,132,0,0,0,4.882802,0,4.564348,4.934095,0,0,0,78.4,8.220076,0,3.794279,1 +14,2,95,0,2,231552,0,3713.783,24.68789,0,14,1,0,0,0,0,0,0,0,0,0,0,0,1,54.8,10.3,1,78.4,132,132,0,0,0,4.882802,0,4.564348,4.934095,0,0,0,78.4,8.220076,0,,0 +14,2,95,0,3,231552,0,3713.783,25.68789,0,14,1,43.34634,0,0,0,0,43.34634,0,0,0,0,1,1,54.8,10.3,1,78.4,132,132,0,0,0,4.882802,0,4.564348,4.934095,0,0,0,78.4,8.220076,0,3.769222,1 +16,2,95,1,1,231570,.0220994,8665.641,28.73922,1,12.75671,1,0,0,0,0,0,0,0,0,0,0,0,2,76.1,13.8,0,69,675,0,0,0,.6931472,0,0,4.564348,6.566006,0,0,0,69,9.067237,.6931472,,0 +16,2,95,1,2,231570,.0220994,8665.641,29.73922,1,12.75671,1,0,0,0,0,0,0,0,0,0,0,0,2,76.1,13.8,0,69,675,0,0,0,.6931472,0,0,4.564348,6.566006,0,0,0,69,9.067237,.6931472,,0 +16,2,95,1,3,231570,.0220994,8665.641,30.73922,1,12.75671,1,0,0,0,0,0,0,0,0,0,0,0,2,76.1,13.8,0,69,675,0,0,0,.6931472,0,0,4.564348,6.566006,0,0,0,69,9.067237,.6931472,,0 +11,2,0,0,1,231572,0,3387.097,20.71732,0,12.75671,1,84.84832,5.055881,76.15753,0,364.8483,530.91,1,0,0,4,0,3,74.29414,11.84267,.1981873,,0,0,0,0,1.098612,0,0,0,0,0,0,0,71.31672,8.128023,1.098612,6.274592,1 +11,2,0,0,2,231572,0,3387.097,21.71732,0,12.75671,1,130.1503,0,0,169.6558,1413.694,1543.844,2,0,7,4,0,3,74.29414,11.84267,.1981873,,0,0,0,0,1.098612,0,0,0,0,0,0,0,71.31672,8.128023,1.098612,7.342031,1 +11,2,0,0,3,231572,0,3387.097,22.71732,0,12.75671,1,33.46811,0,0,0,0,33.46811,0,0,0,1,0,3,74.29414,11.84267,.1981873,,0,0,0,0,1.098612,0,0,0,0,0,0,0,71.31672,8.128023,1.098612,3.510593,1 +11,2,0,0,1,231573,0,3651.613,.4982888,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,81.35272,11.84267,.0221239,,0,0,1,1,1.098612,0,0,0,0,0,0,0,76.97035,8.203198,1.098612,,0 +11,2,0,0,2,231573,0,3651.613,1.498289,1,12,1,36.35482,2.66602,0,0,122.8793,161.9001,1,0,0,5,0,4,81.35272,11.84267,.0221239,,0,0,1,1,1.386294,0,0,0,0,0,0,0,76.97035,8.203198,1.386294,5.08698,1 +11,2,0,0,3,231573,0,3651.613,2.498289,1,12,1,72.10242,0,0,0,0,72.10242,0,0,0,4,0,4,81.35272,11.84267,.0221239,,0,0,1,1,1.386294,0,0,0,0,0,0,0,76.97035,8.203198,1.386294,4.278088,1 +13,2,0,0,1,231574,0,2858.064,.4736482,0,12,1,11.70836,4.039382,0,0,0,15.74774,0,0,0,2,0,4,81.35272,11.84267,.0221239,,450,600,1,0,1.386294,6.39693,1,4.564348,6.160541,0,0,0,76.97035,7.95825,1.386294,2.756697,1 +13,2,0,0,2,231574,0,2858.064,1.473648,0,12,1,42.1716,0,0,0,0,42.1716,0,0,0,1,0,4,81.35272,11.84267,.0221239,,450,600,1,0,1.386294,6.39693,1,4.564348,6.160541,0,0,0,76.97035,7.95825,1.386294,3.741747,1 +11,2,0,0,1,231575,0,3643.402,.0301164,1,18,1,63.16917,0,0,0,0,63.16917,0,0,0,6,0,3,81.35272,11.84267,.0221239,,0,864.48,1,1,1.098612,6.762128,0,0,0,0,0,0,76.97035,8.200948,1.098612,4.145816,1 +11,2,0,0,2,231575,0,3643.402,1.030116,1,18,1,65.25134,3.001464,0,0,0,68.25281,0,0,0,5,0,3,81.35272,11.84267,.0221239,,0,864.48,1,1,1.098612,6.762128,0,0,0,0,0,0,76.97035,8.200948,1.098612,4.223218,1 +11,2,0,0,3,231575,0,3643.402,2.030116,1,18,1,63.4598,0,0,0,0,63.4598,0,0,0,4,0,3,81.35272,11.84267,.0221239,,0,864.48,1,1,1.098612,6.762128,0,0,0,0,0,0,76.97035,8.200948,1.098612,4.150407,1 +11,2,0,1,1,231577,0,22434.02,.2874743,1,16,1,42.82655,7.54818,0,0,0,50.37473,0,0,0,4,0,4,81.35272,11.84267,0,96.3,0,0,1,1,1.386294,0,0,0,0,0,0,0,96.3,10.01838,1.386294,3.91949,1 +11,2,0,1,2,231577,0,22434.02,1.287474,1,16,1,14.20205,0,0,0,0,14.20205,0,0,0,1,0,4,81.35272,11.84267,0,96.3,0,0,1,1,1.386294,0,0,0,0,0,0,0,96.3,10.01838,1.386294,2.653386,1 +11,2,0,1,3,231577,0,22434.02,2.287474,1,16,1,0,0,0,0,0,0,0,0,0,0,0,4,81.35272,11.84267,0,96.3,0,0,1,1,1.386294,0,0,0,0,0,0,0,96.3,10.01838,1.386294,,0 +11,2,0,1,1,231578,0,6928.446,32.8898,0,12.75671,1,58.54178,23.35285,40.22884,79.8297,0,122.1235,0,0,5,3,1,4,78.2,6.9,0,85.2,0,573.3,0,0,1.386294,6.351409,0,0,0,0,0,0,85.2,8.843535,1.386294,4.805033,1 +11,2,0,1,2,231578,0,6928.446,33.8898,0,12.75671,1,131.9438,.9452254,57.05284,0,0,189.9418,0,0,0,1,9,4,78.2,6.9,0,85.2,0,573.3,0,0,1.386294,6.351409,0,0,0,0,0,0,85.2,8.843535,1.386294,5.246718,1 +11,2,0,1,3,231578,0,6928.446,34.8898,0,12.75671,1,0,0,0,0,0,0,0,0,0,0,0,4,78.2,6.9,0,85.2,0,573.3,0,0,1.386294,6.351409,0,0,0,0,0,0,85.2,8.843535,1.386294,,0 +11,2,0,1,1,231589,0,15428.15,.5995893,0,16,1,104.8174,20.26469,2.646903,0,217.226,344.955,1,0,0,7,0,3,81.35272,11.84267,0,100,0,354.72,1,0,1.098612,5.871329,0,0,0,0,0,0,100,9.644014,1.098612,5.843414,1 +11,2,0,1,2,231589,0,15428.15,1.599589,0,16,1,32.33591,6.611969,0,0,0,38.94788,0,0,0,2,0,4,81.35272,11.84267,0,100,0,354.72,1,0,1.386294,5.871329,0,0,0,0,0,0,100,9.644014,1.386294,3.662224,1 +11,2,0,1,3,231589,0,15428.15,2.599589,0,16,1,68.75835,21.76235,0,0,0,90.52069,0,0,0,6,0,4,81.35272,11.84267,0,100,0,354.72,1,0,1.386294,5.871329,0,0,0,0,0,0,100,9.644014,1.386294,4.505579,1 +13,2,0,1,1,231590,0,4092.669,.6297057,1,13,1,52.14399,0,0,0,0,52.14399,0,0,0,4,0,3,81.35272,11.84267,0,92.6,450,0,1,1,1.098612,0,1,4.564348,6.160541,0,0,0,92.6,8.317197,1.098612,3.954009,1 +13,2,0,1,2,231590,0,4092.669,1.629706,1,13,1,0,2.26834,0,0,0,2.26834,0,0,0,0,0,4,81.35272,11.84267,0,92.6,450,0,1,1,1.386294,0,1,4.564348,6.160541,0,0,0,92.6,8.317197,1.386294,.8190482,1 +13,2,0,1,3,231590,0,4092.669,2.629706,1,13,1,127.9484,19.28349,0,0,0,147.2319,0,0,0,8,0,4,81.35272,11.84267,0,92.6,450,0,1,1,1.386294,0,1,4.564348,6.160541,0,0,0,92.6,8.317197,1.386294,4.992009,1 +11,2,0,1,1,231591,0,6920.234,.3312799,0,12,1,96.34727,2.202223,0,0,0,98.5495,0,0,0,8,0,3,81.35272,11.84267,0,88.9,0,325.68,1,0,1.098612,5.785915,0,0,0,0,0,0,88.9,8.842349,1.098612,4.590559,1 +11,2,0,1,2,231591,0,6920.234,1.33128,0,12,1,77.94402,0,0,0,0,77.94402,0,0,0,6,0,3,81.35272,11.84267,0,88.9,0,325.68,1,0,1.098612,5.785915,0,0,0,0,0,0,88.9,8.842349,1.098612,4.355991,1 +11,2,0,1,3,231591,0,6920.234,2.33128,0,12,1,16.80018,0,0,0,0,16.80018,0,0,0,1,0,4,81.35272,11.84267,0,88.9,0,325.68,1,0,1.386294,5.785915,0,0,0,0,0,0,88.9,8.842349,1.386294,2.821389,1 +11,2,0,1,4,231591,0,6920.234,3.33128,0,12,1,232.3099,4.46523,0,0,692.0903,928.8654,1,0,0,3,0,4,81.35272,11.84267,0,88.9,0,325.68,1,0,1.386294,5.785915,0,0,0,0,0,0,88.9,8.842349,1.386294,6.833964,1 +11,2,0,1,5,231591,0,6920.234,4.33128,0,12,1,10.6305,5.674487,0,0,0,16.30499,0,0,0,2,0,4,81.35272,11.84267,0,88.9,0,325.68,1,0,1.386294,5.785915,0,0,0,0,0,0,88.9,8.842349,1.386294,2.791471,1 +17,2,25,0,2,231879,0,2067.449,.8795345,1,12,1,27.76413,8.766584,0,0,0,36.53071,0,0,0,3,0,3,81.35272,11.84267,.0221239,,324.3,0,1,1,1.098612,0,0,3.258096,7.167964,0,0,0,76.97035,7.634554,1.098612,3.598153,1 +17,2,25,0,3,231879,0,2067.449,1.879535,1,12,1,21.19417,11.16682,0,0,0,32.36098,0,0,0,2,0,3,81.35272,11.84267,.0221239,,324.3,0,1,1,1.098612,0,0,3.258096,7.167964,0,0,0,76.97035,7.634554,1.098612,3.476954,1 +11,2,0,0,1,231886,0,17144.49,19.9206,0,12.75671,1,0,0,0,0,0,0,0,0,0,0,0,5,74.29414,11.84267,.1981873,,0,0,0,0,1.609438,0,0,0,0,0,0,0,71.31672,9.74949,1.609438,,0 +11,2,0,0,2,231886,0,17144.49,20.9206,0,12.75671,1,24.02691,2.64296,0,0,0,26.66987,0,0,0,3,0,5,74.29414,11.84267,.1981873,,0,0,0,0,1.609438,0,0,0,0,0,0,0,71.31672,9.74949,1.609438,3.283535,1 +11,2,0,0,3,231886,0,17144.49,21.9206,0,12.75671,1,9.251101,0,0,0,0,9.251101,0,0,0,1,0,5,74.29414,11.84267,.1981873,,0,0,0,0,1.609438,0,0,0,0,0,0,0,71.31672,9.74949,1.609438,2.224743,1 +5,2,25,1,1,231888,0,6803.519,.6516085,1,12,1,18.81861,10.115,0,0,0,28.93361,0,0,0,3,0,4,81.35272,11.84267,0,85.2,304,304,1,1,1.386294,5.717028,0,3.258096,7.103322,0,0,0,85.2,8.825342,1.386294,3.365004,1 +5,2,25,1,2,231888,0,6803.519,1.651608,1,12,1,7.92888,4.632388,0,0,0,12.56127,0,0,0,1,0,4,81.35272,11.84267,0,85.2,304,304,1,1,1.386294,5.717028,0,3.258096,7.103322,0,0,0,85.2,8.825342,1.386294,2.530618,1 +5,2,25,1,3,231888,0,6803.519,2.651608,1,12,1,8.149779,3.651982,0,0,0,11.80176,0,0,0,1,0,4,81.35272,11.84267,0,85.2,304,304,1,1,1.386294,5.717028,0,3.258096,7.103322,0,0,0,85.2,8.825342,1.386294,2.468249,1 +5,2,25,1,4,231888,0,6803.519,3.651608,1,12,1,18.34678,0,0,0,0,18.34678,0,0,0,2,0,4,81.35272,11.84267,0,85.2,304,304,1,1,1.386294,5.717028,0,3.258096,7.103322,0,0,0,85.2,8.825342,1.386294,2.909454,1 +5,2,25,1,5,231888,0,6803.519,4.651608,1,12,1,16.39344,0,0,0,0,16.39344,0,0,0,2,0,4,81.35272,11.84267,0,85.2,304,304,1,1,1.386294,5.717028,0,3.258096,7.103322,0,0,0,85.2,8.825342,1.386294,2.796881,1 +11,2,0,1,1,231889,0,6363.636,.3477071,0,12,1,42.81234,12.10141,4.234187,0,260.4548,319.6027,1,0,0,4,0,5,81.35272,11.84267,0,74.1,0,516,1,0,1.609438,6.246107,0,0,0,0,0,0,74.1,8.758512,1.609438,5.767079,1 +11,2,0,1,2,231889,0,6363.636,1.347707,0,12,1,37.98655,6.22297,0,0,0,44.20951,0,0,0,4,0,5,81.35272,11.84267,0,74.1,0,516,1,0,1.609438,6.246107,0,0,0,0,0,0,74.1,8.758512,1.609438,3.78894,1 +11,2,0,1,3,231889,0,6363.636,2.347707,0,12,1,64.51542,3.255507,0,0,0,67.77093,0,0,0,5,0,5,81.35272,11.84267,0,74.1,0,516,1,0,1.609438,6.246107,0,0,0,0,0,0,74.1,8.758512,1.609438,4.216133,1 +14,2,95,0,1,231891,0,8577.126,21.48939,1,12.75671,1,158.1286,31.63095,39.51385,0,2213.356,2442.629,4,0,0,7,1,2,74.29414,11.84267,.1981873,,765,765,0,0,.6931472,6.639876,0,4.564348,6.691169,0,0,0,71.31672,9.056971,.6931472,7.80083,1 +14,2,95,0,2,231891,0,8577.126,22.48939,1,12.75671,1,115.4733,35.85776,0,0,302.4748,453.8059,1,0,0,8,0,2,74.29414,11.84267,.1981873,,765,765,0,0,.6931472,6.639876,0,4.564348,6.691169,0,0,0,71.31672,9.056971,.6931472,6.11767,1 +14,2,95,0,3,231891,0,8577.126,23.48939,1,12.75671,1,316.2996,12.04405,35.24229,0,0,363.5859,0,0,0,7,1,2,74.29414,11.84267,.1981873,,765,765,0,0,.6931472,6.639876,0,4.564348,6.691169,0,0,0,71.31672,9.056971,.6931472,5.896016,1 +14,2,95,0,4,231891,0,8577.126,24.48939,1,12.75671,1,184.375,0,2.822581,0,1226.452,1413.649,1,0,0,7,1,2,74.29414,11.84267,.1981873,,765,765,0,0,.6931472,6.639876,0,4.564348,6.691169,0,0,0,71.31672,9.056971,.6931472,7.25393,1 +14,2,95,0,5,231891,0,8577.126,25.48939,1,12.75671,1,502.2951,29.93443,0,0,0,532.2295,0,0,0,16,2,3,74.29414,11.84267,.1981873,,765,765,0,0,1.098612,6.639876,0,4.564348,6.691169,0,0,0,71.31672,9.056971,1.098612,6.277075,1 +11,2,0,0,1,231896,0,10620.53,14.97057,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,81.4,3.4,0,83.3,0,0,1,0,1.386294,0,0,0,0,0,0,0,83.3,9.270638,1.386294,,0 +11,2,0,0,2,231896,0,10620.53,15.97057,0,12,1,13.93561,3.363767,0,0,0,17.29938,0,0,0,1,0,4,81.4,3.4,0,83.3,0,0,1,0,1.386294,0,0,0,0,0,0,0,83.3,9.270638,1.386294,2.85067,1 +11,2,0,0,3,231896,0,10620.53,16.97057,0,12,1,33.70044,6.361234,0,0,0,40.06167,0,0,0,3,0,4,81.4,3.4,0,83.3,0,0,1,0,1.386294,0,0,0,0,0,0,0,83.3,9.270638,1.386294,3.69042,1 +11,2,0,0,4,231896,0,10620.53,17.97057,0,12,1,88.97177,0,0,0,0,88.97177,0,0,0,5,0,4,81.4,3.4,0,83.3,0,0,1,0,1.386294,0,0,0,0,0,0,0,83.3,9.270638,1.386294,4.488319,1 +11,2,0,0,5,231896,0,10620.53,18.97057,0,12,1,41.16576,0,0,0,0,41.16576,0,0,0,3,0,3,81.4,3.4,0,83.3,0,0,0,0,1.098612,0,0,0,0,0,0,0,83.3,9.270638,1.098612,3.717607,1 +16,2,95,0,1,231897,0,11916.72,51.98083,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,56.9,27.6,1,53.4,1000,0,0,0,1.386294,0,0,4.564348,6.959049,0,0,0,53.4,9.385781,1.386294,,0 +17,2,25,0,1,231908,0,8665.641,3.071869,0,14,1,7.660879,0,0,0,0,7.660879,0,0,0,1,0,3,81.35272,11.84267,0,92.6,189,534.24,1,0,1.098612,6.280845,0,3.258096,6.628041,1,0,0,92.6,9.067237,1.098612,2.036127,1 +17,2,25,0,2,231908,0,8665.641,4.071868,0,14,1,54.85232,0,0,0,0,54.85232,0,0,0,4,0,3,81.35272,11.84267,0,92.6,189,534.24,1,0,1.098612,6.280845,0,3.258096,6.628041,1,0,0,92.6,9.067237,1.098612,4.004644,1 +17,2,25,0,3,231908,0,8665.641,5.071868,0,14,1,32.2442,11.50043,0,42.99226,0,43.74463,0,0,2,5,0,3,81.35272,11.84267,0,92.6,189,534.24,1,0,1.098612,6.280845,0,3.258096,6.628041,1,0,0,92.6,9.067237,1.098612,3.778369,1 +17,2,25,0,1,231909,0,8665.641,23.64408,0,12,1,93.97344,21.96119,0,0,0,115.9346,0,0,0,7,5,3,72.7,3.4,0,53.4,189,534.24,0,0,1.098612,6.280845,0,3.258096,6.628041,1,0,0,53.4,9.067237,1.098612,4.753026,1 +17,2,25,0,2,231909,0,8665.641,24.64408,0,12,1,460.9705,109.2124,0,295.3586,1172.686,1742.869,1,0,11,26,6,3,72.7,3.4,0,53.4,189,534.24,0,0,1.098612,6.280845,0,3.258096,6.628041,1,0,0,53.4,9.067237,1.098612,7.463288,1 +17,2,25,0,3,231909,0,8665.641,25.64408,0,12,1,250.7954,71.08771,0,47.29149,0,321.8831,0,0,2,11,0,3,72.7,3.4,0,53.4,189,534.24,0,0,1.098612,6.280845,0,3.258096,6.628041,1,0,0,53.4,9.067237,1.098612,5.774189,1 +6,2,25,0,1,231912,0,12931.96,7.184121,1,12,1,22.65066,0,0,0,0,22.65066,0,0,0,2,0,4,91.7,11.84267,0,100,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,0,0,0,100,9.467535,1.386294,3.120189,1 +6,2,25,0,2,231912,0,12931.96,8.18412,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,91.7,11.84267,0,100,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,0,0,0,100,9.467535,1.386294,,0 +6,2,25,0,3,231912,0,12931.96,9.18412,1,12,1,8.813414,0,0,0,0,8.813414,0,0,0,1,0,4,91.7,11.84267,0,100,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,0,0,0,100,9.467535,1.386294,2.176275,1 +6,2,25,0,4,231912,0,12931.96,10.18412,1,12,1,26.75456,0,0,0,0,26.75456,0,0,0,2,0,4,91.7,11.84267,0,100,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,0,0,0,100,9.467535,1.386294,3.286705,1 +6,2,25,0,5,231912,0,12931.96,11.18412,1,12,1,53.41472,4.539986,1.273885,0,0,59.22859,0,0,0,2,0,4,91.7,11.84267,0,100,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,0,0,0,100,9.467535,1.386294,4.081404,1 +6,2,25,0,1,231913,0,12931.96,36.53388,0,12,1,40.90909,9.039837,0,0,0,49.94893,0,0,0,2,0,4,94.1,3.4,0,84.1,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,84.1,9.467535,1.386294,3.911001,1 +6,2,25,0,2,231913,0,12931.96,37.53388,0,12,1,88.98265,0,0,0,0,88.98265,0,0,0,5,0,4,94.1,3.4,0,84.1,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,84.1,9.467535,1.386294,4.488441,1 +6,2,25,0,3,231913,0,12931.96,38.53388,0,12,1,16.33706,0,0,0,0,16.33706,0,0,0,1,0,4,94.1,3.4,0,84.1,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,84.1,9.467535,1.386294,2.793436,1 +6,2,25,0,4,231913,0,12931.96,39.53388,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,94.1,3.4,0,84.1,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,84.1,9.467535,1.386294,,0 +6,2,25,0,5,231913,0,12931.96,40.53388,0,12,1,0,.7678698,0,0,0,.7678698,0,0,0,0,0,4,94.1,3.4,0,84.1,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,84.1,9.467535,1.386294,-.2641351,1 +6,2,25,0,1,231914,0,12931.96,32.41889,1,12,1,0,4.075587,0,0,0,4.075587,0,0,0,0,0,4,81.9,6.9,0,79.5,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,79.5,9.467535,1.386294,1.405015,1 +6,2,25,0,2,231914,0,12931.96,33.41889,1,12,1,25.78528,0,0,0,0,25.78528,0,0,0,2,0,4,81.9,6.9,0,79.5,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,79.5,9.467535,1.386294,3.249804,1 +6,2,25,0,3,231914,0,12931.96,34.41889,1,12,1,43.63715,0,0,0,0,43.63715,0,0,0,2,0,4,81.9,6.9,0,79.5,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,79.5,9.467535,1.386294,3.775909,1 +6,2,25,0,4,231914,0,12931.96,35.41889,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,81.9,6.9,0,79.5,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,79.5,9.467535,1.386294,,0 +6,2,25,0,5,231914,0,12931.96,36.41889,1,12,1,0,.7714084,0,0,0,.7714084,0,0,0,0,0,4,81.9,6.9,0,79.5,1000,1000,0,0,1.386294,6.907755,0,3.258096,8.294049,0,0,0,79.5,9.467535,1.386294,-.2595374,1 +6,2,25,0,1,231915,0,12931.96,3.507187,1,12,1,11.51685,0,0,0,0,11.51685,0,0,0,1,0,4,81.35272,11.84267,0,85.2,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,0,0,0,85.2,9.467535,1.386294,2.443812,1 +6,2,25,0,2,231915,0,12931.96,4.507187,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,81.35272,11.84267,0,85.2,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,0,0,0,85.2,9.467535,1.386294,,0 +6,2,25,0,3,231915,0,12931.96,5.507187,1,12,1,13.75752,0,0,0,0,13.75752,0,0,0,1,0,4,81.35272,11.84267,0,85.2,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,0,0,0,85.2,9.467535,1.386294,2.621586,1 +6,2,25,0,4,231915,0,12931.96,6.507187,1,12,1,20.5506,0,0,0,0,20.5506,0,0,0,2,0,4,81.35272,11.84267,0,85.2,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,0,0,0,85.2,9.467535,1.386294,3.02289,1 +6,2,25,0,5,231915,0,12931.96,7.507187,1,12,1,22.82378,.7678698,0,0,0,23.59165,0,0,0,2,0,4,81.35272,11.84267,0,85.2,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,0,0,0,85.2,9.467535,1.386294,3.160893,1 +11,2,0,0,2,231922,0,4458.622,.652293,0,10,1,12.18673,0,0,0,0,12.18673,0,0,0,1,0,6,81.35272,11.84267,.0221239,,0,0,1,0,1.791759,0,0,0,0,0,0,0,76.97035,8.40282,1.791759,2.500348,1 +11,2,0,0,3,231922,0,4458.622,1.652293,0,10,1,21.87785,0,0,0,190.1413,212.0191,1,0,0,2,0,6,81.35272,11.84267,.0221239,,0,0,1,0,1.791759,0,0,0,0,0,0,0,76.97035,8.40282,1.791759,5.356677,1 +11,2,0,0,4,231922,0,4458.622,2.652293,0,10,1,0,0,0,0,0,0,0,0,0,0,0,6,81.35272,11.84267,.0221239,,0,0,1,0,1.791759,0,0,0,0,0,0,0,76.97035,8.40282,1.791759,,0 +11,2,0,0,5,231922,0,4458.622,3.652293,0,10,1,14.62866,0,0,0,0,14.62866,0,0,0,1,0,4,81.35272,11.84267,.0221239,,0,0,1,0,1.386294,0,0,0,0,0,0,0,76.97035,8.40282,1.386294,2.682982,1 +15,2,95,0,1,231925,0,8665.641,2.072553,1,11,1,49.66199,7.462298,0,0,0,57.12429,0,0,0,3,0,3,81.35272,11.84267,0,81.5,1000,1000,1,1,1.098612,6.907755,0,4.564348,6.959049,0,0,0,81.5,9.067237,1.098612,4.045229,1 +15,2,95,0,1,231926,0,8665.641,24.88706,1,11,1,52.00208,42.77171,0,0,741.6277,836.4014,1,0,0,2,0,3,58,20.7,1,68.2,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,68.2,9.067237,1.098612,6.729109,1 +11,2,0,0,1,231927,0,8505.572,24.22998,0,16,1,10.40042,0,0,0,0,10.40042,0,0,0,1,0,2,89.9,3.4,0,88.6,0,211.8,0,0,.6931472,5.355642,0,0,0,0,0,0,88.6,9.048594,.6931472,2.341846,1 +11,2,0,0,2,231927,0,8505.572,25.22998,0,16,1,16.72241,0,0,0,0,16.72241,0,0,0,1,0,2,89.9,3.4,0,88.6,0,211.8,0,0,.6931472,5.355642,0,0,0,0,0,0,88.6,9.048594,.6931472,2.81675,1 +11,2,0,0,3,231927,0,8505.572,26.22998,0,16,1,21.29061,0,0,0,0,21.29061,0,0,0,2,0,3,89.9,3.4,0,88.6,0,211.8,0,0,1.098612,5.355642,0,0,0,0,0,0,88.6,9.048594,1.098612,3.058266,1 +11,2,0,0,4,231927,0,8505.572,27.22998,0,16,1,124.0925,13.97686,14.77862,0,0,152.848,0,0,0,9,1,3,89.9,3.4,0,88.6,0,211.8,0,0,1.098612,5.355642,0,0,0,0,0,0,88.6,9.048594,1.098612,5.029444,1 +11,2,0,0,5,231927,0,8505.572,28.22998,0,16,1,32.63234,.6526468,0,5.438724,0,33.28499,0,0,1,3,0,4,89.9,3.4,0,88.6,0,211.8,0,0,1.386294,5.355642,0,0,0,0,0,0,88.6,9.048594,1.386294,3.505106,1 +11,2,0,0,1,231928,0,7068.035,.5886379,0,14,1,166.8227,13.31773,0,0,0,180.1404,0,0,0,15,0,3,81.35272,11.84267,0,85.2,0,98.2,1,0,1.098612,4.587006,0,0,0,0,0,0,85.2,8.86348,1.098612,5.193737,1 +11,2,0,0,2,231928,0,7068.035,1.588638,0,14,1,35.95318,6.349737,0,0,0,42.30291,0,0,0,4,0,3,81.35272,11.84267,0,85.2,0,98.2,1,0,1.098612,4.587006,0,0,0,0,0,0,85.2,8.86348,1.098612,3.744856,1 +11,2,0,0,3,231928,0,7068.035,2.588638,0,14,1,5.70676,4.192274,0,0,0,9.899035,0,0,0,1,0,3,81.35272,11.84267,0,85.2,0,98.2,1,0,1.098612,4.587006,0,0,0,0,0,0,85.2,8.86348,1.098612,2.292437,1 +13,2,0,0,1,231929,0,6242.815,22.20671,1,14,1,55.1222,0,35.94384,0,635.9334,726.9995,1,0,0,4,0,2,68.1,6.9,0,88.6,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,88.6,8.739347,.6931472,6.588926,1 +13,2,0,0,2,231929,0,6242.815,23.20671,1,14,1,10.03344,3.239369,0,0,0,13.27281,0,0,0,0,1,3,68.1,6.9,0,88.6,300,300,0,0,1.098612,5.703783,1,4.564348,5.755076,0,0,0,88.6,8.739347,1.098612,2.585718,1 +13,2,0,0,3,231929,0,6242.815,24.20671,1,14,1,55.31168,0,0,0,0,55.31168,0,0,0,5,1,3,68.1,6.9,0,88.6,300,300,0,0,1.098612,5.703783,1,4.564348,5.755076,0,0,0,88.6,8.739347,1.098612,4.012984,1 +18,2,25,0,1,231932,0,7165.396,.238193,0,12,1,20.80083,0,0,0,0,20.80083,0,0,0,3,0,2,81.35272,11.84267,.0221239,,744,744,1,0,.6931472,6.612041,0,3.258096,7.998335,0,0,0,76.97035,8.877158,.6931472,3.034993,1 +18,2,25,0,2,231932,0,7165.396,1.238193,0,12,1,36.31152,2.37936,0,0,0,38.69088,0,0,0,5,0,2,81.35272,11.84267,.0221239,,744,744,1,0,.6931472,6.612041,0,3.258096,7.998335,0,0,0,76.97035,8.877158,.6931472,3.655604,1 +18,2,25,0,3,231932,0,7165.396,2.238193,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,81.35272,11.84267,.0221239,,744,744,1,0,.6931472,6.612041,0,3.258096,7.998335,0,0,0,76.97035,8.877158,.6931472,,0 +13,2,0,0,1,231945,0,12936.07,20.67351,1,12,1,58.21741,16.15147,37.91345,0,0,112.2823,0,0,0,4,1,5,73.4,0,0,60.2,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,60.2,9.467853,1.609438,4.721016,1 +13,2,0,0,2,231945,0,12936.07,21.67351,1,12,1,35.03788,13.5464,0,0,0,48.58428,0,0,0,3,0,5,73.4,0,0,60.2,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,60.2,9.467853,1.609438,3.8833,1 +13,2,0,0,3,231945,0,12936.07,22.67351,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,73.4,0,0,60.2,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,60.2,9.467853,1.609438,,0 +13,2,0,0,4,231945,0,12936.07,23.67351,1,12,1,27.37298,0,39.81095,0,684.3836,751.5676,1,0,0,2,0,5,73.4,0,0,60.2,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,60.2,9.467853,1.609438,6.622161,1 +13,2,0,0,5,231945,0,12936.07,24.67351,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,73.4,0,0,60.2,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,60.2,9.467853,1.791759,,0 +11,2,0,0,1,231946,0,2650.44,15.17043,1,12,1,32.97269,0,35.47656,0,0,68.44925,0,0,0,1,1,2,84.6,0,0,85.2,0,0,1,1,.6931472,0,0,0,0,0,0,0,85.2,7.882858,.6931472,4.226093,1 +11,2,0,0,2,231946,0,2650.44,16.17043,1,12,1,97.77462,6.107955,0,0,0,103.8826,0,0,0,3,6,2,84.6,0,0,85.2,0,0,1,1,.6931472,0,0,0,0,0,0,0,85.2,7.882858,.6931472,4.643261,1 +11,2,0,0,3,231946,0,2650.44,17.17043,1,12,1,55.91677,0,0,0,0,55.91677,0,0,0,3,0,2,84.6,0,0,85.2,0,0,1,1,.6931472,0,0,0,0,0,0,0,85.2,7.882858,.6931472,4.023864,1 +13,2,0,0,1,231947,.0220994,703.8123,58.84189,0,12.75671,1,209.0932,5.486863,0,0,0,214.5801,0,0,0,3,0,2,75,10.3,0,62.5,300,0,0,0,.6931472,0,1,4.564348,5.755076,0,0,0,62.5,6.557931,.6931472,5.368683,1 +13,2,0,0,2,231947,.0220994,703.8123,59.84189,0,12.75671,1,158.3807,0,258.5227,0,0,416.9034,0,0,0,4,1,2,75,10.3,0,62.5,300,0,0,0,.6931472,0,1,4.564348,5.755076,0,0,0,62.5,6.557931,.6931472,6.032855,1 +13,2,0,0,3,231947,.0220994,703.8123,60.84189,0,12.75671,1,6.068487,0,0,0,0,6.068487,0,0,0,0,0,2,75,10.3,0,62.5,300,0,0,0,.6931472,0,1,4.564348,5.755076,0,0,0,62.5,6.557931,.6931472,1.803109,1 +13,2,0,0,4,231947,.0220994,703.8123,61.84189,0,12.75671,1,0,0,12.23316,0,0,12.23316,0,0,0,0,0,2,75,10.3,0,62.5,300,0,0,0,.6931472,0,1,4.564348,5.755076,0,0,0,62.5,6.557931,.6931472,2.504151,1 +13,2,0,0,5,231947,.0220994,703.8123,62.84189,0,12.75671,1,0,0,0,0,0,0,0,0,0,0,0,2,75,10.3,0,62.5,300,0,0,0,.6931472,0,1,4.564348,5.755076,0,0,0,62.5,6.557931,.6931472,,0 +13,2,0,0,1,231948,.0220994,703.8123,55.00342,1,12.75671,1,123.6321,12.80268,4.121587,0,0,140.5564,0,0,0,5,0,2,79.3,24.1,1,80.7,300,0,0,0,.6931472,0,1,4.564348,5.755076,0,0,0,80.7,6.557931,.6931472,4.945609,1 +13,2,0,0,2,231948,.0220994,703.8123,56.00342,1,12.75671,1,46.75663,4.019886,38.09659,0,0,88.87311,0,0,0,2,1,2,79.3,24.1,1,80.7,300,0,0,0,.6931472,0,1,4.564348,5.755076,0,0,0,80.7,6.557931,.6931472,4.48721,1 +13,2,0,0,3,231948,.0220994,703.8123,57.00342,1,12.75671,1,120.0694,9.133073,0,0,0,129.2024,0,0,0,4,0,2,79.3,24.1,1,80.7,300,0,0,0,.6931472,0,1,4.564348,5.755076,0,0,0,80.7,6.557931,.6931472,4.861381,1 +13,2,0,0,4,231948,.0220994,703.8123,58.00342,1,12.75671,1,18.11737,1.69358,0,0,0,19.81095,0,0,0,1,0,2,79.3,24.1,1,80.7,300,0,0,0,.6931472,0,1,4.564348,5.755076,0,0,0,80.7,6.557931,.6931472,2.986235,1 +13,2,0,0,5,231948,.0220994,703.8123,59.00342,1,12.75671,1,149.8927,10.58676,36.46511,0,319.2021,516.1467,1,0,0,7,5,2,79.3,24.1,1,80.7,300,0,0,0,.6931472,0,1,4.564348,5.755076,0,0,0,80.7,6.557931,.6931472,6.246391,1 +19,2,25,0,1,231949,0,1759.531,15.1896,1,11,1,14.94075,6.295724,0,0,0,21.23648,0,0,0,3,0,3,93.4,0,0,86.4,1000,1000,1,1,1.098612,6.907755,0,3.258096,8.294049,0,0,0,86.4,7.473371,1.098612,3.05572,1 +19,2,25,0,2,231949,0,1759.531,16.1896,1,11,1,8.049242,0,0,0,0,8.049242,0,0,0,1,0,3,93.4,0,0,86.4,1000,1000,1,1,1.098612,6.907755,0,3.258096,8.294049,0,0,0,86.4,7.473371,1.098612,2.085578,1 +19,2,25,0,3,231949,0,1759.531,17.1896,1,11,1,25.57434,6.246207,0,0,0,31.82055,0,0,0,4,0,3,93.4,0,0,86.4,1000,1000,1,1,1.098612,6.907755,0,3.258096,8.294049,0,0,0,86.4,7.473371,1.098612,3.460112,1 +19,2,25,0,4,231949,0,1759.531,18.1896,1,11,1,0,0,0,0,0,0,0,0,0,0,0,3,93.4,0,0,86.4,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,86.4,7.473371,1.098612,,0 +19,2,25,0,5,231949,0,1759.531,19.1896,1,11,1,0,0,0,0,0,0,0,0,0,0,0,3,93.4,0,0,86.4,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,86.4,7.473371,1.098612,,0 +19,2,25,0,1,231950,0,1759.531,9.09514,0,11,1,22.66873,7.805255,30.65945,0,0,61.13344,0,0,0,2,1,3,98.3,11.84267,0,100,1000,1000,1,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,100,7.473371,1.098612,4.113059,1 +19,2,25,0,2,231950,0,1759.531,10.09514,0,11,1,15.15152,11.33523,0,0,0,26.48674,0,0,0,3,0,3,98.3,11.84267,0,100,1000,1000,1,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,100,7.473371,1.098612,3.276644,1 +19,2,25,0,3,231950,0,1759.531,11.09514,0,11,1,13.0039,0,0,0,0,13.0039,0,0,0,1,0,3,98.3,11.84267,0,100,1000,1000,1,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,100,7.473371,1.098612,2.565249,1 +19,2,25,0,4,231950,0,1759.531,12.09514,0,11,1,0,0,0,0,0,0,0,0,0,0,0,3,98.3,11.84267,0,100,1000,1000,1,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,100,7.473371,1.098612,,0 +19,2,25,0,5,231950,0,1759.531,13.09514,0,11,1,8.944544,0,0,0,0,8.944544,0,0,0,1,0,3,98.3,11.84267,0,100,1000,1000,1,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,100,7.473371,1.098612,2.191044,1 +19,2,25,0,1,231951,0,1759.531,32.43806,1,11,1,180.4482,56.84184,4.889232,0,499.2272,741.4065,1,0,0,20,0,3,95.6,17.2,0,78.6,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,78.6,7.473371,1.098612,6.608549,1 +19,2,25,0,2,231951,0,1759.531,33.43806,1,11,1,67.47159,33.2339,0,0,0,100.7055,0,0,0,10,0,3,95.6,17.2,0,78.6,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,78.6,7.473371,1.098612,4.6122,1 +19,2,25,0,3,231951,0,1759.531,34.43806,1,11,1,211.8336,12.16732,0,0,0,224.0009,0,0,0,23,1,3,95.6,17.2,0,78.6,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,78.6,7.473371,1.098612,5.41165,1 +19,2,25,0,4,231951,0,1759.531,35.43806,1,11,1,393.3635,72.53643,0,0,3730.465,4196.365,2,0,0,12,0,3,95.6,17.2,0,78.6,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,78.6,7.473371,1.098612,8.341974,1 +19,2,25,0,5,231951,0,1759.531,36.43806,1,11,1,102.9517,11.40608,211.8605,87.01252,68.6941,394.9124,0,0,5,9,0,3,95.6,17.2,0,78.6,1000,1000,0,0,1.098612,6.907755,0,3.258096,8.294049,0,0,0,78.6,7.473371,1.098612,5.978664,1 +11,2,0,0,1,231952,0,8312.61,.0136893,0,12,1,53.09973,23.32076,0,0,0,76.42049,0,0,0,7,0,4,81.35272,11.84267,.0221239,,0,0,1,0,1.386294,0,0,0,0,0,0,0,76.97035,9.025649,1.386294,4.336251,1 +11,2,0,0,2,231952,0,8312.61,1.013689,0,12,1,47.42015,8.407863,3.685504,0,0,59.51351,0,0,0,6,0,4,81.35272,11.84267,.0221239,,0,0,1,0,1.386294,0,0,0,0,0,0,0,76.97035,9.025649,1.386294,4.086204,1 +11,2,0,0,3,231952,0,8312.61,2.013689,0,12,1,27.34731,5.802188,0,0,0,33.1495,0,0,0,3,0,4,81.35272,11.84267,.0221239,,0,0,1,0,1.386294,0,0,0,0,0,0,0,76.97035,9.025649,1.386294,3.501028,1 +14,2,95,0,1,231963,0,4582.405,22.05886,0,16,1,88.61082,4.233912,24.53013,0,0,117.3749,0,0,0,4,2,2,86.7,10.3,0,54.5,218,0,0,0,.6931472,0,0,4.564348,5.435788,0,0,0,54.5,8.430198,.6931472,4.765373,1 +14,2,95,0,2,231963,0,4582.405,23.05886,0,16,1,112.2832,4.439756,29.67651,0,0,146.3994,0,0,0,9,0,2,86.7,10.3,0,54.5,218,0,0,0,.6931472,0,0,4.564348,5.435788,0,0,0,54.5,8.430198,.6931472,4.986339,1 +14,2,95,0,3,231963,0,4582.405,24.05886,0,16,1,105.4385,8.22442,30.0086,0,0,143.6715,0,0,0,5,0,2,86.7,10.3,0,54.5,218,0,0,0,.6931472,0,0,4.564348,5.435788,0,0,0,54.5,8.430198,.6931472,4.96753,1 +17,2,25,0,1,231965,0,8665.641,26.36276,1,14,1,213.2789,40.78141,11.23596,0,741.8795,1007.176,1,0,0,10,4,3,71.3,13.8,1,79.5,189,534.24,0,0,1.098612,6.280845,0,3.258096,6.628041,0,0,0,79.5,9.067237,1.098612,6.914906,1 +17,2,25,0,2,231965,0,8665.641,27.36276,1,14,1,158.4623,49.04829,38.24191,0,0,245.7525,0,0,0,8,5,3,71.3,13.8,1,79.5,189,534.24,0,0,1.098612,6.280845,0,3.258096,6.628041,0,0,0,79.5,9.067237,1.098612,5.504325,1 +17,2,25,0,3,231965,0,8665.641,28.36276,1,14,1,83.8994,41.71539,0,21.49613,844.54,970.1548,1,0,1,7,0,3,71.3,13.8,1,79.5,189,534.24,0,0,1.098612,6.280845,0,3.258096,6.628041,0,0,0,79.5,9.067237,1.098612,6.877456,1 +11,2,0,0,1,231967,0,8807.625,15.10746,0,10,1,25.24472,1.488923,30.70067,0,0,57.43431,0,0,0,2,1,4,94.1,3.4,0,93.2,0,58.2,1,0,1.386294,4.063885,0,0,0,0,0,0,93.2,9.083487,1.386294,4.050642,1 +11,2,0,0,2,231967,0,8807.625,16.10746,0,10,1,0,0,0,0,0,0,0,0,0,0,0,4,94.1,3.4,0,93.2,0,58.2,1,0,1.386294,4.063885,0,0,0,0,0,0,93.2,9.083487,1.386294,,0 +11,2,0,0,3,231967,0,8807.625,17.10746,0,10,1,0,0,0,0,0,0,0,0,0,0,0,4,94.1,3.4,0,93.2,0,58.2,1,0,1.386294,4.063885,0,0,0,0,0,0,93.2,9.083487,1.386294,,0 +15,2,95,0,1,231970,1,7283.285,6.327173,0,11,1,19.40756,0,0,0,0,19.40756,0,0,0,1,0,4,46.7,11.84267,0,85.2,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,85.2,8.893475,1.386294,2.965663,1 +19,2,25,0,1,231973,1,11017.6,21.06776,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,81.9,3.4,0,68.2,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,0,68.2,9.30734,.6931472,,0 +19,2,25,0,2,231973,1,11017.6,22.06776,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,81.9,3.4,0,68.2,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,0,68.2,9.30734,.6931472,,0 +19,2,25,0,3,231973,1,11017.6,23.06776,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,81.9,3.4,0,68.2,1000,1000,0,0,.6931472,6.907755,0,3.258096,8.294049,0,0,0,68.2,9.30734,.6931472,,0 +18,2,25,0,1,231974,1,1,25.34976,1,11,1,61.67007,0,0,0,0,61.67007,0,0,0,1,0,2,76.6,6.9,0,81.8,333,0,0,0,.6931472,0,0,3.258096,7.194437,0,0,0,81.8,.6931472,.6931472,4.121799,1 +18,2,25,0,2,231974,1,1,26.34976,1,11,1,0,0,0,0,0,0,1,1,0,0,0,2,76.6,6.9,0,81.8,333,0,0,0,.6931472,0,0,3.258096,7.194437,0,0,0,81.8,.6931472,.6931472,,0 +18,2,25,0,3,231974,1,1,27.34976,1,11,1,0,0,0,0,0,0,0,0,0,0,0,3,76.6,6.9,0,81.8,333,0,0,0,1.098612,0,0,3.258096,7.194437,0,0,0,81.8,.6931472,1.098612,,0 +18,2,25,0,1,231975,1,1,8.85421,1,11,1,0,0,0,0,0,0,0,0,0,0,0,2,85,11.84267,0,90.7,333,0,1,1,.6931472,0,0,3.258096,7.194437,0,0,0,90.7,.6931472,.6931472,,0 +18,2,25,0,2,231975,1,1,9.85421,1,11,1,0,0,0,0,0,0,0,0,0,0,0,2,85,11.84267,0,90.7,333,0,1,1,.6931472,0,0,3.258096,7.194437,0,0,0,90.7,.6931472,.6931472,,0 +18,2,25,0,3,231975,1,1,10.85421,1,11,1,0,0,0,0,0,0,0,0,0,0,0,3,85,11.84267,0,90.7,333,0,1,1,1.098612,0,0,3.258096,7.194437,0,0,0,90.7,.6931472,1.098612,,0 +18,2,25,0,1,231976,1,144.2815,20.42984,1,12,1,0,11.1695,0,0,0,11.1695,0,0,0,0,0,1,66,3.4,0,81.8,240,0,0,0,0,0,0,3.258096,6.866933,0,0,0,81.8,4.978673,0,2.413187,1 +18,2,25,0,2,231976,1,144.2815,21.42984,1,12,1,16.57197,0,0,0,0,16.57197,0,0,0,1,0,1,66,3.4,0,81.8,240,0,0,0,0,0,0,3.258096,6.866933,0,0,0,81.8,4.978673,0,2.807713,1 +18,2,25,0,3,231976,1,144.2815,22.42984,1,12,1,18.20546,0,0,0,0,18.20546,0,0,0,1,0,1,66,3.4,0,81.8,240,0,0,0,0,0,0,3.258096,6.866933,0,0,0,81.8,4.978673,0,2.901722,1 +18,2,25,0,1,231977,1,1,35.61396,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,66.5,13.8,0,72.7,325,325,0,0,0,5.783825,0,3.258096,7.17012,0,0,0,72.7,.6931472,0,,0 +18,2,25,0,2,231977,1,1,36.61396,0,12,1,26.04167,0,0,0,0,26.04167,0,0,0,1,0,1,66.5,13.8,0,72.7,325,325,0,0,0,5.783825,0,3.258096,7.17012,0,0,0,72.7,.6931472,0,3.259698,1 +18,2,25,0,3,231977,1,1,37.61396,0,12,1,19.59254,0,0,0,0,19.59254,0,0,0,1,0,1,66.5,13.8,0,72.7,325,325,0,0,0,5.783825,0,3.258096,7.17012,0,0,0,72.7,.6931472,0,2.975149,1 +11,2,0,0,1,231980,0,7267.449,23.04175,0,12,1,78.82535,39.12931,0,0,0,117.9547,0,0,0,10,0,1,76.1,10.3,0,65.9,0,0,0,0,0,0,0,0,0,0,0,0,65.9,8.891298,0,4.7703,1 +11,2,0,0,2,231980,0,7267.449,24.04175,0,12,1,18.22917,0,0,0,0,18.22917,0,0,0,2,0,1,76.1,10.3,0,65.9,0,0,0,0,0,0,0,0,0,0,0,0,65.9,8.891298,0,2.903023,1 +11,2,0,0,3,231980,0,7267.449,25.04175,0,12,1,30.1257,1.729519,0,0,0,31.85522,0,0,0,4,0,1,76.1,10.3,0,65.9,0,0,0,0,0,0,0,0,0,0,0,0,65.9,8.891298,0,3.461201,1 +11,2,0,0,4,231980,0,7267.449,26.04175,0,12,1,5.907838,0,0,0,0,5.907838,0,0,0,1,0,2,76.1,10.3,0,65.9,0,0,0,0,.6931472,0,0,0,0,0,0,0,65.9,8.891298,.6931472,1.77628,1 +11,2,0,0,5,231980,0,7267.449,27.04175,0,12,1,65.83184,7.084079,0,0,0,72.91592,0,0,0,4,0,2,76.1,10.3,0,65.9,0,0,0,0,.6931472,0,0,0,0,0,0,0,65.9,8.891298,.6931472,4.289307,1 +17,2,25,0,1,231994,0,8221.701,30.10541,0,12.75671,1,60.01022,0,31.45557,68.94791,0,91.46578,0,0,6,1,1,2,76.6,13.8,1,69.3,250,250,0,0,.6931472,5.521461,0,3.258096,6.907755,0,0,0,69.3,9.014654,.6931472,4.515965,1 +17,2,25,0,2,231994,0,8221.701,31.10541,0,12.75671,1,69.47961,5.583685,0,14.0647,0,75.06329,0,0,1,4,0,2,76.6,13.8,1,69.3,250,250,0,0,.6931472,5.521461,0,3.258096,6.907755,0,0,0,69.3,9.014654,.6931472,4.318332,1 +17,2,25,0,3,231994,0,8221.701,32.10541,0,12.75671,1,38.69304,1.397249,37.73861,0,0,77.82889,0,0,0,2,1,2,76.6,13.8,1,69.3,250,250,0,0,.6931472,5.521461,0,3.258096,6.907755,0,0,0,69.3,9.014654,.6931472,4.354513,1 +6,2,25,0,1,232009,0,4692.082,.0136893,1,10,1,79.93648,8.073054,0,0,0,88.00953,0,0,0,11,0,5,81.35272,11.84267,.0221239,,360,360,1,1,1.609438,5.886104,0,3.258096,7.272398,0,0,0,76.97035,8.453845,1.609438,4.477445,1 +6,2,25,0,2,232009,0,4692.082,1.013689,1,10,1,82.64961,5.188224,0,0,253.668,341.5058,1,0,0,10,0,5,81.35272,11.84267,.0221239,,360,360,1,1,1.609438,5.886104,0,3.258096,7.272398,0,0,0,76.97035,8.453845,1.609438,5.833364,1 +6,2,25,0,3,232009,0,4692.082,2.013689,1,10,1,40.05341,7.098353,0,0,0,47.15176,0,0,0,7,0,5,81.35272,11.84267,.0221239,,360,360,1,1,1.609438,5.886104,0,3.258096,7.272398,0,0,0,76.97035,8.453845,1.609438,3.853371,1 +6,2,25,0,4,232009,0,4692.082,3.013689,1,10,1,30.90687,9.44693,0,0,0,40.3538,0,0,0,3,0,5,81.35272,11.84267,.0221239,,360,360,1,1,1.609438,5.886104,0,3.258096,7.272398,0,0,0,76.97035,8.453845,1.609438,3.697686,1 +6,2,25,0,5,232009,0,4692.082,4.013689,1,10,1,0,0,0,0,0,0,0,0,0,0,0,5,81.35272,11.84267,.0221239,,360,360,1,1,1.609438,5.886104,0,3.258096,7.272398,0,0,0,76.97035,8.453845,1.609438,,0 +13,2,0,0,2,232011,0,8926.687,.6632444,0,12,1,22.29762,0,0,0,0,22.29762,0,0,0,2,0,4,81.35272,11.84267,.0221239,,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,76.97035,9.096912,1.386294,3.10448,1 +13,2,0,0,3,232011,0,8926.687,1.663244,0,12,1,7.637017,1.572327,0,0,0,9.209344,0,0,0,1,0,4,81.35272,11.84267,.0221239,,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,76.97035,9.096912,1.386294,2.220219,1 +11,2,0,0,2,232013,0,8665.641,.8384668,0,10,1,61.19792,13.68371,0,0,0,74.88163,0,0,0,8,0,11,81.35272,11.84267,.0221239,,0,0,1,0,2.397895,0,0,0,0,0,0,0,76.97035,9.067237,2.397895,4.315908,1 +11,2,0,0,3,232013,0,8665.641,1.838467,0,10,1,84.3303,14.82445,0,0,388.925,488.0797,1,0,0,5,0,11,81.35272,11.84267,.0221239,,0,0,1,0,2.397895,0,0,0,0,0,0,0,76.97035,9.067237,2.397895,6.190479,1 +13,2,0,0,2,232016,0,6242.815,.8083504,0,14,1,122.7664,3.081701,0,29.86144,0,125.8481,0,0,2,7,0,3,81.35272,11.84267,.0221239,,300,300,1,0,1.098612,5.703783,1,4.564348,5.755076,0,0,0,76.97035,8.739347,1.098612,4.835075,1 +13,2,0,0,3,232016,0,6242.815,1.80835,0,14,1,14.37665,0,0,17.55926,0,14.37665,0,0,1,2,0,3,81.35272,11.84267,.0221239,,300,300,1,0,1.098612,5.703783,1,4.564348,5.755076,0,0,0,76.97035,8.739347,1.098612,2.665605,1 +15,2,95,0,2,232019,0,8665.641,.6002738,0,14,1,80.81992,0,0,0,0,80.81992,0,0,0,3,1,2,81.35272,11.84267,.0221239,,249.5,249.5,1,0,.6931472,5.519459,0,4.564348,5.570752,0,0,0,76.97035,9.067237,.6931472,4.392223,1 +15,2,95,0,3,232019,0,8665.641,1.600274,0,14,1,8.130081,3.206865,0,0,0,11.33695,0,0,0,1,0,2,81.35272,11.84267,.0221239,,249.5,249.5,1,0,.6931472,5.519459,0,4.564348,5.570752,0,0,0,76.97035,9.067237,.6931472,2.428067,1 +7,2,25,0,2,232022,0,6541.349,.3374401,1,12,1,32.18673,1.616708,0,0,0,33.80344,0,0,0,4,0,4,81.35272,11.84267,.0221239,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,0,0,0,76.97035,8.786052,1.386294,3.520563,1 +7,2,25,0,3,232022,0,6541.349,1.33744,1,12,1,104.8314,1.412944,0,0,0,106.2443,0,0,0,5,0,4,81.35272,11.84267,.0221239,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,0,0,0,76.97035,8.786052,1.386294,4.665741,1 +5,2,25,0,2,232028,0,8665.641,.7700205,0,16,1,19.11132,0,0,0,0,19.11132,0,0,0,2,0,4,81.35272,11.84267,.0221239,,548.75,623.75,1,0,1.386294,6.43575,0,3.258096,7.693937,0,0,0,76.97035,9.067237,1.386294,2.950281,1 +5,2,25,0,3,232028,0,8665.641,1.77002,0,16,1,11.41352,0,0,0,0,11.41352,0,0,0,1,0,4,81.35272,11.84267,.0221239,,548.75,623.75,1,0,1.386294,6.43575,0,3.258096,7.693937,0,0,0,76.97035,9.067237,1.386294,2.434799,1 +11,2,0,0,1,232031,0,1697.361,22.38741,0,16,1,93.84576,20.0715,0,0,0,113.9173,0,0,0,7,0,1,77.7,6.9,0,76.1,0,0,0,0,0,0,0,0,0,0,0,0,76.1,7.437419,0,4.735472,1 +11,2,0,0,2,232031,0,1697.361,23.38741,0,16,1,14.0647,0,15.00234,0,0,29.06704,0,0,0,0,1,1,77.7,6.9,0,76.1,0,0,0,0,0,0,0,0,0,0,0,0,76.1,7.437419,0,3.369605,1 +11,2,0,0,3,232031,0,1697.361,24.38741,0,16,1,10.74806,5.137575,15.04729,0,0,30.93293,0,0,0,1,0,1,77.7,6.9,0,76.1,0,0,0,0,0,0,0,0,0,0,0,0,76.1,7.437419,0,3.431821,1 +11,2,0,0,4,232031,0,1697.361,25.38741,0,16,1,11.63242,0,0,0,0,11.63242,0,0,0,1,0,1,77.7,6.9,0,76.1,0,0,0,0,0,0,0,0,0,0,0,0,76.1,7.437419,0,2.453796,1 +11,2,0,0,5,232031,0,1697.361,26.38741,0,16,1,12.73885,0,28.30856,0,0,41.04742,0,0,0,0,1,1,77.7,6.9,0,76.1,0,0,0,0,0,0,0,0,0,0,0,0,76.1,7.437419,0,3.714728,1 +11,2,0,0,2,232032,0,8124.927,.9507187,0,13,1,28.90588,2.603918,0,0,0,31.50979,0,0,0,2,1,3,81.35272,11.84267,.0221239,,0,0,1,0,1.098612,0,0,0,0,0,0,0,76.97035,9.002815,1.098612,3.450298,1 +11,2,0,0,3,232032,0,8124.927,1.950719,0,13,1,271.9666,0,0,0,0,271.9666,0,0,0,5,0,3,81.35272,11.84267,.0221239,,0,0,1,0,1.098612,0,0,0,0,0,0,0,76.97035,9.002815,1.098612,5.60568,1 +11,2,0,0,4,232032,0,8124.927,2.950719,0,13,1,22.5369,7.718389,0,0,0,30.25529,0,0,0,2,0,3,81.35272,11.84267,.0221239,,0,0,1,0,1.098612,0,0,0,0,0,0,0,76.97035,9.002815,1.098612,3.409671,1 +11,2,0,0,5,232032,0,8124.927,3.950719,0,13,1,69.97825,1.247281,0,0,0,71.22552,0,0,0,4,0,4,81.35272,11.84267,.0221239,,0,0,1,0,1.386294,0,0,0,0,0,0,0,76.97035,9.002815,1.386294,4.265851,1 +11,2,0,0,2,232034,0,3651.613,.4223135,1,12,1,32.23461,0,0,0,0,32.23461,0,0,0,3,1,4,81.35272,11.84267,.0221239,,0,0,1,1,1.386294,0,0,0,0,0,0,0,76.97035,8.203198,1.386294,3.473041,1 +11,2,0,0,3,232034,0,3651.613,1.422313,1,12,1,15.72327,0,0,0,0,15.72327,0,0,0,1,0,4,81.35272,11.84267,.0221239,,0,0,1,1,1.386294,0,0,0,0,0,0,0,76.97035,8.203198,1.386294,2.755142,1 +15,2,95,0,2,232035,0,8771.261,.3785079,1,12,1,131.4788,25.94924,0,0,0,157.428,0,0,0,15,0,3,81.35272,11.84267,.0221239,,1000,1000,1,1,1.098612,6.907755,0,4.564348,6.959049,0,0,0,76.97035,9.07935,1.098612,5.058968,1 +15,2,95,0,3,232035,0,8771.261,1.378508,1,12,1,329.5077,13.26107,9.936766,0,0,352.7055,0,0,0,12,0,3,81.35272,11.84267,.0221239,,1000,1000,1,1,1.098612,6.907755,0,4.564348,6.959049,0,0,0,76.97035,9.07935,1.098612,5.865633,1 +15,2,95,0,4,232035,0,8771.261,2.378508,1,12,1,262.0141,7.456576,0,0,0,269.4706,0,0,0,8,0,4,81.35272,11.84267,.0221239,,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,0,0,0,76.97035,9.07935,1.386294,5.596459,1 +15,2,95,0,5,232035,0,8771.261,3.378508,1,12,1,48.24888,8.129657,8.196721,0,0,64.57526,0,0,0,4,0,4,81.35272,11.84267,.0221239,,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,0,0,0,76.97035,9.07935,1.386294,4.167831,1 +11,2,0,0,2,232036,0,15428.15,.5674196,0,16,1,137.3069,23.09363,0,0,258.4652,418.8658,1,0,0,10,0,4,81.35272,11.84267,.0221239,,0,354.72,1,0,1.386294,5.871329,0,0,0,0,0,0,76.97035,9.644014,1.386294,6.037551,1 +11,2,0,0,3,232036,0,15428.15,1.56742,0,16,1,75.2114,10.85892,0,0,0,86.07031,0,0,0,6,0,4,81.35272,11.84267,.0221239,,0,354.72,1,0,1.386294,5.871329,0,0,0,0,0,0,76.97035,9.644014,1.386294,4.455164,1 +11,2,0,0,2,232041,0,10711.44,.1895962,0,16,1,72.23587,6.240786,0,0,0,78.47666,0,0,0,11,0,4,81.35272,11.84267,.0221239,,0,206.64,1,0,1.386294,5.330978,0,0,0,0,0,0,76.97035,9.27916,1.386294,4.362801,1 +11,2,0,0,3,232041,0,10711.44,1.189596,0,16,1,45.12306,26.36736,0,0,0,71.49043,0,0,0,6,0,4,81.35272,11.84267,.0221239,,0,206.64,1,0,1.386294,5.330978,0,0,0,0,0,0,76.97035,9.27916,1.386294,4.269564,1 +11,2,0,0,4,232041,0,10711.44,2.189596,0,16,1,27.71988,7.85744,0,0,0,35.57732,0,0,0,4,0,4,81.35272,11.84267,.0221239,,0,206.64,1,0,1.386294,5.330978,0,0,0,0,0,0,76.97035,9.27916,1.386294,3.571708,1 +11,2,0,0,5,232041,0,10711.44,3.189596,0,16,1,33.57089,2.993248,0,0,0,36.56414,0,0,0,3,0,4,81.35272,11.84267,.0221239,,0,206.64,1,0,1.386294,5.330978,0,0,0,0,0,0,76.97035,9.27916,1.386294,3.599068,1 +6,2,25,0,2,232042,0,6382.991,.4113621,1,13,1,78.4773,4.597364,0,0,0,83.07467,0,0,0,7,0,3,81.35272,11.84267,.0221239,,902.1,902.1,1,1,1.098612,6.804725,0,3.258096,8.19102,0,0,0,76.97035,8.761549,1.098612,4.41974,1 +6,2,25,0,3,232042,0,6382.991,1.411362,1,13,1,50.58717,0,0,0,0,50.58717,0,0,0,4,0,3,81.35272,11.84267,.0221239,,902.1,902.1,1,1,1.098612,6.804725,0,3.258096,8.19102,0,0,0,76.97035,8.761549,1.098612,3.923698,1 +13,2,0,0,1,232045,0,18432.84,45.26489,1,12,1,138.7385,14.09602,34.73953,0,0,187.5741,0,0,0,6,0,3,84.6,3.4,0,73.9,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,73.9,9.821943,1.098612,5.234174,1 +13,2,0,0,2,232045,0,18432.84,46.26489,1,12,1,68.23722,28.48101,0,0,0,96.71824,0,0,0,1,0,3,84.6,3.4,0,73.9,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,73.9,9.821943,1.098612,4.571802,1 +13,2,0,0,3,232045,0,18432.84,47.26489,1,12,1,121.4746,28.46088,.6448839,0,0,150.5804,0,0,0,5,0,3,84.6,3.4,0,73.9,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,73.9,9.821943,1.098612,5.014497,1 +13,2,0,0,4,232045,0,18432.84,48.26489,1,12,1,23.53625,16.45211,0,0,0,39.98837,0,0,0,1,0,3,84.6,3.4,0,73.9,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,73.9,9.821943,1.098612,3.688589,1 +13,2,0,0,5,232045,0,18432.84,49.26489,1,12,1,0,15.74664,0,0,0,15.74664,0,0,0,0,0,2,84.6,3.4,0,73.9,450,450,0,0,.6931472,6.109248,1,4.564348,6.160541,0,0,0,73.9,9.821943,.6931472,2.756627,1 +13,2,0,0,1,232046,0,18432.84,18.10267,0,11,1,27.14505,2.196119,0,0,0,29.34116,0,0,0,1,0,3,83,6.9,0,65.9,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,65.9,9.821943,1.098612,3.378991,1 +13,2,0,0,2,232046,0,18432.84,19.10267,0,11,1,13.59587,0,0,0,0,13.59587,0,0,0,1,0,3,83,6.9,0,65.9,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,65.9,9.821943,1.098612,2.609766,1 +13,2,0,0,3,232046,0,18432.84,20.10267,0,11,1,0,0,0,0,0,0,0,0,0,0,0,3,83,6.9,0,65.9,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,65.9,9.821943,1.098612,,0 +13,2,0,0,4,232046,0,18432.84,21.10267,0,11,1,32.57076,0,0,0,0,32.57076,0,0,0,2,0,3,83,6.9,0,65.9,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,65.9,9.821943,1.098612,3.483415,1 +11,2,0,0,2,232059,0,8665.641,.7043121,0,10,1,27.81723,0,0,0,0,27.81723,0,0,0,2,0,11,81.35272,11.84267,.0221239,,0,0,1,0,2.397895,0,0,0,0,0,0,0,76.97035,9.067237,2.397895,3.325656,1 +11,2,0,0,3,232059,0,8665.641,1.704312,0,10,1,8.669268,0,0,0,0,8.669268,0,0,0,1,0,11,81.35272,11.84267,.0221239,,0,0,1,0,2.397895,0,0,0,0,0,0,0,76.97035,9.067237,2.397895,2.159784,1 +13,2,0,0,2,232060,0,4092.669,.340178,1,13,1,42.95367,0,0,0,0,42.95367,0,0,0,4,0,4,81.35272,11.84267,.0221239,,450,0,1,1,1.386294,0,1,4.564348,6.160541,0,0,0,76.97035,8.317197,1.386294,3.760122,1 +13,2,0,0,3,232060,0,4092.669,1.340178,1,13,1,23.92078,0,0,0,0,23.92078,0,0,0,1,0,4,81.35272,11.84267,.0221239,,450,0,1,1,1.386294,0,1,4.564348,6.160541,0,0,0,76.97035,8.317197,1.386294,3.174748,1 +13,2,0,0,2,232065,0,9795.895,.4004107,0,12,1,48.53436,0,0,0,0,48.53436,0,0,0,3,0,3,81.35272,11.84267,.0221239,,300,312,1,0,1.098612,5.743003,1,4.564348,5.755076,0,0,0,76.97035,9.18982,1.098612,3.882272,1 +13,2,0,0,3,232065,0,9795.895,1.400411,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,81.35272,11.84267,.0221239,,300,312,1,0,1.098612,5.743003,1,4.564348,5.755076,0,0,0,76.97035,9.18982,1.098612,,0 +16,2,95,0,2,232075,0,5025.807,.8767967,1,13,1,44.03409,0,0,0,0,44.03409,0,0,0,4,0,2,81.35272,11.84267,.0221239,,1000,1000,1,1,.6931472,6.907755,0,4.564348,6.959049,0,0,0,76.97035,8.52254,.6931472,3.784964,1 +16,2,95,0,3,232075,0,5025.807,1.876797,1,13,1,51.36541,6.129172,0,0,0,57.49458,0,0,0,4,0,2,81.35272,11.84267,.0221239,,1000,1000,1,1,.6931472,6.907755,0,4.564348,6.959049,0,0,0,76.97035,8.52254,.6931472,4.051691,1 +14,2,95,0,2,232076,0,12958.94,.1594798,1,17,1,90.61294,14.34363,0,0,0,104.9566,0,0,0,9,0,4,81.35272,11.84267,.0221239,,815,815,1,1,1.386294,6.703188,0,4.564348,6.754481,0,0,0,76.97035,9.469619,1.386294,4.653547,1 +14,2,95,0,3,232076,0,12958.94,1.15948,1,17,1,303.2933,14.12995,0,0,0,317.4232,0,0,0,8,0,4,81.35272,11.84267,.0221239,,815,815,1,1,1.386294,6.703188,0,4.564348,6.754481,0,0,0,76.97035,9.469619,1.386294,5.760236,1 +11,2,0,0,2,232077,0,15661.58,.0253251,0,14,1,104.3626,17.13039,0,0,0,121.493,0,0,0,12,0,3,81.35272,11.84267,.0221239,,0,243.84,1,0,1.098612,5.496512,0,0,0,0,0,0,76.97035,9.65903,1.098612,4.799857,1 +11,2,0,0,3,232077,0,15661.58,1.025325,0,14,1,87.59659,14.19137,0,0,0,101.788,0,0,0,8,0,3,81.35272,11.84267,.0221239,,0,243.84,1,0,1.098612,5.496512,0,0,0,0,0,0,76.97035,9.65903,1.098612,4.622892,1 +7,2,25,0,2,232078,0,9759.531,.4852841,1,16,1,21.44935,0,0,0,0,21.44935,0,0,0,2,0,4,81.35272,11.84267,.0221239,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,0,0,0,76.97035,9.186102,1.386294,3.065694,1 +7,2,25,0,3,232078,0,9759.531,1.485284,1,16,1,13.81402,0,0,0,0,13.81402,0,0,0,1,0,4,81.35272,11.84267,.0221239,,1000,1000,1,1,1.386294,6.907755,0,3.258096,8.294049,0,0,0,76.97035,9.186102,1.386294,2.625684,1 +5,2,25,0,3,232087,1,10402.35,.9240246,0,12,1,32.81677,0,0,0,0,32.81677,0,0,0,5,0,5,81.35272,11.84267,.0221239,,966.45,966.45,1,0,1.609438,6.87363,0,3.258096,8.259924,0,0,0,76.97035,9.249883,1.609438,3.49094,1 +5,2,25,0,4,232087,1,10402.35,1.924025,0,12,1,42.7053,0,0,0,504.9395,547.6448,1,0,0,2,0,5,81.35272,11.84267,.0221239,,966.45,966.45,1,0,1.609438,6.87363,0,3.258096,8.259924,0,0,0,76.97035,9.249883,1.609438,6.305627,1 +5,2,25,0,5,232087,1,10402.35,2.924025,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,81.35272,11.84267,.0221239,,966.45,966.45,1,0,1.609438,6.87363,0,3.258096,8.259924,0,0,0,76.97035,9.249883,1.609438,,0 +11,2,0,0,2,232100,0,1,.0253251,1,13,1,263.4998,28.4731,0,0,0,291.9729,0,0,0,14,1,5,81.35272,11.84267,.0221239,,0,0,1,1,1.609438,0,0,0,0,0,0,0,76.97035,.6931472,1.609438,5.676661,1 +11,2,0,0,3,232100,0,1,1.025325,1,13,1,414.9596,44.43845,0,0,0,459.398,0,0,0,12,1,5,81.35272,11.84267,.0221239,,0,0,1,1,1.609438,0,0,0,0,0,0,0,76.97035,.6931472,1.609438,6.129917,1 +15,2,95,0,3,232107,0,10362.61,.9075975,0,12,1,58.15266,4.539295,0,0,0,62.69196,0,0,0,5,0,3,81.35272,11.84267,.0221239,,984.8,697.48,1,0,1.098612,6.547474,0,4.564348,6.943732,0,0,0,76.97035,9.246056,1.098612,4.138233,1 +15,2,95,0,4,232107,0,10362.61,1.907598,0,12,1,59.57403,0,0,0,0,59.57403,0,0,0,6,0,4,81.35272,11.84267,.0221239,,984.8,697.48,1,0,1.386294,6.547474,0,4.564348,6.943732,0,0,0,76.97035,9.246056,1.386294,4.08722,1 +15,2,95,0,5,232107,0,10362.61,2.907598,0,12,1,49.08718,0,0,0,0,49.08718,0,0,0,2,0,4,81.35272,11.84267,.0221239,,984.8,697.48,1,0,1.386294,6.547474,0,4.564348,6.943732,0,0,0,76.97035,9.246056,1.386294,3.893598,1 +11,2,0,0,2,232110,0,11768.33,.559206,0,17,1,37.14764,0,0,0,0,37.14764,0,0,0,4,0,4,81.35272,11.84267,.0221239,,0,388.64,1,0,1.386294,5.962654,0,0,0,0,0,0,76.97035,9.373252,1.386294,3.6149,1 +11,2,0,0,3,232110,0,11768.33,1.559206,0,17,1,22.38806,15.29851,0,0,0,37.68657,0,0,0,3,0,4,81.35272,11.84267,.0221239,,0,388.64,1,0,1.386294,5.962654,0,0,0,0,0,0,76.97035,9.373252,1.386294,3.629304,1 +13,2,0,0,3,232113,0,4309.091,.6529774,1,12,1,36.0257,4.575493,0,0,0,40.60119,0,0,0,3,0,2,81.35272,11.84267,.0221239,,150,0,1,1,.6931472,0,1,4.564348,5.061929,0,0,0,76.97035,8.368714,.6931472,3.703797,1 +13,2,0,0,4,232113,0,4309.091,1.652977,1,12,1,26.12537,0,0,0,0,26.12537,0,0,0,2,0,2,81.35272,11.84267,.0221239,,150,0,1,1,.6931472,0,1,4.564348,5.061929,0,0,0,76.97035,8.368714,.6931472,3.262907,1 +13,2,0,0,5,232113,0,4309.091,2.652977,1,12,1,29.46732,3.014734,0,0,0,32.48206,0,0,0,3,0,2,81.35272,11.84267,.0221239,,150,0,1,1,.6931472,0,1,4.564348,5.061929,0,0,0,76.97035,8.368714,.6931472,3.480688,1 +13,2,0,0,2,232116,0,5781.231,.4332649,0,13,1,20.7529,14.10714,0,0,0,34.86004,0,0,0,3,0,3,81.35272,11.84267,.0221239,,300,76.85,1,0,1.098612,4.341856,1,4.564348,5.755076,0,0,0,76.97035,8.662545,1.098612,3.551341,1 +13,2,0,0,3,232116,0,5781.231,1.433265,0,13,1,42.27859,18.51802,22.85714,0,0,83.65376,0,0,0,5,0,3,81.35272,11.84267,.0221239,,300,76.85,1,0,1.098612,4.341856,1,4.564348,5.755076,0,0,0,76.97035,8.662545,1.098612,4.426686,1 +16,2,95,0,2,232142,0,4181.818,.4031485,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,81.35272,11.84267,.0221239,,848.4,848.4,1,1,.6931472,6.743352,0,4.564348,6.794645,0,0,0,76.97035,8.33874,.6931472,,0 +16,2,95,0,3,232142,0,4181.818,1.403149,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,81.35272,11.84267,.0221239,,848.4,848.4,1,1,.6931472,6.743352,0,4.564348,6.794645,0,0,0,76.97035,8.33874,.6931472,,0 +16,2,95,0,4,232142,0,4181.818,2.403148,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,81.35272,11.84267,.0221239,,848.4,848.4,1,1,.6931472,6.743352,0,4.564348,6.794645,0,0,0,76.97035,8.33874,.6931472,,0 +16,2,95,0,5,232142,0,4181.818,3.403148,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,81.35272,11.84267,.0221239,,848.4,848.4,1,1,.6931472,6.743352,0,4.564348,6.794645,0,0,0,76.97035,8.33874,.6931472,,0 +13,2,0,0,3,232147,0,8664.517,.6748802,1,12,1,18.97019,14.08762,0,0,0,33.05782,0,0,0,3,0,4,81.35272,11.84267,.0221239,,450,300,1,1,1.386294,5.703783,1,4.564348,6.160541,0,0,0,76.97035,9.067107,1.386294,3.498258,1 +13,2,0,0,3,232159,0,8665.641,.5982204,0,12,1,13.5825,0,0,0,0,13.5825,0,0,0,2,0,5,81.35272,11.84267,.0221239,,450,275.27,1,0,1.609438,5.617753,1,4.564348,6.160541,0,0,0,76.97035,9.067237,1.609438,2.608782,1 +13,2,0,0,4,232159,0,8665.641,1.59822,0,12,1,16.67361,0,0,0,0,16.67361,0,0,0,2,0,5,81.35272,11.84267,.0221239,,450,275.27,1,0,1.609438,5.617753,1,4.564348,6.160541,0,0,0,76.97035,9.067237,1.609438,2.813828,1 +13,2,0,0,5,232159,0,8665.641,2.59822,0,12,1,24.66242,4.51988,0,0,0,29.18229,0,0,0,2,0,5,81.35272,11.84267,.0221239,,450,275.27,1,0,1.609438,5.617753,1,4.564348,6.160541,0,0,0,76.97035,9.067237,1.609438,3.373562,1 +11,2,0,0,3,232184,0,9883.284,.2806297,1,12,1,105.6677,10.70216,15.14456,0,0,131.5145,0,0,0,10,0,3,81.35272,11.84267,.0221239,,0,0,1,1,1.098612,0,0,0,0,0,0,0,76.97035,9.198701,1.098612,4.879117,1 +11,2,0,0,3,232187,0,5309.091,.6310746,0,16,1,28.92746,2.202937,0,0,0,31.1304,0,0,0,2,0,5,81.35272,11.84267,.0221239,,0,0,1,0,1.609438,0,0,0,0,0,0,0,76.97035,8.577364,1.609438,3.438185,1 +13,2,0,0,2,232188,0,8560.704,.1211499,1,11,1,43.95604,0,0,0,0,43.95604,0,0,0,7,0,3,81.35272,11.84267,.0221239,,300,300,1,1,1.098612,5.703783,1,4.564348,5.755076,0,0,0,76.97035,9.055055,1.098612,3.78319,1 +13,2,0,0,3,232188,0,8560.704,1.12115,1,11,1,7.901668,0,0,0,0,7.901668,0,0,0,1,0,4,81.35272,11.84267,.0221239,,300,300,1,1,1.386294,5.703783,1,4.564348,5.755076,0,0,0,76.97035,9.055055,1.386294,2.067074,1 +17,2,25,0,3,232195,0,7324.927,.6557153,1,12,1,116.3301,15.41264,0,0,0,131.7428,0,0,0,12,0,3,81.35272,11.84267,.0221239,,568.05,568.05,1,1,1.098612,6.342209,0,3.258096,7.728504,0,0,0,76.97035,8.899175,1.098612,4.880851,1 +13,2,0,0,3,232204,0,3079.179,.4887064,0,16,1,57.18736,0,0,0,0,57.18736,0,0,0,1,0,5,81.35272,11.84267,.0221239,,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,76.97035,8.032743,1.609438,4.046333,1 +6,2,25,0,3,232209,0,12080.35,.6721424,0,14,1,47.13656,0,0,0,0,47.13656,0,0,0,5,0,2,81.35272,11.84267,.0221239,,1000,1000,1,0,.6931472,6.907755,0,3.258096,8.294049,0,0,0,76.97035,9.399418,.6931472,3.853049,1 +16,2,95,0,3,232211,0,17438.12,.4339494,1,17,1,100.5786,1.958166,0,0,0,102.5367,0,0,0,12,1,2,81.35272,11.84267,.0221239,,1000,1000,1,1,.6931472,6.907755,0,4.564348,6.959049,0,0,0,76.97035,9.766472,.6931472,4.630221,1 +6,2,25,0,3,232230,0,1847.507,.6173853,1,12,1,64.08545,31.94927,0,0,0,96.03471,0,0,0,6,0,2,81.35272,11.84267,.0221239,,40,0,1,1,.6931472,0,0,3.258096,5.075174,0,0,0,76.97035,7.522134,.6931472,4.56471,1 +11,2,0,0,3,232232,0,2519.648,.3381246,0,11,1,35.60647,1.581312,0,0,3282.367,3319.555,1,0,0,0,0,6,81.35272,11.84267,.0221239,,0,0,1,0,1.791759,0,0,0,0,0,0,0,76.97035,7.832272,1.791759,8.107586,1 +13,2,0,0,3,232239,1,8665.641,.1136208,0,12,1,25.20966,0,0,0,0,25.20966,0,0,0,3,0,5,81.35272,11.84267,.0221239,,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,76.97035,9.067237,1.609438,3.227227,1 +18,2,25,0,3,232249,1,1,.5982204,1,11,1,0,0,0,0,0,0,0,0,0,0,0,3,81.35272,11.84267,.0221239,,333,0,1,1,1.098612,0,0,3.258096,7.194437,0,0,0,76.97035,.6931472,1.098612,,0 +16,2,95,0,3,232253,0,7921.408,.4531143,1,12,1,39.50834,4.367867,0,0,0,43.87621,0,0,0,6,0,6,81.35272,11.84267,.0221239,,1000,1000,1,1,1.791759,6.907755,0,4.564348,6.959049,0,0,0,76.97035,8.97745,1.791759,3.781372,1 +16,2,95,0,4,232253,0,7921.408,1.453114,1,12,1,8.775429,0,0,0,0,8.775429,0,0,0,1,0,6,81.35272,11.84267,.0221239,,1000,1000,1,1,1.791759,6.907755,0,4.564348,6.959049,0,0,0,76.97035,8.97745,1.791759,2.171956,1 +16,2,95,0,5,232253,0,7921.408,2.453114,1,12,1,21.02973,0,1.087745,0,0,22.11748,0,0,0,1,0,6,81.35272,11.84267,.0221239,,1000,1000,1,1,1.791759,6.907755,0,4.564348,6.959049,0,0,0,76.97035,8.97745,1.791759,3.096368,1 +11,2,0,0,3,232257,0,8224.634,.2587269,1,12,1,46.94519,10.26954,0,0,0,57.21473,0,0,0,4,0,4,81.35272,11.84267,.0221239,,0,0,1,1,1.386294,0,0,0,0,0,0,0,76.97035,9.015011,1.386294,4.046812,1 +11,2,0,0,3,232261,0,6920.234,.2258727,1,12,1,75.92345,7.948376,0,0,0,83.87183,0,0,0,7,1,4,81.35272,11.84267,.0221239,,0,325.68,1,1,1.386294,5.785915,0,0,0,0,0,0,76.97035,8.842349,1.386294,4.42929,1 +11,2,0,0,4,232261,0,6920.234,1.225873,1,12,1,132.6149,10.98821,17.98292,0,0,161.586,0,0,0,10,0,4,81.35272,11.84267,.0221239,,0,325.68,1,1,1.386294,5.785915,0,0,0,0,0,0,76.97035,8.842349,1.386294,5.085038,1 +11,2,0,0,5,232261,0,6920.234,2.225873,1,12,1,112.5916,8.955278,0,0,0,121.5469,0,0,0,6,0,4,81.35272,11.84267,.0221239,,0,325.68,1,1,1.386294,5.785915,0,0,0,0,0,0,76.97035,8.842349,1.386294,4.800301,1 +13,2,0,0,3,232279,0,8560.704,.3819302,1,11,1,0,0,0,0,0,0,0,0,0,0,0,4,81.35272,11.84267,.0221239,,300,300,1,1,1.386294,5.703783,1,4.564348,5.755076,0,0,0,76.97035,9.055055,1.386294,,0 +13,2,0,0,3,232290,0,1759.531,.0780287,1,10,1,62.3053,5.460614,0,0,0,67.76591,0,0,0,6,0,4,81.35272,11.84267,.0221239,,300,300,1,1,1.386294,5.703783,1,4.564348,5.755076,0,0,0,76.97035,7.473371,1.386294,4.216059,1 +13,2,0,0,3,232291,0,1759.531,.0780287,0,10,1,101.1348,17.74811,0,0,0,118.883,0,0,0,9,0,4,81.35272,11.84267,.0221239,,300,300,1,0,1.386294,5.703783,1,4.564348,5.755076,0,0,0,76.97035,7.473371,1.386294,4.77814,1 +11,2,0,0,3,232292,0,8505.572,.2067077,1,13,1,24.14399,0,0,0,0,24.14399,0,0,0,3,0,3,81.35272,11.84267,.0221239,,0,211.8,1,1,1.098612,5.355642,0,0,0,0,0,0,76.97035,9.048594,1.098612,3.184035,1 +11,2,0,0,4,232292,0,8505.572,1.206708,1,13,1,49.86039,0,0,0,0,49.86039,0,0,0,6,0,3,81.35272,11.84267,.0221239,,0,211.8,1,1,1.098612,5.355642,0,0,0,0,0,0,76.97035,9.048594,1.098612,3.909227,1 +11,2,0,0,5,232292,0,8505.572,2.206708,1,13,1,28.28136,4.002901,0,0,0,32.28426,0,0,0,3,0,4,81.35272,11.84267,.0221239,,0,211.8,1,1,1.386294,5.355642,0,0,0,0,0,0,76.97035,9.048594,1.386294,3.47458,1 +11,2,0,0,3,232325,0,8665.641,.1848049,0,10,1,5.20156,6.09016,0,0,0,11.29172,0,0,0,1,0,11,81.35272,11.84267,.0221239,,0,0,1,0,2.397895,0,0,0,0,0,0,0,76.97035,9.067237,2.397895,2.42407,1 +11,2,0,0,4,232339,0,11449.27,.7686516,0,15,1,126.1592,30.46779,0,0,0,156.627,0,0,0,7,15,3,81.35272,11.84267,.0221239,,0,0,1,0,1.098612,0,0,0,0,0,0,0,76.97035,9.345768,1.098612,5.053867,1 +11,2,0,0,5,232339,0,11449.27,1.768652,0,15,1,20.69475,7.22099,0,0,0,27.91574,0,0,0,2,1,3,81.35272,11.84267,.0221239,,0,0,1,0,1.098612,0,0,0,0,0,0,0,76.97035,9.345768,1.098612,3.329191,1 +15,2,95,0,4,232376,0,10362.61,.5304586,0,12,1,64.28867,0,0,0,0,64.28867,0,0,0,6,0,4,81.35272,11.84267,.0221239,,984.8,697.48,1,0,1.386294,6.547474,0,4.564348,6.943732,0,0,0,76.97035,9.246056,1.386294,4.163383,1 +15,2,95,0,5,232376,0,10362.61,1.530459,0,12,1,23.24888,0,0,0,0,23.24888,0,0,0,2,0,4,81.35272,11.84267,.0221239,,984.8,697.48,1,0,1.386294,6.547474,0,4.564348,6.943732,0,0,0,76.97035,9.246056,1.386294,3.146257,1 +14,2,95,0,4,232409,0,10179.47,.2758385,0,12,1,71.2797,15.3564,0,0,0,86.6361,0,0,0,8,0,6,81.35272,11.84267,.0221239,,835.7,835.7,1,0,1.791759,6.72827,0,4.564348,6.779563,0,0,0,76.97035,9.228227,1.791759,4.461717,1 +14,2,95,0,5,232409,0,10179.47,1.275838,0,12,1,101.0503,4.928732,0,0,0,105.979,0,0,0,6,0,6,81.35272,11.84267,.0221239,,835.7,835.7,1,0,1.791759,6.72827,0,4.564348,6.779563,0,0,0,76.97035,9.228227,1.791759,4.663241,1 +11,2,0,0,4,232412,0,7267.449,.7412731,1,12,1,80.74045,9.314691,0,0,0,90.05514,0,0,0,11,0,2,81.35272,11.84267,.0221239,,0,0,1,1,.6931472,0,0,0,0,0,0,0,76.97035,8.891298,.6931472,4.500422,1 +11,2,0,0,5,232412,0,7267.449,1.741273,1,12,1,13.59571,4.722719,0,0,0,18.31843,0,0,0,2,0,2,81.35272,11.84267,.0221239,,0,0,1,1,.6931472,0,0,0,0,0,0,0,76.97035,8.891298,.6931472,2.907907,1 +15,2,95,0,4,232421,0,8771.261,.2539357,0,12,1,21.71216,1.645988,0,0,0,23.35815,0,0,0,2,0,4,81.35272,11.84267,.0221239,,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,76.97035,9.07935,1.386294,3.150946,1 +15,2,95,0,5,232421,0,8771.261,1.253936,0,12,1,22.54098,2.600596,0,0,0,25.14158,0,0,0,2,0,4,81.35272,11.84267,.0221239,,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,76.97035,9.07935,1.386294,3.224523,1 +13,2,0,0,4,232451,0,9796.48,.2128679,0,15,1,111.3257,2.806019,0,0,0,114.1318,0,0,0,12,0,3,81.35272,11.84267,.0221239,,300,300,1,0,1.098612,5.703783,1,4.564348,5.755076,0,0,0,76.97035,9.18988,1.098612,4.737354,1 +13,2,0,0,5,232451,0,9796.48,1.212868,0,15,1,301.5579,0,0,0,0,301.5579,0,0,0,8,0,3,81.35272,11.84267,.0221239,,300,300,1,0,1.098612,5.703783,1,4.564348,5.755076,0,0,0,76.97035,9.18988,1.098612,5.708962,1 +13,2,0,0,5,232487,0,12936.07,.9993156,0,12,1,22.18247,6.862254,0,0,0,29.04472,0,0,0,3,0,6,81.35272,11.84267,.0221239,,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,76.97035,9.467853,1.791759,3.368837,1 +14,2,95,0,5,232489,0,8577.126,.8350445,1,12.75671,1,103.3515,3.041894,0,0,0,106.3934,0,0,0,8,0,3,81.35272,11.84267,.0221239,,765,765,1,1,1.098612,6.639876,0,4.564348,6.691169,0,0,0,76.97035,9.056971,1.098612,4.667144,1 +11,2,0,0,5,232504,0,8124.927,.9336071,0,13,1,59.46338,10.09065,0,0,561.3452,630.8992,1,0,0,7,0,4,81.35272,11.84267,.0221239,,0,0,1,0,1.386294,0,0,0,0,0,0,0,76.97035,9.002815,1.386294,6.447146,1 +11,2,0,0,5,232596,0,8505.572,.0958248,0,13,1,48.94851,9.60116,0,0,153.2995,211.8492,1,0,0,7,0,4,81.35272,11.84267,.0221239,,0,211.8,1,0,1.386294,5.355642,0,0,0,0,0,0,76.97035,9.048594,1.386294,5.355875,1 +6,3,25,1,1,325007,0,10339.59,39.75907,0,8,1,70.58218,15.22411,127.254,0,0,213.0603,0,0,0,6,1,5,77.1,6.9,0,59.1,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,59.1,9.243833,1.609438,5.361575,1 +6,3,25,1,2,325007,0,10339.59,40.75907,0,8,1,14.20455,2.793561,10.41667,0,0,27.41477,0,0,0,1,0,5,77.1,6.9,0,59.1,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,59.1,9.243833,1.609438,3.311082,1 +6,3,25,1,3,325007,0,10339.59,41.75907,0,8,1,34.24361,7.98873,0,0,0,42.23234,0,0,0,2,0,5,77.1,6.9,0,59.1,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,59.1,9.243833,1.609438,3.743186,1 +6,3,25,1,1,325008,0,10339.59,16.51745,1,12,1,6.18238,1.262236,0,0,0,7.444616,0,0,0,1,0,5,86.2,3.4,0,73.9,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,73.9,9.243833,1.609438,2.007491,1 +6,3,25,1,2,325008,0,10339.59,17.51745,1,12,1,78.26704,12.92614,0,0,0,91.19318,0,0,0,3,0,5,86.2,3.4,0,73.9,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,73.9,9.243833,1.609438,4.51298,1 +6,3,25,1,3,325008,0,10339.59,18.51745,1,12,1,6.935414,0,0,0,0,6.935414,0,0,0,1,0,5,86.2,3.4,0,73.9,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,73.9,9.243833,1.609438,1.936641,1 +6,3,25,1,1,325009,0,10339.59,14.02327,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,78.7,0,0,84.1,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,84.1,9.243833,1.609438,,0 +6,3,25,1,2,325009,0,10339.59,15.02327,1,12,1,30.49242,0,0,0,0,30.49242,0,0,0,2,0,5,78.7,0,0,84.1,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,84.1,9.243833,1.609438,3.417478,1 +6,3,25,1,3,325009,0,10339.59,16.02327,1,12,1,262.4621,13.13394,0,0,2120.551,2396.146,1,0,0,9,1,5,78.7,0,0,84.1,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,84.1,9.243833,1.609438,7.781617,1 +6,3,25,1,1,325010,0,10339.59,7.378508,1,12,1,22.66873,2.189593,0,0,0,24.85832,0,0,0,2,0,5,80,9.967326,0,88.9,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,88.9,9.243833,1.609438,3.213192,1 +6,3,25,1,2,325010,0,10339.59,8.378508,1,12,1,62.31061,3.219697,.3314394,0,0,65.86174,0,0,0,5,0,5,80,9.967326,0,88.9,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,88.9,9.243833,1.609438,4.187558,1 +6,3,25,1,3,325010,0,10339.59,9.378508,1,12,1,84.91547,0,.8669267,0,0,85.7824,0,0,0,1,0,5,80,9.967326,0,88.9,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,88.9,9.243833,1.609438,4.451814,1 +6,3,25,1,1,325011,0,10339.59,37.56057,1,12,1,468.3874,9.53117,0,0,0,477.9186,0,0,0,2,0,5,56.4,17.2,1,54.5,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,54.5,9.243833,1.609438,6.16944,1 +6,3,25,1,2,325011,0,10339.59,38.56057,1,12,1,43.08712,18.13447,0,0,0,61.22159,0,0,0,1,8,5,56.4,17.2,1,54.5,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,54.5,9.243833,1.609438,4.1145,1 +6,3,25,1,3,325011,0,10339.59,39.56057,1,12,1,35.97746,22.28002,0,0,0,58.25748,0,0,0,2,6,5,56.4,17.2,1,54.5,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,54.5,9.243833,1.609438,4.064872,1 +13,3,0,0,1,325022,0,9470.381,23.85216,0,16,1,7.727975,0,0,0,0,7.727975,0,0,0,0,1,2,87.2,0,0,77.3,300,465.96,0,0,.6931472,6.1441,1,4.564348,5.755076,0,0,0,77.3,9.15603,.6931472,2.044847,1 +13,3,0,0,2,325022,0,9470.381,24.85216,0,16,1,66.28788,8.451705,4.024621,0,0,78.76421,0,0,0,3,0,2,87.2,0,0,77.3,300,465.96,0,0,.6931472,6.1441,1,4.564348,5.755076,0,0,0,77.3,9.15603,.6931472,4.366458,1 +13,3,0,0,3,325022,0,9470.381,25.85216,0,16,1,248.5479,0,0,0,0,248.5479,0,0,0,3,9,2,87.2,0,0,77.3,300,465.96,0,0,.6931472,6.1441,1,4.564348,5.755076,0,0,0,77.3,9.15603,.6931472,5.515635,1 +13,3,0,0,1,325023,0,9470.381,23.82204,1,16,1,62.13292,5.641422,0,0,0,67.77435,0,0,0,4,1,2,85.1,10.3,0,89.8,300,465.96,0,0,.6931472,6.1441,1,4.564348,5.755076,0,0,0,89.8,9.15603,.6931472,4.216184,1 +13,3,0,0,2,325023,0,9470.381,24.82204,1,16,1,53.97727,14.34659,0,0,0,68.32386,0,0,0,6,0,2,85.1,10.3,0,89.8,300,465.96,0,0,.6931472,6.1441,1,4.564348,5.755076,0,0,0,89.8,9.15603,.6931472,4.224259,1 +13,3,0,0,3,325023,0,9470.381,25.82204,1,16,1,282.1847,25.19723,0,0,566.8618,874.2436,1,1,0,1,0,2,85.1,10.3,0,89.8,300,465.96,0,0,.6931472,6.1441,1,4.564348,5.755076,0,0,0,89.8,9.15603,.6931472,6.773359,1 +11,3,0,1,1,325042,0,3679.765,8.071184,1,13,1,88.86619,48.381,28.08989,0,0,165.3371,0,0,0,6,1,5,83.3,9.967326,0,70.4,0,1047.24,1,1,1.609438,6.953913,0,0,0,0,0,0,70.4,8.210876,1.609438,5.107986,1 +11,3,0,1,2,325042,0,3679.765,9.071184,1,13,1,20.1594,46.4557,13.94749,0,0,80.56259,0,0,0,2,0,6,83.3,9.967326,0,70.4,0,1047.24,1,1,1.791759,6.953913,0,0,0,0,0,0,70.4,8.210876,1.791759,4.389034,1 +11,3,0,1,3,325042,0,3679.765,10.07118,1,13,1,34.39381,69.88392,10.64058,0,0,114.9183,0,0,0,3,0,6,83.3,9.967326,0,70.4,0,1047.24,1,1,1.791759,6.953913,0,0,0,0,0,0,70.4,8.210876,1.791759,4.744222,1 +11,3,0,1,1,325043,0,3679.765,31.99726,1,13,1,39.32584,17.36976,28.72829,0,710.1022,795.5261,1,0,0,2,1,5,75,6.9,1,55.7,0,1047.24,0,0,1.609438,6.953913,0,0,0,0,0,0,55.7,8.210876,1.609438,6.679004,1 +11,3,0,1,2,325043,0,3679.765,32.99726,1,13,1,14.53352,17.90436,11.72058,0,0,44.15846,0,0,0,1,1,6,75,6.9,1,55.7,0,1047.24,0,0,1.791759,6.953913,0,0,0,0,0,0,55.7,8.210876,1.791759,3.787785,1 +11,3,0,1,3,325043,0,3679.765,33.99726,1,13,1,696.5047,60.77386,36.02752,25.79536,515.5245,1308.831,1,0,1,37,0,6,75,6.9,1,55.7,0,1047.24,0,0,1.791759,6.953913,0,0,0,0,0,0,55.7,8.210876,1.791759,7.176889,1 +11,3,0,1,1,325044,0,3679.765,28.58043,0,8,1,23.36568,11.36364,26.04699,0,0,60.7763,0,0,0,1,1,5,86.2,6.9,0,78.6,0,1047.24,0,0,1.609438,6.953913,0,0,0,0,0,0,78.6,8.210876,1.609438,4.1072,1 +11,3,0,1,2,325044,0,3679.765,29.58043,0,8,1,135.068,6.04782,0,0,0,141.1158,0,0,0,3,1,6,86.2,6.9,0,78.6,0,1047.24,0,0,1.791759,6.953913,0,0,0,0,0,0,78.6,8.210876,1.791759,4.949581,1 +11,3,0,1,3,325044,0,3679.765,30.58043,0,8,1,98.8822,9.677558,23.64574,0,0,132.2055,0,0,0,1,1,6,86.2,6.9,0,78.6,0,1047.24,0,0,1.791759,6.953913,0,0,0,0,0,0,78.6,8.210876,1.791759,4.884357,1 +11,3,0,1,1,325045,0,3679.765,6.951403,1,13,1,46.98672,10.98059,0,0,0,57.96731,0,0,0,6,0,5,81.7,9.967326,1,63,0,1047.24,1,1,1.609438,6.953913,0,0,0,0,0,0,63,8.210876,1.609438,4.059879,1 +11,3,0,1,2,325045,0,3679.765,7.951403,1,13,1,48.75762,17.25738,0,0,0,66.015,0,0,0,7,1,6,81.7,9.967326,1,63,0,1047.24,1,1,1.791759,6.953913,0,0,0,0,0,0,63,8.210876,1.791759,4.189882,1 +11,3,0,1,3,325045,0,3679.765,8.951404,1,13,1,229.8796,32.2012,0,0,0,262.0808,0,0,0,13,0,6,81.7,9.967326,1,63,0,1047.24,1,1,1.791759,6.953913,0,0,0,0,0,0,63,8.210876,1.791759,5.568653,1 +10,3,50,1,1,325046,0,4042.229,14.2204,0,9,1,7.727975,4.121587,0,0,0,11.84956,0,0,0,1,0,7,70.7,0,0,79.5,1000,1000,1,0,1.94591,6.907755,0,3.931826,7.600903,1,0,0,79.5,8.304799,1.94591,2.472291,1 +10,3,50,1,2,325046,0,4042.229,15.2204,0,9,1,0,0,0,0,0,0,0,0,0,0,0,7,70.7,0,0,79.5,1000,1000,1,0,1.94591,6.907755,0,3.931826,7.600903,1,0,0,79.5,8.304799,1.94591,,0 +10,3,50,1,3,325046,0,4042.229,16.2204,0,9,1,0,0,0,0,0,0,0,0,0,0,0,7,70.7,0,0,79.5,1000,1000,1,0,1.94591,6.907755,0,3.931826,7.600903,1,0,0,79.5,8.304799,1.94591,,0 +10,3,50,1,1,325047,0,4042.229,8.804928,1,9,1,2.575992,3.19423,0,0,0,5.770222,0,0,0,1,0,7,91.7,9.967326,0,74.1,1000,1000,1,1,1.94591,6.907755,0,3.931826,7.600903,1,0,0,74.1,8.304799,1.94591,1.75271,1 +10,3,50,1,2,325047,0,4042.229,9.804928,1,9,1,0,0,0,0,0,0,0,0,0,0,0,7,91.7,9.967326,0,74.1,1000,1000,1,1,1.94591,6.907755,0,3.931826,7.600903,1,0,0,74.1,8.304799,1.94591,,0 +10,3,50,1,3,325047,0,4042.229,10.80493,1,9,1,6.501951,3.5544,0,0,0,10.05635,0,0,0,1,0,7,91.7,9.967326,0,74.1,1000,1000,1,1,1.94591,6.907755,0,3.931826,7.600903,1,0,0,74.1,8.304799,1.94591,2.308204,1 +10,3,50,1,1,325048,0,4042.229,44.73922,1,9,1,230.0155,28.46471,35.03349,0,0,293.5136,0,0,0,4,4,7,61.2,10.3,0,76.2,1000,1000,0,0,1.94591,6.907755,0,3.931826,7.600903,1,0,0,76.2,8.304799,1.94591,5.681924,1 +10,3,50,1,2,325048,0,4042.229,45.73922,1,9,1,14.20455,31.10795,0,0,0,45.3125,0,0,0,2,0,7,61.2,10.3,0,76.2,1000,1000,0,0,1.94591,6.907755,0,3.931826,7.600903,1,0,0,76.2,8.304799,1.94591,3.813583,1 +10,3,50,1,3,325048,0,4042.229,46.73922,1,9,1,8.669268,37.06112,0,0,0,45.73038,0,0,0,1,0,7,61.2,10.3,0,76.2,1000,1000,0,0,1.94591,6.907755,0,3.931826,7.600903,1,0,0,76.2,8.304799,1.94591,3.822763,1 +10,3,50,1,1,325049,0,4042.229,46.8501,0,7,1,10.30397,4.327666,0,0,0,14.63163,0,0,0,2,0,7,92.9,6.9,0,86.4,1000,1000,0,0,1.94591,6.907755,0,3.931826,7.600903,0,0,0,86.4,8.304799,1.94591,2.683186,1 +10,3,50,1,2,325049,0,4042.229,47.8501,0,7,1,31.25,0,0,0,0,31.25,0,0,0,1,0,7,92.9,6.9,0,86.4,1000,1000,0,0,1.94591,6.907755,0,3.931826,7.600903,0,0,0,86.4,8.304799,1.94591,3.442019,1 +10,3,50,1,3,325049,0,4042.229,48.8501,0,7,1,8.669268,11.66016,0,0,0,20.32943,0,0,0,1,0,7,92.9,6.9,0,86.4,1000,1000,0,0,1.94591,6.907755,0,3.931826,7.600903,0,0,0,86.4,8.304799,1.94591,3.01207,1 +10,3,50,1,1,325050,0,4042.229,10.05339,0,9,1,11.33436,1.803194,0,0,0,13.13756,0,0,0,0,0,7,83.3,9.967326,0,100,1000,1000,1,0,1.94591,6.907755,0,3.931826,7.600903,1,0,0,100,8.304799,1.94591,2.575475,1 +10,3,50,1,2,325050,0,4042.229,11.05339,0,9,1,5.681818,0,0,0,0,5.681818,0,0,0,1,0,7,83.3,9.967326,0,100,1000,1000,1,0,1.94591,6.907755,0,3.931826,7.600903,1,0,0,100,8.304799,1.94591,1.737271,1 +10,3,50,1,3,325050,0,4042.229,12.05339,0,9,1,5.20156,3.259645,0,0,0,8.461205,0,0,0,1,0,7,83.3,9.967326,0,100,1000,1000,1,0,1.94591,6.907755,0,3.931826,7.600903,1,0,0,100,8.304799,1.94591,2.135492,1 +10,3,50,1,1,325051,0,4042.229,18.09446,0,11,1,0,0,0,0,0,0,0,0,0,0,0,7,83.5,3.4,0,67,1000,1000,0,0,1.94591,6.907755,0,3.931826,7.600903,1,0,0,67,8.304799,1.94591,,0 +10,3,50,1,2,325051,0,4042.229,19.09446,0,11,1,0,6.155303,0,0,0,6.155303,0,0,0,0,0,7,83.5,3.4,0,67,1000,1000,0,0,1.94591,6.907755,0,3.931826,7.600903,1,0,0,67,8.304799,1.94591,1.817314,1 +10,3,50,1,3,325051,0,4042.229,20.09446,0,11,1,78.89034,16.59731,0,0,0,95.48765,0,0,0,5,0,7,83.5,3.4,0,67,1000,1000,0,0,1.94591,6.907755,0,3.931826,7.600903,1,0,0,67,8.304799,1.94591,4.558997,1 +10,3,50,1,1,325052,0,4042.229,7.063655,1,9,1,3.09119,0,0,0,0,3.09119,0,0,0,0,0,7,95,9.967326,0,100,1000,1000,1,1,1.94591,6.907755,0,3.931826,7.600903,1,0,0,100,8.304799,1.94591,1.128556,1 +10,3,50,1,2,325052,0,4042.229,8.063655,1,9,1,0,0,0,0,0,0,0,0,0,0,0,7,95,9.967326,0,100,1000,1000,1,1,1.94591,6.907755,0,3.931826,7.600903,1,0,0,100,8.304799,1.94591,,0 +10,3,50,1,3,325052,0,4042.229,9.063655,1,9,1,0,0,0,0,0,0,0,0,0,0,0,7,95,9.967326,0,100,1000,1000,1,1,1.94591,6.907755,0,3.931826,7.600903,1,0,0,100,8.304799,1.94591,,0 +18,3,25,1,1,325053,0,10218.18,15.19233,1,9,1,5.720229,3.536141,0,0,0,9.256371,0,0,0,1,0,3,77.7,6.9,0,60.2,750,750,1,1,1.098612,6.620073,0,3.258096,8.006368,1,0,0,60.2,9.232021,1.098612,2.225312,1 +18,3,25,1,2,325053,0,10218.18,16.19233,1,9,1,16.72241,0,24.36694,0,0,41.08934,0,0,0,1,1,3,77.7,6.9,0,60.2,750,750,1,1,1.098612,6.620073,0,3.258096,8.006368,1,0,0,60.2,9.232021,1.098612,3.715749,1 +18,3,25,1,3,325053,0,10218.18,17.19233,1,9,1,8.999122,0,0,0,0,8.999122,0,0,0,2,0,3,77.7,6.9,0,60.2,750,750,1,1,1.098612,6.620073,0,3.258096,8.006368,1,0,0,60.2,9.232021,1.098612,2.197127,1 +18,3,25,1,4,325053,0,10218.18,18.19233,1,9,1,64.22018,3.984843,0,0,0,68.20502,0,0,0,1,0,3,77.7,6.9,0,60.2,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,60.2,9.232021,1.098612,4.222518,1 +18,3,25,1,5,325053,0,10218.18,19.19233,1,9,1,59.1008,2.429296,21.75489,0,0,83.28499,0,0,0,2,1,3,77.7,6.9,0,60.2,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,60.2,9.232021,1.098612,4.422268,1 +18,3,25,1,1,325054,0,10218.18,37.88638,0,8,1,20.80083,0,22.88091,0,0,43.68175,0,0,0,1,1,3,73.2,6.9,0,62.5,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,62.5,9.232021,1.098612,3.77693,1 +18,3,25,1,2,325054,0,10218.18,38.88638,0,8,1,0,0,0,0,0,0,0,0,0,0,0,3,73.2,6.9,0,62.5,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,62.5,9.232021,1.098612,,0 +18,3,25,1,3,325054,0,10218.18,39.88638,0,8,1,8.779632,0,0,0,0,8.779632,0,0,0,1,0,3,73.2,6.9,0,62.5,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,62.5,9.232021,1.098612,2.172435,1 +18,3,25,1,4,325054,0,10218.18,40.88638,0,8,1,0,0,0,0,0,0,0,0,0,0,0,3,73.2,6.9,0,62.5,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,62.5,9.232021,1.098612,,0 +18,3,25,1,5,325054,0,10218.18,41.88638,0,8,1,16.31617,4.350979,10.15228,0,0,30.81944,0,0,0,1,1,3,73.2,6.9,0,62.5,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,62.5,9.232021,1.098612,3.428145,1 +18,3,25,1,1,325055,0,10218.18,34.93224,1,9,1,40.0416,19.9688,0,0,0,60.0104,0,0,0,3,0,3,70.2,27.6,0,68.2,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,68.2,9.232021,1.098612,4.094518,1 +18,3,25,1,2,325055,0,10218.18,35.93224,1,9,1,20.06689,29.14477,21.97802,0,0,71.18968,0,0,0,2,1,3,70.2,27.6,0,68.2,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,68.2,9.232021,1.098612,4.265348,1 +18,3,25,1,3,325055,0,10218.18,36.93224,1,9,1,8.779632,19.75417,0,0,0,28.5338,0,0,0,1,0,3,70.2,27.6,0,68.2,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,68.2,9.232021,1.098612,3.351089,1 +18,3,25,1,4,325055,0,10218.18,37.93224,1,9,1,191.2246,10.94934,22.33746,0,0,224.5114,0,0,0,6,2,3,70.2,27.6,0,68.2,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,68.2,9.232021,1.098612,5.413926,1 +18,3,25,1,5,325055,0,10218.18,38.93224,1,9,1,162.7266,12.43655,15.22843,0,0,190.3916,0,0,0,5,1,3,70.2,27.6,0,68.2,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,68.2,9.232021,1.098612,5.249083,1 +11,3,0,1,1,325088,0,5465.103,1.10883,0,12,1,24.72952,14.32251,0,0,0,39.05204,0,0,0,1,0,4,83.39137,9.967326,0,100,0,278.4,1,0,1.386294,5.629059,0,0,0,0,0,0,100,8.606321,1.386294,3.664895,1 +11,3,0,1,2,325088,0,5465.103,2.108829,0,12,1,17.99242,1.704545,0,0,0,19.69697,0,0,0,3,0,5,83.39137,9.967326,0,100,0,278.4,1,0,1.609438,5.629059,0,0,0,0,0,0,100,8.606321,1.609438,2.980465,1 +11,3,0,1,3,325088,0,5465.103,3.108829,0,12,1,70.52449,5.504985,0,0,0,76.02947,0,0,0,5,0,5,83.39137,9.967326,0,100,0,278.4,1,0,1.609438,5.629059,0,0,0,0,0,0,100,8.606321,1.609438,4.331121,1 +11,3,0,1,4,325088,0,5465.103,4.108829,0,12,1,58.29066,3.111461,0,0,0,61.40213,0,0,0,2,0,5,83.39137,9.967326,0,100,0,278.4,1,0,1.609438,5.629059,0,0,0,0,0,0,100,8.606321,1.609438,4.117445,1 +11,3,0,1,5,325088,0,5465.103,5.108829,0,12,1,39.92844,6.923077,0,0,0,46.85152,0,0,0,4,0,5,83.39137,9.967326,0,100,0,278.4,1,0,1.609438,5.629059,0,0,0,0,0,0,100,8.606321,1.609438,3.846983,1 +11,3,0,1,1,325089,0,5465.103,5.385353,0,12,1,5.667182,2.215353,0,0,0,7.882535,0,0,0,1,0,4,85,9.967326,0,77.8,0,278.4,1,0,1.386294,5.629059,0,0,0,0,0,0,77.8,8.606321,1.386294,2.06465,1 +11,3,0,1,2,325089,0,5465.103,6.385353,0,12,1,5.681818,0,0,0,0,5.681818,0,0,0,1,0,5,85,9.967326,0,77.8,0,278.4,1,0,1.609438,5.629059,0,0,0,0,0,0,77.8,8.606321,1.609438,1.737271,1 +11,3,0,1,3,325089,0,5465.103,7.385353,0,12,1,61.89857,13.8925,0,0,0,75.79107,0,0,0,5,0,5,85,9.967326,0,77.8,0,278.4,1,0,1.609438,5.629059,0,0,0,0,0,0,77.8,8.606321,1.609438,4.327981,1 +11,3,0,1,4,325089,0,5465.103,8.385352,0,12,1,13.78496,2.756991,0,0,0,16.54195,0,0,0,2,0,5,85,9.967326,0,77.8,0,278.4,1,0,1.609438,5.629059,0,0,0,0,0,0,77.8,8.606321,1.609438,2.805899,1 +11,3,0,1,5,325089,0,5465.103,9.385352,0,12,1,3.577817,4.454383,0,0,0,8.032201,0,0,0,1,0,5,85,9.967326,0,77.8,0,278.4,1,0,1.609438,5.629059,0,0,0,0,0,0,77.8,8.606321,1.609438,2.083459,1 +11,3,0,1,1,325090,0,5465.103,27.01711,1,12,1,19.57754,9.891809,20.60793,0,544.3792,594.4565,1,0,0,1,1,4,75,13.8,1,77.3,0,278.4,0,0,1.386294,5.629059,0,0,0,0,0,0,77.3,8.606321,1.386294,6.387648,1 +11,3,0,1,2,325090,0,5465.103,28.01711,1,12,1,15.15152,2.722538,0,0,0,17.87405,0,0,0,2,0,5,75,13.8,1,77.3,0,278.4,0,0,1.609438,5.629059,0,0,0,0,0,0,77.3,8.606321,1.609438,2.88335,1 +11,3,0,1,3,325090,0,5465.103,29.01711,1,12,1,148.6779,9.046381,23.84048,0,0,181.5648,0,0,0,1,15,5,75,13.8,1,77.3,0,278.4,0,0,1.609438,5.629059,0,0,0,0,0,0,77.3,8.606321,1.609438,5.201612,1 +11,3,0,1,4,325090,0,5465.103,30.01711,1,12,1,39.0705,8.842064,0,0,0,47.91256,0,0,0,2,0,5,75,13.8,1,77.3,0,278.4,0,0,1.609438,5.629059,0,0,0,0,0,0,77.3,8.606321,1.609438,3.869378,1 +11,3,0,1,5,325090,0,5465.103,31.01711,1,12,1,11.09123,0,28.62254,0,0,39.71378,0,0,0,2,0,5,75,13.8,1,77.3,0,278.4,0,0,1.609438,5.629059,0,0,0,0,0,0,77.3,8.606321,1.609438,3.681698,1 +11,3,0,1,1,325091,0,5465.103,23.19781,0,12,1,40.70067,7.367336,0,0,0,48.068,0,0,0,2,0,4,65.4,3.4,0,88.6,0,278.4,0,0,1.386294,5.629059,0,0,0,0,0,0,88.6,8.606321,1.386294,3.872617,1 +11,3,0,1,2,325091,0,5465.103,24.19781,0,12,1,96.11742,34.83902,0,0,0,130.9564,0,0,0,6,2,5,65.4,3.4,0,88.6,0,278.4,0,0,1.609438,5.629059,0,0,0,0,0,0,88.6,8.606321,1.609438,4.874865,1 +11,3,0,1,3,325091,0,5465.103,25.19781,0,12,1,127.4382,0,0,0,0,127.4382,0,0,0,0,15,5,65.4,3.4,0,88.6,0,278.4,0,0,1.609438,5.629059,0,0,0,0,0,0,88.6,8.606321,1.609438,4.847632,1 +11,3,0,1,4,325091,0,5465.103,26.19781,0,12,1,37.02245,2.028358,0,0,0,39.05081,0,0,0,1,3,5,65.4,3.4,0,88.6,0,278.4,0,0,1.609438,5.629059,0,0,0,0,0,0,88.6,8.606321,1.609438,3.664864,1 +11,3,0,1,5,325091,0,5465.103,27.19781,0,12,1,4.293381,1.9678,0,0,0,6.261181,0,0,0,1,0,5,65.4,3.4,0,88.6,0,278.4,0,0,1.609438,5.629059,0,0,0,0,0,0,88.6,8.606321,1.609438,1.834369,1 +11,3,0,1,1,325098,0,10845.16,32.34223,0,14,1,5.720229,5.954238,0,0,0,11.67447,0,0,0,1,0,4,66.5,3.4,0,76.1,0,0,0,0,1.386294,0,0,0,0,0,0,0,76.1,9.291567,1.386294,2.457404,1 +11,3,0,1,2,325098,0,10845.16,33.34223,0,14,1,36.31152,12.3268,27.23364,0,0,75.87196,0,0,0,4,1,4,66.5,3.4,0,76.1,0,0,0,0,1.386294,0,0,0,0,0,0,0,76.1,9.291567,1.386294,4.329047,1 +11,3,0,1,3,325098,0,10845.16,34.34223,0,14,1,29.85075,15.84723,0,0,0,45.69798,0,0,0,5,0,4,66.5,3.4,0,76.1,0,0,0,0,1.386294,0,0,0,0,0,0,0,76.1,9.291567,1.386294,3.822054,1 +11,3,0,1,1,325099,0,10845.16,32.72827,1,12,1,86.06345,56.83827,0,0,0,142.9017,0,0,0,5,6,4,97.9,17.2,1,93.2,0,0,0,0,1.386294,0,0,0,0,1,0,0,93.2,9.291567,1.386294,4.962157,1 +11,3,0,1,2,325099,0,10845.16,33.72827,1,12,1,54.94505,59.50788,25.80029,0,0,140.2532,0,0,0,3,5,4,97.9,17.2,1,93.2,0,0,0,0,1.386294,0,0,0,0,1,0,0,93.2,9.291567,1.386294,4.943449,1 +11,3,0,1,3,325099,0,10845.16,34.72827,1,12,1,54.44249,64.30202,0,0,0,118.7445,0,0,0,5,2,4,97.9,17.2,1,93.2,0,0,0,0,1.386294,0,0,0,0,1,0,0,93.2,9.291567,1.386294,4.776974,1 +11,3,0,1,1,325100,0,10845.16,8.859685,0,12,1,29.64119,23.79095,0,0,0,53.43214,0,0,0,1,0,4,96.7,9.967326,0,74.1,0,0,1,0,1.386294,0,0,0,0,0,0,0,74.1,9.291567,1.386294,3.978412,1 +11,3,0,1,2,325100,0,10845.16,9.859685,0,12,1,11.94458,10.91734,0,0,0,22.86192,0,0,0,2,0,4,96.7,9.967326,0,74.1,0,0,1,0,1.386294,0,0,0,0,0,0,0,74.1,9.291567,1.386294,3.129473,1 +11,3,0,1,3,325100,0,10845.16,10.85968,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,96.7,9.967326,0,74.1,0,0,1,0,1.386294,0,0,0,0,0,0,0,74.1,9.291567,1.386294,,0 +11,3,0,1,1,325101,0,10845.16,11.28816,1,12,1,23.50494,0,0,0,0,23.50494,0,0,0,1,0,4,93.3,9.967326,0,92.6,0,0,1,1,1.386294,0,0,0,0,0,0,0,92.6,9.291567,1.386294,3.157211,1 +11,3,0,1,2,325101,0,10845.16,12.28816,1,12,1,6.21118,0,0,0,0,6.21118,0,0,0,1,0,4,93.3,9.967326,0,92.6,0,0,1,1,1.386294,0,0,0,0,0,0,0,92.6,9.291567,1.386294,1.826351,1 +11,3,0,1,3,325101,0,10845.16,13.28816,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,93.3,9.967326,0,92.6,0,0,1,1,1.386294,0,0,0,0,0,0,0,92.6,9.291567,1.386294,,0 +13,3,0,1,1,325104,0,7722.581,25.39357,1,14,1,23.53941,5.280783,0,0,0,28.8202,0,0,0,1,0,3,81.9,0,0,89.8,450,807.6,0,0,1.098612,6.694067,1,4.564348,6.160541,1,0,0,89.8,8.952033,1.098612,3.361076,1 +13,3,0,1,2,325104,0,7722.581,26.39357,1,14,1,21.7803,4.6875,0,0,541.714,568.1818,1,0,0,3,0,3,81.9,0,0,89.8,450,807.6,0,0,1.098612,6.694067,1,4.564348,6.160541,1,0,0,89.8,8.952033,1.098612,6.342442,1 +13,3,0,1,3,325104,0,7722.581,27.39357,1,14,1,17.772,0,25.57434,0,0,43.34634,0,0,0,2,0,4,81.9,0,0,89.8,450,807.6,0,0,1.386294,6.694067,1,4.564348,6.160541,1,0,0,89.8,8.952033,1.386294,3.769222,1 +13,3,0,1,1,325105,0,7722.581,24.85147,0,14,1,7.727975,12.93148,0,0,396.0536,416.713,1,0,0,1,0,3,62.2,24.1,0,34.1,450,807.6,0,0,1.098612,6.694067,1,4.564348,6.160541,1,0,0,34.1,8.952033,1.098612,6.032398,1 +13,3,0,1,2,325105,0,7722.581,25.85147,0,14,1,103.196,0,0,0,0,103.196,0,0,0,1,0,3,62.2,24.1,0,34.1,450,807.6,0,0,1.098612,6.694067,1,4.564348,6.160541,1,0,0,34.1,8.952033,1.098612,4.636631,1 +13,3,0,1,3,325105,0,7722.581,26.85147,0,14,1,5.635024,0,0,0,0,5.635024,0,0,0,1,0,4,62.2,24.1,0,34.1,450,807.6,0,0,1.386294,6.694067,1,4.564348,6.160541,1,0,0,34.1,8.952033,1.386294,1.729001,1 +13,3,0,1,1,325106,0,7722.581,1.853525,1,14,1,80.42246,4.662545,0,0,0,85.08501,0,0,0,5,0,3,83.39137,9.967326,0,96.3,450,807.6,1,1,1.098612,6.694067,1,4.564348,6.160541,1,0,0,96.3,8.952033,1.098612,4.443651,1 +13,3,0,1,2,325106,0,7722.581,2.853525,1,14,1,33.52273,2.367424,0,0,0,35.89015,0,0,0,4,0,3,83.39137,9.967326,0,96.3,450,807.6,1,1,1.098612,6.694067,1,4.564348,6.160541,1,0,0,96.3,8.952033,1.098612,3.580463,1 +13,3,0,1,3,325106,0,7722.581,3.853525,1,14,1,36.41092,0,0,0,0,36.41092,0,0,0,6,0,4,83.39137,9.967326,0,96.3,450,807.6,1,1,1.386294,6.694067,1,4.564348,6.160541,1,0,0,96.3,8.952033,1.386294,3.594869,1 +16,3,95,0,1,325107,1,6370.674,23.67146,0,13,1,0,0,0,0,0,0,0,0,0,0,0,1,74.5,0,0,59.1,1000,900,0,0,0,6.802395,0,4.564348,6.959049,0,0,0,59.1,8.759618,0,,0 +16,3,95,0,2,325107,1,6370.674,24.67146,0,13,1,0,0,0,0,0,0,0,0,0,0,0,1,74.5,0,0,59.1,1000,900,0,0,0,6.802395,0,4.564348,6.959049,0,0,0,59.1,8.759618,0,,0 +16,3,95,0,3,325107,1,6370.674,25.67146,0,13,1,23.51432,0,0,0,0,23.51432,0,0,0,2,0,1,74.5,0,0,59.1,1000,900,0,0,0,6.802395,0,4.564348,6.959049,0,0,0,59.1,8.759618,0,3.15761,1 +16,3,95,0,4,325107,1,6370.674,26.67146,0,13,1,0,0,0,0,0,0,0,0,0,0,0,2,74.5,0,0,59.1,1000,900,0,0,.6931472,6.802395,0,4.564348,6.959049,0,0,0,59.1,8.759618,.6931472,,0 +16,3,95,0,5,325107,1,6370.674,27.67146,0,13,1,0,0,0,0,0,0,0,0,0,0,0,2,74.5,0,0,59.1,1000,900,0,0,.6931472,6.802395,0,4.564348,6.959049,0,0,0,59.1,8.759618,.6931472,,0 +16,3,95,1,1,325110,0,7497.361,24.61602,0,16,1,25.24472,0,0,0,0,25.24472,0,0,0,1,0,4,92.6,3.4,0,94.3,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,94.3,8.92244,1.386294,3.228617,1 +16,3,95,1,2,325110,0,7497.361,25.61602,0,16,1,9.469697,.9375,0,0,0,10.4072,0,0,0,2,0,4,92.6,3.4,0,94.3,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,94.3,8.92244,1.386294,2.342498,1 +16,3,95,1,3,325110,0,7497.361,26.61602,0,16,1,63.24231,0,0,0,0,63.24231,0,0,0,4,0,4,92.6,3.4,0,94.3,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,94.3,8.92244,1.386294,4.146974,1 +16,3,95,1,4,325110,0,7497.361,27.61602,0,16,1,5.907838,12.17015,0,0,0,18.07798,0,0,0,1,0,5,92.6,3.4,0,94.3,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,94.3,8.92244,1.609438,2.894695,1 +16,3,95,1,5,325110,0,7497.361,28.61602,0,16,1,132.9875,0,0,0,0,132.9875,0,0,0,4,0,5,92.6,3.4,0,94.3,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,94.3,8.92244,1.609438,4.890255,1 +16,3,95,1,1,325111,0,7497.361,24.77481,1,14,1,46.88305,7.903143,26.79031,0,0,81.57651,0,0,0,3,1,4,73.9,10.3,0,75,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,75,8.92244,1.386294,4.401541,1 +16,3,95,1,2,325111,0,7497.361,25.77481,1,14,1,67.23485,18.04451,0,0,0,85.27936,0,0,0,9,0,4,73.9,10.3,0,75,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,75,8.92244,1.386294,4.445932,1 +16,3,95,1,3,325111,0,7497.361,26.77481,1,14,1,23.84048,2.72215,24.27395,0,477.6333,528.4698,1,0,0,2,1,4,73.9,10.3,0,75,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,75,8.92244,1.386294,6.269986,1 +16,3,95,1,4,325111,0,7497.361,27.77481,1,14,1,33.8716,3.513194,0,0,0,37.3848,0,0,0,2,0,5,73.9,10.3,0,75,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,75,8.92244,1.609438,3.621264,1 +16,3,95,1,5,325111,0,7497.361,28.77481,1,14,1,25.29517,9.824687,0,0,634.8265,669.9464,1,0,0,4,0,5,73.9,10.3,0,75,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,75,8.92244,1.609438,6.507198,1 +16,3,95,1,1,325112,0,7497.361,1.42642,0,14,1,47.39825,1.303452,0,0,437.5683,486.27,1,0,0,7,0,4,83.39137,9.967326,0,77.8,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,77.8,8.92244,1.386294,6.186764,1 +16,3,95,1,2,325112,0,7497.361,2.42642,0,14,1,86.50568,.4640152,0,0,0,86.9697,0,0,0,5,0,4,83.39137,9.967326,0,77.8,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,77.8,8.92244,1.386294,4.46556,1 +16,3,95,1,3,325112,0,7497.361,3.42642,0,14,1,180.6675,9.861292,0,0,0,190.5288,0,0,0,11,0,4,83.39137,9.967326,0,77.8,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,77.8,8.92244,1.386294,5.249804,1 +16,3,95,1,4,325112,0,7497.361,4.42642,0,14,1,17.72351,0,0,0,0,17.72351,0,0,0,2,0,5,83.39137,9.967326,0,77.8,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,77.8,8.92244,1.609438,2.874892,1 +16,3,95,1,5,325112,0,7497.361,5.42642,0,14,1,16.45796,5.288014,0,0,0,21.74598,0,0,0,2,0,5,83.39137,9.967326,0,77.8,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,77.8,8.92244,1.609438,3.079429,1 +11,3,0,1,1,325116,0,4918.006,.8131417,0,13,1,68.69475,8.705148,0,0,199.0848,276.4846,1,0,0,6,0,4,83.39137,9.967326,0,85.2,0,0,1,0,1.386294,0,0,0,0,0,0,0,85.2,8.500862,1.386294,5.622155,1 +11,3,0,1,2,325116,0,4918.006,1.813142,0,13,1,474.7253,14.46727,0,0,480.172,969.3646,2,0,0,34,0,5,83.39137,9.967326,0,85.2,0,0,1,0,1.609438,0,0,0,0,0,0,0,85.2,8.500862,1.609438,6.876641,1 +11,3,0,1,1,325117,0,4918.006,22.89938,1,13,1,54.59698,24.11337,0,0,698.1903,776.9007,1,0,0,2,0,4,24.5,20.7,0,48.9,0,0,0,0,1.386294,0,0,0,0,1,0,0,48.9,8.500862,1.386294,6.655313,1 +11,3,0,1,2,325117,0,4918.006,23.89938,1,13,1,153.3206,15.84807,0,0,0,169.1687,0,0,0,4,0,5,24.5,20.7,0,48.9,0,0,0,0,1.609438,0,0,0,0,1,0,0,48.9,8.500862,1.609438,5.130896,1 +11,3,0,1,3,325117,0,4918.006,24.89938,1,13,1,76.03161,14.53029,0,0,1022.542,1113.104,2,0,0,5,0,3,24.5,20.7,0,48.9,0,0,0,0,1.098612,0,0,0,0,1,0,0,48.9,8.500862,1.098612,7.014907,1 +11,3,0,1,1,325118,0,4918.006,1.629021,0,13,1,46.56786,0,0,0,0,46.56786,0,0,0,4,0,4,83.39137,9.967326,1,22.2,0,0,1,0,1.386294,0,0,0,0,0,0,0,22.2,8.500862,1.386294,3.840911,1 +11,3,0,1,2,325118,0,4918.006,2.629021,0,13,1,529.0492,14.04682,0,0,0,543.096,0,0,0,22,0,5,83.39137,9.967326,1,22.2,0,0,1,0,1.609438,0,0,0,0,0,0,0,22.2,8.500862,1.609438,6.297286,1 +11,3,0,1,3,325118,0,4918.006,3.629021,0,13,1,403.9069,2.3705,0,0,0,406.2774,0,0,0,34,0,3,83.39137,9.967326,1,22.2,0,0,1,0,1.098612,0,0,0,0,0,0,0,22.2,8.500862,1.098612,6.007036,1 +11,3,0,1,1,325119,0,4918.006,22.39836,0,7,1,23.40094,0,0,0,0,23.40094,0,0,0,2,0,4,80.9,10.3,0,85.2,0,0,0,0,1.386294,0,0,0,0,0,0,0,85.2,8.500862,1.386294,3.152776,1 +11,3,0,1,2,325119,0,4918.006,23.39836,0,7,1,209.0779,2.723364,0,0,0,211.8012,0,0,0,4,0,5,80.9,10.3,0,85.2,0,0,0,0,1.609438,0,0,0,0,0,0,0,85.2,8.500862,1.609438,5.355649,1 +11,3,0,1,3,325119,0,4918.006,24.39836,0,7,1,36.96225,3.424056,0,0,0,40.3863,0,0,0,3,0,3,80.9,10.3,0,85.2,0,0,0,0,1.098612,0,0,0,0,0,0,0,85.2,8.500862,1.098612,3.698491,1 +19,3,25,0,1,325120,0,5519.062,60.92813,0,11,1,54.08216,92.5377,32.24129,0,820.39,999.2512,1,0,0,5,1,2,79.8,13.8,1,61.4,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,1,0,61.4,8.616144,.6931472,6.907006,1 +19,3,25,0,2,325120,0,5519.062,61.92813,0,11,1,44.43383,58.02676,0,0,0,102.4606,0,0,0,5,0,2,79.8,13.8,1,61.4,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,1,0,61.4,8.616144,.6931472,4.629478,1 +19,3,25,0,3,325120,0,5519.062,62.92813,0,11,1,54.8727,82.85777,0,0,0,137.7305,0,0,0,4,0,2,79.8,13.8,1,61.4,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,1,0,61.4,8.616144,.6931472,4.925299,1 +19,3,25,0,1,325121,0,5519.062,59.00616,1,8,1,10.92044,0,37.96152,0,0,48.88195,0,0,0,0,1,2,83,6.9,0,76.1,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,76.1,8.616144,.6931472,3.889408,1 +19,3,25,0,2,325121,0,5519.062,60.00616,1,8,1,0,0,0,0,0,0,0,0,0,0,0,2,83,6.9,0,76.1,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,76.1,8.616144,.6931472,,0 +19,3,25,0,3,325121,0,5519.062,61.00616,1,8,1,32.79192,0,0,0,0,32.79192,0,0,0,1,0,2,83,6.9,0,76.1,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,76.1,8.616144,.6931472,3.490182,1 +11,3,0,1,1,325177,0,14874.49,17.577,1,13,1,13.66397,0,0,0,0,13.66397,0,0,0,2,0,6,76.6,3.4,0,77.3,0,580.8,1,1,1.791759,6.364407,0,0,0,0,0,0,77.3,9.60747,1.791759,2.614762,1 +11,3,0,1,2,325177,0,14874.49,18.577,1,13,1,185.0816,6.783217,6.993007,0,0,198.8578,0,0,0,1,6,6,76.6,3.4,0,77.3,0,580.8,0,0,1.791759,6.364407,0,0,0,0,0,0,77.3,9.60747,1.791759,5.29259,1 +11,3,0,1,3,325177,0,14874.49,19.577,1,13,1,77.68277,7.28944,0,0,240.4062,325.3784,1,0,0,3,0,6,76.6,3.4,0,77.3,0,580.8,0,0,1.791759,6.364407,0,0,0,0,0,0,77.3,9.60747,1.791759,5.784989,1 +11,3,0,1,4,325177,0,14874.49,20.577,1,13,1,28.82398,0,0,0,0,28.82398,0,0,0,1,0,6,76.6,3.4,0,77.3,0,580.8,0,0,1.791759,6.364407,0,0,0,0,0,0,77.3,9.60747,1.791759,3.361208,1 +11,3,0,1,5,325177,0,14874.49,21.577,1,13,1,17.56235,6.28732,0,0,0,23.84967,0,0,0,2,0,6,76.6,3.4,0,77.3,0,580.8,0,0,1.791759,6.364407,0,0,0,0,0,0,77.3,9.60747,1.791759,3.17177,1 +11,3,0,1,1,325178,0,14874.49,40.6872,0,13,1,105.1619,0,12.29757,0,0,117.4595,0,0,0,5,0,6,90.4,6.9,0,80.7,0,580.8,0,0,1.791759,6.364407,0,0,0,1,0,0,80.7,9.60747,1.791759,4.766094,1 +11,3,0,1,2,325178,0,14874.49,41.6872,0,13,1,86.24709,0,0,0,0,86.24709,0,0,0,2,7,6,90.4,6.9,0,80.7,0,580.8,0,0,1.791759,6.364407,0,0,0,1,0,0,80.7,9.60747,1.791759,4.457216,1 +11,3,0,1,3,325178,0,14874.49,42.6872,0,13,1,317.6571,3.142369,0,0,0,320.7995,0,0,0,2,4,6,90.4,6.9,0,80.7,0,580.8,0,0,1.791759,6.364407,0,0,0,1,0,0,80.7,9.60747,1.791759,5.770816,1 +11,3,0,1,4,325178,0,14874.49,43.6872,0,13,1,15.37279,1.691007,0,0,0,17.0638,0,0,0,0,0,6,90.4,6.9,0,80.7,0,580.8,0,0,1.791759,6.364407,0,0,0,1,0,0,80.7,9.60747,1.791759,2.836959,1 +11,3,0,1,5,325178,0,14874.49,44.6872,0,13,1,39.58553,4.109589,0,0,0,43.69512,0,0,0,2,1,6,90.4,6.9,0,80.7,0,580.8,0,0,1.791759,6.364407,0,0,0,1,0,0,80.7,9.60747,1.791759,3.777236,1 +11,3,0,1,1,325179,0,14874.49,15.14579,0,13,1,29.8583,0,0,0,0,29.8583,0,0,0,2,0,6,83.5,0,0,81.8,0,580.8,1,0,1.791759,6.364407,0,0,0,1,0,0,81.8,9.60747,1.791759,3.396463,1 +11,3,0,1,2,325179,0,14874.49,16.14579,0,13,1,33.10023,0,0,0,0,33.10023,0,0,0,0,0,6,83.5,0,0,81.8,0,580.8,1,0,1.791759,6.364407,0,0,0,1,0,0,81.8,9.60747,1.791759,3.49954,1 +11,3,0,1,3,325179,0,14874.49,17.14579,0,13,1,15.39119,1.154339,0,0,0,16.54553,0,0,0,3,0,6,83.5,0,0,81.8,0,580.8,1,0,1.791759,6.364407,0,0,0,1,0,0,81.8,9.60747,1.791759,2.806116,1 +11,3,0,1,4,325179,0,14874.49,18.14579,0,13,1,7.686395,0,23.82783,0,0,31.51422,0,0,0,1,0,6,83.5,0,0,81.8,0,580.8,0,0,1.791759,6.364407,0,0,0,1,0,0,81.8,9.60747,1.791759,3.450439,1 +11,3,0,1,5,325179,0,14874.49,19.14579,0,13,1,209.1359,4.741834,0,0,2571.408,2785.286,1,0,0,9,6,6,83.5,0,0,81.8,0,580.8,0,0,1.791759,6.364407,0,0,0,1,0,0,81.8,9.60747,1.791759,7.932106,1 +11,3,0,1,1,325180,0,14874.49,39.75633,1,13,1,22.9251,0,0,0,0,22.9251,0,0,0,1,0,6,79.8,6.9,0,79.5,0,580.8,0,0,1.791759,6.364407,0,0,0,1,0,0,79.5,9.60747,1.791759,3.132232,1 +11,3,0,1,2,325180,0,14874.49,40.75633,1,13,1,72.26107,3.379953,0,0,0,75.64103,0,0,0,2,0,6,79.8,6.9,0,79.5,0,580.8,0,0,1.791759,6.364407,0,0,0,1,0,0,79.5,9.60747,1.791759,4.325999,1 +11,3,0,1,3,325180,0,14874.49,41.75633,1,13,1,513.8606,0,0,0,0,513.8606,0,0,0,9,0,6,79.8,6.9,0,79.5,0,580.8,0,0,1.791759,6.364407,0,0,0,1,0,0,79.5,9.60747,1.791759,6.241952,1 +11,3,0,1,4,325180,0,14874.49,42.75633,1,13,1,26.09531,2.075327,27.67102,0,0,55.84166,0,0,0,3,0,6,79.8,6.9,0,79.5,0,580.8,0,0,1.791759,6.364407,0,0,0,1,0,0,79.5,9.60747,1.791759,4.02252,1 +11,3,0,1,5,325180,0,14874.49,43.75633,1,13,1,109.308,1.545486,0,0,0,110.8535,0,0,0,8,0,6,79.8,6.9,0,79.5,0,580.8,0,0,1.791759,6.364407,0,0,0,1,0,0,79.5,9.60747,1.791759,4.70821,1 +15,3,95,0,1,325234,0,1703.226,26.45311,1,9,1,815.7237,10.06579,3.415992,0,0,829.2054,0,0,0,11,0,2,64.4,0,0,96.6,0,0,0,0,.6931472,0,0,4.564348,0,1,0,0,96.6,7.440866,.6931472,6.720468,1 +15,3,95,0,2,325234,0,1703.226,27.45311,1,9,1,418.1911,31.9627,0,0,0,450.1538,0,0,0,6,1,2,64.4,0,0,96.6,0,0,0,0,.6931472,0,0,4.564348,0,1,0,0,96.6,7.440866,.6931472,6.10959,1 +15,3,95,0,3,325234,0,1703.226,28.45311,1,9,1,91.32108,5.173151,4.232578,0,0,100.7268,0,0,0,2,0,2,64.4,0,0,96.6,0,0,0,0,.6931472,0,0,4.564348,0,1,0,0,96.6,7.440866,.6931472,4.612412,1 +13,3,0,1,1,325249,0,6451.026,51.49076,1,12,1,21.71087,39.31357,0,0,0,61.02444,0,0,0,1,1,1,76.6,13.8,0,80.7,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,80.7,8.772149,0,4.111274,1 +13,3,0,1,2,325249,0,6451.026,52.49076,1,12,1,32.96703,36.88485,31.53368,0,0,101.3856,0,0,0,3,1,1,76.6,13.8,0,80.7,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,80.7,8.772149,0,4.618931,1 +13,3,0,1,3,325249,0,6451.026,53.49076,1,12,1,20.50044,39.99122,0,0,0,60.49166,0,0,0,2,0,1,76.6,13.8,0,80.7,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,80.7,8.772149,0,4.102506,1 +16,3,95,1,1,325285,0,10750.15,17.23477,0,10,1,28.85111,0,0,0,0,28.85111,0,0,0,2,0,3,67.6,0,0,78.4,1000,1000,1,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,78.4,9.282767,1.098612,3.362149,1 +16,3,95,1,2,325285,0,10750.15,18.23477,0,10,1,25.75758,0,0,0,0,25.75758,0,0,0,1,0,3,67.6,0,0,78.4,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,78.4,9.282767,1.098612,3.248729,1 +16,3,95,1,3,325285,0,10750.15,19.23477,0,10,1,3.467707,0,0,0,0,3.467707,0,0,0,1,0,3,67.6,0,0,78.4,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,78.4,9.282767,1.098612,1.243494,1 +16,3,95,1,1,325286,0,10750.15,49.27036,0,12,1,1264.379,107.5374,0,0,0,1371.917,0,0,0,52,0,3,67,13.8,0,63.6,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,63.6,9.282767,1.098612,7.223964,1 +16,3,95,1,2,325286,0,10750.15,50.27036,0,12,1,633.357,68.71212,18.93939,0,0,721.0085,0,0,0,18,1,3,67,13.8,0,63.6,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,63.6,9.282767,1.098612,6.580651,1 +16,3,95,1,3,325286,0,10750.15,51.27036,0,12,1,367.3602,0,0,0,0,367.3602,0,0,0,2,0,3,67,13.8,0,63.6,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,63.6,9.282767,1.098612,5.906343,1 +16,3,95,1,1,325287,0,10750.15,43.75359,1,10,1,12.87996,0,0,0,0,12.87996,0,0,0,2,0,3,73.4,10.3,0,78.4,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,78.4,9.282767,1.098612,2.555673,1 +16,3,95,1,2,325287,0,10750.15,44.75359,1,10,1,105.1136,0,21.30682,0,606.4631,732.8835,1,0,0,3,1,3,73.4,10.3,0,78.4,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,78.4,9.282767,1.098612,6.596987,1 +16,3,95,1,3,325287,0,10750.15,45.75359,1,10,1,0,0,0,0,0,0,0,0,0,0,0,3,73.4,10.3,0,78.4,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,78.4,9.282767,1.098612,,0 +11,3,0,0,1,325288,0,4713.196,32.7666,1,12,1,0,0,0,0,0,0,0,0,0,0,0,7,77.7,24.1,0,69.3,0,763.2,0,0,1.94591,6.63752,0,0,0,0,0,0,69.3,8.458334,1.94591,,0 +11,3,0,0,2,325288,0,4713.196,33.7666,1,12,1,52.03938,0,0,0,0,52.03938,0,0,0,1,2,7,77.7,24.1,0,69.3,0,763.2,0,0,1.94591,6.63752,0,0,0,0,0,0,69.3,8.458334,1.94591,3.952001,1 +11,3,0,0,3,325288,0,4713.196,34.7666,1,12,1,0,0,0,0,0,0,0,0,0,0,0,7,77.7,24.1,0,69.3,0,763.2,0,0,1.94591,6.63752,0,0,0,0,0,0,69.3,8.458334,1.94591,,0 +11,3,0,0,4,325288,0,4713.196,35.7666,1,12,1,0,0,0,0,0,0,0,0,0,0,0,7,77.7,24.1,0,69.3,0,763.2,0,0,1.94591,6.63752,0,0,0,0,0,0,69.3,8.458334,1.94591,,0 +11,3,0,0,5,325288,0,4713.196,36.7666,1,12,1,25.56617,7.342534,0,0,0,32.90871,0,0,0,2,0,7,77.7,24.1,0,69.3,0,763.2,0,0,1.94591,6.63752,0,0,0,0,0,0,69.3,8.458334,1.94591,3.493737,1 +11,3,0,0,1,325289,0,4713.196,12.91444,0,12,1,12.25741,0,0,0,0,12.25741,0,0,0,2,0,7,85,9.967326,1,81.5,0,763.2,1,0,1.94591,6.63752,0,0,0,0,0,0,81.5,8.458334,1.94591,2.50613,1 +11,3,0,0,2,325289,0,4713.196,13.91444,0,12,1,5.157056,0,0,0,0,5.157056,0,0,0,1,0,7,85,9.967326,1,81.5,0,763.2,1,0,1.94591,6.63752,0,0,0,0,0,0,81.5,8.458334,1.94591,1.640366,1 +11,3,0,0,3,325289,0,4713.196,14.91444,0,12,1,112.4678,0,0,0,0,112.4678,0,0,0,4,0,7,85,9.967326,1,81.5,0,763.2,1,0,1.94591,6.63752,0,0,0,0,0,0,81.5,8.458334,1.94591,4.722667,1 +11,3,0,0,4,325289,0,4713.196,15.91444,0,12,1,114.7732,0,0,0,0,114.7732,0,0,0,8,0,7,85,9.967326,1,81.5,0,763.2,1,0,1.94591,6.63752,0,0,0,0,0,0,81.5,8.458334,1.94591,4.742958,1 +11,3,0,0,5,325289,0,4713.196,16.91444,0,12,1,19.10828,6.620665,0,0,0,25.72894,0,0,0,3,0,7,85,9.967326,1,81.5,0,763.2,1,0,1.94591,6.63752,0,0,0,0,0,0,81.5,8.458334,1.94591,3.247617,1 +11,3,0,0,1,325290,0,4713.196,34.8282,0,12,1,0,0,0,0,0,0,0,0,0,0,0,7,78.7,10.3,0,70.5,0,763.2,0,0,1.94591,6.63752,0,0,0,1,0,0,70.5,8.458334,1.94591,,0 +11,3,0,0,2,325290,0,4713.196,35.8282,0,12,1,16.12752,4.664792,0,0,0,20.79231,0,0,0,1,0,7,78.7,10.3,0,70.5,0,763.2,0,0,1.94591,6.63752,0,0,0,1,0,0,70.5,8.458334,1.94591,3.034583,1 +11,3,0,0,3,325290,0,4713.196,36.8282,0,12,1,0,0,0,0,0,0,0,0,0,0,0,7,78.7,10.3,0,70.5,0,763.2,0,0,1.94591,6.63752,0,0,0,1,0,0,70.5,8.458334,1.94591,,0 +11,3,0,0,4,325290,0,4713.196,37.8282,0,12,1,0,19.23226,0,0,0,19.23226,0,0,0,0,0,7,78.7,10.3,0,70.5,0,763.2,0,0,1.94591,6.63752,0,0,0,1,0,0,70.5,8.458334,1.94591,2.956589,1 +11,3,0,0,5,325290,0,4713.196,38.8282,0,12,1,0,0,0,0,0,0,0,0,0,0,0,7,78.7,10.3,0,70.5,0,763.2,0,0,1.94591,6.63752,0,0,0,1,0,0,70.5,8.458334,1.94591,,0 +11,3,0,0,1,325291,0,4713.196,9.292266,0,12,1,0,0,0,0,0,0,0,0,0,0,0,7,83.3,9.967326,0,85.2,0,763.2,1,0,1.94591,6.63752,0,0,0,0,0,0,85.2,8.458334,1.94591,,0 +11,3,0,0,2,325291,0,4713.196,10.29227,0,12,1,5.157056,0,0,0,0,5.157056,0,0,0,1,0,7,83.3,9.967326,0,85.2,0,763.2,1,0,1.94591,6.63752,0,0,0,0,0,0,85.2,8.458334,1.94591,1.640366,1 +11,3,0,0,3,325291,0,4713.196,11.29227,0,12,1,21.79708,11.80138,0,0,330.9716,364.5701,1,0,0,2,0,7,83.3,9.967326,0,85.2,0,763.2,1,0,1.94591,6.63752,0,0,0,0,0,0,85.2,8.458334,1.94591,5.898719,1 +11,3,0,0,4,325291,0,4713.196,12.29227,0,12,1,0,6.746801,0,0,0,6.746801,0,0,0,0,0,7,83.3,9.967326,0,85.2,0,763.2,1,0,1.94591,6.63752,0,0,0,0,0,0,85.2,8.458334,1.94591,1.909068,1 +11,3,0,0,5,325291,0,4713.196,13.29227,0,12,1,0,7.430998,0,0,0,7.430998,0,0,0,0,0,7,83.3,9.967326,0,85.2,0,763.2,1,0,1.94591,6.63752,0,0,0,0,0,0,85.2,8.458334,1.94591,2.00566,1 +11,3,0,0,1,325292,0,4713.196,7.104723,0,12,1,6.128703,0,0,0,0,6.128703,0,0,0,1,0,7,91.7,9.967326,0,96.3,0,763.2,1,0,1.94591,6.63752,0,0,0,0,0,0,96.3,8.458334,1.94591,1.812983,1 +11,3,0,0,2,325292,0,4713.196,8.104723,0,12,1,5.157056,0,0,0,0,5.157056,0,0,0,1,0,7,91.7,9.967326,0,96.3,0,763.2,1,0,1.94591,6.63752,0,0,0,0,0,0,96.3,8.458334,1.94591,1.640366,1 +11,3,0,0,3,325292,0,4713.196,9.104723,0,12,1,0,2.042132,0,0,0,2.042132,0,0,0,0,0,7,91.7,9.967326,0,96.3,0,763.2,1,0,1.94591,6.63752,0,0,0,0,0,0,96.3,8.458334,1.94591,.7139946,1 +11,3,0,0,4,325292,0,4713.196,10.10472,0,12,1,5.816208,0,0,0,0,5.816208,0,0,0,1,0,7,91.7,9.967326,0,96.3,0,763.2,1,0,1.94591,6.63752,0,0,0,0,0,0,96.3,8.458334,1.94591,1.760648,1 +11,3,0,0,5,325292,0,4713.196,11.10472,0,12,1,0,0,0,0,0,0,0,0,0,0,0,7,91.7,9.967326,0,96.3,0,763.2,1,0,1.94591,6.63752,0,0,0,0,0,0,96.3,8.458334,1.94591,,0 +11,3,0,0,1,325293,0,4713.196,11.96715,0,12,1,47.26762,0,0,0,0,47.26762,0,0,0,3,0,7,86.7,9.967326,0,88.9,0,763.2,1,0,1.94591,6.63752,0,0,0,0,0,0,88.9,8.458334,1.94591,3.855825,1 +11,3,0,0,2,325293,0,4713.196,12.96715,0,12,1,5.157056,0,0,0,0,5.157056,0,0,0,1,0,7,86.7,9.967326,0,88.9,0,763.2,1,0,1.94591,6.63752,0,0,0,0,0,0,88.9,8.458334,1.94591,1.640366,1 +11,3,0,0,3,325293,0,4713.196,13.96715,0,12,1,141.0146,6.620808,0,0,0,147.6354,0,0,0,3,0,7,86.7,9.967326,0,88.9,0,763.2,1,0,1.94591,6.63752,0,0,0,0,0,0,88.9,8.458334,1.94591,4.994746,1 +11,3,0,0,4,325293,0,4713.196,14.96715,0,12,1,5.816208,0,0,0,0,5.816208,0,0,0,1,0,7,86.7,9.967326,0,88.9,0,763.2,1,0,1.94591,6.63752,0,0,0,0,0,0,88.9,8.458334,1.94591,1.760648,1 +11,3,0,0,5,325293,0,4713.196,15.96715,0,12,1,61.21727,0,0,0,0,61.21727,0,0,0,3,0,7,86.7,9.967326,0,88.9,0,763.2,1,0,1.94591,6.63752,0,0,0,0,0,0,88.9,8.458334,1.94591,4.114429,1 +11,3,0,0,1,325294,0,4713.196,2.956879,1,12,1,12.25741,8.19714,0,0,0,20.45455,0,0,0,2,0,7,83.39137,9.967326,0,100,0,763.2,1,1,1.94591,6.63752,0,0,0,0,0,0,100,8.458334,1.94591,3.018205,1 +11,3,0,0,2,325294,0,4713.196,3.956879,1,12,1,51.10173,6.071261,0,0,0,57.173,0,0,0,3,0,7,83.39137,9.967326,0,100,0,763.2,1,1,1.94591,6.63752,0,0,0,0,0,0,100,8.458334,1.94591,4.046082,1 +11,3,0,0,3,325294,0,4713.196,4.956879,1,12,1,0,1.827171,0,0,0,1.827171,0,0,0,0,0,7,83.39137,9.967326,0,100,0,763.2,1,1,1.94591,6.63752,0,0,0,0,0,0,100,8.458334,1.94591,.6027689,1 +11,3,0,0,4,325294,0,4713.196,5.956879,1,12,1,0,0,0,0,0,0,0,0,0,0,0,7,83.39137,9.967326,0,100,0,763.2,1,1,1.94591,6.63752,0,0,0,0,0,0,100,8.458334,1.94591,,0 +11,3,0,0,5,325294,0,4713.196,6.956879,1,12,1,7.077141,1.751592,0,0,0,8.828733,0,0,0,2,0,7,83.39137,9.967326,0,100,0,763.2,1,1,1.94591,6.63752,0,0,0,0,0,0,100,8.458334,1.94591,2.178012,1 +10,3,50,1,1,325320,0,6108.082,1.448323,0,12,1,44.77379,9.417577,0,0,0,54.19137,0,0,0,4,0,3,83.39137,9.967326,0,96.3,1000,520,1,0,1.098612,6.253829,0,3.931826,7.600903,0,0,0,96.3,8.717532,1.098612,3.992522,1 +10,3,50,1,2,325320,0,6108.082,2.448323,0,12,1,37.41042,.9460105,0,0,0,38.35643,0,0,0,3,0,4,83.39137,9.967326,0,96.3,1000,520,1,0,1.386294,6.253829,0,3.931826,7.600903,0,0,0,96.3,8.717532,1.386294,3.646922,1 +10,3,50,1,3,325320,0,6108.082,3.448323,0,12,1,15.36436,0,0,0,0,15.36436,0,0,0,1,1,4,83.39137,9.967326,0,96.3,1000,520,1,0,1.386294,6.253829,0,3.931826,7.600903,0,0,0,96.3,8.717532,1.386294,2.73205,1 +10,3,50,1,1,325321,0,6108.082,28.44627,0,15,1,52.65211,3.74935,0,0,0,56.40145,0,0,0,2,0,3,79.3,3.4,0,73.9,1000,520,0,0,1.098612,6.253829,0,3.931826,7.600903,0,0,0,73.9,8.717532,1.098612,4.032495,1 +10,3,50,1,2,325321,0,6108.082,29.44627,0,15,1,0,0,0,0,0,0,0,0,0,0,0,4,79.3,3.4,0,73.9,1000,520,0,0,1.386294,6.253829,0,3.931826,7.600903,0,0,0,73.9,8.717532,1.386294,,0 +10,3,50,1,3,325321,0,6108.082,30.44627,0,15,1,0,4.012291,0,0,0,4.012291,0,0,0,0,0,4,79.3,3.4,0,73.9,1000,520,0,0,1.386294,6.253829,0,3.931826,7.600903,0,0,0,73.9,8.717532,1.386294,1.389362,1 +10,3,50,1,1,325322,0,6108.082,26.17659,1,12,1,2.75611,0,0,0,532.1893,534.9454,1,0,0,0,0,3,89.9,0,0,92,1000,520,0,0,1.098612,6.253829,0,3.931826,7.600903,0,0,0,92,8.717532,1.098612,6.282165,1 +10,3,50,1,2,325322,0,6108.082,27.17659,1,12,1,10.98901,13.76493,0,0,0,24.75394,0,0,0,1,0,4,89.9,0,0,92,1000,520,0,0,1.386294,6.253829,0,3.931826,7.600903,0,0,0,92,8.717532,1.386294,3.208985,1 +10,3,50,1,3,325322,0,6108.082,28.17659,1,12,1,130.9482,6.404741,0,0,0,137.3529,0,0,0,4,1,4,89.9,0,0,92,1000,520,0,0,1.386294,6.253829,0,3.931826,7.600903,0,0,0,92,8.717532,1.386294,4.922554,1 +11,3,0,1,1,325338,0,5849.267,27.73443,1,12,1,121.0716,11.72076,25.75992,0,0,158.5523,0,0,0,2,1,3,64.9,10.3,0,72.7,0,449.04,0,0,1.098612,6.107112,0,0,0,1,0,0,72.7,8.674243,1.098612,5.066084,1 +11,3,0,1,2,325338,0,5849.267,28.73443,1,12,1,97.91666,19.05777,13.73106,0,0,130.7055,0,0,0,5,1,3,64.9,10.3,0,72.7,0,449.04,0,0,1.098612,6.107112,0,0,0,1,0,0,72.7,8.674243,1.098612,4.872947,1 +11,3,0,1,3,325338,0,5849.267,29.73443,1,12,1,140.4421,27.2215,0,0,1250.884,1418.548,1,0,0,9,0,3,64.9,10.3,0,72.7,0,449.04,0,0,1.098612,6.107112,0,0,0,1,0,0,72.7,8.674243,1.098612,7.257389,1 +11,3,0,1,1,325339,0,5849.267,2.735113,1,12,1,104.8429,14.60587,0,0,0,119.4487,0,0,0,7,1,3,83.39137,9.967326,0,66.7,0,449.04,1,1,1.098612,6.107112,0,0,0,1,0,0,66.7,8.674243,1.098612,4.782887,1 +11,3,0,1,2,325339,0,5849.267,3.735113,1,12,1,49.24242,20.24148,0,0,0,69.4839,0,0,0,3,0,3,83.39137,9.967326,0,66.7,0,449.04,1,1,1.098612,6.107112,0,0,0,1,0,0,66.7,8.674243,1.098612,4.241095,1 +11,3,0,1,3,325339,0,5849.267,4.735113,1,12,1,25.57434,9.189424,0,0,0,34.76376,0,0,0,4,0,3,83.39137,9.967326,0,66.7,0,449.04,1,1,1.098612,6.107112,0,0,0,1,0,0,66.7,8.674243,1.098612,3.548576,1 +11,3,0,1,1,325340,0,5849.267,27.00616,0,12,1,87.58372,0,29.10871,0,0,116.6924,0,0,0,1,1,3,77.1,6.9,0,67,0,449.04,0,0,1.098612,6.107112,0,0,0,1,0,0,67,8.674243,1.098612,4.759542,1 +11,3,0,1,2,325340,0,5849.267,28.00616,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,77.1,6.9,0,67,0,449.04,0,0,1.098612,6.107112,0,0,0,1,0,0,67,8.674243,1.098612,,0 +11,3,0,1,3,325340,0,5849.267,29.00616,0,12,1,26.0078,.9752926,27.52492,0,0,54.50802,0,0,0,1,1,3,77.1,6.9,0,67,0,449.04,0,0,1.098612,6.107112,0,0,0,1,0,0,67,8.674243,1.098612,3.998348,1 +13,3,0,1,1,325366,0,6782.991,4.95551,0,12,1,16.48635,1.416795,0,0,0,17.90314,0,0,0,2,0,4,83.39137,9.967326,0,92.6,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,92.6,8.822321,1.386294,2.884976,1 +13,3,0,1,2,325366,0,6782.991,5.95551,0,12,1,7.102273,0,0,0,0,7.102273,0,0,0,1,0,4,83.39137,9.967326,0,92.6,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,92.6,8.822321,1.386294,1.960415,1 +13,3,0,1,3,325366,0,6782.991,6.95551,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,83.39137,9.967326,0,92.6,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,92.6,8.822321,1.386294,,0 +13,3,0,1,1,325367,0,6782.991,6.841889,1,12,1,28.23287,0,0,0,0,28.23287,0,0,0,0,0,4,81.7,9.967326,0,74.1,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,74.1,8.822321,1.386294,3.340487,1 +13,3,0,1,2,325367,0,6782.991,7.841889,1,12,1,6.155303,1.529356,0,0,0,7.684659,0,0,0,1,0,4,81.7,9.967326,0,74.1,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,74.1,8.822321,1.386294,2.039226,1 +13,3,0,1,3,325367,0,6782.991,8.841889,1,12,1,37.71132,0,0,0,0,37.71132,0,0,0,0,0,4,81.7,9.967326,0,74.1,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,74.1,8.822321,1.386294,3.62996,1 +13,3,0,1,1,325368,0,6782.991,30.423,1,12,1,10.30397,0,0,0,0,10.30397,0,0,0,2,0,4,59,20.7,0,53.4,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,53.4,8.822321,1.386294,2.332529,1 +13,3,0,1,2,325368,0,6782.991,31.423,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,59,20.7,0,53.4,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,53.4,8.822321,1.386294,,0 +13,3,0,1,3,325368,0,6782.991,32.423,1,12,1,46.81404,0,0,0,0,46.81404,0,0,0,3,0,4,59,20.7,0,53.4,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,53.4,8.822321,1.386294,3.846183,1 +13,3,0,1,1,325369,0,6782.991,29.10335,0,12,1,44.14219,4.574961,0,0,0,48.71716,0,0,0,3,0,4,51.6,6.9,0,68.2,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,68.2,8.822321,1.386294,3.886031,1 +13,3,0,1,2,325369,0,6782.991,30.10335,0,12,1,50.18939,0,0,0,0,50.18939,0,0,0,2,0,4,51.6,6.9,0,68.2,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,68.2,8.822321,1.386294,3.915804,1 +13,3,0,1,3,325369,0,6782.991,31.10335,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,51.6,6.9,0,68.2,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,68.2,8.822321,1.386294,,0 +5,3,25,0,1,325393,0,14302.64,37.12252,0,9,1,13.91036,1.442555,0,0,0,15.35291,0,0,0,2,0,6,81.9,6.9,0,86.4,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,86.4,9.56827,1.791759,2.731305,1 +5,3,25,0,2,325393,0,14302.64,38.12252,0,9,1,0,2.225379,0,0,0,2.225379,0,0,0,0,0,6,81.9,6.9,0,86.4,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,86.4,9.56827,1.791759,.7999271,1 +5,3,25,0,3,325393,0,14302.64,39.12252,0,9,1,431.7902,4.291287,0,0,0,436.0815,0,0,0,1,0,6,81.9,6.9,0,86.4,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,86.4,9.56827,1.791759,6.077829,1 +5,3,25,0,1,325394,0,14302.64,15.41958,1,12,1,10.30397,0,0,0,0,10.30397,0,0,0,1,0,6,64.9,6.9,0,85.2,750,750,1,1,1.791759,6.620073,0,3.258096,8.006368,0,0,0,85.2,9.56827,1.791759,2.332529,1 +5,3,25,0,2,325394,0,14302.64,16.41957,1,12,1,7.102273,1.609848,0,0,0,8.712121,0,0,0,1,0,6,64.9,6.9,0,85.2,750,750,1,1,1.791759,6.620073,0,3.258096,8.006368,0,0,0,85.2,9.56827,1.791759,2.164715,1 +5,3,25,0,3,325394,0,14302.64,17.41957,1,12,1,6.501951,2.340702,0,0,0,8.842652,0,0,0,1,0,6,64.9,6.9,0,85.2,750,750,1,1,1.791759,6.620073,0,3.258096,8.006368,0,0,0,85.2,9.56827,1.791759,2.179587,1 +5,3,25,0,1,325395,0,14302.64,35.85763,1,12,1,23.18393,2.472952,28.85111,0,0,54.50798,0,0,0,3,0,6,71.8,10.3,0,86.4,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,86.4,9.56827,1.791759,3.998347,1 +5,3,25,0,2,325395,0,14302.64,36.85763,1,12,1,51.01799,2.272727,13.25758,0,0,66.54829,0,0,0,4,0,6,71.8,10.3,0,86.4,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,86.4,9.56827,1.791759,4.197928,1 +5,3,25,0,3,325395,0,14302.64,37.85763,1,12,1,65.6697,15.69137,33.15995,0,0,114.521,0,0,0,4,0,6,71.8,10.3,0,86.4,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,86.4,9.56827,1.791759,4.740758,1 +5,3,25,0,1,325396,0,14302.64,6.069815,0,12,1,48.42865,1.081917,0,0,0,49.51056,0,0,0,3,0,6,96.7,9.967326,0,88.9,750,750,1,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,88.9,9.56827,1.791759,3.902186,1 +5,3,25,0,2,325396,0,14302.64,7.069815,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,96.7,9.967326,0,88.9,750,750,1,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,88.9,9.56827,1.791759,,0 +5,3,25,0,3,325396,0,14302.64,8.069816,0,12,1,7.802341,4.421326,0,0,0,12.22367,0,0,0,1,0,6,96.7,9.967326,0,88.9,750,750,1,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,88.9,9.56827,1.791759,2.503374,1 +5,3,25,0,1,325397,0,14302.64,4.73922,0,12,1,11.84956,6.697578,0,0,0,18.54714,0,0,0,2,0,6,83.39137,9.967326,0,85.2,750,750,1,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,85.2,9.56827,1.791759,2.920316,1 +5,3,25,0,2,325397,0,14302.64,5.73922,0,12,1,171.1884,0,7.575758,0,0,178.7642,0,0,0,3,1,6,83.39137,9.967326,0,85.2,750,750,1,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,85.2,9.56827,1.791759,5.186068,1 +5,3,25,0,3,325397,0,14302.64,6.73922,0,12,1,7.802341,0,0,0,0,7.802341,0,0,0,1,0,6,83.39137,9.967326,0,85.2,750,750,1,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,85.2,9.56827,1.791759,2.054424,1 +5,3,25,0,1,325398,0,14302.64,12.62149,0,12,1,23.10149,4.430706,28.33591,0,0,55.86811,0,0,0,2,0,6,81.7,9.967326,0,63,750,750,1,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,63,9.56827,1.791759,4.022994,1 +5,3,25,0,2,325398,0,14302.64,13.62149,0,12,1,9.469697,0,27.46212,0,0,36.93182,0,0,0,1,0,6,81.7,9.967326,0,63,750,750,1,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,63,9.56827,1.791759,3.609073,1 +5,3,25,0,3,325398,0,14302.64,14.62149,0,12,1,7.802341,0,0,0,0,7.802341,0,0,0,1,0,6,81.7,9.967326,0,63,750,750,1,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,63,9.56827,1.791759,2.054424,1 +10,3,50,1,1,325409,0,7415.836,55.00068,0,12,1,20.28081,0,0,0,0,20.28081,0,0,0,1,0,2,87.8,3.4,0,90.9,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,90.9,8.911508,.6931472,3.009675,1 +10,3,50,1,2,325409,0,7415.836,56.00068,0,12,1,42.23602,0,0,0,0,42.23602,0,0,0,3,0,2,87.8,3.4,0,90.9,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,90.9,8.911508,.6931472,3.743273,1 +10,3,50,1,3,325409,0,7415.836,57.00068,0,12,1,29.85075,0,29.41176,0,0,59.26251,0,0,0,1,1,2,87.8,3.4,0,90.9,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,90.9,8.911508,.6931472,4.081977,1 +10,3,50,1,1,325410,0,7415.836,50.88296,1,9,1,42.12169,0,0,0,0,42.12169,0,0,0,4,0,2,52.1,31,0,63.6,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,63.6,8.911508,.6931472,3.740563,1 +10,3,50,1,2,325410,0,7415.836,51.88296,1,9,1,78.35642,0,36.31152,0,0,114.6679,0,0,0,6,1,2,52.1,31,0,63.6,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,63.6,8.911508,.6931472,4.742041,1 +10,3,50,1,3,325410,0,7415.836,52.88296,1,9,1,59.70149,0,0,0,0,59.70149,0,0,0,5,0,2,52.1,31,0,63.6,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,63.6,8.911508,.6931472,4.089357,1 +14,3,95,0,1,325411,0,1652.199,60.13142,1,6,1,51.00464,8.114374,31.9423,0,0,91.06131,0,0,0,5,1,1,85.1,13.8,0,78.4,136.85,136.85,0,0,0,4.918885,0,4.564348,4.970179,1,0,0,78.4,7.410468,0,4.511533,1 +14,3,95,0,2,325411,0,1652.199,61.13142,1,6,1,33.61742,11.31629,0,0,0,44.93371,0,0,0,4,0,1,85.1,13.8,0,78.4,136.85,136.85,0,0,0,4.918885,0,4.564348,4.970179,1,0,0,78.4,7.410468,0,3.805188,1 +14,3,95,0,3,325411,0,1652.199,62.13142,1,6,1,26.44127,2.275683,0,0,0,28.71695,0,0,0,2,0,1,85.1,13.8,0,78.4,136.85,136.85,0,0,0,4.918885,0,4.564348,4.970179,1,0,0,78.4,7.410468,0,3.357487,1 +16,3,95,1,1,325415,0,9304.985,33.94661,0,18,1,31.4271,0,0,0,0,31.4271,0,0,0,1,1,4,69.1,13.8,0,56.8,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,56.8,9.138413,1.386294,3.44767,1 +16,3,95,1,2,325415,0,9304.985,34.94661,0,18,1,8.522727,0,0,0,0,8.522727,0,0,0,1,0,4,69.1,13.8,0,56.8,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,56.8,9.138413,1.386294,2.142736,1 +16,3,95,1,3,325415,0,9304.985,35.94661,0,18,1,0,0,0,0,0,0,0,0,0,0,0,4,69.1,13.8,0,56.8,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,56.8,9.138413,1.386294,,0 +16,3,95,1,1,325416,0,9304.985,7.74538,0,16,1,6.18238,10.38125,0,0,0,16.56363,0,0,0,1,0,4,85,9.967326,0,77.8,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,77.8,9.138413,1.386294,2.807209,1 +16,3,95,1,2,325416,0,9304.985,8.745379,0,16,1,5.681818,13.35227,0,0,0,19.03409,0,0,0,1,0,4,85,9.967326,0,77.8,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,77.8,9.138413,1.386294,2.946232,1 +16,3,95,1,3,325416,0,9304.985,9.745379,0,16,1,0,1.946251,0,0,0,1.946251,0,0,0,0,0,4,85,9.967326,0,77.8,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,77.8,9.138413,1.386294,.6659048,1 +16,3,95,1,1,325417,0,9304.985,9.314168,0,16,1,0,4.070067,0,0,0,4.070067,0,0,0,0,0,4,85,9.967326,0,92.6,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,92.6,9.138413,1.386294,1.403659,1 +16,3,95,1,2,325417,0,9304.985,10.31417,0,16,1,26.04167,2.34375,1.515152,0,0,29.90057,0,0,0,1,0,4,85,9.967326,0,92.6,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,92.6,9.138413,1.386294,3.397877,1 +16,3,95,1,3,325417,0,9304.985,11.31417,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,85,9.967326,0,92.6,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,92.6,9.138413,1.386294,,0 +16,3,95,1,1,325418,0,9304.985,33.02943,1,16,1,125.1932,0,0,0,0,125.1932,0,0,0,6,0,4,73.4,13.8,0,68.2,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,68.2,9.138413,1.386294,4.829858,1 +16,3,95,1,2,325418,0,9304.985,34.02943,1,16,1,9.469697,0,0,0,0,9.469697,0,0,0,0,1,4,73.4,13.8,0,68.2,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,68.2,9.138413,1.386294,2.248097,1 +16,3,95,1,3,325418,0,9304.985,35.02943,1,16,1,9.536194,0,0,0,0,9.536194,0,0,0,1,0,4,73.4,13.8,0,68.2,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,68.2,9.138413,1.386294,2.255095,1 +11,3,0,1,1,325446,0,10994.72,27.34565,0,16,1,0,0,0,0,0,0,0,0,0,0,0,2,68.6,6.9,0,62.5,0,125.58,0,0,.6931472,4.832943,0,0,0,0,0,0,62.5,9.305262,.6931472,,0 +11,3,0,1,2,325446,0,10994.72,28.34565,0,16,1,0,0,0,0,0,0,0,0,0,0,0,2,68.6,6.9,0,62.5,0,125.58,0,0,.6931472,4.832943,0,0,0,0,0,0,62.5,9.305262,.6931472,,0 +11,3,0,1,3,325446,0,10994.72,29.34565,0,16,1,53.31599,0,28.17512,0,0,81.49111,0,0,0,1,1,3,68.6,6.9,0,62.5,0,125.58,0,0,1.098612,4.832943,0,0,0,0,0,0,62.5,9.305262,1.098612,4.400494,1 +11,3,0,1,1,325447,0,10994.72,23.24435,1,16,1,100.9789,16.43483,0,0,0,117.4137,0,0,0,7,0,2,80.3,10.3,0,70.5,0,125.58,0,0,.6931472,4.832943,0,0,0,0,0,0,70.5,9.305262,.6931472,4.765704,1 +11,3,0,1,2,325447,0,10994.72,24.24435,1,16,1,10.65341,0,0,0,814.7727,825.4261,1,0,0,1,0,2,80.3,10.3,0,70.5,0,125.58,0,0,.6931472,4.832943,0,0,0,0,0,0,70.5,9.305262,.6931472,6.7159,1 +11,3,0,1,3,325447,0,10994.72,25.24435,1,16,1,58.62592,0,0,0,0,58.62592,0,0,0,4,1,3,80.3,10.3,0,70.5,0,125.58,0,0,1.098612,4.832943,0,0,0,0,0,0,70.5,9.305262,1.098612,4.071177,1 +11,3,0,1,1,325452,0,2639.296,49.295,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,79.8,6.9,0,71.6,0,0,0,0,1.609438,0,0,0,0,0,0,0,71.6,7.878646,1.609438,,0 +11,3,0,1,2,325452,0,2639.296,50.295,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,79.8,6.9,0,71.6,0,0,0,0,1.386294,0,0,0,0,0,0,0,71.6,7.878646,1.386294,,0 +11,3,0,1,3,325452,0,2639.296,51.295,0,12,1,10.2608,0,32.49252,0,0,42.75331,0,0,0,0,1,4,79.8,6.9,0,71.6,0,0,0,0,1.386294,0,0,0,0,0,0,0,71.6,7.878646,1.386294,3.755447,1 +11,3,0,1,1,325453,0,2639.296,16.54757,0,12,1,46.10324,0,23.27935,0,0,69.38259,0,0,0,2,2,5,92,31,0,84.1,0,0,1,0,1.609438,0,0,0,0,1,0,0,84.1,7.878646,1.609438,4.239636,1 +11,3,0,1,2,325453,0,2639.296,17.54757,0,12,1,26.57343,1.300699,0,0,0,27.87413,0,0,0,1,0,4,92,31,0,84.1,0,0,1,0,1.386294,0,0,0,0,1,0,0,84.1,7.878646,1.386294,3.327699,1 +11,3,0,1,3,325453,0,2639.296,18.54757,0,12,1,75.75887,0,23.51432,0,0,99.27319,0,0,0,2,1,4,92,31,0,84.1,0,0,0,0,1.386294,0,0,0,0,1,0,0,84.1,7.878646,1.386294,4.597876,1 +11,3,0,1,1,325454,0,2639.296,13.16085,1,12,1,96.25506,1.012146,23.27935,0,0,120.5466,0,0,0,3,1,5,85,9.967326,0,70.4,0,0,1,1,1.609438,0,0,0,0,1,0,0,70.4,7.878646,1.609438,4.792036,1 +11,3,0,1,2,325454,0,2639.296,14.16085,1,12,1,115.1515,8.811189,5.268065,0,0,129.2308,0,0,0,7,0,4,85,9.967326,0,70.4,0,0,1,1,1.386294,0,0,0,0,1,0,0,70.4,7.878646,1.386294,4.8616,1 +11,3,0,1,3,325454,0,2639.296,15.16085,1,12,1,67.50748,15.90423,0,0,0,83.41171,0,0,0,2,0,4,85,9.967326,0,70.4,0,0,1,1,1.386294,0,0,0,0,1,0,0,70.4,7.878646,1.386294,4.423789,1 +11,3,0,1,1,325455,0,2639.296,45.4319,1,12,1,10.62753,0,39.47368,0,0,50.10122,0,0,0,0,1,5,81.4,6.9,0,85.2,0,0,0,0,1.609438,0,0,0,0,0,1,0,85.2,7.878646,1.609438,3.914045,1 +11,3,0,1,2,325455,0,2639.296,46.4319,1,12,1,72.26107,0,0,0,0,72.26107,0,0,0,2,0,4,81.4,6.9,0,85.2,0,0,0,0,1.386294,0,0,0,0,0,1,0,85.2,7.878646,1.386294,4.280285,1 +11,3,0,1,3,325455,0,2639.296,47.4319,1,12,1,69.6879,0,34.63018,0,0,104.3181,0,0,0,0,1,4,81.4,6.9,0,85.2,0,0,0,0,1.386294,0,0,0,0,0,1,0,85.2,7.878646,1.386294,4.647445,1 +13,3,0,0,1,325456,0,2691.496,57.40452,1,6,1,24.4204,11.97836,0,0,0,36.39876,0,0,0,1,0,1,81.9,17.2,0,78.4,150,161.4,0,0,0,5.083886,1,4.564348,5.061929,1,0,0,78.4,7.898224,0,3.594535,1 +13,3,0,0,2,325456,0,2691.496,58.40452,1,6,1,37.4053,6.155303,0,0,0,43.56061,0,0,0,2,0,1,81.9,17.2,0,78.4,150,161.4,0,0,0,5.083886,1,4.564348,5.061929,1,0,0,78.4,7.898224,0,3.774153,1 +13,3,0,0,3,325456,0,2691.496,59.40452,1,6,1,0,0,0,0,0,0,0,0,0,0,0,1,81.9,17.2,0,78.4,150,161.4,0,0,0,5.083886,1,4.564348,5.061929,1,0,0,78.4,7.898224,0,,0 +11,3,0,1,1,325457,0,11930.97,17.50582,1,9,1,96.01634,31.84372,0,0,0,127.8601,0,0,0,11,0,7,44.1,13.8,0,56.8,0,46.68,1,1,1.94591,3.843316,0,0,0,0,0,0,56.8,9.386976,1.94591,4.850936,1 +11,3,0,1,2,325457,0,11930.97,18.50582,1,9,1,424.9883,100.872,20.62822,0,1213.113,1759.601,2,0,0,20,1,7,44.1,13.8,0,56.8,0,46.68,0,0,1.94591,3.843316,0,0,0,0,0,0,56.8,9.386976,1.94591,7.472843,1 +11,3,0,1,1,325458,0,11930.97,13.48392,0,9,1,0,0,0,0,0,0,0,0,0,0,0,7,50,9.967326,1,51.9,0,46.68,1,0,1.94591,3.843316,0,0,0,1,0,0,51.9,9.386976,1.94591,,0 +11,3,0,1,2,325458,0,11930.97,14.48392,0,9,1,172.9958,25.99625,0,0,1205.279,1404.271,1,0,0,4,6,7,50,9.967326,1,51.9,0,46.68,1,0,1.94591,3.843316,0,0,0,1,0,0,51.9,9.386976,1.94591,7.247273,1 +11,3,0,1,3,325458,0,11930.97,15.48392,0,9,1,115.0903,1.504729,0,0,343.0997,459.6948,1,0,0,5,0,6,50,9.967326,1,51.9,0,46.68,1,0,1.791759,3.843316,0,0,0,1,0,0,51.9,9.386976,1.791759,6.130563,1 +11,3,0,1,1,325459,0,11930.97,43.76455,1,9,1,85.29111,0,21.45046,0,0,106.7416,0,0,0,1,13,7,69.7,3.4,1,60.2,0,46.68,0,0,1.94591,3.843316,0,0,0,1,0,0,60.2,9.386976,1.94591,4.670411,1 +11,3,0,1,2,325459,0,11930.97,44.76455,1,9,1,96.34318,3.914674,0,0,0,100.2579,0,0,0,2,14,7,69.7,3.4,1,60.2,0,46.68,0,0,1.94591,3.843316,0,0,0,1,0,0,60.2,9.386976,1.94591,4.607745,1 +11,3,0,1,3,325459,0,11930.97,45.76455,1,9,1,134.9957,22.97936,0,0,0,157.9751,0,0,0,15,17,6,69.7,3.4,1,60.2,0,46.68,0,0,1.791759,3.843316,0,0,0,1,0,0,60.2,9.386976,1.791759,5.062437,1 +11,3,0,1,1,325460,0,11930.97,18.45859,0,11,1,29.11134,2.911134,43.41164,0,0,75.43412,0,0,0,1,2,7,89.9,3.4,0,78.4,0,46.68,0,0,1.94591,3.843316,0,0,0,0,0,0,78.4,9.386976,1.94591,4.32326,1 +11,3,0,1,2,325460,0,11930.97,19.45859,0,11,1,5.625879,4.866385,0,0,0,10.49226,0,0,0,1,0,7,89.9,3.4,0,78.4,0,46.68,0,0,1.94591,3.843316,0,0,0,0,0,0,78.4,9.386976,1.94591,2.350638,1 +11,3,0,1,3,325460,0,11930.97,20.45859,0,11,1,25.79536,45.34394,0,0,0,71.1393,0,0,0,3,0,6,89.9,3.4,0,78.4,0,46.68,0,0,1.791759,3.843316,0,0,0,0,0,0,78.4,9.386976,1.791759,4.26464,1 +11,3,0,1,1,325461,0,11930.97,51.83025,0,6,1,83.24821,0,0,0,0,83.24821,0,0,0,2,7,7,53.7,13.8,0,43.2,0,46.68,0,0,1.94591,3.843316,0,0,0,1,0,0,43.2,9.386976,1.94591,4.421827,1 +11,3,0,1,2,325461,0,11930.97,52.83025,0,6,1,0,0,0,0,0,0,0,0,0,0,0,7,53.7,13.8,0,43.2,0,46.68,0,0,1.94591,3.843316,0,0,0,1,0,0,43.2,9.386976,1.94591,,0 +11,3,0,1,3,325461,0,11930.97,53.83025,0,6,1,26.22528,5.717971,0,0,0,31.94325,0,0,0,1,0,6,53.7,13.8,0,43.2,0,46.68,0,0,1.791759,3.843316,0,0,0,1,0,0,43.2,9.386976,1.791759,3.463961,1 +11,3,0,1,1,325462,0,11930.97,14.76523,0,9,1,50.2809,0,0,0,0,50.2809,0,0,0,3,0,7,78.7,6.9,1,67,0,46.68,1,0,1.94591,3.843316,0,0,0,0,0,0,67,9.386976,1.94591,3.917625,1 +11,3,0,1,2,325462,0,11930.97,15.76523,0,9,1,56.72762,7.618378,0,0,842.5316,906.8776,1,0,0,5,1,7,78.7,6.9,1,67,0,46.68,1,0,1.94591,3.843316,0,0,0,0,0,0,67,9.386976,1.94591,6.810008,1 +11,3,0,1,3,325462,0,11930.97,16.76523,0,9,1,27.94497,39.40241,0,0,0,67.34737,0,0,0,4,0,6,78.7,6.9,1,67,0,46.68,1,0,1.791759,3.843316,0,0,0,0,0,0,67,9.386976,1.791759,4.209864,1 +11,3,0,1,1,325463,0,11930.97,7.08282,0,9,1,116.4454,15.83248,0,0,0,132.2778,0,0,0,4,0,7,91.7,9.967326,0,88.9,0,46.68,1,0,1.94591,3.843316,0,0,0,0,0,0,88.9,9.386976,1.94591,4.884904,1 +11,3,0,1,2,325463,0,11930.97,8.08282,0,9,1,89.73277,21.00328,0,0,0,110.7361,0,0,0,7,0,7,91.7,9.967326,0,88.9,0,46.68,1,0,1.94591,3.843316,0,0,0,0,0,0,88.9,9.386976,1.94591,4.70715,1 +11,3,0,1,3,325463,0,11930.97,9.08282,0,9,1,0,0,0,0,0,0,0,0,0,0,0,6,91.7,9.967326,0,88.9,0,46.68,1,0,1.791759,3.843316,0,0,0,0,0,0,88.9,9.386976,1.791759,,0 +11,3,0,1,1,325498,0,5513.196,21.8809,0,9,1,101.9408,0,28.08989,0,0,130.0306,0,0,0,6,0,3,98.9,0,0,86.4,0,78,0,0,1.098612,4.356709,0,0,0,1,0,0,86.4,8.615081,1.098612,4.86777,1 +11,3,0,1,2,325498,0,5513.196,22.8809,0,9,1,28.12939,0,14.0647,0,0,42.19409,0,0,0,2,0,3,98.9,0,0,86.4,0,78,0,0,1.098612,4.356709,0,0,0,1,0,0,86.4,8.615081,1.098612,3.74228,1 +11,3,0,1,3,325498,0,5513.196,23.8809,0,9,1,60.18917,0,23.64574,0,0,83.83491,0,0,0,3,0,3,98.9,0,0,86.4,0,78,0,0,1.098612,4.356709,0,0,0,1,0,0,86.4,8.615081,1.098612,4.42885,1 +10,3,50,0,1,325501,0,6217.595,26.47228,0,14,1,5.200208,0,0,0,0,5.200208,0,0,0,1,0,3,68.1,0,0,94,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,94,8.735299,1.098612,1.648699,1 +10,3,50,0,2,325501,0,6217.595,27.47228,0,14,1,0,0,0,0,0,0,0,0,0,0,0,3,68.1,0,0,94,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,94,8.735299,1.098612,,0 +10,3,50,0,3,325501,0,6217.595,28.47228,0,14,1,0,0,0,0,0,0,0,0,0,0,0,4,68.1,0,0,94,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,94,8.735299,1.386294,,0 +10,3,50,0,1,325502,0,6217.595,2.68857,1,12,1,69.68279,1.092044,0,0,0,70.77483,0,0,0,7,0,3,83.39137,9.967326,0,96.3,1000,1000,1,1,1.098612,6.907755,0,3.931826,7.600903,0,0,0,96.3,8.735299,1.098612,4.259503,1 +10,3,50,0,2,325502,0,6217.595,3.68857,1,12,1,7.644529,0,0,0,0,7.644529,0,0,0,1,0,3,83.39137,9.967326,0,96.3,1000,1000,1,1,1.098612,6.907755,0,3.931826,7.600903,0,0,0,96.3,8.735299,1.098612,2.03399,1 +10,3,50,0,3,325502,0,6217.595,4.68857,1,12,1,67.16418,0,22.82704,0,0,89.99122,0,0,0,7,0,4,83.39137,9.967326,0,96.3,1000,1000,1,1,1.386294,6.907755,0,3.931826,7.600903,0,0,0,96.3,8.735299,1.386294,4.499712,1 +10,3,50,0,1,325503,0,6217.595,26.15195,1,12,1,31.20125,6.541862,0,0,0,37.74311,0,0,0,3,0,3,43.2,10.3,0,79.5,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,79.5,8.735299,1.098612,3.630803,1 +10,3,50,0,2,325503,0,6217.595,27.15195,1,12,1,33.44482,0,0,0,533.4448,566.8896,1,0,0,1,0,3,43.2,10.3,0,79.5,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,79.5,8.735299,1.098612,6.340165,1 +10,3,50,0,3,325503,0,6217.595,28.15195,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,43.2,10.3,0,79.5,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,79.5,8.735299,1.386294,,0 +11,3,0,1,1,325504,0,6409.971,24.44353,0,16,1,24.21432,6.841834,29.10871,0,0,60.16486,0,0,0,1,1,1,96.3,3.4,0,83,0,126,0,0,0,4.836282,0,0,0,0,0,0,83,8.765766,0,4.097088,1 +11,3,0,1,2,325504,0,6409.971,25.44353,0,16,1,48.29546,5.222538,11.79924,0,0,65.31724,0,0,0,2,1,1,96.3,3.4,0,83,0,126,0,0,0,4.836282,0,0,0,0,0,0,83,8.765766,0,4.179256,1 +11,3,0,1,3,325504,0,6409.971,26.44353,0,16,1,8.669268,0,28.80364,0,0,37.47291,0,0,0,0,1,1,96.3,3.4,0,83,0,126,0,0,0,4.836282,0,0,0,0,0,0,83,8.765766,0,3.623618,1 +17,3,25,0,1,325556,0,7196.79,22.69131,1,12,1,58.22268,3.064351,26.04699,0,0,87.33401,0,0,0,2,1,1,79.8,6.9,0,76.1,0,0,0,0,0,0,0,3.258096,0,1,0,0,76.1,8.881529,0,4.46974,1 +17,3,25,0,2,325556,0,7196.79,23.69131,1,12,1,62.82232,4.871074,0,0,0,67.69339,0,0,0,4,0,1,79.8,6.9,0,76.1,0,0,0,0,0,0,0,3.258096,0,1,0,0,76.1,8.881529,0,4.214989,1 +17,3,25,0,3,325556,0,7196.79,24.69131,1,12,1,17.19691,0,266.552,0,0,283.7489,0,0,0,1,1,1,79.8,6.9,0,76.1,0,0,0,0,0,0,0,3.258096,0,1,0,0,76.1,8.881529,0,5.64809,1 +11,3,0,1,1,325579,0,5499.707,24.65708,1,12,1,10.40042,0,19.76079,0,0,30.16121,0,0,0,0,1,2,73.4,3.4,0,67,0,76.7,0,0,.6931472,4.339902,0,0,0,0,0,0,67,8.612632,.6931472,3.406557,1 +11,3,0,1,2,325579,0,5499.707,25.65708,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,73.4,3.4,0,67,0,76.7,0,0,.6931472,4.339902,0,0,0,0,0,0,67,8.612632,.6931472,,0 +11,3,0,1,3,325579,0,5499.707,26.65708,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,73.4,3.4,0,67,0,76.7,0,0,.6931472,4.339902,0,0,0,0,0,0,67,8.612632,.6931472,,0 +11,3,0,1,4,325579,0,5499.707,27.65708,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,73.4,3.4,0,67,0,76.7,0,0,.6931472,4.339902,0,0,0,0,0,0,67,8.612632,.6931472,,0 +11,3,0,1,5,325579,0,5499.707,28.65708,1,12,1,0,1.84554,0,0,0,1.84554,0,0,0,0,0,2,73.4,3.4,0,67,0,76.7,0,0,.6931472,4.339902,0,0,0,0,0,0,67,8.612632,.6931472,.612772,1 +11,3,0,1,1,325580,0,5499.707,24.58864,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,92,3.4,0,73.9,0,76.7,0,0,.6931472,4.339902,0,0,0,0,0,0,73.9,8.612632,.6931472,,0 +11,3,0,1,2,325580,0,5499.707,25.58864,0,12,1,114.8829,2.331581,0,0,904.9785,1022.193,1,0,0,9,0,2,92,3.4,0,73.9,0,76.7,0,0,.6931472,4.339902,0,0,0,0,0,0,73.9,8.612632,.6931472,6.929706,1 +11,3,0,1,3,325580,0,5499.707,26.58864,0,12,1,6.584723,0,0,0,0,6.584723,0,0,0,1,0,2,92,3.4,0,73.9,0,76.7,0,0,.6931472,4.339902,0,0,0,0,0,0,73.9,8.612632,.6931472,1.884752,1 +11,3,0,1,4,325580,0,5499.707,27.58864,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,92,3.4,0,73.9,0,76.7,0,0,.6931472,4.339902,0,0,0,0,0,0,73.9,8.612632,.6931472,,0 +11,3,0,1,5,325580,0,5499.707,28.58864,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,92,3.4,0,73.9,0,76.7,0,0,.6931472,4.339902,0,0,0,0,0,0,73.9,8.612632,.6931472,,0 +11,3,0,1,1,325582,0,5739.003,.7282683,1,12,1,26.00104,6.890275,0,0,0,32.89132,0,0,0,4,0,3,83.39137,9.967326,0,96.3,0,156.36,1,1,1.098612,5.052161,0,0,0,1,0,0,96.3,8.655215,1.098612,3.493209,1 +11,3,0,1,2,325582,0,5739.003,1.728268,1,12,1,5.733397,.9555662,0,0,0,6.688963,0,0,0,1,0,3,83.39137,9.967326,0,96.3,0,156.36,1,1,1.098612,5.052161,0,0,0,1,0,0,96.3,8.655215,1.098612,1.900459,1 +11,3,0,1,3,325582,0,5739.003,2.728268,1,12,1,59.70149,8.669886,0,0,0,68.37138,0,0,0,6,0,3,83.39137,9.967326,0,96.3,0,156.36,1,1,1.098612,5.052161,0,0,0,1,0,0,96.3,8.655215,1.098612,4.224954,1 +11,3,0,1,4,325582,0,5739.003,3.728268,1,12,1,54.64699,5.384922,0,0,0,60.03191,0,0,0,5,0,3,83.39137,9.967326,0,96.3,0,156.36,1,1,1.098612,5.052161,0,0,0,1,0,0,96.3,8.655215,1.098612,4.094876,1 +11,3,0,1,5,325582,0,5739.003,4.728268,1,12,1,104.6773,3.226976,0,0,458.6657,566.57,1,0,0,5,3,4,83.39137,9.967326,0,96.3,0,156.36,1,1,1.386294,5.052161,0,0,0,1,0,0,96.3,8.655215,1.386294,6.339601,1 +11,3,0,1,1,325583,0,5739.003,20.82957,0,12,1,15.60062,7.072283,0,0,616.4274,639.1003,1,0,0,3,0,3,72.3,3.4,0,54.5,0,156.36,0,0,1.098612,5.052161,0,0,0,1,0,0,54.5,8.655215,1.098612,6.460062,1 +11,3,0,1,2,325583,0,5739.003,21.82957,0,12,1,41.51935,4.061156,0,0,0,45.58051,0,0,0,3,0,3,72.3,3.4,0,54.5,0,156.36,0,0,1.098612,5.052161,0,0,0,1,0,0,54.5,8.655215,1.098612,3.81948,1 +11,3,0,1,3,325583,0,5739.003,22.82957,0,12,1,8.779632,4.223002,0,0,0,13.00263,0,0,0,1,0,3,72.3,3.4,0,54.5,0,156.36,0,0,1.098612,5.052161,0,0,0,1,0,0,54.5,8.655215,1.098612,2.565152,1 +11,3,0,1,4,325583,0,5739.003,23.82957,0,12,1,119.4256,4.786598,24.73075,0,0,148.943,0,0,0,3,0,3,72.3,3.4,0,54.5,0,156.36,0,0,1.098612,5.052161,0,0,0,1,0,0,54.5,8.655215,1.098612,5.003563,1 +11,3,0,1,5,325583,0,5739.003,24.82957,0,12,1,52.68311,29.94924,0,0,0,82.63234,0,0,0,2,4,4,72.3,3.4,0,54.5,0,156.36,0,0,1.386294,5.052161,0,0,0,1,0,0,54.5,8.655215,1.386294,4.414401,1 +11,3,0,1,1,325584,0,5739.003,20.29295,1,12,1,132.2673,44.19137,30.16121,0,0,206.6199,0,0,0,4,0,3,76.1,3.4,0,83,0,156.36,0,0,1.098612,5.052161,0,0,0,1,0,0,83,8.655215,1.098612,5.330881,1 +11,3,0,1,2,325584,0,5739.003,21.29295,1,12,1,70.7119,17.27664,0,0,0,87.98853,0,0,0,3,0,3,76.1,3.4,0,83,0,156.36,0,0,1.098612,5.052161,0,0,0,1,0,0,83,8.655215,1.098612,4.477207,1 +11,3,0,1,3,325584,0,5739.003,22.29295,1,12,1,79.71906,17.51536,26.33889,0,0,123.5733,0,0,0,4,0,3,76.1,3.4,0,83,0,156.36,0,0,1.098612,5.052161,0,0,0,1,0,0,83,8.655215,1.098612,4.816834,1 +11,3,0,1,4,325584,0,5739.003,23.29295,1,12,1,159.3937,42.19785,0,0,820.1037,1021.695,1,0,0,1,0,3,76.1,3.4,0,83,0,156.36,0,0,1.098612,5.052161,0,0,0,1,0,0,83,8.655215,1.098612,6.929219,1 +11,3,0,1,5,325584,0,5739.003,24.29295,1,12,1,11.96519,3.390138,23.93038,0,0,39.28571,0,0,0,1,0,4,76.1,3.4,0,83,0,156.36,0,0,1.386294,5.052161,0,0,0,1,0,0,83,8.655215,1.386294,3.670861,1 +10,3,50,1,1,325589,0,10476.83,18.07529,0,11,1,109.4229,3.881512,0,0,0,113.3044,0,0,0,9,0,4,80.3,3.4,0,67.9,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,67.9,9.257017,1.386294,4.730078,1 +10,3,50,1,2,325589,0,10476.83,19.07529,0,11,1,301.1252,7.116737,0,0,254.0788,562.3207,1,0,0,4,0,4,80.3,3.4,0,67.9,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,67.9,9.257017,1.386294,6.332072,1 +10,3,50,1,3,325589,0,10476.83,20.07529,0,11,1,21.49613,0,0,0,0,21.49613,0,0,0,2,0,4,80.3,3.4,0,67.9,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,67.9,9.257017,1.386294,3.067873,1 +10,3,50,1,1,325590,0,10476.83,40.45174,1,15,1,9.703779,0,0,0,0,9.703779,0,0,0,1,0,4,86.2,10.3,0,71.6,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,71.6,9.257017,1.386294,2.272516,1 +10,3,50,1,2,325590,0,10476.83,41.45174,1,15,1,37.50586,9.198312,38.6451,0,0,85.34927,0,0,0,1,1,4,86.2,10.3,0,71.6,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,71.6,9.257017,1.386294,4.446752,1 +10,3,50,1,3,325590,0,10476.83,42.45174,1,15,1,46.68959,8.968185,19.77644,0,0,75.43422,0,0,0,3,1,4,86.2,10.3,0,71.6,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,71.6,9.257017,1.386294,4.323261,1 +10,3,50,1,1,325591,0,10476.83,45.1499,0,14,1,8.171603,0,0,0,0,8.171603,0,0,0,1,0,4,82.4,6.9,0,69.3,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,69.3,9.257017,1.386294,2.100665,1 +10,3,50,1,2,325591,0,10476.83,46.1499,0,14,1,73.55836,0,8.438819,0,0,81.99718,0,0,0,1,0,4,82.4,6.9,0,69.3,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,69.3,9.257017,1.386294,4.406685,1 +10,3,50,1,3,325591,0,10476.83,47.1499,0,14,1,9.028375,0,10.74806,0,0,19.77644,0,0,0,0,1,4,82.4,6.9,0,69.3,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,69.3,9.257017,1.386294,2.984491,1 +10,3,50,1,1,325592,0,10476.83,15.83025,0,15,1,14.30031,0,30.64351,0,0,44.94382,0,0,0,1,1,4,87.2,13.8,0,91.7,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,91.7,9.257017,1.386294,3.805413,1 +10,3,50,1,2,325592,0,10476.83,16.83025,0,15,1,15.47117,5.185185,11.72058,0,0,32.37693,0,0,0,1,1,4,87.2,13.8,0,91.7,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,91.7,9.257017,1.386294,3.477446,1 +10,3,50,1,3,325592,0,10476.83,17.83025,0,15,1,54.94411,0,6.981943,0,0,61.92605,0,0,0,2,1,4,87.2,13.8,0,91.7,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,91.7,9.257017,1.386294,4.125941,1 +6,3,25,1,1,325596,0,3937.83,16.45996,1,14,1,26.06275,0,30.36437,0,0,56.42712,0,0,0,1,0,2,82.4,6.9,0,64.8,500.4,500.4,1,1,.6931472,6.215408,0,3.258096,7.601702,1,0,0,64.8,8.278639,.6931472,4.03295,1 +6,3,25,1,2,325596,0,3937.83,17.45996,1,14,1,0,0,0,0,0,0,0,0,0,0,0,2,82.4,6.9,0,64.8,500.4,500.4,1,1,.6931472,6.215408,0,3.258096,7.601702,1,0,0,64.8,8.278639,.6931472,,0 +6,3,25,1,3,325596,0,3937.83,18.45996,1,14,1,8.550663,0,25.65199,0,0,34.20265,0,0,0,1,0,2,82.4,6.9,0,64.8,500.4,500.4,0,0,.6931472,6.215408,0,3.258096,7.601702,1,0,0,64.8,8.278639,.6931472,3.532303,1 +6,3,25,1,1,325597,0,3937.83,40.60233,1,14,1,64.5496,2.682186,32.38866,0,0,99.62045,0,0,0,3,0,2,83.5,24.1,0,71.6,500.4,500.4,0,0,.6931472,6.215408,0,3.258096,7.601702,1,0,0,71.6,8.278639,.6931472,4.601367,1 +6,3,25,1,2,325597,0,3937.83,41.60233,1,14,1,0,0,0,0,0,0,0,0,0,0,0,2,83.5,24.1,0,71.6,500.4,500.4,0,0,.6931472,6.215408,0,3.258096,7.601702,1,0,0,71.6,8.278639,.6931472,,0 +6,3,25,1,3,325597,0,3937.83,42.60233,1,14,1,15.81873,6.669517,0,0,0,22.48824,0,0,0,2,0,2,83.5,24.1,0,71.6,500.4,500.4,0,0,.6931472,6.215408,0,3.258096,7.601702,1,0,0,71.6,8.278639,.6931472,3.112993,1 +11,3,0,1,1,325601,0,5852.786,9.845311,0,10,1,0,5.255023,0,0,0,5.255023,0,0,0,0,0,4,61.7,9.967326,0,59.3,0,383.52,1,0,1.386294,5.949392,0,0,0,0,0,0,59.3,8.674844,1.386294,1.659184,1 +11,3,0,1,2,325601,0,5852.786,10.84531,0,10,1,0,0,0,0,0,0,0,0,0,0,0,4,61.7,9.967326,0,59.3,0,383.52,1,0,1.386294,5.949392,0,0,0,0,0,0,59.3,8.674844,1.386294,,0 +11,3,0,1,3,325601,0,5852.786,11.84531,0,10,1,8.669268,0,0,0,0,8.669268,0,0,0,0,1,4,61.7,9.967326,0,59.3,0,383.52,1,0,1.386294,5.949392,0,0,0,0,0,0,59.3,8.674844,1.386294,2.159784,1 +11,3,0,1,1,325602,0,5852.786,37.96304,0,9,1,25.75992,3.863988,0,0,0,29.62391,0,0,0,3,0,4,54.3,24.1,1,39.8,0,383.52,0,0,1.386294,5.949392,0,0,0,1,0,0,39.8,8.674844,1.386294,3.388582,1 +11,3,0,1,2,325602,0,5852.786,38.96304,0,9,1,0,.6770833,0,0,0,.6770833,0,0,0,0,0,4,54.3,24.1,1,39.8,0,383.52,0,0,1.386294,5.949392,0,0,0,1,0,0,39.8,8.674844,1.386294,-.3899609,1 +11,3,0,1,3,325602,0,5852.786,39.96304,0,9,1,113.5674,26.18119,29.47551,0,0,169.2241,0,0,0,4,1,4,54.3,24.1,1,39.8,0,383.52,0,0,1.386294,5.949392,0,0,0,1,0,0,39.8,8.674844,1.386294,5.131224,1 +11,3,0,1,1,325603,0,5852.786,12.29569,0,10,1,53.58063,5.280783,0,0,0,58.86141,0,0,0,3,0,4,60,9.967326,0,70.4,0,383.52,1,0,1.386294,5.949392,0,0,0,0,0,0,70.4,8.674844,1.386294,4.075186,1 +11,3,0,1,2,325603,0,5852.786,13.29569,0,10,1,0,.6770833,0,0,0,.6770833,0,0,0,0,0,4,60,9.967326,0,70.4,0,383.52,1,0,1.386294,5.949392,0,0,0,0,0,0,70.4,8.674844,1.386294,-.3899609,1 +11,3,0,1,3,325603,0,5852.786,14.29569,0,10,1,16.03815,6.025141,0,0,0,22.06329,0,0,0,2,0,4,60,9.967326,0,70.4,0,383.52,1,0,1.386294,5.949392,0,0,0,0,0,0,70.4,8.674844,1.386294,3.093915,1 +11,3,0,1,1,325604,0,5852.786,48.32581,1,10,1,30.9119,8.629572,28.33591,0,0,67.87738,0,0,0,3,1,4,70.2,20.7,1,54.5,0,383.52,0,0,1.386294,5.949392,0,0,0,1,0,0,54.5,8.674844,1.386294,4.217703,1 +11,3,0,1,2,325604,0,5852.786,49.32581,1,10,1,0,0,0,0,0,0,0,0,0,0,0,4,70.2,20.7,1,54.5,0,383.52,0,0,1.386294,5.949392,0,0,0,1,0,0,54.5,8.674844,1.386294,,0 +11,3,0,1,3,325604,0,5852.786,50.32581,1,10,1,52.44907,12.52709,29.04205,0,0,94.0182,0,0,0,3,1,4,70.2,20.7,1,54.5,0,383.52,0,0,1.386294,5.949392,0,0,0,1,0,0,54.5,8.674844,1.386294,4.543489,1 +11,3,0,0,1,325625,0,4987.683,30.57084,1,10,1,129.7804,112.0276,26.04699,0,0,267.8549,0,0,2,8,3,4,59,20.7,1,50,0,0,0,0,1.386294,0,0,0,0,1,0,0,50,8.514927,1.386294,5.590446,1 +11,3,0,0,2,325625,0,4987.683,31.57084,1,10,1,66.10408,194.3554,0,0,608.0778,868.5373,2,0,0,8,0,3,59,20.7,1,50,0,0,0,0,1.098612,0,0,0,0,1,0,0,50,8.514927,1.098612,6.76681,1 +11,3,0,0,3,325625,0,4987.683,32.57084,1,10,1,118.5684,163.7016,0,0,262.8461,545.1161,1,0,0,10,0,1,59,20.7,1,50,0,0,0,0,0,0,0,0,0,1,0,0,50,8.514927,0,6.300999,1 +11,3,0,0,4,325625,0,4987.683,33.57084,1,10,1,125.0485,169.1935,0,81.42691,0,294.2419,0,0,9,8,0,1,59,20.7,1,50,0,0,0,0,0,0,0,0,0,1,0,0,50,8.514927,0,5.684402,1 +11,3,0,0,5,325625,0,4987.683,34.57084,1,10,1,185.4919,93.08209,0,307.8556,294.4657,573.0396,1,0,26,13,0,1,59,20.7,1,50,0,0,0,0,0,0,0,0,0,1,0,0,50,8.514927,0,6.350955,1 +11,3,0,0,1,325626,0,4987.683,7.288159,0,10,1,94.84678,.1276813,0,255.3626,0,94.97446,0,0,5,5,0,4,96.7,9.967326,0,96.3,0,0,1,0,1.386294,0,0,0,0,0,0,0,96.3,8.514927,1.386294,4.553608,1 +11,3,0,0,2,325626,0,4987.683,8.288158,0,10,1,0,0,0,0,0,0,0,0,0,0,0,3,96.7,9.967326,0,96.3,0,0,1,0,1.098612,0,0,0,0,0,0,0,96.3,8.514927,1.098612,,0 +11,3,0,0,1,325627,0,4987.683,46.66667,0,6,1,85.6333,66.5475,117.9775,122.5741,0,270.1583,0,0,8,6,1,4,62.3,10.3,1,53.4,0,0,0,0,1.386294,0,0,0,0,0,1,0,53.4,8.514927,1.386294,5.599008,1 +11,3,0,0,1,325628,0,4987.683,8.542094,0,10,1,0,16.34321,0,0,19240.6,19256.95,2,0,0,0,0,4,65,9.967326,1,70.4,0,0,1,0,1.386294,0,0,0,0,1,0,0,70.4,8.514927,1.386294,9.865627,1 +11,3,0,0,2,325628,0,4987.683,9.542094,0,10,1,39.84998,10.66573,0,0,0,50.51571,0,0,0,2,0,3,65,9.967326,1,70.4,0,0,1,0,1.098612,0,0,0,0,1,0,0,70.4,8.514927,1.098612,3.922284,1 +11,3,0,0,1,325629,0,1230.745,40.78029,1,6,1,67.72217,29.97957,38.81512,0,0,136.5169,0,0,0,3,1,1,19.1,10.3,0,44,0,0,0,0,0,0,0,0,0,0,1,0,44,7.116187,0,4.916448,1 +11,3,0,0,2,325629,0,1230.745,41.78029,1,6,1,33.98969,18.46226,21.56587,0,0,74.01781,0,0,0,3,0,1,19.1,10.3,0,44,0,0,0,0,0,0,0,0,0,0,1,0,44,7.116187,0,4.304306,1 +11,3,0,0,3,325629,0,1230.745,42.78029,1,6,1,176.6982,78.47807,0,0,0,255.1763,0,0,0,5,11,1,19.1,10.3,0,44,0,0,0,0,0,0,0,0,0,0,1,0,44,7.116187,0,5.541955,1 +11,3,0,0,4,325629,0,1230.745,43.78029,1,6,1,43.42768,74.53664,29.08104,0,0,147.0454,0,0,0,2,1,1,19.1,10.3,0,44,0,0,0,0,0,0,0,0,0,0,1,0,44,7.116187,0,4.990741,1 +11,3,0,0,5,325629,0,1230.745,44.78029,1,6,1,217.6221,78.76858,17.69285,0,0,314.0835,0,0,0,10,10,1,19.1,10.3,0,44,0,0,0,0,0,0,0,0,0,0,1,0,44,7.116187,0,5.749659,1 +13,3,0,0,1,325709,0,7961.291,34.26968,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,60.1,17.2,1,56.8,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,56.8,8.982472,1.609438,,0 +13,3,0,0,2,325709,0,7961.291,35.26968,0,12,1,20.54467,0,0,0,0,20.54467,0,0,0,1,0,5,60.1,17.2,1,56.8,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,56.8,8.982472,1.609438,3.022602,1 +13,3,0,0,3,325709,0,7961.291,36.26968,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,60.1,17.2,1,56.8,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,56.8,8.982472,1.386294,,0 +13,3,0,0,1,325710,0,7961.291,7.624915,1,10,1,0,0,0,0,0,0,0,0,0,0,0,5,86.7,9.967326,0,96.3,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,96.3,8.982472,1.609438,,0 +13,3,0,0,2,325710,0,7961.291,8.624914,1,10,1,7.644529,0,0,0,0,7.644529,0,0,0,0,0,5,86.7,9.967326,0,96.3,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,96.3,8.982472,1.609438,2.03399,1 +13,3,0,0,3,325710,0,7961.291,9.624914,1,10,1,53.77524,0,0,0,0,53.77524,0,0,0,2,0,4,86.7,9.967326,0,96.3,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,96.3,8.982472,1.386294,3.984813,1 +13,3,0,0,1,325711,0,7961.291,13.14168,1,10,1,0,0,0,31.20125,0,0,0,0,2,0,0,5,60,9.967326,0,81.5,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,81.5,8.982472,1.609438,,0 +13,3,0,0,2,325711,0,7961.291,14.14168,1,10,1,0,0,0,0,0,0,0,0,0,0,0,5,60,9.967326,0,81.5,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,81.5,8.982472,1.609438,,0 +13,3,0,0,1,325712,0,7961.291,10.89938,1,10,1,0,0,0,0,0,0,0,0,0,0,0,5,78.3,9.967326,0,85.2,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,85.2,8.982472,1.609438,,0 +13,3,0,0,2,325712,0,7961.291,11.89938,1,10,1,0,0,0,0,0,0,0,0,0,0,0,5,78.3,9.967326,0,85.2,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,85.2,8.982472,1.609438,,0 +13,3,0,0,3,325712,0,7961.291,12.89938,1,10,1,0,0,0,0,0,0,0,0,0,0,0,4,78.3,9.967326,0,85.2,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,85.2,8.982472,1.386294,,0 +13,3,0,0,1,325713,0,7961.291,35.70979,1,10,1,5.720229,0,0,0,889.2668,894.987,1,0,0,1,0,5,81.4,17.2,0,84.1,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,84.1,8.982472,1.609438,6.796809,1 +13,3,0,0,2,325713,0,7961.291,36.70979,1,10,1,4.777831,0,0,0,0,4.777831,0,0,0,0,0,5,81.4,17.2,0,84.1,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,84.1,8.982472,1.609438,1.563987,1 +13,3,0,0,3,325713,0,7961.291,37.70979,1,10,1,1002.946,0,0,0,0,1002.946,0,0,0,10,0,4,81.4,17.2,0,84.1,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,84.1,8.982472,1.386294,6.910697,1 +6,3,25,0,1,325734,0,11425.81,58.52977,0,16,1,10.30397,0,21.63833,0,0,31.9423,0,0,0,0,1,2,91,6.9,0,95.5,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,0,0,95.5,9.343718,.6931472,3.463931,1 +6,3,25,0,2,325734,0,11425.81,59.52977,0,16,1,26.04167,0,16.57197,0,0,42.61364,0,0,0,1,1,2,91,6.9,0,95.5,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,0,0,95.5,9.343718,.6931472,3.752174,1 +6,3,25,0,1,325735,0,11425.81,59.37029,1,14,1,12.87996,0,30.3967,0,0,43.27666,0,0,0,1,0,2,77.7,3.4,0,77.3,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,0,0,77.3,9.343718,.6931472,3.767613,1 +6,3,25,0,2,325735,0,11425.81,60.37029,1,14,1,24.14773,0,0,0,0,24.14773,0,0,0,1,0,2,77.7,3.4,0,77.3,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,0,0,77.3,9.343718,.6931472,3.18419,1 +11,3,0,1,1,325736,0,7319.648,12.73922,1,3,1,24.51481,5.286006,0,0,0,29.80082,0,0,0,3,0,6,85,9.967326,0,92.6,0,429,1,1,1.791759,6.061457,0,0,0,0,0,0,92.6,8.898454,1.791759,3.394536,1 +11,3,0,1,2,325736,0,7319.648,13.73922,1,3,1,86.7323,0,0,0,0,86.7323,0,0,0,9,0,6,85,9.967326,0,92.6,0,429,1,1,1.791759,6.061457,0,0,0,0,0,0,92.6,8.898454,1.791759,4.462826,1 +11,3,0,1,3,325736,0,7319.648,14.73922,1,3,1,49.01118,2.66552,0,0,0,51.6767,0,0,0,5,0,6,85,9.967326,0,92.6,0,429,1,1,1.791759,6.061457,0,0,0,0,0,0,92.6,8.898454,1.791759,3.945007,1 +11,3,0,1,4,325736,0,7319.648,15.73922,1,3,1,25.20357,4.238077,0,0,0,29.44164,0,0,0,3,0,6,85,9.967326,0,92.6,0,429,1,1,1.791759,6.061457,0,0,0,0,0,0,92.6,8.898454,1.791759,3.38241,1 +11,3,0,1,5,325736,0,7319.648,16.73922,1,3,1,15.92357,82.99717,0,0,0,98.92074,0,0,0,2,0,6,85,9.967326,0,92.6,0,429,1,1,1.791759,6.061457,0,0,0,0,0,0,92.6,8.898454,1.791759,4.594319,1 +11,3,0,1,1,325737,0,7319.648,11.4141,0,3,1,33.70787,0,0,0,0,33.70787,0,0,0,2,0,6,83.3,9.967326,0,96.3,0,429,1,0,1.791759,6.061457,0,0,0,0,0,0,96.3,8.898454,1.791759,3.517731,1 +11,3,0,1,2,325737,0,7319.648,12.4141,0,3,1,10.31411,1.851852,0,0,0,12.16596,0,0,0,2,0,6,83.3,9.967326,0,96.3,0,429,1,0,1.791759,6.061457,0,0,0,0,0,0,96.3,8.898454,1.791759,2.498642,1 +11,3,0,1,3,325737,0,7319.648,13.4141,0,3,1,6.448839,0,0,0,0,6.448839,0,0,0,1,0,6,83.3,9.967326,0,96.3,0,429,1,0,1.791759,6.061457,0,0,0,0,0,0,96.3,8.898454,1.791759,1.8639,1 +11,3,0,1,4,325737,0,7319.648,14.4141,0,3,1,6.979449,1.357115,0,0,0,8.336565,0,0,0,1,0,6,83.3,9.967326,0,96.3,0,429,1,0,1.791759,6.061457,0,0,0,0,0,0,96.3,8.898454,1.791759,2.120651,1 +11,3,0,1,5,325737,0,7319.648,15.4141,0,3,1,23.60226,3.892427,0,0,0,27.49469,0,0,0,2,0,6,83.3,9.967326,0,96.3,0,429,1,0,1.791759,6.061457,0,0,0,0,0,0,96.3,8.898454,1.791759,3.313993,1 +11,3,0,1,1,325738,0,7319.648,14.45585,1,3,1,17.87538,4.085802,0,0,0,21.96119,0,0,0,3,0,6,87.2,3.4,0,90.9,0,429,1,1,1.791759,6.061457,0,0,0,0,0,0,90.9,8.898454,1.791759,3.089277,1 +11,3,0,1,2,325738,0,7319.648,15.45585,1,3,1,58.60291,3.094234,0,0,0,61.69714,0,0,0,6,0,6,87.2,3.4,0,90.9,0,429,1,1,1.791759,6.061457,0,0,0,0,0,0,90.9,8.898454,1.791759,4.122238,1 +11,3,0,1,3,325738,0,7319.648,16.45585,1,3,1,60.18917,6.964746,.2149613,0,0,67.36887,0,0,0,6,0,6,87.2,3.4,0,90.9,0,429,1,1,1.791759,6.061457,0,0,0,0,0,0,90.9,8.898454,1.791759,4.210183,1 +11,3,0,1,4,325738,0,7319.648,17.45585,1,3,1,26.75456,4.18767,0,0,0,30.94223,0,0,0,3,0,6,87.2,3.4,0,90.9,0,429,1,1,1.791759,6.061457,0,0,0,0,0,0,90.9,8.898454,1.791759,3.432122,1 +11,3,0,1,5,325738,0,7319.648,18.45585,1,3,1,8.846426,10.17339,0,0,0,19.01982,0,0,0,1,0,6,87.2,3.4,0,90.9,0,429,0,0,1.791759,6.061457,0,0,0,0,0,0,90.9,8.898454,1.791759,2.945481,1 +11,3,0,1,1,325739,0,7319.648,43.17317,0,10,1,33.19714,9.397345,22.98264,0,0,65.57712,0,0,0,4,0,6,78.2,10.3,0,73.9,0,429,0,0,1.791759,6.061457,0,0,0,1,0,0,73.9,8.898454,1.791759,4.183227,1 +11,3,0,1,2,325739,0,7319.648,44.17317,0,10,1,23.44116,1.875293,18.75293,0,0,44.06939,0,0,0,2,0,6,78.2,10.3,0,73.9,0,429,0,0,1.791759,6.061457,0,0,0,1,0,0,73.9,8.898454,1.791759,3.785765,1 +11,3,0,1,3,325739,0,7319.648,45.17317,0,10,1,8.598453,2.923474,0,0,0,11.52193,0,0,0,1,0,6,78.2,10.3,0,73.9,0,429,0,0,1.791759,6.061457,0,0,0,1,0,0,73.9,8.898454,1.791759,2.444252,1 +11,3,0,1,4,325739,0,7319.648,46.17317,0,10,1,22.87708,1.512214,2.175262,0,0,26.56456,0,0,0,2,0,6,78.2,10.3,0,73.9,0,429,0,0,1.791759,6.061457,0,0,0,1,0,0,73.9,8.898454,1.791759,3.279578,1 +11,3,0,1,5,325739,0,7319.648,47.17317,0,10,1,7.430998,0,0,0,0,7.430998,0,0,0,1,0,6,78.2,10.3,0,73.9,0,429,0,0,1.791759,6.061457,0,0,0,1,0,0,73.9,8.898454,1.791759,2.00566,1 +11,3,0,1,1,325740,0,7319.648,14.45585,1,3,1,18.89683,4.264555,0,0,0,23.16139,0,0,0,3,0,6,90.4,6.9,0,71.6,0,429,1,1,1.791759,6.061457,0,0,0,0,0,0,71.6,8.898454,1.791759,3.142487,1 +11,3,0,1,2,325740,0,7319.648,15.45585,1,3,1,58.60291,9.587436,0,0,0,68.19035,0,0,0,6,0,6,90.4,6.9,0,71.6,0,429,1,1,1.791759,6.061457,0,0,0,0,0,0,71.6,8.898454,1.791759,4.222303,1 +11,3,0,1,3,325740,0,7319.648,16.45585,1,3,1,60.18917,24.93551,0,0,0,85.12468,0,0,0,7,0,6,90.4,6.9,0,71.6,0,429,1,1,1.791759,6.061457,0,0,0,0,0,0,71.6,8.898454,1.791759,4.444117,1 +11,3,0,1,4,325740,0,7319.648,17.45585,1,3,1,0,6.16518,0,0,0,6.16518,0,0,0,0,0,6,90.4,6.9,0,71.6,0,429,1,1,1.791759,6.061457,0,0,0,0,0,0,71.6,8.898454,1.791759,1.818917,1 +11,3,0,1,5,325740,0,7319.648,18.45585,1,3,1,0,2.193914,0,0,0,2.193914,0,0,0,0,0,6,90.4,6.9,0,71.6,0,429,0,0,1.791759,6.061457,0,0,0,0,0,0,71.6,8.898454,1.791759,.785687,1 +11,3,0,1,1,325741,0,7319.648,39.57563,1,3,1,44.43309,4.249234,0,0,0,48.68233,0,0,0,3,0,6,67,3.4,0,69.3,0,429,0,0,1.791759,6.061457,0,0,0,0,0,0,69.3,8.898454,1.791759,3.885316,1 +11,3,0,1,2,325741,0,7319.648,40.57563,1,3,1,0,0,0,0,0,0,0,0,0,0,0,6,67,3.4,0,69.3,0,429,0,0,1.791759,6.061457,0,0,0,0,0,0,69.3,8.898454,1.791759,,0 +11,3,0,1,3,325741,0,7319.648,41.57563,1,3,1,0,1.504729,0,0,0,1.504729,0,0,0,0,0,6,67,3.4,0,69.3,0,429,0,0,1.791759,6.061457,0,0,0,0,0,0,69.3,8.898454,1.791759,.4086129,1 +11,3,0,1,4,325741,0,7319.648,42.57563,1,3,1,68.63126,2.13261,0,0,0,70.76386,0,0,0,2,0,6,67,3.4,0,69.3,0,429,0,0,1.791759,6.061457,0,0,0,0,0,0,69.3,8.898454,1.791759,4.259348,1 +11,3,0,1,5,325741,0,7319.648,43.57563,1,3,1,7.077141,0,21.93914,0,0,29.01628,0,0,0,1,0,6,67,3.4,0,69.3,0,429,0,0,1.791759,6.061457,0,0,0,0,0,0,69.3,8.898454,1.791759,3.367857,1 +11,3,0,1,1,325770,0,8753.666,37.21013,0,9,1,72.80291,12.22049,0,0,661.1649,746.1882,1,0,0,5,0,4,80.9,3.4,0,77.3,0,958.2,0,0,1.386294,6.865057,0,0,0,0,0,0,77.3,9.077342,1.386294,6.614978,1 +11,3,0,1,2,325770,0,8753.666,38.21013,0,9,1,5.733397,2.914477,0,0,0,8.647874,0,0,0,1,0,4,80.9,3.4,0,77.3,0,958.2,0,0,1.386294,6.865057,0,0,0,0,0,0,77.3,9.077342,1.386294,2.157314,1 +11,3,0,1,3,325770,0,8753.666,39.21013,0,9,1,107.1115,2.787533,0,0,0,109.899,0,0,0,4,0,4,80.9,3.4,0,77.3,0,958.2,0,0,1.386294,6.865057,0,0,0,0,0,0,77.3,9.077342,1.386294,4.699562,1 +11,3,0,1,1,325771,0,8753.666,30.68583,1,10,1,222.5689,8.346334,31.72127,0,0,262.6365,0,0,0,9,0,4,90.4,3.4,0,79.5,0,958.2,0,0,1.386294,6.865057,0,0,0,1,0,0,79.5,9.077342,1.386294,5.570771,1 +11,3,0,1,2,325771,0,8753.666,31.68583,1,10,1,100.8122,8.958433,0,0,0,109.7707,0,0,0,2,0,4,90.4,3.4,0,79.5,0,958.2,0,0,1.386294,6.865057,0,0,0,1,0,0,79.5,9.077342,1.386294,4.698393,1 +11,3,0,1,3,325771,0,8753.666,32.68583,1,10,1,28.09482,17.01054,0,0,0,45.10535,0,0,0,3,0,4,90.4,3.4,0,79.5,0,958.2,0,0,1.386294,6.865057,0,0,0,1,0,0,79.5,9.077342,1.386294,3.809001,1 +11,3,0,1,1,325772,0,8753.666,4.785763,0,10,1,24.44098,5.798232,0,0,0,30.23921,0,0,0,2,0,4,83.39137,9.967326,0,85.2,0,958.2,1,0,1.386294,6.865057,0,0,0,1,0,0,85.2,9.077342,1.386294,3.409139,1 +11,3,0,1,2,325772,0,8753.666,5.785763,0,10,1,5.255614,21.57191,0,0,0,26.82752,0,0,0,1,0,4,83.39137,9.967326,0,85.2,0,958.2,1,0,1.386294,6.865057,0,0,0,1,0,0,85.2,9.077342,1.386294,3.289428,1 +11,3,0,1,3,325772,0,8753.666,6.785763,0,10,1,1.316945,21.99298,0,0,0,23.30992,0,0,0,0,0,4,83.39137,9.967326,0,85.2,0,958.2,1,0,1.386294,6.865057,0,0,0,1,0,0,85.2,9.077342,1.386294,3.148879,1 +11,3,0,1,1,325773,0,8753.666,3.271732,0,10,1,20.28081,47.4519,0,0,0,67.73271,0,0,0,2,0,4,83.39137,9.967326,0,63,0,958.2,1,0,1.386294,6.865057,0,0,0,1,0,0,63,9.077342,1.386294,4.215569,1 +11,3,0,1,2,325773,0,8753.666,4.271732,0,10,1,34.16149,37.67319,0,0,0,71.83469,0,0,0,3,0,4,83.39137,9.967326,0,63,0,958.2,1,0,1.386294,6.865057,0,0,0,1,0,0,63,9.077342,1.386294,4.274367,1 +11,3,0,1,3,325773,0,8753.666,5.271732,0,10,1,65.84724,30.9921,0,0,0,96.83933,0,0,0,4,0,4,83.39137,9.967326,0,63,0,958.2,1,0,1.386294,6.865057,0,0,0,1,0,0,63,9.077342,1.386294,4.573053,1 +13,3,0,1,1,325791,0,11701.47,15.11294,0,12,1,15.45595,2.035033,0,0,0,17.49098,0,0,0,2,0,7,84.1,0,0,100,450,450,1,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,100,9.367555,1.94591,2.861686,1 +13,3,0,1,2,325791,0,11701.47,16.11294,0,12,1,26.13636,0,0,0,0,26.13636,0,0,0,2,0,7,84.1,0,0,100,450,450,1,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,100,9.367555,1.94591,3.263328,1 +13,3,0,1,3,325791,0,11701.47,17.11294,0,12,1,0,1.647161,0,0,0,1.647161,0,0,0,0,0,7,84.1,0,0,100,450,450,1,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,100,9.367555,1.94591,.4990531,1 +13,3,0,1,1,325792,0,11701.47,40.86516,1,12,1,27.82071,12.44204,44.02885,0,0,84.2916,0,0,0,2,1,7,59.6,13.8,1,83,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,83,9.367555,1.94591,4.434282,1 +13,3,0,1,2,325792,0,11701.47,41.86516,1,12,1,27.46212,12.12121,10.1089,0,0,49.69223,0,0,0,3,0,7,59.6,13.8,1,83,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,83,9.367555,1.94591,3.905849,1 +13,3,0,1,3,325792,0,11701.47,42.86516,1,12,1,134.3736,2.037278,33.48505,0,0,169.896,0,0,0,2,0,7,59.6,13.8,1,83,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,83,9.367555,1.94591,5.135186,1 +13,3,0,1,1,325793,0,11701.47,12.44627,0,12,1,36.06388,0,25.24472,0,0,61.30861,0,0,0,1,1,7,86.7,9.967326,0,100,450,450,1,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,100,9.367555,1.94591,4.11592,1 +13,3,0,1,2,325793,0,11701.47,13.44627,0,12,1,56.3447,4.285038,11.83712,0,0,72.46686,0,0,0,4,1,7,86.7,9.967326,0,100,450,450,1,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,100,9.367555,1.94591,4.283129,1 +13,3,0,1,3,325793,0,11701.47,14.44627,0,12,1,30.42913,0,10.83658,0,0,41.26571,0,0,0,1,1,7,86.7,9.967326,0,100,450,450,1,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,100,9.367555,1.94591,3.720032,1 +13,3,0,1,1,325794,0,11701.47,41.78234,0,12,1,43.14786,0,0,0,0,43.14786,0,0,0,1,0,7,61.2,20.7,1,64.8,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,64.8,9.367555,1.94591,3.764633,1 +13,3,0,1,2,325794,0,11701.47,42.78234,0,12,1,17.47159,0,0,0,0,17.47159,0,0,0,0,0,7,61.2,20.7,1,64.8,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,64.8,9.367555,1.94591,2.860576,1 +13,3,0,1,3,325794,0,11701.47,43.78234,0,12,1,33.81014,0,19.93932,0,0,53.74946,0,0,0,2,1,7,61.2,20.7,1,64.8,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,64.8,9.367555,1.94591,3.984334,1 +13,3,0,1,1,325796,0,11701.47,7.474333,1,12,1,184.9305,19.96394,0,0,0,204.8944,0,0,0,10,0,7,73.3,9.967326,0,55.6,450,450,1,1,1.94591,6.109248,1,4.564348,6.160541,0,0,0,55.6,9.367555,1.94591,5.322495,1 +13,3,0,1,2,325796,0,11701.47,8.474333,1,12,1,72.44318,12.92614,0,0,0,85.36932,0,0,0,5,1,7,73.3,9.967326,0,55.6,450,450,1,1,1.94591,6.109248,1,4.564348,6.160541,0,0,0,55.6,9.367555,1.94591,4.446987,1 +13,3,0,1,3,325796,0,11701.47,9.474333,1,12,1,314.4343,11.00997,8.669268,0,0,334.1136,0,0,0,11,6,7,73.3,9.967326,0,55.6,450,450,1,1,1.94591,6.109248,1,4.564348,6.160541,0,0,0,55.6,9.367555,1.94591,5.811481,1 +13,3,0,1,1,325797,0,11701.47,10.22587,0,12,1,442.3596,6.903658,12.87996,0,0,462.1432,0,0,0,10,1,7,85,9.967326,0,100,450,450,1,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,100,9.367555,1.94591,6.135875,1 +13,3,0,1,2,325797,0,11701.47,11.22587,0,12,1,75.28409,9.351326,21.7803,0,504.6165,611.0322,1,0,0,7,1,7,85,9.967326,0,100,450,450,1,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,100,9.367555,1.94591,6.41515,1 +13,3,0,1,3,325797,0,11701.47,12.22587,0,12,1,28.60858,8.495882,0,0,0,37.10447,0,0,0,4,0,7,85,9.967326,0,100,450,450,1,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,100,9.367555,1.94591,3.613737,1 +13,3,0,1,1,325798,0,11701.47,13.88912,1,12,1,17.77434,.7727975,0,0,0,18.54714,0,0,0,1,0,7,87.8,0,0,90.9,450,450,1,1,1.94591,6.109248,1,4.564348,6.160541,0,0,0,90.9,9.367555,1.94591,2.920316,1 +13,3,0,1,2,325798,0,11701.47,14.88912,1,12,1,53.0303,2.982955,0,0,0,56.01326,0,0,0,4,1,7,87.8,0,0,90.9,450,450,1,1,1.94591,6.109248,1,4.564348,6.160541,0,0,0,90.9,9.367555,1.94591,4.025589,1 +13,3,0,1,3,325798,0,11701.47,15.88912,1,12,1,53.31599,6.870394,21.23971,0,0,81.42609,0,0,0,3,1,7,87.8,0,0,90.9,450,450,1,1,1.94591,6.109248,1,4.564348,6.160541,0,0,0,90.9,9.367555,1.94591,4.399696,1 +10,3,50,1,1,325829,0,3559.531,3.937029,1,10,1,7.08502,1.012146,0,0,0,8.097166,0,0,0,1,0,2,83.39137,9.967326,0,88.9,705,705,1,1,.6931472,6.558198,0,3.931826,7.251345,0,0,0,88.9,8.177665,.6931472,2.091514,1 +10,3,50,1,2,325829,0,3559.531,4.937029,1,10,1,19.95338,1.351981,0,0,0,21.30536,0,0,0,2,0,2,83.39137,9.967326,0,88.9,705,705,1,1,.6931472,6.558198,0,3.931826,7.251345,0,0,0,88.9,8.177665,.6931472,3.058959,1 +10,3,50,1,3,325829,0,3559.531,5.937029,1,10,1,35.69902,0,23.08679,0,0,58.7858,0,0,0,1,1,2,83.39137,9.967326,0,88.9,705,705,1,1,.6931472,6.558198,0,3.931826,7.251345,0,0,0,88.9,8.177665,.6931472,4.0739,1 +10,3,50,1,1,325830,0,3559.531,21.16632,1,10,1,31.26012,7.135628,0,0,0,38.39575,0,0,0,2,1,2,55.9,6.9,0,55.7,705,705,0,0,.6931472,6.558198,0,3.931826,7.251345,1,0,0,55.7,8.177665,.6931472,3.647947,1 +10,3,50,1,2,325830,0,3559.531,22.16632,1,10,1,35.33799,0,0,0,0,35.33799,0,0,0,3,0,2,55.9,6.9,0,55.7,705,705,0,0,.6931472,6.558198,0,3.931826,7.251345,1,0,0,55.7,8.177665,.6931472,3.564959,1 +10,3,50,1,3,325830,0,3559.531,23.16632,1,10,1,87.85806,3.163745,0,0,0,91.0218,0,0,0,5,0,2,55.9,6.9,0,55.7,705,705,0,0,.6931472,6.558198,0,3.931826,7.251345,1,0,0,55.7,8.177665,.6931472,4.511099,1 +10,3,50,1,1,325831,0,3391.789,47.90691,1,10,1,102.2267,149.0891,0,0,0,251.3158,0,0,0,7,0,1,56.3,20.7,1,56.8,735,735,0,0,0,6.599871,0,3.931826,7.293018,0,1,0,56.8,8.129408,0,5.526711,1 +10,3,50,1,2,325831,0,3391.789,48.90691,1,10,1,38.41492,126.4336,0,0,0,164.8485,0,0,0,3,0,1,56.3,20.7,1,56.8,735,735,0,0,0,6.599871,0,3.931826,7.293018,0,1,0,56.8,8.129408,0,5.105027,1 +10,3,50,1,3,325831,0,3391.789,49.90691,1,10,1,29.07225,83.49722,20.94912,0,0,133.5186,0,0,0,2,1,1,56.3,20.7,1,56.8,735,735,0,0,0,6.599871,0,3.931826,7.293018,0,1,0,56.8,8.129408,0,4.894241,1 +15,3,95,1,1,325832,0,6723.167,8.985626,1,12,1,46.80187,0,29.9012,0,0,76.70307,0,0,0,4,0,5,85,9.967326,0,100,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,1,0,100,8.813463,1.609438,4.339942,1 +15,3,95,1,2,325832,0,6723.167,9.985626,1,12,1,16.24463,4.061156,18.15576,0,0,38.46154,0,0,0,2,0,5,85,9.967326,0,100,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,1,0,100,8.813463,1.609438,3.649659,1 +15,3,95,1,3,325832,0,6723.167,10.98563,1,12,1,14.04741,0,25.46093,0,0,39.50834,0,0,0,2,0,5,85,9.967326,0,100,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,1,0,100,8.813463,1.609438,3.676512,1 +15,3,95,1,1,325833,0,6723.167,32.20808,1,12,1,0,1.794072,0,0,0,1.794072,0,0,0,0,0,5,92,3.4,0,93.2,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,1,0,0,93.2,8.813463,1.609438,.5844878,1 +15,3,95,1,2,325833,0,6723.167,33.20808,1,12,1,10.51123,0,0,0,0,10.51123,0,0,0,1,0,5,92,3.4,0,93.2,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,1,0,0,93.2,8.813463,1.609438,2.352444,1 +15,3,95,1,3,325833,0,6723.167,34.20808,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,92,3.4,0,93.2,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,1,0,0,93.2,8.813463,1.609438,,0 +15,3,95,1,1,325834,0,6723.167,6.299795,1,12,1,5.200208,0,0,0,0,5.200208,0,0,0,1,0,5,85,9.967326,0,81.5,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,1,0,81.5,8.813463,1.609438,1.648699,1 +15,3,95,1,2,325834,0,6723.167,7.299795,1,12,1,6.688963,2.126135,0,0,0,8.815098,0,0,0,1,0,5,85,9.967326,0,81.5,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,1,0,81.5,8.813463,1.609438,2.176466,1 +15,3,95,1,3,325834,0,6723.167,8.299794,1,12,1,4.828797,0,0,0,0,4.828797,0,0,0,1,0,5,85,9.967326,0,81.5,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,1,0,81.5,8.813463,1.609438,1.574597,1 +15,3,95,1,1,325835,0,6723.167,33.36345,0,15,1,0,0,0,0,0,0,0,0,0,0,0,5,82.4,3.4,0,84.1,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,84.1,8.813463,1.609438,,0 +15,3,95,1,2,325835,0,6723.167,34.36345,0,15,1,0,0,29.86144,0,0,29.86144,0,0,0,0,0,5,82.4,3.4,0,84.1,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,84.1,8.813463,1.609438,3.396568,1 +15,3,95,1,3,325835,0,6723.167,35.36345,0,15,1,51.75593,0,0,0,0,51.75593,0,0,0,1,0,5,82.4,3.4,0,84.1,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,84.1,8.813463,1.609438,3.946539,1 +15,3,95,1,1,325836,0,6723.167,3.887748,1,12,1,5.200208,2.730109,0,0,0,7.930317,0,0,0,1,0,5,83.39137,9.967326,0,96.3,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,1,0,96.3,8.813463,1.609438,2.070693,1 +15,3,95,1,2,325836,0,6723.167,4.887748,1,12,1,7.166746,2.388916,0,0,0,9.555662,0,0,0,1,0,5,83.39137,9.967326,0,96.3,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,1,0,96.3,8.813463,1.609438,2.257134,1 +15,3,95,1,3,325836,0,6723.167,5.887748,1,12,1,17.12028,12.53292,0,0,0,29.6532,0,0,0,3,0,5,83.39137,9.967326,0,96.3,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,1,0,96.3,8.813463,1.609438,3.38957,1 +14,3,95,1,1,325845,0,7090.688,38.03422,1,18,1,0,22.51417,31.9423,803.7094,0,54.45647,0,0,39,0,0,1,77.7,20.7,0,83,600,600,0,0,0,6.39693,0,4.564348,6.448223,0,0,0,83,8.866678,0,3.997402,1 +14,3,95,1,2,325845,0,7090.688,39.03422,1,18,1,21.7803,0,26.51515,662.8788,0,48.29546,0,0,34,1,1,1,77.7,20.7,0,83,600,600,0,0,0,6.39693,0,4.564348,6.448223,0,0,0,83,8.866678,0,3.877337,1 +14,3,95,1,3,325845,0,7090.688,40.03422,1,18,1,54.18292,14.13091,15.49632,34.67707,342.4577,426.2679,1,0,2,2,1,1,77.7,20.7,0,83,600,600,0,0,0,6.39693,0,4.564348,6.448223,0,0,0,83,8.866678,0,6.055068,1 +16,3,95,1,1,325846,0,7788.27,54.42026,0,7,1,73.54443,2.328907,0,0,0,75.87334,0,0,0,5,0,2,74.46748,6.9,0,68.2,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,68.2,8.960503,.6931472,4.329065,1 +16,3,95,1,2,325846,0,7788.27,55.42026,0,7,1,0,0,0,0,0,0,0,0,0,0,0,2,74.46748,6.9,0,68.2,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,68.2,8.960503,.6931472,,0 +16,3,95,1,3,325846,0,7788.27,56.42026,0,7,1,30.73947,0,0,0,0,30.73947,0,0,0,1,0,2,74.46748,6.9,0,68.2,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,68.2,8.960503,.6931472,3.425547,1 +16,3,95,1,1,325848,0,7788.27,16.96099,1,9,1,48.56997,0,0,0,0,48.56997,0,0,0,3,0,2,61.2,6.9,0,68.2,1000,1000,1,1,.6931472,6.907755,0,4.564348,6.959049,0,0,0,68.2,8.960503,.6931472,3.883005,1 +16,3,95,1,2,325848,0,7788.27,17.96099,1,9,1,0,0,0,0,0,0,0,0,0,0,0,2,61.2,6.9,0,68.2,1000,1000,1,1,.6931472,6.907755,0,4.564348,6.959049,0,0,0,68.2,8.960503,.6931472,,0 +16,3,95,1,3,325848,0,7788.27,18.96099,1,9,1,0,0,0,0,0,0,0,0,0,0,0,2,61.2,6.9,0,68.2,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,68.2,8.960503,.6931472,,0 +15,3,95,1,1,325888,0,5282.288,7.655031,1,12,1,6.128703,28.98366,0,0,0,35.11236,0,0,0,1,0,3,91.7,9.967326,0,77.8,468,468,1,1,1.098612,6.148468,0,4.564348,6.199761,0,0,0,77.8,8.572304,1.098612,3.558553,1 +15,3,95,1,2,325888,0,5282.288,8.655031,1,12,1,9.376465,24.56634,0,0,0,33.9428,0,0,0,2,0,3,91.7,9.967326,0,77.8,468,468,1,1,1.098612,6.148468,0,4.564348,6.199761,0,0,0,77.8,8.572304,1.098612,3.524677,1 +15,3,95,1,3,325888,0,5282.288,9.655031,1,12,1,9.88822,7.274291,0,0,0,17.16251,0,0,0,2,0,3,91.7,9.967326,0,77.8,468,468,1,1,1.098612,6.148468,0,4.564348,6.199761,0,0,0,77.8,8.572304,1.098612,2.842727,1 +15,3,95,1,1,325889,0,5282.288,5.385353,0,12,1,44.12666,24.10623,0,0,0,68.23289,0,0,0,4,0,3,100,9.967326,0,92.6,468,468,1,0,1.098612,6.148468,0,4.564348,6.199761,0,0,0,92.6,8.572304,1.098612,4.222927,1 +15,3,95,1,2,325889,0,5282.288,6.385353,0,12,1,16.40881,6.990155,0,0,0,23.39897,0,0,0,2,0,3,100,9.967326,0,92.6,468,468,1,0,1.098612,6.148468,0,4.564348,6.199761,0,0,0,92.6,8.572304,1.098612,3.152692,1 +15,3,95,1,3,325889,0,5282.288,7.385353,0,12,1,28.8908,13.67154,0,0,0,42.56234,0,0,0,3,0,3,100,9.967326,0,92.6,468,468,1,0,1.098612,6.148468,0,4.564348,6.199761,0,0,0,92.6,8.572304,1.098612,3.75097,1 +15,3,95,1,1,325890,0,5282.288,41.07597,1,12,1,89.88764,46.06231,26.55771,0,0,162.5077,0,0,0,6,1,3,71.3,6.9,0,95.5,468,468,0,0,1.098612,6.148468,0,4.564348,6.199761,0,0,0,95.5,8.572304,1.098612,5.090725,1 +15,3,95,1,2,325890,0,5282.288,42.07597,1,12,1,127.7778,9.784341,14.0647,0,0,151.6268,0,0,0,2,0,3,71.3,6.9,0,95.5,468,468,0,0,1.098612,6.148468,0,4.564348,6.199761,0,0,0,95.5,8.572304,1.098612,5.021422,1 +15,3,95,1,3,325890,0,5282.288,43.07597,1,12,1,0,5.257954,0,0,0,5.257954,0,0,0,0,0,3,71.3,6.9,0,95.5,468,468,0,0,1.098612,6.148468,0,4.564348,6.199761,0,0,0,95.5,8.572304,1.098612,1.659742,1 +13,3,0,1,1,325906,1,2344.868,25.56058,0,17,1,23.40094,0,0,0,0,23.40094,0,0,0,2,0,1,93.1,3.4,0,89.8,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,89.8,7.760411,0,3.152776,1 +13,3,0,1,2,325906,1,2344.868,26.56058,0,17,1,0,0,0,0,0,0,0,0,0,0,0,1,93.1,3.4,0,89.8,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,89.8,7.760411,0,,0 +13,3,0,1,3,325906,1,2344.868,27.56058,0,17,1,0,0,0,0,0,0,0,0,0,0,0,1,93.1,3.4,0,89.8,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,89.8,7.760411,0,,0 +13,3,0,1,1,325930,0,9421.701,45.20465,0,16,1,49.45904,0,25.24472,0,0,74.70376,0,0,0,0,9,5,63.3,10.3,0,71.6,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,71.6,9.150877,1.609438,4.31353,1 +13,3,0,1,2,325930,0,9421.701,46.20465,0,16,1,0,0,0,0,0,0,0,0,0,0,0,5,63.3,10.3,0,71.6,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,71.6,9.150877,1.609438,,0 +13,3,0,1,3,325930,0,9421.701,47.20465,0,16,1,36.84439,0,26.658,0,0,63.50238,0,0,0,0,2,5,63.3,10.3,0,71.6,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,71.6,9.150877,1.609438,4.151077,1 +13,3,0,1,1,325931,0,9421.701,14.83368,0,12,1,521.3395,.4327666,29.93302,0,0,551.7053,0,0,0,6,1,5,72.9,0,0,88.6,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,88.6,9.150877,1.609438,6.313014,1 +13,3,0,1,2,325931,0,9421.701,15.83368,0,12,1,5.681818,0,0,0,0,5.681818,0,0,0,1,0,5,72.9,0,0,88.6,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,88.6,9.150877,1.609438,1.737271,1 +13,3,0,1,3,325931,0,9421.701,16.83368,0,12,1,8.235804,0,0,0,0,8.235804,0,0,0,2,0,5,72.9,0,0,88.6,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,88.6,9.150877,1.609438,2.108491,1 +13,3,0,1,1,325932,0,9421.701,17.57153,0,12,1,23.18393,0,27.30551,0,0,50.48944,0,0,0,1,1,5,78.2,3.4,0,90.9,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,90.9,9.150877,1.609438,3.921764,1 +13,3,0,1,2,325932,0,9421.701,18.57153,0,12,1,0,0,0,42.61364,0,0,0,0,3,0,0,5,78.2,3.4,0,90.9,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,90.9,9.150877,1.609438,,0 +13,3,0,1,3,325932,0,9421.701,19.57153,0,12,1,25.57434,0,23.40702,82.35804,0,48.98136,0,0,11,1,1,5,78.2,3.4,0,90.9,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,90.9,9.150877,1.609438,3.89144,1 +13,3,0,1,1,325933,0,9421.701,15.9781,0,12,1,10.30397,1.365276,27.82071,0,0,39.48995,0,0,0,0,1,5,77.7,0,0,93.2,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,93.2,9.150877,1.609438,3.676046,1 +13,3,0,1,2,325933,0,9421.701,16.9781,0,12,1,5.681818,.7102273,0,0,0,6.392045,0,0,0,1,0,5,77.7,0,0,93.2,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,93.2,9.150877,1.609438,1.855054,1 +13,3,0,1,3,325933,0,9421.701,17.9781,0,12,1,10.83658,0,24.27395,0,0,35.11053,0,0,0,0,1,5,77.7,0,0,93.2,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,93.2,9.150877,1.609438,3.558501,1 +13,3,0,1,1,325934,0,9421.701,40.44079,1,12,1,68.41834,20.71097,0,15.45595,0,89.12932,0,0,1,4,0,5,40.4,20.7,0,61.4,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,61.4,9.150877,1.609438,4.490088,1 +13,3,0,1,2,325934,0,9421.701,41.44079,1,12,1,53.97727,3.29072,0,0,0,57.26799,0,0,0,5,0,5,40.4,20.7,0,61.4,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,61.4,9.150877,1.609438,4.047742,1 +13,3,0,1,3,325934,0,9421.701,42.44079,1,12,1,315.1539,2.362375,0,0,0,317.5163,0,0,0,3,0,5,40.4,20.7,0,61.4,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,61.4,9.150877,1.609438,5.760529,1 +18,3,25,1,1,325935,0,9527.272,14.80082,1,12,1,11.23596,2.37998,0,0,0,13.61593,0,0,0,2,0,5,76.6,0,0,63.6,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,63.6,9.162019,1.609438,2.611241,1 +18,3,25,1,2,325935,0,9527.272,15.80082,1,12,1,1.875293,2.906704,0,0,0,4.781997,0,0,0,0,0,5,76.6,0,0,63.6,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,63.6,9.162019,1.609438,1.564858,1 +18,3,25,1,3,325935,0,9527.272,16.80082,1,12,1,139.3809,13.80052,161.221,0,3472.691,3787.094,1,0,0,6,0,5,76.6,0,0,63.6,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,63.6,9.162019,1.609438,8.239354,1 +18,3,25,1,1,325936,0,9527.272,38.77071,0,7,1,15.32176,15.18897,0,61.28703,0,30.51073,0,0,5,0,0,5,68.6,10.3,0,64.8,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,64.8,9.162019,1.609438,3.418078,1 +18,3,25,1,2,325936,0,9527.272,39.77071,0,7,1,12.65823,7.069855,0,0,0,19.72808,0,0,0,0,0,5,68.6,10.3,0,64.8,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,64.8,9.162019,1.609438,2.982043,1 +18,3,25,1,3,325936,0,9527.272,40.77071,0,7,1,0,1.569218,0,0,0,1.569218,0,0,0,0,0,5,68.6,10.3,0,64.8,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,64.8,9.162019,1.609438,.4505771,1 +18,3,25,1,1,325937,0,9527.272,11.0308,1,12,1,11.23596,1.838611,0,0,0,13.07457,0,0,0,2,0,5,90,9.967326,0,85.2,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,85.2,9.162019,1.609438,2.570669,1 +18,3,25,1,2,325937,0,9527.272,12.0308,1,12,1,0,.9376465,0,0,0,.9376465,0,0,0,0,0,5,90,9.967326,0,85.2,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,85.2,9.162019,1.609438,-.0643823,1 +18,3,25,1,3,325937,0,9527.272,13.0308,1,12,1,30.09458,2.192605,0,0,0,32.28719,0,0,0,2,0,5,90,9.967326,0,85.2,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,85.2,9.162019,1.609438,3.474671,1 +18,3,25,1,1,325938,0,9527.272,16.00274,0,12,1,22.98264,26.21553,28.60061,0,0,77.79877,0,0,0,2,0,5,83.5,13.8,0,70.2,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,70.2,9.162019,1.609438,4.354125,1 +18,3,25,1,2,325938,0,9527.272,17.00274,0,12,1,41.72527,23.32865,0,0,0,65.05392,0,0,0,2,0,5,83.5,13.8,0,70.2,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,70.2,9.162019,1.609438,4.175216,1 +18,3,25,1,3,325938,0,9527.272,18.00274,0,12,1,43.37919,10.64058,24.07567,0,0,78.09544,0,0,0,2,1,5,83.5,13.8,0,70.2,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,70.2,9.162019,1.609438,4.357932,1 +18,3,25,1,1,325939,0,9527.272,36.04654,1,12,1,33.86108,5.132789,0,0,764.1982,803.192,2,0,0,4,0,5,77.7,17.2,0,88.6,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,88.6,9.162019,1.609438,6.688594,1 +18,3,25,1,2,325939,0,9527.272,37.04654,1,12,1,29.06704,3.42241,0,0,0,32.48945,0,0,0,2,3,5,77.7,17.2,0,88.6,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,88.6,9.162019,1.609438,3.480916,1 +18,3,25,1,3,325939,0,9527.272,38.04654,1,12,1,16.16509,2.55804,0,0,0,18.72313,0,0,0,1,1,5,77.7,17.2,0,88.6,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,88.6,9.162019,1.609438,2.92976,1 +13,3,0,1,1,325940,0,10690.91,10.73238,0,12,1,10.2145,2.681308,11.23596,0,0,24.13177,0,0,0,0,1,4,88.3,9.967326,0,100,450,492.84,1,0,1.386294,6.200184,1,4.564348,6.160541,0,0,0,100,9.277243,1.386294,3.183529,1 +13,3,0,1,2,325940,0,10690.91,11.73238,0,12,1,19.69058,9.610877,0,0,0,29.30145,0,0,0,3,0,4,88.3,9.967326,0,100,450,492.84,1,0,1.386294,6.200184,1,4.564348,6.160541,0,0,0,100,9.277243,1.386294,3.377637,1 +13,3,0,1,3,325940,0,10690.91,12.73238,0,12,1,8.598453,6.083405,0,0,0,14.68186,0,0,0,0,1,4,88.3,9.967326,0,100,450,492.84,1,0,1.386294,6.200184,1,4.564348,6.160541,0,0,0,100,9.277243,1.386294,2.686613,1 +13,3,0,1,1,325941,0,10690.91,34.90486,1,12,1,9.193054,0,16.85393,0,0,26.04699,0,0,0,0,1,4,66.5,17.2,0,96.6,450,492.84,0,0,1.386294,6.200184,1,4.564348,6.160541,0,0,0,96.6,9.277243,1.386294,3.259902,1 +13,3,0,1,2,325941,0,10690.91,35.90486,1,12,1,62.82232,4.664792,26.2541,0,0,93.74121,0,0,0,2,1,4,66.5,17.2,0,96.6,450,492.84,0,0,1.386294,6.200184,1,4.564348,6.160541,0,0,0,96.6,9.277243,1.386294,4.540538,1 +13,3,0,1,3,325941,0,10690.91,36.90486,1,12,1,33.53396,0,0,0,0,33.53396,0,0,0,2,0,4,66.5,17.2,0,96.6,450,492.84,0,0,1.386294,6.200184,1,4.564348,6.160541,0,0,0,96.6,9.277243,1.386294,3.512559,1 +13,3,0,1,1,325942,0,10690.91,8.807666,1,12,1,8.171603,0,0,0,0,8.171603,0,0,0,1,0,4,75,9.967326,0,100,450,492.84,1,1,1.386294,6.200184,1,4.564348,6.160541,0,0,0,100,9.277243,1.386294,2.100665,1 +13,3,0,1,2,325942,0,10690.91,9.807666,1,12,1,23.90999,4.758556,0,0,0,28.66854,0,0,0,2,0,4,75,9.967326,0,100,450,492.84,1,1,1.386294,6.200184,1,4.564348,6.160541,0,0,0,100,9.277243,1.386294,3.3558,1 +13,3,0,1,3,325942,0,10690.91,10.80767,1,12,1,31.92175,0,0,0,0,31.92175,0,0,0,1,0,4,75,9.967326,0,100,450,492.84,1,1,1.386294,6.200184,1,4.564348,6.160541,0,0,0,100,9.277243,1.386294,3.463288,1 +13,3,0,1,1,325943,0,10690.91,35.11841,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,71.3,3.4,0,97.7,450,492.84,0,0,1.386294,6.200184,1,4.564348,6.160541,0,0,0,97.7,9.277243,1.386294,,0 +13,3,0,1,2,325943,0,10690.91,36.11841,0,16,1,76.41819,0,3.047351,0,0,79.46554,0,0,0,2,2,4,71.3,3.4,0,97.7,450,492.84,0,0,1.386294,6.200184,1,4.564348,6.160541,0,0,0,97.7,9.277243,1.386294,4.375323,1 +13,3,0,1,3,325943,0,10690.91,37.11841,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,71.3,3.4,0,97.7,450,492.84,0,0,1.386294,6.200184,1,4.564348,6.160541,0,0,0,97.7,9.277243,1.386294,,0 +11,3,0,0,1,325955,0,4994.135,59.55647,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,73.4,24.1,1,86.4,0,137.28,0,0,0,4.922023,0,0,0,1,0,0,86.4,8.51622,0,,0 +11,3,0,0,2,325955,0,4994.135,60.55647,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,73.4,24.1,1,86.4,0,137.28,0,0,0,4.922023,0,0,0,1,0,0,86.4,8.51622,0,,0 +11,3,0,0,3,325955,0,4994.135,61.55647,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,73.4,24.1,1,86.4,0,137.28,0,0,0,4.922023,0,0,0,1,0,0,86.4,8.51622,0,,0 +11,3,0,1,1,326015,0,563.0499,14.3217,1,9,1,160.5516,10.57692,0,0,0,171.1285,0,0,0,6,0,2,70.7,3.4,0,80.7,0,0,1,1,.6931472,0,0,0,0,0,0,0,80.7,6.335143,.6931472,5.142415,1 +11,3,0,1,2,326015,0,563.0499,15.3217,1,9,1,95.49651,20.37296,6.293706,0,0,122.1632,0,0,0,6,0,2,70.7,3.4,0,80.7,0,0,1,1,.6931472,0,0,0,0,0,0,0,80.7,6.335143,.6931472,4.805357,1 +11,3,0,1,3,326015,0,563.0499,16.3217,1,9,1,169.3886,42.47542,0,0,0,211.864,0,0,0,10,0,2,70.7,3.4,0,80.7,0,0,1,1,.6931472,0,0,0,0,0,0,0,80.7,6.335143,.6931472,5.355945,1 +11,3,0,1,1,326016,0,563.0499,44.70363,1,9,1,46.05263,78.5172,26.31579,0,0,150.8856,0,0,0,1,0,2,60.1,17.2,0,77.4,0,0,0,0,.6931472,0,0,0,0,0,0,0,77.4,6.335143,.6931472,5.016522,1 +11,3,0,1,2,326016,0,563.0499,45.70363,1,9,1,17.24942,90.65268,0,0,0,107.9021,0,0,0,2,0,2,60.1,17.2,0,77.4,0,0,0,0,.6931472,0,0,0,0,0,0,0,77.4,6.335143,.6931472,4.681224,1 +11,3,0,1,3,326016,0,563.0499,46.70363,1,9,1,32.92005,70.3634,0,0,0,103.2835,0,0,0,1,0,2,60.1,17.2,0,77.4,0,0,0,0,.6931472,0,0,0,0,0,0,0,77.4,6.335143,.6931472,4.637477,1 +11,3,0,0,1,326017,0,7196.79,14.68309,1,11,1,83.14096,19.3667,0,0,0,102.5077,0,0,0,7,0,3,84.1,6.9,0,90.9,0,232.8,1,1,1.098612,5.45018,0,0,0,0,0,0,90.9,8.881529,1.098612,4.629938,1 +11,3,0,0,2,326017,0,7196.79,15.68309,1,11,1,116.4557,28.06376,26.2541,0,0,170.7736,0,0,0,6,1,3,84.1,6.9,0,90.9,0,232.8,1,1,1.098612,5.45018,0,0,0,0,0,0,90.9,8.881529,1.098612,5.140338,1 +11,3,0,0,3,326017,0,7196.79,16.68309,1,11,1,32.45916,23.00516,12.03783,0,0,67.50215,0,0,0,3,1,3,84.1,6.9,0,90.9,0,232.8,1,1,1.098612,5.45018,0,0,0,0,0,0,90.9,8.881529,1.098612,4.21216,1 +11,3,0,0,1,326018,0,7196.79,42.00137,0,10,1,14.09602,0,11.74668,0,0,25.8427,0,0,0,1,0,3,81.4,3.4,0,92,0,232.8,0,0,1.098612,5.45018,0,0,0,0,0,0,92,8.881529,1.098612,3.252028,1 +11,3,0,0,2,326018,0,7196.79,43.00137,0,10,1,16.87764,10.34224,35.63057,0,0,62.85044,0,0,0,1,1,3,81.4,3.4,0,92,0,232.8,0,0,1.098612,5.45018,0,0,0,0,0,0,92,8.881529,1.098612,4.140758,1 +11,3,0,0,3,326018,0,7196.79,44.00137,0,10,1,61.69389,14.57438,0,0,0,76.26827,0,0,0,3,0,3,81.4,3.4,0,92,0,232.8,0,0,1.098612,5.45018,0,0,0,0,0,0,92,8.881529,1.098612,4.334257,1 +11,3,0,0,1,326019,0,7196.79,38.33812,1,11,1,85.80184,37.68131,19.83657,0,988.9377,1132.257,1,0,0,7,0,3,81.4,6.9,0,83,0,232.8,0,0,1.098612,5.45018,0,0,0,0,1,0,83,8.881529,1.098612,7.031969,1 +11,3,0,0,2,326019,0,7196.79,39.33812,1,11,1,74.5429,10.76418,0,0,1152.532,1237.839,1,0,0,4,0,3,81.4,6.9,0,83,0,232.8,0,0,1.098612,5.45018,0,0,0,0,1,0,83,8.881529,1.098612,7.121122,1 +11,3,0,0,3,326019,0,7196.79,40.33812,1,11,1,17.19691,5.717971,0,0,383.7446,406.6595,1,0,0,2,0,3,81.4,6.9,0,83,0,232.8,0,0,1.098612,5.45018,0,0,0,0,1,0,83,8.881529,1.098612,6.007976,1 +11,3,0,1,1,326027,0,6105.572,60.26283,0,7,1,46.57393,48.91808,0,0,0,95.49201,0,0,0,4,0,2,61.7,20.7,0,71.4,0,232.8,0,0,.6931472,5.45018,0,0,0,1,0,0,71.4,8.717121,.6931472,4.559042,1 +11,3,0,1,2,326027,0,6105.572,61.26283,0,7,1,214.9858,52.05019,5.776515,78.125,0,272.8125,0,0,10,9,0,2,61.7,20.7,0,71.4,0,232.8,0,0,.6931472,5.45018,0,0,0,1,0,0,71.4,8.717121,.6931472,5.608785,1 +11,3,0,1,3,326027,0,6105.572,62.26283,0,7,1,113.1339,42.50108,40.31209,65.01951,2232.094,2428.041,2,0,8,14,0,2,61.7,20.7,0,71.4,0,232.8,0,0,.6931472,5.45018,0,0,0,1,0,0,71.4,8.717121,.6931472,7.79484,1 +11,3,0,1,1,326028,0,6105.572,56.47912,1,10,1,456.7388,194.7347,39.40752,0,881.221,1572.102,1,0,0,21,0,2,41,34.5,1,30.7,0,232.8,0,0,.6931472,5.45018,0,0,0,0,0,1,30.7,8.717121,.6931472,7.360169,1 +11,3,0,1,2,326028,0,6105.572,57.47912,1,10,1,85.70076,137.5331,28.68845,63.92046,0,251.9223,0,0,9,6,0,2,41,34.5,1,30.7,0,232.8,0,0,.6931472,5.45018,0,0,0,0,0,1,30.7,8.717121,.6931472,5.529121,1 +11,3,0,1,3,326028,0,6105.572,58.47912,1,10,1,77.24317,178.9597,55.6567,130.039,296.1985,608.0581,1,0,15,6,0,2,41,34.5,1,30.7,0,232.8,0,0,.6931472,5.45018,0,0,0,0,0,1,30.7,8.717121,.6931472,6.41027,1 +16,3,95,1,1,326054,0,2777.713,19.59754,1,9,1,15.68826,3.54251,0,0,0,19.23077,0,0,0,2,0,3,59,10.3,0,44.3,915,915,0,0,1.098612,6.818924,0,4.564348,6.870217,0,1,0,44.3,7.929743,1.098612,2.956511,1 +16,3,95,1,2,326054,0,2777.713,20.59754,1,9,1,55.1282,0,0,66.43356,588.6247,643.7529,1,0,4,6,1,3,59,10.3,0,44.3,915,915,0,0,1.098612,6.818924,0,4.564348,6.870217,0,1,0,44.3,7.929743,1.098612,6.467315,1 +16,3,95,1,3,326054,0,2777.713,21.59754,1,9,1,8.550663,2.116289,0,0,0,10.66695,0,0,0,1,0,4,59,10.3,0,44.3,915,915,0,0,1.386294,6.818924,0,4.564348,6.870217,0,1,0,44.3,7.929743,1.386294,2.36715,1 +16,3,95,1,4,326054,0,2777.713,22.59754,1,9,1,18.44735,0,0,0,1178.467,1196.914,1,0,0,1,0,4,59,10.3,0,44.3,915,915,0,0,1.386294,6.818924,0,4.564348,6.870217,0,1,0,44.3,7.929743,1.386294,7.087502,1 +16,3,95,1,5,326054,0,2777.713,23.59754,1,9,1,64.27819,0,0,0,0,64.27819,0,0,0,5,0,5,59,10.3,0,44.3,915,915,0,0,1.609438,6.818924,0,4.564348,6.870217,0,1,0,44.3,7.929743,1.609438,4.16322,1 +16,3,95,1,1,326055,0,2777.713,1.149897,1,9,1,65.91599,11.69028,0,0,0,77.60628,0,0,0,7,0,3,83.39137,9.967326,0,66.7,915,915,1,1,1.098612,6.818924,0,4.564348,6.870217,1,0,0,66.7,7.929743,1.098612,4.351648,1 +16,3,95,1,2,326055,0,2777.713,2.149897,1,9,1,34.96503,3.030303,0,0,168.951,206.9464,1,0,0,4,0,3,83.39137,9.967326,0,66.7,915,915,1,1,1.098612,6.818924,0,4.564348,6.870217,1,0,0,66.7,7.929743,1.098612,5.33246,1 +16,3,95,1,3,326055,0,2777.713,3.149897,1,9,1,10.2608,0,0,0,0,10.2608,0,0,0,2,0,4,83.39137,9.967326,0,66.7,915,915,1,1,1.386294,6.818924,0,4.564348,6.870217,1,0,0,66.7,7.929743,1.386294,2.32833,1 +16,3,95,1,4,326055,0,2777.713,4.149897,1,9,1,23.25134,0,0,0,0,23.25134,0,0,0,2,0,4,83.39137,9.967326,0,66.7,915,915,1,1,1.386294,6.818924,0,4.564348,6.870217,1,0,0,66.7,7.929743,1.386294,3.146363,1 +16,3,95,1,5,326055,0,2777.713,5.149897,1,9,1,20.72357,5.827187,0,0,0,26.55075,0,0,0,3,0,5,83.39137,9.967326,0,66.7,915,915,1,1,1.609438,6.818924,0,4.564348,6.870217,1,0,0,66.7,7.929743,1.609438,3.279058,1 +16,3,95,1,1,326056,0,2777.713,20.71184,0,12,1,54.1498,3.238866,0,0,0,57.38866,0,0,0,3,0,3,55.9,3.4,0,84.1,915,915,0,0,1.098612,6.818924,0,4.564348,6.870217,0,0,0,84.1,7.929743,1.098612,4.049847,1 +16,3,95,1,2,326056,0,2777.713,21.71184,0,12,1,22.37762,0,0,0,0,22.37762,0,0,0,2,0,3,55.9,3.4,0,84.1,915,915,0,0,1.098612,6.818924,0,4.564348,6.870217,0,0,0,84.1,7.929743,1.098612,3.108062,1 +16,3,95,1,3,326056,0,2777.713,22.71184,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,55.9,3.4,0,84.1,915,915,0,0,1.386294,6.818924,0,4.564348,6.870217,0,0,0,84.1,7.929743,1.386294,,0 +16,3,95,1,4,326056,0,2777.713,23.71184,0,12,1,87.6249,0,0,0,0,87.6249,0,0,0,1,9,4,55.9,3.4,0,84.1,915,915,0,0,1.386294,6.818924,0,4.564348,6.870217,0,0,0,84.1,7.929743,1.386294,4.473065,1 +16,3,95,1,5,326056,0,2777.713,24.71184,0,12,1,75.83421,5.226554,0,0,0,81.06077,0,0,0,3,1,5,55.9,3.4,0,84.1,915,915,0,0,1.609438,6.818924,0,4.564348,6.870217,0,0,0,84.1,7.929743,1.609438,4.395199,1 +13,3,0,1,1,326060,0,1757.771,25.7796,1,16,1,45.85265,8.655333,32.4575,69.55178,10.30912,97.2746,1,1,3,3,1,1,81.4,3.4,0,94.3,150,270.56,0,0,0,5.600494,1,4.564348,5.061929,0,0,0,94.3,7.472371,0,4.577538,1 +13,3,0,1,2,326060,0,1757.771,26.7796,1,16,1,83.92519,0,0,1053.504,0,83.92519,0,0,43,4,0,1,81.4,3.4,0,94.3,150,270.56,0,0,0,5.600494,1,4.564348,5.061929,0,0,0,94.3,7.472371,0,4.429926,1 +13,3,0,1,3,326060,0,1757.771,27.7796,1,16,1,125.7044,0,23.40702,845.2536,0,149.1114,0,0,39,3,0,1,81.4,3.4,0,94.3,150,270.56,0,0,0,5.600494,1,4.564348,5.061929,0,0,0,94.3,7.472371,0,5.004694,1 +11,3,0,1,1,326066,0,3873.314,20.35044,1,12,1,224.129,122.5429,0,0,0,346.6719,0,0,0,15,0,1,60.1,27.6,1,31.8,0,0,0,0,0,0,0,0,0,0,1,0,31.8,8.262124,0,5.848379,1 +11,3,0,1,2,326066,0,3873.314,21.35044,1,12,1,155.9484,90.68801,17.20019,0,0,263.8366,0,0,0,11,1,1,60.1,27.6,1,31.8,0,0,0,0,0,0,0,0,0,0,1,0,31.8,8.262124,0,5.57533,1 +11,3,0,1,3,326066,0,3873.314,22.35044,1,12,1,111.9622,104.3986,13.16945,0,0,229.5303,0,0,0,9,1,1,60.1,27.6,1,31.8,0,0,0,0,0,0,0,0,0,0,1,0,31.8,8.262124,0,5.436035,1 +14,3,95,1,1,326079,1,10370.09,13.24846,0,13,1,0,0,0,0,0,0,0,0,0,0,0,5,86.7,9.967326,0,88.9,750,750,1,0,1.609438,6.620073,0,4.564348,6.671367,0,0,0,88.9,9.246778,1.609438,,0 +14,3,95,1,2,326079,1,10370.09,14.24846,0,13,1,24.24242,0,0,0,0,24.24242,0,0,0,2,0,5,86.7,9.967326,0,88.9,750,750,1,0,1.609438,6.620073,0,4.564348,6.671367,0,0,0,88.9,9.246778,1.609438,3.188104,1 +14,3,95,1,3,326079,1,10370.09,15.24846,0,13,1,10.2608,4.275331,0,0,0,14.53613,0,0,0,1,0,6,86.7,9.967326,0,88.9,750,750,1,0,1.791759,6.620073,0,4.564348,6.671367,0,0,0,88.9,9.246778,1.791759,2.676637,1 +14,3,95,1,1,326080,1,10370.09,8.837782,1,13,1,0,1.037449,0,0,0,1.037449,0,0,0,0,0,5,83.3,9.967326,0,70.4,750,750,1,1,1.609438,6.620073,0,4.564348,6.671367,0,0,0,70.4,9.246778,1.609438,.0367652,1 +14,3,95,1,2,326080,1,10370.09,9.837782,1,13,1,0,0,0,0,0,0,0,0,0,0,0,5,83.3,9.967326,0,70.4,750,750,1,1,1.609438,6.620073,0,4.564348,6.671367,0,0,0,70.4,9.246778,1.609438,,0 +14,3,95,1,3,326080,1,10370.09,10.83778,1,13,1,51.30397,0,0,0,0,51.30397,0,0,0,2,0,6,83.3,9.967326,0,70.4,750,750,1,1,1.791759,6.620073,0,4.564348,6.671367,0,0,0,70.4,9.246778,1.791759,3.937768,1 +14,3,95,1,1,326081,1,10370.09,33.94935,1,13,1,7.591093,4.757085,0,0,0,12.34818,0,0,0,0,0,5,75,10.3,0,84.1,750,750,0,0,1.609438,6.620073,0,4.564348,6.671367,0,0,0,84.1,9.246778,1.609438,2.513509,1 +14,3,95,1,2,326081,1,10370.09,34.94935,1,13,1,19.11422,13.68298,25.17483,0,1070.923,1128.895,1,0,0,1,0,5,75,10.3,0,84.1,750,750,0,0,1.609438,6.620073,0,4.564348,6.671367,0,0,0,84.1,9.246778,1.609438,7.028995,1 +14,3,95,1,3,326081,1,10370.09,35.94935,1,13,1,13.25353,21.01325,10.2608,0,0,44.52758,0,0,0,2,0,6,75,10.3,0,84.1,750,750,0,0,1.791759,6.620073,0,4.564348,6.671367,0,0,0,84.1,9.246778,1.791759,3.796109,1 +14,3,95,1,1,326082,1,10370.09,6.850103,1,13,1,7.591093,1.037449,20.24291,0,0,28.87146,0,0,0,0,1,5,83.3,9.967326,0,100,750,750,1,1,1.609438,6.620073,0,4.564348,6.671367,0,0,0,100,9.246778,1.609438,3.362854,1 +14,3,95,1,2,326082,1,10370.09,7.850103,1,13,1,25.17483,2.494173,0,0,0,27.669,0,0,0,1,0,5,83.3,9.967326,0,100,750,750,1,1,1.609438,6.620073,0,4.564348,6.671367,0,0,0,100,9.246778,1.609438,3.320313,1 +14,3,95,1,3,326082,1,10370.09,8.850102,1,13,1,9.405729,0,23.08679,0,0,32.49252,0,0,0,0,1,6,83.3,9.967326,0,100,750,750,1,1,1.791759,6.620073,0,4.564348,6.671367,0,0,0,100,9.246778,1.791759,3.48101,1 +19,3,25,0,1,326098,0,5413.63,3.895962,0,12,1,21.84087,4.472179,0,0,0,26.31305,0,0,0,4,0,4,83.39137,9.967326,0,85.2,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,85.2,8.59686,1.386294,3.270065,1 +19,3,25,0,2,326098,0,5413.63,4.895962,0,12,1,28.42809,11.40946,0,0,0,39.83755,0,0,0,3,0,4,83.39137,9.967326,0,85.2,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,85.2,8.59686,1.386294,3.68481,1 +19,3,25,0,3,326098,0,5413.63,5.895962,0,12,1,18.43723,11.01405,0,0,0,29.45127,0,0,0,2,0,4,83.39137,9.967326,0,85.2,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,85.2,8.59686,1.386294,3.382737,1 +19,3,25,0,4,326098,0,5413.63,6.895962,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,83.39137,9.967326,0,85.2,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,85.2,8.59686,1.386294,,0 +19,3,25,0,5,326098,0,5413.63,7.895962,0,12,1,14.50326,0,0,0,0,14.50326,0,0,0,2,0,4,83.39137,9.967326,0,85.2,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,85.2,8.59686,1.386294,2.674374,1 +19,3,25,0,1,326099,0,5413.63,30.26968,0,12,1,134.2954,4.290172,0,0,0,138.5855,0,0,0,3,0,4,83,3.4,0,69.3,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,69.3,8.59686,1.386294,4.931488,1 +19,3,25,0,2,326099,0,5413.63,31.26968,0,12,1,10.98901,5.833732,0,0,0,16.82274,0,0,0,2,0,4,83,3.4,0,69.3,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,69.3,8.59686,1.386294,2.822732,1 +19,3,25,0,3,326099,0,5413.63,32.26968,0,12,1,0,3.525022,0,0,0,3.525022,0,0,0,0,0,4,83,3.4,0,69.3,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,69.3,8.59686,1.386294,1.259887,1 +19,3,25,0,4,326099,0,5413.63,33.26968,0,12,1,13.56203,7.271639,0,0,0,20.83367,0,0,0,2,0,4,83,3.4,0,69.3,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,69.3,8.59686,1.386294,3.03657,1 +19,3,25,0,5,326099,0,5413.63,34.26968,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,83,3.4,0,69.3,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,69.3,8.59686,1.386294,,0 +19,3,25,0,1,326100,0,5413.63,6.96783,0,12,1,24.44098,21.24285,0,26.00104,0,45.68383,0,0,1,4,0,4,75,9.967326,0,77.8,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,77.8,8.59686,1.386294,3.821744,1 +19,3,25,0,2,326100,0,5413.63,7.96783,0,12,1,75.01195,22.64214,0,21.50024,0,97.65408,0,0,1,6,0,4,75,9.967326,0,77.8,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,77.8,8.59686,1.386294,4.581431,1 +19,3,25,0,3,326100,0,5413.63,8.967831,0,12,1,26.44864,3.858648,0,0,0,30.30729,0,0,0,3,0,4,75,9.967326,0,77.8,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,77.8,8.59686,1.386294,3.411388,1 +19,3,25,0,4,326100,0,5413.63,9.967831,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,75,9.967326,0,77.8,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,77.8,8.59686,1.386294,,0 +19,3,25,0,5,326100,0,5413.63,10.96783,0,12,1,15.95359,5.424221,0,0,0,21.37781,0,0,0,2,0,4,75,9.967326,0,77.8,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,77.8,8.59686,1.386294,3.062353,1 +19,3,25,0,1,326101,0,5413.63,28.01643,1,12,1,30.31721,15.98544,0,0,0,46.30265,0,0,0,3,1,4,69.7,6.9,0,80.7,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,80.7,8.59686,1.386294,3.835199,1 +19,3,25,0,2,326101,0,5413.63,29.01643,1,12,1,13.85571,0,0,0,0,13.85571,0,0,0,1,0,4,69.7,6.9,0,80.7,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,80.7,8.59686,1.386294,2.628697,1 +19,3,25,0,3,326101,0,5413.63,30.01643,1,12,1,13.16945,0,0,0,0,13.16945,0,0,0,1,0,4,69.7,6.9,0,80.7,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,80.7,8.59686,1.386294,2.577899,1 +19,3,25,0,4,326101,0,5413.63,31.01643,1,12,1,15.15756,2.401276,0,0,0,17.55884,0,0,0,1,0,4,69.7,6.9,0,80.7,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,80.7,8.59686,1.386294,2.865557,1 +19,3,25,0,5,326101,0,5413.63,32.01643,1,12,1,19.94199,4.528644,0,0,0,24.47063,0,0,0,1,0,4,69.7,6.9,0,80.7,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,80.7,8.59686,1.386294,3.197474,1 +13,3,0,0,1,326102,0,5980.897,.9856263,0,12,1,45.24181,31.11284,0,0,183.1357,259.4904,1,0,0,7,0,3,83.39137,9.967326,0,100,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,100,8.696493,1.098612,5.55872,1 +13,3,0,0,2,326102,0,5980.897,1.985626,0,12,1,4.777831,1.194458,0,0,0,5.972289,0,0,0,1,0,4,83.39137,9.967326,0,100,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,100,8.696493,1.386294,1.78713,1 +13,3,0,0,3,326102,0,5980.897,2.985626,0,12,1,5.267779,0,0,0,0,5.267779,0,0,0,1,0,4,83.39137,9.967326,0,100,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,100,8.696493,1.386294,1.661609,1 +13,3,0,0,1,326103,0,5980.897,25.13347,1,12,1,57.61831,15.41862,34.84139,0,632.0593,739.9376,1,0,0,2,1,3,75.5,3.4,0,90.9,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,90.9,8.696493,1.098612,6.606566,1 +13,3,0,0,2,326103,0,5980.897,26.13347,1,12,1,13.76015,8.76732,0,0,0,22.52747,0,0,0,1,0,4,75.5,3.4,0,90.9,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,90.9,8.696493,1.386294,3.114736,1 +13,3,0,0,3,326103,0,5980.897,27.13347,1,12,1,13.52063,7.594381,0,0,0,21.11501,0,0,0,1,0,4,75.5,3.4,0,90.9,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,90.9,8.696493,1.386294,3.049984,1 +13,3,0,0,1,326104,0,5980.897,29.11157,0,17,1,80.73323,3.016121,0,0,0,83.74935,0,0,0,2,0,3,81.4,10.3,0,86.4,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,86.4,8.696493,1.098612,4.427828,1 +13,3,0,0,2,326104,0,5980.897,30.11157,0,17,1,6.21118,1.40946,0,0,0,7.62064,0,0,0,1,0,4,81.4,10.3,0,86.4,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,86.4,8.696493,1.386294,2.03086,1 +13,3,0,0,3,326104,0,5980.897,31.11157,0,17,1,56.18964,3.533802,0,0,0,59.72344,0,0,0,0,7,4,81.4,10.3,0,86.4,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,86.4,8.696493,1.386294,4.089725,1 +11,3,0,1,1,326105,0,4480.352,29.60712,1,11,1,39.22065,4.706478,0,0,0,43.92712,0,0,0,3,0,5,74.5,10.3,0,46.6,0,0,0,0,1.609438,0,0,0,0,1,0,0,46.6,8.407681,1.609438,3.782532,1 +11,3,0,1,2,326105,0,4480.352,30.60712,1,11,1,55.47786,23.04429,0,0,456.8765,535.3986,1,0,0,5,1,6,74.5,10.3,0,46.6,0,0,0,0,1.791759,0,0,0,0,1,0,0,46.6,8.407681,1.791759,6.283011,1 +11,3,0,1,3,326105,0,4480.352,31.60712,1,11,1,86.14793,5.728944,0,0,0,91.87687,0,0,0,3,0,6,74.5,10.3,0,46.6,0,0,0,0,1.791759,0,0,0,0,1,0,0,46.6,8.407681,1.791759,4.520449,1 +11,3,0,1,1,326106,0,4480.352,8.971937,1,11,1,13.96761,0,0,0,0,13.96761,0,0,0,1,0,5,98.3,9.967326,0,59.3,0,0,1,1,1.609438,0,0,0,0,0,0,0,59.3,8.407681,1.609438,2.636741,1 +11,3,0,1,2,326106,0,4480.352,9.971937,1,11,1,24.70862,7.412588,0,0,0,32.12121,0,0,0,2,0,6,98.3,9.967326,0,59.3,0,0,1,1,1.791759,0,0,0,0,0,0,0,59.3,8.407681,1.791759,3.469517,1 +11,3,0,1,3,326106,0,4480.352,10.97194,1,11,1,310.5601,16.54553,0,0,0,327.1056,0,0,0,4,0,6,98.3,9.967326,0,59.3,0,0,1,1,1.791759,0,0,0,0,0,0,0,59.3,8.407681,1.791759,5.790283,1 +11,3,0,1,2,326107,0,4480.352,11.20123,1,11,1,170.0699,6.037296,0,0,0,176.1072,0,0,0,10,0,6,88.3,9.967326,0,48.1,0,0,1,1,1.791759,0,0,0,0,0,1,0,48.1,8.407681,1.791759,5.171093,1 +11,3,0,1,3,326107,0,4480.352,12.20123,1,11,1,92.64643,2.757589,.8550662,0,0,96.25909,0,0,0,5,0,6,88.3,9.967326,0,48.1,0,0,1,1,1.791759,0,0,0,0,0,1,0,48.1,8.407681,1.791759,4.567043,1 +11,3,0,1,1,326108,0,4480.352,6.863792,1,11,1,13.66397,0,0,0,0,13.66397,0,0,0,2,0,5,91.7,9.967326,0,63,0,0,1,1,1.609438,0,0,0,0,1,0,0,63,8.407681,1.609438,2.614762,1 +11,3,0,1,2,326108,0,4480.352,7.863792,1,11,1,46.06061,6.037296,0,0,0,52.0979,0,0,0,4,0,6,91.7,9.967326,0,63,0,0,1,1,1.791759,0,0,0,0,1,0,0,63,8.407681,1.791759,3.953125,1 +11,3,0,1,3,326108,0,4480.352,8.863791,1,11,1,326.8662,0,0,0,0,326.8662,0,0,0,3,0,6,91.7,9.967326,0,63,0,0,1,1,1.791759,0,0,0,0,1,0,0,63,8.407681,1.791759,5.789551,1 +11,3,0,1,1,326116,0,4830.499,11.38125,0,9,1,127.7692,24.85832,0,0,0,152.6275,0,0,0,10,0,6,93.3,9.967326,0,96.3,0,0,1,0,1.791759,0,0,0,0,1,0,0,96.3,8.482912,1.791759,5.028,1 +11,3,0,1,2,326116,0,4830.499,12.38125,0,9,1,174.3608,2.722538,0,0,389.5928,566.6761,1,0,0,7,0,6,93.3,9.967326,0,96.3,0,0,1,0,1.791759,0,0,0,0,1,0,0,96.3,8.482912,1.791759,6.339788,1 +11,3,0,1,3,326116,0,4830.499,13.38125,0,9,1,35.4573,12.02861,0,0,0,47.48591,0,0,0,2,0,6,93.3,9.967326,0,96.3,0,0,1,0,1.791759,0,0,0,0,1,0,0,96.3,8.482912,1.791759,3.860433,1 +11,3,0,1,1,326117,0,4830.499,8.262834,1,9,1,27.82071,0,0,0,0,27.82071,0,0,0,3,0,6,100,9.967326,0,100,0,0,1,1,1.791759,0,0,0,0,1,0,0,100,8.482912,1.791759,3.325781,1 +11,3,0,1,2,326117,0,4830.499,9.262834,1,9,1,32.67046,0,0,0,0,32.67046,0,0,0,2,0,6,100,9.967326,0,100,0,0,1,1,1.791759,0,0,0,0,1,0,0,100,8.482912,1.791759,3.486471,1 +11,3,0,1,3,326117,0,4830.499,10.26283,1,9,1,7.368877,0,0,0,0,7.368877,0,0,0,1,0,6,100,9.967326,0,100,0,0,1,1,1.791759,0,0,0,0,1,0,0,100,8.482912,1.791759,1.997265,1 +11,3,0,1,1,326118,0,4830.499,7.214237,1,9,1,24.31736,2.96239,0,0,0,27.27975,0,0,0,2,0,6,100,9.967326,0,88.9,0,0,1,1,1.791759,0,0,0,0,1,0,0,88.9,8.482912,1.791759,3.306145,1 +11,3,0,1,2,326118,0,4830.499,8.214237,1,9,1,64.39394,31.58144,0,0,0,95.97538,0,0,0,6,0,6,100,9.967326,0,88.9,0,0,1,1,1.791759,0,0,0,0,1,0,0,88.9,8.482912,1.791759,4.564092,1 +11,3,0,1,3,326118,0,4830.499,9.214237,1,9,1,139.2284,52.62245,0,0,0,191.8509,0,0,0,38,0,6,100,9.967326,0,88.9,0,0,1,1,1.791759,0,0,0,0,1,0,0,88.9,8.482912,1.791759,5.256719,1 +11,3,0,1,1,326119,0,4830.499,9.952087,0,9,1,6.18238,0,0,0,0,6.18238,0,0,0,1,0,6,83.3,9.967326,0,74.1,0,0,1,0,1.791759,0,0,0,0,1,0,0,74.1,8.482912,1.791759,1.821703,1 +11,3,0,1,2,326119,0,4830.499,10.95209,0,9,1,15.15152,0,0,0,0,15.15152,0,0,0,2,0,6,83.3,9.967326,0,74.1,0,0,1,0,1.791759,0,0,0,0,1,0,0,74.1,8.482912,1.791759,2.718101,1 +11,3,0,1,3,326119,0,4830.499,11.95209,0,9,1,227.8544,1.473776,0,0,0,229.3281,0,0,0,1,0,6,83.3,9.967326,0,74.1,0,0,1,0,1.791759,0,0,0,0,1,0,0,74.1,8.482912,1.791759,5.435154,1 +11,3,0,1,1,326120,0,4830.499,33.24572,1,9,1,73.41576,0,0,0,0,73.41576,0,0,0,5,0,6,63.8,10.3,1,51.1,0,0,0,0,1.791759,0,0,0,0,1,0,0,51.1,8.482912,1.791759,4.296139,1 +11,3,0,1,2,326120,0,4830.499,34.24572,1,9,1,139.3939,6.841856,0,0,0,146.2358,0,0,0,3,0,6,63.8,10.3,1,51.1,0,0,0,0,1.791759,0,0,0,0,1,0,0,51.1,8.482912,1.791759,4.98522,1 +11,3,0,1,3,326120,0,4830.499,35.24572,1,9,1,16.47161,1.603814,0,0,0,18.07542,0,0,0,2,0,6,63.8,10.3,1,51.1,0,0,0,0,1.791759,0,0,0,0,1,0,0,51.1,8.482912,1.791759,2.894553,1 +11,3,0,1,1,326121,0,4830.499,33.26762,0,14,1,153.5806,3.323029,0,0,1946.27,2103.174,1,0,0,8,0,6,88.3,3.4,0,85.2,0,0,0,0,1.791759,0,0,0,0,0,0,0,85.2,8.482912,1.791759,7.651203,1 +11,3,0,1,2,326121,0,4830.499,34.26762,0,14,1,49.24242,6.628788,0,0,426.2263,482.0975,1,0,0,2,0,6,88.3,3.4,0,85.2,0,0,0,0,1.791759,0,0,0,0,0,0,0,85.2,8.482912,1.791759,6.178146,1 +11,3,0,1,3,326121,0,4830.499,35.26762,0,14,1,62.41872,0,0,0,0,62.41872,0,0,0,3,0,6,88.3,3.4,0,85.2,0,0,0,0,1.791759,0,0,0,0,0,0,0,85.2,8.482912,1.791759,4.133865,1 +11,3,0,0,1,326126,0,3175.366,7.192334,1,12,1,2.530364,7.059717,0,0,0,9.590081,0,0,0,0,0,6,85,9.967326,0,92.6,0,0,1,1,1.791759,0,0,0,0,1,0,0,92.6,8.063493,1.791759,2.260729,1 +11,3,0,0,1,326127,0,3175.366,5.489391,0,12,1,38.96761,8.19838,0,0,0,47.16599,0,0,0,3,0,6,88.3,9.967326,0,81.5,0,0,1,0,1.791759,0,0,0,0,0,0,0,81.5,8.063493,1.791759,3.853673,1 +11,3,0,0,1,326128,0,3175.366,4.580424,0,12,1,6.072875,1.771255,0,0,0,7.84413,0,0,0,1,0,6,83.39137,9.967326,0,70.4,0,0,1,0,1.791759,0,0,0,0,1,0,0,70.4,8.063493,1.791759,2.059765,1 +11,3,0,0,1,326129,0,3175.366,3.268994,1,12,1,52.88462,10.45041,0,0,0,63.33502,0,0,0,5,0,6,83.39137,9.967326,0,70.4,0,0,1,1,1.791759,0,0,0,0,1,0,0,70.4,8.063493,1.791759,4.148438,1 +11,3,0,0,1,326130,0,3175.366,1.555099,1,12,1,6.072875,7.84413,0,0,0,13.917,0,0,0,1,0,6,83.39137,9.967326,0,66.7,0,0,1,1,1.791759,0,0,0,0,1,0,0,66.7,8.063493,1.791759,2.633111,1 +11,3,0,0,1,326131,0,3175.366,30.12731,1,12,1,89.22065,13.23381,26.82186,37.95547,727.9605,857.2368,2,0,3,7,1,6,83,34.5,0,72.7,0,0,0,0,1.791759,0,0,0,0,1,0,0,72.7,8.063493,1.791759,6.753714,1 +11,3,0,0,2,326131,0,3175.366,31.12731,1,12,1,141.2121,18.9324,0,0,1570.751,1730.895,2,0,0,8,0,1,83,34.5,0,72.7,0,0,0,0,0,0,0,0,0,1,0,0,72.7,8.063493,0,7.456394,1 +11,3,0,0,3,326131,0,3175.366,32.12731,1,12,1,491.3596,46.38734,25.65199,0,0,563.3989,0,0,0,7,24,1,83,34.5,0,72.7,0,0,0,0,0,0,0,0,0,1,0,0,72.7,8.063493,0,6.333988,1 +13,3,0,0,1,326132,0,10826.39,25.63176,1,9,1,20.42901,6.639428,0,0,0,27.06844,0,0,0,2,0,2,77.7,6.9,1,67,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,67,9.289835,.6931472,3.298368,1 +13,3,0,0,2,326132,0,10826.39,26.63176,1,9,1,164.557,17.96531,16.40881,0,1710.291,1909.222,1,0,0,2,1,2,77.7,6.9,1,67,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,67,9.289835,.6931472,7.554451,1 +13,3,0,0,3,326132,0,10826.39,27.63176,1,9,1,27.08512,5.352537,0,0,0,32.43766,0,0,0,3,0,3,77.7,6.9,1,67,300,300,0,0,1.098612,5.703783,1,4.564348,5.755076,0,0,0,67,9.289835,1.098612,3.47932,1 +13,3,0,0,1,326133,0,10826.39,29.02396,0,12,1,6.128703,1.348315,0,0,0,7.477017,0,0,0,1,0,2,80.9,10.3,0,81.8,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,81.8,9.289835,.6931472,2.011834,1 +13,3,0,0,2,326133,0,10826.39,30.02396,0,12,1,11.72058,0,0,0,0,11.72058,0,0,0,1,0,2,80.9,10.3,0,81.8,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,81.8,9.289835,.6931472,2.461346,1 +13,3,0,0,3,326133,0,10826.39,31.02396,0,12,1,10.74806,0,28.37489,0,0,39.12296,0,0,0,0,1,3,80.9,10.3,0,81.8,300,300,0,0,1.098612,5.703783,1,4.564348,5.755076,0,0,0,81.8,9.289835,1.098612,3.666709,1 +11,3,0,0,1,326134,0,11897.95,34.69131,1,12,1,30.13279,0,0,0,0,30.13279,0,0,0,1,0,4,65.4,10.3,0,87.5,0,512.36,0,0,1.386294,6.239028,0,0,0,1,0,0,87.5,9.384205,1.386294,3.405614,1 +11,3,0,0,2,326134,0,11897.95,35.69131,1,12,1,15.00234,4.875762,0,0,0,19.87811,0,0,0,1,0,4,65.4,10.3,0,87.5,0,512.36,0,0,1.386294,6.239028,0,0,0,1,0,0,87.5,9.384205,1.386294,2.989619,1 +11,3,0,0,3,326134,0,11897.95,36.69131,1,12,1,26.22528,12.90198,0,0,0,39.12726,0,0,0,2,1,4,65.4,10.3,0,87.5,0,512.36,0,0,1.386294,6.239028,0,0,0,1,0,0,87.5,9.384205,1.386294,3.666819,1 +11,3,0,0,1,326135,0,11897.95,33.51677,1,12,1,257.4055,0,0,0,0,257.4055,0,0,0,6,0,4,87.2,3.4,0,60.2,0,512.36,0,0,1.386294,6.239028,0,0,0,1,0,0,60.2,9.384205,1.386294,5.550653,1 +11,3,0,0,2,326135,0,11897.95,34.51677,1,12,1,58.60291,7.548054,0,0,0,66.15096,0,0,0,2,2,4,87.2,3.4,0,60.2,0,512.36,0,0,1.386294,6.239028,0,0,0,1,0,0,60.2,9.384205,1.386294,4.191939,1 +11,3,0,0,3,326135,0,11897.95,35.51677,1,12,1,86.19949,3.108341,0,0,1637.115,1726.423,1,0,0,4,0,4,87.2,3.4,0,60.2,0,512.36,0,0,1.386294,6.239028,0,0,0,1,0,0,60.2,9.384205,1.386294,7.453807,1 +11,3,0,0,1,326136,0,11897.95,50.83915,0,14,1,54.39224,18.51379,0,0,0,72.90603,0,0,0,3,0,4,89.9,20.7,0,70.5,0,512.36,0,0,1.386294,6.239028,0,0,0,0,0,0,70.5,9.384205,1.386294,4.289171,1 +11,3,0,0,2,326136,0,11897.95,51.83915,0,14,1,35.16174,12.79887,28.12939,0,0,76.09001,0,0,0,3,1,4,89.9,20.7,0,70.5,0,512.36,0,0,1.386294,6.239028,0,0,0,0,0,0,70.5,9.384205,1.386294,4.331917,1 +11,3,0,0,3,326136,0,11897.95,52.83915,0,14,1,22.35598,16.57352,0,0,0,38.92949,0,0,0,4,0,4,89.9,20.7,0,70.5,0,512.36,0,0,1.386294,6.239028,0,0,0,0,0,0,70.5,9.384205,1.386294,3.661752,1 +11,3,0,0,1,326137,0,11897.95,56.49281,1,12,1,121.0419,104.8008,0,0,0,225.8427,0,0,0,8,0,4,83,41.4,1,53.4,0,512.36,0,0,1.386294,6.239028,0,0,0,1,0,0,53.4,9.384205,1.386294,5.419839,1 +11,3,0,0,2,326137,0,11897.95,57.49281,1,12,1,126.4416,103.9334,0,0,0,230.3751,0,0,0,7,0,4,83,41.4,1,53.4,0,512.36,0,0,1.386294,6.239028,0,0,0,1,0,0,53.4,9.384205,1.386294,5.439709,1 +11,3,0,0,3,326137,0,11897.95,58.49281,1,12,1,64.05847,80.82115,21.57352,0,0,166.4531,0,0,0,4,3,4,83,41.4,1,53.4,0,512.36,0,0,1.386294,6.239028,0,0,0,1,0,0,53.4,9.384205,1.386294,5.114714,1 +13,3,0,1,1,326146,0,3014.076,44.90075,0,11,1,29.06027,6.001021,24.51481,0,843.6926,903.2686,1,0,0,3,0,2,71.3,6.9,0,69.3,300,0,0,0,.6931472,0,1,4.564348,5.755076,1,0,0,69.3,8.01138,.6931472,6.80602,1 +13,3,0,1,2,326146,0,3014.076,45.90075,0,11,1,111.5799,1.875293,0,0,0,113.4552,0,0,0,7,0,2,71.3,6.9,0,69.3,300,0,0,0,.6931472,0,1,4.564348,5.755076,1,0,0,69.3,8.01138,.6931472,4.731408,1 +13,3,0,1,3,326146,0,3014.076,46.90075,0,11,1,98.40929,1.397249,0,0,1229.862,1329.669,1,0,0,6,1,2,71.3,6.9,0,69.3,300,0,0,0,.6931472,0,1,4.564348,5.755076,1,0,0,69.3,8.01138,.6931472,7.192685,1 +13,3,0,1,4,326146,0,3014.076,47.90075,0,11,1,13.57115,0,28.96472,0,0,42.53587,0,0,0,1,0,2,71.3,6.9,0,69.3,300,0,0,0,.6931472,0,1,4.564348,5.755076,1,0,0,69.3,8.01138,.6931472,3.750348,1 +13,3,0,1,5,326146,0,3014.076,48.90075,0,11,1,49.32767,0,0,0,0,49.32767,0,0,0,3,0,2,71.3,6.9,0,69.3,300,0,0,0,.6931472,0,1,4.564348,5.755076,1,0,0,69.3,8.01138,.6931472,3.898485,1 +13,3,0,1,1,326147,0,3014.076,25.14716,1,9,1,76.60879,6.256384,25.53626,0,907.7273,1016.129,1,0,0,4,0,2,78.2,10.3,0,65.9,300,0,0,0,.6931472,0,1,4.564348,5.755076,1,0,0,65.9,8.01138,.6931472,6.923755,1 +13,3,0,1,2,326147,0,3014.076,26.14716,1,9,1,113.0333,3.830286,0,0,0,116.8636,0,0,0,5,0,2,78.2,10.3,0,65.9,300,0,0,0,.6931472,0,1,4.564348,5.755076,1,0,0,65.9,8.01138,.6931472,4.761007,1 +13,3,0,1,3,326147,0,3014.076,27.14716,1,9,1,82.07223,6.771281,27.38607,0,0,116.2296,0,0,0,5,0,2,78.2,10.3,0,65.9,300,0,0,0,.6931472,0,1,4.564348,5.755076,1,0,0,65.9,8.01138,.6931472,4.755568,1 +13,3,0,1,4,326147,0,3014.076,28.14716,1,9,1,41.8767,6.843738,13.1834,0,0,61.90384,0,0,0,3,1,2,78.2,10.3,0,65.9,300,0,0,0,.6931472,0,1,4.564348,5.755076,1,0,0,65.9,8.01138,.6931472,4.125582,1 +13,3,0,1,5,326147,0,3014.076,29.14716,1,9,1,0,0,0,0,0,0,0,0,0,0,0,2,78.2,10.3,0,65.9,300,0,0,0,.6931472,0,1,4.564348,5.755076,1,0,0,65.9,8.01138,.6931472,,0 +13,3,0,1,1,326164,0,5493.255,29.5332,1,12,1,13.00052,0,0,52.00208,0,13.00052,0,0,7,2,0,4,66.5,3.4,0,85.2,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,85.2,8.611459,1.386294,2.564989,1 +13,3,0,1,2,326164,0,5493.255,30.5332,1,12,1,16.72241,3.511706,0,0,0,20.23411,0,0,0,2,0,4,66.5,3.4,0,85.2,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,85.2,8.611459,1.386294,3.00737,1 +13,3,0,1,3,326164,0,5493.255,31.5332,1,12,1,190.3863,11.12818,0,0,0,201.5145,0,0,0,9,0,4,66.5,3.4,0,85.2,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,85.2,8.611459,1.386294,5.305861,1 +13,3,0,1,4,326164,0,5493.255,32.5332,1,12,1,44.07658,9.988033,0,21.93857,0,54.06462,0,0,1,3,0,4,66.5,3.4,0,85.2,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,85.2,8.611459,1.386294,3.99018,1 +13,3,0,1,5,326164,0,5493.255,33.5332,1,12,1,764.4126,16.77302,0,30.45685,0,781.1857,0,0,7,8,0,4,66.5,3.4,0,85.2,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,85.2,8.611459,1.386294,6.660813,1 +13,3,0,1,1,326165,0,5493.255,5.546885,0,12,1,6.24025,0,0,5.200208,0,6.24025,0,0,1,1,0,4,85,9.967326,0,81.5,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,81.5,8.611459,1.386294,1.83102,1 +13,3,0,1,2,326165,0,5493.255,6.546885,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,85,9.967326,0,81.5,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,81.5,8.611459,1.386294,,0 +13,3,0,1,3,326165,0,5493.255,7.546885,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,85,9.967326,0,81.5,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,81.5,8.611459,1.386294,,0 +13,3,0,1,4,326165,0,5493.255,8.546885,0,12,1,6.781013,0,0,0,0,6.781013,0,0,0,1,0,4,85,9.967326,0,81.5,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,81.5,8.611459,1.386294,1.914127,1 +13,3,0,1,5,326165,0,5493.255,9.546885,0,12,1,39.52139,0,0,60.9137,0,39.52139,0,0,14,1,0,4,85,9.967326,0,81.5,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,81.5,8.611459,1.386294,3.676842,1 +13,3,0,1,1,326166,0,5493.255,33.40178,0,14,1,15.60062,0,0,83.20333,0,15.60062,0,0,10,0,0,4,77.7,3.4,0,90.9,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,90.9,8.611459,1.386294,2.747311,1 +13,3,0,1,2,326166,0,5493.255,34.40178,0,14,1,0,0,0,0,0,0,0,0,0,0,0,4,77.7,3.4,0,90.9,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,90.9,8.611459,1.386294,,0 +13,3,0,1,3,326166,0,5493.255,35.40178,0,14,1,10.97454,0,21.94908,0,0,32.92362,0,0,0,0,1,4,77.7,3.4,0,90.9,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,90.9,8.611459,1.386294,3.49419,1 +13,3,0,1,4,326166,0,5493.255,36.40178,0,14,1,166.8767,6.086957,2.393299,0,0,175.357,0,0,0,7,1,4,77.7,3.4,0,90.9,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,90.9,8.611459,1.386294,5.166824,1 +13,3,0,1,5,326166,0,5493.255,37.40178,0,14,1,62.00145,0,10.87745,30.45685,0,72.8789,0,0,7,2,0,4,77.7,3.4,0,90.9,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,90.9,8.611459,1.386294,4.288799,1 +13,3,0,1,1,326167,0,5493.255,4.205339,1,12,1,4.160166,0,0,0,0,4.160166,0,0,0,0,0,4,83.39137,9.967326,0,77.8,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,77.8,8.611459,1.386294,1.425555,1 +13,3,0,1,2,326167,0,5493.255,5.205339,1,12,1,5.733397,2.914477,0,0,0,8.647874,0,0,0,1,0,4,83.39137,9.967326,0,77.8,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,77.8,8.611459,1.386294,2.157314,1 +13,3,0,1,3,326167,0,5493.255,6.205339,1,12,1,28.5338,0,0,0,0,28.5338,0,0,0,2,0,4,83.39137,9.967326,0,77.8,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,77.8,8.611459,1.386294,3.351089,1 +13,3,0,1,4,326167,0,5493.255,7.205339,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,83.39137,9.967326,0,77.8,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,77.8,8.611459,1.386294,,0 +13,3,0,1,5,326167,0,5493.255,8.205338,1,12,1,9.06454,2.15736,0,0,0,11.2219,0,0,0,1,0,4,83.39137,9.967326,0,77.8,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,77.8,8.611459,1.386294,2.417867,1 +19,3,25,1,1,326187,0,1856.305,59.51814,1,12,1,38.81512,8.784474,37.02758,0,0,84.62717,0,0,0,4,1,1,64.4,17.2,0,58,750,750,0,0,0,6.620073,0,3.258096,8.006368,0,1,0,58,7.526882,0,4.438255,1 +19,3,25,1,2,326187,0,1856.305,60.51814,1,12,1,18.28411,3.000469,39.38115,0,0,60.66573,0,0,0,2,0,1,64.4,17.2,0,58,750,750,0,0,0,6.620073,0,3.258096,8.006368,0,1,0,58,7.526882,0,4.105379,1 +19,3,25,1,3,326187,0,1856.305,61.51814,1,12,1,46.47464,0,30.09458,0,0,76.56921,0,0,0,3,0,1,64.4,17.2,0,58,750,750,0,0,0,6.620073,0,3.258096,8.006368,0,1,0,58,7.526882,0,4.338195,1 +7,3,25,1,1,326237,1,2079.179,31.02259,1,7,1,196.1285,48.68421,8.805668,0,0,253.6184,0,0,0,18,0,3,60.6,17.2,0,68.2,410.4,410.4,0,0,1.098612,6.017132,0,3.258096,7.403427,0,1,0,68.2,7.640209,1.098612,5.535831,1 +7,3,25,1,2,326237,1,2079.179,32.02259,1,7,1,120.9324,98.18182,0,0,0,219.1142,0,0,0,11,0,3,60.6,17.2,0,68.2,410.4,410.4,0,0,1.098612,6.017132,0,3.258096,7.403427,0,1,0,68.2,7.640209,1.098612,5.389593,1 +7,3,25,1,3,326237,1,2079.179,33.02259,1,7,1,148.696,117.0799,0,0,0,265.776,0,0,0,9,0,3,60.6,17.2,0,68.2,410.4,410.4,0,0,1.098612,6.017132,0,3.258096,7.403427,0,1,0,68.2,7.640209,1.098612,5.582654,1 +7,3,25,1,1,326238,1,2079.179,7.737166,1,7,1,42.63664,0,0,0,0,42.63664,0,0,0,3,0,3,85,9.967326,0,81.5,410.4,410.4,1,1,1.098612,6.017132,0,3.258096,7.403427,1,0,0,81.5,7.640209,1.098612,3.752714,1 +7,3,25,1,2,326238,1,2079.179,8.737166,1,7,1,18.18182,0,0,0,0,18.18182,0,0,0,2,0,3,85,9.967326,0,81.5,410.4,410.4,1,1,1.098612,6.017132,0,3.258096,7.403427,1,0,0,81.5,7.640209,1.098612,2.900422,1 +7,3,25,1,3,326238,1,2079.179,9.737166,1,7,1,13.25353,2.565199,0,0,0,15.81873,0,0,0,2,0,3,85,9.967326,0,81.5,410.4,410.4,1,1,1.098612,6.017132,0,3.258096,7.403427,1,0,0,81.5,7.640209,1.098612,2.761194,1 +7,3,25,1,1,326239,1,2079.179,1.549623,0,7,1,112.0698,6.325911,5.050607,0,0,123.4464,0,0,0,7,0,3,83.39137,9.967326,0,90.7,410.4,410.4,1,0,1.098612,6.017132,0,3.258096,7.403427,0,0,0,90.7,7.640209,1.098612,4.815807,1 +7,3,25,1,2,326239,1,2079.179,2.549623,0,7,1,60.4662,9.34732,0,0,0,69.81352,0,0,0,7,0,3,83.39137,9.967326,0,90.7,410.4,410.4,1,0,1.098612,6.017132,0,3.258096,7.403427,0,0,0,90.7,7.640209,1.098612,4.245828,1 +7,3,25,1,3,326239,1,2079.179,3.549623,0,7,1,229.1791,2.992732,0,0,0,232.1719,0,0,0,20,0,3,83.39137,9.967326,0,90.7,410.4,410.4,1,0,1.098612,6.017132,0,3.258096,7.403427,0,0,0,90.7,7.640209,1.098612,5.447478,1 +13,3,0,0,1,326251,0,4201.173,54.94867,1,12,1,7.727975,2.833591,0,0,0,10.56157,0,0,0,1,0,1,77.7,20.7,0,73.9,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,73.9,8.343357,0,2.357222,1 +13,3,0,0,2,326251,0,4201.173,55.94867,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,77.7,20.7,0,73.9,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,73.9,8.343357,0,,0 +13,3,0,0,3,326251,0,4201.173,56.94867,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,77.7,20.7,0,73.9,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,73.9,8.343357,0,,0 +14,3,95,0,1,326265,0,7870.841,28.64887,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,86.7,0,0,100,485.75,485.75,0,0,.6931472,6.185694,0,4.564348,6.236988,0,0,0,100,8.971047,.6931472,,0 +14,3,95,0,2,326265,0,7870.841,29.64887,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,86.7,0,0,100,485.75,485.75,0,0,.6931472,6.185694,0,4.564348,6.236988,0,0,0,100,8.971047,.6931472,,0 +14,3,95,0,3,326265,0,7870.841,30.64887,0,12,1,8.669268,0,0,0,0,8.669268,0,0,0,1,0,2,86.7,0,0,100,485.75,485.75,0,0,.6931472,6.185694,0,4.564348,6.236988,0,0,0,100,8.971047,.6931472,2.159784,1 +14,3,95,0,4,326265,0,7870.841,31.64887,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,86.7,0,0,100,485.75,485.75,0,0,.6931472,6.185694,0,4.564348,6.236988,0,0,0,100,8.971047,.6931472,,0 +14,3,95,0,5,326265,0,7870.841,32.64887,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,86.7,0,0,100,485.75,485.75,0,0,.6931472,6.185694,0,4.564348,6.236988,0,0,0,100,8.971047,.6931472,,0 +14,3,95,0,1,326266,0,7870.841,28.62971,1,12,1,56.67182,1.519835,0,0,0,58.19165,0,0,0,1,0,2,87.8,6.9,1,54.5,485.75,485.75,0,0,.6931472,6.185694,0,4.564348,6.236988,1,0,0,54.5,8.971047,.6931472,4.063742,1 +14,3,95,0,2,326266,0,7870.841,29.62971,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,87.8,6.9,1,54.5,485.75,485.75,0,0,.6931472,6.185694,0,4.564348,6.236988,1,0,0,54.5,8.971047,.6931472,,0 +14,3,95,0,3,326266,0,7870.841,30.62971,1,12,1,8.669268,0,0,0,0,8.669268,0,0,0,1,0,2,87.8,6.9,1,54.5,485.75,485.75,0,0,.6931472,6.185694,0,4.564348,6.236988,1,0,0,54.5,8.971047,.6931472,2.159784,1 +14,3,95,0,4,326266,0,7870.841,31.62971,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,87.8,6.9,1,54.5,485.75,485.75,0,0,.6931472,6.185694,0,4.564348,6.236988,1,0,0,54.5,8.971047,.6931472,,0 +14,3,95,0,5,326266,0,7870.841,32.62971,1,12,1,25.04472,0,0,0,0,25.04472,0,0,0,3,0,2,87.8,6.9,1,54.5,485.75,485.75,0,0,.6931472,6.185694,0,4.564348,6.236988,1,0,0,54.5,8.971047,.6931472,3.220663,1 +13,3,0,1,1,326290,0,13140.18,60.5065,0,12,1,7.006698,0,16.74395,0,0,23.75064,0,0,0,0,0,4,87.8,24.1,0,73.9,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,73.9,9.483506,1.386294,3.16761,1 +13,3,0,1,2,326290,0,13140.18,61.5065,0,12,1,28.19602,3.210227,26.04167,0,0,57.44792,0,0,0,1,1,4,87.8,24.1,0,73.9,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,73.9,9.483506,1.386294,4.050879,1 +13,3,0,1,3,326290,0,13140.18,62.5065,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,87.8,24.1,0,73.9,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,73.9,9.483506,1.386294,,0 +13,3,0,1,1,326291,0,13140.18,51.22792,1,13,1,62.0814,6.579083,21.38073,0,0,90.04121,0,0,0,6,0,4,70.7,17.2,0,75,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,75,9.483506,1.386294,4.500268,1 +13,3,0,1,2,326291,0,13140.18,52.22792,1,13,1,49.69223,2.831439,25.0947,0,0,77.61837,0,0,0,2,1,4,70.7,17.2,0,75,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,75,9.483506,1.386294,4.351804,1 +13,3,0,1,3,326291,0,13140.18,53.22792,1,13,1,27.74166,0,0,0,0,27.74166,0,0,0,1,0,4,70.7,17.2,0,75,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,75,9.483506,1.386294,3.322935,1 +13,3,0,1,1,326292,0,13140.18,18.35181,1,11,1,23.95672,.6543019,6.43998,0,0,31.051,0,0,0,2,0,4,85.1,10.3,0,77.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,77.3,9.483506,1.386294,3.435631,1 +13,3,0,1,2,326292,0,13140.18,19.35181,1,11,1,237.893,15.14205,20.83333,0,0,273.8684,0,0,0,2,1,4,85.1,10.3,0,77.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,77.3,9.483506,1.386294,5.612648,1 +13,3,0,1,3,326292,0,13140.18,20.35181,1,11,1,10.83658,11.2137,12.57044,0,0,34.62072,0,0,0,2,0,4,85.1,10.3,0,77.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,77.3,9.483506,1.386294,3.544452,1 +13,3,0,1,1,326293,0,13140.18,17.1718,1,13,1,146.0587,27.03761,20.35033,46.36785,0,193.4467,0,0,3,5,0,4,70.7,10.3,0,58,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,58,9.483506,1.386294,5.265002,1 +13,3,0,1,2,326293,0,13140.18,18.1718,1,13,1,62.87879,26.11269,10.41667,14.20455,0,99.40814,0,0,1,3,1,4,70.7,10.3,0,58,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,58,9.483506,1.386294,4.599234,1 +13,3,0,1,3,326293,0,13140.18,19.1718,1,13,1,224.495,21.31339,0,0,0,245.8084,0,0,0,2,0,4,70.7,10.3,0,58,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,58,9.483506,1.386294,5.504552,1 +13,3,0,1,1,326294,0,5400,24.01917,0,10,1,14.42555,0,0,0,0,14.42555,0,0,0,1,0,1,70.2,6.9,0,72.6,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,72.6,8.594339,0,2.669001,1 +13,3,0,1,2,326294,0,5400,25.01917,0,10,1,5.681818,1.633523,0,0,0,7.315341,0,0,0,1,0,1,70.2,6.9,0,72.6,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,72.6,8.594339,0,1.989974,1 +13,3,0,1,3,326294,0,5400,26.01917,0,10,1,264.0746,8.326832,24.70741,0,0,297.1088,0,0,0,1,1,1,70.2,6.9,0,72.6,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,72.6,8.594339,0,5.694098,1 +19,3,25,1,1,326308,0,11665.1,16.64887,1,9,1,118.6741,19.4585,0,0,0,138.1326,0,0,0,11,0,6,56.4,0,0,76.1,750,750,1,1,1.791759,6.620073,0,3.258096,8.006368,1,0,0,76.1,9.364443,1.791759,4.928214,1 +19,3,25,1,2,326308,0,11665.1,17.64887,1,9,1,125.4079,.2331002,0,0,0,125.641,0,0,0,6,0,6,56.4,0,0,76.1,750,750,1,1,1.791759,6.620073,0,3.258096,8.006368,1,0,0,76.1,9.364443,1.791759,4.833429,1 +19,3,25,1,3,326308,0,11665.1,18.64887,1,9,1,172.7234,21.3339,2.351432,0,0,196.4087,0,0,0,10,0,6,56.4,0,0,76.1,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,1,0,0,76.1,9.364443,1.791759,5.280198,1 +19,3,25,1,4,326308,0,11665.1,19.64887,1,9,1,123.1745,33.47425,0,0,718.2321,874.8809,1,0,0,7,0,6,56.4,0,0,76.1,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,1,0,0,76.1,9.364443,1.791759,6.774088,1 +19,3,25,1,5,326308,0,11665.1,20.64887,1,9,1,85.70425,17.94872,0,0,0,103.653,0,0,0,5,0,6,56.4,0,0,76.1,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,1,0,0,76.1,9.364443,1.791759,4.641048,1 +19,3,25,1,1,326309,0,11665.1,15.72074,0,9,1,14.62551,0,0,0,0,14.62551,0,0,0,1,0,6,94.7,3.4,0,89.8,750,750,1,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,89.8,9.364443,1.791759,2.682767,1 +19,3,25,1,2,326309,0,11665.1,16.72074,0,9,1,16.31702,0,0,0,0,16.31702,0,0,0,1,0,6,94.7,3.4,0,89.8,750,750,1,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,89.8,9.364443,1.791759,2.792208,1 +19,3,25,1,3,326309,0,11665.1,17.72074,0,9,1,46.60111,2.201796,0,0,0,48.80291,0,0,0,1,0,6,94.7,3.4,0,89.8,750,750,1,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,89.8,9.364443,1.791759,3.88779,1 +19,3,25,1,4,326309,0,11665.1,18.72074,0,9,1,0,0,0,0,0,0,0,0,0,0,0,6,94.7,3.4,0,89.8,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,89.8,9.364443,1.791759,,0 +19,3,25,1,5,326309,0,11665.1,19.72074,0,9,1,6.761503,0,0,0,0,6.761503,0,0,0,0,0,6,94.7,3.4,0,89.8,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,89.8,9.364443,1.791759,1.911245,1 +19,3,25,1,1,326310,0,11665.1,8.711842,1,9,1,7.591093,0,20.24291,0,0,27.83401,0,0,0,0,1,6,76.7,9.967326,0,74.1,750,750,1,1,1.791759,6.620073,0,3.258096,8.006368,0,0,0,74.1,9.364443,1.791759,3.326259,1 +19,3,25,1,2,326310,0,11665.1,9.711842,1,9,1,32.89044,0,0,0,0,32.89044,0,0,0,2,0,6,76.7,9.967326,0,74.1,750,750,1,1,1.791759,6.620073,0,3.258096,8.006368,0,0,0,74.1,9.364443,1.791759,3.493182,1 +19,3,25,1,3,326310,0,11665.1,10.71184,1,9,1,25.22445,8.824284,10.2608,0,0,44.30953,0,0,0,2,1,6,76.7,9.967326,0,74.1,750,750,1,1,1.791759,6.620073,0,3.258096,8.006368,0,0,0,74.1,9.364443,1.791759,3.7912,1 +19,3,25,1,4,326310,0,11665.1,11.71184,1,9,1,90.17679,12.3751,13.06687,0,0,115.6188,0,0,0,6,0,6,76.7,9.967326,0,74.1,750,750,1,1,1.791759,6.620073,0,3.258096,8.006368,0,0,0,74.1,9.364443,1.791759,4.750298,1 +19,3,25,1,5,326310,0,11665.1,12.71184,1,9,1,57.93818,2.054795,21.42606,0,0,81.41904,0,0,0,5,1,6,76.7,9.967326,0,74.1,750,750,1,1,1.791759,6.620073,0,3.258096,8.006368,0,0,0,74.1,9.364443,1.791759,4.399609,1 +19,3,25,1,1,326311,0,11665.1,41.53046,0,5,1,7.591093,0,0,0,0,7.591093,0,0,0,1,0,6,78.2,6.9,0,85.2,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,1,0,0,85.2,9.364443,1.791759,2.026976,1 +19,3,25,1,2,326311,0,11665.1,42.53046,0,5,1,96.13054,0,4.662004,0,0,100.7925,0,0,0,3,0,6,78.2,6.9,0,85.2,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,1,0,0,85.2,9.364443,1.791759,4.613064,1 +19,3,25,1,3,326311,0,11665.1,43.53046,0,5,1,60.93202,0,0,0,0,60.93202,0,0,0,4,0,6,78.2,6.9,0,85.2,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,1,0,0,85.2,9.364443,1.791759,4.109759,1 +19,3,25,1,4,326311,0,11665.1,44.53046,0,5,1,16.33359,0,0,0,0,16.33359,0,0,0,2,0,6,78.2,6.9,0,85.2,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,1,0,0,85.2,9.364443,1.791759,2.793224,1 +19,3,25,1,5,326311,0,11665.1,45.53046,0,5,1,435.8834,7.235687,23.1823,0,737.0566,1203.358,1,0,0,8,1,6,78.2,6.9,0,85.2,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,1,0,0,85.2,9.364443,1.791759,7.092871,1 +19,3,25,1,1,326312,0,11665.1,39.3128,1,9,1,80.46558,1.3917,0,0,0,81.85728,0,0,0,7,0,6,80.9,17.2,0,93.2,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,1,0,0,93.2,9.364443,1.791759,4.404977,1 +19,3,25,1,2,326312,0,11665.1,40.3128,1,9,1,111.8881,8.275059,5.594406,0,0,125.7576,0,0,0,7,0,6,80.9,17.2,0,93.2,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,1,0,0,93.2,9.364443,1.791759,4.834356,1 +19,3,25,1,3,326312,0,11665.1,41.3128,1,9,1,59.47841,58.55066,0,0,0,118.0291,0,0,0,5,1,6,80.9,17.2,0,93.2,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,1,0,0,93.2,9.364443,1.791759,4.770931,1 +19,3,25,1,4,326312,0,11665.1,42.3128,1,9,1,495.196,72.92467,24.21214,0,0,592.3328,0,0,0,6,0,6,80.9,17.2,0,93.2,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,1,0,0,93.2,9.364443,1.791759,6.384068,1 +19,3,25,1,5,326312,0,11665.1,43.3128,1,9,1,215.929,19.74008,11.9424,0,0,247.6115,0,0,0,9,0,6,80.9,17.2,0,93.2,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,1,0,0,93.2,9.364443,1.791759,5.511861,1 +19,3,25,1,1,326313,0,11665.1,17.64545,0,9,1,80.5921,0,0,0,0,80.5921,0,0,0,3,0,6,79.8,6.9,0,90.9,750,750,1,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,90.9,9.364443,1.791759,4.3894,1 +19,3,25,1,2,326313,0,11665.1,18.64545,0,9,1,37.06294,14.63869,0,0,0,51.70163,0,0,0,4,0,6,79.8,6.9,0,90.9,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,90.9,9.364443,1.791759,3.945489,1 +19,3,25,1,3,326313,0,11665.1,19.64545,0,9,1,61.56477,20.00855,0,0,0,81.57332,0,0,0,2,7,6,79.8,6.9,0,90.9,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,90.9,9.364443,1.791759,4.401502,1 +19,3,25,1,4,326313,0,11665.1,20.64545,0,9,1,65.71868,0,0,0,0,65.71868,0,0,0,2,0,6,79.8,6.9,0,90.9,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,90.9,9.364443,1.791759,4.185383,1 +19,3,25,1,5,326313,0,11665.1,21.64545,0,9,1,73.76186,18.22972,0,0,0,91.99157,0,0,0,9,0,6,79.8,6.9,0,90.9,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,90.9,9.364443,1.791759,4.521697,1 +11,3,0,0,1,326342,0,9416.422,18.47502,1,11,1,34.00309,0,30.9119,0,0,64.91499,0,0,0,2,0,3,82.4,6.9,0,87.5,0,36.4,0,0,1.098612,3.594569,0,0,0,1,0,0,87.5,9.150316,1.098612,4.173079,1 +11,3,0,0,2,326342,0,9416.422,19.47502,1,11,1,278.9678,8.333333,15.15152,0,0,302.4526,0,0,0,3,0,3,82.4,6.9,0,87.5,0,36.4,0,0,1.098612,3.594569,0,0,0,1,0,0,87.5,9.150316,1.098612,5.711925,1 +11,3,0,0,3,326342,0,9416.422,20.47502,1,11,1,10.83658,0,0,0,0,10.83658,0,0,0,1,0,3,82.4,6.9,0,87.5,0,36.4,0,0,1.098612,3.594569,0,0,0,1,0,0,87.5,9.150316,1.098612,2.382928,1 +11,3,0,0,1,326343,0,9416.422,60.98289,0,8,1,18.54714,35.23957,0,0,0,53.78671,0,0,0,3,0,3,95.7,3.4,0,59.1,0,36.4,0,0,1.098612,3.594569,0,0,0,0,0,0,59.1,9.150316,1.098612,3.985026,1 +11,3,0,0,2,326343,0,9416.422,61.98289,0,8,1,33.14394,45.2178,0,0,0,78.36174,0,0,0,4,0,3,95.7,3.4,0,59.1,0,36.4,0,0,1.098612,3.594569,0,0,0,0,0,0,59.1,9.150316,1.098612,4.361336,1 +11,3,0,0,3,326343,0,9416.422,62.98289,0,8,1,29.47551,40.94062,0,0,0,70.41612,0,0,0,4,0,3,95.7,3.4,0,59.1,0,36.4,0,0,1.098612,3.594569,0,0,0,0,0,0,59.1,9.150316,1.098612,4.254422,1 +11,3,0,0,1,326344,0,9416.422,57.59343,1,12,1,33.48789,24.96136,35.03349,0,0,93.48274,0,0,0,1,3,3,65.4,10.3,0,70.5,0,36.4,0,0,1.098612,3.594569,0,0,0,1,0,0,70.5,9.150316,1.098612,4.537777,1 +11,3,0,0,2,326344,0,9416.422,58.59343,1,12,1,69.12878,29.21402,153.8826,0,0,252.2254,0,0,0,3,3,3,65.4,10.3,0,70.5,0,36.4,0,0,1.098612,3.594569,0,0,0,1,0,0,70.5,9.150316,1.098612,5.530323,1 +11,3,0,0,3,326344,0,9416.422,59.59343,1,12,1,21.67317,19.18075,31.85956,0,0,72.71348,0,0,0,1,2,3,65.4,10.3,0,70.5,0,36.4,0,0,1.098612,3.594569,0,0,0,1,0,0,70.5,9.150316,1.098612,4.286527,1 +13,3,0,1,1,326349,0,10212.9,5.71937,0,12,1,64.91499,7.676455,28.85111,0,0,101.4426,0,0,0,6,0,4,96.7,9.967326,0,44.4,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,44.4,9.231505,1.386294,4.619493,1 +13,3,0,1,2,326349,0,10212.9,6.71937,0,12,1,38.02083,6.605114,0,0,0,44.62595,0,0,0,1,0,4,96.7,9.967326,0,44.4,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,44.4,9.231505,1.386294,3.798316,1 +13,3,0,1,3,326349,0,10212.9,7.71937,0,12,1,123.9705,61.59515,9.536194,0,0,195.1019,0,0,0,44,0,4,96.7,9.967326,0,44.4,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,44.4,9.231505,1.386294,5.273522,1 +13,3,0,1,1,326350,0,10212.9,33.72758,1,12,1,0,13.29212,0,0,0,13.29212,0,0,0,0,0,4,71.8,0,0,81.8,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,81.8,9.231505,1.386294,2.587171,1 +13,3,0,1,2,326350,0,10212.9,34.72758,1,12,1,18.93939,0,0,0,0,18.93939,0,0,0,1,0,4,71.8,0,0,81.8,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,81.8,9.231505,1.386294,2.941244,1 +13,3,0,1,3,326350,0,10212.9,35.72758,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,71.8,0,0,81.8,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,81.8,9.231505,1.386294,,0 +13,3,0,1,1,326351,0,10212.9,16.30664,1,12,1,12.36476,0,0,0,0,12.36476,0,0,0,2,0,4,80.9,10.3,0,69.3,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,69.3,9.231505,1.386294,2.514851,1 +13,3,0,1,2,326351,0,10212.9,17.30664,1,12,1,17.99242,0,0,0,0,17.99242,0,0,0,2,0,4,80.9,10.3,0,69.3,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,69.3,9.231505,1.386294,2.889951,1 +13,3,0,1,3,326351,0,10212.9,18.30664,1,12,1,70.06935,7.433897,0,0,207.7677,285.2709,1,0,0,4,0,4,80.9,10.3,0,69.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,69.3,9.231505,1.386294,5.653439,1 +13,3,0,1,1,326352,0,10212.9,34.69405,0,11,1,228.2329,0,12.87996,0,0,241.1128,0,0,0,0,25,4,79.8,3.4,1,72.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,72.7,9.231505,1.386294,5.485265,1 +13,3,0,1,2,326352,0,10212.9,35.69405,0,11,1,18.93939,0,0,0,0,18.93939,0,0,0,1,0,4,79.8,3.4,1,72.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,72.7,9.231505,1.386294,2.941244,1 +13,3,0,1,3,326352,0,10212.9,36.69405,0,11,1,27.82835,9.427829,0,0,0,37.25618,0,0,0,1,0,4,79.8,3.4,1,72.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,72.7,9.231505,1.386294,3.617818,1 +11,3,0,1,1,326353,0,5597.654,28.46544,0,8,1,84.67825,29.69867,5.362615,0,0,119.7395,0,0,0,7,0,4,74.5,10.3,0,44.3,0,371.52,0,0,1.386294,5.917603,0,0,0,1,0,0,44.3,8.630281,1.386294,4.785319,1 +11,3,0,1,2,326353,0,5597.654,29.46544,0,8,1,326.301,7.243319,0,0,1894.28,2227.825,1,0,0,6,0,4,74.5,10.3,0,44.3,0,371.52,0,0,1.386294,5.917603,0,0,0,1,0,0,44.3,8.630281,1.386294,7.708781,1 +11,3,0,1,3,326353,0,5597.654,30.46544,0,8,1,560.0172,40.49871,0,0,1279.209,1879.725,1,0,0,10,6,4,74.5,10.3,0,44.3,0,371.52,0,0,1.386294,5.917603,0,0,0,1,0,0,44.3,8.630281,1.386294,7.538881,1 +11,3,0,1,1,326354,0,5597.654,6.291581,0,8,1,0,2.808989,0,68.94791,0,2.808989,0,0,3,0,0,4,56.7,9.967326,0,63,0,371.52,1,0,1.386294,5.917603,0,0,0,0,0,0,63,8.630281,1.386294,1.032825,1 +11,3,0,1,2,326354,0,5597.654,7.291581,0,8,1,28.12939,2.461322,0,0,0,30.59072,0,0,0,2,2,4,56.7,9.967326,0,63,0,371.52,1,0,1.386294,5.917603,0,0,0,0,0,0,63,8.630281,1.386294,3.420696,1 +11,3,0,1,3,326354,0,5597.654,8.291581,0,8,1,23.51677,10.83405,0,0,0,34.35082,0,0,0,2,0,4,56.7,9.967326,0,63,0,371.52,1,0,1.386294,5.917603,0,0,0,0,0,0,63,8.630281,1.386294,3.536626,1 +11,3,0,1,1,326355,0,5597.654,4.692676,0,8,1,17.87538,0,0,0,0,17.87538,0,0,0,1,0,4,83.39137,9.967326,0,81.5,0,371.52,1,0,1.386294,5.917603,0,0,0,0,0,0,81.5,8.630281,1.386294,2.883425,1 +11,3,0,1,2,326355,0,5597.654,5.692676,0,8,1,17.81528,9.657759,0,0,0,27.47304,0,0,0,3,0,4,83.39137,9.967326,0,81.5,0,371.52,1,0,1.386294,5.917603,0,0,0,0,0,0,81.5,8.630281,1.386294,3.313205,1 +11,3,0,1,3,326355,0,5597.654,6.692676,0,8,1,17.19691,14.91831,0,0,0,32.11522,0,0,0,2,0,4,83.39137,9.967326,0,81.5,0,371.52,1,0,1.386294,5.917603,0,0,0,0,0,0,81.5,8.630281,1.386294,3.46933,1 +11,3,0,1,1,326356,0,5597.654,25.30322,1,8,1,0,18.94791,0,0,0,18.94791,0,0,0,0,0,4,54.8,6.9,0,77.4,0,371.52,0,0,1.386294,5.917603,0,0,0,0,0,0,77.4,8.630281,1.386294,2.941694,1 +11,3,0,1,2,326356,0,5597.654,26.30322,1,8,1,25.31646,12.04876,25.78528,0,0,63.15049,0,0,0,1,1,4,54.8,6.9,0,77.4,0,371.52,0,0,1.386294,5.917603,0,0,0,0,0,0,77.4,8.630281,1.386294,4.145521,1 +11,3,0,1,3,326356,0,5597.654,27.30322,1,8,1,5.159071,49.31212,0,12.89768,0,54.4712,0,0,1,1,0,4,54.8,6.9,0,77.4,0,371.52,0,0,1.386294,5.917603,0,0,0,0,0,0,77.4,8.630281,1.386294,3.997672,1 +13,3,0,1,1,326374,0,8395.895,25.49487,1,12,1,60.10725,23.05414,0,0,1243.672,1326.833,2,0,0,4,0,3,26.1,27.6,1,21.6,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,21.6,9.035617,1.098612,7.19055,1 +13,3,0,1,2,326374,0,8395.895,26.49487,1,12,1,91.42053,3.375527,28.12939,79.69995,285.2086,408.1341,1,0,9,6,1,4,26.1,27.6,1,21.6,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,21.6,9.035617,1.386294,6.011596,1 +13,3,0,1,3,326374,0,8395.895,27.49487,1,12,1,18.83061,3.753224,0,0,0,22.58384,0,0,0,1,0,4,26.1,27.6,1,21.6,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,21.6,9.035617,1.386294,3.117234,1 +13,3,0,1,1,326375,0,8395.895,1.798768,1,12,1,17.87538,5.449438,0,0,0,23.32482,0,0,0,3,0,3,83.39137,9.967326,0,44.4,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,0,0,0,44.4,9.035617,1.098612,3.149518,1 +13,3,0,1,2,326375,0,8395.895,2.798768,1,12,1,13.50211,6.479137,0,0,0,19.98125,0,0,0,1,0,4,83.39137,9.967326,0,44.4,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,44.4,9.035617,1.386294,2.994794,1 +13,3,0,1,3,326375,0,8395.895,3.798768,1,12,1,23.8607,2.050731,0,0,0,25.91144,0,0,0,4,0,4,83.39137,9.967326,0,44.4,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,44.4,9.035617,1.386294,3.254684,1 +13,3,0,1,1,326376,0,8395.895,27.49076,0,12,1,52.27273,6.001021,0,0,0,58.27375,0,0,0,1,2,3,81.4,0,0,90.9,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,90.9,9.035617,1.098612,4.065152,1 +13,3,0,1,2,326376,0,8395.895,28.49076,0,12,1,94.37412,4.041256,0,0,0,98.41537,0,0,0,1,0,4,81.4,0,0,90.9,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,90.9,9.035617,1.386294,4.589197,1 +13,3,0,1,3,326376,0,8395.895,29.49076,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,81.4,0,0,90.9,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,90.9,9.035617,1.386294,,0 +13,3,0,1,1,326433,0,1994.135,53.70842,0,14,1,0,0,0,0,0,0,0,0,0,0,0,1,78.2,27.6,1,67.5,150,0,0,0,0,0,1,4.564348,5.061929,0,1,0,67.5,7.598467,0,,0 +13,3,0,1,2,326433,0,1994.135,54.70842,0,14,1,0,0,0,0,0,0,0,0,0,0,0,1,78.2,27.6,1,67.5,150,0,0,0,0,0,1,4.564348,5.061929,0,1,0,67.5,7.598467,0,,0 +13,3,0,1,3,326433,0,1994.135,55.70842,0,14,1,5.635024,0,0,0,0,5.635024,0,0,0,1,0,1,78.2,27.6,1,67.5,150,0,0,0,0,0,1,4.564348,5.061929,0,1,0,67.5,7.598467,0,1.729001,1 +13,3,0,1,4,326433,0,1994.135,56.70842,0,14,1,5.120126,0,0,0,0,5.120126,0,0,0,1,0,1,78.2,27.6,1,67.5,150,0,0,0,0,0,1,4.564348,5.061929,0,1,0,67.5,7.598467,0,1.633179,1 +13,3,0,1,5,326433,0,1994.135,57.70842,0,14,1,29.3381,0,0,0,0,29.3381,0,0,0,1,0,1,78.2,27.6,1,67.5,150,0,0,0,0,0,1,4.564348,5.061929,0,1,0,67.5,7.598467,0,3.378887,1 +13,3,0,0,1,326435,0,7196.79,32.0438,1,12,1,21.05263,6.958502,0,0,0,28.01113,0,0,0,2,0,4,68.6,0,1,71.6,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,71.6,8.881529,1.386294,3.332602,1 +13,3,0,0,2,326435,0,7196.79,33.0438,1,12,1,14.35897,1.258741,0,0,0,15.61772,0,0,0,1,0,4,68.6,0,1,71.6,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,71.6,8.881529,1.386294,2.748406,1 +13,3,0,0,3,326435,0,7196.79,34.0438,1,12,1,8.550663,7.73835,0,0,0,16.28901,0,0,0,1,0,4,68.6,0,1,71.6,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,71.6,8.881529,1.386294,2.790491,1 +13,3,0,0,1,326436,0,7196.79,9.111567,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,71.7,9.967326,0,96.3,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,96.3,8.881529,1.386294,,0 +13,3,0,0,2,326436,0,7196.79,10.11157,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,71.7,9.967326,0,96.3,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,96.3,8.881529,1.386294,,0 +13,3,0,0,3,326436,0,7196.79,11.11157,0,12,1,50.79094,0,0,0,0,50.79094,0,0,0,2,0,4,71.7,9.967326,0,96.3,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,96.3,8.881529,1.386294,3.927718,1 +13,3,0,0,1,326437,0,7196.79,12.2601,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,68.3,9.967326,0,85.2,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,85.2,8.881529,1.386294,,0 +13,3,0,0,2,326437,0,7196.79,13.2601,1,12,1,15.38461,0,0,0,0,15.38461,0,0,0,1,0,4,68.3,9.967326,0,85.2,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,85.2,8.881529,1.386294,2.733368,1 +13,3,0,0,3,326437,0,7196.79,14.2601,1,12,1,0,0,0,175.2886,0,0,0,0,9,0,0,4,68.3,9.967326,0,85.2,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,85.2,8.881529,1.386294,,0 +13,3,0,0,1,326438,0,7196.79,10.423,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,61.7,9.967326,1,77.8,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,77.8,8.881529,1.386294,,0 +13,3,0,0,2,326438,0,7196.79,11.423,0,12,1,0,0,0,440.5594,0,0,0,0,21,0,0,4,61.7,9.967326,1,77.8,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,77.8,8.881529,1.386294,,0 +13,3,0,0,3,326438,0,7196.79,12.423,0,12,1,57.67422,0,.8550662,192.3899,1362.142,1420.671,1,0,10,5,0,4,61.7,9.967326,1,77.8,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,77.8,8.881529,1.386294,7.258885,1 +11,3,0,0,1,326450,0,6411.144,23.8987,1,12,1,104.6987,19.5097,0,0,0,124.2084,0,0,0,4,0,3,80.3,3.4,0,89.8,0,261.48,0,0,1.098612,5.566358,0,0,0,0,0,0,89.8,8.765949,1.098612,4.82196,1 +11,3,0,0,2,326450,0,6411.144,24.8987,1,12,1,11.48617,32.30192,0,133.6146,581.3455,625.1336,1,0,7,1,0,3,80.3,3.4,0,89.8,0,261.48,0,0,1.098612,5.566358,0,0,0,0,0,0,89.8,8.765949,1.098612,6.437965,1 +11,3,0,0,3,326450,0,6411.144,25.8987,1,12,1,23.64574,33.80051,0,0,0,57.44626,0,0,0,2,0,4,80.3,3.4,0,89.8,0,261.48,0,0,1.386294,5.566358,0,0,0,0,0,0,89.8,8.765949,1.386294,4.05085,1 +11,3,0,0,1,326451,0,6411.144,1.516769,1,12,1,105.2094,20.37794,27.06844,0,0,152.6558,0,0,0,10,0,3,83.39137,9.967326,1,55.6,0,261.48,1,1,1.098612,5.566358,0,0,0,0,0,0,55.6,8.765949,1.098612,5.028185,1 +11,3,0,0,2,326451,0,6411.144,2.516769,1,12,1,34.2241,14.53352,27.19175,0,0,75.94936,0,0,0,5,0,3,83.39137,9.967326,1,55.6,0,261.48,1,1,1.098612,5.566358,0,0,0,0,0,0,55.6,8.765949,1.098612,4.330067,1 +11,3,0,0,3,326451,0,6411.144,3.516769,1,12,1,29.23474,16.83147,0,0,0,46.06621,0,0,0,2,1,4,83.39137,9.967326,1,55.6,0,261.48,1,1,1.386294,5.566358,0,0,0,0,0,0,55.6,8.765949,1.386294,3.83008,1 +11,3,0,0,1,326452,0,6411.144,24.83504,0,12,1,34.72932,5.87334,0,0,0,40.60266,0,0,0,3,2,3,67.6,0,0,96.6,0,261.48,0,0,1.098612,5.566358,0,0,0,0,0,0,96.6,8.765949,1.098612,3.703834,1 +11,3,0,0,2,326452,0,6411.144,25.83504,0,12,1,23.44116,2.648851,0,314.1116,0,26.09001,0,0,6,2,0,3,67.6,0,0,96.6,0,261.48,0,0,1.098612,5.566358,0,0,0,0,0,0,96.6,8.765949,1.098612,3.261553,1 +11,3,0,0,3,326452,0,6411.144,26.83504,0,12,1,8.598453,0,24.07567,0,0,32.67412,0,0,0,0,1,4,67.6,0,0,96.6,0,261.48,0,0,1.386294,5.566358,0,0,0,0,0,0,96.6,8.765949,1.386294,3.486583,1 +11,3,0,1,1,326459,0,5290.323,26.2998,1,12,1,79.82635,29.26966,25.53626,168.5393,0,134.6323,0,0,10,4,1,3,74.5,3.4,0,79.5,0,0,0,0,1.098612,0,0,0,0,0,0,0,79.5,8.573824,1.098612,4.902547,1 +11,3,0,1,2,326459,0,5290.323,27.2998,1,12,1,197.3746,13.63338,0,703.2349,0,211.008,0,0,48,13,7,3,74.5,3.4,0,79.5,0,0,0,0,1.098612,0,0,0,0,0,0,0,79.5,8.573824,1.098612,5.351896,1 +11,3,0,1,3,326459,0,5290.323,28.2998,1,12,1,31.16939,9.931212,22.7859,610.4901,0,63.8865,0,0,45,2,1,3,74.5,3.4,0,79.5,0,0,0,0,1.098612,0,0,0,0,0,0,0,79.5,8.573824,1.098612,4.157108,1 +11,3,0,1,1,326460,0,5290.323,27.70431,0,16,1,113.7385,11.8284,26.55771,561.7977,0,152.1246,0,0,44,5,0,3,43.6,20.7,1,63.6,0,0,0,0,1.098612,0,0,0,0,1,0,0,63.6,8.573824,1.098612,5.0247,1 +11,3,0,1,2,326460,0,5290.323,28.70431,0,16,1,96.57759,6.81669,0,562.5879,0,103.3943,0,0,35,6,8,3,43.6,20.7,1,63.6,0,0,0,0,1.098612,0,0,0,0,1,0,0,63.6,8.573824,1.098612,4.63855,1 +11,3,0,1,3,326460,0,5290.323,29.70431,0,16,1,87.70422,0,23.64574,683.362,0,111.35,0,0,42,1,8,3,43.6,20.7,1,63.6,0,0,0,0,1.098612,0,0,0,0,1,0,0,63.6,8.573824,1.098612,4.712678,1 +11,3,0,1,1,326461,0,5290.323,6.704997,0,12,1,15.32176,0,0,0,0,15.32176,0,0,0,1,1,3,80,9.967326,0,74.1,0,0,1,0,1.098612,0,0,0,0,1,0,0,74.1,8.573824,1.098612,2.729274,1 +11,3,0,1,2,326461,0,5290.323,7.704997,0,12,1,22.03469,0,0,14.0647,0,22.03469,0,0,1,2,1,3,80,9.967326,0,74.1,0,0,1,0,1.098612,0,0,0,0,1,0,0,74.1,8.573824,1.098612,3.092618,1 +11,3,0,1,3,326461,0,5290.323,8.704996,0,12,1,153.3104,1.891659,0,4.299226,0,155.2021,0,0,1,5,1,3,80,9.967326,0,74.1,0,0,1,0,1.098612,0,0,0,0,1,0,0,74.1,8.573824,1.098612,5.044728,1 +11,3,0,1,1,326497,0,9709.091,25.39357,1,16,1,57.18702,6.646059,25.75992,0,0,89.59299,0,0,0,3,1,2,86.7,17.2,1,42,0,232.8,0,0,.6931472,5.45018,0,0,0,1,0,0,42,9.180921,.6931472,4.495277,1 +11,3,0,1,2,326497,0,9709.091,26.39357,1,16,1,80.49242,2.035985,2.698864,345.644,0,85.22727,0,0,18,2,8,2,86.7,17.2,1,42,0,232.8,0,0,.6931472,5.45018,0,0,0,1,0,0,42,9.180921,.6931472,4.445322,1 +11,3,0,1,3,326497,0,9709.091,27.39357,1,16,1,589.4018,7.485912,30.51582,641.5258,0,627.4036,0,0,37,6,42,2,86.7,17.2,1,42,0,232.8,0,0,.6931472,5.45018,0,0,0,1,0,0,42,9.180921,.6931472,6.44159,1 +11,3,0,1,1,326498,0,9709.091,25.78782,0,16,1,35.54869,0,26.79031,0,0,62.339,0,0,0,3,0,2,87.8,6.9,0,77.3,0,232.8,0,0,.6931472,5.45018,0,0,0,0,0,0,77.3,9.180921,.6931472,4.132587,1 +11,3,0,1,2,326498,0,9709.091,26.78782,0,16,1,10.41667,0,0,23.67424,0,10.41667,0,0,1,1,0,2,87.8,6.9,0,77.3,0,232.8,0,0,.6931472,5.45018,0,0,0,0,0,0,77.3,9.180921,.6931472,2.343407,1 +11,3,0,1,3,326498,0,9709.091,27.78782,0,16,1,436.7447,7.204161,0,0,0,443.9489,0,0,0,3,7,2,87.8,6.9,0,77.3,0,232.8,0,0,.6931472,5.45018,0,0,0,0,0,0,77.3,9.180921,.6931472,6.095709,1 +13,3,0,0,1,326499,0,7573.021,20.95277,0,12,1,25.80972,2.024292,0,0,0,27.83401,0,0,0,2,0,2,89.4,13.8,0,79.5,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,79.5,8.932479,.6931472,3.326259,1 +13,3,0,0,2,326499,0,7573.021,21.95277,0,12,1,4.662004,1.818182,0,0,0,6.480186,0,0,0,1,0,2,89.4,13.8,0,79.5,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,79.5,8.932479,.6931472,1.868749,1 +13,3,0,0,3,326499,0,7573.021,22.95277,0,12,1,18.38392,0,0,0,0,18.38392,0,0,0,0,0,2,89.4,13.8,0,79.5,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,79.5,8.932479,.6931472,2.911477,1 +13,3,0,0,1,326500,0,7573.021,19.67146,1,12,1,16.70041,0,24.79757,0,0,41.49797,0,0,0,1,1,2,86.2,3.4,0,60.2,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,60.2,8.932479,.6931472,3.725645,1 +13,3,0,0,2,326500,0,7573.021,20.67146,1,12,1,26.57343,.9277389,0,0,0,27.50117,0,0,0,1,0,2,86.2,3.4,0,60.2,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,60.2,8.932479,.6931472,3.314228,1 +13,3,0,0,3,326500,0,7573.021,21.67146,1,12,1,19.66652,.722531,0,0,0,20.38906,0,0,0,3,0,2,86.2,3.4,0,60.2,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,60.2,8.932479,.6931472,3.014998,1 +15,3,95,1,1,326563,0,7196.79,48.39425,0,8,1,84.00809,1.821862,0,0,275.6731,361.503,1,0,0,2,0,1,55.3,13.8,0,52.3,230,230,0,0,0,5.438079,0,4.564348,5.489373,0,1,0,52.3,8.881529,0,5.89027,1 +15,3,95,1,2,326563,0,7196.79,49.39425,0,8,1,0,3.356643,0,0,875.049,878.4056,1,0,0,0,0,1,55.3,13.8,0,52.3,230,230,0,0,0,5.438079,0,4.564348,5.489373,0,1,0,52.3,8.881529,0,6.778109,1 +15,3,95,1,3,326563,0,7196.79,50.39425,0,8,1,93.84352,50.55152,74.8183,0,1047.811,1267.024,2,0,0,9,0,1,55.3,13.8,0,52.3,230,230,0,0,0,5.438079,0,4.564348,5.489373,0,1,0,52.3,8.881529,0,7.144426,1 +18,3,25,0,1,326564,0,5448.68,52.79671,1,12,1,40.70067,0,37.60948,0,0,78.31015,0,0,0,1,1,4,69.7,17.2,0,80.7,707.4,707.4,0,0,1.386294,6.561596,0,3.258096,7.947891,0,0,0,80.7,8.603312,1.386294,4.360677,1 +18,3,25,0,2,326564,0,5448.68,53.79671,1,12,1,7.575758,0,0,0,0,7.575758,0,0,0,1,0,4,69.7,17.2,0,80.7,707.4,707.4,0,0,1.386294,6.561596,0,3.258096,7.947891,0,0,0,80.7,8.603312,1.386294,2.024953,1 +18,3,25,0,3,326564,0,5448.68,54.79671,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,69.7,17.2,0,80.7,707.4,707.4,0,0,1.386294,6.561596,0,3.258096,7.947891,0,0,0,80.7,8.603312,1.386294,,0 +18,3,25,0,1,326565,0,5448.68,15.19233,0,12,1,68.97475,0,0,0,0,68.97475,0,0,0,2,0,4,56.4,10.3,0,100,707.4,707.4,1,0,1.386294,6.561596,0,3.258096,7.947891,1,0,0,100,8.603312,1.386294,4.23374,1 +18,3,25,0,2,326565,0,5448.68,16.19233,0,12,1,125.4735,0,20.83333,0,0,146.3068,0,0,0,4,1,4,56.4,10.3,0,100,707.4,707.4,1,0,1.386294,6.561596,0,3.258096,7.947891,1,0,0,100,8.603312,1.386294,4.985706,1 +18,3,25,0,3,326565,0,5448.68,17.19233,0,12,1,104.2046,0,0,0,0,104.2046,0,0,0,5,0,4,56.4,10.3,0,100,707.4,707.4,1,0,1.386294,6.561596,0,3.258096,7.947891,1,0,0,100,8.603312,1.386294,4.646356,1 +18,3,25,0,1,326566,0,5448.68,12.95003,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,78.3,9.967326,0,85.2,707.4,707.4,1,1,1.386294,6.561596,0,3.258096,7.947891,0,0,0,85.2,8.603312,1.386294,,0 +18,3,25,0,2,326566,0,5448.68,13.95003,1,12,1,5.681818,0,0,0,0,5.681818,0,0,0,1,0,4,78.3,9.967326,0,85.2,707.4,707.4,1,1,1.386294,6.561596,0,3.258096,7.947891,0,0,0,85.2,8.603312,1.386294,1.737271,1 +18,3,25,0,3,326566,0,5448.68,14.95003,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,78.3,9.967326,0,85.2,707.4,707.4,1,1,1.386294,6.561596,0,3.258096,7.947891,0,0,0,85.2,8.603312,1.386294,,0 +18,3,25,0,1,326567,0,5448.68,17.87543,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,62.2,6.9,0,53.4,707.4,707.4,1,0,1.386294,6.561596,0,3.258096,7.947891,1,0,0,53.4,8.603312,1.386294,,0 +18,3,25,0,2,326567,0,5448.68,18.87543,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,62.2,6.9,0,53.4,707.4,707.4,0,0,1.386294,6.561596,0,3.258096,7.947891,1,0,0,53.4,8.603312,1.386294,,0 +18,3,25,0,3,326567,0,5448.68,19.87543,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,62.2,6.9,0,53.4,707.4,707.4,0,0,1.386294,6.561596,0,3.258096,7.947891,1,0,0,53.4,8.603312,1.386294,,0 +18,3,25,1,1,326575,0,2072.141,9.598905,1,10,1,0,0,0,0,0,0,0,0,0,0,0,3,85,9.967326,0,55.6,159,159,1,1,1.098612,5.068904,0,3.258096,6.455199,0,0,0,55.6,7.63682,1.098612,,0 +18,3,25,1,2,326575,0,2072.141,10.5989,1,10,1,12.12121,1.864802,0,0,0,13.98601,0,0,0,1,0,3,85,9.967326,0,55.6,159,159,1,1,1.098612,5.068904,0,3.258096,6.455199,0,0,0,55.6,7.63682,1.098612,2.638058,1 +18,3,25,1,3,326575,0,2072.141,11.5989,1,10,1,0,0,0,0,0,0,0,0,0,0,0,3,85,9.967326,0,55.6,159,159,1,1,1.098612,5.068904,0,3.258096,6.455199,0,0,0,55.6,7.63682,1.098612,,0 +18,3,25,1,1,326576,0,2072.141,11.87953,0,10,1,40.10627,0,0,0,0,40.10627,0,0,0,2,0,3,85,9.967326,0,77.8,159,159,1,0,1.098612,5.068904,0,3.258096,6.455199,0,0,0,77.8,7.63682,1.098612,3.691533,1 +18,3,25,1,2,326576,0,2072.141,12.87953,0,10,1,6.993007,0,0,0,0,6.993007,0,0,0,1,0,3,85,9.967326,0,77.8,159,159,1,0,1.098612,5.068904,0,3.258096,6.455199,0,0,0,77.8,7.63682,1.098612,1.944911,1 +18,3,25,1,3,326576,0,2072.141,13.87953,0,10,1,233.0911,0,3.471569,0,0,236.5626,0,0,0,6,0,3,85,9.967326,0,77.8,159,159,1,0,1.098612,5.068904,0,3.258096,6.455199,0,0,0,77.8,7.63682,1.098612,5.466213,1 +18,3,25,1,1,326577,0,2072.141,31.01437,1,10,1,111.7662,0,0,0,0,111.7662,0,0,0,4,0,3,71.3,17.2,1,39.8,159,159,0,0,1.098612,5.068904,0,3.258096,6.455199,1,0,0,39.8,7.63682,1.098612,4.716409,1 +18,3,25,1,2,326577,0,2072.141,32.01437,1,10,1,51.28205,9.86014,0,0,0,61.14219,0,0,0,5,0,3,71.3,17.2,1,39.8,159,159,0,0,1.098612,5.068904,0,3.258096,6.455199,1,0,0,39.8,7.63682,1.098612,4.113202,1 +18,3,25,1,3,326577,0,2072.141,33.01437,1,10,1,283.4117,6.819153,0,0,2864.134,3154.365,3,0,0,2,8,3,71.3,17.2,1,39.8,159,159,0,0,1.098612,5.068904,0,3.258096,6.455199,1,0,0,39.8,7.63682,1.098612,8.056542,1 +11,3,0,1,1,326592,0,2038.123,58.00684,0,12,1,48.5189,84.72932,31.66496,0,0,164.9132,0,0,0,3,2,2,67,13.8,1,60.2,0,429,0,0,.6931472,6.061457,0,0,0,0,1,0,60.2,7.620275,.6931472,5.105419,1 +11,3,0,1,2,326592,0,2038.123,59.00684,0,12,1,122.3629,101.5002,0,0,0,223.8631,0,0,0,4,0,2,67,13.8,1,60.2,0,429,0,0,.6931472,6.061457,0,0,0,0,1,0,60.2,7.620275,.6931472,5.411035,1 +11,3,0,1,3,326592,0,2038.123,60.00684,0,12,1,127.687,236.7584,0,0,1412.554,1776.999,1,0,0,4,1,2,67,13.8,1,60.2,0,429,0,0,.6931472,6.061457,0,0,0,0,1,0,60.2,7.620275,.6931472,7.482681,1 +11,3,0,1,1,326593,0,2038.123,55.96441,1,7,1,7.660879,0,0,0,0,7.660879,0,0,0,0,1,2,78.7,13.8,0,89.8,0,429,0,0,.6931472,6.061457,0,0,0,0,0,0,89.8,7.620275,.6931472,2.036127,1 +11,3,0,1,2,326593,0,2038.123,56.96441,1,7,1,30.47351,0,29.53587,0,0,60.00938,0,0,0,1,0,2,78.7,13.8,0,89.8,0,429,0,0,.6931472,6.061457,0,0,0,0,0,0,89.8,7.620275,.6931472,4.094501,1 +11,3,0,1,3,326593,0,2038.123,57.96441,1,7,1,0,0,0,0,0,0,0,0,0,0,0,2,78.7,13.8,0,89.8,0,429,0,0,.6931472,6.061457,0,0,0,0,0,0,89.8,7.620275,.6931472,,0 +11,3,0,0,1,326594,0,8339.003,41.95209,0,12,1,51.72591,0,0,0,0,51.72591,0,0,0,1,0,7,77.1,6.9,0,83,0,1246.56,0,0,1.94591,7.128143,0,0,0,0,0,0,83,9.028819,1.94591,3.945959,1 +11,3,0,0,2,326594,0,8339.003,42.95209,0,12,1,30.77652,0,19.88636,0,0,50.66288,0,0,0,1,1,7,77.1,6.9,0,83,0,1246.56,0,0,1.94591,7.128143,0,0,0,0,0,0,83,9.028819,1.94591,3.925194,1 +11,3,0,0,3,326594,0,8339.003,43.95209,0,12,1,20.37278,0,0,0,0,20.37278,0,0,0,1,0,7,77.1,6.9,0,83,0,1246.56,0,0,1.94591,7.128143,0,0,0,0,0,0,83,9.028819,1.94591,3.014199,1 +11,3,0,0,1,326595,0,8339.003,16.68994,0,12,1,12.87996,0,0,0,0,12.87996,0,0,0,2,0,7,84.6,0,0,86.4,0,1246.56,1,0,1.94591,7.128143,0,0,0,0,0,0,86.4,9.028819,1.94591,2.555673,1 +11,3,0,0,2,326595,0,8339.003,17.68994,0,12,1,41.66667,4.450758,0,0,765.6155,811.733,1,0,0,5,0,7,84.6,0,0,86.4,0,1246.56,1,0,1.94591,7.128143,0,0,0,0,0,0,86.4,9.028819,1.94591,6.699172,1 +11,3,0,0,3,326595,0,8339.003,18.68994,0,12,1,14.08756,4.616385,0,0,0,18.70395,0,0,0,1,0,7,84.6,0,0,86.4,0,1246.56,0,0,1.94591,7.128143,0,0,0,0,0,0,86.4,9.028819,1.94591,2.928735,1 +11,3,0,0,1,326596,0,8339.003,14.84463,0,12,1,5.151984,0,0,0,0,5.151984,0,0,0,1,0,7,66.5,0,0,72.7,0,1246.56,1,0,1.94591,7.128143,0,0,0,0,0,0,72.7,9.028819,1.94591,1.639382,1 +11,3,0,0,2,326596,0,8339.003,15.84463,0,12,1,86.64773,27.67519,0,0,0,114.3229,0,0,0,9,0,7,66.5,0,0,72.7,0,1246.56,1,0,1.94591,7.128143,0,0,0,0,0,0,72.7,9.028819,1.94591,4.739027,1 +11,3,0,0,3,326596,0,8339.003,16.84463,0,12,1,21.67317,15.60468,0,0,0,37.27785,0,0,0,2,0,7,66.5,0,0,72.7,0,1246.56,1,0,1.94591,7.128143,0,0,0,0,0,0,72.7,9.028819,1.94591,3.618399,1 +11,3,0,0,1,326597,0,8339.003,12.79398,0,12,1,5.151984,0,0,0,0,5.151984,0,0,0,1,0,7,93.3,9.967326,0,96.3,0,1246.56,1,0,1.94591,7.128143,0,0,0,0,0,0,96.3,9.028819,1.94591,1.639382,1 +11,3,0,0,2,326597,0,8339.003,13.79398,0,12,1,10.41667,0,0,0,0,10.41667,0,0,0,2,0,7,93.3,9.967326,0,96.3,0,1246.56,1,0,1.94591,7.128143,0,0,0,0,0,0,96.3,9.028819,1.94591,2.343407,1 +11,3,0,0,3,326597,0,8339.003,14.79398,0,12,1,6.068487,0,0,0,0,6.068487,0,0,0,1,0,7,93.3,9.967326,0,96.3,0,1246.56,1,0,1.94591,7.128143,0,0,0,0,0,0,96.3,9.028819,1.94591,1.803109,1 +11,3,0,0,1,326598,0,8339.003,38.59274,1,12,1,22.15353,0,25.75992,0,0,47.91345,0,0,0,1,1,7,81.9,17.2,0,90.9,0,1246.56,0,0,1.94591,7.128143,0,0,0,0,0,0,90.9,9.028819,1.94591,3.869396,1 +11,3,0,0,2,326598,0,8339.003,39.59274,1,12,1,31.72348,0,0,0,0,31.72348,0,0,0,2,0,7,81.9,17.2,0,90.9,0,1246.56,0,0,1.94591,7.128143,0,0,0,0,0,0,90.9,9.028819,1.94591,3.457057,1 +11,3,0,0,3,326598,0,8339.003,40.59274,1,12,1,53.74946,7.498916,0,0,0,61.24837,0,0,0,4,0,7,81.9,17.2,0,90.9,0,1246.56,0,0,1.94591,7.128143,0,0,0,0,0,0,90.9,9.028819,1.94591,4.114937,1 +11,3,0,0,1,326599,0,8339.003,8.238193,1,12,1,114.1164,6.93457,0,0,0,121.051,0,0,0,2,2,7,95,9.967326,1,96.3,0,1246.56,1,1,1.94591,7.128143,0,0,0,0,0,0,96.3,9.028819,1.94591,4.796212,1 +11,3,0,0,2,326599,0,8339.003,9.238193,1,12,1,144.8864,7.552083,1009.47,0,0,1161.908,0,0,0,6,3,7,95,9.967326,1,96.3,0,1246.56,1,1,1.94591,7.128143,0,0,0,0,0,0,96.3,9.028819,1.94591,7.057819,1 +11,3,0,0,3,326599,0,8339.003,10.23819,1,12,1,206.5453,13.58908,8.235804,0,0,228.3702,0,0,0,4,4,7,95,9.967326,1,96.3,0,1246.56,1,1,1.94591,7.128143,0,0,0,0,0,0,96.3,9.028819,1.94591,5.430968,1 +11,3,0,0,1,326600,0,8339.003,9.700206,0,12,1,10.30397,4.301906,0,0,0,14.60587,0,0,0,1,0,7,91.7,9.967326,0,96.3,0,1246.56,1,0,1.94591,7.128143,0,0,0,0,0,0,96.3,9.028819,1.94591,2.681424,1 +11,3,0,0,2,326600,0,8339.003,10.70021,0,12,1,10.41667,0,0,0,0,10.41667,0,0,0,2,0,7,91.7,9.967326,0,96.3,0,1246.56,1,0,1.94591,7.128143,0,0,0,0,0,0,96.3,9.028819,1.94591,2.343407,1 +11,3,0,0,3,326600,0,8339.003,11.70021,0,12,1,66.26354,2.557434,0,0,0,68.82098,0,0,0,4,1,7,91.7,9.967326,0,96.3,0,1246.56,1,0,1.94591,7.128143,0,0,0,0,0,0,96.3,9.028819,1.94591,4.231509,1 +11,3,0,1,1,326601,0,11000,4.774812,0,11,1,14.30031,10.11236,0,0,0,24.41267,0,0,0,3,0,6,83.39137,9.967326,0,92.6,0,0,1,0,1.791759,0,0,0,0,0,0,0,92.6,9.305741,1.791759,3.195102,1 +11,3,0,1,2,326601,0,11000,5.774812,0,11,1,0,2.930145,0,0,0,2.930145,0,0,0,0,0,6,83.39137,9.967326,0,92.6,0,0,1,0,1.791759,0,0,0,0,0,0,0,92.6,9.305741,1.791759,1.075052,1 +11,3,0,1,3,326601,0,11000,6.774812,0,11,1,0,0,0,0,0,0,0,0,0,0,0,6,83.39137,9.967326,0,92.6,0,0,1,0,1.791759,0,0,0,0,0,0,0,92.6,9.305741,1.791759,,0 +11,3,0,1,1,326602,0,11000,33.26762,1,11,1,15.93463,0,0,0,0,15.93463,0,0,0,1,0,6,75,6.9,0,79.5,0,0,0,0,1.791759,0,0,0,0,0,0,0,79.5,9.305741,1.791759,2.768495,1 +11,3,0,1,2,326602,0,11000,34.26762,1,11,1,78.27004,0,0,0,0,78.27004,0,0,0,3,0,6,75,6.9,0,79.5,0,0,0,0,1.791759,0,0,0,0,0,0,0,79.5,9.305741,1.791759,4.360165,1 +11,3,0,1,3,326602,0,11000,35.26762,1,11,1,55.88994,0,0,0,0,55.88994,0,0,0,5,0,6,75,6.9,0,79.5,0,0,0,0,1.791759,0,0,0,0,0,0,0,79.5,9.305741,1.791759,4.023385,1 +11,3,0,1,1,326603,0,11000,37.59069,0,8,1,28.08989,0,0,0,0,28.08989,0,0,0,0,0,6,78.7,17.2,1,68.2,0,0,0,0,1.791759,0,0,0,0,0,1,0,68.2,9.305741,1.791759,3.33541,1 +11,3,0,1,2,326603,0,11000,38.59069,0,8,1,19.69058,0,0,0,0,19.69058,0,0,0,1,0,6,78.7,17.2,1,68.2,0,0,0,0,1.791759,0,0,0,0,0,1,0,68.2,9.305741,1.791759,2.98014,1 +11,3,0,1,3,326603,0,11000,39.59069,0,8,1,22.7859,0,0,0,742.0551,764.8409,1,0,0,2,0,6,78.7,17.2,1,68.2,0,0,0,0,1.791759,0,0,0,0,0,1,0,68.2,9.305741,1.791759,6.639668,1 +11,3,0,1,1,326605,0,11000,4.774812,1,11,1,7.660879,1.659857,0,0,0,9.320735,0,0,0,1,0,6,83.39137,9.967326,0,77.8,0,0,1,1,1.791759,0,0,0,0,1,0,0,77.8,9.305741,1.791759,2.232241,1 +11,3,0,1,2,326605,0,11000,5.774812,1,11,1,24.37881,0,0,0,0,24.37881,0,0,0,3,0,6,83.39137,9.967326,0,77.8,0,0,1,1,1.791759,0,0,0,0,1,0,0,77.8,9.305741,1.791759,3.193714,1 +11,3,0,1,3,326605,0,11000,6.774812,1,11,1,0,0,0,0,0,0,0,0,0,0,0,6,83.39137,9.967326,0,77.8,0,0,1,1,1.791759,0,0,0,0,1,0,0,77.8,9.305741,1.791759,,0 +11,3,0,1,1,326606,0,11000,12.25736,1,11,1,25.53626,2.93667,0,0,0,28.47293,0,0,0,2,0,6,78.3,9.967326,0,92.6,0,0,1,1,1.791759,0,0,0,0,0,0,0,92.6,9.305741,1.791759,3.348954,1 +11,3,0,1,2,326606,0,11000,13.25736,1,11,1,257.0933,1.523676,0,0,0,258.617,0,0,0,0,0,6,78.3,9.967326,0,92.6,0,0,1,1,1.791759,0,0,0,0,0,0,0,92.6,9.305741,1.791759,5.555348,1 +11,3,0,1,3,326606,0,11000,14.25736,1,11,1,0,0,0,0,0,0,0,0,0,0,0,6,78.3,9.967326,0,92.6,0,0,1,1,1.791759,0,0,0,0,0,0,0,92.6,9.305741,1.791759,,0 +11,3,0,1,1,326607,0,11000,12.25736,0,11,1,52.34933,0,0,0,0,52.34933,0,0,0,2,0,6,88.3,9.967326,0,81.5,0,0,1,0,1.791759,0,0,0,0,0,1,0,81.5,9.305741,1.791759,3.957939,1 +11,3,0,1,2,326607,0,11000,13.25736,0,11,1,138.3029,0,0,0,0,138.3029,0,0,0,4,0,6,88.3,9.967326,0,81.5,0,0,1,0,1.791759,0,0,0,0,0,1,0,81.5,9.305741,1.791759,4.929446,1 +11,3,0,1,3,326607,0,11000,14.25736,0,11,1,12.46776,0,0,0,0,12.46776,0,0,0,2,0,6,88.3,9.967326,0,81.5,0,0,1,0,1.791759,0,0,0,0,0,1,0,81.5,9.305741,1.791759,2.523146,1 +13,3,0,1,1,326639,0,7196.79,33.22929,1,11.38739,1,150.4302,73.40587,0,0,452.9706,676.8067,1,0,0,17,0,3,71.8,13.8,0,88.6,450,873.84,0,0,1.098612,6.772897,1,4.564348,6.160541,1,0,0,88.6,8.881529,1.098612,6.517385,1 +13,3,0,1,2,326639,0,7196.79,34.22929,1,11.38739,1,332.7273,66.46154,0,0,1751.296,2150.485,1,0,0,16,0,3,71.8,13.8,0,88.6,450,873.84,0,0,1.098612,6.772897,1,4.564348,6.160541,1,0,0,88.6,8.881529,1.098612,7.673449,1 +13,3,0,1,3,326639,0,7196.79,35.22929,1,11.38739,1,131.2527,42.66781,0,0,0,173.9205,0,0,0,10,1,3,71.8,13.8,0,88.6,450,873.84,0,0,1.098612,6.772897,1,4.564348,6.160541,1,0,0,88.6,8.881529,1.098612,5.158598,1 +13,3,0,1,1,326640,0,7196.79,.9089665,1,11.38739,1,7.591093,21.35628,0,0,0,28.94737,0,0,0,0,0,3,83.39137,9.967326,0,100,450,873.84,1,1,1.098612,6.772897,1,4.564348,6.160541,0,0,0,100,8.881529,1.098612,3.365479,1 +13,3,0,1,2,326640,0,7196.79,1.908966,1,11.38739,1,11.65501,16.18648,0,0,0,27.84149,0,0,0,2,0,3,83.39137,9.967326,0,100,450,873.84,1,1,1.098612,6.772897,1,4.564348,6.160541,0,0,0,100,8.881529,1.098612,3.326527,1 +13,3,0,1,3,326640,0,7196.79,2.908967,1,11.38739,1,40.18811,10.47456,0,0,0,50.66268,0,0,0,2,0,3,83.39137,9.967326,0,100,450,873.84,1,1,1.098612,6.772897,1,4.564348,6.160541,0,0,0,100,8.881529,1.098612,3.925189,1 +13,3,0,1,1,326641,0,7196.79,35.96714,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,90.4,0,0,89.8,450,873.84,0,0,1.098612,6.772897,1,4.564348,6.160541,1,0,0,89.8,8.881529,1.098612,,0 +13,3,0,1,2,326641,0,7196.79,36.96714,0,12,1,15.85082,3.426574,0,0,0,19.27739,0,0,0,1,0,3,90.4,0,0,89.8,450,873.84,0,0,1.098612,6.772897,1,4.564348,6.160541,1,0,0,89.8,8.881529,1.098612,2.958933,1 +13,3,0,1,3,326641,0,7196.79,37.96714,0,12,1,73.96323,0,0,0,0,73.96323,0,0,0,3,0,3,90.4,0,0,89.8,450,873.84,0,0,1.098612,6.772897,1,4.564348,6.160541,1,0,0,89.8,8.881529,1.098612,4.303568,1 +10,3,50,1,1,326668,1,7196.79,40.17249,1,1,1,126.6358,16.44513,24.72952,38.63988,0,167.8104,0,0,5,10,0,1,74.46748,9.967326,.1572505,,457.5,0,0,0,0,0,0,3.931826,6.818924,0,0,1,72.06626,8.881529,0,5.122835,1 +13,3,0,1,1,326700,0,8140.411,11.46338,1,8,1,94.07558,1.726251,11.74668,0,0,107.5485,0,0,0,6,0,4,41.7,9.967326,0,88.9,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,88.9,9.004719,1.386294,4.677942,1 +13,3,0,1,2,326700,0,8140.411,12.46338,1,8,1,0,0,0,0,0,0,0,0,0,0,0,4,41.7,9.967326,0,88.9,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,88.9,9.004719,1.386294,,0 +13,3,0,1,3,326700,0,8140.411,13.46338,1,8,1,19.34652,1.88736,0,0,0,21.23388,0,0,0,2,0,4,41.7,9.967326,0,88.9,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,88.9,9.004719,1.386294,3.055598,1 +13,3,0,1,4,326700,0,8140.411,14.46338,1,8,1,98.10004,1.512214,0,0,0,99.61225,0,0,0,4,0,4,41.7,9.967326,0,88.9,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,88.9,9.004719,1.386294,4.601285,1 +13,3,0,1,5,326700,0,8140.411,15.46338,1,8,1,41.29512,4.918613,0,0,0,46.21373,0,0,0,2,2,4,41.7,9.967326,0,88.9,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,88.9,9.004719,1.386294,3.833277,1 +13,3,0,1,1,326701,0,8140.411,9.678303,0,8,1,21.24617,4.060266,0,0,0,25.30643,0,0,0,2,0,4,88.3,9.967326,0,81.5,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,81.5,9.004719,1.386294,3.231059,1 +13,3,0,1,2,326701,0,8140.411,10.6783,0,8,1,9.376465,0,0,0,0,9.376465,0,0,0,1,0,4,88.3,9.967326,0,81.5,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,81.5,9.004719,1.386294,2.238203,1 +13,3,0,1,3,326701,0,8140.411,11.6783,0,8,1,32.67412,0,0,0,0,32.67412,0,0,0,2,0,4,88.3,9.967326,0,81.5,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,81.5,9.004719,1.386294,3.486583,1 +13,3,0,1,4,326701,0,8140.411,12.6783,0,8,1,11.63242,0,0,0,0,11.63242,0,0,0,1,0,4,88.3,9.967326,0,81.5,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,81.5,9.004719,1.386294,2.453796,1 +13,3,0,1,5,326701,0,8140.411,13.6783,0,8,1,11.67728,0,0,0,0,11.67728,0,0,0,1,0,4,88.3,9.967326,0,81.5,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,81.5,9.004719,1.386294,2.457645,1 +13,3,0,1,1,326702,0,8140.411,40.55031,1,8,1,12.76813,0,25.53626,0,0,38.30439,0,0,0,1,0,4,78.2,0,0,80.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,80.7,9.004719,1.386294,3.645565,1 +13,3,0,1,2,326702,0,8140.411,41.55031,1,8,1,389.2639,3.516174,0,0,0,392.7801,0,0,0,7,5,4,78.2,0,0,80.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,80.7,9.004719,1.386294,5.97325,1 +13,3,0,1,3,326702,0,8140.411,42.55031,1,8,1,102.3216,19.56148,0,0,0,121.8831,0,0,0,4,0,4,78.2,0,0,80.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,80.7,9.004719,1.386294,4.803062,1 +13,3,0,1,4,326702,0,8140.411,43.55031,1,8,1,124.0791,5.040713,13.9589,0,0,143.0787,0,0,0,3,13,4,78.2,0,0,80.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,80.7,9.004719,1.386294,4.963395,1 +13,3,0,1,5,326702,0,8140.411,44.55031,1,8,1,39.27813,14.50814,23.35456,0,0,77.14084,0,0,0,3,0,4,78.2,0,0,80.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,80.7,9.004719,1.386294,4.345633,1 +13,3,0,1,1,326703,0,8140.411,43.01985,0,7,1,77.11951,35.92441,25.02554,0,0,138.0695,0,0,0,7,0,4,75,6.9,0,65.9,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,65.9,9.004719,1.386294,4.927757,1 +13,3,0,1,2,326703,0,8140.411,44.01985,0,7,1,35.16174,42.48008,0,0,0,77.64182,0,0,0,4,0,4,75,6.9,0,65.9,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,65.9,9.004719,1.386294,4.352106,1 +13,3,0,1,3,326703,0,8140.411,45.01985,0,7,1,33.53396,70.12038,10.31814,0,0,113.9725,0,0,0,5,0,4,75,6.9,0,65.9,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,65.9,9.004719,1.386294,4.735957,1 +13,3,0,1,4,326703,0,8140.411,46.01985,0,7,1,111.71,66.01784,0,0,0,177.7278,0,0,0,6,0,4,75,6.9,0,65.9,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,65.9,9.004719,1.386294,5.180253,1 +13,3,0,1,5,326703,0,8140.411,47.01985,0,7,1,35.3857,61.3942,0,0,0,96.7799,0,0,0,3,0,4,75,6.9,0,65.9,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,65.9,9.004719,1.386294,4.572439,1 +11,3,0,1,1,326705,0,4692.082,22.18754,0,12,1,69.03658,3.09119,0,0,0,72.12777,0,0,0,7,0,1,88.8,13.8,0,92,0,65.04,0,0,0,4.175003,0,0,0,0,0,0,92,8.453845,0,4.278439,1 +11,3,0,1,2,326705,0,4692.082,23.18754,0,12,1,17.75568,1.889205,0,0,0,19.64489,0,0,0,2,0,1,88.8,13.8,0,92,0,65.04,0,0,0,4.175003,0,0,0,0,0,0,92,8.453845,0,2.977817,1 +11,3,0,1,3,326705,0,4692.082,24.18754,0,12,1,54.50802,6.475943,0,0,812.8522,873.8361,1,0,0,4,0,1,88.8,13.8,0,92,0,65.04,0,0,0,4.175003,0,0,0,0,0,0,92,8.453845,0,6.772893,1 +15,3,95,1,1,326734,0,6617.009,24.12868,1,15,1,7.591093,0,0,0,0,7.591093,0,0,0,1,0,3,82.4,17.2,0,76.1,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,76.1,8.79755,1.098612,2.026976,1 +15,3,95,1,2,326734,0,6617.009,25.12868,1,15,1,0,0,0,0,0,0,0,0,0,0,0,3,82.4,17.2,0,76.1,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,76.1,8.79755,1.098612,,0 +15,3,95,1,3,326734,0,6617.009,26.12868,1,15,1,0,0,0,0,1121.552,1121.552,1,0,0,0,0,3,82.4,17.2,0,76.1,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,76.1,8.79755,1.098612,7.022469,1 +15,3,95,1,1,326735,0,6617.009,24.12047,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,96.3,6.9,0,86.4,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,86.4,8.79755,1.098612,,0 +15,3,95,1,2,326735,0,6617.009,25.12047,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,96.3,6.9,0,86.4,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,86.4,8.79755,1.098612,,0 +15,3,95,1,3,326735,0,6617.009,26.12047,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,96.3,6.9,0,86.4,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,86.4,8.79755,1.098612,,0 +14,3,95,1,1,326741,0,9609.384,9.284052,1,10,1,6.128703,0,0,0,0,6.128703,0,0,0,1,0,5,80,9.967326,0,74.1,582.6,582.6,1,1,1.609438,6.367501,0,4.564348,6.418794,0,0,0,74.1,9.170599,1.609438,1.812983,1 +14,3,95,1,2,326741,0,9609.384,10.28405,1,10,1,0,0,0,0,0,0,0,0,0,0,0,5,80,9.967326,0,74.1,582.6,582.6,1,1,1.609438,6.367501,0,4.564348,6.418794,0,0,0,74.1,9.170599,1.609438,,0 +14,3,95,1,3,326741,0,9609.384,11.28405,1,10,1,0,0,0,0,0,0,0,0,0,0,0,5,80,9.967326,0,74.1,582.6,582.6,1,1,1.609438,6.367501,0,4.564348,6.418794,0,0,0,74.1,9.170599,1.609438,,0 +14,3,95,1,1,326742,0,9609.384,3.156742,1,10,1,19.40756,10.31665,0,0,0,29.72421,0,0,0,2,0,5,83.39137,9.967326,0,51.9,582.6,582.6,1,1,1.609438,6.367501,0,4.564348,6.418794,1,0,0,51.9,9.170599,1.609438,3.391962,1 +14,3,95,1,2,326742,0,9609.384,4.156742,1,10,1,0,2.109705,0,0,0,2.109705,0,0,0,0,0,5,83.39137,9.967326,0,51.9,582.6,582.6,1,1,1.609438,6.367501,0,4.564348,6.418794,1,0,0,51.9,9.170599,1.609438,.746548,1 +14,3,95,1,3,326742,0,9609.384,5.156742,1,10,1,15.90714,0,0,0,0,15.90714,0,0,0,1,0,5,83.39137,9.967326,0,51.9,582.6,582.6,1,1,1.609438,6.367501,0,4.564348,6.418794,1,0,0,51.9,9.170599,1.609438,2.766768,1 +14,3,95,1,1,326743,0,9609.384,31.60027,1,10,1,5.107252,37.35955,0,0,0,42.4668,0,0,0,1,0,5,53.7,27.6,0,46.6,582.6,582.6,0,0,1.609438,6.367501,0,4.564348,6.418794,1,0,0,46.6,9.170599,1.609438,3.748723,1 +14,3,95,1,2,326743,0,9609.384,32.60027,1,10,1,41.02203,18.95921,0,0,0,59.98125,0,0,0,4,0,5,53.7,27.6,0,46.6,582.6,582.6,0,0,1.609438,6.367501,0,4.564348,6.418794,1,0,0,46.6,9.170599,1.609438,4.094032,1 +14,3,95,1,3,326743,0,9609.384,33.60027,1,10,1,16.33706,1.973345,0,0,372.6139,390.9243,1,0,0,2,0,5,53.7,27.6,0,46.6,582.6,582.6,0,0,1.609438,6.367501,0,4.564348,6.418794,1,0,0,46.6,9.170599,1.609438,5.968514,1 +14,3,95,1,1,326744,0,9609.384,30.2204,0,12,1,30.43922,19.86721,0,0,0,50.30643,0,0,0,2,0,5,83,10.3,0,70.5,582.6,582.6,0,0,1.609438,6.367501,0,4.564348,6.418794,1,0,0,70.5,9.170599,1.609438,3.918133,1 +14,3,95,1,2,326744,0,9609.384,31.2204,0,12,1,7.032349,17.97937,0,0,0,25.01172,0,0,0,1,0,5,83,10.3,0,70.5,582.6,582.6,0,0,1.609438,6.367501,0,4.564348,6.418794,1,0,0,70.5,9.170599,1.609438,3.219345,1 +14,3,95,1,3,326744,0,9609.384,32.2204,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,83,10.3,0,70.5,582.6,582.6,0,0,1.609438,6.367501,0,4.564348,6.418794,1,0,0,70.5,9.170599,1.609438,,0 +14,3,95,1,1,326745,0,9609.384,6.417522,0,10,1,6.128703,0,0,0,0,6.128703,0,0,0,1,0,5,83.3,9.967326,0,66.7,582.6,582.6,1,0,1.609438,6.367501,0,4.564348,6.418794,1,0,0,66.7,9.170599,1.609438,1.812983,1 +14,3,95,1,2,326745,0,9609.384,7.417522,0,10,1,0,0,0,0,0,0,0,0,0,0,0,5,83.3,9.967326,0,66.7,582.6,582.6,1,0,1.609438,6.367501,0,4.564348,6.418794,1,0,0,66.7,9.170599,1.609438,,0 +14,3,95,1,3,326745,0,9609.384,8.417522,0,10,1,28.80482,0,0,0,0,28.80482,0,0,0,2,0,5,83.3,9.967326,0,66.7,582.6,582.6,1,0,1.609438,6.367501,0,4.564348,6.418794,1,0,0,66.7,9.170599,1.609438,3.360543,1 +10,3,50,1,1,326766,0,14914.37,9.629022,0,11.38739,1,12.76813,0,0,0,0,12.76813,0,0,0,2,0,5,71.7,9.967326,0,85.2,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,85.2,9.610147,1.609438,2.546952,1 +10,3,50,1,2,326766,0,14914.37,10.62902,0,11.38739,1,0,2.180028,0,0,0,2.180028,0,0,0,0,0,5,71.7,9.967326,0,85.2,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,85.2,9.610147,1.609438,.7793378,1 +10,3,50,1,3,326766,0,14914.37,11.62902,0,11.38739,1,52.10662,.9673259,24.72055,0,1982.33,2060.125,2,0,0,4,1,5,71.7,9.967326,0,85.2,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,85.2,9.610147,1.609438,7.630522,1 +10,3,50,1,1,326767,0,14914.37,43.87954,0,18,1,55.00511,0,33.70787,0,0,88.71297,0,0,0,4,1,5,92,6.9,0,61.4,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,61.4,9.610147,1.609438,4.485406,1 +10,3,50,1,2,326767,0,14914.37,44.87954,0,18,1,50.16409,.8907642,0,0,0,51.05485,0,0,0,1,2,5,92,6.9,0,61.4,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,61.4,9.610147,1.609438,3.932901,1 +10,3,50,1,3,326767,0,14914.37,45.87954,0,18,1,15.04729,3.288908,35.68358,0,0,54.01978,0,0,0,1,0,5,92,6.9,0,61.4,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,61.4,9.610147,1.609438,3.98935,1 +10,3,50,1,1,326768,0,14914.37,38.87201,1,11.38739,1,145.1992,18.45761,27.06844,0,0,190.7252,0,0,0,4,1,5,89.9,10.3,0,87.5,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,87.5,9.610147,1.609438,5.250834,1 +10,3,50,1,2,326768,0,14914.37,39.87201,1,11.38739,1,0,19.18425,0,0,0,19.18425,0,0,0,0,0,5,89.9,10.3,0,87.5,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,87.5,9.610147,1.609438,2.95409,1 +10,3,50,1,3,326768,0,14914.37,40.87201,1,11.38739,1,31.6423,31.6724,11.17799,0,0,74.49269,0,0,0,2,1,5,89.9,10.3,0,87.5,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,87.5,9.610147,1.609438,4.310701,1 +10,3,50,1,1,326769,0,14914.37,12.74743,1,11.38739,1,17.87538,0,21.45046,0,0,39.32584,0,0,0,1,1,5,100,9.967326,0,96.3,1000,1000,1,1,1.609438,6.907755,0,3.931826,7.600903,0,0,0,96.3,9.610147,1.609438,3.671882,1 +10,3,50,1,2,326769,0,14914.37,13.74743,1,11.38739,1,4.688232,1.61744,0,0,0,6.305673,0,0,0,1,0,5,100,9.967326,0,96.3,1000,1000,1,1,1.609438,6.907755,0,3.931826,7.600903,0,0,0,96.3,9.610147,1.609438,1.84145,1 +10,3,50,1,3,326769,0,14914.37,14.74743,1,11.38739,1,83.83491,14.4454,20.63629,0,0,118.9166,0,0,0,3,1,5,100,9.967326,0,96.3,1000,1000,1,1,1.609438,6.907755,0,3.931826,7.600903,0,0,0,96.3,9.610147,1.609438,4.778422,1 +10,3,50,1,1,326770,0,14914.37,13.92471,0,11.38739,1,7.660879,0,0,0,287.1042,294.7651,1,0,0,1,0,5,81.7,9.967326,0,55.6,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,55.6,9.610147,1.609438,5.686179,1 +10,3,50,1,2,326770,0,14914.37,14.92471,0,11.38739,1,43.45992,6.610408,0,0,0,50.07032,0,0,0,2,0,5,81.7,9.967326,0,55.6,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,55.6,9.610147,1.609438,3.913429,1 +10,3,50,1,3,326770,0,14914.37,15.92471,0,11.38739,1,7.308684,3.181427,0,0,0,10.49011,0,0,0,2,0,5,81.7,9.967326,0,55.6,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,55.6,9.610147,1.609438,2.350433,1 +5,3,25,1,1,326780,0,6466.276,44.97741,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,79.8,6.9,0,70.5,562.6,562.6,0,0,0,6.332569,0,3.258096,7.718863,0,0,0,70.5,8.77451,0,,0 +5,3,25,1,2,326780,0,6466.276,45.97741,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,79.8,6.9,0,70.5,562.6,562.6,0,0,0,6.332569,0,3.258096,7.718863,0,0,0,70.5,8.77451,0,,0 +5,3,25,1,3,326780,0,6466.276,46.97741,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,79.8,6.9,0,70.5,562.6,562.6,0,0,0,6.332569,0,3.258096,7.718863,0,0,0,70.5,8.77451,0,,0 +11,3,0,0,1,326920,.0322129,10066.86,53.07324,1,11.38739,1,91.93054,.6741573,0,0,0,92.6047,0,0,0,2,6,3,74.46748,9.967326,.1572505,,0,0,0,0,1.098612,0,0,0,0,0,0,0,72.06626,9.217104,1.098612,4.52834,1 +11,3,0,0,2,326920,.0322129,10066.86,54.07324,1,11.38739,1,381.8097,0,0,0,0,381.8097,0,0,0,2,75,3,74.46748,9.967326,.1572505,,0,0,0,0,1.098612,0,0,0,0,0,0,0,72.06626,9.217104,1.098612,5.944922,1 +11,3,0,0,3,326920,.0322129,10066.86,55.07324,1,11.38739,1,640.0258,1.698194,0,0,4650.787,5292.511,1,0,0,9,3,3,74.46748,9.967326,.1572505,,0,0,0,0,1.098612,0,0,0,0,0,0,0,72.06626,9.217104,1.098612,8.574048,1 +11,3,0,0,4,326920,.0322129,10066.86,56.07324,1,11.38739,1,124.4669,3.606049,31.01978,0,1565.839,1724.932,1,0,0,9,2,3,74.46748,9.967326,.1572505,,0,0,0,0,1.098612,0,0,0,0,0,0,0,72.06626,9.217104,1.098612,7.452943,1 +11,3,0,0,5,326920,.0322129,10066.86,57.07324,1,11.38739,1,165.1628,8.266101,0,0,0,173.4289,0,0,0,7,2,3,74.46748,9.967326,.1572505,,0,0,0,0,1.098612,0,0,0,0,0,0,0,72.06626,9.217104,1.098612,5.155767,1 +11,3,0,1,1,326921,0,2570.088,22.46407,0,11.38739,1,5.107252,0,0,0,0,5.107252,0,0,0,1,0,1,78.7,3.4,0,81.8,0,227.4,0,0,0,5.426711,0,0,0,0,0,0,81.8,7.852084,0,1.630661,1 +11,3,0,1,2,326921,0,2570.088,23.46407,0,11.38739,1,27.09798,0,0,0,0,27.09798,0,0,1,0,1,1,78.7,3.4,0,81.8,0,227.4,0,0,0,5.426711,0,0,0,0,0,0,81.8,7.852084,0,3.299459,1 +11,3,0,1,3,326921,0,2570.088,24.46407,0,11.38739,1,297.6268,1.977644,0,0,0,299.6045,0,0,0,3,0,1,78.7,3.4,0,81.8,0,227.4,0,0,0,5.426711,0,0,0,0,0,0,81.8,7.852084,0,5.702463,1 +11,3,0,1,4,326921,0,2570.088,25.46407,0,11.38739,1,0,0,0,0,0,0,0,0,0,0,0,1,78.7,3.4,0,81.8,0,227.4,0,0,0,5.426711,0,0,0,0,0,0,81.8,7.852084,0,,0 +11,3,0,1,5,326921,0,2570.088,26.46407,0,11.38739,1,8.846426,0,23.35456,0,0,32.20099,0,0,0,0,1,2,78.7,3.4,0,81.8,0,227.4,0,0,.6931472,5.426711,0,0,0,0,0,0,81.8,7.852084,.6931472,3.471997,1 +11,3,0,0,1,326922,.0322129,10066.86,14.00958,0,11.38739,1,97.24208,5.311543,0,0,0,102.5536,0,0,0,8,1,3,74.46748,9.967326,.1572505,,0,0,1,0,1.098612,0,0,0,0,0,0,0,72.06626,9.217104,1.098612,4.630386,1 +11,3,0,0,2,326922,.0322129,10066.86,15.00958,0,11.38739,1,50.63291,0,0,0,0,50.63291,0,0,0,1,9,3,74.46748,9.967326,.1572505,,0,0,1,0,1.098612,0,0,0,0,0,0,0,72.06626,9.217104,1.098612,3.924602,1 +11,3,0,0,3,326922,.0322129,10066.86,16.00958,0,11.38739,1,14.18745,4.363715,0,0,0,18.55116,0,0,0,2,0,3,74.46748,9.967326,.1572505,,0,0,1,0,1.098612,0,0,0,0,0,0,0,72.06626,9.217104,1.098612,2.920532,1 +11,3,0,0,4,326922,.0322129,10066.86,17.00958,0,11.38739,1,26.75456,0,0,0,0,26.75456,0,0,0,1,0,3,74.46748,9.967326,.1572505,,0,0,1,0,1.098612,0,0,0,0,0,0,0,72.06626,9.217104,1.098612,3.286705,1 +11,3,0,0,5,326922,.0322129,10066.86,18.00958,0,11.38739,1,8.846426,0,0,0,0,8.846426,0,0,0,1,0,3,74.46748,9.967326,.1572505,,0,0,0,0,1.098612,0,0,0,0,0,0,0,72.06626,9.217104,1.098612,2.180013,1 +11,3,0,0,1,326923,.0322129,10066.86,53.02122,0,11.38739,1,16.34321,.6792645,0,0,0,17.02247,0,0,0,1,1,3,74.46748,9.967326,.1572505,,0,0,0,0,1.098612,0,0,0,0,0,0,0,72.06626,9.217104,1.098612,2.834534,1 +11,3,0,0,2,326923,.0322129,10066.86,54.02122,0,11.38739,1,88.6076,4.664792,44.53821,0,0,137.8106,0,0,0,4,1,3,74.46748,9.967326,.1572505,,0,0,0,0,1.098612,0,0,0,0,0,0,0,72.06626,9.217104,1.098612,4.92588,1 +11,3,0,0,3,326923,.0322129,10066.86,55.02122,0,11.38739,1,0,0,0,0,0,0,0,0,0,0,0,3,74.46748,9.967326,.1572505,,0,0,0,0,1.098612,0,0,0,0,0,0,0,72.06626,9.217104,1.098612,,0 +11,3,0,0,4,326923,.0322129,10066.86,56.02122,0,11.38739,1,6.203955,0,0,0,0,6.203955,0,0,0,1,0,3,74.46748,9.967326,.1572505,,0,0,0,0,1.098612,0,0,0,0,0,0,0,72.06626,9.217104,1.098612,1.825187,1 +11,3,0,0,5,326923,.0322129,10066.86,57.02122,0,11.38739,1,30.39632,15.07431,36.09342,0,0,81.56405,0,0,0,2,1,3,74.46748,9.967326,.1572505,,0,0,0,0,1.098612,0,0,0,0,0,0,0,72.06626,9.217104,1.098612,4.401389,1 +11,3,0,1,1,326975,0,4611.144,51.33196,1,6,1,23.69912,2.009274,30.9119,0,0,56.6203,0,0,0,3,0,3,73.4,13.8,0,75,0,369.12,0,0,1.098612,5.911122,0,0,0,1,0,0,75,8.436448,1.098612,4.036367,1 +11,3,0,1,2,326975,0,4611.144,52.33196,1,6,1,11.83712,0,0,0,0,11.83712,0,0,0,1,0,3,73.4,13.8,0,75,0,369.12,0,0,1.098612,5.911122,0,0,0,1,0,0,75,8.436448,1.098612,2.471241,1 +11,3,0,1,3,326975,0,4611.144,53.33196,1,6,1,52.44907,9.185089,25.35761,0,0,86.99177,0,0,0,2,5,3,73.4,13.8,0,75,0,369.12,0,0,1.098612,5.911122,0,0,0,1,0,0,75,8.436448,1.098612,4.465814,1 +11,3,0,1,4,326975,0,4611.144,54.33196,1,6,1,33.04451,19.6731,0,0,0,52.71761,0,0,0,2,0,3,73.4,13.8,0,75,0,369.12,0,0,1.098612,5.911122,0,0,0,1,0,0,75,8.436448,1.098612,3.964949,1 +11,3,0,1,5,326975,0,4611.144,55.33196,1,6,1,62.14669,22.75492,28.62254,0,0,113.5241,0,0,0,2,0,3,73.4,13.8,0,75,0,369.12,0,0,1.098612,5.911122,0,0,0,1,0,0,75,8.436448,1.098612,4.732016,1 +11,3,0,1,1,326976,0,4611.144,15.60301,1,6,1,26.79031,19.00051,0,0,0,45.79083,0,0,0,1,0,3,87.8,6.9,0,90.9,0,369.12,1,1,1.098612,5.911122,0,0,0,1,0,0,90.9,8.436448,1.098612,3.824084,1 +11,3,0,1,2,326976,0,4611.144,16.60301,1,6,1,0,18.50852,0,0,0,18.50852,0,0,0,0,0,3,87.8,6.9,0,90.9,0,369.12,1,1,1.098612,5.911122,0,0,0,1,0,0,90.9,8.436448,1.098612,2.918231,1 +11,3,0,1,3,326976,0,4611.144,17.60301,1,6,1,32.94321,18.48721,28.17512,0,0,79.60555,0,0,0,3,1,3,87.8,6.9,0,90.9,0,369.12,1,1,1.098612,5.911122,0,0,0,1,0,0,90.9,8.436448,1.098612,4.377084,1 +11,3,0,1,4,326976,0,4611.144,18.60301,1,6,1,74.83261,20.01182,27.17605,0,0,122.0205,0,0,0,8,1,3,87.8,6.9,0,90.9,0,369.12,0,0,1.098612,5.911122,0,0,0,1,0,0,90.9,8.436448,1.098612,4.804189,1 +11,3,0,1,5,326976,0,4611.144,19.60301,1,6,1,44.90161,6.440072,0,0,0,51.34168,0,0,0,3,0,3,87.8,6.9,0,90.9,0,369.12,0,0,1.098612,5.911122,0,0,0,1,0,0,90.9,8.436448,1.098612,3.938503,1 +11,3,0,1,1,326977,0,4611.144,14.29706,0,6,1,0,0,22.66873,0,0,22.66873,0,0,0,0,0,3,88.3,0,0,80.7,0,369.12,1,0,1.098612,5.911122,0,0,0,1,0,0,80.7,8.436448,1.098612,3.120986,1 +11,3,0,1,2,326977,0,4611.144,15.29706,0,6,1,5.681818,0,0,0,0,5.681818,0,0,0,1,0,3,88.3,0,0,80.7,0,369.12,1,0,1.098612,5.911122,0,0,0,1,0,0,80.7,8.436448,1.098612,1.737271,1 +11,3,0,1,3,326977,0,4611.144,16.29706,0,6,1,20.80624,3.654096,25.14087,0,0,49.60122,0,0,0,2,0,3,88.3,0,0,80.7,0,369.12,1,0,1.098612,5.911122,0,0,0,1,0,0,80.7,8.436448,1.098612,3.904015,1 +11,3,0,1,4,326977,0,4611.144,17.29706,0,6,1,40.88224,3.292635,0,0,265.833,310.0079,1,0,0,2,0,3,88.3,0,0,80.7,0,369.12,1,0,1.098612,5.911122,0,0,0,1,0,0,80.7,8.436448,1.098612,5.736598,1 +11,3,0,1,5,326977,0,4611.144,18.29706,0,6,1,20.75134,0,0,0,0,20.75134,0,0,0,2,0,3,88.3,0,0,80.7,0,369.12,0,0,1.098612,5.911122,0,0,0,1,0,0,80.7,8.436448,1.098612,3.032611,1 +11,3,0,1,1,327011,0,9034.604,3.460643,1,14,1,46.47599,13.89173,0,0,0,60.36772,0,0,0,7,0,4,83.39137,9.967326,0,92.6,0,0,1,1,1.386294,0,0,0,0,0,0,0,92.6,9.108928,1.386294,4.100454,1 +11,3,0,1,2,327011,0,9034.604,4.460643,1,14,1,26.2541,13.23019,0,0,0,39.48429,0,0,0,4,0,4,83.39137,9.967326,0,92.6,0,0,1,1,1.386294,0,0,0,0,0,0,0,92.6,9.108928,1.386294,3.675903,1 +11,3,0,1,3,327011,0,9034.604,5.460643,1,14,1,0,0,0,0,0,0,0,0,0,0,0,4,83.39137,9.967326,0,92.6,0,0,1,1,1.386294,0,0,0,0,0,0,0,92.6,9.108928,1.386294,,0 +11,3,0,1,4,327011,0,9034.604,6.460643,1,14,1,50.40714,2.113222,0,0,0,52.52036,0,0,0,1,0,4,83.39137,9.967326,0,92.6,0,0,1,1,1.386294,0,0,0,0,0,0,0,92.6,9.108928,1.386294,3.961201,1 +11,3,0,1,5,327011,0,9034.604,7.460643,1,14,1,8.846426,13.49965,0,0,0,22.34607,0,0,0,1,0,4,83.39137,9.967326,0,92.6,0,0,1,1,1.386294,0,0,0,0,0,0,0,92.6,9.108928,1.386294,3.106651,1 +11,3,0,1,1,327012,0,9034.604,27.57563,1,14,1,15.85802,.8120531,0,0,0,16.67007,0,0,0,1,0,4,78.7,24.1,1,75,0,0,0,0,1.386294,0,0,0,0,1,0,0,75,9.108928,1.386294,2.813615,1 +11,3,0,1,2,327012,0,9034.604,28.57563,1,14,1,22.73793,8.954524,0,0,0,31.69245,0,0,0,1,0,4,78.7,24.1,1,75,0,0,0,0,1.386294,0,0,0,0,1,0,0,75,9.108928,1.386294,3.456079,1 +11,3,0,1,3,327012,0,9034.604,29.57563,1,14,1,0,1.934652,0,0,0,1.934652,0,0,0,0,0,4,78.7,24.1,1,75,0,0,0,0,1.386294,0,0,0,0,1,0,0,75,9.108928,1.386294,.6599273,1 +11,3,0,1,4,327012,0,9034.604,30.57563,1,14,1,50.40714,2.155874,0,0,0,52.56301,0,0,0,1,0,4,78.7,24.1,1,75,0,0,0,0,1.386294,0,0,0,0,1,0,0,75,9.108928,1.386294,3.962013,1 +11,3,0,1,5,327012,0,9034.604,31.57563,1,14,1,7.077141,20.12031,0,0,0,27.19745,0,0,0,1,0,4,78.7,24.1,1,75,0,0,0,0,1.386294,0,0,0,0,1,0,0,75,9.108928,1.386294,3.303123,1 +11,3,0,1,1,327013,0,9034.604,7.23614,1,14,1,61.79775,10.63841,0,0,0,72.43616,0,0,0,8,0,4,87.3,9.967326,0,92.6,0,0,1,1,1.386294,0,0,0,0,0,0,0,92.6,9.108928,1.386294,4.282706,1 +11,3,0,1,2,327013,0,9034.604,8.236139,1,14,1,10.31411,3.375527,0,0,0,13.68964,0,0,0,1,0,4,87.3,9.967326,0,92.6,0,0,1,1,1.386294,0,0,0,0,0,0,0,92.6,9.108928,1.386294,2.616639,1 +11,3,0,1,3,327013,0,9034.604,9.236139,1,14,1,0,0,0,0,0,0,0,0,0,0,0,4,87.3,9.967326,0,92.6,0,0,1,1,1.386294,0,0,0,0,0,0,0,92.6,9.108928,1.386294,,0 +11,3,0,1,4,327013,0,9034.604,10.23614,1,14,1,0,0,0,0,0,0,0,0,0,0,0,4,87.3,9.967326,0,92.6,0,0,1,1,1.386294,0,0,0,0,0,0,0,92.6,9.108928,1.386294,,0 +11,3,0,1,5,327013,0,9034.604,11.23614,1,14,1,10.61571,1.167728,0,0,0,11.78344,0,0,0,1,0,4,87.3,9.967326,0,92.6,0,0,1,1,1.386294,0,0,0,0,0,0,0,92.6,9.108928,1.386294,2.466695,1 +11,3,0,1,1,327014,0,9034.604,30.6475,0,14,1,18.38611,22.57405,0,0,0,40.96016,0,0,0,3,0,4,83.5,6.9,0,62.5,0,0,0,0,1.386294,0,0,0,0,1,0,0,62.5,9.108928,1.386294,3.7126,1 +11,3,0,1,2,327014,0,9034.604,31.6475,0,14,1,24.84763,15.61181,0,0,0,40.45945,0,0,0,3,0,4,83.5,6.9,0,62.5,0,0,0,0,1.386294,0,0,0,0,1,0,0,62.5,9.108928,1.386294,3.7003,1 +11,3,0,1,3,327014,0,9034.604,32.6475,0,14,1,0,13.54256,0,0,0,13.54256,0,0,0,0,0,4,83.5,6.9,0,62.5,0,0,0,0,1.386294,0,0,0,0,1,0,0,62.5,9.108928,1.386294,2.605838,1 +11,3,0,1,4,327014,0,9034.604,33.6475,0,14,1,8.142691,21.40364,0,0,0,29.54634,0,0,0,1,0,4,83.5,6.9,0,62.5,0,0,0,0,1.386294,0,0,0,0,1,0,0,62.5,9.108928,1.386294,3.38596,1 +11,3,0,1,5,327014,0,9034.604,34.6475,0,14,1,55.73248,12.66808,0,0,0,68.40057,0,0,0,2,2,4,83.5,6.9,0,62.5,0,0,0,0,1.386294,0,0,0,0,1,0,0,62.5,9.108928,1.386294,4.225381,1 +11,3,0,1,1,327084,0,1534.311,10.04244,1,2,1,6.072875,5.617409,7.591093,0,0,19.28138,0,0,0,1,0,2,83.39137,9.967326,.0431267,,0,0,1,1,.6931472,0,0,0,0,0,1,0,81.16254,7.336488,.6931472,2.95914,1 +11,3,0,1,2,327084,0,1534.311,11.04244,1,2,1,21.91142,1.188811,11.18881,0,0,34.28904,0,0,0,2,1,2,83.39137,9.967326,.0431267,,0,0,1,1,.6931472,0,0,0,0,0,1,0,81.16254,7.336488,.6931472,3.534826,1 +11,3,0,1,3,327084,0,1534.311,12.04244,1,2,1,77.05002,13.2749,0,0,0,90.32493,0,0,0,3,0,2,83.39137,9.967326,.0431267,,0,0,1,1,.6931472,0,0,0,0,0,1,0,81.16254,7.336488,.6931472,4.503414,1 +11,3,0,1,1,327085,0,1534.311,32.54483,1,2,1,66.04251,3.643725,10.12146,0,0,79.80769,0,0,0,2,1,2,57.4,20.7,1,42,0,0,0,0,.6931472,0,0,0,0,0,1,0,42,7.336488,.6931472,4.37962,1 +11,3,0,1,2,327085,0,1534.311,33.54483,1,2,1,785.4453,49.39394,0,0,1506.615,2341.455,1,0,0,11,0,2,57.4,20.7,1,42,0,0,0,0,.6931472,0,0,0,0,0,1,0,42,7.336488,.6931472,7.758528,1 +11,3,0,1,3,327085,0,1534.311,34.54483,1,2,1,111.4579,12.61223,0,0,0,124.0701,0,0,0,4,2,2,57.4,20.7,1,42,0,0,0,0,.6931472,0,0,0,0,0,1,0,42,7.336488,.6931472,4.820847,1 +7,3,25,0,1,327098,0,9333.725,30.12731,1,12,1,138.7385,36.87436,0,0,514.2186,689.8315,1,0,0,9,0,2,87.2,3.4,0,69.3,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,69.3,9.141497,.6931472,6.536448,1 +7,3,25,0,2,327098,0,9333.725,31.12731,1,12,1,71.72996,19.22175,0,0,0,90.95171,0,0,0,1,1,2,87.2,3.4,0,69.3,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,69.3,9.141497,.6931472,4.510329,1 +7,3,25,0,3,327098,0,9333.725,32.12731,1,12,1,50.12897,11.93035,0,0,0,62.05933,0,0,0,2,0,2,87.2,3.4,0,69.3,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,69.3,9.141497,.6931472,4.128091,1 +7,3,25,0,1,327099,0,9333.725,32.83778,0,10,1,0,0,0,0,0,0,0,0,0,0,0,2,80.9,3.4,0,80.7,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,80.7,9.141497,.6931472,,0 +7,3,25,0,2,327099,0,9333.725,33.83778,0,10,1,9.376465,0,27.19175,0,0,36.56821,0,0,0,0,1,2,80.9,3.4,0,80.7,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,80.7,9.141497,.6931472,3.59918,1 +7,3,25,0,3,327099,0,9333.725,34.83778,0,10,1,10.74806,0,0,0,0,10.74806,0,0,0,0,0,2,80.9,3.4,0,80.7,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,80.7,9.141497,.6931472,2.374726,1 +13,3,0,0,1,327249,0,7389.443,33.04038,1,12,1,506.373,1.931994,0,0,0,508.305,0,0,0,8,1,4,83.5,17.2,0,71.6,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,71.6,8.907943,1.386294,6.231081,1 +13,3,0,0,2,327249,0,7389.443,34.04038,1,12,1,10.41667,2.618371,0,0,0,13.03504,0,0,0,1,0,4,83.5,17.2,0,71.6,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,71.6,8.907943,1.386294,2.567641,1 +13,3,0,0,3,327249,0,7389.443,35.04038,1,12,1,74.5557,2.6658,0,0,0,77.2215,0,0,0,1,0,4,83.5,17.2,0,71.6,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,71.6,8.907943,1.386294,4.346678,1 +13,3,0,0,1,327250,0,7389.443,31.89049,0,12,1,59.76301,0,0,0,0,59.76301,0,0,0,2,3,4,83.5,3.4,0,78.4,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,78.4,8.907943,1.386294,4.090387,1 +13,3,0,0,2,327250,0,7389.443,32.89049,0,12,1,4.734848,3.787879,0,0,0,8.522727,0,0,0,1,0,4,83.5,3.4,0,78.4,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,78.4,8.907943,1.386294,2.142736,1 +13,3,0,0,3,327250,0,7389.443,33.89049,0,12,1,0,3.250975,0,0,0,3.250975,0,0,0,0,0,4,83.5,3.4,0,78.4,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,78.4,8.907943,1.386294,1.178955,1 +13,3,0,0,1,327251,0,7389.443,6.069815,0,12,1,17.51674,10.76765,0,0,0,28.28439,0,0,0,2,0,4,88.3,9.967326,0,88.9,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,88.9,8.907943,1.386294,3.34231,1 +13,3,0,0,2,327251,0,7389.443,7.069815,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,88.3,9.967326,0,88.9,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,88.9,8.907943,1.386294,,0 +13,3,0,0,3,327251,0,7389.443,8.069816,0,12,1,19.50585,0,0,0,0,19.50585,0,0,0,1,1,4,88.3,9.967326,0,88.9,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,88.9,8.907943,1.386294,2.970715,1 +13,3,0,0,1,327252,0,7389.443,9.798768,0,12,1,5.151984,2.189593,0,0,0,7.341577,0,0,0,1,0,4,90,9.967326,0,85.2,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,85.2,8.907943,1.386294,1.993554,1 +13,3,0,0,2,327252,0,7389.443,10.79877,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,90,9.967326,0,85.2,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,85.2,8.907943,1.386294,,0 +13,3,0,0,3,327252,0,7389.443,11.79877,0,12,1,70.09103,0,0,0,0,70.09103,0,0,0,2,0,4,90,9.967326,0,85.2,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,85.2,8.907943,1.386294,4.249795,1 +17,3,25,1,1,327259,0,1818.182,21.18275,0,10,1,0,0,0,0,0,0,0,0,0,0,0,1,86.2,3.4,0,81.8,400,400,0,0,0,5.991465,0,3.258096,7.377759,0,0,0,81.8,7.506142,0,,0 +18,3,25,1,1,327280,0,7048.68,33.61807,0,12,1,16.85393,0,0,0,0,16.85393,0,0,0,0,0,1,93.6,0,0,68.2,750,750,0,0,0,6.620073,0,3.258096,8.006368,1,0,0,68.2,8.860738,0,2.824584,1 +18,3,25,1,2,327280,0,7048.68,34.61807,0,12,1,14.0647,10.68917,0,0,0,24.75387,0,0,0,1,0,1,93.6,0,0,68.2,750,750,0,0,0,6.620073,0,3.258096,8.006368,1,0,0,68.2,8.860738,0,3.208982,1 +18,3,25,1,3,327280,0,7048.68,35.61807,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,93.6,0,0,68.2,750,750,0,0,0,6.620073,0,3.258096,8.006368,1,0,0,68.2,8.860738,0,,0 +14,3,95,1,1,327332,0,9102.64,52.34497,0,11,1,22.26721,36.43725,0,0,0,58.70445,0,0,0,3,0,3,76.1,17.2,0,69.3,498.2,473.2,0,0,1.098612,6.159518,0,4.564348,6.262295,0,1,0,69.3,9.116429,1.098612,4.072515,1 +14,3,95,1,2,327332,0,9102.64,53.34497,0,11,1,14.91842,55.94406,0,0,0,70.86247,0,0,0,2,0,3,76.1,17.2,0,69.3,498.2,473.2,0,0,1.098612,6.159518,0,4.564348,6.262295,0,1,0,69.3,9.116429,1.098612,4.260741,1 +14,3,95,1,3,327332,0,9102.64,54.34497,0,11,1,32.49252,57.07567,46.17358,0,0,135.7418,0,0,0,3,1,3,76.1,17.2,0,69.3,498.2,473.2,0,0,1.098612,6.159518,0,4.564348,6.262295,0,1,0,69.3,9.116429,1.098612,4.910754,1 +14,3,95,1,4,327332,0,9102.64,55.34497,0,11,1,13.83551,54.88086,0,0,0,68.71637,0,0,0,2,0,3,76.1,17.2,0,69.3,498.2,473.2,0,0,1.098612,6.159518,0,4.564348,6.262295,0,1,0,69.3,9.116429,1.098612,4.229988,1 +14,3,95,1,5,327332,0,9102.64,56.34497,0,11,1,13.34738,52.07938,0,0,0,65.42677,0,0,0,2,0,3,76.1,17.2,0,69.3,498.2,473.2,0,0,1.098612,6.159518,0,4.564348,6.262295,0,1,0,69.3,9.116429,1.098612,4.180932,1 +14,3,95,1,1,327333,0,9102.64,56.01917,1,12,1,73.15283,1.467611,0,0,0,74.62045,0,0,0,2,0,3,68.6,3.4,0,72.7,498.2,473.2,0,0,1.098612,6.159518,0,4.564348,6.262295,1,0,0,72.7,9.116429,1.098612,4.312415,1 +14,3,95,1,2,327333,0,9102.64,57.01917,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,68.6,3.4,0,72.7,498.2,473.2,0,0,1.098612,6.159518,0,4.564348,6.262295,1,0,0,72.7,9.116429,1.098612,,0 +14,3,95,1,3,327333,0,9102.64,58.01917,1,12,1,5.985464,0,0,0,0,5.985464,0,0,0,1,0,3,68.6,3.4,0,72.7,498.2,473.2,0,0,1.098612,6.159518,0,4.564348,6.262295,1,0,0,72.7,9.116429,1.098612,1.789334,1 +14,3,95,1,4,327333,0,9102.64,59.01917,1,12,1,11.10684,.4765565,0,0,0,11.5834,0,0,0,1,0,3,68.6,3.4,0,72.7,498.2,473.2,0,0,1.098612,6.159518,0,4.564348,6.262295,1,0,0,72.7,9.116429,1.098612,2.449573,1 +14,3,95,1,5,327333,0,9102.64,60.01917,1,12,1,7.024939,0,28.451,0,0,35.47594,0,0,0,1,0,3,68.6,3.4,0,72.7,498.2,473.2,0,0,1.098612,6.159518,0,4.564348,6.262295,1,0,0,72.7,9.116429,1.098612,3.568855,1 +14,3,95,1,1,327334,0,9102.64,16.91444,1,12,1,8.097166,0,0,0,0,8.097166,0,0,0,1,0,3,75,3.4,0,64.8,498.2,473.2,1,1,1.098612,6.159518,0,4.564348,6.262295,0,0,0,64.8,9.116429,1.098612,2.091514,1 +14,3,95,1,2,327334,0,9102.64,17.91444,1,12,1,9.324009,0,5.594406,0,0,14.91842,0,0,0,0,1,3,75,3.4,0,64.8,498.2,473.2,1,1,1.098612,6.159518,0,4.564348,6.262295,0,0,0,64.8,9.116429,1.098612,2.702596,1 +14,3,95,1,3,327334,0,9102.64,18.91444,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,75,3.4,0,64.8,498.2,473.2,0,0,1.098612,6.159518,0,4.564348,6.262295,0,0,0,64.8,9.116429,1.098612,,0 +14,3,95,1,4,327334,0,9102.64,19.91444,1,12,1,9.607994,0,21.52191,0,0,31.1299,0,0,0,0,1,3,75,3.4,0,64.8,498.2,473.2,0,0,1.098612,6.159518,0,4.564348,6.262295,0,0,0,64.8,9.116429,1.098612,3.438169,1 +14,3,95,1,5,327334,0,9102.64,20.91444,1,12,1,0,0,10.53741,0,0,10.53741,0,0,0,0,0,3,75,3.4,0,64.8,498.2,473.2,0,0,1.098612,6.159518,0,4.564348,6.262295,0,0,0,64.8,9.116429,1.098612,2.354932,1 +11,3,0,1,1,327400,0,9506.158,25.24025,0,14,1,51.75167,0,0,0,0,51.75167,0,0,0,3,0,2,87.8,3.4,0,90.9,0,329.14,0,0,.6931472,5.796483,0,0,0,0,0,0,90.9,9.159801,.6931472,3.946457,1 +11,3,0,1,2,327400,0,9506.158,26.24025,0,14,1,14.58333,8.120265,28.88258,0,0,51.58617,0,0,0,1,0,2,87.8,3.4,0,90.9,0,329.14,0,0,.6931472,5.796483,0,0,0,0,0,0,90.9,9.159801,.6931472,3.943254,1 +11,3,0,1,3,327400,0,9506.158,27.24025,0,14,1,8.669268,0,15.17122,0,0,23.84048,0,0,0,0,1,3,87.8,3.4,0,90.9,0,329.14,0,0,1.098612,5.796483,0,0,0,0,0,0,90.9,9.159801,1.098612,3.171385,1 +11,3,0,1,4,327400,0,9506.158,28.24025,0,14,1,14.96652,0,27.56991,0,0,42.53643,0,0,0,1,1,3,87.8,3.4,0,90.9,0,329.14,0,0,1.098612,5.796483,0,0,0,0,0,0,90.9,9.159801,1.098612,3.750361,1 +11,3,0,1,5,327400,0,9506.158,29.24025,0,14,1,0,0,0,0,0,0,0,0,0,0,0,3,87.8,3.4,0,90.9,0,329.14,0,0,1.098612,5.796483,0,0,0,0,0,0,90.9,9.159801,1.098612,,0 +11,3,0,1,1,327401,0,9506.158,23.55647,1,14,1,42.93663,14.25039,34.00309,0,0,91.19011,0,0,0,4,0,2,61.2,6.9,0,55.7,0,329.14,0,0,.6931472,5.796483,0,0,0,0,0,0,55.7,9.159801,.6931472,4.512947,1 +11,3,0,1,2,327401,0,9506.158,24.55647,1,14,1,69.12878,27.46686,0,0,582.5284,679.124,1,0,0,6,0,2,61.2,6.9,0,55.7,0,329.14,0,0,.6931472,5.796483,0,0,0,0,0,0,55.7,9.159801,.6931472,6.520804,1 +11,3,0,1,3,327401,0,9506.158,25.55647,1,14,1,173.342,26.43693,0,0,657.616,857.3949,1,0,0,7,0,3,61.2,6.9,0,55.7,0,329.14,0,0,1.098612,5.796483,0,0,0,0,0,0,55.7,9.159801,1.098612,6.753899,1 +11,3,0,1,4,327401,0,9506.158,26.55647,1,14,1,40.88224,19.6219,21.66207,0,0,82.16621,0,0,0,1,1,3,61.2,6.9,0,55.7,0,329.14,0,0,1.098612,5.796483,0,0,0,0,0,0,55.7,9.159801,1.098612,4.408744,1 +11,3,0,1,5,327401,0,9506.158,27.55647,1,14,1,66.01073,33.96064,9.660108,0,679.5206,789.152,1,0,0,4,1,3,61.2,6.9,0,55.7,0,329.14,0,0,1.098612,5.796483,0,0,0,0,0,0,55.7,9.159801,1.098612,6.670959,1 +17,3,25,1,1,327421,0,4105.572,9.667351,1,9,1,15.45595,5.151984,0,0,0,20.60793,0,0,0,1,0,6,93.3,9.967326,0,81.5,583.75,0,1,1,1.791759,0,0,3.258096,7.755767,0,0,0,81.5,8.320344,1.791759,3.025676,1 +17,3,25,1,2,327421,0,4105.572,10.66735,1,9,1,0,0,0,0,0,0,0,0,0,0,0,6,93.3,9.967326,0,81.5,583.75,0,1,1,1.791759,0,0,3.258096,7.755767,0,0,0,81.5,8.320344,1.791759,,0 +17,3,25,1,3,327421,0,4105.572,11.66735,1,9,1,0,0,0,0,0,0,0,0,0,0,0,6,93.3,9.967326,0,81.5,583.75,0,1,1,1.791759,0,0,3.258096,7.755767,0,0,0,81.5,8.320344,1.791759,,0 +17,3,25,1,1,327422,0,4105.572,2.360027,1,9,1,0,0,0,0,0,0,0,0,0,0,0,6,83.39137,9.967326,0,96.3,583.75,0,1,1,1.791759,0,0,3.258096,7.755767,0,0,0,96.3,8.320344,1.791759,,0 +17,3,25,1,2,327422,0,4105.572,3.360027,1,9,1,0,0,0,0,0,0,0,0,0,0,0,6,83.39137,9.967326,0,96.3,583.75,0,1,1,1.791759,0,0,3.258096,7.755767,0,0,0,96.3,8.320344,1.791759,,0 +17,3,25,1,3,327422,0,4105.572,4.360027,1,9,1,0,0,0,0,0,0,0,0,0,0,0,6,83.39137,9.967326,0,96.3,583.75,0,1,1,1.791759,0,0,3.258096,7.755767,0,0,0,96.3,8.320344,1.791759,,0 +17,3,25,1,1,327423,0,4105.572,7.742642,1,9,1,0,0,0,0,0,0,0,0,0,0,0,6,95,9.967326,0,85.2,583.75,0,1,1,1.791759,0,0,3.258096,7.755767,0,0,0,85.2,8.320344,1.791759,,0 +17,3,25,1,2,327423,0,4105.572,8.742642,1,9,1,4.734848,1.136364,0,0,0,5.871212,0,0,0,1,0,6,95,9.967326,0,85.2,583.75,0,1,1,1.791759,0,0,3.258096,7.755767,0,0,0,85.2,8.320344,1.791759,1.770061,1 +17,3,25,1,3,327423,0,4105.572,9.742642,1,9,1,32.37971,2.895535,0,0,0,35.27525,0,0,0,1,0,6,95,9.967326,0,85.2,583.75,0,1,1,1.791759,0,0,3.258096,7.755767,0,0,0,85.2,8.320344,1.791759,3.563182,1 +17,3,25,1,1,327424,0,4105.572,30.37646,1,9,1,350.948,0,24.72952,0,0,375.6775,0,0,0,12,0,6,77.7,6.9,0,71.6,583.75,0,0,0,1.791759,0,0,3.258096,7.755767,0,0,0,71.6,8.320344,1.791759,5.928731,1 +17,3,25,1,2,327424,0,4105.572,31.37646,1,9,1,0,0,0,0,0,0,0,0,0,0,0,6,77.7,6.9,0,71.6,583.75,0,0,0,1.791759,0,0,3.258096,7.755767,0,0,0,71.6,8.320344,1.791759,,0 +17,3,25,1,3,327424,0,4105.572,32.37645,1,9,1,41.61248,0,0,0,403.9662,445.5787,1,0,0,4,0,6,77.7,6.9,0,71.6,583.75,0,0,0,1.791759,0,0,3.258096,7.755767,0,0,0,71.6,8.320344,1.791759,6.099374,1 +17,3,25,1,1,327425,0,4105.572,5.924709,0,9,1,0,0,0,0,0,0,0,0,0,0,0,6,90,9.967326,0,92.6,583.75,0,1,0,1.791759,0,0,3.258096,7.755767,0,0,0,92.6,8.320344,1.791759,,0 +17,3,25,1,2,327425,0,4105.572,6.924709,0,9,1,4.734848,2.698864,0,0,0,7.433712,0,0,0,1,0,6,90,9.967326,0,92.6,583.75,0,1,0,1.791759,0,0,3.258096,7.755767,0,0,0,92.6,8.320344,1.791759,2.006025,1 +17,3,25,1,3,327425,0,4105.572,7.924709,0,9,1,0,0,0,0,0,0,0,0,0,0,0,6,90,9.967326,0,92.6,583.75,0,1,0,1.791759,0,0,3.258096,7.755767,0,0,0,92.6,8.320344,1.791759,,0 +17,3,25,1,1,327426,0,4105.572,34.66393,0,9,1,0,0,0,0,0,0,0,0,0,0,0,6,70.7,3.4,0,64.8,583.75,0,0,0,1.791759,0,0,3.258096,7.755767,0,1,0,64.8,8.320344,1.791759,,0 +17,3,25,1,2,327426,0,4105.572,35.66393,0,9,1,0,0,0,0,1341.619,1341.619,1,0,0,0,0,6,70.7,3.4,0,64.8,583.75,0,0,0,1.791759,0,0,3.258096,7.755767,0,1,0,64.8,8.320344,1.791759,7.201632,1 +17,3,25,1,3,327426,0,4105.572,36.66393,0,9,1,0,0,0,0,0,0,0,0,0,0,0,6,70.7,3.4,0,64.8,583.75,0,0,0,1.791759,0,0,3.258096,7.755767,0,1,0,64.8,8.320344,1.791759,,0 +13,3,0,1,1,327436,0,3424.047,55.04175,1,7,1,5.151984,0,0,0,0,5.151984,0,0,0,1,0,1,76.1,24.1,0,75,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,75,8.13887,0,1.639382,1 +13,3,0,1,2,327436,0,3424.047,56.04175,1,7,1,0,0,0,0,0,0,0,0,0,0,0,1,76.1,24.1,0,75,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,75,8.13887,0,,0 +13,3,0,1,3,327436,0,3424.047,57.04175,1,7,1,0,0,0,0,0,0,0,0,0,0,0,1,76.1,24.1,0,75,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,75,8.13887,0,,0 +13,3,0,1,1,327440,0,8989.442,44.01369,0,12,1,56.67182,75.14168,0,0,0,131.8135,0,0,0,7,0,2,88.8,13.8,0,80.7,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,80.7,9.103917,.6931472,4.881388,1 +13,3,0,1,2,327440,0,8989.442,45.01369,0,12,1,127.8409,84.55966,7.102273,0,0,219.5028,0,0,0,14,0,2,88.8,13.8,0,80.7,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,80.7,9.103917,.6931472,5.391365,1 +13,3,0,1,3,327440,0,8989.442,46.01369,0,12,1,630.8193,75.05418,25.79107,0,1126.983,1858.648,1,0,0,23,0,2,88.8,13.8,0,80.7,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,80.7,9.103917,.6931472,7.527605,1 +13,3,0,1,4,327440,0,8989.442,47.01369,0,12,1,150.4529,86.07719,32.49311,0,0,269.0232,0,0,0,14,0,2,88.8,13.8,0,80.7,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,80.7,9.103917,.6931472,5.594798,1 +13,3,0,1,5,327440,0,8989.442,48.01369,0,12,1,291.449,129.8032,15.02683,0,2198.379,2634.658,2,0,0,16,2,2,88.8,13.8,0,80.7,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,80.7,9.103917,.6931472,7.876509,1 +13,3,0,1,1,327441,0,8989.442,45.03217,1,8,1,317.8516,181.2725,1.813498,0,2420.819,2921.757,1,0,0,21,0,2,79.8,20.7,0,64.8,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,64.8,9.103917,.6931472,7.97994,1 +13,3,0,1,2,327441,0,8989.442,46.03217,1,8,1,179.8295,116.714,0,0,0,296.5435,0,0,0,7,0,2,79.8,20.7,0,64.8,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,64.8,9.103917,.6931472,5.692194,1 +13,3,0,1,3,327441,0,8989.442,47.03217,1,8,1,134.3736,128.8036,0,0,0,263.1773,0,0,0,5,0,2,79.8,20.7,0,64.8,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,64.8,9.103917,.6931472,5.572828,1 +13,3,0,1,4,327441,0,8989.442,48.03217,1,8,1,284.3639,142.6585,22.43009,0,0,449.4525,0,0,0,15,1,2,79.8,20.7,0,64.8,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,64.8,9.103917,.6931472,6.10803,1 +13,3,0,1,5,327441,0,8989.442,49.03217,1,8,1,145.5277,111.7889,15.38461,0,0,272.7013,0,0,0,5,1,2,79.8,20.7,0,64.8,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,64.8,9.103917,.6931472,5.608377,1 +15,3,95,0,1,327480,0,5263.93,27.06366,1,16,1,34.93361,19.22881,0,0,0,54.16241,0,0,0,4,0,1,62.8,17.2,0,64.3,750,750,0,0,0,6.620073,0,4.564348,6.671367,1,0,0,64.3,8.568823,0,3.991987,1 +15,3,95,0,2,327480,0,5263.93,28.06366,1,16,1,44.21003,3.797468,0,0,0,48.0075,0,0,0,4,0,1,62.8,17.2,0,64.3,750,750,0,0,0,6.620073,0,4.564348,6.671367,1,0,0,64.3,8.568823,0,3.871357,1 +15,3,95,0,3,327480,0,5263.93,29.06366,1,16,1,196.2382,21.84437,29.4712,0,705.6406,953.1943,1,0,0,3,1,1,62.8,17.2,0,64.3,750,750,0,0,0,6.620073,0,4.564348,6.671367,1,0,0,64.3,8.568823,0,6.859819,1 +13,3,0,1,1,327496,0,2164.223,32.45996,0,11,1,232.7119,13.02349,18.38611,0,7562.615,7826.736,1,0,0,4,18,3,92.6,0,0,84.1,450,0,0,0,1.098612,0,1,4.564348,6.160541,0,0,0,84.1,7.680279,1.098612,8.965301,1 +13,3,0,1,2,327496,0,2164.223,33.45996,0,11,1,24.84763,22.73793,0,0,0,47.58556,0,0,0,2,0,3,92.6,0,0,84.1,450,0,0,0,1.098612,0,1,4.564348,6.160541,0,0,0,84.1,7.680279,1.098612,3.862529,1 +13,3,0,1,3,327496,0,2164.223,34.45996,0,11,1,0,9.802236,0,0,0,9.802236,0,0,0,0,0,3,92.6,0,0,84.1,450,0,0,0,1.098612,0,1,4.564348,6.160541,0,0,0,84.1,7.680279,1.098612,2.28261,1 +13,3,0,1,1,327497,0,2164.223,32.18617,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,83.5,0,0,80.7,450,0,0,0,1.098612,0,1,4.564348,6.160541,0,0,0,80.7,7.680279,1.098612,,0 +13,3,0,1,2,327497,0,2164.223,33.18617,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,83.5,0,0,80.7,450,0,0,0,1.098612,0,1,4.564348,6.160541,0,0,0,80.7,7.680279,1.098612,,0 +13,3,0,1,3,327497,0,2164.223,34.18617,1,12,1,0,0,0,0,655.2236,655.2236,1,0,0,0,0,3,83.5,0,0,80.7,450,0,0,0,1.098612,0,1,4.564348,6.160541,0,0,0,80.7,7.680279,1.098612,6.484976,1 +13,3,0,1,1,327498,0,2164.223,3.041752,0,12,1,6.128703,1.838611,0,0,0,7.967314,0,0,0,1,0,3,83.39137,9.967326,0,88.9,450,0,1,0,1.098612,0,1,4.564348,6.160541,0,0,0,88.9,7.680279,1.098612,2.075347,1 +13,3,0,1,2,327498,0,2164.223,4.041752,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,83.39137,9.967326,0,88.9,450,0,1,0,1.098612,0,1,4.564348,6.160541,0,0,0,88.9,7.680279,1.098612,,0 +13,3,0,1,3,327498,0,2164.223,5.041752,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,83.39137,9.967326,0,88.9,450,0,1,0,1.098612,0,1,4.564348,6.160541,0,0,0,88.9,7.680279,1.098612,,0 +13,3,0,0,1,327504,0,5948.387,29.18823,0,16,1,65.11747,2.808989,35.34219,0,0,103.2686,0,0,0,5,2,1,92,20.7,0,81.8,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,81.8,8.691044,0,4.637334,1 +13,3,0,0,2,327504,0,5948.387,30.18823,0,16,1,226.9105,0,21.56587,0,0,248.4763,0,0,0,1,25,1,92,20.7,0,81.8,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,81.8,8.691044,0,5.515347,1 +13,3,0,0,3,327504,0,5948.387,31.18823,0,16,1,164.6604,0,17.01634,0,0,181.6767,0,0,0,6,14,1,92,20.7,0,81.8,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,81.8,8.691044,0,5.202229,1 +15,3,95,1,1,327625,0,12675.07,13.83984,0,12,1,15.45595,0,27.82071,0,0,43.27666,0,0,0,2,0,4,93.3,9.967326,0,96.3,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,96.3,9.447472,1.386294,3.767613,1 +15,3,95,1,2,327625,0,12675.07,14.83984,0,12,1,16.57197,2.035985,13.25758,0,0,31.86553,0,0,0,1,1,4,93.3,9.967326,0,96.3,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,96.3,9.447472,1.386294,3.461525,1 +15,3,95,1,3,327625,0,12675.07,15.83984,0,12,1,8.669268,0,28.17512,0,0,36.84439,0,0,0,0,1,4,93.3,9.967326,0,96.3,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,96.3,9.447472,1.386294,3.606703,1 +15,3,95,1,4,327625,0,12675.07,16.83984,0,12,1,9.846396,0,11.02796,0,0,20.87436,0,0,0,0,1,4,93.3,9.967326,0,96.3,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,96.3,9.447472,1.386294,3.038522,1 +15,3,95,1,5,327625,0,12675.07,17.83984,0,12,1,25.76029,0,0,0,0,25.76029,0,0,0,2,1,4,93.3,9.967326,0,96.3,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,96.3,9.447472,1.386294,3.248834,1 +15,3,95,1,1,327626,0,12675.07,34.32991,0,8,1,16.48635,.9015971,31.9423,0,0,49.33024,0,0,0,3,0,4,83.5,0,0,80.7,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,80.7,9.447472,1.386294,3.898537,1 +15,3,95,1,2,327626,0,12675.07,35.32991,0,8,1,107.3627,.2367424,45.54924,0,546.5909,699.7396,1,0,0,3,1,4,83.5,0,0,80.7,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,80.7,9.447472,1.386294,6.550708,1 +15,3,95,1,3,327626,0,12675.07,36.32991,0,8,1,93.19463,5.74339,25.57434,0,0,124.5124,0,0,0,1,1,4,83.5,0,0,80.7,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,80.7,9.447472,1.386294,4.824405,1 +15,3,95,1,4,327626,0,12675.07,37.32991,0,8,1,16.14809,0,0,0,0,16.14809,0,0,0,2,0,4,83.5,0,0,80.7,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,80.7,9.447472,1.386294,2.781802,1 +15,3,95,1,5,327626,0,12675.07,38.32991,0,8,1,31.48479,7.602862,20.75134,0,0,59.839,0,0,0,3,1,4,83.5,0,0,80.7,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,80.7,9.447472,1.386294,4.091658,1 +15,3,95,1,1,327627,0,12675.07,12.77481,0,12,1,110.1236,0,0,0,0,110.1236,0,0,0,5,0,4,80,9.967326,0,92.6,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,92.6,9.447472,1.386294,4.701604,1 +15,3,95,1,2,327627,0,12675.07,13.77481,0,12,1,56.81818,0,.9469697,0,0,57.76515,0,0,0,2,0,4,80,9.967326,0,92.6,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,92.6,9.447472,1.386294,4.056386,1 +15,3,95,1,3,327627,0,12675.07,14.77481,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,80,9.967326,0,92.6,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,92.6,9.447472,1.386294,,0 +15,3,95,1,4,327627,0,12675.07,15.77481,0,12,1,14.17881,0,0,0,0,14.17881,0,0,0,2,0,4,80,9.967326,0,92.6,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,92.6,9.447472,1.386294,2.651749,1 +15,3,95,1,5,327627,0,12675.07,16.77481,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,80,9.967326,0,92.6,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,92.6,9.447472,1.386294,,0 +15,3,95,1,1,327628,0,12675.07,33.35524,1,12,1,9.42813,0,0,0,0,9.42813,0,0,0,1,0,4,80.3,6.9,0,100,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,100,9.447472,1.386294,2.243698,1 +15,3,95,1,2,327628,0,12675.07,34.35524,1,12,1,21.7803,2.95928,0,0,0,24.73958,0,0,0,1,0,4,80.3,6.9,0,100,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,100,9.447472,1.386294,3.208405,1 +15,3,95,1,3,327628,0,12675.07,35.35524,1,12,1,40.74556,0,0,0,0,40.74556,0,0,0,2,0,4,80.3,6.9,0,100,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,100,9.447472,1.386294,3.707347,1 +15,3,95,1,4,327628,0,12675.07,36.35524,1,12,1,7.483261,0,0,0,0,7.483261,0,0,0,1,0,4,80.3,6.9,0,100,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,100,9.447472,1.386294,2.012669,1 +15,3,95,1,5,327628,0,12675.07,37.35524,1,12,1,17.17352,0,20.75134,0,0,37.92487,0,0,0,1,1,4,80.3,6.9,0,100,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,100,9.447472,1.386294,3.635607,1 +15,3,95,0,1,327629,0,8899.12,26.45038,1,12,1,12.87996,0,0,0,0,12.87996,0,0,0,1,0,2,52.1,13.8,0,56.8,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,56.8,9.09382,.6931472,2.555673,1 +15,3,95,0,2,327629,0,8899.12,27.45038,1,12,1,106.5341,0,0,0,0,106.5341,0,0,0,3,0,2,52.1,13.8,0,56.8,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,56.8,9.09382,.6931472,4.668465,1 +15,3,95,0,3,327629,0,8899.12,28.45038,1,12,1,7.802341,0,0,0,0,7.802341,0,0,0,1,0,2,52.1,13.8,0,56.8,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,56.8,9.09382,.6931472,2.054424,1 +15,3,95,0,4,327629,0,8899.12,29.45038,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,52.1,13.8,0,56.8,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,56.8,9.09382,.6931472,,0 +15,3,95,0,5,327629,0,8899.12,30.45038,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,52.1,13.8,0,56.8,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,56.8,9.09382,.6931472,,0 +15,3,95,0,1,327630,0,8899.12,29.64545,0,12,1,12.87996,0,0,0,0,12.87996,0,0,0,2,0,2,62.2,6.9,0,55.7,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,55.7,9.09382,.6931472,2.555673,1 +15,3,95,0,2,327630,0,8899.12,30.64545,0,12,1,66.99811,0,0,0,0,66.99811,0,0,0,3,0,2,62.2,6.9,0,55.7,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,55.7,9.09382,.6931472,4.204664,1 +15,3,95,0,3,327630,0,8899.12,31.64545,0,12,1,10.83658,0,0,0,0,10.83658,0,0,0,0,0,2,62.2,6.9,0,55.7,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,55.7,9.09382,.6931472,2.382928,1 +15,3,95,0,4,327630,0,8899.12,32.64545,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,62.2,6.9,0,55.7,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,55.7,9.09382,.6931472,,0 +15,3,95,0,5,327630,0,8899.12,33.64545,0,12,1,48.15742,0,1.023256,0,0,49.18068,0,0,0,5,0,2,62.2,6.9,0,55.7,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,55.7,9.09382,.6931472,3.895501,1 +13,3,0,1,1,327650,0,10620.53,25.12526,1,12,1,47.49745,6.613892,0,0,0,54.11134,0,0,0,3,0,2,72.9,3.4,0,79.5,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,79.5,9.270638,.6931472,3.991044,1 +13,3,0,1,2,327650,0,10620.53,26.12526,1,12,1,18.75293,1.851852,0,0,0,20.60478,0,0,0,1,0,2,72.9,3.4,0,79.5,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,79.5,9.270638,.6931472,3.025523,1 +13,3,0,1,3,327650,0,10620.53,27.12526,1,12,1,60.18917,72.8074,0,0,337.3603,470.3568,1,0,0,1,0,2,72.9,3.4,0,79.5,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,79.5,9.270638,.6931472,6.153491,1 +13,3,0,1,1,327651,0,10620.53,26.71595,0,15,1,2.553626,4.581205,0,0,0,7.134831,0,0,0,0,0,2,80.9,3.4,0,80.7,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,80.7,9.270638,.6931472,1.964989,1 +13,3,0,1,2,327651,0,10620.53,27.71595,0,15,1,0,5.607126,0,0,0,5.607126,0,0,0,0,0,2,80.9,3.4,0,80.7,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,80.7,9.270638,.6931472,1.724038,1 +13,3,0,1,3,327651,0,10620.53,28.71595,0,15,1,140.9716,16.62511,0,0,0,157.5967,0,0,0,5,0,2,80.9,3.4,0,80.7,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,80.7,9.270638,.6931472,5.06004,1 +13,3,0,0,1,327660,0,2375.953,28.55852,0,17,1,7.727975,0,29.8815,0,0,37.60948,0,0,0,0,1,1,77.1,6.9,0,71.6,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,71.6,7.773575,0,3.627256,1 +13,3,0,0,2,327660,0,2375.953,29.55852,0,17,1,14.20455,0,0,0,0,14.20455,0,0,0,1,0,1,77.1,6.9,0,71.6,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,71.6,7.773575,0,2.653562,1 +13,3,0,0,3,327660,0,2375.953,30.55852,0,17,1,0,0,0,0,0,0,0,0,0,0,0,1,77.1,6.9,0,71.6,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,71.6,7.773575,0,,0 +11,3,0,0,3,327677,0,9925.514,44.60369,1,,1,62.01634,3.482373,48.15133,0,0,113.65,0,0,0,1,1,1,78.2,6.9,0,78.4,,,0,0,0,0,0,0,0,0,0,0,78.4,9.202965,0,4.733124,1 +13,3,0,1,1,327685,0,6282.698,54.13552,1,12,1,27.57916,1.404494,0,0,0,28.98366,0,0,0,3,0,2,58.5,17.2,1,47.7,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,47.7,8.745714,.6931472,3.366732,1 +13,3,0,1,2,327685,0,6282.698,55.13552,1,12,1,10.78294,4.664792,18.75293,0,0,34.20066,0,0,0,0,1,2,58.5,17.2,1,47.7,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,47.7,8.745714,.6931472,3.532245,1 +13,3,0,1,3,327685,0,6282.698,56.13552,1,12,1,13.3276,.988822,0,0,0,14.31642,0,0,0,2,0,2,58.5,17.2,1,47.7,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,47.7,8.745714,.6931472,2.661407,1 +13,3,0,1,1,327686,0,6282.698,57.21834,0,12,1,15.32176,14.01941,22.47191,0,0,51.81308,0,0,0,1,1,2,83.5,13.8,0,63.1,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,63.1,8.745714,.6931472,3.947643,1 +13,3,0,1,2,327686,0,6282.698,58.21834,0,12,1,0,13.97093,0,0,0,13.97093,0,0,0,0,0,2,83.5,13.8,0,63.1,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,63.1,8.745714,.6931472,2.636979,1 +13,3,0,1,3,327686,0,6282.698,59.21834,0,12,1,14.18745,0,4.299226,0,0,18.48667,0,0,0,1,1,2,83.5,13.8,0,63.1,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,63.1,8.745714,.6931472,2.91705,1 +13,3,0,1,1,327687,0,5677.419,30.46954,1,12,1,44.53441,0,23.27935,0,0,67.81377,0,0,0,2,1,1,64.4,10.3,1,38.6,150,246.3,0,0,0,5.50655,1,4.564348,5.061929,1,0,0,38.6,8.644428,0,4.216765,1 +13,3,0,1,2,327687,0,5677.419,31.46954,1,12,1,161.3054,8.251748,0,76.92308,0,169.5571,0,0,6,4,0,1,64.4,10.3,1,38.6,150,246.3,0,0,0,5.50655,1,4.564348,5.061929,1,0,0,38.6,8.644428,0,5.13319,1 +13,3,0,1,3,327687,0,5677.419,32.46954,1,12,1,232.6208,8.721676,41.15006,0,0,282.4925,0,0,0,11,0,1,64.4,10.3,1,38.6,150,246.3,0,0,0,5.50655,1,4.564348,5.061929,1,0,0,38.6,8.644428,0,5.643652,1 +10,3,50,0,1,327705,0,11738.42,31.87132,1,14,1,186.2236,23.44152,0,0,940.2834,1149.948,1,0,0,11,0,4,86.7,10.3,0,81.8,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,81.8,9.370708,1.386294,7.047472,1 +10,3,50,0,2,327705,0,11738.42,32.87132,1,14,1,38.82576,0,0,0,0,38.82576,0,0,0,2,0,4,86.7,10.3,0,81.8,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,81.8,9.370708,1.386294,3.659084,1 +10,3,50,0,3,327705,0,11738.42,33.87132,1,14,1,58.51756,6.285219,6.935414,0,0,71.73819,0,0,0,3,0,4,86.7,10.3,0,81.8,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,81.8,9.370708,1.386294,4.273023,1 +10,3,50,0,1,327706,0,11738.42,34.08898,0,12,1,15.45595,2.112313,0,0,0,17.56826,0,0,0,1,0,4,94.1,6.9,0,84.1,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,84.1,9.370708,1.386294,2.866094,1 +10,3,50,0,2,327706,0,11738.42,35.08898,0,12,1,19.88636,0,26.98864,0,0,46.875,0,0,0,1,0,4,94.1,6.9,0,84.1,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,84.1,9.370708,1.386294,3.847485,1 +10,3,50,0,3,327706,0,11738.42,36.08898,0,12,1,59.81794,5.062852,0,0,0,64.8808,0,0,0,3,0,4,94.1,6.9,0,84.1,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,84.1,9.370708,1.386294,4.172552,1 +10,3,50,0,1,327707,0,11738.42,7.761807,1,14,1,7.727975,0,0,0,0,7.727975,0,0,0,1,0,4,100,9.967326,0,100,1000,1000,1,1,1.386294,6.907755,0,3.931826,7.600903,0,0,0,100,9.370708,1.386294,2.044847,1 +10,3,50,0,2,327707,0,11738.42,8.761807,1,14,1,32.38636,2.746212,0,0,0,35.13258,0,0,0,1,0,4,100,9.967326,0,100,1000,1000,1,1,1.386294,6.907755,0,3.931826,7.600903,0,0,0,100,9.370708,1.386294,3.559129,1 +10,3,50,0,3,327707,0,11738.42,9.761807,1,14,1,16.03815,7.93238,0,0,0,23.97052,0,0,0,3,0,4,100,9.967326,0,100,1000,1000,1,1,1.386294,6.907755,0,3.931826,7.600903,0,0,0,100,9.370708,1.386294,3.176825,1 +10,3,50,0,1,327708,0,11738.42,9.14716,0,14,1,29.36631,16.95003,27.82071,0,0,74.13704,0,0,0,3,0,4,96.7,9.967326,0,96.3,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,96.3,9.370708,1.386294,4.305915,1 +10,3,50,0,2,327708,0,11738.42,10.14716,0,14,1,55.39773,8.001894,13.25758,0,0,76.6572,0,0,0,5,0,4,96.7,9.967326,0,96.3,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,96.3,9.370708,1.386294,4.339344,1 +10,3,50,0,3,327708,0,11738.42,11.14716,0,14,1,148.8036,0,18.22713,0,0,167.0308,0,0,0,5,0,4,96.7,9.967326,0,96.3,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,96.3,9.370708,1.386294,5.118178,1 +17,3,25,0,1,327714,0,9551.906,36.55578,1,12,1,34.21859,25.85802,0,0,0,60.07661,0,0,0,2,1,4,59,27.6,1,43.2,558,558,0,0,1.386294,6.324359,0,3.258096,7.710653,0,0,0,43.2,9.1646,1.386294,4.095621,1 +17,3,25,0,2,327714,0,9551.906,37.55578,1,12,1,112.4707,6.057197,25.78528,0,0,144.3132,0,0,0,6,1,4,59,27.6,1,43.2,558,558,0,0,1.386294,6.324359,0,3.258096,7.710653,0,0,0,43.2,9.1646,1.386294,4.971986,1 +17,3,25,0,3,327714,0,9551.906,38.55578,1,12,1,116.509,4.50129,0,0,0,121.0103,0,0,0,6,0,4,59,27.6,1,43.2,558,558,0,0,1.386294,6.324359,0,3.258096,7.710653,0,0,0,43.2,9.1646,1.386294,4.795876,1 +17,3,25,0,4,327714,0,9551.906,39.55578,1,12,1,95.77355,2.582396,0,0,0,98.35595,0,0,0,6,1,4,59,27.6,1,43.2,558,558,0,0,1.386294,6.324359,0,3.258096,7.710653,0,0,0,43.2,9.1646,1.386294,4.588593,1 +17,3,25,0,5,327714,0,9551.906,40.55578,1,12,1,210.0142,5.980184,19.46214,0,0,235.4565,0,0,0,9,1,4,59,27.6,1,43.2,558,558,0,0,1.386294,6.324359,0,3.258096,7.710653,0,0,0,43.2,9.1646,1.386294,5.461526,1 +17,3,25,0,1,327715,0,9551.906,15.21697,1,12,1,15.32176,0,12.76813,0,0,28.08989,0,0,0,1,1,4,94.7,3.4,0,93.2,558,558,1,1,1.386294,6.324359,0,3.258096,7.710653,0,0,0,93.2,9.1646,1.386294,3.33541,1 +17,3,25,0,2,327715,0,9551.906,16.21697,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,94.7,3.4,0,93.2,558,558,1,1,1.386294,6.324359,0,3.258096,7.710653,0,0,0,93.2,9.1646,1.386294,,0 +17,3,25,0,3,327715,0,9551.906,17.21697,1,12,1,10.31814,0,0,0,0,10.31814,0,0,0,1,0,4,94.7,3.4,0,93.2,558,558,1,1,1.386294,6.324359,0,3.258096,7.710653,0,0,0,93.2,9.1646,1.386294,2.333904,1 +17,3,25,0,4,327715,0,9551.906,18.21697,1,12,1,32.95851,0,25.97906,0,0,58.93757,0,0,0,2,1,4,94.7,3.4,0,93.2,558,558,0,0,1.386294,6.324359,0,3.258096,7.710653,0,0,0,93.2,9.1646,1.386294,4.076479,1 +17,3,25,0,5,327715,0,9551.906,19.21697,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,94.7,3.4,0,93.2,558,558,0,0,1.386294,6.324359,0,3.258096,7.710653,0,0,0,93.2,9.1646,1.386294,,0 +17,3,25,0,1,327716,0,9551.906,47.52635,0,12,1,57.12462,0,0,0,0,57.12462,0,0,0,2,1,4,79.8,6.9,0,64.8,558,558,0,0,1.386294,6.324359,0,3.258096,7.710653,0,0,0,64.8,9.1646,1.386294,4.045235,1 +17,3,25,0,2,327716,0,9551.906,48.52635,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,79.8,6.9,0,64.8,558,558,0,0,1.386294,6.324359,0,3.258096,7.710653,0,0,0,64.8,9.1646,1.386294,,0 +17,3,25,0,3,327716,0,9551.906,49.52635,0,12,1,43.20722,0,10.74806,0,0,53.95529,0,0,0,2,1,4,79.8,6.9,0,64.8,558,558,0,0,1.386294,6.324359,0,3.258096,7.710653,0,0,0,64.8,9.1646,1.386294,3.988156,1 +17,3,25,0,4,327716,0,9551.906,50.52635,0,12,1,15.12214,0,0,0,0,15.12214,0,0,0,2,0,4,79.8,6.9,0,64.8,558,558,0,0,1.386294,6.324359,0,3.258096,7.710653,0,0,0,64.8,9.1646,1.386294,2.71616,1 +17,3,25,0,5,327716,0,9551.906,51.52635,0,12,1,8.846426,0,17.33899,21.23142,0,26.18542,0,0,1,0,1,4,79.8,6.9,0,64.8,558,558,0,0,1.386294,6.324359,0,3.258096,7.710653,0,0,0,64.8,9.1646,1.386294,3.265203,1 +17,3,25,0,1,327717,0,9551.906,6.529774,1,12,1,6.128703,0,0,0,0,6.128703,0,0,0,1,0,4,90,9.967326,0,92.6,558,558,1,1,1.386294,6.324359,0,3.258096,7.710653,0,0,0,92.6,9.1646,1.386294,1.812983,1 +17,3,25,0,2,327717,0,9551.906,7.529774,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,90,9.967326,0,92.6,558,558,1,1,1.386294,6.324359,0,3.258096,7.710653,0,0,0,92.6,9.1646,1.386294,,0 +17,3,25,0,3,327717,0,9551.906,8.529774,1,12,1,5.588994,7.003439,0,0,0,12.59243,0,0,0,1,0,4,90,9.967326,0,92.6,558,558,1,1,1.386294,6.324359,0,3.258096,7.710653,0,0,0,92.6,9.1646,1.386294,2.533096,1 +17,3,25,0,4,327717,0,9551.906,9.529774,1,12,1,5.816208,0,0,0,0,5.816208,0,0,0,1,0,4,90,9.967326,0,92.6,558,558,1,1,1.386294,6.324359,0,3.258096,7.710653,0,0,0,92.6,9.1646,1.386294,1.760648,1 +17,3,25,0,5,327717,0,9551.906,10.52977,1,12,1,23.35456,3.956122,0,0,0,27.31069,0,0,0,2,0,4,90,9.967326,0,92.6,558,558,1,1,1.386294,6.324359,0,3.258096,7.710653,0,0,0,92.6,9.1646,1.386294,3.307278,1 +6,3,25,1,1,327718,0,15862.76,12.10404,1,16,1,105.7445,0,0,0,0,105.7445,0,0,0,3,1,4,80,9.967326,0,100,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,0,0,0,100,9.671792,1.386294,4.661026,1 +6,3,25,1,2,327718,0,15862.76,13.10404,1,16,1,59.91951,5.610795,.3598485,0,0,65.89015,0,0,0,7,0,4,80,9.967326,0,100,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,0,0,0,100,9.671792,1.386294,4.187989,1 +6,3,25,1,3,327718,0,15862.76,14.10404,1,16,1,120.0694,7.893368,0,0,0,127.9627,0,0,0,8,0,4,80,9.967326,0,100,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,0,0,0,100,9.671792,1.386294,4.851739,1 +6,3,25,1,4,327718,0,15862.76,15.10404,1,16,1,70.97676,4.07247,0,0,0,75.04923,0,0,0,7,0,4,80,9.967326,0,100,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,0,0,0,100,9.671792,1.386294,4.318144,1 +6,3,25,1,5,327718,0,15862.76,16.10404,1,16,1,193.8998,37.10197,0,0,0,231.0018,0,0,0,12,1,4,80,9.967326,0,100,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,0,0,0,100,9.671792,1.386294,5.442425,1 +6,3,25,1,1,327719,0,15862.76,40.31759,1,16,1,30.03606,17.46522,39.15508,162.2875,0,86.65636,0,0,12,2,1,4,53.7,17.2,1,68.2,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,68.2,9.671792,1.386294,4.46195,1 +6,3,25,1,2,327719,0,15862.76,41.31759,1,16,1,4.938447,3.598485,0,234.1619,0,8.536932,0,0,18,1,0,4,53.7,17.2,1,68.2,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,68.2,9.671792,1.386294,2.144402,1 +6,3,25,1,3,327719,0,15862.76,42.31759,1,16,1,18.68661,2.384048,31.49545,0,0,52.5661,0,0,0,1,1,4,53.7,17.2,1,68.2,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,68.2,9.671792,1.386294,3.962071,1 +6,3,25,1,4,327719,0,15862.76,43.31759,1,16,1,45.06499,15.21465,4.340292,0,0,64.61993,0,0,0,4,0,4,53.7,17.2,1,68.2,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,68.2,9.671792,1.386294,4.168523,1 +6,3,25,1,5,327719,0,15862.76,44.31759,1,16,1,136.8587,2.937388,35.29159,0,0,175.0877,0,0,0,2,18,4,53.7,17.2,1,68.2,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,68.2,9.671792,1.386294,5.165287,1 +6,3,25,1,1,327720,0,15862.76,40.62971,0,19,1,20.09274,0,23.69912,54.09583,0,43.79186,0,0,5,1,1,4,82.4,3.4,1,85.2,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,85.2,9.671792,1.386294,3.779448,1 +6,3,25,1,2,327720,0,15862.76,41.62971,0,19,1,30.18466,0,13.25758,269.8864,0,43.44223,0,0,19,1,0,4,82.4,3.4,1,85.2,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,85.2,9.671792,1.386294,3.771432,1 +6,3,25,1,3,327720,0,15862.76,42.62971,0,19,1,48.5479,0,0,0,0,48.5479,0,0,0,3,0,4,82.4,3.4,1,85.2,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,85.2,9.671792,1.386294,3.882551,1 +6,3,25,1,4,327720,0,15862.76,43.62971,0,19,1,17.72351,0,0,0,0,17.72351,0,0,0,1,0,4,82.4,3.4,1,85.2,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,85.2,9.671792,1.386294,2.874892,1 +6,3,25,1,5,327720,0,15862.76,44.62971,0,19,1,83.36315,10.48301,19.678,0,0,113.5241,0,0,0,6,0,4,82.4,3.4,1,85.2,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,85.2,9.671792,1.386294,4.732016,1 +6,3,25,1,1,327721,0,15862.76,14.35181,0,16,1,83.59093,0,0,0,0,83.59093,0,0,0,2,1,4,89.9,6.9,0,89.8,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,89.8,9.671792,1.386294,4.425935,1 +6,3,25,1,2,327721,0,15862.76,15.35181,0,16,1,6.155303,0,0,0,0,6.155303,0,0,0,1,0,4,89.9,6.9,0,89.8,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,89.8,9.671792,1.386294,1.817314,1 +6,3,25,1,3,327721,0,15862.76,16.35181,0,16,1,15.17122,0,0,0,0,15.17122,0,0,0,2,0,4,89.9,6.9,0,89.8,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,89.8,9.671792,1.386294,2.7194,1 +6,3,25,1,4,327721,0,15862.76,17.35181,0,16,1,37.90863,49.73218,0,0,0,87.6408,0,0,0,4,0,4,89.9,6.9,0,89.8,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,89.8,9.671792,1.386294,4.473247,1 +6,3,25,1,5,327721,0,15862.76,18.35181,0,16,1,39.35599,75.82468,0,0,0,115.1807,0,0,0,4,0,4,89.9,6.9,0,89.8,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,89.8,9.671792,1.386294,4.746502,1 +11,3,0,0,1,327724,0,8698.534,26.72416,0,14,1,110.7124,6.807072,0,0,392.8393,510.3588,1,0,0,6,0,2,71.8,6.9,0,77.4,0,100,0,0,.6931472,4.60517,0,0,0,0,0,0,77.4,9.071025,.6931472,6.235114,1 +11,3,0,0,2,327724,0,8698.534,27.72416,0,14,1,399.4744,12.13091,21.97802,0,0,433.5834,0,0,0,10,10,2,71.8,6.9,0,77.4,0,100,0,0,.6931472,4.60517,0,0,0,0,0,0,77.4,9.071025,.6931472,6.072084,1 +11,3,0,0,3,327724,0,8698.534,28.72416,0,14,1,68.48112,0,0,171.2028,861.7647,930.2458,1,0,21,5,0,2,71.8,6.9,0,77.4,0,100,0,0,.6931472,4.60517,0,0,0,0,0,0,77.4,9.071025,.6931472,6.835449,1 +11,3,0,0,1,327725,0,8698.534,20.56947,1,12,1,515.2106,27.69111,5.283412,23.40094,0,548.1851,0,0,3,13,1,2,68.1,13.8,0,54.5,0,100,0,0,.6931472,4.60517,0,0,0,1,0,0,54.5,9.071025,.6931472,6.306613,1 +11,3,0,0,2,327725,0,8698.534,21.56947,1,12,1,125.8003,9.665552,6.989966,0,0,142.4558,0,0,0,1,9,2,68.1,13.8,0,54.5,0,100,0,0,.6931472,4.60517,0,0,0,1,0,0,54.5,9.071025,.6931472,4.959032,1 +11,3,0,0,3,327725,0,8698.534,22.56947,1,12,1,30.28973,1.755926,24.14399,21.94908,0,56.18964,0,0,3,1,1,2,68.1,13.8,0,54.5,0,100,0,0,.6931472,4.60517,0,0,0,1,0,0,54.5,9.071025,.6931472,4.028732,1 +7,3,25,1,1,327728,0,4713.196,30.32991,0,12,1,18.89683,0,0,0,0,18.89683,0,0,0,2,0,4,57.4,0,0,75,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,75,8.458334,1.386294,2.938994,1 +7,3,25,1,2,327728,0,4713.196,31.32991,0,12,1,177.4496,0,0,0,0,177.4496,0,0,0,2,0,4,57.4,0,0,75,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,75,8.458334,1.386294,5.178687,1 +7,3,25,1,3,327728,0,4713.196,32.32991,0,12,1,144.54,4.170249,1.71969,0,0,150.4299,0,0,0,5,1,4,57.4,0,0,75,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,75,8.458334,1.386294,5.013497,1 +7,3,25,1,4,327728,0,4713.196,33.32991,0,12,1,19.38736,3.586662,0,0,0,22.97402,0,0,0,2,0,4,57.4,0,0,75,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,75,8.458334,1.386294,3.134364,1 +7,3,25,1,5,327728,0,4713.196,34.32991,0,12,1,7.430998,0,0,84.92569,0,7.430998,0,0,4,1,0,4,57.4,0,0,75,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,75,8.458334,1.386294,2.00566,1 +7,3,25,1,1,327729,0,4713.196,29.76865,1,12,1,614.2237,5.46476,0,0,0,619.6885,0,0,0,10,0,4,72.9,10.3,0,79.5,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,79.5,8.458334,1.386294,6.429217,1 +7,3,25,1,2,327729,0,4713.196,30.76865,1,12,1,5.625879,11.9925,0,0,0,17.61838,0,0,0,1,0,4,72.9,10.3,0,79.5,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,79.5,8.458334,1.386294,2.868942,1 +7,3,25,1,3,327729,0,4713.196,31.76865,1,12,1,1015.537,31.74549,3.439381,0,287.5064,1338.229,1,0,0,15,4,4,72.9,10.3,0,79.5,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,79.5,8.458334,1.386294,7.199102,1 +7,3,25,1,4,327729,0,4713.196,32.76865,1,12,1,93.44707,33.60217,0,0,0,127.0492,0,0,0,11,4,4,72.9,10.3,0,79.5,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,79.5,8.458334,1.386294,4.844575,1 +7,3,25,1,5,327729,0,4713.196,33.76865,1,12,1,55.90941,313.6023,0,0,0,369.5117,0,0,0,7,0,4,72.9,10.3,0,79.5,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,79.5,8.458334,1.386294,5.912182,1 +7,3,25,1,1,327730,0,4713.196,5.108829,0,12,1,41.36874,13.381,0,15.32176,0,54.74974,0,0,1,4,0,4,83.39137,9.967326,0,92.6,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,92.6,8.458334,1.386294,4.002773,1 +7,3,25,1,2,327730,0,4713.196,6.108829,0,12,1,6.094702,62.27848,0,28.12939,0,68.37318,0,0,2,1,0,4,83.39137,9.967326,0,92.6,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,92.6,8.458334,1.386294,4.224981,1 +7,3,25,1,3,327730,0,4713.196,7.108829,0,12,1,0,75.5675,0,0,0,75.5675,0,0,0,0,0,4,83.39137,9.967326,0,92.6,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,92.6,8.458334,1.386294,4.325026,1 +7,3,25,1,4,327730,0,4713.196,8.108829,0,12,1,12.40791,73.19504,0,85.30438,0,85.60294,0,0,4,2,0,4,83.39137,9.967326,0,92.6,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,92.6,8.458334,1.386294,4.44972,1 +7,3,25,1,5,327730,0,4713.196,9.108829,0,12,1,10.96957,101.3128,0,136.235,0,112.2824,0,0,7,2,0,4,83.39137,9.967326,0,92.6,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,92.6,8.458334,1.386294,4.721017,1 +7,3,25,1,1,327731,0,4713.196,5.842574,0,12,1,56.63943,59.60163,0,112.3596,0,116.2411,0,0,5,7,0,4,80,9.967326,0,88.9,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,88.9,8.458334,1.386294,4.755666,1 +7,3,25,1,2,327731,0,4713.196,6.842574,0,12,1,85.32583,74.28973,0,14.0647,0,159.6156,0,0,1,3,0,4,80,9.967326,0,88.9,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,88.9,8.458334,1.386294,5.072768,1 +7,3,25,1,3,327731,0,4713.196,7.842574,0,12,1,6.018917,132.9192,0,0,0,138.9381,0,0,0,1,0,4,80,9.967326,0,88.9,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,88.9,8.458334,1.386294,4.934029,1 +7,3,25,1,4,327731,0,4713.196,8.842573,0,12,1,94.3544,123.7262,0,85.30438,0,218.0807,0,0,4,7,0,4,80,9.967326,0,88.9,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,88.9,8.458334,1.386294,5.384865,1 +7,3,25,1,5,327731,0,4713.196,9.842573,0,12,1,32.37792,109.7594,1.610049,221.1606,0,143.7473,0,0,11,3,0,4,80,9.967326,0,88.9,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,88.9,8.458334,1.386294,4.968057,1 +11,3,0,0,1,327739,0,14627.57,43.52635,1,14,1,93.51379,27.01736,22.98264,0,0,143.5138,0,0,0,3,1,5,68.6,48.3,1,25,0,521.28,0,0,1.609438,6.256287,0,0,0,0,1,0,25,9.590732,1.609438,4.966431,1 +11,3,0,0,2,327739,0,14627.57,44.52635,1,14,1,0,13.36146,0,0,0,13.36146,0,0,0,0,0,5,68.6,48.3,1,25,0,521.28,0,0,1.609438,6.256287,0,0,0,0,1,0,25,9.590732,1.609438,2.592375,1 +11,3,0,0,3,327739,0,14627.57,45.52635,1,14,1,91.44454,20.48581,20.63629,0,0,132.5666,0,0,0,2,1,5,68.6,48.3,1,25,0,521.28,0,0,1.609438,6.256287,0,0,0,0,1,0,25,9.590732,1.609438,4.887085,1 +11,3,0,0,1,327740,0,14627.57,48.74743,0,20,1,124.9234,27.37487,42.39019,0,535.143,729.8315,1,0,0,7,1,5,47.9,20.7,1,56.8,0,521.28,0,0,1.609438,6.256287,0,0,0,1,0,0,56.8,9.590732,1.609438,6.592813,1 +11,3,0,0,2,327740,0,14627.57,49.74743,0,20,1,79.98125,0,10.78294,0,0,90.76418,0,0,0,4,1,5,47.9,20.7,1,56.8,0,521.28,0,0,1.609438,6.256287,0,0,0,1,0,0,56.8,9.590732,1.609438,4.508265,1 +11,3,0,0,3,327740,0,14627.57,50.74743,0,20,1,207.6311,22.7859,3.22442,0,0,233.6414,0,0,0,4,0,5,47.9,20.7,1,56.8,0,521.28,0,0,1.609438,6.256287,0,0,0,1,0,0,56.8,9.590732,1.609438,5.453788,1 +11,3,0,0,1,327741,0,14627.57,14.88022,0,14,1,104.188,0,26.55771,0,0,130.7457,0,0,0,4,1,5,67.2,13.8,0,53.4,0,521.28,1,0,1.609438,6.256287,0,0,0,1,0,0,53.4,9.590732,1.609438,4.873254,1 +11,3,0,0,2,327741,0,14627.57,15.88022,0,14,1,37.97468,0,0,0,0,37.97468,0,0,0,3,0,5,67.2,13.8,0,53.4,0,521.28,1,0,1.609438,6.256287,0,0,0,1,0,0,53.4,9.590732,1.609438,3.63692,1 +11,3,0,0,3,327741,0,14627.57,16.88022,0,14,1,18.48667,5.803955,23.64574,0,0,47.93637,0,0,0,1,1,5,67.2,13.8,0,53.4,0,521.28,1,0,1.609438,6.256287,0,0,0,1,0,0,53.4,9.590732,1.609438,3.869874,1 +11,3,0,0,1,327742,0,14627.57,12.96099,1,14,1,0,0,0,0,0,0,0,0,0,0,0,5,70,9.967326,0,18.5,0,521.28,1,1,1.609438,6.256287,0,0,0,0,1,0,18.5,9.590732,1.609438,,0 +11,3,0,0,2,327742,0,14627.57,13.96099,1,14,1,0,0,0,0,0,0,0,0,0,0,0,5,70,9.967326,0,18.5,0,521.28,1,1,1.609438,6.256287,0,0,0,0,1,0,18.5,9.590732,1.609438,,0 +11,3,0,0,3,327742,0,14627.57,14.96099,1,14,1,37.40327,24.07567,0,0,0,61.47894,0,0,0,4,0,5,70,9.967326,0,18.5,0,521.28,1,1,1.609438,6.256287,0,0,0,0,1,0,18.5,9.590732,1.609438,4.118695,1 +11,3,0,0,1,327743,0,14627.57,11.87406,0,14,1,33.70787,0,0,0,0,33.70787,0,0,0,2,0,5,48.3,9.967326,0,63,0,521.28,1,0,1.609438,6.256287,0,0,0,1,0,0,63,9.590732,1.609438,3.517731,1 +11,3,0,0,2,327743,0,14627.57,12.87406,0,14,1,10.78294,0,0,0,0,10.78294,0,0,0,2,0,5,48.3,9.967326,0,63,0,521.28,1,0,1.609438,6.256287,0,0,0,1,0,0,63,9.590732,1.609438,2.377965,1 +11,3,0,0,3,327743,0,14627.57,13.87406,0,14,1,236.9046,29.77214,0,0,0,266.6767,0,0,0,5,0,5,48.3,9.967326,0,63,0,521.28,1,0,1.609438,6.256287,0,0,0,1,0,0,63,9.590732,1.609438,5.586037,1 +13,3,0,0,1,327890,0,9591.202,17.6345,1,11,1,0,0,0,0,0,0,0,0,0,0,0,4,31.4,6.9,0,47.7,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,47.7,9.168706,1.386294,,0 +13,3,0,0,1,327891,0,9591.202,13.94387,0,11,1,79.05719,0,0,0,0,79.05719,0,0,0,2,0,4,64.4,0,0,56.8,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,56.8,9.168706,1.386294,4.370172,1 +13,3,0,0,2,327891,0,9591.202,14.94387,0,11,1,0,0,0,0,0,0,0,0,0,0,0,3,64.4,0,0,56.8,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,56.8,9.168706,1.098612,,0 +13,3,0,0,3,327891,0,9591.202,15.94387,0,11,1,0,0,0,0,0,0,0,0,0,0,0,3,64.4,0,0,56.8,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,56.8,9.168706,1.098612,,0 +13,3,0,0,1,327892,0,9591.202,12.05202,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,88.3,9.967326,0,85.2,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.168706,1.386294,,0 +13,3,0,0,2,327892,0,9591.202,13.05202,0,11,1,0,0,0,0,0,0,0,0,0,0,0,3,88.3,9.967326,0,85.2,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.168706,1.098612,,0 +13,3,0,0,3,327892,0,9591.202,14.05202,0,11,1,0,0,0,0,0,0,0,0,0,0,0,3,88.3,9.967326,0,85.2,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.168706,1.098612,,0 +13,3,0,0,1,327893,0,9591.202,48.91171,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,81.4,0,0,86.4,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,86.4,9.168706,1.386294,,0 +13,3,0,0,2,327893,0,9591.202,49.91171,0,11,1,0,0,0,0,0,0,0,0,0,0,0,3,81.4,0,0,86.4,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,86.4,9.168706,1.098612,,0 +13,3,0,0,3,327893,0,9591.202,50.91171,0,11,1,0,0,0,0,0,0,0,0,0,0,0,3,81.4,0,0,86.4,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,86.4,9.168706,1.098612,,0 +15,3,95,0,1,327894,0,9768.328,30.08898,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,64.9,10.3,0,63.6,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,1,0,0,63.6,9.187003,1.609438,,0 +15,3,95,0,2,327894,0,9768.328,31.08898,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,64.9,10.3,0,63.6,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,1,0,0,63.6,9.187003,1.609438,,0 +15,3,95,0,3,327894,0,9768.328,32.08898,1,12,1,6.501951,0,0,0,0,6.501951,0,0,0,1,0,5,64.9,10.3,0,63.6,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,1,0,0,63.6,9.187003,1.609438,1.872102,1 +15,3,95,0,1,327895,0,9768.328,8.060233,1,12,1,8.243174,2.035033,0,0,0,10.27821,0,0,0,1,0,5,90,9.967326,0,88.9,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,88.9,9.187003,1.609438,2.330026,1 +15,3,95,0,2,327895,0,9768.328,9.060233,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,90,9.967326,0,88.9,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,88.9,9.187003,1.609438,,0 +15,3,95,0,3,327895,0,9768.328,10.06023,1,12,1,8.669268,0,0,0,0,8.669268,0,0,0,1,0,5,90,9.967326,0,88.9,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,88.9,9.187003,1.609438,2.159784,1 +15,3,95,0,1,327896,0,9768.328,31.03628,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,60.6,0,0,71.6,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,1,0,0,71.6,9.187003,1.609438,,0 +15,3,95,0,2,327896,0,9768.328,32.03628,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,60.6,0,0,71.6,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,1,0,0,71.6,9.187003,1.609438,,0 +15,3,95,0,3,327896,0,9768.328,33.03628,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,60.6,0,0,71.6,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,1,0,0,71.6,9.187003,1.609438,,0 +15,3,95,0,1,327897,0,9768.328,6.746064,0,12,1,18.54714,0,0,0,0,18.54714,0,0,0,1,1,5,71.7,9.967326,0,74.1,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,74.1,9.187003,1.609438,2.920316,1 +15,3,95,0,2,327897,0,9768.328,7.746064,0,12,1,24.62121,4.573864,0,0,0,29.19508,0,0,0,2,1,5,71.7,9.967326,0,74.1,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,74.1,9.187003,1.609438,3.374,1 +15,3,95,0,3,327897,0,9768.328,8.746064,0,12,1,8.669268,0,19.07239,0,0,27.74166,0,0,0,1,0,5,71.7,9.967326,0,74.1,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,74.1,9.187003,1.609438,3.322935,1 +15,3,95,0,1,327898,0,9768.328,5.103354,0,12,1,13.91036,0,0,0,0,13.91036,0,0,0,1,0,5,95,9.967326,0,100,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,100,9.187003,1.609438,2.632634,1 +15,3,95,0,2,327898,0,9768.328,6.103354,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,95,9.967326,0,100,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,100,9.187003,1.609438,,0 +15,3,95,0,3,327898,0,9768.328,7.103354,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,95,9.967326,0,100,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,100,9.187003,1.609438,,0 +15,3,95,1,1,327899,0,6324.34,2.373717,1,13,1,19.4745,7.027306,0,0,0,26.5018,0,0,0,2,0,4,83.39137,9.967326,0,81.5,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,0,0,0,81.5,8.752319,1.386294,3.277213,1 +15,3,95,1,2,327899,0,6324.34,3.373717,1,13,1,10.41667,3.499053,0,0,0,13.91572,0,0,0,2,0,4,83.39137,9.967326,0,81.5,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,0,0,0,81.5,8.752319,1.386294,2.633019,1 +15,3,95,1,3,327899,0,6324.34,4.373717,1,13,1,26.0078,2.717815,0,43.34634,0,28.72562,0,0,1,1,1,4,83.39137,9.967326,0,81.5,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,0,0,0,81.5,8.752319,1.386294,3.357789,1 +15,3,95,1,1,327900,0,6324.34,26.17933,1,13,1,16.22875,17.8001,0,0,0,34.02885,0,0,0,1,0,4,81.4,10.3,0,85.2,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,85.2,8.752319,1.386294,3.527209,1 +15,3,95,1,2,327900,0,6324.34,27.17933,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,81.4,10.3,0,85.2,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,85.2,8.752319,1.386294,,0 +15,3,95,1,3,327900,0,6324.34,28.17933,1,13,1,543.7625,11.7772,0,0,534.7637,1090.303,1,0,0,4,1,4,81.4,10.3,0,85.2,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,85.2,8.752319,1.386294,6.994211,1 +15,3,95,1,1,327901,0,6324.34,27.81383,0,12,1,38.63988,0,27.30551,0,0,65.94539,0,0,0,3,1,4,84.6,3.4,0,73.9,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,73.9,8.752319,1.386294,4.188827,1 +15,3,95,1,2,327901,0,6324.34,28.81383,0,12,1,30.77652,0,0,0,0,30.77652,0,0,0,3,0,4,84.6,3.4,0,73.9,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,73.9,8.752319,1.386294,3.426752,1 +15,3,95,1,3,327901,0,6324.34,29.81383,0,12,1,10.83658,0,0,0,0,10.83658,0,0,0,1,0,4,84.6,3.4,0,73.9,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,73.9,8.752319,1.386294,2.382928,1 +15,3,95,1,1,327902,0,6324.34,2.373717,1,13,1,10.30397,8.325605,0,0,0,18.62957,0,0,0,2,0,4,83.39137,9.967326,0,66.7,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,0,0,0,66.7,8.752319,1.386294,2.92475,1 +15,3,95,1,2,327902,0,6324.34,3.373717,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,83.39137,9.967326,0,66.7,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,0,0,0,66.7,8.752319,1.386294,,0 +15,3,95,1,3,327902,0,6324.34,4.373717,1,13,1,31.20936,2.336368,0,43.34634,0,33.54573,0,0,1,2,1,4,83.39137,9.967326,0,66.7,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,0,0,0,66.7,8.752319,1.386294,3.51291,1 +11,3,0,1,1,327933,0,8811.144,33.35798,1,12,1,80.37094,39.31994,12.87996,0,635.0541,767.6249,1,0,0,7,1,5,67,17.2,0,73.9,0,0,0,0,1.609438,0,0,0,0,0,0,0,73.9,9.083886,1.609438,6.643301,1 +11,3,0,1,2,327933,0,8811.144,34.35798,1,12,1,22.72727,15.37405,0,0,473.7926,511.894,1,0,0,3,0,5,67,17.2,0,73.9,0,0,0,0,1.609438,0,0,0,0,0,0,0,73.9,9.083886,1.609438,6.238118,1 +11,3,0,1,3,327933,0,8811.144,35.35798,1,12,1,35.37061,9.718248,21.23971,0,0,66.32857,0,0,0,3,1,5,67,17.2,0,73.9,0,0,0,0,1.609438,0,0,0,0,0,0,0,73.9,9.083886,1.609438,4.194621,1 +11,3,0,1,4,327933,0,8811.144,36.35798,1,12,1,28.12131,8.011028,0,0,0,36.13234,0,0,0,2,0,5,67,17.2,0,73.9,0,0,0,0,1.609438,0,0,0,0,0,0,0,73.9,9.083886,1.609438,3.587188,1 +11,3,0,1,5,327933,0,8811.144,37.35798,1,12,1,220.4293,16.1288,23.23792,0,0,259.7961,0,0,0,4,3,5,67,17.2,0,73.9,0,0,0,0,1.609438,0,0,0,0,0,0,0,73.9,9.083886,1.609438,5.559897,1 +11,3,0,1,1,327934,0,8811.144,34.55715,0,9,1,73.87944,14.70376,0,0,0,88.58321,0,0,0,6,1,5,76.1,3.4,0,53.4,0,0,0,0,1.609438,0,0,0,0,1,0,0,53.4,9.083886,1.609438,4.483943,1 +11,3,0,1,2,327934,0,8811.144,35.55715,0,9,1,17.99242,28.02083,0,0,0,46.01326,0,0,0,6,0,5,76.1,3.4,0,53.4,0,0,0,0,1.609438,0,0,0,0,1,0,0,53.4,9.083886,1.609438,3.828929,1 +11,3,0,1,3,327934,0,8811.144,36.55715,0,9,1,13.87083,4.117902,0,0,0,17.98873,0,0,0,1,0,5,76.1,3.4,0,53.4,0,0,0,0,1.609438,0,0,0,0,1,0,0,53.4,9.083886,1.609438,2.889745,1 +11,3,0,1,4,327934,0,8811.144,37.55715,0,9,1,74.24183,16.31745,0,0,980.5869,1071.146,1,0,0,2,0,5,76.1,3.4,0,53.4,0,0,0,0,1.609438,0,0,0,0,1,0,0,53.4,9.083886,1.609438,6.976484,1 +11,3,0,1,5,327934,0,8811.144,38.55715,0,9,1,26.47585,27.74955,23.25581,0,0,77.48122,0,0,0,3,1,5,76.1,3.4,0,53.4,0,0,0,0,1.609438,0,0,0,0,1,0,0,53.4,9.083886,1.609438,4.350036,1 +11,3,0,1,1,327935,0,8811.144,11.82478,0,12,1,25.55384,14.69861,0,0,0,40.25245,0,0,0,3,0,5,91.7,9.967326,0,85.2,0,0,1,0,1.609438,0,0,0,0,0,0,0,85.2,9.083886,1.609438,3.695171,1 +11,3,0,1,2,327935,0,8811.144,12.82478,0,12,1,66.95076,0,.9469697,0,0,67.89773,0,0,0,3,0,5,91.7,9.967326,0,85.2,0,0,1,0,1.609438,0,0,0,0,0,0,0,85.2,9.083886,1.609438,4.218003,1 +11,3,0,1,3,327935,0,8811.144,13.82478,0,12,1,259.6012,16.19853,0,0,383.3116,659.1114,1,0,0,13,1,5,91.7,9.967326,0,85.2,0,0,1,0,1.609438,0,0,0,0,0,0,0,85.2,9.083886,1.609438,6.490892,1 +11,3,0,1,4,327935,0,8811.144,14.82478,0,12,1,74.75384,0,.7877117,0,0,75.54155,0,0,0,4,1,5,91.7,9.967326,0,85.2,0,0,1,0,1.609438,0,0,0,0,0,0,0,85.2,9.083886,1.609438,4.324683,1 +11,3,0,1,5,327935,0,8811.144,15.82478,0,12,1,39.57066,17.27012,0,0,0,56.84079,0,0,0,6,0,5,91.7,9.967326,0,85.2,0,0,1,0,1.609438,0,0,0,0,0,0,0,85.2,9.083886,1.609438,4.040254,1 +11,3,0,1,1,327936,0,8811.144,9.924709,1,12,1,17.00154,0,26.27512,0,0,43.27666,0,0,0,0,1,5,86.7,9.967326,0,77.8,0,0,1,1,1.609438,0,0,0,0,0,0,0,77.8,9.083886,1.609438,3.767613,1 +11,3,0,1,2,327936,0,8811.144,10.92471,1,12,1,31.1553,10.26515,0,0,729.91,771.3305,1,0,0,2,0,5,86.7,9.967326,0,77.8,0,0,1,1,1.609438,0,0,0,0,0,0,0,77.8,9.083886,1.609438,6.648117,1 +11,3,0,1,3,327936,0,8811.144,11.92471,1,12,1,79.3238,12.07195,23.84048,0,420.3338,535.57,1,0,0,6,1,5,86.7,9.967326,0,77.8,0,0,1,1,1.609438,0,0,0,0,0,0,0,77.8,9.083886,1.609438,6.283331,1 +11,3,0,1,4,327936,0,8811.144,12.92471,1,12,1,163.9228,0,.7877117,189.0508,0,164.7105,0,0,8,8,0,5,86.7,9.967326,0,77.8,0,0,1,1,1.609438,0,0,0,0,0,0,0,77.8,9.083886,1.609438,5.104189,1 +11,3,0,1,5,327936,0,8811.144,13.92471,1,12,1,433.8462,16.50447,22.71199,0,758.0179,1231.08,2,0,0,14,1,5,86.7,9.967326,0,77.8,0,0,1,1,1.609438,0,0,0,0,0,0,0,77.8,9.083886,1.609438,7.115647,1 +11,3,0,1,1,327937,0,8811.144,13.73306,0,12,1,13.91036,.7727975,0,0,0,14.68315,0,0,0,2,0,5,73.3,9.967326,0,85.2,0,0,1,0,1.609438,0,0,0,0,0,0,0,85.2,9.083886,1.609438,2.686701,1 +11,3,0,1,2,327937,0,8811.144,14.73306,0,12,1,4.734848,2.840909,0,0,0,7.575758,0,0,0,1,0,5,73.3,9.967326,0,85.2,0,0,1,0,1.609438,0,0,0,0,0,0,0,85.2,9.083886,1.609438,2.024953,1 +11,3,0,1,3,327937,0,8811.144,15.73306,0,12,1,119.3325,8.105765,0,0,438.6216,566.0598,1,0,0,9,1,5,73.3,9.967326,0,85.2,0,0,1,0,1.609438,0,0,0,0,0,0,0,85.2,9.083886,1.609438,6.3387,1 +11,3,0,1,4,327937,0,8811.144,16.73306,0,12,1,337.4675,13.60772,0,459.8543,3016.766,3367.842,1,0,16,8,18,5,73.3,9.967326,0,85.2,0,0,1,0,1.609438,0,0,0,0,0,0,0,85.2,9.083886,1.609438,8.122027,1 +11,3,0,1,5,327937,0,8811.144,17.73306,0,12,1,122.8623,2.075134,17.35242,150.2683,0,142.2898,0,0,7,6,1,5,73.3,9.967326,0,85.2,0,0,1,0,1.609438,0,0,0,0,0,0,0,85.2,9.083886,1.609438,4.957866,1 +13,3,0,1,1,327939,0,7542.522,42.20123,0,9,1,12.36476,19.50026,0,0,400.1133,431.9784,1,0,0,2,0,4,72.9,3.4,0,71.6,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,71.6,8.928445,1.386294,6.068376,1 +13,3,0,1,2,327939,0,7542.522,43.20123,0,9,1,10.89015,0,25.0947,0,0,35.98485,0,0,0,0,1,4,72.9,3.4,0,71.6,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,71.6,8.928445,1.386294,3.583098,1 +13,3,0,1,3,327939,0,7542.522,44.20123,0,9,1,99.52319,0,0,0,0,99.52319,0,0,0,1,0,4,72.9,3.4,0,71.6,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,71.6,8.928445,1.386294,4.600391,1 +13,3,0,1,4,327939,0,7542.522,45.20123,0,9,1,0,0,0,0,0,0,0,0,0,0,0,4,72.9,3.4,0,71.6,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,71.6,8.928445,1.386294,,0 +13,3,0,1,5,327939,0,7542.522,46.20123,0,9,1,23.25581,1.592129,0,0,0,24.84794,0,0,0,2,0,4,72.9,3.4,0,71.6,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,71.6,8.928445,1.386294,3.212775,1 +13,3,0,1,1,327940,0,7542.522,37.71389,1,10,1,0,0,0,0,0,0,0,0,0,0,0,4,70.2,3.4,0,72.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,72.7,8.928445,1.386294,,0 +13,3,0,1,2,327940,0,7542.522,38.71389,1,10,1,0,0,0,0,0,0,0,0,0,0,0,4,70.2,3.4,0,72.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,72.7,8.928445,1.386294,,0 +13,3,0,1,3,327940,0,7542.522,39.71389,1,10,1,91.28738,0,0,0,0,91.28738,0,0,0,4,0,4,70.2,3.4,0,72.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,72.7,8.928445,1.386294,4.514013,1 +13,3,0,1,4,327940,0,7542.522,40.71389,1,10,1,0,2.993304,0,0,0,2.993304,0,0,0,0,0,4,70.2,3.4,0,72.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,72.7,8.928445,1.386294,1.096378,1 +13,3,0,1,5,327940,0,7542.522,41.71389,1,10,1,0,0,0,0,0,0,0,0,0,0,0,4,70.2,3.4,0,72.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,72.7,8.928445,1.386294,,0 +13,3,0,1,1,327941,0,7542.522,15.52361,0,10,1,0,0,0,0,0,0,0,0,0,0,0,4,76.1,3.4,0,77.3,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,77.3,8.928445,1.386294,,0 +13,3,0,1,2,327941,0,7542.522,16.52361,0,10,1,28.83523,2.556818,25.0947,0,0,56.48674,0,0,0,2,1,4,76.1,3.4,0,77.3,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,77.3,8.928445,1.386294,4.034006,1 +13,3,0,1,3,327941,0,7542.522,17.52361,0,10,1,16.12484,0,0,0,0,16.12484,0,0,0,1,0,4,76.1,3.4,0,77.3,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,77.3,8.928445,1.386294,2.780361,1 +13,3,0,1,4,327941,0,7542.522,18.52361,0,10,1,48.87751,2.028358,0,0,0,50.90587,0,0,0,1,0,4,76.1,3.4,0,77.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,77.3,8.928445,1.386294,3.929978,1 +13,3,0,1,5,327941,0,7542.522,19.52361,0,10,1,0,0,0,0,0,0,0,0,0,0,0,4,76.1,3.4,0,77.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,77.3,8.928445,1.386294,,0 +13,3,0,1,1,327942,0,7542.522,9.89733,1,10,1,5.151984,2.575992,0,0,0,7.727975,0,0,0,1,0,4,80,9.967326,0,92.6,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,1,0,92.6,8.928445,1.386294,2.044847,1 +13,3,0,1,2,327942,0,7542.522,10.89733,1,10,1,5.681818,0,0,0,0,5.681818,0,0,0,1,0,4,80,9.967326,0,92.6,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,1,0,92.6,8.928445,1.386294,1.737271,1 +13,3,0,1,3,327942,0,7542.522,11.89733,1,10,1,13.0039,5.158214,0,0,0,18.16212,0,0,0,3,0,4,80,9.967326,0,92.6,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,1,0,92.6,8.928445,1.386294,2.899338,1 +13,3,0,1,4,327942,0,7542.522,12.89733,1,10,1,7.877117,.9846396,0,0,0,8.861756,0,0,0,1,0,4,80,9.967326,0,92.6,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,1,0,92.6,8.928445,1.386294,2.181745,1 +13,3,0,1,5,327942,0,7542.522,13.89733,1,10,1,57.45975,1.663685,7.298748,0,0,66.42218,0,0,0,3,0,4,80,9.967326,0,92.6,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,1,0,92.6,8.928445,1.386294,4.196031,1 +10,3,50,1,1,328003,0,7545.455,37.56331,1,12,1,133.9632,11.56793,0,0,396.1645,541.6956,1,0,0,6,0,4,86.7,20.7,0,92,1000,0,0,0,1.386294,0,0,3.931826,7.600903,0,0,0,92,8.928833,1.386294,6.294704,1 +10,3,50,1,2,328003,0,7545.455,38.56331,1,12,1,26.2541,2.798875,0,14.0647,0,29.05298,0,0,1,1,0,4,86.7,20.7,0,92,1000,0,0,0,1.386294,0,0,3.931826,7.600903,0,0,0,92,8.928833,1.386294,3.369121,1 +10,3,50,1,3,328003,0,7545.455,39.56331,1,12,1,42.82029,1.878762,0,0,0,44.69905,0,0,0,4,0,4,86.7,20.7,0,92,1000,0,0,0,1.386294,0,0,3.931826,7.600903,0,0,0,92,8.928833,1.386294,3.799952,1 +10,3,50,1,4,328003,0,7545.455,40.56331,1,12,1,220.822,12.64056,0,0,0,233.4626,0,0,0,5,0,4,86.7,20.7,0,92,1000,0,0,0,1.386294,0,0,3.931826,7.600903,0,0,0,92,8.928833,1.386294,5.453022,1 +10,3,50,1,5,328003,0,7545.455,41.56331,1,12,1,34.67799,10.16277,35.03185,0,0,79.87261,0,0,0,4,1,4,86.7,20.7,0,92,1000,0,0,0,1.386294,0,0,3.931826,7.600903,0,0,0,92,8.928833,1.386294,4.380433,1 +10,3,50,1,1,328004,0,7545.455,14.98152,0,12,1,2.042901,0,0,0,0,2.042901,0,0,0,0,0,4,84.6,3.4,0,90.9,1000,0,1,0,1.386294,0,0,3.931826,7.600903,0,0,0,90.9,8.928833,1.386294,.7143708,1 +10,3,50,1,2,328004,0,7545.455,15.98152,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,84.6,3.4,0,90.9,1000,0,1,0,1.386294,0,0,3.931826,7.600903,0,0,0,90.9,8.928833,1.386294,,0 +10,3,50,1,3,328004,0,7545.455,16.98152,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,84.6,3.4,0,90.9,1000,0,1,0,1.386294,0,0,3.931826,7.600903,0,0,0,90.9,8.928833,1.386294,,0 +10,3,50,1,4,328004,0,7545.455,17.98152,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,84.6,3.4,0,90.9,1000,0,1,0,1.386294,0,0,3.931826,7.600903,0,0,0,90.9,8.928833,1.386294,,0 +10,3,50,1,5,328004,0,7545.455,18.98152,0,12,1,8.846426,0,0,0,0,8.846426,0,0,0,1,0,4,84.6,3.4,0,90.9,1000,0,0,0,1.386294,0,0,3.931826,7.600903,0,0,0,90.9,8.928833,1.386294,2.180013,1 +10,3,50,1,1,328005,0,7545.455,13.06229,1,12,1,87.84474,10.02043,0,0,0,97.86517,0,0,0,10,0,4,95,9.967326,0,100,1000,0,1,1,1.386294,0,0,3.931826,7.600903,0,0,0,100,8.928833,1.386294,4.583591,1 +10,3,50,1,2,328005,0,7545.455,14.06229,1,12,1,118.6123,0,25.78528,0,140.7173,285.1149,1,0,0,11,1,4,95,9.967326,0,100,1000,0,1,1,1.386294,0,0,3.931826,7.600903,0,0,0,100,8.928833,1.386294,5.652892,1 +10,3,50,1,3,328005,0,7545.455,15.06229,1,12,1,52.88048,.9845228,0,0,0,53.86501,0,0,0,6,0,4,95,9.967326,0,100,1000,0,1,1,1.386294,0,0,3.931826,7.600903,0,0,0,100,8.928833,1.386294,3.986481,1 +10,3,50,1,4,328005,0,7545.455,16.06229,1,12,1,35.67274,8.801861,27.1423,0,0,71.61691,0,0,0,2,1,4,95,9.967326,0,100,1000,0,1,1,1.386294,0,0,3.931826,7.600903,0,0,0,100,8.928833,1.386294,4.271331,1 +10,3,50,1,5,328005,0,7545.455,17.06229,1,12,1,45.64756,7.00637,0,0,0,52.65393,0,0,0,2,0,4,95,9.967326,0,100,1000,0,1,1,1.386294,0,0,3.931826,7.600903,0,0,0,100,8.928833,1.386294,3.963741,1 +10,3,50,1,1,328006,0,7545.455,41.63176,0,12,1,24.51481,0,0,0,0,24.51481,0,0,0,0,5,4,83,6.9,0,97.7,1000,0,0,0,1.386294,0,0,3.931826,7.600903,0,0,0,97.7,8.928833,1.386294,3.199277,1 +10,3,50,1,2,328006,0,7545.455,42.63176,0,12,1,34.69292,4.050633,.4688233,0,0,39.21238,0,0,0,2,0,4,83,6.9,0,97.7,1000,0,0,0,1.386294,0,0,3.931826,7.600903,0,0,0,97.7,8.928833,1.386294,3.668993,1 +10,3,50,1,3,328006,0,7545.455,43.63176,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,83,6.9,0,97.7,1000,0,0,0,1.386294,0,0,3.931826,7.600903,0,0,0,97.7,8.928833,1.386294,,0 +10,3,50,1,4,328006,0,7545.455,44.63176,0,12,1,108.1815,0,0,0,0,108.1815,0,0,0,2,0,4,83,6.9,0,97.7,1000,0,0,0,1.386294,0,0,3.931826,7.600903,0,0,0,97.7,8.928833,1.386294,4.68381,1 +10,3,50,1,5,328006,0,7545.455,45.63176,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,83,6.9,0,97.7,1000,0,0,0,1.386294,0,0,3.931826,7.600903,0,0,0,97.7,8.928833,1.386294,,0 +13,3,0,1,1,328029,0,6579.355,9.880903,0,12,1,15.97115,0,0,0,0,15.97115,0,0,0,1,0,4,75,9.967326,0,81.5,450,0,1,0,1.386294,0,1,4.564348,6.160541,0,0,0,81.5,8.791844,1.386294,2.770784,1 +13,3,0,1,2,328029,0,6579.355,10.8809,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,75,9.967326,0,81.5,450,0,1,0,1.386294,0,1,4.564348,6.160541,0,0,0,81.5,8.791844,1.386294,,0 +13,3,0,1,3,328029,0,6579.355,11.8809,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,75,9.967326,0,81.5,450,0,1,0,1.386294,0,1,4.564348,6.160541,0,0,0,81.5,8.791844,1.386294,,0 +13,3,0,1,1,328030,0,6579.355,34.00137,1,12,1,7.727975,0,0,0,0,7.727975,0,0,0,1,0,4,76.1,10.3,0,85.2,450,0,0,0,1.386294,0,1,4.564348,6.160541,0,0,0,85.2,8.791844,1.386294,2.044847,1 +13,3,0,1,2,328030,0,6579.355,35.00137,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,76.1,10.3,0,85.2,450,0,0,0,1.386294,0,1,4.564348,6.160541,0,0,0,85.2,8.791844,1.386294,,0 +13,3,0,1,3,328030,0,6579.355,36.00137,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,76.1,10.3,0,85.2,450,0,0,0,1.386294,0,1,4.564348,6.160541,0,0,0,85.2,8.791844,1.386294,,0 +13,3,0,1,1,328031,0,6579.355,11.66324,0,12,1,37.55796,0,0,0,0,37.55796,0,0,0,2,0,4,90,9.967326,0,96.3,450,0,1,0,1.386294,0,1,4.564348,6.160541,0,0,0,96.3,8.791844,1.386294,3.625885,1 +13,3,0,1,2,328031,0,6579.355,12.66324,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,90,9.967326,0,96.3,450,0,1,0,1.386294,0,1,4.564348,6.160541,0,0,0,96.3,8.791844,1.386294,,0 +13,3,0,1,3,328031,0,6579.355,13.66324,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,90,9.967326,0,96.3,450,0,1,0,1.386294,0,1,4.564348,6.160541,0,0,0,96.3,8.791844,1.386294,,0 +13,3,0,1,1,328032,0,6579.355,34.34086,0,12,1,15.14683,0,0,0,0,15.14683,0,0,0,1,0,4,79.8,6.9,0,45.5,450,0,0,0,1.386294,0,1,4.564348,6.160541,0,0,0,45.5,8.791844,1.386294,2.717791,1 +13,3,0,1,2,328032,0,6579.355,35.34086,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,79.8,6.9,0,45.5,450,0,0,0,1.386294,0,1,4.564348,6.160541,0,0,0,45.5,8.791844,1.386294,,0 +13,3,0,1,3,328032,0,6579.355,36.34086,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,79.8,6.9,0,45.5,450,0,0,0,1.386294,0,1,4.564348,6.160541,0,0,0,45.5,8.791844,1.386294,,0 +11,3,0,1,1,328077,0,9701.466,.7939767,0,12,1,59.86605,10.69552,0,0,0,70.56157,0,0,0,5,0,3,83.39137,9.967326,0,100,0,78,1,0,1.098612,4.356709,0,0,0,0,0,0,100,9.180136,1.098612,4.256485,1 +11,3,0,1,2,328077,0,9701.466,1.793977,0,12,1,5.681818,0,0,0,0,5.681818,0,0,0,1,0,3,83.39137,9.967326,0,100,0,78,1,0,1.098612,4.356709,0,0,0,0,0,0,100,9.180136,1.098612,1.737271,1 +11,3,0,1,3,328077,0,9701.466,2.793977,0,12,1,24.27395,2.709146,0,0,0,26.9831,0,0,0,3,0,3,83.39137,9.967326,0,100,0,78,1,0,1.098612,4.356709,0,0,0,0,0,0,100,9.180136,1.098612,3.295211,1 +11,3,0,1,1,328078,0,9701.466,31.58658,0,12,1,98.91808,6.666667,0,0,0,105.5847,0,0,0,3,4,3,79.8,6.9,0,76.1,0,78,0,0,1.098612,4.356709,0,0,0,0,0,0,76.1,9.180136,1.098612,4.659514,1 +11,3,0,1,2,328078,0,9701.466,32.58659,0,12,1,0,0,8.996212,0,0,8.996212,0,0,0,0,0,3,79.8,6.9,0,76.1,0,78,0,0,1.098612,4.356709,0,0,0,0,0,0,76.1,9.180136,1.098612,2.196804,1 +11,3,0,1,3,328078,0,9701.466,33.58659,0,12,1,13.87083,3.337668,0,0,0,17.2085,0,0,0,2,0,3,79.8,6.9,0,76.1,0,78,0,0,1.098612,4.356709,0,0,0,0,0,0,76.1,9.180136,1.098612,2.845403,1 +11,3,0,1,1,328079,0,9701.466,23.50445,1,12,1,19.57754,0,0,0,0,19.57754,0,0,0,2,0,3,88.8,6.9,0,71.6,0,78,0,0,1.098612,4.356709,0,0,0,0,0,0,71.6,9.180136,1.098612,2.974383,1 +11,3,0,1,2,328079,0,9701.466,24.50445,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,88.8,6.9,0,71.6,0,78,0,0,1.098612,4.356709,0,0,0,0,0,0,71.6,9.180136,1.098612,,0 +11,3,0,1,3,328079,0,9701.466,25.50445,1,12,1,0,.9059384,25.03251,0,0,25.93845,0,0,0,0,0,3,88.8,6.9,0,71.6,0,78,0,0,1.098612,4.356709,0,0,0,0,0,0,71.6,9.180136,1.098612,3.255726,1 +11,3,0,0,1,328097,0,5879.179,48.5421,1,14,1,77.07368,142.5554,26.79031,0,0,246.4194,0,0,0,6,1,2,85.6,24.1,1,73.9,0,765.6,0,0,.6931472,6.64066,0,0,0,1,0,0,73.9,8.679342,.6931472,5.507035,1 +11,3,0,0,2,328097,0,5879.179,49.5421,1,14,1,60.13258,102.0597,10.89015,0,1940.151,2113.234,2,0,0,4,1,2,85.6,24.1,1,73.9,0,765.6,0,0,.6931472,6.64066,0,0,0,1,0,0,73.9,8.679342,.6931472,7.655975,1 +11,3,0,0,3,328097,0,5879.179,50.5421,1,14,1,119.3325,110.6849,35.7694,0,0,265.7867,0,0,0,7,1,2,85.6,24.1,1,73.9,0,765.6,0,0,.6931472,6.64066,0,0,0,1,0,0,73.9,8.679342,.6931472,5.582694,1 +11,3,0,0,1,328098,0,5879.179,49.22656,0,12,1,14.42555,0,0,0,0,14.42555,0,0,0,0,0,2,86.2,0,0,85.2,0,765.6,0,0,.6931472,6.64066,0,0,0,0,0,0,85.2,8.679342,.6931472,2.669001,1 +11,3,0,0,2,328098,0,5879.179,50.22656,0,12,1,64.39394,61.10322,24.62121,0,0,150.1184,0,0,0,10,1,2,86.2,0,0,85.2,0,765.6,0,0,.6931472,6.64066,0,0,0,0,0,0,85.2,8.679342,.6931472,5.011424,1 +11,3,0,0,3,328098,0,5879.179,51.22656,0,12,1,67.18682,87.92805,10.83658,0,0,165.9514,0,0,0,11,1,2,86.2,0,0,85.2,0,765.6,0,0,.6931472,6.64066,0,0,0,0,0,0,85.2,8.679342,.6931472,5.111695,1 +11,3,0,1,1,328163,0,10906.75,56.86516,0,11,1,30.3967,14.72952,35.54869,0,0,80.67491,0,0,0,3,1,2,81.4,13.8,0,68.2,0,0,0,0,.6931472,0,0,0,0,1,0,0,68.2,9.297229,.6931472,4.390428,1 +11,3,0,1,2,328163,0,10906.75,57.86516,0,11,1,76.23106,13.70739,0,0,0,89.93845,0,0,0,4,0,2,81.4,13.8,0,68.2,0,0,0,0,.6931472,0,0,0,0,1,0,0,68.2,9.297229,.6931472,4.499125,1 +11,3,0,1,3,328163,0,10906.75,58.86516,0,11,1,59.29779,16.88773,30.34244,0,0,106.528,0,0,0,4,1,2,81.4,13.8,0,68.2,0,0,0,0,.6931472,0,0,0,0,1,0,0,68.2,9.297229,.6931472,4.668407,1 +11,3,0,1,1,328164,0,10906.75,17.51403,1,11,1,10.30397,2.833591,0,0,0,13.13756,0,0,0,1,0,2,55.9,3.4,0,81.8,0,0,1,1,.6931472,0,0,0,0,0,0,0,81.8,9.297229,.6931472,2.575475,1 +11,3,0,1,2,328164,0,10906.75,18.51403,1,11,1,0,0,0,0,0,0,0,0,0,0,0,2,55.9,3.4,0,81.8,0,0,0,0,.6931472,0,0,0,0,0,0,0,81.8,9.297229,.6931472,,0 +11,3,0,1,3,328164,0,10906.75,19.51403,1,11,1,275.6393,8.39185,0,0,0,284.0312,0,0,0,5,0,2,55.9,3.4,0,81.8,0,0,0,0,.6931472,0,0,0,0,0,0,0,81.8,9.297229,.6931472,5.649084,1 +16,3,95,0,1,328270,0,5283.871,13.01027,0,9,1,5.107252,0,0,0,0,5.107252,0,0,0,1,0,3,70,9.967326,0,66.7,1000,1000,1,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,66.7,8.572603,1.098612,1.630661,1 +16,3,95,0,2,328270,0,5283.871,14.01027,0,9,1,4.688232,0,0,0,0,4.688232,0,0,0,1,0,3,70,9.967326,0,66.7,1000,1000,1,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,66.7,8.572603,1.098612,1.545056,1 +16,3,95,0,3,328270,0,5283.871,15.01027,0,9,1,0,0,0,0,0,0,0,0,0,0,0,3,70,9.967326,0,66.7,1000,1000,1,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,66.7,8.572603,1.098612,,0 +16,3,95,0,1,328271,0,5283.871,15.03354,1,9,1,92.21144,12.1144,0,0,0,104.3258,0,0,0,6,0,3,65.4,6.9,1,42,1000,1000,1,1,1.098612,6.907755,0,4.564348,6.959049,1,0,0,42,8.572603,1.098612,4.647519,1 +16,3,95,0,2,328271,0,5283.871,16.03354,1,9,1,66.10408,2.33474,0,0,0,68.43882,0,0,0,4,0,3,65.4,6.9,1,42,1000,1000,1,1,1.098612,6.907755,0,4.564348,6.959049,1,0,0,42,8.572603,1.098612,4.22594,1 +16,3,95,0,3,328271,0,5283.871,17.03354,1,9,1,96.21668,3.396389,0,0,0,99.61307,0,0,0,2,0,3,65.4,6.9,1,42,1000,1000,1,1,1.098612,6.907755,0,4.564348,6.959049,1,0,0,42,8.572603,1.098612,4.601294,1 +16,3,95,0,1,328272,0,5283.871,41.99863,1,9,1,158.8355,30.87334,0,20.42901,1112.84,1302.548,1,0,4,10,17,3,73.4,24.1,0,56.8,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,1,0,56.8,8.572603,1.098612,7.172078,1 +16,3,95,0,2,328272,0,5283.871,42.99863,1,9,1,35.63057,48.12471,0,0,0,83.75527,0,0,0,2,0,3,73.4,24.1,0,56.8,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,1,0,56.8,8.572603,1.098612,4.427899,1 +16,3,95,0,3,328272,0,5283.871,43.99863,1,9,1,231.5133,60.5761,0,0,1079.359,1371.449,2,0,0,11,5,3,73.4,24.1,0,56.8,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,1,0,56.8,8.572603,1.098612,7.223623,1 +16,3,95,0,1,328273,0,7437.22,22.14921,1,12,1,11.23596,30.2094,0,0,0,41.44535,0,0,0,2,0,1,69.7,6.9,0,69.3,780,780,0,0,0,6.659294,0,4.564348,6.710587,0,0,0,69.3,8.914387,0,3.724376,1 +16,3,95,0,2,328273,0,7437.22,23.14921,1,12,1,79.23113,23.65213,0,0,0,102.8833,0,0,0,6,1,1,69.7,6.9,0,69.3,780,780,0,0,0,6.659294,0,4.564348,6.710587,0,0,0,69.3,8.914387,0,4.633595,1 +16,3,95,0,3,328273,0,7437.22,24.14921,1,12,1,21.49613,36.75838,0,0,0,58.25451,0,0,0,2,1,1,69.7,6.9,0,69.3,780,780,0,0,0,6.659294,0,4.564348,6.710587,0,0,0,69.3,8.914387,0,4.064822,1 +16,3,95,0,1,328274,0,4300.88,19.8193,0,10,1,44.43309,3.064351,0,0,1261.655,1309.152,2,0,0,5,0,1,77.7,6.9,0,71.6,840,0,0,0,0,0,0,4.564348,6.784695,0,0,0,71.6,8.366807,0,7.177135,1 +16,3,95,0,2,328274,0,4300.88,20.8193,0,10,1,86.7323,8.148149,0,0,545.2602,640.1406,1,0,0,12,0,1,77.7,6.9,0,71.6,840,0,0,0,0,0,0,4.564348,6.784695,0,0,0,71.6,8.366807,0,6.461688,1 +16,3,95,0,3,328274,0,4300.88,21.8193,0,10,1,45.14188,2.579536,0,0,0,47.72141,0,0,0,2,0,1,77.7,6.9,0,71.6,840,0,0,0,0,0,0,4.564348,6.784695,0,0,0,71.6,8.366807,0,3.86538,1 +13,3,0,1,1,328291,0,1436.95,19.46064,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,63.8,3.4,0,77.3,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,77.3,7.270974,0,,0 +13,3,0,1,2,328291,0,1436.95,20.46064,1,12,1,0,1.40647,0,0,0,1.40647,0,0,0,0,0,1,63.8,3.4,0,77.3,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,77.3,7.270974,0,.3410828,1 +13,3,0,1,1,328293,0,6015.249,24.69268,0,12,1,21.34831,0,0,0,0,21.34831,0,0,0,1,0,1,58,3.4,0,90.9,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,90.9,8.702219,0,3.060973,1 +13,3,0,1,2,328293,0,6015.249,25.69268,0,12,1,0,.5860291,0,0,0,.5860291,0,0,0,0,0,1,58,3.4,0,90.9,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,90.9,8.702219,0,-.5343859,1 +13,3,0,1,3,328293,0,6015.249,26.69268,0,12,1,30.48151,0,0,0,0,30.48151,0,0,0,2,0,1,58,3.4,0,90.9,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,90.9,8.702219,0,3.41712,1 +13,3,0,1,4,328293,0,6015.249,27.69268,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,58,3.4,0,90.9,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,90.9,8.702219,0,,0 +13,3,0,1,5,328293,0,6015.249,28.69268,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,58,3.4,0,90.9,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,90.9,8.702219,0,,0 +13,3,0,0,1,328298,0,5843.402,61.85079,1,8,1,22.77328,.8856275,0,0,0,23.65891,0,0,0,2,0,1,74.46748,9.967326,.1572505,,150,211.2,0,0,0,5.352806,1,4.564348,5.061929,1,0,0,72.06626,8.67324,0,3.16374,1 +13,3,0,0,2,328298,0,5843.402,62.85079,1,8,1,50.34965,1.445221,0,0,0,51.79487,0,0,0,3,0,1,74.46748,9.967326,.1572505,,150,211.2,0,0,0,5.352806,1,4.564348,5.061929,1,0,0,72.06626,8.67324,0,3.947291,1 +13,3,0,0,3,328298,0,5843.402,63.85079,1,8,1,93.33048,13.83925,0,0,0,107.1697,0,0,0,7,0,1,74.46748,9.967326,.1572505,,150,211.2,0,0,0,5.352806,1,4.564348,5.061929,1,0,0,72.06626,8.67324,0,4.674414,1 +11,3,0,1,1,328311,0,6919.648,55.82751,0,12,1,17.51674,0,44.30706,0,0,61.8238,0,0,0,1,1,2,85.1,6.9,0,78.4,0,249.6,0,0,.6931472,5.51986,0,0,0,1,0,0,78.4,8.842265,.6931472,4.124289,1 +11,3,0,1,2,328311,0,6919.648,56.82751,0,12,1,41.19318,2.414773,21.7803,0,558.3096,623.6979,1,0,0,3,1,2,85.1,6.9,0,78.4,0,249.6,0,0,.6931472,5.51986,0,0,0,1,0,0,78.4,8.842265,.6931472,6.435666,1 +11,3,0,1,3,328311,0,6919.648,57.82751,0,12,1,9.102731,0,33.81014,0,0,42.91287,0,0,0,0,1,2,85.1,6.9,0,78.4,0,249.6,0,0,.6931472,5.51986,0,0,0,1,0,0,78.4,8.842265,.6931472,3.759172,1 +11,3,0,1,1,328312,0,6919.648,51.24709,1,14,1,113.3952,22.72025,42.76146,0,0,178.8769,0,0,0,4,1,2,78.2,13.8,1,37.5,0,249.6,0,0,.6931472,5.51986,0,0,0,0,0,1,37.5,8.842265,.6931472,5.186697,1 +11,3,0,1,2,328312,0,6919.648,52.24709,1,14,1,199.4792,15.19886,0,0,780.1089,994.7869,1,0,0,7,0,2,78.2,13.8,1,37.5,0,249.6,0,0,.6931472,5.51986,0,0,0,0,0,1,37.5,8.842265,.6931472,6.902529,1 +11,3,0,1,3,328312,0,6919.648,53.24709,1,14,1,229.0854,36.84439,40.09536,0,418.1318,724.1569,1,0,0,10,1,2,78.2,13.8,1,37.5,0,249.6,0,0,.6931472,5.51986,0,0,0,0,0,1,37.5,8.842265,.6931472,6.585008,1 +11,3,0,1,1,328313,0,3194.757,13.76044,1,12,1,16.11336,5.288462,0,0,0,21.40182,0,0,0,1,0,4,68.3,9.967326,0,63,0,0,1,1,1.386294,0,0,0,0,0,0,0,63,8.069579,1.386294,3.063476,1 +11,3,0,1,2,328313,0,3194.757,14.76044,1,12,1,9.324009,4.615385,0,0,0,13.93939,0,0,0,0,1,4,68.3,9.967326,0,63,0,0,1,1,1.386294,0,0,0,0,0,0,0,63,8.069579,1.386294,2.634719,1 +11,3,0,1,3,328313,0,3194.757,15.76044,1,12,1,53.44164,7.229585,0,0,0,60.67123,0,0,0,1,9,4,68.3,9.967326,0,63,0,0,1,1,1.386294,0,0,0,0,0,0,0,63,8.069579,1.386294,4.10547,1 +11,3,0,1,4,328313,0,3194.757,16.76044,1,12,1,18.83167,0,19.21599,0,0,38.04766,0,0,0,0,3,4,68.3,9.967326,0,63,0,0,1,1,1.386294,0,0,0,0,0,0,0,63,8.069579,1.386294,3.638839,1 +11,3,0,1,5,328313,0,3194.757,17.76044,1,12,1,288.0927,6.638567,0,0,0,294.7313,0,0,0,2,3,4,68.3,9.967326,0,63,0,0,1,1,1.386294,0,0,0,0,0,0,0,63,8.069579,1.386294,5.686064,1 +11,3,0,1,1,328314,0,3194.757,12.00548,1,12,1,10.12146,2.505061,0,0,0,12.62652,0,0,0,0,1,4,70,9.967326,0,70.4,0,0,1,1,1.386294,0,0,0,0,0,0,0,70.4,8.069579,1.386294,2.535799,1 +11,3,0,1,2,328314,0,3194.757,13.00548,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,70,9.967326,0,70.4,0,0,1,1,1.386294,0,0,0,0,0,0,0,70.4,8.069579,1.386294,,0 +11,3,0,1,3,328314,0,3194.757,14.00548,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,70,9.967326,0,70.4,0,0,1,1,1.386294,0,0,0,0,0,0,0,70.4,8.069579,1.386294,,0 +11,3,0,1,4,328314,0,3194.757,15.00548,1,12,1,9.607994,8.85857,0,0,0,18.46656,0,0,0,1,0,4,70,9.967326,0,70.4,0,0,1,1,1.386294,0,0,0,0,0,0,0,70.4,8.069579,1.386294,2.915962,1 +11,3,0,1,5,328314,0,3194.757,16.00548,1,12,1,102.7397,68.12434,22.83105,0,1142.167,1335.862,1,0,0,3,8,4,70,9.967326,0,70.4,0,0,1,1,1.386294,0,0,0,0,0,0,0,70.4,8.069579,1.386294,7.197332,1 +11,3,0,1,1,328315,0,3194.757,31.67967,1,12,1,36.81174,0,0,0,0,36.81174,0,0,0,1,1,4,74.5,10.3,0,70.5,0,0,0,0,1.386294,0,0,0,0,0,0,0,70.5,8.069579,1.386294,3.605817,1 +11,3,0,1,2,328315,0,3194.757,32.67967,1,12,1,133.7995,21.56177,0,0,0,155.3613,0,0,0,6,0,4,74.5,10.3,0,70.5,0,0,0,0,1.386294,0,0,0,0,0,0,0,70.5,8.069579,1.386294,5.045753,1 +11,3,0,1,3,328315,0,3194.757,33.67967,1,12,1,37.19538,35.33561,0,0,0,72.531,0,0,0,4,0,4,74.5,10.3,0,70.5,0,0,0,0,1.386294,0,0,0,0,0,0,0,70.5,8.069579,1.386294,4.284014,1 +11,3,0,1,4,328315,0,3194.757,34.67967,1,12,1,213.4666,5.726364,6.533436,0,0,225.7264,0,0,0,7,17,4,74.5,10.3,0,70.5,0,0,0,0,1.386294,0,0,0,0,0,0,0,70.5,8.069579,1.386294,5.419323,1 +11,3,0,1,5,328315,0,3194.757,35.67967,1,12,1,135.0544,4.137689,0,0,0,139.1921,0,0,0,5,9,4,74.5,10.3,0,70.5,0,0,0,0,1.386294,0,0,0,0,0,0,0,70.5,8.069579,1.386294,4.935855,1 +11,3,0,1,1,328316,0,3194.757,7.112936,0,12,1,150.8097,46.10324,0,0,349.8229,546.7358,1,0,0,7,0,4,80,9.967326,0,40.7,0,0,1,0,1.386294,0,0,0,0,1,0,0,40.7,8.069579,1.386294,6.303966,1 +11,3,0,1,2,328316,0,3194.757,8.112936,0,12,1,91.84149,22.72727,0,0,0,114.5688,0,0,0,6,0,4,80,9.967326,0,40.7,0,0,1,0,1.386294,0,0,0,0,1,0,0,40.7,8.069579,1.386294,4.741175,1 +11,3,0,1,3,328316,0,3194.757,9.112936,0,12,1,155.9213,32.9628,0,0,0,188.8841,0,0,0,31,2,4,80,9.967326,0,40.7,0,0,1,0,1.386294,0,0,0,0,1,0,0,40.7,8.069579,1.386294,5.241134,1 +11,3,0,1,4,328316,0,3194.757,10.11294,0,12,1,1.921599,0,0,0,0,1.921599,0,0,0,0,0,4,80,9.967326,0,40.7,0,0,1,0,1.386294,0,0,0,0,1,0,0,40.7,8.069579,1.386294,.6531575,1 +11,3,0,1,5,328316,0,3194.757,11.11294,0,12,1,36.19248,0,18.96733,0,0,55.15982,0,0,0,1,1,4,80,9.967326,0,40.7,0,0,1,0,1.386294,0,0,0,0,1,0,0,40.7,8.069579,1.386294,4.010235,1 +13,3,0,1,1,328333,1,9795.895,24.94182,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,69.1,3.4,0,58,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,58,9.18982,1.098612,,0 +13,3,0,1,2,328333,1,9795.895,25.94182,0,12,1,28.67133,2.097902,0,0,0,30.76923,0,0,0,2,0,3,69.1,3.4,0,58,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,58,9.18982,1.098612,3.426515,1 +13,3,0,1,3,328333,1,9795.895,26.94182,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,69.1,3.4,0,58,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,58,9.18982,1.098612,,0 +13,3,0,1,1,328334,1,9795.895,3.868583,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,83.39137,9.967326,0,55.6,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,0,0,0,55.6,9.18982,1.098612,,0 +13,3,0,1,2,328334,1,9795.895,4.868583,1,12,1,13.98601,.2331002,0,0,0,14.21911,0,0,0,1,0,3,83.39137,9.967326,0,55.6,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,0,0,0,55.6,9.18982,1.098612,2.654587,1 +13,3,0,1,3,328334,1,9795.895,5.868583,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,83.39137,9.967326,0,55.6,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,0,0,0,55.6,9.18982,1.098612,,0 +13,3,0,1,1,328335,1,9795.895,19.31828,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,71.3,0,0,73.8,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,73.8,9.18982,1.098612,,0 +13,3,0,1,2,328335,1,9795.895,20.31828,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,71.3,0,0,73.8,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,73.8,9.18982,1.098612,,0 +13,3,0,1,3,328335,1,9795.895,21.31828,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,71.3,0,0,73.8,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,73.8,9.18982,1.098612,,0 +11,3,0,1,1,328336,0,5317.302,50.72142,1,11,1,31.52834,1.3917,37.70243,0,0,70.62247,0,0,0,3,1,1,71.8,13.8,0,73.9,0,0,0,0,0,0,0,0,0,1,0,0,73.9,8.57891,0,4.257349,1 +11,3,0,1,2,328336,0,5317.302,51.72142,1,11,1,153.986,4.289044,0,0,0,158.2751,0,0,0,6,0,1,71.8,13.8,0,73.9,0,0,0,0,0,0,0,0,0,1,0,0,73.9,8.57891,0,5.064334,1 +11,3,0,1,3,328336,0,5317.302,52.72142,1,11,1,47.49893,3.933305,33.34758,0,0,84.77982,0,0,0,5,0,1,71.8,13.8,0,73.9,0,0,0,0,0,0,0,0,0,1,0,0,73.9,8.57891,0,4.440058,1 +11,3,0,1,1,328337,0,1365.396,23.74264,0,14,1,28.34008,0,26.31579,0,0,54.65587,0,0,0,2,1,1,62.8,10.3,0,70.5,0,0,0,0,0,0,0,0,0,0,0,0,70.5,7.219932,0,4.001057,1 +11,3,0,1,2,328337,0,1365.396,24.74264,0,14,1,25.64103,0,0,0,0,25.64103,0,0,0,1,0,1,62.8,10.3,0,70.5,0,0,0,0,0,0,0,0,0,0,0,0,70.5,7.219932,0,3.244194,1 +11,3,0,1,3,328337,0,1365.396,25.74264,0,14,1,23.51432,0,23.51432,0,0,47.02864,0,0,0,2,1,1,62.8,10.3,0,70.5,0,0,0,0,0,0,0,0,0,0,0,0,70.5,7.219932,0,3.850757,1 +11,3,0,1,1,328338,0,2696.774,22.61191,0,13,1,11.1336,1.3917,0,0,0,12.5253,0,0,0,2,0,1,60.6,3.4,0,81.8,0,154.56,0,0,0,5.040582,0,0,0,0,0,0,81.8,7.900182,0,2.527751,1 +11,3,0,1,2,328338,0,2696.774,23.61191,0,13,1,37.669,2.284382,0,0,0,39.95338,0,0,0,2,0,1,60.6,3.4,0,81.8,0,154.56,0,0,0,5.040582,0,0,0,0,0,0,81.8,7.900182,0,3.687713,1 +11,3,0,1,3,328338,0,2696.774,24.61191,0,13,1,1003.403,12.22745,0,0,9326.302,10341.93,1,0,0,8,32,1,60.6,3.4,0,81.8,0,154.56,0,0,0,5.040582,0,0,0,0,0,0,81.8,7.900182,0,9.243962,1 +11,3,0,1,1,328342,0,10842.23,2.8282,0,12,1,13.78958,0,0,0,0,13.78958,0,0,0,1,0,5,83.39137,9.967326,0,25.9,0,232.8,1,0,1.609438,5.45018,0,0,0,1,0,0,25.9,9.291296,1.609438,2.623913,1 +11,3,0,1,2,328342,0,10842.23,3.8282,0,12,1,17.81528,0,0,0,0,17.81528,0,0,0,2,0,5,83.39137,9.967326,0,25.9,0,232.8,1,0,1.609438,5.45018,0,0,0,1,0,0,25.9,9.291296,1.609438,2.880057,1 +11,3,0,1,3,328342,0,10842.23,4.8282,0,12,1,18.70163,0,0,0,0,18.70163,0,0,0,2,0,5,83.39137,9.967326,0,25.9,0,232.8,1,0,1.609438,5.45018,0,0,0,1,0,0,25.9,9.291296,1.609438,2.928611,1 +11,3,0,1,4,328342,0,10842.23,5.8282,0,12,1,22.48934,0,0,0,0,22.48934,0,0,0,2,0,5,83.39137,9.967326,0,25.9,0,232.8,1,0,1.609438,5.45018,0,0,0,1,0,0,25.9,9.291296,1.609438,3.113041,1 +11,3,0,1,5,328342,0,10842.23,6.8282,0,12,1,23.35456,0,0,0,0,23.35456,0,0,0,3,0,5,83.39137,9.967326,0,25.9,0,232.8,1,0,1.609438,5.45018,0,0,0,1,0,0,25.9,9.291296,1.609438,3.150792,1 +11,3,0,1,1,328343,0,10842.23,7.186858,1,12,1,6.128703,0,0,0,0,6.128703,0,0,0,1,0,5,78.3,9.967326,0,66.7,0,232.8,1,1,1.609438,5.45018,0,0,0,1,0,0,66.7,9.291296,1.609438,1.812983,1 +11,3,0,1,2,328343,0,10842.23,8.186858,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,78.3,9.967326,0,66.7,0,232.8,1,1,1.609438,5.45018,0,0,0,1,0,0,66.7,9.291296,1.609438,,0 +11,3,0,1,3,328343,0,10842.23,9.186858,1,12,1,5.588994,0,0,0,0,5.588994,0,0,0,1,0,5,78.3,9.967326,0,66.7,0,232.8,1,1,1.609438,5.45018,0,0,0,1,0,0,66.7,9.291296,1.609438,1.720799,1 +11,3,0,1,4,328343,0,10842.23,10.18686,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,78.3,9.967326,0,66.7,0,232.8,1,1,1.609438,5.45018,0,0,0,1,0,0,66.7,9.291296,1.609438,,0 +11,3,0,1,5,328343,0,10842.23,11.18686,1,12,1,18.04671,0,0,0,0,18.04671,0,0,0,2,0,5,78.3,9.967326,0,66.7,0,232.8,1,1,1.609438,5.45018,0,0,0,1,0,0,66.7,9.291296,1.609438,2.892963,1 +11,3,0,1,1,328344,0,10842.23,11.47433,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,73.3,9.967326,0,81.5,0,232.8,1,1,1.609438,5.45018,0,0,0,0,0,0,81.5,9.291296,1.609438,,0 +11,3,0,1,2,328344,0,10842.23,12.47433,1,12,1,6.094702,0,0,0,0,6.094702,0,0,0,1,0,5,73.3,9.967326,0,81.5,0,232.8,1,1,1.609438,5.45018,0,0,0,0,0,0,81.5,9.291296,1.609438,1.80742,1 +11,3,0,1,3,328344,0,10842.23,13.47433,1,12,1,0,1.543422,0,0,0,1.543422,0,0,0,0,0,5,73.3,9.967326,0,81.5,0,232.8,1,1,1.609438,5.45018,0,0,0,0,0,0,81.5,9.291296,1.609438,.4340022,1 +11,3,0,1,4,328344,0,10842.23,14.47433,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,73.3,9.967326,0,81.5,0,232.8,1,1,1.609438,5.45018,0,0,0,0,0,0,81.5,9.291296,1.609438,,0 +11,3,0,1,5,328344,0,10842.23,15.47433,1,12,1,25.47771,0,0,0,0,25.47771,0,0,0,2,1,5,73.3,9.967326,0,81.5,0,232.8,1,1,1.609438,5.45018,0,0,0,0,0,0,81.5,9.291296,1.609438,3.237804,1 +11,3,0,1,1,328345,0,10842.23,32.47639,1,12,1,248.4934,38.91726,9.228805,0,952.5996,1249.239,1,0,0,5,22,5,67,6.9,0,71.6,0,232.8,0,0,1.609438,5.45018,0,0,0,1,0,0,71.6,9.291296,1.609438,7.13029,1 +11,3,0,1,2,328345,0,10842.23,33.47639,1,12,1,27.19175,14.43976,0,248.4763,0,41.6315,0,0,23,1,0,5,67,6.9,0,71.6,0,232.8,0,0,1.609438,5.45018,0,0,0,1,0,0,71.6,9.291296,1.609438,3.728857,1 +11,3,0,1,3,328345,0,10842.23,34.47639,1,12,1,42.13242,8.022356,0,0,671.1307,721.2855,1,0,0,3,0,5,67,6.9,0,71.6,0,232.8,0,0,1.609438,5.45018,0,0,0,1,0,0,71.6,9.291296,1.609438,6.581035,1 +11,3,0,1,4,328345,0,10842.23,35.47639,1,12,1,176.076,11.63242,0,0,0,187.7084,0,0,0,7,0,5,67,6.9,0,71.6,0,232.8,0,0,1.609438,5.45018,0,0,0,1,0,0,71.6,9.291296,1.609438,5.23489,1 +11,3,0,1,5,328345,0,10842.23,36.47639,1,12,1,20.77141,0,0,0,0,20.77141,0,0,0,1,1,5,67,6.9,0,71.6,0,232.8,0,0,1.609438,5.45018,0,0,0,1,0,0,71.6,9.291296,1.609438,3.033577,1 +11,3,0,1,1,328346,0,10842.23,33.57974,0,13,1,22.98264,15.32176,0,0,0,38.30439,0,0,0,3,0,5,77.1,3.4,0,72.7,0,232.8,0,0,1.609438,5.45018,0,0,0,1,0,0,72.7,9.291296,1.609438,3.645565,1 +11,3,0,1,2,328346,0,10842.23,34.57974,0,13,1,1.40647,0,0,0,0,1.40647,0,0,0,0,0,5,77.1,3.4,0,72.7,0,232.8,0,0,1.609438,5.45018,0,0,0,1,0,0,72.7,9.291296,1.609438,.3410828,1 +11,3,0,1,3,328346,0,10842.23,35.57974,0,13,1,15.99312,0,0,0,0,15.99312,0,0,0,1,0,5,77.1,3.4,0,72.7,0,232.8,0,0,1.609438,5.45018,0,0,0,1,0,0,72.7,9.291296,1.609438,2.772159,1 +11,3,0,1,4,328346,0,10842.23,36.57974,0,13,1,274.6026,0,0,0,0,274.6026,0,0,0,3,0,5,77.1,3.4,0,72.7,0,232.8,0,0,1.609438,5.45018,0,0,0,1,0,0,72.7,9.291296,1.609438,5.615325,1 +11,3,0,1,5,328346,0,10842.23,37.57974,0,13,1,0,0,0,0,0,0,0,0,0,0,0,5,77.1,3.4,0,72.7,0,232.8,0,0,1.609438,5.45018,0,0,0,1,0,0,72.7,9.291296,1.609438,,0 +10,3,50,0,1,328371,0,8086.217,10.07803,1,6,1,0,0,0,0,0,0,0,0,0,0,0,5,95,9.967326,0,100,1000,1000,1,1,1.609438,6.907755,0,3.931826,7.600903,0,0,0,100,8.99804,1.609438,,0 +10,3,50,0,2,328371,0,8086.217,11.07803,1,6,1,147.2105,7.712142,0,0,0,154.9226,0,0,0,5,0,5,95,9.967326,0,100,1000,1000,1,1,1.609438,6.907755,0,3.931826,7.600903,0,0,0,100,8.99804,1.609438,5.042926,1 +10,3,50,0,3,328371,0,8086.217,12.07803,1,6,1,10.31814,7.953568,0,0,0,18.27171,0,0,0,2,0,5,95,9.967326,0,100,1000,1000,1,1,1.609438,6.907755,0,3.931826,7.600903,0,0,0,100,8.99804,1.609438,2.905354,1 +10,3,50,0,4,328371,0,8086.217,13.07803,1,6,1,0,2.985653,0,0,0,2.985653,0,0,0,0,0,5,95,9.967326,0,100,1000,1000,1,1,1.609438,6.907755,0,3.931826,7.600903,0,0,0,100,8.99804,1.609438,1.093819,1 +10,3,50,0,5,328371,0,8086.217,14.07803,1,6,1,58.9172,16.18542,.5803255,0,0,75.68295,0,0,0,4,0,5,95,9.967326,0,100,1000,1000,1,1,1.609438,6.907755,0,3.931826,7.600903,0,0,0,100,8.99804,1.609438,4.326553,1 +10,3,50,0,1,328372,0,8086.217,7.789186,0,6,1,27.06844,0,0,0,0,27.06844,0,0,0,2,0,5,100,9.967326,0,100,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,100,8.99804,1.609438,3.298368,1 +10,3,50,0,2,328372,0,8086.217,8.789186,0,6,1,0,0,0,0,0,0,0,0,0,0,0,5,100,9.967326,0,100,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,100,8.99804,1.609438,,0 +10,3,50,0,3,328372,0,8086.217,9.789186,0,6,1,58.3405,0,0,0,0,58.3405,0,0,0,1,0,5,100,9.967326,0,100,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,100,8.99804,1.609438,4.066297,1 +10,3,50,0,4,328372,0,8086.217,10.78919,0,6,1,0,0,0,0,0,0,0,0,0,0,0,5,100,9.967326,0,100,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,100,8.99804,1.609438,,0 +10,3,50,0,5,328372,0,8086.217,11.78919,0,6,1,0,0,0,0,0,0,0,0,0,0,0,5,100,9.967326,0,100,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,100,8.99804,1.609438,,0 +10,3,50,0,1,328373,0,8086.217,11.44695,0,6,1,0,0,0,0,0,0,0,0,0,0,0,5,100,9.967326,0,100,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,100,8.99804,1.609438,,0 +10,3,50,0,2,328373,0,8086.217,12.44695,0,6,1,0,0,0,0,0,0,0,0,0,0,0,5,100,9.967326,0,100,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,100,8.99804,1.609438,,0 +10,3,50,0,3,328373,0,8086.217,13.44695,0,6,1,14.61737,3.095443,0,0,0,17.71281,0,0,0,1,0,5,100,9.967326,0,100,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,100,8.99804,1.609438,2.874288,1 +10,3,50,0,4,328373,0,8086.217,14.44695,0,6,1,0,0,0,0,0,0,0,0,0,0,0,5,100,9.967326,0,100,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,100,8.99804,1.609438,,0 +10,3,50,0,5,328373,0,8086.217,15.44695,0,6,1,29.90092,0,.9483369,0,0,30.84926,0,0,0,1,0,5,100,9.967326,0,100,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,100,8.99804,1.609438,3.429113,1 +10,3,50,0,1,328374,0,8086.217,48.21082,1,6,1,187.2829,13.68744,33.19714,0,0,234.1675,0,0,0,6,1,5,83.5,3.4,0,84.1,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,84.1,8.99804,1.609438,5.456037,1 +10,3,50,0,2,328374,0,8086.217,49.21082,1,6,1,0,0,0,0,0,0,0,0,0,0,0,5,83.5,3.4,0,84.1,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,84.1,8.99804,1.609438,,0 +10,3,50,0,3,328374,0,8086.217,50.21082,1,6,1,14.61737,2.622528,0,0,0,17.2399,0,0,0,1,0,5,83.5,3.4,0,84.1,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,84.1,8.99804,1.609438,2.847226,1 +10,3,50,0,4,328374,0,8086.217,51.21082,1,6,1,173.6409,6.397829,0,0,0,180.0388,0,0,0,6,1,5,83.5,3.4,0,84.1,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,84.1,8.99804,1.609438,5.193172,1 +10,3,50,0,5,328374,0,8086.217,52.21082,1,6,1,9.907997,11.07219,0,0,0,20.98018,0,0,0,1,0,5,83.5,3.4,0,84.1,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,84.1,8.99804,1.609438,3.043578,1 +10,3,50,0,1,328375,0,8086.217,49.25667,0,12,1,15.32176,0,0,0,0,15.32176,0,0,0,1,0,5,91.5,3.4,0,90.9,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,90.9,8.99804,1.609438,2.729274,1 +10,3,50,0,2,328375,0,8086.217,50.25667,0,12,1,11.72058,0,16.40881,0,0,28.12939,0,0,0,0,1,5,91.5,3.4,0,90.9,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,90.9,8.99804,1.609438,3.336815,1 +10,3,50,0,3,328375,0,8086.217,51.25667,0,12,1,24.93551,2.923474,0,0,0,27.85899,0,0,0,1,0,5,91.5,3.4,0,90.9,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,90.9,8.99804,1.609438,3.327156,1 +10,3,50,0,4,328375,0,8086.217,52.25667,0,12,1,42.45832,8.918185,0,0,0,51.3765,0,0,0,2,0,5,91.5,3.4,0,90.9,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,90.9,8.99804,1.609438,3.939181,1 +10,3,50,0,5,328375,0,8086.217,53.25667,0,12,1,26.89314,49.74522,10.04246,0,0,86.68082,0,0,0,2,1,5,91.5,3.4,0,90.9,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,90.9,8.99804,1.609438,4.462233,1 +10,3,50,0,1,328376,0,3478.006,22.85284,1,13,1,44.94382,6.179775,25.53626,0,0,76.65986,0,0,0,2,1,1,56.9,0,0,89.8,825,725,0,0,0,6.586172,0,3.931826,7.408531,0,0,0,89.8,8.154502,0,4.339378,1 +10,3,50,0,2,328376,0,3478.006,23.85284,1,13,1,113.924,1.781528,0,0,0,115.7056,0,0,0,6,0,1,56.9,0,0,89.8,825,725,0,0,0,6.586172,0,3.931826,7.408531,0,0,0,89.8,8.154502,0,4.751049,1 +10,3,50,0,3,328376,0,3478.006,24.85284,1,13,1,156.9991,4.849527,19.34652,0,2405.258,2586.453,1,0,0,6,0,1,56.9,0,0,89.8,825,725,0,0,0,6.586172,0,3.931826,7.408531,0,0,0,89.8,8.154502,0,7.858043,1 +10,3,50,0,4,328376,0,3478.006,25.85284,1,13,1,326.8709,26.32028,0,0,0,353.1912,0,0,0,6,0,1,56.9,0,0,89.8,825,725,0,0,0,6.586172,0,3.931826,7.408531,0,0,0,89.8,8.154502,0,5.86701,1 +10,3,50,0,5,328376,0,3478.006,26.85284,1,13,1,24.85846,9.076433,0,0,0,33.93489,0,0,0,1,0,1,56.9,0,0,89.8,825,725,0,0,0,6.586172,0,3.931826,7.408531,0,0,0,89.8,8.154502,0,3.524444,1 +15,3,95,1,1,328410,0,2860.411,23.4935,1,16,1,10.12146,0,22.77328,0,0,32.89474,0,0,0,0,1,1,74.5,17.2,0,83,190,190,0,0,0,5.247024,0,4.564348,5.298317,0,0,0,83,7.95907,0,3.493313,1 +14,3,95,1,1,328416,0,7196.79,37.29227,0,12,1,9.27357,24.52344,0,0,0,33.79701,0,0,0,2,0,6,69.1,20.7,1,77.3,725.15,725.15,0,0,1.791759,6.586379,0,4.564348,6.637672,0,0,0,77.3,8.881529,1.791759,3.520372,1 +14,3,95,1,2,328416,0,7196.79,38.29227,0,12,1,0,9.943182,0,0,0,9.943182,0,0,0,0,0,6,69.1,20.7,1,77.3,725.15,725.15,0,0,1.791759,6.586379,0,4.564348,6.637672,0,0,0,77.3,8.881529,1.791759,2.296887,1 +14,3,95,1,3,328416,0,7196.79,39.29227,0,12,1,0,11.29172,0,25.57434,0,11.29172,0,0,4,0,0,6,69.1,20.7,1,77.3,725.15,725.15,0,0,1.791759,6.586379,0,4.564348,6.637672,0,0,0,77.3,8.881529,1.791759,2.42407,1 +14,3,95,1,1,328417,0,7196.79,14.59548,1,12,1,2.575992,0,0,0,0,2.575992,0,0,0,0,0,6,47.9,6.9,0,72.7,725.15,725.15,1,1,1.791759,6.586379,0,4.564348,6.637672,0,0,0,72.7,8.881529,1.791759,.9462346,1 +14,3,95,1,2,328417,0,7196.79,15.59548,1,12,1,85.70076,4.214015,11.83712,0,0,101.7519,0,0,0,3,1,6,47.9,6.9,0,72.7,725.15,725.15,1,1,1.791759,6.586379,0,4.564348,6.637672,0,0,0,72.7,8.881529,1.791759,4.622538,1 +14,3,95,1,3,328417,0,7196.79,16.59548,1,12,1,0,3.034244,20.78457,0,0,23.81881,0,0,0,0,0,6,47.9,6.9,0,72.7,725.15,725.15,1,1,1.791759,6.586379,0,4.564348,6.637672,0,0,0,72.7,8.881529,1.791759,3.170476,1 +14,3,95,1,1,328418,0,7196.79,8.826831,1,12,1,1.545595,0,0,0,0,1.545595,0,0,0,0,0,6,81.7,9.967326,0,66.7,725.15,725.15,1,1,1.791759,6.586379,0,4.564348,6.637672,1,0,0,66.7,8.881529,1.791759,.435409,1 +14,3,95,1,2,328418,0,7196.79,9.826831,1,12,1,0,1.302083,0,0,0,1.302083,0,0,0,0,0,6,81.7,9.967326,0,66.7,725.15,725.15,1,1,1.791759,6.586379,0,4.564348,6.637672,1,0,0,66.7,8.881529,1.791759,.2639656,1 +14,3,95,1,3,328418,0,7196.79,10.82683,1,12,1,19.93932,0,0,0,0,19.93932,0,0,0,2,1,6,81.7,9.967326,0,66.7,725.15,725.15,1,1,1.791759,6.586379,0,4.564348,6.637672,1,0,0,66.7,8.881529,1.791759,2.992693,1 +14,3,95,1,1,328419,0,7196.79,12.73101,1,12,1,10.30397,0,23.69912,0,0,34.00309,0,0,0,0,1,6,88.3,9.967326,0,96.3,725.15,725.15,1,1,1.791759,6.586379,0,4.564348,6.637672,0,0,0,96.3,8.881529,1.791759,3.526451,1 +14,3,95,1,2,328419,0,7196.79,13.73101,1,12,1,62.5947,1.515152,10.89015,0,0,75,0,0,0,4,1,6,88.3,9.967326,0,96.3,725.15,725.15,1,1,1.791759,6.586379,0,4.564348,6.637672,0,0,0,96.3,8.881529,1.791759,4.317488,1 +14,3,95,1,3,328419,0,7196.79,14.73101,1,12,1,17.33854,0,0,74.98917,0,17.33854,0,0,6,1,1,6,88.3,9.967326,0,96.3,725.15,725.15,1,1,1.791759,6.586379,0,4.564348,6.637672,0,0,0,96.3,8.881529,1.791759,2.852931,1 +14,3,95,1,1,328420,0,7196.79,33.46201,1,12,1,0,5.358063,0,0,0,5.358063,0,0,0,0,0,6,72.9,3.4,0,80.7,725.15,725.15,0,0,1.791759,6.586379,0,4.564348,6.637672,0,0,0,80.7,8.881529,1.791759,1.678602,1 +14,3,95,1,2,328420,0,7196.79,34.46201,1,12,1,99.47916,4.711174,0,0,0,104.1903,0,0,0,5,0,6,72.9,3.4,0,80.7,725.15,725.15,0,0,1.791759,6.586379,0,4.564348,6.637672,0,0,0,80.7,8.881529,1.791759,4.646219,1 +14,3,95,1,3,328420,0,7196.79,35.46201,1,12,1,12.83052,2.904205,0,25.14087,0,15.73472,0,0,4,1,0,6,72.9,3.4,0,80.7,725.15,725.15,0,0,1.791759,6.586379,0,4.564348,6.637672,0,0,0,80.7,8.881529,1.791759,2.75587,1 +14,3,95,1,1,328421,0,7196.79,7.088295,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,81.7,9.967326,0,66.7,725.15,725.15,1,0,1.791759,6.586379,0,4.564348,6.637672,0,0,0,66.7,8.881529,1.791759,,0 +14,3,95,1,2,328421,0,7196.79,8.088296,0,12,1,10.89015,1.870265,0,0,0,12.76042,0,0,0,3,0,6,81.7,9.967326,0,66.7,725.15,725.15,1,0,1.791759,6.586379,0,4.564348,6.637672,0,0,0,66.7,8.881529,1.791759,2.546348,1 +14,3,95,1,3,328421,0,7196.79,9.088296,0,12,1,2.384048,1.885566,0,0,0,4.269614,0,0,0,0,0,6,81.7,9.967326,0,66.7,725.15,725.15,1,0,1.791759,6.586379,0,4.564348,6.637672,0,0,0,66.7,8.881529,1.791759,1.451523,1 +11,3,0,0,1,328457,0,8923.167,49.11157,1,12,1,261.3892,1.659857,44.43309,0,0,307.4821,0,0,0,2,1,2,87.2,3.4,0,78.4,0,290.64,0,0,.6931472,5.672085,0,0,0,0,0,0,78.4,9.096519,.6931472,5.728417,1 +11,3,0,0,2,328457,0,8923.167,50.11157,1,12,1,432.9958,0,0,0,0,432.9958,0,0,0,3,0,2,87.2,3.4,0,78.4,0,290.64,0,0,.6931472,5.672085,0,0,0,0,0,0,78.4,9.096519,.6931472,6.070728,1 +11,3,0,0,3,328457,0,8923.167,51.11157,1,12,1,27.81599,10.23216,30.09458,0,0,68.14273,0,0,0,1,1,2,87.2,3.4,0,78.4,0,290.64,0,0,.6931472,5.672085,0,0,0,0,0,0,78.4,9.096519,.6931472,4.221604,1 +11,3,0,0,1,328458,0,8923.167,49.19644,0,12,1,85.54648,6.869254,43.41164,0,0,135.8274,0,0,0,2,8,2,92,3.4,0,78.4,0,290.64,0,0,.6931472,5.672085,0,0,0,0,0,0,78.4,9.096519,.6931472,4.911385,1 +11,3,0,0,2,328458,0,8923.167,50.19644,0,12,1,0,3.984998,0,0,0,3.984998,0,0,0,0,0,2,92,3.4,0,78.4,0,290.64,0,0,.6931472,5.672085,0,0,0,0,0,0,78.4,9.096519,.6931472,1.382537,1 +11,3,0,0,3,328458,0,8923.167,51.19644,0,12,1,15.04729,5.782459,37.40327,0,566.9604,625.1935,1,0,0,1,1,2,92,3.4,0,78.4,0,290.64,0,0,.6931472,5.672085,0,0,0,0,0,0,78.4,9.096519,.6931472,6.438061,1 +18,3,25,1,1,328466,0,5432.258,11.04449,1,13,1,14.17004,1.67004,23.27935,0,0,39.11943,0,0,0,1,1,4,88.3,9.967326,0,77.8,460,460,1,1,1.386294,6.131227,0,3.258096,7.517521,0,0,0,77.8,8.600294,1.386294,3.666619,1 +18,3,25,1,2,328466,0,5432.258,12.04449,1,13,1,35.89743,1.818182,11.65501,0,0,49.37063,0,0,0,4,1,4,88.3,9.967326,0,77.8,460,460,1,1,1.386294,6.131227,0,3.258096,7.517521,0,0,0,77.8,8.600294,1.386294,3.899356,1 +18,3,25,1,3,328466,0,5432.258,13.04449,1,13,1,28.30269,10.21804,0,0,0,38.52074,0,0,0,1,0,4,88.3,9.967326,0,77.8,460,460,1,1,1.386294,6.131227,0,3.258096,7.517521,0,0,0,77.8,8.600294,1.386294,3.651197,1 +18,3,25,1,4,328466,0,5432.258,14.04449,1,13,1,32.28286,5.918524,0,0,515.7802,553.9816,1,0,0,3,1,4,88.3,9.967326,0,77.8,460,460,1,1,1.386294,6.131227,0,3.258096,7.517521,0,0,0,77.8,8.600294,1.386294,6.317132,1 +18,3,25,1,5,328466,0,5432.258,15.04449,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,88.3,9.967326,0,77.8,460,460,1,1,1.386294,6.131227,0,3.258096,7.517521,0,0,0,77.8,8.600294,1.386294,,0 +18,3,25,1,1,328467,0,5432.258,29.37166,1,13,1,31.62955,5.050607,30.36437,0,0,67.04453,0,0,0,1,1,4,87.2,37.9,0,64.8,460,460,0,0,1.386294,6.131227,0,3.258096,7.517521,1,0,0,64.8,8.600294,1.386294,4.205357,1 +18,3,25,1,2,328467,0,5432.258,30.37166,1,13,1,131.7016,1.445221,0,0,682.387,815.5338,1,0,0,6,0,4,87.2,37.9,0,64.8,460,460,0,0,1.386294,6.131227,0,3.258096,7.517521,1,0,0,64.8,8.600294,1.386294,6.703843,1 +18,3,25,1,3,328467,0,5432.258,31.37166,1,13,1,20.94912,.748183,24.36939,0,0,46.0667,0,0,0,1,1,4,87.2,37.9,0,64.8,460,460,0,0,1.386294,6.131227,0,3.258096,7.517521,1,0,0,64.8,8.600294,1.386294,3.83009,1 +18,3,25,1,4,328467,0,5432.258,32.37166,1,13,1,149.1161,4.907763,12.92852,0,0,166.9523,0,0,0,6,1,4,87.2,37.9,0,64.8,460,460,0,0,1.386294,6.131227,0,3.258096,7.517521,1,0,0,64.8,8.600294,1.386294,5.117708,1 +18,3,25,1,5,328467,0,5432.258,33.37166,1,13,1,16.50861,0,0,0,0,16.50861,0,0,0,2,0,4,87.2,37.9,0,64.8,460,460,0,0,1.386294,6.131227,0,3.258096,7.517521,1,0,0,64.8,8.600294,1.386294,2.803882,1 +18,3,25,1,1,328468,0,5432.258,10.06434,1,13,1,9.109312,0,24.79757,0,0,33.90688,0,0,0,0,1,4,95,9.967326,0,22.2,460,460,1,1,1.386294,6.131227,0,3.258096,7.517521,0,0,0,22.2,8.600294,1.386294,3.523618,1 +18,3,25,1,2,328468,0,5432.258,11.06434,1,13,1,27.03963,1.818182,0,0,0,28.85781,0,0,0,4,0,4,95,9.967326,0,22.2,460,460,1,1,1.386294,6.131227,0,3.258096,7.517521,0,0,0,22.2,8.600294,1.386294,3.362381,1 +18,3,25,1,3,328468,0,5432.258,12.06434,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,95,9.967326,0,22.2,460,460,1,1,1.386294,6.131227,0,3.258096,7.517521,0,0,0,22.2,8.600294,1.386294,,0 +18,3,25,1,4,328468,0,5432.258,13.06434,1,13,1,9.223674,0,14.98847,0,0,24.21214,0,0,0,0,1,4,95,9.967326,0,22.2,460,460,1,1,1.386294,6.131227,0,3.258096,7.517521,0,0,0,22.2,8.600294,1.386294,3.186854,1 +18,3,25,1,5,328468,0,5432.258,14.06434,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,95,9.967326,0,22.2,460,460,1,1,1.386294,6.131227,0,3.258096,7.517521,0,0,0,22.2,8.600294,1.386294,,0 +18,3,25,1,1,328469,0,5432.258,41.06503,0,8,1,56.57895,19.67611,24.79757,0,0,101.0526,0,0,0,1,1,4,93.1,6.9,0,71.6,460,460,0,0,1.386294,6.131227,0,3.258096,7.517521,1,0,0,71.6,8.600294,1.386294,4.615642,1 +18,3,25,1,2,328469,0,5432.258,42.06503,0,8,1,22.84382,.941725,0,0,782.3264,806.1119,2,0,0,2,0,4,93.1,6.9,0,71.6,460,460,0,0,1.386294,6.131227,0,3.258096,7.517521,1,0,0,71.6,8.600294,1.386294,6.692223,1 +18,3,25,1,3,328469,0,5432.258,43.06503,0,8,1,0,5.989739,0,0,2105.81,2111.8,5,0,0,0,0,4,93.1,6.9,0,71.6,460,460,0,0,1.386294,6.131227,0,3.258096,7.517521,1,0,0,71.6,8.600294,1.386294,7.655296,1 +18,3,25,1,4,328469,0,5432.258,44.06503,0,8,1,0,1.6103,0,0,3115.68,3117.291,5,0,0,0,0,4,93.1,6.9,0,71.6,460,460,0,0,1.386294,6.131227,0,3.258096,7.517521,1,0,0,71.6,8.600294,1.386294,8.04472,1 +18,3,25,1,5,328469,0,5432.258,45.06503,0,8,1,0,0,0,0,1179.459,1179.459,1,0,0,0,0,4,93.1,6.9,0,71.6,460,460,0,0,1.386294,6.131227,0,3.258096,7.517521,1,0,0,71.6,8.600294,1.386294,7.072811,1 +11,3,0,1,3,328471,0,11356.01,56.98973,1,,1,15.17122,1.885566,32.94321,0,0,50,0,0,0,2,0,1,89.9,20.7,0,68.2,,,0,0,0,0,0,0,0,0,0,0,68.2,9.33759,0,3.912023,1 +14,3,95,1,1,328475,0,3659.238,49.84258,1,8,1,10.12146,0,34.41296,0,0,44.53441,0,0,0,1,0,2,83.5,3.4,0,72.7,175,175,0,0,.6931472,5.164786,0,4.564348,5.216079,0,0,0,72.7,8.205283,.6931472,3.796262,1 +14,3,95,1,2,328475,0,3659.238,50.84258,1,8,1,193.007,18.67133,.4662005,0,689.5571,901.7017,2,0,0,10,0,2,83.5,3.4,0,72.7,175,175,0,0,.6931472,5.164786,0,4.564348,5.216079,0,0,0,72.7,8.205283,.6931472,6.804284,1 +14,3,95,1,3,328475,0,3659.238,51.84258,1,8,1,11.97093,3.805045,0,0,0,15.77597,0,0,0,2,0,2,83.5,3.4,0,72.7,175,175,0,0,.6931472,5.164786,0,4.564348,5.216079,0,0,0,72.7,8.205283,.6931472,2.758488,1 +14,3,95,1,1,328476,0,3659.238,52.15058,0,8,1,37.44939,28.99798,34.41296,0,469.499,570.3593,1,0,0,4,0,2,78.2,3.4,0,59.1,175,175,0,0,.6931472,5.164786,0,4.564348,5.216079,0,0,0,59.1,8.205283,.6931472,6.346267,1 +14,3,95,1,2,328476,0,3659.238,53.15058,0,8,1,0,0,0,0,0,0,0,0,0,0,0,2,78.2,3.4,0,59.1,175,175,0,0,.6931472,5.164786,0,4.564348,5.216079,0,0,0,59.1,8.205283,.6931472,,0 +14,3,95,1,3,328476,0,3659.238,54.15058,0,8,1,0,0,0,0,0,0,0,0,0,0,0,2,78.2,3.4,0,59.1,175,175,0,0,.6931472,5.164786,0,4.564348,5.216079,0,0,0,59.1,8.205283,.6931472,,0 +13,3,0,0,1,328480,0,7196.79,26.0835,0,14,1,20.93973,3.804903,0,0,0,24.74464,0,0,0,1,0,1,85.6,3.4,0,80.7,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,80.7,8.881529,0,3.208609,1 +13,3,0,0,2,328480,0,7196.79,27.0835,0,14,1,0,0,0,0,0,0,0,0,0,0,0,1,85.6,3.4,0,80.7,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,80.7,8.881529,0,,0 +13,3,0,0,3,328480,0,7196.79,28.0835,0,14,1,25.15047,0,0,0,0,25.15047,0,0,0,3,0,1,85.6,3.4,0,80.7,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,80.7,8.881529,0,3.224877,1 +13,3,0,1,1,328481,0,4406.452,26.23956,0,13,1,0,0,0,0,0,0,0,0,0,0,0,1,75,10.3,0,73.9,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,73.9,8.391052,0,,0 +13,3,0,1,2,328481,0,4406.452,27.23956,0,13,1,0,0,0,0,0,0,0,0,0,0,0,1,75,10.3,0,73.9,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,73.9,8.391052,0,,0 +13,3,0,1,3,328481,0,4406.452,28.23956,0,13,1,1.289768,0,0,0,0,1.289768,0,0,0,0,0,1,75,10.3,0,73.9,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,73.9,8.391052,0,.2544622,1 +11,3,0,1,1,328504,0,2729.032,52.32307,0,6,1,25.24472,60.84492,35.03349,0,0,121.1231,0,0,0,4,0,1,48.4,13.8,0,61.4,0,142.32,0,0,0,4.958078,0,0,0,1,0,0,61.4,7.912069,0,4.796808,1 +11,3,0,1,2,328504,0,2729.032,53.32307,0,6,1,9.469697,74.78693,0,0,0,84.25663,0,0,0,1,0,1,48.4,13.8,0,61.4,0,142.32,0,0,0,4.958078,0,0,0,1,0,0,61.4,7.912069,0,4.433867,1 +11,3,0,1,3,328504,0,2729.032,54.32307,0,6,1,19.50585,106.1248,0,0,0,125.6307,0,0,0,2,0,1,48.4,13.8,0,61.4,0,142.32,0,0,0,4.958078,0,0,0,1,0,0,61.4,7.912069,0,4.833346,1 +17,3,25,1,1,328534,0,11951.32,60.64613,0,16,1,37.79367,24.1573,38.81512,0,0,100.7661,0,0,0,3,1,2,92,13.8,0,85.2,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,85.2,9.38868,.6931472,4.612802,1 +17,3,25,1,2,328534,0,11951.32,61.64613,0,16,1,18.28411,21.63619,0,0,0,39.9203,0,0,0,2,0,2,92,13.8,0,85.2,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,85.2,9.38868,.6931472,3.686885,1 +17,3,25,1,3,328534,0,11951.32,62.64613,0,16,1,54.38521,21.1092,32.2442,0,0,107.7386,0,0,0,2,1,2,92,13.8,0,85.2,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,85.2,9.38868,.6931472,4.679708,1 +17,3,25,1,1,328535,0,11951.32,54.8501,1,12,1,16.34321,0,45.45454,0,0,61.79775,0,0,0,1,1,2,92,6.9,0,97.7,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,97.7,9.38868,.6931472,4.123867,1 +17,3,25,1,2,328535,0,11951.32,55.8501,1,12,1,15.00234,0,18.75293,0,0,33.75528,0,0,0,1,1,2,92,6.9,0,97.7,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,97.7,9.38868,.6931472,3.519137,1 +17,3,25,1,3,328535,0,11951.32,56.8501,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,92,6.9,0,97.7,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,97.7,9.38868,.6931472,,0 +14,3,95,1,1,328536,0,7856.892,29.49487,1,16,1,281.9203,4.928498,0,0,0,286.8488,0,0,0,1,51,5,86.7,17.2,0,81.8,660,660,0,0,1.609438,6.49224,0,4.564348,6.543533,1,0,0,81.8,8.969274,1.609438,5.658955,1 +14,3,95,1,2,328536,0,7856.892,30.49487,1,16,1,142.9911,54.80544,0,0,0,197.7965,0,0,0,5,14,5,86.7,17.2,0,81.8,660,660,0,0,1.609438,6.49224,0,4.564348,6.543533,1,0,0,81.8,8.969274,1.609438,5.287239,1 +14,3,95,1,3,328536,0,7856.892,31.49487,1,16,1,52.02064,10.33964,1.698194,0,800.2451,864.3035,2,0,0,2,5,5,86.7,17.2,0,81.8,660,660,0,0,1.609438,6.49224,0,4.564348,6.543533,1,0,0,81.8,8.969274,1.609438,6.761924,1 +14,3,95,1,1,328537,0,7856.892,6.436687,1,16,1,64.40245,3.243105,0,0,0,67.64555,0,0,0,8,0,5,91.7,9.967326,0,66.7,660,660,1,1,1.609438,6.49224,0,4.564348,6.543533,0,0,0,66.7,8.969274,1.609438,4.214282,1 +14,3,95,1,2,328537,0,7856.892,7.436687,1,16,1,36.56821,4.969526,0,0,0,41.53774,0,0,0,4,1,5,91.7,9.967326,0,66.7,660,660,1,1,1.609438,6.49224,0,4.564348,6.543533,0,0,0,66.7,8.969274,1.609438,3.726602,1 +14,3,95,1,3,328537,0,7856.892,8.436687,1,16,1,70.24935,7.738607,0,0,0,77.98796,0,0,0,3,1,5,91.7,9.967326,0,66.7,660,660,1,1,1.609438,6.49224,0,4.564348,6.543533,0,0,0,66.7,8.969274,1.609438,4.356555,1 +14,3,95,1,1,328538,0,7856.892,9.837098,1,16,1,0,0,0,0,0,0,0,0,0,0,0,5,88.3,9.967326,0,100,660,660,1,1,1.609438,6.49224,0,4.564348,6.543533,0,0,0,100,8.969274,1.609438,,0 +14,3,95,1,2,328538,0,7856.892,10.8371,1,16,1,11.72058,0,0,0,0,11.72058,0,0,0,2,0,5,88.3,9.967326,0,100,660,660,1,1,1.609438,6.49224,0,4.564348,6.543533,0,0,0,100,8.969274,1.609438,2.461346,1 +14,3,95,1,3,328538,0,7856.892,11.8371,1,16,1,0,0,0,0,0,0,0,0,0,0,0,5,88.3,9.967326,0,100,660,660,1,1,1.609438,6.49224,0,4.564348,6.543533,0,0,0,100,8.969274,1.609438,,0 +14,3,95,1,1,328539,0,7856.892,30.43121,0,18,1,164.0705,0,0,0,0,164.0705,0,0,0,1,24,5,81.4,6.9,0,71.6,660,660,0,0,1.609438,6.49224,0,4.564348,6.543533,0,0,0,71.6,8.969274,1.609438,5.100296,1 +14,3,95,1,2,328539,0,7856.892,31.43121,0,18,1,151.6643,2.836381,0,0,0,154.5007,0,0,0,7,0,5,81.4,6.9,0,71.6,660,660,0,0,1.609438,6.49224,0,4.564348,6.543533,0,0,0,71.6,8.969274,1.609438,5.040199,1 +14,3,95,1,3,328539,0,7856.892,32.43121,0,18,1,1.504729,4.987103,0,0,0,6.491831,0,0,0,0,0,5,81.4,6.9,0,71.6,660,660,0,0,1.609438,6.49224,0,4.564348,6.543533,0,0,0,71.6,8.969274,1.609438,1.870545,1 +14,3,95,1,1,328540,0,7856.892,3.252567,0,16,1,77.63023,8.222676,0,0,0,85.85291,0,0,0,6,0,5,83.39137,9.967326,0,66.7,660,660,1,0,1.609438,6.49224,0,4.564348,6.543533,0,0,0,66.7,8.969274,1.609438,4.452635,1 +14,3,95,1,2,328540,0,7856.892,4.252567,0,16,1,30.94234,5.954055,0,0,0,36.89639,0,0,0,5,0,5,83.39137,9.967326,0,66.7,660,660,1,0,1.609438,6.49224,0,4.564348,6.543533,0,0,0,66.7,8.969274,1.609438,3.608114,1 +14,3,95,1,3,328540,0,7856.892,5.252567,0,16,1,0,3.095443,0,0,0,3.095443,0,0,0,0,0,5,83.39137,9.967326,0,66.7,660,660,1,0,1.609438,6.49224,0,4.564348,6.543533,0,0,0,66.7,8.969274,1.609438,1.129931,1 +10,3,50,1,1,328545,0,8077.419,3.731691,1,12,1,98.19681,9.119011,0,0,0,107.3158,0,0,0,4,0,5,83.39137,9.967326,0,88.9,1000,1000,1,1,1.609438,6.907755,0,3.931826,7.600903,0,0,0,88.9,8.996951,1.609438,4.675776,1 +10,3,50,1,2,328545,0,8077.419,4.73169,1,12,1,12.31061,0,0,0,0,12.31061,0,0,0,2,0,5,83.39137,9.967326,0,88.9,1000,1000,1,1,1.609438,6.907755,0,3.931826,7.600903,0,0,0,88.9,8.996951,1.609438,2.510461,1 +10,3,50,1,3,328545,0,8077.419,5.73169,1,12,1,90.13871,0,0,0,1412.722,1502.861,1,0,0,8,8,5,83.39137,9.967326,0,88.9,1000,1000,1,1,1.609438,6.907755,0,3.931826,7.600903,0,0,0,88.9,8.996951,1.609438,7.315126,1 +10,3,50,1,4,328545,0,8077.419,6.73169,1,12,1,14.57267,1.851122,15.75423,0,0,32.17802,0,0,0,1,1,5,83.39137,9.967326,0,88.9,1000,1000,1,1,1.609438,6.907755,0,3.931826,7.600903,0,0,0,88.9,8.996951,1.609438,3.471284,1 +10,3,50,1,5,328545,0,8077.419,7.73169,1,12,1,8.944544,3.520572,7.155635,0,0,19.62075,0,0,0,0,1,5,83.39137,9.967326,0,88.9,1000,1000,1,1,1.609438,6.907755,0,3.931826,7.600903,0,0,0,88.9,8.996951,1.609438,2.976588,1 +10,3,50,1,1,328546,0,8077.419,31.46064,0,12,1,13.39516,6.826378,28.79959,0,0,49.02112,0,0,0,1,1,5,79.3,3.4,0,76.1,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,76.1,8.996951,1.609438,3.892251,1 +10,3,50,1,2,328546,0,8077.419,32.46064,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,79.3,3.4,0,76.1,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,76.1,8.996951,1.609438,,0 +10,3,50,1,3,328546,0,8077.419,33.46064,0,12,1,114.7811,0,30.34244,0,0,145.1235,0,0,0,5,1,5,79.3,3.4,0,76.1,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,76.1,8.996951,1.609438,4.977585,1 +10,3,50,1,4,328546,0,8077.419,34.46064,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,79.3,3.4,0,76.1,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,76.1,8.996951,1.609438,,0 +10,3,50,1,5,328546,0,8077.419,35.46064,0,12,1,8.944544,0,26.83363,0,0,35.77818,0,0,0,0,1,5,79.3,3.4,0,76.1,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,76.1,8.996951,1.609438,3.577338,1 +10,3,50,1,1,328547,0,8077.419,8.77755,0,12,1,5.151984,1.262236,0,0,0,6.414219,0,0,0,1,0,5,75,9.967326,0,85.2,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,1,0,0,85.2,8.996951,1.609438,1.858517,1 +10,3,50,1,2,328547,0,8077.419,9.77755,0,12,1,13.25758,0,0,0,0,13.25758,0,0,0,1,0,5,75,9.967326,0,85.2,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,1,0,0,85.2,8.996951,1.609438,2.584569,1 +10,3,50,1,3,328547,0,8077.419,10.77755,0,12,1,44.21326,0,19.50585,0,0,63.71912,0,0,0,5,1,5,75,9.967326,0,85.2,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,1,0,0,85.2,8.996951,1.609438,4.154485,1 +10,3,50,1,4,328547,0,8077.419,11.77755,0,12,1,29.53919,3.938559,0,0,417.6447,451.1225,1,0,0,3,0,5,75,9.967326,0,85.2,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,1,0,0,85.2,8.996951,1.609438,6.111739,1 +10,3,50,1,5,328547,0,8077.419,12.77755,0,12,1,59.74955,0,7.155635,0,0,66.90519,0,0,0,2,1,5,75,9.967326,0,85.2,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,1,0,0,85.2,8.996951,1.609438,4.203277,1 +10,3,50,1,1,328548,0,8077.419,28.72279,1,12,1,30.9119,7.372488,23.18393,0,0,61.46832,0,0,0,2,1,5,52.7,13.8,0,63.6,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,63.6,8.996951,1.609438,4.118522,1 +10,3,50,1,2,328548,0,8077.419,29.72279,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,52.7,13.8,0,63.6,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,63.6,8.996951,1.609438,,0 +10,3,50,1,3,328548,0,8077.419,30.72279,1,12,1,16.90507,5.808409,7.802341,0,0,30.51582,0,0,0,1,1,5,52.7,13.8,0,63.6,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,63.6,8.996951,1.609438,3.418245,1 +10,3,50,1,4,328548,0,8077.419,31.72279,1,12,1,5.120126,2.441906,0,0,0,7.562032,0,0,0,1,0,5,52.7,13.8,0,63.6,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,63.6,8.996951,1.609438,2.02314,1 +10,3,50,1,5,328548,0,8077.419,32.72279,1,12,1,8.944544,0,25.04472,0,0,33.98927,0,0,0,0,1,5,52.7,13.8,0,63.6,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,63.6,8.996951,1.609438,3.526045,1 +10,3,50,1,1,328549,0,8077.419,1.883641,1,12,1,24.21432,1.159196,0,0,0,25.37352,0,0,0,3,0,5,83.39137,9.967326,0,70.4,1000,1000,1,1,1.609438,6.907755,0,3.931826,7.600903,0,0,0,70.4,8.996951,1.609438,3.233706,1 +10,3,50,1,2,328549,0,8077.419,2.883641,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,83.39137,9.967326,0,70.4,1000,1000,1,1,1.609438,6.907755,0,3.931826,7.600903,0,0,0,70.4,8.996951,1.609438,,0 +10,3,50,1,3,328549,0,8077.419,3.883641,1,12,1,15.60468,0,0,0,0,15.60468,0,0,0,3,0,5,83.39137,9.967326,0,70.4,1000,1000,1,1,1.609438,6.907755,0,3.931826,7.600903,0,0,0,70.4,8.996951,1.609438,2.747571,1 +10,3,50,1,4,328549,0,8077.419,4.883641,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,83.39137,9.967326,0,70.4,1000,1000,1,1,1.609438,6.907755,0,3.931826,7.600903,0,0,0,70.4,8.996951,1.609438,,0 +10,3,50,1,5,328549,0,8077.419,5.883641,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,83.39137,9.967326,0,70.4,1000,1000,1,1,1.609438,6.907755,0,3.931826,7.600903,0,0,0,70.4,8.996951,1.609438,,0 +19,3,25,0,1,328592,0,8017.009,59.14579,1,12,1,84.26966,8.682329,28.60061,0,0,121.5526,0,0,0,8,0,2,78.2,24.1,1,43.2,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,1,0,43.2,8.989446,.6931472,4.800347,1 +19,3,25,0,2,328592,0,8017.009,60.14579,1,12,1,191.7018,11.65026,0,0,0,203.3521,0,0,0,3,2,2,78.2,24.1,1,43.2,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,1,0,43.2,8.989446,.6931472,5.314939,1 +19,3,25,0,3,328592,0,8017.009,61.14579,1,12,1,15.47721,76.89166,0,0,0,92.36887,0,0,0,2,0,2,78.2,24.1,1,43.2,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,1,0,43.2,8.989446,.6931472,4.52579,1 +19,3,25,0,1,328593,0,8017.009,55.67967,0,12,1,10.2145,0,34.72932,0,0,44.94382,0,0,0,1,0,2,76.6,20.7,1,64.8,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,64.8,8.989446,.6931472,3.805413,1 +19,3,25,0,2,328593,0,8017.009,56.67967,0,12,1,61.41585,8.556025,0,0,658.7389,728.7108,1,0,0,2,4,2,76.6,20.7,1,64.8,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,64.8,8.989446,.6931472,6.591277,1 +19,3,25,0,3,328593,0,8017.009,57.67967,0,12,1,72.26999,8.16853,17.19691,0,0,97.63543,0,0,0,5,3,2,76.6,20.7,1,64.8,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,64.8,8.989446,.6931472,4.581241,1 +11,3,0,1,1,328614,0,9646.334,6.633812,0,15,1,0,0,0,0,0,0,0,0,0,0,0,5,100,9.967326,0,100,0,0,1,0,1.609438,0,0,0,0,0,0,0,100,9.174437,1.609438,,0 +11,3,0,1,2,328614,0,9646.334,7.633812,0,15,1,0,0,0,0,0,0,0,0,0,0,0,5,100,9.967326,0,100,0,0,1,0,1.609438,0,0,0,0,0,0,0,100,9.174437,1.609438,,0 +11,3,0,1,3,328614,0,9646.334,8.633813,0,15,1,0,0,0,0,0,0,0,0,0,0,0,5,100,9.967326,0,100,0,0,1,0,1.609438,0,0,0,0,0,0,0,100,9.174437,1.609438,,0 +11,3,0,1,1,328615,0,9646.334,37.79603,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,78.7,24.1,0,77.3,0,0,0,0,1.609438,0,0,0,0,0,0,0,77.3,9.174437,1.609438,,0 +11,3,0,1,2,328615,0,9646.334,38.79603,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,78.7,24.1,0,77.3,0,0,0,0,1.609438,0,0,0,0,0,0,0,77.3,9.174437,1.609438,,0 +11,3,0,1,3,328615,0,9646.334,39.79603,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,78.7,24.1,0,77.3,0,0,0,0,1.609438,0,0,0,0,0,0,0,77.3,9.174437,1.609438,,0 +11,3,0,1,1,328616,0,9646.334,1.604381,0,15,1,0,0,0,0,0,0,0,0,0,0,0,5,83.39137,9.967326,0,100,0,0,1,0,1.609438,0,0,0,0,0,0,0,100,9.174437,1.609438,,0 +11,3,0,1,2,328616,0,9646.334,2.604381,0,15,1,0,0,0,0,0,0,0,0,0,0,0,5,83.39137,9.967326,0,100,0,0,1,0,1.609438,0,0,0,0,0,0,0,100,9.174437,1.609438,,0 +11,3,0,1,3,328616,0,9646.334,3.604381,0,15,1,0,0,0,0,0,0,0,0,0,0,0,5,83.39137,9.967326,0,100,0,0,1,0,1.609438,0,0,0,0,0,0,0,100,9.174437,1.609438,,0 +11,3,0,1,1,328617,0,9646.334,11.5154,1,15,1,36.77222,0,0,0,0,36.77222,0,0,0,3,0,5,96.7,9.967326,0,100,0,0,1,1,1.609438,0,0,0,0,0,0,0,100,9.174437,1.609438,3.604743,1 +11,3,0,1,2,328617,0,9646.334,12.5154,1,15,1,0,0,0,0,0,0,0,0,0,0,0,5,96.7,9.967326,0,100,0,0,1,1,1.609438,0,0,0,0,0,0,0,100,9.174437,1.609438,,0 +11,3,0,1,3,328617,0,9646.334,13.5154,1,15,1,0,0,0,0,0,0,0,0,0,0,0,5,96.7,9.967326,0,100,0,0,1,1,1.609438,0,0,0,0,0,0,0,100,9.174437,1.609438,,0 +11,3,0,1,1,328618,0,9646.334,37.04586,1,15,1,22.98264,0,0,0,0,22.98264,0,0,0,2,0,5,71.3,17.2,0,85.2,0,0,0,0,1.609438,0,0,0,0,0,0,0,85.2,9.174437,1.609438,3.134739,1 +11,3,0,1,2,328618,0,9646.334,38.04586,1,15,1,0,0,0,0,0,0,0,0,0,0,0,5,71.3,17.2,0,85.2,0,0,0,0,1.609438,0,0,0,0,0,0,0,85.2,9.174437,1.609438,,0 +11,3,0,1,3,328618,0,9646.334,39.04586,1,15,1,0,0,0,0,0,0,0,0,0,0,0,5,71.3,17.2,0,85.2,0,0,0,0,1.609438,0,0,0,0,0,0,0,85.2,9.174437,1.609438,,0 +17,3,25,0,1,328639,0,5876.246,22.59822,0,12,1,15.32176,0,0,0,0,15.32176,0,0,0,1,0,2,75,10.3,0,43.2,650,650,0,0,.6931472,6.476973,0,3.258096,7.863267,1,0,0,43.2,8.678843,.6931472,2.729274,1 +17,3,25,0,2,328639,0,5876.246,23.59822,0,12,1,35.84154,0,0,0,0,35.84154,0,0,0,2,0,2,75,10.3,0,43.2,650,650,0,0,.6931472,6.476973,0,3.258096,7.863267,1,0,0,43.2,8.678843,.6931472,3.579108,1 +17,3,25,0,3,328639,0,5876.246,24.59822,0,12,1,23.98968,0,26.44024,0,0,50.42992,0,0,0,1,1,2,75,10.3,0,43.2,650,650,0,0,.6931472,6.476973,0,3.258096,7.863267,1,0,0,43.2,8.678843,.6931472,3.920585,1 +17,3,25,0,1,328640,0,5876.246,21.98494,1,10,1,33.19714,7.17569,18.38611,0,0,58.75894,0,0,0,3,1,2,61.7,10.3,0,78.4,650,650,0,0,.6931472,6.476973,0,3.258096,7.863267,0,0,0,78.4,8.678843,.6931472,4.073443,1 +17,3,25,0,2,328640,0,5876.246,22.98494,1,10,1,41.72527,13.80684,0,0,0,55.53212,0,0,0,3,0,2,61.7,10.3,0,78.4,650,650,0,0,.6931472,6.476973,0,3.258096,7.863267,0,0,0,78.4,8.678843,.6931472,4.016962,1 +17,3,25,0,3,328640,0,5876.246,23.98494,1,10,1,98.8822,8.55546,23.64574,0,1238.543,1369.626,1,0,0,3,3,2,61.7,10.3,0,78.4,650,650,0,0,.6931472,6.476973,0,3.258096,7.863267,0,0,0,78.4,8.678843,.6931472,7.222293,1 +10,3,50,0,1,328678,0,2069.208,30.51608,1,12,1,12.65182,3.33502,0,0,0,15.98684,0,0,0,1,0,3,91,6.9,0,78.4,225,225,0,0,1.098612,5.416101,0,3.931826,6.109248,1,0,0,78.4,7.635405,1.098612,2.771766,1 +10,3,50,0,2,328678,0,2069.208,31.51608,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,91,6.9,0,78.4,225,225,0,0,1.098612,5.416101,0,3.931826,6.109248,1,0,0,78.4,7.635405,1.098612,,0 +10,3,50,0,3,328678,0,2069.208,32.51609,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,91,6.9,0,78.4,225,225,0,0,1.098612,5.416101,0,3.931826,6.109248,1,0,0,78.4,7.635405,1.098612,,0 +10,3,50,0,1,328679,0,2069.208,9.078713,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,83.3,9.967326,0,85.2,225,225,1,1,1.098612,5.416101,0,3.931826,6.109248,0,0,0,85.2,7.635405,1.098612,,0 +10,3,50,0,2,328679,0,2069.208,10.07871,1,12,1,6.993007,0,0,0,0,6.993007,0,0,0,1,0,3,83.3,9.967326,0,85.2,225,225,1,1,1.098612,5.416101,0,3.931826,6.109248,0,0,0,85.2,7.635405,1.098612,1.944911,1 +10,3,50,0,3,328679,0,2069.208,11.07871,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,83.3,9.967326,0,85.2,225,225,1,1,1.098612,5.416101,0,3.931826,6.109248,0,0,0,85.2,7.635405,1.098612,,0 +11,3,0,1,1,328742,0,2953.079,34.18207,1,12,1,222.6762,0,0,0,0,222.6762,0,0,0,6,0,4,81.9,0,0,90.9,0,1058.98,0,0,1.386294,6.965062,0,0,0,0,0,0,90.9,7.990942,1.386294,5.405719,1 +11,3,0,1,2,328742,0,2953.079,35.18207,1,12,1,198.5466,0,0,0,0,198.5466,0,0,0,1,16,4,81.9,0,0,90.9,0,1058.98,0,0,1.386294,6.965062,0,0,0,0,0,0,90.9,7.990942,1.386294,5.291024,1 +11,3,0,1,3,328742,0,2953.079,36.18207,1,12,1,43.42218,0,0,0,0,43.42218,0,0,0,0,7,4,81.9,0,0,90.9,0,1058.98,0,0,1.386294,6.965062,0,0,0,0,0,0,90.9,7.990942,1.386294,3.77097,1 +11,3,0,1,1,328743,0,2953.079,8.180698,0,12,1,5.617978,0,0,0,0,5.617978,0,0,0,1,0,4,70,9.967326,0,92.6,0,1058.98,1,0,1.386294,6.965062,0,0,0,0,0,0,92.6,7.990942,1.386294,1.725972,1 +11,3,0,1,2,328743,0,2953.079,9.180698,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,70,9.967326,0,92.6,0,1058.98,1,0,1.386294,6.965062,0,0,0,0,0,0,92.6,7.990942,1.386294,,0 +11,3,0,1,3,328743,0,2953.079,10.1807,0,12,1,26.6552,0,0,0,0,26.6552,0,0,0,1,3,4,70,9.967326,0,92.6,0,1058.98,1,0,1.386294,6.965062,0,0,0,0,0,0,92.6,7.990942,1.386294,3.282984,1 +11,3,0,1,1,328744,0,2953.079,38.27242,0,11,1,63.32993,4.698672,34.72932,0,0,102.7579,0,0,0,1,0,4,71.8,10.3,0,88.6,0,1058.98,0,0,1.386294,6.965062,0,0,0,0,0,0,88.6,7.990942,1.386294,4.632376,1 +11,3,0,1,2,328744,0,2953.079,39.27242,0,11,1,140.0609,0,7.759025,0,0,147.82,0,0,0,5,2,4,71.8,10.3,0,88.6,0,1058.98,0,0,1.386294,6.965062,0,0,0,0,0,0,88.6,7.990942,1.386294,4.995995,1 +11,3,0,1,3,328744,0,2953.079,40.27242,0,11,1,50.30095,0,26.54772,0,0,76.84867,0,0,0,1,4,4,71.8,10.3,0,88.6,0,1058.98,0,0,1.386294,6.965062,0,0,0,0,0,0,88.6,7.990942,1.386294,4.341838,1 +11,3,0,1,1,328745,0,2953.079,11.28542,0,12,1,5.617978,1.838611,0,0,0,7.456588,0,0,0,1,0,4,76.7,9.967326,0,88.9,0,1058.98,1,0,1.386294,6.965062,0,0,0,0,0,0,88.9,7.990942,1.386294,2.009098,1 +11,3,0,1,2,328745,0,2953.079,12.28542,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,76.7,9.967326,0,88.9,0,1058.98,1,0,1.386294,6.965062,0,0,0,0,0,0,88.9,7.990942,1.386294,,0 +11,3,0,1,3,328745,0,2953.079,13.28542,0,12,1,121.2382,2.128117,12.05933,0,0,135.4256,0,0,0,5,4,4,76.7,9.967326,0,88.9,0,1058.98,1,0,1.386294,6.965062,0,0,0,0,0,0,88.9,7.990942,1.386294,4.908422,1 +10,3,50,0,1,328767,0,5167.742,56.67899,0,12,1,289.7855,132.8396,25.53626,0,490.4903,938.6517,1,0,0,7,1,2,80.9,20.7,0,75,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,0,1,0,75,8.550385,.6931472,6.844444,1 +10,3,50,0,2,328767,0,5167.742,57.67899,0,12,1,45.00703,105.6306,0,0,0,150.6376,0,0,0,4,0,2,80.9,20.7,0,75,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,0,1,0,75,8.550385,.6931472,5.014877,1 +10,3,50,0,3,328767,0,5167.742,58.67899,0,12,1,109.2003,157.8719,25.79536,0,0,292.8676,0,0,0,6,6,2,80.9,20.7,0,75,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,0,1,0,75,8.550385,.6931472,5.67972,1 +10,3,50,0,1,328768,0,5167.742,57.98494,1,9,1,162.9213,14.98979,0,0,0,177.9111,0,0,0,6,0,2,66.5,13.8,0,76.2,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,0,1,0,76.2,8.550385,.6931472,5.181284,1 +10,3,50,0,2,328768,0,5167.742,58.98494,1,9,1,302.5692,64.11158,20.62822,0,0,387.309,0,0,0,13,1,2,66.5,13.8,0,76.2,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,0,1,0,76.2,8.550385,.6931472,5.959223,1 +10,3,50,0,3,328768,0,5167.742,59.98494,1,9,1,55.03009,31.01892,19.34652,0,0,105.3955,0,0,0,5,1,2,66.5,13.8,0,76.2,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,0,1,0,76.2,8.550385,.6931472,4.65772,1 +13,3,0,1,1,328789,0,2171.261,5.774127,0,10,1,49.59514,0,0,0,359.8178,409.413,1,0,0,2,0,2,63.3,9.967326,0,55.6,300,300,1,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,55.6,7.683524,.6931472,6.014724,1 +13,3,0,1,2,328789,0,2171.261,6.774127,0,10,1,0,0,0,0,0,0,0,0,0,0,0,2,63.3,9.967326,0,55.6,300,300,1,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,55.6,7.683524,.6931472,,0 +13,3,0,1,3,328789,0,2171.261,7.774127,0,10,1,0,0,0,0,0,0,0,0,0,0,0,2,63.3,9.967326,0,55.6,300,300,1,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,55.6,7.683524,.6931472,,0 +13,3,0,1,1,328790,0,2171.261,23.8987,1,10,1,16.70041,6.933198,0,0,0,23.6336,0,0,0,1,0,2,56.4,10.3,0,40.9,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,40.9,7.683524,.6931472,3.16267,1 +13,3,0,1,2,328790,0,2171.261,24.8987,1,10,1,0,0,0,0,0,0,0,0,0,0,0,2,56.4,10.3,0,40.9,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,40.9,7.683524,.6931472,,0 +13,3,0,1,3,328790,0,2171.261,25.8987,1,10,1,26.50705,3.463018,0,0,0,29.97007,0,0,0,2,0,2,56.4,10.3,0,40.9,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,40.9,7.683524,.6931472,3.400199,1 +13,3,0,1,1,328800,0,7196.79,35.86584,1,11.38739,1,35.90587,0,21.25506,0,469.1397,526.3006,1,0,0,2,1,7,89.4,6.9,0,72.7,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,1,0,72.7,8.881529,1.94591,6.265872,1 +13,3,0,1,2,328800,0,7196.79,36.86584,1,11.38739,1,309.0909,0,0,0,0,309.0909,0,0,0,6,0,7,89.4,6.9,0,72.7,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,1,0,72.7,8.881529,1.94591,5.733635,1 +13,3,0,1,3,328800,0,7196.79,37.86584,1,11.38739,1,56.26336,1.881146,0,0,0,58.1445,0,0,0,2,0,7,89.4,6.9,0,72.7,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,1,0,72.7,8.881529,1.94591,4.062932,1 +13,3,0,1,1,328801,0,7196.79,11.32923,1,11.38739,1,53.01114,0,0,0,0,53.01114,0,0,0,1,0,7,96.7,9.967326,0,81.5,450,450,1,1,1.94591,6.109248,1,4.564348,6.160541,1,0,0,81.5,8.881529,1.94591,3.970502,1 +13,3,0,1,2,328801,0,7196.79,12.32923,1,11.38739,1,25.36131,0,0,0,0,25.36131,0,0,0,1,0,7,96.7,9.967326,0,81.5,450,450,1,1,1.94591,6.109248,1,4.564348,6.160541,1,0,0,81.5,8.881529,1.94591,3.233225,1 +13,3,0,1,3,328801,0,7196.79,13.32923,1,11.38739,1,0,0,0,0,0,0,0,0,0,0,0,7,96.7,9.967326,0,81.5,450,450,1,1,1.94591,6.109248,1,4.564348,6.160541,1,0,0,81.5,8.881529,1.94591,,0 +13,3,0,1,1,328802,0,7196.79,12.98836,1,11.38739,1,10.12146,0,21.25506,0,0,31.37652,0,0,0,0,1,7,100,9.967326,0,85.2,450,450,1,1,1.94591,6.109248,1,4.564348,6.160541,1,0,0,85.2,8.881529,1.94591,3.44606,1 +13,3,0,1,2,328802,0,7196.79,13.98836,1,11.38739,1,14.35897,1.818182,0,0,0,16.17716,0,0,0,1,0,7,100,9.967326,0,85.2,450,450,1,1,1.94591,6.109248,1,4.564348,6.160541,1,0,0,85.2,8.881529,1.94591,2.7836,1 +13,3,0,1,3,328802,0,7196.79,14.98836,1,11.38739,1,0,0,0,0,0,0,0,0,0,0,0,7,100,9.967326,0,85.2,450,450,1,1,1.94591,6.109248,1,4.564348,6.160541,1,0,0,85.2,8.881529,1.94591,,0 +13,3,0,1,1,328803,0,7196.79,14.17385,1,11.38739,1,28.34008,0,21.25506,0,0,49.59514,0,0,0,2,1,7,68.1,3.4,0,72.7,450,450,1,1,1.94591,6.109248,1,4.564348,6.160541,1,0,0,72.7,8.881529,1.94591,3.903893,1 +13,3,0,1,2,328803,0,7196.79,15.17385,1,11.38739,1,84.47552,0,0,0,0,84.47552,0,0,0,4,0,7,68.1,3.4,0,72.7,450,450,1,1,1.94591,6.109248,1,4.564348,6.160541,1,0,0,72.7,8.881529,1.94591,4.436462,1 +13,3,0,1,3,328803,0,7196.79,16.17385,1,11.38739,1,19.9658,0,0,0,0,19.9658,0,0,0,1,0,7,68.1,3.4,0,72.7,450,450,1,1,1.94591,6.109248,1,4.564348,6.160541,1,0,0,72.7,8.881529,1.94591,2.994021,1 +13,3,0,1,1,328804,0,7196.79,29.295,0,9,1,10.12146,1.361336,21.25506,0,344.2358,376.9737,1,0,0,0,1,7,94.1,6.9,0,55,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,1,0,0,55,8.881529,1.94591,5.932176,1 +13,3,0,1,2,328804,0,7196.79,30.295,0,9,1,482.4243,.2331002,0,0,0,482.6573,0,0,0,18,0,7,94.1,6.9,0,55,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,1,0,0,55,8.881529,1.94591,6.179307,1 +13,3,0,1,3,328804,0,7196.79,31.295,0,9,1,169.1749,2.907225,0,0,0,172.0821,0,0,0,11,0,7,94.1,6.9,0,55,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,1,0,0,55,8.881529,1.94591,5.147972,1 +13,3,0,1,1,328805,0,7196.79,7.838467,1,11.38739,1,25.30364,0,0,0,0,25.30364,0,0,0,1,0,7,100,9.967326,0,85.2,450,450,1,1,1.94591,6.109248,1,4.564348,6.160541,1,0,0,85.2,8.881529,1.94591,3.230948,1 +13,3,0,1,2,328805,0,7196.79,8.838467,1,11.38739,1,0,0,0,0,0,0,0,0,0,0,0,7,100,9.967326,0,85.2,450,450,1,1,1.94591,6.109248,1,4.564348,6.160541,1,0,0,85.2,8.881529,1.94591,,0 +13,3,0,1,3,328805,0,7196.79,9.838467,1,11.38739,1,206.9688,3.441642,0,0,0,210.4104,0,0,0,8,0,7,100,9.967326,0,85.2,450,450,1,1,1.94591,6.109248,1,4.564348,6.160541,1,0,0,85.2,8.881529,1.94591,5.34906,1 +18,3,25,0,1,328807,0,7196.79,54.25873,0,7,1,159.7549,117.7732,30.64351,0,698.0235,1006.195,1,0,0,11,1,2,87.2,10.3,0,69,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,1,0,69,8.881529,.6931472,6.913931,1 +18,3,25,0,2,328807,0,7196.79,55.25873,0,7,1,67.08861,124.6835,0,0,0,191.7722,0,0,0,5,0,2,87.2,10.3,0,69,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,1,0,69,8.881529,.6931472,5.256308,1 +18,3,25,0,3,328807,0,7196.79,56.25873,0,7,1,56.6638,117.2614,.8598452,0,0,174.785,0,0,0,6,0,2,87.2,10.3,0,69,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,1,0,69,8.881529,.6931472,5.163557,1 +18,3,25,0,4,328807,0,7196.79,57.25873,0,7,1,569.2711,131.8844,143.0787,0,1202.098,2046.332,1,0,0,14,1,2,87.2,10.3,0,69,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,1,0,69,8.881529,.6931472,7.623804,1 +18,3,25,0,5,328807,0,7196.79,58.25873,0,7,1,178.1387,128.7438,25.12385,0,3441.883,3773.889,3,0,0,10,2,2,87.2,10.3,0,69,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,1,0,69,8.881529,.6931472,8.235861,1 +18,3,25,0,1,328808,0,7196.79,51.62492,1,7,1,81.71603,3.54954,34.21859,0,0,119.4842,0,0,0,1,1,2,87.2,10.3,0,81.8,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,81.8,8.881529,.6931472,4.783184,1 +18,3,25,0,2,328808,0,7196.79,52.62492,1,7,1,34.2241,11.15799,0,0,0,45.38209,0,0,0,3,1,2,87.2,10.3,0,81.8,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,81.8,8.881529,.6931472,3.815118,1 +18,3,25,0,3,328808,0,7196.79,53.62492,1,7,1,9.88822,0,36.97334,0,0,46.86156,0,0,0,0,1,2,87.2,10.3,0,81.8,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,81.8,8.881529,.6931472,3.847198,1 +18,3,25,0,4,328808,0,7196.79,54.62492,1,7,1,18.99961,11.03916,25.59131,0,0,55.63009,0,0,0,1,1,2,87.2,10.3,0,81.8,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,81.8,8.881529,.6931472,4.018724,1 +18,3,25,0,5,328808,0,7196.79,55.62492,1,7,1,21.47912,16.38358,23.35456,0,0,61.21727,0,0,0,1,1,2,87.2,10.3,0,81.8,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,81.8,8.881529,.6931472,4.114429,1 +13,3,0,0,1,328865,0,3283.871,42.22861,0,10,1,29.35223,8.669028,0,0,0,38.02126,0,0,0,1,0,5,53.2,20.7,1,45.5,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,1,0,45.5,8.097083,1.609438,3.638145,1 +13,3,0,0,2,328865,0,3283.871,43.22861,0,10,1,0,5.752914,0,0,0,5.752914,0,0,0,0,0,5,53.2,20.7,1,45.5,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,1,0,45.5,8.097083,1.609438,1.749707,1 +13,3,0,0,3,328865,0,3283.871,44.22861,0,10,1,0,0,0,0,0,0,0,0,0,0,0,5,53.2,20.7,1,45.5,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,1,0,45.5,8.097083,1.609438,,0 +13,3,0,0,1,328866,0,3283.871,16.67625,0,8,1,0,0,0,0,0,0,0,0,0,0,0,5,94.1,0,0,78.4,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,78.4,8.097083,1.609438,,0 +13,3,0,0,2,328866,0,3283.871,17.67625,0,8,1,0,0,0,0,0,0,0,0,0,0,0,5,94.1,0,0,78.4,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,78.4,8.097083,1.609438,,0 +13,3,0,0,3,328866,0,3283.871,18.67625,0,8,1,0,0,0,0,0,0,0,0,0,0,0,5,94.1,0,0,78.4,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,78.4,8.097083,1.609438,,0 +13,3,0,0,1,328867,0,3283.871,36.13416,1,8,1,47.06478,30.81478,0,0,0,77.87955,0,0,0,0,0,5,85.6,17.2,0,59.1,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,59.1,8.097083,1.609438,4.355164,1 +13,3,0,0,2,328867,0,3283.871,37.13416,1,8,1,9.324009,0,0,0,0,9.324009,0,0,0,1,0,5,85.6,17.2,0,59.1,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,59.1,8.097083,1.609438,2.232593,1 +13,3,0,0,3,328867,0,3283.871,38.13416,1,8,1,0,0,0,0,0,0,0,0,0,0,0,5,85.6,17.2,0,59.1,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,59.1,8.097083,1.609438,,0 +13,3,0,1,1,328868,0,746.6276,18.46407,0,9,1,52.04959,1.578947,0,0,518.6285,572.2571,1,0,0,4,0,1,67.6,6.9,0,67,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,67,6.616905,0,6.349588,1 +13,3,0,1,2,328868,0,746.6276,19.46407,0,9,1,6.060606,6.713287,0,0,0,12.77389,0,0,0,1,0,1,67.6,6.9,0,67,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,67,6.616905,0,2.547403,1 +13,3,0,1,3,328868,0,746.6276,20.46407,0,9,1,0,0,0,0,0,0,0,0,0,0,0,1,67.6,6.9,0,67,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,67,6.616905,0,,0 +13,3,0,0,1,328869,0,3283.871,6.253251,0,8,1,7.591093,0,0,0,0,7.591093,0,0,0,1,0,5,85,9.967326,0,51.9,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,1,0,51.9,8.097083,1.609438,2.026976,1 +13,3,0,0,2,328869,0,3283.871,7.253251,0,8,1,39.0676,1.473194,22.84382,0,0,63.38462,0,0,0,1,1,5,85,9.967326,0,51.9,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,1,0,51.9,8.097083,1.609438,4.149221,1 +13,3,0,0,3,328869,0,3283.871,8.253251,0,8,1,0,0,0,0,0,0,0,0,0,0,0,5,85,9.967326,0,51.9,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,1,0,51.9,8.097083,1.609438,,0 +13,3,0,0,1,328870,0,3283.871,11.7974,0,8,1,344.8735,2.494939,0,0,0,347.3684,0,0,0,5,0,5,90,9.967326,0,70.4,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,70.4,8.097083,1.609438,5.850386,1 +13,3,0,0,2,328870,0,3283.871,12.7974,0,8,1,9.79021,0,25.64103,0,0,35.43124,0,0,0,0,1,5,90,9.967326,0,70.4,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,70.4,8.097083,1.609438,3.567594,1 +13,3,0,0,3,328870,0,3283.871,13.7974,0,8,1,0,0,0,0,0,0,0,0,0,0,0,5,90,9.967326,0,70.4,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,70.4,8.097083,1.609438,,0 +19,3,25,0,1,329007,0,9106.158,41.05955,0,17,1,0,0,0,0,0,0,0,0,0,0,0,5,71.3,10.3,1,70.5,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,70.5,9.116816,1.609438,,0 +19,3,25,0,2,329007,0,9106.158,42.05955,0,17,1,0,0,0,0,0,0,0,0,0,0,0,5,71.3,10.3,1,70.5,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,70.5,9.116816,1.609438,,0 +19,3,25,0,3,329007,0,9106.158,43.05955,0,17,1,33.10404,1.99914,0,0,0,35.10318,0,0,0,2,0,4,71.3,10.3,1,70.5,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,70.5,9.116816,1.386294,3.558292,1 +19,3,25,0,1,329008,0,9106.158,14.94593,0,16,1,6.128703,0,0,0,0,6.128703,0,0,0,1,0,5,70.7,0,0,88.6,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,88.6,9.116816,1.609438,1.812983,1 +19,3,25,0,2,329008,0,9106.158,15.94593,0,16,1,4.688232,1.875293,0,0,0,6.563526,0,0,0,1,0,5,70.7,0,0,88.6,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,88.6,9.116816,1.609438,1.881528,1 +19,3,25,0,3,329008,0,9106.158,16.94593,0,16,1,171.3672,5.911436,3.490972,0,0,180.7696,0,0,0,6,0,4,70.7,0,0,88.6,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,88.6,9.116816,1.386294,5.197223,1 +19,3,25,0,1,329009,0,9106.158,38.65298,1,16,1,51.22574,0,0,0,0,51.22574,0,0,0,5,0,5,76.6,13.8,0,80.7,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,80.7,9.116816,1.609438,3.936242,1 +19,3,25,0,2,329009,0,9106.158,39.65298,1,16,1,14.53352,2.953587,0,0,0,17.48711,0,0,0,1,0,5,76.6,13.8,0,80.7,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,80.7,9.116816,1.609438,2.861464,1 +19,3,25,0,3,329009,0,9106.158,40.65298,1,16,1,10.14617,0,0,0,0,10.14617,0,0,0,1,0,4,76.6,13.8,0,80.7,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,80.7,9.116816,1.386294,2.317097,1 +19,3,25,0,1,329010,0,9106.158,13.06502,0,16,1,21.1951,4.060266,0,0,0,25.25536,0,0,0,2,0,5,75,9.967326,1,85.2,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,85.2,9.116816,1.609438,3.229038,1 +19,3,25,0,2,329010,0,9106.158,14.06502,0,16,1,20.1594,0,0,0,0,20.1594,0,0,0,0,0,5,75,9.967326,1,85.2,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,85.2,9.116816,1.609438,3.003671,1 +19,3,25,0,3,329010,0,9106.158,15.06502,0,16,1,23.21582,3.417885,7.515047,0,0,34.14875,0,0,0,2,0,4,75,9.967326,1,85.2,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,85.2,9.116816,1.386294,3.530726,1 +19,3,25,0,1,329011,0,9106.158,16.1807,0,16,1,26.73647,0,0,0,0,26.73647,0,0,0,1,0,5,85.1,3.4,0,80.7,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,80.7,9.116816,1.609438,3.286028,1 +19,3,25,0,2,329011,0,9106.158,17.1807,0,16,1,16.40881,4.992968,1.40647,0,0,22.80825,0,0,0,3,0,5,85.1,3.4,0,80.7,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,80.7,9.116816,1.609438,3.127122,1 +19,3,25,1,1,329024,0,5159.531,25.5332,0,13,1,45.96527,0,0,0,0,45.96527,0,0,0,4,0,4,82.4,6.9,0,85.2,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,85.2,8.548795,1.386294,3.827886,1 +19,3,25,1,2,329024,0,5159.531,26.5332,0,13,1,21.09705,2.320675,0,0,0,23.41772,0,0,0,1,1,4,82.4,6.9,0,85.2,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,85.2,8.548795,1.386294,3.153493,1 +19,3,25,1,3,329024,0,5159.531,27.5332,0,13,1,4.299226,0,0,0,0,4.299226,0,0,0,0,1,4,82.4,6.9,0,85.2,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,85.2,8.548795,1.386294,1.458435,1 +19,3,25,1,1,329025,0,5159.531,2.53525,1,15,1,29.62206,5.720122,0,0,0,35.34219,0,0,0,3,0,4,83.39137,9.967326,0,74.1,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,0,0,0,74.1,8.548795,1.386294,3.565077,1 +19,3,25,1,2,329025,0,5159.531,3.53525,1,15,1,102.9536,2.789498,0,0,0,105.7431,0,0,0,1,0,4,83.39137,9.967326,0,74.1,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,0,0,0,74.1,8.548795,1.386294,4.661013,1 +19,3,25,1,3,329025,0,5159.531,4.53525,1,15,1,53.26741,6.018917,0,0,0,59.28633,0,0,0,4,1,4,83.39137,9.967326,0,74.1,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,0,0,0,74.1,8.548795,1.386294,4.082379,1 +19,3,25,1,1,329026,0,5159.531,1.185489,1,15,1,6.128703,7.660879,0,0,0,13.78958,0,0,0,1,0,4,83.39137,9.967326,0,51.9,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,0,0,0,51.9,8.548795,1.386294,2.623913,1 +19,3,25,1,2,329026,0,5159.531,2.185489,1,15,1,12.1894,4.43038,0,0,0,16.61978,0,0,0,2,0,4,83.39137,9.967326,0,51.9,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,0,0,0,51.9,8.548795,1.386294,2.810594,1 +19,3,25,1,3,329026,0,5159.531,3.185489,1,15,1,16.33706,10.51161,0,0,0,26.84867,0,0,0,2,0,4,83.39137,9.967326,0,51.9,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,0,0,0,51.9,8.548795,1.386294,3.290216,1 +19,3,25,1,1,329027,0,5159.531,24.66256,1,15,1,0,27.96221,0,0,0,27.96221,0,0,0,0,0,4,68.1,10.3,0,76.1,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,76.1,8.548795,1.386294,3.330854,1 +19,3,25,1,2,329027,0,5159.531,25.66256,1,15,1,32.3488,0,25.78528,0,0,58.13408,0,0,0,1,5,4,68.1,10.3,0,76.1,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,76.1,8.548795,1.386294,4.062752,1 +19,3,25,1,3,329027,0,5159.531,26.66256,1,15,1,57.17971,4.27773,11.17799,0,0,72.63543,0,0,0,0,11,4,68.1,10.3,0,76.1,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,76.1,8.548795,1.386294,4.285453,1 +14,3,95,1,1,329184,0,648.6804,30.97878,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,72.9,0,0,89.8,260,0,0,0,0,0,0,4.564348,5.611975,0,0,0,89.8,6.47648,0,,0 +14,3,95,1,2,329184,0,648.6804,31.97878,0,12,1,44.77262,4.571027,0,0,0,49.34365,0,0,0,3,0,1,72.9,0,0,89.8,260,0,0,0,0,0,0,4.564348,5.611975,0,0,0,89.8,6.47648,0,3.898809,1 +14,3,95,1,3,329184,0,648.6804,32.97878,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,72.9,0,0,89.8,260,0,0,0,0,0,0,4.564348,5.611975,0,0,0,89.8,6.47648,0,,0 +14,3,95,1,1,329185,0,3155.015,23.56194,1,13,1,0,0,0,0,0,0,0,0,0,0,0,1,70.2,13.8,0,87.5,400,375,0,0,0,5.926926,0,4.564348,6.042758,0,0,0,87.5,8.057065,0,,0 +14,3,95,1,2,329185,0,3155.015,24.56194,1,13,1,12.65823,0,0,0,0,12.65823,0,0,0,1,0,1,70.2,13.8,0,87.5,400,375,0,0,0,5.926926,0,4.564348,6.042758,0,0,0,87.5,8.057065,0,2.538307,1 +14,3,95,1,3,329185,0,3155.015,25.56194,1,13,1,7.308684,0,0,0,0,7.308684,0,0,0,1,0,1,70.2,13.8,0,87.5,400,375,0,0,0,5.926926,0,4.564348,6.042758,0,0,0,87.5,8.057065,0,1.989063,1 +11,3,0,1,1,329191,0,8130.792,16.4052,0,12,1,5.107252,0,0,0,0,5.107252,0,0,0,1,0,6,93.1,0,0,100,0,591.72,1,0,1.791759,6.383034,0,0,0,0,1,0,100,9.003536,1.791759,1.630661,1 +11,3,0,1,2,329191,0,8130.792,17.4052,0,12,1,45.47586,0,0,0,0,45.47586,0,0,0,2,0,6,93.1,0,0,100,0,591.72,1,0,1.791759,6.383034,0,0,0,0,1,0,100,9.003536,1.791759,3.817182,1 +11,3,0,1,3,329191,0,8130.792,18.4052,0,12,1,42.13242,1.504729,1.375752,0,0,45.0129,0,0,0,1,0,6,93.1,0,0,100,0,591.72,0,0,1.791759,6.383034,0,0,0,0,1,0,100,9.003536,1.791759,3.806949,1 +11,3,0,1,1,329192,0,8130.792,18.47228,0,11,1,15.83248,5.337079,.5617977,0,0,21.73136,0,0,0,0,0,6,83.5,3.4,0,89.8,0,591.72,0,0,1.791759,6.383034,0,0,0,0,1,0,89.8,9.003536,1.791759,3.078756,1 +11,3,0,1,2,329192,0,8130.792,19.47228,0,11,1,300.4079,13.61932,0,0,0,314.0272,0,0,0,3,1,6,83.5,3.4,0,89.8,0,591.72,0,0,1.791759,6.383034,0,0,0,0,1,0,89.8,9.003536,1.791759,5.74948,1 +11,3,0,1,3,329192,0,8130.792,20.47228,0,11,1,76.09631,2.343078,0,0,0,78.43938,0,0,0,3,0,6,83.5,3.4,0,89.8,0,591.72,0,0,1.791759,6.383034,0,0,0,0,1,0,89.8,9.003536,1.791759,4.362326,1 +11,3,0,1,1,329193,0,8130.792,10.82546,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,88.3,9.967326,0,100,0,591.72,1,0,1.791759,6.383034,0,0,0,0,0,0,100,9.003536,1.791759,,0 +11,3,0,1,2,329193,0,8130.792,11.82546,0,12,1,25.08204,2.22691,0,0,0,27.30895,0,0,0,1,0,6,88.3,9.967326,0,100,0,591.72,1,0,1.791759,6.383034,0,0,0,0,0,0,100,9.003536,1.791759,3.307215,1 +11,3,0,1,3,329193,0,8130.792,12.82546,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,88.3,9.967326,0,100,0,591.72,1,0,1.791759,6.383034,0,0,0,0,0,0,100,9.003536,1.791759,,0 +11,3,0,1,1,329194,0,8130.792,37.11704,1,12,1,552.0531,226.0368,84.41267,0,6845.592,7708.095,2,0,0,23,0,6,67,20.7,1,51.1,0,591.72,0,0,1.791759,6.383034,0,0,0,0,0,1,51.1,9.003536,1.791759,8.950027,1 +11,3,0,1,2,329194,0,8130.792,38.11704,1,12,1,1480.975,113.8537,77.97937,0,9120.244,10793.05,6,0,0,72,1,6,67,20.7,1,51.1,0,591.72,0,0,1.791759,6.383034,0,0,0,0,0,1,51.1,9.003536,1.791759,9.286658,1 +11,3,0,1,3,329194,0,8130.792,39.11704,1,12,1,285.4471,211.3757,115.4213,0,6888.856,7501.101,8,0,0,18,0,6,67,20.7,1,51.1,0,591.72,0,0,1.791759,6.383034,0,0,0,0,0,1,51.1,9.003536,1.791759,8.922805,1 +11,3,0,1,1,329195,0,8130.792,12.81314,0,12,1,55.92441,0,0,0,0,55.92441,0,0,0,3,1,6,90,9.967326,0,100,0,591.72,1,0,1.791759,6.383034,0,0,0,1,0,0,100,9.003536,1.791759,4.024001,1 +11,3,0,1,2,329195,0,8130.792,13.81314,0,12,1,25.78528,2.320675,0,0,0,28.10595,0,0,0,1,0,6,90,9.967326,0,100,0,591.72,1,0,1.791759,6.383034,0,0,0,1,0,0,100,9.003536,1.791759,3.335981,1 +11,3,0,1,3,329195,0,8130.792,14.81314,0,12,1,90.90714,0,0,0,0,90.90714,0,0,0,3,0,6,90,9.967326,0,100,0,591.72,1,0,1.791759,6.383034,0,0,0,1,0,0,100,9.003536,1.791759,4.509839,1 +11,3,0,1,1,329196,0,8130.792,40.5284,0,9,1,76.60879,28.19203,0,0,0,104.8008,0,0,0,3,1,6,63.3,0,1,39.8,0,591.72,0,0,1.791759,6.383034,0,0,0,0,0,1,39.8,9.003536,1.791759,4.652061,1 +11,3,0,1,2,329196,0,8130.792,41.5284,0,9,1,390.6235,80.98453,1.875293,0,1556.357,2029.841,1,0,0,8,8,6,63.3,0,1,39.8,0,591.72,0,0,1.791759,6.383034,0,0,0,0,0,1,39.8,9.003536,1.791759,7.615713,1 +11,3,0,1,3,329196,0,8130.792,42.5284,0,9,1,61.04901,49.13156,0,0,0,110.1806,0,0,0,4,0,6,63.3,0,1,39.8,0,591.72,0,0,1.791759,6.383034,0,0,0,0,0,1,39.8,9.003536,1.791759,4.70212,1 +13,3,0,1,1,329225,0,2116.716,.7583846,0,12,1,6.128703,2.73238,0,0,0,8.861083,0,0,0,1,0,2,83.39137,9.967326,0,63,300,300,1,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,63,7.658093,.6931472,2.181669,1 +13,3,0,1,2,329225,0,2116.716,1.758385,0,12,1,5.625879,0,0,0,0,5.625879,0,0,0,1,0,2,83.39137,9.967326,0,63,300,300,1,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,63,7.658093,.6931472,1.727377,1 +13,3,0,1,3,329225,0,2116.716,2.758385,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,83.39137,9.967326,0,63,300,300,1,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,63,7.658093,.6931472,,0 +13,3,0,1,1,329226,0,2116.716,22.01232,1,12,1,22.98264,15.04086,0,0,436.43,474.4535,1,0,0,3,0,2,44.7,31,1,73.9,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,73.9,7.658093,.6931472,6.162164,1 +13,3,0,1,2,329226,0,2116.716,23.01232,1,12,1,11.72058,0,23.44116,0,0,35.16174,0,0,0,1,0,2,44.7,31,1,73.9,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,73.9,7.658093,.6931472,3.559959,1 +13,3,0,1,3,329226,0,2116.716,24.01232,1,12,1,28.14273,0,0,0,0,28.14273,0,0,0,1,1,2,44.7,31,1,73.9,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,73.9,7.658093,.6931472,3.337289,1 +13,3,0,1,1,329227,0,1,28.35044,0,10,1,66.67518,0,0,0,960.7252,1027.4,1,0,0,5,0,1,39.9,10.3,1,27.3,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,1,0,27.3,.6931472,0,6.934787,1 +13,3,0,1,3,329227,0,1,30.35044,0,10,1,20.74377,29.10146,0,0,0,49.84523,0,0,0,2,0,1,39.9,10.3,1,27.3,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,1,0,27.3,.6931472,0,3.908923,1 +13,3,0,1,1,329502,0,10546.04,24.23819,1,16,1,19.73684,4.200405,18.7247,0,0,42.66194,0,0,0,1,1,2,80.9,10.3,0,65.9,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,65.9,9.2636,.6931472,3.753307,1 +13,3,0,1,2,329502,0,10546.04,25.23819,1,16,1,48.48485,11.74825,15.85082,0,0,76.08392,0,0,0,2,1,2,80.9,10.3,0,65.9,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,65.9,9.2636,.6931472,4.331837,1 +13,3,0,1,3,329502,0,10546.04,26.23819,1,16,1,134.3309,0,0,0,663.7025,798.0333,1,0,0,3,0,2,80.9,10.3,0,65.9,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,65.9,9.2636,.6931472,6.68215,1 +13,3,0,1,1,329503,0,10546.04,26.16564,0,16,1,13.96761,0,0,0,0,13.96761,0,0,0,1,0,2,70.2,0,0,75,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,75,9.2636,.6931472,2.636741,1 +13,3,0,1,2,329503,0,10546.04,27.16564,0,16,1,23.31002,0,27.50583,0,0,50.81585,0,0,0,1,1,2,70.2,0,0,75,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,75,9.2636,.6931472,3.928208,1 +13,3,0,1,3,329503,0,10546.04,28.16564,0,16,1,0,0,0,0,0,0,0,0,0,0,0,2,70.2,0,0,75,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,75,9.2636,.6931472,,0 +11,3,0,0,1,329514,0,2930.205,1.136208,0,10,1,55.15833,11.87436,0,0,0,67.03268,0,0,0,3,0,3,83.39137,9.967326,0,81.5,0,780.92,1,0,1.098612,6.660473,0,0,0,0,0,0,81.5,7.983169,1.098612,4.20518,1 +11,3,0,0,2,329514,0,2930.205,2.136208,0,10,1,7.735584,2.789498,0,0,0,10.52508,0,0,0,1,0,3,83.39137,9.967326,0,81.5,0,780.92,1,0,1.098612,6.660473,0,0,0,0,0,0,81.5,7.983169,1.098612,2.353761,1 +11,3,0,0,3,329514,0,2930.205,3.136208,0,10,1,26.44024,10.5503,0,0,0,36.99054,0,0,0,6,0,4,83.39137,9.967326,0,81.5,0,780.92,1,0,1.386294,6.660473,0,0,0,0,0,0,81.5,7.983169,1.386294,3.610662,1 +11,3,0,0,1,329515,0,2930.205,29.82067,1,10,1,108.9377,8.350357,33.19714,0,0,150.4852,0,0,0,2,14,3,75.5,3.4,1,90.9,0,780.92,0,0,1.098612,6.660473,0,0,0,0,0,0,90.9,7.983169,1.098612,5.013865,1 +11,3,0,0,2,329515,0,2930.205,30.82067,1,10,1,255.5087,16.63385,0,0,661.8378,933.9803,1,0,0,0,28,3,75.5,3.4,1,90.9,0,780.92,0,0,1.098612,6.660473,0,0,0,0,0,0,90.9,7.983169,1.098612,6.839455,1 +11,3,0,0,3,329515,0,2930.205,31.82067,1,10,1,140.8427,17.88048,47.91488,0,0,206.638,0,0,0,3,15,4,75.5,3.4,1,90.9,0,780.92,0,0,1.386294,6.660473,0,0,0,0,0,0,90.9,7.983169,1.386294,5.330968,1 +11,3,0,0,1,329516,0,2930.205,32.03559,0,9,1,5.107252,0,0,0,0,5.107252,0,0,0,1,0,3,88.3,10.3,0,84.1,0,780.92,0,0,1.098612,6.660473,0,0,0,1,0,0,84.1,7.983169,1.098612,1.630661,1 +11,3,0,0,2,329516,0,2930.205,33.03559,0,9,1,3.281763,2.01594,0,0,0,5.297703,0,0,0,1,0,3,88.3,10.3,0,84.1,0,780.92,0,0,1.098612,6.660473,0,0,0,1,0,0,84.1,7.983169,1.098612,1.667273,1 +11,3,0,0,3,329516,0,2930.205,34.03559,0,9,1,133.104,1.375752,0,0,0,134.4798,0,0,0,2,4,4,88.3,10.3,0,84.1,0,780.92,0,0,1.386294,6.660473,0,0,0,1,0,0,84.1,7.983169,1.386294,4.901414,1 +5,3,25,1,1,329526,0,8387.097,23.11841,0,13,1,0,0,0,0,0,0,0,0,0,0,0,2,88.3,3.4,0,83,612.8,612.8,0,0,.6931472,6.418039,0,3.258096,7.804333,0,0,0,83,9.034569,.6931472,,0 +5,3,25,1,2,329526,0,8387.097,24.11841,0,13,1,0,0,0,0,0,0,0,0,0,0,0,2,88.3,3.4,0,83,612.8,612.8,0,0,.6931472,6.418039,0,3.258096,7.804333,0,0,0,83,9.034569,.6931472,,0 +5,3,25,1,3,329526,0,8387.097,25.11841,0,13,1,0,0,0,0,0,0,0,0,0,0,0,2,88.3,3.4,0,83,612.8,612.8,0,0,.6931472,6.418039,0,3.258096,7.804333,0,0,0,83,9.034569,.6931472,,0 +5,3,25,1,1,329527,0,8387.097,23.2334,1,14,1,11.63968,13.55769,0,0,0,25.19737,0,0,0,1,0,2,87.2,3.4,0,85.2,612.8,612.8,0,0,.6931472,6.418039,0,3.258096,7.804333,0,0,0,85.2,9.034569,.6931472,3.22674,1 +5,3,25,1,2,329527,0,8387.097,24.2334,1,14,1,23.54312,0,0,0,0,23.54312,0,0,0,1,1,2,87.2,3.4,0,85.2,612.8,612.8,0,0,.6931472,6.418039,0,3.258096,7.804333,0,0,0,85.2,9.034569,.6931472,3.158834,1 +5,3,25,1,3,329527,0,8387.097,25.2334,1,14,1,12.82599,0,0,0,0,12.82599,0,0,0,2,0,2,87.2,3.4,0,85.2,612.8,612.8,0,0,.6931472,6.418039,0,3.258096,7.804333,0,0,0,85.2,9.034569,.6931472,2.551474,1 +11,3,0,0,1,329528,0,2849.267,50.38741,1,12,1,107.763,18.08478,29.62206,0,0,155.4699,0,0,0,4,1,1,79.8,13.8,0,62.5,0,311.64,0,0,0,5.741848,0,0,0,1,0,0,62.5,7.955168,0,5.046452,1 +11,3,0,0,2,329528,0,2849.267,51.38741,1,12,1,29.53587,21.01735,0,0,0,50.55321,0,0,0,2,0,1,79.8,13.8,0,62.5,0,311.64,0,0,0,5.741848,0,0,0,1,0,0,62.5,7.955168,0,3.923027,1 +11,3,0,0,3,329528,0,2849.267,52.38741,1,12,1,74.59158,25.92003,21.06621,0,0,121.5778,0,0,0,2,1,1,79.8,13.8,0,62.5,0,311.64,0,0,0,5.741848,0,0,0,1,0,0,62.5,7.955168,0,4.800554,1 +13,3,0,1,2,329565,0,8114.956,57.94456,1,,1,14.20455,1.941288,17.99242,0,0,34.13826,0,0,0,1,1,1,92.6,10.3,0,83,,,0,0,0,0,1,4.564348,0,0,0,0,83,9.001587,0,3.530419,1 +11,3,0,0,1,329577,0,2584.164,60.87337,1,10,1,196.0639,100.4637,59.78877,0,406.5894,762.9057,1,0,0,9,4,1,83.5,10.3,1,33,0,311.64,0,0,0,5.741848,0,0,0,0,0,1,33,7.857544,0,6.637135,1 +11,3,0,0,2,329577,0,2584.164,61.87337,1,10,1,161.0795,98.41856,63.45644,0,0,322.9546,0,0,0,7,1,1,83.5,10.3,1,33,0,311.64,0,0,0,5.741848,0,0,0,0,0,1,33,7.857544,0,5.777512,1 +11,3,0,0,3,329577,0,2584.164,62.87337,1,10,1,501.4521,102.2063,87.47724,0,0,691.1357,0,0,0,15,24,1,83.5,10.3,1,33,0,311.64,0,0,0,5.741848,0,0,0,0,0,1,33,7.857544,0,6.538336,1 +14,3,95,1,1,329608,0,703.8123,11.91513,1,7,1,73.38057,0,0,0,0,73.38057,0,0,0,5,0,2,100,9.967326,0,66.7,152.1,152.1,1,1,.6931472,5.024538,0,4.564348,5.075831,0,0,0,66.7,6.557931,.6931472,4.295659,1 +14,3,95,1,2,329608,0,703.8123,12.91513,1,7,1,37.29604,2.750583,0,0,0,40.04662,0,0,0,4,0,2,100,9.967326,0,66.7,152.1,152.1,1,1,.6931472,5.024538,0,4.564348,5.075831,0,0,0,66.7,6.557931,.6931472,3.690044,1 +14,3,95,1,3,329608,0,703.8123,13.91513,1,7,1,6.84053,0,0,0,0,6.84053,0,0,0,1,0,2,100,9.967326,0,66.7,152.1,152.1,1,1,.6931472,5.024538,0,4.564348,5.075831,0,0,0,66.7,6.557931,.6931472,1.922865,1 +14,3,95,1,1,329609,0,703.8123,30.89938,1,7,1,76.74595,8.223684,20.24291,0,836.7156,941.9282,1,0,0,3,0,2,92.6,20.7,1,48.9,152.1,152.1,0,0,.6931472,5.024538,0,4.564348,5.075831,0,1,0,48.9,6.557931,.6931472,6.847929,1 +14,3,95,1,2,329609,0,703.8123,31.89938,1,7,1,11.65501,0,23.31002,0,0,34.96503,0,0,0,1,0,2,92.6,20.7,1,48.9,152.1,152.1,0,0,.6931472,5.024538,0,4.564348,5.075831,0,1,0,48.9,6.557931,.6931472,3.554348,1 +14,3,95,1,3,329609,0,703.8123,32.89938,1,7,1,21.37666,0,21.37666,0,0,42.75331,0,0,0,2,0,2,92.6,20.7,1,48.9,152.1,152.1,0,0,.6931472,5.024538,0,4.564348,5.075831,0,1,0,48.9,6.557931,.6931472,3.755447,1 +13,3,0,0,1,329631,0,5764.223,13.42094,0,8,1,0,0,0,0,0,0,0,0,0,0,0,4,90,9.967326,0,77.8,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,77.8,8.659599,1.386294,,0 +13,3,0,0,2,329631,0,5764.223,14.42094,0,8,1,32.81763,1.781528,.9376465,0,0,35.5368,0,0,0,3,0,4,90,9.967326,0,77.8,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,77.8,8.659599,1.386294,3.570569,1 +13,3,0,0,3,329631,0,5764.223,15.42094,0,8,1,57.17971,2.042132,29.66466,0,0,88.8865,0,0,0,2,0,4,90,9.967326,0,77.8,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,77.8,8.659599,1.386294,4.48736,1 +13,3,0,0,1,329632,0,5764.223,44.72827,0,8,1,0,0,0,0,0,0,0,0,0,0,0,4,70.2,3.4,1,76.1,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,76.1,8.659599,1.386294,,0 +13,3,0,0,2,329632,0,5764.223,45.72827,0,8,1,0,0,0,0,0,0,0,0,0,0,0,4,70.2,3.4,1,76.1,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,76.1,8.659599,1.386294,,0 +13,3,0,0,3,329632,0,5764.223,46.72827,0,8,1,6.448839,3.525365,0,0,449.9097,459.8839,1,0,0,1,0,4,70.2,3.4,1,76.1,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,76.1,8.659599,1.386294,6.130974,1 +13,3,0,0,1,329633,0,5764.223,12.54757,1,8,1,0,0,0,0,0,0,0,0,0,0,0,4,95,9.967326,0,96.3,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,96.3,8.659599,1.386294,,0 +13,3,0,0,2,329633,0,5764.223,13.54757,1,8,1,5.157056,0,0,0,0,5.157056,0,0,0,1,0,4,95,9.967326,0,96.3,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,96.3,8.659599,1.386294,1.640366,1 +13,3,0,0,3,329633,0,5764.223,14.54757,1,8,1,8.598453,0,33.08255,0,0,41.681,0,0,0,1,0,4,95,9.967326,0,96.3,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,96.3,8.659599,1.386294,3.730045,1 +13,3,0,0,1,329634,0,5764.223,11.01164,0,8,1,7.660879,0,0,0,0,7.660879,0,0,0,1,0,4,98.3,9.967326,0,96.3,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,96.3,8.659599,1.386294,2.036127,1 +13,3,0,0,2,329634,0,5764.223,12.01164,0,8,1,33.75528,4.875762,1.875293,0,0,40.50633,0,0,0,3,0,4,98.3,9.967326,0,96.3,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,96.3,8.659599,1.386294,3.701458,1 +13,3,0,0,3,329634,0,5764.223,13.01164,0,8,1,0,0,0,0,0,0,0,0,0,0,0,4,98.3,9.967326,0,96.3,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,96.3,8.659599,1.386294,,0 +13,3,0,0,1,329635,0,1501.466,58.26146,1,6,1,12.76813,103.7794,0,0,0,116.5475,0,0,0,2,0,1,54.8,10.3,1,59.1,150,198.24,0,0,0,5.289478,1,4.564348,5.061929,0,1,0,59.1,7.314863,0,4.758299,1 +13,3,0,0,2,329635,0,1501.466,59.26146,1,6,1,30.47351,102.0628,32.81763,0,0,165.354,0,0,0,2,2,1,54.8,10.3,1,59.1,150,198.24,0,0,0,5.289478,1,4.564348,5.061929,0,1,0,59.1,7.314863,0,5.108088,1 +13,3,0,0,3,329635,0,1501.466,60.26146,1,6,1,18.48667,181.6638,0,0,0,200.1505,0,0,0,1,0,1,54.8,10.3,1,59.1,150,198.24,0,0,0,5.289478,1,4.564348,5.061929,0,1,0,59.1,7.314863,0,5.299069,1 +11,3,0,1,1,329668,0,7196.79,37.7358,0,12,1,43.6373,1.494075,0,0,0,45.13137,0,0,0,2,0,1,68.1,10.3,0,79.5,0,0,0,0,0,0,0,0,0,0,0,0,79.5,8.881529,0,3.809578,1 +11,3,0,1,2,329668,0,7196.79,38.7358,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,68.1,10.3,0,79.5,0,0,0,0,0,0,0,0,0,0,0,0,79.5,8.881529,0,,0 +11,3,0,1,3,329668,0,7196.79,39.7358,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,68.1,10.3,0,79.5,0,0,0,0,0,0,0,0,0,0,0,0,79.5,8.881529,0,,0 +11,3,0,1,4,329668,0,7196.79,40.7358,0,12,1,22.92241,0,0,0,0,22.92241,0,0,0,1,0,1,68.1,10.3,0,79.5,0,0,0,0,0,0,0,0,0,0,0,0,79.5,8.881529,0,3.132115,1 +11,3,0,1,5,329668,0,7196.79,41.7358,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,68.1,10.3,0,79.5,0,0,0,0,0,0,0,0,0,0,0,0,79.5,8.881529,0,,0 +14,3,95,1,1,329695,0,6648.094,47.12663,0,12,1,196.8058,33.35909,39.15508,0,1262.772,1532.092,2,0,0,9,6,1,62.2,13.8,0,56.8,606.25,606.25,0,0,0,6.407292,0,4.564348,6.458586,0,0,0,56.8,8.802236,0,7.334389,1 +14,3,95,1,2,329695,0,6648.094,48.12663,0,12,1,195.0758,62.61837,0,0,897.1733,1154.867,1,0,0,7,8,1,62.2,13.8,0,56.8,606.25,606.25,0,0,0,6.407292,0,4.564348,6.458586,0,0,0,56.8,8.802236,0,7.051741,1 +14,3,95,1,3,329695,0,6648.094,49.12663,0,12,1,112.8305,88.4482,37.27785,0,338.0581,576.6146,1,0,0,5,6,1,62.2,13.8,0,56.8,606.25,606.25,0,0,0,6.407292,0,4.564348,6.458586,0,0,0,56.8,8.802236,0,6.357174,1 +11,3,0,1,1,329712,0,16875.07,49.01848,0,11,1,65.37283,56.46067,41.36874,0,0,163.2022,0,0,0,4,0,5,91,6.9,1,67,0,488.16,0,0,1.609438,6.190643,0,0,0,1,0,0,67,9.733652,1.609438,5.09499,1 +11,3,0,1,2,329712,0,16875.07,50.01848,0,11,1,64.69761,41.54243,7.501172,0,0,113.7412,0,0,0,3,0,5,91,6.9,1,67,0,488.16,0,0,1.609438,6.190643,0,0,0,1,0,0,67,9.733652,1.609438,4.733926,1 +11,3,0,1,3,329712,0,16875.07,51.01848,0,11,1,156.0619,64.50989,29.66466,0,0,250.2365,0,0,0,4,1,5,91,6.9,1,67,0,488.16,0,0,1.609438,6.190643,0,0,0,1,0,0,67,9.733652,1.609438,5.522406,1 +11,3,0,1,1,329713,0,16875.07,48.32033,1,12,1,220.1992,7.553626,37.28294,0,0,265.0357,0,0,0,3,0,5,60.1,6.9,0,75,0,488.16,0,0,1.609438,6.190643,0,0,0,1,0,0,75,9.733652,1.609438,5.579865,1 +11,3,0,1,2,329713,0,16875.07,49.32033,1,12,1,180.2625,43.20675,30.47351,0,0,253.9428,0,0,0,34,0,5,60.1,6.9,0,75,0,488.16,0,0,1.609438,6.190643,0,0,0,1,0,0,75,9.733652,1.609438,5.537109,1 +11,3,0,1,3,329713,0,16875.07,50.32033,1,12,1,171.1092,40.71367,27.51505,0,0,239.3379,0,0,0,46,1,5,60.1,6.9,0,75,0,488.16,0,0,1.609438,6.190643,0,0,0,1,0,0,75,9.733652,1.609438,5.477877,1 +11,3,0,1,1,329714,0,16875.07,16.1232,1,12,1,56.84372,11.89479,0,0,0,68.73851,0,0,0,7,0,5,56.4,13.8,1,25,0,488.16,1,1,1.609438,6.190643,0,0,0,0,0,0,25,9.733652,1.609438,4.230309,1 +11,3,0,1,2,329714,0,16875.07,17.1232,1,12,1,77.35583,30.66104,13.12705,0,461.2049,582.3488,1,0,0,5,0,5,56.4,13.8,1,25,0,488.16,1,1,1.609438,6.190643,0,0,0,0,0,0,25,9.733652,1.609438,6.36707,1 +11,3,0,1,3,329714,0,16875.07,18.1232,1,12,1,66.63801,3.826311,18.48667,0,0,88.95099,0,0,0,2,1,5,56.4,13.8,1,25,0,488.16,0,0,1.609438,6.190643,0,0,0,0,0,0,25,9.733652,1.609438,4.488086,1 +11,3,0,1,1,329715,0,16875.07,14.41205,0,12,1,352.9265,8.758938,0,0,0,361.6854,0,0,0,14,0,5,80.3,3.4,0,70.5,0,488.16,1,0,1.609438,6.190643,0,0,0,0,0,0,70.5,9.733652,1.609438,5.890775,1 +11,3,0,1,2,329715,0,16875.07,15.41205,0,12,1,68.91702,0,0,0,0,68.91702,0,0,0,4,0,5,80.3,3.4,0,70.5,0,488.16,1,0,1.609438,6.190643,0,0,0,0,0,0,70.5,9.733652,1.609438,4.232903,1 +11,3,0,1,3,329715,0,16875.07,16.41205,0,12,1,8.598453,2.652622,0,0,0,11.25107,0,0,0,1,0,5,80.3,3.4,0,70.5,0,488.16,1,0,1.609438,6.190643,0,0,0,0,0,0,70.5,9.733652,1.609438,2.420464,1 +11,3,0,1,1,329716,0,16875.07,20.17522,0,13,1,133.0439,2.93667,0,0,0,135.9806,0,0,0,4,0,5,75,0,0,76.1,0,488.16,0,0,1.609438,6.190643,0,0,0,0,0,0,76.1,9.733652,1.609438,4.912512,1 +11,3,0,1,2,329716,0,16875.07,21.17522,0,13,1,14.0647,5.860291,0,0,0,19.92499,0,0,0,2,0,5,75,0,0,76.1,0,488.16,0,0,1.609438,6.190643,0,0,0,0,0,0,76.1,9.733652,1.609438,2.991975,1 +11,3,0,1,3,329716,0,16875.07,22.17522,0,13,1,16.76698,0,12.89768,0,0,29.66466,0,0,0,1,1,5,75,0,0,76.1,0,488.16,0,0,1.609438,6.190643,0,0,0,0,0,0,76.1,9.733652,1.609438,3.389956,1 +11,3,0,1,1,329746,0,1643.988,28.09035,1,11,1,201.6854,9.096016,0,0,0,210.7814,0,0,0,9,0,4,52.1,27.6,0,53.4,0,0,0,0,1.386294,0,0,0,0,1,0,0,53.4,7.405488,1.386294,5.350821,1 +11,3,0,1,2,329746,0,1643.988,29.09035,1,11,1,91.04548,13.12236,0,0,0,104.1678,0,0,0,5,0,4,52.1,27.6,0,53.4,0,0,0,0,1.386294,0,0,0,0,1,0,0,53.4,7.405488,1.386294,4.646003,1 +11,3,0,1,3,329746,0,1643.988,30.09035,1,11,1,206.9218,6.857265,0,0,0,213.779,0,0,0,6,8,4,52.1,27.6,0,53.4,0,0,0,0,1.386294,0,0,0,0,1,0,0,53.4,7.405488,1.386294,5.364943,1 +11,3,0,1,1,329747,0,1643.988,5.237509,1,11,1,18.38611,2.288049,0,0,0,20.67416,0,0,0,3,0,4,76.7,9.967326,0,40.7,0,0,1,1,1.386294,0,0,0,0,0,0,0,40.7,7.405488,1.386294,3.028884,1 +11,3,0,1,2,329747,0,1643.988,6.237509,1,11,1,51.28926,12.48945,0,0,0,63.77872,0,0,0,5,0,4,76.7,9.967326,0,40.7,0,0,1,1,1.386294,0,0,0,0,0,0,0,40.7,7.405488,1.386294,4.155419,1 +11,3,0,1,3,329747,0,1643.988,7.237509,1,11,1,55.46002,7.49785,0,0,0,62.95787,0,0,0,6,0,4,76.7,9.967326,0,40.7,0,0,1,1,1.386294,0,0,0,0,0,0,0,40.7,7.405488,1.386294,4.142466,1 +11,3,0,1,1,329748,0,1643.988,1.054072,0,11,1,18.38611,9.264556,0,0,0,27.65066,0,0,0,3,0,4,83.39137,9.967326,0,77.8,0,0,1,0,1.386294,0,0,0,0,0,0,0,77.8,7.405488,1.386294,3.31965,1 +11,3,0,1,2,329748,0,1643.988,2.054073,0,11,1,62.54102,12.07689,0,0,459.2452,533.8631,2,0,0,5,0,4,83.39137,9.967326,0,77.8,0,0,1,0,1.386294,0,0,0,0,0,0,0,77.8,7.405488,1.386294,6.280139,1 +11,3,0,1,3,329748,0,1643.988,3.054073,0,11,1,42.13242,10.88134,0,0,0,53.01376,0,0,0,6,0,4,83.39137,9.967326,0,77.8,0,0,1,0,1.386294,0,0,0,0,0,0,0,77.8,7.405488,1.386294,3.970551,1 +11,3,0,1,1,329749,0,1643.988,32.01095,0,12,1,89.37691,10.80184,0,20.42901,1449.29,1549.469,2,0,1,10,0,4,83,3.4,0,81.8,0,0,0,0,1.386294,0,0,0,0,1,0,0,81.8,7.405488,1.386294,7.345667,1 +11,3,0,1,2,329749,0,1643.988,33.01095,0,12,1,0,0,0,0,1921.608,1921.608,3,0,0,0,0,4,83,3.4,0,81.8,0,0,0,0,1.386294,0,0,0,0,1,0,0,81.8,7.405488,1.386294,7.560918,1 +11,3,0,1,3,329749,0,1643.988,34.01095,0,12,1,8.598453,3.116939,0,0,4671.896,4683.611,7,0,0,1,0,4,83,3.4,0,81.8,0,0,0,0,1.386294,0,0,0,0,1,0,0,81.8,7.405488,1.386294,8.451825,1 +15,3,95,1,1,329751,0,3077.419,59.81383,1,12,1,77.42915,119.6609,423.583,0,3042.991,3663.664,3,0,0,8,1,1,60.6,24.1,1,25,361.64,425.04,0,0,0,6.052183,0,4.564348,5.941943,0,1,0,25,8.032171,0,8.206219,1 +15,3,95,1,2,329751,0,3077.419,60.81383,1,12,1,87.64569,264.042,288.1119,0,0,639.7996,0,0,0,8,1,1,60.6,24.1,1,25,361.64,425.04,0,0,0,6.052183,0,4.564348,5.941943,0,1,0,25,8.032171,0,6.461155,1 +15,3,95,1,3,329751,0,3077.419,61.81383,1,12,1,39.76058,297.1569,230.8679,0,0,567.7854,0,0,0,5,1,1,60.6,24.1,1,25,361.64,425.04,0,0,0,6.052183,0,4.564348,5.941943,0,1,0,25,8.032171,0,6.341743,1 +15,3,95,1,4,329751,0,3077.419,62.81383,1,12,1,334.3889,303.3705,208.3013,0,12574.92,13420.98,4,0,0,12,1,1,60.6,24.1,1,25,361.64,425.04,0,0,0,6.052183,0,4.564348,5.941943,0,1,0,25,8.032171,0,9.504574,1 +15,3,95,1,5,329751,0,3077.419,63.81383,1,12,1,595.3635,421.5666,280.9975,0,6734.71,8032.638,4,0,0,11,1,1,60.6,24.1,1,25,361.64,425.04,0,0,0,6.052183,0,4.564348,5.941943,0,1,0,25,8.032171,0,8.991268,1 +13,3,0,0,1,329752,1,3171.261,38.84737,1,12,1,37.43616,19.8621,0,0,0,57.29826,0,0,0,6,0,4,55.3,17.2,0,26.1,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,26.1,8.0622,1.386294,4.04827,1 +13,3,0,0,2,329752,1,3171.261,39.84737,1,12,1,222.8317,21.71589,31.35959,0,0,275.9072,0,0,0,13,0,3,55.3,17.2,0,26.1,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,1,0,26.1,8.0622,1.098612,5.620064,1 +13,3,0,0,3,329752,1,3171.261,40.84737,1,12,1,21.32416,25.27085,0,0,0,46.59501,0,0,0,3,0,2,55.3,17.2,0,26.1,450,450,0,0,.6931472,6.109248,1,4.564348,6.160541,0,1,0,26.1,8.0622,.6931472,3.841494,1 +13,3,0,0,4,329752,1,3171.261,41.84737,1,12,1,105.0795,73.48585,24.04033,0,0,202.6057,0,0,0,8,14,2,55.3,17.2,0,26.1,450,450,0,0,.6931472,6.109248,1,4.564348,6.160541,0,1,0,26.1,8.0622,.6931472,5.311262,1 +13,3,0,0,5,329752,1,3171.261,42.84737,1,12,1,55.09554,58.86412,0,0,0,113.9597,0,0,0,6,0,2,55.3,17.2,0,26.1,450,450,0,0,.6931472,6.109248,1,4.564348,6.160541,0,1,0,26.1,8.0622,.6931472,4.735845,1 +13,3,0,0,1,329753,1,3171.261,16.26557,1,12,1,76.5475,11.36364,5.107252,0,0,93.01839,0,0,0,5,1,4,63.3,17.2,0,71.6,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,71.6,8.0622,1.386294,4.532797,1 +13,3,0,0,2,329753,1,3171.261,17.26557,1,12,1,35.48992,6.558837,0,0,1493.39,1535.438,1,0,0,2,0,3,63.3,17.2,0,71.6,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,1,0,0,71.6,8.0622,1.098612,7.336571,1 +13,3,0,0,1,329754,1,3171.261,8.262834,0,12,1,6.128703,11.41982,0,0,0,17.54852,0,0,0,1,0,4,86.7,9.967326,0,51.9,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,51.9,8.0622,1.386294,2.864969,1 +13,3,0,0,2,329754,1,3171.261,9.262834,0,12,1,20.06564,0,0,0,0,20.06564,0,0,0,2,0,3,86.7,9.967326,0,51.9,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,51.9,8.0622,1.098612,2.999009,1 +13,3,0,0,3,329754,1,3171.261,10.26283,0,12,1,5.159071,3.525365,0,0,0,8.684437,0,0,0,1,0,2,86.7,9.967326,0,51.9,450,450,1,0,.6931472,6.109248,1,4.564348,6.160541,1,0,0,51.9,8.0622,.6931472,2.161533,1 +13,3,0,0,4,329754,1,3171.261,11.26283,0,12,1,11.63242,3.935634,0,0,0,15.56805,0,0,0,2,0,2,86.7,9.967326,0,51.9,450,450,1,0,.6931472,6.109248,1,4.564348,6.160541,1,0,0,51.9,8.0622,.6931472,2.745221,1 +13,3,0,0,5,329754,1,3171.261,12.26283,0,12,1,22.64685,3.927813,0,0,0,26.57466,0,0,0,3,0,2,86.7,9.967326,0,51.9,450,450,1,0,.6931472,6.109248,1,4.564348,6.160541,1,0,0,51.9,8.0622,.6931472,3.279958,1 +13,3,0,0,1,329755,1,3171.261,17.48939,0,12,1,38.30439,4.417773,0,0,0,42.72216,0,0,0,3,0,4,97.9,3.4,0,94,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,94,8.0622,1.386294,3.754718,1 +6,3,25,1,1,329775,0,6272.727,4.013689,1,12,1,41.73107,27.01185,0,0,0,68.74291,0,0,0,8,0,4,83.39137,9.967326,0,92.6,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,0,0,0,92.6,8.744126,1.386294,4.230374,1 +6,3,25,1,2,329775,0,6272.727,5.013689,1,12,1,104.6402,30.20833,0,0,0,134.8485,0,0,0,9,0,4,83.39137,9.967326,0,92.6,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,0,0,0,92.6,8.744126,1.386294,4.904152,1 +6,3,25,1,3,329775,0,6272.727,6.013689,1,12,1,14.73775,2.427395,22.97356,0,0,40.13871,0,0,0,1,1,4,83.39137,9.967326,0,92.6,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,0,0,0,92.6,8.744126,1.386294,3.692341,1 +6,3,25,1,1,329776,0,6272.727,32.28474,0,12,1,6.697578,0,0,0,0,6.697578,0,0,0,1,0,4,60.1,0,0,52.3,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,52.3,8.744126,1.386294,1.901746,1 +6,3,25,1,2,329776,0,6272.727,33.28474,0,12,1,88.30492,0,0,0,0,88.30492,0,0,0,1,0,4,60.1,0,0,52.3,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,52.3,8.744126,1.386294,4.480796,1 +6,3,25,1,3,329776,0,6272.727,34.28474,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,60.1,0,0,52.3,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,52.3,8.744126,1.386294,,0 +6,3,25,1,1,329777,0,6272.727,1.404517,1,12,1,69.03658,15.82689,0,0,0,84.86347,0,0,0,9,0,4,83.39137,9.967326,0,96.3,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,0,0,0,96.3,8.744126,1.386294,4.441044,1 +6,3,25,1,2,329777,0,6272.727,2.404517,1,12,1,39.29924,4.142992,0,0,0,43.44223,0,0,0,4,0,4,83.39137,9.967326,0,96.3,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,0,0,0,96.3,8.744126,1.386294,3.771432,1 +6,3,25,1,3,329777,0,6272.727,3.404517,1,12,1,5.635024,1.950585,0,0,0,7.585609,0,0,0,1,0,4,83.39137,9.967326,0,96.3,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,0,0,0,96.3,8.744126,1.386294,2.026253,1 +6,3,25,1,1,329778,0,6272.727,29.47844,1,12,1,22.15353,0,29.36631,0,0,51.51984,0,0,0,1,1,4,79.3,6.9,0,83,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,83,8.744126,1.386294,3.941967,1 +6,3,25,1,2,329778,0,6272.727,30.47844,1,12,1,0,3.432765,21.7803,0,0,25.21307,0,0,0,0,0,4,79.3,6.9,0,83,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,83,8.744126,1.386294,3.227362,1 +6,3,25,1,3,329778,0,6272.727,31.47844,1,12,1,6.501951,0,0,0,0,6.501951,0,0,0,1,0,4,79.3,6.9,0,83,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,83,8.744126,1.386294,1.872102,1 +11,3,0,1,1,329806,0,2791.789,21.9165,0,12,1,374.7753,12.09908,29.62206,35.75077,0,416.4964,0,0,2,7,3,1,61.7,17.2,1,78.4,0,211.2,0,0,0,5.352806,0,0,0,0,0,0,78.4,7.934796,0,6.031878,1 +11,3,0,1,2,329806,0,2791.789,22.9165,0,12,1,211.2049,0,19.45617,60.94702,0,230.661,0,0,3,6,14,1,61.7,17.2,1,78.4,0,211.2,0,0,0,5.352806,0,0,0,0,0,0,78.4,7.934796,0,5.440949,1 +11,3,0,1,3,329806,0,2791.789,23.9165,0,12,1,46.86156,0,23.00086,0,0,69.86243,0,0,0,2,6,1,61.7,17.2,1,78.4,0,211.2,0,0,0,5.352806,0,0,0,0,0,0,78.4,7.934796,0,4.246528,1 +11,3,0,1,1,329807,0,2365.982,23.00342,1,12,1,97.24208,41.16446,0,0,0,138.4065,0,0,0,7,0,1,70.2,3.4,0,76.1,0,0,0,0,0,0,0,0,0,0,0,0,76.1,7.769371,0,4.930195,1 +11,3,0,1,2,329807,0,2365.982,24.00342,1,12,1,84.38818,21.594,3.398969,0,0,109.3812,0,0,0,5,3,1,70.2,3.4,0,76.1,0,0,0,0,0,0,0,0,0,0,0,0,76.1,7.769371,0,4.694839,1 +11,3,0,1,3,329807,0,2365.982,25.00342,1,12,1,13.28461,0,0,0,0,13.28461,0,0,0,1,0,1,70.2,3.4,0,76.1,0,0,0,0,0,0,0,0,0,0,0,0,76.1,7.769371,0,2.586606,1 +16,3,95,1,1,329825,0,9685.044,11.52909,0,12,1,21.25506,0,0,0,0,21.25506,0,0,0,0,0,4,91.7,9.967326,0,85.2,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,85.2,9.178441,1.386294,3.056595,1 +16,3,95,1,2,329825,0,9685.044,12.52909,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,91.7,9.967326,0,85.2,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,85.2,9.178441,1.386294,,0 +16,3,95,1,3,329825,0,9685.044,13.52909,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,91.7,9.967326,0,85.2,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,85.2,9.178441,1.386294,,0 +16,3,95,1,1,329826,0,9685.044,40.282,0,7,1,10.12146,2.656883,0,0,0,12.77834,0,0,0,1,0,4,83,3.4,0,83,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,83,9.178441,1.386294,2.547752,1 +16,3,95,1,2,329826,0,9685.044,41.282,0,7,1,0,0,0,0,0,0,0,0,0,0,0,4,83,3.4,0,83,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,83,9.178441,1.386294,,0 +16,3,95,1,3,329826,0,9685.044,42.282,0,7,1,0,0,0,0,0,0,0,0,0,0,0,4,83,3.4,0,83,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,83,9.178441,1.386294,,0 +16,3,95,1,1,329827,0,9685.044,35.95893,1,12,1,5.060729,4.352227,0,0,0,9.412955,0,0,0,1,0,4,92,24.1,1,29.5,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,29.5,9.178441,1.386294,2.242087,1 +16,3,95,1,2,329827,0,9685.044,36.95893,1,12,1,72.72727,0,0,0,0,72.72727,0,0,0,1,0,4,92,24.1,1,29.5,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,29.5,9.178441,1.386294,4.286716,1 +16,3,95,1,3,329827,0,9685.044,37.95893,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,92,24.1,1,29.5,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,29.5,9.178441,1.386294,,0 +16,3,95,1,1,329828,0,9685.044,7.419576,0,12,1,0,4.605263,0,0,0,4.605263,0,0,0,0,0,4,83.3,9.967326,0,92.6,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,92.6,9.178441,1.386294,1.5272,1 +16,3,95,1,2,329828,0,9685.044,8.419576,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,83.3,9.967326,0,92.6,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,92.6,9.178441,1.386294,,0 +16,3,95,1,3,329828,0,9685.044,9.419576,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,83.3,9.967326,0,92.6,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,92.6,9.178441,1.386294,,0 +13,3,0,1,1,329858,0,7188.27,4.317591,0,9,1,3.036437,0,0,0,0,3.036437,0,0,0,2,0,7,83.39137,9.967326,0,88.9,450,450,1,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,88.9,8.880345,1.94591,1.110685,1 +13,3,0,1,2,329858,0,7188.27,5.317591,0,9,1,5.594406,0,0,0,0,5.594406,0,0,0,1,0,7,83.39137,9.967326,0,88.9,450,450,1,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,88.9,8.880345,1.94591,1.721767,1 +13,3,0,1,3,329858,0,7188.27,6.317591,0,9,1,49.55109,0,0,0,0,49.55109,0,0,0,4,1,7,83.39137,9.967326,0,88.9,450,450,1,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,88.9,8.880345,1.94591,3.903004,1 +13,3,0,1,1,329859,0,7188.27,13.77413,1,9,1,16.70041,17.99089,11.1336,0,0,45.8249,0,0,0,2,1,7,80,9.967326,0,29.6,450,450,1,1,1.94591,6.109248,1,4.564348,6.160541,1,0,0,29.6,8.880345,1.94591,3.824828,1 +13,3,0,1,2,329859,0,7188.27,14.77413,1,9,1,23.31002,21.56177,28.90443,0,0,73.77622,0,0,0,3,1,7,80,9.967326,0,29.6,450,450,1,1,1.94591,6.109248,1,4.564348,6.160541,1,0,0,29.6,8.880345,1.94591,4.301036,1 +13,3,0,1,3,329859,0,7188.27,15.77413,1,9,1,16.67379,8.978196,0,0,0,25.65199,0,0,0,3,0,7,80,9.967326,0,29.6,450,450,1,1,1.94591,6.109248,1,4.564348,6.160541,1,0,0,29.6,8.880345,1.94591,3.244621,1 +13,3,0,1,1,329860,0,7188.27,14.69678,1,9,1,20.24291,0,0,0,0,20.24291,0,0,0,3,0,7,61.7,10.3,0,78.6,450,450,1,1,1.94591,6.109248,1,4.564348,6.160541,1,0,0,78.6,8.880345,1.94591,3.007805,1 +13,3,0,1,2,329860,0,7188.27,15.69678,1,9,1,7.925408,0,0,0,0,7.925408,0,0,0,1,0,7,61.7,10.3,0,78.6,450,450,1,1,1.94591,6.109248,1,4.564348,6.160541,1,0,0,78.6,8.880345,1.94591,2.070074,1 +13,3,0,1,3,329860,0,7188.27,16.69678,1,9,1,51.73151,0,0,0,0,51.73151,0,0,0,2,0,7,61.7,10.3,0,78.6,450,450,1,1,1.94591,6.109248,1,4.564348,6.160541,1,0,0,78.6,8.880345,1.94591,3.946067,1 +13,3,0,1,1,329861,0,7188.27,31.57563,1,9,1,27.32794,25.25304,26.31579,0,0,78.89676,0,0,0,1,1,7,75,6.9,0,69.3,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,69.3,8.880345,1.94591,4.36814,1 +13,3,0,1,2,329861,0,7188.27,32.57563,1,9,1,96.50349,22.68065,0,0,0,119.1842,0,0,0,4,0,7,75,6.9,0,69.3,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,69.3,8.880345,1.94591,4.78067,1 +13,3,0,1,3,329861,0,7188.27,33.57563,1,9,1,31.20992,12.16332,20.94912,0,529.1064,593.4288,1,0,0,3,1,7,75,6.9,0,69.3,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,69.3,8.880345,1.94591,6.385917,1 +13,3,0,1,1,329862,0,7188.27,12.75565,1,9,1,5.060729,0,0,0,0,5.060729,0,0,0,1,0,7,78.3,9.967326,1,100,450,450,1,1,1.94591,6.109248,1,4.564348,6.160541,0,0,0,100,8.880345,1.94591,1.621511,1 +13,3,0,1,2,329862,0,7188.27,13.75565,1,9,1,11.65501,0,0,0,0,11.65501,0,0,0,2,0,7,78.3,9.967326,1,100,450,450,1,1,1.94591,6.109248,1,4.564348,6.160541,0,0,0,100,8.880345,1.94591,2.455736,1 +13,3,0,1,3,329862,0,7188.27,14.75565,1,9,1,5.985464,0,0,0,0,5.985464,0,0,0,1,0,7,78.3,9.967326,1,100,450,450,1,1,1.94591,6.109248,1,4.564348,6.160541,0,0,0,100,8.880345,1.94591,1.789334,1 +13,3,0,1,1,329863,0,7188.27,34.4887,0,7,1,30.36437,10.12146,0,0,0,40.48583,0,0,0,0,3,7,79.8,0,0,84.1,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,84.1,8.880345,1.94591,3.700952,1 +13,3,0,1,2,329863,0,7188.27,35.4887,0,7,1,13.98601,0,0,0,0,13.98601,0,0,0,0,3,7,79.8,0,0,84.1,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,84.1,8.880345,1.94591,2.638058,1 +13,3,0,1,3,329863,0,7188.27,36.4887,0,7,1,70.07268,5.921334,0,0,0,75.99401,0,0,0,4,2,7,79.8,0,0,84.1,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,84.1,8.880345,1.94591,4.330655,1 +13,3,0,1,1,329864,0,7188.27,11.11567,1,9,1,42.51012,2.530364,0,0,345.1771,390.2176,1,0,0,3,0,7,75,9.967326,0,92.6,450,450,1,1,1.94591,6.109248,1,4.564348,6.160541,0,1,0,92.6,8.880345,1.94591,5.966704,1 +13,3,0,1,2,329864,0,7188.27,12.11567,1,9,1,111.4219,197.4592,0,0,857.0862,1165.967,1,0,0,10,0,7,75,9.967326,0,92.6,450,450,1,1,1.94591,6.109248,1,4.564348,6.160541,0,1,0,92.6,8.880345,1.94591,7.061306,1 +13,3,0,1,3,329864,0,7188.27,13.11567,1,9,1,75.71612,107.1612,0,0,375.9,558.7773,1,0,0,8,6,7,75,9.967326,0,92.6,450,450,1,1,1.94591,6.109248,1,4.564348,6.160541,0,1,0,92.6,8.880345,1.94591,6.325751,1 +10,3,50,1,1,329921,0,4194.721,14.19849,0,12,1,36.94332,0,0,0,0,36.94332,0,0,0,4,0,4,61.2,3.4,0,72.7,930,930,1,0,1.386294,6.835185,0,3.931826,7.528332,0,0,0,72.7,8.341821,1.386294,3.609385,1 +10,3,50,1,2,329921,0,4194.721,15.19849,0,12,1,19.34732,1.818182,24.70862,0,0,45.87413,0,0,0,1,1,4,61.2,3.4,0,72.7,930,930,1,0,1.386294,6.835185,0,3.931826,7.528332,0,0,0,72.7,8.341821,1.386294,3.825901,1 +10,3,50,1,3,329921,0,4194.721,16.19849,0,12,1,5.130398,1.923899,0,0,0,7.054296,0,0,0,1,0,4,61.2,3.4,0,72.7,930,930,1,0,1.386294,6.835185,0,3.931826,7.528332,0,0,0,72.7,8.341821,1.386294,1.953637,1 +10,3,50,1,1,329922,0,4194.721,35.154,1,12,1,7.591093,1.265182,0,0,0,8.856276,0,0,0,1,0,4,58,27.6,0,51.1,930,930,0,0,1.386294,6.835185,0,3.931826,7.528332,1,0,0,51.1,8.341821,1.386294,2.181126,1 +10,3,50,1,2,329922,0,4194.721,36.154,1,12,1,41.49184,1.375291,24.24242,0,0,67.10956,0,0,0,2,1,4,58,27.6,0,51.1,930,930,0,0,1.386294,6.835185,0,3.931826,7.528332,1,0,0,51.1,8.341821,1.386294,4.206326,1 +10,3,50,1,3,329922,0,4194.721,37.154,1,12,1,179.1364,14.83967,0,0,0,193.9761,0,0,0,23,0,4,58,27.6,0,51.1,930,930,0,0,1.386294,6.835185,0,3.931826,7.528332,1,0,0,51.1,8.341821,1.386294,5.267735,1 +10,3,50,1,1,329923,0,4194.721,8.260096,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,75,9.967326,0,22.2,930,930,1,1,1.386294,6.835185,0,3.931826,7.528332,0,1,0,22.2,8.341821,1.386294,,0 +10,3,50,1,2,329923,0,4194.721,9.260096,1,12,1,95.66434,.8111888,0,0,395.2634,491.7389,1,0,0,1,0,4,75,9.967326,0,22.2,930,930,1,1,1.386294,6.835185,0,3.931826,7.528332,0,1,0,22.2,8.341821,1.386294,6.197948,1 +10,3,50,1,3,329923,0,4194.721,10.2601,1,12,1,153.0569,6.89611,0,0,572.8089,732.7618,2,0,0,5,0,4,75,9.967326,0,22.2,930,930,1,1,1.386294,6.835185,0,3.931826,7.528332,0,1,0,22.2,8.341821,1.386294,6.596821,1 +10,3,50,1,1,329924,0,4194.721,15.27721,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,69.1,3.4,0,76.1,930,930,1,0,1.386294,6.835185,0,3.931826,7.528332,1,0,0,76.1,8.341821,1.386294,,0 +10,3,50,1,2,329924,0,4194.721,16.27721,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,69.1,3.4,0,76.1,930,930,1,0,1.386294,6.835185,0,3.931826,7.528332,1,0,0,76.1,8.341821,1.386294,,0 +10,3,50,1,3,329924,0,4194.721,17.27721,0,12,1,48.73878,4.608807,0,0,1037.79,1091.137,2,0,0,5,1,4,69.1,3.4,0,76.1,930,930,1,0,1.386294,6.835185,0,3.931826,7.528332,1,0,0,76.1,8.341821,1.386294,6.994976,1 +15,3,95,1,1,329942,0,7025.22,60.39151,1,14,1,45.04049,14.82794,11.63968,0,0,71.50809,0,0,0,6,0,1,79.8,10.3,0,94,491.68,492.84,0,0,0,6.200184,0,4.564348,6.249121,1,0,0,94,8.857404,0,4.269811,1 +15,3,95,1,2,329942,0,7025.22,61.39151,1,14,1,18.64802,15.85082,0,0,0,34.49883,0,0,0,2,0,1,79.8,10.3,0,94,491.68,492.84,0,0,0,6.200184,0,4.564348,6.249121,1,0,0,94,8.857404,0,3.540926,1 +15,3,95,1,3,329942,0,7025.22,62.39151,1,14,1,93.62975,12.01368,31.20992,0,0,136.8534,0,0,0,6,1,1,79.8,10.3,0,94,491.68,492.84,0,0,0,6.200184,0,4.564348,6.249121,1,0,0,94,8.857404,0,4.91891,1 +17,3,25,1,1,329954,0,6176.54,1.117043,0,13,1,80.66801,10.24798,0,0,0,90.91599,0,0,0,7,0,4,83.39137,9.967326,0,88.9,560,560,1,0,1.386294,6.327937,0,3.258096,7.714231,0,0,0,88.9,8.728675,1.386294,4.509936,1 +17,3,25,1,2,329954,0,6176.54,2.117043,0,13,1,16.78322,6.759907,0,0,0,23.54312,0,0,0,3,0,4,83.39137,9.967326,0,88.9,560,560,1,0,1.386294,6.327937,0,3.258096,7.714231,0,0,0,88.9,8.728675,1.386294,3.158834,1 +17,3,25,1,3,329954,0,6176.54,3.117043,0,13,1,39.76058,28.0248,0,0,0,67.78538,0,0,0,5,0,5,83.39137,9.967326,0,88.9,560,560,1,0,1.609438,6.327937,0,3.258096,7.714231,0,0,0,88.9,8.728675,1.609438,4.216346,1 +17,3,25,1,1,329955,0,6176.54,25.30869,0,12,1,117.9909,7.287449,34.41296,0,301.67,461.3613,1,0,0,3,1,4,58,3.4,0,62.5,560,560,0,0,1.386294,6.327937,0,3.258096,7.714231,0,0,0,62.5,8.728675,1.386294,6.134181,1 +17,3,25,1,2,329955,0,6176.54,26.30869,0,12,1,158.042,18.50816,0,0,0,176.5501,0,0,0,5,0,4,58,3.4,0,62.5,560,560,0,0,1.386294,6.327937,0,3.258096,7.714231,0,0,0,62.5,8.728675,1.386294,5.173605,1 +17,3,25,1,3,329955,0,6176.54,27.30869,0,12,1,59.85464,13.51005,0,0,0,73.36469,0,0,0,2,0,5,58,3.4,0,62.5,560,560,0,0,1.609438,6.327937,0,3.258096,7.714231,0,0,0,62.5,8.728675,1.609438,4.295443,1 +17,3,25,1,1,329956,0,6176.54,1.117043,0,13,1,47.57085,5.263158,0,0,0,52.83401,0,0,0,5,0,4,83.39137,9.967326,0,85.2,560,560,1,0,1.386294,6.327937,0,3.258096,7.714231,0,0,0,85.2,8.728675,1.386294,3.967155,1 +17,3,25,1,2,329956,0,6176.54,2.117043,0,13,1,49.41725,0,0,0,0,49.41725,0,0,0,5,0,4,83.39137,9.967326,0,85.2,560,560,1,0,1.386294,6.327937,0,3.258096,7.714231,0,0,0,85.2,8.728675,1.386294,3.9003,1 +17,3,25,1,3,329956,0,6176.54,3.117043,0,13,1,19.66652,6.45575,0,0,0,26.12227,0,0,0,3,0,5,83.39137,9.967326,0,85.2,560,560,1,0,1.609438,6.327937,0,3.258096,7.714231,0,0,0,85.2,8.728675,1.609438,3.262788,1 +17,3,25,1,1,329957,0,6176.54,23.62491,1,13,1,46.5587,17.81376,20.1164,0,0,84.48887,0,0,0,3,1,4,80.9,10.3,0,72.7,560,560,0,0,1.386294,6.327937,0,3.258096,7.714231,0,0,0,72.7,8.728675,1.386294,4.43662,1 +17,3,25,1,2,329957,0,6176.54,24.62491,1,13,1,0,0,0,0,637.9348,637.9348,1,0,0,0,0,4,80.9,10.3,0,72.7,560,560,0,0,1.386294,6.327937,0,3.258096,7.714231,0,0,0,72.7,8.728675,1.386294,6.458236,1 +17,3,25,1,3,329957,0,6176.54,25.62491,1,13,1,25.01069,2.308679,34.20265,0,0,61.52202,0,0,0,2,0,5,80.9,10.3,0,72.7,560,560,0,0,1.609438,6.327937,0,3.258096,7.714231,0,0,0,72.7,8.728675,1.609438,4.119395,1 +13,3,0,0,1,329977,0,4826.979,59.82204,1,12,1,22.66873,0,36.06388,0,0,58.73261,0,0,0,2,1,1,69.7,10.3,0,69.3,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,69.3,8.482183,0,4.072995,1 +13,3,0,0,2,329977,0,4826.979,60.82204,1,12,1,10.89015,5.023674,0,0,0,15.91383,0,0,0,1,0,1,69.7,10.3,0,69.3,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,69.3,8.482183,0,2.767188,1 +13,3,0,0,3,329977,0,4826.979,61.82204,1,12,1,22.10663,0,26.87473,0,0,48.98136,0,0,0,2,1,1,69.7,10.3,0,69.3,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,69.3,8.482183,0,3.89144,1 +13,3,0,1,1,329984,0,3399.414,44.34223,1,12,1,98.05924,1.716037,0,0,0,99.77528,0,0,0,5,1,1,75.5,20.7,0,47.7,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,47.7,8.131652,0,4.602921,1 +13,3,0,1,2,329984,0,3399.414,45.34223,1,12,1,229.5359,11.41116,0,0,735.1617,976.1088,2,0,0,14,0,1,75.5,20.7,0,47.7,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,47.7,8.131652,0,6.883574,1 +13,3,0,1,3,329984,0,3399.414,46.34223,1,12,1,6.448839,0,0,0,0,6.448839,0,0,0,1,0,1,75.5,20.7,0,47.7,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,47.7,8.131652,0,1.8639,1 +19,3,25,1,1,330004,0,10370.67,14.34908,1,8,1,68.31984,2.024292,0,0,1991.037,2061.382,2,0,0,8,0,4,61.2,6.9,0,53.4,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,1,0,0,53.4,9.246834,1.386294,7.631132,1 +19,3,25,1,2,330004,0,10370.67,15.34908,1,8,1,467.4312,13.31468,0,0,1461.296,1942.042,2,0,0,8,0,4,61.2,6.9,0,53.4,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,1,0,0,53.4,9.246834,1.386294,7.571495,1 +19,3,25,1,3,330004,0,10370.67,16.34908,1,8,1,125.4382,7.48183,0,0,0,132.92,0,0,0,13,0,4,61.2,6.9,0,53.4,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,1,0,0,53.4,9.246834,1.386294,4.889748,1 +19,3,25,1,1,330005,0,10370.67,46.61739,1,8,1,122.4696,12.85425,26.82186,37.95547,0,162.1458,0,0,5,5,1,4,68.1,44.8,1,95.5,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,95.5,9.246834,1.386294,5.088496,1 +19,3,25,1,2,330005,0,10370.67,47.61739,1,8,1,97.9021,5.734266,20.51282,0,0,124.1492,0,0,0,4,7,4,68.1,44.8,1,95.5,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,95.5,9.246834,1.386294,4.821484,1 +19,3,25,1,3,330005,0,10370.67,48.61739,1,8,1,34.20265,0,32.49252,0,0,66.69517,0,0,0,1,1,4,68.1,44.8,1,95.5,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,95.5,9.246834,1.386294,4.200132,1 +19,3,25,1,1,330006,0,10370.67,44.86242,0,12,1,76.29049,16.97874,24.79757,37.95547,0,118.0668,0,0,5,5,1,4,28.7,10.3,1,50,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,50,9.246834,1.386294,4.771251,1 +19,3,25,1,2,330006,0,10370.67,45.86242,0,12,1,14.45221,.9324009,20.51282,0,0,35.89743,0,0,0,1,1,4,28.7,10.3,1,50,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,50,9.246834,1.386294,3.580666,1 +19,3,25,1,3,330006,0,10370.67,46.86242,0,12,1,50.19239,6.797777,3.787944,0,0,60.77811,0,0,0,2,0,4,28.7,10.3,1,50,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,50,9.246834,1.386294,4.10723,1 +19,3,25,1,1,330007,0,10370.67,17.50034,1,8,1,127.7328,3.785425,27.83401,182.1862,0,159.3522,0,0,12,4,1,4,65.4,10.3,0,71.6,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,1,0,0,71.6,9.246834,1.386294,5.071117,1 +19,3,25,1,2,330007,0,10370.67,18.50034,1,8,1,120.6993,18.50816,0,0,0,139.2075,0,0,0,9,0,4,65.4,10.3,0,71.6,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,71.6,9.246834,1.386294,4.935966,1 +19,3,25,1,3,330007,0,10370.67,19.50034,1,8,1,33.34758,2.436939,20.09406,0,0,55.87858,0,0,0,2,1,4,65.4,10.3,0,71.6,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,71.6,9.246834,1.386294,4.023181,1 +19,3,25,1,1,330008,0,4975.367,20.46817,0,12,1,58.80567,1.821862,0,0,0,60.62753,0,0,0,4,0,1,71.8,0,0,75,432.6,432.6,0,0,0,6.069814,0,3.258096,7.456108,1,0,0,75,8.512455,0,4.104749,1 +19,3,25,1,2,330008,0,4975.367,21.46817,0,12,1,84.80186,0,0,0,0,84.80186,0,0,0,5,0,1,71.8,0,0,75,432.6,432.6,0,0,0,6.069814,0,3.258096,7.456108,1,0,0,75,8.512455,0,4.440318,1 +19,3,25,1,3,330008,0,4975.367,22.46817,0,12,1,63.46729,2.693459,0,0,755.4895,821.6503,1,0,0,3,0,1,71.8,0,0,75,432.6,432.6,0,0,0,6.069814,0,3.258096,7.456108,1,0,0,75,8.512455,0,6.711315,1 +19,3,25,1,1,330009,0,7995.308,19.17591,1,12,1,33.40081,13.1579,0,0,886.3917,932.9504,2,0,0,0,0,1,68.6,3.4,0,67,390,390,0,0,0,5.966147,0,3.258096,7.352441,1,0,0,67,8.986735,0,6.838352,1 +19,3,25,1,2,330009,0,7995.308,20.17591,1,12,1,11.18881,14.10256,0,0,0,25.29138,0,0,0,1,0,2,68.6,3.4,0,67,390,390,0,0,.6931472,5.966147,0,3.258096,7.352441,1,0,0,67,8.986735,.6931472,3.230464,1 +19,3,25,1,3,330009,0,7995.308,21.17591,1,12,1,26.93459,8.550663,0,0,648.0462,683.5314,1,0,0,1,0,2,68.6,3.4,0,67,390,390,0,0,.6931472,5.966147,0,3.258096,7.352441,1,0,0,67,8.986735,.6931472,6.527273,1 +13,3,0,1,1,330012,0,7196.79,32.21903,0,8,1,0,0,0,0,0,0,0,0,0,0,0,5,81.4,6.9,0,96.6,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,96.6,8.881529,1.609438,,0 +13,3,0,1,1,330013,0,7196.79,11.01985,0,8,1,10.12146,0,25.80972,0,0,35.93118,0,0,0,0,1,5,70,9.967326,1,37,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,1,0,37,8.881529,1.609438,3.581605,1 +13,3,0,1,1,330014,0,7196.79,28.98836,1,8,1,41.49797,9.868421,0,0,456.9585,508.3249,1,0,0,5,0,5,57.4,34.5,1,38.6,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,1,0,38.6,8.881529,1.609438,6.231121,1 +13,3,0,1,1,330015,0,7196.79,8.145106,1,8,1,0,0,0,0,0,0,0,0,0,0,0,5,86.7,9.967326,0,77.8,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,1,0,0,77.8,8.881529,1.609438,,0 +13,3,0,1,1,330016,0,7196.79,12.38604,1,8,1,0,0,0,0,0,0,0,0,0,0,0,5,83.3,9.967326,0,63,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,1,0,0,63,8.881529,1.609438,,0 +13,3,0,1,1,330021,0,6943.695,42.27515,1,16,1,87.79858,34.46356,0,53.13765,0,122.2621,0,0,5,6,0,3,67,10.3,0,78.4,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,78.4,8.845734,1.098612,4.806168,1 +13,3,0,1,2,330021,0,6943.695,43.27515,1,16,1,311.4219,17.99534,0,0,0,329.4172,0,0,0,7,0,3,67,10.3,0,78.4,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,78.4,8.845734,1.098612,5.797325,1 +13,3,0,1,3,330021,0,6943.695,44.27515,1,16,1,219.5383,14.36511,31.63745,0,0,265.5408,0,0,0,1,0,3,67,10.3,0,78.4,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,78.4,8.845734,1.098612,5.581769,1 +13,3,0,1,1,330022,0,6943.695,11.71253,1,16,1,26.82186,1.998988,0,0,0,28.82085,0,0,0,3,0,3,83.3,9.967326,0,96.3,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,0,0,0,96.3,8.845734,1.098612,3.361099,1 +13,3,0,1,2,330022,0,6943.695,12.71253,1,16,1,41.02564,6.247086,0,0,0,47.27273,0,0,0,3,0,3,83.3,9.967326,0,96.3,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,0,0,0,96.3,8.845734,1.098612,3.855934,1 +13,3,0,1,3,330022,0,6943.695,13.71253,1,16,1,55.96409,2.778965,0,0,0,58.74305,0,0,0,5,0,3,83.3,9.967326,0,96.3,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,0,0,0,96.3,8.845734,1.098612,4.073173,1 +13,3,0,1,1,330049,0,4754.839,8.167009,0,12,1,27.37487,3.447395,0,0,0,30.82227,0,0,0,2,0,3,73.3,9.967326,0,96.3,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,96.3,8.467129,1.098612,3.428237,1 +13,3,0,1,2,330049,0,4754.839,9.167009,0,12,1,24.84763,0,0,0,0,24.84763,0,0,0,2,0,3,73.3,9.967326,0,96.3,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,96.3,8.467129,1.098612,3.212763,1 +13,3,0,1,3,330049,0,4754.839,10.16701,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,73.3,9.967326,0,96.3,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,96.3,8.467129,1.098612,,0 +13,3,0,1,1,330050,0,4754.839,5.913758,0,12,1,6.639428,5.132789,0,0,0,11.77222,0,0,0,1,0,3,81.7,9.967326,0,96.3,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,96.3,8.467129,1.098612,2.465742,1 +13,3,0,1,2,330050,0,4754.839,6.913758,0,12,1,20.62822,0,0,0,0,20.62822,0,0,0,2,0,3,81.7,9.967326,0,96.3,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,96.3,8.467129,1.098612,3.02666,1 +13,3,0,1,3,330050,0,4754.839,7.913758,0,12,1,4.729149,0,0,0,0,4.729149,0,0,0,1,0,3,81.7,9.967326,0,96.3,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,96.3,8.467129,1.098612,1.553745,1 +13,3,0,1,1,330051,0,4754.839,29.27036,1,12,1,56.43514,20.37794,0,0,0,76.81307,0,0,0,7,0,3,39.4,13.8,0,65.9,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,65.9,8.467129,1.098612,4.341375,1 +13,3,0,1,2,330051,0,4754.839,30.27036,1,12,1,49.69527,5.508673,0,0,0,55.20394,0,0,0,4,0,3,39.4,13.8,0,65.9,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,65.9,8.467129,1.098612,4.011034,1 +13,3,0,1,3,330051,0,4754.839,31.27036,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,39.4,13.8,0,65.9,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,65.9,8.467129,1.098612,,0 +7,3,25,1,1,330053,0,6499.707,60.59138,0,12,1,17.71255,1.275304,39.47368,0,0,58.46154,0,0,0,1,1,2,96.8,3.4,1,69.3,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,69.3,8.779666,.6931472,4.068369,1 +7,3,25,1,2,330053,0,6499.707,61.59138,0,12,1,11.65501,0,0,0,0,11.65501,0,0,0,2,0,2,96.8,3.4,1,69.3,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,69.3,8.779666,.6931472,2.455736,1 +7,3,25,1,3,330053,0,6499.707,62.59138,0,12,1,20.52159,1.620351,0,0,0,22.14194,0,0,0,3,0,2,96.8,3.4,1,69.3,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,69.3,8.779666,.6931472,3.097474,1 +7,3,25,1,1,330054,0,6499.707,59.11294,1,12,1,171.6245,215.2783,43.01619,0,0,429.919,0,0,0,12,1,2,65.4,20.7,1,27.3,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,1,0,27.3,8.779666,.6931472,6.063597,1 +7,3,25,1,2,330054,0,6499.707,60.11294,1,12,1,71.32867,193.3194,0,0,0,264.648,0,0,0,5,2,2,65.4,20.7,1,27.3,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,1,0,27.3,8.779666,.6931472,5.578401,1 +7,3,25,1,3,330054,0,6499.707,61.11294,1,12,1,186.49,107.4177,83.04831,0,7576.323,7953.279,2,0,0,8,7,2,65.4,20.7,1,27.3,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,1,0,27.3,8.779666,.6931472,8.981339,1 +11,3,0,0,1,330103,0,8704.985,45.88091,0,10,1,26.31579,0,22.26721,0,0,48.583,0,0,0,4,1,3,74.46748,9.967326,.1572505,,0,0,0,0,1.098612,0,0,0,0,0,0,0,72.06626,9.071766,1.098612,3.883274,1 +11,3,0,0,2,330103,0,8704.985,46.88091,0,10,1,68.06527,136.62,18.64802,228.4382,0,223.3333,0,0,9,3,1,3,74.46748,9.967326,.1572505,,0,0,0,0,1.098612,0,0,0,0,0,0,0,72.06626,9.071766,1.098612,5.408665,1 +11,3,0,0,3,330103,0,8704.985,47.88091,0,10,1,68.14878,153.5784,0,136.8106,3858.358,4080.085,1,0,6,0,0,3,74.46748,9.967326,.1572505,,0,0,0,0,1.098612,0,0,0,0,0,0,0,72.06626,9.071766,1.098612,8.313873,1 +11,3,0,0,4,330103,0,8704.985,48.88091,0,10,1,99.8847,105.4304,29.97694,922.3674,9346.172,9581.464,2,0,40,5,1,3,74.46748,9.967326,.1572505,,0,0,0,0,1.098612,0,0,0,0,0,0,0,72.06626,9.071766,1.098612,9.167585,1 +11,3,0,0,5,330103,0,8704.985,49.88091,0,10,1,46.78609,75.18792,0,770.987,0,121.974,0,0,37,2,0,2,74.46748,9.967326,.1572505,,0,0,0,0,.6931472,0,0,0,0,0,0,0,72.06626,9.071766,.6931472,4.803808,1 +11,3,0,0,1,330104,0,8704.985,44.13689,1,9,1,34.0587,8.729757,31.37652,0,0,74.16498,0,0,0,3,1,3,74.46748,9.967326,.1572505,,0,0,0,0,1.098612,0,0,0,0,0,0,0,72.06626,9.071766,1.098612,4.306292,1 +11,3,0,0,2,330104,0,8704.985,45.13689,1,9,1,26.10723,46.34033,41.95804,48.95105,0,114.4056,0,0,2,2,1,3,74.46748,9.967326,.1572505,,0,0,0,0,1.098612,0,0,0,0,0,0,0,72.06626,9.071766,1.098612,4.73975,1 +11,3,0,0,3,330104,0,8704.985,46.13689,1,9,1,28.47371,18.08893,51.30397,0,0,97.86661,0,0,0,1,1,3,74.46748,9.967326,.1572505,,0,0,0,0,1.098612,0,0,0,0,0,0,0,72.06626,9.071766,1.098612,4.583605,1 +11,3,0,0,4,330104,0,8704.985,47.13689,1,9,1,49.92314,13.72021,0,484.2429,0,63.64335,0,0,21,2,0,3,74.46748,9.967326,.1572505,,0,0,0,0,1.098612,0,0,0,0,0,0,0,72.06626,9.071766,1.098612,4.153295,1 +11,3,0,0,5,330104,0,8704.985,48.13689,1,9,1,28.5915,18.78469,29.85599,979.9789,0,77.23218,0,0,46,1,1,2,74.46748,9.967326,.1572505,,0,0,0,0,.6931472,0,0,0,0,0,0,0,72.06626,9.071766,.6931472,4.346816,1 +11,3,0,0,1,330106,0,8704.985,15.88775,1,9,1,253.9575,24.3168,37.55567,0,0,315.83,0,0,0,3,1,3,74.46748,9.967326,.1572505,,0,0,1,1,1.098612,0,0,0,0,0,0,0,72.06626,9.071766,1.098612,5.755204,1 +11,3,0,0,2,330106,0,8704.985,16.88775,1,9,1,9.324009,7.132867,20.49883,0,0,36.95571,0,0,0,0,1,3,74.46748,9.967326,.1572505,,0,0,1,1,1.098612,0,0,0,0,0,0,0,72.06626,9.071766,1.098612,3.60972,1 +11,3,0,0,3,330106,0,8704.985,17.88775,1,9,1,22.06071,8.208636,22.65926,0,0,52.9286,0,0,0,1,1,3,74.46748,9.967326,.1572505,,0,0,1,1,1.098612,0,0,0,0,0,0,0,72.06626,9.071766,1.098612,3.968944,1 +11,3,0,0,4,330106,0,8704.985,18.88775,1,9,1,21.13759,1.306687,18.44735,0,0,40.89162,0,0,0,2,1,3,74.46748,9.967326,.1572505,,0,0,0,0,1.098612,0,0,0,0,0,0,0,72.06626,9.071766,1.098612,3.710925,1 +18,3,25,1,1,330173,0,6519.062,42.39014,0,7,1,501.999,82.31275,0,0,0,584.3118,0,0,0,6,5,6,58.5,17.2,1,36.4,660,660,0,0,1.791759,6.49224,0,3.258096,7.878534,0,1,0,36.4,8.78264,1.791759,6.370435,1 +18,3,25,1,2,330173,0,6519.062,43.39014,0,7,1,95.66434,77.69231,37.29604,0,0,210.6527,0,0,0,6,1,6,58.5,17.2,1,36.4,660,660,0,0,1.791759,6.49224,0,3.258096,7.878534,0,1,0,36.4,8.78264,1.791759,5.350211,1 +18,3,25,1,3,330173,0,6519.062,44.39014,0,7,1,177.811,77.53313,0,0,0,255.3442,0,0,0,4,0,7,58.5,17.2,1,36.4,660,660,0,0,1.94591,6.49224,0,3.258096,7.878534,0,1,0,36.4,8.78264,1.94591,5.542612,1 +18,3,25,1,4,330173,0,6519.062,45.39014,0,7,1,43.04381,61.52959,36.51038,0,0,141.0838,0,0,0,1,1,8,58.5,17.2,1,36.4,660,660,0,0,2.079442,6.49224,0,3.258096,7.878534,0,1,0,36.4,8.78264,2.079442,4.949354,1 +18,3,25,1,5,330173,0,6519.062,46.39014,0,7,1,273.797,115.5954,34.21145,0,571.7492,995.353,1,0,0,8,1,8,58.5,17.2,1,36.4,660,660,0,0,2.079442,6.49224,0,3.258096,7.878534,0,1,0,36.4,8.78264,2.079442,6.903098,1 +18,3,25,1,1,330174,0,6519.062,14.65298,0,7,1,202.9352,14.95445,0,0,1097.166,1315.056,2,0,0,6,3,6,68.6,13.8,0,55.7,660,660,1,0,1.791759,6.49224,0,3.258096,7.878534,1,0,0,55.7,8.78264,1.791759,7.181634,1 +18,3,25,1,2,330174,0,6519.062,15.65298,0,7,1,54.73193,1.398601,0,0,0,56.13054,0,0,0,2,1,6,68.6,13.8,0,55.7,660,660,1,0,1.791759,6.49224,0,3.258096,7.878534,1,0,0,55.7,8.78264,1.791759,4.02768,1 +18,3,25,1,3,330174,0,6519.062,16.65298,0,7,1,98.76015,4.061565,0,0,0,102.8217,0,0,0,4,0,7,68.6,13.8,0,55.7,660,660,1,0,1.94591,6.49224,0,3.258096,7.878534,1,0,0,55.7,8.78264,1.94591,4.632997,1 +18,3,25,1,4,330174,0,6519.062,17.65298,0,7,1,182.9746,8.551114,0,0,0,191.5258,0,0,0,5,0,8,68.6,13.8,0,55.7,660,660,1,0,2.079442,6.49224,0,3.258096,7.878534,1,0,0,55.7,8.78264,2.079442,5.255023,1 +18,3,25,1,5,330174,0,6519.062,18.65298,0,7,1,171.0924,17.22866,0,0,0,188.321,0,0,0,8,1,8,68.6,13.8,0,55.7,660,660,0,0,2.079442,6.49224,0,3.258096,7.878534,1,0,0,55.7,8.78264,2.079442,5.238148,1 +18,3,25,1,1,330175,0,6519.062,11.56194,1,7,1,202.0749,12.42409,28.34008,0,0,242.8391,0,0,0,5,4,6,70,9.967326,1,40.7,660,660,1,1,1.791759,6.49224,0,3.258096,7.878534,1,0,0,40.7,8.78264,1.791759,5.492399,1 +18,3,25,1,2,330175,0,6519.062,12.56194,1,7,1,337.4359,7.575758,1.864802,0,872.2844,1219.161,2,0,0,2,10,6,70,9.967326,1,40.7,660,660,1,1,1.791759,6.49224,0,3.258096,7.878534,1,0,0,40.7,8.78264,1.791759,7.105918,1 +18,3,25,1,3,330175,0,6519.062,13.56194,1,7,1,186.1052,14.42924,28.21719,0,0,228.7516,0,0,0,7,1,7,70,9.967326,1,40.7,660,660,1,1,1.94591,6.49224,0,3.258096,7.878534,1,0,0,40.7,8.78264,1.94591,5.432637,1 +18,3,25,1,4,330175,0,6519.062,14.56194,1,7,1,194.2352,6.072252,0,0,438.0323,638.3397,1,0,0,6,0,8,70,9.967326,1,40.7,660,660,1,1,2.079442,6.49224,0,3.258096,7.878534,1,0,0,40.7,8.78264,2.079442,6.45887,1 +18,3,25,1,5,330175,0,6519.062,15.56194,1,7,1,157.745,6.181946,25.28978,0,507.4359,696.6526,1,0,0,6,6,8,70,9.967326,1,40.7,660,660,1,1,2.079442,6.49224,0,3.258096,7.878534,1,0,0,40.7,8.78264,2.079442,6.546287,1 +18,3,25,1,1,330176,0,6519.062,12.85695,1,7,1,49.59514,8.274291,0,0,0,57.86943,0,0,0,6,0,6,66.7,9.967326,0,63,660,660,1,1,1.791759,6.49224,0,3.258096,7.878534,1,0,0,63,8.78264,1.791759,4.058189,1 +18,3,25,1,2,330176,0,6519.062,13.85695,1,7,1,99.7669,12.23776,52.21445,0,0,164.2191,0,0,0,5,4,6,66.7,9.967326,0,63,660,660,1,1,1.791759,6.49224,0,3.258096,7.878534,1,0,0,63,8.78264,1.791759,5.101202,1 +18,3,25,1,3,330176,0,6519.062,14.85695,1,7,1,94.48483,16.41727,0,0,0,110.9021,0,0,0,8,0,7,66.7,9.967326,0,63,660,660,1,1,1.94591,6.49224,0,3.258096,7.878534,1,0,0,63,8.78264,1.94591,4.708648,1 +18,3,25,1,4,330176,0,6519.062,15.85695,1,7,1,132.1676,25.1153,0,76.86395,0,157.2829,0,0,5,4,0,8,66.7,9.967326,0,63,660,660,1,1,2.079442,6.49224,0,3.258096,7.878534,1,0,0,63,8.78264,2.079442,5.058046,1 +18,3,25,1,5,330176,0,6519.062,16.85695,1,7,1,35.65156,11.0994,21.07482,0,0,67.82578,0,0,0,2,1,8,66.7,9.967326,0,63,660,660,1,1,2.079442,6.49224,0,3.258096,7.878534,1,0,0,63,8.78264,2.079442,4.216942,1 +18,3,25,1,1,330177,0,6519.062,37.55784,1,7,1,329.2004,19.86336,31.88259,0,3663.669,4044.615,2,0,0,16,1,6,59.6,13.8,1,54.5,660,660,0,0,1.791759,6.49224,0,3.258096,7.878534,1,0,0,54.5,8.78264,1.791759,8.305141,1 +18,3,25,1,2,330177,0,6519.062,38.55784,1,7,1,148.6247,22.21445,6.993007,0,609.3566,787.1888,1,0,0,2,4,6,59.6,13.8,1,54.5,660,660,0,0,1.791759,6.49224,0,3.258096,7.878534,1,0,0,54.5,8.78264,1.791759,6.668468,1 +18,3,25,1,3,330177,0,6519.062,39.55784,1,7,1,174.7328,9.683625,0,0,944.8782,1129.295,1,0,0,12,1,7,59.6,13.8,1,54.5,660,660,0,0,1.94591,6.49224,0,3.258096,7.878534,1,0,0,54.5,8.78264,1.94591,7.029348,1 +18,3,25,1,4,330177,0,6519.062,40.55784,1,7,1,241.6603,35.10761,0,0,0,276.7679,0,0,0,5,0,8,59.6,13.8,1,54.5,660,660,0,0,2.079442,6.49224,0,3.258096,7.878534,1,0,0,54.5,8.78264,2.079442,5.623179,1 +18,3,25,1,5,330177,0,6519.062,41.55784,1,7,1,542.3604,105.7534,36.17843,0,388.3597,1072.652,1,0,0,14,14,8,59.6,13.8,1,54.5,660,660,0,0,2.079442,6.49224,0,3.258096,7.878534,1,0,0,54.5,8.78264,2.079442,6.977889,1 +18,3,25,1,1,330178,0,6519.062,17.26215,1,7,1,174.8482,66.85223,15.18219,0,0,256.8826,0,0,0,4,1,6,62.8,20.7,0,42,660,660,1,1,1.791759,6.49224,0,3.258096,7.878534,1,0,0,42,8.78264,1.791759,5.548619,1 +18,3,25,1,2,330178,0,6519.062,18.26215,1,7,1,160.6527,100.5594,15.38461,0,0,276.5967,0,0,0,4,2,6,62.8,20.7,0,42,660,660,0,0,1.791759,6.49224,0,3.258096,7.878534,1,0,0,42,8.78264,1.791759,5.622561,1 +18,3,25,1,3,330178,0,6519.062,19.26215,1,7,1,328.773,37.23814,0,0,1597.525,1963.536,1,0,0,2,6,7,62.8,20.7,0,42,660,660,0,0,1.94591,6.49224,0,3.258096,7.878534,1,0,0,42,8.78264,1.94591,7.582502,1 +18,3,25,1,4,330178,0,6519.062,20.26215,1,7,1,353.3436,45.36895,21.52191,0,0,420.2344,0,0,0,4,5,8,62.8,20.7,0,42,660,660,0,0,2.079442,6.49224,0,3.258096,7.878534,1,0,0,42,8.78264,2.079442,6.040813,1 +18,3,25,1,5,330178,0,6519.062,21.26215,1,7,1,167.2287,62.11802,0,0,0,229.3467,0,0,0,5,0,8,62.8,20.7,0,42,660,660,0,0,2.079442,6.49224,0,3.258096,7.878534,1,0,0,42,8.78264,2.079442,5.435235,1 +18,3,25,1,1,330179,0,4618.769,19.19233,0,12,1,10.12146,9.109312,26.31579,0,0,45.54656,0,0,0,0,1,1,67,10.3,0,71.4,300,300,0,0,0,5.703783,0,3.258096,7.090077,1,0,0,71.4,8.4381,0,3.818735,1 +18,3,25,1,2,330179,0,4618.769,20.19233,0,12,1,57.80886,8.065269,5.361305,0,0,71.23543,0,0,0,2,0,1,67,10.3,0,71.4,300,300,0,0,0,5.703783,0,3.258096,7.090077,1,0,0,71.4,8.4381,0,4.26599,1 +18,3,25,1,3,330179,0,4618.769,21.19233,0,12,1,8.12313,4.908081,0,0,0,13.03121,0,0,0,1,0,1,67,10.3,0,71.4,300,300,0,0,0,5.703783,0,3.258096,7.090077,1,0,0,71.4,8.4381,0,2.567347,1 +18,3,25,1,4,330179,0,4618.769,22.19233,0,12,1,17.29439,19.36971,21.13759,0,0,57.80169,0,0,0,1,1,1,67,10.3,0,71.4,300,300,0,0,0,5.703783,0,3.258096,7.090077,1,0,0,71.4,8.4381,0,4.057018,1 +18,3,25,1,5,330179,0,4618.769,23.19233,0,12,1,26.94064,1.053741,14.75237,0,0,42.74675,0,0,0,1,1,1,67,10.3,0,71.4,300,300,0,0,0,5.703783,0,3.258096,7.090077,1,0,0,71.4,8.4381,0,3.755293,1 +13,3,0,1,1,330180,0,8399.413,13.63176,0,14,1,70.34413,1.67004,0,0,0,72.01417,0,0,0,3,0,6,76.7,9.967326,0,85.2,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.036036,1.791759,4.276863,1 +13,3,0,1,2,330180,0,8399.413,14.63176,0,14,1,141.4918,0,0,0,0,141.4918,0,0,0,6,0,6,76.7,9.967326,0,85.2,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.036036,1.791759,4.952242,1 +13,3,0,1,3,330180,0,8399.413,15.63176,0,14,1,1.282599,0,0,0,0,1.282599,0,0,0,1,0,5,76.7,9.967326,0,85.2,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.036036,1.609438,.2488888,1 +13,3,0,1,1,330181,0,8399.413,16.31485,0,14,1,17.71255,0,0,0,0,17.71255,0,0,0,2,0,6,82.4,0,0,75,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,75,9.036036,1.791759,2.874274,1 +13,3,0,1,2,330181,0,8399.413,17.31485,0,14,1,27.45921,0,26.10723,0,0,53.56643,0,0,0,1,0,6,82.4,0,0,75,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,75,9.036036,1.791759,3.980923,1 +13,3,0,1,3,330181,0,8399.413,18.31485,0,14,1,0,0,0,0,0,0,0,0,0,0,0,5,82.4,0,0,75,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,75,9.036036,1.609438,,0 +13,3,0,1,1,330182,0,8399.413,49.71937,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,79.8,31,1,45.5,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,45.5,9.036036,1.791759,,0 +13,3,0,1,2,330182,0,8399.413,50.71937,0,12,1,11.18881,0,0,0,1036.69,1047.879,1,0,0,0,0,6,79.8,31,1,45.5,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,45.5,9.036036,1.791759,6.954523,1 +13,3,0,1,3,330182,0,8399.413,51.71937,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,79.8,31,1,45.5,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,45.5,9.036036,1.609438,,0 +13,3,0,1,1,330183,0,8399.413,49.39083,1,14,1,169.0283,3.922065,0,0,0,172.9504,0,0,0,4,0,6,80.3,24.1,1,67,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,67,9.036036,1.791759,5.153005,1 +13,3,0,1,2,330183,0,8399.413,50.39083,1,14,.2876712,1072,99.25408,0,0,3138.601,4309.855,3,0,0,10,0,6,80.3,24.1,1,67,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,67,9.036036,1.791759,8.36866,1 +13,3,0,1,1,330184,0,8399.413,11.30459,0,14,1,27.32794,0,0,0,0,27.32794,0,0,0,1,0,6,81.7,9.967326,0,85.2,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,85.2,9.036036,1.791759,3.307909,1 +13,3,0,1,2,330184,0,8399.413,12.30459,0,14,1,16.31702,9.65035,0,0,0,25.96737,0,0,0,2,0,6,81.7,9.967326,0,85.2,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,85.2,9.036036,1.791759,3.25684,1 +13,3,0,1,3,330184,0,8399.413,13.30459,0,14,1,8.764429,0,0,0,0,8.764429,0,0,0,1,0,5,81.7,9.967326,0,85.2,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,85.2,9.036036,1.609438,2.170701,1 +13,3,0,1,1,330185,0,8399.413,17.65914,1,14,1,0,0,0,0,0,0,0,0,0,0,0,6,82.4,3.4,0,53.6,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,1,0,0,53.6,9.036036,1.791759,,0 +13,3,0,1,2,330185,0,8399.413,18.65914,1,14,1,0,0,0,0,0,0,0,0,0,0,0,6,82.4,3.4,0,53.6,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,53.6,9.036036,1.791759,,0 +13,3,0,1,3,330185,0,8399.413,19.65914,1,14,1,0,0,0,0,0,0,0,0,0,0,0,5,82.4,3.4,0,53.6,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,53.6,9.036036,1.609438,,0 +11,3,0,1,1,330186,0,5353.666,15.01985,1,12,1,16.34321,2.451481,39.32584,0,0,58.12053,0,0,0,1,1,2,71.8,3.4,0,64.3,0,72,1,1,.6931472,4.276666,0,0,0,0,0,0,64.3,8.585724,.6931472,4.062519,1 +11,3,0,1,2,330186,0,5353.666,16.01985,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,71.8,3.4,0,64.3,0,72,1,1,.6931472,4.276666,0,0,0,0,0,0,64.3,8.585724,.6931472,,0 +11,3,0,1,3,330186,0,5353.666,17.01985,1,12,1,9.88822,0,34.39381,0,0,44.28203,0,0,0,0,1,2,71.8,3.4,0,64.3,0,72,1,1,.6931472,4.276666,0,0,0,0,0,0,64.3,8.585724,.6931472,3.790579,1 +11,3,0,1,1,330187,0,5353.666,57.63997,1,12,1,335.3932,0,115.9346,0,0,451.3279,0,0,0,12,3,2,60.1,20.7,1,56.8,0,72,0,0,.6931472,4.276666,0,0,0,0,0,0,56.8,8.585724,.6931472,6.112194,1 +11,3,0,1,2,330187,0,5353.666,58.63997,1,12,1,105.0164,0,79.93436,0,0,184.9508,0,0,0,4,1,2,60.1,20.7,1,56.8,0,72,0,0,.6931472,4.276666,0,0,0,0,0,0,56.8,8.585724,.6931472,5.22009,1 +11,3,0,1,3,330187,0,5353.666,59.63997,1,12,1,58.46947,28.11694,69.00258,0,0,155.589,0,0,0,5,1,2,60.1,20.7,1,56.8,0,72,0,0,.6931472,4.276666,0,0,0,0,0,0,56.8,8.585724,.6931472,5.047218,1 +11,3,0,1,1,330226,0,12014.66,59.53183,0,10,1,28.08989,5.474975,0,0,0,33.56486,0,0,0,1,0,2,88.3,10.3,0,65.9,0,0,0,0,.6931472,0,0,0,0,1,0,0,65.9,9.393967,.6931472,3.51348,1 +11,3,0,1,2,330226,0,12014.66,60.53183,0,10,1,85.79465,16.0572,46.4135,0,0,148.2654,0,0,0,5,1,2,88.3,10.3,0,65.9,0,0,0,0,.6931472,0,0,0,0,1,0,0,65.9,9.393967,.6931472,4.999003,1 +11,3,0,1,3,330226,0,12014.66,61.53183,0,10,1,38.69304,54.39381,0,0,0,93.08685,0,0,0,3,0,2,88.3,10.3,0,65.9,0,0,0,0,.6931472,0,0,0,0,1,0,0,65.9,9.393967,.6931472,4.533533,1 +11,3,0,1,4,330226,0,12014.66,62.53183,0,10,1,59.71307,67.96432,0,0,0,127.6774,0,0,0,4,0,2,88.3,10.3,0,65.9,0,0,0,0,.6931472,0,0,0,0,1,0,0,65.9,9.393967,.6931472,4.849507,1 +11,3,0,1,5,330226,0,12014.66,63.53183,0,10,1,37.50885,57.03822,35.3857,0,0,129.9328,0,0,0,4,1,2,88.3,10.3,0,65.9,0,0,0,0,.6931472,0,0,0,0,1,0,0,65.9,9.393967,.6931472,4.867017,1 +11,3,0,1,1,330227,0,12014.66,56.17522,1,8,1,12.76813,11.82329,0,0,380.7916,405.3831,1,0,0,1,0,2,84,24.1,0,72.7,0,0,0,0,.6931472,0,0,0,0,1,0,0,72.7,9.393967,.6931472,6.004832,1 +11,3,0,1,2,330227,0,12014.66,57.17522,1,8,1,10.78294,14.85701,0,0,0,25.63994,0,0,0,1,0,2,84,24.1,0,72.7,0,0,0,0,.6931472,0,0,0,0,1,0,0,72.7,9.393967,.6931472,3.244151,1 +11,3,0,1,3,330227,0,12014.66,58.17522,1,8,1,20.89424,13.85641,0,0,0,34.75064,0,0,0,1,1,2,84,24.1,0,72.7,0,0,0,0,.6931472,0,0,0,0,1,0,0,72.7,9.393967,.6931472,3.548198,1 +11,3,0,1,4,330227,0,12014.66,59.17522,1,8,1,25.94029,0,0,0,0,25.94029,0,0,0,2,0,2,84,24.1,0,72.7,0,0,0,0,.6931472,0,0,0,0,1,0,0,72.7,9.393967,.6931472,3.255797,1 +11,3,0,1,5,330227,0,12014.66,60.17522,1,8,1,121.4437,19.5966,13.95966,0,0,155,0,0,0,6,0,2,84,24.1,0,72.7,0,0,0,0,.6931472,0,0,0,0,1,0,0,72.7,9.393967,.6931472,5.043425,1 +16,3,95,1,1,330232,0,222.8739,57.73854,1,7,1,16.44737,6.629555,0,0,0,23.07692,0,0,0,1,0,1,60.1,13.8,0,72.7,360,311.64,0,0,0,5.741848,0,4.564348,5.937397,0,0,0,72.7,5.411083,0,3.138833,1 +16,3,95,1,2,330232,0,222.8739,58.73854,1,7,1,19.58042,11.95804,0,0,0,31.53846,0,0,0,2,0,1,60.1,13.8,0,72.7,360,311.64,0,0,0,5.741848,0,4.564348,5.937397,0,0,0,72.7,5.411083,0,3.451208,1 +16,3,95,1,3,330232,0,222.8739,59.73854,1,7,1,185.2501,16.24626,0,0,1180.218,1381.714,1,0,0,5,0,1,60.1,13.8,0,72.7,360,311.64,0,0,0,5.741848,0,4.564348,5.937397,0,0,0,72.7,5.411083,0,7.231081,1 +16,3,95,1,1,330233,0,7347.801,31.24983,0,14,1,0,0,0,0,0,0,0,0,0,0,0,1,74.5,10.3,0,65.5,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,1,0,0,65.5,8.902292,0,,0 +16,3,95,1,2,330233,0,7347.801,32.24983,0,14,1,0,0,0,0,0,0,0,0,0,0,0,1,74.5,10.3,0,65.5,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,1,0,0,65.5,8.902292,0,,0 +16,3,95,1,3,330233,0,7347.801,33.24983,0,14,1,0,0,0,0,0,0,0,0,0,0,0,1,74.5,10.3,0,65.5,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,1,0,0,65.5,8.902292,0,,0 +13,3,0,1,1,330237,0,1754.839,54.10815,1,14,1,197.7017,37.5383,102.145,0,1128.943,1466.328,1,0,0,14,1,1,66.6,24.1,1,52.3,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,52.3,7.470702,0,7.290516,1 +13,3,0,1,2,330237,0,1754.839,55.10815,1,14,1,114.8617,31.15331,70.32349,0,1109.489,1325.828,1,0,0,13,0,1,66.6,24.1,1,52.3,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,52.3,7.470702,0,7.189792,1 +13,3,0,1,3,330237,0,1754.839,56.10815,1,14,1,51.59071,65.51591,0,0,411.7369,528.8435,1,0,0,7,0,1,66.6,24.1,1,52.3,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,52.3,7.470702,0,6.270692,1 +13,3,0,1,1,330238,0,6097.947,61.47844,0,12,1,45.45454,15.19408,25.53626,0,0,86.18488,0,0,0,4,1,1,59.6,24.1,0,46.6,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,46.6,8.715872,0,4.456495,1 +13,3,0,1,2,330238,0,6097.947,62.47844,0,12,1,110.5485,104.5429,0,0,1079.048,1294.14,1,0,0,11,0,1,59.6,24.1,0,46.6,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,46.6,8.715872,0,7.165601,1 +13,3,0,1,3,330238,0,6097.947,63.47844,0,12,1,217.6268,103.7446,0,0,0,321.3715,0,0,0,11,1,1,59.6,24.1,0,46.6,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,46.6,8.715872,0,5.772598,1 +17,3,25,1,1,330293,0,5886.804,16.53936,1,12,1,8.097166,0,0,0,0,8.097166,0,0,0,0,0,6,55.9,3.4,0,39.8,454.8,454.8,1,1,1.791759,6.119858,0,3.258096,7.506152,1,0,0,39.8,8.680638,1.791759,2.091514,1 +17,3,25,1,2,330293,0,5886.804,17.53936,1,12,1,7.459208,0,0,0,0,7.459208,0,0,0,1,0,6,55.9,3.4,0,39.8,454.8,454.8,1,1,1.791759,6.119858,0,3.258096,7.506152,1,0,0,39.8,8.680638,1.791759,2.009449,1 +17,3,25,1,3,330293,0,5886.804,18.53936,1,12,1,0,0,0,0,245.1048,245.1048,1,0,0,0,0,6,55.9,3.4,0,39.8,454.8,454.8,0,0,1.791759,6.119858,0,3.258096,7.506152,1,0,0,39.8,8.680638,1.791759,5.501686,1 +17,3,25,1,1,330294,0,5886.804,14.07803,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,83.3,9.967326,0,88.9,454.8,454.8,1,0,1.791759,6.119858,0,3.258096,7.506152,0,0,0,88.9,8.680638,1.791759,,0 +17,3,25,1,2,330294,0,5886.804,15.07803,0,12,1,6.060606,0,0,0,0,6.060606,0,0,0,1,0,6,83.3,9.967326,0,88.9,454.8,454.8,1,0,1.791759,6.119858,0,3.258096,7.506152,0,0,0,88.9,8.680638,1.791759,1.80181,1 +17,3,25,1,3,330294,0,5886.804,16.07803,0,12,1,38.94827,8.294143,.8721676,0,0,48.11458,0,0,0,2,0,6,83.3,9.967326,0,88.9,454.8,454.8,1,0,1.791759,6.119858,0,3.258096,7.506152,0,0,0,88.9,8.680638,1.791759,3.873585,1 +17,3,25,1,1,330295,0,5886.804,46.11909,1,12,1,14.17004,0,15.18219,0,0,29.35223,0,0,0,0,2,6,44.7,3.4,0,85.2,454.8,454.8,0,0,1.791759,6.119858,0,3.258096,7.506152,0,0,0,85.2,8.680638,1.791759,3.379368,1 +17,3,25,1,2,330295,0,5886.804,47.11909,1,12,1,13.51981,0,0,0,0,13.51981,0,0,0,0,0,6,44.7,3.4,0,85.2,454.8,454.8,0,0,1.791759,6.119858,0,3.258096,7.506152,0,0,0,85.2,8.680638,1.791759,2.604156,1 +17,3,25,1,3,330295,0,5886.804,48.11909,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,44.7,3.4,0,85.2,454.8,454.8,0,0,1.791759,6.119858,0,3.258096,7.506152,0,0,0,85.2,8.680638,1.791759,,0 +17,3,25,1,1,330296,0,5886.804,12.32307,1,12,1,89.44838,1.745951,0,0,0,91.19433,0,0,0,2,0,6,78.3,9.967326,0,92.6,454.8,454.8,1,1,1.791759,6.119858,0,3.258096,7.506152,0,0,0,92.6,8.680638,1.791759,4.512993,1 +17,3,25,1,2,330296,0,5886.804,13.32307,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,78.3,9.967326,0,92.6,454.8,454.8,1,1,1.791759,6.119858,0,3.258096,7.506152,0,0,0,92.6,8.680638,1.791759,,0 +17,3,25,1,3,330296,0,5886.804,14.32307,1,12,1,5.985464,9.320222,0,0,0,15.30569,0,0,0,1,0,6,78.3,9.967326,0,92.6,454.8,454.8,1,1,1.791759,6.119858,0,3.258096,7.506152,0,0,0,92.6,8.680638,1.791759,2.728224,1 +17,3,25,1,1,330297,0,5886.804,48.62971,0,12,1,27.83401,3.26417,1.133603,0,0,32.23178,0,0,0,2,0,6,78.2,6.9,0,80.7,454.8,454.8,0,0,1.791759,6.119858,0,3.258096,7.506152,0,0,0,80.7,8.680638,1.791759,3.472953,1 +17,3,25,1,2,330297,0,5886.804,49.62971,0,12,1,25.36131,0,0,0,0,25.36131,0,0,0,1,0,6,78.2,6.9,0,80.7,454.8,454.8,0,0,1.791759,6.119858,0,3.258096,7.506152,0,0,0,80.7,8.680638,1.791759,3.233225,1 +17,3,25,1,3,330297,0,5886.804,50.62971,0,12,1,188.5421,3.454468,0,0,195.0406,387.0372,1,0,0,5,0,6,78.2,6.9,0,80.7,454.8,454.8,0,0,1.791759,6.119858,0,3.258096,7.506152,0,0,0,80.7,8.680638,1.791759,5.958521,1 +17,3,25,1,1,330298,0,5886.804,18.59822,1,11,1,19.23077,0,0,0,0,19.23077,0,0,0,1,1,6,79.3,3.4,0,96.4,454.8,454.8,0,0,1.791759,6.119858,0,3.258096,7.506152,0,0,0,96.4,8.680638,1.791759,2.956511,1 +17,3,25,1,2,330298,0,5886.804,19.59822,1,11,1,0,0,0,0,0,0,0,0,0,0,0,6,79.3,3.4,0,96.4,454.8,454.8,0,0,1.791759,6.119858,0,3.258096,7.506152,0,0,0,96.4,8.680638,1.791759,,0 +17,3,25,1,3,330298,0,5886.804,20.59822,1,11,1,0,0,0,0,0,0,0,0,0,0,0,6,79.3,3.4,0,96.4,454.8,454.8,0,0,1.791759,6.119858,0,3.258096,7.506152,0,0,0,96.4,8.680638,1.791759,,0 +17,3,25,1,1,330299,0,3338.417,20.37509,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,82.4,6.9,0,71.6,244.15,244.15,0,0,0,5.497783,0,3.258096,6.884077,0,0,0,71.6,8.113551,0,,0 +17,3,25,1,2,330299,0,3338.417,21.37509,0,12,1,2.812939,0,0,0,0,2.812939,0,0,0,0,0,1,82.4,6.9,0,71.6,244.15,244.15,0,0,0,5.497783,0,3.258096,6.884077,0,0,0,71.6,8.113551,0,1.03423,1 +17,3,25,1,3,330299,0,3338.417,22.37509,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,82.4,6.9,0,71.6,244.15,244.15,0,0,0,5.497783,0,3.258096,6.884077,0,0,0,71.6,8.113551,0,,0 +13,3,0,0,1,330358,0,1210.557,43.07187,1,6,.8219178,68.14272,0,0,0,1281.184,1349.327,1,0,0,1,0,1,58.5,3.4,1,60.2,150,211.2,0,0,0,5.352806,1,4.564348,5.061929,1,0,0,60.2,7.099662,0,7.207361,1 +13,3,0,0,1,330380,0,14150.73,44.60506,1,12,1,74.20837,0,0,0,0,74.20837,0,0,0,1,0,3,80.3,13.8,0,76.1,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,76.1,9.557592,1.098612,4.306877,1 +13,3,0,0,2,330380,0,14150.73,45.60506,1,12,1,96.57759,0,25.31646,0,0,121.894,0,0,0,1,1,3,80.3,13.8,0,76.1,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,76.1,9.557592,1.098612,4.803152,1 +13,3,0,0,3,330380,0,14150.73,46.60506,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,80.3,13.8,0,76.1,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,76.1,9.557592,1.098612,,0 +13,3,0,0,1,330381,0,14150.73,17.66461,0,12,1,0,0,30.13279,0,0,30.13279,0,0,0,0,0,3,62.2,6.9,0,65.9,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,65.9,9.557592,1.098612,3.405614,1 +13,3,0,0,2,330381,0,14150.73,18.66461,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,62.2,6.9,0,65.9,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,65.9,9.557592,1.098612,,0 +13,3,0,0,3,330381,0,14150.73,19.66461,0,12,1,23.98968,0,24.93551,0,0,48.92519,0,0,0,1,1,3,62.2,6.9,0,65.9,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,65.9,9.557592,1.098612,3.890292,1 +13,3,0,0,1,330382,0,14150.73,44.59685,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,64.4,3.4,1,53.4,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,53.4,9.557592,1.098612,,0 +13,3,0,0,2,330382,0,14150.73,45.59685,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,64.4,3.4,1,53.4,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,53.4,9.557592,1.098612,,0 +13,3,0,0,3,330382,0,14150.73,46.59685,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,64.4,3.4,1,53.4,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,53.4,9.557592,1.098612,,0 +13,3,0,1,1,330394,0,5472.727,19.75086,1,12,1,18.47166,4.09919,0,0,759.2409,781.8118,1,0,0,0,0,3,51.6,3.4,0,85.2,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,85.2,8.607715,1.098612,6.661614,1 +13,3,0,1,2,330394,0,5472.727,20.75086,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,51.6,3.4,0,85.2,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,85.2,8.607715,1.386294,,0 +13,3,0,1,3,330394,0,5472.727,21.75086,1,12,1,6.412997,0,0,0,0,6.412997,0,0,0,1,0,4,51.6,3.4,0,85.2,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,85.2,8.607715,1.386294,1.858327,1 +13,3,0,1,4,330394,0,5472.727,22.75086,1,12,1,10.76095,0,0,0,0,10.76095,0,0,0,1,0,2,51.6,3.4,0,85.2,450,450,0,0,.6931472,6.109248,1,4.564348,6.160541,0,0,0,85.2,8.607715,.6931472,2.375924,1 +13,3,0,1,5,330394,0,5472.727,23.75086,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,51.6,3.4,0,85.2,450,450,0,0,.6931472,6.109248,1,4.564348,6.160541,0,0,0,85.2,8.607715,.6931472,,0 +13,3,0,1,1,330395,0,5472.727,47.93977,0,9,1,7.591093,64.97976,28.84615,0,0,101.417,0,0,0,0,1,3,65.4,13.8,0,61.4,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,61.4,8.607715,1.098612,4.619241,1 +13,3,0,1,2,330395,0,5472.727,48.93977,0,9,1,0,46.24709,17.71562,0,18578.02,18641.98,1,0,0,0,0,4,65.4,13.8,0,61.4,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,61.4,8.607715,1.386294,9.833171,1 +13,3,0,1,3,330395,0,5472.727,49.93977,0,9,.0958904,0,0,0,0,272.9799,272.9799,0,0,0,0,0,4,65.4,13.8,0,61.4,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,61.4,8.607715,1.386294,5.609398,1 +13,3,0,1,1,330396,0,5472.727,51.07734,1,7,1,0,0,0,0,0,0,0,0,0,0,0,3,36.7,13.8,0,48.9,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,48.9,8.607715,1.098612,,0 +13,3,0,1,2,330396,0,5472.727,52.07734,1,7,1,92.96037,24.06993,0,0,0,117.0303,0,0,0,1,0,4,36.7,13.8,0,48.9,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,48.9,8.607715,1.386294,4.762433,1 +13,3,0,1,3,330396,0,5472.727,53.07734,1,7,1,205.2159,90.59427,14.42924,0,4150.039,4460.278,3,0,0,1,10,4,36.7,13.8,0,48.9,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,48.9,8.607715,1.386294,8.402966,1 +11,3,0,1,1,330399,.0322129,1,4.717317,0,14,1,19.1522,15.83248,0,0,0,34.98468,0,0,0,2,0,4,83.39137,9.967326,0,92.6,0,0,1,0,1.386294,0,0,0,0,1,0,0,92.6,.6931472,1.386294,3.55491,1 +11,3,0,1,2,330399,.0322129,1,5.717317,0,14,1,11.25176,15.30708,0,0,0,26.55884,0,0,0,2,0,4,83.39137,9.967326,0,92.6,0,0,1,0,1.386294,0,0,0,0,1,0,0,92.6,.6931472,1.386294,3.279363,1 +11,3,0,1,3,330399,.0322129,1,6.717317,0,14,1,28.37489,21.43164,0,0,0,49.80653,0,0,0,4,0,4,83.39137,9.967326,0,92.6,0,0,1,0,1.386294,0,0,0,0,1,0,0,92.6,.6931472,1.386294,3.908146,1 +11,3,0,1,1,330400,.0322129,1,1.705681,1,14,1,49.02962,10.44433,0,0,0,59.47395,0,0,0,8,0,4,83.39137,9.967326,0,92.6,0,0,1,1,1.386294,0,0,0,0,0,0,0,92.6,.6931472,1.386294,4.085538,1 +11,3,0,1,2,330400,.0322129,1,2.705681,1,14,1,63.75996,25.3774,0,0,0,89.13737,0,0,0,9,0,4,83.39137,9.967326,0,92.6,0,0,1,1,1.386294,0,0,0,0,0,0,0,92.6,.6931472,1.386294,4.490179,1 +11,3,0,1,3,330400,.0322129,1,3.705681,1,14,1,36.54342,26.04471,0,0,0,62.58813,0,0,0,4,0,4,83.39137,9.967326,0,92.6,0,0,1,1,1.386294,0,0,0,0,0,0,0,92.6,.6931472,1.386294,4.136576,1 +11,3,0,1,1,330401,.0322129,1,32.64887,0,12,1,15.32176,2.451481,0,0,0,17.77324,0,0,0,2,0,4,62.2,17.2,0,76.1,0,0,0,0,1.386294,0,0,0,0,0,0,0,76.1,.6931472,1.386294,2.877694,1 +11,3,0,1,2,330401,.0322129,1,33.64887,0,12,1,11.25176,0,0,0,0,11.25176,0,0,0,1,0,4,62.2,17.2,0,76.1,0,0,0,0,1.386294,0,0,0,0,0,0,0,76.1,.6931472,1.386294,2.420524,1 +11,3,0,1,3,330401,.0322129,1,34.64887,0,12,1,22.35598,3.250215,0,0,0,25.60619,0,0,0,1,0,4,62.2,17.2,0,76.1,0,0,0,0,1.386294,0,0,0,0,0,0,0,76.1,.6931472,1.386294,3.242834,1 +11,3,0,1,1,330402,.0322129,1,30.12731,1,14,1,51.07252,23.04392,34.72932,0,0,108.8458,0,0,0,2,0,4,72.3,13.8,0,89.8,0,0,0,0,1.386294,0,0,0,0,0,0,0,89.8,.6931472,1.386294,4.689932,1 +11,3,0,1,2,330402,.0322129,1,31.12731,1,14,1,22.50352,29.92968,0,0,0,52.43319,0,0,0,3,0,4,72.3,13.8,0,89.8,0,0,0,0,1.386294,0,0,0,0,0,0,0,89.8,.6931472,1.386294,3.95954,1 +11,3,0,1,3,330402,.0322129,1,32.12731,1,14,1,44.92691,44.19175,31.81427,0,0,120.9329,0,0,0,5,0,4,72.3,13.8,0,89.8,0,0,0,0,1.386294,0,0,0,0,0,0,0,89.8,.6931472,1.386294,4.795236,1 +15,3,95,1,1,330468,0,7494.428,39.0308,1,10,1,41.49797,1.821862,0,0,0,43.31984,0,0,0,2,0,2,83.5,24.1,0,79.5,400,400,0,0,.6931472,5.991465,0,4.564348,6.042758,0,0,0,79.5,8.922049,.6931472,3.768611,1 +15,3,95,1,2,330468,0,7494.428,40.0308,1,10,1,5.594406,0,0,0,0,5.594406,0,0,0,1,0,2,83.5,24.1,0,79.5,400,400,0,0,.6931472,5.991465,0,4.564348,6.042758,0,0,0,79.5,8.922049,.6931472,1.721767,1 +15,3,95,1,3,330468,0,7494.428,41.0308,1,10,1,0,4.172723,0,0,0,4.172723,0,0,0,0,0,2,83.5,24.1,0,79.5,400,400,0,0,.6931472,5.991465,0,4.564348,6.042758,0,0,0,79.5,8.922049,.6931472,1.428569,1 +13,3,0,1,1,330535,0,3287.537,22.20671,1,9,1,0,0,0,0,0,0,0,0,0,0,0,3,85.1,17.2,0,75,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,75,8.098198,1.098612,,0 +13,3,0,1,2,330535,0,3287.537,23.20671,1,9,1,224.7086,4.708625,0,0,149.1608,378.5781,1,0,0,2,0,2,85.1,17.2,0,75,450,450,0,0,.6931472,6.109248,1,4.564348,6.160541,0,0,0,75,8.098198,.6931472,5.936422,1 +13,3,0,1,1,330536,0,3287.537,2.937714,1,9,1,0,0,0,0,0,0,0,0,0,0,0,3,83.39137,9.967326,0,77.8,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,1,0,0,77.8,8.098198,1.098612,,0 +13,3,0,1,2,330536,0,3287.537,3.937714,1,9,1,5.594406,0,0,0,0,5.594406,0,0,0,1,0,2,83.39137,9.967326,0,77.8,450,450,1,1,.6931472,6.109248,1,4.564348,6.160541,1,0,0,77.8,8.098198,.6931472,1.721767,1 +16,3,95,1,1,330554,0,7139.589,42.37372,1,16,1,25.96154,0,24.79757,0,0,50.75911,0,0,0,5,0,3,91.5,6.9,0,94.3,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,94.3,8.87355,1.098612,3.927091,1 +16,3,95,1,2,330554,0,7139.589,43.37372,1,16,1,4.662004,0,0,0,0,4.662004,0,0,0,1,0,3,91.5,6.9,0,94.3,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,94.3,8.87355,1.098612,1.539446,1 +16,3,95,1,3,330554,0,7139.589,44.37372,1,16,1,252.1163,0,40.61565,0,1645.981,1938.713,2,0,0,9,0,3,91.5,6.9,0,94.3,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,94.3,8.87355,1.098612,7.56978,1 +16,3,95,1,4,330554,0,7139.589,45.37372,1,16,1,36.35665,9.185242,0,0,0,45.54189,0,0,0,4,0,3,91.5,6.9,0,94.3,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,94.3,8.87355,1.098612,3.818633,1 +16,3,95,1,5,330554,0,7139.589,46.37372,1,16,1,20.61819,10.01054,0,0,0,30.62873,0,0,0,3,0,3,91.5,6.9,0,94.3,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,94.3,8.87355,1.098612,3.421939,1 +16,3,95,1,1,330555,0,7139.589,11.47159,0,16,1,20.1417,0,0,0,0,20.1417,0,0,0,2,0,3,91.7,9.967326,0,92.6,1000,1000,1,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,92.6,8.87355,1.098612,3.002792,1 +16,3,95,1,2,330555,0,7139.589,12.47159,0,16,1,0,0,0,0,0,0,0,0,0,0,0,3,91.7,9.967326,0,92.6,1000,1000,1,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,92.6,8.87355,1.098612,,0 +16,3,95,1,3,330555,0,7139.589,13.47159,0,16,1,158.3155,0,0,0,0,158.3155,0,0,0,5,0,3,91.7,9.967326,0,92.6,1000,1000,1,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,92.6,8.87355,1.098612,5.06459,1 +16,3,95,1,4,330555,0,7139.589,14.47159,0,16,1,11.91391,0,0,0,0,11.91391,0,0,0,2,0,3,91.7,9.967326,0,92.6,1000,1000,1,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,92.6,8.87355,1.098612,2.477707,1 +16,3,95,1,5,330555,0,7139.589,15.47159,0,16,1,0,0,0,0,0,0,0,0,0,0,0,3,91.7,9.967326,0,92.6,1000,1000,1,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,92.6,8.87355,1.098612,,0 +16,3,95,1,1,330556,0,7139.589,16.26557,1,16,1,2.024292,2.656883,0,0,0,4.681174,0,0,0,2,0,3,82.4,3.4,0,81.8,1000,1000,1,1,1.098612,6.907755,0,4.564348,6.959049,0,0,0,81.8,8.87355,1.098612,1.543549,1 +16,3,95,1,2,330556,0,7139.589,17.26557,1,16,1,28.90443,6.941725,0,0,0,35.84615,0,0,0,3,0,3,82.4,3.4,0,81.8,1000,1000,1,1,1.098612,6.907755,0,4.564348,6.959049,0,0,0,81.8,8.87355,1.098612,3.579236,1 +16,3,95,1,3,330556,0,7139.589,18.26557,1,16,1,54.55323,0,0,0,0,54.55323,0,0,0,3,3,3,82.4,3.4,0,81.8,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,81.8,8.87355,1.098612,3.999177,1 +16,3,95,1,4,330556,0,7139.589,19.26557,1,16,1,5.380476,0,0,0,0,5.380476,0,0,0,1,0,3,82.4,3.4,0,81.8,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,81.8,8.87355,1.098612,1.682777,1 +16,3,95,1,5,330556,0,7139.589,20.26557,1,16,1,79.62768,0,0,0,0,79.62768,0,0,0,1,9,3,82.4,3.4,0,81.8,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,81.8,8.87355,1.098612,4.377362,1 +13,3,0,1,1,330567,0,9611.144,28.90075,0,12,1,53.62615,0,23.49336,0,0,77.11951,0,0,0,1,8,1,86.2,10.3,1,72.7,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,72.7,9.170782,0,4.345356,1 +13,3,0,1,2,330567,0,9611.144,29.90075,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,86.2,10.3,1,72.7,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,72.7,9.170782,0,,0 +13,3,0,1,3,330567,0,9611.144,30.90075,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,86.2,10.3,1,72.7,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,72.7,9.170782,0,,0 +13,3,0,1,4,330567,0,9611.144,31.90075,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,86.2,10.3,1,72.7,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,72.7,9.170782,0,,0 +13,3,0,1,5,330567,0,9611.144,32.90075,0,12,1,26.53928,1.11465,19.72753,0,0,47.38146,0,0,0,2,0,1,86.2,10.3,1,72.7,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,72.7,9.170782,0,3.858231,1 +13,3,0,1,1,330610,0,8951.319,29.6345,1,12,1,15.32176,0,0,0,0,15.32176,0,0,0,1,0,4,82.4,10.3,0,76.1,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,76.1,9.099668,1.386294,2.729274,1 +13,3,0,1,2,330610,0,8951.319,30.6345,1,12,1,10.78294,0,31.87998,0,0,42.66291,0,0,0,0,1,4,82.4,10.3,0,76.1,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,76.1,9.099668,1.386294,3.75333,1 +13,3,0,1,3,330610,0,8951.319,31.6345,1,12,1,58.8994,46.84007,10.74806,0,0,116.4875,0,0,0,4,1,4,82.4,10.3,0,76.1,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,76.1,9.099668,1.386294,4.757784,1 +13,3,0,1,1,330611,0,8951.319,5.322382,1,12,1,22.47191,6.996936,0,0,0,29.46885,0,0,0,4,0,4,83.3,9.967326,0,85.2,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.099668,1.386294,3.383334,1 +13,3,0,1,2,330611,0,8951.319,6.322382,1,12,1,17.81528,4.64135,24.37881,0,0,46.83544,0,0,0,2,1,4,83.3,9.967326,0,85.2,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.099668,1.386294,3.84664,1 +13,3,0,1,3,330611,0,8951.319,7.322382,1,12,1,29.66466,8.985383,11.60791,0,0,50.25795,0,0,0,3,1,4,83.3,9.967326,0,85.2,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.099668,1.386294,3.917169,1 +13,3,0,1,1,330612,0,8951.319,28.91992,0,12,1,33.04392,3.064351,0,0,0,36.10827,0,0,0,1,0,4,76.6,0,0,62.5,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,62.5,9.099668,1.386294,3.586522,1 +13,3,0,1,2,330612,0,8951.319,29.91992,0,12,1,50.63291,3.961556,24.84763,0,0,79.4421,0,0,0,4,1,4,76.6,0,0,62.5,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,62.5,9.099668,1.386294,4.375029,1 +13,3,0,1,3,330612,0,8951.319,30.91992,0,12,1,24.93551,0,12.89768,0,0,37.83319,0,0,0,1,1,4,76.6,0,0,62.5,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,62.5,9.099668,1.386294,3.633187,1 +13,3,0,1,1,330613,0,8951.319,6.732375,1,12,1,17.87538,3.038815,0,0,0,20.9142,0,0,0,2,0,4,75,9.967326,0,92.6,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,92.6,9.099668,1.386294,3.040428,1 +13,3,0,1,2,330613,0,8951.319,7.732375,1,12,1,40.3188,9.446789,0,0,0,49.76559,0,0,0,3,0,4,75,9.967326,0,92.6,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,92.6,9.099668,1.386294,3.907324,1 +13,3,0,1,3,330613,0,8951.319,8.732375,1,12,1,27.51505,14.05847,0,0,0,41.57352,0,0,0,4,1,4,75,9.967326,0,92.6,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,92.6,9.099668,1.386294,3.727463,1 +14,3,95,1,1,330679,0,586.5103,48.87611,1,12,1,7.591093,0,0,0,0,7.591093,0,0,0,1,0,3,88.8,10.3,0,82.1,738.85,738.85,0,0,1.098612,6.605095,0,4.564348,6.656388,1,0,0,82.1,6.375894,1.098612,2.026976,1 +14,3,95,1,2,330679,0,586.5103,49.87611,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,88.8,10.3,0,82.1,738.85,738.85,0,0,1.098612,6.605095,0,4.564348,6.656388,1,0,0,82.1,6.375894,1.098612,,0 +14,3,95,1,3,330679,0,586.5103,50.87611,1,12,1,10.68833,0,23.51432,0,0,34.20265,0,0,0,0,1,3,88.8,10.3,0,82.1,738.85,738.85,0,0,1.098612,6.605095,0,4.564348,6.656388,1,0,0,82.1,6.375894,1.098612,3.532303,1 +14,3,95,1,1,330680,0,586.5103,48.91718,0,12,1,30.36437,0,36.94332,0,0,67.30769,0,0,0,1,1,3,97.3,3.4,0,86.4,738.85,738.85,0,0,1.098612,6.605095,0,4.564348,6.656388,0,0,0,86.4,6.375894,1.098612,4.209275,1 +14,3,95,1,2,330680,0,586.5103,49.91718,0,12,1,18.64802,0,0,0,0,18.64802,0,0,0,1,0,3,97.3,3.4,0,86.4,738.85,738.85,0,0,1.098612,6.605095,0,4.564348,6.656388,0,0,0,86.4,6.375894,1.098612,2.92574,1 +14,3,95,1,3,330680,0,586.5103,50.91718,0,12,1,17.10133,0,0,0,0,17.10133,0,0,0,1,0,3,97.3,3.4,0,86.4,738.85,738.85,0,0,1.098612,6.605095,0,4.564348,6.656388,0,0,0,86.4,6.375894,1.098612,2.839156,1 +14,3,95,1,1,330682,0,586.5103,20.23545,1,13.5,1,0,0,0,0,0,0,0,0,0,0,0,3,86.7,6.9,0,72.7,738.85,738.85,0,0,1.098612,6.605095,0,4.564348,6.656388,0,0,0,72.7,6.375894,1.098612,,0 +14,3,95,1,2,330682,0,586.5103,21.23545,1,13.5,1,0,0,0,0,0,0,0,0,0,0,0,3,86.7,6.9,0,72.7,738.85,738.85,0,0,1.098612,6.605095,0,4.564348,6.656388,0,0,0,72.7,6.375894,1.098612,,0 +14,3,95,1,3,330682,0,586.5103,22.23545,1,13.5,1,0,0,0,0,0,0,0,0,0,0,0,3,86.7,6.9,0,72.7,738.85,738.85,0,0,1.098612,6.605095,0,4.564348,6.656388,0,0,0,72.7,6.375894,1.098612,,0 +11,3,0,1,1,330698,0,12595.31,30.73785,0,14,1,50.05107,5.05618,25.02554,0,0,80.13279,0,0,0,1,1,1,83,10.3,0,84.1,0,16.8,0,0,0,2.821379,0,0,0,0,0,0,84.1,9.441159,0,4.383685,1 +11,3,0,1,2,330698,0,12595.31,31.73785,0,14,1,0,0,0,0,0,0,0,0,0,0,0,1,83,10.3,0,84.1,0,16.8,0,0,0,2.821379,0,0,0,0,0,0,84.1,9.441159,0,,0 +11,3,0,1,3,330698,0,12595.31,32.73785,0,14,1,79.10576,6.865864,30.09458,419.1746,0,116.0662,0,0,18,4,1,2,83,10.3,0,84.1,0,16.8,0,0,.6931472,2.821379,0,0,0,0,0,0,84.1,9.441159,.6931472,4.754161,1 +11,3,0,1,1,330801,0,1015.249,4.13963,0,7,1,37.44939,0,0,0,0,37.44939,0,0,0,3,1,5,80,9.967326,0,96.3,0,0,1,0,1.609438,0,0,0,0,0,0,0,96.3,6.923874,1.609438,3.622991,1 +11,3,0,1,2,330801,0,1015.249,5.13963,0,7,1,6.993007,0,0,0,0,6.993007,0,0,0,1,0,5,80,9.967326,0,96.3,0,0,1,0,1.609438,0,0,0,0,0,0,0,96.3,6.923874,1.609438,1.944911,1 +11,3,0,1,3,330801,0,1015.249,6.13963,0,7,1,5.985464,0,0,0,0,5.985464,0,0,0,1,0,4,80,9.967326,0,96.3,0,0,1,0,1.386294,0,0,0,0,0,0,0,96.3,6.923874,1.386294,1.789334,1 +11,3,0,1,1,330802,0,1015.249,15.14305,1,7,1,22.26721,0,21.25506,0,0,43.52227,0,0,0,1,1,5,87.2,0,0,84.1,0,0,1,1,1.609438,0,0,0,0,0,0,0,84.1,6.923874,1.609438,3.773273,1 +11,3,0,1,2,330802,0,1015.249,16.14305,1,7,1,5.594406,0,0,0,0,5.594406,0,0,0,1,0,5,87.2,0,0,84.1,0,0,1,1,1.609438,0,0,0,0,0,0,0,84.1,6.923874,1.609438,1.721767,1 +11,3,0,1,3,330802,0,1015.249,17.14305,1,7,1,0,0,0,0,0,0,0,0,0,0,0,4,87.2,0,0,84.1,0,0,1,1,1.386294,0,0,0,0,0,0,0,84.1,6.923874,1.386294,,0 +11,3,0,1,1,330803,0,1015.249,33.02122,1,7,1,20.39474,11.19939,0,0,0,31.59413,0,0,0,1,1,5,83,3.4,0,85.2,0,0,0,0,1.609438,0,0,0,0,0,0,0,85.2,6.923874,1.609438,3.452971,1 +11,3,0,1,2,330803,0,1015.249,34.02122,1,7,1,27.50583,2.694639,0,97.9021,0,30.20047,0,0,7,2,0,5,83,3.4,0,85.2,0,0,0,0,1.609438,0,0,0,0,0,0,0,85.2,6.923874,1.609438,3.407857,1 +11,3,0,1,3,330803,0,1015.249,35.02122,1,7,1,19.88029,30.3463,0,339.8889,401.3211,451.5477,1,0,27,2,0,4,83,3.4,0,85.2,0,0,0,0,1.386294,0,0,0,0,0,0,0,85.2,6.923874,1.386294,6.112681,1 +11,3,0,1,1,330804,0,1015.249,9.705681,0,7,1,10.62753,0,0,0,0,10.62753,0,0,0,0,1,5,81.7,9.967326,0,96.3,0,0,1,0,1.609438,0,0,0,0,0,0,0,96.3,6.923874,1.609438,2.363448,1 +11,3,0,1,2,330804,0,1015.249,10.70568,0,7,1,0,0,0,0,0,0,0,0,0,0,0,5,81.7,9.967326,0,96.3,0,0,1,0,1.609438,0,0,0,0,0,0,0,96.3,6.923874,1.609438,,0 +11,3,0,1,1,330806,0,1015.249,13.34429,1,7,1,10.62753,0,0,0,0,10.62753,0,0,0,0,1,5,95,9.967326,0,96.3,0,0,1,1,1.609438,0,0,0,0,0,0,0,96.3,6.923874,1.609438,2.363448,1 +11,3,0,1,2,330806,0,1015.249,14.34429,1,7,1,71.51515,8.741259,0,0,0,80.25641,0,0,0,1,0,5,95,9.967326,0,96.3,0,0,1,1,1.609438,0,0,0,0,0,0,0,96.3,6.923874,1.609438,4.385227,1 +11,3,0,1,3,330806,0,1015.249,15.34429,1,7,1,0,0,0,0,0,0,0,0,0,0,0,4,95,9.967326,0,96.3,0,0,1,1,1.386294,0,0,0,0,0,0,0,96.3,6.923874,1.386294,,0 +11,3,0,1,1,330815,0,1591.789,54.04244,1,2,1,20.93973,42.84985,30.26047,0,0,94.05005,0,0,0,1,1,1,55.3,17.2,0,68.2,0,211.2,0,0,0,5.352806,0,0,0,0,1,0,68.2,7.373242,0,4.543827,1 +11,3,0,1,2,330815,0,1591.789,55.04244,1,2,1,37.50586,63.51617,1.64557,0,0,102.6676,0,0,0,3,0,1,55.3,17.2,0,68.2,0,211.2,0,0,0,5.352806,0,0,0,0,1,0,68.2,7.373242,0,4.631496,1 +11,3,0,1,3,330815,0,1591.789,56.04244,1,2,1,27.94497,37.40327,19.37231,0,0,84.72055,0,0,0,2,1,1,55.3,17.2,0,68.2,0,211.2,0,0,0,5.352806,0,0,0,0,1,0,68.2,7.373242,0,4.439358,1 +11,3,0,1,1,330861,0,3679.765,.4079398,0,13,1,64.09602,9.652707,0,0,0,73.74873,0,0,0,6,0,5,83.39137,9.967326,0,77.8,0,1047.24,1,0,1.609438,6.953913,0,0,0,0,0,0,77.8,8.210876,1.609438,4.300664,1 +11,3,0,1,2,330861,0,3679.765,1.40794,0,13,1,57.19644,8.134084,0,0,0,65.33052,0,0,0,7,0,6,83.39137,9.967326,0,77.8,0,1047.24,1,0,1.791759,6.953913,0,0,0,0,0,0,77.8,8.210876,1.791759,4.179459,1 +11,3,0,1,3,330861,0,3679.765,2.40794,0,13,1,20.63629,15.64918,0,0,0,36.28547,0,0,0,4,0,6,83.39137,9.967326,0,77.8,0,1047.24,1,0,1.791759,6.953913,0,0,0,0,0,0,77.8,8.210876,1.791759,3.591417,1 +11,3,0,1,1,330862,0,5513.196,4.205339,0,10,1,268.1052,0,0,0,0,268.1052,0,0,0,6,0,3,83.39137,9.967326,0,7.4,0,78,1,0,1.098612,4.356709,0,0,0,0,0,0,7.4,8.615081,1.098612,5.59138,1 +11,3,0,1,2,330862,0,5513.196,5.205339,0,10,1,402.7192,0,0,0,414.5101,817.2292,1,0,0,16,0,3,83.39137,9.967326,0,7.4,0,78,1,0,1.098612,4.356709,0,0,0,0,0,0,7.4,8.615081,1.098612,6.70592,1 +11,3,0,1,3,330862,0,5513.196,6.205339,0,10,1,14.61737,0,0,0,0,14.61737,0,0,0,2,0,3,83.39137,9.967326,0,7.4,0,78,1,0,1.098612,4.356709,0,0,0,0,0,0,7.4,8.615081,1.098612,2.68221,1 +11,3,0,1,1,330863,0,5513.196,20.83504,1,10,1,43.82022,2.037794,0,0,0,45.85802,0,0,0,5,0,3,72.9,6.9,1,38.6,0,78,0,0,1.098612,4.356709,0,0,0,0,0,0,38.6,8.615081,1.098612,3.82555,1 +11,3,0,1,2,330863,0,5513.196,21.83504,1,10,1,160.4313,0,35.63057,0,0,196.0619,0,0,0,5,0,3,72.9,6.9,1,38.6,0,78,0,0,1.098612,4.356709,0,0,0,0,0,0,38.6,8.615081,1.098612,5.27843,1 +11,3,0,1,3,330863,0,5513.196,22.83504,1,10,1,137.4033,0,0,0,1303.641,1441.045,1,0,0,5,0,3,72.9,6.9,1,38.6,0,78,0,0,1.098612,4.356709,0,0,0,0,0,0,38.6,8.615081,1.098612,7.273124,1 +16,3,95,0,1,330868,0,7497.361,.0684463,0,14,1,51.51984,6.161772,0,0,0,57.68161,0,0,0,8,0,4,83.39137,9.967326,.0268456,,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,79.22147,8.92244,1.386294,4.054938,1 +16,3,95,0,2,330868,0,7497.361,1.068446,0,14,1,61.93182,10.80019,0,0,0,72.73201,0,0,0,9,0,4,83.39137,9.967326,.0268456,,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,79.22147,8.92244,1.386294,4.286782,1 +16,3,95,0,3,330868,0,7497.361,2.068446,0,14,1,18.20546,2.06762,0,0,0,20.27308,0,0,0,3,0,4,83.39137,9.967326,.0268456,,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,79.22147,8.92244,1.386294,3.009294,1 +16,3,95,0,4,330868,0,7497.361,3.068446,0,14,1,27.41237,2.343442,0,0,0,29.75581,0,0,0,3,0,5,83.39137,9.967326,.0268456,,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,79.22147,8.92244,1.609438,3.393024,1 +16,3,95,0,5,330868,0,7497.361,4.068446,0,14,1,31.12701,1.670841,0,0,0,32.79785,0,0,0,4,0,5,83.39137,9.967326,.0268456,,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,79.22147,8.92244,1.609438,3.490363,1 +11,3,0,1,1,330871,0,14874.49,19.00068,0,13,1,61.23482,1.11336,0,0,0,62.34818,0,0,0,1,0,6,47.9,0,1,61.4,0,580.8,0,0,1.791759,6.364407,0,0,0,0,0,0,61.4,9.60747,1.791759,4.132734,1 +11,3,0,1,2,330871,0,14874.49,20.00068,0,13,1,2.564103,0,0,0,0,2.564103,0,0,0,0,0,6,47.9,0,1,61.4,0,580.8,0,0,1.791759,6.364407,0,0,0,0,0,0,61.4,9.60747,1.791759,.9416085,1 +11,3,0,1,3,330871,0,14874.49,21.00068,0,13,1,39.76058,0,0,0,0,39.76058,0,0,0,2,0,6,47.9,0,1,61.4,0,580.8,0,0,1.791759,6.364407,0,0,0,0,0,0,61.4,9.60747,1.791759,3.682876,1 +11,3,0,1,4,330871,0,14874.49,22.00068,0,13,1,0,0,0,0,0,0,0,0,0,0,0,6,47.9,0,1,61.4,0,580.8,0,0,1.791759,6.364407,0,0,0,0,0,0,61.4,9.60747,1.791759,,0 +11,3,0,1,5,330871,0,14874.49,23.00068,0,13,1,5.268704,2.142606,0,0,0,7.41131,0,0,0,1,0,6,47.9,0,1,61.4,0,580.8,0,0,1.791759,6.364407,0,0,0,0,0,0,61.4,9.60747,1.791759,2.003007,1 +11,3,0,1,1,330872,0,14874.49,20.22998,1,14,1,42.53542,10.67814,0,0,279.7976,333.0111,1,0,0,4,0,6,83.5,3.4,0,65.9,0,580.8,0,0,1.791759,6.364407,0,0,0,0,0,0,65.9,9.60747,1.791759,5.808176,1 +11,3,0,1,2,330872,0,14874.49,21.22998,1,14,1,40.55944,8.717949,0,0,0,49.27739,0,0,0,2,0,6,83.5,3.4,0,65.9,0,580.8,0,0,1.791759,6.364407,0,0,0,0,0,0,65.9,9.60747,1.791759,3.897465,1 +11,3,0,1,3,330872,0,14874.49,22.22998,1,14,1,45.1475,7.524583,0,79.09363,0,52.67208,0,0,4,4,0,6,83.5,3.4,0,65.9,0,580.8,0,0,1.791759,6.364407,0,0,0,0,0,0,65.9,9.60747,1.791759,3.964086,1 +11,3,0,1,4,330872,0,14874.49,23.22998,1,14,1,7.302075,2.924673,0,338.2014,0,10.22675,0,0,22,1,0,6,83.5,3.4,0,65.9,0,580.8,0,0,1.791759,6.364407,0,0,0,0,0,0,65.9,9.60747,1.791759,2.325007,1 +11,3,0,1,5,330872,0,14874.49,24.22998,1,14,1,141.7106,11.99508,0,14.04988,0,153.7057,0,0,1,2,0,6,83.5,3.4,0,65.9,0,580.8,0,0,1.791759,6.364407,0,0,0,0,0,0,65.9,9.60747,1.791759,5.035039,1 +15,3,95,0,1,330873,0,1703.226,.0465435,0,9,1,88.30972,2.884615,0,0,0,91.19433,0,0,0,5,0,2,83.39137,9.967326,.0268456,,0,0,1,0,.6931472,0,0,4.564348,0,0,0,0,79.22147,7.440866,.6931472,4.512993,1 +15,3,95,0,2,330873,0,1703.226,1.046543,0,9,1,0,2.097902,0,0,0,2.097902,0,0,0,0,0,2,83.39137,9.967326,.0268456,,0,0,1,0,.6931472,0,0,4.564348,0,0,0,0,79.22147,7.440866,.6931472,.7409378,1 +15,3,95,0,3,330873,0,1703.226,2.046543,0,9,1,19.66652,2.073536,0,0,0,21.74006,0,0,0,2,0,2,83.39137,9.967326,.0268456,,0,0,1,0,.6931472,0,0,4.564348,0,0,0,0,79.22147,7.440866,.6931472,3.079157,1 +11,3,0,1,1,330874,0,2639.296,21.9822,0,9,1,14.42308,6.022267,23.27935,0,0,43.7247,0,0,0,0,1,5,89.4,3.4,0,80.7,0,0,0,0,1.609438,0,0,0,0,0,0,0,80.7,7.878646,1.609438,3.777913,1 +14,3,95,1,1,330876,1,10370.09,35.00068,0,11.38739,1,24.89878,0,0,0,0,24.89878,0,0,0,1,0,5,66,6.9,0,67,750,750,0,0,1.609438,6.620073,0,4.564348,6.671367,0,0,0,67,9.246778,1.609438,3.214819,1 +14,3,95,1,2,330876,1,10370.09,36.00068,0,11.38739,1,49.84615,0,0,0,0,49.84615,0,0,0,3,0,5,66,6.9,0,67,750,750,0,0,1.609438,6.620073,0,4.564348,6.671367,0,0,0,67,9.246778,1.609438,3.908941,1 +14,3,95,1,3,330876,1,10370.09,37.00068,0,11.38739,1,0,11.05173,0,0,0,11.05173,0,0,0,0,0,6,66,6.9,0,67,750,750,0,0,1.791759,6.620073,0,4.564348,6.671367,0,0,0,67,9.246778,1.791759,2.402587,1 +15,3,95,0,1,330877,0,6617.009,.1122519,0,15,1,6.072875,0,0,0,0,6.072875,0,0,0,1,0,3,83.39137,9.967326,.0268456,,1000,1000,1,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,79.22147,8.79755,1.098612,1.803832,1 +15,3,95,0,2,330877,0,6617.009,1.112252,0,15,1,0,0,0,0,0,0,0,0,0,0,0,3,83.39137,9.967326,.0268456,,1000,1000,1,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,79.22147,8.79755,1.098612,,0 +15,3,95,0,3,330877,0,6617.009,2.112252,0,15,1,0,0,0,0,0,0,0,0,0,0,0,3,83.39137,9.967326,.0268456,,1000,1000,1,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,79.22147,8.79755,1.098612,,0 +10,3,50,0,1,330878,0,2069.208,.5913758,1,12,1,10.12146,1.558704,0,0,0,11.68016,0,0,0,1,0,3,83.39137,9.967326,1,88.9,225,225,1,1,1.098612,5.416101,0,3.931826,6.109248,0,0,0,88.9,7.635405,1.098612,2.457892,1 +10,3,50,0,2,330878,0,2069.208,1.591376,1,12,1,31.70163,3.207459,0,0,0,34.90909,0,0,0,2,0,3,83.39137,9.967326,1,88.9,225,225,1,1,1.098612,5.416101,0,3.931826,6.109248,0,0,0,88.9,7.635405,1.098612,3.552747,1 +10,3,50,0,3,330878,0,2069.208,2.591376,1,12,1,38.39248,0,.8550662,0,0,39.24754,0,0,0,1,0,3,83.39137,9.967326,1,88.9,225,225,1,1,1.098612,5.416101,0,3.931826,6.109248,0,0,0,88.9,7.635405,1.098612,3.669889,1 +11,3,0,1,3,330880,0,10515.54,21.90417,1,,1,31.20992,1.710132,25.65199,0,0,58.57204,0,0,0,2,1,1,73.4,6.9,0,91.7,,,0,0,0,0,0,0,0,0,0,0,91.7,9.260705,0,4.070258,1 +13,3,0,1,1,330881,0,7196.79,.1396304,0,11.38739,1,75.91093,0,0,0,0,75.91093,0,0,0,9,0,7,83.39137,9.967326,0,85.2,450,450,1,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,85.2,8.881529,1.94591,4.329561,1 +13,3,0,1,2,330881,0,7196.79,1.13963,0,11.38739,1,384.7552,55.26807,7.692307,0,1586.42,2034.135,6,0,0,11,13,7,83.39137,9.967326,0,85.2,450,450,1,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,85.2,8.881529,1.94591,7.617826,1 +13,3,0,1,3,330881,0,7196.79,2.13963,0,11.38739,1,628.8799,84.66866,0,0,202.0735,915.6221,1,0,0,17,25,7,83.39137,9.967326,0,85.2,450,450,1,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,85.2,8.881529,1.94591,6.819604,1 +13,3,0,1,1,330882,0,6943.695,12.80219,0,16,1,27.83401,0,0,619.9393,0,27.83401,0,0,35,0,1,3,56.7,9.967326,0,96.3,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,96.3,8.845734,1.098612,3.326259,1 +13,3,0,1,2,330882,0,6943.695,13.80219,0,16,1,0,0,0,587.4126,0,0,0,0,36,0,0,3,56.7,9.967326,0,96.3,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,96.3,8.845734,1.098612,,0 +13,3,0,1,3,330882,0,6943.695,14.80219,0,16,1,120.1368,0,0,74.8183,0,120.1368,0,0,5,1,2,3,56.7,9.967326,0,96.3,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,96.3,8.845734,1.098612,4.788631,1 +13,3,0,1,1,330883,0,3287.537,25.22382,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,76.1,3.4,0,88.6,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,88.6,8.098198,1.098612,,0 +15,3,95,1,1,330886,.0322129,7920.821,54.93224,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,91.5,0,0,79.5,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,79.5,8.977376,.6931472,,0 +15,3,95,1,2,330886,.0322129,7920.821,55.93224,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,91.5,0,0,79.5,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,79.5,8.977376,.6931472,,0 +15,3,95,1,3,330886,.0322129,7920.821,56.93224,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,91.5,0,0,79.5,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,79.5,8.977376,.6931472,,0 +15,3,95,1,4,330886,.0322129,7920.821,57.93224,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,91.5,0,0,79.5,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,79.5,8.977376,.6931472,,0 +15,3,95,1,5,330886,.0322129,7920.821,58.93224,0,12,1,12.99614,0,0,0,0,12.99614,0,0,0,1,0,2,91.5,0,0,79.5,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,79.5,8.977376,.6931472,2.564652,1 +15,3,95,1,1,330887,.0322129,7920.821,50.30253,1,12,1,12.65182,0,27.32794,0,0,39.97976,0,0,0,1,0,2,75,6.9,0,78.4,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,78.4,8.977376,.6931472,3.688373,1 +15,3,95,1,2,330887,.0322129,7920.821,51.30253,1,12,1,11.65501,0,0,0,0,11.65501,0,0,0,1,0,2,75,6.9,0,78.4,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,78.4,8.977376,.6931472,2.455736,1 +15,3,95,1,3,330887,.0322129,7920.821,52.30253,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,75,6.9,0,78.4,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,78.4,8.977376,.6931472,,0 +15,3,95,1,4,330887,.0322129,7920.821,53.30253,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,75,6.9,0,78.4,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,78.4,8.977376,.6931472,,0 +15,3,95,1,5,330887,.0322129,7920.821,54.30253,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,75,6.9,0,78.4,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,78.4,8.977376,.6931472,,0 +11,3,0,1,1,330888,0,3702.639,22.79808,1,13,1,77.45148,6.154239,22.98264,0,0,106.5884,0,0,0,2,0,1,77.1,13.8,0,72.7,0,440.4,0,0,0,6.087683,0,0,0,0,0,0,72.7,8.217072,0,4.668974,1 +11,3,0,1,2,330888,0,3702.639,23.79808,1,13,1,36.56821,2.006563,0,0,0,38.57478,0,0,0,2,0,1,77.1,13.8,0,72.7,0,440.4,0,0,0,6.087683,0,0,0,0,0,0,72.7,8.217072,0,3.652599,1 +11,3,0,1,3,330888,0,3702.639,24.79808,1,13,1,66.20808,26.1178,0,0,0,92.32588,0,0,0,9,0,1,77.1,13.8,0,72.7,0,440.4,0,0,0,6.087683,0,0,0,0,0,0,72.7,8.217072,0,4.525324,1 +11,3,0,1,1,330889,0,4480.352,18.16564,0,11,1,28.34008,2.246964,0,0,0,30.58704,0,0,0,3,0,5,97.3,3.4,0,53.4,0,0,0,0,1.609438,0,0,0,0,0,0,0,53.4,8.407681,1.609438,3.420577,1 +11,3,0,1,2,330889,0,4480.352,19.16564,0,11,1,15.38461,4.871795,0,0,0,20.25641,0,0,0,1,0,6,97.3,3.4,0,53.4,0,0,0,0,1.791759,0,0,0,0,0,0,0,53.4,8.407681,1.791759,3.008471,1 +11,3,0,1,3,330889,0,4480.352,20.16564,0,11,1,15.90423,0,0,0,0,15.90423,0,0,0,1,0,6,97.3,3.4,0,53.4,0,0,0,0,1.791759,0,0,0,0,0,0,0,53.4,8.407681,1.791759,2.766585,1 +11,3,0,1,1,330890,0,4480.352,29.36345,0,9,1,37.44939,12.60121,0,0,541.2045,591.2551,1,0,0,7,0,5,47.9,0,0,52.3,0,0,0,0,1.609438,0,0,0,0,0,0,0,52.3,8.407681,1.609438,6.382247,1 +11,3,0,1,2,330890,0,4480.352,30.36345,0,9,1,22.37762,9.65035,0,0,0,32.02797,0,0,0,3,0,6,47.9,0,0,52.3,0,0,0,0,1.791759,0,0,0,0,0,0,0,52.3,8.407681,1.791759,3.46661,1 +11,3,0,1,3,330890,0,4480.352,31.36345,0,9,1,66.69517,12.29158,0,0,475.0235,554.0103,1,0,0,6,0,6,47.9,0,0,52.3,0,0,0,0,1.791759,0,0,0,0,0,0,0,52.3,8.407681,1.791759,6.317183,1 +15,3,95,1,1,330891,0,7494.428,45.45106,0,10,1,33.40081,4.453441,25.30364,0,0,63.15789,0,0,0,1,1,2,85.1,6.9,0,87.5,400,400,0,0,.6931472,5.991465,0,4.564348,6.042758,0,0,0,87.5,8.922049,.6931472,4.145638,1 +15,3,95,1,2,330891,0,7494.428,46.45106,0,10,1,49.41725,9.603729,0,0,0,59.02098,0,0,0,2,0,2,85.1,6.9,0,87.5,400,400,0,0,.6931472,5.991465,0,4.564348,6.042758,0,0,0,87.5,8.922049,.6931472,4.077893,1 +15,3,95,1,3,330891,0,7494.428,47.45106,0,10,1,48.31124,0,0,0,0,48.31124,0,0,0,2,0,2,85.1,6.9,0,87.5,400,400,0,0,.6931472,5.991465,0,4.564348,6.042758,0,0,0,87.5,8.922049,.6931472,3.877664,1 +11,3,0,0,2,330899,0,5465.103,.6960986,1,12,1,26.98864,5.776515,0,0,514.304,547.0692,1,0,0,4,0,5,83.39137,9.967326,.0268456,,0,278.4,1,1,1.609438,5.629059,0,0,0,0,0,0,79.22147,8.606321,1.609438,6.304575,1 +11,3,0,0,3,330899,0,5465.103,1.696099,1,12,1,8.669268,0,0,0,0,8.669268,0,0,0,1,0,5,83.39137,9.967326,.0268456,,0,278.4,1,1,1.609438,5.629059,0,0,0,0,0,0,79.22147,8.606321,1.609438,2.159784,1 +11,3,0,0,4,330899,0,5465.103,2.696099,1,12,1,27.17605,14.11973,0,0,0,41.29578,0,0,0,2,0,5,83.39137,9.967326,.0268456,,0,278.4,1,1,1.609438,5.629059,0,0,0,0,0,0,79.22147,8.606321,1.609438,3.72076,1 +11,3,0,0,5,330899,0,5465.103,3.696099,1,12,1,16.99463,0,0,0,0,16.99463,0,0,0,2,0,5,83.39137,9.967326,.0268456,,0,278.4,1,1,1.609438,5.629059,0,0,0,0,0,0,79.22147,8.606321,1.609438,2.832898,1 +10,3,50,0,2,330900,0,6108.082,.6933607,0,12,1,25.80029,1.863354,0,0,0,27.66364,0,0,0,5,0,4,83.39137,9.967326,.0268456,,1000,520,1,0,1.386294,6.253829,0,3.931826,7.600903,0,0,0,79.22147,8.717532,1.386294,3.320119,1 +10,3,50,0,3,330900,0,6108.082,1.693361,0,12,1,8.34065,0,0,0,0,8.34065,0,0,0,1,0,4,83.39137,9.967326,.0268456,,1000,520,1,0,1.386294,6.253829,0,3.931826,7.600903,0,0,0,79.22147,8.717532,1.386294,2.121141,1 +13,3,0,0,2,330920,0,5980.897,.3730322,1,12,1,100.4778,10.77401,0,0,0,111.2518,0,0,0,7,0,4,83.39137,9.967326,.0268456,,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,79.22147,8.696493,1.386294,4.711796,1 +13,3,0,0,3,330920,0,5980.897,1.373032,1,12,1,5.267779,3.446005,0,0,0,8.713784,0,0,0,1,0,4,83.39137,9.967326,.0268456,,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,79.22147,8.696493,1.386294,2.164906,1 +11,3,0,0,2,330925,0,3679.765,.37577,1,13,1,92.12377,23.95687,0,0,0,116.0806,0,0,0,13,0,6,83.39137,9.967326,.0268456,,0,1047.24,1,1,1.791759,6.953913,0,0,0,0,0,0,79.22147,8.210876,1.791759,4.754285,1 +11,3,0,0,3,330925,0,3679.765,1.37577,1,13,1,103.1814,24.76784,22.06793,0,0,150.0172,0,0,0,14,0,6,83.39137,9.967326,.0268456,,0,1047.24,1,1,1.791759,6.953913,0,0,0,0,0,0,79.22147,8.210876,1.791759,5.01075,1 +11,3,0,0,2,330934,0,4918.006,.156742,1,13,1,28.66698,0,0,0,0,28.66698,0,0,0,5,0,5,83.39137,9.967326,.0268456,,0,0,1,1,1.609438,0,0,0,0,0,0,0,79.22147,8.500862,1.609438,3.355746,1 +13,3,0,0,2,330936,0,5472.727,.4223135,0,7,1,11.18881,4.918415,0,0,0,16.10723,0,0,0,2,0,4,83.39137,9.967326,.0268456,,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,79.22147,8.607715,1.386294,2.779268,1 +13,3,0,0,3,330936,0,5472.727,1.422313,0,7,1,13.25353,3.330483,0,0,0,16.58401,0,0,0,3,0,4,83.39137,9.967326,.0268456,,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,79.22147,8.607715,1.386294,2.808439,1 +13,3,0,0,4,330936,0,5472.727,2.422313,0,7,1,12.68255,5.046118,0,0,0,17.72867,0,0,0,2,0,2,83.39137,9.967326,.0268456,,450,450,1,0,.6931472,6.109248,1,4.564348,6.160541,0,0,0,79.22147,8.607715,.6931472,2.875183,1 +13,3,0,0,5,330936,0,5472.727,3.422313,0,7,1,45.39867,2.058307,0,0,0,47.45697,0,0,0,4,0,2,83.39137,9.967326,.0268456,,450,450,1,0,.6931472,6.109248,1,4.564348,6.160541,0,0,0,79.22147,8.607715,.6931472,3.859823,1 +10,3,50,0,3,330944,0,6217.595,.9431896,0,12,1,4.389816,0,0,0,0,4.389816,0,0,0,1,0,4,83.39137,9.967326,.0268456,,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,79.22147,8.735299,1.386294,1.479287,1 +13,3,0,0,2,330956,0,8395.895,.0882957,0,12,1,41.72527,7.435537,.3703704,0,250.2813,299.8125,1,0,0,7,0,4,83.39137,9.967326,.0268456,,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,79.22147,9.035617,1.386294,5.703157,1 +13,3,0,0,3,330956,0,8395.895,1.088296,0,12,1,29.23474,2.884781,0,0,463.5855,495.7051,1,0,0,6,0,4,83.39137,9.967326,.0268456,,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,79.22147,9.035617,1.386294,6.205981,1 +19,3,25,0,2,330957,0,7995.308,.1047228,0,12,1,61.42191,2.797203,0,0,0,64.21912,0,0,0,9,0,2,83.39137,9.967326,.0268456,,390,390,1,0,.6931472,5.966147,0,3.258096,7.352441,0,0,0,79.22147,8.986735,.6931472,4.162301,1 +19,3,25,0,3,330957,0,7995.308,1.104723,0,12,1,51.73151,0,0,0,0,51.73151,0,0,0,5,0,2,83.39137,9.967326,.0268456,,390,390,1,0,.6931472,5.966147,0,3.258096,7.352441,0,0,0,79.22147,8.986735,.6931472,3.946067,1 +13,3,0,0,3,330960,0,7722.581,.9678302,0,14,1,13.0039,0,0,0,0,13.0039,0,0,0,1,0,4,83.39137,9.967326,.0268456,,450,807.6,1,0,1.386294,6.694067,1,4.564348,6.160541,0,0,0,79.22147,8.952033,1.386294,2.565249,1 +11,3,0,0,3,330963,0,9506.158,.9760438,0,14,1,24.70741,11.74686,0,0,0,36.45427,0,0,0,4,0,3,83.39137,9.967326,.0268456,,0,329.14,1,0,1.098612,5.796483,0,0,0,0,0,0,79.22147,9.159801,1.098612,3.596059,1 +11,3,0,0,4,330963,0,9506.158,1.976044,0,14,1,37.21938,2.315872,0,0,0,39.53525,0,0,0,5,0,3,83.39137,9.967326,.0268456,,0,329.14,1,0,1.098612,5.796483,0,0,0,0,0,0,79.22147,9.159801,1.098612,3.677193,1 +11,3,0,0,5,330963,0,9506.158,2.976044,0,14,1,36.85152,20.52952,0,0,119.8175,177.1986,1,0,0,6,0,3,83.39137,9.967326,.0268456,,0,329.14,1,0,1.098612,5.796483,0,0,0,0,0,0,79.22147,9.159801,1.098612,5.177271,1 +18,3,25,0,3,330965,0,6519.062,.9678302,0,7,1,90.80804,11.60752,0,0,0,102.4156,0,0,0,8,0,7,83.39137,9.967326,.0268456,,660,660,1,0,1.94591,6.49224,0,3.258096,7.878534,0,0,0,79.22147,8.78264,1.94591,4.629039,1 +18,3,25,0,4,330965,0,6519.062,1.96783,0,7,1,144.8117,7.033051,0,0,0,151.8447,0,0,0,5,3,8,83.39137,9.967326,.0268456,,660,660,1,0,2.079442,6.49224,0,3.258096,7.878534,0,0,0,79.22147,8.78264,2.079442,5.022859,1 +18,3,25,0,5,330965,0,6519.062,2.96783,0,7,1,72.35686,6.845803,0,0,0,79.20267,0,0,0,5,0,8,83.39137,9.967326,.0268456,,660,660,1,0,2.079442,6.49224,0,3.258096,7.878534,0,0,0,79.22147,8.78264,2.079442,4.37201,1 +11,3,0,0,3,330981,0,6411.144,.7378508,0,12,1,78.24592,12.01634,0,0,0,90.26225,0,0,0,7,0,4,83.39137,9.967326,.0268456,,0,261.48,1,0,1.386294,5.566358,0,0,0,0,0,0,79.22147,8.765949,1.386294,4.502719,1 +11,3,0,0,3,330988,0,2930.205,.6146475,0,10,1,172.6569,36.681,0,0,1144.639,1353.977,2,0,0,12,0,4,83.39137,9.967326,.0268456,,0,780.92,1,0,1.386294,6.660473,0,0,0,0,0,0,79.22147,7.983169,1.386294,7.210801,1 +11,3,0,0,3,330989,0,10994.72,.5927447,0,16,1,79.75726,15.40962,0,0,0,95.16689,0,0,0,8,0,3,83.39137,9.967326,.0268456,,0,125.58,1,0,1.098612,4.832943,0,0,0,0,0,0,79.22147,9.305262,1.098612,4.555632,1 +13,3,0,0,3,331005,0,10826.39,.4065709,0,9,1,22.7859,1.242476,0,0,0,24.02838,0,0,0,4,0,3,83.39137,9.967326,.0268456,,300,300,1,0,1.098612,5.703783,1,4.564348,5.755076,0,0,0,79.22147,9.289835,1.098612,3.179235,1 +16,3,95,0,3,331007,0,2777.713,.4722793,0,9,1,54.23258,1.923899,0,0,0,56.15648,0,0,0,6,0,4,83.39137,9.967326,.0268456,,915,915,1,0,1.386294,6.818924,0,4.564348,6.870217,0,0,0,79.22147,7.929743,1.386294,4.028142,1 +16,3,95,0,4,331007,0,2777.713,1.472279,0,9,1,366.1184,0,0,0,0,366.1184,0,0,0,7,0,4,83.39137,9.967326,.0268456,,915,915,1,0,1.386294,6.818924,0,4.564348,6.870217,0,0,0,79.22147,7.929743,1.386294,5.902956,1 +16,3,95,0,5,331007,0,2777.713,2.472279,0,9,1,115.3846,8.5634,0,0,0,123.948,0,0,0,12,0,5,83.39137,9.967326,.0268456,,915,915,1,0,1.609438,6.818924,0,4.564348,6.870217,0,0,0,79.22147,7.929743,1.609438,4.819862,1 +14,3,95,0,3,331010,1,10370.09,.4859685,0,13,1,93.92903,13.53142,0,0,286.7379,394.1984,1,0,0,9,0,6,83.39137,9.967326,.0268456,,750,750,1,0,1.791759,6.620073,0,4.564348,6.671367,0,0,0,79.22147,9.246778,1.791759,5.976854,1 +16,3,95,0,4,331039,0,7497.361,.9767283,1,14,1,16.14809,0,0,0,0,16.14809,0,0,0,3,0,5,83.39137,9.967326,.0268456,,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,79.22147,8.92244,1.609438,2.781802,1 +16,3,95,0,5,331039,0,7497.361,1.976728,1,14,1,30.41145,1.642218,0,0,0,32.05367,0,0,0,4,0,5,83.39137,9.967326,.0268456,,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,79.22147,8.92244,1.609438,3.467412,1 +17,3,25,0,3,331042,0,6176.54,.0999316,1,13,1,30.35485,1.795639,0,0,0,32.15049,0,0,0,5,0,5,83.39137,9.967326,.0268456,,560,560,1,1,1.609438,6.327937,0,3.258096,7.714231,0,0,0,79.22147,8.728675,1.609438,3.470428,1 +11,3,0,0,3,331044,0,12595.31,.0670773,0,14,1,94.23904,3.177128,0,0,0,97.41617,0,0,0,9,0,2,83.39137,9.967326,.0268456,,0,16.8,1,0,.6931472,2.821379,0,0,0,0,0,0,79.22147,9.441159,.6931472,4.578992,1 +16,3,95,0,4,331098,1,6370.674,.4592745,0,13,1,47.07917,0,0,0,0,47.07917,0,0,0,1,0,2,83.39137,9.967326,.0268456,,1000,900,1,0,.6931472,6.802395,0,4.564348,6.959049,0,0,0,79.22147,8.759618,.6931472,3.851831,1 +16,3,95,0,5,331098,1,6370.674,1.459274,0,13,1,0,0,0,0,0,0,0,0,0,0,0,2,83.39137,9.967326,.0268456,,1000,900,1,0,.6931472,6.802395,0,4.564348,6.959049,0,0,0,79.22147,8.759618,.6931472,,0 +18,3,25,0,4,331125,0,6519.062,.1800137,0,7,1,24.21214,10.08839,0,0,115.638,149.9385,1,0,0,3,0,8,83.39137,9.967326,.0268456,,660,660,1,0,2.079442,6.49224,0,3.258096,7.878534,0,0,0,79.22147,8.78264,2.079442,5.010225,1 +18,3,25,0,5,331125,0,6519.062,1.180014,0,7,1,94.4503,7.024939,0,0,0,101.4752,0,0,0,5,1,8,83.39137,9.967326,.0268456,,660,660,1,0,2.079442,6.49224,0,3.258096,7.878534,0,0,0,79.22147,8.78264,2.079442,4.619815,1 +11,3,0,0,5,331134,0,2570.088,.7748117,0,11.38739,1,54.03397,4.918613,0,0,0,58.95258,0,0,0,6,0,2,83.39137,9.967326,.0268456,,0,227.4,1,0,.6931472,5.426711,0,0,0,0,0,0,79.22147,7.852084,.6931472,4.076734,1 +11,3,0,0,5,331167,0,5739.003,.2135524,0,12,1,47.49819,13.01668,0,0,0,60.51487,0,0,0,7,0,4,83.39137,9.967326,.0268456,,0,156.36,1,0,1.386294,5.052161,0,0,0,0,0,0,79.22147,8.655215,1.386294,4.102889,1 +16,3,95,0,5,331278,0,2777.713,.1177276,0,9,1,107.6572,16.61749,0,0,0,124.2747,0,0,0,17,0,5,83.39137,9.967326,.0268456,,915,915,1,0,1.609438,6.818924,0,4.564348,6.870217,0,0,0,79.22147,7.929743,1.609438,4.822494,1 +15,4,95,0,1,425075,0,11089.74,18.04791,1,10,1,19.91828,0,0,0,0,19.91828,0,0,0,3,0,6,77.1,6.9,0,73.9,1000,1000,0,0,1.791759,6.907755,0,4.564348,6.959049,1,0,0,73.9,9.313866,1.791759,2.991638,1 +15,4,95,0,2,425075,0,11089.74,19.04791,1,10,1,0,0,0,0,0,0,0,0,0,0,0,6,77.1,6.9,0,73.9,1000,1000,0,0,1.791759,6.907755,0,4.564348,6.959049,1,0,0,73.9,9.313866,1.791759,,0 +15,4,95,0,3,425075,0,11089.74,20.04791,1,10,1,0,0,0,0,0,0,0,0,0,0,0,6,77.1,6.9,0,73.9,1000,1000,0,0,1.791759,6.907755,0,4.564348,6.959049,1,0,0,73.9,9.313866,1.791759,,0 +15,4,95,0,1,425209,0,7910.823,30.63107,0,8,1,56.38664,.1821862,0,0,0,56.56882,0,0,0,2,0,4,47.9,10.3,1,63.6,700,700,0,0,1.386294,6.55108,0,4.564348,6.602374,1,0,0,63.6,8.976113,1.386294,4.035458,1 +15,4,95,0,2,425209,0,7910.823,31.63107,0,8,1,0,0,0,0,0,0,0,0,0,0,0,4,47.9,10.3,1,63.6,700,700,0,0,1.386294,6.55108,0,4.564348,6.602374,1,0,0,63.6,8.976113,1.386294,,0 +15,4,95,0,3,425209,0,7910.823,32.63107,0,8,1,0,0,0,0,0,0,0,0,0,0,0,4,47.9,10.3,1,63.6,700,700,0,0,1.386294,6.55108,0,4.564348,6.602374,1,0,0,63.6,8.976113,1.386294,,0 +15,4,95,1,1,425210,0,7910.823,6.349076,1,9,1,0,0,0,0,0,0,0,0,0,0,0,4,96.7,9.967326,0,88.9,700,700,1,1,1.386294,6.55108,0,4.564348,6.602374,1,0,0,88.9,8.976113,1.386294,,0 +15,4,95,1,2,425210,0,7910.823,7.349076,1,9,1,0,0,0,0,0,0,0,0,0,0,0,4,96.7,9.967326,0,88.9,700,700,1,1,1.386294,6.55108,0,4.564348,6.602374,1,0,0,88.9,8.976113,1.386294,,0 +15,4,95,1,3,425210,0,7910.823,8.349076,1,9,1,6.412997,0,0,0,0,6.412997,0,0,0,1,0,4,96.7,9.967326,0,88.9,700,700,1,1,1.386294,6.55108,0,4.564348,6.602374,1,0,0,88.9,8.976113,1.386294,1.858327,1 +15,4,95,1,1,425211,0,7910.823,26.4449,1,9,1,0,0,0,0,0,0,0,0,0,0,0,4,65.4,0,0,80.7,700,700,0,0,1.386294,6.55108,0,4.564348,6.602374,1,0,0,80.7,8.976113,1.386294,,0 +15,4,95,1,2,425211,0,7910.823,27.4449,1,9,1,0,0,0,0,0,0,0,0,0,0,0,4,65.4,0,0,80.7,700,700,0,0,1.386294,6.55108,0,4.564348,6.602374,1,0,0,80.7,8.976113,1.386294,,0 +15,4,95,1,3,425211,0,7910.823,28.4449,1,9,1,188.7559,0,0,0,0,188.7559,0,0,0,8,0,4,65.4,0,0,80.7,700,700,0,0,1.386294,6.55108,0,4.564348,6.602374,1,0,0,80.7,8.976113,1.386294,5.240455,1 +15,4,95,1,1,425212,0,7910.823,5.349761,0,9,1,0,0,0,0,0,0,0,0,0,0,0,4,88.3,9.967326,0,88.9,700,700,1,0,1.386294,6.55108,0,4.564348,6.602374,1,0,0,88.9,8.976113,1.386294,,0 +15,4,95,1,2,425212,0,7910.823,6.349761,0,9,1,0,0,0,0,0,0,0,0,0,0,0,4,88.3,9.967326,0,88.9,700,700,1,0,1.386294,6.55108,0,4.564348,6.602374,1,0,0,88.9,8.976113,1.386294,,0 +15,4,95,1,3,425212,0,7910.823,7.349761,0,9,1,0,0,0,0,0,0,0,0,0,0,0,4,88.3,9.967326,0,88.9,700,700,1,0,1.386294,6.55108,0,4.564348,6.602374,1,0,0,88.9,8.976113,1.386294,,0 +18,4,25,0,1,425220,0,5625.807,27.96715,1,12,1,31.1236,4.698672,0,0,0,35.82227,0,0,0,2,0,4,88.8,6.9,0,86.4,750,725,0,0,1.386294,6.586172,0,3.258096,8.006368,0,0,0,86.4,8.635298,1.386294,3.57857,1 +18,4,25,0,2,425220,0,5625.807,28.96715,1,12,1,49.92968,1.851852,28.59822,0,0,80.37975,0,0,0,3,0,4,88.8,6.9,0,86.4,750,725,0,0,1.386294,6.586172,0,3.258096,8.006368,0,0,0,86.4,8.635298,1.386294,4.386762,1 +18,4,25,0,3,425220,0,5625.807,29.96715,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,88.8,6.9,0,86.4,750,725,0,0,1.386294,6.586172,0,3.258096,8.006368,0,0,0,86.4,8.635298,1.386294,,0 +18,4,25,0,1,425221,0,5625.807,6.360027,1,12,1,54.39224,15.35751,0,0,0,69.74975,0,0,0,4,0,4,76.7,9.967326,0,96.3,750,725,1,1,1.386294,6.586172,0,3.258096,8.006368,0,0,0,96.3,8.635298,1.386294,4.244914,1 +18,4,25,0,2,425221,0,5625.807,7.360027,1,12,1,37.03704,9.329583,0,0,0,46.36662,0,0,0,6,0,4,76.7,9.967326,0,96.3,750,725,1,1,1.386294,6.586172,0,3.258096,8.006368,0,0,0,96.3,8.635298,1.386294,3.83658,1 +18,4,25,0,3,425221,0,5625.807,8.360027,1,12,1,24.07567,7.308684,0,0,0,31.38435,0,0,0,3,0,4,76.7,9.967326,0,96.3,750,725,1,1,1.386294,6.586172,0,3.258096,8.006368,0,0,0,96.3,8.635298,1.386294,3.446309,1 +18,4,25,0,1,425222,0,5625.807,3.96167,0,12,1,13.78958,3.447395,0,0,0,17.23698,0,0,0,2,0,4,83.39137,9.967326,0,96.3,750,725,1,0,1.386294,6.586172,0,3.258096,8.006368,1,0,0,96.3,8.635298,1.386294,2.847057,1 +18,4,25,0,2,425222,0,5625.807,4.96167,0,12,1,5.625879,11.46273,0,0,0,17.08861,0,0,0,1,0,4,83.39137,9.967326,0,96.3,750,725,1,0,1.386294,6.586172,0,3.258096,8.006368,1,0,0,96.3,8.635298,1.386294,2.838412,1 +18,4,25,0,3,425222,0,5625.807,5.96167,0,12,1,18.48667,4.256234,0,0,0,22.74291,0,0,0,3,0,4,83.39137,9.967326,0,96.3,750,725,1,0,1.386294,6.586172,0,3.258096,8.006368,1,0,0,96.3,8.635298,1.386294,3.124253,1 +18,4,25,0,1,425223,0,5625.807,29.04038,0,12,1,0,1.787538,0,0,0,1.787538,0,0,0,0,0,4,77.7,13.8,0,76.1,750,725,0,0,1.386294,6.586172,0,3.258096,8.006368,0,0,0,76.1,8.635298,1.386294,.5808394,1 +18,4,25,0,2,425223,0,5625.807,30.04038,0,12,1,57.19644,15.80872,0,0,0,73.00516,0,0,0,2,0,4,77.7,13.8,0,76.1,750,725,0,0,1.386294,6.586172,0,3.258096,8.006368,0,0,0,76.1,8.635298,1.386294,4.29053,1 +18,4,25,0,3,425223,0,5625.807,31.04038,0,12,1,1.977644,7.678418,0,0,0,9.656062,0,0,0,0,0,4,77.7,13.8,0,76.1,750,725,0,0,1.386294,6.586172,0,3.258096,8.006368,0,0,0,76.1,8.635298,1.386294,2.267586,1 +11,4,0,1,1,425267,0,4166.569,4.295688,0,16,1,35.54869,4.121587,0,0,0,39.67027,0,0,0,4,0,4,83.39137,9.967326,0,96.3,0,0,1,0,1.386294,0,0,0,0,0,0,0,96.3,8.335088,1.386294,3.680602,1 +11,4,0,1,2,425267,0,4166.569,5.295688,0,16,1,42.61364,1.216856,0,28.40909,0,43.83049,0,0,2,0,0,4,83.39137,9.967326,0,96.3,0,0,1,0,1.386294,0,0,0,0,0,0,0,96.3,8.335088,1.386294,3.78033,1 +11,4,0,1,3,425267,0,4166.569,6.295688,0,16,1,10.83658,0,0,0,0,10.83658,0,0,0,0,1,4,83.39137,9.967326,0,96.3,0,0,1,0,1.386294,0,0,0,0,0,0,0,96.3,8.335088,1.386294,2.382928,1 +11,4,0,1,1,425268,0,4166.569,29.12526,1,16,1,46.36785,12.36476,27.56311,0,0,86.29572,0,0,0,4,0,4,76.1,13.8,0,86.4,0,0,0,0,1.386294,0,0,0,0,0,0,0,86.4,8.335088,1.386294,4.45778,1 +11,4,0,1,2,425268,0,4166.569,30.12526,1,16,1,2.367424,5.776515,0,0,0,8.143939,0,0,0,0,0,4,76.1,13.8,0,86.4,0,0,0,0,1.386294,0,0,0,0,0,0,0,86.4,8.335088,1.386294,2.097274,1 +11,4,0,1,3,425268,0,4166.569,31.12526,1,16,1,17.33854,5.205895,29.04205,0,0,51.58648,0,0,0,1,0,4,76.1,13.8,0,86.4,0,0,0,0,1.386294,0,0,0,0,0,0,0,86.4,8.335088,1.386294,3.943259,1 +11,4,0,1,1,425269,0,4166.569,30.80356,0,15,1,9.27357,5.151984,0,0,0,14.42555,0,0,0,1,0,4,70.7,10.3,0,69.3,0,0,0,0,1.386294,0,0,0,0,1,0,0,69.3,8.335088,1.386294,2.669001,1 +11,4,0,1,2,425269,0,4166.569,31.80356,0,15,1,41.19318,2.462121,0,0,0,43.6553,0,0,0,2,0,4,70.7,10.3,0,69.3,0,0,0,0,1.386294,0,0,0,0,1,0,0,69.3,8.335088,1.386294,3.776325,1 +11,4,0,1,3,425269,0,4166.569,32.80356,0,15,1,50.06502,0,0,0,0,50.06502,0,0,0,1,1,4,70.7,10.3,0,69.3,0,0,0,0,1.386294,0,0,0,0,1,0,0,69.3,8.335088,1.386294,3.913322,1 +11,4,0,1,1,425270,0,4166.569,5.475702,1,16,1,21.12313,12.44204,0,0,0,33.56517,0,0,0,2,0,4,91.7,9.967326,0,85.2,0,0,1,1,1.386294,0,0,0,0,0,0,0,85.2,8.335088,1.386294,3.513489,1 +11,4,0,1,2,425270,0,4166.569,6.475702,1,16,1,5.681818,17.65152,0,0,0,23.33333,0,0,0,1,0,4,91.7,9.967326,0,85.2,0,0,1,1,1.386294,0,0,0,0,0,0,0,85.2,8.335088,1.386294,3.149883,1 +11,4,0,1,3,425270,0,4166.569,7.475702,1,16,1,35.37061,31.36107,0,0,328.0017,394.7334,1,0,0,4,0,4,91.7,9.967326,0,85.2,0,0,1,1,1.386294,0,0,0,0,0,0,0,85.2,8.335088,1.386294,5.97821,1 +13,4,0,0,1,425275,0,2355.425,26.51882,0,12,1,68.12273,4.420177,11.56006,0,0,84.10297,0,0,0,3,0,1,85.1,6.9,0,59.1,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,59.1,7.764901,0,4.432042,1 +13,4,0,0,2,425275,0,2355.425,27.51882,0,12,1,294.6393,12.63736,0,0,0,307.2766,0,0,0,2,0,1,85.1,6.9,0,59.1,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,59.1,7.764901,0,5.727748,1 +13,4,0,0,3,425275,0,2355.425,28.51882,0,12,1,42.25198,0,0,0,0,42.25198,0,0,0,1,0,1,85.1,6.9,0,59.1,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,59.1,7.764901,0,3.743651,1 +11,4,0,1,1,425400,0,7910.823,61.08145,1,12,1,19.23077,0,0,0,0,19.23077,0,0,0,1,0,1,78.2,10.3,0,79.5,0,221.4,0,0,0,5.399971,0,0,0,1,0,0,79.5,8.976113,0,2.956511,1 +11,4,0,1,2,425400,0,7910.823,62.08145,1,12,1,38.11189,6.993007,0,0,0,45.1049,0,0,0,1,0,1,78.2,10.3,0,79.5,0,221.4,0,0,0,5.399971,0,0,0,1,0,0,79.5,8.976113,0,3.808991,1 +11,4,0,1,3,425400,0,7910.823,63.08145,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,78.2,10.3,0,79.5,0,221.4,0,0,0,5.399971,0,0,0,1,0,0,79.5,8.976113,0,,0 +11,4,0,1,1,425401,0,2620.528,29.25393,1,12,1,305.9248,6.3627,4.095827,0,0,316.3833,0,0,0,5,26,4,83,10.3,1,53.4,0,0,0,0,1.386294,0,0,0,0,1,0,0,53.4,7.871512,1.386294,5.756955,1 +11,4,0,1,2,425401,0,2620.528,30.25393,1,12,1,239.4129,3.148674,4.734848,0,0,247.2964,0,0,0,3,12,4,83,10.3,1,53.4,0,0,0,0,1.386294,0,0,0,0,1,0,0,53.4,7.871512,1.386294,5.510588,1 +11,4,0,1,3,425401,0,2620.528,31.25393,1,12,1,194.7768,1.690507,0,0,0,196.4673,0,0,0,2,12,4,83,10.3,1,53.4,0,0,0,0,1.386294,0,0,0,0,1,0,0,53.4,7.871512,1.386294,5.280496,1 +11,4,0,1,1,425402,0,2620.528,29.20192,0,12,1,61.8238,0,0,0,0,61.8238,0,0,0,1,3,4,73.4,0,1,65.9,0,0,0,0,1.386294,0,0,0,0,1,0,0,65.9,7.871512,1.386294,4.124289,1 +11,4,0,1,2,425402,0,2620.528,30.20192,0,12,1,13.25758,0,0,0,0,13.25758,0,0,0,1,0,4,73.4,0,1,65.9,0,0,0,0,1.386294,0,0,0,0,1,0,0,65.9,7.871512,1.386294,2.584569,1 +11,4,0,1,3,425402,0,2620.528,31.20192,0,12,1,16.03815,0,0,0,0,16.03815,0,0,0,1,2,4,73.4,0,1,65.9,0,0,0,0,1.386294,0,0,0,0,1,0,0,65.9,7.871512,1.386294,2.77497,1 +11,4,0,1,1,425403,0,2620.528,5.820671,0,12,1,36.06388,19.00567,0,0,0,55.06955,0,0,0,7,0,4,81.7,9.967326,0,51.9,0,0,1,0,1.386294,0,0,0,0,0,1,0,51.9,7.871512,1.386294,4.008597,1 +11,4,0,1,2,425403,0,2620.528,6.820671,0,12,1,28.88258,4.52178,0,0,0,33.40436,0,0,0,3,1,4,81.7,9.967326,0,51.9,0,0,1,0,1.386294,0,0,0,0,0,1,0,51.9,7.871512,1.386294,3.508686,1 +11,4,0,1,3,425403,0,2620.528,7.820671,0,12,1,164.5904,20.5505,5.20156,0,0,190.3424,0,0,0,8,2,4,81.7,9.967326,0,51.9,0,0,1,0,1.386294,0,0,0,0,0,1,0,51.9,7.871512,1.386294,5.248825,1 +11,4,0,1,1,425404,0,2620.528,2.595483,0,12,1,47.39825,20.39155,0,0,0,67.7898,0,0,0,8,0,4,83.39137,9.967326,0,63,0,0,1,0,1.386294,0,0,0,0,1,0,0,63,7.871512,1.386294,4.216412,1 +11,4,0,1,2,425404,0,2620.528,3.595483,0,12,1,24.62121,11.10322,0,0,0,35.72443,0,0,0,4,0,4,83.39137,9.967326,0,63,0,0,1,0,1.386294,0,0,0,0,1,0,0,63,7.871512,1.386294,3.575835,1 +11,4,0,1,3,425404,0,2620.528,4.595482,0,12,1,39.35414,3.879497,0,0,0,43.23363,0,0,0,4,1,4,83.39137,9.967326,0,63,0,0,1,0,1.386294,0,0,0,0,1,0,0,63,7.871512,1.386294,3.766619,1 +11,4,0,1,1,425405,0,4686.804,6.234086,1,16,1,12.87996,8.475013,0,0,0,21.35497,0,0,0,2,0,2,83.3,9.967326,0,96.3,0,0,1,1,.6931472,0,0,0,0,0,0,0,96.3,8.45272,.6931472,3.061285,1 +11,4,0,1,2,425405,0,4686.804,7.234086,1,16,1,24.85795,9.114583,0,0,0,33.97254,0,0,0,2,0,2,83.3,9.967326,0,96.3,0,0,1,1,.6931472,0,0,0,0,0,0,0,96.3,8.45272,.6931472,3.525553,1 +11,4,0,1,3,425405,0,4686.804,8.234086,1,16,1,9.536194,4.61205,0,0,0,14.14824,0,0,0,2,0,2,83.3,9.967326,0,96.3,0,0,1,1,.6931472,0,0,0,0,0,0,0,96.3,8.45272,.6931472,2.64959,1 +11,4,0,1,4,425405,0,4686.804,9.234086,1,16,1,18.90508,1.949587,0,0,0,20.85467,0,0,0,2,0,2,83.3,9.967326,0,96.3,0,0,1,1,.6931472,0,0,0,0,0,0,0,96.3,8.45272,.6931472,3.037578,1 +11,4,0,1,5,425405,0,4686.804,10.23409,1,16,1,26.11807,0,0,0,0,26.11807,0,0,0,3,0,2,83.3,9.967326,0,96.3,0,0,1,1,.6931472,0,0,0,0,0,0,0,96.3,8.45272,.6931472,3.262627,1 +11,4,0,1,1,425406,0,4686.804,33.93566,1,16,1,18.03194,1.803194,0,0,0,19.83514,0,0,0,1,0,2,62.2,17.2,0,89.8,0,0,0,0,.6931472,0,0,0,0,0,0,0,89.8,8.45272,.6931472,2.987455,1 +11,4,0,1,2,425406,0,4686.804,34.93566,1,16,1,7.102273,2.575758,0,0,0,9.67803,0,0,0,1,0,2,62.2,17.2,0,89.8,0,0,0,0,.6931472,0,0,0,0,0,0,0,89.8,8.45272,.6931472,2.269858,1 +11,4,0,1,3,425406,0,4686.804,35.93566,1,16,1,81.72952,0,28.17512,0,0,109.9046,0,0,0,2,1,2,62.2,17.2,0,89.8,0,0,0,0,.6931472,0,0,0,0,0,0,0,89.8,8.45272,.6931472,4.699613,1 +11,4,0,1,4,425406,0,4686.804,36.93566,1,16,1,141.2564,0,0,0,0,141.2564,0,0,0,8,0,2,62.2,17.2,0,89.8,0,0,0,0,.6931472,0,0,0,0,0,0,0,89.8,8.45272,.6931472,4.950577,1 +11,4,0,1,5,425406,0,4686.804,37.93566,1,16,1,49.0161,0,0,0,0,49.0161,0,0,0,4,0,2,62.2,17.2,0,89.8,0,0,0,0,.6931472,0,0,0,0,0,0,0,89.8,8.45272,.6931472,3.892149,1 +13,4,0,0,1,425412,0,5167.155,29.4319,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,85.6,10.3,0,63.6,450,505.92,0,0,1.098612,6.226378,1,4.564348,6.160541,0,0,0,63.6,8.550271,1.098612,,0 +13,4,0,0,2,425412,0,5167.155,30.4319,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,85.6,10.3,0,63.6,450,505.92,0,0,1.098612,6.226378,1,4.564348,6.160541,0,0,0,63.6,8.550271,1.098612,,0 +13,4,0,0,3,425412,0,5167.155,31.4319,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,85.6,10.3,0,63.6,450,505.92,0,0,1.098612,6.226378,1,4.564348,6.160541,0,0,0,63.6,8.550271,1.098612,,0 +13,4,0,0,1,425413,0,5167.155,25.09514,1,12,1,72.00928,6.594539,0,0,391.6744,470.2782,1,0,0,4,0,3,83.5,6.9,0,67,450,505.92,0,0,1.098612,6.226378,1,4.564348,6.160541,1,0,0,67,8.550271,1.098612,6.153325,1 +13,4,0,0,2,425413,0,5167.155,26.09514,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,83.5,6.9,0,67,450,505.92,0,0,1.098612,6.226378,1,4.564348,6.160541,1,0,0,67,8.550271,1.098612,,0 +13,4,0,0,3,425413,0,5167.155,27.09514,1,12,1,33.59341,0,0,0,729.987,763.5804,1,0,0,0,0,3,83.5,6.9,0,67,450,505.92,0,0,1.098612,6.226378,1,4.564348,6.160541,1,0,0,67,8.550271,1.098612,6.638019,1 +13,4,0,0,1,425414,0,5167.155,4.246407,1,12,1,8.243174,0,0,0,0,8.243174,0,0,0,1,0,3,83.39137,9.967326,0,81.5,450,505.92,1,1,1.098612,6.226378,1,4.564348,6.160541,0,0,0,81.5,8.550271,1.098612,2.109385,1 +13,4,0,0,2,425414,0,5167.155,5.246407,1,12,1,5.681818,2.471591,0,0,0,8.153409,0,0,0,1,0,3,83.39137,9.967326,0,81.5,450,505.92,1,1,1.098612,6.226378,1,4.564348,6.160541,0,0,0,81.5,8.550271,1.098612,2.098436,1 +13,4,0,0,3,425414,0,5167.155,6.246407,1,12,1,6.328565,0,0,0,0,6.328565,0,0,0,1,0,3,83.39137,9.967326,0,81.5,450,505.92,1,1,1.098612,6.226378,1,4.564348,6.160541,0,0,0,81.5,8.550271,1.098612,1.845074,1 +11,4,0,1,1,425490,0,7910.823,59.24983,0,10,1,78.56775,2.575992,34.00309,0,0,115.1468,0,0,0,5,1,1,92,6.9,0,77.3,0,0,0,0,0,0,0,0,0,1,0,0,77.3,8.976113,0,4.746208,1 +11,4,0,1,2,425490,0,7910.823,60.24983,0,10,1,0,0,0,0,0,0,0,0,0,0,0,1,92,6.9,0,77.3,0,0,0,0,0,0,0,0,0,1,0,0,77.3,8.976113,0,,0 +11,4,0,1,3,425490,0,7910.823,61.24983,0,10,1,0,0,0,0,0,0,0,0,0,0,0,1,92,6.9,0,77.3,0,0,0,0,0,0,0,0,0,1,0,0,77.3,8.976113,0,,0 +11,4,0,0,1,425491,0,1271.554,1.478439,1,9,1,0,1.998988,0,0,0,1.998988,0,0,0,0,0,3,83.39137,9.967326,0,70.4,0,0,1,1,1.098612,0,0,0,0,1,0,0,70.4,7.148781,1.098612,.692641,1 +11,4,0,0,2,425491,0,1271.554,2.478439,1,9,1,14.91842,1.981352,0,0,0,16.89977,0,0,0,3,0,3,83.39137,9.967326,0,70.4,0,0,1,1,1.098612,0,0,0,0,1,0,0,70.4,7.148781,1.098612,2.8273,1 +11,4,0,0,3,425491,0,1271.554,3.478439,1,9,1,2.565199,0,0,0,0,2.565199,0,0,0,1,0,4,83.39137,9.967326,0,70.4,0,0,1,1,1.386294,0,0,0,0,1,0,0,70.4,7.148781,1.386294,.942036,1 +11,4,0,0,1,425492,0,1271.554,16.63518,1,9,1,49.0587,1.492915,0,0,0,50.55162,0,0,0,2,0,3,61.7,3.4,0,71.6,0,0,1,1,1.098612,0,0,0,0,1,0,0,71.6,7.148781,1.098612,3.922995,1 +11,4,0,0,2,425492,0,1271.554,17.63518,1,9,1,30.53613,11.6317,0,0,641.6317,683.7996,1,0,0,0,0,3,61.7,3.4,0,71.6,0,0,1,1,1.098612,0,0,0,0,1,0,0,71.6,7.148781,1.098612,6.527665,1 +11,4,0,0,3,425492,0,1271.554,18.63518,1,9,1,69.0466,24.62591,25.65199,0,0,119.3245,0,0,0,5,1,4,61.7,3.4,0,71.6,0,0,0,0,1.386294,0,0,0,0,1,0,0,71.6,7.148781,1.386294,4.781847,1 +11,4,0,0,1,425493,0,1271.554,21.83984,0,8,1,31.09818,0,0,0,523.1528,554.251,1,0,0,1,0,3,83.5,3.4,0,79.8,0,0,0,0,1.098612,0,0,0,0,1,0,0,79.8,7.148781,1.098612,6.317618,1 +11,4,0,0,2,425493,0,1271.554,22.83984,0,8,1,105.8555,0,1.165501,0,0,107.021,0,0,0,4,0,3,83.5,3.4,0,79.8,0,0,0,0,1.098612,0,0,0,0,1,0,0,79.8,7.148781,1.098612,4.673025,1 +11,4,0,0,3,425493,0,1271.554,23.83984,0,8,1,38.47798,8.529286,0,0,1347.862,1394.87,1,0,0,3,0,4,83.5,3.4,0,79.8,0,0,0,0,1.386294,0,0,0,0,1,0,0,79.8,7.148781,1.386294,7.240556,1 +11,4,0,1,1,425513,0,1906.158,34.45311,0,12,1,95.52126,19.76215,21.25506,0,422.7834,559.3218,1,0,0,5,0,6,77.7,3.4,1,42,0,291.84,0,0,1.791759,5.676206,0,0,0,1,0,0,42,7.55337,1.791759,6.326725,1 +11,4,0,1,2,425513,0,1906.158,35.45311,0,12,1,2.331002,34.75525,25.17483,0,0,62.26107,0,0,0,1,0,6,77.7,3.4,1,42,0,291.84,0,0,1.791759,5.676206,0,0,0,1,0,0,42,7.55337,1.791759,4.131336,1 +11,4,0,1,3,425513,0,1906.158,36.45311,0,12,1,6.412997,50.83369,0,0,843.3732,900.6199,1,0,0,1,0,6,77.7,3.4,1,42,0,291.84,0,0,1.791759,5.676206,0,0,0,1,0,0,42,7.55337,1.791759,6.803083,1 +11,4,0,1,4,425513,0,1906.158,37.45311,0,12,1,46.31053,44.58109,22.29055,12.80553,0,113.1822,0,0,4,4,0,6,77.7,3.4,1,42,0,291.84,0,0,1.791759,5.676206,0,0,0,1,0,0,42,7.55337,1.791759,4.728999,1 +11,4,0,1,5,425513,0,1906.158,38.45311,0,12,1,29.1535,45.76748,0,0,0,74.92097,0,0,0,2,0,6,77.7,3.4,1,42,0,291.84,0,0,1.791759,5.676206,0,0,0,1,0,0,42,7.55337,1.791759,4.316434,1 +11,4,0,1,1,425514,0,1906.158,9.916495,0,12,1,13.48178,1.912956,0,0,0,15.39474,0,0,0,1,0,6,80,9.967326,1,74.1,0,291.84,1,0,1.791759,5.676206,0,0,0,0,1,0,74.1,7.55337,1.791759,2.734026,1 +11,4,0,1,2,425514,0,1906.158,10.9165,0,12,1,115.3846,7.762238,23.31002,0,0,146.4569,0,0,0,2,0,6,80,9.967326,1,74.1,0,291.84,1,0,1.791759,5.676206,0,0,0,0,1,0,74.1,7.55337,1.791759,4.986731,1 +11,4,0,1,3,425514,0,1906.158,11.9165,0,12,1,8.550663,2.565199,10.2608,0,0,21.37666,0,0,0,1,0,6,80,9.967326,1,74.1,0,291.84,1,0,1.791759,5.676206,0,0,0,0,1,0,74.1,7.55337,1.791759,3.062299,1 +11,4,0,1,4,425514,0,1906.158,12.9165,0,12,1,221.6372,8.18601,0,12.80553,0,229.8232,0,0,4,8,0,6,80,9.967326,1,74.1,0,291.84,1,0,1.791759,5.676206,0,0,0,0,1,0,74.1,7.55337,1.791759,5.43731,1 +11,4,0,1,5,425514,0,1906.158,13.9165,0,12,1,38.63716,9.167544,0,0,0,47.80471,0,0,0,5,0,6,80,9.967326,1,74.1,0,291.84,1,0,1.791759,5.676206,0,0,0,0,1,0,74.1,7.55337,1.791759,3.867124,1 +11,4,0,1,1,425515,0,1906.158,5.445585,1,12,1,51.05263,17.90992,0,0,248.2794,317.2419,1,0,0,7,0,6,76.7,9.967326,0,25.9,0,291.84,1,1,1.791759,5.676206,0,0,0,0,1,0,25.9,7.55337,1.791759,5.759665,1 +11,4,0,1,2,425515,0,1906.158,6.445585,1,12,1,101.6317,17.9021,0,0,0,119.5338,0,0,0,5,0,6,76.7,9.967326,0,25.9,0,291.84,1,1,1.791759,5.676206,0,0,0,0,1,0,25.9,7.55337,1.791759,4.783599,1 +11,4,0,1,3,425515,0,1906.158,7.445585,1,12,1,0,2.052159,0,0,0,2.052159,0,0,0,0,0,6,76.7,9.967326,0,25.9,0,291.84,1,1,1.791759,5.676206,0,0,0,0,1,0,25.9,7.55337,1.791759,.7188925,1 +11,4,0,1,4,425515,0,1906.158,8.445585,1,12,1,0,5.169101,0,12.80553,0,5.169101,0,0,4,0,0,6,76.7,9.967326,0,25.9,0,291.84,1,1,1.791759,5.676206,0,0,0,0,1,0,25.9,7.55337,1.791759,1.642699,1 +11,4,0,1,5,425515,0,1906.158,9.445585,1,12,1,7.024939,1.791359,0,0,0,8.816298,0,0,0,1,0,6,76.7,9.967326,0,25.9,0,291.84,1,1,1.791759,5.676206,0,0,0,0,1,0,25.9,7.55337,1.791759,2.176602,1 +11,4,0,1,1,425516,0,1906.158,11.36756,1,12,1,35.68826,0,0,0,0,35.68826,0,0,0,2,0,6,58.3,9.967326,0,81.5,0,291.84,1,1,1.791759,5.676206,0,0,0,1,0,0,81.5,7.55337,1.791759,3.574822,1 +11,4,0,1,2,425516,0,1906.158,12.36756,1,12,1,37.29604,1.631702,22.37762,0,0,61.30536,0,0,0,2,0,6,58.3,9.967326,0,81.5,0,291.84,1,1,1.791759,5.676206,0,0,0,1,0,0,81.5,7.55337,1.791759,4.115867,1 +11,4,0,1,3,425516,0,1906.158,13.36756,1,12,1,20.62847,2.351432,0,0,0,22.97991,0,0,0,2,0,6,58.3,9.967326,0,81.5,0,291.84,1,1,1.791759,5.676206,0,0,0,1,0,0,81.5,7.55337,1.791759,3.13462,1 +11,4,0,1,4,425516,0,1906.158,14.36756,1,12,1,58.4166,13.87394,24.59646,12.80553,0,96.88701,0,0,4,5,2,6,58.3,9.967326,0,81.5,0,291.84,1,1,1.791759,5.676206,0,0,0,1,0,0,81.5,7.55337,1.791759,4.573545,1 +11,4,0,1,5,425516,0,1906.158,15.36756,1,12,1,107.2533,10.39691,0,0,0,117.6502,0,0,0,7,0,6,58.3,9.967326,0,81.5,0,291.84,1,1,1.791759,5.676206,0,0,0,1,0,0,81.5,7.55337,1.791759,4.767715,1 +11,4,0,1,1,425517,0,1906.158,31.61123,1,12,1,222.166,14.13968,5.313765,0,636.6093,878.2288,2,0,0,11,0,6,70.2,17.2,0,76.1,0,291.84,0,0,1.791759,5.676206,0,0,0,1,0,0,76.1,7.55337,1.791759,6.777907,1 +11,4,0,1,2,425517,0,1906.158,32.61123,1,12,1,52.21445,9.813519,6.993007,0,0,69.02098,0,0,0,4,0,6,70.2,17.2,0,76.1,0,291.84,0,0,1.791759,5.676206,0,0,0,1,0,0,76.1,7.55337,1.791759,4.234411,1 +11,4,0,1,3,425517,0,1906.158,33.61123,1,12,1,140.8294,65.34844,0,0,531.6204,737.7982,1,0,0,11,0,6,70.2,17.2,0,76.1,0,291.84,0,0,1.791759,5.676206,0,0,0,1,0,0,76.1,7.55337,1.791759,6.603671,1 +11,4,0,1,4,425517,0,1906.158,34.61123,1,12,1,162.8939,34.28132,21.13759,12.82091,0,218.3128,0,0,4,9,3,6,70.2,17.2,0,76.1,0,291.84,0,0,1.791759,5.676206,0,0,0,1,0,0,76.1,7.55337,1.791759,5.385929,1 +11,4,0,1,5,425517,0,1906.158,35.61123,1,12,1,136.0204,42.04426,0,0,0,178.0646,0,0,0,8,0,6,70.2,17.2,0,76.1,0,291.84,0,0,1.791759,5.676206,0,0,0,1,0,0,76.1,7.55337,1.791759,5.182147,1 +11,4,0,1,1,425518,0,1906.158,6.61191,0,12,1,78.82085,1.518219,22.26721,0,0,102.6063,0,0,0,6,0,6,58.3,9.967326,0,77.8,0,291.84,1,0,1.791759,5.676206,0,0,0,0,1,0,77.8,7.55337,1.791759,4.630899,1 +11,4,0,1,2,425518,0,1906.158,7.61191,0,12,1,115.9674,1.678322,0,0,0,117.6457,0,0,0,9,0,6,58.3,9.967326,0,77.8,0,291.84,1,0,1.791759,5.676206,0,0,0,0,1,0,77.8,7.55337,1.791759,4.767677,1 +11,4,0,1,3,425518,0,1906.158,8.61191,0,12,1,81.12441,7.887986,0,0,0,89.0124,0,0,0,6,0,6,58.3,9.967326,0,77.8,0,291.84,1,0,1.791759,5.676206,0,0,0,0,1,0,77.8,7.55337,1.791759,4.488776,1 +11,4,0,1,4,425518,0,1906.158,9.61191,0,12,1,132.206,10.97233,0,12.82091,0,143.1783,0,0,4,10,0,6,58.3,9.967326,0,77.8,0,291.84,1,0,1.791759,5.676206,0,0,0,0,1,0,77.8,7.55337,1.791759,4.964091,1 +11,4,0,1,5,425518,0,1906.158,10.61191,0,12,1,134.1658,4.56621,0,0,0,138.732,0,0,0,5,0,6,58.3,9.967326,0,77.8,0,291.84,1,0,1.791759,5.676206,0,0,0,0,1,0,77.8,7.55337,1.791759,4.932544,1 +13,4,0,1,1,425519,0,5113.783,45.93566,1,12,1,20.42901,0,0,0,0,20.42901,0,0,0,2,0,1,81.4,6.9,0,95.5,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,95.5,8.53989,0,3.016956,1 +13,4,0,1,2,425519,0,5113.783,46.93566,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,81.4,6.9,0,95.5,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,95.5,8.53989,0,,0 +13,4,0,1,3,425519,0,5113.783,47.93566,1,12,1,112.5322,0,0,0,0,112.5322,0,0,0,0,0,1,81.4,6.9,0,95.5,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,95.5,8.53989,0,4.72324,1 +13,4,0,1,1,425557,0,7910.823,52.25188,1,12,1,17.71255,0,48.07692,0,0,65.78947,0,0,0,2,0,1,87.2,6.9,0,87.5,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,87.5,8.976113,0,4.18646,1 +13,4,0,1,2,425557,0,7910.823,53.25188,1,12,1,5.594406,0,0,0,0,5.594406,0,0,0,1,0,1,87.2,6.9,0,87.5,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,87.5,8.976113,0,1.721767,1 +13,4,0,1,3,425557,0,7910.823,54.25188,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,87.2,6.9,0,87.5,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,87.5,8.976113,0,,0 +13,4,0,1,1,425585,0,6996.481,41.36071,0,19,1,40.56162,6.24025,0,0,0,46.80187,0,0,0,3,0,3,83,3.4,0,84.1,450,447.84,0,0,1.098612,6.104436,1,4.564348,6.160541,0,0,0,84.1,8.853306,1.098612,3.845923,1 +13,4,0,1,2,425585,0,6996.481,42.36071,0,19,1,0,0,0,0,0,0,0,0,0,0,0,3,83,3.4,0,84.1,450,447.84,0,0,1.098612,6.104436,1,4.564348,6.160541,0,0,0,84.1,8.853306,1.098612,,0 +13,4,0,1,3,425585,0,6996.481,43.36071,0,19,1,8.779632,0,0,0,0,8.779632,0,0,0,1,0,3,83,3.4,0,84.1,450,447.84,0,0,1.098612,6.104436,1,4.564348,6.160541,0,0,0,84.1,8.853306,1.098612,2.172435,1 +13,4,0,1,1,425586,0,6996.481,34.65298,1,19,1,101.7733,7.618305,0,0,0,109.3916,0,0,0,5,0,3,89.4,24.1,0,40.9,450,447.84,0,0,1.098612,6.104436,1,4.564348,6.160541,1,0,0,40.9,8.853306,1.098612,4.694934,1 +13,4,0,1,2,425586,0,6996.481,35.65298,1,19,1,40.61156,23.88438,0,0,0,64.49594,0,0,0,3,0,3,89.4,24.1,0,40.9,450,447.84,0,0,1.098612,6.104436,1,4.564348,6.160541,1,0,0,40.9,8.853306,1.098612,4.166602,1 +13,4,0,1,3,425586,0,6996.481,36.65298,1,19,1,33.58209,7.787533,0,0,540.0571,581.4267,1,0,0,1,0,3,89.4,24.1,0,40.9,450,447.84,0,0,1.098612,6.104436,1,4.564348,6.160541,1,0,0,40.9,8.853306,1.098612,6.365485,1 +13,4,0,1,1,425587,0,6996.481,3.014374,0,19,1,65.21061,7.25429,0,0,0,72.4649,0,0,0,8,0,3,83.39137,9.967326,0,85.2,450,447.84,1,0,1.098612,6.104436,1,4.564348,6.160541,1,0,0,85.2,8.853306,1.098612,4.283102,1 +13,4,0,1,2,425587,0,6996.481,4.014374,0,19,1,10.63067,7.262303,0,0,0,17.89298,0,0,0,2,0,3,83.39137,9.967326,0,85.2,450,447.84,1,0,1.098612,6.104436,1,4.564348,6.160541,1,0,0,85.2,8.853306,1.098612,2.884408,1 +13,4,0,1,3,425587,0,6996.481,5.014374,0,19,1,13.16945,2.589991,0,0,0,15.75944,0,0,0,2,0,3,83.39137,9.967326,0,85.2,450,447.84,1,0,1.098612,6.104436,1,4.564348,6.160541,1,0,0,85.2,8.853306,1.098612,2.757439,1 +19,4,25,1,1,425605,0,9041.643,13.92745,1,16,1,52.55023,1.555899,0,0,0,54.10613,0,0,0,3,0,7,80,9.967326,0,81.5,750,725,1,1,1.94591,6.586172,0,3.258096,8.006368,0,0,0,81.5,9.109707,1.94591,3.990947,1 +19,4,25,1,2,425605,0,9041.643,14.92745,1,16,1,70.07576,8.854167,29.00095,0,656.8182,764.749,1,0,0,7,0,7,80,9.967326,0,81.5,750,725,1,1,1.94591,6.586172,0,3.258096,8.006368,0,0,0,81.5,9.109707,1.94591,6.639548,1 +19,4,25,1,3,425605,0,9041.643,15.92745,1,16,1,48.37451,12.56177,0,0,0,60.93628,0,0,0,4,0,7,80,9.967326,0,81.5,750,725,1,1,1.94591,6.586172,0,3.258096,8.006368,0,0,0,81.5,9.109707,1.94591,4.109829,1 +19,4,25,1,4,425605,0,9041.643,16.92745,1,16,1,0,4.052777,0,0,0,4.052777,0,0,0,0,0,7,80,9.967326,0,81.5,750,725,1,1,1.94591,6.586172,0,3.258096,8.006368,0,0,0,81.5,9.109707,1.94591,1.399402,1 +19,4,25,1,5,425605,0,9041.643,17.92745,1,16,1,0,0,0,0,0,0,0,0,0,0,0,7,80,9.967326,0,81.5,750,725,1,1,1.94591,6.586172,0,3.258096,8.006368,0,0,0,81.5,9.109707,1.94591,,0 +19,4,25,1,1,425606,0,9041.643,8.167009,0,16,1,0,.4739825,0,0,0,.4739825,0,0,0,0,0,7,78.3,9.967326,0,70.4,750,725,1,0,1.94591,6.586172,0,3.258096,8.006368,0,0,0,70.4,9.109707,1.94591,-.7465849,1 +19,4,25,1,2,425606,0,9041.643,9.167009,0,16,1,23.20076,3.432765,0,0,0,26.63352,0,0,0,3,0,7,78.3,9.967326,0,70.4,750,725,1,0,1.94591,6.586172,0,3.258096,8.006368,0,0,0,70.4,9.109707,1.94591,3.282171,1 +19,4,25,1,3,425606,0,9041.643,10.16701,0,16,1,0,2.31036,0,0,0,2.31036,0,0,0,0,0,7,78.3,9.967326,0,70.4,750,725,1,0,1.94591,6.586172,0,3.258096,8.006368,0,0,0,70.4,9.109707,1.94591,.8374032,1 +19,4,25,1,4,425606,0,9041.643,11.16701,0,16,1,5.907838,.9216227,0,0,0,6.829461,0,0,0,1,0,7,78.3,9.967326,0,70.4,750,725,1,0,1.94591,6.586172,0,3.258096,8.006368,0,0,0,70.4,9.109707,1.94591,1.921246,1 +19,4,25,1,5,425606,0,9041.643,12.16701,0,16,1,41.1449,0,28.62254,0,0,69.76744,0,0,0,1,3,7,78.3,9.967326,0,70.4,750,725,1,0,1.94591,6.586172,0,3.258096,8.006368,0,0,0,70.4,9.109707,1.94591,4.245167,1 +19,4,25,1,1,425607,0,9041.643,15.12936,0,16,1,7.727975,.4739825,0,0,0,8.201958,0,0,0,1,0,7,73.4,0,0,75,750,725,1,0,1.94591,6.586172,0,3.258096,8.006368,0,0,0,75,9.109707,1.94591,2.104373,1 +19,4,25,1,2,425607,0,9041.643,16.12936,0,16,1,0,1.751894,0,0,0,1.751894,0,0,0,0,0,7,73.4,0,0,75,750,725,1,0,1.94591,6.586172,0,3.258096,8.006368,0,0,0,75,9.109707,1.94591,.5606975,1 +19,4,25,1,3,425607,0,9041.643,17.12936,0,16,1,0,2.31036,0,0,0,2.31036,0,0,0,0,0,7,73.4,0,0,75,750,725,1,0,1.94591,6.586172,0,3.258096,8.006368,0,0,0,75,9.109707,1.94591,.8374032,1 +19,4,25,1,4,425607,0,9041.643,18.12936,0,16,1,11.81568,.9216227,0,0,0,12.7373,0,0,0,1,0,7,73.4,0,0,75,750,725,0,0,1.94591,6.586172,0,3.258096,8.006368,0,0,0,75,9.109707,1.94591,2.544534,1 +19,4,25,1,5,425607,0,9041.643,19.12936,0,16,1,0,0,0,0,0,0,0,0,0,0,0,7,73.4,0,0,75,750,725,0,0,1.94591,6.586172,0,3.258096,8.006368,0,0,0,75,9.109707,1.94591,,0 +19,4,25,1,1,425608,0,9041.643,43.8768,0,18,1,7.727975,5.538382,35.54869,0,0,48.81504,0,0,0,0,1,7,71.8,3.4,0,81.8,750,725,0,0,1.94591,6.586172,0,3.258096,8.006368,0,0,0,81.8,9.109707,1.94591,3.888039,1 +19,4,25,1,2,425608,0,9041.643,44.8768,0,18,1,11.83712,8.59375,0,0,0,20.43087,0,0,0,2,0,7,71.8,3.4,0,81.8,750,725,0,0,1.94591,6.586172,0,3.258096,8.006368,0,0,0,81.8,9.109707,1.94591,3.017047,1 +19,4,25,1,3,425608,0,9041.643,45.8768,0,18,1,0,0,0,0,0,0,0,0,0,0,0,7,71.8,3.4,0,81.8,750,725,0,0,1.94591,6.586172,0,3.258096,8.006368,0,0,0,81.8,9.109707,1.94591,,0 +19,4,25,1,4,425608,0,9041.643,46.8768,0,18,1,15.75423,0,33.08389,0,0,48.83813,0,0,0,1,1,7,71.8,3.4,0,81.8,750,725,0,0,1.94591,6.586172,0,3.258096,8.006368,0,0,0,81.8,9.109707,1.94591,3.888511,1 +19,4,25,1,5,425608,0,9041.643,47.8768,0,18,1,14.31127,0,15.02683,0,0,29.3381,0,0,0,1,1,7,71.8,3.4,0,81.8,750,725,0,0,1.94591,6.586172,0,3.258096,8.006368,0,0,0,81.8,9.109707,1.94591,3.378887,1 +19,4,25,1,1,425609,0,9041.643,12.2601,0,16,1,6.697578,3.153014,0,0,0,9.850593,0,0,0,1,0,7,78.3,9.967326,0,92.6,750,725,1,0,1.94591,6.586172,0,3.258096,8.006368,0,0,0,92.6,9.109707,1.94591,2.287532,1 +19,4,25,1,2,425609,0,9041.643,13.2601,0,16,1,30.77652,5.018939,28.40909,0,0,64.20454,0,0,0,3,0,7,78.3,9.967326,0,92.6,750,725,1,0,1.94591,6.586172,0,3.258096,8.006368,0,0,0,92.6,9.109707,1.94591,4.162074,1 +19,4,25,1,3,425609,0,9041.643,14.2601,0,16,1,0,2.31036,0,0,0,2.31036,0,0,0,0,0,7,78.3,9.967326,0,92.6,750,725,1,0,1.94591,6.586172,0,3.258096,8.006368,0,0,0,92.6,9.109707,1.94591,.8374032,1 +19,4,25,1,4,425609,0,9041.643,15.2601,0,16,1,7.483261,5.746357,0,0,0,13.22962,0,0,0,1,0,7,78.3,9.967326,0,92.6,750,725,1,0,1.94591,6.586172,0,3.258096,8.006368,0,0,0,92.6,9.109707,1.94591,2.582458,1 +19,4,25,1,5,425609,0,9041.643,16.2601,0,16,1,14.31127,0,21.46691,0,0,35.77818,0,0,0,1,1,7,78.3,9.967326,0,92.6,750,725,1,0,1.94591,6.586172,0,3.258096,8.006368,0,0,0,92.6,9.109707,1.94591,3.577338,1 +19,4,25,1,1,425610,0,9041.643,10.11636,0,16,1,0,4.750129,0,0,0,4.750129,0,0,0,0,0,7,85,9.967326,0,85.2,750,725,1,0,1.94591,6.586172,0,3.258096,8.006368,0,0,0,85.2,9.109707,1.94591,1.558172,1 +19,4,25,1,2,425610,0,9041.643,11.11636,0,16,1,38.82576,5.681818,0,0,0,44.50758,0,0,0,4,0,7,85,9.967326,0,85.2,750,725,1,0,1.94591,6.586172,0,3.258096,8.006368,0,0,0,85.2,9.109707,1.94591,3.795659,1 +19,4,25,1,3,425610,0,9041.643,12.11636,0,16,1,6.501951,2.31036,0,0,0,8.81231,0,0,0,1,0,7,85,9.967326,0,85.2,750,725,1,0,1.94591,6.586172,0,3.258096,8.006368,0,0,0,85.2,9.109707,1.94591,2.17615,1 +19,4,25,1,4,425610,0,9041.643,13.11636,0,16,1,7.877117,3.737692,0,0,0,11.61481,0,0,0,1,0,7,85,9.967326,0,85.2,750,725,1,0,1.94591,6.586172,0,3.258096,8.006368,0,0,0,85.2,9.109707,1.94591,2.452281,1 +19,4,25,1,5,425610,0,9041.643,14.11636,0,16,1,5.366726,0,0,0,0,5.366726,0,0,0,1,0,7,85,9.967326,0,85.2,750,725,1,0,1.94591,6.586172,0,3.258096,8.006368,0,0,0,85.2,9.109707,1.94591,1.680218,1 +19,4,25,1,1,425611,0,9041.643,42.91855,1,16,1,12.87996,7.779495,22.15353,0,0,42.81298,0,0,0,1,0,7,79.8,10.3,1,76.1,750,725,0,0,1.94591,6.586172,0,3.258096,8.006368,1,0,0,76.1,9.109707,1.94591,3.756841,1 +19,4,25,1,2,425611,0,9041.643,43.91855,1,16,1,28.40909,0,49.71591,0,0,78.125,0,0,0,2,0,7,79.8,10.3,1,76.1,750,725,0,0,1.94591,6.586172,0,3.258096,8.006368,1,0,0,76.1,9.109707,1.94591,4.35831,1 +19,4,25,1,3,425611,0,9041.643,44.91855,1,16,1,42.80451,2.860858,12.13697,0,0,57.80234,0,0,0,3,0,7,79.8,10.3,1,76.1,750,725,0,0,1.94591,6.586172,0,3.258096,8.006368,1,0,0,76.1,9.109707,1.94591,4.057029,1 +19,4,25,1,4,425611,0,9041.643,45.91855,1,16,1,63.80465,0,38.99173,0,0,102.7964,0,0,0,3,0,7,79.8,10.3,1,76.1,750,725,0,0,1.94591,6.586172,0,3.258096,8.006368,1,0,0,76.1,9.109707,1.94591,4.63275,1 +19,4,25,1,5,425611,0,9041.643,46.91855,1,16,1,8.944544,2.146691,26.83363,0,0,37.92487,0,0,0,1,0,7,79.8,10.3,1,76.1,750,725,0,0,1.94591,6.586172,0,3.258096,8.006368,1,0,0,76.1,9.109707,1.94591,3.635607,1 +11,4,0,1,1,425624,0,3304.399,55.72895,0,16,1,45.39782,0,43.94176,0,0,89.33958,0,0,0,2,0,1,72.3,13.8,0,72.7,0,393.4,0,0,0,5.974827,0,0,0,0,0,0,72.7,8.103312,0,4.492445,1 +11,4,0,1,2,425624,0,3304.399,56.72895,0,16,1,64.02293,4.992833,32.48925,0,0,101.505,0,0,0,4,0,1,72.3,13.8,0,72.7,0,393.4,0,0,0,5.974827,0,0,0,0,0,0,72.7,8.103312,0,4.620108,1 +11,4,0,1,3,425624,0,3304.399,57.72895,0,16,1,22.38806,0,41.70325,0,0,64.09131,0,0,0,2,0,1,72.3,13.8,0,72.7,0,393.4,0,0,0,5.974827,0,0,0,0,0,0,72.7,8.103312,0,4.160309,1 +13,4,0,1,1,425630,0,5885.63,60.81314,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,88.3,10.3,0,79.5,150,405.6,0,0,0,6.005367,1,4.564348,5.061929,0,0,1,79.5,8.680439,0,,0 +13,4,0,1,2,425630,0,5885.63,61.81314,0,12,1,34.09091,9.422348,112.9735,0,0,156.4867,0,0,0,1,0,1,88.3,10.3,0,79.5,150,405.6,0,0,0,6.005367,1,4.564348,5.061929,0,0,1,79.5,8.680439,0,5.052971,1 +13,4,0,1,3,425630,0,5885.63,62.81314,0,12,1,0,17.90204,0,0,0,17.90204,0,0,0,0,0,1,88.3,10.3,0,79.5,150,405.6,0,0,0,6.005367,1,4.564348,5.061929,0,0,1,79.5,8.680439,0,2.884914,1 +6,4,25,0,1,425636,0,4418.182,28.87337,0,17,1,10.30397,0,0,0,0,10.30397,0,0,0,1,0,1,69.1,13.8,0,83,750,750,0,0,0,6.620073,0,3.258096,8.006368,0,0,0,83,8.39371,0,2.332529,1 +6,4,25,0,2,425636,0,4418.182,29.87337,0,17,1,11.83712,0,39.29924,0,0,51.13636,0,0,0,1,0,1,69.1,13.8,0,83,750,750,0,0,0,6.620073,0,3.258096,8.006368,0,0,0,83,8.39371,0,3.934496,1 +6,4,25,0,3,425636,0,4418.182,30.87337,0,17,1,61.8769,26.15952,0,0,0,88.03641,0,0,0,1,0,1,69.1,13.8,0,83,750,750,0,0,0,6.620073,0,3.258096,8.006368,0,0,0,83,8.39371,0,4.47775,1 +11,4,0,1,1,425656,0,6866.276,57.80698,1,10,1,28.33591,4.636785,31.9423,0,0,64.91499,0,0,0,1,1,2,89.4,17.2,0,68.2,0,229.92,0,0,.6931472,5.437731,0,0,0,1,0,0,68.2,8.834523,.6931472,4.173079,1 +11,4,0,1,2,425656,0,6866.276,58.80698,1,10,1,63.58902,4.000947,26.04167,0,0,93.63163,0,0,0,5,0,2,89.4,17.2,0,68.2,0,229.92,0,0,.6931472,5.437731,0,0,0,1,0,0,68.2,8.834523,.6931472,4.539368,1 +11,4,0,1,3,425656,0,6866.276,59.80698,1,10,1,138.0581,0,33.15995,0,0,171.218,0,0,0,2,4,2,89.4,17.2,0,68.2,0,229.92,0,0,.6931472,5.437731,0,0,0,1,0,0,68.2,8.834523,.6931472,5.142938,1 +11,4,0,1,1,425657,0,6866.276,60.95551,0,10,1,15.8372,3.06543,0,0,0,18.90263,0,0,0,2,0,2,94.7,10.3,0,80.7,0,229.92,0,0,.6931472,5.437731,0,0,0,0,0,0,80.7,8.834523,.6931472,2.939301,1 +11,4,0,1,2,425657,0,6866.276,61.95551,0,10,1,49.85796,5.208333,27.46212,0,0,82.52841,0,0,0,3,1,2,94.7,10.3,0,80.7,0,229.92,0,0,.6931472,5.437731,0,0,0,0,0,0,80.7,8.834523,.6931472,4.413143,1 +11,4,0,1,3,425657,0,6866.276,62.95551,0,10,1,26.87473,0,18.20546,0,0,45.08019,0,0,0,1,1,2,94.7,10.3,0,80.7,0,229.92,0,0,.6931472,5.437731,0,0,0,0,0,0,80.7,8.834523,.6931472,3.808443,1 +13,4,0,1,1,425658,0,8589.442,60.63792,0,12,1,42.70479,51.31376,0,0,0,94.01855,0,0,0,4,0,2,83,13.8,1,50,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,1,0,50,9.058406,.6931472,4.543492,1 +13,4,0,1,2,425658,0,8589.442,61.63792,0,12,1,16.5625,39.48864,0,0,0,56.05114,0,0,0,1,0,2,83,13.8,1,50,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,1,0,50,9.058406,.6931472,4.026264,1 +13,4,0,1,3,425658,0,8589.442,62.63792,0,12,1,32.35804,50.36844,0,0,0,82.72649,0,0,0,3,0,2,83,13.8,1,50,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,1,0,50,9.058406,.6931472,4.41554,1 +13,4,0,1,1,425659,0,8589.442,56.93361,1,12,1,38.12468,4.070067,0,0,0,42.19474,0,0,0,2,0,2,88.8,20.7,0,76.1,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,76.1,9.058406,.6931472,3.742296,1 +13,4,0,1,2,425659,0,8589.442,57.93361,1,12,1,5.681818,0,0,0,0,5.681818,0,0,0,1,0,2,88.8,20.7,0,76.1,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,76.1,9.058406,.6931472,1.737271,1 +13,4,0,1,3,425659,0,8589.442,58.93361,1,12,1,41.07066,3.229302,0,0,0,44.29996,0,0,0,3,0,2,88.8,20.7,0,76.1,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,76.1,9.058406,.6931472,3.790984,1 +13,4,0,1,1,425703,0,9546.628,11.38672,0,16,1,19.31994,0,0,0,0,19.31994,0,0,0,0,0,4,83.3,9.967326,0,96.3,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,96.3,9.164048,1.386294,2.961138,1 +13,4,0,1,2,425703,0,9546.628,12.38672,0,16,1,11.83712,0,18.93939,0,0,30.77652,0,0,0,1,0,4,83.3,9.967326,0,96.3,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,96.3,9.164048,1.386294,3.426752,1 +13,4,0,1,3,425703,0,9546.628,13.38672,0,16,1,42.91287,0,0,0,0,42.91287,0,0,0,1,2,4,83.3,9.967326,0,96.3,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,96.3,9.164048,1.386294,3.759172,1 +13,4,0,1,4,425703,0,9546.628,14.38672,0,16,1,8.664828,0,0,0,0,8.664828,0,0,0,2,0,4,83.3,9.967326,0,96.3,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,96.3,9.164048,1.386294,2.159272,1 +13,4,0,1,5,425703,0,9546.628,15.38672,0,16,1,0,0,0,0,0,0,0,0,0,0,0,3,83.3,9.967326,0,96.3,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,96.3,9.164048,1.098612,,0 +13,4,0,1,1,425704,0,9546.628,12.49281,1,16,1,0,0,0,0,0,0,0,0,0,0,0,4,63.6,9.967326,0,70.4,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,70.4,9.164048,1.386294,,0 +13,4,0,1,2,425704,0,9546.628,13.49281,1,16,1,14.20455,0,0,0,0,14.20455,0,0,0,2,0,4,63.6,9.967326,0,70.4,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,70.4,9.164048,1.386294,2.653562,1 +13,4,0,1,3,425704,0,9546.628,14.49281,1,16,1,7.368877,0,0,0,0,7.368877,0,0,0,2,0,4,63.6,9.967326,0,70.4,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,70.4,9.164048,1.386294,1.997265,1 +13,4,0,1,4,425704,0,9546.628,15.49281,1,16,1,0,0,0,0,0,0,0,0,0,0,0,4,63.6,9.967326,0,70.4,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,70.4,9.164048,1.386294,,0 +13,4,0,1,1,425705,0,9546.628,32.84326,1,16,1,12.87996,0,0,0,0,12.87996,0,0,0,2,0,4,77.7,6.9,0,83.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,83.7,9.164048,1.386294,2.555673,1 +13,4,0,1,2,425705,0,9546.628,33.84326,1,16,1,0,0,0,0,0,0,0,0,0,0,0,4,77.7,6.9,0,83.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,83.7,9.164048,1.386294,,0 +13,4,0,1,3,425705,0,9546.628,34.84326,1,16,1,303.498,0,23.84048,0,0,327.3385,0,0,0,4,0,4,77.7,6.9,0,83.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,83.7,9.164048,1.386294,5.790995,1 +13,4,0,1,4,425705,0,9546.628,35.84326,1,16,1,43.718,0,0,0,0,43.718,0,0,0,3,2,4,77.7,6.9,0,83.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,83.7,9.164048,1.386294,3.77776,1 +13,4,0,1,5,425705,0,9546.628,36.84326,1,16,1,57.33453,0,0,0,0,57.33453,0,0,0,2,0,3,77.7,6.9,0,83.7,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,83.7,9.164048,1.098612,4.048903,1 +13,4,0,1,1,425706,0,9546.628,36.03012,0,18,1,54.09583,0,0,0,0,54.09583,0,0,0,1,0,4,92,3.4,0,94.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,94.3,9.164048,1.386294,3.990757,1 +13,4,0,1,2,425706,0,9546.628,37.03012,0,18,1,21.30682,1.647727,0,0,0,22.95455,0,0,0,2,0,4,92,3.4,0,94.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,94.3,9.164048,1.386294,3.133516,1 +13,4,0,1,3,425706,0,9546.628,38.03012,0,18,1,13.35067,0,28.17512,0,0,41.52579,0,0,0,1,0,4,92,3.4,0,94.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,94.3,9.164048,1.386294,3.726315,1 +13,4,0,1,4,425706,0,9546.628,39.03012,0,18,1,9.846396,0,0,0,0,9.846396,0,0,0,2,0,4,92,3.4,0,94.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,94.3,9.164048,1.386294,2.287106,1 +13,4,0,1,5,425706,0,9546.628,40.03012,0,18,1,17.7102,0,0,0,0,17.7102,0,0,0,1,0,3,92,3.4,0,94.3,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,94.3,9.164048,1.098612,2.874141,1 +17,4,25,0,1,425742,0,8029.326,57.18549,0,11,1,18.65679,0,0,0,0,18.65679,0,0,0,1,0,2,89.4,10.3,0,78.4,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,0,0,78.4,8.99098,.6931472,2.92621,1 +17,4,25,0,2,425742,0,8029.326,58.18549,0,11,1,80.07501,2.006563,40.43132,0,1555.391,1677.904,1,0,0,6,1,2,89.4,10.3,0,78.4,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,0,0,78.4,8.99098,.6931472,7.425301,1 +17,4,25,0,3,425742,0,8029.326,59.18549,0,11,1,6.448839,0,0,0,0,6.448839,0,0,0,1,0,2,89.4,10.3,0,78.4,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,0,0,78.4,8.99098,.6931472,1.8639,1 +17,4,25,0,1,425743,0,8029.326,60.25736,1,12,1,10.2145,0,0,0,0,10.2145,0,0,0,1,0,2,94.1,13.8,0,79.5,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,0,0,79.5,8.99098,.6931472,2.323809,1 +17,4,25,0,2,425743,0,8029.326,61.25736,1,12,1,61.39241,30.26254,31.41116,0,0,123.0661,0,0,0,3,1,2,94.1,13.8,0,79.5,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,0,0,79.5,8.99098,.6931472,4.812722,1 +17,4,25,0,3,425743,0,8029.326,62.25736,1,12,1,5.159071,36.92175,0,0,0,42.08083,0,0,0,1,0,2,94.1,13.8,0,79.5,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,0,0,79.5,8.99098,.6931472,3.739592,1 +11,4,0,1,1,425820,0,5639.296,37.62628,0,6,1,44.05005,13.78958,20.42901,0,0,78.26864,0,0,0,5,0,5,84.6,17.2,1,86.4,0,225.6,0,0,1.609438,5.418764,0,0,0,1,0,0,86.4,8.637691,1.609438,4.360147,1 +11,4,0,1,2,425820,0,5639.296,38.62628,0,6,1,148.1481,7.501172,0,0,0,155.6493,0,0,0,5,0,5,84.6,17.2,1,86.4,0,225.6,0,0,1.609438,5.418764,0,0,0,1,0,0,86.4,8.637691,1.609438,5.047606,1 +11,4,0,1,3,425820,0,5639.296,39.62628,0,6,1,41.59501,14.74635,26.6552,0,0,82.99656,0,0,0,3,1,5,84.6,17.2,1,86.4,0,225.6,0,0,1.609438,5.418764,0,0,0,1,0,0,86.4,8.637691,1.609438,4.418799,1 +11,4,0,1,1,425821,0,5639.296,8.271048,1,11,1,25.53626,8.171603,0,0,0,33.70787,0,0,0,3,0,5,81.7,9.967326,0,88.9,0,225.6,1,1,1.609438,5.418764,0,0,0,0,0,0,88.9,8.637691,1.609438,3.517731,1 +11,4,0,1,2,425821,0,5639.296,9.271048,1,11,1,2.812939,0,0,0,0,2.812939,0,0,0,1,0,5,81.7,9.967326,0,88.9,0,225.6,1,1,1.609438,5.418764,0,0,0,0,0,0,88.9,8.637691,1.609438,1.03423,1 +11,4,0,1,3,425821,0,5639.296,10.27105,1,11,1,22.18401,2.149613,0,0,0,24.33362,0,0,0,2,1,5,81.7,9.967326,0,88.9,0,225.6,1,1,1.609438,5.418764,0,0,0,0,0,0,88.9,8.637691,1.609438,3.191859,1 +11,4,0,1,1,425822,0,5639.296,6.551677,1,11,1,38.4474,1.02145,0,0,0,39.46885,0,0,0,5,0,5,81.7,9.967326,0,88.9,0,225.6,1,1,1.609438,5.418764,0,0,0,0,0,0,88.9,8.637691,1.609438,3.675512,1 +11,4,0,1,2,425822,0,5639.296,7.551677,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,81.7,9.967326,0,88.9,0,225.6,1,1,1.609438,5.418764,0,0,0,0,0,0,88.9,8.637691,1.609438,,0 +11,4,0,1,3,425822,0,5639.296,8.551677,1,11,1,10.74806,.7523646,0,0,0,11.50043,0,0,0,0,1,5,81.7,9.967326,0,88.9,0,225.6,1,1,1.609438,5.418764,0,0,0,0,0,0,88.9,8.637691,1.609438,2.442384,1 +11,4,0,1,1,425823,0,5639.296,27.60849,1,11,1,45.45454,3.830439,22.98264,0,0,72.26762,0,0,0,5,0,5,87.2,20.7,0,93.2,0,225.6,0,0,1.609438,5.418764,0,0,0,0,0,0,93.2,8.637691,1.609438,4.280376,1 +11,4,0,1,2,425823,0,5639.296,28.60849,1,11,1,61.65026,16.1744,12.1894,0,0,90.01406,0,0,0,4,1,5,87.2,20.7,0,93.2,0,225.6,0,0,1.609438,5.418764,0,0,0,0,0,0,93.2,8.637691,1.609438,4.499966,1 +11,4,0,1,3,425823,0,5639.296,29.60849,1,11,1,353.4007,22.82889,0,0,0,376.2296,0,0,0,7,0,5,87.2,20.7,0,93.2,0,225.6,0,0,1.609438,5.418764,0,0,0,0,0,0,93.2,8.637691,1.609438,5.9302,1 +11,4,0,1,1,425867,0,5469.795,31.7974,0,18,1,56.6905,1.225741,0,0,0,57.91624,0,0,0,2,0,1,76.6,6.9,0,78.4,0,0,0,0,0,0,0,0,0,0,0,0,78.4,8.60718,0,4.058998,1 +11,4,0,1,2,425867,0,5469.795,32.7974,0,18,1,27.19175,0,0,0,286.7276,313.9194,1,0,0,1,0,1,76.6,6.9,0,78.4,0,0,0,0,0,0,0,0,0,0,0,0,78.4,8.60718,0,5.749136,1 +11,4,0,1,3,425867,0,5469.795,33.7974,0,18,1,186.8444,4.858126,0,0,0,191.7025,0,0,0,2,0,2,76.6,6.9,0,78.4,0,0,0,0,.6931472,0,0,0,0,0,0,0,78.4,8.60718,.6931472,5.255945,1 +15,4,95,0,1,425893,0,9829.912,53.37714,1,13,1,26.79031,2.035033,40.70067,0,0,69.52602,0,0,0,2,1,2,93.6,24.1,1,72.7,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,72.7,9.193287,.6931472,4.241701,1 +15,4,95,0,2,425893,0,9829.912,54.37714,1,13,1,18.93939,0,0,0,0,18.93939,0,0,0,2,0,2,93.6,24.1,1,72.7,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,72.7,9.193287,.6931472,2.941244,1 +15,4,95,0,3,425893,0,9829.912,55.37714,1,13,1,9.536194,1.71218,0,0,0,11.24837,0,0,0,0,1,2,93.6,24.1,1,72.7,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,72.7,9.193287,.6931472,2.420224,1 +15,4,95,0,4,425893,0,9829.912,56.37714,1,13,1,0,0,0,0,0,0,0,0,0,0,0,2,93.6,24.1,1,72.7,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,72.7,9.193287,.6931472,,0 +15,4,95,0,5,425893,0,9829.912,57.37714,1,13,1,8.944544,0,26.83363,0,0,35.77818,0,0,0,0,1,2,93.6,24.1,1,72.7,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,72.7,9.193287,.6931472,3.577338,1 +15,4,95,0,1,425894,0,9829.912,54.6694,0,12,1,73.44668,0,28.33591,0,0,101.7826,0,0,0,3,0,2,80.9,20.7,0,71.6,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,71.6,9.193287,.6931472,4.622839,1 +15,4,95,0,2,425894,0,9829.912,55.6694,0,12,1,161.4583,1.870265,0,0,0,163.3286,0,0,0,5,1,2,80.9,20.7,0,71.6,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,71.6,9.193287,.6931472,5.095764,1 +15,4,95,0,3,425894,0,9829.912,56.6694,0,12,1,123.407,6.827048,23.84048,0,0,154.0746,0,0,0,6,1,2,80.9,20.7,0,71.6,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,71.6,9.193287,.6931472,5.037436,1 +15,4,95,0,4,425894,0,9829.912,57.6694,0,12,1,33.69437,12.11107,0,0,0,45.80544,0,0,0,2,0,2,80.9,20.7,0,71.6,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,71.6,9.193287,.6931472,3.824403,1 +15,4,95,0,5,425894,0,9829.912,58.6694,0,12,1,146.4293,45.48479,0,0,837.2236,1029.138,1,0,0,8,1,2,80.9,20.7,0,71.6,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,71.6,9.193287,.6931472,6.936477,1 +11,4,0,1,1,425896,0,8465.689,29.16085,1,16,1,41.42207,1.158907,0,0,0,42.58097,0,0,0,4,0,4,83.5,13.8,0,72.7,0,570.48,0,0,1.386294,6.346478,0,0,0,0,0,0,72.7,9.043895,1.386294,3.751407,1 +11,4,0,1,2,425896,0,8465.689,30.16085,1,16,1,67.21678,5.757576,0,0,0,72.97436,0,0,0,1,0,4,83.5,13.8,0,72.7,0,570.48,0,0,1.386294,6.346478,0,0,0,0,0,0,72.7,9.043895,1.386294,4.290108,1 +11,4,0,1,3,425896,0,8465.689,31.16085,1,16,1,125.9085,0,3.505772,26.72082,235.1432,364.5575,1,1,2,10,0,4,83.5,13.8,0,72.7,0,570.48,0,0,1.386294,6.346478,0,0,0,0,0,0,72.7,9.043895,1.386294,5.898685,1 +11,4,0,1,1,425897,0,8465.689,4.030117,0,16,1,32.89474,4.170041,0,0,0,37.06478,0,0,0,3,1,4,83.39137,9.967326,0,100,0,570.48,1,0,1.386294,6.346478,0,0,0,0,0,0,100,9.043895,1.386294,3.612667,1 +11,4,0,1,2,425897,0,8465.689,5.030117,0,16,1,19.11422,0,0,0,0,19.11422,0,0,0,1,1,4,83.39137,9.967326,0,100,0,570.48,1,0,1.386294,6.346478,0,0,0,0,0,0,100,9.043895,1.386294,2.950433,1 +11,4,0,1,3,425897,0,8465.689,6.030117,0,16,1,9.405729,0,30.44464,0,0,39.85036,0,0,0,2,0,4,83.39137,9.967326,0,100,0,570.48,1,0,1.386294,6.346478,0,0,0,0,0,0,100,9.043895,1.386294,3.685132,1 +11,4,0,1,1,425898,0,8465.689,6.078029,0,16,1,200.9109,14.03846,0,0,0,214.9494,0,0,0,13,11,4,66.7,9.967326,0,100,0,570.48,1,0,1.386294,6.346478,0,0,0,0,0,0,100,9.043895,1.386294,5.370403,1 +11,4,0,1,2,425898,0,8465.689,7.078029,0,16,1,24.70862,4.275058,27.29138,0,0,56.27506,0,0,0,4,1,4,66.7,9.967326,0,100,0,570.48,1,0,1.386294,6.346478,0,0,0,0,0,0,100,9.043895,1.386294,4.030252,1 +11,4,0,1,3,425898,0,8465.689,8.078029,0,16,1,97.95212,1.624626,0,0,0,99.57674,0,0,0,5,0,4,66.7,9.967326,0,100,0,570.48,1,0,1.386294,6.346478,0,0,0,0,0,0,100,9.043895,1.386294,4.600929,1 +13,4,0,1,1,425904,0,7374.193,29.47023,0,13,1,31.66496,4.519918,0,0,0,36.18488,0,0,0,3,0,2,83,3.4,0,80.7,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,80.7,8.905877,.6931472,3.588641,1 +13,4,0,1,2,425904,0,7374.193,30.47023,0,13,1,56.25879,2.344116,0,0,0,58.60291,0,0,0,3,0,2,83,3.4,0,80.7,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,80.7,8.905877,.6931472,4.070784,1 +13,4,0,1,3,425904,0,7374.193,31.47023,0,13,1,0,0,0,0,0,0,0,0,0,0,0,3,83,3.4,0,80.7,300,300,0,0,1.098612,5.703783,1,4.564348,5.755076,1,0,0,80.7,8.905877,1.098612,,0 +13,4,0,1,4,425904,0,7374.193,32.47023,0,13,1,0,0,0,31.01978,0,0,0,0,1,0,0,3,83,3.4,0,80.7,300,300,0,0,1.098612,5.703783,1,4.564348,5.755076,1,0,0,80.7,8.905877,1.098612,,0 +13,4,0,1,5,425904,0,7374.193,33.47023,0,13,1,2.830856,0,0,0,0,2.830856,0,0,0,1,0,3,83,3.4,0,80.7,300,300,0,0,1.098612,5.703783,1,4.564348,5.755076,1,0,0,80.7,8.905877,1.098612,1.040579,1 +13,4,0,1,1,425905,0,7374.193,27.4935,1,16,1,58.4474,4.519918,26.55771,0,0,89.52502,0,0,0,5,0,2,76.6,10.3,0,73.9,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,73.9,8.905877,.6931472,4.494518,1 +13,4,0,1,2,425905,0,7374.193,28.4935,1,16,1,31.87998,0,0,0,717.9325,749.8125,1,0,0,5,0,2,76.6,10.3,0,73.9,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,73.9,8.905877,.6931472,6.619823,1 +13,4,0,1,3,425905,0,7374.193,29.4935,1,16,1,0,0,0,0,0,0,0,0,0,0,0,3,76.6,10.3,0,73.9,300,300,0,0,1.098612,5.703783,1,4.564348,5.755076,1,0,0,73.9,8.905877,1.098612,,0 +13,4,0,1,4,425905,0,7374.193,30.4935,1,16,1,21.71384,22.97014,0,286.9329,0,44.68399,0,0,28,3,0,3,76.6,10.3,0,73.9,300,300,0,0,1.098612,5.703783,1,4.564348,5.755076,1,0,0,73.9,8.905877,1.098612,3.799615,1 +13,4,0,1,5,425905,0,7374.193,31.4935,1,16,1,57.6787,17.80609,23.35456,26.53928,251.7339,350.5732,1,0,3,5,0,3,76.6,10.3,0,73.9,300,300,0,0,1.098612,5.703783,1,4.564348,5.755076,1,0,0,73.9,8.905877,1.098612,5.85957,1 +11,4,0,0,1,425917,0,11310.85,15.32375,0,9,1,81.91653,0,0,0,0,81.91653,0,0,0,4,0,4,92,0,0,65.5,0,0,1,0,1.386294,0,0,0,0,1,0,0,65.5,9.333606,1.386294,4.405701,1 +11,4,0,0,2,425917,0,11310.85,16.32375,0,9,1,48.31913,4.640152,0,0,447.3958,500.3551,1,0,0,5,0,3,92,0,0,65.5,0,0,1,0,1.098612,0,0,0,0,1,0,0,65.5,9.333606,1.098612,6.215318,1 +11,4,0,0,1,425918,0,11310.85,43.15948,1,9,1,18.03194,0,0,0,0,18.03194,0,0,0,1,0,4,81.4,3.4,0,76.1,0,0,0,0,1.386294,0,0,0,0,1,0,0,76.1,9.333606,1.386294,2.892145,1 +11,4,0,0,2,425918,0,11310.85,44.15948,1,9,1,0,0,0,0,0,0,0,0,0,0,0,3,81.4,3.4,0,76.1,0,0,0,0,1.098612,0,0,0,0,1,0,0,76.1,9.333606,1.098612,,0 +11,4,0,0,3,425918,0,11310.85,45.15948,1,9,1,19.50585,0,0,0,0,19.50585,0,0,0,1,0,2,81.4,3.4,0,76.1,0,0,0,0,.6931472,0,0,0,0,1,0,0,76.1,9.333606,.6931472,2.970715,1 +11,4,0,0,1,425919,0,11310.85,18.99247,0,10,1,119.2427,4.90984,0,0,0,124.1525,0,0,0,5,0,4,92,3.4,0,84.1,0,0,0,0,1.386294,0,0,0,0,1,0,0,84.1,9.333606,1.386294,4.821511,1 +11,4,0,0,1,425920,0,11310.85,46.24778,0,12,1,193.22,30.1391,154.5595,0,0,377.9186,0,0,0,4,8,4,87.2,10.3,0,64.8,0,0,0,0,1.386294,0,0,0,0,1,0,0,64.8,9.333606,1.386294,5.934679,1 +11,4,0,0,2,425920,0,11310.85,47.24778,0,12,1,118.7263,91.50095,40.24621,0,0,250.4735,0,0,0,5,0,3,87.2,10.3,0,64.8,0,0,0,0,1.098612,0,0,0,0,1,0,0,64.8,9.333606,1.098612,5.523353,1 +11,4,0,0,3,425920,0,11310.85,48.24778,0,12,1,89.94365,72.60512,0,0,0,162.5488,0,0,0,5,0,2,87.2,10.3,0,64.8,0,0,0,0,.6931472,0,0,0,0,1,0,0,64.8,9.333606,.6931472,5.090978,1 +11,4,0,1,1,425925,0,10809.97,58.72964,1,12,1,116.4348,94.2813,54.84286,0,0,265.559,0,0,0,7,0,1,81.9,27.6,1,58,0,293.28,0,0,0,5.681128,0,0,0,1,0,0,58,9.288317,0,5.581837,1 +11,4,0,1,2,425925,0,10809.97,59.72964,1,12,1,17.51894,69.69697,0,0,0,87.21591,0,0,0,2,0,1,81.9,27.6,1,58,0,293.28,0,0,0,5.681128,0,0,0,1,0,0,58,9.288317,0,4.468387,1 +11,4,0,1,1,425966,0,7978.886,11.86858,0,12,1,0,.4276146,0,0,0,.4276146,0,0,0,0,0,6,90,9.967326,0,63,0,291.84,1,0,1.791759,5.676206,0,0,0,0,0,0,63,8.984679,1.791759,-.8495329,1 +11,4,0,1,2,425966,0,7978.886,12.86858,0,12,1,23.91098,0,0,0,0,23.91098,0,0,0,1,0,6,90,9.967326,0,63,0,291.84,1,0,1.791759,5.676206,0,0,0,0,0,0,63,8.984679,1.791759,3.174338,1 +11,4,0,1,3,425966,0,7978.886,13.86858,0,12,1,30.66753,0,0,0,0,30.66753,0,0,0,1,0,6,90,9.967326,0,63,0,291.84,1,0,1.791759,5.676206,0,0,0,0,0,0,63,8.984679,1.791759,3.423205,1 +11,4,0,1,1,425967,0,7978.886,8.566735,0,12,1,65.34261,12.86965,0,0,0,78.21227,0,0,0,4,0,6,91.7,9.967326,0,70.4,0,291.84,1,0,1.791759,5.676206,0,0,0,0,0,0,70.4,8.984679,1.791759,4.359426,1 +11,4,0,1,2,425967,0,7978.886,9.566735,0,12,1,9.469697,2.95928,0,0,0,12.42898,0,0,0,1,0,6,91.7,9.967326,0,70.4,0,291.84,1,0,1.791759,5.676206,0,0,0,0,0,0,70.4,8.984679,1.791759,2.52003,1 +11,4,0,1,3,425967,0,7978.886,10.56674,0,12,1,4.334634,2.362375,0,0,0,6.697009,0,0,0,1,0,6,91.7,9.967326,0,70.4,0,291.84,1,0,1.791759,5.676206,0,0,0,0,0,0,70.4,8.984679,1.791759,1.901661,1 +11,4,0,1,1,425968,0,7978.886,34.52156,1,12,1,20.60793,0,37.60948,0,0,58.21741,0,0,0,2,1,6,88.8,13.8,0,85.2,0,291.84,0,0,1.791759,5.676206,0,0,0,0,0,0,85.2,8.984679,1.791759,4.064185,1 +11,4,0,1,2,425968,0,7978.886,35.52156,1,12,1,9.469697,0,0,0,0,9.469697,0,0,0,1,0,6,88.8,13.8,0,85.2,0,291.84,0,0,1.791759,5.676206,0,0,0,0,0,0,85.2,8.984679,1.791759,2.248097,1 +11,4,0,1,3,425968,0,7978.886,36.52156,1,12,1,39.87863,3.120936,0,0,0,42.99957,0,0,0,4,0,6,88.8,13.8,0,85.2,0,291.84,0,0,1.791759,5.676206,0,0,0,0,0,0,85.2,8.984679,1.791759,3.76119,1 +11,4,0,1,1,425969,0,7978.886,35.38124,0,13,1,51.51984,0,0,0,0,51.51984,0,0,0,0,4,6,58.5,24.1,1,54.8,0,291.84,0,0,1.791759,5.676206,0,0,0,0,0,0,54.8,8.984679,1.791759,3.941967,1 +11,4,0,1,2,425969,0,7978.886,36.38124,0,13,1,7.102273,0,0,0,0,7.102273,0,0,0,0,1,6,58.5,24.1,1,54.8,0,291.84,0,0,1.791759,5.676206,0,0,0,0,0,0,54.8,8.984679,1.791759,1.960415,1 +11,4,0,1,3,425969,0,7978.886,37.38124,0,13,1,61.5518,1.733853,0,0,0,63.28565,0,0,0,3,0,6,58.5,24.1,1,54.8,0,291.84,0,0,1.791759,5.676206,0,0,0,0,0,0,54.8,8.984679,1.791759,4.147659,1 +11,4,0,1,1,425970,0,7978.886,3.279945,0,12,1,7.727975,12.64812,0,0,0,20.37609,0,0,0,1,0,6,83.39137,9.967326,0,74.1,0,291.84,1,0,1.791759,5.676206,0,0,0,0,0,0,74.1,8.984679,1.791759,3.014362,1 +11,4,0,1,2,425970,0,7978.886,4.279945,0,12,1,9.232955,2.485795,0,0,0,11.71875,0,0,0,1,0,6,83.39137,9.967326,0,74.1,0,291.84,1,0,1.791759,5.676206,0,0,0,0,0,0,74.1,8.984679,1.791759,2.46119,1 +11,4,0,1,3,425970,0,7978.886,5.279945,0,12,1,188.8903,1.842219,0,0,0,190.7326,0,0,0,4,0,6,83.39137,9.967326,0,74.1,0,291.84,1,0,1.791759,5.676206,0,0,0,0,0,0,74.1,8.984679,1.791759,5.250872,1 +11,4,0,1,1,425971,0,7978.886,14.07255,0,12,1,56.85214,13.31273,0,0,0,70.16486,0,0,0,4,0,6,87.4,3.4,0,75,0,291.84,1,0,1.791759,5.676206,0,0,0,0,0,0,75,8.984679,1.791759,4.250848,1 +11,4,0,1,2,425971,0,7978.886,15.07255,0,12,1,0,1.183712,0,0,0,1.183712,0,0,0,0,0,6,87.4,3.4,0,75,0,291.84,1,0,1.791759,5.676206,0,0,0,0,0,0,75,8.984679,1.791759,.1686554,1 +11,4,0,1,3,425971,0,7978.886,16.07255,0,12,1,8.669268,0,0,0,0,8.669268,0,0,0,1,0,6,87.4,3.4,0,75,0,291.84,1,0,1.791759,5.676206,0,0,0,0,0,0,75,8.984679,1.791759,2.159784,1 +11,4,0,1,1,425972,0,2313.783,5.845312,1,10,1,10.12146,0,0,0,0,10.12146,0,0,0,2,0,3,81.7,9.967326,0,51.9,0,0,1,1,1.098612,0,0,0,0,1,0,0,51.9,7.747071,1.098612,2.314658,1 +11,4,0,1,2,425972,0,2313.783,6.845312,1,10,1,18.64802,0,0,0,0,18.64802,0,0,0,1,0,3,81.7,9.967326,0,51.9,0,0,1,1,1.098612,0,0,0,0,1,0,0,51.9,7.747071,1.098612,2.92574,1 +11,4,0,1,3,425972,0,2313.783,7.845312,1,10,1,33.2407,0,0,0,0,33.2407,0,0,0,2,0,3,81.7,9.967326,0,51.9,0,0,1,1,1.098612,0,0,0,0,1,0,0,51.9,7.747071,1.098612,3.503775,1 +11,4,0,1,4,425972,0,2313.783,8.845311,1,10,1,34.20446,0,0,0,0,34.20446,0,0,0,5,0,3,81.7,9.967326,0,51.9,0,0,1,1,1.098612,0,0,0,0,1,0,0,51.9,7.747071,1.098612,3.532356,1 +11,4,0,1,5,425972,0,2313.783,9.845311,1,10,1,43.90586,0,5.261679,0,0,49.16755,0,0,0,1,0,3,81.7,9.967326,0,51.9,0,0,1,1,1.098612,0,0,0,0,1,0,0,51.9,7.747071,1.098612,3.895234,1 +11,4,0,1,1,425973,0,2313.783,4.358658,0,10,1,8.097166,7.373482,0,0,0,15.47065,0,0,0,2,0,3,83.39137,9.967326,0,25.9,0,0,1,0,1.098612,0,0,0,0,1,0,0,25.9,7.747071,1.098612,2.738945,1 +11,4,0,1,2,425973,0,2313.783,5.358658,0,10,1,7.342658,0,0,0,0,7.342658,0,0,0,0,0,3,83.39137,9.967326,0,25.9,0,0,1,0,1.098612,0,0,0,0,1,0,0,25.9,7.747071,1.098612,1.993701,1 +11,4,0,1,3,425973,0,2313.783,6.358658,0,10,1,9.362976,0,0,0,0,9.362976,0,0,0,1,0,3,83.39137,9.967326,0,25.9,0,0,1,0,1.098612,0,0,0,0,1,0,0,25.9,7.747071,1.098612,2.236763,1 +11,4,0,1,4,425973,0,2313.783,7.358658,0,10,1,15.94927,0,0,0,0,15.94927,0,0,0,2,0,3,83.39137,9.967326,0,25.9,0,0,1,0,1.098612,0,0,0,0,1,0,0,25.9,7.747071,1.098612,2.769413,1 +11,4,0,1,5,425973,0,2313.783,8.358659,0,10,1,109.8525,0,0,0,420.1967,530.0492,1,0,0,2,0,3,83.39137,9.967326,0,25.9,0,0,1,0,1.098612,0,0,0,0,1,0,0,25.9,7.747071,1.098612,6.27297,1 +11,4,0,1,1,425974,0,2313.783,23.8193,1,10,1,45.04049,13.13259,33.37551,0,0,91.54858,0,0,0,5,0,3,51.6,37.9,1,53.4,0,0,0,0,1.098612,0,0,0,0,0,1,0,53.4,7.747071,1.098612,4.51687,1 +11,4,0,1,2,425974,0,2313.783,24.8193,1,10,1,383.4499,0,0,0,318.718,702.1678,1,0,0,7,0,3,51.6,37.9,1,53.4,0,0,0,0,1.098612,0,0,0,0,0,1,0,53.4,7.747071,1.098612,6.554173,1 +11,4,0,1,3,425974,0,2313.783,25.8193,1,10,1,44.35656,0,31.20992,0,0,75.56648,0,0,0,1,1,3,51.6,37.9,1,53.4,0,0,0,0,1.098612,0,0,0,0,0,1,0,53.4,7.747071,1.098612,4.325013,1 +11,4,0,1,4,425974,0,2313.783,26.8193,1,10,1,0,0,0,0,0,0,0,0,0,0,0,3,51.6,37.9,1,53.4,0,0,0,0,1.098612,0,0,0,0,0,1,0,53.4,7.747071,1.098612,,0 +11,4,0,1,5,425974,0,2313.783,27.8193,1,10,1,58.65824,0,0,0,0,58.65824,0,0,0,2,0,3,51.6,37.9,1,53.4,0,0,0,0,1.098612,0,0,0,0,0,1,0,53.4,7.747071,1.098612,4.071728,1 +16,4,95,0,1,425987,0,10982.99,46.8501,1,12,1,92.04018,29.8815,0,0,0,121.9217,0,0,0,8,0,3,79.8,6.9,0,77.3,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,77.3,9.304194,1.098612,4.803379,1 +16,4,95,0,2,425987,0,10982.99,47.8501,1,12,1,39.77273,5.681818,0,0,0,45.45454,0,0,0,7,0,3,79.8,6.9,0,77.3,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,77.3,9.304194,1.098612,3.816713,1 +16,4,95,0,3,425987,0,10982.99,48.8501,1,12,1,81.94625,0,0,0,0,81.94625,0,0,0,8,0,3,79.8,6.9,0,77.3,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,77.3,9.304194,1.098612,4.406064,1 +16,4,95,0,4,425987,0,10982.99,49.8501,1,12,1,35.44703,12.58369,0,0,224.616,272.6467,1,1,0,6,0,3,79.8,6.9,0,77.3,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,77.3,9.304194,1.098612,5.608177,1 +16,4,95,0,5,425987,0,10982.99,50.8501,1,12,1,33.2737,0,0,0,0,33.2737,0,0,0,6,0,3,79.8,6.9,0,77.3,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,77.3,9.304194,1.098612,3.504767,1 +16,4,95,0,1,425988,0,10982.99,48.55578,0,13,1,0,0,0,0,0,0,0,0,0,0,0,3,89.4,0,0,85.2,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,85.2,9.304194,1.098612,,0 +16,4,95,0,2,425988,0,10982.99,49.55578,0,13,1,0,0,0,0,0,0,0,0,0,0,0,3,89.4,0,0,85.2,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,85.2,9.304194,1.098612,,0 +16,4,95,0,3,425988,0,10982.99,50.55578,0,13,1,0,0,0,0,0,0,0,0,0,0,0,3,89.4,0,0,85.2,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,85.2,9.304194,1.098612,,0 +16,4,95,0,4,425988,0,10982.99,51.55578,0,13,1,0,0,0,0,0,0,0,0,0,0,0,3,89.4,0,0,85.2,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,85.2,9.304194,1.098612,,0 +16,4,95,0,5,425988,0,10982.99,52.55578,0,13,1,12.52236,0,28.26476,0,0,40.78712,0,0,0,2,0,3,89.4,0,0,85.2,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,85.2,9.304194,1.098612,3.708366,1 +16,4,95,0,1,425989,0,10982.99,19.09103,0,12,1,41.12828,0,0,0,0,41.12828,0,0,0,1,0,3,49.5,3.4,0,65.9,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,65.9,9.304194,1.098612,3.716696,1 +16,4,95,0,2,425989,0,10982.99,20.09103,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,49.5,3.4,0,65.9,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,65.9,9.304194,1.098612,,0 +16,4,95,0,3,425989,0,10982.99,21.09103,0,12,1,33.51105,5.457304,0,0,0,38.96836,0,0,0,1,0,3,49.5,3.4,0,65.9,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,65.9,9.304194,1.098612,3.66275,1 +16,4,95,0,4,425989,0,10982.99,22.09103,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,49.5,3.4,0,65.9,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,65.9,9.304194,1.098612,,0 +16,4,95,0,5,425989,0,10982.99,23.09103,0,12,1,26.11807,0,0,0,0,26.11807,0,0,0,0,0,3,49.5,3.4,0,65.9,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,65.9,9.304194,1.098612,3.262627,1 +13,4,0,1,1,426020,0,9170.675,32.67077,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,80.9,3.4,0,89.8,450,505.44,0,0,1.609438,6.22543,1,4.564348,6.160541,0,0,0,89.8,9.123876,1.609438,,0 +13,4,0,1,2,426020,0,9170.675,33.67077,0,12,1,11.72058,5.977497,0,0,0,17.69808,0,0,0,1,0,5,80.9,3.4,0,89.8,450,505.44,0,0,1.609438,6.22543,1,4.564348,6.160541,0,0,0,89.8,9.123876,1.609438,2.873456,1 +13,4,0,1,3,426020,0,9170.675,34.67077,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,80.9,3.4,0,89.8,450,505.44,0,0,1.609438,6.22543,1,4.564348,6.160541,0,0,0,89.8,9.123876,1.609438,,0 +13,4,0,1,1,426021,0,9170.675,11.63313,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,88.3,9.967326,0,92.6,450,505.44,1,1,1.609438,6.22543,1,4.564348,6.160541,0,0,0,92.6,9.123876,1.609438,,0 +13,4,0,1,2,426021,0,9170.675,12.63313,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,88.3,9.967326,0,92.6,450,505.44,1,1,1.609438,6.22543,1,4.564348,6.160541,0,0,0,92.6,9.123876,1.609438,,0 +13,4,0,1,3,426021,0,9170.675,13.63313,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,88.3,9.967326,0,92.6,450,505.44,1,1,1.609438,6.22543,1,4.564348,6.160541,0,0,0,92.6,9.123876,1.609438,,0 +13,4,0,1,1,426022,0,9170.675,10.65298,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,91.7,9.967326,0,100,450,505.44,1,1,1.609438,6.22543,1,4.564348,6.160541,0,0,0,100,9.123876,1.609438,,0 +13,4,0,1,2,426022,0,9170.675,11.65298,1,12,1,11.72058,0,0,0,0,11.72058,0,0,0,1,0,5,91.7,9.967326,0,100,450,505.44,1,1,1.609438,6.22543,1,4.564348,6.160541,0,0,0,100,9.123876,1.609438,2.461346,1 +13,4,0,1,3,426022,0,9170.675,12.65298,1,12,1,33.23302,0,0,0,0,33.23302,0,0,0,1,0,5,91.7,9.967326,0,100,450,505.44,1,1,1.609438,6.22543,1,4.564348,6.160541,0,0,0,100,9.123876,1.609438,3.503544,1 +13,4,0,1,1,426023,0,9170.675,9.396304,0,12,1,41.07763,2.170582,0,0,0,43.24821,0,0,0,4,0,5,88.3,9.967326,0,96.3,450,505.44,1,0,1.609438,6.22543,1,4.564348,6.160541,0,0,0,96.3,9.123876,1.609438,3.766956,1 +13,4,0,1,2,426023,0,9170.675,10.3963,0,12,1,74.89452,.726676,0,0,0,75.62119,0,0,0,3,0,5,88.3,9.967326,0,96.3,450,505.44,1,0,1.609438,6.22543,1,4.564348,6.160541,0,0,0,96.3,9.123876,1.609438,4.325737,1 +13,4,0,1,3,426023,0,9170.675,11.3963,0,12,1,137.1797,0,0,0,0,137.1797,0,0,0,4,0,5,88.3,9.967326,0,96.3,450,505.44,1,0,1.609438,6.22543,1,4.564348,6.160541,0,0,0,96.3,9.123876,1.609438,4.921292,1 +13,4,0,1,1,426024,0,9170.675,31.2115,1,12,1,108.7845,0,0,0,854.1471,962.9316,1,0,0,8,0,5,73.4,6.9,0,87.5,450,505.44,0,0,1.609438,6.22543,1,4.564348,6.160541,0,0,0,87.5,9.123876,1.609438,6.869982,1 +13,4,0,1,2,426024,0,9170.675,32.2115,1,12,1,19.69058,0,0,0,0,19.69058,0,0,0,2,0,5,73.4,6.9,0,87.5,450,505.44,0,0,1.609438,6.22543,1,4.564348,6.160541,0,0,0,87.5,9.123876,1.609438,2.98014,1 +13,4,0,1,3,426024,0,9170.675,33.2115,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,73.4,6.9,0,87.5,450,505.44,0,0,1.609438,6.22543,1,4.564348,6.160541,0,0,0,87.5,9.123876,1.609438,,0 +11,4,0,1,1,426038,0,8415.249,3.682409,1,17,1,7.800312,0,0,0,0,7.800312,0,0,0,1,0,4,83.39137,9.967326,0,77.8,0,443.28,1,1,1.386294,6.094202,0,0,0,0,0,0,77.8,9.03792,1.386294,2.054164,1 +11,4,0,1,2,426038,0,8415.249,4.682409,1,17,1,29.14477,7.286192,0,0,0,36.43096,0,0,0,3,1,4,83.39137,9.967326,0,77.8,0,443.28,1,1,1.386294,6.094202,0,0,0,0,0,0,77.8,9.03792,1.386294,3.595419,1 +11,4,0,1,3,426038,0,8415.249,5.682409,1,17,1,36.43547,0,0,0,0,36.43547,0,0,0,3,0,4,83.39137,9.967326,0,77.8,0,443.28,1,1,1.386294,6.094202,0,0,0,0,0,0,77.8,9.03792,1.386294,3.595543,1 +11,4,0,1,1,426039,0,8415.249,29.36345,0,17,1,10.40042,0,28.08112,0,0,38.48154,0,0,0,0,1,4,74.5,3.4,0,87.5,0,443.28,0,0,1.386294,6.094202,0,0,0,0,0,0,87.5,9.03792,1.386294,3.650179,1 +11,4,0,1,2,426039,0,8415.249,30.36345,0,17,1,0,0,0,0,0,0,0,0,0,0,0,4,74.5,3.4,0,87.5,0,443.28,0,0,1.386294,6.094202,0,0,0,0,0,0,87.5,9.03792,1.386294,,0 +11,4,0,1,3,426039,0,8415.249,31.36345,0,17,1,0,0,13.16945,0,0,13.16945,0,0,0,0,0,4,74.5,3.4,0,87.5,0,443.28,0,0,1.386294,6.094202,0,0,0,0,0,0,87.5,9.03792,1.386294,2.577899,1 +11,4,0,1,1,426040,0,8415.249,1.434634,0,17,1,13.00052,1.534061,0,0,0,14.53458,0,0,0,2,0,4,83.39137,9.967326,0,85.2,0,443.28,1,0,1.386294,6.094202,0,0,0,0,0,0,85.2,9.03792,1.386294,2.676531,1 +11,4,0,1,2,426040,0,8415.249,2.434634,0,17,1,38.70043,8.528428,0,0,0,47.22886,0,0,0,4,0,4,83.39137,9.967326,0,85.2,0,443.28,1,0,1.386294,6.094202,0,0,0,0,0,0,85.2,9.03792,1.386294,3.855005,1 +11,4,0,1,3,426040,0,8415.249,3.434634,0,17,1,34.24056,0,0,0,0,34.24056,0,0,0,2,0,4,83.39137,9.967326,0,85.2,0,443.28,1,0,1.386294,6.094202,0,0,0,0,0,0,85.2,9.03792,1.386294,3.533411,1 +11,4,0,1,1,426041,0,8415.249,28.91171,1,17,1,10.40042,2.574103,35.61102,0,0,48.58554,0,0,0,1,0,4,81.9,10.3,0,83,0,443.28,0,0,1.386294,6.094202,0,0,0,0,0,0,83,9.03792,1.386294,3.883326,1 +11,4,0,1,2,426041,0,8415.249,29.91171,1,17,1,17.67797,2.150024,10.47778,0,0,30.30578,0,0,0,2,0,4,81.9,10.3,0,83,0,443.28,0,0,1.386294,6.094202,0,0,0,0,0,0,83,9.03792,1.386294,3.411339,1 +11,4,0,1,3,426041,0,8415.249,30.91171,1,17,1,14.15716,0,0,0,0,14.15716,0,0,0,1,0,4,81.9,10.3,0,83,0,443.28,0,0,1.386294,6.094202,0,0,0,0,0,0,83,9.03792,1.386294,2.65022,1 +16,4,95,1,1,426049,0,4265.689,50.37098,1,13,1,0,0,0,0,0,0,0,0,0,0,0,1,66.5,24.1,0,93.2,975,975,0,0,0,6.882438,0,4.564348,6.933731,0,0,0,93.2,8.358593,0,,0 +16,4,95,1,2,426049,0,4265.689,51.37098,1,13,1,146.3901,3.811533,0,0,0,150.2016,0,0,0,2,0,1,66.5,24.1,0,93.2,975,975,0,0,0,6.882438,0,4.564348,6.933731,0,0,0,93.2,8.358593,0,5.011978,1 +16,4,95,1,3,426049,0,4265.689,52.37098,1,13,1,0,0,51.37575,0,0,51.37575,0,0,0,0,0,1,66.5,24.1,0,93.2,975,975,0,0,0,6.882438,0,4.564348,6.933731,0,0,0,93.2,8.358593,0,3.939166,1 +11,4,0,0,1,426087,0,10549.56,56.49829,1,14,1,44.80082,24.92339,38.81512,0,0,108.5393,0,0,0,2,1,1,80.9,17.2,0,51.1,0,203.06,0,0,0,5.313501,0,0,0,1,0,0,51.1,9.263934,0,4.687113,1 +11,4,0,0,2,426087,0,10549.56,57.49829,1,14,1,25.43366,24.28504,0,0,0,49.7187,0,0,0,1,0,1,80.9,17.2,0,51.1,0,203.06,0,0,0,5.313501,0,0,0,1,0,0,51.1,9.263934,0,3.906381,1 +11,4,0,0,3,426087,0,10549.56,58.49829,1,14,1,101.5692,51.46174,39.9828,0,0,193.0138,0,0,0,3,1,1,80.9,17.2,0,51.1,0,203.06,0,0,0,5.313501,0,0,0,1,0,0,51.1,9.263934,0,5.262762,1 +11,4,0,1,1,426089,0,4377.712,24.87064,1,16,1,31.4271,31.53014,0,0,0,62.95724,0,0,0,3,0,1,80.3,0,0,69.3,0,131.76,0,0,0,4.880982,0,0,0,1,0,0,69.3,8.38451,0,4.142456,1 +11,4,0,1,2,426089,0,4377.712,25.87064,1,16,1,324.1714,51.54356,0,0,0,375.715,0,0,0,5,0,1,80.3,0,0,69.3,0,131.76,0,0,0,4.880982,0,0,0,1,0,0,69.3,8.38451,0,5.928831,1 +11,4,0,1,3,426089,0,4377.712,26.87064,1,16,1,117.6853,55.3446,0,0,0,173.0299,0,0,0,7,0,1,80.3,0,0,69.3,0,131.76,0,0,0,4.880982,0,0,0,1,0,0,69.3,8.38451,0,5.153464,1 +13,4,0,0,1,426109,0,9419.208,30.13826,0,11,1,149.0726,0,42.24627,0,0,191.3189,0,0,0,4,0,4,68.6,10.3,0,72.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,72.7,9.150613,1.386294,5.253942,1 +13,4,0,0,2,426109,0,9419.208,31.13826,0,11,1,0,0,0,23.67424,0,0,0,0,2,0,0,4,68.6,10.3,0,72.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,72.7,9.150613,1.386294,,0 +13,4,0,0,3,426109,0,9419.208,32.13826,0,11,1,77.93238,10.54616,10.40312,54.18292,0,98.88167,0,0,5,4,0,4,68.6,10.3,0,72.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,72.7,9.150613,1.386294,4.593924,1 +13,4,0,0,1,426110,0,9419.208,27.83573,1,12,1,39.67027,38.58836,0,396.7027,0,78.25863,0,0,22,6,0,4,45.7,13.8,0,73.9,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,73.9,9.150613,1.386294,4.360019,1 +13,4,0,0,2,426110,0,9419.208,28.83573,1,12,1,38.82576,19.50758,0,179.9242,0,58.33333,0,0,9,3,2,4,45.7,13.8,0,73.9,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,73.9,9.150613,1.386294,4.066174,1 +13,4,0,0,3,426110,0,9419.208,29.83573,1,12,1,184.8721,7.451235,0,463.8058,0,192.3234,0,0,26,9,3,4,45.7,13.8,0,73.9,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,73.9,9.150613,1.386294,5.259178,1 +13,4,0,0,1,426111,0,9419.208,5.223819,1,12,1,61.30861,21.20041,7.727975,0,316.5636,406.8006,1,0,0,7,0,4,90,9.967326,0,81.5,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,1,0,81.5,9.150613,1.386294,6.008323,1 +13,4,0,0,2,426111,0,9419.208,6.223819,1,12,1,169.1051,20.57292,0,0,0,189.678,0,0,0,12,0,4,90,9.967326,0,81.5,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,1,0,81.5,9.150613,1.386294,5.245328,1 +13,4,0,0,3,426111,0,9419.208,7.223819,1,12,1,225.7911,14.88513,29.74426,0,0,270.4205,0,0,0,11,1,4,90,9.967326,0,81.5,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,1,0,81.5,9.150613,1.386294,5.599978,1 +13,4,0,0,1,426112,0,9419.208,8.238193,1,12,1,227.3313,5.615662,0,0,0,232.9469,0,0,0,10,0,4,83.3,9.967326,0,85.2,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,85.2,9.150613,1.386294,5.45081,1 +13,4,0,0,2,426112,0,9419.208,9.238193,1,12,1,90.90909,6.723485,27.46212,0,0,125.0947,0,0,0,4,1,4,83.3,9.967326,0,85.2,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,85.2,9.150613,1.386294,4.829071,1 +13,4,0,0,3,426112,0,9419.208,10.23819,1,12,1,131.7078,.6892068,24.05722,0,0,156.4543,0,0,0,6,1,4,83.3,9.967326,0,85.2,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,85.2,9.150613,1.386294,5.052764,1 +11,4,0,1,1,426148,0,7872.141,1.514032,1,13,1,27.04108,10.85283,0,0,0,37.89392,0,0,0,5,0,3,83.39137,9.967326,0,92.6,0,0,1,1,1.098612,0,0,0,0,0,0,0,92.6,8.971212,1.098612,3.634791,1 +11,4,0,1,2,426148,0,7872.141,2.514031,1,13,1,5.733397,7.009078,0,0,0,12.74247,0,0,0,1,0,4,83.39137,9.967326,0,92.6,0,0,1,1,1.386294,0,0,0,0,0,0,0,92.6,8.971212,1.386294,2.544941,1 +11,4,0,1,3,426148,0,7872.141,3.514031,1,13,1,40.82529,5.763828,0,0,0,46.58912,0,0,0,5,0,4,83.39137,9.967326,0,92.6,0,0,1,1,1.386294,0,0,0,0,0,0,0,92.6,8.971212,1.386294,3.841367,1 +11,4,0,1,1,426149,0,7872.141,28.77207,1,13,1,6.24025,20.56162,0,0,710.4004,737.2023,1,0,0,0,0,3,51.6,17.2,0,58,0,0,0,0,1.098612,0,0,0,0,0,0,0,58,8.971212,1.098612,6.602862,1 +11,4,0,1,2,426149,0,7872.141,29.77207,1,13,1,17.20019,4.610607,3.272814,0,0,25.08361,0,0,0,2,0,4,51.6,17.2,0,58,0,0,0,0,1.386294,0,0,0,0,0,0,0,58,8.971212,1.386294,3.222215,1 +11,4,0,1,3,426149,0,7872.141,30.77207,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,51.6,17.2,0,58,0,0,0,0,1.386294,0,0,0,0,0,0,0,58,8.971212,1.386294,,0 +11,4,0,1,1,426150,0,7872.141,33.25941,0,15,1,34.84139,4.75819,0,0,0,39.59958,0,0,0,3,0,3,77.7,10.3,0,59.1,0,0,0,0,1.098612,0,0,0,0,1,0,0,59.1,8.971212,1.098612,3.678818,1 +11,4,0,1,2,426150,0,7872.141,34.25941,0,15,1,0,0,0,0,0,0,0,0,0,0,0,4,77.7,10.3,0,59.1,0,0,0,0,1.386294,0,0,0,0,1,0,0,59.1,8.971212,1.386294,,0 +11,4,0,1,3,426150,0,7872.141,35.25941,0,15,1,13.16945,0,30.28973,0,0,43.45918,0,0,0,1,0,4,77.7,10.3,0,59.1,0,0,0,0,1.386294,0,0,0,0,1,0,0,59.1,8.971212,1.386294,3.771822,1 +19,4,25,1,1,426170,0,1555.425,20.8679,1,12,1,0,14.95445,0,0,0,14.95445,0,0,0,0,0,2,84,3.4,0,88.6,300,300,0,0,.6931472,5.703783,0,3.258096,7.090077,0,0,0,88.6,7.350147,.6931472,2.705009,1 +19,4,25,1,2,426170,0,1555.425,21.8679,1,12,1,3.193473,0,0,0,0,3.193473,0,0,0,0,0,2,84,3.4,0,88.6,300,300,0,0,.6931472,5.703783,0,3.258096,7.090077,0,0,0,88.6,7.350147,.6931472,1.161109,1 +19,4,25,1,3,426170,0,1555.425,22.8679,1,12,1,2.992732,0,0,0,285.1646,288.1573,1,0,0,1,0,2,84,3.4,0,88.6,300,300,0,0,.6931472,5.703783,0,3.258096,7.090077,0,0,0,88.6,7.350147,.6931472,5.663507,1 +19,4,25,1,4,426170,0,1555.425,23.8679,1,12,1,6.149116,0,0,0,0,6.149116,0,0,0,1,0,3,84,3.4,0,88.6,300,300,0,0,1.098612,5.703783,0,3.258096,7.090077,0,0,0,88.6,7.350147,1.098612,1.816308,1 +19,4,25,1,5,426170,0,1555.425,24.8679,1,12,1,27.74851,11.55602,0,0,0,39.30453,0,0,0,1,0,3,84,3.4,0,88.6,300,300,0,0,1.098612,5.703783,0,3.258096,7.090077,0,0,0,88.6,7.350147,1.098612,3.67134,1 +19,4,25,1,1,426171,0,1555.425,1.533196,1,12,1,35.55162,0,0,0,0,35.55162,0,0,0,2,0,2,83.39137,9.967326,0,92.6,300,300,1,1,.6931472,5.703783,0,3.258096,7.090077,0,0,0,92.6,7.350147,.6931472,3.570986,1 +19,4,25,1,2,426171,0,1555.425,2.533196,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,83.39137,9.967326,0,92.6,300,300,1,1,.6931472,5.703783,0,3.258096,7.090077,0,0,0,92.6,7.350147,.6931472,,0 +19,4,25,1,3,426171,0,1555.425,3.533196,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,83.39137,9.967326,0,92.6,300,300,1,1,.6931472,5.703783,0,3.258096,7.090077,0,0,0,92.6,7.350147,.6931472,,0 +19,4,25,1,4,426171,0,1555.425,4.533196,1,12,1,8.839355,0,0,0,0,8.839355,0,0,0,2,0,3,83.39137,9.967326,0,92.6,300,300,1,1,1.098612,5.703783,0,3.258096,7.090077,0,0,0,92.6,7.350147,1.098612,2.179214,1 +19,4,25,1,5,426171,0,1555.425,5.533196,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,83.39137,9.967326,0,92.6,300,300,1,1,1.098612,5.703783,0,3.258096,7.090077,0,0,0,92.6,7.350147,1.098612,,0 +5,4,25,1,1,426174,0,3863.93,3.742642,1,14,1,8.320333,0,0,0,0,8.320333,0,0,0,1,0,2,83.39137,9.967326,0,92.6,195,0,1,1,.6931472,0,0,3.258096,6.659294,0,0,0,92.6,8.259699,.6931472,2.118702,1 +5,4,25,1,2,426174,0,3863.93,4.742642,1,14,1,13.85571,0,0,0,0,13.85571,0,0,0,2,0,2,83.39137,9.967326,0,92.6,195,0,1,1,.6931472,0,0,3.258096,6.659294,0,0,0,92.6,8.259699,.6931472,2.628697,1 +5,4,25,1,3,426174,0,3863.93,5.742642,1,14,1,0,0,0,0,0,0,0,0,0,0,0,2,83.39137,9.967326,0,92.6,195,0,1,1,.6931472,0,0,3.258096,6.659294,0,0,0,92.6,8.259699,.6931472,,0 +5,4,25,1,1,426175,0,3863.93,24.76112,1,14,1,16.41186,0,0,0,0,16.41186,0,0,0,2,0,2,83,3.4,0,80.7,195,0,0,0,.6931472,0,0,3.258096,6.659294,0,0,0,80.7,8.259699,.6931472,2.798004,1 +5,4,25,1,2,426175,0,3863.93,25.76112,1,14,1,11.94458,0,25.80029,0,0,37.74487,0,0,0,1,0,2,83,3.4,0,80.7,195,0,0,0,.6931472,0,0,3.258096,6.659294,0,0,0,80.7,8.259699,.6931472,3.630849,1 +5,4,25,1,3,426175,0,3863.93,26.76112,1,14,1,328.424,4.653204,0,0,0,333.0773,0,0,0,2,0,2,83,3.4,0,80.7,195,0,0,0,.6931472,0,0,3.258096,6.659294,0,0,0,80.7,8.259699,.6931472,5.808374,1 +5,4,25,1,1,426176,0,3017.009,26.10267,0,12,1,10.30397,0,27.82071,0,0,38.12468,0,0,0,1,0,1,92,3.4,0,88.6,445,445,0,0,0,6.098074,0,3.258096,7.484369,0,0,0,88.6,8.012353,0,3.640862,1 +5,4,25,1,2,426176,0,3017.009,27.10267,0,12,1,183.4138,0,0,0,0,183.4138,0,0,0,1,0,1,92,3.4,0,88.6,445,445,0,0,0,6.098074,0,3.258096,7.484369,0,0,0,88.6,8.012353,0,5.211745,1 +5,4,25,1,3,426176,0,3017.009,28.10267,0,12,1,4.334634,2.405722,0,0,0,6.740355,0,0,0,1,0,1,92,3.4,0,88.6,445,445,0,0,0,6.098074,0,3.258096,7.484369,0,0,0,88.6,8.012353,0,1.908113,1 +18,4,25,1,1,426193,0,14513.2,56.49829,1,13,1,115.662,54.27615,38.63988,0,0,208.578,0,0,0,3,2,2,65.4,20.7,0,67,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,67,9.582883,.6931472,5.340313,1 +18,4,25,1,2,426193,0,14513.2,57.49829,1,13,1,16.57197,23.1108,0,0,0,39.68277,0,0,0,2,0,2,65.4,20.7,0,67,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,67,9.582883,.6931472,3.680917,1 +18,4,25,1,3,426193,0,14513.2,58.49829,1,13,1,7.368877,12.73515,0,0,0,20.10403,0,0,0,1,0,2,65.4,20.7,0,67,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,67,9.582883,.6931472,3.00092,1 +18,4,25,1,1,426194,0,14513.2,58.11362,0,18,1,61.66924,2.679031,0,0,0,64.34827,0,0,0,3,0,2,89.4,20.7,0,86.4,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,0,0,86.4,9.582883,.6931472,4.16431,1 +18,4,25,1,2,426194,0,14513.2,59.11362,0,18,1,81.79451,0,0,0,0,81.79451,0,0,0,4,0,2,89.4,20.7,0,86.4,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,0,0,86.4,9.582883,.6931472,4.40421,1 +18,4,25,1,3,426194,0,14513.2,60.11362,0,18,1,80.51582,0,0,0,0,80.51582,0,0,0,1,0,2,89.4,20.7,0,86.4,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,0,0,86.4,9.582883,.6931472,4.388454,1 +11,4,0,1,1,426195,0,7910.823,12.70637,0,13,1,67.28805,2.451481,0,0,0,69.73953,0,0,0,2,2,4,35,9.967326,0,92.6,0,443.28,1,0,1.386294,6.094202,0,0,0,0,0,0,92.6,8.976113,1.386294,4.244767,1 +11,4,0,1,2,426195,0,7910.823,13.70637,0,13,1,63.15049,2.977028,27.50586,0,0,93.63338,0,0,0,3,0,4,35,9.967326,0,92.6,0,443.28,1,0,1.386294,6.094202,0,0,0,0,0,0,92.6,8.976113,1.386294,4.539387,1 +11,4,0,1,3,426195,0,7910.823,14.70637,0,13,1,9.458298,1.504729,0,0,0,10.96303,0,0,0,0,1,4,35,9.967326,0,92.6,0,443.28,1,0,1.386294,6.094202,0,0,0,0,0,0,92.6,8.976113,1.386294,2.394528,1 +11,4,0,1,1,426196,0,7910.823,4.569473,0,13,1,47.77835,32.55873,0,0,0,80.33708,0,0,0,4,2,4,83.39137,9.967326,0,66.7,0,443.28,1,0,1.386294,6.094202,0,0,0,1,0,0,66.7,8.976113,1.386294,4.386231,1 +11,4,0,1,2,426196,0,7910.823,5.569473,0,13,1,7.501172,8.602907,0,0,0,16.10408,0,0,0,1,1,4,83.39137,9.967326,0,66.7,0,443.28,1,0,1.386294,6.094202,0,0,0,1,0,0,66.7,8.976113,1.386294,2.779073,1 +11,4,0,1,3,426196,0,7910.823,6.569473,0,13,1,39.12296,0,0,90.28375,0,39.12296,0,0,7,3,1,4,83.39137,9.967326,0,66.7,0,443.28,1,0,1.386294,6.094202,0,0,0,1,0,0,66.7,8.976113,1.386294,3.666709,1 +11,4,0,1,1,426197,0,7910.823,31.98631,0,17,1,162.7937,8.324821,0,0,0,171.1185,0,0,0,7,0,4,61.2,10.3,0,50,0,443.28,0,0,1.386294,6.094202,0,0,0,1,0,0,50,8.976113,1.386294,5.142356,1 +11,4,0,1,2,426197,0,7910.823,32.98631,0,17,1,144.3976,25.94937,0,0,0,170.3469,0,0,0,18,0,4,61.2,10.3,0,50,0,443.28,0,0,1.386294,6.094202,0,0,0,1,0,0,50,8.976113,1.386294,5.137837,1 +11,4,0,1,3,426197,0,7910.823,33.98631,0,17,1,222.9149,38.28461,0,0,0,261.1995,0,0,2,9,0,4,61.2,10.3,0,50,0,443.28,0,0,1.386294,6.094202,0,0,0,1,0,0,50,8.976113,1.386294,5.565284,1 +11,4,0,1,1,426198,0,7910.823,30.9514,1,13,1,136.1083,196.3739,0,0,0,332.4821,0,0,0,7,0,4,29.3,20.7,0,46.6,0,443.28,0,0,1.386294,6.094202,0,0,0,1,0,0,46.6,8.976113,1.386294,5.806586,1 +11,4,0,1,2,426198,0,7910.823,31.9514,1,13,1,1020.206,250.5392,0,0,2181.505,3452.25,1,0,0,34,0,4,29.3,20.7,0,46.6,0,443.28,0,0,1.386294,6.094202,0,0,0,1,0,0,46.6,8.976113,1.386294,8.146782,1 +11,4,0,1,3,426198,0,7910.823,32.9514,1,13,1,1244.132,230.804,0,0,0,1474.936,0,0,2,16,0,4,29.3,20.7,0,46.6,0,443.28,0,0,1.386294,6.094202,0,0,0,1,0,0,46.6,8.976113,1.386294,7.29637,1 +5,4,25,0,1,426199,.0068104,6513.196,29.30595,1,14,1,32.5013,2.938118,0,0,0,35.43942,0,0,0,0,0,4,88.3,13.8,0,79.5,497.95,497.95,0,0,1.386294,6.2105,0,3.258096,7.596794,0,0,0,79.5,8.781739,1.386294,3.567825,1 +5,4,25,0,2,426199,.0068104,6513.196,30.30595,1,14,1,15.76684,0,24.36694,0,0,40.13378,0,0,0,2,0,4,88.3,13.8,0,79.5,497.95,497.95,0,0,1.386294,6.2105,0,3.258096,7.596794,0,0,0,79.5,8.781739,1.386294,3.692218,1 +5,4,25,0,3,426199,.0068104,6513.196,31.30595,1,14,1,55.20193,0,0,0,0,55.20193,0,0,0,2,0,4,88.3,13.8,0,79.5,497.95,497.95,0,0,1.386294,6.2105,0,3.258096,7.596794,0,0,0,79.5,8.781739,1.386294,4.010998,1 +5,4,25,0,1,426200,.0068104,6513.196,4.156057,1,14,1,23.40094,5.902236,0,0,0,29.30317,0,0,0,4,0,4,83.39137,9.967326,0,77.8,497.95,497.95,1,1,1.386294,6.2105,0,3.258096,7.596794,0,0,0,77.8,8.781739,1.386294,3.377696,1 +5,4,25,0,2,426200,.0068104,6513.196,5.156057,1,14,1,8.600096,12.1118,0,0,0,20.7119,0,0,0,2,0,4,83.39137,9.967326,0,77.8,497.95,497.95,1,1,1.386294,6.2105,0,3.258096,7.596794,0,0,0,77.8,8.781739,1.386294,3.030708,1 +5,4,25,0,3,426200,.0068104,6513.196,6.156057,1,14,1,3.950834,1.733977,0,0,0,5.684811,0,0,0,1,0,4,83.39137,9.967326,0,77.8,497.95,497.95,1,1,1.386294,6.2105,0,3.258096,7.596794,0,0,0,77.8,8.781739,1.386294,1.737798,1 +5,4,25,0,1,426201,0,6513.196,30.00685,0,16,1,412.5793,5.044202,0,0,0,417.6235,0,0,0,11,0,4,86.2,3.4,0,68.2,497.95,497.95,0,0,1.386294,6.2105,0,3.258096,7.596794,0,0,0,68.2,8.781739,1.386294,6.03458,1 +5,4,25,0,2,426201,0,6513.196,31.00685,0,16,1,108.0841,0,7.166746,0,0,115.2508,0,0,0,3,0,4,86.2,3.4,0,68.2,497.95,497.95,0,0,1.386294,6.2105,0,3.258096,7.596794,0,0,0,68.2,8.781739,1.386294,4.747111,1 +5,4,25,0,3,426201,0,6513.196,32.00684,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,86.2,3.4,0,68.2,497.95,497.95,0,0,1.386294,6.2105,0,3.258096,7.596794,0,0,0,68.2,8.781739,1.386294,,0 +5,4,25,0,1,426202,.0068104,6513.196,1.185489,1,14,1,26.52106,0,0,0,0,26.52106,0,0,0,4,0,4,83.39137,9.967326,0,81.5,497.95,497.95,1,1,1.386294,6.2105,0,3.258096,7.596794,0,0,0,81.5,8.781739,1.386294,3.277939,1 +5,4,25,0,2,426202,.0068104,6513.196,2.185489,1,14,1,7.644529,2.365026,0,0,0,10.00956,0,0,0,2,0,4,83.39137,9.967326,0,81.5,497.95,497.95,1,1,1.386294,6.2105,0,3.258096,7.596794,0,0,0,81.5,8.781739,1.386294,2.30354,1 +5,4,25,0,3,426202,.0068104,6513.196,3.185489,1,14,1,11.8525,6.321334,0,0,0,18.17384,0,0,0,2,0,4,83.39137,9.967326,0,81.5,497.95,497.95,1,1,1.386294,6.2105,0,3.258096,7.596794,0,0,0,81.5,8.781739,1.386294,2.899983,1 +14,4,95,1,1,426212,0,3284.458,13.0486,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,86.7,9.967326,0,63,221,221,1,1,1.609438,5.398163,0,4.564348,5.449456,0,0,0,63,8.097261,1.609438,,0 +14,4,95,1,2,426212,0,3284.458,14.0486,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,86.7,9.967326,0,63,221,221,1,1,1.609438,5.398163,0,4.564348,5.449456,0,0,0,63,8.097261,1.609438,,0 +14,4,95,1,1,426213,0,3284.458,15.98357,1,12,1,101.2146,0,0,0,0,101.2146,0,0,0,2,0,5,71.3,3.4,0,67,221,221,1,1,1.609438,5.398163,0,4.564348,5.449456,0,0,0,67,8.097261,1.609438,4.617243,1 +14,4,95,1,2,426213,0,3284.458,16.98357,1,12,1,13.05361,4.195804,0,0,360.3077,377.5571,1,0,0,2,0,5,71.3,3.4,0,67,221,221,1,1,1.609438,5.398163,0,4.564348,5.449456,0,0,0,67,8.097261,1.609438,5.933722,1 +14,4,95,1,3,426213,0,3284.458,17.98357,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,71.3,3.4,0,67,221,221,1,1,1.386294,5.398163,0,4.564348,5.449456,0,0,0,67,8.097261,1.386294,,0 +14,4,95,1,1,426214,0,3284.458,34.63929,1,12,1,5.060729,20.49595,0,0,0,25.55668,0,0,0,1,0,5,61.2,24.1,1,56.8,221,221,0,0,1.609438,5.398163,0,4.564348,5.449456,1,0,0,56.8,8.097261,1.609438,3.240899,1 +14,4,95,1,2,426214,0,3284.458,35.63929,1,12,1,37.99534,6.592074,0,0,0,44.58741,0,0,0,1,0,5,61.2,24.1,1,56.8,221,221,0,0,1.609438,5.398163,0,4.564348,5.449456,1,0,0,56.8,8.097261,1.609438,3.797452,1 +14,4,95,1,3,426214,0,3284.458,36.63929,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,61.2,24.1,1,56.8,221,221,0,0,1.386294,5.398163,0,4.564348,5.449456,1,0,0,56.8,8.097261,1.386294,,0 +14,4,95,1,1,426215,0,3284.458,8.353183,0,12,1,6.072875,6.52834,0,0,0,12.60121,0,0,0,1,0,5,70,9.967326,0,63,221,221,1,0,1.609438,5.398163,0,4.564348,5.449456,0,0,0,63,8.097261,1.609438,2.533793,1 +14,4,95,1,2,426215,0,3284.458,9.353183,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,70,9.967326,0,63,221,221,1,0,1.609438,5.398163,0,4.564348,5.449456,0,0,0,63,8.097261,1.609438,,0 +14,4,95,1,3,426215,0,3284.458,10.35318,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,70,9.967326,0,63,221,221,1,0,1.386294,5.398163,0,4.564348,5.449456,0,0,0,63,8.097261,1.386294,,0 +14,4,95,1,1,426216,0,3284.458,10.40931,1,12,1,27.32794,0,0,0,0,27.32794,0,0,0,2,0,5,80,9.967326,0,85.2,221,221,1,1,1.609438,5.398163,0,4.564348,5.449456,0,0,0,85.2,8.097261,1.609438,3.307909,1 +14,4,95,1,2,426216,0,3284.458,11.40931,1,12,1,0,5.337996,0,0,0,5.337996,0,0,0,0,0,5,80,9.967326,0,85.2,221,221,1,1,1.609438,5.398163,0,4.564348,5.449456,0,0,0,85.2,8.097261,1.609438,1.67485,1 +14,4,95,1,3,426216,0,3284.458,12.40931,1,12,1,27.14835,0,0,0,0,27.14835,0,0,0,2,0,4,80,9.967326,0,85.2,221,221,1,1,1.386294,5.398163,0,4.564348,5.449456,0,0,0,85.2,8.097261,1.386294,3.301316,1 +13,4,0,1,1,426220,0,5279.179,50.99795,1,16,1,16.64067,3.421737,52.78211,0,0,72.84451,0,0,0,1,1,3,86.7,20.7,0,94.3,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,94.3,8.571715,1.098612,4.288327,1 +13,4,0,1,2,426220,0,5279.179,51.99795,1,16,1,21.73913,7.534639,0,0,0,29.27377,0,0,0,2,0,3,86.7,20.7,0,94.3,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,94.3,8.571715,1.098612,3.376692,1 +13,4,0,1,3,426220,0,5279.179,52.99795,1,16,1,88.34504,0,43.67867,0,230.4653,362.489,1,1,0,3,1,3,86.7,20.7,0,94.3,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,94.3,8.571715,1.098612,5.892994,1 +13,4,0,1,1,426221,0,5279.179,11.27995,1,16,1,0,0,0,0,0,0,0,0,0,0,0,3,85,9.967326,0,92.6,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,0,0,0,92.6,8.571715,1.098612,,0 +13,4,0,1,2,426221,0,5279.179,12.27995,1,16,1,0,0,0,0,0,0,0,0,0,0,0,3,85,9.967326,0,92.6,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,0,0,0,92.6,8.571715,1.098612,,0 +13,4,0,1,3,426221,0,5279.179,13.27995,1,16,1,136.194,0,0,0,597.1027,733.2968,1,0,0,11,1,3,85,9.967326,0,92.6,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,0,0,0,92.6,8.571715,1.098612,6.59755,1 +13,4,0,1,1,426222,0,5279.179,15.18412,0,16,1,0,0,0,0,0,0,0,0,0,0,0,3,85.6,6.9,0,76.1,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,76.1,8.571715,1.098612,,0 +13,4,0,1,2,426222,0,5279.179,16.18412,0,16,1,0,0,0,0,0,0,0,0,0,0,0,3,85.6,6.9,0,76.1,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,76.1,8.571715,1.098612,,0 +13,4,0,1,3,426222,0,5279.179,17.18412,0,16,1,0,0,0,0,0,0,0,0,0,0,0,3,85.6,6.9,0,76.1,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,76.1,8.571715,1.098612,,0 +11,4,0,1,1,426223,0,1859.824,5.451061,0,12,1,31.88259,3.036437,0,0,0,34.91903,0,0,0,5,0,2,100,9.967326,0,100,0,0,1,0,.6931472,0,0,0,0,0,0,0,100,7.528775,.6931472,3.553032,1 +11,4,0,1,2,426223,0,1859.824,6.451061,0,12,1,6.993007,5.594406,0,0,0,12.58741,0,0,0,1,0,2,100,9.967326,0,100,0,0,1,0,.6931472,0,0,0,0,0,0,0,100,7.528775,.6931472,2.532697,1 +11,4,0,1,3,426223,0,1859.824,7.451061,0,12,1,13.25353,0,0,0,0,13.25353,0,0,0,3,0,2,100,9.967326,0,100,0,0,1,0,.6931472,0,0,0,0,0,0,0,100,7.528775,.6931472,2.584264,1 +11,4,0,1,4,426223,0,1859.824,8.451061,0,12,1,48.61645,1.725596,0,0,0,50.34204,0,0,1,1,2,2,100,9.967326,0,100,0,0,1,0,.6931472,0,0,0,0,0,0,0,100,7.528775,.6931472,3.918841,1 +11,4,0,1,5,426223,0,1859.824,9.451061,0,12,1,40.27748,0,0,63.22445,0,40.27748,0,0,4,3,0,2,100,9.967326,0,100,0,0,1,0,.6931472,0,0,0,0,0,0,0,100,7.528775,.6931472,3.695793,1 +11,4,0,1,1,426224,0,1859.824,25.36893,1,12,1,28.84615,13.58806,27.58097,0,0,70.01518,0,0,0,3,0,2,57.4,3.4,0,84.1,0,0,0,0,.6931472,0,0,0,0,0,0,0,84.1,7.528775,.6931472,4.248712,1 +11,4,0,1,2,426224,0,1859.824,26.36893,1,12,1,9.324009,4.638695,0,0,0,13.9627,0,0,0,1,0,2,57.4,3.4,0,84.1,0,0,0,0,.6931472,0,0,0,0,0,0,0,84.1,7.528775,.6931472,2.63639,1 +11,4,0,1,3,426224,0,1859.824,27.36893,1,12,1,32.92005,12.09919,25.22445,0,0,70.24369,0,0,0,4,0,2,57.4,3.4,0,84.1,0,0,0,0,.6931472,0,0,0,0,0,0,0,84.1,7.528775,.6931472,4.25197,1 +11,4,0,1,4,426224,0,1859.824,28.36893,1,12,1,65.33436,29.09301,0,51.88317,0,94.42736,0,0,5,3,0,2,57.4,3.4,0,84.1,0,0,0,0,.6931472,0,0,0,0,0,0,0,84.1,7.528775,.6931472,4.547831,1 +11,4,0,1,5,426224,0,1859.824,29.36893,1,12,1,17.56235,13.90938,0,94.83667,0,31.47173,0,0,6,1,1,2,57.4,3.4,0,84.1,0,0,0,0,.6931472,0,0,0,0,0,0,0,84.1,7.528775,.6931472,3.44909,1 +7,4,25,1,1,426228,0,9224.047,35.74538,1,15,1,435.6826,7.135497,33.48789,0,0,476.306,0,0,0,5,0,5,92.6,20.7,0,87.5,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,87.5,9.129678,1.609438,6.16606,1 +7,4,25,1,2,426228,0,9224.047,36.74538,1,15,1,23.67424,11.10322,0,0,37.87879,72.65625,1,1,0,3,0,5,92.6,20.7,0,87.5,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,87.5,9.129678,1.609438,4.285739,1 +7,4,25,1,3,426228,0,9224.047,37.74538,1,15,1,32.07629,5.587343,26.0078,0,0,63.67144,0,0,0,4,0,5,92.6,20.7,0,87.5,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,87.5,9.129678,1.609438,4.153736,1 +7,4,25,1,1,426229,0,9224.047,.733744,1,15,1,12.36476,2.184441,0,0,0,14.5492,0,0,0,2,0,5,83.39137,9.967326,0,85.2,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,85.2,9.129678,1.609438,2.677536,1 +7,4,25,1,2,426229,0,9224.047,1.733744,1,15,1,5.681818,5.160985,0,0,0,10.8428,0,0,0,1,0,5,83.39137,9.967326,0,85.2,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,85.2,9.129678,1.609438,2.383502,1 +7,4,25,1,3,426229,0,9224.047,2.733744,1,15,1,5.20156,4.508019,0,0,0,9.709579,0,0,0,1,0,5,83.39137,9.967326,0,85.2,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,85.2,9.129678,1.609438,2.273113,1 +7,4,25,1,1,426230,0,9224.047,8.142368,0,15,1,14.56981,2.339,0,0,0,16.90881,0,0,0,2,0,5,88.3,9.967326,0,92.6,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,92.6,9.129678,1.609438,2.827835,1 +7,4,25,1,2,426230,0,9224.047,9.142368,0,15,1,18.59848,5.492424,0,0,0,24.09091,0,0,0,3,0,5,88.3,9.967326,0,92.6,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,92.6,9.129678,1.609438,3.181835,1 +7,4,25,1,3,426230,0,9224.047,10.14237,0,15,1,6.501951,3.48938,0,0,0,9.991331,0,0,0,1,0,5,88.3,9.967326,0,92.6,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,92.6,9.129678,1.609438,2.301718,1 +7,4,25,1,1,426231,0,9224.047,9.560575,1,15,1,0,0,0,0,0,0,0,0,0,0,0,5,91.7,9.967326,0,85.2,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,85.2,9.129678,1.609438,,0 +7,4,25,1,2,426231,0,9224.047,10.56057,1,15,1,0,0,0,0,0,0,0,0,0,0,0,5,91.7,9.967326,0,85.2,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,85.2,9.129678,1.609438,,0 +7,4,25,1,3,426231,0,9224.047,11.56057,1,15,1,0,3.250975,0,0,0,3.250975,0,0,0,0,0,5,91.7,9.967326,0,85.2,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,85.2,9.129678,1.609438,1.178955,1 +7,4,25,1,1,426232,0,9224.047,35.36482,0,16,1,5.151984,0,0,0,0,5.151984,0,0,0,1,0,5,86.2,3.4,0,72.7,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,72.7,9.129678,1.609438,1.639382,1 +7,4,25,1,2,426232,0,9224.047,36.36482,0,16,1,0,0,0,0,0,0,0,0,0,0,0,5,86.2,3.4,0,72.7,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,72.7,9.129678,1.609438,,0 +7,4,25,1,3,426232,0,9224.047,37.36482,0,16,1,0,0,0,0,0,0,0,0,0,0,0,5,86.2,3.4,0,72.7,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,72.7,9.129678,1.609438,,0 +13,4,0,1,1,426252,0,12809.38,57.39357,1,16,1,0,0,0,0,0,0,0,0,0,0,0,2,84.6,13.8,0,79.5,300,919.44,0,0,.6931472,6.823765,1,4.564348,5.755076,0,0,0,79.5,9.458012,.6931472,,0 +13,4,0,1,2,426252,0,12809.38,58.39357,1,16,1,9.469697,0,0,0,0,9.469697,0,0,0,1,0,2,84.6,13.8,0,79.5,300,919.44,0,0,.6931472,6.823765,1,4.564348,5.755076,0,0,0,79.5,9.458012,.6931472,2.248097,1 +13,4,0,1,3,426252,0,12809.38,59.39357,1,16,1,134.8071,0,0,0,0,134.8071,0,0,0,7,0,2,84.6,13.8,0,79.5,300,919.44,0,0,.6931472,6.823765,1,4.564348,5.755076,0,0,0,79.5,9.458012,.6931472,4.903845,1 +13,4,0,1,1,426253,0,12809.38,58.65298,0,16,1,0,0,0,0,0,0,0,0,0,0,0,2,91.5,3.4,0,71.6,300,919.44,0,0,.6931472,6.823765,1,4.564348,5.755076,0,0,0,71.6,9.458012,.6931472,,0 +13,4,0,1,2,426253,0,12809.38,59.65298,0,16,1,0,0,0,0,0,0,0,0,0,0,0,2,91.5,3.4,0,71.6,300,919.44,0,0,.6931472,6.823765,1,4.564348,5.755076,0,0,0,71.6,9.458012,.6931472,,0 +13,4,0,1,3,426253,0,12809.38,60.65298,0,16,1,0,0,0,0,0,0,0,0,0,0,0,2,91.5,3.4,0,71.6,300,919.44,0,0,.6931472,6.823765,1,4.564348,5.755076,0,0,0,71.6,9.458012,.6931472,,0 +18,4,25,0,1,426258,0,5095.015,2.652977,1,18,1,46.28185,21.86687,0,0,0,68.14873,0,0,0,8,0,4,83.39137,9.967326,0,85.2,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,0,0,0,85.2,8.536214,1.386294,4.221693,1 +18,4,25,0,2,426258,0,5095.015,3.652977,1,18,1,13.37793,4.730052,0,0,0,18.10798,0,0,0,2,0,4,83.39137,9.967326,0,85.2,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,0,0,0,85.2,8.536214,1.386294,2.896353,1 +18,4,25,0,3,426258,0,5095.015,4.652977,1,18,1,13.53819,4.609306,0,0,0,18.1475,0,0,0,1,0,4,83.39137,9.967326,0,85.2,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,0,0,0,85.2,8.536214,1.386294,2.898533,1 +18,4,25,0,1,426259,0,5095.015,32.04654,0,16,1,42.5221,3.094124,0,0,0,45.61623,0,0,0,1,0,4,50,13.8,1,70.5,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,70.5,8.536214,1.386294,3.820263,1 +18,4,25,0,2,426259,0,5095.015,33.04654,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,50,13.8,1,70.5,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,70.5,8.536214,1.386294,,0 +18,4,25,0,3,426259,0,5095.015,34.04654,0,16,1,52.62072,1.865672,0,0,0,54.48639,0,0,0,2,0,4,50,13.8,1,70.5,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,70.5,8.536214,1.386294,3.997951,1 +18,4,25,0,1,426260,0,5095.015,32.22177,1,18,1,58.34633,6.110244,21.84087,0,0,86.29745,0,0,0,5,0,4,71.8,13.8,0,76.1,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,76.1,8.536214,1.386294,4.4578,1 +18,4,25,0,2,426260,0,5095.015,33.22177,1,18,1,0,8.241758,0,0,626.8896,635.1314,1,0,0,0,0,4,71.8,13.8,0,76.1,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,76.1,8.536214,1.386294,6.453832,1 +18,4,25,0,3,426260,0,5095.015,34.22177,1,18,1,22.82704,0,13.16945,0,0,35.99649,0,0,0,2,0,4,71.8,13.8,0,76.1,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,76.1,8.536214,1.386294,3.583421,1 +18,4,25,0,1,426261,0,5095.015,5.256673,0,18,1,6.760271,4.914196,0,0,0,11.67447,0,0,0,1,0,4,83.3,9.967326,0,88.9,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,88.9,8.536214,1.386294,2.457404,1 +18,4,25,0,2,426261,0,5095.015,6.256673,0,18,1,0,5.685619,0,0,0,5.685619,0,0,0,0,0,4,83.3,9.967326,0,88.9,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,88.9,8.536214,1.386294,1.73794,1 +18,4,25,0,3,426261,0,5095.015,7.256673,0,18,1,24.36348,0,0,0,0,24.36348,0,0,0,2,0,4,83.3,9.967326,0,88.9,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,88.9,8.536214,1.386294,3.193085,1 +10,4,50,1,1,426282,0,2951.32,33.10883,1,16,1,20.60793,5.074704,0,0,0,25.68264,0,0,0,2,0,1,72.9,13.8,0,83,765,765,0,0,0,6.639876,0,3.931826,7.333023,1,0,0,83,7.990346,0,3.245815,1 +10,4,50,1,2,426282,0,2951.32,34.10883,1,16,1,24.62121,19.17614,0,0,0,43.79735,0,0,0,3,0,1,72.9,13.8,0,83,765,765,0,0,0,6.639876,0,3.931826,7.333023,1,0,0,83,7.990346,0,3.779573,1 +10,4,50,1,3,426282,0,2951.32,35.10883,1,16,1,8.669268,21.71651,0,0,0,30.38578,0,0,0,1,0,1,72.9,13.8,0,83,765,765,0,0,0,6.639876,0,3.931826,7.333023,1,0,0,83,7.990346,0,3.413975,1 +14,4,95,1,1,426357,0,7591.789,52.86242,1,14,1,10.30397,11.84956,0,0,0,22.15353,0,0,0,1,0,2,47.9,17.2,1,76.1,687.5,687.5,0,0,.6931472,6.533062,0,4.564348,6.584355,0,0,0,76.1,8.934955,.6931472,3.097997,1 +14,4,95,1,2,426357,0,7591.789,53.86242,1,14,1,5.681818,0,0,0,0,5.681818,0,0,0,1,0,2,47.9,17.2,1,76.1,687.5,687.5,0,0,.6931472,6.533062,0,4.564348,6.584355,0,0,0,76.1,8.934955,.6931472,1.737271,1 +14,4,95,1,3,426357,0,7591.789,54.86242,1,14,1,138.4915,15.73472,0,0,0,154.2263,0,0,0,8,0,2,47.9,17.2,1,76.1,687.5,687.5,0,0,.6931472,6.533062,0,4.564348,6.584355,0,0,0,76.1,8.934955,.6931472,5.038421,1 +14,4,95,1,4,426357,0,7591.789,55.86242,1,14,1,99.25167,48.68846,12.99724,0,0,160.9374,0,0,0,10,1,2,47.9,17.2,1,76.1,687.5,687.5,0,0,.6931472,6.533062,0,4.564348,6.584355,0,0,0,76.1,8.934955,.6931472,5.081015,1 +14,4,95,1,5,426357,0,7591.789,56.86242,1,14,1,20.03578,55.22719,0,0,0,75.26297,0,0,0,3,2,2,47.9,17.2,1,76.1,687.5,687.5,0,0,.6931472,6.533062,0,4.564348,6.584355,0,0,0,76.1,8.934955,.6931472,4.320988,1 +14,4,95,1,1,426358,0,7591.789,51.59206,0,16,1,58.73261,34.13189,0,0,0,92.8645,0,0,0,3,0,2,51.6,20.7,1,60.2,687.5,687.5,0,0,.6931472,6.533062,0,4.564348,6.584355,1,0,0,60.2,8.934955,.6931472,4.531141,1 +14,4,95,1,2,426358,0,7591.789,52.59206,0,16,1,9.469697,2.012311,0,0,0,11.48201,0,0,0,1,0,2,51.6,20.7,1,60.2,687.5,687.5,0,0,.6931472,6.533062,0,4.564348,6.584355,1,0,0,60.2,8.934955,.6931472,2.440781,1 +14,4,95,1,3,426358,0,7591.789,53.59206,0,16,1,49.63156,0,0,0,0,49.63156,0,0,0,1,0,2,51.6,20.7,1,60.2,687.5,687.5,0,0,.6931472,6.533062,0,4.564348,6.584355,1,0,0,60.2,8.934955,.6931472,3.904627,1 +14,4,95,1,4,426358,0,7591.789,54.59206,0,16,1,54.62781,4.805041,18.51122,0,0,77.94407,0,0,0,3,1,2,51.6,20.7,1,60.2,687.5,687.5,0,0,.6931472,6.533062,0,4.564348,6.584355,1,0,0,60.2,8.934955,.6931472,4.355991,1 +14,4,95,1,5,426358,0,7591.789,55.59206,0,16,1,2.862254,2.826476,0,0,0,5.68873,0,0,0,1,0,2,51.6,20.7,1,60.2,687.5,687.5,0,0,.6931472,6.533062,0,4.564348,6.584355,1,0,0,60.2,8.934955,.6931472,1.738487,1 +11,4,0,1,1,426359,0,10963.64,48.84052,0,17,1,75.39262,0,0,0,0,75.39262,0,0,0,4,0,3,83.5,6.9,0,92,0,443.28,0,0,1.098612,6.094202,0,0,0,0,0,0,92,9.30243,1.098612,4.32271,1 +11,4,0,1,2,426359,0,10963.64,49.84052,0,17,1,9.555662,0,37.26708,0,0,46.82274,0,0,0,0,1,3,83.5,6.9,0,92,0,443.28,0,0,1.098612,6.094202,0,0,0,0,0,0,92,9.30243,1.098612,3.846369,1 +11,4,0,1,3,426359,0,10963.64,50.84052,0,17,1,0,0,0,0,0,0,0,0,0,0,0,3,83.5,6.9,0,92,0,443.28,0,0,1.098612,6.094202,0,0,0,0,0,0,92,9.30243,1.098612,,0 +11,4,0,1,1,426360,0,10963.64,50.19849,1,16,1,167.8887,0,31.20125,0,0,199.09,0,0,0,2,0,3,74.5,27.6,0,71.6,0,443.28,0,0,1.098612,6.094202,0,0,0,0,0,0,71.6,9.30243,1.098612,5.293757,1 +11,4,0,1,2,426360,0,10963.64,51.19849,1,16,1,62.70903,0,0,0,0,62.70903,0,0,0,3,0,3,74.5,27.6,0,71.6,0,443.28,0,0,1.098612,6.094202,0,0,0,0,0,0,71.6,9.30243,1.098612,4.138505,1 +11,4,0,1,3,426360,0,10963.64,52.19849,1,16,1,129.2801,41.18086,32.92362,0,645.2239,848.6084,1,0,0,13,1,3,74.5,27.6,0,71.6,0,443.28,0,0,1.098612,6.094202,0,0,0,0,0,0,71.6,9.30243,1.098612,6.743598,1 +11,4,0,1,1,426361,0,10963.64,16.29569,0,16,1,0,1.976079,0,0,0,1.976079,0,0,0,0,0,3,78.7,6.9,0,79.5,0,443.28,1,0,1.098612,6.094202,0,0,0,0,0,0,79.5,9.30243,1.098612,.6811146,1 +11,4,0,1,2,426361,0,10963.64,17.29569,0,16,1,9.555662,0,0,0,0,9.555662,0,0,0,0,1,3,78.7,6.9,0,79.5,0,443.28,1,0,1.098612,6.094202,0,0,0,0,0,0,79.5,9.30243,1.098612,2.257134,1 +11,4,0,1,3,426361,0,10963.64,18.29569,0,16,1,9.218613,0,0,0,0,9.218613,0,0,0,1,0,3,78.7,6.9,0,79.5,0,443.28,0,0,1.098612,6.094202,0,0,0,0,0,0,79.5,9.30243,1.098612,2.221225,1 +10,4,50,1,1,426362,0,11704.4,35.89322,0,12,1,10.30397,0,0,0,0,10.30397,0,0,0,0,2,5,100,6.9,0,88.6,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,1,0,0,88.6,9.367805,1.609438,2.332529,1 +10,4,50,1,2,426362,0,11704.4,36.89322,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,100,6.9,0,88.6,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,1,0,0,88.6,9.367805,1.609438,,0 +10,4,50,1,3,426362,0,11704.4,37.89322,0,12,1,10.40312,6.415258,0,0,0,16.81838,0,0,0,0,2,5,100,6.9,0,88.6,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,1,0,0,88.6,9.367805,1.609438,2.822472,1 +10,4,50,1,1,426363,0,11704.4,10.65571,0,12,1,5.151984,2.575992,0,0,0,7.727975,0,0,0,1,0,5,91.7,9.967326,0,77.8,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,77.8,9.367805,1.609438,2.044847,1 +10,4,50,1,2,426363,0,11704.4,11.65571,0,12,1,26.04167,0,0,0,0,26.04167,0,0,0,1,0,5,91.7,9.967326,0,77.8,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,77.8,9.367805,1.609438,3.259698,1 +10,4,50,1,3,426363,0,11704.4,12.65571,0,12,1,10.40312,3.420026,0,0,0,13.82315,0,0,0,2,0,5,91.7,9.967326,0,77.8,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,77.8,9.367805,1.609438,2.626344,1 +10,4,50,1,1,426364,0,11704.4,9.357974,1,12,1,6.18238,0,0,0,0,6.18238,0,0,0,1,0,5,83.3,9.967326,0,92.6,1000,1000,1,1,1.609438,6.907755,0,3.931826,7.600903,0,0,0,92.6,9.367805,1.609438,1.821703,1 +10,4,50,1,2,426364,0,11704.4,10.35797,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,83.3,9.967326,0,92.6,1000,1000,1,1,1.609438,6.907755,0,3.931826,7.600903,0,0,0,92.6,9.367805,1.609438,,0 +10,4,50,1,3,426364,0,11704.4,11.35797,1,12,1,360.0173,73.355,0,0,329.1157,762.4881,2,0,0,28,0,5,83.3,9.967326,0,92.6,1000,1000,1,1,1.609438,6.907755,0,3.931826,7.600903,0,0,0,92.6,9.367805,1.609438,6.636587,1 +10,4,50,1,1,426365,0,11704.4,30.73785,1,12,1,0,.643998,0,0,0,.643998,0,0,0,0,0,5,90.4,6.9,0,77.3,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,1,0,0,77.3,9.367805,1.609438,-.4400597,1 +10,4,50,1,2,426365,0,11704.4,31.73785,1,12,1,33.73579,0,0,0,0,33.73579,0,0,0,1,0,5,90.4,6.9,0,77.3,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,1,0,0,77.3,9.367805,1.609438,3.518559,1 +10,4,50,1,3,426365,0,11704.4,32.73785,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,90.4,6.9,0,77.3,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,1,0,0,77.3,9.367805,1.609438,,0 +10,4,50,1,1,426366,0,11704.4,3.77002,0,12,1,12.36476,3.967027,0,0,0,16.33179,0,0,0,2,0,5,83.39137,9.967326,0,92.6,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,92.6,9.367805,1.609438,2.793113,1 +10,4,50,1,2,426366,0,11704.4,4.77002,0,12,1,19.88636,0,0,0,0,19.88636,0,0,0,3,0,5,83.39137,9.967326,0,92.6,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,92.6,9.367805,1.609438,2.990034,1 +10,4,50,1,3,426366,0,11704.4,5.77002,0,12,1,5.20156,0,0,0,0,5.20156,0,0,0,1,0,5,83.39137,9.967326,0,92.6,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,92.6,9.367805,1.609438,1.648959,1 +13,4,0,1,1,426405,0,12723.75,37.37714,0,12,1,15.97115,0,44.30706,0,0,60.27821,0,0,0,0,1,4,90.4,10.3,0,77.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,77.3,9.451304,1.386294,4.09897,1 +13,4,0,1,2,426405,0,12723.75,38.37714,0,12,1,95.17046,16.99811,0,0,0,112.1686,0,0,0,3,0,4,90.4,10.3,0,77.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,77.3,9.451304,1.386294,4.720003,1 +13,4,0,1,3,426405,0,12723.75,39.37714,0,12,1,65.77807,4.594712,39.87863,140.8756,0,110.2514,0,0,8,4,1,4,90.4,10.3,0,77.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,77.3,9.451304,1.386294,4.702763,1 +13,4,0,1,4,426405,0,12723.75,40.37714,0,12,1,13.78496,1.543915,35.44703,0,0,50.77589,0,0,0,1,0,4,90.4,10.3,0,77.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,77.3,9.451304,1.386294,3.927422,1 +13,4,0,1,5,426405,0,12723.75,41.37714,0,12,1,61.44902,2.640429,40.07156,0,0,104.161,0,0,0,3,1,4,90.4,10.3,0,77.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,77.3,9.451304,1.386294,4.645938,1 +13,4,0,1,1,426406,0,12723.75,35.9425,1,13,1,36.68212,58.83565,0,0,0,95.51778,0,0,0,6,0,4,75.5,17.2,0,61.4,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,61.4,9.451304,1.386294,4.559312,1 +13,4,0,1,2,426406,0,12723.75,36.9425,1,13,1,28.88258,43.46591,0,0,0,72.34849,0,0,0,4,0,4,75.5,17.2,0,61.4,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,61.4,9.451304,1.386294,4.281495,1 +13,4,0,1,3,426406,0,12723.75,37.9425,1,13,1,43.56307,39.33247,25.57434,21.67317,0,108.4699,0,0,2,4,1,4,75.5,17.2,0,61.4,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,61.4,9.451304,1.386294,4.686472,1 +13,4,0,1,4,426406,0,12723.75,38.9425,1,13,1,69.98818,26.79795,7.081528,35.44703,0,103.8677,0,0,2,4,0,4,75.5,17.2,0,61.4,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,61.4,9.451304,1.386294,4.643118,1 +13,4,0,1,5,426406,0,12723.75,39.9425,1,13,1,50.80501,17.54562,11.44902,0,1260.59,1340.39,1,0,0,4,0,4,75.5,17.2,0,61.4,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,61.4,9.451304,1.386294,7.200716,1 +13,4,0,1,1,426407,0,12723.75,15.90144,1,13,1,20.50489,0,18.26378,0,0,38.76868,0,0,0,0,1,4,71.8,6.9,0,73.9,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,73.9,9.451304,1.386294,3.657613,1 +13,4,0,1,2,426407,0,12723.75,16.90144,1,13,1,9.469697,0,41.66667,0,0,51.13636,0,0,0,0,1,4,71.8,6.9,0,73.9,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,73.9,9.451304,1.386294,3.934496,1 +13,4,0,1,3,426407,0,12723.75,17.90144,1,13,1,21.67317,0,17.772,0,0,39.44517,0,0,0,1,1,4,71.8,6.9,0,73.9,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,73.9,9.451304,1.386294,3.674911,1 +13,4,0,1,4,426407,0,12723.75,18.90144,1,13,1,6.301693,6.478929,0,0,0,12.78062,0,0,0,1,0,4,71.8,6.9,0,73.9,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,73.9,9.451304,1.386294,2.54793,1 +13,4,0,1,5,426407,0,12723.75,19.90144,1,13,1,28.98032,37.92487,248.6583,0,0,315.5635,0,0,0,1,1,4,71.8,6.9,0,73.9,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,73.9,9.451304,1.386294,5.75436,1 +13,4,0,1,1,426408,0,12723.75,12.62697,1,13,1,5.151984,6.852138,0,0,0,12.00412,0,0,0,1,0,4,70,9.967326,0,85.2,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.451304,1.386294,2.48525,1 +13,4,0,1,2,426408,0,12723.75,13.62697,1,13,1,7.102273,0,5.681818,0,0,12.78409,0,0,0,0,1,4,70,9.967326,0,85.2,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.451304,1.386294,2.548202,1 +13,4,0,1,3,426408,0,12723.75,14.62697,1,13,1,8.669268,0,25.57434,0,0,34.24361,0,0,0,0,1,4,70,9.967326,0,85.2,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.451304,1.386294,3.5335,1 +13,4,0,1,4,426408,0,12723.75,15.62697,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,70,9.967326,0,85.2,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.451304,1.386294,,0 +13,4,0,1,5,426408,0,12723.75,16.62697,1,13,1,59.39177,13.50626,21.46691,0,0,94.36494,0,0,0,5,1,4,70,9.967326,0,85.2,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.451304,1.386294,4.54717,1 +11,4,0,1,1,426418,0,1344.868,24.56947,0,12,1,62.01248,4.368175,40.0416,0,0,106.4223,0,0,0,2,3,1,82.4,10.3,0,59.1,0,0,0,0,0,0,0,0,0,1,0,0,59.1,7.204794,0,4.667415,1 +11,4,0,1,2,426418,0,1344.868,25.56947,0,12,1,55.90062,0,0,0,275.5614,331.462,1,0,0,3,1,1,82.4,10.3,0,59.1,0,0,0,0,0,0,0,0,0,1,0,0,59.1,7.204794,0,5.803513,1 +11,4,0,1,3,426418,0,1344.868,26.56947,0,12,1,123.7928,18.59087,30.28973,0,0,172.6734,0,0,0,6,1,1,82.4,10.3,0,59.1,0,0,0,0,0,0,0,0,0,1,0,0,59.1,7.204794,0,5.151402,1 +13,4,0,0,1,426420,0,16754.25,34.62286,1,12,1,460.3967,9.27357,0,0,0,469.6703,0,0,0,6,0,2,80.9,17.2,0,67,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,67,9.726467,.6931472,6.152031,1 +13,4,0,0,2,426420,0,16754.25,35.62286,1,12,1,105.9612,0,0,0,0,105.9612,0,0,0,3,0,2,80.9,17.2,0,67,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,67,9.726467,.6931472,4.663073,1 +13,4,0,0,3,426420,0,16754.25,36.62286,1,12,1,39.48851,11.24837,0,0,0,50.73689,0,0,0,0,0,2,80.9,17.2,0,67,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,67,9.726467,.6931472,3.926653,1 +13,4,0,0,1,426421,0,16754.25,37.51951,0,13,1,64.3998,4.765585,0,0,0,69.16538,0,0,0,2,0,2,80.9,6.9,0,84.1,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,84.1,9.726467,.6931472,4.2365,1 +13,4,0,0,2,426421,0,16754.25,38.51951,0,13,1,0,3.669508,0,0,0,3.669508,0,0,0,0,0,2,80.9,6.9,0,84.1,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,84.1,9.726467,.6931472,1.300057,1 +13,4,0,0,3,426421,0,16754.25,39.51951,0,13,1,0,0,0,0,0,0,0,0,0,0,0,2,80.9,6.9,0,84.1,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,84.1,9.726467,.6931472,,0 +11,4,0,1,1,426440,0,8393.549,60.94182,1,14,1,113.0551,215.5332,0,260.1752,428.6708,757.2592,1,0,20,4,0,1,66,17.2,1,39.8,0,126,0,0,0,4.836282,0,0,0,1,0,0,39.8,9.035337,0,6.629705,1 +11,4,0,1,2,426440,0,8393.549,61.94182,1,14,1,198.982,187.8267,41.66667,227.2727,0,428.4754,0,0,19,7,1,1,66,17.2,1,39.8,0,126,0,0,0,4.836282,0,0,0,1,0,0,39.8,9.035337,0,6.060233,1 +11,4,0,1,3,426440,0,8393.549,62.94182,1,14,1,130.039,149.1461,26.0078,171.218,0,305.1929,0,0,14,6,1,1,66,17.2,1,39.8,0,126,0,0,0,4.836282,0,0,0,1,0,0,39.8,9.035337,0,5.720944,1 +11,4,0,1,1,426441,0,8025.807,6.858316,0,16,1,38.71458,0,0,0,0,38.71458,0,0,0,2,0,5,100,9.967326,0,88.9,0,0,1,0,1.609438,0,0,0,0,1,0,0,88.9,8.990542,1.609438,3.656216,1 +11,4,0,1,2,426441,0,8025.807,7.858316,0,16,1,0,0,0,0,0,0,0,0,0,0,0,5,100,9.967326,0,88.9,0,0,1,0,1.609438,0,0,0,0,1,0,0,88.9,8.990542,1.609438,,0 +11,4,0,1,3,426441,0,8025.807,8.858316,0,16,1,0,0,0,0,0,0,0,0,0,0,0,5,100,9.967326,0,88.9,0,0,1,0,1.609438,0,0,0,0,1,0,0,88.9,8.990542,1.609438,,0 +11,4,0,1,4,426441,0,8025.807,9.858316,0,16,1,3.843198,.9607994,0,0,0,4.803997,0,0,0,1,0,5,100,9.967326,0,88.9,0,0,1,0,1.609438,0,0,0,0,1,0,0,88.9,8.990542,1.609438,1.569448,1 +11,4,0,1,5,426441,0,8025.807,10.85832,0,16,1,44.60836,3.477345,4.783983,0,0,52.86969,0,0,0,6,0,5,100,9.967326,0,88.9,0,0,1,0,1.609438,0,0,0,0,1,0,0,88.9,8.990542,1.609438,3.96783,1 +11,4,0,1,1,426442,0,8025.807,15.17865,1,16,1,140.9413,24.55466,12.14575,0,0,177.6417,0,0,0,11,1,5,91,6.9,0,65.9,0,0,1,1,1.609438,0,0,0,0,1,0,0,65.9,8.990542,1.609438,5.179769,1 +11,4,0,1,2,426442,0,8025.807,16.17864,1,16,1,56.87646,44.80653,0,0,0,101.683,0,0,0,10,0,5,91,6.9,0,65.9,0,0,1,1,1.609438,0,0,0,0,1,0,0,65.9,8.990542,1.609438,4.62186,1 +11,4,0,1,3,426442,0,8025.807,17.17864,1,16,1,97.32792,37.83668,25.22445,0,0,160.3891,0,0,0,10,1,5,91,6.9,0,65.9,0,0,1,1,1.609438,0,0,0,0,1,0,0,65.9,8.990542,1.609438,5.077602,1 +11,4,0,1,4,426442,0,8025.807,18.17864,1,16,1,49.30822,48.83936,0,0,0,98.14758,0,0,0,5,0,5,91,6.9,0,65.9,0,0,0,0,1.609438,0,0,0,0,1,0,0,65.9,8.990542,1.609438,4.586472,1 +11,4,0,1,5,426442,0,8025.807,19.17864,1,16,1,75.34247,65.1844,5.261679,0,0,145.7885,0,0,0,4,0,5,91,6.9,0,65.9,0,0,0,0,1.609438,0,0,0,0,1,0,0,65.9,8.990542,1.609438,4.982157,1 +11,4,0,1,1,426443,0,8025.807,39.42779,1,16,1,0,0,0,0,0,0,0,0,0,0,0,5,89.4,6.9,0,75,0,0,0,0,1.609438,0,0,0,0,0,0,0,75,8.990542,1.609438,,0 +11,4,0,1,2,426443,0,8025.807,40.42779,1,16,1,11.18881,2.540792,0,0,0,13.7296,0,0,0,2,0,5,89.4,6.9,0,75,0,0,0,0,1.609438,0,0,0,0,0,0,0,75,8.990542,1.609438,2.619554,1 +11,4,0,1,3,426443,0,8025.807,41.42779,1,16,1,6.412997,0,0,0,0,6.412997,0,0,0,1,0,5,89.4,6.9,0,75,0,0,0,0,1.609438,0,0,0,0,0,0,0,75,8.990542,1.609438,1.858327,1 +11,4,0,1,4,426443,0,8025.807,42.42779,1,16,1,14.21983,0,21.13759,0,0,35.35742,0,0,0,2,0,5,89.4,6.9,0,75,0,0,0,0,1.609438,0,0,0,0,0,0,0,75,8.990542,1.609438,3.565508,1 +11,4,0,1,5,426443,0,8025.807,43.42779,1,16,1,11.01159,2.103969,0,0,0,13.11556,0,0,0,0,0,5,89.4,6.9,0,75,0,0,0,0,1.609438,0,0,0,0,0,0,0,75,8.990542,1.609438,2.573799,1 +11,4,0,1,1,426444,0,8025.807,41.12799,0,15,1,66.15385,0,21.25506,0,0,87.40891,0,0,0,2,1,5,91,3.4,0,90.9,0,0,0,0,1.609438,0,0,0,0,1,0,0,90.9,8.990542,1.609438,4.470597,1 +11,4,0,1,2,426444,0,8025.807,42.12799,0,15,1,46.85315,0,0,0,0,46.85315,0,0,0,2,0,5,91,3.4,0,90.9,0,0,0,0,1.609438,0,0,0,0,1,0,0,90.9,8.990542,1.609438,3.847018,1 +11,4,0,1,3,426444,0,8025.807,43.12799,0,15,1,47.86234,6.361693,25.22445,0,0,79.44848,0,0,0,3,1,5,91,3.4,0,90.9,0,0,0,0,1.609438,0,0,0,0,1,0,0,90.9,8.990542,1.609438,4.375109,1 +11,4,0,1,4,426444,0,8025.807,44.12799,0,15,1,9.607994,0,21.13759,0,2462.087,2492.833,1,0,0,0,1,5,91,3.4,0,90.9,0,0,0,0,1.609438,0,0,0,0,1,0,0,90.9,8.990542,1.609438,7.821175,1 +11,4,0,1,5,426444,0,8025.807,45.12799,0,15,1,100.8079,0,5.261679,0,0,106.0695,0,0,0,6,0,5,91,3.4,0,90.9,0,0,0,0,1.609438,0,0,0,0,1,0,0,90.9,8.990542,1.609438,4.664095,1 +11,4,0,1,1,426445,0,8025.807,13.70842,1,16,1,48.20344,1.821862,0,0,0,50.0253,0,0,0,3,0,5,96.7,9.967326,0,95.1,0,0,1,1,1.609438,0,0,0,0,1,0,0,95.1,8.990542,1.609438,3.912529,1 +11,4,0,1,2,426445,0,8025.807,14.70842,1,16,1,77.50583,0,1.864802,0,0,79.37063,0,0,0,3,0,5,96.7,9.967326,0,95.1,0,0,1,1,1.609438,0,0,0,0,1,0,0,95.1,8.990542,1.609438,4.374128,1 +11,4,0,1,3,426445,0,8025.807,15.70842,1,16,1,69.6879,40.50877,0,0,0,110.1967,0,0,0,10,0,5,96.7,9.967326,0,95.1,0,0,1,1,1.609438,0,0,0,0,1,0,0,95.1,8.990542,1.609438,4.702267,1 +11,4,0,1,4,426445,0,8025.807,16.70842,1,16,1,69.42736,19.21599,0,0,0,88.64335,0,0,0,6,0,5,96.7,9.967326,0,95.1,0,0,1,1,1.609438,0,0,0,0,1,0,0,95.1,8.990542,1.609438,4.484621,1 +11,4,0,1,5,426445,0,8025.807,17.70842,1,16,1,121.8827,68.96382,0,0,0,190.8465,0,0,0,10,1,5,96.7,9.967326,0,95.1,0,0,1,1,1.609438,0,0,0,0,1,0,0,95.1,8.990542,1.609438,5.25147,1 +13,4,0,1,1,426473,0,9412.316,1.629021,1,13,1,29.35223,0,0,0,0,29.35223,0,0,0,1,4,4,83.39137,9.967326,0,81.5,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,81.5,9.14988,1.386294,3.379368,1 +13,4,0,1,2,426473,0,9412.316,2.629021,1,13,1,54.62471,4.214452,0,0,0,58.83916,0,0,0,4,2,4,83.39137,9.967326,0,81.5,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,81.5,9.14988,1.386294,4.074808,1 +13,4,0,1,3,426473,0,9412.316,3.629021,1,13,1,14.96366,2.116289,10.68833,0,0,27.76828,0,0,0,0,3,4,83.39137,9.967326,0,81.5,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,81.5,9.14988,1.386294,3.323894,1 +13,4,0,1,1,426474,0,9412.316,7.526352,1,13,1,28.34008,18.42105,0,0,0,46.76114,0,0,0,6,0,4,81.7,9.967326,0,85.2,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.14988,1.386294,3.845052,1 +13,4,0,1,2,426474,0,9412.316,8.526352,1,13,1,11.65501,2.358974,26.10723,0,0,40.12121,0,0,0,1,0,4,81.7,9.967326,0,85.2,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.14988,1.386294,3.691905,1 +13,4,0,1,3,426474,0,9412.316,9.526352,1,13,1,5.130398,2.885849,0,0,0,8.016246,0,0,0,1,0,4,81.7,9.967326,0,85.2,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.14988,1.386294,2.08147,1 +13,4,0,1,1,426475,0,9412.316,27.52088,0,12,1,39.47368,24.48887,0,0,0,63.96255,0,0,0,4,0,4,86.7,3.4,0,86.4,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,86.4,9.14988,1.386294,4.158298,1 +13,4,0,1,2,426475,0,9412.316,28.52088,0,12,1,45.17949,3.310023,3.496504,0,0,51.98602,0,0,0,4,0,4,86.7,3.4,0,86.4,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,86.4,9.14988,1.386294,3.950975,1 +13,4,0,1,3,426475,0,9412.316,29.52088,0,12,1,12.61223,6.348867,0,0,0,18.96109,0,0,0,1,0,4,86.7,3.4,0,86.4,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,86.4,9.14988,1.386294,2.942389,1 +13,4,0,1,1,426476,0,9412.316,27.4935,1,13,1,23.6083,17.49494,0,0,0,41.10324,0,0,0,1,0,4,69.1,3.4,0,79.5,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,79.5,9.14988,1.386294,3.716087,1 +13,4,0,1,2,426476,0,9412.316,28.4935,1,13,1,23.31002,20.52214,29.37063,0,0,73.2028,0,0,0,2,1,4,69.1,3.4,0,79.5,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,79.5,9.14988,1.386294,4.293233,1 +13,4,0,1,3,426476,0,9412.316,29.4935,1,13,1,130.9064,41.54767,0,0,1347.978,1520.432,1,0,0,7,1,4,69.1,3.4,0,79.5,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,79.5,9.14988,1.386294,7.32675,1 +11,4,0,1,1,426479,0,11625.81,30.59548,0,16,1,0,0,0,0,0,0,0,0,0,0,0,2,72.9,10.3,1,56.8,0,126,0,0,.6931472,4.836282,0,0,0,0,0,0,56.8,9.361069,.6931472,,0 +11,4,0,1,2,426479,0,11625.81,31.59548,0,16,1,9.555662,0,0,0,0,9.555662,0,0,0,0,1,2,72.9,10.3,1,56.8,0,126,0,0,.6931472,4.836282,0,0,0,0,0,0,56.8,9.361069,.6931472,2.257134,1 +11,4,0,1,3,426479,0,11625.81,32.59548,0,16,1,10.97454,0,30.72871,0,0,41.70325,0,0,0,0,1,2,72.9,10.3,1,56.8,0,126,0,0,.6931472,4.836282,0,0,0,0,0,0,56.8,9.361069,.6931472,3.730579,1 +11,4,0,1,4,426479,0,11625.81,33.59548,0,16,1,100.347,3.570004,0,0,0,103.917,0,0,0,2,0,2,72.9,10.3,1,56.8,0,126,0,0,.6931472,4.836282,0,0,0,0,0,0,56.8,9.361069,.6931472,4.643593,1 +11,4,0,1,5,426479,0,11625.81,34.59548,0,16,1,226.9761,0,22.11748,0,0,249.0936,0,0,0,4,1,2,72.9,10.3,1,56.8,0,126,0,0,.6931472,4.836282,0,0,0,0,0,0,56.8,9.361069,.6931472,5.517828,1 +11,4,0,1,1,426480,0,11625.81,28.14784,1,14,1,43.88976,15.31461,20.80083,0,0,80.0052,0,0,0,1,0,2,64.9,13.8,0,81.8,0,126,0,0,.6931472,4.836282,0,0,0,0,0,0,81.8,9.361069,.6931472,4.382092,1 +11,4,0,1,2,426480,0,11625.81,29.14784,1,14,1,9.555662,0,31.53368,0,0,41.08934,0,0,0,0,1,2,64.9,13.8,0,81.8,0,126,0,0,.6931472,4.836282,0,0,0,0,0,0,81.8,9.361069,.6931472,3.715749,1 +11,4,0,1,3,426480,0,11625.81,30.14784,1,14,1,26.77788,3.599649,0,856.014,0,30.37752,0,0,39,1,0,2,64.9,13.8,0,81.8,0,126,0,0,.6931472,4.836282,0,0,0,0,0,0,81.8,9.361069,.6931472,3.413703,1 +11,4,0,1,4,426480,0,11625.81,31.14784,1,14,1,68.20901,0,5.584364,566.4141,0,73.79338,0,0,29,1,1,2,64.9,13.8,0,81.8,0,126,0,0,.6931472,4.836282,0,0,0,0,0,0,81.8,9.361069,.6931472,4.301269,1 +11,4,0,1,5,426480,0,11625.81,32.14784,1,14,1,46.29441,5.989848,0,0,0,52.28426,0,0,0,1,0,2,64.9,13.8,0,81.8,0,126,0,0,.6931472,4.836282,0,0,0,0,0,0,81.8,9.361069,.6931472,3.956696,1 +11,4,0,1,1,426492,0,4175.953,54.42574,1,9,1,88.10922,81.5662,43.64245,0,495.7238,709.0417,1,0,0,8,0,1,71.3,13.8,0,60.2,0,0,0,0,0,0,0,0,0,1,0,0,60.2,8.337337,0,6.563914,1 +11,4,0,1,2,426492,0,4175.953,55.42574,1,9,1,80.49242,103.8684,103.4612,0,0,287.822,0,0,0,6,1,1,71.3,13.8,0,60.2,0,0,0,0,0,0,0,0,0,1,0,0,60.2,8.337337,0,5.662342,1 +11,4,0,1,3,426492,0,4175.953,56.42574,1,9,1,173.9705,128.3962,54.75509,0,0,357.1218,0,0,0,17,1,1,71.3,13.8,0,60.2,0,0,0,0,0,0,0,0,0,1,0,0,60.2,8.337337,0,5.878077,1 +10,4,50,0,1,426493,0,15394.13,48.13689,0,19,1,11.84956,6.903658,17.51674,0,0,36.26996,0,0,0,0,0,4,80.9,10.3,0,63.6,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,1,0,0,63.6,9.641807,1.386294,3.59099,1 +10,4,50,0,2,426493,0,15394.13,49.13689,0,19,1,82.51421,0,0,0,596.1411,678.6553,1,0,0,4,0,4,80.9,10.3,0,63.6,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,1,0,0,63.6,9.641807,1.386294,6.520113,1 +10,4,50,0,3,426493,0,15394.13,50.13689,0,19,1,78.13177,0,0,0,0,78.13177,0,0,0,3,0,4,80.9,10.3,0,63.6,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,1,0,0,63.6,9.641807,1.386294,4.358397,1 +10,4,50,0,1,426494,0,15394.13,42.55168,1,16,1,75.14684,4.770737,35.03349,0,0,114.9511,0,0,0,8,0,4,63.3,10.3,1,48.9,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,1,0,0,48.9,9.641807,1.386294,4.744506,1 +10,4,50,0,2,426494,0,15394.13,43.55168,1,16,1,55.85227,20.43561,0,0,0,76.28788,0,0,0,4,0,4,63.3,10.3,1,48.9,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,1,0,0,48.9,9.641807,1.386294,4.334514,1 +10,4,50,0,3,426494,0,15394.13,44.55168,1,16,1,73.81881,31.96792,0,0,0,105.7867,0,0,0,4,0,4,63.3,10.3,1,48.9,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,1,0,0,48.9,9.641807,1.386294,4.661425,1 +10,4,50,0,1,426495,0,15394.13,7.00616,0,16,1,6.841834,2.833591,0,0,0,9.675425,0,0,0,1,0,4,71.7,9.967326,0,77.8,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,77.8,9.641807,1.386294,2.269589,1 +10,4,50,0,2,426495,0,15394.13,8.00616,0,16,1,91.14584,0,0,0,0,91.14584,0,0,0,3,1,4,71.7,9.967326,0,77.8,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,77.8,9.641807,1.386294,4.512461,1 +10,4,50,0,3,426495,0,15394.13,9.00616,0,16,1,7.195492,3.359341,0,0,0,10.55483,0,0,0,1,0,4,71.7,9.967326,0,77.8,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,77.8,9.641807,1.386294,2.356584,1 +10,4,50,0,1,426496,0,15394.13,16.81862,0,16,1,65.68779,6.620299,55.64142,0,0,127.9495,0,0,0,2,0,4,81.4,10.3,0,54.8,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,1,0,0,54.8,9.641807,1.386294,4.851636,1 +10,4,50,0,2,426496,0,15394.13,17.81862,0,16,1,8.285985,3.551136,0,0,30.77652,42.61364,1,0,0,0,0,4,81.4,10.3,0,54.8,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,1,0,0,54.8,9.641807,1.386294,3.752174,1 +10,4,50,0,3,426496,0,15394.13,18.81862,0,16,1,0,1.798873,0,0,0,1.798873,0,0,0,0,0,4,81.4,10.3,0,54.8,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,1,0,0,54.8,9.641807,1.386294,.5871603,1 +11,4,0,1,1,426516,0,1509.091,23.03901,1,14,1,18.20073,0,0,0,0,18.20073,0,0,0,1,0,1,93.1,3.4,0,72.7,0,0,0,0,0,0,0,0,0,0,0,0,72.7,7.319925,0,2.901462,1 +11,4,0,1,2,426516,0,1509.091,24.03901,1,14,1,46.10607,11.9398,0,0,0,58.04587,0,0,0,3,0,1,93.1,3.4,0,72.7,0,0,0,0,0,0,0,0,0,0,0,0,72.7,7.319925,0,4.061234,1 +11,4,0,1,3,426516,0,1509.091,25.03901,1,14,1,16.24232,14.3547,0,0,631.7823,662.3793,1,0,0,0,0,1,93.1,3.4,0,72.7,0,0,0,0,0,0,0,0,0,0,0,0,72.7,7.319925,0,6.495838,1 +13,4,0,0,1,426519,0,12406.45,28.69541,0,18,1,158.8355,0,0,14.04494,0,158.8355,0,0,1,1,1,2,72.3,10.3,0,87.5,300,647.16,0,0,.6931472,6.472594,1,4.564348,5.755076,0,0,0,87.5,9.426052,.6931472,5.067869,1 +13,4,0,0,2,426519,0,12406.45,29.69541,0,18,1,0,0,0,0,0,0,0,0,0,0,0,2,72.3,10.3,0,87.5,300,647.16,0,0,.6931472,6.472594,1,4.564348,5.755076,0,0,0,87.5,9.426052,.6931472,,0 +13,4,0,0,3,426519,0,12406.45,30.69541,0,18,1,119.4755,0,0,481.5133,0,119.4755,0,0,30,2,0,2,72.3,10.3,0,87.5,300,647.16,0,0,.6931472,6.472594,1,4.564348,5.755076,0,0,0,87.5,9.426052,.6931472,4.783111,1 +13,4,0,0,1,426520,0,12406.45,25.08693,1,16,1,30.64351,2.93667,0,14.04494,0,33.58018,0,0,1,4,0,2,55.3,0,0,81.8,300,647.16,0,0,.6931472,6.472594,1,4.564348,5.755076,0,0,0,81.8,9.426052,.6931472,3.513936,1 +13,4,0,0,2,426520,0,12406.45,26.08693,1,16,1,51.57056,4.946085,4.453821,1340.834,0,60.97046,0,0,52,4,0,2,55.3,0,0,81.8,300,647.16,0,0,.6931472,6.472594,1,4.564348,5.755076,0,0,0,81.8,9.426052,.6931472,4.11039,1 +13,4,0,0,3,426520,0,12406.45,27.08693,1,16,1,90.71367,8.516767,2.527945,309.5443,0,101.7584,0,0,20,2,0,2,55.3,0,0,81.8,300,647.16,0,0,.6931472,6.472594,1,4.564348,5.755076,0,0,0,81.8,9.426052,.6931472,4.622601,1 +13,4,0,1,1,426541,0,8790.029,27.03901,1,16,1,21.45046,0,0,418.7947,0,21.45046,0,0,19,1,0,1,79.8,6.9,0,80.7,150,160.08,0,0,0,5.075674,1,4.564348,5.061929,0,0,0,80.7,9.081487,0,3.065746,1 +13,4,0,1,2,426541,0,8790.029,28.03901,1,16,1,123.3005,0,0,633.6146,0,123.3005,0,0,24,7,0,1,79.8,6.9,0,80.7,150,160.08,0,0,0,5.075674,1,4.564348,5.061929,0,0,0,80.7,9.081487,0,4.814625,1 +13,4,0,1,3,426541,0,8790.029,29.03901,1,16,1,100.172,9.312124,24.93551,625.5374,379.6689,514.0886,1,1,25,6,1,1,79.8,6.9,0,80.7,150,160.08,0,0,0,5.075674,1,4.564348,5.061929,0,0,0,80.7,9.081487,0,6.242395,1 +11,4,0,1,1,426553,0,2404.692,22.34634,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,77.1,3.4,0,63.6,0,0,0,0,.6931472,0,0,0,0,0,0,0,63.6,7.785593,.6931472,,0 +11,4,0,1,2,426553,0,2404.692,23.34634,0,12,1,32.62311,0,0,0,0,32.62311,0,0,0,1,0,4,77.1,3.4,0,63.6,0,0,0,0,1.386294,0,0,0,0,0,0,0,63.6,7.785593,1.386294,3.485021,1 +11,4,0,1,3,426553,0,2404.692,24.34634,0,12,1,159.0811,7.108799,0,0,0,166.1898,0,0,0,3,21,4,77.1,3.4,0,63.6,0,0,0,0,1.386294,0,0,0,0,0,0,0,63.6,7.785593,1.386294,5.113131,1 +11,4,0,1,1,426554,0,2404.692,24.39425,1,12,1,75.47655,0,31.18496,0,1095.93,1202.591,1,0,0,1,7,2,62.2,6.9,1,47.7,0,0,0,0,.6931472,0,0,0,0,0,1,0,47.7,7.785593,.6931472,7.092234,1 +11,4,0,1,2,426554,0,2404.692,25.39425,1,12,1,11.60038,0,0,0,0,11.60038,0,0,0,1,0,4,62.2,6.9,1,47.7,0,0,0,0,1.386294,0,0,0,0,0,1,0,47.7,7.785593,1.386294,2.451038,1 +11,4,0,1,3,426554,0,2404.692,26.39425,1,12,1,71.52145,7.173819,28.89467,0,0,107.5899,0,0,0,5,2,4,62.2,6.9,1,47.7,0,0,0,0,1.386294,0,0,0,0,0,1,0,47.7,7.785593,1.386294,4.678327,1 +13,4,0,1,1,426583,0,7910.823,2.655715,1,12,1,6.18238,0,0,0,0,6.18238,0,0,0,1,0,4,83.39137,9.967326,0,77.8,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,77.8,8.976113,1.386294,1.821703,1 +13,4,0,1,2,426583,0,7910.823,3.655715,1,12,1,21.30682,6.72822,0,0,0,28.03504,0,0,0,2,0,4,83.39137,9.967326,0,77.8,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,77.8,8.976113,1.386294,3.333455,1 +13,4,0,1,3,426583,0,7910.823,4.655715,1,12,1,5.20156,2.384048,0,0,0,7.585609,0,0,0,1,0,4,83.39137,9.967326,0,77.8,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,77.8,8.976113,1.386294,2.026253,1 +13,4,0,1,4,426583,0,7910.823,5.655715,1,12,1,3.938559,2.658527,0,0,0,6.597085,0,0,0,1,0,4,83.39137,9.967326,0,77.8,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,77.8,8.976113,1.386294,1.886628,1 +13,4,0,1,5,426583,0,7910.823,6.655715,1,12,1,34.19678,0,0,0,0,34.19678,0,0,0,2,0,4,83.39137,9.967326,0,77.8,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,77.8,8.976113,1.386294,3.532131,1 +13,4,0,1,1,426584,0,7910.823,29.06502,0,11,1,73.72488,6.3627,0,0,0,80.08759,0,0,0,4,0,4,71.8,17.2,1,44.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,44.3,8.976113,1.386294,4.383121,1 +13,4,0,1,2,426584,0,7910.823,30.06502,0,11,1,33.14394,19.375,28.40909,0,507.6941,588.6221,1,0,0,2,0,4,71.8,17.2,1,44.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,44.3,8.976113,1.386294,6.377784,1 +13,4,0,1,3,426584,0,7910.823,31.06502,0,11,1,0,3.96619,0,0,0,3.96619,0,0,0,0,0,4,71.8,17.2,1,44.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,44.3,8.976113,1.386294,1.377806,1 +13,4,0,1,4,426584,0,7910.823,32.06503,0,11,1,118.1568,2.146514,23.63135,0,0,143.9346,0,0,0,3,0,4,71.8,17.2,1,44.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,44.3,8.976113,1.386294,4.969359,1 +13,4,0,1,5,426584,0,7910.823,33.06503,0,11,1,39.98211,2.325581,0,0,0,42.30769,0,0,0,1,0,4,71.8,17.2,1,44.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,44.3,8.976113,1.386294,3.744969,1 +13,4,0,1,1,426585,0,7910.823,28.03833,1,12,1,19.06234,0,0,0,0,19.06234,0,0,0,1,0,4,85.1,10.3,0,80.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,80.7,8.976113,1.386294,2.947715,1 +13,4,0,1,2,426585,0,7910.823,29.03833,1,12,1,77.41477,22.52367,24.62121,0,0,124.5597,0,0,0,6,0,4,85.1,10.3,0,80.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,80.7,8.976113,1.386294,4.824785,1 +13,4,0,1,3,426585,0,7910.823,30.03833,1,12,1,90.81058,25.01084,0,0,0,115.8214,0,0,0,5,0,4,85.1,10.3,0,80.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,80.7,8.976113,1.386294,4.752049,1 +13,4,0,1,4,426585,0,7910.823,31.03833,1,12,1,6.301693,27.56991,21.26822,0,0,55.13982,0,0,0,1,0,4,85.1,10.3,0,80.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,80.7,8.976113,1.386294,4.009872,1 +13,4,0,1,5,426585,0,7910.823,32.03833,1,12,1,39.12344,1.252236,0,0,0,40.37567,0,0,0,3,0,4,85.1,10.3,0,80.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,80.7,8.976113,1.386294,3.698227,1 +13,4,0,1,1,426586,0,7910.823,8.928131,0,12,1,48.72231,0,.1803194,0,0,48.90263,0,0,0,3,0,4,73.3,9.967326,0,92.6,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,92.6,8.976113,1.386294,3.889831,1 +13,4,0,1,2,426586,0,7910.823,9.928131,0,12,1,70.19413,3.835227,18.93939,0,0,92.96875,0,0,0,4,0,4,73.3,9.967326,0,92.6,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,92.6,8.976113,1.386294,4.532263,1 +13,4,0,1,3,426586,0,7910.823,10.92813,0,12,1,59.77026,0,0,0,0,59.77026,0,0,0,3,0,4,73.3,9.967326,0,92.6,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,92.6,8.976113,1.386294,4.090508,1 +13,4,0,1,4,426586,0,7910.823,11.92813,0,12,1,151.3785,7.581725,21.26822,0,0,180.2284,0,0,0,8,1,4,73.3,9.967326,0,92.6,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,92.6,8.976113,1.386294,5.194225,1 +13,4,0,1,5,426586,0,7910.823,12.92813,0,12,1,53.88193,.8050089,0,0,0,54.68694,0,0,0,3,0,4,73.3,9.967326,0,92.6,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,92.6,8.976113,1.386294,4.001625,1 +11,4,0,1,1,426660,0,7910.823,29.61533,0,12,1,0,98.67395,0,0,0,98.67395,0,0,0,0,0,1,69.7,24.1,0,50,0,0,0,0,0,0,0,0,0,1,0,0,50,8.976113,0,4.591821,1 +11,4,0,1,2,426660,0,7910.823,30.61533,0,12,1,0,93.93215,0,0,0,93.93215,0,0,0,0,0,1,69.7,24.1,0,50,0,0,0,0,0,0,0,0,0,1,0,0,50,8.976113,0,4.542572,1 +11,4,0,1,3,426660,0,7910.823,31.61533,0,12,1,20.08341,76.38279,0,0,0,96.4662,0,0,0,1,0,1,69.7,24.1,0,50,0,0,0,0,0,0,0,0,0,1,0,0,50,8.976113,0,4.569193,1 +11,4,0,0,1,426711,0,7333.138,15.52361,0,12,1,18.03194,0,0,0,0,18.03194,0,0,0,2,0,3,85.6,3.4,0,88.6,0,0,1,0,1.098612,0,0,0,0,0,0,0,88.6,8.900295,1.098612,2.892145,1 +11,4,0,0,2,426711,0,7333.138,16.52361,0,12,1,41.57197,3.314394,0,213.0682,0,44.88636,0,0,23,3,0,3,85.6,3.4,0,88.6,0,0,1,0,1.098612,0,0,0,0,0,0,0,88.6,8.900295,1.098612,3.804134,1 +11,4,0,0,3,426711,0,7333.138,17.52361,0,12,1,0,0,0,234.0702,0,0,0,0,27,0,0,3,85.6,3.4,0,88.6,0,0,1,0,1.098612,0,0,0,0,0,0,0,88.6,8.900295,1.098612,,0 +11,4,0,0,1,426712,0,7333.138,12.92539,1,12,1,92.7357,48.89232,40.18547,0,0,181.8135,0,0,0,10,0,3,86.7,9.967326,0,85.2,0,0,1,1,1.098612,0,0,0,0,0,0,0,85.2,8.900295,1.098612,5.202981,1 +11,4,0,0,2,426712,0,7333.138,13.92539,1,12,1,111.0322,29.97159,0,0,0,141.0038,0,0,0,9,0,3,86.7,9.967326,0,85.2,0,0,1,1,1.098612,0,0,0,0,0,0,0,85.2,8.900295,1.098612,4.948787,1 +11,4,0,0,3,426712,0,7333.138,14.92539,1,12,1,55.48331,19.8743,0,0,0,75.3576,0,0,0,5,0,3,86.7,9.967326,0,85.2,0,0,1,1,1.098612,0,0,0,0,0,0,0,85.2,8.900295,1.098612,4.322245,1 +11,4,0,0,1,426713,0,7333.138,38.45859,1,12,1,470.1803,0,27.82071,0,0,498.001,0,0,0,4,1,3,90.4,10.3,0,77.3,0,0,0,0,1.098612,0,0,0,0,0,0,0,77.3,8.900295,1.098612,6.210602,1 +11,4,0,0,2,426713,0,7333.138,39.45859,1,12,1,21.61458,0,0,0,0,21.61458,0,0,0,1,0,3,90.4,10.3,0,77.3,0,0,0,0,1.098612,0,0,0,0,0,0,0,77.3,8.900295,1.098612,3.073368,1 +11,4,0,0,3,426713,0,7333.138,40.45859,1,12,1,10.83658,0,0,0,0,10.83658,0,0,0,0,1,3,90.4,10.3,0,77.3,0,0,0,0,1.098612,0,0,0,0,0,0,0,77.3,8.900295,1.098612,2.382928,1 +11,4,0,1,1,426739,0,8882.698,45.42368,1,12,1,88.35546,25.89377,0,0,0,114.2492,0,0,0,4,0,2,92,3.4,0,77.3,0,291.84,0,0,.6931472,5.676206,0,0,0,0,0,0,77.3,9.091973,.6931472,4.738382,1 +11,4,0,1,2,426739,0,8882.698,46.42368,1,12,1,62.35349,96.56821,37.97468,0,0,196.8964,0,0,0,3,1,2,92,3.4,0,77.3,0,291.84,0,0,.6931472,5.676206,0,0,0,0,0,0,77.3,9.091973,.6931472,5.282678,1 +11,4,0,1,3,426739,0,8882.698,47.42368,1,12,1,77.38607,127.6612,12.54084,0,0,217.5881,0,0,0,6,0,2,92,3.4,0,77.3,0,291.84,0,0,.6931472,5.676206,0,0,0,0,0,0,77.3,9.091973,.6931472,5.382604,1 +11,4,0,1,4,426739,0,8882.698,48.42368,1,12,1,75.90151,77.90229,32.95851,0,0,186.7623,0,0,0,6,1,2,92,3.4,0,77.3,0,291.84,0,0,.6931472,5.676206,0,0,0,0,0,0,77.3,9.091973,.6931472,5.229837,1 +11,4,0,1,5,426739,0,8882.698,49.42368,1,12,1,51.66313,76.85067,0,0,0,128.5138,0,0,0,5,0,2,92,3.4,0,77.3,0,291.84,0,0,.6931472,5.676206,0,0,0,0,0,0,77.3,9.091973,.6931472,4.856036,1 +11,4,0,1,1,426740,0,8882.698,50.39562,0,12,1,44.43309,1.659857,25.02554,0,0,71.11848,0,0,0,2,1,2,89.9,3.4,0,71.6,0,291.84,0,0,.6931472,5.676206,0,0,0,0,0,0,71.6,9.091973,.6931472,4.264347,1 +11,4,0,1,2,426740,0,8882.698,51.39562,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,89.9,3.4,0,71.6,0,291.84,0,0,.6931472,5.676206,0,0,0,0,0,0,71.6,9.091973,.6931472,,0 +11,4,0,1,3,426740,0,8882.698,52.39562,0,12,1,100.8169,.855546,36.54342,0,0,138.2158,0,0,0,5,1,2,89.9,3.4,0,71.6,0,291.84,0,0,.6931472,5.676206,0,0,0,0,0,0,71.6,9.091973,.6931472,4.928816,1 +11,4,0,1,4,426740,0,8882.698,53.39562,0,12,1,50.01939,0,0,0,0,50.01939,0,0,0,3,0,2,89.9,3.4,0,71.6,0,291.84,0,0,.6931472,5.676206,0,0,0,0,0,0,71.6,9.091973,.6931472,3.912411,1 +11,4,0,1,5,426740,0,8882.698,54.39562,0,12,1,61.92498,8.619958,31.84713,0,0,102.3921,0,0,0,7,1,2,89.9,3.4,0,71.6,0,291.84,0,0,.6931472,5.676206,0,0,0,0,0,0,71.6,9.091973,.6931472,4.628809,1 +14,4,95,0,1,426793,0,11716.72,13.60164,0,12,1,50.48944,3.21999,27.82071,0,0,81.53014,0,0,0,3,1,8,50,9.967326,0,77.8,1000,1000,1,0,2.079442,6.907755,0,4.564348,6.959049,0,0,0,77.8,9.368857,2.079442,4.400973,1 +14,4,95,0,2,426793,0,11716.72,14.60164,0,12,1,38.11553,0,0,0,0,38.11553,0,0,0,2,0,8,50,9.967326,0,77.8,1000,1000,1,0,2.079442,6.907755,0,4.564348,6.959049,0,0,0,77.8,9.368857,2.079442,3.640622,1 +14,4,95,0,3,426793,0,11716.72,15.60164,0,12,1,10.83658,0,25.57434,0,0,36.41092,0,0,0,0,1,8,50,9.967326,0,77.8,1000,1000,1,0,2.079442,6.907755,0,4.564348,6.959049,0,0,0,77.8,9.368857,2.079442,3.594869,1 +14,4,95,0,1,426794,0,11716.72,40.47912,0,8,1,0,0,0,0,0,0,0,0,0,0,0,8,87.8,3.4,0,84.1,1000,1000,0,0,2.079442,6.907755,0,4.564348,6.959049,0,0,0,84.1,9.368857,2.079442,,0 +14,4,95,0,2,426794,0,11716.72,41.47912,0,8,1,9.469697,0,38.35227,0,0,47.82197,0,0,0,0,1,8,87.8,3.4,0,84.1,1000,1000,0,0,2.079442,6.907755,0,4.564348,6.959049,0,0,0,84.1,9.368857,2.079442,3.867485,1 +14,4,95,0,3,426794,0,11716.72,42.47912,0,8,1,0,0,0,0,0,0,0,0,0,0,0,8,87.8,3.4,0,84.1,1000,1000,0,0,2.079442,6.907755,0,4.564348,6.959049,0,0,0,84.1,9.368857,2.079442,,0 +14,4,95,0,1,426795,0,11716.72,31.62491,1,12,1,75.21896,4.739825,29.36631,0,1314.338,1423.663,2,0,0,7,1,8,60.1,13.8,0,80.7,1000,1000,0,0,2.079442,6.907755,0,4.564348,6.959049,0,0,0,80.7,9.368857,2.079442,7.260988,1 +14,4,95,0,2,426795,0,11716.72,32.62492,1,12,1,41.19318,4.6875,0,0,0,45.88068,0,0,0,3,0,8,60.1,13.8,0,80.7,1000,1000,0,0,2.079442,6.907755,0,4.564348,6.959049,0,0,0,80.7,9.368857,2.079442,3.826044,1 +14,4,95,0,3,426795,0,11716.72,33.62492,1,12,1,23.84048,0,29.90897,0,0,53.74946,0,0,0,1,1,8,60.1,13.8,0,80.7,1000,1000,0,0,2.079442,6.907755,0,4.564348,6.959049,0,0,0,80.7,9.368857,2.079442,3.984334,1 +14,4,95,0,1,426796,0,11716.72,10.30801,0,12,1,51.932,0,0,0,0,51.932,0,0,0,4,0,8,86.7,9.967326,0,66.7,1000,1000,1,0,2.079442,6.907755,0,4.564348,6.959049,0,0,0,66.7,9.368857,2.079442,3.949935,1 +14,4,95,0,2,426796,0,11716.72,11.30801,0,12,1,2.367424,0,0,0,0,2.367424,0,0,0,1,0,8,86.7,9.967326,0,66.7,1000,1000,1,0,2.079442,6.907755,0,4.564348,6.959049,0,0,0,66.7,9.368857,2.079442,.8618026,1 +14,4,95,0,3,426796,0,11716.72,12.30801,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,86.7,9.967326,0,66.7,1000,1000,1,0,2.079442,6.907755,0,4.564348,6.959049,0,0,0,66.7,9.368857,2.079442,,0 +14,4,95,0,1,426797,0,11716.72,14.6475,0,12,1,2.575992,0,0,0,0,2.575992,0,0,0,1,0,8,77.1,3.4,0,92,1000,1000,1,0,2.079442,6.907755,0,4.564348,6.959049,0,0,0,92,9.368857,2.079442,.9462346,1 +14,4,95,0,2,426797,0,11716.72,15.6475,0,12,1,31.83239,1.183712,0,0,0,33.0161,0,0,0,2,0,8,77.1,3.4,0,92,1000,1000,1,0,2.079442,6.907755,0,4.564348,6.959049,0,0,0,92,9.368857,2.079442,3.496995,1 +14,4,95,0,3,426797,0,11716.72,16.6475,0,12,1,73.15995,0,0,0,0,73.15995,0,0,0,3,0,8,77.1,3.4,0,92,1000,1000,1,0,2.079442,6.907755,0,4.564348,6.959049,0,0,0,92,9.368857,2.079442,4.292648,1 +14,4,95,0,1,426798,0,11716.72,8.588638,1,12,1,12.87996,0,0,0,0,12.87996,0,0,0,1,0,8,90,9.967326,0,96.3,1000,1000,1,1,2.079442,6.907755,0,4.564348,6.959049,0,0,0,96.3,9.368857,2.079442,2.555673,1 +14,4,95,0,2,426798,0,11716.72,9.588638,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,90,9.967326,0,96.3,1000,1000,1,1,2.079442,6.907755,0,4.564348,6.959049,0,0,0,96.3,9.368857,2.079442,,0 +14,4,95,0,3,426798,0,11716.72,10.58864,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,90,9.967326,0,96.3,1000,1000,1,1,2.079442,6.907755,0,4.564348,6.959049,0,0,0,96.3,9.368857,2.079442,,0 +14,4,95,0,1,426799,0,11716.72,16.46817,1,12,1,10.30397,0,0,0,0,10.30397,0,0,0,0,1,8,67,3.4,0,56.8,1000,1000,1,1,2.079442,6.907755,0,4.564348,6.959049,0,0,0,56.8,9.368857,2.079442,2.332529,1 +14,4,95,0,2,426799,0,11716.72,17.46817,1,12,1,104.285,9.682765,7.102273,0,0,121.0701,0,0,0,1,4,8,67,3.4,0,56.8,1000,1000,1,1,2.079442,6.907755,0,4.564348,6.959049,0,0,0,56.8,9.368857,2.079442,4.79637,1 +14,4,95,0,3,426799,0,11716.72,18.46817,1,12,1,34.52536,8.409189,0,0,0,42.93455,0,0,0,2,0,8,67,3.4,0,56.8,1000,1000,0,0,2.079442,6.907755,0,4.564348,6.959049,0,0,0,56.8,9.368857,2.079442,3.759677,1 +14,4,95,0,1,426800,0,11716.72,4.202601,0,12,1,5.151984,0,0,0,0,5.151984,0,0,0,1,0,8,83.39137,9.967326,0,81.5,1000,1000,1,0,2.079442,6.907755,0,4.564348,6.959049,0,0,0,81.5,9.368857,2.079442,1.639382,1 +14,4,95,0,2,426800,0,11716.72,5.202601,0,12,1,13.25758,8.049242,0,0,0,21.30682,0,0,0,2,0,8,83.39137,9.967326,0,81.5,1000,1000,1,0,2.079442,6.907755,0,4.564348,6.959049,0,0,0,81.5,9.368857,2.079442,3.059027,1 +14,4,95,0,3,426800,0,11716.72,6.202601,0,12,1,21.67317,11.70351,29.47551,0,0,62.85219,0,0,0,2,1,8,83.39137,9.967326,0,81.5,1000,1000,1,0,2.079442,6.907755,0,4.564348,6.959049,0,0,0,81.5,9.368857,2.079442,4.140786,1 +13,4,0,1,1,426809,0,8914.956,12.2245,0,17,1,0,2.318393,0,0,0,2.318393,0,0,0,0,0,4,81.7,9.967326,0,100,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,100,9.095598,1.386294,.8408741,1 +13,4,0,1,2,426809,0,8914.956,13.2245,0,17,1,11.83712,2.130682,28.40909,0,0,42.37689,0,0,0,1,0,4,81.7,9.967326,0,100,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,100,9.095598,1.386294,3.746603,1 +13,4,0,1,3,426809,0,8914.956,14.2245,0,17,1,19.15908,3.250975,0,0,0,22.41006,0,0,0,3,0,4,81.7,9.967326,0,100,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,100,9.095598,1.386294,3.10951,1 +13,4,0,1,1,426810,0,8914.956,6.893909,0,17,1,19.72179,0,27.30551,0,0,47.02731,0,0,0,2,0,4,91.7,9.967326,0,88.9,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,88.9,9.095598,1.386294,3.850729,1 +13,4,0,1,2,426810,0,8914.956,7.893909,0,17,1,4.734848,3.787879,0,0,0,8.522727,0,0,0,1,0,4,91.7,9.967326,0,88.9,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,88.9,9.095598,1.386294,2.142736,1 +13,4,0,1,3,426810,0,8914.956,8.893909,0,17,1,0,0,0,0,0,0,0,0,0,0,0,4,91.7,9.967326,0,88.9,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,88.9,9.095598,1.386294,,0 +13,4,0,1,1,426811,0,8914.956,51.02259,0,11,1,76.91911,60.92221,0,0,0,137.8413,0,0,0,5,0,4,66.1,3.4,1,33,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,33,9.095598,1.386294,4.926103,1 +13,4,0,1,2,426811,0,8914.956,52.02259,0,11,1,48.5322,8.285985,24.62121,0,0,81.43939,0,0,0,2,0,4,66.1,3.4,1,33,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,33,9.095598,1.386294,4.399859,1 +13,4,0,1,3,426811,0,8914.956,53.02259,0,11,1,98.39619,9.752926,10.40312,0,0,118.5522,0,0,0,3,4,4,66.1,3.4,1,33,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,33,9.095598,1.386294,4.775353,1 +13,4,0,1,1,426812,0,8914.956,39.0308,1,17,1,26.90366,0,6.18238,0,0,33.08604,0,0,0,1,0,4,84,6.9,0,85.2,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.095598,1.386294,3.499111,1 +13,4,0,1,2,426812,0,8914.956,40.0308,1,17,1,16.57197,0,0,0,0,16.57197,0,0,0,1,0,4,84,6.9,0,85.2,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.095598,1.386294,2.807713,1 +13,4,0,1,3,426812,0,8914.956,41.0308,1,17,1,37.92804,1.30039,0,0,0,39.22844,0,0,0,3,0,4,84,6.9,0,85.2,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.095598,1.386294,3.669402,1 +13,4,0,1,1,426824,0,8197.067,27.84394,0,12,1,85.41988,1.056157,0,0,0,86.47604,0,0,0,4,0,2,79.3,3.4,0,70.5,300,402.84,0,0,.6931472,5.998539,1,4.564348,5.755076,1,0,0,70.5,9.011654,.6931472,4.459867,1 +13,4,0,1,2,426824,0,8197.067,28.84394,0,12,1,9.469697,0,17.99242,0,0,27.46212,0,0,0,0,1,2,79.3,3.4,0,70.5,300,402.84,0,0,.6931472,5.998539,1,4.564348,5.755076,1,0,0,70.5,9.011654,.6931472,3.312808,1 +13,4,0,1,3,426824,0,8197.067,29.84394,0,12,1,6.935414,1.733853,0,0,0,8.669268,0,0,0,1,0,2,79.3,3.4,0,70.5,300,402.84,0,0,.6931472,5.998539,1,4.564348,5.755076,1,0,0,70.5,9.011654,.6931472,2.159784,1 +13,4,0,1,1,426825,0,8197.067,27.28816,1,12,1,19.57754,0,0,0,0,19.57754,0,0,0,1,1,2,70.2,10.3,0,78.4,300,402.84,0,0,.6931472,5.998539,1,4.564348,5.755076,0,0,0,78.4,9.011654,.6931472,2.974383,1 +13,4,0,1,2,426825,0,8197.067,28.28816,1,12,1,45.45454,0,31.72348,0,0,77.17803,0,0,0,1,0,2,70.2,10.3,0,78.4,300,402.84,0,0,.6931472,5.998539,1,4.564348,5.755076,0,0,0,78.4,9.011654,.6931472,4.346115,1 +13,4,0,1,3,426825,0,8197.067,29.28816,1,12,1,19.61855,0,0,0,0,19.61855,0,0,0,0,0,2,70.2,10.3,0,78.4,300,402.84,0,0,.6931472,5.998539,1,4.564348,5.755076,0,0,0,78.4,9.011654,.6931472,2.976476,1 +11,4,0,0,1,426830,0,10873.9,9.467488,0,12,1,14.81103,1.91522,0,0,0,16.72625,0,0,0,3,0,4,85,9.967326,0,96.3,0,0,1,0,1.386294,0,0,0,0,0,0,0,96.3,9.294212,1.386294,2.816979,1 +11,4,0,0,2,426830,0,10873.9,10.46749,0,12,1,8.67323,6.962025,0,0,0,15.63526,0,0,0,1,0,4,85,9.967326,0,96.3,0,0,1,0,1.386294,0,0,0,0,0,0,0,96.3,9.294212,1.386294,2.749528,1 +11,4,0,0,3,426830,0,10873.9,11.46749,0,12,1,12.57524,7.093723,0,0,0,19.66896,0,0,0,1,0,4,85,9.967326,0,96.3,0,0,1,0,1.386294,0,0,0,0,0,0,0,96.3,9.294212,1.386294,2.979042,1 +11,4,0,0,1,426831,0,10873.9,33.9165,1,12,1,18.43718,2.681308,0,0,0,21.11849,0,0,0,2,0,4,79.8,13.8,0,67,0,0,0,0,1.386294,0,0,0,0,0,0,0,67,9.294212,1.386294,3.050149,1 +11,4,0,0,2,426831,0,10873.9,34.9165,1,12,1,24.84763,1.172058,25.31646,0,0,51.33615,0,0,0,1,0,4,79.8,13.8,0,67,0,0,0,0,1.386294,0,0,0,0,0,0,0,67,9.294212,1.386294,3.938395,1 +11,4,0,0,3,426831,0,10873.9,35.9165,1,12,1,47.82889,0,8.383491,0,0,56.21238,0,0,0,3,0,4,79.8,13.8,0,67,0,0,0,0,1.386294,0,0,0,0,0,0,0,67,9.294212,1.386294,4.029137,1 +11,4,0,0,1,426832,0,10873.9,33.21287,0,16,1,5.107252,0,34.72932,0,0,39.83657,0,0,0,1,0,4,79.3,0,0,60.2,0,0,0,0,1.386294,0,0,0,0,0,0,0,60.2,9.294212,1.386294,3.684785,1 +11,4,0,0,2,426832,0,10873.9,34.21287,0,16,1,107.1261,5.133615,0,0,0,112.2597,0,0,0,1,0,4,79.3,0,0,60.2,0,0,0,0,1.386294,0,0,0,0,0,0,0,60.2,9.294212,1.386294,4.720815,1 +11,4,0,0,3,426832,0,10873.9,35.21287,0,16,1,65.02579,0,33.96389,0,0,98.98969,0,0,0,3,0,4,79.3,0,0,60.2,0,0,0,0,1.386294,0,0,0,0,0,0,0,60.2,9.294212,1.386294,4.595016,1 +11,4,0,0,1,426833,0,10873.9,6.702259,1,12,1,8.682329,1.91522,0,0,0,10.59755,0,0,0,2,0,4,85,9.967326,0,100,0,0,1,1,1.386294,0,0,0,0,0,0,0,100,9.294212,1.386294,2.360623,1 +11,4,0,0,2,426833,0,10873.9,7.702259,1,12,1,5.625879,0,0,0,0,5.625879,0,0,0,1,0,4,85,9.967326,0,100,0,0,1,1,1.386294,0,0,0,0,0,0,0,100,9.294212,1.386294,1.727377,1 +11,4,0,0,3,426833,0,10873.9,8.702259,1,12,1,26.46174,0,0,0,0,26.46174,0,0,0,2,0,4,85,9.967326,0,100,0,0,1,1,1.386294,0,0,0,0,0,0,0,100,9.294212,1.386294,3.2757,1 +13,4,0,1,1,426845,0,16171.85,34.19028,0,21,1,19.06234,3.348789,26.79031,0,0,49.20144,0,0,0,1,1,1,55.9,10.3,0,69.3,150,291.84,0,0,0,5.676206,1,4.564348,5.061929,0,0,0,69.3,9.691089,0,3.895923,1 +13,4,0,1,2,426845,0,16171.85,35.19028,0,21,1,28.71686,7.19697,14.20455,0,0,50.11837,0,0,0,3,0,1,55.9,10.3,0,69.3,150,291.84,0,0,0,5.676206,1,4.564348,5.061929,0,0,0,69.3,9.691089,0,3.914388,1 +13,4,0,1,3,426845,0,16171.85,36.19028,0,21,1,132.6398,7.585609,26.87473,0,953.8318,1120.932,2,0,0,6,1,1,55.9,10.3,0,69.3,150,291.84,0,0,0,5.676206,1,4.564348,5.061929,0,0,0,69.3,9.691089,0,7.021916,1 +14,4,95,1,1,426846,0,3354.252,26.39288,0,14,1,31.62955,3.689271,0,0,0,35.31882,0,0,0,3,0,1,55.3,0,0,68.2,150,0,0,0,0,0,0,4.564348,5.061929,0,0,0,68.2,8.118282,0,3.564416,1 +14,4,95,1,2,426846,0,3354.252,27.39288,0,14,1,17.94872,0,0,0,0,17.94872,0,0,0,1,0,1,55.3,0,0,68.2,150,0,0,0,0,0,0,4.564348,5.061929,0,0,0,68.2,8.118282,0,2.887519,1 +14,4,95,1,3,426846,0,3354.252,28.39288,0,14,1,0,0,0,0,0,0,0,0,0,0,0,1,55.3,0,0,68.2,150,0,0,0,0,0,0,4.564348,5.061929,0,0,0,68.2,8.118282,0,,0 +14,4,95,0,1,426847,0,1534.897,26.23135,1,12,1,25.30364,0,0,0,0,25.30364,0,0,0,2,0,1,46.3,6.9,0,78.4,210,210,0,0,0,5.347107,0,4.564348,5.398401,0,0,0,78.4,7.33687,0,3.230948,1 +14,4,95,0,2,426847,0,1534.897,27.23135,1,12,1,26.34033,6.083916,0,0,0,32.42424,0,0,0,2,0,1,46.3,6.9,0,78.4,210,210,0,0,0,5.347107,0,4.564348,5.398401,0,0,0,78.4,7.33687,0,3.478906,1 +14,4,95,0,3,426847,0,1534.897,28.23135,1,12,1,161.2313,.9448482,0,0,0,162.1761,0,0,0,7,0,1,46.3,6.9,0,78.4,210,210,0,0,0,5.347107,0,4.564348,5.398401,0,0,0,78.4,7.33687,0,5.088683,1 +16,4,95,1,1,426849,0,11582.99,33.6345,0,16,1,0,2.298264,0,0,0,2.298264,0,0,0,0,0,5,79.3,6.9,0,76.1,1000,975,0,0,1.609438,6.882438,0,4.564348,6.959049,0,0,0,76.1,9.357379,1.609438,.8321539,1 +16,4,95,1,2,426849,0,11582.99,34.6345,0,16,1,0,0,0,0,0,0,0,0,0,0,0,5,79.3,6.9,0,76.1,1000,975,0,0,1.609438,6.882438,0,4.564348,6.959049,0,0,0,76.1,9.357379,1.609438,,0 +16,4,95,1,3,426849,0,11582.99,35.6345,0,16,1,0,0,0,0,0,0,0,0,0,0,0,5,79.3,6.9,0,76.1,1000,975,0,0,1.609438,6.882438,0,4.564348,6.959049,0,0,0,76.1,9.357379,1.609438,,0 +16,4,95,1,4,426849,0,11582.99,36.6345,0,16,1,0,0,0,0,0,0,0,0,0,0,0,5,79.3,6.9,0,76.1,1000,975,0,0,1.609438,6.882438,0,4.564348,6.959049,0,0,0,76.1,9.357379,1.609438,,0 +16,4,95,1,5,426849,0,11582.99,37.6345,0,16,1,0,0,0,0,0,0,0,0,0,0,0,5,79.3,6.9,0,76.1,1000,975,0,0,1.609438,6.882438,0,4.564348,6.959049,0,0,0,76.1,9.357379,1.609438,,0 +16,4,95,1,1,426850,0,11582.99,5.456537,0,13,1,17.36466,3.830439,0,0,0,21.1951,0,0,0,3,0,5,91.7,9.967326,0,88.9,1000,975,1,0,1.609438,6.882438,0,4.564348,6.959049,0,0,0,88.9,9.357379,1.609438,3.05377,1 +16,4,95,1,2,426850,0,11582.99,6.456537,0,13,1,16.87764,0,0,0,0,16.87764,0,0,0,2,0,5,91.7,9.967326,0,88.9,1000,975,1,0,1.609438,6.882438,0,4.564348,6.959049,0,0,0,88.9,9.357379,1.609438,2.825989,1 +16,4,95,1,3,426850,0,11582.99,7.456537,0,13,1,0,0,0,0,0,0,0,0,0,0,0,5,91.7,9.967326,0,88.9,1000,975,1,0,1.609438,6.882438,0,4.564348,6.959049,0,0,0,88.9,9.357379,1.609438,,0 +16,4,95,1,4,426850,0,11582.99,8.456536,0,13,1,7.367197,0,0,0,0,7.367197,0,0,0,1,0,5,91.7,9.967326,0,88.9,1000,975,1,0,1.609438,6.882438,0,4.564348,6.959049,0,0,0,88.9,9.357379,1.609438,1.997037,1 +16,4,95,1,5,426850,0,11582.99,9.456536,0,13,1,0,0,0,0,0,0,0,0,0,0,0,5,91.7,9.967326,0,88.9,1000,975,1,0,1.609438,6.882438,0,4.564348,6.959049,0,0,0,88.9,9.357379,1.609438,,0 +16,4,95,1,1,426851,0,11582.99,8.944558,0,13,1,0,0,0,0,0,0,0,0,0,0,0,5,95,9.967326,0,96.3,1000,975,1,0,1.609438,6.882438,0,4.564348,6.959049,0,0,0,96.3,9.357379,1.609438,,0 +16,4,95,1,2,426851,0,11582.99,9.944558,0,13,1,8.907641,2.578528,0,0,0,11.48617,0,0,0,2,0,5,95,9.967326,0,96.3,1000,975,1,0,1.609438,6.882438,0,4.564348,6.959049,0,0,0,96.3,9.357379,1.609438,2.441144,1 +16,4,95,1,3,426851,0,11582.99,10.94456,0,13,1,6.448839,0,0,0,0,6.448839,0,0,0,1,0,5,95,9.967326,0,96.3,1000,975,1,0,1.609438,6.882438,0,4.564348,6.959049,0,0,0,96.3,9.357379,1.609438,1.8639,1 +16,4,95,1,4,426851,0,11582.99,11.94456,0,13,1,25.97906,2.617294,0,0,0,28.59636,0,0,0,3,0,5,95,9.967326,0,96.3,1000,975,1,0,1.609438,6.882438,0,4.564348,6.959049,0,0,0,96.3,9.357379,1.609438,3.353279,1 +16,4,95,1,5,426851,0,11582.99,12.94456,0,13,1,0,0,0,0,0,0,0,0,0,0,0,5,95,9.967326,0,96.3,1000,975,1,0,1.609438,6.882438,0,4.564348,6.959049,0,0,0,96.3,9.357379,1.609438,,0 +16,4,95,1,1,426852,0,11582.99,32.27926,1,13,1,0,0,0,0,0,0,0,0,0,0,0,5,56.9,10.3,0,63.6,1000,975,0,0,1.609438,6.882438,0,4.564348,6.959049,1,0,0,63.6,9.357379,1.609438,,0 +16,4,95,1,2,426852,0,11582.99,33.27926,1,13,1,337.2949,0,0,0,0,337.2949,0,0,0,7,0,5,56.9,10.3,0,63.6,1000,975,0,0,1.609438,6.882438,0,4.564348,6.959049,1,0,0,63.6,9.357379,1.609438,5.820958,1 +16,4,95,1,3,426852,0,11582.99,34.27926,1,13,1,6.878762,7.201204,0,171.969,0,14.07997,0,0,10,0,0,5,56.9,10.3,0,63.6,1000,975,0,0,1.609438,6.882438,0,4.564348,6.959049,1,0,0,63.6,9.357379,1.609438,2.644753,1 +16,4,95,1,4,426852,0,11582.99,35.27926,1,13,1,62.03955,7.076386,0,0,461.8263,530.9422,1,0,0,2,0,5,56.9,10.3,0,63.6,1000,975,0,0,1.609438,6.882438,0,4.564348,6.959049,1,0,0,63.6,9.357379,1.609438,6.274653,1 +16,4,95,1,5,426852,0,11582.99,36.27926,1,13,1,0,3.007785,0,0,0,3.007785,0,0,0,0,0,5,56.9,10.3,0,63.6,1000,975,0,0,1.609438,6.882438,0,4.564348,6.959049,1,0,0,63.6,9.357379,1.609438,1.101204,1 +16,4,95,1,1,426853,0,11582.99,6.989733,0,13,1,7.150153,4.085802,0,0,0,11.23596,0,0,0,1,0,5,85,9.967326,0,92.6,1000,975,1,0,1.609438,6.882438,0,4.564348,6.959049,0,0,0,92.6,9.357379,1.609438,2.419119,1 +16,4,95,1,2,426853,0,11582.99,7.989733,0,13,1,0,0,0,0,0,0,0,0,0,0,0,5,85,9.967326,0,92.6,1000,975,1,0,1.609438,6.882438,0,4.564348,6.959049,0,0,0,92.6,9.357379,1.609438,,0 +16,4,95,1,3,426853,0,11582.99,8.989733,0,13,1,0,0,0,0,0,0,0,0,0,0,0,5,85,9.967326,0,92.6,1000,975,1,0,1.609438,6.882438,0,4.564348,6.959049,0,0,0,92.6,9.357379,1.609438,,0 +16,4,95,1,4,426853,0,11582.99,9.989733,0,13,1,7.367197,0,0,0,0,7.367197,0,0,0,1,0,5,85,9.967326,0,92.6,1000,975,1,0,1.609438,6.882438,0,4.564348,6.959049,0,0,0,92.6,9.357379,1.609438,1.997037,1 +16,4,95,1,5,426853,0,11582.99,10.98973,0,13,1,0,0,0,0,0,0,0,0,0,0,0,5,85,9.967326,0,92.6,1000,975,1,0,1.609438,6.882438,0,4.564348,6.959049,0,0,0,92.6,9.357379,1.609438,,0 +11,4,0,0,1,426860,0,11008.21,29.15264,1,12,1,37.60948,3.709428,26.17208,0,0,67.49098,0,0,0,3,0,3,89.9,13.8,0,77.3,0,372,0,0,1.098612,5.918894,0,0,0,0,0,0,77.3,9.306487,1.098612,4.211994,1 +11,4,0,0,2,426860,0,11008.21,30.15264,1,12,1,0,20.47822,0,0,0,20.47822,0,0,0,0,0,3,89.9,13.8,0,77.3,0,372,0,0,1.098612,5.918894,0,0,0,0,0,0,77.3,9.306487,1.098612,3.019362,1 +11,4,0,0,3,426860,0,11008.21,31.15264,1,12,1,13.0039,0,13.0039,0,922.384,948.3918,1,0,0,0,1,3,89.9,13.8,0,77.3,0,372,0,0,1.098612,5.918894,0,0,0,0,0,0,77.3,9.306487,1.098612,6.854768,1 +11,4,0,0,1,426861,0,11008.21,5.568789,1,12,1,149.1499,76.04843,0,0,0,225.1983,0,0,0,16,0,3,91.7,9.967326,0,77.8,0,372,1,1,1.098612,5.918894,0,0,0,0,0,0,77.8,9.306487,1.098612,5.416982,1 +11,4,0,0,2,426861,0,11008.21,6.568789,1,12,1,96.59091,29.26136,0,0,0,125.8523,0,0,0,40,0,3,91.7,9.967326,0,77.8,0,372,1,1,1.098612,5.918894,0,0,0,0,0,0,77.8,9.306487,1.098612,4.835109,1 +11,4,0,0,3,426861,0,11008.21,7.568789,1,12,1,56.7837,42.63112,0,0,0,99.41483,0,0,0,19,0,3,91.7,9.967326,0,77.8,0,372,1,1,1.098612,5.918894,0,0,0,0,0,0,77.8,9.306487,1.098612,4.599301,1 +11,4,0,0,1,426862,0,11008.21,35.08829,0,12,1,76.67697,23.61154,42.76146,0,0,143.05,0,0,0,7,0,3,88.3,17.2,0,62.5,0,372,0,0,1.098612,5.918894,0,0,0,0,0,1,62.5,9.306487,1.098612,4.963194,1 +11,4,0,0,2,426862,0,11008.21,36.08829,0,12,1,162.4053,34.84848,8.522727,0,0,205.7765,0,0,0,5,0,3,88.3,17.2,0,62.5,0,372,0,0,1.098612,5.918894,0,0,0,0,0,1,62.5,9.306487,1.098612,5.326791,1 +11,4,0,0,3,426862,0,11008.21,37.08829,0,12,1,9.969658,37.92804,0,0,0,47.8977,0,0,0,0,0,3,88.3,17.2,0,62.5,0,372,0,0,1.098612,5.918894,0,0,0,0,0,1,62.5,9.306487,1.098612,3.869067,1 +13,4,0,0,1,426889,0,12329.03,27.90417,0,17,1,23.18393,1.725914,0,0,0,24.90984,0,0,0,1,1,2,84.6,3.4,0,76.1,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,76.1,9.419793,.6931472,3.215263,1 +13,4,0,0,2,426889,0,12329.03,28.90417,0,17,1,0,0,0,587.1212,0,0,0,0,31,0,0,2,84.6,3.4,0,76.1,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,76.1,9.419793,.6931472,,0 +13,4,0,0,3,426889,0,12329.03,29.90417,0,17,1,85.39228,0,24.27395,381.4478,0,109.6662,0,0,20,7,0,2,84.6,3.4,0,76.1,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,76.1,9.419793,.6931472,4.697442,1 +13,4,0,0,1,426890,0,12329.03,27.36756,1,17,1,21.12313,2.575992,0,0,0,23.69912,0,0,0,3,0,2,84,6.9,0,82.1,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,82.1,9.419793,.6931472,3.165438,1 +13,4,0,0,2,426890,0,12329.03,28.36756,1,17,1,7.102273,0,0,0,0,7.102273,0,0,0,1,0,2,84,6.9,0,82.1,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,82.1,9.419793,.6931472,1.960415,1 +13,4,0,0,3,426890,0,12329.03,29.36756,1,17,1,9.969658,0,0,0,0,9.969658,0,0,0,1,0,2,84,6.9,0,82.1,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,82.1,9.419793,.6931472,2.299546,1 +11,4,0,1,1,426891,0,6521.408,38.25325,1,20,1,34.51829,44.80165,32.97269,0,0,112.2926,0,0,0,3,0,4,72.3,6.9,1,84.1,0,338.4,0,0,1.386294,5.824229,0,0,0,0,0,0,84.1,8.782999,1.386294,4.721108,1 +11,4,0,1,2,426891,0,6521.408,39.25325,1,20,1,11.83712,27.60417,0,0,0,39.44129,0,0,0,1,0,4,72.3,6.9,1,84.1,0,338.4,0,0,1.386294,5.824229,0,0,0,0,0,0,84.1,8.782999,1.386294,3.674813,1 +11,4,0,1,3,426891,0,6521.408,40.25325,1,20,1,44.21326,31.38708,30.55917,0,0,106.1595,0,0,0,2,2,4,72.3,6.9,1,84.1,0,338.4,0,0,1.386294,5.824229,0,0,0,0,0,0,84.1,8.782999,1.386294,4.664943,1 +11,4,0,1,1,426892,0,6521.408,1.815195,1,20,1,6.18238,0,0,0,0,6.18238,0,0,0,1,0,4,83.39137,9.967326,0,81.5,0,338.4,1,1,1.386294,5.824229,0,0,0,0,0,0,81.5,8.782999,1.386294,1.821703,1 +11,4,0,1,2,426892,0,6521.408,2.815195,1,20,1,5.681818,3.716856,0,0,0,9.398674,0,0,0,1,0,4,83.39137,9.967326,0,81.5,0,338.4,1,1,1.386294,5.824229,0,0,0,0,0,0,81.5,8.782999,1.386294,2.240569,1 +11,4,0,1,3,426892,0,6521.408,3.815195,1,20,1,12.57044,7.195492,0,0,0,19.76593,0,0,0,2,0,4,83.39137,9.967326,0,81.5,0,338.4,1,1,1.386294,5.824229,0,0,0,0,0,0,81.5,8.782999,1.386294,2.98396,1 +11,4,0,1,1,426893,0,6521.408,31.46886,0,16,1,64.86347,3.348789,25.75992,0,0,93.97218,0,0,0,3,1,4,64.4,3.4,0,58,0,338.4,0,0,1.386294,5.824229,0,0,0,0,0,0,58,8.782999,1.386294,4.542999,1 +11,4,0,1,2,426893,0,6521.408,32.46886,0,16,1,5.681818,0,0,0,0,5.681818,0,0,0,1,0,4,64.4,3.4,0,58,0,338.4,0,0,1.386294,5.824229,0,0,0,0,0,0,58,8.782999,1.386294,1.737271,1 +11,4,0,1,3,426893,0,6521.408,33.46886,0,16,1,8.669268,0,30.1257,0,0,38.79497,0,0,0,0,1,4,64.4,3.4,0,58,0,338.4,0,0,1.386294,5.824229,0,0,0,0,0,0,58,8.782999,1.386294,3.658291,1 +11,4,0,1,1,426894,0,6521.408,3.154004,0,20,1,10.30397,8.990211,0,0,0,19.29418,0,0,0,2,0,4,83.39137,9.967326,0,96.3,0,338.4,1,0,1.386294,5.824229,0,0,0,0,0,0,96.3,8.782999,1.386294,2.959803,1 +11,4,0,1,2,426894,0,6521.408,4.154004,0,20,1,5.681818,3.716856,0,0,0,9.398674,0,0,0,1,0,4,83.39137,9.967326,0,96.3,0,338.4,1,0,1.386294,5.824229,0,0,0,0,0,0,96.3,8.782999,1.386294,2.240569,1 +11,4,0,1,3,426894,0,6521.408,5.154004,0,20,1,18.20546,8.582575,0,0,0,26.78804,0,0,0,3,0,4,83.39137,9.967326,0,96.3,0,338.4,1,0,1.386294,5.824229,0,0,0,0,0,0,96.3,8.782999,1.386294,3.287955,1 +11,4,0,1,1,426909,0,6446.334,26.98973,0,12,1,6.128703,8.656793,0,0,0,14.7855,0,0,0,1,0,1,78.2,10.3,0,90.9,0,252.84,0,0,0,5.532757,0,0,0,1,0,0,90.9,8.771422,0,2.693647,1 +11,4,0,1,2,426909,0,6446.334,27.98973,0,12,1,16.59634,2.691046,0,0,0,19.28739,0,0,0,2,0,1,78.2,10.3,0,90.9,0,252.84,0,0,0,5.532757,0,0,0,1,0,0,90.9,8.771422,0,2.959451,1 +11,4,0,1,3,426909,0,6446.334,28.98973,0,12,1,10.74806,0,0,0,0,10.74806,0,0,0,1,0,1,78.2,10.3,0,90.9,0,252.84,0,0,0,5.532757,0,0,0,1,0,0,90.9,8.771422,0,2.374726,1 +11,4,0,1,4,426909,0,6446.334,29.98973,0,12,1,48.4684,4.040326,0,0,0,52.50872,0,0,0,2,2,1,78.2,10.3,0,90.9,0,252.84,0,0,0,5.532757,0,0,0,1,0,0,90.9,8.771422,0,3.960979,1 +11,4,0,1,5,426909,0,6446.334,30.98973,0,12,1,21.58528,3.839349,0,0,0,25.42463,0,0,0,3,0,1,78.2,10.3,0,90.9,0,252.84,0,0,0,5.532757,0,0,0,1,0,0,90.9,8.771422,0,3.235718,1 +13,4,0,1,1,426940,0,6321.408,59.65229,1,12,1,12.87996,0,0,0,0,12.87996,0,0,0,2,0,1,79.3,10.3,0,92,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,92,8.751856,0,2.555673,1 +13,4,0,1,2,426940,0,6321.408,60.65229,1,12,1,14.20455,0,0,0,0,14.20455,0,0,0,1,0,1,79.3,10.3,0,92,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,92,8.751856,0,2.653562,1 +13,4,0,1,3,426940,0,6321.408,61.65229,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,79.3,10.3,0,92,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,92,8.751856,0,,0 +11,4,0,1,1,426943,0,11520.23,17.66735,0,12,1,0,0,0,0,0,0,0,0,0,0,0,7,68.1,0,0,81.8,0,0,1,0,1.94591,0,0,0,0,1,0,0,81.8,9.351947,1.94591,,0 +11,4,0,1,2,426943,0,11520.23,18.66735,0,12,1,0,0,0,0,0,0,0,0,0,0,0,7,68.1,0,0,81.8,0,0,0,0,1.94591,0,0,0,0,1,0,0,81.8,9.351947,1.94591,,0 +11,4,0,1,3,426943,0,11520.23,19.66735,0,12,1,24.16558,0,0,0,0,24.16558,0,0,0,1,0,7,68.1,0,0,81.8,0,0,0,0,1.94591,0,0,0,0,1,0,0,81.8,9.351947,1.94591,3.184929,1 +11,4,0,1,1,426944,0,11520.23,7.564682,1,12,1,34.26069,7.058218,31.9423,0,0,73.26121,0,0,0,2,1,7,88.3,9.967326,0,74.1,0,0,1,1,1.94591,0,0,0,0,1,0,0,74.1,9.351947,1.94591,4.294031,1 +11,4,0,1,2,426944,0,11520.23,8.564682,1,12,1,9.469697,0,16.09848,0,0,25.56818,0,0,0,0,1,7,88.3,9.967326,0,74.1,0,0,1,1,1.94591,0,0,0,0,1,0,0,74.1,9.351947,1.94591,3.241349,1 +11,4,0,1,3,426944,0,11520.23,9.564682,1,12,1,10.83658,0,23.40702,0,0,34.24361,0,0,0,0,1,7,88.3,9.967326,0,74.1,0,0,1,1,1.94591,0,0,0,0,1,0,0,74.1,9.351947,1.94591,3.5335,1 +11,4,0,1,1,426945,0,11520.23,39.79192,0,8,1,0,0,0,0,0,0,0,0,0,0,0,7,79.8,0,0,91.2,0,0,0,0,1.94591,0,0,0,0,1,0,0,91.2,9.351947,1.94591,,0 +11,4,0,1,2,426945,0,11520.23,40.79192,0,8,1,0,0,0,0,0,0,0,0,0,0,0,7,79.8,0,0,91.2,0,0,0,0,1.94591,0,0,0,0,1,0,0,91.2,9.351947,1.94591,,0 +11,4,0,1,3,426945,0,11520.23,41.79192,0,8,1,0,0,0,0,0,0,0,0,0,0,0,7,79.8,0,0,91.2,0,0,0,0,1.94591,0,0,0,0,1,0,0,91.2,9.351947,1.94591,,0 +11,4,0,1,1,426946,0,11520.23,16.24641,0,12,1,12.87996,0,31.4271,0,0,44.30706,0,0,0,1,0,7,65.4,10.3,0,80.7,0,0,1,0,1.94591,0,0,0,0,1,0,0,80.7,9.351947,1.94591,3.791144,1 +11,4,0,1,2,426946,0,11520.23,17.24641,0,12,1,5.681818,0,0,0,0,5.681818,0,0,0,1,0,7,65.4,10.3,0,80.7,0,0,1,0,1.94591,0,0,0,0,1,0,0,80.7,9.351947,1.94591,1.737271,1 +11,4,0,1,3,426946,0,11520.23,18.24641,0,12,1,24.49068,1.170351,32.72649,0,0,58.38752,0,0,0,2,0,7,65.4,10.3,0,80.7,0,0,0,0,1.94591,0,0,0,0,1,0,0,80.7,9.351947,1.94591,4.067102,1 +11,4,0,1,1,426947,0,11520.23,9.672827,1,12,1,43.48274,0,0,0,0,43.48274,0,0,0,2,0,7,90,9.967326,0,74.1,0,0,1,1,1.94591,0,0,0,0,1,0,0,74.1,9.351947,1.94591,3.772364,1 +11,4,0,1,2,426947,0,11520.23,10.67283,1,12,1,0,0,0,0,0,0,0,0,0,0,0,7,90,9.967326,0,74.1,0,0,1,1,1.94591,0,0,0,0,1,0,0,74.1,9.351947,1.94591,,0 +11,4,0,1,3,426947,0,11520.23,11.67283,1,12,1,7.802341,0,0,0,0,7.802341,0,0,0,1,0,7,90,9.967326,0,74.1,0,0,1,1,1.94591,0,0,0,0,1,0,0,74.1,9.351947,1.94591,2.054424,1 +11,4,0,1,1,426948,0,11520.23,13.26762,1,12,1,12.87996,0,28.33591,0,0,41.21587,0,0,0,1,0,7,91.7,9.967326,0,74.1,0,0,1,1,1.94591,0,0,0,0,1,0,0,74.1,9.351947,1.94591,3.718823,1 +11,4,0,1,2,426948,0,11520.23,14.26762,1,12,1,0,0,0,0,0,0,0,0,0,0,0,7,91.7,9.967326,0,74.1,0,0,1,1,1.94591,0,0,0,0,1,0,0,74.1,9.351947,1.94591,,0 +11,4,0,1,3,426948,0,11520.23,15.26762,1,12,1,18.63893,0,24.27395,0,0,42.91287,0,0,0,2,0,7,91.7,9.967326,0,74.1,0,0,1,1,1.94591,0,0,0,0,1,0,0,74.1,9.351947,1.94591,3.759172,1 +11,4,0,1,1,426949,0,11520.23,41.15811,1,12,1,6.18238,0,0,0,0,6.18238,0,0,0,1,0,7,91.5,6.9,0,88.6,0,0,0,0,1.94591,0,0,0,0,1,0,0,88.6,9.351947,1.94591,1.821703,1 +11,4,0,1,2,426949,0,11520.23,42.15811,1,12,1,0,0,0,0,0,0,0,0,0,0,0,7,91.5,6.9,0,88.6,0,0,0,0,1.94591,0,0,0,0,1,0,0,88.6,9.351947,1.94591,,0 +11,4,0,1,3,426949,0,11520.23,43.15811,1,12,1,55.59168,0,0,0,0,55.59168,0,0,0,3,0,7,91.5,6.9,0,88.6,0,0,0,0,1.94591,0,0,0,0,1,0,0,88.6,9.351947,1.94591,4.018034,1 +13,4,0,1,1,426952,0,9656.305,55.63313,1,11,1,45.70991,12.64045,43.41164,0,0,101.762,0,0,0,3,0,2,80.3,10.3,0,78.4,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,78.4,9.175469,.6931472,4.622637,1 +13,4,0,1,2,426952,0,9656.305,56.63313,1,11,1,0,30.83451,0,0,0,30.83451,0,0,0,0,0,2,80.3,10.3,0,78.4,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,78.4,9.175469,.6931472,3.428634,1 +13,4,0,1,3,426952,0,9656.305,57.63313,1,11,1,39.59587,36.34996,36.54342,137.5752,0,112.4893,0,0,8,4,0,1,80.3,10.3,0,78.4,300,300,0,0,0,5.703783,1,4.564348,5.755076,0,0,0,78.4,9.175469,0,4.722857,1 +13,4,0,1,1,426953,0,9656.305,53.10336,0,12,1,998.9836,28.01328,0,0,5551.42,6578.417,1,0,0,12,0,2,72.9,6.9,0,60.2,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,60.2,9.175469,.6931472,8.79155,1 +13,4,0,1,2,426953,0,9656.305,54.10336,0,12,.7945206,215.4337,121.4721,0,0,4352.213,4689.119,8,0,0,5,0,2,72.9,6.9,0,60.2,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,60.2,9.175469,.6931472,8.453,1 +14,4,95,0,1,426970,0,7910.823,34.16564,0,13,1,0,0,0,0,0,0,0,0,0,0,0,5,93.1,6.9,0,88.6,618.9,618.9,0,0,1.609438,6.427944,0,4.564348,6.479237,0,0,0,88.6,8.976113,1.609438,,0 +14,4,95,0,1,426971,0,7910.823,7.603012,1,12,1,12.36476,0,0,0,0,12.36476,0,0,0,2,0,5,85,9.967326,0,63,618.9,618.9,1,1,1.609438,6.427944,0,4.564348,6.479237,0,0,0,63,8.976113,1.609438,2.514851,1 +14,4,95,0,1,426972,0,7910.823,9.987679,0,12,1,6.18238,0,0,0,0,6.18238,0,0,0,1,0,5,78.3,9.967326,0,88.9,618.9,618.9,1,0,1.609438,6.427944,0,4.564348,6.479237,0,0,0,88.9,8.976113,1.609438,1.821703,1 +14,4,95,0,1,426973,0,7910.823,12.44353,1,12,1,31.9423,0,0,0,0,31.9423,0,0,0,2,0,5,81.8,9.967326,0,92.6,618.9,618.9,1,1,1.609438,6.427944,0,4.564348,6.479237,0,0,0,92.6,8.976113,1.609438,3.463931,1 +14,4,95,0,1,426974,0,7910.823,33.33333,1,12,1,20.60793,0,0,0,0,20.60793,0,0,0,0,4,5,77.7,13.8,0,73.9,618.9,618.9,0,0,1.609438,6.427944,0,4.564348,6.479237,0,0,0,73.9,8.976113,1.609438,3.025676,1 +13,4,0,1,1,426989,0,11579.47,38.5243,0,14,1,10.30397,28.26893,38.91293,428.9026,0,77.48583,0,0,19,0,1,6,53.2,6.9,1,48.9,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,48.9,9.357076,1.791759,4.350095,1 +13,4,0,1,2,426989,0,11579.47,39.5243,0,14,1,142.4242,33.10606,15.30303,925.374,0,190.8333,0,0,50,8,0,6,53.2,6.9,1,48.9,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,48.9,9.357076,1.791759,5.2514,1 +13,4,0,1,3,426989,0,11579.47,40.5243,0,14,1,334.2003,22.08929,17.63762,180.7542,0,373.9272,0,0,18,16,0,6,53.2,6.9,1,48.9,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,48.9,9.357076,1.791759,5.924061,1 +13,4,0,1,4,426989,0,11579.47,41.5243,0,14,1,184.3245,27.30997,25.58881,455.8882,0,237.2233,0,0,54,16,1,6,53.2,6.9,1,48.9,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,48.9,9.357076,1.791759,5.469002,1 +13,4,0,1,5,426989,0,11579.47,42.5243,0,14,1,109.3023,25.79249,3.109123,169.9463,0,138.2039,0,0,19,4,0,6,53.2,6.9,1,48.9,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,48.9,9.357076,1.791759,4.92873,1 +13,4,0,1,1,426990,0,11579.47,8.224504,0,12,1,9.27357,0,0,0,0,9.27357,0,0,0,1,0,6,60,9.967326,1,48.1,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,48.1,9.357076,1.791759,2.227168,1 +13,4,0,1,2,426990,0,11579.47,9.224504,0,12,1,28.64583,0,0,35.51136,0,28.64583,0,0,1,2,0,6,60,9.967326,1,48.1,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,48.1,9.357076,1.791759,3.355008,1 +13,4,0,1,3,426990,0,11579.47,10.2245,0,12,1,3.987863,1.30039,0,0,0,5.288253,0,0,0,0,0,6,60,9.967326,1,48.1,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,48.1,9.357076,1.791759,1.665488,1 +13,4,0,1,4,426990,0,11579.47,11.2245,0,12,1,10.24025,0,0,39.38559,0,10.24025,0,0,7,1,0,6,60,9.967326,1,48.1,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,48.1,9.357076,1.791759,2.326326,1 +13,4,0,1,5,426990,0,11579.47,12.2245,0,12,1,15.7424,.7155635,0,0,0,16.45796,0,0,0,1,0,6,60,9.967326,1,48.1,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,48.1,9.357076,1.791759,2.800809,1 +13,4,0,1,1,426991,0,11579.47,33.50582,1,12,1,5.151984,13.91036,0,409.5827,0,19.06234,0,0,20,0,0,6,46.8,20.7,0,53.4,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,1,0,53.4,9.357076,1.791759,2.947715,1 +13,4,0,1,2,426991,0,11579.47,34.50582,1,12,1,17.04545,30.5303,0,577.3532,0,47.57576,0,0,28,1,0,6,46.8,20.7,0,53.4,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,1,0,53.4,9.357076,1.791759,3.862323,1 +13,4,0,1,3,426991,0,11579.47,35.50582,1,12,1,10.6632,8.452536,0,122.2367,0,19.11573,0,0,14,1,0,6,46.8,20.7,0,53.4,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,1,0,53.4,9.357076,1.791759,2.950512,1 +13,4,0,1,4,426991,0,11579.47,36.50582,1,12,1,0,0,0,323.9464,0,0,0,0,34,0,0,6,46.8,20.7,0,53.4,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,1,0,53.4,9.357076,1.791759,,0 +13,4,0,1,5,426991,0,11579.47,37.50582,1,12,1,17.17352,0,0,0,0,17.17352,0,0,0,1,0,6,46.8,20.7,0,53.4,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,1,0,53.4,9.357076,1.791759,2.843369,1 +13,4,0,1,1,426992,0,11579.47,12.80219,0,12,1,47.65585,5.409583,0,0,0,53.06543,0,0,0,4,0,6,41.7,9.967326,0,70.4,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,70.4,9.357076,1.791759,3.971526,1 +13,4,0,1,2,426992,0,11579.47,13.80219,0,12,1,36.93182,9.043561,0,147.9593,0,45.97538,0,0,16,3,0,6,41.7,9.967326,0,70.4,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,70.4,9.357076,1.791759,3.828106,1 +13,4,0,1,3,426992,0,11579.47,14.80219,0,12,1,0,0,0,34.67707,97.52926,97.52926,1,0,4,0,0,6,41.7,9.967326,0,70.4,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,70.4,9.357076,1.791759,4.580153,1 +13,4,0,1,4,426992,0,11579.47,15.80219,0,12,1,24.41906,5.71091,0,246.1599,337.6014,367.7314,2,0,29,4,0,6,41.7,9.967326,0,70.4,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,70.4,9.357076,1.791759,5.907353,1 +13,4,0,1,5,426992,0,11579.47,16.80219,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,41.7,9.967326,0,70.4,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,70.4,9.357076,1.791759,,0 +13,4,0,1,1,426993,0,11579.47,10.05065,1,12,1,25.50232,4.636785,0,0,0,30.1391,0,0,0,3,0,6,81.7,9.967326,0,66.7,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,66.7,9.357076,1.791759,3.405823,1 +13,4,0,1,2,426993,0,11579.47,11.05065,1,12,1,26.04167,1.704545,1.40625,0,0,29.15246,0,0,0,2,0,6,81.7,9.967326,0,66.7,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,66.7,9.357076,1.791759,3.372539,1 +13,4,0,1,3,426993,0,11579.47,12.05065,1,12,1,39.3368,8.885999,0,0,0,48.2228,0,0,0,4,0,6,81.7,9.967326,0,66.7,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,66.7,9.357076,1.791759,3.875832,1 +13,4,0,1,4,426993,0,11579.47,13.05065,1,12,1,0,2.953919,0,39.38559,0,2.953919,0,0,7,0,0,6,81.7,9.967326,0,66.7,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,66.7,9.357076,1.791759,1.083133,1 +13,4,0,1,5,426993,0,11579.47,14.05065,1,12,1,13.59571,4.293381,0,0,717.3596,735.2487,1,0,0,2,0,6,81.7,9.967326,0,66.7,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,66.7,9.357076,1.791759,6.600209,1 +13,4,0,1,1,426994,0,11579.47,5.859001,1,12,1,45.99691,5.512622,0,0,0,51.50953,0,0,0,3,0,6,80,9.967326,0,55.6,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,1,0,0,55.6,9.357076,1.791759,3.941767,1 +13,4,0,1,2,426994,0,11579.47,6.859001,1,12,1,13.73106,3.787879,0,0,0,17.51894,0,0,0,1,1,6,80,9.967326,0,55.6,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,1,0,0,55.6,9.357076,1.791759,2.863283,1 +13,4,0,1,3,426994,0,11579.47,7.859001,1,12,1,16.47161,5.093194,0,0,0,21.5648,0,0,0,2,0,6,80,9.967326,0,55.6,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,1,0,0,55.6,9.357076,1.791759,3.071063,1 +13,4,0,1,4,426994,0,11579.47,8.859001,1,12,1,25.60063,1.772351,0,68.92477,0,27.37298,0,0,9,1,0,6,80,9.967326,0,55.6,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,1,0,0,55.6,9.357076,1.791759,3.309556,1 +13,4,0,1,5,426994,0,11579.47,9.859001,1,12,1,6.440072,0,0,0,0,6.440072,0,0,0,0,0,6,80,9.967326,0,55.6,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,1,0,0,55.6,9.357076,1.791759,1.86254,1 +13,4,0,0,1,426995,0,3864.809,47.27173,1,13,1,469.8672,298.9836,54.13688,0,1554.188,2377.176,1,0,0,18,0,2,62.2,41.4,1,46.6,300,0,0,0,.6931472,0,1,4.564348,5.755076,0,1,0,46.6,8.259927,.6931472,7.773668,1 +13,4,0,0,2,426995,0,3864.809,48.27173,1,13,1,667.0183,432.2082,0,0,0,1099.226,0,0,0,11,1,2,62.2,41.4,1,46.6,300,0,0,0,.6931472,0,1,4.564348,5.755076,0,1,0,46.6,8.259927,.6931472,7.002362,1 +13,4,0,0,3,426995,0,3864.809,49.27173,1,13,1,114.5744,392.9063,0,0,3856.87,4364.351,3,0,0,3,2,2,62.2,41.4,1,46.6,300,0,0,0,.6931472,0,1,4.564348,5.755076,0,1,0,46.6,8.259927,.6931472,8.381225,1 +13,4,0,0,4,426995,0,3864.809,50.27173,1,13,.3852459,43.4083,127.879,0,0,0,171.2873,0,0,0,2,0,2,62.2,41.4,1,46.6,300,0,0,0,.6931472,0,1,4.564348,5.755076,0,1,0,46.6,8.259927,.6931472,5.143342,1 +13,4,0,0,1,426997,0,3864.809,49.76044,0,13,1,20.42901,0,0,0,0,20.42901,0,0,0,1,0,2,82.4,13.8,0,84.1,300,0,0,0,.6931472,0,1,4.564348,5.755076,0,0,0,84.1,8.259927,.6931472,3.016956,1 +13,4,0,0,2,426997,0,3864.809,50.76044,0,13,1,60.59541,0,0,0,0,60.59541,0,0,0,1,0,2,82.4,13.8,0,84.1,300,0,0,0,.6931472,0,1,4.564348,5.755076,0,0,0,84.1,8.259927,.6931472,4.104219,1 +13,4,0,0,3,426997,0,3864.809,51.76044,0,13,1,127.3646,6.233878,3.847807,0,1027.18,1164.626,2,0,0,6,0,2,82.4,13.8,0,84.1,300,0,0,0,.6931472,0,1,4.564348,5.755076,0,0,0,84.1,8.259927,.6931472,7.060155,1 +13,4,0,0,4,426997,0,3864.809,52.76044,0,13,1,78.13106,9.790617,19.38736,0,0,107.309,0,0,0,4,1,2,82.4,13.8,0,84.1,300,0,0,0,.6931472,0,1,4.564348,5.755076,0,0,0,84.1,8.259927,.6931472,4.675713,1 +13,4,0,0,5,426997,0,3864.809,53.76044,0,13,1,5.661713,0,0,0,0,5.661713,0,0,0,1,0,1,82.4,13.8,0,84.1,300,0,0,0,0,0,1,4.564348,5.755076,0,0,0,84.1,8.259927,0,1.733726,1 +13,4,0,1,1,427008,0,11258.06,51.86858,1,12,1,32.68641,8.81001,38.30439,0,0,79.80082,0,0,0,3,1,2,89.4,17.2,0,65.9,300,1239.16,0,0,.6931472,7.122189,1,4.564348,5.755076,1,0,0,65.9,9.328929,.6931472,4.379534,1 +13,4,0,1,2,427008,0,11258.06,52.86858,1,12,1,15.00234,6.118144,0,0,0,21.12049,0,0,0,2,0,2,89.4,17.2,0,65.9,300,1239.16,0,0,.6931472,7.122189,1,4.564348,5.755076,1,0,0,65.9,9.328929,.6931472,3.050244,1 +13,4,0,1,3,427008,0,11258.06,53.86858,1,12,1,15.90714,0,0,0,0,15.90714,0,0,0,2,0,2,89.4,17.2,0,65.9,300,1239.16,0,0,.6931472,7.122189,1,4.564348,5.755076,1,0,0,65.9,9.328929,.6931472,2.766768,1 +13,4,0,1,1,427009,0,11258.06,59.85216,0,12,1,55.66905,0,38.30439,0,0,93.97344,0,0,0,2,1,2,100,17.2,0,90.9,300,1239.16,0,0,.6931472,7.122189,1,4.564348,5.755076,1,0,0,90.9,9.328929,.6931472,4.543012,1 +13,4,0,1,2,427009,0,11258.06,60.85216,0,12,1,20.62822,0,0,0,0,20.62822,0,0,0,0,0,2,100,17.2,0,90.9,300,1239.16,0,0,.6931472,7.122189,1,4.564348,5.755076,1,0,0,90.9,9.328929,.6931472,3.02666,1 +13,4,0,1,3,427009,0,11258.06,61.85216,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,100,17.2,0,90.9,300,1239.16,0,0,.6931472,7.122189,1,4.564348,5.755076,1,0,0,90.9,9.328929,.6931472,,0 +18,4,25,1,1,427019,0,6007.038,60.19986,1,10,1,41.99897,100.4637,35.54869,0,0,178.0113,0,0,0,3,0,1,74.46748,9.967326,.1572505,,602.73,602.73,0,0,0,6.401469,0,3.258096,7.787764,1,0,0,72.06626,8.700853,0,5.181847,1 +18,4,25,1,2,427019,0,6007.038,61.19986,1,10,1,39.77273,71.61459,0,0,0,111.3873,0,0,0,1,8,1,74.46748,9.967326,.1572505,,602.73,602.73,0,0,0,6.401469,0,3.258096,7.787764,1,0,0,72.06626,8.700853,0,4.713014,1 +18,4,25,1,3,427019,0,6007.038,62.19986,1,10,1,49.39315,84.15258,41.61248,0,0,175.1582,0,0,0,3,1,1,74.46748,9.967326,.1572505,,602.73,602.73,0,0,0,6.401469,0,3.258096,7.787764,1,0,0,72.06626,8.700853,0,5.165689,1 +13,4,0,0,1,427021,0,7767.742,38.32991,1,10,1,114.8892,0,0,0,912.406,1027.295,1,0,0,4,0,3,75.5,0,0,92,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,92,8.957864,1.098612,6.934685,1 +13,4,0,0,2,427021,0,7767.742,39.32991,1,10,1,0,0,0,0,0,0,0,0,0,0,0,3,75.5,0,0,92,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,92,8.957864,1.098612,,0 +13,4,0,0,3,427021,0,7767.742,40.32991,1,10,1,4.551365,0,0,0,0,4.551365,0,0,0,0,0,3,75.5,0,0,92,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,92,8.957864,1.098612,1.515427,1 +13,4,0,0,1,427022,0,7767.742,14.40931,0,10,1,18.93354,0,0,0,0,18.93354,0,0,0,1,0,3,68.6,3.4,0,78.4,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,78.4,8.957864,1.098612,2.940935,1 +13,4,0,0,2,427022,0,7767.742,15.40931,0,10,1,32.14962,0,0,56.81818,0,32.14962,0,0,4,2,0,3,68.6,3.4,0,78.4,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,78.4,8.957864,1.098612,3.470401,1 +13,4,0,0,3,427022,0,7767.742,16.40931,0,10,1,56.56697,0,0,0,0,56.56697,0,0,0,2,0,3,68.6,3.4,0,78.4,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,78.4,8.957864,1.098612,4.035425,1 +13,4,0,0,1,427023,0,7767.742,42.04517,0,8,1,0,0,0,0,0,0,0,0,0,0,0,3,96.8,0,0,78.4,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,78.4,8.957864,1.098612,,0 +13,4,0,0,2,427023,0,7767.742,43.04517,0,8,1,0,0,0,0,0,0,0,0,0,0,0,3,96.8,0,0,78.4,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,78.4,8.957864,1.098612,,0 +13,4,0,0,3,427023,0,7767.742,44.04517,0,8,1,5.418292,0,0,0,0,5.418292,0,0,0,0,0,3,96.8,0,0,78.4,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,78.4,8.957864,1.098612,1.689781,1 +6,4,25,1,1,427067,0,6321.408,56.0438,0,12,1,56.15662,14.78619,40.70067,0,0,111.6435,0,0,0,4,0,2,78.2,3.4,0,67,750,725,0,0,.6931472,6.586172,0,3.258096,8.006368,1,0,0,67,8.751856,.6931472,4.715311,1 +6,4,25,1,2,427067,0,6321.408,57.0438,0,12,1,0,8.243371,0,0,0,8.243371,0,0,0,0,0,2,78.2,3.4,0,67,750,725,0,0,.6931472,6.586172,0,3.258096,8.006368,1,0,0,67,8.751856,.6931472,2.109409,1 +6,4,25,1,3,427067,0,6321.408,58.0438,0,12,1,84.02688,9.874295,13.0039,0,0,106.9051,0,0,0,4,0,2,78.2,3.4,0,67,750,725,0,0,.6931472,6.586172,0,3.258096,8.006368,1,0,0,67,8.751856,.6931472,4.671941,1 +6,4,25,1,1,427068,0,6321.408,55.9206,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,71.3,20.7,0,68.2,750,725,0,0,.6931472,6.586172,0,3.258096,8.006368,1,0,0,68.2,8.751856,.6931472,,0 +6,4,25,1,2,427068,0,6321.408,56.9206,1,12,1,54.45076,4.848485,.9469697,0,0,60.24621,0,0,0,4,0,2,71.3,20.7,0,68.2,750,725,0,0,.6931472,6.586172,0,3.258096,8.006368,1,0,0,68.2,8.751856,.6931472,4.09844,1 +6,4,25,1,3,427068,0,6321.408,57.9206,1,12,1,30.34244,0,0,0,0,30.34244,0,0,0,4,0,2,71.3,20.7,0,68.2,750,725,0,0,.6931472,6.586172,0,3.258096,8.006368,1,0,0,68.2,8.751856,.6931472,3.412547,1 +11,4,0,0,1,427069,0,8868.035,24.73648,1,13,1,11.57303,3.263534,0,0,0,14.83657,0,0,0,1,0,4,70.7,6.9,0,79.5,0,0,0,0,1.386294,0,0,0,0,0,0,0,79.5,9.090322,1.386294,2.697095,1 +11,4,0,0,2,427069,0,8868.035,25.73648,1,13,1,1.078293,0,0,0,0,1.078293,0,0,0,0,0,4,70.7,6.9,0,79.5,0,0,0,0,1.386294,0,0,0,0,0,0,0,79.5,9.090322,1.386294,.0753796,1 +11,4,0,0,3,427069,0,8868.035,26.73648,1,13,1,12.89768,0,29.23474,0,0,42.13242,0,0,0,1,0,4,70.7,6.9,0,79.5,0,0,0,0,1.386294,0,0,0,0,0,0,0,79.5,9.090322,1.386294,3.740817,1 +11,4,0,0,1,427070,0,8868.035,31.15401,0,13,1,35.69969,5.755873,0,0,0,41.45557,0,0,0,3,0,4,79.8,0,0,71.6,0,0,0,0,1.386294,0,0,0,0,0,0,0,71.6,9.090322,1.386294,3.724622,1 +11,4,0,0,2,427070,0,8868.035,32.154,0,13,1,16.87764,0,0,0,0,16.87764,0,0,0,1,0,4,79.8,0,0,71.6,0,0,0,0,1.386294,0,0,0,0,0,0,0,71.6,9.090322,1.386294,2.825989,1 +11,4,0,0,3,427070,0,8868.035,33.154,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,79.8,0,0,71.6,0,0,0,0,1.386294,0,0,0,0,0,0,0,71.6,9.090322,1.386294,,0 +11,4,0,0,1,427071,0,8868.035,4.328542,0,13,1,7.660879,11.25638,0,0,0,18.91726,0,0,0,1,0,4,83.39137,9.967326,0,70.4,0,0,1,0,1.386294,0,0,0,0,1,0,0,70.4,9.090322,1.386294,2.940075,1 +11,4,0,0,2,427071,0,8868.035,5.328542,0,13,1,5.625879,5.180497,0,0,0,10.80638,0,0,0,1,0,4,83.39137,9.967326,0,70.4,0,0,1,0,1.386294,0,0,0,0,1,0,0,70.4,9.090322,1.386294,2.380136,1 +11,4,0,0,3,427071,0,8868.035,6.328542,0,13,1,15.90714,6.010318,22.35598,0,0,44.27343,0,0,0,2,0,4,83.39137,9.967326,0,70.4,0,0,1,0,1.386294,0,0,0,0,1,0,0,70.4,9.090322,1.386294,3.790385,1 +11,4,0,0,1,427072,0,8868.035,1.226557,0,13,1,15.32176,12.31869,0,0,0,27.64045,0,0,0,3,0,4,83.39137,9.967326,0,63,0,0,1,0,1.386294,0,0,0,0,1,0,0,63,9.090322,1.386294,3.31928,1 +11,4,0,0,2,427072,0,8868.035,2.226557,0,13,1,34.59916,5.930614,0,0,0,40.52977,0,0,0,3,0,4,83.39137,9.967326,0,63,0,0,1,0,1.386294,0,0,0,0,1,0,0,63,9.090322,1.386294,3.702037,1 +11,4,0,0,3,427072,0,8868.035,3.226557,0,13,1,15.90714,2.575237,0,0,0,18.48237,0,0,0,2,0,4,83.39137,9.967326,0,63,0,0,1,0,1.386294,0,0,0,0,1,0,0,63,9.090322,1.386294,2.916817,1 +13,4,0,1,1,427081,0,3463.93,3.767283,1,12,1,48.07692,0,0,0,0,48.07692,0,0,0,3,0,3,83.39137,9.967326,0,48.1,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,0,0,0,48.1,8.150448,1.098612,3.872802,1 +13,4,0,1,2,427081,0,3463.93,4.767282,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,83.39137,9.967326,0,48.1,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,0,0,0,48.1,8.150448,1.098612,,0 +13,4,0,1,3,427081,0,3463.93,5.767282,1,12,1,25.65199,9.593843,0,0,0,35.24583,0,0,0,4,0,3,83.39137,9.967326,0,48.1,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,0,0,0,48.1,8.150448,1.098612,3.562347,1 +13,4,0,1,1,427082,0,3463.93,22.8501,0,14,1,10.12146,0,0,0,0,10.12146,0,0,0,0,1,3,59,3.4,0,63.6,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,63.6,8.150448,1.098612,2.314658,1 +13,4,0,1,2,427082,0,3463.93,23.8501,0,14,1,0,1.734266,0,0,0,1.734266,0,0,0,0,0,3,59,3.4,0,63.6,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,63.6,8.150448,1.098612,.5505841,1 +13,4,0,1,3,427082,0,3463.93,24.8501,0,14,1,63.78794,7.785378,0,0,0,71.57332,0,0,0,2,0,3,59,3.4,0,63.6,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,63.6,8.150448,1.098612,4.270722,1 +13,4,0,1,1,427083,0,3463.93,22.23682,1,12,1,96.40688,60.46053,13.66397,0,0,170.5314,0,0,0,7,1,3,44.7,24.1,1,56.8,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,56.8,8.150448,1.098612,5.138919,1 +13,4,0,1,2,427083,0,3463.93,23.23682,1,12,1,65.85081,32.2331,0,0,0,98.08392,0,0,0,8,0,3,44.7,24.1,1,56.8,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,56.8,8.150448,1.098612,4.585824,1 +13,4,0,1,3,427083,0,3463.93,24.23682,1,12,1,111.0517,30.51304,0,51.30397,0,141.5648,0,0,3,5,0,3,44.7,24.1,1,56.8,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,56.8,8.150448,1.098612,4.952757,1 +13,4,0,0,1,427086,0,10390.62,8.290213,0,14,1,23.627,7.135497,0,0,0,30.76249,0,0,0,2,0,5,86.7,9.967326,0,100,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,100,9.248755,1.609438,3.426296,1 +13,4,0,0,2,427086,0,10390.62,9.290213,0,14,1,45.54924,4.782197,0,0,0,50.33144,0,0,0,4,0,5,86.7,9.967326,0,100,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,100,9.248755,1.609438,3.91863,1 +13,4,0,0,3,427086,0,10390.62,10.29021,0,14,1,78.56524,7.498916,0,0,0,86.06416,0,0,0,7,0,5,86.7,9.967326,0,100,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,100,9.248755,1.609438,4.455093,1 +13,4,0,0,1,427087,0,10390.62,34.19849,0,12,1,160.5307,5.023184,0,0,0,165.5538,0,0,0,5,0,5,76.1,3.4,0,54.5,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,54.5,9.248755,1.609438,5.109296,1 +13,4,0,0,2,427087,0,10390.62,35.19849,0,12,1,101.089,5.847538,35.40246,0,0,142.339,0,0,0,6,0,5,76.1,3.4,0,54.5,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,54.5,9.248755,1.609438,4.958212,1 +13,4,0,0,3,427087,0,10390.62,36.19849,0,12,1,79.6489,2.492414,0,0,0,82.14131,0,0,0,4,6,5,76.1,3.4,0,54.5,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,54.5,9.248755,1.609438,4.408441,1 +13,4,0,0,1,427088,0,10390.62,5.801506,1,14,1,37.48068,8.964452,0,0,0,46.44513,0,0,0,4,0,5,83.3,9.967326,0,48.1,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,1,0,48.1,9.248755,1.609438,3.838272,1 +13,4,0,0,2,427088,0,10390.62,6.801506,1,14,1,163.7074,11.24527,0,0,0,174.9527,0,0,0,5,0,5,83.3,9.967326,0,48.1,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,1,0,48.1,9.248755,1.609438,5.164515,1 +13,4,0,0,3,427088,0,10390.62,7.801506,1,14,1,26.87473,10.25141,0,0,376.788,413.9142,1,0,0,3,0,5,83.3,9.967326,0,48.1,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,1,0,48.1,9.248755,1.609438,6.025659,1 +13,4,0,0,1,427089,0,10390.62,4.572211,0,14,1,46.88305,7.393096,0,0,0,54.27615,0,0,0,5,0,5,86.7,9.967326,0,66.7,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,66.7,9.248755,1.609438,3.994085,1 +13,4,0,0,2,427089,0,10390.62,5.572211,0,14,1,5.681818,7.220644,0,0,0,12.90246,0,0,0,1,0,5,86.7,9.967326,0,66.7,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,66.7,9.248755,1.609438,2.557418,1 +13,4,0,0,3,427089,0,10390.62,6.572211,0,14,1,30.34244,7.954053,0,0,149.7833,188.0798,1,0,0,5,0,5,86.7,9.967326,0,66.7,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,66.7,9.248755,1.609438,5.236866,1 +13,4,0,0,1,427090,0,10390.62,28.81862,1,14,1,23.69912,4.636785,0,0,0,28.33591,0,0,0,2,0,5,60.1,27.6,0,35.2,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,1,35.2,9.248755,1.609438,3.34413,1 +13,4,0,0,2,427090,0,10390.62,29.81862,1,14,1,198.5653,15.28883,0,0,956.0511,1169.905,1,0,0,9,0,5,60.1,27.6,0,35.2,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,1,35.2,9.248755,1.609438,7.064678,1 +13,4,0,0,3,427090,0,10390.62,30.81862,1,14,1,318.1708,5.439965,29.04205,0,0,352.6528,0,0,0,4,1,5,60.1,27.6,0,35.2,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,1,35.2,9.248755,1.609438,5.865484,1 +16,4,95,1,1,427097,0,4985.337,41.38535,0,17,1,23.18393,0,0,0,0,23.18393,0,0,0,4,0,1,78.7,10.3,1,69.3,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,0,0,0,69.3,8.514457,0,3.143459,1 +16,4,95,1,2,427097,0,4985.337,42.38535,0,17,1,7.102273,0,0,0,0,7.102273,0,0,0,1,0,1,78.7,10.3,1,69.3,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,0,0,0,69.3,8.514457,0,1.960415,1 +16,4,95,1,3,427097,0,4985.337,43.38535,0,17,1,19.50585,0,0,0,0,19.50585,0,0,0,1,0,1,78.7,10.3,1,69.3,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,0,0,0,69.3,8.514457,0,2.970715,1 +11,4,0,0,1,427100,0,8992.375,36.46544,1,15,1,10.30397,21.63833,0,0,0,31.9423,0,0,0,2,0,6,92.6,6.9,0,93.2,0,186.48,0,0,1.791759,5.228324,0,0,0,1,0,0,93.2,9.104243,1.791759,3.463931,1 +11,4,0,0,2,427100,0,8992.375,37.46544,1,15,1,188.267,0,0,0,0,188.267,0,0,0,1,0,6,92.6,6.9,0,93.2,0,186.48,0,0,1.791759,5.228324,0,0,0,1,0,0,93.2,9.104243,1.791759,5.237862,1 +11,4,0,0,3,427100,0,8992.375,38.46544,1,15,1,37.27785,32.94321,21.67317,0,0,91.89423,0,0,0,5,0,6,92.6,6.9,0,93.2,0,186.48,0,0,1.791759,5.228324,0,0,0,1,0,0,93.2,9.104243,1.791759,4.520638,1 +11,4,0,1,1,427101,0,8992.375,15.92882,0,15,1,60.83462,0,0,0,0,60.83462,0,0,0,3,0,6,47.9,6.9,0,70.5,0,186.48,1,0,1.791759,5.228324,0,0,0,1,0,0,70.5,9.104243,1.791759,4.108159,1 +11,4,0,1,2,427101,0,8992.375,16.92882,0,15,1,78.48485,.9469697,34.09091,0,0,113.5227,0,0,0,3,0,6,47.9,6.9,0,70.5,0,186.48,1,0,1.791759,5.228324,0,0,0,1,0,0,70.5,9.104243,1.791759,4.732003,1 +11,4,0,1,3,427101,0,8992.375,17.92882,0,15,1,17.772,0,19.07239,0,0,36.84439,0,0,0,3,0,6,47.9,6.9,0,70.5,0,186.48,1,0,1.791759,5.228324,0,0,0,1,0,0,70.5,9.104243,1.791759,3.606703,1 +11,4,0,1,1,427102,0,8992.375,14.05065,0,15,1,12.87996,0,29.8815,0,0,42.76146,0,0,0,1,0,6,81.9,3.4,0,80.7,0,186.48,1,0,1.791759,5.228324,0,0,0,0,0,0,80.7,9.104243,1.791759,3.755637,1 +11,4,0,1,2,427102,0,8992.375,15.05065,0,15,1,18.93939,0,14.20455,0,0,33.14394,0,0,0,2,0,6,81.9,3.4,0,80.7,0,186.48,1,0,1.791759,5.228324,0,0,0,0,0,0,80.7,9.104243,1.791759,3.50086,1 +11,4,0,1,3,427102,0,8992.375,16.05065,0,15,1,6.501951,0,0,0,0,6.501951,0,0,0,1,0,6,81.9,3.4,0,80.7,0,186.48,1,0,1.791759,5.228324,0,0,0,0,0,0,80.7,9.104243,1.791759,1.872102,1 +11,4,0,1,1,427103,0,8992.375,10.75975,0,15,1,43.88975,0,0,0,0,43.88975,0,0,0,2,0,6,86.7,9.967326,0,92.6,0,186.48,1,0,1.791759,5.228324,0,0,0,0,0,0,92.6,9.104243,1.791759,3.781681,1 +11,4,0,1,2,427103,0,8992.375,11.75975,0,15,1,17.51894,1.657197,23.67424,0,0,42.85038,0,0,0,2,0,6,86.7,9.967326,0,92.6,0,186.48,1,0,1.791759,5.228324,0,0,0,0,0,0,92.6,9.104243,1.791759,3.757715,1 +11,4,0,1,3,427103,0,8992.375,12.75975,0,15,1,17.33854,0,10.83658,0,0,28.17512,0,0,0,2,0,6,86.7,9.967326,0,92.6,0,186.48,1,0,1.791759,5.228324,0,0,0,0,0,0,92.6,9.104243,1.791759,3.338439,1 +11,4,0,1,1,427104,0,8992.375,40.282,0,16,1,0,0,0,0,0,0,0,0,0,0,0,6,86.7,3.4,0,93.2,0,186.48,0,0,1.791759,5.228324,0,0,0,1,0,0,93.2,9.104243,1.791759,,0 +11,4,0,1,2,427104,0,8992.375,41.282,0,16,1,32.67046,0,29.35606,0,0,62.02652,0,0,0,2,0,6,86.7,3.4,0,93.2,0,186.48,0,0,1.791759,5.228324,0,0,0,1,0,0,93.2,9.104243,1.791759,4.127562,1 +11,4,0,1,3,427104,0,8992.375,42.282,0,16,1,21.67317,2.080624,18.20546,0,0,41.95926,0,0,0,1,0,6,86.7,3.4,0,93.2,0,186.48,0,0,1.791759,5.228324,0,0,0,1,0,0,93.2,9.104243,1.791759,3.736699,1 +11,4,0,1,1,427105,0,8992.375,6.269678,0,15,1,0,2.060793,0,0,0,2.060793,0,0,0,0,0,6,90,9.967326,0,96.3,0,186.48,1,0,1.791759,5.228324,0,0,0,0,0,0,96.3,9.104243,1.791759,.7230911,1 +11,4,0,1,2,427105,0,8992.375,7.269678,0,15,1,0,8.049242,0,0,0,8.049242,0,0,0,0,0,6,90,9.967326,0,96.3,0,186.48,1,0,1.791759,5.228324,0,0,0,0,0,0,96.3,9.104243,1.791759,2.085578,1 +11,4,0,1,3,427105,0,8992.375,8.269678,0,15,1,16.03815,9.861292,24.27395,0,0,50.17339,0,0,0,2,0,6,90,9.967326,0,96.3,0,186.48,1,0,1.791759,5.228324,0,0,0,0,0,0,96.3,9.104243,1.791759,3.915485,1 +18,4,25,1,1,427114,0,10536.07,31.29911,1,12,1,28.08989,4.136874,33.70787,0,0,65.93462,0,0,0,4,0,5,77.1,27.6,1,51.1,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,51.1,9.262655,1.609438,4.188663,1 +18,4,25,1,2,427114,0,10536.07,32.29911,1,12,1,140.3188,0,7.501172,0,0,147.82,0,0,0,3,0,5,77.1,27.6,1,51.1,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,51.1,9.262655,1.609438,4.995995,1 +18,4,25,1,3,427114,0,10536.07,33.29911,1,12,1,125.1075,0,31.59931,0,0,156.7068,0,0,0,2,4,5,77.1,27.6,1,51.1,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,51.1,9.262655,1.609438,5.054377,1 +18,4,25,1,1,427115,0,10536.07,8.312115,0,12,1,7.660879,0,0,0,0,7.660879,0,0,0,1,0,5,93.3,9.967326,0,88.9,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,88.9,9.262655,1.609438,2.036127,1 +18,4,25,1,2,427115,0,10536.07,9.312115,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,93.3,9.967326,0,88.9,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,88.9,9.262655,1.609438,,0 +18,4,25,1,3,427115,0,10536.07,10.31211,0,12,1,32.52365,0,0,0,0,32.52365,0,0,0,2,0,5,93.3,9.967326,0,88.9,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,88.9,9.262655,1.609438,3.481967,1 +18,4,25,1,1,427116,0,10536.07,9.582478,1,12,1,175.5567,14.81103,18.8713,0,74.32584,283.5648,1,0,0,7,0,5,71.7,9.967326,0,44.4,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,1,0,0,44.4,9.262655,1.609438,5.647441,1 +18,4,25,1,2,427116,0,10536.07,10.58248,1,12,1,31.64557,5.391468,25.78528,0,425.9728,488.7951,1,0,0,3,0,5,71.7,9.967326,0,44.4,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,1,0,0,44.4,9.262655,1.609438,6.191944,1 +18,4,25,1,3,427116,0,10536.07,11.58248,1,12,1,5.159071,0,27.51505,0,0,32.67412,0,0,0,1,0,5,71.7,9.967326,0,44.4,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,1,0,0,44.4,9.262655,1.609438,3.486583,1 +18,4,25,1,1,427117,0,10536.07,11.2553,1,12,1,76.43003,0,0,0,0,76.43003,0,0,0,4,0,5,75,9.967326,0,96.3,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,96.3,9.262655,1.609438,4.336376,1 +18,4,25,1,2,427117,0,10536.07,12.2553,1,12,1,54.96953,0,1.172058,0,0,56.14159,0,0,0,2,0,5,75,9.967326,0,96.3,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,96.3,9.262655,1.609438,4.027877,1 +18,4,25,1,3,427117,0,10536.07,13.2553,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,75,9.967326,0,96.3,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,96.3,9.262655,1.609438,,0 +18,4,25,1,1,427118,0,10536.07,33.42368,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,80.9,10.3,0,56.8,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,56.8,9.262655,1.609438,,0 +18,4,25,1,2,427118,0,10536.07,34.42368,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,80.9,10.3,0,56.8,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,56.8,9.262655,1.609438,,0 +18,4,25,1,3,427118,0,10536.07,35.42368,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,80.9,10.3,0,56.8,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,56.8,9.262655,1.609438,,0 +16,4,95,1,1,427119,0,11610.56,10.02601,1,14,1,0,0,0,0,0,0,0,0,0,0,0,5,81.7,9.967326,0,96.3,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,96.3,9.359756,1.609438,,0 +16,4,95,1,2,427119,0,11610.56,11.02601,1,14,1,0,0,0,0,0,0,0,0,0,0,0,5,81.7,9.967326,0,96.3,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,96.3,9.359756,1.609438,,0 +16,4,95,1,3,427119,0,11610.56,12.02601,1,14,1,0,0,0,0,0,0,0,0,0,0,0,5,81.7,9.967326,0,96.3,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,96.3,9.359756,1.609438,,0 +16,4,95,1,1,427120,0,11610.56,33.61259,1,14,1,0,1.940756,0,0,0,1.940756,0,0,0,0,0,5,80.9,20.7,1,92,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,92,9.359756,1.609438,.6630775,1 +16,4,95,1,2,427120,0,11610.56,34.61259,1,14,1,0,2.766057,10.31411,0,0,13.08017,0,0,0,0,0,5,80.9,20.7,1,92,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,92,9.359756,1.609438,2.571097,1 +16,4,95,1,3,427120,0,11610.56,35.61259,1,14,1,0,5.932932,0,0,0,5.932932,0,0,0,0,0,5,80.9,20.7,1,92,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,92,9.359756,1.609438,1.780519,1 +16,4,95,1,1,427121,0,11610.56,36,0,16,1,20.42901,0,0,0,0,20.42901,0,0,0,1,0,5,78.2,3.4,1,83,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,83,9.359756,1.609438,3.016956,1 +16,4,95,1,2,427121,0,11610.56,37,0,16,1,16.40881,0,0,0,0,16.40881,0,0,0,1,0,5,78.2,3.4,1,83,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,83,9.359756,1.609438,2.797819,1 +16,4,95,1,3,427121,0,11610.56,38,0,16,1,28.80482,0,0,0,0,28.80482,0,0,0,1,0,5,78.2,3.4,1,83,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,83,9.359756,1.609438,3.360543,1 +16,4,95,1,1,427122,0,11610.56,7.345654,1,14,1,0,3.013279,0,0,0,3.013279,0,0,0,0,0,5,80,9.967326,0,85.2,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,85.2,9.359756,1.609438,1.103029,1 +16,4,95,1,2,427122,0,11610.56,8.345654,1,14,1,0,0,0,0,0,0,0,0,0,0,0,5,80,9.967326,0,85.2,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,85.2,9.359756,1.609438,,0 +16,4,95,1,3,427122,0,11610.56,9.345654,1,14,1,6.448839,3.22442,0,0,0,9.673259,0,0,0,1,0,5,80,9.967326,0,85.2,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,85.2,9.359756,1.609438,2.269365,1 +16,4,95,1,1,427123,0,11610.56,4.602327,0,14,1,17.36466,6.026558,0,0,0,23.39122,0,0,0,2,0,5,83.39137,9.967326,0,81.5,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,81.5,9.359756,1.609438,3.152361,1 +16,4,95,1,2,427123,0,11610.56,5.602327,0,14,1,0,11.95499,0,0,0,11.95499,0,0,0,0,0,5,83.39137,9.967326,0,81.5,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,81.5,9.359756,1.609438,2.481149,1 +16,4,95,1,3,427123,0,11610.56,6.602327,0,14,1,0,0,0,0,0,0,0,0,0,0,0,5,83.39137,9.967326,0,81.5,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,81.5,9.359756,1.609438,,0 +11,4,0,1,1,427133,0,7635.19,26.5681,0,16,1,24.961,2.730109,32.76131,0,0,60.45242,0,0,0,2,1,4,61.2,6.9,0,65.9,0,0,0,0,1.386294,0,0,0,0,1,0,0,65.9,8.940654,1.386294,4.101857,1 +11,4,0,1,2,427133,0,7635.19,27.5681,0,16,1,41.68657,0,0,0,0,41.68657,0,0,0,3,1,4,61.2,6.9,0,65.9,0,0,0,0,1.386294,0,0,0,0,1,0,0,65.9,8.940654,1.386294,3.730179,1 +11,4,0,1,3,427133,0,7635.19,28.5681,0,16,1,30.72871,0,0,0,0,30.72871,0,0,0,1,0,4,61.2,6.9,0,65.9,0,0,0,0,1.386294,0,0,0,0,1,0,0,65.9,8.940654,1.386294,3.425197,1 +11,4,0,1,4,427133,0,7635.19,29.5681,0,16,1,141.4838,0,0,0,0,141.4838,0,0,0,5,1,4,61.2,6.9,0,65.9,0,0,0,0,1.386294,0,0,0,0,1,0,0,65.9,8.940654,1.386294,4.952186,1 +11,4,0,1,5,427133,0,7635.19,30.5681,0,16,1,176.8129,6.555475,0,0,0,183.3684,0,0,0,4,0,4,61.2,6.9,0,65.9,0,0,0,0,1.386294,0,0,0,0,1,0,0,65.9,8.940654,1.386294,5.211497,1 +11,4,0,1,1,427134,0,7635.19,23.87953,1,14,1,18.20073,0,33.54134,0,0,51.74207,0,0,0,1,1,4,55.9,13.8,0,72.7,0,0,0,0,1.386294,0,0,0,0,1,0,0,72.7,8.940654,1.386294,3.946271,1 +11,4,0,1,2,427134,0,7635.19,24.87953,1,14,1,19.11132,0,0,0,0,19.11132,0,0,0,1,1,4,55.9,13.8,0,72.7,0,0,0,0,1.386294,0,0,0,0,1,0,0,72.7,8.940654,1.386294,2.950281,1 +11,4,0,1,3,427134,0,7635.19,25.87953,1,14,1,28.5338,0,0,0,0,28.5338,0,0,0,1,0,4,55.9,13.8,0,72.7,0,0,0,0,1.386294,0,0,0,0,1,0,0,72.7,8.940654,1.386294,3.351089,1 +11,4,0,1,4,427134,0,7635.19,26.87953,1,14,1,26.32629,0,0,0,0,26.32629,0,0,0,2,0,4,55.9,13.8,0,72.7,0,0,0,0,1.386294,0,0,0,0,1,0,0,72.7,8.940654,1.386294,3.270568,1 +11,4,0,1,5,427134,0,7635.19,27.87953,1,14,1,35.62364,3.440899,34.80783,0,0,73.87237,0,0,0,2,1,4,55.9,13.8,0,72.7,0,0,0,0,1.386294,0,0,0,0,1,0,0,72.7,8.940654,1.386294,4.302339,1 +11,4,0,1,1,427135,0,7635.19,2.934976,0,14,1,190.0676,9.786792,0,0,258.0759,457.9303,1,0,0,5,0,4,83.39137,9.967326,0,100,0,0,1,0,1.386294,0,0,0,0,0,0,0,100,8.940654,1.386294,6.126717,1 +11,4,0,1,2,427135,0,7635.19,3.934976,0,14,1,30.81701,1.385571,0,20.30578,0,32.20258,0,0,1,2,0,4,83.39137,9.967326,0,100,0,0,1,0,1.386294,0,0,0,0,0,0,0,100,8.940654,1.386294,3.472047,1 +11,4,0,1,3,427135,0,7635.19,4.934976,0,14,1,10.97454,2.528534,0,0,0,13.50307,0,0,0,2,0,4,83.39137,9.967326,0,100,0,0,1,0,1.386294,0,0,0,0,0,0,0,100,8.940654,1.386294,2.602917,1 +11,4,0,1,4,427135,0,7635.19,5.934976,0,14,1,48.26486,0,0,0,0,48.26486,0,0,0,4,0,4,83.39137,9.967326,0,100,0,0,1,0,1.386294,0,0,0,0,0,0,0,100,8.940654,1.386294,3.876704,1 +11,4,0,1,5,427135,0,7635.19,6.934976,0,14,1,0,0,0,0,0,0,0,0,0,0,0,4,83.39137,9.967326,0,100,0,0,1,0,1.386294,0,0,0,0,0,0,0,100,8.940654,1.386294,,0 +11,4,0,1,1,427136,0,7635.19,.7748117,1,14,1,23.92096,5.24181,0,0,0,29.16277,0,0,0,4,0,4,83.39137,9.967326,0,92.6,0,0,1,1,1.386294,0,0,0,0,1,0,0,92.6,8.940654,1.386294,3.372893,1 +11,4,0,1,2,427136,0,7635.19,1.774812,1,14,1,21.26135,0,0,0,0,21.26135,0,0,0,2,0,4,83.39137,9.967326,0,92.6,0,0,1,1,1.386294,0,0,0,0,1,0,0,92.6,8.940654,1.386294,3.056891,1 +11,4,0,1,3,427136,0,7635.19,2.774812,1,14,1,28.31431,0,4.828797,0,0,33.14311,0,0,0,2,0,4,83.39137,9.967326,0,92.6,0,0,1,1,1.386294,0,0,0,0,1,0,0,92.6,8.940654,1.386294,3.500835,1 +11,4,0,1,4,427136,0,7635.19,3.774812,1,14,1,8.775429,2.325489,0,0,0,11.10092,0,0,0,2,0,4,83.39137,9.967326,0,92.6,0,0,1,1,1.386294,0,0,0,0,1,0,0,92.6,8.940654,1.386294,2.407028,1 +11,4,0,1,5,427136,0,7635.19,4.774812,1,14,1,6.526468,0,0,0,0,6.526468,0,0,0,1,0,4,83.39137,9.967326,0,92.6,0,0,1,1,1.386294,0,0,0,0,1,0,0,92.6,8.940654,1.386294,1.875866,1 +5,4,25,1,1,427152,0,2744.281,11.718,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,63.3,9.967326,0,77.8,150,150,1,0,.6931472,5.010635,0,3.258096,6.39693,0,0,0,77.8,7.917639,.6931472,,0 +5,4,25,1,2,427152,0,2744.281,12.718,0,12,1,89.51049,0,26.80653,0,0,116.317,0,0,0,9,0,2,63.3,9.967326,0,77.8,150,150,1,0,.6931472,5.010635,0,3.258096,6.39693,0,0,0,77.8,7.917639,.6931472,4.75632,1 +5,4,25,1,3,427152,0,2744.281,13.718,0,12,1,6.412997,0,0,0,0,6.412997,0,0,0,1,0,2,63.3,9.967326,0,77.8,150,150,1,0,.6931472,5.010635,0,3.258096,6.39693,0,0,0,77.8,7.917639,.6931472,1.858327,1 +5,4,25,1,1,427153,0,2744.281,33.21561,1,12,1,10.12146,0,0,0,0,10.12146,0,0,0,1,0,2,58,10.3,0,72.6,150,150,0,0,.6931472,5.010635,0,3.258096,6.39693,1,0,0,72.6,7.917639,.6931472,2.314658,1 +5,4,25,1,2,427153,0,2744.281,34.21561,1,12,1,11.18881,0,0,0,0,11.18881,0,0,0,2,0,2,58,10.3,0,72.6,150,150,0,0,.6931472,5.010635,0,3.258096,6.39693,1,0,0,72.6,7.917639,.6931472,2.414914,1 +5,4,25,1,3,427153,0,2744.281,35.21561,1,12,1,281.8213,0,0,0,0,281.8213,0,0,0,6,0,2,58,10.3,0,72.6,150,150,0,0,.6931472,5.010635,0,3.258096,6.39693,1,0,0,72.6,7.917639,.6931472,5.641273,1 +17,4,25,1,1,427161,0,3519.062,8.577686,0,9,1,33.65385,0,0,0,0,33.65385,0,0,0,1,0,7,90,9.967326,0,100,294,294,1,0,1.94591,5.68358,0,3.258096,7.069874,0,0,0,100,8.166234,1.94591,3.516127,1 +17,4,25,1,2,427161,0,3519.062,9.577686,0,9,1,11.65501,0,0,0,0,11.65501,0,0,0,1,0,7,90,9.967326,0,100,294,294,1,0,1.94591,5.68358,0,3.258096,7.069874,0,0,0,100,8.166234,1.94591,2.455736,1 +17,4,25,1,3,427161,0,3519.062,10.57769,0,9,1,2.137666,0,22.87302,0,0,25.01069,0,0,0,1,0,7,90,9.967326,0,100,294,294,1,0,1.94591,5.68358,0,3.258096,7.069874,0,0,0,100,8.166234,1.94591,3.219303,1 +17,4,25,1,4,427161,0,3519.062,11.57769,0,9,1,10.99154,0,0,0,0,10.99154,0,0,0,1,0,6,90,9.967326,0,100,294,294,1,0,1.791759,5.68358,0,3.258096,7.069874,0,0,0,100,8.166234,1.791759,2.397126,1 +17,4,25,1,5,427161,0,3519.062,12.57769,0,9,1,96.32947,0,25.07201,0,0,121.4015,0,0,0,5,0,5,90,9.967326,0,100,294,294,1,0,1.609438,5.68358,0,3.258096,7.069874,0,0,0,100,8.166234,1.609438,4.799103,1 +17,4,25,1,1,427162,0,3519.062,37.57974,1,9,1,115.6174,74.72672,32.38866,0,0,222.7328,0,0,0,7,1,7,45.7,13.8,1,33,294,294,0,0,1.94591,5.68358,0,3.258096,7.069874,1,0,0,33,8.166234,1.94591,5.405973,1 +17,4,25,1,2,427162,0,3519.062,38.57974,1,9,1,36.36364,54.98368,0,0,0,91.34732,0,0,0,2,0,7,45.7,13.8,1,33,294,294,0,0,1.94591,5.68358,0,3.258096,7.069874,1,0,0,33,8.166234,1.94591,4.514669,1 +17,4,25,1,3,427162,0,3519.062,39.57974,1,9,1,0,0,0,0,0,0,0,0,0,0,0,7,45.7,13.8,1,33,294,294,0,0,1.94591,5.68358,0,3.258096,7.069874,1,0,0,33,8.166234,1.94591,,0 +17,4,25,1,4,427162,0,3519.062,40.57974,1,9,1,147.9631,18.15142,0,0,0,166.1145,0,0,0,12,2,6,45.7,13.8,1,33,294,294,0,0,1.791759,5.68358,0,3.258096,7.069874,1,0,0,33,8.166234,1.791759,5.112678,1 +17,4,25,1,5,427162,0,3519.062,41.57974,1,9,1,138.1876,0,35.51106,0,0,173.6986,0,0,0,11,0,5,45.7,13.8,1,33,294,294,0,0,1.609438,5.68358,0,3.258096,7.069874,1,0,0,33,8.166234,1.609438,5.157322,1 +17,4,25,1,1,427163,0,3519.062,14.14647,1,9,1,14.17004,1.341093,0,0,0,15.51113,0,0,0,2,0,7,79.8,17.2,0,72.7,294,294,1,1,1.94591,5.68358,0,3.258096,7.069874,0,0,0,72.7,8.166234,1.94591,2.741558,1 +17,4,25,1,2,427163,0,3519.062,15.14647,1,9,1,67.94872,5.846154,0,0,0,73.79487,0,0,0,9,0,7,79.8,17.2,0,72.7,294,294,1,1,1.94591,5.68358,0,3.258096,7.069874,0,0,0,72.7,8.166234,1.94591,4.301289,1 +17,4,25,1,3,427163,0,3519.062,16.14647,1,9,1,10.68833,0,0,0,0,10.68833,0,0,0,1,0,7,79.8,17.2,0,72.7,294,294,1,1,1.94591,5.68358,0,3.258096,7.069874,0,0,0,72.7,8.166234,1.94591,2.369152,1 +17,4,25,1,1,427165,0,3519.062,6.877481,1,9,1,22.26721,0,3.54251,0,0,25.80972,0,0,0,1,0,7,88.3,9.967326,0,100,294,294,1,1,1.94591,5.68358,0,3.258096,7.069874,0,0,0,100,8.166234,1.94591,3.250751,1 +17,4,25,1,2,427165,0,3519.062,7.877481,1,9,1,0,0,0,0,0,0,0,0,0,0,0,7,88.3,9.967326,0,100,294,294,1,1,1.94591,5.68358,0,3.258096,7.069874,0,0,0,100,8.166234,1.94591,,0 +17,4,25,1,3,427165,0,3519.062,8.877481,1,9,1,1.710132,0,0,0,0,1.710132,0,0,0,1,0,7,88.3,9.967326,0,100,294,294,1,1,1.94591,5.68358,0,3.258096,7.069874,0,0,0,100,8.166234,1.94591,.5365708,1 +17,4,25,1,4,427165,0,3519.062,9.877481,1,9,1,14.98847,0,0,0,0,14.98847,0,0,0,2,0,6,88.3,9.967326,0,100,294,294,1,1,1.791759,5.68358,0,3.258096,7.069874,0,0,0,100,8.166234,1.791759,2.707281,1 +17,4,25,1,5,427165,0,3519.062,10.87748,1,9,1,66.5648,0,0,0,0,66.5648,0,0,0,5,0,5,88.3,9.967326,0,100,294,294,1,1,1.609438,5.68358,0,3.258096,7.069874,0,0,0,100,8.166234,1.609438,4.198176,1 +17,4,25,1,1,427166,0,3519.062,12.59959,0,9,1,45.43522,7.6417,0,0,392.1913,445.2682,1,0,0,7,0,7,90,9.967326,0,100,294,294,1,0,1.94591,5.68358,0,3.258096,7.069874,0,0,0,100,8.166234,1.94591,6.098677,1 +17,4,25,1,2,427166,0,3519.062,13.59959,0,9,1,62.63403,0,0,0,0,62.63403,0,0,0,4,0,7,90,9.967326,0,100,294,294,1,0,1.94591,5.68358,0,3.258096,7.069874,0,0,0,100,8.166234,1.94591,4.137309,1 +17,4,25,1,3,427166,0,3519.062,14.59959,0,9,1,4.275331,2.642155,0,0,0,6.917486,0,0,0,1,0,7,90,9.967326,0,100,294,294,1,0,1.94591,5.68358,0,3.258096,7.069874,0,0,0,100,8.166234,1.94591,1.934052,1 +17,4,25,1,4,427166,0,3519.062,15.59959,0,9,1,0,0,0,0,0,0,0,0,0,0,0,6,90,9.967326,0,100,294,294,1,0,1.791759,5.68358,0,3.258096,7.069874,0,0,0,100,8.166234,1.791759,,0 +17,4,25,1,1,427167,0,3519.062,11.72622,1,9,1,15.18219,0,0,0,0,15.18219,0,0,0,2,0,7,90,9.967326,0,100,294,294,1,1,1.94591,5.68358,0,3.258096,7.069874,0,0,0,100,8.166234,1.94591,2.720123,1 +17,4,25,1,2,427167,0,3519.062,12.72622,1,9,1,11.65501,0,0,0,0,11.65501,0,0,0,1,0,7,90,9.967326,0,100,294,294,1,1,1.94591,5.68358,0,3.258096,7.069874,0,0,0,100,8.166234,1.94591,2.455736,1 +17,4,25,1,3,427167,0,3519.062,13.72622,1,9,1,0,0,0,0,0,0,0,0,0,0,0,7,90,9.967326,0,100,294,294,1,1,1.94591,5.68358,0,3.258096,7.069874,0,0,0,100,8.166234,1.94591,,0 +17,4,25,1,4,427167,0,3519.062,14.72622,1,9,1,6.917756,0,0,0,0,6.917756,0,0,0,1,0,6,90,9.967326,0,100,294,294,1,1,1.791759,5.68358,0,3.258096,7.069874,0,0,0,100,8.166234,1.791759,1.934091,1 +17,4,25,1,5,427167,0,3519.062,15.72622,1,9,1,29.43449,0,25.07201,0,0,54.5065,0,0,0,3,0,5,90,9.967326,0,100,294,294,1,1,1.609438,5.68358,0,3.258096,7.069874,0,0,0,100,8.166234,1.609438,3.99832,1 +17,4,25,1,1,427168,0,3519.062,9.752225,1,9,1,0,0,0,0,0,0,0,0,0,0,0,7,91.7,9.967326,0,100,294,294,1,1,1.94591,5.68358,0,3.258096,7.069874,0,0,0,100,8.166234,1.94591,,0 +17,4,25,1,2,427168,0,3519.062,10.75222,1,9,1,0,0,0,0,0,0,0,0,0,0,0,7,91.7,9.967326,0,100,294,294,1,1,1.94591,5.68358,0,3.258096,7.069874,0,0,0,100,8.166234,1.94591,,0 +17,4,25,1,3,427168,0,3519.062,11.75222,1,9,1,.8550662,0,0,0,0,.8550662,0,0,0,1,0,7,91.7,9.967326,0,100,294,294,1,1,1.94591,5.68358,0,3.258096,7.069874,0,0,0,100,8.166234,1.94591,-.1565763,1 +17,4,25,1,4,427168,0,3519.062,12.75222,1,9,1,24.98078,1.840892,0,0,0,26.82168,0,0,0,3,0,6,91.7,9.967326,0,100,294,294,1,1,1.791759,5.68358,0,3.258096,7.069874,0,0,0,100,8.166234,1.791759,3.28921,1 +17,4,25,1,5,427168,0,3519.062,13.75222,1,9,1,5.268704,0,0,0,0,5.268704,0,0,0,1,0,5,91.7,9.967326,0,100,294,294,1,1,1.609438,5.68358,0,3.258096,7.069874,0,0,0,100,8.166234,1.609438,1.661784,1 +16,4,95,1,1,427180,0,10312.61,36.72827,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,77.7,10.3,0,73.9,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,73.9,9.24122,1.386294,,0 +16,4,95,1,2,427180,0,10312.61,37.72827,0,12,1,27.07454,0,0,0,0,27.07454,0,0,0,3,0,4,77.7,10.3,0,73.9,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,73.9,9.24122,1.386294,3.298594,1 +16,4,95,1,3,427180,0,10312.61,38.72827,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,77.7,10.3,0,73.9,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,73.9,9.24122,1.386294,,0 +16,4,95,1,1,427181,0,10312.61,37.91376,1,12,1,31.15424,9.039837,0,0,0,40.19408,0,0,0,4,0,4,84.6,3.4,1,75,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,75,9.24122,1.386294,3.69372,1 +16,4,95,1,2,427181,0,10312.61,38.91376,1,12,1,45.59306,3.258322,31.41116,0,0,80.26254,0,0,0,5,0,4,84.6,3.4,1,75,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,75,9.24122,1.386294,4.385303,1 +16,4,95,1,3,427181,0,10312.61,39.91376,1,12,1,59.32932,17.7773,.9028375,0,0,78.00946,0,0,0,3,0,4,84.6,3.4,1,75,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,75,9.24122,1.386294,4.35683,1 +16,4,95,1,1,427182,0,10312.61,12.83778,1,12,1,135.332,20.53115,5.107252,0,0,160.9704,0,0,0,5,0,4,93.3,9.967326,0,85.2,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,0,0,0,85.2,9.24122,1.386294,5.081221,1 +16,4,95,1,2,427182,0,10312.61,13.83778,1,12,1,37.97468,13.22082,0,0,0,51.1955,0,0,0,5,0,4,93.3,9.967326,0,85.2,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,0,0,0,85.2,9.24122,1.386294,3.935652,1 +16,4,95,1,3,427182,0,10312.61,14.83778,1,12,1,6.018917,15.47721,0,0,0,21.49613,0,0,0,1,0,4,93.3,9.967326,0,85.2,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,0,0,0,85.2,9.24122,1.386294,3.067873,1 +16,4,95,1,1,427183,0,10312.61,10.90212,0,12,1,9.193054,1.91522,0,0,0,11.10827,0,0,0,2,0,4,70,9.967326,0,96.3,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,96.3,9.24122,1.386294,2.40769,1 +16,4,95,1,2,427183,0,10312.61,11.90212,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,70,9.967326,0,96.3,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,96.3,9.24122,1.386294,,0 +16,4,95,1,3,427183,0,10312.61,12.90212,0,12,1,85.76956,0,0,0,0,85.76956,0,0,0,4,0,4,70,9.967326,0,96.3,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,96.3,9.24122,1.386294,4.451664,1 +13,4,0,1,1,427195,0,12450.44,5.226557,1,16,1,0,0,0,0,0,0,0,0,0,0,0,3,83.3,9.967326,0,96.3,300,291.84,1,1,1.098612,5.676206,1,4.564348,5.755076,0,0,0,96.3,9.429591,1.098612,,0 +13,4,0,1,2,427195,0,12450.44,6.226557,1,16,1,27.97203,0,0,0,0,27.97203,0,0,0,2,0,3,83.3,9.967326,0,96.3,300,291.84,1,1,1.098612,5.676206,1,4.564348,5.755076,0,0,0,96.3,9.429591,1.098612,3.331205,1 +13,4,0,1,3,427195,0,12450.44,7.226557,1,16,1,44.46345,0,0,0,0,44.46345,0,0,0,5,0,3,83.3,9.967326,0,96.3,300,291.84,1,1,1.098612,5.676206,1,4.564348,5.755076,0,0,0,96.3,9.429591,1.098612,3.794667,1 +13,4,0,1,1,427196,0,12450.44,32.74743,1,16,1,104.8583,7.995952,0,37.95547,0,112.8542,0,0,3,6,0,3,50,13.8,0,72.7,300,291.84,0,0,1.098612,5.676206,1,4.564348,5.755076,0,0,0,72.7,9.429591,1.098612,4.726097,1 +13,4,0,1,2,427196,0,12450.44,33.74743,1,16,1,50.81585,0,0,0,0,50.81585,0,0,0,5,0,3,50,13.8,0,72.7,300,291.84,0,0,1.098612,5.676206,1,4.564348,5.755076,0,0,0,72.7,9.429591,1.098612,3.928208,1 +13,4,0,1,3,427196,0,12450.44,34.74743,1,16,1,0,0,0,0,0,0,0,0,0,0,0,3,50,13.8,0,72.7,300,291.84,0,0,1.098612,5.676206,1,4.564348,5.755076,0,0,0,72.7,9.429591,1.098612,,0 +13,4,0,1,1,427197,0,12450.44,1.809719,0,16,1,55.66801,7.667004,0,0,238.7348,302.0698,1,0,0,6,0,3,83.39137,9.967326,0,96.3,300,291.84,1,0,1.098612,5.676206,1,4.564348,5.755076,0,0,0,96.3,9.429591,1.098612,5.710658,1 +13,4,0,1,2,427197,0,12450.44,2.809719,0,16,1,18.64802,1.328671,0,0,9.324009,29.3007,0,0,0,3,0,3,83.39137,9.967326,0,96.3,300,291.84,1,0,1.098612,5.676206,1,4.564348,5.755076,0,0,0,96.3,9.429591,1.098612,3.377611,1 +13,4,0,1,3,427197,0,12450.44,3.809719,0,16,1,23.08679,0,0,0,0,23.08679,0,0,0,1,0,3,83.39137,9.967326,0,96.3,300,291.84,1,0,1.098612,5.676206,1,4.564348,5.755076,0,0,0,96.3,9.429591,1.098612,3.139261,1 +7,4,25,0,1,427204,0,7910.823,1.24846,0,10,1,7.727975,0,0,0,0,7.727975,0,0,0,1,0,4,83.39137,9.967326,0,81.5,750,749.8,1,0,1.386294,6.619806,0,3.258096,8.006368,1,0,0,81.5,8.976113,1.386294,2.044847,1 +7,4,25,0,2,427204,0,7910.823,2.24846,0,10,1,5.681818,0,0,0,0,5.681818,0,0,0,1,0,4,83.39137,9.967326,0,81.5,750,749.8,1,0,1.386294,6.619806,0,3.258096,8.006368,1,0,0,81.5,8.976113,1.386294,1.737271,1 +7,4,25,0,3,427204,0,7910.823,3.24846,0,10,1,0,0,0,0,0,0,0,0,0,0,0,4,83.39137,9.967326,0,81.5,750,749.8,1,0,1.386294,6.619806,0,3.258096,8.006368,1,0,0,81.5,8.976113,1.386294,,0 +7,4,25,0,4,427204,0,7910.823,4.24846,0,10,1,6.301693,0,0,0,0,6.301693,0,0,0,1,0,5,83.39137,9.967326,0,81.5,750,749.8,1,0,1.609438,6.619806,0,3.258096,8.006368,1,0,0,81.5,8.976113,1.609438,1.840818,1 +7,4,25,0,5,427204,0,7910.823,5.24846,0,10,1,6.440072,0,0,0,0,6.440072,0,0,0,1,0,5,83.39137,9.967326,0,81.5,750,749.8,1,0,1.609438,6.619806,0,3.258096,8.006368,1,0,0,81.5,8.976113,1.609438,1.86254,1 +7,4,25,0,1,427205,0,7910.823,3.000684,1,10,1,22.66873,0,0,0,0,22.66873,0,0,0,2,0,4,83.39137,9.967326,0,51.9,750,749.8,1,1,1.386294,6.619806,0,3.258096,8.006368,1,0,0,51.9,8.976113,1.386294,3.120986,1 +7,4,25,0,2,427205,0,7910.823,4.000684,1,10,1,13.73106,3.077652,0,0,0,16.80871,0,0,0,2,0,4,83.39137,9.967326,0,51.9,750,749.8,1,1,1.386294,6.619806,0,3.258096,8.006368,1,0,0,51.9,8.976113,1.386294,2.821897,1 +7,4,25,0,3,427205,0,7910.823,5.000684,1,10,1,6.501951,.8625921,0,0,0,7.364542,0,0,0,1,0,4,83.39137,9.967326,0,51.9,750,749.8,1,1,1.386294,6.619806,0,3.258096,8.006368,1,0,0,51.9,8.976113,1.386294,1.996677,1 +7,4,25,0,4,427205,0,7910.823,6.000684,1,10,1,37.81016,6.278062,0,0,0,44.08822,0,0,0,8,0,5,83.39137,9.967326,0,51.9,750,749.8,1,1,1.609438,6.619806,0,3.258096,8.006368,1,0,0,51.9,8.976113,1.609438,3.786193,1 +7,4,25,0,5,427205,0,7910.823,7.000684,1,10,1,26.47585,5.745975,22.18247,0,0,54.40429,0,0,0,4,1,5,83.39137,9.967326,0,51.9,750,749.8,1,1,1.609438,6.619806,0,3.258096,8.006368,1,0,0,51.9,8.976113,1.609438,3.996443,1 +7,4,25,0,1,427206,0,7910.823,32.37235,0,10,1,5.151984,3.086038,0,0,301.5765,309.8145,1,0,0,1,0,4,77.7,10.3,0,73.9,750,749.8,0,0,1.386294,6.619806,0,3.258096,8.006368,0,0,0,73.9,8.976113,1.386294,5.735974,1 +7,4,25,0,2,427206,0,7910.823,33.37235,0,10,1,13.25758,2.585227,0,0,0,15.8428,0,0,0,2,0,4,77.7,10.3,0,73.9,750,749.8,0,0,1.386294,6.619806,0,3.258096,8.006368,0,0,0,73.9,8.976113,1.386294,2.762715,1 +7,4,25,0,3,427206,0,7910.823,34.37235,0,10,1,60.9016,4.312961,0,0,0,65.21456,0,0,0,7,0,4,77.7,10.3,0,73.9,750,749.8,0,0,1.386294,6.619806,0,3.258096,8.006368,0,0,0,73.9,8.976113,1.386294,4.177683,1 +7,4,25,0,4,427206,0,7910.823,35.37235,0,10,1,15.75423,6.262308,25.20677,0,0,47.22332,0,0,0,1,1,5,77.7,10.3,0,73.9,750,749.8,0,0,1.609438,6.619806,0,3.258096,8.006368,0,0,0,73.9,8.976113,1.609438,3.854888,1 +7,4,25,0,5,427206,0,7910.823,36.37235,0,10,1,10.73345,19.47048,0,0,0,30.20394,0,0,0,2,0,5,77.7,10.3,0,73.9,750,749.8,0,0,1.609438,6.619806,0,3.258096,8.006368,0,0,0,73.9,8.976113,1.609438,3.407972,1 +7,4,25,0,1,427207,0,7910.823,28.60233,1,10,1,12.62236,0,0,0,0,12.62236,0,0,0,1,0,4,85.1,0,0,83,750,749.8,0,0,1.386294,6.619806,0,3.258096,8.006368,0,0,0,83,8.976113,1.386294,2.53547,1 +7,4,25,0,2,427207,0,7910.823,29.60233,1,10,1,102.7794,0,2.840909,0,464.9621,570.5824,1,0,0,3,0,4,85.1,0,0,83,750,749.8,0,0,1.386294,6.619806,0,3.258096,8.006368,0,0,0,83,8.976113,1.386294,6.346658,1 +7,4,25,0,3,427207,0,7910.823,30.60233,1,10,1,19.50585,0,0,0,1578.561,1598.067,2,0,0,3,0,4,85.1,0,0,83,750,749.8,0,0,1.386294,6.619806,0,3.258096,8.006368,0,0,0,83,8.976113,1.386294,7.37655,1 +7,4,25,0,4,427207,0,7910.823,31.60233,1,10,1,0,0,0,0,0,0,0,0,0,0,0,5,85.1,0,0,83,750,749.8,0,0,1.609438,6.619806,0,3.258096,8.006368,0,0,0,83,8.976113,1.609438,,0 +7,4,25,0,5,427207,0,7910.823,32.60233,1,10,1,14.31127,0,0,0,0,14.31127,0,0,0,2,0,5,85.1,0,0,83,750,749.8,0,0,1.609438,6.619806,0,3.258096,8.006368,0,0,0,83,8.976113,1.609438,2.661047,1 +11,4,0,1,1,427208,0,1713.783,1.0705,1,12,1,7.591093,0,0,0,0,7.591093,0,0,0,1,0,2,83.39137,9.967326,0,85.2,0,0,1,1,.6931472,0,0,0,0,1,0,0,85.2,7.447042,.6931472,2.026976,1 +11,4,0,1,2,427208,0,1713.783,2.0705,1,12,1,70.62937,12.70396,0,0,0,83.33334,0,0,0,6,0,2,83.39137,9.967326,0,85.2,0,0,1,1,.6931472,0,0,0,0,1,0,0,85.2,7.447042,.6931472,4.422849,1 +11,4,0,1,3,427208,0,1713.783,3.0705,1,12,1,6.84053,3.569902,0,0,0,10.41043,0,0,0,1,0,2,83.39137,9.967326,0,85.2,0,0,1,1,.6931472,0,0,0,0,1,0,0,85.2,7.447042,.6931472,2.342808,1 +11,4,0,1,1,427209,0,1713.783,21.78782,1,12,1,26.06275,8.790485,22.26721,0,0,57.12045,0,0,0,3,0,2,75,0,0,79.5,0,0,0,0,.6931472,0,0,0,0,1,0,0,79.5,7.447042,.6931472,4.045162,1 +11,4,0,1,2,427209,0,1713.783,22.78782,1,12,1,71.79487,20.67599,6.130536,0,0,98.6014,0,0,0,4,0,2,75,0,0,79.5,0,0,0,0,.6931472,0,0,0,0,1,0,0,79.5,7.447042,.6931472,4.591085,1 +11,4,0,1,3,427209,0,1713.783,23.78782,1,12,1,30.56862,4.788371,0,0,0,35.35699,0,0,0,3,0,2,75,0,0,79.5,0,0,0,0,.6931472,0,0,0,0,1,0,0,79.5,7.447042,.6931472,3.565496,1 +6,4,25,1,1,427210,0,11720.23,13.18823,0,13,1,25.67926,1.016343,0,0,0,26.69561,0,0,0,3,0,4,98.3,9.967326,0,100,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,100,9.369158,1.386294,3.284499,1 +6,4,25,1,2,427210,0,11720.23,14.18823,0,13,1,20.62822,0,0,0,0,20.62822,0,0,0,2,0,4,98.3,9.967326,0,100,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,100,9.369158,1.386294,3.02666,1 +6,4,25,1,3,427210,0,11720.23,15.18823,0,13,1,18.9166,2.687016,0,0,0,21.60361,0,0,0,3,0,4,98.3,9.967326,0,100,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,100,9.369158,1.386294,3.07286,1 +6,4,25,1,1,427211,0,11720.23,11.62218,1,13,1,35.82227,1.016343,30.64351,0,0,67.48212,0,0,0,2,0,4,98.3,9.967326,0,100,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,0,0,0,100,9.369158,1.386294,4.211863,1 +6,4,25,1,2,427211,0,11720.23,12.62218,1,13,1,28.12939,2.639475,0,0,0,30.76887,0,0,0,4,0,4,98.3,9.967326,0,100,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,0,0,0,100,9.369158,1.386294,3.426503,1 +6,4,25,1,3,427211,0,11720.23,13.62218,1,13,1,102.7515,0,25.02579,0,0,127.7773,0,0,0,8,0,4,98.3,9.967326,0,100,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,0,0,0,100,9.369158,1.386294,4.850289,1 +6,4,25,1,1,427212,0,11720.23,35.64956,1,13,1,12.76813,4.468846,0,0,0,17.23698,0,0,0,1,0,4,98.4,0,1,94.3,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,94.3,9.369158,1.386294,2.847057,1 +6,4,25,1,2,427212,0,11720.23,36.64956,1,13,1,11.72058,0,0,0,0,11.72058,0,0,0,1,0,4,98.4,0,1,94.3,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,94.3,9.369158,1.386294,2.461346,1 +6,4,25,1,3,427212,0,11720.23,37.64956,1,13,1,49.01118,0,27.15391,0,384.5873,460.7523,1,0,0,5,0,4,98.4,0,1,94.3,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,94.3,9.369158,1.386294,6.132861,1 +6,4,25,1,1,427213,0,11720.23,39.78918,0,16,1,59.37181,14.55567,3.575077,0,0,77.50256,0,0,0,5,0,4,89.4,13.8,0,81.8,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,81.8,9.369158,1.386294,4.350311,1 +6,4,25,1,2,427213,0,11720.23,40.78918,0,16,1,139.5921,4.992968,0,0,0,144.5851,0,0,0,2,0,4,89.4,13.8,0,81.8,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,81.8,9.369158,1.386294,4.973868,1 +6,4,25,1,3,427213,0,11720.23,41.78918,0,16,1,56.74979,21.38865,0,0,0,78.13844,0,0,0,3,0,4,89.4,13.8,0,81.8,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,81.8,9.369158,1.386294,4.358482,1 +11,4,0,1,1,427219,0,10515.54,42.59274,1,12,1,121.5334,31.62955,0,0,0,153.1629,0,0,0,6,0,6,22.9,37.9,0,35.2,0,30,0,0,1.791759,3.401197,0,0,0,1,0,0,35.2,9.260705,1.791759,5.031502,1 +11,4,0,1,2,427219,0,10515.54,43.59274,1,12,1,60.45221,33.79953,26.80653,0,0,121.0583,0,0,0,3,0,6,22.9,37.9,0,35.2,0,30,0,0,1.791759,3.401197,0,0,0,1,0,0,35.2,9.260705,1.791759,4.796272,1 +11,4,0,1,3,427219,0,10515.54,44.59274,1,12,1,0,26.7422,0,0,0,26.7422,0,0,0,0,0,4,22.9,37.9,0,35.2,0,30,0,0,1.386294,3.401197,0,0,0,1,0,0,35.2,9.260705,1.386294,3.286243,1 +11,4,0,1,4,427219,0,10515.54,45.59274,1,12,1,73.78939,35.49193,0,0,0,109.2813,0,0,0,3,0,5,22.9,37.9,0,35.2,0,30,0,0,1.609438,3.401197,0,0,0,1,0,0,35.2,9.260705,1.609438,4.693925,1 +11,4,0,1,5,427219,0,10515.54,46.59274,1,12,1,68.31753,25.39515,29.85599,0,0,123.5687,0,0,0,5,0,5,22.9,37.9,0,35.2,0,30,0,0,1.609438,3.401197,0,0,0,1,0,0,35.2,9.260705,1.609438,4.816797,1 +11,4,0,1,1,427220,0,10515.54,4.722793,0,12,1,38.46154,5.668016,0,0,0,44.12955,0,0,0,3,0,6,83.39137,9.967326,0,74.1,0,30,1,0,1.791759,3.401197,0,0,0,0,0,0,74.1,9.260705,1.791759,3.78713,1 +11,4,0,1,2,427220,0,10515.54,5.722793,0,12,1,53.14685,4.662004,0,0,0,57.80886,0,0,0,4,0,6,83.39137,9.967326,0,74.1,0,30,1,0,1.791759,3.401197,0,0,0,0,0,0,74.1,9.260705,1.791759,4.057142,1 +11,4,0,1,3,427220,0,10515.54,6.722793,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,83.39137,9.967326,0,74.1,0,30,1,0,1.386294,3.401197,0,0,0,0,0,0,74.1,9.260705,1.386294,,0 +11,4,0,1,4,427220,0,10515.54,7.722793,0,12,1,5.380476,0,0,0,0,5.380476,0,0,0,1,0,5,83.39137,9.967326,0,74.1,0,30,1,0,1.609438,3.401197,0,0,0,0,0,0,74.1,9.260705,1.609438,1.682777,1 +11,4,0,1,5,427220,0,10515.54,8.722793,0,12,1,5.268704,0,0,0,0,5.268704,0,0,0,1,0,5,83.39137,9.967326,0,74.1,0,30,1,0,1.609438,3.401197,0,0,0,0,0,0,74.1,9.260705,1.609438,1.661784,1 +11,4,0,1,1,427221,0,10515.54,6.075291,1,12,1,14.82794,0,0,0,0,14.82794,0,0,0,1,0,6,70,9.967326,0,70.4,0,30,1,1,1.791759,3.401197,0,0,0,0,0,0,70.4,9.260705,1.791759,2.696513,1 +11,4,0,1,2,427221,0,10515.54,7.075291,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,70,9.967326,0,70.4,0,30,1,1,1.791759,3.401197,0,0,0,0,0,0,70.4,9.260705,1.791759,,0 +11,4,0,1,3,427221,0,10515.54,8.075291,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,70,9.967326,0,70.4,0,30,1,1,1.386294,3.401197,0,0,0,0,0,0,70.4,9.260705,1.386294,,0 +11,4,0,1,4,427221,0,10515.54,9.075291,1,12,1,5.380476,0,0,0,0,5.380476,0,0,0,1,0,5,70,9.967326,0,70.4,0,30,1,1,1.609438,3.401197,0,0,0,0,0,0,70.4,9.260705,1.609438,1.682777,1 +11,4,0,1,5,427221,0,10515.54,10.07529,1,12,1,6.322445,0,0,0,0,6.322445,0,0,0,1,0,5,70,9.967326,0,70.4,0,30,1,1,1.609438,3.401197,0,0,0,0,0,0,70.4,9.260705,1.609438,1.844106,1 +11,4,0,1,1,427222,0,10515.54,16.07118,1,12,1,49.27126,.8248988,0,0,389.6255,439.7216,1,0,0,1,0,6,79.8,0,0,86.4,0,30,1,1,1.791759,3.401197,0,0,0,0,0,0,86.4,9.260705,1.791759,6.086142,1 +11,4,0,1,2,427222,0,10515.54,17.07118,1,12,1,92.54079,2.097902,0,0,0,94.63869,0,0,0,1,1,6,79.8,0,0,86.4,0,30,1,1,1.791759,3.401197,0,0,0,0,0,0,86.4,9.260705,1.791759,4.550066,1 +11,4,0,1,1,427223,0,10515.54,52.08761,0,12,1,168.9372,11.8168,59.6913,0,0,240.4453,0,0,0,6,0,6,83.5,6.9,0,77.3,0,30,0,0,1.791759,3.401197,0,0,0,1,0,0,77.3,9.260705,1.791759,5.482493,1 +11,4,0,1,2,427223,0,10515.54,53.08761,0,12,1,18.99767,6.969697,0,0,0,25.96737,0,0,0,1,0,6,83.5,6.9,0,77.3,0,30,0,0,1.791759,3.401197,0,0,0,1,0,0,77.3,9.260705,1.791759,3.25684,1 +11,4,0,1,3,427223,0,10515.54,54.08761,0,12,1,125.2672,6.39162,10.68833,0,0,142.3472,0,0,0,1,20,4,83.5,6.9,0,77.3,0,30,0,0,1.386294,3.401197,0,0,0,1,0,0,77.3,9.260705,1.386294,4.958269,1 +11,4,0,1,4,427223,0,10515.54,55.08761,0,12,1,50.73021,0,46.11837,0,0,96.84858,0,0,0,0,8,5,83.5,6.9,0,77.3,0,30,0,0,1.609438,3.401197,0,0,0,1,0,0,77.3,9.260705,1.609438,4.573149,1 +11,4,0,1,5,427223,0,10515.54,56.08761,0,12,1,101.5982,5.953635,0,0,0,107.5518,0,0,0,4,8,5,83.5,6.9,0,77.3,0,30,0,0,1.609438,3.401197,0,0,0,1,0,0,77.3,9.260705,1.609438,4.677973,1 +11,4,0,1,1,427224,0,7910.823,21.02669,0,13,1,12.76813,0,0,0,0,12.76813,0,0,0,1,0,1,39.9,20.7,0,71.6,0,348,0,0,0,5.852202,0,0,0,1,0,0,71.6,8.976113,0,2.546952,1 +11,4,0,1,2,427224,0,7910.823,22.02669,0,13,1,33.78341,0,0,0,0,33.78341,0,0,0,1,0,1,39.9,20.7,0,71.6,0,348,0,0,0,5.852202,0,0,0,1,0,0,71.6,8.976113,0,3.51997,1 +11,4,0,1,3,427224,0,7910.823,23.02669,0,13,1,36.71109,.8598452,22.7859,0,0,60.35683,0,0,0,4,0,1,39.9,20.7,0,71.6,0,348,0,0,0,5.852202,0,0,0,1,0,0,71.6,8.976113,0,4.100274,1 +11,4,0,1,4,427224,0,7910.823,24.02669,0,13,1,63.25708,1.938736,0,0,0,65.19582,0,0,0,3,0,1,39.9,20.7,0,71.6,0,348,0,0,0,5.852202,0,0,0,1,0,0,71.6,8.976113,0,4.177395,1 +11,4,0,1,5,427224,0,7910.823,25.02669,0,13,1,0,0,0,0,0,0,0,0,0,0,0,1,39.9,20.7,0,71.6,0,348,0,0,0,5.852202,0,0,0,1,0,0,71.6,8.976113,0,,0 +11,4,0,1,1,427262,0,3559.531,32.1013,1,12,1,5.151984,1.854714,0,0,0,7.006698,0,0,0,1,0,3,85.1,6.9,0,70.5,0,0,0,0,1.098612,0,0,0,0,1,0,0,70.5,8.177665,1.098612,1.946867,1 +11,4,0,1,2,427262,0,3559.531,33.1013,1,12,1,11.83712,0,0,0,0,11.83712,0,0,0,1,0,3,85.1,6.9,0,70.5,0,0,0,0,1.098612,0,0,0,0,1,0,0,70.5,8.177665,1.098612,2.471241,1 +11,4,0,1,3,427262,0,3559.531,34.1013,1,12,1,18.85566,13.15128,0,0,0,32.00694,0,0,0,2,0,3,85.1,6.9,0,70.5,0,0,0,0,1.098612,0,0,0,0,1,0,0,70.5,8.177665,1.098612,3.465953,1 +11,4,0,1,1,427263,0,3559.531,34.31896,0,13,1,22.28233,0,0,0,0,22.28233,0,0,0,1,0,3,76.6,10.3,0,76.1,0,0,0,0,1.098612,0,0,0,0,1,0,0,76.1,8.177665,1.098612,3.103794,1 +11,4,0,1,2,427263,0,3559.531,35.31896,0,13,1,125.8996,0,0,0,0,125.8996,0,0,0,5,0,3,76.6,10.3,0,76.1,0,0,0,0,1.098612,0,0,0,0,1,0,0,76.1,8.177665,1.098612,4.835485,1 +11,4,0,1,3,427263,0,3559.531,36.31896,0,13,1,84.78544,7.147811,0,0,0,91.93325,0,0,0,5,1,3,76.6,10.3,0,76.1,0,0,0,0,1.098612,0,0,0,0,1,0,0,76.1,8.177665,1.098612,4.521063,1 +11,4,0,1,1,427264,0,3559.531,8.50924,0,12,1,28.99021,13.6373,0,0,0,42.62751,0,0,0,3,0,3,66.7,9.967326,0,66.7,0,0,1,0,1.098612,0,0,0,0,1,0,0,66.7,8.177665,1.098612,3.7525,1 +11,4,0,1,2,427264,0,3559.531,9.50924,0,12,1,15.86174,9.758523,0,0,0,25.62027,0,0,0,2,0,3,66.7,9.967326,0,66.7,0,0,1,0,1.098612,0,0,0,0,1,0,0,66.7,8.177665,1.098612,3.243384,1 +11,4,0,1,3,427264,0,3559.531,10.50924,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,66.7,9.967326,0,66.7,0,0,1,0,1.098612,0,0,0,0,1,0,0,66.7,8.177665,1.098612,,0 +11,4,0,1,1,427281,0,3134.956,6.53525,0,12,1,11.23596,0,0,0,0,11.23596,0,0,0,2,0,4,91.7,9.967326,0,96.3,0,204.6,1,0,1.386294,5.321057,0,0,0,0,0,0,96.3,8.05069,1.386294,2.419119,1 +11,4,0,1,2,427281,0,3134.956,7.53525,0,12,1,12.1894,5.977497,0,0,0,18.1669,0,0,0,2,0,4,91.7,9.967326,0,96.3,0,204.6,1,0,1.386294,5.321057,0,0,0,0,0,0,96.3,8.05069,1.386294,2.899601,1 +11,4,0,1,3,427281,0,3134.956,8.53525,0,12,1,6.018917,5.481514,0,0,0,11.50043,0,0,0,1,0,5,91.7,9.967326,0,96.3,0,204.6,1,0,1.609438,5.321057,0,0,0,0,0,0,96.3,8.05069,1.609438,2.442384,1 +11,4,0,1,1,427282,0,3134.956,2.176591,0,12,1,17.87538,0,0,0,0,17.87538,0,0,0,3,0,4,83.39137,9.967326,0,96.3,0,204.6,1,0,1.386294,5.321057,0,0,0,0,0,0,96.3,8.05069,1.386294,2.883425,1 +11,4,0,1,2,427282,0,3134.956,3.176591,0,12,1,15.93999,1.064229,0,0,0,17.00422,0,0,0,3,0,4,83.39137,9.967326,0,96.3,0,204.6,1,0,1.386294,5.321057,0,0,0,0,0,0,96.3,8.05069,1.386294,2.833462,1 +11,4,0,1,3,427282,0,3134.956,4.176591,0,12,1,29.23474,6.964746,0,0,0,36.19949,0,0,0,3,2,5,83.39137,9.967326,0,96.3,0,204.6,1,0,1.609438,5.321057,0,0,0,0,0,0,96.3,8.05069,1.609438,3.589045,1 +11,4,0,1,1,427283,0,3134.956,26.60096,1,12,1,112.5741,4.826354,0,0,0,117.4004,0,0,0,4,3,4,88.3,3.4,0,77.3,0,204.6,0,0,1.386294,5.321057,0,0,0,0,0,0,77.3,8.05069,1.386294,4.76559,1 +11,4,0,1,2,427283,0,3134.956,27.60096,1,12,1,62.00188,0,0,0,555.4478,617.4496,1,0,0,0,7,4,88.3,3.4,0,77.3,0,204.6,0,0,1.386294,5.321057,0,0,0,0,0,0,77.3,8.05069,1.386294,6.425597,1 +11,4,0,1,3,427283,0,3134.956,28.60096,1,12,1,670.4342,0,0,0,0,670.4342,0,0,0,7,0,5,88.3,3.4,0,77.3,0,204.6,0,0,1.609438,5.321057,0,0,0,0,0,0,77.3,8.05069,1.609438,6.507926,1 +11,4,0,1,1,427284,0,3134.956,29.00753,0,14,1,54.90296,0,0,0,0,54.90296,0,0,0,3,0,4,83,3.4,0,88.6,0,204.6,0,0,1.386294,5.321057,0,0,0,0,0,0,88.6,8.05069,1.386294,4.005567,1 +11,4,0,1,2,427284,0,3134.956,30.00753,0,14,1,241.2564,0,70.32349,0,0,311.5799,0,0,0,1,1,4,83,3.4,0,88.6,0,204.6,0,0,1.386294,5.321057,0,0,0,0,0,0,88.6,8.05069,1.386294,5.741656,1 +11,4,0,1,3,427284,0,3134.956,31.00753,0,14,1,37.29579,8.361995,12.89768,0,0,58.55546,0,0,0,2,3,5,83,3.4,0,88.6,0,204.6,0,0,1.609438,5.321057,0,0,0,0,0,0,88.6,8.05069,1.609438,4.069974,1 +13,4,0,1,1,427285,0,527.8593,12.17248,1,13,1,91.16445,5.87334,0,0,0,97.0378,0,0,0,3,0,2,91.7,9.967326,0,88.9,300,300,1,1,.6931472,5.703783,1,4.564348,5.755076,1,0,0,88.9,6.270722,.6931472,4.5751,1 +13,4,0,1,2,427285,0,527.8593,13.17248,1,13,1,83.45054,0,0,0,0,83.45054,0,0,0,5,0,2,91.7,9.967326,0,88.9,300,300,1,1,.6931472,5.703783,1,4.564348,5.755076,1,0,0,88.9,6.270722,.6931472,4.424254,1 +13,4,0,1,3,427285,0,527.8593,14.17248,1,13,1,111.8874,2.55804,0,25.79536,0,114.4454,0,0,3,8,0,2,91.7,9.967326,0,88.9,300,300,1,1,.6931472,5.703783,1,4.564348,5.755076,1,0,0,88.9,6.270722,.6931472,4.740098,1 +13,4,0,1,1,427286,0,527.8593,45.41821,1,13,1,6.128703,7.660879,0,0,0,13.78958,0,0,0,1,0,2,85.6,17.2,0,89.8,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,89.8,6.270722,.6931472,2.623913,1 +13,4,0,1,2,427286,0,527.8593,46.41821,1,13,1,33.52086,0,0,0,0,33.52086,0,0,0,2,0,2,85.6,17.2,0,89.8,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,89.8,6.270722,.6931472,3.512168,1 +13,4,0,1,3,427286,0,527.8593,47.41821,1,13,1,0,0,0,17.19691,0,0,0,0,2,0,0,2,85.6,17.2,0,89.8,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,89.8,6.270722,.6931472,,0 +15,4,95,1,1,427304,0,2381.818,4.750171,1,10,1,60.50101,44.77733,0,0,0,105.2783,0,0,0,4,0,3,83.39137,9.967326,0,29.6,322,322,1,1,1.098612,5.774551,0,4.564348,5.825845,0,0,1,29.6,7.776039,1.098612,4.656608,1 +15,4,95,1,2,427304,0,2381.818,5.750171,1,10,1,62.37762,66.63869,7.925408,0,226.3869,363.3287,1,0,0,7,0,3,83.39137,9.967326,0,29.6,322,322,1,1,1.098612,5.774551,0,4.564348,5.825845,0,0,1,29.6,7.776039,1.098612,5.895308,1 +15,4,95,1,3,427304,0,2381.818,6.750171,1,10,1,270.0257,58.58487,0,0,0,328.6105,0,0,0,5,0,3,83.39137,9.967326,0,29.6,322,322,1,1,1.098612,5.774551,0,4.564348,5.825845,0,0,1,29.6,7.776039,1.098612,5.794873,1 +15,4,95,1,1,427305,0,2381.818,23.22793,1,10,1,0,7.312753,0,0,0,7.312753,0,0,0,0,0,3,70.7,10.3,0,85.2,322,322,0,0,1.098612,5.774551,0,4.564348,5.825845,0,0,0,85.2,7.776039,1.098612,1.98962,1 +15,4,95,1,2,427305,0,2381.818,24.22793,1,10,1,30.30303,8.195805,0,0,0,38.49883,0,0,0,4,0,3,70.7,10.3,0,85.2,322,322,0,0,1.098612,5.774551,0,4.564348,5.825845,0,0,0,85.2,7.776039,1.098612,3.650628,1 +15,4,95,1,3,427305,0,2381.818,25.22793,1,10,1,37.10987,7.058572,0,0,0,44.16845,0,0,0,4,0,3,70.7,10.3,0,85.2,322,322,0,0,1.098612,5.774551,0,4.564348,5.825845,0,0,0,85.2,7.776039,1.098612,3.788011,1 +15,4,95,1,1,427306,0,2381.818,2.034223,1,10,1,5.060729,8.603239,0,0,0,13.66397,0,0,0,1,0,3,83.39137,9.967326,0,25.9,322,322,1,1,1.098612,5.774551,0,4.564348,5.825845,1,0,0,25.9,7.776039,1.098612,2.614762,1 +15,4,95,1,2,427306,0,2381.818,3.034223,1,10,1,28.32168,9.160839,0,0,0,37.48252,0,0,0,3,0,3,83.39137,9.967326,0,25.9,322,322,1,1,1.098612,5.774551,0,4.564348,5.825845,1,0,0,25.9,7.776039,1.098612,3.623875,1 +15,4,95,1,3,427306,0,2381.818,4.034223,1,10,1,11.97093,4.360838,0,0,0,16.33177,0,0,0,2,0,3,83.39137,9.967326,0,25.9,322,322,1,1,1.098612,5.774551,0,4.564348,5.825845,1,0,0,25.9,7.776039,1.098612,2.793112,1 +11,4,0,1,1,427317,0,2731.378,12.87885,0,12,1,18.21862,3.997976,0,0,0,22.2166,0,0,0,3,0,5,78.3,9.967326,1,55.6,0,0,1,0,1.609438,0,0,0,0,0,0,0,55.6,7.912928,1.609438,3.10084,1 +11,4,0,1,2,427317,0,2731.378,13.87885,0,12,1,108.8578,3.030303,.9324009,0,0,112.8205,0,0,0,8,0,5,78.3,9.967326,1,55.6,0,0,1,0,1.609438,0,0,0,0,0,0,0,55.6,7.912928,1.609438,4.725798,1 +11,4,0,1,3,427317,0,2731.378,14.87885,0,12,1,27.469,3.398888,0,0,0,30.86789,0,0,0,4,0,5,78.3,9.967326,1,55.6,0,0,1,0,1.609438,0,0,0,0,0,0,0,55.6,7.912928,1.609438,3.429717,1 +11,4,0,1,1,427318,0,2731.378,11.77823,1,12,1,41.49797,3.036437,31.5081,0,0,76.04251,0,0,0,6,0,5,80,9.967326,0,88.9,0,0,1,1,1.609438,0,0,0,0,0,0,0,88.9,7.912928,1.609438,4.331293,1 +11,4,0,1,2,427318,0,2731.378,12.77823,1,12,1,62.12121,13.61305,60.54079,0,0,136.2751,0,0,0,6,0,5,80,9.967326,0,88.9,0,0,1,1,1.609438,0,0,0,0,0,0,0,88.9,7.912928,1.609438,4.914675,1 +11,4,0,1,3,427318,0,2731.378,13.77823,1,12,1,39.11928,7.054296,12.06071,0,0,58.23429,0,0,0,4,0,5,80,9.967326,0,88.9,0,0,1,1,1.609438,0,0,0,0,0,0,0,88.9,7.912928,1.609438,4.064474,1 +11,4,0,1,1,427319,0,2731.378,34.99521,1,12,1,67.37854,23.96255,0,0,0,91.34109,0,0,0,3,0,5,78.2,31,0,73.9,0,0,0,0,1.609438,0,0,0,0,1,0,0,73.9,7.912928,1.609438,4.514601,1 +11,4,0,1,2,427319,0,2731.378,35.99521,1,12,1,56.36364,15.61772,0,0,441.5664,513.5478,1,0,0,3,0,5,78.2,31,0,73.9,0,0,0,0,1.609438,0,0,0,0,1,0,0,73.9,7.912928,1.609438,6.241343,1 +11,4,0,1,3,427319,0,2731.378,36.99521,1,12,1,46.51561,20.50021,0,136.8106,0,67.01582,0,0,8,3,0,5,78.2,31,0,73.9,0,0,0,0,1.609438,0,0,0,0,1,0,0,73.9,7.912928,1.609438,4.204929,1 +11,4,0,1,1,427320,0,2731.378,10.68583,0,12,1,27.32794,24.79757,0,0,0,52.12551,0,0,0,7,0,5,61.7,9.967326,0,85.2,0,0,1,0,1.609438,0,0,0,0,0,0,0,85.2,7.912928,1.609438,3.953655,1 +11,4,0,1,2,427320,0,2731.378,11.68583,0,12,1,61.53846,24.07925,31.56643,130.5361,0,117.1842,0,0,7,8,0,5,61.7,9.967326,0,85.2,0,0,1,0,1.609438,0,0,0,0,0,0,0,85.2,7.912928,1.609438,4.763747,1 +11,4,0,1,3,427320,0,2731.378,12.68583,0,12,1,65.45532,3.420265,0,684.053,0,68.87559,0,0,40,5,0,5,61.7,9.967326,0,85.2,0,0,1,0,1.609438,0,0,0,0,0,0,0,85.2,7.912928,1.609438,4.232302,1 +11,4,0,1,1,427321,0,2731.378,2.195756,0,12,1,40.63259,12.67713,0,0,0,53.30972,0,0,0,4,0,5,83.39137,9.967326,0,66.7,0,0,1,0,1.609438,0,0,0,0,0,0,0,66.7,7.912928,1.609438,3.976119,1 +11,4,0,1,2,427321,0,2731.378,3.195756,0,12,1,67.85548,10.72261,0,0,0,78.57809,0,0,0,7,0,5,83.39137,9.967326,0,66.7,0,0,1,0,1.609438,0,0,0,0,0,0,0,66.7,7.912928,1.609438,4.364093,1 +11,4,0,1,3,427321,0,2731.378,4.195756,0,12,1,13.33903,6.263361,0,0,0,19.60239,0,0,0,2,0,5,83.39137,9.967326,0,66.7,0,0,1,0,1.609438,0,0,0,0,0,0,0,66.7,7.912928,1.609438,2.975652,1 +11,4,0,0,1,427338,0,8252.786,60.37235,1,12,1,36.06388,14.43586,35.03349,0,0,85.53323,0,0,0,3,1,1,91.5,24.1,1,44.3,0,0,0,0,0,0,0,0,0,0,1,0,44.3,9.018427,0,4.448905,1 +11,4,0,0,2,427338,0,8252.786,61.37235,1,12,1,136.6004,39.77273,4.971591,0,6370.99,6552.334,1,0,0,7,10,1,91.5,24.1,1,44.3,0,0,0,0,0,0,0,0,0,0,1,0,44.3,9.018427,0,8.787577,1 +11,4,0,0,3,427338,0,8252.786,62.37235,1,12,.5561644,588.3832,38.88166,20.78457,0,1548.57,2196.619,1,0,0,30,1,1,91.5,24.1,1,44.3,0,0,0,0,0,0,0,0,0,0,1,0,44.3,9.018427,0,7.694674,1 +17,4,25,1,1,427346,0,6868.035,8.054757,0,12,1,14.53013,0,0,0,0,14.53013,0,0,0,2,0,4,86.7,9.967326,0,70.4,553.25,528.25,1,0,1.386294,6.26957,0,3.258096,7.702105,1,0,0,70.4,8.834779,1.386294,2.676225,1 +17,4,25,1,2,427346,0,6868.035,9.054757,0,12,1,24.84763,1.101735,0,0,0,25.94937,0,0,0,4,0,4,86.7,9.967326,0,70.4,553.25,528.25,1,0,1.386294,6.26957,0,3.258096,7.702105,1,0,0,70.4,8.834779,1.386294,3.256147,1 +17,4,25,1,3,427346,0,6868.035,10.05476,0,12,1,14.29493,2.730009,0,0,0,17.02493,0,0,0,2,0,4,86.7,9.967326,0,70.4,553.25,528.25,1,0,1.386294,6.26957,0,3.258096,7.702105,1,0,0,70.4,8.834779,1.386294,2.834679,1 +17,4,25,1,4,427346,0,6868.035,11.05476,0,12,1,15.12214,0,0,0,0,15.12214,0,0,0,3,0,4,86.7,9.967326,0,70.4,553.25,528.25,1,0,1.386294,6.26957,0,3.258096,7.702105,1,0,0,70.4,8.834779,1.386294,2.71616,1 +17,4,25,1,5,427346,0,6868.035,12.05476,0,12,1,435.3574,0,0,0,441.0049,876.3624,1,0,0,9,0,4,86.7,9.967326,0,70.4,553.25,528.25,1,0,1.386294,6.26957,0,3.258096,7.702105,1,0,0,70.4,8.834779,1.386294,6.77578,1 +17,4,25,1,1,427347,0,6868.035,3.830253,1,12,1,12.76813,0,0,0,0,12.76813,0,0,0,2,0,4,83.39137,9.967326,0,63,553.25,528.25,1,1,1.386294,6.26957,0,3.258096,7.702105,1,0,0,63,8.834779,1.386294,2.546952,1 +17,4,25,1,2,427347,0,6868.035,4.830253,1,12,1,21.09705,2.508204,0,0,0,23.60525,0,0,0,4,0,4,83.39137,9.967326,0,63,553.25,528.25,1,1,1.386294,6.26957,0,3.258096,7.702105,1,0,0,63,8.834779,1.386294,3.161469,1 +17,4,25,1,3,427347,0,6868.035,5.830253,1,12,1,13.22012,0,0,0,0,13.22012,0,0,0,2,0,4,83.39137,9.967326,0,63,553.25,528.25,1,1,1.386294,6.26957,0,3.258096,7.702105,1,0,0,63,8.834779,1.386294,2.58174,1 +17,4,25,1,4,427347,0,6868.035,6.830253,1,12,1,19.62001,0,0,0,0,19.62001,0,0,0,1,0,4,83.39137,9.967326,0,63,553.25,528.25,1,1,1.386294,6.26957,0,3.258096,7.702105,1,0,0,63,8.834779,1.386294,2.97655,1 +17,4,25,1,5,427347,0,6868.035,7.830253,1,12,1,5.307856,0,0,0,0,5.307856,0,0,0,1,0,4,83.39137,9.967326,0,63,553.25,528.25,1,1,1.386294,6.26957,0,3.258096,7.702105,1,0,0,63,8.834779,1.386294,1.669188,1 +17,4,25,1,1,427348,0,6868.035,32.19986,1,12,1,34.72932,4.581205,0,0,0,39.31052,0,0,0,1,1,4,76.6,13.8,1,50,553.25,528.25,0,0,1.386294,6.26957,0,3.258096,7.702105,1,0,0,50,8.834779,1.386294,3.671492,1 +17,4,25,1,2,427348,0,6868.035,33.19986,1,12,1,16.87764,9.446789,0,0,0,26.32442,0,0,0,2,0,4,76.6,13.8,1,50,553.25,528.25,0,0,1.386294,6.26957,0,3.258096,7.702105,1,0,0,50,8.834779,1.386294,3.270497,1 +17,4,25,1,3,427348,0,6868.035,34.19986,1,12,1,315.0645,10.16767,4.299226,0,0,329.5314,0,0,0,6,4,4,76.6,13.8,1,50,553.25,528.25,0,0,1.386294,6.26957,0,3.258096,7.702105,1,0,0,50,8.834779,1.386294,5.797672,1 +17,4,25,1,4,427348,0,6868.035,35.19986,1,12,1,43.42768,1.667313,0,0,0,45.095,0,0,0,1,5,4,76.6,13.8,1,50,553.25,528.25,0,0,1.386294,6.26957,0,3.258096,7.702105,1,0,0,50,8.834779,1.386294,3.808771,1 +17,4,25,1,5,427348,0,6868.035,36.19986,1,12,1,184.0057,0,0,0,578.5775,762.5831,1,0,0,5,0,4,76.6,13.8,1,50,553.25,528.25,0,0,1.386294,6.26957,0,3.258096,7.702105,1,0,0,50,8.834779,1.386294,6.636712,1 +17,4,25,1,1,427349,0,6868.035,42.88296,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,71.3,0,0,55.7,553.25,528.25,0,0,1.386294,6.26957,0,3.258096,7.702105,1,0,0,55.7,8.834779,1.386294,,0 +17,4,25,1,2,427349,0,6868.035,43.88296,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,71.3,0,0,55.7,553.25,528.25,0,0,1.386294,6.26957,0,3.258096,7.702105,1,0,0,55.7,8.834779,1.386294,,0 +17,4,25,1,3,427349,0,6868.035,44.88296,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,71.3,0,0,55.7,553.25,528.25,0,0,1.386294,6.26957,0,3.258096,7.702105,1,0,0,55.7,8.834779,1.386294,,0 +17,4,25,1,4,427349,0,6868.035,45.88296,0,12,1,10.46917,0,21.71384,0,0,32.18302,0,0,0,0,1,4,71.3,0,0,55.7,553.25,528.25,0,0,1.386294,6.26957,0,3.258096,7.702105,1,0,0,55.7,8.834779,1.386294,3.471439,1 +17,4,25,1,5,427349,0,6868.035,46.88296,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,71.3,0,0,55.7,553.25,528.25,0,0,1.386294,6.26957,0,3.258096,7.702105,1,0,0,55.7,8.834779,1.386294,,0 +16,4,95,0,1,427350,0,5992.962,50.26694,1,9,1,124.285,129.9272,36.92148,0,1615.299,1906.433,2,0,0,16,0,2,71.3,24.1,1,51.1,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,1,0,51.1,8.698508,.6931472,7.552989,1 +16,4,95,0,2,427350,0,5992.962,51.26694,1,9,1,62.82848,76.8753,34.87817,0,0,174.5819,0,0,0,5,0,2,71.3,24.1,1,51.1,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,1,0,51.1,8.698508,.6931472,5.162394,1 +16,4,95,0,3,427350,0,5992.962,52.26694,1,9,1,190.6277,67.12028,0,0,0,257.748,0,0,0,9,4,2,71.3,24.1,1,51.1,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,1,0,51.1,8.698508,.6931472,5.551982,1 +16,4,95,0,1,427351,0,5992.962,52.846,0,5,1,10.40042,22.10088,19.24077,0,0,51.74207,0,0,0,1,0,2,66,37.9,0,63.6,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,1,0,63.6,8.698508,.6931472,3.946271,1 +16,4,95,0,2,427351,0,5992.962,53.846,0,5,1,65.33684,48.70998,26.75585,0,0,140.8027,0,0,0,6,0,2,66,37.9,0,63.6,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,1,0,63.6,8.698508,.6931472,4.94736,1 +16,4,95,0,3,427351,0,5992.962,54.846,0,5,1,10.97454,32.59438,0,0,0,43.56892,0,0,0,1,0,2,66,37.9,0,63.6,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,1,0,63.6,8.698508,.6931472,3.774344,1 +18,4,25,1,1,427368,0,6746.627,35.60027,0,16,1,79.34055,4.430706,0,0,0,83.77126,0,0,0,4,5,1,86.7,0,0,89.8,750,750,0,0,0,6.620073,0,3.258096,8.006368,0,0,0,89.8,8.816946,0,4.42809,1 +18,4,25,1,2,427368,0,6746.627,36.60027,0,16,1,32.67046,0,14.20455,0,0,46.875,0,0,0,2,0,1,86.7,0,0,89.8,750,750,0,0,0,6.620073,0,3.258096,8.006368,0,0,0,89.8,8.816946,0,3.847485,1 +18,4,25,1,3,427368,0,6746.627,37.60027,0,16,1,8.669268,0,23.40702,0,0,32.07629,0,0,0,1,0,1,86.7,0,0,89.8,750,750,0,0,0,6.620073,0,3.258096,8.006368,0,0,0,89.8,8.816946,0,3.468117,1 +11,4,0,1,1,427372,0,11126.1,31.27721,1,10,1,30.64351,0,5.107252,0,0,35.75077,0,0,0,0,4,5,38.8,6.9,0,46.6,0,240,0,0,1.609438,5.480639,0,0,0,0,0,0,46.6,9.317139,1.609438,3.576572,1 +11,4,0,1,2,427372,0,11126.1,32.27721,1,10,1,45.47586,0,0,0,0,45.47586,0,0,0,0,8,5,38.8,6.9,0,46.6,0,240,0,0,1.609438,5.480639,0,0,0,0,0,0,46.6,9.317139,1.609438,3.817182,1 +11,4,0,1,3,427372,0,11126.1,33.27721,1,10,1,25.79536,0,0,0,0,25.79536,0,0,0,0,5,5,38.8,6.9,0,46.6,0,240,0,0,1.609438,5.480639,0,0,0,0,0,0,46.6,9.317139,1.609438,3.250195,1 +11,4,0,1,1,427373,0,11126.1,14.423,0,10,1,40.21961,4.392237,37.12972,0,0,81.74157,0,0,0,3,0,5,79.3,3.4,0,73.9,0,240,1,0,1.609438,5.480639,0,0,0,0,0,0,73.9,9.317139,1.609438,4.403563,1 +11,4,0,1,2,427373,0,11126.1,15.423,0,10,1,9.376465,8.274731,0,0,0,17.6512,0,0,0,1,0,5,79.3,3.4,0,73.9,0,240,1,0,1.609438,5.480639,0,0,0,0,0,0,73.9,9.317139,1.609438,2.870804,1 +11,4,0,1,3,427373,0,11126.1,16.423,0,10,1,128.2674,0,9.243336,0,0,137.5107,0,0,0,9,0,5,79.3,3.4,0,73.9,0,240,1,0,1.609438,5.480639,0,0,0,0,0,0,73.9,9.317139,1.609438,4.923702,1 +11,4,0,1,1,427374,0,11126.1,42.95962,0,10,1,18.38611,0,334.6578,0,0,353.0439,0,0,0,2,0,5,82.4,13.8,0,80.7,0,240,0,0,1.609438,5.480639,0,0,0,0,0,0,80.7,9.317139,1.609438,5.866592,1 +11,4,0,1,2,427374,0,11126.1,43.95962,0,10,1,15.00234,0,0,0,0,15.00234,0,0,0,0,3,5,82.4,13.8,0,80.7,0,240,0,0,1.609438,5.480639,0,0,0,0,0,0,80.7,9.317139,1.609438,2.708206,1 +11,4,0,1,3,427374,0,11126.1,44.95962,0,10,1,55.88994,0,0,0,0,55.88994,0,0,0,1,8,5,82.4,13.8,0,80.7,0,240,0,0,1.609438,5.480639,0,0,0,0,0,0,80.7,9.317139,1.609438,4.023385,1 +11,4,0,1,1,427375,0,11126.1,13.01301,1,10,1,0,0,0,0,0,0,0,0,0,0,0,5,76.7,9.967326,0,81.5,0,240,1,1,1.609438,5.480639,0,0,0,0,0,0,81.5,9.317139,1.609438,,0 +11,4,0,1,2,427375,0,11126.1,14.01301,1,10,1,0,0,0,0,0,0,0,0,0,0,0,5,76.7,9.967326,0,81.5,0,240,1,1,1.609438,5.480639,0,0,0,0,0,0,81.5,9.317139,1.609438,,0 +11,4,0,1,3,427375,0,11126.1,15.01301,1,10,1,10.74806,0,29.14875,0,0,39.89682,0,0,0,1,0,5,76.7,9.967326,0,81.5,0,240,1,1,1.609438,5.480639,0,0,0,0,0,0,81.5,9.317139,1.609438,3.686297,1 +11,4,0,1,1,427376,0,11126.1,18.63107,0,11,1,14.30031,0,3.064351,0,1323.406,1340.771,1,0,0,2,0,5,80.3,6.9,0,81.8,0,240,0,0,1.609438,5.480639,0,0,0,0,0,0,81.8,9.317139,1.609438,7.201,1 +11,4,0,1,2,427376,0,11126.1,19.63107,0,11,1,24.61322,2.133146,0,0,0,26.74637,0,0,0,1,0,5,80.3,6.9,0,81.8,0,240,0,0,1.609438,5.480639,0,0,0,0,0,0,81.8,9.317139,1.609438,3.286399,1 +11,4,0,1,3,427376,0,11126.1,20.63107,0,11,1,0,2.257094,0,0,0,2.257094,0,0,0,0,0,5,80.3,6.9,0,81.8,0,240,0,0,1.609438,5.480639,0,0,0,0,0,0,81.8,9.317139,1.609438,.814078,1 +6,4,25,1,1,427397,0,16539.59,7.334702,0,17,1,24.78104,0,0,69.55178,0,24.78104,0,0,3,2,0,3,96.7,9.967326,0,100,750,750,1,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,100,9.713573,1.098612,3.210079,1 +6,4,25,1,2,427397,0,16539.59,8.334702,0,17,1,5.160985,0,0,0,0,5.160985,0,0,0,1,0,3,96.7,9.967326,0,100,750,750,1,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,100,9.713573,1.098612,1.641127,1 +6,4,25,1,3,427397,0,16539.59,9.334702,0,17,1,5.20156,0,0,0,0,5.20156,0,0,0,1,0,3,96.7,9.967326,0,100,750,750,1,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,100,9.713573,1.098612,1.648959,1 +6,4,25,1,1,427398,0,16539.59,32,0,18,1,29.06749,2.833591,0,226.6873,0,31.90108,0,0,11,0,0,3,85.6,24.1,0,85.2,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,85.2,9.713573,1.098612,3.46264,1 +6,4,25,1,2,427398,0,16539.59,33,0,18,1,66.70454,29.11932,0,227.2727,0,95.82386,0,0,12,3,0,3,85.6,24.1,0,85.2,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,85.2,9.713573,1.098612,4.562512,1 +6,4,25,1,3,427398,0,16539.59,34,0,18,1,9.969658,10.83658,0,69.35414,0,20.80624,0,0,4,0,0,3,85.6,24.1,0,85.2,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,85.2,9.713573,1.098612,3.035253,1 +6,4,25,1,1,427399,0,16539.59,31.60301,1,17,1,110.1236,0,0,203.5033,0,110.1236,0,0,9,3,0,3,83,17.2,0,79.5,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,79.5,9.713573,1.098612,4.701604,1 +6,4,25,1,2,427399,0,16539.59,32.60301,1,17,1,35.51136,9.943182,0,162.8788,0,45.45454,0,0,8,2,0,3,83,17.2,0,79.5,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,79.5,9.713573,1.098612,3.816713,1 +6,4,25,1,3,427399,0,16539.59,33.60301,1,17,1,50.17339,1.71218,0,200.2601,0,51.88557,0,0,11,2,0,3,83,17.2,0,79.5,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,79.5,9.713573,1.098612,3.949041,1 +13,4,0,1,1,427405,0,13503.23,9.891855,1,14,1,6.128703,0,0,0,0,6.128703,0,0,0,1,0,6,80,9.967326,0,77.8,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,77.8,9.510757,1.791759,1.812983,1 +13,4,0,1,2,427405,0,13503.23,10.89186,1,14,1,5.625879,0,0,0,0,5.625879,0,0,0,1,0,6,80,9.967326,0,77.8,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,77.8,9.510757,1.791759,1.727377,1 +13,4,0,1,3,427405,0,13503.23,11.89186,1,14,1,6.448839,1.371453,0,0,0,7.820292,0,0,0,1,0,6,80,9.967326,0,77.8,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,77.8,9.510757,1.791759,2.056722,1 +13,4,0,1,1,427406,0,13503.23,11.02806,1,14,1,37.76302,0,0,0,0,37.76302,0,0,0,4,0,6,86.7,9.967326,0,96.3,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,96.3,9.510757,1.791759,3.63133,1 +13,4,0,1,2,427406,0,13503.23,12.02806,1,14,1,10.31411,2.33474,0,0,0,12.64885,0,0,0,2,0,6,86.7,9.967326,0,96.3,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,96.3,9.510757,1.791759,2.537566,1 +13,4,0,1,3,427406,0,13503.23,13.02806,1,14,1,6.448839,0,0,0,0,6.448839,0,0,0,1,0,6,86.7,9.967326,0,96.3,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,96.3,9.510757,1.791759,1.8639,1 +13,4,0,1,1,427407,0,13503.23,14.00137,0,14,1,79.16241,0,0,0,0,79.16241,0,0,0,4,0,6,88.3,24.1,0,58,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,58,9.510757,1.791759,4.371501,1 +13,4,0,1,2,427407,0,13503.23,15.00137,0,14,1,7.969995,0,0,0,0,7.969995,0,0,0,1,0,6,88.3,24.1,0,58,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,58,9.510757,1.791759,2.075684,1 +13,4,0,1,3,427407,0,13503.23,16.00137,0,14,1,6.448839,1.77558,0,0,0,8.22442,0,0,0,1,0,6,88.3,24.1,0,58,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,58,9.510757,1.791759,2.107108,1 +13,4,0,1,1,427408,0,13503.23,13.08693,0,14,1,6.128703,0,0,0,0,6.128703,0,0,0,1,0,6,85,9.967326,0,74.1,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,74.1,9.510757,1.791759,1.812983,1 +13,4,0,1,2,427408,0,13503.23,14.08693,0,14,1,7.032349,0,0,0,0,7.032349,0,0,0,1,0,6,85,9.967326,0,74.1,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,74.1,9.510757,1.791759,1.950521,1 +13,4,0,1,3,427408,0,13503.23,15.08693,0,14,1,31.77128,.6405847,0,0,0,32.41187,0,0,0,2,0,6,85,9.967326,0,74.1,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,74.1,9.510757,1.791759,3.478525,1 +13,4,0,1,1,427409,0,13503.23,42.28885,0,17,1,10.2145,87.43105,45.96527,0,0,143.6108,0,0,0,1,0,6,84,20.7,0,35.2,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,35.2,9.510757,1.791759,4.967107,1 +13,4,0,1,2,427409,0,13503.23,43.28885,0,17,1,49.83591,136.7557,0,0,759.939,946.5307,1,0,0,2,0,6,84,20.7,0,35.2,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,35.2,9.510757,1.791759,6.852803,1 +13,4,0,1,3,427409,0,13503.23,44.28885,0,17,1,238.908,155.4858,59.96561,0,499.7592,954.1187,1,0,0,8,0,6,84,20.7,0,35.2,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,35.2,9.510757,1.791759,6.860788,1 +13,4,0,1,1,427410,0,13503.23,38.0616,1,14,1,132.3085,28.53933,0,0,0,160.8478,0,0,0,1,0,6,86.2,3.4,0,69.3,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,69.3,9.510757,1.791759,5.080459,1 +13,4,0,1,2,427410,0,13503.23,39.0616,1,14,1,9.376465,35.07735,0,0,0,44.45382,0,0,0,1,0,6,86.2,3.4,0,69.3,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,69.3,9.510757,1.791759,3.794451,1 +13,4,0,1,3,427410,0,13503.23,40.0616,1,14,1,104.4282,35.58899,0,0,0,140.0172,0,0,0,1,0,6,86.2,3.4,0,69.3,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,69.3,9.510757,1.791759,4.941765,1 +13,4,0,0,1,427431,0,8501.466,6.954141,1,13,1,0,0,0,0,0,0,0,0,0,0,0,5,93.3,9.967326,0,85.2,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.048112,1.609438,,0 +13,4,0,0,2,427431,0,8501.466,7.954141,1,13,1,0,0,0,0,0,0,0,0,0,0,0,5,93.3,9.967326,0,85.2,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.048112,1.609438,,0 +13,4,0,0,3,427431,0,8501.466,8.954141,1,13,1,200.0434,0,0,0,1418.704,1618.747,2,1,0,1,0,5,93.3,9.967326,0,85.2,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.048112,1.609438,7.389408,1 +13,4,0,0,4,427431,0,8501.466,9.954141,1,13,1,26.32926,0,0,0,0,26.32926,0,0,0,1,0,5,93.3,9.967326,0,85.2,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.048112,1.609438,3.270681,1 +13,4,0,0,5,427431,0,8501.466,10.95414,1,13,1,0,0,0,0,0,0,0,0,0,0,0,5,93.3,9.967326,0,85.2,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.048112,1.609438,,0 +13,4,0,0,1,427432,0,8501.466,32.81862,1,13,1,12.36476,0,0,0,0,12.36476,0,0,0,2,0,5,81.9,13.8,1,76.1,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,76.1,9.048112,1.609438,2.514851,1 +13,4,0,0,2,427432,0,8501.466,33.81862,1,13,1,149.858,0,0,0,699.2424,849.1004,1,0,0,3,0,5,81.9,13.8,1,76.1,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,76.1,9.048112,1.609438,6.744177,1 +13,4,0,0,3,427432,0,8501.466,34.81862,1,13,1,38.14478,0,0,0,0,38.14478,0,0,0,2,0,5,81.9,13.8,1,76.1,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,76.1,9.048112,1.609438,3.641389,1 +13,4,0,0,4,427432,0,8501.466,35.81862,1,13,1,13.78496,0,0,0,0,13.78496,0,0,0,0,0,5,81.9,13.8,1,76.1,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,76.1,9.048112,1.609438,2.623578,1 +13,4,0,0,5,427432,0,8501.466,36.81862,1,13,1,0,0,0,0,0,0,0,0,0,0,0,5,81.9,13.8,1,76.1,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,76.1,9.048112,1.609438,,0 +13,4,0,0,1,427433,0,8501.466,11.37577,1,13,1,0,0,0,0,0,0,0,0,0,0,0,5,81.7,9.967326,0,81.5,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,81.5,9.048112,1.609438,,0 +13,4,0,0,2,427433,0,8501.466,12.37577,1,13,1,48.76894,0,.7102273,0,0,49.47917,0,0,0,1,0,5,81.7,9.967326,0,81.5,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,81.5,9.048112,1.609438,3.901552,1 +13,4,0,0,3,427433,0,8501.466,13.37577,1,13,1,0,0,0,0,0,0,0,0,0,0,0,5,81.7,9.967326,0,81.5,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,81.5,9.048112,1.609438,,0 +13,4,0,0,4,427433,0,8501.466,14.37577,1,13,1,0,0,21.66207,0,0,21.66207,0,0,0,0,0,5,81.7,9.967326,0,81.5,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,81.5,9.048112,1.609438,3.075563,1 +13,4,0,0,5,427433,0,8501.466,15.37577,1,13,1,0,0,0,0,0,0,0,0,0,0,0,5,81.7,9.967326,0,81.5,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,81.5,9.048112,1.609438,,0 +13,4,0,0,1,427434,0,8501.466,35.22245,0,14,1,0,0,0,0,0,0,0,0,0,0,0,5,64.9,27.6,0,67,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,67,9.048112,1.609438,,0 +13,4,0,0,2,427434,0,8501.466,36.22245,0,14,1,0,0,0,0,0,0,0,0,0,0,0,5,64.9,27.6,0,67,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,67,9.048112,1.609438,,0 +13,4,0,0,3,427434,0,8501.466,37.22245,0,14,1,0,0,0,0,0,0,0,0,0,0,0,5,64.9,27.6,0,67,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,67,9.048112,1.609438,,0 +13,4,0,0,4,427434,0,8501.466,38.22245,0,14,1,77.56991,0,0,0,0,77.56991,0,0,0,2,0,5,64.9,27.6,0,67,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,67,9.048112,1.609438,4.35118,1 +13,4,0,0,5,427434,0,8501.466,39.22245,0,14,1,0,0,0,0,348.4794,348.4794,1,0,0,0,0,5,64.9,27.6,0,67,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,67,9.048112,1.609438,5.853579,1 +13,4,0,0,1,427435,0,8501.466,5.264887,0,13,1,0,0,0,0,0,0,0,0,0,0,0,5,88.3,9.967326,1,25.9,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,1,0,25.9,9.048112,1.609438,,0 +13,4,0,0,2,427435,0,8501.466,6.264887,0,13,1,42.61364,0,0,0,0,42.61364,0,0,0,2,0,5,88.3,9.967326,1,25.9,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,1,0,25.9,9.048112,1.609438,3.752174,1 +13,4,0,0,3,427435,0,8501.466,7.264887,0,13,1,0,0,0,0,0,0,0,0,0,0,0,5,88.3,9.967326,1,25.9,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,1,0,25.9,9.048112,1.609438,,0 +13,4,0,0,4,427435,0,8501.466,8.264887,0,13,1,35.05317,0,0,0,0,35.05317,0,0,0,3,0,5,88.3,9.967326,1,25.9,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,1,0,25.9,9.048112,1.609438,3.556866,1 +13,4,0,0,5,427435,0,8501.466,9.264887,0,13,1,10.01789,0,0,0,0,10.01789,0,0,0,1,0,5,88.3,9.967326,1,25.9,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,1,0,25.9,9.048112,1.609438,2.304372,1 +11,4,0,1,1,427437,0,10862.17,51.83847,0,12,1,43.99794,1.391036,58.45956,0,0,103.8485,0,0,0,2,0,3,64.9,0,0,62.5,0,0,0,0,1.098612,0,0,0,0,1,0,0,62.5,9.293134,1.098612,4.642933,1 +11,4,0,1,2,427437,0,10862.17,52.83847,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,64.9,0,0,62.5,0,0,0,0,1.098612,0,0,0,0,1,0,0,62.5,9.293134,1.098612,,0 +11,4,0,1,3,427437,0,10862.17,53.83847,0,12,1,40.52882,3.662766,0,0,0,44.19159,0,0,0,2,0,3,64.9,0,0,62.5,0,0,0,0,1.098612,0,0,0,0,1,0,0,62.5,9.293134,1.098612,3.788534,1 +11,4,0,1,4,427437,0,10862.17,54.83847,0,12,1,41.35486,7.778653,0,0,0,49.13352,0,0,0,5,0,3,64.9,0,0,62.5,0,0,0,0,1.098612,0,0,0,0,1,0,0,62.5,9.293134,1.098612,3.894542,1 +11,4,0,1,5,427437,0,10862.17,55.83847,0,12,1,35.50984,0,41.50268,0,0,77.01252,0,0,0,3,0,3,64.9,0,0,62.5,0,0,0,0,1.098612,0,0,0,0,1,0,0,62.5,9.293134,1.098612,4.343968,1 +11,4,0,1,1,427438,0,10862.17,17.42094,1,12,1,16.48635,29.8815,33.28181,0,0,79.64967,0,0,0,2,0,3,77.1,13.8,0,94.3,0,0,1,1,1.098612,0,0,0,0,0,0,0,94.3,9.293134,1.098612,4.377638,1 +11,4,0,1,2,427438,0,10862.17,18.42094,1,12,1,5.681818,64.34659,0,0,0,70.02841,0,0,0,1,0,3,77.1,13.8,0,94.3,0,0,0,0,1.098612,0,0,0,0,0,0,0,94.3,9.293134,1.098612,4.248901,1 +11,4,0,1,3,427438,0,10862.17,19.42094,1,12,1,0,44.03988,0,0,0,44.03988,0,0,0,0,0,3,77.1,13.8,0,94.3,0,0,0,0,1.098612,0,0,0,0,0,0,0,94.3,9.293134,1.098612,3.785095,1 +11,4,0,1,4,427438,0,10862.17,20.42094,1,12,1,25.60063,54.68689,26.93974,0,0,107.2273,0,0,0,4,0,3,77.1,13.8,0,94.3,0,0,0,0,1.098612,0,0,0,0,0,0,0,94.3,9.293134,1.098612,4.674951,1 +11,4,0,1,5,427438,0,10862.17,21.42094,1,12,1,50.10733,56.29696,0,0,0,106.4043,0,0,0,3,0,3,77.1,13.8,0,94.3,0,0,0,0,1.098612,0,0,0,0,0,0,0,94.3,9.293134,1.098612,4.667246,1 +11,4,0,1,1,427439,0,10862.17,50.45037,1,12,1,465.8629,32.94693,52.96239,0,1224.132,1775.904,1,0,0,19,0,3,64.4,24.1,0,67,0,0,0,0,1.098612,0,0,0,0,1,0,0,67,9.293134,1.098612,7.482065,1 +11,4,0,1,2,427439,0,10862.17,51.45037,1,12,1,152.6989,88.49432,0,0,429.8579,671.0511,1,0,0,14,0,3,64.4,24.1,0,67,0,0,0,0,1.098612,0,0,0,0,1,0,0,67,9.293134,1.098612,6.508845,1 +11,4,0,1,3,427439,0,10862.17,52.45037,1,12,1,55.15821,137.9497,0,0,0,193.1079,0,0,0,4,0,3,64.4,24.1,0,67,0,0,0,0,1.098612,0,0,0,0,1,0,0,67,9.293134,1.098612,5.263249,1 +11,4,0,1,4,427439,0,10862.17,53.45037,1,12,1,380.3978,141.2761,65.577,0,0,587.2509,0,0,0,8,0,3,64.4,24.1,0,67,0,0,0,0,1.098612,0,0,0,0,1,0,0,67,9.293134,1.098612,6.375452,1 +11,4,0,1,5,427439,0,10862.17,54.45037,1,12,1,102.5045,100.5009,0,0,0,203.0054,0,0,0,6,0,3,64.4,24.1,0,67,0,0,0,0,1.098612,0,0,0,0,1,0,0,67,9.293134,1.098612,5.313232,1 +13,4,0,0,1,427443,0,13233.43,42.15742,0,12,1,28.1001,0,0,0,0,28.1001,0,0,0,2,0,4,88.3,6.9,0,76.1,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,76.1,9.490577,1.386294,3.335773,1 +13,4,0,0,2,427443,0,13233.43,43.15742,0,12,1,9.376465,0,20.62822,0,0,30.00469,0,0,0,1,0,4,88.3,6.9,0,76.1,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,76.1,9.490577,1.386294,3.401354,1 +13,4,0,0,3,427443,0,13233.43,44.15742,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,88.3,6.9,0,76.1,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,76.1,9.490577,1.386294,,0 +13,4,0,0,4,427443,0,13233.43,45.15742,0,12,1,9.69368,0,18.22412,0,0,27.9178,0,0,0,1,0,4,88.3,6.9,0,76.1,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,76.1,9.490577,1.386294,3.329264,1 +13,4,0,0,5,427443,0,13233.43,46.15742,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,88.3,6.9,0,76.1,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,76.1,9.490577,1.386294,,0 +13,4,0,0,1,427444,0,13233.43,12.35592,1,12,1,22.98264,0,27.57916,0,0,50.5618,0,0,0,2,0,4,88.3,9.967326,0,77.8,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,77.8,9.490577,1.386294,3.923196,1 +13,4,0,0,2,427444,0,13233.43,13.35592,1,12,1,0,0,0,0,177.4262,177.4262,1,0,0,0,0,4,88.3,9.967326,0,77.8,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,77.8,9.490577,1.386294,5.178555,1 +13,4,0,0,3,427444,0,13233.43,14.35592,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,88.3,9.967326,0,77.8,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,77.8,9.490577,1.386294,,0 +13,4,0,0,4,427444,0,13233.43,15.35592,1,12,1,16.67313,0,20.93835,0,0,37.61148,0,0,0,2,0,4,88.3,9.967326,0,77.8,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,77.8,9.490577,1.386294,3.627309,1 +13,4,0,0,5,427444,0,13233.43,16.35592,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,88.3,9.967326,0,77.8,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,77.8,9.490577,1.386294,,0 +13,4,0,0,1,427445,0,13233.43,36.84052,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,79.8,3.4,0,69.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,69.3,9.490577,1.386294,,0 +13,4,0,0,2,427445,0,13233.43,37.84052,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,79.8,3.4,0,69.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,69.3,9.490577,1.386294,,0 +13,4,0,0,3,427445,0,13233.43,38.84052,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,79.8,3.4,0,69.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,69.3,9.490577,1.386294,,0 +13,4,0,0,4,427445,0,13233.43,39.84052,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,79.8,3.4,0,69.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,69.3,9.490577,1.386294,,0 +13,4,0,0,5,427445,0,13233.43,40.84052,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,79.8,3.4,0,69.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,69.3,9.490577,1.386294,,0 +13,4,0,0,1,427446,0,13233.43,14.2642,0,12,1,7.660879,0,27.57916,0,0,35.24004,0,0,0,1,0,4,81.9,3.4,0,73.9,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,73.9,9.490577,1.386294,3.562183,1 +13,4,0,0,2,427446,0,13233.43,15.2642,0,12,1,9.376465,0,24.37881,0,0,33.75528,0,0,0,1,0,4,81.9,3.4,0,73.9,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,73.9,9.490577,1.386294,3.519137,1 +13,4,0,0,3,427446,0,13233.43,16.2642,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,81.9,3.4,0,73.9,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,73.9,9.490577,1.386294,,0 +13,4,0,0,4,427446,0,13233.43,17.2642,0,12,1,244.242,0,21.3261,0,0,265.5681,0,0,0,3,0,4,81.9,3.4,0,73.9,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,73.9,9.490577,1.386294,5.581871,1 +13,4,0,0,5,427446,0,13233.43,18.2642,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,81.9,3.4,0,73.9,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,73.9,9.490577,1.386294,,0 +5,4,25,1,1,427459,0,3817.009,60.92266,1,13,1,47.91345,19.16538,0,0,0,67.07883,0,0,0,4,0,1,91.5,3.4,1,88.1,350.26,350.26,0,0,0,5.858676,0,3.258096,7.24497,0,0,0,88.1,8.247484,0,4.205868,1 +5,4,25,1,2,427459,0,3817.009,61.92266,1,13,1,76.49148,18.86837,0,0,0,95.35985,0,0,0,5,0,1,91.5,3.4,1,88.1,350.26,350.26,0,0,0,5.858676,0,3.258096,7.24497,0,0,0,88.1,8.247484,0,4.557658,1 +5,4,25,1,3,427459,0,3817.009,62.92266,1,13,1,35.54399,19.41916,28.17512,0,0,83.13828,0,0,0,4,0,1,91.5,3.4,1,88.1,350.26,350.26,0,0,0,5.858676,0,3.258096,7.24497,0,0,0,88.1,8.247484,0,4.420505,1 +10,4,50,1,1,427470,0,9409.971,33.89185,0,12,1,0,4.807693,0,0,0,4.807693,0,0,0,0,0,4,85.1,13.8,0,81.8,1000,1000.18,0,0,1.386294,6.907935,0,3.931826,7.600903,0,0,0,81.8,9.149632,1.386294,1.570217,1 +10,4,50,1,2,427470,0,9409.971,34.89185,0,12,1,72.26107,0,0,0,0,72.26107,0,0,0,3,0,4,85.1,13.8,0,81.8,1000,1000.18,0,0,1.386294,6.907935,0,3.931826,7.600903,0,0,0,81.8,9.149632,1.386294,4.280285,1 +10,4,50,1,3,427470,0,9409.971,35.89185,0,12,1,6.412997,12.82172,0,0,0,19.23472,0,0,0,1,0,4,85.1,13.8,0,81.8,1000,1000.18,0,0,1.386294,6.907935,0,3.931826,7.600903,0,0,0,81.8,9.149632,1.386294,2.956717,1 +10,4,50,1,4,427470,0,9409.971,36.89185,0,12,1,62.95158,15.08455,0,0,0,78.03613,0,0,0,4,0,4,85.1,13.8,0,81.8,1000,1000.18,0,0,1.386294,6.907935,0,3.931826,7.600903,0,0,0,81.8,9.149632,1.386294,4.357172,1 +10,4,50,1,5,427470,0,9409.971,37.89185,0,12,1,19.31858,0,0,0,0,19.31858,0,0,0,2,0,4,85.1,13.8,0,81.8,1000,1000.18,0,0,1.386294,6.907935,0,3.931826,7.600903,0,0,0,81.8,9.149632,1.386294,2.961067,1 +10,4,50,1,1,427471,0,9409.971,2.006845,0,17,1,16.19433,3.517206,0,0,0,19.71154,0,0,0,3,0,4,83.39137,9.967326,0,96.3,1000,1000.18,1,0,1.386294,6.907935,0,3.931826,7.600903,0,0,0,96.3,9.149632,1.386294,2.981204,1 +10,4,50,1,2,427471,0,9409.971,3.006845,0,17,1,5.594406,0,0,0,0,5.594406,0,0,0,1,0,4,83.39137,9.967326,0,96.3,1000,1000.18,1,0,1.386294,6.907935,0,3.931826,7.600903,0,0,0,96.3,9.149632,1.386294,1.721767,1 +10,4,50,1,3,427471,0,9409.971,4.006845,0,17,1,35.74177,5.664814,0,0,0,41.40659,0,0,0,6,0,4,83.39137,9.967326,0,96.3,1000,1000.18,1,0,1.386294,6.907935,0,3.931826,7.600903,0,0,0,96.3,9.149632,1.386294,3.72344,1 +10,4,50,1,4,427471,0,9409.971,5.006845,0,17,1,48.23213,4.381245,24.78862,0,0,77.402,0,0,0,3,0,4,83.39137,9.967326,0,96.3,1000,1000.18,1,0,1.386294,6.907935,0,3.931826,7.600903,0,0,0,96.3,9.149632,1.386294,4.349013,1 +10,4,50,1,5,427471,0,9409.971,6.006845,0,17,1,28.80225,0,0,0,0,28.80225,0,0,0,4,0,4,83.39137,9.967326,0,96.3,1000,1000.18,1,0,1.386294,6.907935,0,3.931826,7.600903,0,0,0,96.3,9.149632,1.386294,3.360453,1 +10,4,50,1,1,427472,0,9409.971,4.610541,0,17,1,115.3897,24.67105,0,0,6.072875,146.1336,1,1,0,6,0,4,83.39137,9.967326,0,51.9,1000,1000.18,1,0,1.386294,6.907935,0,3.931826,7.600903,0,0,0,51.9,9.149632,1.386294,4.984521,1 +10,4,50,1,2,427472,0,9409.971,5.610541,0,17,1,29.18415,28.32168,0,0,0,57.50583,0,0,0,3,0,4,83.39137,9.967326,0,51.9,1000,1000.18,1,0,1.386294,6.907935,0,3.931826,7.600903,0,0,0,51.9,9.149632,1.386294,4.051886,1 +10,4,50,1,3,427472,0,9409.971,6.610541,0,17,1,16.50278,25.99401,0,0,0,42.49679,0,0,0,3,0,4,83.39137,9.967326,0,51.9,1000,1000.18,1,0,1.386294,6.907935,0,3.931826,7.600903,0,0,0,51.9,9.149632,1.386294,3.749429,1 +10,4,50,1,4,427472,0,9409.971,7.610541,0,17,1,72.30976,37.79785,0,0,0,110.1076,0,0,0,6,0,4,83.39137,9.967326,0,51.9,1000,1000.18,1,0,1.386294,6.907935,0,3.931826,7.600903,0,0,0,51.9,9.149632,1.386294,4.701458,1 +10,4,50,1,5,427472,0,9409.971,8.61054,0,17,1,23.15068,40.24587,0,0,0,63.39656,0,0,0,1,0,4,83.39137,9.967326,0,51.9,1000,1000.18,1,0,1.386294,6.907935,0,3.931826,7.600903,0,0,0,51.9,9.149632,1.386294,4.14941,1 +10,4,50,1,1,427473,0,9409.971,33.08693,1,17,1,60.72874,8.223684,22.77328,0,0,91.72571,0,0,0,2,8,4,83.5,3.4,0,79.5,1000,1000.18,0,0,1.386294,6.907935,0,3.931826,7.600903,0,0,0,79.5,9.149632,1.386294,4.518803,1 +10,4,50,1,2,427473,0,9409.971,34.08693,1,17,1,76.92308,5.314685,0,0,452.2378,534.4755,1,0,0,5,4,4,83.5,3.4,0,79.5,1000,1000.18,0,0,1.386294,6.907935,0,3.931826,7.600903,0,0,0,79.5,9.149632,1.386294,6.281286,1 +10,4,50,1,3,427473,0,9409.971,35.08693,1,17,1,30.78238,1.688756,0,0,0,32.47114,0,0,0,2,0,4,83.5,3.4,0,79.5,1000,1000.18,0,0,1.386294,6.907935,0,3.931826,7.600903,0,0,0,79.5,9.149632,1.386294,3.480352,1 +10,4,50,1,4,427473,0,9409.971,36.08693,1,17,1,109.5311,0,0,0,0,109.5311,0,0,0,5,0,4,83.5,3.4,0,79.5,1000,1000.18,0,0,1.386294,6.907935,0,3.931826,7.600903,0,0,0,79.5,9.149632,1.386294,4.696209,1 +10,4,50,1,5,427473,0,9409.971,37.08693,1,17,1,49.35019,0,24.93853,0,0,74.28873,0,0,0,3,0,4,83.5,3.4,0,79.5,1000,1000.18,0,0,1.386294,6.907935,0,3.931826,7.600903,0,0,0,79.5,9.149632,1.386294,4.307959,1 +19,4,25,0,1,427481,0,9880.352,49.17728,1,12,1,33.70787,0,0,0,0,33.70787,0,0,0,3,0,2,64.9,17.2,0,75,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,75,9.198404,.6931472,3.517731,1 +19,4,25,0,2,427481,0,9880.352,50.17728,1,12,1,35.16174,3.089545,44.53821,0,0,82.7895,0,0,0,2,1,2,64.9,17.2,0,75,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,75,9.198404,.6931472,4.416301,1 +19,4,25,0,3,427481,0,9880.352,51.17728,1,12,1,33.42648,3.843508,1.074807,0,0,38.3448,0,0,0,2,0,2,64.9,17.2,0,75,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,75,9.198404,.6931472,3.646619,1 +19,4,25,0,1,427482,0,9880.352,55.48255,0,12,1,0,7.022472,0,0,0,7.022472,0,0,0,0,0,2,78.2,10.3,0,54.5,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,54.5,9.198404,.6931472,1.949115,1 +19,4,25,0,2,427482,0,9880.352,56.48255,0,12,1,15.00234,10.60947,23.90999,0,0,49.5218,0,0,0,1,1,2,78.2,10.3,0,54.5,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,54.5,9.198404,.6931472,3.902413,1 +19,4,25,0,3,427482,0,9880.352,57.48255,0,12,1,26.22528,0,6.018917,0,0,32.2442,0,0,0,1,0,2,78.2,10.3,0,54.5,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,54.5,9.198404,.6931472,3.473338,1 +17,4,25,1,1,427483,0,3394.135,52.65982,1,12,1,28.08989,49.40245,38.30439,0,0,115.7967,0,0,0,4,0,2,88.8,27.6,0,76.1,320.75,199.2,0,0,.6931472,5.294309,0,3.258096,7.156956,1,0,0,76.1,8.130098,.6931472,4.751836,1 +17,4,25,1,2,427483,0,3394.135,53.65982,1,12,1,15.00234,37.74027,0,0,0,52.74261,0,0,0,2,0,2,88.8,27.6,0,76.1,320.75,199.2,0,0,.6931472,5.294309,0,3.258096,7.156956,1,0,0,76.1,8.130098,.6931472,3.965424,1 +17,4,25,1,3,427483,0,3394.135,54.65982,1,12,1,26.6552,30.41273,25.79536,0,0,82.86328,0,0,0,3,0,2,88.8,27.6,0,76.1,320.75,199.2,0,0,.6931472,5.294309,0,3.258096,7.156956,1,0,0,76.1,8.130098,.6931472,4.417192,1 +17,4,25,1,1,427484,0,3394.135,15.35113,1,12,1,26.74157,1.225741,0,0,0,27.96731,0,0,0,3,0,2,89.9,10.3,0,78.4,320.75,199.2,1,1,.6931472,5.294309,0,3.258096,7.156956,0,0,0,78.4,8.130098,.6931472,3.331037,1 +17,4,25,1,2,427484,0,3394.135,16.35113,1,12,1,12.1894,10.08439,0,0,0,22.27379,0,0,0,3,0,2,89.9,10.3,0,78.4,320.75,199.2,1,1,.6931472,5.294309,0,3.258096,7.156956,0,0,0,78.4,8.130098,.6931472,3.103411,1 +17,4,25,1,3,427484,0,3394.135,17.35113,1,12,1,85.72657,6.659501,0,0,0,92.38607,0,0,0,5,0,2,89.9,10.3,0,78.4,320.75,199.2,1,1,.6931472,5.294309,0,3.258096,7.156956,0,0,0,78.4,8.130098,.6931472,4.525976,1 +16,4,95,1,1,427516,0,8591.789,1.771389,1,12,1,30.9119,1.442555,0,0,0,32.35446,0,0,0,2,0,3,83.39137,9.967326,0,63,1000,1000,1,1,1.098612,6.907755,0,4.564348,6.959049,1,0,0,63,9.058679,1.098612,3.476752,1 +16,4,95,1,2,427516,0,8591.789,2.771389,1,12,1,4.734848,0,0,0,0,4.734848,0,0,0,1,0,3,83.39137,9.967326,0,63,1000,1000,1,1,1.098612,6.907755,0,4.564348,6.959049,1,0,0,63,9.058679,1.098612,1.55495,1 +16,4,95,1,3,427516,0,8591.789,3.771389,1,12,1,13.0039,0,0,0,0,13.0039,0,0,0,2,0,4,83.39137,9.967326,0,63,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,1,0,0,63,9.058679,1.386294,2.565249,1 +16,4,95,1,1,427517,0,8591.789,24.29295,0,13,1,0,0,0,0,0,0,0,0,0,0,0,3,64.9,3.4,0,54.5,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,1,0,0,54.5,9.058679,1.098612,,0 +16,4,95,1,2,427517,0,8591.789,25.29295,0,13,1,0,0,0,0,0,0,0,0,0,0,0,3,64.9,3.4,0,54.5,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,1,0,0,54.5,9.058679,1.098612,,0 +16,4,95,1,3,427517,0,8591.789,26.29295,0,13,1,114.0009,0,0,0,201.2657,315.2666,1,1,0,1,0,4,64.9,3.4,0,54.5,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,54.5,9.058679,1.386294,5.753418,1 +16,4,95,1,1,427518,0,8591.789,22.36824,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,81.9,10.3,0,67,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,1,0,0,67,9.058679,1.098612,,0 +16,4,95,1,2,427518,0,8591.789,23.36824,1,12,1,159.768,0,0,0,764.8674,924.6354,1,0,0,6,0,3,81.9,10.3,0,67,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,1,0,0,67,9.058679,1.098612,6.8294,1 +16,4,95,1,3,427518,0,8591.789,24.36824,1,12,1,14.30429,0,0,0,0,14.30429,0,0,0,2,0,4,81.9,10.3,0,67,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,67,9.058679,1.386294,2.66056,1 +11,4,0,1,1,427525,0,5378.886,32.70089,0,14,1,131.8186,51.15919,172.7872,0,1496.605,1852.37,1,0,0,13,5,2,87.8,13.8,1,77.3,0,399.12,0,0,.6931472,5.989262,0,0,0,1,0,0,77.3,8.590423,.6931472,7.524221,1 +11,4,0,1,2,427525,0,5378.886,33.70089,0,14,1,98.60322,25.15152,26.59091,0,0,150.3456,0,0,0,5,6,2,87.8,13.8,1,77.3,0,399.12,0,0,.6931472,5.989262,0,0,0,1,0,0,77.3,8.590423,.6931472,5.012937,1 +11,4,0,1,3,427525,0,5378.886,34.70089,0,14,1,69.46251,23.26831,30.34244,0,0,123.0733,0,0,0,2,2,2,87.8,13.8,1,77.3,0,399.12,0,0,.6931472,5.989262,0,0,0,1,0,0,77.3,8.590423,.6931472,4.81278,1 +11,4,0,1,1,427526,0,5378.886,28.74196,1,15,1,51.62288,9.685729,0,0,0,61.30861,0,0,0,4,0,2,74.5,6.9,0,59.1,0,399.12,0,0,.6931472,5.989262,0,0,0,1,0,0,59.1,8.590423,.6931472,4.11592,1 +11,4,0,1,2,427526,0,5378.886,29.74196,1,15,1,0,10.65341,30.30303,0,0,40.95644,0,0,0,0,0,2,74.5,6.9,0,59.1,0,399.12,0,0,.6931472,5.989262,0,0,0,1,0,0,59.1,8.590423,.6931472,3.712509,1 +11,4,0,1,3,427526,0,5378.886,30.74196,1,15,1,41.89423,22.80017,0,0,0,64.6944,0,0,0,2,0,2,74.5,6.9,0,59.1,0,399.12,0,0,.6931472,5.989262,0,0,0,1,0,0,59.1,8.590423,.6931472,4.169675,1 +11,4,0,0,1,427540,0,7910.823,59.99453,0,12,1,195.3735,32.3493,25.24472,0,0,252.9675,0,0,0,10,8,2,76.6,17.2,1,67,0,0,0,0,.6931472,0,0,0,0,1,0,0,67,8.976113,.6931472,5.533261,1 +11,4,0,0,2,427540,0,7910.823,60.99453,0,12,1,140.4119,46.49148,38.35227,0,0,225.2557,0,0,0,4,1,2,76.6,17.2,1,67,0,0,0,0,.6931472,0,0,0,0,1,0,0,67,8.976113,.6931472,5.417236,1 +11,4,0,0,3,427540,0,7910.823,61.99453,0,12,1,28.39185,43.53706,0,0,0,71.92891,0,0,0,1,0,2,76.6,17.2,1,67,0,0,0,0,.6931472,0,0,0,0,1,0,0,67,8.976113,.6931472,4.275678,1 +11,4,0,0,1,427541,0,7910.823,57.42916,1,16,1,92.04533,3.585781,27.82071,0,0,123.4518,0,0,0,5,2,2,89.4,13.8,0,79.5,0,0,0,0,.6931472,0,0,0,0,0,0,0,79.5,8.976113,.6931472,4.815851,1 +11,4,0,0,2,427541,0,7910.823,58.42916,1,16,1,51.84659,5.426136,20.83333,0,0,78.10606,0,0,0,2,3,2,89.4,13.8,0,79.5,0,0,0,0,.6931472,0,0,0,0,0,0,0,79.5,8.976113,.6931472,4.358068,1 +11,4,0,0,3,427541,0,7910.823,59.42916,1,16,1,30.34244,0,23.84048,0,0,54.18292,0,0,0,1,2,2,89.4,13.8,0,79.5,0,0,0,0,.6931472,0,0,0,0,0,0,0,79.5,8.976113,.6931472,3.992366,1 +11,4,0,1,1,427558,0,11719.65,12.40246,0,10,1,32.85935,0,0,0,0,32.85935,0,0,0,2,0,6,98.3,9.967326,0,96.3,0,0,1,0,1.791759,0,0,0,0,0,0,0,96.3,9.369107,1.791759,3.492236,1 +11,4,0,1,2,427558,0,11719.65,13.40246,0,10,1,4.734848,0,0,0,0,4.734848,0,0,0,1,0,6,98.3,9.967326,0,96.3,0,0,1,0,1.791759,0,0,0,0,0,0,0,96.3,9.369107,1.791759,1.55495,1 +11,4,0,1,3,427558,0,11719.65,14.40246,0,10,1,13.0039,0,0,0,0,13.0039,0,0,0,1,0,7,98.3,9.967326,0,96.3,0,0,1,0,1.94591,0,0,0,0,0,0,0,96.3,9.369107,1.94591,2.565249,1 +11,4,0,1,1,427559,0,11719.65,34.04517,1,10,1,293.8279,6.43998,0,0,1205.296,1505.564,1,0,0,7,0,6,56.9,6.9,0,90.9,0,0,0,0,1.791759,0,0,0,0,0,0,0,90.9,9.369107,1.791759,7.316923,1 +11,4,0,1,2,427559,0,11719.65,35.04517,1,10,1,56.10796,17.54261,0,0,0,73.65057,0,0,0,4,0,6,56.9,6.9,0,90.9,0,0,0,0,1.791759,0,0,0,0,0,0,0,90.9,9.369107,1.791759,4.299332,1 +11,4,0,1,3,427559,0,11719.65,36.04517,1,10,1,26.87473,19.38448,0,0,0,46.25921,0,0,0,4,0,7,56.9,6.9,0,90.9,0,0,0,0,1.94591,0,0,0,0,0,0,0,90.9,9.369107,1.94591,3.834261,1 +11,4,0,1,1,427560,0,11719.65,16.6653,0,10,1,206.7233,33.07573,0,0,0,239.7991,0,0,0,13,0,6,62.8,6.9,0,86.4,0,0,1,0,1.791759,0,0,0,0,0,0,0,86.4,9.369107,1.791759,5.479801,1 +11,4,0,1,2,427560,0,11719.65,17.6653,0,10,1,34.80114,12.97348,0,0,0,47.77462,0,0,0,3,0,6,62.8,6.9,0,86.4,0,0,1,0,1.791759,0,0,0,0,0,0,0,86.4,9.369107,1.791759,3.866495,1 +11,4,0,1,3,427560,0,11719.65,18.6653,0,10,1,14.95449,6.935414,0,0,0,21.8899,0,0,0,1,0,7,62.8,6.9,0,86.4,0,0,0,0,1.94591,0,0,0,0,0,0,0,86.4,9.369107,1.94591,3.086025,1 +11,4,0,1,1,427561,0,11719.65,37.66735,0,14,1,146.8624,11.97836,0,0,0,158.8408,0,0,0,6,0,6,75,6.9,0,85.2,0,0,0,0,1.791759,0,0,0,0,0,0,0,85.2,9.369107,1.791759,5.067903,1 +11,4,0,1,2,427561,0,11719.65,38.66735,0,14,1,0,0,0,0,0,0,0,0,0,0,0,6,75,6.9,0,85.2,0,0,0,0,1.791759,0,0,0,0,0,0,0,85.2,9.369107,1.791759,,0 +11,4,0,1,3,427561,0,11719.65,39.66735,0,14,1,64.62505,6.025141,0,0,0,70.65019,0,0,0,4,0,7,75,6.9,0,85.2,0,0,0,0,1.94591,0,0,0,0,0,0,0,85.2,9.369107,1.94591,4.257741,1 +11,4,0,1,1,427562,0,11719.65,13.30595,1,10,1,16.48635,2.93663,0,0,0,19.42298,0,0,0,2,0,6,93.3,9.967326,0,70.4,0,0,1,1,1.791759,0,0,0,0,0,0,0,70.4,9.369107,1.791759,2.966457,1 +11,4,0,1,2,427562,0,11719.65,14.30595,1,10,1,10.41667,4.85322,0,0,0,15.26989,0,0,0,2,0,6,93.3,9.967326,0,70.4,0,0,1,1,1.791759,0,0,0,0,0,0,0,70.4,9.369107,1.791759,2.725883,1 +11,4,0,1,3,427562,0,11719.65,15.30595,1,10,1,101.9289,0,0,0,0,101.9289,0,0,0,4,0,7,93.3,9.967326,0,70.4,0,0,1,1,1.94591,0,0,0,0,0,0,0,70.4,9.369107,1.94591,4.624276,1 +11,4,0,1,1,427563,0,11719.65,10.59822,1,10,1,111.4426,0,26.79031,0,0,138.2329,0,0,0,5,0,6,80,9.967326,0,88.9,0,0,1,1,1.791759,0,0,0,0,0,0,0,88.9,9.369107,1.791759,4.92894,1 +11,4,0,1,2,427563,0,11719.65,11.59822,1,10,1,83.33334,0,1.183712,14.20455,0,84.51704,0,0,1,6,0,6,80,9.967326,0,88.9,0,0,1,1,1.791759,0,0,0,0,0,0,0,88.9,9.369107,1.791759,4.436953,1 +11,4,0,1,3,427563,0,11719.65,12.59822,1,10,1,8.669268,0,27.30819,0,0,35.97746,0,0,0,1,0,7,80,9.967326,0,88.9,0,0,1,1,1.94591,0,0,0,0,0,0,0,88.9,9.369107,1.94591,3.582893,1 +14,4,95,1,1,427568,0,7712.61,28.47639,0,15,1,117.5528,0,40.18547,0,0,157.7383,0,0,0,2,0,4,65.4,3.4,0,67,585.8,585.8,0,0,1.386294,6.372978,0,4.564348,6.424272,1,0,0,67,8.950742,1.386294,5.060937,1 +14,4,95,1,2,427568,0,7712.61,29.47639,0,15,1,22.72727,0,0,0,0,22.72727,0,0,0,1,0,4,65.4,3.4,0,67,585.8,585.8,0,0,1.386294,6.372978,0,4.564348,6.424272,1,0,0,67,8.950742,1.386294,3.123566,1 +14,4,95,1,3,427568,0,7712.61,30.47639,0,15,1,0,1.209363,0,0,0,1.209363,0,0,0,0,0,4,65.4,3.4,0,67,585.8,585.8,0,0,1.386294,6.372978,0,4.564348,6.424272,1,0,0,67,8.950742,1.386294,.1900937,1 +14,4,95,1,4,427568,0,7712.61,31.47639,0,15,1,41.55179,0,24.41906,0,0,65.97086,0,0,0,1,0,4,65.4,3.4,0,67,585.8,585.8,0,0,1.386294,6.372978,0,4.564348,6.424272,1,0,0,67,8.950742,1.386294,4.189213,1 +14,4,95,1,5,427568,0,7712.61,32.47639,0,15,1,13.7746,0,0,0,0,13.7746,0,0,0,1,0,4,65.4,3.4,0,67,585.8,585.8,0,0,1.386294,6.372978,0,4.564348,6.424272,1,0,0,67,8.950742,1.386294,2.622826,1 +14,4,95,1,1,427569,0,7712.61,28.30664,1,16,1,18.13498,24.9253,37.09428,0,0,80.15456,0,0,0,2,0,4,71.8,17.2,0,71.6,585.8,585.8,0,0,1.386294,6.372978,0,4.564348,6.424272,1,0,0,71.6,8.950742,1.386294,4.383957,1 +14,4,95,1,2,427569,0,7712.61,29.30664,1,16,1,31.41098,14.51705,0,0,0,45.92803,0,0,0,2,0,4,71.8,17.2,0,71.6,585.8,585.8,0,0,1.386294,6.372978,0,4.564348,6.424272,1,0,0,71.6,8.950742,1.386294,3.827076,1 +14,4,95,1,3,427569,0,7712.61,30.30664,1,16,1,11.70351,11.23537,0,0,181.8249,204.7638,1,0,0,1,0,4,71.8,17.2,0,71.6,585.8,585.8,0,0,1.386294,6.372978,0,4.564348,6.424272,1,0,0,71.6,8.950742,1.386294,5.321857,1 +14,4,95,1,4,427569,0,7712.61,31.30664,1,16,1,25.99449,4.899567,25.20677,0,0,56.10083,0,0,0,1,0,4,71.8,17.2,0,71.6,585.8,585.8,0,0,1.386294,6.372978,0,4.564348,6.424272,1,0,0,71.6,8.950742,1.386294,4.027151,1 +14,4,95,1,5,427569,0,7712.61,32.30664,1,16,1,6.08229,4.157424,0,0,0,10.23971,0,0,0,1,0,4,71.8,17.2,0,71.6,585.8,585.8,0,0,1.386294,6.372978,0,4.564348,6.424272,1,0,0,71.6,8.950742,1.386294,2.326274,1 +14,4,95,1,1,427570,0,7712.61,2.30527,0,16,1,15.45595,30.1391,0,0,0,45.59505,0,0,0,3,0,4,83.39137,9.967326,0,70.4,585.8,585.8,1,0,1.386294,6.372978,0,4.564348,6.424272,0,0,0,70.4,8.950742,1.386294,3.819799,1 +14,4,95,1,2,427570,0,7712.61,3.30527,0,16,1,11.36364,15.61553,0,0,0,26.97917,0,0,0,2,0,4,83.39137,9.967326,0,70.4,585.8,585.8,1,0,1.386294,6.372978,0,4.564348,6.424272,0,0,0,70.4,8.950742,1.386294,3.295065,1 +14,4,95,1,3,427570,0,7712.61,4.30527,0,16,1,18.63893,26.25054,0,0,0,44.88947,0,0,0,3,0,4,83.39137,9.967326,0,70.4,585.8,585.8,1,0,1.386294,6.372978,0,4.564348,6.424272,0,0,0,70.4,8.950742,1.386294,3.804203,1 +14,4,95,1,4,427570,0,7712.61,5.30527,0,16,1,32.59157,35.69516,0,0,0,68.28673,0,0,0,4,0,4,83.39137,9.967326,0,70.4,585.8,585.8,1,0,1.386294,6.372978,0,4.564348,6.424272,0,0,0,70.4,8.950742,1.386294,4.223715,1 +14,4,95,1,5,427570,0,7712.61,6.30527,0,16,1,10.73345,19.12343,0,0,0,29.85689,0,0,0,2,0,4,83.39137,9.967326,0,70.4,585.8,585.8,1,0,1.386294,6.372978,0,4.564348,6.424272,0,0,0,70.4,8.950742,1.386294,3.396415,1 +10,4,50,1,1,427573,0,1852.199,20.44079,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,91,6.9,0,92.9,115.5,249.36,0,0,0,5.518898,0,3.931826,5.442418,0,0,0,92.9,7.524669,0,,0 +10,4,50,1,2,427573,0,1852.199,21.44079,1,12,1,22.72727,0,0,0,0,22.72727,0,0,0,0,0,1,91,6.9,0,92.9,115.5,249.36,0,0,0,5.518898,0,3.931826,5.442418,0,0,0,92.9,7.524669,0,3.123566,1 +10,4,50,1,3,427573,0,1852.199,22.44079,1,12,1,11.70351,0,0,0,540.5071,552.2107,1,0,0,1,0,1,91,6.9,0,92.9,115.5,249.36,0,0,0,5.518898,0,3.931826,5.442418,0,0,0,92.9,7.524669,0,6.31393,1 +13,4,0,0,1,427576,0,1546.041,19.60849,1,12,1,151.4683,7.496136,14.94075,329.727,1061.51,1235.415,2,0,16,2,14,1,46.3,20.7,0,56.8,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,56.8,7.3441,0,7.119162,1 +13,4,0,0,2,427576,0,1546.041,20.60849,1,12,1,30.77652,2.438447,5.681818,0,0,38.89678,0,0,0,3,0,1,46.3,20.7,0,56.8,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,56.8,7.3441,0,3.660912,1 +13,4,0,0,3,427576,0,1546.041,21.60849,1,12,1,221.3524,0,0,0,0,221.3524,0,0,0,0,0,1,46.3,20.7,0,56.8,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,56.8,7.3441,0,5.399756,1 +14,4,95,0,1,427597,0,11187.1,26.46954,1,15,1,72.23698,.8937691,0,0,0,73.13074,0,0,0,3,0,2,86.2,0,0,84.1,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,84.1,9.322606,.6931472,4.292249,1 +14,4,95,0,1,427598,0,11187.1,26.29706,0,16,1,12.76813,0,0,0,0,12.76813,0,0,0,1,0,2,78.7,3.4,0,81.8,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,81.8,9.322606,.6931472,2.546952,1 +11,4,0,1,1,427610,0,14587.68,54.52977,0,12,1,7.660879,0,0,0,0,7.660879,0,0,0,1,0,5,96.3,0,0,62.5,0,0,0,0,1.609438,0,0,0,0,0,0,0,62.5,9.588001,1.609438,2.036127,1 +11,4,0,1,2,427610,0,14587.68,55.52977,0,12,1,11.72058,4.219409,0,0,0,15.93999,0,0,0,1,0,5,96.3,0,0,62.5,0,0,0,0,1.609438,0,0,0,0,0,0,0,62.5,9.588001,1.609438,2.768831,1 +11,4,0,1,3,427610,0,14587.68,56.52977,0,12,1,151.5477,34.29063,29.66466,0,0,215.503,0,0,0,8,0,5,96.3,0,0,62.5,0,0,0,0,1.609438,0,0,0,0,0,0,0,62.5,9.588001,1.609438,5.372975,1 +11,4,0,1,1,427611,0,14587.68,19.57563,1,12,1,25.79162,0,0,0,0,25.79162,0,0,0,2,0,5,82.4,6.9,0,72.7,0,0,0,0,1.609438,0,0,0,0,1,0,0,72.7,9.588001,1.609438,3.25005,1 +11,4,0,1,2,427611,0,14587.68,20.57563,1,12,1,34.2241,0,0,0,0,34.2241,0,0,0,2,0,5,82.4,6.9,0,72.7,0,0,0,0,1.609438,0,0,0,0,1,0,0,72.7,9.588001,1.609438,3.53293,1 +11,4,0,1,3,427611,0,14587.68,21.57563,1,12,1,11.60791,17.02493,0,0,0,28.63285,0,0,0,1,0,5,82.4,6.9,0,72.7,0,0,0,0,1.609438,0,0,0,0,1,0,0,72.7,9.588001,1.609438,3.354555,1 +11,4,0,1,1,427612,0,14587.68,10.49144,1,12,1,13.02349,0,0,0,0,13.02349,0,0,0,1,0,5,85,9.967326,0,88.9,0,0,1,1,1.609438,0,0,0,0,1,0,0,88.9,9.588001,1.609438,2.566755,1 +11,4,0,1,2,427612,0,14587.68,11.49144,1,12,1,18.75293,5.743085,0,0,0,24.49602,0,0,0,2,0,5,85,9.967326,0,88.9,0,0,1,1,1.609438,0,0,0,0,1,0,0,88.9,9.588001,1.609438,3.19851,1 +11,4,0,1,3,427612,0,14587.68,12.49144,1,12,1,50.30095,14.07997,0,0,0,64.38091,0,0,0,4,0,5,85,9.967326,0,88.9,0,0,1,1,1.609438,0,0,0,0,1,0,0,88.9,9.588001,1.609438,4.164817,1 +11,4,0,1,1,427613,0,14587.68,51.31006,1,12,1,84.52502,14.57099,0,0,0,99.09602,0,0,0,4,0,5,71.8,24.1,1,63.6,0,0,0,0,1.609438,0,0,0,0,1,0,0,63.6,9.588001,1.609438,4.596089,1 +11,4,0,1,2,427613,0,14587.68,52.31006,1,12,1,39.0061,5.64932,0,0,0,44.65541,0,0,0,3,0,5,71.8,24.1,1,63.6,0,0,0,0,1.609438,0,0,0,0,1,0,0,63.6,9.588001,1.609438,3.798975,1 +11,4,0,1,3,427613,0,14587.68,53.31006,1,12,1,112.4248,10.81255,55.88994,0,0,179.1273,0,0,0,7,0,5,71.8,24.1,1,63.6,0,0,0,0,1.609438,0,0,0,0,1,0,0,63.6,9.588001,1.609438,5.188097,1 +11,4,0,1,1,427614,0,14587.68,14.14647,1,12,1,30.64351,4.290092,35.24004,0,0,70.17365,0,0,0,4,0,5,80.3,3.4,0,75,0,0,1,1,1.609438,0,0,0,0,1,0,0,75,9.588001,1.609438,4.250973,1 +11,4,0,1,2,427614,0,14587.68,15.14647,1,12,1,15.47117,3.000469,0,0,0,18.47164,0,0,0,1,0,5,80.3,3.4,0,75,0,0,1,1,1.609438,0,0,0,0,1,0,0,75,9.588001,1.609438,2.916236,1 +11,4,0,1,3,427614,0,14587.68,16.14647,1,12,1,79.75065,14.91831,0,0,0,94.66896,0,0,0,8,0,5,80.3,3.4,0,75,0,0,1,1,1.609438,0,0,0,0,1,0,0,75,9.588001,1.609438,4.550386,1 +16,4,95,1,1,427617,0,4496.774,47.76455,1,10,1,63.83308,0,79.85574,0,0,143.6888,0,0,0,2,0,2,73.9,27.6,0,71.6,931.35,931.35,0,0,.6931472,6.836635,0,4.564348,6.887928,1,0,0,71.6,8.411338,.6931472,4.96765,1 +16,4,95,1,2,427617,0,4496.774,48.76455,1,10,1,5.681818,0,0,0,0,5.681818,0,0,0,0,0,2,73.9,27.6,0,71.6,931.35,931.35,0,0,.6931472,6.836635,0,4.564348,6.887928,1,0,0,71.6,8.411338,.6931472,1.737271,1 +16,4,95,1,1,427618,0,4496.774,15.91239,1,10,1,43.53426,1.262236,25.75992,216.3833,0,70.55641,0,0,14,4,0,2,72.9,6.9,0,83,931.35,931.35,1,1,.6931472,6.836635,0,4.564348,6.887928,1,0,0,83,8.411338,.6931472,4.256413,1 +16,4,95,1,2,427618,0,4496.774,16.91239,1,10,1,16.09848,0,0,56.81818,0,16.09848,0,0,4,3,0,2,72.9,6.9,0,83,931.35,931.35,1,1,.6931472,6.836635,0,4.564348,6.887928,1,0,0,83,8.411338,.6931472,2.778725,1 +16,4,95,1,1,427619,0,3929.032,26.08624,1,12,1,0,4.044307,0,0,0,4.044307,0,0,0,0,0,1,70.2,10.3,0,73.9,900,900,0,0,0,6.802395,0,4.564348,6.853688,0,0,0,73.9,8.276402,0,1.39731,1 +16,4,95,1,2,427619,0,3929.032,27.08624,1,12,1,19.64962,0,0,0,0,19.64962,0,0,0,1,0,1,70.2,10.3,0,73.9,900,900,0,0,0,6.802395,0,4.564348,6.853688,0,0,0,73.9,8.276402,0,2.978058,1 +16,4,95,1,3,427619,0,3929.032,28.08624,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,70.2,10.3,0,73.9,900,900,0,0,0,6.802395,0,4.564348,6.853688,0,0,0,73.9,8.276402,0,,0 +16,4,95,1,4,427619,0,3929.032,29.08624,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,70.2,10.3,0,73.9,900,900,0,0,0,6.802395,0,4.564348,6.853688,0,0,0,73.9,8.276402,0,,0 +16,4,95,1,5,427619,0,3929.032,30.08624,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,70.2,10.3,0,73.9,900,900,0,0,0,6.802395,0,4.564348,6.853688,0,0,0,73.9,8.276402,0,,0 +13,4,0,1,1,427631,0,11010.56,36.95004,1,12,1,27.25399,5.641422,0,0,0,32.89542,0,0,0,2,0,5,80.3,6.9,0,83,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,83,9.306701,1.609438,3.493333,1 +13,4,0,1,2,427631,0,11010.56,37.95004,1,12,1,38.35227,24.22348,0,0,0,62.57576,0,0,0,5,0,5,80.3,6.9,0,83,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,83,9.306701,1.609438,4.136378,1 +13,4,0,1,3,427631,0,11010.56,38.95004,1,12,1,154.7898,2.522757,21.67317,0,0,178.9857,0,0,0,5,0,5,80.3,6.9,0,83,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,83,9.306701,1.609438,5.187306,1 +13,4,0,1,1,427632,0,11010.56,5.048597,1,12,1,15.45595,12.91602,20.60793,0,0,48.97991,0,0,0,2,0,5,95,9.967326,0,81.5,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,81.5,9.306701,1.609438,3.89141,1 +13,4,0,1,2,427632,0,11010.56,6.048597,1,12,1,35.58239,15.08523,0,0,0,50.66761,0,0,0,2,0,5,95,9.967326,0,81.5,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,81.5,9.306701,1.609438,3.925287,1 +13,4,0,1,3,427632,0,11010.56,7.048597,1,12,1,26.44127,12.97356,18.63893,0,0,58.05375,0,0,0,3,0,5,95,9.967326,0,81.5,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,81.5,9.306701,1.609438,4.061369,1 +13,4,0,1,1,427633,0,11010.56,2.600958,0,12,1,5.151984,12.85935,0,0,0,18.01133,0,0,0,1,0,5,83.39137,9.967326,0,96.3,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,96.3,9.306701,1.609438,2.891001,1 +13,4,0,1,2,427633,0,11010.56,3.600958,0,12,1,7.102273,12.93561,0,0,0,20.03788,0,0,0,1,0,5,83.39137,9.967326,0,96.3,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,96.3,9.306701,1.609438,2.997624,1 +13,4,0,1,3,427633,0,11010.56,4.600958,0,12,1,26.44127,11.77287,0,0,0,38.21413,0,0,0,3,0,5,83.39137,9.967326,0,96.3,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,96.3,9.306701,1.609438,3.643205,1 +13,4,0,1,1,427634,0,11010.56,9.015742,1,12,1,6.697578,12.85935,0,0,0,19.55693,0,0,0,1,0,5,95,9.967326,0,81.5,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,81.5,9.306701,1.609438,2.97333,1 +13,4,0,1,2,427634,0,11010.56,10.01574,1,12,1,16.57197,13.25284,17.99242,0,0,47.81723,0,0,0,2,0,5,95,9.967326,0,81.5,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,81.5,9.306701,1.609438,3.867386,1 +13,4,0,1,3,427634,0,11010.56,11.01574,1,12,1,24.27395,14.46034,11.27005,0,0,50.00433,0,0,0,3,0,5,95,9.967326,0,81.5,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,81.5,9.306701,1.609438,3.91211,1 +13,4,0,1,1,427635,0,11010.56,40.1807,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,83,6.9,0,80.7,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,80.7,9.306701,1.609438,,0 +13,4,0,1,2,427635,0,11010.56,41.1807,0,12,1,9.469697,0,27.46212,0,0,36.93182,0,0,0,1,0,5,83,6.9,0,80.7,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,80.7,9.306701,1.609438,3.609073,1 +13,4,0,1,3,427635,0,11010.56,42.1807,0,12,1,0,0,19.50585,0,0,19.50585,0,0,0,0,0,5,83,6.9,0,80.7,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,80.7,9.306701,1.609438,2.970715,1 +14,4,95,1,1,427656,0,6695.015,5.218344,0,12,1,5.151984,0,0,0,0,5.151984,0,0,0,1,0,4,88.3,9.967326,0,51.9,581.3,581.3,1,0,1.386294,6.365267,0,4.564348,6.41656,0,1,0,51.9,8.809268,1.386294,1.639382,1 +14,4,95,1,2,427656,0,6695.015,6.218344,0,12,1,25.0947,0,0,0,0,25.0947,0,0,0,1,0,4,88.3,9.967326,0,51.9,581.3,581.3,1,0,1.386294,6.365267,0,4.564348,6.41656,0,1,0,51.9,8.809268,1.386294,3.222656,1 +14,4,95,1,3,427656,0,6695.015,7.218344,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,88.3,9.967326,0,51.9,581.3,581.3,1,0,1.386294,6.365267,0,4.564348,6.41656,0,1,0,51.9,8.809268,1.386294,,0 +14,4,95,1,1,427657,0,6695.015,29.32512,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,96.8,3.4,0,67,581.3,581.3,0,0,1.386294,6.365267,0,4.564348,6.41656,1,0,0,67,8.809268,1.386294,,0 +14,4,95,1,2,427657,0,6695.015,30.32512,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,96.8,3.4,0,67,581.3,581.3,0,0,1.386294,6.365267,0,4.564348,6.41656,1,0,0,67,8.809268,1.386294,,0 +14,4,95,1,3,427657,0,6695.015,31.32512,0,12,1,28.73429,0,0,0,0,28.73429,0,0,0,1,0,4,96.8,3.4,0,67,581.3,581.3,0,0,1.386294,6.365267,0,4.564348,6.41656,1,0,0,67,8.809268,1.386294,3.358091,1 +14,4,95,1,1,427658,0,6695.015,7.296372,0,12,1,20.2473,0,0,0,0,20.2473,0,0,0,0,0,4,76.7,9.967326,0,88.9,581.3,581.3,1,0,1.386294,6.365267,0,4.564348,6.41656,1,0,0,88.9,8.809268,1.386294,3.008021,1 +14,4,95,1,2,427658,0,6695.015,8.296372,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,76.7,9.967326,0,88.9,581.3,581.3,1,0,1.386294,6.365267,0,4.564348,6.41656,1,0,0,88.9,8.809268,1.386294,,0 +14,4,95,1,3,427658,0,6695.015,9.296372,0,12,1,7.585609,0,0,0,0,7.585609,0,0,0,0,0,4,76.7,9.967326,0,88.9,581.3,581.3,1,0,1.386294,6.365267,0,4.564348,6.41656,1,0,0,88.9,8.809268,1.386294,2.026253,1 +14,4,95,1,1,427659,0,6695.015,29.56058,1,12,1,18.03194,0,0,0,0,18.03194,0,0,0,2,0,4,82.4,3.4,0,86.4,581.3,581.3,0,0,1.386294,6.365267,0,4.564348,6.41656,0,0,0,86.4,8.809268,1.386294,2.892145,1 +14,4,95,1,2,427659,0,6695.015,30.56058,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,82.4,3.4,0,86.4,581.3,581.3,0,0,1.386294,6.365267,0,4.564348,6.41656,0,0,0,86.4,8.809268,1.386294,,0 +14,4,95,1,3,427659,0,6695.015,31.56058,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,82.4,3.4,0,86.4,581.3,581.3,0,0,1.386294,6.365267,0,4.564348,6.41656,0,0,0,86.4,8.809268,1.386294,,0 +18,4,25,1,1,427661,0,9322.581,21.88364,1,12,1,110.8274,18.00307,21.96119,0,0,150.7916,0,0,0,4,1,3,43.1,3.4,0,79.5,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,79.5,9.140302,1.098612,5.015899,1 +18,4,25,1,2,427661,0,9322.581,22.88364,1,12,1,54.3835,26.16034,23.44116,0,0,103.985,0,0,0,3,1,3,43.1,3.4,0,79.5,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,79.5,9.140302,1.098612,4.644247,1 +18,4,25,1,3,427661,0,9322.581,23.88364,1,12,1,73.94669,12.25279,0,0,614.6174,700.8168,1,0,0,4,0,3,43.1,3.4,0,79.5,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,79.5,9.140302,1.098612,6.552247,1 +18,4,25,1,4,427661,0,9322.581,24.88364,1,12,1,58.45289,27.06475,0,0,0,85.51764,0,0,0,6,0,3,43.1,3.4,0,79.5,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,79.5,9.140302,1.098612,4.448723,1 +18,4,25,1,5,427661,0,9322.581,25.88364,1,12,1,7.077141,43.95966,0,0,0,51.0368,0,0,0,1,0,3,43.1,3.4,0,79.5,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,79.5,9.140302,1.098612,3.932547,1 +18,4,25,1,1,427662,0,9322.581,25.93292,0,12,1,43.89684,.8937691,0,0,675.046,719.8365,1,0,0,6,0,3,78.7,13.8,0,70.5,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,70.5,9.140302,1.098612,6.579024,1 +18,4,25,1,2,427662,0,9322.581,26.93292,0,12,1,9.376465,1.593999,33.28645,0,0,44.25692,0,0,0,0,1,3,78.7,13.8,0,70.5,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,70.5,9.140302,1.098612,3.790012,1 +18,4,25,1,3,427662,0,9322.581,27.93292,0,12,1,6.448839,0,0,0,0,6.448839,0,0,0,1,0,3,78.7,13.8,0,70.5,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,70.5,9.140302,1.098612,1.8639,1 +18,4,25,1,4,427662,0,9322.581,28.93292,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,78.7,13.8,0,70.5,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,70.5,9.140302,1.098612,,0 +18,4,25,1,5,427662,0,9322.581,29.93292,0,12,1,72.18684,0,0,0,0,72.18684,0,0,0,4,0,3,78.7,13.8,0,70.5,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,70.5,9.140302,1.098612,4.279258,1 +17,4,25,1,1,427673,0,1241.642,24.96372,1,16,1,64.50283,2.761463,0,0,0,67.2643,0,0,0,4,0,1,69.1,0,0,89.8,242.5,0,0,0,0,0,0,3.258096,6.877296,0,0,0,89.8,7.124995,0,4.20863,1 +17,4,25,1,2,427673,0,1241.642,25.96372,1,16,1,93.27651,5.336174,3.787879,0,0,102.4006,0,0,0,9,0,1,69.1,0,0,89.8,242.5,0,0,0,0,0,0,3.258096,6.877296,0,0,0,89.8,7.124995,0,4.628892,1 +17,4,25,1,3,427673,0,1241.642,26.96372,1,16,1,37.27785,19.72258,0,0,0,57.00043,0,0,0,8,1,1,69.1,0,0,89.8,242.5,0,0,0,0,0,0,3.258096,6.877296,0,0,0,89.8,7.124995,0,4.043059,1 +11,4,0,0,1,427674,0,9925.514,15.12663,1,12,1,15.32176,0,32.17569,0,0,47.49745,0,0,0,1,1,5,87.8,3.4,0,71.6,0,173.16,1,1,1.609438,5.154216,0,0,0,0,0,0,71.6,9.202965,1.609438,3.860676,1 +11,4,0,0,2,427674,0,9925.514,16.12663,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,87.8,3.4,0,71.6,0,173.16,1,1,1.609438,5.154216,0,0,0,0,0,0,71.6,9.202965,1.609438,,0 +11,4,0,0,3,427674,0,9925.514,17.12663,1,12,1,21.49613,2.063628,36.54342,0,0,60.10318,0,0,0,2,1,3,87.8,3.4,0,71.6,0,173.16,1,1,1.098612,5.154216,0,0,0,0,0,0,71.6,9.202965,1.098612,4.096063,1 +11,4,0,0,1,427675,0,9925.514,45.61807,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,85.6,3.4,0,71.6,0,173.16,0,0,1.609438,5.154216,0,0,0,0,0,0,71.6,9.202965,1.609438,,0 +11,4,0,0,2,427675,0,9925.514,46.61807,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,85.6,3.4,0,71.6,0,173.16,0,0,1.609438,5.154216,0,0,0,0,0,0,71.6,9.202965,1.609438,,0 +11,4,0,0,3,427675,0,9925.514,47.61807,0,12,1,10.74806,6.878762,55.88994,0,0,73.51677,0,0,0,0,1,3,85.6,3.4,0,71.6,0,173.16,0,0,1.098612,5.154216,0,0,0,0,0,0,71.6,9.202965,1.098612,4.297513,1 +11,4,0,0,1,427676,0,9925.514,16.38604,1,12,1,33.99387,20.92441,0,0,0,54.91829,0,0,0,5,0,5,78.7,3.4,0,76.1,0,173.16,1,1,1.609438,5.154216,0,0,0,0,0,0,76.1,9.202965,1.609438,4.005847,1 +11,4,0,0,2,427676,0,9925.514,17.38604,1,12,1,30.47351,21.63619,30.94234,0,0,83.05204,0,0,0,4,1,5,78.7,3.4,0,76.1,0,173.16,1,1,1.609438,5.154216,0,0,0,0,0,0,76.1,9.202965,1.609438,4.419467,1 +11,4,0,0,1,427677,0,9925.514,42.60369,1,12,1,69.66292,0,0,0,0,69.66292,0,0,0,2,0,5,78.2,6.9,0,78.4,0,173.16,0,0,1.609438,5.154216,0,0,0,0,0,0,78.4,9.202965,1.609438,4.243668,1 +11,4,0,0,2,427677,0,9925.514,43.60369,1,12,1,9.376465,0,59.07173,0,0,68.4482,0,0,0,0,1,5,78.2,6.9,0,78.4,0,173.16,0,0,1.609438,5.154216,0,0,0,0,0,0,78.4,9.202965,1.609438,4.226077,1 +11,4,0,0,1,427678,0,9925.514,6.986995,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,88.3,9.967326,0,81.5,0,173.16,1,1,1.609438,5.154216,0,0,0,0,0,0,81.5,9.202965,1.609438,,0 +11,4,0,0,2,427678,0,9925.514,7.986995,1,12,1,9.376465,0,25.78528,0,0,35.16174,0,0,0,0,1,5,88.3,9.967326,0,81.5,0,173.16,1,1,1.609438,5.154216,0,0,0,0,0,0,81.5,9.202965,1.609438,3.559959,1 +11,4,0,0,3,427678,0,9925.514,8.986995,1,12,1,14.61737,1.526225,22.35598,0,0,38.49957,0,0,0,1,1,3,88.3,9.967326,0,81.5,0,173.16,1,1,1.098612,5.154216,0,0,0,0,0,0,81.5,9.202965,1.098612,3.650647,1 +7,4,25,1,1,427757,0,7777.126,54.37372,0,12,1,15.45595,0,0,0,0,15.45595,0,0,0,2,0,2,77.1,10.3,0,68.2,750,725,0,0,.6931472,6.586172,0,3.258096,8.006368,0,0,0,68.2,8.959071,.6931472,2.737994,1 +7,4,25,1,2,427757,0,7777.126,55.37372,0,12,1,515.1515,2.059659,22.25379,0,0,539.465,0,0,0,10,25,2,77.1,10.3,0,68.2,750,725,0,0,.6931472,6.586172,0,3.258096,8.006368,0,0,0,68.2,8.959071,.6931472,6.290578,1 +7,4,25,1,3,427757,0,7777.126,56.37372,0,12,1,47.68097,0,26.0078,0,0,73.68877,0,0,0,1,10,1,77.1,10.3,0,68.2,750,725,0,0,0,6.586172,0,3.258096,8.006368,0,0,0,68.2,8.959071,0,4.29985,1 +7,4,25,1,1,427758,0,7777.126,47.16496,1,11,1,18.54714,24.10613,0,0,0,42.65327,0,0,0,3,0,2,69.7,13.8,0,62.5,750,725,0,0,.6931472,6.586172,0,3.258096,8.006368,1,0,0,62.5,8.959071,.6931472,3.753104,1 +7,4,25,1,2,427758,0,7777.126,48.16496,1,11,.0767123,0,0,0,0,0,0,0,0,0,0,0,2,69.7,13.8,0,62.5,750,725,0,0,.6931472,6.586172,0,3.258096,8.006368,1,0,0,62.5,8.959071,.6931472,,0 +13,4,0,1,1,427763,0,10902.05,12.44627,0,12,1,36.77222,71.4096,0,0,0,108.1818,0,0,0,7,0,3,88.3,9.967326,0,63,450,919.44,1,0,1.098612,6.823765,1,4.564348,6.160541,0,0,0,63,9.296798,1.098612,4.683813,1 +13,4,0,1,2,427763,0,10902.05,13.44627,0,12,1,15.93999,62.37225,0,0,0,78.31223,0,0,0,3,0,3,88.3,9.967326,0,63,450,919.44,1,0,1.098612,6.823765,1,4.564348,6.160541,0,0,0,63,9.296798,1.098612,4.360704,1 +13,4,0,1,3,427763,0,10902.05,14.44627,0,12,1,24.61307,21.99484,0,0,0,46.60791,0,0,0,3,0,3,88.3,9.967326,0,63,450,919.44,1,0,1.098612,6.823765,1,4.564348,6.160541,0,0,0,63,9.296798,1.098612,3.84177,1 +13,4,0,1,1,427764,0,10902.05,45.15263,1,12,1,57.48723,140.5056,0,0,0,197.9928,0,0,0,4,0,3,83,24.1,1,48.9,450,919.44,0,0,1.098612,6.823765,1,4.564348,6.160541,1,0,0,48.9,9.296798,1.098612,5.288231,1 +13,4,0,1,2,427764,0,10902.05,46.15263,1,12,1,72.6676,104.3647,195.9681,0,674.0131,1047.014,1,0,0,7,1,3,83,24.1,1,48.9,450,919.44,0,0,1.098612,6.823765,1,4.564348,6.160541,1,0,0,48.9,9.296798,1.098612,6.953697,1 +13,4,0,1,3,427764,0,10902.05,47.15263,1,12,1,49.52708,125.4815,0,0,0,175.0086,0,0,0,4,0,3,83,24.1,1,48.9,450,919.44,0,0,1.098612,6.823765,1,4.564348,6.160541,1,0,0,48.9,9.296798,1.098612,5.164835,1 +13,4,0,1,1,427765,0,10902.05,45.84531,0,12,1,62.56384,74.50459,43.15628,0,0,180.2247,0,0,0,2,1,3,80.9,13.8,0,84.1,450,919.44,0,0,1.098612,6.823765,1,4.564348,6.160541,0,0,0,84.1,9.296798,1.098612,5.194204,1 +13,4,0,1,2,427765,0,10902.05,46.84531,0,12,1,4.688232,23.77403,0,0,0,28.46226,0,0,0,1,0,3,80.9,13.8,0,84.1,450,919.44,0,0,1.098612,6.823765,1,4.564348,6.160541,0,0,0,84.1,9.296798,1.098612,3.348579,1 +13,4,0,1,3,427765,0,10902.05,47.84531,0,12,1,10.74806,2.145314,45.14188,0,0,58.03526,0,0,0,0,1,3,80.9,13.8,0,84.1,450,919.44,0,0,1.098612,6.823765,1,4.564348,6.160541,0,0,0,84.1,9.296798,1.098612,4.061051,1 +11,4,0,0,1,427780,0,5984.246,22.69952,1,12,1,16.48635,3.060278,32.1999,0,0,51.74652,0,0,0,2,0,2,83.6,10.3,0,92.9,0,501.8,0,0,.6931472,6.218202,0,0,0,0,0,0,92.9,8.697053,.6931472,3.946357,1 +11,4,0,0,2,427780,0,5984.246,23.69952,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,83.6,10.3,0,92.9,0,501.8,0,0,.6931472,6.218202,0,0,0,0,0,0,92.9,8.697053,.6931472,,0 +11,4,0,0,3,427780,0,5984.246,24.69952,1,12,1,54.72475,.9969658,0,0,0,55.72172,0,0,0,1,3,2,83.6,10.3,0,92.9,0,501.8,0,0,.6931472,6.218202,0,0,0,0,0,0,92.9,8.697053,.6931472,4.02037,1 +11,4,0,0,1,427781,0,5984.246,31.64682,0,12,1,62.7254,1.669243,0,0,1048.207,1112.602,2,0,0,3,0,2,55.3,6.9,0,44.3,0,501.8,0,0,.6931472,6.218202,0,0,0,1,0,0,44.3,8.697053,.6931472,7.014457,1 +11,4,0,0,2,427781,0,5984.246,32.64682,0,12,1,70.3125,14.7822,0,18.93939,967.3058,1052.401,1,0,2,5,0,2,55.3,6.9,0,44.3,0,501.8,0,0,.6931472,6.218202,0,0,0,1,0,0,44.3,8.697053,.6931472,6.958829,1 +11,4,0,0,3,427781,0,5984.246,33.64682,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,55.3,6.9,0,44.3,0,501.8,0,0,.6931472,6.218202,0,0,0,1,0,0,44.3,8.697053,.6931472,,0 +10,4,50,1,1,427795,0,6861.583,2.61191,0,12,1,35.36142,0,0,0,81.67447,117.0359,1,0,0,2,0,6,83.39137,9.967326,0,55.6,1000,0,1,0,1.791759,0,0,3.931826,7.600903,1,0,0,55.6,8.833839,1.791759,4.762481,1 +10,4,50,1,2,427795,0,6861.583,3.61191,0,12,1,7.644529,5.685619,0,0,0,13.33015,0,0,0,1,0,6,83.39137,9.967326,0,55.6,1000,0,1,0,1.791759,0,0,3.931826,7.600903,1,0,0,55.6,8.833839,1.791759,2.590028,1 +10,4,50,1,3,427795,0,6861.583,4.61191,0,12,1,29.741,2.107111,0,0,0,31.84811,0,0,0,4,0,6,83.39137,9.967326,0,55.6,1000,0,1,0,1.791759,0,0,3.931826,7.600903,1,0,0,55.6,8.833839,1.791759,3.460978,1 +10,4,50,1,4,427795,0,6861.583,5.61191,0,12,1,12.36538,7.618668,0,0,0,19.98405,0,0,0,1,0,6,83.39137,9.967326,0,55.6,1000,0,1,0,1.791759,0,0,3.931826,7.600903,1,0,0,55.6,8.833839,1.791759,2.994934,1 +10,4,50,1,5,427795,0,6861.583,6.61191,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,83.39137,9.967326,0,55.6,1000,0,1,0,1.609438,0,0,3.931826,7.600903,1,0,0,55.6,8.833839,1.609438,,0 +10,4,50,1,1,427796,0,6861.583,7.82204,0,12,1,5.200208,0,0,0,0,5.200208,0,0,0,1,0,6,75,9.967326,0,40.7,1000,0,1,0,1.791759,0,0,3.931826,7.600903,1,0,0,40.7,8.833839,1.791759,1.648699,1 +10,4,50,1,2,427796,0,6861.583,8.82204,0,12,1,7.166746,3.798376,0,0,0,10.96512,0,0,0,1,0,6,75,9.967326,0,40.7,1000,0,1,0,1.791759,0,0,3.931826,7.600903,1,0,0,40.7,8.833839,1.791759,2.39472,1 +10,4,50,1,3,427796,0,6861.583,9.82204,0,12,1,5.267779,0,0,0,0,5.267779,0,0,0,1,0,6,75,9.967326,0,40.7,1000,0,1,0,1.791759,0,0,3.931826,7.600903,1,0,0,40.7,8.833839,1.791759,1.661609,1 +10,4,50,1,4,427796,0,6861.583,10.82204,0,12,1,7.977663,5.185481,0,0,0,13.16314,0,0,0,2,0,6,75,9.967326,0,40.7,1000,0,1,0,1.791759,0,0,3.931826,7.600903,1,0,0,40.7,8.833839,1.791759,2.577421,1 +10,4,50,1,5,427796,0,6861.583,11.82204,0,12,1,5.438724,0,0,0,0,5.438724,0,0,0,1,0,5,75,9.967326,0,40.7,1000,0,1,0,1.609438,0,0,3.931826,7.600903,1,0,0,40.7,8.833839,1.609438,1.693544,1 +10,4,50,1,1,427797,0,6861.583,36.64613,1,12,1,58.76235,208.9392,0,0,0,267.7015,0,0,0,14,0,6,55.9,10.3,0,55.7,1000,0,0,0,1.791759,0,0,3.931826,7.600903,0,1,0,55.7,8.833839,1.791759,5.589872,1 +10,4,50,1,2,427797,0,6861.583,37.64613,1,12,1,61.63402,75.91496,0,0,531.3426,668.8915,1,0,0,15,0,6,55.9,10.3,0,55.7,1000,0,0,0,1.791759,0,0,3.931826,7.600903,0,1,0,55.7,8.833839,1.791759,6.505622,1 +10,4,50,1,3,427797,0,6861.583,38.64613,1,12,1,57.0676,108.8235,0,0,0,165.8911,0,0,0,16,0,6,55.9,10.3,0,55.7,1000,0,0,0,1.791759,0,0,3.931826,7.600903,0,1,0,55.7,8.833839,1.791759,5.111332,1 +10,4,50,1,4,427797,0,6861.583,39.64613,1,12,.9453552,1267.012,48.20502,0,0,6702.912,8018.129,4,0,0,41,4,6,55.9,10.3,0,55.7,1000,0,0,0,1.791759,0,0,3.931826,7.600903,0,1,0,55.7,8.833839,1.791759,8.98946,1 +10,4,50,1,1,427798,0,6861.583,14.78987,0,12,1,97.24389,5.980239,28.86115,0,0,132.0853,0,0,0,7,0,6,61.2,6.9,0,63.6,1000,0,1,0,1.791759,0,0,3.931826,7.600903,1,0,0,63.6,8.833839,1.791759,4.883448,1 +10,4,50,1,2,427798,0,6861.583,15.78987,0,12,1,39.65599,1.600573,0,0,0,41.25657,0,0,0,4,0,6,61.2,6.9,0,63.6,1000,0,1,0,1.791759,0,0,3.931826,7.600903,1,0,0,63.6,8.833839,1.791759,3.71981,1 +10,4,50,1,3,427798,0,6861.583,16.78987,0,12,1,1.755926,3.292362,0,0,0,5.048288,0,0,0,0,0,6,61.2,6.9,0,63.6,1000,0,1,0,1.791759,0,0,3.931826,7.600903,1,0,0,63.6,8.833839,1.791759,1.619049,1 +10,4,50,1,4,427798,0,6861.583,17.78987,0,12,1,323.6019,1.515756,9.972078,0,1457.419,1792.509,1,0,0,5,1,6,61.2,6.9,0,63.6,1000,0,1,0,1.791759,0,0,3.931826,7.600903,1,0,0,63.6,8.833839,1.791759,7.491372,1 +10,4,50,1,5,427798,0,6861.583,18.78987,0,12,1,44.59753,0,0,0,0,44.59753,0,0,0,4,0,5,61.2,6.9,0,63.6,1000,0,0,0,1.609438,0,0,3.931826,7.600903,1,0,0,63.6,8.833839,1.609438,3.797678,1 +10,4,50,1,1,427799,0,6861.583,5.522245,1,12,1,13.81175,3.094124,0,0,0,16.90588,0,0,0,2,0,6,71.7,9.967326,0,37,1000,0,1,1,1.791759,0,0,3.931826,7.600903,1,0,0,37,8.833839,1.791759,2.827661,1 +10,4,50,1,2,427799,0,6861.583,6.522245,1,12,1,6.688963,3.39226,0,0,0,10.08122,0,0,0,1,0,6,71.7,9.967326,0,37,1000,0,1,1,1.791759,0,0,3.931826,7.600903,1,0,0,37,8.833839,1.791759,2.310675,1 +10,4,50,1,3,427799,0,6861.583,7.522245,1,12,1,18.87621,3.819139,18.43723,0,0,41.13257,0,0,0,2,0,6,71.7,9.967326,0,37,1000,0,1,1,1.791759,0,0,3.931826,7.600903,1,0,0,37,8.833839,1.791759,3.7168,1 +10,4,50,1,4,427799,0,6861.583,8.522245,1,12,1,10.37096,1.515756,0,0,0,11.88672,0,0,0,1,0,6,71.7,9.967326,0,37,1000,0,1,1,1.791759,0,0,3.931826,7.600903,1,0,0,37,8.833839,1.791759,2.475421,1 +10,4,50,1,5,427799,0,6861.583,9.522245,1,12,1,51.61349,0,0,0,0,51.61349,0,0,0,5,0,5,71.7,9.967326,0,37,1000,0,1,1,1.609438,0,0,3.931826,7.600903,1,0,0,37,8.833839,1.609438,3.943783,1 +10,4,50,1,1,427800,0,6861.583,38.42574,0,12,1,11.96048,0,0,0,0,11.96048,0,0,0,1,0,6,78.2,3.4,0,58,1000,0,0,0,1.791759,0,0,3.931826,7.600903,1,0,0,58,8.833839,1.791759,2.481608,1 +10,4,50,1,2,427800,0,6861.583,39.42574,0,12,1,25.08361,0,0,0,0,25.08361,0,0,0,2,0,6,78.2,3.4,0,58,1000,0,0,0,1.791759,0,0,3.931826,7.600903,1,0,0,58,8.833839,1.791759,3.222215,1 +10,4,50,1,3,427800,0,6861.583,40.42574,0,12,1,25.02195,0,0,0,0,25.02195,0,0,0,2,0,6,78.2,3.4,0,58,1000,0,0,0,1.791759,0,0,3.931826,7.600903,1,0,0,58,8.833839,1.791759,3.219754,1 +10,4,50,1,4,427800,0,6861.583,41.42574,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,78.2,3.4,0,58,1000,0,0,0,1.791759,0,0,3.931826,7.600903,1,0,0,58,8.833839,1.791759,,0 +10,4,50,1,5,427800,0,6861.583,42.42574,0,12,1,9.06454,0,27.5562,0,0,36.62074,0,0,0,1,0,5,78.2,3.4,0,58,1000,0,0,0,1.609438,0,0,3.931826,7.600903,1,0,0,58,8.833839,1.609438,3.600615,1 +11,4,0,0,1,427803,0,11563.64,5.281314,0,13,1,22.98264,1.378958,0,0,0,24.36159,0,0,0,0,1,6,93.3,9.967326,0,70.4,0,492.84,1,0,1.791759,6.200184,0,0,0,0,0,0,70.4,9.355707,1.791759,3.193008,1 +11,4,0,0,2,427803,0,11563.64,6.281314,0,13,1,311.0408,26.98078,0,0,0,338.0216,0,0,0,4,2,6,93.3,9.967326,0,70.4,0,492.84,1,0,1.791759,6.200184,0,0,0,0,0,0,70.4,9.355707,1.791759,5.82311,1 +11,4,0,0,3,427803,0,11563.64,7.281314,0,13,1,0,2.901978,0,0,0,2.901978,0,0,0,0,0,6,93.3,9.967326,0,70.4,0,492.84,1,0,1.791759,6.200184,0,0,0,0,0,0,70.4,9.355707,1.791759,1.065392,1 +11,4,0,0,4,427803,0,11563.64,8.281314,0,13,1,40.75223,4.203179,0,0,0,44.95541,0,0,0,4,0,6,93.3,9.967326,0,70.4,0,492.84,1,0,1.791759,6.200184,0,0,0,0,0,0,70.4,9.355707,1.791759,3.805671,1 +11,4,0,0,5,427803,0,11563.64,9.281314,0,13,1,6.01557,6.369427,0,0,0,12.385,0,0,0,1,0,6,93.3,9.967326,0,70.4,0,492.84,1,0,1.791759,6.200184,0,0,0,0,0,0,70.4,9.355707,1.791759,2.516486,1 +11,4,0,0,1,427804,0,11563.64,11.31006,1,13,1,104.8264,0,21.96119,0,0,126.7875,0,0,0,4,1,6,85,9.967326,0,85.2,0,492.84,1,1,1.791759,6.200184,0,0,0,0,0,0,85.2,9.355707,1.791759,4.842513,1 +11,4,0,0,2,427804,0,11563.64,12.31006,1,13,1,29.06704,5.789967,0,0,0,34.85701,0,0,0,3,2,6,85,9.967326,0,85.2,0,492.84,1,1,1.791759,6.200184,0,0,0,0,0,0,85.2,9.355707,1.791759,3.551254,1 +11,4,0,0,3,427804,0,11563.64,13.31006,1,13,1,15.79966,3.8908,0,0,0,19.69046,0,0,0,2,0,6,85,9.967326,0,85.2,0,492.84,1,1,1.791759,6.200184,0,0,0,0,0,0,85.2,9.355707,1.791759,2.980134,1 +11,4,0,0,4,427804,0,11563.64,14.31006,1,13,1,31.40752,6.010081,0,0,0,37.4176,0,0,0,3,0,6,85,9.967326,0,85.2,0,492.84,1,1,1.791759,6.200184,0,0,0,0,0,0,85.2,9.355707,1.791759,3.622141,1 +11,4,0,0,5,427804,0,11563.64,15.31006,1,13,1,7.077141,0,0,0,0,7.077141,0,0,0,0,1,6,85,9.967326,0,85.2,0,492.84,1,1,1.791759,6.200184,0,0,0,0,0,0,85.2,9.355707,1.791759,1.95687,1 +11,4,0,0,1,427805,0,11563.64,9.415469,1,13,1,14.8621,3.983657,0,0,0,18.84576,0,0,0,1,0,6,70,9.967326,0,77.8,0,492.84,1,1,1.791759,6.200184,0,0,0,0,0,0,77.8,9.355707,1.791759,2.936288,1 +11,4,0,0,2,427805,0,11563.64,10.41547,1,13,1,62.00188,25.15237,0,0,0,87.15424,0,0,0,8,0,6,70,9.967326,0,77.8,0,492.84,1,1,1.791759,6.200184,0,0,0,0,0,0,77.8,9.355707,1.791759,4.46768,1 +11,4,0,0,3,427805,0,11563.64,11.41547,1,13,1,4.987103,5.803955,0,0,0,10.79106,0,0,0,2,0,6,70,9.967326,0,77.8,0,492.84,1,1,1.791759,6.200184,0,0,0,0,0,0,77.8,9.355707,1.791759,2.378718,1 +11,4,0,0,4,427805,0,11563.64,12.41547,1,13,1,0,0,0,0,0,0,0,0,0,0,0,6,70,9.967326,0,77.8,0,492.84,1,1,1.791759,6.200184,0,0,0,0,0,0,77.8,9.355707,1.791759,,0 +11,4,0,0,5,427805,0,11563.64,13.41547,1,13,1,124.5577,.8032555,0,0,0,125.3609,0,0,0,4,0,6,70,9.967326,0,77.8,0,492.84,1,1,1.791759,6.200184,0,0,0,0,0,0,77.8,9.355707,1.791759,4.831197,1 +11,4,0,0,1,427806,0,11563.64,32.85421,1,13,1,35.4954,13.20225,34.21859,0,0,82.91624,0,0,0,2,0,6,81.9,10.3,0,70.5,0,492.84,0,0,1.791759,6.200184,0,0,0,0,1,0,70.5,9.355707,1.791759,4.417831,1 +11,4,0,0,2,427806,0,11563.64,33.85421,1,13,1,495.4524,24.00375,0,0,0,519.4562,0,0,0,7,0,6,81.9,10.3,0,70.5,0,492.84,0,0,1.791759,6.200184,0,0,0,0,1,0,70.5,9.355707,1.791759,6.252782,1 +11,4,0,0,3,427806,0,11563.64,34.85421,1,13,1,38.15563,5.266552,0,0,0,43.42218,0,0,0,2,0,6,81.9,10.3,0,70.5,0,492.84,0,0,1.791759,6.200184,0,0,0,0,1,0,70.5,9.355707,1.791759,3.77097,1 +11,4,0,0,4,427806,0,11563.64,35.85421,1,13,1,13.57115,.7754944,0,0,0,14.34665,0,0,0,1,1,6,81.9,10.3,0,70.5,0,492.84,0,0,1.791759,6.200184,0,0,0,0,1,0,70.5,9.355707,1.791759,2.663516,1 +11,4,0,0,5,427806,0,11563.64,36.85421,1,13,1,23.53149,1.751592,24.06228,0,0,49.34536,0,0,0,3,0,6,81.9,10.3,0,70.5,0,492.84,0,0,1.791759,6.200184,0,0,0,0,1,0,70.5,9.355707,1.791759,3.898844,1 +11,4,0,0,1,427807,0,11563.64,36.57221,0,12,1,52.86006,1.71093,0,0,0,54.57099,0,0,0,4,0,6,83,6.9,1,70.2,0,492.84,0,0,1.791759,6.200184,0,0,0,0,0,0,70.2,9.355707,1.791759,3.999502,1 +11,4,0,0,2,427807,0,11563.64,37.57221,0,12,1,42.19409,5.157056,31.64557,0,0,78.99672,0,0,0,0,6,6,83,6.9,1,70.2,0,492.84,0,0,1.791759,6.200184,0,0,0,0,0,0,70.2,9.355707,1.791759,4.369406,1 +11,4,0,0,3,427807,0,11563.64,38.57221,0,12,1,43.63715,0,0,0,0,43.63715,0,0,0,1,4,6,83,6.9,1,70.2,0,492.84,0,0,1.791759,6.200184,0,0,0,0,0,0,70.2,9.355707,1.791759,3.775909,1 +11,4,0,0,4,427807,0,11563.64,39.57221,0,12,1,17.44862,3.664211,0,0,0,21.11283,0,0,0,1,1,6,83,6.9,1,70.2,0,492.84,0,0,1.791759,6.200184,0,0,0,0,0,0,70.2,9.355707,1.791759,3.049881,1 +11,4,0,0,5,427807,0,11563.64,40.57221,0,12,1,491.0651,3.78627,18.40057,0,0,513.252,0,0,0,6,0,6,83,6.9,1,70.2,0,492.84,0,0,1.791759,6.200184,0,0,0,0,0,0,70.2,9.355707,1.791759,6.240767,1 +11,4,0,0,1,427831,0,7646.334,24.68172,1,16,1,28.33591,21.32921,0,0,0,49.66512,0,0,0,2,0,2,73.4,6.9,0,62.5,0,180.96,0,0,.6931472,5.198276,0,0,0,0,0,0,62.5,8.942112,.6931472,3.905303,1 +11,4,0,0,2,427831,0,7646.334,25.68172,1,16,1,296.9934,20.77178,0,0,0,317.7651,0,0,0,6,0,2,73.4,6.9,0,62.5,0,180.96,0,0,.6931472,5.198276,0,0,0,0,0,0,62.5,8.942112,.6931472,5.761312,1 +11,4,0,0,3,427831,0,7646.334,26.68172,1,16,1,67.51192,20.74122,0,0,0,88.25314,0,0,0,3,1,2,73.4,6.9,0,62.5,0,180.96,0,0,.6931472,5.198276,0,0,0,0,0,0,62.5,8.942112,.6931472,4.480209,1 +11,4,0,0,4,427831,0,7646.334,27.68172,1,16,1,26.38834,26.91611,0,0,0,53.30445,0,0,0,2,1,2,73.4,6.9,0,62.5,0,180.96,0,0,.6931472,5.198276,0,0,0,0,0,0,62.5,8.942112,.6931472,3.97602,1 +11,4,0,0,5,427831,0,7646.334,28.68172,1,16,1,97.58498,14.2576,0,0,1258.537,1370.379,3,0,0,2,0,2,73.4,6.9,0,62.5,0,180.96,0,0,.6931472,5.198276,0,0,0,0,0,0,62.5,8.942112,.6931472,7.222843,1 +11,4,0,0,1,427832,0,7646.334,23.81383,0,16,1,0,0,0,0,0,0,0,0,0,0,0,2,81.9,13.8,0,75,0,180.96,0,0,.6931472,5.198276,0,0,0,0,0,0,75,8.942112,.6931472,,0 +11,4,0,0,2,427832,0,7646.334,24.81383,0,16,1,0,5.970644,0,0,0,5.970644,0,0,0,0,0,2,81.9,13.8,0,75,0,180.96,0,0,.6931472,5.198276,0,0,0,0,0,0,75,8.942112,.6931472,1.786855,1 +11,4,0,0,3,427832,0,7646.334,25.81383,0,16,1,32.07629,20.39012,23.40702,0,0,75.87343,0,0,0,4,0,2,81.9,13.8,0,75,0,180.96,0,0,.6931472,5.198276,0,0,0,0,0,0,75,8.942112,.6931472,4.329067,1 +11,4,0,0,4,427832,0,7646.334,26.81383,0,16,1,0,0,0,0,0,0,0,0,0,0,0,2,81.9,13.8,0,75,0,180.96,0,0,.6931472,5.198276,0,0,0,0,0,0,75,8.942112,.6931472,,0 +11,4,0,0,5,427832,0,7646.334,27.81383,0,16,1,11.44902,7.298748,18.24687,0,0,36.99463,0,0,0,1,1,2,81.9,13.8,0,75,0,180.96,0,0,.6931472,5.198276,0,0,0,0,0,0,75,8.942112,.6931472,3.610773,1 +11,4,0,1,1,427833,0,8444.575,5.902806,0,12,1,120.5408,3.770151,24.961,0,0,149.272,0,0,0,24,1,4,83.3,9.967326,0,100,0,400.08,1,0,1.386294,5.991664,0,0,0,0,0,0,100,9.041398,1.386294,5.00577,1 +11,4,0,1,2,427833,0,8444.575,6.902806,0,12,1,44.88772,5.996178,22.93359,0,0,73.81749,0,0,0,6,1,4,83.3,9.967326,0,100,0,400.08,1,0,1.386294,5.991664,0,0,0,0,0,0,100,9.041398,1.386294,4.301596,1 +11,4,0,1,3,427833,0,8444.575,7.902806,0,12,1,84.37225,3.204566,24.83758,65.84724,0,112.4144,0,0,5,5,0,4,83.3,9.967326,0,100,0,400.08,1,0,1.386294,5.991664,0,0,0,0,0,0,100,9.041398,1.386294,4.722192,1 +11,4,0,1,4,427833,0,8444.575,8.902806,0,12,1,55.2852,0,0,0,0,55.2852,0,0,0,5,0,4,83.3,9.967326,0,100,0,400.08,1,0,1.386294,5.991664,0,0,0,0,0,0,100,9.041398,1.386294,4.012505,1 +11,4,0,1,5,427833,0,8444.575,9.902806,0,12,1,57.14286,3.172589,29.00653,0,0,89.32198,0,0,0,7,0,4,83.3,9.967326,0,100,0,400.08,1,0,1.386294,5.991664,0,0,0,0,0,0,100,9.041398,1.386294,4.492248,1 +11,4,0,1,1,427834,0,8444.575,27.0527,0,8,1,10.40042,0,31.98128,0,0,42.38169,0,0,0,0,1,4,80.3,6.9,0,81.8,0,400.08,0,0,1.386294,5.991664,0,0,0,0,0,0,81.8,9.041398,1.386294,3.746716,1 +11,4,0,1,2,427834,0,8444.575,28.0527,0,8,1,9.555662,0,14.81128,0,0,24.36694,0,0,0,0,1,4,80.3,6.9,0,81.8,0,400.08,0,0,1.386294,5.991664,0,0,0,0,0,0,81.8,9.041398,1.386294,3.193227,1 +11,4,0,1,3,427834,0,8444.575,29.0527,0,8,1,8.779632,0,28.5338,0,0,37.31343,0,0,0,0,1,4,80.3,6.9,0,81.8,0,400.08,0,0,1.386294,5.991664,0,0,0,0,0,0,81.8,9.041398,1.386294,3.619354,1 +11,4,0,1,4,427834,0,8444.575,30.0527,0,8,1,9.972078,0,16.75309,0,0,26.72517,0,0,0,1,0,4,80.3,6.9,0,81.8,0,400.08,0,0,1.386294,5.991664,0,0,0,0,0,0,81.8,9.041398,1.386294,3.285606,1 +11,4,0,1,5,427834,0,8444.575,31.0527,0,8,1,0,0,0,0,0,0,0,0,0,0,0,4,80.3,6.9,0,81.8,0,400.08,0,0,1.386294,5.991664,0,0,0,0,0,0,81.8,9.041398,1.386294,,0 +11,4,0,1,1,427835,0,8444.575,7.323751,1,12,1,16.64067,1.950078,0,0,0,18.59074,0,0,0,3,0,4,81.7,9.967326,0,100,0,400.08,1,1,1.386294,5.991664,0,0,0,0,0,0,100,9.041398,1.386294,2.922664,1 +11,4,0,1,2,427835,0,8444.575,8.32375,1,12,1,5.733397,0,0,0,0,5.733397,0,0,0,1,0,4,81.7,9.967326,0,100,0,400.08,1,1,1.386294,5.991664,0,0,0,0,0,0,100,9.041398,1.386294,1.746308,1 +11,4,0,1,3,427835,0,8444.575,9.32375,1,12,1,59.04302,0,0,0,0,59.04302,0,0,0,5,0,4,81.7,9.967326,0,100,0,400.08,1,1,1.386294,5.991664,0,0,0,0,0,0,100,9.041398,1.386294,4.078266,1 +11,4,0,1,4,427835,0,8444.575,10.32375,1,12,1,27.52294,1.814918,0,0,0,29.33785,0,0,0,2,0,4,81.7,9.967326,0,100,0,400.08,1,1,1.386294,5.991664,0,0,0,0,0,0,100,9.041398,1.386294,3.378879,1 +11,4,0,1,5,427835,0,8444.575,11.32375,1,12,1,4.350979,0,0,0,0,4.350979,0,0,0,1,0,4,81.7,9.967326,0,100,0,400.08,1,1,1.386294,5.991664,0,0,0,0,0,0,100,9.041398,1.386294,1.470401,1 +11,4,0,1,1,427836,0,8444.575,26.33813,1,12,1,102.9641,11.70047,0,62.4025,0,114.6646,0,0,3,8,1,4,48.4,27.6,0,62.5,0,400.08,0,0,1.386294,5.991664,0,0,0,0,0,0,62.5,9.041398,1.386294,4.742011,1 +11,4,0,1,2,427836,0,8444.575,27.33813,1,12,1,37.74487,33.06259,0,0,0,70.80746,0,0,0,5,0,4,48.4,27.6,0,62.5,0,400.08,0,0,1.386294,5.991664,0,0,0,0,0,0,62.5,9.041398,1.386294,4.259964,1 +11,4,0,1,3,427836,0,8444.575,28.33813,1,12,1,140.6277,36.43547,0,0,0,177.0632,0,0,0,4,17,4,48.4,27.6,0,62.5,0,400.08,0,0,1.386294,5.991664,0,0,0,0,0,0,62.5,9.041398,1.386294,5.176507,1 +11,4,0,1,4,427836,0,8444.575,29.33813,1,12,1,51.05704,5.444755,0,277.2238,0,56.5018,0,0,30,3,5,4,48.4,27.6,0,62.5,0,400.08,0,0,1.386294,5.991664,0,0,0,0,0,0,62.5,9.041398,1.386294,4.034273,1 +11,4,0,1,5,427836,0,8444.575,30.33813,1,12,1,28.64395,1.53372,0,353.517,0,30.17767,0,0,39,4,0,4,48.4,27.6,0,62.5,0,400.08,0,0,1.386294,5.991664,0,0,0,0,0,0,62.5,9.041398,1.386294,3.407102,1 +16,4,95,1,1,427845,0,730.2053,20.10404,1,12,1,17.71255,0,24.2915,0,0,42.00405,0,0,0,0,1,1,58.5,6.9,0,89.8,34.5,0,0,0,0,0,0,4.564348,3.592253,0,0,0,89.8,6.594694,0,3.737766,1 +16,4,95,1,2,427845,0,730.2053,21.10404,1,12,1,6.713287,13.68298,0,0,646.0606,666.4568,1,0,0,0,0,1,58.5,6.9,0,89.8,34.5,0,0,0,0,0,0,4.564348,3.592253,0,0,0,89.8,6.594694,0,6.501976,1 +16,4,95,1,3,427845,0,730.2053,22.10404,1,12,1,23.8991,2.201796,24.79692,0,0,50.89782,0,0,0,1,1,2,58.5,6.9,0,89.8,34.5,0,0,0,.6931472,0,0,4.564348,3.592253,0,0,0,89.8,6.594694,.6931472,3.92982,1 +10,4,50,1,1,427858,0,2071.554,24.5859,0,12,1,7.660879,0,0,0,343.1103,350.7712,1,0,0,0,1,1,80.3,0,0,81.8,660,0,0,0,0,0,0,3.931826,7.185387,0,0,0,81.8,7.636537,0,5.860134,1 +10,4,50,1,2,427858,0,2071.554,25.5859,0,12,1,27.54337,2.967651,0,0,0,30.51102,0,0,0,2,0,1,80.3,0,0,81.8,660,0,0,0,0,0,0,3.931826,7.185387,0,0,0,81.8,7.636537,0,3.418088,1 +10,4,50,1,3,427858,0,2071.554,26.5859,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,80.3,0,0,81.8,660,0,0,0,0,0,0,3.931826,7.185387,0,0,0,81.8,7.636537,0,,0 +10,4,50,1,1,427859,0,4283.285,25.64819,0,12,1,0,0,28.33591,0,0,28.33591,0,0,0,0,0,1,73.9,6.9,0,92,1000,1000,0,0,0,6.907755,0,3.931826,7.600903,0,0,0,92,8.362709,0,3.34413,1 +10,4,50,1,2,427859,0,4283.285,26.64819,0,12,1,11.83712,0,0,0,552.2017,564.0388,1,0,0,1,0,1,73.9,6.9,0,92,1000,1000,0,0,0,6.907755,0,3.931826,7.600903,0,0,0,92,8.362709,0,6.335123,1 +10,4,50,1,3,427859,0,4283.285,27.64819,0,12,1,0,4.226268,0,0,0,4.226268,0,0,0,0,0,1,73.9,6.9,0,92,1000,1000,0,0,0,6.907755,0,3.931826,7.600903,0,0,0,92,8.362709,0,1.441319,1 +15,4,95,1,1,427860,0,10733.72,26.48323,1,16,1,0,7.470376,0,0,0,7.470376,0,0,0,0,0,4,85.6,6.9,0,84.1,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,84.1,9.28124,1.386294,2.010945,1 +15,4,95,1,2,427860,0,10733.72,27.48323,1,16,1,9.469697,0,0,0,0,9.469697,0,0,0,1,0,4,85.6,6.9,0,84.1,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,84.1,9.28124,1.386294,2.248097,1 +15,4,95,1,3,427860,0,10733.72,28.48323,1,16,1,4.161248,0,0,0,0,4.161248,0,0,0,0,0,4,85.6,6.9,0,84.1,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,84.1,9.28124,1.386294,1.425815,1 +15,4,95,1,1,427861,0,10733.72,1.338809,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,83.39137,9.967326,0,96.3,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,96.3,9.28124,1.386294,,0 +15,4,95,1,2,427861,0,10733.72,2.338809,0,16,1,23.91098,0,0,0,0,23.91098,0,0,0,1,0,4,83.39137,9.967326,0,96.3,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,96.3,9.28124,1.386294,3.174338,1 +15,4,95,1,3,427861,0,10733.72,3.338809,0,16,1,14.52102,0,0,0,0,14.52102,0,0,0,0,0,4,83.39137,9.967326,0,96.3,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,96.3,9.28124,1.386294,2.675597,1 +15,4,95,1,1,427862,0,10733.72,28.75017,0,16,1,1.545595,4.276146,0,0,0,5.821742,0,0,0,1,0,4,85.6,10.3,0,70.5,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,70.5,9.28124,1.386294,1.761599,1 +15,4,95,1,2,427862,0,10733.72,29.75017,0,16,1,9.469697,0,0,0,0,9.469697,0,0,0,1,0,4,85.6,10.3,0,70.5,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,70.5,9.28124,1.386294,2.248097,1 +15,4,95,1,3,427862,0,10733.72,30.75017,0,16,1,13.0039,0,0,0,0,13.0039,0,0,0,1,0,4,85.6,10.3,0,70.5,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,70.5,9.28124,1.386294,2.565249,1 +15,4,95,1,1,427863,0,10733.72,5.437372,0,16,1,41.98867,7.50644,0,0,0,49.49511,0,0,0,6,0,4,95,9.967326,0,85.2,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,85.2,9.28124,1.386294,3.901874,1 +15,4,95,1,2,427863,0,10733.72,6.437372,0,16,1,4.734848,0,0,0,0,4.734848,0,0,0,1,0,4,95,9.967326,0,85.2,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,85.2,9.28124,1.386294,1.55495,1 +15,4,95,1,3,427863,0,10733.72,7.437372,0,16,1,17.27352,0,0,0,0,17.27352,0,0,0,0,0,4,95,9.967326,0,85.2,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,85.2,9.28124,1.386294,2.849174,1 +15,4,95,1,1,427868,0,6888.563,26.6037,0,16,1,21.76113,2.378542,0,0,0,24.13968,0,0,0,2,0,2,70.2,6.9,0,90.9,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,90.9,8.837763,.6931472,3.183857,1 +15,4,95,1,2,427868,0,6888.563,27.6037,0,16,1,0,0,0,0,0,0,0,0,0,0,0,2,70.2,6.9,0,90.9,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,90.9,8.837763,.6931472,,0 +15,4,95,1,3,427868,0,6888.563,28.6037,0,16,1,0,0,0,0,0,0,0,0,0,0,0,2,70.2,6.9,0,90.9,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,90.9,8.837763,.6931472,,0 +15,4,95,1,4,427868,0,6888.563,29.6037,0,16,1,11.91391,0,0,0,0,11.91391,0,0,0,1,1,2,70.2,6.9,0,90.9,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,90.9,8.837763,.6931472,2.477707,1 +15,4,95,1,5,427868,0,6888.563,30.6037,0,16,1,0,0,0,0,0,0,0,0,0,0,0,2,70.2,6.9,0,90.9,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,90.9,8.837763,.6931472,,0 +15,4,95,1,1,427869,0,6888.563,26.27515,1,16,1,38.96761,2.909919,0,0,0,41.87753,0,0,0,3,0,2,78.2,13.8,0,79.5,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,79.5,8.837763,.6931472,3.734749,1 +15,4,95,1,2,427869,0,6888.563,27.27515,1,16,1,34.96503,0,0,111.8881,0,34.96503,0,0,9,1,0,2,78.2,13.8,0,79.5,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,79.5,8.837763,.6931472,3.554348,1 +15,4,95,1,3,427869,0,6888.563,28.27515,1,16,1,25.22445,0,0,0,0,25.22445,0,0,0,2,0,2,78.2,13.8,0,79.5,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,79.5,8.837763,.6931472,3.227814,1 +15,4,95,1,4,427869,0,6888.563,29.27515,1,16,1,19.21599,7.647963,0,0,0,26.86395,0,0,0,2,0,2,78.2,13.8,0,79.5,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,79.5,8.837763,.6931472,3.290785,1 +15,4,95,1,5,427869,0,6888.563,30.27515,1,16,1,22.83105,0,0,94.83667,0,22.83105,0,0,6,2,0,2,78.2,13.8,0,79.5,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,79.5,8.837763,.6931472,3.128121,1 +11,4,0,1,1,427870,0,7400,4.517454,0,12,1,13.78958,14.70889,0,0,0,28.49847,0,0,0,2,0,4,83.39137,9.967326,0,70.4,0,251.52,1,0,1.386294,5.527523,0,0,0,0,0,0,70.4,8.90937,1.386294,3.34985,1 +11,4,0,1,2,427870,0,7400,5.517454,0,12,1,5.625879,7.032349,0,0,0,12.65823,0,0,0,1,0,4,83.39137,9.967326,0,70.4,0,251.52,1,0,1.386294,5.527523,0,0,0,0,0,0,70.4,8.90937,1.386294,2.538307,1 +11,4,0,1,3,427870,0,7400,6.517454,0,12,1,1.289768,2.579536,0,0,0,3.869303,0,0,0,1,0,4,83.39137,9.967326,0,70.4,0,251.52,1,0,1.386294,5.527523,0,0,0,0,0,0,70.4,8.90937,1.386294,1.353075,1 +11,4,0,1,1,427871,0,7400,26.54346,1,12,1,20.42901,16.08784,0,0,0,36.51685,0,0,0,2,0,4,75,6.9,0,71.6,0,251.52,0,0,1.386294,5.527523,0,0,0,1,0,0,71.6,8.90937,1.386294,3.597774,1 +11,4,0,1,2,427871,0,7400,27.54346,1,12,1,17.34646,21.72996,0,0,0,39.07642,0,0,0,2,0,4,75,6.9,0,71.6,0,251.52,0,0,1.386294,5.527523,0,0,0,1,0,0,71.6,8.90937,1.386294,3.665519,1 +11,4,0,1,3,427871,0,7400,28.54346,1,12,1,18.05675,8.490972,0,0,0,26.54772,0,0,0,2,0,4,75,6.9,0,71.6,0,251.52,0,0,1.386294,5.527523,0,0,0,1,0,0,71.6,8.90937,1.386294,3.278944,1 +11,4,0,1,1,427872,0,7400,2.124572,0,12,1,249.6425,38.90194,0,0,0,288.5444,0,0,0,22,0,4,83.39137,9.967326,0,51.9,0,251.52,1,0,1.386294,5.527523,0,0,0,0,1,0,51.9,8.90937,1.386294,5.664849,1 +11,4,0,1,2,427872,0,7400,3.124572,0,12,1,142.4051,64.58041,0,0,601.3784,808.3638,1,0,0,25,0,4,83.39137,9.967326,0,51.9,0,251.52,1,0,1.386294,5.527523,0,0,0,0,1,0,51.9,8.90937,1.386294,6.695012,1 +11,4,0,1,3,427872,0,7400,4.124572,0,12,1,215.7137,35.21066,.9028375,0,0,251.8272,0,0,0,30,0,4,83.39137,9.967326,0,51.9,0,251.52,1,0,1.386294,5.527523,0,0,0,0,1,0,51.9,8.90937,1.386294,5.528743,1 +11,4,0,1,1,427873,0,7400,29.1499,0,14,1,33.58018,2.298264,34.21859,0,0,70.09704,0,0,0,2,0,4,66.5,10.3,0,56.8,0,251.52,0,0,1.386294,5.527523,0,0,0,1,0,0,56.8,8.90937,1.386294,4.24988,1 +11,4,0,1,2,427873,0,7400,30.1499,0,14,1,0,0,0,0,0,0,0,0,0,0,0,4,66.5,10.3,0,56.8,0,251.52,0,0,1.386294,5.527523,0,0,0,1,0,0,56.8,8.90937,1.386294,,0 +11,4,0,1,3,427873,0,7400,31.1499,0,14,1,492.9149,2.622528,0,0,0,495.5374,0,0,0,4,3,4,66.5,10.3,0,56.8,0,251.52,0,0,1.386294,5.527523,0,0,0,1,0,0,56.8,8.90937,1.386294,6.205643,1 +16,4,95,0,1,427903,0,5041.642,36.62423,0,18,1,85.33197,0,0,0,0,85.33197,0,0,0,3,0,1,75,6.9,0,67,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,0,0,0,67,8.525685,0,4.446549,1 +16,4,95,0,2,427903,0,5041.642,37.62423,0,18,1,0,0,0,0,0,0,0,0,0,0,0,1,75,6.9,0,67,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,0,0,0,67,8.525685,0,,0 +16,4,95,0,3,427903,0,5041.642,38.62423,0,18,1,10.31814,3.761823,42.13242,0,0,56.21238,0,0,0,1,0,1,75,6.9,0,67,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,0,0,0,67,8.525685,0,4.029137,1 +16,4,95,0,1,427904,0,4147.214,31.51814,1,16,1,19.88764,7.37998,0,0,0,27.26762,0,0,0,1,0,1,77.1,17.2,0,60.2,990,965,0,0,0,6.872128,0,4.564348,6.948998,1,0,0,60.2,8.330433,0,3.3057,1 +16,4,95,0,2,427904,0,4147.214,32.51814,1,16,1,25.31646,0,0,0,0,25.31646,0,0,0,2,0,1,77.1,17.2,0,60.2,990,965,0,0,0,6.872128,0,4.564348,6.948998,1,0,0,60.2,8.330433,0,3.231455,1 +16,4,95,0,3,427904,0,4147.214,33.51814,1,16,1,41.46604,0,0,0,0,41.46604,0,0,0,3,0,1,77.1,17.2,0,60.2,990,965,0,0,0,6.872128,0,4.564348,6.948998,1,0,0,60.2,8.330433,0,3.724875,1 +10,4,50,1,1,427905,0,7624.633,17.62628,1,13,1,10.30397,5.409583,0,0,0,15.71355,0,0,0,2,0,3,80.9,3.4,0,100,1000,1000,1,1,1.098612,6.907755,0,3.931826,7.600903,0,0,0,100,8.939271,1.098612,2.754523,1 +10,4,50,1,2,427905,0,7624.633,18.62628,1,13,1,58.73579,0,0,0,0,58.73579,0,0,0,2,0,3,80.9,3.4,0,100,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,100,8.939271,1.098612,4.07305,1 +10,4,50,1,3,427905,0,7624.633,19.62628,1,13,1,16.03815,0,0,0,0,16.03815,0,0,0,1,0,3,80.9,3.4,0,100,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,100,8.939271,1.098612,2.77497,1 +10,4,50,1,1,427906,0,7624.633,57.2731,1,13,1,7.181865,0,0,0,0,7.181865,0,0,0,0,0,3,89.9,10.3,0,84.1,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,1,0,0,84.1,8.939271,1.098612,1.971559,1 +10,4,50,1,2,427906,0,7624.633,58.2731,1,13,1,0,0,0,0,0,0,0,0,0,0,0,3,89.9,10.3,0,84.1,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,1,0,0,84.1,8.939271,1.098612,,0 +10,4,50,1,3,427906,0,7624.633,59.2731,1,13,1,35.32727,0,34.24361,0,0,69.57087,0,0,0,2,0,3,89.9,10.3,0,84.1,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,1,0,0,84.1,8.939271,1.098612,4.242346,1 +10,4,50,1,1,427907,0,7624.633,60.77755,0,8,1,44.82226,36.0948,0,0,365.188,446.1051,1,0,0,6,0,3,91.5,17.2,0,73.9,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,1,0,0,73.9,8.939271,1.098612,6.100554,1 +10,4,50,1,2,427907,0,7624.633,61.77755,0,8,1,22.72727,62.36269,0,0,0,85.08997,0,0,0,4,0,3,91.5,17.2,0,73.9,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,1,0,0,73.9,8.939271,1.098612,4.443709,1 +10,4,50,1,3,427907,0,7624.633,62.77755,0,8,1,29.90897,74.46901,33.81014,0,0,138.1881,0,0,0,4,0,3,91.5,17.2,0,73.9,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,1,0,0,73.9,8.939271,1.098612,4.928616,1 +6,4,25,1,1,427938,0,1407.625,37.07324,0,14,1,0,0,0,0,0,0,0,0,0,0,0,1,65.4,10.3,0,56.8,187.2,0,0,0,0,0,0,3.258096,6.618472,1,0,0,56.8,7.250369,0,,0 +6,4,25,1,2,427938,0,1407.625,38.07324,0,14,1,7.102273,0,0,0,0,7.102273,0,0,0,1,0,1,65.4,10.3,0,56.8,187.2,0,0,0,0,0,0,3.258096,6.618472,1,0,0,56.8,7.250369,0,1.960415,1 +11,4,0,1,1,427966,0,12213.49,58.41752,1,12,1,110.1721,2.489879,0,0,0,112.6619,0,0,0,7,0,1,80.9,3.4,0,79.5,0,0,0,0,0,0,0,0,0,0,0,0,79.5,9.410378,0,4.724391,1 +11,4,0,1,2,427966,0,12213.49,59.41752,1,12,1,16.31702,1.771562,40.09324,0,0,58.18182,0,0,0,2,0,1,80.9,3.4,0,79.5,0,0,0,0,0,0,0,0,0,0,0,0,79.5,9.410378,0,4.063573,1 +11,4,0,1,3,427966,0,12213.49,60.41752,1,12,1,21.37666,8.332621,0,0,0,29.70928,0,0,0,2,0,1,80.9,3.4,0,79.5,0,0,0,0,0,0,0,0,0,0,0,0,79.5,9.410378,0,3.391459,1 +11,4,0,1,4,427966,0,12213.49,61.41752,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,80.9,3.4,0,79.5,0,0,0,0,0,0,0,0,0,0,0,0,79.5,9.410378,0,,0 +11,4,0,1,5,427966,0,12213.49,62.41752,1,12,1,8.781173,0,0,0,0,8.781173,0,0,0,1,0,1,80.9,3.4,0,79.5,0,0,0,0,0,0,0,0,0,0,0,0,79.5,9.410378,0,2.17261,1 +11,4,0,1,1,427986,0,2545.455,23.24983,1,16,1,31.45286,3.606389,26.79031,0,0,61.84956,0,0,0,2,0,1,67.2,13.8,0,51.1,0,166.08,0,0,0,5.11247,0,0,0,0,0,0,51.1,7.842457,0,4.124705,1 +11,4,0,1,2,427986,0,2545.455,24.24983,1,16,1,65.93276,3.716856,0,0,0,69.64962,0,0,0,6,0,1,67.2,13.8,0,51.1,0,166.08,0,0,0,5.11247,0,0,0,0,0,0,51.1,7.842457,0,4.243477,1 +11,4,0,1,3,427986,0,2545.455,25.24983,1,16,1,81.49111,4.993498,30.25574,0,0,116.7404,0,0,0,3,3,1,67.2,13.8,0,51.1,0,166.08,0,0,0,5.11247,0,0,0,0,0,0,51.1,7.842457,0,4.759952,1 +10,4,50,0,1,428026,0,8135.484,26.03422,1,14,1,17.51674,0,0,0,0,17.51674,0,0,0,1,0,3,72.9,0,0,79.5,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,79.5,9.004113,1.098612,2.863157,1 +10,4,50,0,2,428026,0,8135.484,27.03422,1,14,1,40.89489,10.32197,0,0,0,51.21686,0,0,0,3,0,3,72.9,0,0,79.5,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,79.5,9.004113,1.098612,3.936069,1 +10,4,50,0,3,428026,0,8135.484,28.03422,1,14,1,30.34244,7.910707,0,0,0,38.25314,0,0,0,4,0,3,72.9,0,0,79.5,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,79.5,9.004113,1.098612,3.644226,1 +10,4,50,0,4,428026,0,8135.484,29.03422,1,14,1,63.41079,11.38243,0,0,0,74.79323,0,0,0,8,0,3,72.9,0,0,79.5,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,79.5,9.004113,1.098612,4.314727,1 +10,4,50,0,5,428026,0,8135.484,30.03422,1,14,1,79.24866,16.0644,13.95349,35.77818,0,109.2665,0,0,3,6,0,3,72.9,0,0,79.5,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,79.5,9.004113,1.098612,4.69379,1 +10,4,50,0,1,428027,0,8135.484,26.2423,0,15,1,0,0,0,0,0,0,0,0,0,0,0,3,70.7,3.4,0,96.6,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,96.6,9.004113,1.098612,,0 +10,4,50,0,2,428027,0,8135.484,27.2423,0,15,1,0,0,0,0,0,0,0,0,0,0,0,3,70.7,3.4,0,96.6,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,96.6,9.004113,1.098612,,0 +10,4,50,0,3,428027,0,8135.484,28.2423,0,15,1,0,0,0,0,0,0,0,0,0,0,0,3,70.7,3.4,0,96.6,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,96.6,9.004113,1.098612,,0 +10,4,50,0,4,428027,0,8135.484,29.2423,0,15,1,14.57267,0,0,0,0,14.57267,0,0,0,1,0,3,70.7,3.4,0,96.6,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,96.6,9.004113,1.098612,2.679147,1 +10,4,50,0,5,428027,0,8135.484,30.2423,0,15,1,0,0,0,0,0,0,0,0,0,0,0,3,70.7,3.4,0,96.6,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,96.6,9.004113,1.098612,,0 +10,4,50,0,1,428028,0,8135.484,2.822724,0,14,1,23.18393,0,0,0,0,23.18393,0,0,0,2,0,3,83.39137,9.967326,0,92.6,1000,1000,1,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,92.6,9.004113,1.098612,3.143459,1 +10,4,50,0,2,428028,0,8135.484,3.822724,0,14,1,10.41667,2.130682,0,0,0,12.54735,0,0,0,2,0,3,83.39137,9.967326,0,92.6,1000,1000,1,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,92.6,9.004113,1.098612,2.529509,1 +10,4,50,0,3,428028,0,8135.484,4.822724,0,14,1,6.501951,4.031209,0,0,0,10.53316,0,0,0,1,0,3,83.39137,9.967326,0,92.6,1000,1000,1,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,92.6,9.004113,1.098612,2.354528,1 +10,4,50,0,4,428028,0,8135.484,5.822724,0,14,1,16.54195,14.86806,0,0,0,31.41,0,0,0,3,0,3,83.39137,9.967326,0,92.6,1000,1000,1,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,92.6,9.004113,1.098612,3.447126,1 +10,4,50,0,5,428028,0,8135.484,6.822724,0,14,1,6.08229,11.21646,0,0,0,17.29875,0,0,0,1,0,3,83.39137,9.967326,0,92.6,1000,1000,1,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,92.6,9.004113,1.098612,2.850634,1 +13,4,0,1,1,428033,0,3439.296,25.10883,1,12,1,15.32176,0,2.553626,0,0,17.87538,0,0,0,1,0,2,70.7,17.2,0,69.3,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,69.3,8.143312,.6931472,2.883425,1 +13,4,0,1,2,428033,0,3439.296,26.10883,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,70.7,17.2,0,69.3,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,69.3,8.143312,.6931472,,0 +13,4,0,1,3,428033,0,3439.296,27.10883,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,70.7,17.2,0,69.3,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,69.3,8.143312,.6931472,,0 +13,4,0,1,1,428034,0,3439.296,5.253936,1,12,1,228.5495,0,0,0,0,228.5495,0,0,0,7,0,2,96.7,9.967326,0,92.6,300,300,1,1,.6931472,5.703783,1,4.564348,5.755076,0,0,0,92.6,8.143312,.6931472,5.431753,1 +13,4,0,1,2,428034,0,3439.296,6.253936,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,96.7,9.967326,0,92.6,300,300,1,1,.6931472,5.703783,1,4.564348,5.755076,0,0,0,92.6,8.143312,.6931472,,0 +13,4,0,1,3,428034,0,3439.296,7.253936,1,12,1,33.10404,1.289768,0,0,0,34.39381,0,0,0,3,0,2,96.7,9.967326,0,92.6,300,300,1,1,.6931472,5.703783,1,4.564348,5.755076,0,0,0,92.6,8.143312,.6931472,3.537877,1 +13,4,0,1,1,428063,0,3515.542,35.39767,0,12,1,43.92237,0,0,0,0,43.92237,0,0,0,5,0,1,66.5,27.6,0,51.1,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,51.1,8.165234,0,3.782424,1 +13,4,0,1,2,428063,0,3515.542,36.39767,0,12,1,11.72058,0,30.00469,0,0,41.72527,0,0,0,0,1,1,66.5,27.6,0,51.1,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,51.1,8.165234,0,3.731107,1 +13,4,0,1,3,428063,0,3515.542,37.39767,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,66.5,27.6,0,51.1,150,150,0,0,.6931472,5.010635,1,4.564348,5.061929,1,0,0,51.1,8.165234,.6931472,,0 +13,4,0,1,4,428063,0,3515.542,38.39767,0,12,1,13.9589,0,0,0,0,13.9589,0,0,0,1,0,2,66.5,27.6,0,51.1,150,150,0,0,.6931472,5.010635,1,4.564348,5.061929,1,0,0,51.1,8.165234,.6931472,2.636117,1 +13,4,0,1,5,428063,0,3515.542,39.39767,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,66.5,27.6,0,51.1,150,150,0,0,.6931472,5.010635,1,4.564348,5.061929,1,0,0,51.1,8.165234,.6931472,,0 +11,4,0,1,1,428075,0,6167.155,54.22861,1,14,1,291.5404,0,0,0,1091.35,1382.89,1,0,0,7,0,1,79.3,6.9,1,77.3,0,0,0,0,0,0,0,0,0,1,0,0,77.3,8.727155,0,7.231931,1 +11,4,0,1,2,428075,0,6167.155,55.22861,1,14,1,37.64204,0,0,0,0,37.64204,0,0,0,1,0,1,79.3,6.9,1,77.3,0,0,0,0,0,0,0,0,0,1,0,0,77.3,8.727155,0,3.628122,1 +11,4,0,1,3,428075,0,6167.155,56.22861,1,14,1,40.31209,11.61682,0,0,1292.046,1343.975,1,0,0,4,0,1,79.3,6.9,1,77.3,0,0,0,0,0,0,0,0,0,1,0,0,77.3,8.727155,0,7.203387,1 +15,4,95,1,1,428080,0,9492.082,55.2909,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,71.3,13.8,0,85.2,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,85.2,9.158319,.6931472,,0 +15,4,95,1,2,428080,0,9492.082,56.2909,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,71.3,13.8,0,85.2,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,85.2,9.158319,.6931472,,0 +15,4,95,1,3,428080,0,9492.082,57.2909,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,71.3,13.8,0,85.2,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,85.2,9.158319,.6931472,,0 +15,4,95,1,1,428081,0,9492.082,53.58522,1,12,1,6.18238,0,0,0,0,6.18238,0,0,0,1,0,2,65.4,10.3,0,78.4,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,78.4,9.158319,.6931472,1.821703,1 +15,4,95,1,2,428081,0,9492.082,54.58522,1,12,1,56.22633,0,23.67424,0,0,79.90057,0,0,0,5,1,2,65.4,10.3,0,78.4,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,78.4,9.158319,.6931472,4.380783,1 +15,4,95,1,3,428081,0,9492.082,55.58522,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,65.4,10.3,0,78.4,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,78.4,9.158319,.6931472,,0 +13,4,0,1,1,428088,0,7954.839,2.926763,0,12,1,23.27935,0,0,0,0,23.27935,0,0,0,3,0,4,83.39137,9.967326,0,81.5,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,81.5,8.981662,1.386294,3.147567,1 +13,4,0,1,2,428088,0,7954.839,3.926763,0,12,1,17.24942,0,0,0,0,17.24942,0,0,0,2,0,4,83.39137,9.967326,0,81.5,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,81.5,8.981662,1.386294,2.847778,1 +13,4,0,1,3,428088,0,7954.839,4.926763,0,12,1,12.39846,0,0,0,0,12.39846,0,0,0,1,0,5,83.39137,9.967326,0,81.5,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,81.5,8.981662,1.609438,2.517572,1 +13,4,0,1,1,428089,0,7954.839,25.93019,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,61.2,10.3,0,61.4,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,61.4,8.981662,1.386294,,0 +13,4,0,1,2,428089,0,7954.839,26.93019,0,16,1,163.1702,0,23.31002,0,0,186.4802,0,0,0,4,1,4,61.2,10.3,0,61.4,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,61.4,8.981662,1.386294,5.228325,1 +13,4,0,1,3,428089,0,7954.839,27.93019,0,16,1,0,0,0,0,0,0,0,0,0,0,0,5,61.2,10.3,0,61.4,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,61.4,8.981662,1.609438,,0 +13,4,0,1,1,428090,0,7954.839,.7802874,0,12,1,22.26721,0,0,0,0,22.26721,0,0,0,2,0,4,83.39137,9.967326,0,70.4,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,70.4,8.981662,1.386294,3.103115,1 +13,4,0,1,2,428090,0,7954.839,1.780288,0,12,1,13.51981,2.307692,0,0,0,15.82751,0,0,0,1,0,4,83.39137,9.967326,0,70.4,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,70.4,8.981662,1.386294,2.761749,1 +13,4,0,1,3,428090,0,7954.839,2.780288,0,12,1,7.695596,0,0,0,0,7.695596,0,0,0,1,0,5,83.39137,9.967326,0,70.4,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,70.4,8.981662,1.609438,2.040648,1 +13,4,0,1,1,428091,0,7954.839,23.6167,1,12,1,44.75708,0,0,0,0,44.75708,0,0,0,1,0,4,77.7,3.4,0,69.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,69.3,8.981662,1.386294,3.80125,1 +13,4,0,1,2,428091,0,7954.839,24.6167,1,12,1,77.80886,17.59907,28.33566,0,676.5455,800.2891,1,0,0,5,1,4,77.7,3.4,0,69.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,69.3,8.981662,1.386294,6.684973,1 +13,4,0,1,3,428091,0,7954.839,25.6167,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,77.7,3.4,0,69.3,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,69.3,8.981662,1.609438,,0 +11,4,0,1,1,428095,0,879.7654,22.88296,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,79.3,6.9,0,76.1,0,0,0,0,0,0,0,0,0,1,0,0,76.1,6.780791,0,,0 +11,4,0,1,2,428095,0,879.7654,23.88296,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,79.3,6.9,0,76.1,0,0,0,0,0,0,0,0,0,1,0,0,76.1,6.780791,0,,0 +11,4,0,1,3,428095,0,879.7654,24.88296,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,79.3,6.9,0,76.1,0,0,0,0,0,0,0,0,0,1,0,0,76.1,6.780791,0,,0 +11,4,0,0,1,428096,0,3841.056,30.42026,1,15,1,6.128703,20.68437,0,0,0,26.81307,0,0,0,1,0,1,67.6,10.3,0,71.6,0,126,0,0,0,4.836282,0,0,0,1,0,0,71.6,8.253763,0,3.28889,1 +11,4,0,0,2,428096,0,3841.056,31.42026,1,15,1,9.376465,22.03469,0,84.38818,0,31.41116,0,0,6,1,0,1,67.6,10.3,0,71.6,0,126,0,0,0,4.836282,0,0,0,1,0,0,71.6,8.253763,0,3.447163,1 +11,4,0,0,3,428096,0,3841.056,32.42026,1,15,1,22.35598,25.77386,30.95443,0,0,79.08427,0,0,0,2,1,1,67.6,10.3,0,71.6,0,126,0,0,0,4.836282,0,0,0,1,0,0,71.6,8.253763,0,4.370514,1 +15,4,95,1,1,428113,0,9858.064,33.46749,1,12,1,6.18238,4.528594,0,0,0,10.71097,0,0,0,1,0,4,66.5,6.9,0,80.7,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,80.7,9.196147,1.386294,2.371269,1 +15,4,95,1,2,428113,0,9858.064,34.46749,1,12,1,9.469697,0,0,0,0,9.469697,0,0,0,1,0,4,66.5,6.9,0,80.7,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,80.7,9.196147,1.386294,2.248097,1 +15,4,95,1,3,428113,0,9858.064,35.46749,1,12,1,63.52406,1.517122,0,0,0,65.04118,0,0,0,3,0,4,66.5,6.9,0,80.7,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,80.7,9.196147,1.386294,4.175021,1 +15,4,95,1,1,428114,0,9858.064,31.81383,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,80.9,17.2,0,65.9,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,65.9,9.196147,1.386294,,0 +15,4,95,1,2,428114,0,9858.064,32.81383,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,80.9,17.2,0,65.9,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,65.9,9.196147,1.386294,,0 +15,4,95,1,3,428114,0,9858.064,33.81383,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,80.9,17.2,0,65.9,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,65.9,9.196147,1.386294,,0 +15,4,95,1,1,428115,0,9858.064,7.195072,1,12,1,5.151984,0,0,0,0,5.151984,0,0,0,1,0,4,86.7,9.967326,0,85.2,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,0,0,0,85.2,9.196147,1.386294,1.639382,1 +15,4,95,1,2,428115,0,9858.064,8.195072,1,12,1,5.681818,0,0,0,0,5.681818,0,0,0,1,0,4,86.7,9.967326,0,85.2,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,0,0,0,85.2,9.196147,1.386294,1.737271,1 +15,4,95,1,3,428115,0,9858.064,9.195072,1,12,1,5.20156,0,0,0,0,5.20156,0,0,0,1,0,4,86.7,9.967326,0,85.2,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,0,0,0,85.2,9.196147,1.386294,1.648959,1 +15,4,95,1,1,428116,0,9858.064,11.2909,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,75,9.967326,0,88.9,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,0,0,0,88.9,9.196147,1.386294,,0 +15,4,95,1,2,428116,0,9858.064,12.2909,1,12,1,119.6733,0,22.72727,0,0,142.4006,0,0,0,24,1,4,75,9.967326,0,88.9,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,0,0,0,88.9,9.196147,1.386294,4.958644,1 +15,4,95,1,3,428116,0,9858.064,13.2909,1,12,1,94.71175,0,24.70741,0,0,119.4192,0,0,0,33,1,4,75,9.967326,0,88.9,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,0,0,0,88.9,9.196147,1.386294,4.78264,1 +11,4,0,1,1,428117,0,8719.648,10.92129,1,11,1,0,6.661515,0,0,0,6.661515,0,0,0,0,0,6,96.7,9.967326,0,92.6,0,0,1,1,1.791759,0,0,0,0,0,0,0,92.6,9.073449,1.791759,1.896347,1 +11,4,0,1,2,428117,0,8719.648,11.92129,1,11,1,7.102273,2.930871,24.62121,0,0,34.65436,0,0,0,0,1,6,96.7,9.967326,0,92.6,0,0,1,1,1.791759,0,0,0,0,0,0,0,92.6,9.073449,1.791759,3.545424,1 +11,4,0,1,3,428117,0,8719.648,12.92129,1,11,1,12.57044,5.674036,10.40312,0,0,28.64759,0,0,0,1,1,6,96.7,9.967326,0,92.6,0,0,1,1,1.791759,0,0,0,0,0,0,0,92.6,9.073449,1.791759,3.355069,1 +11,4,0,1,4,428117,0,8719.648,13.92129,1,11,1,7.877117,2.304057,21.26822,0,0,31.44939,0,0,0,1,1,6,96.7,9.967326,0,92.6,0,0,1,1,1.791759,0,0,0,0,0,0,0,92.6,9.073449,1.791759,3.44838,1 +11,4,0,1,5,428117,0,8719.648,14.92129,1,11,1,14.31127,0,10.73345,0,0,25.04472,0,0,0,1,1,7,96.7,9.967326,0,92.6,0,0,1,1,1.94591,0,0,0,0,0,0,0,92.6,9.073449,1.94591,3.220663,1 +11,4,0,1,1,428118,0,8719.648,6.105407,1,11,1,189.9021,7.588871,6.18238,0,0,203.6734,0,0,0,9,0,6,98.3,9.967326,0,85.2,0,0,1,1,1.791759,0,0,0,0,0,0,0,85.2,9.073449,1.791759,5.316517,1 +11,4,0,1,2,428118,0,8719.648,7.105407,1,11,1,11.36364,8.016098,0,0,0,19.37973,0,0,0,1,0,6,98.3,9.967326,0,85.2,0,0,1,1,1.791759,0,0,0,0,0,0,0,85.2,9.073449,1.791759,2.964228,1 +11,4,0,1,3,428118,0,8719.648,8.105408,1,11,1,0,1.083658,0,0,0,1.083658,0,0,0,0,0,6,98.3,9.967326,0,85.2,0,0,1,1,1.791759,0,0,0,0,0,0,0,85.2,9.073449,1.791759,.0803428,1 +11,4,0,1,4,428118,0,8719.648,9.105408,1,11,1,5.513982,0,0,0,0,5.513982,0,0,0,1,0,6,98.3,9.967326,0,85.2,0,0,1,1,1.791759,0,0,0,0,0,0,0,85.2,9.073449,1.791759,1.707287,1 +11,4,0,1,5,428118,0,8719.648,10.10541,1,11,1,0,0,0,0,0,0,0,0,0,0,0,7,98.3,9.967326,0,85.2,0,0,1,1,1.94591,0,0,0,0,0,0,0,85.2,9.073449,1.94591,,0 +11,4,0,1,1,428119,0,8719.648,9.637235,1,11,1,11.33436,6.816074,0,0,0,18.15044,0,0,0,2,0,6,91.7,9.967326,0,88.9,0,0,1,1,1.791759,0,0,0,0,0,0,0,88.9,9.073449,1.791759,2.898695,1 +11,4,0,1,2,428119,0,8719.648,10.63723,1,11,1,0,3.285985,0,0,0,3.285985,0,0,0,0,0,6,91.7,9.967326,0,88.9,0,0,1,1,1.791759,0,0,0,0,0,0,0,88.9,9.073449,1.791759,1.189666,1 +11,4,0,1,3,428119,0,8719.648,11.63723,1,11,1,0,3.571738,0,0,0,3.571738,0,0,0,0,0,6,91.7,9.967326,0,88.9,0,0,1,1,1.791759,0,0,0,0,0,0,0,88.9,9.073449,1.791759,1.273052,1 +11,4,0,1,4,428119,0,8719.648,12.63723,1,11,1,5.907838,4.686884,0,0,0,10.59472,0,0,0,1,0,6,91.7,9.967326,0,88.9,0,0,1,1,1.791759,0,0,0,0,0,0,0,88.9,9.073449,1.791759,2.360356,1 +11,4,0,1,5,428119,0,8719.648,13.63723,1,11,1,110.5367,3.001789,0,0,0,113.5385,0,0,0,5,1,7,91.7,9.967326,0,88.9,0,0,1,1,1.94591,0,0,0,0,0,0,0,88.9,9.073449,1.94591,4.732141,1 +11,4,0,1,1,428120,0,8719.648,34.17933,0,13,1,168.2638,51.61772,0,0,0,219.8815,0,0,0,12,0,6,94,3.4,0,97.7,0,0,0,0,1.791759,0,0,0,0,0,0,0,97.7,9.073449,1.791759,5.393089,1 +11,4,0,1,2,428120,0,8719.648,35.17933,0,13,1,26.98864,2.651515,0,0,0,29.64015,0,0,0,3,0,6,94,3.4,0,97.7,0,0,0,0,1.791759,0,0,0,0,0,0,0,97.7,9.073449,1.791759,3.38913,1 +11,4,0,1,3,428120,0,8719.648,36.17933,0,13,1,255.2449,45.81274,0,0,2346.584,2647.642,3,0,0,13,0,6,94,3.4,0,97.7,0,0,0,0,1.791759,0,0,0,0,0,0,0,97.7,9.073449,1.791759,7.881424,1 +11,4,0,1,4,428120,0,8719.648,37.17933,0,13,1,40.56715,29.78338,0,0,0,70.35053,0,0,0,5,0,6,94,3.4,0,97.7,0,0,0,0,1.791759,0,0,0,0,0,0,0,97.7,9.073449,1.791759,4.25349,1 +11,4,0,1,5,428120,0,8719.648,38.17933,0,13,1,43.47048,38.0322,0,0,0,81.50269,0,0,0,5,0,7,94,3.4,0,97.7,0,0,0,0,1.94591,0,0,0,0,0,0,0,97.7,9.073449,1.94591,4.400636,1 +11,4,0,1,1,428121,0,8719.648,31.76728,1,11,1,12.87996,0,0,0,0,12.87996,0,0,0,1,0,6,86.2,13.8,0,76.1,0,0,0,0,1.791759,0,0,0,0,0,0,0,76.1,9.073449,1.791759,2.555673,1 +11,4,0,1,2,428121,0,8719.648,32.76728,1,11,1,22.25379,4.829545,0,0,0,27.08333,0,0,0,2,0,6,86.2,13.8,0,76.1,0,0,0,0,1.791759,0,0,0,0,0,0,0,76.1,9.073449,1.791759,3.298918,1 +11,4,0,1,3,428121,0,8719.648,33.76728,1,11,1,100.2818,15.7694,23.40702,0,233.3983,372.8565,1,0,0,11,1,6,86.2,13.8,0,76.1,0,0,0,0,1.791759,0,0,0,0,0,0,0,76.1,9.073449,1.791759,5.921194,1 +11,4,0,1,4,428121,0,8719.648,34.76728,1,11,1,70.16542,6.498621,23.43442,0,664.2654,764.364,1,0,0,5,0,6,86.2,13.8,0,76.1,0,0,0,0,1.791759,0,0,0,0,0,0,0,76.1,9.073449,1.791759,6.639044,1 +11,4,0,1,5,428121,0,8719.648,35.76728,1,11,1,38.28265,1.860465,0,0,348.8193,388.9624,1,0,0,3,1,7,86.2,13.8,0,76.1,0,0,0,0,1.94591,0,0,0,0,0,0,0,76.1,9.073449,1.94591,5.963483,1 +11,4,0,1,1,428122,0,8719.648,7.438741,1,11,1,0,4.111283,0,0,0,4.111283,0,0,0,0,0,6,85,9.967326,0,59.3,0,0,1,1,1.791759,0,0,0,0,0,0,0,59.3,9.073449,1.791759,1.413735,1 +11,4,0,1,2,428122,0,8719.648,8.438741,1,11,1,0,3.285985,0,0,0,3.285985,0,0,0,0,0,6,85,9.967326,0,59.3,0,0,1,1,1.791759,0,0,0,0,0,0,0,59.3,9.073449,1.791759,1.189666,1 +11,4,0,1,3,428122,0,8719.648,9.438741,1,11,1,5.20156,1.083658,0,0,0,6.285219,0,0,0,1,0,6,85,9.967326,0,59.3,0,0,1,1,1.791759,0,0,0,0,0,0,0,59.3,9.073449,1.791759,1.838201,1 +11,4,0,1,4,428122,0,8719.648,10.43874,1,11,1,3.938559,5.884206,0,0,0,9.822764,0,0,0,1,0,6,85,9.967326,0,59.3,0,0,1,1,1.791759,0,0,0,0,0,0,0,59.3,9.073449,1.791759,2.284703,1 +11,4,0,1,5,428122,0,8719.648,11.43874,1,11,1,0,2.325581,0,0,0,2.325581,0,0,0,0,0,7,85,9.967326,0,59.3,0,0,1,1,1.94591,0,0,0,0,0,0,0,59.3,9.073449,1.94591,.8439701,1 +11,4,0,1,1,428127,0,8849.267,25.1718,0,13,1,24.61696,0,0,0,0,24.61696,0,0,0,2,0,2,47.9,17.2,0,39.8,0,0,0,0,.6931472,0,0,0,0,1,0,0,39.8,9.088202,.6931472,3.203435,1 +11,4,0,1,2,428127,0,8849.267,26.1718,0,13,1,34.13033,0,43.63807,0,0,77.7684,0,0,0,2,0,2,47.9,17.2,0,39.8,0,0,0,0,.6931472,0,0,0,0,1,0,0,39.8,9.088202,.6931472,4.353735,1 +11,4,0,1,3,428127,0,8849.267,27.1718,0,13,1,81.36285,7.7816,0,0,0,89.14445,0,0,0,6,1,2,47.9,17.2,0,39.8,0,0,0,0,.6931472,0,0,0,0,1,0,0,39.8,9.088202,.6931472,4.490258,1 +11,4,0,1,1,428128,0,8849.267,22.93498,1,13,1,18.1716,2.349336,0,0,0,20.52094,0,0,0,1,0,2,40.4,10.3,0,76.1,0,0,0,0,.6931472,0,0,0,0,0,0,0,76.1,9.088202,.6931472,3.021446,1 +11,4,0,1,2,428128,0,8849.267,23.93498,1,13,1,9.376465,0,0,0,0,9.376465,0,0,0,1,0,2,40.4,10.3,0,76.1,0,0,0,0,.6931472,0,0,0,0,0,0,0,76.1,9.088202,.6931472,2.238203,1 +11,4,0,1,3,428128,0,8849.267,24.93498,1,13,1,0,0,0,0,0,0,0,0,0,0,0,2,40.4,10.3,0,76.1,0,0,0,0,.6931472,0,0,0,0,0,0,0,76.1,9.088202,.6931472,,0 +15,4,95,0,1,428144,0,1867.449,22.81725,1,14,1,49.97424,5.074704,0,0,0,55.04894,0,0,0,6,0,1,84.6,0,0,84.1,92,0,0,0,0,0,0,4.564348,4.573082,0,0,0,84.1,7.532864,0,4.008223,1 +15,4,95,0,2,428144,0,1867.449,23.81725,1,14,1,62.5,8.89678,23.20076,0,0,94.59753,0,0,0,3,1,1,84.6,0,0,84.1,92,0,0,0,0,0,0,4.564348,4.573082,0,0,0,84.1,7.532864,0,4.549632,1 +15,4,95,0,3,428144,0,1867.449,24.81725,1,14,1,0,0,0,0,0,0,0,0,0,0,0,1,84.6,0,0,84.1,92,0,0,0,0,0,0,4.564348,4.573082,0,0,0,84.1,7.532864,0,,0 +15,4,95,0,1,428145,0,2485.161,20.83778,1,13,1,26.04699,0,0,0,0,26.04699,0,0,0,1,0,1,51.6,10.3,0,53.4,202.5,0,0,0,0,0,0,4.564348,5.362033,1,0,0,53.4,7.818495,0,3.259902,1 +15,4,95,0,2,428145,0,2485.161,21.83778,1,13,1,45.24144,9.282701,0,0,0,54.52414,0,0,0,1,0,1,51.6,10.3,0,53.4,202.5,0,0,0,0,0,0,4.564348,5.362033,1,0,0,53.4,7.818495,0,3.998644,1 +15,4,95,0,3,428145,0,2485.161,22.83778,1,13,1,15.04729,5.33104,0,0,1140.026,1160.404,1,0,0,2,0,1,51.6,10.3,0,53.4,202.5,0,0,0,0,0,0,4.564348,5.362033,1,0,0,53.4,7.818495,0,7.056524,1 +11,4,0,1,1,428191,0,14173.61,41.03765,0,16,1,15.32176,0,7.660879,84.26966,0,22.98264,0,0,5,1,0,5,78.2,3.4,0,54.5,0,215.4,0,0,1.609438,5.372497,0,0,0,0,0,0,54.5,9.559207,1.609438,3.134739,1 +11,4,0,1,2,428191,0,14173.61,42.03765,0,16,1,0,0,0,0,0,0,0,0,0,0,0,5,78.2,3.4,0,54.5,0,215.4,0,0,1.609438,5.372497,0,0,0,0,0,0,54.5,9.559207,1.609438,,0 +11,4,0,1,3,428191,0,14173.61,43.03765,0,16,1,159.8237,0,0,0,0,159.8237,0,0,0,5,0,5,78.2,3.4,0,54.5,0,215.4,0,0,1.609438,5.372497,0,0,0,0,0,0,54.5,9.559207,1.609438,5.074071,1 +11,4,0,1,1,428192,0,14173.61,9.393566,1,16,1,24.51481,0,0,342.1859,3014.229,3038.744,1,0,14,9,0,5,88.3,9.967326,0,92.6,0,215.4,1,1,1.609438,5.372497,0,0,0,0,0,0,92.6,9.559207,1.609438,8.019199,1 +11,4,0,1,2,428192,0,14173.61,10.39357,1,16,1,11.72058,1.781528,0,23.44116,0,13.50211,0,0,1,1,0,5,88.3,9.967326,0,92.6,0,215.4,1,1,1.609438,5.372497,0,0,0,0,0,0,92.6,9.559207,1.609438,2.602846,1 +11,4,0,1,3,428192,0,14173.61,11.39357,1,16,1,9.458298,0,0,0,0,9.458298,0,0,0,2,0,5,88.3,9.967326,0,92.6,0,215.4,1,1,1.609438,5.372497,0,0,0,0,0,0,92.6,9.559207,1.609438,2.246892,1 +11,4,0,1,1,428193,0,14173.61,11.33744,0,16,1,20.42901,18.03371,18.89683,0,0,57.35955,0,0,0,2,0,5,85,9.967326,1,88.9,0,215.4,1,0,1.609438,5.372497,0,0,0,0,0,0,88.9,9.559207,1.609438,4.049339,1 +11,4,0,1,2,428193,0,14173.61,12.33744,0,16,1,0,14.90858,0,0,0,14.90858,0,0,0,0,0,5,85,9.967326,1,88.9,0,215.4,1,0,1.609438,5.372497,0,0,0,0,0,0,88.9,9.559207,1.609438,2.701937,1 +11,4,0,1,3,428193,0,14173.61,13.33744,0,16,1,26.6552,17.36457,42.99226,0,0,87.01204,0,0,0,3,0,5,85,9.967326,1,88.9,0,215.4,1,0,1.609438,5.372497,0,0,0,0,0,0,88.9,9.559207,1.609438,4.466046,1 +11,4,0,1,1,428194,0,14173.61,38.0178,1,16,1,35.47498,0,0,263.0235,0,35.47498,0,0,12,1,0,5,79.8,13.8,0,67,0,215.4,0,0,1.609438,5.372497,0,0,0,0,0,0,67,9.559207,1.609438,3.568828,1 +11,4,0,1,2,428194,0,14173.61,39.0178,1,16,1,11.72058,0,0,23.44116,0,11.72058,0,0,1,1,0,5,79.8,13.8,0,67,0,215.4,0,0,1.609438,5.372497,0,0,0,0,0,0,67,9.559207,1.609438,2.461346,1 +11,4,0,1,3,428194,0,14173.61,40.0178,1,16,1,31.16939,3.198624,0,0,0,34.36802,0,0,0,2,0,5,79.8,13.8,0,67,0,215.4,0,0,1.609438,5.372497,0,0,0,0,0,0,67,9.559207,1.609438,3.537126,1 +11,4,0,1,1,428195,0,14173.61,3.742642,1,16,1,13.524,4.417773,0,0,0,17.94178,0,0,0,1,0,5,83.39137,9.967326,0,85.2,0,215.4,1,1,1.609438,5.372497,0,0,0,0,0,0,85.2,9.559207,1.609438,2.887132,1 +11,4,0,1,2,428195,0,14173.61,4.742642,1,16,1,7.735584,13.6662,0,0,0,21.40178,0,0,0,0,0,5,83.39137,9.967326,0,85.2,0,215.4,1,1,1.609438,5.372497,0,0,0,0,0,0,85.2,9.559207,1.609438,3.063474,1 +11,4,0,1,3,428195,0,14173.61,5.742642,1,16,1,37.40327,4.230439,0,0,0,41.63371,0,0,0,3,0,5,83.39137,9.967326,0,85.2,0,215.4,1,1,1.609438,5.372497,0,0,0,0,0,0,85.2,9.559207,1.609438,3.72891,1 +13,4,0,0,1,428204,0,7910.823,7.939767,0,12,1,37.28805,2.221655,0,0,0,39.5097,0,0,0,2,0,4,90,9.967326,0,85.2,450,492.84,1,0,1.386294,6.200184,1,4.564348,6.160541,0,0,0,85.2,8.976113,1.386294,3.676546,1 +13,4,0,0,2,428204,0,7910.823,8.939767,0,12,1,9.376465,0,0,0,0,9.376465,0,0,0,1,0,4,90,9.967326,0,85.2,450,492.84,1,0,1.386294,6.200184,1,4.564348,6.160541,0,0,0,85.2,8.976113,1.386294,2.238203,1 +13,4,0,0,3,428204,0,7910.823,9.939767,0,12,1,191.724,0,.9028375,0,0,192.6268,0,0,0,6,0,4,90,9.967326,0,85.2,450,492.84,1,0,1.386294,6.200184,1,4.564348,6.160541,0,0,0,85.2,8.976113,1.386294,5.260755,1 +13,4,0,0,1,428205,0,7910.823,30.41752,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,86.7,3.4,0,84.1,450,492.84,0,0,1.386294,6.200184,1,4.564348,6.160541,0,0,0,84.1,8.976113,1.386294,,0 +13,4,0,0,2,428205,0,7910.823,31.41752,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,86.7,3.4,0,84.1,450,492.84,0,0,1.386294,6.200184,1,4.564348,6.160541,0,0,0,84.1,8.976113,1.386294,,0 +13,4,0,0,3,428205,0,7910.823,32.41752,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,86.7,3.4,0,84.1,450,492.84,0,0,1.386294,6.200184,1,4.564348,6.160541,0,0,0,84.1,8.976113,1.386294,,0 +13,4,0,0,1,428206,0,7910.823,30.9514,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,76.1,0,0,85.2,450,492.84,0,0,1.386294,6.200184,1,4.564348,6.160541,0,0,0,85.2,8.976113,1.386294,,0 +13,4,0,0,2,428206,0,7910.823,31.9514,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,76.1,0,0,85.2,450,492.84,0,0,1.386294,6.200184,1,4.564348,6.160541,0,0,0,85.2,8.976113,1.386294,,0 +13,4,0,0,3,428206,0,7910.823,32.9514,0,12,1,59.11436,0,0,0,0,59.11436,0,0,0,2,0,4,76.1,0,0,85.2,450,492.84,0,0,1.386294,6.200184,1,4.564348,6.160541,0,0,0,85.2,8.976113,1.386294,4.079474,1 +13,4,0,0,1,428207,0,7910.823,6.518823,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,90,9.967326,0,85.2,450,492.84,1,0,1.386294,6.200184,1,4.564348,6.160541,0,0,0,85.2,8.976113,1.386294,,0 +13,4,0,0,2,428207,0,7910.823,7.518823,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,90,9.967326,0,85.2,450,492.84,1,0,1.386294,6.200184,1,4.564348,6.160541,0,0,0,85.2,8.976113,1.386294,,0 +13,4,0,0,3,428207,0,7910.823,8.518823,0,12,1,80.07309,0,.9028375,0,0,80.97592,0,0,0,1,0,4,90,9.967326,0,85.2,450,492.84,1,0,1.386294,6.200184,1,4.564348,6.160541,0,0,0,85.2,8.976113,1.386294,4.394152,1 +11,4,0,1,1,428222,0,10872.73,14.19028,1,11,1,40.48583,18.57287,0,0,490.0101,549.0688,1,0,0,5,0,3,64.4,6.9,1,83,0,0,1,1,1.098612,0,0,0,0,0,0,0,83,9.294105,1.098612,6.308224,1 +11,4,0,1,2,428222,0,10872.73,15.19028,1,11,1,71.93007,5.757576,0,0,0,77.68764,0,0,0,4,0,3,64.4,6.9,1,83,0,0,1,1,1.098612,0,0,0,0,0,0,0,83,9.294105,1.098612,4.352696,1 +11,4,0,1,3,428222,0,10872.73,16.19028,1,11,1,66.26764,27.04147,0,0,0,93.3091,0,0,0,7,0,3,64.4,6.9,1,83,0,0,1,1,1.098612,0,0,0,0,0,0,0,83,9.294105,1.098612,4.535918,1 +11,4,0,1,1,428223,0,10872.73,37.7577,1,11,1,125.3694,0,37.95547,0,0,163.3249,0,0,0,3,0,3,72.3,17.2,0,56.8,0,0,0,0,1.098612,0,0,0,0,1,0,0,56.8,9.294105,1.098612,5.095741,1 +11,4,0,1,2,428223,0,10872.73,38.7577,1,11,1,28.82517,5.664336,0,0,0,34.48951,0,0,0,3,0,3,72.3,17.2,0,56.8,0,0,0,0,1.098612,0,0,0,0,1,0,0,56.8,9.294105,1.098612,3.540655,1 +11,4,0,1,3,428223,0,10872.73,39.7577,1,11,1,14.96366,3.035485,0,0,0,17.99915,0,0,0,1,0,3,72.3,17.2,0,56.8,0,0,0,0,1.098612,0,0,0,0,1,0,0,56.8,9.294105,1.098612,2.890324,1 +19,4,25,1,1,428233,0,6419.941,17.91102,1,14,1,30.36437,1.907895,33.19332,0,0,65.46558,0,0,0,3,0,5,38.3,3.4,0,77.3,120,120,1,1,1.609438,4.787492,0,3.258096,6.173786,1,0,0,77.3,8.76732,1.609438,4.181525,1 +19,4,25,1,2,428233,0,6419.941,18.91102,1,14,1,275.2681,4.223776,20.8718,0,0,300.3636,0,0,0,7,0,5,38.3,3.4,0,77.3,120,120,0,0,1.609438,4.787492,0,3.258096,6.173786,1,0,0,77.3,8.76732,1.609438,5.704994,1 +19,4,25,1,3,428233,0,6419.941,19.91102,1,14,1,64.34373,30.04275,0,0,0,94.38649,0,0,0,10,0,5,38.3,3.4,0,77.3,120,120,0,0,1.609438,4.787492,0,3.258096,6.173786,1,0,0,77.3,8.76732,1.609438,4.547398,1 +19,4,25,1,1,428234,0,6419.941,39.38124,1,14,1,598.1124,138.7146,0,0,1251.994,1988.821,1,0,0,23,0,5,44.1,31,1,69.3,120,120,0,0,1.609438,4.787492,0,3.258096,6.173786,0,1,0,69.3,8.76732,1.609438,7.595297,1 +19,4,25,1,2,428234,0,6419.941,40.38124,1,14,1,156.6434,161.9301,0,0,0,318.5734,0,0,0,18,0,5,44.1,31,1,69.3,120,120,0,0,1.609438,4.787492,0,3.258096,6.173786,0,1,0,69.3,8.76732,1.609438,5.763853,1 +19,4,25,1,3,428234,0,6419.941,41.38124,1,14,1,99.29457,13.03549,27.00299,0,0,139.3331,0,0,0,4,4,5,44.1,31,1,69.3,120,120,0,0,1.609438,4.787492,0,3.258096,6.173786,0,1,0,69.3,8.76732,1.609438,4.936867,1 +19,4,25,1,1,428235,0,6419.941,16.06571,1,14,1,264.418,5.086032,0,0,0,269.5041,0,0,0,7,0,5,59.6,3.4,0,65.9,120,120,1,1,1.609438,4.787492,0,3.258096,6.173786,0,0,0,65.9,8.76732,1.609438,5.596583,1 +19,4,25,1,2,428235,0,6419.941,17.06571,1,14,1,78.90443,3.300699,37.41725,0,0,119.6224,0,0,0,5,2,5,59.6,3.4,0,65.9,120,120,1,1,1.609438,4.787492,0,3.258096,6.173786,0,0,0,65.9,8.76732,1.609438,4.78434,1 +19,4,25,1,3,428235,0,6419.941,18.06571,1,14,1,8.550663,0,0,0,0,8.550663,0,0,0,1,0,5,59.6,3.4,0,65.9,120,120,0,0,1.609438,4.787492,0,3.258096,6.173786,0,0,0,65.9,8.76732,1.609438,2.146009,1 +19,4,25,1,1,428237,0,6419.941,12,0,14,1,0,0,0,0,0,0,0,0,0,0,0,5,78.3,9.967326,0,92.6,120,120,1,0,1.609438,4.787492,0,3.258096,6.173786,0,0,0,92.6,8.76732,1.609438,,0 +19,4,25,1,2,428237,0,6419.941,13,0,14,1,199.1841,14.55478,7.459208,0,0,221.1981,0,0,0,12,0,5,78.3,9.967326,0,92.6,120,120,1,0,1.609438,4.787492,0,3.258096,6.173786,0,0,0,92.6,8.76732,1.609438,5.399059,1 +19,4,25,1,3,428237,0,6419.941,14,0,14,1,39.6537,0,0,0,0,39.6537,0,0,0,3,0,5,78.3,9.967326,0,92.6,120,120,1,0,1.609438,4.787492,0,3.258096,6.173786,0,0,0,92.6,8.76732,1.609438,3.680184,1 +19,4,25,1,1,428238,0,6419.941,19.45243,0,12,1,10.12146,0,38.2085,0,0,48.32996,0,0,0,1,0,5,85.8,13.8,0,95.5,120,120,0,0,1.609438,4.787492,0,3.258096,6.173786,0,0,0,95.5,8.76732,1.609438,3.878052,1 +19,4,25,1,2,428238,0,6419.941,20.45243,0,12,1,27.97203,0,34.73193,0,0,62.70396,0,0,0,2,0,5,85.8,13.8,0,95.5,120,120,0,0,1.609438,4.787492,0,3.258096,6.173786,0,0,0,95.5,8.76732,1.609438,4.138425,1 +19,4,25,1,3,428238,0,6419.941,21.45243,0,12,1,190.2522,.6412997,0,0,0,190.8935,0,0,0,5,11,5,85.8,13.8,0,95.5,120,120,0,0,1.609438,4.787492,0,3.258096,6.173786,0,0,0,95.5,8.76732,1.609438,5.251716,1 +14,4,95,1,1,428251,0,4939.003,29.28679,0,14,1,0,0,0,20.60793,488.0629,488.0629,1,0,2,0,0,1,77.1,13.8,0,70.5,464.55,464.55,0,0,0,6.141069,0,4.564348,6.192362,1,0,0,70.5,8.505121,0,6.190444,1 +14,4,95,1,2,428251,0,4939.003,30.28679,0,14,1,0,1.657197,0,0,0,1.657197,0,0,0,0,0,1,77.1,13.8,0,70.5,464.55,464.55,0,0,0,6.141069,0,4.564348,6.192362,1,0,0,70.5,8.505121,0,.5051276,1 +14,4,95,1,3,428251,0,4939.003,31.28679,0,14,1,117.7937,9.16775,26.22453,0,2042.241,2195.427,3,0,0,4,5,1,77.1,13.8,0,70.5,464.55,464.55,0,0,0,6.141069,0,4.564348,6.192362,1,0,0,70.5,8.505121,0,7.694132,1 +11,4,0,0,1,428258,.0068104,7910.823,21.16085,1,11,1,135.2783,41.3664,35.67814,0,814.4889,1026.812,3,0,0,7,2,2,74.46748,9.967326,.1572505,,0,0,0,0,.6931472,0,0,0,0,0,1,0,72.06626,8.976113,.6931472,6.934214,1 +11,4,0,0,2,428258,.0068104,7910.823,22.16085,1,11,1,39.62704,23.86946,0,0,131.4312,194.9277,1,0,0,2,1,2,74.46748,9.967326,.1572505,,0,0,0,0,.6931472,0,0,0,0,0,1,0,72.06626,8.976113,.6931472,5.272629,1 +11,4,0,0,3,428258,.0068104,7910.823,23.16085,1,11,1,131.817,26.63531,0,0,0,158.4523,0,0,0,5,1,2,74.46748,9.967326,.1572505,,0,0,0,0,.6931472,0,0,0,0,0,1,0,72.06626,8.976113,.6931472,5.065454,1 +11,4,0,0,1,428259,0,5371.261,45.76865,1,13,1,100.6984,71.47773,33.90688,0,0,206.083,0,0,0,4,1,4,74.46748,9.967326,.1572505,,0,0,0,0,1.386294,0,0,0,0,1,0,0,72.06626,8.589005,1.386294,5.328279,1 +11,4,0,0,2,428259,0,5371.261,46.76865,1,13,1,139.1841,63.7296,0,0,0,202.9138,0,0,0,6,0,4,74.46748,9.967326,.1572505,,0,0,0,0,1.386294,0,0,0,0,1,0,0,72.06626,8.589005,1.386294,5.312781,1 +11,4,0,0,3,428259,0,5371.261,47.76865,1,13,1,106.1779,67.45618,30.78238,0,0,204.4164,0,0,0,3,1,4,74.46748,9.967326,.1572505,,0,0,0,0,1.386294,0,0,0,0,1,0,0,72.06626,8.589005,1.386294,5.320159,1 +11,4,0,0,1,428260,0,5371.261,18.23682,0,10,1,157.9808,6.351214,2.140688,0,0,166.4727,0,0,0,7,0,4,74.46748,9.967326,.1572505,,0,0,0,0,1.386294,0,0,0,0,1,0,0,72.06626,8.589005,1.386294,5.114831,1 +11,4,0,0,2,428260,0,5371.261,19.23682,0,10,1,15.44988,.9090909,0,0,0,16.35897,0,0,0,1,0,4,74.46748,9.967326,.1572505,,0,0,0,0,1.386294,0,0,0,0,1,0,0,72.06626,8.589005,1.386294,2.794777,1 +11,4,0,0,3,428260,0,5371.261,20.23682,0,10,1,43.99316,0,0,0,0,43.99316,0,0,0,2,0,4,74.46748,9.967326,.1572505,,0,0,0,0,1.386294,0,0,0,0,1,0,0,72.06626,8.589005,1.386294,3.784034,1 +11,4,0,0,1,428261,0,5371.261,16.30116,1,13,1,207.1154,39.80263,0,0,0,246.918,0,0,0,8,0,4,74.46748,9.967326,.1572505,,0,0,1,1,1.386294,0,0,0,0,1,0,0,72.06626,8.589005,1.386294,5.509057,1 +11,4,0,0,2,428261,0,5371.261,17.30116,1,13,1,36.36364,31.32867,23.77622,0,0,91.46853,0,0,0,2,1,4,74.46748,9.967326,.1572505,,0,0,1,1,1.386294,0,0,0,0,1,0,0,72.06626,8.589005,1.386294,4.515995,1 +11,4,0,0,3,428261,0,5371.261,18.30116,1,13,1,7.268063,25.50235,23.08679,0,841.0432,896.9004,1,0,0,0,1,4,74.46748,9.967326,.1572505,,0,0,0,0,1.386294,0,0,0,0,1,0,0,72.06626,8.589005,1.386294,6.798945,1 +11,4,0,0,1,428262,0,5371.261,17.15537,1,13,1,12.65182,8.628543,0,0,0,21.28036,0,0,0,2,0,4,74.46748,9.967326,.1572505,,0,0,1,1,1.386294,0,0,0,0,1,0,0,72.06626,8.589005,1.386294,3.057785,1 +11,4,0,0,2,428262,0,5371.261,18.15537,1,13,1,60.13986,9.160839,0,0,0,69.3007,0,0,0,2,0,4,74.46748,9.967326,.1572505,,0,0,0,0,1.386294,0,0,0,0,1,0,0,72.06626,8.589005,1.386294,4.238455,1 +11,4,0,0,3,428262,0,5371.261,19.15537,1,13,1,98.78153,22.68063,0,0,1169.222,1290.684,2,0,0,3,0,4,74.46748,9.967326,.1572505,,0,0,0,0,1.386294,0,0,0,0,1,0,0,72.06626,8.589005,1.386294,7.162928,1 +13,4,0,0,1,428266,0,1,39.91787,0,12,1,115.3728,0,49.54035,0,0,164.9132,0,0,0,2,8,1,85.1,6.9,0,73.9,150,42,0,0,0,3.73767,1,4.564348,5.061929,1,0,0,73.9,.6931472,0,5.105419,1 +13,4,0,0,2,428266,0,1,40.91787,0,12,1,71.02673,0,0,0,0,71.02673,0,0,0,1,5,1,85.1,6.9,0,73.9,150,42,0,0,0,3.73767,1,4.564348,5.061929,1,0,0,73.9,.6931472,0,4.263056,1 +13,4,0,0,3,428266,0,1,41.91787,0,12,1,5.159071,6.663801,0,0,0,11.82287,0,0,0,1,0,1,85.1,6.9,0,73.9,150,42,0,0,0,3.73767,1,4.564348,5.061929,1,0,0,73.9,.6931472,0,2.470036,1 +13,4,0,0,4,428266,0,1,42.91787,0,12,1,84.33501,0,37.14618,0,0,121.4812,0,0,0,1,4,1,85.1,6.9,0,73.9,150,42,0,0,0,3.73767,1,4.564348,5.061929,1,0,0,73.9,.6931472,0,4.799759,1 +13,4,0,0,5,428266,0,1,43.91787,0,12,1,40.3397,10.25478,0,0,0,50.59448,0,0,0,5,1,1,85.1,6.9,0,73.9,150,42,0,0,0,3.73767,1,4.564348,5.061929,1,0,0,73.9,.6931472,0,3.923842,1 +13,4,0,0,1,428267,0,995.3079,26.60643,0,12,1,10.2145,2.808989,0,0,0,13.02349,0,0,0,2,0,3,79.3,10.3,0,70.5,300,313.94,0,0,1.098612,5.749202,1,4.564348,5.755076,1,0,0,70.5,6.904057,1.098612,2.566755,1 +13,4,0,0,2,428267,0,995.3079,27.60643,0,12,1,22.62072,0,0,0,0,22.62072,0,0,0,1,2,3,79.3,10.3,0,70.5,300,313.94,0,0,1.098612,5.749202,1,4.564348,5.755076,1,0,0,70.5,6.904057,1.098612,3.118866,1 +13,4,0,0,3,428267,0,995.3079,28.60643,0,12,1,111.4359,0,0,0,0,111.4359,0,0,0,3,0,4,79.3,10.3,0,70.5,300,313.94,0,0,1.386294,5.749202,1,4.564348,5.755076,1,0,0,70.5,6.904057,1.386294,4.71345,1 +13,4,0,0,4,428267,0,995.3079,29.60643,0,12,1,4.905002,1.709965,0,0,0,6.614967,0,0,0,0,0,5,79.3,10.3,0,70.5,300,313.94,0,0,1.609438,5.749202,1,4.564348,5.755076,1,0,0,70.5,6.904057,1.609438,1.889335,1 +13,4,0,0,5,428267,0,995.3079,30.60643,0,12,1,15.92357,1.415428,24.76999,0,0,42.10899,0,0,0,1,1,5,79.3,10.3,0,70.5,300,313.94,0,0,1.609438,5.749202,1,4.564348,5.755076,1,0,0,70.5,6.904057,1.609438,3.740261,1 +13,4,0,0,1,428268,0,17.59531,4.021903,0,12,1,27.19612,0,0,0,0,27.19612,0,0,0,1,0,2,83.39137,9.967326,0,77.8,300,358.52,1,0,.6931472,5.881984,1,4.564348,5.755076,1,0,0,77.8,2.922909,.6931472,3.303074,1 +13,4,0,0,3,428268,0,17.59531,6.021903,0,12,1,13.75752,0,0,0,0,13.75752,0,0,0,2,0,2,83.39137,9.967326,0,77.8,300,358.52,1,0,.6931472,5.881984,1,4.564348,5.755076,1,0,0,77.8,2.922909,.6931472,2.621586,1 +13,4,0,0,4,428268,0,17.59531,7.021903,0,12,1,13.57115,5.032959,0,0,0,18.60411,0,0,0,1,0,3,83.39137,9.967326,0,77.8,300,358.52,1,0,1.098612,5.881984,1,4.564348,5.755076,1,0,0,77.8,2.922909,1.098612,2.923383,1 +13,4,0,0,5,428268,0,17.59531,8.021903,0,12,1,25.12385,0,0,0,0,25.12385,0,0,0,1,0,3,83.39137,9.967326,0,77.8,300,358.52,1,0,1.098612,5.881984,1,4.564348,5.755076,1,0,0,77.8,2.922909,1.098612,3.223818,1 +13,4,0,0,1,428269,0,17.59531,22.27789,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,55.3,17.2,0,65.9,300,358.52,0,0,.6931472,5.881984,1,4.564348,5.755076,1,0,0,65.9,2.922909,.6931472,,0 +13,4,0,0,3,428269,0,17.59531,24.27789,1,12,1,61.47894,10.5417,0,0,420.8083,492.8289,1,0,0,3,0,2,55.3,17.2,0,65.9,300,358.52,0,0,.6931472,5.881984,1,4.564348,5.755076,1,0,0,65.9,2.922909,.6931472,6.200162,1 +13,4,0,0,4,428269,0,17.59531,25.27789,1,12,1,22.87708,6.320279,26.56068,0,0,55.75805,0,0,0,2,1,3,55.3,17.2,0,65.9,300,358.52,0,0,1.098612,5.881984,1,4.564348,5.755076,1,0,0,65.9,2.922909,1.098612,4.021022,1 +13,4,0,0,5,428269,0,17.59531,26.27789,1,12,1,20.52371,0,0,0,0,20.52371,0,0,0,2,0,3,55.3,17.2,0,65.9,300,358.52,0,0,1.098612,5.881984,1,4.564348,5.755076,1,0,0,65.9,2.922909,1.098612,3.021581,1 +11,4,0,0,1,428275,0,2834.604,21.98768,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,71.3,3.4,0,75,0,0,0,0,0,0,0,0,0,1,0,0,75,7.95001,0,,0 +11,4,0,0,2,428275,0,2834.604,22.98768,0,12,1,23.90999,0,1.054852,0,0,24.96484,0,0,0,0,0,1,71.3,3.4,0,75,0,0,0,0,0,0,0,0,0,1,0,0,75,7.95001,0,3.217468,1 +11,4,0,0,3,428275,0,2834.604,23.98768,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,71.3,3.4,0,75,0,0,0,0,0,0,0,0,0,1,0,0,75,7.95001,0,,0 +17,4,25,1,1,428330,0,7960.117,12.79945,1,18,1,53.11543,5.107252,24.66803,0,0,82.8907,0,0,0,4,1,3,50,9.967326,0,96.3,650,650,1,1,1.098612,6.476973,0,3.258096,7.863267,0,0,0,96.3,8.982325,1.098612,4.417523,1 +17,4,25,1,2,428330,0,7960.117,13.79945,1,18,1,28.78575,0,0,0,0,28.78575,0,0,0,2,0,3,50,9.967326,0,96.3,650,650,1,1,1.098612,6.476973,0,3.258096,7.863267,0,0,0,96.3,8.982325,1.098612,3.35988,1 +17,4,25,1,3,428330,0,7960.117,14.79945,1,18,1,27.08512,0,0,0,0,27.08512,0,0,0,2,0,3,50,9.967326,0,96.3,650,650,1,1,1.098612,6.476973,0,3.258096,7.863267,0,0,0,96.3,8.982325,1.098612,3.298985,1 +17,4,25,1,1,428331,0,7960.117,8.966461,1,18,1,23.49336,0,0,0,0,23.49336,0,0,0,1,1,3,71.7,9.967326,0,96.3,650,650,1,1,1.098612,6.476973,0,3.258096,7.863267,0,0,0,96.3,8.982325,1.098612,3.156718,1 +17,4,25,1,2,428331,0,7960.117,9.966461,1,18,1,4.219409,0,0,0,0,4.219409,0,0,0,1,0,3,71.7,9.967326,0,96.3,650,650,1,1,1.098612,6.476973,0,3.258096,7.863267,0,0,0,96.3,8.982325,1.098612,1.439695,1 +17,4,25,1,3,428331,0,7960.117,10.96646,1,18,1,8.16853,0,0,0,0,8.16853,0,0,0,1,0,3,71.7,9.967326,0,96.3,650,650,1,1,1.098612,6.476973,0,3.258096,7.863267,0,0,0,96.3,8.982325,1.098612,2.100289,1 +17,4,25,1,1,428332,0,7960.117,37.92471,1,18,1,15.32176,0,0,0,0,15.32176,0,0,0,0,1,3,67,6.9,0,92,650,650,0,0,1.098612,6.476973,0,3.258096,7.863267,0,0,0,92,8.982325,1.098612,2.729274,1 +17,4,25,1,2,428332,0,7960.117,38.92471,1,18,1,0,0,0,0,0,0,0,0,0,0,0,3,67,6.9,0,92,650,650,0,0,1.098612,6.476973,0,3.258096,7.863267,0,0,0,92,8.982325,1.098612,,0 +17,4,25,1,3,428332,0,7960.117,39.92471,1,18,1,52.88048,0,28.00946,0,0,80.88994,0,0,0,1,0,3,67,6.9,0,92,650,650,0,0,1.098612,6.476973,0,3.258096,7.863267,0,0,0,92,8.982325,1.098612,4.393089,1 +11,4,0,0,1,428347,0,14318.47,36.91992,1,17,1,0,0,0,0,0,0,0,0,0,0,0,4,59.6,17.2,0,73.9,0,366,0,0,1.386294,5.902633,0,0,0,0,0,0,73.9,9.569376,1.386294,,0 +11,4,0,0,2,428347,0,14318.47,37.91992,1,17,1,11.83712,3.669508,0,0,0,15.50663,0,0,0,1,0,4,59.6,17.2,0,73.9,0,366,0,0,1.386294,5.902633,0,0,0,0,0,0,73.9,9.569376,1.386294,2.741268,1 +11,4,0,0,3,428347,0,14318.47,38.91992,1,17,1,68.13611,0,0,0,0,68.13611,0,0,0,4,0,4,59.6,17.2,0,73.9,0,366,0,0,1.386294,5.902633,0,0,0,0,0,0,73.9,9.569376,1.386294,4.221507,1 +11,4,0,0,1,428348,0,14318.47,4.610541,0,17,1,8.243174,2.833591,0,0,0,11.07676,0,0,0,1,0,4,83.39137,9.967326,0,81.5,0,366,1,0,1.386294,5.902633,0,0,0,0,0,0,81.5,9.569376,1.386294,2.40485,1 +11,4,0,0,2,428348,0,14318.47,5.610541,0,17,1,0,3.077652,0,0,0,3.077652,0,0,0,0,0,4,83.39137,9.967326,0,81.5,0,366,1,0,1.386294,5.902633,0,0,0,0,0,0,81.5,9.569376,1.386294,1.124167,1 +11,4,0,0,3,428348,0,14318.47,6.610541,0,17,1,23.86649,1.950585,0,0,0,25.81708,0,0,0,1,0,4,83.39137,9.967326,0,81.5,0,366,1,0,1.386294,5.902633,0,0,0,0,0,0,81.5,9.569376,1.386294,3.251036,1 +11,4,0,0,1,428349,0,14318.47,7.750855,1,17,1,11.46316,0,0,0,0,11.46316,0,0,0,1,0,4,73.3,9.967326,0,96.3,0,366,1,1,1.386294,5.902633,0,0,0,0,0,0,96.3,9.569376,1.386294,2.439139,1 +11,4,0,0,2,428349,0,14318.47,8.750855,1,17,1,244.2614,0,24.85795,0,0,269.1193,0,0,0,2,0,4,73.3,9.967326,0,96.3,0,366,1,1,1.386294,5.902633,0,0,0,0,0,0,96.3,9.569376,1.386294,5.595155,1 +11,4,0,0,3,428349,0,14318.47,9.750855,1,17,1,6.328565,0,0,0,0,6.328565,0,0,0,1,0,4,73.3,9.967326,0,96.3,0,366,1,1,1.386294,5.902633,0,0,0,0,0,0,96.3,9.569376,1.386294,1.845074,1 +11,4,0,0,1,428350,0,14318.47,34.96783,0,15,1,0,3.735188,0,41.21587,604.8428,608.5781,1,0,4,0,0,4,82.4,6.9,0,87.5,0,366,0,0,1.386294,5.902633,0,0,0,0,0,0,87.5,9.569376,1.386294,6.411125,1 +11,4,0,0,2,428350,0,14318.47,35.96783,0,15,1,0,0,0,80.49242,5800.109,5800.109,3,0,6,0,0,4,82.4,6.9,0,87.5,0,366,0,0,1.386294,5.902633,0,0,0,0,0,0,87.5,9.569376,1.386294,8.665632,1 +11,4,0,0,3,428350,0,14318.47,36.96783,0,15,1,10.83658,0,31.20936,0,1358.483,1400.529,2,0,0,0,1,4,82.4,6.9,0,87.5,0,366,0,0,1.386294,5.902633,0,0,0,0,0,0,87.5,9.569376,1.386294,7.244605,1 +13,4,0,0,1,428388,0,8142.522,4.17796,0,10,1,251.1747,0,0,0,0,251.1747,0,0,0,52,0,5,83.39137,9.967326,0,100,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,100,9.004978,1.609438,5.526149,1 +13,4,0,0,2,428388,0,8142.522,5.17796,0,10,1,34.57571,0,0,0,0,34.57571,0,0,0,5,0,5,83.39137,9.967326,0,100,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,100,9.004978,1.609438,3.543152,1 +13,4,0,0,3,428388,0,8142.522,6.17796,0,10,1,6.448839,0,0,255.804,0,6.448839,0,0,17,1,0,5,83.39137,9.967326,0,100,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,100,9.004978,1.609438,1.8639,1 +13,4,0,0,1,428389,0,8142.522,29.32786,1,10,1,66.13892,48.00817,0,0,2091.599,2205.746,4,1,0,8,0,5,83.5,13.8,0,84.1,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,1,0,84.1,9.004978,1.609438,7.698821,1 +13,4,0,0,2,428389,0,8142.522,30.32786,1,10,1,11.25176,10.78294,0,0,0,22.03469,0,0,0,2,0,5,83.5,13.8,0,84.1,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,1,0,84.1,9.004978,1.609438,3.092618,1 +13,4,0,0,3,428389,0,8142.522,31.32786,1,10,1,283.7575,0,0,0,0,283.7575,0,0,0,7,0,5,83.5,13.8,0,84.1,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,1,0,84.1,9.004978,1.609438,5.64812,1 +13,4,0,0,1,428390,0,8142.522,30.24504,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,79.3,6.9,0,100,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,100,9.004978,1.609438,,0 +13,4,0,0,2,428390,0,8142.522,31.24504,0,12,1,12.65823,12.00187,0,0,0,24.6601,0,0,0,1,0,5,79.3,6.9,0,100,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,100,9.004978,1.609438,3.205187,1 +13,4,0,0,3,428390,0,8142.522,32.24504,0,12,1,4.299226,0,0,0,0,4.299226,0,0,0,1,0,5,79.3,6.9,0,100,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,100,9.004978,1.609438,1.458435,1 +13,4,0,0,1,428391,0,8142.522,7.693361,1,10,1,27.3238,0,0,0,0,27.3238,0,0,0,2,0,5,85,9.967326,0,74.1,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,1,0,0,74.1,9.004978,1.609438,3.307758,1 +13,4,0,0,2,428391,0,8142.522,8.69336,1,10,1,11.72058,0,0,0,0,11.72058,0,0,0,1,0,5,85,9.967326,0,74.1,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,1,0,0,74.1,9.004978,1.609438,2.461346,1 +13,4,0,0,3,428391,0,8142.522,9.69336,1,10,1,61.04041,0,0,0,1476.251,1537.292,3,0,0,5,0,5,85,9.967326,0,74.1,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,1,0,0,74.1,9.004978,1.609438,7.337778,1 +13,4,0,0,1,428392,0,8142.522,3.657769,0,10,1,134.3718,0,22.47191,0,644.8723,801.7161,1,0,0,17,0,5,83.39137,9.967326,0,100,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,100,9.004978,1.609438,6.686755,1 +13,4,0,0,2,428392,0,8142.522,4.657769,0,10,1,67.93249,2.109705,16.87764,0,576.962,663.8818,1,0,0,11,0,5,83.39137,9.967326,0,100,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,100,9.004978,1.609438,6.498104,1 +13,4,0,0,3,428392,0,8142.522,5.657769,0,10,1,414.5959,0,16.1221,0,0,430.718,0,0,0,44,0,5,83.39137,9.967326,0,100,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,100,9.004978,1.609438,6.065454,1 +11,4,0,1,1,428470,0,11356.01,56.91444,0,13,1,10.30397,0,0,0,0,10.30397,0,0,0,2,0,2,87.8,6.9,0,71.6,0,112,0,0,.6931472,4.718499,0,0,0,1,0,0,71.6,9.33759,.6931472,2.332529,1 +11,4,0,1,2,428470,0,11356.01,57.91444,0,13,1,55.39773,10.53504,0,0,0,65.93276,0,0,0,7,0,2,87.8,6.9,0,71.6,0,112,0,0,.6931472,4.718499,0,0,0,1,0,0,71.6,9.33759,.6931472,4.188635,1 +11,4,0,1,3,428470,0,11356.01,58.91444,0,13,1,21.23971,0,45.51365,0,0,66.75336,0,0,0,3,0,1,87.8,6.9,0,71.6,0,112,0,0,0,4.718499,0,0,0,1,0,0,71.6,9.33759,0,4.201005,1 +11,4,0,1,1,428471,0,11356.01,54.98973,1,12,1,41.21587,4.817105,57.18702,0,0,103.22,0,0,0,7,0,2,89.9,20.7,0,68.2,0,112,0,0,.6931472,4.718499,0,0,0,1,0,0,68.2,9.33759,.6931472,4.636862,1 +11,4,0,1,2,428471,0,11356.01,55.98973,1,12,1,58.12027,2.727273,46.875,0,0,107.7225,0,0,0,5,0,2,89.9,20.7,0,68.2,0,112,0,0,.6931472,4.718499,0,0,0,1,0,0,68.2,9.33759,.6931472,4.679559,1 +13,4,0,1,1,428485,0,6165.396,16.4846,0,12,1,5.107252,0,0,0,0,5.107252,0,0,0,1,0,5,60.6,3.4,0,71.6,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,71.6,8.72687,1.609438,1.630661,1 +13,4,0,1,2,428485,0,6165.396,17.4846,0,12,1,7.032349,0,0,0,161.7862,168.8186,1,0,0,1,0,5,60.6,3.4,0,71.6,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,71.6,8.72687,1.609438,5.128825,1 +13,4,0,1,3,428485,0,6165.396,18.4846,0,12,1,0,.6448839,0,0,0,.6448839,0,0,0,0,0,5,60.6,3.4,0,71.6,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,71.6,8.72687,1.609438,-.4386849,1 +13,4,0,1,4,428485,0,6165.396,19.4846,0,12,1,207.4874,0,0,0,0,207.4874,0,0,0,1,0,5,60.6,3.4,0,71.6,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,71.6,8.72687,1.609438,5.335071,1 +13,4,0,1,1,428486,0,6165.396,19.25257,0,11,1,0,0,0,0,0,0,0,0,0,0,0,5,70.7,6.9,0,60.2,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,60.2,8.72687,1.609438,,0 +13,4,0,1,2,428486,0,6165.396,20.25257,0,11,1,145.1946,13.2677,0,0,0,158.4623,0,0,0,10,0,5,70.7,6.9,0,60.2,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,60.2,8.72687,1.609438,5.065516,1 +13,4,0,1,3,428486,0,6165.396,21.25257,0,11,1,0,7.60963,0,0,0,7.60963,0,0,0,0,0,5,70.7,6.9,0,60.2,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,60.2,8.72687,1.609438,2.029415,1 +13,4,0,1,4,428486,0,6165.396,22.25257,0,11,1,0,1.163242,0,0,0,1.163242,0,0,0,0,0,5,70.7,6.9,0,60.2,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,60.2,8.72687,1.609438,.1512106,1 +13,4,0,1,5,428486,0,6165.396,23.25257,0,11,1,0,0,0,0,0,0,0,0,0,0,0,5,70.7,6.9,0,60.2,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,60.2,8.72687,1.609438,,0 +13,4,0,1,1,428487,0,6165.396,43.54826,1,12,1,5.107252,4.034729,0,0,0,9.141982,0,0,0,1,0,5,69.1,13.8,0,63.6,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,63.6,8.72687,1.609438,2.212877,1 +13,4,0,1,2,428487,0,6165.396,44.54826,1,12,1,132.8645,13.10361,0,0,0,145.9681,0,0,0,0,5,5,69.1,13.8,0,63.6,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,63.6,8.72687,1.609438,4.983388,1 +13,4,0,1,3,428487,0,6165.396,45.54826,1,12,1,0,3.095443,0,0,0,3.095443,0,0,0,0,0,5,69.1,13.8,0,63.6,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,63.6,8.72687,1.609438,1.129931,1 +13,4,0,1,4,428487,0,6165.396,46.54826,1,12,1,76.50252,21.90772,37.61148,0,0,136.0217,0,0,0,3,0,5,69.1,13.8,0,63.6,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,63.6,8.72687,1.609438,4.912815,1 +13,4,0,1,5,428487,0,6165.396,47.54826,1,12,1,0,4.854918,0,0,0,4.854918,0,0,0,0,0,5,69.1,13.8,0,63.6,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,63.6,8.72687,1.609438,1.579992,1 +13,4,0,1,1,428488,0,6165.396,43.22245,0,11,1,57.02247,7.686415,70.22472,0,544.9898,679.9234,1,0,0,4,0,5,63.3,6.9,0,37.5,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,37.5,8.72687,1.609438,6.52198,1 +13,4,0,1,2,428488,0,6165.396,44.22245,0,11,1,66.80731,1.40647,0,0,0,68.21378,0,0,0,3,0,5,63.3,6.9,0,37.5,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,37.5,8.72687,1.609438,4.222647,1 +13,4,0,1,3,428488,0,6165.396,45.22245,0,11,1,32.99656,30.30954,0,0,0,63.30611,0,0,0,1,0,5,63.3,6.9,0,37.5,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,37.5,8.72687,1.609438,4.147982,1 +13,4,0,1,4,428488,0,6165.396,46.22245,0,11,1,5.816208,14.44358,0,0,344.4824,364.7422,1,0,0,1,0,5,63.3,6.9,0,37.5,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,37.5,8.72687,1.609438,5.899191,1 +13,4,0,1,5,428488,0,6165.396,47.22245,0,11,1,17.69285,8.934891,0,0,0,26.62774,0,0,0,1,0,5,63.3,6.9,0,37.5,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,37.5,8.72687,1.609438,3.281954,1 +13,4,0,1,1,428489,0,6165.396,15.54825,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,49.5,3.4,0,67,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,1,0,0,67,8.72687,1.609438,,0 +13,4,0,1,2,428489,0,6165.396,16.54825,1,12,1,50.3985,.4688233,0,0,0,50.86732,0,0,0,1,0,5,49.5,3.4,0,67,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,1,0,0,67,8.72687,1.609438,3.929221,1 +13,4,0,1,3,428489,0,6165.396,17.54825,1,12,1,73.83921,.7523646,0,0,339.7506,414.3422,1,0,0,2,0,5,49.5,3.4,0,67,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,1,0,0,67,8.72687,1.609438,6.026692,1 +13,4,0,1,4,428489,0,6165.396,18.54825,1,12,1,31.01978,0,0,0,135.7115,166.7313,1,1,0,4,0,5,49.5,3.4,0,67,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,67,8.72687,1.609438,5.116384,1 +13,4,0,1,5,428489,0,6165.396,19.54825,1,12,1,31.14296,0,0,0,0,31.14296,0,0,0,1,0,5,49.5,3.4,0,67,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,67,8.72687,1.609438,3.438588,1 +14,4,95,1,1,428495,1,8390.616,16.43532,1,10,1,7.660879,2.451481,0,0,0,10.11236,0,0,0,2,0,6,64.4,6.9,0,64.8,421.66,421.66,1,1,1.791759,6.044199,0,4.564348,6.095492,0,0,0,64.8,9.034988,1.791759,2.313758,1 +14,4,95,1,2,428495,1,8390.616,17.43532,1,10,1,36.68542,11.33615,0,0,0,48.02156,0,0,0,4,0,6,64.4,6.9,0,64.8,421.66,421.66,1,1,1.791759,6.044199,0,4.564348,6.095492,0,0,0,64.8,9.034988,1.791759,3.87165,1 +14,4,95,1,3,428495,1,8390.616,18.43532,1,10,1,75.71797,2.987962,0,0,0,78.70593,0,0,0,3,0,6,64.4,6.9,0,64.8,421.66,421.66,0,0,1.791759,6.044199,0,4.564348,6.095492,0,0,0,64.8,9.034988,1.791759,4.365718,1 +14,4,95,1,4,428495,1,8390.616,19.43532,1,10,1,43.05933,7.347809,0,0,0,50.40714,0,0,0,3,0,6,64.4,6.9,0,64.8,421.66,421.66,0,0,1.791759,6.044199,0,4.564348,6.095492,0,0,0,64.8,9.034988,1.791759,3.920133,1 +14,4,95,1,5,428495,1,8390.616,20.43532,1,10,1,76.78698,4.511677,0,0,698.5315,779.8301,1,0,0,2,0,6,64.4,6.9,0,64.8,421.66,421.66,0,0,1.791759,6.044199,0,4.564348,6.095492,0,0,0,64.8,9.034988,1.791759,6.659076,1 +14,4,95,1,1,428496,1,8390.616,17.84257,1,10,1,33.19714,55.45454,31.66496,0,366.1696,486.4862,1,0,0,7,1,6,56.9,20.7,0,68.2,421.66,421.66,1,1,1.791759,6.044199,0,4.564348,6.095492,0,0,0,68.2,9.034988,1.791759,6.187209,1 +14,4,95,1,2,428496,1,8390.616,18.84257,1,10,1,46.4135,58.87014,14.0647,0,0,119.3483,0,0,0,10,1,6,56.9,20.7,0,68.2,421.66,421.66,0,0,1.791759,6.044199,0,4.564348,6.095492,0,0,0,68.2,9.034988,1.791759,4.782046,1 +14,4,95,1,3,428496,1,8390.616,19.84257,1,10,1,16.76698,57.87618,0,0,0,74.64317,0,0,0,2,1,6,56.9,20.7,0,68.2,421.66,421.66,0,0,1.791759,6.044199,0,4.564348,6.095492,0,0,0,68.2,9.034988,1.791759,4.312719,1 +14,4,95,1,4,428496,1,8390.616,20.84257,1,10,1,12.79566,61.38038,0,0,0,74.17604,0,0,0,1,1,6,56.9,20.7,0,68.2,421.66,421.66,0,0,1.791759,6.044199,0,4.564348,6.095492,0,0,0,68.2,9.034988,1.791759,4.306441,1 +14,4,95,1,5,428496,1,8390.616,21.84257,1,10,1,33.1741,15.12739,14.15428,0,0,62.45577,0,0,0,4,1,6,56.9,20.7,0,68.2,421.66,421.66,0,0,1.791759,6.044199,0,4.564348,6.095492,0,0,0,68.2,9.034988,1.791759,4.134459,1 +14,4,95,1,1,428497,1,8390.616,37.39631,0,12,1,145.7508,17.16548,0,0,4216.098,4379.014,4,0,0,2,0,6,80.9,3.4,1,53.4,421.66,421.66,0,0,1.791759,6.044199,0,4.564348,6.095492,1,0,0,53.4,9.034988,1.791759,8.384579,1 +14,4,95,1,2,428497,1,8390.616,38.39631,0,12,1,681.4158,34.75856,0,0,1462.546,2178.72,1,0,0,6,81,6,80.9,3.4,1,53.4,421.66,421.66,0,0,1.791759,6.044199,0,4.564348,6.095492,1,0,0,53.4,9.034988,1.791759,7.686493,1 +14,4,95,1,3,428497,1,8390.616,39.39631,0,12,1,112.9837,37.15821,0,0,0,150.1419,0,0,0,2,13,6,80.9,3.4,1,53.4,421.66,421.66,0,0,1.791759,6.044199,0,4.564348,6.095492,1,0,0,53.4,9.034988,1.791759,5.01158,1 +14,4,95,1,4,428497,1,8390.616,40.39631,0,12,1,29.85653,32.08608,0,0,0,61.94261,0,0,0,2,0,6,80.9,3.4,1,53.4,421.66,421.66,0,0,1.791759,6.044199,0,4.564348,6.095492,1,0,0,53.4,9.034988,1.791759,4.126208,1 +14,4,95,1,5,428497,1,8390.616,41.39631,0,12,1,0,39.23567,0,0,0,39.23567,0,0,0,0,0,6,80.9,3.4,1,53.4,421.66,421.66,0,0,1.791759,6.044199,0,4.564348,6.095492,1,0,0,53.4,9.034988,1.791759,3.669586,1 +14,4,95,1,1,428498,1,8390.616,38.91855,1,10,1,62.40041,135.8069,31.15424,0,0,229.3616,0,0,0,8,1,6,87.2,0,0,71.6,421.66,421.66,0,0,1.791759,6.044199,0,4.564348,6.095492,1,0,0,71.6,9.034988,1.791759,5.4353,1 +14,4,95,1,2,428498,1,8390.616,39.91855,1,10,1,99.10924,90.67979,30.94234,0,473.7928,694.5242,1,0,0,4,1,6,87.2,0,0,71.6,421.66,421.66,0,0,1.791759,6.044199,0,4.564348,6.095492,1,0,0,71.6,9.034988,1.791759,6.543227,1 +14,4,95,1,3,428498,1,8390.616,40.91855,1,10,1,18.9166,54.40241,0,0,0,73.319,0,0,0,2,1,6,87.2,0,0,71.6,421.66,421.66,0,0,1.791759,6.044199,0,4.564348,6.095492,1,0,0,71.6,9.034988,1.791759,4.29482,1 +14,4,95,1,4,428498,1,8390.616,41.91855,1,10,1,211.361,182.2606,0,0,203.292,596.9135,1,1,0,19,1,6,87.2,0,0,71.6,421.66,421.66,0,0,1.791759,6.044199,0,4.564348,6.095492,1,0,0,71.6,9.034988,1.791759,6.391772,1 +14,4,95,1,5,428498,1,8390.616,42.91855,1,10,1,98.79688,135.5414,0,0,0,234.3383,0,0,0,8,1,6,87.2,0,0,71.6,421.66,421.66,0,0,1.791759,6.044199,0,4.564348,6.095492,1,0,0,71.6,9.034988,1.791759,5.456766,1 +14,4,95,1,1,428499,1,8390.616,15.34839,1,10,1,63.18692,1.470889,0,0,396.3177,460.9755,1,0,0,5,0,6,67,3.4,0,64.8,421.66,421.66,1,1,1.791759,6.044199,0,4.564348,6.095492,0,0,0,64.8,9.034988,1.791759,6.133345,1 +14,4,95,1,2,428499,1,8390.616,16.34839,1,10,1,51.10173,24.72574,0,0,0,75.82748,0,0,0,5,0,6,67,3.4,0,64.8,421.66,421.66,1,1,1.791759,6.044199,0,4.564348,6.095492,0,0,0,64.8,9.034988,1.791759,4.328461,1 +14,4,95,1,3,428499,1,8390.616,17.34839,1,10,1,27.51505,7.093723,0,0,0,34.60877,0,0,0,5,0,6,67,3.4,0,64.8,421.66,421.66,1,1,1.791759,6.044199,0,4.564348,6.095492,0,0,0,64.8,9.034988,1.791759,3.544107,1 +14,4,95,1,4,428499,1,8390.616,18.34839,1,10,1,102.3459,36.16906,0,0,416.0139,554.5289,1,0,0,12,0,6,67,3.4,0,64.8,421.66,421.66,0,0,1.791759,6.044199,0,4.564348,6.095492,0,0,0,64.8,9.034988,1.791759,6.318119,1 +14,4,95,1,5,428499,1,8390.616,19.34839,1,10,1,63.25195,6.192498,0,0,188.995,258.4395,1,1,0,2,0,6,67,3.4,0,64.8,421.66,421.66,0,0,1.791759,6.044199,0,4.564348,6.095492,0,0,0,64.8,9.034988,1.791759,5.554662,1 +14,4,95,1,1,428500,1,8390.616,7.682409,0,10,1,69.02962,26.15935,0,0,0,95.18896,0,0,0,6,0,6,100,9.967326,0,74.1,421.66,421.66,1,0,1.791759,6.044199,0,4.564348,6.095492,0,0,0,74.1,9.034988,1.791759,4.555864,1 +14,4,95,1,2,428500,1,8390.616,8.682409,0,10,1,158.345,10.22035,0,0,0,168.5654,0,0,0,2,0,6,100,9.967326,0,74.1,421.66,421.66,1,0,1.791759,6.044199,0,4.564348,6.095492,0,0,0,74.1,9.034988,1.791759,5.127324,1 +14,4,95,1,3,428500,1,8390.616,9.682409,0,10,1,60.10318,9.582975,26.6552,0,0,96.34136,0,0,0,6,0,6,100,9.967326,0,74.1,421.66,421.66,1,0,1.791759,6.044199,0,4.564348,6.095492,0,0,0,74.1,9.034988,1.791759,4.567898,1 +14,4,95,1,4,428500,1,8390.616,10.68241,0,10,1,17.25475,10.77549,3.431563,0,0,31.46181,0,0,0,0,0,6,100,9.967326,0,74.1,421.66,421.66,1,0,1.791759,6.044199,0,4.564348,6.095492,0,0,0,74.1,9.034988,1.791759,3.448774,1 +14,4,95,1,5,428500,1,8390.616,11.68241,0,10,1,149.3454,16.76575,0,0,330.683,496.7941,1,0,0,7,0,6,100,9.967326,0,74.1,421.66,421.66,1,0,1.791759,6.044199,0,4.564348,6.095492,0,0,0,74.1,9.034988,1.791759,6.208176,1 +18,4,25,1,1,428559,0,4529.032,15.46886,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,67.6,3.4,0,80.7,750,725,1,0,.6931472,6.586172,0,3.258096,8.006368,0,0,0,80.7,8.418485,.6931472,,0 +18,4,25,1,2,428559,0,4529.032,16.46886,0,12,1,50.81585,9.79021,3.114219,0,0,63.72028,0,0,0,3,0,2,67.6,3.4,0,80.7,750,725,1,0,.6931472,6.586172,0,3.258096,8.006368,0,0,0,80.7,8.418485,.6931472,4.154503,1 +18,4,25,1,3,428559,0,4529.032,17.46886,0,12,1,36.87473,0,0,0,0,36.87473,0,0,0,1,0,2,67.6,3.4,0,80.7,750,725,1,0,.6931472,6.586172,0,3.258096,8.006368,0,0,0,80.7,8.418485,.6931472,3.607527,1 +18,4,25,1,1,428560,0,4529.032,37.48939,1,12,1,26.31579,4.175101,0,0,0,30.49089,0,0,0,2,0,2,55.3,10.3,1,63.6,750,725,0,0,.6931472,6.586172,0,3.258096,8.006368,1,0,0,63.6,8.418485,.6931472,3.417428,1 +18,4,25,1,2,428560,0,4529.032,38.48939,1,12,1,33.56643,3.916084,0,0,0,37.48252,0,0,0,3,0,2,55.3,10.3,1,63.6,750,725,0,0,.6931472,6.586172,0,3.258096,8.006368,1,0,0,63.6,8.418485,.6931472,3.623875,1 +18,4,25,1,3,428560,0,4529.032,39.48939,1,12,1,15.81873,0,0,0,0,15.81873,0,0,0,2,0,2,55.3,10.3,1,63.6,750,725,0,0,.6931472,6.586172,0,3.258096,8.006368,1,0,0,63.6,8.418485,.6931472,2.761194,1 +18,4,25,1,1,428561,0,7910.823,18.73785,0,12,1,27.57916,7.967314,0,0,0,35.54647,0,0,0,2,0,1,70.7,10.3,0,60.2,584.9,584.9,0,0,0,6.371441,0,3.258096,7.757735,1,0,0,60.2,8.976113,0,3.570841,1 +18,4,25,1,2,428561,0,7910.823,19.73785,0,12,1,15.00234,0,0,0,0,15.00234,0,0,0,2,0,1,70.7,10.3,0,60.2,584.9,584.9,0,0,0,6.371441,0,3.258096,7.757735,1,0,0,60.2,8.976113,0,2.708206,1 +18,4,25,1,3,428561,0,7910.823,20.73785,0,12,1,5.588994,1.805675,0,0,0,7.394669,0,0,0,1,0,1,70.7,10.3,0,60.2,584.9,584.9,0,0,0,6.371441,0,3.258096,7.757735,1,0,0,60.2,8.976113,0,2.000759,1 +11,4,0,1,1,428588,0,9498.534,47.22792,0,14,1,94.73953,33.63126,0,0,0,128.3708,0,0,0,9,0,4,93.1,20.7,0,83,0,0,0,0,1.386294,0,0,0,0,1,0,0,83,9.158998,1.386294,4.854923,1 +11,4,0,1,2,428588,0,9498.534,48.22792,0,14,1,211.0455,46.50727,22.3113,0,1017.121,1296.985,2,0,0,11,0,4,93.1,20.7,0,83,0,0,0,0,1.386294,0,0,0,0,1,0,0,83,9.158998,1.386294,7.167798,1 +11,4,0,1,3,428588,0,9498.534,49.22792,0,14,1,284.4368,69.69045,30.09458,0,4380.271,4764.493,4,0,0,6,18,4,93.1,20.7,0,83,0,0,0,0,1.386294,0,0,0,0,1,0,0,83,9.158998,1.386294,8.468946,1 +11,4,0,1,1,428589,0,9498.534,8.85421,0,16,1,30.28601,5.617978,0,0,0,35.90398,0,0,0,3,0,4,88.3,9.967326,0,92.6,0,0,1,0,1.386294,0,0,0,0,0,0,0,92.6,9.158998,1.386294,3.580848,1 +11,4,0,1,2,428589,0,9498.534,9.85421,0,16,1,11.25176,0,0,0,0,11.25176,0,0,0,2,0,4,88.3,9.967326,0,92.6,0,0,1,0,1.386294,0,0,0,0,0,0,0,92.6,9.158998,1.386294,2.420524,1 +11,4,0,1,3,428589,0,9498.534,10.85421,0,16,1,17.19691,0,23.21582,0,0,40.41273,0,0,0,2,0,4,88.3,9.967326,0,92.6,0,0,1,0,1.386294,0,0,0,0,0,0,0,92.6,9.158998,1.386294,3.699145,1 +11,4,0,1,1,428590,0,9498.534,33.45106,1,16,1,11.23596,0,0,0,0,11.23596,0,0,0,1,0,4,94.1,10.3,0,90.9,0,0,0,0,1.386294,0,0,0,0,0,0,0,90.9,9.158998,1.386294,2.419119,1 +11,4,0,1,2,428590,0,9498.534,34.45106,1,16,1,63.65213,2.344116,0,0,0,65.99625,0,0,0,2,0,4,94.1,10.3,0,90.9,0,0,0,0,1.386294,0,0,0,0,0,0,0,90.9,9.158998,1.386294,4.189598,1 +11,4,0,1,3,428590,0,9498.534,35.45106,1,16,1,33.10404,5.717971,18.05675,0,0,56.87876,0,0,0,3,0,4,94.1,10.3,0,90.9,0,0,0,0,1.386294,0,0,0,0,0,0,0,90.9,9.158998,1.386294,4.040922,1 +11,4,0,1,1,428591,0,9498.534,10.22587,0,16,1,32.68641,0,0,0,0,32.68641,0,0,0,4,0,4,95,9.967326,0,92.6,0,0,1,0,1.386294,0,0,0,0,0,0,0,92.6,9.158998,1.386294,3.486959,1 +11,4,0,1,2,428591,0,9498.534,11.22587,0,16,1,43.02391,0,0,0,0,43.02391,0,0,0,3,0,4,95,9.967326,0,92.6,0,0,1,0,1.386294,0,0,0,0,0,0,0,92.6,9.158998,1.386294,3.761756,1 +11,4,0,1,3,428591,0,9498.534,12.22587,0,16,1,17.19691,0,0,0,0,17.19691,0,0,0,2,0,4,95,9.967326,0,92.6,0,0,1,0,1.386294,0,0,0,0,0,0,0,92.6,9.158998,1.386294,2.844729,1 +15,4,95,0,1,428599,0,11089.74,12.42437,1,12,1,14.04494,0,0,0,0,14.04494,0,0,0,2,0,6,80,9.967326,0,88.9,1000,1000,1,1,1.791759,6.907755,0,4.564348,6.959049,1,0,0,88.9,9.313866,1.791759,2.642262,1 +15,4,95,0,2,428599,0,11089.74,13.42437,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,80,9.967326,0,88.9,1000,1000,1,1,1.791759,6.907755,0,4.564348,6.959049,1,0,0,88.9,9.313866,1.791759,,0 +15,4,95,0,3,428599,0,11089.74,14.42437,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,80,9.967326,0,88.9,1000,1000,1,1,1.791759,6.907755,0,4.564348,6.959049,1,0,0,88.9,9.313866,1.791759,,0 +15,4,95,0,1,428600,0,11089.74,16.59138,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,75.5,3.4,0,83,1000,1000,1,0,1.791759,6.907755,0,4.564348,6.959049,1,0,0,83,9.313866,1.791759,,0 +15,4,95,0,2,428600,0,11089.74,17.59138,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,75.5,3.4,0,83,1000,1000,1,0,1.791759,6.907755,0,4.564348,6.959049,1,0,0,83,9.313866,1.791759,,0 +15,4,95,0,3,428600,0,11089.74,18.59138,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,75.5,3.4,0,83,1000,1000,0,0,1.791759,6.907755,0,4.564348,6.959049,1,0,0,83,9.313866,1.791759,,0 +15,4,95,0,1,428601,0,11089.74,15.19507,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,62.2,6.9,0,73.9,1000,1000,1,1,1.791759,6.907755,0,4.564348,6.959049,1,0,0,73.9,9.313866,1.791759,,0 +15,4,95,0,2,428601,0,11089.74,16.19507,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,62.2,6.9,0,73.9,1000,1000,1,1,1.791759,6.907755,0,4.564348,6.959049,1,0,0,73.9,9.313866,1.791759,,0 +15,4,95,0,3,428601,0,11089.74,17.19507,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,62.2,6.9,0,73.9,1000,1000,1,1,1.791759,6.907755,0,4.564348,6.959049,1,0,0,73.9,9.313866,1.791759,,0 +15,4,95,0,1,428602,0,11089.74,41.1718,0,12,1,51.96629,0,0,0,0,51.96629,0,0,0,3,0,6,87.8,13.8,0,89.8,1000,1000,0,0,1.791759,6.907755,0,4.564348,6.959049,1,0,0,89.8,9.313866,1.791759,3.950595,1 +15,4,95,0,2,428602,0,11089.74,42.1718,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,87.8,13.8,0,89.8,1000,1000,0,0,1.791759,6.907755,0,4.564348,6.959049,1,0,0,89.8,9.313866,1.791759,,0 +15,4,95,0,3,428602,0,11089.74,43.1718,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,87.8,13.8,0,89.8,1000,1000,0,0,1.791759,6.907755,0,4.564348,6.959049,1,0,0,89.8,9.313866,1.791759,,0 +15,4,95,0,1,428604,0,11089.74,41.51951,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,88.3,0,0,84.1,1000,1000,0,0,1.791759,6.907755,0,4.564348,6.959049,1,0,0,84.1,9.313866,1.791759,,0 +15,4,95,0,2,428604,0,11089.74,42.51951,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,88.3,0,0,84.1,1000,1000,0,0,1.791759,6.907755,0,4.564348,6.959049,1,0,0,84.1,9.313866,1.791759,,0 +15,4,95,0,3,428604,0,11089.74,43.51951,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,88.3,0,0,84.1,1000,1000,0,0,1.791759,6.907755,0,4.564348,6.959049,1,0,0,84.1,9.313866,1.791759,,0 +13,4,0,1,1,428635,0,5923.754,3.19781,1,12,1,6.128703,0,0,0,0,6.128703,0,0,0,1,0,4,83.39137,9.967326,0,92.6,450,0,1,1,1.386294,0,1,4.564348,6.160541,0,0,0,92.6,8.686894,1.386294,1.812983,1 +13,4,0,1,2,428635,0,5923.754,4.19781,1,12,1,7.032349,0,0,0,0,7.032349,0,0,0,1,0,4,83.39137,9.967326,0,92.6,450,0,1,1,1.386294,0,1,4.564348,6.160541,0,0,0,92.6,8.686894,1.386294,1.950521,1 +13,4,0,1,3,428635,0,5923.754,5.19781,1,12,1,15.47721,0,0,0,0,15.47721,0,0,0,3,0,4,83.39137,9.967326,0,92.6,450,0,1,1,1.386294,0,1,4.564348,6.160541,0,0,0,92.6,8.686894,1.386294,2.739369,1 +13,4,0,1,1,428636,0,5923.754,1.826146,1,12,1,137.1757,0,0,0,0,137.1757,0,0,0,5,0,4,83.39137,9.967326,0,77.8,450,0,1,1,1.386294,0,1,4.564348,6.160541,0,0,0,77.8,8.686894,1.386294,4.921263,1 +13,4,0,1,2,428636,0,5923.754,2.826146,1,12,1,92.59259,8.907641,20.62822,0,0,122.1285,0,0,0,5,0,4,83.39137,9.967326,0,77.8,450,0,1,1,1.386294,0,1,4.564348,6.160541,0,0,0,77.8,8.686894,1.386294,4.805073,1 +13,4,0,1,3,428636,0,5923.754,3.826146,1,12,1,20.20636,.8598452,9.535684,0,0,30.60189,0,0,0,2,0,4,83.39137,9.967326,0,77.8,450,0,1,1,1.386294,0,1,4.564348,6.160541,0,0,0,77.8,8.686894,1.386294,3.421062,1 +13,4,0,1,1,428637,0,5923.754,27.04175,0,12,1,28.08989,0,0,0,0,28.08989,0,0,0,2,0,4,80.9,0,0,76.1,450,0,0,0,1.386294,0,1,4.564348,6.160541,0,0,0,76.1,8.686894,1.386294,3.33541,1 +13,4,0,1,2,428637,0,5923.754,28.04175,0,12,1,50.797,0,0,0,0,50.797,0,0,0,3,0,4,80.9,0,0,76.1,450,0,0,0,1.386294,0,1,4.564348,6.160541,0,0,0,76.1,8.686894,1.386294,3.927837,1 +13,4,0,1,3,428637,0,5923.754,29.04175,0,12,1,10.74806,0,0,0,0,10.74806,0,0,0,1,0,4,80.9,0,0,76.1,450,0,0,0,1.386294,0,1,4.564348,6.160541,0,0,0,76.1,8.686894,1.386294,2.374726,1 +13,4,0,1,1,428638,0,5923.754,25.16906,1,12,1,10.2145,0,0,0,0,10.2145,0,0,0,1,0,4,77.1,3.4,0,90.9,450,0,0,0,1.386294,0,1,4.564348,6.160541,0,0,0,90.9,8.686894,1.386294,2.323809,1 +13,4,0,1,2,428638,0,5923.754,26.16906,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,77.1,3.4,0,90.9,450,0,0,0,1.386294,0,1,4.564348,6.160541,0,0,0,90.9,8.686894,1.386294,,0 +13,4,0,1,3,428638,0,5923.754,27.16906,1,12,1,45.89424,0,0,0,0,45.89424,0,0,0,3,0,4,77.1,3.4,0,90.9,450,0,0,0,1.386294,0,1,4.564348,6.160541,0,0,0,90.9,8.686894,1.386294,3.826339,1 +17,4,25,0,1,428683,0,8848.094,32.49281,0,16,1,0,0,0,0,0,0,0,0,0,0,0,3,77.1,0,0,83.3,663.25,663.25,0,0,1.098612,6.497152,0,3.258096,7.883446,0,0,0,83.3,9.08807,1.098612,,0 +17,4,25,0,2,428683,0,8848.094,33.49281,0,16,1,0,0,0,0,0,0,0,0,0,0,0,3,77.1,0,0,83.3,663.25,663.25,0,0,1.098612,6.497152,0,3.258096,7.883446,0,0,0,83.3,9.08807,1.098612,,0 +17,4,25,0,3,428683,0,8848.094,34.49281,0,16,1,19.34652,13.19862,0,0,227.0937,259.6389,1,0,0,3,0,3,77.1,0,0,83.3,663.25,663.25,0,0,1.098612,6.497152,0,3.258096,7.883446,0,0,0,83.3,9.08807,1.098612,5.559292,1 +17,4,25,0,1,428684,0,8848.094,28.77481,1,16,1,0,0,0,0,0,0,0,0,0,0,0,3,86.2,6.9,0,82.1,663.25,663.25,0,0,1.098612,6.497152,0,3.258096,7.883446,1,0,0,82.1,9.08807,1.098612,,0 +17,4,25,0,2,428684,0,8848.094,29.77481,1,16,1,55.90717,0,0,0,0,55.90717,0,0,0,2,0,3,86.2,6.9,0,82.1,663.25,663.25,0,0,1.098612,6.497152,0,3.258096,7.883446,1,0,0,82.1,9.08807,1.098612,4.023693,1 +17,4,25,0,3,428684,0,8848.094,30.77481,1,16,1,0,0,0,0,0,0,0,0,0,0,0,3,86.2,6.9,0,82.1,663.25,663.25,0,0,1.098612,6.497152,0,3.258096,7.883446,1,0,0,82.1,9.08807,1.098612,,0 +17,4,25,0,1,428685,0,8848.094,3.84668,1,16,1,11.23596,2.477017,0,0,0,13.71297,0,0,0,2,0,3,83.39137,9.967326,0,70.4,663.25,663.25,1,1,1.098612,6.497152,0,3.258096,7.883446,0,0,0,70.4,9.08807,1.098612,2.618342,1 +17,4,25,0,2,428685,0,8848.094,4.84668,1,16,1,59.77496,1.40647,0,0,0,61.18143,0,0,0,3,0,3,83.39137,9.967326,0,70.4,663.25,663.25,1,1,1.098612,6.497152,0,3.258096,7.883446,0,0,0,70.4,9.08807,1.098612,4.113844,1 +17,4,25,0,3,428685,0,8848.094,5.84668,1,16,1,14.18745,0,0,0,0,14.18745,0,0,0,2,0,3,83.39137,9.967326,0,70.4,663.25,663.25,1,1,1.098612,6.497152,0,3.258096,7.883446,0,0,0,70.4,9.08807,1.098612,2.652358,1 +13,4,0,1,1,428695,0,19.35484,22.55168,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,84,3.4,0,94.3,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,94.3,3.013319,0,,0 +13,4,0,1,2,428695,0,19.35484,23.55168,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,84,3.4,0,94.3,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,94.3,3.013319,0,,0 +13,4,0,1,3,428695,0,19.35484,24.55168,1,12,1,61.33507,0,24.27395,0,335.4313,421.0403,1,0,0,1,2,1,84,3.4,0,94.3,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,94.3,3.013319,0,6.042728,1 +10,4,50,1,1,428728,0,6175.953,.8459959,0,14,1,14.81103,3.983657,0,0,0,18.79469,0,0,0,2,0,3,83.39137,9.967326,0,92.6,1000,1000,1,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,92.6,8.72858,1.098612,2.933574,1 +10,4,50,1,2,428728,0,6175.953,1.845996,0,14,1,5.625879,3.891233,0,0,0,9.517112,0,0,0,1,0,4,83.39137,9.967326,0,92.6,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,92.6,8.72858,1.386294,2.253091,1 +10,4,50,1,3,428728,0,6175.953,2.845996,0,14,1,5.159071,0,0,0,0,5.159071,0,0,0,1,0,4,83.39137,9.967326,0,92.6,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,92.6,8.72858,1.386294,1.640757,1 +10,4,50,1,1,428729,0,6175.953,25.7002,1,14,1,79.10112,12.38509,0,0,17642.7,17734.18,1,0,0,7,0,3,80.3,0,0,64.8,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,64.8,8.72858,1.098612,9.783249,1 +10,4,50,1,2,428729,0,6175.953,26.7002,1,14,1,15.00234,4.289733,29.6015,0,0,48.89358,0,0,0,1,1,4,80.3,0,0,64.8,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,64.8,8.72858,1.386294,3.889646,1 +10,4,50,1,3,428729,0,6175.953,27.7002,1,14,1,0,0,0,0,0,0,0,0,0,0,0,4,80.3,0,0,64.8,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,64.8,8.72858,1.386294,,0 +10,4,50,1,1,428730,0,6175.953,27.07461,0,16,1,63.42186,12.17569,7.150153,0,415.0511,497.7988,1,0,0,7,0,3,88.8,3.4,0,83,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,83,8.72858,1.098612,6.210196,1 +10,4,50,1,2,428730,0,6175.953,28.07461,0,16,1,73.48804,3.131739,34.2241,0,0,110.8439,0,0,0,3,1,4,88.8,3.4,0,83,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,83,8.72858,1.386294,4.708123,1 +10,4,50,1,3,428730,0,6175.953,29.07461,0,16,1,29.87962,1.096303,0,0,0,30.97592,0,0,0,1,0,4,88.8,3.4,0,83,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,83,8.72858,1.386294,3.43321,1 +6,4,25,1,1,428739,0,3407.038,26.29158,1,12,1,29.11134,0,27.57916,0,0,56.6905,0,0,0,2,0,3,62.2,24.1,1,51.1,700,700,0,0,1.098612,6.55108,0,3.258096,7.937375,0,1,0,51.1,8.133892,1.098612,4.037607,1 +6,4,25,1,2,428739,0,3407.038,27.29158,1,12,1,7.969995,6.549461,0,0,0,14.51946,0,0,0,1,0,3,62.2,24.1,1,51.1,700,700,0,0,1.098612,6.55108,0,3.258096,7.937375,0,1,0,51.1,8.133892,1.098612,2.675489,1 +6,4,25,1,3,428739,0,3407.038,28.29158,1,12,1,122.313,0,28.37489,0,0,150.6879,0,0,0,2,15,3,62.2,24.1,1,51.1,700,700,0,0,1.098612,6.55108,0,3.258096,7.937375,0,1,0,51.1,8.133892,1.098612,5.015211,1 +6,4,25,1,1,428740,0,3407.038,26.3217,0,7,1,181.9408,0,27.57916,0,0,209.5199,0,0,0,8,0,3,47.3,17.2,0,79.5,700,700,0,0,1.098612,6.55108,0,3.258096,7.937375,0,1,0,79.5,8.133892,1.098612,5.344819,1 +6,4,25,1,2,428740,0,3407.038,27.3217,0,7,1,104.4679,15.63526,0,0,0,120.1031,0,0,0,3,0,3,47.3,17.2,0,79.5,700,700,0,0,1.098612,6.55108,0,3.258096,7.937375,0,1,0,79.5,8.133892,1.098612,4.788351,1 +6,4,25,1,3,428740,0,3407.038,28.3217,0,7,1,265.4342,13.12554,0,51.59071,0,278.5598,0,0,4,6,6,3,47.3,17.2,0,79.5,700,700,0,0,1.098612,6.55108,0,3.258096,7.937375,0,1,0,79.5,8.133892,1.098612,5.629632,1 +6,4,25,1,1,428741,0,3407.038,3.474333,1,12,1,30.38815,3.166497,0,0,0,33.55465,0,0,0,2,0,3,83.39137,9.967326,0,88.9,700,700,1,1,1.098612,6.55108,0,3.258096,7.937375,0,0,0,88.9,8.133892,1.098612,3.513175,1 +6,4,25,1,2,428741,0,3407.038,4.474333,1,12,1,8.438819,0,0,0,0,8.438819,0,0,0,1,0,3,83.39137,9.967326,0,88.9,700,700,1,1,1.098612,6.55108,0,3.258096,7.937375,0,0,0,88.9,8.133892,1.098612,2.132842,1 +6,4,25,1,3,428741,0,3407.038,5.474333,1,12,1,26.87016,2.570937,0,0,0,29.4411,0,0,0,3,0,3,83.39137,9.967326,0,88.9,700,700,1,1,1.098612,6.55108,0,3.258096,7.937375,0,0,0,88.9,8.133892,1.098612,3.382392,1 +10,4,50,1,1,428758,0,3773.021,10.99521,1,11,1,18.34514,0,0,0,0,18.34514,0,0,0,1,0,4,86.7,9.967326,0,66.7,1000,1000,1,1,1.386294,6.907755,0,3.931826,7.600903,0,0,0,66.7,8.235896,1.386294,2.909365,1 +10,4,50,1,2,428758,0,3773.021,11.99521,1,11,1,0,0,0,0,0,0,0,0,0,0,0,4,86.7,9.967326,0,66.7,1000,1000,1,1,1.386294,6.907755,0,3.931826,7.600903,0,0,0,66.7,8.235896,1.386294,,0 +10,4,50,1,3,428758,0,3773.021,12.99521,1,11,1,0,0,0,0,0,0,0,0,0,0,0,4,86.7,9.967326,0,66.7,1000,1000,1,1,1.386294,6.907755,0,3.931826,7.600903,0,0,0,66.7,8.235896,1.386294,,0 +10,4,50,1,1,428759,0,3773.021,36.56126,1,11,1,10.12146,0,0,0,0,10.12146,0,0,0,1,0,4,87.2,10.3,1,76.1,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,76.1,8.235896,1.386294,2.314658,1 +10,4,50,1,2,428759,0,3773.021,37.56126,1,11,1,28.90443,0,0,0,0,28.90443,0,0,0,0,10,4,87.2,10.3,1,76.1,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,76.1,8.235896,1.386294,3.363995,1 +10,4,50,1,3,428759,0,3773.021,38.56126,1,11,1,76.95596,0,0,0,0,76.95596,0,0,0,0,22,4,87.2,10.3,1,76.1,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,76.1,8.235896,1.386294,4.343234,1 +10,4,50,1,1,428760,0,3773.021,13.62628,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,81.7,9.967326,0,81.5,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,1,0,0,81.5,8.235896,1.386294,,0 +10,4,50,1,2,428760,0,3773.021,14.62628,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,81.7,9.967326,0,81.5,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,1,0,0,81.5,8.235896,1.386294,,0 +10,4,50,1,3,428760,0,3773.021,15.62628,0,11,1,118.2086,0,0,0,0,118.2086,0,0,0,2,0,4,81.7,9.967326,0,81.5,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,1,0,0,81.5,8.235896,1.386294,4.772451,1 +10,4,50,1,1,428761,0,3773.021,15.72348,1,11,1,0,0,0,0,0,0,0,0,0,0,0,4,80.9,3.4,0,75,1000,1000,1,1,1.386294,6.907755,0,3.931826,7.600903,0,0,0,75,8.235896,1.386294,,0 +10,4,50,1,2,428761,0,3773.021,16.72348,1,11,1,8.391608,4.662004,0,0,0,13.05361,0,0,0,1,0,4,80.9,3.4,0,75,1000,1000,1,1,1.386294,6.907755,0,3.931826,7.600903,0,0,0,75,8.235896,1.386294,2.569065,1 +10,4,50,1,3,428761,0,3773.021,17.72348,1,11,1,16.24626,0,25.94699,0,0,42.19324,0,0,0,2,0,4,80.9,3.4,0,75,1000,1000,1,1,1.386294,6.907755,0,3.931826,7.600903,0,0,0,75,8.235896,1.386294,3.74226,1 +11,4,0,0,1,428773,0,4588.856,18.51061,1,11,1,25.75992,0,0,0,0,25.75992,0,0,0,4,0,3,81.9,0,0,83,0,0,0,0,1.098612,0,0,0,0,0,0,0,83,8.431604,1.098612,3.24882,1 +11,4,0,0,2,428773,0,4588.856,19.51061,1,11,1,86.52936,18.98201,0,0,589.9195,695.4308,1,0,0,5,0,3,81.9,0,0,83,0,0,0,0,1.098612,0,0,0,0,0,0,0,83,8.431604,1.098612,6.544531,1 +11,4,0,0,3,428773,0,4588.856,20.51061,1,11,1,34.02687,34.91547,22.10663,0,0,91.04898,0,0,0,1,1,4,81.9,0,0,83,0,0,0,0,1.386294,0,0,0,0,0,0,0,83,8.431604,1.386294,4.511398,1 +11,4,0,0,1,428774,0,4588.856,47.75907,0,12,1,407.5528,32.97269,0,0,926.2391,1366.765,1,0,0,21,6,3,83.5,13.8,1,67,0,0,0,0,1.098612,0,0,0,0,0,0,0,67,8.431604,1.098612,7.220201,1 +11,4,0,0,2,428774,0,4588.856,48.75907,0,12,1,317.2349,24.10038,0,0,0,341.3352,0,0,0,23,15,3,83.5,13.8,1,67,0,0,0,0,1.098612,0,0,0,0,0,0,0,67,8.431604,1.098612,5.832865,1 +11,4,0,0,3,428774,0,4588.856,49.75907,0,12,1,204.9198,60.01734,45.51365,0,0,310.4508,0,0,0,15,16,4,83.5,13.8,1,67,0,0,0,0,1.386294,0,0,0,0,0,0,0,67,8.431604,1.386294,5.738026,1 +11,4,0,0,1,428775,0,4588.856,16.34771,0,12,1,12.94693,0,0,0,0,12.94693,0,0,0,2,0,3,63.8,3.4,0,80.7,0,0,1,0,1.098612,0,0,0,0,0,0,0,80.7,8.431604,1.098612,2.560859,1 +11,4,0,0,2,428775,0,4588.856,17.34771,0,12,1,35.15625,0,0,0,0,35.15625,0,0,0,2,0,3,63.8,3.4,0,80.7,0,0,1,0,1.098612,0,0,0,0,0,0,0,80.7,8.431604,1.098612,3.559802,1 +11,4,0,0,3,428775,0,4588.856,18.34771,0,12,1,45.53533,1.30039,0,0,0,46.83572,0,0,0,2,0,4,63.8,3.4,0,80.7,0,0,0,0,1.386294,0,0,0,0,0,0,0,80.7,8.431604,1.386294,3.846646,1 +14,4,95,1,1,428779,0,2247.548,29.27036,0,14,1,0,0,0,0,0,0,0,0,0,0,0,1,49.5,0,0,69.3,350.75,385.84,0,0,0,5.955423,0,4.564348,5.911367,0,0,0,69.3,7.71804,0,,0 +14,4,95,1,2,428779,0,2247.548,30.27036,0,14,1,0,0,0,0,0,0,0,0,0,0,0,1,49.5,0,0,69.3,350.75,385.84,0,0,0,5.955423,0,4.564348,5.911367,0,0,0,69.3,7.71804,0,,0 +14,4,95,1,3,428779,0,2247.548,31.27036,0,14,1,0,0,0,0,0,0,0,0,0,0,0,1,49.5,0,0,69.3,350.75,385.84,0,0,0,5.955423,0,4.564348,5.911367,0,0,0,69.3,7.71804,0,,0 +15,4,95,1,1,428794,0,11196.48,42.99521,0,12,1,9.193054,0,0,0,0,9.193054,0,0,0,2,0,3,65.4,17.2,0,85.2,1000,975,0,0,1.098612,6.882438,0,4.564348,6.959049,1,0,0,85.2,9.323444,1.098612,2.218448,1 +15,4,95,1,2,428794,0,11196.48,43.99521,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,65.4,17.2,0,85.2,1000,975,0,0,1.098612,6.882438,0,4.564348,6.959049,1,0,0,85.2,9.323444,1.098612,,0 +15,4,95,1,3,428794,0,11196.48,44.99521,0,12,1,123.4953,5.528805,37.40327,232.1582,656.0146,822.442,1,0,15,4,5,3,65.4,17.2,0,85.2,1000,975,0,0,1.098612,6.882438,0,4.564348,6.959049,1,0,0,85.2,9.323444,1.098612,6.712278,1 +15,4,95,1,4,428794,0,11196.48,45.99521,0,12,1,0,1.256301,0,0,0,1.256301,0,0,0,0,0,3,65.4,17.2,0,85.2,1000,975,0,0,1.098612,6.882438,0,4.564348,6.959049,1,0,0,85.2,9.323444,1.098612,.2281716,1 +15,4,95,1,5,428794,0,11196.48,46.99521,0,12,1,475.7714,27.87686,22.64685,0,0,526.2951,0,0,0,5,5,3,65.4,17.2,0,85.2,1000,975,0,0,1.098612,6.882438,0,4.564348,6.959049,1,0,0,85.2,9.323444,1.098612,6.265862,1 +15,4,95,1,1,428795,0,11196.48,41.14442,1,12,1,78.58529,27.43616,37.79367,0,0,143.8151,0,0,0,5,2,3,42,34.5,1,46.6,1000,975,0,0,1.098612,6.882438,0,4.564348,6.959049,1,0,0,46.6,9.323444,1.098612,4.968529,1 +15,4,95,1,2,428795,0,11196.48,42.14442,1,12,1,73.83966,12.48476,0,0,0,86.32442,0,0,0,4,0,3,42,34.5,1,46.6,1000,975,0,0,1.098612,6.882438,0,4.564348,6.959049,1,0,0,46.6,9.323444,1.098612,4.458113,1 +15,4,95,1,3,428795,0,11196.48,43.14442,1,12,1,64.31642,17.2485,42.56234,404.1273,0,124.1273,0,0,25,5,1,3,42,34.5,1,46.6,1000,975,0,0,1.098612,6.882438,0,4.564348,6.959049,1,0,0,46.6,9.323444,1.098612,4.821307,1 +15,4,95,1,4,428795,0,11196.48,44.14442,1,12,1,104.3622,11.34548,.829779,46.52966,0,116.5374,0,0,3,4,0,3,42,34.5,1,46.6,1000,975,0,0,1.098612,6.882438,0,4.564348,6.959049,1,0,0,46.6,9.323444,1.098612,4.758213,1 +15,4,95,1,5,428795,0,11196.48,45.14442,1,12,1,399.1118,37.661,38.21656,226.4685,0,474.9894,0,0,16,11,1,3,42,34.5,1,46.6,1000,975,0,0,1.098612,6.882438,0,4.564348,6.959049,1,0,0,46.6,9.323444,1.098612,6.163292,1 +15,4,95,1,1,428797,0,11196.48,6.428473,1,12,1,7.660879,10.11236,0,0,0,17.77324,0,0,0,1,0,3,61.7,9.967326,0,92.6,1000,975,1,1,1.098612,6.882438,0,4.564348,6.959049,1,0,0,92.6,9.323444,1.098612,2.877694,1 +15,4,95,1,2,428797,0,11196.48,7.428473,1,12,1,17.34646,16.80263,0,0,0,34.14909,0,0,0,3,0,3,61.7,9.967326,0,92.6,1000,975,1,1,1.098612,6.882438,0,4.564348,6.959049,1,0,0,92.6,9.323444,1.098612,3.530736,1 +15,4,95,1,3,428797,0,11196.48,8.428473,1,12,1,43.42218,12.7773,0,60.18917,0,56.19949,0,0,4,4,1,3,61.7,9.967326,0,92.6,1000,975,1,1,1.098612,6.882438,0,4.564348,6.959049,1,0,0,92.6,9.323444,1.098612,4.028908,1 +15,4,95,1,4,428797,0,11196.48,9.428473,1,12,1,27.9178,23.07483,0,155.0989,0,50.99263,0,0,10,4,0,3,61.7,9.967326,0,92.6,1000,975,1,1,1.098612,6.882438,0,4.564348,6.959049,1,0,0,92.6,9.323444,1.098612,3.931681,1 +15,4,95,1,5,428797,0,11196.48,10.42847,1,12,1,14.862,10.35386,21.23142,297.2399,0,46.44728,0,0,21,1,1,3,61.7,9.967326,0,92.6,1000,975,1,1,1.098612,6.882438,0,4.564348,6.959049,1,0,0,92.6,9.323444,1.098612,3.838318,1 +18,4,25,1,1,428841,0,10476.25,10.423,0,18,1,44.51314,4.951056,0,0,0,49.4642,0,0,0,2,0,4,76.7,9.967326,1,63,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,63,9.256961,1.386294,3.901249,1 +18,4,25,1,2,428841,0,10476.25,11.423,0,18,1,34.68277,16.1553,0,0,0,50.83807,0,0,0,5,0,4,76.7,9.967326,1,63,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,63,9.256961,1.386294,3.928645,1 +18,4,25,1,3,428841,0,10476.25,12.423,0,18,1,114.4777,15.29259,0,0,0,129.7703,0,0,0,3,0,4,76.7,9.967326,1,63,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,63,9.256961,1.386294,4.865766,1 +18,4,25,1,4,428841,0,10476.25,13.423,0,18,1,5.907838,7.215439,0,0,0,13.12328,0,0,0,1,0,4,76.7,9.967326,1,63,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,63,9.256961,1.386294,2.574388,1 +18,4,25,1,5,428841,0,10476.25,14.423,0,18,1,0,2.729875,0,0,0,2.729875,0,0,0,0,0,4,76.7,9.967326,1,63,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,63,9.256961,1.386294,1.004256,1 +18,4,25,1,1,428842,0,10476.25,36.78576,0,12,1,9.27357,2.905719,0,0,309.3302,321.5095,1,0,0,2,0,4,94.7,0,0,71.6,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,71.6,9.256961,1.386294,5.773027,1 +18,4,25,1,2,428842,0,10476.25,37.78576,0,12,1,11.07955,0,0,0,0,11.07955,0,0,0,1,0,4,94.7,0,0,71.6,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,71.6,9.256961,1.386294,2.405101,1 +18,4,25,1,3,428842,0,10476.25,38.78576,0,12,1,15.17122,0,0,0,0,15.17122,0,0,0,1,0,4,94.7,0,0,71.6,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,71.6,9.256961,1.386294,2.7194,1 +18,4,25,1,4,428842,0,10476.25,39.78576,0,12,1,19.49586,0,0,0,0,19.49586,0,0,0,1,0,4,94.7,0,0,71.6,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,71.6,9.256961,1.386294,2.970202,1 +18,4,25,1,5,428842,0,10476.25,40.78576,0,12,1,42.21825,0,0,0,0,42.21825,0,0,0,2,0,4,94.7,0,0,71.6,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,71.6,9.256961,1.386294,3.742852,1 +18,4,25,1,1,428843,0,10476.25,33.79877,1,18,1,10.30397,4.229778,0,0,0,14.53375,0,0,0,2,0,4,87.4,17.2,0,86.4,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,86.4,9.256961,1.386294,2.676473,1 +18,4,25,1,2,428843,0,10476.25,34.79877,1,18,1,9.469697,2.064394,0,0,0,11.53409,0,0,0,1,0,4,87.4,17.2,0,86.4,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,86.4,9.256961,1.386294,2.445307,1 +18,4,25,1,3,428843,0,10476.25,35.79877,1,18,1,0,0,0,0,0,0,0,0,0,0,0,4,87.4,17.2,0,86.4,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,86.4,9.256961,1.386294,,0 +18,4,25,1,4,428843,0,10476.25,36.79877,1,18,1,5.907838,1.847184,14.57267,0,0,22.32769,0,0,0,1,0,4,87.4,17.2,0,86.4,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,86.4,9.256961,1.386294,3.105828,1 +18,4,25,1,5,428843,0,10476.25,37.79877,1,18,1,8.944544,0,13.95349,0,0,22.89803,0,0,0,1,0,4,87.4,17.2,0,86.4,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,86.4,9.256961,1.386294,3.131051,1 +18,4,25,1,1,428844,0,10476.25,8.741958,1,18,1,10.30397,0,0,0,0,10.30397,0,0,0,2,0,4,91.7,9.967326,0,96.3,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,0,0,0,96.3,9.256961,1.386294,2.332529,1 +18,4,25,1,2,428844,0,10476.25,9.741958,1,18,1,7.575758,1.794508,0,0,0,9.370265,0,0,0,1,0,4,91.7,9.967326,0,96.3,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,0,0,0,96.3,9.256961,1.386294,2.237541,1 +18,4,25,1,3,428844,0,10476.25,10.74196,1,18,1,13.87083,2.436064,32.94321,0,0,49.25011,0,0,0,2,0,4,91.7,9.967326,0,96.3,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,0,0,0,96.3,9.256961,1.386294,3.896912,1 +18,4,25,1,4,428844,0,10476.25,11.74196,1,18,1,11.81568,11.89839,0,0,0,23.71406,0,0,0,2,0,4,91.7,9.967326,0,96.3,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,0,0,0,96.3,9.256961,1.386294,3.166068,1 +18,4,25,1,5,428844,0,10476.25,12.74196,1,18,1,32.11091,0,0,0,0,32.11091,0,0,0,2,0,4,91.7,9.967326,0,96.3,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,0,0,0,96.3,9.256961,1.386294,3.469196,1 +5,4,25,0,1,428852,0,12791.2,33.89733,0,12,1,15.32176,5.020429,0,0,0,20.34219,0,0,0,1,0,4,69.7,13.8,0,77.3,750,937.08,0,0,1.386294,6.842769,0,3.258096,8.006368,1,0,0,77.3,9.456591,1.386294,3.012697,1 +5,4,25,0,2,428852,0,12791.2,34.89733,0,12,1,51.10173,16.71355,34.59916,0,0,102.4144,0,0,0,2,1,4,69.7,13.8,0,77.3,750,937.08,0,0,1.386294,6.842769,0,3.258096,8.006368,1,0,0,77.3,9.456591,1.386294,4.629028,1 +5,4,25,0,3,428852,0,12791.2,35.89733,0,12,1,12.89768,3.869303,0,0,0,16.76698,0,0,0,2,0,4,69.7,13.8,0,77.3,750,937.08,0,0,1.386294,6.842769,0,3.258096,8.006368,1,0,0,77.3,9.456591,1.386294,2.819412,1 +5,4,25,0,1,428853,0,12791.2,5.21013,0,16,1,48.26353,0,0,0,0,48.26353,0,0,0,2,0,4,96.7,9.967326,0,66.7,750,937.08,1,0,1.386294,6.842769,0,3.258096,8.006368,0,0,0,66.7,9.456591,1.386294,3.876676,1 +5,4,25,0,2,428853,0,12791.2,6.21013,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,96.7,9.967326,0,66.7,750,937.08,1,0,1.386294,6.842769,0,3.258096,8.006368,0,0,0,66.7,9.456591,1.386294,,0 +5,4,25,0,3,428853,0,12791.2,7.21013,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,96.7,9.967326,0,66.7,750,937.08,1,0,1.386294,6.842769,0,3.258096,8.006368,0,0,0,66.7,9.456591,1.386294,,0 +5,4,25,0,1,428854,0,12791.2,7.268994,1,16,1,0,0,0,0,0,0,0,0,0,0,0,4,85,9.967326,0,100,750,937.08,1,1,1.386294,6.842769,0,3.258096,8.006368,0,0,0,100,9.456591,1.386294,,0 +5,4,25,0,2,428854,0,12791.2,8.268993,1,16,1,242.8739,0,0,0,0,242.8739,0,0,0,2,0,4,85,9.967326,0,100,750,937.08,1,1,1.386294,6.842769,0,3.258096,8.006368,0,0,0,100,9.456591,1.386294,5.492542,1 +5,4,25,0,3,428854,0,12791.2,9.268993,1,16,1,21.49613,0,25.66638,0,0,47.16251,0,0,0,2,0,4,85,9.967326,0,100,750,937.08,1,1,1.386294,6.842769,0,3.258096,8.006368,0,0,0,100,9.456591,1.386294,3.853599,1 +5,4,25,0,1,428855,0,12791.2,33.67009,1,16,1,0,10.63841,0,0,0,10.63841,0,0,0,0,0,4,77.1,0,0,80.7,750,937.08,0,0,1.386294,6.842769,0,3.258096,8.006368,0,0,0,80.7,9.456591,1.386294,2.364471,1 +5,4,25,0,2,428855,0,12791.2,34.67009,1,16,1,59.42335,13.65213,25.31646,0,0,98.39194,0,0,0,2,1,4,77.1,0,0,80.7,750,937.08,0,0,1.386294,6.842769,0,3.258096,8.006368,0,0,0,80.7,9.456591,1.386294,4.588959,1 +5,4,25,0,3,428855,0,12791.2,35.67009,1,16,1,17.19691,0,0,0,0,17.19691,0,0,0,2,0,4,77.1,0,0,80.7,750,937.08,0,0,1.386294,6.842769,0,3.258096,8.006368,0,0,0,80.7,9.456591,1.386294,2.844729,1 +11,4,0,1,1,428859,0,3143.695,26.29706,1,14,1,37.38509,13.15117,2.757916,0,0,53.29418,0,0,0,4,0,2,74.5,31,1,54.5,0,0,0,0,.6931472,0,0,0,0,0,1,0,54.5,8.053473,.6931472,3.975827,1 +11,4,0,1,2,428859,0,3143.695,27.29706,1,14,1,31.76278,17.04641,0,457.1027,0,48.80919,0,0,39,2,0,2,74.5,31,1,54.5,0,0,0,0,.6931472,0,0,0,0,0,1,0,54.5,8.053473,.6931472,3.887918,1 +11,4,0,1,3,428859,0,3143.695,28.29706,1,14,1,108.9209,11.53052,3.495271,64.4884,0,123.9467,0,0,6,3,0,2,74.5,31,1,54.5,0,0,0,0,.6931472,0,0,0,0,0,1,0,54.5,8.053473,.6931472,4.819851,1 +11,4,0,1,1,428860,0,3143.695,27.17317,0,12,1,235.5975,2.860061,9.193054,0,0,247.6507,0,0,0,6,0,2,68.1,20.7,1,56.8,0,0,0,0,.6931472,0,0,0,0,0,1,0,56.8,8.053473,.6931472,5.512019,1 +11,4,0,1,2,428860,0,3143.695,28.17317,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,68.1,20.7,1,56.8,0,0,0,0,.6931472,0,0,0,0,0,1,0,56.8,8.053473,.6931472,,0 +11,4,0,1,3,428860,0,3143.695,29.17317,0,12,1,108.3405,0,0,0,0,108.3405,0,0,0,2,0,2,68.1,20.7,1,56.8,0,0,0,0,.6931472,0,0,0,0,0,1,0,56.8,8.053473,.6931472,4.685279,1 +16,4,95,1,1,428876,0,12817.01,14.5681,1,13,1,34.21859,3.830439,0,0,0,38.04903,0,0,0,1,0,6,40.4,13.8,1,48.9,1000,1000,1,1,1.791759,6.907755,0,4.564348,6.959049,0,0,0,48.9,9.458607,1.791759,3.638875,1 +16,4,95,1,2,428876,0,12817.01,15.5681,1,13,1,16.31505,0,0,0,0,16.31505,0,0,0,1,0,6,40.4,13.8,1,48.9,1000,1000,1,1,1.791759,6.907755,0,4.564348,6.959049,0,0,0,48.9,9.458607,1.791759,2.792088,1 +16,4,95,1,3,428876,0,12817.01,16.5681,1,13,1,33.21152,10.48151,0,94.04557,0,43.69304,0,0,7,3,0,6,40.4,13.8,1,48.9,1000,1000,1,1,1.791759,6.907755,0,4.564348,6.959049,0,0,0,48.9,9.458607,1.791759,3.777189,1 +16,4,95,1,1,428877,0,12817.01,9.445585,1,13,1,0,0,0,0,0,0,0,0,0,0,0,6,81.7,9.967326,0,59.3,1000,1000,1,1,1.791759,6.907755,0,4.564348,6.959049,0,0,0,59.3,9.458607,1.791759,,0 +16,4,95,1,2,428877,0,12817.01,10.44559,1,13,1,14.0647,0,0,0,0,14.0647,0,0,0,2,0,6,81.7,9.967326,0,59.3,1000,1000,1,1,1.791759,6.907755,0,4.564348,6.959049,0,0,0,59.3,9.458607,1.791759,2.643668,1 +16,4,95,1,3,428877,0,12817.01,11.44559,1,13,1,40.19777,2.768702,0,0,0,42.96646,0,0,0,1,0,6,81.7,9.967326,0,59.3,1000,1000,1,1,1.791759,6.907755,0,4.564348,6.959049,0,0,0,59.3,9.458607,1.791759,3.76042,1 +16,4,95,1,1,428878,0,12817.01,38.54346,0,18,1,0,0,0,0,0,0,0,0,0,0,0,6,73.4,3.4,0,81.8,1000,1000,0,0,1.791759,6.907755,0,4.564348,6.959049,0,0,0,81.8,9.458607,1.791759,,0 +16,4,95,1,2,428878,0,12817.01,39.54346,0,18,1,13.59587,0,0,24.61322,0,13.59587,0,0,3,1,0,6,73.4,3.4,0,81.8,1000,1000,0,0,1.791759,6.907755,0,4.564348,6.959049,0,0,0,81.8,9.458607,1.791759,2.609766,1 +16,4,95,1,3,428878,0,12817.01,40.54346,0,18,1,20.20636,2.274291,0,0,0,22.48065,0,0,0,2,0,6,73.4,3.4,0,81.8,1000,1000,0,0,1.791759,6.907755,0,4.564348,6.959049,0,0,0,81.8,9.458607,1.791759,3.112655,1 +16,4,95,1,1,428879,0,12817.01,11.42231,1,13,1,8.059244,0,0,0,0,8.059244,0,0,0,1,0,6,80,9.967326,0,77.8,1000,1000,1,1,1.791759,6.907755,0,4.564348,6.959049,0,0,0,77.8,9.458607,1.791759,2.08682,1 +16,4,95,1,2,428879,0,12817.01,12.42231,1,13,1,348.5935,5.011721,2.320675,0,0,355.9259,0,0,0,9,21,6,80,9.967326,0,77.8,1000,1000,1,1,1.791759,6.907755,0,4.564348,6.959049,0,0,0,77.8,9.458607,1.791759,5.874722,1 +16,4,95,1,3,428879,0,12817.01,13.42231,1,13,1,350.1978,3.710232,0,0,0,353.908,0,0,0,9,0,6,80,9.967326,0,77.8,1000,1000,1,1,1.791759,6.907755,0,4.564348,6.959049,0,0,0,77.8,9.458607,1.791759,5.869037,1 +16,4,95,1,1,428880,0,12817.01,37.21013,1,13,1,6.128703,74.05005,0,0,0,80.17876,0,0,0,1,0,6,56.9,10.3,1,68.2,1000,1000,0,0,1.791759,6.907755,0,4.564348,6.959049,1,0,0,68.2,9.458607,1.791759,4.384259,1 +16,4,95,1,2,428880,0,12817.01,38.21013,1,13,1,9.282701,68.31693,152.3676,24.61322,0,229.9672,0,0,3,0,0,6,56.9,10.3,1,68.2,1000,1000,0,0,1.791759,6.907755,0,4.564348,6.959049,1,0,0,68.2,9.458607,1.791759,5.437937,1 +16,4,95,1,3,428880,0,12817.01,39.21013,1,13,1,31.47034,49.75064,0,15.04729,0,81.22098,0,0,1,2,0,6,56.9,10.3,1,68.2,1000,1000,0,0,1.791759,6.907755,0,4.564348,6.959049,1,0,0,68.2,9.458607,1.791759,4.397173,1 +16,4,95,1,1,428881,0,12817.01,15.87406,0,13,1,146.4351,39.29009,0,0,0,185.7252,0,0,0,8,0,6,71.3,27.6,1,51.1,1000,1000,1,0,1.791759,6.907755,0,4.564348,6.959049,0,0,0,51.1,9.458607,1.791759,5.224268,1 +16,4,95,1,2,428881,0,12817.01,16.87406,0,13,1,96.92921,14.16315,0,0,0,111.0924,0,0,0,5,0,6,71.3,27.6,1,51.1,1000,1000,1,0,1.791759,6.907755,0,4.564348,6.959049,0,0,0,51.1,9.458607,1.791759,4.710362,1 +16,4,95,1,3,428881,0,12817.01,17.87406,0,13,1,11.60791,12.08083,0,0,0,23.68874,0,0,0,2,0,6,71.3,27.6,1,51.1,1000,1000,1,0,1.791759,6.907755,0,4.564348,6.959049,0,0,0,51.1,9.458607,1.791759,3.165,1 +16,4,95,1,1,428887,0,11250.44,43.26899,1,16,1,28.84615,1.518219,0,0,0,30.36437,0,0,0,3,0,2,65.4,3.4,1,60.7,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,60.7,9.328251,.6931472,3.41327,1 +16,4,95,1,2,428887,0,11250.44,44.26899,1,16,1,320.8811,0,0,0,0,320.8811,0,0,0,5,0,2,65.4,3.4,1,60.7,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,60.7,9.328251,.6931472,5.771071,1 +16,4,95,1,3,428887,0,11250.44,45.26899,1,16,1,9.405729,0,0,0,0,9.405729,0,0,0,1,0,2,65.4,3.4,1,60.7,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,60.7,9.328251,.6931472,2.241319,1 +16,4,95,1,4,428887,0,11250.44,46.26899,1,16,1,28.82398,0,0,0,0,28.82398,0,0,0,4,0,2,65.4,3.4,1,60.7,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,60.7,9.328251,.6931472,3.361208,1 +16,4,95,1,5,428887,0,11250.44,47.26899,1,16,1,22.83105,21.59817,0,0,0,44.42922,0,0,0,3,0,2,65.4,3.4,1,60.7,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,60.7,9.328251,.6931472,3.793897,1 +16,4,95,1,1,428888,0,11250.44,57.79055,0,12,1,15.18219,0,0,0,0,15.18219,0,0,0,1,0,2,62.8,10.3,1,55.7,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,55.7,9.328251,.6931472,2.720123,1 +16,4,95,1,2,428888,0,11250.44,58.79055,0,12,1,22.37762,5.869464,0,0,0,28.24709,0,0,0,2,0,2,62.8,10.3,1,55.7,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,55.7,9.328251,.6931472,3.34099,1 +16,4,95,1,3,428888,0,11250.44,59.79055,0,12,1,0,5.981189,0,0,0,5.981189,0,0,0,0,0,2,62.8,10.3,1,55.7,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,55.7,9.328251,.6931472,1.788619,1 +16,4,95,1,4,428888,0,11250.44,60.79055,0,12,1,23.05919,0,0,0,0,23.05919,0,0,0,1,0,2,62.8,10.3,1,55.7,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,55.7,9.328251,.6931472,3.138064,1 +16,4,95,1,5,428888,0,11250.44,61.79055,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,62.8,10.3,1,55.7,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,55.7,9.328251,.6931472,,0 +13,4,0,0,1,428897,0,7910.823,4.799452,0,13,1,5.107252,1.430031,0,0,0,6.537283,0,0,0,1,0,5,85,9.967326,0,66.7,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,66.7,8.976113,1.609438,1.877522,1 +13,4,0,0,2,428897,0,7910.823,5.799452,0,13,1,8.570089,1.69714,0,0,0,10.26723,0,0,0,1,0,5,85,9.967326,0,66.7,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,66.7,8.976113,1.609438,2.328957,1 +13,4,0,0,3,428897,0,7910.823,6.799452,0,13,1,5.159071,0,0,0,0,5.159071,0,0,0,1,0,5,85,9.967326,0,66.7,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,66.7,8.976113,1.609438,1.640757,1 +13,4,0,0,4,428897,0,7910.823,7.799452,0,13,1,0,0,0,0,0,0,0,0,0,0,0,5,85,9.967326,0,66.7,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,66.7,8.976113,1.609438,,0 +13,4,0,0,5,428897,0,7910.823,8.799453,0,13,1,0,0,0,0,0,0,0,0,0,0,0,5,85,9.967326,0,66.7,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,66.7,8.976113,1.609438,,0 +13,4,0,0,1,428898,0,7910.823,28.87064,0,12,1,103.9326,30.4903,0,0,0,134.4229,0,0,0,18,0,5,66,17.2,0,47.7,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,47.7,8.976113,1.609438,4.90099,1 +13,4,0,0,2,428898,0,7910.823,29.87064,0,12,1,88.37318,8.940459,0,0,384.9039,482.2175,1,0,0,13,0,5,66,17.2,0,47.7,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,47.7,8.976113,1.609438,6.178395,1 +13,4,0,0,3,428898,0,7910.823,30.87064,0,12,1,18.05675,0,0,27.94497,0,18.05675,0,0,5,4,0,5,66,17.2,0,47.7,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,47.7,8.976113,1.609438,2.89352,1 +13,4,0,0,4,428898,0,7910.823,31.87064,0,12,1,5.816208,11.24855,0,0,0,17.06475,0,0,0,1,0,5,66,17.2,0,47.7,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,47.7,8.976113,1.609438,2.837015,1 +13,4,0,0,5,428898,0,7910.823,32.87064,0,12,1,47.2753,0,0,0,0,47.2753,0,0,0,2,0,5,66,17.2,0,47.7,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,47.7,8.976113,1.609438,3.855988,1 +13,4,0,0,1,428899,0,7910.823,6.658453,0,13,1,12.25741,15.143,0,45.96527,775.8121,803.2125,1,0,3,2,0,5,75,9.967326,0,59.3,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,59.3,8.976113,1.609438,6.688619,1 +13,4,0,0,2,428899,0,7910.823,7.658453,0,13,1,0,4.805439,0,56.25879,0,4.805439,0,0,5,0,0,5,75,9.967326,0,59.3,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,59.3,8.976113,1.609438,1.569748,1 +13,4,0,0,3,428899,0,7910.823,8.658453,0,13,1,5.159071,0,0,453.5684,0,5.159071,0,0,33,1,0,5,75,9.967326,0,59.3,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,59.3,8.976113,1.609438,1.640757,1 +13,4,0,0,4,428899,0,7910.823,9.658453,0,13,1,326.8476,2.074447,0,0,0,328.9221,0,0,0,7,0,5,75,9.967326,0,59.3,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,59.3,8.976113,1.609438,5.795821,1 +13,4,0,0,5,428899,0,7910.823,10.65845,0,13,1,5.307856,0,0,0,0,5.307856,0,0,0,1,0,5,75,9.967326,0,59.3,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,59.3,8.976113,1.609438,1.669188,1 +13,4,0,0,1,428900,0,7910.823,.8514716,1,13,1,11.23596,8.743616,0,0,0,19.97957,0,0,0,2,0,5,83.39137,9.967326,0,92.6,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,92.6,8.976113,1.609438,2.99471,1 +13,4,0,0,2,428900,0,7910.823,1.851472,1,13,1,0,3.10361,0,0,0,3.10361,0,0,0,0,0,5,83.39137,9.967326,0,92.6,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,92.6,8.976113,1.609438,1.132566,1 +13,4,0,0,3,428900,0,7910.823,2.851472,1,13,1,5.159071,0,0,0,0,5.159071,0,0,0,1,0,5,83.39137,9.967326,0,92.6,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,92.6,8.976113,1.609438,1.640757,1 +13,4,0,0,4,428900,0,7910.823,3.851472,1,13,1,0,0,0,0,0,0,0,0,0,0,0,5,83.39137,9.967326,0,92.6,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,92.6,8.976113,1.609438,,0 +13,4,0,0,5,428900,0,7910.823,4.851471,1,13,1,5.307856,0,0,0,0,5.307856,0,0,0,1,0,5,83.39137,9.967326,0,92.6,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,92.6,8.976113,1.609438,1.669188,1 +13,4,0,0,1,428901,0,7910.823,28.00274,1,13,1,16.34321,4.019408,0,15.32176,0,20.36262,0,0,1,2,0,5,45.2,41.4,0,53.4,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,53.4,8.976113,1.609438,3.013701,1 +13,4,0,0,2,428901,0,7910.823,29.00274,1,13,1,235.1617,3.187998,0,0,0,238.3497,0,0,0,3,0,5,45.2,41.4,0,53.4,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,53.4,8.976113,1.609438,5.473739,1 +13,4,0,0,3,428901,0,7910.823,30.00274,1,13,1,0,6.006019,0,40.84265,0,6.006019,0,0,7,0,0,5,45.2,41.4,0,53.4,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,53.4,8.976113,1.609438,1.792762,1 +13,4,0,0,4,428901,0,7910.823,31.00274,1,13,1,0,0,0,0,0,0,0,0,0,0,0,5,45.2,41.4,0,53.4,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,53.4,8.976113,1.609438,,0 +13,4,0,0,5,428901,0,7910.823,32.00274,1,13,1,12.385,0,0,0,0,12.385,0,0,0,1,0,5,45.2,41.4,0,53.4,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,53.4,8.976113,1.609438,2.516486,1 +13,4,0,1,1,428950,0,9677.419,34.39014,0,14,1,119.1113,20.27069,0,10.72523,380.5261,519.9081,1,0,1,8,0,3,72.3,10.3,0,55.7,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,55.7,9.177654,1.098612,6.253652,1 +13,4,0,1,2,428950,0,9677.419,35.39014,0,14,1,25.78528,10.07032,0,0,0,35.8556,0,0,0,3,0,3,72.3,10.3,0,55.7,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,55.7,9.177654,1.098612,3.5795,1 +13,4,0,1,3,428950,0,9677.419,36.39014,0,14,1,195.3998,0,0,0,0,195.3998,0,0,0,4,0,3,72.3,10.3,0,55.7,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,55.7,9.177654,1.098612,5.275048,1 +13,4,0,1,1,428951,0,9677.419,7.534565,1,16,1,3.064351,0,0,0,0,3.064351,0,0,0,1,0,3,85,9.967326,0,96.3,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,0,0,0,96.3,9.177654,1.098612,1.119836,1 +13,4,0,1,2,428951,0,9677.419,8.534565,1,16,1,0,1.870605,0,0,0,1.870605,0,0,0,0,0,3,85,9.967326,0,96.3,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,0,0,0,96.3,9.177654,1.098612,.6262618,1 +13,4,0,1,3,428951,0,9677.419,9.534565,1,16,1,8.598453,0,0,0,0,8.598453,0,0,0,1,0,3,85,9.967326,0,96.3,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,0,0,0,96.3,9.177654,1.098612,2.151582,1 +13,4,0,1,1,428952,0,9677.419,33.00479,1,16,1,65.29111,112.666,0,32.17569,0,177.9571,0,0,3,2,1,3,51.1,10.3,0,64.8,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,1,0,64.8,9.177654,1.098612,5.181542,1 +13,4,0,1,2,428952,0,9677.419,34.00479,1,16,1,46.88232,68.21378,0,21.56587,0,115.0961,0,0,2,2,0,3,51.1,10.3,0,64.8,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,1,0,64.8,9.177654,1.098612,4.745768,1 +13,4,0,1,3,428952,0,9677.419,35.00479,1,16,1,72.87188,92.06792,0,20.63629,0,164.9398,0,0,2,2,0,3,51.1,10.3,0,64.8,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,1,0,64.8,9.177654,1.098612,5.105581,1 +7,4,25,1,1,428968,0,8657.478,44.20534,1,12,1,94.20837,82.05312,33.19714,0,0,209.4586,0,0,0,7,1,3,71.8,20.7,0,62.5,750,725,0,0,1.098612,6.586172,0,3.258096,8.006368,1,0,0,62.5,9.066294,1.098612,5.344526,1 +7,4,25,1,2,428968,0,8657.478,45.20534,1,12,1,51.45335,66.79794,20.62822,0,0,138.8795,0,0,0,3,1,3,71.8,20.7,0,62.5,750,725,0,0,1.098612,6.586172,0,3.258096,8.006368,1,0,0,62.5,9.066294,1.098612,4.933607,1 +7,4,25,1,3,428968,0,8657.478,46.20534,1,12,1,46.21668,38.83491,41.27257,0,0,126.3242,0,0,0,4,1,3,71.8,20.7,0,62.5,750,725,0,0,1.098612,6.586172,0,3.258096,8.006368,1,0,0,62.5,9.066294,1.098612,4.838851,1 +7,4,25,1,1,428969,0,8657.478,19.07187,1,12,1,20.42901,9.305413,0,0,0,29.73442,0,0,0,1,1,3,73.4,3.4,0,60.2,750,725,0,0,1.098612,6.586172,0,3.258096,8.006368,1,0,0,60.2,9.066294,1.098612,3.392305,1 +7,4,25,1,2,428969,0,8657.478,20.07187,1,12,1,18.75293,10.2391,15.00234,0,0,43.99437,0,0,0,1,1,3,73.4,3.4,0,60.2,750,725,0,0,1.098612,6.586172,0,3.258096,8.006368,1,0,0,60.2,9.066294,1.098612,3.784062,1 +7,4,25,1,3,428969,0,8657.478,21.07187,1,12,1,27.08512,0,0,0,0,27.08512,0,0,0,1,0,3,73.4,3.4,0,60.2,750,725,0,0,1.098612,6.586172,0,3.258096,8.006368,1,0,0,60.2,9.066294,1.098612,3.298985,1 +7,4,25,1,1,428970,0,8657.478,56.71184,0,8,1,75.74055,0,0,0,0,75.74055,0,0,0,3,7,3,75.5,13.8,0,80.7,750,725,0,0,1.098612,6.586172,0,3.258096,8.006368,1,0,0,80.7,9.066294,1.098612,4.327314,1 +7,4,25,1,2,428970,0,8657.478,57.71184,0,8,1,148.7576,14.45851,42.19409,0,0,205.4102,0,0,0,3,12,3,75.5,13.8,0,80.7,750,725,0,0,1.098612,6.586172,0,3.258096,8.006368,1,0,0,80.7,9.066294,1.098612,5.325009,1 +7,4,25,1,3,428970,0,8657.478,58.71184,0,8,1,465.2321,33.55116,26.6552,0,792.3345,1317.773,1,0,0,14,1,3,75.5,13.8,0,80.7,750,725,0,0,1.098612,6.586172,0,3.258096,8.006368,1,0,0,80.7,9.066294,1.098612,7.183699,1 +18,4,25,0,1,428990,0,11971.26,15.00068,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,84.6,3.4,0,72.7,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,1,0,0,72.7,9.390347,1.386294,,0 +18,4,25,0,2,428990,0,11971.26,16.00068,1,13,1,5.594406,0,0,0,0,5.594406,0,0,0,1,0,4,84.6,3.4,0,72.7,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,1,0,0,72.7,9.390347,1.386294,1.721767,1 +18,4,25,0,3,428990,0,11971.26,17.00068,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,84.6,3.4,0,72.7,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,1,0,0,72.7,9.390347,1.386294,,0 +18,4,25,0,1,428991,0,11971.26,44.94182,0,13,1,88.10728,48.81579,0,0,0,136.9231,0,0,0,6,0,4,62.2,0,0,54.5,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,54.5,9.390347,1.386294,4.919419,1 +18,4,25,0,2,428991,0,11971.26,45.94182,0,13,1,13.98601,17.17016,2.331002,0,0,33.48718,0,0,0,1,0,4,62.2,0,0,54.5,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,54.5,9.390347,1.386294,3.511163,1 +18,4,25,0,3,428991,0,11971.26,46.94182,0,13,1,80.07696,42.13339,25.22445,0,0,147.4348,0,0,0,4,1,4,62.2,0,0,54.5,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,54.5,9.390347,1.386294,4.993386,1 +18,4,25,0,1,428992,0,11971.26,19.44969,0,10,1,0,0,0,0,0,0,0,0,0,0,0,4,76.6,3.4,0,75,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,75,9.390347,1.386294,,0 +18,4,25,0,2,428992,0,11971.26,20.44969,0,10,1,0,0,0,0,0,0,0,0,0,0,0,4,76.6,3.4,0,75,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,75,9.390347,1.386294,,0 +18,4,25,0,3,428992,0,11971.26,21.44969,0,10,1,0,0,0,0,0,0,0,0,0,0,0,4,76.6,3.4,0,75,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,75,9.390347,1.386294,,0 +18,4,25,0,1,428994,0,11971.26,44.0575,1,13,1,10.12146,0,0,0,0,10.12146,0,0,0,1,0,4,85.6,6.9,0,73.9,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,73.9,9.390347,1.386294,2.314658,1 +18,4,25,0,2,428994,0,11971.26,45.0575,1,13,1,11.65501,0,43.82285,0,0,55.47786,0,0,0,0,1,4,85.6,6.9,0,73.9,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,73.9,9.390347,1.386294,4.015984,1 +18,4,25,0,3,428994,0,11971.26,46.0575,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,85.6,6.9,0,73.9,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,73.9,9.390347,1.386294,,0 +11,4,0,1,1,428995,0,6840.469,9.538672,0,16,1,48.26353,0,5.107252,0,0,53.37078,0,0,0,3,0,4,96.7,9.967326,0,100,0,0,1,0,1.386294,0,0,0,0,0,0,0,100,8.830758,1.386294,3.977263,1 +11,4,0,1,2,428995,0,6840.469,10.53867,0,16,1,22.97234,1.945616,0,0,0,24.91796,0,0,0,3,0,4,96.7,9.967326,0,100,0,0,1,0,1.386294,0,0,0,0,0,0,0,100,8.830758,1.386294,3.215589,1 +11,4,0,1,3,428995,0,6840.469,11.53867,0,16,1,84.37231,0,0,0,0,84.37231,0,0,0,6,0,4,96.7,9.967326,0,100,0,0,1,0,1.386294,0,0,0,0,0,0,0,100,8.830758,1.386294,4.435239,1 +11,4,0,1,1,428996,0,6840.469,5.270363,1,16,1,14.30031,2.298264,0,0,0,16.59857,0,0,0,3,0,4,93.3,9.967326,0,92.6,0,0,1,1,1.386294,0,0,0,0,0,0,0,92.6,8.830758,1.386294,2.809317,1 +11,4,0,1,2,428996,0,6840.469,6.270363,1,16,1,44.06939,0,21.33146,0,0,65.40084,0,0,0,3,2,4,93.3,9.967326,0,92.6,0,0,1,1,1.386294,0,0,0,0,0,0,0,92.6,8.830758,1.386294,4.180535,1 +11,4,0,1,3,428996,0,6840.469,7.270363,1,16,1,20.46432,2.063628,0,0,0,22.52794,0,0,0,3,0,4,93.3,9.967326,0,92.6,0,0,1,1,1.386294,0,0,0,0,0,0,0,92.6,8.830758,1.386294,3.114757,1 +11,4,0,1,1,428997,0,6840.469,37.07871,1,16,1,18.89683,0,0,0,0,18.89683,0,0,0,2,0,4,90.4,3.4,0,89.8,0,0,0,0,1.386294,0,0,0,0,0,0,0,89.8,8.830758,1.386294,2.938994,1 +11,4,0,1,2,428997,0,6840.469,38.07871,1,16,1,11.72058,0,26.95734,0,0,38.67792,0,0,0,1,0,4,90.4,3.4,0,89.8,0,0,0,0,1.386294,0,0,0,0,0,0,0,89.8,8.830758,1.386294,3.655269,1 +11,4,0,1,3,428997,0,6840.469,39.07871,1,16,1,114.4884,0,0,0,0,114.4884,0,0,0,4,0,4,90.4,3.4,0,89.8,0,0,0,0,1.386294,0,0,0,0,0,0,0,89.8,8.830758,1.386294,4.740473,1 +11,4,0,1,1,428998,0,6840.469,38.89938,0,16,1,31.66496,0,27.57916,0,0,59.24413,0,0,0,2,1,4,92,0,0,96.6,0,0,0,0,1.386294,0,0,0,0,0,0,0,96.6,8.830758,1.386294,4.081666,1 +11,4,0,1,2,428998,0,6840.469,39.89938,0,16,1,135.1383,2.62541,0,0,1641.843,1779.606,1,0,0,5,0,4,92,0,0,96.6,0,0,0,0,1.386294,0,0,0,0,0,0,0,96.6,8.830758,1.386294,7.484148,1 +11,4,0,1,3,428998,0,6840.469,40.89938,0,16,1,185.5116,0,0,0,0,185.5116,0,0,0,4,0,4,92,0,0,96.6,0,0,0,0,1.386294,0,0,0,0,0,0,0,96.6,8.830758,1.386294,5.223117,1 +11,4,0,1,1,429004,0,3774.194,5.24846,0,14,1,8.171603,9.065372,0,0,0,17.23698,0,0,0,2,0,3,83.3,9.967326,0,77.8,0,0,1,0,1.098612,0,0,0,0,0,0,0,77.8,8.236207,1.098612,2.847057,1 +11,4,0,1,2,429004,0,3774.194,6.24846,0,14,1,52.62541,4.336615,0,0,0,56.96202,0,0,0,1,0,3,83.3,9.967326,0,77.8,0,0,1,0,1.098612,0,0,0,0,0,0,0,77.8,8.236207,1.098612,4.042385,1 +11,4,0,1,3,429004,0,3774.194,7.24846,0,14,1,0,6.233878,0,0,0,6.233878,0,0,0,0,0,3,83.3,9.967326,0,77.8,0,0,1,0,1.098612,0,0,0,0,0,0,0,77.8,8.236207,1.098612,1.829999,1 +11,4,0,1,1,429005,0,3774.194,38.75702,0,16,1,0,0,0,0,0,0,0,0,0,0,0,3,87.2,3.4,0,69.3,0,0,0,0,1.098612,0,0,0,0,0,0,0,69.3,8.236207,1.098612,,0 +11,4,0,1,2,429005,0,3774.194,39.75702,0,16,1,0,0,0,0,0,0,0,0,0,0,0,3,87.2,3.4,0,69.3,0,0,0,0,1.098612,0,0,0,0,0,0,0,69.3,8.236207,1.098612,,0 +11,4,0,1,3,429005,0,3774.194,40.75702,0,16,1,31.16939,1.074807,23.64574,0,0,55.88994,0,0,0,1,1,3,87.2,3.4,0,69.3,0,0,0,0,1.098612,0,0,0,0,0,0,0,69.3,8.236207,1.098612,4.023385,1 +11,4,0,1,1,429006,0,3774.194,32.70636,1,14,1,18.13074,1.225741,0,0,0,19.35649,0,0,0,1,0,3,84,6.9,0,70.5,0,0,0,0,1.098612,0,0,0,0,0,0,0,70.5,8.236207,1.098612,2.963027,1 +11,4,0,1,2,429006,0,3774.194,33.70636,1,14,1,18.75293,0,0,0,0,18.75293,0,0,0,1,0,3,84,6.9,0,70.5,0,0,0,0,1.098612,0,0,0,0,0,0,0,70.5,8.236207,1.098612,2.93135,1 +11,4,0,1,3,429006,0,3774.194,34.70636,1,14,1,0,0,0,0,0,0,0,0,0,0,0,3,84,6.9,0,70.5,0,0,0,0,1.098612,0,0,0,0,0,0,0,70.5,8.236207,1.098612,,0 +5,4,25,1,1,429013,0,11728.45,30.36824,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,76.6,3.4,0,84.1,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,0,0,84.1,9.369858,.6931472,,0 +5,4,25,1,2,429013,0,11728.45,31.36824,0,12,1,9.324009,2.610723,25.40792,0,0,37.34266,0,0,0,1,0,2,76.6,3.4,0,84.1,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,0,0,84.1,9.369858,.6931472,3.620136,1 +5,4,25,1,3,429013,0,11728.45,32.36824,0,12,1,437.3407,3.279179,0,0,0,440.6199,0,0,0,5,0,2,76.6,3.4,0,84.1,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,0,0,84.1,9.369858,.6931472,6.088182,1 +5,4,25,1,1,429014,0,11728.45,26.65298,1,12,1,161.8573,5.865385,0,0,0,167.7227,0,0,0,2,0,2,86.2,6.9,0,77.3,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,77.3,9.369858,.6931472,5.122312,1 +5,4,25,1,2,429014,0,11728.45,27.65298,1,12,1,310.6713,4.424242,0,0,0,315.0956,0,0,0,4,0,2,86.2,6.9,0,77.3,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,77.3,9.369858,.6931472,5.752876,1 +5,4,25,1,3,429014,0,11728.45,28.65298,1,12,1,82.53527,5.515177,0,0,0,88.05045,0,0,0,1,0,2,86.2,6.9,0,77.3,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,77.3,9.369858,.6931472,4.47791,1 +11,4,0,1,1,429015,0,913.783,27.10746,1,16,1,422.4626,56.13086,81.26739,141.6796,0,559.8609,0,0,11,5,62,1,83.6,34.5,1,53.4,0,0,0,0,0,0,0,0,0,1,0,0,53.4,6.818687,0,6.327688,1 +11,4,0,1,2,429015,0,913.783,28.10746,1,16,1,354.6401,6.387311,13.35701,0,0,374.3845,0,0,0,9,45,1,83.6,34.5,1,53.4,0,0,0,0,0,0,0,0,0,1,0,0,53.4,6.818687,0,5.925283,1 +11,4,0,1,3,429015,0,913.783,29.10746,1,16,1,855.0065,0,34.52536,0,0,889.5319,0,0,0,44,59,1,83.6,34.5,1,53.4,0,0,0,0,0,0,0,0,0,1,0,0,53.4,6.818687,0,6.790695,1 +11,4,0,1,4,429015,0,913.783,30.10746,1,16,1,1303.111,103.0248,16.4041,384.0095,2033.367,3455.908,1,0,18,76,68,1,83.6,34.5,1,53.4,0,0,0,0,0,0,0,0,0,1,0,0,53.4,6.818687,0,8.14784,1 +11,4,0,1,5,429015,0,913.783,31.10746,1,16,1,1209.589,48.20751,39.93202,844.3649,0,1297.728,0,0,54,77,42,1,83.6,34.5,1,53.4,0,0,0,0,0,0,0,0,0,1,0,0,53.4,6.818687,0,7.16837,1 +11,4,0,1,1,429016,0,469.2082,26.99795,0,16,1,19.19114,13.06028,34.13704,0,0,66.38846,0,0,0,1,1,1,83.5,17.2,1,70.5,0,0,0,0,0,0,0,0,0,0,0,0,70.5,6.153176,0,4.195523,1 +11,4,0,1,2,429016,0,469.2082,27.99795,0,16,1,17.75568,0,16.07955,0,0,33.83523,0,0,0,1,0,1,83.5,17.2,1,70.5,0,0,0,0,0,0,0,0,0,0,0,0,70.5,6.153176,0,3.521502,1 +11,4,0,1,3,429016,0,469.2082,28.99795,0,16,1,386.4326,80.84525,27.30819,0,455.6784,950.2644,1,0,0,8,45,1,83.5,17.2,1,70.5,0,0,0,0,0,0,0,0,0,0,0,0,70.5,6.153176,0,6.85674,1 +11,4,0,1,4,429016,0,469.2082,29.99795,0,16,1,393.8558,41.63844,0,0,0,435.4943,0,0,0,25,17,1,83.5,17.2,1,70.5,0,0,0,0,0,0,0,0,0,0,0,0,70.5,6.153176,0,6.076482,1 +11,4,0,1,5,429016,0,469.2082,30.99795,0,16,1,130.5903,46.74061,26.61896,0,0,203.9499,0,0,0,12,0,1,83.5,17.2,1,70.5,0,0,0,0,0,0,0,0,0,0,0,0,70.5,6.153176,0,5.317874,1 +19,4,25,1,1,429032,0,5390.029,37.2512,0,12,1,10.2145,0,22.47191,0,0,32.68641,0,0,0,1,0,5,64.4,10.3,0,83,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,83,8.592491,1.609438,3.486959,1 +19,4,25,1,2,429032,0,5390.029,38.2512,0,12,1,59.42335,10.79231,0,0,0,70.21566,0,0,0,5,0,5,64.4,10.3,0,83,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,83,8.592491,1.609438,4.251571,1 +19,4,25,1,3,429032,0,5390.029,39.2512,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,64.4,10.3,0,83,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,83,8.592491,1.609438,,0 +19,4,25,1,1,429033,0,5390.029,11.54004,0,12,1,229.7804,0,0,0,0,229.7804,0,0,0,4,0,5,85,9.967326,0,55.6,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,55.6,8.592491,1.609438,5.437124,1 +19,4,25,1,2,429033,0,5390.029,12.54004,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,85,9.967326,0,55.6,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,55.6,8.592491,1.609438,,0 +19,4,25,1,3,429033,0,5390.029,13.54004,0,12,1,36.15649,1.564918,0,0,0,37.72141,0,0,0,4,0,5,85,9.967326,0,55.6,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,55.6,8.592491,1.609438,3.630228,1 +19,4,25,1,1,429034,0,5390.029,3.542779,0,12,1,0,1.261491,0,0,0,1.261491,0,0,0,0,0,5,83.39137,9.967326,0,96.3,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,96.3,8.592491,1.609438,.2322946,1 +19,4,25,1,2,429034,0,5390.029,4.542779,0,12,1,13.12705,0,0,0,0,13.12705,0,0,0,2,0,5,83.39137,9.967326,0,96.3,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,96.3,8.592491,1.609438,2.574675,1 +19,4,25,1,3,429034,0,5390.029,5.542779,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,83.39137,9.967326,0,96.3,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,96.3,8.592491,1.609438,,0 +19,4,25,1,1,429035,0,5390.029,33.58522,1,12,1,20.42901,2.911134,34.21859,0,0,57.55873,0,0,0,1,1,5,85.6,6.9,0,81,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,81,8.592491,1.609438,4.052806,1 +19,4,25,1,2,429035,0,5390.029,34.58522,1,12,1,39.09986,4.739803,0,0,0,43.83966,0,0,0,3,1,5,85.6,6.9,0,81,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,81,8.592491,1.609438,3.780539,1 +19,4,25,1,3,429035,0,5390.029,35.58522,1,12,1,29.9871,0,0,0,0,29.9871,0,0,0,2,0,5,85.6,6.9,0,81,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,81,8.592491,1.609438,3.400767,1 +19,4,25,1,1,429036,0,5390.029,8.799453,0,12,1,17.87538,2.206333,0,0,0,20.08172,0,0,0,2,0,5,80,9.967326,0,70.4,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,70.4,8.592491,1.609438,2.99981,1 +19,4,25,1,2,429036,0,5390.029,9.799453,0,12,1,13.12705,2.906704,0,0,0,16.03375,0,0,0,1,0,5,80,9.967326,0,70.4,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,70.4,8.592491,1.609438,2.774696,1 +19,4,25,1,3,429036,0,5390.029,10.79945,0,12,1,160.6836,2.575237,7.953568,0,0,171.2124,0,0,0,5,1,5,80,9.967326,0,70.4,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,70.4,8.592491,1.609438,5.142905,1 +11,4,0,0,1,429037,0,2692.669,50.02053,1,11,1,12.76813,107.5843,43.41164,102.145,0,163.764,0,0,5,2,0,1,87.8,13.8,0,69.3,0,0,0,0,0,0,0,0,0,1,0,0,69.3,7.898659,0,5.098427,1 +11,4,0,0,2,429037,0,2692.669,51.02053,1,11,1,16.29161,86.376,0,86.7323,1184.06,1286.728,1,0,5,0,0,1,87.8,13.8,0,69.3,0,0,0,0,0,0,0,0,0,1,0,0,69.3,7.898659,0,7.159858,1 +11,4,0,0,3,429037,0,2692.669,52.02053,1,11,1,18.59415,79.15735,42.56234,174.1187,881.8788,1022.193,1,0,11,3,0,1,87.8,13.8,0,69.3,0,0,0,0,0,0,0,0,0,1,0,0,69.3,7.898659,0,6.929705,1 +11,4,0,0,4,429037,0,2692.669,53.02053,1,11,1,0,142.9314,0,164.7926,0,142.9314,0,0,9,0,0,1,87.8,13.8,0,69.3,0,0,0,0,0,0,0,0,0,1,0,0,69.3,7.898659,0,4.962365,1 +11,4,0,0,5,429037,0,2692.669,54.02053,1,11,1,52.7247,119.2074,0,123.85,0,171.9321,0,0,7,5,0,1,87.8,13.8,0,69.3,0,0,0,0,0,0,0,0,0,1,0,0,69.3,7.898659,0,5.147099,1 +7,4,25,1,1,429051,0,6239.296,28.94182,0,16,1,67.92645,4.759959,0,0,0,72.68642,0,0,0,3,0,1,75,6.9,0,81.8,750,750,0,0,0,6.620073,0,3.258096,8.006368,0,0,0,81.8,8.738783,0,4.286155,1 +7,4,25,1,2,429051,0,6239.296,29.94182,0,16,1,146.4557,1.561181,0,0,0,148.0169,0,0,0,10,0,1,75,6.9,0,81.8,750,750,0,0,0,6.620073,0,3.258096,8.006368,0,0,0,81.8,8.738783,0,4.997326,1 +7,4,25,1,3,429051,0,6239.296,30.94182,0,16,1,0,0,0,0,0,0,0,0,0,0,0,1,75,6.9,0,81.8,750,750,0,0,0,6.620073,0,3.258096,8.006368,0,0,0,81.8,8.738783,0,,0 +7,4,25,1,1,429052,0,4645.161,24.70637,0,12,1,72.36842,0,3.669028,0,0,76.03745,0,0,0,18,0,1,63.8,27.6,0,76.1,900,900,0,0,0,6.802395,0,3.258096,8.188689,0,0,0,76.1,8.443796,0,4.331226,1 +7,4,25,1,2,429052,0,4645.161,25.70637,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,63.8,27.6,0,76.1,900,900,0,0,0,6.802395,0,3.258096,8.188689,0,0,0,76.1,8.443796,0,,0 +7,4,25,1,3,429052,0,4645.161,26.70637,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,63.8,27.6,0,76.1,900,900,0,0,0,6.802395,0,3.258096,8.188689,0,0,0,76.1,8.443796,0,,0 +11,4,0,1,1,429053,0,7886.804,5.423682,0,12,1,36.31256,.9959142,0,0,0,37.30848,0,0,0,1,0,3,85,9.967326,0,96.3,0,0,1,0,1.098612,0,0,0,0,0,0,0,96.3,8.973073,1.098612,3.619221,1 +11,4,0,1,2,429053,0,7886.804,6.423682,0,12,1,6.563526,4.195968,0,0,0,10.75949,0,0,0,1,0,3,85,9.967326,0,96.3,0,0,1,0,1.098612,0,0,0,0,0,0,0,96.3,8.973073,1.098612,2.375788,1 +11,4,0,1,3,429053,0,7886.804,7.423682,0,12,1,18.27171,0,0,0,0,18.27171,0,0,0,2,0,3,85,9.967326,0,96.3,0,0,1,0,1.098612,0,0,0,0,0,0,0,96.3,8.973073,1.098612,2.905354,1 +11,4,0,1,4,429053,0,7886.804,8.423682,0,12,1,10.46917,4.245831,0,0,502.5979,517.3129,1,0,0,2,0,3,85,9.967326,0,96.3,0,0,1,0,1.098612,0,0,0,0,0,0,0,96.3,8.973073,1.098612,6.248648,1 +11,4,0,1,5,429053,0,7886.804,9.423682,0,12,1,15.56971,0,0,0,0,15.56971,0,0,0,3,0,3,85,9.967326,0,96.3,0,0,1,0,1.098612,0,0,0,0,0,0,0,96.3,8.973073,1.098612,2.745327,1 +11,4,0,1,1,429054,0,7886.804,24.84873,1,12,1,22.98264,0,32.68641,0,0,55.66905,0,0,0,2,0,3,84.6,13.8,0,92,0,0,0,0,1.098612,0,0,0,0,1,0,0,92,8.973073,1.098612,4.019424,1 +11,4,0,1,2,429054,0,7886.804,25.84873,1,12,1,60.59541,0,0,0,0,60.59541,0,0,0,1,0,3,84.6,13.8,0,92,0,0,0,0,1.098612,0,0,0,0,1,0,0,92,8.973073,1.098612,4.104219,1 +11,4,0,1,3,429054,0,7886.804,26.84873,1,12,1,30.09458,0,22.35598,0,0,52.45056,0,0,0,3,0,3,84.6,13.8,0,92,0,0,0,0,1.098612,0,0,0,0,1,0,0,92,8.973073,1.098612,3.959871,1 +11,4,0,1,4,429054,0,7886.804,27.84873,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,84.6,13.8,0,92,0,0,0,0,1.098612,0,0,0,0,1,0,0,92,8.973073,1.098612,,0 +11,4,0,1,5,429054,0,7886.804,28.84873,1,12,1,25.47771,0,24.7523,0,0,50.23001,0,0,0,2,0,3,84.6,13.8,0,92,0,0,0,0,1.098612,0,0,0,0,1,0,0,92,8.973073,1.098612,3.916613,1 +11,4,0,1,1,429055,0,7886.804,27.09925,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,98.4,6.9,0,95.5,0,0,0,0,1.098612,0,0,0,0,1,0,0,95.5,8.973073,1.098612,,0 +11,4,0,1,2,429055,0,7886.804,28.09925,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,98.4,6.9,0,95.5,0,0,0,0,1.098612,0,0,0,0,1,0,0,95.5,8.973073,1.098612,,0 +11,4,0,1,3,429055,0,7886.804,29.09925,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,98.4,6.9,0,95.5,0,0,0,0,1.098612,0,0,0,0,1,0,0,95.5,8.973073,1.098612,,0 +11,4,0,1,4,429055,0,7886.804,30.09925,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,98.4,6.9,0,95.5,0,0,0,0,1.098612,0,0,0,0,1,0,0,95.5,8.973073,1.098612,,0 +11,4,0,1,5,429055,0,7886.804,31.09925,0,12,1,59.97877,2.919321,0,0,0,62.89809,0,0,0,1,6,3,98.4,6.9,0,95.5,0,0,0,0,1.098612,0,0,0,0,1,0,0,95.5,8.973073,1.098612,4.141516,1 +13,4,0,1,1,429081,0,2585.924,24.86516,0,16,1,32.68641,3.702758,0,0,0,36.38917,0,0,0,4,0,1,73.4,6.9,0,61.4,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,61.4,7.858225,0,3.594271,1 +13,4,0,1,2,429081,0,2585.924,25.86516,0,16,1,0,0,0,0,0,0,0,0,0,0,0,1,73.4,6.9,0,61.4,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,61.4,7.858225,0,,0 +13,4,0,1,3,429081,0,2585.924,26.86516,0,16,1,0,0,0,0,0,0,0,0,0,0,0,1,73.4,6.9,0,61.4,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,61.4,7.858225,0,,0 +13,4,0,1,4,429081,0,2585.924,27.86516,0,16,1,0,0,0,0,0,0,0,0,0,0,0,1,73.4,6.9,0,61.4,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,61.4,7.858225,0,,0 +13,4,0,1,5,429081,0,2585.924,28.86516,0,16,1,0,0,0,0,0,0,0,0,0,0,0,1,73.4,6.9,0,61.4,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,61.4,7.858225,0,,0 +13,4,0,1,1,429107,0,9110.264,31.06366,0,13,1,3.575077,6.511747,0,0,0,10.08682,0,0,0,1,0,4,81.9,6.9,0,67,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,67,9.117267,1.386294,2.31123,1 +13,4,0,1,2,429107,0,9110.264,32.06366,0,13,1,4.688232,8.321612,0,0,0,13.00985,0,0,0,1,0,4,81.9,6.9,0,67,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,67,9.117267,1.386294,2.565706,1 +13,4,0,1,3,429107,0,9110.264,33.06366,0,13,1,11.17799,12.89768,0,0,0,24.07567,0,0,0,2,0,4,81.9,6.9,0,67,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,67,9.117267,1.386294,3.181202,1 +13,4,0,1,1,429108,0,9110.264,2.190281,1,12,1,2.553626,11.36364,0,0,0,13.91726,0,0,0,1,0,4,83.39137,9.967326,0,77.8,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,77.8,9.117267,1.386294,2.63313,1 +13,4,0,1,2,429108,0,9110.264,3.190281,1,12,1,3.750586,2.812939,0,0,0,6.563526,0,0,0,1,0,4,83.39137,9.967326,0,77.8,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,77.8,9.117267,1.386294,1.881528,1 +13,4,0,1,3,429108,0,9110.264,4.19028,1,12,1,19.77644,6.878762,0,0,0,26.6552,0,0,0,3,0,4,83.39137,9.967326,0,77.8,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,77.8,9.117267,1.386294,3.282984,1 +13,4,0,1,1,429109,0,9110.264,25.91923,1,12,1,19.91828,20.68437,0,0,0,40.60266,0,0,0,5,0,4,45.7,24.1,0,47.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,47.7,9.117267,1.386294,3.703834,1 +13,4,0,1,2,429109,0,9110.264,26.91923,1,12,1,120.9564,25.55087,28.12939,0,0,174.6367,0,0,0,7,1,4,45.7,24.1,0,47.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,47.7,9.117267,1.386294,5.162708,1 +13,4,0,1,3,429109,0,9110.264,27.91923,1,12,1,16.76698,0,4.707653,0,0,21.47463,0,0,0,1,0,4,45.7,24.1,0,47.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,47.7,9.117267,1.386294,3.066872,1 +13,4,0,1,1,429110,0,9110.264,6.310746,0,12,1,13.78958,2.808989,0,0,0,16.59857,0,0,0,2,0,4,75,9.967326,0,37,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,37,9.117267,1.386294,2.809317,1 +13,4,0,1,2,429110,0,9110.264,7.310746,0,12,1,9.376465,5.625879,0,0,0,15.00234,0,0,0,2,0,4,75,9.967326,0,37,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,37,9.117267,1.386294,2.708206,1 +13,4,0,1,3,429110,0,9110.264,8.310746,0,12,1,4.299226,3.009458,0,0,0,7.308684,0,0,0,1,0,4,75,9.967326,0,37,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,37,9.117267,1.386294,1.989063,1 +10,4,50,1,1,429174,0,11900.29,12.79945,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,81.7,9.967326,0,55.6,1000,1000,1,1,1.609438,6.907755,0,3.931826,7.600903,0,0,0,55.6,9.384402,1.609438,,0 +10,4,50,1,2,429174,0,11900.29,13.79945,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,81.7,9.967326,0,55.6,1000,1000,1,1,1.609438,6.907755,0,3.931826,7.600903,0,0,0,55.6,9.384402,1.609438,,0 +10,4,50,1,3,429174,0,11900.29,14.79945,1,12,1,6.412997,1.633177,0,11.75716,0,8.046174,0,0,5,1,0,5,81.7,9.967326,0,55.6,1000,1000,1,1,1.609438,6.907755,0,3.931826,7.600903,0,0,0,55.6,9.384402,1.609438,2.085197,1 +10,4,50,1,1,429175,0,11900.29,17.57153,1,12,1,50.10122,0,32.38866,0,0,82.48988,0,0,0,5,0,5,54.8,17.2,0,65.9,1000,1000,1,1,1.609438,6.907755,0,3.931826,7.600903,0,0,0,65.9,9.384402,1.609438,4.412675,1 +10,4,50,1,2,429175,0,11900.29,18.57153,1,12,1,5.594406,0,0,0,0,5.594406,0,0,0,1,0,5,54.8,17.2,0,65.9,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,65.9,9.384402,1.609438,1.721767,1 +10,4,50,1,3,429175,0,11900.29,19.57153,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,54.8,17.2,0,65.9,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,65.9,9.384402,1.609438,,0 +10,4,50,1,1,429176,0,11900.29,18.44216,0,11,1,0,0,0,0,0,0,0,0,0,0,0,5,79.8,3.4,0,59.5,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,59.5,9.384402,1.609438,,0 +10,4,50,1,2,429176,0,11900.29,19.44216,0,11,1,5.594406,0,0,0,0,5.594406,0,0,0,1,0,5,79.8,3.4,0,59.5,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,59.5,9.384402,1.609438,1.721767,1 +10,4,50,1,3,429176,0,11900.29,20.44216,0,11,1,17.63574,0,0,0,0,17.63574,0,0,0,0,0,5,79.8,3.4,0,59.5,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,59.5,9.384402,1.609438,2.869928,1 +10,4,50,1,1,429177,0,11900.29,42.67214,1,12,1,39.98988,13.01113,0,0,0,53.00101,0,0,0,3,0,5,73.9,20.7,1,43.2,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,1,0,0,43.2,9.384402,1.609438,3.970311,1 +10,4,50,1,2,429177,0,11900.29,43.67214,1,12,1,26.57343,15.92075,24.24242,0,0,66.7366,0,0,0,3,1,5,73.9,20.7,1,43.2,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,1,0,0,43.2,9.384402,1.609438,4.200754,1 +10,4,50,1,3,429177,0,11900.29,44.67214,1,12,1,266.9944,67.0201,0,11.75716,370.3506,704.3651,1,0,5,9,0,5,73.9,20.7,1,43.2,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,1,0,0,43.2,9.384402,1.609438,6.557297,1 +10,4,50,1,1,429178,0,11900.29,46.39014,0,12,1,10.12146,0,47.57085,0,0,57.69231,0,0,0,1,0,5,62.3,6.9,0,77.3,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,77.3,9.384402,1.609438,4.055124,1 +10,4,50,1,2,429178,0,11900.29,47.39014,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,62.3,6.9,0,77.3,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,77.3,9.384402,1.609438,,0 +10,4,50,1,3,429178,0,11900.29,48.39014,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,62.3,6.9,0,77.3,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,77.3,9.384402,1.609438,,0 +10,4,50,1,1,429253,0,12486.22,32.31211,0,12,1,38.81512,6.537283,0,0,0,45.3524,0,0,0,3,0,4,73.9,6.9,1,72.7,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,1,0,0,72.7,9.432461,1.386294,3.814463,1 +10,4,50,1,2,429253,0,12486.22,33.31211,0,12,1,0,12.23629,0,0,0,12.23629,0,0,0,0,0,4,73.9,6.9,1,72.7,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,1,0,0,72.7,9.432461,1.386294,2.504406,1 +10,4,50,1,3,429253,0,12486.22,34.31211,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,73.9,6.9,1,72.7,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,1,0,0,72.7,9.432461,1.386294,,0 +10,4,50,1,4,429253,0,12486.22,35.31211,0,12,1,5.816208,2.481582,0,0,0,8.29779,0,0,0,1,0,4,73.9,6.9,1,72.7,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,1,0,0,72.7,9.432461,1.386294,2.115989,1 +10,4,50,1,5,429253,0,12486.22,36.31211,0,12,1,62.6327,1.2385,0,0,0,63.8712,0,0,0,2,0,4,73.9,6.9,1,72.7,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,1,0,0,72.7,9.432461,1.386294,4.156868,1 +10,4,50,1,1,429254,0,12486.22,7.307324,0,15,1,12.25741,16.5475,0,0,0,28.8049,0,0,0,2,0,4,81.7,9.967326,0,88.9,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,88.9,9.432461,1.386294,3.360546,1 +10,4,50,1,2,429254,0,12486.22,8.307323,0,15,1,0,0,0,0,0,0,0,0,0,0,0,4,81.7,9.967326,0,88.9,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,88.9,9.432461,1.386294,,0 +10,4,50,1,3,429254,0,12486.22,9.307323,0,15,1,18.9166,0,0,0,0,18.9166,0,0,0,2,0,4,81.7,9.967326,0,88.9,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,88.9,9.432461,1.386294,2.94004,1 +10,4,50,1,4,429254,0,12486.22,10.30732,0,15,1,164.715,10.11245,7.754944,0,0,182.5824,0,0,0,13,0,4,81.7,9.967326,0,88.9,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,88.9,9.432461,1.386294,5.207201,1 +10,4,50,1,5,429254,0,12486.22,11.30732,0,15,1,39.45506,0,0,0,0,39.45506,0,0,0,4,0,4,81.7,9.967326,0,88.9,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,88.9,9.432461,1.386294,3.675162,1 +10,4,50,1,1,429255,0,12486.22,36.564,1,15,1,52.98774,3.064351,0,0,0,56.05209,0,0,0,1,0,4,76.1,13.8,0,78.4,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,78.4,9.432461,1.386294,4.026281,1 +10,4,50,1,2,429255,0,12486.22,37.564,1,15,1,0,2.742616,0,0,0,2.742616,0,0,0,0,0,4,76.1,13.8,0,78.4,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,78.4,9.432461,1.386294,1.008912,1 +10,4,50,1,3,429255,0,12486.22,38.564,1,15,1,12.89768,0,0,0,0,12.89768,0,0,0,1,0,4,76.1,13.8,0,78.4,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,78.4,9.432461,1.386294,2.557047,1 +10,4,50,1,4,429255,0,12486.22,39.564,1,15,1,85.69213,11.62466,0,341.2175,0,97.31679,0,0,16,5,0,4,76.1,13.8,0,78.4,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,78.4,9.432461,1.386294,4.577971,1 +10,4,50,1,5,429255,0,12486.22,40.564,1,15,1,81.20665,0,0,921.7976,0,81.20665,0,0,45,3,0,4,76.1,13.8,0,78.4,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,78.4,9.432461,1.386294,4.396997,1 +10,4,50,1,1,429256,0,12486.22,9.722108,0,15,1,49.02962,0,0,0,0,49.02962,0,0,0,1,0,4,80,9.967326,0,88.9,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,88.9,9.432461,1.386294,3.892425,1 +10,4,50,1,2,429256,0,12486.22,10.72211,0,15,1,3.281763,6.28692,0,0,0,9.568683,0,0,0,1,0,4,80,9.967326,0,88.9,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,88.9,9.432461,1.386294,2.258496,1 +10,4,50,1,3,429256,0,12486.22,11.72211,0,15,1,23.64574,0,0,0,0,23.64574,0,0,0,3,0,4,80,9.967326,0,88.9,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,88.9,9.432461,1.386294,3.163183,1 +10,4,50,1,4,429256,0,12486.22,12.72211,0,15,1,4.556029,9.747964,0,0,0,14.30399,0,0,0,1,0,4,80,9.967326,0,88.9,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,88.9,9.432461,1.386294,2.660539,1 +10,4,50,1,5,429256,0,12486.22,13.72211,0,15,1,39.27813,0,0,0,0,39.27813,0,0,0,3,0,4,80,9.967326,0,88.9,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,88.9,9.432461,1.386294,3.670668,1 +13,4,0,1,1,429282,0,7910.823,37.01848,1,12,1,35.8502,5.161943,23.27935,0,0,64.2915,0,0,0,1,0,4,85.1,13.8,0,88.6,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,88.6,8.976113,1.386294,4.163427,1 +13,4,0,1,2,429282,0,7910.823,38.01848,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,85.1,13.8,0,88.6,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,88.6,8.976113,1.386294,,0 +13,4,0,1,3,429282,0,7910.823,39.01848,1,12,1,21.37666,0,24.79692,0,0,46.17358,0,0,0,2,1,4,85.1,13.8,0,88.6,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,88.6,8.976113,1.386294,3.832408,1 +13,4,0,1,1,429283,0,7910.823,17.1718,1,12,1,73.88664,7.57085,0,0,0,81.45749,0,0,0,3,0,4,66.5,6.9,0,79.5,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,79.5,8.976113,1.386294,4.400081,1 +13,4,0,1,2,429283,0,7910.823,18.1718,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,66.5,6.9,0,79.5,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,79.5,8.976113,1.386294,,0 +13,4,0,1,3,429283,0,7910.823,19.1718,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,66.5,6.9,0,79.5,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,79.5,8.976113,1.386294,,0 +13,4,0,1,1,429284,0,7910.823,6.809035,0,12,1,19.84818,0,0,0,0,19.84818,0,0,0,2,0,4,98.3,9.967326,0,70.4,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,70.4,8.976113,1.386294,2.988112,1 +13,4,0,1,2,429284,0,7910.823,7.809035,0,12,1,4.662004,0,0,0,0,4.662004,0,0,0,1,0,4,98.3,9.967326,0,70.4,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,70.4,8.976113,1.386294,1.539446,1 +13,4,0,1,3,429284,0,7910.823,8.809035,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,98.3,9.967326,0,70.4,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,70.4,8.976113,1.386294,,0 +13,4,0,1,1,429285,0,7910.823,14.60096,1,12,1,29.35223,1.007085,0,0,0,30.35931,0,0,0,6,0,4,67.6,6.9,0,52.3,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,52.3,8.976113,1.386294,3.413103,1 +13,4,0,1,2,429285,0,7910.823,15.60096,1,12,1,18.18182,0,0,0,0,18.18182,0,0,0,3,0,4,67.6,6.9,0,52.3,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,52.3,8.976113,1.386294,2.900422,1 +13,4,0,1,3,429285,0,7910.823,16.60096,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,67.6,6.9,0,52.3,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,52.3,8.976113,1.386294,,0 +13,4,0,0,1,429286,0,2817.009,25.03765,1,14,1,0,0,0,0,0,0,0,0,0,0,0,1,61.7,10.3,0,85.2,150,302.2,0,0,0,5.711089,1,4.564348,5.061929,1,0,0,85.2,7.943786,0,,0 +13,4,0,0,2,429286,0,2817.009,26.03765,1,14,1,0,0,0,0,0,0,0,0,0,0,0,1,61.7,10.3,0,85.2,150,302.2,0,0,0,5.711089,1,4.564348,5.061929,1,0,0,85.2,7.943786,0,,0 +13,4,0,0,3,429286,0,2817.009,27.03765,1,14,1,10.68833,0,0,0,0,10.68833,0,0,0,2,0,1,61.7,10.3,0,85.2,150,302.2,0,0,0,5.711089,1,4.564348,5.061929,1,0,0,85.2,7.943786,0,2.369152,1 +11,4,0,0,1,429291,0,1722.581,52.73648,1,18,1,87.43616,37.30848,0,0,0,124.7446,0,0,0,8,0,1,54.3,31,1,58,0,0,0,0,0,0,0,0,0,1,0,0,58,7.452159,0,4.826269,1 +11,4,0,0,2,429291,0,1722.581,53.73648,1,18,1,109.1186,74.46789,37.97468,0,0,221.5612,0,0,0,4,1,1,54.3,31,1,58,0,0,0,0,0,0,0,0,0,1,0,0,58,7.452159,0,5.400699,1 +11,4,0,0,3,429291,0,1722.581,54.73648,1,18,1,46.86156,81.74979,0,0,0,128.6113,0,0,0,4,0,1,54.3,31,1,58,0,0,0,0,0,0,0,0,0,1,0,0,58,7.452159,0,4.856795,1 +11,4,0,0,1,429292,0,4792.375,21.34155,0,12,1,56.94586,0,0,0,0,56.94586,0,0,0,2,0,1,58,13.8,0,84.5,0,150.8,0,0,0,5.015954,0,0,0,0,0,0,84.5,8.47499,0,4.042101,1 +11,4,0,0,2,429292,0,4792.375,22.34155,0,12,1,0,2.695734,0,0,532.5832,535.2789,1,0,0,0,0,1,58,13.8,0,84.5,0,150.8,0,0,0,5.015954,0,0,0,0,0,0,84.5,8.47499,0,6.282788,1 +11,4,0,0,3,429292,0,4792.375,23.34155,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,58,13.8,0,84.5,0,150.8,0,0,0,5.015954,0,0,0,0,0,0,84.5,8.47499,0,,0 +13,4,0,1,1,429293,0,8915.543,28.38056,1,16,1,148.6134,9.008097,0,0,0,157.6215,0,0,0,8,0,2,67,17.2,1,25,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,1,0,25,9.095664,.6931472,5.060196,1 +13,4,0,1,2,429293,0,8915.543,29.38056,1,16,1,183.4965,64.21912,11.18881,0,629.8602,888.7646,1,0,0,10,0,2,67,17.2,1,25,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,1,0,25,9.095664,.6931472,6.789833,1 +13,4,0,1,3,429293,0,8915.543,30.38056,1,16,1,57.28944,89.61095,15.81873,0,0,162.7191,0,0,0,7,0,2,67,17.2,1,25,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,1,0,25,9.095664,.6931472,5.092025,1 +13,4,0,1,4,429293,0,8915.543,31.38056,1,16,1,198.5204,84.72329,0,0,0,283.2437,0,0,0,9,0,2,67,17.2,1,25,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,1,0,25,9.095664,.6931472,5.646307,1 +13,4,0,1,5,429293,0,8915.543,32.38056,1,16,1,134.3519,85.37057,29.1535,0,0,248.876,0,0,0,9,0,2,67,17.2,1,25,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,1,0,25,9.095664,.6931472,5.516955,1 +13,4,0,1,1,429294,0,8915.543,28.43806,0,16,1,3.036437,3.289474,0,0,0,6.325911,0,0,0,1,0,2,67.6,24.1,1,65.5,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,65.5,9.095664,.6931472,1.844654,1 +13,4,0,1,2,429294,0,8915.543,29.43806,0,16,1,92.65734,5.547786,5.594406,0,0,103.7995,0,0,0,7,0,2,67.6,24.1,1,65.5,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,65.5,9.095664,.6931472,4.642461,1 +13,4,0,1,3,429294,0,8915.543,30.43806,0,16,1,34.41642,4.852501,0,0,0,39.26892,0,0,0,4,0,2,67.6,24.1,1,65.5,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,65.5,9.095664,.6931472,3.670433,1 +13,4,0,1,4,429294,0,8915.543,31.43806,0,16,1,23.4435,4.727133,0,0,0,28.17064,0,0,0,4,0,2,67.6,24.1,1,65.5,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,65.5,9.095664,.6931472,3.33828,1 +13,4,0,1,5,429294,0,8915.543,32.43806,0,16,1,131.3663,5.619951,22.83105,42.14963,0,159.8174,0,0,3,5,0,2,67.6,24.1,1,65.5,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,65.5,9.095664,.6931472,5.074032,1 +13,4,0,1,1,429307,0,10139.59,43.61396,1,12,1,31.15424,64.81104,49.49949,0,0,145.4648,0,0,0,3,0,4,92.6,6.9,0,80.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,80.7,9.224301,1.386294,4.979934,1 +13,4,0,1,2,429307,0,10139.59,44.61396,1,12,1,85.32583,62.44726,33.84435,0,0,181.6174,0,0,0,2,0,4,92.6,6.9,0,80.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,80.7,9.224301,1.386294,5.201902,1 +13,4,0,1,3,429307,0,10139.59,45.61396,1,12,1,94.04557,67.43336,44.64746,120.3783,0,206.1264,0,0,7,6,0,4,92.6,6.9,0,80.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,80.7,9.224301,1.386294,5.32849,1 +13,4,0,1,1,429308,0,10139.59,44.05476,0,12,1,101.6445,6.358529,0,0,0,108.0031,0,0,0,2,0,4,62.8,3.4,0,72.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,72.7,9.224301,1.386294,4.682159,1 +13,4,0,1,2,429308,0,10139.59,45.05476,0,12,1,9.376465,0,28.44819,0,0,37.82466,0,0,0,1,0,4,62.8,3.4,0,72.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,72.7,9.224301,1.386294,3.632961,1 +13,4,0,1,3,429308,0,10139.59,46.05476,0,12,1,37.40327,0,31.74978,0,0,69.15305,0,0,0,4,0,4,62.8,3.4,0,72.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,72.7,9.224301,1.386294,4.236322,1 +13,4,0,1,1,429309,0,10139.59,12.49008,0,12,1,76.60879,5.87334,0,0,0,82.48212,0,0,0,3,0,4,93.3,9.967326,0,74.1,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,74.1,9.224301,1.386294,4.412581,1 +13,4,0,1,2,429309,0,10139.59,13.49008,0,12,1,9.376465,6.25879,0,0,0,15.63526,0,0,0,1,0,4,93.3,9.967326,0,74.1,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,74.1,9.224301,1.386294,2.749528,1 +13,4,0,1,3,429309,0,10139.59,14.49008,0,12,1,242.9106,6.423044,0,0,0,249.3336,0,0,0,2,0,4,93.3,9.967326,0,74.1,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,74.1,9.224301,1.386294,5.518792,1 +13,4,0,1,1,429310,0,10139.59,20.53662,1,13,1,24.00409,0,30.13279,0,0,54.13688,0,0,0,2,0,4,87.8,3.4,0,88.6,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,88.6,9.224301,1.386294,3.991516,1 +13,4,0,1,2,429310,0,10139.59,21.53662,1,13,1,132.4426,5.391468,30.94234,0,0,168.7764,0,0,0,7,0,4,87.8,3.4,0,88.6,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,88.6,9.224301,1.386294,5.128574,1 +13,4,0,1,3,429310,0,10139.59,22.53662,1,13,1,64.4239,23.78332,20.06879,0,0,108.276,0,0,0,6,0,4,87.8,3.4,0,88.6,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,88.6,9.224301,1.386294,4.684684,1 +13,4,0,1,1,429311,0,2022.874,21.9603,1,14,1,58.98877,24.46374,15.32176,0,0,98.77426,0,0,0,5,1,1,91,3.4,0,90.9,150,349.32,0,0,0,5.855989,1,4.564348,5.061929,0,0,0,90.9,7.612769,0,4.592837,1 +13,4,0,1,2,429311,0,2022.874,22.9603,1,14,1,68.87013,25.15237,23.44116,0,0,117.4637,0,0,0,9,0,1,91,3.4,0,90.9,150,349.32,0,0,0,5.855989,1,4.564348,5.061929,0,0,0,90.9,7.612769,0,4.766129,1 +13,4,0,1,3,429311,0,2022.874,23.9603,1,14,1,109.2003,11.6595,4.94411,0,570.0559,695.8599,1,0,0,11,0,1,91,3.4,0,90.9,150,349.32,0,0,0,5.855989,1,4.564348,5.061929,0,0,0,90.9,7.612769,0,6.545148,1 +6,4,25,1,1,429317,0,8195.308,13.9384,1,10,1,36.51685,14.27477,0,0,0,50.79163,0,0,0,4,0,5,81.7,9.967326,0,66.7,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,1,0,0,66.7,9.011439,1.609438,3.927732,1 +6,4,25,1,2,429317,0,8195.308,14.9384,1,10,1,74.19128,29.89217,29.53587,395.6868,0,133.6193,0,0,46,3,3,5,81.7,9.967326,0,66.7,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,1,0,0,66.7,9.011439,1.609438,4.894995,1 +6,4,25,1,3,429317,0,8195.308,15.9384,1,10,1,298.1728,2.626827,19.77644,319.8624,0,320.5761,0,0,56,7,1,5,81.7,9.967326,0,66.7,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,1,0,0,66.7,9.011439,1.609438,5.77012,1 +6,4,25,1,1,429318,0,8195.308,34.19302,0,12,1,25.53626,23.27886,0,0,1456.369,1505.184,1,0,0,3,0,5,78.7,6.9,0,80.7,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,80.7,9.011439,1.609438,7.31667,1 +6,4,25,1,2,429318,0,8195.308,35.19302,0,12,1,51.57056,37.61369,32.81763,450.0703,279.0905,401.0923,1,0,50,4,0,5,78.7,6.9,0,80.7,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,80.7,9.011439,1.609438,5.994192,1 +6,4,25,1,3,429318,0,8195.308,36.19302,0,12,1,393.2502,67.85468,0,150.4729,585.4901,1046.595,2,0,23,17,0,5,78.7,6.9,0,80.7,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,80.7,9.011439,1.609438,6.953297,1 +6,4,25,1,1,429319,0,8195.308,11.42779,1,10,1,5.107252,9.065372,0,0,0,14.17263,0,0,0,1,0,5,71.7,9.967326,0,96.3,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,1,0,0,96.3,9.011439,1.609438,2.651312,1 +6,4,25,1,2,429319,0,8195.308,12.42779,1,10,1,9.376465,0,0,0,0,9.376465,0,0,0,1,0,5,71.7,9.967326,0,96.3,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,1,0,0,96.3,9.011439,1.609438,2.238203,1 +6,4,25,1,3,429319,0,8195.308,13.42779,1,10,1,67.60533,0,5.210662,0,0,72.81599,0,0,0,5,0,5,71.7,9.967326,0,96.3,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,1,0,0,96.3,9.011439,1.609438,4.287936,1 +6,4,25,1,1,429320,0,8195.308,30.48871,1,10,1,39.83657,5.812053,0,0,559.9438,605.5925,1,0,0,6,0,5,87.2,17.2,0,72.7,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,72.7,9.011439,1.609438,6.406207,1 +6,4,25,1,2,429320,0,8195.308,31.48871,1,10,1,25.78528,0,33.28645,0,0,59.07173,0,0,0,2,0,5,87.2,17.2,0,72.7,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,72.7,9.011439,1.609438,4.078753,1 +6,4,25,1,3,429320,0,8195.308,32.4887,1,10,1,73.94669,6.534824,17.17541,36.54342,0,97.65692,0,0,6,6,0,5,87.2,17.2,0,72.7,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,72.7,9.011439,1.609438,4.58146,1 +6,4,25,1,1,429321,0,8195.308,12.45175,0,10,1,10.2145,0,0,0,0,10.2145,0,0,0,1,0,5,73.3,9.967326,0,51.9,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,51.9,9.011439,1.609438,2.323809,1 +6,4,25,1,2,429321,0,8195.308,13.45175,0,10,1,20.04219,0,0,0,0,20.04219,0,0,0,2,0,5,73.3,9.967326,0,51.9,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,51.9,9.011439,1.609438,2.99784,1 +6,4,25,1,3,429321,0,8195.308,14.45175,0,10,1,10.74806,0,28.37489,0,0,39.12296,0,0,0,1,0,5,73.3,9.967326,0,51.9,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,51.9,9.011439,1.609438,3.666709,1 +14,4,95,1,1,429322,0,2469.208,4.544832,1,13,1,18.7247,4.554656,0,0,0,23.27935,0,0,0,3,0,2,83.39137,9.967326,0,48.1,18,18,1,1,.6931472,2.890372,0,4.564348,2.941665,0,0,0,48.1,7.812058,.6931472,3.147567,1 +14,4,95,1,2,429322,0,2469.208,5.544832,1,13,1,0,0,0,0,0,0,0,0,0,0,0,2,83.39137,9.967326,0,48.1,18,18,1,1,.6931472,2.890372,0,4.564348,2.941665,0,0,0,48.1,7.812058,.6931472,,0 +14,4,95,1,3,429322,0,2469.208,6.544832,1,13,1,5.130398,4.467721,0,0,0,9.598119,0,0,0,1,0,2,83.39137,9.967326,0,48.1,18,18,1,1,.6931472,2.890372,0,4.564348,2.941665,0,0,0,48.1,7.812058,.6931472,2.261567,1 +14,4,95,1,1,429323,0,2469.208,27.09103,1,13,1,76.05264,14.14474,0,0,0,90.19736,0,0,0,6,0,2,58.5,20.7,0,70.5,18,18,0,0,.6931472,2.890372,0,4.564348,2.941665,1,0,0,70.5,7.812058,.6931472,4.502,1 +14,4,95,1,2,429323,0,2469.208,28.09103,1,13,1,12.12121,9.90676,0,0,0,22.02797,0,0,0,2,0,2,58.5,20.7,0,70.5,18,18,0,0,.6931472,2.890372,0,4.564348,2.941665,1,0,0,70.5,7.812058,.6931472,3.092313,1 +14,4,95,1,3,429323,0,2469.208,29.09103,1,13,1,24.36939,11.07311,0,0,0,35.4425,0,0,0,1,1,2,58.5,20.7,0,70.5,18,18,0,0,.6931472,2.890372,0,4.564348,2.941665,1,0,0,70.5,7.812058,.6931472,3.567912,1 +17,4,25,1,1,429336,0,8654.546,4.120465,0,12,1,30.87045,17.00911,0,0,0,47.87955,0,0,0,4,0,3,83.39137,9.967326,0,66.7,700,700,1,0,1.098612,6.55108,0,3.258096,7.937375,0,1,0,66.7,9.065955,1.098612,3.868689,1 +17,4,25,1,2,429336,0,8654.546,5.120465,0,12,1,16.78322,16.39627,0,0,0,33.17949,0,0,0,3,0,3,83.39137,9.967326,0,66.7,700,700,1,0,1.098612,6.55108,0,3.258096,7.937375,0,1,0,66.7,9.065955,1.098612,3.501932,1 +17,4,25,1,3,429336,0,8654.546,6.120465,0,12,1,9.405729,10.97905,0,0,0,20.38478,0,0,0,2,0,3,83.39137,9.967326,0,66.7,700,700,1,0,1.098612,6.55108,0,3.258096,7.937375,0,1,0,66.7,9.065955,1.098612,3.014788,1 +17,4,25,1,4,429336,0,8654.546,7.120465,0,12,1,0,6.102998,0,0,0,6.102998,0,0,0,0,0,3,83.39137,9.967326,0,66.7,700,700,1,0,1.098612,6.55108,0,3.258096,7.937375,0,1,0,66.7,9.065955,1.098612,1.80878,1 +17,4,25,1,5,429336,0,8654.546,8.120465,0,12,1,6.322445,6.25922,0,0,0,12.58167,0,0,0,1,0,3,83.39137,9.967326,0,66.7,700,700,1,0,1.098612,6.55108,0,3.258096,7.937375,0,1,0,66.7,9.065955,1.098612,2.532241,1 +17,4,25,1,1,429337,0,8654.546,32.81862,1,12,1,265.1822,104.2966,28.34008,0,0,397.8188,0,0,0,14,1,3,59.6,24.1,0,54.5,700,700,0,0,1.098612,6.55108,0,3.258096,7.937375,0,1,0,54.5,9.065955,1.098612,5.985997,1 +17,4,25,1,2,429337,0,8654.546,33.81862,1,12,1,238.6946,69.23077,0,0,0,307.9254,0,0,0,13,0,3,59.6,24.1,0,54.5,700,700,0,0,1.098612,6.55108,0,3.258096,7.937375,0,1,0,54.5,9.065955,1.098612,5.729857,1 +17,4,25,1,3,429337,0,8654.546,34.81862,1,12,1,89.14066,35.823,0,0,0,124.9637,0,0,0,4,1,3,59.6,24.1,0,54.5,700,700,0,0,1.098612,6.55108,0,3.258096,7.937375,0,1,0,54.5,9.065955,1.098612,4.828023,1 +17,4,25,1,4,429337,0,8654.546,35.81862,1,12,1,25.3651,39.79631,0,0,0,65.16142,0,0,0,1,1,3,59.6,24.1,0,54.5,700,700,0,0,1.098612,6.55108,0,3.258096,7.937375,0,1,0,54.5,9.065955,1.098612,4.176867,1 +17,4,25,1,5,429337,0,8654.546,36.81862,1,12,1,14.75237,25.7745,24.23604,0,0,64.76291,0,0,0,1,1,3,59.6,24.1,0,54.5,700,700,0,0,1.098612,6.55108,0,3.258096,7.937375,0,1,0,54.5,9.065955,1.098612,4.170733,1 +17,4,25,1,1,429338,0,8654.546,36.49829,0,13,1,27.83401,0,28.84615,0,0,56.68016,0,0,0,1,1,3,73.9,6.9,0,72.7,700,700,0,0,1.098612,6.55108,0,3.258096,7.937375,1,0,0,72.7,9.065955,1.098612,4.037424,1 +17,4,25,1,2,429338,0,8654.546,37.49829,0,13,1,13.98601,9.431235,0,0,0,23.41725,0,0,0,2,0,3,73.9,6.9,0,72.7,700,700,0,0,1.098612,6.55108,0,3.258096,7.937375,1,0,0,72.7,9.065955,1.098612,3.153473,1 +17,4,25,1,3,429338,0,8654.546,38.49829,0,13,1,0,0,0,0,0,0,0,0,0,0,0,3,73.9,6.9,0,72.7,700,700,0,0,1.098612,6.55108,0,3.258096,7.937375,1,0,0,72.7,9.065955,1.098612,,0 +17,4,25,1,4,429338,0,8654.546,39.49829,0,13,1,0,0,0,0,0,0,0,0,0,0,0,3,73.9,6.9,0,72.7,700,700,0,0,1.098612,6.55108,0,3.258096,7.937375,1,0,0,72.7,9.065955,1.098612,,0 +17,4,25,1,5,429338,0,8654.546,40.49829,0,13,1,24.58728,0,0,0,0,24.58728,0,0,0,1,0,3,73.9,6.9,0,72.7,700,700,0,0,1.098612,6.55108,0,3.258096,7.937375,1,0,0,72.7,9.065955,1.098612,3.202229,1 +14,4,95,1,1,429339,0,12450.44,31.63587,0,13,1,0,0,0,0,0,0,0,0,0,0,0,5,97.3,0,0,92,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,92,9.429591,1.609438,,0 +14,4,95,1,2,429339,0,12450.44,32.63586,0,13,1,0,0,0,0,0,0,0,0,0,0,0,5,97.3,0,0,92,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,92,9.429591,1.609438,,0 +14,4,95,1,3,429339,0,12450.44,33.63586,0,13,1,29.92732,0,8.550663,0,0,38.47798,0,0,0,0,2,5,97.3,0,0,92,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,92,9.429591,1.609438,3.650086,1 +14,4,95,1,1,429340,0,12450.44,31.28816,1,16,1,0,0,0,0,0,0,0,0,0,0,0,5,88.8,0,0,94.3,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,94.3,9.429591,1.609438,,0 +14,4,95,1,2,429340,0,12450.44,32.28816,1,16,1,0,0,0,0,0,0,0,0,0,0,0,5,88.8,0,0,94.3,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,94.3,9.429591,1.609438,,0 +14,4,95,1,3,429340,0,12450.44,33.28816,1,16,1,0,0,0,0,0,0,0,0,0,0,0,5,88.8,0,0,94.3,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,94.3,9.429591,1.609438,,0 +14,4,95,1,1,429341,0,12450.44,4.503765,1,16,1,0,0,0,0,0,0,0,0,0,0,0,5,83.39137,9.967326,0,85.2,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,85.2,9.429591,1.609438,,0 +14,4,95,1,2,429341,0,12450.44,5.503765,1,16,1,0,0,0,0,0,0,0,0,0,0,0,5,83.39137,9.967326,0,85.2,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,85.2,9.429591,1.609438,,0 +14,4,95,1,3,429341,0,12450.44,6.503765,1,16,1,0,0,0,0,0,0,0,0,0,0,0,5,83.39137,9.967326,0,85.2,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,85.2,9.429591,1.609438,,0 +14,4,95,1,1,429342,0,12450.44,6.49692,0,16,1,0,0,0,0,0,0,0,0,0,0,0,5,90,9.967326,0,74.1,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,74.1,9.429591,1.609438,,0 +14,4,95,1,2,429342,0,12450.44,7.49692,0,16,1,0,0,0,0,0,0,0,0,0,0,0,5,90,9.967326,0,74.1,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,74.1,9.429591,1.609438,,0 +14,4,95,1,3,429342,0,12450.44,8.49692,0,16,1,4.275331,2.090637,0,0,0,6.365968,0,0,0,1,0,5,90,9.967326,0,74.1,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,74.1,9.429591,1.609438,1.850966,1 +14,4,95,1,1,429343,0,12450.44,9.738535,0,16,1,0,0,0,0,0,0,0,0,0,0,0,5,95,9.967326,0,66.7,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,66.7,9.429591,1.609438,,0 +14,4,95,1,2,429343,0,12450.44,10.73853,0,16,1,0,0,0,0,0,0,0,0,0,0,0,5,95,9.967326,0,66.7,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,66.7,9.429591,1.609438,,0 +14,4,95,1,3,429343,0,12450.44,11.73853,0,16,1,5.985464,0,0,0,0,5.985464,0,0,0,1,0,5,95,9.967326,0,66.7,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,66.7,9.429591,1.609438,1.789334,1 +16,4,95,1,1,429344,0,234.6041,23.63039,1,12,1,36.1083,3.441296,0,0,0,39.54959,0,0,0,3,0,1,67.6,10.3,0,81.8,300,0,0,0,0,0,0,4.564348,5.755076,0,0,0,81.8,5.462153,0,3.677556,1 +16,4,95,1,2,429344,0,234.6041,24.63039,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,67.6,10.3,0,81.8,300,0,0,0,0,0,0,4.564348,5.755076,0,0,0,81.8,5.462153,0,,0 +13,4,0,1,1,429353,0,8326.687,34.10267,0,12,1,13.66397,44.28138,0,0,0,57.94534,0,0,0,2,0,4,77.1,3.4,0,75,450,425,0,0,1.386294,6.052089,1,4.564348,6.160541,1,0,0,75,9.027341,1.386294,4.0595,1 +13,4,0,1,2,429353,0,8326.687,35.10267,0,12,1,41.02564,60.09324,0,0,0,101.1189,0,0,0,2,0,4,77.1,3.4,0,75,450,425,0,0,1.386294,6.052089,1,4.564348,6.160541,1,0,0,75,9.027341,1.386294,4.616297,1 +13,4,0,1,3,429353,0,8326.687,36.10267,0,12,1,131.1672,65.04916,0,0,0,196.2163,0,0,0,2,0,4,77.1,3.4,0,75,450,425,0,0,1.386294,6.052089,1,4.564348,6.160541,1,0,0,75,9.027341,1.386294,5.279218,1 +13,4,0,1,1,429354,0,8326.687,9.702943,0,12,1,20.74899,0,0,0,0,20.74899,0,0,0,2,0,4,63.3,9.967326,0,100,450,425,1,0,1.386294,6.052089,1,4.564348,6.160541,0,0,0,100,9.027341,1.386294,3.032497,1 +13,4,0,1,2,429354,0,8326.687,10.70294,0,12,1,5.594406,0,0,0,0,5.594406,0,0,0,1,0,4,63.3,9.967326,0,100,450,425,1,0,1.386294,6.052089,1,4.564348,6.160541,0,0,0,100,9.027341,1.386294,1.721767,1 +13,4,0,1,3,429354,0,8326.687,11.70294,0,12,1,6.412997,0,1.710132,0,0,8.12313,0,0,0,1,0,4,63.3,9.967326,0,100,450,425,1,0,1.386294,6.052089,1,4.564348,6.160541,0,0,0,100,9.027341,1.386294,2.094716,1 +13,4,0,1,1,429355,0,8326.687,34.37372,1,12,1,36.77126,17.66194,0,0,0,54.4332,0,0,0,2,0,4,67.6,13.8,0,90.9,450,425,0,0,1.386294,6.052089,1,4.564348,6.160541,0,0,0,90.9,9.027341,1.386294,3.996974,1 +13,4,0,1,2,429355,0,8326.687,35.37372,1,12,1,19.58042,24.70862,25.64103,0,0,69.93007,0,0,0,2,0,4,67.6,13.8,0,90.9,450,425,0,0,1.386294,6.052089,1,4.564348,6.160541,0,0,0,90.9,9.027341,1.386294,4.247496,1 +13,4,0,1,3,429355,0,8326.687,36.37372,1,12,1,12.82599,23.51432,0,0,0,36.34032,0,0,0,1,0,4,67.6,13.8,0,90.9,450,425,0,0,1.386294,6.052089,1,4.564348,6.160541,0,0,0,90.9,9.027341,1.386294,3.592928,1 +13,4,0,1,1,429356,0,8326.687,6.954141,1,12,1,8.097166,0,0,0,0,8.097166,0,0,0,1,0,4,81.7,9.967326,0,100,450,425,1,1,1.386294,6.052089,1,4.564348,6.160541,0,0,0,100,9.027341,1.386294,2.091514,1 +13,4,0,1,2,429356,0,8326.687,7.954141,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,81.7,9.967326,0,100,450,425,1,1,1.386294,6.052089,1,4.564348,6.160541,0,0,0,100,9.027341,1.386294,,0 +13,4,0,1,3,429356,0,8326.687,8.954141,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,81.7,9.967326,0,100,450,425,1,1,1.386294,6.052089,1,4.564348,6.160541,0,0,0,100,9.027341,1.386294,,0 +13,4,0,1,1,429396,0,8216.422,15.69062,1,9,1,34.1573,6.332993,0,0,0,40.4903,0,0,0,3,0,3,70.7,3.4,0,53.4,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,1,0,0,53.4,9.014011,1.098612,3.701062,1 +13,4,0,1,2,429396,0,8216.422,16.69062,1,9,1,20.39381,1.80497,0,0,0,22.19878,0,0,0,1,0,3,70.7,3.4,0,53.4,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,1,0,0,53.4,9.014011,1.098612,3.100037,1 +13,4,0,1,3,429396,0,8216.422,17.69062,1,9,1,0,0,0,0,0,0,0,0,0,0,0,3,70.7,3.4,0,53.4,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,1,0,0,53.4,9.014011,1.098612,,0 +13,4,0,1,1,429397,0,8216.422,53.02122,1,9,1,167.4668,136.6701,43.92237,20.42901,0,348.0592,0,0,1,6,7,3,71.8,6.9,0,86.4,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,86.4,9.014011,1.098612,5.852373,1 +13,4,0,1,2,429397,0,8216.422,54.02122,1,9,1,98.45288,31.80497,0,0,0,130.2579,0,0,0,0,17,3,71.8,6.9,0,86.4,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,86.4,9.014011,1.098612,4.869516,1 +13,4,0,1,3,429397,0,8216.422,55.02122,1,9,1,32.99656,45.51161,0,0,0,78.50817,0,0,0,1,1,3,71.8,6.9,0,86.4,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,86.4,9.014011,1.098612,4.363203,1 +13,4,0,1,1,429398,0,8216.422,54.99247,0,9,1,35.24004,49.33606,0,0,0,84.5761,0,0,0,6,0,3,79.3,24.1,0,43.2,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,43.2,9.014011,1.098612,4.437652,1 +13,4,0,1,2,429398,0,8216.422,55.99247,0,9,1,7.032349,31.17675,0,0,0,38.2091,0,0,0,1,0,3,79.3,24.1,0,43.2,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,43.2,9.014011,1.098612,3.643074,1 +13,4,0,1,3,429398,0,8216.422,56.99247,0,9,1,23.64574,49.49699,29.23474,0,0,102.3775,0,0,0,1,1,3,79.3,24.1,0,43.2,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,43.2,9.014011,1.098612,4.628667,1 +13,4,0,1,1,429401,0,2856.892,59.66325,1,12,1,37.44939,35.32389,39.97976,0,0,112.753,0,0,0,6,0,1,62.8,31,0,53.4,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,53.4,7.957839,0,4.7252,1 +13,4,0,1,2,429401,0,2856.892,60.66325,1,12,1,11.18881,11.04895,0,0,0,22.23776,0,0,0,2,0,1,62.8,31,0,53.4,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,53.4,7.957839,0,3.101792,1 +13,4,0,1,3,429401,0,2856.892,61.66325,1,12,1,80.91064,10.66268,40.61565,0,0,132.189,0,0,0,6,0,1,62.8,31,0,53.4,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,53.4,7.957839,0,4.884233,1 +11,4,0,1,1,429463,0,4336.07,5.355236,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,88.3,9.967326,0,92.6,0,0,1,0,1.098612,0,0,0,0,0,0,0,92.6,8.374954,1.098612,,0 +11,4,0,1,2,429463,0,4336.07,6.355236,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,88.3,9.967326,0,92.6,0,0,1,0,1.098612,0,0,0,0,0,0,0,92.6,8.374954,1.098612,,0 +11,4,0,1,3,429463,0,4336.07,7.355236,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,88.3,9.967326,0,92.6,0,0,1,0,1.386294,0,0,0,0,0,0,0,92.6,8.374954,1.386294,,0 +11,4,0,1,1,429464,0,4336.07,7.876797,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,85,9.967326,0,66.7,0,0,1,1,1.098612,0,0,0,0,0,0,0,66.7,8.374954,1.098612,,0 +11,4,0,1,2,429464,0,4336.07,8.876797,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,85,9.967326,0,66.7,0,0,1,1,1.098612,0,0,0,0,0,0,0,66.7,8.374954,1.098612,,0 +11,4,0,1,3,429464,0,4336.07,9.876797,1,12,1,5.803955,0,0,0,0,5.803955,0,0,0,2,0,4,85,9.967326,0,66.7,0,0,1,1,1.386294,0,0,0,0,0,0,0,66.7,8.374954,1.386294,1.75854,1 +11,4,0,1,1,429465,0,4336.07,27.17591,1,12,1,15.32176,0,0,0,0,15.32176,0,0,0,1,0,3,78.7,0,0,84.1,0,0,0,0,1.098612,0,0,0,0,0,0,0,84.1,8.374954,1.098612,2.729274,1 +11,4,0,1,2,429465,0,4336.07,28.17591,1,12,1,0,0,0,0,7.032349,7.032349,1,1,0,0,0,3,78.7,0,0,84.1,0,0,0,0,1.098612,0,0,0,0,0,0,0,84.1,8.374954,1.098612,1.950521,1 +11,4,0,1,3,429465,0,4336.07,29.17591,1,12,1,36.04901,7.115219,0,0,0,43.16423,0,0,0,2,0,4,78.7,0,0,84.1,0,0,0,0,1.386294,0,0,0,0,0,0,0,84.1,8.374954,1.386294,3.765012,1 +11,4,0,1,1,429466,0,1759.531,23.84668,0,11,1,61.21587,0,0,0,0,61.21587,0,0,0,3,0,1,81.9,0,0,88.6,0,0,0,0,0,0,0,0,0,0,0,0,88.6,7.473371,0,4.114407,1 +11,4,0,1,2,429466,0,1759.531,24.84668,0,11,1,0,0,0,0,0,0,0,0,0,0,0,1,81.9,0,0,88.6,0,0,0,0,0,0,0,0,0,0,0,0,88.6,7.473371,0,,0 +11,4,0,1,3,429466,0,1759.531,25.84668,0,11,1,34.78543,6.337234,0,0,0,41.12267,0,0,0,5,0,1,81.9,0,0,88.6,0,0,0,0,0,0,0,0,0,0,0,0,88.6,7.473371,0,3.71656,1 +11,4,0,1,1,429534,0,4631.085,17.41821,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,78.7,0,0,92,0,492.84,1,0,2.079442,6.200184,0,0,0,0,0,0,92,8.440763,2.079442,,0 +11,4,0,1,2,429534,0,4631.085,18.41821,0,12,1,37.74027,40.3188,0,0,0,78.05907,0,0,0,4,0,8,78.7,0,0,92,0,492.84,0,0,2.079442,6.200184,0,0,0,0,0,0,92,8.440763,2.079442,4.357466,1 +11,4,0,1,3,429534,0,4631.085,19.41821,0,12,1,21.49613,52.38607,0,0,0,73.8822,0,0,0,5,0,7,78.7,0,0,92,0,492.84,0,0,1.94591,6.200184,0,0,0,0,0,0,92,8.440763,1.94591,4.302472,1 +11,4,0,1,1,429535,0,4631.085,43.73717,0,12,1,10.2145,0,12.76813,0,0,22.98264,0,0,0,0,1,8,86.7,6.9,0,64.8,0,492.84,0,0,2.079442,6.200184,0,0,0,1,0,0,64.8,8.440763,2.079442,3.134739,1 +11,4,0,1,2,429535,0,4631.085,44.73717,0,12,1,0,0,0,11.72058,0,0,0,0,1,0,0,8,86.7,6.9,0,64.8,0,492.84,0,0,2.079442,6.200184,0,0,0,1,0,0,64.8,8.440763,2.079442,,0 +11,4,0,1,3,429535,0,4631.085,45.73717,0,12,1,9.458298,0,0,21.49613,0,9.458298,0,0,2,0,1,7,86.7,6.9,0,64.8,0,492.84,0,0,1.94591,6.200184,0,0,0,1,0,0,64.8,8.440763,1.94591,2.246892,1 +11,4,0,1,1,429536,0,4631.085,16.07666,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,92,0,0,94.3,0,492.84,1,0,2.079442,6.200184,0,0,0,0,0,0,94.3,8.440763,2.079442,,0 +11,4,0,1,2,429536,0,4631.085,17.07666,0,12,1,4.688232,10.0797,0,0,0,14.76793,0,0,0,1,0,8,92,0,0,94.3,0,492.84,1,0,2.079442,6.200184,0,0,0,0,0,0,94.3,8.440763,2.079442,2.692458,1 +11,4,0,1,1,429537,0,4631.085,39.65777,1,12,1,10.2145,0,25.02554,0,0,35.24004,0,0,0,0,1,8,73.4,13.8,0,63.6,0,492.84,0,0,2.079442,6.200184,0,0,0,1,0,0,63.6,8.440763,2.079442,3.562183,1 +11,4,0,1,2,429537,0,4631.085,40.65777,1,12,1,24.37881,3.867792,0,82.04407,0,28.2466,0,0,4,2,0,8,73.4,13.8,0,63.6,0,492.84,0,0,2.079442,6.200184,0,0,0,1,0,0,63.6,8.440763,2.079442,3.340973,1 +11,4,0,1,3,429537,0,4631.085,41.65777,1,12,1,36.1135,19.62597,23.8607,214.9613,0,79.60017,0,0,11,3,1,7,73.4,13.8,0,63.6,0,492.84,0,0,1.94591,6.200184,0,0,0,1,0,0,63.6,8.440763,1.94591,4.377016,1 +11,4,0,1,1,429538,0,4631.085,10.98152,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,91.7,9.967326,0,70.4,0,492.84,1,0,2.079442,6.200184,0,0,0,0,0,0,70.4,8.440763,2.079442,,0 +11,4,0,1,2,429538,0,4631.085,11.98152,0,12,1,14.0647,1.851852,0,117.2058,0,15.91655,0,0,5,2,0,8,91.7,9.967326,0,70.4,0,492.84,1,0,2.079442,6.200184,0,0,0,0,0,0,70.4,8.440763,2.079442,2.767359,1 +11,4,0,1,3,429538,0,4631.085,12.98152,0,12,1,0,0,0,967.3259,0,0,0,0,41,0,0,7,91.7,9.967326,0,70.4,0,492.84,1,0,1.94591,6.200184,0,0,0,0,0,0,70.4,8.440763,1.94591,,0 +11,4,0,1,1,429539,0,4631.085,6.721424,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,93.3,9.967326,0,59.3,0,492.84,1,1,2.079442,6.200184,0,0,0,0,0,0,59.3,8.440763,2.079442,,0 +11,4,0,1,2,429539,0,4631.085,7.721424,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,93.3,9.967326,0,59.3,0,492.84,1,1,2.079442,6.200184,0,0,0,0,0,0,59.3,8.440763,2.079442,,0 +11,4,0,1,3,429539,0,4631.085,8.721424,1,12,1,0,0,0,0,0,0,0,0,0,0,0,7,93.3,9.967326,0,59.3,0,492.84,1,1,1.94591,6.200184,0,0,0,0,0,0,59.3,8.440763,1.94591,,0 +11,4,0,1,1,429540,0,4631.085,4.405202,1,12,1,8.682329,0,0,0,0,8.682329,0,0,0,1,0,8,83.39137,9.967326,0,70.4,0,492.84,1,1,2.079442,6.200184,0,0,0,0,0,0,70.4,8.440763,2.079442,2.16129,1 +11,4,0,1,2,429540,0,4631.085,5.405202,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,83.39137,9.967326,0,70.4,0,492.84,1,1,2.079442,6.200184,0,0,0,0,0,0,70.4,8.440763,2.079442,,0 +11,4,0,1,3,429540,0,4631.085,6.405202,1,12,1,4.299226,.9673259,0,0,0,5.266552,0,0,0,1,0,7,83.39137,9.967326,0,70.4,0,492.84,1,1,1.94591,6.200184,0,0,0,0,0,0,70.4,8.440763,1.94591,1.661376,1 +11,4,0,1,1,429541,0,4631.085,18.45859,1,11,1,12.76813,2.52809,28.60061,0,0,43.89684,0,0,0,1,1,8,81.9,6.9,0,76.1,0,492.84,0,0,2.079442,6.200184,0,0,0,0,0,0,76.1,8.440763,2.079442,3.781842,1 +11,4,0,1,2,429541,0,4631.085,19.45859,1,11,1,7.969995,0,15.93999,0,0,23.90999,0,0,0,0,1,8,81.9,6.9,0,76.1,0,492.84,0,0,2.079442,6.200184,0,0,0,0,0,0,76.1,8.440763,2.079442,3.174296,1 +11,4,0,1,3,429541,0,4631.085,20.45859,1,11,1,7.308684,0,0,0,0,7.308684,0,0,0,0,1,7,81.9,6.9,0,76.1,0,492.84,0,0,1.94591,6.200184,0,0,0,0,0,0,76.1,8.440763,1.94591,1.989063,1 +13,4,0,1,1,429565,0,8114.956,56.94456,1,12,1,51.46832,0,0,0,0,51.46832,0,0,0,3,0,1,92.6,10.3,0,83,150,211.2,0,0,0,5.352806,1,4.564348,5.061929,0,0,0,83,9.001587,0,3.940966,1 +13,4,0,1,3,429565,0,8114.956,58.94456,1,12,1,8.669268,0,32.72649,0,0,41.39575,0,0,0,0,1,1,92.6,10.3,0,83,150,211.2,0,0,0,5.352806,1,4.564348,5.061929,0,0,0,83,9.001587,0,3.723178,1 +16,4,95,1,1,429566,0,13372.43,3.310062,0,9,1,36.00613,13.20225,0,0,0,49.20837,0,0,0,4,0,6,83.39137,9.967326,0,100,1000,1000,1,0,1.791759,6.907755,0,4.564348,6.959049,0,0,0,100,9.501025,1.791759,3.896064,1 +16,4,95,1,2,429566,0,13372.43,4.310061,0,9,1,53.91467,0,0,0,0,53.91467,0,0,0,1,0,6,83.39137,9.967326,0,100,1000,1000,1,0,1.791759,6.907755,0,4.564348,6.959049,0,0,0,100,9.501025,1.791759,3.987403,1 +16,4,95,1,3,429566,0,13372.43,5.310061,0,9,1,7.738607,0,0,0,0,7.738607,0,0,0,1,0,6,83.39137,9.967326,0,100,1000,1000,1,0,1.791759,6.907755,0,4.564348,6.959049,0,0,0,100,9.501025,1.791759,2.046222,1 +16,4,95,1,1,429567,0,13372.43,15.66598,0,9,1,75.68948,5.720122,0,0,0,81.4096,0,0,0,3,0,6,74.5,3.4,0,68.2,1000,1000,1,0,1.791759,6.907755,0,4.564348,6.959049,0,0,0,68.2,9.501025,1.791759,4.399493,1 +16,4,95,1,2,429567,0,13372.43,16.66598,0,9,1,0,0,0,0,0,0,0,0,0,0,0,6,74.5,3.4,0,68.2,1000,1000,1,0,1.791759,6.907755,0,4.564348,6.959049,0,0,0,68.2,9.501025,1.791759,,0 +16,4,95,1,3,429567,0,13372.43,17.66598,0,9,1,16.01462,0,0,0,0,16.01462,0,0,0,1,0,6,74.5,3.4,0,68.2,1000,1000,1,0,1.791759,6.907755,0,4.564348,6.959049,0,0,0,68.2,9.501025,1.791759,2.773502,1 +16,4,95,1,1,429568,0,13372.43,13.27036,0,9,1,55.15833,4.468846,0,0,0,59.62717,0,0,0,25,0,6,91.7,9.967326,0,66.7,1000,1000,1,0,1.791759,6.907755,0,4.564348,6.959049,0,0,0,66.7,9.501025,1.791759,4.088111,1 +16,4,95,1,2,429568,0,13372.43,14.27036,0,9,1,30.12189,0,0,0,0,30.12189,0,0,0,10,0,6,91.7,9.967326,0,66.7,1000,1000,1,0,1.791759,6.907755,0,4.564348,6.959049,0,0,0,66.7,9.501025,1.791759,3.405252,1 +16,4,95,1,3,429568,0,13372.43,15.27036,0,9,1,0,0,0,0,0,0,0,0,0,0,0,6,91.7,9.967326,0,66.7,1000,1000,1,0,1.791759,6.907755,0,4.564348,6.959049,0,0,0,66.7,9.501025,1.791759,,0 +16,4,95,1,1,429569,0,13372.43,37.24846,0,12,1,5.107252,3.038815,0,0,0,8.146068,0,0,0,1,0,6,68.6,0,0,70.5,1000,1000,0,0,1.791759,6.907755,0,4.564348,6.959049,0,0,0,70.5,9.501025,1.791759,2.097535,1 +16,4,95,1,2,429569,0,13372.43,38.24846,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,68.6,0,0,70.5,1000,1000,0,0,1.791759,6.907755,0,4.564348,6.959049,0,0,0,70.5,9.501025,1.791759,,0 +16,4,95,1,3,429569,0,13372.43,39.24846,0,12,1,13.54256,1.139295,0,0,0,14.68186,0,0,0,1,0,6,68.6,0,0,70.5,1000,1000,0,0,1.791759,6.907755,0,4.564348,6.959049,0,0,0,70.5,9.501025,1.791759,2.686613,1 +16,4,95,1,1,429570,0,13372.43,14.77618,0,9,1,38.02349,7.354443,0,0,0,45.37794,0,0,0,3,0,6,76.6,0,0,88.6,1000,1000,1,0,1.791759,6.907755,0,4.564348,6.959049,0,0,0,88.6,9.501025,1.791759,3.815026,1 +16,4,95,1,2,429570,0,13372.43,15.77618,0,9,1,36.91983,0,0,0,0,36.91983,0,0,0,2,0,6,76.6,0,0,88.6,1000,1000,1,0,1.791759,6.907755,0,4.564348,6.959049,0,0,0,88.6,9.501025,1.791759,3.608749,1 +16,4,95,1,3,429570,0,13372.43,16.77618,0,9,1,0,0,0,0,179.7506,179.7506,1,1,0,0,0,6,76.6,0,0,88.6,1000,1000,1,0,1.791759,6.907755,0,4.564348,6.959049,0,0,0,88.6,9.501025,1.791759,5.191571,1 +16,4,95,1,1,429571,0,13372.43,33.97399,1,9,1,51.2002,8.094995,0,0,0,59.2952,0,0,0,2,0,6,76.6,31,0,92,1000,1000,0,0,1.791759,6.907755,0,4.564348,6.959049,0,1,0,92,9.501025,1.791759,4.082529,1 +16,4,95,1,2,429571,0,13372.43,34.97399,1,9,1,33.75528,19.05298,0,0,0,52.80825,0,0,0,3,0,6,76.6,31,0,92,1000,1000,0,0,1.791759,6.907755,0,4.564348,6.959049,0,1,0,92,9.501025,1.791759,3.966667,1 +16,4,95,1,3,429571,0,13372.43,35.97399,1,9,1,13.56406,1.074807,0,0,0,14.63887,0,0,0,1,0,6,76.6,31,0,92,1000,1000,0,0,1.791759,6.907755,0,4.564348,6.959049,0,1,0,92,9.501025,1.791759,2.68368,1 +11,4,0,0,1,429603,0,7317.889,2.045175,1,18,1,24.00409,6.261491,0,0,0,30.26558,0,0,0,4,0,3,83.39137,9.967326,0,92.6,0,173.16,1,1,1.098612,5.154216,0,0,0,0,0,0,92.6,8.898213,1.098612,3.410011,1 +11,4,0,0,2,429603,0,7317.889,3.045175,1,18,1,132.5598,15.33052,0,0,0,147.8903,0,0,0,7,0,3,83.39137,9.967326,0,92.6,0,173.16,1,1,1.098612,5.154216,0,0,0,0,0,0,92.6,8.898213,1.098612,4.996471,1 +11,4,0,0,3,429603,0,7317.889,4.045175,1,18,1,35.25365,2.824592,0,0,0,38.07825,0,0,0,4,0,3,83.39137,9.967326,0,92.6,0,173.16,1,1,1.098612,5.154216,0,0,0,0,0,0,92.6,8.898213,1.098612,3.639643,1 +11,4,0,0,1,429604,0,7317.889,25.13073,1,18,1,88.20225,6.889683,4.724208,0,164.7855,264.6016,1,0,0,7,0,3,60.1,17.2,0,67,0,173.16,0,0,1.098612,5.154216,0,0,0,1,0,0,67,8.898213,1.098612,5.578226,1 +11,4,0,0,2,429604,0,7317.889,26.13073,1,18,1,176.3244,32.30192,0,0,0,208.6263,0,0,0,19,0,3,60.1,17.2,0,67,0,173.16,0,0,1.098612,5.154216,0,0,0,1,0,0,67,8.898213,1.098612,5.340545,1 +11,4,0,0,3,429604,0,7317.889,27.13073,1,18,1,37.37317,20.97592,0,0,1650.555,1708.904,1,0,0,6,0,3,60.1,17.2,0,67,0,173.16,0,0,1.098612,5.154216,0,0,0,1,0,0,67,8.898213,1.098612,7.443607,1 +11,4,0,0,1,429605,0,7317.889,27.4579,0,16,1,12.76813,0,17.36466,0,0,30.13279,0,0,0,0,1,3,79.8,3.4,0,83,0,173.16,0,0,1.098612,5.154216,0,0,0,0,0,0,83,8.898213,1.098612,3.405614,1 +11,4,0,0,2,429605,0,7317.889,28.4579,0,16,1,0,0,9.728083,0,0,9.728083,0,0,0,0,0,3,79.8,3.4,0,83,0,173.16,0,0,1.098612,5.154216,0,0,0,0,0,0,83,8.898213,1.098612,2.275017,1 +11,4,0,0,3,429605,0,7317.889,29.4579,0,16,1,75.23646,0,0,0,0,75.23646,0,0,0,1,0,3,79.8,3.4,0,83,0,173.16,0,0,1.098612,5.154216,0,0,0,0,0,0,83,8.898213,1.098612,4.320636,1 +18,4,25,1,1,429612,0,7114.37,55.98083,1,15,1,5.107252,10.36772,0,0,0,15.47497,0,0,0,1,0,1,68.8,10.3,0,73.9,750,750,0,0,0,6.620073,0,3.258096,8.006368,1,0,0,73.9,8.870012,0,2.739224,1 +18,4,25,1,2,429612,0,7114.37,56.98083,1,15,1,16.40881,.9376465,0,0,1545.19,1562.536,1,0,0,2,0,1,68.8,10.3,0,73.9,750,750,0,0,0,6.620073,0,3.258096,8.006368,1,0,0,73.9,8.870012,0,7.354066,1 +18,4,25,1,3,429612,0,7114.37,57.98083,1,15,1,20.74377,0,0,0,0,20.74377,0,0,0,2,0,1,68.8,10.3,0,73.9,750,750,0,0,0,6.620073,0,3.258096,8.006368,1,0,0,73.9,8.870012,0,3.032246,1 +18,4,25,1,1,429613,0,5557.771,24.65435,0,12,1,132.1609,0,0,0,0,132.1609,0,0,0,3,0,1,42,10.3,1,53.4,750,450,0,0,0,6.109248,0,3.258096,8.006368,0,0,0,53.4,8.623133,0,4.88402,1 +18,4,25,1,2,429613,0,5557.771,25.65435,0,12,1,121.4872,.9324009,0,0,0,122.4196,0,0,0,8,0,1,42,10.3,1,53.4,750,450,0,0,0,6.109248,0,3.258096,8.006368,0,0,0,53.4,8.623133,0,4.807454,1 +18,4,25,1,3,429613,0,5557.771,26.65435,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,42,10.3,1,53.4,750,450,0,0,0,6.109248,0,3.258096,8.006368,0,0,0,53.4,8.623133,0,,0 +15,4,95,1,1,429614,0,2877.419,16.68446,0,9,1,138.2743,0,0,0,0,138.2743,0,0,0,3,0,5,48.9,3.4,0,72.7,800,800,1,0,1.609438,6.684612,0,4.564348,6.735905,0,0,0,72.7,7.964997,1.609438,4.929239,1 +15,4,95,1,2,429614,0,2877.419,17.68446,0,9,1,26.92308,3.706294,0,0,0,30.62937,0,0,0,3,0,5,48.9,3.4,0,72.7,800,800,1,0,1.609438,6.684612,0,4.564348,6.735905,0,0,0,72.7,7.964997,1.609438,3.421959,1 +15,4,95,1,1,429615,0,2877.419,13.40178,0,9,1,447.5506,14.34717,0,0,0,461.8978,0,0,0,9,1,5,68.3,9.967326,0,81.5,800,800,1,0,1.609438,6.684612,0,4.564348,6.735905,0,1,0,81.5,7.964997,1.609438,6.135344,1 +15,4,95,1,2,429615,0,2877.419,14.40178,0,9,1,16.31702,19.20746,0,0,0,35.52448,0,0,0,2,0,5,68.3,9.967326,0,81.5,800,800,1,0,1.609438,6.684612,0,4.564348,6.735905,0,1,0,81.5,7.964997,1.609438,3.570222,1 +15,4,95,1,3,429615,0,2877.419,15.40178,0,9,1,0,0,0,0,0,0,0,0,0,0,0,4,68.3,9.967326,0,81.5,800,800,1,0,1.386294,6.684612,0,4.564348,6.735905,0,1,0,81.5,7.964997,1.386294,,0 +15,4,95,1,1,429616,0,2877.419,36.60506,1,9,1,24.84818,1.644737,0,0,0,26.49291,0,0,0,2,0,5,44.7,17.2,0,77.3,800,800,0,0,1.609438,6.684612,0,4.564348,6.735905,0,0,0,77.3,7.964997,1.609438,3.276877,1 +15,4,95,1,2,429616,0,2877.419,37.60506,1,9,1,11.65501,5.104895,0,0,0,16.75991,0,0,0,1,0,5,44.7,17.2,0,77.3,800,800,0,0,1.609438,6.684612,0,4.564348,6.735905,0,0,0,77.3,7.964997,1.609438,2.81899,1 +15,4,95,1,3,429616,0,2877.419,38.60506,1,9,1,9.405729,0,0,0,0,9.405729,0,0,0,1,0,4,44.7,17.2,0,77.3,800,800,0,0,1.386294,6.684612,0,4.564348,6.735905,0,0,0,77.3,7.964997,1.386294,2.241319,1 +15,4,95,1,1,429617,0,2877.419,12.0794,1,9,1,0,0,0,0,0,0,0,0,0,0,0,5,78.3,9.967326,0,63,800,800,1,1,1.609438,6.684612,0,4.564348,6.735905,0,0,0,63,7.964997,1.609438,,0 +15,4,95,1,2,429617,0,2877.419,13.0794,1,9,1,0,0,0,0,0,0,0,0,0,0,0,5,78.3,9.967326,0,63,800,800,1,1,1.609438,6.684612,0,4.564348,6.735905,0,0,0,63,7.964997,1.609438,,0 +15,4,95,1,3,429617,0,2877.419,14.0794,1,9,1,0,0,0,0,0,0,0,0,0,0,0,4,78.3,9.967326,0,63,800,800,1,1,1.386294,6.684612,0,4.564348,6.735905,0,0,0,63,7.964997,1.386294,,0 +15,4,95,1,1,429618,0,2877.419,15.17043,0,9,1,59.36741,0,.5212551,0,0,59.88866,0,0,0,3,0,5,70.7,13.8,0,40.9,800,800,1,0,1.609438,6.684612,0,4.564348,6.735905,0,0,0,40.9,7.964997,1.609438,4.092487,1 +15,4,95,1,2,429618,0,2877.419,16.17043,0,9,1,67.48252,0,0,0,0,67.48252,0,0,0,2,0,5,70.7,13.8,0,40.9,800,800,1,0,1.609438,6.684612,0,4.564348,6.735905,0,0,0,40.9,7.964997,1.609438,4.211869,1 +15,4,95,1,3,429618,0,2877.419,17.17043,0,9,1,46.80205,0,0,0,0,46.80205,0,0,0,1,1,4,70.7,13.8,0,40.9,800,800,1,0,1.386294,6.684612,0,4.564348,6.735905,0,0,0,40.9,7.964997,1.386294,3.845927,1 +15,4,95,1,1,429619,0,2331.378,20.33128,0,12,1,49.39271,8.324899,0,0,0,57.71761,0,0,0,2,0,1,92,0,0,69.3,250,250,0,0,0,5.521461,0,4.564348,5.572754,0,0,0,69.3,7.754644,0,4.055562,1 +15,4,95,1,2,429619,0,2331.378,21.33128,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,92,0,0,69.3,250,250,0,0,0,5.521461,0,4.564348,5.572754,0,0,0,69.3,7.754644,0,,0 +15,4,95,1,3,429619,0,2331.378,22.33128,0,12,1,5.130398,0,0,0,0,5.130398,0,0,0,0,1,2,92,0,0,69.3,250,250,0,0,.6931472,5.521461,0,4.564348,5.572754,0,0,0,69.3,7.754644,.6931472,1.635183,1 +5,4,25,1,1,429685,0,7967.742,9.48939,0,12,1,12.76813,4.657814,0,0,0,17.42595,0,0,0,2,0,3,100,9.967326,0,92.6,750,750,1,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,92.6,8.983282,1.098612,2.85796,1 +5,4,25,1,2,429685,0,7967.742,10.48939,0,12,1,25.78528,1.050164,0,0,0,26.83544,0,0,0,3,0,3,100,9.967326,0,92.6,750,750,1,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,92.6,8.983282,1.098612,3.289724,1 +5,4,25,1,3,429685,0,7967.742,11.48939,0,12,1,71.79707,.6405847,0,0,0,72.43766,0,0,1,5,1,3,100,9.967326,0,92.6,750,750,1,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,92.6,8.983282,1.098612,4.282726,1 +5,4,25,1,1,429686,0,7967.742,51.82478,0,12,1,18.33504,8.411645,22.72727,0,0,49.47395,0,0,0,1,0,3,68.6,6.9,0,65.5,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,65.5,8.983282,1.098612,3.901446,1 +5,4,25,1,2,429686,0,7967.742,52.82478,0,12,1,27.19175,10.57665,22.03469,0,0,59.80309,0,0,0,2,1,3,68.6,6.9,0,65.5,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,65.5,8.983282,1.098612,4.091057,1 +5,4,25,1,3,429686,0,7967.742,53.82478,0,12,1,100.5589,15.10318,0,0,0,115.6621,0,0,0,2,0,3,68.6,6.9,0,65.5,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,65.5,8.983282,1.098612,4.750673,1 +5,4,25,1,1,429687,0,7967.742,38.16564,1,12,1,52.62513,164.525,0,0,0,217.1501,0,0,0,6,0,3,90.4,24.1,1,62.5,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,62.5,8.983282,1.098612,5.380589,1 +5,4,25,1,2,429687,0,7967.742,39.16564,1,12,1,95.76653,116.7933,0,0,0,212.5598,0,0,0,9,0,3,90.4,24.1,1,62.5,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,62.5,8.983282,1.098612,5.359223,1 +5,4,25,1,3,429687,0,7967.742,40.16564,1,12,1,82.2012,127.5838,.4299226,0,0,210.215,0,0,0,5,0,3,90.4,24.1,1,62.5,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,62.5,8.983282,1.098612,5.348131,1 +10,4,50,1,1,429688,0,1716.716,31.05544,1,17,1,29.80082,3.268641,2.757916,0,0,35.82737,0,0,0,2,0,1,75.5,6.9,0,86.9,750,750,0,0,0,6.620073,0,3.931826,7.313221,0,0,0,86.9,7.44875,0,3.578712,1 +10,4,50,1,2,429688,0,1716.716,32.05544,1,17,1,21.09705,0,0,0,18.75293,39.84998,1,0,0,1,0,1,75.5,6.9,0,86.9,750,750,0,0,0,6.620073,0,3.931826,7.313221,0,0,0,86.9,7.44875,0,3.685122,1 +10,4,50,1,3,429688,0,1716.716,33.05544,1,17,1,40.41273,10.76956,0,889.9398,0,51.18229,0,0,40,3,0,1,75.5,6.9,0,86.9,750,750,0,0,0,6.620073,0,3.931826,7.313221,0,0,0,86.9,7.44875,0,3.935394,1 +10,4,50,1,4,429688,0,1716.716,34.05544,1,17,1,22.10159,0,0,891.8185,0,22.10159,0,0,36,1,0,1,75.5,6.9,0,86.9,750,750,0,0,0,6.620073,0,3.931826,7.313221,0,0,0,86.9,7.44875,0,3.095649,1 +10,4,50,1,5,429688,0,1716.716,35.05544,1,17,1,61.04034,3.66242,0,100.8493,0,64.70276,0,0,18,3,2,1,75.5,6.9,0,86.9,750,750,0,0,0,6.620073,0,3.931826,7.313221,0,0,0,86.9,7.44875,0,4.169804,1 +11,4,0,1,1,429696,0,2322.581,27.72348,1,10,1,53.54954,0,39.83657,0,0,93.38611,0,0,0,4,0,4,61.2,10.3,0,79.5,0,0,0,0,1.386294,0,0,0,0,0,0,0,79.5,7.750865,1.386294,4.536743,1 +11,4,0,1,2,429696,0,2322.581,28.72348,1,10,1,18.75293,0,0,0,0,18.75293,0,0,0,1,0,4,61.2,10.3,0,79.5,0,0,0,0,1.386294,0,0,0,0,0,0,0,79.5,7.750865,1.386294,2.93135,1 +11,4,0,1,3,429696,0,2322.581,29.72348,1,10,1,14.61737,0,0,0,0,14.61737,0,0,0,1,0,4,61.2,10.3,0,79.5,0,0,0,0,1.386294,0,0,0,0,0,0,0,79.5,7.750865,1.386294,2.68221,1 +11,4,0,1,4,429696,0,2322.581,30.72348,1,10,1,63.20279,0,34.5095,0,0,97.71229,0,0,0,4,0,4,61.2,10.3,0,79.5,0,0,0,0,1.386294,0,0,0,0,0,0,0,79.5,7.750865,1.386294,4.582027,1 +11,4,0,1,5,429696,0,2322.581,31.72348,1,10,1,0,0,0,0,0,0,0,0,0,0,0,4,61.2,10.3,0,79.5,0,0,0,0,1.386294,0,0,0,0,0,0,0,79.5,7.750865,1.386294,,0 +11,4,0,1,1,429697,0,2322.581,9.182752,0,10,1,0,0,0,0,0,0,0,0,0,0,0,4,88.3,9.967326,0,81.5,0,0,1,0,1.386294,0,0,0,0,0,0,0,81.5,7.750865,1.386294,,0 +11,4,0,1,2,429697,0,2322.581,10.18275,0,10,1,39.33427,2.273793,0,0,0,41.60806,0,0,0,4,0,4,88.3,9.967326,0,81.5,0,0,1,0,1.386294,0,0,0,0,0,0,0,81.5,7.750865,1.386294,3.728294,1 +11,4,0,1,3,429697,0,2322.581,11.18275,0,10,1,23.64574,0,0,0,0,23.64574,0,0,0,3,0,4,88.3,9.967326,0,81.5,0,0,1,0,1.386294,0,0,0,0,0,0,0,81.5,7.750865,1.386294,3.163183,1 +11,4,0,1,4,429697,0,2322.581,12.18275,0,10,1,0,0,0,0,0,0,0,0,0,0,0,4,88.3,9.967326,0,81.5,0,0,1,0,1.386294,0,0,0,0,0,0,0,81.5,7.750865,1.386294,,0 +11,4,0,1,5,429697,0,2322.581,13.18275,0,10,1,13.72965,0,0,0,0,13.72965,0,0,0,1,0,4,88.3,9.967326,0,81.5,0,0,1,0,1.386294,0,0,0,0,0,0,0,81.5,7.750865,1.386294,2.619558,1 +11,4,0,1,1,429698,0,2322.581,3.474333,0,10,1,6.128703,0,0,0,0,6.128703,0,0,0,1,0,4,83.39137,9.967326,0,66.7,0,0,1,0,1.386294,0,0,0,0,1,0,0,66.7,7.750865,1.386294,1.812983,1 +11,4,0,1,2,429698,0,2322.581,4.474333,0,10,1,33.61463,2.766057,0,0,0,36.38068,0,0,0,3,0,4,83.39137,9.967326,0,66.7,0,0,1,0,1.386294,0,0,0,0,1,0,0,66.7,7.750865,1.386294,3.594038,1 +11,4,0,1,3,429698,0,2322.581,5.474333,0,10,1,41.27257,0,0,0,0,41.27257,0,0,0,5,0,4,83.39137,9.967326,0,66.7,0,0,1,0,1.386294,0,0,0,0,1,0,0,66.7,7.750865,1.386294,3.720198,1 +11,4,0,1,4,429698,0,2322.581,6.474333,0,10,1,0,0,0,0,0,0,0,0,0,0,0,4,83.39137,9.967326,0,66.7,0,0,1,0,1.386294,0,0,0,0,1,0,0,66.7,7.750865,1.386294,,0 +11,4,0,1,5,429698,0,2322.581,7.474333,0,10,1,0,0,0,0,0,0,0,0,0,0,0,4,83.39137,9.967326,0,66.7,0,0,1,0,1.386294,0,0,0,0,1,0,0,66.7,7.750865,1.386294,,0 +11,4,0,1,1,429699,0,2322.581,6.677618,0,10,1,25.53626,2.196119,26.04699,0,2253.074,2306.854,1,0,0,3,0,4,70,9.967326,0,63,0,0,1,0,1.386294,0,0,0,0,1,0,0,63,7.750865,1.386294,7.74364,1 +11,4,0,1,2,429699,0,2322.581,7.677618,0,10,1,98.17159,0,0,0,0,98.17159,0,0,0,3,5,4,70,9.967326,0,63,0,0,1,0,1.386294,0,0,0,0,1,0,0,63,7.750865,1.386294,4.586717,1 +11,4,0,1,3,429699,0,2322.581,8.677618,0,10,1,12.89768,0,0,0,0,12.89768,0,0,0,2,0,4,70,9.967326,0,63,0,0,1,0,1.386294,0,0,0,0,1,0,0,63,7.750865,1.386294,2.557047,1 +11,4,0,1,4,429699,0,2322.581,9.677618,0,10,1,23.26483,0,0,0,0,23.26483,0,0,0,1,0,4,70,9.967326,0,63,0,0,1,0,1.386294,0,0,0,0,1,0,0,63,7.750865,1.386294,3.146943,1 +11,4,0,1,5,429699,0,2322.581,10.67762,0,10,1,3.53857,7.165605,0,0,0,10.70418,0,0,0,1,0,4,70,9.967326,0,63,0,0,1,0,1.386294,0,0,0,0,1,0,0,63,7.750865,1.386294,2.370634,1 +13,4,0,1,1,429730,0,4550.733,26.16838,0,16,1,187.7784,1.506639,0,0,0,189.285,0,0,0,4,18,1,69.1,0,1,54.5,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,54.5,8.423264,0,5.243254,1 +13,4,0,1,2,429730,0,4550.733,27.16838,0,16,1,0,0,0,0,0,0,0,0,0,0,0,1,69.1,0,1,54.5,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,54.5,8.423264,0,,0 +13,4,0,1,3,429730,0,4550.733,28.16838,0,16,1,0,0,0,0,0,0,0,0,0,0,0,1,69.1,0,1,54.5,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,54.5,8.423264,0,,0 +13,4,0,1,1,429731,0,2974.78,26.72142,0,17,1,12.65182,0,27.83401,0,0,40.48583,0,0,0,0,1,1,87.8,10.3,1,58,150,211.2,0,0,0,5.352806,1,4.564348,5.061929,0,0,0,58,7.998261,0,3.700952,1 +13,4,0,1,2,429731,0,2974.78,27.72142,0,17,1,32.63403,19.93007,27.97203,0,0,80.53613,0,0,0,1,1,1,87.8,10.3,1,58,150,211.2,0,0,0,5.352806,1,4.564348,5.061929,0,0,0,58,7.998261,0,4.388706,1 +13,4,0,1,3,429731,0,2974.78,28.72142,0,17,1,0,0,0,0,0,0,0,0,0,0,0,1,87.8,10.3,1,58,150,211.2,0,0,0,5.352806,1,4.564348,5.061929,0,0,0,58,7.998261,0,,0 +13,4,0,1,1,429739,0,7419.941,7.263518,1,16,1,0,0,0,0,0,0,0,0,0,0,0,2,76.7,9.967326,0,70.4,300,300,1,1,.6931472,5.703783,1,4.564348,5.755076,0,0,0,70.4,8.912061,.6931472,,0 +13,4,0,1,2,429739,0,7419.941,8.263518,1,16,1,10.31411,0,0,0,0,10.31411,0,0,0,2,0,2,76.7,9.967326,0,70.4,300,300,1,1,.6931472,5.703783,1,4.564348,5.755076,0,0,0,70.4,8.912061,.6931472,2.333513,1 +13,4,0,1,3,429739,0,7419.941,9.263518,1,16,1,0,0,0,0,0,0,0,0,0,0,0,2,76.7,9.967326,0,70.4,300,300,1,1,.6931472,5.703783,1,4.564348,5.755076,0,0,0,70.4,8.912061,.6931472,,0 +13,4,0,1,1,429740,0,7419.941,50.47502,1,16,1,58.63126,1.966292,0,0,119.571,180.1685,1,0,0,3,0,2,76.6,34.5,0,75,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,75,8.912061,.6931472,5.193892,1 +13,4,0,1,2,429740,0,7419.941,51.47502,1,16,1,15.00234,0,45.60244,0,0,60.60478,0,0,0,2,0,2,76.6,34.5,0,75,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,75,8.912061,.6931472,4.104374,1 +13,4,0,1,3,429740,0,7419.941,52.47502,1,16,1,0,0,37.99226,0,0,37.99226,0,0,0,0,0,2,76.6,34.5,0,75,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,75,8.912061,.6931472,3.637383,1 +11,4,0,1,1,429756,0,2982.405,9.278576,0,12,1,5.107252,5.469867,0,0,0,10.57712,0,0,0,1,0,5,91.7,9.967326,0,96.3,0,644.76,1,0,1.609438,6.468878,0,0,0,0,0,0,96.3,8.00082,1.609438,2.358693,1 +11,4,0,1,2,429756,0,2982.405,10.27858,0,12,1,5.625879,6.638537,0,0,0,12.26442,0,0,0,1,0,5,91.7,9.967326,0,96.3,0,644.76,1,0,1.609438,6.468878,0,0,0,0,0,0,96.3,8.00082,1.609438,2.506702,1 +11,4,0,1,3,429756,0,2982.405,11.27858,0,12,1,281.2769,3.697335,0,0,0,284.9742,0,0,0,2,5,5,91.7,9.967326,0,96.3,0,644.76,1,0,1.609438,6.468878,0,0,0,0,0,0,96.3,8.00082,1.609438,5.652399,1 +11,4,0,1,4,429756,0,2982.405,12.27858,0,12,1,5.816208,1.845677,0,0,0,7.661884,0,0,0,1,0,5,91.7,9.967326,0,96.3,0,644.76,1,0,1.609438,6.468878,0,0,0,0,0,0,96.3,8.00082,1.609438,2.036258,1 +11,4,0,1,5,429756,0,2982.405,13.27858,0,12,1,38.92427,0,0,0,0,38.92427,0,0,0,1,5,5,91.7,9.967326,0,96.3,0,644.76,1,0,1.609438,6.468878,0,0,0,0,0,0,96.3,8.00082,1.609438,3.661618,1 +11,4,0,1,1,429757,0,2982.405,11.44695,1,12,1,6.128703,2.543412,0,0,0,8.672114,0,0,0,1,0,5,85,9.967326,0,92.6,0,644.76,1,1,1.609438,6.468878,0,0,0,0,0,0,92.6,8.00082,1.609438,2.160113,1 +11,4,0,1,2,429757,0,2982.405,12.44695,1,12,1,17.34646,12.23629,0,0,0,29.58275,0,0,0,2,0,5,85,9.967326,0,92.6,0,644.76,1,1,1.609438,6.468878,0,0,0,0,0,0,92.6,8.00082,1.609438,3.387191,1 +11,4,0,1,3,429757,0,2982.405,13.44695,1,12,1,90.5417,3.688736,0,0,0,94.23044,0,0,0,1,12,5,85,9.967326,0,92.6,0,644.76,1,1,1.609438,6.468878,0,0,0,0,0,0,92.6,8.00082,1.609438,4.545743,1 +11,4,0,1,4,429757,0,2982.405,14.44695,1,12,1,281.6247,5.994572,0,0,0,287.6192,0,0,0,3,0,5,85,9.967326,0,92.6,0,644.76,1,1,1.609438,6.468878,0,0,0,0,0,0,92.6,8.00082,1.609438,5.661637,1 +11,4,0,1,5,429757,0,2982.405,15.44695,1,12,1,12.385,1.581741,0,0,0,13.96674,0,0,0,1,0,5,85,9.967326,0,92.6,0,644.76,1,1,1.609438,6.468878,0,0,0,0,0,0,92.6,8.00082,1.609438,2.636679,1 +11,4,0,1,1,429758,0,2982.405,6.182067,1,12,1,8.171603,2.543412,0,0,0,10.71502,0,0,0,1,0,5,86.7,9.967326,0,88.9,0,644.76,1,1,1.609438,6.468878,0,0,0,0,0,0,88.9,8.00082,1.609438,2.371646,1 +11,4,0,1,2,429758,0,2982.405,7.182067,1,12,1,5.625879,2.958275,0,0,0,8.584154,0,0,0,1,0,5,86.7,9.967326,0,88.9,0,644.76,1,1,1.609438,6.468878,0,0,0,0,0,0,88.9,8.00082,1.609438,2.149918,1 +11,4,0,1,3,429758,0,2982.405,8.182067,1,12,1,54.60017,5.39123,0,0,0,59.9914,0,0,0,3,6,5,86.7,9.967326,0,88.9,0,644.76,1,1,1.609438,6.468878,0,0,0,0,0,0,88.9,8.00082,1.609438,4.094201,1 +11,4,0,1,4,429758,0,2982.405,9.182067,1,12,1,18.22412,5.238464,0,0,0,23.46258,0,0,0,1,2,5,86.7,9.967326,0,88.9,0,644.76,1,1,1.609438,6.468878,0,0,0,0,0,0,88.9,8.00082,1.609438,3.155407,1 +11,4,0,1,5,429758,0,2982.405,10.18207,1,12,1,5.307856,2.735315,0,0,0,8.043171,0,0,0,0,1,5,86.7,9.967326,0,88.9,0,644.76,1,1,1.609438,6.468878,0,0,0,0,0,0,88.9,8.00082,1.609438,2.084823,1 +11,4,0,1,1,429759,0,2982.405,33.65366,1,12,1,29.3667,4.765067,0,0,0,34.13177,0,0,0,2,0,5,46.3,17.2,0,69.3,0,644.76,0,0,1.609438,6.468878,0,0,0,1,0,0,69.3,8.00082,1.609438,3.530229,1 +11,4,0,1,2,429759,0,2982.405,34.65366,1,12,1,36.09939,0,0,0,0,36.09939,0,0,0,3,0,5,46.3,17.2,0,69.3,0,644.76,0,0,1.609438,6.468878,0,0,0,1,0,0,69.3,8.00082,1.609438,3.586276,1 +11,4,0,1,3,429759,0,2982.405,35.65366,1,12,1,151.7627,0,0,0,0,151.7627,0,0,0,1,24,5,46.3,17.2,0,69.3,0,644.76,0,0,1.609438,6.468878,0,0,0,1,0,0,69.3,8.00082,1.609438,5.022318,1 +11,4,0,1,4,429759,0,2982.405,36.65366,1,12,1,63.41605,3.598294,0,162.8538,0,67.01434,0,0,7,1,5,5,46.3,17.2,0,69.3,0,644.76,0,0,1.609438,6.468878,0,0,0,1,0,0,69.3,8.00082,1.609438,4.204906,1 +11,4,0,1,5,429759,0,2982.405,37.65366,1,12,1,17.69285,14.98938,30.43171,467.0913,0,63.11394,0,0,22,1,1,5,46.3,17.2,0,69.3,0,644.76,0,0,1.609438,6.468878,0,0,0,1,0,0,69.3,8.00082,1.609438,4.144942,1 +11,4,0,1,1,429760,0,2982.405,37.24298,0,12,1,52.09398,0,0,0,0,52.09398,0,0,0,1,2,5,51.6,17.2,0,75,0,644.76,0,0,1.609438,6.468878,0,0,0,0,0,0,75,8.00082,1.609438,3.953049,1 +11,4,0,1,2,429760,0,2982.405,38.24298,0,12,1,298.7576,33.97562,0,0,0,332.7332,0,0,0,6,6,5,51.6,17.2,0,75,0,644.76,0,0,1.609438,6.468878,0,0,0,0,0,0,75,8.00082,1.609438,5.807341,1 +11,4,0,1,3,429760,0,2982.405,39.24298,0,12,1,284.4798,11.07911,0,0,383.6414,679.2003,1,0,0,5,50,5,51.6,17.2,0,75,0,644.76,0,0,1.609438,6.468878,0,0,0,0,0,0,75,8.00082,1.609438,6.520916,1 +11,4,0,1,4,429760,0,2982.405,40.24298,0,12,1,100.0388,3.640946,0,139.589,0,103.6797,0,0,6,5,10,5,51.6,17.2,0,75,0,644.76,0,0,1.609438,6.468878,0,0,0,0,0,0,75,8.00082,1.609438,4.641306,1 +11,4,0,1,5,429760,0,2982.405,41.24298,0,12,1,113.5881,21.24558,0,0,0,134.8337,0,0,0,1,18,5,51.6,17.2,0,75,0,644.76,0,0,1.609438,6.468878,0,0,0,0,0,0,75,8.00082,1.609438,4.904042,1 +13,4,0,1,1,429846,0,8800.587,48.5284,0,14,1,6.128703,0,0,0,0,6.128703,0,0,0,1,0,2,88.3,6.9,0,80.7,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,80.7,9.082687,.6931472,1.812983,1 +13,4,0,1,2,429846,0,8800.587,49.5284,0,14,1,15.00234,2.812939,10.31411,0,0,28.12939,0,0,0,1,1,2,88.3,6.9,0,80.7,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,80.7,9.082687,.6931472,3.336815,1 +13,4,0,1,3,429846,0,8800.587,50.5284,0,14,1,9.458298,0,27.08512,0,0,36.54342,0,0,0,0,1,2,88.3,6.9,0,80.7,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,80.7,9.082687,.6931472,3.598501,1 +13,4,0,1,1,429847,0,8800.587,45.13895,1,12,1,44.43309,0,0,0,0,44.43309,0,0,0,3,0,2,87.2,6.9,0,71.6,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,71.6,9.082687,.6931472,3.793985,1 +13,4,0,1,2,429847,0,8800.587,46.13895,1,12,1,11.72058,0,16.40881,0,0,28.12939,0,0,0,0,2,2,87.2,6.9,0,71.6,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,71.6,9.082687,.6931472,3.336815,1 +13,4,0,1,3,429847,0,8800.587,47.13895,1,12,1,26.6552,0,24.50559,0,0,51.16079,0,0,0,2,1,2,87.2,6.9,0,71.6,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,71.6,9.082687,.6931472,3.934973,1 +13,4,0,1,1,429848,0,3642.815,56.98563,1,12,1,53.11543,42.15015,38.30439,0,0,133.57,0,0,0,4,6,1,75.5,13.8,0,65.9,150,245.88,0,0,0,5.504844,1,4.564348,5.061929,1,0,0,65.9,8.200787,0,4.894626,1 +13,4,0,1,2,429848,0,3642.815,57.98563,1,12,1,39.02954,30.33286,0,0,0,69.3624,0,0,0,3,1,1,75.5,13.8,0,65.9,150,245.88,0,0,0,5.504844,1,4.564348,5.061929,1,0,0,65.9,8.200787,0,4.239345,1 +13,4,0,1,3,429848,0,3642.815,58.98563,1,12,1,19.34652,24.11866,33.96389,0,0,77.42906,0,0,0,1,2,1,75.5,13.8,0,65.9,150,245.88,0,0,0,5.504844,1,4.564348,5.061929,1,0,0,65.9,8.200787,0,4.349362,1 +13,4,0,0,1,429891,0,4353.666,13.48665,0,10,1,173.583,18.85628,59.21053,0,471.0223,722.6721,1,0,0,18,0,4,83.39137,9.967326,.0431267,,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,81.16254,8.379004,1.386294,6.582955,1 +13,4,0,0,2,429891,0,4353.666,14.48665,0,10,1,145.2587,5.137529,0,0,409.035,559.4312,1,1,0,6,0,4,83.39137,9.967326,.0431267,,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,81.16254,8.379004,1.386294,6.326921,1 +13,4,0,0,3,429891,0,4353.666,15.48665,0,10,1,148.4267,0,38.47798,0,0,186.9047,0,0,0,4,0,4,83.39137,9.967326,.0431267,,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,81.16254,8.379004,1.386294,5.230598,1 +13,4,0,0,1,429892,0,4353.666,51.94798,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,74.46748,9.967326,.1572505,,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,72.06626,8.379004,1.386294,,0 +13,4,0,0,2,429892,0,4353.666,52.94798,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,74.46748,9.967326,.1572505,,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,72.06626,8.379004,1.386294,,0 +13,4,0,0,3,429892,0,4353.666,53.94798,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,74.46748,9.967326,.1572505,,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,72.06626,8.379004,1.386294,,0 +13,4,0,0,1,429893,0,4353.666,50.03696,1,10,1,7.591093,0,10.12146,0,0,17.71255,0,0,0,1,0,4,74.46748,9.967326,.1572505,,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,72.06626,8.379004,1.386294,2.874274,1 +13,4,0,0,2,429893,0,4353.666,51.03696,1,10,1,74.94173,0,0,0,0,74.94173,0,0,0,4,0,4,74.46748,9.967326,.1572505,,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,72.06626,8.379004,1.386294,4.316711,1 +13,4,0,0,3,429893,0,4353.666,52.03696,1,10,1,29.07225,13.31338,0,0,0,42.38564,0,0,0,2,0,4,74.46748,9.967326,.1572505,,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,72.06626,8.379004,1.386294,3.746809,1 +13,4,0,1,1,429894,.0068104,2935.484,21.24025,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,82.4,0,0,72.7,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,72.7,7.984968,0,,0 +13,4,0,1,2,429894,.0068104,2935.484,22.24025,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,82.4,0,0,72.7,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,72.7,7.984968,0,,0 +13,4,0,1,3,429894,.0068104,2935.484,23.24025,0,12,1,0,0,23.94186,0,0,23.94186,0,0,0,0,0,1,82.4,0,0,72.7,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,72.7,7.984968,0,3.175628,1 +13,4,0,0,1,429895,0,4353.666,11.0883,0,10,1,5.060729,5.146761,0,0,0,10.20749,0,0,0,1,0,4,83.39137,9.967326,.0431267,,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,81.16254,8.379004,1.386294,2.323122,1 +13,4,0,0,2,429895,0,4353.666,12.0883,0,10,1,0,0,0,0,0,0,0,0,0,0,0,4,83.39137,9.967326,.0431267,,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,81.16254,8.379004,1.386294,,0 +13,4,0,0,3,429895,0,4353.666,13.0883,0,10,1,6.412997,2.342882,0,0,0,8.755878,0,0,0,1,0,4,83.39137,9.967326,.0431267,,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,81.16254,8.379004,1.386294,2.169725,1 +13,4,0,1,1,429896,.0068104,3197.654,22.86927,1,12,1,143.8512,.8502024,12.14575,0,0,156.8472,0,0,0,7,0,1,82.4,6.9,0,72.6,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,72.6,8.070485,0,5.055272,1 +13,4,0,1,2,429896,.0068104,3197.654,23.86927,1,12,1,82.13986,0,0,0,0,82.13986,0,0,0,4,0,1,82.4,6.9,0,72.6,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,72.6,8.070485,0,4.408423,1 +13,4,0,1,3,429896,.0068104,3197.654,24.86927,1,12,1,20.09406,0,0,0,0,20.09406,0,0,0,2,0,1,82.4,6.9,0,72.6,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,72.6,8.070485,0,3.000424,1 +7,4,25,0,1,429897,0,2007.038,56.79398,1,12,1,34.79251,0,0,0,0,34.79251,0,0,0,2,0,1,74.46748,9.967326,.1572505,,525,525,0,0,0,6.263398,0,3.258096,7.649693,1,0,0,72.06626,7.604913,0,3.549402,1 +7,4,25,0,2,429897,0,2007.038,57.79398,1,12,1,41.95804,0,4.662004,0,0,46.62005,0,0,0,0,6,1,74.46748,9.967326,.1572505,,525,525,0,0,0,6.263398,0,3.258096,7.649693,1,0,0,72.06626,7.604913,0,3.842031,1 +7,4,25,0,3,429897,0,2007.038,58.79398,1,12,1,241.2356,0,0,0,481.6588,722.8944,1,0,0,8,8,1,74.46748,9.967326,.1572505,,525,525,0,0,0,6.263398,0,3.258096,7.649693,1,0,0,72.06626,7.604913,0,6.583263,1 +7,4,25,0,4,429897,0,2007.038,59.79398,1,12,1,203.3051,0,0,0,474.1929,677.4981,1,0,0,4,19,1,74.46748,9.967326,.1572505,,525,525,0,0,0,6.263398,0,3.258096,7.649693,1,0,0,72.06626,7.604913,0,6.518407,1 +7,4,25,0,5,429897,0,2007.038,60.79398,1,12,1,36.88093,13.43519,26.34352,0,1080.067,1156.726,1,0,0,3,0,1,74.46748,9.967326,.1572505,,525,525,0,0,0,6.263398,0,3.258096,7.649693,1,0,0,72.06626,7.604913,0,7.053349,1 +13,4,0,1,1,429899,0,9339.003,29.72758,1,17,1,53.5955,34.49949,0,0,687.1348,775.2298,1,0,0,2,0,4,89.4,3.4,0,68.2,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,68.2,9.142062,1.386294,6.65316,1 +13,4,0,1,2,429899,0,9339.003,30.72758,1,17,1,56.72762,11.93155,17.69808,0,0,86.35725,0,0,0,4,1,5,89.4,3.4,0,68.2,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,68.2,9.142062,1.609438,4.458493,1 +13,4,0,1,3,429899,0,9339.003,31.72758,1,17,1,414.5529,24.82803,5.116079,0,0,444.497,0,0,0,10,27,5,89.4,3.4,0,68.2,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,68.2,9.142062,1.609438,6.096943,1 +13,4,0,1,1,429900,0,9339.003,2.225873,1,17,1,78.62104,47.13994,0,0,0,125.761,0,0,0,10,0,4,83.39137,9.967326,0,85.2,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.142062,1.386294,4.834383,1 +13,4,0,1,2,429900,0,9339.003,3.225873,1,17,1,606.751,100.3751,4.688232,0,2737.965,3449.78,2,0,0,12,0,5,83.39137,9.967326,0,85.2,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.142062,1.609438,8.146066,1 +13,4,0,1,3,429900,0,9339.003,4.225873,1,17,1,206.3199,5.795357,0,0,0,212.1152,0,0,0,6,0,5,83.39137,9.967326,0,85.2,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.142062,1.609438,5.35713,1 +13,4,0,1,1,429901,0,9339.003,32.95825,0,22,1,235.6078,24.64249,42.39019,0,0,302.6404,0,0,0,8,0,4,87.2,13.8,0,80.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,80.7,9.142062,1.386294,5.712545,1 +13,4,0,1,2,429901,0,9339.003,33.95825,0,22,1,42.54571,15.58837,0,0,0,58.13408,0,0,0,1,0,5,87.2,13.8,0,80.7,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,80.7,9.142062,1.609438,4.062752,1 +13,4,0,1,3,429901,0,9339.003,34.95825,0,22,1,94.411,12.42476,38.26311,0,0,145.0989,0,0,0,7,0,5,87.2,13.8,0,80.7,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,80.7,9.142062,1.609438,4.977416,1 +13,4,0,1,1,429902,0,9339.003,5.650924,1,17,1,21.45046,6.128703,0,0,0,27.57916,0,0,0,3,0,4,83.3,9.967326,0,74.1,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,74.1,9.142062,1.386294,3.31706,1 +13,4,0,1,2,429902,0,9339.003,6.650924,1,17,1,143.6474,5.344585,0,0,98.45288,247.4449,1,0,0,8,1,5,83.3,9.967326,0,74.1,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,74.1,9.142062,1.609438,5.511188,1 +13,4,0,1,3,429902,0,9339.003,7.650924,1,17,1,84.41531,2.407567,0,0,0,86.82287,0,0,0,7,0,5,83.3,9.967326,0,74.1,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,74.1,9.142062,1.609438,4.46387,1 +15,4,95,0,1,429934,0,11394.13,50.0616,0,9,1,0,0,0,0,0,0,0,0,0,0,0,3,74.46748,9.967326,.1572505,,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,72.06626,9.340941,1.098612,,0 +15,4,95,0,2,429934,0,11394.13,51.0616,0,9,1,34.40559,.2703963,39.62704,0,0,74.30303,0,0,0,3,0,3,74.46748,9.967326,.1572505,,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,72.06626,9.340941,1.098612,4.308152,1 +15,4,95,0,3,429934,0,11394.13,52.0616,0,9,1,33.34758,0,0,0,541.0859,574.4335,1,0,0,6,0,3,74.46748,9.967326,.1572505,,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,72.06626,9.340941,1.098612,6.353384,1 +15,4,95,0,1,429935,0,11394.13,50.51882,1,12,1,33.90688,0,35.67814,0,0,69.58502,0,0,0,5,0,3,74.46748,9.967326,.1572505,,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,72.06626,9.340941,1.098612,4.242549,1 +15,4,95,0,2,429935,0,11394.13,51.51882,1,12,1,0,5.869464,0,0,0,5.869464,0,0,0,0,0,3,74.46748,9.967326,.1572505,,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,72.06626,9.340941,1.098612,1.769763,1 +15,4,95,0,3,429935,0,11394.13,52.51882,1,12,1,36.98162,2.2531,0,0,0,39.23471,0,0,0,4,0,3,74.46748,9.967326,.1572505,,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,72.06626,9.340941,1.098612,3.669562,1 +15,4,95,1,1,429936,0,6920.234,22.59822,1,15,1,72.8745,27.53036,7.591093,0,877.8947,985.8907,2,0,0,12,0,1,89.4,0,0,89.8,0,0,0,0,0,0,0,4.564348,0,0,0,0,89.8,8.842349,0,6.893546,1 +15,4,95,1,2,429936,0,6920.234,23.59822,1,15,1,106.8531,1.468531,0,31.23543,0,108.3217,0,0,3,5,0,1,89.4,0,0,89.8,0,0,0,0,0,0,0,4.564348,0,0,0,0,89.8,8.842349,0,4.685105,1 +15,4,95,1,3,429936,0,6920.234,24.59822,1,15,1,67.764,6.271911,8.336896,0,484.9508,567.3237,1,0,0,5,0,1,89.4,0,0,89.8,0,0,0,0,0,0,0,4.564348,0,0,0,0,89.8,8.842349,0,6.34093,1 +15,4,95,0,1,429937,0,11394.13,17.55236,1,12,1,23.78543,0,0,0,0,23.78543,0,0,0,2,0,3,74.46748,9.967326,.1572505,,1000,1000,1,1,1.098612,6.907755,0,4.564348,6.959049,0,0,0,72.06626,9.340941,1.098612,3.169073,1 +15,4,95,0,2,429937,0,11394.13,18.55236,1,12,1,17.24942,1.794872,0,0,0,19.04429,0,0,0,2,0,3,74.46748,9.967326,.1572505,,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,72.06626,9.340941,1.098612,2.946767,1 +15,4,95,0,3,429937,0,11394.13,19.55236,1,12,1,13.57418,0,0,0,0,13.57418,0,0,0,2,0,3,74.46748,9.967326,.1572505,,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,72.06626,9.340941,1.098612,2.608169,1 +11,4,0,1,1,429961,0,3005.865,60.83778,0,6,1,30.64351,7.318693,0,0,0,37.96221,0,0,0,3,0,2,87.2,17.2,0,78.4,0,923.88,0,0,.6931472,6.828582,0,0,0,0,0,0,78.4,8.008654,.6931472,3.636591,1 +11,4,0,1,2,429961,0,3005.865,61.83778,0,6,1,11.72058,3.558368,0,0,0,15.27895,0,0,0,2,0,2,87.2,17.2,0,78.4,0,923.88,0,0,.6931472,6.828582,0,0,0,0,0,0,78.4,8.008654,.6931472,2.726476,1 +11,4,0,1,3,429961,0,3005.865,62.83778,0,6,1,30.95443,34.94841,0,0,0,65.90284,0,0,0,4,0,2,87.2,17.2,0,78.4,0,923.88,0,0,.6931472,6.828582,0,0,0,0,0,0,78.4,8.008654,.6931472,4.188181,1 +11,4,0,1,1,429962,0,3005.865,60.04928,1,12,1,59.84678,52.3238,0,0,0,112.1706,0,0,0,5,0,2,84.6,6.9,0,60.2,0,923.88,0,0,.6931472,6.828582,0,0,0,0,0,0,60.2,8.008654,.6931472,4.720021,1 +11,4,0,1,2,429962,0,3005.865,61.04928,1,12,1,111.5799,36.58228,0,0,678.345,826.5073,1,0,0,9,5,2,84.6,6.9,0,60.2,0,923.88,0,0,.6931472,6.828582,0,0,0,0,0,0,60.2,8.008654,.6931472,6.717209,1 +11,4,0,1,3,429962,0,3005.865,62.04928,1,12,1,66.16079,27.82459,0,0,0,93.98538,0,0,0,7,0,2,84.6,6.9,0,60.2,0,923.88,0,0,.6931472,6.828582,0,0,0,0,0,0,60.2,8.008654,.6931472,4.543139,1 +14,4,95,1,1,429978,0,7543.108,37.83984,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,66.5,10.3,0,62.5,650,650,0,0,1.386294,6.476973,0,4.564348,6.528265,1,0,0,62.5,8.928522,1.386294,,0 +14,4,95,1,2,429978,0,7543.108,38.83984,1,13,1,11.65501,0,0,0,0,11.65501,0,0,0,1,0,4,66.5,10.3,0,62.5,650,650,0,0,1.386294,6.476973,0,4.564348,6.528265,1,0,0,62.5,8.928522,1.386294,2.455736,1 +14,4,95,1,3,429978,0,7543.108,39.83984,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,66.5,10.3,0,62.5,650,650,0,0,1.386294,6.476973,0,4.564348,6.528265,1,0,0,62.5,8.928522,1.386294,,0 +14,4,95,1,1,429979,0,7543.108,9.908282,1,13,1,30.87045,6.199393,53.13765,0,0,90.20749,0,0,0,3,0,4,78.3,9.967326,0,59.3,650,650,1,1,1.386294,6.476973,0,4.564348,6.528265,0,0,0,59.3,8.928522,1.386294,4.502112,1 +14,4,95,1,2,429979,0,7543.108,10.90828,1,13,1,16.31702,4.531468,0,0,0,20.84848,0,0,0,2,0,4,78.3,9.967326,0,59.3,650,650,1,1,1.386294,6.476973,0,4.564348,6.528265,0,0,0,59.3,8.928522,1.386294,3.037281,1 +14,4,95,1,3,429979,0,7543.108,11.90828,1,13,1,21.37666,0,0,0,0,21.37666,0,0,0,3,0,4,78.3,9.967326,0,59.3,650,650,1,1,1.386294,6.476973,0,4.564348,6.528265,0,0,0,59.3,8.928522,1.386294,3.062299,1 +14,4,95,1,1,429980,0,7543.108,3.37577,0,13,1,17.30769,0,0,0,0,17.30769,0,0,0,1,0,4,83.39137,9.967326,0,77.8,650,650,1,0,1.386294,6.476973,0,4.564348,6.528265,0,0,0,77.8,8.928522,1.386294,2.851151,1 +14,4,95,1,2,429980,0,7543.108,4.37577,0,13,1,121.2121,2.773893,0,0,0,123.986,0,0,0,8,0,4,83.39137,9.967326,0,77.8,650,650,1,0,1.386294,6.476973,0,4.564348,6.528265,0,0,0,77.8,8.928522,1.386294,4.820169,1 +14,4,95,1,3,429980,0,7543.108,5.37577,0,13,1,39.54681,0,0,0,0,39.54681,0,0,0,5,0,4,83.39137,9.967326,0,77.8,650,650,1,0,1.386294,6.476973,0,4.564348,6.528265,0,0,0,77.8,8.928522,1.386294,3.677485,1 +14,4,95,1,1,429981,0,7543.108,38.30801,0,19,1,83.65385,22.25202,0,0,0,105.9059,0,0,0,4,0,4,81.4,0,0,58,650,650,0,0,1.386294,6.476973,0,4.564348,6.528265,1,0,0,58,8.928522,1.386294,4.66255,1 +14,4,95,1,2,429981,0,7543.108,39.30801,0,19,1,15.61772,0,0,0,0,15.61772,0,0,0,1,0,4,81.4,0,0,58,650,650,0,0,1.386294,6.476973,0,4.564348,6.528265,1,0,0,58,8.928522,1.386294,2.748406,1 +14,4,95,1,3,429981,0,7543.108,40.30801,0,19,1,74.49765,0,23.08679,0,0,97.58443,0,0,0,3,1,4,81.4,0,0,58,650,650,0,0,1.386294,6.476973,0,4.564348,6.528265,1,0,0,58,8.928522,1.386294,4.580718,1 +16,4,95,1,1,429993,0,11044.58,32.8898,1,12,1,57.29757,0,28.08704,0,0,85.38461,0,0,0,2,0,4,80.3,13.8,0,80.7,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,80.7,9.309785,1.386294,4.447166,1 +16,4,95,1,2,429993,0,11044.58,33.8898,1,12,1,11.65501,5.212121,0,0,0,16.86713,0,0,0,1,0,4,80.3,13.8,0,80.7,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,80.7,9.309785,1.386294,2.825367,1 +16,4,95,1,3,429993,0,11044.58,34.8898,1,12,1,28.00342,11.86404,12.39846,0,0,52.26593,0,0,0,3,0,4,80.3,13.8,0,80.7,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,80.7,9.309785,1.386294,3.956345,1 +16,4,95,1,4,429993,0,11044.58,35.8898,1,12,1,14.70023,14.14297,21.50269,0,0,50.34589,0,0,0,2,0,4,80.3,13.8,0,80.7,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,80.7,9.309785,1.386294,3.918917,1 +16,4,95,1,5,429993,0,11044.58,36.8898,1,12,1,137.6888,16.54022,0,0,0,154.229,0,0,0,4,0,4,80.3,13.8,0,80.7,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,80.7,9.309785,1.386294,5.038439,1 +16,4,95,1,1,429994,0,11044.58,34.74059,0,12,1,79.96964,11.60425,0,0,0,91.57388,0,0,0,7,0,4,85.1,3.4,0,84.1,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,84.1,9.309785,1.386294,4.517146,1 +16,4,95,1,2,429994,0,11044.58,35.74059,0,12,1,5.594406,4.195804,0,0,0,9.79021,0,0,0,1,0,4,85.1,3.4,0,84.1,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,84.1,9.309785,1.386294,2.281383,1 +16,4,95,1,3,429994,0,11044.58,36.74059,0,12,1,10.2608,2.778965,0,0,0,13.03976,0,0,0,2,0,4,85.1,3.4,0,84.1,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,84.1,9.309785,1.386294,2.568003,1 +16,4,95,1,4,429994,0,11044.58,37.74059,0,12,1,753.8394,13.47041,0,0,0,767.3098,0,0,0,4,0,4,85.1,3.4,0,84.1,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,84.1,9.309785,1.386294,6.64289,1 +16,4,95,1,5,429994,0,11044.58,38.74059,0,12,1,40.60415,5.918511,0,0,0,46.52266,0,0,0,5,0,4,85.1,3.4,0,84.1,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,84.1,9.309785,1.386294,3.839939,1 +16,4,95,1,1,429995,0,11044.58,9.563313,0,12,1,20.72368,.9868421,0,0,0,21.71053,0,0,0,2,0,4,85,9.967326,0,77.8,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,77.8,9.309785,1.386294,3.077797,1 +16,4,95,1,2,429995,0,11044.58,10.56331,0,12,1,25.17483,5.748252,0,0,0,30.92308,0,0,0,5,0,4,85,9.967326,0,77.8,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,77.8,9.309785,1.386294,3.431503,1 +16,4,95,1,3,429995,0,11044.58,11.56331,0,12,1,0,2.727661,0,0,0,2.727661,0,0,0,0,0,4,85,9.967326,0,77.8,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,77.8,9.309785,1.386294,1.003445,1 +16,4,95,1,4,429995,0,11044.58,12.56331,0,12,1,5.764796,0,0,0,0,5.764796,0,0,0,1,0,4,85,9.967326,0,77.8,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,77.8,9.309785,1.386294,1.75177,1 +16,4,95,1,5,429995,0,11044.58,13.56331,0,12,1,46.36459,4.179839,0,0,0,50.54443,0,0,0,2,0,4,85,9.967326,0,77.8,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,77.8,9.309785,1.386294,3.922853,1 +11,4,0,1,1,430023,0,7910.823,60.51198,1,14,1,40.34729,0,0,0,0,40.34729,0,0,0,3,0,1,69.7,17.2,0,67,0,179.4,0,0,0,5.189618,0,0,0,1,0,0,67,8.976113,0,3.697524,1 +11,4,0,1,2,430023,0,7910.823,61.51198,1,14,1,96.44164,0,0,0,0,96.44164,0,0,0,5,0,1,69.7,17.2,0,67,0,179.4,0,0,0,5.189618,0,0,0,1,0,0,67,8.976113,0,4.568938,1 +11,4,0,1,3,430023,0,7910.823,62.51198,1,14,1,37.2098,0,21.49613,0,0,58.70593,0,0,0,1,1,1,69.7,17.2,0,67,0,179.4,0,0,0,5.189618,0,0,0,1,0,0,67,8.976113,0,4.072541,1 +13,4,0,1,1,430074,0,3774.78,31.60301,0,10,1,62.51277,0,2.002043,0,0,64.51481,0,0,0,4,0,2,89.4,0,0,78.4,300,362.64,0,0,.6931472,5.893411,1,4.564348,5.755076,0,0,0,78.4,8.236362,.6931472,4.166895,1 +13,4,0,1,2,430074,0,3774.78,32.60301,0,10,1,7.032349,0,38.91233,0,0,45.94468,0,0,0,0,1,2,89.4,0,0,78.4,300,362.64,0,0,.6931472,5.893411,1,4.564348,5.755076,0,0,0,78.4,8.236362,.6931472,3.827438,1 +13,4,0,1,3,430074,0,3774.78,33.60301,0,10,1,19.88392,0,0,0,0,19.88392,0,0,0,1,0,3,89.4,0,0,78.4,300,362.64,0,0,1.098612,5.893411,1,4.564348,5.755076,0,0,0,78.4,8.236362,1.098612,2.989911,1 +13,4,0,1,1,430075,0,3774.78,31.42231,1,12,1,56.93565,3.268641,0,0,0,60.20429,0,0,0,3,2,2,83.5,3.4,0,76.1,300,362.64,0,0,.6931472,5.893411,1,4.564348,5.755076,0,0,0,76.1,8.236362,.6931472,4.097744,1 +13,4,0,1,2,430075,0,3774.78,32.42231,1,12,1,271.2143,20.41257,32.81763,0,0,324.4445,0,0,0,2,12,2,83.5,3.4,0,76.1,300,362.64,0,0,.6931472,5.893411,1,4.564348,5.755076,0,0,0,76.1,8.236362,.6931472,5.782115,1 +13,4,0,1,3,430075,0,3774.78,33.42231,1,12,1,251.5047,10.70507,0,0,0,262.2098,0,0,0,2,12,3,83.5,3.4,0,76.1,300,362.64,0,0,1.098612,5.893411,1,4.564348,5.755076,0,0,0,76.1,8.236362,1.098612,5.569145,1 +11,4,0,1,1,430084,0,7640.469,2.097194,0,14,1,7.660879,6.894791,0,0,0,14.55567,0,0,0,1,0,4,83.39137,9.967326,0,100,0,0,1,0,1.386294,0,0,0,0,0,0,0,100,8.941345,1.386294,2.67798,1 +11,4,0,1,2,430084,0,7640.469,3.097194,0,14,1,5.625879,11.16737,0,0,0,16.79325,0,0,0,1,0,5,83.39137,9.967326,0,100,0,0,1,0,1.609438,0,0,0,0,0,0,0,100,8.941345,1.609438,2.820977,1 +11,4,0,1,3,430084,0,7640.469,4.097194,0,14,1,24.50559,7.631126,0,0,0,32.13671,0,0,0,3,0,5,83.39137,9.967326,0,100,0,0,1,0,1.609438,0,0,0,0,0,0,0,100,8.941345,1.609438,3.469999,1 +11,4,0,1,4,430084,0,7640.469,5.097194,0,14,1,7.754944,13.8038,0,0,0,21.55874,0,0,0,1,0,5,83.39137,9.967326,0,100,0,0,1,0,1.609438,0,0,0,0,0,0,0,100,8.941345,1.609438,3.070781,1 +11,4,0,1,5,430084,0,7640.469,6.097194,0,14,1,13.09271,9.907997,0,0,0,23.00071,0,0,0,2,0,5,83.39137,9.967326,0,100,0,0,1,0,1.609438,0,0,0,0,0,0,0,100,8.941345,1.609438,3.135525,1 +11,4,0,1,1,430085,0,7640.469,7.318275,0,14,1,0,16.06231,0,0,0,16.06231,0,0,0,0,0,4,80,9.967326,0,100,0,0,1,0,1.386294,0,0,0,0,0,0,0,100,8.941345,1.386294,2.776475,1 +11,4,0,1,2,430085,0,7640.469,8.318275,0,14,1,11.72058,1.209564,24.84763,0,0,37.77778,0,0,0,1,0,5,80,9.967326,0,100,0,0,1,0,1.609438,0,0,0,0,0,0,0,100,8.941345,1.609438,3.631721,1 +11,4,0,1,3,430085,0,7640.469,9.318275,0,14,1,7.738607,0,0,0,0,7.738607,0,0,0,1,0,5,80,9.967326,0,100,0,0,1,0,1.609438,0,0,0,0,0,0,0,100,8.941345,1.609438,2.046222,1 +11,4,0,1,4,430085,0,7640.469,10.31828,0,14,1,29.85653,4.071345,21.71384,0,0,55.64172,0,0,0,4,0,5,80,9.967326,0,100,0,0,1,0,1.609438,0,0,0,0,0,0,0,100,8.941345,1.609438,4.018933,1 +11,4,0,1,5,430085,0,7640.469,11.31828,0,14,1,44.76292,1.769285,13.80042,0,0,60.33263,0,0,0,5,0,5,80,9.967326,0,100,0,0,1,0,1.609438,0,0,0,0,0,0,0,100,8.941345,1.609438,4.099873,1 +11,4,0,1,1,430086,0,7640.469,31.13484,0,12,1,20.68437,4.264555,31.4096,0,0,56.35853,0,0,0,0,1,4,70.2,13.8,0,63.6,0,0,0,0,1.386294,0,0,0,0,0,0,0,63.6,8.941345,1.386294,4.031734,1 +11,4,0,1,2,430086,0,7640.469,32.13484,0,12,1,14.0647,0,0,0,0,14.0647,0,0,0,1,0,5,70.2,13.8,0,63.6,0,0,0,0,1.609438,0,0,0,0,0,0,0,63.6,8.941345,1.609438,2.643668,1 +11,4,0,1,3,430086,0,7640.469,33.13484,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,70.2,13.8,0,63.6,0,0,0,0,1.609438,0,0,0,0,0,0,0,63.6,8.941345,1.609438,,0 +11,4,0,1,4,430086,0,7640.469,34.13484,0,12,1,9.69368,0,29.46879,0,0,39.16247,0,0,0,1,0,5,70.2,13.8,0,63.6,0,0,0,0,1.609438,0,0,0,0,0,0,0,63.6,8.941345,1.609438,3.667719,1 +11,4,0,1,5,430086,0,7640.469,35.13484,0,12,1,28.30856,0,16.27742,0,0,44.58599,0,0,0,2,0,5,70.2,13.8,0,63.6,0,0,0,0,1.609438,0,0,0,0,0,0,0,63.6,8.941345,1.609438,3.79742,1 +11,4,0,1,1,430087,0,7640.469,29.46749,1,14,1,62.35955,13.81512,26.04699,0,1276.839,1379.06,1,0,0,7,1,4,85.1,6.9,1,87.5,0,0,0,0,1.386294,0,0,0,0,0,0,0,87.5,8.941345,1.386294,7.229157,1 +11,4,0,1,2,430087,0,7640.469,30.46749,1,14,1,14.0647,0,0,0,0,14.0647,0,0,0,1,0,5,85.1,6.9,1,87.5,0,0,0,0,1.609438,0,0,0,0,0,0,0,87.5,8.941345,1.609438,2.643668,1 +11,4,0,1,3,430087,0,7640.469,31.46749,1,14,1,10.74806,0,21.49613,0,0,32.2442,0,0,0,1,0,5,85.1,6.9,1,87.5,0,0,0,0,1.609438,0,0,0,0,0,0,0,87.5,8.941345,1.609438,3.473338,1 +11,4,0,1,4,430087,0,7640.469,32.46749,1,14,1,25.59131,0,0,0,0,25.59131,0,0,0,2,0,5,85.1,6.9,1,87.5,0,0,0,0,1.609438,0,0,0,0,0,0,0,87.5,8.941345,1.609438,3.242253,1 +11,4,0,1,5,430087,0,7640.469,33.46749,1,14,1,76.78698,0,25.12385,0,0,101.9108,0,0,0,2,0,5,85.1,6.9,1,87.5,0,0,0,0,1.609438,0,0,0,0,0,0,0,87.5,8.941345,1.609438,4.624098,1 +19,4,25,1,1,430128,0,7333.138,34.88843,1,8,1,58.2085,10.72874,27.32794,0,0,96.26518,0,0,0,5,1,3,88.8,0,0,81.8,750,725,0,0,1.098612,6.586172,0,3.258096,8.006368,0,0,0,81.8,8.900295,1.098612,4.567107,1 +19,4,25,1,2,430128,0,7333.138,35.88843,1,8,1,190.3263,27.58974,13.51981,0,0,231.4359,0,0,0,8,1,3,88.8,0,0,81.8,750,725,0,0,1.098612,6.586172,0,3.258096,8.006368,0,0,0,81.8,8.900295,1.098612,5.444303,1 +19,4,25,1,3,430128,0,7333.138,36.88843,1,8,1,86.14793,24.79692,0,0,0,110.9448,0,0,0,6,1,3,88.8,0,0,81.8,750,725,0,0,1.098612,6.586172,0,3.258096,8.006368,0,0,0,81.8,8.900295,1.098612,4.709033,1 +19,4,25,1,1,430129,0,7333.138,6.631074,0,8,1,17.71255,4.908907,0,0,0,22.62146,0,0,0,2,0,3,90,9.967326,0,100,750,725,1,0,1.098612,6.586172,0,3.258096,8.006368,0,0,0,100,8.900295,1.098612,3.118899,1 +19,4,25,1,2,430129,0,7333.138,7.631074,0,8,1,103.4965,9.79021,0,0,0,113.2867,0,0,0,10,0,3,90,9.967326,0,100,750,725,1,0,1.098612,6.586172,0,3.258096,8.006368,0,0,0,100,8.900295,1.098612,4.729922,1 +19,4,25,1,3,430129,0,7333.138,8.631075,0,8,1,22.23172,0,0,0,0,22.23172,0,0,0,4,0,3,90,9.967326,0,100,750,725,1,0,1.098612,6.586172,0,3.258096,8.006368,0,0,0,100,8.900295,1.098612,3.10152,1 +19,4,25,1,1,430130,0,7333.138,36.58864,0,13,1,118.335,1.007085,0,0,0,119.3421,0,0,0,5,0,3,75.5,3.4,0,86.4,750,725,0,0,1.098612,6.586172,0,3.258096,8.006368,0,0,0,86.4,8.900295,1.098612,4.781994,1 +19,4,25,1,2,430130,0,7333.138,37.58864,0,13,1,17.24942,0,0,0,0,17.24942,0,0,0,2,0,3,75.5,3.4,0,86.4,750,725,0,0,1.098612,6.586172,0,3.258096,8.006368,0,0,0,86.4,8.900295,1.098612,2.847778,1 +19,4,25,1,3,430130,0,7333.138,38.58864,0,13,1,22.44549,0,0,0,0,22.44549,0,0,0,2,0,3,75.5,3.4,0,86.4,750,725,0,0,1.098612,6.586172,0,3.258096,8.006368,0,0,0,86.4,8.900295,1.098612,3.11109,1 +10,4,50,1,1,430135,0,9883.871,59.67146,1,13,1,29.91828,0,0,0,0,29.91828,0,0,0,0,0,2,82.4,20.7,0,88.6,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,88.6,9.198761,.6931472,3.39847,1 +10,4,50,1,2,430135,0,9883.871,60.67146,1,13,1,119.0811,5.330521,0,0,0,124.4116,0,0,0,6,0,2,82.4,20.7,0,88.6,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,88.6,9.198761,.6931472,4.823596,1 +10,4,50,1,3,430135,0,9883.871,61.67146,1,13,1,51.24678,4.531384,36.54342,0,0,92.32158,0,0,0,2,1,2,82.4,20.7,0,88.6,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,88.6,9.198761,.6931472,4.525278,1 +10,4,50,1,1,430136,0,9883.871,60.59959,0,12,1,30.16343,18.56486,47.75281,0,0,96.4811,0,0,0,1,1,2,86.7,10.3,1,78.4,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,78.4,9.198761,.6931472,4.569347,1 +10,4,50,1,2,430136,0,9883.871,61.59959,0,12,1,51.10173,75.26958,0,0,0,126.3713,0,0,0,5,0,2,86.7,10.3,1,78.4,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,78.4,9.198761,.6931472,4.839224,1 +10,4,50,1,3,430136,0,9883.871,62.59959,0,12,1,57.05073,41.50043,29.23474,0,0,127.7859,0,0,0,2,0,2,86.7,10.3,1,78.4,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,78.4,9.198761,.6931472,4.850356,1 +18,4,25,1,1,430150,0,3311.437,45.26762,1,13,1,262.419,7.970648,0,0,0,270.3897,0,0,0,13,0,2,66,0,0,58,386.8,743.28,0,0,.6931472,6.611073,0,3.258096,7.344202,1,0,0,58,8.105439,.6931472,5.599864,1 +18,4,25,1,2,430150,0,3311.437,46.26762,1,13,1,0,0,23.31002,0,0,23.31002,0,0,0,0,0,2,66,0,0,58,386.8,743.28,0,0,.6931472,6.611073,0,3.258096,7.344202,1,0,0,58,8.105439,.6931472,3.148884,1 +18,4,25,1,3,430150,0,3311.437,47.26762,1,13,1,40.50877,0,26.21633,0,0,66.7251,0,0,0,3,0,2,66,0,0,58,386.8,743.28,0,0,.6931472,6.611073,0,3.258096,7.344202,1,0,0,58,8.105439,.6931472,4.200581,1 +18,4,25,1,1,430151,0,3311.437,9.303217,1,13,1,15.68826,5.541498,0,0,0,21.22976,0,0,0,3,0,2,75,9.967326,0,63,386.8,743.28,1,1,.6931472,6.611073,0,3.258096,7.344202,1,0,0,63,8.105439,.6931472,3.055404,1 +18,4,25,1,2,430151,0,3311.437,10.30322,1,13,1,16.31702,6.969697,0,0,0,23.28671,0,0,0,2,0,2,75,9.967326,0,63,386.8,743.28,1,1,.6931472,6.611073,0,3.258096,7.344202,1,0,0,63,8.105439,.6931472,3.147883,1 +18,4,25,1,3,430151,0,3311.437,11.30322,1,13,1,16.67379,2.244549,0,0,0,18.91834,0,0,0,3,0,2,75,9.967326,0,63,386.8,743.28,1,1,.6931472,6.611073,0,3.258096,7.344202,1,0,0,63,8.105439,.6931472,2.940132,1 +13,4,0,1,1,430161,0,5556.012,29.92471,0,14,1,0,32.92117,0,0,0,32.92117,0,0,0,0,0,3,69.7,3.4,1,59.1,450,743.28,0,0,1.098612,6.611073,1,4.564348,6.160541,1,0,0,59.1,8.622816,1.098612,3.494116,1 +13,4,0,1,2,430161,0,5556.012,30.92471,0,14,1,51.13636,22.11174,0,14.20455,0,73.24811,0,0,1,6,0,2,69.7,3.4,1,59.1,450,743.28,0,0,.6931472,6.611073,1,4.564348,6.160541,1,0,0,59.1,8.622816,.6931472,4.293852,1 +13,4,0,1,3,430161,0,5556.012,31.92471,0,14,1,103.0559,24.46901,0,0,0,127.5249,0,0,0,5,7,2,69.7,3.4,1,59.1,450,743.28,0,0,.6931472,6.611073,1,4.564348,6.160541,1,0,0,59.1,8.622816,.6931472,4.848312,1 +13,4,0,1,1,430162,0,5556.012,1.451061,1,12,.1506849,82.14838,2.060793,0,0,1304.858,1389.068,1,0,0,1,0,3,83.39137,9.967326,0,100,450,743.28,1,1,1.098612,6.611073,1,4.564348,6.160541,1,0,0,100,8.622816,1.098612,7.236388,1 +13,4,0,1,1,430163,0,5556.012,21.85626,1,12,1,78.31015,5.512622,0,0,375.4044,459.2272,1,0,0,4,0,3,53.7,17.2,0,69.3,450,743.28,0,0,1.098612,6.611073,1,4.564348,6.160541,1,0,0,69.3,8.622816,1.098612,6.129545,1 +13,4,0,1,2,430163,0,5556.012,22.85626,1,12,1,109.5881,8.106061,0,0,0,117.6941,0,0,0,5,0,2,53.7,17.2,0,69.3,450,743.28,0,0,.6931472,6.611073,1,4.564348,6.160541,1,0,0,69.3,8.622816,.6931472,4.768089,1 +13,4,0,1,3,430163,0,5556.012,23.85626,1,12,1,24.27395,2.232336,0,0,597.2995,623.8058,1,0,0,2,0,2,53.7,17.2,0,69.3,450,743.28,0,0,.6931472,6.611073,1,4.564348,6.160541,1,0,0,69.3,8.622816,.6931472,6.435839,1 +11,4,0,1,1,430167,0,16622.29,50.5243,0,10,1,18.89683,0,43.62104,0,0,62.51788,0,0,0,2,0,3,77.1,10.3,0,60.2,0,0,0,0,1.098612,0,0,0,0,1,0,0,60.2,9.71856,1.098612,4.135453,1 +11,4,0,1,2,430167,0,16622.29,51.5243,0,10,1,0,0,0,0,0,0,0,0,0,0,0,3,77.1,10.3,0,60.2,0,0,0,0,1.098612,0,0,0,0,1,0,0,60.2,9.71856,1.098612,,0 +11,4,0,1,3,430167,0,16622.29,52.5243,0,10,1,0,0,0,0,0,0,0,0,0,0,0,3,77.1,10.3,0,60.2,0,0,0,0,1.098612,0,0,0,0,1,0,0,60.2,9.71856,1.098612,,0 +11,4,0,1,1,430168,0,16622.29,21.2731,1,13,1,0,3.651685,0,0,0,3.651685,0,0,0,0,0,3,77.1,0,0,78.4,0,0,0,0,1.098612,0,0,0,0,1,0,0,78.4,9.71856,1.098612,1.295189,1 +11,4,0,1,2,430168,0,16622.29,22.2731,1,13,1,0,0,0,0,0,0,0,0,0,0,0,3,77.1,0,0,78.4,0,0,0,0,1.098612,0,0,0,0,1,0,0,78.4,9.71856,1.098612,,0 +11,4,0,1,3,430168,0,16622.29,23.2731,1,13,1,0,0,0,0,0,0,0,0,0,0,0,3,77.1,0,0,78.4,0,0,0,0,1.098612,0,0,0,0,1,0,0,78.4,9.71856,1.098612,,0 +11,4,0,1,1,430169,0,16622.29,48.5859,1,12,1,17.87538,8.171603,0,0,0,26.04699,0,0,0,2,0,3,73.9,10.3,0,75,0,0,0,0,1.098612,0,0,0,0,1,0,0,75,9.71856,1.098612,3.259902,1 +11,4,0,1,2,430169,0,16622.29,49.5859,1,12,1,0,0,45.54149,0,0,45.54149,0,0,0,0,0,3,73.9,10.3,0,75,0,0,0,0,1.098612,0,0,0,0,1,0,0,75,9.71856,1.098612,3.818624,1 +11,4,0,1,3,430169,0,16622.29,50.5859,1,12,1,53.61135,0,0,0,0,53.61135,0,0,0,1,0,3,73.9,10.3,0,75,0,0,0,0,1.098612,0,0,0,0,1,0,0,75,9.71856,1.098612,3.981761,1 +19,4,25,1,1,430199,0,7685.044,5.226557,1,12,1,71.27769,21.61257,0,0,0,92.89027,0,0,0,26,0,6,90,9.967326,0,77.8,750,750,1,1,1.791759,6.620073,0,3.258096,8.006368,0,0,0,77.8,8.947162,1.791759,4.531419,1 +19,4,25,1,2,430199,0,7685.044,6.226557,1,12,1,37.4053,7.362689,5.392992,0,0,50.16098,0,0,0,14,0,6,90,9.967326,0,77.8,750,750,1,1,1.791759,6.620073,0,3.258096,8.006368,0,0,0,77.8,8.947162,1.791759,3.915237,1 +19,4,25,1,3,430199,0,7685.044,7.226557,1,12,1,41.61248,12.6788,0,0,0,54.29129,0,0,0,11,0,6,90,9.967326,0,77.8,750,750,1,1,1.791759,6.620073,0,3.258096,8.006368,0,0,0,77.8,8.947162,1.791759,3.994364,1 +19,4,25,1,1,430200,0,7685.044,8.996577,1,12,1,0,1.030397,0,0,0,1.030397,0,0,0,0,0,6,90,9.967326,0,77.8,750,750,1,1,1.791759,6.620073,0,3.258096,8.006368,0,0,0,77.8,8.947162,1.791759,.0299439,1 +19,4,25,1,2,430200,0,7685.044,9.996577,1,12,1,23.67424,8.570076,0,0,0,32.24432,0,0,0,3,0,6,90,9.967326,0,77.8,750,750,1,1,1.791759,6.620073,0,3.258096,8.006368,0,0,0,77.8,8.947162,1.791759,3.473342,1 +19,4,25,1,3,430200,0,7685.044,10.99658,1,12,1,18.63893,0,0,0,0,18.63893,0,0,0,2,0,6,90,9.967326,0,77.8,750,750,1,1,1.791759,6.620073,0,3.258096,8.006368,0,0,0,77.8,8.947162,1.791759,2.925252,1 +19,4,25,1,1,430201,0,7685.044,7.868583,0,12,1,7.727975,1.030397,0,0,0,8.758372,0,0,0,1,0,6,90,9.967326,0,77.8,750,750,1,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,77.8,8.947162,1.791759,2.17001,1 +19,4,25,1,2,430201,0,7685.044,8.868583,0,12,1,18.93939,2.556818,0,0,0,21.49621,0,0,0,2,0,6,90,9.967326,0,77.8,750,750,1,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,77.8,8.947162,1.791759,3.067877,1 +19,4,25,1,3,430201,0,7685.044,9.868583,0,12,1,18.63893,2.340702,0,0,0,20.97963,0,0,0,2,0,6,90,9.967326,0,77.8,750,750,1,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,77.8,8.947162,1.791759,3.043552,1 +19,4,25,1,1,430202,0,7685.044,36.83504,1,12,1,30.9119,7.805255,30.58217,0,0,69.29933,0,0,0,3,0,6,71.8,17.2,0,86.4,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,86.4,8.947162,1.791759,4.238435,1 +19,4,25,1,2,430202,0,7685.044,37.83504,1,12,1,35.51136,17.40057,0,0,0,52.91193,0,0,0,3,0,6,71.8,17.2,0,86.4,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,86.4,8.947162,1.791759,3.968629,1 +19,4,25,1,3,430202,0,7685.044,38.83504,1,12,1,71.84656,19.5492,27.01344,0,0,118.4092,0,0,0,4,0,6,71.8,17.2,0,86.4,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,86.4,8.947162,1.791759,4.774146,1 +19,4,25,1,1,430203,0,7685.044,39.01163,0,8,1,10.30397,0,34.82741,0,0,45.13137,0,0,0,1,0,6,84,10.3,0,83,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,83,8.947162,1.791759,3.809578,1 +19,4,25,1,2,430203,0,7685.044,40.01163,0,8,1,9.469697,6.912879,0,0,0,16.38258,0,0,0,1,0,6,84,10.3,0,83,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,83,8.947162,1.791759,2.796218,1 +19,4,25,1,3,430203,0,7685.044,41.01163,0,8,1,0,6.415258,28.91201,0,0,35.32727,0,0,0,0,0,6,84,10.3,0,83,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,83,8.947162,1.791759,3.564655,1 +19,4,25,1,1,430204,0,7685.044,10.89938,0,12,1,27.04791,3.369397,0,0,0,30.41731,0,0,0,2,0,6,88.3,9.967326,0,77.8,750,750,1,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,77.8,8.947162,1.791759,3.415012,1 +19,4,25,1,2,430204,0,7685.044,11.89938,0,12,1,33.61742,5.776515,0,0,0,39.39394,0,0,0,3,0,6,88.3,9.967326,0,77.8,750,750,1,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,77.8,8.947162,1.791759,3.673612,1 +19,4,25,1,3,430204,0,7685.044,12.89938,0,12,1,16.47161,2.340702,26.0078,0,0,44.82011,0,0,0,1,1,6,88.3,9.967326,0,77.8,750,750,1,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,77.8,8.947162,1.791759,3.802657,1 +15,4,95,1,1,430228,0,6648.094,3.86037,0,14,1,16.70041,0,0,0,0,16.70041,0,0,0,2,0,3,83.39137,9.967326,0,70.4,1000,999.8,1,0,1.098612,6.907555,0,4.564348,6.959049,1,0,0,70.4,8.802236,1.098612,2.815433,1 +15,4,95,1,2,430228,0,6648.094,4.86037,0,14,1,29.37063,0,0,0,0,29.37063,0,0,0,2,0,4,83.39137,9.967326,0,70.4,1000,999.8,1,0,1.386294,6.907555,0,4.564348,6.959049,1,0,0,70.4,8.802236,1.386294,3.379995,1 +15,4,95,1,3,430228,0,6648.094,5.86037,0,14,1,5.130398,0,0,0,0,5.130398,0,0,0,1,0,4,83.39137,9.967326,0,70.4,1000,999.8,1,0,1.386294,6.907555,0,4.564348,6.959049,1,0,0,70.4,8.802236,1.386294,1.635183,1 +15,4,95,1,1,430229,0,6648.094,27.36482,1,14,1,51.11336,4.529352,26.06275,0,1127.576,1209.281,1,0,0,3,0,3,77.1,6.9,0,73.9,1000,999.8,0,0,1.098612,6.907555,0,4.564348,6.959049,1,0,0,73.9,8.802236,1.098612,7.097782,1 +15,4,95,1,2,430229,0,6648.094,28.36482,1,14,1,88.11189,0,0,0,0,88.11189,0,0,0,2,0,4,77.1,6.9,0,73.9,1000,999.8,0,0,1.386294,6.907555,0,4.564348,6.959049,1,0,0,73.9,8.802236,1.386294,4.478608,1 +15,4,95,1,3,430229,0,6648.094,29.36482,1,14,1,10.68833,0,32.49252,0,1249.85,1293.031,1,0,0,1,0,4,77.1,6.9,0,73.9,1000,999.8,0,0,1.386294,6.907555,0,4.564348,6.959049,1,0,0,73.9,8.802236,1.386294,7.164744,1 +15,4,95,1,1,430230,0,6648.094,25.57153,0,16,1,0,0,0,0,0,0,0,0,0,0,0,3,93.6,3.4,0,84.1,1000,999.8,0,0,1.098612,6.907555,0,4.564348,6.959049,1,0,0,84.1,8.802236,1.098612,,0 +15,4,95,1,2,430230,0,6648.094,26.57153,0,16,1,58.90443,0,0,0,0,58.90443,0,0,0,3,0,4,93.6,3.4,0,84.1,1000,999.8,0,0,1.386294,6.907555,0,4.564348,6.959049,1,0,0,84.1,8.802236,1.386294,4.075916,1 +15,4,95,1,3,430230,0,6648.094,27.57153,0,16,1,79.41428,.9790509,29.49979,0,0,109.8931,0,0,0,5,0,4,93.6,3.4,0,84.1,1000,999.8,0,0,1.386294,6.907555,0,4.564348,6.959049,1,0,0,84.1,8.802236,1.386294,4.699508,1 +15,4,95,1,1,430290,0,3540.762,28.60233,0,8,1,0,0,0,0,0,0,0,0,0,0,0,3,70.7,13.8,0,70.5,859.9,859.9,0,0,1.098612,6.756816,0,4.564348,6.808109,0,1,0,70.5,8.172379,1.098612,,0 +15,4,95,1,2,430290,0,3540.762,29.60233,0,8,1,0,0,0,0,0,0,0,0,0,0,0,3,70.7,13.8,0,70.5,859.9,859.9,0,0,1.098612,6.756816,0,4.564348,6.808109,0,1,0,70.5,8.172379,1.098612,,0 +15,4,95,1,1,430291,0,3540.762,7.047228,1,14,1,9.193054,0,0,0,0,9.193054,0,0,0,1,0,3,71.7,9.967326,0,74.1,859.9,859.9,1,1,1.098612,6.756816,0,4.564348,6.808109,0,0,0,74.1,8.172379,1.098612,2.218448,1 +15,4,95,1,2,430291,0,3540.762,8.047228,1,14,1,0,0,0,0,0,0,0,0,0,0,0,3,71.7,9.967326,0,74.1,859.9,859.9,1,1,1.098612,6.756816,0,4.564348,6.808109,0,0,0,74.1,8.172379,1.098612,,0 +15,4,95,1,1,430292,0,3540.762,28.52019,1,14,1,21.24106,0,0,0,0,21.24106,0,0,0,0,0,3,65.4,6.9,0,70.5,859.9,859.9,0,0,1.098612,6.756816,0,4.564348,6.808109,0,0,1,70.5,8.172379,1.098612,3.055936,1 +15,4,95,1,2,430292,0,3540.762,29.52019,1,14,1,39.53587,0,27.66057,0,0,67.19643,0,0,0,1,1,3,65.4,6.9,0,70.5,859.9,859.9,0,0,1.098612,6.756816,0,4.564348,6.808109,0,0,1,70.5,8.172379,1.098612,4.20762,1 +11,4,0,1,1,430309,0,7242.229,40.47365,0,12,1,119.3054,15.09704,28.96833,0,0,163.3708,0,0,0,7,1,1,72.3,37.9,0,76.1,0,0,0,0,0,0,0,0,0,0,0,0,76.1,8.887822,0,5.096023,1 +11,4,0,1,2,430309,0,7242.229,41.47365,0,12,1,176.7464,120.9564,1.636193,0,0,299.339,0,0,0,6,0,1,72.3,37.9,0,76.1,0,0,0,0,0,0,0,0,0,0,0,0,76.1,8.887822,0,5.701577,1 +11,4,0,1,3,430309,0,7242.229,42.47365,0,12,1,80.93293,96.38435,12.89768,0,0,190.215,0,0,0,4,1,1,72.3,37.9,0,76.1,0,0,0,0,0,0,0,0,0,0,0,0,76.1,8.887822,0,5.248155,1 +11,4,0,1,1,430336,0,8990.029,14.24504,0,13,1,21.76113,0,0,0,0,21.76113,0,0,0,3,0,5,72.9,0,0,75,0,0,1,0,1.609438,0,0,0,0,1,0,0,75,9.103983,1.609438,3.080126,1 +11,4,0,1,2,430336,0,8990.029,15.24504,0,13,1,0,0,0,0,0,0,0,0,0,0,0,5,72.9,0,0,75,0,0,1,0,1.609438,0,0,0,0,1,0,0,75,9.103983,1.609438,,0 +11,4,0,1,3,430336,0,8990.029,16.24504,0,13,1,5.771698,0,0,452.6507,0,5.771698,0,0,31,1,0,5,72.9,0,0,75,0,0,1,0,1.609438,0,0,0,0,1,0,0,75,9.103983,1.609438,1.752966,1 +11,4,0,1,1,430337,0,8990.029,18.79261,1,11,1,27.83401,18.11741,45.44534,0,0,91.39676,0,0,0,4,0,5,70.5,13.8,0,75,0,0,0,0,1.609438,0,0,0,0,0,0,0,75,9.103983,1.609438,4.51521,1 +11,4,0,1,2,430337,0,8990.029,19.79261,1,11,1,16.78322,1.841492,29.13753,0,0,47.76224,0,0,0,2,0,5,70.5,13.8,0,75,0,0,0,0,1.609438,0,0,0,0,0,0,0,75,9.103983,1.609438,3.866235,1 +11,4,0,1,3,430337,0,8990.029,20.79261,1,11,1,12.82599,1.838392,16.97307,0,0,31.63745,0,0,0,1,0,5,70.5,13.8,0,75,0,0,0,0,1.609438,0,0,0,0,0,0,0,75,9.103983,1.609438,3.454342,1 +11,4,0,1,1,430338,0,8990.029,47.81383,1,13,1,84.13461,36.28542,44.88866,0,0,165.3087,0,0,0,6,0,5,53.2,17.2,1,55.7,0,0,0,0,1.609438,0,0,0,0,1,0,0,55.7,9.103983,1.609438,5.107815,1 +11,4,0,1,2,430338,0,8990.029,48.81383,1,13,1,93.2401,30.47086,12.82051,16.31702,0,136.5315,0,0,1,8,0,5,53.2,17.2,1,55.7,0,0,0,0,1.609438,0,0,0,0,1,0,0,55.7,9.103983,1.609438,4.916555,1 +11,4,0,1,3,430338,0,8990.029,49.81383,1,13,1,20.09406,8.871312,28.68747,198.2685,0,57.65284,0,0,14,2,0,5,53.2,17.2,1,55.7,0,0,0,0,1.609438,0,0,0,0,1,0,0,55.7,9.103983,1.609438,4.05444,1 +11,4,0,1,1,430339,0,8990.029,48.31485,0,11,1,84.89372,10.70344,40.23279,0,432.92,568.75,1,0,0,8,0,5,77.7,6.9,0,83,0,0,0,0,1.609438,0,0,0,0,0,0,0,83,9.103983,1.609438,6.343441,1 +11,4,0,1,2,430339,0,8990.029,49.31485,0,11,1,18.88112,0,22.84382,0,0,41.72494,0,0,0,2,0,5,77.7,6.9,0,83,0,0,0,0,1.609438,0,0,0,0,0,0,0,83,9.103983,1.609438,3.731099,1 +11,4,0,1,3,430339,0,8990.029,50.31485,0,11,1,30.78238,4.959384,23.51432,3.740915,0,59.25609,0,0,1,2,1,5,77.7,6.9,0,83,0,0,0,0,1.609438,0,0,0,0,0,0,0,83,9.103983,1.609438,4.081869,1 +11,4,0,1,1,430340,0,8990.029,10.5243,0,13,1,44.54959,7.059717,0,0,0,51.60931,0,0,0,4,0,5,80,9.967326,0,88.9,0,0,1,0,1.609438,0,0,0,0,0,0,0,88.9,9.103983,1.609438,3.943702,1 +11,4,0,1,2,430340,0,8990.029,11.5243,0,13,1,7.692307,0,0,0,0,7.692307,0,0,0,1,0,5,80,9.967326,0,88.9,0,0,1,0,1.609438,0,0,0,0,0,0,0,88.9,9.103983,1.609438,2.040221,1 +11,4,0,1,3,430340,0,8990.029,12.5243,0,13,1,6.51988,0,0,3.740915,0,6.51988,0,0,1,1,0,5,80,9.967326,0,88.9,0,0,1,0,1.609438,0,0,0,0,0,0,0,88.9,9.103983,1.609438,1.874856,1 +11,4,0,0,1,430346,0,8516.716,29.16906,0,12,1,134.9438,0,0,0,0,134.9438,0,0,0,2,0,4,83.5,3.4,0,77.3,0,0,0,0,1.386294,0,0,0,0,0,0,0,77.3,9.049904,1.386294,4.904859,1 +11,4,0,0,2,430346,0,8516.716,30.16906,0,12,1,84.72574,1.964369,0,0,0,86.69011,0,0,0,8,0,5,83.5,3.4,0,77.3,0,0,0,0,1.609438,0,0,0,0,0,0,0,77.3,9.049904,1.609438,4.46234,1 +11,4,0,0,3,430346,0,8516.716,31.16906,0,12,1,85.12468,5.872743,0,0,0,90.99742,0,0,0,0,11,5,83.5,3.4,0,77.3,0,0,0,0,1.609438,0,0,0,0,0,0,0,77.3,9.049904,1.609438,4.510831,1 +11,4,0,0,4,430346,0,8516.716,32.16906,0,12,1,57.77433,1.046917,0,54.28461,0,58.82125,0,0,3,2,0,5,83.5,3.4,0,77.3,0,0,0,0,1.609438,0,0,0,0,0,0,0,77.3,9.049904,1.609438,4.074503,1 +11,4,0,0,5,430346,0,8516.716,33.16906,0,12,1,4.246284,2.770701,0,0,0,7.016985,0,0,0,1,0,5,83.5,3.4,0,77.3,0,0,0,0,1.609438,0,0,0,0,0,0,0,77.3,9.049904,1.609438,1.948334,1 +11,4,0,0,1,430347,0,8516.716,25.96578,1,12,1,48.83554,30.89888,0,0,708.6619,788.3963,1,0,0,1,0,4,72.3,10.3,0,20.5,0,0,0,0,1.386294,0,0,0,0,0,1,0,20.5,9.049904,1.386294,6.670001,1 +11,4,0,0,2,430347,0,8516.716,26.96578,1,12,1,23.44116,13.92874,0,0,0,37.3699,0,0,0,2,0,5,72.3,10.3,0,20.5,0,0,0,0,1.609438,0,0,0,0,0,1,0,20.5,9.049904,1.609438,3.620866,1 +11,4,0,0,3,430347,0,8516.716,27.96578,1,12,1,80.39553,62.61823,0,0,0,143.0138,0,0,0,9,0,5,72.3,10.3,0,20.5,0,0,0,0,1.609438,0,0,0,0,0,1,0,20.5,9.049904,1.609438,4.962941,1 +11,4,0,0,4,430347,0,8516.716,28.96578,1,12,1,49.63164,113.3967,0,19.38736,2124.839,2287.867,1,0,1,8,0,5,72.3,10.3,0,20.5,0,0,0,0,1.609438,0,0,0,0,0,1,0,20.5,9.049904,1.609438,7.735375,1 +11,4,0,0,5,430347,0,8516.716,29.96578,1,12,1,65.03893,83.4678,0,42.46284,0,148.5067,0,0,5,4,0,5,72.3,10.3,0,20.5,0,0,0,0,1.609438,0,0,0,0,0,1,0,20.5,9.049904,1.609438,5.00063,1 +11,4,0,0,1,430348,0,8516.716,5.292265,0,12,1,135.572,15.44433,0,0,0,151.0163,0,0,0,9,0,4,83.3,9.967326,0,77.8,0,0,1,0,1.386294,0,0,0,0,0,0,0,77.8,9.049904,1.386294,5.017388,1 +11,4,0,0,2,430348,0,8516.716,6.292265,0,12,1,177.4543,5.80872,9.376465,0,0,192.6395,0,0,0,10,0,5,83.3,9.967326,0,77.8,0,0,1,0,1.609438,0,0,0,0,0,0,0,77.8,9.049904,1.609438,5.26082,1 +11,4,0,0,3,430348,0,8516.716,7.292265,0,12,1,77.773,10.46002,0,0,0,88.23302,0,0,0,9,0,5,83.3,9.967326,0,77.8,0,0,1,0,1.609438,0,0,0,0,0,0,0,77.8,9.049904,1.609438,4.479981,1 +11,4,0,0,4,430348,0,8516.716,8.292266,0,12,1,44.20318,5.998449,0,0,0,50.20163,0,0,0,6,0,5,83.3,9.967326,0,77.8,0,0,1,0,1.609438,0,0,0,0,0,0,0,77.8,9.049904,1.609438,3.916048,1 +11,4,0,0,5,430348,0,8516.716,9.292266,0,12,1,23.00071,1.302194,0,0,0,24.3029,0,0,0,3,0,5,83.3,9.967326,0,77.8,0,0,1,0,1.609438,0,0,0,0,0,0,0,77.8,9.049904,1.609438,3.190596,1 +11,4,0,0,1,430349,0,8516.716,3.019849,0,12,1,171.3228,23.62104,14.49949,0,0,209.4433,0,0,0,11,0,4,83.39137,9.967326,1,74.1,0,0,1,0,1.386294,0,0,0,0,1,0,0,74.1,9.049904,1.386294,5.344453,1 +11,4,0,0,2,430349,0,8516.716,4.019849,0,12,1,175.3446,20.35631,7.032349,0,0,202.7332,0,0,0,11,0,5,83.39137,9.967326,1,74.1,0,0,1,0,1.609438,0,0,0,0,1,0,0,74.1,9.049904,1.609438,5.311891,1 +11,4,0,0,3,430349,0,8516.716,5.019849,0,12,1,83.40498,23.04815,0,0,0,106.4531,0,0,0,14,0,5,83.39137,9.967326,1,74.1,0,0,1,0,1.609438,0,0,0,0,1,0,0,74.1,9.049904,1.609438,4.667705,1 +11,4,0,0,4,430349,0,8516.716,6.019849,0,12,1,89.95734,18.47228,7.754944,0,611.6635,727.848,2,0,0,9,0,5,83.39137,9.967326,1,74.1,0,0,1,0,1.609438,0,0,0,0,1,0,0,74.1,9.049904,1.609438,6.590092,1 +11,4,0,0,5,430349,0,8516.716,7.019849,0,12,1,95.18755,15.36093,0,0,0,110.5485,0,0,0,11,0,5,83.39137,9.967326,1,74.1,0,0,1,0,1.609438,0,0,0,0,1,0,0,74.1,9.049904,1.609438,4.705454,1 +15,4,95,1,1,430359,0,7910.823,34.6256,0,20,1,0,0,0,0,0,0,0,0,0,0,0,1,91.5,6.9,0,75,1000,975,0,0,0,6.882438,0,4.564348,6.959049,0,0,0,75,8.976113,0,,0 +15,4,95,1,3,430359,0,7910.823,36.6256,0,20,1,0,0,0,0,0,0,0,0,0,0,0,1,91.5,6.9,0,75,1000,975,0,0,0,6.882438,0,4.564348,6.959049,0,0,0,75,8.976113,0,,0 +15,4,95,1,1,430360,0,4771.848,31.52909,1,16,1,15.32176,0,0,0,0,15.32176,0,0,0,1,0,1,87.8,10.3,0,81.8,868,868,0,0,0,6.766191,0,4.564348,6.817485,0,0,0,81.8,8.470698,0,2.729274,1 +15,4,95,1,2,430360,0,4771.848,32.52909,1,16,1,0,0,0,0,0,0,0,0,0,0,0,1,87.8,10.3,0,81.8,868,868,0,0,0,6.766191,0,4.564348,6.817485,0,0,0,81.8,8.470698,0,,0 +15,4,95,1,3,430360,0,4771.848,33.52909,1,16,1,0,0,0,0,0,0,0,0,0,0,0,1,87.8,10.3,0,81.8,868,868,0,0,0,6.766191,0,4.564348,6.817485,0,0,0,81.8,8.470698,0,,0 +13,4,0,1,1,430449,0,7910.823,43.32649,0,14,1,0,0,0,0,0,0,0,0,0,0,0,5,67,6.9,0,58,450,425,0,0,1.609438,6.052089,1,4.564348,6.160541,1,0,0,58,8.976113,1.609438,,0 +13,4,0,1,2,430449,0,7910.823,44.32649,0,14,1,0,0,0,0,0,0,0,0,0,0,0,5,67,6.9,0,58,450,425,0,0,1.609438,6.052089,1,4.564348,6.160541,1,0,0,58,8.976113,1.609438,,0 +13,4,0,1,3,430449,0,7910.823,45.32649,0,14,1,8.669268,0,0,0,0,8.669268,0,0,0,1,0,5,67,6.9,0,58,450,425,0,0,1.609438,6.052089,1,4.564348,6.160541,1,0,0,58,8.976113,1.609438,2.159784,1 +13,4,0,1,1,430450,0,7910.823,11.74812,0,16,1,0,1.674395,0,0,0,1.674395,0,0,0,0,0,5,51.7,9.967326,0,81.5,450,425,1,0,1.609438,6.052089,1,4.564348,6.160541,0,0,0,81.5,8.976113,1.609438,.5154517,1 +13,4,0,1,2,430450,0,7910.823,12.74812,0,16,1,14.20455,0,0,0,0,14.20455,0,0,0,3,0,5,51.7,9.967326,0,81.5,450,425,1,0,1.609438,6.052089,1,4.564348,6.160541,0,0,0,81.5,8.976113,1.609438,2.653562,1 +13,4,0,1,3,430450,0,7910.823,13.74812,0,16,1,6.501951,0,0,0,0,6.501951,0,0,0,1,0,5,51.7,9.967326,0,81.5,450,425,1,0,1.609438,6.052089,1,4.564348,6.160541,0,0,0,81.5,8.976113,1.609438,1.872102,1 +13,4,0,1,1,430451,0,7910.823,10.57358,0,16,1,0,0,0,0,0,0,0,0,0,0,0,5,80,9.967326,0,85.2,450,425,1,0,1.609438,6.052089,1,4.564348,6.160541,0,0,0,85.2,8.976113,1.609438,,0 +13,4,0,1,2,430451,0,7910.823,11.57358,0,16,1,0,0,0,0,0,0,0,0,0,0,0,5,80,9.967326,0,85.2,450,425,1,0,1.609438,6.052089,1,4.564348,6.160541,0,0,0,85.2,8.976113,1.609438,,0 +13,4,0,1,3,430451,0,7910.823,12.57358,0,16,1,23.84048,0,23.40702,0,0,47.24751,0,0,0,4,0,5,80,9.967326,0,85.2,450,425,1,0,1.609438,6.052089,1,4.564348,6.160541,0,0,0,85.2,8.976113,1.609438,3.8554,1 +13,4,0,1,1,430452,0,7910.823,37.27036,1,16,1,41.34467,0,0,61.8238,277.6043,318.949,1,0,3,3,0,5,72.9,13.8,0,77.3,450,425,0,0,1.609438,6.052089,1,4.564348,6.160541,0,0,0,77.3,8.976113,1.609438,5.765031,1 +13,4,0,1,2,430452,0,7910.823,38.27036,1,16,1,0,0,0,215.4356,0,0,0,0,13,0,0,5,72.9,13.8,0,77.3,450,425,0,0,1.609438,6.052089,1,4.564348,6.160541,0,0,0,77.3,8.976113,1.609438,,0 +13,4,0,1,3,430452,0,7910.823,39.27036,1,16,1,59.70958,0,0,0,0,59.70958,0,0,0,4,0,5,72.9,13.8,0,77.3,450,425,0,0,1.609438,6.052089,1,4.564348,6.160541,0,0,0,77.3,8.976113,1.609438,4.089492,1 +13,4,0,1,1,430453,0,7910.823,8.695415,0,16,1,31.57136,0,25.75992,0,0,57.33127,0,0,0,1,0,5,86.7,9.967326,0,74.1,450,425,1,0,1.609438,6.052089,1,4.564348,6.160541,0,0,0,74.1,8.976113,1.609438,4.048846,1 +13,4,0,1,2,430453,0,7910.823,9.695415,0,16,1,0,0,0,0,0,0,0,0,0,0,0,5,86.7,9.967326,0,74.1,450,425,1,0,1.609438,6.052089,1,4.564348,6.160541,0,0,0,74.1,8.976113,1.609438,,0 +13,4,0,1,3,430453,0,7910.823,10.69541,0,16,1,0,0,0,0,0,0,0,0,0,0,0,5,86.7,9.967326,0,74.1,450,425,1,0,1.609438,6.052089,1,4.564348,6.160541,0,0,0,74.1,8.976113,1.609438,,0 +11,4,0,1,1,430455,0,7629.912,61.70294,1,12,1,88.22268,4.596527,52.98774,0,0,145.8069,0,0,0,4,0,1,83.5,10.3,0,71.6,0,126,0,0,0,4.836282,0,0,0,1,0,0,71.6,8.939962,0,4.982284,1 +11,4,0,1,2,430455,0,7629.912,62.70294,1,12,1,493.2021,17.08861,0,0,3230.849,3741.139,2,0,0,8,11,1,83.5,10.3,0,71.6,0,126,0,0,0,4.836282,0,0,0,1,0,0,71.6,8.939962,0,8.227145,1 +11,4,0,1,3,430455,0,7629.912,63.70294,1,12,.2410959,218.8521,10.10318,0,0,1080.688,1309.643,1,0,0,10,0,1,83.5,10.3,0,71.6,0,126,0,0,0,4.836282,0,0,0,1,0,0,71.6,8.939962,0,7.17751,1 +10,4,50,1,1,430460,0,9882.698,16.36687,0,12,1,164.7166,7.059717,0,0,0,171.7763,0,0,0,9,0,7,88.3,3.4,0,73.9,1000,1000,1,0,1.94591,6.907755,0,3.931826,7.600903,0,0,0,73.9,9.198642,1.94591,5.146193,1 +10,4,50,1,2,430460,0,9882.698,17.36687,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,88.3,3.4,0,73.9,1000,1000,1,0,1.791759,6.907755,0,3.931826,7.600903,0,0,0,73.9,9.198642,1.791759,,0 +10,4,50,1,3,430460,0,9882.698,18.36687,0,12,1,5.130398,2.244549,0,0,0,7.374947,0,0,0,1,0,6,88.3,3.4,0,73.9,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,0,0,0,73.9,9.198642,1.791759,1.998089,1 +10,4,50,1,4,430460,0,9882.698,19.36687,0,12,1,47.65565,0,0,0,0,47.65565,0,0,0,0,5,6,88.3,3.4,0,73.9,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,0,0,0,73.9,9.198642,1.791759,3.864001,1 +10,4,50,1,5,430460,0,9882.698,20.36687,0,12,1,95.89041,5.795574,0,0,0,101.686,0,0,0,2,7,6,88.3,3.4,0,73.9,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,0,0,0,73.9,9.198642,1.791759,4.62189,1 +10,4,50,1,1,430461,0,9882.698,16.36687,0,12,1,37.55567,0,32.38866,0,0,69.94433,0,0,0,1,0,7,73.4,6.9,0,78.4,1000,1000,1,0,1.94591,6.907755,0,3.931826,7.600903,0,0,0,78.4,9.198642,1.94591,4.2477,1 +10,4,50,1,2,430461,0,9882.698,17.36687,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,73.4,6.9,0,78.4,1000,1000,1,0,1.791759,6.907755,0,3.931826,7.600903,0,0,0,78.4,9.198642,1.791759,,0 +10,4,50,1,3,430461,0,9882.698,18.36687,0,12,1,29.49979,13.87345,29.49979,0,0,72.87302,0,0,0,4,0,6,73.4,6.9,0,78.4,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,0,0,0,78.4,9.198642,1.791759,4.288719,1 +10,4,50,1,4,430461,0,9882.698,19.36687,0,12,1,22.29055,4.304381,0,0,0,26.59493,0,0,0,2,0,6,73.4,6.9,0,78.4,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,0,0,0,78.4,9.198642,1.791759,3.28072,1 +10,4,50,1,5,430461,0,9882.698,20.36687,0,12,1,220.1791,6.041447,30.20724,0,585.8483,842.2761,1,0,0,6,0,6,73.4,6.9,0,78.4,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,0,0,0,78.4,9.198642,1.791759,6.736108,1 +10,4,50,1,1,430462,0,9882.698,45.62081,1,12,1,450.2277,95.77429,45.15688,0,0,591.1589,0,0,0,8,0,7,67,6.9,1,37.5,1000,1000,0,0,1.94591,6.907755,0,3.931826,7.600903,0,0,1,37.5,9.198642,1.94591,6.382085,1 +10,4,50,1,2,430462,0,9882.698,46.62081,1,12,1,385.8089,56.45687,47.08625,0,0,489.352,0,0,0,8,0,6,67,6.9,1,37.5,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,0,0,1,37.5,9.198642,1.791759,6.193082,1 +10,4,50,1,3,430462,0,9882.698,47.62081,1,12,1,157.0543,63.08252,32.92005,0,795.1005,1048.157,2,0,0,5,0,6,67,6.9,1,37.5,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,0,0,1,37.5,9.198642,1.791759,6.954789,1 +10,4,50,1,4,430462,0,9882.698,48.62081,1,12,1,150.1729,82.20599,0,0,0,232.3789,0,0,0,4,0,6,67,6.9,1,37.5,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,0,0,1,37.5,9.198642,1.791759,5.44837,1 +10,4,50,1,5,430462,0,9882.698,49.62081,1,12,1,165.1528,69.70496,33.01721,0,0,267.875,0,0,0,8,0,6,67,6.9,1,37.5,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,0,0,1,37.5,9.198642,1.791759,5.59052,1 +10,4,50,1,1,430463,0,9882.698,4.985626,1,12,1,217.419,0,0,0,0,217.419,0,0,0,7,0,7,83.39137,9.967326,0,92.6,1000,1000,1,1,1.94591,6.907755,0,3.931826,7.600903,0,0,0,92.6,9.198642,1.94591,5.381826,1 +10,4,50,1,2,430463,0,9882.698,5.985626,1,12,1,242.8904,11.25874,0,0,0,254.1492,0,0,0,8,0,6,83.39137,9.967326,0,92.6,1000,1000,1,1,1.791759,6.907755,0,3.931826,7.600903,0,0,0,92.6,9.198642,1.791759,5.537921,1 +10,4,50,1,3,430463,0,9882.698,6.985626,1,12,1,29.92732,1.346729,7.695596,0,0,38.96965,0,0,0,5,0,6,83.39137,9.967326,0,92.6,1000,1000,1,1,1.791759,6.907755,0,3.931826,7.600903,0,0,0,92.6,9.198642,1.791759,3.662783,1 +10,4,50,1,4,430463,0,9882.698,7.985626,1,12,1,44.96541,6.51422,0,0,547.9746,599.4543,1,0,0,7,0,6,83.39137,9.967326,0,92.6,1000,1000,1,1,1.791759,6.907755,0,3.931826,7.600903,0,0,0,92.6,9.198642,1.791759,6.39602,1 +10,4,50,1,5,430463,0,9882.698,8.985626,1,12,1,239.7541,1.931858,0,0,0,241.686,0,0,0,7,1,6,83.39137,9.967326,0,92.6,1000,1000,1,1,1.791759,6.907755,0,3.931826,7.600903,0,0,0,92.6,9.198642,1.791759,5.487639,1 +10,4,50,1,1,430464,0,9882.698,45.46475,0,12,1,10.12146,0,0,0,0,10.12146,0,0,0,1,0,7,64.9,27.6,0,69.3,1000,1000,0,0,1.94591,6.907755,0,3.931826,7.600903,0,0,0,69.3,9.198642,1.94591,2.314658,1 +10,4,50,1,2,430464,0,9882.698,46.46475,0,12,1,141.6317,3.379953,0,0,0,145.0117,0,0,0,4,0,6,64.9,27.6,0,69.3,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,0,0,0,69.3,9.198642,1.791759,4.976814,1 +10,4,50,1,3,430464,0,9882.698,47.46475,0,12,1,43.60838,9.298845,40.18811,0,554.72,647.8153,1,0,0,6,0,6,64.9,27.6,0,69.3,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,0,0,0,69.3,9.198642,1.791759,6.473606,1 +10,4,50,1,4,430464,0,9882.698,48.46475,0,12,1,289.1622,14.39277,0,0,0,303.555,0,0,0,10,0,6,64.9,27.6,0,69.3,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,0,0,0,69.3,9.198642,1.791759,5.715563,1 +10,4,50,1,5,430464,0,9882.698,49.46475,0,12,1,34.77345,2.01967,0,0,0,36.79311,0,0,0,5,0,6,64.9,27.6,0,69.3,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,0,0,0,69.3,9.198642,1.791759,3.605311,1 +10,4,50,1,1,430465,0,9882.698,14.40657,1,12,1,5.060729,0,0,0,0,5.060729,0,0,0,1,0,7,76.1,3.4,0,69.3,1000,1000,1,1,1.94591,6.907755,0,3.931826,7.600903,0,0,0,69.3,9.198642,1.94591,1.621511,1 +10,4,50,1,2,430465,0,9882.698,15.40657,1,12,1,51.46853,3.030303,0,0,0,54.49883,0,0,0,1,0,6,76.1,3.4,0,69.3,1000,1000,1,1,1.791759,6.907755,0,3.931826,7.600903,0,0,0,69.3,9.198642,1.791759,3.998179,1 +10,4,50,1,3,430465,0,9882.698,16.40657,1,12,1,75.16032,14.96366,0,0,0,90.12399,0,0,0,7,0,6,76.1,3.4,0,69.3,1000,1000,1,1,1.791759,6.907755,0,3.931826,7.600903,0,0,0,69.3,9.198642,1.791759,4.501186,1 +10,4,50,1,4,430465,0,9882.698,17.40657,1,12,1,163.7202,44.86933,20.75327,0,0,229.3428,0,0,0,16,2,6,76.1,3.4,0,69.3,1000,1000,1,1,1.791759,6.907755,0,3.931826,7.600903,0,0,0,69.3,9.198642,1.791759,5.435218,1 +10,4,50,1,5,430465,0,9882.698,18.40657,1,12,1,18.96733,8.90411,0,0,754.0815,781.9529,1,0,0,1,0,6,76.1,3.4,0,69.3,1000,1000,0,0,1.791759,6.907755,0,3.931826,7.600903,0,0,0,69.3,9.198642,1.791759,6.661795,1 +10,4,50,1,1,430466,0,9882.698,17.59891,0,12,1,2.530364,0,0,0,0,2.530364,0,0,0,0,0,7,56.9,0,0,68.2,1000,1000,1,0,1.94591,6.907755,0,3.931826,7.600903,0,0,0,68.2,9.198642,1.94591,.9283633,1 +13,4,0,1,1,430519,0,4653.373,40.40794,1,14,1,35.4954,0,0,0,0,35.4954,0,0,0,1,0,2,83,3.4,0,88.6,300,1239.16,0,0,.6931472,7.122189,1,4.564348,5.755076,0,0,0,88.6,8.445562,.6931472,3.569403,1 +13,4,0,1,2,430519,0,4653.373,41.40794,1,14,1,11.72058,0,0,168.7764,0,11.72058,0,0,9,1,0,2,83,3.4,0,88.6,300,1239.16,0,0,.6931472,7.122189,1,4.564348,5.755076,0,0,0,88.6,8.445562,.6931472,2.461346,1 +13,4,0,1,3,430519,0,4653.373,42.40794,1,14,1,23.64574,0,28.37489,103.1814,0,52.02064,0,0,6,2,0,2,83,3.4,0,88.6,300,1239.16,0,0,.6931472,7.122189,1,4.564348,5.755076,0,0,0,88.6,8.445562,.6931472,3.951641,1 +13,4,0,1,4,430519,0,4653.373,43.40794,1,14,1,0,0,0,0,0,0,0,0,0,0,0,2,83,3.4,0,88.6,300,1239.16,0,0,.6931472,7.122189,1,4.564348,5.755076,0,0,0,88.6,8.445562,.6931472,,0 +13,4,0,1,5,430519,0,4653.373,44.40794,1,14,1,47.7707,11.67728,26.37296,0,0,85.82095,0,0,0,5,0,2,83,3.4,0,88.6,300,1239.16,0,0,.6931472,7.122189,1,4.564348,5.755076,0,0,0,88.6,8.445562,.6931472,4.452263,1 +13,4,0,1,1,430520,0,4653.373,43.35387,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,73.9,0,0,72.7,300,1239.16,0,0,.6931472,7.122189,1,4.564348,5.755076,0,0,0,72.7,8.445562,.6931472,,0 +13,4,0,1,2,430520,0,4653.373,44.35387,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,73.9,0,0,72.7,300,1239.16,0,0,.6931472,7.122189,1,4.564348,5.755076,0,0,0,72.7,8.445562,.6931472,,0 +13,4,0,1,3,430520,0,4653.373,45.35387,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,73.9,0,0,72.7,300,1239.16,0,0,.6931472,7.122189,1,4.564348,5.755076,0,0,0,72.7,8.445562,.6931472,,0 +13,4,0,1,4,430520,0,4653.373,46.35387,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,73.9,0,0,72.7,300,1239.16,0,0,.6931472,7.122189,1,4.564348,5.755076,0,0,0,72.7,8.445562,.6931472,,0 +13,4,0,1,5,430520,0,4653.373,47.35387,0,12,1,12.385,0,25.25832,0,0,37.64331,0,0,0,1,0,2,73.9,0,0,72.7,300,1239.16,0,0,.6931472,7.122189,1,4.564348,5.755076,0,0,0,72.7,8.445562,.6931472,3.628155,1 +13,4,0,1,1,430521,0,3342.522,20.2026,1,12,1,84.37181,0,0,0,0,84.37181,0,0,0,6,0,1,57.4,3.4,0,77.3,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,77.3,8.11478,0,4.435233,1 +13,4,0,1,2,430521,0,3342.522,21.2026,1,12,1,54.61791,0,0,168.7764,0,54.61791,0,0,9,3,0,1,57.4,3.4,0,77.3,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,77.3,8.11478,0,4.000362,1 +13,4,0,1,3,430521,0,3342.522,22.2026,1,12,1,55.88994,16.98194,32.89768,137.5752,596.0232,701.7928,1,0,8,5,1,1,57.4,3.4,0,77.3,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,77.3,8.11478,0,6.553638,1 +13,4,0,1,4,430521,0,3342.522,23.2026,1,12,1,63.59054,11.72935,0,0,0,75.31989,0,0,0,6,0,1,57.4,3.4,0,77.3,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,77.3,8.11478,0,4.321744,1 +13,4,0,1,5,430521,0,3342.522,24.2026,1,12,1,133.581,4.511677,25.12385,0,0,163.2166,0,0,0,2,7,1,57.4,3.4,0,77.3,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,77.3,8.11478,0,5.095078,1 +16,4,95,1,1,430574,0,8758.357,18.96509,0,11,1,39.5812,0,0,0,0,39.5812,0,0,0,1,0,3,78.2,10.3,0,100,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,100,9.077878,1.098612,3.678354,1 +16,4,95,1,2,430574,0,8758.357,19.96509,0,11,1,0,0,0,0,0,0,0,0,0,0,0,3,78.2,10.3,0,100,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,100,9.077878,1.098612,,0 +16,4,95,1,3,430574,0,8758.357,20.96509,0,11,1,0,4.488392,0,0,0,4.488392,0,0,0,0,0,3,78.2,10.3,0,100,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,100,9.077878,1.098612,1.501495,1 +16,4,95,1,1,430575,0,8758.357,59.06092,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,89.4,10.3,0,73.9,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,73.9,9.077878,1.098612,,0 +16,4,95,1,2,430575,0,8758.357,60.06092,1,12,1,9.376465,0,39.84998,0,0,49.22644,0,0,0,1,0,3,89.4,10.3,0,73.9,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,73.9,9.077878,1.098612,3.896431,1 +16,4,95,1,3,430575,0,8758.357,61.06092,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,89.4,10.3,0,73.9,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,73.9,9.077878,1.098612,,0 +16,4,95,1,1,430576,0,8758.357,60.9473,0,12,1,10.2145,0,0,0,0,10.2145,0,0,0,1,0,3,62.8,10.3,1,59.1,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,1,0,0,59.1,9.077878,1.098612,2.323809,1 +16,4,95,1,2,430576,0,8758.357,61.9473,0,12,1,70.32349,0,39.84998,0,0,110.1735,0,0,0,5,0,3,62.8,10.3,1,59.1,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,1,0,0,59.1,9.077878,1.098612,4.702056,1 +16,4,95,1,3,430576,0,8758.357,62.9473,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,62.8,10.3,1,59.1,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,1,0,0,59.1,9.077878,1.098612,,0 +13,4,0,0,1,430587,.0068104,1632.258,18.47775,1,11,1,262.2976,0,0,0,0,262.2976,0,0,0,5,0,1,69.7,6.9,0,65.9,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,65.9,7.398332,0,5.569479,1 +13,4,0,0,2,430587,.0068104,1632.258,19.47775,1,11,1,0,0,0,0,0,0,0,0,0,0,0,1,69.7,6.9,0,65.9,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,65.9,7.398332,0,,0 +13,4,0,0,3,430587,.0068104,1632.258,20.47775,1,11,1,26.07952,0,0,179.5639,1183.198,1209.277,1,0,14,4,0,1,69.7,6.9,0,65.9,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,65.9,7.398332,0,7.097778,1 +11,4,0,1,1,430597,0,13873.9,48.64066,1,15,1,20.74899,28.64372,35.4251,0,0,84.81781,0,0,0,3,0,4,89.4,37.9,1,60.2,0,0,0,0,1.386294,0,0,0,0,1,0,0,60.2,9.537837,1.386294,4.440506,1 +11,4,0,1,2,430597,0,13873.9,49.64066,1,15,1,53.33333,23.07692,0,0,0,76.41026,0,0,0,1,0,4,89.4,37.9,1,60.2,0,0,0,0,1.386294,0,0,0,0,1,0,0,60.2,9.537837,1.386294,4.336117,1 +11,4,0,1,1,430598,0,13873.9,20.29295,1,13,1,16.70041,0,0,0,0,16.70041,0,0,0,2,0,4,70.7,3.4,0,87.5,0,0,0,0,1.386294,0,0,0,0,1,0,0,87.5,9.537837,1.386294,2.815433,1 +11,4,0,1,2,430598,0,13873.9,21.29295,1,13,1,55.94406,0,0,0,0,55.94406,0,0,0,3,0,4,70.7,3.4,0,87.5,0,0,0,0,1.386294,0,0,0,0,1,0,0,87.5,9.537837,1.386294,4.024352,1 +11,4,0,1,3,430598,0,13873.9,22.29295,1,13,1,66.26764,4.617358,0,0,0,70.88499,0,0,0,3,0,2,70.7,3.4,0,87.5,0,0,0,0,.6931472,0,0,0,0,1,0,0,87.5,9.537837,.6931472,4.261059,1 +11,4,0,1,1,430599,0,13873.9,18.04517,1,12,1,80.84514,0,0,0,0,80.84514,0,0,0,6,0,4,67.6,3.4,0,92,0,0,0,0,1.386294,0,0,0,0,0,1,0,92,9.537837,1.386294,4.392536,1 +11,4,0,1,2,430599,0,13873.9,19.04517,1,12,1,224.9184,0,0,0,0,224.9184,0,0,0,2,2,4,67.6,3.4,0,92,0,0,0,0,1.386294,0,0,0,0,0,1,0,92,9.537837,1.386294,5.415738,1 +11,4,0,1,3,430599,0,13873.9,20.04517,1,12,1,72.24455,0,0,0,0,72.24455,0,0,0,6,0,2,67.6,3.4,0,92,0,0,0,0,.6931472,0,0,0,0,0,1,0,92,9.537837,.6931472,4.280057,1 +6,4,25,1,1,430635,0,5668.622,57.78508,1,15,1,6.072875,.7338057,0,0,0,6.80668,0,0,0,1,0,1,80.9,10.3,0,63.6,744.68,744.68,0,0,0,6.612955,0,3.258096,7.999249,1,0,0,63.6,8.642878,0,1.917904,1 +6,4,25,1,2,430635,0,5668.622,58.78508,1,15,1,27.03963,6.410256,0,0,0,33.44988,0,0,0,2,1,1,80.9,10.3,0,63.6,744.68,744.68,0,0,0,6.612955,0,3.258096,7.999249,1,0,0,63.6,8.642878,0,3.510048,1 +6,4,25,1,3,430635,0,5668.622,59.78508,1,15,1,212.484,5.365541,0,0,0,217.8495,0,0,0,3,0,1,80.9,10.3,0,63.6,744.68,744.68,0,0,0,6.612955,0,3.258096,7.999249,1,0,0,63.6,8.642878,0,5.383804,1 +6,4,25,1,4,430635,0,5668.622,60.78508,1,15,1,23.4435,5.015373,0,0,0,28.45888,0,0,0,2,0,1,80.9,10.3,0,63.6,744.68,744.68,0,0,0,6.612955,0,3.258096,7.999249,1,0,0,63.6,8.642878,0,3.34846,1 +6,4,25,1,5,430635,0,5668.622,61.78508,1,15,1,0,0,0,0,0,0,0,0,0,0,0,1,80.9,10.3,0,63.6,744.68,744.68,0,0,0,6.612955,0,3.258096,7.999249,1,0,0,63.6,8.642878,0,,0 +6,4,25,1,1,430637,0,6642.229,28.8898,1,14,1,46.5587,1.290486,0,0,591.6599,639.5091,1,0,0,4,1,3,52.7,6.9,1,54.5,300,300,0,0,1.098612,5.703783,0,3.258096,7.090077,0,0,0,54.5,8.801353,1.098612,6.460701,1 +6,4,25,1,2,430637,0,6642.229,29.8898,1,14,1,20.97902,0,5.594406,0,0,26.57343,0,0,0,2,0,4,52.7,6.9,1,54.5,300,300,0,0,1.386294,5.703783,0,3.258096,7.090077,0,0,0,54.5,8.801353,1.386294,3.279912,1 +6,4,25,1,3,430637,0,6642.229,30.8898,1,14,1,8.12313,4.467721,17.10133,0,0,29.69218,0,0,0,1,0,4,52.7,6.9,1,54.5,300,300,0,0,1.386294,5.703783,0,3.258096,7.090077,0,0,0,54.5,8.801353,1.386294,3.390884,1 +6,4,25,1,4,430637,0,6642.229,31.8898,1,14,1,9.992313,0,0,0,0,9.992313,0,0,0,1,0,4,52.7,6.9,1,54.5,300,300,0,0,1.386294,5.703783,0,3.258096,7.090077,0,0,0,54.5,8.801353,1.386294,2.301816,1 +6,4,25,1,5,430637,0,6642.229,32.8898,1,14,1,5.268704,0,17.2111,0,0,22.4798,0,0,0,1,0,4,52.7,6.9,1,54.5,300,300,0,0,1.386294,5.703783,0,3.258096,7.090077,0,0,0,54.5,8.801353,1.386294,3.112617,1 +6,4,25,1,1,430638,0,6642.229,29.63724,0,12,1,21.25506,102.7328,0,0,0,123.9879,0,0,0,3,0,3,54.3,10.3,0,43.2,300,300,0,0,1.098612,5.703783,0,3.258096,7.090077,1,0,0,43.2,8.801353,1.098612,4.820184,1 +6,4,25,1,2,430638,0,6642.229,30.63724,0,12,1,54.54546,137.8881,0,0,0,192.4336,0,0,0,6,0,4,54.3,10.3,0,43.2,300,300,0,0,1.386294,5.703783,0,3.258096,7.090077,1,0,0,43.2,8.801353,1.386294,5.259751,1 +6,4,25,1,3,430638,0,6642.229,31.63724,0,12,1,126.9773,155.4895,0,0,0,282.4669,0,0,0,7,0,4,54.3,10.3,0,43.2,300,300,0,0,1.386294,5.703783,0,3.258096,7.090077,1,0,0,43.2,8.801353,1.386294,5.643561,1 +6,4,25,1,4,430638,0,6642.229,32.63723,0,12,1,26.90238,155.073,0,0,0,181.9754,0,0,0,3,0,4,54.3,10.3,0,43.2,300,300,0,0,1.386294,5.703783,0,3.258096,7.090077,1,0,0,43.2,8.801353,1.386294,5.203872,1 +6,4,25,1,5,430638,0,6642.229,33.63723,0,12,1,220.8465,153.9972,3.512469,0,977.5096,1355.866,1,0,0,14,5,4,54.3,10.3,0,43.2,300,300,0,0,1.386294,5.703783,0,3.258096,7.090077,1,0,0,43.2,8.801353,1.386294,7.212195,1 +6,4,25,1,1,430639,0,6642.229,2.902122,1,14,1,6.072875,7.22166,0,0,0,13.29453,0,0,0,1,0,3,83.39137,9.967326,0,88.9,300,300,1,1,1.098612,5.703783,0,3.258096,7.090077,0,0,0,88.9,8.801353,1.098612,2.587353,1 +6,4,25,1,2,430639,0,6642.229,3.902122,1,14,1,6.993007,4.559441,0,0,0,11.55245,0,0,0,1,0,4,83.39137,9.967326,0,88.9,300,300,1,1,1.386294,5.703783,0,3.258096,7.090077,0,0,0,88.9,8.801353,1.386294,2.446897,1 +6,4,25,1,3,430639,0,6642.229,4.902122,1,14,1,12.82599,6.853356,0,0,0,19.67935,0,0,0,2,0,4,83.39137,9.967326,0,88.9,300,300,1,1,1.386294,5.703783,0,3.258096,7.090077,0,0,0,88.9,8.801353,1.386294,2.97957,1 +6,4,25,1,4,430639,0,6642.229,5.902122,1,14,1,11.52959,6.437356,0,0,0,17.96695,0,0,0,2,0,4,83.39137,9.967326,0,88.9,300,300,1,1,1.386294,5.703783,0,3.258096,7.090077,0,0,0,88.9,8.801353,1.386294,2.888534,1 +6,4,25,1,5,430639,0,6642.229,6.902122,1,14,1,14.40112,5.721812,0,0,0,20.12294,0,0,0,2,0,4,83.39137,9.967326,0,88.9,300,300,1,1,1.386294,5.703783,0,3.258096,7.090077,0,0,0,88.9,8.801353,1.386294,3.00186,1 +14,4,95,1,1,430646,0,6730.792,20.282,1,11,1,16.44737,0,0,0,0,16.44737,0,0,0,1,0,4,69.7,3.4,0,58,456.5,456.5,0,0,1.386294,6.123589,0,4.564348,6.174882,1,0,0,58,8.814597,1.386294,2.800165,1 +14,4,95,1,2,430646,0,6730.792,21.282,1,11,1,0,0,0,0,0,0,0,0,0,0,0,4,69.7,3.4,0,58,456.5,456.5,0,0,1.386294,6.123589,0,4.564348,6.174882,1,0,0,58,8.814597,1.386294,,0 +14,4,95,1,3,430646,0,6730.792,22.282,1,11,1,23.51432,0,0,0,0,23.51432,0,0,0,2,1,4,69.7,3.4,0,58,456.5,456.5,0,0,1.386294,6.123589,0,4.564348,6.174882,1,0,0,58,8.814597,1.386294,3.15761,1 +14,4,95,1,1,430647,0,6730.792,39.21424,1,10,1,10.37449,0,0,0,0,10.37449,0,0,0,0,0,4,53.2,24.1,0,61.4,456.5,456.5,0,0,1.386294,6.123589,0,4.564348,6.174882,1,0,0,61.4,8.814597,1.386294,2.33935,1 +14,4,95,1,2,430647,0,6730.792,40.21424,1,10,1,0,0,0,0,0,0,0,0,0,0,0,4,53.2,24.1,0,61.4,456.5,456.5,0,0,1.386294,6.123589,0,4.564348,6.174882,1,0,0,61.4,8.814597,1.386294,,0 +14,4,95,1,3,430647,0,6730.792,41.21424,1,10,1,0,0,0,0,0,0,0,0,0,0,0,4,53.2,24.1,0,61.4,456.5,456.5,0,0,1.386294,6.123589,0,4.564348,6.174882,1,0,0,61.4,8.814597,1.386294,,0 +14,4,95,1,1,430648,0,6730.792,45.94661,0,9,1,0,0,0,0,0,0,0,0,0,0,0,4,56.4,13.8,0,59.2,456.5,456.5,0,0,1.386294,6.123589,0,4.564348,6.174882,1,0,0,59.2,8.814597,1.386294,,0 +14,4,95,1,2,430648,0,6730.792,46.94661,0,9,1,11.65501,0,0,0,0,11.65501,0,0,0,0,2,4,56.4,13.8,0,59.2,456.5,456.5,0,0,1.386294,6.123589,0,4.564348,6.174882,1,0,0,59.2,8.814597,1.386294,2.455736,1 +14,4,95,1,3,430648,0,6730.792,47.94661,0,9,1,3.420265,5.079093,0,0,0,8.499359,0,0,0,0,0,4,56.4,13.8,0,59.2,456.5,456.5,0,0,1.386294,6.123589,0,4.564348,6.174882,1,0,0,59.2,8.814597,1.386294,2.139991,1 +14,4,95,1,1,430649,0,6730.792,17.3525,0,10,1,21.76113,8.830972,0,0,0,30.59211,0,0,0,3,0,4,83.5,3.4,0,70.5,456.5,456.5,1,0,1.386294,6.123589,0,4.564348,6.174882,1,0,0,70.5,8.814597,1.386294,3.420742,1 +14,4,95,1,2,430649,0,6730.792,18.3525,0,10,1,0,0,0,0,0,0,0,0,0,0,0,4,83.5,3.4,0,70.5,456.5,456.5,0,0,1.386294,6.123589,0,4.564348,6.174882,1,0,0,70.5,8.814597,1.386294,,0 +14,4,95,1,3,430649,0,6730.792,19.3525,0,10,1,302.1804,10.51304,1.710132,0,0,314.4036,0,0,0,4,3,4,83.5,3.4,0,70.5,456.5,456.5,0,0,1.386294,6.123589,0,4.564348,6.174882,1,0,0,70.5,8.814597,1.386294,5.750678,1 +14,4,95,1,1,430650,0,7910.823,60.45722,1,11,1,0,0,0,0,0,0,0,0,0,0,0,1,97.9,6.9,0,76.1,225,225,0,0,0,5.416101,0,4.564348,5.467394,1,0,0,76.1,8.976113,0,,0 +14,4,95,1,2,430650,0,7910.823,61.45722,1,11,1,0,0,0,0,0,0,0,0,0,0,0,1,97.9,6.9,0,76.1,225,225,0,0,0,5.416101,0,4.564348,5.467394,1,0,0,76.1,8.976113,0,,0 +14,4,95,1,3,430650,0,7910.823,62.45722,1,11,1,0,0,0,0,0,0,0,0,0,0,0,1,97.9,6.9,0,76.1,225,225,0,0,0,5.416101,0,4.564348,5.467394,1,0,0,76.1,8.976113,0,,0 +14,4,95,1,1,430666,0,10612.9,27.02259,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,81.9,3.4,0,89.8,900,900,0,0,.6931472,6.802395,0,4.564348,6.853688,0,0,0,89.8,9.26992,.6931472,,0 +14,4,95,1,2,430666,0,10612.9,28.02259,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,81.9,3.4,0,89.8,900,900,0,0,.6931472,6.802395,0,4.564348,6.853688,0,0,0,89.8,9.26992,.6931472,,0 +14,4,95,1,3,430666,0,10612.9,29.02259,0,12,1,64.94228,2.330055,30.14109,0,0,97.41342,0,0,0,3,0,2,81.9,3.4,0,89.8,900,900,0,0,.6931472,6.802395,0,4.564348,6.853688,0,0,0,89.8,9.26992,.6931472,4.578964,1 +14,4,95,1,1,430667,0,10612.9,24.33949,1,15,1,0,6.508097,0,0,0,6.508097,0,0,0,0,0,2,81.9,10.3,1,92,900,900,0,0,.6931472,6.802395,0,4.564348,6.853688,0,0,0,92,9.26992,.6931472,1.873047,1 +14,4,95,1,2,430667,0,10612.9,25.33949,1,15,1,84.26573,9.090909,0,0,0,93.35664,0,0,0,5,0,2,81.9,10.3,1,92,900,900,0,0,.6931472,6.802395,0,4.564348,6.853688,0,0,0,92,9.26992,.6931472,4.536427,1 +14,4,95,1,3,430667,0,10612.9,26.33949,1,15,1,121.8469,28.96109,31.25267,0,716.6952,898.7559,1,0,0,8,1,2,81.9,10.3,1,92,900,900,0,0,.6931472,6.802395,0,4.564348,6.853688,0,0,0,92,9.26992,.6931472,6.801012,1 +6,4,25,1,1,430686,0,9087.39,20.47912,0,13,1,0,0,0,0,0,0,0,0,0,0,0,2,85.1,0,0,96.6,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,0,0,96.6,9.114753,.6931472,,0 +6,4,25,1,2,430686,0,9087.39,21.47912,0,13,1,0,0,0,0,0,0,0,0,0,0,0,2,85.1,0,0,96.6,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,0,0,96.6,9.114753,.6931472,,0 +6,4,25,1,3,430686,0,9087.39,22.47912,0,13,1,0,0,0,0,0,0,0,0,0,0,0,2,85.1,0,0,96.6,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,0,0,96.6,9.114753,.6931472,,0 +10,4,50,1,1,430717,0,10822.87,50.65024,0,12,1,12.76813,27.57916,0,0,0,40.34729,0,0,0,2,0,2,79.8,6.9,0,73.9,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,0,0,0,73.9,9.28951,.6931472,3.697524,1 +10,4,50,1,2,430717,0,10822.87,51.65024,0,12,.9534246,429.278,35.18518,0,0,4233.727,4698.19,2,0,0,14,0,2,79.8,6.9,0,73.9,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,0,0,0,73.9,9.28951,.6931472,8.454933,1 +10,4,50,1,1,430718,0,10822.87,45.76044,1,12,1,68.94791,0,47.59959,0,544.0347,660.5822,1,0,0,6,0,2,85.6,6.9,0,96.6,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,0,0,0,96.6,9.28951,.6931472,6.493122,1 +10,4,50,1,2,430718,0,10822.87,46.76044,1,12,1,23.44116,0,0,0,0,23.44116,0,0,0,2,0,2,85.6,6.9,0,96.6,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,0,0,0,96.6,9.28951,.6931472,3.154494,1 +10,4,50,1,3,430718,0,10822.87,47.76044,1,12,1,145.6492,10.38263,0,0,0,156.0318,0,0,0,7,0,1,85.6,6.9,0,96.6,1000,1000,0,0,0,6.907755,0,3.931826,7.600903,0,0,0,96.6,9.28951,0,5.05006,1 +10,4,50,1,1,430719,0,2957.185,19.99726,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,75,0,0,79.5,45,311.64,0,0,0,5.741848,0,3.931826,4.49981,0,0,0,79.5,7.992331,0,,0 +10,4,50,1,2,430719,0,2957.185,20.99726,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,75,0,0,79.5,45,311.64,0,0,0,5.741848,0,3.931826,4.49981,0,0,0,79.5,7.992331,0,,0 +10,4,50,1,3,430719,0,2957.185,21.99726,0,12,1,2.137666,0,0,0,0,2.137666,0,0,0,0,0,1,75,0,0,79.5,45,311.64,0,0,0,5.741848,0,3.931826,4.49981,0,0,0,79.5,7.992331,0,.7597145,1 +11,4,0,1,1,430747,0,7230.499,61.16085,0,12,1,124.7875,38.50708,46.05263,0,0,209.3472,0,0,0,8,2,1,78.7,10.3,0,67,0,311.64,0,0,0,5.741848,0,0,0,0,1,0,67,8.886202,0,5.343994,1 +11,4,0,1,2,430747,0,7230.499,62.16085,0,12,1,147.3194,23.56177,0,0,0,170.8811,0,0,0,11,0,1,78.7,10.3,0,67,0,311.64,0,0,0,5.741848,0,0,0,0,1,0,67,8.886202,0,5.140968,1 +11,4,0,1,3,430747,0,7230.499,63.16085,0,12,1,88.82001,45.04489,30.78238,0,0,164.6473,0,0,0,11,0,1,78.7,10.3,0,67,0,311.64,0,0,0,5.741848,0,0,0,0,1,0,67,8.886202,0,5.103806,1 +11,4,0,1,1,430748,0,4414.663,33.80698,0,12,1,20.42901,10.7048,0,0,163.5444,194.6782,1,0,0,3,0,1,71.8,6.9,0,79.5,0,126,0,0,0,4.836282,0,0,0,1,0,0,79.5,8.392913,0,5.271348,1 +11,4,0,1,2,430748,0,4414.663,34.80698,0,12,1,126.8636,6.361931,0,0,631.2236,764.4492,1,0,0,11,0,1,71.8,6.9,0,79.5,0,126,0,0,0,4.836282,0,0,0,1,0,0,79.5,8.392913,0,6.639155,1 +11,4,0,1,3,430748,0,4414.663,35.80698,0,12,1,90.06879,0,0,0,0,90.06879,0,0,0,8,0,1,71.8,6.9,0,79.5,0,126,0,0,0,4.836282,0,0,0,1,0,0,79.5,8.392913,0,4.500574,1 +13,4,0,1,1,430778,0,15019.35,53.03217,0,8,1,12.76813,0,0,0,0,12.76813,0,0,0,1,0,2,77.1,13.8,0,61.4,300,369.98,0,0,.6931472,5.913449,1,4.564348,5.755076,0,0,0,61.4,9.617162,.6931472,2.546952,1 +13,4,0,1,2,430778,0,15019.35,54.03217,0,8,1,10.31411,0,0,0,0,10.31411,0,0,0,0,1,2,77.1,13.8,0,61.4,300,369.98,0,0,.6931472,5.913449,1,4.564348,5.755076,0,0,0,61.4,9.617162,.6931472,2.333513,1 +13,4,0,1,3,430778,0,15019.35,55.03217,0,8,1,14.38091,0,0,0,0,14.38091,0,0,0,1,0,2,77.1,13.8,0,61.4,300,369.98,0,0,.6931472,5.913449,1,4.564348,5.755076,0,0,0,61.4,9.617162,.6931472,2.665902,1 +13,4,0,1,4,430778,0,15019.35,56.03217,0,8,1,49.86429,0,29.08104,0,0,78.94533,0,0,0,2,1,2,77.1,13.8,0,61.4,300,369.98,0,0,.6931472,5.913449,1,4.564348,5.755076,0,0,0,61.4,9.617162,.6931472,4.368755,1 +13,4,0,1,5,430778,0,15019.35,57.03217,0,8,1,0,0,0,0,0,0,0,0,0,0,0,2,77.1,13.8,0,61.4,300,369.98,0,0,.6931472,5.913449,1,4.564348,5.755076,0,0,0,61.4,9.617162,.6931472,,0 +13,4,0,1,1,430779,0,15019.35,53.65366,1,12,1,17.87538,1.736466,0,0,0,19.61185,0,0,0,2,0,2,78.7,10.3,0,67,300,369.98,0,0,.6931472,5.913449,1,4.564348,5.755076,1,0,0,67,9.617162,.6931472,2.976134,1 +13,4,0,1,2,430779,0,15019.35,54.65366,1,12,1,23.44116,10.03282,28.12939,0,0,61.60337,0,0,0,2,0,2,78.7,10.3,0,67,300,369.98,0,0,.6931472,5.913449,1,4.564348,5.755076,1,0,0,67,9.617162,.6931472,4.120717,1 +13,4,0,1,3,430779,0,15019.35,55.65366,1,12,1,15.04729,0,0,0,0,15.04729,0,0,0,1,0,2,78.7,10.3,0,67,300,369.98,0,0,.6931472,5.913449,1,4.564348,5.755076,1,0,0,67,9.617162,.6931472,2.711198,1 +13,4,0,1,4,430779,0,15019.35,56.65366,1,12,1,39.55021,13.2532,17.44862,0,0,70.25204,0,0,0,4,1,2,78.7,10.3,0,67,300,369.98,0,0,.6931472,5.913449,1,4.564348,5.755076,1,0,0,67,9.617162,.6931472,4.25209,1 +13,4,0,1,5,430779,0,15019.35,57.65366,1,12,1,19.46214,2.034678,8.492569,0,0,29.98938,0,0,0,1,0,2,78.7,10.3,0,67,300,369.98,0,0,.6931472,5.913449,1,4.564348,5.755076,1,0,0,67,9.617162,.6931472,3.400843,1 +11,4,0,1,1,430791,0,7631.085,49.28953,1,17,1,31.66496,2.808989,40.34729,265.5771,0,74.82124,0,0,13,2,1,1,75.5,6.9,0,77.3,0,0,0,0,0,0,0,0,0,1,0,0,77.3,8.940116,0,4.315102,1 +11,4,0,1,2,430791,0,7631.085,50.28953,1,17,1,841.7253,19.99531,0,18.75293,1302.883,2164.604,1,0,1,10,1,1,75.5,6.9,0,77.3,0,0,0,0,0,0,0,0,0,1,0,0,77.3,8.940116,0,7.679993,1 +11,4,0,1,3,430791,0,7631.085,51.28953,1,17,1,570.8082,147.6784,0,171.969,0,718.4867,0,0,10,12,47,1,75.5,6.9,0,77.3,0,0,0,0,0,0,0,0,0,1,0,0,77.3,8.940116,0,6.577147,1 +11,4,0,1,4,430791,0,7631.085,52.28953,1,17,1,145.3083,66.34354,29.58899,114.3854,6332.481,6573.722,4,0,7,11,0,1,75.5,6.9,0,77.3,0,0,0,0,0,0,0,0,0,1,0,0,77.3,8.940116,0,8.790835,1 +11,4,0,1,5,430791,0,7631.085,53.28953,1,17,1,50.07077,42.09129,43.17056,81.38712,0,135.3326,0,0,5,4,1,1,75.5,6.9,0,77.3,0,0,0,0,0,0,0,0,0,1,0,0,77.3,8.940116,0,4.907736,1 +11,4,0,1,1,430864,0,5639.296,.2600958,0,11,1,49.03984,14.35138,0,0,69.23902,132.6302,1,0,0,7,0,5,83.39137,9.967326,0,85.2,0,225.6,1,0,1.609438,5.418764,0,0,0,0,0,0,85.2,8.637691,1.609438,4.887565,1 +11,4,0,1,2,430864,0,5639.296,1.260096,0,11,1,15.00234,0,0,0,0,15.00234,0,0,0,3,0,5,83.39137,9.967326,0,85.2,0,225.6,1,0,1.609438,5.418764,0,0,0,0,0,0,85.2,8.637691,1.609438,2.708206,1 +11,4,0,1,3,430864,0,5639.296,2.260096,0,11,1,0,3.22442,0,0,0,3.22442,0,0,0,0,0,5,83.39137,9.967326,0,85.2,0,225.6,1,0,1.609438,5.418764,0,0,0,0,0,0,85.2,8.637691,1.609438,1.170753,1 +18,4,25,1,1,430866,0,9322.581,.2299795,0,12,1,37.79367,10.79673,0,0,0,48.5904,0,0,0,5,0,3,83.39137,9.967326,0,92.6,750,750,1,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,92.6,9.140302,1.098612,3.883426,1 +18,4,25,1,2,430866,0,9322.581,1.22998,0,12,1,37.03704,10.73605,0,0,441.022,488.7951,1,0,0,7,0,3,83.39137,9.967326,0,92.6,750,750,1,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,92.6,9.140302,1.098612,6.191944,1 +18,4,25,1,3,430866,0,9322.581,2.22998,0,12,1,25.79536,3.379192,0,0,0,29.17455,0,0,0,5,0,3,83.39137,9.967326,0,92.6,750,750,1,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,92.6,9.140302,1.098612,3.373297,1 +18,4,25,1,4,430866,0,9322.581,3.22998,0,12,1,21.71384,1.613028,0,0,0,23.32687,0,0,0,2,0,3,83.39137,9.967326,0,92.6,750,750,1,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,92.6,9.140302,1.098612,3.149606,1 +18,4,25,1,5,430866,0,9322.581,4.22998,0,12,1,3.53857,0,0,0,0,3.53857,0,0,0,1,0,3,83.39137,9.967326,0,92.6,750,750,1,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,92.6,9.140302,1.098612,1.263723,1 +13,4,0,0,1,430867,0,995.3079,20.81588,1,12,1,5.107252,8.273748,0,0,0,13.381,0,0,0,1,0,3,50,10.3,0,39.8,300,313.94,0,0,1.098612,5.749202,1,4.564348,5.755076,0,0,0,39.8,6.904057,1.098612,2.593836,1 +13,4,0,0,2,430867,0,995.3079,21.81588,1,12,1,25.08204,23.09423,0,0,626.0197,674.196,1,0,0,0,0,3,50,10.3,0,39.8,300,313.94,0,0,1.098612,5.749202,1,4.564348,5.755076,0,0,0,39.8,6.904057,1.098612,6.513521,1 +13,4,0,0,3,430867,0,995.3079,22.81588,1,12,1,28.15993,2.575237,0,0,652.73,683.4651,1,0,0,1,0,4,50,10.3,0,39.8,300,313.94,0,0,1.386294,5.749202,1,4.564348,5.755076,0,0,0,39.8,6.904057,1.386294,6.527176,1 +13,4,0,0,4,430867,0,995.3079,23.81588,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,50,10.3,0,39.8,300,313.94,0,0,1.609438,5.749202,1,4.564348,5.755076,0,0,0,39.8,6.904057,1.609438,,0 +13,4,0,0,5,430867,0,995.3079,24.81588,1,12,1,39.54353,4.830149,24.06228,0,0,68.43595,0,0,0,2,1,5,50,10.3,0,39.8,300,313.94,0,0,1.609438,5.749202,1,4.564348,5.755076,0,0,0,39.8,6.904057,1.609438,4.225898,1 +14,4,95,0,1,430870,0,7712.61,.128679,1,16,1,42.90572,8.820196,0,0,0,51.72591,0,0,0,6,0,4,83.39137,9.967326,.0268456,,585.8,585.8,1,1,1.386294,6.372978,0,4.564348,6.424272,0,0,0,79.22147,8.950742,1.386294,3.945959,1 +14,4,95,0,2,430870,0,7712.61,1.128679,1,16,1,42.49527,18.63163,0,0,0,61.12689,0,0,0,3,0,4,83.39137,9.967326,.0268456,,585.8,585.8,1,1,1.386294,6.372978,0,4.564348,6.424272,0,0,0,79.22147,8.950742,1.386294,4.112952,1 +14,4,95,0,3,430870,0,7712.61,2.128679,1,16,1,27.56827,4.408322,0,0,0,31.97659,0,0,0,2,0,4,83.39137,9.967326,.0268456,,585.8,585.8,1,1,1.386294,6.372978,0,4.564348,6.424272,0,0,0,79.22147,8.950742,1.386294,3.465004,1 +14,4,95,0,4,430870,0,7712.61,3.128679,1,16,1,21.66207,0,0,0,0,21.66207,0,0,0,3,0,4,83.39137,9.967326,.0268456,,585.8,585.8,1,1,1.386294,6.372978,0,4.564348,6.424272,0,0,0,79.22147,8.950742,1.386294,3.075563,1 +14,4,95,0,5,430870,0,7712.61,4.128679,1,16,1,15.7424,0,0,0,0,15.7424,0,0,0,2,0,4,83.39137,9.967326,.0268456,,585.8,585.8,1,1,1.386294,6.372978,0,4.564348,6.424272,0,0,0,79.22147,8.950742,1.386294,2.756357,1 +11,4,0,1,1,430875,0,8465.689,27.28542,0,16,1,12.90486,2.297571,0,121.4575,0,15.20243,0,0,12,1,0,4,87.8,0,0,92,0,570.48,0,0,1.386294,6.346478,0,0,0,0,0,0,92,9.043895,1.386294,2.721455,1 +11,4,0,1,2,430875,0,8465.689,28.28542,0,16,1,41.79487,6.573427,0,0,0,48.3683,0,0,0,2,0,4,87.8,0,0,92,0,570.48,0,0,1.386294,6.346478,0,0,0,0,0,0,92,9.043895,1.386294,3.878844,1 +11,4,0,1,3,430875,0,8465.689,29.28542,0,16,1,36.23343,4.061565,0,26.72082,0,40.295,0,0,2,1,0,4,87.8,0,0,92,0,570.48,0,0,1.386294,6.346478,0,0,0,0,0,0,92,9.043895,1.386294,3.696227,1 +16,4,95,1,1,430879,0,11044.58,.4298426,0,12,1,29.49393,7.869433,0,0,0,37.36336,0,0,0,5,0,4,83.39137,9.967326,0,85.2,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,85.2,9.309785,1.386294,3.620691,1 +16,4,95,1,2,430879,0,11044.58,1.429843,0,12,1,21.91142,12.64336,0,0,0,34.55478,0,0,0,4,0,4,83.39137,9.967326,0,85.2,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,85.2,9.309785,1.386294,3.542546,1 +16,4,95,1,3,430879,0,11044.58,2.429842,0,12,1,5.130398,8.063275,0,0,0,13.19367,0,0,0,1,0,4,83.39137,9.967326,0,85.2,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,85.2,9.309785,1.386294,2.579737,1 +16,4,95,1,4,430879,0,11044.58,3.429842,0,12,1,8.070715,2.152191,0,0,0,10.22291,0,0,0,2,0,4,83.39137,9.967326,0,85.2,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,85.2,9.309785,1.386294,2.324631,1 +16,4,95,1,5,430879,0,11044.58,4.429842,0,12,1,14.75237,7.007376,0,0,0,21.75975,0,0,0,2,0,4,83.39137,9.967326,0,85.2,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,85.2,9.309785,1.386294,3.080062,1 +11,4,0,1,1,430880,0,10515.54,19.90417,1,14,1,10.12146,0,31.88259,0,0,42.00405,0,0,0,0,1,6,73.4,6.9,0,91.7,0,30,0,0,1.791759,3.401197,0,0,0,0,0,0,91.7,9.260705,1.791759,3.737766,1 +11,4,0,1,2,430880,0,10515.54,20.90417,1,14,1,0,0,0,0,0,0,0,0,0,0,0,6,73.4,6.9,0,91.7,0,30,0,0,1.791759,3.401197,0,0,0,0,0,0,91.7,9.260705,1.791759,,0 +11,4,0,1,4,430880,0,10515.54,22.90417,1,14,1,45.54189,5.956956,0,0,0,51.49885,0,0,0,1,1,5,73.4,6.9,0,91.7,0,30,0,0,1.609438,3.401197,0,0,0,0,0,0,91.7,9.260705,1.609438,3.94156,1 +11,4,0,1,5,430880,0,10515.54,23.90417,1,14,1,78.43344,4.03934,23.1823,0,0,105.6551,0,0,0,4,5,5,73.4,6.9,0,91.7,0,30,0,0,1.609438,3.401197,0,0,0,0,0,0,91.7,9.260705,1.609438,4.66018,1 +11,4,0,1,1,430884,0,13873.9,22.74607,0,14,1,444.4737,95.41498,0,0,1739.524,2279.413,1,0,0,5,0,4,84.6,10.3,1,,0,0,0,0,1.386294,0,0,0,0,0,0,0,72.06626,9.537837,1.386294,7.731673,1 +11,4,0,1,2,430884,0,13873.9,23.74607,0,14,.3424658,169.5245,82.26107,310.7692,0,3200.07,3762.625,2,0,0,2,0,4,84.6,10.3,1,,0,0,0,0,1.386294,0,0,0,0,0,0,0,72.06626,9.537837,1.386294,8.232872,1 +11,4,0,1,1,430885,0,10872.73,40.17796,0,14,1,200.4757,.9868421,27.32794,0,0,228.7905,0,0,0,3,0,3,55.3,10.3,0,59.1,0,0,0,0,1.098612,0,0,0,0,0,0,0,59.1,9.294105,1.098612,5.432806,1 +11,4,0,1,2,430885,0,10872.73,41.17796,0,14,1,95.85081,1.048951,6.993007,0,0,103.8928,0,0,0,5,0,3,55.3,10.3,0,59.1,0,0,0,0,1.098612,0,0,0,0,0,0,0,59.1,9.294105,1.098612,4.643359,1 +11,4,0,1,3,430885,0,10872.73,42.17796,0,14,1,118.5336,9.598119,0,0,0,128.1317,0,0,0,5,7,3,55.3,10.3,0,59.1,0,0,0,0,1.098612,0,0,0,0,0,0,0,59.1,9.294105,1.098612,4.853058,1 +6,4,25,1,1,430892,0,9087.39,53.05955,1,12,1,94.25607,18.31984,48.07692,0,0,160.6528,0,0,0,5,0,2,62.2,37.9,1,42,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,0,0,42,9.114753,.6931472,5.079246,1 +6,4,25,1,2,430892,0,9087.39,54.05955,1,12,1,61.53846,37.31469,0,0,0,98.85315,0,0,0,6,0,2,62.2,37.9,1,42,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,0,0,42,9.114753,.6931472,4.593636,1 +6,4,25,1,3,430892,0,9087.39,55.05955,1,12,1,30.35485,34.63446,40.61565,0,0,105.605,0,0,0,3,0,2,62.2,37.9,1,42,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,0,0,42,9.114753,.6931472,4.659705,1 +13,4,0,0,1,430894,0,995.3079,.1533196,0,12,1,12.76813,5.280899,0,0,0,18.04903,0,0,0,2,0,3,83.39137,9.967326,.0268456,,300,313.94,1,0,1.098612,5.749202,1,4.564348,5.755076,0,0,0,79.22147,6.904057,1.098612,2.893092,1 +13,4,0,0,2,430894,0,995.3079,1.15332,0,12,1,22.97234,3.745898,0,0,0,26.71824,0,0,0,3,0,3,83.39137,9.967326,.0268456,,300,313.94,1,0,1.098612,5.749202,1,4.564348,5.755076,0,0,0,79.22147,6.904057,1.098612,3.285346,1 +13,4,0,0,3,430894,0,995.3079,2.15332,0,12,1,13.11264,3.030954,0,0,0,16.14359,0,0,0,1,0,4,83.39137,9.967326,.0268456,,300,313.94,1,0,1.386294,5.749202,1,4.564348,5.755076,0,0,0,79.22147,6.904057,1.386294,2.781523,1 +13,4,0,0,4,430894,0,995.3079,3.15332,0,12,1,28.11167,2.02404,0,0,0,30.13571,0,0,0,3,0,5,83.39137,9.967326,.0268456,,300,313.94,1,0,1.609438,5.749202,1,4.564348,5.755076,0,0,0,79.22147,6.904057,1.609438,3.405711,1 +13,4,0,0,5,430894,0,995.3079,4.15332,0,12,1,86.16419,0,5.300778,0,0,91.46497,0,0,0,7,0,5,83.39137,9.967326,.0268456,,300,313.94,1,0,1.609438,5.749202,1,4.564348,5.755076,0,0,0,79.22147,6.904057,1.609438,4.515956,1 +11,4,0,0,1,430896,.0068104,7910.823,20.67351,0,12.875,1,10.12146,0,30.36437,0,0,40.48583,0,0,0,0,1,2,74.46748,9.967326,.1572505,,0,0,0,0,.6931472,0,0,0,0,0,0,0,72.06626,8.976113,.6931472,3.700952,1 +11,4,0,0,2,430897,0,2404.692,.652293,1,12,1,46.16477,8.380682,0,0,0,54.54546,0,0,0,7,0,4,83.39137,9.967326,.0268456,,0,0,1,1,1.386294,0,0,0,0,0,0,0,79.22147,7.785593,1.386294,3.999034,1 +11,4,0,0,3,430897,0,2404.692,1.652293,1,12,1,22.10663,3.315995,0,0,0,25.42263,0,0,0,4,0,4,83.39137,9.967326,.0268456,,0,0,1,1,1.386294,0,0,0,0,0,0,0,79.22147,7.785593,1.386294,3.23564,1 +11,4,0,0,2,430898,0,2404.692,.652293,1,12,1,40.24621,9.067235,0,0,0,49.31345,0,0,0,7,0,4,83.39137,9.967326,.0268456,,0,0,1,1,1.386294,0,0,0,0,0,0,0,79.22147,7.785593,1.386294,3.898197,1 +11,4,0,0,3,430898,0,2404.692,1.652293,1,12,1,25.63936,0,0,0,0,25.63936,0,0,0,2,0,4,83.39137,9.967326,.0268456,,0,0,1,1,1.386294,0,0,0,0,0,0,0,79.22147,7.785593,1.386294,3.244129,1 +11,4,0,0,1,430906,0,11563.64,.0574949,0,13,1,203.9428,1.276813,0,0,0,205.2196,0,0,0,13,0,6,83.39137,9.967326,.0268456,,0,492.84,1,0,1.791759,6.200184,0,0,0,0,0,0,79.22147,9.355707,1.791759,5.32408,1 +11,4,0,0,2,430906,0,11563.64,1.057495,0,13,1,22.50352,20.67511,0,0,0,43.17862,0,0,0,4,0,6,83.39137,9.967326,.0268456,,0,492.84,1,0,1.791759,6.200184,0,0,0,0,0,0,79.22147,9.355707,1.791759,3.765346,1 +11,4,0,0,3,430906,0,11563.64,2.057495,0,13,1,6.018917,2.901978,0,0,0,8.920895,0,0,0,1,0,6,83.39137,9.967326,.0268456,,0,492.84,1,0,1.791759,6.200184,0,0,0,0,0,0,79.22147,9.355707,1.791759,2.188396,1 +11,4,0,0,4,430906,0,11563.64,3.057495,0,13,1,81.83405,0,0,0,0,81.83405,0,0,0,5,0,6,83.39137,9.967326,.0268456,,0,492.84,1,0,1.791759,6.200184,0,0,0,0,0,0,79.22147,9.355707,1.791759,4.404693,1 +11,4,0,0,5,430906,0,11563.64,4.057495,0,13,1,29.37013,2.707006,0,0,0,32.07714,0,0,0,5,0,6,83.39137,9.967326,.0268456,,0,492.84,1,0,1.791759,6.200184,0,0,0,0,0,0,79.22147,9.355707,1.791759,3.468144,1 +10,4,50,0,2,430910,0,6175.953,.6221766,1,14,1,88.13877,64.0647,135.9587,0,2625.082,2913.244,5,0,0,12,1,4,83.39137,9.967326,.0268456,,1000,1000,1,1,1.386294,6.907755,0,3.931826,7.600903,0,0,0,79.22147,8.72858,1.386294,7.977023,1 +10,4,50,0,3,430910,0,6175.953,1.622177,1,14,1,34.71625,9.88822,0,0,0,44.60447,0,0,0,4,0,4,83.39137,9.967326,.0268456,,1000,1000,1,1,1.386294,6.907755,0,3.931826,7.600903,0,0,0,79.22147,8.72858,1.386294,3.797834,1 +11,4,0,0,2,430913,.0068104,7910.823,.7097878,1,11,1,43.35664,6.993007,0,0,0,50.34965,0,0,0,6,0,2,83.39137,9.967326,.0268456,,0,0,1,1,.6931472,0,0,0,0,0,0,0,79.22147,8.976113,.6931472,3.918992,1 +11,4,0,0,3,430913,.0068104,7910.823,1.709788,1,11,1,102.5053,3.185122,0,0,0,105.6905,0,0,0,7,0,2,83.39137,9.967326,.0268456,,0,0,1,1,.6931472,0,0,0,0,0,0,0,79.22147,8.976113,.6931472,4.660515,1 +6,4,25,0,2,430922,0,6642.229,.5893224,1,14,1,13.05361,9.655012,0,0,0,22.70862,0,0,0,2,0,4,83.39137,9.967326,.0268456,,300,300,1,1,1.386294,5.703783,0,3.258096,7.090077,0,0,0,79.22147,8.801353,1.386294,3.122745,1 +6,4,25,0,3,430922,0,6642.229,1.589322,1,14,1,13.25353,4.809748,0,0,0,18.06327,0,0,0,2,0,4,83.39137,9.967326,.0268456,,300,300,1,1,1.386294,5.703783,0,3.258096,7.090077,0,0,0,79.22147,8.801353,1.386294,2.893881,1 +6,4,25,0,4,430922,0,6642.229,2.589322,1,14,1,29.2083,5.049962,0,0,0,34.25826,0,0,0,5,0,4,83.39137,9.967326,.0268456,,300,300,1,1,1.386294,5.703783,0,3.258096,7.090077,0,0,0,79.22147,8.801353,1.386294,3.533928,1 +6,4,25,0,5,430922,0,6642.229,3.589322,1,14,1,11.2399,1.752722,0,0,0,12.99262,0,0,0,2,0,4,83.39137,9.967326,.0268456,,300,300,1,1,1.386294,5.703783,0,3.258096,7.090077,0,0,0,79.22147,8.801353,1.386294,2.564382,1 +11,4,0,0,2,430928,0,7872.141,.1786448,0,13,1,21.02246,13.34448,0,0,0,34.36694,0,0,0,4,0,4,83.39137,9.967326,.0268456,,0,0,1,0,1.386294,0,0,0,0,0,0,0,79.22147,8.971212,1.386294,3.537095,1 +11,4,0,0,3,430928,0,7872.141,1.178645,0,13,1,16.24232,6.786655,0,0,0,23.02897,0,0,0,3,0,4,83.39137,9.967326,.0268456,,0,0,1,0,1.386294,0,0,0,0,0,0,0,79.22147,8.971212,1.386294,3.136753,1 +13,4,0,0,2,430938,0,9339.003,.2087611,1,17,1,129.3952,68.72949,0,0,0,198.1247,0,0,0,18,0,5,83.39137,9.967326,.0268456,,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,79.22147,9.142062,1.609438,5.288897,1 +13,4,0,0,3,430938,0,9339.003,1.208761,1,17,1,55.46002,16.72399,0,0,0,72.18401,0,0,0,13,0,5,83.39137,9.967326,.0268456,,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,79.22147,9.142062,1.609438,4.279219,1 +11,4,0,0,2,430939,0,8516.716,.1841205,0,12,1,59.77496,16.92452,0,0,0,76.69949,0,0,0,9,0,5,83.39137,9.967326,.0268456,,0,0,1,0,1.609438,0,0,0,0,0,0,0,79.22147,9.049904,1.609438,4.339895,1 +11,4,0,0,3,430939,0,8516.716,1.18412,0,12,1,58.46947,15.08169,0,0,0,73.55116,0,0,0,10,0,5,83.39137,9.967326,.0268456,,0,0,1,0,1.609438,0,0,0,0,0,0,0,79.22147,9.049904,1.609438,4.297981,1 +11,4,0,0,4,430939,0,8516.716,2.18412,0,12,1,50.01939,6.048856,0,0,0,56.06824,0,0,0,7,0,5,83.39137,9.967326,.0268456,,0,0,1,0,1.609438,0,0,0,0,0,0,0,79.22147,9.049904,1.609438,4.02657,1 +11,4,0,0,5,430939,0,8516.716,3.18412,0,12,1,65.81741,9.844303,0,0,0,75.66171,0,0,0,7,0,5,83.39137,9.967326,.0268456,,0,0,1,0,1.609438,0,0,0,0,0,0,0,79.22147,9.049904,1.609438,4.326272,1 +11,4,0,0,2,430945,0,7640.469,.1074606,1,14,1,37.97468,17.6512,0,0,0,55.62588,0,0,0,5,0,5,83.39137,9.967326,.0268456,,0,0,1,1,1.609438,0,0,0,0,0,0,0,79.22147,8.941345,1.609438,4.018649,1 +11,4,0,0,3,430945,0,7640.469,1.107461,1,14,1,24.50559,11.34996,0,0,0,35.85555,0,0,0,4,0,5,83.39137,9.967326,.0268456,,0,0,1,1,1.609438,0,0,0,0,0,0,0,79.22147,8.941345,1.609438,3.579498,1 +11,4,0,0,4,430945,0,7640.469,2.107461,1,14,1,13.9589,1.919349,0,0,0,15.87825,0,0,0,2,0,5,83.39137,9.967326,.0268456,,0,0,1,1,1.609438,0,0,0,0,0,0,0,79.22147,8.941345,1.609438,2.76495,1 +11,4,0,0,5,430945,0,7640.469,3.107461,1,14,1,44.23213,5.94126,0,0,0,50.17339,0,0,0,4,0,5,83.39137,9.967326,.0268456,,0,0,1,1,1.609438,0,0,0,0,0,0,0,79.22147,8.941345,1.609438,3.915485,1 +15,4,95,0,2,430949,0,6648.094,.3264887,1,14,1,30.76923,1.981352,0,0,0,32.75058,0,0,0,6,0,4,83.39137,9.967326,.0268456,,1000,999.8,1,1,1.386294,6.907555,0,4.564348,6.959049,0,0,0,79.22147,8.802236,1.386294,3.488921,1 +15,4,95,0,3,430949,0,6648.094,1.326489,1,14,1,13.68106,0,0,0,0,13.68106,0,0,0,2,0,4,83.39137,9.967326,.0268456,,1000,999.8,1,1,1.386294,6.907555,0,4.564348,6.959049,0,0,0,79.22147,8.802236,1.386294,2.616012,1 +11,4,0,0,3,430975,0,3134.956,.8774812,1,12,1,24.93551,9.952708,0,0,0,34.88822,0,0,0,4,0,5,83.39137,9.967326,.0268456,,0,204.6,1,1,1.609438,5.321057,0,0,0,0,0,0,79.22147,8.05069,1.609438,3.552149,1 +13,4,0,0,3,430979,0,7954.839,.8145106,0,12,1,22.23172,0,0,0,0,22.23172,0,0,0,3,0,5,83.39137,9.967326,.0268456,,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,79.22147,8.981662,1.609438,3.10152,1 +11,4,0,0,3,430991,0,4336.07,.5708419,0,12,1,12.03783,0,0,0,0,12.03783,0,0,0,3,0,4,83.39137,9.967326,.0268456,,0,0,1,0,1.386294,0,0,0,0,0,0,0,79.22147,8.374954,1.386294,2.488055,1 +11,4,0,0,3,430999,0,1271.554,.6776181,1,9,1,23.08679,7.73835,0,0,0,30.82514,0,0,0,5,0,4,83.39137,9.967326,.0268456,,0,0,1,1,1.386294,0,0,0,0,0,0,0,79.22147,7.148781,1.386294,3.42833,1 +13,4,0,0,3,431002,0,7374.193,.568104,0,16,1,15.47721,0,0,0,0,15.47721,0,0,0,3,0,3,83.39137,9.967326,.0268456,,300,300,1,0,1.098612,5.703783,1,4.564348,5.755076,0,0,0,79.22147,8.905877,1.098612,2.739369,1 +13,4,0,0,4,431002,0,7374.193,1.568104,0,16,1,11.24467,1.547111,0,0,0,12.79178,0,0,0,2,0,3,83.39137,9.967326,.0268456,,300,300,1,0,1.098612,5.703783,1,4.564348,5.755076,0,0,0,79.22147,8.905877,1.098612,2.548803,1 +13,4,0,0,5,431002,0,7374.193,2.568104,0,16,1,5.307856,1.058033,0,0,0,6.365888,0,0,0,1,0,3,83.39137,9.967326,.0268456,,300,300,1,0,1.098612,5.703783,1,4.564348,5.755076,0,0,0,79.22147,8.905877,1.098612,1.850954,1 +11,4,0,0,3,431011,0,5469.795,.3216975,0,18,1,581.0619,0,0,0,1533.125,2114.188,2,0,0,20,0,2,83.39137,9.967326,.0268456,,0,0,1,0,.6931472,0,0,0,0,0,0,0,79.22147,8.60718,.6931472,7.656426,1 +16,4,95,0,3,431012,0,8591.789,.3052704,0,12,1,34.67707,0,0,0,0,34.67707,0,0,0,6,0,4,83.39137,9.967326,.0268456,,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,79.22147,9.058679,1.386294,3.546079,1 +11,4,0,0,3,431014,0,11719.65,.2724161,0,10,1,13.6541,0,0,0,0,13.6541,0,0,0,1,0,7,83.39137,9.967326,.0268456,,0,0,1,0,1.94591,0,0,0,0,0,0,0,79.22147,9.369107,1.94591,2.61404,1 +13,4,0,0,3,431020,0,3774.78,.2313484,0,12,1,269.9828,12.38177,0,0,0,282.3646,0,0,0,11,0,3,83.39137,9.967326,.0268456,,300,362.64,1,0,1.098612,5.893411,1,4.564348,5.755076,0,0,0,79.22147,8.236362,1.098612,5.643199,1 +16,4,95,0,3,431021,0,730.2053,.2778918,0,12,1,53.01411,15.60496,0,0,0,68.61906,0,0,0,7,0,2,83.39137,9.967326,.0268456,,34.5,0,1,0,.6931472,0,0,4.564348,3.592253,0,0,0,79.22147,6.594694,.6931472,4.22857,1 +13,4,0,0,3,431025,0,3515.542,.4859685,1,12,1,11.17799,0,0,0,0,11.17799,0,0,0,2,0,2,83.39137,9.967326,.0268456,,150,150,1,1,.6931472,5.010635,1,4.564348,5.061929,0,0,0,79.22147,8.165234,.6931472,2.413946,1 +13,4,0,0,4,431025,0,3515.542,1.485968,1,12,1,29.08104,0,0,0,0,29.08104,0,0,0,3,0,2,83.39137,9.967326,.0268456,,150,150,1,1,.6931472,5.010635,1,4.564348,5.061929,0,0,0,79.22147,8.165234,.6931472,3.370086,1 +13,4,0,0,5,431025,0,3515.542,2.485969,1,12,1,31.97806,0,0,0,0,31.97806,0,0,0,1,0,2,83.39137,9.967326,.0268456,,150,150,1,1,.6931472,5.010635,1,4.564348,5.061929,0,0,0,79.22147,8.165234,.6931472,3.46505,1 +13,4,0,0,3,431029,0,995.3079,.2067077,1,12,1,50.51591,4.290627,0,0,0,54.80653,0,0,0,7,0,4,83.39137,9.967326,.0268456,,300,313.94,1,1,1.386294,5.749202,1,4.564348,5.755076,0,0,0,79.22147,6.904057,1.386294,4.003809,1 +13,4,0,0,4,431029,0,995.3079,1.206708,1,12,1,11.24467,2.307096,0,0,0,13.55176,0,0,0,2,0,5,83.39137,9.967326,.0268456,,300,313.94,1,1,1.609438,5.749202,1,4.564348,5.755076,0,0,0,79.22147,6.904057,1.609438,2.606517,1 +13,4,0,0,5,431029,0,995.3079,2.206708,1,12,1,5.307856,0,0,0,0,5.307856,0,0,0,1,0,5,83.39137,9.967326,.0268456,,300,313.94,1,1,1.609438,5.749202,1,4.564348,5.755076,0,0,0,79.22147,6.904057,1.609438,1.669188,1 +15,4,95,0,3,431050,0,2331.378,.0150582,1,12,1,0,0,0,0,55.57931,55.57931,1,0,0,0,0,2,83.39137,9.967326,.0268456,,250,250,1,1,.6931472,5.521461,0,4.564348,5.572754,0,0,0,79.22147,7.754644,.6931472,4.017811,1 +11,4,0,0,3,431058,0,4588.856,.0260096,1,12,1,69.78761,16.40659,0,0,0,86.19419,0,0,0,8,0,4,83.39137,9.967326,.0268456,,0,0,1,1,1.386294,0,0,0,0,0,0,0,79.22147,8.431604,1.386294,4.456603,1 +7,4,25,0,4,431080,0,7910.823,.705681,1,10,1,12.20953,0,0,0,0,12.20953,0,0,0,3,0,5,83.39137,9.967326,.0268456,,750,749.8,1,1,1.609438,6.619806,0,3.258096,8.006368,0,0,0,79.22147,8.976113,1.609438,2.502217,1 +7,4,25,0,5,431080,0,7910.823,1.705681,1,10,1,34.34705,5.577817,0,0,0,39.92487,0,0,0,7,0,5,83.39137,9.967326,.0268456,,750,749.8,1,1,1.609438,6.619806,0,3.258096,8.006368,0,0,0,79.22147,8.976113,1.609438,3.686999,1 +19,4,25,0,4,431088,0,1555.425,.7686516,0,12,1,26.13374,0,0,0,0,26.13374,0,0,0,7,0,3,83.39137,9.967326,.0268456,,300,300,1,0,1.098612,5.703783,0,3.258096,7.090077,0,0,0,79.22147,7.350147,1.098612,3.263227,1 +19,4,25,0,5,431088,0,1555.425,1.768652,0,12,1,4.56621,0,0,0,0,4.56621,0,0,0,2,0,3,83.39137,9.967326,.0268456,,300,300,1,0,1.098612,5.703783,0,3.258096,7.090077,0,0,0,79.22147,7.350147,1.098612,1.518684,1 +13,4,0,0,4,431111,0,17.59531,.2950034,0,12,1,41.1012,0,0,0,0,41.1012,0,0,0,4,0,3,83.39137,9.967326,.0268456,,300,358.52,1,0,1.098612,5.881984,1,4.564348,5.755076,0,0,0,79.22147,2.922909,1.098612,3.716038,1 +13,4,0,0,5,431111,0,17.59531,1.295003,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,83.39137,9.967326,.0268456,,300,358.52,1,0,1.098612,5.881984,1,4.564348,5.755076,0,0,0,79.22147,2.922909,1.098612,,0 +13,4,0,0,4,431131,0,995.3079,.0568104,1,12,1,31.79527,8.406359,0,0,0,40.20163,0,0,0,6,0,5,83.39137,9.967326,.0268456,,300,313.94,1,1,1.609438,5.749202,1,4.564348,5.755076,0,0,0,79.22147,6.904057,1.609438,3.693907,1 +13,4,0,0,5,431131,0,995.3079,1.05681,1,12,1,10.61571,0,0,0,0,10.61571,0,0,0,2,0,5,83.39137,9.967326,.0268456,,300,313.94,1,1,1.609438,5.749202,1,4.564348,5.755076,0,0,0,79.22147,6.904057,1.609438,2.362335,1 +13,4,0,0,5,431166,0,6165.396,.4353183,0,12,1,56.61713,6.811748,0,0,0,63.42887,0,0,0,7,0,5,83.39137,9.967326,.0268456,,,,1,0,1.609438,0,1,4.564348,0,0,0,0,79.22147,8.72687,1.609438,4.149919,1 +11,4,0,0,5,431168,0,8719.648,.2436687,0,11,1,37.56709,19.99642,0,0,0,57.56351,0,0,0,6,0,7,83.39137,9.967326,.0268456,,0,0,1,0,1.94591,0,0,0,0,0,0,0,79.22147,9.073449,1.94591,4.052889,1 +19,5,25,1,1,525011,0,12647.21,36.53114,1,14,1,215.0896,33.74739,0,145.8941,300.9587,549.7958,1,0,21,8,0,2,76.6,17.2,0,79.5,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,0,0,79.5,9.445271,.6931472,6.309547,1 +19,5,25,1,2,525011,0,12647.21,37.53114,1,14,1,58.13953,35.18005,0,33.75844,0,93.31958,0,0,6,7,1,2,76.6,17.2,0,79.5,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,0,0,79.5,9.445271,.6931472,4.53603,1 +19,5,25,1,3,525011,0,12647.21,38.53114,1,14,1,114.682,53.80244,0,0,0,168.4844,0,0,0,9,0,2,76.6,17.2,0,79.5,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,0,0,79.5,9.445271,.6931472,5.126843,1 +11,5,0,1,1,525027,0,9173.067,26.9295,1,12,1,29.77456,5.801786,0,0,0,35.57635,0,0,0,2,0,4,79.8,6.9,0,93.2,0,0,0,0,1.386294,0,0,0,0,0,0,0,93.2,9.124136,1.386294,3.571681,1 +11,5,0,1,2,525027,0,9173.067,27.9295,1,12,1,13.35878,0,28.62595,0,0,41.98473,0,0,0,1,0,4,79.8,6.9,0,93.2,0,0,0,0,1.386294,0,0,0,0,0,0,0,93.2,9.124136,1.386294,3.737306,1 +11,5,0,1,3,525027,0,9173.067,28.9295,1,12,1,28.91986,2.090592,0,0,457.8397,488.8502,1,0,0,2,0,4,79.8,6.9,0,93.2,0,0,0,0,1.386294,0,0,0,0,0,0,0,93.2,9.124136,1.386294,6.192056,1 +11,5,0,1,1,525028,0,9173.067,3.802875,1,12,1,17.01404,14.7937,0,0,0,31.80774,0,0,0,3,0,4,77.40034,10.57626,0,100,0,0,1,1,1.386294,0,0,0,0,0,0,0,100,9.124136,1.386294,3.45971,1 +11,5,0,1,2,525028,0,9173.067,4.802875,1,12,1,22.13741,4.767176,0,0,0,26.90458,0,0,0,4,0,4,77.40034,10.57626,0,100,0,0,1,1,1.386294,0,0,0,0,0,0,0,100,9.124136,1.386294,3.292297,1 +11,5,0,1,3,525028,0,9173.067,5.802875,1,12,1,32.05575,.6585366,0,0,0,32.71429,0,0,0,4,0,4,77.40034,10.57626,0,100,0,0,1,1,1.386294,0,0,0,0,0,0,0,100,9.124136,1.386294,3.487812,1 +11,5,0,1,1,525029,0,9173.067,6.568104,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,80,10.57626,0,88.9,0,0,1,1,1.386294,0,0,0,0,0,1,0,88.9,9.124136,1.386294,,0 +11,5,0,1,2,525029,0,9173.067,7.568104,1,12,1,11.45038,3.835878,0,0,0,15.28626,0,0,0,2,0,4,80,10.57626,0,88.9,0,0,1,1,1.386294,0,0,0,0,0,1,0,88.9,9.124136,1.386294,2.726954,1 +11,5,0,1,3,525029,0,9173.067,8.568104,1,12,1,13.24042,3.759582,0,0,386.1324,403.1324,1,0,0,2,0,4,80,10.57626,0,88.9,0,0,1,1,1.386294,0,0,0,0,0,1,0,88.9,9.124136,1.386294,5.999265,1 +11,5,0,1,1,525030,0,9173.067,27.70979,0,12,1,0,8.490005,0,0,0,8.490005,0,0,0,0,0,4,89.4,0,0,67,0,0,0,0,1.386294,0,0,0,0,0,0,0,67,9.124136,1.386294,2.13889,1 +11,5,0,1,2,525030,0,9173.067,28.70979,0,12,1,0,2.206107,0,0,0,2.206107,0,0,0,0,0,4,89.4,0,0,67,0,0,0,0,1.386294,0,0,0,0,0,0,0,67,9.124136,1.386294,.7912294,1 +11,5,0,1,3,525030,0,9173.067,29.70979,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,89.4,0,0,67,0,0,0,0,1.386294,0,0,0,0,0,0,0,67,9.124136,1.386294,,0 +13,5,0,0,1,525055,0,2807.038,56.49281,1,11,1,18.08137,25.07283,0,0,0,43.15419,0,0,0,1,0,2,41.5,13.8,1,56.8,300,0,0,0,.6931472,0,1,4.564348,5.755076,0,1,0,56.8,7.940241,.6931472,3.76478,1 +13,5,0,0,2,525055,0,2807.038,57.49281,1,11,1,39.17478,15.91562,15.42884,0,0,70.51924,0,0,0,3,0,2,41.5,13.8,1,56.8,300,0,0,0,.6931472,0,1,4.564348,5.755076,0,1,0,56.8,7.940241,.6931472,4.255886,1 +13,5,0,0,3,525055,0,2807.038,58.49281,1,11,1,0,6.452573,0,0,0,6.452573,0,0,0,0,0,2,41.5,13.8,1,56.8,300,0,0,0,.6931472,0,1,4.564348,5.755076,0,1,0,56.8,7.940241,.6931472,1.864479,1 +13,5,0,0,4,525055,0,2807.038,59.49281,1,11,1,0,4.064886,0,0,0,4.064886,0,0,0,0,0,2,41.5,13.8,1,56.8,300,0,0,0,.6931472,0,1,4.564348,5.755076,0,1,0,56.8,7.940241,.6931472,1.402386,1 +13,5,0,0,5,525055,0,2807.038,60.49281,1,11,1,42.50871,20.10801,36.68293,0,0,99.29965,0,0,0,2,0,2,41.5,13.8,1,56.8,300,0,0,0,.6931472,0,1,4.564348,5.755076,0,1,0,56.8,7.940241,.6931472,4.598142,1 +13,5,0,0,1,525056,0,2807.038,55.17317,0,11,1,0,0,0,0,0,0,0,0,0,0,0,2,92.3,6.9,0,78.4,300,0,0,0,.6931472,0,1,4.564348,5.755076,0,0,0,78.4,7.940241,.6931472,,0 +13,5,0,0,2,525056,0,2807.038,56.17317,0,11,1,0,0,0,0,0,0,0,0,0,0,0,2,92.3,6.9,0,78.4,300,0,0,0,.6931472,0,1,4.564348,5.755076,0,0,0,78.4,7.940241,.6931472,,0 +13,5,0,0,3,525056,0,2807.038,57.17317,0,11,1,0,0,0,0,0,0,0,0,0,0,0,2,92.3,6.9,0,78.4,300,0,0,0,.6931472,0,1,4.564348,5.755076,0,0,0,78.4,7.940241,.6931472,,0 +13,5,0,0,4,525056,0,2807.038,58.17317,0,11,1,0,0,0,0,0,0,0,0,0,0,0,2,92.3,6.9,0,78.4,300,0,0,0,.6931472,0,1,4.564348,5.755076,0,0,0,78.4,7.940241,.6931472,,0 +13,5,0,0,5,525056,0,2807.038,59.17317,0,11,1,0,0,0,0,0,0,0,0,0,0,0,2,92.3,6.9,0,78.4,300,0,0,0,.6931472,0,1,4.564348,5.755076,0,0,0,78.4,7.940241,.6931472,,0 +11,5,0,0,1,525079,0,4926.1,19.48255,1,10,1,21.94514,20.29925,0,0,0,42.24439,0,0,0,3,0,2,33.5,20.7,0,52.3,0,0,0,0,.6931472,0,0,0,0,0,0,0,52.3,8.502506,.6931472,3.743472,1 +11,5,0,0,2,525079,0,4926.1,20.48255,1,10,1,488.2434,6.804979,0,0,0,495.0484,0,0,0,1,0,2,33.5,20.7,0,52.3,0,0,0,0,.6931472,0,0,0,0,0,0,0,52.3,8.502506,.6931472,6.204656,1 +11,5,0,0,3,525079,0,4926.1,21.48255,1,10,1,0,0,0,0,0,0,0,0,0,0,0,2,33.5,20.7,0,52.3,0,0,0,0,.6931472,0,0,0,0,0,0,0,52.3,8.502506,.6931472,,0 +11,5,0,0,1,525080,0,4926.1,21.56879,0,12,1,4.488778,4.992519,0,0,0,9.481297,0,0,0,1,0,2,73.9,3.4,0,76.1,0,0,0,0,.6931472,0,0,0,0,0,0,0,76.1,8.502506,.6931472,2.249321,1 +11,5,0,0,2,525080,0,4926.1,22.56879,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,73.9,3.4,0,76.1,0,0,0,0,.6931472,0,0,0,0,0,0,0,76.1,8.502506,.6931472,,0 +11,5,0,0,3,525080,0,4926.1,23.56879,0,12,1,12.48413,0,0,0,0,12.48413,0,0,0,1,0,2,73.9,3.4,0,76.1,0,0,0,0,.6931472,0,0,0,0,0,0,0,76.1,8.502506,.6931472,2.524458,1 +11,5,0,0,4,525080,0,4926.1,24.56879,0,12,1,62.54745,0,0,0,0,62.54745,0,0,0,3,0,1,73.9,3.4,0,76.1,0,0,0,0,0,0,0,0,0,0,0,0,76.1,8.502506,0,4.135926,1 +11,5,0,0,5,525080,0,4926.1,25.56879,0,12,1,64.70588,2.159169,0,0,0,66.86505,0,0,0,2,0,1,73.9,3.4,0,76.1,0,0,0,0,0,0,0,0,0,0,0,0,76.1,8.502506,0,4.202676,1 +11,5,0,1,1,525095,0,2554.839,55.30732,0,2,1,14.8662,13.81566,0,0,471.3826,500.0644,1,0,0,2,0,2,69.7,31,0,67,0,0,0,0,.6931472,0,0,0,0,0,1,0,67,7.846136,.6931472,6.214737,1 +11,5,0,1,2,525095,0,2554.839,56.30732,0,2,1,20.65167,82.38641,31.97797,0,0,135.0161,0,0,0,2,0,2,69.7,31,0,67,0,0,0,0,.6931472,0,0,0,0,0,1,0,67,7.846136,.6931472,4.905394,1 +11,5,0,1,3,525095,0,2554.839,57.30732,0,2,1,12.62095,46.04964,0,0,0,58.67059,0,0,0,2,0,2,69.7,31,0,67,0,0,0,0,.6931472,0,0,0,0,0,1,0,67,7.846136,.6931472,4.071939,1 +11,5,0,1,4,525095,0,2554.839,58.30732,0,2,1,6.800151,17.45372,0,0,0,24.25387,0,0,0,1,0,2,69.7,31,0,67,0,0,0,0,.6931472,0,0,0,0,0,1,0,67,7.846136,.6931472,3.188576,1 +11,5,0,1,5,525095,0,2554.839,59.30732,0,2,1,60.37736,75.14236,33.1801,0,921.4408,1090.141,1,0,0,7,0,2,69.7,31,0,67,0,0,0,0,.6931472,0,0,0,0,0,1,0,67,7.846136,.6931472,6.994062,1 +11,5,0,1,1,525096,0,2554.839,48.09309,1,5,1,61.94252,51.13974,34.10307,0,0,147.1853,0,0,0,3,0,2,89.4,27.6,1,62.5,0,0,0,0,.6931472,0,0,0,0,0,0,1,62.5,7.846136,.6931472,4.991693,1 +11,5,0,1,2,525096,0,2554.839,49.09309,1,5,1,38.54979,103.0289,49.83937,0,0,191.4181,0,0,0,5,0,2,89.4,27.6,1,62.5,0,0,0,0,.6931472,0,0,0,0,0,0,1,62.5,7.846136,.6931472,5.25446,1 +11,5,0,1,3,525096,0,2554.839,50.09309,1,5,1,33.23517,80.2987,35.1199,0,0,148.6538,0,0,0,4,0,2,89.4,27.6,1,62.5,0,0,0,0,.6931472,0,0,0,0,0,0,1,62.5,7.846136,.6931472,5.00162,1 +11,5,0,1,4,525096,0,2554.839,51.09309,1,5,1,119.3804,120.7291,75.33057,0,0,315.4401,0,0,0,8,0,2,89.4,27.6,1,62.5,0,0,0,0,.6931472,0,0,0,0,0,0,1,62.5,7.846136,.6931472,5.753969,1 +11,5,0,1,5,525096,0,2554.839,52.09309,1,5,1,299.1424,107.1835,45.21784,0,0,451.5437,0,0,0,9,0,2,89.4,27.6,1,62.5,0,0,0,0,.6931472,0,0,0,0,0,0,1,62.5,7.846136,.6931472,6.112672,1 +11,5,0,1,1,525097,0,2633.431,22.53251,0,9,1,94.01496,7.650873,0,0,300,401.6658,1,0,0,9,0,1,43.6,3.4,0,50,0,0,0,0,0,0,0,0,0,1,0,0,50,7.876422,0,5.99562,1 +11,5,0,1,2,525097,0,2633.431,23.53251,0,9,1,46.79576,0,0,0,0,46.79576,0,0,0,5,0,1,43.6,3.4,0,50,0,0,0,0,0,0,0,0,0,1,0,0,50,7.876422,0,3.845793,1 +11,5,0,1,3,525097,0,2633.431,24.53251,0,9,1,0,0,0,0,0,0,0,0,0,0,0,1,43.6,3.4,0,50,0,0,0,0,0,0,0,0,0,1,0,0,50,7.876422,0,,0 +11,5,0,1,4,525097,0,2633.431,25.53251,0,9,1,56.56796,4.707669,0,0,0,61.27563,0,0,0,2,0,1,43.6,3.4,0,50,0,0,0,0,0,0,0,0,0,1,0,0,50,7.876422,0,4.115382,1 +11,5,0,1,5,525097,0,2633.431,26.53251,0,9,1,134.6021,11.36678,0,0,611.4187,757.3876,1,0,0,8,0,1,43.6,3.4,0,50,0,0,0,0,0,0,0,0,0,1,0,0,50,7.876422,0,6.629875,1 +5,5,25,1,1,525104,0,7458.781,57.79877,0,13,1,49.93652,46.68218,2.522218,0,0,99.14092,0,0,0,3,0,1,85.1,24.1,1,62.5,750,750,0,0,0,6.620073,0,3.258096,8.006368,0,1,0,62.5,8.917281,0,4.596542,1 +5,5,25,1,2,525104,0,7458.781,58.79877,0,13,1,74.22172,67.36143,2.277904,0,349.2787,493.1397,1,0,0,7,0,1,85.1,24.1,1,62.5,750,750,0,0,0,6.620073,0,3.258096,8.006368,0,1,0,62.5,8.917281,0,6.200792,1 +5,5,25,1,3,525104,0,7458.781,59.79877,0,13,1,198.7889,50.08305,49.02768,0,1325.952,1623.851,1,0,0,6,1,1,85.1,24.1,1,62.5,750,750,0,0,0,6.620073,0,3.258096,8.006368,0,1,0,62.5,8.917281,0,7.392556,1 +15,5,95,0,1,525107,0,9990.783,27.74264,1,12,1,33.85527,0,11.84934,0,0,45.70461,0,0,0,2,1,3,73.4,10.3,0,90.9,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,90.9,9.209518,1.098612,3.822199,1 +15,5,95,0,2,525107,0,9990.783,28.74264,1,12,1,26.9552,3.644647,0,0,0,30.59985,0,0,0,3,0,3,73.4,10.3,0,90.9,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,90.9,9.209518,1.098612,3.420995,1 +15,5,95,0,3,525107,0,9990.783,29.74264,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,73.4,10.3,0,90.9,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,90.9,9.209518,1.098612,,0 +15,5,95,0,1,525108,0,9990.783,30.39014,0,16,1,152.7719,12.39526,11.42615,0,0,176.5933,0,0,0,5,2,3,84.6,10.3,0,76.1,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,76.1,9.209518,1.098612,5.17385,1 +15,5,95,0,2,525108,0,9990.783,31.39014,0,16,1,6.454062,1.537585,0,0,0,7.991648,0,0,0,1,0,3,84.6,10.3,0,76.1,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,76.1,9.209518,1.098612,2.078397,1 +15,5,95,0,3,525108,0,9990.783,32.39014,0,16,1,14.53287,0,0,0,0,14.53287,0,0,0,1,1,3,84.6,10.3,0,76.1,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,76.1,9.209518,1.098612,2.676413,1 +17,5,25,0,1,525134,1,6674.895,53.38809,1,7,1,0,0,0,0,0,0,0,0,0,0,0,1,56.4,3.4,0,56.8,240,0,0,0,0,0,0,3.258096,6.866933,1,0,0,56.8,8.806258,0,,0 +17,5,25,0,2,525134,1,6674.895,54.38809,1,7,1,0,1.860289,0,0,0,1.860289,0,0,0,0,0,1,56.4,3.4,0,56.8,240,0,0,0,0,0,0,3.258096,6.866933,1,0,0,56.8,8.806258,0,.6207316,1 +17,5,25,0,3,525134,1,6674.895,55.38809,1,7,1,19.03114,2.733564,32.02768,0,0,53.79239,0,0,0,2,0,1,56.4,3.4,0,56.8,240,0,0,0,0,0,0,3.258096,6.866933,1,0,0,56.8,8.806258,0,3.985132,1 +13,5,0,1,1,525141,0,4639.529,57.62355,1,13,1,6.347863,3.626746,0,0,0,9.974608,0,0,0,1,0,1,70.2,20.7,0,50,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,50,8.442584,0,2.300043,1 +13,5,0,1,2,525141,0,4639.529,58.62355,1,13,1,35.68717,3.386484,0,0,0,39.07365,0,0,0,3,0,1,70.2,20.7,0,50,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,50,8.442584,0,3.665448,1 +13,5,0,1,3,525141,0,4639.529,59.62355,1,13,1,8.650519,0,0,0,0,8.650519,0,0,0,1,0,1,70.2,20.7,0,50,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,50,8.442584,0,2.157619,1 +11,5,0,0,1,525159,1,0,49.85626,1,11,1,7.835258,0,32.38573,0,0,40.22099,0,0,0,0,1,3,49.5,27.6,1,47.7,0,0,0,0,1.098612,0,0,0,0,0,0,1,47.7,0,1.098612,3.694389,1 +11,5,0,0,2,525159,1,0,50.85626,1,11,1,48.95689,0,1.159017,0,0,50.1159,0,0,0,0,0,3,49.5,27.6,1,47.7,0,0,0,0,1.098612,0,0,0,0,0,0,1,47.7,0,1.098612,3.914338,1 +11,5,0,0,3,525159,1,0,51.85626,1,11,1,0,0,0,0,0,0,0,0,0,0,0,3,49.5,27.6,1,47.7,0,0,0,0,1.098612,0,0,0,0,0,0,1,47.7,0,1.098612,,0 +11,5,0,0,4,525159,1,0,52.85626,1,11,1,25.9542,0,31.75573,0,0,57.70992,0,0,0,2,1,4,49.5,27.6,1,47.7,0,0,0,0,1.386294,0,0,0,0,0,0,1,47.7,0,1.386294,4.055429,1 +11,5,0,0,5,525159,1,0,53.85626,1,11,1,10.45296,0,32.24739,0,0,42.70035,0,0,0,0,1,4,49.5,27.6,1,47.7,0,0,0,0,1.386294,0,0,0,0,0,0,1,47.7,0,1.386294,3.754207,1 +11,5,0,0,1,525160,1,0,19.08829,1,9,1,0,0,0,0,0,0,0,0,0,0,0,3,42,6.9,0,54.5,0,0,0,0,1.098612,0,0,0,0,0,0,0,54.5,0,1.098612,,0 +11,5,0,0,2,525160,1,0,20.08829,1,9,1,26.61103,9.619843,0,0,0,36.23088,0,0,0,0,0,3,42,6.9,0,54.5,0,0,0,0,1.098612,0,0,0,0,0,0,0,54.5,0,1.098612,3.589912,1 +11,5,0,0,3,525160,1,0,21.08829,1,9,1,0,14.86601,0,0,1389.196,1404.062,1,1,0,0,0,3,42,6.9,0,54.5,0,0,0,0,1.098612,0,0,0,0,0,0,0,54.5,0,1.098612,7.247125,1 +11,5,0,0,4,525160,1,0,22.08829,1,9,1,0,0,0,0,0,0,0,0,0,0,0,4,42,6.9,0,54.5,0,0,0,0,1.386294,0,0,0,0,0,0,0,54.5,0,1.386294,,0 +11,5,0,0,5,525160,1,0,23.08829,1,9,1,20.55749,0,0,0,0,20.55749,0,0,0,0,1,4,42,6.9,0,54.5,0,0,0,0,1.386294,0,0,0,0,0,0,0,54.5,0,1.386294,3.023225,1 +11,5,0,0,1,525161,1,0,3.208761,0,11,1,0,0,0,0,0,0,0,0,0,0,0,3,77.40034,10.57626,0,70.4,0,0,1,0,1.098612,0,0,0,0,0,0,0,70.4,0,1.098612,,0 +11,5,0,0,2,525161,1,0,4.208761,0,11,1,6.954103,0,0,0,0,6.954103,0,0,0,1,0,3,77.40034,10.57626,0,70.4,0,0,1,0,1.098612,0,0,0,0,0,0,0,70.4,0,1.098612,1.939332,1 +11,5,0,0,3,525161,1,0,5.208761,0,11,1,12.76053,2.530838,0,0,0,15.29137,0,0,0,2,0,3,77.40034,10.57626,0,70.4,0,0,1,0,1.098612,0,0,0,0,0,0,0,70.4,0,1.098612,2.727288,1 +11,5,0,0,4,525161,1,0,6.208761,0,11,1,52.29008,8.187023,0,0,0,60.4771,0,0,0,0,0,4,77.40034,10.57626,0,70.4,0,0,1,0,1.386294,0,0,0,0,0,0,0,70.4,0,1.386294,4.102265,1 +11,5,0,0,5,525161,1,0,7.208761,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,0,70.4,0,0,1,0,1.386294,0,0,0,0,0,0,0,70.4,0,1.386294,,0 +11,5,0,0,1,525192,0,5363.636,25.40726,1,16,1,20.94763,6.573566,0,14.96259,0,27.5212,0,0,3,2,0,1,61.7,17.2,0,77.3,0,12,0,0,0,2.484907,0,0,0,0,0,0,77.3,8.587584,0,3.314956,1 +11,5,0,0,2,525192,0,5363.636,26.40726,1,16,1,55.78608,0,0,0,0,55.78608,0,0,0,1,0,1,61.7,17.2,0,77.3,0,12,0,0,0,2.484907,0,0,0,0,0,0,77.3,8.587584,0,4.021524,1 +11,5,0,0,3,525192,0,5363.636,27.40726,1,16,1,283.5379,7.054592,26.07702,0,0,316.6695,0,0,0,8,2,1,61.7,17.2,0,77.3,0,12,0,0,0,2.484907,0,0,0,0,0,0,77.3,8.587584,0,5.757859,1 +11,5,0,0,4,525192,0,5363.636,28.40726,1,16,1,89.21792,22.53227,11.05543,0,394.0775,516.8831,1,0,0,4,0,1,61.7,17.2,0,77.3,0,12,0,0,0,2.484907,0,0,0,0,0,0,77.3,8.587584,0,6.247817,1 +11,5,0,0,5,525192,0,5363.636,29.40726,1,16,1,91.34948,19.0173,0,0,0,110.3668,0,0,0,3,0,1,61.7,17.2,0,77.3,0,12,0,0,0,2.484907,0,0,0,0,0,0,77.3,8.587584,0,4.703809,1 +13,5,0,1,1,525204,0,17808.5,25.78234,1,12,1,77.83922,2.977456,0,0,0,80.81667,0,0,0,4,0,5,72.3,10.3,0,76.1,450,864,0,0,1.609438,6.761573,1,4.564348,6.160541,0,1,0,76.1,9.787487,1.609438,4.392183,1 +13,5,0,1,2,525204,0,17808.5,26.78234,1,12,1,5.725191,0,0,0,0,5.725191,0,0,0,1,0,5,72.3,10.3,0,76.1,450,864,0,0,1.609438,6.761573,1,4.564348,6.160541,0,1,0,76.1,9.787487,1.609438,1.744876,1 +13,5,0,1,1,525205,0,17808.5,8.449008,0,12,1,10.63377,0,17.86474,0,0,28.49851,0,0,0,0,1,5,93.3,10.57626,0,100,450,864,1,0,1.609438,6.761573,1,4.564348,6.160541,0,0,0,100,9.787487,1.609438,3.349852,1 +13,5,0,1,2,525205,0,17808.5,9.449008,0,12,1,8.015267,0,0,0,0,8.015267,0,0,0,1,0,5,93.3,10.57626,0,100,450,864,1,0,1.609438,6.761573,1,4.564348,6.160541,0,0,0,100,9.787487,1.609438,2.081348,1 +13,5,0,1,1,525206,0,17808.5,8.449008,0,12,1,32.32667,0,0,0,0,32.32667,0,0,0,2,0,5,90,10.57626,0,96.3,450,864,1,0,1.609438,6.761573,1,4.564348,6.160541,0,0,0,96.3,9.787487,1.609438,3.475893,1 +13,5,0,1,2,525206,0,17808.5,9.449008,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,90,10.57626,0,96.3,450,864,1,0,1.609438,6.761573,1,4.564348,6.160541,0,0,0,96.3,9.787487,1.609438,,0 +13,5,0,0,1,525207,0,17808.5,26.99795,0,12,1,182.9009,10.77414,0,0,679.2854,872.9604,2,0,0,6,1,5,61.2,6.9,1,65.9,450,864,0,0,1.609438,6.761573,1,4.564348,6.160541,0,1,0,65.9,9.787487,1.609438,6.77189,1 +13,5,0,0,2,525207,0,17808.5,27.99795,0,12,1,0,8.790076,0,0,0,8.790076,0,0,0,0,0,5,61.2,6.9,1,65.9,450,864,0,0,1.609438,6.761573,1,4.564348,6.160541,0,1,0,65.9,9.787487,1.609438,2.173623,1 +13,5,0,1,1,525215,1,295.955,12.14237,0,7,1,25.73,0,0,0,0,25.73,0,0,0,0,0,3,90,10.57626,0,85.2,450,0,1,0,1.098612,0,1,4.564348,6.160541,1,0,0,85.2,5.693581,1.098612,3.247658,1 +13,5,0,1,2,525215,1,295.955,13.14237,0,7,1,0,0,0,0,0,0,0,0,0,0,0,2,90,10.57626,0,85.2,450,0,1,0,.6931472,0,1,4.564348,6.160541,1,0,0,85.2,5.693581,.6931472,,0 +13,5,0,1,3,525215,1,295.955,14.14237,0,7,1,22.14533,0,0,0,0,22.14533,0,0,0,0,0,2,90,10.57626,0,85.2,450,0,1,0,.6931472,0,1,4.564348,6.160541,1,0,0,85.2,5.693581,.6931472,3.097627,1 +13,5,0,1,1,525216,1,295.955,14.56537,1,7,1,0,0,0,0,0,0,0,0,0,0,0,3,92.6,3.4,0,80.7,450,0,1,1,1.098612,0,1,4.564348,6.160541,1,0,0,80.7,5.693581,1.098612,,0 +13,5,0,1,2,525216,1,295.955,15.56537,1,7,1,0,0,0,0,0,0,0,0,0,0,0,2,92.6,3.4,0,80.7,450,0,1,1,.6931472,0,1,4.564348,6.160541,1,0,0,80.7,5.693581,.6931472,,0 +13,5,0,1,3,525216,1,295.955,16.56537,1,7,1,0,0,0,0,0,0,0,0,0,0,0,2,92.6,3.4,0,80.7,450,0,1,1,.6931472,0,1,4.564348,6.160541,1,0,0,80.7,5.693581,.6931472,,0 +13,5,0,1,1,525218,1,295.955,17.16085,1,7,1,0,0,0,0,0,0,0,0,0,0,0,3,91,6.9,0,61.4,450,0,1,1,1.098612,0,1,4.564348,6.160541,1,0,0,61.4,5.693581,1.098612,,0 +13,5,0,1,1,525219,0,9755.425,34.46954,1,14,1,184.788,0,34.40898,0,0,219.197,0,0,0,13,0,3,76.6,6.9,0,62.5,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,62.5,9.185681,1.098612,5.389971,1 +13,5,0,1,2,525219,0,9755.425,35.46954,1,14,1,22.82158,14.2462,3.360996,0,568.0037,608.4324,1,0,0,1,0,3,76.6,6.9,0,62.5,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,62.5,9.185681,1.098612,6.410886,1 +13,5,0,1,3,525219,0,9755.425,36.46954,1,14,1,54.59162,19.99154,2.666102,0,0,77.24926,0,0,0,2,0,4,76.6,6.9,0,62.5,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,62.5,9.185681,1.386294,4.347037,1 +13,5,0,1,4,525219,0,9755.425,37.46954,1,14,1,24.39256,0,.8390281,0,0,25.23159,0,0,0,1,0,4,76.6,6.9,0,62.5,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,62.5,9.185681,1.386294,3.228097,1 +13,5,0,1,5,525219,0,9755.425,38.46954,1,14,1,90.65744,11.48789,31.12803,0,0,133.2734,0,0,0,5,1,4,76.6,6.9,0,62.5,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,62.5,9.185681,1.386294,4.892402,1 +13,5,0,1,1,525220,0,9755.425,7.70705,1,14,1,17.95511,4.852868,0,0,0,22.80798,0,0,0,2,0,3,86.7,10.57626,0,74.1,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,0,0,0,74.1,9.185681,1.098612,3.12711,1 +13,5,0,1,2,525220,0,9755.425,8.70705,1,14,1,11.06501,6.085754,0,0,0,17.15076,0,0,0,2,0,3,86.7,10.57626,0,74.1,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,0,0,0,74.1,9.185681,1.098612,2.842042,1 +13,5,0,1,3,525220,0,9755.425,9.70705,1,14,1,35.54803,3.893356,0,0,0,39.44139,0,0,0,5,0,4,86.7,10.57626,0,74.1,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,74.1,9.185681,1.386294,3.674816,1 +13,5,0,1,4,525220,0,9755.425,10.70705,1,14,1,13.28778,0,0,0,0,13.28778,0,0,0,1,0,4,86.7,10.57626,0,74.1,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,74.1,9.185681,1.386294,2.586844,1 +13,5,0,1,5,525220,0,9755.425,11.70705,1,14,1,10.38062,0,0,0,0,10.38062,0,0,0,2,0,4,86.7,10.57626,0,74.1,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,74.1,9.185681,1.386294,2.339941,1 +13,5,0,1,1,525221,0,9755.425,34.1629,0,12,1,81.54613,55.31671,10.31421,0,0,147.1771,0,0,0,5,0,3,70.7,20.7,0,64.8,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,64.8,9.185681,1.098612,4.991636,1 +13,5,0,1,2,525221,0,9755.425,35.1629,0,12,1,25.81835,40.35039,0,0,0,66.16874,0,0,0,3,0,3,70.7,20.7,0,64.8,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,64.8,9.185681,1.098612,4.192208,1 +13,5,0,1,3,525221,0,9755.425,36.1629,0,12,1,34.70165,33.44477,0,0,0,68.14642,0,0,0,4,0,4,70.7,20.7,0,64.8,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,64.8,9.185681,1.386294,4.221659,1 +13,5,0,1,4,525221,0,9755.425,37.1629,0,12,1,72.89294,36.79195,0,0,0,109.6849,0,0,0,6,0,4,70.7,20.7,0,64.8,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,64.8,9.185681,1.386294,4.697612,1 +13,5,0,1,5,525221,0,9755.425,38.1629,0,12,1,24.22145,67.69896,0,0,0,91.92042,0,0,0,3,0,4,70.7,20.7,0,64.8,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,64.8,9.185681,1.386294,4.520923,1 +15,5,95,1,1,525262,1,2432.428,31.18138,1,10,1,0,0,0,0,0,0,0,0,0,0,0,2,81.4,6.9,0,94.3,400,400,0,0,.6931472,5.991465,0,4.564348,6.042758,0,1,0,94.3,7.797056,.6931472,,0 +15,5,95,1,2,525262,1,2432.428,32.18138,1,10,1,0,0,0,0,0,0,0,0,0,0,0,2,81.4,6.9,0,94.3,400,400,0,0,.6931472,5.991465,0,4.564348,6.042758,0,1,0,94.3,7.797056,.6931472,,0 +15,5,95,1,3,525262,1,2432.428,33.18138,1,10,1,38.34931,0,0,0,0,38.34931,0,0,0,0,0,2,81.4,6.9,0,94.3,400,400,0,0,.6931472,5.991465,0,4.564348,6.042758,0,1,0,94.3,7.797056,.6931472,3.646737,1 +15,5,95,1,1,525263,1,2432.428,11.24983,0,10,1,0,0,0,0,0,0,0,0,0,0,0,2,96.7,10.57626,0,100,400,400,1,0,.6931472,5.991465,0,4.564348,6.042758,0,0,0,100,7.797056,.6931472,,0 +15,5,95,1,2,525263,1,2432.428,12.24983,0,10,1,0,0,0,0,0,0,0,0,0,0,0,2,96.7,10.57626,0,100,400,400,1,0,.6931472,5.991465,0,4.564348,6.042758,0,0,0,100,7.797056,.6931472,,0 +15,5,95,1,3,525263,1,2432.428,13.24983,0,10,1,0,0,0,0,0,0,0,0,0,0,0,2,96.7,10.57626,0,100,400,400,1,0,.6931472,5.991465,0,4.564348,6.042758,0,0,0,100,7.797056,.6931472,,0 +13,5,0,1,1,525267,0,5955.425,22.49692,0,9,1,0,0,0,0,0,0,0,0,0,0,0,3,58,17.2,0,59.1,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,1,0,59.1,8.692225,1.098612,,0 +13,5,0,1,2,525267,0,5955.425,23.49692,0,9,1,19.8248,18.21116,0,0,0,38.03596,0,0,0,3,0,3,58,17.2,0,59.1,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,1,0,59.1,8.692225,1.098612,3.638532,1 +13,5,0,1,3,525267,0,5955.425,24.49692,0,9,1,0,0,0,0,0,0,0,0,0,0,0,3,58,17.2,0,59.1,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,1,0,59.1,8.692225,1.098612,,0 +13,5,0,1,4,525267,0,5955.425,25.49692,0,9,1,0,2.277904,0,0,0,2.277904,0,0,0,0,0,3,58,17.2,0,59.1,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,1,0,59.1,8.692225,1.098612,.8232558,1 +13,5,0,1,5,525267,0,5955.425,26.49692,0,9,1,59.68858,0,0,0,0,59.68858,0,0,0,2,0,3,58,17.2,0,59.1,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,1,0,59.1,8.692225,1.098612,4.089141,1 +13,5,0,1,1,525268,0,5955.425,18.54346,1,9,1,0,0,0,0,0,0,0,0,0,0,0,3,58,3.4,0,60.2,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,1,0,60.2,8.692225,1.098612,,0 +13,5,0,1,2,525268,0,5955.425,19.54346,1,9,1,18.44168,11.96865,0,0,0,30.41033,0,0,0,2,0,3,58,3.4,0,60.2,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,1,0,60.2,8.692225,1.098612,3.414782,1 +13,5,0,1,3,525268,0,5955.425,20.54346,1,9,1,0,0,0,0,0,0,0,0,0,0,0,3,58,3.4,0,60.2,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,1,0,60.2,8.692225,1.098612,,0 +13,5,0,1,4,525268,0,5955.425,21.54346,1,9,1,52.69552,0,0,0,0,52.69552,0,0,0,4,0,3,58,3.4,0,60.2,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,1,0,60.2,8.692225,1.098612,3.96453,1 +13,5,0,1,5,525268,0,5955.425,22.54346,1,9,1,14.18685,1.089965,0,0,849.827,865.1038,1,0,0,0,0,3,58,3.4,0,60.2,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,1,0,60.2,8.692225,1.098612,6.762849,1 +13,5,0,1,1,525269,0,5955.425,2.565366,1,9,1,0,0,0,0,0,0,0,0,0,0,0,3,77.40034,10.57626,0,59.3,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,1,0,0,59.3,8.692225,1.098612,,0 +13,5,0,1,2,525269,0,5955.425,3.565366,1,9,1,0,0,0,0,0,0,0,0,0,0,0,3,77.40034,10.57626,0,59.3,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,1,0,0,59.3,8.692225,1.098612,,0 +13,5,0,1,3,525269,0,5955.425,4.565366,1,9,1,0,0,0,0,0,0,0,0,0,0,0,3,77.40034,10.57626,0,59.3,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,1,0,0,59.3,8.692225,1.098612,,0 +13,5,0,1,4,525269,0,5955.425,5.565366,1,9,1,5.31511,0,0,0,0,5.31511,0,0,0,1,0,3,77.40034,10.57626,0,59.3,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,1,0,0,59.3,8.692225,1.098612,1.670554,1 +13,5,0,1,5,525269,0,5955.425,6.565366,1,9,1,0,0,0,0,0,0,0,0,0,0,0,3,77.40034,10.57626,0,59.3,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,1,0,0,59.3,8.692225,1.098612,,0 +13,5,0,1,1,525291,0,6674.895,24,1,13,1,68.78418,0,0,0,0,68.78418,0,0,0,4,0,1,87.2,10.3,0,72.7,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,72.7,8.806258,0,4.230974,1 +13,5,0,1,2,525291,0,6674.895,25,1,13,1,18.88931,0,0,0,0,18.88931,0,0,0,2,0,1,87.2,10.3,0,72.7,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,72.7,8.806258,0,2.938596,1 +13,5,0,1,3,525291,0,6674.895,26,1,13,1,62.6072,7.732419,0,0,0,70.33962,0,0,0,5,0,1,87.2,10.3,0,72.7,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,72.7,8.806258,0,4.253335,1 +11,5,0,1,1,525332,0,155.4252,5.070499,0,4,1,0,0,0,0,0,0,0,0,0,0,0,4,85,10.57626,0,77.8,0,0,1,0,1.386294,0,0,0,0,1,0,0,77.8,5.052578,1.386294,,0 +11,5,0,1,2,525332,0,155.4252,6.070499,0,4,1,57.86076,3.112033,0,0,0,60.9728,0,0,0,1,0,4,85,10.57626,0,77.8,0,0,1,0,1.386294,0,0,0,0,1,0,0,77.8,5.052578,1.386294,4.110428,1 +11,5,0,1,3,525332,0,155.4252,7.070499,0,4,1,6.347863,1.015658,0,0,0,7.363521,0,0,0,1,0,4,85,10.57626,0,77.8,0,0,1,0,1.386294,0,0,0,0,1,0,0,77.8,5.052578,1.386294,1.996538,1 +11,5,0,1,4,525332,0,155.4252,8.070499,0,4,1,23.44343,1.886864,0,0,0,25.3303,0,0,0,1,0,4,85,10.57626,0,77.8,0,0,1,0,1.386294,0,0,0,0,1,0,0,77.8,5.052578,1.386294,3.232001,1 +11,5,0,1,5,525332,0,155.4252,9.070499,0,4,1,8.650519,0,23.87543,0,0,32.52595,0,0,0,0,1,4,85,10.57626,0,77.8,0,0,1,0,1.386294,0,0,0,0,1,0,0,77.8,5.052578,1.386294,3.482038,1 +11,5,0,1,1,525333,0,155.4252,17.0705,1,4,1,0,0,0,0,0,0,0,0,0,0,0,4,77.1,3.4,0,71.6,0,0,1,1,1.386294,0,0,0,0,1,0,0,71.6,5.052578,1.386294,,0 +11,5,0,1,2,525333,0,155.4252,18.0705,1,4,1,25.56478,0,0,0,0,25.56478,0,0,0,0,0,4,77.1,3.4,0,71.6,0,0,0,0,1.386294,0,0,0,0,1,0,0,71.6,5.052578,1.386294,3.241215,1 +11,5,0,1,3,525333,0,155.4252,19.0705,1,4,1,35.86543,4.528142,0,0,0,40.39357,0,0,0,0,1,4,77.1,3.4,0,71.6,0,0,0,0,1.386294,0,0,0,0,1,0,0,71.6,5.052578,1.386294,3.698671,1 +11,5,0,1,4,525333,0,155.4252,20.0705,1,4,1,66.05923,10.51632,0,0,0,76.57555,0,0,0,6,0,4,77.1,3.4,0,71.6,0,0,0,0,1.386294,0,0,0,0,1,0,0,71.6,5.052578,1.386294,4.338278,1 +11,5,0,1,5,525333,0,155.4252,21.0705,1,4,1,0,0,0,0,0,0,0,0,0,0,0,4,77.1,3.4,0,71.6,0,0,0,0,1.386294,0,0,0,0,1,0,0,71.6,5.052578,1.386294,,0 +11,5,0,1,1,525334,0,155.4252,7.734428,0,4,1,0,0,0,0,0,0,0,0,0,0,0,4,88.3,10.57626,0,88.9,0,0,1,0,1.386294,0,0,0,0,1,0,0,88.9,5.052578,1.386294,,0 +11,5,0,1,2,525334,0,155.4252,8.734428,0,4,1,0,0,0,0,0,0,0,0,0,0,0,4,88.3,10.57626,0,88.9,0,0,1,0,1.386294,0,0,0,0,1,0,0,88.9,5.052578,1.386294,,0 +11,5,0,1,3,525334,0,155.4252,9.734428,0,4,1,0,0,0,0,0,0,0,0,0,0,0,4,88.3,10.57626,0,88.9,0,0,1,0,1.386294,0,0,0,0,1,0,0,88.9,5.052578,1.386294,,0 +11,5,0,1,4,525334,0,155.4252,10.73443,0,4,1,25.24677,3.018223,0,0,0,28.265,0,0,0,3,0,4,88.3,10.57626,0,88.9,0,0,1,0,1.386294,0,0,0,0,1,0,0,88.9,5.052578,1.386294,3.341624,1 +11,5,0,1,5,525334,0,155.4252,11.73443,0,4,1,19.03114,5.17301,23.87543,0,0,48.07959,0,0,0,0,1,4,88.3,10.57626,0,88.9,0,0,1,0,1.386294,0,0,0,0,1,0,0,88.9,5.052578,1.386294,3.872858,1 +11,5,0,1,1,525335,0,155.4252,38.59822,1,4,1,0,0,37.86534,0,0,37.86534,0,0,0,0,0,4,64.9,24.1,0,62.5,0,0,0,0,1.386294,0,0,0,0,0,1,0,62.5,5.052578,1.386294,3.634036,1 +11,5,0,1,2,525335,0,155.4252,39.59822,1,4,1,69.00876,37.2107,29.05947,0,0,135.2789,0,0,0,2,4,4,64.9,24.1,0,62.5,0,0,0,0,1.386294,0,0,0,0,0,1,0,62.5,5.052578,1.386294,4.907339,1 +11,5,0,1,3,525335,0,155.4252,40.59822,1,4,1,105.0783,47.19001,13.05967,0,0,165.328,0,0,0,8,4,4,64.9,24.1,0,62.5,0,0,0,0,1.386294,0,0,0,0,0,1,0,62.5,5.052578,1.386294,5.107931,1 +11,5,0,1,4,525335,0,155.4252,41.59822,1,4,1,258.656,50.44799,41.65528,0,0,350.7593,0,0,0,12,0,4,64.9,24.1,0,62.5,0,0,0,0,1.386294,0,0,0,0,0,1,0,62.5,5.052578,1.386294,5.8601,1 +11,5,0,1,5,525335,0,155.4252,42.59822,1,4,1,215.5709,141.8166,59.29412,0,448.7889,865.4706,1,0,0,16,0,4,64.9,24.1,0,62.5,0,0,0,0,1.386294,0,0,0,0,0,1,0,62.5,5.052578,1.386294,6.763273,1 +11,5,0,1,1,525336,1,1399.413,1.938398,1,10,1,26.05985,0,0,0,0,26.05985,0,0,0,0,0,2,77.40034,10.57626,0,85.2,0,0,1,1,.6931472,0,0,0,0,0,0,0,85.2,7.244523,.6931472,3.260396,1 +11,5,0,1,2,525336,1,1399.413,2.938398,1,10,1,48.01752,4.61042,0,0,0,52.62794,0,0,0,0,2,2,77.40034,10.57626,0,85.2,0,0,1,1,.6931472,0,0,0,0,0,0,0,85.2,7.244523,.6931472,3.963247,1 +11,5,0,1,3,525336,1,1399.413,3.938398,1,10,1,65.55226,8.26915,0,0,0,73.82141,0,0,0,3,4,2,77.40034,10.57626,0,85.2,0,0,1,1,.6931472,0,0,0,0,0,0,0,85.2,7.244523,.6931472,4.301649,1 +11,5,0,1,4,525336,1,1399.413,4.938398,1,10,1,48.21564,6.833713,0,0,0,55.04935,0,0,0,3,0,2,77.40034,10.57626,0,85.2,0,0,1,1,.6931472,0,0,0,0,0,0,0,85.2,7.244523,.6931472,4.00823,1 +11,5,0,1,5,525336,1,1399.413,5.938398,1,10,1,13.14879,4.134948,0,0,0,17.28374,0,0,0,1,1,2,77.40034,10.57626,0,85.2,0,0,1,1,.6931472,0,0,0,0,0,0,0,85.2,7.244523,.6931472,2.849766,1 +11,5,0,1,1,525337,1,1399.413,22.2998,1,10,1,0,12.50873,0,0,0,12.50873,0,0,0,0,0,2,58,10.3,0,62.5,0,0,0,0,.6931472,0,0,0,0,1,0,0,62.5,7.244523,.6931472,2.526427,1 +11,5,0,1,2,525337,1,1399.413,23.2998,1,10,1,56.70816,30.24896,23.97418,0,0,110.9313,0,0,0,2,2,2,58,10.3,0,62.5,0,0,0,0,.6931472,0,0,0,0,1,0,0,62.5,7.244523,.6931472,4.708911,1 +11,5,0,1,3,525337,1,1399.413,24.2998,1,10,1,17.45662,11.78587,0,0,0,29.24249,0,0,0,1,0,2,58,10.3,0,62.5,0,0,0,0,.6931472,0,0,0,0,1,0,0,62.5,7.244523,.6931472,3.375623,1 +11,5,0,1,4,525337,1,1399.413,25.2998,1,10,1,57.9347,33.44723,26.1959,0,0,117.5778,0,0,0,3,1,2,58,10.3,0,62.5,0,0,0,0,.6931472,0,0,0,0,1,0,0,62.5,7.244523,.6931472,4.7671,1 +11,5,0,1,5,525337,1,1399.413,26.2998,1,10,1,114.0138,19.15225,14.53287,0,0,147.699,0,0,0,7,1,2,58,10.3,0,62.5,0,0,0,0,.6931472,0,0,0,0,1,0,0,62.5,7.244523,.6931472,4.995176,1 +11,5,0,1,1,525352,1,1829.912,52.0219,1,7,1,0,0,0,0,0,0,0,0,0,0,0,1,86.7,13.8,0,73.9,0,0,0,0,0,0,0,0,0,1,0,0,73.9,7.512569,0,,0 +11,5,0,1,2,525352,1,1829.912,53.0219,1,7,1,0,0,0,0,0,0,0,0,0,0,0,1,86.7,13.8,0,73.9,0,0,0,0,0,0,0,0,0,1,0,0,73.9,7.512569,0,,0 +11,5,0,1,3,525352,1,1829.912,54.0219,1,7,1,27.34539,0,30.71098,0,0,58.05637,0,0,0,0,3,1,86.7,13.8,0,73.9,0,0,0,0,0,0,0,0,0,1,0,0,73.9,7.512569,0,4.061415,1 +11,5,0,1,4,525352,1,1829.912,55.0219,1,7,1,7.555724,0,0,0,0,7.555724,0,0,0,0,1,1,86.7,13.8,0,73.9,0,0,0,0,0,0,0,0,0,1,0,0,73.9,7.512569,0,2.022305,1 +11,5,0,1,5,525352,1,1829.912,56.0219,1,7,1,0,0,0,0,0,0,0,0,0,0,0,1,86.7,13.8,0,73.9,0,0,0,0,0,0,0,0,0,1,0,0,73.9,7.512569,0,,0 +11,5,0,1,1,525374,1,8918.475,21.7796,1,12,1,0,1.977205,0,0,0,1.977205,0,0,0,0,0,5,86.2,3.4,0,94.3,0,391.56,0,0,1.609438,5.970139,0,0,0,0,0,0,94.3,9.095992,1.609438,.6816843,1 +11,5,0,1,2,525374,1,8918.475,22.7796,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,86.2,3.4,0,94.3,0,391.56,0,0,1.609438,5.970139,0,0,0,0,0,0,94.3,9.095992,1.609438,,0 +11,5,0,1,3,525374,1,8918.475,23.7796,1,12,1,8.834665,4.627682,0,0,0,13.46235,0,0,0,1,0,5,86.2,3.4,0,94.3,0,391.56,0,0,1.609438,5.970139,0,0,0,0,0,0,94.3,9.095992,1.609438,2.599897,1 +11,5,0,1,4,525374,1,8918.475,24.7796,1,12,1,11.33358,0,0,0,0,11.33358,0,0,0,1,0,5,86.2,3.4,0,94.3,0,391.56,0,0,1.609438,5.970139,0,0,0,0,0,0,94.3,9.095992,1.609438,2.42777,1 +11,5,0,1,5,525374,1,8918.475,25.7796,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,86.2,3.4,0,94.3,0,391.56,0,0,1.609438,5.970139,0,0,0,0,0,0,94.3,9.095992,1.609438,,0 +11,5,0,1,1,525375,1,8918.475,30.59274,0,11,1,0,0,0,0,0,0,0,0,0,0,0,5,58,0,0,54.5,0,391.56,0,0,1.609438,5.970139,0,0,0,1,0,0,54.5,9.095992,1.609438,,0 +11,5,0,1,2,525375,1,8918.475,31.59274,0,11,1,0,0,0,0,0,0,0,0,0,0,0,5,58,0,0,54.5,0,391.56,0,0,1.609438,5.970139,0,0,0,1,0,0,54.5,9.095992,1.609438,,0 +11,5,0,1,3,525375,1,8918.475,32.59274,0,11,1,0,0,0,0,0,0,0,0,0,0,0,5,58,0,0,54.5,0,391.56,0,0,1.609438,5.970139,0,0,0,1,0,0,54.5,9.095992,1.609438,,0 +11,5,0,1,4,525375,1,8918.475,33.59274,0,11,1,0,0,0,0,0,0,0,0,0,0,0,5,58,0,0,54.5,0,391.56,0,0,1.609438,5.970139,0,0,0,1,0,0,54.5,9.095992,1.609438,,0 +11,5,0,1,5,525375,1,8918.475,34.59274,0,11,1,0,0,0,0,0,0,0,0,0,0,0,5,58,0,0,54.5,0,391.56,0,0,1.609438,5.970139,0,0,0,1,0,0,54.5,9.095992,1.609438,,0 +11,5,0,1,1,525376,1,8918.475,2.800821,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,70.4,0,391.56,1,1,1.609438,5.970139,0,0,0,0,0,0,70.4,9.095992,1.609438,,0 +11,5,0,1,2,525376,1,8918.475,3.800821,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,70.4,0,391.56,1,1,1.609438,5.970139,0,0,0,0,0,0,70.4,9.095992,1.609438,,0 +11,5,0,1,3,525376,1,8918.475,4.800821,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,70.4,0,391.56,1,1,1.609438,5.970139,0,0,0,0,0,0,70.4,9.095992,1.609438,,0 +11,5,0,1,4,525376,1,8918.475,5.800821,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,70.4,0,391.56,1,1,1.609438,5.970139,0,0,0,0,0,0,70.4,9.095992,1.609438,,0 +11,5,0,1,5,525376,1,8918.475,6.800821,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,70.4,0,391.56,1,1,1.609438,5.970139,0,0,0,0,0,0,70.4,9.095992,1.609438,,0 +11,5,0,1,1,525377,1,8918.475,7.167693,1,12,1,9.415262,0,0,0,0,9.415262,0,0,0,1,0,5,83.3,10.57626,0,85.2,0,391.56,1,1,1.609438,5.970139,0,0,0,1,0,0,85.2,9.095992,1.609438,2.242332,1 +11,5,0,1,2,525377,1,8918.475,8.167693,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,83.3,10.57626,0,85.2,0,391.56,1,1,1.609438,5.970139,0,0,0,1,0,0,85.2,9.095992,1.609438,,0 +11,5,0,1,3,525377,1,8918.475,9.167693,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,83.3,10.57626,0,85.2,0,391.56,1,1,1.609438,5.970139,0,0,0,1,0,0,85.2,9.095992,1.609438,,0 +11,5,0,1,4,525377,1,8918.475,10.16769,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,83.3,10.57626,0,85.2,0,391.56,1,1,1.609438,5.970139,0,0,0,1,0,0,85.2,9.095992,1.609438,,0 +11,5,0,1,5,525377,1,8918.475,11.16769,1,12,1,8.576329,2.003431,23.10806,0,0,33.68782,0,0,0,0,1,5,83.3,10.57626,0,85.2,0,391.56,1,1,1.609438,5.970139,0,0,0,1,0,0,85.2,9.095992,1.609438,3.517136,1 +11,5,0,1,1,525378,1,8918.475,5.998631,0,12,1,30.62438,0,0,0,0,30.62438,0,0,0,0,0,5,95,10.57626,0,85.2,0,391.56,1,0,1.609438,5.970139,0,0,0,1,0,0,85.2,9.095992,1.609438,3.421796,1 +11,5,0,1,2,525378,1,8918.475,6.998631,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,95,10.57626,0,85.2,0,391.56,1,0,1.609438,5.970139,0,0,0,1,0,0,85.2,9.095992,1.609438,,0 +11,5,0,1,3,525378,1,8918.475,7.998631,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,95,10.57626,0,85.2,0,391.56,1,0,1.609438,5.970139,0,0,0,1,0,0,85.2,9.095992,1.609438,,0 +11,5,0,1,4,525378,1,8918.475,8.998631,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,95,10.57626,0,85.2,0,391.56,1,0,1.609438,5.970139,0,0,0,1,0,0,85.2,9.095992,1.609438,,0 +11,5,0,1,5,525378,1,8918.475,9.998631,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,95,10.57626,0,85.2,0,391.56,1,0,1.609438,5.970139,0,0,0,1,0,0,85.2,9.095992,1.609438,,0 +13,5,0,0,1,525380,0,9984.639,54.51609,1,16,1,65.59458,13.92298,41.81126,0,0,121.3288,0,0,0,5,0,2,75.5,20.7,0,73.9,450,450,0,0,.6931472,6.109248,1,4.564348,6.160541,0,0,0,73.9,9.208903,.6931472,4.798504,1 +13,5,0,0,2,525380,0,9984.639,55.51609,1,16,1,20.88079,0,0,0,0,20.88079,0,0,0,3,0,2,75.5,20.7,0,73.9,450,450,0,0,.6931472,6.109248,1,4.564348,6.160541,0,0,0,73.9,9.208903,.6931472,3.03883,1 +13,5,0,0,3,525380,0,9984.639,56.51609,1,16,1,36.6782,14.70588,0,0,0,51.38408,0,0,0,3,0,2,75.5,20.7,0,73.9,450,450,0,0,.6931472,6.109248,1,4.564348,6.160541,0,0,0,73.9,9.208903,.6931472,3.939328,1 +13,5,0,0,1,525382,0,9984.639,52.30664,0,12,1,97.54549,0,40.4909,0,0,138.0364,0,0,0,4,0,2,93.1,13.8,0,96.6,450,450,0,0,.6931472,6.109248,1,4.564348,6.160541,0,0,0,96.6,9.208903,.6931472,4.927517,1 +13,5,0,0,2,525382,0,9984.639,53.30664,0,12,1,52.3918,0,0,0,0,52.3918,0,0,0,1,0,2,93.1,13.8,0,96.6,450,450,0,0,.6931472,6.109248,1,4.564348,6.160541,0,0,0,96.6,9.208903,.6931472,3.95875,1 +13,5,0,0,3,525382,0,9984.639,54.30664,0,12,1,51.90311,0,45.69896,0,0,97.60207,0,0,0,4,0,2,93.1,13.8,0,96.6,450,450,0,0,.6931472,6.109248,1,4.564348,6.160541,0,0,0,96.6,9.208903,.6931472,4.580899,1 +11,5,0,1,1,525384,0,7808.798,30.84736,1,12,1,52.03172,28.05748,25.76809,0,0,105.8573,0,0,0,5,1,4,78.2,3.4,0,72.7,0,513.24,0,0,1.386294,6.240744,0,0,0,1,0,0,72.7,8.963135,1.386294,4.662092,1 +11,5,0,1,2,525384,0,7808.798,31.84736,1,12,1,57.36576,30.52777,0,0,0,87.89353,0,0,0,7,1,4,78.2,3.4,0,72.7,0,513.24,0,0,1.386294,6.240744,0,0,0,1,0,0,72.7,8.963135,1.386294,4.476126,1 +11,5,0,1,3,525384,0,7808.798,32.84737,1,12,1,57.21498,5.098864,25.6626,0,0,87.97644,0,0,0,4,1,4,78.2,3.4,0,72.7,0,513.24,0,0,1.386294,6.240744,0,0,0,1,0,0,72.7,8.963135,1.386294,4.477069,1 +11,5,0,1,4,525384,0,7808.798,33.84737,1,12,1,5.666792,0,0,0,0,5.666792,0,0,0,1,0,4,78.2,3.4,0,72.7,0,513.24,0,0,1.386294,6.240744,0,0,0,1,0,0,72.7,8.963135,1.386294,1.734623,1 +11,5,0,1,5,525384,0,7808.798,34.84737,1,12,1,19.55403,0,22.98456,0,0,42.53859,0,0,0,1,1,4,78.2,3.4,0,72.7,0,513.24,0,0,1.386294,6.240744,0,0,0,1,0,0,72.7,8.963135,1.386294,3.750412,1 +11,5,0,1,1,525385,0,7808.798,5.262149,1,12,1,75.3221,14.59366,0,0,0,89.91576,0,0,0,11,1,4,98.3,10.57626,0,92.6,0,513.24,1,1,1.386294,6.240744,0,0,0,1,0,0,92.6,8.963135,1.386294,4.498873,1 +11,5,0,1,2,525385,0,7808.798,6.262149,1,12,1,98.21019,29.91739,22.94631,0,0,151.0739,0,0,0,15,1,4,98.3,10.57626,0,92.6,0,513.24,1,1,1.386294,6.240744,0,0,0,1,0,0,92.6,8.963135,1.386294,5.017769,1 +11,5,0,1,3,525385,0,7808.798,7.262149,1,12,1,49.64241,12.51578,10.93816,0,0,73.09634,0,0,0,6,1,4,98.3,10.57626,0,92.6,0,513.24,1,1,1.386294,6.240744,0,0,0,1,0,0,92.6,8.963135,1.386294,4.291778,1 +11,5,0,1,4,525385,0,7808.798,8.262149,1,12,1,28.71175,2.11938,0,0,0,30.83113,0,0,0,2,1,4,98.3,10.57626,0,92.6,0,513.24,1,1,1.386294,6.240744,0,0,0,1,0,0,92.6,8.963135,1.386294,3.428525,1 +11,5,0,1,5,525385,0,7808.798,9.262149,1,12,1,29.15952,0,19.89708,0,0,49.0566,0,0,0,2,1,4,98.3,10.57626,0,92.6,0,513.24,1,1,1.386294,6.240744,0,0,0,1,0,0,92.6,8.963135,1.386294,3.892975,1 +11,5,0,1,1,525386,0,7808.798,8.424367,1,12,1,187.8097,20.62934,36.66997,0,0,245.109,0,0,0,13,1,4,53.3,10.57626,0,37,0,513.24,1,1,1.386294,6.240744,0,0,0,1,0,0,37,8.963135,1.386294,5.501703,1 +11,5,0,1,2,525386,0,7808.798,9.424367,1,12,1,109.2244,19.34373,0,0,0,128.5681,0,0,0,17,1,4,53.3,10.57626,0,37,0,513.24,1,1,1.386294,6.240744,0,0,0,1,0,0,37,8.963135,1.386294,4.856459,1 +11,5,0,1,3,525386,0,7808.798,10.42437,1,12,1,92.97433,24.29533,36.60076,0,0,153.8704,0,0,0,10,2,4,53.3,10.57626,0,37,0,513.24,1,1,1.386294,6.240744,0,0,0,1,0,0,37,8.963135,1.386294,5.036111,1 +11,5,0,1,4,525386,0,7808.798,11.42437,1,12,1,125.0472,77.26483,10.57801,0,0,212.8901,0,0,0,13,1,4,53.3,10.57626,0,37,0,513.24,1,1,1.386294,6.240744,0,0,0,1,0,0,37,8.963135,1.386294,5.360776,1 +11,5,0,1,5,525386,0,7808.798,12.42437,1,12,1,72.72727,70.1681,23.32762,0,0,166.223,0,0,0,11,1,4,53.3,10.57626,0,37,0,513.24,1,1,1.386294,6.240744,0,0,0,1,0,0,37,8.963135,1.386294,5.11333,1 +11,5,0,1,1,525387,0,7808.798,36.11773,0,12,1,49.55401,32.21011,0,0,0,81.76412,0,0,0,5,1,4,66,3.4,0,61.4,0,513.24,0,0,1.386294,6.240744,0,0,0,1,0,0,61.4,8.963135,1.386294,4.403839,1 +11,5,0,1,2,525387,0,7808.798,37.11773,0,12,1,58.28362,52.46443,0,0,0,110.748,0,0,0,7,1,4,66,3.4,0,61.4,0,513.24,0,0,1.386294,6.240744,0,0,0,1,0,0,61.4,8.963135,1.386294,4.707258,1 +11,5,0,1,3,525387,0,7808.798,38.11773,0,12,1,46.69752,70.03365,31.97308,0,0,148.7043,0,0,0,5,1,4,66,3.4,0,61.4,0,513.24,0,0,1.386294,6.240744,0,0,0,1,0,0,61.4,8.963135,1.386294,5.001959,1 +11,5,0,1,4,525387,0,7808.798,39.11773,0,12,1,34.00076,120.6611,0,0,0,154.6619,0,0,0,4,0,4,66,3.4,0,61.4,0,513.24,0,0,1.386294,6.240744,0,0,0,1,0,0,61.4,8.963135,1.386294,5.041241,1 +11,5,0,1,5,525387,0,7808.798,40.11773,0,12,1,19.89708,122.4185,0,0,0,142.3156,0,0,0,3,0,4,66,3.4,0,61.4,0,513.24,0,0,1.386294,6.240744,0,0,0,1,0,0,61.4,8.963135,1.386294,4.958047,1 +13,5,0,0,1,525392,0,4632.873,59.6167,1,4,1,83.15701,47.00804,39.77994,0,1119.975,1289.92,1,0,0,7,1,2,73.4,13.8,0,58,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,58,8.441148,.6931472,7.162335,1 +13,5,0,0,2,525392,0,4632.873,60.6167,1,4,1,157.5551,84.62035,24.29765,0,666.287,932.7601,1,0,0,9,1,2,73.4,13.8,0,58,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,58,8.441148,.6931472,6.838148,1 +13,5,0,0,3,525392,0,4632.873,61.6167,1,4,1,350.0865,68.03114,36.33218,0,0,454.4498,0,0,0,11,3,2,73.4,13.8,0,58,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,58,8.441148,.6931472,6.119088,1 +13,5,0,0,1,525394,0,4632.873,61.36619,0,1,1,23.2755,5.450698,30.89293,0,0,59.61913,0,0,0,1,1,2,84.6,3.4,0,54.5,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,54.5,8.441148,.6931472,4.087976,1 +13,5,0,0,2,525394,0,4632.873,62.36619,0,1,1,51.25285,19.33941,0,0,0,70.59225,0,0,0,2,0,2,84.6,3.4,0,54.5,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,54.5,8.441148,.6931472,4.25692,1 +13,5,0,0,3,525394,0,4632.873,63.36619,0,1,1,0,0,0,0,0,0,0,0,0,0,0,2,84.6,3.4,0,54.5,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,54.5,8.441148,.6931472,,0 +13,5,0,0,1,525400,1,460.8295,52.43258,0,11,1,0,0,0,0,0,0,0,0,0,0,0,1,86.7,3.4,0,72.6,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,72.6,6.135196,0,,0 +13,5,0,0,2,525400,1,460.8295,53.43258,0,11,1,0,0,0,0,0,0,0,0,0,0,0,1,86.7,3.4,0,72.6,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,72.6,6.135196,0,,0 +13,5,0,0,3,525400,1,460.8295,54.43258,0,11,1,0,0,0,0,0,0,0,0,0,0,0,1,86.7,3.4,0,72.6,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,72.6,6.135196,0,,0 +5,5,25,0,1,525405,1,5774.706,3.578371,1,12,1,58.3157,0,0,0,808.7177,867.0334,1,0,0,0,0,5,77.40034,10.57626,0,88.9,80.25,646.36,1,1,1.609438,6.471356,0,3.258096,5.771441,1,0,0,88.9,8.661416,1.609438,6.765078,1 +5,5,25,0,2,525405,1,5774.706,4.578371,1,12,1,7.593014,0,0,0,0,7.593014,0,0,0,0,0,5,77.40034,10.57626,0,88.9,80.25,646.36,1,1,1.609438,6.471356,0,3.258096,5.771441,1,0,0,88.9,8.661416,1.609438,2.027229,1 +5,5,25,0,3,525405,1,5774.706,5.578371,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,88.9,80.25,646.36,1,1,1.609438,6.471356,0,3.258096,5.771441,1,0,0,88.9,8.661416,1.609438,,0 +5,5,25,0,1,525406,1,5774.706,28.00548,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,81.4,0,0,81.8,80.25,646.36,0,0,1.609438,6.471356,0,3.258096,5.771441,0,1,0,81.8,8.661416,1.609438,,0 +5,5,25,0,2,525406,1,5774.706,29.00548,0,12,1,3.796507,0,0,0,0,3.796507,0,0,0,1,0,5,81.4,0,0,81.8,80.25,646.36,0,0,1.609438,6.471356,0,3.258096,5.771441,0,1,0,81.8,8.661416,1.609438,1.334081,1 +5,5,25,0,3,525406,1,5774.706,30.00548,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,81.4,0,0,81.8,80.25,646.36,0,0,1.609438,6.471356,0,3.258096,5.771441,0,1,0,81.8,8.661416,1.609438,,0 +5,5,25,0,1,525407,1,5774.706,25.17728,1,12,1,11.00296,3.554803,0,0,0,14.55777,0,0,0,0,0,5,77.7,3.4,0,69.3,80.25,646.36,0,0,1.609438,6.471356,0,3.258096,5.771441,1,0,0,69.3,8.661416,1.609438,2.678125,1 +5,5,25,0,2,525407,1,5774.706,26.17728,1,12,1,0,0,0,0,326.4996,326.4996,1,0,0,0,0,5,77.7,3.4,0,69.3,80.25,646.36,0,0,1.609438,6.471356,0,3.258096,5.771441,1,0,0,69.3,8.661416,1.609438,5.788429,1 +5,5,25,0,3,525407,1,5774.706,27.17728,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,77.7,3.4,0,69.3,80.25,646.36,0,0,1.609438,6.471356,0,3.258096,5.771441,1,0,0,69.3,8.661416,1.609438,,0 +5,5,25,0,1,525408,1,5774.706,5.812457,1,12,1,15.42531,0,0,0,0,15.42531,0,0,0,0,0,5,86.7,10.57626,0,88.9,80.25,646.36,1,1,1.609438,6.471356,0,3.258096,5.771441,1,0,0,88.9,8.661416,1.609438,2.73601,1 +5,5,25,0,2,525408,1,5774.706,6.812457,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,86.7,10.57626,0,88.9,80.25,646.36,1,1,1.609438,6.471356,0,3.258096,5.771441,1,0,0,88.9,8.661416,1.609438,,0 +5,5,25,0,3,525408,1,5774.706,7.812457,1,12,1,13.84083,0,0,0,0,13.84083,0,0,0,0,0,5,86.7,10.57626,0,88.9,80.25,646.36,1,1,1.609438,6.471356,0,3.258096,5.771441,1,0,0,88.9,8.661416,1.609438,2.627623,1 +13,5,0,0,1,525423,1,9648.745,16.99384,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,82.4,0,0,81.8,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,81.8,9.174686,1.791759,,0 +13,5,0,0,2,525423,1,9648.745,17.99384,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,82.4,0,0,81.8,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,81.8,9.174686,1.609438,,0 +13,5,0,0,3,525423,1,9648.745,18.99384,0,12,1,0,1.35506,0,0,0,1.35506,0,0,0,0,0,5,82.4,0,0,81.8,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,81.8,9.174686,1.609438,.3038457,1 +13,5,0,0,1,525424,1,9648.745,20.0794,1,10,1,0,0,0,0,0,0,0,0,0,0,0,6,93.1,3.4,0,76.1,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,76.1,9.174686,1.791759,,0 +13,5,0,0,2,525424,1,9648.745,21.0794,1,10,1,0,0,0,0,0,0,0,0,0,0,0,5,93.1,3.4,0,76.1,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,76.1,9.174686,1.609438,,0 +13,5,0,0,3,525424,1,9648.745,22.0794,1,10,1,0,7.025729,0,0,0,7.025729,0,0,0,0,0,5,93.1,3.4,0,76.1,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,76.1,9.174686,1.609438,1.949579,1 +13,5,0,0,1,525425,1,9648.745,13.80972,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,96.7,10.57626,.1442925,88.9,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,88.9,9.174686,1.791759,,0 +13,5,0,0,1,525426,1,9648.745,36.27926,1,12,1,6.310475,0,0,0,0,6.310475,0,0,0,0,0,6,77.40034,10.57626,.1442925,,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,70.68995,9.174686,1.791759,1.842211,1 +13,5,0,0,2,525426,1,9648.745,37.27926,1,12,1,3.777862,1.511145,0,0,812.9958,818.2849,1,0,0,1,0,5,77.40034,10.57626,.1442925,,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,70.68995,9.174686,1.609438,6.707211,1 +13,5,0,0,3,525426,1,9648.745,38.27926,1,12,1,0,4.082333,0,0,0,4.082333,0,0,0,0,0,5,77.40034,10.57626,.1442925,,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,70.68995,9.174686,1.609438,1.406669,1 +13,5,0,0,1,525427,1,9648.745,18.3436,0,10.96978,1,0,0,0,0,0,0,0,0,0,0,0,6,90.4,0,0,80.7,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,80.7,9.174686,1.791759,,0 +13,5,0,0,2,525427,1,9648.745,19.3436,0,10.96978,1,0,0,0,0,0,0,0,0,0,0,0,5,90.4,0,0,80.7,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,80.7,9.174686,1.609438,,0 +13,5,0,0,3,525427,1,9648.745,20.3436,0,10.96978,1,0,0,0,0,0,0,0,0,0,0,0,5,90.4,0,0,80.7,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,80.7,9.174686,1.609438,,0 +13,5,0,0,1,525428,1,9648.745,43.84121,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,94.1,6.9,0,80.7,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,80.7,9.174686,1.791759,,0 +13,5,0,0,2,525428,1,9648.745,44.84121,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,94.1,6.9,0,80.7,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,80.7,9.174686,1.609438,,0 +13,5,0,0,3,525428,1,9648.745,45.84121,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,94.1,6.9,0,80.7,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,80.7,9.174686,1.609438,,0 +13,5,0,0,1,525438,0,7237.583,30.45038,0,10,1,0,0,0,0,0,0,0,0,0,0,0,3,97.9,3.4,0,71.6,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,1,0,71.6,8.88718,1.098612,,0 +13,5,0,0,2,525438,0,7237.583,31.45038,0,10,1,0,0,0,0,0,0,0,0,0,0,0,3,97.9,3.4,0,71.6,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,1,0,71.6,8.88718,1.098612,,0 +13,5,0,0,3,525438,0,7237.583,32.45037,0,10,1,0,0,0,0,0,0,0,0,0,0,0,3,97.9,3.4,0,71.6,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,1,0,71.6,8.88718,1.098612,,0 +13,5,0,1,1,525439,0,7237.583,11.00616,0,9,1,0,0,0,0,0,0,0,0,0,0,0,3,100,10.57626,0,92.6,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,92.6,8.88718,1.098612,,0 +13,5,0,1,2,525439,0,7237.583,12.00616,0,9,1,0,0,0,0,0,0,0,0,0,0,0,3,100,10.57626,0,92.6,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,92.6,8.88718,1.098612,,0 +13,5,0,1,3,525439,0,7237.583,13.00616,0,9,1,0,0,0,0,0,0,0,0,0,0,0,3,100,10.57626,0,92.6,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,92.6,8.88718,1.098612,,0 +13,5,0,1,1,525440,0,7237.583,29.96852,1,9,1,0,5.469079,0,0,0,5.469079,0,0,0,0,0,3,96.3,3.4,0,77.4,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,77.4,8.88718,1.098612,1.69911,1 +13,5,0,1,2,525440,0,7237.583,30.96852,1,9,1,0,0,0,0,0,0,0,0,0,0,0,3,96.3,3.4,0,77.4,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,77.4,8.88718,1.098612,,0 +13,5,0,1,3,525440,0,7237.583,31.96852,1,9,1,0,0,0,0,0,0,0,0,0,0,0,3,96.3,3.4,0,77.4,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,77.4,8.88718,1.098612,,0 +11,5,0,1,1,525450,1,2597.03,55.11841,0,5,1,79.54062,24.18971,24.77244,0,0,128.5028,0,0,0,5,1,1,75.5,3.4,0,59.1,0,0,0,0,0,0,0,0,0,1,0,0,59.1,7.862509,0,4.85595,1 +11,5,0,1,2,525450,1,2597.03,56.11841,0,5,1,0,5.240458,30.96183,0,0,36.20229,0,0,0,0,0,1,75.5,3.4,0,59.1,0,0,0,0,0,0,0,0,0,1,0,0,59.1,7.862509,0,3.589122,1 +11,5,0,1,3,525450,1,2597.03,57.11841,0,5,1,64.80836,59.49477,35.8885,0,1167.944,1328.136,1,0,0,4,1,1,75.5,3.4,0,59.1,0,0,0,0,0,0,0,0,0,1,0,0,59.1,7.862509,0,7.191532,1 +14,5,95,1,1,525456,0,11896.19,7.411362,1,12,1,15.85728,2.913776,0,0,0,18.77106,0,0,0,1,1,4,86.7,10.57626,0,92.6,753.2,1173,1,1,1.386294,7.06732,0,4.564348,6.675624,0,0,0,92.6,9.384057,1.386294,2.932316,1 +14,5,95,1,2,525456,0,11896.19,8.411362,1,12,1,5.507113,0,0,0,0,5.507113,0,0,0,1,0,4,86.7,10.57626,0,92.6,753.2,1173,1,1,1.386294,7.06732,0,4.564348,6.675624,0,0,0,92.6,9.384057,1.386294,1.706041,1 +14,5,95,1,3,525456,0,11896.19,9.411362,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,86.7,10.57626,0,92.6,753.2,1173,1,1,1.386294,7.06732,0,4.564348,6.675624,0,0,0,92.6,9.384057,1.386294,,0 +14,5,95,1,4,525456,0,11896.19,10.41136,1,12,1,44.95655,16.87193,0,0,0,61.82848,0,0,0,5,0,5,86.7,10.57626,0,92.6,753.2,1173,1,1,1.609438,7.06732,0,4.564348,6.675624,0,0,0,92.6,9.384057,1.609438,4.124364,1 +14,5,95,1,5,525456,0,11896.19,11.41136,1,12,1,63.46484,30.64151,0,0,0,94.10635,0,0,0,8,0,5,86.7,10.57626,0,92.6,753.2,1173,1,1,1.609438,7.06732,0,4.564348,6.675624,0,0,0,92.6,9.384057,1.609438,4.544425,1 +14,5,95,1,1,525457,0,11896.19,29.6564,1,12,1,56.98712,23.15659,59.21704,0,0,139.3607,0,0,0,5,1,4,81.9,13.8,0,86.4,753.2,1173,0,0,1.386294,7.06732,0,4.564348,6.675624,0,0,0,86.4,9.384057,1.386294,4.937066,1 +14,5,95,1,2,525457,0,11896.19,30.6564,1,12,1,50.9408,50.13309,0,0,2255.14,2356.214,1,0,0,4,0,4,81.9,13.8,0,86.4,753.2,1173,0,0,1.386294,7.06732,0,4.564348,6.675624,0,0,0,86.4,9.384057,1.386294,7.764812,1 +14,5,95,1,3,525457,0,11896.19,31.6564,1,12,1,30.29028,36.41986,0,0,0,66.71014,0,0,0,4,0,4,81.9,13.8,0,86.4,753.2,1173,0,0,1.386294,7.06732,0,4.564348,6.675624,0,0,0,86.4,9.384057,1.386294,4.200357,1 +14,5,95,1,4,525457,0,11896.19,32.6564,1,12,1,114.0914,58.59086,41.06913,0,0,213.7514,0,0,0,6,0,5,81.9,13.8,0,86.4,753.2,1173,0,0,1.609438,7.06732,0,4.564348,6.675624,0,0,0,86.4,9.384057,1.609438,5.364814,1 +14,5,95,1,5,525457,0,11896.19,33.6564,1,12,1,41.16638,25.75986,0,0,0,66.92625,0,0,0,4,0,5,81.9,13.8,0,86.4,753.2,1173,0,0,1.609438,7.06732,0,4.564348,6.675624,0,0,0,86.4,9.384057,1.609438,4.203591,1 +14,5,95,1,1,525458,0,11896.19,33.04586,0,12,1,29.73241,6.243806,35.67889,0,0,71.65511,0,0,0,2,1,4,79.8,3.4,0,78.4,753.2,1173,0,0,1.386294,7.06732,0,4.564348,6.675624,0,0,0,78.4,9.384057,1.386294,4.271864,1 +14,5,95,1,2,525458,0,11896.19,34.04586,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,79.8,3.4,0,78.4,753.2,1173,0,0,1.386294,7.06732,0,4.564348,6.675624,0,0,0,78.4,9.384057,1.386294,,0 +14,5,95,1,3,525458,0,11896.19,35.04586,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,79.8,3.4,0,78.4,753.2,1173,0,0,1.386294,7.06732,0,4.564348,6.675624,0,0,0,78.4,9.384057,1.386294,,0 +14,5,95,1,4,525458,0,11896.19,36.04586,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,79.8,3.4,0,78.4,753.2,1173,0,0,1.609438,7.06732,0,4.564348,6.675624,0,0,0,78.4,9.384057,1.609438,,0 +14,5,95,1,5,525458,0,11896.19,37.04586,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,79.8,3.4,0,78.4,753.2,1173,0,0,1.609438,7.06732,0,4.564348,6.675624,0,0,0,78.4,9.384057,1.609438,,0 +14,5,95,1,1,525459,0,11896.19,.9965777,0,12,1,57.48265,21.98216,25.77304,0,0,105.2379,0,0,0,5,4,4,77.40034,10.57626,1,100,753.2,1173,1,0,1.386294,7.06732,0,4.564348,6.675624,0,0,0,100,9.384057,1.386294,4.656223,1 +14,5,95,1,2,525459,0,11896.19,1.996578,0,12,1,53.23543,18.80679,13.12529,0,0,85.16751,0,0,0,9,0,4,77.40034,10.57626,1,100,753.2,1173,1,0,1.386294,7.06732,0,4.564348,6.675624,0,0,0,100,9.384057,1.386294,4.44462,1 +14,5,95,1,3,525459,0,11896.19,2.996578,0,12,1,21.03492,13.64325,0,0,0,34.67817,0,0,0,3,0,4,77.40034,10.57626,1,100,753.2,1173,1,0,1.386294,7.06732,0,4.564348,6.675624,0,0,0,100,9.384057,1.386294,3.54611,1 +14,5,95,1,4,525459,0,11896.19,3.996578,0,12,1,39.28976,25.86324,0,0,287.3064,352.4594,1,0,0,4,0,5,77.40034,10.57626,1,100,753.2,1173,1,0,1.609438,7.06732,0,4.564348,6.675624,0,0,0,100,9.384057,1.609438,5.864935,1 +14,5,95,1,5,525459,0,11896.19,4.996578,0,12,1,20.24014,23.63979,0,0,0,43.87993,0,0,0,4,0,5,77.40034,10.57626,1,100,753.2,1173,1,0,1.609438,7.06732,0,4.564348,6.675624,0,0,0,100,9.384057,1.609438,3.781457,1 +10,5,50,1,1,525465,0,10283.87,25.1937,1,12,1,31.71457,25.51536,1.922696,0,1248.34,1307.493,2,0,0,1,0,2,89.9,3.4,0,93.2,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,0,0,0,93.2,9.238429,.6931472,7.175867,1 +10,5,50,1,2,525465,0,10283.87,26.1937,1,12,1,2.753557,17.4805,1.629188,0,1220.285,1242.148,1,0,0,0,0,2,89.9,3.4,0,93.2,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,0,0,0,93.2,9.238429,.6931472,7.124597,1 +10,5,50,1,3,525465,0,10283.87,27.1937,1,12,1,13.04165,15.80143,0,0,0,28.84308,0,0,0,1,0,3,89.9,3.4,0,93.2,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,93.2,9.238429,1.098612,3.36187,1 +10,5,50,1,4,525465,0,10283.87,28.1937,1,12,1,253.8723,10.68002,0,0,0,264.5523,0,0,0,5,0,3,89.9,3.4,0,93.2,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,93.2,9.238429,1.098612,5.578039,1 +10,5,50,1,5,525465,0,10283.87,29.1937,1,12,1,133.7736,11.24185,15.09434,0,0,160.1098,0,0,0,5,0,3,89.9,3.4,0,93.2,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,93.2,9.238429,1.098612,5.07586,1 +11,5,0,1,1,525477,0,7760.881,26.95688,1,13,1,8.463818,8.823529,0,0,0,17.28735,0,0,0,1,0,2,79.8,0,0,79.5,0,149.88,0,0,.6931472,5.009835,0,0,0,1,0,0,79.5,8.95698,.6931472,2.849975,1 +11,5,0,1,2,525477,0,7760.881,27.95688,1,13,1,17.08428,0,0,0,0,17.08428,0,0,0,2,0,2,79.8,0,0,79.5,0,149.88,0,0,.6931472,5.009835,0,0,0,1,0,0,79.5,8.95698,.6931472,2.838159,1 +11,5,0,1,3,525477,0,7760.881,28.95688,1,13,1,0,0,0,0,0,0,0,0,0,0,0,2,79.8,0,0,79.5,0,149.88,0,0,.6931472,5.009835,0,0,0,1,0,0,79.5,8.95698,.6931472,,0 +11,5,0,1,1,525478,0,7760.881,33.72758,0,12,1,0,0,0,84.63817,0,0,0,0,10,0,0,2,71.3,6.9,0,65.9,0,149.88,0,0,.6931472,5.009835,0,0,0,0,0,0,65.9,8.95698,.6931472,,0 +11,5,0,1,2,525478,0,7760.881,34.72758,0,12,1,0,0,0,119.9696,0,0,0,0,23,0,0,2,71.3,6.9,0,65.9,0,149.88,0,0,.6931472,5.009835,0,0,0,0,0,0,65.9,8.95698,.6931472,,0 +11,5,0,1,3,525478,0,7760.881,35.72758,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,71.3,6.9,0,65.9,0,149.88,0,0,.6931472,5.009835,0,0,0,0,0,0,65.9,8.95698,.6931472,,0 +11,5,0,1,1,525481,0,11275.99,11.16496,1,12,1,22.42912,.5755396,0,0,0,23.00466,0,0,0,2,0,5,90,10.57626,0,92.6,0,30,1,1,1.609438,3.401197,0,0,0,0,0,0,92.6,9.33052,1.609438,3.135697,1 +11,5,0,1,2,525481,0,11275.99,12.16496,1,12,1,22.01974,5.159453,0,0,0,27.1792,0,0,0,4,0,5,90,10.57626,0,92.6,0,30,1,1,1.609438,3.401197,0,0,0,0,0,0,92.6,9.33052,1.609438,3.302452,1 +11,5,0,1,3,525481,0,11275.99,13.16496,1,12,1,15.57093,5.577855,0,0,0,21.14879,0,0,0,2,0,5,90,10.57626,0,92.6,0,30,1,1,1.609438,3.401197,0,0,0,0,0,0,92.6,9.33052,1.609438,3.051583,1 +11,5,0,1,1,525482,0,11275.99,35.19233,1,12,1,66.44096,16.40288,0,0,0,82.84384,0,0,0,7,0,5,89.4,17.2,0,45.5,0,30,0,0,1.609438,3.401197,0,0,0,1,0,0,45.5,9.33052,1.609438,4.416957,1 +11,5,0,1,2,525482,0,11275.99,36.19233,1,12,1,25.4366,12.25133,0,0,0,37.68793,0,0,0,3,0,5,89.4,17.2,0,45.5,0,30,0,0,1.609438,3.401197,0,0,0,1,0,0,45.5,9.33052,1.609438,3.62934,1 +11,5,0,1,3,525482,0,11275.99,37.19233,1,12,1,15.57093,2.937716,0,0,0,18.50865,0,0,0,2,1,5,89.4,17.2,0,45.5,0,30,0,0,1.609438,3.401197,0,0,0,1,0,0,45.5,9.33052,1.609438,2.918238,1 +11,5,0,1,1,525483,0,11275.99,7.036276,1,12,1,35.54803,44.15574,0,0,0,79.70377,0,0,0,11,0,5,85,10.57626,0,51.9,0,30,1,1,1.609438,3.401197,0,0,0,1,0,0,51.9,9.33052,1.609438,4.378317,1 +11,5,0,1,2,525483,0,11275.99,8.036277,1,12,1,29.99241,26.32498,0,0,0,56.31739,0,0,0,14,0,5,85,10.57626,0,51.9,0,30,1,1,1.609438,3.401197,0,0,0,1,0,0,51.9,9.33052,1.609438,4.031003,1 +11,5,0,1,3,525483,0,11275.99,9.036277,1,12,1,9.688581,41.19031,0,0,0,50.87889,0,0,0,14,0,5,85,10.57626,0,51.9,0,30,1,1,1.609438,3.401197,0,0,0,1,0,0,51.9,9.33052,1.609438,3.929448,1 +11,5,0,1,1,525484,0,11275.99,36.50924,0,16,1,0,.5755396,0,0,0,.5755396,0,0,0,0,0,5,85.1,13.8,0,68.2,0,30,0,0,1.609438,3.401197,0,0,0,1,0,0,68.2,9.33052,1.609438,-.5524473,1 +11,5,0,1,2,525484,0,11275.99,37.50924,0,16,1,0,6.788155,0,0,0,6.788155,0,0,0,0,0,5,85.1,13.8,0,68.2,0,30,0,0,1.609438,3.401197,0,0,0,1,0,0,68.2,9.33052,1.609438,1.915179,1 +11,5,0,1,3,525484,0,11275.99,38.50924,0,16,1,12.45675,0,0,0,0,12.45675,0,0,0,1,0,5,85.1,13.8,0,68.2,0,30,0,0,1.609438,3.401197,0,0,0,1,0,0,68.2,9.33052,1.609438,2.522262,1 +11,5,0,1,1,525485,0,11275.99,15.68789,1,12,1,12.27254,3.072366,0,0,0,15.3449,0,0,0,2,0,5,43.1,3.4,0,78.4,0,30,1,1,1.609438,3.401197,0,0,0,0,0,0,78.4,9.33052,1.609438,2.730783,1 +11,5,0,1,2,525485,0,11275.99,16.68789,1,12,1,5.694761,1.890661,0,0,0,7.585422,0,0,0,1,0,5,43.1,3.4,0,78.4,0,30,1,1,1.609438,3.401197,0,0,0,0,0,0,78.4,9.33052,1.609438,2.026228,1 +11,5,0,1,3,525485,0,11275.99,17.68789,1,12,1,21.90311,2.404844,0,0,0,24.30796,0,0,0,2,0,5,43.1,3.4,0,78.4,0,30,1,1,1.609438,3.401197,0,0,0,0,0,0,78.4,9.33052,1.609438,3.190804,1 +16,5,95,0,1,525495,0,4410.138,60.14237,1,10,1,211.3838,23.88912,29.04782,0,1003.809,1268.13,2,0,0,13,0,1,86.2,24.1,0,88.6,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,0,0,0,88.6,8.391888,0,7.145298,1 +16,5,95,0,2,525495,0,4410.138,61.14237,1,10,1,435.4594,24.99241,0,0,0,460.4518,0,0,0,3,3,1,86.2,24.1,0,88.6,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,0,0,0,88.6,8.391888,0,6.132208,1 +16,5,95,0,3,525495,0,4410.138,62.14237,1,10,1,112.8028,46.06228,0,0,0,158.8651,0,0,0,9,0,1,86.2,24.1,0,88.6,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,0,0,0,88.6,8.391888,0,5.068055,1 +7,5,25,1,1,525500,0,17662.06,47.89596,0,14,1,48.16996,9.911654,12.95751,0,0,71.03912,0,0,0,4,0,3,66,17.2,0,67,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,67,9.779231,1.098612,4.263231,1 +7,5,25,1,2,525500,0,17662.06,48.89596,0,14,1,46.4677,16.35436,20.81602,0,0,83.63808,0,0,0,4,0,3,66,17.2,0,67,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,67,9.779231,1.098612,4.426499,1 +7,5,25,1,3,525500,0,17662.06,49.89596,0,14,1,96.39794,87.37907,0,0,0,183.777,0,0,0,8,0,3,66,17.2,0,67,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,67,9.779231,1.098612,5.213723,1 +7,5,25,1,1,525501,0,17662.06,47.70431,1,13,1,23.97981,1.750105,0,0,0,25.72991,0,0,0,2,0,3,89.9,27.6,1,69.3,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,69.3,9.779231,1.098612,3.247654,1 +7,5,25,1,2,525501,0,17662.06,48.70431,1,13,1,47.97884,0,42.21761,0,0,90.19645,0,0,0,3,0,3,89.9,27.6,1,69.3,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,69.3,9.779231,1.098612,4.50199,1 +7,5,25,1,3,525501,0,17662.06,49.70431,1,13,1,18.86792,0,58.18182,0,0,77.04974,0,0,0,2,0,3,89.9,27.6,1,69.3,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,69.3,9.779231,1.098612,4.344451,1 +7,5,25,0,1,525503,0,17662.06,20.78029,1,13,1,12.62095,0,33.252,0,0,45.87295,0,0,0,1,0,3,76.1,13.8,0,59.1,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,59.1,9.779231,1.098612,3.825876,1 +7,5,25,0,2,525503,0,17662.06,21.78029,1,13,1,0,0,0,0,0,0,0,0,0,0,0,3,76.1,13.8,0,59.1,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,59.1,9.779231,1.098612,,0 +7,5,25,0,3,525503,0,17662.06,22.78029,1,13,1,0,0,0,0,0,0,0,0,0,0,0,3,76.1,13.8,0,59.1,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,59.1,9.779231,1.098612,,0 +13,5,0,0,1,525510,0,7991.295,2.841889,1,16,1,111.0166,12.0587,0,0,0,123.0753,0,0,0,5,1,3,77.40034,10.57626,0,96.3,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,0,0,0,96.3,8.986234,1.098612,4.812796,1 +13,5,0,0,2,525510,0,7991.295,3.841889,1,16,1,22.13741,10.5458,0,0,0,32.6832,0,0,0,2,0,4,77.40034,10.57626,0,96.3,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,96.3,8.986234,1.386294,3.486861,1 +13,5,0,0,1,525511,0,7991.295,30.32444,1,16,1,70.39558,48.63462,34.87878,0,742.8583,896.7673,1,0,0,5,1,3,90.4,17.2,0,78.4,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,78.4,8.986234,1.098612,6.798797,1 +13,5,0,0,2,525511,0,7991.295,31.32444,1,16,1,12.59542,2.19084,0,0,0,14.78626,0,0,0,1,0,4,90.4,17.2,0,78.4,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,78.4,8.986234,1.386294,2.693698,1 +13,5,0,0,1,525512,0,7991.295,29.44011,0,14,1,104.1684,4.483199,0,0,0,108.6516,0,0,0,2,0,3,73.9,6.9,0,97.6,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,97.6,8.986234,1.098612,4.688147,1 +13,5,0,0,2,525512,0,7991.295,30.44011,0,14,1,0,0,0,0,0,0,0,0,0,0,0,4,73.9,6.9,0,97.6,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,97.6,8.986234,1.386294,,0 +14,5,95,1,1,525520,0,6674.895,13.06502,0,13,1,22.29701,0,26.6891,0,0,48.98612,0,0,0,1,0,5,68.3,10.57626,0,70.4,508.35,690.76,1,0,1.609438,6.537792,0,4.564348,6.282464,1,0,0,70.4,8.806258,1.609438,3.891537,1 +14,5,95,1,1,525521,0,6674.895,19.34292,1,10,1,0,0,0,0,0,0,0,0,0,0,0,5,66,10.3,1,59.1,508.35,690.76,0,0,1.609438,6.537792,0,4.564348,6.282464,1,0,0,59.1,8.806258,1.609438,,0 +14,5,95,1,1,525522,0,6674.895,42.76249,0,8,1,0,21.54396,0,0,0,21.54396,0,0,0,0,0,5,58.5,10.3,1,69.3,508.35,690.76,0,0,1.609438,6.537792,0,4.564348,6.282464,1,0,0,69.3,8.806258,1.609438,3.070096,1 +14,5,95,1,1,525523,0,6674.895,17.51403,1,13,1,0,0,0,0,0,0,0,0,0,0,0,5,59.6,10.3,0,67,508.35,690.76,1,1,1.609438,6.537792,0,4.564348,6.282464,1,0,0,67,8.806258,1.609438,,0 +14,5,95,1,2,525523,0,6674.895,18.51403,1,13,1,0,0,0,0,0,0,0,0,0,0,0,1,59.6,10.3,0,67,508.35,690.76,0,0,0,6.537792,0,4.564348,6.282464,1,0,0,67,8.806258,0,,0 +14,5,95,1,1,525524,0,6674.895,43.14305,1,13,1,0,6.90366,0,0,0,6.90366,0,0,0,0,0,5,43.6,10.3,1,54.5,508.35,690.76,0,0,1.609438,6.537792,0,4.564348,6.282464,1,0,0,54.5,8.806258,1.609438,1.932052,1 +18,5,25,0,1,525529,0,6674.895,39.48802,1,11,1,10.47382,0,0,0,0,10.47382,0,0,0,1,0,3,90.4,10.3,0,96.6,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,96.6,8.806258,1.098612,2.348878,1 +18,5,25,0,2,525529,0,6674.895,40.48802,1,11,1,0,0,0,0,0,0,0,0,0,0,0,3,90.4,10.3,0,96.6,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,96.6,8.806258,1.098612,,0 +18,5,25,0,3,525529,0,6674.895,41.48802,1,11,1,0,0,0,0,0,0,0,0,0,0,0,3,90.4,10.3,0,96.6,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,96.6,8.806258,1.098612,,0 +18,5,25,0,1,525531,0,6674.895,40.53114,0,10,1,41.39651,0,0,0,0,41.39651,0,0,0,0,2,3,85.1,17.2,0,60.2,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,60.2,8.806258,1.098612,3.723197,1 +18,5,25,0,2,525531,0,6674.895,41.53114,0,10,1,146.1503,0,0,0,0,146.1503,0,0,0,4,0,3,85.1,17.2,0,60.2,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,60.2,8.806258,1.098612,4.984635,1 +18,5,25,0,3,525531,0,6674.895,42.53114,0,10,1,0,0,0,0,0,0,0,0,0,0,0,3,85.1,17.2,0,60.2,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,60.2,8.806258,1.098612,,0 +18,5,25,0,1,525532,0,6674.895,16.89528,0,11,1,45.88529,0,0,0,0,45.88529,0,0,0,2,3,3,55.9,3.4,0,61.4,750,750,1,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,61.4,8.806258,1.098612,3.826144,1 +18,5,25,0,2,525532,0,6674.895,17.89528,0,11,1,9.22084,0,0,0,0,9.22084,0,0,0,1,0,3,55.9,3.4,0,61.4,750,750,1,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,61.4,8.806258,1.098612,2.221466,1 +18,5,25,0,3,525532,0,6674.895,18.89528,0,11,1,0,0,0,0,0,0,0,0,0,0,0,3,55.9,3.4,0,61.4,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,61.4,8.806258,1.098612,,0 +16,5,95,1,1,525533,1,1451.101,7.63039,0,11,1,8.463818,0,0,0,0,8.463818,0,0,0,1,0,5,98.3,10.57626,0,81.5,510.6,510.6,1,0,1.609438,6.235587,0,4.564348,6.28688,0,0,0,81.5,7.280766,1.609438,2.1358,1 +16,5,95,1,2,525533,1,1451.101,8.63039,0,11,1,0,0,0,0,0,0,0,0,0,0,0,5,98.3,10.57626,0,81.5,510.6,510.6,1,0,1.609438,6.235587,0,4.564348,6.28688,0,0,0,81.5,7.280766,1.609438,,0 +16,5,95,1,3,525533,1,1451.101,9.63039,0,11,1,0,0,0,0,0,0,0,0,0,0,0,5,98.3,10.57626,0,81.5,510.6,510.6,1,0,1.609438,6.235587,0,4.564348,6.28688,0,0,0,81.5,7.280766,1.609438,,0 +16,5,95,1,1,525534,1,1451.101,9.607119,0,11,1,0,0,0,0,702.0736,702.0736,1,0,0,0,0,5,98.3,10.57626,0,81.5,510.6,510.6,1,0,1.609438,6.235587,0,4.564348,6.28688,0,0,0,81.5,7.280766,1.609438,6.554038,1 +16,5,95,1,2,525534,1,1451.101,10.60712,0,11,1,0,0,0,0,258.1625,258.1625,1,1,0,0,0,5,98.3,10.57626,0,81.5,510.6,510.6,1,0,1.609438,6.235587,0,4.564348,6.28688,0,0,0,81.5,7.280766,1.609438,5.553589,1 +16,5,95,1,3,525534,1,1451.101,11.60712,0,11,1,93.07958,41.19723,0,0,996.8858,1131.163,1,0,0,6,0,5,98.3,10.57626,0,81.5,510.6,510.6,1,0,1.609438,6.235587,0,4.564348,6.28688,0,0,0,81.5,7.280766,1.609438,7.031001,1 +16,5,95,1,1,525535,1,1451.101,18.88022,1,10.96978,1,0,0,0,0,0,0,0,0,0,0,0,5,70.2,0,0,61.4,510.6,510.6,0,0,1.609438,6.235587,0,4.564348,6.28688,0,0,0,61.4,7.280766,1.609438,,0 +16,5,95,1,2,525535,1,1451.101,19.88022,1,10.96978,1,8.352316,0,0,0,0,8.352316,0,0,0,1,0,5,70.2,0,0,61.4,510.6,510.6,0,0,1.609438,6.235587,0,4.564348,6.28688,0,0,0,61.4,7.280766,1.609438,2.122539,1 +16,5,95,1,3,525535,1,1451.101,20.88022,1,10.96978,1,117.9931,11.6955,0,0,0,129.6886,0,0,0,3,0,5,70.2,0,0,61.4,510.6,510.6,0,0,1.609438,6.235587,0,4.564348,6.28688,0,0,0,61.4,7.280766,1.609438,4.865136,1 +16,5,95,1,1,525536,1,1451.101,25.97673,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,81.4,6.9,0,61.4,510.6,510.6,0,0,1.609438,6.235587,0,4.564348,6.28688,1,0,0,61.4,7.280766,1.609438,,0 +16,5,95,1,2,525536,1,1451.101,26.97673,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,81.4,6.9,0,61.4,510.6,510.6,0,0,1.609438,6.235587,0,4.564348,6.28688,1,0,0,61.4,7.280766,1.609438,,0 +16,5,95,1,3,525536,1,1451.101,27.97673,1,11,1,15.57093,2.595156,0,0,0,18.16609,0,0,0,1,0,5,81.4,6.9,0,61.4,510.6,510.6,0,0,1.609438,6.235587,0,4.564348,6.28688,1,0,0,61.4,7.280766,1.609438,2.899557,1 +16,5,95,1,1,525537,1,1451.101,9.607119,0,11,1,9.627592,0,0,0,0,9.627592,0,0,0,0,0,5,98.3,10.57626,0,81.5,510.6,510.6,1,0,1.609438,6.235587,0,4.564348,6.28688,0,0,0,81.5,7.280766,1.609438,2.264633,1 +16,5,95,1,2,525537,1,1451.101,10.60712,0,11,1,0,0,0,0,0,0,0,0,0,0,0,5,98.3,10.57626,0,81.5,510.6,510.6,1,0,1.609438,6.235587,0,4.564348,6.28688,0,0,0,81.5,7.280766,1.609438,,0 +16,5,95,1,3,525537,1,1451.101,11.60712,0,11,1,0,0,0,0,0,0,0,0,0,0,0,5,98.3,10.57626,0,81.5,510.6,510.6,1,0,1.609438,6.235587,0,4.564348,6.28688,0,0,0,81.5,7.280766,1.609438,,0 +15,5,95,1,1,525540,0,10324.34,47.21971,0,12,1,99.75063,0,0,0,0,99.75063,0,0,0,1,0,4,71.8,3.4,0,69.3,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,69.3,9.242356,1.386294,4.602674,1 +15,5,95,1,2,525540,0,10324.34,48.21971,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,71.8,3.4,0,69.3,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,69.3,9.242356,1.386294,,0 +15,5,95,1,3,525540,0,10324.34,49.21971,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,71.8,3.4,0,69.3,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,69.3,9.242356,1.386294,,0 +15,5,95,1,4,525540,0,10324.34,50.21971,0,12,1,10.44039,3.416857,0,0,0,13.85725,0,0,0,0,0,3,71.8,3.4,0,69.3,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,1,0,0,69.3,9.242356,1.098612,2.628809,1 +15,5,95,1,5,525540,0,10324.34,51.21971,0,12,1,10.38062,0,41.86851,0,0,52.24913,0,0,0,0,1,3,71.8,3.4,0,69.3,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,1,0,0,69.3,9.242356,1.098612,3.956023,1 +15,5,95,1,1,525541,0,10324.34,18.39836,0,10.96978,1,14.96259,3.990025,0,0,0,18.95262,0,0,0,1,0,4,84.6,0,0,92,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,92,9.242356,1.386294,2.941942,1 +15,5,95,1,2,525541,0,10324.34,19.39836,0,10.96978,1,0,0,0,0,0,0,0,0,0,0,0,4,84.6,0,0,92,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,92,9.242356,1.386294,,0 +15,5,95,1,3,525541,0,10324.34,20.39836,0,10.96978,1,0,0,0,0,0,0,0,0,0,0,0,4,84.6,0,0,92,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,92,9.242356,1.386294,,0 +15,5,95,1,1,525542,0,10324.34,14.17933,0,12,1,7.481297,4.413965,0,0,0,11.89526,0,0,0,1,0,4,84,3.4,0,84.1,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,84.1,9.242356,1.386294,2.47614,1 +15,5,95,1,2,525542,0,10324.34,15.17933,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,84,3.4,0,84.1,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,84.1,9.242356,1.386294,,0 +15,5,95,1,3,525542,0,10324.34,16.17933,0,12,1,17.35082,0,0,0,0,17.35082,0,0,0,2,0,4,84,3.4,0,84.1,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,84.1,9.242356,1.386294,2.85364,1 +15,5,95,1,4,525542,0,10324.34,17.17933,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,84,3.4,0,84.1,1000,1000,1,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,84.1,9.242356,1.098612,,0 +15,5,95,1,5,525542,0,10324.34,18.17933,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,84,3.4,0,84.1,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,84.1,9.242356,1.098612,,0 +15,5,95,1,1,525543,0,10324.34,39.64956,1,12,1,88.77805,86.34913,36.40898,0,0,211.5362,0,0,0,6,1,4,48.4,20.7,1,51.1,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,51.1,9.242356,1.386294,5.354396,1 +15,5,95,1,2,525543,0,10324.34,40.64956,1,12,1,21.43845,67.89765,0,0,0,89.3361,0,0,0,2,0,4,48.4,20.7,1,51.1,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,51.1,9.242356,1.386294,4.492405,1 +15,5,95,1,3,525543,0,10324.34,41.64956,1,12,1,8.040627,58.60347,0,0,0,66.6441,0,0,0,1,0,4,48.4,20.7,1,51.1,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,51.1,9.242356,1.386294,4.199367,1 +15,5,95,1,4,525543,0,10324.34,42.64956,1,12,1,103.4548,65.12149,0,0,585.4214,753.9977,1,0,0,7,0,3,48.4,20.7,1,51.1,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,1,0,0,51.1,9.242356,1.098612,6.62539,1 +15,5,95,1,5,525543,0,10324.34,43.64956,1,12,1,182.699,77.71626,0,0,0,260.4152,0,0,0,15,0,3,48.4,20.7,1,51.1,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,1,0,0,51.1,9.242356,1.098612,5.562277,1 +15,5,95,1,1,525544,1,1874.04,59.6961,1,5,1,14.45197,0,0,0,0,14.45197,0,0,0,2,0,2,67,13.8,1,51.1,288,0,0,0,.6931472,0,0,4.564348,5.714254,1,0,0,51.1,7.536385,.6931472,2.670831,1 +15,5,95,1,2,525544,1,1874.04,60.6961,1,5,1,6.833713,0,0,0,0,6.833713,0,0,0,1,0,2,67,13.8,1,51.1,288,0,0,0,.6931472,0,0,4.564348,5.714254,1,0,0,51.1,7.536385,.6931472,1.921868,1 +15,5,95,1,3,525544,1,1874.04,61.6961,1,5,1,50.17301,0,0,0,0,50.17301,0,0,0,4,0,2,67,13.8,1,51.1,288,0,0,0,.6931472,0,0,4.564348,5.714254,1,0,0,51.1,7.536385,.6931472,3.915477,1 +14,5,95,1,1,525553,1,3421.403,27.36756,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,26.1,6.9,1,34.1,142.55,142.55,0,0,1.098612,4.959693,0,4.564348,5.010986,1,0,0,34.1,8.138098,1.098612,,0 +14,5,95,1,2,525553,1,3421.403,28.36756,1,12,1,0,4.652672,0,0,0,4.652672,0,0,0,0,0,3,26.1,6.9,1,34.1,142.55,142.55,0,0,1.098612,4.959693,0,4.564348,5.010986,1,0,0,34.1,8.138098,1.098612,1.537442,1 +14,5,95,1,3,525553,1,3421.403,29.36756,1,12,1,0,0,0,0,453.6585,453.6585,1,0,0,0,0,3,26.1,6.9,1,34.1,142.55,142.55,0,0,1.098612,4.959693,0,4.564348,5.010986,1,0,0,34.1,8.138098,1.098612,6.117345,1 +14,5,95,1,1,525554,1,3421.403,26.67488,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,63.8,13.8,1,52.3,142.55,142.55,0,0,1.098612,4.959693,0,4.564348,5.010986,0,0,0,52.3,8.138098,1.098612,,0 +14,5,95,1,2,525554,1,3421.403,27.67488,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,63.8,13.8,1,52.3,142.55,142.55,0,0,1.098612,4.959693,0,4.564348,5.010986,0,0,0,52.3,8.138098,1.098612,,0 +14,5,95,1,3,525554,1,3421.403,28.67488,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,63.8,13.8,1,52.3,142.55,142.55,0,0,1.098612,4.959693,0,4.564348,5.010986,0,0,0,52.3,8.138098,1.098612,,0 +11,5,0,1,1,525555,1,769.5853,33.47844,1,12,1,8.081667,0,0,0,0,8.081667,0,0,0,0,0,6,63.3,10.3,0,83,0,0,0,0,1.791759,0,0,0,0,0,0,0,83,6.647151,1.791759,2.089598,1 +11,5,0,1,2,525555,1,769.5853,34.47844,1,12,1,15.64886,.9770992,0,0,0,16.62595,0,0,0,2,0,6,63.3,10.3,0,83,0,0,0,0,1.791759,0,0,0,0,0,0,0,83,6.647151,1.791759,2.810965,1 +11,5,0,1,3,525555,1,769.5853,35.47844,1,12,1,54.3554,10.79094,0,0,0,65.14634,0,0,0,4,0,6,63.3,10.3,0,83,0,0,0,0,1.791759,0,0,0,0,0,0,0,83,6.647151,1.791759,4.176636,1 +11,5,0,1,1,525556,1,769.5853,12.44353,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,75,10.57626,0,77.8,0,0,1,0,1.791759,0,0,0,0,0,0,0,77.8,6.647151,1.791759,,0 +11,5,0,1,2,525556,1,769.5853,13.44353,0,12,1,3.816794,0,0,0,0,3.816794,0,0,0,1,0,6,75,10.57626,0,77.8,0,0,1,0,1.791759,0,0,0,0,0,0,0,77.8,6.647151,1.791759,1.339411,1 +11,5,0,1,3,525556,1,769.5853,14.44353,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,75,10.57626,0,77.8,0,0,1,0,1.791759,0,0,0,0,0,0,0,77.8,6.647151,1.791759,,0 +11,5,0,1,1,525557,1,769.5853,9.215606,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,76.7,10.57626,0,81.5,0,0,1,0,1.791759,0,0,0,0,1,0,0,81.5,6.647151,1.791759,,0 +11,5,0,1,2,525557,1,769.5853,10.21561,0,12,1,6.870229,0,0,0,0,6.870229,0,0,0,1,0,6,76.7,10.57626,0,81.5,0,0,1,0,1.791759,0,0,0,0,1,0,0,81.5,6.647151,1.791759,1.927197,1 +11,5,0,1,3,525557,1,769.5853,11.21561,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,76.7,10.57626,0,81.5,0,0,1,0,1.791759,0,0,0,0,1,0,0,81.5,6.647151,1.791759,,0 +11,5,0,1,1,525558,1,769.5853,7.726215,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,73.3,10.57626,0,55.6,0,0,1,0,1.791759,0,0,0,0,0,1,0,55.6,6.647151,1.791759,,0 +11,5,0,1,2,525558,1,769.5853,8.726215,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,73.3,10.57626,0,55.6,0,0,1,0,1.791759,0,0,0,0,0,1,0,55.6,6.647151,1.791759,,0 +11,5,0,1,3,525558,1,769.5853,9.726215,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,73.3,10.57626,0,55.6,0,0,1,0,1.791759,0,0,0,0,0,1,0,55.6,6.647151,1.791759,,0 +11,5,0,0,1,525586,0,4301.075,8.147844,0,8,1,7.993269,0,0,0,0,7.993269,0,0,0,0,0,4,85,10.57626,.1442925,74.1,0,147.36,1,0,1.386294,4.992878,0,0,0,0,0,0,74.1,8.366853,1.386294,2.0786,1 +11,5,0,0,2,525586,0,4301.075,9.147844,0,8,1,11.33358,0,0,0,0,11.33358,0,0,0,0,1,4,85,10.57626,.1442925,74.1,0,147.36,1,0,1.386294,4.992878,0,0,0,0,0,0,74.1,8.366853,1.386294,2.42777,1 +11,5,0,0,3,525586,0,4301.075,10.14784,0,8,1,0,0,0,0,0,0,0,0,0,0,0,4,85,10.57626,.1442925,74.1,0,147.36,1,0,1.386294,4.992878,0,0,0,0,0,0,74.1,8.366853,1.386294,,0 +11,5,0,0,1,525587,0,4301.075,40.20534,0,13,1,0,8.93984,0,0,0,8.93984,0,0,0,0,0,4,64.9,6.9,1,60.2,0,147.36,0,0,1.386294,4.992878,0,0,0,1,0,0,60.2,8.366853,1.386294,2.190518,1 +11,5,0,0,2,525587,0,4301.075,41.20534,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,64.9,6.9,1,60.2,0,147.36,0,0,1.386294,4.992878,0,0,0,1,0,0,60.2,8.366853,1.386294,,0 +11,5,0,0,3,525587,0,4301.075,42.20534,0,13,1,0,6.768439,0,0,0,6.768439,0,0,0,0,0,4,64.9,6.9,1,60.2,0,147.36,0,0,1.386294,4.992878,0,0,0,1,0,0,60.2,8.366853,1.386294,1.912271,1 +11,5,0,0,1,525588,0,4301.075,6.836413,1,8,1,7.993269,0,0,0,0,7.993269,0,0,0,0,0,4,91.7,10.57626,.1442925,81.5,0,147.36,1,1,1.386294,4.992878,0,0,0,0,0,0,81.5,8.366853,1.386294,2.0786,1 +11,5,0,0,2,525588,0,4301.075,7.836413,1,8,1,45.82546,0,0,0,0,45.82546,0,0,0,4,1,4,91.7,10.57626,.1442925,81.5,0,147.36,1,1,1.386294,4.992878,0,0,0,0,0,0,81.5,8.366853,1.386294,3.82484,1 +11,5,0,0,3,525588,0,4301.075,8.836413,1,8,1,0,0,0,0,0,0,0,0,0,0,0,4,91.7,10.57626,.1442925,81.5,0,147.36,1,1,1.386294,4.992878,0,0,0,0,0,0,81.5,8.366853,1.386294,,0 +11,5,0,0,1,525589,0,4301.075,25.8809,1,8,1,68.06899,2.776609,0,0,0,70.8456,0,0,0,0,0,4,78.7,13.8,0,63.1,0,147.36,0,0,1.386294,4.992878,0,0,0,1,0,0,63.1,8.366853,1.386294,4.260503,1 +11,5,0,0,2,525589,0,4301.075,26.8809,1,8,1,11.33358,0,0,0,0,11.33358,0,0,0,0,1,4,78.7,13.8,0,63.1,0,147.36,0,0,1.386294,4.992878,0,0,0,1,0,0,63.1,8.366853,1.386294,2.42777,1 +11,5,0,0,3,525589,0,4301.075,27.8809,1,8,1,42.88165,9.73928,0,0,0,52.62093,0,0,0,0,0,4,78.7,13.8,0,63.1,0,147.36,0,0,1.386294,4.992878,0,0,0,1,0,0,63.1,8.366853,1.386294,3.963114,1 +16,5,95,0,1,525593,1,6674.895,36.65435,1,9,1,0,0,0,0,0,0,0,0,0,0,0,3,63.3,10.3,0,76.1,176.4,176.4,0,0,1.098612,5.172754,0,4.564348,5.224048,1,0,0,76.1,8.806258,1.098612,,0 +16,5,95,0,2,525593,1,6674.895,37.65435,1,9,1,11.62791,0,0,0,0,11.62791,0,0,0,0,0,3,63.3,10.3,0,76.1,176.4,176.4,0,0,1.098612,5.172754,0,4.564348,5.224048,1,0,0,76.1,8.806258,1.098612,2.453408,1 +16,5,95,0,3,525593,1,6674.895,38.65435,1,9,1,0,0,0,0,0,0,0,0,0,0,0,3,63.3,10.3,0,76.1,176.4,176.4,0,0,1.098612,5.172754,0,4.564348,5.224048,1,0,0,76.1,8.806258,1.098612,,0 +16,5,95,0,1,525595,1,6674.895,14.87748,0,9,1,7.919967,0,0,0,0,7.919967,0,0,0,0,0,3,77.40034,10.57626,.1442925,,176.4,176.4,1,0,1.098612,5.172754,0,4.564348,5.224048,1,0,0,70.68995,8.806258,1.098612,2.069387,1 +16,5,95,0,2,525595,1,6674.895,15.87748,0,9,1,0,0,0,0,0,0,0,0,0,0,0,3,77.40034,10.57626,.1442925,,176.4,176.4,1,0,1.098612,5.172754,0,4.564348,5.224048,1,0,0,70.68995,8.806258,1.098612,,0 +16,5,95,0,3,525595,1,6674.895,16.87748,0,9,1,0,0,0,0,0,0,0,0,0,0,0,3,77.40034,10.57626,.1442925,,176.4,176.4,1,0,1.098612,5.172754,0,4.564348,5.224048,1,0,0,70.68995,8.806258,1.098612,,0 +16,5,95,0,1,525596,1,6674.895,6.913073,0,9,1,0,0,0,0,0,0,0,0,0,0,0,3,88.3,10.57626,.1442925,85.2,176.4,176.4,1,0,1.098612,5.172754,0,4.564348,5.224048,0,0,0,85.2,8.806258,1.098612,,0 +16,5,95,0,2,525596,1,6674.895,7.913073,0,9,1,0,0,0,0,0,0,0,0,0,0,0,3,88.3,10.57626,.1442925,85.2,176.4,176.4,1,0,1.098612,5.172754,0,4.564348,5.224048,0,0,0,85.2,8.806258,1.098612,,0 +16,5,95,0,3,525596,1,6674.895,8.913074,0,9,1,0,0,0,0,0,0,0,0,0,0,0,3,88.3,10.57626,.1442925,85.2,176.4,176.4,1,0,1.098612,5.172754,0,4.564348,5.224048,0,0,0,85.2,8.806258,1.098612,,0 +11,5,0,1,1,525617,1,1426.523,12.2026,0,7,1,10.57977,0,23.69869,0,0,34.27846,0,0,0,0,1,7,90,10.57626,0,96.3,0,0,1,0,1.94591,0,0,0,0,1,0,0,96.3,7.263696,1.94591,3.534517,1 +11,5,0,1,2,525617,1,1426.523,13.2026,0,7,1,0,0,0,0,0,0,0,0,0,0,0,7,90,10.57626,0,96.3,0,0,1,0,1.94591,0,0,0,0,1,0,0,96.3,7.263696,1.94591,,0 +11,5,0,1,3,525617,1,1426.523,14.2026,0,7,1,0,0,0,0,0,0,0,0,0,0,0,7,90,10.57626,0,96.3,0,0,1,0,1.94591,0,0,0,0,1,0,0,96.3,7.263696,1.94591,,0 +11,5,0,1,1,525618,1,1426.523,11.28542,0,7,1,0,0,0,0,0,0,0,0,0,0,0,7,95,10.57626,0,96.3,0,0,1,0,1.94591,0,0,0,0,0,0,0,96.3,7.263696,1.94591,,0 +11,5,0,1,2,525618,1,1426.523,12.28542,0,7,1,13.09795,0,0,0,0,13.09795,0,0,0,0,0,7,95,10.57626,0,96.3,0,0,1,0,1.94591,0,0,0,0,0,0,0,96.3,7.263696,1.94591,2.572456,1 +11,5,0,1,3,525618,1,1426.523,13.28542,0,7,1,62.28374,3.442907,23.87543,0,267.8201,357.4221,1,1,0,3,1,7,95,10.57626,0,96.3,0,0,1,0,1.94591,0,0,0,0,0,0,0,96.3,7.263696,1.94591,5.878918,1 +11,5,0,1,1,525619,1,1426.523,20.0794,1,10,1,28.24799,1.815489,23.69869,0,0,53.76217,0,0,0,0,1,7,51.6,6.9,0,71.6,0,0,0,0,1.94591,0,0,0,0,0,0,0,71.6,7.263696,1.94591,3.98457,1 +11,5,0,1,2,525619,1,1426.523,21.0794,1,10,1,7.213364,43.92559,0,0,2274.108,2325.247,1,0,0,0,0,7,51.6,6.9,0,71.6,0,0,0,0,1.94591,0,0,0,0,0,0,0,71.6,7.263696,1.94591,7.751582,1 +11,5,0,1,3,525619,1,1426.523,22.0794,1,10,1,20.41522,10.34602,21.79931,0,0,52.56055,0,0,0,1,1,7,51.6,6.9,0,71.6,0,0,0,0,1.94591,0,0,0,0,0,0,0,71.6,7.263696,1.94591,3.961966,1 +11,5,0,1,1,525620,1,1426.523,35.14305,1,7,1,10.57977,0,23.69869,0,0,34.27846,0,0,0,0,1,7,85.1,6.9,0,81.8,0,0,0,0,1.94591,0,0,0,0,1,0,0,81.8,7.263696,1.94591,3.534517,1 +11,5,0,1,2,525620,1,1426.523,36.14305,1,7,1,0,0,0,0,0,0,0,0,0,0,0,7,85.1,6.9,0,81.8,0,0,0,0,1.94591,0,0,0,0,1,0,0,81.8,7.263696,1.94591,,0 +11,5,0,1,3,525620,1,1426.523,37.14305,1,7,1,8.650519,0,22.14533,0,0,30.79585,0,0,0,0,1,7,85.1,6.9,0,81.8,0,0,0,0,1.94591,0,0,0,0,1,0,0,81.8,7.263696,1.94591,3.42738,1 +11,5,0,1,1,525621,1,1426.523,14.09719,1,7,1,10.57977,0,23.69869,0,0,34.27846,0,0,0,0,1,7,100,10.57626,0,96.3,0,0,1,1,1.94591,0,0,0,0,1,0,0,96.3,7.263696,1.94591,3.534517,1 +11,5,0,1,2,525621,1,1426.523,15.09719,1,7,1,0,0,0,0,0,0,0,0,0,0,0,7,100,10.57626,0,96.3,0,0,1,1,1.94591,0,0,0,0,1,0,0,96.3,7.263696,1.94591,,0 +11,5,0,1,3,525621,1,1426.523,16.09719,1,7,1,14.87889,8.079585,20.41522,0,0,43.3737,0,0,0,1,1,7,100,10.57626,0,96.3,0,0,1,1,1.94591,0,0,0,0,1,0,0,96.3,7.263696,1.94591,3.769853,1 +11,5,0,1,1,525622,1,1426.523,15.154,0,7,1,0,0,0,0,0,0,0,0,0,0,0,7,97.3,0,0,96.6,0,0,1,0,1.94591,0,0,0,0,1,0,0,96.6,7.263696,1.94591,,0 +11,5,0,1,2,525622,1,1426.523,16.15401,0,7,1,0,0,0,0,0,0,0,0,0,0,0,7,97.3,0,0,96.6,0,0,1,0,1.94591,0,0,0,0,1,0,0,96.6,7.263696,1.94591,,0 +11,5,0,1,1,525624,1,1426.523,14.09719,1,7,1,0,0,0,0,0,0,0,0,0,0,0,7,85,10.57626,0,96.3,0,0,1,1,1.94591,0,0,0,0,1,0,0,96.3,7.263696,1.94591,,0 +11,5,0,1,2,525624,1,1426.523,15.09719,1,7,1,0,0,0,0,0,0,0,0,0,0,0,7,85,10.57626,0,96.3,0,0,1,1,1.94591,0,0,0,0,1,0,0,96.3,7.263696,1.94591,,0 +11,5,0,1,3,525624,1,1426.523,16.09719,1,7,1,0,0,0,0,0,0,0,0,0,0,0,7,85,10.57626,0,96.3,0,0,1,1,1.94591,0,0,0,0,1,0,0,96.3,7.263696,1.94591,,0 +11,5,0,1,1,525628,0,8880.185,34.78166,0,12,1,150.6559,39.1113,1.481168,0,0,191.2484,0,0,0,12,0,5,89.4,3.4,0,75,0,646.36,0,0,1.609438,6.471356,0,0,0,0,0,0,75,9.09169,1.609438,5.253573,1 +11,5,0,1,2,525628,0,8880.185,35.78166,0,12,1,157.5551,22.35004,0,0,0,179.9051,0,0,0,10,0,5,89.4,3.4,0,75,0,646.36,0,0,1.609438,6.471356,0,0,0,0,0,0,75,9.09169,1.609438,5.19243,1 +11,5,0,1,3,525628,0,8880.185,36.78166,0,12,1,87.88927,30.34256,0,0,0,118.2318,0,0,0,10,0,5,89.4,3.4,0,75,0,646.36,0,0,1.609438,6.471356,0,0,0,0,0,0,75,9.09169,1.609438,4.772647,1 +11,5,0,1,1,525629,0,8880.185,31.92882,1,12,1,79.55988,48.15912,0,0,872.6196,1000.339,1,0,0,8,0,5,75.5,10.3,1,73.7,0,646.36,0,0,1.609438,6.471356,0,0,0,0,0,0,73.7,9.09169,1.609438,6.908094,1 +11,5,0,1,2,525629,0,8880.185,32.92882,1,12,1,17.46393,17.73348,0,0,1247.912,1283.109,2,1,0,2,0,5,75.5,10.3,1,73.7,0,646.36,0,0,1.609438,6.471356,0,0,0,0,0,0,73.7,9.09169,1.609438,7.157042,1 +11,5,0,1,3,525629,0,8880.185,33.92882,1,12,1,134.6021,21.53287,0,0,0,156.1349,0,0,0,7,0,5,75.5,10.3,1,73.7,0,646.36,0,0,1.609438,6.471356,0,0,0,0,0,0,73.7,9.09169,1.609438,5.050721,1 +11,5,0,1,1,525630,0,8880.185,10.05339,1,12,1,0,2.06094,0,0,0,2.06094,0,0,0,0,0,5,93.3,10.57626,0,92.6,0,646.36,1,1,1.609438,6.471356,0,0,0,0,0,0,92.6,9.09169,1.609438,.723162,1 +11,5,0,1,2,525630,0,8880.185,11.05339,1,12,1,5.694761,6.545178,0,0,0,12.23994,0,0,0,1,0,5,93.3,10.57626,0,92.6,0,646.36,1,1,1.609438,6.471356,0,0,0,0,0,0,92.6,9.09169,1.609438,2.504704,1 +11,5,0,1,3,525630,0,8880.185,12.05339,1,12,1,32.17993,1.346021,0,0,0,33.52595,0,0,0,1,0,5,93.3,10.57626,0,92.6,0,646.36,1,1,1.609438,6.471356,0,0,0,0,0,0,92.6,9.09169,1.609438,3.51232,1 +11,5,0,1,1,525631,0,8880.185,5.377139,0,12,1,19.46678,16.35209,0,0,0,35.81887,0,0,0,4,0,5,83.3,10.57626,0,51.9,0,646.36,1,0,1.609438,6.471356,0,0,0,0,0,0,51.9,9.09169,1.609438,3.578475,1 +11,5,0,1,2,525631,0,8880.185,6.377139,0,12,1,11.38952,18.95976,0,0,0,30.34928,0,0,0,2,0,5,83.3,10.57626,0,51.9,0,646.36,1,0,1.609438,6.471356,0,0,0,0,0,0,51.9,9.09169,1.609438,3.412773,1 +11,5,0,1,3,525631,0,8880.185,7.377139,0,12,1,25.95156,21.89619,0,0,0,47.84775,0,0,0,5,0,5,83.3,10.57626,0,51.9,0,646.36,1,0,1.609438,6.471356,0,0,0,0,0,0,51.9,9.09169,1.609438,3.868024,1 +11,5,0,1,1,525632,0,8880.185,2.882957,0,12,1,60.51629,10.44012,0,0,0,70.95641,0,0,0,8,0,5,77.40034,10.57626,0,59.3,0,646.36,1,0,1.609438,6.471356,0,0,0,0,0,0,59.3,9.09169,1.609438,4.262066,1 +11,5,0,1,2,525632,0,8880.185,3.882957,0,12,1,57.70691,3.02202,0,0,0,60.72893,0,0,0,3,0,5,77.40034,10.57626,0,59.3,0,646.36,1,0,1.609438,6.471356,0,0,0,0,0,0,59.3,9.09169,1.609438,4.10642,1 +11,5,0,1,3,525632,0,8880.185,4.882957,0,12,1,23.18339,2.885813,0,0,537.7162,563.7855,1,0,0,2,0,5,77.40034,10.57626,0,59.3,0,646.36,1,0,1.609438,6.471356,0,0,0,0,0,0,59.3,9.09169,1.609438,6.334674,1 +5,5,25,0,1,525656,1,0,39.29911,0,5,1,0,0,0,0,0,0,0,0,0,0,0,8,62.2,0,0,76.1,333.75,333.75,0,0,2.079442,5.810392,0,3.258096,7.196687,0,0,0,76.1,0,2.079442,,0 +5,5,25,0,2,525656,1,0,40.29911,0,5,1,0,0,0,0,0,0,0,0,0,0,0,9,62.2,0,0,76.1,333.75,333.75,0,0,2.197225,5.810392,0,3.258096,7.196687,0,0,0,76.1,0,2.197225,,0 +5,5,25,0,3,525656,1,0,41.29911,0,5,1,0,0,0,0,0,0,0,0,0,0,0,9,62.2,0,0,76.1,333.75,333.75,0,0,2.197225,5.810392,0,3.258096,7.196687,0,0,0,76.1,0,2.197225,,0 +5,5,25,0,4,525656,1,0,42.29911,0,5,1,0,0,0,0,0,0,0,0,0,0,0,9,62.2,0,0,76.1,333.75,333.75,0,0,2.197225,5.810392,0,3.258096,7.196687,0,0,0,76.1,0,2.197225,,0 +5,5,25,0,5,525656,1,0,43.29911,0,5,1,10.14885,0,0,0,0,10.14885,0,0,0,0,0,9,62.2,0,0,76.1,333.75,333.75,0,0,2.197225,5.810392,0,3.258096,7.196687,0,0,0,76.1,0,2.197225,2.31736,1 +5,5,25,1,1,525657,1,0,10.00958,1,6,1,0,0,0,0,0,0,0,0,0,0,0,8,83.3,10.57626,0,63,333.75,333.75,1,1,2.079442,5.810392,0,3.258096,7.196687,0,1,0,63,0,2.079442,,0 +5,5,25,1,2,525657,1,0,11.00958,1,6,1,0,0,0,0,0,0,0,0,0,0,0,9,83.3,10.57626,0,63,333.75,333.75,1,1,2.197225,5.810392,0,3.258096,7.196687,0,1,0,63,0,2.197225,,0 +5,5,25,1,3,525657,1,0,12.00958,1,6,1,0,0,0,0,0,0,0,0,0,0,0,9,83.3,10.57626,0,63,333.75,333.75,1,1,2.197225,5.810392,0,3.258096,7.196687,0,1,0,63,0,2.197225,,0 +5,5,25,1,4,525657,1,0,13.00958,1,6,1,0,0,0,0,0,0,0,0,0,0,0,9,83.3,10.57626,0,63,333.75,333.75,1,1,2.197225,5.810392,0,3.258096,7.196687,0,1,0,63,0,2.197225,,0 +5,5,25,1,5,525657,1,0,14.00958,1,6,1,0,0,0,0,0,0,0,0,0,0,0,9,83.3,10.57626,0,63,333.75,333.75,1,1,2.197225,5.810392,0,3.258096,7.196687,0,1,0,63,0,2.197225,,0 +5,5,25,1,1,525658,1,0,44.6872,1,6,1,8.599508,0,0,0,0,8.599508,0,0,0,0,0,8,63.3,6.9,0,50,333.75,333.75,0,0,2.079442,5.810392,0,3.258096,7.196687,0,1,0,50,0,2.079442,2.151705,1 +5,5,25,1,2,525658,1,0,45.6872,1,6,1,0,0,0,0,0,0,0,0,0,0,0,9,63.3,6.9,0,50,333.75,333.75,0,0,2.197225,5.810392,0,3.258096,7.196687,0,1,0,50,0,2.197225,,0 +5,5,25,1,3,525658,1,0,46.6872,1,6,1,17.5073,0,0,0,0,17.5073,0,0,0,0,0,9,63.3,6.9,0,50,333.75,333.75,0,0,2.197225,5.810392,0,3.258096,7.196687,0,1,0,50,0,2.197225,2.862618,1 +5,5,25,1,4,525658,1,0,47.6872,1,6,1,0,0,0,0,0,0,0,0,0,0,0,9,63.3,6.9,0,50,333.75,333.75,0,0,2.197225,5.810392,0,3.258096,7.196687,0,1,0,50,0,2.197225,,0 +5,5,25,1,5,525658,1,0,48.6872,1,6,1,44.99323,3.697564,35.53112,0,0,84.22192,0,0,0,0,2,9,63.3,6.9,0,50,333.75,333.75,0,0,2.197225,5.810392,0,3.258096,7.196687,0,1,0,50,0,2.197225,4.433455,1 +5,5,25,1,1,525659,1,0,13.4757,0,6,1,8.599508,0,0,0,0,8.599508,0,0,0,0,0,8,98.3,10.57626,0,59.3,333.75,333.75,1,0,2.079442,5.810392,0,3.258096,7.196687,1,0,0,59.3,0,2.079442,2.151705,1 +5,5,25,1,2,525659,1,0,14.4757,0,6,1,0,0,0,0,0,0,0,0,0,0,0,9,98.3,10.57626,0,59.3,333.75,333.75,1,0,2.197225,5.810392,0,3.258096,7.196687,1,0,0,59.3,0,2.197225,,0 +5,5,25,1,3,525659,1,0,15.4757,0,6,1,0,0,0,0,0,0,0,0,0,0,0,9,98.3,10.57626,0,59.3,333.75,333.75,1,0,2.197225,5.810392,0,3.258096,7.196687,1,0,0,59.3,0,2.197225,,0 +5,5,25,1,4,525659,1,0,16.4757,0,6,1,316.2978,0,0,0,0,316.2978,0,0,0,2,0,9,98.3,10.57626,0,59.3,333.75,333.75,1,0,2.197225,5.810392,0,3.258096,7.196687,1,0,0,59.3,0,2.197225,5.756684,1 +5,5,25,1,5,525659,1,0,17.4757,0,6,1,0,0,0,0,0,0,0,0,0,0,0,9,98.3,10.57626,0,59.3,333.75,333.75,1,0,2.197225,5.810392,0,3.258096,7.196687,1,0,0,59.3,0,2.197225,,0 +5,5,25,1,1,525660,1,0,11.77002,0,6,1,0,0,0,0,0,0,0,0,0,0,0,8,80,10.57626,0,77.8,333.75,333.75,1,0,2.079442,5.810392,0,3.258096,7.196687,1,0,0,77.8,0,2.079442,,0 +5,5,25,1,2,525660,1,0,12.77002,0,6,1,0,0,0,0,0,0,0,0,0,0,0,9,80,10.57626,0,77.8,333.75,333.75,1,0,2.197225,5.810392,0,3.258096,7.196687,1,0,0,77.8,0,2.197225,,0 +5,5,25,1,3,525660,1,0,13.77002,0,6,1,0,0,0,0,0,0,0,0,0,0,0,9,80,10.57626,0,77.8,333.75,333.75,1,0,2.197225,5.810392,0,3.258096,7.196687,1,0,0,77.8,0,2.197225,,0 +5,5,25,1,4,525660,1,0,14.77002,0,6,1,0,0,0,0,0,0,0,0,0,0,0,9,80,10.57626,0,77.8,333.75,333.75,1,0,2.197225,5.810392,0,3.258096,7.196687,1,0,0,77.8,0,2.197225,,0 +5,5,25,1,5,525660,1,0,15.77002,0,6,1,10.14885,2.405277,0,0,0,12.55413,0,0,0,0,0,9,80,10.57626,0,77.8,333.75,333.75,1,0,2.197225,5.810392,0,3.258096,7.196687,1,0,0,77.8,0,2.197225,2.530049,1 +5,5,25,1,1,525661,1,0,16.75565,1,6,1,0,0,0,0,0,0,1,1,0,0,0,8,54.8,3.4,0,54.5,333.75,333.75,1,1,2.079442,5.810392,0,3.258096,7.196687,0,1,0,54.5,0,2.079442,,0 +5,5,25,1,2,525661,1,0,17.75565,1,6,1,0,1.244303,0,0,0,1.244303,0,0,0,0,0,9,54.8,3.4,0,54.5,333.75,333.75,1,1,2.197225,5.810392,0,3.258096,7.196687,0,1,0,54.5,0,2.197225,.2185752,1 +5,5,25,1,3,525661,1,0,18.75565,1,6,1,0,0,0,0,0,0,0,0,0,0,0,9,54.8,3.4,0,54.5,333.75,333.75,0,0,2.197225,5.810392,0,3.258096,7.196687,0,1,0,54.5,0,2.197225,,0 +5,5,25,1,4,525661,1,0,19.75565,1,6,1,0,0,0,0,0,0,0,0,0,0,0,9,54.8,3.4,0,54.5,333.75,333.75,0,0,2.197225,5.810392,0,3.258096,7.196687,0,1,0,54.5,0,2.197225,,0 +5,5,25,1,5,525661,1,0,20.75565,1,6,1,27.74019,1.589986,0,0,0,29.33018,0,0,0,1,0,9,54.8,3.4,0,54.5,333.75,333.75,0,0,2.197225,5.810392,0,3.258096,7.196687,0,1,0,54.5,0,2.197225,3.378617,1 +5,5,25,0,1,525662,1,0,15.77002,0,6,1,0,0,0,0,0,0,0,0,0,0,0,8,58.5,0,0,76.1,333.75,333.75,1,0,2.079442,5.810392,0,3.258096,7.196687,0,1,0,76.1,0,2.079442,,0 +5,5,25,0,2,525662,1,0,16.77002,0,6,1,6.836828,0,0,0,0,6.836828,0,0,0,1,0,9,58.5,0,0,76.1,333.75,333.75,1,0,2.197225,5.810392,0,3.258096,7.196687,0,1,0,76.1,0,2.197225,1.922324,1 +5,5,25,0,3,525662,1,0,17.77002,0,6,1,0,0,0,0,0,0,0,0,0,0,0,9,58.5,0,0,76.1,333.75,333.75,1,0,2.197225,5.810392,0,3.258096,7.196687,0,1,0,76.1,0,2.197225,,0 +5,5,25,0,4,525662,1,0,18.77002,0,6,1,0,0,0,0,0,0,0,0,0,0,0,9,58.5,0,0,76.1,333.75,333.75,0,0,2.197225,5.810392,0,3.258096,7.196687,0,1,0,76.1,0,2.197225,,0 +5,5,25,0,5,525662,1,0,19.77002,0,6,1,0,0,0,0,0,0,0,0,0,0,0,9,58.5,0,0,76.1,333.75,333.75,0,0,2.197225,5.810392,0,3.258096,7.196687,0,1,0,76.1,0,2.197225,,0 +5,5,25,0,1,525663,1,0,14.61465,1,6,1,0,0,0,0,0,0,0,0,0,0,0,8,60.1,3.4,0,59.1,333.75,333.75,1,1,2.079442,5.810392,0,3.258096,7.196687,1,0,0,59.1,0,2.079442,,0 +5,5,25,0,2,525663,1,0,15.61465,1,6,1,0,0,0,0,0,0,0,0,0,0,0,9,60.1,3.4,0,59.1,333.75,333.75,1,1,2.197225,5.810392,0,3.258096,7.196687,1,0,0,59.1,0,2.197225,,0 +5,5,25,0,3,525663,1,0,16.61465,1,6,1,0,0,0,0,0,0,0,0,0,0,0,9,60.1,3.4,0,59.1,333.75,333.75,1,1,2.197225,5.810392,0,3.258096,7.196687,1,0,0,59.1,0,2.197225,,0 +5,5,25,0,4,525663,1,0,17.61465,1,6,1,0,0,0,0,0,0,0,0,0,0,0,9,60.1,3.4,0,59.1,333.75,333.75,1,1,2.197225,5.810392,0,3.258096,7.196687,1,0,0,59.1,0,2.197225,,0 +5,5,25,0,5,525663,1,0,18.61465,1,6,1,0,0,0,0,0,0,0,0,0,0,0,9,60.1,3.4,0,59.1,333.75,333.75,0,0,2.197225,5.810392,0,3.258096,7.196687,1,0,0,59.1,0,2.197225,,0 +11,5,0,1,1,525705,0,12350.23,36.18344,0,9,1,0,0,0,0,0,0,0,0,0,0,0,2,78.2,0,0,84.1,0,308.42,0,0,.6931472,5.731462,0,0,0,0,0,0,84.1,9.421511,.6931472,,0 +11,5,0,1,2,525705,0,12350.23,37.18344,0,9,1,7.972665,8.363706,0,0,0,16.33637,0,0,0,1,0,2,78.2,0,0,84.1,0,308.42,0,0,.6931472,5.731462,0,0,0,0,0,0,84.1,9.421511,.6931472,2.793394,1 +11,5,0,1,3,525705,0,12350.23,38.18344,0,9,1,366.436,37.78547,0,0,309.6886,713.91,1,0,0,4,0,2,78.2,0,0,84.1,0,308.42,0,0,.6931472,5.731462,0,0,0,0,0,0,84.1,9.421511,.6931472,6.570757,1 +11,5,0,1,1,525706,0,12350.23,36.99384,1,12,1,19.46678,3.440542,0,0,0,22.90732,0,0,0,1,0,2,84,13.8,0,83,0,308.42,0,0,.6931472,5.731462,0,0,0,0,1,0,83,9.421511,.6931472,3.131457,1 +11,5,0,1,2,525706,0,12350.23,37.99384,1,12,1,9.491268,8.986333,0,0,0,18.4776,0,0,0,1,0,2,84,13.8,0,83,0,308.42,0,0,.6931472,5.731462,0,0,0,0,1,0,83,9.421511,.6931472,2.916559,1 +11,5,0,1,3,525706,0,12350.23,38.99384,1,12,1,36.33218,2.730104,0,0,0,39.06228,0,0,0,2,0,2,84,13.8,0,83,0,308.42,0,0,.6931472,5.731462,0,0,0,0,1,0,83,9.421511,.6931472,3.665157,1 +11,5,0,0,1,525715,0,8507.937,45.06503,1,9,1,14.58941,0,47.93664,0,0,62.52605,0,0,0,0,1,5,75.5,10.3,0,67.9,0,1189.12,0,0,1.609438,7.080969,0,0,0,1,0,0,67.9,9.048872,1.609438,4.135583,1 +11,5,0,0,2,525715,0,8507.937,46.06503,1,9,1,7.501875,2.985746,0,0,0,10.48762,0,0,0,1,0,5,75.5,10.3,0,67.9,0,1189.12,0,0,1.609438,7.080969,0,0,0,1,0,0,67.9,9.048872,1.609438,2.350196,1 +11,5,0,0,3,525715,0,8507.937,47.06503,1,9,1,88.97158,0,0,0,0,88.97158,0,0,0,4,0,5,75.5,10.3,0,67.9,0,1189.12,0,0,1.609438,7.080969,0,0,0,1,0,0,67.9,9.048872,1.609438,4.488317,1 +11,5,0,0,1,525716,0,8507.937,12.05476,0,9,1,0,0,0,0,0,0,0,0,0,0,0,5,91.7,10.57626,.1442925,96.3,0,1189.12,1,0,1.609438,7.080969,0,0,0,1,0,0,96.3,9.048872,1.609438,,0 +11,5,0,0,2,525716,0,8507.937,13.05476,0,9,1,23.44336,0,0,0,0,23.44336,0,0,0,1,0,5,91.7,10.57626,.1442925,96.3,0,1189.12,1,0,1.609438,7.080969,0,0,0,1,0,0,96.3,9.048872,1.609438,3.154587,1 +11,5,0,0,3,525716,0,8507.937,14.05476,0,9,1,48.71448,4.803789,0,0,0,53.51827,0,0,0,1,0,5,91.7,10.57626,.1442925,96.3,0,1189.12,1,0,1.609438,7.080969,0,0,0,1,0,0,96.3,9.048872,1.609438,3.980023,1 +11,5,0,0,1,525717,0,8507.937,44.58043,0,3,1,0,0,0,0,0,0,0,0,0,0,0,5,70.2,0,0,67,0,1189.12,0,0,1.609438,7.080969,0,0,0,1,0,0,67,9.048872,1.609438,,0 +11,5,0,0,2,525717,0,8507.937,45.58043,0,3,1,31.88297,0,0,0,0,31.88297,0,0,0,1,0,5,70.2,0,0,67,0,1189.12,0,0,1.609438,7.080969,0,0,0,1,0,0,67,9.048872,1.609438,3.462072,1 +11,5,0,0,3,525717,0,8507.937,46.58043,0,3,1,0,0,0,0,0,0,0,0,0,0,0,5,70.2,0,0,67,0,1189.12,0,0,1.609438,7.080969,0,0,0,1,0,0,67,9.048872,1.609438,,0 +11,5,0,0,1,525718,0,8507.937,16.09856,1,9,1,50.22926,9.983326,47.93664,0,513.1305,621.2797,1,0,0,4,1,5,88.3,3.4,0,84.1,0,1189.12,1,1,1.609438,7.080969,0,0,0,1,0,0,84.1,9.048872,1.609438,6.431781,1 +11,5,0,0,2,525718,0,8507.937,17.09856,1,9,1,18.75469,.900225,0,0,0,19.65491,0,0,0,2,0,5,88.3,3.4,0,84.1,0,1189.12,1,1,1.609438,7.080969,0,0,0,1,0,0,84.1,9.048872,1.609438,2.978327,1 +11,5,0,0,3,525718,0,8507.937,18.09856,1,9,1,21.98917,0,0,0,0,21.98917,0,0,0,3,0,5,88.3,3.4,0,84.1,0,1189.12,0,0,1.609438,7.080969,0,0,0,1,0,0,84.1,9.048872,1.609438,3.09055,1 +7,5,25,1,1,525736,1,1656.305,56.15879,1,8,1,0,0,0,0,0,0,0,0,0,0,0,1,62.8,27.6,1,58,750,0,0,0,0,0,0,3.258096,8.006368,0,1,0,58,7.412948,0,,0 +7,5,25,1,2,525736,1,1656.305,57.15879,1,8,1,0,0,0,0,0,0,0,0,0,0,0,1,62.8,27.6,1,58,750,0,0,0,0,0,0,3.258096,8.006368,0,1,0,58,7.412948,0,,0 +7,5,25,1,3,525736,1,1656.305,58.15879,1,8,1,6.252605,0,0,0,0,6.252605,0,0,0,0,0,1,62.8,27.6,1,58,750,0,0,0,0,0,0,3.258096,8.006368,0,1,0,58,7.412948,0,1.832998,1 +7,5,25,1,4,525736,1,1656.305,59.15879,1,8,1,74.00975,2.554389,33.54839,0,0,110.1125,0,0,0,4,0,1,62.8,27.6,1,58,750,0,0,0,0,0,0,3.258096,8.006368,0,1,0,58,7.412948,0,4.701503,1 +7,5,25,1,5,525736,1,1656.305,60.15879,1,8,1,36.87415,0,0,0,0,36.87415,0,0,0,1,0,1,62.8,27.6,1,58,750,0,0,0,0,0,0,3.258096,8.006368,0,1,0,58,7.412948,0,3.607511,1 +15,5,95,0,1,525738,0,10903.74,46.48323,1,9,1,0,0,0,0,0,0,0,0,0,0,0,3,94.7,3.4,0,78.4,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,78.4,9.296952,1.098612,,0 +15,5,95,0,2,525738,0,10903.74,47.48323,1,9,1,70.61504,11.0896,21.64009,0,1041.496,1144.841,1,0,0,4,1,3,94.7,3.4,0,78.4,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,78.4,9.296952,1.098612,7.043021,1 +15,5,95,0,3,525738,0,10903.74,48.48323,1,9,1,463.4948,38.55363,37.24567,0,1732.872,2272.166,1,0,0,13,0,3,94.7,3.4,0,78.4,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,78.4,9.296952,1.098612,7.728489,1 +15,5,95,0,1,525739,0,10903.74,18.30253,0,10.96978,1,0,0,0,0,0,0,0,0,0,0,0,3,96.8,0,0,89.8,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,1,0,0,89.8,9.296952,1.098612,,0 +15,5,95,0,2,525739,0,10903.74,19.30253,0,10.96978,1,0,3.151101,0,0,0,3.151101,0,0,0,0,0,3,96.8,0,0,89.8,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,1,0,0,89.8,9.296952,1.098612,1.147752,1 +15,5,95,0,3,525739,0,10903.74,20.30253,0,10.96978,1,0,0,0,0,0,0,0,0,0,0,0,3,96.8,0,0,89.8,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,1,0,0,89.8,9.296952,1.098612,,0 +15,5,95,0,1,525740,0,10903.74,46.48323,0,10,1,0,0,0,0,0,0,0,0,0,0,0,3,95.7,6.9,1,67,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,1,0,0,67,9.296952,1.098612,,0 +15,5,95,0,2,525740,0,10903.74,47.48323,0,10,1,20.50114,6.324981,45.17844,0,0,72.00455,0,0,0,2,1,3,95.7,6.9,1,67,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,1,0,0,67,9.296952,1.098612,4.27673,1 +15,5,95,0,3,525740,0,10903.74,48.48323,0,10,1,27.33564,0,0,0,0,27.33564,0,0,0,1,0,3,95.7,6.9,1,67,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,1,0,0,67,9.296952,1.098612,3.308191,1 +11,5,0,1,1,525768,0,10955.42,28.04654,0,20,1,0,0,0,0,0,0,0,0,0,0,0,2,64.4,10.3,0,67.9,0,45.12,0,0,.6931472,3.809326,0,0,0,0,0,0,67.9,9.301682,.6931472,,0 +11,5,0,1,2,525768,0,10955.42,29.04654,0,20,1,0,0,0,0,0,0,0,0,0,0,0,2,64.4,10.3,0,67.9,0,45.12,0,0,.6931472,3.809326,0,0,0,0,0,0,67.9,9.301682,.6931472,,0 +11,5,0,1,3,525768,0,10955.42,30.04654,0,20,1,0,0,0,0,0,0,0,0,0,0,0,2,64.4,10.3,0,67.9,0,45.12,0,0,.6931472,3.809326,0,0,0,0,0,0,67.9,9.301682,.6931472,,0 +11,5,0,1,4,525768,0,10955.42,31.04654,0,20,1,0,3.348519,0,0,0,3.348519,0,0,0,0,0,2,64.4,10.3,0,67.9,0,45.12,0,0,.6931472,3.809326,0,0,0,0,0,0,67.9,9.301682,.6931472,1.208518,1 +11,5,0,1,5,525768,0,10955.42,32.04654,0,20,1,13.84083,3.916955,0,0,0,17.75779,0,0,0,1,0,2,64.4,10.3,0,67.9,0,45.12,0,0,.6931472,3.809326,0,0,0,0,0,0,67.9,9.301682,.6931472,2.876824,1 +11,5,0,1,1,525769,0,10955.42,35.30185,1,10.96978,1,41.39651,5.985037,0,0,0,47.38155,0,0,0,1,0,2,76.6,6.9,0,89.8,0,45.12,0,0,.6931472,3.809326,0,0,0,0,0,0,89.8,9.301682,.6931472,3.858233,1 +11,5,0,1,2,525769,0,10955.42,36.30185,1,10.96978,1,16.13647,0,27.81005,0,0,43.94652,0,0,0,1,0,2,76.6,6.9,0,89.8,0,45.12,0,0,.6931472,3.809326,0,0,0,0,0,0,89.8,9.301682,.6931472,3.782973,1 +11,5,0,1,3,525769,0,10955.42,37.30185,1,10.96978,1,2.962336,0,0,0,0,2.962336,0,0,0,0,0,2,76.6,6.9,0,89.8,0,45.12,0,0,.6931472,3.809326,0,0,0,0,0,0,89.8,9.301682,.6931472,1.085978,1 +11,5,0,1,4,525769,0,10955.42,38.30185,1,10.96978,1,0,0,0,0,0,0,0,0,0,0,0,2,76.6,6.9,0,89.8,0,45.12,0,0,.6931472,3.809326,0,0,0,0,0,0,89.8,9.301682,.6931472,,0 +11,5,0,1,5,525769,0,10955.42,39.30185,1,10.96978,1,25.95156,4.615917,25.19031,0,0,55.75779,0,0,0,2,0,2,76.6,6.9,0,89.8,0,45.12,0,0,.6931472,3.809326,0,0,0,0,0,0,89.8,9.301682,.6931472,4.021017,1 +11,5,0,1,1,525789,1,6674.895,26.74059,0,11,1,14.81168,2.839611,0,0,0,17.65129,0,0,0,1,0,2,80.3,6.9,0,66.7,0,0,0,0,.6931472,0,0,0,0,0,0,0,66.7,8.806258,.6931472,2.870809,1 +11,5,0,1,2,525789,1,6674.895,27.74059,0,11,1,0,0,0,0,0,0,0,0,0,0,0,2,80.3,6.9,0,66.7,0,0,0,0,.6931472,0,0,0,0,0,0,0,66.7,8.806258,.6931472,,0 +11,5,0,1,3,525789,1,6674.895,28.74059,0,11,1,42.56055,0,0,0,0,42.56055,0,0,0,1,0,2,80.3,6.9,0,66.7,0,0,0,0,.6931472,0,0,0,0,0,0,0,66.7,8.806258,.6931472,3.750928,1 +11,5,0,0,1,525790,1,6674.895,24.71458,0,9,1,23.2755,0,0,0,2083.072,2106.348,1,0,0,2,0,2,83,3.4,0,69,0,0,0,0,.6931472,0,0,0,0,0,0,0,69,8.806258,.6931472,7.652711,1 +11,5,0,0,2,525790,1,6674.895,25.71458,0,9,1,0,0,0,0,0,0,0,0,0,0,0,2,83,3.4,0,69,0,0,0,0,.6931472,0,0,0,0,0,0,0,69,8.806258,.6931472,,0 +11,5,0,0,3,525790,1,6674.895,26.71458,0,9,1,0,0,0,0,0,0,0,0,0,0,0,2,83,3.4,0,69,0,0,0,0,.6931472,0,0,0,0,0,0,0,69,8.806258,.6931472,,0 +11,5,0,1,1,525791,1,2181.26,35.29911,1,12,1,21.66737,0,0,0,0,21.66737,0,0,0,0,0,1,71.3,10.3,0,61.4,0,0,0,0,0,0,0,0,0,0,0,0,61.4,7.688116,0,3.075808,1 +11,5,0,1,2,525791,1,2181.26,36.29911,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,71.3,10.3,0,61.4,0,0,0,0,0,0,0,0,0,0,0,0,61.4,7.688116,0,,0 +11,5,0,1,3,525791,1,2181.26,37.29911,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,71.3,10.3,0,61.4,0,0,0,0,0,0,0,0,0,0,0,0,61.4,7.688116,0,,0 +16,5,95,1,1,525795,1,8781.362,3.750856,1,14,1,0,0,0,0,0,0,0,0,0,0,0,10,77.40034,10.57626,0,81.5,1000,1000,1,1,2.302585,6.907755,0,4.564348,6.959049,1,0,0,81.5,9.080501,2.302585,,0 +16,5,95,1,2,525795,1,8781.362,4.750855,1,14,1,14.27481,0,0,0,0,14.27481,0,0,0,0,0,12,77.40034,10.57626,0,81.5,1000,1000,1,1,2.484907,6.907755,0,4.564348,6.959049,1,0,0,81.5,9.080501,2.484907,2.658496,1 +16,5,95,1,3,525795,1,8781.362,5.750855,1,14,1,6.271777,0,0,0,0,6.271777,0,0,0,1,0,12,77.40034,10.57626,0,81.5,1000,1000,1,1,2.484907,6.907755,0,4.564348,6.959049,1,0,0,81.5,9.080501,2.484907,1.83606,1 +16,5,95,1,1,525796,1,8781.362,45.56605,0,15,1,3.402807,3.513399,0,0,0,6.916206,0,0,0,0,1,10,82.6,3.4,0,77.3,1000,1000,0,0,2.302585,6.907755,0,4.564348,6.959049,1,0,0,77.3,9.080501,2.302585,1.933867,1 +16,5,95,1,2,525796,1,8781.362,46.56605,0,15,1,19.46565,0,0,0,0,19.46565,0,0,0,0,1,12,82.6,3.4,0,77.3,1000,1000,0,0,2.484907,6.907755,0,4.564348,6.959049,1,0,0,77.3,9.080501,2.484907,2.968651,1 +16,5,95,1,3,525796,1,8781.362,47.56605,0,15,1,15.67944,0,32.73519,0,0,48.41463,0,0,0,2,0,12,82.6,3.4,0,77.3,1000,1000,0,0,2.484907,6.907755,0,4.564348,6.959049,1,0,0,77.3,9.080501,2.484907,3.879802,1 +16,5,95,1,1,525797,1,8781.362,7.931554,1,14,1,16.37601,8.63037,0,0,1629.945,1654.951,2,1,0,0,0,10,98.3,10.57626,0,92.6,1000,1000,1,1,2.302585,6.907755,0,4.564348,6.959049,1,0,0,92.6,9.080501,2.302585,7.411527,1 +16,5,95,1,2,525797,1,8781.362,8.931554,1,14,1,18.70229,4.919847,0,0,0,23.62214,0,0,0,2,0,12,98.3,10.57626,0,92.6,1000,1000,1,1,2.484907,6.907755,0,4.564348,6.959049,1,0,0,92.6,9.080501,2.484907,3.162184,1 +16,5,95,1,3,525797,1,8781.362,9.931554,1,14,1,10.45296,0,0,0,0,10.45296,0,0,0,1,0,12,98.3,10.57626,0,92.6,1000,1000,1,1,2.484907,6.907755,0,4.564348,6.959049,1,0,0,92.6,9.080501,2.484907,2.346885,1 +16,5,95,1,1,525798,1,8781.362,3.750856,1,14,1,175.2446,2.41174,0,0,0,177.6563,0,0,0,3,0,10,77.40034,10.57626,0,88.9,1000,1000,1,1,2.302585,6.907755,0,4.564348,6.959049,1,0,0,88.9,9.080501,2.302585,5.179851,1 +16,5,95,1,2,525798,1,8781.362,4.750855,1,14,1,0,0,0,0,0,0,0,0,0,0,0,12,77.40034,10.57626,0,88.9,1000,1000,1,1,2.484907,6.907755,0,4.564348,6.959049,1,0,0,88.9,9.080501,2.484907,,0 +16,5,95,1,3,525798,1,8781.362,5.750855,1,14,1,4.878049,0,0,0,0,4.878049,0,0,0,1,0,12,77.40034,10.57626,0,88.9,1000,1000,1,1,2.484907,6.907755,0,4.564348,6.959049,1,0,0,88.9,9.080501,2.484907,1.584745,1 +16,5,95,1,1,525799,1,8781.362,13.62902,0,14,1,0,0,0,0,0,0,0,0,0,0,0,10,96.7,10.57626,0,92.6,1000,1000,1,0,2.302585,6.907755,0,4.564348,6.959049,1,0,0,92.6,9.080501,2.302585,,0 +16,5,95,1,2,525799,1,8781.362,14.62902,0,14,1,0,0,0,0,0,0,0,0,0,0,0,12,96.7,10.57626,0,92.6,1000,1000,1,0,2.484907,6.907755,0,4.564348,6.959049,1,0,0,92.6,9.080501,2.484907,,0 +16,5,95,1,3,525799,1,8781.362,15.62902,0,14,1,0,0,0,0,0,0,0,0,0,0,0,12,96.7,10.57626,0,92.6,1000,1000,1,0,2.484907,6.907755,0,4.564348,6.959049,1,0,0,92.6,9.080501,2.484907,,0 +16,5,95,1,1,525800,1,8781.362,12.29569,1,14,1,0,0,0,0,0,0,0,0,0,0,0,10,95,10.57626,0,92.6,1000,1000,1,1,2.302585,6.907755,0,4.564348,6.959049,1,0,0,92.6,9.080501,2.302585,,0 +16,5,95,1,2,525800,1,8781.362,13.29569,1,14,1,0,0,0,0,0,0,0,0,0,0,0,12,95,10.57626,0,92.6,1000,1000,1,1,2.484907,6.907755,0,4.564348,6.959049,1,0,0,92.6,9.080501,2.484907,,0 +16,5,95,1,3,525800,1,8781.362,14.29569,1,14,1,10.45296,0,25,0,0,35.45296,0,0,0,1,0,12,95,10.57626,0,92.6,1000,1000,1,1,2.484907,6.907755,0,4.564348,6.959049,1,0,0,92.6,9.080501,2.484907,3.568207,1 +16,5,95,1,1,525801,1,8781.362,37.54415,1,14,1,24.67035,4.079115,0,0,626.5419,655.2914,1,0,0,0,0,10,85.6,10.3,1,64.3,1000,1000,0,0,2.302585,6.907755,0,4.564348,6.959049,1,0,0,64.3,9.080501,2.302585,6.48508,1 +16,5,95,1,2,525801,1,8781.362,38.54415,1,14,1,35.1145,0,0,0,0,35.1145,0,0,0,0,0,12,85.6,10.3,1,64.3,1000,1000,0,0,2.484907,6.907755,0,4.564348,6.959049,1,0,0,64.3,9.080501,2.484907,3.558614,1 +16,5,95,1,3,525801,1,8781.362,39.54415,1,14,1,12.89199,5.205575,0,0,1611.498,1629.596,2,1,0,2,0,12,85.6,10.3,1,64.3,1000,1000,0,0,2.484907,6.907755,0,4.564348,6.959049,1,0,0,64.3,9.080501,2.484907,7.396087,1 +16,5,95,1,1,525802,1,8781.362,10.18207,0,14,1,0,0,0,0,0,0,0,0,0,0,0,10,91.7,10.57626,0,88.9,1000,1000,1,0,2.302585,6.907755,0,4.564348,6.959049,1,0,0,88.9,9.080501,2.302585,,0 +16,5,95,1,2,525802,1,8781.362,11.18207,0,14,1,0,0,0,0,0,0,0,0,0,0,0,12,91.7,10.57626,0,88.9,1000,1000,1,0,2.484907,6.907755,0,4.564348,6.959049,1,0,0,88.9,9.080501,2.484907,,0 +16,5,95,1,3,525802,1,8781.362,12.18207,0,14,1,0,0,0,0,0,0,0,0,0,0,0,12,91.7,10.57626,0,88.9,1000,1000,1,0,2.484907,6.907755,0,4.564348,6.959049,1,0,0,88.9,9.080501,2.484907,,0 +17,5,25,1,1,525812,1,10108.5,37.70842,1,18,1,20.81269,0,0,0,370.6393,391.4519,1,0,0,3,0,2,87.2,10.3,0,59.1,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,59.1,9.221231,.6931472,5.969863,1 +17,5,25,1,2,525812,1,10108.5,38.70842,1,18,1,57.36576,33.66682,0,0,0,91.03259,0,0,0,6,0,2,87.2,10.3,0,59.1,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,59.1,9.221231,.6931472,4.511218,1 +17,5,25,1,3,525812,1,10108.5,39.70842,1,18,1,0,0,0,0,0,0,0,0,0,0,0,2,87.2,10.3,0,59.1,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,59.1,9.221231,.6931472,,0 +17,5,25,1,4,525812,1,10108.5,40.70842,1,18,1,24.5561,1.824707,0,0,0,26.38081,0,0,0,1,0,2,87.2,10.3,0,59.1,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,59.1,9.221231,.6931472,3.272637,1 +17,5,25,1,5,525812,1,10108.5,41.70842,1,18,1,0,0,0,0,0,0,0,0,0,0,0,2,87.2,10.3,0,59.1,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,59.1,9.221231,.6931472,,0 +17,5,25,1,1,525813,1,10108.5,37.04038,0,14,1,106.2934,17.31913,0,0,0,123.6125,0,0,0,5,0,2,68.1,13.8,0,63.6,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,63.6,9.221231,.6931472,4.817152,1 +17,5,25,1,2,525813,1,10108.5,38.04038,0,14,1,6.883892,3.487839,0,0,0,10.37173,0,0,0,1,0,2,68.1,13.8,0,63.6,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,63.6,9.221231,.6931472,2.339084,1 +17,5,25,1,3,525813,1,10108.5,39.04038,0,14,1,91.92259,81.22844,0,0,396.2979,569.4489,1,0,0,4,0,2,68.1,13.8,0,63.6,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,63.6,9.221231,.6931472,6.344669,1 +17,5,25,1,4,525813,1,10108.5,40.04038,0,14,1,84.05743,14.54855,0,0,886.2864,984.8923,1,0,0,5,0,2,68.1,13.8,0,63.6,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,63.6,9.221231,.6931472,6.892532,1 +17,5,25,1,5,525813,1,10108.5,41.04038,0,14,1,0,0,0,0,0,0,0,0,0,0,0,2,68.1,13.8,0,63.6,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,63.6,9.221231,.6931472,,0 +10,5,50,0,1,525816,0,6674.895,56.43258,1,7,1,0,0,0,0,0,0,0,0,0,0,0,3,68.1,20.7,1,56,1000,0,0,0,1.098612,0,0,3.931826,7.600903,0,1,0,56,8.806258,1.098612,,0 +10,5,50,0,2,525816,0,6674.895,57.43258,1,7,1,0,0,0,0,0,0,0,0,0,0,0,3,68.1,20.7,1,56,1000,0,0,0,1.098612,0,0,3.931826,7.600903,0,1,0,56,8.806258,1.098612,,0 +10,5,50,0,3,525816,0,6674.895,58.43258,1,7,1,0,0,0,0,0,0,0,0,0,0,0,3,68.1,20.7,1,56,1000,0,0,0,1.098612,0,0,3.931826,7.600903,0,1,0,56,8.806258,1.098612,,0 +10,5,50,0,1,525817,0,6674.895,17.58522,0,7,1,0,0,0,0,0,0,0,0,0,0,0,3,80.3,3.4,0,64.8,1000,0,1,0,1.098612,0,0,3.931826,7.600903,0,0,0,64.8,8.806258,1.098612,,0 +10,5,50,0,2,525817,0,6674.895,18.58522,0,7,1,0,0,0,0,0,0,0,0,0,0,0,3,80.3,3.4,0,64.8,1000,0,0,0,1.098612,0,0,3.931826,7.600903,0,0,0,64.8,8.806258,1.098612,,0 +10,5,50,0,3,525817,0,6674.895,19.58522,0,7,1,0,0,0,0,0,0,0,0,0,0,0,3,80.3,3.4,0,64.8,1000,0,0,0,1.098612,0,0,3.931826,7.600903,0,0,0,64.8,8.806258,1.098612,,0 +10,5,50,0,1,525818,0,6674.895,57.9165,0,6,1,15.52531,2.007656,0,0,0,17.53296,0,0,0,1,0,3,81.9,13.8,0,61.4,1000,0,0,0,1.098612,0,0,3.931826,7.600903,1,0,0,61.4,8.806258,1.098612,2.864083,1 +10,5,50,0,2,525818,0,6674.895,58.9165,0,6,1,8.015267,0,0,0,0,8.015267,0,0,0,1,0,3,81.9,13.8,0,61.4,1000,0,0,0,1.098612,0,0,3.931826,7.600903,1,0,0,61.4,8.806258,1.098612,2.081348,1 +10,5,50,0,3,525818,0,6674.895,59.9165,0,6,1,0,0,0,0,0,0,0,0,0,0,0,3,81.9,13.8,0,61.4,1000,0,0,0,1.098612,0,0,3.931826,7.600903,1,0,0,61.4,8.806258,1.098612,,0 +13,5,0,1,1,525820,1,4072.727,14.91581,1,7,1,0,0,0,0,0,0,0,0,0,0,0,4,41.5,6.9,0,48.9,450,0,1,1,1.386294,0,1,4.564348,6.160541,1,0,0,48.9,8.312314,1.386294,,0 +13,5,0,1,2,525820,1,4072.727,15.91581,1,7,1,0,0,0,0,0,0,0,0,0,0,0,4,41.5,6.9,0,48.9,450,0,1,1,1.386294,0,1,4.564348,6.160541,1,0,0,48.9,8.312314,1.386294,,0 +13,5,0,1,3,525820,1,4072.727,16.91581,1,7,1,0,0,0,0,0,0,0,0,0,0,0,4,41.5,6.9,0,48.9,450,0,1,1,1.386294,0,1,4.564348,6.160541,1,0,0,48.9,8.312314,1.386294,,0 +13,5,0,1,4,525820,1,4072.727,17.91581,1,7,1,0,0,0,0,0,0,0,0,0,0,0,4,41.5,6.9,0,48.9,450,0,1,1,1.386294,0,1,4.564348,6.160541,1,0,0,48.9,8.312314,1.386294,,0 +13,5,0,1,5,525820,1,4072.727,18.91581,1,7,1,0,0,0,0,0,0,0,0,0,0,0,4,41.5,6.9,0,48.9,450,0,0,0,1.386294,0,1,4.564348,6.160541,1,0,0,48.9,8.312314,1.386294,,0 +13,5,0,1,1,525821,1,4072.727,37.25941,1,7,1,8.72818,0,0,0,0,8.72818,0,0,0,1,0,4,39.4,20.7,1,54.5,450,0,0,0,1.386294,0,1,4.564348,6.160541,0,0,1,54.5,8.312314,1.386294,2.166557,1 +13,5,0,1,2,525821,1,4072.727,38.25941,1,7,1,0,0,0,0,0,0,0,0,0,0,0,4,39.4,20.7,1,54.5,450,0,0,0,1.386294,0,1,4.564348,6.160541,0,0,1,54.5,8.312314,1.386294,,0 +13,5,0,1,3,525821,1,4072.727,39.25941,1,7,1,0,0,0,0,0,0,0,0,0,0,0,4,39.4,20.7,1,54.5,450,0,0,0,1.386294,0,1,4.564348,6.160541,0,0,1,54.5,8.312314,1.386294,,0 +13,5,0,1,4,525821,1,4072.727,40.25941,1,7,1,0,0,0,0,0,0,0,0,0,0,0,4,39.4,20.7,1,54.5,450,0,0,0,1.386294,0,1,4.564348,6.160541,0,0,1,54.5,8.312314,1.386294,,0 +13,5,0,1,5,525821,1,4072.727,41.25941,1,7,1,38.06228,1.67474,0,0,0,39.73702,0,0,0,0,1,4,39.4,20.7,1,54.5,450,0,0,0,1.386294,0,1,4.564348,6.160541,0,0,1,54.5,8.312314,1.386294,3.682283,1 +13,5,0,1,1,525822,1,4072.727,7.526352,1,7,1,8.72818,0,0,0,0,8.72818,0,0,0,0,0,4,77.8,10.57626,0,51.9,450,0,1,1,1.386294,0,1,4.564348,6.160541,1,0,0,51.9,8.312314,1.386294,2.166557,1 +13,5,0,1,2,525822,1,4072.727,8.526352,1,7,1,0,0,0,0,0,0,0,0,0,0,0,4,77.8,10.57626,0,51.9,450,0,1,1,1.386294,0,1,4.564348,6.160541,1,0,0,51.9,8.312314,1.386294,,0 +13,5,0,1,3,525822,1,4072.727,9.526352,1,7,1,0,0,0,0,0,0,0,0,0,0,0,4,77.8,10.57626,0,51.9,450,0,1,1,1.386294,0,1,4.564348,6.160541,1,0,0,51.9,8.312314,1.386294,,0 +13,5,0,1,4,525822,1,4072.727,10.52635,1,7,1,0,0,0,0,0,0,0,0,0,0,0,4,77.8,10.57626,0,51.9,450,0,1,1,1.386294,0,1,4.564348,6.160541,1,0,0,51.9,8.312314,1.386294,,0 +13,5,0,1,5,525822,1,4072.727,11.52635,1,7,1,0,0,0,0,0,0,0,0,0,0,0,4,77.8,10.57626,0,51.9,450,0,1,1,1.386294,0,1,4.564348,6.160541,1,0,0,51.9,8.312314,1.386294,,0 +13,5,0,1,1,525823,1,4072.727,13.92471,1,7,1,0,0,0,0,0,0,0,0,0,0,0,4,58.3,10.57626,0,77.8,450,0,1,1,1.386294,0,1,4.564348,6.160541,0,0,0,77.8,8.312314,1.386294,,0 +13,5,0,1,2,525823,1,4072.727,14.92471,1,7,1,0,0,0,0,0,0,0,0,0,0,0,4,58.3,10.57626,0,77.8,450,0,1,1,1.386294,0,1,4.564348,6.160541,0,0,0,77.8,8.312314,1.386294,,0 +13,5,0,1,3,525823,1,4072.727,15.92471,1,7,1,0,0,0,0,0,0,0,0,0,0,0,4,58.3,10.57626,0,77.8,450,0,1,1,1.386294,0,1,4.564348,6.160541,0,0,0,77.8,8.312314,1.386294,,0 +13,5,0,1,4,525823,1,4072.727,16.92471,1,7,1,0,0,0,0,0,0,0,0,0,0,0,4,58.3,10.57626,0,77.8,450,0,1,1,1.386294,0,1,4.564348,6.160541,0,0,0,77.8,8.312314,1.386294,,0 +13,5,0,1,5,525823,1,4072.727,17.92471,1,7,1,0,0,0,0,501.9031,501.9031,1,0,0,0,0,4,58.3,10.57626,0,77.8,450,0,1,1,1.386294,0,1,4.564348,6.160541,0,0,0,77.8,8.312314,1.386294,6.218407,1 +11,5,0,1,1,525832,1,5341.014,6.833675,1,13,1,8.413967,2.099285,0,0,0,10.51325,0,0,0,0,1,4,90,10.57626,0,70.4,0,592.32,1,1,1.386294,6.384047,0,0,0,0,0,0,70.4,8.583358,1.386294,2.352637,1 +11,5,0,1,2,525832,1,5341.014,7.833675,1,13,1,42.68984,5.379675,0,0,0,48.06951,0,0,0,3,0,4,90,10.57626,0,70.4,0,592.32,1,1,1.386294,6.384047,0,0,0,0,0,0,70.4,8.583358,1.386294,3.872648,1 +11,5,0,1,3,525832,1,5341.014,8.833675,1,13,1,15.43739,6.490566,0,0,0,21.92796,0,0,0,1,0,4,90,10.57626,0,70.4,0,592.32,1,1,1.386294,6.384047,0,0,0,0,0,0,70.4,8.583358,1.386294,3.087763,1 +11,5,0,1,1,525833,1,5341.014,27.35113,0,12,1,19.35213,23.44973,0,0,0,42.80185,0,0,0,1,0,4,80.9,0,0,72.7,0,592.32,0,0,1.386294,6.384047,0,0,0,1,0,0,72.7,8.583358,1.386294,3.756581,1 +11,5,0,1,2,525833,1,5341.014,28.35113,0,12,1,47.60106,6.210804,0,0,0,53.81186,0,0,0,2,0,4,80.9,0,0,72.7,0,592.32,0,0,1.386294,6.384047,0,0,0,1,0,0,72.7,8.583358,1.386294,3.985494,1 +11,5,0,1,3,525833,1,5341.014,29.35113,0,12,1,8.576329,6.133791,0,0,0,14.71012,0,0,0,1,0,4,80.9,0,0,72.7,0,592.32,0,0,1.386294,6.384047,0,0,0,1,0,0,72.7,8.583358,1.386294,2.688536,1 +11,5,0,1,1,525834,1,5341.014,28.93087,1,13,1,18.93143,14.92638,33.496,0,0,67.35381,0,0,0,1,1,4,75.5,13.8,0,53.4,0,592.32,0,0,1.386294,6.384047,0,0,0,1,0,0,53.4,8.583358,1.386294,4.20996,1 +11,5,0,1,2,525834,1,5341.014,29.93087,1,13,1,42.29316,9.180204,0,0,367.9637,419.4371,1,0,0,4,0,4,75.5,13.8,0,53.4,0,592.32,0,0,1.386294,6.384047,0,0,0,1,0,0,53.4,8.583358,1.386294,6.038914,1 +11,5,0,1,3,525834,1,5341.014,30.93087,1,13,1,60.72041,21.64322,23.54717,0,1147.17,1253.081,2,0,0,1,1,4,75.5,13.8,0,53.4,0,592.32,0,0,1.386294,6.384047,0,0,0,1,0,0,53.4,8.583358,1.386294,7.13336,1 +16,5,95,1,1,525840,0,10012.9,24.71184,1,12,1,9.975062,0,0,0,517.4065,527.3815,1,0,0,1,0,1,88.3,6.9,0,73.9,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,1,0,0,73.9,9.21173,0,6.267924,1 +16,5,95,1,2,525840,0,10012.9,25.71184,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,88.3,6.9,0,73.9,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,73.9,9.21173,.6931472,,0 +16,5,95,1,3,525840,0,10012.9,26.71184,1,12,1,5.07829,0,0,0,0,5.07829,0,0,0,1,0,2,88.3,6.9,0,73.9,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,73.9,9.21173,.6931472,1.624975,1 +16,5,95,1,4,525840,0,10012.9,27.71184,1,12,1,0,3.834472,0,0,0,3.834472,0,0,0,0,0,2,88.3,6.9,0,73.9,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,73.9,9.21173,.6931472,1.344032,1 +16,5,95,1,5,525840,0,10012.9,28.71184,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,88.3,6.9,0,73.9,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,73.9,9.21173,.6931472,,0 +11,5,0,1,1,525846,.4758801,3645.161,21.71937,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,83.5,3.4,0,52.3,0,0,0,0,0,0,0,0,0,0,1,0,52.3,8.20143,0,,0 +11,5,0,1,2,525846,.4758801,3645.161,22.71937,0,12,1,19.83377,0,0,0,0,19.83377,0,0,0,1,0,1,83.5,3.4,0,52.3,0,0,0,0,0,0,0,0,0,0,1,0,52.3,8.20143,0,2.987386,1 +11,5,0,1,3,525846,.4758801,3645.161,23.71937,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,83.5,3.4,0,52.3,0,0,0,0,0,0,0,0,0,0,1,0,52.3,8.20143,0,,0 +11,5,0,1,1,525857,1,7213.006,38.59274,1,7,1,50.02084,16.69862,31.26303,0,0,97.98249,0,0,0,7,1,3,36.2,37.9,1,23.9,0,624.78,0,0,1.098612,6.437399,0,0,0,0,1,0,23.9,8.88378,1.098612,4.584789,1 +11,5,0,1,2,525857,1,7213.006,39.59274,1,7,1,31.50788,27.06301,0,0,0,58.57089,0,0,0,5,0,2,36.2,37.9,1,23.9,0,624.78,0,0,.6931472,6.437399,0,0,0,0,1,0,23.9,8.88378,.6931472,4.070238,1 +11,5,0,1,3,525857,1,7213.006,40.59274,1,7,1,35.85927,20.86265,25.37212,0,0,82.09405,0,0,0,6,1,2,36.2,37.9,1,23.9,0,624.78,0,0,.6931472,6.437399,0,0,0,0,1,0,23.9,8.88378,.6931472,4.407866,1 +11,5,0,1,1,525858,.4758801,1475.166,19.08829,1,9,1,0,4.827011,0,0,0,4.827011,0,0,0,0,0,1,80.9,3.4,0,72.7,0,0,0,0,0,0,0,0,0,0,0,0,72.7,7.297204,0,1.574227,1 +11,5,0,1,2,525858,.4758801,1475.166,20.08829,1,9,1,0,2.171793,0,0,625.2813,627.4531,1,1,0,0,0,1,80.9,3.4,0,72.7,0,0,0,0,0,0,0,0,0,0,0,0,72.7,7.297204,0,6.441669,1 +11,5,0,1,3,525858,.4758801,1475.166,21.08829,1,9,1,0,2.026387,0,0,0,2.026387,0,0,0,0,0,2,80.9,3.4,0,72.7,0,0,0,0,.6931472,0,0,0,0,0,0,0,72.7,7.297204,.6931472,.7062544,1 +11,5,0,1,1,525859,.4758801,6674.895,3.518138,1,6,1,39.18299,7.386411,0,0,0,46.5694,0,0,0,4,0,2,77.40034,10.57626,0,85.2,0,0,1,1,.6931472,0,0,0,0,1,0,0,85.2,8.806258,.6931472,3.840944,1 +11,5,0,1,2,525859,.4758801,6674.895,4.518138,1,6,1,14.25356,7.108027,0,0,0,21.36159,0,0,0,3,0,2,77.40034,10.57626,0,85.2,0,0,1,1,.6931472,0,0,0,0,1,0,0,85.2,8.806258,.6931472,3.061594,1 +11,5,0,1,3,525859,.4758801,6674.895,5.518138,1,6,1,31.79973,18.62652,0,0,0,50.42625,0,0,0,5,0,2,77.40034,10.57626,0,85.2,0,0,1,1,.6931472,0,0,0,0,1,0,0,85.2,8.806258,.6931472,3.920512,1 +11,5,0,1,1,525860,1,7213.006,42.76249,0,7,1,107.4614,31.55482,65.98582,0,438.0992,643.1013,1,0,0,9,1,3,86.7,17.2,0,61.4,0,624.78,0,0,1.098612,6.437399,0,0,0,1,0,0,61.4,8.88378,1.098612,6.466302,1 +11,5,0,1,2,525860,1,7213.006,43.76249,0,7,1,16.50413,22.54314,25.54389,0,0,64.59115,0,0,0,3,0,2,86.7,17.2,0,61.4,0,624.78,0,0,.6931472,6.437399,0,0,0,1,0,0,61.4,8.88378,.6931472,4.168077,1 +11,5,0,1,3,525860,1,7213.006,44.76249,0,7,1,51.08254,21.83694,67.91272,0,0,140.8322,0,0,0,5,1,2,86.7,17.2,0,61.4,0,624.78,0,0,.6931472,6.437399,0,0,0,1,0,0,61.4,8.88378,.6931472,4.947569,1 +11,5,0,1,1,525861,.4758801,6674.895,20.45175,1,6,1,18.75782,9.470613,0,0,0,28.22843,0,0,0,2,0,2,55.4,13.8,1,55.7,0,0,0,0,.6931472,0,0,0,0,1,0,0,55.7,8.806258,.6931472,3.34033,1 +11,5,0,1,2,525861,.4758801,6674.895,21.45175,1,6,1,22.50563,15.05251,0,0,0,37.55814,0,0,0,2,0,2,55.4,13.8,1,55.7,0,0,0,0,.6931472,0,0,0,0,1,0,0,55.7,8.806258,.6931472,3.62589,1 +11,5,0,1,3,525861,.4758801,6674.895,22.45175,1,6,1,54.1272,17.74357,25.37212,0,0,97.2429,0,0,0,1,1,2,55.4,13.8,1,55.7,0,0,0,0,.6931472,0,0,0,0,1,0,0,55.7,8.806258,.6931472,4.577212,1 +11,5,0,1,1,525862,1,7213.006,16.13416,0,7,1,53.48062,1.875782,31.47145,0,0,86.82784,0,0,0,2,1,3,83,0,0,76.1,0,624.78,1,0,1.098612,6.437399,0,0,0,0,1,0,76.1,8.88378,1.098612,4.463927,1 +13,5,0,1,1,525863,0,9026.113,43.22519,1,12,1,32.11399,1.829009,0,0,0,33.943,0,0,0,2,0,6,87.8,10.3,1,68.2,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,68.2,9.107988,1.791759,3.524683,1 +13,5,0,1,2,525863,0,9026.113,44.22519,1,12,1,80.34351,1.992366,0,0,0,82.33588,0,0,0,2,0,7,87.8,10.3,1,68.2,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,1,0,0,68.2,9.107988,1.94591,4.410807,1 +13,5,0,1,3,525863,0,9026.113,45.22519,1,12,1,115.5052,32.63066,24.73868,0,932.0557,1104.93,1,0,0,6,1,7,87.8,10.3,1,68.2,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,1,0,0,68.2,9.107988,1.94591,7.007537,1 +13,5,0,1,1,525864,0,9026.113,5.538672,0,12,1,60.39983,11.08465,17.01404,0,0,88.49851,0,0,0,5,2,6,88.3,10.57626,0,92.6,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,92.6,9.107988,1.791759,4.482986,1 +13,5,0,1,2,525864,0,9026.113,6.538672,0,12,1,27.48092,12.03435,0,0,0,39.51527,0,0,0,3,1,7,88.3,10.57626,0,92.6,450,450,1,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,92.6,9.107988,1.94591,3.676687,1 +13,5,0,1,3,525864,0,9026.113,7.538672,0,12,1,60.27874,2.522648,28.57143,0,0,91.37283,0,0,0,4,4,7,88.3,10.57626,0,92.6,450,450,1,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,92.6,9.107988,1.94591,4.514948,1 +13,5,0,1,1,525865,0,9026.113,16.19439,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,88.8,0,1,85.2,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.107988,1.791759,,0 +13,5,0,1,2,525865,0,9026.113,17.19439,1,12,1,28.62595,0,0,0,0,28.62595,0,0,0,3,0,7,88.8,0,1,85.2,450,450,1,1,1.94591,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.107988,1.94591,3.354314,1 +13,5,0,1,3,525865,0,9026.113,18.19439,1,12,1,0,2.010453,0,0,0,2.010453,0,0,0,0,0,7,88.8,0,1,85.2,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.107988,1.94591,.6983601,1 +13,5,0,1,1,525866,0,9026.113,43.78645,0,13,1,101.2335,23.46661,27.64781,0,0,152.3479,0,0,0,4,1,6,89.4,10.3,0,96.6,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,96.6,9.107988,1.791759,5.026167,1 +13,5,0,1,2,525866,0,9026.113,44.78645,0,13,1,0,2.698473,0,0,0,2.698473,0,0,0,0,0,7,89.4,10.3,0,96.6,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,96.6,9.107988,1.94591,.9926862,1 +13,5,0,1,3,525866,0,9026.113,45.78645,0,13,1,21.25435,2.623693,0,0,0,23.87805,0,0,0,2,0,7,89.4,10.3,0,96.6,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,96.6,9.107988,1.94591,3.17296,1 +13,5,0,1,1,525867,0,9026.113,13.42094,0,12,1,5.954913,26.8439,0,8.507018,0,32.79881,0,0,1,1,0,6,85,10.57626,0,85.2,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.107988,1.791759,3.490392,1 +13,5,0,1,2,525867,0,9026.113,14.42094,0,12,1,17.55725,38.82443,0,0,0,56.38168,0,0,0,2,0,7,85,10.57626,0,85.2,450,450,1,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.107988,1.94591,4.032144,1 +13,5,0,1,3,525867,0,9026.113,15.42094,0,12,1,8.36237,33.81882,0,0,0,42.18118,0,0,0,1,0,7,85,10.57626,0,85.2,450,450,1,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.107988,1.94591,3.741974,1 +13,5,0,1,1,525868,0,9026.113,17.28131,1,12,1,93.78988,15.02339,0,0,739.6852,848.4985,1,0,0,6,0,6,48.4,3.4,0,50,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,50,9.107988,1.791759,6.743468,1 +13,5,0,1,2,525868,0,9026.113,18.28131,1,12,1,121.6603,7.21374,3.156489,0,0,132.0305,0,0,0,3,0,7,48.4,3.4,0,50,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,50,9.107988,1.94591,4.883033,1 +13,5,0,1,3,525868,0,9026.113,19.28131,1,12,1,141.6202,67.01045,28.09408,0,0,236.7247,0,0,0,8,1,7,48.4,3.4,0,50,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,50,9.107988,1.94591,5.466898,1 +11,5,0,0,1,525869,0,5852.786,37.96578,1,5,1,252.6683,144.3741,28.42893,0,0,425.4713,0,0,0,9,0,4,35.1,58.6,1,34.5,0,468,0,0,1.386294,6.148468,0,0,0,0,0,1,34.5,8.674844,1.386294,6.053197,1 +11,5,0,0,2,525869,0,5852.786,38.96578,1,5,1,5.532504,221.1849,0,0,0,226.7174,0,0,0,1,0,4,35.1,58.6,1,34.5,0,468,0,0,1.386294,6.148468,0,0,0,0,0,1,34.5,8.674844,1.386294,5.423704,1 +11,5,0,0,3,525869,0,5852.786,39.96578,1,5,1,90.13966,173.5506,46.55099,0,2108.76,2419.001,1,0,0,7,1,4,35.1,58.6,1,34.5,0,468,0,0,1.386294,6.148468,0,0,0,0,0,1,34.5,8.674844,1.386294,7.79111,1 +11,5,0,0,4,525869,0,5852.786,40.96578,1,5,1,212.9841,579.0623,0,0,0,792.0463,0,0,0,19,0,4,35.1,58.6,1,34.5,0,468,0,0,1.386294,6.148468,0,0,0,0,0,1,34.5,8.674844,1.386294,6.67462,1 +11,5,0,0,5,525869,0,5852.786,41.96578,1,5,1,496.0208,706.3979,38.14533,0,0,1240.564,0,0,0,21,1,3,35.1,58.6,1,34.5,0,468,0,0,1.098612,6.148468,0,0,0,0,0,1,34.5,8.674844,1.098612,7.123322,1 +11,5,0,0,1,525870,0,5852.786,15.43874,0,5,1,19.95012,0,0,0,0,19.95012,0,0,0,1,0,4,68.1,10.3,0,65.9,0,468,1,0,1.386294,6.148468,0,0,0,0,1,0,65.9,8.674844,1.386294,2.993235,1 +11,5,0,0,2,525870,0,5852.786,16.43874,0,5,1,0,0,0,0,0,0,0,0,0,0,0,4,68.1,10.3,0,65.9,0,468,1,0,1.386294,6.148468,0,0,0,0,1,0,65.9,8.674844,1.386294,,0 +11,5,0,0,3,525870,0,5852.786,17.43874,0,5,1,5.07829,13.64791,0,0,0,18.7262,0,0,0,1,0,4,68.1,10.3,0,65.9,0,468,1,0,1.386294,6.148468,0,0,0,0,1,0,65.9,8.674844,1.386294,2.929923,1 +11,5,0,0,4,525870,0,5852.786,18.43874,0,5,.1065574,0,0,0,0,0,0,0,0,0,0,0,4,68.1,10.3,0,65.9,0,468,0,0,1.386294,6.148468,0,0,0,0,1,0,65.9,8.674844,1.386294,,0 +11,5,0,0,1,525871,0,5852.786,17.21834,0,5,1,37.90524,55.24189,0,112.2195,0,93.14713,0,0,5,2,0,4,77.7,6.9,0,58.7,0,468,1,0,1.386294,6.148468,0,0,0,0,0,1,58.7,8.674844,1.386294,4.53418,1 +11,5,0,0,2,525871,0,5852.786,18.21834,0,5,1,0,57.14615,0,41.49377,0,57.14615,0,0,2,0,0,4,77.7,6.9,0,58.7,0,468,0,0,1.386294,6.148468,0,0,0,0,0,1,58.7,8.674844,1.386294,4.045612,1 +11,5,0,0,3,525871,0,5852.786,19.21834,0,5,1,12.69573,0,36.39441,0,0,49.09014,0,0,0,0,1,4,77.7,6.9,0,58.7,0,468,0,0,1.386294,6.148468,0,0,0,0,0,1,58.7,8.674844,1.386294,3.893658,1 +11,5,0,0,4,525871,0,5852.786,20.21834,0,5,1,81.62491,35.66819,22.39939,0,1021.26,1160.953,1,0,0,4,1,4,77.7,6.9,0,58.7,0,468,0,0,1.386294,6.148468,0,0,0,0,0,1,58.7,8.674844,1.386294,7.056996,1 +11,5,0,0,5,525871,0,5852.786,21.21834,0,5,1,253.9792,188.6125,39.66436,0,0,482.256,0,0,0,7,3,3,77.7,6.9,0,58.7,0,468,0,0,1.098612,6.148468,0,0,0,0,0,1,58.7,8.674844,1.098612,6.178475,1 +11,5,0,0,1,525872,0,5852.786,40.84326,0,9,1,0,0,0,0,0,0,0,0,0,0,0,4,61.2,3.4,0,62.5,0,468,0,0,1.386294,6.148468,0,0,0,0,0,0,62.5,8.674844,1.386294,,0 +11,5,0,0,2,525872,0,5852.786,41.84326,0,9,1,0,0,0,0,0,0,0,0,0,0,0,4,61.2,3.4,0,62.5,0,468,0,0,1.386294,6.148468,0,0,0,0,0,0,62.5,8.674844,1.386294,,0 +11,5,0,0,3,525872,0,5852.786,42.84326,0,9,1,0,0,0,0,0,0,0,0,0,0,0,4,61.2,3.4,0,62.5,0,468,0,0,1.386294,6.148468,0,0,0,0,0,0,62.5,8.674844,1.386294,,0 +11,5,0,0,4,525872,0,5852.786,43.84326,0,9,1,0,0,0,0,0,0,0,0,0,0,0,4,61.2,3.4,0,62.5,0,468,0,0,1.386294,6.148468,0,0,0,0,0,0,62.5,8.674844,1.386294,,0 +11,5,0,0,5,525872,0,5852.786,44.84326,0,9,1,27.68166,2.159169,0,0,0,29.84083,0,0,0,1,0,3,61.2,3.4,0,62.5,0,468,0,0,1.098612,6.148468,0,0,0,0,0,0,62.5,8.674844,1.098612,3.395878,1 +11,5,0,0,1,525929,0,4952.893,29.2731,0,10,1,0,.8844689,0,0,0,.8844689,0,0,0,0,0,1,43.6,0,1,47.7,0,56.4,0,0,0,4.032469,0,0,0,0,0,0,47.7,8.507929,0,-.1227679,1 +11,5,0,0,2,525929,0,4952.893,30.2731,0,10,1,151.8603,0,0,0,0,151.8603,0,0,0,0,14,1,43.6,0,1,47.7,0,56.4,0,0,0,4.032469,0,0,0,0,0,0,47.7,8.507929,0,5.022961,1 +11,5,0,0,3,525929,0,4952.893,31.2731,0,10,1,276.8166,0,0,0,0,276.8166,0,0,0,0,31,1,43.6,0,1,47.7,0,56.4,0,0,0,4.032469,0,0,0,0,0,0,47.7,8.507929,0,5.623355,1 +11,5,0,1,1,525939,0,6264.516,21.45106,1,13,1,45.13716,14.68828,0,0,0,59.82544,0,0,0,3,1,2,56.9,13.8,0,70.5,0,0,0,0,.6931472,0,0,0,0,0,0,0,70.5,8.742816,.6931472,4.091431,1 +11,5,0,1,2,525939,0,6264.516,22.45106,1,13,1,22.13001,23.0521,0,0,0,45.18211,0,0,0,3,0,2,56.9,13.8,0,70.5,0,0,0,0,.6931472,0,0,0,0,0,0,0,70.5,8.742816,.6931472,3.810701,1 +11,5,0,1,3,525939,0,6264.516,23.45106,1,13,1,26.66102,68.47228,0,0,0,95.13331,0,0,0,2,0,2,56.9,13.8,0,70.5,0,0,0,0,.6931472,0,0,0,0,0,0,0,70.5,8.742816,.6931472,4.555279,1 +11,5,0,1,4,525939,0,6264.516,24.45106,1,13,1,70.61504,23.97494,0,33.21944,0,94.58997,0,0,3,2,0,2,56.9,13.8,0,70.5,0,0,0,0,.6931472,0,0,0,0,0,0,0,70.5,8.742816,.6931472,4.549551,1 +11,5,0,1,5,525939,0,6264.516,25.45106,1,13,1,18.3391,68.27682,0,19.03114,0,86.61591,0,0,1,2,0,1,56.9,13.8,0,70.5,0,0,0,0,0,0,0,0,0,0,0,0,70.5,8.742816,0,4.461483,1 +11,5,0,1,1,525940,0,6264.516,22.15469,0,12,1,16.45885,0,27.49127,0,0,43.95012,0,0,0,1,1,2,72.9,20.7,0,63.1,0,0,0,0,.6931472,0,0,0,0,0,0,0,63.1,8.742816,.6931472,3.783055,1 +11,5,0,1,2,525940,0,6264.516,23.15469,0,12,1,113.4163,0,0,0,0,113.4163,0,0,0,3,0,2,72.9,20.7,0,63.1,0,0,0,0,.6931472,0,0,0,0,0,0,0,63.1,8.742816,.6931472,4.731065,1 +11,5,0,1,3,525940,0,6264.516,24.15469,0,12,1,8.463818,4.291155,29.92806,0,0,42.68303,0,0,0,1,0,2,72.9,20.7,0,63.1,0,0,0,0,.6931472,0,0,0,0,0,0,0,63.1,8.742816,.6931472,3.753801,1 +11,5,0,1,4,525940,0,6264.516,25.15469,0,12,1,9.491268,0,0,0,0,9.491268,0,0,0,1,0,2,72.9,20.7,0,63.1,0,0,0,0,.6931472,0,0,0,0,0,0,0,63.1,8.742816,.6931472,2.250372,1 +17,5,25,1,1,525942,0,4114.695,38.65572,1,12,1,18.29009,6.210124,0,0,0,24.50021,0,0,0,2,0,3,76.6,3.4,0,86.4,283.35,283.35,0,0,1.098612,5.646683,0,3.258096,7.032977,0,0,0,86.4,8.322563,1.098612,3.198682,1 +17,5,25,1,2,525942,0,4114.695,39.65572,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,76.6,3.4,0,86.4,283.35,283.35,0,0,1.098612,5.646683,0,3.258096,7.032977,0,0,0,86.4,8.322563,1.098612,,0 +17,5,25,1,3,525942,0,4114.695,40.65572,1,12,1,441.4634,6.665505,43.20557,0,0,491.3345,0,0,0,4,1,3,76.6,3.4,0,86.4,283.35,283.35,0,0,1.098612,5.646683,0,3.258096,7.032977,0,0,0,86.4,8.322563,1.098612,6.197125,1 +17,5,25,1,1,525943,0,4114.695,13.98768,1,12,1,71.20374,0,0,0,0,71.20374,0,0,0,2,0,3,78.3,10.57626,0,88.9,283.35,283.35,1,1,1.098612,5.646683,0,3.258096,7.032977,0,0,0,88.9,8.322563,1.098612,4.265545,1 +17,5,25,1,2,525943,0,4114.695,14.98768,1,12,1,16.79389,0,0,0,0,16.79389,0,0,0,2,0,3,78.3,10.57626,0,88.9,283.35,283.35,1,1,1.098612,5.646683,0,3.258096,7.032977,0,0,0,88.9,8.322563,1.098612,2.821015,1 +17,5,25,1,3,525943,0,4114.695,15.98768,1,12,1,214.8084,59.1568,29.96516,0,1765.157,2069.087,2,0,0,12,1,3,78.3,10.57626,0,88.9,283.35,283.35,1,1,1.098612,5.646683,0,3.258096,7.032977,0,0,0,88.9,8.322563,1.098612,7.634863,1 +17,5,25,1,1,525944,0,4114.695,17.78508,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,71.8,3.4,0,88.6,283.35,283.35,1,1,1.098612,5.646683,0,3.258096,7.032977,0,0,0,88.6,8.322563,1.098612,,0 +17,5,25,1,2,525944,0,4114.695,18.78508,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,71.8,3.4,0,88.6,283.35,283.35,0,0,1.098612,5.646683,0,3.258096,7.032977,0,0,0,88.6,8.322563,1.098612,,0 +17,5,25,1,3,525944,0,4114.695,19.78508,1,12,1,19.86063,7.094077,0,0,0,26.9547,0,0,0,2,0,3,71.8,3.4,0,88.6,283.35,283.35,0,0,1.098612,5.646683,0,3.258096,7.032977,0,0,0,88.6,8.322563,1.098612,3.294158,1 +11,5,0,0,1,526012,0,6637.537,25.08966,1,9,1,43.35976,15.10406,0,0,499.5045,557.9683,1,0,0,3,0,3,81.9,6.9,0,53.4,0,357.64,0,0,1.098612,5.879527,0,0,0,1,0,0,53.4,8.800647,1.098612,6.324302,1 +11,5,0,0,2,526012,0,6637.537,26.08966,1,9,1,36.71409,15.83295,0,0,0,52.54704,0,0,0,4,0,4,81.9,6.9,0,53.4,0,357.64,0,0,1.386294,5.879527,0,0,0,1,0,0,53.4,8.800647,1.386294,3.961709,1 +11,5,0,0,3,526012,0,6637.537,27.08966,1,9,1,7.57257,0,0,0,0,7.57257,0,0,0,1,0,4,81.9,6.9,0,53.4,0,357.64,0,0,1.386294,5.879527,0,0,0,1,0,0,53.4,8.800647,1.386294,2.024533,1 +11,5,0,0,4,526012,0,6637.537,28.08966,1,9,1,0,0,0,0,0,0,0,0,0,0,0,4,81.9,6.9,0,53.4,0,357.64,0,0,1.386294,5.879527,0,0,0,1,0,0,53.4,8.800647,1.386294,,0 +11,5,0,0,5,526012,0,6637.537,29.08966,1,9,1,0,0,0,0,0,0,0,0,0,0,0,4,81.9,6.9,0,53.4,0,357.64,0,0,1.386294,5.879527,0,0,0,1,0,0,53.4,8.800647,1.386294,,0 +11,5,0,0,1,526013,0,6637.537,27.01437,0,10,1,0,0,0,0,0,0,0,0,0,0,0,3,77.1,10.3,0,55.7,0,357.64,0,0,1.098612,5.879527,0,0,0,1,0,0,55.7,8.800647,1.098612,,0 +11,5,0,0,2,526013,0,6637.537,28.01437,0,10,1,97.75126,16.13584,0,0,0,113.8871,0,0,0,3,0,4,77.1,10.3,0,55.7,0,357.64,0,0,1.386294,5.879527,0,0,0,1,0,0,55.7,8.800647,1.386294,4.735208,1 +11,5,0,0,3,526013,0,6637.537,29.01437,0,10,1,0,0,0,0,0,0,0,0,0,0,0,4,77.1,10.3,0,55.7,0,357.64,0,0,1.386294,5.879527,0,0,0,1,0,0,55.7,8.800647,1.386294,,0 +11,5,0,0,4,526013,0,6637.537,30.01437,0,10,1,0,0,0,0,0,0,0,0,0,0,0,4,77.1,10.3,0,55.7,0,357.64,0,0,1.386294,5.879527,0,0,0,1,0,0,55.7,8.800647,1.386294,,0 +11,5,0,0,5,526013,0,6637.537,31.01437,0,10,1,0,0,0,0,0,0,0,0,0,0,0,4,77.1,10.3,0,55.7,0,357.64,0,0,1.386294,5.879527,0,0,0,1,0,0,55.7,8.800647,1.386294,,0 +11,5,0,0,1,526014,0,6637.537,4.257358,0,9,1,14.8662,0,0,0,0,14.8662,0,0,0,2,0,3,77.40034,10.57626,0,74.1,0,357.64,1,0,1.098612,5.879527,0,0,0,0,0,0,74.1,8.800647,1.098612,2.69909,1 +11,5,0,0,2,526014,0,6637.537,5.257358,0,9,1,60.69757,2.776503,0,0,481.5971,545.0711,1,0,0,4,0,4,77.40034,10.57626,0,74.1,0,357.64,1,0,1.386294,5.879527,0,0,0,0,0,0,74.1,8.800647,1.386294,6.300916,1 +11,5,0,0,3,526014,0,6637.537,6.257358,0,9,1,97.2865,3.247791,0,0,0,100.5343,0,0,0,3,0,4,77.40034,10.57626,0,74.1,0,357.64,1,0,1.386294,5.879527,0,0,0,0,0,0,74.1,8.800647,1.386294,4.610499,1 +11,5,0,0,4,526014,0,6637.537,7.257358,0,9,1,30.22289,13.22629,0,0,0,43.44919,0,0,0,5,0,4,77.40034,10.57626,0,74.1,0,357.64,1,0,1.386294,5.879527,0,0,0,0,0,0,74.1,8.800647,1.386294,3.771592,1 +11,5,0,0,5,526014,0,6637.537,8.257358,0,9,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,0,74.1,0,357.64,1,0,1.386294,5.879527,0,0,0,0,0,0,74.1,8.800647,1.386294,,0 +11,5,0,0,1,526024,1,855.0947,54.22587,1,11,1,21.15954,0,43.58866,0,0,64.7482,0,0,0,1,1,1,56.4,17.2,0,46.6,0,0,0,0,0,0,0,0,0,1,0,0,46.6,6.752381,0,4.170506,1 +11,5,0,0,2,526024,1,855.0947,55.22587,1,11,1,71.37434,131.3705,0,0,0,202.7449,0,0,0,5,0,1,56.4,17.2,0,46.6,0,0,0,0,0,0,0,0,0,1,0,0,46.6,6.752381,0,5.311948,1 +11,5,0,0,3,526024,1,855.0947,56.22587,1,11,1,0,120.474,0,0,0,120.474,0,0,0,0,0,1,56.4,17.2,0,46.6,0,0,0,0,0,0,0,0,0,1,0,0,46.6,6.752381,0,4.791434,1 +18,5,25,1,1,526025,1,10821.3,36.66804,0,12,1,49.72493,0,0,0,0,49.72493,0,0,0,1,0,1,87.2,3.4,0,84.1,750,750,0,0,0,6.620073,0,3.258096,8.006368,0,0,0,84.1,9.289364,0,3.906506,1 +18,5,25,1,2,526025,1,10821.3,37.66804,0,12,1,9.111617,0,0,0,0,9.111617,0,0,0,1,0,1,87.2,3.4,0,84.1,750,750,0,0,0,6.620073,0,3.258096,8.006368,0,0,0,84.1,9.289364,0,2.20955,1 +18,5,25,1,3,526025,1,10821.3,38.66804,0,12,1,23.3564,0,0,0,0,23.3564,0,0,0,3,0,1,87.2,3.4,0,84.1,750,750,0,0,0,6.620073,0,3.258096,8.006368,0,0,0,84.1,9.289364,0,3.150871,1 +11,5,0,0,1,526028,1,6674.895,29.86721,0,6,1,0,0,0,0,0,0,0,0,0,0,0,1,74.5,10.3,0,70.5,0,0,0,0,0,0,0,0,0,0,1,0,70.5,8.806258,0,,0 +11,5,0,0,2,526028,1,6674.895,30.86721,0,6,1,11.38952,0,0,0,0,11.38952,0,0,0,0,0,1,74.5,10.3,0,70.5,0,0,0,0,0,0,0,0,0,0,1,0,70.5,8.806258,0,2.432694,1 +11,5,0,0,3,526028,1,6674.895,31.86721,0,6,1,42.90657,0,0,0,0,42.90657,0,0,0,0,0,1,74.5,10.3,0,70.5,0,0,0,0,0,0,0,0,0,0,1,0,70.5,8.806258,0,3.759025,1 +11,5,0,1,1,526041,0,10967.16,30.03422,1,16,1,37.16551,77.23984,0,287.4133,0,114.4053,0,0,14,2,0,2,56.4,10.3,0,25,0,0,0,0,.6931472,0,0,0,0,0,1,0,25,9.302752,.6931472,4.739748,1 +11,5,0,1,2,526041,0,10967.16,31.03422,1,16,1,44.51583,48.64617,0,206.5168,1284.534,1377.696,1,0,10,3,0,2,56.4,10.3,0,25,0,0,0,0,.6931472,0,0,0,0,0,1,0,25,9.302752,.6931472,7.228168,1 +11,5,0,1,3,526041,0,10967.16,32.03422,1,16,1,18.09003,55.28397,0,0,0,73.374,0,0,0,3,0,2,56.4,10.3,0,25,0,0,0,0,.6931472,0,0,0,0,0,1,0,25,9.302752,.6931472,4.295569,1 +11,5,0,1,4,526041,0,10967.16,33.03422,1,16,1,66.86816,93.29807,13.22252,0,0,173.3887,0,0,0,3,1,2,56.4,10.3,0,25,0,0,0,0,.6931472,0,0,0,0,0,1,0,25,9.302752,.6931472,5.155536,1 +11,5,0,1,5,526041,0,10967.16,34.03422,1,16,1,14.06518,69.28302,0,0,0,83.3482,0,0,0,1,0,2,56.4,10.3,0,25,0,0,0,0,.6931472,0,0,0,0,0,1,0,25,9.302752,.6931472,4.423027,1 +11,5,0,1,1,526042,0,10967.16,33.41547,0,20,1,0,0,0,0,0,0,0,0,0,0,0,2,63.8,3.4,1,64.8,0,0,0,0,.6931472,0,0,0,0,1,0,0,64.8,9.302752,.6931472,,0 +11,5,0,1,2,526042,0,10967.16,34.41547,0,20,1,181.2758,44.97476,0,454.3369,0,226.2506,0,0,25,4,0,2,63.8,3.4,1,64.8,0,0,0,0,.6931472,0,0,0,0,1,0,0,64.8,9.302752,.6931472,5.421643,1 +11,5,0,1,3,526042,0,10967.16,35.41547,0,20,1,10.51746,36.3273,0,189.3143,0,46.84476,0,0,9,1,0,2,63.8,3.4,1,64.8,0,0,0,0,.6931472,0,0,0,0,1,0,0,64.8,9.302752,.6931472,3.846839,1 +11,5,0,1,4,526042,0,10967.16,36.41547,0,20,1,22.66717,98.92331,0,198.3377,301.8512,423.4416,1,0,10,1,0,2,63.8,3.4,1,64.8,0,0,0,0,.6931472,0,0,0,0,1,0,0,64.8,9.302752,.6931472,6.048416,1 +11,5,0,1,5,526042,0,10967.16,37.41547,0,20,1,60.37736,118.0618,25.72899,301.8868,0,204.1681,0,0,16,3,2,2,63.8,3.4,1,64.8,0,0,0,0,.6931472,0,0,0,0,1,0,0,64.8,9.302752,.6931472,5.318944,1 +11,5,0,1,1,526049,0,5206.349,25.51403,1,10,1,0,0,0,0,0,0,0,0,0,0,0,2,67,6.9,0,50,0,0,0,0,.6931472,0,0,0,0,1,0,0,50,8.557826,.6931472,,0 +11,5,0,1,2,526049,0,5206.349,26.51403,1,10,1,33.02961,0,0,0,0,33.02961,0,0,0,3,0,2,67,6.9,0,50,0,0,0,0,.6931472,0,0,0,0,1,0,0,50,8.557826,.6931472,3.497405,1 +11,5,0,1,3,526049,0,5206.349,27.51403,1,10,1,8.650519,0,0,0,0,8.650519,0,0,0,1,0,2,67,6.9,0,50,0,0,0,0,.6931472,0,0,0,0,1,0,0,50,8.557826,.6931472,2.157619,1 +11,5,0,1,1,526050,0,5206.349,29.77687,0,12,1,12.69573,0,34.27846,0,0,46.97419,0,0,0,0,1,2,89.9,0,0,76.1,0,0,0,0,.6931472,0,0,0,0,1,0,0,76.1,8.557826,.6931472,3.849598,1 +11,5,0,1,2,526050,0,5206.349,30.77687,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,89.9,0,0,76.1,0,0,0,0,.6931472,0,0,0,0,1,0,0,76.1,8.557826,.6931472,,0 +11,5,0,1,3,526050,0,5206.349,31.77687,0,12,1,10.38062,0,30.3218,0,0,40.70242,0,0,0,0,1,2,89.9,0,0,76.1,0,0,0,0,.6931472,0,0,0,0,1,0,0,76.1,8.557826,.6931472,3.706288,1 +11,5,0,1,1,526062,1,6674.895,21.60438,0,12,1,55.18409,8.019466,0,0,0,63.20356,0,0,0,2,0,1,61.8,17.2,0,54.5,0,0,0,0,0,0,0,0,0,0,0,0,54.5,8.806258,0,4.14636,1 +11,5,0,1,2,526062,1,6674.895,22.60438,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,61.8,17.2,0,54.5,0,0,0,0,0,0,0,0,0,0,0,0,54.5,8.806258,0,,0 +11,5,0,1,3,526062,1,6674.895,23.60438,0,12,1,11.76471,3.788927,0,0,0,15.55363,0,0,0,0,0,1,61.8,17.2,0,54.5,0,0,0,0,0,0,0,0,0,0,0,0,54.5,8.806258,0,2.744294,1 +11,5,0,1,1,526064,1,6674.895,52.34497,1,9,1,103.6818,1.946678,29.62336,0,0,135.2518,0,0,0,3,2,1,62.8,6.9,0,72.7,0,0,0,0,0,0,0,0,0,0,0,1,72.7,8.806258,0,4.907138,1 +11,5,0,1,2,526064,1,6674.895,53.34497,1,9,1,6.833713,0,0,0,0,6.833713,0,0,0,1,0,1,62.8,6.9,0,72.7,0,0,0,0,0,0,0,0,0,0,0,1,72.7,8.806258,0,1.921868,1 +11,5,0,1,3,526064,1,6674.895,54.34497,1,9,1,116.782,20.18339,27.68166,0,0,164.6471,0,0,0,5,1,1,62.8,6.9,0,72.7,0,0,0,0,0,0,0,0,0,0,0,1,72.7,8.806258,0,5.103804,1 +13,5,0,0,1,526065,1,18474.65,42.19849,0,9,1,0,0,0,0,0,0,0,0,0,0,0,8,70.7,13.8,0,45.2,450,450,0,0,2.079442,6.109248,1,4.564348,6.160541,1,0,0,45.2,9.824209,2.079442,,0 +13,5,0,0,2,526065,1,18474.65,43.19849,0,9,1,34.37854,0,0,0,632.7919,667.1704,1,0,0,4,0,8,70.7,13.8,0,45.2,450,450,0,0,2.079442,6.109248,1,4.564348,6.160541,1,0,0,45.2,9.824209,2.079442,6.503046,1 +13,5,0,0,3,526065,1,18474.65,44.19849,0,9,1,0,0,0,0,0,0,0,0,0,0,0,8,70.7,13.8,0,45.2,450,450,0,0,2.079442,6.109248,1,4.564348,6.160541,1,0,0,45.2,9.824209,2.079442,,0 +13,5,0,0,1,526066,1,18474.65,4.366872,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,77.40034,10.57626,0,47.5,450,450,1,0,2.079442,6.109248,1,4.564348,6.160541,1,0,0,47.5,9.824209,2.079442,,0 +13,5,0,0,2,526066,1,18474.65,5.366872,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,77.40034,10.57626,0,47.5,450,450,1,0,2.079442,6.109248,1,4.564348,6.160541,1,0,0,47.5,9.824209,2.079442,,0 +13,5,0,0,3,526066,1,18474.65,6.366872,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,77.40034,10.57626,0,47.5,450,450,1,0,2.079442,6.109248,1,4.564348,6.160541,1,0,0,47.5,9.824209,2.079442,,0 +13,5,0,0,1,526067,1,18474.65,13.20465,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,51.7,10.57626,0,44.4,450,450,1,1,2.079442,6.109248,1,4.564348,6.160541,1,0,0,44.4,9.824209,2.079442,,0 +13,5,0,0,2,526067,1,18474.65,14.20465,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,51.7,10.57626,0,44.4,450,450,1,1,2.079442,6.109248,1,4.564348,6.160541,1,0,0,44.4,9.824209,2.079442,,0 +13,5,0,0,3,526067,1,18474.65,15.20465,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,51.7,10.57626,0,44.4,450,450,1,1,2.079442,6.109248,1,4.564348,6.160541,1,0,0,44.4,9.824209,2.079442,,0 +13,5,0,0,1,526068,1,18474.65,9.497604,0,12,1,5.889777,0,0,0,0,5.889777,0,0,0,1,0,8,61.7,10.57626,0,70.4,450,450,1,0,2.079442,6.109248,1,4.564348,6.160541,1,0,0,70.4,9.824209,2.079442,1.773218,1 +13,5,0,0,2,526068,1,18474.65,10.4976,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,61.7,10.57626,0,70.4,450,450,1,0,2.079442,6.109248,1,4.564348,6.160541,1,0,0,70.4,9.824209,2.079442,,0 +13,5,0,0,3,526068,1,18474.65,11.4976,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,61.7,10.57626,0,70.4,450,450,1,0,2.079442,6.109248,1,4.564348,6.160541,1,0,0,70.4,9.824209,2.079442,,0 +13,5,0,0,1,526069,1,18474.65,6.976044,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,83.3,10.57626,.1442925,55.6,450,450,1,1,2.079442,6.109248,1,4.564348,6.160541,1,0,0,55.6,9.824209,2.079442,,0 +13,5,0,0,2,526069,1,18474.65,7.976044,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,83.3,10.57626,.1442925,55.6,450,450,1,1,2.079442,6.109248,1,4.564348,6.160541,1,0,0,55.6,9.824209,2.079442,,0 +13,5,0,0,3,526069,1,18474.65,8.976044,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,83.3,10.57626,.1442925,55.6,450,450,1,1,2.079442,6.109248,1,4.564348,6.160541,1,0,0,55.6,9.824209,2.079442,,0 +13,5,0,0,1,526070,1,18474.65,11.89049,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,51.7,10.57626,0,48.1,450,450,1,1,2.079442,6.109248,1,4.564348,6.160541,1,0,0,48.1,9.824209,2.079442,,0 +13,5,0,0,2,526070,1,18474.65,12.89049,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,51.7,10.57626,0,48.1,450,450,1,1,2.079442,6.109248,1,4.564348,6.160541,1,0,0,48.1,9.824209,2.079442,,0 +13,5,0,0,3,526070,1,18474.65,13.89049,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,51.7,10.57626,0,48.1,450,450,1,1,2.079442,6.109248,1,4.564348,6.160541,1,0,0,48.1,9.824209,2.079442,,0 +13,5,0,0,1,526071,1,18474.65,36.73648,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,63.3,17.2,1,61.9,450,450,0,0,2.079442,6.109248,1,4.564348,6.160541,1,0,0,61.9,9.824209,2.079442,,0 +13,5,0,0,2,526071,1,18474.65,37.73648,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,63.3,17.2,1,61.9,450,450,0,0,2.079442,6.109248,1,4.564348,6.160541,1,0,0,61.9,9.824209,2.079442,,0 +13,5,0,0,3,526071,1,18474.65,38.73648,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,63.3,17.2,1,61.9,450,450,0,0,2.079442,6.109248,1,4.564348,6.160541,1,0,0,61.9,9.824209,2.079442,,0 +13,5,0,1,1,526090,0,4489.503,56.81588,1,10,1,57.13077,6.931866,32.56877,0,0,96.6314,0,0,0,2,0,2,96.3,10.3,0,59.5,300,583.32,0,0,.6931472,6.368736,1,4.564348,5.755076,1,0,0,59.5,8.40972,.6931472,4.570904,1 +13,5,0,1,2,526090,0,4489.503,57.81588,1,10,1,0,0,0,0,0,0,0,0,0,0,0,2,96.3,10.3,0,59.5,300,583.32,0,0,.6931472,6.368736,1,4.564348,5.755076,1,0,0,59.5,8.40972,.6931472,,0 +13,5,0,1,3,526090,0,4489.503,58.81588,1,10,1,69.20415,0,0,0,0,69.20415,0,0,0,3,0,2,96.3,10.3,0,59.5,300,583.32,0,0,.6931472,6.368736,1,4.564348,5.755076,1,0,0,59.5,8.40972,.6931472,4.237061,1 +13,5,0,1,1,526091,0,4489.503,56.71732,0,7,1,14.81168,0,42.25138,0,0,57.06306,0,0,0,1,0,2,96.3,6.9,0,68.2,300,583.32,0,0,.6931472,6.368736,1,4.564348,5.755076,0,0,0,68.2,8.40972,.6931472,4.044157,1 +13,5,0,1,2,526091,0,4489.503,57.71732,0,7,1,0,0,0,0,0,0,0,0,0,0,0,2,96.3,6.9,0,68.2,300,583.32,0,0,.6931472,6.368736,1,4.564348,5.755076,0,0,0,68.2,8.40972,.6931472,,0 +13,5,0,1,3,526091,0,4489.503,58.71732,0,7,1,20.76125,0,0,0,693.4256,714.1868,1,0,0,2,0,2,96.3,6.9,0,68.2,300,583.32,0,0,.6931472,6.368736,1,4.564348,5.755076,0,0,0,68.2,8.40972,.6931472,6.571145,1 +13,5,0,1,1,526103,0,6771.261,35.6167,0,10,1,9.82801,0,0,0,0,9.82801,0,0,0,1,0,2,58.5,13.8,0,53.4,300,774,0,0,.6931472,6.651572,1,4.564348,5.755076,0,0,0,53.4,8.82059,.6931472,2.285236,1 +13,5,0,1,2,526103,0,6771.261,36.6167,0,10,1,201.9143,0,0,27.34731,0,201.9143,0,0,1,1,30,2,58.5,13.8,0,53.4,300,774,0,0,.6931472,6.651572,1,4.564348,5.755076,0,0,0,53.4,8.82059,.6931472,5.307843,1 +13,5,0,1,3,526103,0,6771.261,37.6167,0,10,1,50.85452,0,0,0,0,50.85452,0,0,0,5,0,2,58.5,13.8,0,53.4,300,774,0,0,.6931472,6.651572,1,4.564348,5.755076,0,0,0,53.4,8.82059,.6931472,3.928969,1 +13,5,0,1,4,526103,0,6771.261,38.6167,0,10,1,13.12828,7.32183,0,0,0,20.45011,0,0,0,2,0,2,58.5,13.8,0,53.4,300,774,0,0,.6931472,6.651572,1,4.564348,5.755076,0,0,0,53.4,8.82059,.6931472,3.017988,1 +13,5,0,1,5,526103,0,6771.261,39.6167,0,10,1,25.37212,40.40595,18.64682,0,0,84.4249,0,0,0,4,0,2,58.5,13.8,0,53.4,300,774,0,0,.6931472,6.651572,1,4.564348,5.755076,0,0,0,53.4,8.82059,.6931472,4.435863,1 +13,5,0,1,1,526106,0,6771.261,7.975359,0,10,1,0,0,0,0,0,0,0,0,0,0,0,2,78.3,10.57626,0,85.2,300,774,1,0,.6931472,6.651572,1,4.564348,5.755076,0,0,0,85.2,8.82059,.6931472,,0 +13,5,0,1,2,526106,0,6771.261,8.975359,0,10,1,56.88241,0,0,0,362.3519,419.2343,1,0,0,3,0,2,78.3,10.57626,0,85.2,300,774,1,0,.6931472,6.651572,1,4.564348,5.755076,0,0,0,85.2,8.82059,.6931472,6.03843,1 +13,5,0,1,3,526106,0,6771.261,9.975359,0,10,1,63.98499,0,0,0,0,63.98499,0,0,0,4,0,2,78.3,10.57626,0,85.2,300,774,1,0,.6931472,6.651572,1,4.564348,5.755076,0,0,0,85.2,8.82059,.6931472,4.158648,1 +13,5,0,1,4,526106,0,6771.261,10.97536,0,10,1,12.003,7.516879,0,0,0,19.51988,0,0,0,2,0,2,78.3,10.57626,0,85.2,300,774,1,0,.6931472,6.651572,1,4.564348,5.755076,0,0,0,85.2,8.82059,.6931472,2.971433,1 +13,5,0,1,5,526106,0,6771.261,11.97536,0,10,1,11.16373,6.167118,0,0,0,17.33085,0,0,0,1,0,2,78.3,10.57626,0,85.2,300,774,1,0,.6931472,6.651572,1,4.564348,5.755076,0,0,0,85.2,8.82059,.6931472,2.852488,1 +17,5,25,1,1,526133,1,125.5132,3.556468,0,8,1,9.82801,0,24.57002,0,0,34.39803,0,0,0,0,1,7,77.40034,10.57626,0,70.4,700,700,1,0,1.94591,6.55108,0,3.258096,7.937375,0,0,0,70.4,4.840347,1.94591,3.537999,1 +17,5,25,1,2,526133,1,125.5132,4.556468,0,8,1,9.11577,0,11.8505,0,0,20.96627,0,0,0,0,1,7,77.40034,10.57626,0,70.4,700,700,1,0,1.94591,6.55108,0,3.258096,7.937375,0,0,0,70.4,4.840347,1.94591,3.042915,1 +17,5,25,1,1,526134,1,125.5132,16.47912,1,8,1,8.845209,0,0,0,0,8.845209,0,0,0,0,1,7,71.8,3.4,0,62.5,700,700,1,1,1.94591,6.55108,0,3.258096,7.937375,0,0,0,62.5,4.840347,1.94591,2.179876,1 +17,5,25,1,2,526134,1,125.5132,17.47912,1,8,1,6.836828,0,0,0,0,6.836828,0,0,0,1,0,7,71.8,3.4,0,62.5,700,700,1,1,1.94591,6.55108,0,3.258096,7.937375,0,0,0,62.5,4.840347,1.94591,1.922324,1 +17,5,25,1,1,526135,1,125.5132,10.05339,1,8,1,9.82801,0,0,0,0,9.82801,0,0,0,0,1,7,76.7,10.57626,0,63,700,700,1,1,1.94591,6.55108,0,3.258096,7.937375,0,0,0,63,4.840347,1.94591,2.285236,1 +17,5,25,1,2,526135,1,125.5132,11.05339,1,8,1,21.42206,0,0,0,0,21.42206,0,0,0,2,0,7,76.7,10.57626,0,63,700,700,1,1,1.94591,6.55108,0,3.258096,7.937375,0,0,0,63,4.840347,1.94591,3.064421,1 +17,5,25,1,3,526135,1,125.5132,12.05339,1,8,1,10.42101,0,0,0,0,10.42101,0,0,0,1,0,5,76.7,10.57626,0,63,700,700,1,1,1.609438,6.55108,0,3.258096,7.937375,0,0,0,63,4.840347,1.609438,2.343824,1 +17,5,25,1,4,526135,1,125.5132,13.05339,1,8,1,0,0,0,0,0,0,0,0,0,0,0,5,76.7,10.57626,0,63,700,700,1,1,1.609438,6.55108,0,3.258096,7.937375,0,0,0,63,4.840347,1.609438,,0 +17,5,25,1,1,526136,1,125.5132,14.07529,1,8,1,24.57002,0,24.57002,0,0,49.14005,0,0,0,2,1,7,66.7,10.57626,0,74.1,700,700,1,1,1.94591,6.55108,0,3.258096,7.937375,0,0,0,74.1,4.840347,1.94591,3.894674,1 +17,5,25,1,2,526136,1,125.5132,15.07529,1,8,1,6.836828,0,0,0,0,6.836828,0,0,0,1,0,7,66.7,10.57626,0,74.1,700,700,1,1,1.94591,6.55108,0,3.258096,7.937375,0,0,0,74.1,4.840347,1.94591,1.922324,1 +17,5,25,1,3,526136,1,125.5132,16.07529,1,8,1,31.67987,0,0,0,0,31.67987,0,0,0,3,0,5,66.7,10.57626,0,74.1,700,700,1,1,1.609438,6.55108,0,3.258096,7.937375,0,0,0,74.1,4.840347,1.609438,3.455681,1 +17,5,25,1,4,526136,1,125.5132,17.07529,1,8,1,0,0,0,0,0,0,0,0,0,0,0,5,66.7,10.57626,0,74.1,700,700,1,1,1.609438,6.55108,0,3.258096,7.937375,0,0,0,74.1,4.840347,1.609438,,0 +17,5,25,1,1,526138,1,125.5132,12.3833,0,8,1,9.82801,0,0,0,0,9.82801,0,0,0,0,1,7,78.3,10.57626,0,74.1,700,700,1,0,1.94591,6.55108,0,3.258096,7.937375,0,0,0,74.1,4.840347,1.94591,2.285236,1 +17,5,25,1,2,526138,1,125.5132,13.3833,0,8,1,57.20146,0,0,0,0,57.20146,0,0,0,0,0,7,78.3,10.57626,0,74.1,700,700,1,0,1.94591,6.55108,0,3.258096,7.937375,0,0,0,74.1,4.840347,1.94591,4.046579,1 +17,5,25,1,3,526138,1,125.5132,14.3833,0,8,1,0,0,0,0,0,0,0,0,0,0,0,5,78.3,10.57626,0,74.1,700,700,1,0,1.609438,6.55108,0,3.258096,7.937375,0,0,0,74.1,4.840347,1.609438,,0 +17,5,25,1,4,526138,1,125.5132,15.3833,0,8,1,0,0,0,0,0,0,0,0,0,0,0,5,78.3,10.57626,0,74.1,700,700,1,0,1.609438,6.55108,0,3.258096,7.937375,0,0,0,74.1,4.840347,1.609438,,0 +17,5,25,1,1,526139,1,125.5132,51.436,1,8,1,9.82801,0,0,0,0,9.82801,0,0,0,1,0,7,68.6,17.2,1,64.8,700,700,0,0,1.94591,6.55108,0,3.258096,7.937375,0,1,0,64.8,4.840347,1.94591,2.285236,1 +17,5,25,1,2,526139,1,125.5132,52.436,1,8,1,56.06199,0,28.25889,0,0,84.32088,0,0,0,2,1,7,68.6,17.2,1,64.8,700,700,0,0,1.94591,6.55108,0,3.258096,7.937375,0,1,0,64.8,4.840347,1.94591,4.434629,1 +17,5,25,1,3,526139,1,125.5132,53.436,1,8,1,13.33889,0,0,0,0,13.33889,0,0,0,2,0,5,68.6,17.2,1,64.8,700,700,0,0,1.609438,6.55108,0,3.258096,7.937375,0,1,0,64.8,4.840347,1.609438,2.590684,1 +17,5,25,1,4,526139,1,125.5132,54.436,1,8,1,37.13428,5.982746,0,0,0,43.11703,0,0,0,3,0,5,68.6,17.2,1,64.8,700,700,0,0,1.609438,6.55108,0,3.258096,7.937375,0,1,0,64.8,4.840347,1.609438,3.763918,1 +17,5,25,1,1,526140,1,125.5132,17.97673,1,8,1,47.17445,1.990172,25.55283,0,0,74.71745,0,0,0,3,1,7,90.4,10.3,0,65.9,700,700,1,1,1.94591,6.55108,0,3.258096,7.937375,0,0,0,65.9,4.840347,1.94591,4.313714,1 +17,5,25,1,2,526140,1,125.5132,18.97673,1,8,1,35.5515,0,0,0,0,35.5515,0,0,0,2,0,7,90.4,10.3,0,65.9,700,700,0,0,1.94591,6.55108,0,3.258096,7.937375,0,0,0,65.9,4.840347,1.94591,3.570982,1 +17,5,25,1,3,526140,1,125.5132,19.97673,1,8,1,16.67361,0,0,0,0,16.67361,0,0,0,1,0,5,90.4,10.3,0,65.9,700,700,0,0,1.609438,6.55108,0,3.258096,7.937375,0,0,0,65.9,4.840347,1.609438,2.813828,1 +17,5,25,1,4,526140,1,125.5132,20.97673,1,8,1,0,0,0,0,0,0,0,0,0,0,0,5,90.4,10.3,0,65.9,700,700,0,0,1.609438,6.55108,0,3.258096,7.937375,0,0,0,65.9,4.840347,1.609438,,0 +11,5,0,0,1,526147,0,10997.44,47.63313,1,12,1,77.11546,16.9654,4.276782,0,0,98.35765,0,0,0,5,0,2,77.40034,10.57626,.1442925,,0,416.52,0,0,.6931472,6.031934,0,0,0,0,0,0,70.68995,9.305509,.6931472,4.58861,1 +11,5,0,0,2,526147,0,10997.44,48.63313,1,12,1,84.021,23.07577,0,0,0,107.0968,0,0,0,2,0,2,77.40034,10.57626,.1442925,,0,416.52,0,0,.6931472,6.031934,0,0,0,0,0,0,70.68995,9.305509,.6931472,4.673733,1 +11,5,0,0,3,526147,0,10997.44,49.63313,1,12,1,71.38024,34.78349,22.51691,0,0,128.6806,0,0,0,4,0,2,77.40034,10.57626,.1442925,,0,416.52,0,0,.6931472,6.031934,0,0,0,0,0,0,70.68995,9.305509,.6931472,4.857334,1 +11,5,0,0,1,526148,0,10997.44,50.57358,0,11,1,66.69446,0,47.68653,0,0,114.381,0,0,0,2,0,2,77.40034,10.57626,.1442925,,0,416.52,0,0,.6931472,6.031934,0,0,0,0,0,0,70.68995,9.305509,.6931472,4.739535,1 +11,5,0,0,2,526148,0,10997.44,51.57358,0,11,1,42.76069,0,10.53263,0,0,53.29332,0,0,0,1,0,2,77.40034,10.57626,.1442925,,0,416.52,0,0,.6931472,6.031934,0,0,0,0,0,0,70.68995,9.305509,.6931472,3.975811,1 +11,5,0,0,3,526148,0,10997.44,52.57358,0,11,1,50.40595,0,39.75304,0,0,90.159,0,0,0,2,0,2,77.40034,10.57626,.1442925,,0,416.52,0,0,.6931472,6.031934,0,0,0,0,0,0,70.68995,9.305509,.6931472,4.501575,1 +13,5,0,1,1,526154,0,7724.014,16.2245,0,16,1,162.0821,10.36818,0,0,0,172.4503,0,0,0,5,0,3,92.6,3.4,0,79.5,450,484.77,1,0,1.098612,6.183674,1,4.564348,6.160541,0,0,0,79.5,8.952219,1.098612,5.150109,1 +13,5,0,1,2,526154,0,7724.014,17.2245,0,16,1,0,0,0,0,0,0,0,0,0,0,0,3,92.6,3.4,0,79.5,450,484.77,1,0,1.098612,6.183674,1,4.564348,6.160541,0,0,0,79.5,8.952219,1.098612,,0 +13,5,0,1,3,526154,0,7724.014,18.2245,0,16,1,0,0,0,0,0,0,0,0,0,0,0,3,92.6,3.4,0,79.5,450,484.77,0,0,1.098612,6.183674,1,4.564348,6.160541,0,0,0,79.5,8.952219,1.098612,,0 +13,5,0,1,1,526156,0,7724.014,47.04449,0,20,1,46.55099,49.13246,23.2755,0,0,118.959,0,0,0,5,0,3,91.5,3.4,0,73.9,450,484.77,0,0,1.098612,6.183674,1,4.564348,6.160541,0,0,0,73.9,8.952219,1.098612,4.778779,1 +13,5,0,1,2,526156,0,7724.014,48.04449,0,20,1,4.176158,37.7183,0,0,0,41.89446,0,0,0,0,0,3,91.5,3.4,0,73.9,450,484.77,0,0,1.098612,6.183674,1,4.564348,6.160541,0,0,0,73.9,8.952219,1.098612,3.735154,1 +13,5,0,1,3,526156,0,7724.014,49.04449,0,20,1,0,0,0,0,0,0,0,0,0,0,0,3,91.5,3.4,0,73.9,450,484.77,0,0,1.098612,6.183674,1,4.564348,6.160541,0,0,0,73.9,8.952219,1.098612,,0 +13,5,0,1,1,526157,0,7724.014,43.24162,1,16,1,158.485,142.2725,33.00889,0,0,333.7664,0,0,0,8,0,3,84,10.3,0,59.1,450,484.77,0,0,1.098612,6.183674,1,4.564348,6.160541,1,0,0,59.1,8.952219,1.098612,5.810441,1 +13,5,0,1,2,526157,0,7724.014,44.24162,1,16,1,5.694761,15.8656,0,0,0,21.56036,0,0,0,1,0,3,84,10.3,0,59.1,450,484.77,0,0,1.098612,6.183674,1,4.564348,6.160541,1,0,0,59.1,8.952219,1.098612,3.070857,1 +13,5,0,1,3,526157,0,7724.014,45.24162,1,16,1,98.96194,42.18685,0,0,0,141.1488,0,0,0,4,0,3,84,10.3,0,59.1,450,484.77,0,0,1.098612,6.183674,1,4.564348,6.160541,1,0,0,59.1,8.952219,1.098612,4.949815,1 +7,5,25,1,1,526183,0,15450.08,41.71389,0,18,1,20.19352,0,0,0,0,20.19352,0,0,0,2,0,5,67.6,6.9,0,25,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,25,9.645434,1.609438,3.005362,1 +7,5,25,1,2,526183,0,15450.08,42.71389,0,18,1,13.22252,0,34.36343,0,0,47.58595,0,0,0,1,0,5,67.6,6.9,0,25,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,25,9.645434,1.609438,3.862537,1 +7,5,25,1,3,526183,0,15450.08,43.71389,0,18,1,0,0,0,0,0,0,0,0,0,0,0,5,67.6,6.9,0,25,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,25,9.645434,1.609438,,0 +7,5,25,1,1,526184,0,15450.08,14.10814,0,12,1,90.02945,0,0,0,0,90.02945,0,0,0,3,0,5,59,0,0,51.1,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,51.1,9.645434,1.609438,4.500137,1 +7,5,25,1,2,526184,0,15450.08,15.10814,0,12,1,9.82244,0,0,0,0,9.82244,0,0,0,1,0,5,59,0,0,51.1,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,51.1,9.645434,1.609438,2.28467,1 +7,5,25,1,3,526184,0,15450.08,16.10814,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,59,0,0,51.1,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,51.1,9.645434,1.609438,,0 +7,5,25,1,1,526185,0,15450.08,17.87269,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,64.9,3.4,0,68.2,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,68.2,9.645434,1.609438,,0 +7,5,25,1,2,526185,0,15450.08,18.87269,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,64.9,3.4,0,68.2,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,68.2,9.645434,1.609438,,0 +7,5,25,1,3,526185,0,15450.08,19.87269,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,64.9,3.4,0,68.2,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,68.2,9.645434,1.609438,,0 +7,5,25,1,1,526186,0,15450.08,41.69747,1,12,1,12.62095,0,36.86159,0,0,49.48254,0,0,0,0,1,5,67,6.9,1,54.5,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,54.5,9.645434,1.609438,3.90162,1 +7,5,25,1,2,526186,0,15450.08,42.69747,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,67,6.9,1,54.5,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,54.5,9.645434,1.609438,,0 +7,5,25,1,3,526186,0,15450.08,43.69747,1,12,1,10.2916,0,17.15266,0,0,27.44425,0,0,0,0,1,5,67,6.9,1,54.5,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,54.5,9.645434,1.609438,3.312157,1 +7,5,25,1,1,526187,0,15450.08,16.21082,0,12,1,0,0,0,334.4552,0,0,0,0,32,0,0,5,41.5,3.4,0,72.5,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,72.5,9.645434,1.609438,,0 +7,5,25,1,2,526187,0,15450.08,17.21082,0,12,1,3.777862,0,0,28.33396,0,3.777862,0,0,3,1,0,5,41.5,3.4,0,72.5,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,72.5,9.645434,1.609438,1.329158,1 +7,5,25,1,3,526187,0,15450.08,18.21082,0,12,1,66.89537,0,0,0,0,66.89537,0,0,0,1,0,5,41.5,3.4,0,72.5,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,72.5,9.645434,1.609438,4.20313,1 +11,5,0,1,1,526188,0,11392.73,34.33265,0,12,1,122.408,35.48032,0,0,177.7402,335.6284,1,0,0,5,0,4,75,20.7,0,60.2,0,0,0,0,1.386294,0,0,0,0,1,0,0,60.2,9.340818,1.386294,5.816005,1 +11,5,0,1,2,526188,0,11392.73,35.33265,0,12,1,30.75171,9.335611,0,0,0,40.08732,0,0,0,1,1,4,75,20.7,0,60.2,0,0,0,0,1.386294,0,0,0,0,1,0,0,60.2,9.340818,1.386294,3.69106,1 +11,5,0,1,3,526188,0,11392.73,36.33265,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,75,20.7,0,60.2,0,0,0,0,1.386294,0,0,0,0,1,0,0,60.2,9.340818,1.386294,,0 +11,5,0,1,1,526189,0,11392.73,10.00411,1,12,1,32.16251,1.692763,28.61617,0,0,62.47144,0,0,0,2,1,4,83.3,10.57626,0,63,0,0,1,1,1.386294,0,0,0,0,1,0,0,63,9.340818,1.386294,4.134709,1 +11,5,0,1,2,526189,0,11392.73,11.00411,1,12,1,74.03189,16.54518,0,0,0,90.57707,0,0,0,3,0,4,83.3,10.57626,0,63,0,0,1,1,1.386294,0,0,0,0,1,0,0,63,9.340818,1.386294,4.506201,1 +11,5,0,1,3,526189,0,11392.73,12.00411,1,12,1,16.26298,8.927336,22.83737,0,0,48.02768,0,0,0,1,1,4,83.3,10.57626,0,63,0,0,1,1,1.386294,0,0,0,0,1,0,0,63,9.340818,1.386294,3.871778,1 +11,5,0,1,1,526190,0,11392.73,31.30185,1,12,1,63.90182,26.3267,55.01481,0,0,145.2433,0,0,0,5,1,4,71.8,13.8,0,58,0,0,0,0,1.386294,0,0,0,0,0,0,0,58,9.340818,1.386294,4.978411,1 +11,5,0,1,2,526190,0,11392.73,32.30185,1,12,1,5.694761,11.69704,0,0,0,17.3918,0,0,0,1,0,4,71.8,13.8,0,58,0,0,0,0,1.386294,0,0,0,0,0,0,0,58,9.340818,1.386294,2.855999,1 +11,5,0,1,3,526190,0,11392.73,33.30185,1,12,1,274.7405,21.25952,0,0,0,296,0,0,0,13,2,4,71.8,13.8,0,58,0,0,0,0,1.386294,0,0,0,0,0,0,0,58,9.340818,1.386294,5.69036,1 +11,5,0,1,1,526234,0,10963.64,27.54004,0,15,1,25.43641,25.86035,30.92269,0,0,82.21945,0,0,0,2,1,4,87.2,13.8,1,47.7,0,0,0,0,1.386294,0,0,0,0,1,0,0,47.7,9.30243,1.386294,4.409392,1 +11,5,0,1,2,526234,0,10963.64,28.54004,0,15,1,23.0521,24.31996,0,0,0,47.37206,0,0,0,3,0,4,87.2,13.8,1,47.7,0,0,0,0,1.386294,0,0,0,0,1,0,0,47.7,9.30243,1.386294,3.858033,1 +11,5,0,1,3,526234,0,10963.64,29.54004,0,15,1,6.347863,5.713077,0,0,0,12.06094,0,0,0,1,0,4,87.2,13.8,1,47.7,0,0,0,0,1.386294,0,0,0,0,1,0,0,47.7,9.30243,1.386294,2.489972,1 +11,5,0,1,4,526234,0,10963.64,30.54004,0,15,1,22.01974,70.23538,0,0,0,92.25513,0,0,0,2,0,4,87.2,13.8,1,47.7,0,0,0,0,1.386294,0,0,0,0,1,0,0,47.7,9.30243,1.386294,4.524558,1 +11,5,0,1,5,526234,0,10963.64,31.54004,0,15,1,103.8062,19.72318,27.20761,0,628.0277,778.7647,1,0,0,5,1,5,87.2,13.8,1,47.7,0,0,0,0,1.609438,0,0,0,0,1,0,0,47.7,9.30243,1.609438,6.657709,1 +16,5,95,0,1,526235,1,4387.609,13.25667,1,8,1,0,0,0,0,0,0,0,0,0,0,0,5,71.7,10.57626,0,77.8,857.1,0,1,1,1.609438,0,0,4.564348,6.804848,1,0,0,77.8,8.386767,1.609438,,0 +16,5,95,0,2,526235,1,4387.609,14.25667,1,8,1,0,0,0,0,0,0,0,0,0,0,0,5,71.7,10.57626,0,77.8,857.1,0,1,1,1.609438,0,0,4.564348,6.804848,1,0,0,77.8,8.386767,1.609438,,0 +16,5,95,0,3,526235,1,4387.609,15.25667,1,8,1,0,0,0,0,0,0,0,0,0,0,0,5,71.7,10.57626,0,77.8,857.1,0,1,1,1.609438,0,0,4.564348,6.804848,1,0,0,77.8,8.386767,1.609438,,0 +16,5,95,0,1,526236,1,4387.609,13.25667,1,8,1,8.081667,0,0,0,0,8.081667,0,0,0,0,0,5,71.7,10.57626,0,77.8,857.1,0,1,1,1.609438,0,0,4.564348,6.804848,1,0,0,77.8,8.386767,1.609438,2.089598,1 +16,5,95,0,2,526236,1,4387.609,14.25667,1,8,1,0,0,0,0,0,0,0,0,0,0,0,5,71.7,10.57626,0,77.8,857.1,0,1,1,1.609438,0,0,4.564348,6.804848,1,0,0,77.8,8.386767,1.609438,,0 +16,5,95,0,3,526236,1,4387.609,15.25667,1,8,1,0,0,0,0,0,0,0,0,0,0,0,5,71.7,10.57626,0,77.8,857.1,0,1,1,1.609438,0,0,4.564348,6.804848,1,0,0,77.8,8.386767,1.609438,,0 +16,5,95,0,1,526237,1,4387.609,11.09103,0,8,1,0,0,0,0,0,0,0,0,0,0,0,5,71.7,10.57626,0,77.8,857.1,0,1,0,1.609438,0,0,4.564348,6.804848,1,0,0,77.8,8.386767,1.609438,,0 +16,5,95,0,2,526237,1,4387.609,12.09103,0,8,1,0,0,0,0,0,0,0,0,0,0,0,5,71.7,10.57626,0,77.8,857.1,0,1,0,1.609438,0,0,4.564348,6.804848,1,0,0,77.8,8.386767,1.609438,,0 +16,5,95,0,3,526237,1,4387.609,13.09103,0,8,1,0,0,0,0,0,0,0,0,0,0,0,5,71.7,10.57626,0,77.8,857.1,0,1,0,1.609438,0,0,4.564348,6.804848,1,0,0,77.8,8.386767,1.609438,,0 +16,5,95,0,1,526238,1,4387.609,32.10404,0,7,1,0,0,0,0,0,0,0,0,0,0,0,5,70.7,10.3,0,69.3,857.1,0,0,0,1.609438,0,0,4.564348,6.804848,0,0,0,69.3,8.386767,1.609438,,0 +16,5,95,0,2,526238,1,4387.609,33.10404,0,7,1,0,0,0,0,0,0,0,0,0,0,0,5,70.7,10.3,0,69.3,857.1,0,0,0,1.609438,0,0,4.564348,6.804848,0,0,0,69.3,8.386767,1.609438,,0 +16,5,95,0,3,526238,1,4387.609,34.10404,0,7,1,0,0,0,0,0,0,0,0,0,0,0,5,70.7,10.3,0,69.3,857.1,0,0,0,1.609438,0,0,4.564348,6.804848,0,0,0,69.3,8.386767,1.609438,,0 +16,5,95,0,1,526239,1,4387.609,28.63518,1,8,1,0,0,0,0,0,0,0,0,0,0,0,5,67,3.4,0,67,857.1,0,0,0,1.609438,0,0,4.564348,6.804848,1,0,0,67,8.386767,1.609438,,0 +16,5,95,0,2,526239,1,4387.609,29.63518,1,8,1,0,0,0,0,0,0,0,0,0,0,0,5,67,3.4,0,67,857.1,0,0,0,1.609438,0,0,4.564348,6.804848,1,0,0,67,8.386767,1.609438,,0 +16,5,95,0,3,526239,1,4387.609,30.63518,1,8,1,0,0,0,0,0,0,0,0,0,0,0,5,67,3.4,0,67,857.1,0,0,0,1.609438,0,0,4.564348,6.804848,1,0,0,67,8.386767,1.609438,,0 +11,5,0,0,1,526244,1,3942.652,23.18138,0,8,1,10.63377,7.022543,31.90132,0,0,49.55764,0,0,0,0,1,4,77.1,0,0,75,0,0,0,0,1.386294,0,0,0,0,0,0,0,75,8.279862,1.386294,3.903136,1 +11,5,0,0,2,526244,1,3942.652,24.18138,0,8,1,0,0,0,0,0,0,0,0,0,0,0,5,77.1,0,0,75,0,0,0,0,1.609438,0,0,0,0,0,0,0,75,8.279862,1.609438,,0 +11,5,0,0,3,526244,1,3942.652,25.18138,0,8,1,21.95122,1.30662,29.61672,0,0,52.87457,0,0,0,2,1,6,77.1,0,0,75,0,0,0,0,1.791759,0,0,0,0,0,0,0,75,8.279862,1.791759,3.967922,1 +11,5,0,0,1,526245,1,3942.652,21.49487,1,13,1,35.68694,12.85836,27.64781,0,384.9426,461.1357,1,0,0,8,1,4,72.3,20.7,0,80.7,0,0,0,0,1.386294,0,0,0,0,1,0,0,80.7,8.279862,1.386294,6.133692,1 +11,5,0,0,2,526245,1,3942.652,22.49487,1,13,1,27.09924,18.31679,0,0,1227.481,1272.897,1,0,0,1,0,5,72.3,20.7,0,80.7,0,0,0,0,1.609438,0,0,0,0,1,0,0,80.7,8.279862,1.609438,7.149051,1 +11,5,0,0,3,526245,1,3942.652,23.49487,1,13,1,43.90244,2.264808,31.35888,0,0,77.52613,0,0,0,3,1,6,72.3,20.7,0,80.7,0,0,0,0,1.791759,0,0,0,0,1,0,0,80.7,8.279862,1.791759,4.350615,1 +16,5,95,1,1,526252,0,9756.012,13.90281,0,9,1,161.2983,17.43806,0,0,0,178.7364,0,0,0,16,1,4,68.3,10.57626,1,14.8,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,1,14.8,9.185741,1.386294,5.185912,1 +16,5,95,1,2,526252,0,9756.012,14.90281,0,9,1,213.6301,33.57045,0,0,657.1822,904.3828,1,0,0,19,1,4,68.3,10.57626,1,14.8,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,1,14.8,9.185741,1.386294,6.807253,1 +16,5,95,1,3,526252,0,9756.012,15.90281,0,9,1,42.49054,20.45856,0,0,0,62.9491,0,0,0,14,0,4,68.3,10.57626,1,14.8,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,1,14.8,9.185741,1.386294,4.142326,1 +16,5,95,1,4,526252,0,9756.012,16.90281,0,9,1,100.4911,20.09067,0,0,0,120.5818,0,0,0,17,1,4,68.3,10.57626,1,14.8,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,1,14.8,9.185741,1.386294,4.792328,1 +16,5,95,1,5,526252,0,9756.012,17.90281,0,9,1,58.14751,11.76672,0,0,0,69.91424,0,0,0,7,0,4,68.3,10.57626,1,14.8,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,1,14.8,9.185741,1.386294,4.247269,1 +16,5,95,1,1,526253,0,9756.012,15.00342,0,9,1,46.08523,4.672944,27.75025,0,0,78.50842,0,0,0,4,1,4,87.2,3.4,1,64.8,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,1,0,64.8,9.185741,1.386294,4.363206,1 +16,5,95,1,2,526253,0,9756.012,16.00342,0,9,1,74.34603,28.66452,0,0,0,103.0106,0,0,0,9,1,4,87.2,3.4,1,64.8,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,1,0,64.8,9.185741,1.386294,4.634831,1 +16,5,95,1,3,526253,0,9756.012,17.00342,0,9,1,55.11148,5.919226,0,0,0,61.03071,0,0,0,3,1,4,87.2,3.4,1,64.8,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,1,0,64.8,9.185741,1.386294,4.111377,1 +16,5,95,1,4,526253,0,9756.012,18.00342,0,9,1,18.13374,6.229694,0,0,0,24.36343,0,0,0,2,0,4,87.2,3.4,1,64.8,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,1,0,64.8,9.185741,1.386294,3.193083,1 +16,5,95,1,5,526253,0,9756.012,19.00342,0,9,1,0,0,0,0,0,0,0,0,0,0,0,4,87.2,3.4,1,64.8,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,1,0,64.8,9.185741,1.386294,,0 +16,5,95,1,1,526254,0,9756.012,38.89117,0,5,1,107.0367,39.90585,32.70565,0,0,179.6482,0,0,0,9,1,4,62.2,24.1,1,38.6,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,1,0,38.6,9.185741,1.386294,5.191,1 +16,5,95,1,2,526254,0,9756.012,39.89117,0,5,1,19.73382,44.94722,0,0,0,64.68105,0,0,0,3,0,4,62.2,24.1,1,38.6,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,1,0,38.6,9.185741,1.386294,4.169468,1 +16,5,95,1,3,526254,0,9756.012,40.89117,0,5,1,26.0833,34.3963,0,0,0,60.4796,0,0,0,2,1,4,62.2,24.1,1,38.6,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,1,0,38.6,9.185741,1.386294,4.102306,1 +16,5,95,1,4,526254,0,9756.012,41.89117,0,5,1,97.09105,32.50472,27.57839,0,132.603,289.7771,1,0,0,3,1,4,62.2,24.1,1,38.6,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,1,0,38.6,9.185741,1.386294,5.669112,1 +16,5,95,1,5,526254,0,9756.012,42.89117,0,5,1,56.26072,89.7187,0,0,0,145.9794,0,0,0,7,1,4,62.2,24.1,1,38.6,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,1,0,38.6,9.185741,1.386294,4.983466,1 +16,5,95,1,1,526255,0,9756.012,31.74812,1,9,1,217.5421,252.111,31.71457,0,296.333,797.7007,1,0,0,21,2,4,64.4,27.6,1,28.4,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,1,28.4,9.185741,1.386294,6.681734,1 +16,5,95,1,2,526255,0,9756.012,32.74812,1,9,1,226.2506,222.9371,30.74805,0,1849.931,2329.867,1,0,0,23,1,4,64.4,27.6,1,28.4,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,1,28.4,9.185741,1.386294,7.753566,1 +16,5,95,1,3,526255,0,9756.012,33.74812,1,9,1,198.1489,207.2444,29.44888,0,0,434.8422,0,0,0,21,1,4,64.4,27.6,1,28.4,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,1,28.4,9.185741,1.386294,6.074983,1 +16,5,95,1,4,526255,0,9756.012,34.74812,1,9,1,216.8493,245.5799,22.66717,0,893.4643,1378.561,2,0,0,27,1,4,64.4,27.6,1,28.4,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,1,28.4,9.185741,1.386294,7.228795,1 +16,5,95,1,5,526255,0,9756.012,35.74812,1,9,1,271.3551,287.7015,45.28302,0,1209.262,1813.602,1,0,0,29,1,4,64.4,27.6,1,28.4,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,1,28.4,9.185741,1.386294,7.50307,1 +15,5,95,1,1,526256,0,10335.89,34.38741,1,13,1,108.76,16.17012,0,0,0,124.9302,0,0,0,12,0,4,55.9,31,1,5.7,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,1,0,5.7,9.243475,1.386294,4.827755,1 +15,5,95,1,2,526256,0,10335.89,35.38741,1,13,1,24.6773,2.961276,0,0,0,27.63857,0,0,0,5,0,4,55.9,31,1,5.7,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,1,0,5.7,9.243475,1.386294,3.319212,1 +15,5,95,1,3,526256,0,10335.89,36.38741,1,13,1,63.66782,6.49827,0,0,0,70.16609,0,0,0,8,0,4,55.9,31,1,5.7,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,1,0,5.7,9.243475,1.386294,4.250865,1 +15,5,95,1,1,526257,0,10335.89,9.952087,1,13,1,30.04655,10.97757,14.25307,0,0,55.27719,0,0,0,4,0,4,73.3,10.57626,0,22.2,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,0,1,0,22.2,9.243475,1.386294,4.012361,1 +15,5,95,1,2,526257,0,10335.89,10.95209,1,13,1,34.54821,.7403189,9.870919,0,0,45.15945,0,0,0,4,0,4,73.3,10.57626,0,22.2,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,0,1,0,22.2,9.243475,1.386294,3.8102,1 +15,5,95,1,3,526257,0,10335.89,11.95209,1,13,1,20.41522,3.439446,11.01384,0,0,34.86851,0,0,0,2,0,4,73.3,10.57626,0,22.2,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,0,1,0,22.2,9.243475,1.386294,3.551584,1 +15,5,95,1,1,526258,0,10335.89,35.44695,0,12,1,45.70461,1.248413,0,0,0,46.95303,0,0,0,2,0,4,79.3,0,0,87.5,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,87.5,9.243475,1.386294,3.849148,1 +15,5,95,1,2,526258,0,10335.89,36.44695,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,79.3,0,0,87.5,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,87.5,9.243475,1.386294,,0 +15,5,95,1,3,526258,0,10335.89,37.44695,0,12,1,17.30104,2.595156,0,0,0,19.89619,0,0,0,1,0,4,79.3,0,0,87.5,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,87.5,9.243475,1.386294,2.990529,1 +15,5,95,1,1,526259,0,10335.89,9.040383,0,13,1,30.04655,12.61109,0,0,0,42.65764,0,0,0,5,0,4,75,10.57626,0,14.8,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,1,0,14.8,9.243475,1.386294,3.753206,1 +15,5,95,1,2,526259,0,10335.89,10.04038,0,13,1,33.02961,1.42369,0,0,0,34.4533,0,0,0,4,0,4,75,10.57626,0,14.8,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,1,0,14.8,9.243475,1.386294,3.539605,1 +15,5,95,1,3,526259,0,10335.89,11.04038,0,13,1,26.98962,6.768166,10.391,0,0,44.14879,0,0,0,3,0,4,75,10.57626,0,14.8,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,1,0,14.8,9.243475,1.386294,3.787565,1 +11,5,0,1,1,526260,0,13109.68,9.470226,0,11,1,14.8662,9.435084,0,0,0,24.30129,0,0,0,3,0,4,93.3,10.57626,0,85.2,0,520.26,1,0,1.386294,6.254329,0,0,0,0,0,0,85.2,9.481182,1.386294,3.190529,1 +11,5,0,1,2,526260,0,13109.68,10.47023,0,11,1,5.507113,1.032584,0,0,0,6.539697,0,0,0,1,0,4,93.3,10.57626,0,85.2,0,520.26,1,0,1.386294,6.254329,0,0,0,0,0,0,85.2,9.481182,1.386294,1.877891,1 +11,5,0,1,3,526260,0,13109.68,11.47023,0,11,1,43.33193,7.328566,0,0,0,50.6605,0,0,0,5,0,4,93.3,10.57626,0,85.2,0,520.26,1,0,1.386294,6.254329,0,0,0,0,0,0,85.2,9.481182,1.386294,3.925146,1 +11,5,0,1,4,526260,0,13109.68,12.47023,0,11,1,116.3581,13.22252,0,0,0,129.5807,0,0,0,7,0,4,93.3,10.57626,0,85.2,0,520.26,1,0,1.386294,6.254329,0,0,0,0,0,0,85.2,9.481182,1.386294,4.864304,1 +11,5,0,1,5,526260,0,13109.68,13.47023,0,11,1,44.59691,6.758148,0,0,0,51.35506,0,0,0,4,0,4,93.3,10.57626,0,85.2,0,520.26,1,0,1.386294,6.254329,0,0,0,0,0,0,85.2,9.481182,1.386294,3.938763,1 +11,5,0,1,1,526261,0,13109.68,17.88912,1,11,1,0,0,0,0,0,0,0,0,0,0,0,4,85.1,0,0,62.5,0,520.26,1,1,1.386294,6.254329,0,0,0,0,0,0,62.5,9.481182,1.386294,,0 +11,5,0,1,2,526261,0,13109.68,18.88912,1,11,1,55.07113,14.8279,0,0,0,69.89903,0,0,0,5,1,4,85.1,0,0,62.5,0,520.26,0,0,1.386294,6.254329,0,0,0,0,0,0,62.5,9.481182,1.386294,4.247052,1 +11,5,0,1,3,526261,0,13109.68,19.88912,1,11,1,0,1.787968,0,0,0,1.787968,0,0,0,0,0,4,85.1,0,0,62.5,0,520.26,0,0,1.386294,6.254329,0,0,0,0,0,0,62.5,9.481182,1.386294,.5810798,1 +11,5,0,1,4,526261,0,13109.68,20.88912,1,11,1,21.53381,8.745749,0,0,0,30.27956,0,0,0,3,0,4,85.1,0,0,62.5,0,520.26,0,0,1.386294,6.254329,0,0,0,0,0,0,62.5,9.481182,1.386294,3.410473,1 +11,5,0,1,5,526261,0,13109.68,21.88912,1,11,1,191.7667,57.80789,0,0,688.1647,937.7393,1,0,0,10,0,4,85.1,0,0,62.5,0,520.26,0,0,1.386294,6.254329,0,0,0,0,0,0,62.5,9.481182,1.386294,6.843472,1 +11,5,0,1,1,526262,0,13109.68,52.63244,0,14,1,111.7443,25.91675,0,0,0,137.6611,0,0,0,9,0,4,57.4,34.5,0,48.9,0,520.26,0,0,1.386294,6.254329,0,0,0,1,0,0,48.9,9.481182,1.386294,4.924795,1 +11,5,0,1,2,526262,0,13109.68,53.63244,0,14,1,336.8518,55.63561,0,0,0,392.4874,0,0,0,13,0,4,57.4,34.5,0,48.9,0,520.26,0,0,1.386294,6.254329,0,0,0,1,0,0,48.9,9.481182,1.386294,5.972504,1 +11,5,0,1,3,526262,0,13109.68,54.63244,0,14,1,116.5334,40.05048,31.97308,0,320.1515,508.7085,1,0,0,22,0,4,57.4,34.5,0,48.9,0,520.26,0,0,1.386294,6.254329,0,0,0,1,0,0,48.9,9.481182,1.386294,6.231875,1 +11,5,0,1,4,526262,0,13109.68,55.63244,0,14,1,47.97884,52.21761,17.37816,62.33472,3042.312,3159.887,3,0,4,14,0,4,57.4,34.5,0,48.9,0,520.26,0,0,1.386294,6.254329,0,0,0,1,0,0,48.9,9.481182,1.386294,8.058291,1 +11,5,0,1,5,526262,0,13109.68,56.63244,0,14,1,86.10635,57.33105,0,0,0,143.4374,0,0,0,17,0,4,57.4,34.5,0,48.9,0,520.26,0,0,1.386294,6.254329,0,0,0,1,0,0,48.9,9.481182,1.386294,4.965899,1 +11,5,0,1,1,526263,0,13109.68,46.33812,1,11,1,61.94252,0,34.98513,0,0,96.92765,0,0,0,2,0,4,71.8,10.3,0,78.4,0,520.26,0,0,1.386294,6.254329,0,0,0,0,0,0,78.4,9.481182,1.386294,4.573965,1 +11,5,0,1,2,526263,0,13109.68,47.33812,1,11,1,13.76778,0,41.30335,0,0,55.07113,0,0,0,1,0,4,71.8,10.3,0,78.4,0,520.26,0,0,1.386294,6.254329,0,0,0,0,0,0,78.4,9.481182,1.386294,4.008626,1 +11,5,0,1,3,526263,0,13109.68,48.33812,1,11,1,14.72444,1.851073,25.20404,0,0,41.77955,0,0,0,1,0,4,71.8,10.3,0,78.4,0,520.26,0,0,1.386294,6.254329,0,0,0,0,0,0,78.4,9.481182,1.386294,3.732407,1 +11,5,0,1,4,526263,0,13109.68,49.33812,1,11,1,18.88931,0,0,0,0,18.88931,0,0,0,1,0,4,71.8,10.3,0,78.4,0,520.26,0,0,1.386294,6.254329,0,0,0,0,0,0,78.4,9.481182,1.386294,2.938596,1 +11,5,0,1,5,526263,0,13109.68,50.33812,1,11,1,45.45454,18.83705,27.1012,0,1542.367,1633.76,1,0,0,5,1,4,71.8,10.3,0,78.4,0,520.26,0,0,1.386294,6.254329,0,0,0,0,0,0,78.4,9.481182,1.386294,7.398639,1 +6,5,25,0,1,526264,0,10649.26,39.02259,1,16,1,25.8441,24.19758,0,0,0,50.04168,0,0,0,2,0,1,81.9,10.3,0,86.4,700,700,0,0,0,6.55108,0,3.258096,7.937375,0,0,0,86.4,9.273339,0,3.912856,1 +6,5,25,0,2,526264,0,10649.26,40.02259,1,16,1,0,12.01425,0,0,0,12.01425,0,0,0,0,0,1,81.9,10.3,0,86.4,700,700,0,0,0,6.55108,0,3.258096,7.937375,0,0,0,86.4,9.273339,0,2.486094,1 +6,5,25,0,3,526264,0,10649.26,41.02259,1,16,1,100.1353,17.79093,38.34574,0,0,156.272,0,0,0,8,0,1,81.9,10.3,0,86.4,700,700,0,0,0,6.55108,0,3.258096,7.937375,0,0,0,86.4,9.273339,0,5.051598,1 +17,5,25,1,1,526283,0,11462.76,32.33128,1,8,1,60.08424,5.257681,42.12091,0,1013.801,1121.264,1,0,0,3,1,3,58.5,20.7,1,46.6,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,46.6,9.346946,1.098612,7.022212,1 +17,5,25,1,2,526283,0,11462.76,33.33128,1,8,1,0,0,0,0,0,0,0,0,0,0,0,3,58.5,20.7,1,46.6,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,46.6,9.346946,1.098612,,0 +17,5,25,1,3,526283,0,11462.76,34.33128,1,8,1,49.64241,0,0,0,0,49.64241,0,0,0,1,0,3,58.5,20.7,1,46.6,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,46.6,9.346946,1.098612,3.904845,1 +17,5,25,1,4,526283,0,11462.76,35.33128,1,8,1,0,0,0,0,364.1859,364.1859,1,0,0,0,0,3,58.5,20.7,1,46.6,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,46.6,9.346946,1.098612,5.897665,1 +17,5,25,1,5,526283,0,11462.76,36.33128,1,8,1,48.71355,0,0,0,0,48.71355,0,0,0,1,0,3,58.5,20.7,1,46.6,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,46.6,9.346946,1.098612,3.885957,1 +17,5,25,1,1,526284,0,11462.76,13.24298,1,8,1,9.910803,0,32.21011,0,0,42.12091,0,0,0,0,1,3,86.7,10.57626,0,63,750,750,1,1,1.098612,6.620073,0,3.258096,8.006368,0,1,0,63,9.346946,1.098612,3.740544,1 +17,5,25,1,2,526284,0,11462.76,14.24298,1,8,1,0,0,0,0,0,0,0,0,0,0,0,3,86.7,10.57626,0,63,750,750,1,1,1.098612,6.620073,0,3.258096,8.006368,0,1,0,63,9.346946,1.098612,,0 +17,5,25,1,3,526284,0,11462.76,15.24298,1,8,1,0,0,0,0,0,0,0,0,0,0,0,3,86.7,10.57626,0,63,750,750,1,1,1.098612,6.620073,0,3.258096,8.006368,0,1,0,63,9.346946,1.098612,,0 +17,5,25,1,4,526284,0,11462.76,16.24298,1,8,1,18.88931,0,0,0,0,18.88931,0,0,0,1,0,3,86.7,10.57626,0,63,750,750,1,1,1.098612,6.620073,0,3.258096,8.006368,0,1,0,63,9.346946,1.098612,2.938596,1 +17,5,25,1,5,526284,0,11462.76,17.24298,1,8,1,0,0,0,0,0,0,0,0,0,0,0,3,86.7,10.57626,0,63,750,750,1,1,1.098612,6.620073,0,3.258096,8.006368,0,1,0,63,9.346946,1.098612,,0 +17,5,25,1,1,526285,0,11462.76,12.32033,0,8,1,12.3885,0,29.73241,0,0,42.12091,0,0,0,0,1,3,88.3,10.57626,1,66.7,750,750,1,0,1.098612,6.620073,0,3.258096,8.006368,0,1,0,66.7,9.346946,1.098612,3.740544,1 +17,5,25,1,2,526285,0,11462.76,13.32033,0,8,1,31.09225,0,0,0,0,31.09225,0,0,0,1,0,3,88.3,10.57626,1,66.7,750,750,1,0,1.098612,6.620073,0,3.258096,8.006368,0,1,0,66.7,9.346946,1.098612,3.436959,1 +17,5,25,1,3,526285,0,11462.76,14.32033,0,8,1,0,0,0,0,0,0,0,0,0,0,0,3,88.3,10.57626,1,66.7,750,750,1,0,1.098612,6.620073,0,3.258096,8.006368,0,1,0,66.7,9.346946,1.098612,,0 +17,5,25,1,4,526285,0,11462.76,15.32033,0,8,1,0,0,0,0,0,0,0,0,0,0,0,3,88.3,10.57626,1,66.7,750,750,1,0,1.098612,6.620073,0,3.258096,8.006368,0,1,0,66.7,9.346946,1.098612,,0 +17,5,25,1,5,526285,0,11462.76,16.32033,0,8,1,0,0,0,0,0,0,0,0,0,0,0,3,88.3,10.57626,1,66.7,750,750,1,0,1.098612,6.620073,0,3.258096,8.006368,0,1,0,66.7,9.346946,1.098612,,0 +19,5,25,1,1,526289,0,5337.583,22.68309,0,11,1,0,0,0,0,0,0,0,0,0,0,0,2,85.6,6.9,0,76.1,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,76.1,8.582716,.6931472,,0 +19,5,25,1,2,526289,0,5337.583,23.68309,0,11,1,0,0,0,0,0,0,0,0,0,0,0,2,85.6,6.9,0,76.1,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,76.1,8.582716,.6931472,,0 +19,5,25,1,3,526289,0,5337.583,24.68309,0,11,1,0,0,0,0,0,0,0,0,0,0,0,2,85.6,6.9,0,76.1,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,76.1,8.582716,.6931472,,0 +19,5,25,1,4,526289,0,5337.583,25.68309,0,11,1,0,0,0,0,0,0,0,0,0,0,0,2,85.6,6.9,0,76.1,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,76.1,8.582716,.6931472,,0 +19,5,25,1,5,526289,0,5337.583,26.68309,0,11,1,0,0,0,0,0,0,0,0,0,0,0,2,85.6,6.9,0,76.1,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,76.1,8.582716,.6931472,,0 +19,5,25,1,1,526290,0,5337.583,21.60164,1,13,1,0,0,0,0,0,0,0,0,0,0,0,2,91,6.9,0,85.2,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,85.2,8.582716,.6931472,,0 +19,5,25,1,2,526290,0,5337.583,22.60164,1,13,1,0,0,0,0,0,0,0,0,0,0,0,2,91,6.9,0,85.2,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,85.2,8.582716,.6931472,,0 +19,5,25,1,3,526290,0,5337.583,23.60164,1,13,1,28.60749,0,0,0,0,28.60749,0,0,0,1,0,2,91,6.9,0,85.2,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,85.2,8.582716,.6931472,3.353668,1 +19,5,25,1,4,526290,0,5337.583,24.60164,1,13,1,0,0,0,0,0,0,0,0,0,0,0,2,91,6.9,0,85.2,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,85.2,8.582716,.6931472,,0 +19,5,25,1,5,526290,0,5337.583,25.60164,1,13,1,0,0,0,0,0,0,0,0,0,0,0,2,91,6.9,0,85.2,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,85.2,8.582716,.6931472,,0 +14,5,95,0,1,526297,1,51.71531,18.83368,0,9,1,0,0,0,0,0,0,0,0,0,0,0,5,79.3,10.3,0,64.3,140.6,140.6,0,0,1.609438,4.945919,0,4.564348,4.997212,1,0,0,64.3,3.964906,1.609438,,0 +14,5,95,0,2,526297,1,51.71531,19.83368,0,9,1,0,0,0,0,0,0,0,0,0,0,0,6,79.3,10.3,0,64.3,140.6,140.6,0,0,1.791759,4.945919,0,4.564348,4.997212,1,0,0,64.3,3.964906,1.791759,,0 +14,5,95,0,3,526297,1,51.71531,20.83368,0,9,1,0,0,0,0,0,0,0,0,0,0,0,6,79.3,10.3,0,64.3,140.6,140.6,0,0,1.791759,4.945919,0,4.564348,4.997212,1,0,0,64.3,3.964906,1.791759,,0 +14,5,95,1,1,526298,1,51.71531,13.48392,1,8,1,0,0,0,0,0,0,0,0,0,0,0,5,53.3,10.57626,0,81.5,140.6,140.6,1,1,1.609438,4.945919,0,4.564348,4.997212,0,1,0,81.5,3.964906,1.609438,,0 +14,5,95,1,2,526298,1,51.71531,14.48392,1,8,1,0,0,0,0,0,0,0,0,0,0,0,6,53.3,10.57626,0,81.5,140.6,140.6,1,1,1.791759,4.945919,0,4.564348,4.997212,0,1,0,81.5,3.964906,1.791759,,0 +14,5,95,1,3,526298,1,51.71531,15.48392,1,8,1,0,0,0,0,0,0,0,0,0,0,0,6,53.3,10.57626,0,81.5,140.6,140.6,1,1,1.791759,4.945919,0,4.564348,4.997212,0,1,0,81.5,3.964906,1.791759,,0 +14,5,95,1,1,526299,1,51.71531,17.859,1,8,1,0,0,0,0,0,0,1,1,0,0,0,5,49.5,0,1,50,140.6,140.6,1,1,1.609438,4.945919,0,4.564348,4.997212,1,0,0,50,3.964906,1.609438,,0 +14,5,95,1,2,526299,1,51.71531,18.859,1,8,1,58.39028,0,0,0,0,58.39028,0,0,0,3,0,6,49.5,0,1,50,140.6,140.6,0,0,1.791759,4.945919,0,4.564348,4.997212,1,0,0,50,3.964906,1.791759,4.06715,1 +14,5,95,1,3,526299,1,51.71531,19.859,1,8,1,44.9827,0,2.768166,0,1270.588,1318.339,1,1,0,3,0,6,49.5,0,1,50,140.6,140.6,0,0,1.791759,4.945919,0,4.564348,4.997212,1,0,0,50,3.964906,1.791759,7.184128,1 +14,5,95,1,1,526300,1,51.71531,37.13073,1,8,1,0,0,0,0,0,0,0,0,0,0,0,5,53.7,10.3,1,64.8,140.6,140.6,0,0,1.609438,4.945919,0,4.564348,4.997212,0,0,1,64.8,3.964906,1.609438,,0 +14,5,95,1,2,526300,1,51.71531,38.13073,1,8,1,22.85497,0,0,0,0,22.85497,0,0,0,0,0,6,53.7,10.3,1,64.8,140.6,140.6,0,0,1.791759,4.945919,0,4.564348,4.997212,0,0,1,64.8,3.964906,1.791759,3.129169,1 +14,5,95,1,3,526300,1,51.71531,39.13073,1,8,1,24.42907,0,0,0,0,24.42907,0,0,0,1,0,6,53.7,10.3,1,64.8,140.6,140.6,0,0,1.791759,4.945919,0,4.564348,4.997212,0,0,1,64.8,3.964906,1.791759,3.195774,1 +14,5,95,1,1,526301,1,51.71531,16.3833,0,8,1,0,0,0,0,0,0,0,0,0,0,0,5,82.4,0,0,79.5,140.6,140.6,1,0,1.609438,4.945919,0,4.564348,4.997212,0,1,0,79.5,3.964906,1.609438,,0 +14,5,95,1,2,526301,1,51.71531,17.3833,0,8,1,0,0,0,0,0,0,0,0,0,0,0,6,82.4,0,0,79.5,140.6,140.6,1,0,1.791759,4.945919,0,4.564348,4.997212,0,1,0,79.5,3.964906,1.791759,,0 +14,5,95,1,3,526301,1,51.71531,18.3833,0,8,1,34.9481,0,0,0,0,34.9481,0,0,0,1,0,6,82.4,0,0,79.5,140.6,140.6,0,0,1.791759,4.945919,0,4.564348,4.997212,0,1,0,79.5,3.964906,1.791759,3.553864,1 +13,5,0,1,1,526305,0,6592.962,25.18275,0,12,1,29.23687,3.384539,34.19227,0,0,66.81367,0,0,0,0,1,3,68.6,27.6,0,64.8,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,64.8,8.79391,1.098612,4.201908,1 +13,5,0,1,2,526305,0,6592.962,26.18275,0,12,1,12.84993,6.998623,0,0,0,19.84855,0,0,0,2,0,3,68.6,27.6,0,64.8,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,64.8,8.79391,1.098612,2.988131,1 +13,5,0,1,3,526305,0,6592.962,27.18275,0,12,1,6.310475,4.354228,0,0,0,10.6647,0,0,0,1,0,3,68.6,27.6,0,64.8,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,64.8,8.79391,1.098612,2.36694,1 +13,5,0,1,4,526305,0,6592.962,28.18275,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,68.6,27.6,0,64.8,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,64.8,8.79391,1.098612,,0 +13,5,0,1,5,526305,0,6592.962,29.18275,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,68.6,27.6,0,64.8,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,64.8,8.79391,1.098612,,0 +13,5,0,1,1,526306,0,6592.962,22.56537,1,12,1,21.30823,4.048563,31.71457,0,0,57.07136,0,0,0,0,1,3,64.4,10.3,0,55.7,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,55.7,8.79391,1.098612,4.044302,1 +13,5,0,1,2,526306,0,6592.962,23.56537,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,64.4,10.3,0,55.7,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,55.7,8.79391,1.098612,,0 +13,5,0,1,3,526306,0,6592.962,24.56537,1,12,1,14.72444,0,28.18679,0,0,42.91123,0,0,0,0,1,3,64.4,10.3,0,55.7,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,55.7,8.79391,1.098612,3.759134,1 +13,5,0,1,4,526306,0,6592.962,25.56537,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,64.4,10.3,0,55.7,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,55.7,8.79391,1.098612,,0 +13,5,0,1,5,526306,0,6592.962,26.56537,1,12,1,42.53859,9.48199,0,0,0,52.02058,0,0,0,2,0,3,64.4,10.3,0,55.7,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,55.7,8.79391,1.098612,3.951639,1 +13,5,0,1,1,526307,0,6592.962,4.010952,1,12,1,30.22795,0,0,0,0,30.22795,0,0,0,4,0,3,77.40034,10.57626,0,51.9,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,0,0,0,51.9,8.79391,1.098612,3.408767,1 +13,5,0,1,2,526307,0,6592.962,5.010952,1,12,1,6.883892,1.468564,0,0,322.6251,330.9775,1,0,0,1,0,3,77.40034,10.57626,0,51.9,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,0,0,0,51.9,8.79391,1.098612,5.802051,1 +13,5,0,1,3,526307,0,6592.962,6.010952,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,77.40034,10.57626,0,51.9,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,0,0,0,51.9,8.79391,1.098612,,0 +13,5,0,1,4,526307,0,6592.962,7.010952,1,12,1,21.15602,0,0,0,0,21.15602,0,0,0,1,0,3,77.40034,10.57626,0,51.9,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,0,0,0,51.9,8.79391,1.098612,3.051925,1 +13,5,0,1,5,526307,0,6592.962,8.010951,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,77.40034,10.57626,0,51.9,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,0,0,0,51.9,8.79391,1.098612,,0 +15,5,95,0,1,526308,1,4047.619,3.08282,1,9,1,7.993269,0,0,0,0,7.993269,0,0,0,0,0,5,77.40034,10.57626,0,63,19.3,19.3,1,1,1.609438,2.960105,0,4.564348,3.011398,1,0,0,63,8.306131,1.609438,2.0786,1 +15,5,95,0,2,526308,1,4047.619,4.08282,1,9,1,31.73404,0,0,0,0,31.73404,0,0,0,1,0,5,77.40034,10.57626,0,63,19.3,19.3,1,1,1.609438,2.960105,0,4.564348,3.011398,1,0,0,63,8.306131,1.609438,3.45739,1 +15,5,95,0,3,526308,1,4047.619,5.08282,1,9,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,0,63,19.3,19.3,1,1,1.386294,2.960105,0,4.564348,3.011398,1,0,0,63,8.306131,1.386294,,0 +15,5,95,0,1,526309,1,4047.619,32.11499,1,9,1,26.0833,0,0,0,0,26.0833,0,0,0,2,0,5,51.6,13.8,0,56.8,19.3,19.3,0,0,1.609438,2.960105,0,4.564348,3.011398,1,0,0,56.8,8.306131,1.609438,3.261295,1 +15,5,95,0,2,526309,1,4047.619,33.11499,1,9,1,102.9845,23.75519,0,0,352.0967,478.8364,1,0,0,4,0,5,51.6,13.8,0,56.8,19.3,19.3,0,0,1.609438,2.960105,0,4.564348,3.011398,1,0,0,56.8,8.306131,1.609438,6.171359,1 +15,5,95,0,3,526309,1,4047.619,34.11499,1,9,1,12.00686,0,0,0,0,12.00686,0,0,0,1,0,4,51.6,13.8,0,56.8,19.3,19.3,0,0,1.386294,2.960105,0,4.564348,3.011398,1,0,0,56.8,8.306131,1.386294,2.485478,1 +15,5,95,0,1,526310,1,4047.619,15.26078,0,9,1,0,0,0,0,0,0,0,0,0,0,0,5,63.3,0,0,68.2,19.3,19.3,1,0,1.609438,2.960105,0,4.564348,3.011398,1,0,0,68.2,8.306131,1.609438,,0 +15,5,95,0,2,526310,1,4047.619,16.26078,0,9,1,0,0,0,0,0,0,0,0,0,0,0,5,63.3,0,0,68.2,19.3,19.3,1,0,1.609438,2.960105,0,4.564348,3.011398,1,0,0,68.2,8.306131,1.609438,,0 +15,5,95,0,1,526311,1,4047.619,9.201917,0,9,1,53.93353,0,0,0,0,53.93353,0,0,0,1,0,5,98.3,10.57626,0,74.1,19.3,19.3,1,0,1.609438,2.960105,0,4.564348,3.011398,1,0,0,74.1,8.306131,1.609438,3.987752,1 +15,5,95,0,2,526311,1,4047.619,10.20192,0,9,1,7.555724,0,0,0,0,7.555724,0,0,0,0,0,5,98.3,10.57626,0,74.1,19.3,19.3,1,0,1.609438,2.960105,0,4.564348,3.011398,1,0,0,74.1,8.306131,1.609438,2.022305,1 +15,5,95,0,3,526311,1,4047.619,11.20192,0,9,1,0,0,0,0,0,0,0,0,0,0,0,4,98.3,10.57626,0,74.1,19.3,19.3,1,0,1.386294,2.960105,0,4.564348,3.011398,1,0,0,74.1,8.306131,1.386294,,0 +15,5,95,0,1,526312,1,4047.619,13.82067,0,9,1,23.64325,0,0,0,0,23.64325,0,0,0,0,0,5,86.7,10.57626,0,88.9,19.3,19.3,1,0,1.609438,2.960105,0,4.564348,3.011398,1,0,0,88.9,8.306131,1.609438,3.163078,1 +15,5,95,0,2,526312,1,4047.619,14.82067,0,9,1,10.67246,0,0,0,0,10.67246,0,0,0,0,0,5,86.7,10.57626,0,88.9,19.3,19.3,1,0,1.609438,2.960105,0,4.564348,3.011398,1,0,0,88.9,8.306131,1.609438,2.367666,1 +15,5,95,0,3,526312,1,4047.619,15.82067,0,9,1,0,0,0,0,0,0,0,0,0,0,0,4,86.7,10.57626,0,88.9,19.3,19.3,1,0,1.386294,2.960105,0,4.564348,3.011398,1,0,0,88.9,8.306131,1.386294,,0 +10,5,50,1,1,526318,0,8942.652,28.79945,1,12,1,0,12.44151,0,0,0,12.44151,0,0,0,0,0,3,80.3,13.8,0,83,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,83,9.0987,1.098612,2.521039,1 +10,5,50,1,2,526318,0,8942.652,29.79945,1,12,1,59.35115,0,27.48092,0,0,86.83206,0,0,0,1,1,3,80.3,13.8,0,83,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,83,9.0987,1.098612,4.463976,1 +10,5,50,1,3,526318,0,8942.652,30.79945,1,12,1,20.55749,0,0,0,0,20.55749,0,0,0,1,0,3,80.3,13.8,0,83,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,83,9.0987,1.098612,3.023225,1 +10,5,50,1,1,526319,0,8942.652,3.698836,1,12,1,74.01106,23.60698,0,0,0,97.61803,0,0,0,8,0,3,77.40034,10.57626,0,40.7,1000,1000,1,1,1.098612,6.907755,0,3.931826,7.600903,0,0,0,40.7,9.0987,1.098612,4.581062,1 +10,5,50,1,2,526319,0,8942.652,4.698836,1,12,1,373.2824,95.62977,27.09924,0,0,496.0114,0,0,0,16,1,3,77.40034,10.57626,0,40.7,1000,1000,1,1,1.098612,6.907755,0,3.931826,7.600903,0,0,0,40.7,9.0987,1.098612,6.206599,1 +10,5,50,1,3,526319,0,8942.652,5.698836,1,12,1,70.7317,20.38328,0,0,0,91.11498,0,0,0,5,0,3,77.40034,10.57626,0,40.7,1000,1000,1,1,1.098612,6.907755,0,3.931826,7.600903,0,0,0,40.7,9.0987,1.098612,4.512122,1 +10,5,50,1,1,526320,0,8942.652,23.69062,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,78.2,0,0,72.7,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,72.7,9.0987,1.098612,,0 +10,5,50,1,2,526320,0,8942.652,24.69062,0,12,1,13.35878,19.27481,27.48092,0,0,60.1145,0,0,0,0,1,3,78.2,0,0,72.7,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,72.7,9.0987,1.098612,4.096251,1 +10,5,50,1,3,526320,0,8942.652,25.69062,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,78.2,0,0,72.7,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,72.7,9.0987,1.098612,,0 +11,5,0,1,1,526334,1,5952.381,22.87474,1,12,1,61.99746,8.298773,0,0,0,70.29623,0,0,0,1,0,3,85.2,0,0,83,0,199.2,0,0,1.098612,5.294309,0,0,0,0,0,0,83,8.691714,1.098612,4.252718,1 +11,5,0,1,2,526334,1,5952.381,23.87474,1,12,1,52.58162,10.7631,0,0,869.7798,933.1245,1,0,0,4,0,3,85.2,0,0,83,0,199.2,0,0,1.098612,5.294309,0,0,0,0,0,0,83,8.691714,1.098612,6.838539,1 +11,5,0,1,3,526334,1,5952.381,24.87474,1,12,1,13.14879,24.46713,0,0,0,37.61592,0,0,0,2,0,4,85.2,0,0,83,0,199.2,0,0,1.386294,5.294309,0,0,0,0,0,0,83,8.691714,1.386294,3.627427,1 +11,5,0,1,1,526335,1,5952.381,5.598905,0,12,1,18.6204,0,0,0,0,18.6204,0,0,0,2,0,3,93.3,10.57626,0,81.5,0,199.2,1,0,1.098612,5.294309,0,0,0,0,0,0,81.5,8.691714,1.098612,2.924258,1 +11,5,0,1,2,526335,1,5952.381,6.598905,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,93.3,10.57626,0,81.5,0,199.2,1,0,1.098612,5.294309,0,0,0,0,0,0,81.5,8.691714,1.098612,,0 +11,5,0,1,3,526335,1,5952.381,7.598905,0,12,1,7.311419,0,0,0,0,7.311419,0,0,0,1,0,4,93.3,10.57626,0,81.5,0,199.2,1,0,1.386294,5.294309,0,0,0,0,0,0,81.5,8.691714,1.386294,1.989437,1 +11,5,0,1,1,526336,1,5952.381,26.30253,0,11,1,44.43504,0,0,0,0,44.43504,0,0,0,1,0,3,93.6,0,0,97.7,0,199.2,0,0,1.098612,5.294309,0,0,0,0,0,0,97.7,8.691714,1.098612,3.794028,1 +11,5,0,1,2,526336,1,5952.381,27.30253,0,11,1,11.38952,0,0,0,0,11.38952,0,0,0,2,0,3,93.6,0,0,97.7,0,199.2,0,0,1.098612,5.294309,0,0,0,0,0,0,97.7,8.691714,1.098612,2.432694,1 +11,5,0,1,3,526336,1,5952.381,28.30253,0,11,1,39.10035,0,0,0,0,39.10035,0,0,0,4,0,4,93.6,0,0,97.7,0,199.2,0,0,1.386294,5.294309,0,0,0,0,0,0,97.7,8.691714,1.386294,3.666131,1 +11,5,0,1,1,526350,1,5138.249,26.87748,1,16,1,12.62095,14.5772,34.86748,0,0,62.06563,0,0,0,1,0,2,78.2,20.7,0,68.2,0,147.36,0,0,.6931472,4.992878,0,0,0,0,0,0,68.2,8.544662,.6931472,4.128192,1 +11,5,0,1,2,526350,1,5138.249,27.87748,1,16,1,0,0,0,0,0,0,0,0,0,0,0,2,78.2,20.7,0,68.2,0,147.36,0,0,.6931472,4.992878,0,0,0,0,0,0,68.2,8.544662,.6931472,,0 +11,5,0,1,1,526351,1,5138.249,5.598905,0,16,1,99.70551,14.03029,0,0,0,113.7358,0,0,0,3,0,2,83.3,10.57626,0,33.3,0,147.36,1,0,.6931472,4.992878,0,0,0,0,0,0,33.3,8.544662,.6931472,4.733878,1 +11,5,0,1,2,526351,1,5138.249,6.598905,0,16,1,41.17869,11.40914,0,0,0,52.58783,0,0,0,5,0,2,83.3,10.57626,0,33.3,0,147.36,1,0,.6931472,4.992878,0,0,0,0,0,0,33.3,8.544662,.6931472,3.962485,1 +7,5,25,1,1,526353,0,11349.56,28.5859,1,16,1,52.52726,11.49158,1.23885,0,0,65.25768,0,0,0,4,0,4,79.3,13.8,1,65.9,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,65.9,9.337023,1.386294,4.178344,1 +7,5,25,1,2,526353,0,11349.56,29.5859,1,16,1,21.1106,9.403396,0,0,0,30.514,0,0,0,2,0,4,79.3,13.8,1,65.9,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,65.9,9.337023,1.386294,3.418185,1 +7,5,25,1,3,526353,0,11349.56,30.5859,1,16,1,36.18006,21.5692,0,0,0,57.74926,0,0,0,4,0,4,79.3,13.8,1,65.9,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,65.9,9.337023,1.386294,4.05611,1 +7,5,25,1,4,526353,0,11349.56,31.5859,1,16,1,34.37854,2.077824,0,0,0,36.45637,0,0,0,3,0,4,79.3,13.8,1,65.9,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,65.9,9.337023,1.386294,3.596116,1 +7,5,25,1,5,526353,0,11349.56,32.5859,1,16,1,34.64837,4.686106,0,0,0,39.33448,0,0,0,4,0,4,79.3,13.8,1,65.9,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,65.9,9.337023,1.386294,3.672101,1 +7,5,25,1,1,526354,0,11349.56,2.422998,0,16,1,14.8662,3.592666,0,0,0,18.45887,0,0,0,2,0,4,77.40034,10.57626,0,100,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,100,9.337023,1.386294,2.915545,1 +7,5,25,1,2,526354,0,11349.56,3.422998,0,16,1,5.507113,9.449288,0,0,0,14.9564,0,0,0,1,0,4,77.40034,10.57626,0,100,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,100,9.337023,1.386294,2.705139,1 +7,5,25,1,3,526354,0,11349.56,4.422998,0,16,1,31.13168,11.07699,0,0,0,42.20867,0,0,0,4,0,4,77.40034,10.57626,0,100,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,100,9.337023,1.386294,3.742626,1 +7,5,25,1,4,526354,0,11349.56,5.422998,0,16,1,38.1564,2.595391,0,0,0,40.75179,0,0,0,3,0,4,77.40034,10.57626,0,100,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,100,9.337023,1.386294,3.7075,1 +7,5,25,1,5,526354,0,11349.56,6.422998,0,16,1,184.5626,5.526587,0,0,0,190.0892,0,0,0,10,0,4,77.40034,10.57626,0,100,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,100,9.337023,1.386294,5.247493,1 +7,5,25,1,1,526355,0,11349.56,5.549623,1,16,1,18.83052,0,0,0,0,18.83052,0,0,0,1,0,4,90,10.57626,0,92.6,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,1,0,0,92.6,9.337023,1.386294,2.935479,1 +7,5,25,1,2,526355,0,11349.56,6.549623,1,16,1,32.12483,0,0,0,0,32.12483,0,0,0,1,0,4,90,10.57626,0,92.6,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,1,0,0,92.6,9.337023,1.386294,3.469629,1 +7,5,25,1,3,526355,0,11349.56,7.549623,1,16,1,106.016,0,0,0,0,106.016,0,0,0,1,0,4,90,10.57626,0,92.6,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,1,0,0,92.6,9.337023,1.386294,4.66359,1 +7,5,25,1,4,526355,0,11349.56,8.549623,1,16,1,26.82282,0,19.64488,0,0,46.4677,0,0,0,2,0,4,90,10.57626,0,92.6,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,1,0,0,92.6,9.337023,1.386294,3.838758,1 +7,5,25,1,5,526355,0,11349.56,9.549623,1,16,1,18.18182,0,0,0,0,18.18182,0,0,0,2,0,4,90,10.57626,0,92.6,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,1,0,0,92.6,9.337023,1.386294,2.900422,1 +7,5,25,1,1,526356,0,11349.56,29.28131,0,13,1,157.0862,9.00892,0,0,0,166.0951,0,0,0,10,0,4,83.5,3.4,0,62.5,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,62.5,9.337023,1.386294,5.112561,1 +7,5,25,1,2,526356,0,11349.56,30.28131,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,83.5,3.4,0,62.5,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,62.5,9.337023,1.386294,,0 +7,5,25,1,3,526356,0,11349.56,31.28131,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,83.5,3.4,0,62.5,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,62.5,9.337023,1.386294,,0 +7,5,25,1,4,526356,0,11349.56,32.28131,0,13,1,64.03476,0,0,0,0,64.03476,0,0,0,3,0,4,83.5,3.4,0,62.5,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,62.5,9.337023,1.386294,4.159426,1 +7,5,25,1,5,526356,0,11349.56,33.28131,0,13,1,110.4631,10.96398,0,114.9228,614.9949,736.4219,1,0,9,3,0,4,83.5,3.4,0,62.5,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,62.5,9.337023,1.386294,6.601803,1 +13,5,0,1,1,526393,1,4862.775,8.533881,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,96.7,10.57626,0,66.7,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,66.7,8.489571,1.098612,,0 +13,5,0,1,2,526393,1,4862.775,9.533881,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,96.7,10.57626,0,66.7,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,66.7,8.489571,1.098612,,0 +13,5,0,1,3,526393,1,4862.775,10.53388,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,96.7,10.57626,0,66.7,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,66.7,8.489571,1.098612,,0 +13,5,0,1,1,526394,1,4862.775,14.61191,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,68.1,3.4,0,61.4,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,61.4,8.489571,1.098612,,0 +13,5,0,1,2,526394,1,4862.775,15.61191,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,68.1,3.4,0,61.4,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,61.4,8.489571,1.098612,,0 +13,5,0,1,3,526394,1,4862.775,16.61191,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,68.1,3.4,0,61.4,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,61.4,8.489571,1.098612,,0 +13,5,0,1,1,526395,1,4862.775,32.07118,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,72.9,10.3,0,78.4,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,1,0,78.4,8.489571,1.098612,,0 +13,5,0,1,2,526395,1,4862.775,33.07118,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,72.9,10.3,0,78.4,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,1,0,78.4,8.489571,1.098612,,0 +13,5,0,1,3,526395,1,4862.775,34.07118,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,72.9,10.3,0,78.4,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,1,0,78.4,8.489571,1.098612,,0 +16,5,95,0,1,526397,1,2311.179,7.655031,0,11,1,0,1.745636,0,0,0,1.745636,0,0,0,0,0,4,83.3,10.57626,0,96.3,210.6,210.6,1,0,1.386294,5.349961,0,4.564348,5.401254,0,0,0,96.3,7.745945,1.386294,.5571189,1 +16,5,95,0,2,526397,1,2311.179,8.655031,0,11,1,50.39188,3.204242,0,0,0,53.59613,0,0,0,0,0,4,83.3,10.57626,0,96.3,210.6,210.6,1,0,1.386294,5.349961,0,4.564348,5.401254,0,0,0,96.3,7.745945,1.386294,3.981477,1 +16,5,95,0,3,526397,1,2311.179,9.655031,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,83.3,10.57626,0,96.3,210.6,210.6,1,0,1.386294,5.349961,0,4.564348,5.401254,0,0,0,96.3,7.745945,1.386294,,0 +16,5,95,0,4,526397,1,2311.179,10.65503,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,83.3,10.57626,0,96.3,210.6,210.6,1,0,1.386294,5.349961,0,4.564348,5.401254,0,0,0,96.3,7.745945,1.386294,,0 +16,5,95,0,5,526397,1,2311.179,11.65503,0,11,1,12.80277,0,0,0,0,12.80277,0,0,0,1,0,4,83.3,10.57626,0,96.3,210.6,210.6,1,0,1.386294,5.349961,0,4.564348,5.401254,0,0,0,96.3,7.745945,1.386294,2.549661,1 +16,5,95,0,1,526398,1,2311.179,6.162902,1,11,1,0,0,0,0,0,0,0,0,0,0,0,4,100,10.57626,0,88.9,210.6,210.6,1,1,1.386294,5.349961,0,4.564348,5.401254,0,0,0,88.9,7.745945,1.386294,,0 +16,5,95,0,2,526398,1,2311.179,7.162902,1,11,1,0,0,0,0,0,0,0,0,0,0,0,4,100,10.57626,0,88.9,210.6,210.6,1,1,1.386294,5.349961,0,4.564348,5.401254,0,0,0,88.9,7.745945,1.386294,,0 +16,5,95,0,3,526398,1,2311.179,8.162902,1,11,1,0,0,0,0,0,0,0,0,0,0,0,4,100,10.57626,0,88.9,210.6,210.6,1,1,1.386294,5.349961,0,4.564348,5.401254,0,0,0,88.9,7.745945,1.386294,,0 +16,5,95,0,4,526398,1,2311.179,9.162902,1,11,1,0,0,0,0,0,0,0,0,0,0,0,4,100,10.57626,0,88.9,210.6,210.6,1,1,1.386294,5.349961,0,4.564348,5.401254,0,0,0,88.9,7.745945,1.386294,,0 +16,5,95,0,5,526398,1,2311.179,10.1629,1,11,1,12.80277,0,0,0,0,12.80277,0,0,0,1,0,4,100,10.57626,0,88.9,210.6,210.6,1,1,1.386294,5.349961,0,4.564348,5.401254,0,0,0,88.9,7.745945,1.386294,2.549661,1 +16,5,95,0,1,526399,1,2311.179,21.68652,1,11,1,8.72818,0,0,0,0,8.72818,0,0,0,0,0,4,67,24.1,0,46.2,210.6,210.6,0,0,1.386294,5.349961,0,4.564348,5.401254,0,0,0,46.2,7.745945,1.386294,2.166557,1 +16,5,95,0,2,526399,1,2311.179,22.68652,1,11,1,11.52605,0,25.81835,0,0,37.3444,0,0,0,0,1,4,67,24.1,0,46.2,210.6,210.6,0,0,1.386294,5.349961,0,4.564348,5.401254,0,0,0,46.2,7.745945,1.386294,3.620183,1 +16,5,95,0,3,526399,1,2311.179,23.68652,1,11,1,30.57554,0,0,0,144.7313,175.3068,1,0,0,2,0,4,67,24.1,0,46.2,210.6,210.6,0,0,1.386294,5.349961,0,4.564348,5.401254,0,0,0,46.2,7.745945,1.386294,5.166538,1 +16,5,95,0,4,526399,1,2311.179,24.68652,1,11,1,47.45634,1.628702,0,0,0,49.08504,0,0,0,1,0,4,67,24.1,0,46.2,210.6,210.6,0,0,1.386294,5.349961,0,4.564348,5.401254,0,0,0,46.2,7.745945,1.386294,3.893554,1 +16,5,95,0,5,526399,1,2311.179,25.68652,1,11,1,17.30104,5.948097,0,0,0,23.24913,0,0,0,2,0,4,67,24.1,0,46.2,210.6,210.6,0,0,1.386294,5.349961,0,4.564348,5.401254,0,0,0,46.2,7.745945,1.386294,3.146268,1 +16,5,95,0,1,526400,1,2311.179,1.097878,1,11,1,17.45636,1.142145,0,0,0,18.5985,0,0,0,0,0,4,77.40034,10.57626,0,59.3,210.6,210.6,1,1,1.386294,5.349961,0,4.564348,5.401254,0,0,0,59.3,7.745945,1.386294,2.923081,1 +16,5,95,0,2,526400,1,2311.179,2.097878,1,11,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,0,59.3,210.6,210.6,1,1,1.386294,5.349961,0,4.564348,5.401254,0,0,0,59.3,7.745945,1.386294,,0 +16,5,95,0,3,526400,1,2311.179,3.097878,1,11,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,0,59.3,210.6,210.6,1,1,1.386294,5.349961,0,4.564348,5.401254,0,0,0,59.3,7.745945,1.386294,,0 +16,5,95,0,4,526400,1,2311.179,4.097878,1,11,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,0,59.3,210.6,210.6,1,1,1.386294,5.349961,0,4.564348,5.401254,0,0,0,59.3,7.745945,1.386294,,0 +16,5,95,0,5,526400,1,2311.179,5.097878,1,11,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,0,59.3,210.6,210.6,1,1,1.386294,5.349961,0,4.564348,5.401254,0,0,0,59.3,7.745945,1.386294,,0 +6,5,25,1,1,526401,0,9282.13,58.13279,1,15,1,46.57592,0,0,0,0,46.57592,0,0,0,2,0,2,39.9,24.1,0,84.1,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,0,0,84.1,9.135954,.6931472,3.841084,1 +6,5,25,1,2,526401,0,9282.13,59.13279,1,15,1,31.48855,9.38168,34.90076,0,0,75.771,0,0,0,2,0,2,39.9,24.1,0,84.1,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,0,0,84.1,9.135954,.6931472,4.327715,1 +6,5,25,1,3,526401,0,9282.13,60.13279,1,15,1,74.21603,2.418118,19.56794,0,0,96.20209,0,0,0,3,0,2,39.9,24.1,0,84.1,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,0,0,84.1,9.135954,.6931472,4.566451,1 +6,5,25,1,1,526402,0,9282.13,59.75359,0,15,1,0,0,0,0,0,0,0,0,0,0,0,2,90.4,10.3,0,90.9,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,0,0,90.9,9.135954,.6931472,,0 +6,5,25,1,2,526402,0,9282.13,60.75359,0,15,1,22.90076,0,0,0,0,22.90076,0,0,0,1,0,2,90.4,10.3,0,90.9,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,0,0,90.9,9.135954,.6931472,3.13117,1 +6,5,25,1,3,526402,0,9282.13,61.75359,0,15,1,27.87457,1.714286,0,0,0,29.58885,0,0,0,2,0,2,90.4,10.3,0,90.9,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,0,0,90.9,9.135954,.6931472,3.387398,1 +19,5,25,0,1,526404,0,6674.895,8.005476,0,8,1,18.50277,0,0,0,0,18.50277,0,0,0,1,0,5,96.7,10.57626,0,85.2,750,0,1,0,1.609438,0,0,3.258096,8.006368,1,0,0,85.2,8.806258,1.609438,2.91792,1 +19,5,25,0,2,526404,0,6674.895,9.005476,0,8,1,11.45038,0,29.00763,0,0,40.45802,0,0,0,0,1,5,96.7,10.57626,0,85.2,750,0,1,0,1.609438,0,0,3.258096,8.006368,1,0,0,85.2,8.806258,1.609438,3.700265,1 +19,5,25,0,3,526404,0,6674.895,10.00548,0,8,1,20.90592,0,15.67944,0,0,36.58537,0,0,0,0,1,5,96.7,10.57626,0,85.2,750,0,1,0,1.609438,0,0,3.258096,8.006368,1,0,0,85.2,8.806258,1.609438,3.599648,1 +19,5,25,0,1,526405,0,6674.895,11.67967,1,8,1,0,0,0,0,0,0,0,0,0,0,0,5,80,10.57626,0,70.4,750,0,1,1,1.609438,0,0,3.258096,8.006368,0,1,0,70.4,8.806258,1.609438,,0 +19,5,25,0,2,526405,0,6674.895,12.67967,1,8,1,31.5458,0,27.09924,0,0,58.64504,0,0,0,0,1,5,80,10.57626,0,70.4,750,0,1,1,1.609438,0,0,3.258096,8.006368,0,1,0,70.4,8.806258,1.609438,4.071503,1 +19,5,25,0,3,526405,0,6674.895,13.67967,1,8,1,14.63415,0,0,0,0,14.63415,0,0,0,1,0,5,80,10.57626,0,70.4,750,0,1,1,1.609438,0,0,3.258096,8.006368,0,1,0,70.4,8.806258,1.609438,2.683358,1 +19,5,25,0,1,526406,0,6674.895,31.45243,0,7,1,29.56189,4.389621,0,0,0,33.95151,0,0,0,3,0,5,55.9,6.9,0,48.9,750,0,0,0,1.609438,0,0,3.258096,8.006368,1,0,0,48.9,8.806258,1.609438,3.524933,1 +19,5,25,0,2,526406,0,6674.895,32.45243,0,7,1,11.45038,67.21374,29.00763,0,0,107.6718,0,0,0,0,1,5,55.9,6.9,0,48.9,750,0,0,0,1.609438,0,0,3.258096,8.006368,1,0,0,48.9,8.806258,1.609438,4.679087,1 +19,5,25,0,3,526406,0,6674.895,33.45243,0,7,1,27.52613,0,0,0,0,27.52613,0,0,0,1,0,5,55.9,6.9,0,48.9,750,0,0,0,1.609438,0,0,3.258096,8.006368,1,0,0,48.9,8.806258,1.609438,3.315136,1 +19,5,25,0,1,526407,0,6674.895,27.93155,1,8,1,40.85495,0,0,0,0,40.85495,0,0,0,4,0,5,59.6,27.6,0,61.4,750,0,0,0,1.609438,0,0,3.258096,8.006368,1,0,0,61.4,8.806258,1.609438,3.710028,1 +19,5,25,0,2,526407,0,6674.895,28.93155,1,8,1,9.541985,4.48855,0,0,0,14.03053,0,0,0,1,0,5,59.6,27.6,0,61.4,750,0,0,0,1.609438,0,0,3.258096,8.006368,1,0,0,61.4,8.806258,1.609438,2.641236,1 +19,5,25,0,3,526407,0,6674.895,29.93155,1,8,1,32.75261,0,0,0,0,32.75261,0,0,0,2,0,5,59.6,27.6,0,61.4,750,0,0,0,1.609438,0,0,3.258096,8.006368,1,0,0,61.4,8.806258,1.609438,3.488983,1 +19,5,25,0,1,526408,0,6674.895,4.848734,0,8,1,31.26329,0,0,0,0,31.26329,0,0,0,2,0,5,77.40034,10.57626,0,85.2,750,0,1,0,1.609438,0,0,3.258096,8.006368,1,0,0,85.2,8.806258,1.609438,3.442445,1 +19,5,25,0,2,526408,0,6674.895,5.848734,0,8,1,7.633588,1.70229,0,0,0,9.335877,0,0,0,0,0,5,77.40034,10.57626,0,85.2,750,0,1,0,1.609438,0,0,3.258096,8.006368,1,0,0,85.2,8.806258,1.609438,2.233865,1 +19,5,25,0,3,526408,0,6674.895,6.848734,0,8,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,85.2,750,0,1,0,1.609438,0,0,3.258096,8.006368,1,0,0,85.2,8.806258,1.609438,,0 +13,5,0,0,1,526409,0,5878.648,56.69815,1,2,1,48.66695,25.99661,29.75878,0,0,104.4223,0,0,0,6,0,2,78.2,17.2,1,23.9,300,669.84,0,0,.6931472,6.507039,1,4.564348,5.755076,0,1,0,23.9,8.679253,.6931472,4.648444,1 +13,5,0,0,2,526409,0,5878.648,57.69815,1,2,1,45.55809,15.63402,21.64009,0,0,82.83219,0,0,0,5,1,2,78.2,17.2,1,23.9,300,669.84,0,0,.6931472,6.507039,1,4.564348,5.755076,0,1,0,23.9,8.679253,.6931472,4.416817,1 +13,5,0,0,3,526409,0,5878.648,58.69815,1,2,1,66.78201,34.67474,30.58824,0,0,132.045,0,0,0,7,0,2,78.2,17.2,1,23.9,300,669.84,0,0,.6931472,6.507039,1,4.564348,5.755076,0,1,0,23.9,8.679253,.6931472,4.883142,1 +13,5,0,0,1,526410,.4758801,3640.553,25.68378,0,12,1,80.40627,0,0,0,0,80.40627,0,0,0,3,0,2,78.7,3.4,0,59.1,300,375.44,0,0,.6931472,5.928099,1,4.564348,5.755076,1,0,0,59.1,8.200166,.6931472,4.387092,1 +13,5,0,0,2,526410,.4758801,3640.553,26.68378,0,12,1,45.55809,3.451025,0,0,0,49.00911,0,0,0,0,0,2,78.7,3.4,0,59.1,300,375.44,0,0,.6931472,5.928099,1,4.564348,5.755076,1,0,0,59.1,8.200166,.6931472,3.892006,1 +13,5,0,0,3,526410,.4758801,3640.553,27.68378,0,12,1,0,0,0,0,965.0519,965.0519,1,0,0,0,0,2,78.7,3.4,0,59.1,300,375.44,0,0,.6931472,5.928099,1,4.564348,5.755076,1,0,0,59.1,8.200166,.6931472,6.872182,1 +13,5,0,0,1,526411,0,5878.648,51.02533,0,9,1,10.57977,0,0,0,0,10.57977,0,0,0,2,0,2,76.6,10.3,0,61.4,300,669.84,0,0,.6931472,6.507039,1,4.564348,5.755076,1,0,0,61.4,8.679253,.6931472,2.358944,1 +13,5,0,0,2,526411,0,5878.648,52.02533,0,9,1,25.4366,6.43508,29.61276,0,0,61.48444,0,0,0,2,1,2,76.6,10.3,0,61.4,300,669.84,0,0,.6931472,6.507039,1,4.564348,5.755076,1,0,0,61.4,8.679253,.6931472,4.118784,1 +13,5,0,0,3,526411,0,5878.648,53.02533,0,9,1,85.81315,38.02422,0,0,1458.131,1581.969,1,0,0,4,0,2,76.6,10.3,0,61.4,300,669.84,0,0,.6931472,6.507039,1,4.564348,5.755076,1,0,0,61.4,8.679253,.6931472,7.366426,1 +7,5,25,1,1,526413,1,6674.895,18.81177,0,9,1,10.51746,0,24.40051,0,0,34.91796,0,0,0,0,1,4,85.6,6.9,0,73.9,750,0,0,0,1.386294,0,0,3.258096,8.006368,0,0,0,73.9,8.806258,1.386294,3.553001,1 +7,5,25,1,2,526413,1,6674.895,19.81177,0,9,1,11.33358,0,0,0,0,11.33358,0,0,0,0,0,4,85.6,6.9,0,73.9,750,0,0,0,1.386294,0,0,3.258096,8.006368,0,0,0,73.9,8.806258,1.386294,2.42777,1 +7,5,25,1,3,526413,1,6674.895,20.81177,0,9,1,0,0,0,0,0,0,0,0,0,0,0,4,85.6,6.9,0,73.9,750,0,0,0,1.386294,0,0,3.258096,8.006368,0,0,0,73.9,8.806258,1.386294,,0 +7,5,25,1,1,526414,1,6674.895,17.53867,0,7,1,18.51073,0,22.71771,0,0,41.22844,0,0,0,0,1,4,29.3,10.3,1,43.2,750,0,1,0,1.386294,0,0,3.258096,8.006368,0,0,0,43.2,8.806258,1.386294,3.719128,1 +7,5,25,1,2,526414,1,6674.895,18.53867,0,7,1,0,0,0,0,0,0,0,0,0,0,0,4,29.3,10.3,1,43.2,750,0,0,0,1.386294,0,0,3.258096,8.006368,0,0,0,43.2,8.806258,1.386294,,0 +7,5,25,1,3,526414,1,6674.895,19.53867,0,7,1,8.576329,0,22.64151,0,0,31.21784,0,0,0,0,1,4,29.3,10.3,1,43.2,750,0,0,0,1.386294,0,0,3.258096,8.006368,0,0,0,43.2,8.806258,1.386294,3.44099,1 +7,5,25,1,1,526415,1,6674.895,14.00137,1,7,1,0,0,0,0,0,0,0,0,0,0,0,4,75,10.57626,1,70.4,750,0,1,1,1.386294,0,0,3.258096,8.006368,0,0,0,70.4,8.806258,1.386294,,0 +7,5,25,1,2,526415,1,6674.895,15.00137,1,7,1,7.555724,0,0,0,0,7.555724,0,0,0,0,0,4,75,10.57626,1,70.4,750,0,1,1,1.386294,0,0,3.258096,8.006368,0,0,0,70.4,8.806258,1.386294,2.022305,1 +7,5,25,1,3,526415,1,6674.895,16.00137,1,7,1,0,0,0,0,0,0,0,0,0,0,0,4,75,10.57626,1,70.4,750,0,1,1,1.386294,0,0,3.258096,8.006368,0,0,0,70.4,8.806258,1.386294,,0 +7,5,25,1,1,526417,1,6674.895,51.34839,1,7,1,36.22213,0,35.0021,0,0,71.22424,0,0,0,0,0,4,68.6,13.8,0,71.6,750,0,0,0,1.386294,0,0,3.258096,8.006368,1,0,0,71.6,8.806258,1.386294,4.265833,1 +7,5,25,1,2,526417,1,6674.895,52.34839,1,7,1,7.555724,0,0,0,0,7.555724,0,0,0,0,0,4,68.6,13.8,0,71.6,750,0,0,0,1.386294,0,0,3.258096,8.006368,1,0,0,71.6,8.806258,1.386294,2.022305,1 +7,5,25,1,3,526417,1,6674.895,53.34839,1,7,1,31.21784,3.749571,0,0,0,34.96741,0,0,0,1,0,4,68.6,13.8,0,71.6,750,0,0,0,1.386294,0,0,3.258096,8.006368,1,0,0,71.6,8.806258,1.386294,3.554416,1 +13,5,0,1,1,526424,1,6326.1,16.77481,0,11,1,8.977556,0,0,0,0,8.977556,0,0,0,1,0,4,80.3,0,0,78.4,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,78.4,8.752597,1.386294,2.194728,1 +13,5,0,1,2,526424,1,6326.1,17.77481,0,11,1,10.25818,5.758414,0,0,0,16.0166,0,0,0,0,0,4,80.3,0,0,78.4,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,78.4,8.752597,1.386294,2.773626,1 +13,5,0,1,1,526425,1,6326.1,36.42437,0,12,1,132.1696,60.48878,0,0,0,192.6584,0,0,0,5,0,4,72.9,6.9,0,51.1,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,51.1,8.752597,1.386294,5.260919,1 +13,5,0,1,2,526425,1,6326.1,37.42437,0,12,1,169.6634,31.42923,0,0,0,201.0927,0,0,0,11,0,4,72.9,6.9,0,51.1,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,51.1,8.752597,1.386294,5.303766,1 +13,5,0,1,3,526425,1,6326.1,38.42437,0,12,1,31.73932,2.094795,0,0,0,33.83411,0,0,0,1,0,4,72.9,6.9,0,51.1,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,51.1,8.752597,1.386294,3.521469,1 +13,5,0,1,4,526425,1,6326.1,39.42437,0,12,1,12.14882,6.27183,0,0,287.0159,305.4366,1,0,0,2,0,3,72.9,6.9,0,51.1,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,1,0,51.1,8.752597,1.098612,5.721742,1 +13,5,0,1,5,526425,1,6326.1,40.42437,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,72.9,6.9,0,51.1,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,1,0,51.1,8.752597,1.098612,,0 +13,5,0,1,1,526426,1,6326.1,14.38193,0,11,1,99.62594,0,0,0,0,99.62594,0,0,0,4,0,4,85.1,0,0,64.8,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,64.8,8.752597,1.386294,4.601423,1 +13,5,0,1,2,526426,1,6326.1,15.38193,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,85.1,0,0,64.8,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,64.8,8.752597,1.386294,,0 +13,5,0,1,3,526426,1,6326.1,16.38193,0,11,1,10.68557,0,0,0,0,10.68557,0,0,0,0,0,4,85.1,0,0,64.8,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,64.8,8.752597,1.386294,2.368894,1 +13,5,0,1,1,526427,1,6326.1,33.21561,1,11,1,12.46883,4.738154,0,0,0,17.20698,0,0,0,1,0,4,45.7,13.8,0,68.2,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,68.2,8.752597,1.386294,2.845315,1 +13,5,0,1,2,526427,1,6326.1,34.21561,1,11,1,103.0429,13.32872,0,0,581.835,698.2065,1,0,0,2,0,4,45.7,13.8,0,68.2,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,68.2,8.752597,1.386294,6.548515,1 +13,5,0,1,3,526427,1,6326.1,35.21561,1,11,1,0,0,3.762167,0,0,3.762167,0,0,0,0,0,4,45.7,13.8,0,68.2,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,68.2,8.752597,1.386294,1.324995,1 +13,5,0,1,4,526427,1,6326.1,36.21561,1,11,1,0,0,0,0,0,0,0,0,0,0,0,3,45.7,13.8,0,68.2,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,68.2,8.752597,1.098612,,0 +13,5,0,1,5,526427,1,6326.1,37.21561,1,11,1,0,0,0,0,0,0,0,0,0,0,0,3,45.7,13.8,0,68.2,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,68.2,8.752597,1.098612,,0 +11,5,0,0,1,526448,1,1998.976,14.09993,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,63.3,10.3,0,67,0,0,1,1,1.609438,0,0,0,0,0,0,0,67,7.600891,1.609438,,0 +11,5,0,0,2,526448,1,1998.976,15.09993,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,63.3,10.3,0,67,0,0,1,1,1.609438,0,0,0,0,0,0,0,67,7.600891,1.609438,,0 +11,5,0,0,3,526448,1,1998.976,16.09993,1,11,1,0,0,0,0,0,0,1,1,0,0,0,6,63.3,10.3,0,67,0,0,1,1,1.791759,0,0,0,0,0,0,0,67,7.600891,1.791759,,0 +11,5,0,0,1,526449,1,1998.976,17.57153,0,11,1,0,0,0,0,0,0,0,0,0,0,0,5,66.5,3.4,0,55.7,0,0,1,0,1.609438,0,0,0,0,0,0,0,55.7,7.600891,1.609438,,0 +11,5,0,0,2,526449,1,1998.976,18.57153,0,11,1,0,0,0,0,0,0,0,0,0,0,0,5,66.5,3.4,0,55.7,0,0,0,0,1.609438,0,0,0,0,0,0,0,55.7,7.600891,1.609438,,0 +11,5,0,0,3,526449,1,1998.976,19.57153,0,11,1,10.38062,0,0,0,0,10.38062,0,0,0,0,0,6,66.5,3.4,0,55.7,0,0,0,0,1.791759,0,0,0,0,0,0,0,55.7,7.600891,1.791759,2.339941,1 +11,5,0,0,1,526450,1,1998.976,16.53114,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,73.4,3.4,0,81.8,0,0,1,1,1.609438,0,0,0,0,0,0,0,81.8,7.600891,1.609438,,0 +11,5,0,0,2,526450,1,1998.976,17.53114,1,11,1,0,0,0,0,0,0,1,1,0,0,0,5,73.4,3.4,0,81.8,0,0,1,1,1.609438,0,0,0,0,0,0,0,81.8,7.600891,1.609438,,0 +11,5,0,0,3,526450,1,1998.976,18.53114,1,11,1,92.04152,0,0,0,0,92.04152,0,0,0,5,0,6,73.4,3.4,0,81.8,0,0,0,0,1.791759,0,0,0,0,0,0,0,81.8,7.600891,1.791759,4.52224,1 +11,5,0,0,1,526451,1,1998.976,45.02943,0,10,1,0,0,0,0,0,0,0,0,0,0,0,5,95.2,6.9,0,87.5,0,0,0,0,1.609438,0,0,0,0,0,0,0,87.5,7.600891,1.609438,,0 +11,5,0,0,2,526451,1,1998.976,46.02943,0,10,1,0,0,0,0,0,0,0,0,0,0,0,5,95.2,6.9,0,87.5,0,0,0,0,1.609438,0,0,0,0,0,0,0,87.5,7.600891,1.609438,,0 +11,5,0,0,3,526451,1,1998.976,47.02943,0,10,1,11.07266,0,0,0,0,11.07266,0,0,0,0,0,6,95.2,6.9,0,87.5,0,0,0,0,1.791759,0,0,0,0,0,0,0,87.5,7.600891,1.791759,2.40448,1 +11,5,0,0,1,526452,1,1998.976,42.10267,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,80.3,13.8,0,72.7,0,0,0,0,1.609438,0,0,0,0,0,0,0,72.7,7.600891,1.609438,,0 +11,5,0,0,2,526452,1,1998.976,43.10267,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,80.3,13.8,0,72.7,0,0,0,0,1.609438,0,0,0,0,0,0,0,72.7,7.600891,1.609438,,0 +11,5,0,0,3,526452,1,1998.976,44.10267,1,11,1,0,0,0,0,0,0,0,0,0,0,0,6,80.3,13.8,0,72.7,0,0,0,0,1.791759,0,0,0,0,0,0,0,72.7,7.600891,1.791759,,0 +6,5,25,0,1,526457,1,1484.895,48.95551,1,6,1,0,0,0,0,0,0,0,0,0,0,0,2,64.4,10.57626,1,62.5,190.4,0,0,0,.6931472,0,0,3.258096,6.635421,0,1,0,62.5,7.303772,.6931472,,0 +6,5,25,0,2,526457,1,1484.895,49.95551,1,6,1,15.18603,0,0,0,0,15.18603,0,0,0,0,0,2,64.4,10.57626,1,62.5,190.4,0,0,0,.6931472,0,0,3.258096,6.635421,0,1,0,62.5,7.303772,.6931472,2.720376,1 +6,5,25,0,3,526457,1,1484.895,50.95551,1,6,1,0,0,0,0,0,0,0,0,0,0,0,1,64.4,10.57626,1,62.5,190.4,0,0,0,0,0,0,3.258096,6.635421,0,1,0,62.5,7.303772,0,,0 +10,5,50,0,1,526458,1,4537.243,40.77481,1,10,1,0,0,0,0,0,0,0,0,0,0,0,3,75.5,10.3,0,63.1,540,0,0,0,1.098612,0,0,3.931826,6.984716,1,0,0,63.1,8.420296,1.098612,,0 +10,5,50,0,2,526458,1,4537.243,41.77481,1,10,1,0,0,0,0,0,0,0,0,0,0,0,3,75.5,10.3,0,63.1,540,0,0,0,1.098612,0,0,3.931826,6.984716,1,0,0,63.1,8.420296,1.098612,,0 +10,5,50,0,3,526458,1,4537.243,42.77481,1,10,1,0,0,0,0,0,0,0,0,0,0,0,3,75.5,10.3,0,63.1,540,0,0,0,1.098612,0,0,3.931826,6.984716,1,0,0,63.1,8.420296,1.098612,,0 +10,5,50,0,4,526458,1,4537.243,43.77481,1,10,1,0,0,0,0,0,0,0,0,0,0,0,3,75.5,10.3,0,63.1,540,0,0,0,1.098612,0,0,3.931826,6.984716,1,0,0,63.1,8.420296,1.098612,,0 +10,5,50,0,5,526458,1,4537.243,44.77481,1,10,1,66.64411,0,0,0,2310.217,2376.861,1,0,0,1,0,3,75.5,10.3,0,63.1,540,0,0,0,1.098612,0,0,3.931826,6.984716,1,0,0,63.1,8.420296,1.098612,7.773536,1 +10,5,50,0,1,526459,1,4537.243,13.32786,0,10,1,0,0,0,0,0,0,0,0,0,0,0,3,78.3,10.57626,0,74.1,540,0,1,0,1.098612,0,0,3.931826,6.984716,1,0,0,74.1,8.420296,1.098612,,0 +10,5,50,0,2,526459,1,4537.243,14.32786,0,10,1,0,0,0,0,0,0,0,0,0,0,0,3,78.3,10.57626,0,74.1,540,0,1,0,1.098612,0,0,3.931826,6.984716,1,0,0,74.1,8.420296,1.098612,,0 +10,5,50,0,3,526459,1,4537.243,15.32786,0,10,1,0,0,0,0,0,0,0,0,0,0,0,3,78.3,10.57626,0,74.1,540,0,1,0,1.098612,0,0,3.931826,6.984716,1,0,0,74.1,8.420296,1.098612,,0 +10,5,50,0,4,526459,1,4537.243,16.32786,0,10,1,0,0,0,0,0,0,0,0,0,0,0,3,78.3,10.57626,0,74.1,540,0,1,0,1.098612,0,0,3.931826,6.984716,1,0,0,74.1,8.420296,1.098612,,0 +10,5,50,0,5,526459,1,4537.243,17.32786,0,10,1,0,0,0,0,0,0,0,0,0,0,0,3,78.3,10.57626,0,74.1,540,0,1,0,1.098612,0,0,3.931826,6.984716,1,0,0,74.1,8.420296,1.098612,,0 +10,5,50,0,1,526460,1,4537.243,11.78097,1,10,1,0,0,0,0,0,0,0,0,0,0,0,3,76.7,10.57626,0,88.9,540,0,1,1,1.098612,0,0,3.931826,6.984716,1,0,0,88.9,8.420296,1.098612,,0 +10,5,50,0,2,526460,1,4537.243,12.78097,1,10,1,0,0,0,0,0,0,0,0,0,0,0,3,76.7,10.57626,0,88.9,540,0,1,1,1.098612,0,0,3.931826,6.984716,1,0,0,88.9,8.420296,1.098612,,0 +10,5,50,0,3,526460,1,4537.243,13.78097,1,10,1,0,0,0,0,0,0,0,0,0,0,0,3,76.7,10.57626,0,88.9,540,0,1,1,1.098612,0,0,3.931826,6.984716,1,0,0,88.9,8.420296,1.098612,,0 +10,5,50,0,4,526460,1,4537.243,14.78097,1,10,1,0,0,0,0,0,0,0,0,0,0,0,3,76.7,10.57626,0,88.9,540,0,1,1,1.098612,0,0,3.931826,6.984716,1,0,0,88.9,8.420296,1.098612,,0 +10,5,50,0,5,526460,1,4537.243,15.78097,1,10,1,0,0,0,0,0,0,0,0,0,0,0,3,76.7,10.57626,0,88.9,540,0,1,1,1.098612,0,0,3.931826,6.984716,1,0,0,88.9,8.420296,1.098612,,0 +13,5,0,0,1,526462,1,1185.868,14.36277,1,8,1,0,0,0,0,0,0,0,0,0,0,0,9,78.2,0,0,75,450,450,1,1,2.197225,6.109248,1,4.564348,6.160541,1,0,0,75,7.079073,2.197225,,0 +13,5,0,0,2,526462,1,1185.868,15.36277,1,8,1,0,0,0,0,0,0,0,0,0,0,0,6,78.2,0,0,75,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,1,0,0,75,7.079073,1.791759,,0 +13,5,0,0,3,526462,1,1185.868,16.36276,1,8,1,0,0,0,0,0,0,0,0,0,0,0,6,78.2,0,0,75,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,1,0,0,75,7.079073,1.791759,,0 +13,5,0,0,1,526463,1,1185.868,40.42163,1,8,1,0,0,0,0,0,0,0,0,0,0,0,9,80.3,17.2,1,38.6,450,450,0,0,2.197225,6.109248,1,4.564348,6.160541,1,0,0,38.6,7.079073,2.197225,,0 +13,5,0,0,2,526463,1,1185.868,41.42163,1,8,1,0,0,0,0,0,0,0,0,0,0,0,6,80.3,17.2,1,38.6,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,38.6,7.079073,1.791759,,0 +13,5,0,0,3,526463,1,1185.868,42.42163,1,8,1,0,0,0,0,0,0,0,0,0,0,0,6,80.3,17.2,1,38.6,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,38.6,7.079073,1.791759,,0 +13,5,0,0,1,526464,1,1185.868,9.995893,0,8,1,0,0,0,0,0,0,0,0,0,0,0,9,66.7,10.57626,0,70.4,450,450,1,0,2.197225,6.109248,1,4.564348,6.160541,1,0,0,70.4,7.079073,2.197225,,0 +13,5,0,0,2,526464,1,1185.868,10.99589,0,8,1,0,0,0,0,0,0,0,0,0,0,0,6,66.7,10.57626,0,70.4,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,70.4,7.079073,1.791759,,0 +13,5,0,0,3,526464,1,1185.868,11.99589,0,8,1,0,0,0,0,0,0,0,0,0,0,0,6,66.7,10.57626,0,70.4,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,70.4,7.079073,1.791759,,0 +13,5,0,0,1,526465,1,1185.868,18.98973,1,9,1,0,0,0,0,0,0,0,0,0,0,0,9,61.7,6.9,0,63.6,450,450,0,0,2.197225,6.109248,1,4.564348,6.160541,1,0,0,63.6,7.079073,2.197225,,0 +13,5,0,0,1,526466,1,1185.868,11.0883,1,8,1,0,0,0,0,0,0,0,0,0,0,0,9,85,10.57626,0,85.2,450,450,1,1,2.197225,6.109248,1,4.564348,6.160541,1,0,0,85.2,7.079073,2.197225,,0 +13,5,0,0,2,526466,1,1185.868,12.0883,1,8,1,0,0,0,0,0,0,0,0,0,0,0,6,85,10.57626,0,85.2,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,1,0,0,85.2,7.079073,1.791759,,0 +13,5,0,0,3,526466,1,1185.868,13.0883,1,8,1,0,0,0,0,0,0,0,0,0,0,0,6,85,10.57626,0,85.2,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,1,0,0,85.2,7.079073,1.791759,,0 +13,5,0,0,1,526467,1,1185.868,15.44969,0,8,1,0,0,0,0,0,0,0,0,0,0,0,9,83,3.4,0,68.2,450,450,1,0,2.197225,6.109248,1,4.564348,6.160541,1,0,0,68.2,7.079073,2.197225,,0 +13,5,0,0,2,526467,1,1185.868,16.44969,0,8,1,0,0,0,0,0,0,0,0,0,0,0,6,83,3.4,0,68.2,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,68.2,7.079073,1.791759,,0 +13,5,0,0,3,526467,1,1185.868,17.44969,0,8,1,0,0,0,0,0,0,0,0,0,0,0,6,83,3.4,0,68.2,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,68.2,7.079073,1.791759,,0 +13,5,0,0,1,526468,1,1185.868,12.8679,1,8,1,0,0,0,0,0,0,0,0,0,0,0,9,63.3,10.57626,0,81.5,450,450,1,1,2.197225,6.109248,1,4.564348,6.160541,1,0,0,81.5,7.079073,2.197225,,0 +13,5,0,0,2,526468,1,1185.868,13.8679,1,8,1,2.250563,0,0,0,0,2.250563,0,0,0,1,0,6,63.3,10.57626,0,81.5,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,1,0,0,81.5,7.079073,1.791759,.8111802,1 +13,5,0,0,3,526468,1,1185.868,14.8679,1,8,1,0,0,0,0,0,0,0,0,0,0,0,6,63.3,10.57626,0,81.5,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,1,0,0,81.5,7.079073,1.791759,,0 +13,5,0,0,1,526469,1,1185.868,17.78234,1,8,1,0,0,0,0,0,0,0,0,0,0,0,9,59,3.4,0,43.8,450,450,1,1,2.197225,6.109248,1,4.564348,6.160541,1,0,0,43.8,7.079073,2.197225,,0 +10,5,50,1,1,526470,1,4288.563,10.60643,1,10,1,0,0,0,0,0,0,0,0,0,0,0,4,83.3,10.57626,1,59.3,960.6,960.6,1,1,1.386294,6.867558,0,3.931826,7.560705,0,0,0,59.3,8.36394,1.386294,,0 +10,5,50,1,2,526470,1,4288.563,11.60643,1,10,1,0,0,0,0,0,0,0,0,0,0,0,4,83.3,10.57626,1,59.3,960.6,960.6,1,1,1.386294,6.867558,0,3.931826,7.560705,0,0,0,59.3,8.36394,1.386294,,0 +10,5,50,1,3,526470,1,4288.563,12.60643,1,10,1,0,0,0,0,0,0,0,0,0,0,0,4,83.3,10.57626,1,59.3,960.6,960.6,1,1,1.386294,6.867558,0,3.931826,7.560705,0,0,0,59.3,8.36394,1.386294,,0 +10,5,50,1,4,526470,1,4288.563,13.60643,1,10,1,0,0,0,0,0,0,0,0,0,0,0,4,83.3,10.57626,1,59.3,960.6,960.6,1,1,1.386294,6.867558,0,3.931826,7.560705,0,0,0,59.3,8.36394,1.386294,,0 +10,5,50,1,5,526470,1,4288.563,14.60643,1,10,1,0,0,0,0,0,0,0,0,0,0,0,4,83.3,10.57626,1,59.3,960.6,960.6,1,1,1.386294,6.867558,0,3.931826,7.560705,0,0,0,59.3,8.36394,1.386294,,0 +10,5,50,1,1,526472,1,4288.563,8.013689,0,10,1,0,0,0,0,0,0,0,0,0,0,0,4,83.3,10.57626,0,70.4,960.6,960.6,1,0,1.386294,6.867558,0,3.931826,7.560705,0,0,0,70.4,8.36394,1.386294,,0 +10,5,50,1,2,526472,1,4288.563,9.013689,0,10,1,0,0,0,0,0,0,0,0,0,0,0,4,83.3,10.57626,0,70.4,960.6,960.6,1,0,1.386294,6.867558,0,3.931826,7.560705,0,0,0,70.4,8.36394,1.386294,,0 +10,5,50,1,3,526472,1,4288.563,10.01369,0,10,1,11.42615,0,0,0,0,11.42615,0,0,0,0,0,4,83.3,10.57626,0,70.4,960.6,960.6,1,0,1.386294,6.867558,0,3.931826,7.560705,0,0,0,70.4,8.36394,1.386294,2.435905,1 +10,5,50,1,4,526472,1,4288.563,11.01369,0,10,1,0,0,0,0,0,0,0,0,0,0,0,4,83.3,10.57626,0,70.4,960.6,960.6,1,0,1.386294,6.867558,0,3.931826,7.560705,0,0,0,70.4,8.36394,1.386294,,0 +10,5,50,1,5,526472,1,4288.563,12.01369,0,10,1,21.28028,0,0,0,0,21.28028,0,0,0,0,0,4,83.3,10.57626,0,70.4,960.6,960.6,1,0,1.386294,6.867558,0,3.931826,7.560705,0,0,0,70.4,8.36394,1.386294,3.057781,1 +10,5,50,1,1,526473,1,4288.563,9.442847,1,10,1,0,0,0,0,0,0,0,0,0,0,0,4,73.3,10.57626,0,66.7,960.6,960.6,1,1,1.386294,6.867558,0,3.931826,7.560705,0,0,0,66.7,8.36394,1.386294,,0 +10,5,50,1,2,526473,1,4288.563,10.44285,1,10,1,0,0,0,0,0,0,0,0,0,0,0,4,73.3,10.57626,0,66.7,960.6,960.6,1,1,1.386294,6.867558,0,3.931826,7.560705,0,0,0,66.7,8.36394,1.386294,,0 +10,5,50,1,3,526473,1,4288.563,11.44285,1,10,1,0,0,0,0,0,0,0,0,0,0,0,4,73.3,10.57626,0,66.7,960.6,960.6,1,1,1.386294,6.867558,0,3.931826,7.560705,0,0,0,66.7,8.36394,1.386294,,0 +10,5,50,1,4,526473,1,4288.563,12.44285,1,10,1,0,0,0,0,0,0,0,0,0,0,0,4,73.3,10.57626,0,66.7,960.6,960.6,1,1,1.386294,6.867558,0,3.931826,7.560705,0,0,0,66.7,8.36394,1.386294,,0 +10,5,50,1,5,526473,1,4288.563,13.44285,1,10,1,0,0,0,0,0,0,0,0,0,0,0,4,73.3,10.57626,0,66.7,960.6,960.6,1,1,1.386294,6.867558,0,3.931826,7.560705,0,0,0,66.7,8.36394,1.386294,,0 +10,5,50,1,1,526474,1,4288.563,30.08077,1,10,1,0,0,0,0,0,0,0,0,0,0,0,4,56.4,3.4,0,62.5,960.6,960.6,0,0,1.386294,6.867558,0,3.931826,7.560705,0,1,0,62.5,8.36394,1.386294,,0 +10,5,50,1,2,526474,1,4288.563,31.08077,1,10,1,0,0,0,0,0,0,0,0,0,0,0,4,56.4,3.4,0,62.5,960.6,960.6,0,0,1.386294,6.867558,0,3.931826,7.560705,0,1,0,62.5,8.36394,1.386294,,0 +10,5,50,1,3,526474,1,4288.563,32.08076,1,10,1,23.2755,0,0,0,0,23.2755,0,0,0,1,0,4,56.4,3.4,0,62.5,960.6,960.6,0,0,1.386294,6.867558,0,3.931826,7.560705,0,1,0,62.5,8.36394,1.386294,3.147401,1 +10,5,50,1,4,526474,1,4288.563,33.08076,1,10,1,19.36219,0,0,0,0,19.36219,0,0,0,1,0,4,56.4,3.4,0,62.5,960.6,960.6,0,0,1.386294,6.867558,0,3.931826,7.560705,0,1,0,62.5,8.36394,1.386294,2.963322,1 +10,5,50,1,5,526474,1,4288.563,34.08076,1,10,1,10.38062,0,0,0,0,10.38062,0,0,0,0,0,4,56.4,3.4,0,62.5,960.6,960.6,0,0,1.386294,6.867558,0,3.931826,7.560705,0,1,0,62.5,8.36394,1.386294,2.339941,1 +11,5,0,1,1,526482,1,9806.964,59.19781,0,9,1,0,0,0,0,0,0,0,0,0,0,0,3,64.4,13.8,0,88.1,0,777.6,0,0,1.098612,6.656212,0,0,0,0,1,0,88.1,9.19095,1.098612,,0 +11,5,0,1,2,526482,1,9806.964,60.19781,0,9,1,66.41222,0,0,0,0,66.41222,0,0,0,0,0,3,64.4,13.8,0,88.1,0,777.6,0,0,1.098612,6.656212,0,0,0,0,1,0,88.1,9.19095,1.098612,4.195881,1 +11,5,0,1,3,526482,1,9806.964,61.19781,0,9,1,0,0,0,0,0,0,0,0,0,0,0,3,64.4,13.8,0,88.1,0,777.6,0,0,1.098612,6.656212,0,0,0,0,1,0,88.1,9.19095,1.098612,,0 +11,5,0,0,1,526483,1,9806.964,32.15879,1,11,1,0,0,0,0,0,0,0,0,0,0,0,3,77.7,3.4,0,62.5,0,777.6,0,0,1.098612,6.656212,0,0,0,0,0,0,62.5,9.19095,1.098612,,0 +11,5,0,0,2,526483,1,9806.964,33.15879,1,11,1,22.13741,6.240458,0,0,0,28.37786,0,0,0,3,0,3,77.7,3.4,0,62.5,0,777.6,0,0,1.098612,6.656212,0,0,0,0,0,0,62.5,9.19095,1.098612,3.345609,1 +11,5,0,0,3,526483,1,9806.964,34.15879,1,11,1,26.82927,21.28223,0,0,0,48.1115,0,0,0,2,1,3,77.7,3.4,0,62.5,0,777.6,0,0,1.098612,6.656212,0,0,0,0,0,0,62.5,9.19095,1.098612,3.873521,1 +11,5,0,0,1,526484,1,9806.964,50.9514,1,11,1,0,0,0,0,0,0,0,0,0,0,0,3,79.1,20.7,0,70.2,0,777.6,0,0,1.098612,6.656212,0,0,0,0,1,0,70.2,9.19095,1.098612,,0 +11,5,0,0,2,526484,1,9806.964,51.9514,1,11,1,0,0,0,0,0,0,0,0,0,0,0,3,79.1,20.7,0,70.2,0,777.6,0,0,1.098612,6.656212,0,0,0,0,1,0,70.2,9.19095,1.098612,,0 +11,5,0,0,3,526484,1,9806.964,52.9514,1,11,1,0,0,0,0,0,0,0,0,0,0,0,3,79.1,20.7,0,70.2,0,777.6,0,0,1.098612,6.656212,0,0,0,0,1,0,70.2,9.19095,1.098612,,0 +13,5,0,1,1,526485,1,3130.205,18.55989,1,9,1,0,0,0,0,306.7393,306.7393,1,1,0,0,0,4,82.4,0,1,72.7,450,0,0,0,1.386294,0,1,4.564348,6.160541,1,0,0,72.7,8.049173,1.386294,5.725998,1 +13,5,0,1,2,526485,1,3130.205,19.55989,1,9,1,0,0,0,0,0,0,0,0,0,0,0,5,82.4,0,1,72.7,450,0,0,0,1.609438,0,1,4.564348,6.160541,1,0,0,72.7,8.049173,1.609438,,0 +13,5,0,1,3,526485,1,3130.205,20.55989,1,9,1,0,0,0,0,0,0,0,0,0,0,0,5,82.4,0,1,72.7,450,0,0,0,1.609438,0,1,4.564348,6.160541,1,0,0,72.7,8.049173,1.609438,,0 +13,5,0,1,4,526485,1,3130.205,21.55989,1,9,1,10.9558,7.457499,0,0,208.538,226.9513,1,1,0,2,0,5,82.4,0,1,72.7,450,0,0,0,1.609438,0,1,4.564348,6.160541,1,0,0,72.7,8.049173,1.609438,5.424735,1 +13,5,0,1,5,526485,1,3130.205,22.55989,1,9,1,167.6844,1.876501,0,0,855.9177,1025.479,1,0,0,7,0,7,82.4,0,1,72.7,450,0,0,0,1.94591,0,1,4.564348,6.160541,1,0,0,72.7,8.049173,1.94591,6.932915,1 +13,5,0,1,1,526486,1,3130.205,48.23272,1,10,1,0,0,0,0,0,0,0,0,0,0,0,4,83.5,13.8,0,84.1,450,0,0,0,1.386294,0,1,4.564348,6.160541,1,0,0,84.1,8.049173,1.386294,,0 +13,5,0,1,2,526486,1,3130.205,49.23272,1,10,1,0,0,0,0,0,0,0,0,0,0,0,5,83.5,13.8,0,84.1,450,0,0,0,1.609438,0,1,4.564348,6.160541,1,0,0,84.1,8.049173,1.609438,,0 +13,5,0,1,3,526486,1,3130.205,50.23272,1,10,1,0,0,0,0,0,0,0,0,0,0,0,5,83.5,13.8,0,84.1,450,0,0,0,1.609438,0,1,4.564348,6.160541,1,0,0,84.1,8.049173,1.609438,,0 +13,5,0,1,4,526486,1,3130.205,51.23272,1,10,1,11.33358,0,0,0,0,11.33358,0,0,0,1,0,5,83.5,13.8,0,84.1,450,0,0,0,1.609438,0,1,4.564348,6.160541,1,0,0,84.1,8.049173,1.609438,2.42777,1 +13,5,0,1,5,526486,1,3130.205,52.23272,1,10,1,8.576329,0,25.68782,0,0,34.26415,0,0,0,1,0,7,83.5,13.8,0,84.1,450,0,0,0,1.94591,0,1,4.564348,6.160541,1,0,0,84.1,8.049173,1.94591,3.5341,1 +13,5,0,1,1,526487,1,3130.205,22.91034,1,14,1,8.671952,0,0,0,0,8.671952,0,0,0,0,0,4,63.8,0,0,72.7,450,0,0,0,1.386294,0,1,4.564348,6.160541,1,0,0,72.7,8.049173,1.386294,2.160094,1 +13,5,0,1,2,526487,1,3130.205,23.91034,1,14,1,0,0,0,0,0,0,0,0,0,0,0,5,63.8,0,0,72.7,450,0,0,0,1.609438,0,1,4.564348,6.160541,1,0,0,72.7,8.049173,1.609438,,0 +13,5,0,1,3,526487,1,3130.205,24.91034,1,14,1,30.10097,9.785444,0,0,0,39.88641,0,0,0,3,1,5,63.8,0,0,72.7,450,0,0,0,1.609438,0,1,4.564348,6.160541,1,0,0,72.7,8.049173,1.609438,3.686036,1 +13,5,0,1,4,526487,1,3130.205,25.91034,1,14,1,55.91235,0,0,0,630.5251,686.4375,1,0,0,3,0,5,63.8,0,0,72.7,450,0,0,0,1.609438,0,1,4.564348,6.160541,1,0,0,72.7,8.049173,1.609438,6.531515,1 +13,5,0,1,5,526487,1,3130.205,26.91034,1,14,1,13.20755,0,0,0,0,13.20755,0,0,0,2,0,7,63.8,0,0,72.7,450,0,0,0,1.94591,0,1,4.564348,6.160541,1,0,0,72.7,8.049173,1.94591,2.580788,1 +13,5,0,1,1,526488,1,3130.205,3.154004,0,10,1,3.964321,0,0,0,0,3.964321,0,0,0,1,0,4,77.40034,10.57626,0,81.5,450,0,1,0,1.386294,0,1,4.564348,6.160541,1,0,0,81.5,8.049173,1.386294,1.377335,1 +13,5,0,1,2,526488,1,3130.205,4.154004,0,10,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,81.5,450,0,1,0,1.609438,0,1,4.564348,6.160541,1,0,0,81.5,8.049173,1.609438,,0 +13,5,0,1,3,526488,1,3130.205,5.154004,0,10,1,56.45772,3.496003,0,0,0,59.95372,0,0,0,3,1,5,77.40034,10.57626,0,81.5,450,0,1,0,1.609438,0,1,4.564348,6.160541,1,0,0,81.5,8.049173,1.609438,4.093573,1 +13,5,0,1,4,526488,1,3130.205,6.154004,0,10,1,19.0782,0,0,0,0,19.0782,0,0,0,1,0,5,77.40034,10.57626,0,81.5,450,0,1,0,1.609438,0,1,4.564348,6.160541,1,0,0,81.5,8.049173,1.609438,2.948546,1 +13,5,0,1,5,526488,1,3130.205,7.154004,0,10,1,65.1801,0,0,0,0,65.1801,0,0,0,2,1,7,77.40034,10.57626,0,81.5,450,0,1,0,1.94591,0,1,4.564348,6.160541,1,0,0,81.5,8.049173,1.94591,4.177154,1 +16,5,95,1,1,526489,1,8746.032,25.44285,1,12,1,35.77201,.8379413,0,0,0,36.60995,0,0,0,0,0,3,56.4,17.2,1,53.4,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,1,0,0,53.4,9.076469,1.098612,3.60032,1 +16,5,95,1,2,526489,1,8746.032,26.44285,1,12,1,30.53435,3.843511,0,0,461.8321,496.2099,1,0,0,3,0,3,56.4,17.2,1,53.4,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,1,0,0,53.4,9.076469,1.098612,6.206999,1 +16,5,95,1,3,526489,1,8746.032,27.44285,1,12,1,318.4669,18.19164,0,0,0,336.6585,0,0,0,7,0,4,56.4,17.2,1,53.4,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,53.4,9.076469,1.386294,5.819069,1 +16,5,95,1,1,526490,1,8746.032,2.732375,1,12,1,56.4228,1.650362,0,0,0,58.07316,0,0,0,1,0,3,77.40034,10.57626,0,85.2,1000,1000,1,1,1.098612,6.907755,0,4.564348,6.959049,1,0,0,85.2,9.076469,1.098612,4.061704,1 +16,5,95,1,2,526490,1,8746.032,3.732375,1,12,1,0,2.167939,0,0,0,2.167939,0,0,0,0,0,3,77.40034,10.57626,0,85.2,1000,1000,1,1,1.098612,6.907755,0,4.564348,6.959049,1,0,0,85.2,9.076469,1.098612,.7737769,1 +16,5,95,1,3,526490,1,8746.032,4.732375,1,12,1,15.67944,3.376307,0,0,0,19.05575,0,0,0,2,0,4,77.40034,10.57626,0,85.2,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,1,0,0,85.2,9.076469,1.386294,2.947369,1 +16,5,95,1,1,526491,1,8746.032,27.93429,0,12,1,14.03658,6.358996,0,0,0,20.39558,0,0,0,3,0,3,57.4,13.8,0,54.5,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,1,0,0,54.5,9.076469,1.098612,3.015318,1 +16,5,95,1,2,526491,1,8746.032,28.93429,0,12,1,35.49618,8.053435,0,0,0,43.54962,0,0,0,4,0,3,57.4,13.8,0,54.5,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,1,0,0,54.5,9.076469,1.098612,3.773901,1 +16,5,95,1,3,526491,1,8746.032,29.93429,0,12,1,25.08711,5.979094,0,0,0,31.0662,0,0,0,3,0,4,57.4,13.8,0,54.5,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,54.5,9.076469,1.386294,3.436121,1 +11,5,0,1,1,526508,0,4352.791,60.84873,0,6,1,14.88728,0,0,0,0,14.88728,0,0,0,1,0,2,80.9,10.3,0,73.9,0,565.28,0,0,.6931472,6.337321,0,0,0,1,0,0,73.9,8.378802,.6931472,2.700507,1 +11,5,0,1,2,526508,0,4352.791,61.84873,0,6,1,77.48092,4.770992,33.74046,0,0,115.9924,0,0,0,3,0,2,80.9,10.3,0,73.9,0,565.28,0,0,.6931472,6.337321,0,0,0,1,0,0,73.9,8.378802,.6931472,4.753524,1 +11,5,0,1,3,526508,0,4352.791,62.84873,0,6,1,54.3554,16.09756,0,0,0,70.45296,0,0,0,4,0,2,80.9,10.3,0,73.9,0,565.28,0,0,.6931472,6.337321,0,0,0,1,0,0,73.9,8.378802,.6931472,4.254945,1 +11,5,0,1,1,526509,0,4352.791,59.82204,1,12,1,46.7886,147.6478,0,0,0,194.4364,0,0,0,5,0,2,85.1,10.3,0,59.1,0,565.28,0,0,.6931472,6.337321,0,0,0,1,0,0,59.1,8.378802,.6931472,5.270105,1 +11,5,0,1,2,526509,0,4352.791,60.82204,1,12,1,173.2824,197.3664,55.57252,0,0,426.2214,0,0,0,6,0,2,85.1,10.3,0,59.1,0,565.28,0,0,.6931472,6.337321,0,0,0,1,0,0,59.1,8.378802,.6931472,6.054959,1 +11,5,0,1,3,526509,0,4352.791,61.82204,1,12,1,54.3554,282.9024,0,0,0,337.2578,0,0,0,8,0,2,85.1,10.3,0,59.1,0,565.28,0,0,.6931472,6.337321,0,0,0,1,0,0,59.1,8.378802,.6931472,5.820848,1 +14,5,95,1,1,526511,1,7497.361,57.16632,1,10,1,47.07631,91.32805,0,0,0,138.4044,0,0,0,5,0,2,94.7,10.3,0,64.8,650,650,0,0,.6931472,6.476973,0,4.564348,6.528265,0,1,0,64.8,8.92244,.6931472,4.93018,1 +14,5,95,1,2,526511,1,7497.361,58.16632,1,10,1,32.12483,112.4782,0,0,0,144.603,0,0,0,4,0,2,94.7,10.3,0,64.8,650,650,0,0,.6931472,6.476973,0,4.564348,6.528265,0,1,0,64.8,8.92244,.6931472,4.973992,1 +14,5,95,1,3,526511,1,7497.361,59.16632,1,10,1,27.34539,97.33277,0,0,0,124.6782,0,0,0,4,0,2,94.7,10.3,0,64.8,650,650,0,0,.6931472,6.476973,0,4.564348,6.528265,0,1,0,64.8,8.92244,.6931472,4.825736,1 +14,5,95,1,4,526511,1,7497.361,60.16632,1,10,1,30.22289,70.09822,0,0,0,100.3211,0,0,0,4,0,2,94.7,10.3,0,64.8,650,650,0,0,.6931472,6.476973,0,4.564348,6.528265,0,1,0,64.8,8.92244,.6931472,4.608376,1 +14,5,95,1,5,526511,1,7497.361,61.16632,1,10,1,37.73585,102.0583,0,0,0,139.7942,0,0,0,5,0,2,94.7,10.3,0,64.8,650,650,0,0,.6931472,6.476973,0,4.564348,6.528265,0,1,0,64.8,8.92244,.6931472,4.940171,1 +14,5,95,1,1,526512,1,7497.361,58.91307,0,9,1,0,0,0,0,0,0,0,0,0,0,0,2,87.4,10.3,0,69,650,650,0,0,.6931472,6.476973,0,4.564348,6.528265,0,1,0,69,8.92244,.6931472,,0 +14,5,95,1,2,526512,1,7497.361,59.91307,0,9,1,0,0,0,0,0,0,0,0,0,0,0,2,87.4,10.3,0,69,650,650,0,0,.6931472,6.476973,0,4.564348,6.528265,0,1,0,69,8.92244,.6931472,,0 +14,5,95,1,3,526512,1,7497.361,60.91307,0,9,1,0,0,0,0,0,0,0,0,0,0,0,2,87.4,10.3,0,69,650,650,0,0,.6931472,6.476973,0,4.564348,6.528265,0,1,0,69,8.92244,.6931472,,0 +14,5,95,1,4,526512,1,7497.361,61.91307,0,9,1,0,0,0,0,0,0,0,0,0,0,0,2,87.4,10.3,0,69,650,650,0,0,.6931472,6.476973,0,4.564348,6.528265,0,1,0,69,8.92244,.6931472,,0 +14,5,95,1,5,526512,1,7497.361,62.91307,0,9,1,8.576329,0,0,0,0,8.576329,0,0,0,1,0,2,87.4,10.3,0,69,650,650,0,0,.6931472,6.476973,0,4.564348,6.528265,0,1,0,69,8.92244,.6931472,2.149006,1 +13,5,0,1,1,526513,0,13789.04,32.14237,0,20,1,134.2028,40.80354,0,0,0,175.0063,0,0,0,9,0,3,86.2,20.7,0,53.4,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,53.4,9.531702,1.098612,5.164822,1 +13,5,0,1,2,526513,0,13789.04,33.14237,0,20,1,54.02342,42.31583,102.0023,0,0,198.3415,0,0,0,5,1,3,86.2,20.7,0,53.4,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,53.4,9.531702,1.098612,5.28999,1 +13,5,0,1,3,526513,0,13789.04,34.14237,0,20,1,43.2247,36.31561,111.4923,0,0,191.0326,0,0,0,4,2,4,86.2,20.7,0,53.4,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,53.4,9.531702,1.386294,5.252444,1 +16,5,95,0,1,526517,0,7100.871,33.68378,0,15,1,0,0,0,0,0,0,0,0,0,0,0,3,97.3,0,0,90.9,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,90.9,8.868114,1.098612,,0 +16,5,95,0,2,526517,0,7100.871,34.68378,0,15,1,28.71175,10.26445,0,0,0,38.9762,0,0,0,3,1,3,97.3,0,0,90.9,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,90.9,8.868114,1.098612,3.662951,1 +16,5,95,0,3,526517,0,7100.871,35.68378,0,15,1,24.35678,1.766724,0,0,0,26.1235,0,0,0,2,0,3,97.3,0,0,90.9,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,90.9,8.868114,1.098612,3.262835,1 +16,5,95,0,1,526518,0,7100.871,30.53525,1,15,1,0,0,0,0,0,0,0,0,0,0,0,3,99.5,3.4,0,98.9,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,98.9,8.868114,1.098612,,0 +16,5,95,0,2,526518,0,7100.871,31.53525,1,15,1,159.8036,0,7.555724,0,0,167.3593,0,0,0,1,6,3,99.5,3.4,0,98.9,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,98.9,8.868114,1.098612,5.120143,1 +16,5,95,0,3,526518,0,7100.871,32.53525,1,15,1,506.3465,0,0,0,0,506.3465,0,0,0,0,55,3,99.5,3.4,0,98.9,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,98.9,8.868114,1.098612,6.227221,1 +13,5,0,1,1,526519,0,7826.421,57.17728,1,11,1,98.68141,7.179924,32.02042,0,0,137.8818,0,0,0,2,0,2,84,10.3,0,68.2,300,646.44,0,0,.6931472,6.47148,1,4.564348,5.755076,0,0,0,68.2,8.965388,.6931472,4.926396,1 +13,5,0,1,2,526519,0,7826.421,58.17728,1,11,1,150,3.496183,23.0229,0,0,176.5191,0,0,0,8,0,2,84,10.3,0,68.2,300,646.44,0,0,.6931472,6.47148,1,4.564348,5.755076,0,0,0,68.2,8.965388,.6931472,5.173429,1 +13,5,0,1,3,526519,0,7826.421,59.17728,1,11,1,81.88153,9.331011,0,0,0,91.21255,0,0,0,2,0,2,84,10.3,0,68.2,300,646.44,0,0,.6931472,6.47148,1,4.564348,5.755076,0,0,0,68.2,8.965388,.6931472,4.513193,1 +13,5,0,1,1,526520,0,7826.421,57.28405,0,11,1,78.26456,144.4789,23.15185,0,0,245.8954,0,0,0,3,0,2,79.3,27.6,1,39.8,300,646.44,0,0,.6931472,6.47148,1,4.564348,5.755076,0,0,0,39.8,8.965388,.6931472,5.504906,1 +13,5,0,1,2,526520,0,7826.421,58.28405,0,11,1,76.71756,134.3359,6.729008,0,0,217.7824,0,0,0,2,0,2,79.3,27.6,1,39.8,300,646.44,0,0,.6931472,6.47148,1,4.564348,5.755076,0,0,0,39.8,8.965388,.6931472,5.383497,1 +13,5,0,1,3,526520,0,7826.421,59.28405,0,11,1,146.6899,159.8606,47.10104,0,0,353.6516,0,0,0,4,0,2,79.3,27.6,1,39.8,300,646.44,0,0,.6931472,6.47148,1,4.564348,5.755076,0,0,0,39.8,8.965388,.6931472,5.868312,1 +13,5,0,1,1,526546,0,5216.078,31.41957,0,17,1,31.90132,1.807741,31.59507,133.9855,0,65.30412,0,0,7,3,0,1,66.5,13.8,0,75,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,75,8.559692,0,4.179055,1 +13,5,0,1,2,526546,0,5216.078,32.41957,0,17,1,29.00763,0,7.541985,171.7557,0,36.54962,0,0,9,2,0,1,66.5,13.8,0,75,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,75,8.559692,0,3.598671,1 +13,5,0,1,3,526546,0,5216.078,33.41957,0,17,1,49.82578,0,24.64112,216.0279,0,74.4669,0,0,12,4,1,1,66.5,13.8,0,75,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,75,8.559692,0,4.310355,1 +7,5,25,0,1,526549,1,4071.685,11.81383,1,14,1,0,0,0,0,0,0,0,0,0,0,0,6,95,10.57626,.1442925,63,750,750,1,1,1.791759,6.620073,0,3.258096,8.006368,0,0,0,63,8.312057,1.791759,,0 +7,5,25,0,2,526549,1,4071.685,12.81383,1,14,1,0,0,0,0,0,0,0,0,0,0,0,6,95,10.57626,.1442925,63,750,750,1,1,1.791759,6.620073,0,3.258096,8.006368,0,0,0,63,8.312057,1.791759,,0 +7,5,25,0,3,526549,1,4071.685,13.81383,1,14,1,41.34948,3.847751,0,0,0,45.19723,0,0,0,3,0,6,95,10.57626,.1442925,63,750,750,1,1,1.791759,6.620073,0,3.258096,8.006368,0,0,0,63,8.312057,1.791759,3.811036,1 +7,5,25,0,1,526550,1,4071.685,17.24025,1,14,1,0,0,0,0,0,0,0,0,0,0,0,6,67.6,17.2,0,73.9,750,750,1,1,1.791759,6.620073,0,3.258096,8.006368,1,0,0,73.9,8.312057,1.791759,,0 +7,5,25,0,2,526550,1,4071.685,18.24025,1,14,1,9.491268,0,32.27031,0,0,41.76158,0,0,0,0,1,6,67.6,17.2,0,73.9,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,1,0,0,73.9,8.312057,1.791759,3.731977,1 +7,5,25,0,3,526550,1,4071.685,19.24025,1,14,1,19.37716,8.702422,0,0,0,28.07958,0,0,0,1,0,6,67.6,17.2,0,73.9,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,1,0,0,73.9,8.312057,1.791759,3.335043,1 +7,5,25,0,1,526551,1,4071.685,47.46064,1,14,1,89.29327,28.58654,0,0,0,117.8798,0,0,0,7,0,6,55.9,20.7,1,30.7,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,0,1,0,30.7,8.312057,1.791759,4.769666,1 +7,5,25,0,2,526551,1,4071.685,48.46064,1,14,1,109.9089,58.8041,32.27031,0,0,200.9833,0,0,0,6,1,6,55.9,20.7,1,30.7,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,0,1,0,30.7,8.312057,1.791759,5.303222,1 +7,5,25,0,3,526551,1,4071.685,49.46064,1,14,1,271.1073,66.73357,0,0,0,337.8408,0,0,0,9,14,6,55.9,20.7,1,30.7,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,0,1,0,30.7,8.312057,1.791759,5.822575,1 +7,5,25,0,1,526552,1,4071.685,10.05339,1,14,1,0,0,0,0,0,0,0,0,0,0,0,6,86.7,10.57626,.1442925,40.7,750,750,1,1,1.791759,6.620073,0,3.258096,8.006368,0,1,0,40.7,8.312057,1.791759,,0 +7,5,25,0,2,526552,1,4071.685,11.05339,1,14,1,0,0,0,0,904.328,904.328,1,0,0,0,0,6,86.7,10.57626,.1442925,40.7,750,750,1,1,1.791759,6.620073,0,3.258096,8.006368,0,1,0,40.7,8.312057,1.791759,6.807192,1 +7,5,25,0,3,526552,1,4071.685,12.05339,1,14,1,145.6747,23.9308,0,0,389.2733,558.8789,1,1,0,7,0,6,86.7,10.57626,.1442925,40.7,750,750,1,1,1.791759,6.620073,0,3.258096,8.006368,0,1,0,40.7,8.312057,1.791759,6.325933,1 +7,5,25,0,1,526553,1,4071.685,48.6653,0,10,1,0,0,0,0,0,0,0,0,0,0,0,6,93.1,13.8,0,85.2,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,85.2,8.312057,1.791759,,0 +7,5,25,0,2,526553,1,4071.685,49.6653,0,10,1,9.491268,0,32.27031,0,0,41.76158,0,0,0,0,1,6,93.1,13.8,0,85.2,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,85.2,8.312057,1.791759,3.731977,1 +7,5,25,0,3,526553,1,4071.685,50.6653,0,10,1,0,0,0,0,0,0,0,0,0,0,0,6,93.1,13.8,0,85.2,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,85.2,8.312057,1.791759,,0 +7,5,25,0,1,526554,1,4071.685,14.63655,0,14,1,0,0,0,0,0,0,0,0,0,0,0,6,84,3.4,0,69.3,750,750,1,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,69.3,8.312057,1.791759,,0 +7,5,25,0,2,526554,1,4071.685,15.63655,0,14,1,0,0,0,0,0,0,0,0,0,0,0,6,84,3.4,0,69.3,750,750,1,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,69.3,8.312057,1.791759,,0 +7,5,25,0,3,526554,1,4071.685,16.63655,0,14,1,0,0,0,0,0,0,0,0,0,0,0,6,84,3.4,0,69.3,750,750,1,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,69.3,8.312057,1.791759,,0 +11,5,0,0,1,526592,0,3431.644,19.34292,0,8,1,90.45435,2.76782,26.67778,0,0,119.9,0,0,0,3,1,2,77.7,20.7,0,54.5,0,92.4,0,0,.6931472,4.526127,0,0,0,0,0,1,54.5,8.141086,.6931472,4.786658,1 +11,5,0,0,2,526592,0,3431.644,20.34292,0,8,1,73.51838,10.76519,0,0,0,84.28357,0,0,0,5,1,2,77.7,20.7,0,54.5,0,92.4,0,0,.6931472,4.526127,0,0,0,0,0,1,54.5,8.141086,.6931472,4.434187,1 +11,5,0,0,3,526592,0,3431.644,21.34292,0,8,1,348.1901,47.09066,30.44655,0,0,425.7273,0,0,0,15,1,2,77.7,20.7,0,54.5,0,92.4,0,0,.6931472,4.526127,0,0,0,0,0,1,54.5,8.141086,.6931472,6.053799,1 +11,5,0,0,1,526593,0,3431.644,53.72211,1,7,1,209.0454,31.70488,34.18091,0,0,274.9312,0,0,0,14,1,2,84.6,24.1,0,67,0,92.4,0,0,.6931472,4.526127,0,0,0,0,1,0,67,8.141086,.6931472,5.616521,1 +11,5,0,0,2,526593,0,3431.644,54.72211,1,7,1,50.63766,18.89347,0,0,427.2318,496.7629,1,0,0,4,0,2,84.6,24.1,0,67,0,92.4,0,0,.6931472,4.526127,0,0,0,0,1,0,67,8.141086,.6931472,6.208113,1 +11,5,0,0,3,526593,0,3431.644,55.72211,1,7,1,319.0122,23.73816,30.44655,0,0,373.1969,0,0,0,7,2,2,84.6,24.1,0,67,0,92.4,0,0,.6931472,4.526127,0,0,0,0,1,0,67,8.141086,.6931472,5.922106,1 +17,5,25,1,1,526599,1,1638.505,43.96714,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,46.8,13.8,1,71.6,47.35,0,0,0,.6931472,0,0,3.258096,5.243861,1,0,0,71.6,7.40215,.6931472,,0 +17,5,25,1,2,526599,1,1638.505,44.96714,1,12,1,33.96947,3.622137,0,0,0,37.5916,0,0,0,7,0,2,46.8,13.8,1,71.6,47.35,0,0,0,.6931472,0,0,3.258096,5.243861,1,0,0,71.6,7.40215,.6931472,3.626781,1 +17,5,25,1,3,526599,1,1638.505,45.96714,1,12,1,24.39024,6.365854,0,0,0,30.7561,0,0,0,3,0,2,46.8,13.8,1,71.6,47.35,0,0,0,.6931472,0,0,3.258096,5.243861,1,0,0,71.6,7.40215,.6931472,3.426088,1 +17,5,25,1,1,526600,1,1638.505,15.25257,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,86.7,0,0,76.1,47.35,0,1,1,.6931472,0,0,3.258096,5.243861,0,0,0,76.1,7.40215,.6931472,,0 +17,5,25,1,2,526600,1,1638.505,16.25257,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,86.7,0,0,76.1,47.35,0,1,1,.6931472,0,0,3.258096,5.243861,0,0,0,76.1,7.40215,.6931472,,0 +17,5,25,1,3,526600,1,1638.505,17.25257,1,12,1,26.1324,0,0,0,0,26.1324,0,0,0,2,0,2,86.7,0,0,76.1,47.35,0,1,1,.6931472,0,0,3.258096,5.243861,0,0,0,76.1,7.40215,.6931472,3.263176,1 +16,5,95,1,1,526608,1,4859.824,4.440794,0,11,1,0,0,0,0,0,0,0,0,0,0,0,6,77.40034,10.57626,0,100,900,900,1,0,1.791759,6.802395,0,4.564348,6.853688,1,0,0,100,8.488963,1.791759,,0 +16,5,95,1,2,526608,1,4859.824,5.440794,0,11,1,0,0,0,0,0,0,0,0,0,0,0,6,77.40034,10.57626,0,100,900,900,1,0,1.791759,6.802395,0,4.564348,6.853688,1,0,0,100,8.488963,1.791759,,0 +16,5,95,1,3,526608,1,4859.824,6.440794,0,11,1,14.5772,1.99411,0,0,0,16.57131,0,0,0,2,0,6,77.40034,10.57626,0,100,900,900,1,0,1.791759,6.802395,0,4.564348,6.853688,1,0,0,100,8.488963,1.791759,2.807673,1 +16,5,95,1,4,526608,1,4859.824,7.440794,0,11,1,40.04533,3.456743,0,18.88931,0,43.50208,0,0,1,0,0,6,77.40034,10.57626,0,100,900,900,1,0,1.791759,6.802395,0,4.564348,6.853688,1,0,0,100,8.488963,1.791759,3.772809,1 +16,5,95,1,5,526608,1,4859.824,8.440794,0,11,1,33.27616,6.26072,0,0,0,39.53688,0,0,0,0,0,5,77.40034,10.57626,0,100,900,900,1,0,1.609438,6.802395,0,4.564348,6.853688,1,0,0,100,8.488963,1.609438,3.677234,1 +16,5,95,1,1,526609,1,4859.824,34.84189,1,11,1,0,0,0,0,0,0,0,0,0,0,0,6,62.3,20.7,0,66.7,900,900,0,0,1.791759,6.802395,0,4.564348,6.853688,0,1,0,66.7,8.488963,1.791759,,0 +16,5,95,1,2,526609,1,4859.824,35.84189,1,11,1,15.83295,5.323543,0,0,0,21.15649,0,0,0,2,0,6,62.3,20.7,0,66.7,900,900,0,0,1.791759,6.802395,0,4.564348,6.853688,0,1,0,66.7,8.488963,1.791759,3.051947,1 +16,5,95,1,3,526609,1,4859.824,36.84189,1,11,1,25.19983,8.169962,0,0,0,33.36979,0,0,0,4,0,6,62.3,20.7,0,66.7,900,900,0,0,1.791759,6.802395,0,4.564348,6.853688,0,1,0,66.7,8.488963,1.791759,3.507651,1 +16,5,95,1,4,526609,1,4859.824,37.84189,1,11,1,298.8289,71.5527,61.44692,0,1670.193,2102.021,2,0,0,12,0,6,62.3,20.7,0,66.7,900,900,0,0,1.791759,6.802395,0,4.564348,6.853688,0,1,0,66.7,8.488963,1.791759,7.650655,1 +16,5,95,1,5,526609,1,4859.824,38.84189,1,11,1,116.4666,40.55575,0,0,0,157.0223,0,0,0,5,0,5,62.3,20.7,0,66.7,900,900,0,0,1.609438,6.802395,0,4.564348,6.853688,0,1,0,66.7,8.488963,1.609438,5.056388,1 +16,5,95,1,1,526610,1,4859.824,40.32854,0,6,1,25.27255,7.408325,0,0,0,32.68087,0,0,0,0,0,6,61.2,0,0,54.8,900,900,0,0,1.791759,6.802395,0,4.564348,6.853688,0,1,0,54.8,8.488963,1.791759,3.48679,1 +16,5,95,1,2,526610,1,4859.824,41.32854,0,6,1,0,0,0,0,0,0,0,0,0,0,0,6,61.2,0,0,54.8,900,900,0,0,1.791759,6.802395,0,4.564348,6.853688,0,1,0,54.8,8.488963,1.791759,,0 +16,5,95,1,3,526610,1,4859.824,42.32854,0,6,1,0,8.350863,0,0,0,8.350863,0,0,0,0,0,6,61.2,0,0,54.8,900,900,0,0,1.791759,6.802395,0,4.564348,6.853688,0,1,0,54.8,8.488963,1.791759,2.122365,1 +16,5,95,1,4,526610,1,4859.824,43.32854,0,6,.8169399,0,0,0,0,0,0,0,0,0,0,0,6,61.2,0,0,54.8,900,900,0,0,1.791759,6.802395,0,4.564348,6.853688,0,1,0,54.8,8.488963,1.791759,,0 +16,5,95,1,1,526611,1,4859.824,10.34086,1,11,1,0,0,0,0,0,0,0,0,0,0,0,6,83.3,10.57626,0,88.9,900,900,1,1,1.791759,6.802395,0,4.564348,6.853688,1,0,0,88.9,8.488963,1.791759,,0 +16,5,95,1,2,526611,1,4859.824,11.34086,1,11,1,0,0,0,0,0,0,0,0,0,0,0,6,83.3,10.57626,0,88.9,900,900,1,1,1.791759,6.802395,0,4.564348,6.853688,1,0,0,88.9,8.488963,1.791759,,0 +16,5,95,1,3,526611,1,4859.824,12.34086,1,11,1,6.310475,1.001262,0,0,0,7.311738,0,0,0,1,0,6,83.3,10.57626,0,88.9,900,900,1,1,1.791759,6.802395,0,4.564348,6.853688,1,0,0,88.9,8.488963,1.791759,1.989481,1 +16,5,95,1,4,526611,1,4859.824,13.34086,1,11,1,0,0,0,0,0,0,0,0,0,0,0,6,83.3,10.57626,0,88.9,900,900,1,1,1.791759,6.802395,0,4.564348,6.853688,1,0,0,88.9,8.488963,1.791759,,0 +16,5,95,1,5,526611,1,4859.824,14.34086,1,11,1,35.16295,0,0,0,0,35.16295,0,0,0,2,0,5,83.3,10.57626,0,88.9,900,900,1,1,1.609438,6.802395,0,4.564348,6.853688,1,0,0,88.9,8.488963,1.609438,3.559993,1 +16,5,95,1,1,526612,1,4859.824,15.8193,1,11,1,0,0,0,0,0,0,0,0,0,0,0,6,91,3.4,0,80.7,900,900,1,1,1.791759,6.802395,0,4.564348,6.853688,1,0,0,80.7,8.488963,1.791759,,0 +16,5,95,1,2,526612,1,4859.824,16.8193,1,11,1,0,0,0,0,0,0,0,0,0,0,0,6,91,3.4,0,80.7,900,900,1,1,1.791759,6.802395,0,4.564348,6.853688,1,0,0,80.7,8.488963,1.791759,,0 +16,5,95,1,3,526612,1,4859.824,17.8193,1,11,1,8.687421,0,0,0,0,8.687421,0,0,0,1,0,6,91,3.4,0,80.7,900,900,1,1,1.791759,6.802395,0,4.564348,6.853688,1,0,0,80.7,8.488963,1.791759,2.161876,1 +16,5,95,1,4,526612,1,4859.824,18.8193,1,11,1,4.533434,4.760106,0,0,0,9.29354,0,0,0,1,0,6,91,3.4,0,80.7,900,900,0,0,1.791759,6.802395,0,4.564348,6.853688,1,0,0,80.7,8.488963,1.791759,2.22932,1 +16,5,95,1,5,526612,1,4859.824,19.8193,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,91,3.4,0,80.7,900,900,0,0,1.609438,6.802395,0,4.564348,6.853688,1,0,0,80.7,8.488963,1.609438,,0 +16,5,95,1,1,526613,1,4859.824,11.8193,0,11,1,0,0,0,0,0,0,0,0,0,0,0,6,78.3,10.57626,0,88.9,900,900,1,0,1.791759,6.802395,0,4.564348,6.853688,1,0,0,88.9,8.488963,1.791759,,0 +16,5,95,1,2,526613,1,4859.824,12.8193,0,11,1,0,0,0,0,0,0,0,0,0,0,0,6,78.3,10.57626,0,88.9,900,900,1,0,1.791759,6.802395,0,4.564348,6.853688,1,0,0,88.9,8.488963,1.791759,,0 +16,5,95,1,3,526613,1,4859.824,13.8193,0,11,1,16.40724,0,0,0,0,16.40724,0,0,0,0,0,6,78.3,10.57626,0,88.9,900,900,1,0,1.791759,6.802395,0,4.564348,6.853688,1,0,0,88.9,8.488963,1.791759,2.797723,1 +16,5,95,1,4,526613,1,4859.824,14.8193,0,11,1,102.3801,12.41028,0,0,0,114.7903,0,0,0,6,0,6,78.3,10.57626,0,88.9,900,900,1,0,1.791759,6.802395,0,4.564348,6.853688,1,0,0,88.9,8.488963,1.791759,4.743107,1 +16,5,95,1,5,526613,1,4859.824,15.8193,0,11,1,30.87479,0,0,0,0,30.87479,0,0,0,3,0,5,78.3,10.57626,0,88.9,900,900,1,0,1.609438,6.802395,0,4.564348,6.853688,1,0,0,88.9,8.488963,1.609438,3.42994,1 +13,5,0,1,1,526655,0,6674.895,51.12115,1,12,1,186.204,326.2378,22.00592,0,0,534.4478,0,0,0,9,0,3,74.5,24.1,0,28.4,450,646.36,0,0,1.098612,6.471356,1,4.564348,6.160541,0,0,1,28.4,8.806258,1.098612,6.281234,1 +13,5,0,1,2,526655,0,6674.895,52.12115,1,12,1,198.7471,386.6932,0,0,0,585.4404,0,0,0,10,0,3,74.5,24.1,0,28.4,450,646.36,0,0,1.098612,6.471356,1,4.564348,6.160541,0,0,1,28.4,8.806258,1.098612,6.372365,1 +13,5,0,1,3,526655,0,6674.895,53.12115,1,12,1,257.4395,508.4429,23.87543,0,0,789.7578,0,0,0,12,0,3,74.5,24.1,0,28.4,450,646.36,0,0,1.098612,6.471356,1,4.564348,6.160541,0,0,1,28.4,8.806258,1.098612,6.671726,1 +13,5,0,1,1,526656,0,6674.895,18.0397,1,10.96978,1,94.79475,82.39526,14.60008,0,355.6919,547.482,1,0,0,18,0,3,81.4,10.3,0,52.3,450,646.36,0,0,1.098612,6.471356,1,4.564348,6.160541,0,0,0,52.3,8.806258,1.098612,6.30533,1 +13,5,0,1,2,526656,0,6674.895,19.0397,1,10.96978,1,197.2285,33.94077,0,0,0,231.1693,0,0,0,13,0,3,81.4,10.3,0,52.3,450,646.36,0,0,1.098612,6.471356,1,4.564348,6.160541,0,0,0,52.3,8.806258,1.098612,5.443151,1 +13,5,0,1,3,526656,0,6674.895,20.0397,1,10.96978,1,285.8131,174.9481,0,0,3334.948,3795.709,2,0,0,11,5,3,81.4,10.3,0,52.3,450,646.36,0,0,1.098612,6.471356,1,4.564348,6.160541,0,0,0,52.3,8.806258,1.098612,8.241627,1 +13,5,0,1,1,526657,0,6674.895,55.40589,0,12,1,168.6839,35.52687,48.85315,0,842.9962,1096.06,1,0,0,6,0,3,81.4,10.3,1,48.9,450,646.36,0,0,1.098612,6.471356,1,4.564348,6.160541,0,1,0,48.9,8.806258,1.098612,6.999477,1 +13,5,0,1,2,526657,0,6674.895,56.40589,0,12,1,24.6773,24.25968,0,0,550.8732,599.8102,1,0,0,4,0,3,81.4,10.3,1,48.9,450,646.36,0,0,1.098612,6.471356,1,4.564348,6.160541,0,1,0,48.9,8.806258,1.098612,6.396613,1 +13,5,0,1,3,526657,0,6674.895,57.40589,0,12,1,131.8339,37.24913,18.3391,0,0,187.4221,0,0,0,5,0,3,81.4,10.3,1,48.9,450,646.36,0,0,1.098612,6.471356,1,4.564348,6.160541,0,1,0,48.9,8.806258,1.098612,5.233364,1 +11,5,0,1,1,526658,0,6100.871,25.79603,0,14,1,0,0,0,0,0,0,0,0,0,0,0,1,67,0,0,79.5,0,290.42,0,0,0,5.671328,0,0,0,0,0,0,79.5,8.716351,0,,0 +11,5,0,1,2,526658,0,6100.871,26.79603,0,14,1,57.70691,9.035687,0,0,62.64237,129.385,1,1,0,4,0,1,67,0,0,79.5,0,290.42,0,0,0,5.671328,0,0,0,0,0,0,79.5,8.716351,0,4.862792,1 +11,5,0,1,3,526658,0,6100.871,27.79603,0,14,1,130.4498,0,0,0,0,130.4498,0,0,0,3,0,1,67,0,0,79.5,0,290.42,0,0,0,5.671328,0,0,0,0,0,0,79.5,8.716351,0,4.870989,1 +14,5,95,1,1,526671,0,6674.895,29.11431,0,7,1,26.23783,0,0,0,0,26.23783,0,0,0,1,0,3,89.4,10.3,0,73.9,313.5,396.24,0,0,1.098612,5.98202,0,4.564348,5.799093,1,0,0,73.9,8.806258,1.098612,3.267202,1 +14,5,95,1,2,526671,0,6674.895,30.11431,0,7,1,0,0,0,0,0,0,0,0,0,0,0,3,89.4,10.3,0,73.9,313.5,396.24,0,0,1.098612,5.98202,0,4.564348,5.799093,1,0,0,73.9,8.806258,1.098612,,0 +14,5,95,1,3,526671,0,6674.895,31.11431,0,7,1,0,0,0,0,0,0,0,0,0,0,0,3,89.4,10.3,0,73.9,313.5,396.24,0,0,1.098612,5.98202,0,4.564348,5.799093,1,0,0,73.9,8.806258,1.098612,,0 +14,5,95,1,1,526672,0,6674.895,29.87269,1,8,1,66.0601,0,0,0,0,66.0601,0,0,0,3,0,3,43.6,20.7,0,45.5,313.5,396.24,0,0,1.098612,5.98202,0,4.564348,5.799093,1,0,0,45.5,8.806258,1.098612,4.190565,1 +14,5,95,1,2,526672,0,6674.895,30.87269,1,8,1,105.391,33.37889,0,0,0,138.7699,0,0,0,5,0,3,43.6,20.7,0,45.5,313.5,396.24,0,0,1.098612,5.98202,0,4.564348,5.799093,1,0,0,45.5,8.806258,1.098612,4.932817,1 +14,5,95,1,3,526672,0,6674.895,31.87269,1,8,1,89.61938,17.49135,34.25605,0,0,141.3668,0,0,0,2,1,3,43.6,20.7,0,45.5,313.5,396.24,0,0,1.098612,5.98202,0,4.564348,5.799093,1,0,0,45.5,8.806258,1.098612,4.951358,1 +11,5,0,1,1,526699,0,9155.146,30.56263,0,16,1,111.2992,38.88277,18.48498,0,0,168.6669,0,0,0,6,3,3,67,6.9,0,60.2,0,915.72,0,0,1.098612,6.819711,0,0,0,0,0,0,60.2,9.122181,1.098612,5.127926,1 +11,5,0,1,2,526699,0,9155.146,31.56263,0,16,1,58.84586,10.5391,46.78056,0,0,116.1655,0,0,0,7,0,4,67,6.9,0,60.2,0,915.72,0,0,1.386294,6.819711,0,0,0,0,0,0,60.2,9.122181,1.386294,4.755016,1 +11,5,0,1,3,526699,0,9155.146,32.56263,0,16,1,25.95156,27.12111,15.11419,0,0,68.18685,0,0,0,1,0,4,67,6.9,0,60.2,0,915.72,0,0,1.386294,6.819711,0,0,0,0,0,0,60.2,9.122181,1.386294,4.222252,1 +11,5,0,1,1,526700,0,9155.146,29.30595,1,16,1,24.54507,19.79687,0,0,883.6225,927.9645,1,0,0,1,0,3,86.7,10.3,0,81.8,0,915.72,0,0,1.098612,6.819711,0,0,0,1,0,0,81.8,9.122181,1.098612,6.832994,1 +11,5,0,1,2,526700,0,9155.146,30.30595,1,16,1,43.65983,8.686408,3.037206,0,0,55.38345,0,0,0,3,0,4,86.7,10.3,0,81.8,0,915.72,0,0,1.386294,6.819711,0,0,0,1,0,0,81.8,9.122181,1.386294,4.014281,1 +11,5,0,1,3,526700,0,9155.146,31.30595,1,16,1,0,1.6609,0,0,0,1.6609,0,0,0,0,0,4,86.7,10.3,0,81.8,0,915.72,0,0,1.386294,6.819711,0,0,0,1,0,0,81.8,9.122181,1.386294,.5073594,1 +13,5,0,0,1,526708,0,1901.178,23.40315,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,66.5,10.3,0,67,150,0,0,0,0,0,1,4.564348,5.061929,0,0,0,67,7.550755,0,,0 +13,5,0,0,2,526708,0,1901.178,24.40315,0,12,1,88.83827,0,0,0,0,88.83827,0,0,0,4,0,1,66.5,10.3,0,67,150,0,0,0,0,0,1,4.564348,5.061929,0,0,0,67,7.550755,0,4.486817,1 +13,5,0,0,3,526708,0,1901.178,25.40315,0,12,1,6.401384,4.910035,0,0,0,11.31142,0,0,0,0,0,1,66.5,10.3,0,67,150,0,0,0,0,0,1,4.564348,5.061929,0,0,0,67,7.550755,0,2.425813,1 +11,5,0,1,1,526733,1,6674.895,19.26899,1,10,1,0,0,0,0,0,0,0,0,0,0,0,3,71.8,10.3,0,61.4,0,0,0,0,1.098612,0,0,0,0,1,0,0,61.4,8.806258,1.098612,,0 +11,5,0,1,2,526733,1,6674.895,20.26899,1,10,1,6.870229,0,0,0,391.4122,398.2824,1,0,0,1,0,3,71.8,10.3,0,61.4,0,0,0,0,1.098612,0,0,0,0,1,0,0,61.4,8.806258,1.098612,5.987162,1 +11,5,0,1,3,526733,1,6674.895,21.26899,1,10,1,0,0,0,0,0,0,0,0,0,0,0,4,71.8,10.3,0,61.4,0,0,0,0,1.386294,0,0,0,0,1,0,0,61.4,8.806258,1.386294,,0 +11,5,0,1,1,526734,1,6674.895,38.83368,1,9,1,0,0,0,0,0,0,0,0,0,0,0,3,77.7,0,0,79.8,0,0,0,0,1.098612,0,0,0,0,1,0,0,79.8,8.806258,1.098612,,0 +11,5,0,1,2,526734,1,6674.895,39.83368,1,9,1,0,0,0,0,0,0,0,0,0,0,0,3,77.7,0,0,79.8,0,0,0,0,1.098612,0,0,0,0,1,0,0,79.8,8.806258,1.098612,,0 +11,5,0,1,3,526734,1,6674.895,40.83368,1,9,1,468.9895,15.45296,0,0,2681.882,3166.324,1,0,0,10,0,4,77.7,0,0,79.8,0,0,0,0,1.386294,0,0,0,0,1,0,0,79.8,8.806258,1.386294,8.060327,1 +6,5,25,1,1,526810,0,6674.895,12.87885,0,5,1,21.80377,1.154608,0,0,370.1685,393.1269,1,0,0,3,0,3,95,10.57626,0,92.6,498.11,498.11,1,0,1.098612,6.210821,0,3.258096,7.597116,0,0,0,92.6,8.806258,1.098612,5.974133,1 +6,5,25,1,2,526810,0,6674.895,13.87885,0,5,1,5.507113,4.584672,0,0,0,10.09179,0,0,0,1,0,3,95,10.57626,0,92.6,498.11,498.11,1,0,1.098612,6.210821,0,3.258096,7.597116,0,0,0,92.6,8.806258,1.098612,2.311722,1 +6,5,25,1,3,526810,0,6674.895,14.87885,0,5,1,0,0,0,0,0,0,0,0,0,0,0,3,95,10.57626,0,92.6,498.11,498.11,1,0,1.098612,6.210821,0,3.258096,7.597116,0,0,0,92.6,8.806258,1.098612,,0 +6,5,25,1,4,526810,0,6674.895,15.87885,0,5,1,74.80166,0,0,0,0,74.80166,0,0,0,3,0,3,95,10.57626,0,92.6,498.11,498.11,1,0,1.098612,6.210821,0,3.258096,7.597116,0,0,0,92.6,8.806258,1.098612,4.31484,1 +6,5,25,1,5,526810,0,6674.895,16.87885,0,5,1,0,0,0,0,0,0,0,0,0,0,0,3,95,10.57626,0,92.6,498.11,498.11,1,0,1.098612,6.210821,0,3.258096,7.597116,0,0,0,92.6,8.806258,1.098612,,0 +6,5,25,1,1,526811,0,6674.895,19.5373,0,8,1,0,0,0,0,0,0,0,0,0,0,0,3,86.7,10.3,0,51.1,498.11,498.11,0,0,1.098612,6.210821,0,3.258096,7.597116,0,0,0,51.1,8.806258,1.098612,,0 +6,5,25,1,2,526811,0,6674.895,20.5373,0,8,1,0,0,0,0,0,0,0,0,0,0,0,3,86.7,10.3,0,51.1,498.11,498.11,0,0,1.098612,6.210821,0,3.258096,7.597116,0,0,0,51.1,8.806258,1.098612,,0 +6,5,25,1,3,526811,0,6674.895,21.5373,0,8,1,33.65587,0,0,0,370.3576,404.0135,1,0,0,1,0,3,86.7,10.3,0,51.1,498.11,498.11,0,0,1.098612,6.210821,0,3.258096,7.597116,0,0,0,51.1,8.806258,1.098612,6.001448,1 +6,5,25,1,4,526811,0,6674.895,22.5373,0,8,1,0,2.942954,0,0,444.6543,447.5973,1,0,0,0,0,3,86.7,10.3,0,51.1,498.11,498.11,0,0,1.098612,6.210821,0,3.258096,7.597116,0,0,0,51.1,8.806258,1.098612,6.103894,1 +6,5,25,1,5,526811,0,6674.895,23.5373,0,8,1,0,0,0,0,365.3516,365.3516,1,0,0,0,0,3,86.7,10.3,0,51.1,498.11,498.11,0,0,1.098612,6.210821,0,3.258096,7.597116,0,0,0,51.1,8.806258,1.098612,5.90086,1 +6,5,25,1,1,526813,0,6674.895,54.36003,1,5,1,19.32607,0,19.82161,0,0,39.14767,0,0,0,1,1,3,72.3,6.9,0,46.6,498.11,498.11,0,0,1.098612,6.210821,0,3.258096,7.597116,0,0,0,46.6,8.806258,1.098612,3.667341,1 +6,5,25,1,2,526813,0,6674.895,55.36003,1,5,1,0,0,0,0,0,0,0,0,0,0,0,3,72.3,6.9,0,46.6,498.11,498.11,0,0,1.098612,6.210821,0,3.258096,7.597116,0,0,0,46.6,8.806258,1.098612,,0 +6,5,25,1,3,526813,0,6674.895,56.36003,1,5,1,0,0,0,0,0,0,0,0,0,0,0,3,72.3,6.9,0,46.6,498.11,498.11,0,0,1.098612,6.210821,0,3.258096,7.597116,0,0,0,46.6,8.806258,1.098612,,0 +6,5,25,1,4,526813,0,6674.895,57.36003,1,5,1,0,0,0,0,0,0,0,0,0,0,0,3,72.3,6.9,0,46.6,498.11,498.11,0,0,1.098612,6.210821,0,3.258096,7.597116,0,0,0,46.6,8.806258,1.098612,,0 +6,5,25,1,5,526813,0,6674.895,58.36003,1,5,1,6.174957,6.243568,0,0,0,12.41852,0,0,0,1,0,3,72.3,6.9,0,46.6,498.11,498.11,0,0,1.098612,6.210821,0,3.258096,7.597116,0,0,0,46.6,8.806258,1.098612,2.519189,1 +13,5,0,1,1,526817,0,4175.115,25.25667,1,14,1,31.73932,7.816335,26.44943,0,0,66.00508,0,0,0,2,0,2,91,3.4,0,86.9,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,86.9,8.337136,.6931472,4.189732,1 +13,5,0,1,2,526817,0,4175.115,26.25667,1,14,1,0,4.927866,0,0,0,4.927866,0,0,0,0,0,2,91,3.4,0,86.9,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,86.9,8.337136,.6931472,1.594906,1 +13,5,0,1,3,526817,0,4175.115,27.25667,1,14,1,0,0,0,0,0,0,0,0,0,0,0,2,91,3.4,0,86.9,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,86.9,8.337136,.6931472,,0 +13,5,0,1,1,526818,0,4175.115,7.86037,1,14,1,0,0,0,0,0,0,0,0,0,0,0,2,96.7,10.57626,0,85.2,300,300,1,1,.6931472,5.703783,1,4.564348,5.755076,1,0,0,85.2,8.337136,.6931472,,0 +13,5,0,1,2,526818,0,4175.115,8.86037,1,14,1,23.08276,0,0,0,0,23.08276,0,0,0,0,0,2,96.7,10.57626,0,85.2,300,300,1,1,.6931472,5.703783,1,4.564348,5.755076,1,0,0,85.2,8.337136,.6931472,3.139086,1 +13,5,0,1,3,526818,0,4175.115,9.86037,1,14,1,0,0,0,0,0,0,0,0,0,0,0,2,96.7,10.57626,0,85.2,300,300,1,1,.6931472,5.703783,1,4.564348,5.755076,1,0,0,85.2,8.337136,.6931472,,0 +11,5,0,1,1,526872,0,6674.895,26.84463,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,84,3.4,0,75,0,91,0,0,1.386294,4.510859,0,0,0,1,0,0,75,8.806258,1.386294,,0 +11,5,0,1,2,526872,0,6674.895,27.84463,0,12,1,188.232,0,0,0,0,188.232,0,0,0,2,15,4,84,3.4,0,75,0,91,0,0,1.386294,4.510859,0,0,0,1,0,0,75,8.806258,1.386294,5.237675,1 +11,5,0,1,3,526872,0,6674.895,28.84463,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,84,3.4,0,75,0,91,0,0,0,4.510859,0,0,0,1,0,0,75,8.806258,0,,0 +11,5,0,1,1,526873,0,6674.895,24.49829,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,48.4,13.8,0,40.9,0,91,0,0,1.386294,4.510859,0,0,0,1,0,0,40.9,8.806258,1.386294,,0 +11,5,0,1,2,526873,0,6674.895,25.49829,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,48.4,13.8,0,40.9,0,91,0,0,1.386294,4.510859,0,0,0,1,0,0,40.9,8.806258,1.386294,,0 +11,5,0,1,1,526874,0,6674.895,5.71937,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,0,81.5,0,91,1,1,1.386294,4.510859,0,0,0,1,0,0,81.5,8.806258,1.386294,,0 +11,5,0,1,2,526874,0,6674.895,6.71937,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,0,81.5,0,91,1,1,1.386294,4.510859,0,0,0,1,0,0,81.5,8.806258,1.386294,,0 +11,5,0,1,1,526905,0,12254.48,23.39494,1,12,1,60.02501,16.44018,0,0,1457.795,1534.26,1,0,0,4,0,2,93.1,13.8,0,85.2,0,624.78,0,0,.6931472,6.437399,0,0,0,0,0,0,85.2,9.413729,.6931472,7.335804,1 +7,5,25,0,1,526920,0,7929.339,57.2512,0,12,1,72.36012,0,0,0,0,72.36012,0,0,0,4,0,2,90.4,13.8,0,89.8,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,89.8,8.978451,.6931472,4.281655,1 +7,5,25,0,2,526920,0,7929.339,58.2512,0,12,1,32.11182,0,0,0,0,32.11182,0,0,0,3,0,2,90.4,13.8,0,89.8,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,89.8,8.978451,.6931472,3.469224,1 +7,5,25,0,3,526920,0,7929.339,59.2512,0,12,1,173.2419,0,0,0,0,173.2419,0,0,0,3,0,2,90.4,13.8,0,89.8,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,89.8,8.978451,.6931472,5.154689,1 +7,5,25,0,1,526921,0,7929.339,59.70431,1,10,1,24.40051,5.039966,0,0,0,29.44047,0,0,0,2,0,2,83,6.9,0,71.6,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,71.6,8.978451,.6931472,3.38237,1 +7,5,25,0,2,526921,0,7929.339,60.70431,1,10,1,28.71175,0,0,0,0,28.71175,0,0,0,1,0,2,83,6.9,0,71.6,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,71.6,8.978451,.6931472,3.357306,1 +7,5,25,0,3,526921,0,7929.339,61.70431,1,10,1,19.89708,0,0,0,0,19.89708,0,0,0,1,0,2,83,6.9,0,71.6,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,71.6,8.978451,.6931472,2.990573,1 +13,5,0,0,1,527049,1,166.4106,50.94045,1,12,1,15.23487,35.67499,0,0,0,50.90986,0,0,0,2,0,1,65.4,6.9,0,85.2,150,290.42,0,0,0,5.671328,1,4.564348,5.061929,0,0,0,85.2,5.12045,0,3.930057,1 +13,5,0,0,2,527049,1,166.4106,51.94045,1,12,1,7.593014,13.09415,0,0,0,20.68717,0,0,0,1,0,1,65.4,6.9,0,85.2,150,290.42,0,0,0,5.671328,1,4.564348,5.061929,0,0,0,85.2,5.12045,0,3.029514,1 +13,5,0,0,3,527049,1,166.4106,52.94045,1,12,1,13.84083,5.989619,0,0,0,19.83045,0,0,0,2,0,1,65.4,6.9,0,85.2,150,290.42,0,0,0,5.671328,1,4.564348,5.061929,0,0,0,85.2,5.12045,0,2.987219,1 +19,5,25,1,1,527069,1,6352.791,35.62765,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,68.6,0,0,63.6,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,63.6,8.756806,1.098612,,0 +19,5,25,1,2,527069,1,6352.791,36.62765,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,68.6,0,0,63.6,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,63.6,8.756806,1.098612,,0 +19,5,25,1,3,527069,1,6352.791,37.62765,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,68.6,0,0,63.6,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,63.6,8.756806,1.098612,,0 +19,5,25,1,1,527070,1,6352.791,9.081451,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,86.7,10.57626,0,96.3,750,750,1,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,96.3,8.756806,1.098612,,0 +19,5,25,1,2,527070,1,6352.791,10.08145,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,86.7,10.57626,0,96.3,750,750,1,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,96.3,8.756806,1.098612,,0 +19,5,25,1,3,527070,1,6352.791,11.08145,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,86.7,10.57626,0,96.3,750,750,1,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,96.3,8.756806,1.098612,,0 +19,5,25,1,1,527071,1,6352.791,31.10746,1,12,1,124.8413,0,0,0,0,124.8413,0,0,0,7,0,3,89.4,3.4,0,71.6,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,71.6,8.756806,1.098612,4.827044,1 +19,5,25,1,2,527071,1,6352.791,32.10746,1,12,1,11.38952,0,0,0,0,11.38952,0,0,0,2,0,3,89.4,3.4,0,71.6,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,71.6,8.756806,1.098612,2.432694,1 +19,5,25,1,3,527071,1,6352.791,33.10746,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,89.4,3.4,0,71.6,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,71.6,8.756806,1.098612,,0 +16,5,95,1,1,527076,1,5160.266,12.86516,1,10,1,0,0,0,0,0,0,0,0,0,0,0,4,85,10.57626,1,74.1,315.15,315.15,1,1,1.386294,5.753049,0,4.564348,5.804342,1,0,0,74.1,8.548937,1.386294,,0 +16,5,95,1,2,527076,1,5160.266,13.86516,1,10,1,72.13364,0,29.21792,0,0,101.3516,0,0,0,9,1,4,85,10.57626,1,74.1,315.15,315.15,1,1,1.386294,5.753049,0,4.564348,5.804342,1,0,0,74.1,8.548937,1.386294,4.618595,1 +16,5,95,1,3,527076,1,5160.266,14.86516,1,10,1,92.38754,0,26.62976,0,0,119.0173,0,0,0,0,1,5,85,10.57626,1,74.1,315.15,315.15,1,1,1.609438,5.753049,0,4.564348,5.804342,1,0,0,74.1,8.548937,1.609438,4.779269,1 +16,5,95,1,1,527077,1,5160.266,11.89596,0,10,1,0,0,0,0,0,0,0,0,0,0,0,4,85,10.57626,1,74.1,315.15,315.15,1,0,1.386294,5.753049,0,4.564348,5.804342,1,0,0,74.1,8.548937,1.386294,,0 +16,5,95,1,2,527077,1,5160.266,12.89596,0,10,1,20.88079,0,28.42825,0,0,49.30904,0,0,0,1,1,4,85,10.57626,1,74.1,315.15,315.15,1,0,1.386294,5.753049,0,4.564348,5.804342,1,0,0,74.1,8.548937,1.386294,3.898107,1 +16,5,95,1,3,527077,1,5160.266,13.89596,0,10,1,133.564,0,27.34948,0,193.4256,354.3391,1,0,0,1,1,5,85,10.57626,1,74.1,315.15,315.15,1,0,1.609438,5.753049,0,4.564348,5.804342,1,0,0,74.1,8.548937,1.609438,5.870255,1 +16,5,95,1,1,527078,1,5160.266,30.40109,1,10,1,8.040627,2.094795,0,0,0,10.13542,0,0,0,0,0,4,74.5,13.8,0,69,315.15,315.15,0,0,1.386294,5.753049,0,4.564348,5.804342,0,0,0,69,8.548937,1.386294,2.316036,1 +16,5,95,1,2,527078,1,5160.266,31.40109,1,10,1,11.38952,0,28.67122,0,496.2035,536.2642,1,0,0,0,1,4,74.5,13.8,0,69,315.15,315.15,0,0,1.386294,5.753049,0,4.564348,5.804342,0,0,0,69,8.548937,1.386294,6.284627,1 +16,5,95,1,3,527078,1,5160.266,32.4011,1,10,1,241.8685,0,28.42561,0,0,270.2941,0,0,0,6,1,5,74.5,13.8,0,69,315.15,315.15,0,0,1.609438,5.753049,0,4.564348,5.804342,0,0,0,69,8.548937,1.609438,5.599511,1 +11,5,0,1,1,527083,0,5990.271,53.71937,0,12,1,115.5311,129.052,29.92806,0,1062.992,1337.503,1,0,0,15,0,3,81.9,17.2,1,40.9,0,512.72,0,0,1.098612,6.23973,0,0,0,0,0,1,40.9,8.698059,1.098612,7.19856,1 +11,5,0,1,2,527083,0,5990.271,54.71937,0,12,1,24.6773,155.6264,0,0,0,180.3037,0,0,0,4,0,3,81.9,17.2,1,40.9,0,512.72,0,0,1.098612,6.23973,0,0,0,0,0,1,40.9,8.698059,1.098612,5.194643,1 +11,5,0,1,3,527083,0,5990.271,55.71937,0,12,1,138.0623,239.2388,33.10727,0,0,410.4083,0,0,0,12,0,3,81.9,17.2,1,40.9,0,512.72,0,0,1.098612,6.23973,0,0,0,0,0,1,40.9,8.698059,1.098612,6.017152,1 +11,5,0,1,1,527084,0,5990.271,53.84531,1,12,1,276.9784,173.0004,0,0,0,449.9789,0,0,0,14,0,3,81.4,24.1,1,44.3,0,512.72,0,0,1.098612,6.23973,0,0,0,0,1,0,44.3,8.698059,1.098612,6.1092,1 +11,5,0,1,2,527084,0,5990.271,54.84531,1,12,1,119.59,111.5034,0,0,0,231.0934,0,0,0,16,0,3,81.4,24.1,1,44.3,0,512.72,0,0,1.098612,6.23973,0,0,0,0,1,0,44.3,8.698059,1.098612,5.442822,1 +11,5,0,1,3,527084,0,5990.271,55.84531,1,12,1,125.0865,233.9239,32.24913,0,0,391.2595,0,0,0,14,0,3,81.4,24.1,1,44.3,0,512.72,0,0,1.098612,6.23973,0,0,0,0,1,0,44.3,8.698059,1.098612,5.969371,1 +11,5,0,1,1,527085,0,5990.271,14.32991,1,12,1,62.20906,53.96953,29.92806,0,0,146.1066,0,0,0,8,0,3,85.6,3.4,0,89.3,0,512.72,1,1,1.098612,6.23973,0,0,0,0,0,0,89.3,8.698059,1.098612,4.984337,1 +11,5,0,1,2,527085,0,5990.271,15.32991,1,12,1,33.40926,33.65604,0,0,0,67.0653,0,0,0,4,0,3,85.6,3.4,0,89.3,0,512.72,1,1,1.098612,6.23973,0,0,0,0,0,0,89.3,8.698059,1.098612,4.205667,1 +11,5,0,1,3,527085,0,5990.271,16.32991,1,12,1,71.28027,31.6263,27.34602,0,0,130.2526,0,0,0,10,0,3,85.6,3.4,0,89.3,0,512.72,1,1,1.098612,6.23973,0,0,0,0,0,0,89.3,8.698059,1.098612,4.869475,1 +13,5,0,1,1,527088,1,3327.189,17.26215,1,7,1,0,0,28.18679,0,0,28.18679,0,0,0,0,0,2,86.7,0,0,92,450,450,1,1,.6931472,6.109248,1,4.564348,6.160541,0,1,0,92,8.110184,.6931472,3.338853,1 +13,5,0,1,2,527088,1,3327.189,18.26215,1,7,1,0,0,0,0,0,0,0,0,0,0,0,2,86.7,0,0,92,450,450,0,0,.6931472,6.109248,1,4.564348,6.160541,0,1,0,92,8.110184,.6931472,,0 +13,5,0,1,3,527088,1,3327.189,19.26215,1,7,1,99.14236,2.415094,0,0,0,101.5575,0,0,0,1,3,2,86.7,0,0,92,450,450,0,0,.6931472,6.109248,1,4.564348,6.160541,0,1,0,92,8.110184,.6931472,4.620625,1 +13,5,0,1,1,527089,1,3327.189,49.9603,1,7,1,33.65587,28.06058,0,0,0,61.71645,0,0,0,4,0,2,80.3,24.1,0,52.3,450,450,0,0,.6931472,6.109248,1,4.564348,6.160541,0,1,0,52.3,8.110184,.6931472,4.12255,1 +13,5,0,1,2,527089,1,3327.189,50.9603,1,7,1,85.37968,22.00227,0,0,0,107.3819,0,0,0,7,0,2,80.3,24.1,0,52.3,450,450,0,0,.6931472,6.109248,1,4.564348,6.160541,0,1,0,52.3,8.110184,.6931472,4.676392,1 +13,5,0,1,3,527089,1,3327.189,51.9603,1,7,1,337.5643,100.4185,32.247,0,0,470.2299,0,0,0,11,3,2,80.3,24.1,0,52.3,450,450,0,0,.6931472,6.109248,1,4.564348,6.160541,0,1,0,52.3,8.110184,.6931472,6.153222,1 +11,5,0,0,1,527119,0,8663.343,26.45311,1,14,1,152.6185,43.22195,27.49127,0,560.9227,784.2544,1,0,0,6,1,4,84.6,17.2,0,81.8,0,911.56,0,0,1.386294,6.815157,0,0,0,1,0,0,81.8,9.066972,1.386294,6.664733,1 +11,5,0,0,2,527119,0,8663.343,27.45311,1,14,1,63.62379,43.83126,0,0,0,107.455,0,0,0,5,0,4,84.6,17.2,0,81.8,0,911.56,0,0,1.386294,6.815157,0,0,0,1,0,0,81.8,9.066972,1.386294,4.677073,1 +11,5,0,0,3,527119,0,8663.343,28.45311,1,14,1,97.54549,33.71561,0,0,0,131.2611,0,0,0,3,1,4,84.6,17.2,0,81.8,0,911.56,0,0,1.386294,6.815157,0,0,0,1,0,0,81.8,9.066972,1.386294,4.877189,1 +11,5,0,0,4,527119,0,8663.343,29.45311,1,14,1,54.29005,6.51101,29.61276,0,0,90.41382,0,0,0,2,1,4,84.6,17.2,0,81.8,0,911.56,0,0,1.386294,6.815157,0,0,0,1,0,0,81.8,9.066972,1.386294,4.504397,1 +11,5,0,0,5,527119,0,8663.343,30.45311,1,14,1,30.41522,18.76125,23.59862,0,616.263,689.0381,1,0,0,0,1,4,84.6,17.2,0,81.8,0,911.56,0,0,1.386294,6.815157,0,0,0,1,0,0,81.8,9.066972,1.386294,6.535296,1 +11,5,0,0,1,527120,0,8663.343,26.81725,0,16,1,126.6833,7.127182,5.680798,0,0,139.4913,0,0,0,5,0,4,85.1,0,0,73.9,0,911.56,0,0,1.386294,6.815157,0,0,0,1,0,0,73.9,9.066972,1.386294,4.938002,1 +11,5,0,0,2,527120,0,8663.343,27.81725,0,16,1,6.915629,0,0,0,0,6.915629,0,0,0,1,0,4,85.1,0,0,73.9,0,911.56,0,0,1.386294,6.815157,0,0,0,1,0,0,73.9,9.066972,1.386294,1.933784,1 +11,5,0,0,3,527120,0,8663.343,28.81725,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,85.1,0,0,73.9,0,911.56,0,0,1.386294,6.815157,0,0,0,1,0,0,73.9,9.066972,1.386294,,0 +11,5,0,0,4,527120,0,8663.343,29.81725,0,16,1,43.28018,4.605163,0,0,0,47.88535,0,0,0,2,0,4,85.1,0,0,73.9,0,911.56,0,0,1.386294,6.815157,0,0,0,1,0,0,73.9,9.066972,1.386294,3.868809,1 +11,5,0,0,5,527120,0,8663.343,30.81725,0,16,1,20.76125,2.352941,0,0,0,23.11419,0,0,0,2,0,4,85.1,0,0,73.9,0,911.56,0,0,1.386294,6.815157,0,0,0,1,0,0,73.9,9.066972,1.386294,3.140447,1 +11,5,0,0,1,527121,0,8663.343,2.861054,1,14,1,20.44888,8.309227,0,0,0,28.7581,0,0,0,2,0,4,77.40034,10.57626,0,66.7,0,911.56,1,1,1.386294,6.815157,0,0,0,1,0,0,66.7,9.066972,1.386294,3.35892,1 +11,5,0,0,2,527121,0,8663.343,3.861054,1,14,1,0,.9589673,0,0,0,.9589673,0,0,0,0,0,4,77.40034,10.57626,0,66.7,0,911.56,1,1,1.386294,6.815157,0,0,0,1,0,0,66.7,9.066972,1.386294,-.0418983,1 +11,5,0,0,3,527121,0,8663.343,4.861054,1,14,1,65.17139,3.829877,0,0,0,69.00127,0,0,0,5,0,4,77.40034,10.57626,0,66.7,0,911.56,1,1,1.386294,6.815157,0,0,0,1,0,0,66.7,9.066972,1.386294,4.234125,1 +11,5,0,0,4,527121,0,8663.343,5.861054,1,14,1,12.14882,5.307517,0,0,0,17.45634,0,0,0,1,0,4,77.40034,10.57626,0,66.7,0,911.56,1,1,1.386294,6.815157,0,0,0,1,0,0,66.7,9.066972,1.386294,2.859703,1 +11,5,0,0,5,527121,0,8663.343,6.861054,1,14,1,25.95156,11.00346,0,0,0,36.95502,0,0,0,2,0,4,77.40034,10.57626,0,66.7,0,911.56,1,1,1.386294,6.815157,0,0,0,1,0,0,66.7,9.066972,1.386294,3.609701,1 +13,5,0,1,1,527125,0,199.4135,19.53456,1,12,1,58.96806,11.94103,0,0,795.8428,866.7518,1,0,0,2,0,1,59.6,0,0,69.3,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,69.3,5.300383,0,6.764753,1 +13,5,0,1,2,527125,0,199.4135,20.53456,1,12,1,22.78942,3.19052,0,0,0,25.97995,0,0,0,2,0,2,59.6,0,0,69.3,150,150,0,0,.6931472,5.010635,1,4.564348,5.061929,0,0,0,69.3,5.300383,.6931472,3.257325,1 +13,5,0,1,3,527125,0,199.4135,21.53456,1,12,1,34.59775,0,0,0,0,34.59775,0,0,0,0,0,2,59.6,0,0,69.3,150,150,0,0,.6931472,5.010635,1,4.564348,5.061929,0,0,0,69.3,5.300383,.6931472,3.543789,1 +13,5,0,1,4,527125,0,199.4135,22.53456,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,59.6,0,0,69.3,150,150,0,0,.6931472,5.010635,1,4.564348,5.061929,0,0,0,69.3,5.300383,.6931472,,0 +13,5,0,1,5,527125,0,199.4135,23.53456,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,59.6,0,0,69.3,150,150,0,0,.6931472,5.010635,1,4.564348,5.061929,0,0,0,69.3,5.300383,.6931472,,0 +7,5,25,0,1,527131,0,5484.383,15.68515,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,88.3,10.3,0,79.5,459.15,459.15,1,0,.6931472,6.129377,0,3.258096,7.515671,0,0,0,79.5,8.609842,.6931472,,0 +7,5,25,0,1,527133,0,5484.383,38.89664,1,12,1,104.6269,0,0,0,866.6111,971.238,1,0,0,9,0,2,68.1,6.9,0,56.8,459.15,459.15,0,0,.6931472,6.129377,0,3.258096,7.515671,1,0,0,56.8,8.609842,.6931472,6.878572,1 +13,5,0,1,1,527139,1,7584.229,57.83984,0,16,1,49.22171,0,0,0,0,49.22171,0,0,0,1,0,2,78.2,27.6,0,56.8,300,309.6,0,0,.6931472,5.735281,1,4.564348,5.755076,1,0,0,56.8,8.933958,.6931472,3.896335,1 +13,5,0,1,2,527139,1,7584.229,58.83984,0,16,.6065574,57.04571,90.07178,0,0,6083.491,6230.608,2,0,0,3,0,2,78.2,27.6,0,56.8,300,309.6,0,0,.6931472,5.735281,1,4.564348,5.755076,1,0,0,56.8,8.933958,.6931472,8.737229,1 +13,5,0,1,1,527140,1,7584.229,53.19096,1,15,1,46.69752,0,0,0,0,46.69752,0,0,0,3,0,2,78.7,34.5,1,40.5,300,309.6,0,0,.6931472,5.735281,1,4.564348,5.755076,0,1,0,40.5,8.933958,.6931472,3.843691,1 +13,5,0,1,2,527140,1,7584.229,54.19096,1,15,1,25.68946,10.82735,0,0,0,36.51681,0,0,0,1,0,2,78.7,34.5,1,40.5,300,309.6,0,0,.6931472,5.735281,1,4.564348,5.755076,0,1,0,40.5,8.933958,.6931472,3.597773,1 +13,5,0,1,3,527140,1,7584.229,55.19096,1,15,1,100.1715,20.50086,0,0,0,120.6724,0,0,0,2,0,1,78.7,34.5,1,40.5,300,309.6,0,0,0,5.735281,1,4.564348,5.755076,0,1,0,40.5,8.933958,0,4.793079,1 +5,5,25,1,1,527171,0,3406.452,24.65708,0,9,1,0,0,0,0,0,0,0,0,0,0,0,2,66.5,3.4,0,87.5,283.9,321.6,0,0,.6931472,5.773309,0,3.258096,7.034916,0,0,0,87.5,8.13372,.6931472,,0 +5,5,25,1,2,527171,0,3406.452,25.65708,0,9,1,0,0,0,0,0,0,0,0,0,0,0,2,66.5,3.4,0,87.5,283.9,321.6,0,0,.6931472,5.773309,0,3.258096,7.034916,0,0,0,87.5,8.13372,.6931472,,0 +5,5,25,1,3,527171,0,3406.452,26.65708,0,9,1,32.81447,0,34.68237,0,0,67.49684,0,0,0,1,1,2,66.5,3.4,0,87.5,283.9,321.6,0,0,.6931472,5.773309,0,3.258096,7.034916,0,0,0,87.5,8.13372,.6931472,4.212081,1 +5,5,25,1,4,527171,0,3406.452,27.65708,0,9,1,0,.6800151,0,0,0,.6800151,0,0,0,0,0,2,66.5,3.4,0,87.5,283.9,321.6,0,0,.6931472,5.773309,0,3.258096,7.034916,0,0,0,87.5,8.13372,.6931472,-.3856403,1 +5,5,25,1,5,527171,0,3406.452,28.65708,0,9,1,0,0,0,0,0,0,0,0,0,0,0,2,66.5,3.4,0,87.5,283.9,321.6,0,0,.6931472,5.773309,0,3.258096,7.034916,0,0,0,87.5,8.13372,.6931472,,0 +5,5,25,1,1,527172,0,3406.452,19.98083,1,12,1,27.75025,19.36075,0,0,0,47.111,0,0,0,1,1,2,55.3,17.2,0,84.1,283.9,321.6,0,0,.6931472,5.773309,0,3.258096,7.034916,0,0,0,84.1,8.13372,.6931472,3.852507,1 +5,5,25,1,2,527172,0,3406.452,20.98083,1,12,1,14.45617,11.07389,0,0,0,25.53006,0,0,0,1,0,2,55.3,17.2,0,84.1,283.9,321.6,0,0,.6931472,5.773309,0,3.258096,7.034916,0,0,0,84.1,8.13372,.6931472,3.239856,1 +5,5,25,1,3,527172,0,3406.452,21.98083,1,12,1,12.4106,18.81363,0,0,0,31.22423,0,0,0,1,0,2,55.3,17.2,0,84.1,283.9,321.6,0,0,.6931472,5.773309,0,3.258096,7.034916,0,0,0,84.1,8.13372,.6931472,3.441195,1 +5,5,25,1,4,527172,0,3406.452,22.98083,1,12,1,13.22252,10.88024,0,0,0,24.10276,0,0,0,1,0,2,55.3,17.2,0,84.1,283.9,321.6,0,0,.6931472,5.773309,0,3.258096,7.034916,0,0,0,84.1,8.13372,.6931472,3.182326,1 +5,5,25,1,5,527172,0,3406.452,23.98083,1,12,1,18.86792,17.06347,0,0,0,35.93139,0,0,0,2,0,2,55.3,17.2,0,84.1,283.9,321.6,0,0,.6931472,5.773309,0,3.258096,7.034916,0,0,0,84.1,8.13372,.6931472,3.581611,1 +14,5,95,0,1,527196,0,6674.895,28.53936,0,16,1,0,0,0,0,0,0,0,0,0,0,0,1,77.40034,10.57626,.1442925,,788.3,0,0,0,0,0,0,4.564348,6.721172,1,0,0,70.68995,8.806258,0,,0 +14,5,95,0,2,527196,0,6674.895,29.53936,0,16,1,12.003,5.258815,0,0,0,17.26182,0,0,0,2,0,1,77.40034,10.57626,.1442925,,788.3,0,0,0,0,0,0,4.564348,6.721172,1,0,0,70.68995,8.806258,0,2.848497,1 +14,5,95,0,3,527196,0,6674.895,30.53936,0,16,1,26.7253,0,0,0,0,26.7253,0,0,0,2,0,1,77.40034,10.57626,.1442925,,788.3,0,0,0,0,0,0,4.564348,6.721172,1,0,0,70.68995,8.806258,0,3.285611,1 +11,5,0,1,1,527211,0,7333.845,31.05544,1,18,1,0,0,0,0,0,0,0,0,0,0,0,1,42,0,0,78.4,0,18,0,0,0,2.890372,0,0,0,0,0,0,78.4,8.900392,0,,0 +11,5,0,1,2,527211,0,7333.845,32.05544,1,18,1,55.72519,1.125954,26.71756,0,0,83.5687,0,0,0,3,0,1,42,0,0,78.4,0,18,0,0,0,2.890372,0,0,0,0,0,0,78.4,8.900392,0,4.425669,1 +11,5,0,1,3,527211,0,7333.845,33.05544,1,18,1,64.98258,26.95122,0,196.8641,0,91.9338,0,0,16,3,0,1,42,0,0,78.4,0,18,0,0,0,2.890372,0,0,0,0,0,0,78.4,8.900392,0,4.521069,1 +13,5,0,1,1,527238,0,6674.895,29.34428,0,14,1,0,0,0,0,0,0,0,0,0,0,0,1,72.7,6.9,0,84.1,150,162.24,0,0,0,5.089077,1,4.564348,5.061929,0,0,0,84.1,8.806258,0,,0 +13,5,0,1,2,527238,0,6674.895,30.34428,0,14,1,0,0,0,0,0,0,0,0,0,0,0,1,72.7,6.9,0,84.1,150,162.24,0,0,0,5.089077,1,4.564348,5.061929,0,0,0,84.1,8.806258,0,,0 +13,5,0,1,3,527238,0,6674.895,31.34428,0,14,1,60.55363,0,0,0,0,60.55363,0,0,0,4,0,1,72.7,6.9,0,84.1,150,162.24,0,0,0,5.089077,1,4.564348,5.061929,0,0,0,84.1,8.806258,0,4.103529,1 +15,5,95,1,1,527280,1,7000.512,8.396988,0,14,1,0,0,0,0,0,0,0,0,0,0,0,3,78.3,10.57626,0,85.2,473.7,473.7,1,0,1.098612,6.160574,0,4.564348,6.211867,1,0,0,85.2,8.853882,1.098612,,0 +15,5,95,1,2,527280,1,7000.512,9.396988,0,14,1,11.81545,0,0,0,0,11.81545,0,0,0,1,0,4,78.3,10.57626,0,85.2,473.7,473.7,1,0,1.386294,6.160574,0,4.564348,6.211867,1,0,0,85.2,8.853882,1.386294,2.469408,1 +15,5,95,1,3,527280,1,7000.512,10.39699,0,14,1,2.368065,0,0,0,0,2.368065,0,0,0,1,0,4,78.3,10.57626,0,85.2,473.7,473.7,1,0,1.386294,6.160574,0,4.564348,6.211867,1,0,0,85.2,8.853882,1.386294,.8620731,1 +15,5,95,1,1,527281,1,7000.512,33.16906,1,14,1,0,0,0,0,288.2451,288.2451,1,1,0,0,0,3,61.2,20.7,0,64.8,473.7,473.7,0,0,1.098612,6.160574,0,4.564348,6.211867,0,1,0,64.8,8.853882,1.098612,5.663811,1 +15,5,95,1,2,527281,1,7000.512,34.16906,1,14,1,32.82071,1.099025,0,0,0,33.91973,0,0,0,1,0,4,61.2,20.7,0,64.8,473.7,473.7,0,0,1.386294,6.160574,0,4.564348,6.211867,0,1,0,64.8,8.853882,1.386294,3.523997,1 +15,5,95,1,3,527281,1,7000.512,35.16906,1,14,1,172.8687,0,0,0,1452.3,1625.169,1,0,0,5,0,4,61.2,20.7,0,64.8,473.7,473.7,0,0,1.386294,6.160574,0,4.564348,6.211867,0,1,0,64.8,8.853882,1.386294,7.393367,1 +15,5,95,1,1,527282,1,7000.512,3.485284,1,14,1,0,0,0,0,0,0,0,0,0,0,0,3,77.40034,10.57626,0,70.4,473.7,473.7,1,1,1.098612,6.160574,0,4.564348,6.211867,0,0,0,70.4,8.853882,1.098612,,0 +15,5,95,1,2,527282,1,7000.512,4.485284,1,14,1,26.44411,2.363091,0,0,0,28.8072,0,0,0,2,0,4,77.40034,10.57626,0,70.4,473.7,473.7,1,1,1.386294,6.160574,0,4.564348,6.211867,0,0,0,70.4,8.853882,1.386294,3.360626,1 +15,5,95,1,3,527282,1,7000.512,5.485284,1,14,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,0,70.4,473.7,473.7,1,1,1.386294,6.160574,0,4.564348,6.211867,0,0,0,70.4,8.853882,1.386294,,0 +11,5,0,1,1,527307,1,602.3461,26.21218,1,12,1,29.58375,3.840436,0,0,0,33.42418,0,0,0,1,0,5,72.9,6.9,0,58.3,0,0,0,0,1.609438,0,0,0,0,1,0,0,58.3,6.402491,1.609438,3.50928,1 +11,5,0,1,2,527307,1,602.3461,27.21218,1,12,1,0,0,0,0,888.7104,888.7104,2,0,0,0,0,5,72.9,6.9,0,58.3,0,0,0,0,1.609438,0,0,0,0,1,0,0,58.3,6.402491,1.609438,6.789772,1 +11,5,0,1,3,527307,1,602.3461,28.21218,1,12,1,10.51746,0,24.40051,0,0,34.91796,0,0,0,0,1,6,72.9,6.9,0,58.3,0,0,0,0,1.791759,0,0,0,0,1,0,0,58.3,6.402491,1.791759,3.553001,1 +11,5,0,1,4,527307,1,602.3461,29.21218,1,12,1,7.555724,0,0,0,0,7.555724,0,0,0,0,0,6,72.9,6.9,0,58.3,0,0,0,0,1.791759,0,0,0,0,1,0,0,58.3,6.402491,1.791759,2.022305,1 +11,5,0,1,5,527307,1,602.3461,30.21218,1,12,1,20.58319,0,0,0,0,20.58319,0,0,0,0,0,6,72.9,6.9,0,58.3,0,0,0,0,1.791759,0,0,0,0,1,0,0,58.3,6.402491,1.791759,3.024475,1 +11,5,0,1,1,527308,1,602.3461,30.10267,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,81.9,3.4,0,65.9,0,0,0,0,1.609438,0,0,0,0,1,0,0,65.9,6.402491,1.609438,,0 +11,5,0,1,2,527308,1,602.3461,31.10267,0,12,1,9.178522,0,34.41946,0,0,43.59798,0,0,0,0,1,5,81.9,3.4,0,65.9,0,0,0,0,1.609438,0,0,0,0,1,0,0,65.9,6.402491,1.609438,3.775011,1 +11,5,0,1,3,527308,1,602.3461,32.10267,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,81.9,3.4,0,65.9,0,0,0,0,1.791759,0,0,0,0,1,0,0,65.9,6.402491,1.791759,,0 +11,5,0,1,4,527308,1,602.3461,33.10267,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,81.9,3.4,0,65.9,0,0,0,0,1.791759,0,0,0,0,1,0,0,65.9,6.402491,1.791759,,0 +11,5,0,1,5,527308,1,602.3461,34.10267,0,12,1,8.576329,0,23.67067,0,0,32.247,0,0,0,0,1,6,81.9,3.4,0,65.9,0,0,0,0,1.791759,0,0,0,0,1,0,0,65.9,6.402491,1.791759,3.473425,1 +11,5,0,1,1,527309,1,602.3461,3.838467,0,12,1,17.3439,1.650149,0,0,0,18.99405,0,0,0,2,0,5,77.40034,10.57626,0,70.4,0,0,1,0,1.609438,0,0,0,0,1,0,0,70.4,6.402491,1.609438,2.944126,1 +11,5,0,1,2,527309,1,602.3461,4.838467,0,12,1,9.06379,0,0,0,0,9.06379,0,0,0,0,0,5,77.40034,10.57626,0,70.4,0,0,1,0,1.609438,0,0,0,0,1,0,0,70.4,6.402491,1.609438,2.204287,1 +11,5,0,1,3,527309,1,602.3461,5.838467,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,77.40034,10.57626,0,70.4,0,0,1,0,1.791759,0,0,0,0,1,0,0,70.4,6.402491,1.791759,,0 +11,5,0,1,4,527309,1,602.3461,6.838467,0,12,1,7.555724,0,0,0,0,7.555724,0,0,0,0,0,6,77.40034,10.57626,0,70.4,0,0,1,0,1.791759,0,0,0,0,1,0,0,70.4,6.402491,1.791759,2.022305,1 +11,5,0,1,5,527309,1,602.3461,7.838467,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,77.40034,10.57626,0,70.4,0,0,1,0,1.791759,0,0,0,0,1,0,0,70.4,6.402491,1.791759,,0 +11,5,0,1,1,527310,1,602.3461,5.927447,0,12,1,14.12289,2.368682,0,0,0,16.49158,0,0,0,0,0,5,88.3,10.57626,0,74.1,0,0,1,0,1.609438,0,0,0,0,1,0,0,74.1,6.402491,1.609438,2.80285,1 +11,5,0,1,2,527310,1,602.3461,6.927447,0,12,1,118.8619,0,0,0,0,118.8619,0,0,0,1,0,5,88.3,10.57626,0,74.1,0,0,1,0,1.609438,0,0,0,0,1,0,0,74.1,6.402491,1.609438,4.777962,1 +11,5,0,1,3,527310,1,602.3461,7.927447,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,88.3,10.57626,0,74.1,0,0,1,0,1.791759,0,0,0,0,1,0,0,74.1,6.402491,1.791759,,0 +11,5,0,1,4,527310,1,602.3461,8.927447,0,12,1,11.33358,0,0,0,0,11.33358,0,0,0,0,0,6,88.3,10.57626,0,74.1,0,0,1,0,1.791759,0,0,0,0,1,0,0,74.1,6.402491,1.791759,2.42777,1 +11,5,0,1,5,527310,1,602.3461,9.927447,0,12,1,11.57804,0,0,0,0,11.57804,0,0,0,1,0,6,88.3,10.57626,0,74.1,0,0,1,0,1.791759,0,0,0,0,1,0,0,74.1,6.402491,1.791759,2.449111,1 +11,5,0,1,1,527311,1,1029.186,55.12115,1,11,1,57.13077,3.432078,54.13457,0,0,114.6974,0,0,0,1,2,2,75,10.3,0,71.6,0,0,0,0,.6931472,0,0,0,0,0,1,0,71.6,6.937495,.6931472,4.742298,1 +11,5,0,1,2,527311,1,1029.186,56.12115,1,11,1,10.63022,18.51177,0,0,0,29.14199,0,0,0,2,0,2,75,10.3,0,71.6,0,0,0,0,.6931472,0,0,0,0,0,1,0,71.6,6.937495,.6931472,3.37218,1 +11,5,0,1,3,527311,1,1029.186,57.12115,1,11,1,80.27682,21.61938,0,0,0,101.8962,0,0,0,6,0,2,75,10.3,0,71.6,0,0,0,0,.6931472,0,0,0,0,0,1,0,71.6,6.937495,.6931472,4.623955,1 +11,5,0,1,1,527313,1,1029.186,17.67556,1,11,1,0,0,0,0,0,0,0,0,0,0,0,2,85.6,0,0,81,0,0,1,1,.6931472,0,0,0,0,0,0,0,81,6.937495,.6931472,,0 +11,5,0,1,2,527313,1,1029.186,18.67556,1,11,1,48.59529,0,29.4609,0,0,78.05619,0,0,0,3,0,2,85.6,0,0,81,0,0,0,0,.6931472,0,0,0,0,0,0,0,81,6.937495,.6931472,4.357429,1 +11,5,0,1,3,527313,1,1029.186,19.67556,1,11,1,25.08651,2.83737,.6920415,0,0,28.61592,0,0,0,3,0,2,85.6,0,0,81,0,0,0,0,.6931472,0,0,0,0,0,0,0,81,6.937495,.6931472,3.353963,1 +15,5,95,1,1,527315,0,7402.458,13.61259,1,10,1,0,0,0,0,0,0,0,0,0,0,0,5,88.3,10.57626,0,55.6,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,55.6,8.909702,1.609438,,0 +15,5,95,1,2,527315,0,7402.458,14.61259,1,10,1,0,0,0,0,0,0,0,0,0,0,0,5,88.3,10.57626,0,55.6,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,55.6,8.909702,1.609438,,0 +15,5,95,1,1,527316,0,7402.458,16.79398,0,10,1,0,0,0,0,0,0,0,0,0,0,0,5,91.5,0,0,95,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,95,8.909702,1.609438,,0 +15,5,95,1,2,527316,0,7402.458,17.79398,0,10,1,10.20992,0,0,0,0,10.20992,0,0,0,0,0,5,91.5,0,0,95,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,95,8.909702,1.609438,2.32336,1 +15,5,95,1,1,527317,0,7402.458,18.91034,0,7,1,0,0,0,0,0,0,0,0,0,0,0,5,84.6,10.3,1,86.4,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,86.4,8.909702,1.609438,,0 +15,5,95,1,2,527317,0,7402.458,19.91034,0,7,1,29.77099,0,0,0,0,29.77099,0,0,0,1,0,5,84.6,10.3,1,86.4,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,86.4,8.909702,1.609438,3.393534,1 +15,5,95,1,1,527318,0,7402.458,40.3833,0,11,1,10.20842,0,0,0,0,10.20842,0,0,0,0,0,5,71.3,6.9,1,63.6,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,63.6,8.909702,1.609438,2.323213,1 +15,5,95,1,2,527318,0,7402.458,41.3833,0,11,1,0,0,0,0,0,0,0,0,0,0,0,5,71.3,6.9,1,63.6,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,63.6,8.909702,1.609438,,0 +15,5,95,1,1,527320,0,7402.458,38.7488,1,10,1,24.67035,0,0,0,0,24.67035,0,0,0,0,0,5,58,27.6,1,67,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,67,8.909702,1.609438,3.205602,1 +15,5,95,1,2,527320,0,7402.458,39.7488,1,10,1,27.48092,0,0,0,0,27.48092,0,0,0,0,0,5,58,27.6,1,67,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,67,8.909702,1.609438,3.313492,1 +11,5,0,1,1,527325,0,136.7128,38.41478,1,11,1,8.081667,0,0,0,0,8.081667,0,0,0,0,0,1,39.4,17.2,0,31.8,0,0,0,0,0,0,0,0,0,1,0,0,31.8,4.92517,0,2.089598,1 +11,5,0,1,2,527325,0,136.7128,39.41478,1,11,1,19.84733,0,0,0,0,19.84733,0,0,0,2,0,1,39.4,17.2,0,31.8,0,0,0,0,0,0,0,0,0,1,0,0,31.8,4.92517,0,2.988069,1 +11,5,0,1,3,527325,0,136.7128,40.41478,1,11,1,0,0,0,0,0,0,0,0,0,0,0,1,39.4,17.2,0,31.8,0,0,0,0,0,0,0,0,0,1,0,0,31.8,4.92517,0,,0 +10,5,50,0,1,527356,0,3452.125,24.15879,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,78.7,3.4,0,81.8,600,600,0,0,.6931472,6.39693,0,3.931826,7.090077,1,0,0,81.8,8.147035,.6931472,,0 +10,5,50,0,2,527356,0,3452.125,25.15879,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,78.7,3.4,0,81.8,600,600,0,0,.6931472,6.39693,0,3.931826,7.090077,1,0,0,81.8,8.147035,.6931472,,0 +10,5,50,0,3,527356,0,3452.125,26.15879,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,78.7,3.4,0,81.8,600,600,0,0,.6931472,6.39693,0,3.931826,7.090077,1,0,0,81.8,8.147035,.6931472,,0 +10,5,50,0,1,527357,0,3452.125,5.620808,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,73.3,10.57626,.1442925,85.2,600,600,1,0,.6931472,6.39693,0,3.931826,7.090077,0,1,0,85.2,8.147035,.6931472,,0 +10,5,50,0,2,527357,0,3452.125,6.620808,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,73.3,10.57626,.1442925,85.2,600,600,1,0,.6931472,6.39693,0,3.931826,7.090077,0,1,0,85.2,8.147035,.6931472,,0 +10,5,50,0,3,527357,0,3452.125,7.620808,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,73.3,10.57626,.1442925,85.2,600,600,1,0,.6931472,6.39693,0,3.931826,7.090077,0,1,0,85.2,8.147035,.6931472,,0 +11,5,0,1,1,527392,1,4545.977,49.71937,1,17,1,24.93766,34.27431,36.30923,0,0,95.52119,0,0,0,4,0,3,83,37.9,1,48.9,0,124.32,0,0,1.098612,4.822859,0,0,0,1,0,0,48.9,8.422217,1.098612,4.559348,1 +11,5,0,1,2,527392,1,4545.977,50.71937,1,17,1,88.05901,29.23006,20.13831,0,0,137.4274,0,0,0,7,0,3,83,37.9,1,48.9,0,124.32,0,0,1.098612,4.822859,0,0,0,1,0,0,48.9,8.422217,1.098612,4.923096,1 +11,5,0,1,3,527392,1,4545.977,51.71937,1,17,1,157.6386,13.18239,52.81422,0,1048.244,1271.879,1,0,0,7,0,3,83,37.9,1,48.9,0,124.32,0,0,1.098612,4.822859,0,0,0,1,0,0,48.9,8.422217,1.098612,7.148251,1 +11,5,0,1,4,527392,1,4545.977,52.71937,1,17,1,29.2331,14.2369,0,0,0,43.47001,0,0,0,2,0,3,83,37.9,1,48.9,0,124.32,0,0,1.098612,4.822859,0,0,0,1,0,0,48.9,8.422217,1.098612,3.772071,1 +11,5,0,1,5,527392,1,4545.977,53.71937,1,17,1,94.46367,32.76471,33.10727,0,0,160.3356,0,0,0,2,2,3,83,37.9,1,48.9,0,124.32,0,0,1.098612,4.822859,0,0,0,1,0,0,48.9,8.422217,1.098612,5.07727,1 +11,5,0,1,1,527393,1,4545.977,6.579055,0,17,1,7.481297,5.236908,0,0,0,12.7182,0,0,0,1,0,3,98.3,10.57626,0,85.2,0,124.32,1,0,1.098612,4.822859,0,0,0,0,0,0,85.2,8.422217,1.098612,2.543034,1 +11,5,0,1,2,527393,1,4545.977,7.579055,0,17,1,20.74689,0,0,0,586.9064,607.6533,1,0,0,2,0,3,98.3,10.57626,0,85.2,0,124.32,1,0,1.098612,4.822859,0,0,0,0,0,0,85.2,8.422217,1.098612,6.409605,1 +11,5,0,1,3,527393,1,4545.977,8.579056,0,17,1,0,0,0,0,0,0,0,0,0,0,0,3,98.3,10.57626,0,85.2,0,124.32,1,0,1.098612,4.822859,0,0,0,0,0,0,85.2,8.422217,1.098612,,0 +11,5,0,1,4,527393,1,4545.977,9.579056,0,17,1,7.593014,0,0,0,0,7.593014,0,0,0,1,0,3,98.3,10.57626,0,85.2,0,124.32,1,0,1.098612,4.822859,0,0,0,0,0,0,85.2,8.422217,1.098612,2.027229,1 +11,5,0,1,5,527393,1,4545.977,10.57906,0,17,1,41.86851,0,0,0,0,41.86851,0,0,0,0,0,3,98.3,10.57626,0,85.2,0,124.32,1,0,1.098612,4.822859,0,0,0,0,0,0,85.2,8.422217,1.098612,3.734534,1 +11,5,0,1,1,527394,1,4545.977,14.68857,1,17,1,5.985037,0,0,0,0,5.985037,0,0,0,1,0,3,67.6,10.3,0,85.2,0,124.32,1,1,1.098612,4.822859,0,0,0,0,0,0,85.2,8.422217,1.098612,1.789263,1 +11,5,0,1,2,527394,1,4545.977,15.68857,1,17,1,6.915629,0,0,0,0,6.915629,0,0,0,1,0,3,67.6,10.3,0,85.2,0,124.32,1,1,1.098612,4.822859,0,0,0,0,0,0,85.2,8.422217,1.098612,1.933784,1 +11,5,0,1,3,527394,1,4545.977,16.68857,1,17,1,6.771054,0,0,0,0,6.771054,0,0,0,1,0,3,67.6,10.3,0,85.2,0,124.32,1,1,1.098612,4.822859,0,0,0,0,0,0,85.2,8.422217,1.098612,1.912657,1 +11,5,0,1,4,527394,1,4545.977,17.68857,1,17,1,66.05923,0,0,0,0,66.05923,0,0,0,1,0,3,67.6,10.3,0,85.2,0,124.32,1,1,1.098612,4.822859,0,0,0,0,0,0,85.2,8.422217,1.098612,4.190552,1 +11,5,0,1,5,527394,1,4545.977,18.68857,1,17,1,0,0,0,0,0,0,0,0,0,0,0,3,67.6,10.3,0,85.2,0,124.32,0,0,1.098612,4.822859,0,0,0,0,0,0,85.2,8.422217,1.098612,,0 +16,5,95,1,1,527442,0,10665.13,28.55031,1,16,1,0,0,0,0,0,0,0,0,0,0,0,2,72.3,20.7,1,36.4,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,36.4,9.274829,.6931472,,0 +16,5,95,1,2,527442,0,10665.13,29.55031,1,16,1,0,0,0,0,0,0,0,0,0,0,0,2,72.3,20.7,1,36.4,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,36.4,9.274829,.6931472,,0 +16,5,95,1,3,527442,0,10665.13,30.55031,1,16,1,134.8199,56.76844,0,0,0,191.5883,0,0,0,26,0,2,72.3,20.7,1,36.4,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,36.4,9.274829,.6931472,5.255349,1 +16,5,95,1,1,527443,0,10665.13,31.21697,0,16,1,6.310475,5.763567,0,0,0,12.07404,0,0,0,1,0,2,79.8,13.8,0,73.9,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,73.9,9.274829,.6931472,2.491058,1 +16,5,95,1,2,527443,0,10665.13,32.21698,0,16,1,0,0,0,0,0,0,0,0,0,0,0,2,79.8,13.8,0,73.9,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,73.9,9.274829,.6931472,,0 +16,5,95,1,3,527443,0,10665.13,33.21698,0,16,1,0,0,0,0,0,0,0,0,0,0,0,2,79.8,13.8,0,73.9,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,73.9,9.274829,.6931472,,0 +18,5,25,0,1,527452,0,2046.595,49.54141,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,77.7,10.3,0,62.5,570.86,570.86,0,0,0,6.347144,0,3.258096,7.733438,1,0,0,62.5,7.624421,0,,0 +18,5,25,0,2,527452,0,2046.595,50.54141,1,12,1,7.555724,5.761239,0,0,0,13.31696,0,0,0,1,0,1,77.7,10.3,0,62.5,570.86,570.86,0,0,0,6.347144,0,3.258096,7.733438,1,0,0,62.5,7.624421,0,2.589039,1 +18,5,25,0,3,527452,0,2046.595,51.54141,1,12,1,120.0686,8.161235,0,0,0,128.2298,0,0,0,3,0,1,77.7,10.3,0,62.5,570.86,570.86,0,0,0,6.347144,0,3.258096,7.733438,1,0,0,62.5,7.624421,0,4.853824,1 +5,5,25,0,1,527467,0,5640.553,32.60506,0,13,1,12.62095,0,42.06984,0,0,54.69079,0,0,0,0,1,4,91.5,6.9,0,85.2,172.49,226,0,0,1.386294,5.420535,0,3.258096,6.536633,0,0,0,85.2,8.637915,1.386294,4.001695,1 +5,5,25,0,2,527467,0,5640.553,33.60506,0,13,1,4.533434,6.120136,0,0,0,10.65357,0,0,0,1,0,4,91.5,6.9,0,85.2,172.49,226,0,0,1.386294,5.420535,0,3.258096,6.536633,0,0,0,85.2,8.637915,1.386294,2.365895,1 +5,5,25,0,3,527467,0,5640.553,34.60506,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,91.5,6.9,0,85.2,172.49,226,0,0,1.386294,5.420535,0,3.258096,6.536633,0,0,0,85.2,8.637915,1.386294,,0 +5,5,25,0,1,527468,0,5640.553,28.1232,1,9,1,0,0,0,0,0,0,0,0,0,0,0,4,80.3,3.4,0,63.6,172.49,226,0,0,1.386294,5.420535,0,3.258096,6.536633,0,0,0,63.6,8.637915,1.386294,,0 +5,5,25,0,2,527468,0,5640.553,29.1232,1,9,1,5.666792,0,0,0,0,5.666792,0,0,0,1,0,4,80.3,3.4,0,63.6,172.49,226,0,0,1.386294,5.420535,0,3.258096,6.536633,0,0,0,63.6,8.637915,1.386294,1.734623,1 +5,5,25,0,3,527468,0,5640.553,30.1232,1,9,1,0,0,0,0,0,0,0,0,0,0,0,4,80.3,3.4,0,63.6,172.49,226,0,0,1.386294,5.420535,0,3.258096,6.536633,0,0,0,63.6,8.637915,1.386294,,0 +5,5,25,0,1,527469,0,5640.553,10.09172,0,9,1,0,0,0,0,0,0,0,0,0,0,0,4,96.7,10.57626,.1442925,96.3,172.49,226,1,0,1.386294,5.420535,0,3.258096,6.536633,0,0,0,96.3,8.637915,1.386294,,0 +5,5,25,0,2,527469,0,5640.553,11.09172,0,9,1,0,0,0,0,0,0,0,0,0,0,0,4,96.7,10.57626,.1442925,96.3,172.49,226,1,0,1.386294,5.420535,0,3.258096,6.536633,0,0,0,96.3,8.637915,1.386294,,0 +5,5,25,0,3,527469,0,5640.553,12.09172,0,9,1,0,0,0,0,0,0,0,0,0,0,0,4,96.7,10.57626,.1442925,96.3,172.49,226,1,0,1.386294,5.420535,0,3.258096,6.536633,0,0,0,96.3,8.637915,1.386294,,0 +5,5,25,0,1,527470,0,5640.553,7.359343,1,9,1,0,0,0,0,0,0,0,0,0,0,0,4,86.7,10.57626,.1442925,74.1,172.49,226,1,1,1.386294,5.420535,0,3.258096,6.536633,0,0,0,74.1,8.637915,1.386294,,0 +5,5,25,0,2,527470,0,5640.553,8.359343,1,9,1,0,0,0,0,0,0,0,0,0,0,0,4,86.7,10.57626,.1442925,74.1,172.49,226,1,1,1.386294,5.420535,0,3.258096,6.536633,0,0,0,74.1,8.637915,1.386294,,0 +5,5,25,0,3,527470,0,5640.553,9.359343,1,9,1,0,0,0,0,0,0,0,0,0,0,0,4,86.7,10.57626,.1442925,74.1,172.49,226,1,1,1.386294,5.420535,0,3.258096,6.536633,0,0,0,74.1,8.637915,1.386294,,0 +13,5,0,0,1,527540,1,5890.323,30.16838,0,12,1,47.62141,0,0,0,0,47.62141,0,0,0,0,0,4,86.2,6.9,0,64.8,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,64.8,8.681236,1.386294,3.863282,1 +13,5,0,0,2,527540,1,5890.323,31.16838,0,12,1,31.6659,0,0,0,517.2097,548.8756,1,0,0,0,0,4,86.2,6.9,0,64.8,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,64.8,8.681236,1.386294,6.307872,1 +13,5,0,0,3,527540,1,5890.323,32.16838,0,12,1,17.24863,0,0,0,0,17.24863,0,0,0,1,0,4,86.2,6.9,0,64.8,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,64.8,8.681236,1.386294,2.847733,1 +13,5,0,0,4,527540,1,5890.323,33.16838,0,12,1,52.13449,23.10162,.6233472,0,4577.635,4653.495,2,0,0,6,0,4,86.2,6.9,0,64.8,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,64.8,8.681236,1.386294,8.445374,1 +13,5,0,0,5,527540,1,5890.323,34.16838,0,12,1,143.3962,3.667238,0,0,1972.213,2119.276,1,0,0,3,0,4,86.2,6.9,0,64.8,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,64.8,8.681236,1.386294,7.65883,1 +13,5,0,0,1,527541,1,5890.323,6.444901,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,85,10.57626,0,77.8,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,77.8,8.681236,1.386294,,0 +13,5,0,0,2,527541,1,5890.323,7.444901,1,12,1,24.41487,0,0,0,0,24.41487,0,0,0,0,0,4,85,10.57626,0,77.8,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,77.8,8.681236,1.386294,3.195192,1 +13,5,0,0,3,527541,1,5890.323,8.444901,1,12,1,7.993269,0,0,0,0,7.993269,0,0,0,0,0,4,85,10.57626,0,77.8,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,77.8,8.681236,1.386294,2.0786,1 +13,5,0,0,4,527541,1,5890.323,9.444901,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,85,10.57626,0,77.8,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,77.8,8.681236,1.386294,,0 +13,5,0,0,5,527541,1,5890.323,10.4449,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,85,10.57626,0,77.8,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,77.8,8.681236,1.386294,,0 +13,5,0,0,1,527542,1,5890.323,31.92334,1,12,1,24.28147,9.132805,0,0,0,33.41427,0,0,0,1,0,4,66.5,6.9,0,64.8,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,64.8,8.681236,1.386294,3.508983,1 +13,5,0,0,2,527542,1,5890.323,32.92334,1,12,1,11.47315,0,0,0,1408.444,1419.917,1,0,0,2,0,4,66.5,6.9,0,64.8,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,64.8,8.681236,1.386294,7.258354,1 +13,5,0,0,3,527542,1,5890.323,33.92334,1,12,1,8.413967,0,0,0,0,8.413967,0,0,0,0,0,4,66.5,6.9,0,64.8,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,64.8,8.681236,1.386294,2.129893,1 +13,5,0,0,4,527542,1,5890.323,34.92334,1,12,1,20.02267,0,0,0,0,20.02267,0,0,0,3,0,4,66.5,6.9,0,64.8,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,64.8,8.681236,1.386294,2.996865,1 +13,5,0,0,5,527542,1,5890.323,35.92334,1,12,1,96.05489,0,0,0,4772.556,4868.611,1,0,0,2,0,4,66.5,6.9,0,64.8,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,64.8,8.681236,1.386294,8.490564,1 +13,5,0,0,1,527543,1,5890.323,10.12183,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,78.3,10.57626,0,88.9,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,88.9,8.681236,1.386294,,0 +13,5,0,0,2,527543,1,5890.323,11.12183,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,78.3,10.57626,0,88.9,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,88.9,8.681236,1.386294,,0 +13,5,0,0,3,527543,1,5890.323,12.12183,0,12,1,41.64914,0,0,0,0,41.64914,0,0,0,2,0,4,78.3,10.57626,0,88.9,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,88.9,8.681236,1.386294,3.729281,1 +13,5,0,0,4,527543,1,5890.323,13.12183,0,12,1,7.555724,0,0,0,0,7.555724,0,0,0,1,0,4,78.3,10.57626,0,88.9,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,88.9,8.681236,1.386294,2.022305,1 +13,5,0,0,5,527543,1,5890.323,14.12183,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,78.3,10.57626,0,88.9,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,88.9,8.681236,1.386294,,0 +14,5,95,0,1,527550,1,3455.709,26.55168,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,3.4,.1442925,72.7,325,325,0,0,1.386294,5.783825,0,4.564348,5.835118,1,0,0,72.7,8.148072,1.386294,,0 +14,5,95,0,2,527550,1,3455.709,27.55168,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,3.4,.1442925,72.7,325,325,0,0,1.386294,5.783825,0,4.564348,5.835118,1,0,0,72.7,8.148072,1.386294,,0 +14,5,95,0,3,527550,1,3455.709,28.55168,0,12,1,13.84083,0,0,0,0,13.84083,0,0,0,0,0,5,77.40034,3.4,.1442925,72.7,325,325,0,0,1.609438,5.783825,0,4.564348,5.835118,1,0,0,72.7,8.148072,1.609438,2.627623,1 +14,5,95,0,1,527551,1,3455.709,26.16564,1,14,1,49.14515,0,0,0,0,49.14515,0,0,0,0,0,4,85.1,6.9,0,76.1,325,325,0,0,1.386294,5.783825,0,4.564348,5.835118,1,0,0,76.1,8.148072,1.386294,3.894778,1 +14,5,95,0,2,527551,1,3455.709,27.16564,1,14,1,0,2.566439,0,0,1035.307,1037.874,1,0,0,0,0,4,85.1,6.9,0,76.1,325,325,0,0,1.386294,5.783825,0,4.564348,5.835118,1,0,0,76.1,8.148072,1.386294,6.94493,1 +14,5,95,0,3,527551,1,3455.709,28.16564,1,14,1,0,0,0,0,0,0,0,0,0,0,0,5,85.1,6.9,0,76.1,325,325,0,0,1.609438,5.783825,0,4.564348,5.835118,1,0,0,76.1,8.148072,1.609438,,0 +14,5,95,0,1,527552,1,3455.709,6.603696,1,14,1,0,0,0,0,0,0,0,0,0,0,0,4,85,10.57626,.1442925,85.2,325,325,1,1,1.386294,5.783825,0,4.564348,5.835118,0,0,0,85.2,8.148072,1.386294,,0 +14,5,95,0,2,527552,1,3455.709,7.603696,1,14,1,18.60289,7.285497,0,0,0,25.88838,0,0,0,4,0,4,85,10.57626,.1442925,85.2,325,325,1,1,1.386294,5.783825,0,4.564348,5.835118,0,0,0,85.2,8.148072,1.386294,3.253794,1 +14,5,95,0,3,527552,1,3455.709,8.603696,1,14,1,0,0,0,0,0,0,0,0,0,0,0,5,85,10.57626,.1442925,85.2,325,325,1,1,1.609438,5.783825,0,4.564348,5.835118,0,0,0,85.2,8.148072,1.609438,,0 +11,5,0,0,1,527557,0,6674.895,3.928816,0,12,1,30.46974,15.59458,0,0,584.6382,630.7025,1,0,0,6,0,3,77.40034,10.57626,0,88.9,0,496.2,1,0,1.098612,6.206979,0,0,0,0,0,0,88.9,8.806258,1.098612,6.446834,1 +11,5,0,0,2,527557,0,6674.895,4.928816,0,12,1,25.81625,6.305998,0,0,0,32.12225,0,0,0,4,0,3,77.40034,10.57626,0,88.9,0,496.2,1,0,1.098612,6.206979,0,0,0,0,0,0,88.9,8.806258,1.098612,3.469549,1 +11,5,0,0,3,527557,0,6674.895,5.928816,0,12,1,45.15571,0,0,0,0,45.15571,0,0,0,4,0,4,77.40034,10.57626,0,88.9,0,496.2,1,0,1.386294,6.206979,0,0,0,0,0,0,88.9,8.806258,1.386294,3.810117,1 +11,5,0,0,1,527558,0,6674.895,24.30116,0,11,1,78.29031,0,0,0,0,78.29031,0,0,0,2,0,3,76.1,6.9,0,64.8,0,496.2,0,0,1.098612,6.206979,0,0,0,1,0,0,64.8,8.806258,1.098612,4.360424,1 +11,5,0,0,2,527558,0,6674.895,25.30116,0,11,1,0,0,0,0,0,0,0,0,0,0,0,3,76.1,6.9,0,64.8,0,496.2,0,0,1.098612,6.206979,0,0,0,1,0,0,64.8,8.806258,1.098612,,0 +11,5,0,0,3,527558,0,6674.895,26.30116,0,11,1,20.76125,4.307959,0,0,0,25.0692,0,0,0,2,0,4,76.1,6.9,0,64.8,0,496.2,0,0,1.386294,6.206979,0,0,0,1,0,0,64.8,8.806258,1.386294,3.22164,1 +11,5,0,0,1,527559,0,6674.895,23.75086,1,12,1,8.463818,4.502751,0,0,0,12.96657,0,0,0,1,0,3,73.4,3.4,0,73.9,0,496.2,0,0,1.098612,6.206979,0,0,0,1,0,0,73.9,8.806258,1.098612,2.562374,1 +11,5,0,0,2,527559,0,6674.895,24.75086,1,12,1,28.09415,12.61959,0,0,676.5376,717.2513,1,0,0,1,0,3,73.4,3.4,0,73.9,0,496.2,0,0,1.098612,6.206979,0,0,0,1,0,0,73.9,8.806258,1.098612,6.575426,1 +11,5,0,0,3,527559,0,6674.895,25.75086,1,12,1,30.44983,0,0,0,827.6816,858.1315,1,0,0,2,0,4,73.4,3.4,0,73.9,0,496.2,0,0,1.386294,6.206979,0,0,0,1,0,0,73.9,8.806258,1.386294,6.754757,1 +13,5,0,1,1,527637,0,6175.115,34.22313,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,66,13.8,0,79.5,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,79.5,8.728445,0,,0 +13,5,0,1,2,527637,0,6175.115,35.22313,0,12,1,51.52672,0,0,0,0,51.52672,0,0,0,1,0,1,66,13.8,0,79.5,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,79.5,8.728445,0,3.942101,1 +13,5,0,1,3,527637,0,6175.115,36.22313,0,12,1,9.756098,0,0,0,0,9.756098,0,0,0,1,0,1,66,13.8,0,79.5,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,79.5,8.728445,0,2.277893,1 +11,5,0,1,1,527651,1,0,4.4846,0,8,1,0,0,0,0,0,0,0,0,0,0,0,2,77.40034,10.57626,0,74.1,0,0,1,0,.6931472,0,0,0,0,0,1,0,74.1,0,.6931472,,0 +11,5,0,1,2,527651,1,0,5.4846,0,8,1,0,0,0,0,0,0,0,0,0,0,0,2,77.40034,10.57626,0,74.1,0,0,1,0,.6931472,0,0,0,0,0,1,0,74.1,0,.6931472,,0 +11,5,0,1,3,527651,1,0,6.4846,0,8,1,10.38062,0,0,0,0,10.38062,0,0,0,0,0,2,77.40034,10.57626,0,74.1,0,0,1,0,.6931472,0,0,0,0,0,1,0,74.1,0,.6931472,2.339941,1 +11,5,0,1,1,527652,1,0,24.98289,1,8,1,10.57977,0,0,0,0,10.57977,0,0,0,1,0,2,61.7,6.9,1,70.5,0,0,0,0,.6931472,0,0,0,0,1,0,0,70.5,0,.6931472,2.358944,1 +11,5,0,1,2,527652,1,0,25.98289,1,8,1,19.74184,0,0,0,0,19.74184,0,0,0,2,0,2,61.7,6.9,1,70.5,0,0,0,0,.6931472,0,0,0,0,1,0,0,70.5,0,.6931472,2.98274,1 +11,5,0,1,3,527652,1,0,26.98289,1,8,1,0,0,0,0,0,0,0,0,0,0,0,2,61.7,6.9,1,70.5,0,0,0,0,.6931472,0,0,0,0,1,0,0,70.5,0,.6931472,,0 +11,5,0,1,1,527674,1,10589.86,17.37988,1,8,1,10.63377,0,22.96895,0,0,33.60272,0,0,0,0,1,4,70.7,6.9,1,63.6,0,787.6,1,1,1.386294,6.66899,0,0,0,0,1,0,63.6,9.267747,1.386294,3.514607,1 +11,5,0,1,2,527674,1,10589.86,18.37988,1,8,1,0,0,23.66412,0,0,23.66412,0,0,0,0,0,4,70.7,6.9,1,63.6,0,787.6,0,0,1.386294,6.66899,0,0,0,0,1,0,63.6,9.267747,1.386294,3.16396,1 +11,5,0,1,3,527674,1,10589.86,19.37988,1,8,1,68.29269,6.620209,22.29965,0,0,97.21255,0,0,0,2,1,4,70.7,6.9,1,63.6,0,787.6,0,0,1.386294,6.66899,0,0,0,0,1,0,63.6,9.267747,1.386294,4.5769,1 +11,5,0,1,1,527675,1,10589.86,41.34155,1,8,1,10.63377,0,23.81965,0,0,34.45342,0,0,0,0,1,4,62.3,10.3,0,56.8,0,787.6,0,0,1.386294,6.66899,0,0,0,0,1,0,56.8,9.267747,1.386294,3.539608,1 +11,5,0,1,2,527675,1,10589.86,42.34155,1,8,1,9.541985,0,38.50382,0,0,48.0458,0,0,0,0,1,4,62.3,10.3,0,56.8,0,787.6,0,0,1.386294,6.66899,0,0,0,0,1,0,56.8,9.267747,1.386294,3.872155,1 +11,5,0,1,3,527675,1,10589.86,43.34155,1,8,1,8.710801,0,19.29617,0,0,28.00697,0,0,0,0,1,4,62.3,10.3,0,56.8,0,787.6,0,0,1.386294,6.66899,0,0,0,0,1,0,56.8,9.267747,1.386294,3.332453,1 +11,5,0,1,1,527676,1,10589.86,20.09583,1,10,1,10.63377,0,22.96895,0,0,33.60272,0,0,0,0,1,4,62.2,13.8,0,63.6,0,787.6,0,0,1.386294,6.66899,0,0,0,0,1,0,63.6,9.267747,1.386294,3.514607,1 +11,5,0,1,2,527676,1,10589.86,21.09583,1,10,1,9.541985,1.431298,27.48092,0,0,38.4542,0,0,0,0,1,4,62.2,13.8,0,63.6,0,787.6,0,0,1.386294,6.66899,0,0,0,0,1,0,63.6,9.267747,1.386294,3.649468,1 +11,5,0,1,3,527676,1,10589.86,22.09583,1,10,1,8.710801,0,24.04181,0,0,32.75261,0,0,0,0,1,4,62.2,13.8,0,63.6,0,787.6,0,0,1.386294,6.66899,0,0,0,0,1,0,63.6,9.267747,1.386294,3.488983,1 +11,5,0,1,1,527677,1,10589.86,43.64682,0,9,1,0,0,0,0,0,0,0,0,0,0,0,4,80.3,0,0,60.2,0,787.6,0,0,1.386294,6.66899,0,0,0,0,1,0,60.2,9.267747,1.386294,,0 +11,5,0,1,2,527677,1,10589.86,44.64682,0,9,1,0,0,0,0,0,0,0,0,0,0,0,4,80.3,0,0,60.2,0,787.6,0,0,1.386294,6.66899,0,0,0,0,1,0,60.2,9.267747,1.386294,,0 +11,5,0,1,3,527677,1,10589.86,45.64682,0,9,1,0,0,0,0,0,0,0,0,0,0,0,4,80.3,0,0,60.2,0,787.6,0,0,1.386294,6.66899,0,0,0,0,1,0,60.2,9.267747,1.386294,,0 +18,5,25,0,1,527705,1,0,41.81519,1,10,1,0,0,0,0,0,0,0,0,0,0,0,1,67.6,3.4,0,55.7,466.8,0,0,0,0,0,0,3.258096,7.532195,0,0,1,55.7,0,0,,0 +18,5,25,0,2,527705,1,0,42.81519,1,10,1,22.77904,0,0,0,0,22.77904,0,0,0,1,1,1,67.6,3.4,0,55.7,466.8,0,0,0,0,0,0,3.258096,7.532195,0,0,1,55.7,0,0,3.125841,1 +18,5,25,0,3,527705,1,0,43.81519,1,10,1,0,0,0,0,0,0,0,0,0,0,0,1,67.6,3.4,0,55.7,466.8,0,0,0,0,0,0,3.258096,7.532195,0,0,1,55.7,0,0,,0 +13,5,0,0,1,527710,1,0,22.80903,1,11,1,43.66227,0,24.67035,0,0,68.33263,0,0,0,2,1,1,59,13.8,0,55.7,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,55.7,0,0,4.224387,1 +13,5,0,0,2,527710,1,0,23.80903,1,11,1,56.79389,0,11.45038,0,0,68.24428,0,0,0,0,1,1,59,13.8,0,55.7,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,55.7,0,0,4.223094,1 +13,5,0,0,3,527710,1,0,24.80903,1,11,1,90.59233,5.905923,0,0,0,96.49826,0,0,0,1,0,1,59,13.8,0,55.7,150,0,0,0,0,0,1,4.564348,5.061929,1,0,0,55.7,0,0,4.569525,1 +18,5,25,0,1,527737,0,9861.239,29.69473,0,16,1,10.83785,0,0,0,0,10.83785,0,0,0,1,0,4,90.4,3.4,0,88.6,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,88.6,9.196468,1.386294,2.383044,1 +18,5,25,0,2,527737,0,9861.239,30.69473,0,16,1,46.88672,0,14.82371,0,769.6924,831.4028,1,0,0,3,0,5,90.4,3.4,0,88.6,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,88.6,9.196468,1.609438,6.723114,1 +18,5,25,0,3,527737,0,9861.239,31.69473,0,16,1,319.6888,3.592693,0,0,0,323.2815,0,0,0,5,0,5,90.4,3.4,0,88.6,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,88.6,9.196468,1.609438,5.778523,1 +18,5,25,0,1,527738,0,9861.239,30.07803,1,16,1,12.29679,11.33806,0,0,785.3272,808.9621,1,0,0,0,0,4,85.6,6.9,0,87.5,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,87.5,9.196468,1.386294,6.695752,1 +18,5,25,0,2,527738,0,9861.239,31.07803,1,16,1,15.00375,2.621906,17.55439,0,0,35.18005,0,0,0,1,0,5,85.6,6.9,0,87.5,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,87.5,9.196468,1.609438,3.560479,1 +18,5,25,0,3,527738,0,9861.239,32.07803,1,16,1,10.14885,6.681326,0,0,0,16.83018,0,0,0,1,0,5,85.6,6.9,0,87.5,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,87.5,9.196468,1.609438,2.823174,1 +18,5,25,0,1,527739,0,9861.239,8.569473,1,16,1,23.96832,17.31138,0,0,0,41.2797,0,0,0,2,0,4,88.3,10.57626,.1442925,96.3,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,0,0,0,96.3,9.196468,1.386294,3.720371,1 +18,5,25,0,2,527739,0,9861.239,9.569473,1,16,1,0,11.41785,0,0,0,11.41785,0,0,0,0,0,5,88.3,10.57626,.1442925,96.3,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,96.3,9.196468,1.609438,2.435178,1 +18,5,25,0,3,527739,0,9861.239,10.56947,1,16,1,11.84032,2.182003,0,0,0,14.02233,0,0,0,1,0,5,88.3,10.57626,.1442925,96.3,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,96.3,9.196468,1.609438,2.640651,1 +18,5,25,0,1,527740,0,9861.239,4.722793,0,16,1,0,20.15006,0,0,0,20.15006,0,0,0,0,0,4,77.40034,10.57626,0,100,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,100,9.196468,1.386294,3.003207,1 +18,5,25,0,2,527740,0,9861.239,5.722793,0,16,1,0,3.619655,0,0,0,3.619655,0,0,0,0,0,5,77.40034,10.57626,0,100,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,100,9.196468,1.609438,1.286379,1 +18,5,25,0,3,527740,0,9861.239,6.722793,0,16,1,18.60622,12.28349,0,0,0,30.88972,0,0,0,2,0,5,77.40034,10.57626,0,100,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,100,9.196468,1.609438,3.430423,1 +11,5,0,0,1,527791,1,0,8.481862,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,88.3,10.57626,0,100,0,0,1,1,.6931472,0,0,0,0,0,0,0,100,0,.6931472,,0 +11,5,0,0,1,527792,1,0,41.88091,1,12,1,0,0,36.16273,0,0,36.16273,0,0,0,0,0,2,74.5,3.4,1,81.8,0,0,0,0,.6931472,0,0,0,0,0,1,0,81.8,0,.6931472,3.588029,1 +11,5,0,0,2,527792,1,0,42.88091,1,12,1,24.80297,4.376449,0,0,0,29.17942,0,0,0,0,0,1,74.5,3.4,1,81.8,0,0,0,0,0,0,0,0,0,0,1,0,81.8,0,0,3.373464,1 +11,5,0,0,3,527792,1,0,43.88091,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,74.5,3.4,1,81.8,0,0,0,0,0,0,0,0,0,0,1,0,81.8,0,0,,0 +11,5,0,0,4,527792,1,0,44.88091,1,12,1,40.17176,0,0,0,0,40.17176,0,0,0,0,0,1,74.5,3.4,1,81.8,0,0,0,0,0,0,0,0,0,0,1,0,81.8,0,0,3.693164,1 +11,5,0,0,5,527792,1,0,45.88091,1,12,1,5.226481,0,0,0,1706.969,1712.195,1,0,0,1,0,1,74.5,3.4,1,81.8,0,0,0,0,0,0,0,0,0,0,1,0,81.8,0,0,7.445531,1 +16,5,95,0,1,527795,1,6674.895,4.15332,0,10,1,5.896806,0,0,0,0,5.896806,0,0,0,1,0,7,77.40034,10.57626,.1442925,,869.1,0,1,0,1.94591,0,0,4.564348,6.818751,1,0,0,70.68995,8.806258,1.94591,1.774411,1 +16,5,95,0,2,527795,1,6674.895,5.15332,0,10,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,.1442925,,869.1,0,1,0,1.94591,0,0,4.564348,6.818751,1,0,0,70.68995,8.806258,1.94591,,0 +16,5,95,0,3,527795,1,6674.895,6.15332,0,10,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,.1442925,,869.1,0,1,0,1.94591,0,0,4.564348,6.818751,1,0,0,70.68995,8.806258,1.94591,,0 +16,5,95,0,4,527795,1,6674.895,7.15332,0,10,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,.1442925,,869.1,0,1,0,1.94591,0,0,4.564348,6.818751,1,0,0,70.68995,8.806258,1.94591,,0 +16,5,95,0,5,527795,1,6674.895,8.153319,0,10,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,.1442925,,869.1,0,1,0,1.94591,0,0,4.564348,6.818751,1,0,0,70.68995,8.806258,1.94591,,0 +16,5,95,0,1,527796,1,3062.17,37.47844,0,12,1,0,0,0,0,55.8968,55.8968,1,0,0,0,0,1,35.6,13.8,0,42,869.1,0,0,0,0,0,0,4.564348,6.818751,1,0,0,42,8.027205,0,4.023507,1 +16,5,95,0,2,527796,1,3062.17,38.47844,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,35.6,13.8,0,42,869.1,0,0,0,0,0,0,4.564348,6.818751,1,0,0,42,8.027205,0,,0 +16,5,95,0,3,527796,1,3062.17,39.47844,0,12,1,0,0,0,0,11025.43,11025.43,2,0,0,0,0,1,35.6,13.8,0,42,869.1,0,0,0,0,0,0,4.564348,6.818751,1,0,0,42,8.027205,0,9.30796,1 +16,5,95,0,4,527796,1,3062.17,40.47844,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,35.6,13.8,0,42,869.1,0,0,0,0,0,0,4.564348,6.818751,1,0,0,42,8.027205,0,,0 +16,5,95,0,5,527796,1,3062.17,41.47844,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,35.6,13.8,0,42,869.1,0,0,0,0,0,0,4.564348,6.818751,1,0,0,42,8.027205,0,,0 +16,5,95,0,1,527797,1,6674.895,7.263518,1,10,1,5.896806,0,0,0,0,5.896806,0,0,0,1,0,7,77.40034,10.57626,.1442925,,869.1,0,1,1,1.94591,0,0,4.564348,6.818751,1,0,0,70.68995,8.806258,1.94591,1.774411,1 +16,5,95,0,2,527797,1,6674.895,8.263518,1,10,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,.1442925,,869.1,0,1,1,1.94591,0,0,4.564348,6.818751,1,0,0,70.68995,8.806258,1.94591,,0 +16,5,95,0,3,527797,1,6674.895,9.263518,1,10,1,10.42101,0,0,0,0,10.42101,0,0,0,1,0,7,77.40034,10.57626,.1442925,,869.1,0,1,1,1.94591,0,0,4.564348,6.818751,1,0,0,70.68995,8.806258,1.94591,2.343824,1 +16,5,95,0,4,527797,1,6674.895,10.26352,1,10,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,.1442925,,869.1,0,1,1,1.94591,0,0,4.564348,6.818751,1,0,0,70.68995,8.806258,1.94591,,0 +16,5,95,0,5,527797,1,6674.895,11.26352,1,10,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,.1442925,,869.1,0,1,1,1.94591,0,0,4.564348,6.818751,1,0,0,70.68995,8.806258,1.94591,,0 +16,5,95,0,1,527798,1,6674.895,6.193018,0,10,1,5.896806,0,0,0,0,5.896806,0,0,0,1,0,7,77.40034,10.57626,.1442925,,869.1,0,1,0,1.94591,0,0,4.564348,6.818751,1,0,0,70.68995,8.806258,1.94591,1.774411,1 +16,5,95,0,2,527798,1,6674.895,7.193018,0,10,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,.1442925,,869.1,0,1,0,1.94591,0,0,4.564348,6.818751,1,0,0,70.68995,8.806258,1.94591,,0 +16,5,95,0,3,527798,1,6674.895,8.193019,0,10,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,.1442925,,869.1,0,1,0,1.94591,0,0,4.564348,6.818751,1,0,0,70.68995,8.806258,1.94591,,0 +16,5,95,0,4,527798,1,6674.895,9.193019,0,10,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,.1442925,,869.1,0,1,0,1.94591,0,0,4.564348,6.818751,1,0,0,70.68995,8.806258,1.94591,,0 +16,5,95,0,5,527798,1,6674.895,10.19302,0,10,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,.1442925,,869.1,0,1,0,1.94591,0,0,4.564348,6.818751,1,0,0,70.68995,8.806258,1.94591,,0 +16,5,95,0,1,527799,1,6674.895,35.35934,1,10,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,.1442925,,869.1,0,0,0,1.94591,0,0,4.564348,6.818751,1,0,0,70.68995,8.806258,1.94591,,0 +16,5,95,0,2,527799,1,6674.895,36.35934,1,10,1,8.659982,0,0,0,0,8.659982,0,0,0,0,0,7,77.40034,10.57626,.1442925,,869.1,0,0,0,1.94591,0,0,4.564348,6.818751,1,0,0,70.68995,8.806258,1.94591,2.158713,1 +16,5,95,0,3,527799,1,6674.895,37.35934,1,10,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,.1442925,,869.1,0,0,0,1.94591,0,0,4.564348,6.818751,1,0,0,70.68995,8.806258,1.94591,,0 +16,5,95,0,4,527799,1,6674.895,38.35934,1,10,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,.1442925,,869.1,0,0,0,1.94591,0,0,4.564348,6.818751,1,0,0,70.68995,8.806258,1.94591,,0 +16,5,95,0,5,527799,1,6674.895,39.35934,1,10,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,.1442925,,869.1,0,0,0,1.94591,0,0,4.564348,6.818751,1,0,0,70.68995,8.806258,1.94591,,0 +16,5,95,0,1,527800,1,6674.895,14.63929,0,10,1,35.38084,0,0,0,691.4005,726.7813,1,0,0,2,0,7,77.40034,10.57626,.1442925,,869.1,0,1,0,1.94591,0,0,4.564348,6.818751,1,0,0,70.68995,8.806258,1.94591,6.588625,1 +16,5,95,0,2,527800,1,6674.895,15.63929,0,10,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,.1442925,,869.1,0,1,0,1.94591,0,0,4.564348,6.818751,1,0,0,70.68995,8.806258,1.94591,,0 +16,5,95,0,3,527800,1,6674.895,16.63929,0,10,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,.1442925,,869.1,0,1,0,1.94591,0,0,4.564348,6.818751,1,0,0,70.68995,8.806258,1.94591,,0 +16,5,95,0,4,527800,1,6674.895,17.63929,0,10,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,.1442925,,869.1,0,1,0,1.94591,0,0,4.564348,6.818751,1,0,0,70.68995,8.806258,1.94591,,0 +16,5,95,0,5,527800,1,6674.895,18.63929,0,10,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,.1442925,,869.1,0,0,0,1.94591,0,0,4.564348,6.818751,1,0,0,70.68995,8.806258,1.94591,,0 +16,5,95,0,1,527801,1,6674.895,8.695415,0,10,1,5.896806,0,0,0,0,5.896806,0,0,0,1,0,7,77.40034,10.57626,.1442925,,869.1,0,1,0,1.94591,0,0,4.564348,6.818751,1,0,0,70.68995,8.806258,1.94591,1.774411,1 +16,5,95,0,2,527801,1,6674.895,9.695415,0,10,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,.1442925,,869.1,0,1,0,1.94591,0,0,4.564348,6.818751,1,0,0,70.68995,8.806258,1.94591,,0 +16,5,95,0,3,527801,1,6674.895,10.69541,0,10,1,68.23676,0,0,0,0,68.23676,0,0,0,1,0,7,77.40034,10.57626,.1442925,,869.1,0,1,0,1.94591,0,0,4.564348,6.818751,1,0,0,70.68995,8.806258,1.94591,4.222983,1 +16,5,95,0,4,527801,1,6674.895,11.69541,0,10,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,.1442925,,869.1,0,1,0,1.94591,0,0,4.564348,6.818751,1,0,0,70.68995,8.806258,1.94591,,0 +16,5,95,0,5,527801,1,6674.895,12.69541,0,10,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,.1442925,,869.1,0,1,0,1.94591,0,0,4.564348,6.818751,1,0,0,70.68995,8.806258,1.94591,,0 +16,5,95,0,1,527802,1,6674.895,10.95414,0,10,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,.1442925,,869.1,0,1,0,1.94591,0,0,4.564348,6.818751,1,0,0,70.68995,8.806258,1.94591,,0 +16,5,95,0,2,527802,1,6674.895,11.95414,0,10,1,36.46308,0,0,0,0,36.46308,0,0,0,1,0,7,77.40034,10.57626,.1442925,,869.1,0,1,0,1.94591,0,0,4.564348,6.818751,1,0,0,70.68995,8.806258,1.94591,3.5963,1 +16,5,95,0,3,527802,1,6674.895,12.95414,0,10,1,14.58941,0,0,0,0,14.58941,0,0,0,1,0,7,77.40034,10.57626,.1442925,,869.1,0,1,0,1.94591,0,0,4.564348,6.818751,1,0,0,70.68995,8.806258,1.94591,2.680296,1 +16,5,95,0,4,527802,1,6674.895,13.95414,0,10,1,8.064516,0,0,0,0,8.064516,0,0,0,0,0,7,77.40034,10.57626,.1442925,,869.1,0,1,0,1.94591,0,0,4.564348,6.818751,1,0,0,70.68995,8.806258,1.94591,2.087474,1 +16,5,95,0,5,527802,1,6674.895,14.95414,0,10,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,.1442925,,869.1,0,1,0,1.94591,0,0,4.564348,6.818751,1,0,0,70.68995,8.806258,1.94591,,0 +5,5,25,0,1,527876,1,1556.068,48.24367,0,12,1,33.86622,52.54102,0,0,0,86.40723,0,0,0,7,0,1,75,6.9,0,60.2,33.05,0,0,0,0,0,0,3.258096,4.884316,1,0,0,60.2,7.35056,0,4.459072,1 +5,5,25,0,2,527876,1,1556.068,49.24367,0,12,1,37.58973,92.67473,0,0,0,130.2645,0,0,0,4,0,1,75,6.9,0,60.2,33.05,0,0,0,0,0,0,3.258096,4.884316,1,0,0,60.2,7.35056,0,4.869566,1 +5,5,25,0,3,527876,1,1556.068,50.24367,0,12,1,54.2024,48.78559,0,0,0,102.988,0,0,0,2,0,1,75,6.9,0,60.2,33.05,0,0,0,0,0,0,3.258096,4.884316,1,0,0,60.2,7.35056,0,4.634613,1 +13,5,0,1,1,527895,0,1524.322,35.24983,0,17,1,25.01042,0,34.76448,0,0,59.77491,0,0,0,2,0,1,60.6,13.8,0,80.7,150,0,0,0,0,0,1,4.564348,5.061929,0,0,0,80.7,7.32996,0,4.090586,1 +13,5,0,1,2,527895,0,1524.322,36.24983,0,17,1,237.8094,1.425356,14.82371,0,0,254.0585,0,0,0,5,0,1,60.6,13.8,0,80.7,150,0,0,0,0,0,1,4.564348,5.061929,0,0,0,80.7,7.32996,0,5.537565,1 +13,5,0,1,3,527895,0,1524.322,37.24983,0,17,1,128.5521,0,29.19824,0,0,157.7503,0,0,0,6,0,1,60.6,13.8,0,80.7,150,0,0,0,0,0,1,4.564348,5.061929,0,0,0,80.7,7.32996,0,5.061014,1 +11,5,0,0,1,527903,1,6674.895,37.7577,1,11,1,10.57977,0,23.69869,0,0,34.27846,0,0,0,0,1,3,58.5,37.9,0,60.2,0,0,0,0,1.098612,0,0,0,0,1,0,0,60.2,8.806258,1.098612,3.534517,1 +11,5,0,0,2,527903,1,6674.895,38.7577,1,11,1,185.877,0,26.1959,0,946.8489,1158.922,1,0,0,3,1,3,58.5,37.9,0,60.2,0,0,0,0,1.098612,0,0,0,0,1,0,0,60.2,8.806258,1.098612,7.055245,1 +11,5,0,0,3,527903,1,6674.895,39.7577,1,11,1,41.52249,6.089965,13.84083,0,0,61.45329,0,0,0,4,1,2,58.5,37.9,0,60.2,0,0,0,0,.6931472,0,0,0,0,1,0,0,60.2,8.806258,.6931472,4.118278,1 +11,5,0,0,1,527904,1,6674.895,5.051335,1,11,1,10.57977,0,22.85231,0,0,33.43208,0,0,0,0,1,3,77.40034,10.57626,.1442925,55.6,0,0,1,1,1.098612,0,0,0,0,1,0,0,55.6,8.806258,1.098612,3.509516,1 +11,5,0,0,2,527904,1,6674.895,6.051335,1,11,1,9.491268,0,22.01974,0,0,31.51101,0,0,0,0,1,3,77.40034,10.57626,.1442925,55.6,0,0,1,1,1.098612,0,0,0,0,1,0,0,55.6,8.806258,1.098612,3.450337,1 +11,5,0,0,1,527906,1,6674.895,9.826146,0,11,1,23.2755,0,22.85231,0,0,46.1278,0,0,0,1,1,3,95,10.57626,.1442925,55.6,0,0,1,0,1.098612,0,0,0,0,1,0,0,55.6,8.806258,1.098612,3.831416,1 +11,5,0,0,2,527906,1,6674.895,10.82615,0,11,1,17.08428,0,0,0,0,17.08428,0,0,0,1,0,3,95,10.57626,.1442925,55.6,0,0,1,0,1.098612,0,0,0,0,1,0,0,55.6,8.806258,1.098612,2.838159,1 +11,5,0,0,3,527906,1,6674.895,11.82615,0,11,1,26.98962,0,20.41522,0,0,47.40485,0,0,0,1,1,2,95,10.57626,.1442925,55.6,0,0,1,0,.6931472,0,0,0,0,1,0,0,55.6,8.806258,.6931472,3.858724,1 +11,5,0,0,1,527964,1,7592.934,54.61465,0,7,1,29.62336,0,51.05375,0,0,80.67711,0,0,0,1,0,5,82.4,10.3,0,75,0,0,0,0,1.609438,0,0,0,0,1,0,0,75,8.935105,1.609438,4.390455,1 +11,5,0,0,2,527964,1,7592.934,55.61465,0,7,1,0,3.481397,0,0,0,3.481397,0,0,0,0,0,5,82.4,10.3,0,75,0,0,0,0,1.609438,0,0,0,0,1,0,0,75,8.935105,1.609438,1.247434,1 +11,5,0,0,3,527964,1,7592.934,56.61465,0,7,1,13.84083,2.692042,31.3045,0,0,47.83737,0,0,0,1,1,5,82.4,10.3,0,75,0,0,0,0,1.609438,0,0,0,0,1,0,0,75,8.935105,1.609438,3.867807,1 +11,5,0,0,1,527965,1,7592.934,51.75907,1,5,1,0,16.79645,0,0,0,16.79645,0,0,0,0,0,5,86.5,20.7,0,,0,0,0,0,1.609438,0,0,0,0,0,0,1,55.7,8.935105,1.609438,2.821167,1 +11,5,0,0,2,527965,1,7592.934,52.75907,1,5,1,25.81625,15.85801,21.71602,0,0,63.39028,0,0,0,3,0,5,86.5,20.7,0,,0,0,0,0,1.609438,0,0,0,0,0,0,1,55.7,8.935105,1.609438,4.149311,1 +11,5,0,0,3,527965,1,7592.934,53.75907,1,5,1,76.47059,21.34602,0,0,0,97.81661,0,0,0,6,0,5,86.5,20.7,0,,0,0,0,0,1.609438,0,0,0,0,0,0,1,55.7,8.935105,1.609438,4.583095,1 +11,5,0,0,1,527966,1,7592.934,8.895277,1,5,1,0,0,0,0,0,0,0,0,0,0,0,5,100,10.57626,0,88.9,0,0,1,1,1.609438,0,0,0,0,0,0,0,88.9,8.935105,1.609438,,0 +11,5,0,0,2,527966,1,7592.934,9.895277,1,5,1,0,0,0,0,0,0,0,0,0,0,0,5,100,10.57626,0,88.9,0,0,1,1,1.609438,0,0,0,0,0,0,0,88.9,8.935105,1.609438,,0 +11,5,0,0,3,527966,1,7592.934,10.89528,1,5,1,8.650519,0,0,0,0,8.650519,0,0,0,0,1,5,100,10.57626,0,88.9,0,0,1,1,1.609438,0,0,0,0,0,0,0,88.9,8.935105,1.609438,2.157619,1 +11,5,0,0,1,527967,1,7592.934,14.68309,1,5,1,10.57977,0,0,0,0,10.57977,0,0,0,0,1,5,88.3,3.4,0,72.6,0,0,1,1,1.609438,0,0,0,0,0,0,0,72.6,8.935105,1.609438,2.358944,1 +11,5,0,0,2,527967,1,7592.934,15.68309,1,5,1,0,0,0,0,0,0,0,0,0,0,0,5,88.3,3.4,0,72.6,0,0,1,1,1.609438,0,0,0,0,0,0,0,72.6,8.935105,1.609438,,0 +11,5,0,0,3,527967,1,7592.934,16.68309,1,5,1,8.650519,0,28.42561,0,0,37.07613,0,0,0,0,1,5,88.3,3.4,0,72.6,0,0,1,1,1.609438,0,0,0,0,0,0,0,72.6,8.935105,1.609438,3.612973,1 +11,5,0,0,1,527968,1,6674.895,5.226557,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,100,10.57626,0,70.4,0,0,1,1,0,0,0,0,0,0,0,0,70.4,8.806258,0,,0 +11,5,0,0,2,527968,1,6674.895,6.226557,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,100,10.57626,0,70.4,0,0,1,1,0,0,0,0,0,0,0,0,70.4,8.806258,0,,0 +11,5,0,0,3,527968,1,6674.895,7.226557,1,12,1,11.07266,0,0,0,0,11.07266,0,0,0,2,0,1,100,10.57626,0,70.4,0,0,1,1,0,0,0,0,0,0,0,0,70.4,8.806258,0,2.40448,1 +11,5,0,0,1,527969,1,7592.934,27.74264,1,10,1,42.69996,0,0,0,0,42.69996,0,0,0,0,0,5,93.4,6.9,0,70.2,0,0,0,0,1.609438,0,0,0,0,0,0,1,70.2,8.935105,1.609438,3.754198,1 +11,5,0,0,2,527969,1,7592.934,28.74264,1,10,1,118.47,0,0,0,0,118.47,0,0,0,1,0,5,93.4,6.9,0,70.2,0,0,0,0,1.609438,0,0,0,0,0,0,1,70.2,8.935105,1.609438,4.77466,1 +11,5,0,0,3,527969,1,7592.934,29.74264,1,10,1,85.53633,0,0,0,0,85.53633,0,0,0,1,0,5,93.4,6.9,0,70.2,0,0,0,0,1.609438,0,0,0,0,0,0,1,70.2,8.935105,1.609438,4.448941,1 +11,5,0,1,1,527970,1,6878.648,13.72211,1,8,1,30.89293,0,32.16251,0,0,63.05544,0,0,0,2,1,5,100,10.57626,0,96.3,0,416,1,1,1.609438,6.030685,0,0,0,1,0,0,96.3,8.836323,1.609438,4.144014,1 +11,5,0,1,2,527970,1,6878.648,14.72211,1,8,1,24.6773,3.382688,15.18603,0,0,43.24601,0,0,0,3,1,5,100,10.57626,0,96.3,0,416,1,1,1.609438,6.030685,0,0,0,1,0,0,96.3,8.836323,1.609438,3.766905,1 +11,5,0,1,3,527970,1,6878.648,15.72211,1,8,1,115.917,0,30.3218,0,0,146.2388,0,0,0,5,1,5,100,10.57626,0,96.3,0,416,1,1,1.609438,6.030685,0,0,0,1,0,0,96.3,8.836323,1.609438,4.98524,1 +11,5,0,1,1,527972,1,6878.648,50.10267,0,8,1,14.81168,0,42.31908,0,0,57.13077,0,0,0,0,1,5,64.4,10.3,1,70,0,416,0,0,1.609438,6.030685,0,0,0,0,1,0,70,8.836323,1.609438,4.045343,1 +11,5,0,1,2,527972,1,6878.648,51.10267,0,8,1,18.98254,3.109339,24.6773,0,0,46.76917,0,0,0,1,1,5,64.4,10.3,1,70,0,416,0,0,1.609438,6.030685,0,0,0,0,1,0,70,8.836323,1.609438,3.845224,1 +11,5,0,1,3,527972,1,6878.648,52.10267,0,8,1,16.95502,0,16.609,0,0,33.56401,0,0,0,1,1,5,64.4,10.3,1,70,0,416,0,0,1.609438,6.030685,0,0,0,0,1,0,70,8.836323,1.609438,3.513454,1 +11,5,0,1,1,527973,1,6878.648,40.71458,1,8,1,30.68134,4.879391,0,0,0,35.56073,0,0,0,1,0,5,95.2,6.9,0,83,0,416,0,0,1.609438,6.030685,0,0,0,0,0,0,83,8.836323,1.609438,3.571242,1 +11,5,0,1,2,527973,1,6878.648,41.71458,1,8,1,6.833713,0,0,0,857.631,864.4647,1,0,0,1,0,5,95.2,6.9,0,83,0,416,0,0,1.609438,6.030685,0,0,0,0,0,0,83,8.836323,1.609438,6.762111,1 +11,5,0,1,3,527973,1,6878.648,42.71458,1,8,1,48.44291,0,40.83045,0,796.8858,886.1592,1,0,0,2,1,5,95.2,6.9,0,83,0,416,0,0,1.609438,6.030685,0,0,0,0,0,0,83,8.836323,1.609438,6.786897,1 +11,5,0,1,1,527974,1,6878.648,11.55647,0,8,1,7.617435,2.264071,0,0,0,9.881507,0,0,0,1,0,5,78.3,10.57626,0,85.2,0,416,1,0,1.609438,6.030685,0,0,0,1,0,0,85.2,8.836323,1.609438,2.290665,1 +11,5,0,1,2,527974,1,6878.648,12.55647,0,8,1,0,0,0,0,0,0,0,0,0,0,0,5,78.3,10.57626,0,85.2,0,416,1,0,1.609438,6.030685,0,0,0,1,0,0,85.2,8.836323,1.609438,,0 +11,5,0,1,3,527974,1,6878.648,13.55647,0,8,1,20.76125,0,29.06574,0,0,49.82699,0,0,0,0,2,5,78.3,10.57626,0,85.2,0,416,1,0,1.609438,6.030685,0,0,0,1,0,0,85.2,8.836323,1.609438,3.908557,1 +11,5,0,1,1,527975,.4758801,502.3041,19.5154,1,10,1,10.51746,0,0,0,0,10.51746,0,0,0,2,0,1,58,0,0,69.3,0,18,0,0,0,2.890372,0,0,0,1,0,0,69.3,6.221195,0,2.353037,1 +11,5,0,1,2,527975,.4758801,502.3041,20.5154,1,10,1,75.93502,5.515678,0,0,0,81.4507,0,0,0,3,0,1,58,0,0,69.3,0,18,0,0,0,2.890372,0,0,0,1,0,0,69.3,6.221195,0,4.399998,1 +11,5,0,1,3,527975,.4758801,502.3041,21.5154,1,10,1,110.1201,16.13722,37.73585,0,0,163.9931,0,0,0,7,1,1,58,0,0,69.3,0,18,0,0,0,2.890372,0,0,0,1,0,0,69.3,6.221195,0,5.099824,1 +11,5,0,1,1,527976,1,6878.648,9.010267,1,8,1,12.69573,0,28.77698,0,0,41.47271,0,0,0,0,1,5,83.3,10.57626,0,70.4,0,416,1,1,1.609438,6.030685,0,0,0,1,0,0,70.4,8.836323,1.609438,3.725035,1 +11,5,0,1,2,527976,1,6878.648,10.01027,1,8,1,0,0,0,0,0,0,0,0,0,0,0,5,83.3,10.57626,0,70.4,0,416,1,1,1.609438,6.030685,0,0,0,1,0,0,70.4,8.836323,1.609438,,0 +11,5,0,1,3,527976,1,6878.648,11.01027,1,8,1,10.38062,0,38.75433,0,0,49.13495,0,0,0,0,1,5,83.3,10.57626,0,70.4,0,416,1,1,1.609438,6.030685,0,0,0,1,0,0,70.4,8.836323,1.609438,3.894571,1 +13,5,0,1,1,527994,1,6674.895,12.34771,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,85,10.57626,0,66.7,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,66.7,8.806258,1.386294,,0 +13,5,0,1,2,527994,1,6674.895,13.34771,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,85,10.57626,0,66.7,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,66.7,8.806258,1.386294,,0 +13,5,0,1,3,527994,1,6674.895,14.34771,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,85,10.57626,0,66.7,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,66.7,8.806258,1.386294,,0 +13,5,0,1,1,527995,1,6674.895,32.46817,1,12,1,15.23487,4.418113,0,0,0,19.65298,0,0,0,2,0,4,58,20.7,0,81.8,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,81.8,8.806258,1.386294,2.978229,1 +13,5,0,1,2,527995,1,6674.895,33.46817,1,12,1,59.22551,0,0,0,0,59.22551,0,0,0,2,0,4,58,20.7,0,81.8,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,81.8,8.806258,1.386294,4.081352,1 +13,5,0,1,3,527995,1,6674.895,34.46817,1,12,1,19.37716,7.916955,0,0,506.2284,533.5225,1,0,0,2,0,4,58,20.7,0,81.8,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,81.8,8.806258,1.386294,6.279501,1 +13,5,0,1,1,527996,1,6674.895,34.73785,0,7,1,234.4477,8.539991,0,0,0,242.9877,0,0,0,4,18,4,78.7,10.3,0,47.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,47.7,8.806258,1.386294,5.493011,1 +13,5,0,1,2,527996,1,6674.895,35.73785,0,7,1,0,0,0,0,0,0,0,0,0,0,0,4,78.7,10.3,0,47.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,47.7,8.806258,1.386294,,0 +13,5,0,1,3,527996,1,6674.895,36.73785,0,7,1,284.4291,24.57093,0,0,0,309,0,0,0,10,0,4,78.7,10.3,0,47.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,47.7,8.806258,1.386294,5.733341,1 +13,5,0,1,1,527997,1,6674.895,11.00342,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,80,10.57626,0,88.9,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,88.9,8.806258,1.386294,,0 +13,5,0,1,2,527997,1,6674.895,12.00342,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,80,10.57626,0,88.9,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,88.9,8.806258,1.386294,,0 +13,5,0,1,3,527997,1,6674.895,13.00342,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,80,10.57626,0,88.9,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,88.9,8.806258,1.386294,,0 +18,5,25,1,1,528013,1,7266.257,17.69747,1,10,1,8.081667,0,0,0,0,8.081667,0,0,0,0,0,4,76.6,6.9,0,57.5,362.31,362.31,1,1,1.386294,5.8925,0,3.258096,7.278795,1,0,0,57.5,8.891134,1.386294,2.089598,1 +18,5,25,1,2,528013,1,7266.257,18.69747,1,10,1,0,0,9.923664,0,0,9.923664,0,0,0,0,0,4,76.6,6.9,0,57.5,362.31,362.31,0,0,1.386294,5.8925,0,3.258096,7.278795,1,0,0,57.5,8.891134,1.386294,2.294922,1 +18,5,25,1,3,528013,1,7266.257,19.69747,1,10,1,19.16376,4.857143,0,0,0,24.02091,0,0,0,0,1,4,76.6,6.9,0,57.5,362.31,362.31,0,0,1.386294,5.8925,0,3.258096,7.278795,1,0,0,57.5,8.891134,1.386294,3.178925,1 +18,5,25,1,1,528014,1,7266.257,16.3258,0,10,1,0,0,0,0,0,0,0,0,0,0,0,4,92,3.4,0,64.8,362.31,362.31,1,0,1.386294,5.8925,0,3.258096,7.278795,1,0,0,64.8,8.891134,1.386294,,0 +18,5,25,1,2,528014,1,7266.257,17.3258,0,10,1,0,0,0,0,0,0,0,0,0,0,0,4,92,3.4,0,64.8,362.31,362.31,1,0,1.386294,5.8925,0,3.258096,7.278795,1,0,0,64.8,8.891134,1.386294,,0 +18,5,25,1,3,528014,1,7266.257,18.3258,0,10,1,0,0,0,0,0,0,0,0,0,0,0,4,92,3.4,0,64.8,362.31,362.31,0,0,1.386294,5.8925,0,3.258096,7.278795,1,0,0,64.8,8.891134,1.386294,,0 +18,5,25,1,1,528015,1,7266.257,41.12526,1,10,1,0,0,0,0,0,0,0,0,0,0,0,4,73.4,10.3,1,47.7,362.31,362.31,0,0,1.386294,5.8925,0,3.258096,7.278795,0,1,0,47.7,8.891134,1.386294,,0 +18,5,25,1,2,528015,1,7266.257,42.12526,1,10,1,34.35115,45.17176,0,0,0,79.5229,0,0,0,0,0,4,73.4,10.3,1,47.7,362.31,362.31,0,0,1.386294,5.8925,0,3.258096,7.278795,0,1,0,47.7,8.891134,1.386294,4.376045,1 +18,5,25,1,3,528015,1,7266.257,43.12526,1,10,1,0,8.170732,0,0,0,8.170732,0,0,0,0,0,4,73.4,10.3,1,47.7,362.31,362.31,0,0,1.386294,5.8925,0,3.258096,7.278795,0,1,0,47.7,8.891134,1.386294,2.100559,1 +18,5,25,1,1,528018,1,7266.257,10.8282,1,10,1,8.081667,0,0,0,0,8.081667,0,0,0,0,0,4,83.3,10.57626,0,63,362.31,362.31,1,1,1.386294,5.8925,0,3.258096,7.278795,1,0,0,63,8.891134,1.386294,2.089598,1 +18,5,25,1,2,528018,1,7266.257,11.8282,1,10,1,0,0,0,0,0,0,0,0,0,0,0,4,83.3,10.57626,0,63,362.31,362.31,1,1,1.386294,5.8925,0,3.258096,7.278795,1,0,0,63,8.891134,1.386294,,0 +18,5,25,1,3,528018,1,7266.257,12.8282,1,10,1,0,0,0,0,0,0,0,0,0,0,0,4,83.3,10.57626,0,63,362.31,362.31,1,1,1.386294,5.8925,0,3.258096,7.278795,1,0,0,63,8.891134,1.386294,,0 +13,5,0,1,1,528054,1,4384.537,31.98083,1,16,1,25.52106,6.444067,0,0,0,31.96512,0,0,0,3,0,1,64.9,3.4,0,60.2,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,60.2,8.386067,0,3.464645,1 +13,5,0,1,2,528054,1,4384.537,32.98083,1,16,1,20.99237,0,0,0,0,20.99237,0,0,0,4,0,1,64.9,3.4,0,60.2,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,60.2,8.386067,0,3.044159,1 +13,5,0,1,3,528054,1,4384.537,33.98083,1,16,1,12.19512,0,0,0,0,12.19512,0,0,0,2,0,1,64.9,3.4,0,60.2,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,60.2,8.386067,0,2.501036,1 +14,5,95,1,1,528069,0,8094.214,48.80219,1,10,1,0,0,0,0,0,0,0,0,0,0,0,2,81.4,6.9,0,77.3,749.95,749.95,0,0,.6931472,6.620007,0,4.564348,6.6713,1,0,0,77.3,8.999028,.6931472,,0 +14,5,95,1,2,528069,0,8094.214,49.80219,1,10,1,0,0,0,0,0,0,0,0,0,0,0,2,81.4,6.9,0,77.3,749.95,749.95,0,0,.6931472,6.620007,0,4.564348,6.6713,1,0,0,77.3,8.999028,.6931472,,0 +14,5,95,1,3,528069,0,8094.214,50.80219,1,10,1,0,0,0,0,0,0,0,0,0,0,0,2,81.4,6.9,0,77.3,749.95,749.95,0,0,.6931472,6.620007,0,4.564348,6.6713,1,0,0,77.3,8.999028,.6931472,,0 +14,5,95,1,1,528073,0,8094.214,57.21834,0,6,1,38.70693,26.13356,0,0,0,64.84049,0,0,0,5,0,2,64.4,20.7,0,53.4,749.95,749.95,0,0,.6931472,6.620007,0,4.564348,6.6713,1,0,0,53.4,8.999028,.6931472,4.17193,1 +14,5,95,1,2,528073,0,8094.214,58.21834,0,6,1,11.45038,8.870229,0,0,0,20.32061,0,0,0,2,0,2,64.4,20.7,0,53.4,749.95,749.95,0,0,.6931472,6.620007,0,4.564348,6.6713,1,0,0,53.4,8.999028,.6931472,3.011636,1 +14,5,95,1,3,528073,0,8094.214,59.21834,0,6,1,4.181185,4.132404,0,0,0,8.313589,0,0,0,1,0,2,64.4,20.7,0,53.4,749.95,749.95,0,0,.6931472,6.620007,0,4.564348,6.6713,1,0,0,53.4,8.999028,.6931472,2.117891,1 +13,5,0,0,1,528125,1,4133.128,26.92402,0,9,1,0,0,0,0,0,0,0,0,0,0,0,3,77.7,0,0,79.5,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,79.5,8.327032,1.098612,,0 +13,5,0,0,2,528125,1,4133.128,27.92402,0,9,1,0,0,0,0,0,0,0,0,0,0,0,4,77.7,0,0,79.5,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,79.5,8.327032,1.386294,,0 +13,5,0,0,3,528125,1,4133.128,28.92402,0,9,1,0,0,0,0,0,0,0,0,0,0,0,4,77.7,0,0,79.5,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,79.5,8.327032,1.386294,,0 +13,5,0,0,1,528126,1,4133.128,24.65982,1,11,1,140.2878,0,0,0,349.5557,489.8434,1,1,0,12,0,3,82.4,10.3,0,88.6,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,88.6,8.327032,1.098612,6.194086,1 +13,5,0,0,2,528126,1,4133.128,25.65982,1,11,1,32.27031,0,0,0,0,32.27031,0,0,0,2,0,4,82.4,10.3,0,88.6,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,88.6,8.327032,1.386294,3.474148,1 +13,5,0,0,3,528126,1,4133.128,26.65982,1,11,1,0,0,0,0,0,0,0,0,0,0,0,4,82.4,10.3,0,88.6,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,88.6,8.327032,1.386294,,0 +13,5,0,0,1,528127,1,4133.128,6.872005,1,11,1,0,0,0,0,0,0,0,0,0,0,0,3,83.3,10.57626,0,88.9,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,1,0,0,88.9,8.327032,1.098612,,0 +13,5,0,0,2,528127,1,4133.128,7.872005,1,11,1,11.38952,0,0,0,0,11.38952,0,0,0,1,0,4,83.3,10.57626,0,88.9,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,88.9,8.327032,1.386294,2.432694,1 +13,5,0,0,3,528127,1,4133.128,8.872005,1,11,1,8.650519,0,21.5917,0,0,30.24221,0,0,0,1,0,4,83.3,10.57626,0,88.9,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,88.9,8.327032,1.386294,3.409239,1 +13,5,0,1,1,528160,0,4416.794,22.37098,1,11,1,0,6.03047,0,0,0,6.03047,0,0,0,0,0,4,80.9,13.8,0,93.2,450,0,0,0,1.386294,0,1,4.564348,6.160541,1,0,0,93.2,8.393395,1.386294,1.796825,1 +13,5,0,1,2,528160,0,4416.794,23.37098,1,11,1,38.72437,0,0,0,389.142,427.8664,1,0,0,1,0,4,80.9,13.8,0,93.2,450,0,0,0,1.386294,0,1,4.564348,6.160541,1,0,0,93.2,8.393395,1.386294,6.058811,1 +13,5,0,1,3,528160,0,4416.794,24.37098,1,11,1,0,0,0,0,2020.363,2020.363,1,0,0,0,0,4,80.9,13.8,0,93.2,450,0,0,0,1.386294,0,1,4.564348,6.160541,1,0,0,93.2,8.393395,1.386294,7.611032,1 +13,5,0,1,1,528161,0,4416.794,23.39494,0,7,1,0,0,0,0,0,0,0,0,0,0,0,4,94.1,10.3,0,92,450,0,0,0,1.386294,0,1,4.564348,6.160541,0,1,0,92,8.393395,1.386294,,0 +13,5,0,1,2,528161,0,4416.794,24.39494,0,7,1,0,3.796507,0,0,213.7434,217.5399,1,0,0,0,0,4,94.1,10.3,0,92,450,0,0,0,1.386294,0,1,4.564348,6.160541,0,1,0,92,8.393395,1.386294,5.382382,1 +13,5,0,1,3,528161,0,4416.794,25.39494,0,7,1,19.03114,0,0,0,0,19.03114,0,0,0,1,0,4,94.1,10.3,0,92,450,0,0,0,1.386294,0,1,4.564348,6.160541,0,1,0,92,8.393395,1.386294,2.946077,1 +13,5,0,0,1,528162,0,4416.794,3.129364,1,11,1,6.347863,0,0,0,0,6.347863,0,0,0,0,0,4,77.40034,10.57626,0,85.2,450,0,1,1,1.386294,0,1,4.564348,6.160541,0,1,0,85.2,8.393395,1.386294,1.848118,1 +13,5,0,0,2,528162,0,4416.794,4.129364,1,11,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,0,85.2,450,0,1,1,1.386294,0,1,4.564348,6.160541,0,1,0,85.2,8.393395,1.386294,,0 +13,5,0,0,3,528162,0,4416.794,5.129364,1,11,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,0,85.2,450,0,1,1,1.386294,0,1,4.564348,6.160541,0,1,0,85.2,8.393395,1.386294,,0 +11,5,0,0,1,528185,1,1028.162,52.23819,1,4,1,33.60272,0,0,0,0,33.60272,0,0,0,1,0,1,51.1,20.7,1,60.2,0,71.4,0,0,0,4.268298,0,0,0,1,0,0,60.2,6.9365,0,3.514607,1 +11,5,0,0,2,528185,1,1028.162,53.23819,1,4,1,11.45038,0,0,0,0,11.45038,0,0,0,1,0,1,51.1,20.7,1,60.2,0,71.4,0,0,0,4.268298,0,0,0,1,0,0,60.2,6.9365,0,2.438023,1 +11,5,0,0,3,528185,1,1028.162,54.23819,1,4,1,32.40418,0,29.26829,0,0,61.67247,0,0,0,0,1,1,51.1,20.7,1,60.2,0,71.4,0,0,0,4.268298,0,0,0,1,0,0,60.2,6.9365,0,4.121838,1 +11,5,0,1,1,528195,1,6674.895,39.41136,0,10,1,0,0,0,0,0,0,0,0,0,0,0,1,62.8,6.9,0,46.6,0,96,0,0,0,4.564348,0,0,0,1,0,0,46.6,8.806258,0,,0 +11,5,0,1,2,528195,1,6674.895,40.41136,0,10,1,0,0,0,0,0,0,0,0,0,0,0,1,62.8,6.9,0,46.6,0,96,0,0,0,4.564348,0,0,0,1,0,0,46.6,8.806258,0,,0 +11,5,0,1,3,528195,1,6674.895,41.41136,0,10,1,0,0,0,0,0,0,0,0,0,0,0,1,62.8,6.9,0,46.6,0,96,0,0,0,4.564348,0,0,0,1,0,0,46.6,8.806258,0,,0 +13,5,0,0,1,528263,1,3371.224,53.2731,1,11,1,68.77866,3.309712,0,0,0,72.08837,0,0,0,5,0,1,69.7,10.3,0,61.4,150,268.84,0,0,0,5.594116,1,4.564348,5.061929,1,0,0,61.4,8.123327,0,4.277893,1 +13,5,0,0,2,528263,1,3371.224,54.2731,1,11,1,0,34.83871,0,0,0,34.83871,0,0,0,0,0,1,69.7,10.3,0,61.4,150,268.84,0,0,0,5.594116,1,4.564348,5.061929,1,0,0,61.4,8.123327,0,3.550729,1 +13,5,0,0,3,528263,1,3371.224,55.2731,1,11,1,44.65494,17.49323,0,0,0,62.14817,0,0,0,4,0,1,69.7,10.3,0,61.4,150,268.84,0,0,0,5.594116,1,4.564348,5.061929,1,0,0,61.4,8.123327,0,4.129521,1 +11,5,0,1,1,528326,0,10274.49,49.20739,1,16,1,86.96729,39.20713,38.65213,0,0,164.8266,0,0,0,11,0,4,92,6.9,0,85.2,0,354.12,0,0,1.386294,5.869636,0,0,0,0,0,0,85.2,9.237516,1.386294,5.104894,1 +11,5,0,1,2,528326,0,10274.49,50.20739,1,16,1,76.87012,33.50161,0,0,0,110.3717,0,0,0,9,0,4,92,6.9,0,85.2,0,354.12,0,0,1.386294,5.869636,0,0,0,0,0,0,85.2,9.237516,1.386294,4.703854,1 +11,5,0,1,3,528326,0,10274.49,51.20739,1,16,1,203.1973,53.47497,68.2541,0,0,324.9264,0,0,0,19,1,4,92,6.9,0,85.2,0,354.12,0,0,1.386294,5.869636,0,0,0,0,0,0,85.2,9.237516,1.386294,5.783599,1 +11,5,0,1,4,528326,0,10274.49,52.20739,1,16,1,1351.53,35.63657,0,0,3167.737,4554.904,3,0,0,30,0,4,92,6.9,0,85.2,0,354.12,0,0,1.386294,5.869636,0,0,0,0,0,0,85.2,9.237516,1.386294,8.42396,1 +11,5,0,1,5,528326,0,10274.49,53.20739,1,16,1,360.5489,42.4048,25.72899,0,844.7341,1273.417,1,0,0,27,0,4,92,6.9,0,85.2,0,354.12,0,0,1.386294,5.869636,0,0,0,0,0,0,85.2,9.237516,1.386294,7.149459,1 +11,5,0,1,1,528327,0,10274.49,17.11431,0,16,1,54.50941,16.31814,0,0,0,70.82755,0,0,0,8,0,4,96.8,3.4,0,92,0,354.12,1,0,1.386294,5.869636,0,0,0,0,0,0,92,9.237516,1.386294,4.260248,1 +11,5,0,1,2,528327,0,10274.49,18.11431,0,16,1,71.13354,14.10739,0,0,0,85.24094,0,0,0,9,0,4,96.8,3.4,0,92,0,354.12,0,0,1.386294,5.869636,0,0,0,0,0,0,92,9.237516,1.386294,4.445482,1 +11,5,0,1,3,528327,0,10274.49,19.11431,0,16,1,45.85612,16.3273,.8413967,0,0,63.02482,0,0,0,6,0,4,96.8,3.4,0,92,0,354.12,0,0,1.386294,5.869636,0,0,0,0,0,0,92,9.237516,1.386294,4.143528,1 +11,5,0,1,4,528327,0,10274.49,20.11431,0,16,1,19.2671,4.91122,29.07442,0,0,53.25274,0,0,0,2,0,4,96.8,3.4,0,92,0,354.12,0,0,1.386294,5.869636,0,0,0,0,0,0,92,9.237516,1.386294,3.975049,1 +11,5,0,1,5,528327,0,10274.49,21.11431,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,96.8,3.4,0,92,0,354.12,0,0,1.386294,5.869636,0,0,0,0,0,0,92,9.237516,1.386294,,0 +11,5,0,1,1,528328,0,10274.49,46.98152,0,16,1,14.8662,0,40.19822,0,0,55.06442,0,0,0,1,0,4,77.7,6.9,0,62.5,0,354.12,0,0,1.386294,5.869636,0,0,0,0,0,0,62.5,9.237516,1.386294,4.008504,1 +11,5,0,1,2,528328,0,10274.49,47.98152,0,16,1,42.68013,.8673704,0,0,0,43.5475,0,0,0,1,0,4,77.7,6.9,0,62.5,0,354.12,0,0,1.386294,5.869636,0,0,0,0,0,0,62.5,9.237516,1.386294,3.773852,1 +11,5,0,1,3,528328,0,10274.49,48.98152,0,16,1,65.20824,4.530921,38.50232,0,0,108.2415,0,0,0,2,0,4,77.7,6.9,0,62.5,0,354.12,0,0,1.386294,5.869636,0,0,0,0,0,0,62.5,9.237516,1.386294,4.684365,1 +11,5,0,1,4,528328,0,10274.49,49.98152,0,16,1,45.14545,6.241027,0,0,0,51.38647,0,0,0,1,0,4,77.7,6.9,0,62.5,0,354.12,0,0,1.386294,5.869636,0,0,0,0,0,0,62.5,9.237516,1.386294,3.939375,1 +11,5,0,1,5,528328,0,10274.49,50.98152,0,16,1,79.61235,14.55918,36.74443,0,0,130.916,0,0,0,8,0,4,77.7,6.9,0,62.5,0,354.12,0,0,1.386294,5.869636,0,0,0,0,0,0,62.5,9.237516,1.386294,4.874556,1 +11,5,0,1,1,528330,0,10274.49,13.67556,0,16,1,63.42914,.7680872,27.82953,0,0,92.02676,0,0,0,6,0,4,86.7,10.57626,0,88.9,0,354.12,1,0,1.386294,5.869636,0,0,0,0,0,0,88.9,9.237516,1.386294,4.522079,1 +11,5,0,1,2,528330,0,10274.49,14.67556,0,16,1,10.09637,0,0,0,0,10.09637,0,0,0,1,0,4,86.7,10.57626,0,88.9,0,354.12,1,0,1.386294,5.869636,0,0,0,0,0,0,88.9,9.237516,1.386294,2.312176,1 +11,5,0,1,3,528330,0,10274.49,15.67556,0,16,1,61.84266,8.872528,27.2276,0,0,97.94279,0,0,0,8,0,4,86.7,10.57626,0,88.9,0,354.12,1,0,1.386294,5.869636,0,0,0,0,0,0,88.9,9.237516,1.386294,4.584383,1 +11,5,0,1,4,528330,0,10274.49,16.67556,0,16,1,64.60143,29.38799,0,75.55724,0,93.98943,0,0,4,9,0,4,86.7,10.57626,0,88.9,0,354.12,1,0,1.386294,5.869636,0,0,0,0,0,0,88.9,9.237516,1.386294,4.543182,1 +11,5,0,1,5,528330,0,10274.49,17.67556,0,16,1,57.63293,66.23328,25.72899,377.3585,0,149.5952,0,0,22,7,0,4,86.7,10.57626,0,88.9,0,354.12,1,0,1.386294,5.869636,0,0,0,0,0,0,88.9,9.237516,1.386294,5.007933,1 +14,5,95,0,1,528359,0,11026.98,24.29295,1,16,1,19.65602,17.02703,0,0,0,36.68305,0,0,0,2,0,2,60.1,27.6,0,72.6,850,850,0,0,.6931472,6.745236,0,4.564348,6.79653,1,0,0,72.6,9.308191,.6931472,3.602315,1 +14,5,95,0,2,528359,0,11026.98,25.29295,1,16,1,8.204193,0,0,0,157.247,165.4512,1,0,0,1,0,2,60.1,27.6,0,72.6,850,850,0,0,.6931472,6.745236,0,4.564348,6.79653,1,0,0,72.6,9.308191,.6931472,5.108676,1 +11,5,0,1,1,528553,0,14946.04,6.099932,0,16,1,44.10307,3.587711,0,0,0,47.69078,0,0,0,2,0,3,68.3,10.57626,0,74.1,0,469.68,1,0,1.098612,6.152051,0,0,0,1,0,0,74.1,9.612268,1.098612,3.864738,1 +11,5,0,1,2,528553,0,14946.04,7.099932,0,16,1,35.79624,33.64846,0,0,0,69.4447,0,0,0,4,0,4,68.3,10.57626,0,74.1,0,469.68,1,0,1.386294,6.152051,0,0,0,1,0,0,74.1,9.612268,1.386294,4.240531,1 +11,5,0,1,3,528553,0,14946.04,8.099932,0,16,1,14.72444,11.15271,0,0,0,25.87716,0,0,0,2,0,4,68.3,10.57626,0,74.1,0,469.68,1,0,1.386294,6.152051,0,0,0,1,0,0,74.1,9.612268,1.386294,3.253361,1 +11,5,0,1,4,528553,0,14946.04,9.099932,0,16,1,148.47,18.26596,0,0,0,166.7359,0,0,0,7,0,4,68.3,10.57626,0,74.1,0,469.68,1,0,1.386294,6.152051,0,0,0,1,0,0,74.1,9.612268,1.386294,5.116411,1 +11,5,0,1,5,528553,0,14946.04,10.09993,0,16,1,20.92624,20.50429,0,0,0,41.43053,0,0,0,2,0,4,68.3,10.57626,0,74.1,0,469.68,1,0,1.386294,6.152051,0,0,0,1,0,0,74.1,9.612268,1.386294,3.724018,1 +11,5,0,1,1,528554,0,14946.04,35.95072,0,18,1,19.82161,0,0,0,0,19.82161,0,0,0,1,0,3,86.2,6.9,0,86.4,0,469.68,0,0,1.098612,6.152051,0,0,0,1,0,0,86.4,9.612268,1.098612,2.986773,1 +11,5,0,1,2,528554,0,14946.04,36.95072,0,18,1,13.76778,0,24.81872,0,0,38.58651,0,0,0,1,0,4,86.2,6.9,0,86.4,0,469.68,0,0,1.386294,6.152051,0,0,0,1,0,0,86.4,9.612268,1.386294,3.652903,1 +11,5,0,1,3,528554,0,14946.04,37.95072,0,18,1,0,0,0,0,0,0,0,0,0,0,0,4,86.2,6.9,0,86.4,0,469.68,0,0,1.386294,6.152051,0,0,0,1,0,0,86.4,9.612268,1.386294,,0 +11,5,0,1,4,528554,0,14946.04,38.95072,0,18,1,18.13374,2.859841,0,0,0,20.99358,0,0,0,3,0,4,86.2,6.9,0,86.4,0,469.68,0,0,1.386294,6.152051,0,0,0,1,0,0,86.4,9.612268,1.386294,3.044217,1 +11,5,0,1,5,528554,0,14946.04,39.95072,0,18,1,13.72213,0,30.67924,0,0,44.40137,0,0,0,1,0,4,86.2,6.9,0,86.4,0,469.68,0,0,1.386294,6.152051,0,0,0,1,0,0,86.4,9.612268,1.386294,3.79327,1 +11,5,0,1,1,528555,0,14946.04,36.3614,1,16,1,11.89296,12.05154,0,0,545.2428,569.1873,1,0,0,2,0,3,63.8,24.1,0,96.6,0,469.68,0,0,1.098612,6.152051,0,0,0,1,0,0,96.6,9.612268,1.098612,6.34421,1 +11,5,0,1,2,528555,0,14946.04,37.3614,1,16,1,56.44791,34.51124,29.59156,0,0,120.5507,0,0,0,8,0,4,63.8,24.1,0,96.6,0,469.68,0,0,1.386294,6.152051,0,0,0,1,0,0,96.6,9.612268,1.386294,4.79207,1 +11,5,0,1,3,528555,0,14946.04,38.3614,1,16,1,82.45688,0,0,0,373.5801,456.037,1,0,0,2,8,4,63.8,24.1,0,96.6,0,469.68,0,0,1.386294,6.152051,0,0,0,1,0,0,96.6,9.612268,1.386294,6.122574,1 +11,5,0,1,4,528555,0,14946.04,39.3614,1,16,1,30.60068,1.938043,0,0,0,32.53872,0,0,0,2,0,4,63.8,24.1,0,96.6,0,469.68,0,0,1.386294,6.152051,0,0,0,1,0,0,96.6,9.612268,1.386294,3.482431,1 +11,5,0,1,5,528555,0,14946.04,40.3614,1,16,1,42.19554,6.542024,2.401372,0,0,51.13894,0,0,0,5,0,4,63.8,24.1,0,96.6,0,469.68,0,0,1.386294,6.152051,0,0,0,1,0,0,96.6,9.612268,1.386294,3.934546,1 +14,5,95,0,1,528562,.4758801,798.7711,19.01711,1,9,1,0,0,0,0,0,0,0,0,0,0,0,1,71.8,3.4,0,71.6,0,0,0,0,0,0,0,4.564348,0,1,0,0,71.6,6.684326,0,,0 +14,5,95,0,2,528562,.4758801,798.7711,20.01711,1,9,1,0,0,0,0,0,0,0,0,0,0,0,1,71.8,3.4,0,71.6,0,0,0,0,0,0,0,4.564348,0,1,0,0,71.6,6.684326,0,,0 +14,5,95,0,3,528562,.4758801,798.7711,21.01711,1,9,1,0,0,0,0,0,0,0,0,0,0,0,1,71.8,3.4,0,71.6,0,0,0,0,0,0,0,4.564348,0,1,0,0,71.6,6.684326,0,,0 +11,5,0,1,1,528589,1,6674.895,35.70979,0,10,1,0,0,0,0,0,0,0,0,0,0,0,4,75.5,10.3,0,54.5,0,0,0,0,1.386294,0,0,0,0,1,0,0,54.5,8.806258,1.386294,,0 +11,5,0,1,2,528589,1,6674.895,36.70979,0,10,1,0,0,0,0,0,0,0,0,0,0,0,4,75.5,10.3,0,54.5,0,0,0,0,1.386294,0,0,0,0,1,0,0,54.5,8.806258,1.386294,,0 +11,5,0,1,3,528589,1,6674.895,37.70979,0,10,1,0,0,0,0,0,0,0,0,0,0,0,4,75.5,10.3,0,54.5,0,0,0,0,1.386294,0,0,0,0,1,0,0,54.5,8.806258,1.386294,,0 +11,5,0,1,1,528590,1,6674.895,46.38193,1,12,1,10.51746,0,0,0,846.8658,857.3832,1,0,0,2,0,4,80.3,10.3,0,73.9,0,0,0,0,1.386294,0,0,0,0,1,0,0,73.9,8.806258,1.386294,6.753885,1 +11,5,0,1,2,528590,1,6674.895,47.38193,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,80.3,10.3,0,73.9,0,0,0,0,1.386294,0,0,0,0,1,0,0,73.9,8.806258,1.386294,,0 +11,5,0,1,3,528590,1,6674.895,48.38193,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,80.3,10.3,0,73.9,0,0,0,0,1.386294,0,0,0,0,1,0,0,73.9,8.806258,1.386294,,0 +11,5,0,1,1,528591,1,6674.895,8.060233,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,75,10.57626,0,66.7,0,0,1,0,1.386294,0,0,0,0,0,0,0,66.7,8.806258,1.386294,,0 +11,5,0,1,2,528591,1,6674.895,9.060233,0,12,1,19.2671,0,0,0,0,19.2671,0,0,0,0,0,4,75,10.57626,0,66.7,0,0,1,0,1.386294,0,0,0,0,0,0,0,66.7,8.806258,1.386294,2.958399,1 +11,5,0,1,3,528591,1,6674.895,10.06023,0,12,1,10.2916,0,0,0,0,10.2916,0,0,0,0,0,4,75,10.57626,0,66.7,0,0,1,0,1.386294,0,0,0,0,0,0,0,66.7,8.806258,1.386294,2.331328,1 +11,5,0,1,1,528601,0,13216.59,59.91513,0,12,1,0,4.738409,0,0,0,4.738409,0,0,0,0,0,2,98.4,6.9,0,93.2,0,303,0,0,.6931472,5.713733,0,0,0,0,0,0,93.2,9.489304,.6931472,1.555701,1 +11,5,0,1,2,528601,0,13216.59,60.91513,0,12,1,83.11069,23.56107,31.60305,0,0,138.2748,0,0,0,4,0,2,98.4,6.9,0,93.2,0,303,0,0,.6931472,5.713733,0,0,0,0,0,0,93.2,9.489304,.6931472,4.929243,1 +11,5,0,1,3,528601,0,13216.59,61.91513,0,12,1,43.37979,88.1115,0,0,0,131.4913,0,0,0,2,0,2,98.4,6.9,0,93.2,0,303,0,0,.6931472,5.713733,0,0,0,0,0,0,93.2,9.489304,.6931472,4.878941,1 +11,5,0,1,1,528602,0,13216.59,60.69542,1,10,1,214.3769,17.33305,0,0,0,231.7099,0,0,0,4,1,2,99.5,17.2,0,81.8,0,303,0,0,.6931472,5.713733,0,0,0,0,1,0,81.8,9.489304,.6931472,5.445486,1 +11,5,0,1,2,528602,0,13216.59,61.69542,1,10,1,66.12595,29.17939,31.35878,0,497.7099,624.374,1,0,0,3,0,2,99.5,17.2,0,81.8,0,303,0,0,.6931472,5.713733,0,0,0,0,1,0,81.8,9.489304,.6931472,6.436749,1 +11,5,0,1,3,528602,0,13216.59,62.69542,1,10,1,6.968641,10.1777,0,0,0,17.14634,0,0,0,1,0,2,99.5,17.2,0,81.8,0,303,0,0,.6931472,5.713733,0,0,0,0,1,0,81.8,9.489304,.6931472,2.841785,1 +18,5,25,0,1,528603,1,4663.93,25.97947,0,12,1,14.8662,12.33399,27.39346,0,0,54.59366,0,0,0,1,0,1,64.9,13.8,0,59.1,748,748,0,0,0,6.617403,0,3.258096,8.003697,1,0,0,59.1,8.447828,0,3.999918,1 +18,5,25,0,1,528611,1,6674.895,27.25804,0,13,1,330.4738,4.862843,30.92269,0,986.3591,1352.618,1,0,0,2,7,1,88.3,20.7,0,51.1,80,0,0,0,0,0,0,3.258096,5.768321,1,0,0,51.1,8.806258,0,7.209797,1 +18,5,25,0,2,528611,1,6674.895,28.25804,0,13,1,212.5864,0,27.20148,0,0,239.7879,0,0,0,1,5,1,88.3,20.7,0,51.1,80,0,0,0,0,0,0,3.258096,5.768321,1,0,0,51.1,8.806258,0,5.479755,1 +18,5,25,0,3,528611,1,6674.895,29.25804,0,13,1,168.7897,0,12.69573,0,598.8997,780.3851,1,0,0,5,2,1,88.3,20.7,0,51.1,80,0,0,0,0,0,0,3.258096,5.768321,1,0,0,51.1,8.806258,0,6.659788,1 +18,5,25,0,4,528611,1,6674.895,30.25804,0,13,1,64.54062,0,0,0,1393.888,1458.428,1,0,0,1,3,1,88.3,20.7,0,51.1,80,0,0,0,0,0,0,3.258096,5.768321,1,0,0,51.1,8.806258,0,7.285115,1 +18,5,25,0,5,528611,1,6674.895,31.25804,0,13,1,0,0,0,62.28374,11821.64,11821.64,2,0,27,0,0,1,88.3,20.7,0,51.1,80,0,0,0,0,0,0,3.258096,5.768321,1,0,0,51.1,8.806258,0,9.377687,1 +13,5,0,0,1,528619,1,86.53354,6.551677,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,98.3,10.57626,0,63,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,63,4.472022,1.791759,,0 +13,5,0,0,2,528619,1,86.53354,7.551677,0,12,1,18.03341,2.129841,0,0,0,20.16325,0,0,0,0,0,6,98.3,10.57626,0,63,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,63,4.472022,1.791759,3.003862,1 +13,5,0,0,3,528619,1,86.53354,8.551677,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,98.3,10.57626,0,63,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,63,4.472022,1.791759,,0 +13,5,0,0,1,528620,1,86.53354,11.9425,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,66.7,10.57626,0,55.6,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,1,55.6,4.472022,1.791759,,0 +13,5,0,0,2,528620,1,86.53354,12.9425,0,12,1,5.694761,0,0,0,0,5.694761,0,0,0,2,0,6,66.7,10.57626,0,55.6,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,1,55.6,4.472022,1.791759,1.739547,1 +13,5,0,0,3,528620,1,86.53354,13.9425,0,12,1,129.7751,0,0,0,886.1592,1015.934,1,0,0,1,0,6,66.7,10.57626,0,55.6,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,1,55.6,4.472022,1.791759,6.923564,1 +13,5,0,0,1,528621,1,86.53354,4,0,12,1,14.38849,0,0,0,0,14.38849,0,0,0,1,0,6,77.40034,10.57626,0,70.4,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,70.4,4.472022,1.791759,2.666429,1 +13,5,0,0,2,528621,1,86.53354,5,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,77.40034,10.57626,0,70.4,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,70.4,4.472022,1.791759,,0 +13,5,0,0,3,528621,1,86.53354,6,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,77.40034,10.57626,0,70.4,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,70.4,4.472022,1.791759,,0 +13,5,0,0,1,528622,1,86.53354,30.14921,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,85.1,6.9,0,78.4,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,78.4,4.472022,1.791759,,0 +13,5,0,0,2,528622,1,86.53354,31.14921,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,85.1,6.9,0,78.4,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,78.4,4.472022,1.791759,,0 +13,5,0,0,3,528622,1,86.53354,32.14921,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,85.1,6.9,0,78.4,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,78.4,4.472022,1.791759,,0 +13,5,0,0,1,528623,1,86.53354,9.722108,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,90,10.57626,0,74.1,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,74.1,4.472022,1.791759,,0 +13,5,0,0,2,528623,1,86.53354,10.72211,1,12,1,1.898254,0,0,0,0,1.898254,0,0,0,0,0,6,90,10.57626,0,74.1,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,74.1,4.472022,1.791759,.6409343,1 +13,5,0,0,3,528623,1,86.53354,11.72211,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,90,10.57626,0,74.1,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,74.1,4.472022,1.791759,,0 +13,5,0,0,1,528624,1,86.53354,11.1102,0,12,1,0,1.671604,0,0,0,1.671604,0,0,0,0,0,6,78.3,10.57626,0,74.1,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,74.1,4.472022,1.791759,.5137836,1 +13,5,0,0,2,528624,1,86.53354,12.1102,0,12,1,4.176158,0,0,0,0,4.176158,0,0,0,1,0,6,78.3,10.57626,0,74.1,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,74.1,4.472022,1.791759,1.429392,1 +13,5,0,0,3,528624,1,86.53354,13.1102,0,12,1,82.00692,0,0,0,0,82.00692,0,0,0,4,0,6,78.3,10.57626,0,74.1,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,74.1,4.472022,1.791759,4.406804,1 +16,5,95,1,1,528705,1,3779.314,51.37303,1,11,1,87.08456,128.8809,0,0,0,215.9655,0,0,0,5,0,1,86.7,6.9,0,50,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,1,0,0,50,8.237562,0,5.375119,1 +16,5,95,1,2,528705,1,3779.314,52.37303,1,11,1,57.04571,159.8036,37.77862,0,0,254.6279,0,0,0,3,1,1,86.7,6.9,0,50,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,1,0,0,50,8.237562,0,5.539803,1 +16,5,95,1,3,528705,1,3779.314,53.37303,1,11,1,17.15266,189.1595,0,0,0,206.3122,0,0,0,3,0,1,86.7,6.9,0,50,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,1,0,0,50,8.237562,0,5.329391,1 +11,5,0,0,1,528709,0,3533.538,16.11225,0,12,1,28.34514,0,0,0,0,28.34514,0,0,0,1,1,3,71.8,6.9,0,67,0,216.96,1,0,1.098612,5.379713,0,0,0,0,0,0,67,8.170338,1.098612,3.344456,1 +11,5,0,0,2,528709,0,3533.538,17.11225,0,12,1,23.63091,0,0,0,0,23.63091,0,0,0,2,0,3,71.8,6.9,0,67,0,216.96,1,0,1.098612,5.379713,0,0,0,0,0,0,67,8.170338,1.098612,3.162555,1 +11,5,0,0,3,528709,0,3533.538,18.11225,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,71.8,6.9,0,67,0,216.96,0,0,1.098612,5.379713,0,0,0,0,0,0,67,8.170338,1.098612,,0 +11,5,0,0,1,528710,0,3533.538,49.01574,1,12,1,56.69029,69.31638,13.33889,0,0,139.3456,0,0,0,5,1,3,68.1,13.8,0,75,0,216.96,0,0,1.098612,5.379713,0,0,0,0,0,1,75,8.170338,1.098612,4.936957,1 +11,5,0,0,2,528710,0,3533.538,50.01574,1,12,1,29.63241,26.55289,56.26406,0,0,112.4494,0,0,0,2,2,3,68.1,13.8,0,75,0,216.96,0,0,1.098612,5.379713,0,0,0,0,0,1,75,8.170338,1.098612,4.722503,1 +11,5,0,0,3,528710,0,3533.538,51.01574,1,12,1,25.03383,22.83829,0,0,0,47.87212,0,0,0,3,0,3,68.1,13.8,0,75,0,216.96,0,0,1.098612,5.379713,0,0,0,0,0,1,75,8.170338,1.098612,3.868533,1 +11,5,0,0,1,528711,0,3533.538,53.71937,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,95.7,0,0,92,0,216.96,0,0,1.098612,5.379713,0,0,0,0,0,0,92,8.170338,1.098612,,0 +11,5,0,0,2,528711,0,3533.538,54.71937,0,12,1,58.13953,0,30.0075,0,0,88.14703,0,0,0,1,1,3,95.7,0,0,92,0,216.96,0,0,1.098612,5.379713,0,0,0,0,0,0,92,8.170338,1.098612,4.479006,1 +11,5,0,0,3,528711,0,3533.538,55.71937,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,95.7,0,0,92,0,216.96,0,0,1.098612,5.379713,0,0,0,0,0,0,92,8.170338,1.098612,,0 +13,5,0,0,1,528723,0,6674.895,50.23682,0,10,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,.1442925,,450,150,0,0,1.386294,5.010635,1,4.564348,6.160541,1,0,0,70.68995,8.806258,1.386294,,0 +13,5,0,0,1,528724,0,6674.895,16.10678,0,8,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,.1442925,,450,150,1,0,1.386294,5.010635,1,4.564348,6.160541,0,0,0,70.68995,8.806258,1.386294,,0 +13,5,0,0,1,528725,0,6674.895,40.0219,1,8,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,.1442925,,450,150,0,0,1.386294,5.010635,1,4.564348,6.160541,1,0,0,70.68995,8.806258,1.386294,,0 +13,5,0,0,1,528726,0,6674.895,12.08214,0,8,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,.1442925,,450,150,1,0,1.386294,5.010635,1,4.564348,6.160541,0,0,0,70.68995,8.806258,1.386294,,0 +18,5,25,1,1,528734,1,14212.32,12.00548,0,12,1,12.96758,0,0,0,0,12.96758,0,0,0,1,0,5,81.7,10.57626,0,96.3,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,96.3,9.561934,1.609438,2.562453,1 +18,5,25,1,2,528734,1,14212.32,13.00548,0,12,1,38.72752,4.098663,0,0,0,42.82619,0,0,0,6,0,5,81.7,10.57626,0,96.3,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,96.3,9.561934,1.609438,3.75715,1 +18,5,25,1,3,528734,1,14212.32,14.00548,0,12,1,20.73635,0,0,0,0,20.73635,0,0,0,2,0,5,81.7,10.57626,0,96.3,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,96.3,9.561934,1.609438,3.031888,1 +18,5,25,1,4,528734,1,14212.32,15.00548,0,12,1,19.36219,0,0,0,0,19.36219,0,0,0,3,0,5,81.7,10.57626,0,96.3,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,96.3,9.561934,1.609438,2.963322,1 +18,5,25,1,5,528734,1,14212.32,16.00548,0,12,1,24.22145,0,0,0,0,24.22145,0,0,0,2,0,5,81.7,10.57626,0,96.3,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,96.3,9.561934,1.609438,3.187239,1 +18,5,25,1,1,528735,1,14212.32,6.403833,0,12,1,13.46633,1.586035,0,0,0,15.05237,0,0,0,1,0,5,90,10.57626,0,96.3,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,96.3,9.561934,1.609438,2.711535,1 +18,5,25,1,2,528735,1,14212.32,7.403833,0,12,1,5.532504,0,0,0,0,5.532504,0,0,0,1,0,5,90,10.57626,0,96.3,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,96.3,9.561934,1.609438,1.71064,1 +18,5,25,1,3,528735,1,14212.32,8.403833,0,12,1,14.81168,0,0,0,0,14.81168,0,0,0,1,0,5,90,10.57626,0,96.3,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,96.3,9.561934,1.609438,2.695416,1 +18,5,25,1,4,528735,1,14212.32,9.403833,0,12,1,23.53835,0,0,0,0,23.53835,0,0,0,3,0,5,90,10.57626,0,96.3,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,96.3,9.561934,1.609438,3.158631,1 +18,5,25,1,5,528735,1,14212.32,10.40383,0,12,1,26.6436,0,0,0,0,26.6436,0,0,0,2,0,5,90,10.57626,0,96.3,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,96.3,9.561934,1.609438,3.282549,1 +18,5,25,1,1,528736,1,14212.32,11.27721,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,85,10.57626,0,74.1,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,74.1,9.561934,1.609438,,0 +18,5,25,1,2,528736,1,14212.32,12.27721,1,12,1,13.83126,1.304749,26.85108,0,0,41.98709,0,0,0,1,0,5,85,10.57626,0,74.1,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,74.1,9.561934,1.609438,3.737362,1 +18,5,25,1,3,528736,1,14212.32,13.27721,1,12,1,34.27846,4.672027,16.7245,0,0,55.67499,0,0,0,5,0,5,85,10.57626,0,74.1,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,74.1,9.561934,1.609438,4.019531,1 +18,5,25,1,4,528736,1,14212.32,14.27721,1,12,1,17.84358,6.685649,0,0,0,24.52923,0,0,0,3,0,5,85,10.57626,0,74.1,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,74.1,9.561934,1.609438,3.199866,1 +18,5,25,1,5,528736,1,14212.32,15.27721,1,12,1,12.11073,4.096886,0,0,0,16.20761,0,0,0,1,0,5,85,10.57626,0,74.1,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,74.1,9.561934,1.609438,2.785481,1 +18,5,25,1,1,528737,1,14212.32,31.13758,0,13,1,23.4414,0,29.42643,0,0,52.86783,0,0,0,2,1,5,92.6,3.4,0,83,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,83,9.561934,1.609438,3.967795,1 +18,5,25,1,2,528737,1,14212.32,32.13758,0,13,1,47.02628,8.091287,0,0,0,55.11757,0,0,0,2,0,5,92.6,3.4,0,83,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,83,9.561934,1.609438,4.009469,1 +18,5,25,1,3,528737,1,14212.32,33.13758,0,13,1,41.47271,18.51883,29.92806,0,0,89.91959,0,0,0,5,0,5,92.6,3.4,0,83,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,83,9.561934,1.609438,4.498916,1 +18,5,25,1,4,528737,1,14212.32,34.13758,0,13,1,159.0737,58.53835,0,0,0,217.612,0,0,0,7,0,5,92.6,3.4,0,83,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,83,9.561934,1.609438,5.382714,1 +18,5,25,1,5,528737,1,14212.32,35.13758,0,13,1,20.76125,6.138408,0,0,0,26.89965,0,0,0,2,0,5,92.6,3.4,0,83,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,83,9.561934,1.609438,3.292114,1 +18,5,25,1,1,528738,1,14212.32,30.62012,1,12,1,194.7132,1.236908,0,0,567.5811,763.5312,1,1,0,5,0,5,81.4,20.7,0,65.9,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,65.9,9.561934,1.609438,6.637954,1 +18,5,25,1,2,528738,1,14212.32,31.62012,1,12,1,60.62702,0,0,0,0,60.62702,0,0,0,4,0,5,81.4,20.7,0,65.9,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,65.9,9.561934,1.609438,4.104741,1 +18,5,25,1,3,528738,1,14212.32,32.62012,1,12,1,24.54507,0,0,0,0,24.54507,0,0,0,1,0,5,81.4,20.7,0,65.9,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,65.9,9.561934,1.609438,3.200511,1 +18,5,25,1,4,528738,1,14212.32,33.62012,1,12,1,89.59757,4.631739,0,0,528.9559,623.1852,1,0,0,3,0,5,81.4,20.7,0,65.9,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,65.9,9.561934,1.609438,6.434844,1 +18,5,25,1,5,528738,1,14212.32,34.62012,1,12,1,13.84083,0,25.32872,0,0,39.16955,0,0,0,1,0,5,81.4,20.7,0,65.9,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,65.9,9.561934,1.609438,3.6679,1 +15,5,95,1,1,528827,1,6674.895,19.47433,0,8,1,4.206984,0,0,0,0,4.206984,0,0,0,1,0,3,85.2,3.4,0,81.8,772.5,772.5,0,0,1.098612,6.649632,0,4.564348,6.700925,1,0,0,81.8,8.806258,1.098612,1.436746,1 +15,5,95,1,2,528827,1,6674.895,20.47433,0,8,1,0,0,0,0,0,0,0,0,0,0,0,3,85.2,3.4,0,81.8,772.5,772.5,0,0,1.098612,6.649632,0,4.564348,6.700925,1,0,0,81.8,8.806258,1.098612,,0 +15,5,95,1,3,528827,1,6674.895,21.47433,0,8,1,134.8199,0,24.01372,0,0,158.8336,0,0,0,1,1,3,85.2,3.4,0,81.8,772.5,772.5,0,0,1.098612,6.649632,0,4.564348,6.700925,1,0,0,81.8,8.806258,1.098612,5.067857,1 +15,5,95,1,1,528828,1,6674.895,18.12457,1,10.96978,1,0,0,0,0,0,0,0,0,0,0,0,3,53.2,10.3,0,56,772.5,772.5,0,0,1.098612,6.649632,0,4.564348,6.700925,0,0,0,56,8.806258,1.098612,,0 +15,5,95,1,2,528828,1,6674.895,19.12457,1,10.96978,1,11.33358,0,35.5119,0,0,46.84549,0,0,0,0,1,3,53.2,10.3,0,56,772.5,772.5,0,0,1.098612,6.649632,0,4.564348,6.700925,0,0,0,56,8.806258,1.098612,3.846855,1 +15,5,95,1,3,528828,1,6674.895,20.12457,1,10.96978,1,9.433962,22.4048,0,0,0,31.83876,0,0,0,1,0,3,53.2,10.3,0,56,772.5,772.5,0,0,1.098612,6.649632,0,4.564348,6.700925,0,0,0,56,8.806258,1.098612,3.460685,1 +15,5,95,1,1,528829,1,6674.895,42.63929,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,80.3,3.4,0,75,772.5,772.5,0,0,1.098612,6.649632,0,4.564348,6.700925,1,0,0,75,8.806258,1.098612,,0 +15,5,95,1,2,528829,1,6674.895,43.63929,0,12,.7704918,15.48923,0,0,0,0,15.48923,0,0,0,0,0,3,80.3,3.4,0,75,772.5,772.5,0,0,1.098612,6.649632,0,4.564348,6.700925,1,0,0,75,8.806258,1.098612,2.740145,1 +13,5,0,0,1,528869,0,10214.08,26.14374,1,17,1,34.15233,12.2801,25.04177,0,0,71.47421,0,0,0,4,0,2,75.5,3.4,0,73.9,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,73.9,9.23162,.6931472,4.269337,1 +13,5,0,0,2,528869,0,10214.08,27.14374,1,17,1,9.11577,2.269827,0,0,0,11.3856,0,0,0,1,0,2,75.5,3.4,0,73.9,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,73.9,9.23162,.6931472,2.432349,1 +13,5,0,0,3,528869,0,10214.08,28.14374,1,17,1,80.65861,25.5148,0,0,392.2468,498.4202,1,0,0,3,0,2,75.5,3.4,0,73.9,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,73.9,9.23162,.6931472,6.211443,1 +13,5,0,0,4,528869,0,10214.08,29.14374,1,17,1,36.009,21.03901,0,0,0,57.04801,0,0,0,1,0,2,75.5,3.4,0,73.9,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,73.9,9.23162,.6931472,4.043893,1 +13,5,0,0,5,528869,0,10214.08,30.14374,1,17,1,28.75507,3.991881,4.573748,0,458.0514,495.3721,1,0,0,3,0,3,75.5,3.4,0,73.9,300,300,0,0,1.098612,5.703783,1,4.564348,5.755076,1,0,0,73.9,9.23162,1.098612,6.205309,1 +13,5,0,0,1,528870,0,10214.08,26.27242,0,19,1,29.48403,4.933661,0,0,0,34.41769,0,0,0,2,0,2,64.9,10.3,0,51.1,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,51.1,9.23162,.6931472,3.538571,1 +13,5,0,0,2,528870,0,10214.08,27.27242,0,19,1,20.51048,5.911577,0,0,0,26.42206,0,0,0,1,0,2,64.9,10.3,0,51.1,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,51.1,9.23162,.6931472,3.274199,1 +13,5,0,0,3,528870,0,10214.08,28.27242,0,19,1,8.336807,5.581492,0,0,0,13.9183,0,0,0,1,0,2,64.9,10.3,0,51.1,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,51.1,9.23162,.6931472,2.633204,1 +13,5,0,0,4,528870,0,10214.08,29.27242,0,19,1,65.26632,11.56414,0,0,0,76.83046,0,0,0,4,0,2,64.9,10.3,0,51.1,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,51.1,9.23162,.6931472,4.341601,1 +13,5,0,0,5,528870,0,10214.08,30.27242,0,19,1,7.780785,2.87889,0,0,0,10.65968,0,0,0,1,0,3,64.9,10.3,0,51.1,300,300,0,0,1.098612,5.703783,1,4.564348,5.755076,1,0,0,51.1,9.23162,1.098612,2.366468,1 +11,5,0,0,1,528871,0,6674.895,47.9562,1,16,1,48.77032,32.58024,185.6107,0,0,266.9612,0,0,0,5,0,3,92.6,17.2,1,75,0,356.04,0,0,1.098612,5.875043,0,0,0,1,0,0,75,8.806258,1.098612,5.587103,1 +11,5,0,0,2,528871,0,6674.895,48.9562,1,16,1,42.76069,22.003,27.69692,0,0,92.46062,0,0,0,3,0,3,92.6,17.2,1,75,0,356.04,0,0,1.098612,5.875043,0,0,0,1,0,0,75,8.806258,1.098612,4.526783,1 +11,5,0,0,3,528871,0,6674.895,49.9562,1,16,1,17.92963,17.26996,33.80244,0,0,69.00203,0,0,0,2,0,3,92.6,17.2,1,75,0,356.04,0,0,1.098612,5.875043,0,0,0,1,0,0,75,8.806258,1.098612,4.234136,1 +11,5,0,0,1,528873,0,6674.895,13.44832,1,16,1,56.06503,0,3.584827,0,0,59.64985,0,0,0,5,0,3,100,10.57626,.1442925,100,0,356.04,1,1,1.098612,5.875043,0,0,0,0,0,0,100,8.806258,1.098612,4.088492,1 +11,5,0,0,2,528873,0,6674.895,14.44832,1,16,1,10.12753,0,0,0,0,10.12753,0,0,0,1,0,3,100,10.57626,.1442925,100,0,356.04,1,1,1.098612,5.875043,0,0,0,0,0,0,100,8.806258,1.098612,2.315258,1 +11,5,0,0,3,528873,0,6674.895,15.44832,1,16,1,37.21245,0,22.86536,0,0,60.07781,0,0,0,3,0,3,100,10.57626,.1442925,100,0,356.04,1,1,1.098612,5.875043,0,0,0,0,0,0,100,8.806258,1.098612,4.095641,1 +11,5,0,0,1,528874,0,6674.895,10.53799,0,16,1,10.00417,0,21.6757,0,0,31.67987,0,0,0,1,0,3,98.3,10.57626,.1442925,85.2,0,356.04,1,0,1.098612,5.875043,0,0,0,0,0,0,85.2,8.806258,1.098612,3.455681,1 +11,5,0,0,2,528874,0,6674.895,11.53799,0,16,1,23.25581,0,0,0,0,23.25581,0,0,0,2,0,3,98.3,10.57626,.1442925,85.2,0,356.04,1,0,1.098612,5.875043,0,0,0,0,0,0,85.2,8.806258,1.098612,3.146555,1 +11,5,0,0,3,528874,0,6674.895,12.53799,0,16,1,38.90392,0,0,0,0,38.90392,0,0,0,2,0,3,98.3,10.57626,.1442925,85.2,0,356.04,1,0,1.098612,5.875043,0,0,0,0,0,0,85.2,8.806258,1.098612,3.661095,1 +11,5,0,1,1,528940,1,6674.895,40.98563,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,96.3,0,0,98.9,0,214.8,0,0,1.386294,5.369708,0,0,0,0,0,0,98.9,8.806258,1.386294,,0 +11,5,0,1,2,528940,1,6674.895,41.98563,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,96.3,0,0,98.9,0,214.8,0,0,1.386294,5.369708,0,0,0,0,0,0,98.9,8.806258,1.386294,,0 +11,5,0,1,3,528940,1,6674.895,42.98563,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,96.3,0,0,98.9,0,214.8,0,0,1.098612,5.369708,0,0,0,0,0,0,98.9,8.806258,1.098612,,0 +11,5,0,1,1,528941,1,6674.895,3.378508,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,0,77.8,0,214.8,1,0,1.386294,5.369708,0,0,0,0,1,0,77.8,8.806258,1.386294,,0 +11,5,0,1,2,528941,1,6674.895,4.378508,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,0,77.8,0,214.8,1,0,1.386294,5.369708,0,0,0,0,1,0,77.8,8.806258,1.386294,,0 +11,5,0,1,3,528941,1,6674.895,5.378508,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,77.40034,10.57626,0,77.8,0,214.8,1,0,1.098612,5.369708,0,0,0,0,1,0,77.8,8.806258,1.098612,,0 +11,5,0,1,1,528943,1,6674.895,16.68172,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,77.1,13.8,0,70.5,0,214.8,1,1,1.386294,5.369708,0,0,0,1,0,0,70.5,8.806258,1.386294,,0 +11,5,0,1,2,528943,1,6674.895,17.68172,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,77.1,13.8,0,70.5,0,214.8,1,1,1.386294,5.369708,0,0,0,1,0,0,70.5,8.806258,1.386294,,0 +11,5,0,1,1,528944,1,6674.895,17.93019,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,61.7,3.4,0,79.5,0,214.8,1,0,1.386294,5.369708,0,0,0,0,0,0,79.5,8.806258,1.386294,,0 +11,5,0,1,2,528944,1,6674.895,18.93019,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,61.7,3.4,0,79.5,0,214.8,0,0,1.386294,5.369708,0,0,0,0,0,0,79.5,8.806258,1.386294,,0 +11,5,0,1,3,528944,1,6674.895,19.93019,0,12,1,9.407665,0,0,0,0,9.407665,0,0,0,2,0,3,61.7,3.4,0,79.5,0,214.8,0,0,1.098612,5.369708,0,0,0,0,0,0,79.5,8.806258,1.098612,2.241525,1 +13,5,0,1,1,529000,1,2422.939,23.86037,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,72.3,10.3,0,73.9,450,0,0,0,1.098612,0,1,4.564348,6.160541,0,0,0,73.9,7.793149,1.098612,,0 +13,5,0,1,2,529000,1,2422.939,24.86037,1,12,1,0,0,0,0,529.771,529.771,1,0,0,0,0,3,72.3,10.3,0,73.9,450,0,0,0,1.098612,0,1,4.564348,6.160541,0,0,0,73.9,7.793149,1.098612,6.272445,1 +13,5,0,1,3,529000,1,2422.939,25.86037,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,72.3,10.3,0,73.9,450,0,0,0,1.386294,0,1,4.564348,6.160541,0,0,0,73.9,7.793149,1.386294,,0 +13,5,0,1,1,529001,1,2422.939,52.19439,1,8,1,0,9.302424,12.26712,0,0,21.56955,0,0,0,0,0,3,87.8,10.3,1,80.7,450,0,0,0,1.098612,0,1,4.564348,6.160541,1,0,0,80.7,7.793149,1.098612,3.071282,1 +13,5,0,1,2,529001,1,2422.939,53.19439,1,8,1,15.26718,1.755725,4.48855,0,0,21.51145,0,0,0,1,0,3,87.8,10.3,1,80.7,450,0,0,0,1.098612,0,1,4.564348,6.160541,1,0,0,80.7,7.793149,1.098612,3.068585,1 +13,5,0,1,3,529001,1,2422.939,54.19439,1,8,1,109.4425,3.449477,0,0,0,112.892,0,0,0,4,0,4,87.8,10.3,1,80.7,450,0,0,0,1.386294,0,1,4.564348,6.160541,1,0,0,80.7,7.793149,1.386294,4.726431,1 +16,5,95,0,1,529006,0,5763.441,45.86174,1,9,1,7.617435,0,0,0,0,7.617435,0,0,0,1,0,3,72.9,27.6,0,72.7,873.9,873.9,0,0,1.098612,6.772966,0,4.564348,6.824259,1,0,0,72.7,8.659464,1.098612,2.03044,1 +16,5,95,0,2,529006,0,5763.441,46.86174,1,9,1,45.55809,0,0,0,0,45.55809,0,0,0,1,0,3,72.9,27.6,0,72.7,873.9,873.9,0,0,1.098612,6.772966,0,4.564348,6.824259,1,0,0,72.7,8.659464,1.098612,3.818988,1 +16,5,95,0,3,529006,0,5763.441,47.86174,1,9,1,1056.332,27.40484,0,0,4047.405,5131.142,2,0,0,6,0,3,72.9,27.6,0,72.7,873.9,873.9,0,0,1.098612,6.772966,0,4.564348,6.824259,1,0,0,72.7,8.659464,1.098612,8.543083,1 +16,5,95,0,1,529007,0,5763.441,7.986311,1,9,1,0,0,0,0,0,0,0,0,0,0,0,3,85,10.57626,0,92.6,873.9,873.9,1,1,1.098612,6.772966,0,4.564348,6.824259,0,0,0,92.6,8.659464,1.098612,,0 +16,5,95,0,2,529007,0,5763.441,8.986311,1,9,1,0,0,0,0,0,0,0,0,0,0,0,3,85,10.57626,0,92.6,873.9,873.9,1,1,1.098612,6.772966,0,4.564348,6.824259,0,0,0,92.6,8.659464,1.098612,,0 +16,5,95,0,3,529007,0,5763.441,9.986311,1,9,1,17.30104,0,0,0,0,17.30104,0,0,0,2,0,3,85,10.57626,0,92.6,873.9,873.9,1,1,1.098612,6.772966,0,4.564348,6.824259,0,0,0,92.6,8.659464,1.098612,2.850767,1 +16,5,95,0,1,529008,0,5763.441,21.39083,0,10,1,6.347863,0,0,0,0,6.347863,0,0,0,1,0,3,73.4,6.9,0,86.4,873.9,873.9,0,0,1.098612,6.772966,0,4.564348,6.824259,1,0,0,86.4,8.659464,1.098612,1.848118,1 +16,5,95,0,2,529008,0,5763.441,22.39083,0,10,1,0,0,0,0,0,0,0,0,0,0,0,3,73.4,6.9,0,86.4,873.9,873.9,0,0,1.098612,6.772966,0,4.564348,6.824259,1,0,0,86.4,8.659464,1.098612,,0 +16,5,95,0,3,529008,0,5763.441,23.39083,0,10,1,0,0,0,0,0,0,0,0,0,0,0,3,73.4,6.9,0,86.4,873.9,873.9,0,0,1.098612,6.772966,0,4.564348,6.824259,1,0,0,86.4,8.659464,1.098612,,0 +15,5,95,0,1,529014,1,0,4.323066,0,10,1,0,0,0,0,0,0,0,0,0,0,0,2,77.40034,10.57626,0,99.4,490.1,490.1,1,0,.6931472,6.19461,0,4.564348,6.245903,1,0,0,99.4,0,.6931472,,0 +15,5,95,0,2,529014,1,0,5.323066,0,10,1,0,0,0,0,0,0,0,0,0,0,0,2,77.40034,10.57626,0,99.4,490.1,490.1,1,0,.6931472,6.19461,0,4.564348,6.245903,1,0,0,99.4,0,.6931472,,0 +15,5,95,0,3,529014,1,0,6.323066,0,10,1,23.71331,0,0,0,0,23.71331,0,0,0,1,0,2,77.40034,10.57626,0,99.4,490.1,490.1,1,0,.6931472,6.19461,0,4.564348,6.245903,1,0,0,99.4,0,.6931472,3.166037,1 +15,5,95,0,4,529014,1,0,7.323066,0,10,1,24.80916,0,0,0,0,24.80916,0,0,0,1,1,2,77.40034,10.57626,0,99.4,490.1,490.1,1,0,.6931472,6.19461,0,4.564348,6.245903,1,0,0,99.4,0,.6931472,3.211213,1 +15,5,95,0,5,529014,1,0,8.323067,0,10,1,71.42857,0,0,0,0,71.42857,0,0,0,3,0,2,77.40034,10.57626,0,99.4,490.1,490.1,1,0,.6931472,6.19461,0,4.564348,6.245903,1,0,0,99.4,0,.6931472,4.268698,1 +15,5,95,0,1,529015,1,0,20.79398,1,10,1,0,0,0,0,0,0,0,0,0,0,0,2,66.5,10.3,0,84.1,490.1,490.1,0,0,.6931472,6.19461,0,4.564348,6.245903,1,0,0,84.1,0,.6931472,,0 +15,5,95,0,2,529015,1,0,21.79398,1,10,1,83.50951,0,0,0,0,83.50951,0,0,0,1,0,2,66.5,10.3,0,84.1,490.1,490.1,0,0,.6931472,6.19461,0,4.564348,6.245903,1,0,0,84.1,0,.6931472,4.424961,1 +15,5,95,0,3,529015,1,0,22.79398,1,10,1,0,0,0,0,0,0,0,0,0,0,0,2,66.5,10.3,0,84.1,490.1,490.1,0,0,.6931472,6.19461,0,4.564348,6.245903,1,0,0,84.1,0,.6931472,,0 +15,5,95,0,4,529015,1,0,23.79398,1,10,1,94.8855,0,26.33588,0,0,121.2214,0,0,0,3,1,2,66.5,10.3,0,84.1,490.1,490.1,0,0,.6931472,6.19461,0,4.564348,6.245903,1,0,0,84.1,0,.6931472,4.797618,1 +15,5,95,0,5,529015,1,0,24.79398,1,10,1,79.2683,0,0,0,0,79.2683,0,0,0,4,0,2,66.5,10.3,0,84.1,490.1,490.1,0,0,.6931472,6.19461,0,4.564348,6.245903,1,0,0,84.1,0,.6931472,4.372838,1 +11,5,0,0,1,529017,0,6149.001,46.3436,1,10,1,313.5844,164.4139,0,0,0,477.9983,0,0,0,12,0,2,66,20.7,1,50,0,1027.2,0,0,.6931472,6.934592,0,0,0,0,1,0,50,8.724208,.6931472,6.169607,1 +11,5,0,0,2,529017,0,6149.001,47.3436,1,10,1,111.6173,0,0,0,3307.137,3418.755,1,0,0,8,0,2,66,20.7,1,50,0,1027.2,0,0,.6931472,6.934592,0,0,0,0,1,0,50,8.724208,.6931472,8.137032,1 +11,5,0,0,3,529017,0,6149.001,48.3436,1,10,1,61.88235,.6920415,0,0,0,62.57439,0,0,0,4,0,2,66,20.7,1,50,0,1027.2,0,0,.6931472,6.934592,0,0,0,0,1,0,50,8.724208,.6931472,4.136356,1 +11,5,0,0,1,529018,0,6149.001,48.1807,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,85.6,10.3,0,73.9,0,1027.2,0,0,.6931472,6.934592,0,0,0,1,0,0,73.9,8.724208,.6931472,,0 +11,5,0,0,2,529018,0,6149.001,49.1807,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,85.6,10.3,0,73.9,0,1027.2,0,0,.6931472,6.934592,0,0,0,1,0,0,73.9,8.724208,.6931472,,0 +11,5,0,0,3,529018,0,6149.001,50.1807,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,85.6,10.3,0,73.9,0,1027.2,0,0,.6931472,6.934592,0,0,0,1,0,0,73.9,8.724208,.6931472,,0 +14,5,95,1,1,529047,0,1347.158,61.42368,1,7,1,161.846,65.04041,48.49001,0,0,275.3764,0,0,0,7,0,1,50.5,24.1,0,64.8,147.7,392.56,0,0,0,5.97269,0,4.564348,5.046476,0,1,0,64.8,7.206495,0,5.618139,1 +14,5,95,1,2,529047,0,1347.158,62.42368,1,7,1,276.9084,110.729,0,0,0,387.6374,0,0,0,13,0,1,50.5,24.1,0,64.8,147.7,392.56,0,0,0,5.97269,0,4.564348,5.046476,0,1,0,64.8,7.206495,0,5.96007,1 +14,5,95,1,3,529047,0,1347.158,63.42368,1,7,1,142.5087,106.0767,0,0,0,248.5854,0,0,0,5,0,1,50.5,24.1,0,64.8,147.7,392.56,0,0,0,5.97269,0,4.564348,5.046476,0,1,0,64.8,7.206495,0,5.515786,1 +13,5,0,0,1,529077,1,380.4403,27.16222,1,12,1,7.194244,0,0,0,0,7.194244,0,0,0,1,0,2,84.6,6.9,0,76.2,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,76.2,5.943954,.6931472,1.973281,1 +13,5,0,0,2,529077,1,380.4403,28.16222,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,84.6,6.9,0,76.2,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,76.2,5.943954,.6931472,,0 +13,5,0,0,3,529077,1,380.4403,29.16222,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,84.6,6.9,0,76.2,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,76.2,5.943954,.6931472,,0 +13,5,0,0,1,529078,1,380.4403,9.21013,1,12,1,12.90732,0,0,0,0,12.90732,0,0,0,1,0,2,91.7,10.57626,0,81.5,300,300,1,1,.6931472,5.703783,1,4.564348,5.755076,1,0,0,81.5,5.943954,.6931472,2.557795,1 +13,5,0,0,2,529078,1,380.4403,10.21013,1,12,1,10.25057,0,0,0,0,10.25057,0,0,0,1,0,2,91.7,10.57626,0,81.5,300,300,1,1,.6931472,5.703783,1,4.564348,5.755076,1,0,0,81.5,5.943954,.6931472,2.327333,1 +13,5,0,0,3,529078,1,380.4403,11.21013,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,91.7,10.57626,0,81.5,300,300,1,1,.6931472,5.703783,1,4.564348,5.755076,1,0,0,81.5,5.943954,.6931472,,0 +10,5,50,1,1,529123,0,9816.692,55.64134,1,12,1,243.7579,60.14812,3.173931,48.66695,0,307.08,0,0,3,11,5,2,30.9,41.4,0,71.6,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,71.6,9.191941,.6931472,5.727108,1 +10,5,50,1,2,529123,0,9816.692,56.64134,1,12,1,99.84814,39.57859,0,0,0,139.4267,0,0,0,4,0,2,30.9,41.4,0,71.6,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,71.6,9.191941,.6931472,4.937539,1 +10,5,50,1,3,529123,0,9816.692,57.64134,1,12,1,155.0173,67.9481,28.78893,166.09,0,251.7543,0,0,8,8,2,2,30.9,41.4,0,71.6,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,71.6,9.191941,.6931472,5.528454,1 +10,5,50,1,1,529124,0,9816.692,60.29021,0,12,1,35.97122,14.93017,42.74228,40.20313,0,93.64368,0,0,3,2,1,2,60.6,17.2,0,62.5,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,62.5,9.191941,.6931472,4.539497,1 +10,5,50,1,2,529124,0,9816.692,61.29021,0,12,1,0,12.53227,0,0,0,12.53227,0,0,0,0,0,2,60.6,17.2,0,62.5,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,62.5,9.191941,.6931472,2.528307,1 +10,5,50,1,3,529124,0,9816.692,62.29021,0,12,1,53.63322,8.00346,40.70242,0,0,102.3391,0,0,0,3,0,2,60.6,17.2,0,62.5,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,1,0,0,62.5,9.191941,.6931472,4.628292,1 +17,5,25,0,1,529162,1,0,31.69336,0,14,1,0,0,0,0,0,0,0,0,0,0,0,1,85.6,0,0,69.3,300.35,0,0,0,0,0,0,3.258096,7.091243,1,0,0,69.3,0,0,,0 +17,5,25,0,2,529162,1,0,32.69336,0,14,1,0,0,0,0,0,0,0,0,0,0,0,1,85.6,0,0,69.3,300.35,0,0,0,0,0,0,3.258096,7.091243,1,0,0,69.3,0,0,,0 +17,5,25,0,3,529162,1,0,33.69336,0,14,1,8.710801,0,23.19164,0,0,31.90244,0,0,0,0,1,1,85.6,0,0,69.3,300.35,0,0,0,0,0,0,3.258096,7.091243,1,0,0,69.3,0,0,3.462682,1 +17,5,25,0,1,529164,1,3291.859,24.72827,0,9,1,0,0,0,0,0,0,0,0,0,0,0,1,54.3,0,0,53.4,315,315,0,0,0,5.752573,0,3.258096,7.138867,0,1,0,53.4,8.099511,0,,0 +17,5,25,0,2,529164,1,3291.859,25.72827,0,9,1,0,0,0,0,0,0,0,0,0,0,0,2,54.3,0,0,53.4,315,315,0,0,.6931472,5.752573,0,3.258096,7.138867,0,1,0,53.4,8.099511,.6931472,,0 +17,5,25,0,3,529164,1,3291.859,26.72827,0,9,1,0,0,0,0,0,0,0,0,0,0,0,3,54.3,0,0,53.4,315,315,0,0,1.098612,5.752573,0,3.258096,7.138867,0,1,0,53.4,8.099511,1.098612,,0 +13,5,0,1,1,529286,0,13305.17,19.86858,1,10,1,105.2522,20.40434,32.94706,0,0,158.6036,0,0,0,7,0,5,87.2,6.9,0,77.3,450,300,0,0,1.609438,5.703783,1,4.564348,6.160541,1,0,0,77.3,9.495983,1.609438,5.066408,1 +13,5,0,1,2,529286,0,13305.17,20.86858,1,10,1,13.12828,0,0,0,688.6722,701.8005,1,0,0,2,0,5,87.2,6.9,0,77.3,450,300,0,0,1.609438,5.703783,1,4.564348,6.160541,1,0,0,77.3,9.495983,1.609438,6.553649,1 +13,5,0,1,3,529286,0,13305.17,21.86858,1,10,1,37.55074,11.37686,0,0,0,48.9276,0,0,0,4,0,5,87.2,6.9,0,77.3,450,300,0,0,1.609438,5.703783,1,4.564348,6.160541,1,0,0,77.3,9.495983,1.609438,3.890342,1 +13,5,0,1,1,529287,0,13305.17,18.34634,0,10.96978,1,49.18716,11.0421,0,0,607.3364,667.5657,1,0,0,3,0,5,87.8,13.8,0,87.5,450,300,0,0,1.609438,5.703783,1,4.564348,6.160541,1,0,0,87.5,9.495983,1.609438,6.503638,1 +13,5,0,1,2,529287,0,13305.17,19.34634,0,10.96978,1,120.7802,35.12378,0,0,318.4546,474.3586,1,0,0,10,0,5,87.8,13.8,0,87.5,450,300,0,0,1.609438,5.703783,1,4.564348,6.160541,1,0,0,87.5,9.495983,1.609438,6.161963,1 +13,5,0,1,3,529287,0,13305.17,20.34634,0,10.96978,1,259.4959,24.57713,0,0,0,284.0731,0,0,0,16,0,5,87.8,13.8,0,87.5,450,300,0,0,1.609438,5.703783,1,4.564348,6.160541,1,0,0,87.5,9.495983,1.609438,5.649231,1 +13,5,0,1,1,529288,0,13305.17,22.35455,0,10,1,6.252605,7.057107,0,45.85244,507.2947,520.6044,1,0,2,1,0,5,50.5,24.1,1,13.6,450,300,0,0,1.609438,5.703783,1,4.564348,6.160541,0,1,0,13.6,9.495983,1.609438,6.254991,1 +13,5,0,1,2,529288,0,13305.17,23.35455,0,10,1,17.62941,0,0,0,0,17.62941,0,0,0,2,0,5,50.5,24.1,1,13.6,450,300,0,0,1.609438,5.703783,1,4.564348,6.160541,0,1,0,13.6,9.495983,1.609438,2.869568,1 +13,5,0,1,3,529288,0,13305.17,24.35455,0,10,1,95.39919,16.18403,0,0,813.9377,925.521,1,0,0,2,0,5,50.5,24.1,1,13.6,450,300,0,0,1.609438,5.703783,1,4.564348,6.160541,0,1,0,13.6,9.495983,1.609438,6.830357,1 +13,5,0,1,1,529289,0,13305.17,49.73032,1,9,1,210.2543,31.07545,47.68653,0,0,289.0163,0,0,0,5,0,5,73.9,20.7,0,69.3,450,300,0,0,1.609438,5.703783,1,4.564348,6.160541,0,1,0,69.3,9.495983,1.609438,5.666483,1 +13,5,0,1,2,529289,0,13305.17,50.73032,1,9,1,16.87922,72.26182,0,0,0,89.14104,0,0,0,3,0,5,73.9,20.7,0,69.3,450,300,0,0,1.609438,5.703783,1,4.564348,6.160541,0,1,0,69.3,9.495983,1.609438,4.49022,1 +13,5,0,1,3,529289,0,13305.17,51.73032,1,9,1,51.42084,153.3018,26.38701,0,1691.475,1922.585,2,1,0,6,0,5,73.9,20.7,0,69.3,450,300,0,0,1.609438,5.703783,1,4.564348,6.160541,0,1,0,69.3,9.495983,1.609438,7.561426,1 +13,5,0,1,1,529290,0,13305.17,43.36208,0,12,1,61.69237,59.68737,45.51897,0,0,166.8987,0,0,0,2,0,5,77.7,20.7,1,51.1,450,300,0,0,1.609438,5.703783,1,4.564348,6.160541,1,0,0,51.1,9.495983,1.609438,5.117387,1 +13,5,0,1,2,529290,0,13305.17,44.36208,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,77.7,20.7,1,51.1,450,300,0,0,1.609438,5.703783,1,4.564348,6.160541,1,0,0,51.1,9.495983,1.609438,,0 +13,5,0,1,3,529290,0,13305.17,45.36208,0,12,1,41.44114,17.68606,41.52571,0,985.4533,1086.106,1,0,0,2,0,5,77.7,20.7,1,51.1,450,300,0,0,1.609438,5.703783,1,4.564348,6.160541,1,0,0,51.1,9.495983,1.609438,6.990354,1 +19,5,25,0,1,529350,1,7578.085,9.716633,0,8,1,0,0,0,0,0,0,0,0,0,0,0,6,88.3,10.57626,0,88.9,750,750,1,0,1.791759,6.620073,0,3.258096,8.006368,1,0,0,88.9,8.933147,1.791759,,0 +19,5,25,0,2,529350,1,7578.085,10.71663,0,8,1,0,0,0,0,0,0,0,0,0,0,0,6,88.3,10.57626,0,88.9,750,750,1,0,1.791759,6.620073,0,3.258096,8.006368,1,0,0,88.9,8.933147,1.791759,,0 +19,5,25,0,3,529350,1,7578.085,11.71663,0,8,1,0,0,0,0,0,0,0,0,0,0,0,6,88.3,10.57626,0,88.9,750,750,1,0,1.791759,6.620073,0,3.258096,8.006368,1,0,0,88.9,8.933147,1.791759,,0 +19,5,25,0,1,529351,1,7578.085,31.13484,0,12,1,11.84934,1.523487,0,0,0,13.37283,0,0,0,1,0,6,86.2,3.4,0,64.8,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,1,0,0,64.8,8.933147,1.791759,2.593225,1 +19,5,25,0,2,529351,1,7578.085,32.13484,0,12,1,56.56796,0,0,0,0,56.56796,0,0,0,4,0,6,86.2,3.4,0,64.8,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,1,0,0,64.8,8.933147,1.791759,4.035443,1 +19,5,25,0,3,529351,1,7578.085,33.13484,0,12,1,56.05536,5.927336,0,0,0,61.9827,0,0,0,8,0,6,86.2,3.4,0,64.8,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,1,0,0,64.8,8.933147,1.791759,4.126855,1 +19,5,25,0,1,529352,1,7578.085,27.96715,1,8,1,22.00592,8.366484,0,0,0,30.37241,0,0,0,2,0,6,86.2,6.9,0,64.8,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,1,0,0,64.8,8.933147,1.791759,3.413535,1 +19,5,25,0,2,529352,1,7578.085,28.96715,1,8,1,40.05315,2.972665,0,0,0,43.02582,0,0,0,4,0,6,86.2,6.9,0,64.8,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,1,0,0,64.8,8.933147,1.791759,3.7618,1 +19,5,25,0,3,529352,1,7578.085,29.96715,1,8,1,24.6782,5.913495,0,0,0,30.5917,0,0,0,5,0,6,86.2,6.9,0,64.8,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,1,0,0,64.8,8.933147,1.791759,3.420729,1 +19,5,25,0,1,529353,1,7578.085,5.760438,1,8,1,0,0,0,0,0,0,0,0,0,0,0,6,77.40034,10.57626,0,92.6,750,750,1,1,1.791759,6.620073,0,3.258096,8.006368,1,0,0,92.6,8.933147,1.791759,,0 +19,5,25,0,2,529353,1,7578.085,6.760438,1,8,1,5.694761,1.442673,0,0,0,7.137434,0,0,0,1,0,6,77.40034,10.57626,0,92.6,750,750,1,1,1.791759,6.620073,0,3.258096,8.006368,1,0,0,92.6,8.933147,1.791759,1.965353,1 +19,5,25,0,3,529353,1,7578.085,7.760438,1,8,1,15.57093,4.051903,0,0,0,19.62284,0,0,0,3,0,6,77.40034,10.57626,0,92.6,750,750,1,1,1.791759,6.620073,0,3.258096,8.006368,1,0,0,92.6,8.933147,1.791759,2.976694,1 +19,5,25,0,1,529354,1,7578.085,8.684463,0,8,1,0,0,0,0,0,0,0,0,0,0,0,6,88.3,10.57626,0,88.9,750,750,1,0,1.791759,6.620073,0,3.258096,8.006368,1,0,0,88.9,8.933147,1.791759,,0 +19,5,25,0,2,529354,1,7578.085,9.684463,0,8,1,11.38952,0,0,0,0,11.38952,0,0,0,0,0,6,88.3,10.57626,0,88.9,750,750,1,0,1.791759,6.620073,0,3.258096,8.006368,1,0,0,88.9,8.933147,1.791759,2.432694,1 +19,5,25,0,3,529354,1,7578.085,10.68446,0,8,1,0,0,0,0,0,0,0,0,0,0,0,6,88.3,10.57626,0,88.9,750,750,1,0,1.791759,6.620073,0,3.258096,8.006368,1,0,0,88.9,8.933147,1.791759,,0 +13,5,0,0,1,529360,0,9569.381,29.3306,0,16,1,94.44678,0,0,0,0,94.44678,0,0,0,1,0,4,73.9,0,0,90.9,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,90.9,9.166429,1.386294,4.548037,1 +13,5,0,0,2,529360,0,9569.381,30.3306,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,73.9,0,0,90.9,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,90.9,9.166429,1.386294,,0 +13,5,0,0,3,529360,0,9569.381,31.3306,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,73.9,0,0,90.9,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,90.9,9.166429,1.386294,,0 +13,5,0,0,1,529361,0,9569.381,26.49418,1,12,1,12.62095,0,12.62095,0,0,25.2419,0,0,0,0,1,4,76.1,13.8,0,65.9,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,65.9,9.166429,1.386294,3.228505,1 +13,5,0,0,2,529361,0,9569.381,27.49418,1,12,1,15.11145,11.96827,0,0,0,27.07971,0,0,0,3,0,4,76.1,13.8,0,65.9,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,65.9,9.166429,1.386294,3.298785,1 +13,5,0,0,3,529361,0,9569.381,28.49418,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,76.1,13.8,0,65.9,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,65.9,9.166429,1.386294,,0 +13,5,0,0,1,529362,0,9569.381,4.068446,1,12,1,10.09676,0,0,0,0,10.09676,0,0,0,1,0,4,77.40034,10.57626,0,100,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,100,9.166429,1.386294,2.312215,1 +13,5,0,0,2,529362,0,9569.381,5.068446,1,12,1,5.289006,0,0,0,0,5.289006,0,0,0,1,0,4,77.40034,10.57626,0,100,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,100,9.166429,1.386294,1.66563,1 +13,5,0,0,3,529362,0,9569.381,6.068446,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,0,100,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,100,9.166429,1.386294,,0 +6,5,25,0,1,529428,0,5291.496,23.04723,1,12,1,78.30424,7.321696,31.12219,0,0,116.7481,0,0,0,3,0,4,78.2,13.8,0,65.9,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,65.9,8.574045,1.386294,4.760019,1 +6,5,25,0,2,529428,0,5291.496,24.04723,1,12,1,0,1.129553,0,0,0,1.129553,0,0,0,0,0,4,78.2,13.8,0,65.9,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,65.9,8.574045,1.386294,.1218218,1 +6,5,25,0,3,529428,0,5291.496,25.04723,1,12,1,20.31316,0,0,0,0,20.31316,0,0,0,2,0,4,78.2,13.8,0,65.9,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,65.9,8.574045,1.386294,3.011269,1 +6,5,25,0,4,529428,0,5291.496,26.04723,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,78.2,13.8,0,65.9,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,65.9,8.574045,1.386294,,0 +6,5,25,0,5,529428,0,5291.496,27.04723,1,12,1,44.9827,9.875433,23.91696,0,0,78.77509,0,0,0,3,1,4,78.2,13.8,0,65.9,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,65.9,8.574045,1.386294,4.366597,1 +6,5,25,0,1,529429,0,5291.496,.7967146,0,12,1,26.93267,9.895262,0,0,0,36.82793,0,0,0,3,0,4,77.40034,10.57626,0,70.4,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,70.4,8.574045,1.386294,3.606256,1 +6,5,25,0,2,529429,0,5291.496,1.796715,0,12,1,34.1171,0,0,0,0,34.1171,0,0,0,2,0,4,77.40034,10.57626,0,70.4,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,70.4,8.574045,1.386294,3.529799,1 +6,5,25,0,3,529429,0,5291.496,2.796715,0,12,1,5.07829,0,0,0,0,5.07829,0,0,0,1,0,4,77.40034,10.57626,0,70.4,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,70.4,8.574045,1.386294,1.624975,1 +6,5,25,0,4,529429,0,5291.496,3.796715,0,12,1,41.38193,4.552012,0,0,0,45.93394,0,0,0,3,0,4,77.40034,10.57626,0,70.4,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,70.4,8.574045,1.386294,3.827204,1 +6,5,25,0,5,529429,0,5291.496,4.796715,0,12,1,11.07266,4.543252,0,0,0,15.61592,0,0,0,1,0,4,77.40034,10.57626,0,70.4,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,70.4,8.574045,1.386294,2.748291,1 +6,5,25,0,1,529430,0,5291.496,4.898015,0,12,1,21.44638,7.371571,0,0,0,28.81796,0,0,0,3,0,4,77.40034,10.57626,0,77.8,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,77.8,8.574045,1.386294,3.360999,1 +6,5,25,0,2,529430,0,5291.496,5.898015,0,12,1,13.83126,0,0,0,0,13.83126,0,0,0,1,0,4,77.40034,10.57626,0,77.8,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,77.8,8.574045,1.386294,2.626931,1 +6,5,25,0,3,529430,0,5291.496,6.898015,0,12,1,12.69573,0,29.62336,0,0,42.31908,0,0,0,0,1,4,77.40034,10.57626,0,77.8,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,77.8,8.574045,1.386294,3.745238,1 +6,5,25,0,4,529430,0,5291.496,7.898015,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,0,77.8,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,77.8,8.574045,1.386294,,0 +6,5,25,0,5,529430,0,5291.496,8.898015,0,12,1,9.688581,7.688581,0,0,0,17.37716,0,0,0,2,0,4,77.40034,10.57626,0,77.8,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,77.8,8.574045,1.386294,2.855157,1 +6,5,25,0,1,529431,0,5291.496,24.65708,0,13,1,19.95012,0,33.19701,0,0,53.14713,0,0,0,2,0,4,73.9,3.4,0,76.1,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,76.1,8.574045,1.386294,3.973064,1 +6,5,25,0,2,529431,0,5291.496,25.65708,0,13,1,46.33472,2.720148,15.34348,0,0,64.39834,0,0,0,2,0,4,73.9,3.4,0,76.1,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,76.1,8.574045,1.386294,4.165088,1 +6,5,25,0,3,529431,0,5291.496,26.65708,0,13,1,8.463818,0,37.85019,0,0,46.31401,0,0,0,1,0,4,73.9,3.4,0,76.1,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,76.1,8.574045,1.386294,3.835444,1 +6,5,25,0,4,529431,0,5291.496,27.65708,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,73.9,3.4,0,76.1,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,76.1,8.574045,1.386294,,0 +6,5,25,0,5,529431,0,5291.496,28.65708,0,13,1,11.5917,0,27.52941,0,0,39.12111,0,0,0,0,0,4,73.9,3.4,0,76.1,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,76.1,8.574045,1.386294,3.666662,1 +11,5,0,1,1,529434,1,5832.565,6.554415,1,14,1,0,0,0,0,0,0,0,0,0,0,0,3,86.7,10.57626,0,66.7,0,0,1,1,1.098612,0,0,0,0,0,0,0,66.7,8.671384,1.098612,,0 +11,5,0,1,2,529434,1,5832.565,7.554415,1,14,1,0,0,0,0,0,0,0,0,0,0,0,3,86.7,10.57626,0,66.7,0,0,1,1,1.098612,0,0,0,0,0,0,0,66.7,8.671384,1.098612,,0 +11,5,0,1,3,529434,1,5832.565,8.554415,1,14,1,0,0,0,0,0,0,0,0,0,0,0,3,86.7,10.57626,0,66.7,0,0,1,1,1.098612,0,0,0,0,0,0,0,66.7,8.671384,1.098612,,0 +11,5,0,1,1,529435,1,5832.565,31.89322,1,14,1,0,0,0,0,0,0,0,0,0,0,0,3,60.6,13.8,0,89.8,0,0,0,0,1.098612,0,0,0,0,0,1,0,89.8,8.671384,1.098612,,0 +11,5,0,1,2,529435,1,5832.565,32.89322,1,14,1,0,0,0,0,0,0,0,0,0,0,0,3,60.6,13.8,0,89.8,0,0,0,0,1.098612,0,0,0,0,0,1,0,89.8,8.671384,1.098612,,0 +11,5,0,1,3,529435,1,5832.565,33.89322,1,14,1,0,0,0,0,925.2595,925.2595,1,0,0,0,0,3,60.6,13.8,0,89.8,0,0,0,0,1.098612,0,0,0,0,0,1,0,89.8,8.671384,1.098612,6.830074,1 +11,5,0,1,1,529436,1,5832.565,8.380561,0,14,1,0,0,0,0,0,0,0,0,0,0,0,3,56.7,10.57626,0,77.8,0,0,1,0,1.098612,0,0,0,0,0,0,0,77.8,8.671384,1.098612,,0 +11,5,0,1,2,529436,1,5832.565,9.380561,0,14,1,0,0,0,0,0,0,0,0,0,0,0,3,56.7,10.57626,0,77.8,0,0,1,0,1.098612,0,0,0,0,0,0,0,77.8,8.671384,1.098612,,0 +11,5,0,1,3,529436,1,5832.565,10.38056,0,14,1,0,0,0,0,0,0,0,0,0,0,0,3,56.7,10.57626,0,77.8,0,0,1,0,1.098612,0,0,0,0,0,0,0,77.8,8.671384,1.098612,,0 +13,5,0,0,1,529478,0,13794.16,32.19439,1,13,1,63.90182,0,0,0,0,63.90182,0,0,0,6,0,4,75.5,10.3,0,75,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,75,9.532073,1.386294,4.157348,1 +13,5,0,0,2,529478,0,13794.16,33.19439,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,75.5,10.3,0,75,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,75,9.532073,1.386294,,0 +13,5,0,0,3,529478,0,13794.16,34.19439,1,13,1,3.460208,0,0,0,0,3.460208,0,0,0,0,0,4,75.5,10.3,0,75,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,75,9.532073,1.386294,1.241329,1 +13,5,0,0,1,529479,0,13794.16,9.848049,1,13,1,12.69573,0,0,0,0,12.69573,0,0,0,2,0,4,96.7,10.57626,0,85.2,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,85.2,9.532073,1.386294,2.541265,1 +13,5,0,0,2,529479,0,13794.16,10.84805,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,96.7,10.57626,0,85.2,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,85.2,9.532073,1.386294,,0 +13,5,0,0,3,529479,0,13794.16,11.84805,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,96.7,10.57626,0,85.2,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,85.2,9.532073,1.386294,,0 +13,5,0,0,1,529480,0,13794.16,12.50376,0,13,1,10.57977,0,0,0,0,10.57977,0,0,0,1,0,4,81.7,10.57626,0,74.1,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,74.1,9.532073,1.386294,2.358944,1 +13,5,0,0,2,529480,0,13794.16,13.50376,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,81.7,10.57626,0,74.1,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,74.1,9.532073,1.386294,,0 +13,5,0,0,3,529480,0,13794.16,14.50376,0,13,1,6.920415,0,0,0,978.5294,985.4498,1,0,0,0,0,4,81.7,10.57626,0,74.1,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,74.1,9.532073,1.386294,6.893098,1 +13,5,0,0,1,529498,0,5562.212,31.73443,1,13,1,147.6936,18.38341,0,0,1706.094,1872.171,1,0,0,10,0,4,67,6.9,0,52.3,450,150,0,0,1.386294,5.010635,1,4.564348,6.160541,1,0,0,52.3,8.623931,1.386294,7.534854,1 +13,5,0,0,2,529498,0,5562.212,32.73443,1,13,1,50.49355,0,0,0,1763.098,1813.592,1,0,0,5,0,4,67,6.9,0,52.3,450,150,0,0,1.386294,5.010635,1,4.564348,6.160541,1,0,0,52.3,8.623931,1.386294,7.503065,1 +13,5,0,0,3,529498,0,5562.212,33.73443,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,67,6.9,0,52.3,450,150,0,0,1.386294,5.010635,1,4.564348,6.160541,1,0,0,52.3,8.623931,1.386294,,0 +13,5,0,0,1,529499,0,5562.212,6.19028,1,13,1,17.77402,1.95091,0,0,0,19.72493,0,0,0,3,0,4,86.7,10.57626,0,70.4,450,150,1,1,1.386294,5.010635,1,4.564348,6.160541,1,0,0,70.4,8.623931,1.386294,2.981883,1 +13,5,0,0,2,529499,0,5562.212,7.19028,1,13,1,5.694761,0,0,0,0,5.694761,0,0,0,1,0,4,86.7,10.57626,0,70.4,450,150,1,1,1.386294,5.010635,1,4.564348,6.160541,1,0,0,70.4,8.623931,1.386294,1.739547,1 +13,5,0,0,3,529499,0,5562.212,8.190281,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,86.7,10.57626,0,70.4,450,150,1,1,1.386294,5.010635,1,4.564348,6.160541,1,0,0,70.4,8.623931,1.386294,,0 +13,5,0,0,1,529500,0,5562.212,30.75975,0,12,1,13.54211,0,0,0,0,13.54211,0,0,0,2,0,4,76.1,17.2,1,68.2,450,150,0,0,1.386294,5.010635,1,4.564348,6.160541,1,0,0,68.2,8.623931,1.386294,2.605804,1 +13,5,0,0,2,529500,0,5562.212,31.75975,0,12,1,15.94533,0,0,0,0,15.94533,0,0,0,1,0,4,76.1,17.2,1,68.2,450,150,0,0,1.386294,5.010635,1,4.564348,6.160541,1,0,0,68.2,8.623931,1.386294,2.769166,1 +13,5,0,0,3,529500,0,5562.212,32.75975,0,12,1,36.50519,0,24.91349,0,0,61.41869,0,0,0,2,1,4,76.1,17.2,1,68.2,450,150,0,0,1.386294,5.010635,1,4.564348,6.160541,1,0,0,68.2,8.623931,1.386294,4.117714,1 +11,5,0,0,1,529586,0,6674.895,31.13758,1,5,1,9.255363,9.150189,0,0,915.0189,933.4245,3,0,0,0,0,4,45.2,34.5,1,27.3,0,416,0,0,1.386294,6.030685,0,0,0,0,0,1,27.3,8.806258,1.386294,6.83886,1 +11,5,0,0,2,529586,0,6674.895,32.13758,1,5,1,77.82395,8.828863,32.48961,0,839.4409,958.5833,1,0,0,3,1,5,45.2,34.5,1,27.3,0,416,0,0,1.609438,6.030685,0,0,0,0,0,1,27.3,8.806258,1.609438,6.865457,1 +11,5,0,0,3,529586,0,6674.895,33.13758,1,5,1,231.3894,66.10635,0,0,1683.053,1980.549,2,0,0,10,0,6,45.2,34.5,1,27.3,0,416,0,0,1.791759,6.030685,0,0,0,0,0,1,27.3,8.806258,1.791759,7.591129,1 +11,5,0,0,1,529587,0,6674.895,16.29295,1,5,1,9.255363,0,0,0,0,9.255363,0,0,0,1,0,4,61.2,6.9,0,54.5,0,416,1,1,1.386294,6.030685,0,0,0,0,1,0,54.5,8.806258,1.386294,2.225203,1 +11,5,0,0,2,529587,0,6674.895,17.29295,1,5,1,223.1772,52.3385,0,0,904.0423,1179.558,2,0,0,10,0,5,61.2,6.9,0,54.5,0,416,1,1,1.609438,6.030685,0,0,0,0,1,0,54.5,8.806258,1.609438,7.072895,1 +11,5,0,0,3,529587,0,6674.895,18.29295,1,5,1,226.2436,57.66724,0,0,1072.041,1355.952,2,0,0,12,2,6,61.2,6.9,0,54.5,0,416,0,0,1.791759,6.030685,0,0,0,0,1,0,54.5,8.806258,1.791759,7.212259,1 +11,5,0,0,1,529588,0,6674.895,15.3128,1,5,1,0,0,0,0,0,0,0,0,0,0,0,4,64.9,0,0,68.2,0,416,1,1,1.386294,6.030685,0,0,0,1,0,0,68.2,8.806258,1.386294,,0 +11,5,0,0,2,529588,0,6674.895,16.3128,1,5,1,5.666792,.9444655,0,0,0,6.611258,0,0,0,0,0,5,64.9,0,0,68.2,0,416,1,1,1.609438,6.030685,0,0,0,1,0,0,68.2,8.806258,1.609438,1.888774,1 +11,5,0,0,3,529588,0,6674.895,17.3128,1,5,1,84.39108,6.765008,0,0,0,91.15609,0,0,0,2,0,6,64.9,0,0,68.2,0,416,1,1,1.791759,6.030685,0,0,0,1,0,0,68.2,8.806258,1.791759,4.512573,1 +11,5,0,0,1,529589,0,6674.895,39.82478,0,5,1,14.0934,0,0,0,0,14.0934,0,0,0,1,0,4,61.7,17.2,0,50,0,416,0,0,1.386294,6.030685,0,0,0,1,0,0,50,8.806258,1.386294,2.645706,1 +11,5,0,0,2,529589,0,6674.895,40.82478,0,5,1,13.22252,0,35.5119,0,0,48.73442,0,0,0,0,1,5,61.7,17.2,0,50,0,416,0,0,1.609438,6.030685,0,0,0,1,0,0,50,8.806258,1.609438,3.886385,1 +11,5,0,0,3,529589,0,6674.895,41.82478,0,5,1,104.2882,13.55403,0,0,692.0583,809.9005,1,0,0,4,0,6,61.7,17.2,0,50,0,416,0,0,1.791759,6.030685,0,0,0,1,0,0,50,8.806258,1.791759,6.696911,1 +13,5,0,1,1,529627,0,11451.1,38.14921,0,12,1,52.47567,8.929327,0,0,0,61.40499,0,0,0,1,0,2,87.2,10.3,0,77.3,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,77.3,9.345928,.6931472,4.117491,1 +13,5,0,1,2,529627,0,11451.1,39.14921,0,12,1,93.96355,9.757024,0,0,0,103.7206,0,0,0,3,0,2,87.2,10.3,0,77.3,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,77.3,9.345928,.6931472,4.6417,1 +13,5,0,1,3,529627,0,11451.1,40.14921,0,12,1,66.43599,0,17.99308,0,0,84.42907,0,0,0,2,0,2,87.2,10.3,0,77.3,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,77.3,9.345928,.6931472,4.435912,1 +13,5,0,1,1,529628,0,11451.1,34.0835,1,12,1,219.2129,134.0034,0,0,0,353.2162,0,0,0,11,0,2,61.7,13.8,1,55.7,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,55.7,9.345928,.6931472,5.867081,1 +13,5,0,1,2,529628,0,11451.1,35.0835,1,12,1,54.6697,91.64768,0,62.64237,0,146.3174,0,0,3,1,0,2,61.7,13.8,1,55.7,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,55.7,9.345928,.6931472,4.985778,1 +13,5,0,1,3,529628,0,11451.1,36.0835,1,12,1,123.8754,96.83391,0,152.2491,0,220.7093,0,0,8,4,0,2,61.7,13.8,1,55.7,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,55.7,9.345928,.6931472,5.396847,1 +19,5,25,1,1,529663,1,1564.223,58.25325,1,5,1,0,0,0,0,0,0,0,0,0,0,0,1,56.4,31,1,46.6,405.6,0,0,0,0,0,0,3.258096,7.391662,0,1,0,46.6,7.355783,0,,0 +19,5,25,1,2,529663,1,1564.223,59.25325,1,5,1,0,2.937127,0,0,414.8692,417.8063,1,0,0,0,0,1,56.4,31,1,46.6,405.6,0,0,0,0,0,0,3.258096,7.391662,0,1,0,46.6,7.355783,0,6.035018,1 +19,5,25,1,3,529663,1,1564.223,60.25325,1,5,1,53.84939,7.421119,0,0,0,61.27051,0,0,0,3,0,1,56.4,31,1,46.6,405.6,0,0,0,0,0,0,3.258096,7.391662,0,1,0,46.6,7.355783,0,4.115299,1 +19,5,25,1,4,529663,1,1564.223,61.25325,1,5,1,165.2814,14.46165,0,0,663.7703,843.5134,1,0,0,10,0,1,56.4,31,1,46.6,405.6,0,0,0,0,0,0,3.258096,7.391662,0,1,0,46.6,7.355783,0,6.737576,1 +19,5,25,1,5,529663,1,1564.223,62.25325,1,5,1,401.7153,3.403087,0,0,0,405.1183,0,0,0,22,0,1,56.4,31,1,46.6,405.6,0,0,0,0,0,0,3.258096,7.391662,0,1,0,46.6,7.355783,0,6.004179,1 +13,5,0,1,1,529706,1,8124.936,53.3744,0,12,1,19.04359,10.34702,27.08422,0,0,56.47482,0,0,0,2,1,6,84,13.8,0,55.7,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,55.7,9.002816,1.791759,4.033795,1 +13,5,0,1,2,529706,1,8124.936,54.3744,0,12,1,133.6371,29.89749,0,0,1121.488,1285.023,1,0,0,5,0,5,84,13.8,0,55.7,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,55.7,9.002816,1.609438,7.158532,1 +13,5,0,1,3,529706,1,8124.936,55.3744,0,12,1,54.32526,41.34948,25.60554,0,0,121.2803,0,0,0,6,1,5,84,13.8,0,55.7,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,55.7,9.002816,1.609438,4.798104,1 +13,5,0,1,1,529707,1,8124.936,18.92676,0,9,1,0,0,0,0,0,0,0,0,0,0,0,6,69.7,0,0,61.4,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,61.4,9.002816,1.791759,,0 +13,5,0,1,1,529708,1,8124.936,15.81383,1,7,1,0,0,0,0,0,0,0,0,0,0,0,6,72.3,0,0,83.7,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,83.7,9.002816,1.791759,,0 +13,5,0,1,2,529708,1,8124.936,16.81383,1,7,1,0,0,0,0,0,0,0,0,0,0,0,5,72.3,0,0,83.7,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,83.7,9.002816,1.609438,,0 +13,5,0,1,3,529708,1,8124.936,17.81383,1,7,1,0,0,0,0,0,0,0,0,0,0,0,5,72.3,0,0,83.7,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,83.7,9.002816,1.609438,,0 +13,5,0,1,1,529709,1,8124.936,50.11636,1,7,1,116.2717,5.696149,30.89293,0,0,152.8608,0,0,0,4,1,6,74.5,6.9,0,76.1,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,76.1,9.002816,1.791759,5.029528,1 +13,5,0,1,2,529709,1,8124.936,51.11636,1,7,1,92.0653,6.643888,0,0,0,98.70919,0,0,0,3,0,5,74.5,6.9,0,76.1,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,76.1,9.002816,1.609438,4.592178,1 +13,5,0,1,3,529709,1,8124.936,52.11636,1,7,1,48.44291,30.25952,27.68166,0,0,106.3841,0,0,0,4,1,5,74.5,6.9,0,76.1,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,76.1,9.002816,1.609438,4.667056,1 +13,5,0,1,1,529710,1,8124.936,20.53114,1,10,1,8.040627,4.274228,0,0,0,12.31485,0,0,0,0,0,6,69.1,0,0,80.7,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,80.7,9.002816,1.791759,2.510806,1 +13,5,0,1,2,529710,1,8124.936,21.53114,1,10,1,0,0,0,0,0,0,0,0,0,0,0,5,69.1,0,0,80.7,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,80.7,9.002816,1.609438,,0 +13,5,0,1,3,529710,1,8124.936,22.53114,1,10,1,0,0,0,0,0,0,0,0,0,0,0,5,69.1,0,0,80.7,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,80.7,9.002816,1.609438,,0 +13,5,0,1,1,529711,1,8124.936,17.31691,1,7,1,64.57893,2.285231,0,0,0,66.86416,0,0,0,4,0,6,73.9,0,0,78.4,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,78.4,9.002816,1.791759,4.202663,1 +13,5,0,1,2,529711,1,8124.936,18.31691,1,7,1,95.52012,0,0,0,0,95.52012,0,0,0,1,0,5,73.9,0,0,78.4,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,78.4,9.002816,1.609438,4.559337,1 +13,5,0,1,3,529711,1,8124.936,19.31691,1,7,1,0,0,0,0,0,0,0,0,0,0,0,5,73.9,0,0,78.4,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,78.4,9.002816,1.609438,,0 +5,5,25,1,1,529844,0,9597.542,40.59685,1,12,1,90.17439,20.94428,0,0,0,111.1187,0,0,0,4,0,4,62.8,13.8,0,75,728.15,1103.76,0,0,1.386294,7.006478,0,3.258096,7.976801,0,0,0,75,9.169367,1.386294,4.710599,1 +5,5,25,1,2,529844,0,9597.542,41.59685,1,12,1,8.015267,16.24427,0,0,0,24.25954,0,0,0,1,0,4,62.8,13.8,0,75,728.15,1103.76,0,0,1.386294,7.006478,0,3.258096,7.976801,0,0,0,75,9.169367,1.386294,3.18881,1 +5,5,25,1,3,529844,0,9597.542,42.59685,1,12,1,6.271777,16.20209,0,0,0,22.47387,0,0,0,1,0,4,62.8,13.8,0,75,728.15,1103.76,0,0,1.386294,7.006478,0,3.258096,7.976801,0,0,0,75,9.169367,1.386294,3.112353,1 +5,5,25,1,1,529845,0,9597.542,3.022587,1,12,1,17.01404,5.776266,0,0,0,22.7903,0,0,0,2,0,4,77.40034,10.57626,0,96.3,728.15,1103.76,1,1,1.386294,7.006478,0,3.258096,7.976801,0,0,0,96.3,9.169367,1.386294,3.126335,1 +5,5,25,1,2,529845,0,9597.542,4.022587,1,12,1,12.21374,2.099237,0,0,0,14.31298,0,0,0,2,0,4,77.40034,10.57626,0,96.3,728.15,1103.76,1,1,1.386294,7.006478,0,3.258096,7.976801,0,0,0,96.3,9.169367,1.386294,2.661167,1 +5,5,25,1,3,529845,0,9597.542,5.022587,1,12,1,13.24042,1.557491,0,0,0,14.79791,0,0,0,2,0,4,77.40034,10.57626,0,96.3,728.15,1103.76,1,1,1.386294,7.006478,0,3.258096,7.976801,0,0,0,96.3,9.169367,1.386294,2.694486,1 +5,5,25,1,1,529847,0,9597.542,37.40178,0,13,1,7.656316,3.998299,0,0,0,11.65462,0,0,0,1,0,4,89.9,10.3,0,79.5,728.15,1103.76,0,0,1.386294,7.006478,0,3.258096,7.976801,0,0,0,79.5,9.169367,1.386294,2.455702,1 +5,5,25,1,2,529847,0,9597.542,38.40178,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,89.9,10.3,0,79.5,728.15,1103.76,0,0,1.386294,7.006478,0,3.258096,7.976801,0,0,0,79.5,9.169367,1.386294,,0 +5,5,25,1,3,529847,0,9597.542,39.40178,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,89.9,10.3,0,79.5,728.15,1103.76,0,0,1.386294,7.006478,0,3.258096,7.976801,0,0,0,79.5,9.169367,1.386294,,0 +5,5,25,1,1,529848,0,9597.542,6.160164,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,88.3,10.57626,0,66.7,728.15,1103.76,1,0,1.386294,7.006478,0,3.258096,7.976801,0,0,0,66.7,9.169367,1.386294,,0 +5,5,25,1,2,529848,0,9597.542,7.160164,0,12,1,15.64886,4.71374,0,0,302.2901,322.6527,1,0,0,2,0,4,88.3,10.57626,0,66.7,728.15,1103.76,1,0,1.386294,7.006478,0,3.258096,7.976801,0,0,0,66.7,9.169367,1.386294,5.776577,1 +5,5,25,1,3,529848,0,9597.542,8.160164,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,88.3,10.57626,0,66.7,728.15,1103.76,1,0,1.386294,7.006478,0,3.258096,7.976801,0,0,0,66.7,9.169367,1.386294,,0 +11,5,0,0,1,529882,1,8878.136,46.38193,0,18,1,12.69573,3.085061,32.16251,0,0,47.94329,0,0,0,0,1,1,91,0,0,96.6,0,0,0,0,0,0,0,0,0,0,0,0,96.6,9.091459,0,3.870019,1 +11,5,0,0,2,529882,1,8878.136,47.38193,0,18,1,57.32726,0,0,0,0,57.32726,0,0,0,4,0,1,91,0,0,96.6,0,0,0,0,0,0,0,0,0,0,0,0,96.6,9.091459,0,4.048776,1 +11,5,0,0,3,529882,1,8878.136,48.38193,0,18,1,6.920415,0,0,0,0,6.920415,0,0,0,1,0,1,91,0,0,96.6,0,0,0,0,0,0,0,0,0,0,0,0,96.6,9.091459,0,1.934476,1 +17,5,25,1,1,529940,0,8997.439,50.37098,1,12,1,56.37358,41.52713,0,0,2500.21,2598.111,2,0,0,8,0,3,41,31,1,42,672,672,0,0,1.098612,6.510258,0,3.258096,7.896553,1,0,0,42,9.104807,1.098612,7.86254,1 +17,5,25,1,2,529940,0,8997.439,51.37098,1,12,1,30.22289,0,29.46732,0,0,59.69022,0,0,0,3,0,3,41,31,1,42,672,672,0,0,1.098612,6.510258,0,3.258096,7.896553,1,0,0,42,9.104807,1.098612,4.089168,1 +17,5,25,1,3,529940,0,8997.439,52.37098,1,12,1,134.8199,53.45454,0,0,2031.715,2219.99,1,0,0,7,0,3,41,31,1,42,672,672,0,0,1.098612,6.510258,0,3.258096,7.896553,1,0,0,42,9.104807,1.098612,7.705258,1 +17,5,25,1,1,529942,0,8997.439,14.19302,0,12,1,14.0934,1.093816,0,0,0,15.18721,0,0,0,1,0,3,93.6,6.9,0,89.8,672,672,1,0,1.098612,6.510258,0,3.258096,7.896553,0,0,0,89.8,9.104807,1.098612,2.720454,1 +17,5,25,1,2,529942,0,8997.439,15.19302,0,12,1,7.93351,0,0,0,0,7.93351,0,0,0,2,0,3,93.6,6.9,0,89.8,672,672,1,0,1.098612,6.510258,0,3.258096,7.896553,0,0,0,89.8,9.104807,1.098612,2.071095,1 +17,5,25,1,3,529942,0,8997.439,16.19302,0,12,1,16.46655,0,0,0,0,16.46655,0,0,0,2,0,3,93.6,6.9,0,89.8,672,672,1,0,1.098612,6.510258,0,3.258096,7.896553,0,0,0,89.8,9.104807,1.098612,2.801331,1 +17,5,25,1,1,529943,0,8997.439,11.65229,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,86.7,10.57626,0,96.3,672,672,1,1,1.098612,6.510258,0,3.258096,7.896553,0,0,0,96.3,9.104807,1.098612,,0 +17,5,25,1,2,529943,0,8997.439,12.65229,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,86.7,10.57626,0,96.3,672,672,1,1,1.098612,6.510258,0,3.258096,7.896553,0,0,0,96.3,9.104807,1.098612,,0 +17,5,25,1,3,529943,0,8997.439,13.65229,1,12,1,105.3173,0,0,0,0,105.3173,0,0,0,1,0,3,86.7,10.57626,0,96.3,672,672,1,1,1.098612,6.510258,0,3.258096,7.896553,0,0,0,96.3,9.104807,1.098612,4.656978,1 +13,5,0,1,1,529981,1,6674.895,25.99315,0,13,1,0,0,0,0,0,0,0,0,0,0,0,1,83,10.3,0,68.2,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,68.2,8.806258,0,,0 +13,5,0,1,2,529981,1,6674.895,26.99315,0,13,1,0,0,0,0,0,0,0,0,0,0,0,1,83,10.3,0,68.2,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,68.2,8.806258,0,,0 +13,5,0,1,3,529981,1,6674.895,27.99315,0,13,1,0,0,0,0,0,0,0,0,0,0,0,1,83,10.3,0,68.2,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,68.2,8.806258,0,,0 +18,5,25,1,1,530141,0,9047.619,13.69747,0,10,1,38.29877,2.175201,29.04782,0,0,69.5218,0,0,0,3,0,5,66.7,10.57626,1,37,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,37,9.110368,1.609438,4.241641,1 +18,5,25,1,2,530141,0,9047.619,14.69747,0,10,1,64.54062,1.355353,0,0,0,65.89597,0,0,0,2,0,5,66.7,10.57626,1,37,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,37,9.110368,1.609438,4.188077,1 +18,5,25,1,3,530141,0,9047.619,15.69747,0,10,1,20.76125,0,17.99308,0,0,38.75433,0,0,0,2,0,5,66.7,10.57626,1,37,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,37,9.110368,1.609438,3.657242,1 +18,5,25,0,1,530142,0,9047.619,34.84189,0,8,1,49.93652,18.5019,35.37876,0,0,103.8172,0,0,0,4,0,5,54.3,27.6,1,56.8,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,56.8,9.110368,1.609438,4.642632,1 +18,5,25,0,2,530142,0,9047.619,35.84189,0,8,1,4.93546,8.921792,0,0,0,13.85725,0,0,0,1,0,5,54.3,27.6,1,56.8,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,56.8,9.110368,1.609438,2.628809,1 +18,5,25,0,3,530142,0,9047.619,36.84189,0,8,1,121.2803,20.99654,0,0,6394.585,6536.862,2,0,0,5,0,5,54.3,27.6,1,56.8,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,56.8,9.110368,1.609438,8.785213,1 +18,5,25,1,1,530143,0,9047.619,12.35318,1,10,1,14.81168,0,24.64664,0,0,39.45832,0,0,0,1,0,5,70,10.57626,0,92.6,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,92.6,9.110368,1.609438,3.675245,1 +18,5,25,1,2,530143,0,9047.619,13.35318,1,10,1,21.26044,7.042521,0,0,0,28.30296,0,0,0,2,0,5,70,10.57626,0,92.6,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,92.6,9.110368,1.609438,3.342967,1 +18,5,25,1,3,530143,0,9047.619,14.35318,1,10,1,23.87543,9.972319,10.38408,0,0,44.23183,0,0,0,3,0,5,70,10.57626,0,92.6,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,92.6,9.110368,1.609438,3.789445,1 +18,5,25,1,1,530144,0,9047.619,32.15058,1,10,1,39.35675,51.47271,0,0,0,90.82945,0,0,0,4,0,5,18.6,37.9,1,18.2,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,1,18.2,9.110368,1.609438,4.508984,1 +18,5,25,1,2,530144,0,9047.619,33.15058,1,10,1,68.1473,32.79043,31.58694,0,0,132.5247,0,0,0,5,0,5,18.6,37.9,1,18.2,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,1,18.2,9.110368,1.609438,4.886769,1 +18,5,25,1,3,530144,0,9047.619,34.15058,1,10,1,34.25605,44.58823,7.612457,0,0,86.45675,0,0,0,5,0,5,18.6,37.9,1,18.2,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,1,18.2,9.110368,1.609438,4.459644,1 +18,5,25,1,1,530145,0,9047.619,6.266941,0,10,1,42.53068,19.79264,0,0,370.1523,432.4757,2,0,0,6,0,5,86.7,10.57626,0,51.9,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,51.9,9.110368,1.609438,6.069526,1 +18,5,25,1,2,530145,0,9047.619,7.266941,0,10,1,6.454062,8.09795,0,0,0,14.55201,0,0,0,1,0,5,86.7,10.57626,0,51.9,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,51.9,9.110368,1.609438,2.677729,1 +18,5,25,1,3,530145,0,9047.619,8.26694,0,10,1,11.07266,5.99308,0,0,0,17.06574,0,0,0,2,0,5,86.7,10.57626,0,51.9,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,51.9,9.110368,1.609438,2.837073,1 +11,5,0,1,1,530283,0,12511.44,47.3347,1,12,1,88.20615,14.42517,0,0,0,102.6313,0,0,0,6,0,3,86.2,17.2,0,72.7,0,299.52,0,0,1.098612,5.702181,0,0,0,0,0,0,72.7,9.434479,1.098612,4.631143,1 +11,5,0,1,2,530283,0,12511.44,48.3347,1,12,1,73.88711,15.86967,0,0,484.626,574.3828,1,0,0,3,0,3,86.2,17.2,0,72.7,0,299.52,0,0,1.098612,5.702181,0,0,0,0,0,0,72.7,9.434479,1.098612,6.353296,1 +11,5,0,1,3,530283,0,12511.44,49.3347,1,12,1,35.75936,11.56921,0,0,0,47.32856,0,0,0,3,0,3,86.2,17.2,0,72.7,0,299.52,0,0,1.098612,5.702181,0,0,0,0,0,0,72.7,9.434479,1.098612,3.857114,1 +11,5,0,1,4,530283,0,12511.44,50.3347,1,12,1,64.22365,19.12354,34.57499,0,0,117.9222,0,0,0,5,0,3,86.2,17.2,0,72.7,0,299.52,0,0,1.098612,5.702181,0,0,0,0,0,0,72.7,9.434479,1.098612,4.770025,1 +11,5,0,1,5,530283,0,12511.44,51.3347,1,12,1,26.41509,9.756433,0,0,0,36.17153,0,0,0,2,0,4,86.2,17.2,0,72.7,0,299.52,0,0,1.386294,5.702181,0,0,0,0,0,0,72.7,9.434479,1.386294,3.588272,1 +11,5,0,1,1,530284,0,12511.44,56.99658,0,12,1,152.1308,14.09812,50.90188,0,356.2934,573.4242,1,0,0,9,0,3,91,13.8,0,62.5,0,299.52,0,0,1.098612,5.702181,0,0,0,0,0,0,62.5,9.434479,1.098612,6.351626,1 +11,5,0,1,2,530284,0,12511.44,57.99658,0,12,1,45.89261,0,17.18219,0,0,63.07481,0,0,0,0,0,3,91,13.8,0,62.5,0,299.52,0,0,1.098612,5.702181,0,0,0,0,0,0,62.5,9.434479,1.098612,4.144321,1 +11,5,0,1,3,530284,0,12511.44,58.99658,0,12,1,27.34539,35.09887,41.96466,0,1047.539,1151.948,1,0,0,2,0,3,91,13.8,0,62.5,0,299.52,0,0,1.098612,5.702181,0,0,0,0,0,0,62.5,9.434479,1.098612,7.04921,1 +11,5,0,1,4,530284,0,12511.44,59.99658,0,12,1,64.60143,5.772573,23.57386,0,0,93.94787,0,0,0,4,0,3,91,13.8,0,62.5,0,299.52,0,0,1.098612,5.702181,0,0,0,0,0,0,62.5,9.434479,1.098612,4.54274,1 +11,5,0,1,5,530284,0,12511.44,60.99658,0,12,1,72.04117,16.12007,130.4151,0,1752.316,1970.892,2,0,0,7,0,4,91,13.8,0,62.5,0,299.52,0,0,1.386294,5.702181,0,0,0,0,0,0,62.5,9.434479,1.386294,7.586242,1 +11,5,0,1,1,530285,0,12511.44,17.88638,0,12,1,86.47176,16.17939,0,0,0,102.6511,0,0,0,9,0,3,55.9,3.4,0,39.8,0,299.52,1,0,1.098612,5.702181,0,0,0,1,0,0,39.8,9.434479,1.098612,4.631336,1 +11,5,0,1,2,530285,0,12511.44,18.88638,0,12,1,6.883892,0,0,0,0,6.883892,0,0,0,1,0,3,55.9,3.4,0,39.8,0,299.52,0,0,1.098612,5.702181,0,0,0,1,0,0,39.8,9.434479,1.098612,1.929184,1 +11,5,0,1,3,530285,0,12511.44,19.88638,0,12,1,15.98654,.9171224,0,0,0,16.90366,0,0,0,2,0,3,55.9,3.4,0,39.8,0,299.52,0,0,1.098612,5.702181,0,0,0,1,0,0,39.8,9.434479,1.098612,2.82753,1 +11,5,0,1,4,530285,0,12511.44,20.88638,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,55.9,3.4,0,39.8,0,299.52,0,0,1.098612,5.702181,0,0,0,1,0,0,39.8,9.434479,1.098612,,0 +11,5,0,1,5,530285,0,12511.44,21.88638,0,12,1,18.86792,0,0,0,0,18.86792,0,0,0,3,0,4,55.9,3.4,0,39.8,0,299.52,0,0,1.386294,5.702181,0,0,0,1,0,0,39.8,9.434479,1.386294,2.937463,1 +6,5,25,1,1,530320,0,13530.98,13.97399,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,93.3,10.57626,0,100,750,750,1,1,1.098612,6.620073,0,3.258096,8.006368,0,0,0,100,9.512811,1.098612,,0 +6,5,25,1,2,530320,0,13530.98,14.97399,1,12,1,17.00038,0,0,0,0,17.00038,0,0,0,1,0,3,93.3,10.57626,0,100,750,750,1,1,1.098612,6.620073,0,3.258096,8.006368,0,0,0,100,9.512811,1.098612,2.833236,1 +6,5,25,1,3,530320,0,13530.98,15.97399,1,12,1,6.174957,8.209263,0,0,0,14.38422,0,0,0,1,0,3,93.3,10.57626,0,100,750,750,1,1,1.098612,6.620073,0,3.258096,8.006368,0,0,0,100,9.512811,1.098612,2.666132,1 +6,5,25,1,1,530321,0,13530.98,34.19576,1,12,1,16.82793,0,0,0,0,16.82793,0,0,0,2,0,3,91,6.9,0,90.9,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,90.9,9.512811,1.098612,2.82304,1 +6,5,25,1,2,530321,0,13530.98,35.19576,1,12,1,48.35663,0,0,0,0,48.35663,0,0,0,2,0,3,91,6.9,0,90.9,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,90.9,9.512811,1.098612,3.878603,1 +6,5,25,1,3,530321,0,13530.98,36.19576,1,12,1,9.605489,0,0,0,0,9.605489,0,0,0,1,0,3,91,6.9,0,90.9,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,90.9,9.512811,1.098612,2.262335,1 +6,5,25,1,1,530322,0,13530.98,34.5024,0,10,1,0,0,0,0,0,0,0,0,0,0,0,3,91.5,6.9,0,89.8,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,89.8,9.512811,1.098612,,0 +6,5,25,1,2,530322,0,13530.98,35.5024,0,10,1,32.30072,0,0,0,0,32.30072,0,0,0,1,0,3,91.5,6.9,0,89.8,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,89.8,9.512811,1.098612,3.475089,1 +6,5,25,1,3,530322,0,13530.98,36.5024,0,10,1,9.262436,0,0,0,0,9.262436,0,0,0,2,0,3,91.5,6.9,0,89.8,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,89.8,9.512811,1.098612,2.225967,1 +19,5,25,1,1,530367,0,5839.734,57.26215,1,12,1,34.91796,8.645351,0,0,0,43.56332,0,0,0,2,0,1,80.9,20.7,1,60.2,750,750,0,0,0,6.620073,0,3.258096,8.006368,0,0,0,60.2,8.672612,0,3.774215,1 +19,5,25,1,2,530367,0,5839.734,58.26215,1,12,1,6.800151,19.966,0,0,0,26.76615,0,0,0,1,0,1,80.9,20.7,1,60.2,750,750,0,0,0,6.620073,0,3.258096,8.006368,0,0,0,60.2,8.672612,0,3.287138,1 +19,5,25,1,3,530367,0,5839.734,59.26215,1,12,1,0,19.12521,0,0,0,19.12521,0,0,0,0,0,1,80.9,20.7,1,60.2,750,750,0,0,0,6.620073,0,3.258096,8.006368,0,0,0,60.2,8.672612,0,2.951008,1 +11,5,0,0,1,530487,0,7363.031,16.93908,0,12,1,12.62095,0,33.65587,0,0,46.27682,0,0,0,0,1,4,94.1,6.9,0,68.2,0,0,1,0,1.386294,0,0,0,0,0,0,0,68.2,8.904363,1.386294,3.834641,1 +11,5,0,0,2,530487,0,7363.031,17.93908,0,12,1,34.00076,0,17.00038,0,0,51.00113,0,0,0,1,1,4,94.1,6.9,0,68.2,0,0,1,0,1.386294,0,0,0,0,0,0,0,68.2,8.904363,1.386294,3.931848,1 +11,5,0,0,3,530487,0,7363.031,18.93908,0,12,1,12.00686,0,26.07204,0,0,38.0789,0,0,0,0,1,4,94.1,6.9,0,68.2,0,0,0,0,1.386294,0,0,0,0,0,0,0,68.2,8.904363,1.386294,3.63966,1 +11,5,0,0,1,530489,0,7363.031,14.44216,0,12,1,7.57257,1.661759,0,0,0,9.234329,0,0,0,1,0,4,85.6,0,0,76.1,0,0,1,0,1.386294,0,0,0,0,0,0,0,76.1,8.904363,1.386294,2.222928,1 +11,5,0,0,2,530489,0,7363.031,15.44216,0,12,1,28.33396,0,0,0,0,28.33396,0,0,0,2,0,4,85.6,0,0,76.1,0,0,1,0,1.386294,0,0,0,0,0,0,0,76.1,8.904363,1.386294,3.344061,1 +11,5,0,0,3,530489,0,7363.031,16.44216,0,12,1,607.2041,2.469983,0,0,0,609.6741,0,0,0,2,0,4,85.6,0,0,76.1,0,0,1,0,1.386294,0,0,0,0,0,0,0,76.1,8.904363,1.386294,6.412924,1 +11,5,0,0,1,530491,0,7363.031,40.91171,0,11,1,14.72444,0,30.29028,0,0,45.01472,0,0,0,0,1,4,91.5,3.4,0,75,0,0,0,0,1.386294,0,0,0,0,0,0,0,75,8.904363,1.386294,3.80699,1 +11,5,0,0,2,530491,0,7363.031,41.91171,0,11,1,13.22252,0,29.46732,0,0,42.68984,0,0,0,0,1,4,91.5,3.4,0,75,0,0,0,0,1.386294,0,0,0,0,0,0,0,75,8.904363,1.386294,3.753961,1 +11,5,0,0,3,530491,0,7363.031,42.91171,0,11,1,12.00686,3.392796,41.3825,0,0,56.78216,0,0,0,0,1,4,91.5,3.4,0,75,0,0,0,0,1.386294,0,0,0,0,0,0,0,75,8.904363,1.386294,4.039222,1 +11,5,0,0,1,530492,0,7363.031,39.43874,1,12,1,53.42869,21.67438,34.91796,0,592.9744,702.9954,1,0,0,4,1,4,72.9,13.8,1,60.2,0,0,0,0,1.386294,0,0,0,0,0,0,0,60.2,8.904363,1.386294,6.55535,1 +11,5,0,0,2,530492,0,7363.031,40.43874,1,12,1,29.84511,0,0,0,0,29.84511,0,0,0,5,0,4,72.9,13.8,1,60.2,0,0,0,0,1.386294,0,0,0,0,0,0,0,60.2,8.904363,1.386294,3.396021,1 +11,5,0,0,3,530492,0,7363.031,41.43874,1,12,1,18.86792,5.938251,38.0789,0,0,62.88508,0,0,0,1,1,4,72.9,13.8,1,60.2,0,0,0,0,1.386294,0,0,0,0,0,0,0,60.2,8.904363,1.386294,4.141309,1 +17,5,25,0,1,530493,0,8637.993,25.9822,0,14,1,0,0,0,0,0,0,0,0,0,0,0,2,86.7,3.4,0,88.6,576.75,576.75,0,0,.6931472,6.357409,0,3.258096,7.743703,1,0,0,88.6,9.064041,.6931472,,0 +17,5,25,0,2,530493,0,8637.993,26.9822,0,14,1,0,1.305326,0,0,0,1.305326,0,0,0,0,0,2,86.7,3.4,0,88.6,576.75,576.75,0,0,.6931472,6.357409,0,3.258096,7.743703,1,0,0,88.6,9.064041,.6931472,.2664531,1 +17,5,25,0,3,530493,0,8637.993,27.9822,0,14,1,6.08931,8.108931,0,0,0,14.19824,0,0,0,1,0,3,86.7,3.4,0,88.6,576.75,576.75,0,0,1.098612,6.357409,0,3.258096,7.743703,1,0,0,88.6,9.064041,1.098612,2.653118,1 +17,5,25,0,1,530494,0,8637.993,24.91171,1,12,1,16.04835,0,0,0,0,16.04835,0,0,0,0,0,2,83,0,0,73.9,576.75,576.75,0,0,.6931472,6.357409,0,3.258096,7.743703,1,0,0,73.9,9.064041,.6931472,2.775606,1 +17,5,25,0,2,530494,0,8637.993,25.91171,1,12,1,175.5439,6.665416,.3750938,0,1373.593,1556.178,2,0,0,7,2,2,83,0,0,73.9,576.75,576.75,0,0,.6931472,6.357409,0,3.258096,7.743703,1,0,0,73.9,9.064041,.6931472,7.349988,1 +17,5,25,0,3,530494,0,8637.993,26.91171,1,12,1,30.6157,3.616374,0,0,0,34.23207,0,0,0,1,0,3,83,0,0,73.9,576.75,576.75,0,0,1.098612,6.357409,0,3.258096,7.743703,1,0,0,73.9,9.064041,1.098612,3.533163,1 +18,5,25,1,1,530495,1,2794.675,35.68789,1,12,1,0,0,0,0,965.9235,965.9235,1,0,0,0,0,3,67,27.6,1,58,504.3,504.3,0,0,1.098612,6.223171,0,3.258096,7.609466,1,0,0,58,7.935829,1.098612,6.873085,1 +18,5,25,1,2,530495,1,2794.675,36.68789,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,67,27.6,1,58,504.3,504.3,0,0,1.098612,6.223171,0,3.258096,7.609466,1,0,0,58,7.935829,1.098612,,0 +18,5,25,1,3,530495,1,2794.675,37.68789,1,12,1,17.15266,0,17.45455,0,0,34.6072,0,0,0,1,0,3,67,27.6,1,58,504.3,504.3,0,0,1.098612,6.223171,0,3.258096,7.609466,1,0,0,58,7.935829,1.098612,3.544062,1 +18,5,25,1,1,530496,1,2794.675,11.99726,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,68.3,10.57626,0,74.1,504.3,504.3,1,0,1.098612,6.223171,0,3.258096,7.609466,0,0,0,74.1,7.935829,1.098612,,0 +18,5,25,1,2,530496,1,2794.675,12.99726,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,68.3,10.57626,0,74.1,504.3,504.3,1,0,1.098612,6.223171,0,3.258096,7.609466,0,0,0,74.1,7.935829,1.098612,,0 +18,5,25,1,3,530496,1,2794.675,13.99726,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,68.3,10.57626,0,74.1,504.3,504.3,1,0,1.098612,6.223171,0,3.258096,7.609466,0,0,0,74.1,7.935829,1.098612,,0 +18,5,25,1,1,530497,1,2794.675,14.59548,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,72.3,10.3,0,52.3,504.3,504.3,1,0,1.098612,6.223171,0,3.258096,7.609466,0,0,0,52.3,7.935829,1.098612,,0 +18,5,25,1,2,530497,1,2794.675,15.59548,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,72.3,10.3,0,52.3,504.3,504.3,1,0,1.098612,6.223171,0,3.258096,7.609466,0,0,0,52.3,7.935829,1.098612,,0 +18,5,25,1,3,530497,1,2794.675,16.59548,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,72.3,10.3,0,52.3,504.3,504.3,1,0,1.098612,6.223171,0,3.258096,7.609466,0,0,0,52.3,7.935829,1.098612,,0 +10,5,50,0,1,530512,0,4944.701,35.86584,1,12,1,40.85035,0,29.59566,0,0,70.44602,0,0,0,1,1,3,96.3,6.9,0,94.3,1000,0,0,0,1.098612,0,0,3.931826,7.600903,1,0,0,94.3,8.506274,1.098612,4.254847,1 +10,5,50,0,2,530512,0,4944.701,36.86584,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,96.3,6.9,0,94.3,1000,0,0,0,1.098612,0,0,3.931826,7.600903,1,0,0,94.3,8.506274,1.098612,,0 +10,5,50,0,3,530512,0,4944.701,37.86584,1,12,1,58.52503,0,0,0,0,58.52503,0,0,0,2,1,3,96.3,6.9,0,94.3,1000,0,0,0,1.098612,0,0,3.931826,7.600903,1,0,0,94.3,8.506274,1.098612,4.069455,1 +10,5,50,0,1,530513,0,4944.701,13.97399,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,95,10.57626,0,100,1000,0,1,0,1.098612,0,0,3.931826,7.600903,0,0,0,100,8.506274,1.098612,,0 +10,5,50,0,2,530513,0,4944.701,14.97399,0,12,1,47.63691,0,0,0,0,47.63691,0,0,0,2,0,3,95,10.57626,0,100,1000,0,1,0,1.098612,0,0,3.931826,7.600903,0,0,0,100,8.506274,1.098612,3.863608,1 +10,5,50,0,3,530513,0,4944.701,15.97399,0,12,1,36.87415,0,0,0,0,36.87415,0,0,0,4,0,3,95,10.57626,0,100,1000,0,1,0,1.098612,0,0,3.931826,7.600903,0,0,0,100,8.506274,1.098612,3.607511,1 +10,5,50,0,1,530514,0,4944.701,9.533196,1,12,1,14.58941,0,0,0,0,14.58941,0,0,0,0,1,3,85,10.57626,0,85.2,1000,0,1,1,1.098612,0,0,3.931826,7.600903,0,0,0,85.2,8.506274,1.098612,2.680296,1 +10,5,50,0,2,530514,0,4944.701,10.5332,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,85,10.57626,0,85.2,1000,0,1,1,1.098612,0,0,3.931826,7.600903,0,0,0,85.2,8.506274,1.098612,,0 +10,5,50,0,3,530514,0,4944.701,11.5332,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,85,10.57626,0,85.2,1000,0,1,1,1.098612,0,0,3.931826,7.600903,0,0,0,85.2,8.506274,1.098612,,0 +11,5,0,0,1,530594,1,6674.895,9.83436,0,14,1,0,0,0,0,0,0,0,0,0,0,0,4,96.7,10.57626,.1442925,92.6,0,18,1,0,1.386294,2.890372,0,0,0,0,0,0,92.6,8.806258,1.386294,,0 +11,5,0,0,2,530594,1,6674.895,10.83436,0,14,1,15.11145,0,0,0,0,15.11145,0,0,0,2,0,4,96.7,10.57626,.1442925,92.6,0,18,1,0,1.386294,2.890372,0,0,0,0,0,0,92.6,8.806258,1.386294,2.715453,1 +11,5,0,0,3,530594,1,6674.895,11.83436,0,14,1,0,0,0,0,0,0,0,0,0,0,0,4,96.7,10.57626,.1442925,92.6,0,18,1,0,1.386294,2.890372,0,0,0,0,0,0,92.6,8.806258,1.386294,,0 +11,5,0,0,1,530595,1,6674.895,32.98015,1,14,1,264.1986,10.97602,0,0,1844.342,2119.516,1,0,0,3,0,4,90.4,17.2,0,27.3,0,18,0,0,1.386294,2.890372,0,0,0,1,0,0,27.3,8.806258,1.386294,7.658943,1 +11,5,0,0,2,530595,1,6674.895,33.98015,1,14,1,72.53494,7.287495,28.33396,0,0,108.1564,0,0,0,3,1,4,90.4,17.2,0,27.3,0,18,0,0,1.386294,2.890372,0,0,0,1,0,0,27.3,8.806258,1.386294,4.683578,1 +11,5,0,0,3,530595,1,6674.895,34.98015,1,14,1,73.75643,4.305317,0,0,0,78.06175,0,0,0,4,0,4,90.4,17.2,0,27.3,0,18,0,0,1.386294,2.890372,0,0,0,1,0,0,27.3,8.806258,1.386294,4.3575,1 +11,5,0,0,1,530596,1,6674.895,34.73511,0,13,1,21.45562,3.151031,0,0,316.7859,341.3925,1,0,0,2,0,4,93.1,6.9,0,92,0,18,0,0,1.386294,2.890372,0,0,0,0,0,0,92,8.806258,1.386294,5.833033,1 +11,5,0,0,2,530596,1,6674.895,35.73511,0,13,1,13.22252,4.533434,29.07442,0,0,46.83038,0,0,0,1,0,4,93.1,6.9,0,92,0,18,0,0,1.386294,2.890372,0,0,0,0,0,0,92,8.806258,1.386294,3.846532,1 +11,5,0,0,3,530596,1,6674.895,36.73511,0,13,1,107.0326,5.008576,0,0,0,112.0412,0,0,0,3,0,4,93.1,6.9,0,92,0,18,0,0,1.386294,2.890372,0,0,0,0,0,0,92,8.806258,1.386294,4.718866,1 +13,5,0,0,1,530717,0,5423.963,29.94114,0,14,1,0,0,0,0,0,0,0,0,0,0,0,1,59,6.9,0,88.6,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,88.6,8.598766,0,,0 +13,5,0,0,2,530717,0,5423.963,30.94114,0,14,1,0,0,0,0,0,0,0,0,0,0,0,1,59,6.9,0,88.6,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,88.6,8.598766,0,,0 +13,5,0,0,3,530717,0,5423.963,31.94114,0,14,1,0,0,0,0,0,0,0,0,0,0,0,1,59,6.9,0,88.6,150,150,0,0,0,5.010635,1,4.564348,5.061929,0,0,0,88.6,8.598766,0,,0 +11,5,0,1,1,530789,0,8797.235,33.98494,1,4,1,93.37224,19.0371,25.57732,300.1251,0,137.9867,0,0,17,10,0,5,23.4,24.1,0,40.9,0,195,0,0,1.609438,5.273,0,0,0,1,0,0,40.9,9.082307,1.609438,4.927157,1 +11,5,0,1,2,530789,0,8797.235,34.98494,1,4,1,45.85521,0,0,0,0,45.85521,0,0,0,2,0,5,23.4,24.1,0,40.9,0,195,0,0,1.609438,5.273,0,0,0,1,0,0,40.9,9.082307,1.609438,3.825489,1 +11,5,0,1,3,530789,0,8797.235,35.98494,1,4,1,6.08931,0,0,0,0,6.08931,0,0,0,1,0,5,23.4,24.1,0,40.9,0,195,0,0,1.609438,5.273,0,0,0,1,0,0,40.9,9.082307,1.609438,1.806535,1 +11,5,0,1,1,530790,0,8797.235,9.092402,0,4,1,10.83785,0,0,0,0,10.83785,0,0,0,2,0,5,85,10.57626,0,37,0,195,1,0,1.609438,5.273,0,0,0,1,0,0,37,9.082307,1.609438,2.383044,1 +11,5,0,1,2,530790,0,8797.235,10.0924,0,4,1,0,0,0,0,0,0,0,0,0,0,0,5,85,10.57626,0,37,0,195,1,0,1.609438,5.273,0,0,0,1,0,0,37,9.082307,1.609438,,0 +11,5,0,1,3,530790,0,8797.235,11.0924,0,4,1,10.14885,0,0,0,0,10.14885,0,0,0,1,0,5,85,10.57626,0,37,0,195,1,0,1.609438,5.273,0,0,0,1,0,0,37,9.082307,1.609438,2.31736,1 +11,5,0,1,1,530791,0,8797.235,14.77344,0,4,1,30.0125,0,0,0,0,30.0125,0,0,0,4,0,5,77.7,3.4,0,70.5,0,195,1,0,1.609438,5.273,0,0,0,1,0,0,70.5,9.082307,1.609438,3.401614,1 +11,5,0,1,2,530791,0,8797.235,15.77344,0,4,1,32.53939,0,0,0,0,32.53939,0,0,0,2,0,5,77.7,3.4,0,70.5,0,195,1,0,1.609438,5.273,0,0,0,1,0,0,70.5,9.082307,1.609438,3.482451,1 +11,5,0,1,3,530791,0,8797.235,16.77344,0,4,1,7.104195,0,0,0,0,7.104195,0,0,0,1,0,5,77.7,3.4,0,70.5,0,195,1,0,1.609438,5.273,0,0,0,1,0,0,70.5,9.082307,1.609438,1.960685,1 +11,5,0,1,1,530792,0,8797.235,13.07324,0,4,1,0,0,0,0,0,0,0,0,0,0,0,5,100,10.57626,0,81.5,0,195,1,0,1.609438,5.273,0,0,0,1,0,0,81.5,9.082307,1.609438,,0 +11,5,0,1,2,530792,0,8797.235,14.07324,0,4,1,72.3931,0,0,0,885.9715,958.3646,1,0,0,7,0,5,100,10.57626,0,81.5,0,195,1,0,1.609438,5.273,0,0,0,1,0,0,81.5,9.082307,1.609438,6.865228,1 +11,5,0,1,3,530792,0,8797.235,15.07324,0,4,1,28.75507,0,0,0,910.6901,939.4452,1,0,0,3,0,5,100,10.57626,0,81.5,0,195,1,0,1.609438,5.273,0,0,0,1,0,0,81.5,9.082307,1.609438,6.84529,1 +11,5,0,1,1,530793,0,8797.235,38.87748,0,5,1,0,0,0,0,0,0,0,0,0,0,0,5,74.5,6.9,0,62.5,0,195,0,0,1.609438,5.273,0,0,0,0,1,0,62.5,9.082307,1.609438,,0 +11,5,0,1,2,530793,0,8797.235,39.87748,0,5,1,0,0,0,0,0,0,0,0,0,0,0,5,74.5,6.9,0,62.5,0,195,0,0,1.609438,5.273,0,0,0,0,1,0,62.5,9.082307,1.609438,,0 +11,5,0,1,3,530793,0,8797.235,40.87748,0,5,1,0,0,0,0,0,0,0,0,0,0,0,5,74.5,6.9,0,62.5,0,195,0,0,1.609438,5.273,0,0,0,0,1,0,62.5,9.082307,1.609438,,0 +16,5,95,0,1,530876,0,9033.794,48.28474,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,42,24.1,0,50,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,50,9.108838,.6931472,,0 +16,5,95,0,2,530876,0,9033.794,49.28474,0,12,1,13.28778,0,31.51101,0,0,44.79879,0,0,0,0,1,2,42,24.1,0,50,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,50,9.108838,.6931472,3.802181,1 +16,5,95,0,3,530876,0,9033.794,50.28474,0,12,1,154.3253,0,0,0,0,154.3253,0,0,0,2,0,2,42,24.1,0,50,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,50,9.108838,.6931472,5.039063,1 +16,5,95,0,1,530877,0,9033.794,16.63792,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,46.8,6.9,0,65.9,1000,1000,1,1,.6931472,6.907755,0,4.564348,6.959049,0,1,0,65.9,9.108838,.6931472,,0 +16,5,95,0,2,530877,0,9033.794,17.63792,1,12,1,0,.6795748,0,0,0,.6795748,0,0,0,0,0,2,46.8,6.9,0,65.9,1000,1000,1,1,.6931472,6.907755,0,4.564348,6.959049,0,1,0,65.9,9.108838,.6931472,-.386288,1 +16,5,95,0,3,530877,0,9033.794,18.63792,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,46.8,6.9,0,65.9,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,1,0,65.9,9.108838,.6931472,,0 +14,5,95,1,1,530994,0,6387.609,24.47091,1,14,1,27.09462,0,21.6757,0,0,48.77032,0,0,0,1,1,2,73.9,17.2,0,71.6,592,592,0,0,.6931472,6.383507,0,4.564348,6.4348,0,0,0,71.6,8.762272,.6931472,3.887122,1 +14,5,95,1,2,530994,0,6387.609,25.47091,1,14,1,41.26031,0,39.24606,0,0,80.50638,0,0,0,3,1,2,73.9,17.2,0,71.6,592,592,0,0,.6931472,6.383507,0,4.564348,6.4348,0,0,0,71.6,8.762272,.6931472,4.388336,1 +14,5,95,1,3,530994,0,6387.609,26.47091,1,14,1,0,17.26319,0,0,0,17.26319,0,0,0,0,0,2,73.9,17.2,0,71.6,592,592,0,0,.6931472,6.383507,0,4.564348,6.4348,0,0,0,71.6,8.762272,.6931472,2.848577,1 +14,5,95,1,1,530995,0,6387.609,24.94182,0,13,1,0,0,0,0,0,0,0,0,0,0,0,2,85.1,0,0,92,592,592,0,0,.6931472,6.383507,0,4.564348,6.4348,0,0,0,92,8.762272,.6931472,,0 +14,5,95,1,2,530995,0,6387.609,25.94182,0,13,1,0,0,0,0,0,0,0,0,0,0,0,2,85.1,0,0,92,592,592,0,0,.6931472,6.383507,0,4.564348,6.4348,0,0,0,92,8.762272,.6931472,,0 +14,5,95,1,3,530995,0,6387.609,26.94182,0,13,1,0,1.075778,0,0,0,1.075778,0,0,0,0,0,2,85.1,0,0,92,592,592,0,0,.6931472,6.383507,0,4.564348,6.4348,0,0,0,92,8.762272,.6931472,.0730442,1 +11,5,0,0,1,531476,0,10963.64,7.597536,1,10.96978,1,4.987531,6.354115,0,0,0,11.34165,0,0,0,1,0,4,77.40034,10.57626,.1442925,,0,0,1,1,1.386294,0,0,0,0,0,0,0,70.68995,9.30243,1.386294,2.428481,1 +11,5,0,0,2,531476,0,10963.64,8.597536,1,10.96978,1,101.8903,28.93038,0,0,0,130.8206,0,0,0,3,0,4,77.40034,10.57626,.1442925,,0,0,1,1,1.386294,0,0,0,0,0,0,0,70.68995,9.30243,1.386294,4.873827,1 +11,5,0,0,3,531476,0,10963.64,9.597536,1,10.96978,1,21.15954,12.16674,0,0,0,33.32628,0,0,0,3,0,4,77.40034,10.57626,.1442925,,0,0,1,1,1.386294,0,0,0,0,0,0,0,70.68995,9.30243,1.386294,3.506346,1 +11,5,0,0,4,531476,0,10963.64,10.59754,1,10.96978,1,102.8853,3.701595,0,0,0,106.5869,0,0,0,3,0,4,77.40034,10.57626,.1442925,,0,0,1,1,1.386294,0,0,0,0,0,0,0,70.68995,9.30243,1.386294,4.668961,1 +11,5,0,0,5,531476,0,10963.64,11.59754,1,10.96978,1,0,2.681661,0,0,0,2.681661,0,0,0,0,0,5,77.40034,10.57626,.1442925,,0,0,1,1,1.609438,0,0,0,0,0,0,0,70.68995,9.30243,1.609438,.9864364,1 +11,5,0,0,1,531477,0,10963.64,27.06366,1,10.96978,1,92.76808,25.94015,0,0,0,118.7082,0,0,0,3,0,4,77.40034,10.57626,.1442925,,0,0,0,0,1.386294,0,0,0,0,0,0,0,70.68995,9.30243,1.386294,4.776669,1 +11,5,0,0,2,531477,0,10963.64,28.06366,1,10.96978,1,51.40618,14.63808,33.56385,0,0,99.60812,0,0,0,3,0,4,77.40034,10.57626,.1442925,,0,0,0,0,1.386294,0,0,0,0,0,0,0,70.68995,9.30243,1.386294,4.601243,1 +11,5,0,0,3,531477,0,10963.64,29.06366,1,10.96978,1,40.20313,31.10453,0,0,0,71.30766,0,0,0,5,0,4,77.40034,10.57626,.1442925,,0,0,0,0,1.386294,0,0,0,0,0,0,0,70.68995,9.30243,1.386294,4.267004,1 +11,5,0,0,4,531477,0,10963.64,30.06366,1,10.96978,1,21.82992,11.1997,0,0,549.3546,582.3842,1,0,0,2,0,4,77.40034,10.57626,.1442925,,0,0,0,0,1.386294,0,0,0,0,0,0,0,70.68995,9.30243,1.386294,6.36713,1 +11,5,0,0,5,531477,0,10963.64,31.06366,1,10.96978,1,297.7509,26.6436,0,0,0,324.3945,0,0,0,4,0,5,77.40034,10.57626,.1442925,,0,0,0,0,1.609438,0,0,0,0,0,0,0,70.68995,9.30243,1.609438,5.78196,1 +11,5,0,0,1,531478,0,10963.64,6.310746,1,10.96978,1,55.3616,9.276808,0,0,0,64.6384,0,0,0,2,0,4,77.40034,10.57626,.1442925,,0,0,1,1,1.386294,0,0,0,0,0,0,0,70.68995,9.30243,1.386294,4.168809,1 +11,5,0,0,2,531478,0,10963.64,7.310746,1,10.96978,1,0,9.681881,0,0,0,9.681881,0,0,0,0,0,4,77.40034,10.57626,.1442925,,0,0,1,1,1.386294,0,0,0,0,0,0,0,70.68995,9.30243,1.386294,2.270256,1 +11,5,0,0,3,531478,0,10963.64,8.310746,1,10.96978,1,25.39145,23.46593,0,0,0,48.85738,0,0,0,4,0,4,77.40034,10.57626,.1442925,,0,0,1,1,1.386294,0,0,0,0,0,0,0,70.68995,9.30243,1.386294,3.888906,1 +11,5,0,0,4,531478,0,10963.64,9.310746,1,10.96978,1,11.38952,16.23007,0,0,0,27.61959,0,0,0,1,0,4,77.40034,10.57626,.1442925,,0,0,1,1,1.386294,0,0,0,0,0,0,0,70.68995,9.30243,1.386294,3.318525,1 +11,5,0,0,5,531478,0,10963.64,10.31075,1,10.96978,1,30.10381,8.391004,0,0,773.7024,812.1972,1,0,0,1,0,5,77.40034,10.57626,.1442925,,0,0,1,1,1.609438,0,0,0,0,0,0,0,70.68995,9.30243,1.609438,6.699743,1 +11,5,0,0,1,531479,0,8663.343,.1916496,0,14,1,97.75561,21.76559,0,0,0,119.5212,0,0,0,14,0,4,77.40034,10.57626,0,85.2,0,911.56,1,0,1.386294,6.815157,0,0,0,0,0,0,85.2,9.066972,1.386294,4.783494,1 +11,5,0,0,2,531479,0,8663.343,1.19165,0,14,1,71.00046,14.08022,0,0,0,85.08068,0,0,0,12,0,4,77.40034,10.57626,0,85.2,0,911.56,1,0,1.386294,6.815157,0,0,0,0,0,0,85.2,9.066972,1.386294,4.4436,1 +11,5,0,0,3,531479,0,8663.343,2.191649,0,14,1,90.13966,8.573847,0,0,0,98.7135,0,0,0,10,0,4,77.40034,10.57626,0,85.2,0,911.56,1,0,1.386294,6.815157,0,0,0,0,0,0,85.2,9.066972,1.386294,4.592222,1 +11,5,0,0,4,531479,0,8663.343,3.191649,0,14,1,34.92787,17.58542,13.26879,0,0,65.78208,0,0,0,5,0,4,77.40034,10.57626,0,85.2,0,911.56,1,0,1.386294,6.815157,0,0,0,0,0,0,85.2,9.066972,1.386294,4.186347,1 +11,5,0,0,5,531479,0,8663.343,4.191649,0,14,1,23.87543,10.07266,0,0,0,33.9481,0,0,0,3,0,4,77.40034,10.57626,0,85.2,0,911.56,1,0,1.386294,6.815157,0,0,0,0,0,0,85.2,9.066972,1.386294,3.524833,1 +11,5,0,1,1,531480,0,3374.194,19.28542,1,12,1,107.7307,50.96259,7.481297,0,1157.257,1323.431,2,0,0,6,0,2,69.1,6.9,1,60.2,0,0,0,0,.6931472,0,0,0,0,0,0,0,60.2,8.124207,.6931472,7.187983,1 +11,5,0,1,2,531480,0,3374.194,20.28542,1,12,1,223.1443,90.4426,0,0,0,313.5869,0,0,0,18,0,3,69.1,6.9,1,60.2,0,0,0,0,1.098612,0,0,0,0,0,0,0,60.2,8.124207,1.098612,5.748076,1 +11,5,0,1,3,531480,0,3374.194,21.28542,1,12,1,109.1832,121.7055,3.597122,44.43504,0,234.4858,0,0,3,11,0,3,69.1,6.9,1,60.2,0,0,0,0,1.098612,0,0,0,0,0,0,0,60.2,8.124207,1.098612,5.457395,1 +11,5,0,1,4,531480,0,3374.194,22.28542,1,12,1,80.48595,34.1306,4.024298,526.3857,211.8451,330.486,1,0,37,7,0,3,69.1,6.9,1,60.2,0,0,0,0,1.098612,0,0,0,0,0,0,0,60.2,8.124207,1.098612,5.800564,1 +11,5,0,1,5,531480,0,3374.194,23.28542,1,12,1,57.43945,10.58477,3.66782,84.77509,1602.699,1674.391,2,0,6,4,0,3,69.1,6.9,1,60.2,0,0,0,0,1.098612,0,0,0,0,0,0,0,60.2,8.124207,1.098612,7.423205,1 +11,5,0,1,1,531481,0,3374.194,22.74607,0,12,1,19.95012,6.758105,0,0,917.207,943.9152,1,0,0,0,4,2,55.9,10.3,0,52.3,0,0,0,0,.6931472,0,0,0,0,0,0,0,52.3,8.124207,.6931472,6.850036,1 +11,5,0,1,2,531481,0,3374.194,23.74607,0,12,1,165.2835,18.4094,0,0,0,183.6929,0,0,0,7,0,3,55.9,10.3,0,52.3,0,0,0,0,1.098612,0,0,0,0,0,0,0,52.3,8.124207,1.098612,5.213265,1 +11,5,0,1,3,531481,0,3374.194,24.74607,0,12,1,38.93356,6.271688,30.04655,29.62336,0,75.2518,0,0,2,5,0,3,55.9,10.3,0,52.3,0,0,0,0,1.098612,0,0,0,0,0,0,0,52.3,8.124207,1.098612,4.32084,1 +11,5,0,1,4,531481,0,3374.194,25.74607,0,12,1,129.8405,5.846621,0,86.37054,0,135.6872,0,0,7,2,0,3,55.9,10.3,0,52.3,0,0,0,0,1.098612,0,0,0,0,0,0,0,52.3,8.124207,1.098612,4.910352,1 +11,5,0,1,5,531481,0,3374.194,26.74607,0,12,1,13.84083,0,21.71626,0,0,35.55709,0,0,0,1,0,3,55.9,10.3,0,52.3,0,0,0,0,1.098612,0,0,0,0,0,0,0,52.3,8.124207,1.098612,3.57114,1 +15,5,95,1,1,531486,1,1874.04,14.91581,0,5,1,0,0,0,0,0,0,0,0,0,0,0,2,86.7,3.4,0,78.4,288,0,1,0,.6931472,0,0,4.564348,5.714254,0,0,0,78.4,7.536385,.6931472,,0 +15,5,95,1,2,531486,1,1874.04,15.91581,0,5,1,0,0,0,0,0,0,0,0,0,0,0,2,86.7,3.4,0,78.4,288,0,1,0,.6931472,0,0,4.564348,5.714254,0,0,0,78.4,7.536385,.6931472,,0 +15,5,95,1,3,531486,1,1874.04,16.91581,0,5,1,0,0,0,0,0,0,0,0,0,0,0,2,86.7,3.4,0,78.4,288,0,1,0,.6931472,0,0,4.564348,5.714254,0,0,0,78.4,7.536385,.6931472,,0 +10,5,50,1,1,531491,0,10283.87,25.00479,0,14,1,30.72349,1.838454,32.98315,0,0,65.5451,0,0,0,1,0,2,81.4,20.7,0,60.2,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,0,0,0,60.2,9.238429,.6931472,4.182738,1 +10,5,50,1,2,531491,0,10283.87,26.00479,0,14,1,9.178522,0,0,0,0,9.178522,0,0,0,1,0,2,81.4,20.7,0,60.2,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,0,0,0,60.2,9.238429,.6931472,2.216866,1 +10,5,50,1,3,531491,0,10283.87,27.00479,0,14,1,0,5.061001,34.56458,0,0,39.62558,0,0,0,0,0,3,81.4,20.7,0,60.2,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,60.2,9.238429,1.098612,3.679475,1 +10,5,50,1,4,531491,0,10283.87,28.00479,0,14,1,7.555724,2.474499,13.75142,0,0,23.78164,0,0,0,1,0,3,81.4,20.7,0,60.2,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,60.2,9.238429,1.098612,3.168914,1 +10,5,50,1,5,531491,0,10283.87,29.00479,0,14,1,10.2916,0,30.06175,0,0,40.35334,0,0,0,0,1,3,81.4,20.7,0,60.2,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,60.2,9.238429,1.098612,3.697674,1 +11,5,0,1,1,531496,1,602.3461,.3312799,0,12,1,9.910803,5.193261,0,0,0,15.10406,0,0,0,2,0,5,77.40034,10.57626,0,77.8,0,0,1,0,1.609438,0,0,0,0,0,0,0,77.8,6.402491,1.609438,2.714964,1 +11,5,0,1,2,531496,1,602.3461,1.33128,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,77.8,0,0,1,0,1.609438,0,0,0,0,0,0,0,77.8,6.402491,1.609438,,0 +11,5,0,1,3,531496,1,602.3461,2.33128,0,12,1,0,0,0,0,352.9659,352.9659,1,0,0,0,0,6,77.40034,10.57626,0,77.8,0,0,1,0,1.791759,0,0,0,0,0,0,0,77.8,6.402491,1.791759,5.866372,1 +11,5,0,1,4,531496,1,602.3461,3.33128,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,77.40034,10.57626,0,77.8,0,0,1,0,1.791759,0,0,0,0,0,0,0,77.8,6.402491,1.791759,,0 +11,5,0,1,5,531496,1,602.3461,4.33128,0,12,1,450.4288,0,0,0,0,450.4288,0,0,0,3,0,6,77.40034,10.57626,0,77.8,0,0,1,0,1.791759,0,0,0,0,0,0,0,77.8,6.402491,1.791759,6.1102,1 +13,5,0,1,1,531520,1,2422.939,8.81588,1,8,1,0,0,0,0,0,0,0,0,0,0,0,3,95,10.57626,0,66.7,450,0,1,1,1.098612,0,1,4.564348,6.160541,0,0,0,66.7,7.793149,1.098612,,0 +13,5,0,1,2,531520,1,2422.939,9.81588,1,8,1,0,0,0,0,0,0,0,0,0,0,0,3,95,10.57626,0,66.7,450,0,1,1,1.098612,0,1,4.564348,6.160541,0,0,0,66.7,7.793149,1.098612,,0 +13,5,0,1,3,531520,1,2422.939,10.81588,1,8,1,0,0,0,0,0,0,0,0,0,0,0,4,95,10.57626,0,66.7,450,0,1,1,1.386294,0,1,4.564348,6.160541,0,0,0,66.7,7.793149,1.386294,,0 +13,5,0,0,1,531524,0,13794.16,27.98083,0,10.96978,1,11.42615,0,0,0,0,11.42615,0,0,0,1,0,4,74.5,3.4,0,87.5,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,87.5,9.532073,1.386294,2.435905,1 +13,5,0,0,2,531524,0,13794.16,28.98083,0,10.96978,1,0,0,0,0,0,0,0,0,0,0,0,4,74.5,3.4,0,87.5,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,87.5,9.532073,1.386294,,0 +13,5,0,0,3,531524,0,13794.16,29.98083,0,10.96978,1,5.190311,0,0,0,0,5.190311,0,0,0,1,0,4,74.5,3.4,0,87.5,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,87.5,9.532073,1.386294,1.646794,1 +13,5,0,0,1,531542,0,4835.125,32.31759,1,13,1,30.89293,0,0,0,0,30.89293,0,0,0,2,0,2,84,17.2,0,73.9,300,394.56,0,0,.6931472,5.977771,1,4.564348,5.755076,1,0,0,73.9,8.48387,.6931472,3.430527,1 +13,5,0,0,2,531542,0,4835.125,33.31759,1,13,1,75.55049,0,0,38.72437,0,75.55049,0,0,6,5,0,2,84,17.2,0,73.9,300,394.56,0,0,.6931472,5.977771,1,4.564348,5.755076,1,0,0,73.9,8.48387,.6931472,4.324801,1 +13,5,0,0,3,531542,0,4835.125,34.31759,1,13,1,156.0554,0,0,0,444.6367,600.692,1,0,0,2,0,2,84,17.2,0,73.9,300,394.56,0,0,.6931472,5.977771,1,4.564348,5.755076,1,0,0,73.9,8.48387,.6931472,6.398082,1 +13,5,0,0,1,531543,0,4835.125,28.23545,0,14,1,0,0,0,0,0,0,0,0,0,0,0,2,78.7,3.4,1,76.1,300,394.56,0,0,.6931472,5.977771,1,4.564348,5.755076,1,0,0,76.1,8.48387,.6931472,,0 +13,5,0,0,2,531543,0,4835.125,29.23545,0,14,1,11.38952,0,25.05695,0,0,36.44647,0,0,0,0,1,2,78.7,3.4,1,76.1,300,394.56,0,0,.6931472,5.977771,1,4.564348,5.755076,1,0,0,76.1,8.48387,.6931472,3.595845,1 +13,5,0,0,3,531543,0,4835.125,30.23545,0,14,1,13.14879,0,0,0,0,13.14879,0,0,0,0,0,2,78.7,3.4,1,76.1,300,394.56,0,0,.6931472,5.977771,1,4.564348,5.755076,1,0,0,76.1,8.48387,.6931472,2.57633,1 +11,5,0,0,1,531544,0,14134.67,13.8371,1,12,1,16.82793,0,22.75137,0,0,39.5793,0,0,0,2,0,5,90,10.57626,0,85.2,0,0,1,1,1.609438,0,0,0,0,0,0,0,85.2,9.556457,1.609438,3.678306,1 +11,5,0,0,2,531544,0,14134.67,14.8371,1,12,1,23.42274,0,5.500566,0,0,28.92331,0,0,0,2,0,5,90,10.57626,0,85.2,0,0,1,1,1.609438,0,0,0,0,0,0,0,85.2,9.556457,1.609438,3.364648,1 +11,5,0,0,3,531544,0,14134.67,15.8371,1,12,1,13.72213,0,9.989708,0,0,23.71184,0,0,0,1,0,5,90,10.57626,0,85.2,0,0,1,1,1.609438,0,0,0,0,0,0,0,85.2,9.556457,1.609438,3.165974,1 +11,5,0,0,1,531545,0,14134.67,49.14442,0,18,1,16.82793,0,24.939,0,0,41.76693,0,0,0,1,0,5,70.7,3.4,0,71.6,0,0,0,0,1.609438,0,0,0,0,0,0,0,71.6,9.556457,1.609438,3.732105,1 +11,5,0,0,2,531545,0,14134.67,50.14442,0,18,1,0,0,0,0,0,0,0,0,0,0,0,5,70.7,3.4,0,71.6,0,0,0,0,1.609438,0,0,0,0,0,0,0,71.6,9.556457,1.609438,,0 +11,5,0,0,3,531545,0,14134.67,51.14442,0,18,1,0,0,0,0,0,0,0,0,0,0,0,5,70.7,3.4,0,71.6,0,0,0,0,1.609438,0,0,0,0,0,0,0,71.6,9.556457,1.609438,,0 +11,5,0,0,1,531546,0,14134.67,9.182752,0,12,1,5.679428,0,0,0,0,5.679428,0,0,0,1,0,5,83.3,10.57626,0,92.6,0,0,1,0,1.609438,0,0,0,0,0,0,0,92.6,9.556457,1.609438,1.736851,1 +11,5,0,0,2,531546,0,14134.67,10.18275,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,83.3,10.57626,0,92.6,0,0,1,0,1.609438,0,0,0,0,0,0,0,92.6,9.556457,1.609438,,0 +11,5,0,0,3,531546,0,14134.67,11.18275,0,12,1,13.72213,3.204117,0,0,0,16.92624,0,0,0,1,0,5,83.3,10.57626,0,92.6,0,0,1,0,1.609438,0,0,0,0,0,0,0,92.6,9.556457,1.609438,2.828865,1 +11,5,0,0,1,531547,0,14134.67,10.39014,1,12,1,11.14851,0,0,0,0,11.14851,0,0,0,2,0,5,91.7,10.57626,0,88.9,0,0,1,1,1.609438,0,0,0,0,0,0,0,88.9,9.556457,1.609438,2.411305,1 +11,5,0,0,2,531547,0,14134.67,11.39014,1,12,1,9.82244,2.334718,0,0,0,12.15716,0,0,0,2,0,5,91.7,10.57626,0,88.9,0,0,1,1,1.609438,0,0,0,0,0,0,0,88.9,9.556457,1.609438,2.497918,1 +11,5,0,0,3,531547,0,14134.67,12.39014,1,12,1,27.44425,10.69983,0,0,0,38.14408,0,0,0,2,0,5,91.7,10.57626,0,88.9,0,0,1,1,1.609438,0,0,0,0,0,0,0,88.9,9.556457,1.609438,3.641371,1 +11,5,0,0,1,531548,0,14134.67,39.36208,1,12,1,25.45225,3.920909,0,0,0,29.37316,0,0,0,2,0,5,91,20.7,0,54.5,0,0,0,0,1.609438,0,0,0,0,1,0,0,54.5,9.556457,1.609438,3.380081,1 +11,5,0,0,2,531548,0,14134.67,40.36208,1,12,1,11.71137,0,23.94787,0,0,35.65924,0,0,0,3,0,5,91,20.7,0,54.5,0,0,0,0,1.609438,0,0,0,0,1,0,0,54.5,9.556457,1.609438,3.574008,1 +11,5,0,0,3,531548,0,14134.67,41.36208,1,12,1,56.26072,5.15952,17.09091,0,0,78.51115,0,0,0,7,0,5,91,20.7,0,54.5,0,0,0,0,1.609438,0,0,0,0,1,0,0,54.5,9.556457,1.609438,4.363241,1 +18,5,25,0,1,531553,0,10407.07,4.25462,1,16,1,18.93143,10.26504,0,0,0,29.19647,0,0,0,3,0,4,77.40034,10.57626,0,92.6,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,0,0,0,92.6,9.250337,1.386294,3.374048,1 +18,5,25,0,2,531553,0,10407.07,5.25462,1,16,1,65.73479,26.5017,0,0,0,92.2365,0,0,0,10,0,4,77.40034,10.57626,0,92.6,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,0,0,0,92.6,9.250337,1.386294,4.524356,1 +18,5,25,0,3,531553,0,10407.07,6.25462,1,16,1,53.17324,4.504288,2.360206,0,0,60.03773,0,0,0,4,0,4,77.40034,10.57626,0,92.6,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,0,0,0,92.6,9.250337,1.386294,4.094973,1 +18,5,25,0,1,531554,0,10407.07,2.527036,1,16,1,87.50526,30.14304,0,0,236.4325,354.0808,1,0,0,10,0,4,77.40034,10.57626,0,81.5,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,0,0,0,81.5,9.250337,1.386294,5.869525,1 +18,5,25,0,2,531554,0,10407.07,3.527036,1,16,1,11.33358,5.640347,0,0,0,16.97393,0,0,0,2,0,4,77.40034,10.57626,0,81.5,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,0,0,0,81.5,9.250337,1.386294,2.831679,1 +18,5,25,0,3,531554,0,10407.07,4.527036,1,16,1,12.34991,1.385935,0,0,0,13.73585,0,0,0,2,0,4,77.40034,10.57626,0,81.5,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,0,0,0,81.5,9.250337,1.386294,2.620009,1 +18,5,25,0,1,531555,0,10407.07,29.14168,1,16,1,0,0,0,0,0,0,0,0,0,0,0,4,83.5,6.9,0,86.4,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,86.4,9.250337,1.386294,,0 +18,5,25,0,2,531555,0,10407.07,30.14168,1,16,1,27.57839,13.05251,0,0,0,40.6309,0,0,0,3,0,4,83.5,6.9,0,86.4,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,86.4,9.250337,1.386294,3.704529,1 +18,5,25,0,3,531555,0,10407.07,31.14168,1,16,1,43.56775,14.10292,0,0,0,57.67067,0,0,0,4,0,4,83.5,6.9,0,86.4,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,86.4,9.250337,1.386294,4.054749,1 +18,5,25,0,1,531556,0,10407.07,28.47365,0,14,1,6.310475,5.023139,0,0,0,11.33361,0,0,0,1,0,4,78.2,10.3,0,77.3,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,77.3,9.250337,1.386294,2.427773,1 +18,5,25,0,2,531556,0,10407.07,29.47365,0,14,1,55.91235,3.891198,24.5561,0,0,84.35965,0,0,0,4,1,4,78.2,10.3,0,77.3,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,77.3,9.250337,1.386294,4.435089,1 +18,5,25,0,3,531556,0,10407.07,30.47365,0,14,1,17.15266,1.629503,0,0,0,18.78216,0,0,0,0,1,4,78.2,10.3,0,77.3,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,77.3,9.250337,1.386294,2.932908,1 +10,5,50,0,1,531557,0,9566.82,31.2553,1,12,1,15.90812,0,0,0,0,15.90812,0,0,0,0,0,4,87.8,24.1,0,69.3,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,69.3,9.166161,1.386294,2.76683,1 +10,5,50,0,2,531557,0,9566.82,32.25531,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,87.8,24.1,0,69.3,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,69.3,9.166161,1.386294,,0 +10,5,50,0,3,531557,0,9566.82,33.25531,1,12,1,69.68641,0,0,0,0,69.68641,0,0,0,1,0,4,87.8,24.1,0,69.3,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,69.3,9.166161,1.386294,4.244005,1 +10,5,50,0,1,531558,0,9566.82,11.82204,1,12,1,25.94641,0,0,0,0,25.94641,0,0,0,1,0,4,56.7,10.57626,0,74.1,1000,1000,1,1,1.386294,6.907755,0,3.931826,7.600903,0,0,0,74.1,9.166161,1.386294,3.256033,1 +10,5,50,0,2,531558,0,9566.82,12.82204,1,12,1,48.0916,0,0,0,0,48.0916,0,0,0,2,0,4,56.7,10.57626,0,74.1,1000,1000,1,1,1.386294,6.907755,0,3.931826,7.600903,0,0,0,74.1,9.166161,1.386294,3.873108,1 +10,5,50,0,3,531558,0,9566.82,13.82204,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,56.7,10.57626,0,74.1,1000,1000,1,1,1.386294,6.907755,0,3.931826,7.600903,0,0,0,74.1,9.166161,1.386294,,0 +10,5,50,0,1,531559,0,9566.82,37.28679,0,7,1,57.42237,23.81965,0,0,0,81.24203,0,0,0,2,0,4,65.4,13.8,0,78.4,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,78.4,9.166161,1.386294,4.397433,1 +10,5,50,0,2,531559,0,9566.82,38.28679,0,7,1,38.54962,6.744275,0,0,0,45.29389,0,0,0,5,0,4,65.4,13.8,0,78.4,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,78.4,9.166161,1.386294,3.813172,1 +10,5,50,0,3,531559,0,9566.82,39.28679,0,7,1,26.91638,0,0,0,0,26.91638,0,0,0,1,0,4,65.4,13.8,0,78.4,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,78.4,9.166161,1.386294,3.292735,1 +10,5,50,0,1,531560,0,9566.82,9.174538,0,12,1,36.96299,3.441089,4.155678,0,0,44.55976,0,0,0,1,0,4,73.3,10.57626,1,77.8,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,77.8,9.166161,1.386294,3.796831,1 +10,5,50,0,2,531560,0,9566.82,10.17454,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,73.3,10.57626,1,77.8,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,77.8,9.166161,1.386294,,0 +10,5,50,0,3,531560,0,9566.82,11.17454,0,12,1,0,0,0,0,940.1742,940.1742,1,0,0,0,0,4,73.3,10.57626,1,77.8,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,77.8,9.166161,1.386294,6.846065,1 +11,5,0,1,1,531578,0,9454.173,13.04312,0,12,1,6.310475,2.806058,0,0,0,9.116533,0,0,0,1,0,7,86.7,10.57626,0,77.8,0,537.86,1,0,1.94591,6.287598,0,0,0,0,0,0,77.8,9.154317,1.94591,2.21009,1 +11,5,0,1,2,531578,0,9454.173,14.04312,0,12,1,123.1583,11.90782,0,0,0,135.0661,0,0,0,7,1,7,86.7,10.57626,0,77.8,0,537.86,1,0,1.94591,6.287598,0,0,0,0,0,0,77.8,9.154317,1.94591,4.905765,1 +11,5,0,1,3,531578,0,9454.173,15.04312,0,12,1,81.98971,83.53345,0,0,0,165.5232,0,0,0,7,1,7,86.7,10.57626,0,77.8,0,537.86,1,0,1.94591,6.287598,0,0,0,0,0,0,77.8,9.154317,1.94591,5.109111,1 +11,5,0,1,1,531579,0,9454.173,12.01917,0,12,1,97.18132,0,24.8212,0,0,122.0025,0,0,0,1,1,7,80,10.57626,0,51.9,0,537.86,1,0,1.94591,6.287598,0,0,0,0,1,0,51.9,9.154317,1.94591,4.804042,1 +11,5,0,1,2,531579,0,9454.173,13.01917,0,12,1,51.75671,9.255761,13.22252,0,0,74.23499,0,0,0,3,1,7,80,10.57626,0,51.9,0,537.86,1,0,1.94591,6.287598,0,0,0,0,1,0,51.9,9.154317,1.94591,4.307236,1 +11,5,0,1,3,531579,0,9454.173,14.01917,0,12,1,168.4391,3.087479,0,0,0,171.5266,0,0,0,7,0,7,80,10.57626,0,51.9,0,537.86,1,0,1.94591,6.287598,0,0,0,0,1,0,51.9,9.154317,1.94591,5.144738,1 +11,5,0,1,1,531580,0,9454.173,10.85284,0,12,1,25.2419,1.615482,0,0,0,26.85738,0,0,0,1,1,7,88.3,10.57626,0,74.1,0,537.86,1,0,1.94591,6.287598,0,0,0,0,1,0,74.1,9.154317,1.94591,3.290541,1 +11,5,0,1,2,531580,0,9454.173,11.85284,0,12,1,94.82433,17.75595,0,0,0,112.5803,0,0,0,8,0,7,88.3,10.57626,0,74.1,0,537.86,1,0,1.94591,6.287598,0,0,0,0,1,0,74.1,9.154317,1.94591,4.723667,1 +11,5,0,1,3,531580,0,9454.173,12.85284,0,12,1,42.53859,27.18696,0,0,0,69.72556,0,0,0,5,1,7,88.3,10.57626,0,74.1,0,537.86,1,0,1.94591,6.287598,0,0,0,0,1,0,74.1,9.154317,1.94591,4.244567,1 +11,5,0,1,1,531581,0,9454.173,38.72416,0,13,1,21.98149,2.267564,0,0,0,24.24905,0,0,0,1,0,7,92,6.9,0,77.3,0,537.86,0,0,1.94591,6.287598,0,0,0,0,0,0,77.3,9.154317,1.94591,3.188378,1 +11,5,0,1,2,531581,0,9454.173,39.72416,0,13,1,43.44541,26.72837,35.13411,0,0,105.3079,0,0,0,2,1,7,92,6.9,0,77.3,0,537.86,0,0,1.94591,6.287598,0,0,0,0,0,0,77.3,9.154317,1.94591,4.656888,1 +11,5,0,1,3,531581,0,9454.173,40.72416,0,13,1,51.11492,28.98799,22.29846,0,0,102.4014,0,0,0,5,1,7,92,6.9,0,77.3,0,537.86,0,0,1.94591,6.287598,0,0,0,0,0,0,77.3,9.154317,1.94591,4.6289,1 +11,5,0,1,1,531590,0,9454.173,33.11704,1,12,1,4.206984,9.402608,0,0,0,13.60959,0,0,0,1,0,7,56.4,10.3,0,72.7,0,537.86,0,0,1.94591,6.287598,0,0,0,0,1,0,72.7,9.154317,1.94591,2.610775,1 +11,5,0,1,2,531590,0,9454.173,34.11704,1,12,1,103.2301,14.22743,0,0,0,117.4575,0,0,0,7,0,7,56.4,10.3,0,72.7,0,537.86,0,0,1.94591,6.287598,0,0,0,0,1,0,72.7,9.154317,1.94591,4.766077,1 +11,5,0,1,3,531590,0,9454.173,35.11704,1,12,1,98.79932,64.06518,4.288165,0,2347.856,2515.009,1,0,0,9,1,7,56.4,10.3,0,72.7,0,537.86,0,0,1.94591,6.287598,0,0,0,0,1,0,72.7,9.154317,1.94591,7.830031,1 +11,5,0,1,1,531591,0,9454.173,9.004791,0,12,1,40.28187,5.212453,0,0,0,45.49432,0,0,0,2,0,7,88.3,10.57626,0,92.6,0,537.86,1,0,1.94591,6.287598,0,0,0,0,0,0,92.6,9.154317,1.94591,3.817587,1 +11,5,0,1,2,531591,0,9454.173,10.00479,0,12,1,67.62373,8.783528,0,0,0,76.40726,0,0,0,3,0,7,88.3,10.57626,0,92.6,0,537.86,1,0,1.94591,6.287598,0,0,0,0,0,0,92.6,9.154317,1.94591,4.336078,1 +11,5,0,1,3,531591,0,9454.173,11.00479,0,12,1,41.50943,6.861063,0,0,0,48.3705,0,0,0,3,0,7,88.3,10.57626,0,92.6,0,537.86,1,0,1.94591,6.287598,0,0,0,0,0,0,92.6,9.154317,1.94591,3.87889,1 +11,5,0,1,1,531592,0,9454.173,14.32717,0,12,1,110.223,5.363904,284.3921,0,2814.893,3214.872,1,0,0,6,0,7,92,3.4,0,85.2,0,537.86,1,0,1.94591,6.287598,0,0,0,0,0,0,85.2,9.154317,1.94591,8.075542,1 +11,5,0,1,2,531592,0,9454.173,15.32717,0,12,1,220.2493,1.794484,9.369097,0,1444.061,1675.474,1,0,0,6,28,7,92,3.4,0,85.2,0,537.86,1,0,1.94591,6.287598,0,0,0,0,0,0,85.2,9.154317,1.94591,7.423851,1 +11,5,0,1,3,531592,0,9454.173,16.32717,0,12,1,0,0,0,0,0,0,0,0,0,0,0,7,92,3.4,0,85.2,0,537.86,1,0,1.94591,6.287598,0,0,0,0,0,0,85.2,9.154317,1.94591,,0 +11,5,0,1,1,531596,1,6674.895,2.491444,1,9,1,0,0,0,0,0,0,0,0,0,0,0,3,77.40034,10.57626,0,96.3,0,0,1,1,1.098612,0,0,0,0,0,0,0,96.3,8.806258,1.098612,,0 +11,5,0,1,2,531596,1,6674.895,3.491444,1,9,1,10.68702,1.48855,0,0,0,12.17557,0,0,0,1,0,3,77.40034,10.57626,0,96.3,0,0,1,1,1.098612,0,0,0,0,0,0,0,96.3,8.806258,1.098612,2.499432,1 +11,5,0,1,3,531596,1,6674.895,4.491444,1,9,1,67.59582,12.14286,0,0,0,79.73868,0,0,0,3,0,4,77.40034,10.57626,0,96.3,0,0,1,1,1.386294,0,0,0,0,0,0,0,96.3,8.806258,1.386294,4.378755,1 +11,5,0,1,1,531597,0,12254.48,32.75565,0,14,1,6.252605,0,0,0,0,6.252605,0,0,0,1,0,2,88.3,6.9,0,95.5,0,624.78,0,0,.6931472,6.437399,0,0,0,0,0,0,95.5,9.413729,.6931472,1.832998,1 +14,5,95,0,1,531605,0,11026.98,43.30185,0,20,1,17.19902,0,0,0,0,17.19902,0,0,0,2,0,2,86.7,13.8,0,87.5,850,850,0,0,.6931472,6.745236,0,4.564348,6.79653,0,0,0,87.5,9.308191,.6931472,2.844852,1 +14,5,95,0,2,531605,0,11026.98,44.30185,0,20,1,11.39471,0,15.49681,0,0,26.89152,0,0,0,1,0,2,86.7,13.8,0,87.5,850,850,0,0,.6931472,6.745236,0,4.564348,6.79653,0,0,0,87.5,9.308191,.6931472,3.291811,1 +11,5,0,1,1,531619,0,2306.708,21.54415,1,9,1,15.73798,1.38239,0,0,0,17.12037,0,0,0,1,0,1,59.6,3.4,0,59.1,0,0,0,0,0,0,0,0,0,0,0,0,59.1,7.74401,0,2.840269,1 +11,5,0,1,2,531619,0,2306.708,22.54415,1,9,1,11.45038,5.568702,0,0,0,17.01908,0,0,0,1,0,1,59.6,3.4,0,59.1,0,0,0,0,0,0,0,0,0,0,0,0,59.1,7.74401,0,2.834335,1 +11,5,0,1,3,531619,0,2306.708,23.54415,1,9,1,0,0,0,0,0,0,0,0,0,0,0,1,59.6,3.4,0,59.1,0,0,0,0,0,0,0,0,0,0,0,0,59.1,7.74401,0,,0 +11,5,0,0,1,531634,1,5341.014,2.116359,1,13,1,7.993269,0,0,0,0,7.993269,0,0,0,0,0,4,77.40034,10.57626,0,59.3,0,592.32,1,1,1.386294,6.384047,0,0,0,0,0,0,59.3,8.583358,1.386294,2.0786,1 +11,5,0,0,2,531634,1,5341.014,3.116359,1,13,1,33.62297,1.983377,0,0,0,35.60635,0,0,0,2,0,4,77.40034,10.57626,0,59.3,0,592.32,1,1,1.386294,6.384047,0,0,0,0,0,0,59.3,8.583358,1.386294,3.572524,1 +11,5,0,0,3,531634,1,5341.014,4.116359,1,13,1,34.30532,0,0,0,0,34.30532,0,0,0,1,1,4,77.40034,10.57626,0,59.3,0,592.32,1,1,1.386294,6.384047,0,0,0,0,0,0,59.3,8.583358,1.386294,3.5353,1 +11,5,0,0,2,531637,0,6637.537,.6605065,0,9,1,70.2157,24.13492,0,0,0,94.35062,0,0,0,10,0,4,77.40034,10.57626,.1442925,,0,357.64,1,0,1.386294,5.879527,0,0,0,0,0,0,70.68995,8.800647,1.386294,4.547018,1 +11,5,0,0,3,531637,0,6637.537,1.660506,0,9,1,59.31847,2.393774,0,0,447.8334,509.5457,1,0,0,7,0,4,77.40034,10.57626,.1442925,,0,357.64,1,0,1.386294,5.879527,0,0,0,0,0,0,70.68995,8.800647,1.386294,6.23352,1 +11,5,0,0,4,531637,0,6637.537,2.660506,0,9,1,13.22252,1.016245,0,0,0,14.23876,0,0,0,1,0,4,77.40034,10.57626,.1442925,,0,357.64,1,0,1.386294,5.879527,0,0,0,0,0,0,70.68995,8.800647,1.386294,2.655968,1 +11,5,0,0,5,531637,0,6637.537,3.660506,0,9,1,9.605489,1.588336,0,0,0,11.19382,0,0,0,1,0,4,77.40034,10.57626,.1442925,,0,357.64,1,0,1.386294,5.879527,0,0,0,0,0,0,70.68995,8.800647,1.386294,2.415362,1 +19,5,25,0,1,531648,0,12647.21,34.38467,0,16,1,37.51563,0,0,0,0,37.51563,0,0,0,4,0,2,80.3,3.4,0,79.5,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,0,0,79.5,9.445271,.6931472,3.624758,1 +19,5,25,0,2,531648,0,12647.21,35.38467,0,16,1,0,0,0,0,0,0,0,0,0,0,0,2,80.3,3.4,0,79.5,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,0,0,79.5,9.445271,.6931472,,0 +19,5,25,0,3,531648,0,12647.21,36.38467,0,16,1,0,0,0,0,0,0,0,0,0,0,0,2,80.3,3.4,0,79.5,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,0,0,79.5,9.445271,.6931472,,0 +14,5,95,0,1,531650,1,3421.403,2.001369,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,77.40034,10.57626,0,55.6,142.55,142.55,1,1,1.098612,4.959693,0,4.564348,5.010986,0,0,0,55.6,8.138098,1.098612,,0 +14,5,95,0,2,531650,1,3421.403,3.001369,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,77.40034,10.57626,0,55.6,142.55,142.55,1,1,1.098612,4.959693,0,4.564348,5.010986,0,0,0,55.6,8.138098,1.098612,,0 +14,5,95,0,3,531650,1,3421.403,4.001369,1,12,1,31.35888,0,0,0,0,31.35888,0,0,0,0,0,3,77.40034,10.57626,0,55.6,142.55,142.55,1,1,1.098612,4.959693,0,4.564348,5.010986,0,0,0,55.6,8.138098,1.098612,3.445498,1 +11,5,0,0,1,531653,1,3942.652,1.94935,0,13,1,30.41259,0,0,0,0,30.41259,0,0,0,4,0,4,77.40034,10.57626,0,85.2,0,0,1,0,1.386294,0,0,0,0,0,0,0,85.2,8.279862,1.386294,3.414857,1 +11,5,0,0,2,531653,1,3942.652,2.94935,0,13,1,0,1.133588,0,0,0,1.133588,0,0,0,0,0,5,77.40034,10.57626,0,85.2,0,0,1,0,1.609438,0,0,0,0,0,0,0,85.2,8.279862,1.609438,.1253877,1 +11,5,0,0,3,531653,1,3942.652,3.94935,0,13,1,10.45296,0,0,0,0,10.45296,0,0,0,0,1,6,77.40034,10.57626,0,85.2,0,0,1,0,1.791759,0,0,0,0,0,0,0,85.2,8.279862,1.791759,2.346885,1 +13,5,0,0,1,531654,.4758801,13789.04,34.83915,1,10.96978,1,45.01472,36.5671,0,0,0,81.58183,0,0,0,3,0,3,77.1,6.9,1,67,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,67,9.531702,1.098612,4.401607,1 +13,5,0,0,2,531654,.4758801,13789.04,35.83915,1,10.96978,1,60.44579,7.370608,0,0,626.7473,694.5637,1,0,0,5,0,3,77.1,6.9,1,67,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,67,9.531702,1.098612,6.543284,1 +13,5,0,0,3,531654,.4758801,13789.04,36.83915,1,10.96978,1,529.6569,32.53516,0,0,579.0737,1141.266,1,0,0,8,0,4,77.1,6.9,1,67,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,67,9.531702,1.386294,7.039893,1 +13,5,0,0,2,531663,0,199.4135,.6386037,0,12,1,98.90611,20.07748,0,0,0,118.9836,0,0,0,11,0,2,77.40034,10.57626,.1442925,,150,150,1,0,.6931472,5.010635,1,4.564348,5.061929,0,0,0,70.68995,5.300383,.6931472,4.778986,1 +13,5,0,0,3,531663,0,199.4135,1.638604,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,77.40034,10.57626,.1442925,,150,150,1,0,.6931472,5.010635,1,4.564348,5.061929,0,0,0,70.68995,5.300383,.6931472,,0 +13,5,0,0,4,531663,0,199.4135,2.638604,0,12,1,5.626407,0,0,0,0,5.626407,0,0,0,1,0,2,77.40034,10.57626,.1442925,,150,150,1,0,.6931472,5.010635,1,4.564348,5.061929,0,0,0,70.68995,5.300383,.6931472,1.727471,1 +13,5,0,0,5,531663,0,199.4135,3.638604,0,12,1,16.32273,0,0,0,0,16.32273,0,0,0,0,0,2,77.40034,10.57626,.1442925,,150,150,1,0,.6931472,5.010635,1,4.564348,5.061929,0,0,0,70.68995,5.300383,.6931472,2.792559,1 +14,5,95,0,1,531667,0,6674.895,1.804244,0,8,1,18.83199,0,0,0,0,18.83199,0,0,0,1,0,3,77.40034,10.57626,.1442925,,313.5,396.24,1,0,1.098612,5.98202,0,4.564348,5.799093,0,0,0,70.68995,8.806258,1.098612,2.935557,1 +14,5,95,0,2,531667,0,6674.895,2.804244,0,8,1,0,0,0,0,0,0,0,0,0,0,0,3,77.40034,10.57626,.1442925,,313.5,396.24,1,0,1.098612,5.98202,0,4.564348,5.799093,0,0,0,70.68995,8.806258,1.098612,,0 +14,5,95,0,3,531667,0,6674.895,3.804244,0,8,1,0,0,0,0,0,0,0,0,0,0,0,3,77.40034,10.57626,.1442925,,313.5,396.24,1,0,1.098612,5.98202,0,4.564348,5.799093,0,0,0,70.68995,8.806258,1.098612,,0 +16,5,95,0,1,531673,0,7100.871,1.568789,0,15,1,62.26336,0,0,0,0,62.26336,0,0,0,5,0,3,77.40034,10.57626,0,92.6,1000,1000,1,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,92.6,8.868114,1.098612,4.131373,1 +16,5,95,0,2,531673,0,7100.871,2.568789,0,15,1,85.37968,24.62788,0,0,258.7835,368.7911,1,0,0,12,0,3,77.40034,10.57626,0,92.6,1000,1000,1,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,92.6,8.868114,1.098612,5.91023,1 +16,5,95,0,3,531673,0,7100.871,3.568789,0,15,1,238.422,5.516295,0,0,0,243.9382,0,0,0,3,17,3,77.40034,10.57626,0,92.6,1000,1000,1,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,92.6,8.868114,1.098612,5.496915,1 +11,5,0,0,2,531682,0,14946.04,.4469541,0,16,1,86.27811,27.51262,0,0,0,113.7907,0,0,0,11,0,4,77.40034,10.57626,.1442925,,0,469.68,1,0,1.386294,6.152051,0,0,0,0,0,0,70.68995,9.612268,1.386294,4.734361,1 +11,5,0,0,3,531682,0,14946.04,1.446954,0,16,1,128.7337,29.84855,0,0,0,158.5822,0,0,0,12,0,4,77.40034,10.57626,.1442925,,0,469.68,1,0,1.386294,6.152051,0,0,0,0,0,0,70.68995,9.612268,1.386294,5.066273,1 +11,5,0,0,4,531682,0,14946.04,2.446954,0,16,1,214.2048,9.217982,0,0,0,223.4227,0,0,0,5,14,4,77.40034,10.57626,.1442925,,0,469.68,1,0,1.386294,6.152051,0,0,0,0,0,0,70.68995,9.612268,1.386294,5.409066,1 +11,5,0,0,5,531682,0,14946.04,3.446954,0,16,1,393.825,11.01887,0,0,0,404.8439,0,0,0,4,34,4,77.40034,10.57626,.1442925,,0,469.68,1,0,1.386294,6.152051,0,0,0,0,0,0,70.68995,9.612268,1.386294,6.003501,1 +11,5,0,0,2,531683,0,3374.194,.3292266,0,12,1,242.1392,62.98294,11.503,0,0,316.6252,0,0,0,28,0,3,77.40034,10.57626,.1442925,,0,0,1,0,1.098612,0,0,0,0,0,0,0,70.68995,8.124207,1.098612,5.757719,1 +11,5,0,0,3,531683,0,3374.194,1.329227,0,12,1,78.29031,40.28354,16.15319,0,0,134.727,0,0,0,11,0,3,77.40034,10.57626,.1442925,,0,0,1,0,1.098612,0,0,0,0,0,0,0,70.68995,8.124207,1.098612,4.903251,1 +11,5,0,0,4,531683,0,3374.194,2.329226,0,12,1,39.10402,12.25513,13.42065,0,0,64.7798,0,0,0,5,0,3,77.40034,10.57626,.1442925,,0,0,1,0,1.098612,0,0,0,0,0,0,0,70.68995,8.124207,1.098612,4.170994,1 +11,5,0,0,5,531683,0,3374.194,3.329226,0,12,1,9.688581,0,0,0,0,9.688581,0,0,0,1,0,3,77.40034,10.57626,.1442925,,0,0,1,0,1.098612,0,0,0,0,0,0,0,70.68995,8.124207,1.098612,2.270948,1 +5,5,25,0,2,531688,1,0,.8083504,0,6,1,1.823154,0,0,0,0,1.823154,0,0,0,0,1,9,77.40034,10.57626,.1442925,,333.75,333.75,1,0,2.197225,5.810392,0,3.258096,7.196687,0,0,0,70.68995,0,2.197225,.600568,1 +5,5,25,0,3,531688,1,0,1.80835,0,6,1,9.587328,0,0,0,0,9.587328,0,0,0,1,0,9,77.40034,10.57626,.1442925,,333.75,333.75,1,0,2.197225,5.810392,0,3.258096,7.196687,0,0,0,70.68995,0,2.197225,2.260442,1 +5,5,25,0,4,531688,1,0,2.808351,0,6,1,11.25281,0,0,0,0,11.25281,0,0,0,0,0,9,77.40034,10.57626,.1442925,,333.75,333.75,1,0,2.197225,5.810392,0,3.258096,7.196687,0,0,0,70.68995,0,2.197225,2.420618,1 +5,5,25,0,5,531688,1,0,3.808351,0,6,1,0,0,0,0,0,0,0,0,0,0,0,9,77.40034,10.57626,.1442925,,333.75,333.75,1,0,2.197225,5.810392,0,3.258096,7.196687,0,0,0,70.68995,0,2.197225,,0 +16,5,95,0,2,531689,0,10012.9,.2498289,0,12,1,39.18856,0,0,0,0,39.18856,0,0,0,5,0,2,77.40034,10.57626,.1442925,,1000,1000,1,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,70.68995,9.21173,.6931472,3.668385,1 +16,5,95,0,3,531689,0,10012.9,1.249829,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,77.40034,10.57626,.1442925,,1000,1000,1,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,70.68995,9.21173,.6931472,,0 +16,5,95,0,4,531689,0,10012.9,2.249829,0,12,1,5.31511,0,0,0,0,5.31511,0,0,0,1,0,2,77.40034,10.57626,.1442925,,1000,1000,1,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,70.68995,9.21173,.6931472,1.670554,1 +16,5,95,0,5,531689,0,10012.9,3.249829,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,77.40034,10.57626,.1442925,,1000,1000,1,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,70.68995,9.21173,.6931472,,0 +13,5,0,0,1,531691,.4758801,13789.04,1.253936,1,10.96978,1,29.02819,16.13378,0,0,0,45.16197,0,0,0,5,0,3,77.40034,10.57626,0,88.9,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,0,0,0,88.9,9.531702,1.098612,3.810255,1 +13,5,0,0,2,531691,.4758801,13789.04,2.253936,1,10.96978,1,15.86702,10.19267,0,0,0,26.05969,0,0,0,3,0,3,77.40034,10.57626,0,88.9,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,0,0,0,88.9,9.531702,1.098612,3.26039,1 +13,5,0,0,3,531691,.4758801,13789.04,3.253936,1,10.96978,1,20.24014,16.07547,0,0,0,36.31561,0,0,0,4,0,4,77.40034,10.57626,0,88.9,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,88.9,9.531702,1.386294,3.592248,1 +13,5,0,0,2,531692,1,3130.205,.2799453,1,10,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,.1442925,,450,0,1,1,1.609438,0,1,4.564348,6.160541,0,0,0,70.68995,8.049173,1.609438,,0 +13,5,0,0,3,531692,1,3130.205,1.279945,1,10,1,6.310475,2.52419,0,0,0,8.834665,0,0,0,0,1,5,77.40034,10.57626,.1442925,,450,0,1,1,1.609438,0,1,4.564348,6.160541,0,0,0,70.68995,8.049173,1.609438,2.178683,1 +13,5,0,0,4,531692,1,3130.205,2.279945,1,10,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,.1442925,,450,0,1,1,1.609438,0,1,4.564348,6.160541,0,0,0,70.68995,8.049173,1.609438,,0 +13,5,0,0,5,531692,1,3130.205,3.279945,1,10,1,12.34991,13.94511,0,0,0,26.29502,0,0,0,2,0,7,77.40034,10.57626,.1442925,,450,0,1,1,1.94591,0,1,4.564348,6.160541,0,0,0,70.68995,8.049173,1.94591,3.26938,1 +13,5,0,0,1,531695,0,9569.381,1.399042,0,12,1,105.5953,17.45898,0,0,0,123.0543,0,0,0,15,0,4,77.40034,10.57626,0,48.1,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,48.1,9.166429,1.386294,4.812625,1 +13,5,0,0,2,531695,0,9569.381,2.399042,0,12,1,13.97809,6.845486,0,0,0,20.82357,0,0,0,2,0,4,77.40034,10.57626,0,48.1,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,48.1,9.166429,1.386294,3.036086,1 +13,5,0,0,3,531695,0,9569.381,3.399042,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,0,48.1,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,48.1,9.166429,1.386294,,0 +11,5,0,0,1,531696,0,9155.146,1.180014,0,16,1,49.09014,31.81972,0,0,0,80.90986,0,0,0,8,0,3,77.40034,10.57626,0,88.9,0,915.72,1,0,1.098612,6.819711,0,0,0,0,0,0,88.9,9.122181,1.098612,4.393336,1 +11,5,0,0,2,531696,0,9155.146,2.180014,0,16,1,107.2513,32.61959,11.8451,0,0,151.716,0,0,0,11,0,4,77.40034,10.57626,0,88.9,0,915.72,1,0,1.386294,6.819711,0,0,0,0,0,0,88.9,9.122181,1.386294,5.02201,1 +11,5,0,0,3,531696,0,9155.146,3.180014,0,16,1,57.09343,10.9135,0,0,0,68.00692,0,0,0,9,0,4,77.40034,10.57626,0,88.9,0,915.72,1,0,1.386294,6.819711,0,0,0,0,0,0,88.9,9.122181,1.386294,4.219609,1 +16,5,95,0,1,531698,1,8781.362,2.009583,0,14,1,13.61123,2.177797,0,0,0,15.78903,0,0,0,2,0,10,77.40034,10.57626,0,88.9,1000,1000,1,0,2.302585,6.907755,0,4.564348,6.959049,0,0,0,88.9,9.080501,2.302585,2.759315,1 +16,5,95,0,2,531698,1,8781.362,3.009583,0,14,1,22.51908,0,0,0,0,22.51908,0,0,0,0,0,12,77.40034,10.57626,0,88.9,1000,1000,1,0,2.484907,6.907755,0,4.564348,6.959049,0,0,0,88.9,9.080501,2.484907,3.114363,1 +16,5,95,0,3,531698,1,8781.362,4.009583,0,14,1,6.271777,0,0,0,0,6.271777,0,0,0,1,0,12,77.40034,10.57626,0,88.9,1000,1000,1,0,2.484907,6.907755,0,4.564348,6.959049,0,0,0,88.9,9.080501,2.484907,1.83606,1 +16,5,95,0,1,531707,1,5160.266,21.90007,0,12,1,5.353364,0,0,0,0,5.353364,0,0,0,0,1,4,73.4,13.8,0,71.6,315.15,315.15,0,0,1.386294,5.753049,0,4.564348,5.804342,0,0,0,71.6,8.548937,1.386294,1.677725,1 +16,5,95,0,2,531707,1,5160.266,22.90007,0,12,1,9.491268,0,24.29765,0,0,33.78891,0,0,0,0,1,4,73.4,13.8,0,71.6,315.15,315.15,0,0,1.386294,5.753049,0,4.564348,5.804342,0,0,0,71.6,8.548937,1.386294,3.520133,1 +16,5,95,0,3,531707,1,5160.266,23.90007,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,73.4,13.8,0,71.6,315.15,315.15,0,0,1.609438,5.753049,0,4.564348,5.804342,0,0,0,71.6,8.548937,1.609438,,0 +11,5,0,0,1,531715,1,769.5853,4.873374,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,77.40034,10.57626,0,74.1,0,0,1,1,1.791759,0,0,0,0,0,0,0,74.1,6.647151,1.791759,,0 +11,5,0,0,2,531715,1,769.5853,5.873374,1,12,1,6.870229,0,0,0,0,6.870229,0,0,0,1,0,6,77.40034,10.57626,0,74.1,0,0,1,1,1.791759,0,0,0,0,0,0,0,74.1,6.647151,1.791759,1.927197,1 +11,5,0,0,3,531715,1,769.5853,6.873374,1,12,1,20.90592,0,0,0,0,20.90592,0,0,0,1,0,6,77.40034,10.57626,0,74.1,0,0,1,1,1.791759,0,0,0,0,0,0,0,74.1,6.647151,1.791759,3.040033,1 +11,5,0,0,1,531716,1,769.5853,5.79603,1,12,1,0,0,22.33943,0,0,22.33943,0,0,0,0,0,6,68.3,10.57626,.1442925,74.1,0,0,1,1,1.791759,0,0,0,0,0,0,0,74.1,6.647151,1.791759,3.106353,1 +11,5,0,0,2,531716,1,769.5853,6.79603,1,12,1,60.66794,3.664122,11.9084,0,0,76.24046,0,0,0,6,0,6,68.3,10.57626,.1442925,74.1,0,0,1,1,1.791759,0,0,0,0,0,0,0,74.1,6.647151,1.791759,4.333892,1 +11,5,0,0,3,531716,1,769.5853,7.79603,1,12,1,0,4.463415,18.11847,0,0,22.58188,0,0,0,0,0,6,68.3,10.57626,.1442925,74.1,0,0,1,1,1.791759,0,0,0,0,0,0,0,74.1,6.647151,1.791759,3.117148,1 +16,5,95,0,1,531718,1,8781.362,.9445585,0,14,1,0,0,0,0,0,0,0,0,0,0,0,10,77.40034,10.57626,0,88.9,1000,1000,1,0,2.302585,6.907755,0,4.564348,6.959049,0,0,0,88.9,9.080501,2.302585,,0 +16,5,95,0,2,531718,1,8781.362,1.944559,0,14,1,0,0,0,0,0,0,0,0,0,0,0,12,77.40034,10.57626,0,88.9,1000,1000,1,0,2.484907,6.907755,0,4.564348,6.959049,0,0,0,88.9,9.080501,2.484907,,0 +16,5,95,0,3,531718,1,8781.362,2.944559,0,14,1,10.45296,0,0,0,0,10.45296,0,0,0,0,0,12,77.40034,10.57626,0,88.9,1000,1000,1,0,2.484907,6.907755,0,4.564348,6.959049,0,0,0,88.9,9.080501,2.484907,2.346885,1 +13,5,0,0,1,531723,.4758801,3640.553,19.70705,1,9,1,77.86712,3.046974,0,0,0,80.91409,0,0,0,6,0,2,89.4,10.3,0,79.5,300,375.44,0,0,.6931472,5.928099,1,4.564348,5.755076,0,0,0,79.5,8.200166,.6931472,4.393388,1 +13,5,0,0,2,531723,.4758801,3640.553,20.70705,1,9,1,0,3.048595,0,0,0,3.048595,0,0,0,0,0,2,89.4,10.3,0,79.5,300,375.44,0,0,.6931472,5.928099,1,4.564348,5.755076,0,0,0,79.5,8.200166,.6931472,1.114681,1 +13,5,0,0,3,531723,.4758801,3640.553,21.70705,1,9,1,63.14879,21.59516,0,0,0,84.74394,0,0,0,3,0,2,89.4,10.3,0,79.5,300,375.44,0,0,.6931472,5.928099,1,4.564348,5.755076,0,0,0,79.5,8.200166,.6931472,4.439634,1 +11,5,0,0,1,531728,.4758801,5534.05,1.979466,1,10.96978,1,5.04838,7.618847,0,0,0,12.66723,0,0,0,1,0,2,77.40034,10.57626,0,77.8,0,687.18,1,1,.6931472,6.532596,0,0,0,0,0,0,77.8,8.618855,.6931472,2.539018,1 +11,5,0,0,2,531728,.4758801,5534.05,2.979466,1,10.96978,1,20.02267,2.976955,0,0,0,22.99962,0,0,0,2,0,2,77.40034,10.57626,0,77.8,0,687.18,1,1,.6931472,6.532596,0,0,0,0,0,0,77.8,8.618855,.6931472,3.135478,1 +11,5,0,0,3,531728,.4758801,5534.05,3.979466,1,10.96978,1,12.69297,0,0,0,0,12.69297,0,0,0,1,0,2,77.40034,10.57626,0,77.8,0,687.18,1,1,.6931472,6.532596,0,0,0,0,0,0,77.8,8.618855,.6931472,2.541048,1 +11,5,0,0,1,531729,.4758801,5534.05,33.75222,1,10.96978,1,40.38704,0,28.18679,0,0,68.57383,0,0,0,2,1,2,80.9,17.2,0,79.5,0,687.18,0,0,.6931472,6.532596,0,0,0,0,0,0,79.5,8.618855,.6931472,4.227911,1 +11,5,0,0,2,531729,.4758801,5534.05,34.75222,1,10.96978,1,134.303,19.31621,18.13374,0,0,171.7529,0,0,0,10,1,2,80.9,17.2,0,79.5,0,687.18,0,0,.6931472,6.532596,0,0,0,0,0,0,79.5,8.618855,.6931472,5.146057,1 +11,5,0,0,3,531729,.4758801,5534.05,35.75222,1,10.96978,1,111.4923,5.571184,27.1012,0,0,144.1647,0,0,0,7,1,2,80.9,17.2,0,79.5,0,687.18,0,0,.6931472,6.532596,0,0,0,0,0,0,79.5,8.618855,.6931472,4.970956,1 +11,5,0,0,3,531731,1,602.3461,.9568788,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,77.40034,10.57626,.1442925,,0,0,1,1,1.791759,0,0,0,0,0,0,0,70.68995,6.402491,1.791759,,0 +11,5,0,0,4,531731,1,602.3461,1.956879,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,77.40034,10.57626,.1442925,,0,0,1,1,1.791759,0,0,0,0,0,0,0,70.68995,6.402491,1.791759,,0 +11,5,0,0,5,531731,1,602.3461,2.956879,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,77.40034,10.57626,.1442925,,0,0,1,1,1.791759,0,0,0,0,0,0,0,70.68995,6.402491,1.791759,,0 +14,5,95,0,1,531752,1,3455.709,2.206708,0,14,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,0,88.9,325,325,1,0,1.386294,5.783825,0,4.564348,5.835118,0,0,0,88.9,8.148072,1.386294,,0 +14,5,95,0,2,531752,1,3455.709,3.206708,0,14,1,13.66743,0,0,0,0,13.66743,0,0,0,2,0,4,77.40034,10.57626,0,88.9,325,325,1,0,1.386294,5.783825,0,4.564348,5.835118,0,0,0,88.9,8.148072,1.386294,2.615015,1 +14,5,95,0,3,531752,1,3455.709,4.206708,0,14,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,88.9,325,325,1,0,1.609438,5.783825,0,4.564348,5.835118,0,0,0,88.9,8.148072,1.609438,,0 +13,5,0,0,1,531789,0,17808.5,.6926762,0,12,1,36.15483,5.23607,0,0,0,41.3909,0,0,0,4,0,5,77.40034,10.57626,0,100,450,864,1,0,1.609438,6.761573,1,4.564348,6.160541,0,0,0,100,9.787487,1.609438,3.723061,1 +13,5,0,0,2,531789,0,17808.5,1.692676,0,12,1,7.633588,0,0,0,0,7.633588,0,0,0,1,0,5,77.40034,10.57626,0,100,450,864,1,0,1.609438,6.761573,1,4.564348,6.160541,0,0,0,100,9.787487,1.609438,2.032558,1 +19,5,25,0,1,531794,1,7578.085,.9774128,0,8,1,111.2992,1.671604,0,0,0,112.9708,0,0,0,2,0,6,77.40034,10.57626,0,88.9,750,750,1,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,88.9,8.933147,1.791759,4.727129,1 +19,5,25,0,2,531794,1,7578.085,1.977413,0,8,1,27.7145,6.605923,0,0,0,34.32043,0,0,0,5,0,6,77.40034,10.57626,0,88.9,750,750,1,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,88.9,8.933147,1.791759,3.535741,1 +19,5,25,0,3,531794,1,7578.085,2.977413,0,8,1,21.6263,1.740484,0,0,0,23.36678,0,0,0,4,0,6,77.40034,10.57626,0,88.9,750,750,1,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,88.9,8.933147,1.791759,3.151315,1 +5,5,25,0,1,531808,1,5774.706,.6570842,1,12,1,0,1.726619,0,0,0,1.726619,0,0,0,0,0,5,77.40034,10.57626,0,92.6,80.25,646.36,1,1,1.609438,6.471356,0,3.258096,5.771441,0,0,0,92.6,8.661416,1.609438,.5461649,1 +5,5,25,0,2,531808,1,5774.706,1.657084,1,12,1,13.51557,0,0,0,0,13.51557,0,0,0,0,0,5,77.40034,10.57626,0,92.6,80.25,646.36,1,1,1.609438,6.471356,0,3.258096,5.771441,0,0,0,92.6,8.661416,1.609438,2.603842,1 +5,5,25,0,3,531808,1,5774.706,2.657084,1,12,1,37.71626,0,0,0,0,37.71626,0,0,0,0,0,5,77.40034,10.57626,0,92.6,80.25,646.36,1,1,1.609438,6.471356,0,3.258096,5.771441,0,0,0,92.6,8.661416,1.609438,3.630091,1 +10,5,50,0,3,531809,0,10283.87,.5626283,0,12,1,74.04291,7.021456,0,0,0,81.06437,0,0,0,8,0,3,77.40034,10.57626,.1442925,,1000,1000,1,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,70.68995,9.238429,1.098612,4.395244,1 +10,5,50,0,4,531809,0,10283.87,1.562628,0,12,1,31.35625,17.44239,0,0,0,48.79864,0,0,0,4,0,3,77.40034,10.57626,.1442925,,1000,1000,1,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,70.68995,9.238429,1.098612,3.887702,1 +10,5,50,0,5,531809,0,10283.87,2.562628,0,12,1,17.49571,0,0,0,0,17.49571,0,0,0,2,0,3,77.40034,10.57626,.1442925,,1000,1000,1,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,70.68995,9.238429,1.098612,2.861956,1 +13,5,0,0,3,531816,0,9755.425,.3052704,0,14,1,75.32797,17.15616,0,0,0,92.48413,0,0,0,10,0,4,77.40034,10.57626,.1442925,,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,70.68995,9.185681,1.386294,4.527037,1 +13,5,0,0,4,531816,0,9755.425,1.30527,0,14,1,24.29765,7.437357,0,0,0,31.735,0,0,0,3,0,4,77.40034,10.57626,.1442925,,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,70.68995,9.185681,1.386294,3.45742,1 +13,5,0,0,5,531816,0,9755.425,2.30527,0,14,1,20.76125,0,0,0,0,20.76125,0,0,0,3,0,4,77.40034,10.57626,.1442925,,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,70.68995,9.185681,1.386294,3.033088,1 +6,5,25,0,1,531821,1,1484.895,5.91102,1,6,1,0,0,0,0,0,0,0,0,0,0,0,2,80,10.57626,.1442925,88.9,190.4,0,1,1,.6931472,0,0,3.258096,6.635421,0,0,0,88.9,7.303772,.6931472,,0 +6,5,25,0,2,531821,1,1484.895,6.91102,1,6,1,0,0,0,0,0,0,0,0,0,0,0,2,80,10.57626,.1442925,88.9,190.4,0,1,1,.6931472,0,0,3.258096,6.635421,0,0,0,88.9,7.303772,.6931472,,0 +11,5,0,0,1,531822,1,3942.652,15.3128,1,13,1,27.00978,0,27.64781,0,0,54.65759,0,0,0,1,1,4,51.6,10.3,0,60,0,0,1,1,1.386294,0,0,0,0,0,0,0,60,8.279862,1.386294,4.001088,1 +11,5,0,0,2,531822,1,3942.652,16.3128,1,13,1,18.12977,0,0,0,0,18.12977,0,0,0,2,0,5,51.6,10.3,0,60,0,0,1,1,1.609438,0,0,0,0,0,0,0,60,8.279862,1.609438,2.897555,1 +11,5,0,0,3,531822,1,3942.652,17.3128,1,13,1,18.43902,0,23.91638,0,0,42.3554,0,0,0,2,1,6,51.6,10.3,0,60,0,0,1,1,1.791759,0,0,0,0,0,0,0,60,8.279862,1.791759,3.746096,1 +13,5,0,0,1,531836,0,4416.794,.2080767,1,11,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,0,81.5,450,0,1,1,1.386294,0,1,4.564348,6.160541,0,0,0,81.5,8.393395,1.386294,,0 +13,5,0,0,2,531836,0,4416.794,1.208077,1,11,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,0,81.5,450,0,1,1,1.386294,0,1,4.564348,6.160541,0,0,0,81.5,8.393395,1.386294,,0 +13,5,0,0,3,531836,0,4416.794,2.208077,1,11,1,42.56055,0,0,0,0,42.56055,0,0,0,2,0,4,77.40034,10.57626,0,81.5,450,0,1,1,1.386294,0,1,4.564348,6.160541,0,0,0,81.5,8.393395,1.386294,3.750928,1 +13,5,0,0,1,531841,0,5562.212,.2847365,1,13,1,9.310199,5.83157,.6347863,0,0,15.77656,0,0,0,4,0,4,77.40034,10.57626,0,96.3,450,150,1,1,1.386294,5.010635,1,4.564348,6.160541,0,0,0,96.3,8.623931,1.386294,2.758525,1 +13,5,0,0,2,531841,0,5562.212,1.284737,1,13,1,5.694761,0,0,0,0,5.694761,0,0,0,1,0,4,77.40034,10.57626,0,96.3,450,150,1,1,1.386294,5.010635,1,4.564348,6.160541,0,0,0,96.3,8.623931,1.386294,1.739547,1 +13,5,0,0,3,531841,0,5562.212,2.284736,1,13,1,35.58131,0,0,0,0,35.58131,0,0,0,4,0,4,77.40034,10.57626,0,96.3,450,150,1,1,1.386294,5.010635,1,4.564348,6.160541,0,0,0,96.3,8.623931,1.386294,3.57182,1 +11,5,0,0,1,531844,0,11392.73,1.185489,0,12,1,52.89886,30.75751,0,0,0,83.65637,0,0,0,8,0,4,77.40034,10.57626,0,63,0,0,1,0,1.386294,0,0,0,0,0,0,0,63,9.340818,1.386294,4.426718,1 +11,5,0,0,2,531844,0,11392.73,2.185489,0,12,1,51.6325,17.97646,0,0,0,69.60896,0,0,0,7,0,4,77.40034,10.57626,0,63,0,0,1,0,1.386294,0,0,0,0,0,0,0,63,9.340818,1.386294,4.242893,1 +11,5,0,0,3,531844,0,11392.73,3.185489,0,12,1,44.29066,20.11419,0,0,0,64.40485,0,0,0,8,0,4,77.40034,10.57626,0,63,0,0,1,0,1.386294,0,0,0,0,0,0,0,63,9.340818,1.386294,4.165189,1 +13,5,0,0,3,531853,1,6326.1,.1382615,0,11,1,69.4033,10.80829,0,0,0,80.21159,0,0,0,11,0,4,77.40034,10.57626,.1442925,,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,70.68995,8.752597,1.386294,4.384668,1 +13,5,0,0,4,531853,1,6326.1,1.138261,0,11,1,61.88307,0,0,0,134.0167,195.8998,1,0,0,9,0,3,77.40034,10.57626,.1442925,,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,70.68995,8.752597,1.098612,5.277603,1 +13,5,0,0,5,531853,1,6326.1,2.138262,0,11,1,42.90657,0,0,0,0,42.90657,0,0,0,2,0,3,77.40034,10.57626,.1442925,,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,70.68995,8.752597,1.098612,3.759025,1 +11,5,0,0,1,531854,0,6674.895,.2190281,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,.1442925,,0,91,1,0,1.386294,4.510859,0,0,0,0,0,0,70.68995,8.806258,1.386294,,0 +11,5,0,0,2,531854,0,6674.895,1.219028,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,.1442925,,0,91,1,0,1.386294,4.510859,0,0,0,0,0,0,70.68995,8.806258,1.386294,,0 +11,5,0,0,1,531860,1,6674.895,59.06092,0,6,1,42.06984,4.122844,0,0,0,46.19268,0,0,0,1,0,4,78.2,0,1,68.2,0,0,0,0,1.386294,0,0,0,0,0,0,0,68.2,8.806258,1.386294,3.832821,1 +11,5,0,0,2,531860,1,6674.895,60.06092,0,6,1,0,0,0,0,1106.158,1106.158,1,0,0,0,0,4,78.2,0,1,68.2,0,0,0,0,1.386294,0,0,0,0,0,0,0,68.2,8.806258,1.386294,7.008648,1 +11,5,0,0,3,531860,1,6674.895,61.06092,0,6,1,0,0,0,0,0,0,0,0,0,0,0,4,78.2,0,1,68.2,0,0,0,0,1.386294,0,0,0,0,0,0,0,68.2,8.806258,1.386294,,0 +13,5,0,0,1,531866,1,18474.65,.2765229,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,77.40034,10.57626,1,66.7,450,450,1,1,2.079442,6.109248,1,4.564348,6.160541,0,0,0,66.7,9.824209,2.079442,,0 +13,5,0,0,2,531866,1,18474.65,1.276523,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,77.40034,10.57626,1,66.7,450,450,1,1,2.079442,6.109248,1,4.564348,6.160541,0,0,0,66.7,9.824209,2.079442,,0 +13,5,0,0,3,531866,1,18474.65,2.276523,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,77.40034,10.57626,1,66.7,450,450,1,1,2.079442,6.109248,1,4.564348,6.160541,0,0,0,66.7,9.824209,2.079442,,0 +11,5,0,0,1,531881,1,6674.895,.2628337,0,14,1,33.65587,2.368532,0,0,0,36.0244,0,0,0,4,0,4,77.40034,10.57626,0,100,0,18,1,0,1.386294,2.890372,0,0,0,0,0,0,100,8.806258,1.386294,3.584197,1 +11,5,0,0,2,531881,1,6674.895,1.262834,0,14,1,24.5561,3.796751,0,0,0,28.35285,0,0,0,3,0,4,77.40034,10.57626,0,100,0,18,1,0,1.386294,2.890372,0,0,0,0,0,0,100,8.806258,1.386294,3.344728,1 +11,5,0,0,3,531881,1,6674.895,2.262834,0,14,1,20.92624,6.569468,0,0,0,27.49571,0,0,0,3,0,4,77.40034,10.57626,0,100,0,18,1,0,1.386294,2.890372,0,0,0,0,0,0,100,8.806258,1.386294,3.31403,1 +13,5,0,0,1,531882,1,1185.868,.238193,1,8,1,0,0,0,0,0,0,0,0,0,0,0,9,77.40034,10.57626,0,66.7,450,450,1,1,2.197225,6.109248,1,4.564348,6.160541,0,0,0,66.7,7.079073,2.197225,,0 +11,5,0,0,2,531891,1,3942.652,.9863107,0,13,1,22.13741,0,0,0,0,22.13741,0,0,0,3,0,5,77.40034,10.57626,.1442925,,0,0,1,0,1.609438,0,0,0,0,0,0,0,70.68995,8.279862,1.609438,3.097269,1 +11,5,0,0,3,531891,1,3942.652,1.986311,0,13,1,8.710801,1.515679,0,0,0,10.22648,0,0,0,1,0,6,77.40034,10.57626,.1442925,,0,0,1,0,1.791759,0,0,0,0,0,0,0,70.68995,8.279862,1.791759,2.32498,1 +11,5,0,0,1,531894,0,8507.937,24.52019,0,9,1,0,.8753647,0,0,0,.8753647,0,0,0,0,0,5,91.5,0,0,84.1,0,1189.12,0,0,1.609438,7.080969,0,0,0,0,0,0,84.1,9.048872,1.609438,-.1331147,1 +11,5,0,0,2,531894,0,8507.937,25.52019,0,9,1,0,0,0,0,0,0,0,0,0,0,0,5,91.5,0,0,84.1,0,1189.12,0,0,1.609438,7.080969,0,0,0,0,0,0,84.1,9.048872,1.609438,,0 +11,5,0,0,3,531894,0,8507.937,26.52019,0,9,1,0,0,0,0,0,0,0,0,0,0,0,5,91.5,0,0,84.1,0,1189.12,0,0,1.609438,7.080969,0,0,0,0,0,0,84.1,9.048872,1.609438,,0 +11,5,0,0,4,531902,1,0,.7905544,0,11,1,71.45038,9.103053,0,0,0,80.55344,0,0,0,1,0,4,77.40034,10.57626,.1442925,,0,0,1,0,1.386294,0,0,0,0,0,0,0,70.68995,0,1.386294,4.388921,1 +11,5,0,0,5,531902,1,0,1.790554,0,11,1,0,3.466899,0,0,0,3.466899,0,0,0,0,0,4,77.40034,10.57626,.1442925,,0,0,1,0,1.386294,0,0,0,0,0,0,0,70.68995,0,1.386294,1.243261,1 +15,5,95,0,1,531923,0,9990.783,.0328542,0,12,1,93.10199,6.40711,0,0,0,99.5091,0,0,0,14,0,3,77.40034,10.57626,.1442925,,1000,1000,1,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,70.68995,9.209518,1.098612,4.600249,1 +15,5,95,0,2,531923,0,9990.783,1.032854,0,12,1,86.18072,16.46165,1.26044,0,0,103.9028,0,0,0,8,0,3,77.40034,10.57626,.1442925,,1000,1000,1,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,70.68995,9.209518,1.098612,4.643456,1 +15,5,95,0,3,531923,0,9990.783,2.032854,0,12,1,11.41868,1.626298,0,0,0,13.04498,0,0,0,2,0,3,77.40034,10.57626,.1442925,,1000,1000,1,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,70.68995,9.209518,1.098612,2.568404,1 +16,5,95,0,2,531930,1,8781.362,.4414784,1,14,1,0,0,0,0,0,0,0,0,0,0,0,12,77.40034,10.57626,.1442925,,1000,1000,1,1,2.484907,6.907755,0,4.564348,6.959049,0,0,0,70.68995,9.080501,2.484907,,0 +16,5,95,0,3,531930,1,8781.362,1.441478,1,14,1,0,0,0,0,0,0,0,0,0,0,0,12,77.40034,10.57626,.1442925,,1000,1000,1,1,2.484907,6.907755,0,4.564348,6.959049,0,0,0,70.68995,9.080501,2.484907,,0 +16,5,95,0,2,531931,1,8781.362,.4414784,0,14,1,0,0,0,0,0,0,0,0,0,0,0,12,77.40034,10.57626,.1442925,,1000,1000,1,0,2.484907,6.907755,0,4.564348,6.959049,0,0,0,70.68995,9.080501,2.484907,,0 +16,5,95,0,3,531931,1,8781.362,1.441478,0,14,1,0,0,0,0,0,0,0,0,0,0,0,12,77.40034,10.57626,.1442925,,1000,1000,1,0,2.484907,6.907755,0,4.564348,6.959049,0,0,0,70.68995,9.080501,2.484907,,0 +14,5,95,0,2,531946,1,51.71531,.523614,0,8,1,44.41914,0,0,0,0,44.41914,0,0,0,6,0,6,77.40034,10.57626,.1442925,,140.6,140.6,1,0,1.791759,4.945919,0,4.564348,4.997212,0,0,0,70.68995,3.964906,1.791759,3.79367,1 +14,5,95,0,3,531946,1,51.71531,1.523614,0,8,1,6.228374,0,0,0,0,6.228374,0,0,0,1,0,6,77.40034,10.57626,.1442925,,140.6,140.6,1,0,1.791759,4.945919,0,4.564348,4.997212,0,0,0,70.68995,3.964906,1.791759,1.829115,1 +11,5,0,0,2,531956,0,6674.895,.4387406,0,5,1,168.1149,32.38383,0,0,0,200.4987,0,0,0,17,0,5,77.40034,10.57626,.1442925,,0,416,1,0,1.609438,6.030685,0,0,0,0,0,0,70.68995,8.806258,1.609438,5.300807,1 +11,5,0,0,3,531956,0,6674.895,1.438741,0,5,1,81.98971,12.247,0,0,0,94.23671,0,0,0,12,0,6,77.40034,10.57626,.1442925,,0,416,1,0,1.791759,6.030685,0,0,0,0,0,0,70.68995,8.806258,1.791759,4.54581,1 +18,5,25,0,2,531961,0,9861.239,.4934976,1,16,1,5.626407,12.62941,0,0,0,18.25581,0,0,0,1,0,5,77.40034,10.57626,.1442925,,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,70.68995,9.196468,1.609438,2.904484,1 +18,5,25,0,3,531961,0,9861.239,1.493498,1,16,1,0,22.66576,0,0,0,22.66576,0,0,0,0,0,5,77.40034,10.57626,.1442925,,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,70.68995,9.196468,1.609438,3.120856,1 +17,5,25,0,2,531962,1,3291.859,.2580424,0,9,1,0,0,0,0,0,0,0,0,0,0,0,2,77.40034,10.57626,.1442925,,315,315,1,0,.6931472,5.752573,0,3.258096,7.138867,0,0,0,70.68995,8.099511,.6931472,,0 +17,5,25,0,3,531962,1,3291.859,1.258042,0,9,1,0,0,0,0,0,0,0,0,0,0,0,3,77.40034,10.57626,.1442925,,315,315,1,0,1.098612,5.752573,0,3.258096,7.138867,0,0,0,70.68995,8.099511,1.098612,,0 +13,5,0,0,2,531966,0,7991.295,.0499658,0,16,1,77.09924,16.5229,0,0,0,93.62214,0,0,0,11,0,4,77.40034,10.57626,.1442925,,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,70.68995,8.986234,1.386294,4.539267,1 +13,5,0,0,2,531967,0,9026.113,.0308008,0,12,1,90.45802,18.25954,0,0,0,108.7176,0,0,0,10,0,7,77.40034,10.57626,.1442925,,450,450,1,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,70.68995,9.107988,1.94591,4.688753,1 +13,5,0,0,3,531967,0,9026.113,1.030801,0,12,1,47.38676,16.18467,0,0,0,63.57143,0,0,0,6,0,7,77.40034,10.57626,.1442925,,450,450,1,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,70.68995,9.107988,1.94591,4.152164,1 +11,5,0,0,2,531977,0,9155.146,.0472279,0,16,1,95.29233,16.07821,0,0,0,111.3705,0,0,0,13,0,4,77.40034,10.57626,.1442925,,0,915.72,1,0,1.386294,6.819711,0,0,0,0,0,0,70.68995,9.122181,1.386294,4.712863,1 +11,5,0,0,3,531977,0,9155.146,1.047228,0,16,1,47.75087,22.9654,0,0,0,70.71626,0,0,0,8,0,4,77.40034,10.57626,.1442925,,0,915.72,1,0,1.386294,6.819711,0,0,0,0,0,0,70.68995,9.122181,1.386294,4.258676,1 +16,5,95,0,3,531978,1,8746.032,.9185489,1,12,1,51.21951,1.087108,0,0,0,52.30662,0,0,0,2,0,4,77.40034,10.57626,.1442925,,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,0,0,0,70.68995,9.076469,1.386294,3.957123,1 +13,5,0,0,3,531979,.4758801,13789.04,.9760438,1,10.96978,1,49.39966,10.98799,0,0,0,60.38765,0,0,0,7,0,4,77.40034,10.57626,.1442925,,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,70.68995,9.531702,1.386294,4.100785,1 +11,5,0,0,3,531982,1,5952.381,.9267625,1,12,1,20.48443,0,0,0,0,20.48443,0,0,0,3,0,4,77.40034,10.57626,.1442925,,0,199.2,1,1,1.386294,5.294309,0,0,0,0,0,0,70.68995,8.691714,1.386294,3.019665,1 +13,5,0,0,2,531983,1,4133.128,.321013,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,.1442925,,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,70.68995,8.327032,1.386294,,0 +13,5,0,0,3,531983,1,4133.128,1.321013,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,.1442925,,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,70.68995,8.327032,1.386294,,0 +14,5,95,0,4,531984,0,11896.19,.2402464,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,.1442925,,753.2,1173,1,0,1.609438,7.06732,0,4.564348,6.675624,0,0,0,70.68995,9.384057,1.609438,,0 +14,5,95,0,5,531984,0,11896.19,1.240246,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,.1442925,,753.2,1173,1,0,1.609438,7.06732,0,4.564348,6.675624,0,0,0,70.68995,9.384057,1.609438,,0 +13,5,0,0,5,531989,1,3130.205,.971937,0,10,1,23.49914,7.54717,0,0,0,31.04631,0,0,0,2,0,7,77.40034,10.57626,.1442925,,450,0,1,0,1.94591,0,1,4.564348,6.160541,0,0,0,70.68995,8.049173,1.94591,3.43548,1 +14,5,95,0,3,531990,1,3455.709,.8199863,0,14,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,.1442925,,325,325,1,0,1.609438,5.783825,0,4.564348,5.835118,0,0,0,70.68995,8.148072,1.609438,,0 +17,5,25,0,3,531999,0,8637.993,.9869952,1,12,1,43.97835,5.855886,0,0,0,49.83424,0,0,0,6,0,3,77.40034,10.57626,.1442925,,576.75,576.75,1,1,1.098612,6.357409,0,3.258096,7.743703,0,0,0,70.68995,9.064041,1.098612,3.908702,1 +15,5,95,0,2,532003,1,7000.512,.0965092,0,14,1,37.13428,2.363091,0,0,0,39.49738,0,0,0,0,0,4,77.40034,10.57626,.1442925,,473.7,473.7,1,0,1.386294,6.160574,0,4.564348,6.211867,0,0,0,70.68995,8.853882,1.386294,3.676234,1 +15,5,95,0,3,532003,1,7000.512,1.096509,0,14,1,5.074425,0,0,0,0,5.074425,0,0,0,1,0,4,77.40034,10.57626,.1442925,,473.7,473.7,1,0,1.386294,6.160574,0,4.564348,6.211867,0,0,0,70.68995,8.853882,1.386294,1.624213,1 +13,5,0,0,3,532025,1,2422.939,.5626283,1,8,1,10.45296,0,0,0,0,10.45296,0,0,0,0,0,4,77.40034,10.57626,.1442925,,450,0,1,1,1.386294,0,1,4.564348,6.160541,0,0,0,70.68995,7.793149,1.386294,2.346885,1 +11,5,0,0,3,532028,1,6674.895,.8227242,1,9,1,109.5819,5.888502,0,0,0,115.4704,0,0,0,5,0,4,77.40034,10.57626,.1442925,,0,0,1,1,1.386294,0,0,0,0,0,0,0,70.68995,8.806258,1.386294,4.749014,1 +16,5,95,0,3,532029,1,5160.266,.6584531,1,10,1,78.89273,0,0,0,0,78.89273,0,0,0,6,0,5,77.40034,10.57626,.1442925,,315.15,315.15,1,1,1.609438,5.753049,0,4.564348,5.804342,0,0,0,70.68995,8.548937,1.609438,4.368089,1 +11,5,0,0,3,532035,.4758801,1475.166,.6830938,1,9,1,68.67388,28.38972,0,0,0,97.0636,0,0,0,5,0,2,77.40034,10.57626,.1442925,,0,0,1,1,.6931472,0,0,0,0,0,0,0,70.68995,7.297204,.6931472,4.575366,1 +11,5,0,0,3,532040,1,1426.523,.3080082,1,7,1,85.29412,30.3045,0,0,0,115.5986,0,0,0,6,0,7,77.40034,10.57626,.1442925,,0,0,1,1,1.94591,0,0,0,0,0,0,0,70.68995,7.263696,1.94591,4.750124,1 +11,5,0,0,5,532041,0,10963.64,.3258042,0,10.96978,1,258.8235,31.25952,8.99654,0,0,299.0796,0,0,0,18,0,5,77.40034,10.57626,.1442925,,0,0,1,0,1.609438,0,0,0,0,0,0,0,70.68995,9.30243,1.609438,5.70071,1 +11,5,0,0,3,532042,1,3942.652,.2231348,1,13,1,72.8223,1.602787,0,0,0,74.42509,0,0,0,5,0,6,77.40034,10.57626,.1442925,,0,0,1,1,1.791759,0,0,0,0,0,0,0,70.68995,8.279862,1.791759,4.309793,1 +11,5,0,0,3,532043,1,1998.976,.3874059,0,11,1,138.2353,0,0,0,0,138.2353,0,0,0,8,0,6,77.40034,10.57626,.1442925,,0,0,1,0,1.791759,0,0,0,0,0,0,0,70.68995,7.600891,1.791759,4.928957,1 +11,5,0,0,3,532046,0,6674.895,.3189596,1,12,1,75.0865,6.314879,0,0,0,81.40138,0,0,0,11,0,4,77.40034,10.57626,.1442925,,0,496.2,1,1,1.386294,6.206979,0,0,0,0,0,0,70.68995,8.806258,1.386294,4.399392,1 +11,5,0,0,5,532048,0,12511.44,.2902122,1,12,1,35.33448,0,0,0,0,35.33448,0,0,0,5,0,4,77.40034,10.57626,.1442925,,0,299.52,1,1,1.386294,5.702181,0,0,0,0,0,0,70.68995,9.434479,1.386294,3.564859,1 +13,5,0,0,5,532165,1,3130.205,.3285421,1,10,1,55.74614,0,0,0,0,55.74614,0,0,0,6,0,7,77.40034,10.57626,.1442925,,450,0,1,1,1.94591,0,1,4.564348,6.160541,0,0,0,70.68995,8.049173,1.94591,4.020808,1 +15,5,95,0,3,532175,1,6674.895,.7679672,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,77.40034,10.57626,.1442925,,772.5,772.5,1,1,1.098612,6.649632,0,4.564348,6.700925,0,0,0,70.68995,8.806258,1.098612,,0 +11,5,0,0,3,532185,0,6674.895,.1300479,0,5,1,79.58833,19.09091,0,0,0,98.67924,0,0,0,11,0,6,77.40034,10.57626,.1442925,,0,416,1,0,1.791759,6.030685,0,0,0,0,0,0,70.68995,8.806258,1.791759,4.591875,1 +13,5,0,0,5,532189,0,10214.08,0,1,17,1,68.67388,19.30988,0,0,0,87.98376,0,0,0,10,0,3,77.40034,10.57626,.1442925,,300,300,1,1,1.098612,5.703783,1,4.564348,5.755076,0,0,0,70.68995,9.23162,1.098612,4.477152,1 +17,5,25,0,3,532206,1,3291.859,.2422998,0,9,1,0,0,0,0,0,0,0,0,0,0,0,3,77.40034,10.57626,.1442925,,315,315,1,0,1.098612,5.752573,0,3.258096,7.138867,0,0,0,70.68995,8.099511,1.098612,,0 +14,6,95,0,1,625875,1,4305.684,46.2204,0,11,1,0,0,0,0,0,0,0,0,0,0,0,2,64.4,10.3,0,53.4,400,400,0,0,.6931472,5.991465,0,4.564348,6.042758,0,0,0,53.4,8.367924,.6931472,,0 +14,6,95,0,2,625875,1,4305.684,47.2204,0,11,1,0,0,0,0,0,0,0,0,0,0,0,2,64.4,10.3,0,53.4,400,400,0,0,.6931472,5.991465,0,4.564348,6.042758,0,0,0,53.4,8.367924,.6931472,,0 +14,6,95,0,3,625875,1,4305.684,48.2204,0,11,1,0,0,0,0,0,0,0,0,0,0,0,2,64.4,10.3,0,53.4,400,400,0,0,.6931472,5.991465,0,4.564348,6.042758,0,0,0,53.4,8.367924,.6931472,,0 +14,6,95,0,1,625877,1,4305.684,45.21834,1,10,1,0,0,0,0,0,0,0,0,0,0,0,2,68.1,6.9,0,69.3,400,400,0,0,.6931472,5.991465,0,4.564348,6.042758,0,0,0,69.3,8.367924,.6931472,,0 +14,6,95,0,2,625877,1,4305.684,46.21834,1,10,1,19.2671,41.63581,13.5323,0,288.6286,363.0638,1,0,0,2,0,2,68.1,6.9,0,69.3,400,400,0,0,.6931472,5.991465,0,4.564348,6.042758,0,0,0,69.3,8.367924,.6931472,5.894578,1 +14,6,95,0,3,625877,1,4305.684,47.21834,1,10,1,22.64151,43.72556,13.82504,0,0,80.19211,0,0,0,2,0,2,68.1,6.9,0,69.3,400,400,0,0,.6931472,5.991465,0,4.564348,6.042758,0,0,0,69.3,8.367924,.6931472,4.384425,1 +14,6,95,1,1,625878,0,10709.17,52.13963,1,12,1,10.57977,24.57469,47.65976,0,0,82.81422,0,0,0,0,1,2,77.1,10.3,0,65.9,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,1,0,65.9,9.278949,.6931472,4.4166,1 +14,6,95,1,2,625878,0,10709.17,53.13963,1,12,1,0,32.42976,0,0,0,32.42976,0,0,0,0,0,2,77.1,10.3,0,65.9,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,1,0,65.9,9.278949,.6931472,3.479077,1 +14,6,95,1,3,625878,0,10709.17,54.13963,1,12,1,17.64706,32.61592,43.25259,0,0,93.51557,0,0,0,1,1,2,77.1,10.3,0,65.9,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,1,0,65.9,9.278949,.6931472,4.538128,1 +14,6,95,1,1,625879,0,10709.17,55.29637,0,8,1,24.96826,3.068134,0,0,0,28.03639,0,0,0,1,1,2,93.1,3.4,0,94.3,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,94.3,9.278949,.6931472,3.333503,1 +14,6,95,1,2,625879,0,10709.17,56.29637,0,8,1,5.31511,5.516325,0,0,174.2597,185.0911,1,0,0,1,0,2,93.1,3.4,0,94.3,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,94.3,9.278949,.6931472,5.220848,1 +14,6,95,1,3,625879,0,10709.17,57.29637,0,8,1,15.57093,1.775087,42.43253,0,0,59.77855,0,0,0,1,1,2,93.1,3.4,0,94.3,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,94.3,9.278949,.6931472,4.090647,1 +17,6,25,1,1,625884,1,3120.84,9.801506,0,12,1,40.20313,3.808718,0,0,0,44.01185,0,0,0,2,0,2,100,10.57626,0,85.2,265,550.72,1,0,.6931472,6.311226,0,3.258096,6.966024,0,0,0,85.2,8.046178,.6931472,3.784459,1 +17,6,25,1,2,625884,1,3120.84,10.80151,0,12,1,16.70463,0,0,0,0,16.70463,0,0,0,3,0,2,100,10.57626,0,85.2,265,550.72,1,0,.6931472,6.311226,0,3.258096,6.966024,0,0,0,85.2,8.046178,.6931472,2.815686,1 +17,6,25,1,3,625884,1,3120.84,11.80151,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,100,10.57626,0,85.2,265,550.72,1,0,.6931472,6.311226,0,3.258096,6.966024,0,0,0,85.2,8.046178,.6931472,,0 +17,6,25,1,1,625885,1,3120.84,31.46612,1,12,1,65.59458,14.17689,0,0,0,79.77148,0,0,0,4,0,2,92,6.9,0,77.3,265,550.72,0,0,.6931472,6.311226,0,3.258096,6.966024,0,0,0,77.3,8.046178,.6931472,4.379166,1 +17,6,25,1,2,625885,1,3120.84,32.46612,1,12,1,202.3538,1.765376,0,0,0,204.1192,0,0,0,5,0,2,92,6.9,0,77.3,265,550.72,0,0,.6931472,6.311226,0,3.258096,6.966024,0,0,0,77.3,8.046178,.6931472,5.318704,1 +17,6,25,1,3,625885,1,3120.84,33.46612,1,12,1,15.57093,1.99654,32.87197,0,0,50.43945,0,0,0,1,1,2,92,6.9,0,77.3,265,550.72,0,0,.6931472,6.311226,0,3.258096,6.966024,0,0,0,77.3,8.046178,.6931472,3.920774,1 +11,6,0,1,1,625900,0,10571.85,13.25394,0,12,1,27.93017,1.870324,0,0,0,29.8005,0,0,0,1,0,4,85,10.57626,0,81.5,0,280.04,1,0,1.386294,5.634933,0,0,0,1,0,0,81.5,9.266045,1.386294,3.394525,1 +11,6,0,1,2,625900,0,10571.85,14.25394,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,85,10.57626,0,81.5,0,280.04,1,0,1.386294,5.634933,0,0,0,1,0,0,81.5,9.266045,1.386294,,0 +11,6,0,1,3,625900,0,10571.85,15.25394,0,12,1,121.2442,6.771054,.740584,0,0,128.7558,0,0,0,2,0,4,85,10.57626,0,81.5,0,280.04,1,0,1.386294,5.634933,0,0,0,1,0,0,81.5,9.266045,1.386294,4.857918,1 +11,6,0,1,4,625900,0,10571.85,16.25393,0,12,1,82.38421,0,0,0,0,82.38421,0,0,0,3,0,4,85,10.57626,0,81.5,0,280.04,1,0,1.386294,5.634933,0,0,0,1,0,0,81.5,9.266045,1.386294,4.411394,1 +11,6,0,1,5,625900,0,10571.85,17.25393,0,12,1,11.41868,0,0,0,0,11.41868,0,0,0,1,0,4,85,10.57626,0,81.5,0,280.04,1,0,1.386294,5.634933,0,0,0,1,0,0,81.5,9.266045,1.386294,2.435251,1 +11,6,0,1,1,625901,0,10571.85,39.48802,0,10,1,0,0,0,0,0,0,0,0,0,0,0,4,87.8,0,0,86.4,0,280.04,0,0,1.386294,5.634933,0,0,0,0,0,0,86.4,9.266045,1.386294,,0 +11,6,0,1,2,625901,0,10571.85,40.48802,0,10,1,0,0,0,0,0,0,0,0,0,0,0,4,87.8,0,0,86.4,0,280.04,0,0,1.386294,5.634933,0,0,0,0,0,0,86.4,9.266045,1.386294,,0 +11,6,0,1,3,625901,0,10571.85,41.48802,0,10,1,12.27254,5.933136,0,0,0,18.20567,0,0,0,2,0,4,87.8,0,0,86.4,0,280.04,0,0,1.386294,5.634933,0,0,0,0,0,0,86.4,9.266045,1.386294,2.901733,1 +11,6,0,1,4,625901,0,10571.85,42.48802,0,10,1,124.9051,24.03569,0,0,560.3644,709.3052,1,0,0,5,0,4,87.8,0,0,86.4,0,280.04,0,0,1.386294,5.634933,0,0,0,0,0,0,86.4,9.266045,1.386294,6.564286,1 +11,6,0,1,5,625901,0,10571.85,43.48802,0,10,1,230.1038,2.422145,36.20415,0,0,268.7301,0,0,0,1,21,4,87.8,0,0,86.4,0,280.04,0,0,1.386294,5.634933,0,0,0,0,0,0,86.4,9.266045,1.386294,5.593708,1 +11,6,0,1,1,625902,0,10571.85,41.38261,1,12,1,318.7032,91.33665,34.91272,0,0,444.9526,0,0,0,18,0,4,62.8,17.2,0,53.4,0,280.04,0,0,1.386294,5.634933,0,0,0,0,0,1,53.4,9.266045,1.386294,6.097968,1 +11,6,0,1,2,625902,0,10571.85,42.38261,1,12,1,110.189,60.74228,0,0,0,170.9313,0,0,0,4,0,4,62.8,17.2,0,53.4,0,280.04,0,0,1.386294,5.634933,0,0,0,0,0,1,53.4,9.266045,1.386294,5.141262,1 +11,6,0,1,3,625902,0,10571.85,43.38261,1,12,1,83.79179,51.84088,0,0,0,135.6327,0,0,0,9,0,4,62.8,17.2,0,53.4,0,280.04,0,0,1.386294,5.634933,0,0,0,0,0,1,53.4,9.266045,1.386294,4.90995,1 +11,6,0,1,4,625902,0,10571.85,44.38261,1,12,1,62.26272,139.2483,0,0,1414.958,1616.469,2,0,0,4,0,4,62.8,17.2,0,53.4,0,280.04,0,0,1.386294,5.634933,0,0,0,0,0,1,53.4,9.266045,1.386294,7.388,1 +11,6,0,1,5,625902,0,10571.85,45.38261,1,12,1,313.1488,97.0346,36.20415,0,0,446.3875,0,0,0,3,23,4,62.8,17.2,0,53.4,0,280.04,0,0,1.386294,5.634933,0,0,0,0,0,1,53.4,9.266045,1.386294,6.101188,1 +11,6,0,1,1,625903,0,10571.85,16.39973,0,12,1,97.75561,2.493766,0,0,0,100.2494,0,0,0,1,0,4,91,6.9,0,63.6,0,280.04,1,0,1.386294,5.634933,0,0,0,1,0,0,63.6,9.266045,1.386294,4.607661,1 +11,6,0,1,2,625903,0,10571.85,17.39973,0,12,1,91.74735,3.918857,0,0,0,95.66621,0,0,0,9,0,4,91,6.9,0,63.6,0,280.04,1,0,1.386294,5.634933,0,0,0,1,0,0,63.6,9.266045,1.386294,4.560865,1 +11,6,0,1,3,625903,0,10571.85,18.39973,0,12,1,16.08125,6.45366,0,0,0,22.53491,0,0,0,1,0,4,91,6.9,0,63.6,0,280.04,0,0,1.386294,5.634933,0,0,0,1,0,0,63.6,9.266045,1.386294,3.115066,1 +11,6,0,1,4,625903,0,10571.85,19.39973,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,91,6.9,0,63.6,0,280.04,0,0,1.386294,5.634933,0,0,0,1,0,0,63.6,9.266045,1.386294,,0 +11,6,0,1,5,625903,0,10571.85,20.39973,0,12,1,14.18685,7.269896,0,0,127.3356,148.7924,1,0,0,0,0,4,91,6.9,0,63.6,0,280.04,0,0,1.386294,5.634933,0,0,0,1,0,0,63.6,9.266045,1.386294,5.002552,1 +11,6,0,1,1,625904,0,7864.516,18.97604,1,11,1,22.29931,40.22795,0,0,0,62.52726,0,0,0,2,0,4,76.6,10.3,0,76.1,0,525.76,0,0,1.386294,6.264845,0,0,0,0,0,0,76.1,8.970243,1.386294,4.135602,1 +11,6,0,1,2,625904,0,7864.516,19.97604,1,11,1,48.18724,27.77421,32.14318,0,0,108.1046,0,0,0,5,0,4,76.6,10.3,0,76.1,0,525.76,0,0,1.386294,6.264845,0,0,0,0,0,0,76.1,8.970243,1.386294,4.6831,1 +11,6,0,1,3,625904,0,7864.516,20.97604,1,11,1,44.17333,38.59487,16.40724,0,0,99.17543,0,0,0,3,0,4,76.6,10.3,0,76.1,0,525.76,0,0,1.386294,6.264845,0,0,0,0,0,0,76.1,8.970243,1.386294,4.59689,1 +11,6,0,1,4,625904,0,7864.516,21.97604,1,11,1,30.97847,10.21156,0,0,0,41.19003,0,0,0,2,0,5,76.6,10.3,0,76.1,0,525.76,0,0,1.609438,6.264845,0,0,0,0,0,0,76.1,8.970243,1.609438,3.718196,1 +11,6,0,1,5,625904,0,7864.516,22.97604,1,11,1,79.24529,17.44425,21.56775,0,0,118.2573,0,0,0,2,0,5,76.6,10.3,0,76.1,0,525.76,0,0,1.609438,6.264845,0,0,0,0,0,0,76.1,8.970243,1.609438,4.772862,1 +11,6,0,1,1,625905,0,7864.516,40.32033,0,12,1,13.87512,0,39.68285,0,0,53.55798,0,0,0,2,0,4,88.8,0,1,96.6,0,525.76,0,0,1.386294,6.264845,0,0,0,0,0,0,96.6,8.970243,1.386294,3.980765,1 +11,6,0,1,2,625905,0,7864.516,41.32033,0,12,1,13.76778,0,13.36393,0,0,27.13171,0,0,0,1,0,4,88.8,0,1,96.6,0,525.76,0,0,1.386294,6.264845,0,0,0,0,0,0,96.6,8.970243,1.386294,3.300703,1 +11,6,0,1,3,625905,0,7864.516,42.32033,0,12,1,8.834665,0,21.03492,0,0,29.86958,0,0,0,1,0,4,88.8,0,1,96.6,0,525.76,0,0,1.386294,6.264845,0,0,0,0,0,0,96.6,8.970243,1.386294,3.396841,1 +11,6,0,1,4,625905,0,7864.516,43.32033,0,12,1,28.33396,0,0,0,0,28.33396,0,0,0,1,0,5,88.8,0,1,96.6,0,525.76,0,0,1.609438,6.264845,0,0,0,0,0,0,96.6,8.970243,1.609438,3.344061,1 +11,6,0,1,5,625905,0,7864.516,44.32033,0,12,1,13.72213,0,33.49228,0,0,47.21441,0,0,0,1,0,5,88.8,0,1,96.6,0,525.76,0,0,1.609438,6.264845,0,0,0,0,0,0,96.6,8.970243,1.609438,3.854699,1 +11,6,0,1,1,625906,0,7864.516,16.12868,1,12,1,34.68781,4.876115,25.76809,0,0,65.33201,0,0,0,3,0,4,81.4,3.4,0,71.6,0,525.76,1,1,1.386294,6.264845,0,0,0,0,0,0,71.6,8.970243,1.386294,4.179482,1 +11,6,0,1,2,625906,0,7864.516,17.12868,1,12,1,26.38825,3.946764,18.13676,0,322.8545,371.3263,1,0,0,3,0,4,81.4,3.4,0,71.6,0,525.76,1,1,1.386294,6.264845,0,0,0,0,0,0,71.6,8.970243,1.386294,5.917081,1 +11,6,0,1,3,625906,0,7864.516,18.12868,1,12,1,22.29701,18.93143,0,0,1142.617,1183.845,1,0,0,1,0,4,81.4,3.4,0,71.6,0,525.76,0,0,1.386294,6.264845,0,0,0,0,0,0,71.6,8.970243,1.386294,7.076523,1 +11,6,0,1,4,625906,0,7864.516,19.12868,1,12,1,35.13411,38.25463,24.93389,0,0,98.32263,0,0,0,3,0,5,81.4,3.4,0,71.6,0,525.76,0,0,1.609438,6.264845,0,0,0,0,0,0,71.6,8.970243,1.609438,4.588254,1 +11,6,0,1,5,625906,0,7864.516,20.12868,1,12,1,36.19211,57.46141,0,0,0,93.65352,0,0,0,3,0,5,81.4,3.4,0,71.6,0,525.76,0,0,1.609438,6.264845,0,0,0,0,0,0,71.6,8.970243,1.609438,4.539602,1 +11,6,0,1,1,625907,0,7864.516,37.28679,1,12,1,22.29931,31.29336,0,0,0,53.59267,0,0,0,2,0,4,93.1,10.3,0,71.6,0,525.76,0,0,1.386294,6.264845,0,0,0,0,0,0,71.6,8.970243,1.386294,3.981412,1 +11,6,0,1,2,625907,0,7864.516,38.28679,1,12,1,31.6659,33.79991,0,0,0,65.46581,0,0,0,1,0,4,93.1,10.3,0,71.6,0,525.76,0,0,1.386294,6.264845,0,0,0,0,0,0,71.6,8.970243,1.386294,4.181528,1 +11,6,0,1,3,625907,0,7864.516,39.28679,1,12,1,100.9676,31.43879,0,0,0,132.4064,0,0,0,4,0,4,93.1,10.3,0,71.6,0,525.76,0,0,1.386294,6.264845,0,0,0,0,0,0,71.6,8.970243,1.386294,4.885876,1 +11,6,0,1,4,625907,0,7864.516,40.28679,1,12,1,24.5561,33.0034,0,0,0,57.5595,0,0,0,3,0,5,93.1,10.3,0,71.6,0,525.76,0,0,1.609438,6.264845,0,0,0,0,0,0,71.6,8.970243,1.609438,4.052819,1 +11,6,0,1,5,625907,0,7864.516,41.28679,1,12,1,27.78731,88.95026,0,0,0,116.7376,0,0,0,2,0,5,93.1,10.3,0,71.6,0,525.76,0,0,1.609438,6.264845,0,0,0,0,0,0,71.6,8.970243,1.609438,4.759928,1 +14,6,95,0,1,625912,1,3400.922,50.4011,1,7,1,0,1.248413,0,0,0,1.248413,0,0,0,0,0,9,77.40034,10.57626,.1442925,,48.6,48.6,0,0,2.197225,3.883624,0,4.564348,3.934917,1,0,0,70.68995,8.132095,2.197225,.2218732,1 +14,6,95,0,2,625912,1,3400.922,51.4011,1,7,1,0,0,0,0,0,0,0,0,0,0,0,9,77.40034,10.57626,.1442925,,48.6,48.6,0,0,2.197225,3.883624,0,4.564348,3.934917,1,0,0,70.68995,8.132095,2.197225,,0 +14,6,95,0,3,625912,1,3400.922,52.4011,1,7,1,0,0,0,0,0,0,0,0,0,0,0,10,77.40034,10.57626,.1442925,,48.6,48.6,0,0,2.302585,3.883624,0,4.564348,3.934917,1,0,0,70.68995,8.132095,2.302585,,0 +14,6,95,0,1,625913,1,3400.922,16.56126,0,7,1,0,0,0,0,0,0,0,0,0,0,0,9,77.40034,10.57626,.1442925,,48.6,48.6,1,0,2.197225,3.883624,0,4.564348,3.934917,1,0,0,70.68995,8.132095,2.197225,,0 +14,6,95,0,2,625913,1,3400.922,17.56126,0,7,1,0,0,0,0,0,0,0,0,0,0,0,9,77.40034,10.57626,.1442925,,48.6,48.6,1,0,2.197225,3.883624,0,4.564348,3.934917,1,0,0,70.68995,8.132095,2.197225,,0 +14,6,95,0,1,625914,1,3400.922,11.93977,0,7,1,0,0,0,0,0,0,0,0,0,0,0,9,77.40034,10.57626,.1442925,,48.6,48.6,1,0,2.197225,3.883624,0,4.564348,3.934917,1,0,0,70.68995,8.132095,2.197225,,0 +14,6,95,0,2,625914,1,3400.922,12.93977,0,7,1,0,0,0,0,0,0,0,0,0,0,0,9,77.40034,10.57626,.1442925,,48.6,48.6,1,0,2.197225,3.883624,0,4.564348,3.934917,1,0,0,70.68995,8.132095,2.197225,,0 +14,6,95,0,3,625914,1,3400.922,13.93977,0,7,1,0,0,0,0,0,0,0,0,0,0,0,10,77.40034,10.57626,.1442925,,48.6,48.6,1,0,2.302585,3.883624,0,4.564348,3.934917,1,0,0,70.68995,8.132095,2.302585,,0 +14,6,95,0,1,625915,1,3400.922,15.44969,1,7,1,0,0,0,0,0,0,0,0,0,0,0,9,77.40034,10.57626,.1442925,,48.6,48.6,1,1,2.197225,3.883624,0,4.564348,3.934917,1,0,0,70.68995,8.132095,2.197225,,0 +14,6,95,0,2,625915,1,3400.922,16.44969,1,7,1,0,0,0,0,0,0,0,0,0,0,0,9,77.40034,10.57626,.1442925,,48.6,48.6,1,1,2.197225,3.883624,0,4.564348,3.934917,1,0,0,70.68995,8.132095,2.197225,,0 +14,6,95,0,3,625915,1,3400.922,17.44969,1,7,1,0,4.757785,0,0,0,4.757785,0,0,0,0,0,10,77.40034,10.57626,.1442925,,48.6,48.6,1,1,2.302585,3.883624,0,4.564348,3.934917,1,0,0,70.68995,8.132095,2.302585,1.559782,1 +14,6,95,0,1,625916,1,3400.922,18.24504,1,7,1,0,0,0,0,0,0,0,0,0,0,0,9,77.40034,10.57626,.1442925,,48.6,48.6,0,0,2.197225,3.883624,0,4.564348,3.934917,1,0,0,70.68995,8.132095,2.197225,,0 +14,6,95,0,2,625916,1,3400.922,19.24504,1,7,1,8.352316,13.11693,0,0,277.5247,298.9939,1,0,0,1,0,9,77.40034,10.57626,.1442925,,48.6,48.6,0,0,2.197225,3.883624,0,4.564348,3.934917,1,0,0,70.68995,8.132095,2.197225,5.700423,1 +14,6,95,0,3,625916,1,3400.922,20.24504,1,7,1,13.49481,4.259516,0,0,0,17.75433,0,0,0,1,0,10,77.40034,10.57626,.1442925,,48.6,48.6,0,0,2.302585,3.883624,0,4.564348,3.934917,1,0,0,70.68995,8.132095,2.302585,2.876629,1 +15,6,95,1,1,625924,0,20927.29,43.40315,1,9,1,17.92414,14.79783,0,0,0,32.72197,0,0,0,3,0,2,60.6,17.2,0,61.4,700,1032.64,0,0,.6931472,6.939874,0,4.564348,6.602374,1,0,0,61.4,9.948857,.6931472,3.488047,1 +15,6,95,1,1,625925,0,20927.29,47.86584,0,4,1,0,0,0,0,0,0,0,0,0,0,0,2,80.3,10.3,1,60.2,700,1032.64,0,0,.6931472,6.939874,0,4.564348,6.602374,1,0,0,60.2,9.948857,.6931472,,0 +14,6,95,1,1,625949,1,3984.164,33.82067,1,11,1,22.29931,33.1219,0,0,0,55.42121,0,0,0,2,2,4,69.1,3.4,1,68.1,294,409.6,0,0,1.386294,6.015181,0,4.564348,5.734873,0,1,0,68.1,8.290334,1.386294,4.014962,1 +14,6,95,1,2,625949,1,3984.164,34.82067,1,11,1,6.883892,10.5553,0,0,0,17.43919,0,0,0,1,0,5,69.1,3.4,1,68.1,294,409.6,0,0,1.609438,6.015181,0,4.564348,5.734873,0,1,0,68.1,8.290334,1.609438,2.85872,1 +14,6,95,1,3,625949,1,3984.164,35.82067,1,11,1,14.72444,9.852756,0,0,0,24.5772,0,0,0,1,0,6,69.1,3.4,1,68.1,294,409.6,0,0,1.791759,6.015181,0,4.564348,5.734873,0,1,0,68.1,8.290334,1.791759,3.201819,1 +14,6,95,1,4,625949,1,3984.164,36.82067,1,11,1,75.55724,16.81149,40.04533,0,0,132.414,0,0,0,9,1,6,69.1,3.4,1,68.1,294,409.6,0,0,1.791759,6.015181,0,4.564348,5.734873,0,1,0,68.1,8.290334,1.791759,4.885934,1 +14,6,95,1,5,625949,1,3984.164,37.82067,1,11,1,25.72899,47.18696,0,0,0,72.91595,0,0,0,3,0,6,69.1,3.4,1,68.1,294,409.6,0,0,1.791759,6.015181,0,4.564348,5.734873,0,1,0,68.1,8.290334,1.791759,4.289308,1 +14,6,95,1,1,625950,1,3984.164,17.84257,1,11,1,23.78593,13.13181,0,0,315.6591,352.5768,1,0,0,2,0,4,80.9,3.4,1,61.4,294,409.6,1,1,1.386294,6.015181,0,4.564348,5.734873,1,0,0,61.4,8.290334,1.386294,5.865269,1 +14,6,95,1,2,625950,1,3984.164,18.84257,1,11,1,4.589261,8.031207,0,0,302.8912,315.5117,1,0,0,0,0,5,80.9,3.4,1,61.4,294,409.6,0,0,1.609438,6.015181,0,4.564348,5.734873,1,0,0,61.4,8.290334,1.609438,5.754196,1 +14,6,95,1,3,625950,1,3984.164,19.84257,1,11,1,26.92469,4.101809,0,0,0,31.0265,0,0,0,2,0,6,80.9,3.4,1,61.4,294,409.6,0,0,1.791759,6.015181,0,4.564348,5.734873,1,0,0,61.4,8.290334,1.791759,3.434842,1 +14,6,95,1,4,625950,1,3984.164,20.84257,1,11,1,0,0,0,0,0,0,0,0,0,0,0,6,80.9,3.4,1,61.4,294,409.6,0,0,1.791759,6.015181,0,4.564348,5.734873,1,0,0,61.4,8.290334,1.791759,,0 +14,6,95,1,5,625950,1,3984.164,21.84257,1,11,1,38.76501,7.375643,0,0,0,46.14065,0,0,0,3,0,6,80.9,3.4,1,61.4,294,409.6,0,0,1.791759,6.015181,0,4.564348,5.734873,1,0,0,61.4,8.290334,1.791759,3.831694,1 +14,6,95,1,1,625951,1,3984.164,47.89049,0,9,1,33.69673,54.29633,0,0,0,87.99306,0,0,0,7,0,4,72.3,13.8,1,58,294,409.6,0,0,1.386294,6.015181,0,4.564348,5.734873,1,0,0,58,8.290334,1.386294,4.477258,1 +14,6,95,1,2,625951,1,3984.164,48.89049,0,9,1,123.4511,92.81781,0,0,0,216.2689,0,0,0,13,0,5,72.3,13.8,1,58,294,409.6,0,0,1.609438,6.015181,0,4.564348,5.734873,1,0,0,58,8.290334,1.609438,5.376523,1 +14,6,95,1,3,625951,1,3984.164,49.89049,0,9,1,93.81573,112.3223,0,0,0,206.138,0,0,0,7,0,6,72.3,13.8,1,58,294,409.6,0,0,1.791759,6.015181,0,4.564348,5.734873,1,0,0,58,8.290334,1.791759,5.328546,1 +14,6,95,1,4,625951,1,3984.164,50.89049,0,9,1,140.5365,128.7873,0,0,0,269.3238,0,0,0,17,0,6,72.3,13.8,1,58,294,409.6,0,0,1.791759,6.015181,0,4.564348,5.734873,1,0,0,58,8.290334,1.791759,5.595914,1 +14,6,95,1,5,625951,1,3984.164,51.89049,0,9,1,34.30532,130.0206,0,0,0,164.3259,0,0,0,10,0,6,72.3,13.8,1,58,294,409.6,0,0,1.791759,6.015181,0,4.564348,5.734873,1,0,0,58,8.290334,1.791759,5.101851,1 +14,6,95,1,1,625952,1,3984.164,13.02669,0,11,1,4.955401,4.088206,0,0,0,9.043608,0,0,0,1,0,4,80,10.57626,1,63,294,409.6,1,0,1.386294,6.015181,0,4.564348,5.734873,1,0,0,63,8.290334,1.386294,2.202058,1 +14,6,95,1,2,625952,1,3984.164,14.02669,0,11,1,49.56402,12.7352,0,0,0,62.29922,0,0,0,1,0,5,80,10.57626,1,63,294,409.6,1,0,1.609438,6.015181,0,4.564348,5.734873,1,0,0,63,8.290334,1.609438,4.131949,1 +14,6,95,1,3,625952,1,3984.164,15.02669,0,11,1,0,0,0,0,0,0,0,0,0,0,0,6,80,10.57626,1,63,294,409.6,1,0,1.791759,6.015181,0,4.564348,5.734873,1,0,0,63,8.290334,1.791759,,0 +14,6,95,1,4,625952,1,3984.164,16.02669,0,11,1,0,0,0,0,0,0,0,0,0,0,0,6,80,10.57626,1,63,294,409.6,1,0,1.791759,6.015181,0,4.564348,5.734873,1,0,0,63,8.290334,1.791759,,0 +14,6,95,1,5,625952,1,3984.164,17.02669,0,11,1,0,0,0,0,0,0,0,0,0,0,0,6,80,10.57626,1,63,294,409.6,1,0,1.791759,6.015181,0,4.564348,5.734873,1,0,0,63,8.290334,1.791759,,0 +6,6,25,1,1,625956,1,1024.066,53.83984,1,9,1,14.81168,0,0,0,0,14.81168,0,0,0,2,0,1,70.7,17.2,1,50,250,0,0,0,0,0,0,3.258096,6.907755,1,0,0,50,6.932512,0,2.695416,1 +6,6,25,1,2,625956,1,1024.066,54.83984,1,9,1,5.694761,11.18071,0,0,0,16.87547,0,0,0,1,0,1,70.7,17.2,1,50,250,0,0,0,0,0,0,3.258096,6.907755,1,0,0,50,6.932512,0,2.825861,1 +6,6,25,1,3,625956,1,1024.066,55.83984,1,9,1,12.80277,0,0,0,0,12.80277,0,0,0,1,0,1,70.7,17.2,1,50,250,0,0,0,0,0,0,3.258096,6.907755,1,0,0,50,6.932512,0,2.549661,1 +11,6,0,0,1,625958,0,8844.342,39.54004,1,12,1,0,21.51872,0,0,0,21.51872,0,0,0,0,0,3,71.8,31,1,63.6,0,0,0,0,1.098612,0,0,0,0,1,0,0,63.6,9.087646,1.098612,3.068923,1 +11,6,0,0,2,625958,0,8844.342,40.54004,1,12,1,30.60068,26.38836,31.73404,0,0,88.72308,0,0,0,2,0,3,71.8,31,1,63.6,0,0,0,0,1.098612,0,0,0,0,1,0,0,63.6,9.087646,1.098612,4.48552,1 +11,6,0,0,3,625958,0,8844.342,41.54004,1,12,1,25.04288,109.7702,0,0,0,134.813,0,0,0,2,0,3,71.8,31,1,63.6,0,0,0,0,1.098612,0,0,0,0,1,0,0,63.6,9.087646,1.098612,4.903889,1 +11,6,0,0,1,625959,0,8844.342,18.05339,0,10.62774,1,47.95961,6.352545,0,0,0,54.31216,0,0,0,4,0,3,78.2,10.3,0,72.7,0,0,0,0,1.098612,0,0,0,0,1,0,0,72.7,9.087646,1.098612,3.994748,1 +11,6,0,0,2,625959,0,8844.342,19.05339,0,10.62774,1,17.00038,5.421232,0,0,0,22.42161,0,0,0,3,0,3,78.2,10.3,0,72.7,0,0,0,0,1.098612,0,0,0,0,1,0,0,72.7,9.087646,1.098612,3.110025,1 +11,6,0,0,3,625959,0,8844.342,20.05339,0,10.62774,1,0,5.166381,0,0,0,5.166381,0,0,0,0,0,3,78.2,10.3,0,72.7,0,0,0,0,1.098612,0,0,0,0,1,0,0,72.7,9.087646,1.098612,1.642172,1 +11,6,0,0,1,625960,0,8844.342,43.37029,0,12,1,0,6.895246,0,0,0,6.895246,0,0,0,0,0,3,83,20.7,0,73.9,0,0,0,0,1.098612,0,0,0,0,1,0,0,73.9,9.087646,1.098612,1.930832,1 +11,6,0,0,2,625960,0,8844.342,44.37029,0,12,1,260.6725,1.122025,0,0,0,261.7945,0,0,0,1,22,3,83,20.7,0,73.9,0,0,0,0,1.098612,0,0,0,0,1,0,0,73.9,9.087646,1.098612,5.56756,1 +11,6,0,0,3,625960,0,8844.342,45.37029,0,12,1,123.4991,6.542024,42.06861,0,0,172.1098,0,0,0,1,9,3,83,20.7,0,73.9,0,0,0,0,1.098612,0,0,0,0,1,0,0,73.9,9.087646,1.098612,5.148132,1 +15,6,95,1,1,625967,1,3530.792,21.40452,1,9,1,30.46683,13.41523,0,0,0,43.88206,0,0,0,2,0,2,75.5,13.8,1,52.3,499.2,509.08,0,0,.6931472,6.232605,0,4.564348,6.2643,1,0,0,52.3,8.16956,.6931472,3.781506,1 +15,6,95,1,2,625967,1,3530.792,22.40452,1,9,1,12.76208,0,0,0,237.01,249.7721,1,1,0,0,0,2,75.5,13.8,1,52.3,499.2,509.08,0,0,.6931472,6.232605,0,4.564348,6.2643,1,0,0,52.3,8.16956,.6931472,5.520549,1 +15,6,95,1,3,625967,1,3530.792,23.40452,1,9,1,0,0,0,0,0,0,0,0,0,0,0,2,75.5,13.8,1,52.3,499.2,509.08,0,0,.6931472,6.232605,0,4.564348,6.2643,1,0,0,52.3,8.16956,.6931472,,0 +15,6,95,1,4,625967,1,3530.792,24.40452,1,9,1,23.25581,7.464366,0,0,0,30.72018,0,0,0,0,0,2,75.5,13.8,1,52.3,499.2,509.08,0,0,.6931472,6.232605,0,4.564348,6.2643,1,0,0,52.3,8.16956,.6931472,3.42492,1 +15,6,95,1,5,625967,1,3530.792,25.40452,1,9,1,0,0,0,0,0,0,0,0,0,0,0,2,75.5,13.8,1,52.3,499.2,509.08,0,0,.6931472,6.232605,0,4.564348,6.2643,1,0,0,52.3,8.16956,.6931472,,0 +15,6,95,1,1,625968,1,3530.792,27.2334,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,76.1,10.3,1,56.8,499.2,509.08,0,0,.6931472,6.232605,0,4.564348,6.2643,1,0,0,56.8,8.16956,.6931472,,0 +15,6,95,1,2,625968,1,3530.792,28.2334,0,12,.8109589,0,0,0,0,0,0,0,0,0,0,0,2,76.1,10.3,1,56.8,499.2,509.08,0,0,.6931472,6.232605,0,4.564348,6.2643,1,0,0,56.8,8.16956,.6931472,,0 +11,6,0,0,1,625976,0,3890.425,29.86174,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,60.6,10.3,0,90.9,0,366.48,0,0,.6931472,5.903944,0,0,0,1,0,0,90.9,8.266531,.6931472,,0 +11,6,0,0,2,625976,0,3890.425,30.86174,1,12,1,125.9542,0,7.633588,0,0,133.5878,0,0,0,1,15,2,60.6,10.3,0,90.9,0,366.48,0,0,.6931472,5.903944,0,0,0,1,0,0,90.9,8.266531,.6931472,4.894759,1 +11,6,0,0,3,625976,0,3890.425,31.86174,1,12,1,22.64808,0,0,0,0,22.64808,0,0,0,2,0,2,60.6,10.3,0,90.9,0,366.48,0,0,.6931472,5.903944,0,0,0,1,0,0,90.9,8.266531,.6931472,3.120075,1 +11,6,0,0,1,625977,0,3890.425,9.32512,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,68.3,10.57626,0,88.9,0,366.48,1,0,.6931472,5.903944,0,0,0,0,1,0,88.9,8.266531,.6931472,,0 +11,6,0,0,2,625977,0,3890.425,10.32512,0,12,1,7.633588,0,0,0,0,7.633588,0,0,0,2,0,2,68.3,10.57626,0,88.9,0,366.48,1,0,.6931472,5.903944,0,0,0,0,1,0,88.9,8.266531,.6931472,2.032558,1 +11,6,0,0,3,625977,0,3890.425,11.32512,0,12,1,13.24042,0,0,0,0,13.24042,0,0,0,2,0,2,68.3,10.57626,0,88.9,0,366.48,1,0,.6931472,5.903944,0,0,0,0,1,0,88.9,8.266531,.6931472,2.583274,1 +11,6,0,1,1,625993,0,11349.56,23.33196,1,15,1,9.415262,15.9663,33.69673,0,517.9633,577.0416,1,0,0,1,0,2,76.1,6.9,1,85.2,0,60,0,0,.6931472,4.094345,0,0,0,1,0,0,85.2,9.337023,.6931472,6.357914,1 +11,6,0,1,2,625993,0,11349.56,24.33196,1,15,1,39.92657,10.95916,0,0,0,50.88573,0,0,0,3,0,3,76.1,6.9,1,85.2,0,60,0,0,1.098612,4.094345,0,0,0,1,0,0,85.2,9.337023,1.098612,3.929582,1 +11,6,0,1,3,625993,0,11349.56,25.33196,1,15,1,73.62222,2.801851,0,0,0,76.42406,0,0,0,4,0,3,76.1,6.9,1,85.2,0,60,0,0,1.098612,4.094345,0,0,0,1,0,0,85.2,9.337023,1.098612,4.336298,1 +11,6,0,1,4,625993,0,11349.56,26.33196,1,15,1,51.75671,17.90329,0,0,0,69.66,0,0,0,4,0,3,76.1,6.9,1,85.2,0,60,0,0,1.098612,4.094345,0,0,0,1,0,0,85.2,9.337023,1.098612,4.243626,1 +11,6,0,1,5,625993,0,11349.56,27.33196,1,15,1,23.32762,4.991424,2.744425,0,706.9811,738.0446,1,0,0,2,0,3,76.1,6.9,1,85.2,0,60,0,0,1.098612,4.094345,0,0,0,1,0,0,85.2,9.337023,1.098612,6.604004,1 +11,6,0,1,1,625994,0,11349.56,24.81862,0,16,1,43.11199,0,37.50248,0,0,80.61447,0,0,0,4,0,2,76.6,10.3,0,56.8,0,60,0,0,.6931472,4.094345,0,0,0,1,0,0,56.8,9.337023,.6931472,4.389678,1 +11,6,0,1,2,625994,0,11349.56,25.81862,0,16,1,686.0945,0,2.294631,0,2794.86,3483.249,1,0,0,14,15,3,76.6,10.3,0,56.8,0,60,0,0,1.098612,4.094345,0,0,0,1,0,0,56.8,9.337023,1.098612,8.155721,1 +11,6,0,1,3,625994,0,11349.56,26.81862,0,16,1,274.2953,41.71645,22.08666,0,0,338.0984,0,0,0,13,4,3,76.6,10.3,0,56.8,0,60,0,0,1.098612,4.094345,0,0,0,1,0,0,56.8,9.337023,1.098612,5.823337,1 +11,6,0,1,4,625994,0,11349.56,27.81862,0,16,1,53.64564,39.1122,20.28712,0,0,113.045,0,0,0,7,0,3,76.6,10.3,0,56.8,0,60,0,0,1.098612,4.094345,0,0,0,1,0,0,56.8,9.337023,1.098612,4.727786,1 +11,6,0,1,5,625994,0,11349.56,28.81862,0,16,1,5.488851,25.48885,28.34648,0,0,59.32418,0,0,0,1,0,3,76.6,10.3,0,56.8,0,60,0,0,1.098612,4.094345,0,0,0,1,0,0,56.8,9.337023,1.098612,4.083017,1 +13,6,0,1,1,626008,0,7417.307,28.91718,0,17,1,0,9.627592,0,0,0,9.627592,0,0,0,0,0,2,82.4,0,0,75,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,75,8.911706,.6931472,2.264633,1 +13,6,0,1,2,626008,0,7417.307,29.91718,0,17,1,11.38952,0,26.57555,0,0,37.96507,0,0,0,0,1,2,82.4,0,0,75,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,75,8.911706,.6931472,3.636667,1 +13,6,0,1,3,626008,0,7417.307,30.91718,0,17,1,325.2595,0,41.52249,0,0,366.782,0,0,0,1,29,2,82.4,0,0,75,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,75,8.911706,.6931472,5.904768,1 +13,6,0,1,1,626009,0,7417.307,27.46338,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,90.4,13.8,0,78.4,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,78.4,8.911706,.6931472,,0 +13,6,0,1,2,626009,0,7417.307,28.46338,1,12,1,14.42673,0,0,0,0,14.42673,0,0,0,1,0,2,90.4,13.8,0,78.4,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,78.4,8.911706,.6931472,2.669083,1 +13,6,0,1,3,626009,0,7417.307,29.46338,1,12,1,25.95156,0,32.87197,0,0,58.82353,0,0,0,1,1,2,90.4,13.8,0,78.4,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,78.4,8.911706,.6931472,4.074542,1 +11,6,0,0,1,626533,0,6219.941,29.51951,1,12,1,33.20119,0,29.73241,0,0,62.9336,0,0,0,2,1,4,97.9,6.9,0,85.2,0,0,0,0,1.386294,0,0,0,0,0,0,0,85.2,8.735677,1.386294,4.14208,1 +11,6,0,0,2,626533,0,6219.941,30.51951,1,12,1,59.20147,20.65167,0,0,0,79.85314,0,0,0,2,0,4,97.9,6.9,0,85.2,0,0,0,0,1.386294,0,0,0,0,0,0,0,85.2,8.735677,1.386294,4.380189,1 +11,6,0,0,3,626533,0,6219.941,31.51951,1,12,1,47.95961,21.1443,0,21.03492,0,69.10391,0,0,1,5,0,4,97.9,6.9,0,85.2,0,0,0,0,1.386294,0,0,0,0,0,0,0,85.2,8.735677,1.386294,4.235611,1 +11,6,0,0,4,626533,0,6219.941,32.51951,1,12,1,26.06725,28.70797,0,66.11258,0,54.77522,0,0,3,3,0,4,97.9,6.9,0,85.2,0,0,0,0,1.386294,0,0,0,0,0,0,0,85.2,8.735677,1.386294,4.003238,1 +11,6,0,0,5,626533,0,6219.941,33.51951,1,12,1,134.4768,16.29502,0,18.86792,0,150.7719,0,0,1,5,0,4,97.9,6.9,0,85.2,0,0,0,0,1.386294,0,0,0,0,0,0,0,85.2,8.735677,1.386294,5.015768,1 +11,6,0,0,1,626534,0,6219.941,6.55989,0,12,1,4.955401,7.056491,0,0,0,12.01189,0,0,0,1,0,4,98.3,10.57626,0,88.9,0,0,1,0,1.386294,0,0,0,0,0,0,0,88.9,8.735677,1.386294,2.485897,1 +11,6,0,0,2,626534,0,6219.941,7.55989,0,12,1,0,4.589261,0,0,0,4.589261,0,0,0,0,0,4,98.3,10.57626,0,88.9,0,0,1,0,1.386294,0,0,0,0,0,0,0,88.9,8.735677,1.386294,1.523719,1 +11,6,0,0,3,626534,0,6219.941,8.559891,0,12,1,0,5.153555,0,0,0,5.153555,0,0,0,0,0,4,98.3,10.57626,0,88.9,0,0,1,0,1.386294,0,0,0,0,0,0,0,88.9,8.735677,1.386294,1.639687,1 +11,6,0,0,4,626534,0,6219.941,9.559891,0,12,1,0,6.120136,0,0,0,6.120136,0,0,0,0,0,4,98.3,10.57626,0,88.9,0,0,1,0,1.386294,0,0,0,0,0,0,0,88.9,8.735677,1.386294,1.811584,1 +11,6,0,0,5,626534,0,6219.941,10.55989,0,12,1,5.831904,1.457976,0,0,0,7.28988,0,0,0,1,0,4,98.3,10.57626,0,88.9,0,0,1,0,1.386294,0,0,0,0,0,0,0,88.9,8.735677,1.386294,1.986487,1 +11,6,0,0,1,626535,0,6219.941,28.79398,0,12,1,9.910803,4.088206,38.15659,0,0,52.1556,0,0,0,0,1,4,96.3,3.4,0,86.4,0,0,0,0,1.386294,0,0,0,0,0,0,0,86.4,8.735677,1.386294,3.954232,1 +11,6,0,0,2,626535,0,6219.941,29.79398,0,12,1,0,4.589261,0,0,0,4.589261,0,0,0,0,0,4,96.3,3.4,0,86.4,0,0,0,0,1.386294,0,0,0,0,0,0,0,86.4,8.735677,1.386294,1.523719,1 +11,6,0,0,3,626535,0,6219.941,30.79398,0,12,1,6.310475,0,27.34539,147.2444,0,33.65587,0,0,8,1,0,4,96.3,3.4,0,86.4,0,0,0,0,1.386294,0,0,0,0,0,0,0,86.4,8.735677,1.386294,3.516187,1 +11,6,0,0,4,626535,0,6219.941,31.79398,0,12,1,0,12.65584,0,0,0,12.65584,0,0,0,0,0,4,96.3,3.4,0,86.4,0,0,0,0,1.386294,0,0,0,0,0,0,0,86.4,8.735677,1.386294,2.538119,1 +11,6,0,0,5,626535,0,6219.941,32.79398,0,12,1,0,6.7753,28.34648,0,0,35.12178,0,0,0,0,0,4,96.3,3.4,0,86.4,0,0,0,0,1.386294,0,0,0,0,0,0,0,86.4,8.735677,1.386294,3.558822,1 +10,6,50,0,1,626540,0,10082.44,20.76386,0,10,1,0,0,0,0,0,0,0,0,0,0,0,3,72.3,17.2,0,62.5,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,62.5,9.21865,1.098612,,0 +10,6,50,0,2,626540,0,10082.44,21.76386,0,10,1,0,0,0,0,0,0,0,0,0,0,0,3,72.3,17.2,0,62.5,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,62.5,9.21865,1.098612,,0 +10,6,50,0,3,626540,0,10082.44,22.76386,0,10,1,15.43739,0,28.34648,0,0,43.78388,0,0,0,1,0,3,72.3,17.2,0,62.5,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,62.5,9.21865,1.098612,3.779266,1 +10,6,50,1,1,626541,0,10082.44,61.84531,0,10,1,35.75936,13.04165,0,0,0,48.80101,0,0,0,5,0,3,58,20.7,0,48.9,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,1,0,48.9,9.21865,1.098612,3.887751,1 +10,6,50,1,2,626541,0,10082.44,62.84531,0,10,1,73.29052,17.8504,136.003,0,641.4809,868.6249,1,0,0,5,0,3,58,20.7,0,48.9,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,1,0,48.9,9.21865,1.098612,6.766912,1 +10,6,50,1,3,626541,0,10082.44,63.84531,0,10,1,0,2.144082,0,0,0,2.144082,0,0,0,0,0,3,58,20.7,0,48.9,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,1,0,48.9,9.21865,1.098612,.7627116,1 +10,6,50,1,1,626542,0,10082.44,61.49487,1,11,1,0,19.66765,0,0,0,19.66765,0,0,0,0,0,3,73.9,6.9,0,75,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,1,0,0,75,9.21865,1.098612,2.978975,1 +10,6,50,1,2,626542,0,10082.44,62.49487,1,11,1,15.11145,0,37.02304,0,0,52.13449,0,0,0,1,0,3,73.9,6.9,0,75,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,1,0,0,75,9.21865,1.098612,3.953827,1 +10,6,50,1,3,626542,0,10082.44,63.49487,1,11,1,0,0,0,0,0,0,0,0,0,0,0,3,73.9,6.9,0,75,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,1,0,0,75,9.21865,1.098612,,0 +11,6,0,0,1,626597,0,0,25.34155,0,12,1,8.463818,3.135844,0,0,0,11.59966,0,0,0,2,0,1,74.5,0,0,75,0,154.44,0,0,0,5.039806,0,0,0,0,1,0,75,0,0,2.450976,1 +11,6,0,0,2,626597,0,0,26.34155,0,12,1,33.02961,9.350798,0,0,0,42.38041,0,0,0,3,0,1,74.5,0,0,75,0,154.44,0,0,0,5.039806,0,0,0,0,1,0,75,0,0,3.746686,1 +11,6,0,0,3,626597,0,0,27.34155,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,74.5,0,0,75,0,154.44,0,0,0,5.039806,0,0,0,0,1,0,75,0,0,,0 +11,6,0,0,1,626598,0,1011.777,25.34155,0,13,1,33.43208,3.508252,0,0,0,36.94033,0,0,0,4,0,1,61.7,10.3,0,81.8,0,154.44,0,0,0,5.039806,0,0,0,0,1,0,81.8,6.920451,0,3.609304,1 +11,6,0,0,2,626598,0,1011.777,26.34155,0,13,1,3.796507,17.1792,0,0,0,20.9757,0,0,0,1,0,1,61.7,10.3,0,81.8,0,154.44,0,0,0,5.039806,0,0,0,0,1,0,81.8,6.920451,0,3.043365,1 +11,6,0,0,3,626598,0,1011.777,27.34155,0,13,1,10.38062,4.792387,0,0,0,15.17301,0,0,0,3,0,1,61.7,10.3,0,81.8,0,154.44,0,0,0,5.039806,0,0,0,0,1,0,81.8,6.920451,0,2.719518,1 +11,6,0,0,1,626740,1,5123.912,57.1499,0,8,1,0,0,0,0,0,0,0,0,0,0,0,2,66.1,13.8,0,60.2,0,192.48,0,0,.6931472,5.259992,0,0,0,1,0,0,60.2,8.541868,.6931472,,0 +11,6,0,0,2,626740,1,5123.912,58.1499,0,8,1,13.66743,0,0,0,0,13.66743,0,0,0,2,0,2,66.1,13.8,0,60.2,0,192.48,0,0,.6931472,5.259992,0,0,0,1,0,0,60.2,8.541868,.6931472,2.615015,1 +11,6,0,0,3,626740,1,5123.912,59.1499,0,8,1,9.342561,0,0,0,0,9.342561,0,0,0,1,0,3,66.1,13.8,0,60.2,0,192.48,0,0,1.098612,5.259992,0,0,0,1,0,0,60.2,8.541868,1.098612,2.23458,1 +11,6,0,0,1,626741,1,5123.912,37.53867,1,12,1,84.21498,19.17055,0,0,0,103.3855,0,0,0,6,0,2,67,17.2,0,62.5,0,192.48,0,0,.6931472,5.259992,0,0,0,0,1,0,62.5,8.541868,.6931472,4.638465,1 +11,6,0,0,2,626741,1,5123.912,38.53867,1,12,1,216.0213,10.20121,0,0,2616.173,2842.396,2,0,0,10,0,2,67,17.2,0,62.5,0,192.48,0,0,.6931472,5.259992,0,0,0,0,1,0,62.5,8.541868,.6931472,7.952403,1 +11,6,0,0,3,626741,1,5123.912,39.53867,1,12,1,49.82699,0,31.14187,0,0,80.96886,0,0,0,3,0,3,67,17.2,0,62.5,0,192.48,0,0,1.098612,5.259992,0,0,0,0,1,0,62.5,8.541868,1.098612,4.394064,1 +16,6,95,1,1,626754,1,0,41.87269,1,6,1,23.78593,67.6115,0,0,0,91.39742,0,0,0,2,0,1,81.9,6.9,1,69.3,315.15,315.05,0,0,0,5.752731,0,4.564348,5.804342,0,1,0,69.3,0,0,4.515217,1 +16,6,95,1,2,626754,1,0,42.87269,1,6,1,11.47315,4.589261,0,0,0,16.06241,0,0,0,1,0,1,81.9,6.9,1,69.3,315.15,315.05,0,0,0,5.752731,0,4.564348,5.804342,0,1,0,69.3,0,0,2.776482,1 +16,6,95,1,3,626754,1,0,43.87269,1,6,1,34.49726,25.87295,2.734539,0,0,63.10476,0,0,0,3,0,1,81.9,6.9,1,69.3,315.15,315.05,0,0,0,5.752731,0,4.564348,5.804342,0,1,0,69.3,0,0,4.144796,1 +16,6,95,1,4,626754,1,0,44.87269,1,6,1,47.22327,37.84284,0,0,0,85.06612,0,0,0,4,0,1,81.9,6.9,1,69.3,315.15,315.05,0,0,0,5.752731,0,4.564348,5.804342,0,1,0,69.3,0,0,4.443429,1 +16,6,95,1,5,626754,1,0,45.87269,1,6,1,37.04974,38.21269,35.67753,0,0,110.94,0,0,0,4,0,1,81.9,6.9,1,69.3,315.15,315.05,0,0,0,5.752731,0,4.564348,5.804342,0,1,0,69.3,0,0,4.708989,1 +13,6,0,1,1,626798,1,6735.316,30.06434,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,52.1,3.4,0,59.1,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,59.1,8.815269,0,,0 +13,6,0,1,2,626798,1,6735.316,31.06434,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,52.1,3.4,0,59.1,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,59.1,8.815269,0,,0 +13,6,0,1,3,626798,1,6735.316,32.06434,0,12,1,19.03114,0,38.97232,0,0,58.00346,0,0,0,1,0,1,52.1,3.4,0,59.1,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,59.1,8.815269,0,4.060503,1 +6,6,25,1,1,626875,1,1656.426,61.48118,1,2,1,72.78883,36.16166,38.08718,0,0,147.0377,0,0,0,7,1,2,83,24.1,1,52.3,318,318,0,0,.6931472,5.762052,0,3.258096,7.148346,0,1,0,52.3,7.413021,.6931472,4.990689,1 +6,6,25,1,2,626875,1,1656.426,62.48118,1,2,1,120.3493,123.8041,0,0,0,244.1534,0,0,0,19,0,2,83,24.1,1,52.3,318,318,0,0,.6931472,5.762052,0,3.258096,7.148346,0,1,0,52.3,7.413021,.6931472,5.497797,1 +6,6,25,1,3,626875,1,1656.426,63.48118,1,2,1,46.02076,58.73356,0,0,0,104.7543,0,0,0,6,0,2,83,24.1,1,52.3,318,318,0,0,.6931472,5.762052,0,3.258096,7.148346,0,1,0,52.3,7.413021,.6931472,4.651618,1 +6,6,25,1,1,626876,.5112414,6735.316,18.987,1,10.5,1,0,0,0,0,0,0,0,0,0,0,0,2,49.5,3.4,0,58,100,0,0,0,.6931472,0,0,3.258096,5.991465,0,0,0,58,8.815269,.6931472,,0 +6,6,25,1,2,626876,.5112414,6735.316,19.987,1,10.5,1,0,0,0,0,0,0,0,0,0,0,0,2,49.5,3.4,0,58,100,0,0,0,.6931472,0,0,3.258096,5.991465,0,0,0,58,8.815269,.6931472,,0 +6,6,25,1,3,626876,.5112414,6735.316,20.987,1,10.5,1,32.17993,9.038062,0,0,0,41.21799,0,0,0,3,0,2,49.5,3.4,0,58,100,0,0,0,.6931472,0,0,3.258096,5.991465,0,0,0,58,8.815269,.6931472,3.718875,1 +6,6,25,1,1,626877,1,1656.426,13.69199,0,2,1,6.347863,2.433347,0,0,0,8.78121,0,0,0,1,0,2,90,10.57626,0,92.6,318,318,1,0,.6931472,5.762052,0,3.258096,7.148346,0,0,0,92.6,7.413021,.6931472,2.172614,1 +6,6,25,1,2,626877,1,1656.426,14.69199,0,2,1,14.80638,0,0,0,0,14.80638,0,0,0,2,0,2,90,10.57626,0,92.6,318,318,1,0,.6931472,5.762052,0,3.258096,7.148346,0,0,0,92.6,7.413021,.6931472,2.695058,1 +6,6,25,1,3,626877,1,1656.426,15.69199,0,2,1,26.98962,2.477509,0,0,0,29.46713,0,0,0,3,0,2,90,10.57626,0,92.6,318,318,1,0,.6931472,5.762052,0,3.258096,7.148346,0,0,0,92.6,7.413021,.6931472,3.383275,1 +13,6,0,1,1,626878,1,1982.991,51.36482,0,12,1,0,0,0,0,113.217,113.217,1,1,0,0,0,2,52.1,34.5,1,22.7,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,1,0,22.7,7.592866,.6931472,4.729306,1 +13,6,0,1,2,626878,1,1982.991,52.36482,0,12,1,9.22084,0,32.27294,0,0,41.49377,0,0,0,0,1,2,52.1,34.5,1,22.7,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,1,0,22.7,7.592866,.6931472,3.725543,1 +13,6,0,1,3,626878,1,1982.991,53.36482,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,52.1,34.5,1,22.7,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,1,0,22.7,7.592866,.6931472,,0 +13,6,0,1,4,626878,1,1982.991,54.36482,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,52.1,34.5,1,22.7,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,1,0,22.7,7.592866,.6931472,,0 +13,6,0,1,5,626878,1,1982.991,55.36482,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,52.1,34.5,1,22.7,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,1,0,22.7,7.592866,.6931472,,0 +13,6,0,1,1,626879,1,1982.991,55.26625,1,8,1,0,0,0,0,0,0,0,0,0,0,0,2,53.7,10.3,1,30.7,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,30.7,7.592866,.6931472,,0 +13,6,0,1,2,626879,1,1982.991,56.26625,1,8,1,9.22084,0,32.27294,0,0,41.49377,0,0,0,0,1,2,53.7,10.3,1,30.7,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,30.7,7.592866,.6931472,3.725543,1 +13,6,0,1,3,626879,1,1982.991,57.26625,1,8,1,0,0,0,0,0,0,0,0,0,0,0,2,53.7,10.3,1,30.7,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,30.7,7.592866,.6931472,,0 +13,6,0,1,4,626879,1,1982.991,58.26625,1,8,1,0,0,0,0,0,0,0,0,0,0,0,2,53.7,10.3,1,30.7,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,30.7,7.592866,.6931472,,0 +13,6,0,1,5,626879,1,1982.991,59.26625,1,8,1,0,0,0,0,0,0,0,0,0,0,0,2,53.7,10.3,1,30.7,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,30.7,7.592866,.6931472,,0 +13,6,0,1,1,626927,0,6735.316,36.38604,1,17,1,0,0,0,0,0,0,0,0,0,0,0,5,81.9,3.4,0,63.6,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,63.6,8.815269,1.609438,,0 +13,6,0,1,2,626927,0,6735.316,37.38604,1,17,1,5.343512,0,0,0,0,5.343512,0,0,0,1,0,5,81.9,3.4,0,63.6,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,63.6,8.815269,1.609438,1.675883,1 +13,6,0,1,3,626927,0,6735.316,38.38604,1,17,1,0,0,0,0,0,0,0,0,0,0,0,5,81.9,3.4,0,63.6,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,63.6,8.815269,1.609438,,0 +13,6,0,1,1,626928,0,6735.316,37.39357,0,16,1,0,0,0,0,0,0,0,0,0,0,0,5,89.9,13.8,0,78.4,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,78.4,8.815269,1.609438,,0 +13,6,0,1,2,626928,0,6735.316,38.39357,0,16,1,5.343512,0,0,0,0,5.343512,0,0,0,1,0,5,89.9,13.8,0,78.4,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,78.4,8.815269,1.609438,1.675883,1 +13,6,0,1,3,626928,0,6735.316,39.39357,0,16,1,0,0,0,0,0,0,0,0,0,0,0,5,89.9,13.8,0,78.4,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,78.4,8.815269,1.609438,,0 +13,6,0,1,1,626929,0,6735.316,9.932922,1,17,1,0,0,0,0,0,0,0,0,0,0,0,5,76.7,10.57626,0,85.2,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,85.2,8.815269,1.609438,,0 +13,6,0,1,2,626929,0,6735.316,10.93292,1,17,1,0,0,0,0,0,0,0,0,0,0,0,5,76.7,10.57626,0,85.2,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,85.2,8.815269,1.609438,,0 +13,6,0,1,3,626929,0,6735.316,11.93292,1,17,1,0,0,0,0,0,0,0,0,0,0,0,5,76.7,10.57626,0,85.2,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,85.2,8.815269,1.609438,,0 +13,6,0,1,1,626930,0,6735.316,14.20397,0,17,1,0,0,0,0,0,0,0,0,0,0,0,5,86.2,3.4,0,81.8,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,81.8,8.815269,1.609438,,0 +13,6,0,1,2,626930,0,6735.316,15.20397,0,17,1,43.12977,0,28.62595,0,0,71.75572,0,0,0,1,1,5,86.2,3.4,0,81.8,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,81.8,8.815269,1.609438,4.273268,1 +13,6,0,1,3,626930,0,6735.316,16.20397,0,17,1,0,0,0,0,0,0,0,0,0,0,0,5,86.2,3.4,0,81.8,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,81.8,8.815269,1.609438,,0 +13,6,0,1,1,626931,0,6735.316,7.824778,0,17,1,0,0,0,0,0,0,0,0,0,0,0,5,83.3,10.57626,0,85.2,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,85.2,8.815269,1.609438,,0 +13,6,0,1,2,626931,0,6735.316,8.824778,0,17,1,2.671756,0,0,0,0,2.671756,0,0,0,1,0,5,83.3,10.57626,0,85.2,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,85.2,8.815269,1.609438,.9827359,1 +13,6,0,1,3,626931,0,6735.316,9.824778,0,17,1,0,0,0,0,0,0,0,0,0,0,0,5,83.3,10.57626,0,85.2,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,85.2,8.815269,1.609438,,0 +19,6,25,1,1,626942,1,13454.69,38.62286,0,16,1,7.57257,0,0,0,0,7.57257,0,0,0,0,0,3,79.8,3.4,0,96.6,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,96.6,9.507157,1.098612,2.024533,1 +19,6,25,1,2,626942,1,13454.69,39.62286,0,16,1,40.80091,0,0,0,0,40.80091,0,0,0,6,0,3,79.8,3.4,0,96.6,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,96.6,9.507157,1.098612,3.708704,1 +19,6,25,1,3,626942,1,13454.69,40.62286,0,16,1,17.15266,4.596912,0,0,0,21.74957,0,0,0,1,0,3,79.8,3.4,0,96.6,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,96.6,9.507157,1.098612,3.079594,1 +19,6,25,1,1,626943,1,13454.69,37.86995,1,18,1,22.71771,5.258729,0,0,0,27.97644,0,0,0,2,0,3,88.8,10.3,0,63.6,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,63.6,9.507157,1.098612,3.331363,1 +19,6,25,1,2,626943,1,13454.69,38.86995,1,18,1,28.71175,13.54741,0,0,0,42.25916,0,0,0,4,0,3,88.8,10.3,0,63.6,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,63.6,9.507157,1.098612,3.743821,1 +19,6,25,1,3,626943,1,13454.69,39.86995,1,18,1,36.02058,8.147512,32.82333,0,0,76.99142,0,0,0,4,0,3,88.8,10.3,0,63.6,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,63.6,9.507157,1.098612,4.343694,1 +19,6,25,1,1,626944,1,13454.69,11.46064,0,18,1,0,0,0,0,0,0,0,0,0,0,0,3,88.3,10.57626,0,92.6,750,750,1,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,92.6,9.507157,1.098612,,0 +19,6,25,1,2,626944,1,13454.69,12.46064,0,18,1,216.4715,0,0,0,0,216.4715,0,0,0,1,0,3,88.3,10.57626,0,92.6,750,750,1,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,92.6,9.507157,1.098612,5.377459,1 +19,6,25,1,3,626944,1,13454.69,13.46064,0,18,1,19.55403,0,33.89022,0,0,53.44425,0,0,0,2,0,3,88.3,10.57626,0,92.6,750,750,1,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,92.6,9.507157,1.098612,3.978639,1 +13,6,0,0,1,626945,0,8023.042,35.23888,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,87.8,10.3,0,86.4,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,86.4,8.990197,1.609438,,0 +13,6,0,0,2,626945,0,8023.042,36.23888,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,87.8,10.3,0,86.4,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,86.4,8.990197,1.609438,,0 +13,6,0,0,3,626945,0,8023.042,37.23888,1,12,1,13.72213,0,0,0,0,13.72213,0,0,0,1,0,5,87.8,10.3,0,86.4,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,86.4,8.990197,1.609438,2.61901,1 +13,6,0,0,1,626946,0,8023.042,14.35181,1,12,1,14.72444,0,17.66933,0,0,32.39377,0,0,0,1,0,5,92.6,6.9,0,80.7,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,1,0,0,80.7,8.990197,1.609438,3.477966,1 +13,6,0,0,2,626946,0,8023.042,15.35181,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,92.6,6.9,0,80.7,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,1,0,0,80.7,8.990197,1.609438,,0 +13,6,0,0,3,626946,0,8023.042,16.35181,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,92.6,6.9,0,80.7,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,1,0,0,80.7,8.990197,1.609438,,0 +13,6,0,0,1,626947,0,8023.042,8.966461,0,12,1,5.469079,6.411443,0,0,0,11.88052,0,0,0,1,0,5,95,10.57626,0,70.4,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,70.4,8.990197,1.609438,2.4749,1 +13,6,0,0,2,626947,0,8023.042,9.966461,0,12,1,0,5.232338,0,0,0,5.232338,0,0,0,0,0,5,95,10.57626,0,70.4,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,70.4,8.990197,1.609438,1.654858,1 +13,6,0,0,3,626947,0,8023.042,10.96646,0,12,1,19.89708,6.00343,0,0,0,25.90051,0,0,0,1,1,5,95,10.57626,0,70.4,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,70.4,8.990197,1.609438,3.254263,1 +13,6,0,0,1,626948,0,8023.042,35.68789,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,84.6,6.9,0,78.4,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,78.4,8.990197,1.609438,,0 +13,6,0,0,2,626948,0,8023.042,36.68789,0,12,1,0,4.684548,0,0,0,4.684548,0,0,0,0,0,5,84.6,6.9,0,78.4,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,78.4,8.990197,1.609438,1.54427,1 +13,6,0,0,3,626948,0,8023.042,37.68789,0,12,1,27.44425,5.022298,0,0,0,32.46655,0,0,0,3,0,5,84.6,6.9,0,78.4,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,78.4,8.990197,1.609438,3.48021,1 +13,6,0,0,1,626967,0,10599.08,58.29979,1,11,1,72.94706,178.1409,33.34723,0,0,284.4352,0,0,0,5,1,1,85.1,34.5,1,50,150,209.04,0,0,0,5.342525,1,4.564348,5.061929,0,1,0,50,9.268617,0,5.650506,1 +13,6,0,0,2,626967,0,10599.08,59.29979,1,11,1,63.39085,185.5326,0,0,555.1388,804.0623,1,0,0,6,0,1,85.1,34.5,1,50,150,209.04,0,0,0,5.342525,1,4.564348,5.061929,0,1,0,50,9.268617,0,6.689677,1 +13,6,0,0,3,626967,0,10599.08,60.29979,1,11,1,62.58458,156.3227,0,0,345.0609,563.9682,1,0,0,5,0,1,85.1,34.5,1,50,150,209.04,0,0,0,5.342525,1,4.564348,5.061929,0,1,0,50,9.268617,0,6.334998,1 +13,6,0,0,1,626978,0,4300.051,25.38261,0,7,1,0,0,0,0,0,0,0,0,0,0,0,3,62.2,6.9,0,85.2,450,0,0,0,1.098612,0,1,4.564348,6.160541,1,0,0,85.2,8.366614,1.098612,,0 +13,6,0,0,2,626978,0,4300.051,26.38261,0,7,1,0,0,0,0,0,0,0,0,0,0,0,3,62.2,6.9,0,85.2,450,0,0,0,1.098612,0,1,4.564348,6.160541,1,0,0,85.2,8.366614,1.098612,,0 +13,6,0,0,3,626978,0,4300.051,27.38261,0,7,1,0,0,0,0,0,0,0,0,0,0,0,3,62.2,6.9,0,85.2,450,0,0,0,1.098612,0,1,4.564348,6.160541,1,0,0,85.2,8.366614,1.098612,,0 +13,6,0,0,1,626979,0,4300.051,22.20397,1,8,1,0,0,0,0,0,0,0,0,0,0,0,3,92,3.4,0,85.2,450,0,0,0,1.098612,0,1,4.564348,6.160541,1,0,0,85.2,8.366614,1.098612,,0 +13,6,0,0,2,626979,0,4300.051,23.20397,1,8,1,48.21564,42.50949,0,0,539.4837,630.2088,1,0,0,3,0,3,92,3.4,0,85.2,450,0,0,0,1.098612,0,1,4.564348,6.160541,1,0,0,85.2,8.366614,1.098612,6.446051,1 +13,6,0,0,3,626979,0,4300.051,24.20397,1,8,1,15.57093,51.06574,0,0,0,66.63668,0,0,0,2,0,3,92,3.4,0,85.2,450,0,0,0,1.098612,0,1,4.564348,6.160541,1,0,0,85.2,8.366614,1.098612,4.199255,1 +13,6,0,0,1,626980,0,4300.051,6.491444,0,8,1,13.54211,0,0,0,0,13.54211,0,0,0,0,0,3,88.3,10.57626,.1442925,100,450,0,1,0,1.098612,0,1,4.564348,6.160541,1,0,0,100,8.366614,1.098612,2.605804,1 +13,6,0,0,2,626980,0,4300.051,7.491444,0,8,1,0,0,0,0,0,0,0,0,0,0,0,3,88.3,10.57626,.1442925,100,450,0,1,0,1.098612,0,1,4.564348,6.160541,1,0,0,100,8.366614,1.098612,,0 +13,6,0,0,3,626980,0,4300.051,8.491445,0,8,1,29.06574,.8442907,0,0,0,29.91003,0,0,0,0,0,3,88.3,10.57626,.1442925,100,450,0,1,0,1.098612,0,1,4.564348,6.160541,1,0,0,100,8.366614,1.098612,3.398194,1 +17,6,25,1,1,626995,0,7335.381,27.64956,1,6,1,12.76053,0,0,0,0,12.76053,0,0,0,1,0,3,79.8,20.7,0,37.5,692.3,692.3,0,0,1.098612,6.54002,0,3.258096,7.926314,1,0,0,37.5,8.900601,1.098612,2.546357,1 +17,6,25,1,2,626995,0,7335.381,28.64956,1,6,1,185.8779,0,0,0,0,185.8779,0,0,0,4,0,3,79.8,20.7,0,37.5,692.3,692.3,0,0,1.098612,6.54002,0,3.258096,7.926314,1,0,0,37.5,8.900601,1.098612,5.22509,1 +17,6,25,1,3,626995,0,7335.381,29.64956,1,6,1,18.11847,0,0,0,0,18.11847,0,0,0,1,0,3,79.8,20.7,0,37.5,692.3,692.3,0,0,1.098612,6.54002,0,3.258096,7.926314,1,0,0,37.5,8.900601,1.098612,2.896932,1 +17,6,25,1,1,626996,0,7335.381,8.29295,1,6,1,0,2.020417,0,0,0,2.020417,0,0,0,0,0,3,86.7,10.57626,0,70.4,692.3,692.3,1,1,1.098612,6.54002,0,3.258096,7.926314,0,0,0,70.4,8.900601,1.098612,.7033038,1 +17,6,25,1,2,626996,0,7335.381,9.29295,1,6,1,29.00763,0,0,0,0,29.00763,0,0,0,0,0,3,86.7,10.57626,0,70.4,692.3,692.3,1,1,1.098612,6.54002,0,3.258096,7.926314,0,0,0,70.4,8.900601,1.098612,3.367559,1 +17,6,25,1,3,626996,0,7335.381,10.29295,1,6,1,14.98258,0,0,0,0,14.98258,0,0,0,0,0,3,86.7,10.57626,0,70.4,692.3,692.3,1,1,1.098612,6.54002,0,3.258096,7.926314,0,0,0,70.4,8.900601,1.098612,2.706888,1 +17,6,25,1,1,626997,0,7335.381,44.35044,0,6,1,0,0,0,0,0,0,0,0,0,0,0,3,79.8,10.3,0,69.3,692.3,692.3,0,0,1.098612,6.54002,0,3.258096,7.926314,1,0,0,69.3,8.900601,1.098612,,0 +17,6,25,1,2,626997,0,7335.381,45.35044,0,6,1,0,0,0,0,0,0,0,0,0,0,0,3,79.8,10.3,0,69.3,692.3,692.3,0,0,1.098612,6.54002,0,3.258096,7.926314,1,0,0,69.3,8.900601,1.098612,,0 +17,6,25,1,3,626997,0,7335.381,46.35044,0,6,1,0,0,0,0,0,0,0,0,0,0,0,3,79.8,10.3,0,69.3,692.3,692.3,0,0,1.098612,6.54002,0,3.258096,7.926314,1,0,0,69.3,8.900601,1.098612,,0 +13,6,0,1,1,627004,1,6735.316,25.40452,1,11,1,48.66695,0,0,0,0,48.66695,0,0,0,0,0,4,70.7,6.9,0,88.6,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,88.6,8.815269,1.386294,3.885,1 +13,6,0,1,2,627004,1,6735.316,26.40452,1,11,1,27.7145,6.59833,0,0,0,34.31283,0,0,0,2,0,4,70.7,6.9,0,88.6,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,88.6,8.815269,1.386294,3.535519,1 +13,6,0,1,3,627004,1,6735.316,27.40452,1,11,1,12.45675,0,0,0,0,12.45675,0,0,0,0,0,4,70.7,6.9,0,88.6,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,88.6,8.815269,1.386294,2.522262,1 +13,6,0,1,1,627005,1,6735.316,3.214237,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,0,70.4,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,70.4,8.815269,1.386294,,0 +13,6,0,1,2,627005,1,6735.316,4.214237,0,11,1,11.00987,0,0,0,0,11.00987,0,0,0,0,0,4,77.40034,10.57626,0,70.4,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,70.4,8.815269,1.386294,2.398792,1 +13,6,0,1,3,627005,1,6735.316,5.214237,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,0,70.4,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,70.4,8.815269,1.386294,,0 +13,6,0,1,1,627006,1,6735.316,8.079397,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,76.7,10.57626,1,48.1,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,48.1,8.815269,1.386294,,0 +13,6,0,1,2,627006,1,6735.316,9.079397,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,76.7,10.57626,1,48.1,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,48.1,8.815269,1.386294,,0 +13,6,0,1,3,627006,1,6735.316,10.0794,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,76.7,10.57626,1,48.1,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,48.1,8.815269,1.386294,,0 +13,6,0,1,1,627007,1,6735.316,4.939083,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,60,10.57626,0,77.8,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,77.8,8.815269,1.386294,,0 +13,6,0,1,2,627007,1,6735.316,5.939083,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,60,10.57626,0,77.8,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,77.8,8.815269,1.386294,,0 +13,6,0,1,3,627007,1,6735.316,6.939083,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,60,10.57626,0,77.8,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,77.8,8.815269,1.386294,,0 +16,6,95,0,1,627010,1,289.2985,4.815879,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,77.40034,10.57626,0,70.4,99,286,1,1,1.791759,5.655992,0,4.564348,4.646413,0,0,0,70.4,5.67091,1.791759,,0 +16,6,95,0,2,627010,1,289.2985,5.815879,1,12,1,18.88931,0,0,0,0,18.88931,0,0,0,2,0,6,77.40034,10.57626,0,70.4,99,286,1,1,1.791759,5.655992,0,4.564348,4.646413,0,0,0,70.4,5.67091,1.791759,2.938596,1 +16,6,95,0,3,627010,1,289.2985,6.815879,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,77.40034,10.57626,0,70.4,99,286,1,1,1.791759,5.655992,0,4.564348,4.646413,0,0,0,70.4,5.67091,1.791759,,0 +16,6,95,0,1,627011,1,289.2985,12.59138,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,95,10.57626,.1442925,51.9,99,286,1,0,1.791759,5.655992,0,4.564348,4.646413,0,0,0,51.9,5.67091,1.791759,,0 +16,6,95,0,2,627011,1,289.2985,13.59138,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,95,10.57626,.1442925,51.9,99,286,1,0,1.791759,5.655992,0,4.564348,4.646413,0,0,0,51.9,5.67091,1.791759,,0 +16,6,95,0,3,627011,1,289.2985,14.59138,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,95,10.57626,.1442925,51.9,99,286,1,0,1.791759,5.655992,0,4.564348,4.646413,0,0,0,51.9,5.67091,1.791759,,0 +16,6,95,0,1,627012,1,289.2985,19.85216,0,9,1,0,0,0,0,0,0,0,0,0,0,0,6,94.7,0,0,72.6,99,286,0,0,1.791759,5.655992,0,4.564348,4.646413,0,0,0,72.6,5.67091,1.791759,,0 +16,6,95,0,2,627012,1,289.2985,20.85216,0,9,1,0,0,0,0,0,0,0,0,0,0,0,6,94.7,0,0,72.6,99,286,0,0,1.791759,5.655992,0,4.564348,4.646413,0,0,0,72.6,5.67091,1.791759,,0 +16,6,95,0,3,627012,1,289.2985,21.85216,0,9,1,0,0,0,0,0,0,0,0,0,0,0,6,94.7,0,0,72.6,99,286,0,0,1.791759,5.655992,0,4.564348,4.646413,0,0,0,72.6,5.67091,1.791759,,0 +16,6,95,0,1,627013,1,289.2985,22.71869,1,12,1,11.35886,0,0,0,0,11.35886,0,0,0,1,0,6,54.8,34.5,0,56.8,99,286,0,0,1.791759,5.655992,0,4.564348,4.646413,0,0,0,56.8,5.67091,1.791759,2.429998,1 +16,6,95,0,2,627013,1,289.2985,23.71869,1,12,1,56.66793,2.077824,0,0,386.4753,445.221,1,0,0,5,0,6,54.8,34.5,0,56.8,99,286,0,0,1.791759,5.655992,0,4.564348,4.646413,0,0,0,56.8,5.67091,1.791759,6.098571,1 +16,6,95,0,3,627013,1,289.2985,24.71869,1,12,1,27.78731,6.106347,0,0,0,33.89365,0,0,0,0,0,6,54.8,34.5,0,56.8,99,286,0,0,1.791759,5.655992,0,4.564348,4.646413,0,0,0,56.8,5.67091,1.791759,3.523228,1 +16,6,95,0,1,627014,1,289.2985,45.08693,1,12,1,36.60076,42.23811,0,0,0,78.83887,0,0,0,4,0,6,62.2,27.6,1,54.5,99,286,0,0,1.791759,5.655992,0,4.564348,4.646413,1,0,0,54.5,5.67091,1.791759,4.367406,1 +16,6,95,0,2,627014,1,289.2985,46.08693,1,12,1,26.44503,59.23687,24.93389,0,0,110.6158,0,0,0,2,0,6,62.2,27.6,1,54.5,99,286,0,0,1.791759,5.655992,0,4.564348,4.646413,1,0,0,54.5,5.67091,1.791759,4.706063,1 +16,6,95,0,3,627014,1,289.2985,47.08693,1,12,1,0,20.01715,0,0,0,20.01715,0,0,0,0,0,6,62.2,27.6,1,54.5,99,286,0,0,1.791759,5.655992,0,4.564348,4.646413,1,0,0,54.5,5.67091,1.791759,2.99659,1 +16,6,95,0,1,627015,1,289.2985,10.7269,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,96.7,10.57626,.1442925,70.4,99,286,1,1,1.791759,5.655992,0,4.564348,4.646413,0,0,0,70.4,5.67091,1.791759,,0 +16,6,95,0,2,627015,1,289.2985,11.7269,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,96.7,10.57626,.1442925,70.4,99,286,1,1,1.791759,5.655992,0,4.564348,4.646413,0,0,0,70.4,5.67091,1.791759,,0 +16,6,95,0,3,627015,1,289.2985,12.7269,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,96.7,10.57626,.1442925,70.4,99,286,1,1,1.791759,5.655992,0,4.564348,4.646413,0,0,0,70.4,5.67091,1.791759,,0 +13,6,0,1,1,627016,1,6735.316,11.39767,0,11,1,0,0,0,0,0,0,0,0,0,0,0,6,88.3,10.57626,0,77.8,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,77.8,8.815269,1.791759,,0 +13,6,0,1,2,627016,1,6735.316,12.39767,0,11,1,0,0,0,0,0,0,0,0,0,0,0,6,88.3,10.57626,0,77.8,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,77.8,8.815269,1.791759,,0 +13,6,0,1,3,627016,1,6735.316,13.39767,0,11,1,0,0,0,0,0,0,0,0,0,0,0,6,88.3,10.57626,0,77.8,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,77.8,8.815269,1.791759,,0 +13,6,0,1,4,627016,1,6735.316,14.39767,0,11,1,0,0,0,0,0,0,0,0,0,0,0,6,88.3,10.57626,0,77.8,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,77.8,8.815269,1.791759,,0 +13,6,0,1,5,627016,1,6735.316,15.39767,0,11,1,0,0,0,0,0,0,0,0,0,0,0,7,88.3,10.57626,0,77.8,450,450,1,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,77.8,8.815269,1.94591,,0 +13,6,0,1,1,627017,1,6735.316,35.0527,1,11,1,5.985037,3.890274,0,0,0,9.875312,0,0,0,1,0,6,55.3,3.4,0,56.8,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,56.8,8.815269,1.791759,2.290038,1 +13,6,0,1,2,627017,1,6735.316,36.0527,1,11,1,61.77962,0,0,0,0,61.77962,0,0,0,3,0,6,55.3,3.4,0,56.8,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,56.8,8.815269,1.791759,4.123574,1 +13,6,0,1,3,627017,1,6735.316,37.0527,1,11,1,0,0,0,0,0,0,0,0,0,0,0,6,55.3,3.4,0,56.8,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,56.8,8.815269,1.791759,,0 +13,6,0,1,4,627017,1,6735.316,38.0527,1,11,1,16.32498,0,0,0,1152.999,1169.324,1,0,0,2,0,6,55.3,3.4,0,56.8,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,56.8,8.815269,1.791759,7.064181,1 +13,6,0,1,5,627017,1,6735.316,39.0527,1,11,1,0,0,0,0,0,0,0,0,0,0,0,7,55.3,3.4,0,56.8,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,1,0,0,56.8,8.815269,1.94591,,0 +13,6,0,1,1,627018,1,6735.316,34.51609,0,9,1,0,0,0,0,0,0,0,0,0,0,0,6,72.2,3.4,0,68.2,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,68.2,8.815269,1.791759,,0 +13,6,0,1,2,627018,1,6735.316,35.51609,0,9,1,0,0,0,0,0,0,0,0,0,0,0,6,72.2,3.4,0,68.2,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,68.2,8.815269,1.791759,,0 +13,6,0,1,3,627018,1,6735.316,36.51609,0,9,1,0,0,0,0,0,0,0,0,0,0,0,6,72.2,3.4,0,68.2,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,68.2,8.815269,1.791759,,0 +13,6,0,1,4,627018,1,6735.316,37.51609,0,9,1,0,0,0,0,0,0,0,0,0,0,0,6,72.2,3.4,0,68.2,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,68.2,8.815269,1.791759,,0 +13,6,0,1,5,627018,1,6735.316,38.51609,0,9,1,0,0,0,0,0,0,0,0,0,0,0,7,72.2,3.4,0,68.2,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,1,0,0,68.2,8.815269,1.94591,,0 +13,6,0,1,1,627019,1,6735.316,1.998631,0,11,1,0,0,0,0,0,0,0,0,0,0,0,6,77.40034,10.57626,0,70.4,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,70.4,8.815269,1.791759,,0 +13,6,0,1,2,627019,1,6735.316,2.998631,0,11,1,0,0,0,0,0,0,0,0,0,0,0,6,77.40034,10.57626,0,70.4,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,70.4,8.815269,1.791759,,0 +13,6,0,1,3,627019,1,6735.316,3.998631,0,11,1,16.92764,4.020313,0,0,0,20.94795,0,0,0,1,0,6,77.40034,10.57626,0,70.4,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,70.4,8.815269,1.791759,3.042041,1 +13,6,0,1,4,627019,1,6735.316,4.998631,0,11,1,0,0,0,0,0,0,0,0,0,0,0,6,77.40034,10.57626,0,70.4,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,70.4,8.815269,1.791759,,0 +13,6,0,1,5,627019,1,6735.316,5.998631,0,11,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,0,70.4,450,450,1,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,70.4,8.815269,1.94591,,0 +13,6,0,1,1,627020,1,6735.316,13.54962,1,11,1,9.975062,0,0,0,0,9.975062,0,0,0,0,1,6,91.7,10.57626,0,74.1,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,74.1,8.815269,1.791759,2.300088,1 +13,6,0,1,2,627020,1,6735.316,14.54962,1,11,1,0,0,0,0,0,0,0,0,0,0,0,6,91.7,10.57626,0,74.1,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,74.1,8.815269,1.791759,,0 +13,6,0,1,3,627020,1,6735.316,15.54962,1,11,1,0,0,0,0,0,0,0,0,0,0,0,6,91.7,10.57626,0,74.1,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,74.1,8.815269,1.791759,,0 +13,6,0,1,4,627020,1,6735.316,16.54962,1,11,1,0,0,0,0,0,0,0,0,0,0,0,6,91.7,10.57626,0,74.1,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,74.1,8.815269,1.791759,,0 +13,6,0,1,5,627020,1,6735.316,17.54962,1,11,1,0,0,0,0,0,0,0,0,0,0,0,7,91.7,10.57626,0,74.1,450,450,1,1,1.94591,6.109248,1,4.564348,6.160541,0,0,0,74.1,8.815269,1.94591,,0 +13,6,0,1,1,627021,1,6735.316,14.77071,0,11,1,0,0,0,0,0,0,0,0,0,0,0,6,70.7,3.4,0,59.5,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,59.5,8.815269,1.791759,,0 +13,6,0,1,2,627021,1,6735.316,15.77071,0,11,1,0,0,0,0,0,0,0,0,0,0,0,6,70.7,3.4,0,59.5,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,59.5,8.815269,1.791759,,0 +13,6,0,1,3,627021,1,6735.316,16.7707,0,11,1,0,0,0,0,0,0,0,0,0,0,0,6,70.7,3.4,0,59.5,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,59.5,8.815269,1.791759,,0 +13,6,0,1,4,627021,1,6735.316,17.7707,0,11,1,0,0,0,0,0,0,0,0,0,0,0,6,70.7,3.4,0,59.5,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,59.5,8.815269,1.791759,,0 +13,6,0,1,5,627021,1,6735.316,18.7707,0,11,1,0,0,0,0,0,0,0,0,0,0,0,7,70.7,3.4,0,59.5,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,59.5,8.815269,1.94591,,0 +13,6,0,0,1,627045,0,2840.246,51.80288,0,6,1,23.97981,10.09676,0,0,0,34.07657,0,0,0,0,0,3,84.6,34.5,1,25,450,0,0,0,1.098612,0,1,4.564348,6.160541,0,0,1,25,7.951998,1.098612,3.52861,1 +13,6,0,0,2,627045,0,2840.246,52.80288,0,6,1,61.57915,0,0,0,0,61.57915,0,0,0,0,0,3,84.6,34.5,1,25,450,0,0,0,1.098612,0,1,4.564348,6.160541,0,0,1,25,7.951998,1.098612,4.120323,1 +13,6,0,0,3,627045,0,2840.246,53.80288,0,6,1,52.14408,13.60206,31.21784,0,544.7684,641.7324,1,1,0,1,0,3,84.6,34.5,1,25,450,0,0,0,1.098612,0,1,4.564348,6.160541,0,0,1,25,7.951998,1.098612,6.464171,1 +13,6,0,0,1,627046,0,2840.246,18.74333,0,8,1,11.35886,5.027345,0,0,0,16.3862,0,0,0,0,0,3,58.5,3.4,0,70.5,450,0,0,0,1.098612,0,1,4.564348,6.160541,1,0,0,70.5,7.951998,1.098612,2.79644,1 +13,6,0,0,2,627046,0,2840.246,19.74333,0,8,1,66.49036,0,0,0,0,66.49036,0,0,1,0,0,3,58.5,3.4,0,70.5,450,0,0,0,1.098612,0,1,4.564348,6.160541,1,0,0,70.5,7.951998,1.098612,4.197057,1 +13,6,0,0,3,627046,0,2840.246,20.74333,0,8,1,0,0,0,0,0,0,0,0,0,0,0,3,58.5,3.4,0,70.5,450,0,0,0,1.098612,0,1,4.564348,6.160541,1,0,0,70.5,7.951998,1.098612,,0 +13,6,0,0,1,627047,0,2840.246,42.21766,1,6,1,14.72444,26.39462,0,0,0,41.11906,0,0,0,1,0,3,72.3,6.9,1,31.8,450,0,0,0,1.098612,0,1,4.564348,6.160541,0,0,1,31.8,7.951998,1.098612,3.716472,1 +13,6,0,0,2,627047,0,2840.246,43.21766,1,6,1,11.33358,31.14847,0,0,843.2188,885.7008,2,0,0,2,0,3,72.3,6.9,1,31.8,450,0,0,0,1.098612,0,1,4.564348,6.160541,0,0,1,31.8,7.951998,1.098612,6.786379,1 +13,6,0,0,3,627047,0,2840.246,44.21766,1,6,1,64.494,8.384219,35.67753,0,672.3842,780.9399,2,1,0,1,0,3,72.3,6.9,1,31.8,450,0,0,0,1.098612,0,1,4.564348,6.160541,0,0,1,31.8,7.951998,1.098612,6.660498,1 +16,6,95,0,1,627109,0,3156.17,22.32444,1,13,1,43.58866,0,0,0,0,43.58866,0,0,0,5,0,1,69.7,6.9,0,76.1,639.6,639.6,0,0,0,6.460843,0,4.564348,6.512136,1,0,0,76.1,8.057431,0,3.774797,1 +16,6,95,0,2,627109,0,3156.17,23.32444,1,13,1,0,0,0,0,0,0,0,0,0,0,0,1,69.7,6.9,0,76.1,639.6,639.6,0,0,0,6.460843,0,4.564348,6.512136,1,0,0,76.1,8.057431,0,,0 +16,6,95,0,3,627109,0,3156.17,24.32444,1,13,1,0,0,0,0,0,0,0,0,0,0,0,1,69.7,6.9,0,76.1,639.6,639.6,0,0,0,6.460843,0,4.564348,6.512136,1,0,0,76.1,8.057431,0,,0 +10,6,50,0,1,627110,0,1026.626,24.6078,1,14,1,0,0,0,0,0,0,0,0,0,0,0,1,79.8,3.4,0,84.1,640.5,640.5,0,0,0,6.462249,0,3.931826,7.155396,0,0,0,84.1,6.935006,0,,0 +10,6,50,0,2,627110,0,1026.626,25.6078,1,14,1,6.800151,6.346807,0,0,0,13.14696,0,0,0,1,0,1,79.8,3.4,0,84.1,640.5,640.5,0,0,0,6.462249,0,3.931826,7.155396,0,0,0,84.1,6.935006,0,2.57619,1 +10,6,50,0,3,627110,0,1026.626,26.6078,1,14,1,0,0,0,0,0,0,0,0,0,0,0,1,79.8,3.4,0,84.1,640.5,640.5,0,0,0,6.462249,0,3.931826,7.155396,0,0,0,84.1,6.935006,0,,0 +11,6,0,1,1,627145,0,4485.044,51.93155,1,11,1,405.8474,139.5292,45.58969,0,0,590.9663,0,0,0,40,1,2,77.1,17.2,0,67,0,203.44,0,0,.6931472,5.315371,0,0,0,1,0,0,67,8.408727,.6931472,6.381759,1 +11,6,0,1,2,627145,0,4485.044,52.93155,1,11,1,150.0688,241.7393,0,0,0,391.8082,0,0,0,12,0,2,77.1,17.2,0,67,0,203.44,0,0,.6931472,5.315371,0,0,0,1,0,0,67,8.408727,.6931472,5.970772,1 +11,6,0,1,3,627145,0,4485.044,53.93155,1,11,1,117.7955,215.7636,40.38704,0,0,373.9461,0,0,0,9,1,2,77.1,17.2,0,67,0,203.44,0,0,.6931472,5.315371,0,0,0,1,0,0,67,8.408727,.6931472,5.924112,1 +11,6,0,1,4,627145,0,4485.044,54.93155,1,11,1,436.7208,118.1035,0,0,0,554.8243,0,0,0,9,48,2,77.1,17.2,0,67,0,203.44,0,0,.6931472,5.315371,0,0,0,1,0,0,67,8.408727,.6931472,6.318652,1 +11,6,0,1,5,627145,0,4485.044,55.93155,1,11,1,132.7616,237.6089,42.06861,0,0,412.4391,0,0,0,3,10,2,77.1,17.2,0,67,0,203.44,0,0,.6931472,5.315371,0,0,0,1,0,0,67,8.408727,.6931472,6.022089,1 +11,6,0,1,1,627146,0,4485.044,18.33539,0,5,1,23.29039,0,0,0,0,23.29039,0,0,0,3,0,2,84.6,6.9,0,88.1,0,203.44,0,0,.6931472,5.315371,0,0,0,0,0,0,88.1,8.408727,.6931472,3.148041,1 +11,6,0,1,2,627146,0,4485.044,19.33539,0,5,1,0,0,0,0,0,0,0,0,0,0,0,2,84.6,6.9,0,88.1,0,203.44,0,0,.6931472,5.315371,0,0,0,0,0,0,88.1,8.408727,.6931472,,0 +11,6,0,1,3,627146,0,4485.044,20.33539,0,5,1,0,2.419016,0,0,0,2.419016,0,0,0,0,0,2,84.6,6.9,0,88.1,0,203.44,0,0,.6931472,5.315371,0,0,0,0,0,0,88.1,8.408727,.6931472,.8833607,1 +11,6,0,1,4,627146,0,4485.044,21.33539,0,5,1,162.0703,6.460144,7.555724,0,0,176.0861,0,0,0,3,8,2,84.6,6.9,0,88.1,0,203.44,0,0,.6931472,5.315371,0,0,0,0,0,0,88.1,8.408727,.6931472,5.170973,1 +11,6,0,1,5,627146,0,4485.044,22.33539,0,5,1,220.5832,15.46484,0,0,616.1235,852.1715,2,0,0,6,0,2,84.6,6.9,0,88.1,0,203.44,0,0,.6931472,5.315371,0,0,0,0,0,0,88.1,8.408727,.6931472,6.747788,1 +11,6,0,1,1,627151,0,5334.311,17.52225,0,10,1,18.67322,8.152334,0,0,0,26.82555,0,0,0,3,0,6,66,10.3,0,65.9,0,446.16,1,0,1.791759,6.100677,0,0,0,1,0,0,65.9,8.582103,1.791759,3.289355,1 +11,6,0,1,2,627151,0,5334.311,18.52225,0,10,1,69.73564,18.29991,115.3145,0,2309.48,2512.831,1,0,0,2,0,6,66,10.3,0,65.9,0,446.16,0,0,1.791759,6.100677,0,0,0,1,0,0,65.9,8.582103,1.791759,7.829165,1 +11,6,0,1,3,627151,0,5334.311,19.52225,0,10,1,8.336807,19.23718,0,0,0,27.57399,0,0,0,1,0,6,66,10.3,0,65.9,0,446.16,0,0,1.791759,6.100677,0,0,0,1,0,0,65.9,8.582103,1.791759,3.316873,1 +11,6,0,1,4,627151,0,5334.311,20.52225,0,10,1,62.64066,21.66166,0,0,0,84.30232,0,0,0,1,0,6,66,10.3,0,65.9,0,446.16,0,0,1.791759,6.100677,0,0,0,1,0,0,65.9,8.582103,1.791759,4.43441,1 +11,6,0,1,5,627151,0,5334.311,21.52225,0,10,1,0,8.778755,0,0,0,8.778755,0,0,0,0,0,6,66,10.3,0,65.9,0,446.16,0,0,1.791759,6.100677,0,0,0,1,0,0,65.9,8.582103,1.791759,2.172335,1 +11,6,0,0,1,627152,0,5334.311,19.23614,0,8,1,34.39803,8.511057,0,0,0,42.90909,0,0,0,2,0,6,55.9,6.9,0,58,0,446.16,0,0,1.791759,6.100677,0,0,0,1,0,0,58,8.582103,1.791759,3.759084,1 +11,6,0,0,2,627152,0,5334.311,20.23614,0,8,1,11.39471,5.355515,0,0,0,16.75023,0,0,0,0,0,6,55.9,6.9,0,58,0,446.16,0,0,1.791759,6.100677,0,0,0,1,0,0,58,8.582103,1.791759,2.818412,1 +11,6,0,0,3,627152,0,5334.311,21.23614,0,8,1,14.17257,3.334723,0,0,0,17.5073,0,0,0,0,0,6,55.9,6.9,0,58,0,446.16,0,0,1.791759,6.100677,0,0,0,1,0,0,58,8.582103,1.791759,2.862618,1 +11,6,0,0,4,627152,0,5334.311,22.23614,0,8,1,0,0,0,0,0,0,0,0,0,0,0,6,55.9,6.9,0,58,0,446.16,0,0,1.791759,6.100677,0,0,0,1,0,0,58,8.582103,1.791759,,0 +11,6,0,0,5,627152,0,5334.311,23.23614,0,8,1,26.04871,2.317321,0,0,0,28.36604,0,0,0,1,0,6,55.9,6.9,0,58,0,446.16,0,0,1.791759,6.100677,0,0,0,1,0,0,58,8.582103,1.791759,3.345192,1 +11,6,0,1,1,627153,0,5334.311,13.00753,1,10,1,0,0,0,0,0,0,0,0,0,0,0,6,60,10.57626,0,55.6,0,446.16,1,1,1.791759,6.100677,0,0,0,1,0,0,55.6,8.582103,1.791759,,0 +11,6,0,1,2,627153,0,5334.311,14.00753,1,10,1,0,0,0,0,0,0,0,0,0,0,0,6,60,10.57626,0,55.6,0,446.16,1,1,1.791759,6.100677,0,0,0,1,0,0,55.6,8.582103,1.791759,,0 +11,6,0,1,3,627153,0,5334.311,15.00753,1,10,1,5.002084,2.501042,0,0,0,7.503126,0,0,0,1,0,6,60,10.57626,0,55.6,0,446.16,1,1,1.791759,6.100677,0,0,0,1,0,0,55.6,8.582103,1.791759,2.01532,1 +11,6,0,1,4,627153,0,5334.311,16.00753,1,10,1,10.87772,4.444861,0,0,0,15.32258,0,0,0,0,0,6,60,10.57626,0,55.6,0,446.16,1,1,1.791759,6.100677,0,0,0,1,0,0,55.6,8.582103,1.791759,2.729328,1 +11,6,0,1,5,627153,0,5334.311,17.00753,1,10,1,27.0636,0,0,0,0,27.0636,0,0,0,2,0,6,60,10.57626,0,55.6,0,446.16,1,1,1.791759,6.100677,0,0,0,1,0,0,55.6,8.582103,1.791759,3.29819,1 +11,6,0,1,1,627154,0,5334.311,40.23272,1,10,1,20.63882,0,45.20885,0,0,65.84766,0,0,0,1,1,6,63.8,17.2,0,53.4,0,446.16,0,0,1.791759,6.100677,0,0,0,1,0,0,53.4,8.582103,1.791759,4.187344,1 +11,6,0,1,2,627154,0,5334.311,41.23272,1,10,1,40.56518,38.96992,0,0,0,79.5351,0,0,0,5,0,6,63.8,17.2,0,53.4,0,446.16,0,0,1.791759,6.100677,0,0,0,1,0,0,53.4,8.582103,1.791759,4.376198,1 +11,6,0,1,3,627154,0,5334.311,42.23272,1,10,1,6.252605,55.23135,0,0,0,61.48395,0,0,0,1,0,6,63.8,17.2,0,53.4,0,446.16,0,0,1.791759,6.100677,0,0,0,1,0,0,53.4,8.582103,1.791759,4.118776,1 +11,6,0,1,4,627154,0,5334.311,43.23272,1,10,1,39.75994,26.25657,0,0,0,66.0165,0,0,0,1,0,6,63.8,17.2,0,53.4,0,446.16,0,0,1.791759,6.100677,0,0,0,1,0,0,53.4,8.582103,1.791759,4.189905,1 +11,6,0,1,5,627154,0,5334.311,44.23272,1,10,1,28.75507,63.21042,25.37212,0,406.9689,524.3065,1,0,0,2,0,6,63.8,17.2,0,53.4,0,446.16,0,0,1.791759,6.100677,0,0,0,1,0,0,53.4,8.582103,1.791759,6.262076,1 +11,6,0,1,1,627155,0,5334.311,41.21834,0,8,1,9.82801,0,45.20885,0,0,55.03685,0,0,0,0,1,6,64.4,20.7,0,47.7,0,446.16,0,0,1.791759,6.100677,0,0,0,0,1,0,47.7,8.582103,1.791759,4.008003,1 +11,6,0,1,2,627155,0,5334.311,42.21834,0,8,1,27.8031,60.02735,0,0,0,87.83044,0,0,0,5,0,6,64.4,20.7,0,47.7,0,446.16,0,0,1.791759,6.100677,0,0,0,0,1,0,47.7,8.582103,1.791759,4.475408,1 +11,6,0,1,3,627155,0,5334.311,43.21834,0,8,1,6.252605,56.33597,0,0,0,62.58858,0,0,0,1,0,6,64.4,20.7,0,47.7,0,446.16,0,0,1.791759,6.100677,0,0,0,0,1,0,47.7,8.582103,1.791759,4.136583,1 +11,6,0,1,4,627155,0,5334.311,44.21834,0,8,1,25.13128,33.02701,39.75994,0,0,97.91823,0,0,0,1,0,6,64.4,20.7,0,47.7,0,446.16,0,0,1.791759,6.100677,0,0,0,0,1,0,47.7,8.582103,1.791759,4.584133,1 +11,6,0,1,5,627155,0,5334.311,45.21834,0,8,1,8.11908,27.33424,0,0,0,35.45332,0,0,0,1,0,6,64.4,20.7,0,47.7,0,446.16,0,0,1.791759,6.100677,0,0,0,0,1,0,47.7,8.582103,1.791759,3.568217,1 +11,6,0,1,1,627156,0,5334.311,15.97262,1,10,1,28.00983,5.847666,31.94103,0,0,65.79852,0,0,0,2,1,6,80.9,6.9,0,69.3,0,446.16,1,1,1.791759,6.100677,0,0,0,1,0,0,69.3,8.582103,1.791759,4.186597,1 +11,6,0,1,2,627156,0,5334.311,16.97262,1,10,1,36.46308,16.18049,0,0,0,52.64357,0,0,0,2,0,6,80.9,6.9,0,69.3,0,446.16,1,1,1.791759,6.100677,0,0,0,1,0,0,69.3,8.582103,1.791759,3.963544,1 +11,6,0,1,3,627156,0,5334.311,17.97262,1,10,1,71.69654,30.42935,0,0,0,102.1259,0,0,0,5,0,6,80.9,6.9,0,69.3,0,446.16,1,1,1.791759,6.100677,0,0,0,1,0,0,69.3,8.582103,1.791759,4.626206,1 +11,6,0,1,4,627156,0,5334.311,18.97262,1,10,1,16.50413,27.64441,24.006,0,0,68.15454,0,0,0,2,0,6,80.9,6.9,0,69.3,0,446.16,0,0,1.791759,6.100677,0,0,0,1,0,0,69.3,8.582103,1.791759,4.221778,1 +11,6,0,1,5,627156,0,5334.311,19.97262,1,10,1,95.73748,66.1705,0,0,0,161.908,0,0,0,4,0,6,80.9,6.9,0,69.3,0,446.16,0,0,1.791759,6.100677,0,0,0,1,0,0,69.3,8.582103,1.791759,5.087028,1 +5,6,25,0,1,627207,0,8730.671,29.94114,0,10,1,24.8212,0,0,0,0,24.8212,0,0,0,2,0,4,82.4,6.9,0,71.6,670,670,0,0,1.386294,6.507277,0,3.258096,7.893572,0,1,0,71.6,9.074712,1.386294,3.211698,1 +5,6,25,0,2,627207,0,8730.671,30.94114,0,10,1,127.3139,0,0,0,0,127.3139,0,0,0,1,0,4,82.4,6.9,0,71.6,670,670,0,0,1.386294,6.507277,0,3.258096,7.893572,0,1,0,71.6,9.074712,1.386294,4.846656,1 +5,6,25,0,3,627207,0,8730.671,31.94114,0,10,1,13.37907,0,0,0,0,13.37907,0,0,0,0,0,5,82.4,6.9,0,71.6,670,670,0,0,1.609438,6.507277,0,3.258096,7.893572,0,1,0,71.6,9.074712,1.609438,2.593692,1 +5,6,25,0,1,627208,0,8730.671,7.394935,0,8,1,0,0,0,0,0,0,0,0,0,0,0,4,95,10.57626,.1442925,77.8,670,670,1,0,1.386294,6.507277,0,3.258096,7.893572,1,0,0,77.8,9.074712,1.386294,,0 +5,6,25,0,2,627208,0,8730.671,8.394935,0,8,1,44.95655,0,0,0,0,44.95655,0,0,0,2,0,4,95,10.57626,.1442925,77.8,670,670,1,0,1.386294,6.507277,0,3.258096,7.893572,1,0,0,77.8,9.074712,1.386294,3.805696,1 +5,6,25,0,3,627208,0,8730.671,9.394935,0,8,1,59.3482,0,0,0,0,59.3482,0,0,0,3,0,5,95,10.57626,.1442925,77.8,670,670,1,0,1.609438,6.507277,0,3.258096,7.893572,1,0,0,77.8,9.074712,1.609438,4.083422,1 +5,6,25,0,1,627209,0,8730.671,9.886379,1,8,1,14.72444,0,0,0,0,14.72444,0,0,0,1,0,4,93.3,10.57626,.1442925,88.9,670,670,1,1,1.386294,6.507277,0,3.258096,7.893572,1,0,0,88.9,9.074712,1.386294,2.689509,1 +5,6,25,0,2,627209,0,8730.671,10.88638,1,8,1,0,0,0,0,0,0,0,0,0,0,0,4,93.3,10.57626,.1442925,88.9,670,670,1,1,1.386294,6.507277,0,3.258096,7.893572,1,0,0,88.9,9.074712,1.386294,,0 +5,6,25,0,3,627209,0,8730.671,11.88638,1,8,1,9.948542,4.459691,0,0,0,14.40823,0,0,0,2,0,5,93.3,10.57626,.1442925,88.9,670,670,1,1,1.609438,6.507277,0,3.258096,7.893572,1,0,0,88.9,9.074712,1.609438,2.6678,1 +5,6,25,0,1,627210,0,8730.671,27.21424,1,8,1,61.00126,5.04838,0,0,0,66.04964,0,0,0,2,0,4,86.7,10.3,0,73.9,670,670,0,0,1.386294,6.507277,0,3.258096,7.893572,0,1,0,73.9,9.074712,1.386294,4.190407,1 +5,6,25,0,2,627210,0,8730.671,28.21424,1,8,1,10.57801,3.966755,0,0,750.6611,765.2059,2,0,0,0,0,4,86.7,10.3,0,73.9,670,670,0,0,1.386294,6.507277,0,3.258096,7.893572,0,1,0,73.9,9.074712,1.386294,6.640145,1 +5,6,25,0,3,627210,0,8730.671,29.21424,1,8,1,20.24014,1.715266,0,0,381.8525,403.8079,1,0,0,1,0,5,86.7,10.3,0,73.9,670,670,0,0,1.609438,6.507277,0,3.258096,7.893572,0,1,0,73.9,9.074712,1.609438,6.000939,1 +18,6,25,1,1,627224,0,1896.569,19.70705,1,10,1,72.36564,46.48328,31.31612,0,0,150.165,0,0,0,9,0,5,67,3.4,0,64.8,173.5,173.5,0,0,1.609438,5.156178,0,3.258096,6.542472,1,0,0,64.8,7.548329,1.609438,5.011735,1 +18,6,25,1,2,627224,0,1896.569,20.70705,1,10,1,59.98481,56.92103,0,0,0,116.9058,0,0,0,5,0,5,67,3.4,0,64.8,173.5,173.5,0,0,1.609438,5.156178,0,3.258096,6.542472,1,0,0,64.8,7.548329,1.609438,4.761369,1 +18,6,25,1,3,627224,0,1896.569,21.70705,1,10,1,43.94464,52.23529,12.45675,0,750.519,859.1557,1,0,0,4,0,6,67,3.4,0,64.8,173.5,173.5,0,0,1.791759,5.156178,0,3.258096,6.542472,1,0,0,64.8,7.548329,1.791759,6.75595,1 +18,6,25,1,1,627226,0,1896.569,17.02122,0,12,1,39.35675,2.115954,0,0,0,41.47271,0,0,0,0,0,5,77.7,6.9,0,97.7,173.5,173.5,1,0,1.609438,5.156178,0,3.258096,6.542472,0,0,0,97.7,7.548329,1.609438,3.725035,1 +18,6,25,1,2,627226,0,1896.569,18.02122,0,12,1,43.65983,4.396355,0,0,0,48.05619,0,0,0,0,0,5,77.7,6.9,0,97.7,173.5,173.5,0,0,1.609438,5.156178,0,3.258096,6.542472,0,0,0,97.7,7.548329,1.609438,3.872371,1 +18,6,25,1,3,627226,0,1896.569,19.02122,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,77.7,6.9,0,97.7,173.5,173.5,0,0,1.791759,5.156178,0,3.258096,6.542472,0,0,0,97.7,7.548329,1.791759,,0 +18,6,25,1,1,627227,0,1896.569,44.51745,1,12,1,24.12188,84.68049,0,0,0,108.8024,0,0,0,3,0,5,45.2,24.1,1,47.7,173.5,173.5,0,0,1.609438,5.156178,0,3.258096,6.542472,0,1,0,47.7,7.548329,1.609438,4.689533,1 +18,6,25,1,2,627227,0,1896.569,45.51745,1,12,1,28.4738,110.5277,0,0,0,139.0015,0,0,0,4,0,5,45.2,24.1,1,47.7,173.5,173.5,0,0,1.609438,5.156178,0,3.258096,6.542472,0,1,0,47.7,7.548329,1.609438,4.934485,1 +18,6,25,1,3,627227,0,1896.569,46.51745,1,12,1,53.2872,60.91003,35.29412,0,498.9619,648.4533,1,0,0,5,0,6,45.2,24.1,1,47.7,173.5,173.5,0,0,1.791759,5.156178,0,3.258096,6.542472,0,1,0,47.7,7.548329,1.791759,6.47459,1 +18,6,25,1,1,627228,0,1896.569,18.42574,1,9,1,37.66399,39.91536,0,0,0,77.57935,0,0,0,4,0,5,31.9,6.9,0,73.9,173.5,173.5,0,0,1.609438,5.156178,0,3.258096,6.542472,1,0,0,73.9,7.548329,1.609438,4.351301,1 +18,6,25,1,2,627228,0,1896.569,19.42574,1,9,1,18.98254,10.44039,0,0,609.0699,638.4928,1,0,0,0,0,5,31.9,6.9,0,73.9,173.5,173.5,0,0,1.609438,5.156178,0,3.258096,6.542472,1,0,0,73.9,7.548329,1.609438,6.45911,1 +18,6,25,1,3,627228,0,1896.569,20.42574,1,9,1,6.228374,22.97578,0,0,0,29.20415,0,0,0,1,0,6,31.9,6.9,0,73.9,173.5,173.5,0,0,1.791759,5.156178,0,3.258096,6.542472,1,0,0,73.9,7.548329,1.791759,3.374311,1 +18,6,25,1,1,627229,0,1896.569,50.48323,0,16,1,9.310199,137.7148,0,0,0,147.025,0,0,0,1,0,5,91,17.2,1,75,173.5,173.5,0,0,1.609438,5.156178,0,3.258096,6.542472,0,0,0,75,7.548329,1.609438,4.990602,1 +18,6,25,1,2,627229,0,1896.569,51.48323,0,16,1,5.31511,133.6447,0,0,0,138.9598,0,0,0,1,0,5,91,17.2,1,75,173.5,173.5,0,0,1.609438,5.156178,0,3.258096,6.542472,0,0,0,75,7.548329,1.609438,4.934185,1 +18,6,25,1,3,627229,0,1896.569,52.48323,0,16,1,21.79931,143.474,39.66436,0,0,204.9377,0,0,0,2,0,6,91,17.2,1,75,173.5,173.5,0,0,1.791759,5.156178,0,3.258096,6.542472,0,0,0,75,7.548329,1.791759,5.322706,1 +16,6,95,0,1,627239,1,1725.55,26.29706,0,5,1,0,0,0,0,0,0,0,0,0,0,0,3,54.3,6.9,0,57.5,756,0,0,0,1.098612,0,0,4.564348,6.679335,1,0,0,57.5,7.453881,1.098612,,0 +16,6,95,0,2,627239,1,1725.55,27.29706,0,5,1,0,0,0,0,0,0,0,0,0,0,0,4,54.3,6.9,0,57.5,756,0,0,0,1.386294,0,0,4.564348,6.679335,1,0,0,57.5,7.453881,1.386294,,0 +16,6,95,0,3,627239,1,1725.55,28.29706,0,5,1,0,0,0,0,0,0,0,0,0,0,0,4,54.3,6.9,0,57.5,756,0,0,0,1.386294,0,0,4.564348,6.679335,1,0,0,57.5,7.453881,1.386294,,0 +16,6,95,0,1,627240,1,1725.55,24.30664,1,12,1,0,0,0,0,295.3872,295.3872,1,0,0,0,0,3,38.8,17.2,0,59.1,756,0,0,0,1.098612,0,0,4.564348,6.679335,0,1,0,59.1,7.453881,1.098612,5.688287,1 +16,6,95,0,2,627240,1,1725.55,25.30664,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,38.8,17.2,0,59.1,756,0,0,0,1.386294,0,0,4.564348,6.679335,0,1,0,59.1,7.453881,1.386294,,0 +16,6,95,0,3,627240,1,1725.55,26.30664,1,12,1,0,1.449827,0,0,0,1.449827,0,0,0,0,0,4,38.8,17.2,0,59.1,756,0,0,0,1.386294,0,0,4.564348,6.679335,0,1,0,59.1,7.453881,1.386294,.3714442,1 +16,6,95,0,1,627241,1,1725.55,3.195072,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,77.40034,10.57626,0,64.8,756,0,1,1,1.098612,0,0,4.564348,6.679335,0,0,0,64.8,7.453881,1.098612,,0 +16,6,95,0,2,627241,1,1725.55,4.195072,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,0,64.8,756,0,1,1,1.386294,0,0,4.564348,6.679335,0,0,0,64.8,7.453881,1.386294,,0 +16,6,95,0,3,627241,1,1725.55,5.195072,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,0,64.8,756,0,1,1,1.386294,0,0,4.564348,6.679335,0,0,0,64.8,7.453881,1.386294,,0 +15,6,95,1,1,627247,1,9989.247,34.69405,0,12,1,222.4585,4.147171,0,0,0,226.6057,0,0,0,2,28,4,65.4,3.4,0,90.9,350,350,0,0,1.386294,5.857933,0,4.564348,5.909226,1,0,0,90.9,9.209365,1.386294,5.423212,1 +15,6,95,1,1,627248,1,9989.247,11.75086,1,12,1,9.783071,0,0,0,0,9.783071,0,0,0,1,0,4,68.3,10.57626,1,51.9,350,350,1,1,1.386294,5.857933,0,4.564348,5.909226,1,0,0,51.9,9.209365,1.386294,2.280653,1 +15,6,95,1,1,627249,1,9989.247,3.986311,0,12,1,12.76053,6.061251,0,0,0,18.82178,0,0,0,2,0,4,77.40034,10.57626,0,70.4,350,350,1,0,1.386294,5.857933,0,4.564348,5.909226,1,0,0,70.4,9.209365,1.386294,2.935014,1 +15,6,95,1,1,627250,1,9989.247,33.21287,1,12,1,45.51255,8.430455,0,0,0,53.943,0,0,0,3,0,4,64.9,10.3,1,69.3,350,350,0,0,1.386294,5.857933,0,4.564348,5.909226,1,0,0,69.3,9.209365,1.386294,3.987928,1 +13,6,0,0,1,627265,1,6735.316,22.54073,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,70.2,0,0,95.5,450,150,0,0,1.098612,5.010635,1,4.564348,6.160541,0,0,0,95.5,8.815269,1.098612,,0 +13,6,0,0,2,627265,1,6735.316,23.54073,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,70.2,0,0,95.5,450,150,0,0,1.098612,5.010635,1,4.564348,6.160541,0,0,0,95.5,8.815269,1.098612,,0 +13,6,0,0,3,627265,1,6735.316,24.54073,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,70.2,0,0,95.5,450,150,0,0,1.098612,5.010635,1,4.564348,6.160541,0,0,0,95.5,8.815269,1.098612,,0 +13,6,0,0,1,627266,1,213.5177,16.33402,0,10,1,0,0,0,0,0,0,0,0,0,0,0,7,78.2,0,0,82.1,450,450,1,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,82.1,5.368392,1.94591,,0 +13,6,0,0,2,627266,1,213.5177,17.33402,0,10,1,0,0,0,0,0,0,0,0,0,0,0,8,78.2,0,0,82.1,450,450,1,0,2.079442,6.109248,1,4.564348,6.160541,0,0,0,82.1,5.368392,2.079442,,0 +13,6,0,0,3,627266,1,213.5177,18.33402,0,10,1,0,0,0,0,0,0,0,0,0,0,0,8,78.2,0,0,82.1,450,450,0,0,2.079442,6.109248,1,4.564348,6.160541,0,0,0,82.1,5.368392,2.079442,,0 +13,6,0,0,1,627267,1,213.5177,43.57837,0,10,1,0,0,0,0,0,0,0,0,0,0,0,7,89.9,10.3,0,84.1,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,1,0,0,84.1,5.368392,1.94591,,0 +13,6,0,0,2,627267,1,213.5177,44.57837,0,10,1,0,0,0,0,0,0,0,0,0,0,0,8,89.9,10.3,0,84.1,450,450,0,0,2.079442,6.109248,1,4.564348,6.160541,1,0,0,84.1,5.368392,2.079442,,0 +13,6,0,0,3,627267,1,213.5177,45.57837,0,10,1,0,0,0,0,0,0,0,0,0,0,0,8,89.9,10.3,0,84.1,450,450,0,0,2.079442,6.109248,1,4.564348,6.160541,1,0,0,84.1,5.368392,2.079442,,0 +13,6,0,0,1,627268,1,213.5177,41.78234,1,10,1,19.46678,0,30.89293,0,0,50.35971,0,0,0,1,1,7,88.3,6.9,0,,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,1,0,0,86.4,5.368392,1.94591,3.919191,1 +13,6,0,0,2,627268,1,213.5177,42.78234,1,10,1,7.213364,0,0,0,0,7.213364,0,0,0,0,0,8,88.3,6.9,0,,450,450,0,0,2.079442,6.109248,1,4.564348,6.160541,1,0,0,86.4,5.368392,2.079442,1.975935,1 +13,6,0,0,3,627268,1,213.5177,43.78234,1,10,1,8.650519,0,32.87197,0,0,41.52249,0,0,0,0,1,8,88.3,6.9,0,,450,450,0,0,2.079442,6.109248,1,4.564348,6.160541,1,0,0,86.4,5.368392,2.079442,3.726235,1 +13,6,0,0,1,627269,1,213.5177,14.69678,0,10,1,0,0,0,0,0,0,0,0,0,0,0,7,100,10.57626,0,81.5,450,450,1,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,81.5,5.368392,1.94591,,0 +13,6,0,0,2,627269,1,213.5177,15.69678,0,10,1,0,0,0,0,0,0,0,0,0,0,0,8,100,10.57626,0,81.5,450,450,1,0,2.079442,6.109248,1,4.564348,6.160541,0,0,0,81.5,5.368392,2.079442,,0 +13,6,0,0,3,627269,1,213.5177,16.69678,0,10,1,0,0,0,0,0,0,0,0,0,0,0,8,100,10.57626,0,81.5,450,450,1,0,2.079442,6.109248,1,4.564348,6.160541,0,0,0,81.5,5.368392,2.079442,,0 +13,6,0,0,1,627270,1,213.5177,13.14168,1,10,1,0,0,0,0,0,0,0,0,0,0,0,7,86.7,10.57626,0,51.9,450,450,1,1,1.94591,6.109248,1,4.564348,6.160541,0,0,0,51.9,5.368392,1.94591,,0 +13,6,0,0,2,627270,1,213.5177,14.14168,1,10,1,0,0,0,0,0,0,0,0,0,0,0,8,86.7,10.57626,0,51.9,450,450,1,1,2.079442,6.109248,1,4.564348,6.160541,0,0,0,51.9,5.368392,2.079442,,0 +13,6,0,0,3,627270,1,213.5177,15.14168,1,10,1,0,0,0,0,0,0,0,0,0,0,0,8,86.7,10.57626,0,51.9,450,450,1,1,2.079442,6.109248,1,4.564348,6.160541,0,0,0,51.9,5.368392,2.079442,,0 +13,6,0,0,1,627271,1,213.5177,17.83984,1,10,1,0,0,0,0,0,0,0,0,0,0,0,7,72.3,0,0,84.1,450,450,1,1,1.94591,6.109248,1,4.564348,6.160541,0,0,0,84.1,5.368392,1.94591,,0 +13,6,0,0,2,627271,1,213.5177,18.83984,1,10,1,0,0,0,0,0,0,0,0,0,0,0,8,72.3,0,0,84.1,450,450,0,0,2.079442,6.109248,1,4.564348,6.160541,0,0,0,84.1,5.368392,2.079442,,0 +13,6,0,0,3,627271,1,213.5177,19.83984,1,10,1,32.17993,0,0,0,428.3737,460.5536,1,0,0,0,0,8,72.3,0,0,84.1,450,450,0,0,2.079442,6.109248,1,4.564348,6.160541,0,0,0,84.1,5.368392,2.079442,6.132429,1 +13,6,0,0,1,627272,1,213.5177,19.49897,1,10,1,8.463818,0,0,0,0,8.463818,1,1,0,0,0,7,71.3,0,0,73.9,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,73.9,5.368392,1.94591,2.1358,1 +13,6,0,0,2,627272,1,213.5177,20.49897,1,10,1,0,4.745634,0,0,0,4.745634,0,0,0,0,0,8,71.3,0,0,73.9,450,450,0,0,2.079442,6.109248,1,4.564348,6.160541,0,0,0,73.9,5.368392,2.079442,1.557225,1 +13,6,0,0,3,627272,1,213.5177,21.49897,1,10,1,0,0,0,0,0,0,0,0,0,0,0,8,71.3,0,0,73.9,450,450,0,0,2.079442,6.109248,1,4.564348,6.160541,0,0,0,73.9,5.368392,2.079442,,0 +11,6,0,1,1,627299,0,4264.209,28.93908,1,16,1,75.32797,163.0343,0,0,0,238.3623,0,0,0,6,0,1,63.3,6.9,1,22.7,0,30,0,0,0,3.401197,0,0,0,0,0,1,22.7,8.358247,0,5.473792,1 +11,6,0,1,2,627299,0,4264.209,29.93908,1,16,1,80.29613,73.49658,0,0,4009.112,4162.904,1,0,0,8,0,1,63.3,6.9,1,22.7,0,30,0,0,0,3.401197,0,0,0,0,0,1,22.7,8.358247,0,8.333968,1 +11,6,0,1,3,627299,0,4264.209,30.93908,1,16,1,110.3806,53.3737,32.87197,0,1222.145,1418.772,2,0,0,3,1,1,63.3,6.9,1,22.7,0,30,0,0,0,3.401197,0,0,0,0,0,1,22.7,8.358247,0,7.257547,1 +7,6,25,1,1,627367,1,4681.525,12.76934,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,85,10.57626,0,48.1,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,48.1,8.451592,1.386294,,0 +7,6,25,1,2,627367,1,4681.525,13.76934,0,11,1,10.02735,0,0,0,0,10.02735,0,0,0,0,0,4,85,10.57626,0,48.1,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,48.1,8.451592,1.386294,2.305316,1 +7,6,25,1,3,627367,1,4681.525,14.76934,0,11,1,44.18508,3.180492,0,0,0,47.36557,0,0,0,3,0,4,85,10.57626,0,48.1,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,48.1,8.451592,1.386294,3.857896,1 +7,6,25,1,4,627367,1,4681.525,15.76934,0,11,1,26.25657,3.447112,0,0,0,29.70368,0,0,0,1,0,4,85,10.57626,0,48.1,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,48.1,8.451592,1.386294,3.391271,1 +7,6,25,1,5,627367,1,4681.525,16.76934,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,85,10.57626,0,48.1,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,48.1,8.451592,1.386294,,0 +7,6,25,1,1,627368,1,4681.525,33.69199,1,11,1,0,12.64865,0,0,0,12.64865,0,0,0,0,0,4,80.9,6.9,0,64.5,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,64.5,8.451592,1.386294,2.53755,1 +7,6,25,1,2,627368,1,4681.525,34.69199,1,11,1,9.11577,0,29.62625,0,0,38.74202,0,0,0,0,1,4,80.9,6.9,0,64.5,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,64.5,8.451592,1.386294,3.656925,1 +7,6,25,1,3,627368,1,4681.525,35.69199,1,11,1,9.170487,0,0,0,0,9.170487,0,0,0,1,0,4,80.9,6.9,0,64.5,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,64.5,8.451592,1.386294,2.215991,1 +7,6,25,1,4,627368,1,4681.525,36.69199,1,11,1,0,0,0,0,0,0,0,0,0,0,0,4,80.9,6.9,0,64.5,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,64.5,8.451592,1.386294,,0 +7,6,25,1,5,627368,1,4681.525,37.69199,1,11,1,0,0,0,0,0,0,0,0,0,0,0,4,80.9,6.9,0,64.5,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,64.5,8.451592,1.386294,,0 +7,6,25,1,1,627369,1,4681.525,37.22382,0,12,1,0,3.921376,0,0,0,3.921376,0,0,0,0,0,4,95.2,0,0,70.5,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,70.5,8.451592,1.386294,1.366443,1 +7,6,25,1,2,627369,1,4681.525,38.22382,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,95.2,0,0,70.5,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,70.5,8.451592,1.386294,,0 +7,6,25,1,3,627369,1,4681.525,39.22382,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,95.2,0,0,70.5,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,70.5,8.451592,1.386294,,0 +7,6,25,1,4,627369,1,4681.525,40.22382,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,95.2,0,0,70.5,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,70.5,8.451592,1.386294,,0 +7,6,25,1,5,627369,1,4681.525,41.22382,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,95.2,0,0,70.5,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,70.5,8.451592,1.386294,,0 +11,6,0,0,1,627370,0,13767.03,23.1896,1,10,1,64.78754,26.81952,0,0,0,91.60707,0,0,0,3,0,3,75.5,13.8,0,72.7,0,0,0,0,1.098612,0,0,0,0,1,0,0,72.7,9.530105,1.098612,4.517509,1 +11,6,0,0,2,627370,0,13767.03,24.1896,1,10,1,4.533434,36.64526,0,0,430.6762,471.8549,1,0,0,1,0,3,75.5,13.8,0,72.7,0,0,0,0,1.098612,0,0,0,0,1,0,0,72.7,9.530105,1.098612,6.156672,1 +11,6,0,0,3,627370,0,13767.03,25.1896,1,10,1,0,4.116638,0,0,0,4.116638,0,0,0,0,0,4,75.5,13.8,0,72.7,0,0,0,0,1.386294,0,0,0,0,1,0,0,72.7,9.530105,1.386294,1.415037,1 +11,6,0,0,1,627371,0,13767.03,6.332649,1,10,1,13.04165,3.575936,0,0,88.76736,105.3849,1,0,0,1,0,3,76.7,10.57626,.1442925,85.2,0,0,1,1,1.098612,0,0,0,0,0,0,0,85.2,9.530105,1.098612,4.65762,1 +11,6,0,0,2,627371,0,13767.03,7.332649,1,10,1,21.15602,6.233472,0,0,0,27.3895,0,0,0,0,0,3,76.7,10.57626,.1442925,85.2,0,0,1,1,1.098612,0,0,0,0,0,0,0,85.2,9.530105,1.098612,3.31016,1 +11,6,0,0,3,627371,0,13767.03,8.332649,1,10,1,57.63293,12.95026,0,0,0,70.58319,0,0,0,2,0,4,76.7,10.57626,.1442925,85.2,0,0,1,1,1.386294,0,0,0,0,0,0,0,85.2,9.530105,1.386294,4.256792,1 +11,6,0,0,1,627372,0,13767.03,27.31828,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,79.3,0,0,85.2,0,0,0,0,1.098612,0,0,0,0,0,0,0,85.2,9.530105,1.098612,,0 +11,6,0,0,2,627372,0,13767.03,28.31828,0,12,1,104.8357,1.261806,0,0,0,106.0975,0,0,0,1,0,3,79.3,0,0,85.2,0,0,0,0,1.098612,0,0,0,0,0,0,0,85.2,9.530105,1.098612,4.664358,1 +11,6,0,0,3,627372,0,13767.03,29.31828,0,12,1,5.488851,0,0,0,0,5.488851,0,0,0,1,0,4,79.3,0,0,85.2,0,0,0,0,1.386294,0,0,0,0,0,0,0,85.2,9.530105,1.386294,1.702719,1 +13,6,0,1,1,627388,1,9834.102,5.544148,0,13,1,47.21395,0,0,0,0,47.21395,0,0,0,2,0,5,90,10.57626,0,81.5,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,81.5,9.193713,1.609438,3.854689,1 +13,6,0,1,2,627388,1,9834.102,6.544148,0,13,1,4.580153,3.541985,0,0,0,8.122137,0,0,0,1,0,5,90,10.57626,0,81.5,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,81.5,9.193713,1.609438,2.094593,1 +13,6,0,1,3,627388,1,9834.102,7.544148,0,13,1,28.223,0,0,0,0,28.223,0,0,0,1,0,5,90,10.57626,0,81.5,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,81.5,9.193713,1.609438,3.340137,1 +13,6,0,1,1,627389,1,9834.102,9.475701,1,13,1,127.6053,8.294343,0,0,0,135.8996,0,0,0,3,0,5,88.3,10.57626,0,66.7,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,1,0,0,66.7,9.193713,1.609438,4.911916,1 +13,6,0,1,2,627389,1,9834.102,10.4757,1,13,1,9.160305,2.320611,0,0,0,11.48092,0,0,0,2,0,5,88.3,10.57626,0,66.7,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,1,0,0,66.7,9.193713,1.609438,2.440686,1 +13,6,0,1,3,627389,1,9834.102,11.4757,1,13,1,8.36237,14.93031,0,0,0,23.29268,0,0,0,2,0,5,88.3,10.57626,0,66.7,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,1,0,0,66.7,9.193713,1.609438,3.148139,1 +13,6,0,1,1,627390,1,9834.102,31.58385,0,13,1,0,0,0,0,0,0,0,0,0,0,0,5,61.7,0,0,67,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,67,9.193713,1.609438,,0 +13,6,0,1,2,627390,1,9834.102,32.58385,0,13,1,20.99237,0,1.908397,0,0,22.90076,0,0,0,2,0,5,61.7,0,0,67,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,67,9.193713,1.609438,3.13117,1 +13,6,0,1,3,627390,1,9834.102,33.58385,0,13,1,0,0,0,0,0,0,0,0,0,0,0,5,61.7,0,0,67,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,67,9.193713,1.609438,,0 +13,6,0,1,1,627391,1,9834.102,31.18686,1,13,1,110.5912,60.24245,0,0,0,170.8337,0,0,0,3,0,5,76.1,10.3,0,65.9,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,65.9,9.193713,1.609438,5.14069,1 +13,6,0,1,2,627391,1,9834.102,32.18686,1,13,1,226.3359,40.72519,3.076336,0,0,270.1374,0,0,0,16,0,5,76.1,10.3,0,65.9,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,65.9,9.193713,1.609438,5.598931,1 +13,6,0,1,3,627391,1,9834.102,33.18686,1,13,1,34.3554,3.466899,3.362369,0,0,41.18467,0,0,0,12,0,5,76.1,10.3,0,65.9,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,65.9,9.193713,1.609438,3.718066,1 +17,6,25,0,1,627400,0,9584.741,14.33265,1,10,1,160.9004,11.6882,0,0,0,172.5886,0,0,0,5,0,3,84,6.9,0,72.7,602.55,602.55,1,1,1.098612,6.401171,0,3.258096,7.787465,1,0,0,72.7,9.168032,1.098612,5.15091,1 +17,6,25,0,2,627400,0,9584.741,15.33265,1,10,1,38.25956,0,0,0,0,38.25956,0,0,0,1,0,3,84,6.9,0,72.7,602.55,602.55,1,1,1.098612,6.401171,0,3.258096,7.787465,1,0,0,72.7,9.168032,1.098612,3.644393,1 +17,6,25,0,3,627400,0,9584.741,16.33265,1,10,1,44.31664,2.503383,0,0,0,46.82003,0,0,0,1,0,3,84,6.9,0,72.7,602.55,602.55,1,1,1.098612,6.401171,0,3.258096,7.787465,1,0,0,72.7,9.168032,1.098612,3.846311,1 +17,6,25,0,1,627402,0,9584.741,41.90554,0,8,1,0,3.051271,0,0,0,3.051271,0,0,0,0,0,3,82.4,17.2,0,69.3,602.55,602.55,0,0,1.098612,6.401171,0,3.258096,7.787465,1,0,0,69.3,9.168032,1.098612,1.115558,1 +17,6,25,0,2,627402,0,9584.741,42.90554,0,8,1,24.94374,0,2.663166,0,0,27.6069,0,0,0,0,0,3,82.4,17.2,0,69.3,602.55,602.55,0,0,1.098612,6.401171,0,3.258096,7.787465,1,0,0,69.3,9.168032,1.098612,3.318066,1 +17,6,25,0,3,627402,0,9584.741,43.90554,0,8,1,0,0,0,0,0,0,0,0,0,0,0,3,82.4,17.2,0,69.3,602.55,602.55,0,0,1.098612,6.401171,0,3.258096,7.787465,1,0,0,69.3,9.168032,1.098612,,0 +17,6,25,0,1,627403,0,9584.741,37.97947,1,10,1,2.084202,2.484369,0,0,0,4.56857,0,0,0,0,0,3,81.4,20.7,0,83,602.55,602.55,0,0,1.098612,6.401171,0,3.258096,7.787465,1,0,0,83,9.168032,1.098612,1.5192,1 +17,6,25,0,2,627403,0,9584.741,38.97947,1,10,1,15.00375,0,36.75919,0,0,51.76294,0,0,0,1,0,3,81.4,20.7,0,83,602.55,602.55,0,0,1.098612,6.401171,0,3.258096,7.787465,1,0,0,83,9.168032,1.098612,3.946674,1 +17,6,25,0,3,627403,0,9584.741,39.97947,1,10,1,38.56563,4.43843,0,0,0,43.00406,0,0,0,3,0,3,81.4,20.7,0,83,602.55,602.55,0,0,1.098612,6.401171,0,3.258096,7.787465,1,0,0,83,9.168032,1.098612,3.761295,1 +11,6,0,1,1,627421,0,15191.2,57.80151,1,12,1,130.3271,84.03865,0,0,0,214.3657,0,0,0,11,0,1,64.9,6.9,1,59.1,0,153,0,0,0,5.030438,0,0,0,1,0,0,59.1,9.628537,0,5.367683,1 +11,6,0,1,2,627421,0,15191.2,58.80151,1,12,1,62.41395,94.32767,53.23543,0,0,209.9771,0,0,0,11,1,1,64.9,6.9,1,59.1,0,153,0,0,0,5.030438,0,0,0,1,0,0,59.1,9.628537,0,5.346998,1 +11,6,0,1,3,627421,0,15191.2,59.80151,1,12,1,88.76736,158.9651,0,0,0,247.7324,0,0,0,9,0,1,64.9,6.9,1,59.1,0,153,0,0,0,5.030438,0,0,0,1,0,0,59.1,9.628537,0,5.512349,1 +11,6,0,1,4,627421,0,15191.2,60.80151,1,12,1,57.4235,177.6275,43.8232,0,389.1198,667.994,1,0,0,7,1,1,64.9,6.9,1,59.1,0,153,0,0,0,5.030438,0,0,0,1,0,0,59.1,9.628537,0,6.504279,1 +11,6,0,1,5,627421,0,15191.2,61.80151,1,12,1,39.45111,188.5283,30.87479,0,0,258.8542,0,0,0,2,1,1,64.9,6.9,1,59.1,0,153,0,0,0,5.030438,0,0,0,1,0,0,59.1,9.628537,0,5.556265,1 +13,6,0,1,1,627428,1,6735.316,18.52156,0,8,1,0,0,0,0,0,0,0,0,0,0,0,10,86.2,0,0,75,450,150,0,0,2.302585,5.010635,1,4.564348,6.160541,1,0,0,75,8.815269,2.302585,,0 +13,6,0,1,1,627429,1,6735.316,12.23819,1,12,1,0,0,0,0,0,0,0,0,0,0,0,10,98.3,10.57626,0,74.1,450,150,1,1,2.302585,5.010635,1,4.564348,6.160541,0,1,0,74.1,8.815269,2.302585,,0 +13,6,0,1,2,627429,1,6735.316,13.23819,1,12,1,0,0,0,0,0,0,0,0,0,0,0,9,98.3,10.57626,0,74.1,450,150,1,1,2.197225,5.010635,1,4.564348,6.160541,0,1,0,74.1,8.815269,2.197225,,0 +13,6,0,1,3,627429,1,6735.316,14.23819,1,12,1,44.31664,0,0,0,0,44.31664,0,0,0,0,0,7,98.3,10.57626,0,74.1,450,150,1,1,1.94591,5.010635,1,4.564348,6.160541,0,1,0,74.1,8.815269,1.94591,3.79136,1 +13,6,0,1,1,627430,1,6735.316,16.07118,0,12,1,0,0,0,0,0,0,0,0,0,0,0,10,64.9,10.57626,0,59.1,450,150,1,0,2.302585,5.010635,1,4.564348,6.160541,0,1,0,59.1,8.815269,2.302585,,0 +13,6,0,1,2,627430,1,6735.316,17.07118,0,12,1,40.13503,0,7.014254,0,0,47.14929,0,0,0,3,0,9,64.9,10.57626,0,59.1,450,150,1,0,2.197225,5.010635,1,4.564348,6.160541,0,1,0,59.1,8.815269,2.197225,3.853319,1 +13,6,0,1,3,627430,1,6735.316,18.07118,0,12,1,0,0,0,0,0,0,0,0,0,0,0,7,64.9,10.57626,0,59.1,450,150,0,0,1.94591,5.010635,1,4.564348,6.160541,0,1,0,59.1,8.815269,1.94591,,0 +13,6,0,1,1,627431,1,6735.316,10.72142,1,12,1,0,0,0,0,0,0,0,0,0,0,0,10,70,10.57626,0,66.7,450,150,1,1,2.302585,5.010635,1,4.564348,6.160541,1,0,0,66.7,8.815269,2.302585,,0 +13,6,0,1,2,627431,1,6735.316,11.72142,1,12,1,0,0,0,0,0,0,0,0,0,0,0,9,70,10.57626,0,66.7,450,150,1,1,2.197225,5.010635,1,4.564348,6.160541,1,0,0,66.7,8.815269,2.197225,,0 +13,6,0,1,1,627432,1,6735.316,43.44422,1,12,1,5.002084,0,0,0,0,5.002084,0,0,0,1,0,10,48.9,13.8,1,35.2,450,150,0,0,2.302585,5.010635,1,4.564348,6.160541,1,0,0,35.2,8.815269,2.302585,1.609855,1 +13,6,0,1,2,627432,1,6735.316,44.44422,1,12,1,190.5476,9.39985,38.63466,0,1208.177,1446.759,2,0,0,29,0,9,48.9,13.8,1,35.2,450,150,0,0,2.197225,5.010635,1,4.564348,6.160541,1,0,0,35.2,8.815269,2.197225,7.277081,1 +13,6,0,1,3,627432,1,6735.316,45.44422,1,12,1,0,0,0,0,0,0,0,0,0,0,0,7,48.9,13.8,1,35.2,450,150,0,0,1.94591,5.010635,1,4.564348,6.160541,1,0,0,35.2,8.815269,1.94591,,0 +13,6,0,1,1,627433,1,6735.316,19.93703,1,10,1,0,0,0,0,0,0,0,0,0,0,0,10,52.7,17.2,0,50,450,150,0,0,2.302585,5.010635,1,4.564348,6.160541,0,0,0,50,8.815269,2.302585,,0 +13,6,0,1,2,627433,1,6735.316,20.93703,1,10,1,0,0,0,0,0,0,0,0,0,0,0,9,52.7,17.2,0,50,450,150,0,0,2.197225,5.010635,1,4.564348,6.160541,0,0,0,50,8.815269,2.197225,,0 +13,6,0,1,3,627433,1,6735.316,21.93703,1,10,1,0,0,0,0,0,0,0,0,0,0,0,7,52.7,17.2,0,50,450,150,0,0,1.94591,5.010635,1,4.564348,6.160541,0,0,0,50,8.815269,1.94591,,0 +13,6,0,1,1,627434,1,6735.316,46.29432,0,4,1,177.1572,40.97541,42.03835,0,6574.406,6834.577,3,0,0,0,0,10,53.2,20.7,0,40.5,450,150,0,0,2.302585,5.010635,1,4.564348,6.160541,1,0,0,40.5,8.815269,2.302585,8.82975,1 +13,6,0,1,2,627434,1,6735.316,47.29432,0,4,1,67.51688,90.55889,31.11403,0,2477.119,2666.309,2,0,0,6,0,9,53.2,20.7,0,40.5,450,150,0,0,2.197225,5.010635,1,4.564348,6.160541,1,0,0,40.5,8.815269,2.197225,7.888451,1 +13,6,0,1,1,627435,1,6735.316,13.39083,0,12,1,0,0,0,0,0,0,0,0,0,0,0,10,85,10.57626,0,66.7,450,150,1,0,2.302585,5.010635,1,4.564348,6.160541,1,0,0,66.7,8.815269,2.302585,,0 +13,6,0,1,2,627435,1,6735.316,14.39083,0,12,1,0,0,0,0,0,0,0,0,0,0,0,9,85,10.57626,0,66.7,450,150,1,0,2.197225,5.010635,1,4.564348,6.160541,1,0,0,66.7,8.815269,2.197225,,0 +13,6,0,1,3,627435,1,6735.316,15.39083,0,12,1,0,0,0,0,0,0,0,0,0,0,0,7,85,10.57626,0,66.7,450,150,1,0,1.94591,5.010635,1,4.564348,6.160541,1,0,0,66.7,8.815269,1.94591,,0 +13,6,0,0,1,627465,0,3349.206,58.51609,1,11,1,166.7376,10.52744,8.507018,0,0,185.772,0,0,0,2,16,2,88.3,10.3,1,56.8,300,150,0,0,.6931472,5.010635,1,4.564348,5.755076,1,0,0,56.8,8.116777,.6931472,5.22452,1 +13,6,0,0,2,627465,0,3349.206,59.51609,1,11,1,151.5267,13.77863,26.71756,0,0,192.0229,0,0,0,0,21,2,88.3,10.3,1,56.8,300,150,0,0,.6931472,5.010635,1,4.564348,5.755076,1,0,0,56.8,8.116777,.6931472,5.257615,1 +13,6,0,0,3,627465,0,3349.206,60.51609,1,11,1,160.6272,110.0871,35.75958,0,0,306.4739,0,0,0,8,17,2,88.3,10.3,1,56.8,300,150,0,0,.6931472,5.010635,1,4.564348,5.755076,1,0,0,56.8,8.116777,.6931472,5.725132,1 +13,6,0,0,1,627466,0,3349.206,61.10883,0,13,1,102.0842,0,101.4972,0,0,203.5815,0,0,0,0,10,2,94.1,0,0,61.4,300,150,0,0,.6931472,5.010635,1,4.564348,5.755076,0,0,0,61.4,8.116777,.6931472,5.316066,1 +13,6,0,0,2,627466,0,3349.206,62.10883,0,13,1,180.5343,0,26.71756,0,0,207.2519,0,0,0,5,10,2,94.1,0,0,61.4,300,150,0,0,.6931472,5.010635,1,4.564348,5.755076,0,0,0,61.4,8.116777,.6931472,5.333935,1 +13,6,0,0,3,627466,0,3349.206,63.10883,0,13,1,36.58537,2.700348,35.75958,0,0,75.0453,0,0,0,1,5,2,94.1,0,0,61.4,300,150,0,0,.6931472,5.010635,1,4.564348,5.755076,0,0,0,61.4,8.116777,.6931472,4.318092,1 +11,6,0,1,1,627475,0,9348.694,35.48528,0,14,1,136.963,84.01106,0,0,0,220.9741,0,0,0,12,5,5,73.9,13.8,0,76.1,0,0,0,0,1.609438,0,0,0,0,0,0,0,76.1,9.143099,1.609438,5.398046,1 +11,6,0,1,2,627475,0,9348.694,36.48528,0,14,1,90.07633,36.35496,32.06107,0,0,158.4924,0,0,0,8,0,5,73.9,13.8,0,76.1,0,0,0,0,1.609438,0,0,0,0,0,0,0,76.1,9.143099,1.609438,5.065706,1 +11,6,0,1,3,627475,0,9348.694,37.48528,0,14,1,72.8223,25.58885,0,0,0,98.41115,0,0,0,8,0,5,73.9,13.8,0,76.1,0,0,0,0,1.609438,0,0,0,0,0,0,0,76.1,9.143099,1.609438,4.589154,1 +11,6,0,1,1,627476,0,9348.694,4.84052,1,12,1,217.7797,14.35559,11.05912,0,0,243.1944,0,0,0,8,30,5,77.40034,10.57626,0,85.2,0,0,1,1,1.609438,0,0,0,0,0,0,0,85.2,9.143099,1.609438,5.493861,1 +11,6,0,1,2,627476,0,9348.694,5.84052,1,12,1,17.17557,7.954198,11.1145,0,323.5687,359.813,1,0,0,4,0,5,77.40034,10.57626,0,85.2,0,0,1,1,1.609438,0,0,0,0,0,0,0,85.2,9.143099,1.609438,5.885584,1 +11,6,0,1,3,627476,0,9348.694,6.84052,1,12,1,6.968641,0,0,0,0,6.968641,0,0,0,2,0,5,77.40034,10.57626,0,85.2,0,0,1,1,1.609438,0,0,0,0,0,0,0,85.2,9.143099,1.609438,1.94142,1 +11,6,0,1,1,627477,0,9348.694,31.84394,1,12,1,52.53084,44.31306,32.73501,0,0,129.5789,0,0,0,8,0,5,88.8,17.2,0,79.5,0,0,0,0,1.609438,0,0,0,0,0,0,0,79.5,9.143099,1.609438,4.86429,1 +11,6,0,1,2,627477,0,9348.694,32.84394,1,12,1,162.2137,1.812977,0,0,0,164.0267,0,0,0,3,12,5,88.8,17.2,0,79.5,0,0,0,0,1.609438,0,0,0,0,0,0,0,79.5,9.143099,1.609438,5.100029,1 +11,6,0,1,3,627477,0,9348.694,33.84394,1,12,1,31.70732,3.222996,0,0,0,34.93031,0,0,0,3,0,5,88.8,17.2,0,79.5,0,0,0,0,1.609438,0,0,0,0,0,0,0,79.5,9.143099,1.609438,3.553355,1 +11,6,0,1,1,627478,0,9348.694,8.416153,0,12,1,15.73798,16.58869,0,0,0,32.32667,0,0,0,3,0,5,93.3,10.57626,0,74.1,0,0,1,0,1.609438,0,0,0,0,0,0,0,74.1,9.143099,1.609438,3.475893,1 +11,6,0,1,2,627478,0,9348.694,9.416153,0,12,1,43.89313,14.02672,1.022901,0,324.9237,383.8664,1,0,0,6,0,5,93.3,10.57626,0,74.1,0,0,1,0,1.609438,0,0,0,0,0,0,0,74.1,9.143099,1.609438,5.950294,1 +11,6,0,1,3,627478,0,9348.694,10.41615,0,12,1,19.16376,2.073171,25.78397,0,0,47.0209,0,0,0,2,0,5,93.3,10.57626,0,74.1,0,0,1,0,1.609438,0,0,0,0,0,0,0,74.1,9.143099,1.609438,3.850592,1 +16,6,95,0,1,627492,0,10337.43,11.6742,1,11,1,0,0,0,0,0,0,0,0,0,0,0,8,85,10.57626,0,92.6,1000,1000,1,1,2.079442,6.907755,0,4.564348,6.959049,1,0,0,92.6,9.243624,2.079442,,0 +16,6,95,0,2,627492,0,10337.43,12.6742,1,11,1,33.62297,0,1.133358,0,0,34.75633,0,0,0,6,0,8,85,10.57626,0,92.6,1000,1000,1,1,2.079442,6.907755,0,4.564348,6.959049,1,0,0,92.6,9.243624,2.079442,3.548362,1 +16,6,95,0,3,627492,0,10337.43,13.6742,1,11,1,0,0,0,0,0,0,0,0,0,0,0,8,85,10.57626,0,92.6,1000,1000,1,1,2.079442,6.907755,0,4.564348,6.959049,1,0,0,92.6,9.243624,2.079442,,0 +16,6,95,0,1,627493,0,10337.43,14.07803,0,11,1,0,0,0,0,0,0,0,0,0,0,0,8,90,10.57626,0,92.6,1000,1000,1,0,2.079442,6.907755,0,4.564348,6.959049,1,0,0,92.6,9.243624,2.079442,,0 +16,6,95,0,2,627493,0,10337.43,15.07803,0,11,1,0,0,0,0,0,0,0,0,0,0,0,8,90,10.57626,0,92.6,1000,1000,1,0,2.079442,6.907755,0,4.564348,6.959049,1,0,0,92.6,9.243624,2.079442,,0 +16,6,95,0,3,627493,0,10337.43,16.07803,0,11,1,0,0,0,0,0,0,0,0,0,0,0,8,90,10.57626,0,92.6,1000,1000,1,0,2.079442,6.907755,0,4.564348,6.959049,1,0,0,92.6,9.243624,2.079442,,0 +16,6,95,0,1,627494,0,10337.43,3.405886,0,11,1,130.8372,0,0,0,0,130.8372,0,0,0,2,0,8,77.40034,10.57626,0,81.5,1000,1000,1,0,2.079442,6.907755,0,4.564348,6.959049,1,0,0,81.5,9.243624,2.079442,4.873954,1 +16,6,95,0,2,627494,0,10337.43,4.405886,0,11,1,53.64564,0,0,0,279.184,332.8296,1,0,0,2,0,8,77.40034,10.57626,0,81.5,1000,1000,1,0,2.079442,6.907755,0,4.564348,6.959049,1,0,0,81.5,9.243624,2.079442,5.807631,1 +16,6,95,0,3,627494,0,10337.43,5.405886,0,11,1,102.2298,0,0,0,0,102.2298,0,0,0,4,0,8,77.40034,10.57626,0,81.5,1000,1000,1,0,2.079442,6.907755,0,4.564348,6.959049,1,0,0,81.5,9.243624,2.079442,4.627223,1 +16,6,95,0,1,627495,0,10337.43,32.83231,1,11,1,19.35213,0,0,0,0,19.35213,0,0,0,2,0,8,43.6,3.4,0,67,1000,1000,0,0,2.079442,6.907755,0,4.564348,6.959049,1,0,0,67,9.243624,2.079442,2.962802,1 +16,6,95,0,2,627495,0,10337.43,33.83231,1,11,1,0,0,0,0,0,0,0,0,0,0,0,8,43.6,3.4,0,67,1000,1000,0,0,2.079442,6.907755,0,4.564348,6.959049,1,0,0,67,9.243624,2.079442,,0 +16,6,95,0,3,627495,0,10337.43,34.83231,1,11,1,0,0,0,0,0,0,0,0,0,0,0,8,43.6,3.4,0,67,1000,1000,0,0,2.079442,6.907755,0,4.564348,6.959049,1,0,0,67,9.243624,2.079442,,0 +16,6,95,0,1,627496,0,10337.43,33.34702,0,4,1,0,0,0,0,0,0,0,0,0,0,0,8,62.8,0,0,88.6,1000,1000,0,0,2.079442,6.907755,0,4.564348,6.959049,1,0,0,88.6,9.243624,2.079442,,0 +16,6,95,0,2,627496,0,10337.43,34.34702,0,4,1,0,0,0,0,0,0,0,0,0,0,0,8,62.8,0,0,88.6,1000,1000,0,0,2.079442,6.907755,0,4.564348,6.959049,1,0,0,88.6,9.243624,2.079442,,0 +16,6,95,0,3,627496,0,10337.43,35.34702,0,4,1,21.2693,0,0,0,0,21.2693,0,0,0,0,0,8,62.8,0,0,88.6,1000,1000,0,0,2.079442,6.907755,0,4.564348,6.959049,1,0,0,88.6,9.243624,2.079442,3.057265,1 +16,6,95,0,1,627497,0,10337.43,10.71595,0,11,1,22.29701,0,0,0,0,22.29701,0,0,0,0,0,8,85,10.57626,0,48.1,1000,1000,1,0,2.079442,6.907755,0,4.564348,6.959049,1,0,0,48.1,9.243624,2.079442,3.104453,1 +16,6,95,0,2,627497,0,10337.43,11.71595,0,11,1,58.17907,0,0,0,0,58.17907,0,0,0,3,0,8,85,10.57626,0,48.1,1000,1000,1,0,2.079442,6.907755,0,4.564348,6.959049,1,0,0,48.1,9.243624,2.079442,4.063526,1 +16,6,95,0,3,627497,0,10337.43,12.71595,0,11,1,389.7084,0,0,0,689.8799,1079.588,1,0,0,2,0,8,85,10.57626,0,48.1,1000,1000,1,0,2.079442,6.907755,0,4.564348,6.959049,1,0,0,48.1,9.243624,2.079442,6.984335,1 +11,6,0,1,1,627530,.5112414,7290.834,21.83436,1,12,1,31.97308,2.629365,0,0,0,34.60244,0,0,0,2,0,3,86.2,0,0,85.2,0,240.48,0,0,1.098612,5.482637,0,0,0,1,0,0,85.2,8.89451,1.098612,3.543924,1 +11,6,0,1,2,627530,.5112414,7290.834,22.83436,1,12,1,5.289006,0,0,0,0,5.289006,0,0,0,1,0,3,86.2,0,0,85.2,0,240.48,0,0,1.098612,5.482637,0,0,0,1,0,0,85.2,8.89451,1.098612,1.66563,1 +11,6,0,1,3,627530,.5112414,7290.834,23.83436,1,12,1,26.41509,4.373928,0,0,366.3808,397.1698,1,0,0,2,0,3,86.2,0,0,85.2,0,240.48,0,0,1.098612,5.482637,0,0,0,1,0,0,85.2,8.89451,1.098612,5.984364,1 +13,6,0,1,1,627532,1,4247.507,52.15332,1,3,1,3.685504,0,0,0,0,3.685504,0,0,0,1,0,7,75.4,31,1,34.1,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,1,0,34.1,8.354323,1.94591,1.304407,1 +13,6,0,1,2,627532,1,4247.507,53.15332,1,3,1,7.292616,0,0,0,373.2908,380.5834,1,0,0,2,0,7,75.4,31,1,34.1,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,1,0,34.1,8.354323,1.94591,5.941705,1 +13,6,0,1,3,627532,1,4247.507,54.15332,1,3,1,37.51563,0,0,0,1205.919,1243.435,1,0,0,7,0,7,75.4,31,1,34.1,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,1,0,34.1,8.354323,1.94591,7.125633,1 +13,6,0,1,4,627532,1,4247.507,55.15332,1,3,1,19.12978,0,0,0,0,19.12978,0,0,0,1,0,7,75.4,31,1,34.1,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,1,0,34.1,8.354323,1.94591,2.951246,1 +13,6,0,1,5,627532,1,4247.507,56.15332,1,3,1,6.7659,11.5088,0,0,0,18.2747,0,0,0,2,0,7,75.4,31,1,34.1,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,1,0,34.1,8.354323,1.94591,2.905517,1 +13,6,0,1,1,627533,1,4247.507,21.0705,0,12,1,0,0,0,0,0,0,0,0,0,0,0,7,76.1,0,0,67,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,1,0,67,8.354323,1.94591,,0 +13,6,0,1,2,627533,1,4247.507,22.0705,0,12,1,0,0,0,0,0,0,0,0,0,0,0,7,76.1,0,0,67,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,1,0,67,8.354323,1.94591,,0 +13,6,0,1,3,627533,1,4247.507,23.0705,0,12,1,0,0,0,0,0,0,0,0,0,0,0,7,76.1,0,0,67,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,1,0,67,8.354323,1.94591,,0 +13,6,0,1,4,627533,1,4247.507,24.0705,0,12,1,0,0,0,0,0,0,0,0,0,0,0,7,76.1,0,0,67,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,1,0,67,8.354323,1.94591,,0 +13,6,0,1,5,627533,1,4247.507,25.0705,0,12,1,0,0,0,0,0,0,0,0,0,0,0,7,76.1,0,0,67,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,1,0,67,8.354323,1.94591,,0 +13,6,0,1,1,627536,1,4247.507,19.37029,0,10,1,0,0,0,0,0,0,0,0,0,0,0,7,73.4,3.4,0,71.4,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,1,0,71.4,8.354323,1.94591,,0 +13,6,0,1,2,627536,1,4247.507,20.37029,0,10,1,0,0,0,0,0,0,0,0,0,0,0,7,73.4,3.4,0,71.4,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,1,0,71.4,8.354323,1.94591,,0 +13,6,0,1,3,627536,1,4247.507,21.37029,0,10,1,0,0,0,0,0,0,0,0,0,0,0,7,73.4,3.4,0,71.4,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,1,0,71.4,8.354323,1.94591,,0 +13,6,0,1,4,627536,1,4247.507,22.37029,0,10,1,0,0,0,0,0,0,0,0,0,0,0,7,73.4,3.4,0,71.4,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,1,0,71.4,8.354323,1.94591,,0 +13,6,0,1,5,627536,1,4247.507,23.37029,0,10,1,0,0,0,0,0,0,0,0,0,0,0,7,73.4,3.4,0,71.4,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,1,0,71.4,8.354323,1.94591,,0 +13,6,0,1,1,627537,1,4247.507,17.18001,1,3,1,39.31204,0,0,0,0,39.31204,0,0,0,1,0,7,83,10.3,0,63.6,450,450,1,1,1.94591,6.109248,1,4.564348,6.160541,0,1,0,63.6,8.354323,1.94591,3.671531,1 +13,6,0,1,2,627537,1,4247.507,18.18001,1,3,1,30.99362,0,0,0,0,30.99362,0,0,0,2,0,7,83,10.3,0,63.6,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,1,0,63.6,8.354323,1.94591,3.433781,1 +13,6,0,1,3,627537,1,4247.507,19.18001,1,3,1,15.00625,0,0,0,0,15.00625,0,0,0,1,0,7,83,10.3,0,63.6,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,1,0,63.6,8.354323,1.94591,2.708467,1 +13,6,0,1,4,627537,1,4247.507,20.18001,1,3,1,22.13053,19.93999,0,0,0,42.07052,0,0,0,2,0,7,83,10.3,0,63.6,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,1,0,63.6,8.354323,1.94591,3.739347,1 +13,6,0,1,5,627537,1,4247.507,21.18001,1,3,1,30.44655,15.12179,0,0,0,45.56834,0,0,0,2,0,7,83,10.3,0,63.6,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,1,0,63.6,8.354323,1.94591,3.819213,1 +13,6,0,1,1,627539,1,4247.507,12.92813,0,3,1,0,0,0,0,0,0,0,0,0,0,0,7,76.7,10.57626,0,66.7,450,450,1,0,1.94591,6.109248,1,4.564348,6.160541,0,1,0,66.7,8.354323,1.94591,,0 +13,6,0,1,2,627539,1,4247.507,13.92813,0,3,1,13.67366,0,0,0,0,13.67366,0,0,0,1,0,7,76.7,10.57626,0,66.7,450,450,1,0,1.94591,6.109248,1,4.564348,6.160541,0,1,0,66.7,8.354323,1.94591,2.615471,1 +13,6,0,1,3,627539,1,4247.507,14.92813,0,3,1,0,0,0,0,0,0,0,0,0,0,0,7,76.7,10.57626,0,66.7,450,450,1,0,1.94591,6.109248,1,4.564348,6.160541,0,1,0,66.7,8.354323,1.94591,,0 +13,6,0,1,4,627539,1,4247.507,15.92813,0,3,1,0,0,0,0,0,0,0,0,0,0,0,7,76.7,10.57626,0,66.7,450,450,1,0,1.94591,6.109248,1,4.564348,6.160541,0,1,0,66.7,8.354323,1.94591,,0 +13,6,0,1,5,627539,1,4247.507,16.92813,0,3,1,0,0,0,0,0,0,0,0,0,0,0,7,76.7,10.57626,0,66.7,450,450,1,0,1.94591,6.109248,1,4.564348,6.160541,0,1,0,66.7,8.354323,1.94591,,0 +6,6,25,1,1,627600,1,11735.28,12.63518,1,17,1,22.09254,9.378908,0,0,0,31.47145,0,0,0,2,0,5,100,10.57626,0,100,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,100,9.37044,1.609438,3.449081,1 +6,6,25,1,2,627600,1,11735.28,13.63518,1,17,1,0,0,0,0,0,0,0,0,0,0,0,5,100,10.57626,0,100,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,100,9.37044,1.609438,,0 +6,6,25,1,3,627600,1,11735.28,14.63518,1,17,1,0,0,0,0,0,0,0,0,0,0,0,5,100,10.57626,0,100,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,100,9.37044,1.609438,,0 +6,6,25,1,1,627601,1,11735.28,14.43395,0,17,1,82.11755,20.77115,0,0,0,102.8887,0,0,0,3,0,5,91.7,10.57626,0,70.4,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,70.4,9.37044,1.609438,4.633648,1 +6,6,25,1,2,627601,1,11735.28,15.43395,0,17,1,28.88222,0,0,0,0,28.88222,0,0,0,3,0,5,91.7,10.57626,0,70.4,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,70.4,9.37044,1.609438,3.363226,1 +6,6,25,1,3,627601,1,11735.28,16.43395,0,17,1,0,0,0,0,0,0,0,0,0,0,0,5,91.7,10.57626,0,70.4,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,70.4,9.37044,1.609438,,0 +6,6,25,1,1,627602,1,11735.28,32.27105,0,16,1,0,3.418091,0,0,0,3.418091,0,0,0,0,0,5,63.3,3.4,1,48.9,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,48.9,9.37044,1.609438,1.229082,1 +6,6,25,1,2,627602,1,11735.28,33.27105,0,16,1,22.13053,11.06527,0,0,0,33.1958,0,0,0,3,0,5,63.3,3.4,1,48.9,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,48.9,9.37044,1.609438,3.502423,1 +6,6,25,1,3,627602,1,11735.28,34.27105,0,16,1,39.58051,5.074425,37.24966,0,0,81.9046,0,0,0,3,0,5,63.3,3.4,1,48.9,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,48.9,9.37044,1.609438,4.405555,1 +6,6,25,1,1,627603,1,11735.28,33.98768,1,17,1,32.09671,6.773656,0,0,828.0533,866.9237,1,0,0,3,0,5,94.1,27.6,0,72.7,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,72.7,9.37044,1.609438,6.764951,1 +6,6,25,1,2,627603,1,11735.28,34.98768,1,17,1,0,0,0,0,0,0,0,0,0,0,0,5,94.1,27.6,0,72.7,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,72.7,9.37044,1.609438,,0 +6,6,25,1,3,627603,1,11735.28,35.98768,1,17,1,0,0,0,0,0,0,0,0,0,0,0,5,94.1,27.6,0,72.7,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,72.7,9.37044,1.609438,,0 +13,6,0,0,1,627616,1,0,25.9165,0,7,1,0,0,0,0,0,0,0,0,0,0,0,5,74.3,3.4,0,69.3,450,0,0,0,1.609438,0,1,4.564348,6.160541,0,1,0,69.3,0,1.609438,,0 +13,6,0,0,2,627616,1,0,26.9165,0,7,1,0,0,0,0,0,0,0,0,0,0,0,5,74.3,3.4,0,69.3,450,0,0,0,1.609438,0,1,4.564348,6.160541,0,1,0,69.3,0,1.609438,,0 +13,6,0,0,3,627616,1,0,27.9165,0,7,1,11.49826,3.41115,0,0,0,14.90941,0,0,0,0,0,5,74.3,3.4,0,69.3,450,0,0,0,1.609438,0,1,4.564348,6.160541,0,1,0,69.3,0,1.609438,2.701993,1 +13,6,0,1,1,627617,1,0,19.85489,1,9,1,0,0,0,0,0,0,0,0,0,0,0,5,73.4,6.9,0,69.3,450,0,0,0,1.609438,0,1,4.564348,6.160541,0,1,0,69.3,0,1.609438,,0 +13,6,0,1,2,627617,1,0,20.85489,1,9,1,15.26718,8.641221,0,0,0,23.9084,0,0,0,1,0,5,73.4,6.9,0,69.3,450,0,0,0,1.609438,0,1,4.564348,6.160541,0,1,0,69.3,0,1.609438,3.17423,1 +13,6,0,1,3,627617,1,0,21.85489,1,9,1,5.923345,8.909408,0,0,798.2578,813.0906,1,0,0,1,0,5,73.4,6.9,0,69.3,450,0,0,0,1.609438,0,1,4.564348,6.160541,0,1,0,69.3,0,1.609438,6.700842,1 +13,6,0,1,1,627618,1,0,3.649555,1,9,1,8.932369,0,0,0,0,8.932369,0,0,0,1,0,5,77.40034,10.57626,0,85.2,450,0,1,1,1.609438,0,1,4.564348,6.160541,1,0,0,85.2,0,1.609438,2.189682,1 +13,6,0,1,2,627618,1,0,4.649555,1,9,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,85.2,450,0,1,1,1.609438,0,1,4.564348,6.160541,1,0,0,85.2,0,1.609438,,0 +13,6,0,1,3,627618,1,0,5.649555,1,9,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,85.2,450,0,1,1,1.609438,0,1,4.564348,6.160541,1,0,0,85.2,0,1.609438,,0 +14,6,95,1,1,627711,1,9537.635,14.59548,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,80.9,3.4,0,75,640,640,1,1,1.609438,6.461468,0,4.564348,6.512762,1,0,0,75,9.163106,1.609438,,0 +14,6,95,1,2,627711,1,9537.635,15.59548,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,80.9,3.4,0,75,640,640,1,1,1.609438,6.461468,0,4.564348,6.512762,1,0,0,75,9.163106,1.609438,,0 +14,6,95,1,3,627711,1,9537.635,16.59548,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,80.9,3.4,0,75,640,640,1,1,1.609438,6.461468,0,4.564348,6.512762,1,0,0,75,9.163106,1.609438,,0 +14,6,95,1,1,627713,1,9537.635,13.10062,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,81.7,10.57626,0,92.6,640,640,1,0,1.609438,6.461468,0,4.564348,6.512762,0,0,0,92.6,9.163106,1.609438,,0 +14,6,95,1,2,627713,1,9537.635,14.10062,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,81.7,10.57626,0,92.6,640,640,1,0,1.609438,6.461468,0,4.564348,6.512762,0,0,0,92.6,9.163106,1.609438,,0 +14,6,95,1,3,627713,1,9537.635,15.10062,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,81.7,10.57626,0,92.6,640,640,1,0,1.609438,6.461468,0,4.564348,6.512762,0,0,0,92.6,9.163106,1.609438,,0 +14,6,95,1,1,627714,1,9537.635,37.18002,1,12,1,0,0,33.00889,0,0,33.00889,0,0,0,0,0,5,73.4,24.1,1,47.6,640,640,0,0,1.609438,6.461468,0,4.564348,6.512762,1,0,0,47.6,9.163106,1.609438,3.496777,1 +14,6,95,1,2,627714,1,9537.635,38.18002,1,12,1,26.1959,0,0,0,0,26.1959,0,0,0,1,0,5,73.4,24.1,1,47.6,640,640,0,0,1.609438,6.461468,0,4.564348,6.512762,1,0,0,47.6,9.163106,1.609438,3.265603,1 +14,6,95,1,3,627714,1,9537.635,39.18002,1,12,1,10.72664,0,0,0,0,10.72664,0,0,0,0,0,5,73.4,24.1,1,47.6,640,640,0,0,1.609438,6.461468,0,4.564348,6.512762,1,0,0,47.6,9.163106,1.609438,2.372731,1 +14,6,95,1,1,627715,1,9537.635,17.0486,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,75,3.4,0,67,640,640,1,1,1.609438,6.461468,0,4.564348,6.512762,1,0,0,67,9.163106,1.609438,,0 +14,6,95,1,2,627715,1,9537.635,18.0486,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,75,3.4,0,67,640,640,0,0,1.609438,6.461468,0,4.564348,6.512762,1,0,0,67,9.163106,1.609438,,0 +14,6,95,1,3,627715,1,9537.635,19.0486,1,12,1,0,0,0,0,12.11073,12.11073,1,1,0,0,0,5,75,3.4,0,67,640,640,0,0,1.609438,6.461468,0,4.564348,6.512762,1,0,0,67,9.163106,1.609438,2.494092,1 +14,6,95,1,1,627716,1,9537.635,7.134839,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,75,10.57626,0,85.2,640,640,1,0,1.609438,6.461468,0,4.564348,6.512762,0,0,0,85.2,9.163106,1.609438,,0 +14,6,95,1,2,627716,1,9537.635,8.134839,0,12,1,11.76917,0,0,0,0,11.76917,0,0,0,0,0,5,75,10.57626,0,85.2,640,640,1,0,1.609438,6.461468,0,4.564348,6.512762,0,0,0,85.2,9.163106,1.609438,2.465484,1 +14,6,95,1,3,627716,1,9537.635,9.134839,0,12,1,18.68512,0,0,0,0,18.68512,0,0,0,0,0,5,75,10.57626,0,85.2,640,640,1,0,1.609438,6.461468,0,4.564348,6.512762,0,0,0,85.2,9.163106,1.609438,2.927727,1 +13,6,0,1,1,627717,0,7954.941,8.388775,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,85,10.57626,0,88.9,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,88.9,8.981674,1.386294,,0 +13,6,0,1,2,627717,0,7954.941,9.388775,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,85,10.57626,0,88.9,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,88.9,8.981674,1.386294,,0 +13,6,0,1,3,627717,0,7954.941,10.38877,1,13,1,17.83876,3.530017,0,0,0,21.36878,0,0,0,1,0,4,85,10.57626,0,88.9,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,88.9,8.981674,1.386294,3.061931,1 +13,6,0,1,1,627718,0,7954.941,29.16359,1,13,1,21.03492,0,0,0,0,21.03492,0,0,0,1,0,4,77.1,10.3,0,77.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,77.3,8.981674,1.386294,3.046184,1 +13,6,0,1,2,627718,0,7954.941,30.16359,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,77.1,10.3,0,77.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,77.3,8.981674,1.386294,,0 +13,6,0,1,3,627718,0,7954.941,31.16359,1,13,1,7.54717,4.559176,0,0,0,12.10635,0,0,0,1,0,4,77.1,10.3,0,77.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,77.3,8.981674,1.386294,2.49373,1 +13,6,0,1,1,627719,0,7954.941,31.33744,0,14,1,25.2419,0,0,0,0,25.2419,0,0,0,0,0,4,74.5,13.8,0,77.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,77.3,8.981674,1.386294,3.228505,1 +13,6,0,1,2,627719,0,7954.941,32.33744,0,14,1,7.555724,0,0,0,0,7.555724,0,0,0,1,0,4,74.5,13.8,0,77.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,77.3,8.981674,1.386294,2.022305,1 +13,6,0,1,3,627719,0,7954.941,33.33744,0,14,1,0,0,0,0,0,0,0,0,0,0,0,4,74.5,13.8,0,77.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,77.3,8.981674,1.386294,,0 +11,6,0,0,1,627725,0,3916.539,8.071184,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,96.7,10.57626,.1442925,100,0,124.32,1,0,.6931472,4.822859,0,0,0,0,0,0,100,8.273219,.6931472,,0 +11,6,0,0,2,627725,0,3916.539,9.071184,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,96.7,10.57626,.1442925,100,0,124.32,1,0,.6931472,4.822859,0,0,0,0,0,0,100,8.273219,.6931472,,0 +11,6,0,0,3,627725,0,3916.539,10.07118,0,12,1,16.26298,3.685121,0,0,0,19.9481,0,0,0,3,0,2,96.7,10.57626,.1442925,100,0,124.32,1,0,.6931472,4.822859,0,0,0,0,0,0,100,8.273219,.6931472,2.993134,1 +11,6,0,0,1,627726,0,3916.539,46.78987,1,12,1,10.57977,13.22471,33.85527,0,0,57.65976,0,0,0,0,1,2,81.9,10.3,0,89.8,0,124.32,0,0,.6931472,4.822859,0,0,0,0,0,0,89.8,8.273219,.6931472,4.054559,1 +11,6,0,0,2,627726,0,3916.539,47.78987,1,12,1,18.98254,73.22703,0,0,0,92.20956,0,0,0,1,1,2,81.9,10.3,0,89.8,0,124.32,0,0,.6931472,4.822859,0,0,0,0,0,0,89.8,8.273219,.6931472,4.524064,1 +11,6,0,0,3,627726,0,3916.539,48.78987,1,12,1,169.8962,88.59862,34.60208,0,1874.74,2167.837,2,0,0,9,1,2,81.9,10.3,0,89.8,0,124.32,0,0,.6931472,4.822859,0,0,0,0,0,0,89.8,8.273219,.6931472,7.681485,1 +11,6,0,1,1,627744,1,5922.683,44.99384,1,3,1,134.2226,57.87828,0,0,0,192.1009,0,0,0,7,0,5,63.3,17.2,0,44.3,0,154.8,0,0,1.609438,5.042134,0,0,0,0,0,1,44.3,8.686713,1.609438,5.25802,1 +11,6,0,1,2,627744,1,5922.683,45.99384,1,3,1,240.8102,60.08627,31.88297,0,886.7217,1219.501,2,0,0,9,1,5,63.3,17.2,0,44.3,0,154.8,0,0,1.609438,5.042134,0,0,0,0,0,1,44.3,8.686713,1.609438,7.106197,1 +11,6,0,1,3,627744,1,5922.683,46.99384,1,3,1,117.659,55.93708,0,0,0,173.5961,0,0,0,5,0,5,63.3,17.2,0,44.3,0,154.8,0,0,1.609438,5.042134,0,0,0,0,0,1,44.3,8.686713,1.609438,5.156731,1 +11,6,0,1,1,627745,1,5922.683,48.0794,0,3,1,43.76824,2.146728,0,0,0,45.91496,0,0,0,3,0,5,74.5,10.3,0,63.6,0,154.8,0,0,1.609438,5.042134,0,0,0,1,0,0,63.6,8.686713,1.609438,3.826791,1 +11,6,0,1,2,627745,1,5922.683,49.0794,0,3,1,77.26932,0,0,0,0,77.26932,0,0,0,2,0,5,74.5,10.3,0,63.6,0,154.8,0,0,1.609438,5.042134,0,0,0,1,0,0,63.6,8.686713,1.609438,4.347297,1 +11,6,0,1,3,627745,1,5922.683,50.0794,0,3,1,0,0,0,0,0,0,0,0,0,0,0,5,74.5,10.3,0,63.6,0,154.8,0,0,1.609438,5.042134,0,0,0,1,0,0,63.6,8.686713,1.609438,,0 +11,6,0,1,1,627746,1,5922.683,17.36071,1,3,1,67.52814,10.94206,0,0,0,78.4702,0,0,0,3,0,5,68.1,13.8,0,51.1,0,154.8,1,1,1.609438,5.042134,0,0,0,0,1,0,51.1,8.686713,1.609438,4.362719,1 +11,6,0,1,2,627746,1,5922.683,18.36071,1,3,1,68.26707,7.051763,0,0,0,75.31883,0,0,0,1,0,5,68.1,13.8,0,51.1,0,154.8,0,0,1.609438,5.042134,0,0,0,0,1,0,51.1,8.686713,1.609438,4.32173,1 +11,6,0,1,3,627746,1,5922.683,19.36071,1,3,1,66.81326,13.49797,0,0,0,80.31123,0,0,0,3,0,5,68.1,13.8,0,51.1,0,154.8,0,0,1.609438,5.042134,0,0,0,0,1,0,51.1,8.686713,1.609438,4.38591,1 +11,6,0,1,1,627747,1,5922.683,15.1321,1,3,1,88.37016,15.94414,0,0,0,104.3143,0,0,0,2,0,5,61.7,13.8,0,59.1,0,154.8,1,1,1.609438,5.042134,0,0,0,1,0,0,59.1,8.686713,1.609438,4.647408,1 +11,6,0,1,2,627747,1,5922.683,16.1321,1,3,1,130.9077,25.95649,0,0,0,156.8642,0,0,0,6,0,5,61.7,13.8,0,59.1,0,154.8,1,1,1.609438,5.042134,0,0,0,1,0,0,59.1,8.686713,1.609438,5.05538,1 +11,6,0,1,3,627747,1,5922.683,17.1321,1,3,1,59.20162,19.53654,0,0,488.8363,567.5744,1,0,0,4,0,5,61.7,13.8,0,59.1,0,154.8,1,1,1.609438,5.042134,0,0,0,1,0,0,59.1,8.686713,1.609438,6.341372,1 +11,6,0,1,1,627748,1,5922.683,9.960301,0,3,1,116.7153,6.773656,0,0,0,123.489,0,0,0,7,0,5,83.3,10.57626,0,74.1,0,154.8,1,0,1.609438,5.042134,0,0,0,1,0,0,74.1,8.686713,1.609438,4.816152,1 +11,6,0,1,2,627748,1,5922.683,10.9603,0,3,1,107.2768,2.006752,26.25657,0,0,135.5401,0,0,0,5,1,5,83.3,10.57626,0,74.1,0,154.8,1,0,1.609438,5.042134,0,0,0,1,0,0,74.1,8.686713,1.609438,4.909268,1 +11,6,0,1,3,627748,1,5922.683,11.9603,0,3,1,79.83762,3.366035,2.537212,0,0,85.74087,0,0,0,4,0,5,83.3,10.57626,0,74.1,0,154.8,1,0,1.609438,5.042134,0,0,0,1,0,0,74.1,8.686713,1.609438,4.45133,1 +11,6,0,0,1,627761,1,6735.316,14.22313,0,12,1,0,0,0,0,0,0,0,0,0,0,0,10,52.1,6.9,0,62.5,0,0,1,0,2.302585,0,0,0,0,1,0,0,62.5,8.815269,2.302585,,0 +11,6,0,0,2,627761,1,6735.316,15.22313,0,12,1,0,0,0,0,0,0,0,0,0,0,0,9,52.1,6.9,0,62.5,0,0,1,0,2.197225,0,0,0,0,1,0,0,62.5,8.815269,2.197225,,0 +11,6,0,0,3,627761,1,6735.316,16.22313,0,12,1,10.57977,0,0,0,0,10.57977,0,0,0,1,0,9,52.1,6.9,0,62.5,0,0,1,0,2.197225,0,0,0,0,1,0,0,62.5,8.815269,2.197225,2.358944,1 +11,6,0,0,4,627761,1,6735.316,17.22313,0,12,1,7.593014,0,0,0,0,7.593014,0,0,0,1,0,9,52.1,6.9,0,62.5,0,0,1,0,2.197225,0,0,0,0,1,0,0,62.5,8.815269,2.197225,2.027229,1 +11,6,0,0,5,627761,1,6735.316,18.22313,0,12,1,24.91349,5.550173,0,0,0,30.46367,0,0,0,3,0,9,52.1,6.9,0,62.5,0,0,0,0,2.197225,0,0,0,0,1,0,0,62.5,8.815269,2.197225,3.416535,1 +11,6,0,0,1,627762,1,6735.316,13.09788,1,12,1,0,.7930174,0,0,0,.7930174,0,0,0,0,0,10,71.7,10.57626,0,66.7,0,0,1,1,2.302585,0,0,0,0,1,0,0,66.7,8.815269,2.302585,-.23191,1 +11,6,0,0,2,627762,1,6735.316,14.09788,1,12,1,0,0,0,0,0,0,0,0,0,0,0,9,71.7,10.57626,0,66.7,0,0,1,1,2.197225,0,0,0,0,1,0,0,66.7,8.815269,2.197225,,0 +11,6,0,0,3,627762,1,6735.316,15.09788,1,12,1,0,.8463817,0,0,0,.8463817,0,0,0,0,0,9,71.7,10.57626,0,66.7,0,0,1,1,2.197225,0,0,0,0,1,0,0,66.7,8.815269,2.197225,-.1667848,1 +11,6,0,0,4,627762,1,6735.316,16.09788,1,12,1,19.36219,6.529993,0,0,0,25.89218,0,0,0,3,0,9,71.7,10.57626,0,66.7,0,0,1,1,2.197225,0,0,0,0,1,0,0,66.7,8.815269,2.197225,3.253941,1 +11,6,0,0,5,627762,1,6735.316,17.09788,1,12,1,6.920415,4.013841,0,0,0,10.93426,0,0,0,1,0,9,71.7,10.57626,0,66.7,0,0,1,1,2.197225,0,0,0,0,1,0,0,66.7,8.815269,2.197225,2.391901,1 +11,6,0,0,1,627763,1,6735.316,17.38535,0,12,1,12.46883,8.703242,0,0,367.0823,388.2544,1,0,0,2,0,10,73.4,6.9,0,67,0,0,1,0,2.302585,0,0,0,0,1,0,0,67,8.815269,2.302585,5.961661,1 +11,6,0,0,1,627764,1,6735.316,11.92334,1,12,1,0,0,0,0,0,0,0,0,0,0,0,10,81.7,10.57626,0,70.4,0,0,1,1,2.302585,0,0,0,0,1,0,0,70.4,8.815269,2.302585,,0 +11,6,0,0,2,627764,1,6735.316,12.92334,1,12,1,0,1.470724,0,0,0,1.470724,0,0,0,0,0,9,81.7,10.57626,0,70.4,0,0,1,1,2.197225,0,0,0,0,1,0,0,70.4,8.815269,2.197225,.3857547,1 +11,6,0,0,3,627764,1,6735.316,13.92334,1,12,1,0,0,0,0,0,0,0,0,0,0,0,9,81.7,10.57626,0,70.4,0,0,1,1,2.197225,0,0,0,0,1,0,0,70.4,8.815269,2.197225,,0 +11,6,0,0,4,627764,1,6735.316,14.92334,1,12,1,0,0,0,0,0,0,0,0,0,0,0,9,81.7,10.57626,0,70.4,0,0,1,1,2.197225,0,0,0,0,1,0,0,70.4,8.815269,2.197225,,0 +11,6,0,0,5,627764,1,6735.316,15.92334,1,12,1,16.609,10.10381,0,0,0,26.7128,0,0,0,2,0,9,81.7,10.57626,0,70.4,0,0,1,1,2.197225,0,0,0,0,1,0,0,70.4,8.815269,2.197225,3.285143,1 +11,6,0,0,1,627765,1,6735.316,16.12047,1,12,1,0,2.334165,0,0,0,2.334165,0,0,0,0,0,10,60.6,3.4,0,64.8,0,0,1,1,2.302585,0,0,0,0,1,0,0,64.8,8.815269,2.302585,.847654,1 +11,6,0,0,2,627765,1,6735.316,17.12047,1,12,1,0,0,0,0,0,0,0,0,0,0,0,9,60.6,3.4,0,64.8,0,0,1,1,2.197225,0,0,0,0,1,0,0,64.8,8.815269,2.197225,,0 +11,6,0,0,3,627765,1,6735.316,18.12047,1,12,1,23.2755,25.20948,0,0,0,48.48498,0,0,0,3,0,9,60.6,3.4,0,64.8,0,0,0,0,2.197225,0,0,0,0,1,0,0,64.8,8.815269,2.197225,3.881254,1 +11,6,0,0,4,627765,1,6735.316,19.12047,1,12,1,20.59605,20.01519,0,0,0,40.61124,0,0,0,1,0,9,60.6,3.4,0,64.8,0,0,0,0,2.197225,0,0,0,0,1,0,0,64.8,8.815269,2.197225,3.704045,1 +11,6,0,0,5,627765,1,6735.316,20.12047,1,12,1,0,0,0,0,0,0,0,0,0,0,0,9,60.6,3.4,0,64.8,0,0,0,0,2.197225,0,0,0,0,1,0,0,64.8,8.815269,2.197225,,0 +11,6,0,0,1,627766,1,6735.316,53.21287,0,10,1,0,0,0,0,0,0,0,0,0,0,0,10,73.4,13.8,0,75,0,0,0,0,2.302585,0,0,0,0,1,0,0,75,8.815269,2.302585,,0 +11,6,0,0,2,627766,1,6735.316,54.21287,0,10,1,24.89627,32.72937,0,0,195.9428,253.5685,1,1,0,4,0,9,73.4,13.8,0,75,0,0,0,0,2.197225,0,0,0,0,1,0,0,75,8.815269,2.197225,5.535634,1 +11,6,0,0,3,627766,1,6735.316,55.21287,0,10,1,75.32797,31.33305,0,0,0,106.661,0,0,0,10,0,9,73.4,13.8,0,75,0,0,0,0,2.197225,0,0,0,0,1,0,0,75,8.815269,2.197225,4.669656,1 +11,6,0,0,4,627766,1,6735.316,56.21287,0,10,1,59.98481,78.94457,0,0,0,138.9294,0,0,0,10,0,9,73.4,13.8,0,75,0,0,0,0,2.197225,0,0,0,0,1,0,0,75,8.815269,2.197225,4.933966,1 +11,6,0,0,5,627766,1,6735.316,57.21287,0,10,1,72.31834,66.15917,33.56401,0,0,172.0415,0,0,0,9,0,9,73.4,13.8,0,75,0,0,0,0,2.197225,0,0,0,0,1,0,0,75,8.815269,2.197225,5.147736,1 +11,6,0,0,1,627767,1,6735.316,45.30595,1,12,1,80.29926,2.857855,0,0,0,83.1571,0,0,0,7,0,10,65.4,17.2,0,56.8,0,0,0,0,2.302585,0,0,0,0,1,0,0,56.8,8.815269,2.302585,4.420732,1 +11,6,0,0,2,627767,1,6735.316,46.30595,1,12,1,18.44168,10.62241,0,0,0,29.06409,0,0,0,2,0,9,65.4,17.2,0,56.8,0,0,0,0,2.197225,0,0,0,0,1,0,0,56.8,8.815269,2.197225,3.369503,1 +11,6,0,0,3,627767,1,6735.316,47.30595,1,12,1,6.347863,7.173085,0,0,0,13.52095,0,0,0,1,0,9,65.4,17.2,0,56.8,0,0,0,0,2.197225,0,0,0,0,1,0,0,56.8,8.815269,2.197225,2.60424,1 +11,6,0,0,4,627767,1,6735.316,48.30595,1,12,1,14.42673,0,0,0,0,14.42673,0,0,0,1,0,9,65.4,17.2,0,56.8,0,0,0,0,2.197225,0,0,0,0,1,0,0,56.8,8.815269,2.197225,2.669083,1 +11,6,0,0,5,627767,1,6735.316,49.30595,1,12,1,51.55709,33.35986,0,0,0,84.91695,0,0,0,6,0,9,65.4,17.2,0,56.8,0,0,0,0,2.197225,0,0,0,0,1,0,0,56.8,8.815269,2.197225,4.441674,1 +11,6,0,0,1,627768,1,6735.316,9.823409,1,12,1,0,1.451372,0,0,0,1.451372,0,0,0,0,0,10,87.3,10.57626,0,77.8,0,0,1,1,2.302585,0,0,0,0,1,0,0,77.8,8.815269,2.302585,.372509,1 +11,6,0,0,2,627768,1,6735.316,10.82341,1,12,1,0,0,0,0,0,0,0,0,0,0,0,9,87.3,10.57626,0,77.8,0,0,1,1,2.197225,0,0,0,0,1,0,0,77.8,8.815269,2.197225,,0 +11,6,0,0,3,627768,1,6735.316,11.82341,1,12,1,0,0,0,0,0,0,0,0,0,0,0,9,87.3,10.57626,0,77.8,0,0,1,1,2.197225,0,0,0,0,1,0,0,77.8,8.815269,2.197225,,0 +11,6,0,0,4,627768,1,6735.316,12.82341,1,12,1,6.454062,0,0,0,0,6.454062,0,0,0,1,0,9,87.3,10.57626,0,77.8,0,0,1,1,2.197225,0,0,0,0,1,0,0,77.8,8.815269,2.197225,1.86471,1 +11,6,0,0,5,627768,1,6735.316,13.82341,1,12,1,20.0692,8.280277,0,0,0,28.34948,0,0,0,3,0,9,87.3,10.57626,0,77.8,0,0,1,1,2.197225,0,0,0,0,1,0,0,77.8,8.815269,2.197225,3.344609,1 +11,6,0,0,1,627785,1,6735.316,31.83299,1,12,1,367.3297,20.16928,27.59204,0,1038.934,1454.025,1,0,0,5,36,3,81.4,13.8,0,72.7,0,0,0,0,1.098612,0,0,0,0,1,0,0,72.7,8.815269,1.098612,7.282091,1 +11,6,0,0,2,627785,1,6735.316,32.83299,1,12,1,189.8254,7.406986,0,0,940.0152,1137.248,1,0,0,6,13,3,81.4,13.8,0,72.7,0,0,0,0,1.098612,0,0,0,0,1,0,0,72.7,8.815269,1.098612,7.036366,1 +11,6,0,0,3,627785,1,6735.316,33.83299,1,12,1,278.5467,6.027682,28.38754,0,0,312.9619,0,0,0,3,25,3,81.4,13.8,0,72.7,0,0,0,0,1.098612,0,0,0,0,1,0,0,72.7,8.815269,1.098612,5.746082,1 +11,6,0,0,1,627786,1,6735.316,3.022587,0,12,1,19.04359,1.231485,27.50741,0,0,47.78248,0,0,0,1,1,3,77.40034,10.57626,0,96.3,0,0,1,0,1.098612,0,0,0,0,0,0,0,96.3,8.815269,1.098612,3.866659,1 +11,6,0,0,2,627786,1,6735.316,4.022587,0,12,1,73.65224,10.05315,0,0,0,83.70539,0,0,0,4,11,3,77.40034,10.57626,0,96.3,0,0,1,0,1.098612,0,0,0,0,0,0,0,96.3,8.815269,1.098612,4.427303,1 +11,6,0,0,3,627786,1,6735.316,5.022587,0,12,1,101.7301,1.179931,19.72318,0,0,122.6332,0,0,0,0,10,3,77.40034,10.57626,0,96.3,0,0,1,0,1.098612,0,0,0,0,0,0,0,96.3,8.815269,1.098612,4.809198,1 +11,6,0,0,1,627787,1,6735.316,33.76591,0,12,1,242.0652,24.07533,8.463818,0,0,274.6043,0,0,0,2,32,3,77.1,17.2,0,64.8,0,0,0,0,1.098612,0,0,0,0,1,0,0,64.8,8.815269,1.098612,5.615331,1 +11,6,0,0,2,627787,1,6735.316,34.76591,0,12,1,276.7654,0,0,0,0,276.7654,0,0,0,0,31,3,77.1,17.2,0,64.8,0,0,0,0,1.098612,0,0,0,0,1,0,0,64.8,8.815269,1.098612,5.62317,1 +11,6,0,0,3,627787,1,6735.316,35.76591,0,12,1,194.1176,0,0,0,0,194.1176,0,0,0,1,21,3,77.1,17.2,0,64.8,0,0,0,0,1.098612,0,0,0,0,1,0,0,64.8,8.815269,1.098612,5.268465,1 +7,6,25,0,1,627809,1,4621.608,43.28268,1,11,1,63.94615,11.96045,0,0,0,75.90661,0,0,0,2,0,2,84.6,6.9,0,67,750,0,0,0,.6931472,0,0,3.258096,8.006368,1,0,0,67,8.438714,.6931472,4.329504,1 +7,6,25,0,2,627809,1,4621.608,44.28268,1,11,1,23.23385,0,0,0,237.6275,260.8614,1,0,0,1,0,2,84.6,6.9,0,67,750,0,0,0,.6931472,0,0,3.258096,8.006368,1,0,0,67,8.438714,.6931472,5.563989,1 +7,6,25,0,3,627809,1,4621.608,45.28268,1,11,1,211.6638,0,37.73585,0,0,249.3997,0,0,0,2,1,1,84.6,6.9,0,67,750,0,0,0,0,0,0,3.258096,8.006368,1,0,0,67,8.438714,0,5.519057,1 +13,6,0,1,1,627814,1,10992.32,26.33539,0,12,1,104.5281,0,0,0,0,104.5281,0,0,0,5,0,4,78.7,3.4,0,83,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,83,9.305043,1.386294,4.649457,1 +13,6,0,1,2,627814,1,10992.32,27.33539,0,12,1,46.69704,0,0,0,0,46.69704,0,0,0,2,0,4,78.7,3.4,0,83,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,83,9.305043,1.386294,3.843681,1 +13,6,0,1,3,627814,1,10992.32,28.33539,0,12,1,109.6886,0,0,0,246.0208,355.7094,1,1,0,2,0,4,78.7,3.4,0,83,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,83,9.305043,1.386294,5.874114,1 +13,6,0,1,1,627815,1,10992.32,5.24846,0,12,1,11.42615,0,0,0,0,11.42615,0,0,0,0,0,4,77.40034,10.57626,0,92.6,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,92.6,9.305043,1.386294,2.435905,1 +13,6,0,1,2,627815,1,10992.32,6.24846,0,12,1,4.555809,0,0,0,0,4.555809,0,0,0,1,0,4,77.40034,10.57626,0,92.6,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,92.6,9.305043,1.386294,1.516403,1 +13,6,0,1,3,627815,1,10992.32,7.24846,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,0,92.6,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,92.6,9.305043,1.386294,,0 +13,6,0,1,1,627816,1,10992.32,25.11157,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,78.2,6.9,0,83,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,83,9.305043,1.386294,,0 +13,6,0,1,2,627816,1,10992.32,26.11157,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,78.2,6.9,0,83,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,83,9.305043,1.386294,,0 +13,6,0,1,3,627816,1,10992.32,27.11157,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,78.2,6.9,0,83,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,83,9.305043,1.386294,,0 +11,6,0,1,1,627897,1,6911.83,28.16701,1,12,1,243.2432,38.06879,32.43243,0,622.113,935.8575,2,0,0,15,2,3,26.6,20.7,0,59.1,0,0,0,0,1.098612,0,0,0,0,0,0,0,59.1,8.841134,1.098612,6.841463,1 +11,6,0,1,2,627897,1,6911.83,29.16701,1,12,1,81.13036,11.42206,23.701,0,0,116.2534,0,0,0,6,0,3,26.6,20.7,0,59.1,0,0,0,0,1.098612,0,0,0,0,0,0,0,59.1,8.841134,1.098612,4.755773,1 +11,6,0,1,3,627897,1,6911.83,30.16701,1,12,1,77.94914,61.5048,0,0,0,139.4539,0,0,0,6,0,3,26.6,20.7,0,59.1,0,0,0,0,1.098612,0,0,0,0,0,0,0,59.1,8.841134,1.098612,4.937734,1 +11,6,0,1,4,627897,1,6911.83,31.16701,1,12,1,142.5356,56.96549,28.50713,0,0,228.0083,0,0,0,11,0,3,26.6,20.7,0,59.1,0,0,0,0,1.098612,0,0,0,0,0,0,0,59.1,8.841134,1.098612,5.429382,1 +11,6,0,1,5,627897,1,6911.83,32.16701,1,12,1,109.1001,90.0406,0,0,649.8647,849.0054,1,0,0,8,0,3,26.6,20.7,0,59.1,0,0,0,0,1.098612,0,0,0,0,0,0,0,59.1,8.841134,1.098612,6.744066,1 +11,6,0,1,1,627898,1,6911.83,4.454483,1,12,1,30.46683,2.088452,0,0,0,32.55528,0,0,0,2,1,3,77.40034,10.57626,0,81.5,0,0,1,1,1.098612,0,0,0,0,0,0,0,81.5,8.841134,1.098612,3.48294,1 +11,6,0,1,2,627898,1,6911.83,5.454483,1,12,1,30.53783,0,0,0,0,30.53783,0,0,0,0,0,3,77.40034,10.57626,0,81.5,0,0,1,1,1.098612,0,0,0,0,0,0,0,81.5,8.841134,1.098612,3.418966,1 +11,6,0,1,3,627898,1,6911.83,6.454483,1,12,1,64.61025,13.41392,0,0,0,78.02418,0,0,0,4,0,3,77.40034,10.57626,0,81.5,0,0,1,1,1.098612,0,0,0,0,0,0,0,81.5,8.841134,1.098612,4.357019,1 +11,6,0,1,4,627898,1,6911.83,7.454483,1,12,1,0,3.788447,0,0,0,3.788447,0,0,0,0,0,3,77.40034,10.57626,0,81.5,0,0,1,1,1.098612,0,0,0,0,0,0,0,81.5,8.841134,1.098612,1.331956,1 +11,6,0,1,5,627898,1,6911.83,8.454483,1,12,1,32.47632,2.537212,0,0,0,35.01353,0,0,0,1,0,3,77.40034,10.57626,0,81.5,0,0,1,1,1.098612,0,0,0,0,0,0,0,81.5,8.841134,1.098612,3.555735,1 +11,6,0,1,1,627899,1,6911.83,7.879535,1,12,1,56.51105,4.235872,24.57002,0,0,85.31696,0,0,0,4,1,3,61.7,10.57626,0,77.8,0,0,1,1,1.098612,0,0,0,0,0,0,0,77.8,8.841134,1.098612,4.446373,1 +11,6,0,1,2,627899,1,6911.83,8.879535,1,12,1,36.00729,0,2.278943,0,0,38.28624,0,0,0,2,0,3,61.7,10.57626,0,77.8,0,0,1,1,1.098612,0,0,0,0,0,0,0,77.8,8.841134,1.098612,3.64509,1 +11,6,0,1,3,627899,1,6911.83,9.879535,1,12,1,64.19341,5.835765,30.0125,0,0,100.0417,0,0,0,4,1,3,61.7,10.57626,0,77.8,0,0,1,1,1.098612,0,0,0,0,0,0,0,77.8,8.841134,1.098612,4.605587,1 +11,6,0,1,4,627899,1,6911.83,10.87953,1,12,1,43.13578,7.314329,0,0,0,50.45011,0,0,0,1,0,3,61.7,10.57626,0,77.8,0,0,1,1,1.098612,0,0,0,0,0,0,0,77.8,8.841134,1.098612,3.920985,1 +11,6,0,1,5,627899,1,6911.83,11.87953,1,12,1,16.57645,2.689445,0,0,0,19.2659,0,0,0,2,0,3,61.7,10.57626,0,77.8,0,0,1,1,1.098612,0,0,0,0,0,0,0,77.8,8.841134,1.098612,2.958337,1 +13,6,0,1,1,627935,1,1759.531,30.0616,1,11,1,44.88778,9.441397,0,0,0,54.32918,0,0,0,7,0,7,55.9,13.8,0,56.8,450,0,0,0,1.94591,0,1,4.564348,6.160541,1,0,0,56.8,7.473371,1.94591,3.995061,1 +13,6,0,1,2,627935,1,1759.531,31.0616,1,11,1,13.83126,0,0,0,0,13.83126,0,0,0,1,0,7,55.9,13.8,0,56.8,450,0,0,0,1.94591,0,1,4.564348,6.160541,1,0,0,56.8,7.473371,1.94591,2.626931,1 +13,6,0,1,3,627935,1,1759.531,32.0616,1,11,1,19.04359,0,0,0,0,19.04359,0,0,0,2,0,7,55.9,13.8,0,56.8,450,0,0,0,1.94591,0,1,4.564348,6.160541,1,0,0,56.8,7.473371,1.94591,2.94673,1 +13,6,0,1,4,627935,1,1759.531,33.0616,1,11,1,30.75171,3.139711,0,0,0,33.89142,0,0,0,4,0,7,55.9,13.8,0,56.8,450,0,0,0,1.94591,0,1,4.564348,6.160541,1,0,0,56.8,7.473371,1.94591,3.523162,1 +13,6,0,1,5,627935,1,1759.531,34.0616,1,11,1,175.0865,37.15225,0,0,0,212.2388,0,0,0,10,0,7,55.9,13.8,0,56.8,450,0,0,0,1.94591,0,1,4.564348,6.160541,1,0,0,56.8,7.473371,1.94591,5.357712,1 +13,6,0,1,1,627936,1,1759.531,32.40247,0,12,1,12.46883,4.014963,0,0,0,16.48379,0,0,0,2,0,7,83,3.4,0,75,450,0,0,0,1.94591,0,1,4.564348,6.160541,1,0,0,75,7.473371,1.94591,2.802377,1 +13,6,0,1,2,627936,1,1759.531,33.40247,0,12,1,4.61042,0,0,0,0,4.61042,0,0,0,1,0,7,83,3.4,0,75,450,0,0,0,1.94591,0,1,4.564348,6.160541,1,0,0,75,7.473371,1.94591,1.528319,1 +13,6,0,1,3,627936,1,1759.531,34.40247,0,12,1,25.81464,7.321202,0,0,0,33.13585,0,0,0,1,0,7,83,3.4,0,75,450,0,0,0,1.94591,0,1,4.564348,6.160541,1,0,0,75,7.473371,1.94591,3.500616,1 +13,6,0,1,4,627936,1,1759.531,35.40247,0,12,1,0,0,0,0,0,0,0,0,0,0,0,7,83,3.4,0,75,450,0,0,0,1.94591,0,1,4.564348,6.160541,1,0,0,75,7.473371,1.94591,,0 +13,6,0,1,5,627936,1,1759.531,36.40247,0,12,1,32.52595,1.276817,0,0,0,33.80277,0,0,0,3,0,7,83,3.4,0,75,450,0,0,0,1.94591,0,1,4.564348,6.160541,1,0,0,75,7.473371,1.94591,3.520543,1 +13,6,0,1,1,627937,1,1759.531,3.041752,0,11,1,19.95012,12.26933,0,0,0,32.21945,0,0,0,4,0,7,77.40034,10.57626,0,96.3,450,0,1,0,1.94591,0,1,4.564348,6.160541,1,0,0,96.3,7.473371,1.94591,3.47257,1 +13,6,0,1,2,627937,1,1759.531,4.041752,0,11,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,0,96.3,450,0,1,0,1.94591,0,1,4.564348,6.160541,1,0,0,96.3,7.473371,1.94591,,0 +13,6,0,1,3,627937,1,1759.531,5.041752,0,11,1,0,.647482,0,0,0,.647482,0,0,0,0,0,7,77.40034,10.57626,0,96.3,450,0,1,0,1.94591,0,1,4.564348,6.160541,1,0,0,96.3,7.473371,1.94591,-.4346642,1 +13,6,0,1,4,627937,1,1759.531,6.041752,0,11,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,0,96.3,450,0,1,0,1.94591,0,1,4.564348,6.160541,1,0,0,96.3,7.473371,1.94591,,0 +13,6,0,1,5,627937,1,1759.531,7.041752,0,11,1,5.882353,0,0,0,0,5.882353,0,0,0,1,0,7,77.40034,10.57626,0,96.3,450,0,1,0,1.94591,0,1,4.564348,6.160541,1,0,0,96.3,7.473371,1.94591,1.771957,1 +13,6,0,1,1,627938,1,1759.531,8.150581,0,11,1,21.44638,5.431421,0,0,0,26.87781,0,0,0,2,0,7,86.7,10.57626,0,66.7,450,0,1,0,1.94591,0,1,4.564348,6.160541,1,0,0,66.7,7.473371,1.94591,3.291301,1 +13,6,0,1,2,627938,1,1759.531,9.150581,0,11,1,0,0,0,0,0,0,0,0,0,0,0,7,86.7,10.57626,0,66.7,450,0,1,0,1.94591,0,1,4.564348,6.160541,1,0,0,66.7,7.473371,1.94591,,0 +13,6,0,1,3,627938,1,1759.531,10.15058,0,11,1,0,0,0,0,0,0,0,0,0,0,0,7,86.7,10.57626,0,66.7,450,0,1,0,1.94591,0,1,4.564348,6.160541,1,0,0,66.7,7.473371,1.94591,,0 +13,6,0,1,4,627938,1,1759.531,11.15058,0,11,1,12.90812,0,0,0,0,12.90812,0,0,0,1,0,7,86.7,10.57626,0,66.7,450,0,1,0,1.94591,0,1,4.564348,6.160541,1,0,0,66.7,7.473371,1.94591,2.557857,1 +13,6,0,1,5,627938,1,1759.531,12.15058,0,11,1,0,0,0,0,0,0,0,0,0,0,0,7,86.7,10.57626,0,66.7,450,0,1,0,1.94591,0,1,4.564348,6.160541,1,0,0,66.7,7.473371,1.94591,,0 +13,6,0,1,1,627939,1,1759.531,9.492128,0,11,1,0,0,0,0,0,0,0,0,0,0,0,7,86.7,10.57626,0,77.8,450,0,1,0,1.94591,0,1,4.564348,6.160541,1,0,0,77.8,7.473371,1.94591,,0 +13,6,0,1,2,627939,1,1759.531,10.49213,0,11,1,0,0,0,0,0,0,0,0,0,0,0,7,86.7,10.57626,0,77.8,450,0,1,0,1.94591,0,1,4.564348,6.160541,1,0,0,77.8,7.473371,1.94591,,0 +13,6,0,1,3,627939,1,1759.531,11.49213,0,11,1,0,0,0,0,0,0,0,0,0,0,0,7,86.7,10.57626,0,77.8,450,0,1,0,1.94591,0,1,4.564348,6.160541,1,0,0,77.8,7.473371,1.94591,,0 +13,6,0,1,4,627939,1,1759.531,12.49213,0,11,1,33.78891,0,0,0,0,33.78891,0,0,0,2,0,7,86.7,10.57626,0,77.8,450,0,1,0,1.94591,0,1,4.564348,6.160541,1,0,0,77.8,7.473371,1.94591,3.520133,1 +13,6,0,1,5,627939,1,1759.531,13.49213,0,11,1,5.882353,2.508651,0,0,0,8.391004,0,0,0,1,0,7,86.7,10.57626,0,77.8,450,0,1,0,1.94591,0,1,4.564348,6.160541,1,0,0,77.8,7.473371,1.94591,2.12716,1 +13,6,0,1,1,627940,1,1759.531,5.262149,1,11,1,0,0,0,0,0,0,0,0,0,0,0,7,83.3,10.57626,0,81.5,450,0,1,1,1.94591,0,1,4.564348,6.160541,1,0,0,81.5,7.473371,1.94591,,0 +13,6,0,1,2,627940,1,1759.531,6.262149,1,11,1,9.681881,3.208852,0,0,0,12.89073,0,0,0,1,0,7,83.3,10.57626,0,81.5,450,0,1,1,1.94591,0,1,4.564348,6.160541,1,0,0,81.5,7.473371,1.94591,2.556509,1 +13,6,0,1,3,627940,1,1759.531,7.262149,1,11,1,0,0,0,0,0,0,0,0,0,0,0,7,83.3,10.57626,0,81.5,450,0,1,1,1.94591,0,1,4.564348,6.160541,1,0,0,81.5,7.473371,1.94591,,0 +13,6,0,1,4,627940,1,1759.531,8.262149,1,11,1,0,0,0,0,0,0,0,0,0,0,0,7,83.3,10.57626,0,81.5,450,0,1,1,1.94591,0,1,4.564348,6.160541,1,0,0,81.5,7.473371,1.94591,,0 +13,6,0,1,5,627940,1,1759.531,9.262149,1,11,1,0,1.017301,0,0,0,1.017301,0,0,0,0,0,7,83.3,10.57626,0,81.5,450,0,1,1,1.94591,0,1,4.564348,6.160541,1,0,0,81.5,7.473371,1.94591,.0171531,1 +13,6,0,1,1,627941,1,1759.531,10.8501,1,11,1,0,0,0,0,0,0,0,0,0,0,0,7,70,10.57626,0,66.7,450,0,1,1,1.94591,0,1,4.564348,6.160541,1,0,0,66.7,7.473371,1.94591,,0 +13,6,0,1,2,627941,1,1759.531,11.8501,1,11,1,0,0,0,0,0,0,0,0,0,0,0,7,70,10.57626,0,66.7,450,0,1,1,1.94591,0,1,4.564348,6.160541,1,0,0,66.7,7.473371,1.94591,,0 +13,6,0,1,3,627941,1,1759.531,12.8501,1,11,1,0,0,0,0,0,0,0,0,0,0,0,7,70,10.57626,0,66.7,450,0,1,1,1.94591,0,1,4.564348,6.160541,1,0,0,66.7,7.473371,1.94591,,0 +13,6,0,1,4,627941,1,1759.531,13.8501,1,11,1,0,0,0,0,0,0,0,0,0,0,0,7,70,10.57626,0,66.7,450,0,1,1,1.94591,0,1,4.564348,6.160541,1,0,0,66.7,7.473371,1.94591,,0 +13,6,0,1,5,627941,1,1759.531,14.8501,1,11,1,0,0,0,0,0,0,0,0,0,0,0,7,70,10.57626,0,66.7,450,0,1,1,1.94591,0,1,4.564348,6.160541,1,0,0,66.7,7.473371,1.94591,,0 +13,6,0,0,1,627984,0,1259.824,55.1102,1,5,1,24.93766,2.618454,8.478803,0,0,36.03491,0,0,0,4,0,2,53.7,37.9,1,23.9,300,527.52,0,0,.6931472,6.268187,1,4.564348,5.755076,0,0,1,23.9,7.139521,.6931472,3.584488,1 +13,6,0,0,2,627984,0,1259.824,56.1102,1,5,1,124.9424,36.84186,24.66574,0,623.3287,809.7787,1,1,0,7,1,1,53.7,37.9,1,23.9,300,527.52,0,0,0,6.268187,1,4.564348,5.755076,0,0,1,23.9,7.139521,0,6.696761,1 +13,6,0,0,3,627984,0,1259.824,57.1102,1,5,1,273.8045,87.60051,0,0,1041.05,1402.454,2,0,0,29,0,1,53.7,37.9,1,23.9,300,527.52,0,0,0,6.268187,1,4.564348,5.755076,0,0,1,23.9,7.139521,0,7.245979,1 +13,6,0,0,4,627984,0,1259.824,58.1102,1,5,1,22.77904,27.62718,0,0,0,50.40623,0,0,0,5,0,1,53.7,37.9,1,23.9,300,527.52,0,0,0,6.268187,1,4.564348,5.755076,0,0,1,23.9,7.139521,0,3.920115,1 +13,6,0,0,1,627985,0,1259.824,56.67351,0,3,1,72.3192,167.9551,0,0,0,240.2743,0,0,0,5,0,2,59,27.6,1,19.3,300,527.52,0,0,.6931472,6.268187,1,4.564348,5.755076,0,0,1,19.3,7.139521,.6931472,5.481781,1 +10,6,50,1,1,627990,0,11746.54,4.380561,1,7,1,26.66102,9.784173,0,0,275.7723,312.2175,1,0,0,3,0,4,77.40034,10.57626,0,85.2,1000,1000,1,1,1.386294,6.907755,0,3.931826,7.600903,1,0,0,85.2,9.3714,1.386294,5.7437,1 +10,6,50,1,2,627990,0,11746.54,5.380561,1,7,1,32.64996,4.164768,0,0,0,36.81473,0,0,0,3,0,4,77.40034,10.57626,0,85.2,1000,1000,1,1,1.386294,6.907755,0,3.931826,7.600903,1,0,0,85.2,9.3714,1.386294,3.605898,1 +10,6,50,1,3,627990,0,11746.54,6.380561,1,7,1,5.190311,3.384083,0,0,0,8.574394,0,0,0,1,0,4,77.40034,10.57626,0,85.2,1000,1000,1,1,1.386294,6.907755,0,3.931826,7.600903,1,0,0,85.2,9.3714,1.386294,2.14878,1 +10,6,50,1,1,627991,0,11746.54,25.77413,1,7,1,13.54211,0,0,0,0,13.54211,0,0,0,1,0,4,77.1,10.3,1,36.4,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,1,0,0,36.4,9.3714,1.386294,2.605804,1 +10,6,50,1,2,627991,0,11746.54,26.77413,1,7,1,45.93774,16.79955,0,0,427.4867,490.224,2,0,0,3,0,4,77.1,10.3,1,36.4,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,1,0,0,36.4,9.3714,1.386294,6.194862,1 +10,6,50,1,3,627991,0,11746.54,27.77413,1,7,1,135.9862,11.01038,0,0,970.5883,1117.585,1,0,0,4,0,4,77.1,10.3,1,36.4,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,1,0,0,36.4,9.3714,1.386294,7.018925,1 +10,6,50,1,1,627992,0,11746.54,31.21971,0,6,1,65.17139,5.501481,0,0,0,70.67287,0,0,0,2,0,4,82.4,13.8,0,84.1,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,1,0,84.1,9.3714,1.386294,4.258062,1 +10,6,50,1,2,627992,0,11746.54,32.21971,0,6,1,15.18603,0,27.33485,0,0,42.52088,0,0,0,1,0,4,82.4,13.8,0,84.1,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,1,0,84.1,9.3714,1.386294,3.749995,1 +10,6,50,1,3,627992,0,11746.54,33.21971,0,6,1,19.72318,0,13.84083,0,0,33.56401,0,0,0,0,0,4,82.4,13.8,0,84.1,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,1,0,84.1,9.3714,1.386294,3.513454,1 +10,6,50,1,1,627993,0,11746.54,6.773443,1,7,1,0,2.166737,0,0,0,2.166737,0,0,0,0,0,4,85,10.57626,0,85.2,1000,1000,1,1,1.386294,6.907755,0,3.931826,7.600903,0,1,0,85.2,9.3714,1.386294,.7732224,1 +10,6,50,1,2,627993,0,11746.54,7.773443,1,7,1,16.32498,.7555049,0,0,0,17.08049,0,0,0,2,0,4,85,10.57626,0,85.2,1000,1000,1,1,1.386294,6.907755,0,3.931826,7.600903,0,1,0,85.2,9.3714,1.386294,2.837937,1 +10,6,50,1,3,627993,0,11746.54,8.773443,1,7,1,53.63322,1.795848,0,0,0,55.42907,0,0,0,4,0,4,85,10.57626,0,85.2,1000,1000,1,1,1.386294,6.907755,0,3.931826,7.600903,0,1,0,85.2,9.3714,1.386294,4.015104,1 +11,6,0,1,1,628044,1,4507.918,49.81246,0,3,1,113.1814,21.97721,0,0,0,135.1586,0,0,0,12,0,5,82.4,10.3,1,52.3,0,279.24,0,0,1.609438,5.632071,0,0,0,0,0,1,52.3,8.413813,1.609438,4.906449,1 +11,6,0,1,2,628044,1,4507.918,50.81246,0,3,1,11.47315,5.736577,42.2212,0,0,59.43093,0,0,0,0,1,5,82.4,10.3,1,52.3,0,279.24,0,0,1.609438,5.632071,0,0,0,0,0,1,52.3,8.413813,1.609438,4.084815,1 +11,6,0,1,3,628044,1,4507.918,51.81246,0,3,1,42.91123,4.080774,25.2419,0,0,72.23391,0,0,0,2,0,5,82.4,10.3,1,52.3,0,279.24,0,0,1.609438,5.632071,0,0,0,0,0,1,52.3,8.413813,1.609438,4.27991,1 +11,6,0,1,4,628044,1,4507.918,52.81246,0,3,1,11.33358,0,40.04533,0,0,51.37892,0,0,0,0,1,5,82.4,10.3,1,52.3,0,279.24,0,0,1.609438,5.632071,0,0,0,0,0,1,52.3,8.413813,1.609438,3.939228,1 +11,6,0,1,5,628044,1,4507.918,53.81246,0,3,1,165.3516,28.4048,0,0,0,193.7564,0,0,0,11,0,5,82.4,10.3,1,52.3,0,279.24,0,0,1.609438,5.632071,0,0,0,0,0,1,52.3,8.413813,1.609438,5.266602,1 +11,6,0,1,1,628045,.5112414,0,19.96441,1,11,1,62.43806,21.68484,0,0,0,84.12289,0,0,0,5,0,2,85.1,6.9,0,72.7,0,0,0,0,.6931472,0,0,0,0,0,1,0,72.7,0,.6931472,4.432279,1 +11,6,0,1,2,628045,.5112414,0,20.96441,1,11,1,54.61221,29.37127,0,0,0,83.98348,0,0,0,2,0,2,85.1,6.9,0,72.7,0,0,0,0,.6931472,0,0,0,0,0,1,0,72.7,0,.6931472,4.43062,1 +11,6,0,1,3,628045,.5112414,0,21.96441,1,11,1,55.11148,28.29197,0,0,0,83.40345,0,0,0,3,0,2,85.1,6.9,0,72.7,0,0,0,0,.6931472,0,0,0,0,0,1,0,72.7,0,.6931472,4.42369,1 +11,6,0,1,4,628045,.5112414,0,22.96441,1,11,1,0,4.627881,0,0,0,4.627881,0,0,0,0,0,2,85.1,6.9,0,72.7,0,0,0,0,.6931472,0,0,0,0,0,1,0,72.7,0,.6931472,1.532099,1 +11,6,0,1,5,628045,.5112414,0,23.96441,1,11,1,77.87307,38.90223,0,0,0,116.7753,0,0,0,3,0,2,85.1,6.9,0,72.7,0,0,0,0,.6931472,0,0,0,0,0,1,0,72.7,0,.6931472,4.760252,1 +11,6,0,1,1,628046,1,4507.918,17.44832,1,9,1,34.19227,6.442022,0,0,0,40.63429,0,0,0,3,1,5,43.6,3.4,0,47.7,0,279.24,1,1,1.609438,5.632071,0,0,0,0,1,0,47.7,8.413813,1.609438,3.704612,1 +11,6,0,1,2,628046,1,4507.918,18.44832,1,9,1,57.36576,6.76916,0,0,0,64.13493,0,0,0,2,0,5,43.6,3.4,0,47.7,0,279.24,0,0,1.609438,5.632071,0,0,0,0,1,0,47.7,8.413813,1.609438,4.160989,1 +11,6,0,1,3,628046,1,4507.918,19.44832,1,9,1,31.55238,0,38.28355,0,0,69.83593,0,0,0,2,1,5,43.6,3.4,0,47.7,0,279.24,0,0,1.609438,5.632071,0,0,0,0,1,0,47.7,8.413813,1.609438,4.246149,1 +11,6,0,1,4,628046,1,4507.918,20.44832,1,9,1,0,0,0,0,0,0,0,0,0,0,0,5,43.6,3.4,0,47.7,0,279.24,0,0,1.609438,5.632071,0,0,0,0,1,0,47.7,8.413813,1.609438,,0 +11,6,0,1,5,628046,1,4507.918,21.44832,1,9,1,39.45111,9.948542,31.21784,0,0,80.61749,0,0,0,2,1,5,43.6,3.4,0,47.7,0,279.24,0,0,1.609438,5.632071,0,0,0,0,1,0,47.7,8.413813,1.609438,4.389716,1 +11,6,0,1,1,628047,1,4507.918,15.44969,0,9,1,0,0,0,0,0,0,0,0,0,0,0,5,69.7,3.4,0,55.7,0,279.24,1,0,1.609438,5.632071,0,0,0,0,1,0,55.7,8.413813,1.609438,,0 +11,6,0,1,2,628047,1,4507.918,16.44969,0,9,1,0,0,0,0,0,0,0,0,0,0,0,5,69.7,3.4,0,55.7,0,279.24,1,0,1.609438,5.632071,0,0,0,0,1,0,55.7,8.413813,1.609438,,0 +11,6,0,1,3,628047,1,4507.918,17.44969,0,9,1,0,0,0,0,0,0,0,0,0,0,0,5,69.7,3.4,0,55.7,0,279.24,1,0,1.609438,5.632071,0,0,0,0,1,0,55.7,8.413813,1.609438,,0 +11,6,0,1,4,628047,1,4507.918,18.44969,0,9,1,0,0,0,0,0,0,0,0,0,0,0,5,69.7,3.4,0,55.7,0,279.24,0,0,1.609438,5.632071,0,0,0,0,1,0,55.7,8.413813,1.609438,,0 +11,6,0,1,5,628047,1,4507.918,19.44969,0,9,1,46.31218,11.54374,0,0,0,57.85592,0,0,0,3,0,5,69.7,3.4,0,55.7,0,279.24,0,0,1.609438,5.632071,0,0,0,0,1,0,55.7,8.413813,1.609438,4.057956,1 +11,6,0,1,1,628048,1,4507.918,13.77687,1,9,1,84.24182,3.607532,0,0,0,87.84936,0,0,0,4,0,5,90,10.57626,0,81.5,0,279.24,1,1,1.609438,5.632071,0,0,0,0,1,0,81.5,8.413813,1.609438,4.475624,1 +11,6,0,1,2,628048,1,4507.918,14.77687,1,9,1,47.72832,9.178522,0,0,0,56.90684,0,0,0,3,0,5,90,10.57626,0,81.5,0,279.24,1,1,1.609438,5.632071,0,0,0,0,1,0,81.5,8.413813,1.609438,4.041416,1 +11,6,0,1,3,628048,1,4507.918,15.77687,1,9,1,50.06311,4.627682,0,0,0,54.69079,0,0,0,2,0,5,90,10.57626,0,81.5,0,279.24,1,1,1.609438,5.632071,0,0,0,0,1,0,81.5,8.413813,1.609438,4.001695,1 +11,6,0,1,4,628048,1,4507.918,16.77687,1,9,1,23.42274,0,0,0,0,23.42274,0,0,0,0,0,5,90,10.57626,0,81.5,0,279.24,1,1,1.609438,5.632071,0,0,0,0,1,0,81.5,8.413813,1.609438,3.153708,1 +11,6,0,1,5,628048,1,4507.918,17.77687,1,9,1,44.25386,3.910806,0,0,0,48.16467,0,0,0,2,0,5,90,10.57626,0,81.5,0,279.24,1,1,1.609438,5.632071,0,0,0,0,1,0,81.5,8.413813,1.609438,3.874626,1 +11,6,0,1,1,628049,1,4507.918,46.84189,1,9,1,87.7106,21.56591,0,0,0,109.2765,0,0,0,4,0,5,64.9,13.8,0,54.5,0,279.24,0,0,1.609438,5.632071,0,0,0,0,1,0,54.5,8.413813,1.609438,4.693882,1 +11,6,0,1,2,628049,1,4507.918,47.84189,1,9,1,32.12483,15.02983,49.10509,0,0,96.25975,0,0,0,1,1,5,64.9,13.8,0,54.5,0,279.24,0,0,1.609438,5.632071,0,0,0,0,1,0,54.5,8.413813,1.609438,4.56705,1 +11,6,0,1,3,628049,1,4507.918,48.84189,1,9,1,176.2726,35.23349,0,0,2219.184,2430.69,3,0,0,10,0,5,64.9,13.8,0,54.5,0,279.24,0,0,1.609438,5.632071,0,0,0,0,1,0,54.5,8.413813,1.609438,7.79593,1 +11,6,0,1,4,628049,1,4507.918,49.84189,1,9,1,89.15754,86.09747,43.8232,0,0,219.0782,0,0,0,3,1,5,64.9,13.8,0,54.5,0,279.24,0,0,1.609438,5.632071,0,0,0,0,1,0,54.5,8.413813,1.609438,5.389429,1 +11,6,0,1,5,628049,1,4507.918,50.84189,1,9,1,74.78559,87.32419,0,0,0,162.1098,0,0,0,8,0,5,64.9,13.8,0,54.5,0,279.24,0,0,1.609438,5.632071,0,0,0,0,1,0,54.5,8.413813,1.609438,5.088274,1 +16,6,95,1,1,628059,0,12826.42,12.19713,1,18,1,0,0,0,0,0,0,0,0,0,0,0,4,83.3,10.57626,0,81.5,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,1,0,0,81.5,9.45934,1.386294,,0 +16,6,95,1,2,628059,0,12826.42,13.19713,1,18,1,338.1055,34.18375,26.57555,0,0,398.8648,0,0,0,10,17,4,83.3,10.57626,0,81.5,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,1,0,0,81.5,9.45934,1.386294,5.988623,1 +16,6,95,1,3,628059,0,12826.42,14.19713,1,18,1,5.536332,1.422145,0,0,0,6.958477,0,0,0,1,0,4,83.3,10.57626,0,81.5,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,1,0,0,81.5,9.45934,1.386294,1.939961,1 +16,6,95,1,1,628060,0,12826.42,8.933607,1,18,1,0,4.337706,0,0,0,4.337706,0,0,0,0,0,4,86.7,10.57626,0,74.1,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,1,0,0,74.1,9.45934,1.386294,1.467346,1 +16,6,95,1,2,628060,0,12826.42,9.933607,1,18,1,59.60516,19.01291,28.4738,0,362.9461,470.038,2,0,0,4,1,4,86.7,10.57626,0,74.1,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,1,0,0,74.1,9.45934,1.386294,6.152813,1 +16,6,95,1,3,628060,0,12826.42,10.93361,1,18,1,85.46712,5.356401,0,0,0,90.82353,0,0,0,4,0,4,86.7,10.57626,0,74.1,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,1,0,0,74.1,9.45934,1.386294,4.508918,1 +16,6,95,1,1,628061,0,12826.42,35.56468,1,18,1,45.28142,10.6094,0,0,0,55.89082,0,0,0,2,0,4,76.1,20.7,0,52.3,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,1,0,52.3,9.45934,1.386294,4.0234,1 +16,6,95,1,2,628061,0,12826.42,36.56468,1,18,1,304.8595,52.11465,0,0,0,356.9742,0,0,0,8,25,4,76.1,20.7,0,52.3,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,1,0,52.3,9.45934,1.386294,5.877664,1 +16,6,95,1,3,628061,0,12826.42,37.56468,1,18,1,43.59862,0,0,0,0,43.59862,0,0,0,7,0,4,76.1,20.7,0,52.3,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,1,0,52.3,9.45934,1.386294,3.775025,1 +13,6,0,0,1,628079,.5112414,6735.316,7.616701,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,86.7,10.57626,0,74.1,300,0,1,1,.6931472,0,1,4.564348,5.755076,1,0,0,74.1,8.815269,.6931472,,0 +13,6,0,0,2,628079,.5112414,6735.316,8.616701,1,12,1,3.777862,0,0,0,0,3.777862,0,0,0,1,0,2,86.7,10.57626,0,74.1,300,0,1,1,.6931472,0,1,4.564348,5.755076,1,0,0,74.1,8.815269,.6931472,1.329158,1 +13,6,0,0,3,628079,.5112414,6735.316,9.616701,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,86.7,10.57626,0,74.1,300,0,1,1,.6931472,0,1,4.564348,5.755076,1,0,0,74.1,8.815269,.6931472,,0 +13,6,0,1,1,628080,1,6735.316,18.63107,1,10.62774,1,0,0,0,0,0,0,0,0,0,0,0,3,71.3,3.4,0,71.6,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,71.6,8.815269,1.098612,,0 +13,6,0,1,2,628080,1,6735.316,19.63107,1,10.62774,1,0,0,0,0,0,0,0,0,0,0,0,3,71.3,3.4,0,71.6,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,71.6,8.815269,1.098612,,0 +13,6,0,1,3,628080,1,6735.316,20.63107,1,10.62774,1,0,0,0,0,0,0,0,0,0,0,0,3,71.3,3.4,0,71.6,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,71.6,8.815269,1.098612,,0 +13,6,0,0,1,628081,1,6735.316,29.32238,0,14,1,11.67153,0,0,0,0,11.67153,0,0,0,0,0,3,85.1,0,0,81.8,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,81.8,8.815269,1.098612,2.457153,1 +13,6,0,0,2,628081,1,6735.316,30.32238,0,14,1,11.25281,2.666917,0,0,0,13.91973,0,0,0,0,0,3,85.1,0,0,81.8,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,81.8,8.815269,1.098612,2.633307,1 +13,6,0,0,3,628081,1,6735.316,31.32238,0,14,1,40.2571,0,0,0,345.7375,385.9946,1,0,0,0,0,3,85.1,0,0,81.8,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,81.8,8.815269,1.098612,5.955823,1 +13,6,0,0,1,628083,1,6735.316,16.44901,1,14,1,0,0,0,0,0,0,0,0,0,0,0,3,73.4,0,0,65.9,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,1,0,0,65.9,8.815269,1.098612,,0 +13,6,0,0,2,628083,1,6735.316,17.44901,1,14,1,0,0,0,0,0,0,0,0,0,0,0,3,73.4,0,0,65.9,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,1,0,0,65.9,8.815269,1.098612,,0 +13,6,0,0,3,628083,1,6735.316,18.44901,1,14,1,10.14885,0,0,0,0,10.14885,0,0,0,0,0,3,73.4,0,0,65.9,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,65.9,8.815269,1.098612,2.31736,1 +13,6,0,0,1,628084,.5112414,6735.316,27.39767,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,68.1,3.4,0,48.8,300,0,0,0,.6931472,0,1,4.564348,5.755076,1,0,0,48.8,8.815269,.6931472,,0 +13,6,0,0,2,628084,.5112414,6735.316,28.39767,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,68.1,3.4,0,48.8,300,0,0,0,.6931472,0,1,4.564348,5.755076,1,0,0,48.8,8.815269,.6931472,,0 +13,6,0,0,3,628084,.5112414,6735.316,29.39767,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,68.1,3.4,0,48.8,300,0,0,0,.6931472,0,1,4.564348,5.755076,1,0,0,48.8,8.815269,.6931472,,0 +11,6,0,0,1,628085,1,6735.316,25.577,1,11,1,0,0,0,0,0,0,0,0,0,0,0,3,77.40034,10.57626,.1442925,,0,0,0,0,1.098612,0,0,0,0,0,0,0,70.68995,8.815269,1.098612,,0 +11,6,0,0,2,628085,1,6735.316,26.577,1,11,1,105.6857,4.590102,32.11182,0,0,142.3876,0,0,0,2,1,3,77.40034,10.57626,.1442925,,0,0,0,0,1.098612,0,0,0,0,0,0,0,70.68995,8.815269,1.098612,4.958553,1 +11,6,0,0,3,628085,1,6735.316,27.577,1,11,1,14.40823,18.6964,0,0,1060.892,1093.997,2,0,0,3,0,3,77.40034,10.57626,.1442925,,0,0,0,0,1.098612,0,0,0,0,0,0,0,70.68995,8.815269,1.098612,6.997593,1 +11,6,0,0,1,628088,1,6735.316,7.498973,1,11,1,0,0,0,0,0,0,0,0,0,0,0,3,77.40034,10.57626,.1442925,,0,0,1,1,1.098612,0,0,0,0,0,0,0,70.68995,8.815269,1.098612,,0 +11,6,0,0,2,628088,1,6735.316,8.498973,1,11,1,0,0,0,0,0,0,0,0,0,0,0,3,77.40034,10.57626,.1442925,,0,0,1,1,1.098612,0,0,0,0,0,0,0,70.68995,8.815269,1.098612,,0 +11,6,0,0,3,628088,1,6735.316,9.498973,1,11,1,0,0,0,0,0,0,0,0,0,0,0,3,77.40034,10.57626,.1442925,,0,0,1,1,1.098612,0,0,0,0,0,0,0,70.68995,8.815269,1.098612,,0 +17,6,25,1,1,628089,1,652.8418,10.69405,0,2,1,0,0,0,16.82793,0,0,0,0,2,0,0,4,80,10.57626,0,77.8,20.9,20.9,1,0,1.386294,3.039749,0,3.258096,4.426044,1,0,0,77.8,6.482865,1.386294,,0 +17,6,25,1,2,628089,1,652.8418,11.69405,0,2,1,0,0,0,272.006,0,0,0,0,32,0,0,4,80,10.57626,0,77.8,20.9,20.9,1,0,1.386294,3.039749,0,3.258096,4.426044,1,0,0,77.8,6.482865,1.386294,,0 +17,6,25,1,3,628089,1,652.8418,12.69405,0,2,1,8.576329,0,0,0,0,8.576329,0,0,0,1,0,4,80,10.57626,0,77.8,20.9,20.9,1,0,1.386294,3.039749,0,3.258096,4.426044,1,0,0,77.8,6.482865,1.386294,2.149006,1 +17,6,25,1,1,628090,1,652.8418,11.32101,0,2,1,0,0,0,0,0,0,0,0,0,0,0,4,81.7,10.57626,0,70.4,20.9,20.9,1,0,1.386294,3.039749,0,3.258096,4.426044,0,1,0,70.4,6.482865,1.386294,,0 +17,6,25,1,2,628090,1,652.8418,12.32101,0,2,1,0,0,0,0,0,0,0,0,0,0,0,4,81.7,10.57626,0,70.4,20.9,20.9,1,0,1.386294,3.039749,0,3.258096,4.426044,0,1,0,70.4,6.482865,1.386294,,0 +17,6,25,1,3,628090,1,652.8418,13.32101,0,2,1,0,0,0,0,0,0,0,0,0,0,0,4,81.7,10.57626,0,70.4,20.9,20.9,1,0,1.386294,3.039749,0,3.258096,4.426044,0,1,0,70.4,6.482865,1.386294,,0 +17,6,25,0,1,628091,1,652.8418,21.21561,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,63.3,0,1,47.6,20.9,20.9,0,0,1.386294,3.039749,0,3.258096,4.426044,1,0,0,47.6,6.482865,1.386294,,0 +17,6,25,0,2,628091,1,652.8418,22.21561,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,63.3,0,1,47.6,20.9,20.9,0,0,1.386294,3.039749,0,3.258096,4.426044,1,0,0,47.6,6.482865,1.386294,,0 +17,6,25,0,3,628091,1,652.8418,23.21561,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,63.3,0,1,47.6,20.9,20.9,0,0,1.386294,3.039749,0,3.258096,4.426044,1,0,0,47.6,6.482865,1.386294,,0 +17,6,25,1,1,628092,1,652.8418,56.74469,1,2,1,0,30.63525,0,0,0,30.63525,0,0,0,0,0,4,75,34.5,1,50,20.9,20.9,0,0,1.386294,3.039749,0,3.258096,4.426044,0,0,1,50,6.482865,1.386294,3.422151,1 +17,6,25,1,2,628092,1,652.8418,57.74469,1,2,1,4.533434,11.38648,0,0,0,15.91991,0,0,0,1,0,4,75,34.5,1,50,20.9,20.9,0,0,1.386294,3.039749,0,3.258096,4.426044,0,0,1,50,6.482865,1.386294,2.76757,1 +17,6,25,1,3,628092,1,652.8418,58.74469,1,2,1,56.94683,29.12521,0,0,0,86.07204,0,0,0,8,0,4,75,34.5,1,50,20.9,20.9,0,0,1.386294,3.039749,0,3.258096,4.426044,0,0,1,50,6.482865,1.386294,4.455184,1 +13,6,0,1,1,628101,0,6121.408,22.11362,0,12,1,7.481297,3.112219,0,0,0,10.59352,0,0,0,1,0,2,72.3,6.9,1,56.8,300,380.68,0,0,.6931472,5.941959,1,4.564348,5.755076,0,1,0,56.8,8.71971,.6931472,2.360242,1 +13,6,0,1,2,628101,0,6121.408,23.11362,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,72.3,6.9,1,56.8,300,380.68,0,0,.6931472,5.941959,1,4.564348,5.755076,0,1,0,56.8,8.71971,.6931472,,0 +13,6,0,1,3,628101,0,6121.408,24.11362,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,72.3,6.9,1,56.8,300,380.68,0,0,.6931472,5.941959,1,4.564348,5.755076,0,1,0,56.8,8.71971,.6931472,,0 +13,6,0,1,4,628101,0,6121.408,25.11362,0,12,1,0,2.277904,0,0,0,2.277904,0,0,0,0,0,2,72.3,6.9,1,56.8,300,380.68,0,0,.6931472,5.941959,1,4.564348,5.755076,0,1,0,56.8,8.71971,.6931472,.8232558,1 +13,6,0,1,5,628101,0,6121.408,26.11362,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,72.3,6.9,1,56.8,300,380.68,0,0,.6931472,5.941959,1,4.564348,5.755076,0,1,0,56.8,8.71971,.6931472,,0 +13,6,0,1,1,628102,0,6121.408,22.09993,1,14,1,12.46883,20.33915,0,0,0,32.80798,0,0,0,1,0,2,71.3,3.4,0,65.9,300,380.68,0,0,.6931472,5.941959,1,4.564348,5.755076,1,0,0,65.9,8.71971,.6931472,3.490672,1 +13,6,0,1,2,628102,0,6121.408,23.09993,1,14,1,23.97418,28.46934,0,0,0,52.44352,0,0,0,3,0,2,71.3,3.4,0,65.9,300,380.68,0,0,.6931472,5.941959,1,4.564348,5.755076,1,0,0,65.9,8.71971,.6931472,3.959737,1 +13,6,0,1,3,628102,0,6121.408,24.09993,1,14,1,16.92764,0,36.39441,0,0,53.32205,0,0,0,1,1,2,71.3,3.4,0,65.9,300,380.68,0,0,.6931472,5.941959,1,4.564348,5.755076,1,0,0,65.9,8.71971,.6931472,3.97635,1 +13,6,0,1,4,628102,0,6121.408,25.09993,1,14,1,11.38952,0,0,0,0,11.38952,0,0,0,1,0,2,71.3,3.4,0,65.9,300,380.68,0,0,.6931472,5.941959,1,4.564348,5.755076,1,0,0,65.9,8.71971,.6931472,2.432694,1 +13,6,0,1,5,628102,0,6121.408,26.09993,1,14,1,17.99308,1.920415,0,0,0,19.91349,0,0,0,2,0,2,71.3,3.4,0,65.9,300,380.68,0,0,.6931472,5.941959,1,4.564348,5.755076,1,0,0,65.9,8.71971,.6931472,2.991398,1 +11,6,0,1,1,628112,1,3700.973,31.75907,1,12,1,81.70071,45.65236,0,0,0,127.3531,0,0,0,10,0,6,85.1,3.4,0,67,0,168.4,0,0,1.791759,5.126342,0,0,0,1,0,0,67,8.216621,1.791759,4.846963,1 +11,6,0,1,2,628112,1,3700.973,32.75907,1,12,1,42.76069,41.24156,0,0,357.0893,441.0915,1,0,0,6,0,6,85.1,3.4,0,67,0,168.4,0,0,1.791759,5.126342,0,0,0,1,0,0,67,8.216621,1.791759,6.089252,1 +11,6,0,1,3,628112,1,3700.973,33.75907,1,12,1,24.35724,21.73545,0,0,0,46.09269,0,0,0,3,0,7,85.1,3.4,0,67,0,168.4,0,0,1.94591,5.126342,0,0,0,1,0,0,67,8.216621,1.94591,3.830654,1 +11,6,0,1,1,628113,1,3700.973,5.995893,0,12,1,6.252605,4.793664,0,0,0,11.04627,0,0,0,1,0,6,81.7,10.57626,0,77.8,0,168.4,1,0,1.791759,5.126342,0,0,0,1,0,0,77.8,8.216621,1.791759,2.402093,1 +11,6,0,1,2,628113,1,3700.973,6.995893,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,81.7,10.57626,0,77.8,0,168.4,1,0,1.791759,5.126342,0,0,0,1,0,0,77.8,8.216621,1.791759,,0 +11,6,0,1,3,628113,1,3700.973,7.995893,0,12,1,0,0,0,0,0,0,0,0,0,0,0,7,81.7,10.57626,0,77.8,0,168.4,1,0,1.94591,5.126342,0,0,0,1,0,0,77.8,8.216621,1.94591,,0 +11,6,0,1,1,628114,1,3700.973,4.657084,1,12,1,11.25469,0,0,0,0,11.25469,0,0,0,2,0,6,77.40034,10.57626,0,63,0,168.4,1,1,1.791759,5.126342,0,0,0,1,0,0,63,8.216621,1.791759,2.420785,1 +11,6,0,1,2,628114,1,3700.973,5.657084,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,77.40034,10.57626,0,63,0,168.4,1,1,1.791759,5.126342,0,0,0,1,0,0,63,8.216621,1.791759,,0 +11,6,0,1,3,628114,1,3700.973,6.657084,1,12,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,0,63,0,168.4,1,1,1.94591,5.126342,0,0,0,1,0,0,63,8.216621,1.94591,,0 +11,6,0,1,1,628115,1,3700.973,33.71115,0,10,1,0,0,0,0,0,0,0,0,0,0,0,6,79.3,10.3,0,55.7,0,168.4,0,0,1.791759,5.126342,0,0,0,0,1,0,55.7,8.216621,1.791759,,0 +11,6,0,1,2,628115,1,3700.973,34.71115,0,10,1,0,0,0,0,0,0,0,0,0,0,0,6,79.3,10.3,0,55.7,0,168.4,0,0,1.791759,5.126342,0,0,0,0,1,0,55.7,8.216621,1.791759,,0 +11,6,0,1,3,628115,1,3700.973,35.71115,0,10,1,19.28281,2.993911,0,0,0,22.27673,0,0,0,3,0,7,79.3,10.3,0,55.7,0,168.4,0,0,1.94591,5.126342,0,0,0,0,1,0,55.7,8.216621,1.94591,3.103542,1 +13,6,0,0,1,628135,0,5225.294,5.144422,1,12,1,10.20842,0,0,0,0,10.20842,0,0,0,0,0,4,80,10.57626,0,74.1,450,150,1,1,1.386294,5.010635,1,4.564348,6.160541,0,0,0,74.1,8.561458,1.386294,2.323213,1 +13,6,0,0,2,628135,0,5225.294,6.144422,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,80,10.57626,0,74.1,450,150,1,1,1.386294,5.010635,1,4.564348,6.160541,0,0,0,74.1,8.561458,1.386294,,0 +13,6,0,0,3,628135,0,5225.294,7.144422,1,12,1,28.91986,0,0,0,0,28.91986,0,0,0,0,0,4,80,10.57626,0,74.1,450,150,1,1,1.386294,5.010635,1,4.564348,6.160541,0,0,0,74.1,8.561458,1.386294,3.364529,1 +13,6,0,0,1,628136,0,5225.294,28.96372,1,12,1,6.380264,0,0,31.90132,0,6.380264,0,0,2,1,0,4,73.4,10.3,0,77.3,450,150,0,0,1.386294,5.010635,1,4.564348,6.160541,0,0,0,77.3,8.561458,1.386294,1.853209,1 +13,6,0,0,2,628136,0,5225.294,29.96372,1,12,1,20.99237,0,0,0,0,20.99237,0,0,0,1,1,4,73.4,10.3,0,77.3,450,150,0,0,1.386294,5.010635,1,4.564348,6.160541,0,0,0,77.3,8.561458,1.386294,3.044159,1 +13,6,0,0,3,628136,0,5225.294,30.96372,1,12,1,18.4669,0,0,0,0,18.4669,0,0,0,0,0,4,73.4,10.3,0,77.3,450,150,0,0,1.386294,5.010635,1,4.564348,6.160541,0,0,0,77.3,8.561458,1.386294,2.91598,1 +13,6,0,0,1,628137,0,5225.294,6.973306,1,12,1,5.104211,0,0,0,0,5.104211,0,0,0,1,0,4,81.7,10.57626,0,92.6,450,150,1,1,1.386294,5.010635,1,4.564348,6.160541,0,0,0,92.6,8.561458,1.386294,1.630066,1 +13,6,0,0,2,628137,0,5225.294,7.973306,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,81.7,10.57626,0,92.6,450,150,1,1,1.386294,5.010635,1,4.564348,6.160541,0,0,0,92.6,8.561458,1.386294,,0 +13,6,0,0,3,628137,0,5225.294,8.973306,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,81.7,10.57626,0,92.6,450,150,1,1,1.386294,5.010635,1,4.564348,6.160541,0,0,0,92.6,8.561458,1.386294,,0 +13,6,0,0,1,628138,0,5225.294,34.5243,0,14,1,37.00553,0,0,74.43641,0,37.00553,0,0,4,0,0,4,87.8,6.9,0,58,450,150,0,0,1.386294,5.010635,1,4.564348,6.160541,0,0,0,58,8.561458,1.386294,3.611067,1 +13,6,0,0,2,628138,0,5225.294,35.5243,0,14,1,0,0,0,0,0,0,0,0,0,0,0,4,87.8,6.9,0,58,450,150,0,0,1.386294,5.010635,1,4.564348,6.160541,0,0,0,58,8.561458,1.386294,,0 +13,6,0,0,3,628138,0,5225.294,36.5243,0,14,1,6.968641,0,0,0,0,6.968641,0,0,0,1,0,4,87.8,6.9,0,58,450,150,0,0,1.386294,5.010635,1,4.564348,6.160541,0,0,0,58,8.561458,1.386294,1.94142,1 +13,6,0,1,1,628142,0,6735.316,46.84189,0,3,1,79.09129,5.04838,5.889777,0,0,90.02945,0,0,0,4,0,3,86.9,13.8,0,77.3,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,77.3,8.815269,1.098612,4.500137,1 +13,6,0,1,2,628142,0,6735.316,47.84189,0,3,1,21.9116,0,0,0,0,21.9116,0,0,0,2,0,3,86.9,13.8,0,77.3,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,77.3,8.815269,1.098612,3.087016,1 +13,6,0,1,3,628142,0,6735.316,48.84189,0,3,1,34.99142,22.18525,0,0,0,57.17667,0,0,0,3,0,3,86.9,13.8,0,77.3,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,77.3,8.815269,1.098612,4.046146,1 +13,6,0,1,1,628143,0,6735.316,33.21834,1,12,1,23.55911,0,0,0,0,23.55911,0,0,0,2,0,3,75.5,6.9,0,60.2,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,60.2,8.815269,1.098612,3.159513,1 +13,6,0,1,2,628143,0,6735.316,34.21834,1,12,1,72.53494,30.97847,0,0,4268.228,4371.742,1,0,0,3,0,3,75.5,6.9,0,60.2,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,60.2,8.815269,1.098612,8.382916,1 +13,6,0,1,3,628143,0,6735.316,35.21834,1,12,1,70.66895,75.00858,0,0,730.7032,876.3808,1,0,0,6,0,3,75.5,6.9,0,60.2,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,60.2,8.815269,1.098612,6.775801,1 +13,6,0,1,1,628144,0,6735.316,4.090349,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,77.40034,10.57626,0,88.9,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,88.9,8.815269,1.098612,,0 +13,6,0,1,2,628144,0,6735.316,5.090349,0,12,1,23.04496,2.670948,0,0,0,25.7159,0,0,0,3,0,3,77.40034,10.57626,0,88.9,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,88.9,8.815269,1.098612,3.24711,1 +13,6,0,1,3,628144,0,6735.316,6.090349,0,12,1,13.03602,3.979417,0,0,0,17.01544,0,0,0,2,0,3,77.40034,10.57626,0,88.9,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,88.9,8.815269,1.098612,2.834121,1 +13,6,0,0,1,628154,0,6415.836,1.399042,0,11,1,26.11753,0,0,0,419.8895,446.007,2,0,0,0,0,4,77.40034,10.57626,0,63,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,63,8.766681,1.386294,6.100335,1 +13,6,0,0,2,628154,0,6415.836,2.399042,0,11,1,41.26101,0,0,0,0,41.26101,0,0,0,0,0,4,77.40034,10.57626,0,63,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,63,8.766681,1.386294,3.719918,1 +13,6,0,0,3,628154,0,6415.836,3.399042,0,11,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,63,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,63,8.766681,1.609438,,0 +13,6,0,0,4,628154,0,6415.836,4.399042,0,11,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,63,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,63,8.766681,1.609438,,0 +13,6,0,0,5,628154,0,6415.836,5.399042,0,11,1,9.407665,0,12.19512,0,0,21.60279,0,0,0,1,0,5,77.40034,10.57626,0,63,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,63,8.766681,1.609438,3.072822,1 +13,6,0,0,1,628155,0,6415.836,23.90417,1,11,1,19.08589,10.92416,0,0,0,30.01005,0,0,0,0,0,4,68.6,27.6,0,77.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,77.3,8.766681,1.386294,3.401532,1 +13,6,0,0,2,628155,0,6415.836,24.90417,1,11,1,5.099676,0,0,0,841.91,847.0098,2,0,0,0,0,4,68.6,27.6,0,77.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,77.3,8.766681,1.386294,6.741712,1 +13,6,0,0,3,628155,0,6415.836,25.90417,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,68.6,27.6,0,77.3,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,77.3,8.766681,1.609438,,0 +13,6,0,0,4,628155,0,6415.836,26.90417,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,68.6,27.6,0,77.3,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,77.3,8.766681,1.609438,,0 +13,6,0,0,5,628155,0,6415.836,27.90417,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,68.6,27.6,0,77.3,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,77.3,8.766681,1.609438,,0 +13,6,0,0,1,628156,0,6415.836,4.306639,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,0,92.6,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,92.6,8.766681,1.386294,,0 +13,6,0,0,2,628156,0,6415.836,5.306639,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,0,92.6,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,92.6,8.766681,1.386294,,0 +13,6,0,0,3,628156,0,6415.836,6.306639,0,11,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,92.6,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,92.6,8.766681,1.609438,,0 +13,6,0,0,4,628156,0,6415.836,7.306639,0,11,1,27.48092,0,0,0,0,27.48092,0,0,0,0,0,5,77.40034,10.57626,0,92.6,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,92.6,8.766681,1.609438,3.313492,1 +13,6,0,0,5,628156,0,6415.836,8.30664,0,11,1,12.19512,0,20.20906,0,0,32.40418,0,0,0,0,1,5,77.40034,10.57626,0,92.6,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,92.6,8.766681,1.609438,3.478287,1 +13,6,0,0,1,628157,0,6415.836,30.91855,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,54.3,27.6,0,70.5,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,70.5,8.766681,1.386294,,0 +13,6,0,0,2,628157,0,6415.836,31.91855,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,54.3,27.6,0,70.5,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,70.5,8.766681,1.386294,,0 +13,6,0,0,3,628157,0,6415.836,32.91855,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,54.3,27.6,0,70.5,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,70.5,8.766681,1.609438,,0 +13,6,0,0,4,628157,0,6415.836,33.91855,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,54.3,27.6,0,70.5,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,70.5,8.766681,1.609438,,0 +13,6,0,0,5,628157,0,6415.836,34.91855,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,54.3,27.6,0,70.5,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,70.5,8.766681,1.609438,,0 +11,6,0,1,1,628177,0,10731.18,35.43053,0,12,1,96.48752,11.32882,0,0,0,107.8163,0,0,0,1,0,4,71.8,6.9,0,80.7,0,192.48,0,0,1.386294,5.259992,0,0,0,1,0,0,80.7,9.281002,1.386294,4.680429,1 +11,6,0,1,2,628177,0,10731.18,36.43053,0,12,1,0,1.613516,0,0,0,1.613516,0,0,0,0,0,4,71.8,6.9,0,80.7,0,192.48,0,0,1.386294,5.259992,0,0,0,1,0,0,80.7,9.281002,1.386294,.4784154,1 +11,6,0,1,3,628177,0,10731.18,37.43053,0,12,1,183.391,29.32526,0,0,0,212.7163,0,0,0,8,6,4,71.8,6.9,0,80.7,0,192.48,0,0,1.386294,5.259992,0,0,0,1,0,0,80.7,9.281002,1.386294,5.359959,1 +11,6,0,1,1,628178,0,10731.18,34.03149,1,14,1,0,2.750741,0,0,0,2.750741,0,0,0,0,0,4,73.4,10.3,0,73.9,0,192.48,0,0,1.386294,5.259992,0,0,0,1,0,0,73.9,9.281002,1.386294,1.01187,1 +11,6,0,1,2,628178,0,10731.18,35.03149,1,14,1,40.24298,7.877752,0,0,0,48.12073,0,0,0,5,0,4,73.4,10.3,0,73.9,0,192.48,0,0,1.386294,5.259992,0,0,0,1,0,0,73.9,9.281002,1.386294,3.873713,1 +11,6,0,1,3,628178,0,10731.18,36.03149,1,14,1,16.26298,7.525951,0,0,0,23.78893,0,0,0,1,0,4,73.4,10.3,0,73.9,0,192.48,0,0,1.386294,5.259992,0,0,0,1,0,0,73.9,9.281002,1.386294,3.16922,1 +11,6,0,1,1,628179,0,10731.18,8.073922,0,14,1,5.07829,0,0,0,0,5.07829,0,0,0,1,0,4,85,10.57626,0,70.4,0,192.48,1,0,1.386294,5.259992,0,0,0,1,0,0,70.4,9.281002,1.386294,1.624975,1 +11,6,0,1,2,628179,0,10731.18,9.073922,0,14,1,12.52847,0,0,0,0,12.52847,0,0,0,1,0,4,85,10.57626,0,70.4,0,192.48,1,0,1.386294,5.259992,0,0,0,1,0,0,70.4,9.281002,1.386294,2.528004,1 +11,6,0,1,3,628179,0,10731.18,10.07392,0,14,1,0,0,0,0,0,0,0,0,0,0,0,4,85,10.57626,0,70.4,0,192.48,1,0,1.386294,5.259992,0,0,0,1,0,0,70.4,9.281002,1.386294,,0 +11,6,0,1,1,628180,0,10731.18,4.375085,0,14,1,17.77402,3.70292,0,0,0,21.47694,0,0,0,3,0,4,77.40034,10.57626,0,70.4,0,192.48,1,0,1.386294,5.259992,0,0,0,1,0,0,70.4,9.281002,1.386294,3.06698,1 +11,6,0,1,2,628180,0,10731.18,5.375085,0,14,1,5.31511,0,0,0,233.8648,239.1799,1,0,0,1,0,4,77.40034,10.57626,0,70.4,0,192.48,1,0,1.386294,5.259992,0,0,0,1,0,0,70.4,9.281002,1.386294,5.477216,1 +11,6,0,1,3,628180,0,10731.18,6.375085,0,14,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,0,70.4,0,192.48,1,0,1.386294,5.259992,0,0,0,1,0,0,70.4,9.281002,1.386294,,0 +13,6,0,1,1,628190,1,2625.704,28.44901,1,12,1,25.6626,3.639041,0,0,0,29.30164,0,0,0,1,0,2,62.8,6.9,0,44.3,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,44.3,7.873485,.6931472,3.377644,1 +13,6,0,1,2,628190,1,2625.704,29.44901,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,62.8,6.9,0,44.3,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,44.3,7.873485,.6931472,,0 +13,6,0,1,3,628190,1,2625.704,30.44901,1,12,1,52.83019,0,0,0,275.4717,328.3019,1,0,0,3,0,2,62.8,6.9,0,44.3,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,44.3,7.873485,.6931472,5.793933,1 +11,6,0,0,1,628191,0,11577.06,46.86379,0,8,1,0,3.164611,0,0,0,3.164611,0,0,0,0,0,2,91,3.4,0,54.5,0,0,0,0,.6931472,0,0,0,0,0,0,0,54.5,9.356867,.6931472,1.15203,1 +11,6,0,0,2,628191,0,11577.06,47.86379,0,8,1,0,1.633588,0,0,0,1.633588,0,0,0,0,0,2,91,3.4,0,54.5,0,0,0,0,.6931472,0,0,0,0,0,0,0,54.5,9.356867,.6931472,.4907787,1 +11,6,0,0,3,628191,0,11577.06,48.86379,0,8,1,105.5749,1.362369,32.05575,0,0,138.993,0,0,0,3,0,2,91,3.4,0,54.5,0,0,0,0,.6931472,0,0,0,0,0,0,0,54.5,9.356867,.6931472,4.934424,1 +10,6,50,1,1,628192,1,6735.316,29.04586,1,11,1,19.77282,2.629365,0,0,0,22.40219,0,0,0,1,0,3,70.7,17.2,0,59.1,353.25,434.88,0,0,1.098612,6.07507,0,3.931826,6.560323,0,1,0,59.1,8.815269,1.098612,3.109159,1 +10,6,50,1,2,628192,1,6735.316,30.04586,1,11,1,31.16736,0,26.44503,0,0,57.61239,0,0,0,1,1,3,70.7,17.2,0,59.1,353.25,434.88,0,0,1.098612,6.07507,0,3.931826,6.560323,0,1,0,59.1,8.815269,1.098612,4.053738,1 +10,6,50,1,3,628192,1,6735.316,31.04586,1,11,1,71.35506,43.61921,0,0,661.0635,776.0377,2,0,0,3,0,3,70.7,17.2,0,59.1,353.25,434.88,0,0,1.098612,6.07507,0,3.931826,6.560323,0,1,0,59.1,8.815269,1.098612,6.654201,1 +10,6,50,1,1,628194,1,6735.316,28.42163,0,5,1,45.01472,3.773664,0,0,0,48.78839,0,0,0,0,0,3,67,3.4,0,50,353.25,434.88,0,0,1.098612,6.07507,0,3.931826,6.560323,0,0,1,50,8.815269,1.098612,3.887492,1 +10,6,50,1,2,628194,1,6735.316,29.42163,0,5,1,238.0053,29.98867,26.82282,0,607.858,902.6747,2,1,0,7,1,3,67,3.4,0,50,353.25,434.88,0,0,1.098612,6.07507,0,3.931826,6.560323,0,0,1,50,8.815269,1.098612,6.805362,1 +10,6,50,1,3,628194,1,6735.316,30.42163,0,5,1,157.4614,31.74957,0,0,0,189.211,0,0,0,2,0,3,67,3.4,0,50,353.25,434.88,0,0,1.098612,6.07507,0,3.931826,6.560323,0,0,1,50,8.815269,1.098612,5.242863,1 +13,6,0,1,1,628199,0,17794.68,13.06502,0,12,1,79.46678,0,8.463818,0,0,87.9306,0,0,0,5,0,6,75,10.57626,0,85.2,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,1,0,85.2,9.786711,1.791759,4.476548,1 +13,6,0,1,1,628200,0,17794.68,15.06913,0,12,1,233.284,0,0,0,0,233.284,0,0,0,8,0,6,75,0,0,64.3,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,64.3,9.786711,1.791759,5.452257,1 +13,6,0,1,1,628201,0,17794.68,17.16085,0,12,1,64.7482,0,0,0,0,64.7482,0,0,0,3,0,6,95.2,0,0,91.7,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,91.7,9.786711,1.791759,4.170506,1 +13,6,0,1,1,628202,0,17794.68,35.78918,1,12,1,78.79814,0,0,0,0,78.79814,0,0,0,3,0,6,70.2,24.1,1,62.5,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,62.5,9.786711,1.791759,4.366889,1 +13,6,0,1,1,628203,0,17794.68,37.89733,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,73.3,3.4,0,85.2,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.786711,1.791759,,0 +13,6,0,1,1,628204,0,17794.68,16.14784,1,12,1,8.463818,0,0,0,0,8.463818,0,0,0,1,0,6,68.1,6.9,1,63.6,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,63.6,9.786711,1.791759,2.1358,1 +7,6,25,1,1,628290,0,4987.683,34.45037,1,14,1,0,0,0,0,0,0,0,0,0,0,0,3,71.8,0,0,87.5,750,1291.68,0,0,1.098612,7.163699,0,3.258096,8.006368,0,0,0,87.5,8.514927,1.098612,,0 +7,6,25,1,2,628290,0,4987.683,35.45037,1,14,1,0,0,0,0,0,0,0,0,0,0,0,3,71.8,0,0,87.5,750,1291.68,0,0,1.098612,7.163699,0,3.258096,8.006368,0,0,0,87.5,8.514927,1.098612,,0 +7,6,25,1,3,628290,0,4987.683,36.45037,1,14,1,0,0,0,0,0,0,0,0,0,0,0,3,71.8,0,0,87.5,750,1291.68,0,0,1.098612,7.163699,0,3.258096,8.006368,0,0,0,87.5,8.514927,1.098612,,0 +7,6,25,1,4,628290,0,4987.683,37.45037,1,14,1,0,0,0,0,0,0,0,0,0,0,0,3,71.8,0,0,87.5,750,1291.68,0,0,1.098612,7.163699,0,3.258096,8.006368,0,0,0,87.5,8.514927,1.098612,,0 +7,6,25,1,5,628290,0,4987.683,38.45037,1,14,1,0,0,0,0,0,0,0,0,0,0,0,3,71.8,0,0,87.5,750,1291.68,0,0,1.098612,7.163699,0,3.258096,8.006368,0,0,0,87.5,8.514927,1.098612,,0 +7,6,25,1,1,628291,0,4987.683,13.24298,1,14,1,8.353808,0,0,0,0,8.353808,0,0,0,1,0,3,96.7,10.57626,0,100,750,1291.68,1,1,1.098612,7.163699,0,3.258096,8.006368,0,0,0,100,8.514927,1.098612,2.122718,1 +7,6,25,1,2,628291,0,4987.683,14.24298,1,14,1,14.58523,0,0,0,0,14.58523,0,0,0,1,0,3,96.7,10.57626,0,100,750,1291.68,1,1,1.098612,7.163699,0,3.258096,8.006368,0,0,0,100,8.514927,1.098612,2.68001,1 +7,6,25,1,3,628291,0,4987.683,15.24298,1,14,1,17.5073,3.955815,0,0,0,21.46311,0,0,0,2,0,3,96.7,10.57626,0,100,750,1291.68,1,1,1.098612,7.163699,0,3.258096,8.006368,0,0,0,100,8.514927,1.098612,3.066336,1 +7,6,25,1,4,628291,0,4987.683,16.24298,1,14,1,30.75769,3.597149,0,0,0,34.35484,0,0,0,5,0,3,96.7,10.57626,0,100,750,1291.68,1,1,1.098612,7.163699,0,3.258096,8.006368,0,0,0,100,8.514927,1.098612,3.536743,1 +7,6,25,1,5,628291,0,4987.683,17.24298,1,14,1,16.23816,0,0,0,0,16.23816,0,0,0,1,0,3,96.7,10.57626,0,100,750,1291.68,1,1,1.098612,7.163699,0,3.258096,8.006368,0,0,0,100,8.514927,1.098612,2.787364,1 +7,6,25,1,1,628292,0,4987.683,11.35661,1,14,1,20.63882,0,0,0,0,20.63882,0,0,0,2,0,3,95,10.57626,0,100,750,1291.68,1,1,1.098612,7.163699,0,3.258096,8.006368,0,0,0,100,8.514927,1.098612,3.027174,1 +7,6,25,1,2,628292,0,4987.683,12.35661,1,14,1,0,0,0,0,0,0,0,0,0,0,0,3,95,10.57626,0,100,750,1291.68,1,1,1.098612,7.163699,0,3.258096,8.006368,0,0,0,100,8.514927,1.098612,,0 +7,6,25,1,3,628292,0,4987.683,13.35661,1,14,1,0,0,0,0,0,0,0,0,0,0,0,3,95,10.57626,0,100,750,1291.68,1,1,1.098612,7.163699,0,3.258096,8.006368,0,0,0,100,8.514927,1.098612,,0 +7,6,25,1,4,628292,0,4987.683,14.35661,1,14,1,20.63016,0,30.75769,0,0,51.38785,0,0,0,2,0,3,95,10.57626,0,100,750,1291.68,1,1,1.098612,7.163699,0,3.258096,8.006368,0,0,0,100,8.514927,1.098612,3.939402,1 +7,6,25,1,5,628292,0,4987.683,15.35661,1,14,1,0,0,0,0,0,0,0,0,0,0,0,3,95,10.57626,0,100,750,1291.68,1,1,1.098612,7.163699,0,3.258096,8.006368,0,0,0,100,8.514927,1.098612,,0 +10,6,50,1,1,628296,0,10311.83,38.20397,1,12,1,12.62095,4.732857,0,0,0,17.35381,0,0,0,1,0,4,60.6,17.2,0,61.4,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,61.4,9.241144,1.386294,2.853812,1 +10,6,50,1,2,628296,0,10311.83,39.20397,1,12,1,34.75633,0,0,0,0,34.75633,0,0,0,0,0,4,60.6,17.2,0,61.4,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,61.4,9.241144,1.386294,3.548362,1 +10,6,50,1,3,628296,0,10311.83,40.20397,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,60.6,17.2,0,61.4,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,61.4,9.241144,1.386294,,0 +10,6,50,1,1,628297,0,10311.83,35.5729,0,12,1,24.8212,13.25621,0,0,0,38.07741,0,0,0,12,0,4,51.6,13.8,0,83,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,83,9.241144,1.386294,3.639621,1 +10,6,50,1,2,628297,0,10311.83,36.5729,0,12,1,24.17831,13.77786,26.44503,0,0,64.40121,0,0,0,9,0,4,51.6,13.8,0,83,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,83,9.241144,1.386294,4.165133,1 +10,6,50,1,3,628297,0,10311.83,37.5729,0,12,1,0,4.974271,0,0,0,4.974271,0,0,0,0,0,4,51.6,13.8,0,83,1000,1000,0,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,83,9.241144,1.386294,1.604279,1 +10,6,50,1,1,628298,0,10311.83,10.35729,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,91.7,10.57626,0,92.6,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,92.6,9.241144,1.386294,,0 +10,6,50,1,2,628298,0,10311.83,11.35729,0,12,1,6.044579,0,0,0,0,6.044579,0,0,0,2,0,4,91.7,10.57626,0,92.6,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,92.6,9.241144,1.386294,1.799162,1 +10,6,50,1,3,628298,0,10311.83,12.35729,0,12,1,23.67067,0,24.91595,0,0,48.58662,0,0,0,2,0,4,91.7,10.57626,0,92.6,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,92.6,9.241144,1.386294,3.883348,1 +10,6,50,1,1,628299,0,10311.83,8.06297,0,12,1,26.504,0,0,0,0,26.504,0,0,0,2,0,4,91.7,10.57626,0,74.1,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,74.1,9.241144,1.386294,3.277296,1 +10,6,50,1,2,628299,0,10311.83,9.06297,0,12,1,4.155648,0,0,0,0,4.155648,0,0,0,2,0,4,91.7,10.57626,0,74.1,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,74.1,9.241144,1.386294,1.424468,1 +10,6,50,1,3,628299,0,10311.83,10.06297,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,91.7,10.57626,0,74.1,1000,1000,1,0,1.386294,6.907755,0,3.931826,7.600903,0,0,0,74.1,9.241144,1.386294,,0 +13,6,0,1,1,628300,0,12312.61,28.77481,0,16,1,19.45137,0,35.67082,0,0,55.1222,0,0,0,1,2,3,83,17.2,0,70.5,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,70.5,9.418461,1.098612,4.009552,1 +13,6,0,1,2,628300,0,12312.61,29.77481,0,16,1,82.98755,10.07838,31.8119,0,0,124.8778,0,0,0,5,5,4,83,17.2,0,70.5,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,70.5,9.418461,1.386294,4.827336,1 +13,6,0,1,3,628300,0,12312.61,30.77481,0,16,1,51.20609,0,0,0,0,51.20609,0,0,0,0,9,4,83,17.2,0,70.5,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,70.5,9.418461,1.386294,3.935858,1 +13,6,0,1,4,628300,0,12312.61,31.77481,0,16,1,105.1632,8.101747,0,0,0,113.265,0,0,0,4,3,4,83,17.2,0,70.5,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,70.5,9.418461,1.386294,4.72973,1 +13,6,0,1,5,628300,0,12312.61,32.77481,0,16,1,38.75433,0,0,0,0,38.75433,0,0,0,1,0,4,83,17.2,0,70.5,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,70.5,9.418461,1.386294,3.657242,1 +13,6,0,1,1,628301,0,12312.61,3.775496,0,16,1,32.41895,0,0,0,0,32.41895,0,0,0,2,1,3,77.40034,10.57626,0,66.7,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,66.7,9.418461,1.098612,3.478743,1 +13,6,0,1,2,628301,0,12312.61,4.775496,0,16,1,18.90272,16.15491,0,0,0,35.05763,0,0,0,3,1,4,77.40034,10.57626,0,66.7,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,66.7,9.418461,1.386294,3.556993,1 +13,6,0,1,3,628301,0,12312.61,5.775496,0,16,1,10.57977,0,0,0,0,10.57977,0,0,0,1,1,4,77.40034,10.57626,0,66.7,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,66.7,9.418461,1.386294,2.358944,1 +13,6,0,1,4,628301,0,12312.61,6.775496,0,16,1,37.58542,6.871678,0,0,438.6105,483.0676,1,0,0,5,0,4,77.40034,10.57626,0,66.7,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,66.7,9.418461,1.386294,6.180157,1 +13,6,0,1,5,628301,0,12312.61,7.775496,0,16,1,8.650519,0,0,0,0,8.650519,0,0,0,1,1,4,77.40034,10.57626,0,66.7,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,66.7,9.418461,1.386294,2.157619,1 +13,6,0,1,1,628302,0,12312.61,26.99247,1,16,1,31.42145,20.0798,0,0,903.7407,955.2419,1,0,0,1,4,3,85.1,3.4,0,85.2,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.418461,1.098612,6.861965,1 +13,6,0,1,2,628302,0,12312.61,27.99247,1,16,1,35.03919,7.183033,0,0,0,42.22222,0,0,0,3,3,4,85.1,3.4,0,85.2,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.418461,1.386294,3.742947,1 +13,6,0,1,3,628302,0,12312.61,28.99247,1,16,1,264.9175,12.5857,0,0,0,277.5032,0,0,0,13,13,4,85.1,3.4,0,85.2,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.418461,1.386294,5.625833,1 +13,6,0,1,4,628302,0,12312.61,29.99247,1,16,1,31.13136,3.356112,0,0,0,34.48747,0,0,0,2,5,4,85.1,3.4,0,85.2,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.418461,1.386294,3.540596,1 +13,6,0,1,5,628302,0,12312.61,30.99247,1,16,1,58.82353,1.678201,0,0,0,60.50173,0,0,0,1,5,4,85.1,3.4,0,85.2,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.418461,1.386294,4.102672,1 +11,6,0,0,1,628316,0,18904.76,47.23614,1,16,1,32.51355,202.0717,0,0,0,234.5853,0,0,0,4,0,3,88.3,24.1,0,61.4,0,86.24,0,0,1.098612,4.457134,0,0,0,1,0,0,61.4,9.847222,1.098612,5.457819,1 +11,6,0,0,2,628316,0,18904.76,48.23614,1,16,1,30.75769,277.9295,0,0,0,308.6872,0,0,0,4,0,3,88.3,24.1,0,61.4,0,86.24,0,0,1.098612,4.457134,0,0,0,1,0,0,61.4,9.847222,1.098612,5.732328,1 +11,6,0,0,3,628316,0,18904.76,49.23614,1,16,1,40.2571,411.8133,0,0,300.0677,752.138,1,0,0,1,0,3,88.3,24.1,0,61.4,0,86.24,0,0,1.098612,4.457134,0,0,0,1,0,0,61.4,9.847222,1.098612,6.62292,1 +11,6,0,0,1,628317,0,18904.76,16.86242,0,16,1,10.42101,0,0,0,0,10.42101,0,0,0,1,0,3,87.8,3.4,0,83,0,86.24,1,0,1.098612,4.457134,0,0,0,0,0,0,83,9.847222,1.098612,2.343824,1 +11,6,0,0,2,628317,0,18904.76,17.86242,0,16,1,9.377344,10.43511,0,0,0,19.81245,0,0,0,1,0,3,87.8,3.4,0,83,0,86.24,1,0,1.098612,4.457134,0,0,0,0,0,0,83,9.847222,1.098612,2.986311,1 +11,6,0,0,3,628317,0,18904.76,18.86242,0,16,1,33.8295,0,34.71922,0,0,68.54871,0,0,0,0,1,3,87.8,3.4,0,83,0,86.24,0,0,1.098612,4.457134,0,0,0,0,0,0,83,9.847222,1.098612,4.227545,1 +11,6,0,0,1,628318,0,18904.76,49.28405,0,15,1,65.02709,6.461025,0,0,0,71.48812,0,0,0,2,0,3,81.9,27.6,0,69.3,0,86.24,0,0,1.098612,4.457134,0,0,0,1,0,0,69.3,9.847222,1.098612,4.269531,1 +11,6,0,0,2,628318,0,18904.76,50.28405,0,15,1,9.377344,0,0,0,0,9.377344,0,0,0,1,0,3,81.9,27.6,0,69.3,0,86.24,0,0,1.098612,4.457134,0,0,0,1,0,0,69.3,9.847222,1.098612,2.238297,1 +11,6,0,0,3,628318,0,18904.76,51.28405,0,15,1,85.25034,19.2253,44.86806,0,0,149.3437,0,0,0,2,1,3,81.9,27.6,0,69.3,0,86.24,0,0,1.098612,4.457134,0,0,0,1,0,0,69.3,9.847222,1.098612,5.00625,1 +13,6,0,1,1,628319,0,15753.71,33.6345,1,16,1,39.13228,35.30413,0,0,0,74.43641,0,0,0,2,0,4,38.8,20.7,0,68.2,450,819.72,0,0,1.386294,6.708963,1,4.564348,6.160541,0,0,0,68.2,9.664895,1.386294,4.309945,1 +13,6,0,1,2,628319,0,15753.71,34.6345,1,16,1,50.38168,43.0916,0,0,465.2672,558.7405,1,0,0,1,2,4,38.8,20.7,0,68.2,450,819.72,0,0,1.386294,6.708963,1,4.564348,6.160541,0,0,0,68.2,9.664895,1.386294,6.325685,1 +13,6,0,1,3,628319,0,15753.71,35.6345,1,16,1,45.12195,5.968641,0,0,307.5261,358.6167,1,0,0,3,0,4,38.8,20.7,0,68.2,450,819.72,0,0,1.386294,6.708963,1,4.564348,6.160541,0,0,0,68.2,9.664895,1.386294,5.882254,1 +13,6,0,1,1,628320,0,15753.71,8.281999,1,16,1,53.16887,0,0,0,0,53.16887,0,0,0,3,0,4,70,10.57626,0,88.9,450,819.72,1,1,1.386294,6.708963,1,4.564348,6.160541,0,0,0,88.9,9.664895,1.386294,3.973473,1 +13,6,0,1,2,628320,0,15753.71,9.281999,1,16,1,7.251908,0,0,0,0,7.251908,0,0,0,1,0,4,70,10.57626,0,88.9,450,819.72,1,1,1.386294,6.708963,1,4.564348,6.160541,0,0,0,88.9,9.664895,1.386294,1.981265,1 +13,6,0,1,3,628320,0,15753.71,10.282,1,16,1,88.32753,0,0,0,0,88.32753,0,0,0,3,1,4,70,10.57626,0,88.9,450,819.72,1,1,1.386294,6.708963,1,4.564348,6.160541,0,0,0,88.9,9.664895,1.386294,4.481052,1 +13,6,0,1,1,628321,0,15753.71,36.79398,0,17,1,156.1038,0,30.62527,0,0,186.729,0,0,0,3,10,4,76.6,10.3,0,51.1,450,819.72,0,0,1.386294,6.708963,1,4.564348,6.160541,0,0,0,51.1,9.664895,1.386294,5.229659,1 +13,6,0,1,2,628321,0,15753.71,37.79398,0,17,1,6.870229,0,0,0,0,6.870229,0,0,0,0,2,4,76.6,10.3,0,51.1,450,819.72,0,0,1.386294,6.708963,1,4.564348,6.160541,0,0,0,51.1,9.664895,1.386294,1.927197,1 +13,6,0,1,3,628321,0,15753.71,38.79398,0,17,1,149.8258,23.93728,0,0,0,173.7631,0,0,0,3,13,4,76.6,10.3,0,51.1,450,819.72,0,0,1.386294,6.708963,1,4.564348,6.160541,0,0,0,51.1,9.664895,1.386294,5.157692,1 +13,6,0,1,1,628322,0,15753.71,3.192334,1,16,1,42.96044,10.20842,36.71629,0,0,89.88515,0,0,0,7,0,4,77.40034,10.57626,0,92.6,450,819.72,1,1,1.386294,6.708963,1,4.564348,6.160541,0,0,0,92.6,9.664895,1.386294,4.498533,1 +13,6,0,1,2,628322,0,15753.71,4.192334,1,16,1,15.64886,1.240458,12.30534,0,0,29.19466,0,0,0,3,0,4,77.40034,10.57626,0,92.6,450,819.72,1,1,1.386294,6.708963,1,4.564348,6.160541,0,0,0,92.6,9.664895,1.386294,3.373986,1 +13,6,0,1,3,628322,0,15753.71,5.192334,1,16,1,29.26829,4.236934,0,0,0,33.50523,0,0,0,3,0,4,77.40034,10.57626,0,92.6,450,819.72,1,1,1.386294,6.708963,1,4.564348,6.160541,0,0,0,92.6,9.664895,1.386294,3.511701,1 +11,6,0,0,1,628323,0,0,50.15195,1,8,1,668.2794,392.9407,0,0,3182.583,4243.803,1,0,0,4,5,1,51.1,31,1,18.2,0,584.16,0,0,0,6.370175,0,0,0,0,0,1,18.2,0,0,8.353215,1 +11,6,0,0,2,628323,0,0,51.15195,1,8,.5136612,254.2501,133.8874,3.777862,0,4745.372,5137.288,3,0,0,0,18,1,51.1,31,1,18.2,0,584.16,0,0,0,6.370175,0,0,0,0,0,1,18.2,0,0,8.54428,1 +13,6,0,1,1,628385,0,8787.507,31.8987,0,11,1,0,0,0,0,0,0,0,0,0,0,0,3,84,17.2,0,62.5,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,62.5,9.0812,1.098612,,0 +13,6,0,1,2,628385,0,8787.507,32.8987,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,84,17.2,0,62.5,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,62.5,9.0812,1.386294,,0 +13,6,0,1,3,628385,0,8787.507,33.8987,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,84,17.2,0,62.5,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,62.5,9.0812,1.386294,,0 +13,6,0,1,1,628386,0,8787.507,30.23135,1,13,1,20.41684,36.53339,0,0,2868.141,2925.092,1,0,0,3,0,3,93.6,10.3,0,89.8,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,89.8,9.0812,1.098612,7.981081,1 +13,6,0,1,2,628386,0,8787.507,31.23135,1,13,1,10.30534,38.92748,0,0,0,49.23283,0,0,0,1,0,4,93.6,10.3,0,89.8,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,89.8,9.0812,1.386294,3.896561,1 +13,6,0,1,3,628386,0,8787.507,32.23135,1,13,1,61.67247,49.87457,0,0,0,111.547,0,0,0,3,0,4,93.6,10.3,0,89.8,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,89.8,9.0812,1.386294,4.714447,1 +13,6,0,1,1,628387,0,8787.507,4.665298,0,13,1,60.82518,17.50319,0,0,0,78.32837,0,0,0,9,0,3,77.40034,10.57626,0,85.2,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,85.2,9.0812,1.098612,4.36091,1 +13,6,0,1,2,628387,0,8787.507,5.665298,0,13,1,75.57252,17.42366,0,0,241.9847,334.9809,1,0,0,13,0,4,77.40034,10.57626,0,85.2,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,85.2,9.0812,1.386294,5.814074,1 +13,6,0,1,3,628387,0,8787.507,6.665298,0,13,1,41.81185,5.069686,0,0,0,46.88153,0,0,0,4,0,4,77.40034,10.57626,0,85.2,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,85.2,9.0812,1.386294,3.847624,1 +11,6,0,0,1,628395,1,10875.66,37.50856,0,10,1,11.97007,32.82793,61.18204,0,0,105.98,0,0,0,0,1,5,76.1,6.9,0,80.7,0,0,0,0,1.609438,0,0,0,0,0,1,0,80.7,9.294374,1.609438,4.663251,1 +11,6,0,0,3,628395,1,10875.66,39.50856,0,10,1,2.962336,52.02708,31.53195,0,0,86.52137,0,0,0,1,0,6,76.1,6.9,0,80.7,0,0,0,0,1.791759,0,0,0,0,0,1,0,80.7,9.294374,1.791759,4.460392,1 +11,6,0,0,4,628395,1,10875.66,40.50856,0,10,1,26.57555,66.67426,60.29233,0,0,153.5421,0,0,0,4,0,5,76.1,6.9,0,80.7,0,0,0,0,1.609438,0,0,0,0,0,1,0,80.7,9.294374,1.609438,5.033975,1 +11,6,0,0,5,628395,1,10875.66,41.50856,0,10,1,0,72.6436,36.2872,0,0,108.9308,0,0,0,0,0,5,76.1,6.9,0,80.7,0,0,0,0,1.609438,0,0,0,0,0,1,0,80.7,9.294374,1.609438,4.690713,1 +11,6,0,0,1,628396,1,10875.66,8.427105,1,12,1,26.93267,2.593516,0,0,0,29.52618,0,0,0,1,1,5,75,10.57626,0,55.6,0,0,1,1,1.609438,0,0,0,0,0,1,0,55.6,9.294374,1.609438,3.385278,1 +11,6,0,0,2,628396,1,10875.66,9.427105,1,12,1,8.298756,2.766252,0,0,0,11.06501,0,0,0,1,0,4,75,10.57626,0,55.6,0,0,1,1,1.386294,0,0,0,0,0,1,0,55.6,9.294374,1.386294,2.403788,1 +11,6,0,0,3,628396,1,10875.66,10.4271,1,12,1,130.3428,0,18.92509,0,0,149.2679,0,0,0,3,10,6,75,10.57626,0,55.6,0,0,1,1,1.791759,0,0,0,0,0,1,0,55.6,9.294374,1.791759,5.005743,1 +11,6,0,0,4,628396,1,10875.66,11.4271,1,12,1,31.89066,5.182232,17.76765,0,0,54.84055,0,0,0,3,1,5,75,10.57626,0,55.6,0,0,1,1,1.609438,0,0,0,0,0,1,0,55.6,9.294374,1.609438,4.00443,1 +11,6,0,0,5,628396,1,10875.66,12.4271,1,12,1,11.41868,0,23.391,0,0,34.80969,0,0,0,2,0,5,75,10.57626,0,55.6,0,0,1,1,1.609438,0,0,0,0,0,1,0,55.6,9.294374,1.609438,3.549896,1 +11,6,0,0,1,628397,1,10875.66,36.70636,1,12,1,279.3018,89.29676,31.42145,0,3287.282,3687.302,4,0,0,11,1,5,62.2,17.2,1,60.2,0,0,0,0,1.609438,0,0,0,0,0,1,0,60.2,9.294374,1.609438,8.21265,1 +11,6,0,0,2,628397,1,10875.66,37.70636,1,12,1,449.0549,341.3693,39.29922,20.74689,1751.729,2581.452,2,0,1,21,1,4,62.2,17.2,1,60.2,0,0,0,0,1.386294,0,0,0,0,0,1,0,60.2,9.294374,1.386294,7.856107,1 +11,6,0,0,3,628397,1,10875.66,38.70636,1,12,1,566.6526,465.2053,37.35506,19.04359,372.408,1441.621,1,0,1,19,60,6,62.2,17.2,1,60.2,0,0,0,0,1.791759,0,0,0,0,0,1,0,60.2,9.294374,1.791759,7.273523,1 +11,6,0,0,1,628398,1,10875.66,8.427105,1,12,1,37.90524,5.411471,0,0,0,43.31671,0,0,0,2,1,5,75,10.57626,0,55.6,0,0,1,1,1.609438,0,0,0,0,0,1,0,55.6,9.294374,1.609438,3.768538,1 +11,6,0,0,2,628398,1,10875.66,9.427105,1,12,1,44.26003,4.379899,17.74089,0,0,66.38082,0,0,0,5,0,4,75,10.57626,0,55.6,0,0,1,1,1.386294,0,0,0,0,0,1,0,55.6,9.294374,1.386294,4.195408,1 +11,6,0,0,3,628398,1,10875.66,10.4271,1,12,1,65.59458,1.946678,18.92509,0,0,86.46635,0,0,0,2,1,6,75,10.57626,0,55.6,0,0,1,1,1.791759,0,0,0,0,0,1,0,55.6,9.294374,1.791759,4.459755,1 +11,6,0,0,4,628398,1,10875.66,11.4271,1,12,1,100.9871,5.713743,17.76765,0,0,124.4685,0,0,0,4,7,5,75,10.57626,0,55.6,0,0,1,1,1.609438,0,0,0,0,0,1,0,55.6,9.294374,1.609438,4.824053,1 +11,6,0,0,5,628398,1,10875.66,12.4271,1,12,1,15.57093,8.840831,23.391,0,0,47.80277,0,0,0,2,0,5,75,10.57626,0,55.6,0,0,1,1,1.609438,0,0,0,0,0,1,0,55.6,9.294374,1.609438,3.867084,1 +11,6,0,0,1,628399,1,10875.66,16.74196,1,12,1,12.46883,6.418952,27.43142,0,0,46.3192,0,0,0,0,1,5,58.5,6.9,0,68.2,0,0,1,1,1.609438,0,0,0,0,0,1,0,68.2,9.294374,1.609438,3.835557,1 +11,6,0,0,3,628399,1,10875.66,18.74196,1,12,1,126.9573,8.887008,23.69869,0,0,159.543,0,0,0,3,11,6,58.5,6.9,0,68.2,0,0,0,0,1.791759,0,0,0,0,0,1,0,68.2,9.294374,1.791759,5.072313,1 +11,6,0,0,4,628399,1,10875.66,19.74196,1,12,1,31.32118,5.46697,0,0,0,36.78815,0,0,0,3,0,5,58.5,6.9,0,68.2,0,0,0,0,1.609438,0,0,0,0,0,1,0,68.2,9.294374,1.609438,3.605176,1 +11,6,0,0,5,628399,1,10875.66,20.74196,1,12,1,34.25605,12.94118,0,0,0,47.19723,0,0,0,4,0,5,58.5,6.9,0,68.2,0,0,0,0,1.609438,0,0,0,0,0,1,0,68.2,9.294374,1.609438,3.854335,1 +11,6,0,1,1,628414,1,6735.316,58.79808,0,4,1,52.1666,28.66218,0,0,0,80.82877,0,0,0,8,0,1,80.3,10.3,1,64.3,0,0,0,0,0,0,0,0,0,0,0,0,64.3,8.815269,0,4.392333,1 +11,6,0,1,2,628414,1,6735.316,59.79808,0,4,1,99.35777,14.92255,32.11182,0,0,146.3921,0,0,0,4,1,1,80.3,10.3,1,64.3,0,0,0,0,0,0,0,0,0,0,0,0,64.3,8.815269,0,4.986289,1 +11,6,0,1,3,628414,1,6735.316,60.79808,0,4,1,0,0,0,0,0,0,0,0,0,0,0,1,80.3,10.3,1,64.3,0,0,0,0,0,0,0,0,0,0,0,0,64.3,8.815269,0,,0 +13,6,0,0,1,628422,1,1714.286,2.951403,0,10,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,77.8,450,150,1,0,1.609438,5.010635,1,4.564348,6.160541,1,0,0,77.8,7.447335,1.609438,,0 +13,6,0,0,2,628422,1,1714.286,3.951403,0,10,1,0,0,0,0,0,0,0,0,0,0,0,6,77.40034,10.57626,0,77.8,450,150,1,0,1.791759,5.010635,1,4.564348,6.160541,1,0,0,77.8,7.447335,1.791759,,0 +13,6,0,0,3,628422,1,1714.286,4.951403,0,10,1,0,0,0,0,0,0,0,0,0,0,0,6,77.40034,10.57626,0,77.8,450,150,1,0,1.791759,5.010635,1,4.564348,6.160541,1,0,0,77.8,7.447335,1.791759,,0 +13,6,0,0,1,628423,1,1714.286,6.075291,0,10,1,0,0,0,0,0,0,0,0,0,0,0,5,76.7,10.57626,0,74.1,450,150,1,0,1.609438,5.010635,1,4.564348,6.160541,1,0,0,74.1,7.447335,1.609438,,0 +13,6,0,0,2,628423,1,1714.286,7.075291,0,10,1,0,0,0,0,0,0,0,0,0,0,0,6,76.7,10.57626,0,74.1,450,150,1,0,1.791759,5.010635,1,4.564348,6.160541,1,0,0,74.1,7.447335,1.791759,,0 +13,6,0,0,3,628423,1,1714.286,8.075291,0,10,1,10.38062,0,0,0,0,10.38062,0,0,0,0,0,6,76.7,10.57626,0,74.1,450,150,1,0,1.791759,5.010635,1,4.564348,6.160541,1,0,0,74.1,7.447335,1.791759,2.339941,1 +13,6,0,0,1,628424,1,1714.286,23.19233,1,10,1,21.15954,4.062632,0,0,458.7389,483.9611,1,0,0,3,0,5,61.7,3.4,0,47.7,450,150,0,0,1.609438,5.010635,1,4.564348,6.160541,1,0,0,47.7,7.447335,1.609438,6.182004,1 +13,6,0,0,2,628424,1,1714.286,24.19233,1,10,1,0,0,0,0,0,0,0,0,0,0,0,6,61.7,3.4,0,47.7,450,150,0,0,1.791759,5.010635,1,4.564348,6.160541,1,0,0,47.7,7.447335,1.791759,,0 +13,6,0,0,3,628424,1,1714.286,25.19233,1,10,1,0,0,0,0,0,0,0,0,0,0,0,6,61.7,3.4,0,47.7,450,150,0,0,1.791759,5.010635,1,4.564348,6.160541,1,0,0,47.7,7.447335,1.791759,,0 +13,6,0,0,1,628425,1,1714.286,26.72964,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,65.4,3.4,0,69.3,450,150,0,0,1.609438,5.010635,1,4.564348,6.160541,0,0,1,69.3,7.447335,1.609438,,0 +13,6,0,0,2,628425,1,1714.286,27.72964,0,12,1,36.44647,0,0,0,0,36.44647,0,0,0,0,0,6,65.4,3.4,0,69.3,450,150,0,0,1.791759,5.010635,1,4.564348,6.160541,0,0,1,69.3,7.447335,1.791759,3.595845,1 +13,6,0,0,3,628425,1,1714.286,28.72964,0,12,1,69.89619,1.366782,0,0,0,71.26298,0,0,0,2,0,6,65.4,3.4,0,69.3,450,150,0,0,1.791759,5.010635,1,4.564348,6.160541,0,0,1,69.3,7.447335,1.791759,4.266377,1 +13,6,0,0,1,628426,1,1714.286,7.405886,0,10,1,6.347863,0,0,0,0,6.347863,0,0,0,1,0,5,76.7,10.57626,0,74.1,450,150,1,0,1.609438,5.010635,1,4.564348,6.160541,1,0,0,74.1,7.447335,1.609438,1.848118,1 +13,6,0,0,2,628426,1,1714.286,8.405887,0,10,1,5.694761,0,0,0,0,5.694761,0,0,0,1,0,6,76.7,10.57626,0,74.1,450,150,1,0,1.791759,5.010635,1,4.564348,6.160541,1,0,0,74.1,7.447335,1.791759,1.739547,1 +13,6,0,0,3,628426,1,1714.286,9.405887,0,10,1,0,0,0,0,0,0,0,0,0,0,0,6,76.7,10.57626,0,74.1,450,150,1,0,1.791759,5.010635,1,4.564348,6.160541,1,0,0,74.1,7.447335,1.791759,,0 +10,6,50,0,1,628429,0,2283.871,37.08693,0,9,1,61.94252,0,0,0,0,61.94252,0,0,0,2,0,1,92.6,0,0,76.1,531.9,531.9,0,0,0,6.276455,0,3.931826,6.969603,0,0,0,76.1,7.734065,0,4.126207,1 +10,6,50,0,2,628429,0,2283.871,38.08693,0,9,1,0,0,0,0,0,0,0,0,0,0,0,1,92.6,0,0,76.1,531.9,531.9,0,0,0,6.276455,0,3.931826,6.969603,0,0,0,76.1,7.734065,0,,0 +10,6,50,0,3,628429,0,2283.871,39.08693,0,9,1,10.93816,0,0,0,0,10.93816,0,0,0,2,0,1,92.6,0,0,76.1,531.9,531.9,0,0,0,6.276455,0,3.931826,6.969603,0,0,0,76.1,7.734065,0,2.392257,1 +10,6,50,0,4,628429,0,2283.871,40.08693,0,9,1,185.1152,0,0,0,0,185.1152,0,0,0,1,15,1,92.6,0,0,76.1,531.9,531.9,0,0,0,6.276455,0,3.931826,6.969603,0,0,0,76.1,7.734065,0,5.220978,1 +10,6,50,0,5,628429,0,2283.871,41.08693,0,9,1,14.06518,0,0,0,0,14.06518,0,0,0,2,0,1,92.6,0,0,76.1,531.9,531.9,0,0,0,6.276455,0,3.931826,6.969603,0,0,0,76.1,7.734065,0,2.643702,1 +11,6,0,1,1,628437,0,6735.316,35.44422,1,6,1,103.2586,14.17689,29.62336,0,1146.001,1293.06,1,0,0,4,0,7,78.2,17.2,0,69.3,0,216.48,0,0,1.94591,5.377498,0,0,0,0,0,1,69.3,8.815269,1.94591,7.164766,1 +11,6,0,1,2,628437,0,6735.316,36.44422,1,6,1,112.9461,34.16856,37.96507,0,0,185.0797,0,0,0,10,0,7,78.2,17.2,0,69.3,0,216.48,0,0,1.94591,5.377498,0,0,0,0,0,1,69.3,8.815269,1.94591,5.220787,1 +11,6,0,1,3,628437,0,6735.316,37.44422,1,6,1,80.96886,50.11765,29.97578,50.17301,300.346,461.4083,1,0,3,4,0,8,78.2,17.2,0,69.3,0,216.48,0,0,2.079442,5.377498,0,0,0,0,0,1,69.3,8.815269,2.079442,6.134284,1 +11,6,0,1,1,628438,0,6735.316,43.05544,0,5,1,14.81168,2.539145,35.12484,0,0,52.47567,0,0,0,1,0,7,77.7,27.6,0,45.5,0,216.48,0,0,1.94591,5.377498,0,0,0,1,0,0,45.5,8.815269,1.94591,3.96035,1 +11,6,0,1,2,628438,0,6735.316,44.05544,0,5,1,34.16856,21.15034,0,0,0,55.3189,0,0,0,3,0,7,77.7,27.6,0,45.5,0,216.48,0,0,1.94591,5.377498,0,0,0,1,0,0,45.5,8.815269,1.94591,4.013115,1 +11,6,0,1,3,628438,0,6735.316,45.05544,0,5,1,29.58478,19.07612,0,0,0,48.6609,0,0,0,3,0,8,77.7,27.6,0,45.5,0,216.48,0,0,2.079442,5.377498,0,0,0,1,0,0,45.5,8.815269,2.079442,3.884876,1 +11,6,0,1,1,628439,0,6735.316,4.580424,0,6,1,50.35971,24.45197,0,0,0,74.81168,0,0,0,2,0,7,77.40034,10.57626,0,88.9,0,216.48,1,0,1.94591,5.377498,0,0,0,0,0,1,88.9,8.815269,1.94591,4.314974,1 +11,6,0,1,2,628439,0,6735.316,5.580424,0,6,1,55.80865,9.859529,0,0,0,65.66818,0,0,0,6,0,7,77.40034,10.57626,0,88.9,0,216.48,1,0,1.94591,5.377498,0,0,0,0,0,1,88.9,8.815269,1.94591,4.184615,1 +11,6,0,1,3,628439,0,6735.316,6.580424,0,6,1,49.82699,15.20415,0,0,0,65.03114,0,0,0,6,0,8,77.40034,10.57626,0,88.9,0,216.48,1,0,2.079442,5.377498,0,0,0,0,0,1,88.9,8.815269,2.079442,4.174866,1 +11,6,0,1,1,628440,0,6735.316,18.22313,0,7,1,0,0,0,0,0,0,0,0,0,0,0,7,74.8,0,0,67,0,216.48,0,0,1.94591,5.377498,0,0,0,0,0,0,67,8.815269,1.94591,,0 +11,6,0,1,3,628440,0,6735.316,20.22313,0,7,1,56.40138,29.14533,2.595156,43.25259,0,88.14187,0,0,4,0,0,8,74.8,0,0,67,0,216.48,0,0,2.079442,5.377498,0,0,0,0,0,0,67,8.815269,2.079442,4.478948,1 +11,6,0,1,1,628441,0,6735.316,14.40931,1,6,1,46.97419,11.10876,0,0,0,58.08295,0,0,0,3,0,7,61.2,3.4,0,61.4,0,216.48,1,1,1.94591,5.377498,0,0,0,1,0,0,61.4,8.815269,1.94591,4.061872,1 +11,6,0,1,2,628441,0,6735.316,15.40931,1,6,1,63.81929,11.23766,0,0,0,75.05695,0,0,0,7,0,7,61.2,3.4,0,61.4,0,216.48,1,1,1.94591,5.377498,0,0,0,1,0,0,61.4,8.815269,1.94591,4.318247,1 +11,6,0,1,3,628441,0,6735.316,16.40931,1,6,1,17.30104,16.21107,0,0,0,33.51211,0,0,0,1,0,8,61.2,3.4,0,61.4,0,216.48,1,1,2.079442,5.377498,0,0,0,1,0,0,61.4,8.815269,2.079442,3.511907,1 +11,6,0,1,1,628442,0,6735.316,9.831622,0,6,1,46.97419,8.992805,0,0,0,55.96699,0,0,0,2,0,7,95,10.57626,0,66.7,0,216.48,1,0,1.94591,5.377498,0,0,0,0,0,0,66.7,8.815269,1.94591,4.024762,1 +11,6,0,1,2,628442,0,6735.316,10.83162,0,6,1,9.491268,3.287775,0,0,0,12.77904,0,0,0,1,0,7,95,10.57626,0,66.7,0,216.48,1,0,1.94591,5.377498,0,0,0,0,0,0,66.7,8.815269,1.94591,2.547807,1 +11,6,0,1,3,628442,0,6735.316,11.83162,0,6,1,49.48097,2.743945,0,0,0,52.22491,0,0,0,1,0,8,95,10.57626,0,66.7,0,216.48,1,0,2.079442,5.377498,0,0,0,0,0,0,66.7,8.815269,2.079442,3.95556,1 +11,6,0,1,1,628443,0,6735.316,17.13621,0,6,1,8.463818,4.655099,0,0,0,13.11892,0,0,0,2,0,7,70.2,3.4,0,95.5,0,216.48,1,0,1.94591,5.377498,0,0,0,1,0,0,95.5,8.815269,1.94591,2.574055,1 +11,6,0,1,2,628443,0,6735.316,18.13621,0,6,1,0,3.416857,0,0,0,3.416857,0,0,0,0,0,7,70.2,3.4,0,95.5,0,216.48,0,0,1.94591,5.377498,0,0,0,1,0,0,95.5,8.815269,1.94591,1.228721,1 +11,6,0,1,3,628443,0,6735.316,19.13621,0,6,1,0,3.615917,0,0,0,3.615917,0,0,0,0,0,8,70.2,3.4,0,95.5,0,216.48,0,0,2.079442,5.377498,0,0,0,1,0,0,95.5,8.815269,2.079442,1.285345,1 +16,6,95,1,1,628455,1,6735.316,55.93429,1,3,1,96.48752,24.43927,35.97122,0,435.8866,592.7846,1,0,0,4,1,1,63.3,17.2,1,52.5,364.5,364.5,0,0,0,5.898527,0,4.564348,5.94982,0,0,1,52.5,8.815269,0,6.384831,1 +16,6,95,1,2,628455,1,6735.316,56.93429,1,3,1,0,9.168565,0,0,0,9.168565,0,0,0,0,0,1,63.3,17.2,1,52.5,364.5,364.5,0,0,0,5.898527,0,4.564348,5.94982,0,0,1,52.5,8.815269,0,2.215781,1 +16,6,95,1,3,628455,1,6735.316,57.93429,1,3,1,13.84083,0,34.60208,0,0,48.44291,0,0,0,1,0,1,63.3,17.2,1,52.5,364.5,364.5,0,0,0,5.898527,0,4.564348,5.94982,0,0,1,52.5,8.815269,0,3.880386,1 +11,6,0,1,1,628466,1,6491.04,39.20876,0,12,1,42.91123,11.56921,0,0,0,54.48044,0,0,0,2,0,8,76.1,0,1,50,0,0,0,0,2.079442,0,0,0,0,0,1,0,50,8.778332,2.079442,3.997842,1 +11,6,0,1,2,628466,1,6491.04,40.20876,0,12,1,5.666792,6.120136,0,0,0,11.78693,0,0,0,1,0,8,76.1,0,1,50,0,0,0,0,2.079442,0,0,0,0,0,1,0,50,8.778332,2.079442,2.466991,1 +11,6,0,1,3,628466,1,6491.04,41.20876,0,12,1,5.145798,0,0,0,0,5.145798,0,0,0,1,0,8,76.1,0,1,50,0,0,0,0,2.079442,0,0,0,0,0,1,0,50,8.778332,2.079442,1.63818,1 +11,6,0,1,1,628467,1,6491.04,10.80904,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,96.7,10.57626,0,88.9,0,0,1,1,2.079442,0,0,0,0,1,0,0,88.9,8.778332,2.079442,,0 +11,6,0,1,2,628467,1,6491.04,11.80904,1,12,1,5.666792,2.247828,0,0,0,7.91462,0,0,0,1,0,8,96.7,10.57626,0,88.9,0,0,1,1,2.079442,0,0,0,0,1,0,0,88.9,8.778332,2.079442,2.068712,1 +11,6,0,1,3,628467,1,6491.04,12.80904,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,96.7,10.57626,0,88.9,0,0,1,1,2.079442,0,0,0,0,1,0,0,88.9,8.778332,2.079442,,0 +11,6,0,1,1,628468,1,6491.04,14.48323,0,12,1,5.04838,0,0,0,0,5.04838,0,0,0,1,0,8,85.1,10.3,0,64.8,0,0,1,0,2.079442,0,0,0,0,1,0,0,64.8,8.778332,2.079442,1.619067,1 +11,6,0,1,2,628468,1,6491.04,15.48323,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,85.1,10.3,0,64.8,0,0,1,0,2.079442,0,0,0,0,1,0,0,64.8,8.778332,2.079442,,0 +11,6,0,1,3,628468,1,6491.04,16.48323,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,85.1,10.3,0,64.8,0,0,1,0,2.079442,0,0,0,0,1,0,0,64.8,8.778332,2.079442,,0 +11,6,0,1,1,628469,1,6491.04,3.249829,0,12,1,18.09003,3.155238,0,0,0,21.24527,0,0,0,3,0,8,77.40034,10.57626,0,88.9,0,0,1,0,2.079442,0,0,0,0,1,0,0,88.9,8.778332,2.079442,3.056134,1 +11,6,0,1,2,628469,1,6491.04,4.249829,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,77.40034,10.57626,0,88.9,0,0,1,0,2.079442,0,0,0,0,1,0,0,88.9,8.778332,2.079442,,0 +11,6,0,1,3,628469,1,6491.04,5.249829,0,12,1,5.831904,6.7753,0,0,0,12.6072,0,0,0,1,0,8,77.40034,10.57626,0,88.9,0,0,1,0,2.079442,0,0,0,0,1,0,0,88.9,8.778332,2.079442,2.534268,1 +11,6,0,1,1,628470,1,6491.04,39.19507,1,12,1,0,3.344552,0,0,0,3.344552,0,0,0,0,0,8,79.8,3.4,0,76.1,0,0,0,0,2.079442,0,0,0,0,0,1,0,76.1,8.778332,2.079442,1.207333,1 +11,6,0,1,2,628470,1,6491.04,40.19507,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,79.8,3.4,0,76.1,0,0,0,0,2.079442,0,0,0,0,0,1,0,76.1,8.778332,2.079442,,0 +11,6,0,1,3,628470,1,6491.04,41.19507,1,12,1,41.85249,2.401372,0,0,0,44.25386,0,0,0,3,0,8,79.8,3.4,0,76.1,0,0,0,0,2.079442,0,0,0,0,0,1,0,76.1,8.778332,2.079442,3.789943,1 +11,6,0,1,1,628471,1,6491.04,7.764545,0,12,1,5.889777,1.051746,0,0,0,6.941523,0,0,0,1,0,8,96.7,10.57626,0,96.3,0,0,1,0,2.079442,0,0,0,0,1,0,0,96.3,8.778332,2.079442,1.937521,1 +11,6,0,1,2,628471,1,6491.04,8.764544,0,12,1,10.57801,1.492255,0,0,0,12.07027,0,0,0,2,0,8,96.7,10.57626,0,96.3,0,0,1,0,2.079442,0,0,0,0,1,0,0,96.3,8.778332,2.079442,2.490745,1 +11,6,0,1,3,628471,1,6491.04,9.764544,0,12,1,5.831904,4.336192,0,0,0,10.1681,0,0,0,1,0,8,96.7,10.57626,0,96.3,0,0,1,0,2.079442,0,0,0,0,1,0,0,96.3,8.778332,2.079442,2.319255,1 +11,6,0,1,1,628472,1,6491.04,12.2601,0,12,1,8.413967,0,28.18679,0,0,36.60076,0,0,0,0,1,8,93.3,10.57626,0,70.4,0,0,1,0,2.079442,0,0,0,0,1,0,0,70.4,8.778332,2.079442,3.600069,1 +11,6,0,1,2,628472,1,6491.04,13.2601,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,93.3,10.57626,0,70.4,0,0,1,0,2.079442,0,0,0,0,1,0,0,70.4,8.778332,2.079442,,0 +11,6,0,1,3,628472,1,6491.04,14.2601,0,12,1,6.51801,0,0,0,0,6.51801,0,0,0,1,0,8,93.3,10.57626,0,70.4,0,0,1,0,2.079442,0,0,0,0,1,0,0,70.4,8.778332,2.079442,1.874569,1 +11,6,0,1,1,628473,1,6491.04,15.436,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,87.8,3.4,0,79.8,0,0,1,1,2.079442,0,0,0,0,1,0,0,79.8,8.778332,2.079442,,0 +11,6,0,1,2,628473,1,6491.04,16.436,1,12,1,16.62259,0,0,0,0,16.62259,0,0,0,1,1,8,87.8,3.4,0,79.8,0,0,1,1,2.079442,0,0,0,0,1,0,0,79.8,8.778332,2.079442,2.810763,1 +11,6,0,1,3,628473,1,6491.04,17.436,1,12,1,8.576329,0,29.15952,0,0,37.73585,0,0,0,0,1,8,87.8,3.4,0,79.8,0,0,1,1,2.079442,0,0,0,0,1,0,0,79.8,8.778332,2.079442,3.63061,1 +7,6,25,0,1,628480,0,13028.15,56.2026,0,14,1,22.60171,0,0,0,0,22.60171,0,0,0,1,0,2,83.5,17.2,0,61.4,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,61.4,9.474945,.6931472,3.118026,1 +7,6,25,0,2,628480,0,13028.15,57.2026,0,14,1,58.87807,0,51.46036,0,0,110.3384,0,0,0,4,0,2,83.5,17.2,0,61.4,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,61.4,9.474945,.6931472,4.703552,1 +7,6,25,0,3,628480,0,13028.15,58.2026,0,14,1,0,0,0,0,0,0,0,0,0,0,0,2,83.5,17.2,0,61.4,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,61.4,9.474945,.6931472,,0 +7,6,25,0,4,628480,0,13028.15,59.2026,0,14,1,35.49618,0,38.54962,0,308.0153,382.0611,1,0,0,2,1,2,83.5,17.2,0,61.4,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,61.4,9.474945,.6931472,5.94558,1 +7,6,25,0,5,628480,0,13028.15,60.2026,0,14,1,9.407665,0,27.87457,0,0,37.28223,0,0,0,0,0,2,83.5,17.2,0,61.4,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,61.4,9.474945,.6931472,3.618517,1 +7,6,25,0,1,628481,0,13028.15,44.11225,1,17,1,0,0,0,0,0,0,0,0,0,0,0,2,74.5,3.4,0,79.5,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,79.5,9.474945,.6931472,,0 +7,6,25,0,2,628481,0,13028.15,45.11225,1,17,1,84.37645,0,44.50626,0,0,128.8827,0,0,0,9,0,2,74.5,3.4,0,79.5,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,79.5,9.474945,.6931472,4.858903,1 +7,6,25,0,3,628481,0,13028.15,46.11225,1,17,1,0,0,0,0,0,0,0,0,0,0,0,2,74.5,3.4,0,79.5,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,79.5,9.474945,.6931472,,0 +7,6,25,0,4,628481,0,13028.15,47.11225,1,17,1,11.83206,23.72901,9.389313,0,0,44.95038,0,0,0,1,0,2,74.5,3.4,0,79.5,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,79.5,9.474945,.6931472,3.805559,1 +7,6,25,0,5,628481,0,13028.15,48.11225,1,17,1,12.54355,35.777,26.1324,0,1030.662,1105.115,1,0,0,1,0,2,74.5,3.4,0,79.5,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,79.5,9.474945,.6931472,7.007705,1 +13,6,0,0,1,628485,0,5711.726,5.040383,0,8,1,6.347863,5.196784,0,0,0,11.54465,0,0,0,1,0,4,83.3,10.57626,.1442925,70.4,450,174.72,1,0,1.386294,5.163185,1,4.564348,6.160541,1,0,0,70.4,8.650452,1.386294,2.446222,1 +13,6,0,0,2,628485,0,5711.726,6.040383,0,8,1,0,0,0,0,0,0,0,0,0,0,0,4,83.3,10.57626,.1442925,70.4,450,174.72,1,0,1.386294,5.163185,1,4.564348,6.160541,1,0,0,70.4,8.650452,1.386294,,0 +13,6,0,0,3,628485,0,5711.726,7.040383,0,8,1,0,0,0,0,0,0,0,0,0,0,0,4,83.3,10.57626,.1442925,70.4,450,174.72,1,0,1.386294,5.163185,1,4.564348,6.160541,1,0,0,70.4,8.650452,1.386294,,0 +13,6,0,0,1,628486,0,5711.726,11.95893,1,8,1,6.347863,2.048244,0,0,0,8.396107,0,0,0,1,0,4,85,10.57626,.1442925,88.9,450,174.72,1,1,1.386294,5.163185,1,4.564348,6.160541,1,0,0,88.9,8.650452,1.386294,2.127768,1 +13,6,0,0,2,628486,0,5711.726,12.95893,1,8,1,0,0,0,0,0,0,0,0,0,0,0,4,85,10.57626,.1442925,88.9,450,174.72,1,1,1.386294,5.163185,1,4.564348,6.160541,1,0,0,88.9,8.650452,1.386294,,0 +13,6,0,0,3,628486,0,5711.726,13.95893,1,8,1,0,0,0,0,0,0,0,0,0,0,0,4,85,10.57626,.1442925,88.9,450,174.72,1,1,1.386294,5.163185,1,4.564348,6.160541,1,0,0,88.9,8.650452,1.386294,,0 +13,6,0,0,1,628487,0,5711.726,27.60027,1,8,1,129.4964,47.51164,0,0,226.8303,403.8383,1,0,0,7,7,4,60.6,20.7,0,44.3,450,174.72,0,0,1.386294,5.163185,1,4.564348,6.160541,1,0,0,44.3,8.650452,1.386294,6.001015,1 +13,6,0,0,2,628487,0,5711.726,28.60027,1,8,1,5.694761,9.396356,0,0,462.7942,477.8853,1,0,0,1,0,4,60.6,20.7,0,44.3,450,174.72,0,0,1.386294,5.163185,1,4.564348,6.160541,1,0,0,44.3,8.650452,1.386294,6.169371,1 +13,6,0,0,3,628487,0,5711.726,29.60027,1,8,1,235.6401,5.307959,0,0,0,240.9481,0,0,0,0,20,4,60.6,20.7,0,44.3,450,174.72,0,0,1.386294,5.163185,1,4.564348,6.160541,1,0,0,44.3,8.650452,1.386294,5.484581,1 +13,6,0,0,1,628488,0,5711.726,31.51814,0,8,1,0,0,0,0,0,0,0,0,0,0,0,4,85.1,13.8,0,81,450,174.72,0,0,1.386294,5.163185,1,4.564348,6.160541,1,0,0,81,8.650452,1.386294,,0 +13,6,0,0,2,628488,0,5711.726,32.51814,0,8,1,0,0,0,0,0,0,0,0,0,0,0,4,85.1,13.8,0,81,450,174.72,0,0,1.386294,5.163185,1,4.564348,6.160541,1,0,0,81,8.650452,1.386294,,0 +13,6,0,0,3,628488,0,5711.726,33.51814,0,8,1,0,0,0,0,0,0,0,0,0,0,0,4,85.1,13.8,0,81,450,174.72,0,0,1.386294,5.163185,1,4.564348,6.160541,1,0,0,81,8.650452,1.386294,,0 +6,6,25,0,1,628489,1,6524.27,15.82478,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,76.6,0,0,52.9,750,750,1,0,2.079442,6.620073,0,3.258096,8.006368,1,0,0,52.9,8.783438,2.079442,,0 +6,6,25,0,2,628489,1,6524.27,16.82478,0,12,1,6.883892,0,0,0,0,6.883892,0,0,0,1,0,8,76.6,0,0,52.9,750,750,1,0,2.079442,6.620073,0,3.258096,8.006368,1,0,0,52.9,8.783438,2.079442,1.929184,1 +6,6,25,0,1,628490,1,6524.27,18.00411,1,10,1,0,0,0,0,0,0,0,0,0,0,0,8,78.7,0,.1442925,65.5,750,750,0,0,2.079442,6.620073,0,3.258096,8.006368,1,0,0,65.5,8.783438,2.079442,,0 +6,6,25,0,2,628490,1,6524.27,19.00411,1,10,1,9.178522,0,33.50161,0,0,42.68013,0,0,0,0,1,8,78.7,0,.1442925,65.5,750,750,0,0,2.079442,6.620073,0,3.258096,8.006368,1,0,0,65.5,8.783438,2.079442,3.753733,1 +6,6,25,0,3,628490,1,6524.27,20.00411,1,10,1,2.944889,5.742533,0,0,0,8.687421,0,0,0,1,0,7,78.7,0,.1442925,65.5,750,750,0,0,1.94591,6.620073,0,3.258096,8.006368,1,0,0,65.5,8.783438,1.94591,2.161876,1 +6,6,25,0,4,628490,1,6524.27,21.00411,1,10,1,0,0,0,0,0,0,0,0,0,0,0,7,78.7,0,.1442925,65.5,750,750,0,0,1.94591,6.620073,0,3.258096,8.006368,1,0,0,65.5,8.783438,1.94591,,0 +6,6,25,0,5,628490,1,6524.27,22.00411,1,10,1,0,6.140652,0,0,0,6.140652,0,0,0,0,0,7,78.7,0,.1442925,65.5,750,750,0,0,1.94591,6.620073,0,3.258096,8.006368,1,0,0,65.5,8.783438,1.94591,1.814931,1 +6,6,25,0,1,628491,1,6524.27,4.572211,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,77.40034,10.57626,0,47.5,750,750,1,0,2.079442,6.620073,0,3.258096,8.006368,1,0,0,47.5,8.783438,2.079442,,0 +6,6,25,0,2,628491,1,6524.27,5.572211,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,77.40034,10.57626,0,47.5,750,750,1,0,2.079442,6.620073,0,3.258096,8.006368,1,0,0,47.5,8.783438,2.079442,,0 +6,6,25,0,3,628491,1,6524.27,6.572211,0,12,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,0,47.5,750,750,1,0,1.94591,6.620073,0,3.258096,8.006368,1,0,0,47.5,8.783438,1.94591,,0 +6,6,25,0,4,628491,1,6524.27,7.572211,0,12,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,0,47.5,750,750,1,0,1.94591,6.620073,0,3.258096,8.006368,1,0,0,47.5,8.783438,1.94591,,0 +6,6,25,0,5,628491,1,6524.27,8.572211,0,12,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,0,47.5,750,750,1,0,1.94591,6.620073,0,3.258096,8.006368,1,0,0,47.5,8.783438,1.94591,,0 +6,6,25,0,1,628492,1,6524.27,11.24709,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,85,10.57626,0,77.8,750,750,1,1,2.079442,6.620073,0,3.258096,8.006368,1,0,0,77.8,8.783438,2.079442,,0 +6,6,25,0,2,628492,1,6524.27,12.24709,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,85,10.57626,0,77.8,750,750,1,1,2.079442,6.620073,0,3.258096,8.006368,1,0,0,77.8,8.783438,2.079442,,0 +6,6,25,0,3,628492,1,6524.27,13.24709,1,12,1,14.72444,8.380311,29.02819,0,0,52.13294,0,0,0,1,1,7,85,10.57626,0,77.8,750,750,1,1,1.94591,6.620073,0,3.258096,8.006368,1,0,0,77.8,8.783438,1.94591,3.953797,1 +6,6,25,0,4,628492,1,6524.27,14.24709,1,12,1,0,0,0,0,0,0,0,0,0,0,0,7,85,10.57626,0,77.8,750,750,1,1,1.94591,6.620073,0,3.258096,8.006368,1,0,0,77.8,8.783438,1.94591,,0 +6,6,25,0,5,628492,1,6524.27,15.24709,1,12,1,0,0,0,0,0,0,0,0,0,0,0,7,85,10.57626,0,77.8,750,750,1,1,1.94591,6.620073,0,3.258096,8.006368,1,0,0,77.8,8.783438,1.94591,,0 +6,6,25,0,1,628493,1,6524.27,12.71732,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,86.7,10.57626,0,96.3,750,750,1,1,2.079442,6.620073,0,3.258096,8.006368,1,0,0,96.3,8.783438,2.079442,,0 +6,6,25,0,2,628493,1,6524.27,13.71732,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,86.7,10.57626,0,96.3,750,750,1,1,2.079442,6.620073,0,3.258096,8.006368,1,0,0,96.3,8.783438,2.079442,,0 +6,6,25,0,3,628493,1,6524.27,14.71732,1,12,1,0,0,0,0,0,0,0,0,0,0,0,7,86.7,10.57626,0,96.3,750,750,1,1,1.94591,6.620073,0,3.258096,8.006368,1,0,0,96.3,8.783438,1.94591,,0 +6,6,25,0,4,628493,1,6524.27,15.71732,1,12,1,0,0,0,0,0,0,0,0,0,0,0,7,86.7,10.57626,0,96.3,750,750,1,1,1.94591,6.620073,0,3.258096,8.006368,1,0,0,96.3,8.783438,1.94591,,0 +6,6,25,0,5,628493,1,6524.27,16.71732,1,12,1,0,0,0,0,0,0,0,0,0,0,0,7,86.7,10.57626,0,96.3,750,750,1,1,1.94591,6.620073,0,3.258096,8.006368,1,0,0,96.3,8.783438,1.94591,,0 +6,6,25,0,1,628494,1,6524.27,9.267625,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,85,10.57626,0,96.3,750,750,1,1,2.079442,6.620073,0,3.258096,8.006368,1,0,0,96.3,8.783438,2.079442,,0 +6,6,25,0,2,628494,1,6524.27,10.26762,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,85,10.57626,0,96.3,750,750,1,1,2.079442,6.620073,0,3.258096,8.006368,1,0,0,96.3,8.783438,2.079442,,0 +6,6,25,0,3,628494,1,6524.27,11.26762,1,12,1,0,0,0,0,0,0,0,0,0,0,0,7,85,10.57626,0,96.3,750,750,1,1,1.94591,6.620073,0,3.258096,8.006368,1,0,0,96.3,8.783438,1.94591,,0 +6,6,25,0,4,628494,1,6524.27,12.26762,1,12,1,0,0,0,0,0,0,0,0,0,0,0,7,85,10.57626,0,96.3,750,750,1,1,1.94591,6.620073,0,3.258096,8.006368,1,0,0,96.3,8.783438,1.94591,,0 +6,6,25,0,5,628494,1,6524.27,13.26762,1,12,1,0,0,0,0,0,0,0,0,0,0,0,7,85,10.57626,0,96.3,750,750,1,1,1.94591,6.620073,0,3.258096,8.006368,1,0,0,96.3,8.783438,1.94591,,0 +6,6,25,0,1,628495,1,6524.27,54.0178,0,7,1,0,0,0,0,0,0,0,0,0,0,0,8,81.4,3.4,1,55.7,750,750,0,0,2.079442,6.620073,0,3.258096,8.006368,0,1,0,55.7,8.783438,2.079442,,0 +6,6,25,0,2,628495,1,6524.27,55.0178,0,7,1,0,7.687012,0,0,0,7.687012,0,0,0,0,0,8,81.4,3.4,1,55.7,750,750,0,0,2.079442,6.620073,0,3.258096,8.006368,0,1,0,55.7,8.783438,2.079442,2.039532,1 +6,6,25,0,3,628495,1,6524.27,56.0178,0,7,1,10.51746,2.082457,0,0,0,12.59992,0,0,0,1,0,7,81.4,3.4,1,55.7,750,750,0,0,1.94591,6.620073,0,3.258096,8.006368,0,1,0,55.7,8.783438,1.94591,2.53369,1 +6,6,25,0,4,628495,1,6524.27,57.0178,0,7,1,0,0,0,0,0,0,0,0,0,0,0,7,81.4,3.4,1,55.7,750,750,0,0,1.94591,6.620073,0,3.258096,8.006368,0,1,0,55.7,8.783438,1.94591,,0 +6,6,25,0,5,628495,1,6524.27,58.0178,0,7,1,0,0,0,0,0,0,0,0,0,0,0,7,81.4,3.4,1,55.7,750,750,0,0,1.94591,6.620073,0,3.258096,8.006368,0,1,0,55.7,8.783438,1.94591,,0 +6,6,25,0,1,628496,1,6524.27,43.9562,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,77.7,10.3,0,66.7,750,750,0,0,2.079442,6.620073,0,3.258096,8.006368,0,1,0,66.7,8.783438,2.079442,,0 +6,6,25,0,2,628496,1,6524.27,44.9562,1,12,1,160.1652,0,43.59798,0,0,203.7632,0,0,0,2,1,8,77.7,10.3,0,66.7,750,750,0,0,2.079442,6.620073,0,3.258096,8.006368,0,1,0,66.7,8.783438,2.079442,5.316958,1 +6,6,25,0,3,628496,1,6524.27,45.9562,1,12,1,0,.9465713,0,0,0,.9465713,0,0,0,0,0,7,77.7,10.3,0,66.7,750,750,0,0,1.94591,6.620073,0,3.258096,8.006368,0,1,0,66.7,8.783438,1.94591,-.054909,1 +6,6,25,0,4,628496,1,6524.27,46.9562,1,12,1,11.33358,0,36.26747,0,0,47.60106,0,0,0,0,1,7,77.7,10.3,0,66.7,750,750,0,0,1.94591,6.620073,0,3.258096,8.006368,0,1,0,66.7,8.783438,1.94591,3.862855,1 +6,6,25,0,5,628496,1,6524.27,47.9562,1,12,1,19.21098,0,0,0,0,19.21098,0,0,0,2,0,7,77.7,10.3,0,66.7,750,750,0,0,1.94591,6.620073,0,3.258096,8.006368,0,1,0,66.7,8.783438,1.94591,2.955482,1 +15,6,95,0,1,628506,1,6735.316,4.695414,0,7,1,0,2.615319,0,0,0,2.615319,0,0,0,0,0,5,77.40034,10.57626,0,92.6,296,624,1,0,1.609438,6.436151,0,4.564348,5.741653,0,1,0,92.6,8.815269,1.609438,.9613863,1 +15,6,95,0,2,628506,1,6735.316,5.695414,0,7,1,20.12149,6.602126,0,0,0,26.72361,0,0,0,1,0,5,77.40034,10.57626,0,92.6,296,624,1,0,1.609438,6.436151,0,4.564348,5.741653,0,1,0,92.6,8.815269,1.609438,3.285547,1 +15,6,95,0,3,628506,1,6735.316,6.695414,0,7,1,0,5.259516,0,0,0,5.259516,0,0,0,0,0,5,77.40034,10.57626,0,92.6,296,624,1,0,1.609438,6.436151,0,4.564348,5.741653,0,1,0,92.6,8.815269,1.609438,1.660039,1 +15,6,95,0,1,628507,1,6735.316,47.14579,0,1,1,0,0,0,0,0,0,0,0,0,0,0,5,72.1,13.8,1,70.5,296,624,0,0,1.609438,6.436151,0,4.564348,5.741653,1,0,0,70.5,8.815269,1.609438,,0 +15,6,95,0,2,628507,1,6735.316,48.14579,0,1,1,0,0,0,0,0,0,0,0,0,0,0,5,72.1,13.8,1,70.5,296,624,0,0,1.609438,6.436151,0,4.564348,5.741653,1,0,0,70.5,8.815269,1.609438,,0 +15,6,95,0,3,628507,1,6735.316,49.14579,0,1,1,0,0,0,0,0,0,0,0,0,0,0,5,72.1,13.8,1,70.5,296,624,0,0,1.609438,6.436151,0,4.564348,5.741653,1,0,0,70.5,8.815269,1.609438,,0 +15,6,95,0,1,628508,1,6735.316,19.84121,0,8,1,0,0,0,0,0,0,0,0,0,0,0,5,69.1,0,0,70.5,296,624,0,0,1.609438,6.436151,0,4.564348,5.741653,0,1,0,70.5,8.815269,1.609438,,0 +15,6,95,0,2,628508,1,6735.316,20.84121,0,8,1,0,0,0,0,0,0,0,0,0,0,0,5,69.1,0,0,70.5,296,624,0,0,1.609438,6.436151,0,4.564348,5.741653,0,1,0,70.5,8.815269,1.609438,,0 +15,6,95,0,3,628508,1,6735.316,21.84121,0,8,1,0,0,0,0,0,0,0,0,0,0,0,5,69.1,0,0,70.5,296,624,0,0,1.609438,6.436151,0,4.564348,5.741653,0,1,0,70.5,8.815269,1.609438,,0 +15,6,95,0,1,628509,1,6735.316,10.03149,0,7,1,0,0,0,0,0,0,0,0,0,0,0,5,81.7,10.57626,0,77.8,296,624,1,0,1.609438,6.436151,0,4.564348,5.741653,0,1,0,77.8,8.815269,1.609438,,0 +15,6,95,0,2,628509,1,6735.316,11.03149,0,7,1,0,0,0,0,0,0,0,0,0,0,0,5,81.7,10.57626,0,77.8,296,624,1,0,1.609438,6.436151,0,4.564348,5.741653,0,1,0,77.8,8.815269,1.609438,,0 +15,6,95,0,3,628509,1,6735.316,12.03149,0,7,1,0,0,0,0,0,0,0,0,0,0,0,5,81.7,10.57626,0,77.8,296,624,1,0,1.609438,6.436151,0,4.564348,5.741653,0,1,0,77.8,8.815269,1.609438,,0 +15,6,95,0,1,628510,1,6735.316,42.2204,1,7,1,0,0,0,0,0,0,0,0,0,0,0,5,63.3,6.9,0,65.9,296,624,0,0,1.609438,6.436151,0,4.564348,5.741653,0,1,0,65.9,8.815269,1.609438,,0 +15,6,95,0,2,628510,1,6735.316,43.2204,1,7,1,7.972665,2.638572,0,0,318.5269,329.1382,1,0,0,1,0,5,63.3,6.9,0,65.9,296,624,0,0,1.609438,6.436151,0,4.564348,5.741653,0,1,0,65.9,8.815269,1.609438,5.796478,1 +15,6,95,0,3,628510,1,6735.316,44.2204,1,7,1,0,2.076125,0,0,0,2.076125,0,0,0,0,0,5,63.3,6.9,0,65.9,296,624,0,0,1.609438,6.436151,0,4.564348,5.741653,0,1,0,65.9,8.815269,1.609438,.730503,1 +14,6,95,1,1,628511,0,8835.795,25.42642,1,8,1,0,0,0,0,0,0,0,0,0,0,0,5,85.6,27.6,1,75,700,700,0,0,1.609438,6.55108,0,4.564348,6.602374,0,0,0,75,9.086679,1.609438,,0 +14,6,95,1,2,628511,0,8835.795,26.42642,1,8,1,6.883892,8.031207,0,0,0,14.9151,0,0,0,1,0,5,85.6,27.6,1,75,700,700,0,0,1.609438,6.55108,0,4.564348,6.602374,0,0,0,75,9.086679,1.609438,2.702374,1 +14,6,95,1,3,628511,0,8835.795,27.42642,1,8,1,0,0,0,0,0,0,0,0,0,0,0,5,85.6,27.6,1,75,700,700,0,0,1.609438,6.55108,0,4.564348,6.602374,0,0,0,75,9.086679,1.609438,,0 +14,6,95,1,4,628511,0,8835.795,28.42642,1,8,1,53.64564,11.01624,0,0,0,64.66188,0,0,0,4,0,5,85.6,27.6,1,75,700,700,0,0,1.609438,6.55108,0,4.564348,6.602374,0,0,0,75,9.086679,1.609438,4.169172,1 +14,6,95,1,5,628511,0,8835.795,29.42642,1,8,1,81.98971,9.859348,0,0,0,91.84906,0,0,0,2,0,5,85.6,27.6,1,75,700,700,0,0,1.609438,6.55108,0,4.564348,6.602374,0,0,0,75,9.086679,1.609438,4.520146,1 +14,6,95,1,1,628512,0,8835.795,5.733059,0,8,1,0,3.538157,0,0,0,3.538157,0,0,0,0,0,5,83.3,10.57626,0,63,700,700,1,0,1.609438,6.55108,0,4.564348,6.602374,0,0,0,63,9.086679,1.609438,1.263606,1 +14,6,95,1,2,628512,0,8835.795,6.733059,0,8,1,5.507113,5.162919,0,0,0,10.67003,0,0,0,1,0,5,83.3,10.57626,0,63,700,700,1,0,1.609438,6.55108,0,4.564348,6.602374,0,0,0,63,9.086679,1.609438,2.367439,1 +14,6,95,1,3,628512,0,8835.795,7.733059,0,8,1,0,0,0,0,0,0,0,0,0,0,0,5,83.3,10.57626,0,63,700,700,1,0,1.609438,6.55108,0,4.564348,6.602374,0,0,0,63,9.086679,1.609438,,0 +14,6,95,1,4,628512,0,8835.795,8.73306,0,8,1,62.33472,4.608991,0,0,402.7201,469.6638,1,0,0,1,0,5,83.3,10.57626,0,63,700,700,1,0,1.609438,6.55108,0,4.564348,6.602374,0,0,0,63,9.086679,1.609438,6.152017,1 +14,6,95,1,5,628512,0,8835.795,9.73306,0,8,1,10.63465,8.315609,0,0,0,18.95026,0,0,0,1,0,5,83.3,10.57626,0,63,700,700,1,0,1.609438,6.55108,0,4.564348,6.602374,0,0,0,63,9.086679,1.609438,2.941818,1 +14,6,95,1,1,628513,0,8835.795,30.05339,0,9,1,0,0,0,0,0,0,0,0,0,0,0,5,67,6.9,1,60.2,700,700,0,0,1.609438,6.55108,0,4.564348,6.602374,0,0,0,60.2,9.086679,1.609438,,0 +14,6,95,1,2,628513,0,8835.795,31.05339,0,9,1,21.56953,0,0,0,0,21.56953,0,0,0,0,0,5,67,6.9,1,60.2,700,700,0,0,1.609438,6.55108,0,4.564348,6.602374,0,0,0,60.2,9.086679,1.609438,3.071281,1 +14,6,95,1,3,628513,0,8835.795,32.05339,0,9,1,0,0,0,0,0,0,0,0,0,0,0,5,67,6.9,1,60.2,700,700,0,0,1.609438,6.55108,0,4.564348,6.602374,0,0,0,60.2,9.086679,1.609438,,0 +14,6,95,1,4,628513,0,8835.795,33.05339,0,9,1,5.666792,6.505478,0,0,0,12.17227,0,0,0,1,0,5,67,6.9,1,60.2,700,700,0,0,1.609438,6.55108,0,4.564348,6.602374,0,0,0,60.2,9.086679,1.609438,2.499161,1 +14,6,95,1,5,628513,0,8835.795,34.05339,0,9,1,44.25386,13.7187,0,0,0,57.97256,0,0,0,0,0,5,67,6.9,1,60.2,700,700,0,0,1.609438,6.55108,0,4.564348,6.602374,0,0,0,60.2,9.086679,1.609438,4.05997,1 +14,6,95,1,1,628514,0,8835.795,7.15948,1,8,1,4.955401,2.601586,0,0,0,7.556987,0,0,0,1,0,5,78.3,10.57626,0,85.2,700,700,1,1,1.609438,6.55108,0,4.564348,6.602374,0,0,0,85.2,9.086679,1.609438,2.022473,1 +14,6,95,1,2,628514,0,8835.795,8.15948,1,8,1,12.39101,8.949059,0,0,0,21.34007,0,0,0,2,0,5,78.3,10.57626,0,85.2,700,700,1,1,1.609438,6.55108,0,4.564348,6.602374,0,0,0,85.2,9.086679,1.609438,3.060586,1 +14,6,95,1,3,628514,0,8835.795,9.15948,1,8,1,46.27682,0,0,0,270.509,316.7859,1,0,0,4,0,5,78.3,10.57626,0,85.2,700,700,1,1,1.609438,6.55108,0,4.564348,6.602374,0,0,0,85.2,9.086679,1.609438,5.758226,1 +14,6,95,1,4,628514,0,8835.795,10.15948,1,8,1,15.11145,0,0,0,0,15.11145,0,0,0,1,0,5,78.3,10.57626,0,85.2,700,700,1,1,1.609438,6.55108,0,4.564348,6.602374,0,0,0,85.2,9.086679,1.609438,2.715453,1 +14,6,95,1,5,628514,0,8835.795,11.15948,1,8,1,21.61235,0,0,0,0,21.61235,0,0,0,2,0,5,78.3,10.57626,0,85.2,700,700,1,1,1.609438,6.55108,0,4.564348,6.602374,0,0,0,85.2,9.086679,1.609438,3.073265,1 +14,6,95,1,1,628515,0,8835.795,3.989048,0,8,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,77.8,700,700,1,0,1.609438,6.55108,0,4.564348,6.602374,0,0,0,77.8,9.086679,1.609438,,0 +14,6,95,1,2,628515,0,8835.795,4.989048,0,8,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,77.8,700,700,1,0,1.609438,6.55108,0,4.564348,6.602374,0,0,0,77.8,9.086679,1.609438,,0 +14,6,95,1,3,628515,0,8835.795,5.989048,0,8,1,29.44888,0,0,0,0,29.44888,0,0,0,0,0,5,77.40034,10.57626,0,77.8,700,700,1,0,1.609438,6.55108,0,4.564348,6.602374,0,0,0,77.8,9.086679,1.609438,3.382656,1 +14,6,95,1,4,628515,0,8835.795,6.989048,0,8,1,17.37816,14.3181,0,0,0,31.69626,0,0,0,0,0,5,77.40034,10.57626,0,77.8,700,700,1,0,1.609438,6.55108,0,4.564348,6.602374,0,0,0,77.8,9.086679,1.609438,3.456199,1 +14,6,95,1,5,628515,0,8835.795,7.989048,0,8,1,67.92453,12.20926,0,0,0,80.13379,0,0,0,2,0,5,77.40034,10.57626,0,77.8,700,700,1,0,1.609438,6.55108,0,4.564348,6.602374,0,0,0,77.8,9.086679,1.609438,4.383698,1 +10,6,50,1,1,628518,0,7758.944,4.971937,0,9,1,7.481297,3.21197,0,0,0,10.69327,0,0,0,1,0,3,77.40034,10.57626,0,85.2,1000,1000,1,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,85.2,8.956731,1.098612,2.369614,1 +10,6,50,1,2,628518,0,7758.944,5.971937,0,9,1,24.43522,6.473029,0,0,0,30.90825,0,0,0,1,0,3,77.40034,10.57626,0,85.2,1000,1000,1,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,85.2,8.956731,1.098612,3.431023,1 +10,6,50,1,3,628518,0,7758.944,6.971937,0,9,1,14.81168,0,0,0,0,14.81168,0,0,0,2,0,3,77.40034,10.57626,0,85.2,1000,1000,1,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,85.2,8.956731,1.098612,2.695416,1 +10,6,50,1,4,628518,0,7758.944,7.971937,0,9,1,26.1959,12.92711,0,0,0,39.12301,0,0,0,5,0,3,77.40034,10.57626,0,85.2,1000,1000,1,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,85.2,8.956731,1.098612,3.666711,1 +10,6,50,1,5,628518,0,7758.944,8.971937,0,9,1,88.23529,17.30104,1.730104,0,0,107.2664,0,0,0,2,0,3,77.40034,10.57626,0,85.2,1000,1000,1,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,85.2,8.956731,1.098612,4.675316,1 +10,6,50,1,1,628519,0,7758.944,26.32717,1,9,1,32.41895,6.199501,35.91022,0,0,74.52868,0,0,0,2,1,3,77.1,13.8,0,69.3,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,69.3,8.956731,1.098612,4.311184,1 +10,6,50,1,2,628519,0,7758.944,27.32717,1,9,1,0,0,0,0,0,0,0,0,0,0,0,3,77.1,13.8,0,69.3,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,69.3,8.956731,1.098612,,0 +10,6,50,1,3,628519,0,7758.944,28.32717,1,9,1,10.57977,0,33.43208,0,0,44.01185,0,0,0,0,1,3,77.1,13.8,0,69.3,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,69.3,8.956731,1.098612,3.784459,1 +10,6,50,1,4,628519,0,7758.944,29.32717,1,9,1,37.58542,0,0,0,0,37.58542,0,0,0,1,0,3,77.1,13.8,0,69.3,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,69.3,8.956731,1.098612,3.626616,1 +10,6,50,1,5,628519,0,7758.944,30.32717,1,9,1,19.03114,0,0,0,0,19.03114,0,0,0,1,0,3,77.1,13.8,0,69.3,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,69.3,8.956731,1.098612,2.946077,1 +10,6,50,1,1,628520,0,7758.944,28.98836,0,11,1,27.43142,0,0,0,0,27.43142,0,0,0,3,0,3,85.6,6.9,0,71.6,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,71.6,8.956731,1.098612,3.311689,1 +10,6,50,1,2,628520,0,7758.944,29.98836,0,11,1,13.83126,0,0,0,29.96773,43.79898,1,1,0,2,0,3,85.6,6.9,0,71.6,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,71.6,8.956731,1.098612,3.779611,1 +10,6,50,1,3,628520,0,7758.944,30.98836,0,11,1,0,0,0,0,0,0,0,0,0,0,0,3,85.6,6.9,0,71.6,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,71.6,8.956731,1.098612,,0 +10,6,50,1,4,628520,0,7758.944,31.98836,0,11,1,22.39939,2.346241,0,0,0,24.74563,0,0,0,3,0,3,85.6,6.9,0,71.6,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,71.6,8.956731,1.098612,3.208649,1 +10,6,50,1,5,628520,0,7758.944,32.98837,0,11,1,83.04498,17.30104,1.730104,0,0,102.0761,0,0,0,2,0,3,85.6,6.9,0,71.6,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,71.6,8.956731,1.098612,4.625719,1 +13,6,0,0,1,628529,1,4009.729,12.0219,1,2,1,0,0,0,0,0,0,0,0,0,0,0,3,68.3,10.57626,.1442925,51.9,450,452.88,1,1,1.098612,6.115627,1,4.564348,6.160541,1,0,0,51.9,8.296728,1.098612,,0 +13,6,0,0,2,628529,1,4009.729,13.0219,1,2,1,3.796507,0,0,0,0,3.796507,0,0,0,1,0,3,68.3,10.57626,.1442925,51.9,450,452.88,1,1,1.098612,6.115627,1,4.564348,6.160541,1,0,0,51.9,8.296728,1.098612,1.334081,1 +13,6,0,0,3,628529,1,4009.729,14.0219,1,2,1,0,0,0,0,0,0,0,0,0,0,0,3,68.3,10.57626,.1442925,51.9,450,452.88,1,1,1.098612,6.115627,1,4.564348,6.160541,1,0,0,51.9,8.296728,1.098612,,0 +13,6,0,0,1,628530,1,4009.729,53.10062,1,2,1,15.65806,4.909014,0,0,0,20.56708,0,0,0,3,0,3,68.1,10.3,0,62.5,450,452.88,0,0,1.098612,6.115627,1,4.564348,6.160541,1,0,0,62.5,8.296728,1.098612,3.023691,1 +13,6,0,0,2,628530,1,4009.729,54.10062,1,2,1,0,0,0,0,0,0,0,0,0,0,0,3,68.1,10.3,0,62.5,450,452.88,0,0,1.098612,6.115627,1,4.564348,6.160541,1,0,0,62.5,8.296728,1.098612,,0 +13,6,0,0,3,628530,1,4009.729,55.10062,1,2,1,0,0,0,0,0,0,0,0,0,0,0,3,68.1,10.3,0,62.5,450,452.88,0,0,1.098612,6.115627,1,4.564348,6.160541,1,0,0,62.5,8.296728,1.098612,,0 +13,6,0,0,1,628531,1,4009.729,56.72553,0,4,1,98.60347,37.00804,0,0,0,135.6115,0,0,0,20,0,3,64.9,3.4,1,54.8,450,452.88,0,0,1.098612,6.115627,1,4.564348,6.160541,1,0,0,54.8,8.296728,1.098612,4.909794,1 +13,6,0,0,2,628531,1,4009.729,57.72553,0,4,1,0,0,0,0,0,0,0,0,0,0,0,3,64.9,3.4,1,54.8,450,452.88,0,0,1.098612,6.115627,1,4.564348,6.160541,1,0,0,54.8,8.296728,1.098612,,0 +13,6,0,0,3,628531,1,4009.729,58.72553,0,4,1,6.920415,0,0,0,0,6.920415,0,0,0,2,0,3,64.9,3.4,1,54.8,450,452.88,0,0,1.098612,6.115627,1,4.564348,6.160541,1,0,0,54.8,8.296728,1.098612,1.934476,1 +13,6,0,0,1,628533,.5112414,4556.067,26.09446,0,10.62774,1,48.80101,0,0,0,661.3378,710.1389,1,0,0,1,0,3,62.8,17.2,1,47.7,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,47.7,8.424435,1.098612,6.565461,1 +13,6,0,0,2,628533,.5112414,4556.067,27.09446,0,10.62774,1,0,5.111447,0,0,0,5.111447,0,0,0,0,0,4,62.8,17.2,1,47.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,47.7,8.424435,1.386294,1.631482,1 +13,6,0,0,3,628533,.5112414,4556.067,28.09446,0,10.62774,1,0,2.315609,0,0,0,2.315609,0,0,0,0,0,4,62.8,17.2,1,47.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,47.7,8.424435,1.386294,.8396727,1 +11,6,0,1,1,628545,0,10488.56,5.100616,0,12,1,126.7813,5.149877,0,0,0,131.9312,0,0,0,4,9,5,73.3,10.57626,0,18.5,0,0,1,0,1.609438,0,0,0,0,1,0,0,18.5,9.258136,1.609438,4.88228,1 +11,6,0,1,2,628545,0,10488.56,6.100616,0,12,1,328.6235,14.17502,0,0,0,342.7986,0,0,0,8,24,5,73.3,10.57626,0,18.5,0,0,1,0,1.609438,0,0,0,0,1,0,0,18.5,9.258136,1.609438,5.837143,1 +11,6,0,1,3,628545,0,10488.56,7.100616,0,12,1,198.416,4.272614,0,0,0,202.6886,0,0,0,1,20,5,73.3,10.57626,0,18.5,0,0,1,0,1.609438,0,0,0,0,1,0,0,18.5,9.258136,1.609438,5.311671,1 +11,6,0,1,4,628545,0,10488.56,8.100616,0,12,1,94.14854,0,0,0,0,94.14854,0,0,0,2,6,5,73.3,10.57626,0,18.5,0,0,1,0,1.609438,0,0,0,0,1,0,0,18.5,9.258136,1.609438,4.544874,1 +11,6,0,1,5,628545,0,10488.56,9.100616,0,12,1,39.58051,10.49391,0,0,0,50.07442,0,0,0,5,0,5,73.3,10.57626,0,18.5,0,0,1,0,1.609438,0,0,0,0,1,0,0,18.5,9.258136,1.609438,3.91351,1 +11,6,0,1,1,628546,0,10488.56,1.486653,0,12,1,7.371007,0,0,0,0,7.371007,0,0,0,1,0,5,77.40034,10.57626,0,81.5,0,0,1,0,1.609438,0,0,0,0,0,0,0,81.5,9.258136,1.609438,1.997554,1 +11,6,0,1,2,628546,0,10488.56,2.486653,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,81.5,0,0,1,0,1.609438,0,0,0,0,0,0,0,81.5,9.258136,1.609438,,0 +11,6,0,1,3,628546,0,10488.56,3.486653,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,81.5,0,0,1,0,1.609438,0,0,0,0,0,0,0,81.5,9.258136,1.609438,,0 +11,6,0,1,4,628546,0,10488.56,4.486653,0,12,1,51.38785,0,0,0,0,51.38785,0,0,0,3,0,5,77.40034,10.57626,0,81.5,0,0,1,0,1.609438,0,0,0,0,0,0,0,81.5,9.258136,1.609438,3.939402,1 +11,6,0,1,5,628546,0,10488.56,5.486653,0,12,1,46.34641,0,0,0,0,46.34641,0,0,0,2,0,5,77.40034,10.57626,0,81.5,0,0,1,0,1.609438,0,0,0,0,0,0,0,81.5,9.258136,1.609438,3.836144,1 +11,6,0,1,1,628547,0,10488.56,29.25667,0,14,1,12.28501,0,0,0,0,12.28501,0,0,0,3,0,5,92.6,6.9,0,84.1,0,0,0,0,1.609438,0,0,0,0,1,0,0,84.1,9.258136,1.609438,2.50838,1 +11,6,0,1,2,628547,0,10488.56,30.25667,0,14,1,30.99362,7.976299,0,0,0,38.96992,0,0,0,1,0,5,92.6,6.9,0,84.1,0,0,0,0,1.609438,0,0,0,0,1,0,0,84.1,9.258136,1.609438,3.66279,1 +11,6,0,1,3,628547,0,10488.56,31.25667,0,14,1,34.59775,13.18466,0,0,0,47.78241,0,0,0,3,0,5,92.6,6.9,0,84.1,0,0,0,0,1.609438,0,0,0,0,1,0,0,84.1,9.258136,1.609438,3.866657,1 +11,6,0,1,4,628547,0,10488.56,32.25667,0,14,1,0,5.791448,0,0,0,5.791448,0,0,0,0,0,5,92.6,6.9,0,84.1,0,0,0,0,1.609438,0,0,0,0,1,0,0,84.1,9.258136,1.609438,1.756382,1 +11,6,0,1,5,628547,0,10488.56,33.25667,0,14,1,5.751015,0,0,0,0,5.751015,0,0,0,1,0,5,92.6,6.9,0,84.1,0,0,0,0,1.609438,0,0,0,0,1,0,0,84.1,9.258136,1.609438,1.749376,1 +11,6,0,1,1,628548,0,10488.56,26.93771,1,12,1,105.1597,28.83538,0,0,0,133.9951,0,0,0,8,0,5,59,13.8,1,46.6,0,0,0,0,1.609438,0,0,0,0,1,0,0,46.6,9.258136,1.609438,4.897803,1 +11,6,0,1,2,628548,0,10488.56,27.93771,1,12,1,71.5588,17.48405,37.37466,114.1522,0,126.4175,0,0,6,2,1,5,59,13.8,1,46.6,0,0,0,0,1.609438,0,0,0,0,1,0,0,46.6,9.258136,1.609438,4.83959,1 +11,6,0,1,3,628548,0,10488.56,28.93771,1,12,1,261.0463,10.49604,0,15.83993,148.3952,419.9375,1,0,1,6,23,5,59,13.8,1,46.6,0,0,0,0,1.609438,0,0,0,0,1,0,0,46.6,9.258136,1.609438,6.040106,1 +11,6,0,1,4,628548,0,10488.56,29.93771,1,12,1,186.0465,6.226557,28.50713,14.25356,180.1875,400.9677,1,0,1,5,15,5,59,13.8,1,46.6,0,0,0,0,1.609438,0,0,0,0,1,0,0,46.6,9.258136,1.609438,5.993881,1 +11,6,0,1,5,628548,0,10488.56,30.93771,1,12,1,115.3586,5.280785,0,0,0,120.6394,0,0,0,4,6,5,59,13.8,1,46.6,0,0,0,0,1.609438,0,0,0,0,1,0,0,46.6,9.258136,1.609438,4.792806,1 +11,6,0,1,1,628549,0,10488.56,7.00616,1,12,1,5.896806,0,0,0,0,5.896806,0,0,0,1,0,5,51.7,10.57626,0,55.6,0,0,1,1,1.609438,0,0,0,0,0,0,0,55.6,9.258136,1.609438,1.774411,1 +11,6,0,1,2,628549,0,10488.56,8.00616,1,12,1,13.67366,0,0,0,0,13.67366,0,0,0,1,0,5,51.7,10.57626,0,55.6,0,0,1,1,1.609438,0,0,0,0,0,0,0,55.6,9.258136,1.609438,2.615471,1 +11,6,0,1,3,628549,0,10488.56,9.00616,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,51.7,10.57626,0,55.6,0,0,1,1,1.609438,0,0,0,0,0,0,0,55.6,9.258136,1.609438,,0 +11,6,0,1,4,628549,0,10488.56,10.00616,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,51.7,10.57626,0,55.6,0,0,1,1,1.609438,0,0,0,0,0,0,0,55.6,9.258136,1.609438,,0 +11,6,0,1,5,628549,0,10488.56,11.00616,1,12,1,23.34235,0,0,0,0,23.34235,0,0,0,2,0,5,51.7,10.57626,0,55.6,0,0,1,1,1.609438,0,0,0,0,0,0,0,55.6,9.258136,1.609438,3.15027,1 +17,6,25,1,1,628551,0,6735.316,52.92539,1,12,1,200.6938,76.5114,0,0,0,277.2051,0,0,0,8,13,2,80.9,20.7,1,61.9,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,61.9,8.815269,.6931472,5.624758,1 +17,6,25,1,2,628551,0,6735.316,53.92539,1,12,1,379.9908,84.43323,0,0,1736.806,2201.23,1,0,0,12,33,2,80.9,20.7,1,61.9,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,61.9,8.815269,.6931472,7.696772,1 +17,6,25,1,3,628551,0,6735.316,54.92539,1,12,1,673.1174,169.7097,90.87084,0,471.6029,1405.301,1,0,0,21,22,2,80.9,20.7,1,61.9,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,61.9,8.815269,.6931472,7.248007,1 +17,6,25,1,4,628551,0,6735.316,55.92539,1,12,.8497268,589.932,297.7144,0,0,4651.303,5538.95,4,0,0,18,28,2,80.9,20.7,1,61.9,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,61.9,8.815269,.6931472,8.61956,1 +17,6,25,1,1,628552,0,6735.316,51.04175,0,7,1,95.14371,8.052527,0,0,0,103.1962,0,0,0,3,0,2,82.4,6.9,0,86.4,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,0,0,86.4,8.815269,.6931472,4.636632,1 +17,6,25,1,2,628552,0,6735.316,52.04175,0,7,1,175.3098,22.60211,0,0,0,197.9119,0,0,0,7,1,2,82.4,6.9,0,86.4,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,0,0,86.4,8.815269,.6931472,5.287822,1 +17,6,25,1,3,628552,0,6735.316,53.04175,0,7,1,246.1085,0,44.59402,0,0,290.7026,0,0,0,3,46,2,82.4,6.9,0,86.4,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,0,0,86.4,8.815269,.6931472,5.672301,1 +17,6,25,1,4,628552,0,6735.316,54.04175,0,7,1,303.5512,42.25538,20.77824,0,0,366.5848,0,0,0,15,7,2,82.4,6.9,0,86.4,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,0,0,86.4,8.815269,.6931472,5.90423,1 +17,6,25,1,5,628552,0,6735.316,55.04175,0,7,1,506.6895,25.45111,35.27616,0,0,567.4168,0,0,0,14,0,1,82.4,6.9,0,86.4,750,750,0,0,0,6.620073,0,3.258096,8.006368,0,0,0,86.4,8.815269,0,6.341094,1 +11,6,0,1,1,628564,0,15859.19,54.79808,0,16,1,18.6204,17.92636,0,0,0,36.54676,0,0,0,1,0,2,83,20.7,0,72.7,0,339.36,0,0,.6931472,5.827062,0,0,0,1,0,0,72.7,9.671568,.6931472,3.598593,1 +11,6,0,1,2,628564,0,15859.19,55.79808,0,16,1,45.93774,35.7631,0,0,0,81.70084,0,0,0,2,0,2,83,20.7,0,72.7,0,339.36,0,0,.6931472,5.827062,0,0,0,1,0,0,72.7,9.671568,.6931472,4.403064,1 +11,6,0,1,3,628564,0,15859.19,56.79808,0,16,1,15.91695,35.95502,37.24221,0,0,89.11419,0,0,0,1,1,2,83,20.7,0,72.7,0,339.36,0,0,.6931472,5.827062,0,0,0,1,0,0,72.7,9.671568,.6931472,4.489919,1 +11,6,0,1,1,628565,0,15859.19,52.79671,1,21,1,97.75709,49.36098,0,0,0,147.1181,0,0,0,4,0,2,87.2,20.7,0,61.4,0,339.36,0,0,.6931472,5.827062,0,0,0,1,0,0,61.4,9.671568,.6931472,4.991235,1 +11,6,0,1,2,628565,0,15859.19,53.79671,1,21,1,129.6507,34.40395,98.54214,0,1100,1362.597,1,0,0,6,0,2,87.2,20.7,0,61.4,0,339.36,0,0,.6931472,5.827062,0,0,0,1,0,0,61.4,9.671568,.6931472,7.217147,1 +11,6,0,1,3,628565,0,15859.19,54.79671,1,21,1,101.0381,41.77509,0,0,0,142.8132,0,0,0,7,0,2,87.2,20.7,0,61.4,0,339.36,0,0,.6931472,5.827062,0,0,0,1,0,0,61.4,9.671568,.6931472,4.961537,1 +19,6,25,1,1,628582,0,8778.802,26.2642,1,16,1,65.17139,25.60728,32.16251,0,0,122.9412,0,0,0,5,0,3,83.5,13.8,0,81.8,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,81.8,9.080209,1.098612,4.811706,1 +19,6,25,1,2,628582,0,8778.802,27.2642,1,16,1,39.86333,29.84055,0,0,0,69.70387,0,0,0,2,0,3,83.5,13.8,0,81.8,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,81.8,9.080209,1.098612,4.244256,1 +19,6,25,1,3,628582,0,8778.802,28.2642,1,16,1,27.68166,21.23875,0,0,0,48.92041,0,0,0,3,0,3,83.5,13.8,0,81.8,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,81.8,9.080209,1.098612,3.890195,1 +19,6,25,1,1,628583,0,8778.802,27.34018,0,16,1,28.35379,6.982649,34.27846,0,0,69.6149,0,0,0,4,0,3,90.4,6.9,0,88.6,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,88.6,9.080209,1.098612,4.242979,1 +19,6,25,1,2,628583,0,8778.802,28.34018,0,16,1,7.593014,0,0,0,0,7.593014,0,0,0,1,0,3,90.4,6.9,0,88.6,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,88.6,9.080209,1.098612,2.027229,1 +19,6,25,1,3,628583,0,8778.802,29.34018,0,16,1,6.920415,0,0,0,0,6.920415,0,0,0,1,0,3,90.4,6.9,0,88.6,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,88.6,9.080209,1.098612,1.934476,1 +11,6,0,1,1,628643,0,7922.171,26.15195,0,16,1,38.51037,10.68557,0,0,0,49.19594,0,0,0,5,0,3,51.6,6.9,0,36.4,0,0,0,0,1.098612,0,0,0,0,1,0,0,36.4,8.977547,1.098612,3.895811,1 +11,6,0,1,2,628643,0,7922.171,27.15195,0,16,1,15.18603,0,30.37206,0,0,45.55809,0,0,0,0,1,3,51.6,6.9,0,36.4,0,0,0,0,1.098612,0,0,0,0,1,0,0,36.4,8.977547,1.098612,3.818988,1 +11,6,0,1,3,628643,0,7922.171,28.15195,0,16,1,26.7474,3.768166,0,0,0,30.51557,0,0,0,2,0,4,51.6,6.9,0,36.4,0,0,0,0,1.386294,0,0,0,0,1,0,0,36.4,8.977547,1.386294,3.418237,1 +11,6,0,1,1,628644,0,7922.171,25.03217,1,15,1,118.9166,40.24968,28.77698,0,0,187.9433,0,0,0,4,0,3,75.5,17.2,0,83,0,0,0,0,1.098612,0,0,0,0,0,0,0,83,8.977547,1.098612,5.23614,1 +11,6,0,1,2,628644,0,7922.171,26.03217,1,15,1,38.1549,11.68565,0,0,1114.465,1164.305,2,0,0,3,0,3,75.5,17.2,0,83,0,0,0,0,1.098612,0,0,0,0,0,0,0,83,8.977547,1.098612,7.05988,1 +11,6,0,1,3,628644,0,7922.171,27.03217,1,15,1,76.98962,7.709342,34.25605,0,0,118.955,0,0,0,2,1,4,75.5,17.2,0,83,0,0,0,0,1.386294,0,0,0,0,0,0,0,83,8.977547,1.386294,4.778746,1 +11,6,0,1,1,628652,0,14948.8,54.42026,0,12,1,31.73932,68.57808,0,0,0,100.3174,0,0,0,4,0,2,66.5,10.3,0,52.3,0,261.76,0,0,.6931472,5.567428,0,0,0,1,0,0,52.3,9.612453,.6931472,4.608339,1 +11,6,0,1,2,628652,0,14948.8,55.42026,0,12,1,0,64.21792,0,0,0,64.21792,0,0,0,0,0,2,66.5,10.3,0,52.3,0,261.76,0,0,.6931472,5.567428,0,0,0,1,0,0,52.3,9.612453,.6931472,4.162282,1 +11,6,0,1,3,628652,0,14948.8,56.42026,0,12,1,25.25952,42.53633,0,0,0,67.79585,0,0,0,2,0,2,66.5,10.3,0,52.3,0,261.76,0,0,.6931472,5.567428,0,0,0,1,0,0,52.3,9.612453,.6931472,4.216501,1 +11,6,0,1,1,628654,0,14948.8,50.26968,1,12,1,56.70758,25.37452,35.12484,0,0,117.2069,0,0,0,8,0,2,53.2,20.7,0,54.5,0,261.76,0,0,.6931472,5.567428,0,0,0,1,0,0,54.5,9.612453,.6931472,4.763941,1 +11,6,0,1,2,628654,0,14948.8,51.26968,1,12,1,42.52088,61.98937,0,0,0,104.5103,0,0,0,8,0,2,53.2,20.7,0,54.5,0,261.76,0,0,.6931472,5.567428,0,0,0,1,0,0,54.5,9.612453,.6931472,4.649285,1 +11,6,0,1,3,628654,0,14948.8,52.26968,1,12,1,41.17647,106.0657,0,0,0,147.2422,0,0,0,7,0,2,53.2,20.7,0,54.5,0,261.76,0,0,.6931472,5.567428,0,0,0,1,0,0,54.5,9.612453,.6931472,4.992079,1 +13,6,0,1,1,628655,0,12001.02,46.84463,1,9,1,37.02145,62.34329,11.42196,0,671.4346,782.2213,1,0,0,2,0,2,62.8,37.9,1,45.5,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,1,0,45.5,9.392831,.6931472,6.662138,1 +13,6,0,1,2,628655,0,12001.02,47.84463,1,9,1,35.88969,139.0555,49.67133,0,0,224.6165,0,0,0,2,0,2,62.8,37.9,1,45.5,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,1,0,45.5,9.392831,.6931472,5.414395,1 +13,6,0,1,3,628655,0,12001.02,48.84463,1,9,1,100.1715,107.825,31.45798,0,927.6158,1167.07,2,0,0,5,0,2,62.8,37.9,1,45.5,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,1,0,45.5,9.392831,.6931472,7.062252,1 +13,6,0,1,1,628656,0,12001.02,53.24572,0,8,1,16.82793,28.27093,5.111485,0,284.3921,334.6024,1,0,0,1,0,2,89.4,24.1,1,43.2,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,43.2,9.392831,.6931472,5.812943,1 +13,6,0,1,2,628656,0,12001.02,54.24572,0,8,1,217.6048,26.51681,34.37854,0,1269.739,1548.24,2,0,0,9,0,2,89.4,24.1,1,43.2,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,43.2,9.392831,.6931472,7.344874,1 +13,6,0,1,3,628656,0,12001.02,55.24572,0,8,1,75.47169,41.73585,153.1492,0,0,270.3568,0,0,0,8,0,2,89.4,24.1,1,43.2,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,43.2,9.392831,.6931472,5.599742,1 +7,6,25,1,1,628674,0,3386.585,38.20671,1,12,1,217.5907,11.85911,0,0,0,229.4498,0,0,0,2,28,3,72.9,13.8,0,68.8,568.8,568.8,0,0,1.098612,6.343529,0,3.258096,7.729823,1,0,0,68.8,8.127872,1.098612,5.435684,1 +7,6,25,1,2,628674,0,3386.585,39.20671,1,12,1,165.0413,3.87847,13.12828,0,0,182.048,0,0,0,1,22,3,72.9,13.8,0,68.8,568.8,568.8,0,0,1.098612,6.343529,0,3.258096,7.729823,1,0,0,68.8,8.127872,1.098612,5.20427,1 +7,6,25,1,3,628674,0,3386.585,40.20671,1,12,1,194.5196,2.655616,0,0,0,197.1752,0,0,0,0,23,3,72.9,13.8,0,68.8,568.8,568.8,0,0,1.098612,6.343529,0,3.258096,7.729823,1,0,0,68.8,8.127872,1.098612,5.284093,1 +7,6,25,1,1,628675,0,3386.585,14.5024,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,100,10.57626,0,85.2,568.8,568.8,1,0,1.098612,6.343529,0,3.258096,7.729823,1,0,0,85.2,8.127872,1.098612,,0 +7,6,25,1,2,628675,0,3386.585,15.5024,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,100,10.57626,0,85.2,568.8,568.8,1,0,1.098612,6.343529,0,3.258096,7.729823,1,0,0,85.2,8.127872,1.098612,,0 +7,6,25,1,3,628675,0,3386.585,16.5024,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,100,10.57626,0,85.2,568.8,568.8,1,0,1.098612,6.343529,0,3.258096,7.729823,1,0,0,85.2,8.127872,1.098612,,0 +7,6,25,1,1,628676,0,3386.585,17.38809,1,12,1,25.8441,8.274281,0,0,0,34.11838,0,0,0,4,0,3,82.1,3.4,0,88.6,568.8,568.8,1,1,1.098612,6.343529,0,3.258096,7.729823,1,0,0,88.6,8.127872,1.098612,3.529836,1 +7,6,25,1,2,628676,0,3386.585,18.38809,1,12,1,146.2866,7.929482,0,0,0,154.216,0,0,0,2,17,3,82.1,3.4,0,88.6,568.8,568.8,0,0,1.098612,6.343529,0,3.258096,7.729823,1,0,0,88.6,8.127872,1.098612,5.038354,1 +7,6,25,1,3,628676,0,3386.585,19.38809,1,12,1,70.70365,14.44858,0,0,0,85.15223,0,0,0,4,5,3,82.1,3.4,0,88.6,568.8,568.8,0,0,1.098612,6.343529,0,3.258096,7.729823,1,0,0,88.6,8.127872,1.098612,4.44444,1 +11,6,0,1,1,628761,0,8062.468,54.42026,0,14,1,8.463818,0,29.62336,0,0,38.08718,0,0,0,0,1,2,94.7,6.9,0,81.8,0,192.48,0,0,.6931472,5.259992,0,0,0,0,0,0,81.8,8.995099,.6931472,3.639878,1 +11,6,0,1,2,628761,0,8062.468,55.42026,0,14,1,29.61276,11.959,0,0,0,41.57175,0,0,0,3,0,2,94.7,6.9,0,81.8,0,192.48,0,0,.6931472,5.259992,0,0,0,0,0,0,81.8,8.995099,.6931472,3.727421,1 +11,6,0,1,3,628761,0,8062.468,56.42026,0,14,1,3.460208,103.8062,0,0,0,107.2664,0,0,0,2,0,2,94.7,6.9,0,81.8,0,192.48,0,0,.6931472,5.259992,0,0,0,0,0,0,81.8,8.995099,.6931472,4.675316,1 +11,6,0,1,1,628762,0,8062.468,57.92471,1,13,1,13.9653,26.34363,31.73932,0,0,72.04824,0,0,0,1,1,2,90.4,10.3,0,80.7,0,192.48,0,0,.6931472,5.259992,0,0,0,1,0,0,80.7,8.995099,.6931472,4.277336,1 +11,6,0,1,2,628762,0,8062.468,58.92471,1,13,1,89.59757,60.83903,0,0,0,150.4366,0,0,0,8,0,2,90.4,10.3,0,80.7,0,192.48,0,0,.6931472,5.259992,0,0,0,1,0,0,80.7,8.995099,.6931472,5.013542,1 +11,6,0,1,3,628762,0,8062.468,59.92471,1,13,1,41.52249,183.564,0,0,1247.059,1472.145,1,0,0,5,0,2,90.4,10.3,0,80.7,0,192.48,0,0,.6931472,5.259992,0,0,0,1,0,0,80.7,8.995099,.6931472,7.294476,1 +11,6,0,0,1,628810,1,6735.316,18.9514,1,11,1,4.955401,0,0,0,0,4.955401,0,0,0,1,0,4,55.3,3.4,0,55.7,0,152.88,0,0,1.386294,5.029653,0,0,0,0,1,0,55.7,8.815269,1.386294,1.600478,1 +11,6,0,0,2,628810,1,6735.316,19.9514,1,11,1,0,0,0,0,0,0,0,0,0,0,0,4,55.3,3.4,0,55.7,0,152.88,0,0,1.386294,5.029653,0,0,0,0,1,0,55.7,8.815269,1.386294,,0 +11,6,0,0,3,628810,1,6735.316,20.9514,1,11,1,7.151872,0,0,0,0,7.151872,0,0,0,1,0,4,55.3,3.4,0,55.7,0,152.88,0,0,1.386294,5.029653,0,0,0,0,1,0,55.7,8.815269,1.386294,1.967374,1 +11,6,0,0,4,628810,1,6735.316,21.9514,1,11,1,21.53381,1.64337,0,0,0,23.17718,1,1,0,2,0,3,55.3,3.4,0,55.7,0,152.88,0,0,1.098612,5.029653,0,0,0,0,1,0,55.7,8.815269,1.098612,3.143168,1 +11,6,0,0,5,628810,1,6735.316,22.9514,1,11,1,0,0,0,0,0,0,0,0,0,0,0,4,55.3,3.4,0,55.7,0,152.88,0,0,1.386294,5.029653,0,0,0,0,1,0,55.7,8.815269,1.386294,,0 +11,6,0,0,1,628811,1,6735.316,56.27926,1,7,1,4.955401,4.122894,0,0,0,9.078296,0,0,0,1,0,4,51.1,10.3,1,43.2,0,152.88,0,0,1.386294,5.029653,0,0,0,0,0,1,43.2,8.815269,1.386294,2.205886,1 +11,6,0,0,2,628811,1,6735.316,57.27926,1,7,1,211.5649,2.868288,0,0,459.385,673.8182,1,0,0,15,0,4,51.1,10.3,1,43.2,0,152.88,0,0,1.386294,5.029653,0,0,0,0,0,1,43.2,8.815269,1.386294,6.51296,1 +11,6,0,0,3,628811,1,6735.316,58.27926,1,7,1,120.7404,21.45562,0,0,0,142.196,0,0,0,2,0,4,51.1,10.3,1,43.2,0,152.88,0,0,1.386294,5.029653,0,0,0,0,0,1,43.2,8.815269,1.386294,4.957207,1 +11,6,0,0,4,628811,1,6735.316,59.27926,1,7,1,8.311296,0,0,0,0,8.311296,0,0,0,1,0,3,51.1,10.3,1,43.2,0,152.88,0,0,1.098612,5.029653,0,0,0,0,0,1,43.2,8.815269,1.098612,2.117615,1 +11,6,0,0,5,628811,1,6735.316,60.27926,1,7,1,13.72213,18.97084,0,0,0,32.69297,0,0,0,2,0,4,51.1,10.3,1,43.2,0,152.88,0,0,1.386294,5.029653,0,0,0,0,0,1,43.2,8.815269,1.386294,3.48716,1 +11,6,0,0,1,628812,1,6735.316,58.60369,0,1.5,1,0,0,0,0,0,0,0,0,0,0,0,4,58.5,13.8,0,51.2,0,152.88,0,0,1.386294,5.029653,0,0,0,0,0,1,51.2,8.815269,1.386294,,0 +11,6,0,0,2,628812,1,6735.316,59.60369,0,1.5,1,6.883892,0,0,0,0,6.883892,0,0,0,1,0,4,58.5,13.8,0,51.2,0,152.88,0,0,1.386294,5.029653,0,0,0,0,0,1,51.2,8.815269,1.386294,1.929184,1 +11,6,0,0,3,628812,1,6735.316,60.60369,0,1.5,1,0,0,0,0,0,0,0,0,0,0,0,4,58.5,13.8,0,51.2,0,152.88,0,0,1.386294,5.029653,0,0,0,0,0,1,51.2,8.815269,1.386294,,0 +11,6,0,0,4,628812,1,6735.316,61.60369,0,1.5,1,0,0,0,0,0,0,0,0,0,0,0,3,58.5,13.8,0,51.2,0,152.88,0,0,1.098612,5.029653,0,0,0,0,0,1,51.2,8.815269,1.098612,,0 +11,6,0,0,5,628812,1,6735.316,62.60369,0,1.5,1,0,0,0,0,0,0,0,0,0,0,0,4,58.5,13.8,0,51.2,0,152.88,0,0,1.386294,5.029653,0,0,0,0,0,1,51.2,8.815269,1.386294,,0 +13,6,0,0,1,628817,0,9209.934,30.91855,1,13,1,84.13967,30.0589,0,0,0,114.1986,0,0,0,6,0,3,50,24.1,1,36.4,450,869.36,0,0,1.098612,6.767757,1,4.564348,6.160541,0,1,0,36.4,9.128146,1.098612,4.737939,1 +13,6,0,0,2,628817,0,9209.934,31.91855,1,13,1,133.3585,83.55119,0,0,280.5062,497.416,1,0,0,22,0,3,50,24.1,1,36.4,450,869.36,0,0,1.098612,6.767757,1,4.564348,6.160541,0,1,0,36.4,9.128146,1.098612,6.209426,1 +13,6,0,0,3,628817,0,9209.934,32.91855,1,13,1,363.4648,89.5506,0,0,1151.76,1604.775,1,0,0,13,0,3,50,24.1,1,36.4,450,869.36,0,0,1.098612,6.767757,1,4.564348,6.160541,0,1,0,36.4,9.128146,1.098612,7.380739,1 +13,6,0,0,1,628818,0,9209.934,33.54141,0,14,1,31.55238,11.0854,35.33866,0,0,77.97644,0,0,0,2,0,3,84.6,0,0,77.3,450,869.36,0,0,1.098612,6.767757,1,4.564348,6.160541,0,0,0,77.3,9.128146,1.098612,4.356407,1 +13,6,0,0,2,628818,0,9209.934,34.54141,0,14,1,0,0,0,0,0,0,0,0,0,0,0,3,84.6,0,0,77.3,450,869.36,0,0,1.098612,6.767757,1,4.564348,6.160541,0,0,0,77.3,9.128146,1.098612,,0 +13,6,0,0,3,628818,0,9209.934,35.54141,0,14,1,0,4.06518,0,0,0,4.06518,0,0,0,0,0,3,84.6,0,0,77.3,450,869.36,0,0,1.098612,6.767757,1,4.564348,6.160541,0,0,0,77.3,9.128146,1.098612,1.402458,1 +13,6,0,0,1,628819,0,9209.934,11.98357,0,13,1,15.14514,0,0,0,0,15.14514,0,0,0,2,0,3,86.7,10.57626,0,88.9,450,869.36,1,0,1.098612,6.767757,1,4.564348,6.160541,0,0,0,88.9,9.128146,1.098612,2.71768,1 +13,6,0,0,2,628819,0,9209.934,12.98357,0,13,1,44.95655,0,0,0,0,44.95655,0,0,0,4,0,3,86.7,10.57626,0,88.9,450,869.36,1,0,1.098612,6.767757,1,4.564348,6.160541,0,0,0,88.9,9.128146,1.098612,3.805696,1 +13,6,0,0,3,628819,0,9209.934,13.98357,0,13,1,5.145798,2.288165,0,0,0,7.433962,0,0,0,1,0,3,86.7,10.57626,0,88.9,450,869.36,1,0,1.098612,6.767757,1,4.564348,6.160541,0,0,0,88.9,9.128146,1.098612,2.006059,1 +11,6,0,1,1,628833,0,10121.86,41.06776,1,12,1,71.09606,0,0,0,0,71.09606,0,0,0,0,14,3,81.9,20.7,1,83,0,192.48,0,0,1.098612,5.259992,0,0,0,1,0,0,83,9.222552,1.098612,4.264032,1 +11,6,0,1,2,628833,0,10121.86,42.06776,1,12,1,141.6097,6.613515,24.29765,0,0,172.5209,0,0,0,3,17,3,81.9,20.7,1,83,0,192.48,0,0,1.098612,5.259992,0,0,0,1,0,0,83,9.222552,1.098612,5.150518,1 +11,6,0,1,3,628833,0,10121.86,43.06776,1,12,1,31.14187,4.086505,0,0,0,35.22837,0,0,0,0,4,3,81.9,20.7,1,83,0,192.48,0,0,1.098612,5.259992,0,0,0,1,0,0,83,9.222552,1.098612,3.561852,1 +11,6,0,1,1,628834,0,10121.86,14.14647,1,12,1,102.8354,0,26.66102,0,0,129.4964,0,0,0,1,10,3,71.3,6.9,0,63.6,0,192.48,1,1,1.098612,5.259992,0,0,0,0,0,0,63.6,9.222552,1.098612,4.863653,1 +11,6,0,1,2,628834,0,10121.86,15.14647,1,12,1,25.05695,0,0,0,0,25.05695,0,0,0,0,5,3,71.3,6.9,0,63.6,0,192.48,1,1,1.098612,5.259992,0,0,0,0,0,0,63.6,9.222552,1.098612,3.221151,1 +11,6,0,1,3,628834,0,10121.86,16.14647,1,12,1,13.84083,0,13.84083,0,0,27.68166,0,0,0,1,0,3,71.3,6.9,0,63.6,0,192.48,1,1,1.098612,5.259992,0,0,0,0,0,0,63.6,9.222552,1.098612,3.32077,1 +11,6,0,1,1,628835,0,10121.86,46.07803,0,6,1,126.9573,36.2463,36.39441,0,0,199.598,0,0,0,6,15,3,60.6,20.7,1,42,0,192.48,0,0,1.098612,5.259992,0,0,0,1,0,0,42,9.222552,1.098612,5.296305,1 +11,6,0,1,2,628835,0,10121.86,47.07803,0,6,1,107.4412,30.36826,0,0,0,137.8094,0,0,0,4,2,3,60.6,20.7,1,42,0,192.48,0,0,1.098612,5.259992,0,0,0,1,0,0,42,9.222552,1.098612,4.925872,1 +11,6,0,1,3,628835,0,10121.86,48.07803,0,6,1,243.5986,41.0692,55.23529,0,0,339.9031,0,0,0,3,15,3,60.6,20.7,1,42,0,192.48,0,0,1.098612,5.259992,0,0,0,1,0,0,42,9.222552,1.098612,5.82866,1 +11,6,0,1,1,628836,0,3125.96,22.10267,1,12,1,19.88997,0,27.50741,0,0,47.39738,0,0,0,2,0,1,92,6.9,0,81.8,0,0,0,0,0,0,0,0,0,0,0,0,81.8,8.047816,0,3.858567,1 +11,6,0,1,2,628836,0,3125.96,23.10267,1,12,1,10.63022,3.18527,0,0,0,13.81549,0,0,0,2,0,1,92,6.9,0,81.8,0,0,0,0,0,0,0,0,0,0,0,0,81.8,8.047816,0,2.62579,1 +11,6,0,1,3,628836,0,3125.96,24.10267,1,12,1,31.48789,5.290658,0,0,0,36.77855,0,0,0,3,0,1,92,6.9,0,81.8,0,0,0,0,0,0,0,0,0,0,0,0,81.8,8.047816,0,3.604915,1 +17,6,25,0,1,628837,0,11835.64,20.30664,1,12,1,44.59402,23.41186,36.18006,0,0,104.186,0,0,0,3,0,2,77.40034,10.57626,.1442925,,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,70.68995,9.378955,.6931472,4.646177,1 +17,6,25,0,2,628837,0,11835.64,21.30664,1,12,1,65.73479,27.01927,0,0,0,92.75406,0,0,0,8,0,2,77.40034,10.57626,.1442925,,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,70.68995,9.378955,.6931472,4.529952,1 +17,6,25,0,3,628837,0,11835.64,22.30664,1,12,1,274.4425,46.76158,0,0,0,321.2041,0,0,0,2,23,2,77.40034,10.57626,.1442925,,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,70.68995,9.378955,.6931472,5.772077,1 +11,6,0,1,1,628848,0,15649.26,13.49487,1,12,1,5.835765,0,0,0,0,5.835765,0,0,0,1,0,3,88.3,10.57626,0,100,0,192.48,1,1,1.098612,5.259992,0,0,0,1,0,0,100,9.658242,1.098612,1.764005,1 +11,6,0,1,2,628848,0,15649.26,14.49487,1,12,1,13.12828,0,0,0,0,13.12828,0,0,0,2,0,3,88.3,10.57626,0,100,0,192.48,1,1,1.098612,5.259992,0,0,0,1,0,0,100,9.658242,1.098612,2.574769,1 +11,6,0,1,3,628848,0,15649.26,15.49487,1,12,1,21.31258,2.537212,0,0,0,23.8498,0,0,0,3,0,3,88.3,10.57626,0,100,0,192.48,1,1,1.098612,5.259992,0,0,0,1,0,0,100,9.658242,1.098612,3.171776,1 +11,6,0,1,1,628850,0,15649.26,17.34976,0,12,1,5.002084,0,0,0,0,5.002084,0,0,0,1,0,3,80.9,3.4,0,62.5,0,192.48,1,0,1.098612,5.259992,0,0,0,1,0,0,62.5,9.658242,1.098612,1.609855,1 +11,6,0,1,2,628850,0,15649.26,18.34976,0,12,1,6.751688,0,0,0,0,6.751688,0,0,0,1,0,3,80.9,3.4,0,62.5,0,192.48,0,0,1.098612,5.259992,0,0,0,1,0,0,62.5,9.658242,1.098612,1.909793,1 +11,6,0,1,3,628850,0,15649.26,19.34976,0,12,1,6.08931,10.57172,0,0,0,16.66103,0,0,0,1,0,3,80.9,3.4,0,62.5,0,192.48,0,0,1.098612,5.259992,0,0,0,1,0,0,62.5,9.658242,1.098612,2.813072,1 +11,6,0,1,1,628853,0,15649.26,44.01917,1,12,1,12.08837,0,0,0,0,12.08837,0,0,0,1,0,3,71.8,3.4,0,90.9,0,192.48,0,0,1.098612,5.259992,0,0,0,1,0,0,90.9,9.658242,1.098612,2.492244,1 +11,6,0,1,2,628853,0,15649.26,45.01917,1,12,1,57.38935,34.70367,0,0,2930.983,3023.076,3,0,0,4,0,3,71.8,3.4,0,90.9,0,192.48,0,0,1.098612,5.259992,0,0,0,1,0,0,90.9,9.658242,1.098612,8.01403,1 +11,6,0,1,3,628853,0,15649.26,46.01917,1,12,1,19.28281,27.0636,0,0,0,46.34641,0,0,0,2,0,3,71.8,3.4,0,90.9,0,192.48,0,0,1.098612,5.259992,0,0,0,1,0,0,90.9,9.658242,1.098612,3.836144,1 +13,6,0,0,1,628854,1,8773.682,28.44901,1,13,1,109.1832,43.90182,32.16251,0,0,185.2476,0,0,0,4,4,2,69.1,10.3,0,54.5,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,54.5,9.079626,.6931472,5.221693,1 +13,6,0,0,2,628854,1,8773.682,29.44901,1,13,1,5.694761,2.38041,0,0,0,8.075171,0,0,0,1,0,2,69.1,10.3,0,54.5,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,54.5,9.079626,.6931472,2.088794,1 +13,6,0,0,3,628854,1,8773.682,30.44901,1,13,1,109.3426,9,28.5917,0,1488.159,1635.093,2,0,0,6,0,2,69.1,10.3,0,54.5,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,54.5,9.079626,.6931472,7.399455,1 +13,6,0,0,1,628855,1,8773.682,31.57016,0,17,1,2.539145,0,0,0,0,2.539145,0,0,0,0,0,2,79.8,0,0,77.3,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,77.3,9.079626,.6931472,.9318275,1 +13,6,0,0,2,628855,1,8773.682,32.57016,0,17,1,0,2.961276,0,0,0,2.961276,0,0,0,0,0,2,79.8,0,0,77.3,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,77.3,9.079626,.6931472,1.08562,1 +13,6,0,0,3,628855,1,8773.682,33.57016,0,17,1,37.71626,7.470588,28.5917,0,0,73.77855,0,0,0,1,0,2,79.8,0,0,77.3,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,77.3,9.079626,.6931472,4.301068,1 +17,6,25,1,1,628911,1,4195.601,8.22998,1,12,1,4.955401,0,0,0,0,4.955401,0,0,0,0,1,3,56.7,10.57626,0,70.4,182,182,1,1,1.098612,5.204007,0,3.258096,6.590301,0,0,0,70.4,8.342031,1.098612,1.600478,1 +17,6,25,1,2,628911,1,4195.601,9.22998,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,56.7,10.57626,0,70.4,182,182,1,1,1.098612,5.204007,0,3.258096,6.590301,0,0,0,70.4,8.342031,1.098612,,0 +17,6,25,1,3,628911,1,4195.601,10.22998,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,56.7,10.57626,0,70.4,182,182,1,1,1.098612,5.204007,0,3.258096,6.590301,0,0,0,70.4,8.342031,1.098612,,0 +17,6,25,1,4,628911,1,4195.601,11.22998,1,12,1,12.08916,2.002267,0,0,0,14.09142,0,0,0,0,0,3,56.7,10.57626,0,70.4,182,182,1,1,1.098612,5.204007,0,3.258096,6.590301,0,0,0,70.4,8.342031,1.098612,2.645566,1 +17,6,25,1,5,628911,1,4195.601,12.22998,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,56.7,10.57626,0,70.4,182,182,1,1,1.098612,5.204007,0,3.258096,6.590301,0,0,0,70.4,8.342031,1.098612,,0 +17,6,25,1,1,628912,1,4195.601,25.41821,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,58.5,10.3,0,50,182,182,0,0,1.098612,5.204007,0,3.258096,6.590301,0,0,0,50,8.342031,1.098612,,0 +17,6,25,1,2,628912,1,4195.601,26.41821,1,12,1,9.178522,1.835704,33.50161,0,0,44.51583,0,0,0,0,1,3,58.5,10.3,0,50,182,182,0,0,1.098612,5.204007,0,3.258096,6.590301,0,0,0,50,8.342031,1.098612,3.795845,1 +17,6,25,1,3,628912,1,4195.601,27.41821,1,12,1,10.09676,0,0,0,0,10.09676,0,0,0,0,0,3,58.5,10.3,0,50,182,182,0,0,1.098612,5.204007,0,3.258096,6.590301,0,0,0,50,8.342031,1.098612,2.312215,1 +17,6,25,1,4,628912,1,4195.601,28.41821,1,12,1,5.289006,6.135247,0,0,0,11.42425,0,0,0,1,0,3,58.5,10.3,0,50,182,182,0,0,1.098612,5.204007,0,3.258096,6.590301,0,0,0,50,8.342031,1.098612,2.435739,1 +17,6,25,1,5,628912,1,4195.601,29.41821,1,12,1,20.24014,0,29.15952,0,0,49.39966,0,0,0,2,1,3,58.5,10.3,0,50,182,182,0,0,1.098612,5.204007,0,3.258096,6.590301,0,0,0,50,8.342031,1.098612,3.899944,1 +17,6,25,1,1,628913,1,4195.601,5.801506,1,12,1,21.80377,4.088206,0,0,0,25.89197,0,0,0,2,1,3,68.3,10.57626,0,81.5,182,182,1,1,1.098612,5.204007,0,3.258096,6.590301,0,0,0,81.5,8.342031,1.098612,3.253933,1 +17,6,25,1,2,628913,1,4195.601,6.801506,1,12,1,21.56953,7.154658,0,0,0,28.72419,0,0,0,2,0,3,68.3,10.57626,0,81.5,182,182,1,1,1.098612,5.204007,0,3.258096,6.590301,0,0,0,81.5,8.342031,1.098612,3.357739,1 +17,6,25,1,3,628913,1,4195.601,7.801506,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,68.3,10.57626,0,81.5,182,182,1,1,1.098612,5.204007,0,3.258096,6.590301,0,0,0,81.5,8.342031,1.098612,,0 +17,6,25,1,4,628913,1,4195.601,8.801506,1,12,1,35.88969,14.03098,0,0,0,49.92067,0,0,0,5,0,3,68.3,10.57626,0,81.5,182,182,1,1,1.098612,5.204007,0,3.258096,6.590301,0,0,0,81.5,8.342031,1.098612,3.910435,1 +17,6,25,1,5,628913,1,4195.601,9.801506,1,12,1,64.83705,0,0,0,0,64.83705,0,0,0,3,0,3,68.3,10.57626,0,81.5,182,182,1,1,1.098612,5.204007,0,3.258096,6.590301,0,0,0,81.5,8.342031,1.098612,4.171877,1 +13,6,0,0,1,628945,0,6907.322,8.550308,1,10,1,30.89293,10.15658,0,0,332.2048,373.2543,1,0,0,5,0,4,81.7,10.57626,.1442925,77.8,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,77.8,8.840482,1.386294,5.92226,1 +13,6,0,0,2,628945,0,6907.322,9.550308,1,10,1,20.50114,1.461655,0,0,0,21.96279,0,0,0,4,0,4,81.7,10.57626,.1442925,77.8,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,77.8,8.840482,1.386294,3.08935,1 +13,6,0,0,3,628945,0,6907.322,10.55031,1,10,1,24.56747,3.460208,0,0,345.3287,373.3564,1,0,0,3,0,4,81.7,10.57626,.1442925,77.8,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,77.8,8.840482,1.386294,5.922534,1 +13,6,0,0,1,628946,0,6907.322,27.30185,1,10,1,121.879,13.12738,22.85231,0,0,157.8587,0,0,0,3,1,4,70.2,20.7,0,58,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,58,8.840482,1.386294,5.0617,1 +13,6,0,0,2,628946,0,6907.322,28.30185,1,10,1,16.32498,4.688686,0,0,0,21.01367,0,0,0,1,0,4,70.2,20.7,0,58,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,58,8.840482,1.386294,3.045173,1 +13,6,0,0,3,628946,0,6907.322,29.30185,1,10,1,6.920415,0,0,0,0,6.920415,0,0,0,1,0,4,70.2,20.7,0,58,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,58,8.840482,1.386294,1.934476,1 +13,6,0,0,1,628947,0,6907.322,29.17454,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,88.8,6.9,0,81.8,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,81.8,8.840482,1.386294,,0 +13,6,0,0,2,628947,0,6907.322,30.17454,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,88.8,6.9,0,81.8,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,81.8,8.840482,1.386294,,0 +13,6,0,0,3,628947,0,6907.322,31.17454,0,12,1,228.7197,0,28.3737,0,1122.958,1380.052,2,0,0,4,0,4,88.8,6.9,0,81.8,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,81.8,8.840482,1.386294,7.229877,1 +13,6,0,1,1,629079,1,1756.272,6.16564,1,9,1,40.20313,4.316547,0,0,0,44.51968,0,0,0,2,0,4,70,10.57626,.1442925,74.1,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,74.1,7.471518,1.386294,3.795931,1 +13,6,0,1,2,629079,1,1756.272,7.16564,1,9,1,35.30752,4.350797,0,0,0,39.65831,0,0,0,4,0,4,70,10.57626,.1442925,74.1,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,74.1,7.471518,1.386294,3.680301,1 +13,6,0,1,3,629079,1,1756.272,8.16564,1,9,1,0,0,0,0,0,0,0,0,0,0,0,4,70,10.57626,.1442925,74.1,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,74.1,7.471518,1.386294,,0 +13,6,0,1,1,629080,1,1756.272,7.60575,0,9,1,0,0,0,0,0,0,0,0,0,0,0,4,80,10.57626,0,37,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,37,7.471518,1.386294,,0 +13,6,0,1,2,629080,1,1756.272,8.605749,0,9,1,0,0,0,0,0,0,0,0,0,0,0,4,80,10.57626,0,37,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,37,7.471518,1.386294,,0 +13,6,0,1,3,629080,1,1756.272,9.605749,0,9,1,0,0,0,0,0,0,0,0,0,0,0,4,80,10.57626,0,37,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,37,7.471518,1.386294,,0 +13,6,0,1,1,629081,1,1756.272,42.70226,1,9,1,36.8176,3.23741,35.97122,0,0,76.02624,0,0,0,2,1,4,70.7,37.9,1,47.5,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,47.5,7.471518,1.386294,4.331079,1 +13,6,0,1,2,629081,1,1756.272,43.70226,1,9,1,17.08428,1.526196,0,0,0,18.61048,0,0,0,4,0,4,70.7,37.9,1,47.5,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,47.5,7.471518,1.386294,2.923725,1 +13,6,0,1,3,629081,1,1756.272,44.70226,1,9,1,37.02422,0,0,0,0,37.02422,0,0,0,0,0,4,70.7,37.9,1,47.5,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,47.5,7.471518,1.386294,3.611572,1 +13,6,0,1,1,629096,0,7438.3,32.65709,0,12,1,239.526,6.982649,0,0,0,246.5087,0,0,0,2,12,6,70.7,13.8,0,68.2,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,68.2,8.914532,1.791759,5.507397,1 +13,6,0,1,2,629096,0,7438.3,33.65709,0,12,1,0,1.898254,0,0,0,1.898254,0,0,0,0,0,6,70.7,13.8,0,68.2,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,68.2,8.914532,1.791759,.6409343,1 +13,6,0,1,3,629096,0,7438.3,34.65709,0,12,1,0,1.051903,0,0,0,1.051903,0,0,0,0,0,6,70.7,13.8,0,68.2,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,68.2,8.914532,1.791759,.050601,1 +13,6,0,1,1,629097,0,7438.3,33.31964,1,9,1,26.66102,34.89632,0,0,426.9996,488.5569,1,0,0,1,0,6,58,13.8,0,68.2,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,68.2,8.914532,1.791759,6.191456,1 +13,6,0,1,2,629097,0,7438.3,34.31964,1,9,1,11.38952,22.11465,0,0,0,33.50418,0,0,0,2,0,6,58,13.8,0,68.2,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,68.2,8.914532,1.791759,3.51167,1 +13,6,0,1,3,629097,0,7438.3,35.31964,1,9,1,60.55363,9.231833,0,0,484.7751,554.5605,1,0,0,2,0,6,58,13.8,0,68.2,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,68.2,8.914532,1.791759,6.318176,1 +13,6,0,1,1,629098,0,7438.3,12.98289,1,9,1,43.16547,0,0,0,0,43.16547,0,0,0,2,0,6,85,10.57626,0,88.9,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,88.9,8.914532,1.791759,3.765041,1 +13,6,0,1,2,629098,0,7438.3,13.98289,1,9,1,0,2.84738,0,0,0,2.84738,0,0,0,0,0,6,85,10.57626,0,88.9,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,88.9,8.914532,1.791759,1.046399,1 +13,6,0,1,3,629098,0,7438.3,14.98289,1,9,1,5.882353,0,0,0,0,5.882353,0,0,0,1,0,6,85,10.57626,0,88.9,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,88.9,8.914532,1.791759,1.771957,1 +13,6,0,1,1,629099,0,7438.3,14.10541,1,9,1,12.69573,2.221752,0,0,0,14.91748,0,0,0,1,0,6,83.3,10.57626,0,96.3,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,96.3,8.914532,1.791759,2.702533,1 +13,6,0,1,2,629099,0,7438.3,15.10541,1,9,1,9.870919,13.85725,0,0,0,23.72817,0,0,0,2,0,6,83.3,10.57626,0,96.3,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,96.3,8.914532,1.791759,3.166663,1 +13,6,0,1,3,629099,0,7438.3,16.10541,1,9,1,24.22145,1.903114,0,0,420.0692,446.1938,1,0,0,2,0,6,83.3,10.57626,0,96.3,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,96.3,8.914532,1.791759,6.100753,1 +13,6,0,1,1,629100,0,7438.3,8.188911,1,9,1,11.84934,13.54211,0,0,0,25.39145,0,0,0,1,0,6,85,10.57626,0,88.9,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,88.9,8.914532,1.791759,3.234412,1 +13,6,0,1,2,629100,0,7438.3,9.188911,1,9,1,0,2.84738,0,0,0,2.84738,0,0,0,0,0,6,85,10.57626,0,88.9,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,88.9,8.914532,1.791759,1.046399,1 +13,6,0,1,3,629100,0,7438.3,10.18891,1,9,1,0,0,0,0,0,0,0,0,0,0,0,6,85,10.57626,0,88.9,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,88.9,8.914532,1.791759,,0 +16,6,95,1,1,629125,1,2132.104,36.24093,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,84.6,6.9,0,65.9,356.7,0,0,0,0,0,0,4.564348,5.928188,1,0,0,65.9,7.665334,0,,0 +16,6,95,1,2,629125,1,2132.104,37.24093,1,12,1,2.671756,2.328244,0,0,1621.374,1626.374,2,1,0,0,0,1,84.6,6.9,0,65.9,356.7,0,0,0,0,0,0,4.564348,5.928188,1,0,0,65.9,7.665334,0,7.394108,1 +16,6,95,1,3,629125,1,2132.104,38.24093,1,12,1,0,0,0,0,1233.449,1233.449,1,0,0,0,0,1,84.6,6.9,0,65.9,356.7,0,0,0,0,0,0,4.564348,5.928188,1,0,0,65.9,7.665334,0,7.11757,1 +15,6,95,1,1,629142,1,4487.39,24.23545,1,9,1,0,0,0,0,0,0,0,0,0,0,0,7,77.1,3.4,0,77.3,820,820,0,0,1.94591,6.709304,0,4.564348,6.760598,1,0,0,77.3,8.409249,1.94591,,0 +15,6,95,1,2,629142,1,4487.39,25.23545,1,9,1,0,0,0,0,0,0,0,0,0,0,0,7,77.1,3.4,0,77.3,820,820,0,0,1.94591,6.709304,0,4.564348,6.760598,1,0,0,77.3,8.409249,1.94591,,0 +15,6,95,1,3,629142,1,4487.39,26.23545,1,9,1,0,0,0,0,0,0,0,0,0,0,0,7,77.1,3.4,0,77.3,820,820,0,0,1.94591,6.709304,0,4.564348,6.760598,1,0,0,77.3,8.409249,1.94591,,0 +15,6,95,1,1,629143,1,4487.39,3.876797,0,9,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,0,77.8,820,820,1,0,1.94591,6.709304,0,4.564348,6.760598,1,0,0,77.8,8.409249,1.94591,,0 +15,6,95,1,2,629143,1,4487.39,4.876797,0,9,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,0,77.8,820,820,1,0,1.94591,6.709304,0,4.564348,6.760598,1,0,0,77.8,8.409249,1.94591,,0 +15,6,95,1,3,629143,1,4487.39,5.876797,0,9,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,0,77.8,820,820,1,0,1.94591,6.709304,0,4.564348,6.760598,1,0,0,77.8,8.409249,1.94591,,0 +15,6,95,1,1,629144,1,4487.39,2.819986,0,9,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,0,77.8,820,820,1,0,1.94591,6.709304,0,4.564348,6.760598,1,0,0,77.8,8.409249,1.94591,,0 +15,6,95,1,2,629144,1,4487.39,3.819986,0,9,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,0,77.8,820,820,1,0,1.94591,6.709304,0,4.564348,6.760598,1,0,0,77.8,8.409249,1.94591,,0 +15,6,95,1,3,629144,1,4487.39,4.819986,0,9,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,0,77.8,820,820,1,0,1.94591,6.709304,0,4.564348,6.760598,1,0,0,77.8,8.409249,1.94591,,0 +15,6,95,1,1,629145,1,4487.39,26.00685,0,10,1,0,3.990025,0,0,0,3.990025,0,0,0,0,0,7,80.9,13.8,0,75,820,820,0,0,1.94591,6.709304,0,4.564348,6.760598,1,0,0,75,8.409249,1.94591,1.383798,1 +15,6,95,1,2,629145,1,4487.39,27.00685,0,10,1,0,0,0,0,0,0,0,0,0,0,0,7,80.9,13.8,0,75,820,820,0,0,1.94591,6.709304,0,4.564348,6.760598,1,0,0,75,8.409249,1.94591,,0 +15,6,95,1,3,629145,1,4487.39,28.00685,0,10,1,0,0,0,0,0,0,0,0,0,0,0,7,80.9,13.8,0,75,820,820,0,0,1.94591,6.709304,0,4.564348,6.760598,1,0,0,75,8.409249,1.94591,,0 +15,6,95,1,1,629146,1,4487.39,5.639973,0,9,1,0,0,0,0,0,0,0,0,0,0,0,7,89.1,10.57626,0,74.1,820,820,1,0,1.94591,6.709304,0,4.564348,6.760598,1,0,0,74.1,8.409249,1.94591,,0 +15,6,95,1,2,629146,1,4487.39,6.639973,0,9,1,0,0,0,0,0,0,0,0,0,0,0,7,89.1,10.57626,0,74.1,820,820,1,0,1.94591,6.709304,0,4.564348,6.760598,1,0,0,74.1,8.409249,1.94591,,0 +15,6,95,1,3,629146,1,4487.39,7.639973,0,9,1,0,0,0,0,0,0,0,0,0,0,0,7,89.1,10.57626,0,74.1,820,820,1,0,1.94591,6.709304,0,4.564348,6.760598,1,0,0,74.1,8.409249,1.94591,,0 +15,6,95,1,1,629147,1,4487.39,6.554415,0,9,1,0,0,0,0,0,0,0,0,0,0,0,7,89.1,10.57626,0,74.1,820,820,1,0,1.94591,6.709304,0,4.564348,6.760598,1,0,0,74.1,8.409249,1.94591,,0 +15,6,95,1,2,629147,1,4487.39,7.554415,0,9,1,0,0,0,0,0,0,0,0,0,0,0,7,89.1,10.57626,0,74.1,820,820,1,0,1.94591,6.709304,0,4.564348,6.760598,1,0,0,74.1,8.409249,1.94591,,0 +15,6,95,1,3,629147,1,4487.39,8.554415,0,9,1,0,0,0,0,0,0,0,0,0,0,0,7,89.1,10.57626,0,74.1,820,820,1,0,1.94591,6.709304,0,4.564348,6.760598,1,0,0,74.1,8.409249,1.94591,,0 +15,6,95,1,1,629149,1,1798.771,25.56331,1,12,1,25.81464,0,0,0,0,25.81464,1,1,0,2,0,3,79.8,10.3,0,55.7,80.9,80.9,0,0,1.098612,4.393214,0,4.564348,4.444507,0,1,0,55.7,7.495415,1.098612,3.250942,1 +15,6,95,1,2,629149,1,1798.771,26.56331,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,79.8,10.3,0,55.7,80.9,80.9,0,0,1.386294,4.393214,0,4.564348,4.444507,0,1,0,55.7,7.495415,1.386294,,0 +15,6,95,1,3,629149,1,1798.771,27.56331,1,12,1,21.10727,0,0,0,0,21.10727,0,0,0,0,0,4,79.8,10.3,0,55.7,80.9,80.9,0,0,1.386294,4.393214,0,4.564348,4.444507,0,1,0,55.7,7.495415,1.386294,3.049617,1 +15,6,95,1,1,629150,1,1798.771,5.467488,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,91.7,10.57626,0,70.4,80.9,80.9,1,1,1.098612,4.393214,0,4.564348,4.444507,0,1,0,70.4,7.495415,1.098612,,0 +15,6,95,1,2,629150,1,1798.771,6.467488,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,91.7,10.57626,0,70.4,80.9,80.9,1,1,1.386294,4.393214,0,4.564348,4.444507,0,1,0,70.4,7.495415,1.386294,,0 +15,6,95,1,3,629150,1,1798.771,7.467488,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,91.7,10.57626,0,70.4,80.9,80.9,1,1,1.386294,4.393214,0,4.564348,4.444507,0,1,0,70.4,7.495415,1.386294,,0 +15,6,95,1,1,629151,1,1798.771,4.314853,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,77.40034,10.57626,0,70.4,80.9,80.9,1,1,1.098612,4.393214,0,4.564348,4.444507,0,0,0,70.4,7.495415,1.098612,,0 +15,6,95,1,2,629151,1,1798.771,5.314853,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,0,70.4,80.9,80.9,1,1,1.386294,4.393214,0,4.564348,4.444507,0,0,0,70.4,7.495415,1.386294,,0 +15,6,95,1,3,629151,1,1798.771,6.314853,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,0,70.4,80.9,80.9,1,1,1.386294,4.393214,0,4.564348,4.444507,0,0,0,70.4,7.495415,1.386294,,0 +10,6,50,0,1,629174,1,6735.316,41.84258,1,7,1,0,0,0,0,0,0,0,0,0,0,0,2,77.40034,10.57626,.1442925,,1000,0,0,0,.6931472,0,0,3.931826,7.600903,0,0,0,70.68995,8.815269,.6931472,,0 +10,6,50,0,2,629174,1,6735.316,42.84258,1,7,1,119.2103,28.94837,37.20577,0,895.2164,1080.581,1,0,0,14,0,2,77.40034,10.57626,.1442925,,1000,0,0,0,.6931472,0,0,3.931826,7.600903,0,0,0,70.68995,8.815269,.6931472,6.985254,1 +10,6,50,0,3,629174,1,6735.316,43.84258,1,7,1,82.35294,13.78893,0,0,0,96.14187,0,0,0,9,0,1,77.40034,10.57626,.1442925,,1000,0,0,0,0,0,0,3.931826,7.600903,0,0,0,70.68995,8.815269,0,4.565825,1 +10,6,50,0,1,629175,1,6735.316,19.17864,0,8,1,0,0,0,0,0,0,0,0,0,0,0,2,77.40034,10.57626,.1442925,,1000,0,0,0,.6931472,0,0,3.931826,7.600903,0,0,0,70.68995,8.815269,.6931472,,0 +10,6,50,0,2,629175,1,6735.316,20.17864,0,8,1,37.96507,2.505695,0,0,0,40.47077,0,0,0,2,0,2,77.40034,10.57626,.1442925,,1000,0,0,0,.6931472,0,0,3.931826,7.600903,0,0,0,70.68995,8.815269,.6931472,3.70058,1 +11,6,0,0,1,629176,0,7813.108,21.07324,1,11,1,170.5459,45.44646,0,0,193.3982,409.3906,1,0,0,13,0,2,58.5,3.4,0,51.1,0,0,0,0,.6931472,0,0,0,0,1,0,0,51.1,8.963686,.6931472,6.01467,1 +11,6,0,0,2,629176,0,7813.108,22.07324,1,11,1,698.1777,108.6484,0,0,0,806.8261,0,0,0,18,63,2,58.5,3.4,0,51.1,0,0,0,0,.6931472,0,0,0,0,1,0,0,51.1,8.963686,.6931472,6.693108,1 +11,6,0,0,3,629176,0,7813.108,23.07324,1,11,1,371.6263,86.31142,0,0,600.346,1058.284,1,0,0,16,29,2,58.5,3.4,0,51.1,0,0,0,0,.6931472,0,0,0,0,1,0,0,51.1,8.963686,.6931472,6.964404,1 +11,6,0,0,1,629177,0,7813.108,22.48323,0,11,1,34.27846,12.24291,0,0,0,46.52137,0,0,0,2,0,2,64.9,6.9,0,80.7,0,0,0,0,.6931472,0,0,0,0,1,0,0,80.7,8.963686,.6931472,3.839912,1 +11,6,0,0,2,629177,0,7813.108,23.48323,0,11,1,45.55809,6.719818,0,0,0,52.2779,0,0,0,2,0,2,64.9,6.9,0,80.7,0,0,0,0,.6931472,0,0,0,0,1,0,0,80.7,8.963686,.6931472,3.956574,1 +11,6,0,0,3,629177,0,7813.108,24.48323,0,11,1,323.5294,15.70934,0,0,0,339.2388,0,0,0,7,27,2,64.9,6.9,0,80.7,0,0,0,0,.6931472,0,0,0,0,1,0,0,80.7,8.963686,.6931472,5.826704,1 +11,6,0,0,1,629207,0,2275.073,57.54963,0,7,1,0,0,0,0,0,0,0,0,0,0,0,1,89.4,3.4,0,59.1,0,0,0,0,0,0,0,0,0,1,0,0,59.1,7.730207,0,,0 +11,6,0,0,2,629207,0,2275.073,58.54963,0,7,1,0,0,0,0,0,0,0,0,0,0,0,1,89.4,3.4,0,59.1,0,0,0,0,0,0,0,0,0,1,0,0,59.1,7.730207,0,,0 +11,6,0,0,3,629207,0,2275.073,59.54963,0,7,1,29.77456,0,0,0,0,29.77456,0,0,0,2,0,1,89.4,3.4,0,59.1,0,0,0,0,0,0,0,0,0,1,0,0,59.1,7.730207,0,3.393655,1 +11,6,0,0,4,629207,0,2275.073,60.54963,0,7,1,3.816794,0,0,0,0,3.816794,0,0,0,0,0,1,89.4,3.4,0,59.1,0,0,0,0,0,0,0,0,0,1,0,0,59.1,7.730207,0,1.339411,1 +11,6,0,0,5,629207,0,2275.073,61.54963,0,7,1,15.33101,0,34.01742,0,0,49.34843,0,0,0,1,0,1,89.4,3.4,0,59.1,0,0,0,0,0,0,0,0,0,1,0,0,59.1,7.730207,0,3.898906,1 +15,6,95,1,1,629226,1,1446.334,47.32923,1,6,1,23.94015,18.22444,21.94514,0,0,64.10973,0,0,0,4,0,2,60.6,24.1,1,55.7,197.1,197.1,0,0,.6931472,5.283711,0,4.564348,5.335004,0,0,1,55.7,7.277479,.6931472,4.160596,1 +15,6,95,1,2,629226,1,1446.334,48.32923,1,6,1,58.09129,68.39558,0,0,0,126.4869,0,0,0,7,0,2,60.6,24.1,1,55.7,197.1,197.1,0,0,.6931472,5.283711,0,4.564348,5.335004,0,0,1,55.7,7.277479,.6931472,4.840138,1 +15,6,95,1,3,629226,1,1446.334,49.32923,1,6,1,56.70758,37.44393,0,0,0,94.1515,0,0,0,6,0,1,60.6,24.1,1,55.7,197.1,197.1,0,0,0,5.283711,0,4.564348,5.335004,0,0,1,55.7,7.277479,0,4.544905,1 +15,6,95,1,4,629226,1,1446.334,50.32923,1,6,1,48.97494,67.34624,29.61276,0,0,145.9339,0,0,0,4,0,1,60.6,24.1,1,55.7,197.1,197.1,0,0,0,5.283711,0,4.564348,5.335004,0,0,1,55.7,7.277479,0,4.983154,1 +15,6,95,1,5,629226,1,1446.334,51.32923,1,6,1,149.827,80.29412,21.45329,0,0,251.5744,0,0,0,7,10,1,60.6,24.1,1,55.7,197.1,197.1,0,0,0,5.283711,0,4.564348,5.335004,0,0,1,55.7,7.277479,0,5.527739,1 +15,6,95,1,1,629227,1,1446.334,22.37098,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,72.3,20.7,0,56.8,197.1,197.1,0,0,.6931472,5.283711,0,4.564348,5.335004,0,0,1,56.8,7.277479,.6931472,,0 +15,6,95,1,2,629227,1,1446.334,23.37098,1,12,1,10.14292,15.16828,0,0,0,25.3112,0,0,0,2,0,2,72.3,20.7,0,56.8,197.1,197.1,0,0,.6931472,5.283711,0,4.564348,5.335004,0,0,1,56.8,7.277479,.6931472,3.231247,1 +11,6,0,1,1,629231,0,6757.771,31.50171,0,12,1,8.977556,1.526185,0,0,0,10.50374,0,0,0,1,0,1,42.6,17.2,1,38.6,0,0,0,0,0,0,0,0,0,0,1,0,38.6,8.818597,0,2.351731,1 +11,6,0,1,2,629231,0,6757.771,32.50171,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,42.6,17.2,1,38.6,0,0,0,0,0,0,0,0,0,0,1,0,38.6,8.818597,0,,0 +11,6,0,1,3,629231,0,6757.771,33.50171,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,42.6,17.2,1,38.6,0,0,0,0,0,0,0,0,0,0,1,0,38.6,8.818597,0,,0 +11,6,0,1,4,629231,0,6757.771,34.50171,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,42.6,17.2,1,38.6,0,0,0,0,0,0,0,0,0,0,1,0,38.6,8.818597,0,,0 +11,6,0,1,5,629231,0,6757.771,35.50171,0,12,1,8.304499,0,21.45329,0,0,29.75779,0,0,0,1,0,1,42.6,17.2,1,38.6,0,0,0,0,0,0,0,0,0,0,1,0,38.6,8.818597,0,3.393091,1 +11,6,0,1,1,629234,1,5576.037,27.50171,1,16,1,58.40034,31.18493,0,0,0,89.58527,0,0,0,6,0,1,25,24.1,0,68.2,0,0,0,0,0,0,0,0,0,1,0,0,68.2,8.626413,0,4.495191,1 +11,6,0,1,2,629234,1,5576.037,28.50171,1,16,1,63.85725,42.12984,0,0,0,105.9871,0,0,0,4,0,1,25,24.1,0,68.2,0,0,0,0,0,0,0,0,0,1,0,0,68.2,8.626413,0,4.663317,1 +11,6,0,1,3,629234,1,5576.037,29.50171,1,16,1,182.0069,50.3045,0,0,411.2803,643.5917,1,0,0,6,0,1,25,24.1,0,68.2,0,0,0,0,0,0,0,0,0,1,0,0,68.2,8.626413,0,6.467064,1 +18,6,25,1,1,629235,0,6070.661,8.621492,1,8,1,0,4.020313,0,0,0,4.020313,0,0,0,0,0,7,83.3,10.57626,0,70.4,750,750,1,1,1.94591,6.620073,0,3.258096,8.006368,1,0,0,70.4,8.711388,1.94591,1.39136,1 +18,6,25,1,2,629235,0,6070.661,9.621492,1,8,1,0,2.471526,0,0,0,2.471526,0,0,0,0,0,7,83.3,10.57626,0,70.4,750,750,1,1,1.94591,6.620073,0,3.258096,8.006368,1,0,0,70.4,8.711388,1.94591,.9048358,1 +18,6,25,1,3,629235,0,6070.661,10.62149,1,8,1,0,0,0,0,0,0,0,0,0,0,0,7,83.3,10.57626,0,70.4,750,750,1,1,1.94591,6.620073,0,3.258096,8.006368,1,0,0,70.4,8.711388,1.94591,,0 +18,6,25,1,1,629236,0,6070.661,13.06229,1,8,1,12.69573,0,0,0,3811.257,3823.953,1,0,0,0,0,7,90,10.57626,0,51.9,750,750,1,1,1.94591,6.620073,0,3.258096,8.006368,0,1,0,51.9,8.711388,1.94591,8.24904,1 +18,6,25,1,2,629236,0,6070.661,14.06229,1,8,1,0,2.471526,0,0,0,2.471526,0,0,0,0,0,7,90,10.57626,0,51.9,750,750,1,1,1.94591,6.620073,0,3.258096,8.006368,0,1,0,51.9,8.711388,1.94591,.9048358,1 +18,6,25,1,3,629236,0,6070.661,15.06229,1,8,1,0,0,0,0,0,0,0,0,0,0,0,7,90,10.57626,0,51.9,750,750,1,1,1.94591,6.620073,0,3.258096,8.006368,0,1,0,51.9,8.711388,1.94591,,0 +18,6,25,1,1,629237,0,6070.661,14.89665,0,8,1,0,4.020313,0,0,0,4.020313,0,0,0,0,0,7,76.1,6.9,0,81.8,750,750,1,0,1.94591,6.620073,0,3.258096,8.006368,0,1,0,81.8,8.711388,1.94591,1.39136,1 +18,6,25,1,2,629237,0,6070.661,15.89665,0,8,1,0,2.471526,0,0,0,2.471526,0,0,0,0,0,7,76.1,6.9,0,81.8,750,750,1,0,1.94591,6.620073,0,3.258096,8.006368,0,1,0,81.8,8.711388,1.94591,.9048358,1 +18,6,25,1,3,629237,0,6070.661,16.89665,0,8,1,0,0,0,0,0,0,0,0,0,0,0,7,76.1,6.9,0,81.8,750,750,1,0,1.94591,6.620073,0,3.258096,8.006368,0,1,0,81.8,8.711388,1.94591,,0 +18,6,25,1,1,629238,0,6070.661,43.23614,0,4,1,106.6441,14.38849,0,0,0,121.0326,0,0,0,1,0,7,85.6,13.8,0,60.7,750,750,0,0,1.94591,6.620073,0,3.258096,8.006368,0,1,0,60.7,8.711388,1.94591,4.79606,1 +18,6,25,1,2,629238,0,6070.661,44.23614,0,4,1,52.77145,10.59226,0,0,0,63.3637,0,0,0,2,0,7,85.6,13.8,0,60.7,750,750,0,0,1.94591,6.620073,0,3.258096,8.006368,0,1,0,60.7,8.711388,1.94591,4.148891,1 +18,6,25,1,3,629238,0,6070.661,45.23614,0,4,1,117.6471,4.186851,42.43253,0,0,164.2664,0,0,0,4,1,7,85.6,13.8,0,60.7,750,750,0,0,1.94591,6.620073,0,3.258096,8.006368,0,1,0,60.7,8.711388,1.94591,5.10149,1 +18,6,25,1,1,629239,0,6070.661,5.982204,0,8,1,14.81168,4.020313,0,0,0,18.83199,0,0,0,1,0,7,83.3,10.57626,.1442925,63,750,750,1,0,1.94591,6.620073,0,3.258096,8.006368,1,0,0,63,8.711388,1.94591,2.935557,1 +18,6,25,1,2,629239,0,6070.661,6.982204,0,8,1,21.64009,2.471526,30.37206,0,0,54.48368,0,0,0,2,0,7,83.3,10.57626,.1442925,63,750,750,1,0,1.94591,6.620073,0,3.258096,8.006368,1,0,0,63,8.711388,1.94591,3.997901,1 +18,6,25,1,3,629239,0,6070.661,7.982204,0,8,1,24.22145,0,13.84083,0,0,38.06228,0,0,0,1,1,7,83.3,10.57626,.1442925,63,750,750,1,0,1.94591,6.620073,0,3.258096,8.006368,1,0,0,63,8.711388,1.94591,3.639224,1 +18,6,25,1,1,629240,0,6070.661,42.29158,1,8,1,4.231909,11.25688,0,0,0,15.48879,0,0,0,1,0,7,79.8,31,0,59.2,750,750,0,0,1.94591,6.620073,0,3.258096,8.006368,0,1,0,59.2,8.711388,1.94591,2.740116,1 +18,6,25,1,2,629240,0,6070.661,43.29158,1,8,1,146.3553,6.473045,0,0,0,152.8284,0,0,0,8,0,7,79.8,31,0,59.2,750,750,0,0,1.94591,6.620073,0,3.258096,8.006368,0,1,0,59.2,8.711388,1.94591,5.029316,1 +18,6,25,1,3,629240,0,6070.661,44.29158,1,8,1,46.19377,4.32526,32.87197,0,0,83.39101,0,0,0,4,1,7,79.8,31,0,59.2,750,750,0,0,1.94591,6.620073,0,3.258096,8.006368,0,1,0,59.2,8.711388,1.94591,4.423541,1 +18,6,25,1,1,629241,0,6070.661,17.08693,1,8,1,0,4.020313,0,0,0,4.020313,0,0,0,0,0,7,73.9,10.3,0,70.2,750,750,1,1,1.94591,6.620073,0,3.258096,8.006368,1,0,0,70.2,8.711388,1.94591,1.39136,1 +18,6,25,1,2,629241,0,6070.661,18.08693,1,8,1,46.31739,15.05695,0,0,0,61.37434,0,0,0,4,0,7,73.9,10.3,0,70.2,750,750,0,0,1.94591,6.620073,0,3.258096,8.006368,1,0,0,70.2,8.711388,1.94591,4.116992,1 +18,6,25,1,3,629241,0,6070.661,19.08693,1,8,1,38.23529,7.214533,0,0,0,45.44983,0,0,0,5,0,7,73.9,10.3,0,70.2,750,750,0,0,1.94591,6.620073,0,3.258096,8.006368,1,0,0,70.2,8.711388,1.94591,3.816609,1 +16,6,95,1,1,629274,0,9686.124,28.65161,0,18,1,0,0,0,0,0,0,0,0,0,0,0,2,71.3,3.4,1,72.7,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,72.7,9.178553,.6931472,,0 +16,6,95,1,2,629274,0,9686.124,29.65161,0,18,1,0,0,0,0,0,0,0,0,0,0,0,2,71.3,3.4,1,72.7,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,72.7,9.178553,.6931472,,0 +16,6,95,1,3,629274,0,9686.124,30.65161,0,18,1,5.488851,0,0,0,0,5.488851,0,0,0,1,0,2,71.3,3.4,1,72.7,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,72.7,9.178553,.6931472,1.702719,1 +13,6,0,1,1,629322,1,24177.68,17.63724,1,8,1,6.347863,0,0,0,0,6.347863,0,0,0,1,0,3,45.7,6.9,0,45.5,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,0,0,0,45.5,10.09323,1.098612,1.848118,1 +13,6,0,1,2,629322,1,24177.68,18.63724,1,8,1,34.16856,0,0,0,0,34.16856,0,0,0,2,0,3,45.7,6.9,0,45.5,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,45.5,10.09323,1.098612,3.531306,1 +13,6,0,1,3,629322,1,24177.68,19.63724,1,8,1,0,2.252595,0,0,0,2.252595,0,0,0,0,0,3,45.7,6.9,0,45.5,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,45.5,10.09323,1.098612,.8120829,1 +13,6,0,1,1,629323,1,24177.68,52.0438,0,8,1,71.73085,38.87431,33.85527,0,895.895,1040.355,1,0,0,5,2,3,89.4,6.9,0,76.1,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,76.1,10.09323,1.098612,6.947318,1 +13,6,0,1,2,629323,1,24177.68,53.0438,0,8,1,11.38952,9.483675,18.98254,0,0,39.85573,0,0,0,0,1,3,89.4,6.9,0,76.1,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,76.1,10.09323,1.098612,3.685266,1 +13,6,0,1,3,629323,1,24177.68,54.0438,0,8,1,12.11073,1.885813,32.87197,0,0,46.86851,0,0,0,0,1,3,89.4,6.9,0,76.1,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,76.1,10.09323,1.098612,3.847346,1 +13,6,0,1,1,629325,1,24177.68,50.97604,1,8,1,155.7342,33.66483,46.97419,0,0,236.3733,0,0,0,4,7,3,66,13.8,1,50,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,1,0,50,10.09323,1.098612,5.465412,1 +13,6,0,1,2,629325,1,24177.68,51.97604,1,8,1,194.7608,51.6287,0,0,0,246.3895,0,0,0,18,0,3,66,13.8,1,50,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,1,0,50,10.09323,1.098612,5.506914,1 +13,6,0,1,3,629325,1,24177.68,52.97604,1,8,1,96.19377,33.70242,42.43253,0,0,172.3287,0,0,0,6,1,3,66,13.8,1,50,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,1,0,50,10.09323,1.098612,5.149404,1 +11,6,0,1,1,629326,.5112414,13244.75,31.32923,1,13,1,42.91123,4.228018,2.949095,0,0,50.08835,0,0,0,3,0,4,61.2,10.3,0,81.8,0,0,0,0,1.386294,0,0,0,0,0,0,0,81.8,9.491432,1.386294,3.913788,1 +11,6,0,1,2,629326,.5112414,13244.75,32.32923,1,13,1,20.77824,5.417454,0,292.7843,0,26.19569,0,0,14,3,0,4,61.2,10.3,0,81.8,0,0,0,0,1.386294,0,0,0,0,0,0,0,81.8,9.491432,1.386294,3.265595,1 +11,6,0,1,3,629326,.5112414,13244.75,33.32923,1,13,1,122.47,1.73928,24.91595,259.8628,412.0069,561.1321,1,0,14,4,0,4,61.2,10.3,0,81.8,0,0,0,0,1.386294,0,0,0,0,0,0,0,81.8,9.491432,1.386294,6.329957,1 +11,6,0,1,1,629327,0,13244.75,32.24093,0,16,1,68.57383,1.430374,0,0,0,70.0042,0,0,0,3,0,4,80.3,6.9,0,87.5,0,0,0,0,1.386294,0,0,0,0,0,0,0,87.5,9.491432,1.386294,4.248555,1 +11,6,0,1,2,629327,0,13244.75,33.24093,0,16,1,0,0,0,0,0,0,0,0,0,0,0,4,80.3,6.9,0,87.5,0,0,0,0,1.386294,0,0,0,0,0,0,0,87.5,9.491432,1.386294,,0 +11,6,0,1,3,629327,0,13244.75,34.24093,0,16,1,63.80789,3.036021,32.93311,87.47856,0,99.77702,0,0,5,7,0,4,80.3,6.9,0,87.5,0,0,0,0,1.386294,0,0,0,0,0,0,0,87.5,9.491432,1.386294,4.602938,1 +11,6,0,1,1,629328,.5112414,13244.75,8.03833,1,13,1,53.00799,8.969289,0,0,0,61.97728,0,0,0,7,0,4,65,10.57626,0,44.4,0,0,1,1,1.386294,0,0,0,0,0,0,0,44.4,9.491432,1.386294,4.126768,1 +11,6,0,1,2,629328,.5112414,13244.75,9.03833,1,13,1,68.75708,27.33661,0,0,333.9819,430.0756,1,0,0,12,0,4,65,10.57626,0,44.4,0,0,1,1,1.386294,0,0,0,0,0,0,0,44.4,9.491432,1.386294,6.063961,1 +11,6,0,1,3,629328,.5112414,13244.75,10.03833,1,13,1,124.1852,3.948542,0,0,0,128.1338,0,0,1,7,0,4,65,10.57626,0,44.4,0,0,1,1,1.386294,0,0,0,0,0,0,0,44.4,9.491432,1.386294,4.853075,1 +13,6,0,1,1,629329,0,3669.739,13.05407,0,5,1,0,0,0,0,0,0,0,0,0,0,0,5,76.7,10.57626,0,37,450,0,1,0,1.609438,0,1,4.564348,6.160541,0,0,0,37,8.208148,1.609438,,0 +13,6,0,1,2,629329,0,3669.739,14.05407,0,5,1,0,0,0,0,0,0,0,0,0,0,0,5,76.7,10.57626,0,37,450,0,1,0,1.609438,0,1,4.564348,6.160541,0,0,0,37,8.208148,1.609438,,0 +13,6,0,1,3,629329,0,3669.739,15.05407,0,5,1,0,0,0,0,0,0,0,0,0,0,0,5,76.7,10.57626,0,37,450,0,1,0,1.609438,0,1,4.564348,6.160541,0,0,0,37,8.208148,1.609438,,0 +13,6,0,1,1,629330,0,3669.739,26.27515,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,61.7,0,0,67.9,450,0,0,0,1.609438,0,1,4.564348,6.160541,0,1,0,67.9,8.208148,1.609438,,0 +13,6,0,1,2,629330,0,3669.739,27.27515,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,61.7,0,0,67.9,450,0,0,0,1.609438,0,1,4.564348,6.160541,0,1,0,67.9,8.208148,1.609438,,0 +13,6,0,1,3,629330,0,3669.739,28.27515,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,61.7,0,0,67.9,450,0,0,0,1.609438,0,1,4.564348,6.160541,0,1,0,67.9,8.208148,1.609438,,0 +13,6,0,1,1,629332,0,3669.739,3.805613,0,5,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,63,450,0,1,0,1.609438,0,1,4.564348,6.160541,1,0,0,63,8.208148,1.609438,,0 +13,6,0,1,2,629332,0,3669.739,4.805613,0,5,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,63,450,0,1,0,1.609438,0,1,4.564348,6.160541,1,0,0,63,8.208148,1.609438,,0 +13,6,0,1,3,629332,0,3669.739,5.805613,0,5,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,63,450,0,1,0,1.609438,0,1,4.564348,6.160541,1,0,0,63,8.208148,1.609438,,0 +13,6,0,1,1,629333,0,3669.739,14.88569,1,5,1,0,0,0,0,0,0,0,0,0,0,0,5,66.5,13.8,0,56.8,450,0,1,1,1.609438,0,1,4.564348,6.160541,1,0,0,56.8,8.208148,1.609438,,0 +13,6,0,1,2,629333,0,3669.739,15.88569,1,5,1,0,0,0,0,0,0,0,0,0,0,0,5,66.5,13.8,0,56.8,450,0,1,1,1.609438,0,1,4.564348,6.160541,1,0,0,56.8,8.208148,1.609438,,0 +13,6,0,1,3,629333,0,3669.739,16.88569,1,5,1,0,0,0,0,0,0,0,0,0,0,0,5,66.5,13.8,0,56.8,450,0,1,1,1.609438,0,1,4.564348,6.160541,1,0,0,56.8,8.208148,1.609438,,0 +13,6,0,1,1,629334,0,3669.739,60.15058,1,5,1,12.69573,0,40.62632,0,0,53.32205,0,0,0,0,1,5,90.4,3.4,0,61.4,450,0,0,0,1.609438,0,1,4.564348,6.160541,0,0,0,61.4,8.208148,1.609438,3.97635,1 +13,6,0,1,2,629334,0,3669.739,61.15058,1,5,1,0,0,0,0,0,0,0,0,0,0,0,5,90.4,3.4,0,61.4,450,0,0,0,1.609438,0,1,4.564348,6.160541,0,0,0,61.4,8.208148,1.609438,,0 +13,6,0,1,3,629334,0,3669.739,62.15058,1,5,1,0,0,0,0,0,0,0,0,0,0,0,5,90.4,3.4,0,61.4,450,0,0,0,1.609438,0,1,4.564348,6.160541,0,0,0,61.4,8.208148,1.609438,,0 +11,6,0,0,1,629339,0,8513.057,51.25804,1,3,1,432.8986,65.99916,36.18006,0,1098.023,1633.101,2,0,0,19,46,2,71.3,37.9,1,54.5,0,231.48,0,0,.6931472,5.444493,0,0,0,0,1,0,54.5,9.049474,.6931472,7.398236,1 +11,6,0,0,2,629339,0,8513.057,52.25804,1,3,1,333.5852,97.4915,0,0,0,431.0767,0,0,0,15,32,2,71.3,37.9,1,54.5,0,231.48,0,0,.6931472,5.444493,0,0,0,0,1,0,54.5,9.049474,.6931472,6.066286,1 +11,6,0,0,3,629339,0,8513.057,53.25804,1,3,1,410.9777,114.3705,0,0,0,525.3482,0,0,0,17,28,1,71.3,37.9,1,54.5,0,231.48,0,0,0,5.444493,0,0,0,0,1,0,54.5,9.049474,0,6.264061,1 +11,6,0,0,1,629340,0,8513.057,56.22998,0,6,1,310.0547,169.3101,39.54565,0,6631.889,7150.799,1,0,0,28,0,2,78.1,20.7,1,58,0,231.48,0,0,.6931472,5.444493,0,0,0,1,0,0,58,9.049474,.6931472,8.874979,1 +11,6,0,0,2,629340,0,8513.057,57.22998,0,6,1,341.1409,202.9052,29.08953,0,1306.762,1879.898,2,0,0,32,0,2,78.1,20.7,1,58,0,231.48,0,0,.6931472,5.444493,0,0,0,1,0,0,58,9.049474,.6931472,7.538973,1 +11,6,0,1,1,629341,0,10837.69,25.94114,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,86.2,0,0,84.1,0,24,0,0,1.098612,3.178054,0,0,0,0,0,0,84.1,9.290877,1.098612,,0 +11,6,0,1,2,629341,0,10837.69,26.94114,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,86.2,0,0,84.1,0,24,0,0,1.098612,3.178054,0,0,0,0,0,0,84.1,9.290877,1.098612,,0 +11,6,0,1,3,629341,0,10837.69,27.94114,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,86.2,0,0,84.1,0,24,0,0,1.098612,3.178054,0,0,0,0,0,0,84.1,9.290877,1.098612,,0 +11,6,0,1,1,629342,0,10837.69,25.99315,1,12,1,115.1079,42.05671,23.2755,0,0,180.4401,0,0,0,5,1,3,55.9,27.6,1,34.1,0,24,0,0,1.098612,3.178054,0,0,0,1,0,0,34.1,9.290877,1.098612,5.195399,1 +11,6,0,1,2,629342,0,10837.69,26.99315,1,12,1,80.1063,17.51329,0,0,389.5216,487.1412,1,0,0,7,0,3,55.9,27.6,1,34.1,0,24,0,0,1.098612,3.178054,0,0,0,1,0,0,34.1,9.290877,1.098612,6.188554,1 +11,6,0,1,3,629342,0,10837.69,27.99315,1,12,1,63.49481,34.73702,24.91349,0,1021.107,1144.253,2,0,0,6,1,3,55.9,27.6,1,34.1,0,24,0,0,1.098612,3.178054,0,0,0,1,0,0,34.1,9.290877,1.098612,7.042507,1 +17,6,25,1,1,629344,0,0,59.32375,1,7,1,0,0,0,0,0,0,0,0,0,0,0,1,73.9,24.1,1,63.6,252.6,412.2,0,0,0,6.021509,0,3.258096,6.918102,0,1,0,63.6,0,0,,0 +17,6,25,1,2,629344,0,0,60.32375,1,7,1,0,0,0,0,0,0,0,0,0,0,0,1,73.9,24.1,1,63.6,252.6,412.2,0,0,0,6.021509,0,3.258096,6.918102,0,1,0,63.6,0,0,,0 +17,6,25,1,3,629344,0,0,61.32375,1,7,1,0,0,0,0,0,0,0,0,0,0,0,1,73.9,24.1,1,63.6,252.6,412.2,0,0,0,6.021509,0,3.258096,6.918102,0,1,0,63.6,0,0,,0 +10,6,50,0,1,629363,1,2209.421,34.88022,1,7,1,29.02819,0,0,0,0,29.02819,0,0,0,0,0,2,54.3,24.1,0,52.3,315.15,315.15,0,0,.6931472,5.753049,0,3.931826,6.446196,0,1,0,52.3,7.700938,.6931472,3.368267,1 +10,6,50,0,2,629363,1,2209.421,35.88022,1,7,1,5.666792,0,0,0,0,5.666792,0,0,0,1,0,2,54.3,24.1,0,52.3,315.15,315.15,0,0,.6931472,5.753049,0,3.931826,6.446196,0,1,0,52.3,7.700938,.6931472,1.734623,1 +10,6,50,0,3,629363,1,2209.421,36.88022,1,7,1,0,0,0,0,0,0,0,0,0,0,0,1,54.3,24.1,0,52.3,315.15,315.15,0,0,0,5.753049,0,3.931826,6.446196,0,1,0,52.3,7.700938,0,,0 +10,6,50,0,1,629364,1,2209.421,15.55647,1,7,1,0,0,0,0,0,0,0,0,0,0,0,2,59.6,17.2,1,47.7,315.15,315.15,1,1,.6931472,5.753049,0,3.931826,6.446196,1,0,0,47.7,7.700938,.6931472,,0 +10,6,50,0,2,629364,1,2209.421,16.55647,1,7,1,0,0,0,0,0,0,0,0,0,0,0,2,59.6,17.2,1,47.7,315.15,315.15,1,1,.6931472,5.753049,0,3.931826,6.446196,1,0,0,47.7,7.700938,.6931472,,0 +19,6,25,0,1,629385,0,9709.678,31.06366,1,12,1,23.60623,4.771472,0,0,0,28.3777,0,0,0,2,0,4,81.9,13.8,0,92,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,92,9.180982,1.386294,3.345604,1 +19,6,25,0,2,629385,0,9709.678,32.06366,1,12,1,27.3528,6.026889,8.808531,0,0,42.18822,0,0,0,3,0,4,81.9,13.8,0,92,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,92,9.180982,1.386294,3.742141,1 +19,6,25,0,3,629385,0,9709.678,33.06366,1,12,1,22.96895,7.01829,4.147171,0,0,34.13441,0,0,0,2,0,4,81.9,13.8,0,92,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,92,9.180982,1.386294,3.530306,1 +19,6,25,0,4,629385,0,9709.678,34.06366,1,12,1,185.1145,44.08397,0,0,0,229.1985,0,0,0,8,10,4,81.9,13.8,0,92,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,92,9.180982,1.386294,5.434588,1 +19,6,25,0,5,629385,0,9709.678,35.06366,1,12,1,67.24738,9.494774,0,0,0,76.74216,0,0,0,3,0,4,81.9,13.8,0,92,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,92,9.180982,1.386294,4.340451,1 +19,6,25,0,1,629386,0,9709.678,1.130732,0,12,1,13.05876,16.58965,0,0,0,29.64842,0,0,0,3,0,4,77.40034,10.57626,0,88.9,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,88.9,9.180982,1.386294,3.389409,1 +19,6,25,0,2,629386,0,9709.678,2.130732,0,12,1,30.11127,15.87854,0,2.341215,0,45.9898,0,0,1,5,0,4,77.40034,10.57626,0,88.9,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,88.9,9.180982,1.386294,3.82842,1 +19,6,25,0,3,629386,0,9709.678,3.130732,0,12,1,16.58869,6.380264,0,0,0,22.96895,0,0,0,3,0,4,77.40034,10.57626,0,88.9,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,88.9,9.180982,1.386294,3.134143,1 +19,6,25,0,4,629386,0,9709.678,4.130733,0,12,1,46.56488,20.22901,0,0,0,66.79389,0,0,0,7,0,4,77.40034,10.57626,0,88.9,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,88.9,9.180982,1.386294,4.201612,1 +19,6,25,0,5,629386,0,9709.678,5.130733,0,12,1,30.66202,2.351916,0,0,0,33.01394,0,0,0,4,0,4,77.40034,10.57626,0,88.9,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,88.9,9.180982,1.386294,3.49693,1 +19,6,25,0,1,629387,0,9709.678,6.442163,1,12,1,293.8222,22.9784,0,0,0,316.8006,0,0,0,16,0,4,90,10.57626,0,88.9,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,1,0,0,88.9,9.180982,1.386294,5.758273,1 +19,6,25,0,2,629387,0,9709.678,7.442163,1,12,1,37.08855,7.185906,0,0,0,44.27446,0,0,0,5,0,4,90,10.57626,0,88.9,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,1,0,0,88.9,9.180982,1.386294,3.790408,1 +19,6,25,0,3,629387,0,9709.678,8.442163,1,12,1,74.22373,18.92812,0,0,0,93.15185,0,0,0,8,0,4,90,10.57626,0,88.9,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,1,0,0,88.9,9.180982,1.386294,4.534231,1 +19,6,25,0,4,629387,0,9709.678,9.442163,1,12,1,51.9084,12.30916,8.488549,0,0,72.70611,0,0,0,6,0,4,90,10.57626,0,88.9,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,1,0,0,88.9,9.180982,1.386294,4.286426,1 +19,6,25,0,5,629387,0,9709.678,10.44216,1,12,1,68.29269,20.22648,22.10453,0,0,110.6237,0,0,0,7,0,4,90,10.57626,0,88.9,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,1,0,0,88.9,9.180982,1.386294,4.706134,1 +19,6,25,0,1,629388,0,9709.678,31.06913,0,12,1,4.018081,1.25565,0,0,0,5.273732,0,0,0,1,0,4,91,0,0,93.2,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,93.2,9.180982,1.386294,1.662738,1 +19,6,25,0,2,629388,0,9709.678,32.06913,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,91,0,0,93.2,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,93.2,9.180982,1.386294,,0 +19,6,25,0,3,629388,0,9709.678,33.06913,0,12,1,0,2.488303,0,0,0,2.488303,0,0,0,0,0,4,91,0,0,93.2,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,93.2,9.180982,1.386294,.9116009,1 +19,6,25,0,4,629388,0,9709.678,34.06913,0,12,1,7.251908,5.343512,0,0,0,12.59542,0,0,0,1,0,4,91,0,0,93.2,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,93.2,9.180982,1.386294,2.533333,1 +19,6,25,0,5,629388,0,9709.678,35.06913,0,12,1,19.5122,4.442509,0,0,0,23.9547,0,0,0,2,0,4,91,0,0,93.2,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,93.2,9.180982,1.386294,3.176165,1 +6,6,25,0,1,629404,0,10442.91,7.671458,0,14,1,0,6.941523,0,0,0,6.941523,0,0,0,0,0,5,93.3,10.57626,0,70.4,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,70.4,9.253774,1.609438,1.937521,1 +6,6,25,0,2,629404,0,10442.91,8.671458,0,14,1,0,0,0,0,0,0,0,0,0,0,0,5,93.3,10.57626,0,70.4,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,70.4,9.253774,1.609438,,0 +6,6,25,0,3,629404,0,10442.91,9.671458,0,14,1,0,0,0,0,0,0,0,0,0,0,0,5,93.3,10.57626,0,70.4,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,70.4,9.253774,1.609438,,0 +6,6,25,0,1,629405,0,10442.91,38.82546,0,14,1,0,0,0,0,0,0,0,0,0,0,0,5,79.8,13.8,0,54.5,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,54.5,9.253774,1.609438,,0 +6,6,25,0,2,629405,0,10442.91,39.82546,0,14,1,9.444654,4.125425,0,0,0,13.57008,0,0,0,1,0,5,79.8,13.8,0,54.5,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,54.5,9.253774,1.609438,2.607867,1 +6,6,25,0,3,629405,0,10442.91,40.82546,0,14,1,12.00686,0,0,0,696.0549,708.0618,1,0,0,1,0,5,79.8,13.8,0,54.5,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,54.5,9.253774,1.609438,6.562531,1 +6,6,25,0,1,629406,0,10442.91,13.87269,0,14,1,0,0,0,0,0,0,0,0,0,0,0,5,80,10.57626,0,66.7,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,66.7,9.253774,1.609438,,0 +6,6,25,0,2,629406,0,10442.91,14.87269,0,14,1,0,0,0,0,0,0,0,0,0,0,0,5,80,10.57626,0,66.7,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,66.7,9.253774,1.609438,,0 +6,6,25,0,3,629406,0,10442.91,15.87269,0,14,1,0,0,0,0,0,0,0,0,0,0,0,5,80,10.57626,0,66.7,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,66.7,9.253774,1.609438,,0 +6,6,25,0,1,629407,0,10442.91,34.28337,1,14,1,53.21834,0,0,0,0,53.21834,0,0,0,6,0,5,74.5,24.1,1,46.6,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,46.6,9.253774,1.609438,3.974403,1 +6,6,25,0,2,629407,0,10442.91,35.28337,1,14,1,40.42312,0,0,0,0,40.42312,0,0,0,3,0,5,74.5,24.1,1,46.6,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,46.6,9.253774,1.609438,3.699402,1 +6,6,25,0,3,629407,0,10442.91,36.28337,1,14,1,15.43739,0,24.01372,0,538.0789,577.53,1,0,0,1,1,5,74.5,24.1,1,46.6,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,46.6,9.253774,1.609438,6.35876,1 +6,6,25,0,1,629408,0,10442.91,9.344285,0,14,1,67.31174,0,0,0,0,67.31174,0,0,0,5,0,5,88.3,10.57626,0,74.1,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,74.1,9.253774,1.609438,4.209335,1 +6,6,25,0,2,629408,0,10442.91,10.34429,0,14,1,0,0,0,0,0,0,0,0,0,0,0,5,88.3,10.57626,0,74.1,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,74.1,9.253774,1.609438,,0 +6,6,25,0,3,629408,0,10442.91,11.34429,0,14,1,29.15952,0,0,0,0,29.15952,0,0,0,4,0,5,88.3,10.57626,0,74.1,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,74.1,9.253774,1.609438,3.372782,1 +11,6,0,0,1,629409,0,13102.92,17.34155,1,11,1,0,5.384939,0,0,0,5.384939,0,0,0,0,0,3,81.4,6.9,0,64.8,0,197.4,1,1,1.098612,5.285232,0,0,0,0,0,0,64.8,9.480666,1.098612,1.683606,1 +11,6,0,0,2,629409,0,13102.92,18.34155,1,11,1,6.422365,10.65735,0,0,0,17.07971,0,0,0,1,0,3,81.4,6.9,0,64.8,0,197.4,0,0,1.098612,5.285232,0,0,0,0,0,0,64.8,9.480666,1.098612,2.837891,1 +11,6,0,0,3,629409,0,13102.92,19.34155,1,11,1,79.93139,19.46827,0,0,0,99.39966,0,0,0,2,0,3,81.4,6.9,0,64.8,0,197.4,0,0,1.098612,5.285232,0,0,0,0,0,0,64.8,9.480666,1.098612,4.599149,1 +11,6,0,0,1,629410,0,13102.92,38.66393,1,11,1,14.72444,21.35044,30.29028,0,0,66.36517,0,0,0,1,0,3,84,10.3,0,73.9,0,197.4,0,0,1.098612,5.285232,0,0,0,0,0,0,73.9,9.480666,1.098612,4.195172,1 +11,6,0,0,2,629410,0,13102.92,39.66393,1,11,1,35.88969,33.24518,0,0,0,69.13487,0,0,0,3,0,3,84,10.3,0,73.9,0,197.4,0,0,1.098612,5.285232,0,0,0,0,0,0,73.9,9.480666,1.098612,4.236059,1 +11,6,0,0,3,629410,0,13102.92,40.66393,1,11,1,21.61235,27.01544,33.49228,0,0,82.12007,0,0,0,2,0,3,84,10.3,0,73.9,0,197.4,0,0,1.098612,5.285232,0,0,0,0,0,0,73.9,9.480666,1.098612,4.408183,1 +11,6,0,0,1,629411,0,13102.92,40.73101,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,80.3,10.3,0,90.9,0,197.4,0,0,1.098612,5.285232,0,0,0,0,0,0,90.9,9.480666,1.098612,,0 +11,6,0,0,2,629411,0,13102.92,41.73101,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,80.3,10.3,0,90.9,0,197.4,0,0,1.098612,5.285232,0,0,0,0,0,0,90.9,9.480666,1.098612,,0 +11,6,0,0,3,629411,0,13102.92,42.73101,0,12,1,13.72213,0,39.32418,0,0,53.04631,0,0,0,1,0,3,80.3,10.3,0,90.9,0,197.4,0,0,1.098612,5.285232,0,0,0,0,0,0,90.9,9.480666,1.098612,3.971165,1 +11,6,0,1,1,629412,0,12463.39,56.55305,0,4,1,27.50741,1.438849,39.77994,0,0,68.7262,0,0,0,2,0,3,80.3,17.2,0,79.5,0,144.36,0,0,1.098612,4.97231,0,0,0,1,0,0,79.5,9.430631,1.098612,4.230131,1 +11,6,0,1,2,629412,0,12463.39,57.55305,0,4,1,0,3.849658,0,0,0,3.849658,0,0,0,0,0,3,80.3,17.2,0,79.5,0,144.36,0,0,1.098612,4.97231,0,0,0,1,0,0,79.5,9.430631,1.098612,1.347984,1 +11,6,0,1,3,629412,0,12463.39,58.55305,0,4,1,0,8.965398,0,0,0,8.965398,0,0,0,0,0,3,80.3,17.2,0,79.5,0,144.36,0,0,1.098612,4.97231,0,0,0,1,0,0,79.5,9.430631,1.098612,2.193372,1 +11,6,0,1,1,629414,0,12463.39,11.56194,1,12,1,0,1.6843,0,0,0,1.6843,0,0,0,0,0,3,88.3,10.57626,0,100,0,144.36,1,1,1.098612,4.97231,0,0,0,0,0,0,100,9.430631,1.098612,.5213498,1 +11,6,0,1,2,629414,0,12463.39,12.56194,1,12,1,12.90812,3.974943,0,0,0,16.88307,0,0,0,1,0,3,88.3,10.57626,0,100,0,144.36,1,1,1.098612,4.97231,0,0,0,0,0,0,100,9.430631,1.098612,2.826311,1 +11,6,0,1,3,629414,0,12463.39,13.56194,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,88.3,10.57626,0,100,0,144.36,1,1,1.098612,4.97231,0,0,0,0,0,0,100,9.430631,1.098612,,0 +11,6,0,1,1,629415,0,12463.39,48.13689,1,12,1,38.08718,0,39.77994,0,0,77.86712,0,0,0,2,0,3,79.8,31,0,69.3,0,144.36,0,0,1.098612,4.97231,0,0,0,1,0,0,69.3,9.430631,1.098612,4.355004,1 +11,6,0,1,2,629415,0,12463.39,49.13689,1,12,1,73.65224,1.621109,0,0,391.0403,466.3136,1,0,0,2,0,3,79.8,31,0,69.3,0,144.36,0,0,1.098612,4.97231,0,0,0,1,0,0,69.3,9.430631,1.098612,6.144858,1 +11,6,0,1,3,629415,0,12463.39,50.13689,1,12,1,62.62976,6.695502,0,0,0,69.32526,0,0,0,1,0,3,79.8,31,0,69.3,0,144.36,0,0,1.098612,4.97231,0,0,0,1,0,0,69.3,9.430631,1.098612,4.238809,1 +13,6,0,1,1,629424,0,5762.929,7.318275,1,9,1,29.20017,0,0,0,0,29.20017,0,0,0,0,0,4,85,10.57626,0,77.8,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,77.8,8.659374,1.386294,3.374175,1 +13,6,0,1,2,629424,0,5762.929,8.318275,1,9,1,0,0,0,0,0,0,0,0,0,0,0,4,85,10.57626,0,77.8,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,77.8,8.659374,1.386294,,0 +13,6,0,1,3,629424,0,5762.929,9.318275,1,9,1,5.536332,0,0,0,0,5.536332,0,0,0,1,0,4,85,10.57626,0,77.8,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,77.8,8.659374,1.386294,1.711332,1 +13,6,0,1,1,629425,0,5762.929,35.66051,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,81.9,10.3,0,76.1,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,76.1,8.659374,1.386294,,0 +13,6,0,1,2,629425,0,5762.929,36.66051,0,12,1,0,0,0,0,252.4677,252.4677,1,0,0,0,0,4,81.9,10.3,0,76.1,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,76.1,8.659374,1.386294,5.531283,1 +13,6,0,1,3,629425,0,5762.929,37.66051,0,12,1,5.190311,0,0,0,271.2803,276.4706,1,0,0,1,0,4,81.9,10.3,0,76.1,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,76.1,8.659374,1.386294,5.622105,1 +13,6,0,1,1,629426,0,5762.929,12.52293,1,9,1,0,0,0,0,0,0,0,0,0,0,0,4,73.3,10.57626,0,81.5,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,81.5,8.659374,1.386294,,0 +13,6,0,1,2,629426,0,5762.929,13.52293,1,9,1,0,0,0,0,0,0,0,0,0,0,0,4,73.3,10.57626,0,81.5,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,81.5,8.659374,1.386294,,0 +13,6,0,1,3,629426,0,5762.929,14.52293,1,9,1,29.41176,0,0,0,413.8408,443.2526,1,0,0,2,0,4,73.3,10.57626,0,81.5,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,81.5,8.659374,1.386294,6.09414,1 +13,6,0,1,1,629427,0,5762.929,34.20397,1,9,1,28.35379,0,0,0,568.7685,597.1223,1,0,0,1,0,4,69.1,10.3,0,61.4,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,61.4,8.659374,1.386294,6.392122,1 +13,6,0,1,2,629427,0,5762.929,35.20397,1,9,1,0,0,0,0,0,0,0,0,0,0,0,4,69.1,10.3,0,61.4,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,61.4,8.659374,1.386294,,0 +13,6,0,1,3,629427,0,5762.929,36.20397,1,9,1,0,0,0,0,0,0,0,0,0,0,0,4,69.1,10.3,0,61.4,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,61.4,8.659374,1.386294,,0 +11,6,0,0,1,629437,1,293.9068,59.91513,1,5,1,43.33193,30.37442,29.44888,0,0,103.1552,0,0,0,5,0,2,84.6,10.3,0,64.8,0,0,0,0,.6931472,0,0,0,0,0,1,0,64.8,5.686659,.6931472,4.636235,1 +11,6,0,0,2,629437,1,293.9068,60.91513,1,5,1,28.33396,35.47412,0,0,407.2535,471.0616,1,0,0,7,0,2,84.6,10.3,0,64.8,0,0,0,0,.6931472,0,0,0,0,0,1,0,64.8,5.686659,.6931472,6.154989,1 +11,6,0,0,3,629437,1,293.9068,61.91513,1,5,1,45.62607,40.41166,0,0,0,86.03773,0,0,0,13,0,2,84.6,10.3,0,64.8,0,0,0,0,.6931472,0,0,0,0,0,1,0,64.8,5.686659,.6931472,4.454786,1 +11,6,0,0,1,629438,1,293.9068,17.94661,0,5,1,0,0,0,0,0,0,0,0,0,0,0,2,86.2,0,0,67,0,0,1,0,.6931472,0,0,0,0,0,1,0,67,5.686659,.6931472,,0 +11,6,0,0,2,629438,1,293.9068,18.94661,0,5,1,0,0,0,0,0,0,0,0,0,0,0,2,86.2,0,0,67,0,0,0,0,.6931472,0,0,0,0,0,1,0,67,5.686659,.6931472,,0 +11,6,0,0,3,629438,1,293.9068,19.94661,0,5,1,0,0,0,0,0,0,0,0,0,0,0,2,86.2,0,0,67,0,0,0,0,.6931472,0,0,0,0,0,1,0,67,5.686659,.6931472,,0 +16,6,95,1,1,629462,1,6735.316,25.39357,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,78.2,0,0,81.8,1000,263.18,0,0,1.609438,5.572838,0,4.564348,6.959049,1,0,0,81.8,8.815269,1.609438,,0 +16,6,95,1,2,629462,1,6735.316,26.39357,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,78.2,0,0,81.8,1000,263.18,0,0,1.609438,5.572838,0,4.564348,6.959049,1,0,0,81.8,8.815269,1.609438,,0 +16,6,95,1,3,629462,1,6735.316,27.39357,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,78.2,0,0,81.8,1000,263.18,0,0,1.609438,5.572838,0,4.564348,6.959049,1,0,0,81.8,8.815269,1.609438,,0 +16,6,95,1,1,629463,1,6735.316,5.262149,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,86.7,10.57626,0,81.5,1000,263.18,1,1,1.609438,5.572838,0,4.564348,6.959049,1,0,0,81.5,8.815269,1.609438,,0 +16,6,95,1,2,629463,1,6735.316,6.262149,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,86.7,10.57626,0,81.5,1000,263.18,1,1,1.609438,5.572838,0,4.564348,6.959049,1,0,0,81.5,8.815269,1.609438,,0 +16,6,95,1,3,629463,1,6735.316,7.262149,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,86.7,10.57626,0,81.5,1000,263.18,1,1,1.609438,5.572838,0,4.564348,6.959049,1,0,0,81.5,8.815269,1.609438,,0 +16,6,95,1,1,629464,1,6735.316,22.75428,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,79.8,0,0,69.3,1000,263.18,0,0,1.609438,5.572838,0,4.564348,6.959049,1,0,0,69.3,8.815269,1.609438,,0 +16,6,95,1,2,629464,1,6735.316,23.75428,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,79.8,0,0,69.3,1000,263.18,0,0,1.609438,5.572838,0,4.564348,6.959049,1,0,0,69.3,8.815269,1.609438,,0 +16,6,95,1,3,629464,1,6735.316,24.75428,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,79.8,0,0,69.3,1000,263.18,0,0,1.609438,5.572838,0,4.564348,6.959049,1,0,0,69.3,8.815269,1.609438,,0 +16,6,95,1,1,629465,1,6735.316,3.370294,1,11,1,10.42101,0,0,0,0,10.42101,0,0,0,0,0,5,77.40034,10.57626,0,66.7,1000,263.18,1,1,1.609438,5.572838,0,4.564348,6.959049,0,0,0,66.7,8.815269,1.609438,2.343824,1 +16,6,95,1,2,629465,1,6735.316,4.370294,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,66.7,1000,263.18,1,1,1.609438,5.572838,0,4.564348,6.959049,0,0,0,66.7,8.815269,1.609438,,0 +16,6,95,1,3,629465,1,6735.316,5.370294,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,66.7,1000,263.18,1,1,1.609438,5.572838,0,4.564348,6.959049,0,0,0,66.7,8.815269,1.609438,,0 +11,6,0,1,1,629468,1,7187.404,16.0575,1,5,1,5.07829,0,0,0,0,5.07829,0,0,0,1,0,13,12.2,17.2,1,52.3,0,106.56,1,1,2.564949,4.668708,0,0,0,1,0,0,52.3,8.880224,2.564949,1.624975,1 +11,6,0,1,2,629468,1,7187.404,17.0575,1,5,1,17.84358,8.10934,0,0,0,25.95292,0,0,0,3,0,13,12.2,17.2,1,52.3,0,106.56,1,1,2.564949,4.668708,0,0,0,1,0,0,52.3,8.880224,2.564949,3.256284,1 +11,6,0,1,3,629468,1,7187.404,18.0575,1,5,1,21.79931,6.647059,0,0,0,28.44637,0,0,0,2,0,14,12.2,17.2,1,52.3,0,106.56,0,0,2.639057,4.668708,0,0,0,1,0,0,52.3,8.880224,2.639057,3.348021,1 +11,6,0,1,1,629469,1,7187.404,5.702943,0,5,1,5.07829,1.904359,0,0,0,6.982649,0,0,0,1,0,13,100,10.57626,0,100,0,106.56,1,0,2.564949,4.668708,0,0,0,1,0,0,100,8.880224,2.564949,1.943428,1 +11,6,0,1,2,629469,1,7187.404,6.702943,0,5,1,5.31511,1.905847,0,0,0,7.220957,0,0,0,1,0,13,100,10.57626,0,100,0,106.56,1,0,2.564949,4.668708,0,0,0,1,0,0,100,8.880224,2.564949,1.976987,1 +11,6,0,1,3,629469,1,7187.404,7.702943,0,5,1,25.60554,0,0,0,0,25.60554,0,0,0,2,0,14,100,10.57626,0,100,0,106.56,1,0,2.639057,4.668708,0,0,0,1,0,0,100,8.880224,2.639057,3.242809,1 +11,6,0,1,1,629470,1,7187.404,10.12731,0,5,1,0,0,0,0,0,0,0,0,0,0,0,13,100,10.57626,0,100,0,106.56,1,0,2.564949,4.668708,0,0,0,1,0,0,100,8.880224,2.564949,,0 +11,6,0,1,2,629470,1,7187.404,11.12731,0,5,1,0,1.602126,0,0,0,1.602126,0,0,0,0,0,13,100,10.57626,0,100,0,106.56,1,0,2.564949,4.668708,0,0,0,1,0,0,100,8.880224,2.564949,.4713315,1 +11,6,0,1,3,629470,1,7187.404,12.12731,0,5,1,0,0,0,0,0,0,0,0,0,0,0,14,100,10.57626,0,100,0,106.56,1,0,2.639057,4.668708,0,0,0,1,0,0,100,8.880224,2.639057,,0 +11,6,0,1,1,629471,1,7187.404,14.81177,0,5,1,0,1.37537,0,0,0,1.37537,0,0,0,0,0,13,54.3,13.8,0,50,0,106.56,1,0,2.564949,4.668708,0,0,0,1,0,0,50,8.880224,2.564949,.318723,1 +11,6,0,1,2,629471,1,7187.404,15.81177,0,5,1,9.111617,2.403189,0,0,0,11.51481,0,0,0,1,0,13,54.3,13.8,0,50,0,106.56,1,0,2.564949,4.668708,0,0,0,1,0,0,50,8.880224,2.564949,2.443634,1 +11,6,0,1,3,629471,1,7187.404,16.81177,0,5,1,7.958477,0,0,0,0,7.958477,0,0,0,1,0,14,54.3,13.8,0,50,0,106.56,1,0,2.639057,4.668708,0,0,0,1,0,0,50,8.880224,2.639057,2.074238,1 +11,6,0,1,1,629472,1,7187.404,13.33333,1,5,1,0,0,0,0,0,0,0,0,0,0,0,13,58.3,10.57626,0,74.1,0,106.56,1,1,2.564949,4.668708,0,0,0,1,0,0,74.1,8.880224,2.564949,,0 +11,6,0,1,2,629472,1,7187.404,14.33333,1,5,1,0,0,0,0,0,0,0,0,0,0,0,13,58.3,10.57626,0,74.1,0,106.56,1,1,2.564949,4.668708,0,0,0,1,0,0,74.1,8.880224,2.564949,,0 +11,6,0,1,3,629472,1,7187.404,15.33333,1,5,1,0,0,0,0,0,0,0,0,0,0,0,14,58.3,10.57626,0,74.1,0,106.56,1,1,2.639057,4.668708,0,0,0,1,0,0,74.1,8.880224,2.639057,,0 +11,6,0,1,1,629473,1,7187.404,5.702943,0,5,1,0,0,0,0,0,0,0,0,0,0,0,13,100,10.57626,0,100,0,106.56,1,0,2.564949,4.668708,0,0,0,1,0,0,100,8.880224,2.564949,,0 +11,6,0,1,2,629473,1,7187.404,6.702943,0,5,1,22.01974,6.11997,0,0,0,28.13971,0,0,0,3,0,13,100,10.57626,0,100,0,106.56,1,0,2.564949,4.668708,0,0,0,1,0,0,100,8.880224,2.564949,3.337182,1 +11,6,0,1,3,629473,1,7187.404,7.702943,0,5,1,0,0,0,0,0,0,0,0,0,0,0,14,100,10.57626,0,100,0,106.56,1,0,2.639057,4.668708,0,0,0,1,0,0,100,8.880224,2.639057,,0 +11,6,0,1,1,629474,1,7187.404,37.72758,1,5,1,23.69869,15.18832,0,0,0,38.88701,0,0,0,2,0,13,92,13.8,0,58,0,106.56,0,0,2.564949,4.668708,0,0,0,1,0,0,58,8.880224,2.564949,3.66066,1 +11,6,0,1,2,629474,1,7187.404,38.72758,1,5,1,24.29765,9.510251,0,0,392.1792,425.9871,1,0,0,3,0,13,92,13.8,0,58,0,106.56,0,0,2.564949,4.668708,0,0,0,1,0,0,58,8.880224,2.564949,6.054409,1 +11,6,0,1,3,629474,1,7187.404,39.72758,1,5,1,38.40831,19.79931,0,0,0,58.20761,0,0,0,4,0,14,92,13.8,0,58,0,106.56,0,0,2.639057,4.668708,0,0,0,1,0,0,58,8.880224,2.639057,4.064016,1 +11,6,0,1,1,629475,1,7187.404,7.975359,0,5,1,6.347863,0,0,0,0,6.347863,0,0,0,1,0,13,100,10.57626,0,100,0,106.56,1,0,2.564949,4.668708,0,0,0,1,0,0,100,8.880224,2.564949,1.848118,1 +11,6,0,1,2,629475,1,7187.404,8.975359,0,5,1,4.555809,0,0,0,0,4.555809,0,0,0,1,0,13,100,10.57626,0,100,0,106.56,1,0,2.564949,4.668708,0,0,0,1,0,0,100,8.880224,2.564949,1.516403,1 +11,6,0,1,3,629475,1,7187.404,9.975359,0,5,1,79.23875,0,0,0,0,79.23875,0,0,0,1,0,14,100,10.57626,0,100,0,106.56,1,0,2.639057,4.668708,0,0,0,1,0,0,100,8.880224,2.639057,4.372466,1 +11,6,0,1,1,629476,1,7187.404,3.389459,1,5,1,0,0,0,0,0,0,0,0,0,0,0,13,77.40034,10.57626,0,85.2,0,106.56,1,1,2.564949,4.668708,0,0,0,1,0,0,85.2,8.880224,2.564949,,0 +11,6,0,1,2,629476,1,7187.404,4.389459,1,5,1,6.833713,0,0,0,0,6.833713,0,0,0,1,0,13,77.40034,10.57626,0,85.2,0,106.56,1,1,2.564949,4.668708,0,0,0,1,0,0,85.2,8.880224,2.564949,1.921868,1 +11,6,0,1,3,629476,1,7187.404,5.389459,1,5,1,0,0,0,0,0,0,0,0,0,0,0,14,77.40034,10.57626,0,85.2,0,106.56,1,1,2.639057,4.668708,0,0,0,1,0,0,85.2,8.880224,2.639057,,0 +11,6,0,1,1,629477,1,7187.404,43.18959,0,4,1,7.194244,1.904359,0,0,0,9.098603,0,0,0,1,0,13,88.8,3.4,0,76.1,0,106.56,0,0,2.564949,4.668708,0,0,0,1,0,0,76.1,8.880224,2.564949,2.208121,1 +11,6,0,1,2,629477,1,7187.404,44.18959,0,4,1,6.454062,0,0,0,0,6.454062,0,0,0,1,0,13,88.8,3.4,0,76.1,0,106.56,0,0,2.564949,4.668708,0,0,0,1,0,0,76.1,8.880224,2.564949,1.86471,1 +11,6,0,1,3,629477,1,7187.404,45.18959,0,4,1,0,3.401384,0,0,0,3.401384,0,0,0,0,0,14,88.8,3.4,0,76.1,0,106.56,0,0,2.639057,4.668708,0,0,0,1,0,0,76.1,8.880224,2.639057,1.224182,1 +16,6,95,1,1,629526,1,6143.369,5.741273,0,11,1,8.507018,0,0,0,188.0051,196.5121,1,0,0,1,0,5,75,10.57626,.1442925,81.5,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,81.5,8.723291,1.609438,5.280724,1 +16,6,95,1,2,629526,1,6143.369,6.741273,0,11,1,0,0,0,0,0,0,0,0,0,0,0,5,75,10.57626,.1442925,81.5,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,81.5,8.723291,1.609438,,0 +16,6,95,1,3,629526,1,6143.369,7.741273,0,11,1,0,0,0,0,0,0,0,0,0,0,0,5,75,10.57626,.1442925,81.5,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,81.5,8.723291,1.609438,,0 +16,6,95,1,1,629527,1,6143.369,45.10062,0,12,1,10.63377,3.29647,0,0,0,13.93024,0,0,0,1,0,5,85.6,0,0,80.7,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,80.7,8.723291,1.609438,2.634062,1 +16,6,95,1,2,629527,1,6143.369,46.10062,0,12,1,20.99237,0,0,0,0,20.99237,0,0,0,1,0,5,85.6,0,0,80.7,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,80.7,8.723291,1.609438,3.044159,1 +16,6,95,1,3,629527,1,6143.369,47.10062,0,12,1,33.10104,0,0,0,0,33.10104,0,0,0,2,0,5,85.6,0,0,80.7,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,80.7,8.723291,1.609438,3.499565,1 +16,6,95,1,1,629528,1,6143.369,13.6783,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,50,10.57626,0,66.7,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,66.7,8.723291,1.609438,,0 +16,6,95,1,2,629528,1,6143.369,14.6783,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,50,10.57626,0,66.7,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,66.7,8.723291,1.609438,,0 +16,6,95,1,3,629528,1,6143.369,15.6783,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,50,10.57626,0,66.7,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,66.7,8.723291,1.609438,,0 +16,6,95,1,1,629529,1,6143.369,4.517454,1,11,1,14.46193,1.701404,0,0,0,16.16333,0,0,0,3,0,5,77.40034,10.57626,0,77.8,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,1,0,0,77.8,8.723291,1.609438,2.782745,1 +16,6,95,1,2,629529,1,6143.369,5.517454,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,77.8,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,1,0,0,77.8,8.723291,1.609438,,0 +16,6,95,1,3,629529,1,6143.369,6.517454,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,77.8,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,1,0,0,77.8,8.723291,1.609438,,0 +16,6,95,1,1,629530,1,6143.369,31.436,1,11,1,86.77158,19.77882,0,0,0,106.5504,0,0,0,4,0,5,84.6,6.9,0,71.4,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,71.4,8.723291,1.609438,4.668618,1 +16,6,95,1,2,629530,1,6143.369,32.436,1,11,1,31.29771,0,0,0,0,31.29771,0,0,0,1,0,5,84.6,6.9,0,71.4,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,71.4,8.723291,1.609438,3.443545,1 +16,6,95,1,3,629530,1,6143.369,33.436,1,11,1,85.36585,0,0,0,0,85.36585,0,0,0,3,0,5,84.6,6.9,0,71.4,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,71.4,8.723291,1.609438,4.446946,1 +7,6,25,1,1,629570,0,4720.821,25.39357,1,16,1,18.95262,56.13466,0,0,0,75.08728,0,0,0,2,1,1,60.6,6.9,0,55.7,750,750,0,0,0,6.620073,0,3.258096,8.006368,1,0,0,55.7,8.459949,0,4.318651,1 +7,6,25,1,2,629570,0,4720.821,26.39357,1,16,1,72.61411,110.5302,0,0,0,183.1443,0,0,0,4,0,1,60.6,6.9,0,55.7,750,750,0,0,0,6.620073,0,3.258096,8.006368,1,0,0,55.7,8.459949,0,5.210274,1 +7,6,25,1,3,629570,0,4720.821,27.39357,1,16,1,137.3254,51.50656,29.82226,0,0,218.6543,0,0,0,8,2,1,60.6,6.9,0,55.7,750,750,0,0,0,6.620073,0,3.258096,8.006368,1,0,0,55.7,8.459949,0,5.387492,1 +7,6,25,1,4,629570,0,4720.821,28.39357,1,16,1,26.1959,7.881549,0,0,0,34.07745,0,0,0,3,0,1,60.6,6.9,0,55.7,750,750,0,0,0,6.620073,0,3.258096,8.006368,1,0,0,55.7,8.459949,0,3.528636,1 +7,6,25,1,5,629570,0,4720.821,29.39357,1,16,1,134.7751,12.76125,21.10727,0,0,168.6436,0,0,0,5,0,1,60.6,6.9,0,55.7,750,750,0,0,0,6.620073,0,3.258096,8.006368,1,0,0,55.7,8.459949,0,5.127788,1 +13,6,0,0,1,629576,1,9202.933,36.12594,0,8,1,0,0,0,0,0,0,0,0,0,0,0,3,74.5,6.9,0,71.6,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,71.6,9.127386,1.098612,,0 +13,6,0,0,2,629576,1,9202.933,37.12594,0,8,1,4.589261,18.81597,0,0,0,23.40523,0,0,0,1,0,3,74.5,6.9,0,71.6,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,71.6,9.127386,1.098612,3.15296,1 +13,6,0,0,3,629576,1,9202.933,38.12594,0,8,1,0,0,0,0,0,0,0,0,0,0,0,3,74.5,6.9,0,71.6,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,71.6,9.127386,1.098612,,0 +13,6,0,0,4,629576,1,9202.933,39.12594,0,8,1,74.80166,4.325652,0,0,0,79.12731,0,0,0,2,0,3,74.5,6.9,0,71.6,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,71.6,9.127386,1.098612,4.371058,1 +13,6,0,0,5,629576,1,9202.933,40.12594,0,8,1,0,0,0,0,0,0,0,0,0,0,0,3,74.5,6.9,0,71.6,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,71.6,9.127386,1.098612,,0 +13,6,0,0,1,629577,1,9202.933,12.90897,0,9,1,0,0,0,0,0,0,0,0,0,0,0,3,81.7,10.57626,0,55.6,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,55.6,9.127386,1.098612,,0 +13,6,0,0,2,629577,1,9202.933,13.90897,0,9,1,0,0,0,0,0,0,0,0,0,0,0,3,81.7,10.57626,0,55.6,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,55.6,9.127386,1.098612,,0 +13,6,0,0,3,629577,1,9202.933,14.90897,0,9,1,0,0,0,0,0,0,0,0,0,0,0,3,81.7,10.57626,0,55.6,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,55.6,9.127386,1.098612,,0 +13,6,0,0,4,629577,1,9202.933,15.90897,0,9,1,0,0,0,0,0,0,0,0,0,0,0,3,81.7,10.57626,0,55.6,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,55.6,9.127386,1.098612,,0 +13,6,0,0,5,629577,1,9202.933,16.90897,0,9,1,0,0,0,0,0,0,0,0,0,0,0,3,81.7,10.57626,0,55.6,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,55.6,9.127386,1.098612,,0 +13,6,0,0,1,629578,1,9202.933,34.94045,1,9,1,0,0,0,0,0,0,0,0,0,0,0,3,76.6,0,0,69.3,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,69.3,9.127386,1.098612,,0 +13,6,0,0,2,629578,1,9202.933,35.94045,1,9,1,0,0,0,0,0,0,0,0,0,0,0,3,76.6,0,0,69.3,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,69.3,9.127386,1.098612,,0 +13,6,0,0,3,629578,1,9202.933,36.94045,1,9,1,0,0,0,0,0,0,0,0,0,0,0,3,76.6,0,0,69.3,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,69.3,9.127386,1.098612,,0 +13,6,0,0,4,629578,1,9202.933,37.94045,1,9,1,0,0,0,0,0,0,0,0,0,0,0,3,76.6,0,0,69.3,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,69.3,9.127386,1.098612,,0 +13,6,0,0,5,629578,1,9202.933,38.94045,1,9,1,0,0,0,0,0,0,0,0,0,0,0,3,76.6,0,0,69.3,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,69.3,9.127386,1.098612,,0 +17,6,25,1,1,629584,0,11835.64,27.0527,0,12,1,14.72444,0,25.6626,0,0,40.38704,0,0,0,1,0,2,70.7,10.3,1,65.9,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,65.9,9.378955,.6931472,3.698509,1 +17,6,25,1,2,629584,0,11835.64,28.0527,0,12,1,9.066868,3.241405,0,0,0,12.30827,0,0,0,2,0,2,70.7,10.3,1,65.9,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,65.9,9.378955,.6931472,2.510272,1 +17,6,25,1,3,629584,0,11835.64,29.0527,0,12,1,296.741,1.725557,62.43568,0,0,360.9022,0,0,0,2,25,2,70.7,10.3,1,65.9,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,65.9,9.378955,.6931472,5.888607,1 +14,6,95,0,1,629614,0,8616.422,27.24435,1,16,1,293.3199,150.4018,3.139126,0,255.6504,702.5113,1,0,0,10,1,2,76.1,17.2,0,53.4,677.5,667.5,0,0,.6931472,6.50354,0,4.564348,6.569703,1,0,0,53.4,9.061542,.6931472,6.554661,1 +14,6,95,0,2,629614,0,8616.422,28.24435,1,16,1,286.0454,63.64859,0,0,1958.739,2308.433,3,0,0,10,0,2,76.1,17.2,0,53.4,677.5,667.5,0,0,.6931472,6.50354,0,4.564348,6.569703,1,0,0,53.4,9.061542,.6931472,7.744324,1 +14,6,95,0,3,629614,0,8616.422,29.24435,1,16,1,74.43641,12.91365,0,0,0,87.35007,0,0,0,5,0,3,76.1,17.2,0,53.4,677.5,667.5,0,0,1.098612,6.50354,0,4.564348,6.569703,1,0,0,53.4,9.061542,1.098612,4.469924,1 +14,6,95,0,4,629614,0,8616.422,30.24435,1,16,1,71.37405,18.33969,0,0,0,89.71374,0,0,0,4,0,3,76.1,17.2,0,53.4,677.5,667.5,0,0,1.098612,6.50354,0,4.564348,6.569703,1,0,0,53.4,9.061542,1.098612,4.496624,1 +14,6,95,0,5,629614,0,8616.422,31.24435,1,16,1,31.01045,5.195122,0,0,0,36.20557,0,0,0,2,0,3,76.1,17.2,0,53.4,677.5,667.5,0,0,1.098612,6.50354,0,4.564348,6.569703,1,0,0,53.4,9.061542,1.098612,3.589213,1 +14,6,95,0,1,629615,0,8616.422,30.23682,0,16,1,0,0,0,0,0,0,0,0,0,0,0,2,89.9,6.9,0,76.1,677.5,667.5,0,0,.6931472,6.50354,0,4.564348,6.569703,0,0,0,76.1,9.061542,.6931472,,0 +14,6,95,0,2,629615,0,8616.422,31.23682,0,16,1,17.15345,0,0,0,0,17.15345,0,0,0,0,0,2,89.9,6.9,0,76.1,677.5,667.5,0,0,.6931472,6.50354,0,4.564348,6.569703,0,0,0,76.1,9.061542,.6931472,2.8422,1 +14,6,95,0,3,629615,0,8616.422,32.23682,0,16,1,0,0,0,0,0,0,0,0,0,0,0,3,89.9,6.9,0,76.1,677.5,667.5,0,0,1.098612,6.50354,0,4.564348,6.569703,0,0,0,76.1,9.061542,1.098612,,0 +14,6,95,0,4,629615,0,8616.422,33.23682,0,16,1,7.633588,6.561069,0,0,0,14.19466,0,0,0,1,0,3,89.9,6.9,0,76.1,677.5,667.5,0,0,1.098612,6.50354,0,4.564348,6.569703,0,0,0,76.1,9.061542,1.098612,2.652866,1 +14,6,95,0,5,629615,0,8616.422,34.23682,0,16,1,0,0,0,0,0,0,0,0,0,0,0,3,89.9,6.9,0,76.1,677.5,667.5,0,0,1.098612,6.50354,0,4.564348,6.569703,0,0,0,76.1,9.061542,1.098612,,0 +13,6,0,0,1,629616,0,10029.33,26.45311,0,13,1,0,0,0,0,0,0,0,0,0,0,0,2,100,0,0,100,300,349.96,0,0,.6931472,5.857819,1,4.564348,5.755076,0,0,0,100,9.213368,.6931472,,0 +13,6,0,0,2,629616,0,10029.33,27.45311,0,13,1,0,0,0,0,0,0,0,0,0,0,0,2,100,0,0,100,300,349.96,0,0,.6931472,5.857819,1,4.564348,5.755076,0,0,0,100,9.213368,.6931472,,0 +13,6,0,0,3,629616,0,10029.33,28.45311,0,13,1,30.84619,0,0,0,0,30.84619,0,0,0,0,0,3,100,0,0,100,300,349.96,0,0,1.098612,5.857819,1,4.564348,5.755076,0,0,0,100,9.213368,1.098612,3.429013,1 +13,6,0,0,4,629616,0,10029.33,29.45311,0,13,1,37.50938,0,0,0,0,37.50938,0,0,0,1,0,4,100,0,0,100,300,349.96,0,0,1.386294,5.857819,1,4.564348,5.755076,0,0,0,100,9.213368,1.386294,3.624591,1 +13,6,0,0,5,629616,0,10029.33,30.45311,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,100,0,0,100,300,349.96,0,0,1.386294,5.857819,1,4.564348,5.755076,0,0,0,100,9.213368,1.386294,,0 +13,6,0,0,1,629617,0,10029.33,24.2601,1,16,1,0,0,0,0,0,0,0,0,0,0,0,2,80.9,13.8,0,84.1,300,349.96,0,0,.6931472,5.857819,1,4.564348,5.755076,0,0,0,84.1,9.213368,.6931472,,0 +13,6,0,0,2,629617,0,10029.33,25.2601,1,16,1,21.42206,12.76208,0,0,507.2926,541.4767,1,0,0,2,0,2,80.9,13.8,0,84.1,300,349.96,0,0,.6931472,5.857819,1,4.564348,5.755076,0,0,0,84.1,9.213368,.6931472,6.2943,1 +13,6,0,0,3,629617,0,10029.33,26.2601,1,16,1,32.51355,12.84702,0,0,563.1513,608.5119,1,0,0,1,0,3,80.9,13.8,0,84.1,300,349.96,0,0,1.098612,5.857819,1,4.564348,5.755076,0,0,0,84.1,9.213368,1.098612,6.411016,1 +13,6,0,0,4,629617,0,10029.33,27.2601,1,16,1,9.752439,0,0,0,0,9.752439,0,0,0,1,0,4,80.9,13.8,0,84.1,300,349.96,0,0,1.386294,5.857819,1,4.564348,5.755076,0,0,0,84.1,9.213368,1.386294,2.277517,1 +13,6,0,0,5,629617,0,10029.33,28.2601,1,16,1,0,0,0,0,0,0,0,0,0,0,0,4,80.9,13.8,0,84.1,300,349.96,0,0,1.386294,5.857819,1,4.564348,5.755076,0,0,0,84.1,9.213368,1.386294,,0 +13,6,0,1,1,629650,1,3534.05,23.55373,1,12,1,22.29701,20.39125,0,0,0,42.68826,0,0,0,0,0,4,69.7,10.3,1,36.4,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,36.4,8.170483,1.386294,3.753924,1 +13,6,0,1,2,629650,1,3534.05,24.55373,1,12,1,43.06762,16.02569,0,0,498.3,557.3932,1,0,0,4,0,4,69.7,10.3,1,36.4,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,36.4,8.170483,1.386294,6.323271,1 +13,6,0,1,3,629650,1,3534.05,25.55373,1,12,1,125.9005,55.11835,36.92281,0,1187.307,1405.249,2,0,0,7,1,4,69.7,10.3,1,36.4,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,36.4,8.170483,1.386294,7.24797,1 +13,6,0,1,1,629651,1,3534.05,25.85353,0,12,1,115.2713,2.734539,0,0,0,118.0059,0,0,0,2,0,4,85.6,10.3,0,69.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,69.3,8.170483,1.386294,4.770734,1 +13,6,0,1,2,629651,1,3534.05,26.85353,0,12,1,111.4469,19.81111,0,0,0,131.258,0,0,0,3,0,4,85.6,10.3,0,69.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,69.3,8.170483,1.386294,4.877165,1 +13,6,0,1,3,629651,1,3534.05,27.85353,0,12,1,26.75815,0,35.33448,0,0,62.09262,0,0,0,1,0,4,85.6,10.3,0,69.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,1,0,69.3,8.170483,1.386294,4.128627,1 +13,6,0,1,1,629652,1,3534.05,4.692676,0,12,1,31.55238,2.103492,0,0,0,33.65587,0,0,0,0,0,4,77.40034,10.57626,0,88.9,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,88.9,8.170483,1.386294,3.516187,1 +13,6,0,1,2,629652,1,3534.05,5.692676,0,12,1,16.24481,0,0,0,0,16.24481,0,0,0,1,0,4,77.40034,10.57626,0,88.9,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,88.9,8.170483,1.386294,2.787773,1 +13,6,0,1,3,629652,1,3534.05,6.692676,0,12,1,28.47341,0,0,0,0,28.47341,0,0,0,2,0,4,77.40034,10.57626,0,88.9,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,88.9,8.170483,1.386294,3.348971,1 +15,6,95,1,1,629653,1,10112.13,28.44901,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,62.3,13.8,0,48.9,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,48.9,9.22159,.6931472,,0 +15,6,95,1,2,629653,1,10112.13,29.44901,0,12,1,35.68717,5.068337,0,0,0,40.7555,0,0,0,2,0,3,62.3,13.8,0,48.9,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,1,0,0,48.9,9.22159,1.098612,3.707591,1 +15,6,95,1,3,629653,1,10112.13,30.44901,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,62.3,13.8,0,48.9,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,1,0,0,48.9,9.22159,1.098612,,0 +15,6,95,1,1,629654,1,10112.13,24.59411,1,12,1,41.04951,21.4854,0,0,497.2493,559.7842,1,0,0,2,0,2,46.3,20.7,0,47.7,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,47.7,9.22159,.6931472,6.327551,1 +15,6,95,1,2,629654,1,10112.13,25.59411,1,12,1,14.42673,0,0,0,0,14.42673,0,0,0,1,0,3,46.3,20.7,0,47.7,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,1,0,0,47.7,9.22159,1.098612,2.669083,1 +15,6,95,1,3,629654,1,10112.13,26.59411,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,46.3,20.7,0,47.7,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,1,0,0,47.7,9.22159,1.098612,,0 +13,6,0,1,1,629667,1,0,4.717317,1,3,1,0,2.052476,0,0,0,2.052476,0,0,0,0,0,6,77.40034,10.57626,1,63,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,1,63,0,1.791759,.7190467,1 +13,6,0,1,2,629667,1,0,5.717317,1,3,1,7.593014,0,0,0,0,7.593014,0,0,0,2,0,6,77.40034,10.57626,1,63,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,1,63,0,1.791759,2.027229,1 +13,6,0,1,3,629667,1,0,6.717317,1,3,1,0,0,0,0,0,0,0,0,0,0,0,6,77.40034,10.57626,1,63,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,1,63,0,1.791759,,0 +13,6,0,1,1,629668,1,0,16.55031,1,3,1,0,0,0,0,0,0,0,0,0,0,0,6,60.6,6.9,1,47.7,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,1,0,0,47.7,0,1.791759,,0 +13,6,0,1,2,629668,1,0,17.55031,1,3,1,0,0,0,0,0,0,0,0,0,0,0,6,60.6,6.9,1,47.7,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,1,0,0,47.7,0,1.791759,,0 +13,6,0,1,3,629668,1,0,18.55031,1,3,1,63.3218,6.903114,33.78201,0,0,104.0069,0,0,0,3,1,6,60.6,6.9,1,47.7,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,47.7,0,1.791759,4.644457,1 +13,6,0,1,1,629669,1,0,18.74607,1,8,1,0,0,0,0,0,0,0,0,0,0,0,6,75.5,13.8,0,53.4,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,0,1,53.4,0,1.791759,,0 +13,6,0,1,2,629669,1,0,19.74607,1,8,1,0,0,0,0,0,0,0,0,0,0,0,6,75.5,13.8,0,53.4,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,0,1,53.4,0,1.791759,,0 +13,6,0,1,3,629669,1,0,20.74607,1,8,1,14.53287,0,0,0,0,14.53287,0,0,0,0,0,6,75.5,13.8,0,53.4,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,0,1,53.4,0,1.791759,2.676413,1 +13,6,0,1,1,629670,1,0,25.89186,1,10,1,0,0,0,0,0,0,0,0,0,0,0,6,63.8,6.9,0,47.7,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,1,0,47.7,0,1.791759,,0 +13,6,0,1,2,629670,1,0,26.89186,1,10,1,0,0,0,0,0,0,0,0,0,0,0,6,63.8,6.9,0,47.7,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,1,0,47.7,0,1.791759,,0 +13,6,0,1,3,629670,1,0,27.89186,1,10,1,0,0,0,0,0,0,0,0,0,0,0,6,63.8,6.9,0,47.7,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,1,0,47.7,0,1.791759,,0 +13,6,0,1,1,629671,1,0,47.07734,1,3,1,13.54211,10.57977,35.97122,0,0,60.0931,0,0,0,1,1,6,63.8,6.9,0,47.7,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,0,1,47.7,0,1.791759,4.095895,1 +13,6,0,1,2,629671,1,0,48.07734,1,3,1,2.657555,4.536826,0,0,0,7.194381,0,0,0,1,0,6,63.8,6.9,0,47.7,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,0,1,47.7,0,1.791759,1.9733,1 +13,6,0,1,3,629671,1,0,49.07734,1,3,1,0,0,0,0,0,0,0,0,0,0,0,6,63.8,6.9,0,47.7,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,0,1,47.7,0,1.791759,,0 +13,6,0,1,1,629672,1,0,12.44627,0,3,1,31.31612,0,0,0,0,31.31612,0,0,0,1,0,6,78.3,10.57626,0,59.3,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,1,59.3,0,1.791759,3.444133,1 +13,6,0,1,2,629672,1,0,13.44627,0,3,1,0,0,0,0,0,0,0,0,0,0,0,6,78.3,10.57626,0,59.3,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,1,59.3,0,1.791759,,0 +13,6,0,1,3,629672,1,0,14.44627,0,3,1,0,0,0,0,0,0,0,0,0,0,0,6,78.3,10.57626,0,59.3,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,1,59.3,0,1.791759,,0 +13,6,0,0,1,629689,1,6735.316,60.1013,0,7,1,0,0,0,0,0,0,0,0,0,0,0,1,72.4,0,0,45.5,150,274.64,0,0,0,5.615461,1,4.564348,5.061929,0,1,0,45.5,8.815269,0,,0 +13,6,0,0,2,629689,1,6735.316,61.1013,0,7,1,27.57839,0,22.66717,0,660.3702,710.6158,1,0,0,0,1,1,72.4,0,0,45.5,150,274.64,0,0,0,5.615461,1,4.564348,5.061929,0,1,0,45.5,8.815269,0,6.566132,1 +6,6,25,1,1,629719,1,129.5443,12.15058,0,12,1,0,0,0,0,0,0,0,0,0,0,0,10,73.3,10.57626,0,77.8,443.6,443.6,1,0,2.302585,6.094923,0,3.258096,7.481217,0,1,0,77.8,4.871713,2.302585,,0 +6,6,25,1,2,629719,1,129.5443,13.15058,0,12,1,0,0,0,0,0,0,0,0,0,0,0,10,73.3,10.57626,0,77.8,443.6,443.6,1,0,2.302585,6.094923,0,3.258096,7.481217,0,1,0,77.8,4.871713,2.302585,,0 +6,6,25,1,3,629719,1,129.5443,14.15058,0,12,1,0,0,0,0,0,0,0,0,0,0,0,10,73.3,10.57626,0,77.8,443.6,443.6,1,0,2.302585,6.094923,0,3.258096,7.481217,0,1,0,77.8,4.871713,2.302585,,0 +6,6,25,1,1,629720,1,129.5443,9.697468,0,12,1,9.35772,3.615483,0,0,0,12.9732,0,0,0,2,0,10,86.7,10.57626,0,59.3,443.6,443.6,1,0,2.302585,6.094923,0,3.258096,7.481217,0,0,0,59.3,4.871713,2.302585,2.562886,1 +6,6,25,1,2,629720,1,129.5443,10.69747,0,12,1,0,0,0,0,0,0,0,0,0,0,0,10,86.7,10.57626,0,59.3,443.6,443.6,1,0,2.302585,6.094923,0,3.258096,7.481217,0,0,0,59.3,4.871713,2.302585,,0 +6,6,25,1,3,629720,1,129.5443,11.69747,0,12,1,0,0,0,0,0,0,0,0,0,0,0,10,86.7,10.57626,0,59.3,443.6,443.6,1,0,2.302585,6.094923,0,3.258096,7.481217,0,0,0,59.3,4.871713,2.302585,,0 +6,6,25,1,1,629721,1,129.5443,5.308692,1,12,1,10.20842,2.126755,0,0,0,12.33518,0,0,0,0,0,10,76.7,10.57626,0,70.4,443.6,443.6,1,1,2.302585,6.094923,0,3.258096,7.481217,1,0,0,70.4,4.871713,2.302585,2.512455,1 +6,6,25,1,2,629721,1,129.5443,6.308692,1,12,1,0,0,0,0,0,0,0,0,0,0,0,10,76.7,10.57626,0,70.4,443.6,443.6,1,1,2.302585,6.094923,0,3.258096,7.481217,1,0,0,70.4,4.871713,2.302585,,0 +6,6,25,1,3,629721,1,129.5443,7.308692,1,12,1,85.01742,0,0,0,0,85.01742,0,0,0,2,0,10,76.7,10.57626,0,70.4,443.6,443.6,1,1,2.302585,6.094923,0,3.258096,7.481217,1,0,0,70.4,4.871713,2.302585,4.442856,1 +6,6,25,1,1,629722,1,129.5443,33.61807,1,12,1,29.34921,2.33943,0,0,0,31.68864,0,0,0,3,0,10,69.1,10.3,0,45.2,443.6,443.6,0,0,2.302585,6.094923,0,3.258096,7.481217,0,1,0,45.2,4.871713,2.302585,3.455958,1 +6,6,25,1,2,629722,1,129.5443,34.61807,1,12,1,20.61069,6.48855,0,0,0,27.09924,0,0,0,4,0,10,69.1,10.3,0,45.2,443.6,443.6,0,0,2.302585,6.094923,0,3.258096,7.481217,0,1,0,45.2,4.871713,2.302585,3.299505,1 +6,6,25,1,3,629722,1,129.5443,35.61807,1,12,1,185.3659,63.10104,0,0,397.9094,646.3763,1,0,0,12,0,10,69.1,10.3,0,45.2,443.6,443.6,0,0,2.302585,6.094923,0,3.258096,7.481217,0,1,0,45.2,4.871713,2.302585,6.471382,1 +6,6,25,1,1,629723,1,129.5443,4.024641,0,12,1,0,0,0,0,0,0,0,0,0,0,0,10,77.40034,10.57626,0,70.4,443.6,443.6,1,0,2.302585,6.094923,0,3.258096,7.481217,1,0,0,70.4,4.871713,2.302585,,0 +6,6,25,1,2,629723,1,129.5443,5.024641,0,12,1,0,0,0,0,0,0,0,0,0,0,0,10,77.40034,10.57626,0,70.4,443.6,443.6,1,0,2.302585,6.094923,0,3.258096,7.481217,1,0,0,70.4,4.871713,2.302585,,0 +6,6,25,1,3,629723,1,129.5443,6.024641,0,12,1,5.923345,0,0,0,0,5.923345,0,0,0,1,0,10,77.40034,10.57626,0,70.4,443.6,443.6,1,0,2.302585,6.094923,0,3.258096,7.481217,1,0,0,70.4,4.871713,2.302585,1.778901,1 +6,6,25,1,1,629724,1,129.5443,2.718686,0,12,1,0,0,0,0,0,0,0,0,0,0,0,10,77.40034,10.57626,0,81.5,443.6,443.6,1,0,2.302585,6.094923,0,3.258096,7.481217,1,0,0,81.5,4.871713,2.302585,,0 +6,6,25,1,2,629724,1,129.5443,3.718686,0,12,1,9.160305,0,0,0,0,9.160305,0,0,0,2,0,10,77.40034,10.57626,0,81.5,443.6,443.6,1,0,2.302585,6.094923,0,3.258096,7.481217,1,0,0,81.5,4.871713,2.302585,2.21488,1 +6,6,25,1,3,629724,1,129.5443,4.718686,0,12,1,13.58885,6.41115,0,0,262.3693,282.3693,1,0,0,3,0,10,77.40034,10.57626,0,81.5,443.6,443.6,1,0,2.302585,6.094923,0,3.258096,7.481217,1,0,0,81.5,4.871713,2.302585,5.643216,1 +6,6,25,1,1,629725,1,129.5443,8.251883,1,12,1,0,0,0,0,0,0,0,0,0,0,0,10,81.7,10.57626,0,85.2,443.6,443.6,1,1,2.302585,6.094923,0,3.258096,7.481217,0,1,0,85.2,4.871713,2.302585,,0 +6,6,25,1,2,629725,1,129.5443,9.251883,1,12,1,0,0,0,0,0,0,0,0,0,0,0,10,81.7,10.57626,0,85.2,443.6,443.6,1,1,2.302585,6.094923,0,3.258096,7.481217,0,1,0,85.2,4.871713,2.302585,,0 +6,6,25,1,3,629725,1,129.5443,10.25188,1,12,1,42.85714,3.815331,0,0,0,46.67247,0,0,0,1,0,10,81.7,10.57626,0,85.2,443.6,443.6,1,1,2.302585,6.094923,0,3.258096,7.481217,0,1,0,85.2,4.871713,2.302585,3.843155,1 +6,6,25,1,1,629726,1,129.5443,10.94319,1,12,1,0,0,0,0,0,0,0,0,0,0,0,10,80,10.57626,0,51.9,443.6,443.6,1,1,2.302585,6.094923,0,3.258096,7.481217,0,1,0,51.9,4.871713,2.302585,,0 +6,6,25,1,2,629726,1,129.5443,11.94319,1,12,1,24.80916,0,0,0,0,24.80916,0,0,0,0,0,10,80,10.57626,0,51.9,443.6,443.6,1,1,2.302585,6.094923,0,3.258096,7.481217,0,1,0,51.9,4.871713,2.302585,3.211213,1 +6,6,25,1,3,629726,1,129.5443,12.94319,1,12,1,0,0,0,0,0,0,0,0,0,0,0,10,80,10.57626,0,51.9,443.6,443.6,1,1,2.302585,6.094923,0,3.258096,7.481217,0,1,0,51.9,4.871713,2.302585,,0 +6,6,25,1,1,629727,1,129.5443,6.557153,0,12,1,0,0,0,0,0,0,0,0,0,0,0,10,88.3,10.57626,0,74.1,443.6,443.6,1,0,2.302585,6.094923,0,3.258096,7.481217,1,0,0,74.1,4.871713,2.302585,,0 +6,6,25,1,2,629727,1,129.5443,7.557153,0,12,1,7.633588,5.305344,0,0,0,12.93893,0,0,0,2,0,10,88.3,10.57626,0,74.1,443.6,443.6,1,0,2.302585,6.094923,0,3.258096,7.481217,1,0,0,74.1,4.871713,2.302585,2.560241,1 +6,6,25,1,3,629727,1,129.5443,8.557153,0,12,1,0,0,0,0,0,0,0,0,0,0,0,10,88.3,10.57626,0,74.1,443.6,443.6,1,0,2.302585,6.094923,0,3.258096,7.481217,1,0,0,74.1,4.871713,2.302585,,0 +6,6,25,1,1,629728,1,129.5443,35.62765,0,4,1,39.55764,20.62952,0,0,246.7035,306.8907,1,0,0,4,0,10,77.1,10.3,1,39.8,443.6,443.6,0,0,2.302585,6.094923,0,3.258096,7.481217,1,0,0,39.8,4.871713,2.302585,5.726491,1 +6,6,25,1,2,629728,1,129.5443,36.62765,0,4,1,78.05344,18.96947,2.480916,0,603.4351,702.9389,1,0,0,3,0,10,77.1,10.3,1,39.8,443.6,443.6,0,0,2.302585,6.094923,0,3.258096,7.481217,1,0,0,39.8,4.871713,2.302585,6.55527,1 +6,6,25,1,3,629728,1,129.5443,37.62765,0,4,1,31.35888,17.91289,7.236934,0,508.0139,564.5226,1,0,0,3,0,10,77.1,10.3,1,39.8,443.6,443.6,0,0,2.302585,6.094923,0,3.258096,7.481217,1,0,0,39.8,4.871713,2.302585,6.33598,1 +11,6,0,1,1,629739,.5112414,1825.397,18.78439,0,8,1,0,3.702146,0,0,0,3.702146,0,0,0,0,0,1,86.7,0,0,68.2,0,398.16,0,0,0,5.986854,0,0,0,1,0,0,68.2,7.5101,0,1.308913,1 +11,6,0,1,2,629739,.5112414,1825.397,19.78439,0,8,1,30.97847,5.156781,0,0,0,36.13525,0,0,0,1,0,1,86.7,0,0,68.2,0,398.16,0,0,0,5.986854,0,0,0,1,0,0,68.2,7.5101,0,3.587269,1 +11,6,0,1,3,629739,.5112414,1825.397,20.78439,0,8,1,0,0,0,0,0,0,0,0,0,0,0,1,86.7,0,0,68.2,0,398.16,0,0,0,5.986854,0,0,0,1,0,0,68.2,7.5101,0,,0 +11,6,0,0,1,629740,1,3662.058,54.31896,0,5,1,243.1637,0,0,0,0,243.1637,0,0,0,12,0,4,53.2,6.9,1,30.7,0,312,0,0,1.386294,5.743003,0,0,0,0,1,0,30.7,8.206054,1.386294,5.493735,1 +11,6,0,0,2,629740,1,3662.058,55.31896,0,5,1,187.0042,40.49868,0,0,0,227.5028,0,0,0,5,0,4,53.2,6.9,1,30.7,0,312,0,0,1.386294,5.743003,0,0,0,0,1,0,30.7,8.206054,1.386294,5.427163,1 +11,6,0,0,3,629740,1,3662.058,56.31896,0,5,1,195.1973,63.8422,0,0,0,259.0395,0,0,0,7,0,4,53.2,6.9,1,30.7,0,312,0,0,1.386294,5.743003,0,0,0,0,1,0,30.7,8.206054,1.386294,5.556981,1 +11,6,0,1,1,629741,1,3662.058,13.8809,0,10,1,27.34539,0,0,0,0,27.34539,0,0,0,1,0,4,95,10.57626,0,88.9,0,312,1,0,1.386294,5.743003,0,0,0,1,0,0,88.9,8.206054,1.386294,3.308548,1 +11,6,0,1,2,629741,1,3662.058,14.8809,0,10,1,72.53494,3.683415,0,0,0,76.21836,0,0,0,3,0,4,95,10.57626,0,88.9,0,312,1,0,1.386294,5.743003,0,0,0,1,0,0,88.9,8.206054,1.386294,4.333602,1 +11,6,0,1,3,629741,1,3662.058,15.8809,0,10,1,17.15266,0,0,0,0,17.15266,0,0,0,1,0,4,95,10.57626,0,88.9,0,312,1,0,1.386294,5.743003,0,0,0,1,0,0,88.9,8.206054,1.386294,2.842153,1 +11,6,0,1,1,629742,.5112414,1156.682,21.4976,1,12,1,15.14514,17.2907,0,0,0,32.43584,0,0,0,1,0,2,86.2,6.9,0,77.3,0,468,0,0,.6931472,6.148468,0,0,0,1,0,0,77.3,7.054175,.6931472,3.479264,1 +11,6,0,1,2,629742,.5112414,1156.682,22.4976,1,12,1,9.066868,4.287873,0,0,0,13.35474,0,0,0,0,0,2,86.2,6.9,0,77.3,0,468,0,0,.6931472,6.148468,0,0,0,1,0,0,77.3,7.054175,.6931472,2.591872,1 +11,6,0,1,3,629742,.5112414,1156.682,23.4976,1,12,1,82.67581,14.8542,33.49228,0,492.9674,623.9897,1,0,0,10,1,2,86.2,6.9,0,77.3,0,468,0,0,.6931472,6.148468,0,0,0,1,0,0,77.3,7.054175,.6931472,6.436134,1 +11,6,0,1,1,629743,1,3662.058,15.12936,0,10,1,0,0,0,0,0,0,0,0,0,0,0,4,95.7,0,0,76.1,0,312,1,0,1.386294,5.743003,0,0,0,1,0,0,76.1,8.206054,1.386294,,0 +11,6,0,1,2,629743,1,3662.058,16.12936,0,10,1,71.40159,0,0,0,0,71.40159,0,0,0,2,0,4,95.7,0,0,76.1,0,312,1,0,1.386294,5.743003,0,0,0,1,0,0,76.1,8.206054,1.386294,4.26832,1 +11,6,0,1,3,629743,1,3662.058,17.12936,0,10,1,45.28302,1.560892,0,0,0,46.84391,0,0,0,3,0,4,95.7,0,0,76.1,0,312,1,0,1.386294,5.743003,0,0,0,1,0,0,76.1,8.206054,1.386294,3.846821,1 +11,6,0,1,1,629744,1,3662.058,54.37098,1,10,1,0,0,0,0,0,0,0,0,0,0,0,4,73.4,6.9,1,42,0,312,0,0,1.386294,5.743003,0,0,0,0,1,0,42,8.206054,1.386294,,0 +11,6,0,1,2,629744,1,3662.058,55.37098,1,10,1,0,0,0,0,0,0,0,0,0,0,0,4,73.4,6.9,1,42,0,312,0,0,1.386294,5.743003,0,0,0,0,1,0,42,8.206054,1.386294,,0 +11,6,0,1,3,629744,1,3662.058,56.37098,1,10,1,34.30532,15.31732,35.20755,0,0,84.83018,0,0,0,1,1,4,73.4,6.9,1,42,0,312,0,0,1.386294,5.743003,0,0,0,0,1,0,42,8.206054,1.386294,4.440651,1 +13,6,0,0,1,629747,0,3086.021,43.83299,1,10,1,113.8383,72.92425,36.39441,0,0,223.157,0,0,0,9,0,2,78.7,20.7,1,47.7,300,814,0,0,.6931472,6.701961,1,4.564348,5.755076,0,0,1,47.7,8.034962,.6931472,5.407876,1 +13,6,0,0,2,629747,0,3086.021,44.83299,1,10,1,122.2475,46.13136,20.88079,0,2043.28,2232.54,1,0,0,14,0,2,78.7,20.7,1,47.7,300,814,0,0,.6931472,6.701961,1,4.564348,5.755076,0,0,1,47.7,8.034962,.6931472,7.710895,1 +13,6,0,0,3,629747,0,3086.021,45.83299,1,10,1,24.56747,6.851211,0,0,0,31.41869,0,0,0,2,0,2,78.7,20.7,1,47.7,300,814,0,0,.6931472,6.701961,1,4.564348,5.755076,0,0,1,47.7,8.034962,.6931472,3.447403,1 +13,6,0,0,1,629748,0,3086.021,43.20876,0,9,1,106.6441,0,0,0,0,106.6441,0,0,0,1,10,2,83.5,6.9,0,69.3,300,814,0,0,.6931472,6.701961,1,4.564348,5.755076,0,1,0,69.3,8.034962,.6931472,4.669497,1 +13,6,0,0,2,629748,0,3086.021,44.20876,0,9,1,17.46393,0,0,0,0,17.46393,0,0,0,1,0,2,83.5,6.9,0,69.3,300,814,0,0,.6931472,6.701961,1,4.564348,5.755076,0,1,0,69.3,8.034962,.6931472,2.860138,1 +13,6,0,0,3,629748,0,3086.021,45.20876,0,9,1,130.4498,18.68512,0,0,0,149.1349,0,0,0,2,4,2,83.5,6.9,0,69.3,300,814,0,0,.6931472,6.701961,1,4.564348,5.755076,0,1,0,69.3,8.034962,.6931472,5.004852,1 +17,6,25,0,1,629796,0,8273.9,3.132101,0,8,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,0,55.6,650,650,1,0,1.386294,6.476973,0,3.258096,7.863267,0,1,0,55.6,9.020982,1.386294,,0 +17,6,25,0,2,629796,0,8273.9,4.132102,0,8,1,48.18724,0,0,0,0,48.18724,0,0,0,0,0,4,77.40034,10.57626,0,55.6,650,650,1,0,1.386294,6.476973,0,3.258096,7.863267,0,1,0,55.6,9.020982,1.386294,3.875094,1 +17,6,25,0,3,629796,0,8273.9,5.132102,0,8,1,0,0,0,0,218.7632,218.7632,1,0,0,0,0,4,77.40034,10.57626,0,55.6,650,650,1,0,1.386294,6.476973,0,3.258096,7.863267,0,1,0,55.6,9.020982,1.386294,5.38799,1 +17,6,25,0,4,629796,0,8273.9,6.132102,0,8,1,3.777862,0,0,0,0,3.777862,0,0,0,1,0,4,77.40034,10.57626,0,55.6,650,650,1,0,1.386294,6.476973,0,3.258096,7.863267,0,1,0,55.6,9.020982,1.386294,1.329158,1 +17,6,25,0,5,629796,0,8273.9,7.132102,0,8,1,40.48027,0,0,0,0,40.48027,0,0,0,4,0,5,77.40034,10.57626,0,55.6,650,650,1,0,1.609438,6.476973,0,3.258096,7.863267,0,1,0,55.6,9.020982,1.609438,3.700815,1 +17,6,25,0,1,629797,0,8273.9,22.52977,0,7,1,4.955401,1.73439,0,0,0,6.689792,0,0,0,1,0,4,84,3.4,0,59.1,650,650,0,0,1.386294,6.476973,0,3.258096,7.863267,0,0,0,59.1,9.020982,1.386294,1.900583,1 +17,6,25,0,2,629797,0,8273.9,23.52977,0,7,1,0,0,0,0,0,0,0,0,0,0,0,4,84,3.4,0,59.1,650,650,0,0,1.386294,6.476973,0,3.258096,7.863267,0,0,0,59.1,9.020982,1.386294,,0 +17,6,25,0,3,629797,0,8273.9,24.52977,0,7,1,0,0,0,0,0,0,0,0,0,0,0,4,84,3.4,0,59.1,650,650,0,0,1.386294,6.476973,0,3.258096,7.863267,0,0,0,59.1,9.020982,1.386294,,0 +17,6,25,0,4,629797,0,8273.9,25.52977,0,7,1,3.777862,0,0,0,0,3.777862,0,0,0,1,0,4,84,3.4,0,59.1,650,650,0,0,1.386294,6.476973,0,3.258096,7.863267,0,0,0,59.1,9.020982,1.386294,1.329158,1 +17,6,25,0,5,629797,0,8273.9,26.52977,0,7,1,20.58319,0,0,0,491.9383,512.5214,2,1,0,2,0,5,84,3.4,0,59.1,650,650,0,0,1.609438,6.476973,0,3.258096,7.863267,0,0,0,59.1,9.020982,1.609438,6.239343,1 +17,6,25,0,1,629798,0,8273.9,21.40452,1,8,1,23.29039,14.0337,0,0,0,37.32408,0,0,0,2,0,4,78.7,10.3,0,60.2,650,650,0,0,1.386294,6.476973,0,3.258096,7.863267,0,0,0,60.2,9.020982,1.386294,3.619639,1 +17,6,25,0,2,629798,0,8273.9,22.40452,1,8,1,9.178522,0,0,0,0,9.178522,0,0,0,0,0,4,78.7,10.3,0,60.2,650,650,0,0,1.386294,6.476973,0,3.258096,7.863267,0,0,0,60.2,9.020982,1.386294,2.216866,1 +17,6,25,0,3,629798,0,8273.9,23.40452,1,8,1,48.80101,9.255363,0,0,0,58.05637,0,0,0,1,0,4,78.7,10.3,0,60.2,650,650,0,0,1.386294,6.476973,0,3.258096,7.863267,0,0,0,60.2,9.020982,1.386294,4.061415,1 +17,6,25,0,4,629798,0,8273.9,24.40452,1,8,1,52.89006,0,0,0,1145.825,1198.716,4,0,0,3,0,4,78.7,10.3,0,60.2,650,650,0,0,1.386294,6.476973,0,3.258096,7.863267,0,0,0,60.2,9.020982,1.386294,7.089006,1 +17,6,25,0,5,629798,0,8273.9,25.40452,1,8,1,105.3173,0,0,0,0,105.3173,0,0,0,8,0,5,78.7,10.3,0,60.2,650,650,0,0,1.609438,6.476973,0,3.258096,7.863267,0,0,0,60.2,9.020982,1.609438,4.656978,1 +15,6,95,1,1,629811,0,8913.467,58.05065,1,7,1,0,0,0,0,0,0,0,0,0,0,0,1,84,20.7,0,90.9,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,1,0,0,90.9,9.09543,0,,0 +15,6,95,1,2,629811,0,8913.467,59.05065,1,7,1,6.833713,0,0,0,0,6.833713,0,0,0,1,0,1,84,20.7,0,90.9,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,1,0,0,90.9,9.09543,0,1.921868,1 +15,6,95,1,3,629811,0,8913.467,60.05065,1,7,1,61.93772,36.93426,0,0,0,98.87197,0,0,0,2,0,1,84,20.7,0,90.9,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,1,0,0,90.9,9.09543,0,4.593826,1 +13,6,0,1,1,629860,0,8777.777,28.93908,1,8,1,31.13168,4.838031,0,0,0,35.96971,0,0,0,1,0,4,75.5,20.7,0,60.2,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,60.2,9.080092,1.386294,3.582677,1 +13,6,0,1,2,629860,0,8777.777,29.93908,1,8,1,460.8991,13.50586,27.20061,0,0,501.6056,0,0,0,22,26,4,75.5,20.7,0,60.2,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,60.2,9.080092,1.386294,6.217814,1 +13,6,0,1,3,629860,0,8777.777,30.93908,1,8,1,389.7084,5.022298,0,0,0,394.7307,0,0,0,1,37,4,75.5,20.7,0,60.2,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,60.2,9.080092,1.386294,5.978204,1 +13,6,0,1,1,629861,0,8777.777,31.45517,0,3,1,28.60749,3.050063,0,0,514.5141,546.1716,2,0,0,3,0,4,73.4,6.9,0,71.6,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,71.6,9.080092,1.386294,6.302933,1 +13,6,0,1,2,629861,0,8777.777,32.45517,0,3,1,13.22252,0,0,0,0,13.22252,0,0,0,1,0,4,73.4,6.9,0,71.6,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,71.6,9.080092,1.386294,2.581921,1 +13,6,0,1,3,629861,0,8777.777,33.45517,0,3,1,62.09262,0,0,0,0,62.09262,0,0,0,0,0,4,73.4,6.9,0,71.6,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,71.6,9.080092,1.386294,4.128627,1 +13,6,0,1,1,629862,0,8777.777,7.60575,0,8,1,18.09003,6.41565,0,0,0,24.50568,0,0,0,2,0,4,83.3,10.57626,0,48.1,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,48.1,9.080092,1.386294,3.198905,1 +13,6,0,1,2,629862,0,8777.777,8.605749,0,8,1,26.44503,19.0782,0,0,0,45.52324,0,0,0,3,0,4,83.3,10.57626,0,48.1,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,48.1,9.080092,1.386294,3.818223,1 +13,6,0,1,3,629862,0,8777.777,9.605749,0,8,1,0,0,0,0,0,0,0,0,0,0,0,4,83.3,10.57626,0,48.1,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,48.1,9.080092,1.386294,,0 +13,6,0,1,1,629863,0,8777.777,12.68994,1,8,1,0,0,0,0,0,0,0,0,0,0,0,4,88.3,10.57626,0,92.6,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,92.6,9.080092,1.386294,,0 +13,6,0,1,2,629863,0,8777.777,13.68994,1,8,1,13.6003,9.539101,0,0,0,23.1394,0,0,0,2,0,4,88.3,10.57626,0,92.6,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,92.6,9.080092,1.386294,3.141537,1 +13,6,0,1,3,629863,0,8777.777,14.68994,1,8,1,5.145798,1.533448,0,0,0,6.679245,0,0,0,1,0,4,88.3,10.57626,0,92.6,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,92.6,9.080092,1.386294,1.899005,1 +13,6,0,1,1,629864,0,817.2043,51.67419,1,7,1,68.36182,61.62151,44.18508,0,0,174.1684,0,0,0,6,1,2,19.7,37.9,1,27.3,300,0,0,0,.6931472,0,1,4.564348,5.755076,0,0,1,27.3,6.707112,.6931472,5.160023,1 +13,6,0,1,2,629864,0,817.2043,52.67419,1,7,1,25.50638,105.6339,1.777944,0,0,132.9182,0,0,0,3,0,2,19.7,37.9,1,27.3,300,0,0,0,.6931472,0,1,4.564348,5.755076,0,0,1,27.3,6.707112,.6931472,4.889734,1 +13,6,0,1,3,629864,0,817.2043,53.67419,1,7,1,63.59946,98.53857,343.9107,0,0,506.0487,0,0,0,7,1,2,19.7,37.9,1,27.3,300,0,0,0,.6931472,0,1,4.564348,5.755076,0,0,1,27.3,6.707112,.6931472,6.226633,1 +13,6,0,1,1,629865,0,817.2043,20.92266,1,9,1,82.11755,25.00625,0,0,0,107.1238,0,0,0,2,0,2,33.5,20.7,1,19.3,300,0,0,0,.6931472,0,1,4.564348,5.755076,1,0,0,19.3,6.707112,.6931472,4.673985,1 +13,6,0,1,2,629865,0,817.2043,21.92266,1,9,1,95.64891,33.30458,0,0,0,128.9535,0,0,0,5,0,2,33.5,20.7,1,19.3,300,0,0,0,.6931472,0,1,4.564348,5.755076,1,0,0,19.3,6.707112,.6931472,4.859452,1 +13,6,0,1,3,629865,0,817.2043,22.92266,1,9,1,5.751015,12.60149,0,0,367.0501,385.4026,1,0,0,1,0,2,33.5,20.7,1,19.3,300,0,0,0,.6931472,0,1,4.564348,5.755076,1,0,0,19.3,6.707112,.6931472,5.954288,1 +13,6,0,0,1,629869,1,4897.593,5.366188,0,10,1,0,0,0,0,0,0,0,0,0,0,0,6,100,10.57626,0,66.7,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,66.7,8.496703,1.791759,,0 +13,6,0,0,2,629869,1,4897.593,6.366188,0,10,1,0,0,0,0,0,0,0,0,0,0,0,6,100,10.57626,0,66.7,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,66.7,8.496703,1.791759,,0 +13,6,0,0,3,629869,1,4897.593,7.366188,0,10,1,7.266436,0,0,0,0,7.266436,0,0,0,0,0,6,100,10.57626,0,66.7,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,66.7,8.496703,1.791759,1.983266,1 +13,6,0,0,1,629870,1,4897.593,26.64476,1,10,1,71.09606,4.443504,0,0,0,75.53957,0,0,0,1,0,6,81.9,3.4,0,59.1,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,1,0,59.1,8.496703,1.791759,4.324656,1 +13,6,0,0,2,629870,1,4897.593,27.64476,1,10,1,49.3546,6.985573,0,0,0,56.34017,0,0,0,0,0,6,81.9,3.4,0,59.1,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,1,0,59.1,8.496703,1.791759,4.031408,1 +13,6,0,0,3,629870,1,4897.593,28.64476,1,10,1,0,3.972318,0,0,0,3.972318,0,0,0,0,0,6,81.9,3.4,0,59.1,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,1,0,59.1,8.496703,1.791759,1.37935,1 +13,6,0,0,1,629871,1,4897.593,8.561259,0,10,1,0,0,0,0,0,0,0,0,0,0,0,6,100,10.57626,0,66.7,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,66.7,8.496703,1.791759,,0 +13,6,0,0,2,629871,1,4897.593,9.561259,0,10,1,0,0,0,0,0,0,0,0,0,0,0,6,100,10.57626,0,66.7,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,66.7,8.496703,1.791759,,0 +13,6,0,0,3,629871,1,4897.593,10.56126,0,10,1,0,0,0,0,0,0,0,0,0,0,0,6,100,10.57626,0,66.7,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,66.7,8.496703,1.791759,,0 +13,6,0,0,1,629872,1,4897.593,27.55921,0,6,1,77.02074,9.881507,0,0,0,86.90224,0,0,0,5,0,6,93.1,17.2,0,58,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,58,8.496703,1.791759,4.464784,1 +13,6,0,0,2,629872,1,4897.593,28.55921,0,6,1,21.64009,3.246014,0,0,0,24.8861,0,0,0,0,0,6,93.1,17.2,0,58,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,58,8.496703,1.791759,3.21431,1 +13,6,0,0,3,629872,1,4897.593,29.55921,0,6,1,10.38062,3.107266,0,0,0,13.48789,0,0,0,3,0,6,93.1,17.2,0,58,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,58,8.496703,1.791759,2.601792,1 +13,6,0,0,1,629873,1,4897.593,4.413415,1,10,1,5.07829,0,0,0,0,5.07829,0,0,0,1,0,6,77.40034,10.57626,0,66.7,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,1,0,66.7,8.496703,1.791759,1.624975,1 +13,6,0,0,2,629873,1,4897.593,5.413415,1,10,1,0,0,0,0,0,0,0,0,0,0,0,6,77.40034,10.57626,0,66.7,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,1,0,66.7,8.496703,1.791759,,0 +13,6,0,0,3,629873,1,4897.593,6.413415,1,10,1,0,0,0,0,0,0,0,0,0,0,0,6,77.40034,10.57626,0,66.7,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,1,0,66.7,8.496703,1.791759,,0 +13,6,0,0,1,629874,1,4897.593,6.310746,1,10,1,0,0,0,0,0,0,0,0,0,0,0,6,100,10.57626,0,66.7,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,66.7,8.496703,1.791759,,0 +13,6,0,0,2,629874,1,4897.593,7.310746,1,10,1,0,0,0,0,0,0,0,0,0,0,0,6,100,10.57626,0,66.7,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,66.7,8.496703,1.791759,,0 +13,6,0,0,3,629874,1,4897.593,8.310746,1,10,1,0,0,0,0,0,0,0,0,0,0,0,6,100,10.57626,0,66.7,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,66.7,8.496703,1.791759,,0 +5,6,25,1,1,629885,0,7676.246,32.51745,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,86.7,3.4,0,90.9,737.5,737.5,0,0,1.386294,6.603266,0,3.258096,7.989561,0,0,0,90.9,8.946016,1.386294,,0 +5,6,25,1,2,629885,0,7676.246,33.51745,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,86.7,3.4,0,90.9,737.5,737.5,0,0,1.386294,6.603266,0,3.258096,7.989561,0,0,0,90.9,8.946016,1.386294,,0 +5,6,25,1,3,629885,0,7676.246,34.51745,0,12,1,10.42101,9.170487,0,0,0,19.5915,0,0,0,1,0,4,86.7,3.4,0,90.9,737.5,737.5,0,0,1.386294,6.603266,0,3.258096,7.989561,0,0,0,90.9,8.946016,1.386294,2.975096,1 +5,6,25,1,4,629885,0,7676.246,35.51745,0,12,1,32.25806,5.157539,0,0,0,37.4156,0,0,0,2,0,4,86.7,3.4,0,90.9,737.5,737.5,0,0,1.386294,6.603266,0,3.258096,7.989561,0,0,0,90.9,8.946016,1.386294,3.622088,1 +5,6,25,1,5,629885,0,7676.246,36.51745,0,12,1,0,12.31394,0,0,0,12.31394,0,0,0,0,0,4,86.7,3.4,0,90.9,737.5,737.5,0,0,1.386294,6.603266,0,3.258096,7.989561,0,0,0,90.9,8.946016,1.386294,2.510732,1 +5,6,25,1,1,629886,0,7676.246,30.4668,1,8,1,13.75921,20.95332,0,0,0,34.71253,0,0,0,1,0,4,81.9,0,0,86.4,737.5,737.5,0,0,1.386294,6.603266,0,3.258096,7.989561,1,0,0,86.4,8.946016,1.386294,3.547101,1 +5,6,25,1,2,629886,0,7676.246,31.4668,1,8,1,82.04193,33.04467,0,0,0,115.0866,0,0,0,3,0,4,81.9,0,0,86.4,737.5,737.5,0,0,1.386294,6.603266,0,3.258096,7.989561,1,0,0,86.4,8.946016,1.386294,4.745685,1 +5,6,25,1,3,629886,0,7676.246,32.4668,1,8,1,32.51355,0,0,0,0,32.51355,0,0,0,3,0,4,81.9,0,0,86.4,737.5,737.5,0,0,1.386294,6.603266,0,3.258096,7.989561,1,0,0,86.4,8.946016,1.386294,3.481657,1 +5,6,25,1,4,629886,0,7676.246,33.4668,1,8,1,93.77345,16.44786,0,0,0,110.2213,0,0,0,5,0,4,81.9,0,0,86.4,737.5,737.5,0,0,1.386294,6.603266,0,3.258096,7.989561,1,0,0,86.4,8.946016,1.386294,4.70249,1 +5,6,25,1,5,629886,0,7676.246,34.4668,1,8,1,12.17862,26.1502,0,0,550.4059,588.7348,1,0,0,1,0,4,81.9,0,0,86.4,737.5,737.5,0,0,1.386294,6.603266,0,3.258096,7.989561,1,0,0,86.4,8.946016,1.386294,6.377976,1 +5,6,25,1,1,629887,0,7676.246,9.300479,1,8,1,4.914005,6.633907,0,0,0,11.54791,0,0,0,1,0,4,81.7,10.57626,0,77.8,737.5,737.5,1,1,1.386294,6.603266,0,3.258096,7.989561,0,0,0,77.8,8.946016,1.386294,2.446505,1 +5,6,25,1,2,629887,0,7676.246,10.30048,1,8,1,0,0,0,0,0,0,0,0,0,0,0,4,81.7,10.57626,0,77.8,737.5,737.5,1,1,1.386294,6.603266,0,3.258096,7.989561,0,0,0,77.8,8.946016,1.386294,,0 +5,6,25,1,3,629887,0,7676.246,11.30048,1,8,1,14.58941,0,20.84202,0,0,35.43143,0,0,0,1,0,4,81.7,10.57626,0,77.8,737.5,737.5,1,1,1.386294,6.603266,0,3.258096,7.989561,0,0,0,77.8,8.946016,1.386294,3.567599,1 +5,6,25,1,4,629887,0,7676.246,12.30048,1,8,1,5.626407,0,0,0,0,5.626407,0,0,0,1,0,4,81.7,10.57626,0,77.8,737.5,737.5,1,1,1.386294,6.603266,0,3.258096,7.989561,0,0,0,77.8,8.946016,1.386294,1.727471,1 +5,6,25,1,5,629887,0,7676.246,13.30048,1,8,1,13.5318,0,27.74019,0,0,41.27199,0,0,0,1,0,4,81.7,10.57626,0,77.8,737.5,737.5,1,1,1.386294,6.603266,0,3.258096,7.989561,0,0,0,77.8,8.946016,1.386294,3.720184,1 +5,6,25,1,1,629888,0,7676.246,12.33949,0,8,1,0,4.216216,0,0,0,4.216216,0,0,0,0,0,4,81.7,10.57626,0,81.5,737.5,737.5,1,0,1.386294,6.603266,0,3.258096,7.989561,0,0,0,81.5,8.946016,1.386294,1.438938,1 +5,6,25,1,2,629888,0,7676.246,13.33949,0,8,1,24.15679,3.19052,0,0,0,27.34731,0,0,0,1,0,4,81.7,10.57626,0,81.5,737.5,737.5,1,0,1.386294,6.603266,0,3.258096,7.989561,0,0,0,81.5,8.946016,1.386294,3.308618,1 +5,6,25,1,3,629888,0,7676.246,14.33949,0,8,1,19.5915,0,0,0,0,19.5915,0,0,0,2,0,4,81.7,10.57626,0,81.5,737.5,737.5,1,0,1.386294,6.603266,0,3.258096,7.989561,0,0,0,81.5,8.946016,1.386294,2.975096,1 +5,6,25,1,4,629888,0,7676.246,15.33949,0,8,1,25.88147,14.53488,0,0,0,40.41636,0,0,0,3,0,4,81.7,10.57626,0,81.5,737.5,737.5,1,0,1.386294,6.603266,0,3.258096,7.989561,0,0,0,81.5,8.946016,1.386294,3.699234,1 +5,6,25,1,5,629888,0,7676.246,16.33949,0,8,1,12.85521,12.24628,0,0,0,25.10149,0,0,0,2,0,4,81.7,10.57626,0,81.5,737.5,737.5,1,0,1.386294,6.603266,0,3.258096,7.989561,0,0,0,81.5,8.946016,1.386294,3.222927,1 +16,6,95,1,1,629889,1,8413.723,24.49555,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,84.6,0,0,72.7,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,72.7,9.037738,1.386294,,0 +16,6,95,1,2,629889,1,8413.723,25.49555,0,12,1,9.82244,5.383453,0,0,0,15.20589,0,0,0,1,0,4,84.6,0,0,72.7,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,72.7,9.037738,1.386294,2.721683,1 +16,6,95,1,3,629889,1,8413.723,26.49555,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,84.6,0,0,72.7,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,1,0,0,72.7,9.037738,1.386294,,0 +16,6,95,1,1,629890,1,962.6216,47.06913,0,6,1,0,6.625999,0,0,0,6.625999,0,0,0,0,0,7,83.5,3.4,0,76.1,1000,1000,0,0,1.94591,6.907755,0,4.564348,6.959049,1,0,0,76.1,6.870698,1.94591,1.891001,1 +16,6,95,1,2,629890,1,962.6216,48.06913,0,6,1,0,0,0,0,0,0,0,0,0,0,0,7,83.5,3.4,0,76.1,1000,1000,0,0,1.94591,6.907755,0,4.564348,6.959049,1,0,0,76.1,6.870698,1.94591,,0 +16,6,95,1,3,629890,1,962.6216,49.06913,0,6,1,0,0,0,0,0,0,0,0,0,0,0,7,83.5,3.4,0,76.1,1000,1000,0,0,1.94591,6.907755,0,4.564348,6.959049,1,0,0,76.1,6.870698,1.94591,,0 +16,6,95,1,1,629891,1,962.6216,11.60301,0,7,1,0,0,0,0,0,0,0,0,0,0,0,7,93.3,10.57626,0,96.3,1000,1000,1,0,1.94591,6.907755,0,4.564348,6.959049,1,0,0,96.3,6.870698,1.94591,,0 +16,6,95,1,2,629891,1,962.6216,12.60301,0,7,1,30.60068,0,0,0,0,30.60068,0,0,0,0,0,7,93.3,10.57626,0,96.3,1000,1000,1,0,1.94591,6.907755,0,4.564348,6.959049,1,0,0,96.3,6.870698,1.94591,3.421022,1 +16,6,95,1,3,629891,1,962.6216,13.60301,0,7,1,0,0,0,0,0,0,0,0,0,0,0,7,93.3,10.57626,0,96.3,1000,1000,1,0,1.94591,6.907755,0,4.564348,6.959049,1,0,0,96.3,6.870698,1.94591,,0 +16,6,95,1,1,629893,1,962.6216,40.06845,1,7,1,10.51746,16.40724,0,0,382.4148,409.3395,1,0,0,1,0,7,74.5,6.9,0,87.5,1000,1000,0,0,1.94591,6.907755,0,4.564348,6.959049,1,0,0,87.5,6.870698,1.94591,6.014545,1 +16,6,95,1,2,629893,1,962.6216,41.06845,1,7,1,26.06725,0,37.02304,0,0,63.09029,0,0,0,0,0,7,74.5,6.9,0,87.5,1000,1000,0,0,1.94591,6.907755,0,4.564348,6.959049,1,0,0,87.5,6.870698,1.94591,4.144567,1 +16,6,95,1,3,629893,1,962.6216,42.06845,1,7,1,38.76501,0,0,0,0,38.76501,0,0,0,0,0,7,74.5,6.9,0,87.5,1000,1000,0,0,1.94591,6.907755,0,4.564348,6.959049,1,0,0,87.5,6.870698,1.94591,3.657518,1 +16,6,95,1,1,629894,1,962.6216,15.03354,0,7,1,0,0,0,0,0,0,0,0,0,0,0,7,63.8,10.3,0,38.6,1000,1000,1,0,1.94591,6.907755,0,4.564348,6.959049,1,0,0,38.6,6.870698,1.94591,,0 +16,6,95,1,2,629894,1,962.6216,16.03354,0,7,1,0,0,0,0,0,0,0,0,0,0,0,7,63.8,10.3,0,38.6,1000,1000,1,0,1.94591,6.907755,0,4.564348,6.959049,1,0,0,38.6,6.870698,1.94591,,0 +16,6,95,1,3,629894,1,962.6216,17.03354,0,7,1,0,0,0,0,0,0,0,0,0,0,0,7,63.8,10.3,0,38.6,1000,1000,1,0,1.94591,6.907755,0,4.564348,6.959049,1,0,0,38.6,6.870698,1.94591,,0 +16,6,95,1,1,629895,1,962.6216,11.60301,0,7,1,0,0,0,0,0,0,0,0,0,0,0,7,78.3,10.57626,0,85.2,1000,1000,1,0,1.94591,6.907755,0,4.564348,6.959049,1,0,0,85.2,6.870698,1.94591,,0 +16,6,95,1,2,629895,1,962.6216,12.60301,0,7,1,0,0,0,0,0,0,0,0,0,0,0,7,78.3,10.57626,0,85.2,1000,1000,1,0,1.94591,6.907755,0,4.564348,6.959049,1,0,0,85.2,6.870698,1.94591,,0 +16,6,95,1,3,629895,1,962.6216,13.60301,0,7,1,0,0,0,0,0,0,0,0,0,0,0,7,78.3,10.57626,0,85.2,1000,1000,1,0,1.94591,6.907755,0,4.564348,6.959049,1,0,0,85.2,6.870698,1.94591,,0 +16,6,95,0,1,629896,1,962.6216,4.873374,1,7,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,0,85.2,1000,1000,1,1,1.94591,6.907755,0,4.564348,6.959049,1,0,0,85.2,6.870698,1.94591,,0 +16,6,95,0,2,629896,1,962.6216,5.873374,1,7,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,0,85.2,1000,1000,1,1,1.94591,6.907755,0,4.564348,6.959049,1,0,0,85.2,6.870698,1.94591,,0 +16,6,95,0,3,629896,1,962.6216,6.873374,1,7,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,0,85.2,1000,1000,1,1,1.94591,6.907755,0,4.564348,6.959049,1,0,0,85.2,6.870698,1.94591,,0 +16,6,95,1,1,629897,.5112414,6735.316,20.88433,0,11,1,0,0,0,0,0,0,0,0,0,0,0,1,42.6,6.9,0,53.4,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,1,0,0,53.4,8.815269,0,,0 +16,6,95,1,2,629897,.5112414,6735.316,21.88433,0,11,1,13.22252,0,0,0,0,13.22252,0,0,0,0,0,1,42.6,6.9,0,53.4,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,1,0,0,53.4,8.815269,0,2.581921,1 +16,6,95,1,3,629897,.5112414,6735.316,22.88433,0,11,1,0,0,0,0,0,0,0,0,0,0,0,1,42.6,6.9,0,53.4,1000,1000,0,0,0,6.907755,0,4.564348,6.959049,1,0,0,53.4,8.815269,0,,0 +5,6,25,1,1,629903,1,0,60.27378,1,7,1,65.29137,0,0,0,0,65.29137,0,0,0,2,0,1,85.1,17.2,0,69.3,135.3,607.04,0,0,0,6.408595,0,3.258096,6.293789,0,1,0,69.3,0,0,4.17886,1 +5,6,25,1,2,629903,1,0,61.27378,1,7,1,15.26718,57.83588,32.82443,0,0,105.9275,0,0,0,1,0,1,85.1,17.2,0,69.3,135.3,607.04,0,0,0,6.408595,0,3.258096,6.293789,0,1,0,69.3,0,0,4.662755,1 +5,6,25,1,3,629903,1,0,62.27378,1,7,1,10.10453,71.74564,0,0,0,81.85017,0,0,0,2,0,1,85.1,17.2,0,69.3,135.3,607.04,0,0,0,6.408595,0,3.258096,6.293789,0,1,0,69.3,0,0,4.404891,1 +14,6,95,1,1,629909,0,3860.727,8.443532,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,90,10.57626,0,74.1,357,377.4,1,0,1.386294,5.933306,0,4.564348,5.929029,1,0,0,74.1,8.25887,1.386294,,0 +14,6,95,1,2,629909,0,3860.727,9.443532,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,90,10.57626,0,74.1,357,377.4,1,0,1.386294,5.933306,0,4.564348,5.929029,1,0,0,74.1,8.25887,1.386294,,0 +14,6,95,1,3,629909,0,3860.727,10.44353,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,90,10.57626,0,74.1,357,377.4,1,0,1.386294,5.933306,0,4.564348,5.929029,1,0,0,74.1,8.25887,1.386294,,0 +14,6,95,1,1,629910,0,3860.727,14.93498,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,85.6,3.4,0,79.8,357,377.4,1,0,1.386294,5.933306,0,4.564348,5.929029,0,0,0,79.8,8.25887,1.386294,,0 +14,6,95,1,2,629910,0,3860.727,15.93498,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,85.6,3.4,0,79.8,357,377.4,1,0,1.386294,5.933306,0,4.564348,5.929029,0,0,0,79.8,8.25887,1.386294,,0 +14,6,95,1,3,629910,0,3860.727,16.93498,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,85.6,3.4,0,79.8,357,377.4,1,0,1.386294,5.933306,0,4.564348,5.929029,0,0,0,79.8,8.25887,1.386294,,0 +14,6,95,1,1,629911,0,3860.727,41.21561,1,13,1,17.92414,0,0,0,0,17.92414,0,0,0,0,0,4,58,6.9,0,63.6,357,377.4,0,0,1.386294,5.933306,0,4.564348,5.929029,0,0,0,63.6,8.25887,1.386294,2.886148,1 +14,6,95,1,2,629911,0,3860.727,42.21561,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,58,6.9,0,63.6,357,377.4,0,0,1.386294,5.933306,0,4.564348,5.929029,0,0,0,63.6,8.25887,1.386294,,0 +14,6,95,1,3,629911,0,3860.727,43.21561,1,13,1,0,0,0,0,0,0,0,0,0,0,0,4,58,6.9,0,63.6,357,377.4,0,0,1.386294,5.933306,0,4.564348,5.929029,0,0,0,63.6,8.25887,1.386294,,0 +14,6,95,1,1,629912,0,3860.727,14.02875,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,76.7,10.57626,0,55.6,357,377.4,1,0,1.386294,5.933306,0,4.564348,5.929029,0,0,0,55.6,8.25887,1.386294,,0 +14,6,95,1,2,629912,0,3860.727,15.02875,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,76.7,10.57626,0,55.6,357,377.4,1,0,1.386294,5.933306,0,4.564348,5.929029,0,0,0,55.6,8.25887,1.386294,,0 +14,6,95,1,3,629912,0,3860.727,16.02875,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,76.7,10.57626,0,55.6,357,377.4,1,0,1.386294,5.933306,0,4.564348,5.929029,0,0,0,55.6,8.25887,1.386294,,0 +16,6,95,0,1,629920,0,2548.899,7.126626,1,12,1,21.87631,0,0,0,0,21.87631,0,0,0,3,0,7,73.3,10.57626,0,92.6,1000,1000,1,1,1.94591,6.907755,0,4.564348,6.959049,0,0,0,92.6,7.843809,1.94591,3.085404,1 +16,6,95,0,2,629920,0,2548.899,8.126626,1,12,1,0,0,0,0,0,0,0,0,0,0,0,7,73.3,10.57626,0,92.6,1000,1000,1,1,1.94591,6.907755,0,4.564348,6.959049,0,0,0,92.6,7.843809,1.94591,,0 +16,6,95,0,3,629920,0,2548.899,9.126626,1,12,1,0,0,0,0,0,0,0,0,0,0,0,7,73.3,10.57626,0,92.6,1000,1000,1,1,1.94591,6.907755,0,4.564348,6.959049,0,0,0,92.6,7.843809,1.94591,,0 +16,6,95,0,1,629921,0,2548.899,11.29637,0,12,1,75.72571,2.734539,0,0,530.5006,608.9609,2,0,0,5,0,7,78.3,10.57626,0,81.5,1000,1000,1,0,1.94591,6.907755,0,4.564348,6.959049,0,0,0,81.5,7.843809,1.94591,6.411754,1 +16,6,95,0,2,629921,0,2548.899,12.29637,0,12,1,0,0,0,0,0,0,0,0,0,0,0,7,78.3,10.57626,0,81.5,1000,1000,1,0,1.94591,6.907755,0,4.564348,6.959049,0,0,0,81.5,7.843809,1.94591,,0 +16,6,95,0,3,629921,0,2548.899,13.29637,0,12,1,0,0,0,0,0,0,0,0,0,0,0,7,78.3,10.57626,0,81.5,1000,1000,1,0,1.94591,6.907755,0,4.564348,6.959049,0,0,0,81.5,7.843809,1.94591,,0 +16,6,95,0,1,629922,0,2548.899,40.10951,0,12,1,8.413967,9.676063,0,0,0,18.09003,0,0,0,1,0,7,71.3,6.9,1,75,1000,1000,0,0,1.94591,6.907755,0,4.564348,6.959049,0,0,1,75,7.843809,1.94591,2.895361,1 +16,6,95,0,2,629922,0,2548.899,41.10951,0,12,1,0,0,0,0,0,0,0,0,0,0,0,7,71.3,6.9,1,75,1000,1000,0,0,1.94591,6.907755,0,4.564348,6.959049,0,0,1,75,7.843809,1.94591,,0 +16,6,95,0,3,629922,0,2548.899,42.10951,0,12,1,43.2247,0,39.45111,0,0,82.67581,0,0,0,1,8,7,71.3,6.9,1,75,1000,1000,0,0,1.94591,6.907755,0,4.564348,6.959049,0,0,1,75,7.843809,1.94591,4.414927,1 +16,6,95,0,1,629923,0,2548.899,9.130733,1,12,1,10.51746,0,25.2419,0,0,35.75936,0,0,0,1,0,7,86.7,10.57626,0,81.5,1000,1000,1,1,1.94591,6.907755,0,4.564348,6.959049,0,0,0,81.5,7.843809,1.94591,3.576812,1 +16,6,95,0,2,629923,0,2548.899,10.13073,1,12,1,0,0,0,0,0,0,0,0,0,0,0,7,86.7,10.57626,0,81.5,1000,1000,1,1,1.94591,6.907755,0,4.564348,6.959049,0,0,0,81.5,7.843809,1.94591,,0 +16,6,95,0,3,629923,0,2548.899,11.13073,1,12,1,10.2916,0,30.87479,0,0,41.16638,0,0,0,1,0,7,86.7,10.57626,0,81.5,1000,1000,1,1,1.94591,6.907755,0,4.564348,6.959049,0,0,0,81.5,7.843809,1.94591,3.717622,1 +16,6,95,0,1,629924,0,2548.899,17.95756,1,12,1,16.82793,0,33.65587,0,0,50.4838,0,0,0,2,0,7,71.3,17.2,0,55.7,1000,1000,1,1,1.94591,6.907755,0,4.564348,6.959049,0,0,0,55.7,7.843809,1.94591,3.921653,1 +16,6,95,0,2,629924,0,2548.899,18.95756,1,12,1,0,0,0,0,0,0,0,0,0,0,0,7,71.3,17.2,0,55.7,1000,1000,0,0,1.94591,6.907755,0,4.564348,6.959049,0,0,0,55.7,7.843809,1.94591,,0 +16,6,95,0,3,629924,0,2548.899,19.95756,1,12,1,80.61749,0,23.46484,0,0,104.0823,0,0,0,7,0,7,71.3,17.2,0,55.7,1000,1000,0,0,1.94591,6.907755,0,4.564348,6.959049,0,0,0,55.7,7.843809,1.94591,4.645182,1 +16,6,95,0,1,629925,0,2548.899,15.91239,1,12,1,10.51746,14.72444,27.34539,0,0,52.5873,0,0,0,1,0,7,55.3,3.4,0,56.8,1000,1000,1,1,1.94591,6.907755,0,4.564348,6.959049,0,0,0,56.8,7.843809,1.94591,3.962475,1 +16,6,95,0,2,629925,0,2548.899,16.91239,1,12,1,0,0,0,0,0,0,0,0,0,0,0,7,55.3,3.4,0,56.8,1000,1000,1,1,1.94591,6.907755,0,4.564348,6.959049,0,0,0,56.8,7.843809,1.94591,,0 +16,6,95,0,3,629925,0,2548.899,17.91239,1,12,1,0,5.780446,28.34648,0,0,34.12693,0,0,0,0,0,7,55.3,3.4,0,56.8,1000,1000,1,1,1.94591,6.907755,0,4.564348,6.959049,0,0,0,56.8,7.843809,1.94591,3.530087,1 +16,6,95,0,1,629926,0,2548.899,37.50034,1,12,1,198.5696,79.5162,29.44888,0,0,307.5347,0,0,0,4,14,7,43.6,3.4,0,64.8,1000,1000,0,0,1.94591,6.907755,0,4.564348,6.959049,1,0,0,64.8,7.843809,1.94591,5.728588,1 +16,6,95,0,2,629926,0,2548.899,38.50034,1,12,1,20.77824,0,0,0,0,20.77824,0,0,0,3,0,7,43.6,3.4,0,64.8,1000,1000,0,0,1.94591,6.907755,0,4.564348,6.959049,1,0,0,64.8,7.843809,1.94591,3.033906,1 +16,6,95,0,3,629926,0,2548.899,39.50034,1,12,1,270.6689,21.44082,25.72899,0,734.4769,1052.316,1,0,0,3,10,7,43.6,3.4,0,64.8,1000,1000,0,0,1.94591,6.907755,0,4.564348,6.959049,1,0,0,64.8,7.843809,1.94591,6.958748,1 +16,6,95,0,1,629932,0,13601.13,44.76386,1,13,1,0,0,0,0,0,0,0,0,0,0,0,3,94.7,6.9,0,88.6,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,88.6,9.517982,1.098612,,0 +16,6,95,0,2,629932,0,13601.13,45.76386,1,13,1,0,29.56107,0,0,0,29.56107,0,0,0,0,0,3,94.7,6.9,0,88.6,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,88.6,9.517982,1.098612,3.386458,1 +16,6,95,0,3,629932,0,13601.13,46.76386,1,13,1,12.19512,10.49129,0,0,0,22.68641,0,0,0,1,0,3,94.7,6.9,0,88.6,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,88.6,9.517982,1.098612,3.121766,1 +16,6,95,0,1,629933,0,13601.13,47.36756,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,78.2,13.8,0,77.3,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,1,0,0,77.3,9.517982,1.098612,,0 +16,6,95,0,2,629933,0,13601.13,48.36756,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,78.2,13.8,0,77.3,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,1,0,0,77.3,9.517982,1.098612,,0 +16,6,95,0,3,629933,0,13601.13,49.36756,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,78.2,13.8,0,77.3,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,1,0,0,77.3,9.517982,1.098612,,0 +16,6,95,0,1,629934,0,13601.13,16.60506,1,13,1,0,0,0,0,0,0,0,0,0,0,0,3,82.4,6.9,0,76.1,1000,1000,1,1,1.098612,6.907755,0,4.564348,6.959049,0,0,0,76.1,9.517982,1.098612,,0 +16,6,95,0,2,629934,0,13601.13,17.60506,1,13,1,0,0,0,0,0,0,0,0,0,0,0,3,82.4,6.9,0,76.1,1000,1000,1,1,1.098612,6.907755,0,4.564348,6.959049,0,0,0,76.1,9.517982,1.098612,,0 +16,6,95,0,3,629934,0,13601.13,18.60506,1,13,1,0,0,0,0,0,0,0,0,0,0,0,3,82.4,6.9,0,76.1,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,76.1,9.517982,1.098612,,0 +11,6,0,1,1,629944,0,3328.213,9.14716,1,8,1,15.56584,2.52419,0,0,354.6487,372.7387,1,0,0,2,0,3,86.7,10.57626,0,85.2,0,0,1,1,1.098612,0,0,0,0,1,0,0,85.2,8.110491,1.098612,5.920878,1 +11,6,0,1,2,629944,0,3328.213,10.14716,1,8,1,0,9.161315,0,0,0,9.161315,0,0,0,0,0,3,86.7,10.57626,0,85.2,0,0,1,1,1.098612,0,0,0,0,1,0,0,85.2,8.110491,1.098612,2.21499,1 +11,6,0,1,3,629944,0,3328.213,11.14716,1,8,1,0,0,0,0,0,0,0,0,0,0,0,3,86.7,10.57626,0,85.2,0,0,1,1,1.098612,0,0,0,0,1,0,0,85.2,8.110491,1.098612,,0 +11,6,0,1,1,629945,0,3328.213,46.45311,0,8,1,0,0,0,0,0,0,0,0,0,0,0,3,76.6,10.3,1,59.1,0,0,0,0,1.098612,0,0,0,0,1,0,0,59.1,8.110491,1.098612,,0 +11,6,0,1,2,629945,0,3328.213,47.45311,0,8,1,103.1356,0,7.555724,0,0,110.6913,0,0,0,0,6,3,76.6,10.3,1,59.1,0,0,0,0,1.098612,0,0,0,0,1,0,0,59.1,8.110491,1.098612,4.706746,1 +11,6,0,1,3,629945,0,3328.213,48.45311,0,8,1,0,0,0,0,0,0,0,0,0,0,0,3,76.6,10.3,1,59.1,0,0,0,0,1.098612,0,0,0,0,1,0,0,59.1,8.110491,1.098612,,0 +11,6,0,1,1,629946,0,3328.213,44.87885,1,8,1,25.2419,85.63315,33.65587,0,0,144.5309,0,0,0,3,1,3,71.3,17.2,1,22.7,0,0,0,0,1.098612,0,0,0,0,1,0,0,22.7,8.110491,1.098612,4.973494,1 +11,6,0,1,2,629946,0,3328.213,45.87885,1,8,1,199.4711,100.2229,0,0,0,299.694,0,0,0,3,10,3,71.3,17.2,1,22.7,0,0,0,0,1.098612,0,0,0,0,1,0,0,22.7,8.110491,1.098612,5.702762,1 +11,6,0,1,3,629946,0,3328.213,46.87885,1,8,1,47.68439,124.4014,0,0,1092.967,1265.053,1,0,0,2,0,3,71.3,17.2,1,22.7,0,0,0,0,1.098612,0,0,0,0,1,0,0,22.7,8.110491,1.098612,7.142869,1 +19,6,25,1,1,629947,1,6735.316,35.32375,1,8,1,10.42101,0,35.43143,0,0,45.85244,0,0,0,0,1,3,58.5,20.7,0,52.3,524.7,524.7,0,0,1.098612,6.262826,0,3.258096,7.649121,0,0,0,52.3,8.815269,1.098612,3.825428,1 +19,6,25,1,2,629947,1,6735.316,36.32375,1,8,1,0,0,0,0,0,0,0,0,0,0,0,3,58.5,20.7,0,52.3,524.7,524.7,0,0,1.098612,6.262826,0,3.258096,7.649121,0,0,0,52.3,8.815269,1.098612,,0 +19,6,25,1,3,629947,1,6735.316,37.32375,1,8,1,24.01894,4.566982,33.02774,0,0,61.61367,0,0,0,0,1,4,58.5,20.7,0,52.3,524.7,524.7,0,0,1.386294,6.262826,0,3.258096,7.649121,0,0,0,52.3,8.815269,1.386294,4.120884,1 +19,6,25,1,1,629950,1,6735.316,17.31143,1,8,1,0,0,0,0,0,0,0,0,0,0,0,3,53.7,27.6,1,51.1,524.7,524.7,1,1,1.098612,6.262826,0,3.258096,7.649121,0,0,0,51.1,8.815269,1.098612,,0 +19,6,25,1,2,629950,1,6735.316,18.31143,1,8,1,30.75769,0,0,0,516.8792,547.6369,1,0,0,4,0,3,53.7,27.6,1,51.1,524.7,524.7,0,0,1.098612,6.262826,0,3.258096,7.649121,0,0,0,51.1,8.815269,1.098612,6.305613,1 +19,6,25,1,3,629950,1,6735.316,19.31143,1,8,1,8.457375,0,23.68065,0,0,32.13802,0,0,0,0,1,4,53.7,27.6,1,51.1,524.7,524.7,0,0,1.386294,6.262826,0,3.258096,7.649121,0,0,0,51.1,8.815269,1.386294,3.47004,1 +19,6,25,1,1,629951,1,6735.316,3.425051,0,8,1,0,0,0,0,0,0,0,0,0,0,0,3,77.40034,10.57626,0,100,524.7,524.7,1,0,1.098612,6.262826,0,3.258096,7.649121,0,0,0,100,8.815269,1.098612,,0 +19,6,25,1,2,629951,1,6735.316,4.425051,0,8,1,22.13053,0,0,0,0,22.13053,0,0,0,0,0,3,77.40034,10.57626,0,100,524.7,524.7,1,0,1.098612,6.262826,0,3.258096,7.649121,0,0,0,100,8.815269,1.098612,3.096958,1 +19,6,25,1,3,629951,1,6735.316,5.425051,0,8,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,0,100,524.7,524.7,1,0,1.386294,6.262826,0,3.258096,7.649121,0,0,0,100,8.815269,1.386294,,0 +11,6,0,1,1,629952,0,7818.769,44.47639,1,13,1,102.7027,70.32433,0,0,0,173.027,0,0,0,6,0,3,43.6,20.7,1,39.8,0,307.92,0,0,1.098612,5.72984,0,0,0,0,1,0,39.8,8.96441,1.098612,5.153448,1 +11,6,0,1,2,629952,0,7818.769,45.47639,1,13,1,61.98724,74.58979,52.36098,0,0,188.938,0,0,0,5,0,3,43.6,20.7,1,39.8,0,307.92,0,0,1.098612,5.72984,0,0,0,0,1,0,39.8,8.96441,1.098612,5.241419,1 +11,6,0,1,3,629952,0,7818.769,46.47639,1,13,1,96.49854,61.25052,0,0,0,157.7491,0,0,0,4,0,3,43.6,20.7,1,39.8,0,307.92,0,0,1.098612,5.72984,0,0,0,0,1,0,39.8,8.96441,1.098612,5.061006,1 +11,6,0,1,4,629952,0,7818.769,47.47639,1,13,1,114.7787,103.0158,0,0,0,217.7944,0,0,0,9,0,2,43.6,20.7,1,39.8,0,307.92,0,0,.6931472,5.72984,0,0,0,0,1,0,39.8,8.96441,.6931472,5.383552,1 +11,6,0,1,5,629952,0,7818.769,48.47639,1,13,1,151.5562,143.6164,27.0636,0,0,322.2361,0,0,0,8,1,2,43.6,20.7,1,39.8,0,307.92,0,0,.6931472,5.72984,0,0,0,0,1,0,39.8,8.96441,.6931472,5.775285,1 +11,6,0,1,1,629953,0,7818.769,49.79055,0,7,1,73.71008,58.73219,0,0,0,132.4423,0,0,0,7,0,3,83,24.1,1,45.5,0,307.92,0,0,1.098612,5.72984,0,0,0,1,0,0,45.5,8.96441,1.098612,4.886147,1 +11,6,0,1,2,629953,0,7818.769,50.79055,0,7,1,160.8933,98.10847,44.21149,0,0,303.2133,0,0,0,12,0,3,83,24.1,1,45.5,0,307.92,0,0,1.098612,5.72984,0,0,0,1,0,0,45.5,8.96441,1.098612,5.714437,1 +11,6,0,1,3,629953,0,7818.769,51.79055,0,7,1,49.604,48.35348,0,0,268.862,366.8195,1,0,0,6,0,3,83,24.1,1,45.5,0,307.92,0,0,1.098612,5.72984,0,0,0,1,0,0,45.5,8.96441,1.098612,5.90487,1 +11,6,0,1,1,629954,0,7818.769,4.865161,0,13,1,34.39803,23.50368,0,0,0,57.90172,0,0,0,5,0,3,77.40034,10.57626,0,63,0,307.92,1,0,1.098612,5.72984,0,0,0,1,0,0,63,8.96441,1.098612,4.058747,1 +11,6,0,1,2,629954,0,7818.769,5.865161,0,13,1,48.31358,29.17047,0,0,366.9098,444.3938,1,0,0,6,0,3,77.40034,10.57626,0,63,0,307.92,1,0,1.098612,5.72984,0,0,0,1,0,0,63,8.96441,1.098612,6.096711,1 +11,6,0,1,3,629954,0,7818.769,6.865161,0,13,1,28.34514,15.00625,0,0,0,43.35139,0,0,0,4,0,3,77.40034,10.57626,0,63,0,307.92,1,0,1.098612,5.72984,0,0,0,1,0,0,63,8.96441,1.098612,3.769339,1 +11,6,0,1,4,629954,0,7818.769,7.865161,0,13,1,28.50713,25.5889,0,0,0,54.09602,0,0,0,4,0,2,77.40034,10.57626,0,63,0,307.92,1,0,.6931472,5.72984,0,0,0,1,0,0,63,8.96441,.6931472,3.990761,1 +11,6,0,1,5,629954,0,7818.769,8.865161,0,13,1,13.1935,8.907308,0,0,0,22.10081,0,0,0,1,0,2,77.40034,10.57626,0,63,0,307.92,1,0,.6931472,5.72984,0,0,0,1,0,0,63,8.96441,.6931472,3.095614,1 +13,6,0,1,1,629955,0,4858.679,5.218344,1,12,1,9.255363,0,0,0,0,9.255363,0,0,0,1,0,4,76.7,10.57626,0,51.9,450,150,1,1,1.386294,5.010635,1,4.564348,6.160541,1,0,0,51.9,8.488728,1.386294,2.225203,1 +13,6,0,1,2,629955,0,4858.679,6.218344,1,12,1,37.77862,10.40801,0,0,0,48.18663,0,0,0,3,0,4,76.7,10.57626,0,51.9,450,150,1,1,1.386294,5.010635,1,4.564348,6.160541,1,0,0,51.9,8.488728,1.386294,3.875082,1 +13,6,0,1,3,629955,0,4858.679,7.218344,1,12,1,33.96227,17.92453,0,0,0,51.88679,0,0,0,1,0,4,76.7,10.57626,0,51.9,450,150,1,1,1.386294,5.010635,1,4.564348,6.160541,1,0,0,51.9,8.488728,1.386294,3.949064,1 +13,6,0,1,1,629956,0,4858.679,10.3217,1,12,1,7.993269,0,0,0,0,7.993269,0,0,0,1,0,4,81.7,10.57626,0,74.1,450,150,1,1,1.386294,5.010635,1,4.564348,6.160541,1,0,0,74.1,8.488728,1.386294,2.0786,1 +13,6,0,1,2,629956,0,4858.679,11.3217,1,12,1,5.666792,11.03136,0,0,0,16.69815,0,0,0,1,0,4,81.7,10.57626,0,74.1,450,150,1,1,1.386294,5.010635,1,4.564348,6.160541,1,0,0,74.1,8.488728,1.386294,2.815298,1 +13,6,0,1,3,629956,0,4858.679,12.3217,1,12,1,0,20.42882,0,0,0,20.42882,0,0,0,0,0,4,81.7,10.57626,0,74.1,450,150,1,1,1.386294,5.010635,1,4.564348,6.160541,1,0,0,74.1,8.488728,1.386294,3.016947,1 +13,6,0,1,1,629957,0,4858.679,35.87406,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,83,10.3,0,68.2,450,150,0,0,1.386294,5.010635,1,4.564348,6.160541,0,0,0,68.2,8.488728,1.386294,,0 +13,6,0,1,2,629957,0,4858.679,36.87406,1,12,1,29.08953,41.27314,0,0,0,70.36268,0,0,0,4,0,4,83,10.3,0,68.2,450,150,0,0,1.386294,5.010635,1,4.564348,6.160541,0,0,0,68.2,8.488728,1.386294,4.253663,1 +13,6,0,1,3,629957,0,4858.679,37.87406,1,12,1,63.80789,97.62608,0,0,501.5437,662.9777,1,0,0,5,0,4,83,10.3,0,68.2,450,150,0,0,1.386294,5.010635,1,4.564348,6.160541,0,0,0,68.2,8.488728,1.386294,6.496741,1 +13,6,0,1,1,629958,0,4858.679,37.23203,0,12,1,51.3252,0,2.103492,0,0,53.42869,0,0,0,4,0,4,69.1,6.9,0,65.9,450,150,0,0,1.386294,5.010635,1,4.564348,6.160541,0,0,0,65.9,8.488728,1.386294,3.978348,1 +13,6,0,1,2,629958,0,4858.679,38.23203,0,12,1,0,6.422365,0,0,0,6.422365,0,0,0,0,0,4,69.1,6.9,0,65.9,450,150,0,0,1.386294,5.010635,1,4.564348,6.160541,0,0,0,65.9,8.488728,1.386294,1.859786,1 +13,6,0,1,3,629958,0,4858.679,39.23203,0,12,1,27.78731,12.44254,0,0,0,40.22985,0,0,0,3,0,4,69.1,6.9,0,65.9,450,150,0,0,1.386294,5.010635,1,4.564348,6.160541,0,0,0,65.9,8.488728,1.386294,3.694609,1 +11,6,0,0,1,629959,0,10323.6,7.348392,0,12,1,57.13077,28.76428,0,0,0,85.89505,0,0,0,13,0,4,96.7,10.57626,0,55.6,0,0,1,0,1.386294,0,0,0,0,1,0,0,55.6,9.242285,1.386294,4.453126,1 +11,6,0,0,2,629959,0,10323.6,8.348392,0,12,1,29.61276,15.09112,0,0,0,44.70387,0,0,0,7,0,4,96.7,10.57626,0,55.6,0,0,1,0,1.386294,0,0,0,0,1,0,0,55.6,9.242285,1.386294,3.80006,1 +11,6,0,0,3,629959,0,10323.6,9.348392,0,12,1,20.41522,0,0,0,0,20.41522,0,0,0,3,0,4,96.7,10.57626,0,55.6,0,0,1,0,1.386294,0,0,0,0,1,0,0,55.6,9.242285,1.386294,3.016281,1 +11,6,0,0,1,629960,0,10323.6,32.14237,0,14,1,66.44096,26.94033,0,0,0,93.38129,0,0,0,1,0,4,88.3,3.4,0,72.7,0,0,0,0,1.386294,0,0,0,0,1,0,0,72.7,9.242285,1.386294,4.536691,1 +11,6,0,0,2,629960,0,10323.6,33.14237,0,14,1,43.65983,36.32498,0,0,0,79.98482,0,0,0,1,0,4,88.3,3.4,0,72.7,0,0,0,0,1.386294,0,0,0,0,1,0,0,72.7,9.242285,1.386294,4.381837,1 +11,6,0,0,3,629960,0,10323.6,34.14237,0,14,1,2.076125,32.87197,0,0,0,34.9481,0,0,0,0,0,4,88.3,3.4,0,72.7,0,0,0,0,1.386294,0,0,0,0,1,0,0,72.7,9.242285,1.386294,3.553864,1 +11,6,0,0,1,629961,0,10323.6,32.60233,1,12,1,40.83792,51.50233,13.54211,0,1005.501,1111.384,1,0,0,6,1,4,90.4,10.3,0,79.5,0,0,0,0,1.386294,0,0,0,0,1,0,0,79.5,9.242285,1.386294,7.013361,1 +11,6,0,0,2,629961,0,10323.6,33.60233,1,12,1,40.81245,23.81169,0,0,0,64.62415,0,0,0,9,0,4,90.4,10.3,0,79.5,0,0,0,0,1.386294,0,0,0,0,1,0,0,79.5,9.242285,1.386294,4.168588,1 +11,6,0,0,3,629961,0,10323.6,34.60233,1,12,1,495.6747,0,21.5917,0,0,517.2664,0,0,0,4,1,4,90.4,10.3,0,79.5,0,0,0,0,1.386294,0,0,0,0,1,0,0,79.5,9.242285,1.386294,6.248558,1 +11,6,0,0,1,629962,0,10323.6,4.684463,0,12,1,272.9581,17.99831,0,0,0,290.9564,0,0,0,20,0,4,77.40034,10.57626,0,63,0,0,1,0,1.386294,0,0,0,0,1,0,0,63,9.242285,1.386294,5.673173,1 +11,6,0,0,2,629962,0,10323.6,5.684463,0,12,1,53.53075,24.44951,0,0,753.9863,831.9666,2,0,0,7,0,4,77.40034,10.57626,0,63,0,0,1,0,1.386294,0,0,0,0,1,0,0,63,9.242285,1.386294,6.723792,1 +11,6,0,0,3,629962,0,10323.6,6.684463,0,12,1,48.78893,4.757785,0,0,0,53.54671,0,0,0,4,0,4,77.40034,10.57626,0,63,0,0,1,0,1.386294,0,0,0,0,1,0,0,63,9.242285,1.386294,3.980554,1 +6,6,25,0,1,629973,0,12762.93,27.80014,1,12,1,104.9513,2.666102,0,0,420.6517,528.2692,1,0,0,3,0,3,83.5,24.1,0,68.2,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,68.2,9.454378,1.098612,6.269606,1 +6,6,25,0,2,629973,0,12762.93,28.80014,1,12,1,25.81625,0,0,0,850.7972,876.6135,1,0,0,1,0,3,83.5,24.1,0,68.2,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,68.2,9.454378,1.098612,6.776066,1 +6,6,25,0,3,629973,0,12762.93,29.80014,1,12,1,12.11073,0,0,0,0,12.11073,0,0,0,1,0,5,83.5,24.1,0,68.2,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,68.2,9.454378,1.609438,2.494092,1 +6,6,25,0,1,629974,0,12762.93,31.77276,0,12,1,30.04655,0,0,0,0,30.04655,0,0,0,2,0,3,87.2,13.8,0,79.5,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,79.5,9.454378,1.098612,3.402748,1 +6,6,25,0,2,629974,0,12762.93,32.77276,0,12,1,26.1959,0,0,0,0,26.1959,0,0,0,2,0,3,87.2,13.8,0,79.5,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,79.5,9.454378,1.098612,3.265603,1 +6,6,25,0,3,629974,0,12762.93,33.77276,0,12,1,15.22491,0,0,0,0,15.22491,0,0,0,1,0,5,87.2,13.8,0,79.5,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,1,0,0,79.5,9.454378,1.609438,2.722933,1 +13,6,0,0,1,629982,1,12033.79,49.68104,0,10,1,0,10.42101,0,0,0,10.42101,0,0,0,0,0,3,84.6,10.3,0,58,450,300,0,0,1.098612,5.703783,1,4.564348,6.160541,0,1,0,58,9.395557,1.098612,2.343824,1 +13,6,0,0,2,629982,1,12033.79,50.68104,0,10,1,41.63541,9.624907,43.30083,0,0,94.56114,0,0,0,1,0,3,84.6,10.3,0,58,450,300,0,0,1.098612,5.703783,1,4.564348,6.160541,0,1,0,58,9.395557,1.098612,4.549247,1 +13,6,0,0,3,629982,1,12033.79,51.68104,0,10,1,675.2368,22.08728,117.6083,0,652.571,1467.503,1,0,0,9,26,3,84.6,10.3,0,58,450,300,0,0,1.098612,5.703783,1,4.564348,6.160541,0,1,0,58,9.395557,1.098612,7.291318,1 +13,6,0,0,1,629983,1,12033.79,41.0267,1,15,1,0,0,0,0,0,0,0,0,0,0,0,3,80.9,10.3,0,68.2,450,300,0,0,1.098612,5.703783,1,4.564348,6.160541,1,0,0,68.2,9.395557,1.098612,,0 +13,6,0,0,2,629983,1,12033.79,42.0267,1,15,1,7.876969,6.414104,0,0,0,14.29107,0,0,0,0,0,3,80.9,10.3,0,68.2,450,300,0,0,1.098612,5.703783,1,4.564348,6.160541,1,0,0,68.2,9.395557,1.098612,2.659635,1 +13,6,0,0,3,629983,1,12033.79,43.0267,1,15,1,107.2395,5.483762,0,0,0,112.7233,0,0,0,0,7,3,80.9,10.3,0,68.2,450,300,0,0,1.098612,5.703783,1,4.564348,6.160541,1,0,0,68.2,9.395557,1.098612,4.724936,1 +11,6,0,0,1,630014,0,9747.801,54.6694,1,11,1,115.4609,142.5223,31.95243,0,1217.047,1506.982,1,0,0,10,0,1,88.8,31,1,51.1,0,260.04,0,0,0,5.560835,0,0,0,0,1,0,51.1,9.184899,0,7.317864,1 +11,6,0,0,2,630014,0,9747.801,55.6694,1,11,1,58.28362,247.9211,11.93208,0,0,318.1367,0,0,0,8,0,1,88.8,31,1,51.1,0,260.04,0,0,0,5.560835,0,0,0,0,1,0,51.1,9.184899,0,5.762481,1 +11,6,0,0,3,630014,0,9747.801,56.6694,1,11,1,115.692,172.0656,0,0,0,287.7577,0,0,0,10,0,1,88.8,31,1,51.1,0,260.04,0,0,0,5.560835,0,0,0,0,1,0,51.1,9.184899,0,5.662119,1 +11,6,0,0,4,630014,0,9747.801,57.6694,1,11,1,143.181,116.9059,27.50283,0,0,287.5897,0,0,0,7,0,1,88.8,31,1,51.1,0,260.04,0,0,0,5.560835,0,0,0,0,1,0,51.1,9.184899,0,5.661535,1 +11,6,0,0,5,630014,0,9747.801,58.6694,1,11,1,173.2419,166.8439,0,0,0,340.0858,0,0,0,9,0,1,88.8,31,1,51.1,0,260.04,0,0,0,5.560835,0,0,0,0,1,0,51.1,9.184899,0,5.829198,1 +16,6,95,1,1,630041,0,9325.653,26.32444,0,12,1,4.206984,0,29.44888,0,0,33.65587,0,0,0,1,0,3,86.2,6.9,0,90.9,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,90.9,9.140632,1.098612,3.516187,1 +16,6,95,1,2,630041,0,9325.653,27.32444,0,12,1,9.066868,3.298073,18.13374,18.88931,0,30.49868,0,0,1,1,0,3,86.2,6.9,0,90.9,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,90.9,9.140632,1.098612,3.417683,1 +16,6,95,1,3,630041,0,9325.653,28.32444,0,12,1,126.5523,2.737564,0,37.73585,0,129.2899,0,0,2,2,0,3,86.2,6.9,0,90.9,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,0,0,0,90.9,9.140632,1.098612,4.862057,1 +16,6,95,1,1,630042,0,9325.653,23.49623,1,13,1,15.14514,1.95204,31.55238,0,0,48.64956,0,0,0,2,0,3,59.6,3.4,0,76.1,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,1,0,0,76.1,9.140632,1.098612,3.884643,1 +16,6,95,1,2,630042,0,9325.653,24.49623,1,13,1,16.62259,32.66339,15.11145,283.3396,358.8969,423.2943,1,0,15,1,0,3,59.6,3.4,0,76.1,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,1,0,0,76.1,9.140632,1.098612,6.048068,1 +16,6,95,1,3,630042,0,9325.653,25.49623,1,13,1,123.8422,22.74442,0,435.6775,1661.406,1807.993,1,0,23,6,0,3,59.6,3.4,0,76.1,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,1,0,0,76.1,9.140632,1.098612,7.499973,1 +19,6,25,0,1,630043,0,5065.028,28.72827,0,8,1,0,0,0,0,0,0,0,0,0,0,0,4,90.4,0,0,75,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,75,8.530313,1.386294,,0 +19,6,25,0,2,630043,0,5065.028,29.72827,0,8,1,3.777862,2.315829,0,0,0,6.093691,0,0,0,1,0,4,90.4,0,0,75,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,75,8.530313,1.386294,1.807254,1 +19,6,25,0,3,630043,0,5065.028,30.72827,0,8,1,0,0,0,0,0,0,0,0,0,0,0,4,90.4,0,0,75,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,75,8.530313,1.386294,,0 +19,6,25,1,1,630044,0,5065.028,6.266941,1,12,1,35.75936,0,24.40051,0,0,60.15987,0,0,0,3,0,4,86.7,10.57626,0,70.4,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,0,0,0,70.4,8.530313,1.386294,4.097005,1 +19,6,25,1,2,630044,0,5065.028,7.266941,1,12,1,6.422365,0,0,0,0,6.422365,0,0,0,1,0,4,86.7,10.57626,0,70.4,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,0,0,0,70.4,8.530313,1.386294,1.859786,1 +19,6,25,1,3,630044,0,5065.028,8.26694,1,12,1,42.19554,0,17.15266,0,0,59.3482,0,0,0,1,0,4,86.7,10.57626,0,70.4,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,0,0,0,70.4,8.530313,1.386294,4.083422,1 +19,6,25,1,1,630045,0,5065.028,7.624915,0,12,1,12.62095,0,26.504,0,0,39.12495,0,0,0,1,0,4,85,10.57626,0,70.4,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,70.4,8.530313,1.386294,3.66676,1 +19,6,25,1,2,630045,0,5065.028,8.624914,0,12,1,24.17831,0,13.6003,0,0,37.77862,0,0,0,3,0,4,85,10.57626,0,70.4,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,70.4,8.530313,1.386294,3.631743,1 +19,6,25,1,3,630045,0,5065.028,9.624914,0,12,1,13.72213,0,0,0,0,13.72213,0,0,0,2,0,4,85,10.57626,0,70.4,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,70.4,8.530313,1.386294,2.61901,1 +19,6,25,1,1,630046,0,5065.028,26.28611,1,12,1,29.44888,3.89146,0,0,0,33.34034,0,0,0,1,0,4,88.3,6.9,0,58,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,58,8.530313,1.386294,3.506768,1 +19,6,25,1,2,630046,0,5065.028,27.28611,1,12,1,0,5.4779,0,0,0,5.4779,0,0,0,0,0,4,88.3,6.9,0,58,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,58,8.530313,1.386294,1.700722,1 +19,6,25,1,3,630046,0,5065.028,28.28611,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,88.3,6.9,0,58,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,58,8.530313,1.386294,,0 +13,6,0,1,1,630052,0,2579.109,52.56673,1,10,1,316.1236,53.21625,35.97122,0,0,405.311,0,0,0,9,30,1,61.2,37.9,1,58,150,268.8,0,0,0,5.593967,1,4.564348,5.061929,0,1,0,58,7.855587,0,6.004655,1 +13,6,0,1,2,630052,0,2579.109,53.56673,1,10,1,122.2475,41.9514,0,0,412.3007,576.4996,1,0,0,3,11,1,61.2,37.9,1,58,150,268.8,0,0,0,5.593967,1,4.564348,5.061929,0,1,0,58,7.855587,0,6.356975,1 +13,6,0,1,3,630052,0,2579.109,54.56673,1,10,1,52.24913,53.02768,10.38062,0,988.2353,1103.893,1,0,0,5,0,1,61.2,37.9,1,58,150,268.8,0,0,0,5.593967,1,4.564348,5.061929,0,1,0,58,7.855587,0,7.006598,1 +11,6,0,1,1,630063,0,5932.924,57.64545,0,4,1,283.1147,134.9979,2.750741,0,363.0977,783.9611,1,0,0,13,0,2,34,31,1,17,0,319.43,0,0,.6931472,5.766538,0,0,0,1,0,0,17,8.688441,.6931472,6.66436,1 +11,6,0,1,2,630063,0,5932.924,58.64545,0,4,1,58.46621,110.615,5.504935,0,0,174.5862,0,0,0,8,0,2,34,31,1,17,0,319.43,0,0,.6931472,5.766538,0,0,0,1,0,0,17,8.688441,.6931472,5.162418,1 +11,6,0,1,3,630063,0,5932.924,59.64545,0,4,1,145.6747,202.1003,36.89619,0,0,384.6713,0,0,0,15,0,2,34,31,1,17,0,319.43,0,0,.6931472,5.766538,0,0,0,1,0,0,17,8.688441,.6931472,5.952389,1 +11,6,0,1,1,630064,0,5932.924,55.13484,1,12,1,159.543,166.2336,45.70461,0,0,371.4812,0,0,0,10,13,2,68.6,27.6,1,45.5,0,319.43,0,0,.6931472,5.766538,0,0,0,0,1,0,45.5,8.688441,.6931472,5.917498,1 +11,6,0,1,2,630064,0,5932.924,56.13484,1,12,1,107.8208,199.8026,0,0,533.0296,840.653,1,0,0,6,0,2,68.6,27.6,1,45.5,0,319.43,0,0,.6931472,5.766538,0,0,0,0,1,0,45.5,8.688441,.6931472,6.734179,1 +11,6,0,1,3,630064,0,5932.924,57.13484,1,12,1,236.6782,267.5986,34.60208,0,623.5294,1162.408,1,0,0,14,0,2,68.6,27.6,1,45.5,0,319.43,0,0,.6931472,5.766538,0,0,0,0,1,0,45.5,8.688441,.6931472,7.058249,1 +13,6,0,0,1,630065,0,14799.79,47.06366,1,12,1,338.8725,123.9798,39.12495,0,0,501.9773,0,0,0,13,25,4,77.7,27.6,0,88.1,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,88.1,9.602436,1.386294,6.218555,1 +13,6,0,0,2,630065,0,14799.79,48.06366,1,12,1,340.0076,72.76917,26.44503,0,0,439.2218,0,0,0,5,30,4,77.7,27.6,0,88.1,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,88.1,9.602436,1.386294,6.085004,1 +13,6,0,0,3,630065,0,14799.79,49.06366,1,12,1,317.3242,45.99657,42.06861,0,0,405.3894,0,0,0,4,25,4,77.7,27.6,0,88.1,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,88.1,9.602436,1.386294,6.004848,1 +13,6,0,0,1,630066,0,14799.79,20.54757,1,11,1,110.223,25.88136,34.07657,0,0,170.1809,0,0,0,3,15,4,56.4,10.3,0,95.5,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,95.5,9.602436,1.386294,5.136862,1 +13,6,0,0,2,630066,0,14799.79,21.54757,1,11,1,32.48961,43.78542,0,0,0,76.27503,0,0,0,1,4,4,56.4,10.3,0,95.5,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,95.5,9.602436,1.386294,4.334346,1 +13,6,0,0,3,630066,0,14799.79,22.54757,1,11,1,35.33448,61.31046,14.62436,0,0,111.2693,0,0,0,4,0,4,56.4,10.3,0,95.5,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,95.5,9.602436,1.386294,4.711953,1 +13,6,0,0,1,630067,0,14799.79,4.164271,1,12,1,246.1085,22.03618,40.77829,0,460.244,769.167,1,0,0,17,17,4,77.40034,10.57626,0,40.7,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,40.7,9.602436,1.386294,6.645308,1 +13,6,0,0,2,630067,0,14799.79,5.164271,1,12,1,117.8693,27.37061,13.6003,0,0,158.8402,0,0,0,10,10,4,77.40034,10.57626,0,40.7,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,40.7,9.602436,1.386294,5.067899,1 +13,6,0,0,3,630067,0,14799.79,6.164271,1,12,1,90.90909,11.24185,51.73242,0,0,153.8834,0,0,0,11,0,4,77.40034,10.57626,0,40.7,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,40.7,9.602436,1.386294,5.036195,1 +13,6,0,0,1,630068,0,14799.79,57.22108,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,82.4,6.9,0,68.2,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,68.2,9.602436,1.386294,,0 +13,6,0,0,2,630068,0,14799.79,58.22108,0,12,1,33.24518,31.11069,26.44503,0,0,90.8009,0,0,0,1,1,4,82.4,6.9,0,68.2,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,68.2,9.602436,1.386294,4.508669,1 +13,6,0,0,3,630068,0,14799.79,59.22108,0,12,1,12.00686,0,42.06861,0,0,54.07547,0,0,0,0,1,4,82.4,6.9,0,68.2,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,68.2,9.602436,1.386294,3.990381,1 +6,6,25,0,1,630069,1,6735.316,25.16359,1,12,1,12.69573,0,37.07998,0,0,49.77571,0,0,0,0,1,3,63.8,3.4,0,60.2,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,60.2,8.815269,1.098612,3.907527,1 +6,6,25,0,2,630069,1,6735.316,26.16359,1,12,1,33.78891,22.25892,0,0,478.7396,534.7874,1,0,0,0,0,3,63.8,3.4,0,60.2,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,1,0,0,60.2,8.815269,1.098612,6.281869,1 +6,6,25,0,3,630069,1,6735.316,27.16359,1,12,1,58.13149,24.42561,38.97232,0,0,121.5294,0,0,0,3,1,4,63.8,3.4,0,60.2,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,60.2,8.815269,1.386294,4.800156,1 +6,6,25,0,1,630070,1,6735.316,5.735797,0,12,1,16.92764,0,0,0,0,16.92764,0,0,0,0,0,3,81.7,10.57626,0,70.4,750,750,1,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,70.4,8.815269,1.098612,2.828948,1 +6,6,25,0,2,630070,1,6735.316,6.735797,0,12,1,52.77145,6.192103,0,0,0,58.96355,0,0,0,2,0,3,81.7,10.57626,0,70.4,750,750,1,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,70.4,8.815269,1.098612,4.07692,1 +6,6,25,0,3,630070,1,6735.316,7.735797,0,12,1,11.41868,9.816609,0,0,0,21.23529,0,0,0,1,0,4,81.7,10.57626,0,70.4,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,70.4,8.815269,1.386294,3.055665,1 +6,6,25,0,1,630071,1,6735.316,26.5462,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,81.4,6.9,0,73.9,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,73.9,8.815269,1.098612,,0 +6,6,25,0,2,630071,1,6735.316,27.5462,0,12,1,5.694761,5.125285,0,0,0,10.82005,0,0,0,1,0,3,81.4,6.9,0,73.9,750,750,0,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,73.9,8.815269,1.098612,2.381401,1 +6,6,25,0,3,630071,1,6735.316,28.5462,0,12,1,14.18685,0,0,0,0,14.18685,0,0,0,0,0,4,81.4,6.9,0,73.9,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,73.9,8.815269,1.386294,2.652316,1 +11,6,0,0,1,630072,1,8102.918,3.723477,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,77.40034,10.57626,0,81.5,0,0,1,1,1.098612,0,0,0,0,1,0,0,81.5,9.000103,1.098612,,0 +11,6,0,0,2,630072,1,8102.918,4.723477,1,12,1,22.77904,0,0,0,0,22.77904,0,0,0,3,0,4,77.40034,10.57626,0,81.5,0,0,1,1,1.386294,0,0,0,0,1,0,0,81.5,9.000103,1.386294,3.125841,1 +11,6,0,0,3,630072,1,8102.918,5.723477,1,12,1,12.45675,6.83391,0,0,0,19.29066,0,0,0,0,0,4,77.40034,10.57626,0,81.5,0,0,1,1,1.386294,0,0,0,0,1,0,0,81.5,9.000103,1.386294,2.959621,1 +11,6,0,0,1,630073,1,8102.918,23.02533,1,12,1,19.04359,34.74397,0,0,528.5654,582.353,1,0,0,1,0,3,83,6.9,0,63.6,0,0,0,0,1.098612,0,0,0,0,0,0,0,63.6,9.000103,1.098612,6.367077,1 +11,6,0,0,2,630073,1,8102.918,24.02533,1,12,1,0,45.59605,0,0,0,45.59605,0,0,0,0,0,4,83,6.9,0,63.6,0,0,0,0,1.386294,0,0,0,0,0,0,0,63.6,9.000103,1.386294,3.819821,1 +11,6,0,0,3,630073,1,8102.918,25.02533,1,12,1,27.68166,41.6609,0,0,0,69.34256,0,0,0,2,0,4,83,6.9,0,63.6,0,0,0,0,1.386294,0,0,0,0,0,0,0,63.6,9.000103,1.386294,4.239059,1 +11,6,0,0,1,630074,1,8102.918,25.24572,0,12,1,59.24672,0,0,0,0,59.24672,0,0,0,4,0,3,81.4,3.4,0,67,0,0,0,0,1.098612,0,0,0,0,1,0,0,67,9.000103,1.098612,4.08171,1 +11,6,0,0,2,630074,1,8102.918,26.24572,0,12,1,0,2.46773,0,0,0,2.46773,0,0,0,0,0,4,81.4,3.4,0,67,0,0,0,0,1.386294,0,0,0,0,1,0,0,67,9.000103,1.386294,.9032986,1 +11,6,0,0,3,630074,1,8102.918,27.24572,0,12,1,37.02422,0,0,0,0,37.02422,0,0,0,0,0,4,81.4,3.4,0,67,0,0,0,0,1.386294,0,0,0,0,1,0,0,67,9.000103,1.386294,3.611572,1 +13,6,0,1,1,630081,0,6735.316,27.50445,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,60.1,10.3,0,64.8,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,64.8,8.815269,1.098612,,0 +13,6,0,1,2,630081,0,6735.316,28.50445,0,12,1,62.41395,28.10922,33.96053,0,0,124.4837,0,0,0,8,0,3,60.1,10.3,0,64.8,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,64.8,8.815269,1.098612,4.824175,1 +13,6,0,1,3,630081,0,6735.316,29.50445,0,12,1,306.2684,29.65924,0,0,0,335.9276,0,0,0,3,23,3,60.1,10.3,0,64.8,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,64.8,8.815269,1.098612,5.816896,1 +13,6,0,1,4,630081,0,6735.316,30.50445,0,12,1,396.6755,64.69588,28.71175,0,0,490.0831,0,0,0,6,32,3,60.1,10.3,0,64.8,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,64.8,8.815269,1.098612,6.194575,1 +13,6,0,1,5,630081,0,6735.316,31.50445,0,12,1,347.8559,50.2916,18.86792,0,0,417.0154,0,0,0,9,30,3,60.1,10.3,0,64.8,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,64.8,8.815269,1.098612,6.033123,1 +13,6,0,1,1,630082,0,6735.316,27.50171,1,12,1,53.51833,53.14172,35.67889,0,0,142.3389,0,0,0,4,0,3,48.9,17.2,0,67,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,67,8.815269,1.098612,4.958211,1 +13,6,0,1,2,630082,0,6735.316,28.50171,1,12,1,31.6659,19.96329,0,0,0,51.62919,0,0,0,4,0,3,48.9,17.2,0,67,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,67,8.815269,1.098612,3.944087,1 +13,6,0,1,3,630082,0,6735.316,29.50171,1,12,1,90.45015,73.20152,33.65587,0,0,197.3075,0,0,0,6,22,3,48.9,17.2,0,67,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,67,8.815269,1.098612,5.284763,1 +13,6,0,1,4,630082,0,6735.316,30.50171,1,12,1,492.6332,53.55119,0,0,0,546.1844,0,0,0,11,49,3,48.9,17.2,0,67,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,67,8.815269,1.098612,6.302957,1 +13,6,0,1,5,630082,0,6735.316,31.50171,1,12,1,404.1166,28.0789,0,0,285.4202,717.6158,1,0,0,8,26,3,48.9,17.2,0,67,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,67,8.815269,1.098612,6.575934,1 +11,6,0,0,1,630091,1,0,53.94661,0,2,1,17.3439,47.69574,35.67889,0,0,100.7185,0,0,0,3,1,2,79.3,24.1,1,58,0,0,0,0,.6931472,0,0,0,0,0,0,1,58,0,.6931472,4.61233,1 +11,6,0,0,1,630092,1,0,11.86858,1,2,1,4.955401,0,0,0,0,4.955401,0,0,0,1,0,2,95,10.57626,1,66.7,0,0,1,1,.6931472,0,0,0,0,0,1,0,66.7,0,.6931472,1.600478,1 +17,6,25,1,1,630107,1,1093.702,59.66598,1,5,1,184.9344,266.094,16.57215,0,421.0749,888.6754,1,0,0,13,0,1,25.5,37.9,1,10.2,252,512.04,0,0,0,6.238403,0,3.258096,6.915723,0,0,1,10.2,6.998238,0,6.789732,1 +10,6,50,0,1,630109,1,1264.721,33.40726,1,10,1,12.62095,0,33.65587,0,0,46.27682,0,0,0,0,1,6,80.3,10.3,0,,795,0,0,0,1.791759,0,0,3.931826,7.37149,0,1,0,63.6,7.143397,1.791759,3.834641,1 +10,6,50,0,2,630109,1,1264.721,34.40726,1,10,1,43.8232,0,15.11145,0,368.7193,427.654,1,0,0,3,1,6,80.3,10.3,0,,795,0,0,0,1.791759,0,0,3.931826,7.37149,0,1,0,63.6,7.143397,1.791759,6.058314,1 +10,6,50,0,3,630109,1,1264.721,35.40726,1,10,1,52.83019,0,0,0,0,52.83019,0,0,0,2,0,7,80.3,10.3,0,,795,0,0,0,1.94591,0,0,3.931826,7.37149,0,1,0,63.6,7.143397,1.94591,3.967083,1 +10,6,50,0,1,630110,1,1264.721,12.02738,1,10,1,0,0,0,0,0,0,0,0,0,0,0,6,50,10.57626,1,51.9,795,0,1,1,1.791759,0,0,3.931826,7.37149,0,1,0,51.9,7.143397,1.791759,,0 +10,6,50,0,2,630110,1,1264.721,13.02738,1,10,1,35.88969,0,24.5561,0,0,60.44579,0,0,0,3,1,6,50,10.57626,1,51.9,795,0,1,1,1.791759,0,0,3.931826,7.37149,0,1,0,51.9,7.143397,1.791759,4.101747,1 +10,6,50,0,3,630110,1,1264.721,14.02738,1,10,1,0,0,0,0,0,0,0,0,0,0,0,7,50,10.57626,1,51.9,795,0,1,1,1.94591,0,0,3.931826,7.37149,0,1,0,51.9,7.143397,1.94591,,0 +10,6,50,0,1,630111,1,1264.721,13.65092,1,10,1,0,0,0,0,0,0,0,0,0,0,0,6,85,10.57626,1,77.8,795,0,1,1,1.791759,0,0,3.931826,7.37149,0,1,0,77.8,7.143397,1.791759,,0 +10,6,50,0,2,630111,1,1264.721,14.65092,1,10,1,11.33358,0,24.5561,0,0,35.88969,0,0,0,0,1,6,85,10.57626,1,77.8,795,0,1,1,1.791759,0,0,3.931826,7.37149,0,1,0,77.8,7.143397,1.791759,3.58045,1 +10,6,50,0,3,630111,1,1264.721,15.65092,1,10,1,2.744425,0,0,0,0,2.744425,0,0,0,0,1,7,85,10.57626,1,77.8,795,0,1,1,1.94591,0,0,3.931826,7.37149,0,1,0,77.8,7.143397,1.94591,1.009572,1 +10,6,50,0,1,630112,1,1264.721,9.549623,0,10,1,0,0,0,0,0,0,0,0,0,0,0,6,45.5,10.57626,1,51.9,795,0,1,0,1.791759,0,0,3.931826,7.37149,0,0,0,51.9,7.143397,1.791759,,0 +10,6,50,0,2,630112,1,1264.721,10.54962,0,10,1,11.33358,0,24.5561,0,0,35.88969,0,0,0,0,1,6,45.5,10.57626,1,51.9,795,0,1,0,1.791759,0,0,3.931826,7.37149,0,0,0,51.9,7.143397,1.791759,3.58045,1 +10,6,50,0,3,630112,1,1264.721,11.54962,0,10,1,3.430532,0,0,0,0,3.430532,0,0,0,1,0,7,45.5,10.57626,1,51.9,795,0,1,0,1.94591,0,0,3.931826,7.37149,0,0,0,51.9,7.143397,1.94591,1.232715,1 +10,6,50,0,1,630113,1,1264.721,10.86653,1,10,1,0,0,0,0,0,0,0,0,0,0,0,6,54.5,10.57626,1,51.9,795,0,1,1,1.791759,0,0,3.931826,7.37149,0,0,0,51.9,7.143397,1.791759,,0 +10,6,50,0,2,630113,1,1264.721,11.86653,1,10,1,11.33358,0,24.5561,0,0,35.88969,0,0,0,0,1,6,54.5,10.57626,1,51.9,795,0,1,1,1.791759,0,0,3.931826,7.37149,0,0,0,51.9,7.143397,1.791759,3.58045,1 +10,6,50,0,3,630113,1,1264.721,12.86653,1,10,1,0,0,0,0,0,0,0,0,0,0,0,7,54.5,10.57626,1,51.9,795,0,1,1,1.94591,0,0,3.931826,7.37149,0,0,0,51.9,7.143397,1.94591,,0 +10,6,50,0,1,630114,1,1264.721,32.61876,0,9,1,27.34539,0,0,0,0,27.34539,0,0,0,1,0,6,60.6,3.4,0,,795,0,0,0,1.791759,0,0,3.931826,7.37149,0,1,0,78.4,7.143397,1.791759,3.308548,1 +10,6,50,0,2,630114,1,1264.721,33.61876,0,9,1,120.8916,0,24.5561,0,0,145.4477,0,0,0,7,1,6,60.6,3.4,0,,795,0,0,0,1.791759,0,0,3.931826,7.37149,0,1,0,78.4,7.143397,1.791759,4.979816,1 +10,6,50,0,3,630114,1,1264.721,34.61876,0,9,1,50.42882,0,0,0,0,50.42882,0,0,0,2,0,7,60.6,3.4,0,,795,0,0,0,1.94591,0,0,3.931826,7.37149,0,1,0,78.4,7.143397,1.94591,3.920563,1 +11,6,0,0,1,630122,.5112414,1202.253,19.39767,1,10,1,17.24863,0,0,0,0,17.24863,0,0,0,0,0,2,77.40034,3.4,.1442925,,0,0,0,0,.6931472,0,0,0,0,0,0,0,70.68995,7.092784,.6931472,2.847733,1 +11,6,0,0,2,630122,.5112414,1202.253,20.39767,1,10,1,0,0,0,0,0,0,0,0,0,0,0,2,77.40034,3.4,.1442925,,0,0,0,0,.6931472,0,0,0,0,0,0,0,70.68995,7.092784,.6931472,,0 +11,6,0,0,3,630122,.5112414,1202.253,21.39767,1,10,1,0,0,0,0,371.1835,371.1835,1,0,0,0,0,2,77.40034,3.4,.1442925,,0,0,0,0,.6931472,0,0,0,0,0,0,0,70.68995,7.092784,.6931472,5.916697,1 +11,6,0,0,1,630123,1,4382.488,14.52704,1,8,1,0,0,0,0,0,0,0,0,0,0,0,4,72.1,3.4,0,64.8,0,0,1,1,1.386294,0,0,0,0,0,0,0,64.8,8.3856,1.386294,,0 +11,6,0,0,2,630123,1,4382.488,15.52704,1,8,1,0,0,0,0,0,0,0,0,0,0,0,3,72.1,3.4,0,64.8,0,0,1,1,1.098612,0,0,0,0,0,0,0,64.8,8.3856,1.098612,,0 +11,6,0,0,3,630123,1,4382.488,16.52704,1,8,1,0,0,0,0,0,0,0,0,0,0,0,3,72.1,3.4,0,64.8,0,0,1,1,1.098612,0,0,0,0,0,0,0,64.8,8.3856,1.098612,,0 +11,6,0,0,1,630124,1,4382.488,59.35661,1,8,1,0,0,0,0,0,0,0,0,0,0,0,4,53.2,10.3,0,60.2,0,0,0,0,1.386294,0,0,0,0,0,1,0,60.2,8.3856,1.386294,,0 +11,6,0,0,2,630124,1,4382.488,60.35661,1,8,1,0,0,0,0,0,0,0,0,0,0,0,3,53.2,10.3,0,60.2,0,0,0,0,1.098612,0,0,0,0,0,1,0,60.2,8.3856,1.098612,,0 +11,6,0,0,3,630124,1,4382.488,61.35661,1,8,1,0,0,0,0,0,0,0,0,0,0,0,3,53.2,10.3,0,60.2,0,0,0,0,1.098612,0,0,0,0,0,1,0,60.2,8.3856,1.098612,,0 +11,6,0,0,1,630125,1,4382.488,53.9603,0,8,.3643835,0,0,0,0,216.239,216.239,1,1,0,0,0,4,84.1,3.4,0,65.9,0,0,0,0,1.386294,0,0,0,0,0,1,0,65.9,8.3856,1.386294,5.376384,1 +11,6,0,1,1,630157,0,11458.65,24.18344,0,16,1,22.94264,45.12718,30.92269,0,223.4414,322.4339,1,0,0,2,1,2,68.6,10.3,0,67,0,60,0,0,.6931472,4.094345,0,0,0,0,0,0,67,9.346587,.6931472,5.775898,1 +11,6,0,1,2,630157,0,11458.65,25.18344,0,16,1,38.26648,55.16828,32.73398,0,0,126.1687,0,0,0,3,1,3,68.6,10.3,0,67,0,60,0,0,1.098612,4.094345,0,0,0,0,0,0,67,9.346587,1.098612,4.83762,1 +11,6,0,1,3,630157,0,11458.65,26.18344,0,16,1,67.28735,99.6022,0,0,331.3373,498.2268,1,0,0,4,0,3,68.6,10.3,0,67,0,60,0,0,1.098612,4.094345,0,0,0,0,0,0,67,9.346587,1.098612,6.211055,1 +11,6,0,1,4,630157,0,11458.65,27.18344,0,16,1,35.68717,22.6082,36.02885,0,0,94.32422,0,0,0,4,0,4,68.6,10.3,0,67,0,60,0,0,1.386294,4.094345,0,0,0,0,0,0,67,9.346587,1.386294,4.546738,1 +11,6,0,1,5,630157,0,11458.65,28.18344,0,16,1,131.1419,0,0,0,0,131.1419,0,0,0,1,14,4,68.6,10.3,0,67,0,60,0,0,1.386294,4.094345,0,0,0,0,0,0,67,9.346587,1.386294,4.87628,1 +11,6,0,1,1,630158,0,11458.65,22.78166,1,16,1,14.96259,31.11222,0,0,549.6259,595.7007,2,0,0,3,0,2,83,17.2,0,83,0,60,0,0,.6931472,4.094345,0,0,0,0,0,0,83,9.346587,.6931472,6.389739,1 +11,6,0,1,2,630158,0,11458.65,23.78166,1,16,1,27.20148,8.298756,0,0,0,35.50023,0,0,0,2,0,3,83,17.2,0,83,0,60,0,0,1.098612,4.094345,0,0,0,0,0,0,83,9.346587,1.098612,3.569539,1 +11,6,0,1,3,630158,0,11458.65,24.78166,1,16,1,20.31316,15.22218,0,0,439.6953,475.2307,1,0,0,2,0,3,83,17.2,0,83,0,60,0,0,1.098612,4.094345,0,0,0,0,0,0,83,9.346587,1.098612,6.1638,1 +11,6,0,1,4,630158,0,11458.65,25.78166,1,16,1,14.20273,8.458618,4.096431,0,0,26.75778,0,0,0,1,0,4,83,17.2,0,83,0,60,0,0,1.386294,4.094345,0,0,0,0,0,0,83,9.346587,1.386294,3.286825,1 +11,6,0,1,5,630158,0,11458.65,26.78166,1,16,1,346.6263,0,22.14533,0,0,368.7716,0,0,0,7,30,4,83,17.2,0,83,0,60,0,0,1.386294,4.094345,0,0,0,0,0,0,83,9.346587,1.386294,5.910178,1 +11,6,0,1,1,630159,1,15066.05,18.19849,0,9,1,10.57977,7.270419,0,0,0,17.85019,0,0,0,0,0,6,71.3,0,0,64.8,0,163.2,0,0,1.791759,5.094976,0,0,0,0,0,0,64.8,9.620266,1.791759,2.882014,1 +11,6,0,1,1,630160,1,15066.05,16.34223,1,18,1,0,0,0,0,0,0,0,0,0,0,0,6,76.1,3.4,0,77.3,0,163.2,1,1,1.791759,5.094976,0,0,0,0,0,0,77.3,9.620266,1.791759,,0 +11,6,0,1,2,630160,1,15066.05,17.34223,1,18,1,13.28778,0,30.37206,0,0,43.65983,0,0,0,1,0,5,76.1,3.4,0,77.3,0,163.2,1,1,1.609438,5.094976,0,0,0,0,0,0,77.3,9.620266,1.609438,3.776428,1 +11,6,0,1,3,630160,1,15066.05,18.34223,1,18,1,12.45675,0,0,0,0,12.45675,0,0,0,0,0,5,76.1,3.4,0,77.3,0,163.2,0,0,1.609438,5.094976,0,0,0,0,0,0,77.3,9.620266,1.609438,2.522262,1 +11,6,0,1,1,630161,1,15066.05,7.039014,0,18,1,0,0,0,0,0,0,0,0,0,0,0,6,88.3,10.57626,0,88.9,0,163.2,1,0,1.791759,5.094976,0,0,0,0,0,0,88.9,9.620266,1.791759,,0 +11,6,0,1,2,630161,1,15066.05,8.039015,0,18,1,0,0,0,0,0,0,0,0,0,0,0,5,88.3,10.57626,0,88.9,0,163.2,1,0,1.609438,5.094976,0,0,0,0,0,0,88.9,9.620266,1.609438,,0 +11,6,0,1,3,630161,1,15066.05,9.039015,0,18,1,0,0,0,0,0,0,0,0,0,0,0,5,88.3,10.57626,0,88.9,0,163.2,1,0,1.609438,5.094976,0,0,0,0,0,0,88.9,9.620266,1.609438,,0 +11,6,0,1,1,630162,1,15066.05,12.24914,0,18,1,0,0,0,0,0,0,0,0,0,0,0,6,88.3,10.57626,0,88.9,0,163.2,1,0,1.791759,5.094976,0,0,0,0,0,0,88.9,9.620266,1.791759,,0 +11,6,0,1,2,630162,1,15066.05,13.24914,0,18,1,7.593014,0,0,0,0,7.593014,0,0,0,1,0,5,88.3,10.57626,0,88.9,0,163.2,1,0,1.609438,5.094976,0,0,0,0,0,0,88.9,9.620266,1.609438,2.027229,1 +11,6,0,1,3,630162,1,15066.05,14.24914,0,18,1,0,0,0,0,0,0,0,0,0,0,0,5,88.3,10.57626,0,88.9,0,163.2,1,0,1.609438,5.094976,0,0,0,0,0,0,88.9,9.620266,1.609438,,0 +11,6,0,1,1,630163,1,15066.05,49.65914,0,18,1,23.2755,1.675836,0,0,0,24.95133,0,0,0,0,0,6,91.5,0,0,77.4,0,163.2,0,0,1.791759,5.094976,0,0,0,1,0,0,77.4,9.620266,1.791759,3.216927,1 +11,6,0,1,2,630163,1,15066.05,50.65914,0,18,1,15.18603,0,33.02961,0,0,48.21564,0,0,0,1,0,5,91.5,0,0,77.4,0,163.2,0,0,1.609438,5.094976,0,0,0,1,0,0,77.4,9.620266,1.609438,3.875684,1 +11,6,0,1,3,630163,1,15066.05,51.65914,0,18,1,0,0,0,0,0,0,0,0,0,0,0,5,91.5,0,0,77.4,0,163.2,0,0,1.609438,5.094976,0,0,0,1,0,0,77.4,9.620266,1.609438,,0 +11,6,0,1,1,630164,1,15066.05,47.17317,1,18,1,0,0,0,0,0,0,0,0,0,0,0,6,85.1,13.8,0,71.6,0,163.2,0,0,1.791759,5.094976,0,0,0,1,0,0,71.6,9.620266,1.791759,,0 +11,6,0,1,2,630164,1,15066.05,48.17317,1,18,1,31.13136,9.943052,44.03948,0,0,85.11389,0,0,0,1,1,5,85.1,13.8,0,71.6,0,163.2,0,0,1.609438,5.094976,0,0,0,1,0,0,71.6,9.620266,1.609438,4.44399,1 +11,6,0,1,3,630164,1,15066.05,49.17317,1,18,1,2.422145,0,0,0,0,2.422145,0,0,0,0,0,5,85.1,13.8,0,71.6,0,163.2,0,0,1.609438,5.094976,0,0,0,1,0,0,71.6,9.620266,1.609438,.8846537,1 +18,6,25,1,1,630178,0,12082.44,9.563313,0,14,1,0,2.056708,0,0,0,2.056708,0,0,0,0,0,4,93.3,10.57626,0,96.3,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,96.3,9.399591,1.386294,.7211065,1 +18,6,25,1,2,630178,0,12082.44,10.56331,0,14,1,0,0,0,0,0,0,0,0,0,0,0,4,93.3,10.57626,0,96.3,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,96.3,9.399591,1.386294,,0 +18,6,25,1,3,630178,0,12082.44,11.56331,0,14,1,20.41522,3.391003,25.13149,0,0,48.93772,0,0,0,2,0,4,93.3,10.57626,0,96.3,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,96.3,9.399591,1.386294,3.890548,1 +18,6,25,1,1,630179,0,12082.44,36.3833,1,14,1,131.824,29.99154,0,0,0,161.8155,0,0,0,6,0,4,92,13.8,0,88.6,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,88.6,9.399591,1.386294,5.086457,1 +18,6,25,1,2,630179,0,12082.44,37.3833,1,14,1,22.77904,2.46773,0,0,0,25.24677,0,0,0,3,0,4,92,13.8,0,88.6,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,88.6,9.399591,1.386294,3.228698,1 +18,6,25,1,3,630179,0,12082.44,38.3833,1,14,1,9.342561,0,0,0,0,9.342561,0,0,0,1,0,4,92,13.8,0,88.6,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,88.6,9.399591,1.386294,2.23458,1 +18,6,25,1,1,630180,0,12082.44,12.09856,0,14,1,5.501481,0,0,0,0,5.501481,0,0,0,1,0,4,91.7,10.57626,0,96.3,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,96.3,9.399591,1.386294,1.705017,1 +18,6,25,1,2,630180,0,12082.44,13.09856,0,14,1,0,0,0,0,0,0,0,0,0,0,0,4,91.7,10.57626,0,96.3,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,96.3,9.399591,1.386294,,0 +18,6,25,1,3,630180,0,12082.44,14.09856,0,14,1,39.44637,0,0,0,0,39.44637,0,0,0,1,0,4,91.7,10.57626,0,96.3,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,96.3,9.399591,1.386294,3.674942,1 +18,6,25,1,1,630181,0,12082.44,42.05339,0,16,1,88.87008,8.569615,0,0,0,97.4397,0,0,0,5,0,4,81.4,6.9,0,76.1,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,76.1,9.399591,1.386294,4.579234,1 +18,6,25,1,2,630181,0,12082.44,43.05339,0,16,1,41.76158,0,0,0,0,41.76158,0,0,0,2,0,4,81.4,6.9,0,76.1,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,76.1,9.399591,1.386294,3.731977,1 +18,6,25,1,3,630181,0,12082.44,44.05339,0,16,1,21.79931,11.609,0,0,0,33.40831,0,0,0,3,0,4,81.4,6.9,0,76.1,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,76.1,9.399591,1.386294,3.508805,1 +11,6,0,1,1,630182,1,1049.667,59.97262,1,7,1,49.51333,41.15531,35.97122,0,0,126.6399,0,0,0,4,1,2,87.8,6.9,0,70.5,0,171.6,0,0,.6931472,5.145166,0,0,0,0,0,0,70.5,6.957181,.6931472,4.841347,1 +11,6,0,1,2,630182,1,1049.667,60.97262,1,7,1,7.593014,13.24981,0,0,0,20.84282,0,0,0,1,0,2,87.8,6.9,0,70.5,0,171.6,0,0,.6931472,5.145166,0,0,0,0,0,0,70.5,6.957181,.6931472,3.03701,1 +11,6,0,1,3,630182,1,1049.667,61.97262,1,7,1,66.78201,88.72665,32.0519,0,0,187.5605,0,0,0,7,0,2,87.8,6.9,0,70.5,0,171.6,0,0,.6931472,5.145166,0,0,0,0,0,0,70.5,6.957181,.6931472,5.234102,1 +13,6,0,1,1,630185,0,6735.316,61.46201,0,12,1,43.33193,0,0,0,0,43.33193,0,0,0,4,0,2,82.4,17.2,1,31.8,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,31.8,8.815269,.6931472,3.76889,1 +13,6,0,1,2,630185,0,6735.316,62.46201,0,12,1,23.04496,8.964866,0,0,0,32.00982,0,0,0,3,0,2,82.4,17.2,1,31.8,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,31.8,8.815269,.6931472,3.466043,1 +13,6,0,1,1,630186,0,6735.316,57.24025,1,11,1,13.04165,0,0,0,0,13.04165,0,0,0,2,0,2,80.3,24.1,1,46.6,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,46.6,8.815269,.6931472,2.568148,1 +13,6,0,1,2,630186,0,6735.316,58.24025,1,11,1,68.3793,18.44352,38.64375,0,717.416,842.8825,1,0,0,7,0,2,80.3,24.1,1,46.6,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,46.6,8.815269,.6931472,6.736827,1 +13,6,0,1,3,630186,0,6735.316,59.24025,1,11,1,130.3602,12.96741,0,0,0,143.3276,0,0,0,9,0,1,80.3,24.1,1,46.6,300,300,0,0,0,5.703783,1,4.564348,5.755076,1,0,0,46.6,8.815269,0,4.965133,1 +10,6,50,0,1,630189,1,3579.621,58.75702,0,3,1,0,0,0,0,0,0,0,0,0,0,0,2,69.9,3.4,1,57.1,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,0,0,1,57.1,8.183291,.6931472,,0 +10,6,50,0,2,630189,1,3579.621,59.75702,0,3,1,0,0,0,0,0,0,0,0,0,0,0,2,69.9,3.4,1,57.1,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,0,0,1,57.1,8.183291,.6931472,,0 +10,6,50,0,3,630189,1,3579.621,60.75702,0,3,1,0,0,0,0,0,0,0,0,0,0,0,2,69.9,3.4,1,57.1,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,0,0,1,57.1,8.183291,.6931472,,0 +10,6,50,1,1,630190,1,3579.621,48.68172,1,9,1,67.73244,12.7135,0,0,0,80.44594,0,0,0,3,0,2,89.9,20.7,1,56,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,0,0,1,56,8.183291,.6931472,4.387585,1 +10,6,50,1,2,630190,1,3579.621,49.68172,1,9,1,26.44503,4.280317,0,0,0,30.72535,0,0,0,2,0,2,89.9,20.7,1,56,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,0,0,1,56,8.183291,.6931472,3.425088,1 +10,6,50,1,3,630190,1,3579.621,50.68172,1,9,1,17.15266,24.01715,0,0,0,41.16981,0,0,0,2,0,2,89.9,20.7,1,56,1000,1000,0,0,.6931472,6.907755,0,3.931826,7.600903,0,0,1,56,8.183291,.6931472,3.717705,1 +11,6,0,0,1,630191,0,2842.806,48.14237,0,15,1,110.223,398.3719,34.85065,54.69079,755.5743,1299.02,2,0,6,12,0,1,48.9,20.7,0,48.9,0,155.48,0,0,0,5.046517,0,0,0,1,0,0,48.9,7.952899,0,7.169365,1 +11,6,0,0,2,630191,0,2842.806,49.14237,0,15,1,184.7374,562.2176,39.58066,5.666792,0,786.5357,0,0,1,21,0,1,48.9,20.7,0,48.9,0,155.48,0,0,0,5.046517,0,0,0,1,0,0,48.9,7.952899,0,6.667638,1 +11,6,0,0,3,630191,0,2842.806,50.14237,0,15,.8931507,131.3894,583.8319,41.79417,6.346484,330.7032,1087.719,1,0,1,16,0,1,48.9,20.7,0,48.9,0,155.48,0,0,0,5.046517,0,0,0,1,0,0,48.9,7.952899,0,6.991838,1 +15,6,95,0,1,630246,1,6735.316,14.98426,1,10,1,0,0,0,0,0,0,0,0,0,0,0,4,50.5,6.9,0,84.5,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,1,0,0,84.5,8.815269,1.386294,,0 +15,6,95,0,2,630246,1,6735.316,15.98426,1,10,1,0,0,0,0,0,0,0,0,0,0,0,4,50.5,6.9,0,84.5,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,1,0,0,84.5,8.815269,1.386294,,0 +15,6,95,0,3,630246,1,6735.316,16.98426,1,10,1,14.87889,0,0,0,0,14.87889,0,0,0,0,0,4,50.5,6.9,0,84.5,1000,1000,1,1,1.386294,6.907755,0,4.564348,6.959049,1,0,0,84.5,8.815269,1.386294,2.699944,1 +15,6,95,0,1,630247,1,6735.316,52.0794,1,10,1,9.310199,0,0,0,0,9.310199,0,0,0,1,0,4,68.5,27.6,0,40,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,1,0,40,8.815269,1.386294,2.23111,1 +15,6,95,0,2,630247,1,6735.316,53.0794,1,10,1,343.5839,0,0,0,0,343.5839,0,0,0,9,0,4,68.5,27.6,0,40,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,1,0,40,8.815269,1.386294,5.839431,1 +15,6,95,0,3,630247,1,6735.316,54.0794,1,10,1,6.920415,0,0,0,0,6.920415,0,0,0,1,0,4,68.5,27.6,0,40,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,1,0,40,8.815269,1.386294,1.934476,1 +15,6,95,0,1,630250,1,6735.316,14.95962,0,10,1,0,0,0,0,0,0,0,0,0,0,0,4,92.6,6.9,0,90.9,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,1,0,90.9,8.815269,1.386294,,0 +15,6,95,0,2,630250,1,6735.316,15.95962,0,10,1,0,0,0,0,0,0,0,0,0,0,0,4,92.6,6.9,0,90.9,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,1,0,90.9,8.815269,1.386294,,0 +15,6,95,0,3,630250,1,6735.316,16.95962,0,10,1,0,0,0,0,0,0,0,0,0,0,0,4,92.6,6.9,0,90.9,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,1,0,90.9,8.815269,1.386294,,0 +15,6,95,0,1,630251,1,6735.316,55.64682,0,5,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,.1442925,,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,1,70.68995,8.815269,1.386294,,0 +15,6,95,0,2,630251,1,6735.316,56.64682,0,5,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,.1442925,,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,1,70.68995,8.815269,1.386294,,0 +15,6,95,0,3,630251,1,6735.316,57.64682,0,5,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,.1442925,,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,1,70.68995,8.815269,1.386294,,0 +11,6,0,0,1,630259,0,10823.86,41.1718,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,80.9,3.4,0,75,0,229.65,0,0,1.098612,5.436556,0,0,0,1,0,0,75,9.2896,1.098612,,0 +11,6,0,0,2,630259,0,10823.86,42.1718,1,12,1,15.64886,0,0,0,0,15.64886,0,0,0,1,0,3,80.9,3.4,0,75,0,229.65,0,0,1.098612,5.436556,0,0,0,1,0,0,75,9.2896,1.098612,2.750398,1 +11,6,0,0,3,630259,0,10823.86,43.1718,1,12,1,26.48084,0,29.61672,0,0,56.09756,0,0,0,2,0,3,80.9,3.4,0,75,0,229.65,0,0,1.098612,5.436556,0,0,0,1,0,0,75,9.2896,1.098612,4.027092,1 +11,6,0,0,1,630260,0,10823.86,43.91239,0,18,1,22.11825,5.423224,0,0,0,27.54147,0,0,0,3,0,3,72.3,13.8,0,70.5,0,229.65,0,0,1.098612,5.436556,0,0,0,1,0,0,70.5,9.2896,1.098612,3.315693,1 +11,6,0,0,2,630260,0,10823.86,44.91239,0,18,1,55.72519,8.812977,0,0,1277.481,1342.019,1,0,0,3,0,3,72.3,13.8,0,70.5,0,229.65,0,0,1.098612,5.436556,0,0,0,1,0,0,70.5,9.2896,1.098612,7.201931,1 +11,6,0,0,3,630260,0,10823.86,45.91239,0,18,1,165.8537,3.254355,39.2439,0,219.1638,427.5157,1,0,0,8,0,3,72.3,13.8,0,70.5,0,229.65,0,0,1.098612,5.436556,0,0,0,1,0,0,70.5,9.2896,1.098612,6.057991,1 +11,6,0,0,1,630261,0,10823.86,9.138946,0,12,1,53.16887,0,0,0,0,53.16887,0,0,0,6,0,3,76.7,10.57626,0,70.4,0,229.65,1,0,1.098612,5.436556,0,0,0,1,0,0,70.4,9.2896,1.098612,3.973473,1 +11,6,0,0,2,630261,0,10823.86,10.13895,0,12,1,5.343512,0,0,0,0,5.343512,0,0,0,1,0,3,76.7,10.57626,0,70.4,0,229.65,1,0,1.098612,5.436556,0,0,0,1,0,0,70.4,9.2896,1.098612,1.675883,1 +11,6,0,0,3,630261,0,10823.86,11.13895,0,12,1,18.11847,0,0,0,0,18.11847,0,0,0,2,0,3,76.7,10.57626,0,70.4,0,229.65,1,0,1.098612,5.436556,0,0,0,1,0,0,70.4,9.2896,1.098612,2.896932,1 +7,6,25,1,1,630265,1,3338.966,18.20945,1,10.62774,1,155.6584,5.04838,0,0,0,160.7068,0,0,0,4,0,5,80.9,6.9,0,67,720,720,0,0,1.609438,6.579251,0,3.258096,7.965546,1,0,0,67,8.113716,1.609438,5.079581,1 +7,6,25,1,2,630265,1,3338.966,19.20945,1,10.62774,1,18.13374,22.57272,0,0,0,40.70646,0,0,0,2,0,5,80.9,6.9,0,67,720,720,0,0,1.609438,6.579251,0,3.258096,7.965546,1,0,0,67,8.113716,1.609438,3.706387,1 +7,6,25,1,3,630265,1,3338.966,20.20945,1,10.62774,1,20.92624,31.18353,0,0,197.2556,249.3654,1,1,0,1,0,5,80.9,6.9,0,67,720,720,0,0,1.609438,6.579251,0,3.258096,7.965546,1,0,0,67,8.113716,1.609438,5.518919,1 +7,6,25,1,1,630267,1,3338.966,56.71184,1,8,1,78.03954,93.50021,37.86285,0,0,209.4026,0,0,0,6,0,5,88.8,27.6,0,63.6,720,720,0,0,1.609438,6.579251,0,3.258096,7.965546,0,1,0,63.6,8.113716,1.609438,5.344259,1 +7,6,25,1,2,630267,1,3338.966,57.71184,1,8,1,44.20098,74.06498,0,0,0,118.266,0,0,0,5,0,5,88.8,27.6,0,63.6,720,720,0,0,1.609438,6.579251,0,3.258096,7.965546,0,1,0,63.6,8.113716,1.609438,4.772936,1 +7,6,25,1,3,630267,1,3338.966,58.71184,1,8,1,9.605489,6.020583,0,0,0,15.62607,0,0,0,1,0,5,88.8,27.6,0,63.6,720,720,0,0,1.609438,6.579251,0,3.258096,7.965546,0,1,0,63.6,8.113716,1.609438,2.748941,1 +7,6,25,1,1,630269,1,3338.966,16.16427,0,8,1,10.51746,2.587295,0,0,0,13.10475,0,0,0,2,0,5,68.1,3.4,0,60.2,720,720,1,0,1.609438,6.579251,0,3.258096,7.965546,0,1,0,60.2,8.113716,1.609438,2.572975,1 +7,6,25,1,2,630269,1,3338.966,17.16427,0,8,1,35.88969,4.608991,0,0,0,40.49868,0,0,0,1,0,5,68.1,3.4,0,60.2,720,720,1,0,1.609438,6.579251,0,3.258096,7.965546,0,1,0,60.2,8.113716,1.609438,3.701269,1 +7,6,25,1,3,630269,1,3338.966,18.16427,0,8,1,0,0,0,0,0,0,0,0,0,0,0,5,68.1,3.4,0,60.2,720,720,0,0,1.609438,6.579251,0,3.258096,7.965546,0,1,0,60.2,8.113716,1.609438,,0 +10,6,50,1,1,630290,1,5414.076,11.45243,0,11,1,4.914005,9.58231,0,0,0,14.49631,0,0,0,1,0,5,85,10.57626,0,74.1,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,1,0,0,74.1,8.596942,1.609438,2.673894,1 +10,6,50,1,2,630290,1,5414.076,12.45243,0,11,1,0,0,0,0,0,0,0,0,0,0,0,5,85,10.57626,0,74.1,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,1,0,0,74.1,8.596942,1.609438,,0 +10,6,50,1,3,630290,1,5414.076,13.45243,0,11,1,0,0,0,0,0,0,0,0,0,0,0,5,85,10.57626,0,74.1,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,1,0,0,74.1,8.596942,1.609438,,0 +10,6,50,1,4,630290,1,5414.076,14.45243,0,11,1,0,0,0,0,0,0,0,0,0,0,0,5,85,10.57626,0,74.1,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,1,0,0,74.1,8.596942,1.609438,,0 +10,6,50,1,5,630290,1,5414.076,15.45243,0,11,1,0,0,0,0,0,0,0,0,0,0,0,5,85,10.57626,0,74.1,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,1,0,0,74.1,8.596942,1.609438,,0 +10,6,50,1,1,630291,1,5414.076,41.6345,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,77.1,17.2,1,59.1,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,1,0,59.1,8.596942,1.609438,,0 +10,6,50,1,2,630291,1,5414.076,42.6345,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,77.1,17.2,1,59.1,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,1,0,59.1,8.596942,1.609438,,0 +10,6,50,1,3,630291,1,5414.076,43.6345,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,77.1,17.2,1,59.1,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,1,0,59.1,8.596942,1.609438,,0 +10,6,50,1,4,630291,1,5414.076,44.6345,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,77.1,17.2,1,59.1,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,1,0,59.1,8.596942,1.609438,,0 +10,6,50,1,5,630291,1,5414.076,45.6345,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,77.1,17.2,1,59.1,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,1,0,59.1,8.596942,1.609438,,0 +10,6,50,1,1,630293,1,5414.076,15.97262,0,11,1,12.28501,0,40.88452,0,0,53.16953,0,0,0,1,0,5,80.9,10.3,0,71.6,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,0,1,0,71.6,8.596942,1.609438,3.973485,1 +10,6,50,1,2,630293,1,5414.076,16.97262,0,11,1,8.659982,0,0,0,0,8.659982,0,0,0,1,0,5,80.9,10.3,0,71.6,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,0,1,0,71.6,8.596942,1.609438,2.158713,1 +10,6,50,1,3,630293,1,5414.076,17.97262,0,11,1,9.170487,0,0,0,0,9.170487,0,0,0,1,0,5,80.9,10.3,0,71.6,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,0,1,0,71.6,8.596942,1.609438,2.215991,1 +10,6,50,1,4,630293,1,5414.076,18.97262,0,11,1,0,0,29.64741,0,0,29.64741,0,0,0,0,0,5,80.9,10.3,0,71.6,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,1,0,71.6,8.596942,1.609438,3.389375,1 +10,6,50,1,5,630293,1,5414.076,19.97262,0,11,1,0,0,0,0,0,0,0,0,0,0,0,5,80.9,10.3,0,71.6,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,1,0,71.6,8.596942,1.609438,,0 +10,6,50,1,1,630294,1,5414.076,36.46817,1,11,1,39.31204,18.79607,0,0,0,58.10811,0,0,0,4,0,5,76.1,10.3,0,60.2,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,1,0,60.2,8.596942,1.609438,4.062305,1 +10,6,50,1,2,630294,1,5414.076,37.46817,1,11,1,41.93254,18.45943,0,0,0,60.39198,0,0,0,3,0,5,76.1,10.3,0,60.2,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,1,0,60.2,8.596942,1.609438,4.100856,1 +10,6,50,1,3,630294,1,5414.076,38.46817,1,11,1,23.34306,5.731555,0,0,0,29.07461,0,0,0,3,0,5,76.1,10.3,0,60.2,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,1,0,60.2,8.596942,1.609438,3.369865,1 +10,6,50,1,4,630294,1,5414.076,39.46817,1,11,1,109.9025,14.19355,0,0,0,124.096,0,0,0,4,0,5,76.1,10.3,0,60.2,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,1,0,60.2,8.596942,1.609438,4.821055,1 +10,6,50,1,5,630294,1,5414.076,40.46817,1,11,1,63.93776,11.14682,48.90054,0,0,123.9851,0,0,0,3,0,5,76.1,10.3,0,60.2,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,1,0,60.2,8.596942,1.609438,4.820161,1 +11,6,0,1,1,630300,1,1087.558,57.61259,1,6,1,10.57977,0,0,0,0,10.57977,0,0,0,1,0,1,75.5,17.2,0,81.8,0,381.28,0,0,0,5.943534,0,0,0,1,0,0,81.8,6.992609,0,2.358944,1 +11,6,0,1,2,630300,1,1087.558,58.61259,1,6,1,21.26044,5.08732,30.00759,0,0,56.35535,0,0,0,2,0,1,75.5,17.2,0,81.8,0,381.28,0,0,0,5.943534,0,0,0,1,0,0,81.8,6.992609,0,4.031677,1 +11,6,0,1,3,630300,1,1087.558,59.61259,1,6,1,0,0,0,0,0,0,0,0,0,0,0,1,75.5,17.2,0,81.8,0,381.28,0,0,0,5.943534,0,0,0,1,0,0,81.8,6.992609,0,,0 +11,6,0,1,1,630304,0,2888.889,59.80835,1,9,1,0,0,0,0,0,0,0,0,0,0,0,1,81.4,27.6,0,53.4,0,0,0,0,0,0,0,0,0,0,1,0,53.4,7.968973,0,,0 +11,6,0,1,2,630304,0,2888.889,60.80835,1,9,1,90.35687,46.55657,40.85801,0,0,177.7715,0,0,0,9,1,1,81.4,27.6,0,53.4,0,0,0,0,0,0,0,0,0,0,1,0,53.4,7.968973,0,5.180499,1 +11,6,0,1,3,630304,0,2888.889,61.80835,1,9,1,121.1073,98.86505,38.97232,0,0,258.9446,0,0,0,13,1,1,81.4,27.6,0,53.4,0,0,0,0,0,0,0,0,0,0,1,0,53.4,7.968973,0,5.556614,1 +14,6,95,1,1,630306,1,0,22.10814,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,77.1,3.4,0,73.9,225,174.25,0,0,1.386294,5.160491,0,4.564348,5.467394,0,1,0,73.9,0,1.386294,,0 +14,6,95,1,2,630306,1,0,23.10814,1,12,1,0,0,0,0,0,0,1,1,0,0,0,4,77.1,3.4,0,73.9,225,174.25,0,0,1.386294,5.160491,0,4.564348,5.467394,0,1,0,73.9,0,1.386294,,0 +14,6,95,1,1,630308,1,0,16.12047,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,91,3.4,0,86.4,225,174.25,1,0,1.386294,5.160491,0,4.564348,5.467394,0,0,0,86.4,0,1.386294,,0 +14,6,95,1,2,630308,1,0,17.12047,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,91,3.4,0,86.4,225,174.25,1,0,1.386294,5.160491,0,4.564348,5.467394,0,0,0,86.4,0,1.386294,,0 +14,6,95,1,3,630308,1,0,18.12047,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,91,3.4,0,86.4,225,174.25,0,0,.6931472,5.160491,0,4.564348,5.467394,0,0,0,86.4,0,.6931472,,0 +14,6,95,1,4,630308,1,0,19.12047,0,12,1,7.876969,0,0,0,0,7.876969,0,0,0,1,0,2,91,3.4,0,86.4,225,174.25,0,0,.6931472,5.160491,0,4.564348,5.467394,0,0,0,86.4,0,.6931472,2.063943,1 +14,6,95,1,5,630308,1,0,20.12047,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,91,3.4,0,86.4,225,174.25,0,0,.6931472,5.160491,0,4.564348,5.467394,0,0,0,86.4,0,.6931472,,0 +14,6,95,1,1,630309,1,0,1.741273,0,12,1,78.62408,0,0,0,0,78.62408,0,0,0,0,0,4,77.40034,10.57626,0,85.2,225,174.25,1,0,1.386294,5.160491,0,4.564348,5.467394,0,0,0,85.2,0,1.386294,4.364678,1 +14,6,95,1,2,630309,1,0,2.741273,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,0,85.2,225,174.25,1,0,1.386294,5.160491,0,4.564348,5.467394,0,0,0,85.2,0,1.386294,,0 +14,6,95,1,1,630310,1,2784.458,20.04928,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,75.4,0,0,58,78.95,0,0,0,0,0,0,4.564348,4.420108,1,0,0,58,7.932168,0,,0 +14,6,95,1,2,630310,1,2784.458,21.04928,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,75.4,0,0,58,78.95,0,0,0,0,0,0,4.564348,4.420108,1,0,0,58,7.932168,0,,0 +14,6,95,1,3,630310,1,2784.458,22.04928,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,75.4,0,0,58,78.95,0,0,0,0,0,0,4.564348,4.420108,1,0,0,58,7.932168,0,,0 +14,6,95,1,4,630310,1,2784.458,23.04928,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,75.4,0,0,58,78.95,0,0,0,0,0,0,4.564348,4.420108,1,0,0,58,7.932168,0,,0 +14,6,95,1,5,630310,1,2784.458,24.04928,0,12,1,0,0,0,0,0,0,0,0,0,0,0,1,75.4,0,0,58,78.95,0,0,0,0,0,0,4.564348,4.420108,1,0,0,58,7.932168,0,,0 +11,6,0,1,1,630326,1,14588.33,48.26557,1,18,1,132.8819,48.66695,0,0,455.3534,636.9022,1,0,0,9,0,4,73.9,17.2,0,62.5,0,316.4,0,0,1.386294,5.757007,0,0,0,1,0,0,62.5,9.588045,1.386294,6.456616,1 +11,6,0,1,2,630326,1,14588.33,49.26557,1,18,1,132.4981,64.44571,37.96507,0,0,234.9089,0,0,0,6,0,4,73.9,17.2,0,62.5,0,316.4,0,0,1.386294,5.757007,0,0,0,1,0,0,62.5,9.588045,1.386294,5.459198,1 +11,6,0,1,3,630326,1,14588.33,50.26557,1,18,1,69.55017,67.80276,0,0,0,137.3529,0,0,0,3,0,4,73.9,17.2,0,62.5,0,316.4,0,0,1.386294,5.757007,0,0,0,1,0,0,62.5,9.588045,1.386294,4.922554,1 +11,6,0,1,1,630327,1,14588.33,9.111567,0,18,1,39.77994,7.617435,0,0,418.959,466.3563,1,0,0,5,0,4,83.3,10.57626,0,77.8,0,316.4,1,0,1.386294,5.757007,0,0,0,1,0,0,77.8,9.588045,1.386294,6.14495,1 +11,6,0,1,2,630327,1,14588.33,10.11157,0,18,1,48.21564,5.694761,0,0,0,53.9104,0,0,0,2,0,4,83.3,10.57626,0,77.8,0,316.4,1,0,1.386294,5.757007,0,0,0,1,0,0,77.8,9.588045,1.386294,3.987324,1 +11,6,0,1,3,630327,1,14588.33,11.11157,0,18,1,37.02422,7.024221,0,0,0,44.04844,0,0,0,2,0,4,83.3,10.57626,0,77.8,0,316.4,1,0,1.386294,5.757007,0,0,0,1,0,0,77.8,9.588045,1.386294,3.78529,1 +11,6,0,1,1,630328,1,14588.33,46.57084,0,19,1,126.9573,121.35,42.74228,0,0,291.0495,0,0,0,9,0,4,86.2,17.2,0,52.3,0,316.4,0,0,1.386294,5.757007,0,0,0,1,0,0,52.3,9.588045,1.386294,5.673493,1 +11,6,0,1,2,630328,1,14588.33,47.57084,0,19,1,50.1139,145.1025,24.6773,0,0,219.8937,0,0,0,2,0,4,86.2,17.2,0,52.3,0,316.4,0,0,1.386294,5.757007,0,0,0,1,0,0,52.3,9.588045,1.386294,5.393144,1 +11,6,0,1,3,630328,1,14588.33,48.57084,0,19,1,53.63322,146.5917,0,0,0,200.2249,0,0,0,2,0,4,86.2,17.2,0,52.3,0,316.4,0,0,1.386294,5.757007,0,0,0,1,0,0,52.3,9.588045,1.386294,5.299441,1 +11,6,0,1,1,630329,1,14588.33,13.7358,0,18,1,30.46974,8.463818,0,0,0,38.93356,0,0,0,2,0,4,81.7,10.57626,0,96.3,0,316.4,1,0,1.386294,5.757007,0,0,0,1,0,0,96.3,9.588045,1.386294,3.661857,1 +11,6,0,1,2,630329,1,14588.33,14.7358,0,18,1,42.52088,2.372817,0,0,0,44.8937,0,0,0,3,0,4,81.7,10.57626,0,96.3,0,316.4,1,0,1.386294,5.757007,0,0,0,1,0,0,96.3,9.588045,1.386294,3.804297,1 +11,6,0,1,3,630329,1,14588.33,15.7358,0,18,1,24.91349,2.508651,0,0,0,27.42215,0,0,0,2,0,4,81.7,10.57626,0,96.3,0,316.4,1,0,1.386294,5.757007,0,0,0,1,0,0,96.3,9.588045,1.386294,3.311351,1 +11,6,0,0,1,630381,0,9750.128,55.25257,0,9,1,20.84202,101.5006,0,0,0,122.3426,0,0,0,2,0,3,81.9,24.1,1,73.9,0,237.48,0,0,1.098612,5.470083,0,0,0,1,0,0,73.9,9.185139,1.098612,4.806826,1 +11,6,0,0,2,630381,0,9750.128,56.25257,0,9,1,213.4284,148.856,30.0075,0,0,392.2918,0,0,0,26,1,3,81.9,24.1,1,73.9,0,237.48,0,0,1.098612,5.470083,0,0,0,1,0,0,73.9,9.185139,1.098612,5.972006,1 +11,6,0,0,3,630381,0,9750.128,57.25257,0,9,1,115.0203,148.4269,31.46144,0,0,294.9087,0,0,0,11,0,3,81.9,24.1,1,73.9,0,237.48,0,0,1.098612,5.470083,0,0,0,1,0,0,73.9,9.185139,1.098612,5.686666,1 +11,6,0,0,1,630382,0,9750.128,14.55441,1,10,1,213.0054,36.56524,31.67987,0,0,281.2505,0,0,0,8,1,3,88.3,10.57626,0,88.9,0,237.48,1,1,1.098612,5.470083,0,0,0,1,0,0,88.9,9.185139,1.098612,5.639246,1 +11,6,0,0,2,630382,0,9750.128,15.55441,1,10,1,109.1523,45.09002,7.486872,0,0,161.7292,0,0,0,14,0,3,88.3,10.57626,0,88.9,0,237.48,1,1,1.098612,5.470083,0,0,0,1,0,0,88.9,9.185139,1.098612,5.085923,1 +11,6,0,0,3,630382,0,9750.128,16.55441,1,10,1,93.36942,42.07375,31.33627,142.0839,0,166.7794,0,0,7,5,0,3,88.3,10.57626,0,88.9,0,237.48,1,1,1.098612,5.470083,0,0,0,1,0,0,88.9,9.185139,1.098612,5.116672,1 +11,6,0,0,1,630383,0,9750.128,45.0486,1,10,1,322.6344,219.7707,44.18508,0,333.4723,920.0625,1,0,0,34,1,3,69.7,44.8,1,34.1,0,237.48,0,0,1.098612,5.470083,0,0,0,1,0,0,34.1,9.185139,1.098612,6.824441,1 +11,6,0,0,2,630383,0,9750.128,46.0486,1,10,1,421.2303,314.6324,0,0,794.4486,1530.311,1,0,0,48,0,3,69.7,44.8,1,34.1,0,237.48,0,0,1.098612,5.470083,0,0,0,1,0,0,34.1,9.185139,1.098612,7.333227,1 +11,6,0,0,3,630383,0,9750.128,47.0486,1,10,1,358.5927,432.8383,41.48512,40.5954,1383.288,2216.204,2,0,2,31,1,3,69.7,44.8,1,34.1,0,237.48,0,0,1.098612,5.470083,0,0,0,1,0,0,34.1,9.185139,1.098612,7.703551,1 +13,6,0,1,1,630408,1,6735.316,38.68857,1,6,1,0,3.597122,0,0,0,3.597122,0,0,0,0,0,3,84,3.4,0,64.8,450,0,0,0,1.098612,0,1,4.564348,6.160541,1,0,0,64.8,8.815269,1.098612,1.280134,1 +13,6,0,1,2,630408,1,6735.316,39.68857,1,6,1,0,0,0,0,0,0,0,0,0,0,0,2,84,3.4,0,64.8,450,0,0,0,.6931472,0,1,4.564348,6.160541,1,0,0,64.8,8.815269,.6931472,,0 +13,6,0,1,3,630408,1,6735.316,40.68857,1,6,1,34.25605,0,35.51211,0,0,69.76817,0,0,0,0,1,2,84,3.4,0,64.8,450,0,0,0,.6931472,0,1,4.564348,6.160541,1,0,0,64.8,8.815269,.6931472,4.245178,1 +13,6,0,1,1,630409,1,6735.316,16.8104,0,6,1,24.54507,11.24841,0,0,0,35.79348,0,0,0,0,0,3,89.9,0,0,65.9,450,0,1,0,1.098612,0,1,4.564348,6.160541,0,1,0,65.9,8.815269,1.098612,3.577766,1 +13,6,0,1,1,630410,1,6735.316,15.8987,1,6,1,0,1.163775,0,0,0,1.163775,0,0,0,0,0,3,62.8,3.4,0,64.8,450,0,1,1,1.098612,0,1,4.564348,6.160541,1,0,0,64.8,8.815269,1.098612,.1516689,1 +13,6,0,1,2,630410,1,6735.316,16.8987,1,6,1,8.352316,6.833713,0,0,0,15.18603,0,0,0,0,0,2,62.8,3.4,0,64.8,450,0,1,1,.6931472,0,1,4.564348,6.160541,1,0,0,64.8,8.815269,.6931472,2.720376,1 +13,6,0,1,3,630410,1,6735.316,17.8987,1,6,1,53.97924,0,0,0,456.4014,510.3806,1,0,0,4,0,2,62.8,3.4,0,64.8,450,0,1,1,.6931472,0,1,4.564348,6.160541,1,0,0,64.8,8.815269,.6931472,6.235157,1 +16,6,95,1,1,630457,0,2698.534,33.50856,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,88.3,3.4,0,80.7,600,0,0,0,0,0,0,4.564348,6.448223,0,0,0,80.7,7.900835,0,,0 +16,6,95,1,2,630457,0,2698.534,34.50856,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,88.3,3.4,0,80.7,600,0,0,0,0,0,0,4.564348,6.448223,0,0,0,80.7,7.900835,0,,0 +16,6,95,1,3,630457,0,2698.534,35.50856,1,12,1,0,0,0,0,0,0,0,0,0,0,0,1,88.3,3.4,0,80.7,600,0,0,0,0,0,0,4.564348,6.448223,0,0,0,80.7,7.900835,0,,0 +5,6,25,1,1,630460,1,9018.434,54.80904,1,4,1,10.57977,0,42.74228,0,0,53.32205,0,0,0,0,1,2,88.3,20.7,0,71.6,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,71.6,9.107137,.6931472,3.97635,1 +5,6,25,1,2,630460,1,9018.434,55.80904,1,4,1,9.870919,0,0,0,0,9.870919,0,0,0,1,0,2,88.3,20.7,0,71.6,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,71.6,9.107137,.6931472,2.289593,1 +5,6,25,1,3,630460,1,9018.434,56.80904,1,4,1,10.38062,0,34.9481,0,0,45.32872,0,0,0,0,1,2,88.3,20.7,0,71.6,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,71.6,9.107137,.6931472,3.813941,1 +5,6,25,1,1,630461,1,9018.434,58.4887,0,0,1,0,0,0,0,0,0,0,0,0,0,0,2,89.4,17.2,0,73.9,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,73.9,9.107137,.6931472,,0 +5,6,25,1,2,630461,1,9018.434,59.4887,0,0,1,0,0,0,0,0,0,0,0,0,0,0,2,89.4,17.2,0,73.9,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,73.9,9.107137,.6931472,,0 +5,6,25,1,3,630461,1,9018.434,60.4887,0,0,1,0,0,0,0,0,0,0,0,0,0,0,2,89.4,17.2,0,73.9,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,1,0,0,73.9,9.107137,.6931472,,0 +13,6,0,0,1,630476,0,9551.906,6.874743,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,83.3,10.57626,0,74.1,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,74.1,9.1646,1.386294,,0 +13,6,0,0,2,630476,0,9551.906,7.874743,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,83.3,10.57626,0,74.1,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,74.1,9.1646,1.386294,,0 +13,6,0,0,1,630478,0,9551.906,38.93497,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,78.2,10.3,0,92,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,92,9.1646,1.386294,,0 +13,6,0,0,2,630478,0,9551.906,39.93497,0,12,1,14.82331,0,0,0,0,14.82331,0,0,0,1,0,4,78.2,10.3,0,92,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,92,9.1646,1.386294,2.696201,1 +13,6,0,0,1,630479,0,9551.906,14.88843,0,12,1,21.06046,0,0,0,0,21.06046,0,0,0,2,0,4,70.2,3.4,0,70.5,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,70.5,9.1646,1.386294,3.047397,1 +13,6,0,0,2,630479,0,9551.906,15.88843,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,70.2,3.4,0,70.5,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,70.5,9.1646,1.386294,,0 +13,6,0,0,1,630480,0,9551.906,37.59343,1,12,1,70.3667,0,0,0,0,70.3667,0,0,0,5,0,4,45.2,27.6,0,71.6,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,71.6,9.1646,1.386294,4.25372,1 +13,6,0,0,2,630480,0,9551.906,38.59343,1,12,1,9.178522,0,0,0,0,9.178522,0,0,0,1,0,4,45.2,27.6,0,71.6,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,71.6,9.1646,1.386294,2.216866,1 +18,6,25,0,1,630534,0,12182.8,25.7577,1,16,1,38.76615,0,0,0,0,38.76615,0,0,0,1,0,2,78.2,24.1,0,65.9,194.38,194.38,0,0,.6931472,5.269815,0,3.258096,6.656109,0,0,0,65.9,9.407862,.6931472,3.657547,1 +18,6,25,0,2,630534,0,12182.8,26.7577,1,16,1,101.6504,0,7.501875,0,494.3736,603.5259,1,0,0,2,8,2,78.2,24.1,0,65.9,194.38,194.38,0,0,.6931472,5.269815,0,3.258096,6.656109,0,0,0,65.9,9.407862,.6931472,6.402789,1 +18,6,25,0,3,630534,0,12182.8,27.7577,1,16,1,32.81461,1.911367,0,0,0,34.72598,0,0,0,3,0,3,78.2,24.1,0,65.9,194.38,194.38,0,0,1.098612,5.269815,0,3.258096,6.656109,0,0,0,65.9,9.407862,1.098612,3.547488,1 +10,6,50,1,1,630546,1,4512.033,39.80835,1,12,1,0,0,0,23.7599,0,0,0,0,3,0,0,8,75.5,13.8,0,59.5,1000,1000,0,0,2.079442,6.907755,0,3.931826,7.600903,0,1,0,59.5,8.414724,2.079442,,0 +10,6,50,1,2,630546,1,4512.033,40.80835,1,12,1,81.77044,0,43.51088,0,0,125.2813,0,0,0,4,0,8,75.5,13.8,0,59.5,1000,1000,0,0,2.079442,6.907755,0,3.931826,7.600903,0,1,0,59.5,8.414724,2.079442,4.830562,1 +10,6,50,1,3,630546,1,4512.033,41.80835,1,12,1,42.28687,0,0,0,0,42.28687,0,0,0,4,0,7,75.5,13.8,0,59.5,1000,1000,0,0,1.94591,6.907755,0,3.931826,7.600903,0,1,0,59.5,8.414724,1.94591,3.744477,1 +10,6,50,1,1,630547,1,4512.033,15.4935,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,72.9,3.4,0,64.8,1000,1000,1,1,2.079442,6.907755,0,3.931826,7.600903,1,0,0,64.8,8.414724,2.079442,,0 +10,6,50,1,2,630547,1,4512.033,16.4935,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,72.9,3.4,0,64.8,1000,1000,1,1,2.079442,6.907755,0,3.931826,7.600903,1,0,0,64.8,8.414724,2.079442,,0 +10,6,50,1,3,630547,1,4512.033,17.4935,1,12,1,0,0,0,0,0,0,0,0,0,0,0,7,72.9,3.4,0,64.8,1000,1000,1,1,1.94591,6.907755,0,3.931826,7.600903,1,0,0,64.8,8.414724,1.94591,,0 +10,6,50,1,1,630548,1,4512.033,11.62491,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,78.3,10.57626,0,77.8,1000,1000,1,0,2.079442,6.907755,0,3.931826,7.600903,1,0,0,77.8,8.414724,2.079442,,0 +10,6,50,1,2,630548,1,4512.033,12.62491,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,78.3,10.57626,0,77.8,1000,1000,1,0,2.079442,6.907755,0,3.931826,7.600903,1,0,0,77.8,8.414724,2.079442,,0 +10,6,50,1,3,630548,1,4512.033,13.62491,0,12,1,0,0,0,0,0,0,0,0,0,0,0,7,78.3,10.57626,0,77.8,1000,1000,1,0,1.94591,6.907755,0,3.931826,7.600903,1,0,0,77.8,8.414724,1.94591,,0 +10,6,50,1,1,630549,1,4512.033,43.87954,0,6,1,48.35348,13.33472,0,0,0,61.6882,0,0,0,6,0,8,70.2,6.9,0,63.6,1000,1000,0,0,2.079442,6.907755,0,3.931826,7.600903,1,0,0,63.6,8.414724,2.079442,4.122093,1 +10,6,50,1,2,630549,1,4512.033,44.87954,0,6,1,16.87922,1.725431,45.68267,0,325.9565,390.2438,1,0,0,1,1,8,70.2,6.9,0,63.6,1000,1000,0,0,2.079442,6.907755,0,3.931826,7.600903,1,0,0,63.6,8.414724,2.079442,5.966772,1 +10,6,50,1,3,630549,1,4512.033,45.87954,0,6,1,14.54668,0,0,0,0,14.54668,0,0,0,2,0,7,70.2,6.9,0,63.6,1000,1000,0,0,1.94591,6.907755,0,3.931826,7.600903,1,0,0,63.6,8.414724,1.94591,2.677363,1 +10,6,50,1,1,630550,1,4512.033,13.44559,0,12,1,0,0,0,36.26511,0,0,0,0,5,0,0,8,56.7,10.57626,0,63,1000,1000,1,0,2.079442,6.907755,0,3.931826,7.600903,0,1,0,63,8.414724,2.079442,,0 +10,6,50,1,2,630550,1,4512.033,14.44559,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,56.7,10.57626,0,63,1000,1000,1,0,2.079442,6.907755,0,3.931826,7.600903,0,1,0,63,8.414724,2.079442,,0 +10,6,50,1,3,630550,1,4512.033,15.44559,0,12,1,0,0,0,0,0,0,0,0,0,0,0,7,56.7,10.57626,0,63,1000,1000,1,0,1.94591,6.907755,0,3.931826,7.600903,0,1,0,63,8.414724,1.94591,,0 +10,6,50,1,1,630551,1,4512.033,5.94935,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,91.7,10.57626,0,77.8,1000,1000,1,1,2.079442,6.907755,0,3.931826,7.600903,1,0,0,77.8,8.414724,2.079442,,0 +10,6,50,1,2,630551,1,4512.033,6.94935,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,91.7,10.57626,0,77.8,1000,1000,1,1,2.079442,6.907755,0,3.931826,7.600903,1,0,0,77.8,8.414724,2.079442,,0 +10,6,50,1,1,630552,1,4512.033,15.22245,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,76.1,3.4,0,63.6,1000,1000,1,1,2.079442,6.907755,0,3.931826,7.600903,1,0,0,63.6,8.414724,2.079442,,0 +10,6,50,1,2,630552,1,4512.033,16.22245,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,76.1,3.4,0,63.6,1000,1000,1,1,2.079442,6.907755,0,3.931826,7.600903,1,0,0,63.6,8.414724,2.079442,,0 +10,6,50,1,3,630552,1,4512.033,17.22245,1,12,1,0,0,0,0,0,0,0,0,0,0,0,7,76.1,3.4,0,63.6,1000,1000,1,1,1.94591,6.907755,0,3.931826,7.600903,1,0,0,63.6,8.414724,1.94591,,0 +5,6,25,1,1,630557,0,16710.19,12.7666,0,18,1,18.93143,0,0,0,0,18.93143,0,0,0,1,0,4,68.3,10.57626,0,92.6,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,92.6,9.723834,1.386294,2.940823,1 +5,6,25,1,2,630557,0,16710.19,13.7666,0,18,1,18.88931,0,0,0,0,18.88931,0,0,0,0,0,4,68.3,10.57626,0,92.6,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,92.6,9.723834,1.386294,2.938596,1 +5,6,25,1,3,630557,0,16710.19,14.7666,0,18,1,0,0,0,0,0,0,0,0,0,0,0,4,68.3,10.57626,0,92.6,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,92.6,9.723834,1.386294,,0 +5,6,25,1,1,630558,0,16710.19,7.835729,0,18,1,0,0,0,0,0,0,0,0,0,0,0,4,85,10.57626,0,81.5,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,81.5,9.723834,1.386294,,0 +5,6,25,1,2,630558,0,16710.19,8.835729,0,18,1,86.13525,17.29505,0,0,0,103.4303,0,0,0,4,0,4,85,10.57626,0,81.5,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,81.5,9.723834,1.386294,4.638898,1 +5,6,25,1,3,630558,0,16710.19,9.835729,0,18,1,9.948542,21.85935,0,0,0,31.80789,0,0,0,1,0,4,85,10.57626,0,81.5,750,750,1,0,1.386294,6.620073,0,3.258096,8.006368,0,0,0,81.5,9.723834,1.386294,3.459714,1 +5,6,25,1,1,630559,0,16710.19,38.19028,0,10.62774,1,0,52.98696,30.29028,50.4838,0,83.27724,0,0,4,0,0,4,75.5,13.8,1,44.3,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,44.3,9.723834,1.386294,4.422175,1 +5,6,25,1,2,630559,0,16710.19,39.19028,0,10.62774,1,200.6045,99.10087,0,783.9063,632.7919,932.4972,3,0,43,8,1,4,75.5,13.8,1,44.3,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,44.3,9.723834,1.386294,6.837866,1 +5,6,25,1,3,630559,0,16710.19,40.19028,0,10.62774,1,134.9914,118.6827,128.6449,483.705,1566.758,1949.077,1,0,28,4,0,4,75.5,13.8,1,44.3,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,44.3,9.723834,1.386294,7.575111,1 +5,6,25,1,1,630560,0,16710.19,35.98631,1,18,1,196.4661,19.878,0,50.4838,0,216.3441,0,0,4,5,0,4,79.3,17.2,0,85.2,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,85.2,9.723834,1.386294,5.37687,1 +5,6,25,1,2,630560,0,16710.19,36.98631,1,18,1,30.60068,43.53608,0,273.895,0,74.13676,0,0,16,4,0,4,79.3,17.2,0,85.2,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,85.2,9.723834,1.386294,4.305912,1 +5,6,25,1,3,630560,0,16710.19,37.98631,1,18,1,33.61921,26.13036,0,353.3448,0,59.74957,0,0,20,4,0,4,79.3,17.2,0,85.2,750,750,0,0,1.386294,6.620073,0,3.258096,8.006368,1,0,0,85.2,9.723834,1.386294,4.090162,1 +13,6,0,1,1,630561,0,9228.152,28.81588,0,13,1,45.58969,20.31715,2.552032,0,0,68.45887,0,0,0,5,1,2,63.3,0,0,66.7,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,66.7,9.130122,.6931472,4.226233,1 +13,6,0,1,2,630561,0,9228.152,29.81588,0,13,1,16.06241,32.81322,0,0,0,48.87563,0,0,0,4,0,2,63.3,0,0,66.7,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,66.7,9.130122,.6931472,3.889279,1 +13,6,0,1,3,630561,0,9228.152,30.81588,0,13,1,25.2419,0,0,0,0,25.2419,0,0,0,1,0,2,63.3,0,0,66.7,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,66.7,9.130122,.6931472,3.228505,1 +13,6,0,1,4,630561,0,9228.152,31.81588,0,13,1,0,0,0,0,0,0,0,0,0,0,0,2,63.3,0,0,66.7,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,66.7,9.130122,.6931472,,0 +13,6,0,1,5,630561,0,9228.152,32.81588,0,13,1,17.15266,0,0,0,0,17.15266,0,0,0,1,0,3,63.3,0,0,66.7,300,300,0,0,1.098612,5.703783,1,4.564348,5.755076,1,0,0,66.7,9.130122,1.098612,2.842153,1 +13,6,0,1,1,630562,0,9228.152,20.55031,1,12,1,126.3627,40.12884,13.61249,0,513.8751,693.9792,1,0,0,10,1,2,86.2,3.4,0,75,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,75,9.130122,.6931472,6.542442,1 +13,6,0,1,2,630562,0,9228.152,21.55031,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,86.2,3.4,0,75,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,75,9.130122,.6931472,,0 +13,6,0,1,3,630562,0,9228.152,22.55031,1,12,1,8.413967,0,0,0,343.8578,352.2718,1,0,0,0,0,2,86.2,3.4,0,75,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,75,9.130122,.6931472,5.864403,1 +13,6,0,1,4,630562,0,9228.152,23.55031,1,12,1,17.37816,0,0,0,498.3,515.6781,1,0,0,1,0,2,86.2,3.4,0,75,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,75,9.130122,.6931472,6.245483,1 +13,6,0,1,5,630562,0,9228.152,24.55031,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,86.2,3.4,0,75,300,300,0,0,1.098612,5.703783,1,4.564348,5.755076,0,0,0,75,9.130122,1.098612,,0 +16,6,95,1,1,630563,0,8136.713,41.57153,0,6,1,63.77657,25.11046,0,0,0,88.88704,0,0,0,5,4,2,85.1,3.4,1,59.1,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,59.1,9.004265,.6931472,4.487366,1 +16,6,95,1,2,630563,0,8136.713,42.57153,0,6,1,48.012,1.950488,40.96024,0,0,90.92273,0,0,0,4,2,2,85.1,3.4,1,59.1,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,59.1,9.004265,.6931472,4.51001,1 +16,6,95,1,3,630563,0,8136.713,43.57153,0,6,1,621.4479,30.30447,23.68065,0,0,675.433,0,0,0,6,43,2,85.1,3.4,1,59.1,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,1,0,0,59.1,9.004265,.6931472,6.515354,1 +16,6,95,1,1,630564,0,8136.713,41.51677,1,12,1,176.3235,133.8683,0,0,0,310.1917,0,0,0,13,17,2,64.4,41.4,0,37.5,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,1,0,37.5,9.004265,.6931472,5.737191,1 +16,6,95,1,2,630564,0,8136.713,42.51677,1,12,1,209.3023,86.7967,0,0,1077.644,1373.743,1,0,0,11,19,2,64.4,41.4,0,37.5,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,1,0,37.5,9.004265,.6931472,7.225295,1 +16,6,95,1,3,630564,0,8136.713,43.51677,1,12,1,591.3397,82.13802,22.86874,0,0,696.3464,0,0,0,13,84,2,64.4,41.4,0,37.5,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,1,0,37.5,9.004265,.6931472,6.545847,1 +13,6,0,1,1,630569,0,11727.86,17.20739,0,12,1,67.39346,.6442022,0,0,0,68.03766,0,0,0,1,0,4,88.3,6.9,0,87.5,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,87.5,9.369807,1.386294,4.220061,1 +13,6,0,1,2,630569,0,11727.86,18.20739,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,88.3,6.9,0,87.5,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,87.5,9.369807,1.386294,,0 +13,6,0,1,3,630569,0,11727.86,19.20739,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,88.3,6.9,0,87.5,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,87.5,9.369807,1.386294,,0 +13,6,0,1,4,630569,0,11727.86,20.20739,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,88.3,6.9,0,87.5,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,87.5,9.369807,1.386294,,0 +13,6,0,1,5,630569,0,11727.86,21.20739,0,12,1,0,5.595197,0,0,0,5.595197,0,0,0,0,0,4,88.3,6.9,0,87.5,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,87.5,9.369807,1.386294,1.721909,1 +13,6,0,1,1,630570,0,11727.86,40.47365,0,13,1,44.59861,15.60951,0,0,499.0089,559.217,1,0,0,6,0,4,70.7,13.8,0,68.2,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,68.2,9.369807,1.386294,6.326538,1 +13,6,0,1,2,630570,0,11727.86,41.47365,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,70.7,13.8,0,68.2,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,68.2,9.369807,1.386294,,0 +13,6,0,1,3,630570,0,11727.86,42.47365,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,70.7,13.8,0,68.2,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,68.2,9.369807,1.386294,,0 +13,6,0,1,4,630570,0,11727.86,43.47365,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,70.7,13.8,0,68.2,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,68.2,9.369807,1.386294,,0 +13,6,0,1,5,630570,0,11727.86,44.47365,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,70.7,13.8,0,68.2,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,68.2,9.369807,1.386294,,0 +13,6,0,1,1,630571,0,11727.86,37.21561,1,12,1,52.03172,8.70664,43.11199,0,0,103.8503,0,0,0,3,1,4,68.1,20.7,0,69.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,69.3,9.369807,1.386294,4.642951,1 +13,6,0,1,2,630571,0,11727.86,38.21561,1,12,1,16.06241,1.262047,0,0,0,17.32446,0,0,0,1,0,4,68.1,20.7,0,69.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,69.3,9.369807,1.386294,2.852119,1 +13,6,0,1,3,630571,0,11727.86,39.21561,1,12,1,20.19352,3.786285,0,0,0,23.97981,0,0,0,2,0,4,68.1,20.7,0,69.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,69.3,9.369807,1.386294,3.177212,1 +13,6,0,1,4,630571,0,11727.86,40.21561,1,12,1,0,3.536079,0,0,0,3.536079,0,0,0,0,0,4,68.1,20.7,0,69.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,69.3,9.369807,1.386294,1.263018,1 +13,6,0,1,5,630571,0,11727.86,41.21561,1,12,1,25.72899,16.05832,33.49228,0,1405.146,1480.425,1,0,0,1,1,4,68.1,20.7,0,69.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,69.3,9.369807,1.386294,7.300085,1 +13,6,0,1,1,630572,0,11727.86,12.9473,1,12,1,113.4787,1.982161,30.72349,0,0,146.1843,0,0,0,2,1,4,81.7,10.57626,0,92.6,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,92.6,9.369807,1.386294,4.984869,1 +13,6,0,1,2,630572,0,11727.86,13.9473,1,12,1,17.89812,0,13.76778,0,0,31.6659,0,0,0,0,0,4,81.7,10.57626,0,92.6,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,92.6,9.369807,1.386294,3.45524,1 +13,6,0,1,3,630572,0,11727.86,14.9473,1,12,1,33.65587,8.624316,0,0,0,42.28019,0,0,0,1,0,4,81.7,10.57626,0,92.6,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,92.6,9.369807,1.386294,3.744318,1 +13,6,0,1,4,630572,0,11727.86,15.9473,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,81.7,10.57626,0,92.6,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,92.6,9.369807,1.386294,,0 +13,6,0,1,5,630572,0,11727.86,16.9473,1,12,1,10.2916,7.488851,35.20755,0,0,52.98799,0,0,0,0,1,4,81.7,10.57626,0,92.6,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,92.6,9.369807,1.386294,3.970065,1 +11,6,0,1,1,630582,1,6682.028,35.72622,1,12,1,13.46235,2.103492,0,0,0,15.56584,0,0,0,2,0,6,86.7,13.8,1,72.7,0,0,0,0,1.791759,0,0,0,0,0,0,0,72.7,8.807326,1.791759,2.745079,1 +11,6,0,1,2,630582,1,6682.028,36.72622,1,12,1,7.555724,0,28.71175,0,0,36.26747,0,0,0,0,1,6,86.7,13.8,1,72.7,0,0,0,0,1.791759,0,0,0,0,0,0,0,72.7,8.807326,1.791759,3.590921,1 +11,6,0,1,3,630582,1,6682.028,37.72622,1,12,1,54.54546,24.42196,0,0,414.7513,493.7187,1,0,0,4,0,6,86.7,13.8,1,72.7,0,0,0,0,1.791759,0,0,0,0,0,0,0,72.7,8.807326,1.791759,6.201966,1 +11,6,0,1,1,630583,1,6682.028,15.23614,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,79.8,0,0,71.6,0,0,1,1,1.791759,0,0,0,0,1,0,0,71.6,8.807326,1.791759,,0 +11,6,0,1,2,630583,1,6682.028,16.23614,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,79.8,0,0,71.6,0,0,1,1,1.791759,0,0,0,0,1,0,0,71.6,8.807326,1.791759,,0 +11,6,0,1,3,630583,1,6682.028,17.23614,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,79.8,0,0,71.6,0,0,1,1,1.791759,0,0,0,0,1,0,0,71.6,8.807326,1.791759,,0 +11,6,0,1,1,630584,1,6682.028,14.1191,0,12,1,12.62095,3.155238,27.34539,0,0,43.12158,0,0,0,1,1,6,75,3.4,0,83,0,0,1,0,1.791759,0,0,0,0,1,0,0,83,8.807326,1.791759,3.764024,1 +11,6,0,1,2,630584,1,6682.028,15.1191,0,12,1,9.444654,0,0,0,0,9.444654,0,0,0,1,0,6,75,3.4,0,83,0,0,1,0,1.791759,0,0,0,0,1,0,0,83,8.807326,1.791759,2.245449,1 +11,6,0,1,3,630584,1,6682.028,16.1191,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,75,3.4,0,83,0,0,1,0,1.791759,0,0,0,0,1,0,0,83,8.807326,1.791759,,0 +11,6,0,1,1,630585,1,6682.028,40.83231,0,7,1,79.86958,53.52966,0,0,826.2516,959.6508,2,0,0,7,0,6,83,6.9,0,64.8,0,0,0,0,1.791759,0,0,0,0,0,0,0,64.8,8.807326,1.791759,6.86657,1 +11,6,0,1,2,630585,1,6682.028,41.83231,0,7,1,108.8969,28.70041,0,0,0,137.5973,0,0,0,5,0,6,83,6.9,0,64.8,0,0,0,0,1.791759,0,0,0,0,0,0,0,64.8,8.807326,1.791759,4.924331,1 +11,6,0,1,3,630585,1,6682.028,42.83231,0,7,1,185.2487,50.6175,25.72899,0,407.5472,669.1424,1,0,0,10,1,6,83,6.9,0,64.8,0,0,0,0,1.791759,0,0,0,0,0,0,0,64.8,8.807326,1.791759,6.505997,1 +11,6,0,1,1,630586,1,6682.028,5.229295,0,12,1,5.04838,1.893143,0,0,0,6.941523,0,0,0,1,0,6,86.7,10.57626,0,88.9,0,0,1,0,1.791759,0,0,0,0,1,0,0,88.9,8.807326,1.791759,1.937521,1 +11,6,0,1,2,630586,1,6682.028,6.229295,0,12,1,73.29052,1.756706,0,0,0,75.04723,0,0,0,4,0,6,86.7,10.57626,0,88.9,0,0,1,0,1.791759,0,0,0,0,1,0,0,88.9,8.807326,1.791759,4.318118,1 +11,6,0,1,3,630586,1,6682.028,7.229295,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,86.7,10.57626,0,88.9,0,0,1,0,1.791759,0,0,0,0,1,0,0,88.9,8.807326,1.791759,,0 +11,6,0,1,1,630587,1,6682.028,16.84326,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,83,3.4,0,67,0,0,1,0,1.791759,0,0,0,0,1,0,0,67,8.807326,1.791759,,0 +11,6,0,1,2,630587,1,6682.028,17.84326,0,12,1,38.1564,0,0,0,0,38.1564,0,0,0,1,0,6,83,3.4,0,67,0,0,1,0,1.791759,0,0,0,0,1,0,0,67,8.807326,1.791759,3.641694,1 +11,6,0,1,3,630587,1,6682.028,18.84326,0,12,1,17.83876,0,0,0,0,17.83876,0,0,0,1,0,6,83,3.4,0,67,0,0,0,0,1.791759,0,0,0,0,1,0,0,67,8.807326,1.791759,2.881374,1 +11,6,0,1,1,630608,1,10933.14,42.40657,1,7,1,0,8.304668,0,0,0,8.304668,0,0,0,0,0,4,77.40034,10.3,.1442925,,0,424.32,0,0,1.386294,6.050488,0,0,0,0,1,0,70.68995,9.299645,1.386294,2.116818,1 +11,6,0,1,2,630608,1,10933.14,43.40657,1,7,1,0,0,0,0,0,0,0,0,0,0,0,6,77.40034,10.3,.1442925,,0,424.32,0,0,1.791759,6.050488,0,0,0,0,1,0,70.68995,9.299645,1.791759,,0 +11,6,0,1,3,630608,1,10933.14,44.40657,1,7,1,10.42101,0,42.10088,0,0,52.52188,0,0,0,0,1,7,77.40034,10.3,.1442925,,0,424.32,0,0,1.94591,6.050488,0,0,0,0,1,0,70.68995,9.299645,1.94591,3.96123,1 +11,6,0,1,4,630608,1,10933.14,45.40657,1,7,1,78.3946,33.21455,0,0,0,111.6092,0,0,0,9,0,8,77.40034,10.3,.1442925,,0,424.32,0,0,2.079442,6.050488,0,0,0,0,1,0,70.68995,9.299645,2.079442,4.715003,1 +11,6,0,1,5,630608,1,10933.14,46.40657,1,7,1,29.43166,105.8999,0,0,0,135.3315,0,0,0,3,0,8,77.40034,10.3,.1442925,,0,424.32,0,0,2.079442,6.050488,0,0,0,0,1,0,70.68995,9.299645,2.079442,4.907728,1 +11,6,0,1,1,630609,1,10933.14,49.30322,0,3,1,18.67322,16.22604,0,0,0,34.89926,0,0,0,5,0,4,75,10.3,0,45.5,0,424.32,0,0,1.386294,6.050488,0,0,0,1,0,0,45.5,9.299645,1.386294,3.552466,1 +11,6,0,1,2,630609,1,10933.14,50.30322,0,3,1,0,0,0,0,0,0,0,0,0,0,0,6,75,10.3,0,45.5,0,424.32,0,0,1.791759,6.050488,0,0,0,1,0,0,45.5,9.299645,1.791759,,0 +11,6,0,1,3,630609,1,10933.14,51.30322,0,3,1,10.42101,0,46.26928,0,0,56.69029,0,0,0,0,1,7,75,10.3,0,45.5,0,424.32,0,0,1.94591,6.050488,0,0,0,1,0,0,45.5,9.299645,1.94591,4.037603,1 +11,6,0,1,4,630609,1,10933.14,52.30322,0,3,1,103.5259,97.81696,0,0,357.8394,559.1823,1,0,0,14,0,8,75,10.3,0,45.5,0,424.32,0,0,2.079442,6.050488,0,0,0,1,0,0,45.5,9.299645,2.079442,6.326476,1 +11,6,0,1,5,630609,1,10933.14,53.30322,0,3,1,54.1272,256.6035,41.48512,0,0,352.2158,0,0,0,7,1,8,75,10.3,0,45.5,0,424.32,0,0,2.079442,6.050488,0,0,0,1,0,0,45.5,9.299645,2.079442,5.864244,1 +11,6,0,0,1,630637,1,10120.33,32.93634,1,12,1,42.91123,15.52377,0,0,198.1489,256.5839,1,0,0,5,0,5,37.2,27.6,1,30.7,0,359.84,0,0,1.609438,5.88566,0,0,0,1,0,0,30.7,9.2224,1.609438,5.547456,1 +11,6,0,0,2,630637,1,10120.33,33.93634,1,12,1,0,6.139025,0,0,0,6.139025,0,0,0,0,0,5,37.2,27.6,1,30.7,0,359.84,0,0,1.609438,5.88566,0,0,0,1,0,0,30.7,9.2224,1.609438,1.814666,1 +11,6,0,0,3,630637,1,10120.33,34.93634,1,12,1,48.71355,13.5163,0,0,0,62.22985,0,0,0,2,0,5,37.2,27.6,1,30.7,0,359.84,0,0,1.609438,5.88566,0,0,0,1,0,0,30.7,9.2224,1.609438,4.130835,1 +11,6,0,0,1,630638,1,10120.33,9.429158,1,12,1,17.66933,0,0,0,0,17.66933,0,0,0,2,0,5,75,10.57626,0,77.8,0,359.84,1,1,1.609438,5.88566,0,0,0,0,0,0,77.8,9.2224,1.609438,2.87183,1 +11,6,0,0,2,630638,1,10120.33,10.42916,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,75,10.57626,0,77.8,0,359.84,1,1,1.609438,5.88566,0,0,0,0,0,0,77.8,9.2224,1.609438,,0 +11,6,0,0,3,630638,1,10120.33,11.42916,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,75,10.57626,0,77.8,0,359.84,1,1,1.609438,5.88566,0,0,0,0,0,0,77.8,9.2224,1.609438,,0 +11,6,0,0,1,630639,1,10120.33,6.310746,0,12,1,33.23517,6.142196,0,0,0,39.37737,0,0,0,4,0,5,61.7,10.57626,0,77.8,0,359.84,1,0,1.609438,5.88566,0,0,0,1,0,0,77.8,9.2224,1.609438,3.673191,1 +11,6,0,0,2,630639,1,10120.33,7.310746,0,12,1,4.533434,5.761239,0,0,0,10.29467,0,0,0,1,0,5,61.7,10.57626,0,77.8,0,359.84,1,0,1.609438,5.88566,0,0,0,1,0,0,77.8,9.2224,1.609438,2.331627,1 +11,6,0,0,3,630639,1,10120.33,8.310746,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,61.7,10.57626,0,77.8,0,359.84,1,0,1.609438,5.88566,0,0,0,1,0,0,77.8,9.2224,1.609438,,0 +11,6,0,0,1,630640,1,10120.33,28.33949,0,12,1,32.39377,.9465713,0,0,0,33.34034,0,0,0,1,0,5,70.7,10.3,0,63.6,0,359.84,0,0,1.609438,5.88566,0,0,0,0,0,0,63.6,9.2224,1.609438,3.506768,1 +11,6,0,0,2,630640,1,10120.33,29.33949,0,12,1,9.066868,6.762372,0,0,0,15.82924,0,0,0,2,0,5,70.7,10.3,0,63.6,0,359.84,0,0,1.609438,5.88566,0,0,0,0,0,0,63.6,9.2224,1.609438,2.761859,1 +11,6,0,0,3,630640,1,10120.33,30.33949,0,12,1,41.40652,0,0,0,0,41.40652,0,0,0,3,0,5,70.7,10.3,0,63.6,0,359.84,0,0,1.609438,5.88566,0,0,0,0,0,0,63.6,9.2224,1.609438,3.723438,1 +11,6,0,0,1,630641,1,10120.33,11.98083,0,12,1,146.8237,0,0,0,580.5637,727.3875,1,0,0,5,0,5,81.7,10.57626,1,66.7,0,359.84,1,0,1.609438,5.88566,0,0,0,1,0,0,66.7,9.2224,1.609438,6.589459,1 +11,6,0,0,2,630641,1,10120.33,12.98083,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,81.7,10.57626,1,66.7,0,359.84,1,0,1.609438,5.88566,0,0,0,1,0,0,66.7,9.2224,1.609438,,0 +11,6,0,0,3,630641,1,10120.33,13.98083,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,81.7,10.57626,1,66.7,0,359.84,1,0,1.609438,5.88566,0,0,0,1,0,0,66.7,9.2224,1.609438,,0 +11,6,0,0,1,630658,0,844.8541,36.46817,0,7,1,12.50521,0,31.26303,0,0,43.76824,0,0,0,0,1,3,67,13.8,0,45.5,0,0,0,0,1.098612,0,0,0,0,1,0,0,45.5,6.740347,1.098612,3.778908,1 +11,6,0,0,2,630658,0,844.8541,37.46817,0,7,1,35.25882,12.13053,18.75469,0,0,66.14404,0,0,0,3,1,3,67,13.8,0,45.5,0,0,0,0,1.098612,0,0,0,0,1,0,0,45.5,6.740347,1.098612,4.191835,1 +11,6,0,1,1,630659,0,844.8541,36.49555,1,7,1,170.9045,341.8008,29.17883,245.9358,2110.671,2652.555,4,0,15,7,1,3,30,17.2,1,28.4,0,0,0,0,1.098612,0,0,0,0,0,0,1,28.4,6.740347,1.098612,7.883279,1 +11,6,0,1,2,630659,0,844.8541,37.49555,1,7,1,0,0,0,0,0,0,2,0,15,18,0,3,30,17.2,1,28.4,0,0,0,0,1.098612,0,0,0,0,0,0,1,28.4,6.740347,1.098612,,0 +13,6,0,0,1,630661,1,2479.775,58.19849,1,6,1,0,0,0,0,0,0,0,0,0,0,0,3,89.9,6.9,1,66.7,450,300,0,0,1.098612,5.703783,1,4.564348,6.160541,0,0,0,66.7,7.816326,1.098612,,0 +13,6,0,0,2,630661,1,2479.775,59.19849,1,6,1,0,0,35.88969,0,0,35.88969,0,0,0,0,0,4,89.9,6.9,1,66.7,450,300,0,0,1.386294,5.703783,1,4.564348,6.160541,0,0,0,66.7,7.816326,1.386294,3.58045,1 +13,6,0,0,3,630661,1,2479.775,60.19849,1,6,1,25.90051,0,27.44425,0,0,53.34477,0,0,0,1,1,4,89.9,6.9,1,66.7,450,300,0,0,1.386294,5.703783,1,4.564348,6.160541,0,0,0,66.7,7.816326,1.386294,3.976776,1 +13,6,0,0,1,630662,1,2479.775,17.45106,0,6,1,0,0,0,0,0,0,0,0,0,0,0,3,82.4,10.3,0,55.7,450,300,1,0,1.098612,5.703783,1,4.564348,6.160541,0,0,0,55.7,7.816326,1.098612,,0 +13,6,0,0,2,630662,1,2479.775,18.45106,0,6,1,0,0,0,0,0,0,0,0,0,0,0,4,82.4,10.3,0,55.7,450,300,0,0,1.386294,5.703783,1,4.564348,6.160541,0,0,0,55.7,7.816326,1.386294,,0 +13,6,0,0,3,630662,1,2479.775,19.45106,0,6,1,0,0,0,0,0,0,0,0,0,0,0,4,82.4,10.3,0,55.7,450,300,0,0,1.386294,5.703783,1,4.564348,6.160541,0,0,0,55.7,7.816326,1.386294,,0 +13,6,0,0,1,630663,1,2479.775,20.89254,1,12,1,21.03492,0,0,0,906.1843,927.2192,1,0,0,1,0,3,58.5,10.3,0,60.2,450,300,0,0,1.098612,5.703783,1,4.564348,6.160541,1,0,0,60.2,7.816326,1.098612,6.83219,1 +13,6,0,0,2,630663,1,2479.775,21.89254,1,12,1,16.24481,0,0,0,0,16.24481,0,0,0,0,0,4,58.5,10.3,0,60.2,450,300,0,0,1.386294,5.703783,1,4.564348,6.160541,1,0,0,60.2,7.816326,1.386294,2.787773,1 +13,6,0,0,3,630663,1,2479.775,22.89254,1,12,1,35.67753,0,0,0,1153.345,1189.022,1,0,0,0,0,4,58.5,10.3,0,60.2,450,300,0,0,1.386294,5.703783,1,4.564348,6.160541,1,0,0,60.2,7.816326,1.386294,7.080887,1 +11,6,0,1,1,630677,0,6267.742,30.36003,0,7,1,7.433102,10.53023,0,0,0,17.96333,0,0,0,1,0,3,70.7,6.9,0,70.5,0,816,0,0,1.098612,6.704414,0,0,0,0,1,0,70.5,8.743331,1.098612,2.888332,1 +11,6,0,1,2,630677,0,6267.742,31.36003,0,7,1,58.74254,2.753557,0,0,0,61.4961,0,0,0,3,0,3,70.7,6.9,0,70.5,0,816,0,0,1.098612,6.704414,0,0,0,0,1,0,70.5,8.743331,1.098612,4.118974,1 +11,6,0,1,3,630677,0,6267.742,32.36003,0,7,1,0,9.465714,0,0,0,9.465714,0,0,0,0,0,3,70.7,6.9,0,70.5,0,816,0,0,1.098612,6.704414,0,0,0,0,1,0,70.5,8.743331,1.098612,2.247676,1 +11,6,0,1,4,630677,0,6267.742,33.36003,0,7,1,15.48923,3.830752,0,0,0,19.31998,0,0,0,1,0,3,70.7,6.9,0,70.5,0,816,0,0,1.098612,6.704414,0,0,0,0,1,0,70.5,8.743331,1.098612,2.96114,1 +11,6,0,1,5,630677,0,6267.742,34.36003,0,7,1,0,1.351629,0,0,0,1.351629,0,0,0,0,0,3,70.7,6.9,0,70.5,0,816,0,0,1.098612,6.704414,0,0,0,0,1,0,70.5,8.743331,1.098612,.3013109,1 +11,6,0,1,1,630678,0,6267.742,12.24914,0,7,1,106.0456,0,0,0,0,106.0456,0,0,0,1,0,3,88.3,10.57626,0,63,0,816,1,0,1.098612,6.704414,0,0,0,1,0,0,63,8.743331,1.098612,4.663869,1 +11,6,0,1,2,630678,0,6267.742,13.24914,0,7,1,17.89812,4.589261,0,0,0,22.48738,0,0,0,0,0,3,88.3,10.57626,0,63,0,816,1,0,1.098612,6.704414,0,0,0,1,0,0,63,8.743331,1.098612,3.112954,1 +11,6,0,1,3,630678,0,6267.742,14.24914,0,7,1,25.2419,3.634834,0,0,0,28.87674,0,0,0,2,0,3,88.3,10.57626,0,63,0,816,1,0,1.098612,6.704414,0,0,0,1,0,0,63,8.743331,1.098612,3.363036,1 +11,6,0,1,4,630678,0,6267.742,15.24914,0,7,1,5.666792,1.62448,0,0,0,7.291273,0,0,0,1,0,3,88.3,10.57626,0,63,0,816,1,0,1.098612,6.704414,0,0,0,1,0,0,63,8.743331,1.098612,1.986678,1 +11,6,0,1,5,630678,0,6267.742,16.24914,0,7,1,12.00686,6.586621,0,0,410.6346,429.2281,1,0,0,1,0,3,88.3,10.57626,0,63,0,816,1,0,1.098612,6.704414,0,0,0,1,0,0,63,8.743331,1.098612,6.061988,1 +11,6,0,1,1,630679,0,6267.742,35.98631,1,7,1,169.9703,52.49257,24.77701,0,412.7849,660.0248,1,0,0,11,1,3,78.7,10.3,0,70.5,0,816,0,0,1.098612,6.704414,0,0,0,0,1,0,70.5,8.743331,1.098612,6.492277,1 +11,6,0,1,2,630679,0,6267.742,36.98631,1,7,1,48.18724,15.48876,0,0,948.1414,1011.817,2,0,0,5,1,3,78.7,10.3,0,70.5,0,816,0,0,1.098612,6.704414,0,0,0,0,1,0,70.5,8.743331,1.098612,6.919503,1 +11,6,0,1,3,630679,0,6267.742,37.98631,1,7,1,201.9352,8.203618,0,0,0,210.1388,0,0,0,1,25,3,78.7,10.3,0,70.5,0,816,0,0,1.098612,6.704414,0,0,0,0,1,0,70.5,8.743331,1.098612,5.347768,1 +11,6,0,1,4,630679,0,6267.742,38.98631,1,7,1,58.55686,12.91273,24.5561,0,0,96.02569,0,0,0,5,2,3,78.7,10.3,0,70.5,0,816,0,0,1.098612,6.704414,0,0,0,0,1,0,70.5,8.743331,1.098612,4.564616,1 +11,6,0,1,5,630679,0,6267.742,39.98631,1,7,1,156.4323,18.06861,0,0,0,174.5009,0,0,0,7,0,3,78.7,10.3,0,70.5,0,816,0,0,1.098612,6.704414,0,0,0,0,1,0,70.5,8.743331,1.098612,5.16193,1 +13,6,0,1,1,630685,0,8846.902,38.39562,0,12,1,138.4098,19.02819,0,0,676.483,833.9209,1,0,0,13,0,2,81.9,6.9,1,68.2,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,68.2,9.087935,.6931472,6.726139,1 +13,6,0,1,2,630685,0,8846.902,39.39562,0,12,1,26.44503,0,0,0,0,26.44503,0,0,0,3,0,2,81.9,6.9,1,68.2,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,68.2,9.087935,.6931472,3.275068,1 +13,6,0,1,3,630685,0,8846.902,40.39562,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,81.9,6.9,1,68.2,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,68.2,9.087935,.6931472,,0 +13,6,0,1,1,630686,0,8846.902,35.08282,1,12,1,165.3345,23.33193,0,21.03492,878.8389,1067.505,2,0,1,1,0,2,85.6,6.9,0,87.5,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,1,87.5,9.087935,.6931472,6.97308,1 +13,6,0,1,2,630686,0,8846.902,36.08282,1,12,1,129.5807,77.09483,0,134.1141,1522.478,1729.154,1,0,6,6,0,2,85.6,6.9,0,87.5,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,1,87.5,9.087935,.6931472,7.455388,1 +13,6,0,1,3,630686,0,8846.902,37.08282,1,12,1,92.2813,27.17324,0,149.2281,441.3379,560.7925,2,0,7,6,0,2,85.6,6.9,0,87.5,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,1,87.5,9.087935,.6931472,6.329351,1 +13,6,0,0,1,630694,1,6735.316,30.11636,0,11,1,10.51746,0,31.55238,0,0,42.06984,0,0,0,0,1,4,68.8,3.4,0,50,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,50,8.815269,1.386294,3.739331,1 +13,6,0,0,2,630694,1,6735.316,31.11636,0,11,1,0,0,0,0,0,0,0,0,0,0,0,5,68.8,3.4,0,50,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,50,8.815269,1.609438,,0 +13,6,0,0,3,630694,1,6735.316,32.11636,0,11,1,0,0,0,0,0,0,0,0,0,0,0,5,68.8,3.4,0,50,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,50,8.815269,1.609438,,0 +13,6,0,0,1,630695,1,6735.316,6.450377,0,10,1,35.75936,1.022297,27.34539,0,0,64.12705,0,0,0,1,1,4,93.3,10.57626,.1442925,74.1,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,74.1,8.815269,1.386294,4.160866,1 +13,6,0,0,2,630695,1,6735.316,7.450377,0,10,1,0,0,0,0,0,0,0,0,0,0,0,5,93.3,10.57626,.1442925,74.1,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,74.1,8.815269,1.609438,,0 +13,6,0,0,3,630695,1,6735.316,8.450377,0,10,1,0,0,0,0,0,0,0,0,0,0,0,5,93.3,10.57626,.1442925,74.1,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,74.1,8.815269,1.609438,,0 +13,6,0,0,1,630696,1,6735.316,24.06297,1,10,1,26.92469,9.301641,0,0,307.1098,343.3362,1,0,0,3,0,4,88.8,0,0,60.2,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,60.2,8.815269,1.386294,5.83871,1 +13,6,0,0,2,630696,1,6735.316,25.06297,1,10,1,10.20023,8.772195,0,0,0,18.97242,0,0,0,1,0,5,88.8,0,0,60.2,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,60.2,8.815269,1.609438,2.942986,1 +13,6,0,0,3,630696,1,6735.316,26.06297,1,10,1,17.15266,0,0,0,0,17.15266,0,0,0,2,0,5,88.8,0,0,60.2,450,450,0,0,1.609438,6.109248,1,4.564348,6.160541,1,0,0,60.2,8.815269,1.609438,2.842153,1 +17,6,25,0,1,630706,0,9352.791,32.07118,1,11,1,33.17737,0,0,0,0,33.17737,0,0,0,1,0,2,52.1,24.1,1,53.4,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,1,0,53.4,9.143537,.6931472,3.501868,1 +17,6,25,0,2,630706,0,9352.791,33.07118,1,11,1,30.91603,17.64886,0,0,0,48.56488,0,0,0,2,0,2,52.1,24.1,1,53.4,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,1,0,53.4,9.143537,.6931472,3.882901,1 +17,6,25,0,3,630706,0,9352.791,34.07118,1,11,1,302.7874,0,0,0,0,302.7874,0,0,0,2,27,2,52.1,24.1,1,53.4,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,1,0,53.4,9.143537,.6931472,5.713031,1 +17,6,25,0,1,630707,0,9352.791,31.59206,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,73.9,0,0,64.8,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,0,0,64.8,9.143537,.6931472,,0 +17,6,25,0,2,630707,0,9352.791,32.59206,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,73.9,0,0,64.8,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,0,0,64.8,9.143537,.6931472,,0 +17,6,25,0,3,630707,0,9352.791,33.59206,0,12,1,455.0523,12.223,0,0,0,467.2753,0,0,0,4,40,2,73.9,0,0,64.8,750,750,0,0,.6931472,6.620073,0,3.258096,8.006368,0,0,0,64.8,9.143537,.6931472,6.146918,1 +18,6,25,1,1,630728,1,6901.69,53.48391,0,12,1,17.66933,0,16.82793,0,200.2524,234.7497,1,1,0,1,1,1,89.9,6.9,0,88.6,750,750,0,0,0,6.620073,0,3.258096,8.006368,0,0,0,88.6,8.839666,0,5.45852,1 +18,6,25,1,2,630728,1,6901.69,54.48391,0,12,1,17.37816,37.14394,0,0,0,54.5221,0,0,0,2,0,1,89.9,6.9,0,88.6,750,750,0,0,0,6.620073,0,3.258096,8.006368,0,0,0,88.6,8.839666,0,3.998606,1 +18,6,25,1,3,630728,1,6901.69,55.48391,0,12,1,54.54546,36.60034,38.63808,0,0,129.7839,0,0,0,5,0,1,89.9,6.9,0,88.6,750,750,0,0,0,6.620073,0,3.258096,8.006368,0,0,0,88.6,8.839666,0,4.86587,1 +11,6,0,1,1,630732,0,1177.675,33.21287,0,12,.7835616,96.48752,8.675412,0,0,0,105.1629,0,0,0,3,0,5,80.9,6.9,0,73.9,0,386.72,0,0,1.609438,5.957701,0,0,0,1,0,0,73.9,7.072146,1.609438,4.655511,1 +11,6,0,1,1,630733,0,1177.675,30.45859,1,12,1,16.08125,0,0,0,0,16.08125,0,0,0,1,0,5,79.3,6.9,0,92,0,386.72,0,0,1.609438,5.957701,0,0,0,1,0,0,92,7.072146,1.609438,2.777654,1 +11,6,0,1,2,630733,0,1177.675,31.45859,1,12,1,45.17844,4.707669,0,0,0,49.8861,0,0,0,1,0,4,79.3,6.9,0,92,0,386.72,0,0,1.386294,5.957701,0,0,0,1,0,0,92,7.072146,1.386294,3.909743,1 +11,6,0,1,3,630733,0,1177.675,32.45859,1,12,1,10.38062,0,0,0,0,10.38062,0,0,0,0,0,4,79.3,6.9,0,92,0,386.72,0,0,1.386294,5.957701,0,0,0,1,0,0,92,7.072146,1.386294,2.339941,1 +11,6,0,1,1,630734,0,1177.675,11.58385,1,12,1,28.77698,0,0,0,0,28.77698,0,0,0,3,0,5,81.7,10.57626,0,100,0,386.72,1,1,1.609438,5.957701,0,0,0,0,0,0,100,7.072146,1.609438,3.359576,1 +11,6,0,1,2,630734,0,1177.675,12.58385,1,12,1,22.01974,0,0,0,0,22.01974,0,0,0,1,0,4,81.7,10.57626,0,100,0,386.72,1,1,1.386294,5.957701,0,0,0,0,0,0,100,7.072146,1.386294,3.091939,1 +11,6,0,1,3,630734,0,1177.675,13.58385,1,12,1,54.32526,0,0,0,0,54.32526,0,0,0,3,0,4,81.7,10.57626,0,100,0,386.72,1,1,1.386294,5.957701,0,0,0,0,0,0,100,7.072146,1.386294,3.994989,1 +11,6,0,1,1,630735,0,1177.675,4.375085,1,12,1,14.81168,7.300042,0,0,0,22.11172,0,0,0,2,0,5,77.40034,10.57626,0,100,0,386.72,1,1,1.609438,5.957701,0,0,0,0,0,0,100,7.072146,1.609438,3.096108,1 +11,6,0,1,2,630735,0,1177.675,5.375085,1,12,1,26.1959,2.813212,0,0,0,29.00911,0,0,0,1,0,4,77.40034,10.57626,0,100,0,386.72,1,1,1.386294,5.957701,0,0,0,0,0,0,100,7.072146,1.386294,3.36761,1 +11,6,0,1,3,630735,0,1177.675,6.375085,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,0,100,0,386.72,1,1,1.386294,5.957701,0,0,0,0,0,0,100,7.072146,1.386294,,0 +11,6,0,1,1,630736,0,1177.675,9.516769,1,12,1,16.08125,0,0,0,0,16.08125,0,0,0,3,0,5,80,10.57626,0,100,0,386.72,1,1,1.609438,5.957701,0,0,0,0,0,0,100,7.072146,1.609438,2.777654,1 +11,6,0,1,2,630736,0,1177.675,10.51677,1,12,1,11.38952,1.340167,0,0,0,12.72969,0,0,0,2,0,4,80,10.57626,0,100,0,386.72,1,1,1.386294,5.957701,0,0,0,0,0,0,100,7.072146,1.386294,2.543937,1 +11,6,0,1,3,630736,0,1177.675,11.51677,1,12,1,37.37024,0,0,0,0,37.37024,0,0,0,1,0,4,80,10.57626,0,100,0,386.72,1,1,1.386294,5.957701,0,0,0,0,0,0,100,7.072146,1.386294,3.620875,1 +10,6,50,1,1,630746,1,10221.2,34.93224,1,16,1,0,0,0,0,0,0,0,0,0,0,0,3,85.6,6.9,0,67,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,1,0,0,67,9.232317,1.098612,,0 +10,6,50,1,2,630746,1,10221.2,35.93224,1,16,1,0,0,0,0,0,0,0,0,0,0,0,3,85.6,6.9,0,67,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,1,0,0,67,9.232317,1.098612,,0 +10,6,50,1,3,630746,1,10221.2,36.93224,1,16,1,0,0,0,0,0,0,0,0,0,0,0,3,85.6,6.9,0,67,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,1,0,0,67,9.232317,1.098612,,0 +10,6,50,1,1,630747,1,10221.2,34.8857,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,81.4,3.4,0,73.9,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,73.9,9.232317,1.098612,,0 +10,6,50,1,2,630747,1,10221.2,35.8857,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,81.4,3.4,0,73.9,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,73.9,9.232317,1.098612,,0 +10,6,50,1,3,630747,1,10221.2,36.8857,0,12,1,0,0,0,0,229.2683,229.2683,1,0,0,0,0,3,81.4,3.4,0,73.9,1000,1000,0,0,1.098612,6.907755,0,3.931826,7.600903,0,0,0,73.9,9.232317,1.098612,5.434893,1 +13,6,0,1,1,630751,0,13844.34,11.90691,1,16,1,0,0,0,0,0,0,0,0,0,0,0,4,85,10.57626,0,92.6,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,92.6,9.535704,1.386294,,0 +13,6,0,1,2,630751,0,13844.34,12.90691,1,16,1,0,0,0,0,0,0,0,0,0,0,0,3,85,10.57626,0,92.6,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,0,0,0,92.6,9.535704,1.098612,,0 +13,6,0,1,3,630751,0,13844.34,13.90691,1,16,1,4.116638,0,0,0,0,4.116638,0,0,0,1,0,3,85,10.57626,0,92.6,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,0,0,0,92.6,9.535704,1.098612,1.415037,1 +13,6,0,1,1,630752,0,13844.34,41.6783,0,16,.5835617,114.43,56.47876,0,0,485.0652,655.9739,1,0,0,7,0,4,79.8,17.2,1,48.9,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,48.9,9.535704,1.386294,6.486121,1 +13,6,0,1,1,630753,0,13844.34,10.34086,0,16,1,8.413967,0,0,0,0,8.413967,0,0,0,1,0,4,83.3,10.57626,0,85.2,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.535704,1.386294,2.129893,1 +13,6,0,1,2,630753,0,13844.34,11.34086,0,16,1,0,0,0,0,0,0,0,0,0,0,0,3,83.3,10.57626,0,85.2,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.535704,1.098612,,0 +13,6,0,1,3,630753,0,13844.34,12.34086,0,16,1,9.948542,0,0,0,0,9.948542,0,0,0,1,0,3,83.3,10.57626,0,85.2,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,85.2,9.535704,1.098612,2.297426,1 +13,6,0,1,1,630754,0,13844.34,38.40383,1,16,1,0,0,0,0,0,0,0,0,0,0,0,4,88.3,0,0,77.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,77.3,9.535704,1.386294,,0 +13,6,0,1,2,630754,0,13844.34,39.40383,1,16,1,14.35588,0,0,0,0,14.35588,0,0,0,1,0,3,88.3,0,0,77.3,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,77.3,9.535704,1.098612,2.664159,1 +13,6,0,1,3,630754,0,13844.34,40.40383,1,16,1,0,0,0,0,0,0,0,0,0,0,0,3,88.3,0,0,77.3,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,77.3,9.535704,1.098612,,0 +13,6,0,0,1,630762,0,5402.97,16.70089,1,12,1,28.35379,0,0,0,0,28.35379,0,0,0,1,0,2,75,6.9,0,80.7,300,300,1,1,.6931472,5.703783,1,4.564348,5.755076,0,0,0,80.7,8.594889,.6931472,3.344761,1 +13,6,0,0,2,630762,0,5402.97,17.70089,1,12,1,12.90812,0,0,0,0,12.90812,0,0,0,2,0,2,75,6.9,0,80.7,300,300,1,1,.6931472,5.703783,1,4.564348,5.755076,0,0,0,80.7,8.594889,.6931472,2.557857,1 +13,6,0,0,3,630762,0,5402.97,18.70089,1,12,1,32.87197,28.20069,13.84083,0,0,74.9135,0,0,0,2,1,2,75,6.9,0,80.7,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,80.7,8.594889,.6931472,4.316334,1 +13,6,0,0,1,630764,0,5402.97,47.29364,1,12,1,31.73932,0,23.2755,0,0,55.01481,0,0,0,1,1,2,78.2,10.3,0,56.8,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,56.8,8.594889,.6931472,4.007603,1 +13,6,0,0,2,630764,0,5402.97,48.29364,1,12,1,54.29005,19.81017,0,0,0,74.10023,0,0,0,7,0,2,78.2,10.3,0,56.8,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,56.8,8.594889,.6931472,4.305418,1 +13,6,0,0,3,630764,0,5402.97,49.29364,1,12,1,40.13841,0,27.68166,0,0,67.82007,0,0,0,0,1,2,78.2,10.3,0,56.8,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,56.8,8.594889,.6931472,4.216858,1 +11,6,0,1,1,630785,0,14529.44,44.37235,0,12,1,108.3369,0,31.73932,0,0,140.0762,0,0,0,2,16,4,80.9,3.4,0,80.7,0,60,0,0,1.386294,4.094345,0,0,0,0,0,0,80.7,9.584002,1.386294,4.942186,1 +11,6,0,1,2,630785,0,14529.44,45.37235,0,12,1,186.7882,0,0,0,0,186.7882,0,0,0,2,14,4,80.9,3.4,0,80.7,0,60,0,0,1.386294,4.094345,0,0,0,0,0,0,80.7,9.584002,1.386294,5.229975,1 +11,6,0,1,3,630785,0,14529.44,46.37235,0,12,1,117.6471,0,62.15571,0,0,179.8028,0,0,0,1,12,4,80.9,3.4,0,80.7,0,60,0,0,1.386294,4.094345,0,0,0,0,0,0,80.7,9.584002,1.386294,5.191861,1 +14,6,95,0,1,630809,0,5339.478,20.58316,1,9,1,378.491,70.34598,35.84827,0,963.7349,1448.42,2,0,0,20,0,5,66.5,20.7,0,73.9,308,660,0,0,1.609438,6.49224,0,4.564348,5.781393,1,0,0,73.9,8.583071,1.609438,7.278229,1 +14,6,95,0,2,630809,0,5339.478,21.58316,1,9,1,266.3166,141.7367,0,0,361.5904,769.6437,1,0,0,24,0,5,66.5,20.7,0,73.9,308,660,0,0,1.609438,6.49224,0,4.564348,5.781393,1,0,0,73.9,8.583071,1.609438,6.645927,1 +14,6,95,0,3,630809,0,5339.478,22.58316,1,9,1,229.1949,78.97835,27.95332,226.6576,1512.821,1848.948,3,0,11,17,0,5,66.5,20.7,0,73.9,308,660,0,0,1.609438,6.49224,0,4.564348,5.781393,1,0,0,73.9,8.583071,1.609438,7.522372,1 +14,6,95,0,1,630810,0,5339.478,24.30116,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,81.4,3.4,0,75,308,660,0,0,1.609438,6.49224,0,4.564348,5.781393,1,0,0,75,8.583071,1.609438,,0 +14,6,95,0,2,630810,0,5339.478,25.30116,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,81.4,3.4,0,75,308,660,0,0,1.609438,6.49224,0,4.564348,5.781393,1,0,0,75,8.583071,1.609438,,0 +14,6,95,0,3,630810,0,5339.478,26.30116,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,81.4,3.4,0,75,308,660,0,0,1.609438,6.49224,0,4.564348,5.781393,1,0,0,75,8.583071,1.609438,,0 +14,6,95,0,1,630811,0,5339.478,2.863792,0,9,1,61.69237,12.1509,0,0,0,73.84327,0,0,0,9,0,5,77.40034,10.57626,0,48.1,308,660,1,0,1.609438,6.49224,0,4.564348,5.781393,1,0,0,48.1,8.583071,1.609438,4.301945,1 +14,6,95,0,2,630811,0,5339.478,3.863792,0,9,1,38.63466,10.62266,0,0,0,49.25731,0,0,0,4,0,5,77.40034,10.57626,0,48.1,308,660,1,0,1.609438,6.49224,0,4.564348,5.781393,1,0,0,48.1,8.583071,1.609438,3.897058,1 +14,6,95,0,3,630811,0,5339.478,4.863792,0,9,1,54.80379,20.6157,0,0,0,75.41949,0,0,0,5,0,5,77.40034,10.57626,0,48.1,308,660,1,0,1.609438,6.49224,0,4.564348,5.781393,1,0,0,48.1,8.583071,1.609438,4.323066,1 +11,6,0,1,1,630813,1,7290.834,22.97878,0,12,1,15.98654,0,31.97308,0,0,47.95961,0,0,0,1,1,3,62.2,10.3,1,56.8,0,240.48,0,0,1.098612,5.482637,0,0,0,1,0,0,56.8,8.89451,1.098612,3.870359,1 +11,6,0,1,2,630813,1,7290.834,23.97878,0,12,1,32.8674,4.756328,0,0,0,37.62373,0,0,0,2,0,3,62.2,10.3,1,56.8,0,240.48,0,0,1.098612,5.482637,0,0,0,1,0,0,56.8,8.89451,1.098612,3.627635,1 +11,6,0,1,3,630813,1,7290.834,24.97878,0,12,1,13.72213,11.73585,0,0,0,25.45798,0,0,0,2,0,3,62.2,10.3,1,56.8,0,240.48,0,0,1.098612,5.482637,0,0,0,1,0,0,56.8,8.89451,1.098612,3.237029,1 +17,6,25,1,1,630819,1,4638.709,5.853525,1,11,1,0,0,0,0,0,0,0,0,0,0,0,7,81.7,10.57626,1,55.6,426.45,426.45,1,1,1.94591,6.055495,0,3.258096,7.44179,0,1,0,55.6,8.442407,1.94591,,0 +17,6,25,1,2,630819,1,4638.709,6.853525,1,11,1,0,0,0,0,0,0,0,0,0,0,0,7,81.7,10.57626,1,55.6,426.45,426.45,1,1,1.94591,6.055495,0,3.258096,7.44179,0,1,0,55.6,8.442407,1.94591,,0 +17,6,25,1,3,630819,1,4638.709,7.853525,1,11,1,10.51746,0,31.55238,0,0,42.06984,0,0,0,0,1,7,81.7,10.57626,1,55.6,426.45,426.45,1,1,1.94591,6.055495,0,3.258096,7.44179,0,1,0,55.6,8.442407,1.94591,3.739331,1 +17,6,25,1,4,630819,1,4638.709,8.853525,1,11,1,11.33358,0,0,0,0,11.33358,0,0,0,0,1,7,81.7,10.57626,1,55.6,426.45,426.45,1,1,1.94591,6.055495,0,3.258096,7.44179,0,1,0,55.6,8.442407,1.94591,2.42777,1 +17,6,25,1,5,630819,1,4638.709,9.853525,1,11,1,159.8285,0,24.01372,0,0,183.8422,0,0,0,0,1,7,81.7,10.57626,1,55.6,426.45,426.45,1,1,1.94591,6.055495,0,3.258096,7.44179,0,1,0,55.6,8.442407,1.94591,5.214078,1 +17,6,25,1,1,630820,1,4638.709,11.67967,0,11,1,0,0,0,0,0,0,0,0,0,0,0,7,55,10.57626,0,70.4,426.45,426.45,1,0,1.94591,6.055495,0,3.258096,7.44179,1,0,0,70.4,8.442407,1.94591,,0 +17,6,25,1,2,630820,1,4638.709,12.67967,0,11,1,21.56953,0,25.24094,0,0,46.81046,0,0,0,0,1,7,55,10.57626,0,70.4,426.45,426.45,1,0,1.94591,6.055495,0,3.258096,7.44179,1,0,0,70.4,8.442407,1.94591,3.846107,1 +17,6,25,1,3,630820,1,4638.709,13.67967,0,11,1,18.93143,0,0,0,0,18.93143,0,0,0,0,0,7,55,10.57626,0,70.4,426.45,426.45,1,0,1.94591,6.055495,0,3.258096,7.44179,1,0,0,70.4,8.442407,1.94591,2.940823,1 +17,6,25,1,4,630820,1,4638.709,14.67967,0,11,1,0,0,0,0,0,0,0,0,0,0,0,7,55,10.57626,0,70.4,426.45,426.45,1,0,1.94591,6.055495,0,3.258096,7.44179,1,0,0,70.4,8.442407,1.94591,,0 +17,6,25,1,5,630820,1,4638.709,15.67967,0,11,1,0,0,0,0,0,0,0,0,0,0,0,7,55,10.57626,0,70.4,426.45,426.45,1,0,1.94591,6.055495,0,3.258096,7.44179,1,0,0,70.4,8.442407,1.94591,,0 +17,6,25,1,1,630821,1,4638.709,9.908282,1,11,1,9.910803,0,0,0,0,9.910803,0,0,0,0,0,7,90,10.57626,1,59.3,426.45,426.45,1,1,1.94591,6.055495,0,3.258096,7.44179,0,1,0,59.3,8.442407,1.94591,2.293625,1 +17,6,25,1,2,630821,1,4638.709,10.90828,1,11,1,11.47315,0,25.24094,0,0,36.71409,0,0,0,0,1,7,90,10.57626,1,59.3,426.45,426.45,1,1,1.94591,6.055495,0,3.258096,7.44179,0,1,0,59.3,8.442407,1.94591,3.603161,1 +17,6,25,1,3,630821,1,4638.709,11.90828,1,11,1,29.44888,0,0,0,0,29.44888,0,0,0,0,0,7,90,10.57626,1,59.3,426.45,426.45,1,1,1.94591,6.055495,0,3.258096,7.44179,0,1,0,59.3,8.442407,1.94591,3.382656,1 +17,6,25,1,4,630821,1,4638.709,12.90828,1,11,1,18.32263,0,0,0,0,18.32263,0,0,0,0,0,7,90,10.57626,1,59.3,426.45,426.45,1,1,1.94591,6.055495,0,3.258096,7.44179,0,1,0,59.3,8.442407,1.94591,2.908137,1 +17,6,25,1,5,630821,1,4638.709,13.90828,1,11,1,0,0,0,0,0,0,0,0,0,0,0,7,90,10.57626,1,59.3,426.45,426.45,1,1,1.94591,6.055495,0,3.258096,7.44179,0,1,0,59.3,8.442407,1.94591,,0 +17,6,25,1,1,630822,1,4638.709,27.36756,1,11,1,99.60357,24.46977,0,0,0,124.0733,0,0,0,2,0,7,77.7,10.3,0,42,426.45,426.45,0,0,1.94591,6.055495,0,3.258096,7.44179,0,0,1,42,8.442407,1.94591,4.820873,1 +17,6,25,1,2,630822,1,4638.709,28.36756,1,11,1,34.87838,0,44.05691,0,0,78.9353,0,0,0,0,1,7,77.7,10.3,0,42,426.45,426.45,0,0,1.94591,6.055495,0,3.258096,7.44179,0,0,1,42,8.442407,1.94591,4.368629,1 +17,6,25,1,3,630822,1,4638.709,29.36756,1,11,1,0,0,0,0,0,0,0,0,0,0,0,7,77.7,10.3,0,42,426.45,426.45,0,0,1.94591,6.055495,0,3.258096,7.44179,0,0,1,42,8.442407,1.94591,,0 +17,6,25,1,4,630822,1,4638.709,30.36756,1,11,1,11.33358,0,38.1564,0,0,49.48999,0,0,0,0,1,7,77.7,10.3,0,42,426.45,426.45,0,0,1.94591,6.055495,0,3.258096,7.44179,0,0,1,42,8.442407,1.94591,3.90177,1 +17,6,25,1,5,630822,1,4638.709,31.36756,1,11,1,16.1235,0,0,0,0,16.1235,0,0,0,0,0,7,77.7,10.3,0,42,426.45,426.45,0,0,1.94591,6.055495,0,3.258096,7.44179,0,0,1,42,8.442407,1.94591,2.780278,1 +17,6,25,1,1,630823,1,4638.709,29.63176,0,12,1,28.74133,7.680872,0,0,0,36.4222,0,0,0,5,0,7,58,20.7,0,44.3,426.45,426.45,0,0,1.94591,6.055495,0,3.258096,7.44179,1,0,0,44.3,8.442407,1.94591,3.595178,1 +17,6,25,1,2,630823,1,4638.709,30.63176,0,12,1,4.589261,4.396512,0,0,0,8.985773,0,0,0,1,0,7,58,20.7,0,44.3,426.45,426.45,0,0,1.94591,6.055495,0,3.258096,7.44179,1,0,0,44.3,8.442407,1.94591,2.195642,1 +17,6,25,1,3,630823,1,4638.709,31.63176,0,12,1,0,0,0,0,0,0,0,0,0,0,0,7,58,20.7,0,44.3,426.45,426.45,0,0,1.94591,6.055495,0,3.258096,7.44179,1,0,0,44.3,8.442407,1.94591,,0 +17,6,25,1,4,630823,1,4638.709,32.63176,0,12,1,0,0,0,0,0,0,0,0,0,0,0,7,58,20.7,0,44.3,426.45,426.45,0,0,1.94591,6.055495,0,3.258096,7.44179,1,0,0,44.3,8.442407,1.94591,,0 +17,6,25,1,5,630823,1,4638.709,33.63176,0,12,1,32.93311,0,0,0,0,32.93311,0,0,0,1,0,7,58,20.7,0,44.3,426.45,426.45,0,0,1.94591,6.055495,0,3.258096,7.44179,1,0,0,44.3,8.442407,1.94591,3.494478,1 +17,6,25,1,1,630824,1,4638.709,1.984942,1,11,1,18.33499,2.725471,0,0,0,21.06046,0,0,0,0,0,7,77.40034,10.57626,1,81.5,426.45,426.45,1,1,1.94591,6.055495,0,3.258096,7.44179,0,0,0,81.5,8.442407,1.94591,3.047397,1 +17,6,25,1,2,630824,1,4638.709,2.984942,1,11,1,9.178522,0,0,0,0,9.178522,0,0,0,0,0,7,77.40034,10.57626,1,81.5,426.45,426.45,1,1,1.94591,6.055495,0,3.258096,7.44179,0,0,0,81.5,8.442407,1.94591,2.216866,1 +17,6,25,1,3,630824,1,4638.709,3.984942,1,11,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,1,81.5,426.45,426.45,1,1,1.94591,6.055495,0,3.258096,7.44179,0,0,0,81.5,8.442407,1.94591,,0 +17,6,25,1,4,630824,1,4638.709,4.984942,1,11,1,10.20023,0,0,0,0,10.20023,0,0,0,0,0,7,77.40034,10.57626,1,81.5,426.45,426.45,1,1,1.94591,6.055495,0,3.258096,7.44179,0,0,0,81.5,8.442407,1.94591,2.32241,1 +17,6,25,1,5,630824,1,4638.709,5.984942,1,11,1,12.00686,0,0,0,0,12.00686,0,0,0,0,1,7,77.40034,10.57626,1,81.5,426.45,426.45,1,1,1.94591,6.055495,0,3.258096,7.44179,0,0,0,81.5,8.442407,1.94591,2.485478,1 +18,6,25,0,1,630837,.5112414,2469.534,22.52977,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,61.7,0,0,56.8,750,0,0,0,.6931472,0,0,3.258096,8.006368,0,0,0,56.8,7.81219,.6931472,,0 +18,6,25,0,2,630837,.5112414,2469.534,23.52977,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,61.7,0,0,56.8,750,0,0,0,.6931472,0,0,3.258096,8.006368,0,0,0,56.8,7.81219,.6931472,,0 +18,6,25,0,3,630837,.5112414,2469.534,24.52977,0,12,1,16.46655,0,0,0,0,16.46655,0,0,0,0,0,2,61.7,0,0,56.8,750,0,0,0,.6931472,0,0,3.258096,8.006368,0,0,0,56.8,7.81219,.6931472,2.801331,1 +18,6,25,0,1,630838,1,6735.316,13.33881,1,10,1,0,0,0,0,0,0,0,0,0,0,0,6,75,10.57626,.1442925,66.7,750,750,1,1,1.791759,6.620073,0,3.258096,8.006368,0,0,0,66.7,8.815269,1.791759,,0 +18,6,25,0,2,630838,1,6735.316,14.33881,1,10,1,0,0,0,0,0,0,0,0,0,0,0,6,75,10.57626,.1442925,66.7,750,750,1,1,1.791759,6.620073,0,3.258096,8.006368,0,0,0,66.7,8.815269,1.791759,,0 +18,6,25,0,3,630838,1,6735.316,15.33881,1,10,1,10.2916,0,0,0,0,10.2916,0,0,0,0,1,6,75,10.57626,.1442925,66.7,750,750,1,1,1.791759,6.620073,0,3.258096,8.006368,0,0,0,66.7,8.815269,1.791759,2.331328,1 +18,6,25,0,1,630839,1,6735.316,47.15948,1,10,1,6.731174,2.027766,0,0,0,8.75894,0,0,0,1,0,6,80.9,3.4,0,83,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,1,0,0,83,8.815269,1.791759,2.170075,1 +18,6,25,0,2,630839,1,6735.316,48.15948,1,10,1,17.75595,0,0,0,2425.765,2443.521,3,0,0,2,0,6,80.9,3.4,0,83,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,1,0,0,83,8.815269,1.791759,7.801195,1 +18,6,25,0,3,630839,1,6735.316,49.15948,1,10,1,24.01372,0,43.2247,0,0,67.23842,0,0,0,2,1,6,80.9,3.4,0,83,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,1,0,0,83,8.815269,1.791759,4.208245,1 +18,6,25,0,1,630840,1,6735.316,9.371663,0,10,1,37.44215,0,0,0,0,37.44215,0,0,0,1,0,6,93.3,10.57626,.1442925,100,750,750,1,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,100,8.815269,1.791759,3.622797,1 +18,6,25,0,2,630840,1,6735.316,10.37166,0,10,1,0,0,0,0,0,0,0,0,0,0,0,6,93.3,10.57626,.1442925,100,750,750,1,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,100,8.815269,1.791759,,0 +18,6,25,0,3,630840,1,6735.316,11.37166,0,10,1,0,0,0,0,0,0,0,0,0,0,0,6,93.3,10.57626,.1442925,100,750,750,1,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,100,8.815269,1.791759,,0 +18,6,25,0,1,630841,1,6735.316,21.73032,0,11,1,0,0,0,0,0,0,0,0,0,0,0,6,70.7,24.1,1,47.7,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,47.7,8.815269,1.791759,,0 +18,6,25,0,2,630841,1,6735.316,22.73032,0,11,1,0,0,0,0,0,0,0,0,0,0,0,6,70.7,24.1,1,47.7,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,47.7,8.815269,1.791759,,0 +18,6,25,0,3,630841,1,6735.316,23.73032,0,11,1,20.24014,0,0,0,0,20.24014,0,0,0,0,0,6,70.7,24.1,1,47.7,750,750,0,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,47.7,8.815269,1.791759,3.007668,1 +18,6,25,0,1,630843,1,6735.316,14.42026,0,10,1,0,0,0,0,0,0,0,0,0,0,0,6,80.3,6.9,0,77.3,750,750,1,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,77.3,8.815269,1.791759,,0 +18,6,25,0,2,630843,1,6735.316,15.42026,0,10,1,0,0,0,0,0,0,0,0,0,0,0,6,80.3,6.9,0,77.3,750,750,1,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,77.3,8.815269,1.791759,,0 +18,6,25,0,3,630843,1,6735.316,16.42026,0,10,1,0,0,0,0,0,0,0,0,0,0,0,6,80.3,6.9,0,77.3,750,750,1,0,1.791759,6.620073,0,3.258096,8.006368,0,0,0,77.3,8.815269,1.791759,,0 +11,6,0,1,1,630895,0,10931.39,37.17454,0,16,1,56.28439,12.46297,29.62336,0,0,98.37071,0,0,0,4,1,4,92.6,6.9,0,73.9,0,0,0,0,1.386294,0,0,0,0,0,0,0,73.9,9.299485,1.386294,4.588743,1 +11,6,0,1,2,630895,0,10931.39,38.17454,0,16,1,45.55809,20.99089,0,0,0,66.54897,0,0,0,2,2,4,92.6,6.9,0,73.9,0,0,0,0,1.386294,0,0,0,0,0,0,0,73.9,9.299485,1.386294,4.197938,1 +11,6,0,1,3,630895,0,10931.39,39.17454,0,16,1,173.3564,34.23529,35.51211,0,0,243.1038,0,0,0,6,1,4,92.6,6.9,0,73.9,0,0,0,0,1.386294,0,0,0,0,0,0,0,73.9,9.299485,1.386294,5.493488,1 +11,6,0,1,1,630896,0,10931.39,7.110198,0,14,1,86.33093,21.47694,0,0,0,107.8079,0,0,0,8,0,4,85,10.57626,0,74.1,0,0,1,0,1.386294,0,0,0,0,0,0,0,74.1,9.299485,1.386294,4.680351,1 +11,6,0,1,2,630896,0,10931.39,8.110198,0,14,1,29.99241,19.59757,0,0,0,49.58998,0,0,0,3,1,4,85,10.57626,0,74.1,0,0,1,0,1.386294,0,0,0,0,0,0,0,74.1,9.299485,1.386294,3.903789,1 +11,6,0,1,3,630896,0,10931.39,9.110198,0,14,1,185.4671,66.87543,24.22145,0,0,276.564,0,0,0,3,1,4,85,10.57626,0,74.1,0,0,1,0,1.386294,0,0,0,0,0,0,0,74.1,9.299485,1.386294,5.622442,1 +11,6,0,1,1,630897,0,10931.39,33.80698,1,14,1,24.54507,62.73804,0,0,0,87.28311,0,0,0,3,0,4,84,10.3,0,61.4,0,0,0,0,1.386294,0,0,0,0,0,0,0,61.4,9.299485,1.386294,4.469157,1 +11,6,0,1,2,630897,0,10931.39,34.80698,1,14,1,82.00455,107.388,34.16856,0,0,223.5611,0,0,0,5,1,4,84,10.3,0,61.4,0,0,0,0,1.386294,0,0,0,0,0,0,0,61.4,9.299485,1.386294,5.409685,1 +11,6,0,1,3,630897,0,10931.39,35.80698,1,14,1,252.2491,191.4118,0,0,0,443.6609,0,0,0,11,0,4,84,10.3,0,61.4,0,0,0,0,1.386294,0,0,0,0,0,0,0,61.4,9.299485,1.386294,6.09506,1 +11,6,0,1,1,630898,0,10931.39,8.758385,0,14,1,44.43504,14.81168,0,0,0,59.24672,0,0,0,5,0,4,86.7,10.57626,0,81.5,0,0,1,0,1.386294,0,0,0,0,0,0,0,81.5,9.299485,1.386294,4.08171,1 +11,6,0,1,2,630898,0,10931.39,9.758385,0,14,1,73.65224,16.40471,28.4738,0,0,118.5308,0,0,0,10,1,4,86.7,10.57626,0,81.5,0,0,1,0,1.386294,0,0,0,0,0,0,0,81.5,9.299485,1.386294,4.775172,1 +11,6,0,1,3,630898,0,10931.39,10.75838,0,14,1,132.1799,8.387544,13.84083,0,0,154.4083,0,0,0,5,0,4,86.7,10.57626,0,81.5,0,0,1,0,1.386294,0,0,0,0,0,0,0,81.5,9.299485,1.386294,5.0396,1 +11,6,0,1,1,630899,1,4096.262,14.51608,0,11,1,0,0,0,0,0,0,0,0,0,0,0,5,73.4,3.4,0,76.1,0,0,1,0,1.609438,0,0,0,0,0,1,0,76.1,8.318074,1.609438,,0 +11,6,0,1,2,630899,1,4096.262,15.51608,0,11,1,0,0,0,0,0,0,0,0,0,0,0,5,73.4,3.4,0,76.1,0,0,1,0,1.609438,0,0,0,0,0,1,0,76.1,8.318074,1.609438,,0 +11,6,0,1,3,630899,1,4096.262,16.51608,0,11,1,26.41509,3.138937,0,0,0,29.55403,0,0,0,2,0,5,73.4,3.4,0,76.1,0,0,1,0,1.609438,0,0,0,0,0,1,0,76.1,8.318074,1.609438,3.38622,1 +11,6,0,1,1,630900,1,4096.262,34.53251,0,7,1,40.80774,0,0,0,0,40.80774,0,0,0,1,0,5,88.8,3.4,0,69,0,0,0,0,1.609438,0,0,0,0,1,0,0,69,8.318074,1.609438,3.708872,1 +11,6,0,1,2,630900,1,4096.262,35.53251,0,7,1,77.44617,10.16245,0,0,0,87.60861,0,0,0,3,0,5,88.8,3.4,0,69,0,0,0,0,1.609438,0,0,0,0,1,0,0,69,8.318074,1.609438,4.472879,1 +11,6,0,1,3,630900,1,4096.262,36.53251,0,7,1,26.41509,0,0,0,0,26.41509,0,0,0,2,0,5,88.8,3.4,0,69,0,0,0,0,1.609438,0,0,0,0,1,0,0,69,8.318074,1.609438,3.273936,1 +11,6,0,1,1,630901,1,4096.262,6.20397,1,11,1,18.51073,1.682793,0,0,0,20.19352,0,0,0,1,0,5,83.3,10.57626,0,59.3,0,0,1,1,1.609438,0,0,0,0,0,0,0,59.3,8.318074,1.609438,3.005362,1 +11,6,0,1,2,630901,1,4096.262,7.20397,1,11,1,79.71288,0,0,0,0,79.71288,0,0,0,4,0,5,83.3,10.57626,0,59.3,0,0,1,1,1.609438,0,0,0,0,0,0,0,59.3,8.318074,1.609438,4.378431,1 +11,6,0,1,3,630901,1,4096.262,8.20397,1,11,1,13.72213,0,0,0,0,13.72213,0,0,0,1,0,5,83.3,10.57626,0,59.3,0,0,1,1,1.609438,0,0,0,0,0,0,0,59.3,8.318074,1.609438,2.61901,1 +11,6,0,1,1,630902,1,4096.262,7.578371,1,11,1,17.66933,0,0,0,0,17.66933,0,0,0,3,0,5,100,10.57626,0,77.8,0,0,1,1,1.609438,0,0,0,0,1,0,0,77.8,8.318074,1.609438,2.87183,1 +11,6,0,1,2,630902,1,4096.262,8.578371,1,11,1,88.40196,10.10578,0,0,0,98.50774,0,0,0,3,0,5,100,10.57626,0,77.8,0,0,1,1,1.609438,0,0,0,0,1,0,0,77.8,8.318074,1.609438,4.590135,1 +11,6,0,1,3,630902,1,4096.262,9.578371,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,100,10.57626,0,77.8,0,0,1,1,1.609438,0,0,0,0,1,0,0,77.8,8.318074,1.609438,,0 +11,6,0,1,1,630903,1,4096.262,32.79124,1,11,1,26.92469,0,0,0,0,26.92469,0,0,0,3,0,5,84,10.3,0,62.5,0,0,0,0,1.609438,0,0,0,0,0,1,0,62.5,8.318074,1.609438,3.293044,1 +11,6,0,1,2,630903,1,4096.262,33.79124,1,11,1,59.31243,31.0918,0,0,0,90.40423,0,0,0,7,0,5,84,10.3,0,62.5,0,0,0,0,1.609438,0,0,0,0,0,1,0,62.5,8.318074,1.609438,4.504291,1 +11,6,0,1,3,630903,1,4096.262,34.79124,1,11,1,59.3482,39.03945,0,0,0,98.38765,0,0,0,4,0,5,84,10.3,0,62.5,0,0,0,0,1.609438,0,0,0,0,0,1,0,62.5,8.318074,1.609438,4.588915,1 +13,6,0,1,1,630909,1,6517.302,16.28747,1,17,1,9.82801,0,0,0,0,9.82801,0,0,0,0,0,2,83.5,3.4,0,85.2,300,454.42,1,1,.6931472,6.119022,1,4.564348,5.755076,0,0,0,85.2,8.78237,.6931472,2.285236,1 +13,6,0,1,2,630909,1,6517.302,17.28747,1,17,1,11.39471,0,0,0,0,11.39471,0,0,0,1,0,2,83.5,3.4,0,85.2,300,454.42,1,1,.6931472,6.119022,1,4.564348,5.755076,0,0,0,85.2,8.78237,.6931472,2.433149,1 +13,6,0,1,3,630909,1,6517.302,18.28747,1,17,1,0,0,0,0,0,0,0,0,0,0,0,2,83.5,3.4,0,85.2,300,454.42,0,0,.6931472,6.119022,1,4.564348,5.755076,0,0,0,85.2,8.78237,.6931472,,0 +13,6,0,1,4,630909,1,6517.302,19.28747,1,17,1,10.50263,0,0,0,0,10.50263,0,0,0,0,0,2,83.5,3.4,0,85.2,300,454.42,0,0,.6931472,6.119022,1,4.564348,5.755076,0,0,0,85.2,8.78237,.6931472,2.351625,1 +13,6,0,1,5,630909,1,6517.302,20.28747,1,17,1,0,0,0,0,0,0,0,0,0,0,0,2,83.5,3.4,0,85.2,300,454.42,0,0,.6931472,6.119022,1,4.564348,5.755076,0,0,0,85.2,8.78237,.6931472,,0 +13,6,0,1,1,630910,1,6517.302,46.33812,1,17,1,21.62162,0,38.82064,0,0,60.44226,0,0,0,1,0,2,89.6,6.9,0,72.7,300,454.42,0,0,.6931472,6.119022,1,4.564348,5.755076,0,0,0,72.7,8.78237,.6931472,4.101688,1 +13,6,0,1,2,630910,1,6517.302,47.33812,1,17,1,0,0,0,0,0,0,0,0,0,0,0,2,89.6,6.9,0,72.7,300,454.42,0,0,.6931472,6.119022,1,4.564348,5.755076,0,0,0,72.7,8.78237,.6931472,,0 +13,6,0,1,3,630910,1,6517.302,48.33812,1,17,1,0,0,0,0,0,0,0,0,0,0,0,2,89.6,6.9,0,72.7,300,454.42,0,0,.6931472,6.119022,1,4.564348,5.755076,0,0,0,72.7,8.78237,.6931472,,0 +13,6,0,1,4,630910,1,6517.302,49.33812,1,17,1,16.87922,0,0,0,0,16.87922,0,0,0,1,0,2,89.6,6.9,0,72.7,300,454.42,0,0,.6931472,6.119022,1,4.564348,5.755076,0,0,0,72.7,8.78237,.6931472,2.826083,1 +13,6,0,1,5,630910,1,6517.302,50.33812,1,17,1,28.07848,3.599459,0,0,0,31.67794,0,0,0,3,0,2,89.6,6.9,0,72.7,300,454.42,0,0,.6931472,6.119022,1,4.564348,5.755076,0,0,0,72.7,8.78237,.6931472,3.455621,1 +11,6,0,1,1,630947,0,6735.316,14.73785,0,16,1,12.69573,3.343208,0,0,0,16.03893,0,0,0,2,0,4,94.1,3.4,0,96.4,0,197.4,1,0,1.386294,5.285232,0,0,0,0,0,0,96.4,8.815269,1.386294,2.775019,1 +11,6,0,1,2,630947,0,6735.316,15.73785,0,16,1,51.25285,16.15414,0,0,0,67.40698,0,0,0,6,0,4,94.1,3.4,0,96.4,0,197.4,1,0,1.386294,5.285232,0,0,0,0,0,0,96.4,8.815269,1.386294,4.210749,1 +11,6,0,1,3,630947,0,6735.316,16.73785,0,16,1,41.52249,22.30104,0,0,0,63.82353,0,0,0,6,0,4,94.1,3.4,0,96.4,0,197.4,1,0,1.386294,5.285232,0,0,0,0,0,0,96.4,8.815269,1.386294,4.156122,1 +11,6,0,1,1,630948,0,6735.316,39.17043,0,20,1,26.66102,86.74566,0,0,0,113.4067,0,0,0,1,0,4,93.1,3.4,0,98.9,0,197.4,0,0,1.386294,5.285232,0,0,0,0,0,0,98.9,8.815269,1.386294,4.73098,1 +11,6,0,1,2,630948,0,6735.316,40.17043,0,20,1,268.4131,150.5277,0,0,0,418.9408,0,0,0,8,0,4,93.1,3.4,0,98.9,0,197.4,0,0,1.386294,5.285232,0,0,0,0,0,0,98.9,8.815269,1.386294,6.03773,1 +11,6,0,1,3,630948,0,6735.316,41.17043,0,20,1,55.0173,128.1107,0,0,0,183.128,0,0,0,5,0,4,93.1,3.4,0,98.9,0,197.4,0,0,1.386294,5.285232,0,0,0,0,0,0,98.9,8.815269,1.386294,5.210186,1 +11,6,0,1,1,630949,0,6735.316,9.404517,0,16,1,72.78883,11.23995,0,0,0,84.02878,0,0,0,6,0,4,98.3,10.57626,0,96.3,0,197.4,1,0,1.386294,5.285232,0,0,0,0,0,0,96.3,8.815269,1.386294,4.431159,1 +11,6,0,1,2,630949,0,6735.316,10.40452,0,16,1,112.3766,8.378891,0,0,0,120.7555,0,0,0,5,0,4,98.3,10.57626,0,96.3,0,197.4,1,0,1.386294,5.285232,0,0,0,0,0,0,96.3,8.815269,1.386294,4.793768,1 +11,6,0,1,3,630949,0,6735.316,11.40452,0,16,1,91.34948,3.100346,0,0,0,94.44983,0,0,0,4,0,4,98.3,10.57626,0,96.3,0,197.4,1,0,1.386294,5.285232,0,0,0,0,0,0,96.3,8.815269,1.386294,4.548069,1 +11,6,0,1,1,630950,0,6735.316,36.7091,1,16,1,148.1168,41.84934,0,0,0,189.9661,0,0,0,24,0,4,76.6,10.3,0,78.4,0,197.4,0,0,1.386294,5.285232,0,0,0,0,0,0,78.4,8.815269,1.386294,5.246846,1 +11,6,0,1,2,630950,0,6735.316,37.7091,1,16,1,28.4738,6.833713,0,0,0,35.30752,0,0,0,12,0,4,76.6,10.3,0,78.4,0,197.4,0,0,1.386294,5.285232,0,0,0,0,0,0,78.4,8.815269,1.386294,3.564096,1 +11,6,0,1,3,630950,0,6735.316,38.7091,1,16,1,70.24222,18.67128,0,0,0,88.9135,0,0,0,9,0,4,76.6,10.3,0,78.4,0,197.4,0,0,1.386294,5.285232,0,0,0,0,0,0,78.4,8.815269,1.386294,4.487664,1 +19,6,25,1,1,630954,0,8146.627,27.2334,1,11,1,9.910803,15.39643,0,0,0,25.30724,0,0,0,2,0,5,70.7,10.3,0,72.7,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,1,0,72.7,9.005482,1.609438,3.23109,1 +19,6,25,1,2,630954,0,8146.627,28.2334,1,11,1,0,6.654428,0,0,0,6.654428,0,0,0,0,0,5,70.7,10.3,0,72.7,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,1,0,72.7,9.005482,1.609438,1.895283,1 +19,6,25,1,3,630954,0,8146.627,29.2334,1,11,1,33.65587,0,0,0,0,33.65587,0,0,0,2,0,5,70.7,10.3,0,72.7,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,1,0,72.7,9.005482,1.609438,3.516187,1 +19,6,25,1,4,630954,0,8146.627,30.2334,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,70.7,10.3,0,72.7,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,1,0,72.7,9.005482,1.609438,,0 +19,6,25,1,5,630954,0,8146.627,31.2334,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,70.7,10.3,0,72.7,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,1,0,72.7,9.005482,1.609438,,0 +19,6,25,1,1,630955,0,8146.627,7.466119,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,90,10.57626,0,29.6,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,1,0,0,29.6,9.005482,1.609438,,0 +19,6,25,1,2,630955,0,8146.627,8.466119,1,11,1,2.294631,3.327214,0,0,0,5.621845,0,0,0,1,0,5,90,10.57626,0,29.6,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,1,0,0,29.6,9.005482,1.609438,1.72666,1 +19,6,25,1,3,630955,0,8146.627,9.466119,1,11,1,8.413967,0,23.13841,0,0,31.55238,0,0,0,0,1,5,90,10.57626,0,29.6,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,1,0,0,29.6,9.005482,1.609438,3.451649,1 +19,6,25,1,4,630955,0,8146.627,10.46612,1,11,1,9.444654,0,15.11145,0,0,24.5561,0,0,0,0,1,5,90,10.57626,0,29.6,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,1,0,0,29.6,9.005482,1.609438,3.20096,1 +19,6,25,1,5,630955,0,8146.627,11.46612,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,90,10.57626,0,29.6,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,1,0,0,29.6,9.005482,1.609438,,0 +19,6,25,1,1,630956,0,8146.627,4.89254,0,11,1,30.22795,0,0,0,0,30.22795,0,0,0,1,0,5,77.40034,10.57626,0,85.2,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,85.2,9.005482,1.609438,3.408767,1 +19,6,25,1,2,630956,0,8146.627,5.89254,0,11,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,85.2,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,85.2,9.005482,1.609438,,0 +19,6,25,1,3,630956,0,8146.627,6.89254,0,11,1,32.39377,0,0,0,0,32.39377,0,0,0,0,0,5,77.40034,10.57626,0,85.2,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,85.2,9.005482,1.609438,3.477966,1 +19,6,25,1,4,630956,0,8146.627,7.89254,0,11,1,46.84549,0,0,0,0,46.84549,0,0,0,0,0,5,77.40034,10.57626,0,85.2,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,85.2,9.005482,1.609438,3.846855,1 +19,6,25,1,5,630956,0,8146.627,8.892539,0,11,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,85.2,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,85.2,9.005482,1.609438,,0 +19,6,25,1,1,630957,0,8146.627,29.28679,0,12,1,111.9921,31.62537,0,0,0,143.6174,0,0,0,6,0,5,77.1,6.9,0,76.1,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,76.1,9.005482,1.609438,4.967153,1 +19,6,25,1,2,630957,0,8146.627,30.28679,0,12,1,27.53557,34.64433,0,0,0,62.1799,0,0,0,8,0,5,77.1,6.9,0,76.1,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,76.1,9.005482,1.609438,4.130032,1 +19,6,25,1,3,630957,0,8146.627,31.28679,0,12,1,48.80101,4.177535,0,0,0,52.97855,0,0,0,5,0,5,77.1,6.9,0,76.1,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,76.1,9.005482,1.609438,3.969887,1 +19,6,25,1,4,630957,0,8146.627,32.28679,0,12,1,52.89006,0,0,0,0,52.89006,0,0,0,9,0,5,77.1,6.9,0,76.1,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,76.1,9.005482,1.609438,3.968215,1 +19,6,25,1,5,630957,0,8146.627,33.28679,0,12,1,26.75815,0,0,0,0,26.75815,0,0,0,3,0,5,77.1,6.9,0,76.1,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,76.1,9.005482,1.609438,3.286839,1 +19,6,25,1,1,630958,0,8146.627,2.850103,1,11,1,2.477701,4.38553,0,0,0,6.863231,0,0,0,1,0,5,77.40034,10.57626,0,77.8,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,77.8,9.005482,1.609438,1.926178,1 +19,6,25,1,2,630958,0,8146.627,3.850103,1,11,1,3.212483,2.413951,0,0,0,5.626434,0,0,0,1,0,5,77.40034,10.57626,0,77.8,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,77.8,9.005482,1.609438,1.727476,1 +19,6,25,1,3,630958,0,8146.627,4.850103,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,77.8,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,77.8,9.005482,1.609438,,0 +19,6,25,1,4,630958,0,8146.627,5.850103,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,77.8,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,77.8,9.005482,1.609438,,0 +19,6,25,1,5,630958,0,8146.627,6.850103,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,77.8,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,77.8,9.005482,1.609438,,0 +13,6,0,0,1,630962,.5112414,3575.525,19.14305,0,8,1,22.71771,0,0,0,0,22.71771,0,0,0,0,0,3,59.6,6.9,0,67,450,552,0,0,1.098612,6.313548,1,4.564348,6.160541,0,0,0,67,8.182147,1.098612,3.123145,1 +13,6,0,0,2,630962,.5112414,3575.525,20.14305,0,8,1,14.35588,0,0,0,0,14.35588,0,0,0,0,0,3,59.6,6.9,0,67,450,552,0,0,1.098612,6.313548,1,4.564348,6.160541,0,0,0,67,8.182147,1.098612,2.664159,1 +13,6,0,0,3,630962,.5112414,3575.525,21.14305,0,8,1,36.70669,0,0,0,0,36.70669,0,0,0,0,0,3,59.6,6.9,0,67,450,552,0,0,1.098612,6.313548,1,4.564348,6.160541,0,0,0,67,8.182147,1.098612,3.602959,1 +14,6,95,1,1,630969,0,6735.316,61.17728,0,19,1,286.4956,0,0,0,0,286.4956,0,0,0,11,0,2,89.9,0,0,86.4,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,86.4,8.815269,.6931472,5.657723,1 +14,6,95,1,2,630969,0,6735.316,62.17728,0,19,1,0,0,0,0,0,0,0,0,0,0,0,2,89.9,0,0,86.4,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,86.4,8.815269,.6931472,,0 +14,6,95,1,3,630969,0,6735.316,63.17728,0,19,1,0,0,0,0,0,0,0,0,0,0,0,2,89.9,0,0,86.4,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,86.4,8.815269,.6931472,,0 +14,6,95,1,1,630971,0,6735.316,52.95277,1,12,1,68.15314,3.786285,43.14682,0,0,115.0862,0,0,0,4,0,2,66.5,31,0,52.3,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,52.3,8.815269,.6931472,4.745682,1 +14,6,95,1,2,630971,0,6735.316,53.95277,1,12,1,22.66717,0,0,0,0,22.66717,0,0,0,1,0,2,66.5,31,0,52.3,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,52.3,8.815269,.6931472,3.120918,1 +14,6,95,1,3,630971,0,6735.316,54.95277,1,12,1,61.74957,0,0,0,0,61.74957,0,0,0,3,1,2,66.5,31,0,52.3,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,52.3,8.815269,.6931472,4.123087,1 +16,6,95,0,1,630974,1,6656.426,7.058179,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,100,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,100,8.803488,1.609438,,0 +16,6,95,0,2,630974,1,6656.426,8.058179,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,100,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,100,8.803488,1.609438,,0 +16,6,95,0,3,630974,1,6656.426,9.058179,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,100,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,100,8.803488,1.609438,,0 +16,6,95,0,1,630975,1,6656.426,30.80903,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,79.3,3.4,0,71.2,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,71.2,8.803488,1.609438,,0 +16,6,95,0,2,630975,1,6656.426,31.80903,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,79.3,3.4,0,71.2,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,71.2,8.803488,1.609438,,0 +16,6,95,0,3,630975,1,6656.426,32.80904,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,79.3,3.4,0,71.2,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,71.2,8.803488,1.609438,,0 +16,6,95,0,1,630976,1,6656.426,4.213552,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,100,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,100,8.803488,1.609438,,0 +16,6,95,0,2,630976,1,6656.426,5.213552,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,100,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,100,8.803488,1.609438,,0 +16,6,95,0,3,630976,1,6656.426,6.213552,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,100,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,100,8.803488,1.609438,,0 +16,6,95,0,1,630977,1,6656.426,30.40931,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,93.6,3.4,0,81.8,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,81.8,8.803488,1.609438,,0 +16,6,95,0,2,630977,1,6656.426,31.40931,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,93.6,3.4,0,81.8,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,81.8,8.803488,1.609438,,0 +16,6,95,0,3,630977,1,6656.426,32.40931,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,93.6,3.4,0,81.8,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,81.8,8.803488,1.609438,,0 +5,6,25,1,1,630980,1,1327.189,14.15469,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,79.8,6.9,0,79.5,431.4,431.4,1,0,2.079442,6.067036,0,3.258096,7.45333,0,0,0,79.5,7.191572,2.079442,,0 +5,6,25,1,2,630980,1,1327.189,15.15469,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,79.8,6.9,0,79.5,431.4,431.4,1,0,2.079442,6.067036,0,3.258096,7.45333,0,0,0,79.5,7.191572,2.079442,,0 +5,6,25,1,3,630980,1,1327.189,16.15469,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,79.8,6.9,0,79.5,431.4,431.4,1,0,1.791759,6.067036,0,3.258096,7.45333,0,0,0,79.5,7.191572,1.791759,,0 +5,6,25,1,1,630981,1,1327.189,35.20329,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,77.1,13.8,0,70.5,431.4,431.4,0,0,2.079442,6.067036,0,3.258096,7.45333,0,0,0,70.5,7.191572,2.079442,,0 +5,6,25,1,2,630981,1,1327.189,36.20329,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,77.1,13.8,0,70.5,431.4,431.4,0,0,2.079442,6.067036,0,3.258096,7.45333,0,0,0,70.5,7.191572,2.079442,,0 +5,6,25,1,3,630981,1,1327.189,37.20329,1,12,1,169.1252,10.36021,0,0,1097.427,1276.912,1,0,0,7,0,6,77.1,13.8,0,70.5,431.4,431.4,0,0,1.791759,6.067036,0,3.258096,7.45333,0,0,0,70.5,7.191572,1.791759,7.1522,1 +5,6,25,1,1,630982,1,1327.189,15.57837,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,67.6,3.4,0,48.8,431.4,431.4,1,0,2.079442,6.067036,0,3.258096,7.45333,0,0,0,48.8,7.191572,2.079442,,0 +5,6,25,1,2,630982,1,1327.189,16.57837,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,67.6,3.4,0,48.8,431.4,431.4,1,0,2.079442,6.067036,0,3.258096,7.45333,0,0,0,48.8,7.191572,2.079442,,0 +5,6,25,1,1,630983,1,1327.189,12.82135,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,88.3,10.57626,0,92.6,431.4,431.4,1,0,2.079442,6.067036,0,3.258096,7.45333,0,0,0,92.6,7.191572,2.079442,,0 +5,6,25,1,2,630983,1,1327.189,13.82135,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,88.3,10.57626,0,92.6,431.4,431.4,1,0,2.079442,6.067036,0,3.258096,7.45333,0,0,0,92.6,7.191572,2.079442,,0 +5,6,25,1,3,630983,1,1327.189,14.82135,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,88.3,10.57626,0,92.6,431.4,431.4,1,0,1.791759,6.067036,0,3.258096,7.45333,0,0,0,92.6,7.191572,1.791759,,0 +5,6,25,0,1,630985,1,1327.189,37.06503,0,7,1,0,0,0,0,0,0,0,0,0,0,0,8,86.2,3.4,0,77.3,431.4,431.4,0,0,2.079442,6.067036,0,3.258096,7.45333,0,0,0,77.3,7.191572,2.079442,,0 +5,6,25,0,2,630985,1,1327.189,38.06503,0,7,1,0,0,0,0,0,0,0,0,0,0,0,8,86.2,3.4,0,77.3,431.4,431.4,0,0,2.079442,6.067036,0,3.258096,7.45333,0,0,0,77.3,7.191572,2.079442,,0 +5,6,25,0,3,630985,1,1327.189,39.06503,0,7,1,36.02058,2.521441,0,0,2085.42,2123.962,1,0,0,3,0,6,86.2,3.4,0,77.3,431.4,431.4,0,0,1.791759,6.067036,0,3.258096,7.45333,0,0,0,77.3,7.191572,1.791759,7.661038,1 +5,6,25,1,1,630986,1,1327.189,19.2909,1,7,1,5.04838,.6310475,0,0,0,5.679428,0,0,0,1,0,8,79.8,3.4,0,76.1,431.4,431.4,0,0,2.079442,6.067036,0,3.258096,7.45333,0,0,0,76.1,7.191572,2.079442,1.736851,1 +5,6,25,1,2,630986,1,1327.189,20.2909,1,7,1,0,0,0,0,415.187,415.187,1,0,0,0,0,8,79.8,3.4,0,76.1,431.4,431.4,0,0,2.079442,6.067036,0,3.258096,7.45333,0,0,0,76.1,7.191572,2.079442,6.028729,1 +5,6,25,1,1,630987,1,1327.189,11.53183,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,91.7,10.57626,0,74.1,431.4,431.4,1,1,2.079442,6.067036,0,3.258096,7.45333,0,0,0,74.1,7.191572,2.079442,,0 +5,6,25,1,2,630987,1,1327.189,12.53183,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,91.7,10.57626,0,74.1,431.4,431.4,1,1,2.079442,6.067036,0,3.258096,7.45333,0,0,0,74.1,7.191572,2.079442,,0 +5,6,25,1,3,630987,1,1327.189,13.53183,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,91.7,10.57626,0,74.1,431.4,431.4,1,1,1.791759,6.067036,0,3.258096,7.45333,0,0,0,74.1,7.191572,1.791759,,0 +5,6,25,1,1,630988,1,1327.189,9.782341,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,95,10.57626,0,74.1,431.4,431.4,1,1,2.079442,6.067036,0,3.258096,7.45333,0,0,0,74.1,7.191572,2.079442,,0 +5,6,25,1,2,630988,1,1327.189,10.78234,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,95,10.57626,0,74.1,431.4,431.4,1,1,2.079442,6.067036,0,3.258096,7.45333,0,0,0,74.1,7.191572,2.079442,,0 +5,6,25,1,3,630988,1,1327.189,11.78234,1,12,1,7.54717,0,0,0,0,7.54717,0,0,0,1,0,6,95,10.57626,0,74.1,431.4,431.4,1,1,1.791759,6.067036,0,3.258096,7.45333,0,0,0,74.1,7.191572,1.791759,2.021173,1 +18,6,25,1,1,631009,0,7493.087,17.39904,0,12,1,122.0482,25.48455,8.463818,0,0,155.9966,0,0,0,6,0,4,89.9,3.4,0,63.6,750,967.6,1,0,1.386294,6.874819,0,3.258096,8.006368,1,0,0,63.6,8.921869,1.386294,5.049834,1 +18,6,25,1,2,631009,0,7493.087,18.39904,0,12,1,56.56796,16.68945,0,0,0,73.2574,0,0,0,3,0,4,89.9,3.4,0,63.6,750,967.6,0,0,1.386294,6.874819,0,3.258096,8.006368,1,0,0,63.6,8.921869,1.386294,4.293979,1 +18,6,25,1,3,631009,0,7493.087,19.39904,0,12,1,78.89273,25.61246,25.55017,0,0,130.0554,0,0,0,6,0,5,89.9,3.4,0,63.6,750,967.6,0,0,1.609438,6.874819,0,3.258096,8.006368,1,0,0,63.6,8.921869,1.609438,4.86796,1 +18,6,25,1,1,631010,0,7493.087,44.52567,1,12,1,0,6.948794,0,0,0,6.948794,0,0,0,0,0,4,91.5,17.2,0,73.9,750,967.6,0,0,1.386294,6.874819,0,3.258096,8.006368,1,0,0,73.9,8.921869,1.386294,1.938568,1 +18,6,25,1,2,631010,0,7493.087,45.52567,1,12,1,0,10.23918,0,0,0,10.23918,0,0,0,0,0,4,91.5,17.2,0,73.9,750,967.6,0,0,1.386294,6.874819,0,3.258096,8.006368,1,0,0,73.9,8.921869,1.386294,2.326221,1 +18,6,25,1,3,631010,0,7493.087,46.52567,1,12,1,115.5709,28.19377,0,0,0,143.7647,0,0,0,4,0,5,91.5,17.2,0,73.9,750,967.6,0,0,1.609438,6.874819,0,3.258096,8.006368,1,0,0,73.9,8.921869,1.609438,4.968178,1 +18,6,25,1,1,631011,0,7493.087,15.41684,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,96.8,3.4,0,97.7,750,967.6,1,1,1.386294,6.874819,0,3.258096,8.006368,1,0,0,97.7,8.921869,1.386294,,0 +18,6,25,1,2,631011,0,7493.087,16.41684,1,12,1,30.75171,18.67122,0,0,587.6993,637.1223,1,0,0,1,0,4,96.8,3.4,0,97.7,750,967.6,1,1,1.386294,6.874819,0,3.258096,8.006368,1,0,0,97.7,8.921869,1.386294,6.456962,1 +18,6,25,1,3,631011,0,7493.087,17.41684,1,12,1,43.25259,20.81661,0,0,0,64.06921,0,0,0,3,0,5,96.8,3.4,0,97.7,750,967.6,1,1,1.609438,6.874819,0,3.258096,8.006368,1,0,0,97.7,8.921869,1.609438,4.159964,1 +18,6,25,1,1,631012,0,7493.087,44.33128,0,12,1,8.887008,18.3157,0,0,0,27.20271,0,0,0,1,0,4,79.3,10.3,1,53.4,750,967.6,0,0,1.386294,6.874819,0,3.258096,8.006368,1,0,0,53.4,8.921869,1.386294,3.303317,1 +18,6,25,1,2,631012,0,7493.087,45.33128,0,12,1,7.213364,28.15869,0,0,0,35.37206,0,0,0,0,0,4,79.3,10.3,1,53.4,750,967.6,0,0,1.386294,6.874819,0,3.258096,8.006368,1,0,0,53.4,8.921869,1.386294,3.565922,1 +18,6,25,1,3,631012,0,7493.087,46.33128,0,12,1,118.6851,36.6436,0,0,0,155.3287,0,0,0,7,0,5,79.3,10.3,1,53.4,750,967.6,0,0,1.609438,6.874819,0,3.258096,8.006368,1,0,0,53.4,8.921869,1.609438,5.045544,1 +11,6,0,1,1,631014,0,2694.316,23.64134,1,12,1,353.576,42.72112,0,0,0,396.2971,0,0,0,7,62,3,88.3,10.3,0,83,0,514.56,0,0,1.098612,6.243312,0,0,0,1,0,0,83,7.899271,1.098612,5.982164,1 +11,6,0,1,2,631014,0,2694.316,24.64134,1,12,1,373.9939,19.71526,0,0,0,393.7092,0,0,0,8,36,3,88.3,10.3,0,83,0,514.56,0,0,1.098612,6.243312,0,0,0,1,0,0,83,7.899271,1.098612,5.975613,1 +11,6,0,1,3,631014,0,2694.316,25.64134,1,12,1,275.0865,69.33564,0,0,0,344.4221,0,0,0,8,38,3,88.3,10.3,0,83,0,514.56,0,0,1.098612,6.243312,0,0,0,1,0,0,83,7.899271,1.098612,5.841868,1 +11,6,0,1,1,631015,0,2694.316,5.727584,1,12,1,136.9022,17.07575,0,0,0,153.978,0,0,0,4,18,3,81.7,10.57626,0,70.4,0,514.56,1,1,1.098612,6.243312,0,0,0,0,0,0,70.4,7.899271,1.098612,5.03681,1 +11,6,0,1,2,631015,0,2694.316,6.727584,1,12,1,168.9446,14.6697,0,0,0,183.6143,0,0,0,4,22,3,81.7,10.57626,0,70.4,0,514.56,1,1,1.098612,6.243312,0,0,0,0,0,0,70.4,7.899271,1.098612,5.212837,1 +11,6,0,1,3,631015,0,2694.316,7.727584,1,12,1,131.4879,28.68858,0,0,0,160.1765,0,0,0,8,20,3,81.7,10.57626,0,70.4,0,514.56,1,1,1.098612,6.243312,0,0,0,0,0,0,70.4,7.899271,1.098612,5.076276,1 +11,6,0,0,1,631016,0,2694.316,24.11773,0,12,1,228.9463,4.020313,0,0,0,232.9666,0,0,0,4,36,3,77.7,13.8,0,52.3,0,514.56,0,0,1.098612,6.243312,0,0,0,0,0,0,52.3,7.899271,1.098612,5.450895,1 +11,6,0,0,2,631016,0,2694.316,25.11773,0,12,1,169.3242,59.3432,0,0,0,228.6674,0,0,0,4,10,3,77.7,13.8,0,52.3,0,514.56,0,0,1.098612,6.243312,0,0,0,0,0,0,52.3,7.899271,1.098612,5.432269,1 +11,6,0,0,3,631016,0,2694.316,26.11773,0,12,1,67.47404,18.85121,0,0,0,86.32526,0,0,0,0,13,3,77.7,13.8,0,52.3,0,514.56,0,0,1.098612,6.243312,0,0,0,0,0,0,52.3,7.899271,1.098612,4.458122,1 +18,6,25,1,1,631017,0,8286.227,61.99863,0,11,1,27.34539,0,0,0,0,27.34539,0,0,0,1,0,2,86.7,20.7,1,72.7,750,936,0,0,.6931472,6.841616,0,3.258096,8.006368,1,0,0,72.7,9.02247,.6931472,3.308548,1 +18,6,25,1,2,631017,0,8286.227,62.99863,0,11,1,53.64564,5.572346,0,0,450.6989,509.9169,1,0,0,3,0,2,86.7,20.7,1,72.7,750,936,0,0,.6931472,6.841616,0,3.258096,8.006368,1,0,0,72.7,9.02247,.6931472,6.234248,1 +18,6,25,1,3,631017,0,8286.227,63.99863,0,11,1,15.43739,0,0,0,0,15.43739,0,0,0,1,0,2,86.7,20.7,1,72.7,750,936,0,0,.6931472,6.841616,0,3.258096,8.006368,1,0,0,72.7,9.02247,.6931472,2.736793,1 +18,6,25,1,1,631018,0,8286.227,61.1718,1,14,1,37.02145,0,0,0,0,37.02145,0,0,0,1,0,2,92,24.1,1,69.3,750,936,0,0,.6931472,6.841616,0,3.258096,8.006368,1,0,0,69.3,9.02247,.6931472,3.611498,1 +18,6,25,1,2,631018,0,8286.227,62.1718,1,14,1,30.22289,22.72384,0,0,0,52.94673,0,0,0,1,0,2,92,24.1,1,69.3,750,936,0,0,.6931472,6.841616,0,3.258096,8.006368,1,0,0,69.3,9.02247,.6931472,3.969286,1 +18,6,25,1,3,631018,0,8286.227,63.1718,1,14,1,77.18697,4.013722,0,0,1608.576,1689.777,1,0,0,4,0,2,92,24.1,1,69.3,750,936,0,0,.6931472,6.841616,0,3.258096,8.006368,1,0,0,69.3,9.02247,.6931472,7.432352,1 +11,6,0,0,1,631022,0,12691.24,28.23545,1,10,1,14.72444,6.731174,0,0,0,21.45562,0,0,0,1,0,5,98.4,3.4,0,89.8,0,193.96,0,0,1.609438,5.267652,0,0,0,0,0,0,89.8,9.448747,1.609438,3.065986,1 +11,6,0,0,2,631022,0,12691.24,29.23545,1,10,1,105.4023,29.14243,0,0,0,134.5448,0,0,0,8,0,5,98.4,3.4,0,89.8,0,193.96,0,0,1.609438,5.267652,0,0,0,0,0,0,89.8,9.448747,1.609438,4.901897,1 +11,6,0,0,3,631022,0,12691.24,30.23545,1,10,1,37.3928,34.79245,0,0,0,72.18525,0,0,0,4,0,5,98.4,3.4,0,89.8,0,193.96,0,0,1.609438,5.267652,0,0,0,0,0,0,89.8,9.448747,1.609438,4.279236,1 +11,6,0,0,1,631023,0,12691.24,35.11567,0,12,1,36.18006,11.88473,33.65587,0,0,81.72066,0,0,0,2,1,5,89.4,6.9,0,76.1,0,193.96,0,0,1.609438,5.267652,0,0,0,0,0,0,76.1,9.448747,1.609438,4.403307,1 +11,6,0,0,2,631023,0,12691.24,36.11567,0,12,1,11.33358,0,18.88931,0,0,30.22289,0,0,0,0,1,5,89.4,6.9,0,76.1,0,193.96,0,0,1.609438,5.267652,0,0,0,0,0,0,76.1,9.448747,1.609438,3.4086,1 +11,6,0,0,3,631023,0,12691.24,37.11567,0,12,1,10.2916,0,0,0,0,10.2916,0,0,0,0,0,5,89.4,6.9,0,76.1,0,193.96,0,0,1.609438,5.267652,0,0,0,0,0,0,76.1,9.448747,1.609438,2.331328,1 +11,6,0,0,1,631024,0,12691.24,6.622861,1,10,1,13.88305,4.396298,0,0,0,18.27934,0,0,0,0,0,5,91.7,10.57626,.1442925,81.5,0,193.96,1,1,1.609438,5.267652,0,0,0,0,0,0,81.5,9.448747,1.609438,2.905772,1 +11,6,0,0,2,631024,0,12691.24,7.622861,1,10,1,0,0,0,0,0,0,0,0,0,0,0,5,91.7,10.57626,.1442925,81.5,0,193.96,1,1,1.609438,5.267652,0,0,0,0,0,0,81.5,9.448747,1.609438,,0 +11,6,0,0,3,631024,0,12691.24,8.622861,1,10,1,21.9554,5.924528,24.01372,0,0,51.89365,0,0,0,2,1,5,91.7,10.57626,.1442925,81.5,0,193.96,1,1,1.609438,5.267652,0,0,0,0,0,0,81.5,9.448747,1.609438,3.949197,1 +11,6,0,0,1,631025,0,12691.24,8.188911,1,10,1,43.75263,0,0,0,0,43.75263,0,0,0,2,0,5,91.7,10.57626,.1442925,81.5,0,193.96,1,1,1.609438,5.267652,0,0,0,0,0,0,81.5,9.448747,1.609438,3.778552,1 +11,6,0,0,2,631025,0,12691.24,9.188911,1,10,1,20.02267,5.251228,0,0,0,25.2739,0,0,0,2,0,5,91.7,10.57626,.1442925,81.5,0,193.96,1,1,1.609438,5.267652,0,0,0,0,0,0,81.5,9.448747,1.609438,3.229772,1 +11,6,0,0,3,631025,0,12691.24,10.18891,1,10,1,0,0,0,0,0,0,0,0,0,0,0,5,91.7,10.57626,.1442925,81.5,0,193.96,1,1,1.609438,5.267652,0,0,0,0,0,0,81.5,9.448747,1.609438,,0 +16,6,95,0,1,631035,1,0,9.971252,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,75,10.57626,0,77.8,1000,1000,1,1,1.098612,6.907755,0,4.564348,6.959049,1,0,0,77.8,0,1.098612,,0 +16,6,95,0,2,631035,1,0,10.97125,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,75,10.57626,0,77.8,1000,1000,1,1,1.098612,6.907755,0,4.564348,6.959049,1,0,0,77.8,0,1.098612,,0 +16,6,95,0,3,631035,1,0,11.97125,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,75,10.57626,0,77.8,1000,1000,1,1,1.098612,6.907755,0,4.564348,6.959049,1,0,0,77.8,0,1.098612,,0 +16,6,95,0,1,631036,1,0,7.118412,1,12,1,3.365587,0,0,0,0,3.365587,0,0,0,1,0,3,75,10.57626,0,51.9,1000,1000,1,1,1.098612,6.907755,0,4.564348,6.959049,1,0,0,51.9,0,1.098612,1.213602,1 +16,6,95,0,2,631036,1,0,8.118412,1,12,1,4.155648,4.382319,0,0,0,8.537968,0,0,0,1,0,3,75,10.57626,0,51.9,1000,1000,1,1,1.098612,6.907755,0,4.564348,6.959049,1,0,0,51.9,0,1.098612,2.144523,1 +16,6,95,0,3,631036,1,0,9.118412,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,75,10.57626,0,51.9,1000,1000,1,1,1.098612,6.907755,0,4.564348,6.959049,1,0,0,51.9,0,1.098612,,0 +16,6,95,0,1,631037,1,0,31.29637,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,55.9,17.2,1,67,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,1,0,0,67,0,1.098612,,0 +16,6,95,0,2,631037,1,0,32.29637,1,12,1,17.75595,14.27276,0,0,0,32.02871,0,0,0,2,0,3,55.9,17.2,1,67,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,1,0,0,67,0,1.098612,3.466633,1 +16,6,95,0,3,631037,1,0,33.29637,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,55.9,17.2,1,67,1000,1000,0,0,1.098612,6.907755,0,4.564348,6.959049,1,0,0,67,0,1.098612,,0 +15,6,95,0,1,631074,0,6395.801,9.952087,0,5,1,90.45015,3.996634,0,0,0,94.44678,0,0,0,1,0,5,93.3,10.57626,.1442925,81.5,1000,1000,1,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,81.5,8.763554,1.609438,4.548037,1 +15,6,95,0,1,631075,0,6395.801,16.93634,1,5,1,0,0,0,0,0,0,0,0,0,0,0,5,84.6,3.4,0,88.1,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,88.1,8.763554,1.609438,,0 +15,6,95,0,1,631076,0,6395.801,7.581109,1,5,1,0,0,0,0,0,0,0,0,0,0,0,5,90,10.57626,.1442925,74.1,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,74.1,8.763554,1.609438,,0 +15,6,95,0,1,631077,0,6395.801,34.39562,1,5,1,0,0,0,0,0,0,0,0,0,0,0,5,73.4,13.8,0,70.5,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,1,0,0,70.5,8.763554,1.609438,,0 +15,6,95,0,1,631078,0,6395.801,36.9911,0,7,1,27.34539,0,0,0,0,27.34539,0,0,0,2,0,5,58.5,24.1,0,55.7,1000,1000,0,0,1.609438,6.907755,0,4.564348,6.959049,0,0,0,55.7,8.763554,1.609438,3.308548,1 +11,6,0,1,1,631086,0,1228.879,39.78097,0,16,1,71.09606,6.876852,13.54211,0,0,91.51502,0,0,0,2,1,5,65.4,10.3,0,73.9,0,826.8,0,0,1.609438,6.717563,0,0,0,0,0,0,73.9,7.114671,1.609438,4.516503,1 +11,6,0,1,2,631086,0,1228.879,40.78097,0,16,1,20.50114,8.731967,0,0,0,29.2331,0,0,0,2,0,5,65.4,10.3,0,73.9,0,826.8,0,0,1.609438,6.717563,0,0,0,0,0,0,73.9,7.114671,1.609438,3.375302,1 +11,6,0,1,3,631086,0,1228.879,41.78097,0,16,1,168.1661,6.920415,28.41869,0,0,203.5052,0,0,0,5,1,5,65.4,10.3,0,73.9,0,826.8,0,0,1.609438,6.717563,0,0,0,0,0,0,73.9,7.114671,1.609438,5.315691,1 +11,6,0,1,1,631087,0,1228.879,13.45927,0,13,1,20.73635,7.723233,0,0,0,28.45959,0,0,0,2,0,5,50,10.57626,0,96.3,0,826.8,1,0,1.609438,6.717563,0,0,0,0,0,0,96.3,7.114671,1.609438,3.348485,1 +11,6,0,1,2,631087,0,1228.879,14.45927,0,13,1,19.36219,0,0,0,0,19.36219,0,0,0,2,0,5,50,10.57626,0,96.3,0,826.8,1,0,1.609438,6.717563,0,0,0,0,0,0,96.3,7.114671,1.609438,2.963322,1 +11,6,0,1,3,631087,0,1228.879,15.45927,0,13,1,50.17301,4.757785,0,0,0,54.9308,0,0,0,3,1,5,50,10.57626,0,96.3,0,826.8,1,0,1.609438,6.717563,0,0,0,0,0,0,96.3,7.114671,1.609438,4.006074,1 +11,6,0,1,1,631088,0,1228.879,34.71595,1,13,1,124.8413,85.06136,0,0,0,209.9027,0,0,0,17,0,5,53.7,6.9,0,69.3,0,826.8,0,0,1.609438,6.717563,0,0,0,0,0,0,69.3,7.114671,1.609438,5.346644,1 +11,6,0,1,2,631088,0,1228.879,35.71595,1,13,1,266.1352,55.31131,0,0,0,321.4465,0,0,0,19,0,5,53.7,6.9,0,69.3,0,826.8,0,0,1.609438,6.717563,0,0,0,0,0,0,69.3,7.114671,1.609438,5.772831,1 +11,6,0,1,3,631088,0,1228.879,36.71595,1,13,1,245.6747,41.34948,0,0,0,287.0242,0,0,0,20,0,5,53.7,6.9,0,69.3,0,826.8,0,0,1.609438,6.717563,0,0,0,0,0,0,69.3,7.114671,1.609438,5.659566,1 +11,6,0,1,1,631089,0,1228.879,6.880219,1,13,1,10.15658,6.03047,0,0,0,16.18705,0,0,0,2,0,5,91.7,10.57626,0,96.3,0,826.8,1,1,1.609438,6.717563,0,0,0,0,0,0,96.3,7.114671,1.609438,2.784212,1 +11,6,0,1,2,631089,0,1228.879,7.880219,1,13,1,20.88079,8.731967,0,0,0,29.61276,0,0,0,3,0,5,91.7,10.57626,0,96.3,0,826.8,1,1,1.609438,6.717563,0,0,0,0,0,0,96.3,7.114671,1.609438,3.388205,1 +11,6,0,1,3,631089,0,1228.879,8.880219,1,13,1,86.50519,0,0,0,0,86.50519,0,0,0,7,0,5,91.7,10.57626,0,96.3,0,826.8,1,1,1.609438,6.717563,0,0,0,0,0,0,96.3,7.114671,1.609438,4.460205,1 +11,6,0,1,1,631090,0,1228.879,12.37509,0,13,1,46.1278,5.07829,0,0,0,51.20609,0,0,0,4,0,5,85,10.57626,0,96.3,0,826.8,1,0,1.609438,6.717563,0,0,0,0,0,0,96.3,7.114671,1.609438,3.935858,1 +11,6,0,1,2,631090,0,1228.879,13.37509,0,13,1,50.49355,10.82005,0,0,0,61.31359,0,0,0,6,0,5,85,10.57626,0,96.3,0,826.8,1,0,1.609438,6.717563,0,0,0,0,0,0,96.3,7.114671,1.609438,4.116002,1 +11,6,0,1,3,631090,0,1228.879,14.37509,0,13,1,116.609,1.989619,0,0,0,118.5986,0,0,0,3,0,5,85,10.57626,0,96.3,0,826.8,1,0,1.609438,6.717563,0,0,0,0,0,0,96.3,7.114671,1.609438,4.775745,1 +13,6,0,1,1,631139,0,2251.92,57.31691,1,6,1,0,0,0,0,0,0,0,0,0,0,0,1,87.2,24.1,0,78.4,150,260.52,0,0,0,5.56268,1,4.564348,5.061929,0,0,1,78.4,7.719983,0,,0 +13,6,0,1,2,631139,0,2251.92,58.31691,1,6,1,15.11145,11.02758,0,0,0,26.13902,0,0,0,2,0,1,87.2,24.1,0,78.4,150,260.52,0,0,0,5.56268,1,4.564348,5.061929,0,0,1,78.4,7.719983,0,3.263429,1 +13,6,0,1,3,631139,0,2251.92,59.31691,1,6,1,8.576329,15.35163,0,0,0,23.92796,0,0,0,1,0,1,87.2,24.1,0,78.4,150,260.52,0,0,0,5.56268,1,4.564348,5.061929,0,0,1,78.4,7.719983,0,3.175048,1 +15,6,95,1,1,631169,1,6735.316,15.5373,1,8,1,0,0,0,0,0,0,0,0,0,0,0,2,78.7,6.9,0,51.1,391.3,391.3,1,1,.6931472,5.969474,0,4.564348,6.020768,0,1,0,51.1,8.815269,.6931472,,0 +15,6,95,1,2,631169,1,6735.316,16.5373,1,8,1,0,0,0,0,0,0,0,0,0,0,0,2,78.7,6.9,0,51.1,391.3,391.3,1,1,.6931472,5.969474,0,4.564348,6.020768,0,1,0,51.1,8.815269,.6931472,,0 +15,6,95,1,1,631170,1,6735.316,57.06503,1,8,1,20.31316,14.2573,0,0,0,34.57046,0,0,0,2,0,2,89.4,20.7,1,47.7,391.3,391.3,0,0,.6931472,5.969474,0,4.564348,6.020768,0,1,0,47.7,8.815269,.6931472,3.543,1 +15,6,95,1,2,631170,1,6735.316,58.06503,1,8,1,47.83599,4.290053,0,0,0,52.12605,0,0,0,0,0,2,89.4,20.7,1,47.7,391.3,391.3,0,0,.6931472,5.969474,0,4.564348,6.020768,0,1,0,47.7,8.815269,.6931472,3.953665,1 +15,6,95,1,3,631170,1,6735.316,59.06503,1,8,1,0,7.148789,0,0,3523.495,3530.644,2,0,0,0,0,1,89.4,20.7,1,47.7,391.3,391.3,0,0,0,5.969474,0,4.564348,6.020768,0,1,0,47.7,8.815269,0,8.169235,1 +14,6,95,0,1,631171,0,4238.095,55.9206,1,12,1,0,7.617435,0,0,0,7.617435,0,0,0,0,0,1,64.9,20.7,0,78.4,526.25,526.25,0,0,0,6.265776,0,4.564348,6.31707,1,0,0,78.4,8.352105,0,2.03044,1 +14,6,95,0,2,631171,0,4238.095,56.9206,1,12,1,60.74411,33.98254,0,0,0,94.72665,0,0,0,5,0,1,64.9,20.7,0,78.4,526.25,526.25,0,0,0,6.265776,0,4.564348,6.31707,1,0,0,78.4,8.352105,0,4.550995,1 +14,6,95,0,3,631171,0,4238.095,57.9206,1,12,1,0,20.59862,0,0,0,20.59862,0,0,0,0,0,1,64.9,20.7,0,78.4,526.25,526.25,0,0,0,6.265776,0,4.564348,6.31707,1,0,0,78.4,8.352105,0,3.025224,1 +17,6,25,1,1,631176,0,5403.073,.8268309,1,14,1,44.38903,12.84289,20.58354,0,0,77.81546,0,0,0,6,0,4,77.40034,10.57626,0,85.2,480.5,480.5,1,1,1.386294,6.174827,0,3.258096,7.561121,0,0,0,85.2,8.594909,1.386294,4.35434,1 +17,6,25,1,2,631176,0,5403.073,1.826831,1,14,1,24.89627,12.17612,25.89212,0,0,62.9645,0,0,0,4,0,4,77.40034,10.57626,0,85.2,480.5,480.5,1,1,1.386294,6.174827,0,3.258096,7.561121,0,0,0,85.2,8.594909,1.386294,4.142571,1 +17,6,25,1,3,631176,0,5403.073,2.826831,1,14,1,48.24376,17.14346,30.80829,0,0,96.19551,0,0,0,8,0,4,77.40034,10.57626,0,85.2,480.5,480.5,1,1,1.386294,6.174827,0,3.258096,7.561121,0,0,0,85.2,8.594909,1.386294,4.566383,1 +17,6,25,1,4,631176,0,5403.073,3.826831,1,14,1,34.16856,22.89294,26.8489,0,0,83.9104,0,0,0,6,0,4,77.40034,10.57626,0,85.2,480.5,480.5,1,1,1.386294,6.174827,0,3.258096,7.561121,0,0,0,85.2,8.594909,1.386294,4.429749,1 +17,6,25,1,5,631176,0,5403.073,4.826831,1,14,1,58.82353,26.65052,13.67474,0,0,99.14879,0,0,0,11,0,4,77.40034,10.57626,0,85.2,480.5,480.5,1,1,1.386294,6.174827,0,3.258096,7.561121,0,0,0,85.2,8.594909,1.386294,4.596622,1 +17,6,25,1,1,631177,0,5403.073,5.155373,1,14,1,46.88279,9.710723,0,0,276.3092,332.9027,1,0,0,6,0,4,70,10.57626,0,63,480.5,480.5,1,1,1.386294,6.174827,0,3.258096,7.561121,1,0,0,63,8.594909,1.386294,5.80785,1 +17,6,25,1,2,631177,0,5403.073,6.155373,1,14,1,68.23421,11.81651,0,0,0,80.05071,0,0,0,9,0,4,70,10.57626,0,63,480.5,480.5,1,1,1.386294,6.174827,0,3.258096,7.561121,1,0,0,63,8.594909,1.386294,4.38266,1 +17,6,25,1,3,631177,0,5403.073,7.155373,1,14,1,77.02074,28.05332,0,0,0,105.0741,0,0,0,9,1,4,70,10.57626,0,63,480.5,480.5,1,1,1.386294,6.174827,0,3.258096,7.561121,1,0,0,63,8.594909,1.386294,4.654665,1 +17,6,25,1,4,631177,0,5403.073,8.155373,1,14,1,23.918,10.97191,0,0,0,34.8899,0,0,0,3,0,4,70,10.57626,0,63,480.5,480.5,1,1,1.386294,6.174827,0,3.258096,7.561121,1,0,0,63,8.594909,1.386294,3.552197,1 +17,6,25,1,5,631177,0,5403.073,9.155373,1,14,1,15.57093,11.79931,0,0,0,27.37024,0,0,0,3,0,4,70,10.57626,0,63,480.5,480.5,1,1,1.386294,6.174827,0,3.258096,7.561121,1,0,0,63,8.594909,1.386294,3.309456,1 +17,6,25,1,1,631178,0,5403.073,32.80767,0,14,1,12.46883,2.76808,0,0,0,15.23691,0,0,0,1,0,4,85.6,17.2,0,67,480.5,480.5,0,0,1.386294,6.174827,0,3.258096,7.561121,1,0,0,67,8.594909,1.386294,2.723721,1 +17,6,25,1,2,631178,0,5403.073,33.80767,0,14,1,167.3582,3.692946,0,0,0,171.0512,0,0,0,0,28,4,85.6,17.2,0,67,480.5,480.5,0,0,1.386294,6.174827,0,3.258096,7.561121,1,0,0,67,8.594909,1.386294,5.141963,1 +17,6,25,1,3,631178,0,5403.073,34.80767,0,14,1,56.70758,26.95303,0,236.9869,0,83.6606,0,0,15,1,8,4,85.6,17.2,0,67,480.5,480.5,0,0,1.386294,6.174827,0,3.258096,7.561121,1,0,0,67,8.594909,1.386294,4.426768,1 +17,6,25,1,4,631178,0,5403.073,35.80767,0,14,1,304.1002,71.99316,0,287.5854,783.9788,1160.072,2,0,14,3,18,4,85.6,17.2,0,67,480.5,480.5,0,0,1.386294,6.174827,0,3.258096,7.561121,1,0,0,67,8.594909,1.386294,7.056238,1 +17,6,25,1,5,631178,0,5403.073,36.80767,0,14,1,31.14187,88.25259,33.21799,107.0934,0,152.6125,0,0,7,0,4,4,85.6,17.2,0,67,480.5,480.5,0,0,1.386294,6.174827,0,3.258096,7.561121,1,0,0,67,8.594909,1.386294,5.027902,1 +17,6,25,1,1,631179,0,5403.073,31.65503,1,14,1,26.93267,14.48878,0,0,0,41.42145,0,0,0,3,0,4,65.4,24.1,0,75,480.5,480.5,0,0,1.386294,6.174827,0,3.258096,7.561121,1,0,0,75,8.594909,1.386294,3.723799,1 +17,6,25,1,2,631179,0,5403.073,32.65503,1,14,1,35.96127,0,0,0,0,35.96127,0,0,0,2,0,4,65.4,24.1,0,75,480.5,480.5,0,0,1.386294,6.174827,0,3.258096,7.561121,1,0,0,75,8.594909,1.386294,3.582443,1 +17,6,25,1,3,631179,0,5403.073,33.65503,1,14,1,62.63225,9.238256,0,0,0,71.87051,0,0,0,3,1,4,65.4,24.1,0,75,480.5,480.5,0,0,1.386294,6.174827,0,3.258096,7.561121,1,0,0,75,8.594909,1.386294,4.274866,1 +17,6,25,1,4,631179,0,5403.073,34.65503,1,14,1,32.27031,24.90509,0,377.7525,0,57.1754,0,0,18,4,0,4,65.4,24.1,0,75,480.5,480.5,0,0,1.386294,6.174827,0,3.258096,7.561121,1,0,0,75,8.594909,1.386294,4.046124,1 +17,6,25,1,5,631179,0,5403.073,35.65503,1,14,1,24.22145,15.89965,0,129.7578,0,40.12111,0,0,7,1,1,4,65.4,24.1,0,75,480.5,480.5,0,0,1.386294,6.174827,0,3.258096,7.561121,1,0,0,75,8.594909,1.386294,3.691903,1 +18,6,25,1,1,631184,1,5726.217,16.44353,1,14,1,39.80344,0,0,0,0,39.80344,0,0,0,0,3,4,47.9,24.1,1,40.9,665.6,665.6,1,1,1.386294,6.500689,0,3.258096,7.886983,0,0,0,40.9,8.652985,1.386294,3.683953,1 +18,6,25,1,2,631184,1,5726.217,17.44353,1,14,1,37.83045,0,0,0,0,37.83045,0,0,0,2,0,4,47.9,24.1,1,40.9,665.6,665.6,1,1,1.386294,6.500689,0,3.258096,7.886983,0,0,0,40.9,8.652985,1.386294,3.633114,1 +18,6,25,1,3,631184,1,5726.217,18.44353,1,14,1,11.25469,7.190496,0,0,789.4956,807.9408,1,0,0,2,0,4,47.9,24.1,1,40.9,665.6,665.6,0,0,1.386294,6.500689,0,3.258096,7.886983,0,0,0,40.9,8.652985,1.386294,6.694489,1 +18,6,25,1,4,631184,1,5726.217,19.44353,1,14,1,24.006,4.088522,0,0,0,28.09452,0,0,0,1,0,4,47.9,24.1,1,40.9,665.6,665.6,0,0,1.386294,6.500689,0,3.258096,7.886983,0,0,0,40.9,8.652985,1.386294,3.335575,1 +18,6,25,1,1,631185,1,5726.217,14.4668,0,14,1,28.50123,0,0,0,258.4767,286.9779,1,0,0,2,0,4,80.9,3.4,0,73.9,665.6,665.6,1,0,1.386294,6.500689,0,3.258096,7.886983,0,0,0,73.9,8.652985,1.386294,5.659405,1 +18,6,25,1,2,631185,1,5726.217,15.4668,0,14,1,0,0,0,0,0,0,0,0,0,0,0,4,80.9,3.4,0,73.9,665.6,665.6,1,0,1.386294,6.500689,0,3.258096,7.886983,0,0,0,73.9,8.652985,1.386294,,0 +18,6,25,1,3,631185,1,5726.217,16.4668,0,14,1,0,0,0,0,0,0,0,0,0,0,0,4,80.9,3.4,0,73.9,665.6,665.6,1,0,1.386294,6.500689,0,3.258096,7.886983,0,0,0,73.9,8.652985,1.386294,,0 +18,6,25,1,4,631185,1,5726.217,17.4668,0,14,1,0,0,0,0,0,0,0,0,0,0,0,4,80.9,3.4,0,73.9,665.6,665.6,1,0,1.386294,6.500689,0,3.258096,7.886983,0,0,0,73.9,8.652985,1.386294,,0 +18,6,25,1,5,631185,1,5726.217,18.4668,0,14,1,6.427605,0,0,0,0,6.427605,0,0,0,0,0,3,80.9,3.4,0,73.9,665.6,665.6,0,0,1.098612,6.500689,0,3.258096,7.886983,0,0,0,73.9,8.652985,1.098612,1.860602,1 +18,6,25,1,1,631186,1,5726.217,42.55442,1,14,1,11.79361,15.72482,0,0,662.8993,690.4177,1,0,0,2,0,4,63.3,13.8,0,76.1,665.6,665.6,0,0,1.386294,6.500689,0,3.258096,7.886983,0,0,0,76.1,8.652985,1.386294,6.537297,1 +18,6,25,1,2,631186,1,5726.217,43.55442,1,14,1,0,45.23701,0,0,0,45.23701,0,0,0,0,0,4,63.3,13.8,0,76.1,665.6,665.6,0,0,1.386294,6.500689,0,3.258096,7.886983,0,0,0,76.1,8.652985,1.386294,3.811916,1 +18,6,25,1,3,631186,1,5726.217,44.55442,1,14,1,20.84202,10.94206,0,0,0,31.78408,0,0,0,1,1,4,63.3,13.8,0,76.1,665.6,665.6,0,0,1.386294,6.500689,0,3.258096,7.886983,0,0,0,76.1,8.652985,1.386294,3.458966,1 +18,6,25,1,4,631186,1,5726.217,45.55442,1,14,1,15.00375,9.958739,3.750938,0,506.0015,534.7149,1,0,0,1,0,4,63.3,13.8,0,76.1,665.6,665.6,0,0,1.386294,6.500689,0,3.258096,7.886983,0,0,0,76.1,8.652985,1.386294,6.281734,1 +18,6,25,1,5,631186,1,5726.217,46.55442,1,14,1,107.5778,11.11637,26.04871,0,0,144.7429,0,0,0,2,0,3,63.3,13.8,0,76.1,665.6,665.6,0,0,1.098612,6.500689,0,3.258096,7.886983,0,0,0,76.1,8.652985,1.098612,4.974959,1 +18,6,25,1,1,631187,1,5726.217,18.37919,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,80.9,6.9,0,86.4,665.6,665.6,0,0,1.386294,6.500689,0,3.258096,7.886983,0,0,0,86.4,8.652985,1.386294,,0 +18,6,25,1,2,631187,1,5726.217,19.37919,0,11,1,0,3.076572,0,0,269.7311,272.8076,1,0,0,0,0,4,80.9,6.9,0,86.4,665.6,665.6,0,0,1.386294,6.500689,0,3.258096,7.886983,0,0,0,86.4,8.652985,1.386294,5.608767,1 +18,6,25,1,3,631187,1,5726.217,20.37919,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,80.9,6.9,0,86.4,665.6,665.6,0,0,1.386294,6.500689,0,3.258096,7.886983,0,0,0,86.4,8.652985,1.386294,,0 +18,6,25,1,4,631187,1,5726.217,21.37919,0,11,1,0,0,0,0,0,0,0,0,0,0,0,4,80.9,6.9,0,86.4,665.6,665.6,0,0,1.386294,6.500689,0,3.258096,7.886983,0,0,0,86.4,8.652985,1.386294,,0 +18,6,25,1,5,631187,1,5726.217,22.37919,0,11,1,31.46144,0,0,0,238.8363,270.2977,1,1,0,0,0,3,80.9,6.9,0,86.4,665.6,665.6,0,0,1.098612,6.500689,0,3.258096,7.886983,0,0,0,86.4,8.652985,1.098612,5.599524,1 +11,6,0,0,1,631216,0,8950.146,6.431211,0,12,1,45.09415,20.94153,28.76115,0,0,94.79683,0,0,0,5,0,4,78.3,10.57626,0,100,0,475.2,1,0,1.386294,6.163736,0,0,0,0,0,0,100,9.099537,1.386294,4.551736,1 +11,6,0,0,2,631216,0,8950.146,7.431211,0,12,1,63.79073,32.81322,13.60257,0,0,110.2065,0,0,0,5,0,4,78.3,10.57626,0,100,0,475.2,1,0,1.386294,6.163736,0,0,0,0,0,0,100,9.099537,1.386294,4.702356,1 +11,6,0,0,3,631216,0,8950.146,8.431211,0,12,1,21.03492,12.93647,27.34539,0,0,61.31679,0,0,0,3,0,4,78.3,10.57626,0,100,0,475.2,1,0,1.386294,6.163736,0,0,0,0,0,0,100,9.099537,1.386294,4.116054,1 +11,6,0,0,4,631216,0,8950.146,9.431211,0,12,1,52.13449,13.25274,22.55761,0,0,87.94484,0,0,0,8,0,4,78.3,10.57626,0,100,0,475.2,1,0,1.386294,6.163736,0,0,0,0,0,0,100,9.099537,1.386294,4.47671,1 +11,6,0,0,5,631216,0,8950.146,10.43121,0,12,1,109.777,11.32076,56.58319,0,0,177.681,0,0,0,8,0,4,78.3,10.57626,0,100,0,475.2,1,0,1.386294,6.163736,0,0,0,0,0,0,100,9.099537,1.386294,5.179989,1 +11,6,0,0,1,631217,0,8950.146,10.70226,1,12,1,25.27255,.9018831,30.09911,0,0,56.27354,0,0,0,2,0,4,63.3,10.57626,0,92.6,0,475.2,1,1,1.386294,6.163736,0,0,0,0,0,0,92.6,9.099537,1.386294,4.030224,1 +11,6,0,0,2,631217,0,8950.146,11.70226,1,12,1,30.74805,3.900872,14.79578,0,0,49.4447,0,0,0,2,0,4,63.3,10.57626,0,92.6,0,475.2,1,1,1.386294,6.163736,0,0,0,0,0,0,92.6,9.099537,1.386294,3.900855,1 +11,6,0,0,3,631217,0,8950.146,12.70226,1,12,1,25.2419,3.575936,34.78334,0,0,63.60118,0,0,0,2,0,4,63.3,10.57626,0,92.6,0,475.2,1,1,1.386294,6.163736,0,0,0,0,0,0,92.6,9.099537,1.386294,4.152632,1 +11,6,0,0,4,631217,0,8950.146,13.70226,1,12,1,17.75595,10.86135,16.81904,0,0,45.43634,0,0,0,2,0,4,63.3,10.57626,0,92.6,0,475.2,1,1,1.386294,6.163736,0,0,0,0,0,0,92.6,9.099537,1.386294,3.816312,1 +11,6,0,0,5,631217,0,8950.146,14.70226,1,12,1,23.67067,.6483705,0,0,0,24.31904,0,0,0,3,0,4,63.3,10.57626,0,92.6,0,475.2,1,1,1.386294,6.163736,0,0,0,0,0,0,92.6,9.099537,1.386294,3.19126,1 +11,6,0,0,1,631218,0,8950.146,31.23614,0,14,1,11.89296,4.088206,0,0,0,15.98117,0,0,0,2,0,4,77.1,0,0,85.2,0,475.2,0,0,1.386294,6.163736,0,0,0,0,0,0,85.2,9.099537,1.386294,2.771411,1 +11,6,0,0,2,631218,0,8950.146,32.23614,0,14,1,22.94631,0,0,0,0,22.94631,0,0,0,2,0,4,77.1,0,0,85.2,0,475.2,0,0,1.386294,6.163736,0,0,0,0,0,0,85.2,9.099537,1.386294,3.133157,1 +11,6,0,0,3,631218,0,8950.146,33.23614,0,14,1,25.2419,5.363904,0,0,408.4981,439.1039,1,0,0,2,0,4,77.1,0,0,85.2,0,475.2,0,0,1.386294,6.163736,0,0,0,0,0,0,85.2,9.099537,1.386294,6.084736,1 +11,6,0,0,4,631218,0,8950.146,34.23614,0,14,1,13.22252,0,0,0,0,13.22252,0,0,0,1,0,4,77.1,0,0,85.2,0,475.2,0,0,1.386294,6.163736,0,0,0,0,0,0,85.2,9.099537,1.386294,2.581921,1 +11,6,0,0,5,631218,0,8950.146,35.23614,0,14,1,66.55231,8.576329,0,0,0,75.12865,0,0,0,3,0,4,77.1,0,0,85.2,0,475.2,0,0,1.386294,6.163736,0,0,0,0,0,0,85.2,9.099537,1.386294,4.319202,1 +11,6,0,0,1,631219,0,8950.146,30.43121,1,12,1,63.92468,11.33796,0,0,1334.737,1410,2,0,0,8,0,4,72.3,10.3,1,77.3,0,475.2,0,0,1.386294,6.163736,0,0,0,0,0,0,77.3,9.099537,1.386294,7.251345,1 +11,6,0,0,2,631219,0,8950.146,31.43121,1,12,1,93.62093,10.44057,0,0,0,104.0615,0,0,0,5,3,4,72.3,10.3,1,77.3,0,475.2,0,0,1.386294,6.163736,0,0,0,0,0,0,77.3,9.099537,1.386294,4.644982,1 +11,6,0,0,3,631219,0,8950.146,32.43121,1,12,1,187.6315,5.574253,32.48633,0,0,225.692,0,0,0,4,41,4,72.3,10.3,1,77.3,0,475.2,0,0,1.386294,6.163736,0,0,0,0,0,0,77.3,9.099537,1.386294,5.419171,1 +11,6,0,0,4,631219,0,8950.146,33.43121,1,12,1,147.3366,0,0,0,0,147.3366,0,0,0,2,24,4,72.3,10.3,1,77.3,0,475.2,0,0,1.386294,6.163736,0,0,0,0,0,0,77.3,9.099537,1.386294,4.99272,1 +11,6,0,0,5,631219,0,8950.146,34.43121,1,12,1,267.2384,0,27.86621,0,0,295.1046,0,0,0,2,16,4,72.3,10.3,1,77.3,0,475.2,0,0,1.386294,6.163736,0,0,0,0,0,0,77.3,9.099537,1.386294,5.68733,1 +11,6,0,1,1,631230,1,2852.535,17.67556,1,10,1,24.8212,0,0,0,0,24.8212,0,0,0,2,0,5,84,6.9,0,67,0,805.04,1,1,1.609438,6.690892,0,0,0,0,1,0,67,7.956314,1.609438,3.211698,1 +11,6,0,1,2,631230,1,2852.535,18.67556,1,10,1,0,1.605591,0,0,0,1.605591,0,0,0,0,0,5,84,6.9,0,67,0,805.04,0,0,1.609438,6.690892,0,0,0,0,1,0,67,7.956314,1.609438,.473492,1 +11,6,0,1,3,631230,1,2852.535,19.67556,1,10,1,0,1.584906,0,0,0,1.584906,0,0,0,0,0,5,84,6.9,0,67,0,805.04,0,0,1.609438,6.690892,0,0,0,0,1,0,67,7.956314,1.609438,.4605249,1 +11,6,0,1,1,631231,1,2852.535,23.07187,1,12,1,19.35213,0,0,0,0,19.35213,0,0,0,2,0,5,69.1,3.4,0,72.7,0,805.04,0,0,1.609438,6.690892,0,0,0,0,1,0,72.7,7.956314,1.609438,2.962802,1 +11,6,0,1,2,631231,1,2852.535,24.07187,1,12,1,22.66717,0,0,0,0,22.66717,0,0,0,0,0,5,69.1,3.4,0,72.7,0,805.04,0,0,1.609438,6.690892,0,0,0,0,1,0,72.7,7.956314,1.609438,3.120918,1 +11,6,0,1,3,631231,1,2852.535,25.07187,1,12,1,15.43739,9.307033,0,0,0,24.74442,0,0,0,1,0,5,69.1,3.4,0,72.7,0,805.04,0,0,1.609438,6.690892,0,0,0,0,1,0,72.7,7.956314,1.609438,3.2086,1 +11,6,0,1,1,631232,1,2852.535,50.92676,1,10,1,31.13168,4.291123,35.75936,0,0,71.18216,0,0,0,1,1,5,92.6,3.4,0,80.7,0,805.04,0,0,1.609438,6.690892,0,0,0,0,1,0,80.7,7.956314,1.609438,4.265242,1 +11,6,0,1,2,631232,1,2852.535,51.92676,1,10,1,13.6003,11.68493,0,0,0,25.28523,0,0,0,2,0,5,92.6,3.4,0,80.7,0,805.04,0,0,1.609438,6.690892,0,0,0,0,1,0,80.7,7.956314,1.609438,3.23022,1 +11,6,0,1,3,631232,1,2852.535,52.92676,1,10,1,39.79417,3.090909,35.20755,0,0,78.09262,0,0,0,2,1,5,92.6,3.4,0,80.7,0,805.04,0,0,1.609438,6.690892,0,0,0,0,1,0,80.7,7.956314,1.609438,4.357895,1 +11,6,0,1,1,631233,1,2852.535,10.34086,0,10,1,55.95288,6.752209,0,0,182.1624,244.8675,1,0,0,3,0,5,80,10.57626,0,85.2,0,805.04,1,0,1.609438,6.690892,0,0,0,0,1,0,85.2,7.956314,1.609438,5.500717,1 +11,6,0,1,2,631233,1,2852.535,11.34086,0,10,1,5.666792,5.723461,0,0,0,11.39025,0,0,0,1,0,5,80,10.57626,0,85.2,0,805.04,1,0,1.609438,6.690892,0,0,0,0,1,0,85.2,7.956314,1.609438,2.432758,1 +11,6,0,1,3,631233,1,2852.535,12.34086,0,10,1,7.54717,0,0,0,0,7.54717,0,0,0,1,0,5,80,10.57626,0,85.2,0,805.04,1,0,1.609438,6.690892,0,0,0,0,1,0,85.2,7.956314,1.609438,2.021173,1 +11,6,0,1,1,631234,1,2852.535,13.31964,0,10,1,0,0,0,0,0,0,0,0,0,0,0,5,90,10.57626,0,81.5,0,805.04,1,0,1.609438,6.690892,0,0,0,0,1,0,81.5,7.956314,1.609438,,0 +11,6,0,1,2,631234,1,2852.535,14.31964,0,10,1,0,0,0,0,0,0,0,0,0,0,0,5,90,10.57626,0,81.5,0,805.04,1,0,1.609438,6.690892,0,0,0,0,1,0,81.5,7.956314,1.609438,,0 +11,6,0,1,3,631234,1,2852.535,15.31964,0,10,1,0,0,0,0,0,0,0,0,0,0,0,5,90,10.57626,0,81.5,0,805.04,1,0,1.609438,6.690892,0,0,0,0,1,0,81.5,7.956314,1.609438,,0 +13,6,0,1,1,631238,0,9514.956,13.46201,1,10,1,38.65213,49.77205,0,0,0,88.42418,0,0,0,1,0,4,76.7,10.57626,0,81.5,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,81.5,9.160726,1.386294,4.482145,1 +13,6,0,1,2,631238,0,9514.956,14.46201,1,10,1,51.85865,25.92933,0,0,0,77.78798,0,0,0,2,0,4,76.7,10.57626,0,81.5,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,81.5,9.160726,1.386294,4.353987,1 +13,6,0,1,3,631238,0,9514.956,15.46201,1,10,1,37.86285,20.92133,0,0,0,58.78418,0,0,0,1,0,4,76.7,10.57626,0,81.5,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,81.5,9.160726,1.386294,4.073873,1 +13,6,0,1,4,631238,0,9514.956,16.46201,1,10,1,54.40121,20.97469,0,0,0,75.3759,0,0,0,2,0,4,76.7,10.57626,0,81.5,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,81.5,9.160726,1.386294,4.322488,1 +13,6,0,1,5,631238,0,9514.956,17.46201,1,10,1,70.3259,27.91767,0,0,0,98.24357,0,0,0,3,0,4,76.7,10.57626,0,81.5,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,81.5,9.160726,1.386294,4.58745,1 +13,6,0,1,1,631239,0,9514.956,14.49144,1,10,1,64.91576,5.584737,0,0,0,70.5005,0,0,0,3,0,4,86.2,3.4,0,78.4,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,78.4,9.160726,1.386294,4.25562,1 +13,6,0,1,2,631239,0,9514.956,15.49144,1,10,1,16.06241,0,0,0,0,16.06241,0,0,0,1,0,4,86.2,3.4,0,78.4,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,78.4,9.160726,1.386294,2.776482,1 +13,6,0,1,3,631239,0,9514.956,16.49144,1,10,1,14.72444,0,0,0,0,14.72444,0,0,0,1,0,4,86.2,3.4,0,78.4,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,78.4,9.160726,1.386294,2.689509,1 +13,6,0,1,4,631239,0,9514.956,17.49144,1,10,1,32.11182,1.507367,24.93389,0,0,58.55308,0,0,0,3,0,4,86.2,3.4,0,78.4,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,78.4,9.160726,1.386294,4.069934,1 +13,6,0,1,5,631239,0,9514.956,18.49144,1,10,1,5.488851,4.795883,0,0,0,10.28473,0,0,0,1,0,4,86.2,3.4,0,78.4,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,78.4,9.160726,1.386294,2.330661,1 +13,6,0,1,1,631240,0,9514.956,34.78439,0,12,1,24.28147,0,0,0,334.4896,358.7711,1,0,0,2,0,4,86.2,3.4,0,70.5,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,70.5,9.160726,1.386294,5.882684,1 +13,6,0,1,2,631240,0,9514.956,35.78439,0,12,1,11.47315,0,33.04268,0,0,44.51583,0,0,0,0,1,4,86.2,3.4,0,70.5,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,70.5,9.160726,1.386294,3.795845,1 +13,6,0,1,3,631240,0,9514.956,36.78439,0,12,1,26.504,5.502735,0,0,349.1796,381.1864,1,0,0,2,0,4,86.2,3.4,0,70.5,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,70.5,9.160726,1.386294,5.943288,1 +13,6,0,1,4,631240,0,9514.956,37.78439,0,12,1,5.666792,9.085757,0,0,0,14.75255,0,0,0,1,0,4,86.2,3.4,0,70.5,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,70.5,9.160726,1.386294,2.691416,1 +13,6,0,1,5,631240,0,9514.956,38.78439,0,12,1,28.13036,5.632933,24.91595,0,0,58.67924,0,0,0,2,0,4,86.2,3.4,0,70.5,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,70.5,9.160726,1.386294,4.072086,1 +13,6,0,1,1,631241,0,9514.956,34.77892,1,10,1,27.25471,6.575818,0,0,0,33.83052,0,0,0,2,0,4,89.4,17.2,0,92,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,92,9.160726,1.386294,3.521363,1 +13,6,0,1,2,631241,0,9514.956,35.77892,1,10,1,0,1.298761,0,0,0,1.298761,0,0,0,0,0,4,89.4,17.2,0,92,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,92,9.160726,1.386294,.2614107,1 +13,6,0,1,3,631241,0,9514.956,36.77892,1,10,1,31.97308,0,0,0,0,31.97308,0,0,0,1,0,4,89.4,17.2,0,92,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,92,9.160726,1.386294,3.464894,1 +13,6,0,1,4,631241,0,9514.956,37.77892,1,10,1,26.44503,2.293162,0,0,0,28.73819,0,0,0,2,0,4,89.4,17.2,0,92,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,92,9.160726,1.386294,3.358227,1 +13,6,0,1,5,631241,0,9514.956,38.77892,1,10,1,19.89708,5.893653,0,0,0,25.79074,0,0,0,2,0,4,89.4,17.2,0,92,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,92,9.160726,1.386294,3.250015,1 +10,6,50,0,1,631242,0,12531.49,14.0397,0,9,1,237.6946,1.661759,0,0,0,239.3563,0,0,0,0,21,5,90,10.57626,.1442925,85.2,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,1,0,0,85.2,9.43608,1.609438,5.477953,1 +10,6,50,0,2,631242,0,12531.49,15.0397,0,9,1,146.581,0,0,0,0,146.581,0,0,0,0,13,5,90,10.57626,.1442925,85.2,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,1,0,0,85.2,9.43608,1.609438,4.987578,1 +10,6,50,0,3,631242,0,12531.49,16.0397,0,9,1,46.31218,18.93653,0,0,444.94,510.1887,1,0,0,3,0,5,90,10.57626,.1442925,85.2,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,1,0,0,85.2,9.43608,1.609438,6.234781,1 +10,6,50,0,1,631243,0,12531.49,38.01232,1,9,1,18.93143,8.329827,0,0,0,27.26125,0,0,0,1,0,5,95.7,0,0,72.5,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,1,0,0,72.5,9.43608,1.609438,3.305466,1 +10,6,50,0,2,631243,0,12531.49,39.01232,1,9,1,41.55648,7.536834,0,0,0,49.09331,0,0,0,1,2,5,95.7,0,0,72.5,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,1,0,0,72.5,9.43608,1.609438,3.893723,1 +10,6,50,0,3,631243,0,12531.49,40.01232,1,9,1,67.78731,24.28816,30.87479,0,1111.835,1234.786,1,0,0,4,1,5,95.7,0,0,72.5,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,1,0,0,72.5,9.43608,1.609438,7.118653,1 +10,6,50,0,1,631244,0,12531.49,18.60643,1,9,1,135.8856,22.86496,29.44888,0,0,188.1994,0,0,0,8,3,5,89.4,13.8,0,90.9,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,1,0,90.9,9.43608,1.609438,5.237502,1 +10,6,50,0,2,631244,0,12531.49,19.60643,1,9,1,46.84549,0,0,0,0,46.84549,0,0,0,1,5,5,89.4,13.8,0,90.9,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,1,0,90.9,9.43608,1.609438,3.846855,1 +10,6,50,0,3,631244,0,12531.49,20.60643,1,9,1,27.1012,32.65866,0,0,0,59.75986,0,0,0,1,0,5,89.4,13.8,0,90.9,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,0,1,0,90.9,9.43608,1.609438,4.090334,1 +10,6,50,0,1,631245,0,12531.49,15.98905,1,9,1,51.3252,10.71098,0,0,0,62.03618,0,0,0,4,0,5,91.7,10.57626,.1442925,85.2,1000,1000,1,1,1.609438,6.907755,0,3.931826,7.600903,0,0,0,85.2,9.43608,1.609438,4.127718,1 +10,6,50,0,2,631245,0,12531.49,16.98905,1,9,1,7.555724,2.417831,0,0,0,9.973555,0,0,0,1,0,5,91.7,10.57626,.1442925,85.2,1000,1000,1,1,1.609438,6.907755,0,3.931826,7.600903,0,0,0,85.2,9.43608,1.609438,2.299937,1 +10,6,50,0,3,631245,0,12531.49,17.98905,1,9,1,37.04974,32.29846,0,0,687.8216,757.1698,2,0,0,1,0,5,91.7,10.57626,.1442925,85.2,1000,1000,1,1,1.609438,6.907755,0,3.931826,7.600903,0,0,0,85.2,9.43608,1.609438,6.629588,1 +10,6,50,0,1,631246,0,12531.49,42.63381,0,6,1,45.01472,0,0,0,0,45.01472,0,0,0,0,10,5,87.2,0,0,81.8,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,1,0,0,81.8,9.43608,1.609438,3.80699,1 +10,6,50,0,2,631246,0,12531.49,43.63381,0,6,1,11.33358,0,0,0,0,11.33358,0,0,0,0,2,5,87.2,0,0,81.8,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,1,0,0,81.8,9.43608,1.609438,2.42777,1 +10,6,50,0,3,631246,0,12531.49,44.63381,0,6,1,26.41509,0,34.30532,0,0,60.72041,0,0,0,0,1,5,87.2,0,0,81.8,1000,1000,0,0,1.609438,6.907755,0,3.931826,7.600903,1,0,0,81.8,9.43608,1.609438,4.10628,1 +13,6,0,1,1,631252,0,11887.98,20.8679,0,13,1,19.82161,37.53221,0,0,0,57.35382,0,0,0,4,0,3,86.7,6.9,0,65.9,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,65.9,9.383367,1.098612,4.04924,1 +13,6,0,1,2,631252,0,11887.98,21.8679,0,13,1,290.9592,55.12621,0,0,0,346.0854,0,0,0,8,0,3,86.7,6.9,0,65.9,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,65.9,9.383367,1.098612,5.846685,1 +13,6,0,1,3,631252,0,11887.98,22.8679,0,13,1,0,1.682793,0,0,0,1.682793,0,0,0,0,0,3,86.7,6.9,0,65.9,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,65.9,9.383367,1.098612,.5204551,1 +13,6,0,1,4,631252,0,11887.98,23.8679,0,13,1,0,0,0,0,0,0,0,0,0,0,0,3,86.7,6.9,0,65.9,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,65.9,9.383367,1.098612,,0 +13,6,0,1,5,631252,0,11887.98,24.8679,0,13,1,0,2.058319,0,0,0,2.058319,0,0,0,0,0,3,86.7,6.9,0,65.9,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,65.9,9.383367,1.098612,.7218897,1 +13,6,0,1,1,631253,0,11887.98,45.31691,1,12,1,44.59861,25.6442,41.22894,0,0,111.4718,0,0,0,5,0,3,72.9,24.1,1,67,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,67,9.383367,1.098612,4.713771,1 +13,6,0,1,2,631253,0,11887.98,46.31691,1,12,1,0,24.78201,0,0,0,24.78201,0,0,0,0,0,3,72.9,24.1,1,67,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,67,9.383367,1.098612,3.210118,1 +13,6,0,1,3,631253,0,11887.98,47.31691,1,12,1,44.17333,24.50568,0,0,0,68.67901,0,0,0,0,19,3,72.9,24.1,1,67,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,67,9.383367,1.098612,4.229444,1 +13,6,0,1,4,631253,0,11887.98,48.31691,1,12,1,0,6.800151,0,0,0,6.800151,0,0,0,0,0,3,72.9,24.1,1,67,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,67,9.383367,1.098612,1.916945,1 +13,6,0,1,5,631253,0,11887.98,49.31691,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,72.9,24.1,1,67,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,67,9.383367,1.098612,,0 +13,6,0,1,1,631254,0,11887.98,50.18754,0,12,1,14.8662,138.999,53.30525,0,0,207.1705,0,0,0,1,0,3,71.8,24.1,0,68.2,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,68.2,9.383367,1.098612,5.333542,1 +13,6,0,1,2,631254,0,11887.98,51.18754,0,12,1,0,132.056,4.671868,0,0,136.7279,0,0,0,0,0,3,71.8,24.1,0,68.2,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,68.2,9.383367,1.098612,4.917993,1 +13,6,0,1,3,631254,0,11887.98,52.18754,0,12,1,0,112.8523,4.202776,0,0,117.0551,0,0,0,0,0,3,71.8,24.1,0,68.2,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,68.2,9.383367,1.098612,4.762645,1 +13,6,0,1,4,631254,0,11887.98,53.18754,0,12,1,23.80053,134.9641,59.42577,0,0,218.1904,0,0,0,2,0,3,71.8,24.1,0,68.2,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,68.2,9.383367,1.098612,5.385368,1 +13,6,0,1,5,631254,0,11887.98,54.18754,0,12,1,0,148.4563,1.629503,0,0,150.0858,0,0,0,0,0,3,71.8,24.1,0,68.2,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,1,0,0,68.2,9.383367,1.098612,5.011207,1 +6,6,25,1,1,631256,0,2313.364,43.92608,0,14,1,17.77402,34.33347,0,0,0,52.10749,0,0,0,1,0,1,97.9,10.3,0,98.9,750,750,0,0,0,6.620073,0,3.258096,8.006368,0,0,0,98.9,7.74689,0,3.953309,1 +6,6,25,1,2,631256,0,2313.364,44.92608,0,14,1,35.68717,36.97798,0,0,0,72.66515,0,0,0,3,0,1,97.9,10.3,0,98.9,750,750,0,0,0,6.620073,0,3.258096,8.006368,0,0,0,98.9,7.74689,0,4.285862,1 +6,6,25,1,3,631256,0,2313.364,45.92608,0,14,1,43.94464,34.58477,0,0,662.2838,740.8132,1,0,0,4,0,1,97.9,10.3,0,98.9,750,750,0,0,0,6.620073,0,3.258096,8.006368,0,0,0,98.9,7.74689,0,6.607749,1 +13,6,0,1,1,631260,0,6735.316,54.75975,0,12,1,63.94615,2.734539,0,0,0,66.68069,0,0,0,4,7,2,83.5,10.3,0,75,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,75,8.815269,.6931472,4.199915,1 +13,6,0,1,2,631260,0,6735.316,55.75975,0,12,1,142.8032,12.00227,0,0,638.2886,793.0941,1,0,0,1,14,2,83.5,10.3,0,75,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,75,8.815269,.6931472,6.675942,1 +13,6,0,1,3,631260,0,6735.316,56.75975,0,12,1,0,0,0,0,0,0,1,0,0,3,1,2,83.5,10.3,0,75,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,75,8.815269,.6931472,,0 +13,6,0,1,1,631261,0,6735.316,52.78302,1,15,1,312.5789,223.5423,63.10476,0,413.5465,1012.772,2,0,0,17,19,2,62.8,31,1,54.5,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,54.5,8.815269,.6931472,6.920447,1 +13,6,0,1,2,631261,0,6735.316,53.78302,1,15,1,716.6604,291.8965,0,124.6694,0,1008.557,0,0,6,17,41,2,62.8,31,1,54.5,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,54.5,8.815269,.6931472,6.916276,1 +13,6,0,1,3,631261,0,6735.316,54.78302,1,15,1,375.6432,284.0206,102.916,82.33276,2545.455,3308.034,3,0,4,21,11,2,62.8,31,1,54.5,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,1,0,0,54.5,8.815269,.6931472,8.10411,1 +11,6,0,1,1,631274,0,12312.34,36.61876,0,9,1,244.6043,8.252222,0,0,0,252.8565,0,0,0,15,18,4,85.6,3.4,0,81.8,0,60,0,0,1.386294,4.094345,0,0,0,0,0,0,81.8,9.418439,1.386294,5.532822,1 +11,6,0,1,2,631274,0,12312.34,37.61876,0,9,1,108.5801,1.867882,0,0,0,110.448,0,0,0,2,1,4,85.6,3.4,0,81.8,0,60,0,0,1.386294,4.094345,0,0,0,0,0,0,81.8,9.418439,1.386294,4.704545,1 +11,6,0,1,3,631274,0,12312.34,38.61876,0,9,1,46.7128,0,0,0,0,46.7128,0,0,0,1,0,4,85.6,3.4,0,81.8,0,60,0,0,1.386294,4.094345,0,0,0,0,0,0,81.8,9.418439,1.386294,3.844018,1 +11,6,0,1,1,631275,0,12312.34,33.7358,1,10,1,41.47271,11.10876,0,0,0,52.58146,0,0,0,3,0,4,78.7,13.8,1,68.2,0,60,0,0,1.386294,4.094345,0,0,0,1,0,0,68.2,9.418439,1.386294,3.962364,1 +11,6,0,1,2,631275,0,12312.34,34.7358,1,10,1,96.05164,33.82688,0,0,0,129.8785,0,0,0,3,0,4,78.7,13.8,1,68.2,0,60,0,0,1.386294,4.094345,0,0,0,1,0,0,68.2,9.418439,1.386294,4.8666,1 +11,6,0,1,3,631275,0,12312.34,35.7358,1,10,1,105.8824,28.10381,32.79585,0,1123.644,1290.426,1,0,0,6,0,4,78.7,13.8,1,68.2,0,60,0,0,1.386294,4.094345,0,0,0,1,0,0,68.2,9.418439,1.386294,7.162727,1 +11,6,0,1,1,631276,0,12312.34,13.92471,0,10,1,51.62928,0,0,0,0,51.62928,0,0,0,6,0,4,95,10.57626,1,88.9,0,60,1,0,1.386294,4.094345,0,0,0,1,0,0,88.9,9.418439,1.386294,3.944089,1 +11,6,0,1,2,631276,0,12312.34,14.92471,0,10,1,21.26044,4.138193,0,0,0,25.39863,0,0,0,3,0,4,95,10.57626,1,88.9,0,60,1,0,1.386294,4.094345,0,0,0,1,0,0,88.9,9.418439,1.386294,3.234695,1 +11,6,0,1,3,631276,0,12312.34,15.92471,0,10,1,128.3737,5.626297,0,0,0,134,0,0,0,8,0,4,95,10.57626,1,88.9,0,60,1,0,1.386294,4.094345,0,0,0,1,0,0,88.9,9.418439,1.386294,4.89784,1 +11,6,0,1,1,631277,0,12312.34,16.97467,1,10,1,22.42912,13.11892,0,0,0,35.54803,0,0,0,2,0,4,92,3.4,0,90.9,0,60,1,1,1.386294,4.094345,0,0,0,0,0,0,90.9,9.418439,1.386294,3.570885,1 +11,6,0,1,2,631277,0,12312.34,17.97467,1,10,1,31.89066,34.51025,0,0,0,66.40091,0,0,0,3,0,4,92,3.4,0,90.9,0,60,1,1,1.386294,4.094345,0,0,0,0,0,0,90.9,9.418439,1.386294,4.195711,1 +11,6,0,1,3,631277,0,12312.34,18.97467,1,10,1,45.32872,34.7128,0,0,0,80.04152,0,0,0,4,0,4,92,3.4,0,90.9,0,60,0,0,1.386294,4.094345,0,0,0,0,0,0,90.9,9.418439,1.386294,4.382545,1 +11,6,0,0,1,631278,1,3690.22,60.14511,0,10,1,130.8879,0,32.93039,0,0,163.8183,0,0,0,4,0,6,92,3.4,0,80.7,0,0,0,0,1.791759,0,0,0,0,0,1,0,80.7,8.213713,1.791759,5.098758,1 +11,6,0,0,2,631278,1,3690.22,61.14511,0,10,1,25.88147,1.676669,24.006,0,0,51.56414,0,0,0,4,0,6,92,3.4,0,80.7,0,0,0,0,1.791759,0,0,0,0,0,1,0,80.7,8.213713,1.791759,3.942827,1 +11,6,0,0,3,631278,1,3690.22,62.14511,0,10,1,16.23816,7.560893,0,0,0,23.79905,0,0,0,0,0,6,92,3.4,0,80.7,0,0,0,0,1.791759,0,0,0,0,0,1,0,80.7,8.213713,1.791759,3.169646,1 +11,6,0,0,1,631279,.5112414,6735.316,20.21903,0,10.62774,1,49.604,4.501876,0,0,0,54.10588,0,0,0,2,0,1,50.5,10.57626,.1442925,56,0,0,0,0,0,0,0,0,0,0,0,0,56,8.815269,0,3.990943,1 +11,6,0,0,2,631279,.5112414,6735.316,21.21903,0,10.62774,1,0,0,0,0,0,0,0,0,0,0,0,1,50.5,10.57626,.1442925,56,0,0,0,0,0,0,0,0,0,0,0,0,56,8.815269,0,,0 +11,6,0,0,3,631279,.5112414,6735.316,22.21903,0,10.62774,1,12.85521,8.389716,0,0,360.2842,381.5291,1,0,0,3,0,1,50.5,10.57626,.1442925,56,0,0,0,0,0,0,0,0,0,0,0,0,56,8.815269,0,5.944187,1 +11,6,0,0,1,631280,1,3690.22,15.34292,0,9,1,30.84619,5.627345,0,0,0,36.47353,0,0,0,0,0,6,79.8,6.9,0,,0,0,1,0,1.791759,0,0,0,0,0,0,0,70.68995,8.213713,1.791759,3.596587,1 +11,6,0,0,2,631280,1,3690.22,16.34292,0,9,1,7.501875,4.459865,0,0,0,11.96174,0,0,0,2,0,6,79.8,6.9,0,,0,0,1,0,1.791759,0,0,0,0,0,0,0,70.68995,8.213713,1.791759,2.481713,1 +11,6,0,0,3,631280,1,3690.22,17.34292,0,9,1,0,0,0,0,0,0,0,0,0,0,0,6,79.8,6.9,0,,0,0,1,0,1.791759,0,0,0,0,0,0,0,70.68995,8.213713,1.791759,,0 +11,6,0,0,1,631281,1,3690.22,22.14647,0,10,1,14.58941,1.642351,0,0,162.1509,178.3827,1,1,0,1,0,6,75,0,0,87.5,0,0,0,0,1.791759,0,0,0,0,0,0,0,87.5,8.213713,1.791759,5.183931,1 +11,6,0,0,2,631281,1,3690.22,23.14647,0,10,1,28.50713,1.669167,0,0,0,30.17629,0,0,0,0,0,6,75,0,0,87.5,0,0,0,0,1.791759,0,0,0,0,0,0,0,87.5,8.213713,1.791759,3.407057,1 +11,6,0,0,3,631281,1,3690.22,24.14647,0,10,1,17.59134,2.486468,0,0,0,20.07781,0,0,0,0,0,6,75,0,0,87.5,0,0,0,0,1.791759,0,0,0,0,0,0,0,87.5,8.213713,1.791759,2.999615,1 +11,6,0,0,1,631282,1,3690.22,52.58043,1,9,1,138.8078,15.08128,0,0,0,153.8891,0,0,0,16,0,6,92,10.3,1,59.1,0,0,0,0,1.791759,0,0,0,0,0,1,0,59.1,8.213713,1.791759,5.036232,1 +11,6,0,0,2,631282,1,3690.22,53.58043,1,9,1,94.89873,23.12078,0,0,0,118.0195,0,0,0,9,0,6,92,10.3,1,59.1,0,0,0,0,1.791759,0,0,0,0,0,1,0,59.1,8.213713,1.791759,4.77085,1 +11,6,0,0,3,631282,1,3690.22,54.58043,1,9,1,87.9567,60.9912,0,0,0,148.9479,0,0,0,10,0,6,92,10.3,1,59.1,0,0,0,0,1.791759,0,0,0,0,0,1,0,59.1,8.213713,1.791759,5.003597,1 +11,6,0,0,1,631285,1,1190.476,24.04654,1,12,1,0,1.667361,0,0,0,1.667361,0,0,0,0,0,3,86.2,3.4,0,77.3,0,329.16,0,0,1.098612,5.796544,0,0,0,1,0,0,77.3,7.082948,1.098612,.5112424,1 +11,6,0,0,2,631285,1,1190.476,25.04654,1,12,1,16.12903,0,0,0,0,16.12903,0,0,0,1,0,3,86.2,3.4,0,77.3,0,329.16,0,0,1.098612,5.796544,0,0,0,1,0,0,77.3,7.082948,1.098612,2.780621,1 +11,6,0,0,3,631285,1,1190.476,26.04654,1,12,1,45.66982,13.97158,0,0,0,59.64141,0,0,0,4,0,3,86.2,3.4,0,77.3,0,329.16,0,0,1.098612,5.796544,0,0,0,1,0,0,77.3,7.082948,1.098612,4.08835,1 +11,6,0,1,1,631288,0,9949.82,27.20055,0,12,1,363.0627,8.502314,29.44888,0,0,401.0139,0,0,0,5,35,4,77.7,17.2,0,71.6,0,0,0,0,1.386294,0,0,0,0,0,0,0,71.6,9.20541,1.386294,5.993996,1 +11,6,0,1,2,631288,0,9949.82,28.20055,0,12,1,120.8916,10.39668,0,0,0,131.2883,0,0,0,4,7,5,77.7,17.2,0,71.6,0,0,0,0,1.609438,0,0,0,0,0,0,0,71.6,9.20541,1.609438,4.877395,1 +11,6,0,1,3,631288,0,9949.82,29.20055,0,12,1,200,4.727273,24.01372,0,0,228.741,0,0,0,4,15,5,77.7,17.2,0,71.6,0,0,0,0,1.609438,0,0,0,0,0,0,0,71.6,9.20541,1.609438,5.43259,1 +11,6,0,1,1,631289,0,9949.82,5.779603,1,11,1,158.6033,0,0,0,0,158.6033,0,0,0,0,28,4,95,10.57626,0,81.5,0,0,1,1,1.386294,0,0,0,0,0,0,0,81.5,9.20541,1.386294,5.066406,1 +11,6,0,1,2,631289,0,9949.82,6.779603,1,11,1,67.24594,11.24669,0,0,0,78.49263,0,0,0,3,6,5,95,10.57626,0,81.5,0,0,1,1,1.609438,0,0,0,0,0,0,0,81.5,9.20541,1.609438,4.363005,1 +11,6,0,1,3,631289,0,9949.82,7.779603,1,11,1,89.87993,3.859348,24.01372,0,0,117.753,0,0,0,1,15,5,95,10.57626,0,81.5,0,0,1,1,1.609438,0,0,0,0,0,0,0,81.5,9.20541,1.609438,4.768589,1 +11,6,0,1,1,631290,0,9949.82,26.33813,1,11,1,206.9836,16.25578,31.55238,0,451.83,706.6218,1,0,0,2,32,4,78.2,3.4,1,71.6,0,0,0,0,1.386294,0,0,0,0,0,0,0,71.6,9.20541,1.386294,6.560495,1 +11,6,0,1,2,631290,0,9949.82,27.33813,1,11,1,243.6721,2.697393,0,0,0,246.3695,0,0,0,0,29,5,78.2,3.4,1,71.6,0,0,0,0,1.609438,0,0,0,0,0,0,0,71.6,9.20541,1.609438,5.506832,1 +11,6,0,1,3,631290,0,9949.82,28.33813,1,11,1,184.2196,3.413379,0,0,0,187.6329,0,0,0,1,17,5,78.2,3.4,1,71.6,0,0,0,0,1.609438,0,0,0,0,0,0,0,71.6,9.20541,1.609438,5.234488,1 +11,6,0,1,1,631291,0,9949.82,3.405886,1,11,1,228.4392,7.888094,0,0,0,236.3273,0,0,0,4,27,4,77.40034,10.57626,0,88.9,0,0,1,1,1.386294,0,0,0,0,0,0,0,88.9,9.20541,1.386294,5.465218,1 +11,6,0,1,2,631291,0,9949.82,4.405886,1,11,1,94.82433,6.664148,0,0,0,101.4885,0,0,0,3,11,5,77.40034,10.57626,0,88.9,0,0,1,1,1.609438,0,0,0,0,0,0,0,88.9,9.20541,1.609438,4.619946,1 +11,6,0,1,3,631291,0,9949.82,5.405886,1,11,1,79.58833,1.554031,0,0,0,81.14236,0,0,0,1,13,5,77.40034,10.57626,0,88.9,0,0,1,1,1.609438,0,0,0,0,0,0,0,88.9,9.20541,1.609438,4.396205,1 +11,6,0,1,1,631296,1,6278.034,15.37303,1,11,1,30.89293,0,28.35379,0,0,59.24672,0,0,0,1,1,8,74.3,13.8,0,54.5,0,0,1,1,2.079442,0,0,0,0,1,0,0,54.5,8.744971,2.079442,4.08171,1 +11,6,0,1,2,631296,1,6278.034,16.37303,1,11,1,17.08428,0,0,0,0,17.08428,0,0,0,3,0,8,74.3,13.8,0,54.5,0,0,1,1,2.079442,0,0,0,0,1,0,0,54.5,8.744971,2.079442,2.838159,1 +11,6,0,1,3,631296,1,6278.034,17.37303,1,11,1,30.44983,2.058824,29.41176,0,0,61.92041,0,0,0,4,1,8,74.3,13.8,0,54.5,0,0,1,1,2.079442,0,0,0,0,1,0,0,54.5,8.744971,2.079442,4.12585,1 +11,6,0,1,1,631297,1,6278.034,38.21766,0,7,1,35.12484,2.725349,25.39145,0,0,63.24164,0,0,0,4,1,8,54.3,10.3,1,39.8,0,0,0,0,2.079442,0,0,0,0,1,0,0,39.8,8.744971,2.079442,4.146963,1 +11,6,0,1,2,631297,1,6278.034,39.21766,0,7,1,33.78891,0,15.18603,0,237.2817,286.2567,1,0,0,0,1,8,54.3,10.3,1,39.8,0,0,0,0,2.079442,0,0,0,0,1,0,0,39.8,8.744971,2.079442,5.656889,1 +11,6,0,1,3,631297,1,6278.034,40.21766,0,7,1,28.3737,4.913495,24.22145,0,0,57.50865,0,0,0,2,1,8,54.3,10.3,1,39.8,0,0,0,0,2.079442,0,0,0,0,1,0,0,39.8,8.744971,2.079442,4.051935,1 +11,6,0,1,1,631298,1,6278.034,10.83915,1,11,1,28.35379,1.92975,0,0,0,30.28354,0,0,0,2,0,8,90,10.57626,0,74.1,0,0,1,1,2.079442,0,0,0,0,0,1,0,74.1,8.744971,2.079442,3.410604,1 +11,6,0,1,2,631298,1,6278.034,11.83915,1,11,1,5.31511,0,0,0,0,5.31511,0,0,0,1,0,8,90,10.57626,0,74.1,0,0,1,1,2.079442,0,0,0,0,0,1,0,74.1,8.744971,2.079442,1.670554,1 +11,6,0,1,3,631298,1,6278.034,12.83915,1,11,1,19.37716,2.249135,24.22145,0,0,45.84775,0,0,0,2,1,8,90,10.57626,0,74.1,0,0,1,1,2.079442,0,0,0,0,0,1,0,74.1,8.744971,2.079442,3.825326,1 +11,6,0,1,1,631299,1,6278.034,6.707735,1,11,1,10.15658,0,0,0,0,10.15658,0,0,0,0,0,8,80,10.57626,1,74.1,0,0,1,1,2.079442,0,0,0,0,1,0,0,74.1,8.744971,2.079442,2.318122,1 +11,6,0,1,2,631299,1,6278.034,7.707735,1,11,1,42.90053,0,0,0,0,42.90053,0,0,0,4,0,8,80,10.57626,1,74.1,0,0,1,1,2.079442,0,0,0,0,1,0,0,74.1,8.744971,2.079442,3.758884,1 +11,6,0,1,3,631299,1,6278.034,8.707734,1,11,1,12.80277,0,0,0,0,12.80277,0,0,0,3,0,8,80,10.57626,1,74.1,0,0,1,1,2.079442,0,0,0,0,1,0,0,74.1,8.744971,2.079442,2.549661,1 +11,6,0,1,1,631300,1,6278.034,14.44216,1,11,1,10.57977,0,0,0,0,10.57977,0,0,0,0,0,8,73.4,6.9,1,69.3,0,0,1,1,2.079442,0,0,0,0,1,0,0,69.3,8.744971,2.079442,2.358944,1 +11,6,0,1,2,631300,1,6278.034,15.44216,1,11,1,134.3964,0,25.05695,0,0,159.4533,0,0,0,9,1,8,73.4,6.9,1,69.3,0,0,1,1,2.079442,0,0,0,0,1,0,0,69.3,8.744971,2.079442,5.071751,1 +11,6,0,1,3,631300,1,6278.034,16.44216,1,11,1,84.08305,29.25606,13.84083,0,0,127.1799,0,0,0,8,1,8,73.4,6.9,1,69.3,0,0,1,1,2.079442,0,0,0,0,1,0,0,69.3,8.744971,2.079442,4.845603,1 +11,6,0,1,1,631301,1,6278.034,34.15469,1,11,1,0,0,0,0,0,0,0,0,0,0,0,8,76.1,10.3,0,51.1,0,0,0,0,2.079442,0,0,0,0,1,0,0,51.1,8.744971,2.079442,,0 +11,6,0,1,2,631301,1,6278.034,35.15469,1,11,1,31.89066,0,0,0,0,31.89066,0,0,0,6,0,8,76.1,10.3,0,51.1,0,0,0,0,2.079442,0,0,0,0,1,0,0,51.1,8.744971,2.079442,3.462313,1 +11,6,0,1,3,631301,1,6278.034,36.15469,1,11,1,15.22491,43.96194,0,0,0,59.18685,0,0,0,3,0,8,76.1,10.3,0,51.1,0,0,0,0,2.079442,0,0,0,0,1,0,0,51.1,8.744971,2.079442,4.080699,1 +11,6,0,1,1,631302,1,6278.034,12.5859,1,11,1,14.81168,4.731274,0,0,0,19.54295,0,0,0,1,0,8,61.7,10.57626,0,77.8,0,0,1,1,2.079442,0,0,0,0,1,0,0,77.8,8.744971,2.079442,2.972615,1 +11,6,0,1,2,631302,1,6278.034,13.5859,1,11,1,7.593014,0,26.57555,0,0,34.16856,0,0,0,0,1,8,61.7,10.57626,0,77.8,0,0,1,1,2.079442,0,0,0,0,1,0,0,77.8,8.744971,2.079442,3.531306,1 +11,6,0,1,3,631302,1,6278.034,14.5859,1,11,1,38.75433,1.730104,0,0,0,40.48443,0,0,0,2,0,8,61.7,10.57626,0,77.8,0,0,1,1,2.079442,0,0,0,0,1,0,0,77.8,8.744971,2.079442,3.700917,1 +13,6,0,1,1,631308,1,1989.247,3.173169,1,12,1,0,4.020313,0,0,109.6064,113.6267,1,1,0,0,0,3,77.40034,10.57626,0,85.2,300,300,1,1,1.098612,5.703783,1,4.564348,5.755076,0,0,0,85.2,7.596014,1.098612,4.732919,1 +13,6,0,1,2,631308,1,1989.247,4.173169,1,12,.1530055,0,0,0,0,0,0,0,0,0,0,0,3,77.40034,10.57626,0,85.2,300,300,1,1,1.098612,5.703783,1,4.564348,5.755076,0,0,0,85.2,7.596014,1.098612,,0 +13,6,0,1,1,631309,1,1989.247,24.57221,1,12,1,70.24968,3.118917,0,0,0,73.3686,0,0,0,4,0,3,42,6.9,1,63.6,300,300,0,0,1.098612,5.703783,1,4.564348,5.755076,1,0,0,63.6,7.596014,1.098612,4.295496,1 +13,6,0,1,2,631309,1,1989.247,25.57221,1,12,1,72.13364,5.550494,27.33485,0,857.631,962.65,1,0,0,5,0,3,42,6.9,1,63.6,300,300,0,0,1.098612,5.703783,1,4.564348,5.755076,1,0,0,63.6,7.596014,1.098612,6.86969,1 +13,6,0,1,3,631309,1,1989.247,26.57221,1,12,1,36.33218,13.3391,0,0,191.6955,241.3668,1,0,0,3,0,1,42,6.9,1,63.6,300,300,0,0,0,5.703783,1,4.564348,5.755076,1,0,0,63.6,7.596014,0,5.486318,1 +11,6,0,1,1,631310,1,6735.316,20.47091,0,9,1,50.7829,2.32755,0,0,0,53.11045,0,0,0,0,0,9,77.1,0,0,55.7,0,0,0,0,2.197225,0,0,0,0,1,0,0,55.7,8.815269,2.197225,3.972374,1 +11,6,0,1,2,631310,1,6735.316,21.47091,0,9,1,0,1.708428,0,0,0,1.708428,0,0,0,0,0,9,77.1,0,0,55.7,0,0,0,0,2.197225,0,0,0,0,1,0,0,55.7,8.815269,2.197225,.5355738,1 +11,6,0,1,3,631310,1,6735.316,22.47091,0,9,1,0,0,0,0,0,0,0,0,0,0,0,9,77.1,0,0,55.7,0,0,0,0,2.197225,0,0,0,0,1,0,0,55.7,8.815269,2.197225,,0 +11,6,0,1,1,631311,1,6735.316,18.51335,1,8,1,0,0,0,0,0,0,0,0,0,0,0,9,77.1,0,0,55.7,0,0,0,0,2.197225,0,0,0,0,1,0,0,55.7,8.815269,2.197225,,0 +11,6,0,1,1,631312,1,6735.316,17.59617,0,0,1,0,0,0,0,0,0,0,0,0,0,0,9,77.1,0,0,55.7,0,0,1,0,2.197225,0,0,0,0,1,0,0,55.7,8.815269,2.197225,,0 +11,6,0,1,2,631312,1,6735.316,18.59617,0,0,1,0,0,0,0,0,0,0,0,0,0,0,9,77.1,0,0,55.7,0,0,0,0,2.197225,0,0,0,0,1,0,0,55.7,8.815269,2.197225,,0 +11,6,0,1,3,631312,1,6735.316,19.59617,0,0,1,31.14187,0,0,0,0,31.14187,0,0,0,0,0,9,77.1,0,0,55.7,0,0,0,0,2.197225,0,0,0,0,1,0,0,55.7,8.815269,2.197225,3.438553,1 +11,6,0,1,1,631313,1,6735.316,12.02464,1,0,1,0,0,0,0,0,0,0,0,0,0,0,9,58.3,10.57626,1,70.4,0,0,1,1,2.197225,0,0,0,0,1,0,0,70.4,8.815269,2.197225,,0 +11,6,0,1,2,631313,1,6735.316,13.02464,1,0,1,0,0,0,0,0,0,0,0,0,0,0,9,58.3,10.57626,1,70.4,0,0,1,1,2.197225,0,0,0,0,1,0,0,70.4,8.815269,2.197225,,0 +11,6,0,1,3,631313,1,6735.316,14.02464,1,0,1,0,0,0,0,0,0,0,0,0,0,0,9,58.3,10.57626,1,70.4,0,0,1,1,2.197225,0,0,0,0,1,0,0,70.4,8.815269,2.197225,,0 +11,6,0,1,1,631314,1,6735.316,15.03901,0,0,1,12.69573,2.539145,0,0,0,15.23487,0,0,0,0,0,9,58.3,10.57626,1,70.4,0,0,1,0,2.197225,0,0,0,0,1,0,0,70.4,8.815269,2.197225,2.723587,1 +11,6,0,1,2,631314,1,6735.316,16.03901,0,0,1,0,0,0,56.94761,0,0,0,0,1,0,0,9,58.3,10.57626,1,70.4,0,0,1,0,2.197225,0,0,0,0,1,0,0,70.4,8.815269,2.197225,,0 +11,6,0,1,3,631314,1,6735.316,17.03901,0,0,1,0,0,0,0,0,0,0,0,0,0,0,9,58.3,10.57626,1,70.4,0,0,1,0,2.197225,0,0,0,0,1,0,0,70.4,8.815269,2.197225,,0 +11,6,0,1,1,631315,1,6735.316,16.55852,1,0,1,50.35971,13.43631,0,0,315.7004,379.4964,1,0,0,0,0,9,77.1,3.4,0,51.1,0,0,1,1,2.197225,0,0,0,0,1,0,0,51.1,8.815269,2.197225,5.938845,1 +11,6,0,1,2,631315,1,6735.316,17.55852,1,0,1,52.01215,0,32.64996,0,0,84.66211,0,0,0,0,1,9,77.1,3.4,0,51.1,0,0,1,1,2.197225,0,0,0,0,1,0,0,51.1,8.815269,2.197225,4.438668,1 +11,6,0,1,3,631315,1,6735.316,18.55852,1,0,1,35.98616,2.49827,38.97232,0,0,77.45675,0,0,0,2,1,9,77.1,3.4,0,51.1,0,0,0,0,2.197225,0,0,0,0,1,0,0,51.1,8.815269,2.197225,4.34972,1 +11,6,0,0,1,631316,.5112414,6735.316,29.59617,1,7,1,32.93039,5.210505,0,0,0,38.14089,0,0,0,4,0,4,79.8,10.3,0,83,0,0,0,0,1.386294,0,0,0,0,1,0,0,83,8.815269,1.386294,3.641287,1 +11,6,0,0,2,631316,.5112414,6735.316,30.59617,1,7,1,9.752439,4.793698,0,0,0,14.54614,0,0,0,0,0,4,79.8,10.3,0,83,0,0,0,0,1.386294,0,0,0,0,1,0,0,83,8.815269,1.386294,2.677325,1 +11,6,0,0,3,631316,.5112414,6735.316,31.59617,1,7,1,0,0,0,0,0,0,0,0,0,0,0,4,79.8,10.3,0,83,0,0,0,0,1.386294,0,0,0,0,1,0,0,83,8.815269,1.386294,,0 +11,6,0,1,1,631317,1,6735.316,50.05065,1,0,1,64.7482,16.57639,0,0,0,81.32458,0,0,0,5,0,9,67.6,10.3,0,40.9,0,0,0,0,2.197225,0,0,0,0,1,0,0,40.9,8.815269,2.197225,4.398448,1 +11,6,0,1,2,631317,1,6735.316,51.05065,1,0,1,137.0539,41.22627,36.44647,0,0,214.7267,0,0,0,4,1,9,67.6,10.3,0,40.9,0,0,0,0,2.197225,0,0,0,0,1,0,0,40.9,8.815269,2.197225,5.369366,1 +11,6,0,1,3,631317,1,6735.316,52.05065,1,0,1,47.05882,82.61938,0,0,0,129.6782,0,0,0,3,0,9,67.6,10.3,0,40.9,0,0,0,0,2.197225,0,0,0,0,1,0,0,40.9,8.815269,2.197225,4.865056,1 +11,6,0,1,1,631318,1,6735.316,19.5729,0,9,1,0,0,0,0,0,0,0,0,0,0,0,9,77.1,0,0,51.1,0,0,0,0,2.197225,0,0,0,0,1,0,0,51.1,8.815269,2.197225,,0 +11,6,0,1,2,631318,1,6735.316,20.5729,0,9,1,0,14.2369,0,22.77904,1382.878,1397.115,3,0,1,0,0,9,77.1,0,0,51.1,0,0,0,0,2.197225,0,0,0,0,1,0,0,51.1,8.815269,2.197225,7.242165,1 +11,6,0,1,3,631318,1,6735.316,21.5729,0,9,1,11.24568,0,0,51.90311,181.6609,192.9066,1,0,2,0,0,9,77.1,0,0,51.1,0,0,0,0,2.197225,0,0,0,0,1,0,0,51.1,8.815269,2.197225,5.262206,1 +13,6,0,1,1,631319,0,6735.316,49.62628,1,12,1,1.965602,33.04668,0,0,0,35.01228,0,0,0,1,0,1,70.7,31,0,73.9,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,73.9,8.815269,0,3.555699,1 +13,6,0,1,2,631319,0,6735.316,50.62628,1,12,1,33.72835,55.35551,0,0,0,89.08386,0,0,0,16,0,1,70.7,31,0,73.9,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,73.9,8.815269,0,4.489578,1 +13,6,0,1,3,631319,0,6735.316,51.62628,1,12,1,410.5877,19.9875,0,0,0,430.5752,0,0,0,16,28,1,70.7,31,0,73.9,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,73.9,8.815269,0,6.065122,1 +13,6,0,1,4,631319,0,6735.316,52.62628,1,12,1,163.1658,160.2776,0,0,0,323.4434,0,0,0,17,8,1,70.7,31,0,73.9,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,73.9,8.815269,0,5.779024,1 +13,6,0,1,5,631319,0,6735.316,53.62628,1,12,1,305.4804,220.3112,35.39581,0,0,561.1874,0,0,0,11,25,1,70.7,31,0,73.9,150,150,0,0,0,5.010635,1,4.564348,5.061929,1,0,0,73.9,8.815269,0,6.330055,1 +11,6,0,1,1,631331,1,5319.648,29.19644,1,12,1,69.28747,8.230958,27.02703,0,0,104.5455,0,0,0,3,1,7,55.9,20.7,0,40.9,0,206.44,0,0,1.94591,5.33001,0,0,0,1,0,0,40.9,8.57935,1.94591,4.649622,1 +11,6,0,1,2,631331,1,5319.648,30.19644,1,12,1,96.17138,14.81313,0,0,11.39471,122.3792,1,1,0,2,0,7,55.9,20.7,0,40.9,0,206.44,0,0,1.94591,5.33001,0,0,0,1,0,0,40.9,8.57935,1.94591,4.807125,1 +11,6,0,1,3,631331,1,5319.648,31.19644,1,12,1,66.27762,23.28053,0,0,0,89.55815,0,0,0,4,0,7,55.9,20.7,0,40.9,0,206.44,0,0,1.94591,5.33001,0,0,0,1,0,0,40.9,8.57935,1.94591,4.494888,1 +11,6,0,1,4,631331,1,5319.648,32.19644,1,12,1,64.14104,14.79745,28.50713,0,0,107.4456,0,0,0,2,1,8,55.9,20.7,0,40.9,0,206.44,0,0,2.079442,5.33001,0,0,0,1,0,0,40.9,8.57935,2.079442,4.676985,1 +11,6,0,1,5,631331,1,5319.648,33.19644,1,12,1,84.23545,21.88769,0,0,0,106.1231,0,0,0,3,0,8,55.9,20.7,0,40.9,0,206.44,0,0,2.079442,5.33001,0,0,0,1,0,0,40.9,8.57935,2.079442,4.6646,1 +11,6,0,1,1,631332,1,5319.648,6.743327,1,12,1,0,0,0,0,0,0,0,0,0,0,0,7,75,10.57626,0,59.3,0,206.44,1,1,1.94591,5.33001,0,0,0,1,0,0,59.3,8.57935,1.94591,,0 +11,6,0,1,2,631332,1,5319.648,7.743327,1,12,1,36.00729,3.988149,0,0,0,39.99544,0,0,0,1,0,7,75,10.57626,0,59.3,0,206.44,1,1,1.94591,5.33001,0,0,0,1,0,0,59.3,8.57935,1.94591,3.688766,1 +11,6,0,1,3,631332,1,5319.648,8.743326,1,12,1,95.45644,8.107545,0,0,743.6432,847.2072,2,0,0,8,0,7,75,10.57626,0,59.3,0,206.44,1,1,1.94591,5.33001,0,0,0,1,0,0,59.3,8.57935,1.94591,6.741945,1 +11,6,0,1,4,631332,1,5319.648,9.743326,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,75,10.57626,0,59.3,0,206.44,1,1,2.079442,5.33001,0,0,0,1,0,0,59.3,8.57935,2.079442,,0 +11,6,0,1,5,631332,1,5319.648,10.74333,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,75,10.57626,0,59.3,0,206.44,1,1,2.079442,5.33001,0,0,0,1,0,0,59.3,8.57935,2.079442,,0 +11,6,0,1,1,631333,1,5319.648,11.41136,1,12,1,9.82801,0,27.02703,0,0,36.85504,0,0,0,0,1,7,66.7,10.57626,0,63,0,206.44,1,1,1.94591,5.33001,0,0,0,1,0,0,63,8.57935,1.94591,3.606992,1 +11,6,0,1,2,631333,1,5319.648,12.41136,1,12,1,48.76937,2.620784,0,0,0,51.39016,0,0,0,3,0,7,66.7,10.57626,0,63,0,206.44,1,1,1.94591,5.33001,0,0,0,1,0,0,63,8.57935,1.94591,3.939447,1 +11,6,0,1,3,631333,1,5319.648,13.41136,1,12,1,132.9721,19.61234,30.84619,0,4315.131,4498.562,2,0,0,7,0,7,66.7,10.57626,0,63,0,206.44,1,1,1.94591,5.33001,0,0,0,1,0,0,63,8.57935,1.94591,8.411513,1 +11,6,0,1,4,631333,1,5319.648,14.41136,1,12,1,67.14178,15.71643,0,0,0,82.85822,0,0,0,5,0,8,66.7,10.57626,0,63,0,206.44,1,1,2.079442,5.33001,0,0,0,1,0,0,63,8.57935,2.079442,4.417131,1 +11,6,0,1,5,631333,1,5319.648,15.41136,1,12,1,100.1353,44.82409,25.71042,0,0,170.6698,0,0,0,4,0,8,66.7,10.57626,0,63,0,206.44,1,1,2.079442,5.33001,0,0,0,1,0,0,63,8.57935,2.079442,5.139731,1 +11,6,0,1,1,631334,1,5319.648,9.382615,0,12,1,0,0,0,0,0,0,0,0,0,0,0,7,68.3,10.57626,0,63,0,206.44,1,0,1.94591,5.33001,0,0,0,1,0,0,63,8.57935,1.94591,,0 +11,6,0,1,2,631334,1,5319.648,10.38262,0,12,1,70.19143,4.216044,0,0,0,74.40748,0,0,0,5,0,7,68.3,10.57626,0,63,0,206.44,1,0,1.94591,5.33001,0,0,0,1,0,0,63,8.57935,1.94591,4.309556,1 +11,6,0,1,3,631334,1,5319.648,11.38262,0,12,1,0,0,0,0,0,0,0,0,0,0,0,7,68.3,10.57626,0,63,0,206.44,1,0,1.94591,5.33001,0,0,0,1,0,0,63,8.57935,1.94591,,0 +11,6,0,1,4,631334,1,5319.648,12.38262,0,12,1,60.76519,4.782445,0,0,0,65.54764,0,0,0,2,0,8,68.3,10.57626,0,63,0,206.44,1,0,2.079442,5.33001,0,0,0,1,0,0,63,8.57935,2.079442,4.182777,1 +11,6,0,1,5,631334,1,5319.648,13.38262,0,12,1,17.59134,0,0,0,0,17.59134,0,0,0,1,0,8,68.3,10.57626,0,63,0,206.44,1,0,2.079442,5.33001,0,0,0,1,0,0,63,8.57935,2.079442,2.867407,1 +11,6,0,1,1,631335,1,5319.648,32.31211,0,9,1,35.38084,1.149877,0,0,0,36.53071,0,0,0,1,1,7,78.7,3.4,0,68.2,0,206.44,0,0,1.94591,5.33001,0,0,0,1,0,0,68.2,8.57935,1.94591,3.598153,1 +11,6,0,1,2,631335,1,5319.648,33.31211,0,9,1,19.59891,0,0,0,356.4266,376.0255,1,0,0,1,0,7,78.7,3.4,0,68.2,0,206.44,0,0,1.94591,5.33001,0,0,0,1,0,0,68.2,8.57935,1.94591,5.929657,1 +11,6,0,1,3,631335,1,5319.648,34.31211,0,9,1,0,0,0,0,0,0,0,0,0,0,0,7,78.7,3.4,0,68.2,0,206.44,0,0,1.94591,5.33001,0,0,0,1,0,0,68.2,8.57935,1.94591,,0 +11,6,0,1,4,631335,1,5319.648,35.31211,0,9,1,84.3961,18.9985,0,0,0,103.3946,0,0,0,2,0,8,78.7,3.4,0,68.2,0,206.44,0,0,2.079442,5.33001,0,0,0,1,0,0,68.2,8.57935,2.079442,4.638553,1 +11,6,0,1,5,631335,1,5319.648,36.31211,0,9,1,49.05277,4.634641,0,0,263.1935,316.8809,1,0,0,2,0,8,78.7,3.4,0,68.2,0,206.44,0,0,2.079442,5.33001,0,0,0,1,0,0,68.2,8.57935,2.079442,5.758526,1 +11,6,0,1,1,631336,1,5319.648,8.221766,1,12,1,20.14742,2.810811,0,0,0,22.95823,0,0,0,1,0,7,71.7,10.57626,0,55.6,0,206.44,1,1,1.94591,5.33001,0,0,0,1,0,0,55.6,8.57935,1.94591,3.133677,1 +11,6,0,1,2,631336,1,5319.648,9.221766,1,12,1,0,0,0,0,0,0,0,0,0,0,0,7,71.7,10.57626,0,55.6,0,206.44,1,1,1.94591,5.33001,0,0,0,1,0,0,55.6,8.57935,1.94591,,0 +11,6,0,1,3,631336,1,5319.648,10.22177,1,12,1,0,0,0,0,0,0,0,0,0,0,0,7,71.7,10.57626,0,55.6,0,206.44,1,1,1.94591,5.33001,0,0,0,1,0,0,55.6,8.57935,1.94591,,0 +11,6,0,1,4,631336,1,5319.648,11.22177,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,71.7,10.57626,0,55.6,0,206.44,1,1,2.079442,5.33001,0,0,0,1,0,0,55.6,8.57935,2.079442,,0 +11,6,0,1,5,631336,1,5319.648,12.22177,1,12,1,17.59134,0,0,0,0,17.59134,0,0,0,1,0,8,71.7,10.57626,0,55.6,0,206.44,1,1,2.079442,5.33001,0,0,0,1,0,0,55.6,8.57935,2.079442,2.867407,1 +11,6,0,1,1,631337,1,5319.648,5.497604,1,12,1,32.43243,1.405405,0,0,345.946,379.7838,1,0,0,0,0,7,75,10.57626,0,74.1,0,206.44,1,1,1.94591,5.33001,0,0,0,1,0,0,74.1,8.57935,1.94591,5.939602,1 +11,6,0,1,2,631337,1,5319.648,6.497604,1,12,1,0,0,0,0,0,0,0,0,0,0,0,7,75,10.57626,0,74.1,0,206.44,1,1,1.94591,5.33001,0,0,0,1,0,0,74.1,8.57935,1.94591,,0 +11,6,0,1,3,631337,1,5319.648,7.497604,1,12,1,0,0,0,0,0,0,0,0,0,0,0,7,75,10.57626,0,74.1,0,206.44,1,1,1.94591,5.33001,0,0,0,1,0,0,74.1,8.57935,1.94591,,0 +11,6,0,1,4,631337,1,5319.648,8.497604,1,12,1,43.88597,3.938485,0,0,0,47.82446,0,0,0,3,0,8,75,10.57626,0,74.1,0,206.44,1,1,2.079442,5.33001,0,0,0,1,0,0,74.1,8.57935,2.079442,3.867537,1 +11,6,0,1,5,631337,1,5319.648,9.497604,1,12,1,29.76996,6.529093,0,0,0,36.29905,0,0,0,1,0,8,75,10.57626,0,74.1,0,206.44,1,1,2.079442,5.33001,0,0,0,1,0,0,74.1,8.57935,2.079442,3.591792,1 +13,6,0,0,1,631338,1,9940.604,5.629021,1,10,1,10.51746,0,0,0,0,10.51746,0,0,0,0,0,4,90,10.57626,0,74.1,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,74.1,9.204484,1.386294,2.353037,1 +13,6,0,0,2,631338,1,9940.604,6.629021,1,10,1,49.86777,0,0,0,800.5289,850.3967,1,0,0,4,0,4,90,10.57626,0,74.1,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,74.1,9.204484,1.386294,6.745703,1 +13,6,0,0,3,631338,1,9940.604,7.629021,1,10,1,0,0,0,0,0,0,0,0,0,0,0,4,90,10.57626,0,74.1,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,1,0,0,74.1,9.204484,1.386294,,0 +13,6,0,0,1,631340,1,9940.604,27.73717,0,9,1,28.18679,0,0,0,0,28.18679,0,0,0,1,0,4,80.9,3.4,0,69.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,69.3,9.204484,1.386294,3.338853,1 +13,6,0,0,2,631340,1,9940.604,28.73717,0,9,1,69.89044,0,0,0,0,69.89044,0,0,0,3,0,4,80.9,3.4,0,69.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,69.3,9.204484,1.386294,4.246929,1 +13,6,0,0,3,631340,1,9940.604,29.73717,0,9,1,81.3036,0,0,0,0,81.3036,0,0,0,4,0,4,80.9,3.4,0,69.3,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,69.3,9.204484,1.386294,4.39819,1 +13,6,0,0,1,631341,1,9940.604,28.77481,1,10,1,116.1127,21.30837,0,0,0,137.4211,0,0,0,6,0,4,82.4,3.4,0,63.6,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,63.6,9.204484,1.386294,4.92305,1 +13,6,0,0,2,631341,1,9940.604,29.77481,1,10,1,91.36758,0,0,0,0,91.36758,0,0,0,5,0,4,82.4,3.4,0,63.6,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,63.6,9.204484,1.386294,4.514891,1 +13,6,0,0,3,631341,1,9940.604,30.77481,1,10,1,24.5283,2.024014,0,0,0,26.55231,0,0,0,2,0,4,82.4,3.4,0,63.6,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,1,0,0,63.6,9.204484,1.386294,3.279117,1 +11,6,0,1,1,631367,0,10634.41,41.39631,0,11,1,0,0,0,0,0,0,0,0,0,0,0,3,85.1,6.9,0,81.8,0,144.36,0,0,1.098612,4.97231,0,0,0,0,0,0,81.8,9.271944,1.098612,,0 +11,6,0,1,2,631367,0,10634.41,42.39631,0,11,1,11.33358,16.40347,0,0,0,27.73706,0,0,0,3,0,3,85.1,6.9,0,81.8,0,144.36,0,0,1.098612,4.97231,0,0,0,0,0,0,81.8,9.271944,1.098612,3.322769,1 +11,6,0,1,3,631367,0,10634.41,43.39631,0,11,1,30.18868,11.80789,24.01372,0,0,66.01029,0,0,0,5,0,3,85.1,6.9,0,81.8,0,144.36,0,0,1.098612,4.97231,0,0,0,0,0,0,81.8,9.271944,1.098612,4.189811,1 +11,6,0,1,1,631368,0,10634.41,39.15127,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,88.8,24.1,0,56.8,0,144.36,0,0,1.098612,4.97231,0,0,0,0,0,0,56.8,9.271944,1.098612,,0 +11,6,0,1,2,631368,0,10634.41,40.15127,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,88.8,24.1,0,56.8,0,144.36,0,0,1.098612,4.97231,0,0,0,0,0,0,56.8,9.271944,1.098612,,0 +11,6,0,1,3,631368,0,10634.41,41.15127,1,12,1,33.61921,10.18868,40.01029,0,0,83.81818,0,0,0,4,0,3,88.8,24.1,0,56.8,0,144.36,0,0,1.098612,4.97231,0,0,0,0,0,0,56.8,9.271944,1.098612,4.42865,1 +11,6,0,1,1,631370,0,10634.41,12.71732,0,12,1,27.34539,0,0,0,0,27.34539,0,0,0,2,0,3,91.7,10.57626,0,92.6,0,144.36,1,0,1.098612,4.97231,0,0,0,0,0,0,92.6,9.271944,1.098612,3.308548,1 +11,6,0,1,2,631370,0,10634.41,13.71732,0,12,1,25.31167,4.998111,0,0,0,30.30978,0,0,0,4,0,3,91.7,10.57626,0,92.6,0,144.36,1,0,1.098612,4.97231,0,0,0,0,0,0,92.6,9.271944,1.098612,3.411471,1 +11,6,0,1,3,631370,0,10634.41,14.71732,0,12,1,13.72213,4.425386,0,0,0,18.14751,0,0,0,3,0,3,91.7,10.57626,0,92.6,0,144.36,1,0,1.098612,4.97231,0,0,0,0,0,0,92.6,9.271944,1.098612,2.898534,1 +13,6,0,1,1,631379,1,6906.158,14.16016,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,92,0,0,75,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,75,8.840314,1.791759,,0 +13,6,0,1,2,631379,1,6906.158,15.16016,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,92,0,0,75,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,75,8.840314,1.791759,,0 +13,6,0,1,3,631379,1,6906.158,16.16016,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,92,0,0,75,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,75,8.840314,1.791759,,0 +13,6,0,1,4,631379,1,6906.158,17.16016,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,92,0,0,75,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,75,8.840314,1.791759,,0 +13,6,0,1,5,631379,1,6906.158,18.16016,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,92,0,0,75,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,75,8.840314,1.791759,,0 +13,6,0,1,1,631380,1,6906.158,16.70363,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,81.9,0,0,58,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,58,8.840314,1.791759,,0 +13,6,0,1,2,631380,1,6906.158,17.70363,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,81.9,0,0,58,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,58,8.840314,1.791759,,0 +13,6,0,1,3,631380,1,6906.158,18.70363,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,81.9,0,0,58,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,58,8.840314,1.791759,,0 +13,6,0,1,4,631380,1,6906.158,19.70363,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,81.9,0,0,58,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,58,8.840314,1.791759,,0 +13,6,0,1,5,631380,1,6906.158,20.70363,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,81.9,0,0,58,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,58,8.840314,1.791759,,0 +13,6,0,1,1,631381,1,6906.158,50.141,0,4,1,0,0,0,0,0,0,0,0,0,0,0,6,70.7,10.3,1,59.1,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,59.1,8.840314,1.791759,,0 +13,6,0,1,2,631381,1,6906.158,51.141,0,4,1,0,0,0,0,0,0,0,0,0,0,0,6,70.7,10.3,1,59.1,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,59.1,8.840314,1.791759,,0 +13,6,0,1,3,631381,1,6906.158,52.141,0,4,1,0,0,0,0,0,0,0,0,0,0,0,6,70.7,10.3,1,59.1,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,59.1,8.840314,1.791759,,0 +13,6,0,1,4,631381,1,6906.158,53.141,0,4,1,0,0,0,0,0,0,0,0,0,0,0,6,70.7,10.3,1,59.1,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,59.1,8.840314,1.791759,,0 +13,6,0,1,5,631381,1,6906.158,54.141,0,4,1,0,0,0,0,0,0,0,0,0,0,0,6,70.7,10.3,1,59.1,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,59.1,8.840314,1.791759,,0 +13,6,0,1,1,631382,1,6906.158,12.14784,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,88.3,10.57626,0,77.8,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,77.8,8.840314,1.791759,,0 +13,6,0,1,2,631382,1,6906.158,13.14784,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,88.3,10.57626,0,77.8,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,77.8,8.840314,1.791759,,0 +13,6,0,1,3,631382,1,6906.158,14.14784,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,88.3,10.57626,0,77.8,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,77.8,8.840314,1.791759,,0 +13,6,0,1,4,631382,1,6906.158,15.14784,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,88.3,10.57626,0,77.8,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,77.8,8.840314,1.791759,,0 +13,6,0,1,5,631382,1,6906.158,16.14784,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,88.3,10.57626,0,77.8,450,450,1,0,1.791759,6.109248,1,4.564348,6.160541,0,0,0,77.8,8.840314,1.791759,,0 +13,6,0,1,1,631383,1,6906.158,43.71252,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,88.8,10.3,1,61.4,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,61.4,8.840314,1.791759,,0 +13,6,0,1,2,631383,1,6906.158,44.71252,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,88.8,10.3,1,61.4,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,61.4,8.840314,1.791759,,0 +13,6,0,1,3,631383,1,6906.158,45.71252,1,12,1,0,0,0,0,1636.932,1636.932,2,0,0,0,0,6,88.8,10.3,1,61.4,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,61.4,8.840314,1.791759,7.400579,1 +13,6,0,1,4,631383,1,6906.158,46.71252,1,12,1,6.376594,6.901725,0,0,436.9843,450.2626,0,0,0,1,0,6,88.8,10.3,1,61.4,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,61.4,8.840314,1.791759,6.109831,1 +13,6,0,1,5,631383,1,6906.158,47.71252,1,12,1,36.53586,41.70162,0,0,1150.203,1228.44,1,0,0,4,0,6,88.8,10.3,1,61.4,450,450,0,0,1.791759,6.109248,1,4.564348,6.160541,1,0,0,61.4,8.840314,1.791759,7.113501,1 +18,6,25,0,1,631462,1,6735.316,7.000684,1,10,1,0,0,0,0,0,0,0,0,0,0,0,6,93.3,10.57626,.1442925,100,750,750,1,1,1.791759,6.620073,0,3.258096,8.006368,0,0,0,100,8.815269,1.791759,,0 +18,6,25,0,2,631462,1,6735.316,8.000685,1,10,1,0,0,0,0,0,0,0,0,0,0,0,6,93.3,10.57626,.1442925,100,750,750,1,1,1.791759,6.620073,0,3.258096,8.006368,0,0,0,100,8.815269,1.791759,,0 +18,6,25,0,3,631462,1,6735.316,9.000685,1,10,1,0,0,0,0,0,0,0,0,0,0,0,6,93.3,10.57626,.1442925,100,750,750,1,1,1.791759,6.620073,0,3.258096,8.006368,0,0,0,100,8.815269,1.791759,,0 +11,6,0,0,1,631465,1,1190.476,6.154688,1,12,1,8.336807,4.272614,0,0,0,12.60942,0,0,0,2,0,3,100,10.57626,.1442925,92.6,0,329.16,1,1,1.098612,5.796544,0,0,0,1,0,0,92.6,7.082948,1.098612,2.534444,1 +11,6,0,0,2,631465,1,1190.476,7.154688,1,12,1,7.501875,2.674419,0,0,0,10.17629,0,0,0,2,0,3,100,10.57626,.1442925,92.6,0,329.16,1,1,1.098612,5.796544,0,0,0,1,0,0,92.6,7.082948,1.098612,2.320061,1 +11,6,0,0,3,631465,1,1190.476,8.154689,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,100,10.57626,.1442925,92.6,0,329.16,1,1,1.098612,5.796544,0,0,0,1,0,0,92.6,7.082948,1.098612,,0 +11,6,0,0,1,631466,1,3690.22,7.520876,0,9,1,10.00417,3.463943,0,0,0,13.46811,0,0,0,2,0,6,100,10.57626,.1442925,64.8,0,0,1,0,1.791759,0,0,0,0,0,0,0,64.8,8.213713,1.791759,2.600325,1 +11,6,0,0,2,631466,1,3690.22,8.520876,0,9,1,22.88072,8.210803,0,0,0,31.09152,0,0,0,1,0,6,100,10.57626,.1442925,64.8,0,0,1,0,1.791759,0,0,0,0,0,0,0,64.8,8.213713,1.791759,3.436935,1 +11,6,0,0,3,631466,1,3690.22,9.520876,0,9,1,15.89987,4.008796,0,0,0,19.90866,0,0,0,0,0,6,100,10.57626,.1442925,64.8,0,0,1,0,1.791759,0,0,0,0,0,0,0,64.8,8.213713,1.791759,2.991155,1 +11,6,0,0,1,631468,1,6735.316,10.94045,1,0,1,0,0,0,0,0,0,0,0,0,0,0,9,90,10.57626,.1442925,77.8,0,0,1,1,2.197225,0,0,0,0,0,0,0,77.8,8.815269,2.197225,,0 +11,6,0,0,2,631468,1,6735.316,11.94045,1,0,1,0,0,0,0,0,0,0,0,0,0,0,9,90,10.57626,.1442925,77.8,0,0,1,1,2.197225,0,0,0,0,0,0,0,77.8,8.815269,2.197225,,0 +11,6,0,0,3,631468,1,6735.316,12.94045,1,0,1,0,0,0,0,0,0,0,0,0,0,0,9,90,10.57626,.1442925,77.8,0,0,1,1,2.197225,0,0,0,0,0,0,0,77.8,8.815269,2.197225,,0 +11,6,0,0,1,631469,.5112414,6735.316,8.906229,1,7,1,0,0,0,0,0,0,0,0,0,0,0,4,91.7,10.57626,.1442925,81.5,0,0,1,1,1.386294,0,0,0,0,0,0,0,81.5,8.815269,1.386294,,0 +11,6,0,0,2,631469,.5112414,6735.316,9.906229,1,7,1,0,0,0,0,0,0,0,0,0,0,0,4,91.7,10.57626,.1442925,81.5,0,0,1,1,1.386294,0,0,0,0,0,0,0,81.5,8.815269,1.386294,,0 +11,6,0,0,3,631469,.5112414,6735.316,10.90623,1,7,1,0,0,0,0,0,0,0,0,0,0,0,4,91.7,10.57626,.1442925,81.5,0,0,1,1,1.386294,0,0,0,0,0,0,0,81.5,8.815269,1.386294,,0 +11,6,0,0,1,631472,1,6735.316,8.479124,1,12,1,0,0,0,0,0,0,0,0,0,0,0,10,90,10.57626,0,70.4,0,0,1,1,2.302585,0,0,0,0,1,0,0,70.4,8.815269,2.302585,,0 +11,6,0,0,2,631472,1,6735.316,9.479124,1,12,1,0,0,0,0,0,0,0,0,0,0,0,9,90,10.57626,0,70.4,0,0,1,1,2.197225,0,0,0,0,1,0,0,70.4,8.815269,2.197225,,0 +11,6,0,0,3,631472,1,6735.316,10.47912,1,12,1,0,0,0,0,0,0,0,0,0,0,0,9,90,10.57626,0,70.4,0,0,1,1,2.197225,0,0,0,0,1,0,0,70.4,8.815269,2.197225,,0 +11,6,0,0,4,631472,1,6735.316,11.47912,1,12,1,0,0,0,0,0,0,0,0,0,0,0,9,90,10.57626,0,70.4,0,0,1,1,2.197225,0,0,0,0,1,0,0,70.4,8.815269,2.197225,,0 +11,6,0,0,5,631472,1,6735.316,12.47912,1,12,1,8.304499,0,0,0,0,8.304499,0,0,0,1,0,9,90,10.57626,0,70.4,0,0,1,1,2.197225,0,0,0,0,1,0,0,70.4,8.815269,2.197225,2.116797,1 +11,6,0,0,1,631473,1,6735.316,5.812457,0,12,1,0,2.982544,0,0,0,2.982544,0,0,0,0,0,10,88.3,10.57626,0,70.4,0,0,1,0,2.302585,0,0,0,0,1,0,0,70.4,8.815269,2.302585,1.092777,1 +11,6,0,0,2,631473,1,6735.316,6.812457,0,12,1,6.915629,3.499308,0,0,0,10.41494,0,0,0,1,0,9,88.3,10.57626,0,70.4,0,0,1,0,2.197225,0,0,0,0,1,0,0,70.4,8.815269,2.197225,2.343241,1 +11,6,0,0,3,631473,1,6735.316,7.812457,0,12,1,7.617435,3.829877,0,0,0,11.44731,0,0,0,1,0,9,88.3,10.57626,0,70.4,0,0,1,0,2.197225,0,0,0,0,1,0,0,70.4,8.815269,2.197225,2.437755,1 +11,6,0,0,4,631473,1,6735.316,8.812457,0,12,1,6.454062,5.125285,0,0,0,11.57935,0,0,0,1,0,9,88.3,10.57626,0,70.4,0,0,1,0,2.197225,0,0,0,0,1,0,0,70.4,8.815269,2.197225,2.449223,1 +11,6,0,0,5,631473,1,6735.316,9.812457,0,12,1,0,0,0,0,0,0,0,0,0,0,0,9,88.3,10.57626,0,70.4,0,0,1,0,2.197225,0,0,0,0,1,0,0,70.4,8.815269,2.197225,,0 +16,6,95,1,1,631487,0,12826.42,36.22177,0,18,1,10.57977,0,0,0,0,10.57977,0,0,0,1,0,4,77.7,17.2,1,68.2,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,68.2,9.45934,1.386294,2.358944,1 +16,6,95,1,2,631487,0,12826.42,37.22177,0,18,1,34.16856,24.54442,32.64996,0,0,91.36295,0,0,0,2,1,4,77.7,17.2,1,68.2,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,68.2,9.45934,1.386294,4.51484,1 +16,6,95,1,3,631487,0,12826.42,38.22177,0,18,1,5.190311,0,0,0,0,5.190311,0,0,0,1,0,4,77.7,17.2,1,68.2,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,68.2,9.45934,1.386294,1.646794,1 +11,6,0,1,1,631489,0,10837.69,2.2423,1,12,1,22.85231,2.107491,0,0,0,24.9598,0,0,0,4,0,3,77.40034,10.57626,0,74.1,0,24,1,1,1.098612,3.178054,0,0,0,0,0,0,74.1,9.290877,1.098612,3.217266,1 +11,6,0,1,2,631489,0,10837.69,3.2423,1,12,1,20.50114,4.28246,0,0,0,24.7836,0,0,0,3,0,3,77.40034,10.57626,0,74.1,0,24,1,1,1.098612,3.178054,0,0,0,0,0,0,74.1,9.290877,1.098612,3.210182,1 +11,6,0,1,3,631489,0,10837.69,4.2423,1,12,1,60.20761,28.92042,0,0,0,89.12803,0,0,0,8,0,3,77.40034,10.57626,0,74.1,0,24,1,1,1.098612,3.178054,0,0,0,0,0,0,74.1,9.290877,1.098612,4.490074,1 +11,6,0,0,1,631492,0,6219.941,.2956879,1,12,1,116.9475,19.37562,59.44995,0,0,195.773,0,0,0,11,0,4,77.40034,10.57626,0,100,0,0,1,1,1.386294,0,0,0,0,0,0,0,100,8.735677,1.386294,5.276956,1 +11,6,0,0,2,631492,0,6219.941,1.295688,1,12,1,51.85865,22.71684,33.40064,0,0,107.9761,0,0,0,7,0,4,77.40034,10.57626,0,100,0,0,1,1,1.386294,0,0,0,0,0,0,0,100,8.735677,1.386294,4.68191,1 +11,6,0,0,3,631492,0,6219.941,2.295688,1,12,1,0,19.0366,17.50105,0,0,36.53765,0,0,0,0,0,4,77.40034,10.57626,0,100,0,0,1,1,1.386294,0,0,0,0,0,0,0,100,8.735677,1.386294,3.598343,1 +11,6,0,0,4,631492,0,6219.941,3.295688,1,12,1,46.84549,7.65017,0,0,0,54.49566,0,0,0,2,0,4,77.40034,10.57626,0,100,0,0,1,1,1.386294,0,0,0,0,0,0,0,100,8.735677,1.386294,3.998121,1 +11,6,0,0,5,631492,0,6219.941,4.295688,1,12,1,17.83876,13.12178,0,0,0,30.96055,0,0,0,3,0,4,77.40034,10.57626,0,100,0,0,1,1,1.386294,0,0,0,0,0,0,0,100,8.735677,1.386294,3.432714,1 +11,6,0,1,1,631495,0,4633.431,20.39425,0,10.62774,1,49.05848,18.96432,0,0,0,68.0228,0,0,0,4,0,1,94.1,3.4,0,86.4,0,0,0,0,0,0,0,0,0,0,0,0,86.4,8.441269,0,4.219843,1 +11,6,0,1,2,631495,0,4633.431,21.39425,0,10.62774,1,73.42818,29.05461,0,0,0,102.4828,0,0,0,5,0,1,94.1,3.4,0,86.4,0,0,0,0,0,0,0,0,0,0,0,0,86.4,8.441269,0,4.629695,1 +11,6,0,1,3,631495,0,4633.431,22.39425,0,10.62774,1,78.67059,10.07573,0,0,0,88.74632,0,0,0,4,0,1,94.1,3.4,0,86.4,0,0,0,0,0,0,0,0,0,0,0,0,86.4,8.441269,0,4.485782,1 +11,6,0,1,4,631495,0,4633.431,23.39425,0,10.62774,1,421.9872,1.507367,0,0,3135.625,3559.12,1,0,0,6,14,2,94.1,3.4,0,86.4,0,0,0,0,.6931472,0,0,0,0,0,0,0,86.4,8.441269,.6931472,8.177269,1 +11,6,0,1,5,631495,0,4633.431,24.39425,0,10.62774,1,12.34991,5.622642,0,0,0,17.97256,0,0,0,0,3,1,94.1,3.4,0,86.4,0,0,0,0,0,0,0,0,0,0,0,0,86.4,8.441269,0,2.888846,1 +6,6,25,0,1,631497,1,1759.531,25.3525,1,12,1,0,0,0,0,213.0823,213.0823,1,0,0,0,0,3,75.5,6.9,0,46.6,750,0,0,0,1.098612,0,0,3.258096,8.006368,0,0,0,46.6,7.473371,1.098612,5.361678,1 +6,6,25,0,2,631497,1,1759.531,26.3525,1,12,1,19.2749,0,25.24094,0,211.5649,256.0808,1,0,0,0,1,3,75.5,6.9,0,46.6,750,0,0,0,1.098612,0,0,3.258096,8.006368,0,0,0,46.6,7.473371,1.098612,5.545493,1 +6,6,25,0,3,631497,1,1759.531,27.3525,1,12,1,16.82793,0,15.56584,0,326.4619,358.8557,1,0,0,0,1,4,75.5,6.9,0,46.6,750,0,0,0,1.386294,0,0,3.258096,8.006368,0,0,0,46.6,7.473371,1.386294,5.88292,1 +6,6,25,0,4,631497,1,1759.531,28.3525,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,75.5,6.9,0,46.6,750,0,0,0,1.609438,0,0,3.258096,8.006368,0,0,0,46.6,7.473371,1.609438,,0 +6,6,25,0,5,631497,1,1759.531,29.3525,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,75.5,6.9,0,46.6,750,0,0,0,1.609438,0,0,3.258096,8.006368,0,0,0,46.6,7.473371,1.609438,,0 +6,6,25,0,1,631498,1,1759.531,25.10335,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,79.8,0,0,63.6,750,0,0,0,1.098612,0,0,3.258096,8.006368,0,0,0,63.6,7.473371,1.098612,,0 +6,6,25,0,2,631498,1,1759.531,26.10335,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,79.8,0,0,63.6,750,0,0,0,1.098612,0,0,3.258096,8.006368,0,0,0,63.6,7.473371,1.098612,,0 +6,6,25,0,3,631498,1,1759.531,27.10335,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,79.8,0,0,63.6,750,0,0,0,1.386294,0,0,3.258096,8.006368,0,0,0,63.6,7.473371,1.386294,,0 +6,6,25,0,4,631498,1,1759.531,28.10335,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,79.8,0,0,63.6,750,0,0,0,1.609438,0,0,3.258096,8.006368,0,0,0,63.6,7.473371,1.609438,,0 +6,6,25,0,5,631498,1,1759.531,29.10335,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,79.8,0,0,63.6,750,0,0,0,1.609438,0,0,3.258096,8.006368,0,0,0,63.6,7.473371,1.609438,,0 +6,6,25,0,1,631499,1,1759.531,.7665982,0,12,1,8.424182,0,0,0,0,8.424182,0,0,0,0,0,3,77.40034,10.57626,0,85.2,750,0,1,0,1.098612,0,0,3.258096,8.006368,0,0,0,85.2,7.473371,1.098612,2.131106,1 +6,6,25,0,2,631499,1,1759.531,1.766598,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,77.40034,10.57626,0,85.2,750,0,1,0,1.098612,0,0,3.258096,8.006368,0,0,0,85.2,7.473371,1.098612,,0 +6,6,25,0,3,631499,1,1759.531,2.766598,0,12,1,8.413967,3.517038,0,0,0,11.93101,0,0,0,2,0,4,77.40034,10.57626,0,85.2,750,0,1,0,1.386294,0,0,3.258096,8.006368,0,0,0,85.2,7.473371,1.386294,2.479141,1 +6,6,25,0,4,631499,1,1759.531,3.766598,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,85.2,750,0,1,0,1.609438,0,0,3.258096,8.006368,0,0,0,85.2,7.473371,1.609438,,0 +6,6,25,0,5,631499,1,1759.531,4.766598,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,85.2,750,0,1,0,1.609438,0,0,3.258096,8.006368,0,0,0,85.2,7.473371,1.609438,,0 +11,6,0,0,1,631502,1,6735.316,17.59891,1,7,1,0,0,0,0,0,0,0,0,0,0,0,4,59,3.4,0,52.3,0,152.88,1,1,1.386294,5.029653,0,0,0,0,0,0,52.3,8.815269,1.386294,,0 +11,6,0,0,2,631502,1,6735.316,18.59891,1,7,1,0,0,0,0,0,0,0,0,0,0,0,4,59,3.4,0,52.3,0,152.88,0,0,1.386294,5.029653,0,0,0,0,0,0,52.3,8.815269,1.386294,,0 +11,6,0,0,3,631502,1,6735.316,19.59891,1,7,1,0,0,0,0,0,0,0,0,0,0,0,4,59,3.4,0,52.3,0,152.88,0,0,1.386294,5.029653,0,0,0,0,0,0,52.3,8.815269,1.386294,,0 +17,6,25,0,1,631503,0,8273.9,.5393566,1,8,1,14.8662,3.017839,0,0,0,17.88404,0,0,0,2,0,4,77.40034,10.57626,0,66.7,650,650,1,1,1.386294,6.476973,0,3.258096,7.863267,0,0,0,66.7,9.020982,1.386294,2.883909,1 +17,6,25,0,2,631503,0,8273.9,1.539357,1,8,1,19.73382,0,0,0,0,19.73382,0,0,0,0,0,4,77.40034,10.57626,0,66.7,650,650,1,1,1.386294,6.476973,0,3.258096,7.863267,0,0,0,66.7,9.020982,1.386294,2.982334,1 +17,6,25,0,3,631503,0,8273.9,2.539357,1,8,1,0,2.52419,0,0,0,2.52419,0,0,0,0,0,4,77.40034,10.57626,0,66.7,650,650,1,1,1.386294,6.476973,0,3.258096,7.863267,0,0,0,66.7,9.020982,1.386294,.9259203,1 +17,6,25,0,4,631503,0,8273.9,3.539357,1,8,1,30.22289,0,0,0,0,30.22289,0,0,0,0,0,4,77.40034,10.57626,0,66.7,650,650,1,1,1.386294,6.476973,0,3.258096,7.863267,0,0,0,66.7,9.020982,1.386294,3.4086,1 +17,6,25,0,5,631503,0,8273.9,4.539357,1,8,1,3.430532,0,0,0,0,3.430532,0,0,0,1,0,5,77.40034,10.57626,0,66.7,650,650,1,1,1.609438,6.476973,0,3.258096,7.863267,0,0,0,66.7,9.020982,1.609438,1.232715,1 +13,6,0,1,1,631504,0,6735.316,.2354552,0,12,1,25.27255,2.636274,0,0,0,27.90882,0,0,0,4,0,3,77.40034,10.57626,0,100,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,100,8.815269,1.098612,3.328943,1 +13,6,0,1,2,631504,0,6735.316,1.235455,0,12,1,42.2212,21.34007,0,0,0,63.56127,0,0,0,7,0,3,77.40034,10.57626,0,100,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,100,8.815269,1.098612,4.152004,1 +13,6,0,1,3,631504,0,6735.316,2.235455,0,12,1,77.4085,73.57173,0,0,0,150.9802,0,0,0,13,0,3,77.40034,10.57626,0,100,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,100,8.815269,1.098612,5.017149,1 +13,6,0,1,4,631504,0,6735.316,3.235455,0,12,1,71.0238,50.61579,0,0,238.3831,360.0227,1,0,0,7,0,3,77.40034,10.57626,0,100,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,100,8.815269,1.098612,5.886167,1 +13,6,0,1,5,631504,0,6735.316,4.235455,0,12,1,219.554,46.54889,0,0,0,266.1029,0,0,0,9,25,3,77.40034,10.57626,0,100,450,450,1,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,100,8.815269,1.098612,5.583883,1 +17,6,25,1,1,631505,1,4638.709,.6105407,0,11,1,20.81269,5.540139,0,0,128.3449,154.6977,1,1,0,1,0,7,77.40034,10.57626,1,59.3,426.45,426.45,1,0,1.94591,6.055495,0,3.258096,7.44179,0,0,0,59.3,8.442407,1.94591,5.041473,1 +17,6,25,1,2,631505,1,4638.709,1.610541,0,11,1,9.178522,4.703993,0,0,0,13.88251,0,0,0,0,0,7,77.40034,10.57626,1,59.3,426.45,426.45,1,0,1.94591,6.055495,0,3.258096,7.44179,0,0,0,59.3,8.442407,1.94591,2.63063,1 +17,6,25,1,3,631505,1,4638.709,2.610541,0,11,1,11.77955,0,0,0,0,11.77955,0,0,0,0,0,7,77.40034,10.57626,1,59.3,426.45,426.45,1,0,1.94591,6.055495,0,3.258096,7.44179,0,0,0,59.3,8.442407,1.94591,2.466365,1 +17,6,25,1,4,631505,1,4638.709,3.610541,0,11,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,1,59.3,426.45,426.45,1,0,1.94591,6.055495,0,3.258096,7.44179,0,0,0,59.3,8.442407,1.94591,,0 +17,6,25,1,5,631505,1,4638.709,4.610541,0,11,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,1,59.3,426.45,426.45,1,0,1.94591,6.055495,0,3.258096,7.44179,0,0,0,59.3,8.442407,1.94591,,0 +11,6,0,1,1,631517,1,3700.973,2.726899,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,77.40034,10.57626,0,66.7,0,168.4,1,1,1.791759,5.126342,0,0,0,0,0,0,66.7,8.216621,1.791759,,0 +11,6,0,1,2,631517,1,3700.973,3.726899,1,12,1,13.12828,0,0,0,0,13.12828,0,0,0,3,0,6,77.40034,10.57626,0,66.7,0,168.4,1,1,1.791759,5.126342,0,0,0,0,0,0,66.7,8.216621,1.791759,2.574769,1 +11,6,0,1,3,631517,1,3700.973,4.726899,1,12,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,0,66.7,0,168.4,1,1,1.94591,5.126342,0,0,0,0,0,0,66.7,8.216621,1.94591,,0 +11,6,0,0,1,631518,0,11577.06,42.68036,1,9,1,80.81667,104.4534,47.21395,0,0,232.4841,0,0,0,5,1,2,72.9,10.3,0,65.9,0,0,0,0,.6931472,0,0,0,0,0,0,0,65.9,9.356867,.6931472,5.448822,1 +11,6,0,0,2,631518,0,11577.06,43.68036,1,9,1,152.6718,122.6641,0,0,0,275.3359,0,0,0,8,0,2,72.9,10.3,0,65.9,0,0,0,0,.6931472,0,0,0,0,0,0,0,65.9,9.356867,.6931472,5.617992,1 +11,6,0,0,3,631518,0,11577.06,44.68036,1,9,1,214.9826,105.4669,21.60279,0,256.0976,598.1498,1,0,0,12,0,2,72.9,10.3,0,65.9,0,0,0,0,.6931472,0,0,0,0,0,0,0,65.9,9.356867,.6931472,6.393841,1 +13,6,0,1,1,631521,0,7438.3,2.652977,1,9,1,0,1.028354,0,0,0,1.028354,0,0,0,0,0,6,77.40034,10.57626,0,92.6,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,92.6,8.914532,1.791759,.0279593,1 +13,6,0,1,2,631521,0,7438.3,3.652977,1,9,1,7.593014,4.745634,0,0,0,12.33865,0,0,0,1,0,6,77.40034,10.57626,0,92.6,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,92.6,8.914532,1.791759,2.512737,1 +13,6,0,1,3,631521,0,7438.3,4.652977,1,9,1,3.806228,0,0,0,0,3.806228,0,0,0,0,0,6,77.40034,10.57626,0,92.6,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,92.6,8.914532,1.791759,1.336639,1 +11,6,0,1,1,631523,1,7187.404,2.316222,0,5,1,0,0,0,0,0,0,0,0,0,0,0,13,77.40034,10.57626,0,85.2,0,106.56,1,0,2.564949,4.668708,0,0,0,0,0,0,85.2,8.880224,2.564949,,0 +11,6,0,1,2,631523,1,7187.404,3.316222,0,5,1,0,0,0,0,0,0,0,0,0,0,0,13,77.40034,10.57626,0,85.2,0,106.56,1,0,2.564949,4.668708,0,0,0,0,0,0,85.2,8.880224,2.564949,,0 +11,6,0,1,3,631523,1,7187.404,4.316222,0,5,1,0,0,0,0,0,0,0,0,0,0,0,14,77.40034,10.57626,0,85.2,0,106.56,1,0,2.639057,4.668708,0,0,0,0,0,0,85.2,8.880224,2.639057,,0 +11,6,0,1,1,631526,1,1049.667,16.27105,0,7,1,0,0,0,0,0,0,0,0,0,0,0,2,96.3,3.4,0,76.1,0,171.6,1,0,.6931472,5.145166,0,0,0,0,0,0,76.1,6.957181,.6931472,,0 +11,6,0,1,2,631526,1,1049.667,17.27105,0,7,1,0,0,0,0,0,0,0,0,0,0,0,2,96.3,3.4,0,76.1,0,171.6,1,0,.6931472,5.145166,0,0,0,0,0,0,76.1,6.957181,.6931472,,0 +11,6,0,1,3,631526,1,1049.667,18.27105,0,7,1,13.84083,0,0,0,0,13.84083,0,0,0,1,0,2,96.3,3.4,0,76.1,0,171.6,0,0,.6931472,5.145166,0,0,0,0,0,0,76.1,6.957181,.6931472,2.627623,1 +10,6,50,1,1,631529,1,10221.2,2.034223,1,16,1,8.507018,0,0,0,0,8.507018,0,0,0,1,0,3,77.40034,10.57626,0,59.3,1000,1000,1,1,1.098612,6.907755,0,3.931826,7.600903,0,0,0,59.3,9.232317,1.098612,2.140892,1 +10,6,50,1,2,631529,1,10221.2,3.034223,1,16,1,0,0,0,0,0,0,0,0,0,0,0,3,77.40034,10.57626,0,59.3,1000,1000,1,1,1.098612,6.907755,0,3.931826,7.600903,0,0,0,59.3,9.232317,1.098612,,0 +10,6,50,1,3,631529,1,10221.2,4.034223,1,16,1,0,0,0,0,0,0,0,0,0,0,0,3,77.40034,10.57626,0,59.3,1000,1000,1,1,1.098612,6.907755,0,3.931826,7.600903,0,0,0,59.3,9.232317,1.098612,,0 +11,6,0,1,1,631531,0,14529.44,33.68925,1,12,1,186.6272,0,0,0,0,186.6272,0,0,0,5,0,4,54.3,27.6,1,45.5,0,60,0,0,1.386294,4.094345,0,0,0,0,0,0,45.5,9.584002,1.386294,5.229113,1 +11,6,0,1,2,631531,0,14529.44,34.68925,1,12,1,200.8352,0,0,0,0,200.8352,0,0,0,4,15,4,54.3,27.6,1,45.5,0,60,0,0,1.386294,4.094345,0,0,0,0,0,0,45.5,9.584002,1.386294,5.302485,1 +11,6,0,1,3,631531,0,14529.44,35.68925,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,54.3,27.6,1,45.5,0,60,0,0,1.386294,4.094345,0,0,0,0,0,0,45.5,9.584002,1.386294,,0 +11,6,0,1,1,631532,0,14529.44,12.13689,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,83.3,10.57626,0,81.5,0,60,1,1,1.386294,4.094345,0,0,0,0,0,0,81.5,9.584002,1.386294,,0 +11,6,0,1,2,631532,0,14529.44,13.13689,1,12,1,11.76917,0,0,0,0,11.76917,0,0,0,1,0,4,83.3,10.57626,0,81.5,0,60,1,1,1.386294,4.094345,0,0,0,0,0,0,81.5,9.584002,1.386294,2.465484,1 +11,6,0,1,3,631532,0,14529.44,14.13689,1,12,1,4.152249,0,0,0,0,4.152249,0,0,0,1,0,4,83.3,10.57626,0,81.5,0,60,1,1,1.386294,4.094345,0,0,0,0,0,0,81.5,9.584002,1.386294,1.42365,1 +11,6,0,1,1,631533,0,14529.44,10.39562,0,12,1,72.36564,0,0,0,368.5992,440.9649,1,0,0,3,0,4,66.7,10.57626,0,81.5,0,60,1,0,1.386294,4.094345,0,0,0,0,0,0,81.5,9.584002,1.386294,6.088965,1 +11,6,0,1,2,631533,0,14529.44,11.39562,0,12,1,128.7016,0,13.28778,0,0,141.9894,0,0,0,2,13,4,66.7,10.57626,0,81.5,0,60,1,0,1.386294,4.094345,0,0,0,0,0,0,81.5,9.584002,1.386294,4.955752,1 +11,6,0,1,3,631533,0,14529.44,12.39562,0,12,1,32.17993,5.103806,0,0,0,37.28374,0,0,0,4,0,4,66.7,10.57626,0,81.5,0,60,1,0,1.386294,4.094345,0,0,0,0,0,0,81.5,9.584002,1.386294,3.618557,1 +11,6,0,0,1,631536,.5112414,6247.824,60.87885,1,12,1,41.8959,5.471858,0,0,0,47.36775,0,0,0,3,0,2,89.9,20.7,0,84.1,0,86.4,0,0,.6931472,4.458988,0,0,0,0,0,0,84.1,8.740149,.6931472,3.857942,1 +11,6,0,0,2,631536,.5112414,6247.824,61.87885,1,12,1,29.2331,9.635535,41.76158,0,0,80.63022,0,0,0,3,1,2,89.9,20.7,0,84.1,0,86.4,0,0,.6931472,4.458988,0,0,0,0,0,0,84.1,8.740149,.6931472,4.389874,1 +11,6,0,0,3,631536,.5112414,6247.824,62.87885,1,12,1,23.18339,4.84083,0,0,0,28.02422,0,0,0,5,0,2,89.9,20.7,0,84.1,0,86.4,0,0,.6931472,4.458988,0,0,0,0,0,0,84.1,8.740149,.6931472,3.333069,1 +11,6,0,0,1,631537,.5112414,6247.824,17.21561,0,12,1,101.1426,0,0,0,0,101.1426,0,0,0,4,0,2,84.6,10.3,0,79.5,0,86.4,1,0,.6931472,4.458988,0,0,0,0,0,0,79.5,8.740149,.6931472,4.616531,1 +11,6,0,0,2,631537,.5112414,6247.824,18.21561,0,12,1,26.57555,6.58694,0,0,0,33.16249,0,0,0,4,0,2,84.6,10.3,0,79.5,0,86.4,0,0,.6931472,4.458988,0,0,0,0,0,0,79.5,8.740149,.6931472,3.50142,1 +11,6,0,0,3,631537,.5112414,6247.824,19.21561,0,12,1,14.53287,0,0,0,0,14.53287,0,0,0,2,0,2,84.6,10.3,0,79.5,0,86.4,0,0,.6931472,4.458988,0,0,0,0,0,0,79.5,8.740149,.6931472,2.676413,1 +11,6,0,0,1,631540,.5112414,6735.316,2.340863,1,7,1,30.0125,4.376824,0,0,0,34.38933,0,0,0,3,0,4,77.40034,10.57626,.1442925,,0,0,1,1,1.386294,0,0,0,0,0,0,0,70.68995,8.815269,1.386294,3.537746,1 +11,6,0,0,2,631540,.5112414,6735.316,3.340863,1,7,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,.1442925,,0,0,1,1,1.386294,0,0,0,0,0,0,0,70.68995,8.815269,1.386294,,0 +11,6,0,0,3,631540,.5112414,6735.316,4.340862,1,7,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,.1442925,,0,0,1,1,1.386294,0,0,0,0,0,0,0,70.68995,8.815269,1.386294,,0 +17,6,25,0,1,631561,0,7391.193,17.88912,1,16,1,25.2419,1.682793,35.1788,0,0,62.10349,0,0,0,2,0,5,72.3,13.8,0,80.7,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,80.7,8.908179,1.609438,4.128802,1 +17,6,25,0,2,631561,0,7391.193,18.88912,1,16,1,0,0,0,0,0,0,0,0,0,0,0,5,72.3,13.8,0,80.7,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,80.7,8.908179,1.609438,,0 +17,6,25,0,3,631561,0,7391.193,19.88912,1,16,1,0,0,38.5283,0,0,38.5283,0,0,0,0,0,5,72.3,13.8,0,80.7,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,80.7,8.908179,1.609438,3.651393,1 +17,6,25,0,1,631562,0,7391.193,12.28747,0,16,1,56.37358,6.205301,0,0,301.83,364.4089,1,0,0,1,0,5,80,10.57626,0,88.9,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,88.9,8.908179,1.609438,5.898277,1 +17,6,25,0,2,631562,0,7391.193,13.28747,0,16,1,142.0476,0,0,0,0,142.0476,0,0,0,2,0,5,80,10.57626,0,88.9,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,88.9,8.908179,1.609438,4.956162,1 +17,6,25,0,3,631562,0,7391.193,14.28747,0,16,1,0,3.413379,0,0,0,3.413379,0,0,0,0,0,5,80,10.57626,0,88.9,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,88.9,8.908179,1.609438,1.227703,1 +17,6,25,0,1,631563,0,7391.193,41.41547,0,15,1,135.0442,0,0,0,0,135.0442,0,0,0,3,0,5,86.2,0,0,97.7,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,97.7,8.908179,1.609438,4.905602,1 +17,6,25,0,2,631563,0,7391.193,42.41547,0,15,1,0,7.347941,0,0,0,7.347941,0,0,0,0,0,5,86.2,0,0,97.7,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,97.7,8.908179,1.609438,1.99442,1 +17,6,25,0,3,631563,0,7391.193,43.41547,0,15,1,73.41338,11.73242,0,0,0,85.1458,0,0,0,6,0,5,86.2,0,0,97.7,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,97.7,8.908179,1.609438,4.444365,1 +17,6,25,0,1,631564,0,7391.193,38.58727,1,16,1,45.01472,41.12326,36.86159,0,0,122.9996,0,0,0,5,0,5,65.4,24.1,0,61.4,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,61.4,8.908179,1.609438,4.812181,1 +17,6,25,0,2,631564,0,7391.193,39.58727,1,16,1,25.31167,11.37136,0,0,0,36.68304,0,0,0,3,0,5,65.4,24.1,0,61.4,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,61.4,8.908179,1.609438,3.602314,1 +17,6,25,0,3,631564,0,7391.193,40.58727,1,16,1,83.36192,19.60549,48.02744,0,0,150.9949,0,0,0,2,1,5,65.4,24.1,0,61.4,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,61.4,8.908179,1.609438,5.017246,1 +17,6,25,0,1,631565,0,7391.193,16.39973,1,16,1,0,7.623055,0,0,0,7.623055,0,0,0,0,0,5,72.3,10.3,0,75,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,75,8.908179,1.609438,2.031177,1 +17,6,25,0,2,631565,0,7391.193,17.39973,1,16,1,13.22252,9.236872,0,0,0,22.45939,0,0,0,1,0,5,72.3,10.3,0,75,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,75,8.908179,1.609438,3.111709,1 +17,6,25,0,3,631565,0,7391.193,18.39973,1,16,1,0,3.773585,0,0,0,3.773585,0,0,0,0,0,5,72.3,10.3,0,75,750,750,0,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,75,8.908179,1.609438,1.328025,1 +19,6,25,0,1,631567,0,5479.263,11.27173,0,12,1,13.9653,0,0,0,0,13.9653,0,0,0,0,0,6,75,10.57626,0,81.5,696.3,884,1,0,1.791759,6.784457,0,3.258096,7.932075,0,0,0,81.5,8.608909,1.791759,2.636576,1 +19,6,25,0,2,631567,0,5479.263,12.27173,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,75,10.57626,0,81.5,696.3,884,1,0,1.791759,6.784457,0,3.258096,7.932075,0,0,0,81.5,8.608909,1.791759,,0 +19,6,25,0,3,631567,0,5479.263,13.27173,0,12,1,70.93426,0,0,0,0,70.93426,0,0,0,1,0,8,75,10.57626,0,81.5,696.3,884,1,0,2.079442,6.784457,0,3.258096,7.932075,0,0,0,81.5,8.608909,2.079442,4.261754,1 +19,6,25,0,1,631569,0,5479.263,16.39425,1,12,1,41.04951,0,0,0,0,41.04951,0,0,0,3,0,6,41.5,10.3,1,45.5,696.3,884,1,1,1.791759,6.784457,0,3.258096,7.932075,0,0,0,45.5,8.608909,1.791759,3.714779,1 +19,6,25,0,2,631569,0,5479.263,17.39425,1,12,1,52.01215,1.932422,30.75171,0,0,84.69628,0,0,0,1,1,6,41.5,10.3,1,45.5,696.3,884,1,1,1.791759,6.784457,0,3.258096,7.932075,0,0,0,45.5,8.608909,1.791759,4.439072,1 +19,6,25,0,3,631569,0,5479.263,18.39425,1,12,1,26.6436,0,0,0,0,26.6436,0,0,0,2,0,8,41.5,10.3,1,45.5,696.3,884,0,0,2.079442,6.784457,0,3.258096,7.932075,0,0,0,45.5,8.608909,2.079442,3.282549,1 +19,6,25,0,1,631570,0,5479.263,17.92471,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,75,3.4,0,76.1,696.3,884,1,0,1.791759,6.784457,0,3.258096,7.932075,1,0,0,76.1,8.608909,1.791759,,0 +19,6,25,0,2,631570,0,5479.263,18.92471,0,12,1,6.454062,1.719818,0,0,0,8.17388,0,0,0,1,0,6,75,3.4,0,76.1,696.3,884,0,0,1.791759,6.784457,0,3.258096,7.932075,1,0,0,76.1,8.608909,1.791759,2.100944,1 +19,6,25,0,3,631570,0,5479.263,19.92471,0,12,1,0,0,0,0,0,0,0,0,0,0,0,8,75,3.4,0,76.1,696.3,884,0,0,2.079442,6.784457,0,3.258096,7.932075,1,0,0,76.1,8.608909,2.079442,,0 +19,6,25,0,1,631571,0,5479.263,39.42231,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,58,10.3,0,63.6,696.3,884,0,0,1.791759,6.784457,0,3.258096,7.932075,1,0,0,63.6,8.608909,1.791759,,0 +19,6,25,0,2,631571,0,5479.263,40.42231,1,12,1,7.593014,6.753986,0,0,2041.002,2055.349,3,1,0,0,0,6,58,10.3,0,63.6,696.3,884,0,0,1.791759,6.784457,0,3.258096,7.932075,1,0,0,63.6,8.608909,1.791759,7.628201,1 +19,6,25,0,3,631571,0,5479.263,41.42231,1,12,1,13.84083,4.065744,0,0,0,17.90657,0,0,0,1,0,8,58,10.3,0,63.6,696.3,884,0,0,2.079442,6.784457,0,3.258096,7.932075,1,0,0,63.6,8.608909,2.079442,2.885168,1 +19,6,25,0,1,631572,0,5479.263,8.109514,1,12,1,117.2239,0,0,0,0,117.2239,0,0,0,1,0,6,76.7,10.57626,0,81.5,696.3,884,1,1,1.791759,6.784457,0,3.258096,7.932075,0,0,0,81.5,8.608909,1.791759,4.764085,1 +19,6,25,0,2,631572,0,5479.263,9.109514,1,12,1,25.05695,0,3.796507,0,0,28.85345,0,0,0,2,0,6,76.7,10.57626,0,81.5,696.3,884,1,1,1.791759,6.784457,0,3.258096,7.932075,0,0,0,81.5,8.608909,1.791759,3.36223,1 +19,6,25,0,3,631572,0,5479.263,10.10951,1,12,1,28.02768,3.280277,0,0,0,31.30796,0,0,0,2,0,8,76.7,10.57626,0,81.5,696.3,884,1,1,2.079442,6.784457,0,3.258096,7.932075,0,0,0,81.5,8.608909,2.079442,3.443872,1 +19,6,25,0,1,631573,0,5479.263,13.40726,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,70,10.57626,0,63,696.3,884,1,1,1.791759,6.784457,0,3.258096,7.932075,0,0,0,63,8.608909,1.791759,,0 +19,6,25,0,2,631573,0,5479.263,14.40726,1,12,1,30.75171,24.04328,0,0,1713.743,1768.538,1,0,0,1,0,6,70,10.57626,0,63,696.3,884,1,1,1.791759,6.784457,0,3.258096,7.932075,0,0,0,63,8.608909,1.791759,7.477909,1 +19,6,25,0,3,631573,0,5479.263,15.40726,1,12,1,85.12111,15.79931,0,0,0,100.9204,0,0,0,6,0,8,70,10.57626,0,63,696.3,884,1,1,2.079442,6.784457,0,3.258096,7.932075,0,0,0,63,8.608909,2.079442,4.614332,1 +13,6,0,1,1,631598,1,6735.316,25.53046,0,12,1,0,0,0,0,0,0,0,0,0,0,0,3,88.5,0,0,81.8,450,150,0,0,1.098612,5.010635,1,4.564348,6.160541,0,0,0,81.8,8.815269,1.098612,,0 +13,6,0,1,2,631598,1,6735.316,26.53046,0,12,1,51.75671,0,0,0,0,51.75671,0,0,0,0,0,3,88.5,0,0,81.8,450,150,0,0,1.098612,5.010635,1,4.564348,6.160541,0,0,0,81.8,8.815269,1.098612,3.946554,1 +13,6,0,1,3,631598,1,6735.316,27.53046,0,12,1,23.32762,0,0,0,0,23.32762,0,0,0,0,0,3,88.5,0,0,81.8,450,150,0,0,1.098612,5.010635,1,4.564348,6.160541,0,0,0,81.8,8.815269,1.098612,3.149638,1 +7,6,25,1,1,631600,1,4681.525,.4791239,1,11,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,0,88.9,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,0,0,0,88.9,8.451592,1.386294,,0 +7,6,25,1,2,631600,1,4681.525,1.479124,1,11,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,0,88.9,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,0,0,0,88.9,8.451592,1.386294,,0 +7,6,25,1,3,631600,1,4681.525,2.479124,1,11,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,0,88.9,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,0,0,0,88.9,8.451592,1.386294,,0 +7,6,25,1,4,631600,1,4681.525,3.479124,1,11,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,0,88.9,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,0,0,0,88.9,8.451592,1.386294,,0 +7,6,25,1,5,631600,1,4681.525,4.479124,1,11,1,12.17862,4.364006,0,0,0,16.54263,0,0,0,0,0,4,77.40034,10.57626,0,88.9,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,0,0,0,88.9,8.451592,1.386294,2.80594,1 +13,6,0,1,1,631601,1,4247.507,.4599589,1,3,1,4.914005,2.579853,0,0,0,7.493857,0,0,0,1,0,7,77.40034,10.57626,0,77.8,450,450,1,1,1.94591,6.109248,1,4.564348,6.160541,0,0,0,77.8,8.354323,1.94591,2.014084,1 +13,6,0,1,2,631601,1,4247.507,1.459959,1,3,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,0,77.8,450,450,1,1,1.94591,6.109248,1,4.564348,6.160541,0,0,0,77.8,8.354323,1.94591,,0 +13,6,0,1,3,631601,1,4247.507,2.459959,1,3,1,20.84202,0,0,0,0,20.84202,0,0,0,0,0,7,77.40034,10.57626,0,77.8,450,450,1,1,1.94591,6.109248,1,4.564348,6.160541,0,0,0,77.8,8.354323,1.94591,3.036971,1 +13,6,0,1,4,631601,1,4247.507,3.459959,1,3,1,10.50263,0,0,0,0,10.50263,0,0,0,0,0,7,77.40034,10.57626,0,77.8,450,450,1,1,1.94591,6.109248,1,4.564348,6.160541,0,0,0,77.8,8.354323,1.94591,2.351625,1 +13,6,0,1,5,631601,1,4247.507,4.459959,1,3,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,0,77.8,450,450,1,1,1.94591,6.109248,1,4.564348,6.160541,0,0,0,77.8,8.354323,1.94591,,0 +13,6,0,1,1,631602,1,4247.507,56.78302,0,5,1,0,0,0,0,0,0,0,0,0,0,0,7,84,10.3,1,59.1,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,59.1,8.354323,1.94591,,0 +13,6,0,1,2,631602,1,4247.507,57.78302,0,5,1,0,0,0,0,0,0,0,0,0,0,0,7,84,10.3,1,59.1,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,59.1,8.354323,1.94591,,0 +13,6,0,1,3,631602,1,4247.507,58.78302,0,5,1,0,0,0,0,0,0,0,0,0,0,0,7,84,10.3,1,59.1,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,59.1,8.354323,1.94591,,0 +13,6,0,1,4,631602,1,4247.507,59.78302,0,5,1,0,0,0,0,0,0,0,0,0,0,0,7,84,10.3,1,59.1,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,59.1,8.354323,1.94591,,0 +13,6,0,1,5,631602,1,4247.507,60.78302,0,5,.9835616,68.33559,10.62585,0,0,8533.153,8612.114,4,0,0,4,0,7,84,10.3,1,59.1,450,450,0,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,59.1,8.354323,1.94591,9.060925,1 +13,6,0,1,1,631603,1,0,2.121834,0,9,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,88.9,450,0,1,0,1.609438,0,1,4.564348,6.160541,0,0,0,88.9,0,1.609438,,0 +13,6,0,1,2,631603,1,0,3.121834,0,9,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,88.9,450,0,1,0,1.609438,0,1,4.564348,6.160541,0,0,0,88.9,0,1.609438,,0 +13,6,0,1,3,631603,1,0,4.121834,0,9,1,63.41463,1.376307,0,0,0,64.79094,0,0,0,1,0,5,77.40034,10.57626,0,88.9,450,0,1,0,1.609438,0,1,4.564348,6.160541,0,0,0,88.9,0,1.609438,4.171166,1 +13,6,0,1,1,631604,1,0,2.121834,0,9,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,85.2,450,0,1,0,1.609438,0,1,4.564348,6.160541,0,0,0,85.2,0,1.609438,,0 +13,6,0,1,2,631604,1,0,3.121834,0,9,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,85.2,450,0,1,0,1.609438,0,1,4.564348,6.160541,0,0,0,85.2,0,1.609438,,0 +13,6,0,1,3,631604,1,0,4.121834,0,9,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,85.2,450,0,1,0,1.609438,0,1,4.564348,6.160541,0,0,0,85.2,0,1.609438,,0 +10,6,50,1,1,631610,1,5414.076,.1916496,0,11,1,15.72482,4.299754,0,0,0,20.02457,0,0,0,3,0,5,77.40034,10.57626,0,74.1,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,74.1,8.596942,1.609438,2.99696,1 +10,6,50,1,2,631610,1,5414.076,1.19165,0,11,1,10.93892,8.090246,0,0,0,19.02917,0,0,0,2,0,5,77.40034,10.57626,0,74.1,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,74.1,8.596942,1.609438,2.945973,1 +10,6,50,1,3,631610,1,5414.076,2.191649,0,11,1,18.34097,3.126303,0,0,0,21.46728,0,0,0,2,0,5,77.40034,10.57626,0,74.1,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,74.1,8.596942,1.609438,3.06653,1 +10,6,50,1,4,631610,1,5414.076,3.191649,0,11,1,4.501125,0,0,0,0,4.501125,0,0,0,1,0,5,77.40034,10.57626,0,74.1,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,74.1,8.596942,1.609438,1.504327,1 +10,6,50,1,5,631610,1,5414.076,4.191649,0,11,1,9.133965,1.860622,0,0,0,10.99459,0,0,0,2,0,5,77.40034,10.57626,0,74.1,1000,1000,1,0,1.609438,6.907755,0,3.931826,7.600903,0,0,0,74.1,8.596942,1.609438,2.397403,1 +13,6,0,1,1,631613,1,6906.158,.7282683,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,77.40034,10.57626,0,96.3,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,96.3,8.840314,1.791759,,0 +13,6,0,1,2,631613,1,6906.158,1.728268,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,77.40034,10.57626,0,96.3,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,96.3,8.840314,1.791759,,0 +13,6,0,1,3,631613,1,6906.158,2.728268,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,77.40034,10.57626,0,96.3,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,96.3,8.840314,1.791759,,0 +13,6,0,1,4,631613,1,6906.158,3.728268,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,77.40034,10.57626,0,96.3,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,96.3,8.840314,1.791759,,0 +13,6,0,1,5,631613,1,6906.158,4.728268,1,12,1,0,0,0,0,0,0,0,0,0,0,0,6,77.40034,10.57626,0,96.3,450,450,1,1,1.791759,6.109248,1,4.564348,6.160541,0,0,0,96.3,8.840314,1.791759,,0 +13,6,0,1,1,631616,0,2938.856,19.41684,0,12,1,57.98526,0,0,0,0,57.98526,0,0,0,4,1,1,56.4,6.9,0,55.7,150,0,0,0,0,0,1,4.564348,5.061929,0,0,0,55.7,7.986116,0,4.060189,1 +13,6,0,1,2,631616,0,2938.856,20.41684,0,12,1,0,0,29.38924,0,0,29.38924,0,0,0,0,0,1,56.4,6.9,0,55.7,150,0,0,0,0,0,1,4.564348,5.061929,0,0,0,55.7,7.986116,0,3.380629,1 +13,6,0,1,3,631616,0,2938.856,21.41684,0,12,1,31.67987,0,11.25469,0,0,42.93456,0,0,0,0,1,1,56.4,6.9,0,55.7,150,0,0,0,0,0,1,4.564348,5.061929,0,0,0,55.7,7.986116,0,3.759677,1 +13,6,0,1,4,631616,0,2938.856,22.41684,0,12,1,0,0,10.53263,0,0,10.53263,0,0,0,0,0,1,56.4,6.9,0,55.7,150,0,0,0,0,0,1,4.564348,5.061929,0,0,0,55.7,7.986116,0,2.354478,1 +13,6,0,1,5,631616,0,2938.856,23.41684,0,12,1,24.35724,0,0,0,0,24.35724,0,0,0,1,0,1,56.4,6.9,0,55.7,150,0,0,0,0,0,1,4.564348,5.061929,0,0,0,55.7,7.986116,0,3.192829,1 +11,6,0,1,1,631617,1,10933.14,5.645448,0,7,1,0,2.810811,0,0,0,2.810811,0,0,0,0,0,4,77.40034,10.57626,.1442925,,0,424.32,1,0,1.386294,6.050488,0,0,0,0,0,0,70.68995,9.299645,1.386294,1.033473,1 +11,6,0,1,2,631617,1,10933.14,6.645448,0,7,1,0,0,0,0,0,0,0,0,0,0,0,6,77.40034,10.57626,.1442925,,0,424.32,1,0,1.791759,6.050488,0,0,0,0,0,0,70.68995,9.299645,1.791759,,0 +11,6,0,1,3,631617,1,10933.14,7.645448,0,7,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,.1442925,,0,424.32,1,0,1.94591,6.050488,0,0,0,0,0,0,70.68995,9.299645,1.94591,,0 +11,6,0,1,4,631617,1,10933.14,8.645449,0,7,1,0,0,0,0,0,0,0,0,0,0,0,8,77.40034,10.57626,.1442925,,0,424.32,1,0,2.079442,6.050488,0,0,0,0,0,0,70.68995,9.299645,2.079442,,0 +11,6,0,1,5,631617,1,10933.14,9.645449,0,7,1,0,0,0,0,0,0,0,0,0,0,0,8,77.40034,10.57626,.1442925,,0,424.32,1,0,2.079442,6.050488,0,0,0,0,0,0,70.68995,9.299645,2.079442,,0 +11,6,0,1,1,631618,1,10933.14,24.20534,1,11,1,0,0,0,0,332.6781,332.6781,1,0,0,0,0,4,77.40034,20.7,.1442925,,0,424.32,0,0,1.386294,6.050488,0,0,0,0,0,0,70.68995,9.299645,1.386294,5.807176,1 +11,6,0,1,2,631618,1,10933.14,25.20534,1,11,1,8.204193,11.45852,0,0,353.2361,372.8988,1,0,0,0,0,6,77.40034,20.7,.1442925,,0,424.32,0,0,1.791759,6.050488,0,0,0,0,0,0,70.68995,9.299645,1.791759,5.921307,1 +11,6,0,1,3,631618,1,10933.14,26.20534,1,11,1,8.336807,9.012089,0,0,535.6398,552.9888,1,0,0,0,0,7,77.40034,20.7,.1442925,,0,424.32,0,0,1.94591,6.050488,0,0,0,0,0,0,70.68995,9.299645,1.94591,6.315338,1 +11,6,0,1,4,631618,1,10933.14,27.20534,1,11,1,88.14703,3.132033,22.50563,0,0,113.7847,0,0,0,4,0,8,77.40034,20.7,.1442925,,0,424.32,0,0,2.079442,6.050488,0,0,0,0,0,0,70.68995,9.299645,2.079442,4.734308,1 +11,6,0,1,5,631618,1,10933.14,28.20534,1,11,1,75.77808,45.53451,0,0,0,121.3126,0,0,0,9,0,8,77.40034,20.7,.1442925,,0,424.32,0,0,2.079442,6.050488,0,0,0,0,0,0,70.68995,9.299645,2.079442,4.79837,1 +13,6,0,0,1,631622,1,6735.316,2.132786,1,12,1,29.44888,0,0,0,0,29.44888,0,0,0,0,0,3,77.40034,10.57626,.1442925,,450,150,1,1,1.098612,5.010635,1,4.564348,6.160541,0,0,0,70.68995,8.815269,1.098612,3.382656,1 +13,6,0,0,2,631622,1,6735.316,3.132786,1,12,1,11.33358,0,0,0,0,11.33358,0,0,0,0,0,3,77.40034,10.57626,.1442925,,450,150,1,1,1.098612,5.010635,1,4.564348,6.160541,0,0,0,70.68995,8.815269,1.098612,2.42777,1 +13,6,0,0,3,631622,1,6735.316,4.132786,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,77.40034,10.57626,.1442925,,450,150,1,1,1.098612,5.010635,1,4.564348,6.160541,0,0,0,70.68995,8.815269,1.098612,,0 +11,6,0,1,1,631623,.5112414,6735.316,24.83504,1,12,1,24.67035,24.15142,40.83369,0,0,89.65546,0,0,0,1,1,3,76.1,13.8,0,73.9,0,0,0,0,1.098612,0,0,0,0,0,0,0,73.9,8.815269,1.098612,4.495974,1 +11,6,0,1,2,631623,.5112414,6735.316,25.83504,1,12,1,17.17557,51.79008,0,0,449.6183,518.584,1,0,0,1,0,3,76.1,13.8,0,73.9,0,0,0,0,1.098612,0,0,0,0,0,0,0,73.9,8.815269,1.098612,6.251102,1 +11,6,0,1,3,631623,.5112414,6735.316,26.83504,1,12,1,137.9791,96.85017,33.44948,0,0,268.2787,0,0,0,13,1,4,76.1,13.8,0,73.9,0,0,0,0,1.386294,0,0,0,0,0,0,0,73.9,8.815269,1.386294,5.592027,1 +11,6,0,1,1,631624,.5112414,6735.316,23.16222,0,8,1,11.48448,3.721821,0,0,0,15.2063,0,0,0,0,0,3,83,0,0,73.9,0,0,0,0,1.098612,0,0,0,0,0,0,0,73.9,8.815269,1.098612,2.721709,1 +11,6,0,1,2,631624,.5112414,6735.316,24.16222,0,8,1,10.68702,1.866412,0,0,0,12.55344,0,0,0,0,0,3,83,0,0,73.9,0,0,0,0,1.098612,0,0,0,0,0,0,0,73.9,8.815269,1.098612,2.529994,1 +11,6,0,1,3,631624,.5112414,6735.316,25.16222,0,8,1,13.93728,5.383275,0,0,0,19.32056,0,0,0,2,0,4,83,0,0,73.9,0,0,0,0,1.386294,0,0,0,0,0,0,0,73.9,8.815269,1.386294,2.96117,1 +11,6,0,1,1,631625,.5112414,6735.316,4.692676,1,12,1,19.14079,5.6359,0,0,0,24.77669,0,0,0,3,0,3,77.40034,10.57626,0,88.9,0,0,1,1,1.098612,0,0,0,0,0,0,0,88.9,8.815269,1.098612,3.209903,1 +11,6,0,1,2,631625,.5112414,6735.316,5.692676,1,12,1,51.52672,20.69466,24.80916,0,0,97.03053,0,0,0,9,1,3,77.40034,10.57626,0,88.9,0,0,1,1,1.098612,0,0,0,0,0,0,0,88.9,8.815269,1.098612,4.575026,1 +11,6,0,1,3,631625,.5112414,6735.316,6.692676,1,12,1,43.90244,10.14634,10.45296,0,0,64.50174,0,0,0,6,1,4,77.40034,10.57626,0,88.9,0,0,1,1,1.386294,0,0,0,0,0,0,0,88.9,8.815269,1.386294,4.166692,1 +11,6,0,1,1,631626,.5112414,0,.2710472,0,11,1,40.63429,11.49653,0,0,0,52.13082,0,0,0,3,0,2,77.40034,10.57626,0,100,0,0,1,0,.6931472,0,0,0,0,0,0,0,100,0,.6931472,3.953756,1 +11,6,0,1,2,631626,.5112414,0,1.271047,0,11,1,27.99449,15.48876,0,0,0,43.48325,0,0,0,4,0,2,77.40034,10.57626,0,100,0,0,1,0,.6931472,0,0,0,0,0,0,0,100,0,.6931472,3.772376,1 +11,6,0,1,3,631626,.5112414,0,2.271047,0,11,1,32.39377,11.04333,0,0,0,43.43711,0,0,0,4,0,2,77.40034,10.57626,0,100,0,0,1,0,.6931472,0,0,0,0,0,0,0,100,0,.6931472,3.771314,1 +11,6,0,1,4,631626,.5112414,0,3.271047,0,11,1,0,0,0,0,0,0,0,0,0,0,0,2,77.40034,10.57626,0,100,0,0,1,0,.6931472,0,0,0,0,0,0,0,100,0,.6931472,,0 +11,6,0,1,5,631626,.5112414,0,4.271047,0,11,1,67.23842,11.25214,0,0,0,78.49056,0,0,0,5,0,2,77.40034,10.57626,0,100,0,0,1,0,.6931472,0,0,0,0,0,0,0,100,0,.6931472,4.362978,1 +7,6,25,1,1,631632,1,3338.966,2.590007,1,8,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,92.6,720,720,1,1,1.609438,6.579251,0,3.258096,7.965546,0,0,0,92.6,8.113716,1.609438,,0 +7,6,25,1,2,631632,1,3338.966,3.590007,1,8,1,7.555724,0,0,0,0,7.555724,0,0,0,1,0,5,77.40034,10.57626,0,92.6,720,720,1,1,1.609438,6.579251,0,3.258096,7.965546,0,0,0,92.6,8.113716,1.609438,2.022305,1 +7,6,25,1,3,631632,1,3338.966,4.590007,1,8,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,92.6,720,720,1,1,1.609438,6.579251,0,3.258096,7.965546,0,0,0,92.6,8.113716,1.609438,,0 +14,6,95,1,1,631633,1,0,24.67077,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,62.2,6.9,0,79.5,225,174.25,0,0,1.386294,5.160491,0,4.564348,5.467394,0,0,0,79.5,0,1.386294,,0 +14,6,95,1,2,631633,1,0,25.67077,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,62.2,6.9,0,79.5,225,174.25,0,0,1.386294,5.160491,0,4.564348,5.467394,0,0,0,79.5,0,1.386294,,0 +14,6,95,1,3,631633,1,0,26.67077,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,62.2,6.9,0,79.5,225,174.25,0,0,.6931472,5.160491,0,4.564348,5.467394,0,0,0,79.5,0,.6931472,,0 +14,6,95,1,4,631633,1,0,27.67077,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,62.2,6.9,0,79.5,225,174.25,0,0,.6931472,5.160491,0,4.564348,5.467394,0,0,0,79.5,0,.6931472,,0 +14,6,95,1,5,631633,1,0,28.67077,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,62.2,6.9,0,79.5,225,174.25,0,0,.6931472,5.160491,0,4.564348,5.467394,0,0,0,79.5,0,.6931472,,0 +11,6,0,0,2,631635,0,11349.56,.6988364,1,15,1,43.13905,28.47178,0,0,0,71.61083,0,0,0,8,0,3,77.40034,10.57626,.1442925,,0,60,1,1,1.098612,4.094345,0,0,0,0,0,0,70.68995,9.337023,1.098612,4.271246,1 +11,6,0,0,3,631635,0,11349.56,1.698836,1,15,1,10.93816,5.258729,0,0,0,16.19689,0,0,0,2,0,3,77.40034,10.57626,.1442925,,0,60,1,1,1.098612,4.094345,0,0,0,0,0,0,70.68995,9.337023,1.098612,2.784819,1 +11,6,0,0,4,631635,0,11349.56,2.698836,1,15,1,11.33358,4.004533,0,0,0,15.33812,0,0,0,2,0,3,77.40034,10.57626,.1442925,,0,60,1,1,1.098612,4.094345,0,0,0,0,0,0,70.68995,9.337023,1.098612,2.730341,1 +11,6,0,0,5,631635,0,11349.56,3.698836,1,15,1,23.32762,9.231561,0,0,0,32.55918,0,0,0,2,0,3,77.40034,10.57626,.1442925,,0,60,1,1,1.098612,4.094345,0,0,0,0,0,0,70.68995,9.337023,1.098612,3.483059,1 +16,6,95,0,1,631636,1,6735.316,2.075291,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,74.1,1000,263.18,1,1,1.609438,5.572838,0,4.564348,6.959049,0,0,0,74.1,8.815269,1.609438,,0 +16,6,95,0,2,631636,1,6735.316,3.075291,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,74.1,1000,263.18,1,1,1.609438,5.572838,0,4.564348,6.959049,0,0,0,74.1,8.815269,1.609438,,0 +16,6,95,0,3,631636,1,6735.316,4.075291,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,74.1,1000,263.18,1,1,1.609438,5.572838,0,4.564348,6.959049,0,0,0,74.1,8.815269,1.609438,,0 +11,6,0,0,1,631645,.5112414,2697.901,7.759069,1,10.62774,1,7.993269,5.363904,0,0,0,13.35717,0,0,0,1,0,2,76.7,10.57626,.1442925,74.1,0,0,1,1,.6931472,0,0,0,0,0,0,0,74.1,7.9006,.6931472,2.592054,1 +11,6,0,0,2,631645,.5112414,2697.901,8.759069,1,10.62774,1,27.20061,11.79071,0,0,0,38.99131,0,0,0,4,0,2,76.7,10.57626,.1442925,74.1,0,0,1,1,.6931472,0,0,0,0,0,0,0,74.1,7.9006,.6931472,3.663339,1 +11,6,0,0,3,631645,.5112414,2697.901,9.759069,1,10.62774,1,21.61235,4.291595,24.01372,0,0,49.91767,0,0,0,2,1,2,76.7,10.57626,.1442925,74.1,0,0,1,1,.6931472,0,0,0,0,0,0,0,74.1,7.9006,.6931472,3.910375,1 +11,6,0,0,1,631646,.5112414,2697.901,26.96235,1,10.62774,1,118.6369,34.95583,0,0,0,153.5928,0,0,0,6,0,2,58.5,13.8,1,53.4,0,0,0,0,.6931472,0,0,0,0,0,0,0,53.4,7.9006,.6931472,5.034305,1 +11,6,0,0,2,631646,.5112414,2697.901,27.96235,1,10.62774,1,56.29014,42.42916,0,0,0,98.71931,0,0,0,4,0,2,58.5,13.8,1,53.4,0,0,0,0,.6931472,0,0,0,0,0,0,0,53.4,7.9006,.6931472,4.59228,1 +11,6,0,0,3,631646,.5112414,2697.901,28.96235,1,10.62774,1,158.8336,18.18868,26.07204,0,1230.189,1443.575,1,0,0,5,1,2,58.5,13.8,1,53.4,0,0,0,0,.6931472,0,0,0,0,0,0,0,53.4,7.9006,.6931472,7.274878,1 +14,6,95,0,2,631652,1,3984.164,.9698836,1,11,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,.1442925,,294,409.6,1,1,1.609438,6.015181,0,4.564348,5.734873,0,0,0,70.68995,8.290334,1.609438,,0 +14,6,95,0,3,631652,1,3984.164,1.969884,1,11,1,10.09676,0,0,0,0,10.09676,0,0,0,0,0,6,77.40034,10.57626,.1442925,,294,409.6,1,1,1.791759,6.015181,0,4.564348,5.734873,0,0,0,70.68995,8.290334,1.791759,2.312215,1 +14,6,95,0,4,631652,1,3984.164,2.969884,1,11,1,0,0,0,0,0,0,0,0,0,0,0,6,77.40034,10.57626,.1442925,,294,409.6,1,1,1.791759,6.015181,0,4.564348,5.734873,0,0,0,70.68995,8.290334,1.791759,,0 +14,6,95,0,5,631652,1,3984.164,3.969884,1,11,1,0,0,0,0,0,0,0,0,0,0,0,6,77.40034,10.57626,.1442925,,294,409.6,1,1,1.791759,6.015181,0,4.564348,5.734873,0,0,0,70.68995,8.290334,1.791759,,0 +13,6,0,0,1,631656,1,6735.316,2.042437,1,12,1,10.00417,3.751563,0,0,0,13.75573,0,0,0,2,0,10,77.40034,10.57626,0,85.2,450,150,1,1,2.302585,5.010635,1,4.564348,6.160541,0,0,0,85.2,8.815269,2.302585,2.621456,1 +13,6,0,0,2,631656,1,6735.316,3.042437,1,12,1,0,0,0,0,0,0,0,0,0,0,0,9,77.40034,10.57626,0,85.2,450,150,1,1,2.197225,5.010635,1,4.564348,6.160541,0,0,0,85.2,8.815269,2.197225,,0 +13,6,0,0,3,631656,1,6735.316,4.042437,1,12,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,0,85.2,450,150,1,1,1.94591,5.010635,1,4.564348,6.160541,0,0,0,85.2,8.815269,1.94591,,0 +11,6,0,0,1,631657,0,9348.694,1.763176,0,12,1,170.1404,17.65206,91.21225,0,0,279.0047,0,0,0,3,28,5,77.40034,10.57626,0,85.2,0,0,1,0,1.609438,0,0,0,0,0,0,0,85.2,9.143099,1.609438,5.631228,1 +11,6,0,0,2,631657,0,9348.694,2.763176,0,12,1,24.42748,3.816794,28.58015,0,0,56.82443,0,0,0,1,0,5,77.40034,10.57626,0,85.2,0,0,1,0,1.609438,0,0,0,0,0,0,0,85.2,9.143099,1.609438,4.039966,1 +11,6,0,0,3,631657,0,9348.694,3.763176,0,12,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,0,85.2,0,0,1,0,1.609438,0,0,0,0,0,0,0,85.2,9.143099,1.609438,,0 +15,6,95,0,1,631660,1,4487.39,.054757,1,9,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,.1442925,,820,820,1,1,1.94591,6.709304,0,4.564348,6.760598,0,0,0,70.68995,8.409249,1.94591,,0 +15,6,95,0,2,631660,1,4487.39,1.054757,1,9,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,.1442925,,820,820,1,1,1.94591,6.709304,0,4.564348,6.760598,0,0,0,70.68995,8.409249,1.94591,,0 +15,6,95,0,3,631660,1,4487.39,2.054757,1,9,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,.1442925,,820,820,1,1,1.94591,6.709304,0,4.564348,6.760598,0,0,0,70.68995,8.409249,1.94591,,0 +11,6,0,0,2,631675,1,10875.66,.3675565,0,12,1,44.72107,18.29415,15.32503,0,0,78.34025,0,0,0,7,0,4,77.40034,10.57626,.1442925,,0,0,1,0,1.386294,0,0,0,0,0,0,0,70.68995,9.294374,1.386294,4.361062,1 +11,6,0,0,3,631675,1,10875.66,1.367556,0,12,1,140.0762,4.16843,34.32924,0,0,178.5739,0,0,0,3,12,6,77.40034,10.57626,.1442925,,0,0,1,0,1.791759,0,0,0,0,0,0,0,70.68995,9.294374,1.791759,5.185002,1 +11,6,0,0,4,631675,1,10875.66,2.367557,0,12,1,85.04176,5.618831,24.87472,0,0,115.5353,0,0,0,5,5,5,77.40034,10.57626,.1442925,,0,0,1,0,1.609438,0,0,0,0,0,0,0,70.68995,9.294374,1.609438,4.749576,1 +11,6,0,0,5,631675,1,10875.66,3.367557,0,12,1,46.36678,14.9827,25.91003,0,0,87.25951,0,0,0,4,0,5,77.40034,10.57626,.1442925,,0,0,1,0,1.609438,0,0,0,0,0,0,0,70.68995,9.294374,1.609438,4.468886,1 +16,6,95,0,1,631687,0,9686.124,27.49623,1,10.62774,1,57.21498,9.360538,0,0,104.7539,171.3294,1,0,0,4,0,2,70.7,13.8,0,79.5,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,79.5,9.178553,.6931472,5.143588,1 +16,6,95,0,2,631687,0,9686.124,28.49623,1,10.62774,1,63.46808,17.82395,0,0,0,81.29203,0,0,0,7,0,2,70.7,13.8,0,79.5,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,79.5,9.178553,.6931472,4.398048,1 +16,6,95,0,3,631687,0,9686.124,29.49623,1,10.62774,1,0,0,0,0,0,0,0,0,0,0,0,2,70.7,13.8,0,79.5,1000,1000,0,0,.6931472,6.907755,0,4.564348,6.959049,0,0,0,79.5,9.178553,.6931472,,0 +13,6,0,0,1,631693,1,9834.102,1.237509,0,13,1,81.66737,9.0302,80.39132,0,0,171.0889,0,0,0,12,0,5,77.40034,10.57626,0,44.4,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,44.4,9.193713,1.609438,5.142183,1 +13,6,0,0,2,631693,1,9834.102,2.237509,0,13,1,17.17557,0,13.49618,0,0,30.67175,0,0,0,3,0,5,77.40034,10.57626,0,44.4,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,44.4,9.193713,1.609438,3.423342,1 +13,6,0,0,3,631693,1,9834.102,3.237509,0,13,1,12.54355,0,0,0,0,12.54355,0,0,0,0,0,5,77.40034,10.57626,0,44.4,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,44.4,9.193713,1.609438,2.529207,1 +13,6,0,0,1,631694,0,7954.941,1.429158,0,13,1,31.13168,0,0,0,0,31.13168,0,0,0,0,0,4,77.40034,10.57626,0,70.4,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,70.4,8.981674,1.386294,3.438226,1 +13,6,0,0,2,631694,0,7954.941,2.429158,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,0,70.4,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,70.4,8.981674,1.386294,,0 +13,6,0,0,3,631694,0,7954.941,3.429158,0,13,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,0,70.4,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,70.4,8.981674,1.386294,,0 +13,6,0,0,1,631697,1,10992.32,1.149897,1,12,1,19.04359,0,0,0,0,19.04359,0,0,0,3,0,4,77.40034,10.57626,.1442925,,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,70.68995,9.305043,1.386294,2.94673,1 +13,6,0,0,2,631697,1,10992.32,2.149897,1,12,1,4.555809,0,0,0,0,4.555809,0,0,0,1,0,4,77.40034,10.57626,.1442925,,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,70.68995,9.305043,1.386294,1.516403,1 +13,6,0,0,3,631697,1,10992.32,3.149897,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,.1442925,,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,70.68995,9.305043,1.386294,,0 +11,6,0,0,2,631703,0,11458.65,.1594798,1,16,1,39.18856,8.298756,0,0,0,47.48732,0,0,0,6,0,3,77.40034,10.57626,.1442925,,0,60,1,1,1.098612,4.094345,0,0,0,0,0,0,70.68995,9.346587,1.098612,3.860463,1 +11,6,0,0,3,631703,0,11458.65,1.15948,1,16,1,17.35082,10.57977,0,0,0,27.9306,0,0,0,3,0,3,77.40034,10.57626,.1442925,,0,60,1,1,1.098612,4.094345,0,0,0,0,0,0,70.68995,9.346587,1.098612,3.329723,1 +11,6,0,0,4,631703,0,11458.65,2.15948,1,16,1,15.18603,1.803341,0,0,0,16.98937,0,0,0,2,0,4,77.40034,10.57626,.1442925,,0,60,1,1,1.386294,4.094345,0,0,0,0,0,0,70.68995,9.346587,1.386294,2.832588,1 +11,6,0,0,5,631703,0,11458.65,3.15948,1,16,1,31.14187,5.737024,0,0,0,36.87889,0,0,0,6,0,4,77.40034,10.57626,.1442925,,0,60,1,1,1.386294,4.094345,0,0,0,0,0,0,70.68995,9.346587,1.386294,3.607639,1 +13,6,0,0,1,631704,1,9940.604,1.377139,1,10,1,28.18679,3.050063,0,0,0,31.23685,0,0,0,2,0,4,77.40034,10.57626,0,88.9,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,88.9,9.204484,1.386294,3.441599,1 +13,6,0,0,2,631704,1,9940.604,2.377139,1,10,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,0,88.9,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,88.9,9.204484,1.386294,,0 +13,6,0,0,3,631704,1,9940.604,3.377139,1,10,1,23.32762,0,0,0,519.7256,543.0532,1,0,0,2,0,4,77.40034,10.57626,0,88.9,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,88.9,9.204484,1.386294,6.297207,1 +13,6,0,0,2,631710,0,12312.61,.1430527,1,16,1,48.4094,11.66897,0,0,0,60.07838,0,0,0,8,0,4,77.40034,10.57626,.1442925,,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,70.68995,9.418461,1.386294,4.09565,1 +13,6,0,0,3,631710,0,12312.61,1.143053,1,16,1,10.57977,3.427846,0,0,0,14.00762,0,0,0,2,0,4,77.40034,10.57626,.1442925,,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,70.68995,9.418461,1.386294,2.639601,1 +13,6,0,0,4,631710,0,12312.61,2.143053,1,16,1,28.85345,8.800303,0,0,0,37.65376,0,0,0,5,0,4,77.40034,10.57626,.1442925,,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,70.68995,9.418461,1.386294,3.628433,1 +13,6,0,0,5,631710,0,12312.61,3.143053,1,16,1,8.650519,2.00692,0,0,0,10.65744,0,0,0,1,1,4,77.40034,10.57626,.1442925,,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,70.68995,9.418461,1.386294,2.366258,1 +6,6,25,0,1,631714,.5112414,6735.316,1.273101,0,10.5,1,50.7829,5.289886,0,0,0,56.07279,0,0,0,1,0,2,77.40034,10.57626,0,74.1,100,0,1,0,.6931472,0,0,3.258096,5.991465,0,0,0,74.1,8.815269,.6931472,4.02665,1 +6,6,25,0,2,631714,.5112414,6735.316,2.273101,0,10.5,1,45.653,3.113136,0,0,0,48.76614,0,0,0,5,0,2,77.40034,10.57626,0,74.1,100,0,1,0,.6931472,0,0,3.258096,5.991465,0,0,0,74.1,8.815269,.6931472,3.887036,1 +6,6,25,0,3,631714,.5112414,6735.316,3.273101,0,10.5,1,11.07266,7.802768,0,0,0,18.87543,0,0,0,2,0,2,77.40034,10.57626,0,74.1,100,0,1,0,.6931472,0,0,3.258096,5.991465,0,0,0,74.1,8.815269,.6931472,2.937861,1 +11,6,0,0,2,631726,1,10933.14,.9890486,1,7,1,10.93892,2.506837,0,0,0,13.44576,0,0,0,2,0,6,77.40034,10.57626,.1442925,,0,424.32,1,1,1.791759,6.050488,0,0,0,0,0,0,70.68995,9.299645,1.791759,2.598664,1 +11,6,0,0,3,631726,1,10933.14,1.989049,1,7,1,8.336807,6.531888,0,0,0,14.8687,0,0,0,2,0,7,77.40034,10.57626,.1442925,,0,424.32,1,1,1.94591,6.050488,0,0,0,0,0,0,70.68995,9.299645,1.94591,2.699258,1 +11,6,0,0,4,631726,1,10933.14,2.989048,1,7,1,20.25506,11.62791,0,0,0,31.88297,0,0,0,4,0,8,77.40034,10.57626,.1442925,,0,424.32,1,1,2.079442,6.050488,0,0,0,0,0,0,70.68995,9.299645,2.079442,3.462072,1 +11,6,0,0,5,631726,1,10933.14,3.989048,1,7,1,8.457375,2.35115,0,0,0,10.80853,0,0,0,2,0,8,77.40034,10.57626,.1442925,,0,424.32,1,1,2.079442,6.050488,0,0,0,0,0,0,70.68995,9.299645,2.079442,2.380335,1 +11,6,0,0,2,631727,1,10933.14,.9890486,1,7,1,38.28624,0,0,0,0,38.28624,0,0,0,5,0,6,77.40034,10.57626,.1442925,,0,424.32,1,1,1.791759,6.050488,0,0,0,0,0,0,70.68995,9.299645,1.791759,3.64509,1 +11,6,0,0,3,631727,1,10933.14,1.989049,1,7,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,.1442925,,0,424.32,1,1,1.94591,6.050488,0,0,0,0,0,0,70.68995,9.299645,1.94591,,0 +11,6,0,0,4,631727,1,10933.14,2.989048,1,7,1,19.12978,24.24231,0,0,0,43.37209,0,0,0,3,0,8,77.40034,10.57626,.1442925,,0,424.32,1,1,2.079442,6.050488,0,0,0,0,0,0,70.68995,9.299645,2.079442,3.769816,1 +11,6,0,0,5,631727,1,10933.14,3.989048,1,7,1,3.38295,2.232747,0,0,0,5.615697,0,0,0,1,0,8,77.40034,10.57626,.1442925,,0,424.32,1,1,2.079442,6.050488,0,0,0,0,0,0,70.68995,9.299645,2.079442,1.725566,1 +13,6,0,0,3,631733,0,10029.33,.9678302,0,16,1,72.94706,41.47562,0,0,544.3935,658.8162,1,0,0,14,0,3,77.40034,10.57626,.1442925,,300,349.96,1,0,1.098612,5.857819,1,4.564348,5.755076,0,0,0,70.68995,9.213368,1.098612,6.490445,1 +13,6,0,0,4,631733,0,10029.33,1.96783,0,16,1,18.37959,9.253563,14.43361,0,0,42.06676,0,0,0,4,0,4,77.40034,10.57626,.1442925,,300,349.96,1,0,1.386294,5.857819,1,4.564348,5.755076,0,0,0,70.68995,9.213368,1.386294,3.739258,1 +13,6,0,0,5,631733,0,10029.33,2.96783,0,16,1,5.074425,0,0,0,0,5.074425,0,0,0,1,0,4,77.40034,10.57626,.1442925,,300,349.96,1,0,1.386294,5.857819,1,4.564348,5.755076,0,0,0,70.68995,9.213368,1.386294,1.624213,1 +6,6,25,0,3,631736,1,1759.531,.9842573,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,.1442925,,750,0,1,1,1.386294,0,0,3.258096,8.006368,0,0,0,70.68995,7.473371,1.386294,,0 +6,6,25,0,4,631736,1,1759.531,1.984257,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,.1442925,,750,0,1,1,1.609438,0,0,3.258096,8.006368,0,0,0,70.68995,7.473371,1.609438,,0 +6,6,25,0,5,631736,1,1759.531,2.984257,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,.1442925,,750,0,1,1,1.609438,0,0,3.258096,8.006368,0,0,0,70.68995,7.473371,1.609438,,0 +13,6,0,0,3,631741,0,6415.836,.6913073,1,11,1,10.63377,0,0,0,0,10.63377,0,0,0,0,0,5,77.40034,10.57626,.1442925,,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,70.68995,8.766681,1.609438,2.364035,1 +13,6,0,0,4,631741,0,6415.836,1.691307,1,11,1,16.41221,0,0,0,0,16.41221,0,0,0,1,0,5,77.40034,10.57626,.1442925,,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,70.68995,8.766681,1.609438,2.798026,1 +13,6,0,0,5,631741,0,6415.836,2.691307,1,11,1,29.61672,0,0,0,386.7596,416.3763,1,0,0,0,0,5,77.40034,10.57626,.1442925,,450,450,1,1,1.609438,6.109248,1,4.564348,6.160541,0,0,0,70.68995,8.766681,1.609438,6.03159,1 +14,6,95,0,1,631742,1,3400.922,3.030801,0,7,1,0,0,0,0,0,0,0,0,0,0,0,9,77.40034,10.57626,.1442925,,48.6,48.6,1,0,2.197225,3.883624,0,4.564348,3.934917,0,0,0,70.68995,8.132095,2.197225,,0 +14,6,95,0,2,631742,1,3400.922,4.030801,0,7,1,0,2.84738,0,0,0,2.84738,0,0,0,0,0,9,77.40034,10.57626,.1442925,,48.6,48.6,1,0,2.197225,3.883624,0,4.564348,3.934917,0,0,0,70.68995,8.132095,2.197225,1.046399,1 +14,6,95,0,3,631742,1,3400.922,5.030801,0,7,1,0,0,0,0,0,0,0,0,0,0,0,10,77.40034,10.57626,.1442925,,48.6,48.6,1,0,2.302585,3.883624,0,4.564348,3.934917,0,0,0,70.68995,8.132095,2.302585,,0 +14,6,95,0,1,631743,1,3400.922,1.42642,1,7,1,0,0,0,0,0,0,0,0,0,0,0,9,77.40034,10.57626,.1442925,,48.6,48.6,1,1,2.197225,3.883624,0,4.564348,3.934917,0,0,0,70.68995,8.132095,2.197225,,0 +14,6,95,0,2,631743,1,3400.922,2.42642,1,7,1,0,0,0,0,0,0,0,0,0,0,0,9,77.40034,10.57626,.1442925,,48.6,48.6,1,1,2.197225,3.883624,0,4.564348,3.934917,0,0,0,70.68995,8.132095,2.197225,,0 +14,6,95,0,3,631743,1,3400.922,3.42642,1,7,1,0,0,0,0,0,0,0,0,0,0,0,10,77.40034,10.57626,.1442925,,48.6,48.6,1,1,2.302585,3.883624,0,4.564348,3.934917,0,0,0,70.68995,8.132095,2.302585,,0 +14,6,95,0,1,631744,1,3400.922,19.71253,1,12,1,0,0,0,0,0,0,0,0,0,0,0,9,77.40034,10.57626,.1442925,,48.6,48.6,0,0,2.197225,3.883624,0,4.564348,3.934917,0,0,0,70.68995,8.132095,2.197225,,0 +14,6,95,0,2,631744,1,3400.922,20.71253,1,12,1,0,0,0,0,217.5399,217.5399,1,0,0,0,0,9,77.40034,10.57626,.1442925,,48.6,48.6,0,0,2.197225,3.883624,0,4.564348,3.934917,0,0,0,70.68995,8.132095,2.197225,5.382382,1 +14,6,95,0,3,631744,1,3400.922,21.71253,1,12,1,0,0,0,0,0,0,0,0,0,0,0,10,77.40034,10.57626,.1442925,,48.6,48.6,0,0,2.302585,3.883624,0,4.564348,3.934917,0,0,0,70.68995,8.132095,2.302585,,0 +14,6,95,0,1,631745,1,3400.922,2.836413,0,7,1,0,0,0,0,0,0,0,0,0,0,0,9,77.40034,10.57626,.1442925,,48.6,48.6,1,0,2.197225,3.883624,0,4.564348,3.934917,0,0,0,70.68995,8.132095,2.197225,,0 +14,6,95,0,2,631745,1,3400.922,3.836413,0,7,1,0,0,0,0,0,0,0,0,0,0,0,9,77.40034,10.57626,.1442925,,48.6,48.6,1,0,2.197225,3.883624,0,4.564348,3.934917,0,0,0,70.68995,8.132095,2.197225,,0 +14,6,95,0,3,631745,1,3400.922,4.836413,0,7,1,0,0,0,0,0,0,0,0,0,0,0,10,77.40034,10.57626,.1442925,,48.6,48.6,1,0,2.302585,3.883624,0,4.564348,3.934917,0,0,0,70.68995,8.132095,2.302585,,0 +6,6,25,0,1,631749,0,12762.93,2.288843,0,12,1,34.27846,0,0,0,0,34.27846,0,0,0,3,0,3,77.40034,10.57626,0,88.9,750,750,1,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,88.9,9.454378,1.098612,3.534517,1 +6,6,25,0,2,631749,0,12762.93,3.288843,0,12,1,25.05695,0,13.81929,0,0,38.87623,0,0,0,3,0,3,77.40034,10.57626,0,88.9,750,750,1,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,88.9,9.454378,1.098612,3.660383,1 +6,6,25,0,3,631749,0,12762.93,4.288843,0,12,1,5.882353,0,0,0,0,5.882353,0,0,0,1,0,5,77.40034,10.57626,0,88.9,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,88.9,9.454378,1.609438,1.771957,1 +11,6,0,0,1,631754,1,6735.316,2.748802,1,11,1,0,0,0,0,0,0,0,0,0,0,0,3,77.40034,10.57626,.1442925,,0,0,1,1,1.098612,0,0,0,0,0,0,0,70.68995,8.815269,1.098612,,0 +11,6,0,0,2,631754,1,6735.316,3.748802,1,11,1,0,0,0,0,0,0,0,0,0,0,0,3,77.40034,10.57626,.1442925,,0,0,1,1,1.098612,0,0,0,0,0,0,0,70.68995,8.815269,1.098612,,0 +11,6,0,0,3,631754,1,6735.316,4.748802,1,11,1,0,0,0,0,0,0,0,0,0,0,0,3,77.40034,10.57626,.1442925,,0,0,1,1,1.098612,0,0,0,0,0,0,0,70.68995,8.815269,1.098612,,0 +13,6,0,0,1,631755,0,6907.322,1.869952,1,10,1,28.35379,11.57427,0,0,0,39.92806,0,0,0,4,0,4,77.40034,10.57626,0,70.4,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,70.4,8.840482,1.386294,3.687079,1 +13,6,0,0,2,631755,0,6907.322,2.869952,1,10,1,149.962,0,0,0,1663.25,1813.212,1,0,0,2,0,4,77.40034,10.57626,0,70.4,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,70.4,8.840482,1.386294,7.502855,1 +13,6,0,0,3,631755,0,6907.322,3.869952,1,10,1,26.29758,2.249135,0,0,427.6817,456.2284,1,0,0,4,0,4,77.40034,10.57626,0,70.4,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,70.4,8.840482,1.386294,6.122993,1 +14,6,95,0,1,631756,0,5339.478,1.368925,0,9,1,110.4627,26.29846,0,0,0,136.7612,0,0,0,20,0,5,77.40034,10.57626,0,81.5,308,660,1,0,1.609438,6.49224,0,4.564348,5.781393,0,0,0,81.5,8.583071,1.609438,4.918236,1 +14,6,95,0,2,631756,0,5339.478,2.368925,0,9,1,237.8094,46.31658,0,0,0,284.126,0,0,0,21,0,5,77.40034,10.57626,0,81.5,308,660,1,0,1.609438,6.49224,0,4.564348,5.781393,0,0,0,81.5,8.583071,1.609438,5.649418,1 +14,6,95,0,3,631756,0,5339.478,3.368925,0,9,1,127.1989,56.48512,0,0,0,183.684,0,0,0,28,0,5,77.40034,10.57626,0,81.5,308,660,1,0,1.609438,6.49224,0,4.564348,5.781393,0,0,0,81.5,8.583071,1.609438,5.213217,1 +11,6,0,0,1,631757,0,12691.24,1.713895,0,10,1,15.14514,2.179218,0,0,0,17.32436,0,0,0,1,0,5,77.40034,10.57626,1,48.1,0,193.96,1,0,1.609438,5.267652,0,0,0,0,0,0,48.1,9.448747,1.609438,2.852113,1 +11,6,0,0,2,631757,0,12691.24,2.713895,0,10,1,72.53494,146.615,0,0,0,219.15,0,0,0,9,0,5,77.40034,10.57626,1,48.1,0,193.96,1,0,1.609438,5.267652,0,0,0,0,0,0,48.1,9.448747,1.609438,5.389756,1 +11,6,0,0,3,631757,0,12691.24,3.713895,0,10,1,108.7479,148.8233,0,0,0,257.5712,0,0,0,9,0,5,77.40034,10.57626,1,48.1,0,193.96,1,0,1.609438,5.267652,0,0,0,0,0,0,48.1,9.448747,1.609438,5.551296,1 +13,6,0,0,1,631760,.5112414,4556.067,2.696783,1,12,1,7.993269,1.973075,0,0,0,9.966344,0,0,0,1,0,3,77.40034,10.57626,1,63,450,450,1,1,1.098612,6.109248,1,4.564348,6.160541,0,0,0,63,8.424435,1.098612,2.299214,1 +13,6,0,0,2,631760,.5112414,4556.067,3.696783,1,12,1,5.289006,0,0,0,0,5.289006,0,0,0,1,0,4,77.40034,10.57626,1,63,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,63,8.424435,1.386294,1.66563,1 +13,6,0,0,3,631760,.5112414,4556.067,4.696783,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,1,63,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,63,8.424435,1.386294,,0 +13,6,0,0,1,631761,.5112414,4556.067,22.92676,1,12,1,0,0,0,0,287.7577,287.7577,1,0,0,0,0,3,54.8,20.7,1,55.7,450,450,0,0,1.098612,6.109248,1,4.564348,6.160541,0,0,0,55.7,8.424435,1.098612,5.662119,1 +13,6,0,0,2,631761,.5112414,4556.067,23.92676,1,12,1,75.55724,5.851908,0,0,0,81.40914,0,0,0,6,0,4,54.8,20.7,1,55.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,55.7,8.424435,1.386294,4.399487,1 +13,6,0,0,3,631761,.5112414,4556.067,24.92676,1,12,1,64.83705,0,3.430532,0,0,68.26758,0,0,0,5,0,4,54.8,20.7,1,55.7,450,450,0,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,55.7,8.424435,1.386294,4.223435,1 +18,6,25,0,1,631762,0,12182.8,26.43121,0,12,1,0,0,0,0,0,0,0,0,0,0,0,2,93.1,0,0,86.4,194.38,194.38,0,0,.6931472,5.269815,0,3.258096,6.656109,0,0,0,86.4,9.407862,.6931472,,0 +18,6,25,0,2,631762,0,12182.8,27.43121,0,12,1,88.89722,0,7.501875,0,0,96.3991,0,0,0,0,12,2,93.1,0,0,86.4,194.38,194.38,0,0,.6931472,5.269815,0,3.258096,6.656109,0,0,0,86.4,9.407862,.6931472,4.568497,1 +18,6,25,0,3,631762,0,12182.8,28.43121,0,12,1,63.93776,0,0,0,0,63.93776,0,0,0,0,7,3,93.1,0,0,86.4,194.38,194.38,0,0,1.098612,5.269815,0,3.258096,6.656109,0,0,0,86.4,9.407862,1.098612,4.15791,1 +11,6,0,0,1,631767,1,4382.488,3.195072,1,8,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,0,63,0,0,1,1,1.386294,0,0,0,0,0,0,0,63,8.3856,1.386294,,0 +11,6,0,0,2,631767,1,4382.488,4.195072,1,8,1,0,0,0,0,0,0,0,0,0,0,0,3,77.40034,10.57626,0,63,0,0,1,1,1.098612,0,0,0,0,0,0,0,63,8.3856,1.098612,,0 +11,6,0,0,3,631767,1,4382.488,5.195072,1,8,1,0,0,0,0,0,0,0,0,0,0,0,3,77.40034,10.57626,0,63,0,0,1,1,1.098612,0,0,0,0,0,0,0,63,8.3856,1.098612,,0 +11,6,0,0,1,631768,.5112414,1202.253,1.998631,1,10,1,29.86958,2.03618,0,0,0,31.90576,0,0,0,3,0,2,77.40034,10.57626,.1442925,,0,0,1,1,.6931472,0,0,0,0,0,0,0,70.68995,7.092784,.6931472,3.462787,1 +11,6,0,0,2,631768,.5112414,1202.253,2.998631,1,10,1,0,0,0,0,0,0,0,0,0,0,0,2,77.40034,10.57626,.1442925,,0,0,1,1,.6931472,0,0,0,0,0,0,0,70.68995,7.092784,.6931472,,0 +11,6,0,0,3,631768,.5112414,1202.253,3.998631,1,10,1,0,0,0,0,0,0,0,0,0,0,0,2,77.40034,10.57626,.1442925,,0,0,1,1,.6931472,0,0,0,0,0,0,0,70.68995,7.092784,.6931472,,0 +11,6,0,0,1,631772,1,7187.404,.8405202,0,5,1,10.15658,4.655099,0,0,0,14.81168,0,0,0,2,0,13,77.40034,10.57626,0,40.7,0,106.56,1,0,2.564949,4.668708,0,0,0,0,0,0,40.7,8.880224,2.564949,2.695416,1 +11,6,0,0,2,631772,1,7187.404,1.84052,0,5,1,0,0,0,0,0,0,0,0,0,0,0,13,77.40034,10.57626,0,40.7,0,106.56,1,0,2.564949,4.668708,0,0,0,0,0,0,40.7,8.880224,2.564949,,0 +11,6,0,0,3,631772,1,7187.404,2.84052,0,5,1,5.882353,1.910035,0,0,0,7.792387,0,0,0,1,0,14,77.40034,10.57626,0,40.7,0,106.56,1,0,2.639057,4.668708,0,0,0,0,0,0,40.7,8.880224,2.639057,2.053147,1 +11,6,0,0,1,631773,1,7187.404,.8405202,0,5,1,5.07829,4.231909,0,0,0,9.310199,0,0,0,1,0,13,77.40034,10.57626,.1442925,100,0,106.56,1,0,2.564949,4.668708,0,0,0,0,0,0,100,8.880224,2.564949,2.23111,1 +11,6,0,0,2,631773,1,7187.404,1.84052,0,5,1,5.31511,4.04328,0,0,0,9.35839,0,0,0,1,0,13,77.40034,10.57626,.1442925,100,0,106.56,1,0,2.564949,4.668708,0,0,0,0,0,0,100,8.880224,2.564949,2.236273,1 +11,6,0,0,3,631773,1,7187.404,2.84052,0,5,1,144.9827,2.276817,0,0,504.1523,651.4117,1,0,0,3,0,14,77.40034,10.57626,.1442925,100,0,106.56,1,0,2.639057,4.668708,0,0,0,0,0,0,100,8.880224,2.639057,6.479142,1 +11,6,0,0,1,631784,1,3690.22,24.34223,0,14,1,6.669446,0,0,0,0,6.669446,0,0,0,1,0,6,88.8,0,0,78.4,0,0,0,0,1.791759,0,0,0,0,0,0,0,78.4,8.213713,1.791759,1.897537,1 +11,6,0,0,2,631784,1,3690.22,25.34223,0,14,1,0,0,0,0,0,0,0,0,0,0,0,6,88.8,0,0,78.4,0,0,0,0,1.791759,0,0,0,0,0,0,0,78.4,8.213713,1.791759,,0 +11,6,0,0,3,631784,1,3690.22,26.34223,0,14,1,0,1.742219,0,0,0,1.742219,0,0,0,0,0,6,88.8,0,0,78.4,0,0,0,0,1.791759,0,0,0,0,0,0,0,78.4,8.213713,1.791759,.5551597,1 +11,6,0,0,1,631785,1,1190.476,1.483915,1,12,1,12.50521,0,0,0,0,12.50521,0,0,0,2,0,3,77.40034,10.57626,0,96.3,0,329.16,1,1,1.098612,5.796544,0,0,0,0,0,0,96.3,7.082948,1.098612,2.526145,1 +11,6,0,0,2,631785,1,1190.476,2.483915,1,12,1,7.501875,8.053264,0,0,0,15.55514,0,0,0,2,0,3,77.40034,10.57626,0,96.3,0,329.16,1,1,1.098612,5.796544,0,0,0,0,0,0,96.3,7.082948,1.098612,2.744391,1 +11,6,0,0,3,631785,1,1190.476,3.483915,1,12,1,10.14885,13.24425,0,0,0,23.3931,0,0,0,3,0,3,77.40034,10.57626,0,96.3,0,329.16,1,1,1.098612,5.796544,0,0,0,0,0,0,96.3,7.082948,1.098612,3.152441,1 +13,6,0,0,1,631787,.5112414,479.2627,20.91444,1,8,1,0,0,0,0,0,0,0,0,0,0,0,2,38.8,27.6,1,53.6,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,53.6,6.174333,.6931472,,0 +13,6,0,0,2,631787,.5112414,479.2627,21.91444,1,8,1,0,0,0,0,0,0,0,0,0,0,0,2,38.8,27.6,1,53.6,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,53.6,6.174333,.6931472,,0 +13,6,0,0,3,631787,.5112414,479.2627,22.91444,1,8,1,0,0,0,0,0,0,0,0,0,0,0,2,38.8,27.6,1,53.6,300,300,0,0,.6931472,5.703783,1,4.564348,5.755076,0,0,0,53.6,6.174333,.6931472,,0 +13,6,0,0,1,631790,1,2625.704,1.177276,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,77.40034,10.57626,.1442925,,300,300,1,1,.6931472,5.703783,1,4.564348,5.755076,0,0,0,70.68995,7.873485,.6931472,,0 +13,6,0,0,2,631790,1,2625.704,2.177276,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,77.40034,10.57626,.1442925,,300,300,1,1,.6931472,5.703783,1,4.564348,5.755076,0,0,0,70.68995,7.873485,.6931472,,0 +13,6,0,0,3,631790,1,2625.704,3.177276,1,12,1,0,0,0,0,0,0,0,0,0,0,0,2,77.40034,10.57626,.1442925,,300,300,1,1,.6931472,5.703783,1,4.564348,5.755076,0,0,0,70.68995,7.873485,.6931472,,0 +13,6,0,0,1,631791,.5112414,479.2627,.862423,1,8,1,16.40724,0,0,0,0,16.40724,0,0,0,1,0,2,77.40034,10.57626,0,88.9,300,300,1,1,.6931472,5.703783,1,4.564348,5.755076,0,0,0,88.9,6.174333,.6931472,2.797723,1 +13,6,0,0,2,631791,.5112414,479.2627,1.862423,1,8,1,0,0,0,0,0,0,0,0,0,0,0,2,77.40034,10.57626,0,88.9,300,300,1,1,.6931472,5.703783,1,4.564348,5.755076,0,0,0,88.9,6.174333,.6931472,,0 +13,6,0,0,3,631791,.5112414,479.2627,2.862423,1,8,1,5.488851,0,0,0,0,5.488851,0,0,0,1,0,2,77.40034,10.57626,0,88.9,300,300,1,1,.6931472,5.703783,1,4.564348,5.755076,0,0,0,88.9,6.174333,.6931472,1.702719,1 +10,6,50,0,1,631798,1,4512.033,.769336,1,12,1,5.002084,0,0,0,0,5.002084,0,0,0,1,0,8,77.40034,10.57626,0,63,1000,1000,1,1,2.079442,6.907755,0,3.931826,7.600903,0,0,0,63,8.414724,2.079442,1.609855,1 +10,6,50,0,2,631798,1,4512.033,1.769336,1,12,1,0,0,0,0,0,0,0,0,0,0,0,8,77.40034,10.57626,0,63,1000,1000,1,1,2.079442,6.907755,0,3.931826,7.600903,0,0,0,63,8.414724,2.079442,,0 +10,6,50,0,3,631798,1,4512.033,2.769336,1,12,1,145.4668,0,0,0,0,145.4668,0,0,0,2,0,7,77.40034,10.57626,0,63,1000,1000,1,1,1.94591,6.907755,0,3.931826,7.600903,0,0,0,63,8.414724,1.94591,4.979948,1 +11,6,0,0,1,631799,1,3700.973,.7282683,0,12,1,0,0,0,0,0,0,0,0,0,0,0,6,77.40034,10.57626,0,81.5,0,168.4,1,0,1.791759,5.126342,0,0,0,0,0,0,81.5,8.216621,1.791759,,0 +11,6,0,0,2,631799,1,3700.973,1.728268,0,12,1,5.626407,3.765941,0,0,0,9.392348,0,0,0,1,0,6,77.40034,10.57626,0,81.5,0,168.4,1,0,1.791759,5.126342,0,0,0,0,0,0,81.5,8.216621,1.791759,2.239895,1 +11,6,0,0,3,631799,1,3700.973,2.728268,0,12,1,10.14885,1.67456,0,0,0,11.82341,0,0,0,2,0,7,77.40034,10.57626,0,81.5,0,168.4,1,0,1.94591,5.126342,0,0,0,0,0,0,81.5,8.216621,1.94591,2.470082,1 +13,6,0,0,1,631803,1,3534.05,.5338809,0,12,1,10.51746,13.52966,0,0,0,24.04712,0,0,0,2,0,4,77.40034,10.57626,0,63,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,63,8.170483,1.386294,3.180015,1 +13,6,0,0,2,631803,1,3534.05,1.533881,0,12,1,5.666792,4.291651,0,0,235.3608,245.3192,1,0,0,1,0,4,77.40034,10.57626,0,63,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,63,8.170483,1.386294,5.50256,1 +13,6,0,0,3,631803,1,3534.05,2.533881,0,12,1,0,5.979417,0,0,0,5.979417,0,0,0,0,0,4,77.40034,10.57626,0,63,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,63,8.170483,1.386294,1.788323,1 +14,6,95,0,3,631812,1,3984.164,.4941821,0,11,1,0,0,0,0,0,0,0,0,0,0,0,6,77.40034,10.57626,.1442925,,294,409.6,1,0,1.791759,6.015181,0,4.564348,5.734873,0,0,0,70.68995,8.290334,1.791759,,0 +14,6,95,0,4,631812,1,3984.164,1.494182,0,11,1,29.08953,0,0,0,0,29.08953,0,0,0,0,0,6,77.40034,10.57626,.1442925,,294,409.6,1,0,1.791759,6.015181,0,4.564348,5.734873,0,0,0,70.68995,8.290334,1.791759,3.370378,1 +14,6,95,0,5,631812,1,3984.164,2.494182,0,11,1,0,0,0,0,0,0,0,0,0,0,0,6,77.40034,10.57626,.1442925,,294,409.6,1,0,1.791759,6.015181,0,4.564348,5.734873,0,0,0,70.68995,8.290334,1.791759,,0 +11,6,0,0,1,631813,.5112414,13244.75,.6652977,1,13,1,66.89104,51.95625,0,0,0,118.8473,0,0,0,13,0,4,77.40034,10.57626,0,88.9,0,0,1,1,1.386294,0,0,0,0,0,0,0,88.9,9.491432,1.386294,4.777839,1 +11,6,0,0,2,631813,.5112414,13244.75,1.665298,1,13,1,58.93464,60.74424,0,0,0,119.6789,0,0,0,11,0,4,77.40034,10.57626,0,88.9,0,0,1,1,1.386294,0,0,0,0,0,0,0,88.9,9.491432,1.386294,4.784812,1 +11,6,0,0,3,631813,.5112414,13244.75,2.665298,1,13,1,87.82161,35.28645,25.72899,0,0,148.8371,0,0,0,12,0,4,77.40034,10.57626,0,88.9,0,0,1,1,1.386294,0,0,0,0,0,0,0,88.9,9.491432,1.386294,5.002852,1 +14,6,95,0,3,631815,0,8616.422,.3080082,1,16,1,72.73501,11.84602,0,0,0,84.58103,0,0,0,10,0,3,77.40034,10.57626,.1442925,,677.5,667.5,1,1,1.098612,6.50354,0,4.564348,6.569703,0,0,0,70.68995,9.061542,1.098612,4.43771,1 +14,6,95,0,4,631815,0,8616.422,1.308008,1,16,1,53.8168,11.33588,0,0,0,65.15267,0,0,0,10,0,3,77.40034,10.57626,.1442925,,677.5,667.5,1,1,1.098612,6.50354,0,4.564348,6.569703,0,0,0,70.68995,9.061542,1.098612,4.176733,1 +14,6,95,0,5,631815,0,8616.422,2.308008,1,16,1,39.72126,11.82927,0,0,0,51.55052,0,0,0,6,0,3,77.40034,10.57626,.1442925,,677.5,667.5,1,1,1.098612,6.50354,0,4.564348,6.569703,0,0,0,70.68995,9.061542,1.098612,3.942562,1 +11,6,0,0,3,631817,1,10933.14,.4722793,1,7,1,6.252605,0,0,0,0,6.252605,0,0,0,1,0,7,77.40034,10.57626,.1442925,,0,424.32,1,1,1.94591,6.050488,0,0,0,0,0,0,70.68995,9.299645,1.94591,1.832998,1 +11,6,0,0,4,631817,1,10933.14,1.472279,1,7,1,0,0,0,0,0,0,0,0,0,0,0,8,77.40034,10.57626,.1442925,,0,424.32,1,1,2.079442,6.050488,0,0,0,0,0,0,70.68995,9.299645,2.079442,,0 +11,6,0,0,5,631817,1,10933.14,2.472279,1,7,1,9.133965,0,0,0,0,9.133965,0,0,0,2,0,8,77.40034,10.57626,.1442925,,0,424.32,1,1,2.079442,6.050488,0,0,0,0,0,0,70.68995,9.299645,2.079442,2.212,1 +19,6,25,0,1,631823,0,8778.802,.4654346,0,16,1,66.01778,15.32374,19.36521,0,0,100.7067,0,0,0,11,0,3,77.40034,10.57626,0,85.2,750,750,1,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,85.2,9.080209,1.098612,4.612213,1 +19,6,25,0,2,631823,0,8778.802,1.465435,0,16,1,55.429,10.50494,24.08504,0,0,90.01898,0,0,0,7,0,3,77.40034,10.57626,0,85.2,750,750,1,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,85.2,9.080209,1.098612,4.500021,1 +19,6,25,0,3,631823,0,8778.802,2.465435,0,16,1,22.83737,4.737024,22.67128,0,0,50.24567,0,0,0,4,0,3,77.40034,10.57626,0,85.2,750,750,1,0,1.098612,6.620073,0,3.258096,8.006368,0,0,0,85.2,9.080209,1.098612,3.916924,1 +11,6,0,0,1,631824,1,6278.034,.3011636,0,11,1,25.39145,2.517986,0,0,0,27.90944,0,0,0,5,0,8,77.40034,10.57626,0,59.3,0,0,1,0,2.079442,0,0,0,0,0,0,0,59.3,8.744971,2.079442,3.328965,1 +11,6,0,0,2,631824,1,6278.034,1.301164,0,11,1,11.38952,0,0,0,0,11.38952,0,0,0,2,0,8,77.40034,10.57626,0,59.3,0,0,1,0,2.079442,0,0,0,0,0,0,0,59.3,8.744971,2.079442,2.432694,1 +11,6,0,0,3,631824,1,6278.034,2.301164,0,11,1,8.650519,9.262976,0,0,0,17.91349,0,0,0,2,0,8,77.40034,10.57626,0,59.3,0,0,1,0,2.079442,0,0,0,0,0,0,0,59.3,8.744971,2.079442,2.885554,1 +13,6,0,0,1,631837,1,1756.272,14.00137,0,9,1,16.50444,0,0,0,0,16.50444,0,0,0,2,0,4,68.6,17.2,0,67.5,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,67.5,7.471518,1.386294,2.80363,1 +13,6,0,0,2,631837,1,1756.272,15.00137,0,9,1,67.57783,.9681093,0,0,0,68.54594,0,0,0,0,0,4,68.6,17.2,0,67.5,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,67.5,7.471518,1.386294,4.227504,1 +13,6,0,0,3,631837,1,1756.272,16.00137,0,9,1,0,0,0,0,0,0,0,0,0,0,0,4,68.6,17.2,0,67.5,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,67.5,7.471518,1.386294,,0 +13,6,0,0,1,631855,0,8023.042,1.196441,0,12,1,326.4619,6.121161,0,0,401.7669,734.35,2,0,0,8,26,5,77.40034,10.57626,1,85.2,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,85.2,8.990197,1.609438,6.598986,1 +13,6,0,0,2,631855,0,8023.042,2.196441,0,12,1,115.9804,8.919532,0,0,0,124.8999,0,0,0,5,9,5,77.40034,10.57626,1,85.2,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,85.2,8.990197,1.609438,4.827513,1 +13,6,0,0,3,631855,0,8023.042,3.196441,0,12,1,95.19726,12.79588,345.4546,0,0,453.4477,0,0,0,3,10,5,77.40034,10.57626,1,85.2,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,85.2,8.990197,1.609438,6.11688,1 +16,6,95,0,1,631856,0,10337.43,20.23272,1,10,1,0,0,0,0,0,0,0,0,0,0,0,8,68.1,3.4,0,77.3,1000,1000,0,0,2.079442,6.907755,0,4.564348,6.959049,0,0,0,77.3,9.243624,2.079442,,0 +16,6,95,0,2,631856,0,10337.43,21.23272,1,10,1,29.46732,4.004533,0,0,0,33.47186,0,0,0,0,0,8,68.1,3.4,0,77.3,1000,1000,0,0,2.079442,6.907755,0,4.564348,6.959049,0,0,0,77.3,9.243624,2.079442,3.510705,1 +16,6,95,0,3,631856,0,10337.43,22.23272,1,10,1,72.72727,0,0,0,979.0737,1051.801,1,0,0,2,0,8,68.1,3.4,0,77.3,1000,1000,0,0,2.079442,6.907755,0,4.564348,6.959049,0,0,0,77.3,9.243624,2.079442,6.958259,1 +16,6,95,0,1,631857,0,10337.43,1.245722,0,11,1,0,0,0,0,0,0,0,0,0,0,0,8,77.40034,10.57626,0,81.5,1000,1000,1,0,2.079442,6.907755,0,4.564348,6.959049,0,0,0,81.5,9.243624,2.079442,,0 +16,6,95,0,2,631857,0,10337.43,2.245722,0,11,1,0,0,0,0,0,0,0,0,0,0,0,8,77.40034,10.57626,0,81.5,1000,1000,1,0,2.079442,6.907755,0,4.564348,6.959049,0,0,0,81.5,9.243624,2.079442,,0 +16,6,95,0,3,631857,0,10337.43,3.245722,0,11,1,0,0,0,0,0,0,0,0,0,0,0,8,77.40034,10.57626,0,81.5,1000,1000,1,0,2.079442,6.907755,0,4.564348,6.959049,0,0,0,81.5,9.243624,2.079442,,0 +10,6,50,0,1,631859,1,6735.316,.2710472,0,11,1,8.413967,0,0,0,0,8.413967,0,0,0,0,0,3,77.40034,10.57626,0,70.4,353.25,434.88,1,0,1.098612,6.07507,0,3.931826,6.560323,0,0,0,70.4,8.815269,1.098612,2.129893,1 +10,6,50,0,2,631859,1,6735.316,1.271047,0,11,1,63.09029,10.55535,0,0,0,73.64564,0,0,0,2,0,3,77.40034,10.57626,0,70.4,353.25,434.88,1,0,1.098612,6.07507,0,3.931826,6.560323,0,0,0,70.4,8.815269,1.098612,4.299265,1 +10,6,50,0,3,631859,1,6735.316,2.271047,0,11,1,10.63465,1.626072,0,0,0,12.26072,0,0,0,0,0,3,77.40034,10.57626,0,70.4,353.25,434.88,1,0,1.098612,6.07507,0,3.931826,6.560323,0,0,0,70.4,8.815269,1.098612,2.506401,1 +11,6,0,0,1,631861,.5112414,1156.682,.2327173,1,12,1,19.77282,5.384939,0,0,0,25.15776,0,0,0,3,0,2,77.40034,10.57626,0,92.6,0,468,1,1,.6931472,6.148468,0,0,0,0,0,0,92.6,7.054175,.6931472,3.225167,1 +11,6,0,0,2,631861,.5112414,1156.682,1.232717,1,12,1,69.13487,0,0,0,0,69.13487,0,0,0,6,0,2,77.40034,10.57626,0,92.6,0,468,1,1,.6931472,6.148468,0,0,0,0,0,0,92.6,7.054175,.6931472,4.236059,1 +11,6,0,0,3,631861,.5112414,1156.682,2.232717,1,12,1,20.92624,14.18525,0,0,0,35.11149,0,0,0,5,0,2,77.40034,10.57626,0,92.6,0,468,1,1,.6931472,6.148468,0,0,0,0,0,0,92.6,7.054175,.6931472,3.558528,1 +7,6,25,0,1,631862,1,3338.966,.2190281,1,8,1,51.3252,30.50063,0,0,0,81.82583,0,0,0,8,0,5,77.40034,10.57626,0,81.5,720,720,1,1,1.609438,6.579251,0,3.258096,7.965546,0,0,0,81.5,8.113716,1.609438,4.404593,1 +7,6,25,0,2,631862,1,3338.966,1.219028,1,8,1,47.60106,24.76388,0,0,285.6064,357.9713,1,0,0,7,0,5,77.40034,10.57626,0,81.5,720,720,1,1,1.609438,6.579251,0,3.258096,7.965546,0,0,0,81.5,8.113716,1.609438,5.880453,1 +7,6,25,0,3,631862,1,3338.966,2.219028,1,8,1,0,4.83705,0,0,0,4.83705,0,0,0,0,0,5,77.40034,10.57626,0,81.5,720,720,1,1,1.609438,6.579251,0,3.258096,7.965546,0,0,0,81.5,8.113716,1.609438,1.576305,1 +7,6,25,0,1,631867,1,4621.608,17.01574,1,11,1,0,0,0,0,0,0,0,0,0,0,0,2,85.1,0,0,75,750,0,1,1,.6931472,0,0,3.258096,8.006368,0,0,0,75,8.438714,.6931472,,0 +7,6,25,0,2,631867,1,4621.608,18.01574,1,11,1,19.2671,0,1.888931,0,0,21.15602,0,0,0,3,0,2,85.1,0,0,75,750,0,0,0,.6931472,0,0,3.258096,8.006368,0,0,0,75,8.438714,.6931472,3.051925,1 +11,6,0,0,1,631868,.5112414,7290.834,.1341547,1,12,1,9.255363,1.893143,0,0,0,11.14851,0,0,0,2,0,3,77.40034,10.57626,0,85.2,0,240.48,1,1,1.098612,5.482637,0,0,0,0,0,0,85.2,8.89451,1.098612,2.411305,1 +11,6,0,0,2,631868,.5112414,7290.834,1.134155,1,12,1,5.289006,0,0,0,0,5.289006,0,0,0,1,0,3,77.40034,10.57626,0,85.2,0,240.48,1,1,1.098612,5.482637,0,0,0,0,0,0,85.2,8.89451,1.098612,1.66563,1 +11,6,0,0,3,631868,.5112414,7290.834,2.134155,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,77.40034,10.57626,0,85.2,0,240.48,1,1,1.098612,5.482637,0,0,0,0,0,0,85.2,8.89451,1.098612,,0 +16,6,95,0,1,631869,1,8413.723,25.26215,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,81.4,3.4,0,66.7,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,66.7,9.037738,1.386294,,0 +16,6,95,0,2,631869,1,8413.723,26.26215,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,81.4,3.4,0,66.7,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,66.7,9.037738,1.386294,,0 +16,6,95,0,3,631869,1,8413.723,27.26215,1,12,1,54.2024,0,0,0,458.6621,512.8645,1,0,0,2,0,4,81.4,3.4,0,66.7,1000,1000,0,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,66.7,9.037738,1.386294,6.240012,1 +16,6,95,0,1,631870,1,8413.723,.4134155,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,.1442925,63,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,63,9.037738,1.386294,,0 +16,6,95,0,2,631870,1,8413.723,1.413415,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,.1442925,63,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,63,9.037738,1.386294,,0 +16,6,95,0,3,631870,1,8413.723,2.413415,0,12,1,10.63465,0,0,0,0,10.63465,0,0,0,0,0,4,77.40034,10.57626,.1442925,63,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,63,9.037738,1.386294,2.364117,1 +16,6,95,0,1,631871,1,8413.723,3.5154,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,0,63,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,63,9.037738,1.386294,,0 +16,6,95,0,2,631871,1,8413.723,4.5154,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,0,63,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,63,9.037738,1.386294,,0 +16,6,95,0,3,631871,1,8413.723,5.5154,0,12,1,5.831904,0,0,0,0,5.831904,0,0,0,1,0,4,77.40034,10.57626,0,63,1000,1000,1,0,1.386294,6.907755,0,4.564348,6.959049,0,0,0,63,9.037738,1.386294,1.763344,1 +18,6,25,0,1,631875,.5112414,2469.534,19.58932,1,12,1,55.53218,16.31048,0,0,207.825,279.6676,1,0,0,4,0,2,85.1,6.9,0,78.4,750,0,0,0,.6931472,0,0,3.258096,8.006368,0,0,0,78.4,7.81219,.6931472,5.633602,1 +18,6,25,0,2,631875,.5112414,2469.534,20.58932,1,12,1,14.35588,0,0,0,0,14.35588,0,0,0,1,0,2,85.1,6.9,0,78.4,750,0,0,0,.6931472,0,0,3.258096,8.006368,0,0,0,78.4,7.81219,.6931472,2.664159,1 +18,6,25,0,3,631875,.5112414,2469.534,21.58932,1,12,1,24.69983,0,36.36364,0,0,61.06347,0,0,0,0,1,2,85.1,6.9,0,78.4,750,0,0,0,.6931472,0,0,3.258096,8.006368,0,0,0,78.4,7.81219,.6931472,4.111914,1 +13,6,0,0,1,631879,.5112414,3575.525,1.160849,1,10,1,51.7459,0,0,0,104.7539,156.4998,1,1,0,0,0,3,77.40034,10.57626,0,70.4,450,552,1,1,1.098612,6.313548,1,4.564348,6.160541,0,0,0,70.4,8.182147,1.098612,5.053055,1 +13,6,0,0,2,631879,.5112414,3575.525,2.160849,1,10,1,62.33472,0,0,0,0,62.33472,0,0,0,0,0,3,77.40034,10.57626,0,70.4,450,552,1,1,1.098612,6.313548,1,4.564348,6.160541,0,0,0,70.4,8.182147,1.098612,4.132518,1 +13,6,0,0,3,631879,.5112414,3575.525,3.160849,1,10,1,39.45111,0,0,0,637.9073,677.3585,2,0,0,1,0,3,77.40034,10.57626,0,70.4,450,552,1,1,1.098612,6.313548,1,4.564348,6.160541,0,0,0,70.4,8.182147,1.098612,6.518201,1 +13,6,0,0,1,631880,.5112414,3575.525,16.78303,1,10,1,37.86285,0,0,0,861.5902,899.4531,1,0,0,5,0,3,75,24.1,0,55.7,450,552,1,1,1.098612,6.313548,1,4.564348,6.160541,0,0,0,55.7,8.182147,1.098612,6.801787,1 +13,6,0,0,2,631880,.5112414,3575.525,17.78303,1,10,1,31.35625,0,0,0,0,31.35625,0,0,0,0,0,3,75,24.1,0,55.7,450,552,1,1,1.098612,6.313548,1,4.564348,6.160541,0,0,0,55.7,8.182147,1.098612,3.445414,1 +13,6,0,0,3,631880,.5112414,3575.525,18.78303,1,10,1,202.7444,14.75472,68.61063,0,0,286.1098,0,0,0,6,1,3,75,24.1,0,55.7,450,552,0,0,1.098612,6.313548,1,4.564348,6.160541,0,0,0,55.7,8.182147,1.098612,5.656375,1 +6,6,25,0,1,631883,1,11735.28,.29295,1,17,1,89.62067,1.69654,0,0,0,91.31721,0,0,0,8,0,5,77.40034,10.57626,0,100,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,100,9.37044,1.609438,4.514339,1 +6,6,25,0,2,631883,1,11735.28,1.29295,1,17,1,33.38335,9.602401,0,0,0,42.98575,0,0,0,4,0,5,77.40034,10.57626,0,100,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,100,9.37044,1.609438,3.760869,1 +6,6,25,0,3,631883,1,11735.28,2.29295,1,17,1,11.84032,0,0,0,0,11.84032,0,0,0,2,0,5,77.40034,10.57626,0,100,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,100,9.37044,1.609438,2.471511,1 +13,6,0,0,1,631884,1,12033.79,.6817248,1,15,1,31.26303,0,65.46061,0,0,96.72363,0,0,0,2,0,3,77.40034,10.57626,0,92.6,450,300,1,1,1.098612,5.703783,1,4.564348,6.160541,0,0,0,92.6,9.395557,1.098612,4.571858,1 +13,6,0,0,2,631884,1,12033.79,1.681725,1,15,1,0,4.219805,0,0,0,4.219805,0,0,0,0,0,3,77.40034,10.57626,0,92.6,450,300,1,1,1.098612,5.703783,1,4.564348,6.160541,0,0,0,92.6,9.395557,1.098612,1.439789,1 +13,6,0,0,3,631884,1,12033.79,2.681725,1,15,1,0,0,0,0,0,0,0,0,0,0,0,3,77.40034,10.57626,0,92.6,450,300,1,1,1.098612,5.703783,1,4.564348,6.160541,0,0,0,92.6,9.395557,1.098612,,0 +11,6,0,0,1,631885,0,844.8541,17.16906,1,7,1,119.2163,48.21175,0,0,0,167.4281,0,0,0,12,0,3,88.3,17.2,0,61.4,0,0,1,1,1.098612,0,0,0,0,0,0,0,61.4,6.740347,1.098612,5.120554,1 +11,6,0,0,2,631885,0,844.8541,18.16906,1,7,1,142.5356,37.61816,24.3811,0,261.8155,466.3503,1,0,0,9,1,3,88.3,17.2,0,61.4,0,0,0,0,1.098612,0,0,0,0,0,0,0,61.4,6.740347,1.098612,6.144937,1 +11,6,0,0,3,631885,0,844.8541,19.16906,1,7,1,11.84032,48.01421,0,0,492.5575,552.412,1,0,0,1,0,1,88.3,17.2,0,61.4,0,0,0,0,0,0,0,0,0,0,0,0,61.4,6.740347,0,6.314294,1 +14,6,95,0,1,631886,0,5339.478,.2655715,0,9,1,120.4669,20.38766,0,0,0,140.8545,0,0,0,20,0,5,77.40034,10.57626,0,85.2,308,660,1,0,1.609438,6.49224,0,4.564348,5.781393,0,0,0,85.2,8.583071,1.609438,4.947728,1 +14,6,95,0,2,631886,0,5339.478,1.265571,0,9,1,112.153,31.93548,0,0,0,144.0885,0,0,0,15,0,5,77.40034,10.57626,0,85.2,308,660,1,0,1.609438,6.49224,0,4.564348,5.781393,0,0,0,85.2,8.583071,1.609438,4.970428,1 +14,6,95,0,3,631886,0,5339.478,2.265572,0,9,1,76.11637,47.35115,0,0,0,123.4675,0,0,0,12,0,5,77.40034,10.57626,0,85.2,308,660,1,0,1.609438,6.49224,0,4.564348,5.781393,0,0,0,85.2,8.583071,1.609438,4.815978,1 +16,6,95,0,1,631887,1,6656.426,.1615332,1,12,1,0,0,0,0,297.2072,297.2072,1,0,0,0,0,5,77.40034,10.57626,.1442925,,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,70.68995,8.803488,1.609438,5.694429,1 +16,6,95,0,2,631887,1,6656.426,1.161533,1,12,1,7.876969,0,0,0,0,7.876969,0,0,0,0,0,5,77.40034,10.57626,.1442925,,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,70.68995,8.803488,1.609438,2.063943,1 +16,6,95,0,3,631887,1,6656.426,2.161533,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,.1442925,,1000,1000,1,1,1.609438,6.907755,0,4.564348,6.959049,0,0,0,70.68995,8.803488,1.609438,,0 +15,6,95,0,3,631890,1,3530.792,.1026694,1,9,1,8.336807,2.501042,0,0,0,10.83785,0,0,0,1,0,2,77.40034,10.57626,.1442925,,499.2,509.08,1,1,.6931472,6.232605,0,4.564348,6.2643,0,0,0,70.68995,8.16956,.6931472,2.383044,1 +15,6,95,0,4,631890,1,3530.792,1.102669,1,9,1,0,5.532633,0,0,0,5.532633,0,0,0,0,0,2,77.40034,10.57626,.1442925,,499.2,509.08,1,1,.6931472,6.232605,0,4.564348,6.2643,0,0,0,70.68995,8.16956,.6931472,1.710664,1 +15,6,95,0,5,631890,1,3530.792,2.102669,1,9,1,6.258457,0,0,0,0,6.258457,0,0,0,0,0,2,77.40034,10.57626,.1442925,,499.2,509.08,1,1,.6931472,6.232605,0,4.564348,6.2643,0,0,0,70.68995,8.16956,.6931472,1.833934,1 +13,6,0,0,2,631900,0,8787.507,.70705,0,13,1,319.8473,46.96565,22.61069,0,0,389.4237,0,0,0,25,0,4,77.40034,10.57626,.1442925,,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,70.68995,9.0812,1.386294,5.964668,1 +13,6,0,0,3,631900,0,8787.507,1.70705,0,13,1,104.8781,22.64808,0,0,452.9617,580.4878,1,0,0,16,0,4,77.40034,10.57626,.1442925,,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,70.68995,9.0812,1.386294,6.363869,1 +11,6,0,0,2,631901,0,9949.82,.8959616,0,11,1,106.5357,5.821685,0,0,0,112.3574,0,0,0,3,13,5,77.40034,10.57626,.1442925,,0,0,1,0,1.609438,0,0,0,0,0,0,0,70.68995,9.20541,1.609438,4.721685,1 +11,6,0,0,3,631901,0,9949.82,1.895962,0,11,1,156.0892,28.39108,0,0,0,184.4803,0,0,0,8,18,5,77.40034,10.57626,.1442925,,0,0,1,0,1.609438,0,0,0,0,0,0,0,70.68995,9.20541,1.609438,5.217543,1 +15,6,95,0,2,631903,1,1798.771,.9397673,1,12,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,.1442925,,80.9,80.9,1,1,1.386294,4.393214,0,4.564348,4.444507,0,0,0,70.68995,7.495415,1.386294,,0 +15,6,95,0,3,631903,1,1798.771,1.939767,1,12,1,11.07266,0,0,0,0,11.07266,0,0,0,0,0,4,77.40034,10.57626,.1442925,,80.9,80.9,1,1,1.386294,4.393214,0,4.564348,4.444507,0,0,0,70.68995,7.495415,1.386294,2.40448,1 +16,6,95,0,2,631904,1,1725.55,.742642,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,.1442925,,756,0,1,0,1.386294,0,0,4.564348,6.679335,0,0,0,70.68995,7.453881,1.386294,,0 +16,6,95,0,3,631904,1,1725.55,1.742642,0,12,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,.1442925,,756,0,1,0,1.386294,0,0,4.564348,6.679335,0,0,0,70.68995,7.453881,1.386294,,0 +11,6,0,0,4,631908,0,4633.431,.7686516,0,10.62774,1,103.8912,4.892331,0,0,433.3207,542.1042,2,0,0,6,0,2,77.40034,10.57626,.1442925,,0,0,1,0,.6931472,0,0,0,0,0,0,0,70.68995,8.441269,.6931472,6.295458,1 +13,6,0,0,2,631909,1,213.5177,.742642,0,10,1,0,0,0,0,0,0,0,0,0,0,0,8,77.40034,10.57626,.1442925,,450,450,1,0,2.079442,6.109248,1,4.564348,6.160541,0,0,0,70.68995,5.368392,2.079442,,0 +13,6,0,0,3,631909,1,213.5177,1.742642,0,10,1,0,0,0,0,0,0,0,0,0,0,0,8,77.40034,10.57626,.1442925,,450,450,1,0,2.079442,6.109248,1,4.564348,6.160541,0,0,0,70.68995,5.368392,2.079442,,0 +16,6,95,0,1,631921,1,962.6216,5.180014,1,7,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,.1442925,,1000,1000,1,1,1.94591,6.907755,0,4.564348,6.959049,0,0,0,70.68995,6.870698,1.94591,,0 +16,6,95,0,2,631921,1,962.6216,6.180014,1,7,1,11.33358,0,0,0,0,11.33358,0,0,0,2,0,7,77.40034,10.57626,.1442925,,1000,1000,1,1,1.94591,6.907755,0,4.564348,6.959049,0,0,0,70.68995,6.870698,1.94591,2.42777,1 +16,6,95,0,3,631921,1,962.6216,7.180014,1,7,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,.1442925,,1000,1000,1,1,1.94591,6.907755,0,4.564348,6.959049,0,0,0,70.68995,6.870698,1.94591,,0 +11,6,0,0,1,631924,0,7922.171,.0793977,1,15,1,66.01778,14.28269,0,0,0,80.30047,0,0,0,9,0,3,77.40034,10.57626,.1442925,,0,0,1,1,1.098612,0,0,0,0,0,0,0,70.68995,8.977547,1.098612,4.385776,1 +11,6,0,0,2,631924,0,7922.171,1.079398,1,15,1,17.84358,3.454822,0,0,0,21.2984,0,0,0,3,0,3,77.40034,10.57626,.1442925,,0,0,1,1,1.098612,0,0,0,0,0,0,0,70.68995,8.977547,1.098612,3.058632,1 +11,6,0,0,3,631924,0,7922.171,2.079398,1,15,1,18.3391,4.044983,0,0,0,22.38408,0,0,0,2,0,4,77.40034,10.57626,.1442925,,0,0,1,1,1.386294,0,0,0,0,0,0,0,70.68995,8.977547,1.386294,3.10835,1 +11,6,0,0,1,631925,.5112414,6735.316,.3531828,1,7,1,4.168404,0,0,0,0,4.168404,0,0,0,1,0,4,77.40034,10.57626,.1442925,,0,0,1,1,1.386294,0,0,0,0,0,0,0,70.68995,8.815269,1.386294,1.427533,1 +11,6,0,0,2,631925,.5112414,6735.316,1.353183,1,7,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,.1442925,,0,0,1,1,1.386294,0,0,0,0,0,0,0,70.68995,8.815269,1.386294,,0 +11,6,0,0,3,631925,.5112414,6735.316,2.353183,1,7,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,.1442925,,0,0,1,1,1.386294,0,0,0,0,0,0,0,70.68995,8.815269,1.386294,,0 +11,6,0,0,2,631926,1,6735.316,.6358659,0,0,1,0,0,0,0,0,0,0,0,0,0,0,9,77.40034,10.57626,.1442925,,0,0,1,0,2.197225,0,0,0,0,0,0,0,70.68995,8.815269,2.197225,,0 +11,6,0,0,3,631926,1,6735.316,1.635866,0,0,1,0,0,0,0,0,0,0,0,0,0,0,9,77.40034,10.57626,.1442925,,0,0,1,0,2.197225,0,0,0,0,0,0,0,70.68995,8.815269,2.197225,,0 +13,6,0,0,1,631927,1,1989.247,.1149897,1,12,1,36.39441,0,0,0,0,36.39441,0,0,0,2,0,3,77.40034,10.57626,.1442925,,300,300,1,1,1.098612,5.703783,1,4.564348,5.755076,0,0,0,70.68995,7.596014,1.098612,3.594415,1 +13,6,0,0,2,631927,1,1989.247,1.11499,1,12,.1530055,18.60289,1.898254,0,0,0,20.50114,0,0,0,1,0,3,77.40034,10.57626,.1442925,,300,300,1,1,1.098612,5.703783,1,4.564348,5.755076,0,0,0,70.68995,7.596014,1.098612,3.02048,1 +16,6,95,0,1,631928,0,9325.653,.0273785,1,13,1,70.67732,21.07699,0,0,0,91.75431,0,0,0,14,0,3,77.40034,10.57626,.1442925,,1000,1000,1,1,1.098612,6.907755,0,4.564348,6.959049,0,0,0,70.68995,9.140632,1.098612,4.519114,1 +16,6,95,0,2,631928,0,9325.653,1.027379,1,13,1,64.60143,57.96373,0,0,0,122.5652,0,0,0,14,0,3,77.40034,10.57626,.1442925,,1000,1000,1,1,1.098612,6.907755,0,4.564348,6.959049,0,0,0,70.68995,9.140632,1.098612,4.808643,1 +16,6,95,0,3,631928,0,9325.653,2.027379,1,13,1,318.5763,51.61578,0,0,0,370.1921,0,0,0,14,0,3,77.40034,10.57626,.1442925,,1000,1000,1,1,1.098612,6.907755,0,4.564348,6.959049,0,0,0,70.68995,9.140632,1.098612,5.914022,1 +13,6,0,0,1,631929,1,6735.316,.0328542,0,12,1,5.002084,0,0,0,0,5.002084,0,0,0,1,0,10,77.40034,10.57626,.1442925,,450,150,1,0,2.302585,5.010635,1,4.564348,6.160541,0,0,0,70.68995,8.815269,2.302585,1.609855,1 +13,6,0,0,2,631929,1,6735.316,1.032854,0,12,1,24.75619,2.606902,0,0,0,27.36309,0,0,0,1,0,9,77.40034,10.57626,.1442925,,450,150,1,0,2.197225,5.010635,1,4.564348,6.160541,0,0,0,70.68995,8.815269,2.197225,3.309195,1 +13,6,0,0,3,631929,1,6735.316,2.032854,0,12,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,.1442925,,450,150,1,0,1.94591,5.010635,1,4.564348,6.160541,0,0,0,70.68995,8.815269,1.94591,,0 +13,6,0,0,2,631939,.5112414,4556.067,.6194388,1,12,1,18.13374,0,0,0,0,18.13374,0,0,0,0,0,4,77.40034,10.57626,.1442925,,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,70.68995,8.424435,1.386294,2.897774,1 +13,6,0,0,3,631939,.5112414,4556.067,1.619439,1,12,1,5.831904,0,0,0,0,5.831904,0,0,0,1,0,4,77.40034,10.57626,.1442925,,450,450,1,1,1.386294,6.109248,1,4.564348,6.160541,0,0,0,70.68995,8.424435,1.386294,1.763344,1 +13,6,0,0,2,631941,1,2479.775,.6468173,1,6,1,22.66717,0,0,0,0,22.66717,0,0,0,5,0,4,77.40034,10.57626,.1442925,,450,300,1,1,1.386294,5.703783,1,4.564348,6.160541,0,0,0,70.68995,7.816326,1.386294,3.120918,1 +13,6,0,0,3,631941,1,2479.775,1.646817,1,6,1,24.69983,0,0,0,0,24.69983,0,0,0,0,0,4,77.40034,10.57626,.1442925,,450,300,1,1,1.386294,5.703783,1,4.564348,6.160541,0,0,0,70.68995,7.816326,1.386294,3.206796,1 +11,6,0,0,4,631945,0,11458.65,.4784394,1,16,1,138.1929,8.595292,0,0,0,146.7882,0,0,0,9,0,4,77.40034,10.57626,.1442925,,0,60,1,1,1.386294,4.094345,0,0,0,0,0,0,70.68995,9.346587,1.386294,4.98899,1 +11,6,0,0,5,631945,0,11458.65,1.478439,1,16,1,22.49135,15.56747,0,0,0,38.05882,0,0,0,5,0,4,77.40034,10.57626,.1442925,,0,60,1,1,1.386294,4.094345,0,0,0,0,0,0,70.68995,9.346587,1.386294,3.639133,1 +11,6,0,0,2,631948,1,8102.918,.4168378,0,12,1,72.51329,38.0372,0,0,0,110.5505,0,0,0,15,0,4,77.40034,10.57626,.1442925,,0,0,1,0,1.386294,0,0,0,0,0,0,0,70.68995,9.000103,1.386294,4.705472,1 +11,6,0,0,3,631948,1,8102.918,1.416838,0,12,1,36.33218,21.37716,0,0,0,57.70934,0,0,0,6,0,4,77.40034,10.57626,.1442925,,0,0,1,0,1.386294,0,0,0,0,0,0,0,70.68995,9.000103,1.386294,4.055419,1 +6,6,25,0,4,631949,1,1759.531,.5468857,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,.1442925,,750,0,1,1,1.609438,0,0,3.258096,8.006368,0,0,0,70.68995,7.473371,1.609438,,0 +6,6,25,0,5,631949,1,1759.531,1.546886,1,12,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,.1442925,,750,0,1,1,1.609438,0,0,3.258096,8.006368,0,0,0,70.68995,7.473371,1.609438,,0 +15,6,95,0,2,631959,1,10112.13,.2772074,1,12,1,102.5057,12.03493,0,0,0,114.5406,0,0,0,16,0,3,77.40034,10.57626,.1442925,,1000,1000,1,1,1.098612,6.907755,0,4.564348,6.959049,0,0,0,70.68995,9.22159,1.098612,4.74093,1 +15,6,95,0,3,631959,1,10112.13,1.277207,1,12,1,0,0,0,0,0,0,0,0,0,0,0,3,77.40034,10.57626,.1442925,,1000,1000,1,1,1.098612,6.907755,0,4.564348,6.959049,0,0,0,70.68995,9.22159,1.098612,,0 +13,6,0,0,1,631964,1,6735.316,1.713895,0,10,1,53.42869,11.90156,0,0,0,65.33025,0,0,0,3,0,4,77.40034,10.57626,.1442925,,450,450,1,0,1.386294,6.109248,1,4.564348,6.160541,0,0,0,70.68995,8.815269,1.386294,4.179455,1 +13,6,0,0,2,631964,1,6735.316,2.713895,0,10,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,.1442925,,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,70.68995,8.815269,1.609438,,0 +13,6,0,0,3,631964,1,6735.316,3.713895,0,10,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,.1442925,,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,70.68995,8.815269,1.609438,,0 +13,6,0,0,4,631970,0,10029.33,.3990417,1,16,1,52.13803,10.31133,0,0,0,62.44936,0,0,0,9,0,4,77.40034,10.57626,.1442925,,300,349.96,1,1,1.386294,5.857819,1,4.564348,5.755076,0,0,0,70.68995,9.213368,1.386294,4.134356,1 +13,6,0,0,5,631970,0,10029.33,1.399042,1,16,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,.1442925,,300,349.96,1,1,1.386294,5.857819,1,4.564348,5.755076,0,0,0,70.68995,9.213368,1.386294,,0 +13,6,0,0,2,631971,1,6735.316,.2224504,0,10,1,9.066868,1.911598,0,0,0,10.97847,0,0,0,2,0,5,77.40034,10.57626,.1442925,,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,70.68995,8.815269,1.609438,2.395936,1 +13,6,0,0,3,631971,1,6735.316,1.22245,0,10,1,0,0,0,0,0,0,0,0,0,0,0,5,77.40034,10.57626,.1442925,,450,450,1,0,1.609438,6.109248,1,4.564348,6.160541,0,0,0,70.68995,8.815269,1.609438,,0 +11,6,0,0,4,631972,1,5319.648,.284052,1,12,1,57.2018,12.64066,0,0,0,69.84246,0,0,0,12,0,8,77.40034,10.57626,.1442925,,0,206.44,1,1,2.079442,5.33001,0,0,0,0,0,0,70.68995,8.57935,2.079442,4.246242,1 +11,6,0,0,5,631972,1,5319.648,1.284052,1,12,1,47.023,7.154939,0,0,475.3045,529.4824,1,0,0,2,0,8,77.40034,10.57626,.1442925,,0,206.44,1,1,2.079442,5.33001,0,0,0,0,0,0,70.68995,8.57935,2.079442,6.2719,1 +13,6,0,0,2,631973,1,1714.286,.0362765,1,10,1,0,0,0,0,0,0,0,0,0,0,0,6,77.40034,10.57626,.1442925,,450,150,1,1,1.791759,5.010635,1,4.564348,6.160541,0,0,0,70.68995,7.447335,1.791759,,0 +13,6,0,0,3,631973,1,1714.286,1.036277,1,10,1,0,0,0,0,0,0,0,0,0,0,0,6,77.40034,10.57626,.1442925,,450,150,1,1,1.791759,5.010635,1,4.564348,6.160541,0,0,0,70.68995,7.447335,1.791759,,0 +11,6,0,0,4,631974,0,7864.516,.155373,1,12,1,58.55686,8.235739,0,0,0,66.79259,0,0,0,8,0,5,77.40034,10.57626,.1442925,,0,525.76,1,1,1.609438,6.264845,0,0,0,0,0,0,70.68995,8.970243,1.609438,4.201592,1 +11,6,0,0,5,631974,0,7864.516,1.155373,1,12,1,110.4631,17.91767,42.45626,0,0,170.8371,0,0,0,10,0,5,77.40034,10.57626,.1442925,,0,525.76,1,1,1.609438,6.264845,0,0,0,0,0,0,70.68995,8.970243,1.609438,5.14071,1 +11,6,0,0,3,631980,1,5123.912,.9459274,0,12,1,38.40831,0,0,0,0,38.40831,0,0,0,7,0,3,77.40034,10.57626,.1442925,,0,192.48,1,0,1.098612,5.259992,0,0,0,0,0,0,70.68995,8.541868,1.098612,3.648274,1 +11,6,0,0,4,631981,1,10933.14,.1252567,1,7,1,39.38485,11.24531,0,0,0,50.63016,0,0,0,7,0,8,77.40034,10.57626,.1442925,,0,424.32,1,1,2.079442,6.050488,0,0,0,0,0,0,70.68995,9.299645,2.079442,3.924547,1 +11,6,0,0,5,631981,1,10933.14,1.125257,1,7,1,3.38295,1.809878,0,0,0,5.192828,0,0,0,1,0,8,77.40034,10.57626,.1442925,,0,424.32,1,1,2.079442,6.050488,0,0,0,0,0,0,70.68995,9.299645,2.079442,1.647278,1 +11,6,0,0,5,632004,1,6735.316,.8651608,1,7,1,18.86792,9.451115,0,0,0,28.31904,0,0,0,1,0,4,77.40034,10.57626,.1442925,,0,152.88,1,1,1.386294,5.029653,0,0,0,0,0,0,70.68995,8.815269,1.386294,3.343534,1 +18,6,25,0,3,632005,0,12182.8,.9240246,1,16,1,87.78755,1.894452,0,0,0,89.682,0,0,0,21,0,3,77.40034,10.57626,.1442925,,194.38,194.38,1,1,1.098612,5.269815,0,3.258096,6.656109,0,0,0,70.68995,9.407862,1.098612,4.49627,1 +14,6,95,0,3,632008,1,3400.922,.7761807,1,7,1,0,0,0,0,0,0,0,0,0,0,0,10,77.40034,10.57626,.1442925,,48.6,48.6,1,1,2.302585,3.883624,0,4.564348,3.934917,0,0,0,70.68995,8.132095,2.302585,,0 +11,6,0,0,3,632010,1,7187.404,.7734429,0,5,1,15.57093,6.792387,0,0,0,22.36332,0,0,0,3,0,14,77.40034,10.57626,.1442925,,0,106.56,1,0,2.639057,4.668708,0,0,0,0,0,0,70.68995,8.880224,2.639057,3.107422,1 +6,6,25,0,3,632020,0,12762.93,.7679672,0,12,1,38.06228,0,11.87543,0,0,49.93772,0,0,0,5,0,5,77.40034,10.57626,.1442925,,750,750,1,0,1.609438,6.620073,0,3.258096,8.006368,0,0,0,70.68995,9.454378,1.609438,3.910777,1 +6,6,25,0,3,632021,0,12762.93,.7679672,1,12,1,67.12803,0,0,0,0,67.12803,0,0,0,8,0,5,77.40034,10.57626,.1442925,,750,750,1,1,1.609438,6.620073,0,3.258096,8.006368,0,0,0,70.68995,9.454378,1.609438,4.206602,1 +13,6,0,0,5,632022,0,9228.152,.7857632,1,12,1,68.78216,2.058319,21.76329,0,0,92.60378,0,0,0,8,0,3,77.40034,10.57626,.1442925,,300,300,1,1,1.098612,5.703783,1,4.564348,5.755076,0,0,0,70.68995,9.130122,1.098612,4.52833,1 +11,6,0,0,3,632024,0,13767.03,.7542779,0,10,1,116.9811,38.47684,0,0,0,155.458,0,0,0,11,0,4,77.40034,10.57626,.1442925,,0,0,1,0,1.386294,0,0,0,0,0,0,0,70.68995,9.530105,1.386294,5.046375,1 +11,6,0,0,3,632030,1,3700.973,.7405887,1,12,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,.1442925,,0,168.4,1,1,1.94591,5.126342,0,0,0,0,0,0,70.68995,8.216621,1.94591,,0 +11,6,0,0,3,632031,0,7922.171,.5982204,1,15,1,54.32526,7.865052,0,0,0,62.19031,0,0,0,6,0,4,77.40034,10.57626,.1442925,,0,0,1,1,1.386294,0,0,0,0,0,0,0,70.68995,8.977547,1.386294,4.130199,1 +11,6,0,0,3,632032,.5112414,6735.316,.4284737,0,12,1,92.68293,42.0662,0,0,0,134.7491,0,0,0,20,0,4,77.40034,10.57626,.1442925,,0,0,1,0,1.386294,0,0,0,0,0,0,0,70.68995,8.815269,1.386294,4.903415,1 +19,6,25,0,3,632036,0,5479.263,.7734429,1,12,1,11.76471,0,0,0,0,11.76471,0,0,0,2,0,8,77.40034,10.57626,.1442925,,696.3,884,1,1,2.079442,6.784457,0,3.258096,7.932075,0,0,0,70.68995,8.608909,2.079442,2.465104,1 +19,6,25,0,3,632037,0,5479.263,.6830938,0,12,1,5.882353,1.965398,0,0,0,7.847751,0,0,0,1,0,8,77.40034,10.57626,.1442925,,696.3,884,1,0,2.079442,6.784457,0,3.258096,7.932075,0,0,0,70.68995,8.608909,2.079442,2.060227,1 +10,6,50,0,3,632038,1,1264.721,.6119096,0,10,1,36.70669,0,0,0,0,36.70669,0,0,0,3,0,7,77.40034,10.57626,.1442925,,795,0,1,0,1.94591,0,0,3.931826,7.37149,0,0,0,70.68995,7.143397,1.94591,3.602959,1 +13,6,0,0,5,632045,1,6735.316,.3066393,0,11,1,0,0,0,0,0,0,0,0,0,0,0,7,77.40034,10.57626,.1442925,,450,450,1,0,1.94591,6.109248,1,4.564348,6.160541,0,0,0,70.68995,8.815269,1.94591,,0 +17,6,25,0,5,632050,0,8273.9,.4544832,1,8,1,34.64837,0,0,0,0,34.64837,0,0,0,5,0,5,77.40034,10.57626,.1442925,,650,650,1,1,1.609438,6.476973,0,3.258096,7.863267,0,0,0,70.68995,9.020982,1.609438,3.545251,1 +5,6,25,0,3,632051,0,8730.671,.275154,0,8,1,29.50257,4.51801,0,0,0,34.02058,0,0,0,0,0,5,77.40034,10.57626,.1442925,,670,670,1,0,1.609438,6.507277,0,3.258096,7.893572,0,0,0,70.68995,9.074712,1.609438,3.526966,1 +14,6,95,0,3,632058,1,3400.922,.3737166,0,7,1,5.882353,0,0,0,0,5.882353,0,0,0,1,0,10,77.40034,10.57626,.1442925,,48.6,48.6,1,0,2.302585,3.883624,0,4.564348,3.934917,0,0,0,70.68995,8.132095,2.302585,1.771957,1 +19,6,25,0,3,632064,1,6735.316,.5845311,1,8,1,0,0,0,0,0,0,0,0,0,0,0,4,77.40034,10.57626,.1442925,,524.7,524.7,1,1,1.386294,6.262826,0,3.258096,7.649121,0,0,0,70.68995,8.815269,1.386294,,0 +11,6,0,0,2,632073,0,6735.316,.4031485,1,6,1,11.38952,7.517084,0,0,0,18.90661,0,0,0,2,0,7,77.40034,10.57626,.1442925,,0,216.48,1,1,1.94591,5.377498,0,0,0,0,0,0,70.68995,8.815269,1.94591,2.939512,1 +11,6,0,0,3,632073,0,6735.316,1.403149,1,6,1,0,0,0,0,0,0,0,0,0,0,0,8,77.40034,10.57626,.1442925,,0,216.48,1,1,2.079442,5.377498,0,0,0,0,0,0,70.68995,8.815269,2.079442,,0 +18,6,25,0,3,632075,0,7493.087,.3052704,0,12,1,98.96194,16.81661,0,0,467.4741,583.2526,1,0,0,8,0,5,77.40034,10.57626,.1442925,,750,967.6,1,0,1.609438,6.874819,0,3.258096,8.006368,0,0,0,70.68995,8.921869,1.609438,6.36862,1 +18,6,25,0,3,632166,0,1896.569,.0561259,0,12,1,61.93772,4.865052,0,0,0,66.80276,0,0,0,8,0,6,77.40034,10.57626,.1442925,,173.5,173.5,1,0,1.791759,5.156178,0,3.258096,6.542472,0,0,0,70.68995,7.548329,1.791759,4.201745,1 +6,6,25,0,3,632167,1,6735.316,.1054073,1,12,1,28.02768,6.813149,0,0,0,34.84083,0,0,0,6,0,4,77.40034,10.57626,.1442925,,750,750,1,1,1.386294,6.620073,0,3.258096,8.006368,0,0,0,70.68995,8.815269,1.386294,3.55079,1 diff --git a/statsmodels/datasets/scotland/R_scotvote.s b/statsmodels/datasets/scotland/R_scotvote.s new file mode 100644 index 0000000..6ab81af --- /dev/null +++ b/statsmodels/datasets/scotland/R_scotvote.s @@ -0,0 +1,17 @@ +### SETUP ### +d <- read.table("./scotvote.csv",sep=",", header=T) +attach(d) + +### MODEL ### +m1 <- glm(YES ~ COUTAX * UNEMPF + MOR + ACT + GDP + AGE, + family=Gamma) +results <- summary.glm(m1) +results +results['coefficients'] +logLik(m1) +scale <- results$disp +Y <- YES +mu <- m1$fitted +llf <- -1/scale * sum(Y/mu+log(mu)+(scale-1)*log(Y)+log(scale)+scale*lgamma(1/scale)) +print(llf) +print("This is the llf calculated with the formula") diff --git a/statsmodels/datasets/scotland/__init__.py b/statsmodels/datasets/scotland/__init__.py new file mode 100644 index 0000000..df22d8b --- /dev/null +++ b/statsmodels/datasets/scotland/__init__.py @@ -0,0 +1 @@ +from .data import * diff --git a/statsmodels/datasets/scotland/data.py b/statsmodels/datasets/scotland/data.py new file mode 100644 index 0000000..7334d11 --- /dev/null +++ b/statsmodels/datasets/scotland/data.py @@ -0,0 +1,87 @@ +"""Taxation Powers Vote for the Scottish Parliament 1997 dataset.""" + +__docformat__ = 'restructuredtext' + +COPYRIGHT = """Used with express permission from the original author, +who retains all rights.""" +TITLE = "Taxation Powers Vote for the Scottish Parliamant 1997" +SOURCE = """ +Jeff Gill's `Generalized Linear Models: A Unified Approach` + +http://jgill.wustl.edu/research/books.html +""" +DESCRSHORT = """Taxation Powers' Yes Vote for Scottish Parliamanet-1997""" + +DESCRLONG = """ +This data is based on the example in Gill and describes the proportion of +voters who voted Yes to grant the Scottish Parliament taxation powers. +The data are divided into 32 council districts. This example's explanatory +variables include the amount of council tax collected in pounds sterling as +of April 1997 per two adults before adjustments, the female percentage of +total claims for unemployment benefits as of January, 1998, the standardized +mortality rate (UK is 100), the percentage of labor force participation, +regional GDP, the percentage of children aged 5 to 15, and an interaction term +between female unemployment and the council tax. + +The original source files and variable information are included in +/scotland/src/ +""" + +NOTE = """:: + + Number of Observations - 32 (1 for each Scottish district) + + Number of Variables - 8 + + Variable name definitions:: + + YES - Proportion voting yes to granting taxation powers to the + Scottish parliament. + COUTAX - Amount of council tax collected in pounds steling as of + April '97 + UNEMPF - Female percentage of total unemployment benefits claims as of + January 1998 + MOR - The standardized mortality rate (UK is 100) + ACT - Labor force participation (Short for active) + GDP - GDP per county + AGE - Percentage of children aged 5 to 15 in the county + COUTAX_FEMALEUNEMP - Interaction between COUTAX and UNEMPF + + Council district names are included in the data file, though are not + returned by load. +""" + +import numpy as np +from statsmodels.datasets import utils as du +from os.path import dirname, abspath + +def load(): + """ + Load the Scotvote data and returns a Dataset instance. + + Returns + ------- + Dataset instance: + See DATASET_PROPOSAL.txt for more information. + """ + data = _get_data() + return du.process_recarray(data, endog_idx=0, dtype=float) + +def load_pandas(): + """ + Load the Scotvote data and returns a Dataset instance. + + Returns + ------- + Dataset instance: + See DATASET_PROPOSAL.txt for more information. + """ + data = _get_data() + return du.process_recarray_pandas(data, endog_idx=0, dtype=float) + +def _get_data(): + filepath = dirname(abspath(__file__)) + with open(filepath + '/scotvote.csv',"rb") as f: + data = np.recfromtxt(f, delimiter=",", + names=True, dtype=float, usecols=(1,2,3,4,5,6,7,8)) + return data diff --git a/statsmodels/datasets/scotland/scotvote.csv b/statsmodels/datasets/scotland/scotvote.csv new file mode 100644 index 0000000..021b626 --- /dev/null +++ b/statsmodels/datasets/scotland/scotvote.csv @@ -0,0 +1,33 @@ +"COUNCILDIST","YES","COUTAX","UNEMPF","MOR","ACT","GDP","AGE","COUTAX_FEMALEUNEMP" +"Aberdeen_City",60.3,712,21,105,82.4,13566,12.3,14952 +"Aberdeenshire",52.3,643,26.5,97,80.2,13566,15.3,17039.5 +"Angus",53.4,679,28.3,113,86.3,9611,13.9,19215.7 +"Argyll_and_Bute",57,801,27.1,109,80.4,9483,13.6,21707.1 +"Clackmannanshire",68.7,753,22,115,64.7,9265,14.6,16566 +"Dumfries_and_Galloway",48.8,714,24.3,107,79,9555,13.8,17350.2 +"Dundee_City",65.5,920,21.2,118,72.2,9611,13.3,19504 +"East_Ayrshire",70.5,779,20.5,114,75.2,9483,14.5,15969.5 +"East_Dunbartonshire",59.1,771,23.2,102,81.1,9483,14.2,17887.2 +"East_Lothian",62.7,724,20.5,112,80.3,12656,13.7,14842 +"East_Renfrewshire",51.6,682,23.8,96,83,9483,14.6,16231.6 +"Edinburgh_City",62,837,22.1,111,74.5,12656,11.6,18497.7 +"Eilean_Siar_(Western_Isles)",68.4,599,19.9,117,83.8,8298,15.1,11920.1 +"Falkirk",69.2,680,21.5,121,77.6,9265,13.7,14620 +"Fife",64.7,747,22.5,109,77.9,8314,14.4,16807.5 +"Glasgow_City",75,982,19.4,137,65.3,9483,13.3,19050.8 +"Highland",62.1,719,25.9,109,80.9,8298,14.9,18622.1 +"Inverclyde",67.2,831,18.5,138,80.2,9483,14.6,15373.5 +"Midlothian",67.7,858,19.4,119,84.8,12656,14.3,16645.2 +"Moray",52.7,652,27.2,108,86.4,13566,14.6,17734.4 +"North_Ayrshire",65.7,718,23.7,115,73.5,9483,15,17016.6 +"North_Lanarkshire",72.2,787,20.8,126,74.7,9483,14.9,16369.6 +"Orkney_Islands",47.4,515,26.8,106,87.8,8298,15.3,13802 +"Perth_and_Kinross",51.3,732,23,103,86.6,9611,13.8,16836 +"Renfrewshire",63.6,783,20.5,125,78.5,9483,14.1,16051.5 +"Scottish_Borders_The",50.7,612,23.7,100,80.6,9033,13.3,14504.4 +"Shetland_Islands",51.6,486,23.2,117,84.8,8298,15.9,11275.2 +"South_Ayrshire",56.2,765,23.6,105,79.2,9483,13.7,18054 +"South_Lanarkshire",67.6,793,21.7,125,78.4,9483,14.5,17208.1 +"Stirling",58.9,776,23,110,77.2,9265,13.6,17848 +"West_Dunbartonshire",74.7,978,19.3,130,71.5,9483,15.3,18875.4 +"West_Lothian",67.3,792,21.2,126,82.2,12656,15.1,16790.4 diff --git a/statsmodels/datasets/scotland/src/scotland.readme b/statsmodels/datasets/scotland/src/scotland.readme new file mode 100644 index 0000000..8e30f56 --- /dev/null +++ b/statsmodels/datasets/scotland/src/scotland.readme @@ -0,0 +1,27 @@ +######################################################################################################### +# # +# This archive is part of the free distribution of data and statistical software code for # +# "Generalized Linear Models: A Unified Approach", Jeff Gill, Sage QASS Series. You are # +# free to use, modify, distribute, publish, etc. provided attribution. Please forward # +# bugs, complaints, comments, and useful changes to: jgill@latte.harvard.edu. # +# # +######################################################################################################### + +Electoral Politics in Scotland. These data are from the 1997 vote that established a Scottish +Parliament with taxing powers. The data are culled from several different official UK documents +provided by the Office for National Statistics, the General Register Office for Scotland, the +Scottish Office: Education and Industry Department, the Scottish Department for Education +and Employment, The Scottish Office Office: Development Department, and David Boothroyd (thank you). +The files in this zip archive are: + +scotland.readme this file +scotvote.dat the data file with a header indicating + +scotland_births.html +scotland_changes.html +scotland_devolution.html +scotland_econ_summary.html +scotland_economics.html +scotland_education.html +scotland_housing.html +scotland_population.html these are html files with various details on the variables included. diff --git a/statsmodels/datasets/scotland/src/scotland_births.html b/statsmodels/datasets/scotland/src/scotland_births.html new file mode 100644 index 0000000..2847080 --- /dev/null +++ b/statsmodels/datasets/scotland/src/scotland_births.html @@ -0,0 +1,312 @@ + + + + + +Cross-sectional dataset viewer v1.1 + + + + + + + + + + + + + +
    + Home + + StatSearch + + Text Search + + StatStore + + FAQ + +   +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Dataset Display - Cross-Sectional

    Dataset Name: + RT331602 +
    Title: + + Vital and social statistics: Scotland +
    Description:Vital and social statistics: Scotland

    This dataset has been compiled from data published in Regional Trends 33, 1998 edition published on 25 June 1998.

    Source: + Office for National Statistics; General Register Office for Scotland +
    Time Frame: + 1996 +
    Geographic Coverage: + United Kingdom + +
    Universe: + UK live births +
    Measure: + various +
    Units: + See table +
    Scalar: + various +
    Formula: + none +
    + + + +


    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Table Dimensions
    Please select at least one item from each list and "Display Selection" or choose "Display All"
    To select list items either hold down 'Ctrl' key and click each item required, or click the first item and hold down the mouse button whilst scrolling down the list.
    + Region + + 4 + + Measure + + +
    + + + +
     
    To change your selection, click in the appropriate box
    + + + +
    + + + + + + + + + + +
    + + + Table + + + + +
    Live births per 1,000 population 19961Deaths per 1,000 population 19961Perinatal mortality rate, 3 year average, 1994-19962Infant mortality rate, 3 year average, 1994-19963Percentage of live births outside marriage 1996
    United Kingdom12.510.98.86.136.0
    Scotland11.611.89.36.236.0
    Aberdeen City11.010.47.75.735.0
    Aberdeenshire11.39.09.03.824.0
    Angus311.013.25.63.233.0
    Argyll and Bute10.513.88.67.033.0
    Clackmannanshire12.311.310.46.340.0
    Dumfries and Galloway10.912.88.87.834.0
    Dundee City11.513.18.66.851.0
    East Ayrshire311.411.612.36.540.0
    East Dunbartonshire10.59.28.17.219.0
    East Lothian12.312.67.65.229.0
    East Renfrewshire11.59.57.46.219.0
    Edinburgh, City of11.411.78.16.433.0
    Eilean Siar (Western Isles)239.714.911.25.719.0
    Falkirk11.711.77.94.834.0
    Fife11.011.48.77.137.0
    Glasgow City12.514.011.16.949.0
    Highland11.411.48.36.534.0
    Inverclyde11.714.511.58.045.0
    Midlothian11.210.710.86.035.0
    Moray12.411.09.87.426.0
    North Ayrshire2311.311.811.66.942.0
    North Lanarkshire12.511.111.68.538.0
    Orkney Islands10.911.67.51.430.0
    Perth and Kinross310.512.69.85.929.0
    Renfrewshire311.911.68.04.539.0
    Scottish Borders, The310.712.88.04.928.0
    Shetland Islands2311.710.99.96.528.0
    South Ayrshire10.112.76.24.333.0
    South Lanarkshire11.511.39.25.133.0
    Stirling11.111.87.74.933.0
    West Dunbartonshire12.512.711.78.742.0
    West Lothian13.19.58.74.633.0
    +
    + + + + +
    Footnotes
    1 -Births are on the basis of year of occurrence in England and Wales and year of registration in Scotland and Northern Ireland. Deaths relate to year of registration.
    2 -Still births and deaths of infants under 1 week of age per 1,000 live and still births. Figures for some Council areas should be treated with caution as the perinatal mortality rate was based on fewer than 20 deaths.
    3 -Deaths of infants under 1 year of age per 1,000 live births. Figures for some Council areas should be treated with caution as the infant mortality rate was based on fewer than 20 deaths.
    4 -New Councils for Scotland
    +
    + \ No newline at end of file diff --git a/statsmodels/datasets/scotland/src/scotland_changes.html b/statsmodels/datasets/scotland/src/scotland_changes.html new file mode 100644 index 0000000..b8aba9e --- /dev/null +++ b/statsmodels/datasets/scotland/src/scotland_changes.html @@ -0,0 +1,364 @@ + + + GENUKI: Administrative Areas of Scotland + + + +

    + + +GENUKI Home page + + + + + + + +
    + + + +Administrative Regions
    of the British Isles
       +Contents
    +
    + +

    Administrative Areas of Scotland

    + +

    The first table below +shows the historic counties and their administrative sub-divisions before +the first round of changes and lists the successor regions for each, that +is the post-change regions which contain some or all of the original county +area. The second table shows the regions after the first round of changes +and lists their successor unitary authorities. In all cases +only the top-tier authority is shown - either the top-tier in a two-tier +arrangement or a single tier authority (shown italicised).

    + +

    The tables also show the Chapman County Codes (CCC) for each county and +region. These are unique 3 letter codes.

    + +

    For a brief description of the administrative changes in the United Kingdom +see - Local Government Changes in the United +Kingdom.

    + +

    The following abbreviations are used in these tables:

    + +

    + + + + + + + + +
    Key
    (C)County of a City
    (U)Unitary Authority
    +

    + +

    Single-tier local authorities are shown italicised.

    + +

    The links in the following table are to outline maps showing the location of each +county.

    + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Scotland - changes of 1975
    Historic CountyCCCAdministration until 1975Successor Regions
    AberdeenshireABDAberdeenshire
    +Aberdeen (C)
    Grampian
    Angus (1)ANSAngus
    +Dundee (C)
    Tayside
    Argyllshire (2)ARLArgyllshireStrathclyde
    +Highland
    AyrshireAYRAyrshireStrathclyde
    BanffshireBANBanffshireGrampian
    BerwickshireBEWBerwickshireBorders
    Bute (3)BUTButeStrathclyde
    CaithnessCAICaithnessHighland
    ClackmannanshireCLKClackmannanshireCentral
    DunbartonshireDNBDunbartonshireStrathclyde
    DumfriesshireDFSDumfriesshireDumfries and Galloway
    East LothianELNEast LothianLothian
    FifeFIFFifeFife
    Inverness-shire (4)INVInverness-shireHighland
    +Western Isles
    KincardineshireKCDKincardineshireGrampian
    Kinross-shireKRSKinross-shireTayside
    KirkcudbrightshireKKDKirkcudbrightshireDumfries and Galloway
    LanarkshireLKSLanarkshire
    +Glasgow (C)
    Strathclyde
    MidlothianMLNMidlothian
    +Edinburgh (C)
    Lothian
    +Borders
    MorayMORMorayGrampian
    +Highland
    NairnshireNAINairnshireHighland
    Orkney (5)OKIOrkneyOrkney
    PeeblesshirePEEPeeblesshireBorders
    PerthshirePERPerthshireTayside
    +Central
    RenfrewshireRFWRenfrewshireStrathclyde
    Ross and Cromarty (6)ROCRoss and CromartyHighland
    +Western Isles
    RoxburghshireROXRoxburghshireBorders
    SelkirkshireSELSelkirkshireBorders
    Shetland (7)SHIShetlandShetland
    StirlingshireSTIStirlingshireCentral
    +Strathclyde
    SutherlandSUTSutherlandHighland
    West LothianWLNWest LothianLothian
    +Central
    WigtownshireWIGWigtownshireDumfries and Galloway
    +

    + +

    The links in the following table are to maps provided by the Scottish Office.

    + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Scotland - changes of 1996
    Administration 1975-1996CCCSuccessor Unitary Authorities
    BordersBORThe Scottish Borders (U)
    CentralCENClackmannanshire (U)
    +Falkirk (U)
    +Stirling (U)
    Dumfries and GallowayDGYDumfries and Galloway (U)
    FifeFIFFife (U)
    GrampianGMPAberdeenshire (U)
    +Aberdeen City (U)
    +Moray (U)
    Highland (8)HLDHighland (U)
    LothianLTNCity of Edinburgh (U)
    +East Lothian (U)
    +Midlothian (U)
    +West Lothian (U)
    Orkney (5)OKIOrkney Islands (U)
    Shetland (7)SHIShetland Islands (U)
    Strathclyde (9)STDArgyll and Bute (U)
    +City of Glasgow (U)
    +East Ayrshire (U)
    +East Dunbartonshire (U)
    +East Renfrewshire (U)
    +Inverclyde (U)
    +North Ayrshire (U)
    +North Lanarkshire (U)
    +Renfrewshire (U)
    +South Ayrshire (U)
    +South Lanarkshire (U)
    +West Dunbartonshire (U)
    TaysideTAYAngus (U)
    +Dundee City (U)
    +Perth and Kinross (U)
    Western Isles (10)WISWestern Isles (U)
    +

    + +

    Notes

    + +
      +
    1. An old name for Angus is "Forfarshire". +
    2. Includes islands: Islay, Jura and Mull. +
    3. Consists of islands Arran and Bute. +
    4. Includes islands: Lewis (part), North Uist, South + Uist, and Skye. +
    5. Also "Orkney Isles", or "Orkney Islands", + but NOT "The Orkneys"! +
    6. Includes part of the island of Lewis. +
    7. Also "Shetland Isles", or "Shetland + Islands", but NOT "The Shetlands"! Originally known as +"Zetland". +
    8. Includes the island of Skye. +
    9. Includes islands: Arran, Bute, Islay, Jura and Mull. +
    10. Includes islands: Lewis, North Uist and South Uist. +
    + +
    Return to top of page
    + +

    © GENUKI and Contributors 1993, 1997

    +
    +

    Page created by Phil Lloyd in January 1993. Revised and updated in +September 1997 by Brian Pears.

    + +

    [Last updated: 13th February 1999 - Brian Pears]

    + + + diff --git a/statsmodels/datasets/scotland/src/scotland_devolution.html b/statsmodels/datasets/scotland/src/scotland_devolution.html new file mode 100644 index 0000000..062931e --- /dev/null +++ b/statsmodels/datasets/scotland/src/scotland_devolution.html @@ -0,0 +1,233 @@ +Devolution referendum 97 result + +

    Devolution referendum 97 result


    +
    saltire shield'The reason we need a parliament in Scotland is partly so that we can repair some of the damage done by the last Government to, for example, the health service and our manufacturing industry, and partly to ensure that anti-democratic experiments like using Scotland to rehearse the poll tax can never happen again.'
    +The Duke of Hamilton & Brandon, whose ancestors resisted the 1707 Treaty of Union, 9 th September 1997. +
    Lion Rampant
    +
    +

    Devolution referendum 1997 - the results

    +(See the note below concerning the Fife count by David Boothroyd).

    +

    +Ballot paper

    + +

    Final votes

    + + + + +
    I agree that there should be a Scottish Parliament1,775,04574.3 %
    I do not agree that there should be a Scottish Parliament614,40025.7 %

    + + + + + +
    I agree that a Scottish Parliament should have tax-varying powers1,512,88963.5 %
    I do not agree that a Scottish Parliament should have tax-varying powers870,26336.5 %
    + +

    Votes by Unitary Authority

    + +

    I agree that there should be a Scottish Parliament

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    AuthorityYes votesYes %No votesNo %
    Orkney4,74957.3 %3,54142.7 %
    Dumfries & Galloway44,61960.7 %28,86339.3 %
    Perthshire & Kinross40,34461.7 %24,99838.3 %
    East Renfrewshire28,25361.7 %17,57338.3 %
    Shetland5,43062.4 %3,27537.6 %
    Scottish Borders33,85562.8 %20,06037.2 %
    Aberdeenshire61,62163.9 %34,87836.1 %
    Angus33,57164.7 %18,35035.3 %
    South Ayrshire40,16166.9 %19,90933.1 %
    Moray24,82267.2 %12,12232.8 %
    Argyll & Bute30,45267.3 %14,79632.7 %
    Stirling29,19068.5 %13,44031.5 %
    East Dunbartonshire40,91769.8 %17,72530.2 %
    Aberdeen65,03571.8 %25,58028.2 %
    Edinburgh155,90071.9 %60,83228.1 %
    Highland72,55172.6 %27,43127.4 %
    East Lothian33,52574.2 %11,66525.8 %
    Dundee49,25276.0 %15,55324.0 %
    Fife125,66876.1 %39,51723.9 %
    North Ayrshire51,30476.3 %15,93123.7 %
    South Lanarkshire114,90877.8 %32,76222.2 %
    Inverclyde31,68078.0 %8,94522.0 %
    Renfrewshire68,71179.0 %18,21321.0 %
    Western Isles9,97779.4 %2,58920.6 %
    West Lothian56,92379.6 %14,61420.4 %
    Midlothian31,68179.9 %7,97920.1 %
    Clackmannanshire18,79080.0 %4,70620.0 %
    Falkirk55,64280.0 %13,95320.0 %
    East Ayrshire49,13181.1 %11,42618.9 %
    North Lanarkshire123,06382.6 %26,01017.4 %
    Glasgow204,26983.6 %40,10616.4 %
    West Dunbartonshire39,05184.7 %7,05815.3 %
    Scotland1,775,04574.3 %614,40025.7 %

    + +

    I agree that a Scottish Parliament should have tax-varying powers

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    AuthorityYes votesYes %No votesNo %
    Orkney3,91747.4 %4,34452.6 %
    Dumfries & Galloway35,73748.8 %37,49951.2 %
    Scottish Borders27,28450.7 %26,49749.3 %
    Perthshire & Kinross33,39851.3 %31,70948.7 %
    East Renfrewshire23,58051.6 %22,15348.4 %
    Shetland4,47851.6 %4,19848.4 %
    Aberdeenshire50,29552.3 %45,92947.7 %
    Moray19,32652.7 %17,34447.3 %
    Angus27,64153.4 %24,08946.6 %
    South Ayrshire33,67956.2 %26,21743.8 %
    Argyll & Bute25,74657.0 %19,42943.0 %
    Stirling25,04458.9 %17,48741.1 %
    East Dunbartonshire34,57659.1 %23,91440.9 %
    Aberdeen54,32060.3 %35,70939.7 %
    Edinburgh133,84362.0 %82,18838.0 %
    Highland61,35962.1 %37,52537.9 %
    East Lothian28,15262.7 %16,76537.3 %
    Renfrewshire55,07563.6 %31,53736.4 %
    Fife108,02164.7 %58,98735.3 %
    Dundee42,30465.5 %22,28034.5 %
    North Ayrshire43,99065.7 %22,99134.3 %
    Inverclyde27,19467.2 %13,27732.8 %
    West Lothian47,99067.3 %23,35432.7 %
    South Lanarkshire99,58767.6 %47,70832.4 %
    Midlothian26,77667.7 %12,76232.3 %
    Western Isles8,55768.4 %3,94731.6 %
    Clackmannanshire16,11268.7 %7,35531.3 %
    Falkirk48,06469.2 %21,40330.8
    East Ayrshire42,55970.5 %17,82429.5 %
    North Lanarkshire107,28872.2 %41,37227.8 %
    West Dunbartonshire34,40874.7 %11,62825.3 %
    Glasgow182,58975.0 %60,84225.0 %
    Scotland1,512,88963.5 %870,26336.5 %
    + +
    +

    +

    How Scotland voted, region by region, in 1979

    + + + + + + + + + + + + + + + + +
    Region/Islands areaYes Votes% votes% electorateNo Votes% votes% electorateTurnout
    Shetland Islands 2,02027145,466733650
    Orkney Islands2,1042815 5,439723954
    Borders 20,7464027 30,780604067
    Dumfries & Galloway 27,1624026 40,239603864
    Grampian 94,9444828101,485523058
    Tayside 91,482493193,325513263
    Lothian 187,2215033186,421503366
    Highland 44,9735133 43,274493265
    Fife86,2525435 74,436463065
    Strathclyde 596,5195434508,599462963
    Central 71,2965536 59,105453066
    Western Isles6,2185628 4,933442250
    Scotland1,230,9375233*1,153,5024831*64*
    +*Percentage on register of 3,747,112 as adjusted by Secretary of State.

    +


    +

    Note by David Boothroyd concerning the Fife count

    + +I have been doing some work developing my website (which is now at +http://www.election.demon.co.uk/election.html) and while preparing the +results of the Scottish Parliament referendum I discovered a fairly big +discrepancy in the count from Fife Council.

    + +The Scottish Office press release giving the results of the referendum +(no. 1269/97) says that 166,554 people voted in Fife, which I presume +represents the number marked on registers as voting. On the first question, +the total number of votes (Yes, No and spoilt ballot papers) is 166,025.

    + +However on the second question, the total number of votes is 167,999 - +1,445 more than the number of ballot papers which should have been issued, +and 1,974 more than the number of ballot papers counted on the first question.

    + +All sources of results give the same figures and so I wrote to the Scottish +Office to ask them how this discrepancy might have come about. Their reply +suggests it may have resulted from voters demanding only the ballot paper +for the second question, though presiding officers were instructed to give +all voters both ballot papers, and such people would be marked as voting +and therefore included anyway.

    + +The Scottish Office verified that the results which were issued were those +which were certified by the counting officer in Fife and so they represent +the result of the referendum in spite of being inaccurate.

    + +


    +If anyone can shed any light on this please contact David Boothroyd at david@election.demon.co.uk

    + +


    + +

    +LinkExchange Network
    +
    + +Return to home page
    + + diff --git a/statsmodels/datasets/scotland/src/scotland_econ_summary.html b/statsmodels/datasets/scotland/src/scotland_econ_summary.html new file mode 100644 index 0000000..020b838 --- /dev/null +++ b/statsmodels/datasets/scotland/src/scotland_econ_summary.html @@ -0,0 +1,234 @@ + +Scottish Economic Bulletin: Economic Review + + +
    + +
    + + + + + +
    +
    Scottish Economic Bulletin 

    + + + + + +

     
    +

    The Scottish Economy

    +Gross Domestic Product +

    +Provisional estimates of GDP (income measure) for each UK Government Office Region/country are now available for 1996 with the publication of the Regional Accounts.7 Estimates for 1995 were also made available at county/former Scottish region level. +

    +Scottish GDP in 1996 was £54.43 billion, 8.6 per cent of UK GDP. GDP per head was £10,614, 99.1 per cent of the UK average. This was the fourth highest of the 12 UK Government Office Regions/countries - below only London, South East and Eastern - for the fifth successive year. +

    +GDP per head in Scotland relative to the UK increased strongly between 1989 and 1992, reflecting the stronger performance of the Scottish economy in the 1990-1992 UK recession. Since 1992, GDP per head has fluctuated around 99 per cent of UK GDP per head, reaching a peak of 100.2 per cent in 1995. +

    +Table 2 shows GDP per head in the former Scottish regions in 1995.8 It is instructive to look at trends and, accordingly, Table 2 also provides data for 1989. GDP per head was well above the UK average in both Grampian (133 per cent) and Lothian (124 per cent) in 1995. Although Grampian showed the smallest increase in GDP per head over the 1993-1995 period (and fell slightly relative to the UK), the level of GDP per head was third only to London and Berkshire across the UK, followed by Lothian. All other Scottish regions were below the UK average and GDP per head in the Highlands and Islands and in Fife was amongst the lowest in the UK. +

    +Table 2: GDP in the Scottish Regions, 1989 and 1995 +

    + + + + + + + + + + + + + + + + +
     GDP per head 1995 (£)GDP per head, 1990=100
    19891995
    Borders9,00380.188.3
    Central9,26589.190.8
    Dumfries and Galloway9,55586.493.7
    Fife8,31484.081.5
    Grampian13,566119.4133.0
    Highlands and Islands8,29880.481.4
    Lothian12,656111.4124.1
    Strathclyde9,48387.993.0
    Tayside9,61188.894.2
    Scotland10,24493.8100.2
    UK10,199100.0100.0
    +
    +Source: Office for National Statistics +

    +The improvement in Scottish GDP per head, relative to the UK, from 1989 has been evident across most Scottish regions. Lothian, Borders and Grampian have seen particularly marked improvements and only Fife had a lower relative level of GDP per head in 1995 than in 1989. Relative GDP per head in the Highlands and Islands has increased slightly but levels have fallen since the peak (of 88.8 per cent ) in 1991. +

    +

    Index of Production and Construction

    +The Scottish Office Education and Industry Department's quarterly Index of Production and Construction rose by 0.4 per cent in 1997 Q3. Excluding oil and gas, the Index rose by 0.5 per cent. At a broad sectoral level, output rose in manufacturing (0.9 per cent) and in electricity, gas and water supply (5.7 per cent), offset by falling output in construction (2.5 per cent) and mining and quarrying (1.8 per cent). The UK index (less oil and gas) rose by 0.7 per cent in 1997 Q3. +

    +An indication of the underlying trend in industrial output is obtained by comparing the last 4 quarters for which data are available (to 1997 Q3) with the previous 4 quarters (to 1996 Q3). Excluding oil and gas, the Index rose by 6.0 per cent over this period, as increases were recorded in manufacturing (7.4 per cent), construction (1.8 per cent), electricity, gas and water supply (5.7 per cent) and mining and quarrying (3.3 per cent). By comparison, the UK Index (less oil and gas) rose by 2.0 per cent over the same period. +

    +Since 1990, manufacturing output has increased by 25.6 per cent. Growth in UK manufacturing has been much more sluggish than in Scotland, growing by only 5.1 per cent over the same period. The influence of the electrical and instrument engineering sector (EIE) on Scottish manufacturing has been discussed in past editions of the Scottish Economic Bulletin and by outside commentators. Excluding EIE, manufacturing output in Scotland has declined by 7.7 per cent since 1990. UK manufacturing excluding EIE has increased by 1.8 per cent. +

    +In the year to 1997 Q3, the EIE sector continued to grow strongly - by 18.4 per cent. However, growth was also evident in 6 of the other 10 manufacturing sectors over the period. This is the continuation of a trend over the last year in which growth in the manufacturing sector has become more broadly based. Indeed as Chart 3 shows, manufacturing output excluding EIE has been increasing year-on-year in each quarter since 1996 Q4, a trend not seen since 1990 Q3. In the year to 1997 Q3, manufacturing output excluding EIE grew by 1.4 per cent, only slightly below the 1.5 per cent growth in the UK as a whole. +

    + +CHART 3 HERE +

    +Exports +

    +The manufacturing sector accounts for most of Scotland's external trade with the rest of the world. Estimates from the 1994 Input-Output Tables99 indicate that around three quarters of trade is in manufacturing. The Scottish Council Development and Industry (SCDI) annual survey of Scottish Manufactured Exports for 1996 was published in December 1997. In current prices, the value of Scottish manufactured exports10 was estimated to have risen by 6.4 per cent in 1996 to £18.42 billion. This represents a slower rate of growth than in recent years (20.3 per cent in 1995 and 24.8 per cent in 1994) and can be compared with growth of 8.9 per cent in UK manufactured exports (to £155.18 billion) in 1996. For the first time since 1988, UK manufactured exports growth outpaced that of Scotland and Scotland's share of UK exports fell marginally from 12.1 per cent in 1995 to 11.9 per cent in 1996. +

    +As shown in Table 3, four sectors - Office Machinery, Radio/TV/Communication Equipment, Whisky and Chemicals - continued to dominate Scottish manufactured exports in 1996, accounting for 75 per cent of the total. The electronics sector11 had a more mixed export performance in 1996 than in recent years. Exports grew by 6.9 per cent to £10.21 billion (55.5 per cent of total manufactured exports). This compares with growth of over 42 per cent in 1995. Exports from the Office Machinery sector - the largest exporting sector - rose by 14.3 per cent in 1996 to £6.83 billion (37.1 per cent of total manufactured exports). While this rate of growth was considerably lower than in 1995, the sector still contributed over 77 per cent to the total growth in manufactured exports in 1996. Exports from the other major element of Scotland's electronics industry - the Radio/TV/Communication Equipment sector - declined by 7.3 per cent to £3.00 billion. +

    +Table 3: Top Exporting Sectors in Scotland, 1996 +

    + + + + + + + + + + + + + + + + +
    Sector (SIC92)Value at current prices (£ million)Per cent of TotalNominal increase in value 1995-96: per centContribution to total export growth: per cent
    Office Machinery6,825.037.114.377.5
    Radio, Television & Communication3,003.816.3-7.3-21.6
    Equipment and Apparatus Whisky2,278.112.40.10.1
    Chemicals and Chemical Products1,706.49.39.213.1
    Machinery and Equipment nec802.24.418.411.4
    Other Food Products & Beverages446.02.4-10.7-4.8
    Fabricated Metal Products except Machinery and Equipment411.12.237.310.2
    Pulp, Paper and Paper Products387.02.1-2.0-0.7
    Coke, Refined Petroleum Products and Nuclear Fuel332.01.869.612.4
    Other Transport Equipment326.81.8-22.4-8.6
    Other sectors1,896.210.36.811.1
    All Manufacturing Industries18,414.6100.06.3100.0
    +
    +Source: Scottish Council Development and Industry +

    +Note: 1. Under SIC 92 Whisky is normally incorporated in the Food Products & Beverages sector. +

    +Exports from the whisky sector increased only marginally in 1996, up by 0.1 per cent to £2.28 billion (12.4 per cent of total manufactured exports). The Chemicals and Chemical Products sector experienced a further rise in exports in 1996, of 9.2 per cent to £1.71 billion (9.3 per cent of total manufactured exports). This follows growth of 9.0 per cent in 1995. An additional 19 industry sectors together represented 25 per cent of total manufactured exports in 1996. Export growth was recorded in 14 sectors. +

    +Overall the latest figures record a positive - and better than expected - performance by Scottish manufacturing in export markets during 1996. The SCDI quarterly index based on a selected panel survey of large exporters had provisionally estimated a fall of 6.8 per cent in manufactured exports. The rapid growth rates of recent years have slowed but export levels in most sectors continue to rise. Initial estimates from the SCDI quarterly index for 1997 suggest further growth of 12.0 per cent to £20.61 billion. +

    +Exports by Destination +

    +As shown in Table 4, the EU remained Scotland's main trading area in 1996 with a 58 per cent share of Scotland's exports. However, exports grew more modestly - by 2.9 per cent - in 1996. Six of the top ten individual country markets were in the EU, the others being the USA, Japan, Switzerland and Norway. The latest survey results confirm France as Scotland's largest export market for the fourth successive year, despite a drop in the actual value of exports of 5.4 per cent to £2.80 billion. (15.2 per cent of total Scottish manufactured exports). +

    +Table 4: Destination of Scottish Exports in 1996 +

    + + + + + + + + + + + + +
     Value (£ million, current prices)Per cent of totalNominal percentage growth in 1996Contribution to overall growth: per cent
    European Union10,75658.42.927.5
    North America2,31812.636.856.8
    Other Asia Pacific1,5568.4-14.2-23.5
    EFTA1,0725.816.413.7
    Japan8124.46.34.4
    Middle East5132.823.38.8
    Latin America5102.84.52.0
    Eastern Europe3962.253.512.6
    Africa3111.7-0.6-0.2
    Australasia1710.9-11.9-2.1
    +
    +Source: Scottish Council Development and Industry +

    +Exports to the USA rose by 38.3 per cent in 1996 to £2.22 billion. The USA was responsible for nearly 50 per cent of the increase in total Scottish exports and overtook Germany as the second largest market. There was a strong upturn in sales across the Office Machinery, Radio/TV/Communication Equipment, Coke/Petroleum and Chemicals sectors; the strength of the US economy a causal factor. North America displaced Other Asia Pacific as Scotland's second largest trading area. +

    +Exports to Japan continued to increase and remained the 7th largest country market for Scottish goods. Total exports to the Other Asia Pacific countries fell by 14.2 per cent in 1996, compared with strong growth of 30.9 per cent in 1995. However, this was almost entirely due to a large drop in exports to Malaysia; there were significant rises in exports to Hong Kong, Singapore and Taiwan. Elsewhere, exports to most other regions showed significant growth with sales to Eastern Europe up 53.5 per cent and exports to the Middle East up 23.3 per cent. Growth in sales were also recorded to the EFTA countries, while exports to Latin America continued to grow modestly. There was a marginal decline in sales to Africa following last year's significant increase, while exports to Australasia continued to decline. +

    +The Sterling Exchange Rate and Exports +

    +Inevitably, the strength of sterling has put pressure on Scottish exports. As one would expect, the exposure to exchange rate movements varies by sector in Scotland. This is illustrated in Table 5 which shows, at the broad sectoral level, the proportion of total domestic (i.e. Scottish) output dependent on exports outwith the UK (i.e. to the rest of the world, ROW) and the import content of that output from the same source. The table also shows the corresponding proportions for Scotland's trade with the rest of the UK (RUK). +

    +Table 5: The External Orientation of Scottish Industry, 1994 +

    + + + + + + + + + + + + + + +
    IndustryProportion of domestic output dependent on :Components of gross domestic output
    Exports to RUKExports to ROWImports from RUKImports from ROW
    Agriculture, Forestry and Fishing19.712.97.41.4
    Mining and Quarrying41.029.118.96.8
    Energy and Water Supply6.41.07.87.7
    Manufacturing26.741.818.818.2
    Construction6.00.017.73.9
    Transport and Communication20.08.48.92.5
    Distribution and Catering14.10.05.71.0
    Financial and Business Services12.35.810.81.9
    Other Services4.12.74.11.2
    Whole Economy16.516.312.07.3
    +
    +Source: The Scottish Office +

    +The manufacturing sector is clearly the most sensitive to the effects of exchange rate changes: over 40 per cent of output is exported to ROW and almost 20 per cent of inputs are imported from ROW. Within the sector (though not shown in the table), 2 industries - drink and electrical and instrument engineering - export more than two thirds of their output to ROW, while chemicals and electrical and instrument engineering also import more than a third of inputs. By contrast, the output of the service sector is much more dependent on the home market, relying less on exports to generate value added. The gross output of the service sector also embodies a lower import content. +

    +For manufacturing, available evidence from the SCDI for 1997 suggests that the strength of sterling is causing difficulties in terms of reduced margins and some job losses. However, as described above, it appears that it has not yet impacted upon the level of export sales, only profitability. +

    +Business survey evidence in Scotland does point to an adverse impact on exports resulting from sterling's strength but results are far from conclusive. The Scottish Chambers' Business Survey reported a decline in export orders and sales in 1997 Q4, as in Q3 and results from Scottish Engineering also revealed that export orders declined for the third successive quarter, falling in all sectors of the industry. By contrast, the CBI Industrial Trends Survey reported a return to growth in export orders and deliveries also increased significantly in the fourth quarter. However, optimism regarding export prospects fell markedly and, as one might expect, respondents continued to believe that prices would be the most important constraint on export orders over the coming months. +

    +One particular area in which the exchange rate may have been expected to affect activity levels is travel and tourism both to and from overseas. International Passenger Survey (IPS) evidence for the 12 months to November 1997 shows that the number of visitors to the UK rose by 3 per cent, compared with the year to November 1996. The number of visits from North America increased by 14 per cent, while the number of visits from Western Europe was broadly static. Visits from Other Areas rose by 4 per cent. The total number of UK residents' visits abroad during the 12 months ending November 1997 rose by 11 per cent compared with a year earlier. Visits to Western Europe increased by 12 per cent, while visits to North America and Other Areas increased by 2 per cent and 10 per cent respectively. Overseas earnings rose by 2 per cent in current prices in the year to November and expenditure by UK residents rose by 6 per cent. This resulted in an increase in the deficit on the travel account of the balance of payments from £3.8 billion to £4.6 billion over the period. +

    +The change in the composition of the tourism market appears to be consistent with the larger rise in sterling against the main European currencies over the last 18 months and has implications for Scotland. North America, Germany and France all account for higher proportions of overseas visits to Scotland than to the UK as a whole. However, a complicating factor is that US and French visitors tend to have a high propensity for travelling as part of a package holiday, paid for in advance with prices based on an exchange rate determined possibly months before the holiday is taken. Consequently, the impact of changes in exchange rates on visits from US and French residents may be delayed. By contrast, the principal types of Dutch and German holidaymakers to Scotland tend to travel independently and to holiday on an ad hoc basis at relatively short notice. The impact of the strength of sterling on these groups is likely to have been demonstrated relatively quickly. +

    +Some IPS data for Scotland are available to the third quarter of 1997. The total number of overnight visits from overseas tourists was broadly unchanged in the first 3 quarters of the year, compared with the same period in 1996. However, the total from Western Europe fell by 6 per cent and overnight visits from North America were broadly unchanged. By contrast, visits from Other Areas rose by 12 per cent. Evidence for Scotland from the United Kingdom Tourism Survey, covering the first 3 quarters of 1997, reported a 3 per cent fall in the number of tourist trips to Scotland by UK residents compared with the same period in 1996. This compares with growth rates of around 15 per cent in each of the previous 2 years. The value of these trips increased by 7 per cent in current prices, broadly equal to growth in the UK over the same period but lower than growth in 1995 and 1996. +

    +Labour Market +

    +Unemployment +

    +There are 2 main sources of unemployment data. An estimate of unemployment under the International Labour Office definition - ILO unemployment - is provided by the Labour Force Survey (LFS), a quarterly sample survey of households. The second measure of unemployment - the claimant count - is based on records of those claiming Jobseeker's Allowance and National Insurance Credits at Employment Service Offices. The Office for National Statistics announced on 3 February that (from April) its assessment of the labour market would give more weight than previously to the LFS, which is conducted according to internationally agreed definitions drawn up by the ILO. +

    +ILO unemployment (not seasonally adjusted) in Scotland fell by 32,000 in the year to Autumn (September to November) 1997 to 185,000. The rate of unemployment fell by 1.4 percentage points to 7.4 per cent of the workforce. ILO unemployment in the UK fell by 379,000 in the year to Autumn 1997 to 1,919,000 or 6.6 per cent, 0.8 percentage points below the Scottish rate. Unemployment fell in every Government Office Region (GOR) of the UK. Four GORs - Merseyside, North East, London and Northern Ireland - have higher ILO unemployment rates than Scotland. +

    +Claimant count unemployment (seasonally adjusted) in Scotland fell throughout 1997 but rose by 1,200 in January 1998 to 141,100, the first rise since April 1996. The rate of unemployment rose by 0.1 percentage point to 5.8 per cent of the workforce, 0.8 percentage points above the UK rate. Of the UK GORs, Merseyside, North East, and Northern Ireland have higher unemployment rates than Scotland, while London has the same rate. +

    +The claimant count measure of unemployment in Scotland remains significantly lower than the ILO measure. The difference between the ILO measure and the claimant count measure12 in Autumn 1997 was 42,000, a rise of 7,000 on Autumn 1996. +

    +In the July 1997 Budget, the Government set out a New Deal to help young people, the long term unemployed, lone parents and the disabled move from Welfare to Work. The New Deal for young claimants (aged 18-24) who have been unemployed for 6 months or more was launched in 12 "pathfinder" areas of the UK (including Tayside) in January and the programme will be launched nationally from April. The New Deal for long term unemployed adults (those aged 25 and over who have been unemployed for more than 2 years) will be launched in June.13 +

    +Table 6 summarises the eligibility for the New Deal for these two groups in January 1998. It can be seen that, in Scotland there were 11,300 youth unemployed of over 6 months duration and 17,100 aged 25 and over who had been unemployed for 2 years or more in January 1998 (7.4 per cent and 11.3 per cent of total claimant unemployed, respectively). The total number in these 2 groups has fallen significantly over the last year - by 17,800 (38.5 per cent). +

    +Table 6: Claiment Count Unemployment for New Deal Target Groups +

    + + + + + + + +
     Youth (18-24) Unemployment, over 6 months durationAdult (25+) Unemployment, over 2 years duration
    January 1997January 1998Percentage changeJanuary 1997January 1998Percentage change
    Scotland18,10011,300-37.728,10017,100-39.1
    Per cent of claimant count9.87.4..15.211.3..
    UK198,300118,400-40.3357,000216,300-39.4
    Scotland as a percentage of the UK9.19.5..7.97.9..
    +
    +Source: Office for National Statistics

    +Note: 1. Percentages calculated with reference to unrounded figures. +

    +Employment +

    +There are two main official sources of quarterly employment data: the Workforce in Employment series, which is a survey of employers, and the Labour Force Survey. +

    +An increase of 43,000 in total employment (not seasonally adjusted) in Scotland was recorded by the LFS over the year to Autumn 1997 to reach a new (Autumn) peak of 2,305,000. This was due to increases of 24,000 in the number of employees, 14,000 in the number of self-employed and 5,000 in the number of people either on government supported training and employment programmes or who were unpaid family workers. Given the fall of 32,000 in the level of ILO unemployment, the number of people classed as economically active increased by 10,000 in the year to Autumn 1997. Increases in total employment were evident in most UK GORs, falling only in the North East, Merseyside and Wales. In the UK as a whole, total employment increased by 456,000. +

    +An increase of 23,000 in the civilian workforce (not seasonally adjusted) was recorded by the Workforce in Employment series over the year to September 1997 to reach a new peak of 2,277,000, (7,000 higher than the 1991 peak and 202,000 above the trough in 1983). This comprised increases of 19,000 in the number of self-employed and 6,000 in the number of employees (comprising increases across the service sector (14,000) and decreases in manufacturing (5,000) and other sectors (3,000)) over the year, partly offset by a fall of 2,000 in the number on work-related government training programmes. Increases in the civilian workforce were evident in all GB regions, except East Anglia and Yorkshire and Humberside. In Great Britain as a whole, the civilian workforce increased by 349,000. +

    +The growth in the number of employees has been due to the increase in part-time employment.14 In the year to September 1997, part-time employment rose by 32,000 (17,000 males and 15,000 females), offset by a fall of 26,000 in full-time employment (24,000 males and 2,000 females). This is a continuation of a trend over the past few years in which part-time employment has increased - in each year since 1992 (data are available from 1991) - to a level 104,000 higher (46,000 males and 58,000 females) in 1997 than 5 years earlier. By contrast, full-time employment has fallen consistently and in September 1997 was 90,000 lower than 1992 levels (86,000 males and 4,000 females). +

    + + +
      +


    +7Published in Economic Trends, February 1998.
    +8GDP estimates of the Scottish regions measure the value of goods and services produced in an area; they do not measure the income of the residents in an area, as is the case for Government Office Regions/countries of the UK. There is a wide variation between areas in terms of size and population; in order to compare the economic performance of areas it is necessary to use an indicator such as GDP per head of population. Resident population is used as the denominator. The implication of using this in conjunction with the workplace-based GDP figures is that the productivity of urban areas into which workers commute will tend to be overstated by this indicator, while that of surrounding areas in which they live will be understated.
    +9Input -Output Tables and Multipliers for Scotland, 1994, The Stationery Office.
    +10It should be noted that the data presented by the SCDI for Scottish manufactured exports refer to gross output. They do not measure the level of (or changes in) the value-added component of Scottish manufactured exports (that is, the wages and profits accruing to domestic suppliers of labour and capital).
    +11Electronics is classified by the SCDI as consisting of 4 industry groupings: Office Machinery, Electrical Machinery and Apparatus nec, Radio/TV/Communication Equipment and Apparatus and Medical, Precision and Optical Instruments, Watches and Clocks.
    +12Average of September to November levels (not seasonally adjusted).
    +13The New Deal for young people provides a period of advice and guidance -'the Gateway' - to find unsubsidised jobs. Thereafter, four options will be available: a subsidised job with an employer; a place on an Environment Task Force; a job in the voluntary sector; or full-time education or training. The first 3 options involve at least one day a week training and options 2 and 3 include top-ups to existing benefits. Long term unemployed adults under the New Deal will be able to benefit from two options: a subsidised job with an employer; or opportunities to study for up to 12 months in full-time employment-related courses designed to reach an accredited qualification.
    +14Part-time employment is defined here as working less than 30 hours per week. +
    +
    +Back to previous section +Back to contents +On to next section + +
    + +
    We welcome your comments on this site. +
    Prepared 13 March 1998
    + +
    + +
    + +
    + + + diff --git a/statsmodels/datasets/scotland/src/scotland_economics.html b/statsmodels/datasets/scotland/src/scotland_economics.html new file mode 100644 index 0000000..63f007e --- /dev/null +++ b/statsmodels/datasets/scotland/src/scotland_economics.html @@ -0,0 +1,332 @@ + + + + + +Cross-sectional dataset viewer v1.1 + + + + + + + + + + + + + +
    + Home + + StatSearch + + Text Search + + StatStore + + FAQ + +   +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Dataset Display - Cross-Sectional

    Dataset Name: + RT331605 +
    Title: + + Labour market statistics: Scotland +
    Description:Labour market statistics: Scotland

    This dataset has been compiled from data published in Regional Trends 33, 1998 edition published on 25 June 1998.

    Source: + Office for National Statistics +
    Time Frame: + 1996-1998 +
    Geographic Coverage: + United Kingdom + +
    Universe: + Various +
    Measure: + Various +
    Units: + See table +
    Scalar: + none +
    Formula: + various +
    Substitution Details:

    +
    ValueMeaning
    ..Not Available
    + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Table Dimensions
    Please select at least one item from each list and "Display Selection" or choose "Display All"
    To select list items either hold down 'Ctrl' key and click each item required, or click the first item and hold down the mouse button whilst scrolling down the list.
    + Region + + 7 + + Measure + + +
    + + + +
     
    To change your selection, click in the appropriate box
    + + + +
    + + + + + + + + + + +
    + + + Table1 + + + + +
    Economically active 1996-97 (percentages)23Total in employment: 1996-97 (thousands)34In employment 1996-97 Manufacturing (percentages)13ILO unemployment rate 1996-97 (percentages)13Total claimant count: January 1998 (thousands)Claimant count: of which females: January 1998 (percentage)Claimant count: of which long-term unemployed January 1998 (percentages)5Average gross weekly all persons full-time earnings, April 1997 (£)16
    United Kingdom78.626462.019.18.01479.323.226.2366.3
    Scotland77.12277.017.18.7152.222.022.4336.8
    Aberdeen City82.4113.014.34.93.621.017.6404.8
    Aberdeenshire80.2112.014.5..2.826.516.3330.9
    Angus86.359.016.9..3.228.323.3320.0
    Argyll and Bute80.441.0..11.92.927.122.8305.2
    Clackmannanshire64.717.0....1.622.027.5..
    Dumfries and Galloway79.067.017.7..4.424.323.4300.2
    Dundee City72.260.014.69.36.221.226.3327.4
    East Ayrshire75.250.023.114.24.520.528.9307.6
    East Dunbartonshire81.153.0....2.223.217.3329.2
    East Lothian80.341.0....1.720.516.3310.3
    East Renfrewshire83.042.016.8..1.423.820.9..
    Edinburgh, City of74.5207.010.36.611.122.120.4362.8
    Eilean Siar (Western Isles)83.815.0....1.419.923.8..
    Falkirk77.666.023.4..4.521.519.9335.6
    Fife77.9147.021.79.311.122.522.7325.2
    Glasgow City65.3210.014.215.226.919.429.5341.5
    Highland80.9100.012.99.37.925.920.9296.2
    Inverclyde80.239.026.5..2.518.512.7323.4
    Midlothian84.839.0....1.619.413.7309.0
    Moray86.443.014.3..2.227.215.4285.0
    North Ayrshire73.558.027.49.15.123.719.2317.8
    North Lanarkshire74.7133.021.212.410.720.820.1336.7
    Orkney Islands87.810.0....0.426.824.4..
    Perth and Kinross86.666.011.3..2.823.017.8..
    Renfrewshire78.580.020.111.35.520.523.3336.1
    Scottish Borders, The80.649.020.6..2.123.712.3303.5
    Shetland Islands84.811.0....0.423.214.2..
    South Ayrshire79.248.022.910.33.623.623.4346.2
    South Lanarkshire78.4146.022.08.38.221.721.8319.1
    Stirling77.237.0....2.123.019.5346.6
    West Dunbartonshire71.536.0..13.64.219.327.3319.0
    West Lothian82.278.032.6..3.521.210.2335.5
    +
    + + + + +
    Footnotes
    1 -In some cases sample sizes are too small to provide reliable estimates.
    2 -Based on the population of working age.
    3 -Data are from the Labour Force Survey and relate to the period March 1996 - February 1997.
    4 -Includes those on government-supported employment and training programmes and unpaid family workers.
    5 -Persons who have been claiming for more than 12 months as a percentage of all claimants.
    6 -Average gross weekly earnings estimates have been derived from the New Earnings Survey and relate to full-time employees on adult rates whose pay for the survey pay-period was not affected by absence.
    7 -New Councils for Scotland
    +
    + \ No newline at end of file diff --git a/statsmodels/datasets/scotland/src/scotland_education.html b/statsmodels/datasets/scotland/src/scotland_education.html new file mode 100644 index 0000000..6d65965 --- /dev/null +++ b/statsmodels/datasets/scotland/src/scotland_education.html @@ -0,0 +1,337 @@ + + + + + +Cross-sectional dataset viewer v1.1 + + + + + + + + + + + + + +
    + Home + + StatSearch + + Text Search + + StatStore + + FAQ + +   +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Dataset Display - Cross-Sectional

    Dataset Name: + RT331603 +
    Title: + + Education and training: Scotland +
    Description:Education and training: Scotland

    This dataset has been compiled from data published in Regional Trends 33, 1998 edition published on 25 June 1998.

    Source: + The Scottish Office Home Department; The Scottish Office Education and Industry Department; Department for Education and Employment +
    Time Frame: + 1995-1997 +
    Geographic Coverage: + United Kingdom + +
    Universe: + various +
    Measure: + various +
    Units: + See table +
    Scalar: + none +
    Formula: + none +
    Substitution Details:

    +
    ValueMeaning
    -Negligible (less than half the final digit shown)
    ..Not Available
    + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Table Dimensions
    Please select at least one item from each list and "Display Selection" or choose "Display All"
    To select list items either hold down 'Ctrl' key and click each item required, or click the first item and hold down the mouse button whilst scrolling down the list.
    + Region + + 8 + + Measure + + +
    + + + +
     
    To change your selection, click in the appropriate box
    + + + +
    + + + + + + + + + + +
    + + + Table + + + + +
    Day nursery places per 1,000 population aged under 5 years Nov. 19961Children under 5 in education (percentages) Jan. 19972Pupil/teacher ratio: primary schools (numbers) 1996/97Pupil/teacher ratio: secondary schools (numbers) 1996/97Pupils and students participating in post-compulsory education, (percentages) 1995/963Percentage of pupils in last year of compulsory schooling with no graded results 1995/9645Percentage of pupils in last year of compulsory schooling with 5 or more Grades 1-3 SCE Standard Grade (or equivalent) 1995/9645Percentage of employees of working age receiving job-related training 1996-9767
    United Kingdom..59.022.816.278.07.445.514.5
    Scotland80.639.019.613.093.03.653.612.5
    Aberdeen City126.050.019.912.9113.01.953.015.4
    Aberdeenshire34.434.018.613.881.09.258.211.4
    Angus70.238.019.113.089.0..62.0..
    Argyll and Bute38.813.017.312.481.08.654.1..
    Clackmannanshire90.947.021.213.478.0..63.6..
    Dumfries and Galloway21.344.018.912.793.02.760.2..
    Dundee City114.359.018.012.2117.00.646.9..
    East Ayrshire43.443.021.013.589.06.450.2..
    East Dunbartonshire76.211.022.213.994.0..71.2..
    East Lothian48.656.020.613.466.012.746.0..
    East Renfrewshire146.033.022.314.091.0..78.8..
    Edinburgh, City of132.350.020.713.4109.02.356.714.7
    Eilean Siar (Western Isles)12.6..13.09.5102.03.260.9..
    Falkirk81.840.021.313.691.04.049.4..
    Fife20.251.019.113.4106.05.352.113.5
    Glasgow City99.853.019.312.488.012.741.915.3
    Highland41.519.017.311.894.0..60.0..
    Inverclyde105.827.021.413.695.0..56.2..
    Midlothian49.054.019.913.677.03.853.0..
    Moray21.631.018.912.291.08.054.3..
    North Ayrshire115.323.021.213.472.010.545.6..
    North Lanarkshire64.425.020.213.494.02.347.511.8
    Orkney Islands31.852.015.110.997.0-69.3..
    Perth and Kinross93.245.018.712.578.010.253.9..
    Renfrewshire119.631.022.013.7103.0..55.915.5
    Scottish Borders, The56.922.018.512.192.01.361.7..
    Shetland Islands14.842.012.78.179.0..73.6..
    South Ayrshire70.436.021.013.699.0..61.9..
    South Lanarkshire103.915.020.713.792.03.651.513.7
    Stirling200.546.019.513.381.02.961.4..
    West Dunbartonshire81.947.020.314.0108.0..52.5..
    West Lothian53.651.020.313.580.06.346.8..
    +
    + + + + +
    Footnotes
    1 -Social Work Provision only (local authority and registered); includes Day Nurseries, Childrens Centres, Family Centres and Private Nursery Schools. Population data used mid-1996 estimates.
    2 -Figures relate to all pupils as a percentage of the three and four year old population.
    3 -In Scotland pupils in S5 at September 1995. The figure for the United Kingdom relates to 16 year olds in education at the beginning of the academic year. Some students in Scotland participate on short courses. They are counted for each course; hence there is double counting which results in some percentages being greater that 100.
    4 -Pupils in their last year of compulsory schooling as a percentage of the school population of the same age.
    5 -Figures relate to all schools.
    6 -Males aged 16-64 and females aged 16-59. Job-related education or training received in the four weeks before interview. In some cases sample sizes are too small to provide reliable estimates.
    7 -Data relate to the period March 1996 to February 1997. Figure for United Kingdom relates to Great Britain.
    8 -New Councils for Scotland
    +
    + \ No newline at end of file diff --git a/statsmodels/datasets/scotland/src/scotland_housing.html b/statsmodels/datasets/scotland/src/scotland_housing.html new file mode 100644 index 0000000..751017a --- /dev/null +++ b/statsmodels/datasets/scotland/src/scotland_housing.html @@ -0,0 +1,333 @@ + + + + + +Cross-sectional dataset viewer v1.1 + + + + + + + + + + + + + +
    + Home + + StatSearch + + Text Search + + StatStore + + FAQ + +   +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Dataset Display - Cross-Sectional

    Dataset Name: + RT331604 +
    Title: + + Housing and households: Scotland +
    Description:Housing and households: Scotland

    This dataset has been compiled from data published in Regional Trends 33, 1998 edition published on 25 June 1998.

    Source: + The Scottish Office Development Department +
    Time Frame: + 1996 and 1997 +
    Geographic Coverage: + United Kingdom + +
    Universe: + various +
    Measure: + various +
    Units: + See table +
    Scalar: + various +
    Formula: + none +
    Substitution Details:

    +
    ValueMeaning
    .Not applicable
    ..Not available
    + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Table Dimensions
    Please select at least one item from each list and "Display Selection" or choose "Display All"
    To select list items either hold down 'Ctrl' key and click each item required, or click the first item and hold down the mouse button whilst scrolling down the list.
    + Region + + 5 + + Measure + + +
    + + + +
     
    To change your selection, click in the appropriate box
    + + + +
    + + + + + + + + + + +
    + + + Table + + + + +
    Housing starts: private enterprise (numbers) 19961Housing starts: housing associations, local authorities etc (numbers) 19962Stock of dwellings (thousands) 19963Households (thousands) 1996Local authority tenants: average weekly unrebated rent per dwelling (£) April 1997Council Tax (£) April 19974
    United Kingdom151826.031224.024607.024115.3...
    Scotland15759.04768.02232.02136.233.6783.0
    Aberdeen City1142.0136.0100.096.827.5712.0
    Aberdeenshire533.090.092.087.129.7643.0
    Angus272.0167.048.046.223.5679.0
    Argyll and Bute300.0266.043.037.735.0801.0
    Clackmannanshire125.037.021.020.029.6753.0
    Dumfries and Galloway388.0159.066.062.332.7714.0
    Dundee City182.0151.072.067.536.8920.0
    East Ayrshire262.030.051.050.126.9779.0
    East Dunbartonshire236.06.042.041.329.6771.0
    East Lothian469.0165.038.036.328.8724.0
    East Renfrewshire295.096.034.033.128.9682.0
    Edinburgh, City of1496.0525.0206.0198.243.8837.0
    Eilean Siar (Western Isles)75.010.013.011.636.5599.0
    Falkirk651.066.061.059.129.8680.0
    Fife202.0251.0152.0145.630.3747.0
    Glasgow City1884.01056.0286.0271.940.4982.0
    Highland664.0161.095.085.838.5719.0
    Inverclyde291.0126.039.038.034.6831.0
    Midlothian362.061.032.030.825.2858.0
    Moray327.00.037.034.928.0652.0
    North Ayrshire344.0157.060.057.730.2718.0
    North Lanarkshire1557.0175.0130.0128.531.3787.0
    Orkney Islands0.06.09.08.133.8515.0
    Perth and Kinross448.0147.059.055.028.2732.0
    Renfrewshire732.066.077.075.132.5783.0
    Scottish Borders, The245.098.049.044.929.7612.0
    Shetland Islands131.021.010.08.936.1486.0
    South Ayrshire182.080.049.047.630.7765.0
    South Lanarkshire488.098.0124.0122.335.3793.0
    Stirling341.066.034.033.133.6776.0
    West Dunbartonshire193.0139.042.040.433.4978.0
    West Lothian942.0156.061.060.328.3792.0
    +
    + + + + +
    Footnotes
    1 -Includes estimates for outstanding returns.
    2 -Based on incomplete returns.
    3 -Number of residential dwellings from the Council Tax Register.
    4 -Amounts shown for Council Tax are headline Council Tax for the area of each billing authority for B and D, 2 adults before transitional relief and benefit. The ratios of other bands are: A 6/9, B7/9, C 8/9, E 11/9, F 13/9, G 15/9 and H 18/9.
    5 -New Councils for Scotland
    +
    + \ No newline at end of file diff --git a/statsmodels/datasets/scotland/src/scotland_population.csv b/statsmodels/datasets/scotland/src/scotland_population.csv new file mode 100644 index 0000000..7b3a04a --- /dev/null +++ b/statsmodels/datasets/scotland/src/scotland_population.csv @@ -0,0 +1,59 @@ +Dataset Name:,"RT331601" +Title:,"Area and population, 1996: Scotland" +Description:,"Area and population, 1996: Scotland + +This dataset has been compiled from data published in Regional Trends 33, 1998 edition published on 25 June 1998. + +" +Source:,"Office for National Statistics; General Register Office for Scotland" +Time Frame:,"1996" +Geographic Coverage:,"United Kingdom" +Universe:,"UK population" +Measure:,"various" +Units:,"See table" +Scalar:,"various" +Formula:,"none" +==================================== +Table + ,"Area (sq km)","Persons per sq km","Population (thousands) Males","Population (thousands) Females","Population (thousands) Total","Total population percentage change 1981-1996","Total period fertility rate (TPFR)<1>","Standardised mortality ratio (UK=100) (SMR)<2>","Percentage of population aged under 5","Percentage of population aged 5-15","Percentage of population aged 16 up to pension age<3>","Percentage of population of pension age or over<4>", + +"United Kingdom","242910.00","242.00","28856.00","29946.00","58801.00","4.30","1.72","100.00","6.40","14.20","61.30","18.10", +"Scotland","78133.00","66.00","2486.00","2642.00","5128.00","-1.00","1.55","116.00","6.10","13.90","63.10","17.80", +"Aberdeen City","186.00","1169.00","106.00","111.00","217.00","2.20","1.35","105.00","5.80","12.30","65.80","17.10", +"Aberdeenshire","6318.00","36.00","113.00","114.00","227.00","20.40","1.64","97.00","6.50","15.30","63.80","15.30", +"Angus","2181.00","51.00","54.00","57.00","111.00","4.90","1.67","113.00","6.00","13.90","61.60","19.40", +"Argyll and Bute","6930.00","13.00","45.00","46.00","91.00","-0.10","1.70","109.00","5.50","13.60","61.10","20.80", +"Clackmannanshire","157.00","312.00","24.00","25.00","49.00","1.20","1.76","115.00","6.60","14.60","63.00","16.70", +"Dumfries and Galloway","6439.00","23.00","72.00","76.00","148.00","1.40","1.78","107.00","5.90","13.80","60.30","21.20", +"Dundee City","65.00","2306.00","72.00","79.00","150.00","-11.40","1.57","118.00","5.90","13.30","62.00","19.90", +"East Ayrshire","1252.00","98.00","59.00","63.00","122.00","-3.90","1.64","114.00","6.30","14.50","61.90","18.30", +"East Dunbartonshire","172.00","645.00","54.00","57.00","111.00","1.00","1.56","102.00","5.80","14.20","64.50","16.50", +"East Lothian","678.00","130.00","43.00","45.00","88.00","9.20","1.77","112.00","6.40","13.70","61.50","19.50", +"East Renfrewshire","173.00","510.00","43.00","45.00","88.00","9.80","1.67","96.00","6.20","14.60","63.00","17.10", +"Edinburgh, City of","262.00","1711.00","217.00","232.00","449.00","0.60","1.34","111.00","5.70","11.60","65.80","17.90", +"Eilean Siar (Western Isles)","3134.00","9.00","14.00","15.00","29.00","-8.50","1.65","117.00","5.50","15.10","59.80","20.70", +"Falkirk","299.00","478.00","69.00","74.00","143.00","-1.50","1.58","121.00","6.20","13.70","63.80","17.40", +"Fife","1323.00","264.00","169.00","180.00","349.00","2.30","1.55","109.00","6.00","14.40","62.30","18.30", +"Glasgow City","175.00","3522.00","294.00","322.00","616.00","-13.50","1.48","137.00","6.30","13.30","63.20","18.10", +"Highland","25784.00","8.00","102.00","106.00","209.00","7.10","1.77","109.00","6.20","14.90","61.80","18.10", +"Inverclyde","162.00","538.00","42.00","45.00","87.00","-13.90","1.66","138.00","6.20","14.60","61.70","18.60", +"Midlothian","356.00","225.00","39.00","41.00","80.00","-4.20","1.61","119.00","6.10","14.30","64.20","16.40", +"Moray","2238.00","39.00","43.00","44.00","87.00","3.60","1.76","108.00","6.60","14.60","61.80","18.00", +"North Ayrshire","884.00","158.00","67.00","72.00","140.00","1.60","1.63","115.00","6.20","15.00","62.20","17.60", +"North Lanarkshire","474.00","688.00","158.00","168.00","326.00","-4.60","1.66","126.00","6.40","14.90","63.80","15.90", +"Orkney Islands","992.00","20.00","10.00","10.00","20.00","3.20","1.78","106.00","6.00","15.30","61.20","18.50", +"Perth and Kinross","5311.00","25.00","64.00","69.00","133.00","8.80","1.61","103.00","5.60","13.80","60.70","20.90", +"Renfrewshire","261.00","683.00","86.00","92.00","179.00","-3.50","1.59","125.00","6.30","14.10","63.70","17.00", +"Scottish Borders, The","4734.00","22.00","51.00","55.00","106.00","4.80","1.67","100.00","5.80","13.30","60.20","21.80", +"Shetland Islands","1438.00","16.00","12.00","11.00","23.00","-12.60","1.77","117.00","7.00","15.90","62.90","14.90", +"South Ayrshire","1202.00","95.00","55.00","60.00","115.00","1.30","1.55","105.00","5.50","13.70","61.10","20.90", +"South Lanarkshire","1771.00","174.00","149.00","159.00","307.00","-0.80","1.55","125.00","6.30","14.50","63.80","16.50", +"Stirling","2196.00","38.00","40.00","43.00","83.00","3.10","1.55","110.00","5.70","13.60","63.80","17.90", +"West Dunbartonshire","162.00","590.00","46.00","50.00","96.00","-9.50","1.70","130.00","6.40","15.30","61.40","17.80", +"West Lothian","425.00","355.00","74.00","77.00","151.00","8.30","1.63","126.00","6.80","15.10","65.80","13.20", +==================================== +Footnotes +"1 - The total period fertility rate (TPFR) is the average number of children which would be born to a woman if the current pattern of fertility persisted throughout her child-bearing years." +"2 - Adjusted for the age structure of the population." +"3 - Pension age is 65 for males and 60 for females." +"4 - New Councils for Scotland" diff --git a/statsmodels/datasets/scotland/src/scotland_population.html b/statsmodels/datasets/scotland/src/scotland_population.html new file mode 100644 index 0000000..19cc05a --- /dev/null +++ b/statsmodels/datasets/scotland/src/scotland_population.html @@ -0,0 +1,326 @@ + + + + + +Cross-sectional dataset viewer v1.1 + + + + + + + + + + + + + +
    + Home + + StatSearch + + Text Search + + StatStore + + FAQ + +   +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Dataset Display - Cross-Sectional

    Dataset Name: + RT331601 +
    Title: + + Area and population, 1996: Scotland +
    Description:Area and population, 1996: Scotland

    This dataset has been compiled from data published in Regional Trends 33, 1998 edition published on 25 June 1998.

    Source: + Office for National Statistics; General Register Office for Scotland +
    Time Frame: + 1996 +
    Geographic Coverage: + United Kingdom + +
    Universe: + UK population +
    Measure: + various +
    Units: + See table +
    Scalar: + various +
    Formula: + none +
    + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Table Dimensions
    Please select at least one item from each list and "Display Selection" or choose "Display All"
    To select list items either hold down 'Ctrl' key and click each item required, or click the first item and hold down the mouse button whilst scrolling down the list.
    + Region + + 4 + + Measure + + +
    + + + +
     
    To change your selection, click in the appropriate box
    + + + +
    + + + + + + + + + + +
    + + + Table + + + + +
    Area (sq km)Persons per sq kmPopulation (thousands) MalesPopulation (thousands) FemalesPopulation (thousands) TotalTotal population percentage change 1981-1996Total period fertility rate (TPFR)1Standardised mortality ratio (UK=100) (SMR)2Percentage of population aged under 5Percentage of population aged 5-15Percentage of population aged 16 up to pension age3Percentage of population of pension age or over4
    United Kingdom242910.00242.0028856.0029946.0058801.004.301.72100.006.4014.2061.3018.10
    Scotland78133.0066.002486.002642.005128.00-1.001.55116.006.1013.9063.1017.80
    Aberdeen City186.001169.00106.00111.00217.002.201.35105.005.8012.3065.8017.10
    Aberdeenshire6318.0036.00113.00114.00227.0020.401.6497.006.5015.3063.8015.30
    Angus2181.0051.0054.0057.00111.004.901.67113.006.0013.9061.6019.40
    Argyll and Bute6930.0013.0045.0046.0091.00-0.101.70109.005.5013.6061.1020.80
    Clackmannanshire157.00312.0024.0025.0049.001.201.76115.006.6014.6063.0016.70
    Dumfries and Galloway6439.0023.0072.0076.00148.001.401.78107.005.9013.8060.3021.20
    Dundee City65.002306.0072.0079.00150.00-11.401.57118.005.9013.3062.0019.90
    East Ayrshire1252.0098.0059.0063.00122.00-3.901.64114.006.3014.5061.9018.30
    East Dunbartonshire172.00645.0054.0057.00111.001.001.56102.005.8014.2064.5016.50
    East Lothian678.00130.0043.0045.0088.009.201.77112.006.4013.7061.5019.50
    East Renfrewshire173.00510.0043.0045.0088.009.801.6796.006.2014.6063.0017.10
    Edinburgh, City of262.001711.00217.00232.00449.000.601.34111.005.7011.6065.8017.90
    Eilean Siar (Western Isles)3134.009.0014.0015.0029.00-8.501.65117.005.5015.1059.8020.70
    Falkirk299.00478.0069.0074.00143.00-1.501.58121.006.2013.7063.8017.40
    Fife1323.00264.00169.00180.00349.002.301.55109.006.0014.4062.3018.30
    Glasgow City175.003522.00294.00322.00616.00-13.501.48137.006.3013.3063.2018.10
    Highland25784.008.00102.00106.00209.007.101.77109.006.2014.9061.8018.10
    Inverclyde162.00538.0042.0045.0087.00-13.901.66138.006.2014.6061.7018.60
    Midlothian356.00225.0039.0041.0080.00-4.201.61119.006.1014.3064.2016.40
    Moray2238.0039.0043.0044.0087.003.601.76108.006.6014.6061.8018.00
    North Ayrshire884.00158.0067.0072.00140.001.601.63115.006.2015.0062.2017.60
    North Lanarkshire474.00688.00158.00168.00326.00-4.601.66126.006.4014.9063.8015.90
    Orkney Islands992.0020.0010.0010.0020.003.201.78106.006.0015.3061.2018.50
    Perth and Kinross5311.0025.0064.0069.00133.008.801.61103.005.6013.8060.7020.90
    Renfrewshire261.00683.0086.0092.00179.00-3.501.59125.006.3014.1063.7017.00
    Scottish Borders, The4734.0022.0051.0055.00106.004.801.67100.005.8013.3060.2021.80
    Shetland Islands1438.0016.0012.0011.0023.00-12.601.77117.007.0015.9062.9014.90
    South Ayrshire1202.0095.0055.0060.00115.001.301.55105.005.5013.7061.1020.90
    South Lanarkshire1771.00174.00149.00159.00307.00-0.801.55125.006.3014.5063.8016.50
    Stirling2196.0038.0040.0043.0083.003.101.55110.005.7013.6063.8017.90
    West Dunbartonshire162.00590.0046.0050.0096.00-9.501.70130.006.4015.3061.4017.80
    West Lothian425.00355.0074.0077.00151.008.301.63126.006.8015.1065.8013.20
    +
    + + + + +
    Footnotes
    1 -The total period fertility rate (TPFR) is the average number of children which would be born to a woman if the current pattern of fertility persisted throughout her child-bearing years.
    2 -Adjusted for the age structure of the population.
    3 -Pension age is 65 for males and 60 for females.
    4 -New Councils for Scotland
    +
    + \ No newline at end of file diff --git a/statsmodels/datasets/scotland/src/scotvote.csv b/statsmodels/datasets/scotland/src/scotvote.csv new file mode 100644 index 0000000..4b423d1 --- /dev/null +++ b/statsmodels/datasets/scotland/src/scotvote.csv @@ -0,0 +1,33 @@ +"PrivateHousingStarts" "PublicHousingStarts" "StockofDwellings" "Households" "LocalAuthorityRent" "CouncilTax" "Areas" "Density" "Males" "Females" "Population" "PopulationChange" "FertilityRate" "StdMortalityRatio" "PercentageUnder5" "Percentage5to15" "Percentage16topension" "PercentageOverPensionage" "InNursery" "InPreschool" "PrimaryPTRatio" "SecondaryPTRatio" "PostCompulsory" "NoGrade" "Grades" "InJobTraining" "Birthsper1000" "Deathsper1000" "PeriMortality" "InfantMortality" "PerBirthsOut" "Active" "TotalEmployment" "PerMfgEmployment" "PerUnemployment" "TotalClaimants" "PerClaimantFemale" "PerClaimLongT" "MeanWeekSal" "GDP" "Var.41" "Var.42" +"Aberdeen_City" 1142 136 100 96.8 27.5 712 186 1169 106 111 217 2.2 1.35 105 5.8 12.3 65.8 17.1 126 50 19.9 12.9 113 1.9 53 15.4 11 10.4 7.7 5.7 35 82.4 113 14.3 4.9 3.6 21 17.6 404.8 13566 71.8 60.3 +"Aberdeenshire" 533 90 92 87.1 29.7 643 6318 36 113 114 227 20.4 1.64 97 6.5 15.3 63.8 15.3 34.4 34 18.6 13.8 81 9.2 58.2 11.4 11.3 9 9 3.8 24 80.2 112 14.5 NA 2.8 26.5 16.3 330.9 13566 63.9 52.3 +"Angus" 272 167 48 46.2 23.5 679 2181 51 54 57 111 4.9 1.67 113 6 13.9 61.6 19.4 70.2 38 19.1 13 89 NA 62 NA 11 13.2 5.6 3.2 33 86.3 59 16.9 NA 3.2 28.3 23.3 320 9611 64.7 53.4 +"Argyll_and_Bute" 300 266 43 37.7 35 801 6930 13 45 46 91 -0.1 1.7 109 5.5 13.6 61.1 20.8 38.8 13 17.3 12.4 81 8.6 54.1 NA 10.5 13.8 8.6 7 33 80.4 41 NA 11.9 2.9 27.1 22.8 305.2 9483 67.3 57 +"Clackmannanshire" 125 37 21 20 29.6 753 157 312 24 25 49 1.2 1.76 115 6.6 14.6 63 16.7 90.9 47 21.2 13.4 78 NA 63.6 NA 12.3 11.3 10.4 6.3 40 64.7 17 NA NA 1.6 22 27.5 NA 9265 80 68.7 +"Dumfries_and_Galloway" 388 159 66 62.3 32.7 714 6439 23 72 76 148 1.4 1.78 107 5.9 13.8 60.3 21.2 21.3 44 18.9 12.7 93 2.7 60.2 NA 10.9 12.8 8.8 7.8 34 79 67 17.7 NA 4.4 24.3 23.4 300.2 9555 60.7 48.8 +"Dundee_City" 182 151 72 67.5 36.8 920 65 2306 72 79 150 -11.4 1.57 118 5.9 13.3 62 19.9 114.3 59 18 12.2 117 0.6 46.9 NA 11.5 13.1 8.6 6.8 51 72.2 60 14.6 9.3 6.2 21.2 26.3 327.4 9611 76 65.5 +"East_Ayrshire" 262 30 51 50.1 26.9 779 1252 98 59 63 122 -3.9 1.64 114 6.3 14.5 61.9 18.3 43.4 43 21 13.5 89 6.4 50.2 NA 11.4 11.6 12.3 6.5 40 75.2 50 23.1 14.2 4.5 20.5 28.9 307.6 9483 81.1 70.5 +"East_Dunbartonshire" 236 6 42 41.3 29.6 771 172 645 54 57 111 1 1.56 102 5.8 14.2 64.5 16.5 76.2 11 22.2 13.9 94 NA 71.2 NA 10.5 9.2 8.1 7.2 19 81.1 53 NA NA 2.2 23.2 17.3 329.2 9483 69.8 59.1 +"East_Lothian" 469 165 38 36.3 28.8 724 678 130 43 45 88 9.2 1.77 112 6.4 13.7 61.5 19.5 48.6 56 20.6 13.4 66 12.7 46 NA 12.3 12.6 7.6 5.2 29 80.3 41 NA NA 1.7 20.5 16.3 310.3 12656 74.2 62.7 +"East_Renfrewshire" 295 96 34 33.1 28.9 682 173 510 43 45 88 9.8 1.67 96 6.2 14.6 63 17.1 146 33 22.3 14 91 NA 78.8 NA 11.5 9.5 7.4 6.2 19 83 42 16.8 NA 1.4 23.8 20.9 NA 9483 61.7 51.6 +"Edinburgh_City" 1496 525 206 198.2 43.8 837 262 1711 217 232 449 0.6 1.34 111 5.7 11.6 65.8 17.9 132.3 50 20.7 13.4 109 2.3 56.7 14.7 11.4 11.7 8.1 6.4 33 74.5 207 10.3 6.6 11.1 22.1 20.4 362.8 12656 71.9 62 +"Eilean_Siar_(Western_Isles)" 75 10 13 11.6 36.5 599 3134 9 14 15 29 -8.5 1.65 117 5.5 15.1 59.8 20.7 12.6 NA 13 9.5 102 3.2 60.9 NA 9.7 14.9 11.2 5.7 19 83.8 15 NA NA 1.4 19.9 23.8 NA 8298 79.4 68.4 +"Falkirk" 651 66 61 59.1 29.8 680 299 478 69 74 143 -1.5 1.58 121 6.2 13.7 63.8 17.4 81.8 40 21.3 13.6 91 4 49.4 NA 11.7 11.7 7.9 4.8 34 77.6 66 23.4 NA 4.5 21.5 19.9 335.6 9265 80 69.2 +"Fife" 202 251 152 145.6 30.3 747 1323 264 169 180 349 2.3 1.55 109 6 14.4 62.3 18.3 20.2 51 19.1 13.4 106 5.3 52.1 13.5 11 11.4 8.7 7.1 37 77.9 147 21.7 9.3 11.1 22.5 22.7 325.2 8314 76.1 64.7 +"Glasgow_City" 1884 1056 286 271.9 40.4 982 175 3522 294 322 616 -13.5 1.48 137 6.3 13.3 63.2 18.1 99.8 53 19.3 12.4 88 12.7 41.9 15.3 12.5 14 11.1 6.9 49 65.3 210 14.2 15.2 26.9 19.4 29.5 341.5 9483 83.6 75 +"Highland" 664 161 95 85.8 38.5 719 25784 8 102 106 209 7.1 1.77 109 6.2 14.9 61.8 18.1 41.5 19 17.3 11.8 94 NA 60 NA 11.4 11.4 8.3 6.5 34 80.9 100 12.9 9.3 7.9 25.9 20.9 296.2 8298 72.6 62.1 +"Inverclyde" 291 126 39 38 34.6 831 162 538 42 45 87 -13.9 1.66 138 6.2 14.6 61.7 18.6 105.8 27 21.4 13.6 95 NA 56.2 NA 11.7 14.5 11.5 8 45 80.2 39 26.5 NA 2.5 18.5 12.7 323.4 9483 78 67.2 +"Midlothian" 362 61 32 30.8 25.2 858 356 225 39 41 80 -4.2 1.61 119 6.1 14.3 64.2 16.4 49 54 19.9 13.6 77 3.8 53 NA 11.2 10.7 10.8 6 35 84.8 39 NA NA 1.6 19.4 13.7 309 12656 79.9 67.7 +"Moray" 327 0 37 34.9 28 652 2238 39 43 44 87 3.6 1.76 108 6.6 14.6 61.8 18 21.6 31 18.9 12.2 91 8 54.3 NA 12.4 11 9.8 7.4 26 86.4 43 14.3 NA 2.2 27.2 15.4 285 13566 67.2 52.7 +"North_Ayrshire" 344 157 60 57.7 30.2 718 884 158 67 72 140 1.6 1.63 115 6.2 15 62.2 17.6 115.3 23 21.2 13.4 72 10.5 45.6 NA 11.3 11.8 11.6 6.9 42 73.5 58 27.4 9.1 5.1 23.7 19.2 317.8 9483 76.3 65.7 +"North_Lanarkshire" 1557 175 130 128.5 31.3 787 474 688 158 168 326 -4.6 1.66 126 6.4 14.9 63.8 15.9 64.4 25 20.2 13.4 94 2.3 47.5 11.8 12.5 11.1 11.6 8.5 38 74.7 133 21.2 12.4 10.7 20.8 20.1 336.7 9483 82.6 72.2 +"Orkney_Islands" 0 6 9 8.1 33.8 515 992 20 10 10 20 3.2 1.78 106 6 15.3 61.2 18.5 31.8 52 15.1 10.9 97 0 69.3 NA 10.9 11.6 7.5 1.4 30 87.8 10 NA NA 0.4 26.8 24.4 NA 8298 57.3 47.4 +"Perth_and_Kinross" 448 147 59 55 28.2 732 5311 25 64 69 133 8.8 1.61 103 5.6 13.8 60.7 20.9 93.2 45 18.7 12.5 78 10.2 53.9 NA 10.5 12.6 9.8 5.9 29 86.6 66 11.3 NA 2.8 23 17.8 NA 9611 61.7 51.3 +"Renfrewshire" 732 66 77 75.1 32.5 783 261 683 86 92 179 -3.5 1.59 125 6.3 14.1 63.7 17 119.6 31 22 13.7 103 NA 55.9 15.5 11.9 11.6 8 4.5 39 78.5 80 20.1 11.3 5.5 20.5 23.3 336.1 9483 79 63.6 +"Scottish_Borders_The" 245 98 49 44.9 29.7 612 4734 22 51 55 106 4.8 1.67 100 5.8 13.3 60.2 21.8 56.9 22 18.5 12.1 92 1.3 61.7 NA 10.7 12.8 8 4.9 28 80.6 49 20.6 NA 2.1 23.7 12.3 303.5 9033 62.8 50.7 +"Shetland_Islands" 131 21 10 8.9 36.1 486 1438 16 12 11 23 -12.6 1.77 117 7 15.9 62.9 14.9 14.8 42 12.7 8.1 79 NA 73.6 NA 11.7 10.9 9.9 6.5 28 84.8 11 NA NA 0.4 23.2 14.2 NA 8298 62.4 51.6 +"South_Ayrshire" 182 80 49 47.6 30.7 765 1202 95 55 60 115 1.3 1.55 105 5.5 13.7 61.1 20.9 70.4 36 21 13.6 99 NA 61.9 NA 10.1 12.7 6.2 4.3 33 79.2 48 22.9 10.3 3.6 23.6 23.4 346.2 9483 66.9 56.2 +"South_Lanarkshire" 488 98 124 122.3 35.3 793 1771 174 149 159 307 -0.8 1.55 125 6.3 14.5 63.8 16.5 103.9 15 20.7 13.7 92 3.6 51.5 13.7 11.5 11.3 9.2 5.1 33 78.4 146 22 8.3 8.2 21.7 21.8 319.1 9483 77.8 67.6 +"Stirling" 341 66 34 33.1 33.6 776 2196 38 40 43 83 3.1 1.55 110 5.7 13.6 63.8 17.9 200.5 46 19.5 13.3 81 2.9 61.4 NA 11.1 11.8 7.7 4.9 33 77.2 37 NA NA 2.1 23 19.5 346.6 9265 68.5 58.9 +"West_Dunbartonshire" 193 139 42 40.4 33.4 978 162 590 46 50 96 -9.5 1.7 130 6.4 15.3 61.4 17.8 81.9 47 20.3 14 108 NA 52.5 NA 12.5 12.7 11.7 8.7 42 71.5 36 NA 13.6 4.2 19.3 27.3 319 9483 84.7 74.7 +"West_Lothian" 942 156 61 60.3 28.3 792 425 355 74 77 151 8.3 1.63 126 6.8 15.1 65.8 13.2 53.6 51 20.3 13.5 80 6.3 46.8 NA 13.1 9.5 8.7 4.6 33 82.2 78 32.6 NA 3.5 21.2 10.2 335.5 12656 79.6 67.3 diff --git a/statsmodels/datasets/scotland/src/scotvote.dat b/statsmodels/datasets/scotland/src/scotvote.dat new file mode 100644 index 0000000..4b423d1 --- /dev/null +++ b/statsmodels/datasets/scotland/src/scotvote.dat @@ -0,0 +1,33 @@ +"PrivateHousingStarts" "PublicHousingStarts" "StockofDwellings" "Households" "LocalAuthorityRent" "CouncilTax" "Areas" "Density" "Males" "Females" "Population" "PopulationChange" "FertilityRate" "StdMortalityRatio" "PercentageUnder5" "Percentage5to15" "Percentage16topension" "PercentageOverPensionage" "InNursery" "InPreschool" "PrimaryPTRatio" "SecondaryPTRatio" "PostCompulsory" "NoGrade" "Grades" "InJobTraining" "Birthsper1000" "Deathsper1000" "PeriMortality" "InfantMortality" "PerBirthsOut" "Active" "TotalEmployment" "PerMfgEmployment" "PerUnemployment" "TotalClaimants" "PerClaimantFemale" "PerClaimLongT" "MeanWeekSal" "GDP" "Var.41" "Var.42" +"Aberdeen_City" 1142 136 100 96.8 27.5 712 186 1169 106 111 217 2.2 1.35 105 5.8 12.3 65.8 17.1 126 50 19.9 12.9 113 1.9 53 15.4 11 10.4 7.7 5.7 35 82.4 113 14.3 4.9 3.6 21 17.6 404.8 13566 71.8 60.3 +"Aberdeenshire" 533 90 92 87.1 29.7 643 6318 36 113 114 227 20.4 1.64 97 6.5 15.3 63.8 15.3 34.4 34 18.6 13.8 81 9.2 58.2 11.4 11.3 9 9 3.8 24 80.2 112 14.5 NA 2.8 26.5 16.3 330.9 13566 63.9 52.3 +"Angus" 272 167 48 46.2 23.5 679 2181 51 54 57 111 4.9 1.67 113 6 13.9 61.6 19.4 70.2 38 19.1 13 89 NA 62 NA 11 13.2 5.6 3.2 33 86.3 59 16.9 NA 3.2 28.3 23.3 320 9611 64.7 53.4 +"Argyll_and_Bute" 300 266 43 37.7 35 801 6930 13 45 46 91 -0.1 1.7 109 5.5 13.6 61.1 20.8 38.8 13 17.3 12.4 81 8.6 54.1 NA 10.5 13.8 8.6 7 33 80.4 41 NA 11.9 2.9 27.1 22.8 305.2 9483 67.3 57 +"Clackmannanshire" 125 37 21 20 29.6 753 157 312 24 25 49 1.2 1.76 115 6.6 14.6 63 16.7 90.9 47 21.2 13.4 78 NA 63.6 NA 12.3 11.3 10.4 6.3 40 64.7 17 NA NA 1.6 22 27.5 NA 9265 80 68.7 +"Dumfries_and_Galloway" 388 159 66 62.3 32.7 714 6439 23 72 76 148 1.4 1.78 107 5.9 13.8 60.3 21.2 21.3 44 18.9 12.7 93 2.7 60.2 NA 10.9 12.8 8.8 7.8 34 79 67 17.7 NA 4.4 24.3 23.4 300.2 9555 60.7 48.8 +"Dundee_City" 182 151 72 67.5 36.8 920 65 2306 72 79 150 -11.4 1.57 118 5.9 13.3 62 19.9 114.3 59 18 12.2 117 0.6 46.9 NA 11.5 13.1 8.6 6.8 51 72.2 60 14.6 9.3 6.2 21.2 26.3 327.4 9611 76 65.5 +"East_Ayrshire" 262 30 51 50.1 26.9 779 1252 98 59 63 122 -3.9 1.64 114 6.3 14.5 61.9 18.3 43.4 43 21 13.5 89 6.4 50.2 NA 11.4 11.6 12.3 6.5 40 75.2 50 23.1 14.2 4.5 20.5 28.9 307.6 9483 81.1 70.5 +"East_Dunbartonshire" 236 6 42 41.3 29.6 771 172 645 54 57 111 1 1.56 102 5.8 14.2 64.5 16.5 76.2 11 22.2 13.9 94 NA 71.2 NA 10.5 9.2 8.1 7.2 19 81.1 53 NA NA 2.2 23.2 17.3 329.2 9483 69.8 59.1 +"East_Lothian" 469 165 38 36.3 28.8 724 678 130 43 45 88 9.2 1.77 112 6.4 13.7 61.5 19.5 48.6 56 20.6 13.4 66 12.7 46 NA 12.3 12.6 7.6 5.2 29 80.3 41 NA NA 1.7 20.5 16.3 310.3 12656 74.2 62.7 +"East_Renfrewshire" 295 96 34 33.1 28.9 682 173 510 43 45 88 9.8 1.67 96 6.2 14.6 63 17.1 146 33 22.3 14 91 NA 78.8 NA 11.5 9.5 7.4 6.2 19 83 42 16.8 NA 1.4 23.8 20.9 NA 9483 61.7 51.6 +"Edinburgh_City" 1496 525 206 198.2 43.8 837 262 1711 217 232 449 0.6 1.34 111 5.7 11.6 65.8 17.9 132.3 50 20.7 13.4 109 2.3 56.7 14.7 11.4 11.7 8.1 6.4 33 74.5 207 10.3 6.6 11.1 22.1 20.4 362.8 12656 71.9 62 +"Eilean_Siar_(Western_Isles)" 75 10 13 11.6 36.5 599 3134 9 14 15 29 -8.5 1.65 117 5.5 15.1 59.8 20.7 12.6 NA 13 9.5 102 3.2 60.9 NA 9.7 14.9 11.2 5.7 19 83.8 15 NA NA 1.4 19.9 23.8 NA 8298 79.4 68.4 +"Falkirk" 651 66 61 59.1 29.8 680 299 478 69 74 143 -1.5 1.58 121 6.2 13.7 63.8 17.4 81.8 40 21.3 13.6 91 4 49.4 NA 11.7 11.7 7.9 4.8 34 77.6 66 23.4 NA 4.5 21.5 19.9 335.6 9265 80 69.2 +"Fife" 202 251 152 145.6 30.3 747 1323 264 169 180 349 2.3 1.55 109 6 14.4 62.3 18.3 20.2 51 19.1 13.4 106 5.3 52.1 13.5 11 11.4 8.7 7.1 37 77.9 147 21.7 9.3 11.1 22.5 22.7 325.2 8314 76.1 64.7 +"Glasgow_City" 1884 1056 286 271.9 40.4 982 175 3522 294 322 616 -13.5 1.48 137 6.3 13.3 63.2 18.1 99.8 53 19.3 12.4 88 12.7 41.9 15.3 12.5 14 11.1 6.9 49 65.3 210 14.2 15.2 26.9 19.4 29.5 341.5 9483 83.6 75 +"Highland" 664 161 95 85.8 38.5 719 25784 8 102 106 209 7.1 1.77 109 6.2 14.9 61.8 18.1 41.5 19 17.3 11.8 94 NA 60 NA 11.4 11.4 8.3 6.5 34 80.9 100 12.9 9.3 7.9 25.9 20.9 296.2 8298 72.6 62.1 +"Inverclyde" 291 126 39 38 34.6 831 162 538 42 45 87 -13.9 1.66 138 6.2 14.6 61.7 18.6 105.8 27 21.4 13.6 95 NA 56.2 NA 11.7 14.5 11.5 8 45 80.2 39 26.5 NA 2.5 18.5 12.7 323.4 9483 78 67.2 +"Midlothian" 362 61 32 30.8 25.2 858 356 225 39 41 80 -4.2 1.61 119 6.1 14.3 64.2 16.4 49 54 19.9 13.6 77 3.8 53 NA 11.2 10.7 10.8 6 35 84.8 39 NA NA 1.6 19.4 13.7 309 12656 79.9 67.7 +"Moray" 327 0 37 34.9 28 652 2238 39 43 44 87 3.6 1.76 108 6.6 14.6 61.8 18 21.6 31 18.9 12.2 91 8 54.3 NA 12.4 11 9.8 7.4 26 86.4 43 14.3 NA 2.2 27.2 15.4 285 13566 67.2 52.7 +"North_Ayrshire" 344 157 60 57.7 30.2 718 884 158 67 72 140 1.6 1.63 115 6.2 15 62.2 17.6 115.3 23 21.2 13.4 72 10.5 45.6 NA 11.3 11.8 11.6 6.9 42 73.5 58 27.4 9.1 5.1 23.7 19.2 317.8 9483 76.3 65.7 +"North_Lanarkshire" 1557 175 130 128.5 31.3 787 474 688 158 168 326 -4.6 1.66 126 6.4 14.9 63.8 15.9 64.4 25 20.2 13.4 94 2.3 47.5 11.8 12.5 11.1 11.6 8.5 38 74.7 133 21.2 12.4 10.7 20.8 20.1 336.7 9483 82.6 72.2 +"Orkney_Islands" 0 6 9 8.1 33.8 515 992 20 10 10 20 3.2 1.78 106 6 15.3 61.2 18.5 31.8 52 15.1 10.9 97 0 69.3 NA 10.9 11.6 7.5 1.4 30 87.8 10 NA NA 0.4 26.8 24.4 NA 8298 57.3 47.4 +"Perth_and_Kinross" 448 147 59 55 28.2 732 5311 25 64 69 133 8.8 1.61 103 5.6 13.8 60.7 20.9 93.2 45 18.7 12.5 78 10.2 53.9 NA 10.5 12.6 9.8 5.9 29 86.6 66 11.3 NA 2.8 23 17.8 NA 9611 61.7 51.3 +"Renfrewshire" 732 66 77 75.1 32.5 783 261 683 86 92 179 -3.5 1.59 125 6.3 14.1 63.7 17 119.6 31 22 13.7 103 NA 55.9 15.5 11.9 11.6 8 4.5 39 78.5 80 20.1 11.3 5.5 20.5 23.3 336.1 9483 79 63.6 +"Scottish_Borders_The" 245 98 49 44.9 29.7 612 4734 22 51 55 106 4.8 1.67 100 5.8 13.3 60.2 21.8 56.9 22 18.5 12.1 92 1.3 61.7 NA 10.7 12.8 8 4.9 28 80.6 49 20.6 NA 2.1 23.7 12.3 303.5 9033 62.8 50.7 +"Shetland_Islands" 131 21 10 8.9 36.1 486 1438 16 12 11 23 -12.6 1.77 117 7 15.9 62.9 14.9 14.8 42 12.7 8.1 79 NA 73.6 NA 11.7 10.9 9.9 6.5 28 84.8 11 NA NA 0.4 23.2 14.2 NA 8298 62.4 51.6 +"South_Ayrshire" 182 80 49 47.6 30.7 765 1202 95 55 60 115 1.3 1.55 105 5.5 13.7 61.1 20.9 70.4 36 21 13.6 99 NA 61.9 NA 10.1 12.7 6.2 4.3 33 79.2 48 22.9 10.3 3.6 23.6 23.4 346.2 9483 66.9 56.2 +"South_Lanarkshire" 488 98 124 122.3 35.3 793 1771 174 149 159 307 -0.8 1.55 125 6.3 14.5 63.8 16.5 103.9 15 20.7 13.7 92 3.6 51.5 13.7 11.5 11.3 9.2 5.1 33 78.4 146 22 8.3 8.2 21.7 21.8 319.1 9483 77.8 67.6 +"Stirling" 341 66 34 33.1 33.6 776 2196 38 40 43 83 3.1 1.55 110 5.7 13.6 63.8 17.9 200.5 46 19.5 13.3 81 2.9 61.4 NA 11.1 11.8 7.7 4.9 33 77.2 37 NA NA 2.1 23 19.5 346.6 9265 68.5 58.9 +"West_Dunbartonshire" 193 139 42 40.4 33.4 978 162 590 46 50 96 -9.5 1.7 130 6.4 15.3 61.4 17.8 81.9 47 20.3 14 108 NA 52.5 NA 12.5 12.7 11.7 8.7 42 71.5 36 NA 13.6 4.2 19.3 27.3 319 9483 84.7 74.7 +"West_Lothian" 942 156 61 60.3 28.3 792 425 355 74 77 151 8.3 1.63 126 6.8 15.1 65.8 13.2 53.6 51 20.3 13.5 80 6.3 46.8 NA 13.1 9.5 8.7 4.6 33 82.2 78 32.6 NA 3.5 21.2 10.2 335.5 12656 79.6 67.3 diff --git a/statsmodels/datasets/spector/__init__.py b/statsmodels/datasets/spector/__init__.py new file mode 100644 index 0000000..df22d8b --- /dev/null +++ b/statsmodels/datasets/spector/__init__.py @@ -0,0 +1 @@ +from .data import * diff --git a/statsmodels/datasets/spector/data.py b/statsmodels/datasets/spector/data.py new file mode 100644 index 0000000..25b126d --- /dev/null +++ b/statsmodels/datasets/spector/data.py @@ -0,0 +1,69 @@ +"""Spector and Mazzeo (1980) - Program Effectiveness Data""" + +__docformat__ = 'restructuredtext' + +COPYRIGHT = """Used with express permission of the original author, who +retains all rights. """ +TITLE = __doc__ +SOURCE = """ +http://pages.stern.nyu.edu/~wgreene/Text/econometricanalysis.htm + +The raw data was downloaded from Bill Greene's Econometric Analysis web site, +though permission was obtained from the original researcher, Dr. Lee Spector, +Professor of Economics, Ball State University.""" + +DESCRSHORT = """Experimental data on the effectiveness of the personalized +system of instruction (PSI) program""" + +DESCRLONG = DESCRSHORT + +NOTE = """:: + + Number of Observations - 32 + + Number of Variables - 4 + + Variable name definitions:: + + Grade - binary variable indicating whether or not a student's grade + improved. 1 indicates an improvement. + TUCE - Test score on economics test + PSI - participation in program + GPA - Student's grade point average +""" + +import numpy as np +from statsmodels.datasets import utils as du +from os.path import dirname, abspath + +def load(): + """ + Load the Spector dataset and returns a Dataset class instance. + + Returns + ------- + Dataset instance: + See DATASET_PROPOSAL.txt for more information. + """ + data = _get_data() + return du.process_recarray(data, endog_idx=3, dtype=float) + +def load_pandas(): + """ + Load the Spector dataset and returns a Dataset class instance. + + Returns + ------- + Dataset instance: + See DATASET_PROPOSAL.txt for more information. + """ + data = _get_data() + return du.process_recarray_pandas(data, endog_idx=3, dtype=float) + +def _get_data(): + filepath = dirname(abspath(__file__)) + ##### EDIT THE FOLLOWING TO POINT TO DatasetName.csv ##### + with open(filepath + '/spector.csv',"rb") as f: + data = np.recfromtxt(f, delimiter=" ", + names=True, dtype=float, usecols=(1,2,3,4)) + return data diff --git a/statsmodels/datasets/spector/spector.csv b/statsmodels/datasets/spector/spector.csv new file mode 100644 index 0000000..38e260b --- /dev/null +++ b/statsmodels/datasets/spector/spector.csv @@ -0,0 +1,33 @@ +'OBS' 'GPA' 'TUCE' 'PSI' 'GRADE' +1 2.66 20 0 0 +2 2.89 22 0 0 +3 3.28 24 0 0 +4 2.92 12 0 0 +5 4 21 0 1 +6 2.86 17 0 0 +7 2.76 17 0 0 +8 2.87 21 0 0 +9 3.03 25 0 0 +10 3.92 29 0 1 +11 2.63 20 0 0 +12 3.32 23 0 0 +13 3.57 23 0 0 +14 3.26 25 0 1 +15 3.53 26 0 0 +16 2.74 19 0 0 +17 2.75 25 0 0 +18 2.83 19 0 0 +19 3.12 23 1 0 +20 3.16 25 1 1 +21 2.06 22 1 0 +22 3.62 28 1 1 +23 2.89 14 1 0 +24 3.51 26 1 0 +25 3.54 24 1 1 +26 2.83 27 1 1 +27 3.39 17 1 1 +28 2.67 24 1 0 +29 3.65 21 1 1 +30 4 23 1 1 +31 3.1 21 1 0 +32 2.39 19 1 1 diff --git a/statsmodels/datasets/stackloss/R_stackloss.s b/statsmodels/datasets/stackloss/R_stackloss.s new file mode 100644 index 0000000..4ec5f44 --- /dev/null +++ b/statsmodels/datasets/stackloss/R_stackloss.s @@ -0,0 +1,30 @@ +### SETUP ### +d <- read.table("./stackloss.csv",sep=",", header=T) +attach(d) +library(MASS) + + +m1 <- rlm(STACKLOSS ~ AIRFLOW + WATERTEMP + ACIDCONC) # psi.huber default + +m2 <- rlm(STACKLOSS ~ AIRFLOW + WATERTEMP + ACIDCONC, psi = psi.hampel, init = "lts") + +m3 <- rlm(STACKLOSS ~ AIRFLOW + WATERTEMP + ACIDCONC, psi = psi.bisquare) + +results1 <- summary(m1) + +results2 <- summary(m2) + +results3 <- summary(m3) + +m4 <- rlm(STACKLOSS ~ AIRFLOW + WATERTEMP + ACIDCONC, scale.est="Huber") # psi.huber default + +m5 <- rlm(STACKLOSS ~ AIRFLOW + WATERTEMP + ACIDCONC, scale.est="Huber", psi = psi.hampel, init = "lts") + +m6 <- rlm(STACKLOSS ~ AIRFLOW + WATERTEMP + ACIDCONC, scale.est="Huber", psi = psi.bisquare) + +results4 <- summary(m4) + +results5 <- summary(m5) + +results6 <- summary(m6) + diff --git a/statsmodels/datasets/stackloss/__init__.py b/statsmodels/datasets/stackloss/__init__.py new file mode 100644 index 0000000..df22d8b --- /dev/null +++ b/statsmodels/datasets/stackloss/__init__.py @@ -0,0 +1 @@ +from .data import * diff --git a/statsmodels/datasets/stackloss/data.py b/statsmodels/datasets/stackloss/data.py new file mode 100644 index 0000000..f85b748 --- /dev/null +++ b/statsmodels/datasets/stackloss/data.py @@ -0,0 +1,66 @@ +"""Stack loss data""" + +__docformat__ = 'restructuredtext' + +COPYRIGHT = """This is public domain. """ +TITLE = __doc__ +SOURCE = """ +Brownlee, K. A. (1965), "Statistical Theory and Methodology in +Science and Engineering", 2nd edition, New York:Wiley. +""" + +DESCRSHORT = """Stack loss plant data of Brownlee (1965)""" + +DESCRLONG = """The stack loss plant data of Brownlee (1965) contains +21 days of measurements from a plant's oxidation of ammonia to nitric acid. +The nitric oxide pollutants are captured in an absorption tower.""" + +NOTE = """:: + + Number of Observations - 21 + + Number of Variables - 4 + + Variable name definitions:: + + STACKLOSS - 10 times the percentage of ammonia going into the plant + that escapes from the absoroption column + AIRFLOW - Rate of operation of the plant + WATERTEMP - Cooling water temperature in the absorption tower + ACIDCONC - Acid concentration of circulating acid minus 50 times 10. +""" + +from numpy import recfromtxt, column_stack, array +from statsmodels.datasets import utils as du +from os.path import dirname, abspath + +def load(): + """ + Load the stack loss data and returns a Dataset class instance. + + Returns + -------- + Dataset instance: + See DATASET_PROPOSAL.txt for more information. + """ + data = _get_data() + return du.process_recarray(data, endog_idx=0, dtype=float) + +def load_pandas(): + """ + Load the stack loss data and returns a Dataset class instance. + + Returns + -------- + Dataset instance: + See DATASET_PROPOSAL.txt for more information. + """ + data = _get_data() + return du.process_recarray_pandas(data, endog_idx=0, dtype=float) + +def _get_data(): + filepath = dirname(abspath(__file__)) + with open(filepath + '/stackloss.csv',"rb") as f: + data = recfromtxt(f, delimiter=",", + names=True, dtype=float) + return data diff --git a/statsmodels/datasets/stackloss/stackloss.csv b/statsmodels/datasets/stackloss/stackloss.csv new file mode 100644 index 0000000..3eb60f5 --- /dev/null +++ b/statsmodels/datasets/stackloss/stackloss.csv @@ -0,0 +1,22 @@ +"STACKLOSS","AIRFLOW","WATERTEMP","ACIDCONC" +42,80,27,89 +37,80,27,88 +37,75,25,90 +28,62,24,87 +18,62,22,87 +18,62,23,87 +19,62,24,93 +20,62,24,93 +15,58,23,87 +14,58,18,80 +14,58,18,89 +13,58,17,88 +11,58,18,82 +12,58,19,93 +8,50,18,89 +7,50,18,86 +8,50,19,72 +8,50,19,79 +9,50,20,80 +15,56,20,82 +15,70,20,91 diff --git a/statsmodels/datasets/star98/__init__.py b/statsmodels/datasets/star98/__init__.py new file mode 100644 index 0000000..df22d8b --- /dev/null +++ b/statsmodels/datasets/star98/__init__.py @@ -0,0 +1 @@ +from .data import * diff --git a/statsmodels/datasets/star98/data.py b/statsmodels/datasets/star98/data.py new file mode 100644 index 0000000..e08724a --- /dev/null +++ b/statsmodels/datasets/star98/data.py @@ -0,0 +1,107 @@ +"""Star98 Educational Testing dataset.""" + +__docformat__ = 'restructuredtext' + +COPYRIGHT = """Used with express permission from the original author, +who retains all rights.""" +TITLE = "Star98 Educational Dataset" +SOURCE = """ +Jeff Gill's `Generalized Linear Models: A Unified Approach` + +http://jgill.wustl.edu/research/books.html +""" +DESCRSHORT = """Math scores for 303 student with 10 explanatory factors""" + +DESCRLONG = """ +This data is on the California education policy and outcomes (STAR program +results for 1998. The data measured standardized testing by the California +Department of Education that required evaluation of 2nd - 11th grade students +by the the Stanford 9 test on a variety of subjects. This dataset is at +the level of the unified school district and consists of 303 cases. The +binary response variable represents the number of 9th graders scoring +over the national median value on the mathematics exam. + +The data used in this example is only a subset of the original source. +""" + +NOTE = """:: + + Number of Observations - 303 (counties in California). + + Number of Variables - 13 and 8 interaction terms. + + Definition of variables names:: + + NABOVE - Total number of students above the national median for the + math section. + NBELOW - Total number of students below the national median for the + math section. + LOWINC - Percentage of low income students + PERASIAN - Percentage of Asian student + PERBLACK - Percentage of black students + PERHISP - Percentage of Hispanic students + PERMINTE - Percentage of minority teachers + AVYRSEXP - Sum of teachers' years in educational service divided by the + number of teachers. + AVSALK - Total salary budget including benefits divided by the number + of full-time teachers (in thousands) + PERSPENK - Per-pupil spending (in thousands) + PTRATIO - Pupil-teacher ratio. + PCTAF - Percentage of students taking UC/CSU prep courses + PCTCHRT - Percentage of charter schools + PCTYRRND - Percentage of year-round schools + + The below variables are interaction terms of the variables defined + above. + + PERMINTE_AVYRSEXP + PEMINTE_AVSAL + AVYRSEXP_AVSAL + PERSPEN_PTRATIO + PERSPEN_PCTAF + PTRATIO_PCTAF + PERMINTE_AVTRSEXP_AVSAL + PERSPEN_PTRATIO_PCTAF +""" + +from numpy import recfromtxt, column_stack, array +from statsmodels.datasets import utils as du +from os.path import dirname, abspath + +def load(): + """ + Load the star98 data and returns a Dataset class instance. + + Returns + ------- + Load instance: + a class of the data with array attrbutes 'endog' and 'exog' + """ + data = _get_data() + return du.process_recarray(data, endog_idx=[0, 1], dtype=float) + +def load_pandas(): + data = _get_data() + return du.process_recarray_pandas(data, endog_idx=['NABOVE', 'NBELOW'], + dtype=float) + +def _get_data(): + filepath = dirname(abspath(__file__)) +##### EDIT THE FOLLOWING TO POINT TO DatasetName.csv ##### + names = ["NABOVE","NBELOW","LOWINC","PERASIAN","PERBLACK","PERHISP", + "PERMINTE","AVYRSEXP","AVSALK","PERSPENK","PTRATIO","PCTAF", + "PCTCHRT","PCTYRRND","PERMINTE_AVYRSEXP","PERMINTE_AVSAL", + "AVYRSEXP_AVSAL","PERSPEN_PTRATIO","PERSPEN_PCTAF","PTRATIO_PCTAF", + "PERMINTE_AVYRSEXP_AVSAL","PERSPEN_PTRATIO_PCTAF"] + with open(filepath + '/star98.csv',"rb") as f: + data = recfromtxt(f, delimiter=",", + names=names, skip_header=1, dtype=float) + + # careful now + nabove = data['NABOVE'].copy() + nbelow = data['NBELOW'].copy() + + data['NABOVE'] = nbelow # successes + data['NBELOW'] = nabove - nbelow # now failures + + return data diff --git a/statsmodels/datasets/star98/r_glm.s b/statsmodels/datasets/star98/r_glm.s new file mode 100644 index 0000000..d2752cc --- /dev/null +++ b/statsmodels/datasets/star98/r_glm.s @@ -0,0 +1,37 @@ +### SETUP +#star.data <- as.matrix(read.csv("./star98.csv",header=T)) +#star.factors3 <- data.frame( LOWINC=star.data[,3], PERASIAN=star.data[,4], PERBLACK=star.data[,5], +# PERHISP=star.data[,6], PERMINTE=star.data[,7], AVYRSEXP=star.data[,8], AVSAL=star.data[,9], +# PERSPEN=star.data[,10], PTRATIO=star.data[,11], PCTAF=star.data[,12], PCTCHRT=star.data[,13], +# PCTYRRND=star.data[,14], PERMINTE.AVYRSEXP=star.data[,15], PERMINTE.AVSAL=star.data[,16], +# AVYRSEXP.AVSAL=star.data[,17], PERSPEN.PTRATIO=star.data[,18], PERSPEN.PCTAF=star.data[,19], +# PTRATIO.PCTAF=star.data[,20], PERMINTE.AVYRSEXP.AVSAL=star.data[,21], +# PERSPEN.PTRATIO.PCTAF=star.data[,22], MATHTOT=star.data[,1], PR50M=star.data[,2] ) +d <- read.table("./star98.csv", sep=",", header=T) +attach(d) +#attach(star.factors3) + + +### MATH MODEL +m1 <- glm(cbind(PR50M,MATHTOT-PR50M) ~ LOWINC + PERASIAN + PERBLACK + PERHISP + + PERMINTE + AVYRSEXP + AVSALK + PERSPENK + PTRATIO + PCTAF + PCTCHRT + PCTYRRND + + PERMINTE_AVYRSEXP + PERMINTE_AVSAL + AVYRSEXP_AVSAL + PERSPEN_PTRATIO + PERSPEN_PCTAF + + PTRATIO_PCTAF + PERMINTE_AVYRSEXP_AVSAL + PERSPEN_PTRATIO_PCTAF, + family=binomial) +#as.numeric(m1$coef) +#as.numeric(sqrt(diag(vcov(m1)))) +results <- summary.glm(m1) + +#star.logit.fit3 <- glm(cbind(PR50M,MATHTOT-PR50M) ~ LOWINC + PERASIAN + PERBLACK + PERHISP + +# PERMINTE + AVYRSEXP + AVSAL + PERSPEN + PTRATIO + PCTAF + PCTCHRT + PCTYRRND + +# PERMINTE.AVYRSEXP + PERMINTE.AVSAL + AVYRSEXP.AVSAL + PERSPEN.PTRATIO + PERSPEN.PCTAF + +# PTRATIO.PCTAF + PERMINTE.AVYRSEXP.AVSAL + PERSPEN.PTRATIO.PCTAF, +# family = binomial(), data=star.factors3) +#results <- summary.glm(star.logit.fit3) +# WITH R STYLE INTERACTIONS +#star.logit.fit4 <- glm(cbind(PR50M,MATHTOT-PR50M) ~ LOWINC + PERASIAN + PERBLACK + PERHISP + +# PERMINTE + AVYRSEXP + AVSAL + PERSPEN + PTRATIO + PCTAF + PCTCHRT + PCTYRRND + +# PERMINTE*AVYRSEXP*AVSAL + PERSPEN*PTRATIO*PCTAF, +# family = binomial(), data=star.factors3) + + diff --git a/statsmodels/datasets/star98/src/star.bi.dat b/statsmodels/datasets/star98/src/star.bi.dat new file mode 100644 index 0000000..36a3f5c --- /dev/null +++ b/statsmodels/datasets/star98/src/star.bi.dat @@ -0,0 +1,303 @@ +161119 34.3973 23.29930 14.23528 11.41112 15.91837 14.70646 59157.32 4445.207 21.71025 57.03276 0 22.22222 805 467 807 452 +161127 17.36507 29.32838 8.234897 9.314884 13.63636 16.08324 59503.97 5267.598 20.44278 64.62264 0 0 182 140 184 144 +161143 32.64324 9.226386 42.40631 13.54372 28.83436 14.59559 60569.92 5482.922 18.95419 53.94191 0 0 566 357 571 337 +161150 11.90953 13.88309 3.796973 11.44311 11.11111 14.38939 58334.11 4165.093 21.63539 49.06103 0 7.142857 573 424 573 395 +161168 36.88889 12.1875 76.875 7.604167 43.58974 13.90568 63153.64 4324.902 18.77984 52.38095 0 0 62 15 65 8 +161176 20.93149 28.02351 4.643221 13.80816 15.37849 14.97755 66970.55 3916.104 24.51914 44.91578 0 2.380952 2234 1452 2247 1348 +161192 53.26898 8.447858 19.37483 37.90533 25.52553 14.67829 57621.95 4270.903 22.21278 32.28916 0 12.12121 1363 491 1364 477 +161200 15.19009 3.665781 2.649680 13.09207 6.203008 13.66197 63447.4 4309.734 24.59026 30.45267 0 0 904 579 912 565 +161234 28.21582 10.43042 6.786374 32.3343 13.46154 16.41760 57845.64 4527.603 21.74138 22.64574 0 0 519 218 525 205 +161242 32.77897 17.17831 12.48493 28.32329 27.25989 12.51864 57801.41 4648.917 20.26010 26.07099 0 0 1071 514 1067 469 +161259 59.97293 17.51736 50.94093 23.10134 52.34344 16.93283 57434.44 4693.069 21.31489 19.53216 3.296703 13.18681 2964 830 3016 784 +161275 0 19.74886 1.864536 2.587519 7.407407 15.86979 52193.46 5248.693 18.51182 80.37975 0 0 235 204 235 209 +161291 28.12111 12.69201 19.26582 26.84197 13.37209 14.42864 57240.45 3980.589 21.89844 31.65829 0 9.090909 547 241 556 195 +161309 36.99047 10.03236 15.42302 30.74434 13.50763 13.29753 58413.74 4197.615 23.12943 31.15079 0 0 685 315 688 206 +175093 12.92796 7.172996 4.825949 13.23840 6.185567 17.47108 65570.86 5382.009 20.68333 34.83146 0 0 259 179 252 136 +175101 4.700895 8.736718 1.745657 6.932029 7.127883 16.18176 67367.55 4607.673 24.65106 39.63415 0 0 922 765 925 694 +373981 20.25979 0.4857445 0.8025343 5.976769 2.439024 15.30949 51311.63 4025.593 24.82292 36.19403 0 91.66667 377 249 377 204 +461408 42.66827 2.836879 0.9456265 23.87707 10.63830 11.83962 55990.32 5151.626 17.91209 24.44444 0 0 66 40 69 31 +461424 33.12923 6.305412 2.766154 12.86616 6.17284 14.60144 58558.6 4004.401 22.73008 49.65517 4.347826 26.08696 1089 632 1092 601 +461432 29.39297 1.071155 0.765111 9.716909 4.477612 14.04527 53772.3 4518.034 21.18506 51.02041 0 0 116 82 115 64 +461473 52.99313 6.217371 0.3322259 38.72805 7.619048 14.17395 50695.12 4114.065 20.41136 23.27586 0 0 137 58 139 51 +461531 35.08836 0.8292167 0.388144 4.622442 4.135338 14.30221 55278.74 4148.228 21.91947 25 23.07692 15.38462 439 241 449 220 +561564 37.20441 0.5699482 1.113990 6.321244 5.357143 13.60247 50668.49 3975.448 24.86918 22.97872 0 8.333333 312 175 309 151 +661598 54.26829 0.5497862 0.5497862 40.74527 7.407407 14.87105 52537 4205.362 19.44511 36.28319 0 0 115 46 116 36 +661614 65.82397 0.2640845 3.873239 58.89085 6.557377 10.92652 46291.79 4469.798 19.52548 37.93103 0 0 80 29 81 15 +661622 78.54077 1.282051 0 78.4188 20.83333 11.47788 49267.19 3893.337 21.12311 19.23077 0 0 66 7 66 5 +761648 30.07553 3.626196 10.50386 20.94431 8.66575 13.69108 62341.2 4011.390 23.88905 23.85445 0 72.22222 1252 676 1259 541 +761697 28.24601 6.893424 19.81859 16.78005 12.74510 15.91555 59176.53 4225.738 22.18379 18 0 0 188 94 190 86 +761739 22.33375 2.523732 3.310952 14.03103 10.30928 16.15686 59230.72 4114.418 21.74332 34.42623 0 0 323 210 322 142 +761754 22.62465 7.697888 4.902207 16.77688 9.421586 15.32368 57128.58 3928.696 22.14162 37.63838 0 0 2390 1482 2394 1365 +761788 51.78493 4.598930 27.79679 35.10160 30.02481 15.97489 58788.93 4049.181 22.87300 85.11166 0 8.333333 646 239 648 201 +761796 51.23848 13.02024 35.10118 25.52703 25.82688 17.18977 62664.1 4347.936 22.8705 36.5 0 8.474576 1909 668 1949 585 +761804 1.895322 9.925228 1.633719 4.276349 4.503464 15.92369 59976.94 4035.189 23.34687 50.74503 0 0 1420 1235 1417 1247 +861820 42.51143 6.252442 0.4103165 10.17976 8.076923 14.70948 58233.81 4733.28 20.67364 15.50388 0 0 396 210 403 165 +961903 45.42344 1.501194 0.9041283 26.27090 5.338078 14.35703 55740.14 4323.754 21.53458 86.722 0 0 337 172 329 135 +973783 30.16965 0.7973734 0.5159475 2.251407 1.904762 14.23233 51822.37 4030.978 21.47295 32.45614 0 0 188 132 193 106 +1062117 23.43337 11.75065 2.871447 19.03101 15.94416 11.87890 53158.07 4242.702 22.70517 40.50633 0 0 2295 1584 2267 1496 +1062125 57.9224 0.871731 0.6475716 68.74222 18.93491 11.19787 61085.44 4258.425 24.4786 14.83516 0 0 277 89 272 68 +1062158 60.59908 7.196613 0.8466604 72.34243 24.76190 11.83632 51537.34 3807.79 21.07004 38.7931 0 0 146 50 144 55 +1062166 62.01977 19.65177 11.31566 45.23962 23.40485 14.67996 61095.3 4685.643 22.25973 27.47559 0 31.11111 4973 1641 5018 1455 +1062240 35.60339 2.518757 0.375134 67.73848 7.913669 15.34516 54702.22 6836.694 21.14435 41.57895 71.42857 0 195 109 196 84 +1062265 63.17132 1.40625 0.6009615 71.35817 16.79198 14.46149 55184.78 4478.657 22.25652 16.78657 0 6.25 614 178 617 136 +1062281 72.91667 1.238739 0.5630631 70.04505 3.921569 11.55763 39728.35 3899.132 18.23651 13.04348 0 0 62 12 64 6 +1062364 91.60484 0.2143623 0.1071811 98.821 62.18487 11.92754 55527.29 4223.126 21.68654 13.38583 0 40 190 27 189 21 +1062414 57.00249 4.322917 0.5859375 70.66406 23.48066 14.00443 52155.26 4382.061 21.71153 23.02326 0 0 550 198 552 132 +1062430 69.6452 3.972303 1.020408 76.71283 27.6 13.01188 53531.64 4180.037 22.50103 14.69194 0 0 284 114 290 78 +1073809 87.83718 0.4054054 1.216216 90.45045 32.40741 10.37561 51400.56 4317.728 20.49057 30.85106 0 0 143 26 146 16 +1073965 49.25084 10.15299 7.874184 42.32374 16.53944 10.08090 54568.74 4006.118 22.59174 37.66667 0 76.92308 581 221 585 211 +1073999 69.49807 5.350028 0.3130336 70.43256 22.64151 12.32314 54546.01 4283.101 22.15424 40 0 60 265 85 274 82 +1075127 87.77725 0.5334627 0.5819593 97.76916 40 12.20753 60303.18 3933.777 25.6375 47.16981 0 0 151 14 155 16 +1075234 86.54599 1.713710 0.2016129 92.2379 26.08696 14.58066 62758.26 5242.8 21.72113 19.17808 0 0 143 24 144 35 +1075275 21.60468 0.5405405 0.2910603 7.484407 1.526718 17.11242 62522.82 5879.966 19.48512 26.37363 0 0 143 102 143 90 +1075408 64.85075 0.6671114 3.068712 64.50967 14.92537 11.36918 47732.57 3511.9 21.48872 10.66667 0 0 67 24 67 23 +1162661 53.125 21.75227 0.9063444 20.74522 4.651163 15.73608 60020.66 4325.154 24.48113 47.11538 0 0 138 68 138 76 +1175481 44.97466 1.348412 0.8264463 33.18834 5.932203 16.25328 55653.8 4602.903 20.85538 49.19355 0 0 186 78 183 73 +1262901 76.32121 0 0.6559767 2.842566 30 14.78554 65665.47 5770.566 19.64964 25.92593 0 0 90 37 88 38 +1263040 33.91672 0.7147498 1.169591 2.988954 0 15.79261 56055.94 4427.872 21.31544 44.70588 0 0 114 67 109 23 +1275374 11.71617 0.5 0 4.666667 0 15.51220 54645.67 4893.857 20.32154 34.14634 0 0 59 40 59 40 +1363073 54.25667 0.5188067 0.2779322 80.21123 35.04274 14.95651 66530.25 4304.715 23.78075 33.89831 0 0 372 104 373 67 +1363099 43.95482 1.432902 0.0551116 97.51998 70.09967 14.58775 67370.06 4266.618 23.57191 15.82569 0 0 495 89 506 91 +1363107 74.30168 0.4219409 5.555556 71.58931 40.57971 12.21709 53519.74 4518.243 20.625 29.41176 0 0 99 32 98 36 +1363123 62.10008 1.554243 2.9427 82.64429 33.41289 15.20630 66125.09 4453.164 23.32139 31.30288 0 0 560 162 578 133 +1363149 63.91804 0.3990025 0.1496259 70.47382 26.88172 11.60701 56622.57 4245.811 21.68514 32.14286 0 0 158 41 162 19 +1363164 39.94452 0.7492287 2.688409 60.77567 24.5283 9.224783 51167.03 3708.859 20.85687 34.92063 0 0 179 66 179 75 +1363214 76.8279 0 3.005780 31.09827 20.40816 15.31852 60141.08 5355.161 18.99177 19.35484 0 0 49 14 50 4 +1463255 25.58849 0.7623888 0.5082592 11.01228 5.454545 16.50992 59805.55 4349.222 23.45035 40.71856 0 0 171 106 170 126 +1563404 68.64343 0.7808143 1.728946 76.8879 31.81818 12.21163 58861.69 3714.92 25.99096 14.03509 0 0 520 78 550 104 +1563677 40.599 1.107011 14.87085 24.53875 7.627119 15.24427 63042.2 4572.615 24.41998 32.48408 0 37.5 190 63 187 45 +1563685 31.86047 2.014723 12.43704 7.477722 9.848485 15.32667 63498 5767.594 20.30722 32.8 0 0 170 87 167 75 +1563776 49.35103 1.697439 8.219178 31.98332 9.45946 13.08426 58159.2 4284.445 23.42700 15.49296 0 33.33333 216 97 219 68 +1563800 51.46237 0.3612479 0.7553366 17.76683 2.739726 14.43697 62633.1 5763.701 21.05658 17.79141 0 0 195 80 193 58 +1563826 24.99504 0.4204204 2.722723 17.39740 4.524887 14.79 60455.09 4308.128 22.87165 29.72973 0 0 322 213 324 156 +1563842 65.89027 0.4718152 4.395332 78.91731 21.10092 14.93269 61803.9 4139.937 24.51174 14.01515 0 0 250 55 255 43 +1573742 32.59873 2.233486 4.79962 10.89815 5.629139 14.35102 62453.15 4537.569 22.04157 38.66279 0 0 458 256 463 208 +1573908 81.96457 0.3115265 0.2336449 92.01713 31.89655 13.13246 55369.86 4428.046 22.50856 23.68421 0 0 199 28 200 18 +1575168 37.83202 0.3584229 0.860215 13.69176 8.333333 10.38143 55942.07 4098.994 24.92174 0 0 0 91 49 91 47 +1663891 64.27918 0.4638219 4.050711 79.37539 17.36111 15.31545 66404.2 4605.861 22.67635 15.58442 0 0 191 61 197 45 +1673932 86.49362 0 0.7340946 89.96737 15.59633 11.06066 57641.57 4543.492 21.75277 26.19048 0 0 153 28 161 14 +1764014 45.57020 0.9541985 1.335878 22.08969 7.207207 14.75781 54040.6 4832.32 20.08333 50.9434 0 0 162 91 165 91 +1764022 73.609 0.8296107 5.966816 9.60434 6.329114 13.7825 54439.95 4354.388 20.61290 10.60606 0 100 201 66 206 52 +1764030 46.29523 0.6597031 1.869159 15.66795 3.448276 15.13131 58962.14 4361.361 21.41705 28.42105 0 0 146 88 147 85 +1764055 26.79575 0.7237636 0.3618818 8.685163 1.204819 11.29516 50096.41 3932.39 19.15049 40.69767 0 0 120 76 116 77 +1764063 52.91709 1.732926 2.854230 8.25688 6.25 14.98707 59995.4 5022.533 21.89956 37.70492 0 0 60 30 61 23 +1864204 41.9708 0 0.5714286 9.142857 3.030303 17.90429 55176.85 5259.958 18.96552 18.18182 0 0 42 15 43 8 +1964212 30.50552 32.46542 10.40141 32.65980 36.00406 15.25756 59289.09 4219.665 22.57679 49.73262 0 3.333333 1579 837 1599 879 +1964261 8.362214 52.59396 1.213040 9.888444 8.900524 15.98201 64415.47 4166.218 24.27460 60.84011 0 27.27273 771 540 771 640 +1964279 70.73827 0.9595613 3.152844 78.94106 25.95573 14.49885 64611.03 4379.243 23.98186 19.42446 0 11.11111 794 191 800 200 +1964287 62.87168 4.72375 1.793829 85.46998 27.21202 15.06211 67839.96 3819.118 27.50542 26.77165 0 0 972 272 1029 268 +1964295 79.6766 2.102924 2.102924 89.14344 45.6 14.39982 62084.61 4432.065 23.55966 20.98765 0 0 395 71 399 108 +1964303 49.17215 5.575448 18.15857 38.48009 12.27437 13.04228 58550.52 3988.183 23.88522 17.99729 0 7.142857 927 287 927 260 +1964311 9.733488 10.93985 3.571429 4.097744 10.81967 18.2 62455.76 6015.758 17.72469 61.88437 0 0 417 329 417 346 +1964329 25.84395 5.866005 4.823821 27.58313 9.501188 16.89201 62021.76 4054.136 24.11424 51.76471 0 0 803 450 804 426 +1964337 37.6798 5.688124 2.774695 36.95893 13.16667 14.46938 62400.43 4138.196 23.95766 32.4291 0 5.263158 995 517 992 436 +1964378 23.94770 5.265554 4.871017 36.61608 11.76471 15.32254 61534.67 4024.875 24.12297 38.72549 0 0 459 271 464 209 +1964394 20.80702 10.11185 12.00121 20.87364 11.70886 13.90775 61447.66 4401.148 21.54203 53.16973 0 0 482 323 483 338 +1964436 37.64495 8.548446 5.798903 50.82998 14.25993 13.90046 62290.03 4265.807 24.2564 42.08443 0 0 955 458 958 450 +1964444 33.51168 10.20237 17.91269 36.81218 18.65079 15.38502 62132.02 4282.612 22.95729 41.17647 0 0 386 174 388 144 +1964451 42.84095 5.595576 4.80418 63.33705 14.59948 12.29348 64631.93 3979.219 25.14150 23.26733 0 0 1300 637 1312 538 +1964469 61.40009 2.775971 13.20755 61.96053 30 16.06842 59303.74 4179.698 25.22527 15.01597 0 0 267 85 273 71 +1964527 68.0851 0.683527 0.580998 94.48052 51.81452 16.27428 65653 4338.243 22.49503 33.67003 0 0 662 152 682 130 +1964535 13.80008 6.320789 3.397881 14.87030 4.761905 11.92766 57362.05 4718.115 21.28874 38.99371 0 0 209 146 212 125 +1964568 50.67402 12.12724 1.119947 23.8668 12.23958 13.22109 73039 4224.937 26.67020 26.38655 0 34.48276 2339 1123 2327 1326 +1964576 14.82624 4.119138 1.292776 16.56527 6.329114 14.99266 63784.61 4130.35 24.90064 33.6 0 0 556 350 584 339 +1964634 69.00829 0.1925546 43.09138 55.36819 63.43907 15.01983 63040.99 3748.33 27.40275 38.88889 0 57.89474 1095 296 1111 222 +1964659 1.421801 26.20056 0.5414313 3.060264 8.205128 15.02579 63791.63 4705.506 21.59624 66.18182 0 0 326 293 326 287 +1964683 2.971741 7.57133 1.366449 4.975937 7.024793 17.00701 64749.85 4414.05 24.23913 60.62323 0 0 825 693 828 671 +1964725 64.2387 14.16632 20.33687 40.48983 29.10875 13.30980 59298.18 4210.309 22.98312 41.37823 2.325581 19.76744 5645 2145 5677 1930 +1964733 73.18394 4.308746 13.79525 68.52417 45.46139 20.54574 73073.07 4365.276 23.42095 49.30618 2.321981 32.19814 38418 10373 38852 9324 +1964774 59.29694 0.224649 12.05616 86.5273 52.48714 15.79301 67063.02 4064.954 27.05961 15.08475 0 50 951 171 939 113 +1964790 56.89858 1.915122 14.06465 48.07722 17.54386 14.42588 57193.3 4017.302 22.55472 25.94752 0 11.11111 398 183 401 144 +1964808 75.0343 4.879927 0.4471292 90.5185 59.52981 16.92341 67605.91 3810.285 27.99578 28.54167 0 25 2025 466 2093 377 +1964840 44.02203 4.939493 5.01597 62.97629 29.22002 15.62108 60665.56 3616.505 25.62582 21.50866 0 7.142857 1425 513 1436 388 +1964865 1.943602 30.02693 1.723209 3.941842 7.474227 18.94287 59821.21 3946.788 24.11441 89.13043 0 0 680 551 678 597 +1964873 58.22835 1.783620 14.61458 75.7082 35.24845 11.80146 63190.71 4370.215 24.5058 5.430712 0 73.33333 1080 248 1088 185 +1964881 61.8811 2.22193 32.00543 47.11193 42.18415 14.27299 64584.04 4443.599 23.86713 39.65517 0 0 1348 404 1352 365 +1964907 73.5053 6.393463 11.23378 71.20447 48.69857 16.68337 65628.77 4007.186 26.04422 8.27719 0 23.68421 1986 616 1983 575 +1964964 0.2653400 63.20234 0.4871712 3.345242 6.944444 15.90786 57543.38 4619.277 22.17736 78.1893 0 0 265 215 265 246 +1964980 26.09065 5.531472 8.617999 27.07647 22.2664 15.87400 65963.43 5063.35 22.31528 65.10638 0 0 735 500 753 429 +1965029 11.67883 32.08936 4.467806 18.21288 13.01775 16.19645 61169.62 4043.499 22.99094 64.07407 0 0 300 228 300 234 +1965052 27.32198 38.10775 1.445466 20.36794 7.359307 13.7875 59417.3 4035.891 23.64895 31.56499 0 0 384 246 376 237 +1965060 17.70193 28.47688 3.996755 15.83330 19.65726 13.31861 59555.29 3822.103 23.78323 45.95661 0 0 1726 1105 1732 1108 +1965094 47.30717 9.43911 9.122654 58.16237 17.52022 13.90339 56841.37 3907.338 24.42266 29.06178 0 0 629 233 627 194 +1973437 78.42391 0.05453864 35.72962 62.92736 80.17493 14.79315 58991.42 3743.125 28.09997 41.78905 0 2.564103 1810 308 1843 258 +1973445 40.23607 16.39995 2.539347 67.97602 28.90365 17.39357 62325.3 4103.139 25.05607 38.67849 0 0 1636 622 1647 609 +1973452 33.85063 18.78119 6.688608 55.35089 29.18239 16.1731 62277.31 4369.675 24.44574 30.26188 0 0 1204 554 1213 606 +1973460 6.196674 42.31389 5.721689 18.18054 17.73649 14.82445 60555.24 3982.78 24.25086 57.78547 0 0 1162 802 1171 831 +1975291 53.4557 36.40237 1.889589 43.47907 22.06573 14.12308 57663.26 3814.974 23.16667 0 11.11111 0 320 173 319 185 +1975309 28.17235 1.443203 1.722533 11.91806 7.446809 11.72804 58880.17 3806.893 24.82222 0 0 0 191 124 192 109 +1975333 7.197273 7.00382 1.819174 8.659269 7.936508 15.21719 64224.89 5093.928 21.58711 43.08943 0 0 296 263 299 242 +1975341 25.63993 7.277444 5.188422 23.18405 10.24845 16.50521 68096.37 5006.776 22.47522 51.54062 0 0 488 303 489 298 +2065193 59.28721 0.9413778 2.524604 41.63457 6.666667 12.20542 53265.82 3873.24 23.55149 25.40984 0 0 147 71 159 48 +2065243 60.0239 1.152145 3.543626 67.3538 26.82927 14.05485 56274.59 4064.557 23.45833 31.99405 0 45 1101 374 1130 362 +2165417 14.79229 4.893837 2.770585 11.10823 3.562341 16.62018 53794.99 4365.513 20.39636 48.08511 6.25 12.5 558 407 564 412 +2165458 34.76768 7.884136 5.198542 36.17878 8.536585 15.19114 53336.38 4458.969 20.96682 53.59281 0 0 278 161 277 144 +2173361 0 0.4801921 0.4801921 28.69148 7.407407 13.72615 60992.5 6459.384 16.40535 26 0 0 52 36 52 28 +2265532 27.00072 0.5113221 0.2921841 6.208912 1.459854 15.59845 51692.82 4183.603 21.53846 29.80132 0 0 223 140 225 112 +2365540 55.9322 0.8403361 1.344538 45.37815 0 12.756 48855.96 6406.862 14.31604 44.73684 0 0 38 23 38 21 +2365565 37.29968 1.162791 0.4152824 19.68439 2.272727 17.13074 56336.78 4990.487 19.47287 25.89928 0 0 188 103 188 98 +2365615 46.92754 0.969469 1.114166 22.81869 4.848485 17.4015 64535.71 4838.431 21.34488 33.33333 0 36.36364 492 241 489 240 +2365623 46.53846 0.8461538 0.6923077 11.57692 2.985075 17.472 56568.13 4611.976 20.82808 26.38037 0 0 170 90 171 67 +2373916 56.33117 0.5172414 0.6896552 3.965517 4.651163 12.49787 48867.6 6578.053 15.73298 34.21053 0 0 34 24 33 13 +2465698 37.78899 1.586639 0.2922756 17.32777 11.71171 13.41706 58102.55 4361.619 22.78612 20.8 0 16.66667 181 63 183 60 +2465722 41.43167 0.9155646 0 84.13021 25.58140 12.77143 55709.23 4140.527 22.18527 24.74227 0 0 46 4 48 14 +2465755 50.92824 1.244953 4.862046 53.17968 12.1673 12.07816 55074.62 4075.188 21.77028 33.93502 0 50 454 141 455 123 +2473619 52.40793 0.6143345 0.9556314 50.44369 8.333333 11.98961 53609.9 4080.966 21.15774 49.27536 0 0 106 29 108 23 +2475317 60.91821 0.1568013 6.31125 61.70129 15.44118 11.49135 54802.7 4750.999 18.81218 19.59459 0 0 179 48 181 33 +2573585 33.27773 0.75 0.75 10.41667 1.612903 11.68088 55854.74 4786.679 19.22953 32.78689 0 0 94 47 94 37 +2573593 64.85084 0 0 52.38095 4.761905 12.95532 50840.07 4851.063 18.40095 45.71429 0 0 47 15 47 19 +2673668 45.93373 0.3100775 0.7751938 14.10853 2.222222 14.03431 52320.31 6283.433 14.66970 76.92308 0 0 39 24 40 24 +2673692 21.84007 0.5828476 0.08326395 21.81515 4.83871 14.98485 60159.44 4806.483 20.59423 42.85714 0 0 92 58 93 45 +2765987 10.70682 2.977162 1.305057 7.544861 4.8 17.29423 69887.39 5676.651 20.67854 55.92105 0 0 202 156 201 149 +2766092 40.13453 8.813424 15.63724 25.22573 17.65705 19.47192 61011.63 4496.243 20.60704 28.90792 0 95.2381 761 365 773 255 +2766134 14.27955 4.711581 1.893439 7.089388 2.941176 17.54195 63909.55 4756.384 22.63210 48.17518 0 0 157 116 154 105 +2773825 40.66667 1.844262 1.285395 49.23621 20.15810 14.68534 56619.21 4356.072 21.57957 60.59783 0 0 353 124 357 107 +2775473 67.26937 0.2738788 0.4108182 86.51147 24.19355 11.88684 58893.12 4200.852 24.90864 11.30435 0 0 161 43 163 60 +2866241 45.67023 0.6825939 0.3412969 47.09898 4.545455 13.51122 54344.89 4650.725 20.97387 50 0 0 62 31 61 21 +2866266 32.70906 1.396074 1.776254 26.488 6.388527 15.47587 54785.13 3912.949 21.83841 29.25258 3.333333 0 1171 656 1198 587 +2866290 34.43425 0.7380074 0.4305043 37.45387 14.63415 15.64778 51434.44 4386.959 21.20205 44.14414 0 0 113 62 112 58 +3066449 16.15780 8.398994 2.179380 21.62615 4.897959 15.22727 57193.42 3825.952 25.22776 40.72022 0 0 449 323 455 300 +3066464 17.33803 4.709514 1.580624 16.95375 9.391933 12.69992 60779.38 3802.974 23.00043 44.82558 0 10.52632 2686 1934 2692 1804 +3066522 48.15608 28.71155 1.291070 44.05147 11.48612 15.67656 65184.42 3835.549 24.67322 20.3813 0 0 2986 1224 3007 1473 +3066555 9.316273 1.883830 1.216641 9.22292 7.619048 16.90641 70274.37 4481.474 24.26357 74.28571 0 0 188 154 188 145 +3066597 39.02544 4.683563 1.235117 34.12381 4.426788 16.00117 60202.04 4349.231 22.48276 42.87149 0 0 1186 759 1186 688 +3066621 36.01998 10.88242 2.085541 36.82177 9.424084 16.81767 56415.11 3586.935 25.44882 47.33026 2.564103 12.82051 1989 1054 1991 1035 +3066647 21.01388 8.124397 1.888460 25.92012 11.39742 15.15302 63101.53 4172.242 24.71715 36.56174 0 0 1873 1180 1875 1238 +3066670 73.27723 4.408512 1.079825 90.79082 26.48752 14.97092 69824.54 4102.145 25.03219 21.72937 0 56.25 3331 666 3391 610 +3073635 10.53450 8.401664 2.167491 14.81068 6.056435 14.97990 60372.2 3840.866 22.19101 53.79189 0 0 2363 1654 2363 1607 +3073643 29.86897 8.276043 4.655274 41.6814 5.263158 13.01412 57831.15 3629.530 24.16947 39.59538 0 0 1053 569 1074 526 +3073650 10.51650 25.16370 3.039764 7.41078 9.255725 16.09776 62550.98 4352.488 22.65816 0 0 9.67742 1795 1400 1799 1421 +3073924 11.60025 8.99128 3.111006 11.53665 10.13333 15.09307 67284.94 4726.529 23.19879 49.59217 0 10 622 491 621 416 +3166944 23.35644 0.627574 0.4314571 17.70935 6.617647 13.59359 49513.03 4638.098 19.67842 44.13146 0 0 357 243 358 204 +3166951 28.66097 0.5628095 1.440792 17.42458 4.878049 13.33273 42658.39 3503.698 24.26859 27.46114 62.5 0 194 95 182 49 +3175085 17.13624 3.538945 1.372581 6.664462 4.651163 11.19239 52654.82 3596.095 23.04330 0 0 0 438 346 445 276 +3266969 36.66211 0.6635333 1.216478 6.856511 2.717391 16.15405 56500.12 4912.702 21.23209 33.19328 0 0 289 182 288 132 +3366977 42.29029 4.021226 7.222877 47.15802 17.24138 13.00708 62390.7 3758.198 25.18195 41.66667 0 70.58824 1079 356 1078 280 +3366985 75.52987 13.36851 13.85224 36.69745 20.29703 13.81733 60074.78 4456.322 21.89966 41.81818 0 12.5 316 95 335 54 +3366993 58.74644 1.151316 3.426535 34.64912 9.027778 15.96616 59270.44 4070.74 24.75627 26.25 0 12.5 219 103 219 53 +3367033 41.51139 3.604238 4.644538 41.77843 11.37321 13.54297 64063.46 4083.554 25.23114 34.63727 0 34.28571 2104 989 2122 849 +3367058 55.99125 1.264684 2.467791 60.04168 15.80882 12.68737 64123.52 3937.206 25.2138 43.17181 4.347826 0 1428 486 1434 387 +3367082 62.40778 1.435897 2.666667 29.23077 9.03328 15.50251 59735.05 3916.537 24.51756 21.42857 0 5.263158 1090 534 1085 456 +3367090 50.21092 1.388811 5.304256 53.2545 23.78976 13.27531 62068.72 3826.458 24.66667 26.38353 0 4.166667 1177 424 1199 300 +3367124 43.06891 3.265436 23.67600 35.35328 23.12358 14.01194 58401.16 4173.917 24.09220 25.59242 2.857143 22.85714 2269 885 2300 644 +3367173 62.50497 1.157494 5.942876 53.49124 8.933333 13.07002 57242.97 4143.368 24.20104 13.75405 0 9.52381 1210 460 1226 319 +3367181 55.91289 0.6329114 10.52215 52.08333 10.79545 14.11026 61885.48 4694.474 22.19581 20.93023 0 0 233 75 238 93 +3367215 47.23435 3.598305 10.32666 40.11093 21.7477 10.97662 61445.65 4384.205 23.56853 33.77246 0 19.04762 2371 1091 2388 860 +3367249 64.1791 1.007308 3.851471 50.81967 7.446809 13.11981 58040.66 3564.449 26.02162 11.93182 12.5 25 306 92 306 92 +3373676 85.51459 0.1381215 0.2762431 96.16713 36.46532 11.92077 61385.59 4099.012 25.27964 13.54680 0 0 838 92 862 86 +3375176 38.11647 1.790807 4.072428 30.11209 11.41869 13.05375 62326.66 3960.634 25.39694 25.38330 0 83.33333 994 457 990 307 +3375192 18.16999 1.957028 3.825099 17.78432 8.097928 12.19485 64156.11 3664.265 25.5498 25.86806 6.25 81.25 1028 617 1029 587 +3375200 18.21645 2.105698 3.437242 17.84682 15.19337 9.219296 59134.67 3774.601 25.86148 38.25666 0 100 669 408 674 290 +3375242 54.84387 1.897597 23.57961 45.82304 21.23894 10.90779 58447.44 3799.078 25.54149 31.80212 0 0 647 214 656 177 +3467314 36.94477 15.21258 19.09346 16.26987 17.40431 12.27789 58331.63 3762.583 23.11697 29.58015 0 33.33333 2805 1318 2817 1239 +3467330 26.11432 5.308799 9.912578 8.671743 9.722222 14.26319 51104.65 3845.847 22.19777 27.70919 4.347826 30.43478 957 584 957 555 +3467348 33.11538 1.770956 1.180638 35.72609 9.166667 11.77256 51742.2 4581.189 22.21333 23.98374 0 0 347 180 349 154 +3467413 35.97884 1.407285 1.034768 36.92053 11.90476 14.73511 51080.37 4420.624 20.18018 45.3125 0 0 171 91 174 82 +3467439 59.40643 23.87054 21.95251 23.50613 27.45747 14.0033 61997.03 4125.407 24.82678 38.74261 1.298701 10.38961 3322 1329 3398 1325 +3467447 28.84975 4.59477 5.959822 8.972135 7.187223 12.61622 58872.75 4335.660 21.75074 39.28442 1.219512 6.097561 3282 2100 3310 1787 +3473973 29.30606 7.97491 13.87097 10.28674 10.69959 13.23241 55944.13 3811.049 22.28951 78.96825 0 42.85714 388 244 391 266 +3475283 37.95538 6.22615 29.74493 26.23017 12.23404 10.66611 57672.68 3312.515 22.42841 0 14.28571 14.28571 411 193 412 136 +3575259 35.75375 2.109375 0.625 40.46875 16.66667 11.91818 61919.85 4272.916 22.22222 0 0 0 114 72 114 58 +3667611 50.62411 1.101449 11.78261 38.13043 19.26910 14.40147 57100.62 4203.244 22.98675 12.98701 0 0 459 184 467 149 +3667637 40.70337 0.449312 0.954788 11.42937 3.521127 13.88148 57824.88 3838.359 25.36429 35.42857 0 100 273 158 280 143 +3667678 25.95567 6.023256 5.232558 38.20266 18.69852 15.21277 62270.05 3664.259 24.16969 29.01554 0 10 2137 1133 2132 1002 +3667686 44.45212 2.019903 9.084639 63.68608 19.09425 11.89511 59625.26 3811.724 24.03023 34.44593 0 48 1302 430 1304 352 +3667710 39.99806 1.101044 11.80547 65.77463 19.71081 12.96852 60468.72 3939.782 24.37131 18.2534 0 56.25 2213 575 2259 407 +3667777 46.74229 1.503836 8.194373 13.34015 4.504505 13.40194 62286.07 4128.065 22.62928 13.5 5.882353 0 660 290 667 280 +3667801 54.40152 1.161946 3.776325 17.28395 2.941176 16.79467 61234.99 4903.238 21.27721 40.35088 0 10 101 42 103 45 +3667843 34.60404 8.123958 7.962554 30.9894 15.03356 14.84909 60477.27 3763.685 24.72111 24.77432 0 50 1262 681 1261 580 +3667850 57.88502 2.875776 27.39844 51.59111 24.49393 12.17399 59096.31 3838.001 25.16211 13.23944 0 70.83333 1662 482 1750 368 +3667868 24.70073 0.979605 1.268669 13.05605 10.27668 15.79196 62201.87 3995.416 24.43908 31.28655 0 0 457 279 488 229 +3667876 70.23575 3.366044 19.61802 50.84942 25.21964 11.67938 61672.89 4147.682 23.98684 22.39521 0 42.62295 3036 911 3080 739 +3667918 44.91996 1.618203 16.41763 36.17087 15.53398 10.97167 61492.85 4057.497 26.51144 13.97059 15 20 998 389 1011 354 +3667959 27.57103 0.7626423 0.7743752 19.66444 6.060606 11.88049 63432.72 3784.39 25.07162 25 0 70 626 313 626 244 +3673890 46.96416 2.107896 18.18507 12.04001 7.913669 11.09907 60618.41 5342.537 20.25289 18.34862 0 0 179 98 180 74 +3673957 20.98413 0.8261886 2.088854 16.67966 4.054054 8.420029 53764.2 3823.18 22.52066 10.24845 9.090909 0 482 294 482 241 +3675044 47.6781 0.955685 5.308634 31.19068 11.89711 12.19179 62220.1 3865.725 24.81302 13.34405 0 61.11111 1035 424 1057 328 +3675051 62.31156 1.224847 2.274716 17.93526 5.263158 10.46923 59114.49 4587.305 20.48736 26.08696 0 0 81 32 81 17 +3675069 30.64712 7.226302 11.49032 28.47964 11.45631 13.98121 59659.77 3922.567 23.51056 35.31353 6.666667 6.666667 905 507 910 473 +3675077 43.73161 1.65699 17.27445 20.43186 5.168986 13.20700 62106.35 3058.089 24.52082 35.83916 13.33333 86.66667 889 471 880 352 +3768031 12.89092 1.749271 2.587464 10.49563 8.661417 15.07955 59963.79 4346.546 22.36994 58.82353 0 0 199 163 200 152 +3768098 43.17715 2.752435 1.797588 43.81089 8.999082 14.07094 58398.9 3882.451 23.42240 29.01186 4 44 1607 820 1610 757 +3768114 49.18965 0.8987701 4.328288 36.21097 10.14085 16.56101 66966.72 4540.894 24.11054 22.46094 0 0 536 316 538 285 +3768163 7.723036 0.1381215 0.6906077 9.254144 5 15.96932 62789.97 5092.907 19.09561 32.07547 0 0 54 48 54 40 +3768213 48.69423 0.1632209 1.468988 25.29924 4.301075 12.16262 52084.4 4470.921 20.17877 40.86957 0 0 142 68 143 47 +3768296 10.58816 8.755863 2.760139 7.792208 11.01512 14.19155 58198.62 3718.169 22.87571 46.68874 0 0 2347 1831 2349 1785 +3768304 35.02365 0.7042254 0.8766887 19.61771 7.491857 13.51452 57168.13 3976.03 23.11592 39.73684 0 0 510 342 509 280 +3768338 64.15235 9.492747 16.92434 35.27733 25.08497 12.29597 62782.7 4952.585 22.19313 31.24032 4.166667 28.57143 8470 3812 8479 3392 +3768452 40.05977 2.53262 6.127555 37.38501 11.09091 12.81245 65164.45 4103.446 23.64449 34.33243 3.703704 81.48148 1691 846 1707 683 +3773551 26.92308 2.594662 1.762880 26.13284 13.33333 15.28393 62997.11 4261.82 24.32617 43.44473 0 0 594 410 595 357 +3773569 54.9774 1.804259 14.86001 41.52190 16.01344 13.17371 57811.14 3832.582 23.35025 44.7178 0 0 1303 573 1317 435 +3773791 49.26504 2.389785 2.553705 44.13769 11.06472 13.66803 60657.16 4097.092 24.63998 29.65517 0 83.33333 734 338 749 330 +3868478 64.55428 41.36902 16.19322 21.20412 43.73746 15.28547 52885.51 5230.051 17.93118 48.83066 2.654867 1.769912 3624 1740 3633 1925 +3968502 36.41286 0.9198423 0.3285151 26.64258 5.673759 14.19245 53510.44 3846.512 23.32055 26.41509 0 0 197 126 200 114 +3968569 44.12983 19.62769 10.69226 17.62653 14.7343 13.20137 53970.81 4022.264 21.56064 29.83539 0 0 629 327 634 279 +3968577 40.58286 1.936027 0.3367003 34.21717 7.207207 16.12520 52198.86 3727.909 22.02652 39.28571 0 0 190 89 193 60 +3968585 48.76863 19.79547 5.832491 23.64881 11.27119 15.08360 59465.23 4469.021 22.00292 30.33708 0 62.85714 1916 824 1932 638 +3968593 35.13317 2.449629 4.936003 29.09547 11.32638 13.80978 56910.66 3589.197 24.38578 36.2426 0 0 1189 606 1207 591 +3968650 13.77399 0.7308161 0.4872107 21.84328 2.564103 14.55039 51683 3786.43 20.59880 29.72973 0 0 173 119 173 130 +3968676 68.72708 20.87249 13.34830 42.18544 33.74755 12.67768 66654.75 4527.226 22.94049 18.20926 0 21.95122 2218 554 2323 558 +3975499 26.57033 4.436534 5.981941 26.72339 14.19624 10.59350 55631.9 3616.366 23.96260 26.28676 0 0 745 417 749 397 +4068700 18.07366 1.065779 1.648626 9.342215 3.284672 14.97258 60464.24 4506.425 23.30425 45.45455 0 0 438 324 437 293 +4068759 38.07467 1.538031 1.165175 30.20134 8.932039 13.48316 55684.26 3887.088 21.21927 25.90361 0 0 730 518 727 465 +4068809 22.46579 2.346382 2.090835 12.61471 5.326877 16.19522 64397.68 4933.223 21.43327 25.63559 5.263158 0 669 482 676 453 +4068841 17.99781 0.6178288 1.41218 9.223301 4.587156 11.08730 50372.47 3667.019 19.39394 35.95506 0 0 175 114 174 96 +4075457 36.82691 1.330486 3.876478 27.18463 5.802048 14.22784 59653.03 4756.442 22.28147 39.81481 0 0 423 245 423 224 +4075465 27.08779 1.005025 0.3015075 21.60804 9.23077 12.86419 46347.38 4792.461 17.37132 41.33333 0 0 65 45 66 34 +4168890 19.30207 2.108511 0.5399846 25.09643 8.290155 13.32290 51768.27 4138.211 21.00933 48.80952 0 0 329 220 331 179 +4169070 31.91489 8.753316 4.823657 34.79713 11.89931 17.10861 57489.22 3823.838 23.52320 38.95447 0 0 707 325 705 303 +4269146 39.27727 1.385309 0.9664948 54.38144 21.32353 14.49774 60262.91 4158.069 22.21329 33.33333 0 0 232 123 235 108 +4269229 35.70633 4.651992 8.920774 32.86695 9.057301 17.08317 53117.72 4325.819 21.67377 42.91498 0 13.33333 740 363 754 302 +4369484 44.54203 2.308979 1.528165 62.94479 22.37197 15.48966 62890.81 4312.730 24.50787 20.19002 0 15.38462 562 242 590 171 +4369583 23.6491 5.235658 2.399232 33.46129 11.25 17.79609 60283.85 4361.515 23.73711 37.80488 0 0 716 437 715 400 +4369641 7.894435 17.389 4.916817 6.887782 13.52834 14.11575 66182.01 5970.823 18.74769 73.37526 0 0 598 514 605 538 +4369666 42.80784 12.24502 3.270391 49.41048 22.36951 16.57729 80565.04 5038.4 28.21085 38.10758 0 0 2185 1071 2216 975 +4369674 40.20545 18.39412 4.340957 25.20091 11.52 15.60997 65468.92 4317.319 23.7628 29.55112 0 0 898 476 908 463 +4373387 28.89357 31.45988 5.952142 18.42952 20.22727 14.80637 60774.92 4090.016 22.11977 26.72065 0 0 710 426 713 399 +4469799 56.34867 1.201376 0.587457 72.01376 19.71665 14.11421 59922.13 4282.146 22.53530 26.64756 4 20 1253 426 1269 393 +4469807 14.50640 1.659053 1.226256 4.087521 3.333333 17.28916 58616.28 4262.088 24.33353 60.58091 14.28571 0 346 253 345 204 +4569989 39.60894 0.7471264 0.2873563 8.908046 4.301075 16.49120 56131.94 4741.874 18.73638 28.82883 0 0 144 81 145 59 +4575267 49.37712 0.8405323 1.074014 4.809713 4.090909 14.58583 55396.61 4509.515 20.73813 34.48276 0 0 338 169 335 131 +4670177 32.10162 1.633166 0.6281407 8.354271 1.960784 14.40364 54122.02 2908.312 16.88889 43.24324 9.090909 0 121 88 121 80 +4870524 11.44366 4.562111 7.805057 10.15024 10.16260 15.17562 61419.34 4303.057 22.27944 40.4908 0 0 433 359 435 326 +4870532 40.81942 1.316920 1.774979 39.96565 12.64368 15.51333 57074.22 4262.563 20.02370 39.66480 0 16.66667 245 103 239 100 +4870540 28.11086 6.548673 21.01071 18.01584 13.24153 15.96551 59268.99 3955.489 22.88891 26.11607 0 34.61538 1486 728 1496 688 +4870565 22.71245 2.529475 15.34834 10.39657 18.22034 15.12085 62353.6 4900.856 20.22874 66.31016 0 0 320 189 323 155 +4870573 23.01924 2.829361 8.373287 16.74657 9.129815 14.62274 53901.88 4110.539 22.38147 40.26144 5.263158 10.52632 1044 585 1052 515 +4870581 35.46088 3.839582 35.21459 15.5493 23.87677 16.68085 68338.8 4364.927 25.67080 20.02275 0 56 1290 477 1324 450 +4970656 39.70868 0.4294479 0.6748466 25.09202 6.329114 15.62941 56854.04 3942.010 20.42161 43.83562 0 0 117 67 120 55 +4970953 30.76032 1.923440 0.7165755 22.40241 6.153846 15.85861 54122.34 4170.568 21.14767 23.37165 11.11111 11.11111 392 239 386 224 +4973882 19.67584 3.863969 3.644564 12.84739 5.99455 15.71779 59484.68 4081.602 22.29298 14.45087 0 0 612 373 616 320 +4975358 33.55805 1.379099 0.858106 26.50935 17.56757 11.02364 50731.47 3834.786 21.02305 0 0 0 236 132 234 108 +4975390 21.46387 0.8783784 0.4391892 34.05405 14.28571 16.46453 56837.35 4968.968 20.91327 46.48438 0 0 231 136 232 151 +5071043 51.20522 4.550344 3.431583 39.2642 10.04902 13.27732 56234.31 3767.504 23.17001 12.96703 0 41.66667 690 228 688 193 +5071068 42.13075 0.7830854 0.2349256 25.92013 1.724138 13.38175 49550.74 3282.389 21.30662 29.87013 0 0 118 63 120 55 +5071217 55.00726 0.673968 1.235608 64.5886 18.12081 13.32733 55535.15 4008.414 24.00409 13.07190 0 0 220 86 224 72 +5071308 42.6007 4.702023 1.366867 32.55878 9.221311 14.96416 59645.21 3932.407 24.17863 21.40625 0 50 747 388 733 359 +5073601 53.90428 1.221374 1.475827 53.43511 14.73684 12.70857 51297.37 4109.917 21.68662 28.86598 0 16.66667 120 44 120 31 +5171399 72.2977 12.32356 0.597177 45.33116 6.521739 12.38267 52194.34 4350.793 21.44379 17.72152 0 0 131 43 135 39 +5171464 49.25642 13.28312 2.939555 25.5282 14.10788 15.09745 57777.56 4165.932 23.06171 24.24242 0 25 767 360 776 303 +5271498 49.15907 0.8762706 1.892744 29.75815 3.597122 13.24340 55372.46 3941.387 20.91108 36.42384 0 0 204 82 207 79 +5271571 51.2931 0.1422475 0.56899 32.29018 2.564103 15.81222 53216.62 5045.576 19.64384 34.21053 0 0 40 18 41 19 +5375028 60.14599 0.4807692 0 5.128205 5.555556 16.13205 63507.83 6482.47 17.90831 42.42424 0 0 41 25 43 23 +5471860 84.09904 0.5628518 0.2412222 90.72635 18.78788 14.21739 58391.11 3952.910 22.75184 8.370044 0 0 258 46 259 91 +5471878 74.57442 0.8955831 0.2442499 80.46 15.98174 12.97066 53304.9 3688.748 22.96475 16.46586 0 0 343 103 342 96 +5471993 76.58037 1.721170 0.05737235 83.76363 23.68421 13.28494 58362.71 4115.279 22.61873 27.42857 0 0 243 51 250 40 +5472256 44.83328 7.621228 1.954371 43.13517 12.71111 14.47325 58322.98 4057.255 22.31273 35.91731 3.125 28.125 1726 794 1750 578 +5472272 72.66314 1.192504 0.2981261 79.25894 13.15789 14.81406 58001.31 4081.734 21.10603 36.13445 0 0 147 46 150 26 +5475325 92.3345 0.933553 0.1098298 83.0313 17.10526 14.40238 61350.21 3792.456 22.91892 0 0 100 137 15 134 23 +5575184 36.71642 0.4279601 0.8559201 4.707561 4.651163 13.26809 48160.47 4666.561 18.42667 70.27027 0 0 53 36 53 31 +5672454 51.80654 0.5471956 0.4377565 76.90834 15.52795 15.02404 56925.98 3897.079 23.48475 30.60109 0 16.66667 264 82 266 59 +5672520 23.28170 1.366251 0.8628955 18.64813 8.152174 14.22136 56808.01 3825.936 22.87717 35.54688 0 0 308 222 304 204 +5672603 15.68154 5.522166 1.674629 17.43977 6.917476 15.00022 57203.55 3831.574 23.20986 37.68719 0 0 1328 837 1338 736 +5672652 38.15821 2.905512 2.354871 33.44268 9.943978 15.35255 56413.61 3699.07 24.85112 34.36341 0 22.22222 1166 653 1170 526 +5673759 12.32702 5.661354 1.485200 14.53115 5.405405 15.73222 62750.24 4265.133 23.81032 41.16638 0 0 1425 1126 1431 1088 +5673874 1.247051 6.066291 1.000625 2.345216 4.72973 12.22485 55208.84 4079.327 20.98849 74.3421 0 0 249 212 248 186 +5673940 23.45529 3.861647 1.819697 29.78191 10.36585 10.28723 54402.98 4155.084 21.65256 21.14094 0 0 510 332 516 284 +5772678 17.89883 10.49096 3.372093 12.70026 14.92891 14.43766 49783.31 4254.717 20.06286 46.42032 0 0 583 461 591 455 +5772686 49.23581 0.77951 1.670379 43.76392 4.166667 11.36091 50433.17 5039.203 19.54545 27.08333 0 0 51 24 59 17 +5772694 62.23968 13.82086 3.956157 32.12879 15.88448 13.27089 52881.33 4324.174 20.98711 8 0 18.18182 331 116 342 96 +5772702 46.16188 1.150575 0.8004002 45.62281 13.33333 11.80714 48426.15 3945.069 19.8583 53.77358 0 0 147 63 154 37 +5772710 43.41431 3.648564 1.541204 46.31998 21.37767 14.40468 53796.16 3845.481 22.70884 29.89247 0 6.666667 593 255 595 208 +5872736 70.62104 20.46172 2.989345 17.42305 11.03286 16.56420 61705.66 3970.984 24.88647 15.14286 0 13.63636 699 259 709 199 +5872751 77.74827 5.998899 9.576225 11.11723 7.874016 16.91871 65099.57 6913.397 20.03252 23.52941 0 0 154 92 156 72 diff --git a/statsmodels/datasets/star98/src/star98.dat b/statsmodels/datasets/star98/src/star98.dat new file mode 100644 index 0000000..09a827c --- /dev/null +++ b/statsmodels/datasets/star98/src/star98.dat @@ -0,0 +1,304 @@ +CDS_CODE COUNTY DISTRICT LOWINC PERASIAN PERBLACK PERHISP PERMINTE AVYRSEXP AVSAL PERPSPEN PTRATIO PCT_AF PCTCHRT PCTYRRND READ MATH LANGUAGE LANGNCE MATHNCE READNCE READM11 READNC11 MATHM11 MATHNC11 LANGM11 LANGNC11 READM10 READNC10 MATHM10 MATHNC10 LANGM10 LANGNC10 READM9 READNCE9 MATHM9 MATHNCE9 LANGM9 LANGNCE9 READM8 READMCE8 MATHM8 MATHNCE8 LANGM8 LANGNCE8 READM7 READNCE7 MATHM7 MATHNCE7 LANGM7 LANGNCE7 READM6 READNCE6 MATHM6 MATHNCE6 LANGM6 LANGNCE6 READM5 READNCE5 MATHM5 MATHNCE5 LANGM5 LANGNCE5 READM4 READNCE4 MATHM4 MATHNCE4 LANGM4 LANGNCE4 READM3 READNCE3 MATHM3 MATHNCE3 LANGM3 LANGNCE3 READM2 READNCE2 MATHM2 MATHNCE2 LANGM2 LANGNCE2 +161119 ALAMEDA ALAMEDA CITY UNIFIED 34.397299903568 23.2993035015743 14.2352828928537 11.4111248926629 15.9183673469388 14.7064601769912 59157.3224489796 4445.20742295583 21.7102488401518 57.0327552986513 0 22.2222222222222 661.66460833221 654.852837393022 649.464497916387 54.1977416319398 53.2739960500329 49.0258864770123 700.8 40 702.9 50 683.6 49 688.9 31 696.5 49 671.2 39 689.8 40 695.2 57 674.8 54 694.4 55 685.1 54 670.4 56 680 52 674.2 53 664.9 59 665.1 53 661.7 55 649.6 54 656.3 53 647 53 646.4 57 643.7 57 622 52 634.9 59 616.7 55 598.9 54 613.1 57 581.2 53 570.5 55 590.9 57 +161127 ALAMEDA ALBANY CITY UNIFIED 17.3650687227623 29.3283833952076 8.2348970637867 9.31488356395545 13.6363636363636 16.0832386363636 59503.9675324675 5267.59838002025 20.4427792915531 64.622641509434 0 0 686.821559860904 682.097784342688 669.959373446047 72.8915962207857 76.2717872968981 71.290611028316 715.6 56 727.3 71 693.8 60 712.3 55 726.7 75 694.4 62 707.6 57 720.5 78 687.7 65 715.2 73 714.9 80 691.7 74 714.4 81 712.5 84 692.2 83 693.4 80 693.1 80 671.7 75 690.2 82 672.7 76 674.2 80 676.7 81 647.5 71 655.4 74 649.5 76 626 74 636.3 75 607.7 70 596.8 73 616.2 77 +161143 ALAMEDA BERKELEY UNIFIED 32.6432354357246 9.22638614946307 42.4063116370809 13.5437212360289 28.8343558282209 14.5955882352941 60569.9202453988 5482.92209072978 18.9541918755402 53.9419087136929 0 0 671.640665091155 661.550763788391 653.599950413223 56.2609917355372 56.6483357452967 56.1053342336259 717.7 58 720 66 692.6 58 707.9 51 716.1 67 689.7 57 707.8 58 710.6 70 688.9 67 702.3 62 690.3 59 678.1 63 685.7 57 672.8 50 667.3 61 673.6 61 664 57 655.8 60 661.1 58 651.7 56 643.1 53 648.3 60 623.1 52 630.9 55 612.9 50 589.3 43 604.8 48 574.9 47 559.5 42 577.1 40 +161150 ALAMEDA CASTRO VALLEY UNIFIED 11.9095333524191 13.8830897703549 3.79697286012526 11.4431106471816 11.1111111111111 14.3893861892583 58334.1081871345 4165.09303235908 21.6353887399464 49.0610328638498 0 7.14285714285714 676.513967201032 668.812306006938 660.962304147466 64.1185253456221 64.2161767390907 61.975677169707 716.3 57 713.7 61 691.9 58 708.3 51 705.5 54 685.9 54 704.7 54 705.1 66 684.6 63 709.9 69 701.2 69 683.7 68 697.9 68 691.1 68 676.8 70 677.8 66 675.9 67 660.5 65 665.9 62 659.8 63 653.1 63 654.4 65 637.1 61 644.6 65 629.4 61 615.8 65 622.2 63 600.4 64 589 66 607.4 69 +175093 ALAMEDA DUBLIN UNIFIED 12.927964941112 7.17299578059072 4.82594936708861 13.2383966244726 6.18556701030929 17.4710762331839 65570.8608247423 5382.00870253165 20.6833333333333 34.8314606741573 0 0 672.820427644139 662.700114372856 657.977207001522 62.6826484018265 60.5428898208159 60.2913325696831 711.7 52 707.9 55 690.3 56 703 45 706.1 55 685.4 53 701.4 50 706.8 69 682 60 705 64 688.2 57 681.1 66 694.6 64 679.7 58 671.9 66 676.5 64 673.8 65 660 63 668.8 65 660.3 64 655.3 66 659 69 639.6 63 646.7 67 635.8 66 613.5 63 623.2 64 593.7 59 579.7 57 601.4 63 +161168 ALAMEDA EMERY UNIFIED 36.8888888888889 12.1875 76.875 7.60416666666667 43.5897435897436 13.9056818181818 63153.641025641 4324.90208333333 18.7798408488064 52.3809523809524 0 0 634.917397881997 629.553768115942 624.377661169415 26.7661169415292 24.4666666666667 21.2692889561271 677.8 19 680.2 25 660.3 26 667.4 14 676.1 23 650.5 19 663.9 18 669.3 30 652.4 31 663.9 25 653 23 644.5 30 651.3 24 648.2 26 640.8 32 636.4 24 635.3 28 625.9 28 621.8 21 614.4 19 612.3 23 606.2 22 597.6 24 604.3 29 573.5 17 560.4 16 570.6 18 560.7 30 547.2 26 569.3 28 +161176 ALAMEDA FREMONT UNIFIED 20.9314901814986 28.0235116408892 4.64322070075198 13.8081633993367 15.3784860557769 14.9775459688826 66970.5521912351 3916.10429185959 24.5191372040221 44.9157829070493 0 2.38095238095238 672.231665367151 667.751934900543 659.896057692308 64.1000915750916 64.6254972875226 59.4770903086731 713.3 54 720.7 67 695.4 61 708.2 51 715.9 64 688.8 56 699.6 49 707.6 68 683.5 61 701.3 61 694.5 62 679.9 64 693.9 64 689.7 66 676.7 70 679.4 67 682.7 72 666.9 70 668 64 661.2 64 658.7 68 652.3 63 636.5 61 646.2 67 624 56 609.1 59 619.8 60 601 64 586.7 64 601.3 63 +161192 ALAMEDA HAYWARD UNIFIED 53.2689776217639 8.44785772029103 19.3748315817839 37.9053265067816 25.5255255255255 14.6782859680284 57621.947947948 4270.90330548819 22.2127790292853 32.289156626506 0 12.1212121212121 642.626397690466 636.33247468834 633.291838901472 39.561013590034 36.7048694813692 33.3479791578651 689.8 29 694 39 670.5 35 681.7 24 688.6 36 664.2 31 678.2 29 685.2 46 665.1 43 677.4 37 670.3 39 657 42 664.3 35 660 37 652.2 45 653.2 40 650.1 42 641.5 44 638.6 35 630.2 33 631.9 42 620.5 34 603.4 29 615.8 39 595 32 580.1 32 592.2 35 566.9 35 559.4 37 578.5 37 +161200 ALAMEDA LIVERMORE VALLEY JOINT UNIFIED 15.1900897052542 3.6657808347663 2.6496795372831 13.0920744098796 6.20300751879699 13.6619730185497 63447.3966165414 4309.73393778334 24.5902624724504 30.4526748971193 0 0 668.662054255087 658.826442204589 652.29882914137 57.2864267129228 57.3267209950676 56.071866112448 713.8 54 712.7 60 691.6 57 706.3 48 707.3 57 685.7 53 704.3 54 706.4 68 687.7 65 701 60 694.2 62 674.3 59 688.2 58 682.1 59 666.8 61 667.7 55 667.6 59 650.8 54 663 59 652.8 56 648.7 59 647.9 59 625.8 50 633.7 56 626 58 603.4 54 614.7 56 590.3 55 574.2 51 593.5 54 +161242 ALAMEDA NEW HAVEN UNIFIED 32.7789739401589 17.1783055654023 12.4849344204183 28.3232896136122 27.2598870056497 12.5186375321337 57801.4124293785 4648.91669620702 20.26010286554 26.0709914320685 0 0 654.289313771888 652.417934527718 647.614495897388 49.6735829482222 46.7383922708939 39.4493137718883 700.4 40 705.4 52 685.8 51 690.2 32 695.7 44 673.7 41 683.8 34 686 47 672.4 50 686.8 46 677.3 46 666.1 51 671.9 42 670.7 48 660.6 54 656.5 43 657.5 50 647.2 50 639.2 35 639.5 42 639.3 49 631.4 44 621.9 47 633.5 56 603.3 39 594.8 45 604.2 46 573.7 41 570.1 47 588.6 49 +161234 ALAMEDA NEWARK UNIFIED 28.2158234660926 10.4304198574069 6.78637443886982 32.3343015579614 13.4615384615385 16.4176039119804 57845.6401098901 4527.60324795353 21.7413793103448 22.6457399103139 0 0 651.806326987682 646.560586617782 642.048435474912 46.2571745972968 43.4252978918424 39.2136991414707 693.5 33 696.5 42 677.8 43 687.1 29 693.1 41 671.5 39 686.3 36 690.7 52 672.7 51 684 43 676.6 45 661.3 46 673.1 43 665.8 43 659.6 53 657.4 44 657.4 50 648.3 52 646.6 43 639.3 42 640.2 50 631.6 44 617.4 42 625.9 49 603.3 38 586.7 37 597.6 40 570.3 38 563.6 41 581 40 +161259 ALAMEDA OAKLAND UNIFIED 59.9729276290704 17.5173624075872 50.9409304756926 23.1013367186917 52.3434423001182 16.9328347826087 57434.4423001182 4693.06937495333 21.3148871700821 19.5321637426901 3.2967032967033 13.1868131868132 624.563806995628 620.398091796817 616.567219733771 28.6828906693584 28.4544450085108 24.1449718925671 683.7 24 689.8 35 670.7 35 673.7 18 683.6 31 658.8 26 669.3 21 677.1 38 657.9 36 669 29 663.1 32 647.5 32 651.6 24 651.8 29 640.7 32 636.6 24 631.9 25 625.3 28 626.8 25 621.6 25 617.5 28 606.4 22 594 22 602.8 28 582.5 23 573.1 26 579.8 24 556.9 28 552.3 31 566.7 26 +161275 ALAMEDA PIEDMONT CITY UNIFIED 0 19.7488584474886 1.86453576864536 2.58751902587519 7.40740740740741 15.8697860962567 52193.4567901235 5248.69292237443 18.5118219749652 80.379746835443 0 0 704.578132444021 695.271888310459 688.142389758179 83.8003793266951 82.8760056791292 82.5393044306813 743.2 81 743.9 85 720.1 82 733.1 76 734.1 80 712.2 79 738.6 83 733.2 87 714.2 85 724.5 80 724.8 85 700.6 81 719.3 85 712.6 85 700.6 88 702.2 85 701 85 680.2 81 695.1 85 684.9 84 689.1 88 683.2 85 658.4 79 666.2 81 667.2 86 643.9 85 656.1 87 619.5 78 593.9 71 629.1 86 +175101 ALAMEDA PLEASANTON UNIFIED 4.70089495996232 8.73671782762692 1.74565694046214 6.93202900995109 7.12788259958072 16.1817604355717 67367.5492662474 4607.67330072525 24.6510600706714 39.6341463414634 0 0 683.838015568723 678.03443586493 671.316753082152 73.9103583362139 73.4222657600553 69.0648309515511 718.5 59 718.9 65 697.9 64 716.1 59 717.2 66 696.5 64 712.5 61 715.3 75 695.9 72 714.1 72 705.2 72 694.2 77 703.2 72 698.1 74 686.5 79 682.7 70 685.8 75 670 73 680.2 75 673.8 76 671.9 79 669 76 652.1 75 656.4 75 646.5 74 631.8 78 638.8 77 607.4 70 600.2 76 616.3 77 +161291 ALAMEDA SAN LEANDRO UNIFIED 28.1211115719618 12.6920072897683 19.2658161936996 26.8419682374382 13.3720930232558 14.428640776699 57240.4481686047 3980.58939468888 21.8984351933865 31.6582914572864 0 9.09090909090909 651.912278410151 642.209956553223 639.349656069902 43.8430935118052 39.3631426502534 39.3356969583878 693.6 33 695.4 40 678.3 43 685.4 27 689.7 38 668.9 36 682.1 32 685.9 47 666.9 45 684.7 44 672 40 657.5 42 673.9 44 666 44 661.2 54 657.4 44 653.1 45 643.3 46 649.5 46 632.8 35 637.7 48 629.4 42 606.2 32 623.1 46 602.7 38 579.5 31 594.8 37 573.9 41 563.8 41 581.1 40 +161309 ALAMEDA SAN LORENZO UNIFIED 36.9904684648144 10.0323624595469 15.4230235783634 30.7443365695793 13.5076252723312 13.2975345167653 58413.7385620915 4197.61525658807 23.1294326241135 31.1507936507937 0 0 650.559694592323 638.287041796294 639.202783519361 43.6724541821689 35.5612065467334 37.6273465956851 691.3 31 691.2 37 672.9 38 685.6 28 690.8 39 666.7 34 680.2 30 683.6 45 666.5 44 685.2 44 666.5 35 661.1 46 677.5 47 665.6 43 662.1 56 655.8 43 642.8 35 645.4 49 643.1 39 628.4 31 635.5 46 628.1 40 604.1 30 622.6 45 598.1 34 575.6 28 592.3 35 570.8 38 555.8 33 581.4 41 +373981 AMADOR AMADOR COUNTY UNIFIED 20.2597946783993 .485744456177402 .802534318901795 5.97676874340021 2.4390243902439 15.3094936708861 51311.6292682927 4025.59281942978 24.8229166666667 36.1940298507463 0 91.6666666666667 670.250681818182 655.3 651.925882352941 54.4072829131653 51.1426197729161 54.4082386363636 712.8 53 704.7 53 694.3 60 703.9 47 695.3 48 679.2 47 702.3 52 696.4 58 678.3 57 701.6 61 682.3 52 672.7 58 690 61 675.3 54 667 61 670.6 58 659.7 53 647.7 52 656.6 53 640.8 46 640.9 51 638.2 51 613.9 43 627.9 52 619.7 57 594.7 49 605.6 50 579.8 51 570.9 54 591.9 57 +461408 BUTTE BIGGS UNIFIED 42.6682692307692 2.83687943262411 .945626477541371 23.8770685579196 10.6382978723404 11.8396226415094 55990.3191489362 5151.62647754137 17.9120879120879 24.4444444444444 0 0 654.831493506493 646.170872274143 638.868238993711 41.8977987421384 42.0809968847352 40.1103896103896 685.3 26 688.8 34 665.3 30 690.7 32 690.7 39 662 30 695.9 45 696.1 58 671 49 695.3 54 674.7 44 665.8 51 677.4 47 671.7 49 658.9 52 656.2 43 655.6 48 639.5 42 647.1 43 635.9 38 632.3 42 624.1 36 609.1 34 627.8 50 601.7 37 582.9 34 588.4 31 558.5 28 560.2 37 573.5 32 +461424 BUTTE CHICO UNIFIED 33.1292320991212 6.30541173132846 2.76615362791687 12.8661607206185 6.17283950617285 14.6014383561644 58558.5972222222 4004.40095042202 22.7300762863172 49.6551724137931 4.34782608695652 26.0869565217391 663.164911595194 653.503262518968 647.277658142665 50.4598154201115 49.4008915022762 48.6200058610921 710.2 50 714.3 62 690.3 56 706.1 48 707.8 57 685.2 53 699.7 49 702.3 64 680.9 59 695 54 684.3 53 671 56 683.1 53 675.8 54 664.7 59 664.4 52 658.3 50 647.2 50 651.4 47 637.7 40 635.9 46 638.2 50 612 37 622.8 46 608.1 42 590.3 41 598.5 41 573.6 40 561.1 38 579.6 38 +461432 BUTTE DURHAM UNIFIED 29.3929712460064 1.07115531752104 .765110941086458 9.71690895179801 4.47761194029852 14.0452702702703 53772.2985074627 4518.03442999235 21.1850649350649 51.0204081632653 0 0 675.541104294479 661.864705882353 662.146998982706 62.5757884028484 54.0425963488844 57.4836400817996 714.6 55 709.1 57 703.3 67 714 57 713.7 63 695.7 63 706.8 56 707.9 69 691.3 68 706.7 66 683.5 53 682.4 67 688.7 59 676.6 54 670.8 65 671.3 59 666.7 59 655.8 60 662.9 59 650.5 54 652.7 63 647.5 58 615.3 40 638 60 617.1 50 590.8 42 608.1 50 586.3 52 564.9 42 596.6 58 +461473 BUTTE GRIDLEY UNION 52.9931305201178 6.21737066919791 .332225913621263 38.7280493592786 7.61904761904762 14.1739495798319 50695.1238095238 4114.06454674893 20.411361410382 23.2758620689655 0 0 647.268098591549 643.146611909651 636.80674002751 40.9401650618982 40.8555783709788 34.6556338028169 694.8 34 697 43 675.4 40 688 30 697.1 46 668.2 35 687.6 37 691.6 54 675.5 54 678.5 38 670.8 39 653.4 38 668.2 38 653.9 32 654.1 46 649 36 653.3 46 641.8 44 640.6 37 635.5 38 634.7 44 613.9 28 602.9 29 614.6 38 590.8 28 591.1 42 589 32 573.2 40 562.8 40 579.5 38 +461531 BUTTE PARADISE UNIFIED 35.0883585352523 .829216654904728 .388143966125618 4.62244177840508 4.13533834586465 14.3022108843537 55278.7443609023 4148.22776993649 21.9194683346364 25 23.0769230769231 15.3846153846154 666.75602871998 653.663746369797 646.168135095448 48.0907978463045 47.7294288480155 50.525129982669 707.9 48 706.1 53 679.2 44 702.1 44 701.2 50 671.6 39 694.4 44 694.4 56 670.1 48 693.1 52 680.5 49 666.7 52 681.5 51 672.5 50 659.1 52 666.4 54 654.5 47 645.9 49 657.3 54 636.9 40 636.8 47 642 53 613.8 39 622.8 46 617.8 51 596.4 47 607.2 49 589.6 55 568.8 47 595.2 56 +561564 CALAVERAS CALAVERAS UNIFIED 37.2044140830268 .569948186528497 1.1139896373057 6.32124352331606 5.35714285714286 13.6024725274725 50668.494047619 3975.44792746114 24.8691767708998 22.9787234042553 0 8.33333333333333 662.25800647715 649.149032711924 643.041403757533 46.6157390996101 45.047836792121 47.6523929471033 699.5 39 700.3 47 679.4 45 694.4 36 699.8 49 668 35 694.9 44 693.2 55 669.7 48 693.9 53 680.3 49 664.3 50 686 56 669.5 47 661 54 666.8 54 663 55 650.1 54 655.8 52 635.2 38 639.1 50 641.1 53 609.8 35 624.7 47 610.9 45 582.5 34 598.2 41 576.7 43 562 39 581.4 41 +661598 COLUSA COLUSA UNIFIED 54.2682926829268 .549786194257789 .549786194257789 40.7452657299939 7.40740740740741 14.8710526315789 52537 4205.36224801466 19.4451145958987 36.283185840708 0 0 653.225547445255 646.493309545049 638.67279344859 38.926296633303 38.5388046387154 35.7308394160584 691.1 30 688.9 34 670.2 35 678.1 22 685.6 33 655.4 23 686.8 36 696.7 58 668.9 47 679.1 39 666.5 35 653.7 38 673.1 43 663 41 650.2 42 654.6 41 650.9 43 640.6 43 639 35 624.4 27 627.9 38 626.3 39 603.9 30 619.1 42 599 35 588.9 40 594.3 37 574.5 41 568.1 45 588 47 +661614 COLUSA PIERCE JOINT UNIFIED 65.8239700374532 .264084507042254 3.87323943661972 58.8908450704225 6.55737704918032 10.9265151515152 46291.7868852459 4469.79753521127 19.5254833040422 37.9310344827586 0 0 639.172727272727 633.277030162413 623.559159859977 25.7491248541424 27.4095127610209 24.9306220095694 687.1 27 683.2 28 660 26 678.2 22 682.8 30 656.2 24 663.6 18 672.8 34 649 28 669.4 30 655.6 25 642.8 28 659 30 644.5 23 635.4 27 634.6 23 629.6 23 621.9 24 624.1 23 624.8 28 620 30 616.2 30 602.1 28 608.7 33 581.8 22 573.9 26 573.3 20 557.4 27 549.5 28 560.4 19 +661622 COLUSA WILLIAMS UNIFIED 78.5407725321888 1.28205128205128 0 78.4188034188034 20.8333333333333 11.4778846153846 49267.1922916667 3893.3372008547 21.1231101511879 19.2307692307692 0 0 623.801777777778 624.58059914408 615.708849557522 19.3126843657817 21.2339514978602 15.0103703703704 661.9 10 676.5 22 648.2 16 664.9 13 679 26 639.6 13 652.6 11 665 26 639.1 20 645.7 13 651.1 21 627.6 16 640.4 16 647.8 25 628.5 20 628.7 18 634.6 28 618 21 610.6 14 603.4 12 602.1 16 592.5 14 581.3 13 594.7 22 573.5 16 558.5 15 572.4 19 556.7 26 545.9 24 576.9 34 +761648 CONTRA COSTA ANTIOCH UNIFIED 30.0755277257763 3.62619624120835 10.5038625619739 20.9443099273608 8.66574965612105 13.6910780669145 62341.1939477304 4011.39040701026 23.8890485771774 23.8544474393531 0 72.2222222222222 654.988955223881 642.419637634059 642.558945199835 48.5542645241038 42.4466200844979 44.2719734660033 699.6 39 698.4 46 680.8 46 696.1 38 697.2 47 675.8 43 690.9 41 691.8 54 675.9 54 690.9 51 674.4 44 665.3 50 677.4 48 661.8 40 660 54 658.4 46 650.5 44 645.1 49 650.8 47 636.5 40 640.1 50 632.9 46 609.1 36 626.3 50 605.2 42 582.9 36 598.9 42 573.1 43 559.2 40 584.2 47 +761697 CONTRA COSTA JOHN SWETT UNIFIED 28.246013667426 6.89342403628118 19.8185941043084 16.7800453514739 12.7450980392157 15.9155462184874 59176.5294117647 4225.73832199546 22.1837944664032 18 0 0 655.849803664921 645.640405904059 641.369559668156 44.1640076579451 42.0817958179582 40.6603403141361 701.6 41 695.7 43 682.3 48 689.9 33 693.4 47 672.5 41 689.3 40 688 50 673.1 52 687.5 48 678.3 47 664.4 49 672.4 44 669.3 48 657.4 50 657.2 44 656.5 50 642.1 45 640.7 38 626.1 31 629 39 624.7 38 605.1 34 616.7 41 601.9 41 582.2 37 593.7 38 562 36 545.8 29 573.1 36 +761739 CONTRA COSTA MARTINEZ UNIFIED 22.3337515683814 2.52373234545034 3.31095160916879 14.0310257003936 10.3092783505155 16.1568584070796 59230.7216494845 4114.41768927993 21.7433155080214 34.4262295081967 0 0 666.986131386861 653.039726027397 651.011405568601 54.859443139886 49.3724722765819 53.342402123424 709.8 50 712.9 58 687.6 53 700.2 42 703.5 53 678.1 46 696.5 46 700.1 62 676.8 55 700.2 59 677.4 46 673.6 59 687.8 58 668.9 47 667.1 61 668.3 56 652.1 44 648 51 659 55 642 45 644.5 55 645 56 619 44 636.1 58 623.2 56 594.9 45 609.7 51 589.3 55 574 51 598.4 60 +761754 CONTRA COSTA MT. DIABLO UNIFIED 22.6246525611209 7.69788789375297 4.90220696967161 16.7768756452108 9.42158616577221 15.3236785904965 57128.5825879547 3928.69554420915 22.1416213544241 37.6383763837638 0 0 663.753803895455 655.29439179166 651.228181140823 57.5844026823413 56.8430443382232 53.913434326619 707 47 709 57 687.9 53 702 45 706.7 60 683.5 51 699.4 50 703.6 65 682.9 62 698.4 58 688.6 58 675.1 60 687.6 59 680 58 669.1 63 670.3 58 663.6 57 655.3 59 660.9 58 650.9 56 649.8 60 646.3 58 625.9 54 634.6 58 613.8 51 595.7 50 607.9 51 581.4 52 571.4 55 592.7 57 +761788 CONTRA COSTA PITTSBURG UNIFIED 51.7849321068769 4.59893048128342 27.7967914438503 35.1016042780749 30.0248138957816 15.9748903508772 58788.9305210918 4049.18085561497 22.8729963008631 85.1116625310174 0 8.33333333333333 638.057359342254 630.487298832439 628.793177419355 35.1459677419355 31.2234143262859 29.0448170240206 692.7 32 690.8 36 674.7 40 680.8 23 685 33 663.4 30 674.1 25 678.2 39 662.9 41 678.1 38 666.2 35 656.2 41 659.9 31 654.5 32 648.7 40 645.5 33 639.5 32 631.6 34 632.1 29 623.2 26 623.8 34 615.7 29 601 27 615.5 39 585.1 24 575.2 27 584.3 28 556.6 26 552.6 30 569 27 +761804 CONTRA COSTA SAN RAMON VALLEY UNIFIED 1.89532160557704 9.92522790125986 1.63371914370583 4.27634948274096 4.50346420323325 15.9236921529175 59976.9376443418 4035.18872272867 23.3468734613491 50.7450331125828 0 0 687.436196062002 681.264960300878 673.262666202576 75.288827010094 75.4876027301853 71.8017036726714 720.5 61 724.5 71 701.7 68 719.4 63 722.3 71 700.5 68 716.3 65 719.3 79 700.1 76 717.3 75 719.1 82 695.6 78 708 76 709.8 83 689.1 81 690.4 77 690.4 79 674.7 77 684.4 78 674.4 77 672.6 79 670.5 77 652.6 75 656.3 75 646.9 74 622.9 71 636.1 75 608.6 71 589.8 67 613.3 75 +761796 CONTRA COSTA WEST CONTRA COSTA UNIFIED 51.2384774565749 13.0202355783751 35.1011778918756 25.5270311084265 25.8268824771288 17.1897748592871 62664.0950035187 4347.93612201752 22.8705015585152 36.5 0 8.47457627118644 639.248799428299 632.602881497267 628.976394317857 36.1087329583373 34.3111275826925 31.5787994282992 690.4 30 694.8 39 674.4 39 682.4 25 688.6 36 663 30 677.9 28 679.4 40 663.4 41 674.5 34 665.7 34 652.4 37 658 29 654.6 32 644.3 35 650.5 37 646.9 39 636.4 39 637.6 34 629.3 32 627.6 37 617.2 30 602.6 28 613.3 37 595.4 32 582.9 34 590.8 33 566.8 34 555.8 33 576.2 34 +861820 DEL NORTE DEL NORTE COUNTY UNIFIED 42.5114329268293 6.25244236029699 .41031652989449 10.1797577178585 8.07692307692308 14.7094827586207 58233.8115384615 4733.28038296209 20.6736353077816 15.5038759689922 0 0 654.110813174002 643.545233380481 636.959429065744 41.8500576701269 41.4144271570014 42.1262022733897 699 39 700.6 46 673.5 38 691.8 33 695.3 44 667.2 34 685.2 35 687.1 48 666.6 44 690.5 50 672.9 41 661.1 46 675.6 45 665.7 43 655.1 47 656.8 44 650.1 42 640.2 43 647.2 44 634.3 37 632.2 42 632.4 44 610.5 35 619.1 42 609.2 44 591.2 42 598.5 41 572.4 39 562.4 39 579.5 38 +973783 EL DORADO BLACK OAK MINE UNIFIED 30.1696469509399 .797373358348968 .515947467166979 2.25140712945591 1.90476190476191 14.2323275862069 51822.3714285714 4030.97842401501 21.4729458917836 32.4561403508772 0 0 671.052793471438 662.392478421702 654.1465625 56.355 57.1011097410604 55.08223477715 705.8 46 707.6 55 681.9 47 697.9 40 697.6 47 670.9 38 698.2 47 700.9 63 676.7 55 701.4 61 687.5 57 679.5 65 683.2 53 672.5 50 663.4 58 670.9 59 675.1 67 653.5 57 667.6 64 661.2 65 654.8 65 652.4 63 631.3 55 643.1 64 629 60 609.6 59 620.7 61 593.5 58 574.4 52 591.6 52 +961903 EL DORADO LAKE TAHOE UNIFIED 45.4234388366125 1.50119413169567 .904128283862163 26.2708973046742 5.33807829181495 14.3570287539936 55740.1387900356 4323.75400887069 21.5345821325648 86.7219917012448 0 0 655.848036826428 645.356022041459 644.127473404255 49.6300531914894 44.7874573602729 43.96452748443 695.8 35 697.4 43 675.1 40 697.6 39 696.4 45 675.4 42 692.2 41 695.5 57 676.1 54 690.4 50 673.4 42 671.7 57 675.7 46 665.6 43 665.1 59 658.7 46 653.6 46 650.5 54 652.7 49 641.8 45 643.8 54 632.9 45 615 40 629.9 52 607.4 42 589.4 40 598.8 41 579 45 569.8 47 585.3 44 +1073965 FRESNO CENTRAL UNIFIED 49.2508395763369 10.1529902642559 7.8741842302343 42.3237402375094 16.5394402035623 10.0809012875536 54568.7404580153 4006.11832673585 22.5917372337696 37.6666666666667 0 76.9230769230769 645.428 641.522896312638 634.864938828075 40.9228911783645 41.6585250551529 34.9438367346939 683.8 24 688.6 35 665.9 31 680.9 24 683.7 33 654.2 23 673.7 26 680 41 658 37 681.1 41 669.9 39 660.8 46 665.5 37 663.1 41 653.5 47 652.1 39 651.7 45 642.2 46 638.1 35 632.4 37 629.1 39 624.4 39 614.8 44 620.7 46 597.8 38 592.8 47 594.7 39 571.8 45 566.7 51 586.8 52 +1062117 FRESNO CLOVIS UNIFIED 23.433371722783 11.750645994832 2.87144702842377 19.031007751938 15.9441587068332 11.8789028213166 53158.0705363703 4242.7020994832 22.7051671732523 40.5063291139241 0 0 670.829070946691 669.983691062632 660.175030880537 62.7089730015881 64.6854327938072 55.8729220865118 710.2 50 711.5 59 690.5 56 703.4 45 704.1 53 681 48 699.3 49 701.6 63 682.2 60 703.5 63 695.2 64 685 69 691.8 62 686.1 64 676 70 673.7 61 683.2 73 662.4 66 661.2 57 660.4 64 652.9 63 644.3 55 638.2 62 639.1 61 624.2 57 622 71 623.1 64 595.7 60 597.9 74 609.4 70 +1062125 FRESNO COALINGA/HURON JOINT UNIFIED 57.9224030037547 .87173100871731 .647571606475716 68.7422166874222 18.9349112426035 11.1978723404255 61085.4437869823 4258.42515566625 24.4786015672092 14.8351648351648 0 0 634.785217079297 631.830958230958 622.751865266208 28.8927924664976 32.6072306072306 26.6347326874776 687.3 27 689.2 35 666.3 31 673 18 682.7 32 650 20 670 23 673.3 34 653.7 33 673.4 34 661 31 649.2 34 659.9 31 651.6 30 640.7 32 641.8 29 636.7 30 627.2 30 631 29 626.8 30 620.1 30 617.5 32 610.5 38 610.1 35 575.7 20 579.1 33 579 24 550.5 25 551.9 33 562 23 +1073809 FRESNO FIREBAUGH-LAS DELTAS UNIFIED 87.8371750858264 .405405405405405 1.21621621621622 90.4504504504505 32.4074074074074 10.3756097560976 51400.5555555556 4317.72837837838 20.4905660377359 30.8510638297872 0 0 629.51695945946 626.268102372035 615.682792207792 21.3207792207792 24.5274656679151 19.7959459459459 672.2 16 674.1 20 651.7 19 667 14 676.9 24 645.1 16 662.5 17 661.3 23 647.8 27 660.3 22 649.8 21 634.4 21 648.8 21 644.5 23 636.4 28 627.5 18 630.1 24 619.2 22 619.9 20 614.3 19 606.9 19 616.1 30 613.7 39 600.9 27 581 21 570.9 24 571 18 544.5 18 550.4 29 555.4 15 +1062158 FRESNO FOWLER UNIFIED 60.5990783410138 7.19661335841957 .846660395108184 72.3424270931326 24.7619047619048 11.8363247863248 51537.3428571429 3807.78974600188 21.0700389105058 38.7931034482759 0 0 635.323164218959 638.899266177452 627.946421404682 32.0481605351171 36.1320880587058 25.084779706275 690 30 694.6 41 673 38 679.1 22 692.2 40 658.5 26 670.9 23 683 44 660.7 39 673.1 33 669.2 38 650.8 35 655.5 27 659.5 37 643.9 35 641.9 29 647.4 40 635.7 38 622 21 624.6 28 622.9 33 611.6 26 607.5 33 606.9 32 577.2 19 576.6 29 575.6 21 549.8 21 556 33 567.3 25 +1062166 FRESNO FRESNO UNIFIED 62.0197740112994 19.6517667528081 11.3156615408234 45.2396182483433 23.4048481471162 14.6799561082663 61095.3050989134 4685.64291379884 22.2597299444003 27.4755927475593 0 31.1111111111111 632.640383670421 630.72546997266 623.040624146675 30.5068851180027 32.4933723013105 26.0484501837766 692 31 696.6 42 673.8 39 678.8 22 688.7 36 658.9 26 672.3 24 677.4 38 658.2 36 673.5 33 666 34 651.1 36 656.7 28 657 34 643.9 35 643.9 31 645.8 38 631.6 34 626.4 25 623.9 28 618.6 29 607.2 23 597.4 25 602.9 29 579.6 21 574.3 28 577.9 23 551.9 25 549.2 29 564.5 24 +1075234 FRESNO GOLDEN PLAINS UNIFIED 86.545988258317 1.71370967741935 .201612903225806 92.2379032258065 26.0869565217391 14.5806603773585 62758.2608695652 5242.80040322581 21.7211328976035 19.1780821917808 0 0 617.92496382055 623.329073033708 614.588491779843 21.0793423874196 22.8026685393258 13.6685962373372 665.8 12 677.7 23 655.7 22 657.7 9 674.1 22 640.4 13 655.1 12 664.7 26 646.3 26 661.1 23 660.5 30 641.8 27 635.3 13 646.6 24 632.4 24 623 15 628.4 23 620.5 23 610.4 14 611.4 17 610.3 22 591.2 13 589.4 18 597 24 565.3 12 566.6 21 569.3 17 535.7 13 544.2 23 552.1 13 +1073999 FRESNO KERMAN UNIFIED 69.4980694980695 5.35002845759818 .313033579965851 70.4325554923165 22.6415094339623 12.3231382978723 54546.0125786164 4283.10130904952 22.1542383683875 40 0 60 639.117610619469 631.208603832616 625.959092783505 27.9550515463918 27.4974579585452 24.4261061946903 680.9 21 682.1 27 662.2 28 668.7 15 676.4 24 649.9 19 668.4 21 670.5 32 654.5 33 673.2 33 663.2 32 645.7 30 661.4 33 659.3 36 646.3 38 641.3 28 641.6 34 627.5 30 630.1 28 619.5 23 620.2 30 607 22 592.9 21 599 25 574.7 17 571.6 25 577 22 552.3 23 539.2 20 563.8 22 +1062265 FRESNO KINGS CANYON JOINT UNIFIED 63.1713244228433 1.40625 .600961538461539 71.3581730769231 16.7919799498747 14.4614893617021 55184.7769423559 4478.65733173077 22.2565194252262 16.7865707434053 0 6.25 638.653324854651 636.555282685512 628.19417703263 34.4696232197584 37.1314487632509 30.5952034883721 692.9 32 695.3 40 672.6 37 684.6 27 691.6 40 665.6 33 679.7 30 686.8 47 666.2 44 670.6 31 660.9 30 647.2 32 661.2 32 655.8 33 647.7 39 646.9 34 648.6 41 636.3 39 633.2 30 633.4 36 625.3 35 615 29 609.3 35 609 33 590.3 28 585.9 37 586.3 30 563 32 558.1 36 568 26 +1062240 FRESNO KINGSBURG UNION 35.6033874382498 2.51875669882101 .37513397642015 67.7384780278671 7.91366906474819 15.3451612903226 54702.2225899281 6836.69390675241 21.1443530291698 41.5789473684211 71.4285714285714 0 659.55601965602 655.824398460058 646.9376953125 50.0771484375 50.7348411934552 45.3916461916462 684.7 25 690.8 36 667.3 32 685.3 27 692.4 41 660.8 28 682.4 32 689 50 667.3 45 696 55 677.3 46 669.6 55 683.5 54 672.6 50 662.9 57 663.8 51 660.4 53 651.2 54 654.3 51 643.1 46 641.3 51 637.9 50 630.8 56 634.8 57 614 48 613.3 63 611.8 53 597.7 62 589.2 66 606.2 68 +1062281 FRESNO LATON JOINT UNIFIED 72.9166666666667 1.23873873873874 .563063063063063 70.045045045045 3.92156862745098 11.5576271186441 39728.3529411765 3899.13175675676 18.2365145228216 13.0434782608696 0 0 635.926148409894 633.431208053691 626.668181818182 29.2020202020202 27.7852348993289 22.6678445229682 677.3 19 683.7 29 659 25 673.8 18 674.7 22 655 23 662.3 17 668 29 653.2 31 663.5 24 654 24 644.3 29 656.1 27 652.4 30 646.5 38 640.5 28 642.2 35 631.5 34 628.4 26 630.6 33 620.1 30 603.8 20 595.4 22 593.5 21 581.9 22 570.6 24 580.3 25 556.2 26 553.8 31 574.4 33 +1075127 FRESNO MENDOTA UNIFIED 87.7772534214252 .533462657613967 .5819592628516 97.7691561590689 40 12.2075268817204 60303.175 3933.77740058196 25.6375 47.1698113207547 0 0 622.616214335421 621.331699346405 613.684299191375 18.4973045822102 18.9797385620915 13.7035490605428 676.5 18 671.5 18 653.9 20 669 15 680.7 28 648 18 656.4 13 666.4 27 646.8 26 649.9 15 650.4 21 631.7 19 635.5 13 637.7 17 624.5 17 625.1 16 621.4 18 616.4 20 608.7 13 604.1 13 604.2 18 591.1 13 582.4 14 589.8 19 556.6 9 553.9 13 559.5 11 532.3 11 539 19 554.7 15 +1062364 FRESNO PARLIER UNIFIED 91.604841858649 .214362272240086 .107181136120043 98.8210075026795 62.1848739495798 11.9275362318841 55527.2941176471 4223.12647374062 21.6865417376491 13.3858267716535 0 40 616.066551893753 620.616848599905 610.251985922574 19.1895424836601 22.1860465116279 13.9183472700443 672.7 16 681.9 26 651.7 19 660.9 11 675.8 23 642.5 14 653.9 12 665.1 26 643.9 24 652.1 17 651.2 22 636.9 23 637.6 14 642 21 626.7 19 630.3 20 637.5 30 624.3 27 611 14 612.6 18 606.3 19 588.5 12 589 18 591.7 20 562.6 11 560.4 16 561.7 12 535.6 13 545.9 24 554 14 +1075408 FRESNO RIVERDALE JOINT UNIFIED 64.8507462686567 .66711140760507 3.06871247498332 64.5096731154103 14.9253731343284 11.3691780821918 47732.5671641791 3511.89993328886 21.4887218045113 10.6666666666667 0 0 644.658088235294 648.756526207606 634.010914760915 35.5135135135135 41.5817060637205 29.9044117647059 684 25 689.7 35 664.1 29 675.3 19 679.3 27 659.5 27 672.4 24 682.7 44 664.4 42 677.7 37 673.2 42 650.2 34 670.9 41 673.7 52 651.6 44 639.5 27 642.1 34 622.4 25 628.7 26 628.3 31 615.2 26 613 27 610.8 35 603.4 29 600.8 36 612.2 62 608.1 50 577.5 44 582.1 59 590.2 50 +1062414 FRESNO SANGER UNIFIED 57.0024891916678 4.32291666666667 .5859375 70.6640625 23.4806629834254 14.0044289044289 52155.2569060773 4382.06119791667 21.7115330121848 23.0232558139535 0 0 637.416965285554 632.764367398802 627.134107534748 31.840160936357 30.8818297331639 26.3355729749907 684.5 24 688.6 34 664.3 29 677.5 21 688.4 36 655.2 23 668.7 21 676.6 37 655.4 34 675.1 35 662.4 31 654.5 39 659.7 30 653.5 31 645.4 37 646.6 33 642.3 35 637.1 39 631.3 28 625 28 625.4 35 609.5 24 596.3 23 608.1 33 584.5 23 575.5 28 580.4 25 553.5 24 548.4 27 566.1 24 +1062430 FRESNO SELMA UNIFIED 69.6452036793693 3.97230320699708 1.02040816326531 76.7128279883382 27.6 13.0118794326241 53531.636 4180.03662536443 22.5010266940452 14.6919431279621 0 0 642.379013030219 638.60592632141 633.074566630553 38.6977248104009 38.217031500267 31.5431106182423 687.3 27 691.2 36 671.4 36 677.8 21 689.4 37 655.7 24 674.4 25 680.4 41 660.7 39 683.9 43 663.5 32 662.4 47 667.4 37 663.1 41 653.3 46 647.6 34 646.6 39 637.3 40 636.9 33 634.5 37 633 43 622.5 35 616.3 41 622.6 45 591.5 29 590.1 41 592.6 35 564 32 558.3 35 574.1 32 +1075275 FRESNO SIERRA UNIFIED 21.604680317593 .540540540540541 .291060291060291 7.48440748440749 1.52671755725191 17.1124161073826 62522.8244274809 5879.9659043659 19.4851166532582 26.3736263736264 0 0 680.277309941521 669.70080552359 658.152347417841 51.9900234741784 53.2784810126582 53.2520467836257 711.1 51 707.9 55 683.2 49 701.1 43 698.3 48 673 40 700.3 50 692.4 54 673.5 52 702.6 62 689.3 59 677.1 63 691.9 62 677.3 56 666.5 61 669.9 57 666.6 59 650.9 55 661.6 57 653.6 57 644.7 55 646.7 58 620.3 45 631 54 627.6 60 606.6 57 615.6 57 579.7 46 566.6 44 586.4 46 +1175481 GLENN ORLAND JOINT UNIFIED 44.9746621621622 1.34841235319704 .826446280991736 33.1883427577208 5.93220338983051 16.2532846715328 55653.8050847458 4602.90343627664 20.8553791887125 49.1935483870968 0 0 653.154290822408 643.173529411765 642.387649880096 45.0239808153477 39.0258823529412 39.0673420738975 703.1 43 699.9 47 688 54 687.7 29 690.1 38 669.3 36 687.7 37 687.2 49 673.3 51 682.9 42 671.7 41 666.3 52 667.7 38 654.9 32 657 50 651.7 39 645.4 38 646.8 50 639.5 36 625 28 623.7 34 633.9 46 611.1 36 623.7 46 605.6 41 590.4 41 594 37 572.7 40 560.9 38 580.8 40 +1162661 GLENN WILLOWS UNIFIED 53.125 21.7522658610272 .906344410876133 20.7452165156093 4.65116279069767 15.7360824742268 60020.6627906977 4325.15357502518 24.4811320754717 47.1153846153846 0 0 652.248719723183 650.23700947226 643.737198067633 45.9889579020014 45.4945872801083 37.9148788927336 691.8 31 693.1 39 677.2 42 690.2 32 692.1 41 674.5 42 679.5 30 683.6 45 669.9 48 689.5 49 685.6 54 667.6 53 664.5 35 666.6 44 654 46 654.8 42 651.3 44 643.3 47 640.5 37 637.8 40 636.3 46 630.1 42 620.4 45 621 44 601.9 37 602 53 601.8 44 578.9 45 572.6 50 587.4 47 +1275374 HUMBOLDT FERNDALE UNIFIED 11.7161716171617 .5 0 4.66666666666667 0 15.5121951219512 54645.6666666667 4893.85666666667 20.3215434083601 34.1463414634146 0 0 671.044444444444 664.697085201794 654.729306487696 57.5212527964206 59.7757847533632 55.0657596371882 718.1 59 723.3 72 689.6 56 712.5 55 711.6 63 692.2 60 698.7 48 703.4 66 668.9 47 698.4 58 693 62 676.2 62 694 63 695.4 73 672.1 67 668.4 56 671.7 65 651 55 661.4 58 656.1 60 655.5 65 640.2 52 611.8 37 632.9 55 620 53 606.1 55 609.5 50 576.4 43 565.7 42 591.7 53 +1262901 HUMBOLDT KLAMATH-TRINITY JOINT UNIFIED 76.3212079615649 0 .65597667638484 2.84256559766764 30 14.7855421686747 65665.4714285714 5770.56559766764 19.6496350364964 25.9259259259259 0 0 647.671180124224 637.66 628.449749373434 33.7769423558897 36.3312883435583 34.6608695652174 684.3 24 691.1 37 660.4 26 683.6 26 689.4 37 656.8 24 674.3 25 681.1 42 655.3 34 683.1 42 678.6 47 661.6 47 676.2 46 670.1 47 658.5 52 650 37 646.1 38 629.6 32 637.3 34 628.7 31 617.1 28 631.9 44 603.1 29 614.1 38 599.6 36 583.4 35 590.9 34 557.8 27 544.6 23 561.2 20 +1263040 HUMBOLDT SOUTHERN HUMBOLDT JOINT UNIFIE 33.9167169583585 .714749837556855 1.16959064327485 2.98895386614685 0 15.7926136363636 56055.9350649351 4427.87199480182 21.3154362416107 44.7058823529412 0 0 666.911310782241 645.515704154002 646.715384615385 48.0945945945946 39.0536980749747 49.9746300211417 715.8 57 707 55 692.5 59 709.5 51 691.3 40 681.4 49 693.9 43 688.8 50 668.7 47 693.2 53 660.6 30 656.8 41 673.1 43 657.6 35 657.8 50 672.8 60 656.2 49 653.5 58 652.4 48 632 34 634 44 646.3 57 616.6 41 631.5 53 614.1 48 576.9 29 599.2 42 578.7 45 554.2 32 582.4 41 +1363073 IMPERIAL BRAWLEY UNION 54.2566709021601 .518806744487678 .277932184546971 80.2112284602557 35.042735042735 14.9565055762082 66530.2478632479 4304.7152121549 23.78075097 33.89830508 0 0 640.308263570078 636.234013245033 632.318937957193 35.1953400162558 32.2733774834437 28.2425060761545 688 28 684.8 30 668.7 33 682.4 25 684 31 661.9 29 674.2 25 676.8 37 658.1 36 671.3 32 660.1 29 651.3 36 658.3 29 656.3 34 646.7 38 647.1 34 648.9 41 638.9 41 632.7 30 628 31 627.8 38 611.5 26 602.9 28 618.7 42 585.2 24 575.4 27 585.1 28 561 30 556.7 34 574.1 33 +1363099 IMPERIAL CALEXICO UNIFIED 43.954818017013 1.43290162579223 .0551116009920088 97.5199779553596 70.0996677740864 14.5877492877493 67370.0564784053 4266.61848994213 23.5719063545151 15.8256880733945 0 0 637.58567839196 641.629704962003 627.686793737236 24.8838211935557 28.0435851586947 18.5349474645957 674.8 17 684.6 30 657 23 666.5 13 681.6 29 648 18 665.1 18 675.4 36 653.7 32 662.4 24 658.6 28 643.7 29 645.1 19 647.2 25 635.2 26 632.7 21 635.1 28 625.9 28 621.3 21 622.2 25 613.4 25 598.1 17 598.7 25 598 24 571.7 16 572.5 25 573.9 20 549.8 21 546.7 25 561.1 20 +1363107 IMPERIAL CALIPATRIA UNIFIED 74.3016759776536 .421940928270042 5.55555555555556 71.5893108298172 40.5797101449275 12.2170886075949 53519.7391304348 4518.24331926864 20.625 29.4117647058824 0 0 636.260303030303 641.081281281281 629.831552419355 32.9153225806452 35.8938938938939 24.4060606060606 680.7 21 679.3 24 661.7 27 666.9 14 678.7 26 648.1 18 665.8 19 672.9 34 656.8 35 676.1 36 669.9 39 655.9 41 658 29 657.7 34 651.2 43 635.4 24 642.6 35 630.5 33 623.4 22 627.8 30 624.6 35 605.7 22 613.3 38 611.1 35 593.5 30 605.5 56 592.3 35 554.7 25 563.8 41 565.6 24 +1363123 IMPERIAL EL CENTRO UNION 62.1000820344545 1.55424308361828 2.94270023831727 82.6442855662626 33.4128878281623 15.2063025210084 66125.0906921241 4453.16423168584 23.3213859020311 31.3028764805415 0 0 646.318279404999 642.181461988304 635.553651897777 35.138363828822 34.3980994152047 28.9796043551603 687.7 27 686.7 32 668.1 33 680.1 23 682.8 30 656.5 24 675 26 676.6 37 658.3 36 671.6 32 660.7 30 651.1 36 656.6 28 654.7 32 645.5 37 649.6 36 653.1 45 639.8 42 629 26 627.6 30 623.4 33 617 31 609.2 34 618.3 41 591.7 29 583.8 35 589.7 33 569 36 562.3 39 580.7 39 +1363149 IMPERIAL HOLTVILLE UNIFIED 63.9180409795103 .399002493765586 .149625935162095 70.4738154613466 26.8817204301075 11.6070093457944 56622.5698924731 4245.81097256858 21.6851441241685 32.1428571428571 0 0 646.915160142349 641.476949860724 635.499860432659 37.3028611304955 36.0898328690808 32.202846975089 694.8 34 691.8 38 671.9 37 684.5 27 687.4 35 657.8 25 678.1 29 681 42 661.6 40 665.8 27 652.6 23 645.8 30 650.7 23 644.3 22 639.3 30 653.6 41 644.9 37 640.5 43 640.6 37 634.2 37 634.5 44 621.9 35 604.3 30 621.7 45 591.5 29 590.9 42 594.6 37 575.8 43 580.2 57 584.4 44 +1363164 IMPERIAL IMPERIAL UNIFIED 39.9445214979196 .749228735125606 2.68840899074482 60.7756721022477 24.5283018867924 9.22478260869565 51167.0283018868 3708.85940943147 20.8568738229755 34.9206349206349 0 0 648.104784978801 648.614979277679 637.713325401547 42.3599048185604 46.6820603907638 36.3301029678982 697 36 695.4 41 671.5 36 686.6 28 690.7 39 661.4 29 681.9 32 685.4 47 667.4 46 677.5 37 673 42 656.5 41 661.1 32 664.1 41 645.8 37 661.1 48 662.6 55 650 53 641.7 38 644.6 48 638.6 49 628.3 41 631.8 57 628.9 51 597.2 33 604.2 55 597 40 571 39 564.1 41 581.2 41 +1363214 IMPERIAL SAN PASQUAL VALLEY UNIFIED 76.8278965129359 0 3.00578034682081 31.0982658959538 20.4081632653061 15.3185185185185 60141.0816326531 5355.16069364162 18.9917695473251 19.3548387096774 0 0 629.748180242634 614.521440536013 615.989964788732 20.7411971830986 16.5175879396985 20.155979202773 681.4 22 672 18 660.3 25 669.6 15 673.2 21 650.2 19 660.3 15 664.1 25 646.1 25 666.9 28 648.2 19 638.2 24 662.7 33 644.4 23 637.3 28 623.7 15 607.4 10 608.4 15 615.7 17 597.9 9 603.2 17 605.6 22 576.9 11 591.5 20 571.5 15 557.5 15 568.9 17 553.9 25 530.3 14 559.7 19 +1463255 INYO BISHOP UNION 25.588491717524 .762388818297332 .508259212198221 11.0122829309615 5.45454545454545 16.5099173553719 59805.5454545455 4349.22151630665 23.4503510531595 40.7185628742515 0 0 665.129026548673 659.893040501997 647.360979827089 49.4184438040346 54.1928123217342 48.5286135693215 707.3 47 701.4 48 687.5 53 698.4 40 701 48 683.1 51 693.4 43 691.8 53 676.7 55 698 57 698.7 67 670.8 56 681 51 692 69 659.3 52 661.5 49 676.1 67 643.4 46 657.3 54 651.5 55 643.5 54 635.1 47 609.2 34 622.7 45 615 49 599.1 49 599.6 42 584 50 573.6 51 580.5 39 +1563404 KERN DELANO UNION 68.6434302908726 .780814277746793 1.72894590072504 76.8878973786949 31.8181818181818 12.2116310160428 58861.6878787879 3714.92013385388 25.9909638554217 14.0350877192982 0 0 628.471576763485 630.4126899577 619.339649525057 22.7148706190632 27.0755130816231 16.9576417704011 677.2 19 685.1 30 660.5 26 666.8 14 680.2 28 644.8 15 661.6 16 672.3 33 649.1 28 655.4 19 658.3 27 638 24 643 18 650.9 28 631.8 23 631.7 21 639.6 32 625.9 28 615.6 17 619.6 24 613.2 24 593.1 14 590.2 19 594.6 22 565.4 13 565.1 20 570.9 18 549.1 21 550.2 29 560 19 +1575168 KERN EL TEJON UNIFIED 37.8320172290022 .3584229390681 .860215053763441 13.6917562724014 8.33333333333334 10.3814285714286 55942.0666666667 4098.99426523297 24.9217391304348 0 0 0 656.297061704212 648.630488974113 642.803458213257 46.7867435158501 45.2895493767977 42.8873653281097 707.9 47 705.7 53 686 52 698.9 40 700.2 49 679.6 47 694.8 44 697.2 59 675.1 54 693.1 53 684.1 53 661.9 47 676.8 47 671.8 50 658.3 51 650.5 37 646.7 39 638.7 41 645.3 41 637.5 40 636.6 46 629.3 41 604.9 30 622.5 45 602.6 38 584.6 36 592.8 36 575.2 43 569.9 47 589.5 50 +1573908 KERN MCFARLAND UNIFIED 81.9645732689211 .311526479750779 .233644859813084 92.0171339563863 31.8965517241379 13.1324626865672 55369.8620689655 4428.04595015576 22.5085616438356 23.6842105263158 0 0 624.363516609393 624.61632196758 615.951785714286 21.5478110599078 22.5846841811068 16.9203894616266 669 13 672.7 18 651.7 19 669.7 15 674.8 22 645.5 16 663.4 17 668.3 29 651 30 653.2 18 651.9 22 634.3 21 638 15 642.5 21 625.4 18 632.8 21 631 25 624.7 27 615.8 17 616.2 20 608.2 20 603.5 20 598.5 25 601.3 27 568.4 14 565.9 20 571.7 19 543.9 18 544.5 23 558.9 18 +1563677 KERN MOJAVE UNIFIED 40.5990016638935 1.1070110701107 14.8708487084871 24.5387453874539 7.62711864406779 15.2442748091603 63042.2033898305 4572.61512915129 24.419983065199 32.484076433121 0 37.5 640.803693644758 630.078511087645 628.075648491265 34.137638962414 30.8104540654699 31.2036936447583 687.6 27 688.2 33 669.8 35 685.8 28 687.2 35 660 27 683 33 684.2 45 664.8 43 676.1 36 660.7 30 649.2 34 667.4 37 654.7 32 650.2 42 649.8 37 644.8 37 635.4 38 635.3 32 624.6 28 623.3 33 618.3 32 602.3 28 612.7 36 587.4 26 576.4 28 586.3 30 552.6 23 535.8 17 567.4 25 +1563685 KERN MUROC JOINT UNIFIED 31.8604651162791 2.01472297559086 12.4370399070128 7.47772181325068 9.84848484848484 15.3266666666667 63498 5767.59356838435 20.3072196620584 32.8 0 0 663.702340772999 654.100107469103 645.626877682404 53.1512875536481 56.0972595378829 54.5666848121938 711.2 51 703.1 50 686.6 52 699.3 41 696.1 45 667.9 35 700.7 50 694.8 56 672.3 50 693.2 53 680 49 658.7 43 685.7 56 674.6 52 661 54 673.7 61 670.5 63 656.7 61 658.1 54 651 55 647.2 57 648.5 59 630.2 55 636.4 58 624.5 57 613.3 63 616.1 57 593.6 58 588.4 65 595.2 57 +1573742 KERN SIERRA SANDS UNIFIED 32.5987279988168 2.2334864565183 4.79961983209251 10.898146681451 5.62913907284768 14.3510174418605 62453.1456953642 4537.56914303818 22.0415688903788 38.6627906976744 0 0 662.506528451698 650.898504875406 647.242869565218 51.0482608695652 47.435752979415 49.0284516982797 704.5 44 708.1 54 685.5 51 701 43 699.9 49 680.9 48 695 44 694.2 56 675.8 54 692.7 52 678.2 47 661.1 46 683.2 54 668.7 46 665 58 661.3 48 651 43 644.1 47 656.3 53 638.7 41 641.8 52 639.9 51 618.4 43 628.6 51 616.6 50 599.3 50 608.6 50 585.1 51 569.4 46 593 54 +1563776 KERN SOUTHERN KERN UNIFIED 49.3510324483776 1.697438951757 8.21917808219178 31.9833234067898 9.45945945945947 13.0842592592593 58159.2027027027 4284.44460988684 23.4270047978067 15.4929577464789 0 33.3333333333333 648.160764044944 638.358244680851 633.247085002225 39.1441922563418 38.2047872340426 38.645393258427 698.4 38 690.8 36 679.3 44 693.3 35 690.6 39 668.8 36 681.1 31 682.2 43 664.3 42 684 44 670.8 39 653.6 38 673 43 661.5 39 652.7 45 662 49 656.4 49 644.3 47 645.3 41 633.4 36 630.7 41 621.8 35 605 30 615.9 39 596.9 33 583.4 35 588.3 32 569.6 37 560.1 37 572.8 31 +1563800 KERN TAFT UNION 51.4623726585606 .361247947454844 .755336617405583 17.7668308702791 2.73972602739725 14.4369696969697 62633.095890411 5763.70114942529 21.0565780504431 17.7914110429448 0 0 644.816746411483 636.865050784857 627.733364355514 32.1526291298278 34.4307479224377 32.4698564593301 689.6 29 688.6 34 664.6 30 684.7 27 686.6 34 659 26 678.6 29 680.4 41 655.6 34 678.4 38 667.5 36 653 38 667 37 657.6 35 644.8 36 647.2 34 641.7 34 629.8 32 637.3 34 623.8 27 623.7 34 620.5 34 605.5 31 607.7 32 595.2 32 587 38 591.3 34 563.9 32 557 34 569.8 28 +1563826 KERN TEHACHAPI UNIFIED 24.9950445986125 .42042042042042 2.72272272272272 17.3973973973974 4.52488687782805 14.79 60455.0904977376 4308.12812812813 22.8716528162512 29.7297297297297 0 0 664.144418872267 649.835591306802 645.632324660634 50.2760180995475 47.4959074230878 51.5356731875719 704.6 44 696.8 43 679.8 45 702.7 44 695.4 44 675.3 42 692.5 42 689.5 51 671.1 49 700.8 60 683.8 52 671.2 57 691 61 676.9 55 666.3 61 671.3 59 669 61 653.1 57 659.5 56 646.1 49 643.4 54 639.3 51 613.2 38 626.2 49 612.9 47 592.7 43 602.5 44 584 50 562.5 40 586 45 +1563842 KERN WASCO UNION 65.8902691511387 .471815247082195 4.39533151229203 78.9173081698535 21.1009174311927 14.93269231 61803.9024390244 4139.93667742737 24.5117428924598 14.0151515151515 0 0 633.587433561124 631.382788990826 624.948731343284 27.0694029850746 25.8278899082569 20.7463933181473 679.6 21 680.3 25 666.2 31 673.9 18 679.5 27 658.3 26 663.8 18 672.7 33 657.2 35 667.7 28 657.5 27 642.2 27 655.2 27 656.4 34 641.3 33 637 25 635.6 29 631.3 33 621.8 21 617.8 22 616.3 27 602 19 590.4 19 601.3 27 575.4 18 570.1 23 571.3 18 540.1 15 539.3 19 553 14 +1663891 KINGS CORCORAN JOINT UNIFIED 64.279183175861 .463821892393321 4.05071119356834 79.3753865182437 17.3611111111111 15.3154545454545 66404.1944444444 4605.86147186147 22.6763485477178 15.5844155844156 0 0 638.988273615635 633.939674152356 626.044679891795 29.0036068530207 29.4297666226332 25.7328990228013 678.1 19 683 28 663.7 29 671.3 16 681.1 28 651.4 20 666.9 20 674.1 35 654.7 33 672.1 32 662.2 31 651.2 36 660.4 31 652.7 30 639.9 31 646.7 34 649.6 42 634 36 628.9 26 616.1 20 614 25 607.8 23 595 22 604.6 30 592.1 30 580.1 31 584.4 28 561.2 30 552.5 30 567.8 26 +1673932 KINGS REEF-SUNSET UNIFIED 86.4936207655081 0 .734094616639478 89.9673735725938 15.5963302752294 11.0606557377049 57641.5688073395 4543.49225122349 21.7527675276753 26.1904761904762 0 0 628.006722054381 614.202327044025 615.965977175464 19.9144079885877 16.6194968553459 16.5672205438066 671.1 15 672.3 19 652.6 19 661.4 11 669.5 18 643.8 15 659.7 15 663.4 24 644.7 24 659.5 22 650.5 21 637.1 23 645.6 19 637.8 17 634.2 25 626.4 17 617.3 15 615.5 19 619 19 607 14 606.4 19 597 16 584.5 15 593.9 21 559.1 10 551.5 12 561.8 13 547.8 20 528.6 13 558.6 18 +1764014 LAKE KELSEYVILLE UNIFIED 45.5701953657428 .954198473282443 1.33587786259542 22.0896946564885 7.20720720720721 14.7578125 54040.6036036036 4832.31965648855 20.0833333333333 50.9433962264151 0 0 661.984046164291 654.591859695566 646.073990734613 48.5221707478491 49.3653209794838 46.0855397148676 701.9 41 696.4 42 679.7 45 694.1 36 697.2 46 674.5 42 692 41 689.5 51 673.1 51 696.1 55 682.8 52 675.9 60 673.1 43 662.8 40 655.7 48 668.8 56 667.2 59 655.9 60 651.8 48 648 51 636.7 47 642.5 53 626.2 51 627.2 50 605.6 40 597.3 48 594.3 37 583.2 49 575.4 53 584.8 45 +1764022 LAKE KONOCTI UNIFIED 73.6089996959562 .829610721123165 5.96681557115507 9.60433950223357 6.32911392405063 13.7825 54439.9493670886 4354.3876834716 20.6129032258065 10.6060606060606 0 100 638.266855791962 624.112023328847 621.180950205573 28.9310187300137 28.0960071781068 31.0657210401891 696.7 36 691.8 39 673 38 687.6 30 684.4 34 662.3 30 678.4 30 677.7 39 657.4 37 674.2 34 660.2 30 644.9 30 655.3 28 647.7 26 633.3 25 649.5 37 641.5 35 625.4 28 635.7 33 615.7 21 617.2 28 617.9 32 591.2 21 604.2 30 585.7 27 563.7 21 578.6 24 552.7 27 541.7 24 563.5 25 +1764030 LAKE LAKEPORT UNIFIED 46.2952326249282 .659703133589885 1.86915887850467 15.6679494227598 3.44827586206897 15.1313131313131 58962.1379310345 4361.36118746564 21.4170506912442 28.4210526315789 0 0 658.686214953271 647.881014604151 644.126870229008 48.1656488549618 45.1775557263643 45.417445482866 707.7 47 699.9 47 683.6 49 694.7 36 697 46 668.8 36 703 52 699.2 61 680.4 58 694.9 54 691.5 60 669.6 55 683.4 52 676.7 54 666.4 59 662.4 49 656.7 48 647.5 50 647 42 632.2 34 636.4 47 626.6 38 609.2 34 624.3 46 611.3 44 591.8 41 603.4 44 574.7 40 553.3 30 580.4 39 +1764055 LAKE MIDDLETOWN UNIFIED 26.7957526545909 .723763570566948 .361881785283474 8.68516284680338 1.20481927710844 11.2951612903226 50096.4096385542 3932.38962605549 19.1504854368932 40.6976744186047 0 0 663.322495755518 657.100756938604 648.737091222031 52.0542168674699 52.7628259041211 48.4261460101868 701.7 41 705.9 53 681.2 47 695.3 37 698.3 47 670.4 37 693.1 42 698.8 61 672.8 50 696.2 55 692.1 61 674.5 60 679.8 50 669.1 47 663.3 57 667.8 55 670.5 62 655.6 60 648.6 45 642.9 46 639.5 50 643.8 55 621 45 634.7 57 618.4 52 599.4 50 606.5 48 586.1 52 580.5 58 594.3 56 +1764063 LAKE UPPER LAKE UNION 52.9170931422723 1.7329255861366 2.85423037716616 8.25688073394496 6.25 14.9870689655172 59995.3958333333 5022.53312945974 21.8995633187773 37.7049180327869 0 0 656.359604519774 651.16495132128 638.096332863188 37.3497884344147 41.8817802503477 37.9901129943503 705.2 45 696.9 44 684.8 50 698.5 40 696 44 673.7 41 682.6 33 683.8 45 665 43 689.6 49 671.7 40 656.7 41 660.3 31 649.2 27 636.2 27 648 35 651.7 42 632.1 34 646.9 43 643 46 629.4 39 620.2 33 609 34 612 36 608.1 43 602.7 53 586.7 30 559.6 29 561.6 39 568.6 27 +1864204 LASSEN WESTWOOD UNIFIED 41.970802919708 0 .571428571428571 9.14285714285714 3.03030303030303 17.9042857142857 55176.8484848485 5259.9580952381 18.9655172413793 18.1818181818182 0 0 652.683421052632 641.202067183463 631.90182767624 34.4229765013055 36.3927648578811 38.3631578947368 701.6 41 695.7 41 675.2 40 690.8 32 692.5 41 664.6 31 676.3 27 675.3 36 657.4 35 681.2 41 662.2 31 653.5 38 669.5 40 665 42 648.2 40 659.2 46 655.3 48 634.9 37 639.1 35 630.4 33 622.4 32 627.1 40 600.7 27 608.6 33 598.9 35 577.9 30 584.1 28 580.6 47 560.4 38 572.6 31 +1964212 LOS ANGELES ABC UNIFIED 30.5055227095651 32.4654190398698 10.4014103607269 32.6597956785101 36.0040567951318 15.2575630252101 59289.0862068966 4219.66476810415 22.576788291074 49.7326203208556 0 3.33333333333333 659.923843327729 663.76048998045 650.499602854484 52.5440273037543 57.6390518084067 44.8664923096083 705.6 45 717.5 63 688.2 54 697 39 712.7 61 678.8 46 691.2 41 703.8 64 677.2 55 691.7 51 693.7 61 671.3 56 682.4 53 689.5 65 668.6 62 663.8 51 670.7 61 653.7 57 650.4 47 650.8 54 643.9 54 632.2 44 623.3 47 627.7 50 603.7 38 600.8 51 605 47 574.9 41 572.3 49 586.4 45 +1975309 LOS ANGELES ACTON-AGUA DULCE UNIFIED 28.1723484848485 1.44320297951583 1.72253258845438 11.9180633147114 7.44680851063831 11.7280373831776 58880.170212766 3806.89338919926 24.8222222222222 0 0 0 663.988473520249 652.433478802993 652.670828105395 58.8782936010038 52.9339152119701 53.6859813084112 702.1 41 692.8 38 687.4 53 697 39 689.3 38 681.1 49 688.2 38 689.1 50 672.5 50 700.6 60 683.6 53 679.8 65 692.5 62 674.7 53 677.9 72 671.8 59 674.6 66 657.7 62 659.5 56 650.6 54 646 56 645 56 628.8 54 635.7 58 622.1 55 608.8 59 615.8 57 591.4 57 574.6 52 597.1 59 +1964261 LOS ANGELES ARCADIA UNIFIED 8.36221352711012 52.593956460522 1.21304018195603 9.88844362612369 8.90052356020942 15.9820135746606 64415.4659685864 4166.21780569696 24.2746044515956 60.840108401084 0 27.2727272727273 682.071046962516 691.294912131519 676.073383867277 73.9323512585812 77.8511904761905 62.3396524486572 717 58 740.3 82 706 71 710.2 53 725.7 73 700.4 68 704.6 54 727.1 83 700.6 76 705.7 65 719.7 82 688.2 72 694.3 64 712.9 83 684.2 76 681.7 69 701.8 85 674.4 76 673 68 678.1 79 671.8 79 658.6 68 643.9 67 658.6 76 632.3 63 622.9 71 635.7 74 604.3 67 594.5 71 613.1 74 +1964279 LOS ANGELES AZUSA UNIFIED 70.7382666782337 .959561343385881 3.15284441398218 78.9410555174777 25.9557344064386 14.4988495575221 64611.0342052314 4379.24306031528 23.9818631492168 19.4244604316547 0 11.1111111111111 630.515060402685 627.717457773394 619.018762369706 25.7844042749703 29.3741832079892 22.5122147651007 679 20 682.9 28 659.9 25 670.8 16 678.6 26 650.7 20 668.8 21 671.4 32 653.6 32 666.7 27 661.6 30 639.9 25 653.1 25 654.4 32 636.1 27 638.8 26 637.2 30 623.3 26 625.7 24 625.9 29 616.9 28 604.6 21 600.2 26 599.9 26 578.3 20 575.9 28 577.1 22 552.8 23 554.4 32 567.9 26 +1964287 LOS ANGELES BALDWIN PARK UNIFIED 62.871681687205 4.72375029897154 1.79382922745755 85.4699832575939 27.212020033389 15.062106017192 67839.958263773 3819.11803396317 27.5054157640393 26.7716535433071 0 0 627.079255415984 625.502389252614 620.852864742304 28.1941222638877 26.5887254485163 21.1458219552157 680 21 683.3 28 663.7 29 667.7 14 675.8 23 652.8 21 664.8 18 668.8 30 655.5 34 671 31 663.1 32 650 35 656.1 27 653 30 643.7 35 642.2 29 645.7 38 634.4 37 621.9 21 621.8 25 620.2 30 603.9 21 596.1 23 605.4 30 571.2 15 568.8 22 573.2 20 542.6 17 537.9 19 556.9 16 +1964295 LOS ANGELES BASSETT UNIFIED 79.6765957446809 2.10292357667977 2.10292357667977 89.1434433236451 45.6 14.3998207885305 62084.608 4432.06496837066 23.5596625150663 20.9876543209877 0 0 625.112745604964 627.803804077573 616.408769269649 23.1238311852413 26.8254599701641 18.82316442606 673.1 16 675.6 21 657.1 23 663 12 675.2 23 646.5 17 659.5 15 670.5 31 647.6 27 662.1 24 661.8 31 638.2 24 645 19 651.5 29 631.1 23 636.6 24 638.3 31 625 27 618.6 19 622.2 25 612.7 24 602.1 19 598.8 25 600.2 26 575.8 18 574.6 27 574.1 20 546.3 19 545.7 24 559.9 19 +1964303 LOS ANGELES BELLFLOWER UNIFIED 49.1721460825477 5.57544757033248 18.1585677749361 38.4800876872488 12.2743682310469 13.0422764227642 58550.5216606498 3988.18260869565 23.8852218555189 17.9972936400541 0 7.14285714285714 641.814845076401 641.600951888257 632.726298875201 38.4131762185324 41.0006207966891 32.1771010186757 686.5 27 686.6 32 668.3 33 679.8 23 683.6 31 659.3 27 678.5 29 678.8 40 661.4 39 670.8 31 664.6 33 650 34 661.9 32 662 39 653.5 46 651.9 39 657.3 49 640.7 43 637.8 34 637.7 41 630.3 40 623.9 37 620.1 45 621.7 45 596.9 33 595.5 46 594.4 37 566.6 34 570.3 48 580 38 +1964311 LOS ANGELES BEVERLY HILLS UNIFIED 9.73348783314021 10.9398496240602 3.57142857142857 4.09774436090226 10.8196721311475 18.2 62455.7573770492 6015.75751879699 17.7246909455396 61.8843683083512 0 0 690.567250257466 694.90896250642 681.280658436214 76.3996913580247 79.1928608115049 67.2659629248198 720.3 61 735.6 80 706 71 714.3 57 729.2 77 703.7 71 711.4 61 723.6 81 703.3 78 712.5 71 714.3 80 699.6 81 704.1 73 711.3 84 694.6 85 683.8 71 689.9 78 669.6 73 677.2 72 676.5 78 670.5 78 669.1 76 654.5 77 659.4 77 641 70 632.6 78 637 75 611.2 72 603.4 77 616.6 77 +1964329 LOS ANGELES BONITA UNIFIED 25.843945825753 5.86600496277916 4.82382133995037 27.5831265508685 9.50118764845605 16.8920124481328 62021.7553444181 4054.13568238213 24.1142443962401 51.764705882353 0 0 663.099746396156 658.021031171906 650.03186929488 52.8662521497553 53.0515585952913 48.306727175654 706 46 704.3 51 683.8 49 699.9 42 698.4 47 678.1 45 694.5 44 694 56 677.8 56 692 51 684.9 53 669.1 54 680 50 678.1 56 663.6 57 666.2 54 669.3 61 652.6 56 653.9 50 647.7 51 643.3 54 637.5 49 623.3 48 629.2 52 614.2 48 601.5 52 606.9 49 582.9 49 577.9 55 595.2 56 +1964337 LOS ANGELES BURBANK UNIFIED 37.6797976147452 5.6881243063263 2.77469478357381 36.9589345172031 13.1666666666667 14.4693832599119 62400.435 4138.19589345172 23.9576629974598 32.4290998766954 0 5.26315789473684 655.695169224715 652.230417919131 645.026701161769 49.5026847603241 49.3065063512072 43.0069854388036 701.1 40 701.4 48 682.2 47 694.7 36 701.4 50 675.9 43 684.1 34 687.9 49 667.8 46 688.5 48 678.8 47 668.1 53 676.8 47 668.2 46 662.2 56 661.1 48 663.3 55 649.3 53 651.1 47 645.2 48 643.4 54 636.1 48 627.9 53 629.6 52 605 40 596.6 47 600 42 575.3 42 573.2 50 588.4 48 +1964378 LOS ANGELES CHARTER OAK UNIFIED 23.9477040816327 5.26555386949924 4.87101669195751 36.6160849772382 11.7647058823529 15.3225396825397 61534.6654411765 4024.87496206373 24.1229724632214 38.7254901960784 0 0 655.798924731183 648.840342904359 640.007804980122 44.9202762084118 47.0877917785582 44.1773139363272 704.8 44 699.6 46 679 44 697.8 39 699.4 49 671 38 693.9 43 694.8 57 669.7 48 693.7 53 680.1 49 669.2 54 680.8 51 674.1 52 658.7 52 661.1 48 659.9 52 643.7 47 646.8 43 638.3 41 633.1 43 630.3 42 620.3 44 621.6 45 603.3 39 590.3 41 594.3 37 574.6 41 565.4 42 582.4 42 +1964394 LOS ANGELES CLAREMONT UNIFIED 20.8070229477899 10.1118500604595 12.0012091898428 20.8736396614268 11.7088607594937 13.9077464788732 61447.6582278481 4401.14782345828 21.542025148908 53.1697341513292 0 0 676.104095197256 668.467728327357 659.145744680851 59.1142553191489 59.8346340434508 57.3855060034305 718.3 59 724.6 70 695.3 61 713.2 56 716.2 66 691.2 59 702.4 52 709.3 70 682.9 60 702.2 61 699.9 68 680.5 66 685.8 56 686.1 64 669.1 63 680 67 672.9 64 662 66 664.9 61 646.3 50 649.6 59 648.1 59 622.8 47 630.7 53 622.2 55 594.2 45 611.5 53 582.5 48 568.8 46 588.6 49 +1973437 LOS ANGELES COMPTON UNIFIED 78.4239149752959 .0545386372158026 35.7296247060027 62.9273613525582 80.1749271137026 14.7931484502447 58991.4207968902 3743.12516617241 28.0999707687811 41.7890520694259 0 2.56410256410256 612.667656386702 613.706413351527 605.890224260388 19.7304401319837 22.4384906056471 16.2775590551181 667.5 13 672.3 19 651.7 19 660.6 11 671.3 20 642.6 14 653.1 12 660.1 22 643.7 23 659 21 651.7 22 635.9 22 638 15 640.9 20 627.9 20 625.4 16 627.8 22 617.2 21 614.7 16 617.3 21 606.2 19 594.6 15 590.3 19 593.5 21 570.1 15 570.7 24 573.2 20 550 22 551.7 30 558.5 17 +1964436 LOS ANGELES COVINA-VALLEY UNIFIED 37.6449529146237 8.54844606946984 5.79890310786106 50.8299817184644 14.2599277978339 13.9004615384615 62290.0270758123 4265.80702010969 24.2564009442528 42.0844327176781 0 0 653.860152895591 650.312752021288 641.89274360033 45.409372419488 46.8560024562481 40.6060320452403 701.5 41 701.1 48 680.3 45 691.6 34 692.5 42 669.9 37 684.8 35 687.6 49 667.8 47 687.3 47 680.2 49 661.1 46 672.2 43 669.4 47 653.3 46 657.4 44 658.3 51 645.5 49 644.3 41 641.4 44 637.2 47 631.7 44 620.7 45 625.1 48 603 38 598.8 50 602.2 44 572.7 40 566.4 44 585 45 +1964444 LOS ANGELES CULVER CITY UNIFIED 33.5116818262886 10.2023749790935 17.9126944305068 36.8121759491554 18.6507936507936 15.3850174216028 62132.0198412699 4282.61247700284 22.9572925060435 41.1764705882353 0 0 659.061115169223 649.806527353839 644.15641634981 46.8624049429658 44.7816388823668 44.1195519844169 706 46 702.8 49 685 50 694.6 36 695.1 43 672.5 39 684.4 34 687.6 49 668.8 47 688.1 47 673.5 41 663.6 48 682.6 52 669.4 46 664.7 58 665.5 53 649.4 42 648.3 52 654 50 647.1 50 641.8 52 636.8 48 617.9 42 625.4 48 607.1 42 592.2 43 598.2 40 570.8 38 565.6 43 579.2 37 +1964451 LOS ANGELES DOWNEY UNIFIED 42.8409459021704 5.5955762987013 4.8041801948052 63.3370535714286 14.5994832041344 12.2934807256236 64631.9341085271 3979.21940949675 25.1415032249572 23.2673267326733 0 0 651.33894611136 648.686241487882 645.34675671664 49.2248775419326 45.3423152961851 38.2581728616211 698.1 37 698.8 45 678.8 44 685.8 28 692 40 668.1 35 678.9 29 683.5 45 665.7 44 687.9 47 676.4 45 668.5 54 672.8 43 667.4 45 665.5 59 656.3 43 656.3 48 653.9 57 646.4 43 646.2 49 647 57 627.9 40 619.3 44 629.8 52 600.1 36 593.8 44 601.3 43 570.9 38 571.1 48 587.3 47 +1964469 LOS ANGELES DUARTE UNIFIED 61.4000866926745 2.77597050531338 13.2075471698113 61.9605291693776 30 16.0684210526316 59303.7388888889 4179.69811320755 25.2252747252747 15.0159744408946 0 0 634.506660104987 631.105498721228 626.154217262882 33.6727929110601 32.9437340153453 27.7286745406824 679.6 21 685.1 30 664.3 29 669.8 16 679.6 27 651.7 20 669.4 22 677.7 39 656.4 35 671.7 32 664.7 33 649.7 34 662.8 33 654.5 32 646.9 39 650.7 37 646 38 639.5 42 632.9 30 629.2 32 625 35 616.1 30 609.9 35 616.6 40 584.7 24 581.7 33 586.2 30 557.7 27 551.2 29 569.6 28 +1964527 LOS ANGELES EL RANCHO UNIFIED 68.0851063829787 .683526999316473 .580997949419002 94.4805194805195 51.8145161290323 16.2742753623188 65653 4338.24307928913 22.4950337703615 33.6700336700337 0 0 636.533907380608 629.92565662151 624.336384276997 28.9841067120761 28.1802598838817 25.4157742402316 682.5 23 684.1 29 667.2 32 673.8 18 684.4 32 656 24 669.6 22 676.7 37 659.1 37 668.9 29 658.3 28 646.5 31 653.9 25 646.9 25 635.3 27 640.3 28 635.3 28 624.4 27 628.2 26 620.6 24 617.6 28 609.2 24 595.8 23 602.6 28 589.8 28 576.1 28 585 29 560.8 30 550.6 29 570.1 28 +1964535 LOS ANGELES EL SEGUNDO UNIFIED 13.8000809388911 6.32078918523931 3.39788089148703 14.8702959444647 4.76190476190477 11.9276595744681 57362.0476190476 4718.11472415053 21.2887438825449 38.9937106918239 0 0 677.041884280594 669.538985579314 659.628335832084 62.2778610694653 64.9607160616609 60.9467485919099 710.2 50 710.8 59 689.9 56 711.2 54 707.5 59 690.9 59 707.1 57 708.1 69 689.6 68 702.7 62 689.7 59 674.6 60 688.8 59 682.9 61 661.5 55 674.7 62 680.5 71 653.3 57 664.6 61 660.4 66 653.1 64 662.9 72 643.4 71 645.3 68 631.9 67 609.9 63 623 66 601.8 69 589.1 72 605.9 70 +1964568 LOS ANGELES GLENDALE UNIFIED 50.674017547988 12.1272365805169 1.11994698475812 23.8667992047714 12.2395833333333 13.2210855949896 73039.0052083333 4224.93667992048 26.6702033598585 26.3865546218487 0 34.4827586206897 654.253990819555 657.112164532538 649.081694134326 52.2113680666312 53.7901683915103 40.357190605642 695.7 35 706.9 54 683 48 689.8 32 701.5 54 676.9 44 684.7 35 695.4 57 680.3 59 687.2 47 688.7 57 669.8 55 675.2 47 679.9 58 664.9 59 658 45 667.3 60 654.4 58 645.4 42 645.8 51 644.8 55 631.1 44 619.6 48 629.8 54 598.4 37 592.5 46 598.2 42 567.6 39 569.5 52 583.9 47 +1964576 LOS ANGELES GLENDORA UNIFIED 14.826244465316 4.1191381495564 1.29277566539924 16.5652724968314 6.32911392405063 14.9926553672316 63784.6075949367 4130.34993662864 24.900641025641 33.6 0 0 669.393686181076 664.820381845587 655.879660447134 58.4019162884518 59.4938871210853 53.6786929884275 704.3 44 712.6 59 687.7 54 698.2 40 705.6 55 678.2 45 693.5 43 700.1 62 678.9 57 700.3 59 689.1 58 673.6 59 691.2 61 680.9 59 671.1 65 673.1 61 668.8 61 656.8 61 663.4 59 653.1 57 650.6 61 649.8 61 635.1 60 639.1 61 624.5 57 611.1 61 616.7 58 588.1 54 585.3 63 602 64 +1973445 LOS ANGELES HACIENDA LA PUENTE UNIFIED 40.2360661714442 16.3999470969448 2.53934664726888 67.9760172816647 28.9036544850498 17.3935658153242 62325.3034330011 4103.13891460565 25.056066382597 38.6784850926672 0 0 642.964292922922 641.584377276038 632.63471999011 36.6834590184201 38.4453143966982 31.0369622808124 690.4 30 696 41 673.7 39 682.7 25 694.4 42 664.8 32 678.5 29 685.9 46 666.3 44 677.9 37 675 43 654.9 39 665.3 35 664.5 41 649.3 41 650.1 37 646.5 38 636.6 39 634.6 31 630.9 33 626.8 37 616.4 30 605.7 31 612 36 585.6 24 579 30 585.4 29 563.2 32 563.5 41 573.9 32 +1964634 LOS ANGELES INGLEWOOD UNIFIED 69.0082898372736 .192554557124519 43.0913758898355 55.3681876531684 63.4390651085142 15.0198263386397 63040.9899833055 3748.32979344148 27.4027459954233 38.8888888888889 0 57.8947368421053 634.693625077045 632.165754127812 627.247653302921 35.6359329765769 35.4114124390453 29.0958879985912 676.7 18 675 21 659.8 25 668.1 14 674.2 22 649.1 18 662.9 17 664 25 649.5 28 670.1 30 658.6 28 647.9 33 654.3 26 648.3 26 642.8 34 643.1 30 642.5 35 633.7 36 639.9 36 640.3 43 636 46 617.4 31 612.5 37 616.4 40 595.7 32 596.3 47 598.9 41 574.3 41 573.3 50 580.8 39 +1964659 LOS ANGELES LA CANADA UNIFIED 1.4218009478673 26.2005649717514 .541431261770245 3.06026365348399 8.20512820512821 15.0257918552036 63791.6307692308 4705.50564971751 21.5962441314554 66.1818181818182 0 0 695.106828057108 694.118644067797 679.942095416277 79.1699407545993 82.4656394453005 76.5555555555556 730.6 71 743.4 83 707.6 73 727.2 70 737.4 81 711.8 77 723.5 71 731.8 85 708.9 81 723.5 79 721.1 83 705 84 712.6 80 717.6 86 694.3 85 694.9 80 706.8 88 671.9 75 688 81 685.5 84 673.3 80 674.9 80 656 78 659.6 77 651 77 633.7 80 641.4 78 617.2 77 600.6 76 622.3 82 +1964683 LOS ANGELES LAS VIRGENES UNIFIED 2.97174111212397 7.57133035407357 1.36644895152974 4.97593674802338 7.02479338842976 17.0070127504554 64749.8450413223 4414.05010312822 24.2391304347826 60.6232294617564 0 0 684.553328569727 678.410719754977 672.994556044217 75.3633662189469 73.8972788314289 70.318566154579 722.7 64 725.1 72 711.1 76 720.2 64 719.3 71 705.2 72 714.6 65 718.2 78 699.3 76 714.3 73 710 77 695 78 707.4 77 707.9 82 691.4 83 687.8 75 693.7 82 674.1 77 681.9 76 672.3 75 670.8 78 668.3 76 646.9 71 655.8 75 639.7 70 624.1 73 632.9 72 595.7 61 578.9 57 604 66 +1964725 LOS ANGELES LONG BEACH UNIFIED 64.2386984600099 14.166317455883 20.3368720026074 40.4898263258369 29.1087489779231 13.3097951495173 59298.1777050968 4210.30880709596 22.9831165236645 41.3782252989302 2.32558139534884 19.7674418604651 639.333896392546 637.248315019538 631.351391051242 37.6159378596087 37.9077018135667 30.8294580270132 693 32 695.4 41 674.2 39 684.9 27 691.7 40 668.3 35 679.6 30 687 48 668.5 47 677.2 37 668.7 37 654.8 39 661.8 32 658.1 35 649.4 41 645.6 33 645.7 38 635.1 37 634.1 31 632 35 627.8 38 615.1 29 605.9 31 613.1 37 589 27 586.7 38 590 33 562.2 31 561.8 39 574.3 33 +1964733 LOS ANGELES LOS ANGELES UNIFIED 73.183943472326 4.30874594006731 13.7952471231427 68.5241685404818 45.4613868482351 20.5457412962458 73073.0746819566 4365.27608718017 23.4209491853797 49.3061754442912 2.32198142414861 32.1981424148607 632.955948121759 630.926125049489 624.165265009434 30.2164675932538 30.9511268824142 24.1795656528519 689.1 29 692 37 671.9 37 678.5 22 686.2 33 659.5 27 670.4 22 676.2 37 657.5 35 667.4 28 661.8 30 647.1 32 651.1 23 652 29 639.3 30 637.3 25 637.9 30 627.4 30 626.5 24 625.1 28 618.7 29 608 23 601.3 27 605.3 30 581.6 21 578.9 30 583.1 27 557.3 27 554.4 32 570.2 28 +1964774 LOS ANGELES LYNWOOD UNIFIED 59.296941237853 .224648985959438 12.0561622464899 86.5273010920437 52.4871355060034 15.7930124223603 67063.0171526587 4064.95432137286 27.0596092836868 15.0847457627119 0 50 618.290844222037 621.509246177233 613.061156723226 23.0633096150338 25.8221407493517 17.7372810675563 678.6 20 678 23 659.8 25 667.6 14 674.2 22 648.2 18 659.9 15 665.9 27 649.5 28 658.3 21 652.3 22 640.6 26 642.8 18 642.4 21 632.6 24 635.1 23 639.5 32 624.5 27 615.5 17 618.6 22 610.5 22 595.7 15 597.6 24 598.1 24 569 14 572.8 25 573.1 19 548.5 21 557.4 35 561.8 20 +1975333 LOS ANGELES MANHATTAN BEACH UNIFIED 7.19727345629511 7.00382026559942 1.81917409496089 8.65926869201383 7.93650793650794 15.2171875 64224.8888888889 5093.92796070584 21.5871073031416 43.089430894309 0 0 690.056717557252 683.397692112605 674.556118036123 74.1541592470109 74.6817144306366 71.3648854961832 717.6 58 717.5 65 695.5 62 712.9 56 709.6 59 691.1 59 713.9 63 709.9 71 692.9 70 721.8 78 714.1 78 707.1 85 711.8 80 706.7 81 691.1 83 696.8 82 708.4 88 680.3 81 689.6 81 681.9 83 673.7 80 677.6 82 661.2 81 661.8 79 648.3 75 632.5 79 640.4 77 613.9 74 598.3 74 617 78 +1964790 LOS ANGELES MONROVIA UNIFIED 56.8985750209556 1.91512180174659 14.064654512027 48.0772177110464 17.5438596491228 14.4258785942492 57193.298245614 4017.30228282519 22.5547183351274 25.9475218658892 0 11.1111111111111 645.345761124122 639.929743822263 635.35638225256 40.8038680318544 38.6701428247563 34.7861826697892 687.4 27 687.8 32 669.6 34 684.2 26 688.8 36 665.6 32 677.9 28 679.2 40 665.8 44 683.9 43 673.1 41 661.4 46 670.2 40 661.5 39 653.5 46 654 41 646.7 39 645 48 644.7 41 637.4 40 639.6 50 622.1 35 610.6 36 617.4 41 595.8 33 588.2 39 590.8 34 563.2 33 565.1 43 575.4 34 +1964808 LOS ANGELES MONTEBELLO UNIFIED 75.0342977348252 4.8799265642119 .447129193686891 90.5184921974475 59.5298068849706 16.9234065934066 67605.9101595298 3810.28506706938 27.995777027027 28.5416666666667 0 25 633.256956384986 628.919973223583 622.355320469712 25.1499663752522 24.3407546982695 20.808764940239 684.5 24 686.5 31 666.3 31 673.2 18 681.1 28 651.6 20 664.1 18 669.4 30 651.4 30 665.3 26 656.4 26 643.6 29 649.9 23 648.5 26 638.1 29 636.2 24 632.3 26 625 27 620.1 20 614.7 19 612.6 24 607.4 23 592.3 20 600.8 26 573.3 16 563.9 19 571.7 18 542.2 16 536.5 18 556.4 16 +1964840 LOS ANGELES NORWALK-LA MIRADA UNIFIED 44.0220253770649 4.93949345449638 5.01597012911062 62.9762922308696 29.2200232828871 15.6210774058577 60665.5646100116 3616.50474605245 25.6258156364931 21.5086646279307 0 7.14285714285714 639.250212154394 632.607114624506 627.880085696797 33.7937155682514 32.4326086956522 29.8602518477963 686.6 26 686.8 32 667.5 32 678.5 22 684.3 32 655.7 24 673.9 25 677.5 38 658.1 36 678.6 38 665.1 34 653.7 38 662.4 33 654.9 32 646 37 647.4 34 641.2 34 635.1 37 636.3 33 627.2 30 627.5 37 616.2 30 603.6 29 611.3 35 588.4 26 578.2 30 586.6 30 561 30 556.5 34 572.8 31 +1964865 LOS ANGELES PALOS VERDES PENINSULA UNIFIED 1.94360184248961 30.0269251480883 1.72320947765213 3.94184168012924 7.4742268041237 18.9428733031674 59821.2139175258 3946.78772213247 24.1144056678037 89.1304347826087 0 0 691.220889080708 696.583954688844 679.690504153538 78.8099398453165 84.1756524232865 73.5451014242555 730.5 71 745.9 85 715.6 79 720.6 64 737.4 81 711.4 77 720 68 732.5 86 703.7 78 717.1 75 727.8 86 698.5 80 706.1 75 721 88 694.2 83 690 76 704.6 87 671.2 74 683.5 77 682.9 82 674.3 80 671.9 78 665.7 84 661.1 78 648.8 76 635.8 81 642.1 79 617.4 77 608.7 82 619.8 80 +1964873 LOS ANGELES PARAMOUNT UNIFIED 58.2283516774964 1.78362031722521 14.6145775473678 75.7082021847806 35.2484472049689 11.8014563106796 63190.7142857143 4370.21483675863 24.5058004640371 5.43071161048689 0 73.3333333333333 621.628153616147 619.038806631794 616.064499361663 25.0995805216123 23.4514584626297 18.6787516352084 678 19 681.7 27 663.4 28 668.5 15 678.8 26 649.9 19 664.3 18 670.6 31 655.6 34 665 26 657.9 27 643.7 29 645 19 642.5 21 634.9 26 633.4 22 627.3 22 624.7 27 619.8 19 615.4 20 618 29 596.8 16 590.1 19 597.9 24 572.5 16 571.9 25 576.5 22 542.9 17 541.4 21 557.8 17 +1964881 LOS ANGELES PASADENA UNIFIED 61.8810986628117 2.22193005521956 32.0054343062495 47.1119291787186 42.1841541755889 14.2729885057471 64584.0385438972 4443.59943903936 23.867133609254 39.6551724137931 0 0 640.261998178379 638.447005395069 630.055227304324 35.4722647017934 37.419791026429 30.9504659146641 692.5 32 687.4 33 674.8 40 680.3 23 682.4 30 661.7 29 675.6 26 675.8 37 661.1 39 671 31 663.6 32 646.6 31 656.9 28 656.7 34 643.9 35 647.7 35 651.4 43 636.6 39 637 34 636.9 39 626.5 36 616.8 30 609.7 34 609.9 34 594.5 31 592.1 42 592.3 34 569.3 37 569.4 46 580.4 38 +1964907 LOS ANGELES POMONA UNIFIED 73.505306122449 6.3934630738523 11.2337824351297 71.2044660678643 48.6985726280437 16.6833691756272 65628.7707808564 4007.18603418164 26.0442219440968 8.2771896053898 0 23.6842105263158 633.616609392898 631.103751065644 625.687406073083 33.2647967061246 32.3901007973522 27.1438092262835 680.8 21 681.2 26 662.8 28 668.9 15 675.5 23 649.9 19 669.8 22 673.5 34 657 35 672.8 33 665.8 34 652.5 37 658.2 29 655 32 645.3 37 643.6 31 644 36 634.6 37 630.8 28 629 32 625.7 35 612.5 27 605.3 30 609.4 34 588 26 582 33 586.1 29 560.9 30 559.8 37 574.5 33 +1975341 LOS ANGELES REDONDO BEACH UNIFIED 25.6399317406143 7.27744401966139 5.18842162752594 23.1840524303659 10.2484472049689 16.5052083333333 68096.3695652174 5006.77607864555 22.4752168525403 51.5406162464986 0 0 662.997025878718 658.485319712448 650.223375639326 56.3864368251563 58.2854710556186 52.5876786404017 703.3 43 705.6 52 683.2 48 696.6 38 704 53 676 43 693.9 43 699.2 61 674.9 53 700 59 693 61 677.1 62 685.5 55 684.5 62 669.4 63 667.8 55 673.2 64 654.3 58 664.3 60 655.2 59 652.4 63 646.8 58 629.9 54 635.2 57 621.5 54 606.2 57 614.4 56 589 54 581.4 59 596 57 +1973452 LOS ANGELES ROWLAND UNIFIED 33.8506304558681 18.7811869625226 6.68860813249814 55.3508865059985 29.1823899371069 16.1730984340045 62277.3119496855 4369.67459390593 24.4457424714434 30.2618816682832 0 0 647.043888420569 652.661347437917 639.480387685291 44.3539338654504 50.7873808987921 36.0793930569392 695.9 35 704.1 51 676.8 42 686.1 28 699.8 48 667.6 34 682 32 694.1 55 667.6 46 684.7 44 685.8 54 661.7 47 670.1 40 674.6 52 657.3 50 656.3 43 661.5 53 648.2 51 638.7 35 645.1 48 634.9 45 622.8 35 621.1 45 624.2 47 598.4 34 604.5 54 600.4 42 567.9 35 572.3 49 581.5 40 +1975291 LOS ANGELES SAN GABRIEL UNIFIED 53.4556990709268 36.4023712486106 1.8895887365691 43.4790663208596 22.0657276995305 14.1230769230769 57663.2582159624 3814.97406446832 23.1666666666667 0 11.1111111111111 0 652.373269403656 651.826455658406 643.521950492097 50.5377274082911 54.3069573006868 43.7374887623614 693 32 704.7 52 676.6 42 687.9 30 698 50 668.8 36 690.4 41 693.5 56 679.2 58 691 51 687 57 673.3 59 678.3 50 679.5 58 666.9 61 660.2 48 670.4 63 649.9 54 648.6 45 647.8 52 643.1 53 631.4 45 624.7 53 626.8 51 604.3 42 598.6 52 602.9 46 580.9 51 570.1 52 584.8 48 +1964964 LOS ANGELES SAN MARINO UNIFIED .265339966832504 63.2023384215654 .48717115946736 3.34524196167587 6.94444444444444 15.9078616352201 57543.375 4619.27671321858 22.1773612112473 78.1893004115226 0 0 690.843953394938 703.648538245895 680.914090726616 78.169409875552 85.3384060873048 70.9003615910004 724 65 758 90 715 79 719.2 62 749.5 87 709.3 75 715.7 65 742.2 89 710.1 82 717.7 75 739.1 91 695.7 78 707.7 76 726.4 90 695.6 84 686.9 74 705.3 87 672.9 76 677.4 72 679.4 80 665.6 74 673.9 79 656.4 78 661.9 79 641 70 635.3 81 636.9 75 613.1 74 602.8 77 618.2 79 +1964980 LOS ANGELES SANTA MONICA-MALIBU UNIFIED 26.0906515580737 5.53147216923877 8.61799895959771 27.0764695682331 22.2664015904573 15.8740034662045 65963.4274353877 5063.35009537021 22.315280853634 65.1063829787234 0 0 672.518027812895 666.633357933579 658.063282423635 60.9182523785679 60.80036900369 57.6074589127687 709.8 50 713.6 60 690.5 56 701.5 44 705.5 53 682.4 50 696.5 46 699 60 680.7 59 703.3 63 688.3 56 679.5 64 691.2 61 683.9 61 673.6 68 676.7 64 673 64 658.3 62 670.2 66 666 69 659.3 69 654.4 64 637.8 62 638.5 60 628.4 60 612.4 62 619.6 60 593.9 59 584.1 61 599.3 61 +1965029 LOS ANGELES SOUTH PASADENA UNIFIED 11.6788321167883 32.0893561103811 4.46780551905388 18.2128777923785 13.0177514792899 16.1964467005076 61169.6213017752 4043.49855453351 22.9909365558912 64.0740740740741 0 0 684.429470771359 685.287564588357 669.604545454546 69.6936155447606 74.7888391319325 66.0823244552058 722.2 63 738.9 80 700.9 67 714.7 57 727 73 697.2 65 708 57 718.1 76 691.5 69 711.8 70 712.7 77 689.8 73 694.2 64 696.8 72 672.8 67 682 70 688.2 76 661.6 66 679.8 74 679.3 80 666.7 75 662.2 71 644.1 68 650.6 70 644.1 72 626.7 74 637.3 75 604.3 67 595.8 72 610.6 72 +1965052 LOS ANGELES TEMPLE CITY UNIFIED 27.3219814241486 38.107752956636 1.44546649145861 20.3679369250986 7.35930735930735 13.7875 59417.303030303 4035.89093298292 23.6489504242966 31.5649867374005 0 0 668.867083854819 672.304788029925 658.75127245509 60.2450099800399 64.9730673316708 52.4027534418023 704.9 45 718 64 685.4 51 695.5 37 715 62 681.4 49 694.9 44 711 71 685 63 701.7 61 697.2 65 680.4 65 685.4 55 691.4 69 673.3 67 676.1 64 683.3 73 663.5 66 657.3 54 651.7 55 649.9 60 643.7 55 635.7 60 639.5 61 621.2 54 617 66 618.6 60 595.1 60 587 64 601.4 63 +1965060 LOS ANGELES TORRANCE UNIFIED 17.7019320040674 28.4768777488364 3.99675477176651 15.8332977496904 19.6572580645161 13.3186108637578 59555.2883064516 3822.10277979418 23.7832310838446 45.956607495069 0 0 669.838492706645 669.997700028678 656.603946302511 58.3625737761833 63.3968454258675 53.6345797638342 706.4 46 713.2 60 686.6 52 700.6 42 709 58 681.9 49 699.2 48 711.1 71 682.8 61 700.4 60 696.8 65 676.2 61 690.1 60 688 65 669.2 63 669.5 57 675.1 66 653.9 57 661.4 58 659 62 651.8 62 648.5 59 640.2 64 641.2 63 620.3 53 612.2 62 615 56 590.4 56 583.8 61 599.3 61 +1973460 LOS ANGELES WALNUT VALLEY UNIFIED 6.19667389732466 42.3138875271378 5.72168919392114 18.1805448560824 17.7364864864865 14.8244477172312 60555.2364864865 3982.78030674417 24.2508591065292 57.7854671280277 0 0 675.635385172445 678.79409180563 664.452948625181 63.8897431259045 68.21642460104 56.1614012854169 714.1 54 729.9 75 696.3 62 706.7 49 720.5 69 691.2 59 700 49 714.1 74 689.7 67 704.2 63 703.8 71 683 68 694.5 64 700.6 76 677.8 72 675.5 63 683.7 73 662.9 67 661.9 58 661.1 65 655.5 66 645.6 57 633.6 58 641.2 63 616 50 608 58 612.6 54 591.8 57 578.4 56 597.6 59 +1965094 LOS ANGELES WEST COVINA UNIFIED 47.3071656777727 9.43910955914448 9.12265386294195 58.1623745089481 17.5202156334232 13.9033898305085 56841.371967655 3907.33773461371 24.4226579520697 29.0617848970252 0 0 646.576221907905 644.418671371587 637.665678554886 42.1999382430137 42.0662779993863 34.8972182932579 690.9 30 690 35 673.2 38 684.5 26 687.3 35 663.5 30 682.3 32 683.1 44 668.5 47 677.6 37 668.2 37 658.2 43 666.1 36 662.4 39 654.3 47 650.8 38 651.6 44 644.4 47 642 38 645.3 48 634.4 45 623 36 617 41 620.5 44 600.2 36 596.6 47 598.9 41 570.9 38 570.6 48 580.5 39 +2065193 MADERA CHOWCHILLA UNION 59.2872117400419 .94137783483098 2.52460419341036 41.6345742404793 6.66666666666667 12.2054166666667 53265.8190476191 3873.24005134788 23.5514918190568 25.4098360655738 0 0 642.458759783263 637.68853686636 630.755444964871 33.6891100702576 33.3064516129032 29.3991571342565 685.5 26 688.7 34 671.1 36 684.2 26 692.9 41 660 27 680.1 30 685.3 46 662.4 40 686.5 46 666.2 35 656 41 663.5 34 653.1 31 649.1 41 644.8 32 648.5 41 635.7 38 637.8 34 632.9 35 632.6 43 610.1 25 598.7 25 609.1 33 580.6 21 566.5 21 576 22 553.6 24 543.9 23 563 21 +2065243 MADERA MADERA UNIFIED 60.0239038812355 1.15214548172137 3.54362583297004 67.3538020800897 26.8292682926829 14.0548488664987 56274.5882352941 4064.55738930062 23.4583272301157 31.9940476190476 0 45 634.873307579102 632.891376291368 622.640314369921 29.2889166741091 33.3825949921205 26.8529249448124 684 24 688.3 33 660.7 26 676.9 21 682.6 30 648.5 18 674.2 25 680.3 41 653.2 32 674 34 666.9 35 650.4 35 657.4 29 659.6 37 643 34 643.7 31 647.6 41 630.8 33 626.9 25 626.9 31 618.7 29 608.6 25 600.3 29 604.2 30 583.9 25 575 29 582.4 27 553.8 28 547.3 29 566.1 27 +2165417 MARIN NOVATO UNIFIED 14.7922867865925 4.89383738995339 2.77058518902123 11.1082340756085 3.56234096692111 16.6201793721973 53794.9872773537 4365.51268772657 20.3963577932512 48.0851063829787 6.25 12.5 676.327673869621 670.308662832495 664.362228654125 67.1979015918958 65.5445722501797 61.5907027419648 717.7 58 718 65 699.3 65 709.2 52 707.6 57 689.2 57 708.1 57 706.3 68 688 65 706.9 66 703.2 71 685.3 70 697.1 67 698.7 75 683.9 77 676.7 65 685.2 75 666.6 70 670.1 66 664 68 661.8 71 655 65 637.4 62 644.9 66 629.8 61 605.8 56 621.1 62 593.5 58 579.7 57 606.4 68 +2165458 MARIN SAN RAFAEL CITY UN 34.7676767676768 7.88413581431038 5.19854210627278 36.1787838097065 8.53658536585365 15.1911371237458 53336.3807692308 4458.96873201611 20.9668168783286 53.5928143712575 0 0 670.195434083601 661.617473035439 655.652214080918 58.6352341510035 57.6804314329738 55.5993569131833 713.1 53 710.2 57 694.1 60 705.9 49 702.6 51 680.1 47 707 56 704.7 66 684.9 63 698.5 58 683.3 52 668.9 54 685.3 55 675.3 53 670.6 64 674.1 62 664.1 56 664.1 67 663.7 60 654 58 651.3 61 651.4 62 639.2 63 640.6 62 614.8 48 607.7 58 608.5 50 590.5 55 582.9 60 600.7 60 +2173361 MARIN SHORELINE UNIFIED 0 .480192076830732 .480192076830732 28.6914765906363 7.40740740740741 13.7261538461538 60992.5 6459.38415366147 16.4053537284895 26 0 0 670.308067542214 656.187862318841 650.405056179775 53.2621722846442 50.6322463768116 54.078799249531 709 49 699 45 688.7 54 703.3 45 699.4 47 681.9 50 692.1 41 686.7 48 671.9 50 701.2 61 683.1 52 677.2 63 692.9 63 670.3 48 666.8 61 683.6 71 677.5 69 660.9 65 672.5 68 656.8 60 655.6 65 648.5 60 611 36 620 43 625.8 57 601.8 52 606.5 48 578.1 44 577.5 55 585.2 45 +2265532 MARIPOSA MARIPOSA COUNTY UNIFIED 27.0007209805335 .511322132943755 .29218407596786 6.20891161431702 1.45985401459853 15.5984472049689 51692.8248175182 4183.60336011687 21.5384615384615 29.8013245033113 0 0 664.224974619289 650.738696939783 646.636458852868 51.3226932668329 49.3326752221125 51.4238578680203 706.6 47 703 50 681.6 48 702.4 46 694.9 48 673.7 42 696.2 47 690 53 672.9 53 698.9 59 679.9 50 676.3 62 684 56 666.1 45 663 57 663.2 51 660.9 56 649 54 655.9 53 636.9 43 638.9 50 641.1 55 618.6 49 628.8 54 614 53 591.5 47 599.2 44 571.7 46 566.3 52 581.5 47 +2365540 MENDOCINO ANDERSON VALLEY UNIFIED 55.9322033898305 .840336134453782 1.34453781512605 45.3781512605042 0 12.756 48855.9574468085 6406.86218487395 14.3160377358491 44.7368421052632 0 0 663.290476190476 663.766666666667 649.817894736842 48.6394736842105 53.8087855297158 42.7169312169312 704.5 44 716.5 61 692.3 56 694.5 36 703.4 51 677.1 45 676.1 27 681.5 42 667.6 46 694.9 54 683.4 53 673.8 58 680.9 52 675.8 51 664.9 58 652.5 39 660 53 641.2 44 664.6 60 663.7 67 648.9 59 630.4 43 629.7 54 617.3 41 594.6 30 601 52 589.7 32 580.9 47 582.7 60 582.2 43 +2365565 MENDOCINO FORT BRAGG UNIFIED 37.2996794871795 1.16279069767442 .415282392026578 19.6843853820598 2.27272727272727 17.1307432432432 56336.7803030303 4990.48712624585 19.4728682170543 25.8992805755396 0 0 662.634256472005 649.819894675249 645.872770795931 48.7175344105326 45.9631363370392 47.8657435279952 705.6 45 698.1 44 682.3 47 694.2 36 695.8 45 673.4 40 695.6 45 697.8 59 676.6 54 692.9 52 682.5 51 671 56 678.8 49 667.8 46 659.1 52 662.5 50 666.9 59 648.1 52 662.3 58 648.3 51 650.3 60 637.6 49 610.4 35 628.6 51 610.1 44 581.8 33 597.1 39 585.9 51 559 36 577.6 36 +2373916 MENDOCINO LAYTONVILLE UNIFIED 56.3311688311688 .517241379310345 .689655172413793 3.96551724137931 4.65116279069767 12.4978723404255 48867.6046511628 6578.05344827586 15.7329842931937 34.2105263157895 0 0 658.700571428571 644.085294117647 641.450287356322 43.1494252873563 36.9117647058824 42.5542857142857 693.1 33 687.5 32 672.8 38 699.4 41 689.9 38 669 36 688.6 38 680.9 42 654.4 33 702 61 672.2 41 679.4 65 673.6 43 661.9 39 652.5 45 658.8 46 650.6 44 647.3 51 654.8 51 638 39 638.3 49 630.7 43 605.8 31 619.6 43 602.6 38 586.8 38 589 32 562.2 30 548.2 26 578.9 36 +2365615 MENDOCINO UKIAH UNIFIED 46.9275405445618 .969468962523513 1.11416582260165 22.8186948343221 4.84848484848484 17.4014986376022 64535.7121212121 4838.43134133989 21.3448818897638 33.3333333333333 0 36.3636363636364 652.817643378519 645.442461600647 637.560484873601 39.9751346871115 40.8148746968472 38.4404588112617 705.6 46 706.9 54 685.2 51 698 40 696.4 45 674.5 41 688.2 37 689.1 50 669.4 47 686 45 679.2 48 660.3 45 667.4 38 668.8 46 650 42 655 42 653.5 45 637.1 40 644.8 41 633.3 36 630 40 624.3 37 602.9 28 610.3 34 596.8 33 580 32 589 32 557.1 27 547 25 571 29 +2365623 MENDOCINO WILLITS UNIFIED 46.5384615384615 .846153846153846 .692307692307692 11.5769230769231 2.98507462686567 17.472 56568.1268656716 4611.97576923077 20.8280757097792 26.3803680981595 0 0 658.926685714286 644.182815057283 640.649972451791 44.7129476584022 41.1047463175123 44.8982857142857 705.7 45 700 46 680.1 45 694.9 37 694.6 43 672.9 40 697.7 47 698.6 60 676.6 55 693.9 53 674.9 44 666.9 52 680.3 50 661.3 39 659.6 53 663.1 50 653.4 45 647.2 50 656.8 53 639.3 42 639.5 50 636.3 48 615 40 622.5 45 602.6 38 580.9 32 589.8 33 557.4 27 544.2 23 566.8 25 +2475317 MERCED DOS PALOS ORO LOMA JT. UNIFIED 60.9182098765432 .156801254410035 6.31125049000392 61.7012936103489 15.4411764705882 11.4913461538462 54802.6985294118 4750.99882399059 18.8121752041574 19.5945945945946 0 0 631.770659722222 629.861754780653 621.061990950226 26.993778280543 29.0989876265467 22.5873842592593 680.9 21 688 34 662.5 28 670.6 16 681.7 29 646.8 17 673.6 25 678.7 40 654.3 33 667.7 28 658.7 28 642.4 28 649.8 22 650.1 28 636.1 27 640.2 28 646.4 39 629.9 32 627.7 25 620.9 24 618.3 29 599.9 18 596.3 23 602 27 578.9 20 571.2 24 576.8 22 551.8 23 548.2 26 568.9 27 +2473619 MERCED GUSTINE UNIFIED 52.4079320113314 .614334470989761 .955631399317406 50.4436860068259 8.33333333333334 11.9896103896104 53609.9027777778 4080.96587030717 21.1577424023155 49.2753623188406 0 0 640.392330978809 634.424028906956 624.696633303003 28.8653321201092 31.8925022583559 26.6801210898083 686.5 26 690.3 36 665.9 31 685.9 28 689.4 38 658.6 26 673.2 24 676.8 38 655.1 33 672.8 33 662 31 648.5 33 670.7 41 661.2 38 651.3 43 640.7 28 640.9 34 627.9 30 629.8 27 626 29 622.8 33 599.8 18 596.6 23 595.4 23 569.2 14 568.8 22 572.8 19 560.7 30 554.5 32 563 21 +2465698 MERCED HILMAR UNIFIED 37.7889869693148 1.5866388308977 .292275574112735 17.3277661795407 11.7117117117117 13.4170634920635 58102.5495495496 4361.61920668058 22.7861163227017 20.8 0 16.6666666666667 651.254748941319 640.575577367206 636.812100058173 38.4729493891798 34.8556581986143 35.0725952813067 685.4 25 684 30 667.7 33 679.3 22 679.5 27 659.4 27 680.8 31 679.3 41 665.1 43 680.7 40 668 37 653 38 675.5 46 665.5 43 652.2 44 655.1 42 650.1 43 644.8 48 646 42 634.7 37 635.4 45 628.9 41 602.6 28 616.9 40 599.5 35 586.1 37 594.7 37 559.1 28 546.9 25 571.8 30 +2465722 MERCED LE GRAND UNION 41.4316702819957 .915564598168871 0 84.1302136317396 25.5813953488372 12.7714285714286 55709.2325581395 4140.52695829095 22.1852731591449 24.7422680412371 0 0 643.677083333333 645.689630681818 632.859677419355 25.2463343108504 27.5411931818182 18.0059523809524 682.2 23 686.4 32 663.1 28 665.9 13 681.8 29 650 19 668.9 21 672.1 33 654.2 33 657.9 21 664.3 33 646.7 32 642.9 18 652.2 30 636.3 27 632.1 21 630.5 24 625.9 28 610.4 14 607.6 14 610.7 22 588 11 584.5 15 589.9 19 569.7 15 568.2 22 572 20 547.5 20 550.8 28 551.7 13 +2465755 MERCED LOS BANOS UNIFIED 50.9282399143163 1.24495289367429 4.86204576043069 53.1796769851952 12.1673003802281 12.078156996587 55074.6235741445 4075.18842530283 21.7702805155421 33.9350180505415 0 50 638.536482875881 629.930409090909 625.650664451827 29.1734693877551 27.6852272727273 25.195530726257 685.1 25 687.3 32 665.9 31 674.2 18 679.9 27 654 22 669.2 21 674.5 35 652.4 31 671.6 32 663.4 32 647.2 32 663.2 34 658.4 36 648.2 39 643.1 30 640.1 33 634.3 37 624.6 23 617.6 22 616.8 27 611.7 26 597.8 24 606.8 31 584.5 23 565.8 20 576.3 22 546.8 19 537 18 559.8 19 +2573585 MODOC MODOC JOINT UNIFIED 33.2777314428691 .75 .75 10.4166666666667 1.61290322580645 11.6808823529412 55854.7419354839 4786.67916666667 19.2295345104334 32.7868852459016 0 0 659.431176470588 650.901276102088 639.167674418605 41.9476744186047 46.4164733178654 45.2776470588235 709.4 50 706.6 54 679.3 44 699.2 41 693.3 42 670.9 37 690.6 40 689 51 660.9 39 689.5 49 675.2 44 658 43 670.3 40 660.5 38 647.3 39 660 47 654.6 47 639.5 42 647.7 44 643.8 47 624.7 35 646.1 57 628.7 53 631.6 54 611.2 45 595 45 598 40 575.3 42 568.5 45 586.6 47 +2573593 MODOC TULELAKE BASIN JOINT UNIFIED 64.8508430609598 0 0 52.3809523809524 4.76190476190477 12.9553191489362 50840.0714285714 4851.06302521008 18.4009546539379 45.7142857142857 0 0 640.7754601227 638.625294117647 630.765029469548 35.9548133595285 37.8666666666667 30.2024539877301 693.7 33 691.1 37 675.7 41 687 29 695.7 44 666.9 34 671.6 23 679.2 40 656.1 34 671.8 32 674.2 43 653.6 38 666.5 37 675.6 54 659.2 52 648.6 36 650.7 43 640 42 627.6 25 631.1 34 623.6 34 610 24 594.7 22 605.6 30 598.8 34 585.2 36 590.6 33 562 30 550 28 567.5 26 +2673668 MONO EASTERN SIERRA UNIFIED 45.933734939759 .310077519379845 .775193798449613 14.1085271317829 2.22222222222223 14.0343137254902 52320.3111111111 6283.43255813954 14.6697038724374 76.9230769230769 0 0 664.066666666667 656.607675906184 644.631556503198 51.6183368869936 56.9424307036247 50.8013698630137 709.7 50 698.3 45 685.1 51 696.6 38 685.6 34 674.7 42 697.1 46 698 60 678.3 57 697.7 57 694.9 62 669.9 54 685.3 55 689.6 67 663.1 57 661.5 49 669.6 61 639.7 42 651.9 48 647 51 634 44 648.5 60 631.2 56 631.4 54 616.2 50 600 50 608.5 50 585.6 50 591.1 68 599.7 62 +2673692 MONO MAMMOTH UNIFIED 21.8400687876182 .582847626977519 .0832639467110741 21.8151540383014 4.83870967741935 14.9848484848485 60159.435483871 4806.48293089092 20.5942275042445 42.8571428571429 0 0 668.114354066986 654.781134259259 655.868557919622 59.5957446808511 53.09375 54.9138755980861 705.7 46 693.8 40 686.2 51 709.7 51 693.3 42 685.9 54 705 54 692.3 55 686.9 65 700.4 60 680.1 49 675.5 61 689.1 59 667.9 46 671 65 673.5 61 665.2 58 657 61 662 58 664.1 68 656.6 67 653.5 64 631.4 56 646.9 67 613.5 47 597 48 610.4 52 579.4 46 585.9 63 589.4 50 +2765987 MONTEREY CARMEL UNIFIED 10.706817231284 2.97716150081566 1.30505709624796 7.54486133768352 4.80000000000001 17.2942307692308 69887.392 5676.6513050571 20.6785411365564 55.921052631579 0 0 685.661973333333 677.989883474576 667.65821845175 69.2104984093319 71.0222457627119 68.8314666666667 724.7 66 721.3 67 694.2 60 718.2 61 719 68 690.1 58 709.7 59 708.5 70 681.8 60 709.8 69 702.2 69 689 73 697.5 67 694.5 71 682.4 76 681 69 684.2 74 668 71 682 76 670.8 73 667.2 75 673.7 79 646.5 70 649 70 644.1 72 634.1 80 636.1 74 607.6 70 591.5 68 612.5 74 +2775473 MONTEREY GONZALES UNIFIED 67.2693726937269 .273878808627182 .410818212940774 86.5114686751113 24.1935483870968 11.8868421052632 58893.1209677419 4200.85210544334 24.9086378737542 11.304347826087 0 0 641.562837480148 644.002448979592 631.401393908105 27.6288074341766 29.0015306122449 20.4552673372155 675.7 18 674.1 20 659 24 669.9 16 676.1 24 651.4 20 664.7 18 668.7 30 653 31 666.6 27 668.1 37 652.9 37 651.5 24 661 38 650.3 42 634.7 23 644.5 37 626.1 28 622.7 22 626.5 29 617.5 28 604.7 21 604.7 30 604 29 578.8 20 574.8 27 578.8 24 553.8 24 547.7 26 559.9 19 +2766092 MONTEREY MONTEREY PENINSULA UNIFIED 40.1345291479821 8.8134238913304 15.6372353176189 25.2257291250499 17.6570458404075 19.471915820029 61011.6332767402 4496.24306831802 20.6070396191124 28.9079229122056 0 95.2380952380952 653.881037456875 642.261085381784 639.283652789647 44.9874252228055 41.4812967581047 43.0559388861508 699.1 39 692.5 38 674.8 39 689.2 31 689.3 37 667.3 34 685.5 35 684.3 45 666.7 44 687.2 47 669.3 38 660.7 46 678.7 49 665.9 43 660 53 660.4 47 651.4 44 644.8 48 649.5 46 641 44 637 47 635.3 47 615.2 40 625.7 48 608.7 43 591.6 42 601.3 43 577.1 44 565.1 42 585.5 45 +2773825 MONTEREY NORTH MONTEREY COUNTY UNIFIED 40.6666666666667 1.84426229508197 1.28539493293592 49.2362146050671 20.1581027667984 14.6853448275862 56619.2134387352 4356.07228017884 21.5795724465558 60.5978260869565 0 0 646.961362367393 637.964190837625 633.754023307436 34.9500554938957 32.8462998102467 31.5178671133445 692 31 691.3 37 672.3 37 684.4 26 685.9 34 660.3 27 679.1 29 680.7 42 662.1 40 674.8 35 665.1 34 653.5 38 663.1 33 656.3 34 645.7 37 645.6 33 638.4 31 632.5 35 638.3 35 623.5 27 626.1 36 621.1 34 600.8 27 611.9 36 596.9 33 580.8 32 590.8 34 559.3 28 552.2 30 573.4 31 +2766134 MONTEREY PACIFIC GROVE UNIFIED 14.2795513373598 4.71158080140907 1.89343901365037 7.08938793483047 2.94117647058823 17.5419491525424 63909.5490196079 4756.38441215324 22.6321036889332 48.1751824817518 0 0 681.073791821561 669.929643296433 661.348655256724 64.1760391198044 64.9292742927429 65.1474597273854 719.7 60 716.7 64 692.9 59 715.5 58 706.7 56 694.4 63 712.2 61 707.9 70 690.3 68 709.7 69 702.2 70 684 69 698.6 68 693.7 71 672.1 66 677.8 66 682 72 657.1 61 670.1 66 662.1 66 657.1 67 663.5 72 640.9 65 651.9 72 637.5 68 609.6 60 620 61 599.4 63 576.7 54 593.1 55 +2866241 NAPA CALISTOGA JOINT UNIFIED 45.6702253855279 .68259385665529 .341296928327645 47.098976109215 4.54545454545455 13.5112244897959 54344.8863636364 4650.72468714448 20.9738717339667 50 0 0 651.626136363636 644.014660493827 642.586842105263 46.3684210526316 40.8425925925926 38.8019480519481 693.2 33 696.4 41 676.4 41 688.6 31 688.3 36 666.8 34 685.5 35 684.8 46 673 51 686.2 46 671.7 40 665.3 50 680.9 51 673 51 668.1 62 658.1 45 652.9 45 643.9 47 645.8 41 642.3 44 636.7 47 625.1 37 603.9 30 627.6 50 599.1 35 592.8 43 593.1 36 566.4 33 556.5 34 590.4 49 +2866266 NAPA NAPA VALLEY UNIFIED 32.7090648979061 1.39607354315986 1.77625428482393 26.4880024929885 6.38852672750979 15.4758720930233 54785.1342894394 3912.94858211281 21.8384091225143 29.2525773195876 3.33333333333333 0 661.755781448539 653.602858646089 645.835317212456 49.862496653877 50.1478428621536 47.9921038300962 707.6 48 708.2 55 683.5 49 696.7 38 697.8 46 674.5 41 695.8 45 694.6 56 675.6 54 693.2 53 681.2 50 666.8 52 680.3 50 672 50 660.1 54 665.4 53 663.8 56 650.3 54 654.2 50 642.8 46 642.1 52 639.2 51 620.4 45 627.3 50 614.1 47 599.4 50 604.9 47 577.6 44 571.1 48 585.4 45 +2866290 NAPA ST. HELENA UNIFIED 34.434250764526 .738007380073801 .43050430504305 37.4538745387454 14.6341463414634 15.6477777777778 51434.4390243902 4386.9594095941 21.2020460358056 44.1441441441441 0 0 671.938825591586 667.352487135506 655.775432525952 54.4567474048443 57.0694682675815 51.5530236634531 707.1 47 708.5 56 690.8 57 696.4 38 705.9 54 677.7 45 700.1 50 709.1 71 682.9 61 688.9 49 685 54 660.5 45 683.1 53 677 54 665.6 59 669.7 57 659.8 52 649.1 52 661.4 58 647.6 51 645.9 56 655.5 66 628.5 53 638.8 61 618.3 51 614.5 64 615.5 57 585.9 52 579.5 57 589.6 49 +3066449 ORANGE BREA-OLINDA UNIFIED 16.1578044596913 8.39899413243923 2.17937971500419 21.6261525565801 4.89795918367348 15.2272727272727 57193.4244897959 3825.95222129086 25.2277564921243 40.7202216066482 0 0 678.08792520838 676.768032786885 664.696648793566 65.8469615728329 69.0533894550288 60.8702410452805 709.9 50 724.2 70 690.5 56 709.4 52 718 67 688.1 56 698.5 48 712.1 72 682.2 60 705.4 65 698.5 66 680.5 65 698.1 67 688.6 66 680.9 74 679.1 67 683.1 73 670.2 73 669.1 65 669.9 73 658.5 68 653.2 64 645.8 69 646.9 68 633.9 65 619 68 626.6 67 606 69 589.7 67 610.8 73 +3066464 ORANGE CAPISTRANO UNIFIED 17.3380285722466 4.70951361577139 1.58062428436302 16.9537511823568 9.39193257074051 12.6999165275459 60779.3835039133 3802.97418728531 23.0004288952883 44.8255813953488 0 10.5263157894737 671.50029010734 664.568939854735 656.9490234375 63.8142361111111 65.2306343697449 61.3329344357412 721.1 62 721.2 69 698.7 65 713.7 57 714.3 66 692.3 60 708 58 710.6 71 689.5 68 706.2 65 697.8 66 680.6 66 693.5 63 687.5 65 672.8 67 676.1 64 679.9 71 657.4 61 665.7 62 657.6 61 650.5 61 652.4 63 633.8 59 641.4 63 626.8 59 611.4 62 618.9 60 595.2 60 587.1 65 605 67 +3066522 ORANGE GARDEN GROVE UNIFIED 48.1560822795015 28.7115519049283 1.29106955609927 44.0514680181755 11.4861186717474 15.6765557163531 65184.4246053348 3835.54895578469 24.6732224738965 20.3812982296868 0 0 644.83656906429 646.905817561278 637.042428705735 42.3321215919774 45.7674837108284 34.1665499681731 690.9 30 702.4 49 675.9 41 683.4 26 698.8 47 667.4 34 677.7 28 692.7 54 670.5 49 682.1 41 682.2 50 663.3 48 669.5 40 673.4 51 659.3 52 655.2 42 660.3 52 644.7 48 639.1 35 636.8 39 631.6 42 622.1 35 615.5 40 618.9 42 591.8 29 588.9 40 591 34 568.7 36 563 40 577.5 36 +3073650 ORANGE IRVINE UNIFIED 10.5164960182025 25.1636962837691 3.03976410389836 7.41078010493907 9.2557251908397 16.0977599323753 62550.9770992366 4352.4882702398 22.6581642900181 0 0 9.67741935483871 684.851803374055 685.089444252277 671.314190288104 72.8213289962825 76.8866020984665 68.4994764397906 720.5 61 735.6 79 702.4 68 715.9 59 725.7 73 696.1 64 713.9 63 725.4 82 697.8 74 714.4 72 711.5 77 692.2 75 702.3 71 704.2 78 684.8 78 689 76 701.2 84 673.5 76 676.7 72 675.6 77 666.4 75 665.2 73 649.9 73 653.9 73 638 68 626.3 74 632.4 71 607.9 70 596.1 72 612.9 74 +3066555 ORANGE LAGUNA BEACH UNIFIED 9.31627349060376 1.88383045525903 1.21664050235479 9.22291993720565 7.61904761904762 16.9064102564103 70274.3714285714 4481.47409733124 24.2635658914729 74.2857142857143 0 0 684.004074889868 677.346978021978 663.808360836084 67.2827282728273 72.2983516483517 69.2643171806167 727.2 68 724.5 71 705.3 71 719 62 710.9 61 693.6 62 719.2 68 716.5 77 695.5 72 714.8 73 704.7 71 685 70 703.5 72 694.7 72 676.1 71 680.1 68 685 75 651.8 55 677.4 72 674.9 77 659.4 69 660.8 70 643.3 67 641.9 63 638.8 69 632.2 79 627.7 68 607.1 70 597 73 609.1 71 +3073924 ORANGE LOS ALAMITOS UNIFIED 11.6002452483139 8.99127975489041 3.11100636342211 11.5366485976903 10.1333333333333 15.0930715935335 67284.9401866667 4726.52929766675 23.1987918725975 49.5921696574225 0 10 683.151620147578 676.998132780083 669.268828685259 69.4602390438247 68.4106287902968 64.971767725377 717.8 58 718.3 65 697.9 64 712.7 55 716.3 65 693.9 61 707.3 57 714.9 75 694.8 71 713.9 72 698.7 67 686.3 71 700.9 70 690.6 68 679 73 682.5 70 681.5 72 663.6 68 669.3 65 655.7 60 657.3 67 658.2 68 638 62 648 69 639.6 69 625.9 74 634.2 73 606 69 601 76 619.4 80 +3066597 ORANGE NEWPORT-MESA UNIFIED 39.0254420008624 4.68356306506596 1.23511684205326 34.1238081122474 4.42678774120317 16.0011663286004 60202.0374574347 4349.23086804012 22.4827586206897 42.8714859437751 0 0 662.048115315852 657.721892473118 652.410960005849 57.3834174161 56.1364157706093 49.8311978545888 702.7 42 701.3 47 682.3 47 700.4 42 699.9 48 680.6 48 693.6 43 694.4 56 676.8 55 699 58 691.1 59 679.2 64 683.9 54 679.7 57 670.3 64 668.3 56 672.3 63 661.3 64 653.6 50 655.2 58 647.9 58 640.1 51 630.8 55 636.2 58 616.1 49 610.3 60 614 55 588.1 53 579 56 598.8 59 +3066621 ORANGE ORANGE UNIFIED 36.019976669583 10.8824233307122 2.08554138603029 36.821771684502 9.42408376963351 16.8176700547303 56415.1108202443 3586.93545078464 25.4488217305271 47.3302570863547 2.56410256410256 12.8205128205128 657.097121487969 653.340421234853 646.768285012285 51.7346437346437 51.4449413348721 45.6142793878856 707.4 47 708.8 54 688.1 54 702.3 44 703.8 52 682.2 50 695.4 45 701.6 63 679.6 57 690.5 50 685.1 53 671.2 56 676.7 47 674.8 52 665.7 59 666.6 54 666.2 58 653.9 57 648.7 45 643.3 46 640.2 50 633.8 45 621.7 46 628.3 51 605.5 40 595 45 599.4 41 574.6 41 571.3 48 585.8 45 +3066647 ORANGE PLACENTIA-YORBA LINDA UNIFIED 21.0138794854435 8.12439729990357 1.88846030215365 25.9201221472195 11.3974231912785 15.153023465704 63101.5312190288 4172.24176309868 24.7171532846715 36.5617433414044 0 0 669.720971327595 666.268838856005 656.515978973547 60.006330544879 62.7434308790175 56.1279712705923 713.6 54 717.9 65 692.3 58 707.3 50 711 60 687.4 55 698.4 48 700.9 63 681.2 59 700.3 60 699.1 66 677.5 62 689.3 59 691 68 672.4 66 672.2 60 677.9 69 657.8 61 660.6 57 656.9 60 651.4 61 647 58 633.6 58 636.7 59 622.3 55 609.2 59 615.9 57 594 59 583.3 60 599.5 61 +3073635 ORANGE SADDLEBACK VALLEY UNIFIED 10.5344975854998 8.40166405402147 2.16749065476908 14.8106837091523 6.05643496214728 14.9799044585987 60372.2057811425 3840.86554925841 22.1910073196236 53.7918871252205 0 0 674.518041730873 671.646055990119 662.072027826377 66.466383404149 69.0351996706464 62.0291949523135 713.1 54 722.3 69 695 61 710.8 54 713.6 63 690 58 706.2 56 712 73 687.8 65 703.8 63 698.7 67 682 67 695.3 65 694 71 678.1 72 678.3 66 684.3 74 665.4 69 669.9 66 664.4 68 658 68 655.6 66 641.1 65 646.3 67 633.1 64 621.5 70 627.6 67 600.8 64 593.8 70 607.8 69 +3066670 ORANGE SANTA ANA UNIFIED 73.2772340256227 4.4085122200539 1.07982529504693 90.7908186971471 26.4875239923225 14.970924927416 69824.5398272553 4102.14481925472 25.0321867794005 21.729365524986 0 56.25 620.712644461482 623.755428773726 616.861563590674 26.7030852994555 29.2057133520329 19.6294119317375 679.8 21 686.3 32 664.6 30 668 15 682.5 32 651.4 21 659.5 15 670.2 31 651.4 31 663.1 25 656.6 26 645.4 30 645.5 20 650 28 638.2 30 632.4 21 635.4 29 626.7 30 620.4 21 623.5 28 616.7 28 599.5 19 596 27 601.1 28 571.1 18 572.6 28 572.8 20 542.4 21 548.7 32 559 22 +3073643 ORANGE TUSTIN UNIFIED 29.8689696247767 8.27604268971387 4.65527401296405 41.6813985464545 5.26315789473685 13.0141193595342 57831.146381579 3629.52956197211 24.1694687289845 39.5953757225434 0 0 653.79774335437 650.860966858654 643.780960137984 49.8789766193944 50.3713530355963 43.5576592082616 695.7 35 702.1 48 679.9 45 695 37 703.2 51 675 42 687.8 37 691.4 53 672.1 50 692.4 52 681.1 49 669.4 55 679 49 673.1 50 661.8 55 660.5 48 661.8 54 646.1 49 644.2 40 641.7 44 638.5 48 632.2 44 621.6 46 628.7 51 609.5 43 604.3 55 608.7 50 580.5 47 575.8 53 591.2 51 +3175085 PLACER ROCKLIN UNIFIED 17.136240833655 3.53894493137093 1.3725814453448 6.66446171655366 4.65116279069767 11.1923875432526 52654.8217054264 3596.09525384488 23.0433039294306 0 0 0 673.707947320618 662.480751278062 657.31606741573 62.7487640449438 60.8290731273616 61.4452770208901 716 57 715.2 63 695.3 62 713.2 56 709.2 60 688.7 57 705 54 708.1 70 686.7 65 710.1 69 692.4 61 683.7 69 696.8 66 679.4 58 674.4 69 678.7 67 670 62 660.2 65 664.7 61 654.9 59 651.8 62 652.5 63 629.8 54 639.1 61 630 62 609.6 60 615.2 57 592.3 57 584.8 62 597 59 +3166944 PLACER TAHOE-TRUCKEE UNIFIED 23.3564377231674 .627574034124338 .431457148460482 17.7093547754462 6.61764705882352 13.5935897435897 49513.0257352941 4638.09786232595 19.6784192173576 44.131455399061 0 0 666.170820668693 655.992460533479 648.804707520891 54.0721448467967 54.4324986390855 53.8347609836972 707.3 47 712.2 60 682.6 48 705.3 48 710 59 678.3 46 696.2 45 700 62 675.2 53 701.4 61 687 56 677.2 62 688.8 59 680.2 58 667.8 62 669.5 57 663 55 653.3 57 660.9 57 647.8 51 648.4 59 646.3 57 616.3 41 631.5 54 615.8 49 597.5 48 606.5 48 592.1 57 580.6 58 590.1 51 +3166951 PLACER WESTERN PLACER UNIFIED 28.6609686609687 .562809545249887 1.44079243583971 17.4245835209365 4.8780487804878 13.3327272727273 42658.3902439024 3503.69765871229 24.2685851318945 27.4611398963731 62.5 0 656.233281893004 645.500357507661 640.171112229492 44.5485656768999 42.8406537282942 43.2489711934156 698.9 38 695.1 41 679.6 45 691.5 33 698.9 48 670.6 38 689.2 39 694.3 56 669.5 48 688.7 48 668 36 659 44 676.9 47 676.4 54 656.5 50 661.5 49 655.6 48 651.3 55 648.5 45 630.4 33 630.5 41 635.9 48 614.6 39 626.5 49 611.6 46 590.5 41 598.9 41 572.5 40 559.2 36 579 37 +3266969 PLUMAS PLUMAS UNIFIED 36.6621067031464 .663533314901852 1.21647774398673 6.85651092065247 2.71739130434783 16.1540476190476 56500.125 4912.70168648051 21.2320916905444 33.1932773109244 0 0 668.071468144044 656.273361934477 650.500313479624 52.3761755485893 50.1907176287052 51.4273842500989 706.4 46 700.2 47 685.8 51 699.4 41 694.7 43 673.5 40 697.7 47 694.3 56 674.3 52 696.1 56 679.4 48 668.6 54 683.3 53 672.8 50 663.1 57 667.4 55 658.6 51 648.5 52 660.8 57 651.2 55 644.4 55 643.8 54 621.2 46 632.3 54 620.3 53 601.5 52 609.5 51 587.6 53 576.9 54 596.5 58 +3366977 RIVERSIDE ALVORD UNIFIED 42.2902910247004 4.02122641509434 7.22287735849057 47.1580188679245 17.2413793103448 13.0070779220779 62390.7051124438 3758.19761084906 25.181954887218 41.6666666666667 0 70.5882352941177 638.111402394775 630.693225584594 627.071274732972 34.6095254771494 33.3498968363136 30.1157474600871 687.5 27 687.6 33 667 32 678.2 21 684.7 32 655.2 23 676.4 27 681.1 42 660.5 38 674.4 34 662.9 32 655 40 660 31 656.5 34 649.7 42 649.6 37 648.7 42 636.3 39 636.4 34 627.3 31 626.3 36 616.8 31 601.7 30 611.6 37 583.6 25 573.6 28 582 27 559.1 32 550.6 32 569.9 31 +3366985 RIVERSIDE BANNING UNIFIED 75.5298651252409 13.3685136323659 13.8522427440633 36.6974494283201 20.2970297029703 13.8173333333333 60074.7807425743 4456.32191292876 21.8996590355577 41.8181818181818 0 12.5 634.098734577665 628.219981640147 620.879110554338 25.6636392107736 25.7264381884945 23.4349889275546 677.9 19 684.4 29 658.6 24 672.1 17 680.3 27 648.2 18 666.3 19 671.9 33 651.9 30 670.3 30 654.3 24 645.2 30 655.6 27 645.9 24 639.7 31 639.8 27 629.3 23 625.6 28 627.6 25 623 26 612 23 609.6 25 598 24 602.2 28 581.8 22 574.5 27 580.2 25 551.7 23 541 21 561 20 +3366993 RIVERSIDE BEAUMONT UNIFIED 58.7464387464387 1.15131578947368 3.4265350877193 34.6491228070176 9.02777777777779 15.9661585365854 59270.4442361111 4070.73959429825 24.7562674094708 26.25 0 12.5 645.879280347964 637.157724827056 633.962882603642 41.2026346377373 38.8439661798616 37.7323052589957 698.4 38 692.6 39 678.5 44 690.5 32 684.8 33 666.2 33 687.9 37 684.8 46 670.7 49 685.2 44 665.1 34 656.8 42 674.9 45 659.5 37 657.3 50 656 43 655.6 48 646.5 50 640.8 37 630.9 34 634.1 44 623.7 37 608.6 34 614.5 38 599.3 35 592.7 43 592.5 35 562.3 31 562.4 39 573 31 +3373676 RIVERSIDE COACHELLA VALLEY UNIFIED 85.5145886105639 .138121546961326 .276243093922652 96.1671270718232 36.4653243847875 11.9207692307692 61385.5887024609 4099.01191902624 25.2796420581656 13.5467980295567 0 0 612.505972615675 616.307526637951 605.373097282673 15.8368427243854 19.4258671503061 12.4275259678942 670.5 14 676.1 21 652.3 19 661 11 675.8 23 640.5 13 653.8 12 664.4 26 641.4 22 651.2 16 649 20 632.6 19 632.1 12 639.1 18 623.3 16 622 14 625.5 21 613.2 18 608.6 13 611.1 17 600.4 15 586.8 11 585.9 16 585 16 557.9 9 559.9 16 560.2 12 535.4 13 538 19 549.1 11 +3367033 RIVERSIDE CORONA-NORCO UNIFIED 41.5113871635611 3.60423802054992 4.64453762683653 41.7784321884703 11.3732097725358 13.5429739776952 64063.4574557709 4083.55417560257 25.2311373152183 34.6372688477952 0 34.2857142857143 649.575955248793 642.475290069264 639.372187638951 44.6634059582037 40.9677063572595 38.9997744394821 695 34 693.3 39 673.8 39 686.5 28 687.8 36 665.2 32 685.8 35 684.6 46 669 47 685.8 45 673.7 42 662.5 47 673.9 44 666 43 657.6 50 659.7 47 659.1 51 648.4 52 643.2 39 637.8 40 636.9 47 628 40 610.6 35 623.9 47 600.8 36 587.4 38 597.9 40 573 40 563.3 40 584.9 44 +3367058 RIVERSIDE DESERT SANDS UNIFIED 55.9912521615299 1.2646835922698 2.4677908298598 60.0416824554756 15.8088235294118 12.6873655913979 64123.518125 3937.20569865479 25.2138016019717 43.1718061674009 4.34782608695652 0 642.625749337795 640.398884858256 630.882184459367 35.1719884884199 37.7696493349456 31.2600027882337 692.2 32 690.1 35 669.9 35 682.6 25 686.7 34 659.8 27 680.7 31 684.9 46 663 41 675.3 35 664.5 33 650.9 35 662.7 33 663.9 41 647.5 39 649.2 36 647.7 40 635.3 38 635 32 636.5 39 630.3 40 618.9 32 609.7 35 613.7 37 587.8 26 584 35 584.3 28 563 31 561.6 39 574.1 32 +3367082 RIVERSIDE HEMET UNIFIED 62.4077800134138 1.43589743589744 2.66666666666667 29.2307692307692 9.03328050713154 15.5025143678161 59735.0526624406 3916.53708397436 24.517557734894 21.4285714285714 0 5.26315789473684 650.938309754281 645.971246796045 636.643406695025 41.9052154614389 44.9794031490297 40.3741623231571 703.7 43 701.6 48 678.6 43 692.4 34 691.6 40 667.1 34 686.7 36 688.1 50 665 43 687.6 47 675.5 44 663.3 48 674.6 44 664.1 41 659.5 53 659.6 47 659.5 51 643.8 47 648.5 45 645.5 49 635.1 45 625 38 616 41 615.9 39 600 36 592.5 43 591.1 34 567.7 35 566.7 44 575.7 34 +3367090 RIVERSIDE JURUPA UNIFIED 50.2109216989309 1.38881142283451 5.30425567516314 53.2545038764014 23.789764868603 13.2753071253071 62068.7191286307 3826.45784650566 24.6666666666667 26.3835263835264 0 4.16666666666667 638.791092144514 630.901365487503 627.674335051968 34.6180538505606 32.1523596582289 30.0636393768644 690.5 30 689.5 35 669 34 680.6 23 683.8 31 657.1 25 676.1 27 679.6 41 659.9 38 677.3 37 663.2 32 653.3 38 661.1 32 654.6 32 649.4 41 648.5 35 648.2 41 637.4 40 633.9 31 627.4 30 625.1 35 616.9 30 598.3 25 610 34 586.6 25 576.1 28 586.3 30 561 30 552.7 30 572.5 31 +3375176 RIVERSIDE LAKE ELSINORE UNIFIED 38.1164650109672 1.79080718975924 4.07242820189693 30.1120912648405 11.4186851211073 13.05374617737 62326.655449827 3960.63418584599 25.3969359331476 25.3833049403748 0 83.3333333333333 649.218096224461 642.148974546786 634.754570195195 41.2464339339339 42.5663797839224 39.5877977591564 696.1 35 694.7 40 670.8 36 689.4 31 692.9 41 666 33 686 35 688.6 50 668.6 47 684.1 44 667.9 36 656.3 41 674 44 665.4 43 655.4 48 657.1 44 656.1 48 644.4 47 645.2 41 639.6 43 632.3 42 630.3 42 615.9 41 619.7 43 601.5 37 590.9 42 593 35 573.3 40 564.2 41 580.4 39 +3367124 RIVERSIDE MORENO VALLEY UNIFIED 43.0689140716757 3.26543602800764 23.676002546149 35.3532781667728 23.1235784685368 14.0119418132612 58401.1608491281 4173.91743189052 24.0922034941892 25.5924170616114 2.85714285714286 22.8571428571429 642.660522821957 634.998522406493 629.402435943703 34.4060357271743 33.1140613973183 31.6017030627661 692.3 32 694.2 39 670.6 35 687 29 692.5 40 662.4 30 676.9 27 680.2 41 657.9 36 678.6 38 664.4 33 652.4 37 665.4 35 656 33 647.4 39 649.1 36 643.6 36 635 37 634.6 31 624.4 27 622.6 33 618.9 32 602.9 28 612.9 37 589.8 27 576.4 28 585.2 29 559.8 29 552.9 30 572.7 31 +3375200 RIVERSIDE MURRIETA VALLEY UNIFIED 18.2164543398024 2.10569777043765 3.43724194880264 17.8468208092486 15.1933701657459 9.21929611650485 59134.6718232044 3774.6010125929 25.86148169174 38.2566585956416 0 100 664.968239211877 655.571895604396 650.502999299229 56.3379117028732 54.6623626373626 53.4476203690856 706 46 701.7 48 682.7 48 702.5 44 698.8 48 680.6 48 699.1 48 702.4 64 678.3 57 695.8 55 676.8 46 671 56 683.9 54 672.8 51 662.9 57 667.3 55 671.7 63 651.2 55 662.3 58 653.8 58 649.6 60 651.1 62 633.2 58 643.2 65 621.3 54 601 52 614.2 56 589.5 55 578.8 56 596.9 58 +3367173 RIVERSIDE PALM SPRINGS UNIFIED 62.5049747000967 1.15749423932265 5.94287551578158 53.4912384116607 8.93333333333334 13.0700234192038 57242.9728133333 4143.36832699212 24.2010412494994 13.7540453074434 0 9.52380952380952 638.104933204571 636.219372751447 626.655804398614 33.8860871666801 38.3268418582825 30.6045388701111 690.7 30 689.8 35 669.8 34 682.3 25 687.3 35 658.3 26 677.2 28 680.4 41 658.5 36 676.8 36 663.8 33 651 36 664.6 35 657 34 647.8 39 645.2 32 640.1 33 632.1 34 635.8 32 637.2 40 628.3 38 617 30 612.7 38 611.4 35 588.7 27 593.5 44 587.1 30 561.9 30 568 45 572 30 +3367181 RIVERSIDE PALO VERDE UNIFIED 55.9128893390732 .632911392405063 10.5221518987342 52.0833333333333 10.7954545454545 14.1102564102564 61885.4805113636 4694.47362869198 22.1958121109225 20.9302325581395 0 0 642.057746478873 637.300819061802 629.136989409985 33.160363086233 34.7956068503351 30.516939474686 692.1 31 689.2 35 671.5 36 681.8 24 684.2 32 656.7 24 672.7 24 675.1 36 656.2 34 674.2 34 669.1 38 650 34 663.7 34 660.9 38 646.3 38 647.7 35 643.4 36 634.4 37 632 29 625.7 29 621.5 32 617.8 31 603.5 29 610.5 35 593.3 30 580.5 32 589.3 33 564.7 33 564.6 42 570.8 29 +3367215 RIVERSIDE RIVERSIDE UNIFIED 47.2343460276708 3.59830536819221 10.3266625787391 40.1109314900496 21.7477003942181 10.9766241299304 61445.6489947438 4384.20497268521 23.5685282566731 33.7724550898204 0 19.047619047619 652.423640417888 645.365187645035 639.211258767073 42.8254788564866 42.4636712811075 39.2414419622579 701.5 41 701.3 47 680.3 45 695 37 694.8 43 671.5 38 684.7 34 684.6 46 666.3 44 685.6 45 671.4 40 661.1 46 672.7 43 664.2 41 655.9 48 657.6 45 658.4 50 645.2 48 645.9 42 642.3 45 636.4 46 627.4 40 613.6 38 618.7 42 595.2 32 585.9 37 591.8 34 567.2 35 562.1 39 579.3 38 +3367249 RIVERSIDE SAN JACINTO UNIFIED 64.1791044776119 1.00730792020541 3.85147145960893 50.8196721311475 7.44680851063831 13.1198113207547 58040.6569680851 3564.44928500889 26.0216216216216 11.9318181818182 12.5 25 633.898633323641 630.169063926941 625.056898550725 32.6866666666667 32.3090753424658 27.9002617039837 686.4 26 687.1 32 673 37 685.5 27 685.8 33 670.4 37 677.5 28 678.3 39 663.5 42 674.5 34 669.2 38 651.1 36 659.4 30 653 30 645.8 37 648.3 35 642.9 35 635.6 38 630.7 28 625.4 28 617.1 28 611.4 26 597.2 24 604.5 29 587.6 26 585.4 36 583.5 27 549.8 21 553.3 31 566.2 24 +3375192 RIVERSIDE TEMECULA VALLEY UNIFIED 18.1699877999187 1.95702750786917 3.8250992199261 17.784316408923 8.09792843691149 12.194847972973 64156.1068361582 3664.26510606268 25.5497985031664 25.8680555555556 6.25 81.25 664.46675821574 654.871055332649 652.040092513924 58.8132729160767 56.1685173089484 54.7503551472677 709.6 50 702.7 50 687.3 53 703 45 699.2 51 681.1 49 697.3 47 699.7 62 680.9 60 695.8 55 686.4 55 671.6 57 687.3 58 677.3 56 668.1 62 670.5 58 667.7 60 657.1 61 661.2 58 653 57 653.2 63 647.9 59 628.8 55 638.8 61 620.7 55 603.2 55 612.7 55 591.2 58 577.4 57 599.9 63 +3375242 RIVERSIDE VAL VERDE UNIFIED 54.8438652569462 1.89759712553335 23.5796092521895 45.823040646755 21.2389380530973 10.9077922077922 58447.4374631269 3799.07750392993 25.5414949970571 31.8021201413428 0 0 637.066459230892 632.573991655077 627.424335378323 34.5670913953123 34.0865399474579 30.0086165629488 690.2 30 688.6 34 668.3 33 679.3 22 682.8 30 654 22 675.2 26 678.6 39 656.5 35 674.2 34 663.7 32 649.5 34 659.4 30 652.4 30 644.5 36 642.8 30 635.5 29 633.1 35 637.3 34 635.1 38 631.9 41 614.9 29 609.4 34 613.8 37 588.5 27 582.3 34 587.5 31 567.2 35 562 39 578.9 37 +3473973 SACRAMENTO CENTER JOINT UNIFIED 29.3060600267635 7.97491039426523 13.8709677419355 10.2867383512545 10.6995884773662 13.2324074074074 55944.1275720165 3811.04928315412 22.2895064288677 78.968253968254 0 42.8571428571429 662.739604722793 655.475031525851 650.780858585859 57.0383838383838 56.1669609079445 51.7995379876797 703.4 43 706 53 681.1 47 695.9 37 696.9 46 672.5 39 686.6 36 690.8 52 669.2 47 700.1 59 696.1 65 676.1 61 686.1 56 689.8 68 671.9 66 670.3 58 667.8 62 662.7 67 656.7 54 649.3 55 650.2 61 641.1 54 625.1 54 640.9 64 617.1 55 599.6 54 611.8 56 593.4 62 568 52 592.9 58 +3467314 SACRAMENTO ELK GROVE UNIFIED 36.9447663190421 15.2125780530885 19.0934646864194 16.269870885887 17.4043062200957 12.2778861360042 58331.6309808612 3762.5834017464 23.1169705126637 29.5801526717557 0 33.3333333333333 654.782969037773 648.209210391211 643.323938438074 47.4667059516794 45.1266043741657 42.0050387462209 692.9 32 697.5 43 675.4 40 688.4 30 693.9 42 667.9 35 686.8 36 692.7 54 671.3 49 685.7 45 677.4 46 660.8 46 674.5 44 668.2 45 655.9 48 661.5 49 657.8 50 649.5 53 648.3 44 638.2 41 641.1 51 630.8 43 612.8 37 626.7 49 609.6 44 592.9 44 605.1 47 584.7 50 571.4 49 593.7 54 +3467330 SACRAMENTO FOLSOM-CORDOVA UNIFIED 26.1143156790771 5.3087986463621 9.91257755217146 8.67174280879865 9.72222222222221 14.2631906077348 51104.6527777778 3845.84679921038 22.1977666289044 27.7091906721536 4.34782608695652 30.4347826086957 663.980873539868 658.512398760124 649.557049411291 54.2888195632485 56.1346865313469 51.1814118842052 703 43 703.8 50 683.1 48 697.9 40 700.6 49 674.3 41 693.8 43 700 61 675.2 53 697.6 57 688 57 676.5 61 682.1 52 679.3 57 669.5 64 669.5 57 672.5 64 655 59 661 57 654.6 58 647.3 57 642.7 54 627.1 52 630.5 53 617.4 50 605 55 609.4 51 590.7 56 580.3 57 592.9 53 +3467348 SACRAMENTO GALT JOINT UNION 33.1153765028475 1.77095631641086 1.18063754427391 35.7260920897285 9.16666666666667 11.7725563909774 51742.2041666667 4581.18913813459 22.2133333333333 23.9837398373984 0 0 656.585923753666 650.842329994729 644.455909694555 46.5211155378486 45.3125988402741 41.4806718208478 702.8 42 699.8 46 682.6 48 691.5 33 690.4 39 668.8 35 683.9 34 684.9 46 668.3 46 686.8 46 675.5 44 664.5 50 676.6 47 667.6 45 659.5 53 663.9 51 666.8 59 653.6 57 642.5 39 635.2 38 633.8 44 627.6 40 612.2 37 622.2 45 608.8 43 600.1 50 604.3 46 576.5 43 572.3 50 585.2 44 +3475283 SACRAMENTO NATOMAS UNIFIED 37.9553798362045 6.22614982928299 29.7449287005423 26.2301667001406 12.2340425531915 10.6661137440758 57672.6808510638 3312.51496284394 22.4284140969163 0 14.2857142857143 14.2857142857143 654.991544666866 642.894449262793 641.367069121642 43.5976456383942 38.1156403584851 39.4711682103376 694.8 34 688.5 35 673.4 38 684.6 27 684.9 32 660.9 28 680.5 31 679.1 40 663.6 41 686.6 46 670.9 39 663 48 674 44 661.6 39 660.7 54 658.8 46 651.4 44 647.6 50 648 44 637.1 40 636.7 47 626.2 38 607.8 33 623.7 47 607.7 42 591.8 43 599.5 41 575.1 42 557.4 35 581.3 40 +3467413 SACRAMENTO RIVER DELTA JOINT UNIFIED 35.978835978836 1.40728476821192 1.03476821192053 36.9205298013245 11.9047619047619 14.7351063829787 51080.373015873 4420.62417218543 20.1801801801802 45.3125 0 0 652.409325771897 645.858159509202 639.278937259923 41.1651728553137 42.3993865030675 38.5519848771267 697.9 37 698.6 45 680.1 45 688.8 30 692.1 40 669.4 36 681.4 31 689.3 51 667.8 46 691.1 50 680.4 49 659.2 44 676 46 671.1 49 657.4 50 654.3 41 654.5 47 640.6 43 641.3 38 633.5 36 628.4 38 630.5 43 612.6 37 616.7 40 594.6 31 580.1 32 591.1 34 569.6 37 560.6 38 576 34 +3467439 SACRAMENTO SACRAMENTO CITY UNIFIED 59.4064346159987 23.8705379883233 21.9525096978959 23.5061322048509 27.4574669187146 14.0032991803279 61997.025047259 4125.40662591591 24.8267842434226 38.742611499194 1.2987012987013 10.3896103896104 642.590368715732 637.104240392201 631.379925928053 37.3836812035256 37.4236729403809 33.106930463288 694.4 34 697.5 43 676.9 42 684.5 27 691.4 39 666.1 33 677.7 28 683 44 664.6 43 680.8 40 675 43 658 42 664 34 664.9 42 650.5 42 651.5 38 651.5 43 637.5 40 636 33 631.7 34 625.3 35 620.1 33 606.4 32 614.3 38 591.8 29 578.2 30 588.5 32 567.1 35 552 30 572.2 30 +3467447 SACRAMENTO SAN JUAN UNIFIED 28.8497509510099 4.59476973890503 5.95982189518574 8.97213454020946 7.18722271517302 12.6162215239592 58872.7457852706 4335.65953132512 21.750739140323 39.2844235634261 1.21951219512195 6.09756097560976 670.17213159824 662.936219245407 655.298383336865 58.550422330538 58.9531301507387 55.3249022482894 708 48 710.7 57 687.1 53 703.8 46 706.8 56 683.1 50 700.2 49 702.2 64 681.2 59 700.1 59 686.8 55 675.6 61 687.6 57 678.8 57 669.9 63 676.4 64 676.7 68 661.4 65 662.8 59 655.1 58 650.5 61 648.4 59 632.1 57 636.4 58 624.2 56 610.2 60 616.8 58 591.1 56 579.7 57 595.9 57 +3575259 SAN BENITO AROMAS/SAN JUAN UNIFIED 35.7537490134175 2.109375 .625 40.46875 16.6666666666667 11.9181818181818 61919.85 4272.915625 22.2222222222222 0 0 0 657.229098805646 644.65762886598 639.917678381257 48.8051118210863 48.5010309278351 49.1226927252986 702.3 42 694.2 39 678.6 44 691.7 33 696.3 43 667.8 35 690.2 39 695.3 56 668.4 47 700.6 60 680 49 676.8 62 677.5 47 673.1 51 663.5 57 674 61 674 66 653.3 57 651.1 47 644.2 47 635.3 45 636.1 48 609.9 35 619.4 43 609.5 44 596.5 47 598.4 41 591.7 57 571.3 49 587.3 47 +3675077 SAN BERNARDINO APPLE VALLEY UNIFIED 43.7316116377901 1.65699001891839 17.2744471263618 20.431861178159 5.16898608349901 13.2070035460993 62106.3459244533 3058.08872072542 24.5208208806535 35.8391608391608 13.3333333333333 86.6666666666667 652.699094870935 642.722250164006 639.455594713656 44.5601321585903 40.9465340039361 41.3233880880545 705.5 45 700.8 46 682.6 48 694.6 36 688.1 36 669.9 37 690.4 40 685.6 47 672.7 51 690.2 50 673.3 42 667 52 673.8 44 660 37 656.9 50 654.1 41 652.3 45 643.3 46 646 42 637.7 40 634.8 45 632.8 45 616.5 41 622.3 45 599.4 35 587 38 591.7 34 568.8 36 562.1 39 579.8 39 +3667611 SAN BERNARDINO BARSTOW UNIFIED 50.6241134751773 1.10144927536232 11.7826086956522 38.1304347826087 19.2691029900332 14.4014662756598 57100.6212624585 4203.24405797101 22.9867549668874 12.987012987013 0 0 644.092824226465 638.257651547266 630.222731201383 34.9842264477096 35.8380669775329 33.0118499012508 693.2 33 693.1 39 671.2 36 685.7 28 686.9 34 656.4 24 675.6 26 678.3 39 655.8 34 681.4 41 670.1 39 655 40 671.1 41 662.7 40 648.6 41 652.9 40 645 37 636.5 39 636.7 33 632.5 35 627.1 37 614.1 28 602 28 608.1 33 595.2 32 584.4 35 591.7 34 559.9 29 556.4 34 575.1 33 +3667637 SAN BERNARDINO BEAR VALLEY UNIFIED 40.7033727298933 .44931199101376 .954787980904241 11.4293737714125 3.52112676056338 13.8814814814815 57824.8802816902 3838.35888795282 25.3642857142857 35.4285714285714 0 100 662.867092034029 653.319750755287 647.145671412082 51.0623316660254 50.2843655589124 48.7935034802784 706.7 46 704.6 52 686.9 53 695 37 701.4 50 670.7 38 689.2 39 692.1 54 670.4 49 694.2 54 681.1 50 662.8 48 680 50 667.7 45 656.9 50 661.2 48 655.4 48 645.4 48 655.7 52 643.5 47 642.7 53 645 56 623.2 48 635.8 58 625 57 608.5 58 619.6 60 580.2 47 574.4 52 591.7 53 +3667678 SAN BERNARDINO CHINO UNIFIED 25.955670898506 6.02325581395349 5.23255813953488 38.202657807309 18.6985172981878 15.2127715355805 62270.0461285008 3664.25887043189 24.169686985173 29.0155440414508 0 10 655.456794936477 649.093457228997 645.536307072925 50.6846006038979 47.2450164244251 43.8672659725726 694.7 34 695.2 41 680 45 689.7 32 693.4 41 675.4 43 687.2 37 688.5 50 676.9 55 690.3 50 680.8 49 669 54 678.9 49 671.7 49 663.3 57 663.2 50 662.1 54 651.3 54 650.6 47 644.4 47 640.8 51 637.3 49 623.6 48 630.9 53 605.6 40 593.2 44 600.5 42 580.5 47 570.9 48 591.3 52 +3667686 SAN BERNARDINO COLTON JOINT UNIFIED 44.4521203103412 2.01990343876244 9.0846388806779 63.6860774460538 19.094247246022 11.8951140065147 59625.2607099143 3811.72376588827 24.0302328416433 34.4459279038718 0 48 634.139532950423 631.313346569601 626.092709725316 33.9203414996288 33.8149863960585 27.9621372430472 691.4 31 690.1 35 671.1 36 682.5 25 685.7 33 661.8 29 673 24 676.4 37 657.7 36 674 34 663.3 32 651.7 36 658.2 29 652.5 30 645.1 36 648.4 35 653.9 46 640.4 43 632.2 29 631.8 34 628 38 613.8 28 605.7 31 611.6 35 583.8 23 580.3 32 583.6 27 553.6 24 551.7 30 568.2 26 +3667710 SAN BERNARDINO FONTANA UNIFIED 39.998063204106 1.10104404176167 11.8054722188888 65.7746309852394 19.7108066971081 12.9685172647258 60468.7168949772 3939.78189127565 24.3713073776701 18.2534001431639 0 56.25 627.433972790867 625.397574910601 618.264922374043 25.880959431448 27.0517489415923 21.4247886356809 681.2 22 686.3 31 664.7 30 670.7 16 682.4 30 654.1 22 667.5 20 673.4 34 656.3 34 668.1 29 657.4 27 642.5 28 651.2 23 648.7 26 637.3 28 636 24 634.1 27 622.3 25 624 22 621.3 25 616.1 27 604.8 21 596.5 23 601.5 27 575.9 18 574.2 27 574.8 21 547.9 20 545.7 24 561.2 20 +3675044 SAN BERNARDINO HESPERIA UNIFIED 47.6781020421918 .955685016691759 5.30863389408915 31.1906787981934 11.8971061093248 12.1917877906977 62220.1045016077 3865.72474962362 24.8130160271977 13.3440514469453 0 61.1111111111111 645.811905419082 636.345861854387 632.887036026201 37.3387008733625 34.2974486621033 34.072499769988 697.9 37 693.7 39 674.4 39 690.1 32 688 36 666.6 34 683.1 33 681.5 43 664.7 43 678.8 38 667.3 36 654.8 39 668.8 39 659 36 651.9 44 651.1 38 644.5 37 637.8 40 634.5 31 625.7 29 625.6 35 619.3 33 600.6 27 612.5 36 593.9 31 579.3 31 589.5 32 561.4 30 552.3 30 573.6 32 +3675051 SAN BERNARDINO LUCERNE VALLEY UNIFIED 62.3115577889447 1.22484689413823 2.27471566054243 17.9352580927384 5.26315789473685 10.4692307692308 59114.4912280702 4587.3053368329 20.4873646209386 26.0869565217391 0 0 646.713190954774 636.121039903265 631.081157635468 35.2697044334975 34.2660217654172 33.7110552763819 684.9 25 677.6 23 665.5 30 694.1 35 684.9 33 665.9 33 683.4 33 682.1 44 663.3 41 676.3 36 660.9 30 648.1 33 653.2 25 646.6 24 634.8 26 648 35 643.4 36 625 27 640.7 37 636.1 39 631.1 41 632.8 44 613.1 38 623.5 46 594.1 31 577 29 592.5 35 567.1 35 562.6 40 577.1 36 +3667777 SAN BERNARDINO MORONGO UNIFIED 46.7422949503062 1.50383631713555 8.19437340153453 13.3401534526854 4.5045045045045 13.4019387755102 62286.0720720721 4128.06496163683 22.6292806251436 13.5 5.88235294117647 0 649.351451800232 645.395127543709 636.913963963964 43.5964835803546 46.3238750358269 40.457462253194 703.7 44 700.6 47 681.6 47 697.6 39 696.6 46 670.3 37 687.4 37 688.6 50 666.8 45 683.1 43 675.2 44 656.8 41 670.2 40 665.6 43 650 42 655.8 43 659.2 51 644.7 47 643.8 40 638.9 42 630.8 41 630.2 42 617.5 42 624.3 47 604.8 40 596.2 47 599.6 42 570.1 38 573.6 51 585.7 46 +3667801 SAN BERNARDINO NEEDLES UNIFIED 54.401519949335 1.16194625998548 3.7763253449528 17.283950617284 2.94117647058823 16.7946666666667 61234.9852941177 4903.2381989833 21.2772133526851 40.3508771929825 0 10 648.882936918304 640.701925025329 637.151745379877 44.7659137577002 42.2958459979737 40.3660806618408 698.2 37 694.5 40 680 45 688.5 30 690.3 39 669.2 36 683.9 34 680.9 42 668.6 47 683.2 43 675 44 659 44 675.1 45 669.9 48 655.2 48 656.5 43 648.3 41 644.1 47 639.3 36 628.8 32 632.7 43 632.9 45 620.2 45 625.8 49 597.3 33 588.7 40 593.6 36 588.4 53 573.2 50 590.9 52 +3667843 SAN BERNARDINO REDLANDS UNIFIED 34.6040390288178 8.12395760477753 7.96255447355679 30.9894011943832 15.0335570469799 14.8490898058252 60477.2657718121 3763.68477968473 24.7211127943809 24.7743229689067 0 50 656.081160748377 651.376363772792 643.838623810985 47.177124884934 47.9456741952427 42.7080565101184 694.5 34 701 47 675.2 40 694.7 37 699.9 49 675.2 42 688.4 38 694 56 673.9 52 691.8 51 680.7 49 667.5 52 678 48 673.2 50 662.2 55 659.3 46 658 50 645.8 49 650.6 47 642.1 45 638.5 48 631.3 43 614.7 39 622.3 45 604.8 39 594.5 45 600.6 43 576.9 43 572.3 50 585.8 45 +3667850 SAN BERNARDINO RIALTO UNIFIED 57.88501888376 2.87577590948377 27.3984442523768 51.5911055236898 24.4939271255061 12.1739946380697 59096.3066801619 3838.00078573112 25.1621099705255 13.2394366197183 0 70.8333333333333 630.819776598716 626.145838751625 623.00284021703 29.9329531613332 27.4568162115301 24.1199664898073 686.7 26 684.5 30 667.6 32 676.5 20 681.2 29 656.7 24 669.3 21 673 34 656.2 34 670.7 31 660 29 645.9 31 656.7 28 650.9 28 643.2 34 640.4 28 640.5 33 632.1 34 627.5 25 621.1 24 622.6 33 607.6 23 596.1 23 607.8 32 579.2 20 571.1 24 579.3 24 550 21 545.3 24 565.1 23 +3667868 SAN BERNARDINO RIM OF THE WORLD UNIFIED 24.7007250042151 .979604946202023 1.26866870081901 13.0560462502007 10.2766798418972 15.791958041958 62201.8656126482 3995.41560944275 24.4390832328106 31.2865497076023 0 0 663.493173758865 657.51976744186 651.892599080359 55.119115393037 53.1539621016365 48.792109929078 707.5 47 703.1 49 689.4 55 698.5 40 694.3 43 680.3 48 692.6 42 690.6 52 678.2 57 695 55 678.4 48 668.3 54 686.3 58 678.5 57 668.7 63 662.6 50 666.3 60 653 57 651.6 48 648.3 54 645.2 56 638.6 52 629.5 58 633.1 57 613 51 601.3 55 608.9 53 575 47 573 57 587.6 52 +3667876 SAN BERNARDINO SAN BERNARDINO CITY UNIFIED 70.2357454924486 3.36604410678485 19.6180225809855 50.849424923499 25.2196382428941 11.6793846153846 61672.8863049096 4147.68156589638 23.9868434683518 22.3952095808383 0 42.6229508196721 629.083041804347 626.491443928802 621.690639289877 29.5900654532413 29.2053692063679 23.6404037954346 688.8 28 692.9 39 672.1 37 675.9 20 685.5 33 657.5 25 669 21 675.5 36 656.6 35 669.5 30 660.8 30 648.5 33 653.6 25 652.2 29 641.8 33 638.9 26 638.9 32 629.1 31 624.2 23 623.2 26 618.5 29 606.5 22 597.1 24 605.1 30 580.3 21 574.1 26 581 25 551.8 23 546.6 25 565.5 23 +3673890 SAN BERNARDINO SILVER VALLEY UNIFIED 46.9641550841258 2.10789567702751 18.1850660950339 12.0400142908182 7.91366906474819 11.0990683229814 60618.4100719425 5342.53733476242 20.2528901734104 18.348623853211 0 0 650.362307692308 643.62908301682 635.705941143809 43.6912826207662 46.2045577862181 43.4203296703297 698.9 38 693 38 682 46 697.3 39 693.5 42 678.1 46 689.3 39 683.3 45 668.8 47 692.4 52 673.6 42 666.4 51 674.7 44 659.8 37 650.6 43 656.9 44 652.5 45 637.2 39 647.9 44 644 47 634.1 44 634.5 47 623.5 48 624.2 47 604.6 40 599.6 50 596.4 39 576.9 44 581 58 580 39 +3673957 SAN BERNARDINO SNOWLINE JOINT UNIFIED 20.984126984127 .826188620420889 2.08885424785659 16.6796570537802 4.05405405405406 8.42002881844381 53764.1993243243 3823.18035853468 22.5206611570248 10.2484472049689 9.09090909090909 0 662.535723570191 655.407981119931 648.334442523768 51.4716940363008 51.1527569191161 48.2629982668977 701.2 41 702.5 49 680.8 46 694.3 36 700.8 50 675.1 42 691.4 41 696.7 59 673.3 51 696.9 56 682.8 52 671.8 57 679.7 50 668.3 46 660.6 54 664.6 52 662.8 55 648.8 52 658.5 55 651.9 56 644.2 54 641.6 53 618.4 43 628.5 51 612.5 47 598.8 49 606.7 48 584.2 50 575.7 53 596.6 58 +3675069 SAN BERNARDINO UPLAND UNIFIED 30.647120055517 7.22630173564753 11.4903204272363 28.4796395193591 11.4563106796116 13.9812068965517 59659.7650485437 3922.56667222964 23.5105551211884 35.3135313531353 6.66666666666667 6.66666666666667 644.531339823829 632.309168925023 634.454106132436 50.2338278024163 44.4777175549533 46.7111729253593 677.6 19 674.3 19 653.2 20 677.6 21 677.1 24 655.7 24 682.2 32 677.1 38 669.7 48 692.3 52 683.8 52 669.1 54 683.2 53 674.4 52 664.8 59 664.5 52 663.2 55 651.6 55 649.7 46 639.2 42 637.7 48 634 46 613.3 38 628.1 50 605 40 586.7 38 600.1 42 576.2 43 561.5 39 588.5 49 +3667918 SAN BERNARDINO VICTOR VALLEY 44.9199607971251 1.61820323640647 16.4176328352657 36.1708723417447 15.5339805825243 10.971671388102 61492.8507936508 4057.49705499411 26.5114405414115 13.9705882352941 15 20 648.337447048856 642.959543184761 636.856736065727 40.8697600597517 40.029221379693 36.1985314882801 693.3 32 689.7 35 671.5 36 687.8 30 686.3 34 664.1 31 681.1 31 679.3 40 662.3 40 679.9 39 670.3 39 653.4 38 667.9 38 660.1 37 651.9 44 657 44 660.9 53 647.4 50 643.8 40 637.7 40 632.8 43 627.1 39 614.4 39 622.1 45 600 36 591.1 42 598 40 564.5 33 562.5 40 581.1 40 +3667959 SAN BERNARDINO YUCAIPA-CALIMESA JT. UNIFIED 27.5710334422932 .762642262114279 .77437521999296 19.6644374046697 6.06060606060606 11.880487804878 63432.7181818182 3784.39035550862 25.0716245047242 25 0 70 660.963865401208 653.070776566758 645.047559298728 47.8502921966311 48.70810626703 45.8515962036238 710 50 705.8 53 684.8 50 695 36 696.8 46 670.2 37 690.4 40 695.5 57 670.2 48 688.9 48 674.3 43 661.5 46 679.1 49 675.3 53 662.9 56 663.9 51 664.7 57 650 54 654.8 51 643.2 46 640.3 50 638.4 50 621.3 46 628.5 51 607.6 42 589 40 597.3 40 577 44 570.1 47 588.2 48 +3773551 SAN DIEGO CARLSBAD UNIFIED 26.9230769230769 2.59466170080695 1.76288019863439 26.1328367473619 13.3333333333333 15.2839285714286 62997.1121212121 4261.82011173184 24.3261749144102 43.4447300771208 0 0 675.131481481482 670.382800941493 660.844547008547 63.8950427350427 65.6696368527236 60.6031260618417 711.9 52 708.8 56 693.3 59 705.9 48 702.6 51 688.3 56 700.2 50 698.9 61 683.5 61 704.1 63 692.2 60 684.5 68 696 66 690.3 68 678 71 678.2 66 687.2 76 660.2 64 671.2 66 672.1 74 659.2 68 658.6 68 646.5 70 644 65 631.4 62 618.5 67 622.8 63 601.5 65 597.6 73 603.9 64 +3768031 SAN DIEGO CORONADO UNIFIED 12.8909229595728 1.74927113702624 2.58746355685131 10.4956268221574 8.66141732283464 15.0795454545455 59963.7874015748 4346.54555393586 22.3699421965318 58.8235294117647 0 0 685.812943528236 678.442246520875 668.551767048283 70.2528621204579 71.7176938369781 69.2713643178411 725 66 722.8 70 702.7 68 722 65 713.7 64 697 65 710.7 60 707.6 69 687 65 714.5 73 706.3 73 687.4 72 702.7 72 696.4 73 677.4 72 686.9 74 681.6 72 671.1 74 677.2 72 670.6 74 663.4 72 663.6 72 647.6 71 649 69 638 68 627.3 75 625.1 66 610 72 603.6 78 621.7 81 +3768098 SAN DIEGO ESCONDIDO UNION 43.1771475544595 2.75243544147209 1.7975877532086 43.8108860368022 8.99908172635445 14.0709437086093 58398.8970798898 3882.45098422762 23.4224049331963 29.0118577075099 4 44 654.3185102935 648.733153018358 641.556212530857 46.9538027506759 47.8680439661622 42.2829361983074 706 46 699.7 46 683.9 49 699.7 41 695.6 45 677 44 694.7 44 692 54 675.7 54 689.5 49 678.5 47 666 51 676.6 47 669.8 47 659.3 52 656.4 43 661.2 53 647 50 644.2 40 644.3 47 637.8 47 628.1 40 621 45 622.9 46 599.5 35 595.6 46 596.4 39 573 40 570.7 48 581.3 40 +3768114 SAN DIEGO FALLBROOK UNION 49.1896468311563 .898770104068117 4.3282876064333 36.2109744560076 10.1408450704225 16.5610126582279 66966.7211267606 4540.89427625355 24.1105354058722 22.4609375 0 0 658.178589678079 649.598358753316 644.485851117459 47.8462443286843 45.9941976127321 44.0805654913984 703.3 43 699.2 45 681.5 47 696.7 39 697.6 46 677 44 692.1 41 694.3 56 675.4 53 693.2 53 684.4 53 670.8 56 685 55 679.4 57 667 61 664.2 52 668.4 60 653.5 57 648.3 44 639.3 42 638.2 48 635.7 47 611.9 37 622.9 46 603.1 38 582.6 34 594.6 37 563.8 32 556.8 34 574.6 33 +3768163 SAN DIEGO JULIAN UNION 7.72303595206391 .138121546961326 .69060773480663 9.25414364640884 5 15.9693181818182 62789.975 5092.90745856354 19.0956072351421 32.0754716981132 0 0 674.98523364486 667.565988909427 655.901663585952 55.1293900184843 57.9334565619224 54.8616822429907 706 46 702.5 49 682.9 48 696.3 38 699 48 666.4 33 686.2 35 686.4 48 664.4 42 719.1 76 700.6 69 687.2 72 694.8 65 692 70 681.4 76 678.8 66 678.1 70 659.4 63 665 61 647.6 52 650.2 60 657.1 67 638.1 62 640.8 61 620.4 54 605.2 56 606.9 49 588.7 54 585.4 63 596.3 58 +3768213 SAN DIEGO MOUNTAIN EMPIRE UNIFIED 48.6942328618063 .163220892274211 1.4689880304679 25.2992383025027 4.3010752688172 12.1626213592233 52084.3978494624 4470.92056583243 20.1787709497207 40.8695652173913 0 0 655.573507462687 648.464296296296 641.53604826546 44.1809954751131 44.2 41.234328358209 692.9 33 687.6 33 669.6 34 691 33 693.3 41 670.5 37 683.4 33 690.3 52 662.7 41 687.5 47 669.8 38 660 45 673.3 43 663.5 41 657.1 50 660.4 47 658.5 51 642.3 45 645.9 42 638.3 41 636.9 46 637.8 49 614 39 626.5 49 602 37 593 44 600.1 42 582.4 48 580.2 58 591.2 51 +3773569 SAN DIEGO OCEANSIDE CITY UNIFIED 54.9773988083008 1.80425939219909 14.8600143575018 41.5218951902369 16.013437849944 13.1737055837563 57811.1422172453 3832.5821009811 23.3502479529466 44.7178002894356 0 0 640.598977391304 634.624421296296 630.728302937491 39.543366281498 37.8617919389978 34.5817739130435 690.5 30 690.9 36 671 36 684.5 26 688.2 36 662.9 30 678.3 29 680.1 41 662.8 41 684.3 44 669.9 38 663.5 49 667.3 37 659.9 37 652.7 45 653 40 652.3 44 641.6 44 639.4 36 633.6 36 630.8 41 622.9 35 610.4 35 618.8 42 594.4 31 583.1 34 591 34 567.1 35 563.4 41 576.4 34 +3768296 SAN DIEGO POWAY UNIFIED 10.5881569750025 8.75586330131785 2.76013912377549 7.79220779220779 11.0151187904968 14.1915538362347 58198.62275018 3718.16908644181 22.8757095906782 46.6887417218543 0 0 681.429950602305 677.907482088464 667.726259878223 70.3265967094183 72.5113475481574 66.1724152872866 716.6 57 721.2 69 698.6 65 711.9 54 713.2 63 693 61 706.7 56 713.1 74 691 68 711.1 70 704.7 72 687.3 71 701.8 71 696.1 73 682.1 76 684.5 72 687.1 76 667.1 71 678.7 73 674.4 76 666.8 75 667.2 75 648.9 72 653.8 73 638.2 68 629 76 632 71 602 66 598 74 610.5 72 +3768304 SAN DIEGO RAMONA CITY UNIFIED 35.0236546422235 .704225352112676 .876688703650474 19.6177062374246 7.49185667752444 13.5145161290323 57168.1302931596 3976.02960620868 23.1159175397094 39.7368421052632 0 0 670.183532751977 661.177163940965 652.80687851971 55.8986323411102 56.5917431192661 55.3364429121882 707 47 701.4 48 684.7 50 702 44 697.5 46 678.8 46 694.1 43 693.2 55 672.9 51 701.8 61 684.7 53 672.1 57 685.8 56 672.1 50 661.1 55 674.9 63 676.6 68 658.1 62 662.7 59 657.9 61 646 56 653.6 64 633.7 58 640.3 62 626.2 58 609.9 60 619.3 60 592.9 58 586.4 64 597.3 59 +3768338 SAN DIEGO SAN DIEGO CITY UNIFIED 64.1523473458116 9.49274671088837 16.9243412604654 35.2773273262256 25.0849652047257 12.2959692898273 62782.7030263797 4952.58531878518 22.193133902188 31.2403234130397 4.16666666666667 28.5714285714286 650.53792231777 646.218283229981 639.276522675464 45.5376015212436 46.3890985890177 40.3608356899636 699.9 39 700.5 47 682.1 47 691.5 33 694.8 43 671.8 39 686.7 36 689.2 50 670.9 49 684.1 44 674.6 43 662.2 47 671.1 41 667.8 45 657.2 50 656.6 44 656.5 49 644.7 48 645.9 42 641.8 46 636.7 47 628.2 41 616.1 43 621.9 46 602.2 39 595.1 47 597.9 40 573.3 43 570.6 50 581.7 43 +3773791 SAN DIEGO SAN MARCOS UNIFIED 49.2650415411303 2.38978517815547 2.55370546113364 44.1376930377017 11.0647181628393 13.668029739777 60657.1607515658 4097.09248554913 24.6399825973461 29.6551724137931 0 83.3333333333333 653.268111815711 651.195564163439 642.022429078014 48.4894883485309 51.2722728976634 43.4528277468617 702.4 42 699.2 46 681.9 47 688.3 30 693.6 42 669.6 36 681.7 32 689.4 50 668 46 684.6 44 677.1 46 662.2 47 670.4 40 673.8 51 658.4 51 663.5 51 671.2 63 651.3 55 653.3 50 648.9 52 642.3 52 638.9 50 626.2 51 631.3 54 613.2 47 606.7 57 607.6 49 578.4 44 573.8 51 585.4 45 +3768452 SAN DIEGO VISTA UNIFIED 40.0597659168258 2.53261999153227 6.12755475154921 37.3850121242446 11.0909090909091 12.812450748621 65164.4454545455 4103.44648012009 23.6444866920152 34.3324250681199 3.7037037037037 81.4814814814815 653.530254976898 645.181577922439 640.063129506615 45.9587804462613 45.2737439492572 43.5388739946381 701.8 41 698.1 44 678.7 44 694.3 36 693.3 42 668.6 35 690.3 40 690.6 52 671.1 49 688 48 673.6 43 664 49 678.9 50 668.2 46 659.4 53 659.8 47 655.6 48 643.4 47 647.3 44 639.6 44 637 47 632.1 45 614.6 43 623.3 47 602 41 589.2 43 596.9 41 570.2 42 564.7 47 583.3 46 +3868478 SAN FRANCISCO SAN FRANCISCO UNIFIED 64.5542826673561 41.3690232268428 16.1932237284246 21.2041241169046 43.7374605904271 15.2854677206851 52885.5067354543 5230.05073188323 17.9311759878063 48.8306565229642 2.65486725663717 1.76991150442478 658.739665223665 661.291423925138 647.996224272947 50.8723181275654 56.3745114262075 43.9237806637807 704 44 717.9 64 689.9 56 695.9 37 707.5 56 678.6 46 692.4 42 703.8 65 679.5 57 688.1 47 688.1 56 667.1 52 676.5 47 680.5 57 662.5 56 656.4 43 664.2 56 644.8 48 649.3 45 651.7 55 640.3 50 633.7 46 625.1 50 628 50 604.2 39 601.1 51 602.4 44 584.9 51 579.2 56 590.4 51 +3968502 SAN JOAQUIN ESCALON UNIFIED 36.4128595600677 .919842312746386 .328515111695138 26.6425755584757 5.67375886524822 14.1924528301887 53510.4397163121 3846.51215505913 23.3205521472393 26.4150943396226 0 0 661.910785749146 654.90570754717 649.375467177767 52.7709631049353 50.8150943396226 47.4553440702782 700.7 40 700.3 47 680.1 46 690.4 32 694.5 43 670 37 695.8 45 692.5 54 677.1 55 698.4 57 684.9 54 673.9 59 678 48 667.7 46 661.4 55 666.6 54 663.9 56 653.1 57 658.4 55 647.8 51 648.8 59 640.4 52 629.4 54 632.9 55 605.9 41 598.9 49 599.2 41 585.9 51 576.8 54 600.1 63 +3968569 SAN JOAQUIN LINCOLN UNIFIED 44.1298342541436 19.6276905177429 10.6922629435718 17.6265270506108 14.7342995169082 13.2013742071882 53970.809178744 4022.26410703898 21.5606361829026 29.8353909465021 0 0 653.120987453153 648.215219123506 643.269463793941 46.5541875911226 43.7188844621514 39.3379501385042 693.6 33 699 44 681.3 47 686.2 28 695.7 44 672.1 39 680.5 31 688.7 50 673.6 52 690.7 50 676.9 46 667.6 53 672.9 43 668.6 46 658.2 51 661.5 49 658.3 51 645.3 48 650.1 46 639.1 42 637.8 48 628.1 40 613.3 38 623.8 47 602.9 38 588.3 39 597.7 40 567 35 560.3 37 581.9 41 +3968577 SAN JOAQUIN LINDEN UNIFIED 40.5828621139626 1.93602693602694 .336700336700337 34.2171717171717 7.20720720720721 16.1252032520325 52198.8558558559 3727.90909090909 22.0265151515152 39.2857142857143 0 0 652.678872403561 644.666724237191 639.678812572759 40.9796274738068 38.2941853770869 36.4160237388724 692.7 32 694.7 40 672.1 37 690.1 32 687.3 35 666.3 33 683.1 33 685.2 47 664.4 42 682.6 42 666.9 36 658 42 675.1 45 663.4 41 656.3 49 651.5 38 649.1 41 640 42 638.8 35 630.9 33 635.2 45 629.3 41 609.9 35 622.7 46 597.9 34 582.7 34 593 36 560.9 30 563.5 41 578.1 37 +3968585 SAN JOAQUIN LODI UNIFIED 48.7686274509804 19.7954739870908 5.83249086243098 23.6488062835368 11.271186440678 15.083598265896 59465.2338983051 4469.02146356637 22.0029152019206 30.3370786516854 0 62.8571428571429 646.503272085196 639.40676819852 635.370433124489 39.6596022882049 37.8718249108046 34.3092203277603 693 33 697 44 675.4 40 685.1 28 693.5 44 664.9 32 683.1 34 687.4 49 668.3 47 682.2 42 669.2 39 659.8 45 667.1 39 662 40 653.5 47 651.9 39 645.5 39 639.1 42 635.7 33 627.1 32 627.5 38 619.5 34 602.9 32 616 41 588 29 573 29 586.2 31 555.8 31 548.3 32 570.1 33 +3968593 SAN JOAQUIN MANTECA UNIFIED 35.1331654962237 2.4496294935391 4.93600342948129 29.0954743095107 11.3263785394933 13.8097754293263 56910.6646795827 3589.19701145202 24.385775862069 36.2426035502959 0 0 653.420248760546 648.740296094614 639.964641555286 45.0128449921889 47.2959244448226 41.5854570757589 698.5 38 701.1 48 676.5 41 691.2 33 697.3 46 666.7 34 690.1 39 695.3 57 670.2 48 690.4 50 681.4 50 663.5 48 676.4 46 674.2 52 658.5 52 657.7 44 662.3 54 645.4 49 647.4 44 639.9 43 637.6 48 629.5 42 619.4 44 621.9 45 604.5 40 591.6 42 598.1 40 570.8 38 562.4 39 583.1 43 +3968650 SAN JOAQUIN RIPON UNIFIED 13.773987206823 .730816077953715 .48721071863581 21.8432805521721 2.56410256410257 14.5503875968992 51683 3786.43036946813 20.5988023952096 29.7297297297297 0 0 665.134521880065 664.102466487936 654.637203023758 59.0599352051836 61.3678284182306 52.5834683954619 699.4 39 696.3 43 674.3 39 695.8 37 695 44 671.6 39 689.1 39 692 54 670.1 48 703.2 62 701.8 70 683.2 68 687.2 57 690.3 68 670.8 65 664.4 52 676.8 68 661.1 65 657.4 54 654.2 58 650.6 61 650.9 62 638.3 63 641.3 63 625 57 619.4 68 625.4 65 597.2 61 594.1 70 609.5 69 +3968676 SAN JOAQUIN STOCKTON CITY UNIFIED 68.7270837543667 20.8724926357133 13.3482956936457 42.1854397531211 33.7475474166122 12.677675070028 66654.75147155 4527.22617477907 22.9404855129209 18.2092555331992 0 21.9512195121951 626.294401667588 625.040340654415 618.696566775791 27.7514060270293 29.0440487347704 22.2195516229208 683.5 24 686.3 31 666.9 32 674.3 18 683.1 30 655.5 23 668.5 21 677.4 38 657.9 36 664.5 26 660.9 30 642.7 28 647.7 21 650.1 27 636.5 28 638.3 26 638 31 628.6 31 620.6 20 618 23 615 26 603.1 20 595 23 602.9 29 575.9 19 573.8 28 577.2 23 554.5 27 552.7 33 565.1 25 +3975499 SAN JOAQUIN TRACY JOINT UNIFIED 26.5703275529865 4.43653412050703 5.98194130925508 26.7233894773398 14.19624217119 10.5934981684982 55631.8997912317 3616.36638305261 23.96259626 26.2867647 0 0 657.620744108147 652.641071428571 645.445892687559 48.9863485280152 48.9051926691729 43.6359612393827 700.1 39 701.8 48 679.5 45 694.9 36 696.3 45 672.4 40 690 39 693.5 55 673.3 51 693.1 52 685.9 54 666.6 52 678.2 48 675.3 53 661.4 55 664.1 51 662.1 54 648.9 52 653 49 645.6 49 646.7 57 633.6 45 620.3 45 628.4 51 607 41 593.8 44 603 45 572.7 40 567.4 44 584.4 44 +4068700 SAN LUIS OBISPO ATASCADERO UNIFIED 18.0736636245111 1.06577851790175 1.64862614487927 9.34221482098251 3.28467153284672 14.9725806451613 60464.2408759124 4506.42464612823 23.304248861912 45.4545454545455 0 0 678.001860465116 667.072236267525 661.377217835578 63.4382257315374 61.4366812227074 61.55 717.6 58 709.6 57 698.5 64 711.2 54 703.9 54 693.1 61 706.4 56 704.8 67 687.5 65 706.3 65 696.8 65 679.6 65 694.3 64 680.7 59 669.7 64 680 68 675.9 68 662.8 67 668.5 64 655.1 59 651.6 62 654.6 65 634.7 59 642.5 64 628.8 61 609.9 60 618.5 59 597 61 588.6 66 601.4 63 +4075465 SAN LUIS OBISPO COAST UNIFIED 27.0877944325482 1.00502512562814 .301507537688442 21.608040201005 9.23076923076923 12.8641891891892 46347.3846153846 4792.46130653266 17.3713235294118 41.3333333333333 0 0 675.78129395218 659.928201634877 656.442441054092 53.619972260749 46.7506811989101 52.4669479606188 709.9 50 705.2 52 682.7 48 698.4 40 696 44 673.6 41 698.5 48 693.3 54 674.4 52 701.2 61 681.6 51 681.1 66 687.4 57 664.2 42 670.9 65 679.2 67 668.5 61 664.2 68 669.3 65 640.7 42 647.6 58 649.9 61 610.4 35 629.9 53 617.3 50 598 48 606.7 48 566.6 35 554.9 32 587.2 48 +4068759 SAN LUIS OBISPO LUCIA MAR UNIFIED 38.0746712736347 1.53803131991051 1.16517524235645 30.2013422818792 8.93203883495146 13.4831597222222 55684.2582524272 3887.0884601044 21.2192704203014 25.9036144578313 0 0 668.336747668833 660.265566037736 653.880173742469 57.6306571388539 56.7943951165372 54.3489686352077 707.1 47 704.4 51 686.4 52 702.3 44 699.7 49 680.5 48 699.2 49 700.5 63 678.3 57 705.7 65 694 63 679 64 687.6 58 682.6 61 669.8 64 674.2 62 673.1 65 657.9 62 659.8 56 651.7 55 648.7 59 644 55 625.2 50 634.1 56 616.7 50 599.2 50 609.7 51 590.3 55 581.7 59 600.4 61 +4075457 SAN LUIS OBISPO PASO ROBLES JUSD 36.8269067436725 1.33048620236531 3.87647831800263 27.1846254927727 5.80204778156997 14.2278425655977 59653.0341296928 4756.44152431012 22.2814653608995 39.8148148148148 0 0 660.040743405276 650.914003759399 646.067205208585 49.2531950807813 47.344219924812 45.636690647482 705.3 45 700.3 48 683.6 49 701.2 44 697.8 50 679.4 47 694.3 44 694.7 57 676 55 695 55 681.4 51 668 54 677.5 48 672.1 50 659.2 53 662.2 50 656.8 50 645.3 49 649.2 46 638.8 43 636.4 46 633.6 46 610.3 38 625.9 50 603.8 41 589.8 43 599.7 43 566 38 561 42 583.4 46 +4068809 SAN LUIS OBISPO SAN LUIS COASTAL UNIFIED 22.4657866053046 2.34638169357649 2.0908351724939 12.6147055407132 5.32687651331719 16.19522417154 64397.6755447942 4933.22348704844 21.4332659251769 25.635593220339 5.26315789473684 0 683.558106585091 673.451621621622 664.669967373573 66.636541598695 67.3852146263911 66.9017871518274 725.5 66 722 69 698.4 65 718.1 61 712.2 62 690.7 59 710.2 59 711.6 72 688.4 66 707.2 66 695.1 64 683.8 68 693.4 63 689.3 67 674.7 69 685.6 73 686.4 76 667.8 71 678.7 73 661.7 65 660.1 70 664.6 73 642.7 67 646.1 67 638.3 68 612.8 63 622.5 63 605.6 68 591.8 68 606.8 68 +4068841 SAN LUIS OBISPO TEMPLETON UNIFIED 17.9978118161926 .617828773168579 1.41218005295675 9.22330097087379 4.58715596330275 11.0872950819672 50372.4678899083 3667.01941747573 19.3939393939394 35.9550561797753 0 0 673.663157894737 660.333891213389 658.17453565009 60.5056920311564 54.7489539748954 57.9606775559589 709.6 50 697.2 44 682.5 48 708.7 51 699.4 48 680.4 48 706 55 700.4 63 680 58 701.5 61 684.9 54 678.4 64 691.1 61 685.3 63 672.2 67 683.5 71 670.3 62 665.1 69 662.6 59 650.1 54 657.7 68 655.3 66 628.5 53 647.6 68 615.7 49 595.5 46 611.8 54 593.7 59 583.1 61 599.9 62 +4168890 SAN MATEO CABRILLO UNIFIED 19.3020719738277 2.1085111853947 .539984571869375 25.0964258164052 8.29015544041451 13.3228971962617 51768.2660621762 4138.21131653381 21.0093252879868 48.8095238095238 0 0 670.851140684411 658.191318803103 654.942991356633 58.6384817737693 54.8485408200961 56.5441064638783 717.4 58 716.1 63 695.1 61 700.3 42 698.2 47 677.9 45 705.5 55 700.2 62 685.8 63 701.8 61 684.9 53 682.4 67 693.7 64 684.3 62 670.4 65 673.8 61 665 57 654.8 59 659.7 56 652.6 56 647.2 57 649 60 624.5 49 638.8 60 621.9 54 603.7 54 611.6 53 583.7 49 569 46 591.1 52 +4169070 SAN MATEO SOUTH SAN FRANCISCO UNIFIED 31.9148936170213 8.75331564986738 4.82365654779448 34.7971313488555 11.8993135011442 17.1086138613861 57489.2173455378 3823.83839375184 23.5231970601746 38.9544688026981 0 0 657.938155779629 651.254546756409 645.310129153969 49.4857059933246 48.261205785479 44.5271079935701 699.2 38 699.5 46 681.2 47 697 39 701.6 50 680.4 48 692.1 41 693.5 55 679.2 57 683.6 43 675.7 44 658.8 44 674.8 45 670 47 657.1 50 662.1 49 658.5 51 647.2 51 653.9 50 646.9 50 643.9 54 633.1 45 618.6 43 626 49 609.2 44 604.1 54 606.4 48 584.1 50 565.9 43 586.6 47 +4269146 SANTA BARBARA CARPINTERIA UNIFIED 39.2772711921648 1.38530927835052 .966494845360825 54.3814432989691 21.3235294117647 14.4977419354839 60262.9117647059 4158.06894329897 22.2132943754565 33.3333333333333 0 0 657.955866983373 652.616290842154 647.817581395349 50.293023255814 47.7096180395766 42.8688836104513 696.3 35 694.9 40 679 44 692.5 34 692.8 41 679.9 47 679.9 30 690.1 51 671.4 49 689.5 49 679.8 48 671.4 56 669.7 40 668 45 658.4 50 658.7 46 654.8 47 646.3 49 652.3 48 644.3 47 640.7 51 643.5 55 629.1 54 635.9 58 601.5 37 597.9 48 596 39 587.3 53 577.1 54 596.5 57 +4269229 SANTA BARBARA LOMPOC UNIFIED 35.7063300538333 4.65199180108725 8.92077354959451 32.8669459049996 9.0573012939002 17.0831674958541 53117.7153419593 4325.81900008912 21.6737698566447 42.914979757085 0 13.3333333333333 652.84358281893 640.795576875156 636.877135995956 42.2170121334682 39.9328432594069 41.5646862139918 700.8 40 702.2 48 679.7 45 693.2 35 692.1 40 669.9 37 683.4 33 687.1 49 666.5 44 688.6 48 673.9 42 661.6 46 679.5 50 665.9 43 657.5 50 660.6 48 650.1 42 641.2 44 648.2 44 637.4 40 633.7 44 631.3 43 611.2 36 619.5 43 603.4 38 584.3 35 594.3 37 569.2 37 551 29 575.5 34 +4369484 SANTA CLARA GILROY UNIFIED 44.5420326223338 2.30897936419409 1.5281650864473 62.9447852760736 22.3719676549865 15.4896551724138 62890.8086253369 4312.72950362521 24.507874015748 20.1900237529691 0 15.3846153846154 650.112128626354 639.755846077948 637.302743902439 42.6212737127371 39.8852162473277 39.2345333799371 696.2 35 697.8 43 677.1 42 689.4 31 693 41 669.1 36 684.7 34 690.3 52 670.3 48 682.4 42 668.5 37 657.6 42 668.8 39 660.9 38 650.9 43 660.5 48 658.6 51 647.7 51 644.2 40 634.9 37 633.4 43 626.8 39 609 34 617.6 41 599.2 35 582.8 34 594.6 37 579.7 46 559.4 36 583.3 42 +4373387 SANTA CLARA MILPITAS UNIFIED 28.8935721812434 31.4598833701991 5.95214156444802 18.4295194047858 20.2272727272727 14.806374501992 60774.9181818182 4090.01588578323 22.1197740112994 26.7206477732794 0 0 662.136157941437 661.338135961734 648.919647918842 53.8408175443831 58.4918104073054 49.6240757172434 696.3 36 706.9 54 680.7 46 693.2 35 702.6 51 675.2 42 688.1 38 697.6 59 674.4 52 696.1 55 688.9 57 669.2 54 690.5 60 691.5 68 672.6 67 672.2 60 674.4 66 660.3 64 658 54 656.5 60 649 59 641.3 53 630.7 55 633.3 56 613.6 47 605.7 56 607.3 49 588.8 54 581.3 58 587.2 48 +4369583 SANTA CLARA MORGAN HILL UNIFIED 23.6490993995997 5.23565792279804 2.39923224568138 33.4612923864363 11.25 17.7960850111857 60283.845 4361.51503518874 23.7371134020619 37.8048780487805 0 0 666.216356483583 659.320322915124 649.390683043739 52.9802276812463 55.3657235965042 51.7793917385384 707.5 47 710.7 58 684.1 50 696.6 38 703.4 52 673.1 40 701 50 707 68 678.9 57 698.3 58 688.3 57 673.5 58 684.9 55 677.9 56 663.2 57 668.9 57 668.2 59 651.2 55 653.9 50 645.1 48 641.2 51 644.9 56 625.6 50 632.6 55 618 51 604.1 54 610.1 52 588.8 54 573.5 51 593 53 +4369641 SANTA CLARA PALO ALTO UNIFIED 7.89443488238669 17.3890007417612 4.91681678499523 6.8877821341528 13.528336380256 14.1157512116317 66182.0091407678 5970.82324891385 18.7476866132017 73.3752620545074 0 0 698.751069604087 698.750649145028 682.214690885915 81.8879859783302 86.2845155161495 81.1083971902937 739.9 79 754.8 89 719.9 82 730.8 74 745.8 86 710.1 76 729.9 77 743.6 90 708.6 81 724.1 80 731 87 706.7 85 714.6 81 719.1 87 695.7 85 702 85 711.2 89 681 81 697.4 86 694.1 88 682.4 85 686 86 662.7 82 663.7 80 660.4 82 639.3 82 647.4 82 622.7 80 613.5 84 624.1 82 +4369666 SANTA CLARA SAN JOSE UNIFIED 42.8078358208955 12.2450216712636 3.27039068893402 49.4104810111236 22.3695111847556 16.5772932330827 80565.0364540182 5038.39963022459 28.2108543235523 38.1075826312378 0 0 655.468175303962 647.038183888913 641.538434616608 45.6173810281351 45.3295807963555 42.4182885673339 704.3 44 706.1 52 685 50 694.2 36 699 47 675.4 42 688.9 38 695.1 56 673.3 51 687.1 47 680 48 662.9 47 674 44 669.5 46 657.1 49 657.6 45 653.9 46 641.8 44 649.3 45 640.3 43 639.3 49 631.9 44 614.4 39 623.1 46 606.8 41 590.8 41 600.2 42 574 40 561.4 39 580 38 +4369674 SANTA CLARA SANTA CLARA UNIFIED 40.20545013554 18.3941204753074 4.34095748334364 25.2009066556769 11.52 15.6099728629579 65468.92 4317.31904663782 23.7628014535844 29.5511221945137 0 0 655.844454600853 649.07458432304 643.911948427254 51.5725241747249 50.1679532858274 45.9975624619135 696.6 36 701.6 49 680.5 46 690.4 33 696.9 49 673.8 41 686 36 691.1 53 676.8 56 689.4 49 683.1 52 663.4 48 679.8 51 676.6 54 661.9 56 661.9 49 656.6 50 647.5 51 654.6 51 644.4 49 646.2 56 638.6 51 618.5 46 631.9 55 612.9 51 595.7 49 607.1 50 578.2 49 567.8 51 589.2 53 +4469799 SANTA CRUZ PAJARO VALLEY JOINT UNIFIED 56.3486693730266 1.20137602540355 .587456999206139 72.0137602540355 19.7166469893743 14.11421107628 59922.1286894923 4282.14601746494 22.5352977286679 26.647564469914 4 20 640.186193505742 639.3257624461 628.568499879217 32.5221837507046 37.3257546060368 28.6157151119557 690.3 30 690.3 35 668.8 33 682.8 25 689.1 37 660.8 28 677.9 28 682.3 43 661.3 39 676 36 668 36 653.8 38 660 31 660.2 37 645.9 37 644.4 31 647.1 39 633.4 35 631.4 28 634.5 37 622.7 33 611.3 26 608.3 33 605.8 30 585 24 586.2 37 583.8 27 557.8 27 561.9 39 567.2 25 +4469807 SANTA CRUZ SAN LORENZO VALLEY UNIFIED 14.506396331161 1.65905265688868 1.22625631161337 4.08752103871123 3.33333333333333 17.2891625615764 58616.2833333333 4262.08776148113 24.3335290663535 60.5809128630705 14.2857142857143 0 676.616056910569 662.310665329321 658.5132996633 60.0437710437711 55.7355399531929 59.2906504065041 714.7 55 706.8 54 689.2 55 704.1 46 696.8 46 679.9 47 701 50 698.3 61 681.6 59 707 66 687.2 56 681.2 66 692.1 62 666.9 45 673.7 67 680.7 68 676.7 68 661 65 672.6 68 659.9 63 657.3 67 654.8 65 627 51 638.8 61 627.1 59 611 61 612.5 54 590.3 55 573.8 51 597 59 +4569989 SHASTA FALL RIVER JOINT UNIFIED 39.608938547486 .747126436781609 .28735632183908 8.9080459770115 4.3010752688172 16.4912037037037 56131.9429032258 4741.87406896552 18.7363834422658 28.8288288288288 0 0 662.603135313531 651.091162420382 643.225383993533 44.8334680679062 45.3734076433121 45.9117161716172 701 40 700.6 47 675.5 41 696.1 37 693 42 667.9 35 690 39 690.6 52 667.7 46 692.3 52 674.4 43 667.2 52 673.7 44 665.6 43 650.2 42 659.4 47 664.9 57 646.5 50 658.9 55 643.7 47 637.2 47 647.9 59 621.4 46 633 55 611.3 45 584.7 36 598.3 40 577.1 44 564.2 41 579.8 39 +4575267 SHASTA GATEWAY UNIFIED 49.3771234428086 .84053233714686 1.07401354190988 4.80971281811814 4.09090909090909 14.5858299595142 55396.6149090909 4509.5146509456 20.7381288199342 34.4827586206897 0 0 653.934816312774 639.410946555055 634.704659498208 38.2245030954708 35.9034127495171 38.7081226828446 686.8 27 689.2 34 664.7 30 689.2 31 694.1 41 663.2 30 687.6 37 682.7 44 665.4 44 688.8 48 672.6 41 660.2 45 670 40 656.4 34 652.9 45 658.1 45 652 44 640.7 44 645 41 627.9 31 629 39 630.8 43 604.7 30 618.4 41 606 41 583.4 35 591.9 35 561.9 30 547.5 26 570.3 28 +4670177 SIERRA SIERRA-PLUMAS JOINT UNIFIED 32.1016166281755 1.63316582914573 .628140703517588 8.35427135678392 1.9607843137255 14.4036363636364 54122.0196078431 2908.31155778895 16.8888888888889 43.2432432432432 9.09090909090909 0 672.277259752617 658.577871939736 653.042403846154 54.8115384615385 52.5866290018832 55.6641294005709 705.5 45 694.5 41 680.2 45 707 49 697 46 680.6 47 697.2 47 690.7 53 675.4 54 706.7 65 692.3 61 678.7 63 688.6 59 676.7 55 662.8 55 673.1 61 662.3 55 653.7 57 662.3 58 652.3 55 648 58 644.7 56 627.2 52 637.4 59 625 57 604.6 54 613.3 55 590.3 56 574.4 52 592 54 +4870524 SOLANO BENICIA UNIFIED 11.443661971831 4.56211066324661 7.80505679736167 10.1502381824844 10.1626016260163 15.1756183745583 61419.337398374 4303.05734701356 22.2794428028704 40.4907975460123 0 0 681.573438639125 671.828107718202 664.123567802756 66.4998791394731 66.8773743688387 65.7105710814095 715.6 55 713.5 61 691.8 58 708.5 51 709.3 58 683.5 51 708.4 58 707.6 69 687.6 65 714.7 73 701.7 70 689.3 73 700.2 70 692.2 70 679 73 681.3 69 671.1 63 660.9 64 676.2 71 669.6 72 666.3 74 667.5 75 645.9 70 649 69 638.2 67 617 66 625.5 66 605.4 68 592.8 69 610.6 71 +4870532 SOLANO DIXON UNIFIED 40.8194233687405 1.3169195533925 1.77497852848554 39.965645576868 12.6436781609195 15.5133333333333 57074.224137931 4262.56283996565 20.0236966824645 39.6648044692738 0 16.6666666666667 655.642246903033 647.059762100082 639.990394295302 42.4987416107383 43.0689089417555 40.5057667663392 696.4 36 699.5 46 672.7 37 689.9 32 695.7 44 664 31 687 36 687.6 49 664.3 42 679.2 39 674.1 43 657 41 670.8 41 670.6 48 654.9 47 661.6 49 655.5 47 647.6 51 647.9 44 634.6 37 634.3 44 632.9 45 613.6 38 623.5 46 607.8 42 589 40 600.1 42 574.8 41 561 39 583.5 42 +4870540 SOLANO FAIRFIELD-SUISUN UNIFIED 28.1108624220201 6.54867256637168 21.0107126222636 18.0158360503027 13.2415254237288 15.9655090390105 59268.9862288136 3955.48863530508 22.8889128791968 26.1160714285714 0 34.6153846153846 653.017221528645 645.545050167224 640.046989921003 46.3172160174339 46.2223411371238 43.3465806630601 696.2 36 696.8 44 676.9 42 691.1 33 695.3 47 672.1 40 686.4 37 686.7 48 671.9 51 687.3 47 678.3 47 662.4 47 673.7 45 668.6 47 658.6 52 660.7 48 657.3 50 645.1 49 651.9 49 640.9 46 637.2 47 634.1 47 619.1 48 624.3 49 604.4 43 586.7 41 596.9 41 570.5 43 561.1 44 580 43 +4870565 SOLANO TRAVIS UNIFIED 22.7124538143882 2.52947481243301 15.3483386923901 10.3965702036442 18.2203389830508 15.1208487084871 62353.6016949153 4900.85551982851 20.2287440656021 66.3101604278075 0 0 666.224245224892 651.059872804361 649.958239070621 55.8654845612962 50.3058752271351 55.0418977202711 705.8 46 700.1 46 685 50 698.3 40 695 44 671.8 39 701 50 697.9 60 675.7 54 697.6 57 681.6 50 665.7 50 690.7 61 679.7 58 665.2 59 672 60 661.9 54 655.3 59 662.8 59 644.2 47 653.5 64 649.3 60 624.4 49 641.7 63 620.9 54 596.9 48 613.8 55 592.9 58 569 46 598.4 60 +4870573 SOLANO VACAVILLE UNIFIED 23.0192416525184 2.82936052400567 8.37328651495712 16.7465730299142 9.12981455064194 14.6227443609023 53901.8758915835 4110.53933418867 22.3814655172414 40.2614379084967 5.26315789473684 10.5263157894737 663.389330329715 654.597166998012 649.498064321 52.7524952112108 50.7088469184891 49.3357567069425 706 46 704.7 52 685.1 51 698.1 40 700.1 49 676.1 43 695.9 45 696.9 59 676.4 54 694.6 54 680.2 49 665.8 51 678.7 49 668.6 46 659.2 52 667.8 55 666.9 59 656.3 60 658.2 54 647.8 51 647.5 58 643.1 54 621.2 46 633.9 56 617.5 51 600.4 51 610.9 53 577.3 44 567.5 45 589.1 49 +4870581 SOLANO VALLEJO CITY UNIFIED 35.4608814127758 3.83958186752437 35.2145944316012 15.5493014373304 23.8767650834403 16.6808544303798 68338.8023106547 4364.92657553523 25.6707959936742 20.0227531285552 0 56 644.687722460014 638.51153312395 632.704359794658 38.5993601666543 38.9284931706961 34.8631073064504 693.7 33 693.7 40 675.2 40 687.1 29 691.8 41 666.1 33 680.4 31 687 48 665.6 44 677.6 37 668.4 37 653.5 38 661.2 32 656.4 34 648 40 654.3 41 654.6 47 639.4 43 640.5 38 631.1 35 629.4 40 623.1 37 609 37 616.1 41 594.9 34 581.4 35 588.8 33 563.3 36 555.2 37 573 35 +4970656 SONOMA CLOVERDALE UNIFIED 39.7086763774541 .429447852760736 .674846625766871 25.0920245398773 6.32911392405063 15.6294117647059 56854.0379746836 3942.01042944785 20.4216073781291 43.8356164383562 0 0 657.034640522876 649.894646098004 639.369549218031 43.8408463661454 47.7223230490018 44.2362278244631 708.5 48 702.7 50 677 42 703.2 45 696 45 674.8 42 693.4 42 696.2 58 673.4 52 689.4 49 678.9 48 664.6 50 679.8 49 671.4 49 653.2 45 663.9 51 674.4 66 648.5 52 644.5 41 641.3 44 628.6 39 635.8 48 613.7 38 624.9 48 600.9 36 588.5 39 592.7 35 566.5 34 562.9 40 576.7 35 +4973882 SONOMA COTATI-ROHNERT PARK UNIFIED 19.6758386732002 3.86396879570941 3.64456362749878 12.8473915163335 5.99455040871935 15.7177884615385 59484.6839237057 4081.60153583618 22.2929762230118 14.4508670520231 0 0 663.548165536429 651.999588053553 648.170283428969 53.6576247609112 50.8764160659114 51.4564423578508 705.4 45 704.9 52 687.3 53 698.6 40 699.4 48 677.2 44 694.3 44 694.2 56 676.1 54 698.3 57 684.1 53 672.6 58 688.9 59 676.1 54 667.8 61 666.4 54 664.4 57 649.7 53 661.9 58 652.3 56 650.5 61 646.2 57 623 47 632.8 55 614.4 48 594.8 46 604.6 47 581.1 47 562.6 40 587.9 48 +4975390 SONOMA HEALDSBURG UNIFIED 21.4638665843113 .878378378378378 .439189189189189 34.0540540540541 14.2857142857143 16.4645251396648 56837.3506493507 4968.96756756757 20.9132720105125 46.484375 0 0 667.173062015504 657.896311858077 648.388740458015 46.6307251908397 48.2278244631186 45.6545542635659 701.9 42 698.7 46 682.4 48 693.4 36 696.6 48 675 43 689.7 40 691.1 53 668.2 47 693.8 54 690 59 665.6 51 683.8 55 670.5 49 662.4 56 664.9 53 658.1 52 646.5 50 656.2 53 645.6 50 637.8 48 635 47 616.1 44 622.4 46 598.7 37 584.7 38 593.2 37 571.2 42 557.4 38 573.5 35 +4970953 SONOMA SONOMA VALLEY UNIFIED 30.7603241991509 1.92343956251179 .716575523288705 22.4024137280784 6.15384615384616 15.8586092715232 54122.3423076923 4170.56835753347 21.1476725521669 23.3716475095785 11.1111111111111 11.1111111111111 664.450211416491 653.566589625064 648.412269300754 52.0428905640759 50.2734976887519 50.3742071881607 708.2 48 706.5 53 684 49 700.7 43 697.5 46 677.4 44 700 49 698.2 60 678.3 56 694.3 54 685.6 54 671.9 57 682.4 52 675.5 54 664.9 59 667.8 55 666 58 653.7 58 661.1 57 649.1 53 646.2 56 644.5 56 616.9 41 629.7 52 609 43 591.9 43 599.6 41 577.9 44 564.1 41 587 46 +4975358 SONOMA WINDSOR UNIFIED 33.5580524344569 1.37909898866074 .858106037388906 26.5093472264787 17.5675675675676 11.0236363636364 50731.472972973 3834.78639288998 21.0230547550432 0 0 0 654.652495621716 641.131451275617 638.921030756442 48.0448877805486 45.0380593893768 46.2504378283713 703.4 43 692.3 38 682.7 48 697.6 39 694.9 44 675.6 43 696.2 45 692.8 54 676.9 55 695.5 55 678.5 47 668.7 54 680.6 50 670 48 659.7 53 663.9 51 660.4 53 644.8 48 649.6 46 636.3 39 636.4 46 631.2 43 617 41 623.4 46 608.4 42 592.7 43 599.2 41 578.4 45 566.4 43 588.1 48 +5071308 STANILAUS TURLOCK UNION 42.6006966151648 4.70202296336796 1.36686714051394 32.5587752870421 9.22131147540983 14.9641577060932 59645.2069672131 3932.406689 24.1786317567568 21.40625 0 50 653.922410473623 649.459038583175 642.323309224718 44.8226113437381 45.3544592030361 39.6056988833269 699.6 39 698.2 44 682.7 48 690.7 32 692.8 41 674.5 41 684 34 686 47 669.2 47 687.1 46 681.2 50 662.8 47 669.3 39 668.3 45 653.1 46 657.8 45 659.4 52 645 48 642.3 39 637.8 41 635.1 45 630.6 43 616.2 42 621.3 45 601.2 38 591.4 44 596.5 39 573.1 42 567.7 47 581.6 42 +5071043 STANISLAUS CERES UNIFIED 51.2052189296771 4.55034423407917 3.4315834767642 39.2641996557659 10.0490196078431 13.2773218142549 56234.306372549 3767.50398020654 23.1700146986771 12.967032967033 0 41.6666666666667 641.917007005515 635.964696577509 629.076138701146 33.683661475169 34.3288754673569 30.8339543896259 687.6 27 688.2 34 668.5 33 681.2 24 685.7 33 659.1 26 677.2 28 680.9 42 661.3 39 674.6 34 664.5 33 649.9 34 662.9 33 656.6 34 646 37 651 38 648.3 41 637.7 40 637.6 34 629.7 32 625.6 36 618.5 32 607.1 32 613.4 37 590.1 28 579.4 31 582.2 26 560.3 29 554.8 32 571.1 29 +5071068 STANISLAUS DENAIR UNIFIED 42.1307506053269 .783085356303837 .234925606891151 25.920125293657 1.72413793103449 13.381746031746 49550.7413793104 3282.38919342208 21.3066202090592 29.8701298701299 0 0 658.764412416851 647.720043103448 644.830065359477 47.6655773420479 41.9946120689655 43.8968957871397 692.4 32 688.9 35 672.3 37 683.3 25 678 26 664.3 32 683.1 33 680.6 42 668.5 47 692.2 51 679.4 48 664.7 50 670.6 41 665.1 43 650.1 42 658.6 46 649.5 42 649.2 53 654.6 51 637.5 40 639.2 50 634 46 605.9 31 623.3 46 616.3 50 597.1 48 614.6 56 592.6 58 584 61 596.5 58 +5073601 STANISLAUS NEWMAN-CROWS LANDING UNIFIED 53.904282115869 1.22137404580153 1.47582697201018 53.4351145038168 14.7368421052632 12.7085714285714 51297.3684210526 4109.91704834606 21.6866158868335 28.8659793814433 0 16.6666666666667 646.867903103709 644.301789709172 636.501729323308 40.2315789473684 40.7166293810589 34.1241483724451 688.8 28 695.2 41 671.8 37 681.7 24 687.2 35 662.8 30 673.1 24 679 40 660.1 38 679.7 39 663.2 32 657.3 43 666.6 37 658 35 651.9 44 646.6 33 648.6 41 634.8 37 632.7 30 630 33 623.6 34 621.8 35 615.2 40 616.1 39 596.2 33 596.7 47 599.4 41 596.1 61 588.6 65 598.9 61 +5071217 STANISLAUS PATTERSON JOINT UNIFIED 55.0072568940494 .67396798652064 1.23560797528784 64.588598708228 18.1208053691275 13.3273255813954 55535.1476510067 4008.41449031171 24.0040927694407 13.0718954248366 0 0 645.663875278396 636.918853820598 634.555903083701 37.1092511013216 34.749584717608 31.6178173719376 686.7 26 689.7 35 670 35 681.7 24 683.5 31 659.6 27 676.1 27 679.7 41 664 42 682.5 42 669.5 38 655 40 669.9 40 662.5 40 654.3 47 646.1 33 642.2 35 637.1 39 636.5 33 625 28 632.5 42 612.3 27 603 29 613.3 37 592.1 30 574.3 27 582.8 27 566.8 35 565.5 43 575.6 34 +5171399 SUTTER LIVE OAK UNIFIED 72.2976963969285 12.3235613463626 .597176981541802 45.3311617806732 6.52173913043478 12.3826732673267 52194.3369565217 4350.79261672096 21.4437869822485 17.7215189873418 0 0 640.02026295437 633.549270072993 626.57022556391 31.9917293233083 32.7766423357664 29.245939675174 686.9 27 688.7 34 663.4 29 682.6 25 687.5 36 657.9 26 669.9 22 677.1 38 650.6 29 673.9 34 664.9 34 651.3 36 657.5 28 655.3 33 642.3 34 643.2 30 640.4 33 630.6 33 634.7 32 619.8 24 623.9 34 624.9 38 608.9 34 619.4 42 585.6 24 580 32 580.9 25 565.4 33 553.5 31 573.2 32 +5171464 SUTTER YUBA CITY UNIFIED 49.2564175428626 13.2831159287158 2.93955539224692 25.5282013595444 14.1078838174274 15.0974452554745 57777.5580912863 4165.93174719824 23.0617071597506 24.2424242424242 0 25 646.224358074926 636.887817258883 634.064643050297 38.9446998377501 35.8145872294951 34.6318226462747 688.3 28 697.8 44 674.6 39 685.1 27 692.1 40 666.9 34 681.6 32 688.3 50 669.3 47 683.9 44 674.4 43 662.3 47 668.1 39 658.2 35 652.9 46 650.8 38 646.1 39 636.1 39 639.8 36 625.2 28 627.2 37 622.3 35 604.2 30 615.4 39 594.3 32 573.7 27 587.5 31 562.3 32 548.9 28 572.1 31 +5271498 TAHAMA CORNING UNION 49.1590749824807 .876270592358921 1.89274447949527 29.7581493165089 3.59712230215827 13.2433962264151 55372.4604316547 3941.38696109359 20.9110787172012 36.4238410596026 0 0 651.470603813559 639.559671805072 634.103220936084 36.3935581278309 34.4878170064644 35.4078389830508 698.1 37 694.3 40 673 38 684.8 27 689.4 37 662.6 30 681.6 32 684.4 46 665.8 44 680.9 40 670.8 39 654 39 660 31 651 28 642.2 33 651.4 38 641.9 34 635.3 38 639.6 36 626.1 29 620 30 627.9 40 600.6 27 613.7 37 600 36 577.1 29 590.3 33 571 38 557.1 35 581.9 41 +5271571 TEHAMA LOS MOLINOS UNIFIED 51.2931034482759 .142247510668563 .568990042674253 32.2901849217639 2.56410256410257 15.8122222222222 53216.6153846154 5045.57610241821 19.6438356164384 34.2105263157895 0 0 648.061303462322 639.214003944773 634.328427419355 33.5907258064516 31.3510848126233 30.3401221995927 683.6 24 686.5 32 662.8 28 686.3 28 686.2 34 664.4 31 676.2 27 684.1 45 664.6 43 685 44 672.9 42 656.7 41 656.6 28 650.8 28 649.3 41 651.6 39 646 39 627.9 30 636 33 616.8 21 621.6 32 612.7 27 600.8 26 608.5 33 592.2 30 564.2 19 589 32 557.3 26 547.9 26 570.4 28 +5375028 TRINITY MOUNTAIN VALLEY UNIFIED 60.1459854014599 .480769230769231 0 5.12820512820513 5.55555555555556 16.1320512820513 63507.8333333333 6482.46955128205 17.9083094555874 42.4242424242424 0 0 662.37205882353 650.207582938389 644.749373433584 42.4912280701754 42.6255924170616 44.5490196078431 702.5 42 704.1 50 685 50 699.4 41 689.2 37 676.9 43 691.4 41 686.5 48 667.5 46 698.1 57 680.5 50 667.7 53 672.6 43 662.4 40 647.2 39 648.8 36 632.8 26 624.3 27 650 46 628.5 31 629.8 40 643 54 617.7 43 625.2 48 609.7 45 608.3 59 596.6 40 578.2 46 569 46 580.3 40 +5471860 TULARE CUTLER-OROSI JOINT UNIFIED 84.0990371389271 .562851782363978 .241222192441705 90.7263468239078 18.7878787878788 14.2173913043478 58391.1082424242 3952.91040471723 22.7518427518428 8.37004405286344 0 0 625.407986243791 629.289962962963 619.331384383252 25.2493398717465 28.1814814814815 18.533053114253 677.3 19 678.9 24 661.7 27 668.2 14 677 24 648.9 18 663.6 18 673.9 35 650.4 29 661.9 24 667.6 36 649.1 34 648 21 651.6 29 639.9 31 631.9 21 637.1 30 621.6 24 614.4 16 621.7 25 611.2 23 599.6 18 595.7 23 599.2 25 571.2 15 578 30 577.7 23 545.9 19 546.6 25 559.7 19 +5471878 TULARE DINUBA UNION 74.5744216499345 .895583146753511 .244249949114594 80.4600040708325 15.9817351598174 12.970656637 53304.9005022831 3688.74829025036 22.9647513278609 16.4658634538153 0 0 636.254840613932 636.677197488584 626.026167956435 29.743766122098 32.8926940639269 24.8474025974026 682.8 23 686.7 32 663.8 29 671.7 17 681.4 29 651.5 20 668.3 21 676.5 37 653.9 32 671.8 32 666.6 35 647.9 33 652.7 25 657.3 34 643 34 648.6 35 653.2 45 637.7 40 627.9 26 628.1 31 620 30 612.1 26 605.4 31 608.8 33 577.9 19 571.6 24 576.4 22 557.3 27 554.8 32 569.1 27 +5475325 TULARE FARMERSVILLE UNIFIED 92.3344947735192 .933552992861065 .109829763866008 83.0313014827018 17.1052631578947 14.402380952381 61350.2075 3792.45582646897 22.9189189189189 0 0 100 611.61476793249 605.792740046838 600.900717131474 15.8725099601594 16.3692427790788 13.3316455696203 665.2 13 676 23 643.7 15 656.9 14 664.4 25 643.7 23 651.1 16 653.8 24 631.2 19 644 18 641.1 20 630.2 22 622.6 14 621.1 17 612.8 17 609.2 13 605.1 13 597.8 14 592.6 14 577.6 11 586.3 17 558.4 9 544.6 9 559.5 11 530 10 526.7 12 544.8 9 +5471993 TULARE LINDSAY UNIFIED 76.580373269115 1.72117039586919 .057372346528973 83.7636259323006 23.6842105263158 13.2849431818182 58362.7059868421 4115.27855708549 22.6187335092348 27.4285714285714 0 0 640.388823181549 640.34366359447 626.193461762989 26.1938120256859 30.7523041474654 23.0821998817268 685.3 25 684.6 30 663.6 29 672.6 17 682.5 30 650.2 19 669.4 22 678.4 39 655.6 34 664.8 26 655.1 25 637.4 23 645.7 19 645.9 24 631.3 23 633.6 22 634.2 28 621 24 628.3 26 633.3 36 620.6 31 608 24 598.6 25 602.4 28 584.7 24 583.3 34 580.5 25 559.8 30 568 45 570.9 29 +5472256 TULARE VISALIA UNIFIED 44.8332783096732 7.62122822798266 1.95437075803418 43.1351704963611 12.7111111111111 14.4732521602514 58322.98376 4057.25547877995 22.3127332301811 35.9173126614987 3.125 28.125 648.229390179976 640.968154273093 635.425015825517 38.9894688381194 37.4061278812935 35.2702545285107 694.4 34 695.9 41 673.8 39 689.7 32 693.1 41 667.4 34 682.5 32 685.3 46 667 45 684.5 44 667.9 36 660.4 45 668.3 39 660.6 38 653.8 46 656.5 44 651.9 44 640.5 43 638.5 35 629.5 32 626.5 37 619.3 32 603.9 29 611.6 35 590.9 28 581.3 33 588.5 32 564.4 32 557.7 35 575.7 34 +5472272 TULARE WOODLAKE UNION 72.663139329806 1.19250425894378 .298126064735946 79.2589437819421 13.1578947368421 14.8140625 58001.3071929825 4081.73411839864 21.1060329067642 36.1344537815126 0 0 640.209791122715 631.617446270544 627.961022364217 29.2447284345048 25.3400758533502 24.7630548302872 694.1 33 686.9 32 671 36 673.4 18 679.3 26 654.2 22 673.9 25 675.1 36 656.5 35 674.5 34 658.8 28 650.5 35 651.7 24 646.7 25 641.1 32 639.1 27 637.9 31 636.2 39 618.8 19 606.7 14 609.1 21 606.5 22 588.7 18 601.9 27 581.1 22 567.3 21 577.3 23 556 26 538.7 19 562.1 21 +5575184 TUOLUMNE BIG OAK FLAT-GROVELAND UNIFIED 36.7164179104478 .427960057061341 .855920114122682 4.70756062767475 4.65116279069767 13.268085106383 48160.4651162791 4666.56062767475 18.4266666666667 70.2702702702703 0 0 670.61387283237 659.356621880998 649.060931174089 48.2085020242915 47.8541266794626 49.4836223506744 701.6 41 694.6 41 679.9 45 694.7 36 687.4 35 670.5 38 684.2 34 683.5 45 659.2 38 702.6 62 691.7 59 667.1 51 682.2 52 670.3 48 667.7 62 656.5 43 645.5 38 642.1 45 661.6 58 656.3 60 648 59 650.7 61 629.5 54 634 56 619.6 53 597.4 48 597.5 40 610.5 72 587.7 65 593.5 56 +5673759 VENTURA CONEJO VALLEY UNIFIED 12.3270160618018 5.66135375698613 1.48519975160422 14.5311529703995 5.4054054054054 15.7322185061316 62750.2407862408 4265.1333057338 23.810318275154 41.1663807890223 0 0 682.02413435621 677.544326362702 667.723709777441 69.9877351340178 71.6343503599589 66.211486626581 721.7 62 725.9 72 700.8 67 715.4 58 717.1 66 695.7 63 711 60 716.7 77 691.1 68 713.5 72 708 74 689.6 73 702.2 71 699.3 75 682.8 76 684.1 71 688.9 78 671.2 74 670.9 67 666 69 660.3 70 660.1 69 640.4 65 648 69 635.5 66 620.5 69 628.3 68 604.9 67 595 71 610.3 72 +5672454 VENTURA FILLMORE UNIFIED 51.8065433854908 .547195622435021 .437756497948016 76.9083447332421 15.527950310559 15.024043715847 56925.9751552795 3897.07879616963 23.4847501622323 30.6010928961749 0 16.6666666666667 635.765689381933 628.433169996231 624.119392073875 28.9003462870335 26.434602336977 24.655705229794 684.6 25 680.1 26 665.4 30 678.8 22 677 24 653 22 663.3 17 667.6 29 649.8 29 670.7 31 659.4 29 644.4 29 654.5 26 648.5 26 639.9 31 644.6 32 637.2 30 637.1 39 626.9 25 619.8 23 621.2 31 609.2 24 593.1 21 603.7 29 585.1 24 574.7 27 578.9 24 551.2 22 549.7 28 565.3 24 +5673940 VENTURA MOORPARK UNIFIED 23.4552907241536 3.86164745103487 1.81969718016391 29.7819141547437 10.3658536585366 10.2872311827957 54402.9817073171 4155.08362272538 21.6525556600815 21.1409395973154 0 0 661.607069359756 652.657776530039 650.1753724307 56.6239864227796 52.736664795059 51.3782393292683 706.8 47 705.7 52 685.6 51 696 38 697.7 46 674.7 41 697.5 47 700.2 62 681.6 60 698.9 58 686 55 678.8 63 688.9 59 675.7 54 670.8 65 669.6 57 661.3 54 657.2 61 661.2 57 651.1 54 648.9 59 642.9 54 624.6 49 634.8 57 611.6 45 599.7 50 609.5 51 583.1 49 574.4 52 594.6 55 +5673874 VENTURA OAK PARK UNIFIED 1.24705089315807 6.06629143214509 1.00062539086929 2.34521575984991 4.72972972972973 12.2248502994012 55208.8378378378 4079.32739212008 20.988490182803 74.3421052631579 0 0 682.161725394897 670.000522088354 672.424153225806 76.9189516129032 69.8827309236948 70.796678817335 720.7 61 715.6 63 704.4 70 719.3 62 714.3 64 701.3 68 714.1 63 720.6 80 701.4 77 716.9 74 705.7 72 698.2 80 709.7 78 697.1 74 694.8 85 684.3 72 691.1 80 673.3 76 680.2 74 665.5 69 676.5 82 667.3 75 640.4 65 658.8 77 643.5 72 611.4 61 636.6 75 608.3 71 594.6 71 615.4 76 +5672520 VENTURA OJAI UNIFIED 23.2817037754114 1.36625119846596 .862895493767977 18.6481303930968 8.15217391304348 14.221359223301 56808.0108695652 3825.93600191755 22.8771733034212 35.546875 0 0 671.676079734219 660.902526246719 656.370046388337 58.2614314115308 55.6719160104987 55.8066445182724 705.2 45 707.1 54 682.6 48 706 48 708.6 58 682.5 50 697.6 47 699.6 62 674.6 53 708.4 67 696 65 684.8 69 691.6 61 680 58 671.2 65 678 66 670.2 62 663 67 663.6 59 645.4 48 653 63 649.3 60 626.3 51 637.7 59 617.1 50 598.3 49 609.8 51 583.4 49 570.5 48 591.1 51 +5672603 VENTURA SIMI VALLEY UNIFIED 15.6815375530144 5.52216571634047 1.67462885909488 17.4397698669543 6.91747572815534 15.0002183406114 57203.5497572816 3831.57374017568 23.2098614007114 37.6871880199667 0 0 667.169897138059 658.573027866352 653.045612437846 57.1392254359549 55.2870511576321 54.030788608215 710 50 711.9 58 689.4 55 704.6 47 703.9 53 682.6 50 700.5 50 701.6 63 682.9 61 698.4 58 684.7 54 672.7 58 688.3 58 676.4 54 668.2 62 672.3 60 671.6 63 656.4 60 660.6 57 652.1 55 650.4 61 645.7 57 627.6 52 634.7 57 621.8 55 602.4 53 613.9 55 583 49 571.4 49 592.4 53 +5672652 VENTURA VENTURA UNIFIED 38.1582125603865 2.90551227227462 2.35487083357741 33.4426805693867 9.94397759103642 15.3525516403402 56413.6120448179 3699.07023607287 24.8511202830189 34.3634116192831 0 22.2222222222222 663.126722987995 651.066852966466 648.690125295716 52.2804696398843 47.5606190885641 48.7767007558915 703.4 43 700.9 47 686.5 52 697.3 39 695.5 44 676.8 44 692.4 42 690.8 52 678.5 57 695.3 55 678.2 47 669.1 54 684.7 55 672.1 50 664.8 59 665.4 53 659.6 52 648.9 52 655.2 51 645.7 49 644.6 55 642.1 53 618.1 43 630.4 53 611.9 46 594 45 602.3 44 584.7 50 568.5 46 591.7 52 +5772678 YOLO DAVIS JOINT UNIFIED 17.8988326848249 10.4909560723514 3.37209302325581 12.7002583979328 14.9289099526066 14.4376582278481 49783.3127962085 4254.71718346253 20.062860136197 46.4203233256351 0 0 688.106229626947 680.838578317557 668.965033207683 71.1364207503141 74.2502232541525 71.5622962694676 722.8 64 728.6 74 697.7 64 718.2 61 724 71 693.5 61 718.6 67 728.8 84 697.9 74 714.9 73 711.8 77 691.7 74 703.3 72 700.2 76 684.8 77 695.3 81 698.3 84 673.2 76 683.6 77 671 74 668.6 76 672 78 645.7 69 651.3 71 644.8 73 617 66 629.9 69 605.7 68 589.9 67 605.1 67 +5772686 YOLO ESPARTO UNIFIED 49.235807860262 .779510022271715 1.67037861915368 43.7639198218263 4.16666666666666 11.3609090909091 50433.1666666667 5039.20267260579 19.5454545454545 27.0833333333333 0 0 640.121894409938 635.382379518072 625.547792998478 29.2648401826484 31.7394578313253 27.9472049689441 682.3 22 686.1 33 660.8 26 673.4 18 680.4 30 653.2 22 673.8 26 678.4 39 660 39 682.5 43 662 32 650.9 35 651.3 24 650.8 29 635.1 27 652.2 39 649.3 43 641.5 45 626.1 25 621.4 25 616.5 27 616.3 31 605.2 33 608.1 33 597.5 36 576.4 31 579.2 25 549.2 24 545.9 28 558.2 20 +5772694 YOLO WASHINGTON UNIFIED 62.2396784800877 13.8208597362562 3.95615687617743 32.1287891762288 15.884476534296 13.2708860759494 52881.3321299639 4324.17365987327 20.9871086556169 8 0 18.1818181818182 639.1435538262 633.124164397128 627.616834677419 32.3477822580645 31.2792770487745 27.7229571984436 686.6 26 693.3 38 668.6 33 682.4 25 688 35 661.6 29 675.2 26 677.4 38 661.5 40 676.5 36 665.4 34 652.1 37 659.5 30 653.6 31 642.7 34 638.4 26 637.7 30 627 29 626.6 24 620.5 24 620.8 31 615.3 29 600.1 26 609.9 34 589.8 27 578.6 30 585.5 29 559.5 29 552.1 30 570.2 28 +5772702 YOLO WINTERS JOINT UNIFIED 46.1618798955614 1.15057528764382 .80040020010005 45.6228114057029 13.3333333333333 11.8071428571429 48426.1523809524 3945.06903451726 19.8582995951417 53.7735849056604 0 0 650.807236842105 640.076315789474 634.960070175439 36.5312280701754 33.7548476454294 34.6834795321637 695.8 35 691.8 38 675.6 41 685.7 28 686.8 34 670.5 38 678.4 29 680.1 41 667.9 46 681.1 41 663.3 32 654.5 39 665.3 35 656.4 34 644.3 36 655 41 644.5 37 640.7 44 633.9 30 619.1 23 615.4 26 636.7 48 609.7 35 614.2 38 596.1 32 580.5 32 587.4 30 558.1 27 553 30 565.9 24 +5772710 YOLO WOODLAND JOINT UNIFIED 43.4143080008915 3.64856364017614 1.54120360662613 46.3199832249948 21.3776722090261 14.4046843177189 53796.1638954869 3845.48081358775 22.7088422081094 29.8924731182796 0 6.66666666666667 650.685780525502 642.281801889866 636.105199735887 41.0627269725982 40.8595633756924 38.3171904516572 694.7 34 701.1 47 674.4 39 689.2 31 696.2 44 668.7 36 687.9 37 692.5 54 671.3 49 681.7 41 670.2 39 658.5 43 669.1 39 660.8 38 653.4 46 655.4 42 650.2 43 641.4 44 646.4 43 634.6 37 630.8 41 629.1 41 609.4 34 617.7 41 598.3 34 585.6 37 591 34 572.1 39 562.9 40 578.3 37 +5872736 YUBA MARYSVILLE JOINT UNIFIED 70.6210416863598 20.4617205998422 2.98934490923441 17.423046566693 11.0328638497653 16.5641975308642 61705.6596244131 3970.9843133386 24.8864711447493 15.1428571428571 0 13.6363636363636 639.085190097259 631.172371396269 625.858513396716 30.7783059636992 30.1215375918598 28.466254052461 688.6 28 687.9 33 670.3 35 686.7 29 687.6 35 664 31 677.4 28 681.1 42 661.6 40 675.9 36 664.5 33 649.7 34 656.3 28 652.6 30 639.9 31 643.3 30 637.8 31 629.2 31 632.7 30 626.6 29 621.8 32 614.9 29 599.6 26 605.9 30 585.8 24 571.1 24 581.3 26 551.9 23 541.5 21 561.5 20 +5872751 YUBA WHEATLAND UNION 77.7482740308019 5.99889928453495 9.57622454595487 11.1172261970281 7.8740157480315 16.9187050359712 65099.5669291339 6913.39680792515 20.0325203252033 23.5294117647059 0 0 663.065659500291 648.575580736544 645.966781214204 52.1821305841924 48.9008498583569 52.2887855897734 706.7 46 699 46 683.1 49 701 43 703.5 53 678.3 45 694.1 43 699.9 62 676.9 55 694.7 54 676.2 45 666.7 52 690.7 61 675.3 53 671.1 66 669.9 57 664.4 57 651.2 55 655.3 51 643.6 47 638.3 48 647 58 619.6 44 632.6 55 619.2 52 590.2 41 603.9 46 587.6 53 566.7 44 589.2 50 diff --git a/statsmodels/datasets/star98/src/star98.names b/statsmodels/datasets/star98/src/star98.names new file mode 100644 index 0000000..5b26cb4 --- /dev/null +++ b/statsmodels/datasets/star98/src/star98.names @@ -0,0 +1,205 @@ + +18 variables and 303 cases + +Variable: CDS_CODE Type: Numeric + County District Code + +Variable: COUNTY Type: String + +Variable: DISTRICT Type: String + +Variable: LOWINC Type: Numeric + Percent Low Income Students + This variable is the sum of students + eligible for free or reduced lunch + programs divided by the sum of + students multiplied by 100. The + district level percentages were + aggregated from school level data + Source: The National Center for + Educational Statistics (NECS) + Common Core of Data site, + "http://nces.ed.gov/ccd/index.html" + +Variable: PERASIAN Type: Numeric + Percent Asian Students + This variable is the number of + Asian Students divided by the + the total number of students, + multiplied by 100. + Source: The California Department + of Education Educational Demographics + Unit site, file "ethdst97.exe" at + "http://www.cde.ca.gov/ftpbranch/retdiv/demo/newcbeds/" + +Variable: PERBLACK Type: Numeric + Percent Black Students + This variable is the number of + Black Students divided by the + the total number of students, + multiplied by 100. + Source: The California Department + of Education Educational Demographics + Unit site, file "ethdst97.exe" at + "http://www.cde.ca.gov/ftpbranch/retdiv/demo/newcbeds/" + +Variable: PERHISP Type: Numeric + Percent Hispanic Students + This variable is the number of + Hispanic Students divided by the + the total number of students, + multiplied by 100. + Source: The California Department + of Education Educational Demographics + Unit site, file "ethdst97.exe" at + "http://www.cde.ca.gov/ftpbranch/retdiv/demo/newcbeds/" + +Variable: PERMINTE Type: Numeric + Percent Minority Teachers + This variable is the number of + minority (American Indians, Asians, + Pacific Islanders, Filipinos, Hispanics + And Blacks) teachers divided by the + total number of teachers, then + multiplied by 100. + Source: The California Department + of Education Educational Demographics + Unit site, file "teaeth96.exe" at + "http://www.cde.ca.gov/ftpbranch/retdiv/demo/newcbeds/" + +Variable: AVYRSEXP Type: Numeric + Teachers' Experience + This variable is the sum of years in + educational service divided by the + sum of teachers. The district level + averages were aggregated from school + level data. + Source: The California Department + of Education Educational Demographics + Unit site, file "prcert96.exe" at + "http://www.cde.ca.gov/ftpbranch/retdiv/demo/newcbeds/" + +Variable: PTRATIO Type: Numeric + Class Size + This variable is enrollment divided + By full-time equivalent teachers. + Source: The California Department + of Education Educational Demographics + Unit site, file "cbeds96.exe" at + "http://www.cde.ca.gov/ftpbranch/retdiv/demo/newcbeds/" + +Variable: AVSAL Type: Numeric + Teacher Salary + This variable is the total salary budget, + including benefits, divided the number of + full-time teachers. + Source: School Business Services Division + http://www.cde.ca.gov/ftpbranch/sbsdiv/ +Variable: PERPSPEN Type: Numeric + Per-pupil Spending + This variable is the total spending + divided by total number of students. + Source: School Business Services Division + "http://www.cde.ca.gov/ftpbranch/sbsdiv/" + +Variable: PCT_AF Type: Numeric + Percent Students Taking UC/CSU Prep Courses + This variable is the percentage + of students taking courses that + meet University of California and + California State University entry + requirements. + Source: The California Department + of Education Educational Demographics + Unit site, file "cbeds96.exe" at + "http://www.cde.ca.gov/ftpbranch/retdiv/demo/newcbeds/" + +Variable: PCTCHRT Type: Numeric + Percent Charter Schools + Source: The California Department + of Education Educational Demographics + Unit site, file "schlname.exe" at + "http://www.cde.ca.gov/ftpbranch/retdiv/demo/newcbeds/" + +Variable: PCTYRRND Type: Numeric + Percent Year-round Schools + Source: The California Department + of Education Educational Demographics + Unit site, file "schlname.exe" at + "http://www.cde.ca.gov/ftpbranch/retdiv/demo/newcbeds/" + +Variable: LANGUAGE Type: Numeric + Mean Language Score, Grades 2-11 + This variable is the sum score for + each grade(mean * test takers) + divided by the sum of test takers + for all grades. + Source: The State of California + Standardized Testing and Reporting + site, "http://star.cde.ca.gov/index_index.html" + +Variable: MATH Type: Numeric + Mean Math Score, Grades 2-11 + This variable is the sum score for + each grade(mean * test takers) + divided by the sum of test takers + for all grades. + Source: The State of California + Standardized Testing and Reporting + site, "http://star.cde.ca.gov/index_index.html" + +Variable: READ Type: Numeric + Mean Reading Score, Grades 2-11 + This variable is the sum score for + each grade(mean * test takers) + divided by the sum of test takers + for all grades. + Source: The State of California + Standardized Testing and Reporting + site, "http://star.cde.ca.gov/index_index.html" + +Variable: LANGNCE Type: Numeric + National Percentile Rank, Language + National Percentile Rank is based on the mean + NCE score for each district. + +Variable: MATHNCE Type: Numeric + National Percentile Rank, Language + National Percentile Rank is based on the mean + NCE score for each district. + +Variable: READNCE Type: Numeric + National Percentile Rank, Language + National Percentile Rank is based on the mean + NCE score for each district. + +Variables: READM(2-11) + Mean reading score for individual grades. + The grades are the number at the end + of each variable name. + +Variables: MATHM(2-11) + Mean math score for individual grades. + The grades are the number at the end + of each variable name. + +Variables: LANGM(2-11) + Mean language score for individual grades. + The grades are the number at the end + of each variable name. + +Variables: READNCE(2-11) + NCE percentile ranking for individual grades. + The grades are the number at the end + of each variable name. + +Variables: MATHCE(2-11) + NCE percentile ranking for individual grades. + The grades are the number at the end + of each variable name. + +Variables: LANGNCE(2-11) + NCE percentile ranking for individual grades. + The grades are the number at the end + of each variable name. + diff --git a/statsmodels/datasets/star98/star98.csv b/statsmodels/datasets/star98/star98.csv new file mode 100644 index 0000000..7d8d7ea --- /dev/null +++ b/statsmodels/datasets/star98/star98.csv @@ -0,0 +1,304 @@ +"MATHTOT","PR50M","LOWINC","PERASIAN","PERBLACK","PERHISP","PERMINTE","AVYRSEXP","AVSALK","PERSPENK","PTRATIO","PCTAF","PCTCHRT","PCTYRRND","PERMINTE_AVYRSEXP","PERMINTE_AVSAL","AVYRSEXP_AVSAL","PERSPEN_PTRATIO","PERSPEN_PCTAF","PTRATIO_PCTAF","PERMINTE_AVYRSEXP_AVSAL","PERSPEN_PTRATIO_PCTAF" +807.000000,452.000000,34.397300,23.299300,14.235280,11.411120,15.918370,14.706460,59.15732,4.445207,21.710250,57.032760,0.000000,22.222220,234.102872,941.68811,869.9948,96.50656,253.52242,1238.1955,13848.8985,5504.0352 +184.000000,144.000000,17.365070,29.328380,8.234897,9.314884,13.636360,16.083240,59.50397,5.267598,20.442780,64.622640,0.000000,0.000000,219.316851,811.41756,957.0166,107.68435,340.40609,1321.0664,13050.2233,6958.8468 +571.000000,337.000000,32.643240,9.226386,42.406310,13.543720,28.834360,14.595590,60.56992,5.482922,18.954190,53.941910,0.000000,0.000000,420.854496,1746.49488,884.0537,103.92435,295.75929,1022.4252,25491.1232,5605.8777 +573.000000,395.000000,11.909530,13.883090,3.796973,11.443110,11.111110,14.389390,58.33411,4.165093,21.635390,49.061030,0.000000,7.142857,159.882095,648.15671,839.3923,90.11341,204.34375,1061.4545,9326.5797,4421.0568 +65.000000,8.000000,36.888890,12.187500,76.875000,7.604167,43.589740,13.905680,63.15364,4.324902,18.779840,52.380950,0.000000,0.000000,606.144976,2752.85075,878.1943,81.22097,226.54248,983.7059,38280.2616,4254.4314 +2247.000000,1348.000000,20.931490,28.023510,4.643221,13.808160,15.378490,14.977550,66.97055,3.916104,24.519140,44.915780,0.000000,2.380952,230.332103,1029.90593,1003.0548,96.01950,175.89487,1101.2963,15425.4676,4312.7908 +1364.000000,477.000000,53.268980,8.447858,19.374830,37.905330,25.525530,14.678290,57.62195,4.270903,22.212780,32.289160,0.000000,12.121210,374.671132,1470.83081,845.7917,94.86863,137.90387,717.2320,21589.2812,3063.2283 +912.000000,565.000000,15.190090,3.665781,2.649680,13.092070,6.203008,13.661970,63.44740,4.309734,24.590260,30.452670,0.000000,0.000000,84.745309,393.56473,866.8165,105.97748,131.24291,748.8391,5376.8695,3227.2972 +525.000000,205.000000,28.215820,10.430420,6.786374,32.334300,13.461540,16.417600,57.84564,4.527603,21.741380,22.645740,0.000000,0.000000,221.006179,778.69140,949.6866,98.43634,102.53092,492.3496,12784.2439,2229.1637 +1067.000000,469.000000,32.778970,17.178310,12.484930,28.323290,27.259890,12.518640,57.80141,4.648917,20.260100,26.070990,0.000000,0.000000,341.256749,1575.66008,723.5950,94.18752,121.20187,528.2009,19725.1213,2455.5620 +3016.000000,784.000000,59.972930,17.517360,50.940930,23.101340,52.343440,16.932830,57.43444,4.693069,21.314890,19.532160,3.296703,13.186810,886.322571,3006.31616,972.5276,100.03225,91.66577,416.3258,50905.4405,1953.8459 +235.000000,209.000000,0.000000,19.748860,1.864536,2.587519,7.407407,15.869790,52.19346,5.248693,18.511820,80.379750,0.000000,0.000000,117.553994,386.61820,828.2992,97.16286,421.88863,1487.9755,6135.5497,7809.9264 +556.000000,195.000000,28.121110,12.692010,19.265820,26.841970,13.372090,14.428640,57.24045,3.980589,21.898440,31.658290,0.000000,9.090909,192.941073,765.42445,825.9018,87.16869,126.01864,693.2672,11044.0338,2759.6116 +688.000000,206.000000,36.990470,10.032360,15.423020,30.744340,13.507630,13.297530,58.41374,4.197615,23.129430,31.150790,0.000000,0.000000,179.618115,789.03119,776.7585,97.08844,130.75902,720.5000,10492.1659,3024.3817 +252.000000,136.000000,12.927960,7.172996,4.825949,13.238400,6.185567,17.471080,65.57086,5.382009,20.683330,34.831460,0.000000,0.000000,108.068536,405.59295,1145.5937,111.31787,187.46323,720.4306,7086.1468,3877.3639 +925.000000,694.000000,4.700895,8.736718,1.745657,6.932029,7.127883,16.181760,67.36755,4.607673,24.651060,39.634150,0.000000,0.000000,115.341692,480.18801,1090.1255,113.58402,182.62120,977.0238,7770.2872,4501.8062 +377.000000,204.000000,20.259790,0.485745,0.802534,5.976769,2.439024,15.309490,51.31163,4.025593,24.822920,36.194030,0.000000,91.666670,37.340214,125.15030,785.5549,99.92697,145.70243,898.4415,1915.9872,3616.7599 +69.000000,31.000000,42.668270,2.836879,0.945627,23.877070,10.638300,11.839620,55.99032,5.151626,17.912090,24.444440,0.000000,0.000000,125.953429,595.64182,662.9041,92.27639,125.92861,437.8510,7052.1728,2255.6446 +1092.000000,601.000000,33.129230,6.305412,2.766154,12.866160,6.172840,14.601440,58.55860,4.004401,22.730080,49.655170,4.347826,26.086960,90.132353,361.47287,855.0399,91.02036,198.83921,1128.6660,5278.0244,4519.6312 +115.000000,64.000000,29.392970,1.071155,0.765111,9.716909,4.477612,14.045270,53.77230,4.518034,21.185060,51.020410,0.000000,0.000000,62.889269,240.77150,755.2465,95.71482,230.51195,1080.8704,3381.7007,4883.4094 +139.000000,51.000000,52.993130,6.217371,0.332226,38.728050,7.619048,14.173950,50.69512,4.114065,20.411360,23.275860,0.000000,0.000000,107.992005,386.24855,718.5501,83.97366,95.75840,475.0920,5474.6677,1954.5592 +449.000000,220.000000,35.088360,0.829217,0.388144,4.622442,4.135338,14.302210,55.27874,4.148228,21.919470,25.000000,23.076920,15.384620,59.144472,228.59627,790.6081,90.92696,103.70570,547.9868,3269.4319,2273.1740 +309.000000,151.000000,37.204410,0.569948,1.113990,6.321244,5.357143,13.602470,50.66849,3.975448,24.869180,22.978720,0.000000,8.333333,72.870377,271.43835,689.2166,98.86613,91.35071,571.4619,3692.2320,2271.8172 +116.000000,36.000000,54.268290,0.549786,0.549786,40.745270,7.407407,14.871050,52.53700,4.205362,19.445110,36.283190,0.000000,0.000000,110.155920,389.16294,781.2804,81.77373,152.58395,705.5306,5787.2616,2967.0117 +81.000000,15.000000,65.823970,0.264085,3.873239,58.890850,6.557377,10.926520,46.29179,4.469798,19.525480,37.931030,0.000000,0.000000,71.649311,303.55272,505.8082,87.27495,169.54404,740.6216,3316.7749,3310.4288 +66.000000,5.000000,78.540770,1.282051,0.000000,78.418800,20.833330,11.477880,49.26719,3.893337,21.123110,19.230770,0.000000,0.000000,239.122462,1026.39963,565.4829,82.23939,74.87187,406.2137,11780.8918,1581.5267 +1259.000000,541.000000,30.075530,3.626196,10.503860,20.944310,8.665750,13.691080,62.34120,4.011390,23.889050,23.854450,0.000000,72.222220,118.643477,540.23325,853.5184,95.82830,95.68950,569.8601,7396.3767,2285.9313 +190.000000,86.000000,28.246010,6.893424,19.818590,16.780050,12.745100,15.915550,59.17653,4.225738,22.183790,18.000000,0.000000,0.000000,202.845276,754.21079,941.8270,93.74288,76.06328,399.3082,12003.6796,1687.3719 +322.000000,142.000000,22.333750,2.523732,3.310952,14.031030,10.309280,16.156860,59.23072,4.114418,21.743320,34.426230,0.000000,0.000000,166.565594,610.62608,956.9825,89.46111,141.64390,748.5405,9865.8000,3079.8087 +2394.000000,1365.000000,22.624650,7.697888,4.902207,16.776880,9.421586,15.323680,57.12858,3.928696,22.141620,37.638380,0.000000,0.000000,144.373369,538.24183,875.4201,86.98769,147.86975,833.3747,8247.8456,3274.0759 +648.000000,201.000000,51.784930,4.598930,27.796790,35.101600,30.024810,15.974890,58.78893,4.049181,22.873000,85.111660,0.000000,8.333333,479.643037,1765.12645,939.1467,92.61692,344.63252,1946.7590,28197.7009,7882.7796 +1949.000000,585.000000,51.238480,13.020240,35.101180,25.527030,25.826880,17.189770,62.66410,4.347936,22.870500,36.500000,0.000000,8.474576,443.958127,1618.41819,1077.1815,99.43947,158.69966,834.7733,27820.2365,3629.5407 +1417.000000,1247.000000,1.895322,9.925228,1.633719,4.276349,4.503464,15.923690,59.97694,4.035189,23.346870,50.745030,0.000000,0.000000,71.711765,270.10399,955.0542,94.20903,204.76579,1184.7376,4301.0522,4780.6402 +403.000000,165.000000,42.511430,6.252442,0.410317,10.179760,8.076923,14.709480,58.23381,4.733280,20.673640,15.503880,0.000000,0.000000,118.807337,470.35000,856.5891,97.85413,73.38421,320.5216,6918.6039,1517.1186 +329.000000,135.000000,45.423440,1.501194,0.904128,26.270900,5.338078,14.357030,55.74014,4.323754,21.534580,86.722000,0.000000,0.000000,76.638946,297.54522,800.2629,93.11023,374.96459,1867.5218,4271.8656,8074.7051 +193.000000,106.000000,30.169650,0.797373,0.515948,2.251407,1.904762,14.232330,51.82237,4.030978,21.472950,32.456140,0.000000,0.000000,27.109201,98.70928,737.5531,86.55699,130.82999,696.9291,1404.8631,2809.3058 +2267.000000,1496.000000,23.433370,11.750650,2.871447,19.031010,15.944160,11.878900,53.15807,4.242702,22.705170,40.506330,0.000000,0.000000,189.399082,847.56077,631.4594,96.33127,171.85629,919.7031,10068.0897,3902.0262 +272.000000,68.000000,57.922400,0.871731,0.647572,68.742220,18.934910,11.197870,61.08544,4.258425,24.478600,14.835160,0.000000,0.000000,212.030661,1156.64731,684.0268,104.24028,63.17442,363.1439,12951.9862,1546.4213 +144.000000,55.000000,60.599080,7.196613,0.846660,72.342430,24.761900,11.836320,51.53734,3.807790,21.070040,38.793100,0.000000,0.000000,293.089772,1276.16246,610.0124,80.23029,147.71598,817.3722,15105.0672,3112.3816 +5018.000000,1455.000000,62.019770,19.651770,11.315660,45.239620,23.404850,14.679960,61.09530,4.685643,22.259730,27.475590,0.000000,31.111110,343.582262,1429.92633,896.8766,104.30115,128.74081,611.5992,20991.2614,2865.7356 +196.000000,84.000000,35.603390,2.518757,0.375134,67.738480,7.913669,15.345160,54.70222,6.836694,21.144350,41.578950,71.428570,0.000000,121.436517,432.89526,839.4143,144.55745,284.26256,879.1599,6642.8471,6010.5470 +617.000000,136.000000,63.171320,1.406250,0.600962,71.358170,16.791980,14.461490,55.18478,4.478657,22.256520,16.786570,0.000000,6.250000,242.837051,926.66172,798.0541,99.67932,75.18129,373.6106,13400.9092,1673.2739 +64.000000,6.000000,72.916670,1.238739,0.563063,70.045050,3.921569,11.557630,39.72835,3.899132,18.236510,13.043480,0.000000,0.000000,45.324044,155.79747,459.1656,71.10656,50.85825,237.8676,1800.6495,927.4770 +189.000000,21.000000,91.604840,0.214362,0.107181,98.821000,62.184870,11.927540,55.52729,4.223126,21.686540,13.385830,0.000000,40.000000,741.712524,3452.95731,662.3040,91.58499,56.53005,290.2923,41185.2864,1225.9411 +552.000000,132.000000,57.002490,4.322917,0.585938,70.664060,23.480660,14.004430,52.15526,4.382061,21.711530,23.023260,0.000000,0.000000,328.833259,1224.63993,730.4047,95.14125,100.88933,499.8702,17150.3841,2190.4617 +290.000000,78.000000,69.645200,3.972303,1.020408,76.712830,27.600000,13.011880,53.53164,4.180037,22.501030,14.691940,0.000000,0.000000,359.127888,1477.47326,696.5473,94.05514,61.41285,330.5838,19224.7048,1381.8524 +146.000000,16.000000,87.837180,0.405405,1.216216,90.450450,32.407410,10.375610,51.40056,4.317728,20.490570,30.851060,0.000000,0.000000,336.246647,1665.75902,533.3122,88.47271,133.20649,632.1558,17283.2660,2729.4768 +585.000000,211.000000,49.250840,10.152990,7.874184,42.323740,16.539440,10.080900,54.56874,4.006118,22.591740,37.666670,0.000000,76.923080,166.732441,902.53640,550.1020,90.50518,150.89712,850.9556,9098.3792,3409.0286 +274.000000,82.000000,69.498070,5.350028,0.313034,70.432560,22.641510,12.323140,54.54601,4.283101,22.154240,40.000000,0.000000,60.000000,279.014498,1235.00403,672.1781,94.88885,171.32404,886.1696,15219.1276,3795.5539 +155.000000,16.000000,87.777250,0.533463,0.581959,97.769160,40.000000,12.207530,60.30318,3.933777,25.637500,47.169810,0.000000,0.000000,488.301200,2412.12720,736.1529,100.85221,185.55551,1209.3160,29446.1152,4757.1795 +144.000000,35.000000,86.545990,1.713710,0.201613,92.237900,26.086960,14.580660,62.75826,5.242800,21.721130,19.178080,0.000000,0.000000,380.365094,1637.17222,915.0569,113.87954,100.54684,416.5696,23871.0515,2183.9909 +143.000000,90.000000,21.604680,0.540541,0.291060,7.484407,1.526718,17.112420,62.52282,5.879966,19.485120,26.373630,0.000000,0.000000,26.125840,95.45471,1069.9168,114.57184,155.07605,513.8933,1633.4612,3021.6754 +67.000000,23.000000,64.850750,0.667111,3.068712,64.509670,14.925370,11.369180,47.73257,3.511900,21.488720,10.666670,0.000000,0.000000,169.689218,712.42627,542.6802,75.46624,37.46028,229.2131,8099.7025,804.9734 +138.000000,76.000000,53.125000,21.752270,0.906344,20.745220,4.651163,15.736080,60.02066,4.325154,24.481130,47.115380,0.000000,0.000000,73.191073,279.16587,944.4899,105.88466,203.78127,1153.4377,4392.9765,4988.7959 +183.000000,73.000000,44.974660,1.348412,0.826446,33.188340,5.932203,16.253280,55.65380,4.602903,20.855380,49.193550,0.000000,0.000000,96.417756,330.14964,904.5568,95.99529,226.43314,1025.9502,5366.0145,4722.3492 +88.000000,38.000000,76.321210,0.000000,0.655977,2.842566,30.000000,14.785540,65.66547,5.770566,19.649640,25.925930,0.000000,0.000000,443.566200,1969.96410,970.8994,113.38954,149.60729,509.4352,29126.9830,2939.7294 +109.000000,23.000000,33.916720,0.714750,1.169591,2.988954,0.000000,15.792610,56.05594,4.427872,21.315440,44.705880,0.000000,0.000000,0.000000,0.00000,885.2696,94.38204,197.95191,952.9255,0.0000,4219.4322 +59.000000,40.000000,11.716170,0.500000,0.000000,4.666667,0.000000,15.512200,54.64567,4.893857,20.321540,34.146340,0.000000,0.000000,0.000000,0.00000,847.6746,99.45071,167.10731,693.9062,0.0000,3395.8778 +373.000000,67.000000,54.256670,0.518807,0.277932,80.211230,35.042740,14.956510,66.53025,4.304715,23.780750,33.898310,0.000000,0.000000,524.117091,2331.40225,995.0603,102.36935,145.92256,806.1272,34869.6411,3470.1480 +506.000000,91.000000,43.954820,1.432902,0.055112,97.519980,70.099670,14.587750,67.37006,4.266618,23.571910,15.825690,0.000000,0.000000,1022.596461,4722.61897,982.7776,100.57234,67.52217,373.0417,68892.3849,1591.6266 +98.000000,36.000000,74.301680,0.421941,5.555556,71.589310,40.579710,12.217090,53.51974,4.518243,20.625000,29.411760,0.000000,0.000000,495.765969,2171.81553,653.8555,93.18876,132.88948,606.6176,26533.2658,2740.8455 +578.000000,133.000000,62.100080,1.554243,2.942700,82.644290,33.412890,15.206300,66.12509,4.453164,23.321390,31.302880,0.000000,0.000000,508.086429,2209.43036,1005.5180,103.85397,139.39686,730.0267,33597.2609,3250.9285 +162.000000,19.000000,63.918040,0.399003,0.149626,70.473820,26.881720,11.607010,56.62257,4.245811,21.685140,32.142860,0.000000,0.000000,312.016393,1522.11207,657.2187,92.07101,136.47251,697.0224,17667.1700,2959.4255 +179.000000,75.000000,39.944520,0.749229,2.688409,60.775670,24.528300,9.224783,51.16703,3.708859,20.856870,34.920630,0.000000,0.000000,226.268245,1255.04026,472.0047,77.35519,129.51569,728.3350,11577.4741,2701.2920 +50.000000,4.000000,76.827900,0.000000,3.005780,31.098270,20.408160,15.318520,60.14108,5.355161,18.991770,19.354840,0.000000,0.000000,312.622807,1227.36878,921.2723,101.70399,103.64828,367.5827,18801.4733,1968.4644 +170.000000,126.000000,25.588490,0.762389,0.508259,11.012280,5.454545,16.509920,59.80555,4.349222,23.450350,40.718560,0.000000,0.000000,90.054102,326.21206,987.3848,101.99078,177.09406,954.8645,5385.7351,4152.9176 +550.000000,104.000000,68.643430,0.780814,1.728946,76.887900,31.818180,12.211630,58.86169,3.714920,25.990960,14.035090,0.000000,0.000000,388.551841,1872.87185,718.7972,96.55434,52.13924,364.7855,22870.8180,1355.1488 +187.000000,45.000000,40.599000,1.107011,14.870850,24.538750,7.627119,15.244270,63.04220,4.572615,24.419980,32.484080,0.000000,37.500000,116.269861,480.83036,961.0323,111.66317,148.53719,793.2606,7329.9079,3627.2752 +167.000000,75.000000,31.860470,2.014723,12.437040,7.477722,9.848485,15.326670,63.49800,5.767594,20.307220,32.800000,0.000000,0.000000,150.944480,625.35910,973.2129,117.12380,189.17708,666.0768,9584.6726,3841.6606 +219.000000,68.000000,49.351030,1.697439,8.219178,31.983320,9.459460,13.084260,58.15920,4.284445,23.427000,15.492960,0.000000,33.333330,123.770034,550.15463,760.9701,100.37169,66.37874,362.9536,7198.3662,1555.0546 +193.000000,58.000000,51.462370,0.361248,0.755337,17.766830,2.739726,14.436970,62.63310,5.763701,21.056580,17.791410,0.000000,0.000000,39.553342,171.59753,904.2322,121.36383,102.54437,374.6262,2477.3484,2159.2337 +324.000000,156.000000,24.995040,0.420420,2.722723,17.397400,4.524887,14.790000,60.45509,4.308128,22.871650,29.729730,0.000000,0.000000,66.923079,273.55245,894.1308,98.53400,128.07948,679.9680,4045.8407,2929.3891 +255.000000,43.000000,65.890270,0.471815,4.395332,78.917310,21.100920,14.932690,61.80390,4.139937,24.511740,14.015150,0.000000,0.000000,315.093497,1304.11915,922.8985,101.47706,58.02184,343.5357,19474.0070,1422.2162 +463.000000,208.000000,32.598730,2.233486,4.799620,10.898150,5.629139,14.351020,62.45315,4.537569,22.041570,38.662790,0.000000,0.000000,80.783886,351.55746,896.2664,100.01514,175.43508,852.1886,5045.2082,3866.8645 +200.000000,18.000000,81.964570,0.311527,0.233645,92.017130,31.896550,13.132460,55.36986,4.428046,22.508560,23.684210,0.000000,0.000000,418.880167,1766.10751,727.1425,99.66894,104.87477,533.0975,23193.3362,2360.5801 +91.000000,47.000000,37.832020,0.358423,0.860215,13.691760,8.333333,10.381430,55.94207,4.098994,24.921740,0.000000,0.000000,0.000000,86.511913,466.18390,580.7587,102.15406,0.00000,0.0000,4839.6555,0.0000 +197.000000,45.000000,64.279180,0.463822,4.050711,79.375390,17.361110,15.315450,66.40420,4.605861,22.676350,15.584420,0.000000,0.000000,265.893212,1152.85062,1017.0102,104.44412,71.77967,353.3978,17656.4260,1627.7010 +161.000000,14.000000,86.493620,0.000000,0.734095,89.967370,15.596330,11.060660,57.64157,4.543492,21.752770,26.190480,0.000000,0.000000,172.505703,898.99695,637.5538,98.83354,118.99624,569.7155,9943.4996,2588.4978 +165.000000,91.000000,45.570200,0.954199,1.335878,22.089690,7.207207,14.757810,54.04060,4.832320,20.083330,50.943400,0.000000,0.000000,106.362592,389.48179,797.5209,97.04908,246.17481,1023.1131,5747.8983,4944.0100 +206.000000,52.000000,73.609000,0.829611,5.966816,9.604340,6.329114,13.782500,54.43995,4.354388,20.612900,10.606060,0.000000,100.000000,87.231014,344.55665,750.3186,89.75656,46.18290,218.6217,4748.8520,951.9635 +147.000000,85.000000,46.295230,0.659703,1.869159,15.667950,3.448276,15.131310,58.96214,4.361361,21.417050,28.421050,0.000000,0.000000,52.176933,203.31773,892.1744,93.40749,123.95446,608.6950,3076.4636,2654.7388 +116.000000,77.000000,26.795750,0.723764,0.361882,8.685163,1.204819,11.295160,50.09641,3.932390,19.150490,40.697670,0.000000,0.000000,13.608623,60.35711,565.8470,75.30720,160.03911,779.3803,681.7432,3064.8274 +61.000000,23.000000,52.917090,1.732926,2.854230,8.256880,6.250000,14.987070,59.99540,5.022533,21.899560,37.704920,0.000000,0.000000,93.669188,374.97125,899.1553,109.99126,189.37420,825.7212,5619.7204,4147.2118 +43.000000,8.000000,41.970800,0.000000,0.571429,9.142857,3.030303,17.904290,55.17685,5.259958,18.965520,18.181820,0.000000,0.000000,54.255424,167.20257,987.9023,99.75784,95.63561,344.8277,2993.6434,1813.7791 +1599.000000,879.000000,30.505520,32.465420,10.401410,32.659800,36.004060,15.257560,59.28909,4.219665,22.576790,49.732620,0.000000,3.333333,549.334106,2134.64795,904.6068,95.26649,209.85500,1122.8029,32569.5192,4737.8522 +771.000000,640.000000,8.362214,52.593960,1.213040,9.888444,8.900524,15.982010,64.41547,4.166218,24.274600,60.840110,0.000000,27.272730,142.248264,573.33144,1029.4887,101.13328,253.47316,1476.8693,9162.9888,6152.9596 +800.000000,200.000000,70.738270,0.959561,3.152844,78.941060,25.955730,14.498850,64.61103,4.379243,23.981860,19.424460,0.000000,11.111110,376.328236,1677.02645,936.7856,105.02239,85.06443,465.8347,24314.9549,2040.0033 +1029.000000,268.000000,62.871680,4.723750,1.793829,85.469980,27.212020,15.062110,67.83996,3.819118,27.505420,26.771650,0.000000,0.000000,409.870439,1846.06235,1021.8129,105.04644,102.24409,736.3655,27805.5942,2812.2666 +399.000000,108.000000,79.676600,2.102924,2.102924,89.143440,45.600000,14.399820,62.08461,4.432065,23.559660,20.987650,0.000000,0.000000,656.631792,2831.05822,894.0072,104.41794,93.01863,494.4619,40766.7287,2191.4873 +927.000000,260.000000,49.172150,5.575448,18.158570,38.480090,12.274370,13.042280,58.55052,3.988183,23.885220,17.997290,0.000000,7.142857,160.085770,718.67075,763.6323,95.25863,71.77649,429.8692,9373.1051,1714.3972 +417.000000,346.000000,9.733488,10.939850,3.571429,4.097744,10.819670,18.200000,62.45576,6.015758,17.724690,61.884370,0.000000,0.000000,196.917994,675.75071,1136.6948,106.62745,372.28139,1096.8813,12298.6630,6598.5723 +804.000000,426.000000,25.843950,5.866005,4.823821,27.583130,9.501188,16.892010,62.02176,4.054136,24.114240,51.764710,0.000000,0.000000,160.494163,589.28040,1047.6722,97.76241,209.86117,1248.2666,9954.1304,5060.6427 +992.000000,436.000000,37.679800,5.688124,2.774695,36.958930,13.166670,14.469380,62.40043,4.138196,23.957660,32.429100,0.000000,5.263158,190.513552,821.60587,902.8955,99.14149,134.19797,776.9254,11888.1275,3215.0694 +464.000000,209.000000,23.947700,5.265554,4.871017,36.616080,11.764710,15.322540,61.53467,4.024875,24.122970,38.725490,0.000000,0.000000,180.265240,723.93755,942.8674,97.09194,155.86526,934.1738,11092.5620,3759.9329 +483.000000,338.000000,20.807020,10.111850,12.001210,20.873640,11.708860,13.907750,61.44766,4.401148,21.542030,53.169730,0.000000,0.000000,162.843898,719.48205,854.5987,94.80966,234.00785,1145.3839,10006.3765,5041.0041 +958.000000,450.000000,37.644950,8.548446,5.798903,50.829980,14.259930,13.900460,62.29003,4.265807,24.256400,42.084430,0.000000,0.000000,198.219587,888.25147,865.8601,103.47312,179.52406,1020.8168,12347.1040,4354.6073 +388.000000,144.000000,33.511680,10.202370,17.912690,36.812180,18.650790,15.385020,62.13202,4.282612,22.957290,41.176470,0.000000,0.000000,286.942777,1158.81126,955.9024,98.31717,176.34284,945.3002,17828.3344,4048.3538 +1312.000000,538.000000,42.840950,5.595576,4.804180,63.337050,14.599480,12.293480,64.63193,3.979219,25.141500,23.267330,0.000000,0.000000,179.478415,943.59257,794.5513,100.04353,92.58580,584.9756,11600.0364,2327.7459 +273.000000,71.000000,61.400090,2.775971,13.207550,61.960530,30.000000,16.068420,59.30374,4.179698,25.225270,15.015970,0.000000,0.000000,482.052600,1779.11220,952.9174,105.43401,62.76222,378.7819,28587.5221,1583.1939 +682.000000,130.000000,68.085100,0.683527,0.580998,94.480520,51.814520,16.274280,65.65300,4.338243,22.495030,33.670030,0.000000,0.000000,843.244007,3401.77868,1068.4553,97.58891,146.06877,757.4083,55361.4988,3285.8214 +212.000000,125.000000,13.800080,6.320789,3.397881,14.870300,4.761905,11.927660,57.36205,4.718115,21.288740,38.993710,0.000000,0.000000,56.798384,273.15263,684.1950,100.44272,183.97681,830.1270,3258.0717,3916.6344 +2327.000000,1326.000000,50.674020,12.127240,1.119947,23.866800,12.239580,13.221090,73.03900,4.224937,26.670200,26.386550,0.000000,34.482760,161.820589,893.96668,965.6552,112.67991,111.48151,703.7346,11819.2140,2973.2342 +584.000000,339.000000,14.826240,4.119138,1.292776,16.565270,6.329114,14.992660,63.78461,4.130350,24.900640,33.600000,0.000000,0.000000,94.890254,403.70007,956.3010,102.84836,138.77976,836.6615,6052.5379,3455.7048 +1111.000000,222.000000,69.008290,0.192555,43.091380,55.368190,63.439070,15.019830,63.04099,3.748330,27.402750,38.888890,0.000000,57.894740,952.844047,3999.26178,946.8650,102.71455,145.76839,1065.6625,60068.2320,3994.4548 +326.000000,287.000000,1.421801,26.200560,0.541431,3.060264,8.205128,15.025790,63.79163,4.705506,21.596240,66.181820,0.000000,0.000000,123.288530,523.41849,958.5196,101.62124,311.41895,1429.2785,7864.7763,6725.4784 +828.000000,671.000000,2.971741,7.571330,1.366449,4.975937,7.024793,17.007010,64.74985,4.414050,24.239130,60.623230,0.000000,0.000000,119.470725,454.85429,1101.2013,106.99273,267.59397,1469.4544,7735.7115,6486.2450 +5677.000000,1930.000000,64.238700,14.166320,20.336870,40.489830,29.108750,13.309800,59.29818,4.210309,22.983120,41.378230,2.325581,19.767440,387.431641,1726.09590,789.2469,96.76604,174.21513,951.0008,22973.9912,4004.0073 +38852.000000,9324.000000,73.183940,4.308746,13.795250,68.524170,45.461390,20.545740,73.07307,4.365276,23.420950,49.306180,2.321981,32.198140,934.037899,3322.00333,1501.3403,102.23891,215.23508,1154.7976,68253.0168,5041.0101 +939.000000,113.000000,59.296940,0.224649,12.056160,86.527300,52.487140,15.793010,67.06302,4.064954,27.059610,15.084750,0.000000,50.000000,828.929927,3519.94612,1059.1269,109.99607,61.31881,408.1875,55590.5443,1659.2632 +401.000000,144.000000,56.898580,1.915122,14.064650,48.077220,17.543860,14.425880,57.19330,4.017302,22.554720,25.947520,0.000000,11.111110,253.085619,1003.39125,825.0637,90.60912,104.23902,585.2390,14474.8017,2351.0820 +2093.000000,377.000000,75.034300,4.879927,0.447129,90.518500,59.529810,16.923410,67.60591,3.810285,27.995780,28.541670,0.000000,25.000000,1007.447382,4024.56698,1144.1225,106.67190,108.75190,799.0463,68109.3970,3044.5942 +1436.000000,388.000000,44.022030,4.939493,5.015970,62.976290,29.220020,15.621080,60.66556,3.616505,25.625820,21.508660,0.000000,7.142857,456.448270,1772.64888,947.6616,92.67591,77.78618,551.1770,27690.6899,1993.3346 +678.000000,597.000000,1.943602,30.026930,1.723209,3.941842,7.474227,18.942870,59.82121,3.946788,24.114410,89.130430,0.000000,0.000000,141.583310,447.11730,1133.1854,95.17446,351.77891,2149.3277,8469.6849,8482.9409 +1088.000000,185.000000,58.228350,1.783620,14.614580,75.708200,35.248450,11.801460,63.19071,4.370215,24.505800,5.430712,0.000000,73.333330,415.983173,2227.37458,745.7426,107.09561,23.73338,133.0839,26286.2720,581.6054 +1352.000000,365.000000,61.881100,2.221930,32.005430,47.111930,42.184150,14.272990,64.58404,4.443599,23.867130,39.655170,0.000000,0.000000,602.093951,2724.42283,921.8074,106.05596,176.21167,946.4551,38885.6598,4205.6669 +1983.000000,575.000000,73.505300,6.393463,11.233780,71.204470,48.698570,16.683370,65.62877,4.007186,26.044220,8.277190,0.000000,23.684210,812.456262,3196.02725,1094.9091,104.36403,33.16824,215.5730,53320.5051,863.8409 +265.000000,246.000000,0.265340,63.202340,0.487171,3.345242,6.944444,15.907860,57.54338,4.619277,22.177360,78.189300,0.000000,0.000000,110.471243,399.60678,915.3920,102.44337,361.17804,1734.0323,6356.8887,8009.9753 +753.000000,429.000000,26.090650,5.531472,8.617999,27.076470,22.266400,15.874000,65.96343,5.063350,22.315280,65.106380,0.000000,0.000000,353.456834,1468.76812,1047.1035,112.99007,329.65639,1452.8671,23315.2251,7356.3746 +300.000000,234.000000,11.678830,32.089360,4.467806,18.212880,13.017750,16.196450,61.16962,4.043499,22.990940,64.074070,0.000000,0.000000,210.841337,796.29082,990.7307,92.96384,259.08344,1473.1231,12897.0845,5956.5718 +376.000000,237.000000,27.321980,38.107750,1.445466,20.367940,7.359307,13.787500,59.41730,4.035891,23.648950,31.564990,0.000000,0.000000,101.466445,437.27015,819.2160,95.44458,127.39286,746.4789,6028.8622,3012.7074 +1732.000000,1108.000000,17.701930,28.476880,3.996755,15.833300,19.657260,13.318610,59.55529,3.822103,23.783230,45.956610,0.000000,0.000000,261.807380,1170.69382,793.1937,90.90195,175.65090,1092.9966,15592.0144,4177.5457 +627.000000,194.000000,47.307170,9.439110,9.122654,58.162370,17.520220,13.903390,56.84137,3.907338,24.422660,29.061780,0.000000,0.000000,243.590452,995.87331,790.2877,95.42759,113.55420,709.7660,13846.0150,2773.2956 +1843.000000,258.000000,78.423910,0.054539,35.729620,62.927360,80.174930,14.793150,58.99142,3.743125,28.099970,41.789050,0.000000,2.564103,1186.039766,4729.63297,872.6689,105.18170,156.42164,1174.2711,69966.1700,4395.4433 +1647.000000,609.000000,40.236070,16.399950,2.539347,67.976020,28.903650,17.393570,62.32530,4.103139,25.056070,38.678490,0.000000,0.000000,502.737660,1801.42866,1084.0595,102.80854,158.70322,969.1310,31333.2755,3976.4790 +1213.000000,606.000000,33.850630,18.781190,6.688608,55.350890,29.182390,16.173100,62.27731,4.369675,24.445740,30.261880,0.000000,0.000000,471.969712,1817.40075,1007.2172,106.81994,132.23458,739.7741,29393.0040,3232.5722 +1171.000000,831.000000,6.196674,42.313890,5.721689,18.180540,17.736490,14.824450,60.55524,3.982780,24.250860,57.785470,0.000000,0.000000,262.933709,1074.03741,897.6981,96.58584,230.14681,1401.3473,15922.0139,5581.2582 +319.000000,185.000000,53.455700,36.402370,1.889589,43.479070,22.065730,14.123080,57.66326,3.814974,23.166670,0.000000,11.111110,0.000000,311.636070,1272.38193,814.3828,88.38024,0.00000,0.0000,17969.9517,0.0000 +192.000000,109.000000,28.172350,1.443203,1.722533,11.918060,7.446809,11.728040,58.88017,3.806893,24.822220,0.000000,0.000000,0.000000,87.336474,438.46938,690.5490,94.49554,0.00000,0.0000,5142.3864,0.0000 +299.000000,242.000000,7.197273,7.003820,1.819174,8.659269,7.936508,15.217190,64.22489,5.093928,21.587110,43.089430,0.000000,0.000000,120.771350,509.72135,977.3224,109.96318,219.49445,930.1763,7756.5267,4738.2509 +489.000000,298.000000,25.639930,7.277444,5.188422,23.184050,10.248450,16.505210,68.09637,5.006776,22.475220,51.540620,0.000000,0.000000,169.152819,697.88224,1123.9449,112.52839,258.05234,1158.3868,11518.6930,5799.7831 +159.000000,48.000000,59.287210,0.941378,2.524604,41.634570,6.666667,12.205420,53.26582,3.873240,23.551490,25.409840,0.000000,0.000000,81.369471,355.10548,650.1317,91.22057,98.41841,598.4396,4334.2116,2317.9002 +1130.000000,362.000000,60.023900,1.152145,3.543626,67.353800,26.829270,14.054850,56.27459,4.064557,23.458330,31.994050,0.000000,45.000000,377.081365,1509.80617,790.9309,95.34772,130.04164,750.5270,21220.0992,3050.5597 +564.000000,412.000000,14.792290,4.893837,2.770585,11.108230,3.562341,16.620180,53.79499,4.365513,20.396360,48.085110,6.250000,12.500000,59.206749,191.63610,894.0824,89.04057,209.91617,980.7612,3185.0265,4281.5258 +277.000000,144.000000,34.767680,7.884136,5.198542,36.178780,8.536585,15.191140,53.33638,4.458969,20.966820,53.592810,0.000000,0.000000,129.680458,455.31054,810.2404,93.49040,238.96868,1123.6708,6916.6862,5010.4133 +52.000000,28.000000,0.000000,0.480192,0.480192,28.691480,7.407407,13.726150,60.99250,6.459384,16.405350,26.000000,0.000000,0.000000,101.675180,451.79627,837.1922,105.96846,167.94398,426.5391,6201.4234,2755.1798 +225.000000,112.000000,27.000720,0.511322,0.292184,6.208912,1.459854,15.598450,51.69282,4.183603,21.538460,29.801320,0.000000,0.000000,22.771460,75.46397,806.3279,90.10837,124.67689,641.8745,1177.1210,2685.3482 +38.000000,21.000000,55.932200,0.840336,1.344538,45.378150,0.000000,12.756000,48.85596,6.406862,14.316040,44.736840,0.000000,0.000000,0.000000,0.00000,623.2066,91.72089,286.62276,640.4544,0.0000,4103.3029 +188.000000,98.000000,37.299680,1.162791,0.415282,19.684390,2.272727,17.130740,56.33678,4.990487,19.472870,25.899280,0.000000,0.000000,38.933495,128.03812,965.0907,97.17910,129.25002,504.3333,2193.3878,2516.8688 +489.000000,240.000000,46.927540,0.969469,1.114166,22.818690,4.848485,17.401500,64.53571,4.838431,21.344880,33.333330,0.000000,36.363640,84.370912,312.90042,1123.0182,103.27573,161.28102,711.4959,5444.9367,3442.5240 +171.000000,67.000000,46.538460,0.846154,0.692308,11.576920,2.985075,17.472000,56.56813,4.611976,20.828080,26.380370,0.000000,0.000000,52.155230,168.86011,988.3584,96.05861,121.66563,549.4525,2950.3239,2534.0615 +33.000000,13.000000,56.331170,0.517241,0.689655,3.965517,4.651163,12.497870,48.86760,6.578053,15.732980,34.210530,0.000000,0.000000,58.129631,227.29117,610.7409,103.49238,225.03868,538.2336,2840.6555,3540.5290 +183.000000,60.000000,37.788990,1.586639,0.292276,17.327770,11.711710,13.417060,58.10255,4.361619,22.786120,20.800000,0.000000,16.666670,157.136716,680.48022,779.5654,99.38437,90.72168,473.9513,9130.0439,2067.1950 +48.000000,14.000000,41.431670,0.915565,0.000000,84.130210,25.581400,12.771430,55.70923,4.140527,22.185270,24.742270,0.000000,0.000000,326.711059,1425.12010,711.4865,91.85871,102.44604,548.9139,18200.8216,2272.7930 +455.000000,123.000000,50.928240,1.244953,4.862046,53.179680,12.167300,12.078160,55.07462,4.075188,21.770280,33.935020,0.000000,50.000000,146.958596,670.10942,665.2001,88.71798,138.29159,738.7749,8093.6888,3010.6466 +108.000000,23.000000,52.407930,0.614335,0.955631,50.443690,8.333333,11.989610,53.60990,4.080966,21.157740,49.275360,0.000000,0.000000,99.913413,446.74915,642.7618,86.34402,201.09107,1042.5553,5356.3481,4254.6325 +181.000000,33.000000,60.918210,0.156801,6.311250,61.701290,15.441180,11.491350,54.80270,4.750999,18.812180,19.594590,0.000000,0.000000,177.440004,846.21836,629.7570,89.37665,93.09388,368.6170,9724.1913,1751.2988 +94.000000,37.000000,33.277730,0.750000,0.750000,10.416670,1.612903,11.680880,55.85474,4.786679,19.229530,32.786890,0.000000,0.000000,18.840126,90.08828,652.4325,92.04559,156.94032,630.4765,1052.3104,3017.8886 +47.000000,19.000000,64.850840,0.000000,0.000000,52.380950,4.761905,12.955320,50.84007,4.851063,18.400950,45.714290,0.000000,0.000000,61.692003,242.09558,658.6494,89.26417,221.76290,841.1864,3136.4258,4080.6480 +40.000000,24.000000,45.933730,0.310078,0.775194,14.108530,2.222222,14.034310,52.32031,6.283433,14.669700,76.923080,0.000000,0.000000,31.187352,116.26734,734.2794,92.17608,483.34102,1128.4385,1631.7319,7090.4678 +93.000000,45.000000,21.840070,0.582848,0.083264,21.815150,4.838710,14.984850,60.15944,4.806483,20.594230,42.857140,0.000000,0.000000,72.507344,291.09408,901.4802,98.98582,205.99211,882.6098,4362.0012,4242.2490 +201.000000,149.000000,10.706820,2.977162,1.305057,7.544861,4.800000,17.294230,69.88739,5.676651,20.678540,55.921050,0.000000,0.000000,83.012304,335.45947,1208.6486,117.38485,317.44428,1156.3657,5801.5133,6564.2843 +773.000000,255.000000,40.134530,8.813424,15.637240,25.225730,17.657050,19.471920,61.01163,4.496243,20.607040,28.907920,0.000000,95.238100,343.816665,1077.28540,1188.0136,92.65426,129.97703,595.7067,20976.8152,2678.4419 +154.000000,105.000000,14.279550,4.711581,1.893439,7.089388,2.941176,17.541950,63.90955,4.756384,22.632100,48.175180,0.000000,0.000000,51.593962,187.96923,1121.0981,107.64696,229.13966,1090.3055,3297.3469,5185.9116 +357.000000,107.000000,40.666670,1.844262,1.285395,49.236210,20.158100,14.685340,56.61921,4.356072,21.579570,60.597830,0.000000,0.000000,296.028552,1141.33570,831.4723,94.00216,263.96851,1307.6751,16760.9028,5696.3270 +163.000000,60.000000,67.269370,0.273879,0.410818,86.511470,24.193550,11.886840,58.89312,4.200852,24.908640,11.304350,0.000000,0.000000,287.584858,1424.83364,700.0531,104.63751,47.48790,281.5760,16936.7695,1182.8590 +61.000000,21.000000,45.670230,0.682594,0.341297,47.098980,4.545455,13.511220,54.34489,4.650725,20.973870,50.000000,0.000000,0.000000,61.414643,247.02225,734.2658,97.54370,232.53625,1048.6935,3337.5720,4877.1851 +1198.000000,587.000000,32.709060,1.396074,1.776254,26.488000,6.388527,15.475870,54.78513,3.912949,21.838410,29.252580,3.333333,0.000000,98.868013,349.99628,847.8475,85.45258,114.46385,638.8298,5416.4970,2499.7086 +112.000000,58.000000,34.434250,0.738007,0.430504,37.453870,14.634150,15.647780,51.43444,4.386959,21.202050,44.144140,0.000000,0.000000,228.991960,752.69931,804.8348,93.01252,193.65853,935.9463,11778.0732,4105.9579 +455.000000,300.000000,16.157800,8.398994,2.179380,21.626150,4.897959,15.227270,57.19342,3.825952,25.227760,40.720220,0.000000,0.000000,74.582544,280.13103,870.8996,96.52020,155.79361,1027.2799,4265.6308,3930.3237 +2692.000000,1804.000000,17.338030,4.709514,1.580624,16.953750,9.391933,12.699920,60.77938,3.802974,23.000430,44.825580,0.000000,10.526320,119.276798,570.83586,771.8933,87.47004,170.47052,1031.0076,7249.5698,3920.8952 +3007.000000,1473.000000,48.156080,28.711550,1.291070,44.051470,11.486120,15.676560,65.18442,3.835549,24.673220,20.381300,0.000000,0.000000,180.062849,748.71607,1021.8675,94.63534,78.17347,502.8723,11737.2924,1928.7913 +188.000000,145.000000,9.316273,1.883830,1.216641,9.222920,7.619048,16.906410,70.27437,4.481474,24.263570,74.285710,0.000000,0.000000,128.810749,535.42380,1188.0873,108.73656,332.90948,1802.4365,9052.0943,8077.5724 +1186.000000,688.000000,39.025440,4.683563,1.235117,34.123810,4.426788,16.001170,60.20204,4.349231,22.482760,42.871490,0.000000,0.000000,70.833787,266.50167,963.3031,97.78272,186.45801,963.8694,4264.3385,4192.0908 +1991.000000,1035.000000,36.019980,10.882420,2.085541,36.821770,9.424084,16.817670,56.41511,3.586935,25.448820,47.330260,2.564103,12.820510,158.491135,531.66074,948.7707,91.28326,169.77057,1204.4993,8941.2948,4320.4606 +1875.000000,1238.000000,21.013880,8.124397,1.888460,25.920120,11.397420,15.153020,63.10153,4.172242,24.717150,36.561740,0.000000,0.000000,172.705333,719.19464,956.1787,103.12593,152.54443,903.7020,10897.9708,3770.4635 +3391.000000,610.000000,73.277230,4.408512,1.079825,90.790820,26.487520,14.970920,69.82454,4.102145,25.032190,21.729370,0.000000,56.250000,396.542543,1849.47890,1045.3376,102.68567,89.13703,543.9337,27688.4006,2231.2950 +2363.000000,1607.000000,10.534500,8.401664,2.167491,14.810680,6.056435,14.979900,60.37220,3.840866,22.191010,53.791890,0.000000,0.000000,90.724791,365.64031,904.3695,85.23270,206.60744,1193.6964,5477.2552,4584.8278 +1074.000000,526.000000,29.868970,8.276043,4.655274,41.681400,5.263158,13.014120,57.83115,3.629530,24.169470,39.595380,0.000000,0.000000,68.495370,304.37448,752.6215,87.72382,143.71262,956.9993,3961.1660,3473.4578 +1799.000000,1421.000000,10.516500,25.163700,3.039764,7.410780,9.255725,16.097760,62.55098,4.352488,22.658160,0.000000,0.000000,9.677420,148.996440,578.95467,1006.9307,98.61937,0.00000,0.0000,9319.8733,0.0000 +621.000000,416.000000,11.600250,8.991280,3.111006,11.536650,10.133330,15.093070,67.28494,4.726529,23.198790,49.592170,0.000000,10.000000,152.943059,681.82050,1015.5363,109.64975,234.39883,1150.4783,10290.7645,5437.7692 +358.000000,204.000000,23.356440,0.627574,0.431457,17.709350,6.617647,13.593590,49.51303,4.638098,19.678420,44.131460,0.000000,0.000000,89.957580,327.65975,673.0598,91.27044,204.68604,868.4374,4454.0724,4027.8978 +182.000000,49.000000,28.660970,0.562810,1.440792,17.424580,4.878049,13.332730,42.65839,3.503698,24.268590,27.461140,62.500000,0.000000,65.037710,208.08972,568.7528,85.02981,96.21554,666.4431,2774.4040,2335.0155 +445.000000,276.000000,17.136240,3.538945,1.372581,6.664462,4.651163,11.192390,52.65482,3.596095,23.043300,0.000000,0.000000,0.000000,52.057630,244.90615,589.3333,82.86590,0.00000,0.0000,2741.0852,0.0000 +288.000000,132.000000,36.662110,0.663533,1.216478,6.856511,2.717391,16.154050,56.50012,4.912702,21.232090,33.193280,0.000000,0.000000,43.896870,153.53292,912.7058,104.30693,163.06869,704.7627,2480.1784,3462.2892 +1078.000000,280.000000,42.290290,4.021226,7.222877,47.158020,17.241380,13.007080,62.39070,3.758198,25.181950,41.666670,0.000000,70.588240,224.260009,1075.70177,811.5208,94.63875,156.59160,1049.2480,13991.7389,3943.2817 +335.000000,54.000000,75.529870,13.368510,13.852240,36.697450,20.297030,13.817330,60.07478,4.456322,21.899660,41.818180,0.000000,12.500000,280.450762,1219.33961,830.0731,97.59194,186.35528,915.8039,16848.0178,4081.1172 +219.000000,53.000000,58.746440,1.151316,3.426535,34.649120,9.027778,15.966160,59.27044,4.070740,24.756270,26.250000,0.000000,12.500000,144.138948,535.08037,946.3213,100.77634,106.85693,649.8521,8543.1789,2645.3789 +2122.000000,849.000000,41.511390,3.604238,4.644538,41.778430,11.373210,13.542970,64.06346,4.083554,25.231140,34.637270,0.000000,34.285710,154.027042,728.60718,867.6095,103.03272,141.44316,873.9378,9867.5052,3568.7722 +1434.000000,387.000000,55.991250,1.264684,2.467791,60.041680,15.808820,12.687370,64.12352,3.937206,25.213800,43.171810,4.347826,0.000000,200.572349,1013.71719,813.5588,99.27192,169.97631,1088.5254,12861.4050,4285.7487 +1085.000000,456.000000,62.407780,1.435897,2.666667,29.230770,9.033280,15.502510,59.73505,3.916537,24.517560,21.428570,0.000000,5.263158,140.038514,539.60343,926.0432,96.02393,83.92579,525.3763,8365.2076,2057.6555 +1199.000000,300.000000,50.210920,1.388811,5.304256,53.254500,23.789760,13.275310,62.06872,3.826458,24.666670,26.383530,0.000000,4.166667,315.816439,1476.59995,823.9815,94.38598,100.95547,650.7938,19602.3221,2490.2352 +2300.000000,644.000000,43.068910,3.265436,23.676000,35.353280,23.123580,14.011940,58.40116,4.173917,24.092200,25.592420,2.857143,22.857140,324.006216,1350.44390,818.3135,100.55884,106.82064,616.5777,18922.3388,2573.5441 +1226.000000,319.000000,62.504970,1.157494,5.942876,53.491240,8.933333,13.070020,57.24297,4.143368,24.201040,13.754050,0.000000,9.523810,116.758841,511.37051,748.1668,100.27381,56.98809,332.8623,6683.6228,1379.1711 +238.000000,93.000000,55.912890,0.632911,10.522150,52.083330,10.795450,14.110260,61.88548,4.694474,22.195810,20.930230,0.000000,0.000000,152.326606,668.08161,873.2202,104.19765,98.25642,464.5634,9426.8051,2180.8808 +2388.000000,860.000000,47.234350,3.598305,10.326660,40.110930,21.747700,10.976620,61.44565,4.384205,23.568530,33.772460,0.000000,19.047620,238.716239,1336.30156,674.4656,103.32927,148.06539,795.9672,14668.0745,3489.6835 +306.000000,92.000000,64.179100,1.007308,3.851471,50.819670,7.446809,13.119810,58.04066,3.564449,26.021620,11.931820,12.500000,25.000000,97.700719,432.21771,761.4824,92.75274,42.53036,310.4853,5670.6142,1106.7090 +862.000000,86.000000,85.514590,0.138122,0.276243,96.167130,36.465320,11.920770,61.38559,4.099012,25.279640,13.546800,0.000000,0.000000,434.694693,2238.44518,731.7635,103.62155,55.52850,342.4582,26683.9902,1403.7404 +990.000000,307.000000,38.116470,1.790807,4.072428,30.112090,11.418690,13.053750,62.32666,3.960634,25.396940,25.383300,0.000000,83.333330,149.056725,711.68881,813.5966,100.58798,100.53396,644.6581,9290.2078,2553.2550 +1029.000000,587.000000,18.169990,1.957028,3.825099,17.784320,8.097928,12.194850,64.15611,3.664265,25.549800,25.868060,6.250000,81.250000,98.753017,519.53156,782.3741,93.62124,94.78743,660.9238,6335.6094,2421.7998 +674.000000,290.000000,18.216450,2.105698,3.437242,17.846820,15.193370,9.219296,59.13467,3.774601,25.861480,38.256660,0.000000,100.000000,140.072175,898.45492,545.1800,97.61677,144.40363,989.3738,8283.1219,3734.4915 +656.000000,177.000000,54.843870,1.897597,23.579610,45.823040,21.238940,10.907790,58.44744,3.799078,25.541490,31.802120,0.000000,0.000000,231.669897,1241.36167,637.5324,97.03411,120.81873,812.2735,13540.5124,3085.8905 +2817.000000,1239.000000,36.944770,15.212580,19.093460,16.269870,17.404310,12.277890,58.33163,3.762583,23.116970,29.580150,0.000000,33.333330,213.688204,1015.22177,716.1893,86.97952,111.29777,683.8034,12464.7812,2572.8672 +957.000000,555.000000,26.114320,5.308799,9.912578,8.671743,9.722222,14.263190,51.10465,3.845847,22.197770,27.709190,4.347826,30.434780,138.669900,496.85075,728.9153,85.36923,106.56531,615.0822,7086.6767,2365.5121 +349.000000,154.000000,33.115380,1.770956,1.180638,35.726090,9.166667,11.772560,51.74220,4.581189,22.213330,23.983740,0.000000,0.000000,107.915137,474.30352,609.1382,101.76346,109.87405,532.7587,5583.7666,2440.6684 +174.000000,82.000000,35.978840,1.407285,1.034768,36.920530,11.904760,14.735110,51.08037,4.420624,20.180180,45.312500,0.000000,0.000000,175.417948,608.09955,752.6749,89.20899,200.30953,914.4144,8960.4137,4042.2823 +3398.000000,1325.000000,59.406430,23.870540,21.952510,23.506130,27.457470,14.003300,61.99703,4.125407,24.826780,38.742610,1.298701,10.389610,384.495190,1702.28159,868.1630,102.42057,159.82903,961.8543,23837.5598,3968.0403 +3310.000000,1787.000000,28.849750,4.594770,5.959822,8.972135,7.187223,12.616220,58.87275,4.335660,21.750740,39.284420,1.219512,6.097561,90.675587,423.13158,742.7516,94.30381,170.32389,854.4652,5338.3211,3704.6706 +391.000000,266.000000,29.306060,7.974910,13.870970,10.286740,10.699590,13.232410,55.94413,3.811049,22.289510,78.968250,0.000000,42.857140,141.581362,598.57925,740.2757,84.94641,300.95187,1760.1636,7920.6461,6708.0697 +412.000000,136.000000,37.955380,6.226150,29.744930,26.230170,12.234040,10.666110,57.67268,3.312515,22.428410,0.000000,14.285710,14.285710,130.489616,705.56987,615.1431,74.29444,0.00000,0.0000,7525.6859,0.0000 +114.000000,58.000000,35.753750,2.109375,0.625000,40.468750,16.666670,11.918180,61.91985,4.272916,22.222220,0.000000,0.000000,0.000000,198.636373,1031.99771,737.9719,94.95368,0.00000,0.0000,12299.5344,0.0000 +467.000000,149.000000,50.624110,1.101449,11.782610,38.130430,19.269100,14.401470,57.10062,4.203244,22.986750,12.987010,0.000000,0.000000,277.503366,1100.27756,822.3329,96.61892,54.58757,298.5292,15845.6142,1254.7909 +280.000000,143.000000,40.703370,0.449312,0.954788,11.429370,3.521127,13.881480,57.82488,3.838359,25.364290,35.428570,0.000000,100.000000,48.878454,203.60875,802.6949,97.35725,135.98757,898.6205,2826.3907,3449.2282 +2132.000000,1002.000000,25.955670,6.023256,5.232558,38.202660,18.698520,15.212770,62.27005,3.664259,24.169690,29.015540,0.000000,10.000000,284.456284,1164.35778,947.2999,88.56400,106.32045,701.2966,17713.1070,2569.7324 +1304.000000,352.000000,44.452120,2.019903,9.084639,63.686080,19.094250,11.895110,59.62526,3.811724,24.030230,34.445930,0.000000,48.000000,227.128204,1138.49962,709.2490,91.59660,131.29838,827.7436,13542.5782,3155.1302 +2259.000000,407.000000,39.998060,1.101044,11.805470,65.774630,19.710810,12.968520,60.46872,3.939782,24.371310,18.253400,0.000000,56.250000,255.620034,1191.88745,784.1898,96.01765,71.91442,444.8593,15457.0162,1752.6485 +667.000000,280.000000,46.742290,1.503836,8.194373,13.340150,4.504505,13.401940,62.28607,4.128065,22.629280,13.500000,5.882353,0.000000,60.369106,280.56791,834.7542,93.41514,55.72888,305.4953,3760.1543,1261.1044 +103.000000,45.000000,54.401520,1.161946,3.776325,17.283950,2.941176,16.794670,61.23499,4.903238,21.277210,40.350880,0.000000,10.000000,49.396080,180.10288,1028.4214,104.32722,197.84997,858.5541,3024.7685,4209.6953 +1261.000000,580.000000,34.604040,8.123958,7.962554,30.989400,15.033560,14.849090,60.47727,3.763685,24.721110,24.774320,0.000000,50.000000,223.234685,909.18867,898.0324,93.04247,93.24274,612.4487,13500.6243,2305.0639 +1750.000000,368.000000,57.885020,2.875776,27.398440,51.591110,24.493930,12.173990,59.09631,3.838001,25.162110,13.239440,0.000000,70.833330,298.188859,1447.50088,719.4379,96.57220,50.81298,333.1322,17621.8612,1278.5619 +488.000000,229.000000,24.700730,0.979605,1.268669,13.056050,10.276680,15.791960,62.20187,3.995416,24.439080,31.286550,0.000000,0.000000,162.288919,639.22871,982.2894,97.64429,125.00278,764.6145,10094.6743,3054.9530 +3080.000000,739.000000,70.235750,3.366044,19.618020,50.849420,25.219640,11.679380,61.67289,4.147682,23.986840,22.395210,0.000000,42.622950,294.549759,1555.36808,720.3011,99.48978,92.88821,537.1903,18165.7349,2228.0946 +1011.000000,354.000000,44.919960,1.618203,16.417630,36.170870,15.533980,10.971670,61.49285,4.057497,26.511440,13.970590,15.000000,20.000000,170.433702,955.22870,674.6793,107.57009,56.68563,370.3805,10480.4541,1502.8176 +626.000000,244.000000,27.571030,0.762642,0.774375,19.664440,6.060606,11.880490,63.43272,3.784390,25.071620,25.000000,0.000000,70.000000,72.002969,384.44072,753.6118,94.88079,94.60975,626.7905,4567.3442,2372.0197 +180.000000,74.000000,46.964160,2.107896,18.185070,12.040010,7.913669,11.099070,60.61841,5.342537,20.252890,18.348620,0.000000,0.000000,87.834366,479.71403,672.8080,108.20181,98.02818,371.6126,5324.3796,1985.3540 +482.000000,241.000000,20.984130,0.826189,2.088854,16.679660,4.054054,8.420029,53.76420,3.823180,22.520660,10.248450,9.090909,0.000000,34.135252,217.96297,452.6961,86.10054,39.18167,230.8019,1835.2545,882.3970 +1057.000000,328.000000,47.678100,0.955685,5.308634,31.190680,11.897110,12.191790,62.22010,3.865725,24.813020,13.344050,0.000000,61.111110,145.047067,740.23937,758.5744,95.92031,51.58443,331.1062,9024.8430,1279.9654 +81.000000,17.000000,62.311560,1.224847,2.274716,17.935260,5.263158,10.469230,59.11449,4.587305,20.487360,26.086960,0.000000,0.000000,55.101212,311.12890,618.8832,93.98177,119.66884,534.4529,3257.2800,2451.6986 +910.000000,473.000000,30.647120,7.226302,11.490320,28.479640,11.456310,13.981210,59.65977,3.922567,23.510560,35.313530,6.666667,6.666667,160.173076,683.48082,834.1158,92.22175,138.51969,830.2409,9555.8889,3256.6754 +880.000000,352.000000,43.731610,1.656990,17.274450,20.431860,5.168986,13.207000,62.10635,3.058089,24.520820,35.839160,13.333330,86.666670,68.266798,321.02685,820.2386,74.98685,109.59934,878.8056,4239.8017,2687.4657 +200.000000,152.000000,12.890920,1.749271,2.587464,10.495630,8.661417,15.079550,59.96379,4.346546,22.369940,58.823530,0.000000,0.000000,130.610271,519.37139,904.2270,97.23197,255.67918,1315.8788,7831.8868,5719.5279 +1610.000000,757.000000,43.177150,2.752435,1.797588,43.810890,8.999082,14.070940,58.39890,3.882451,23.422400,29.011860,4.000000,44.000000,126.625543,525.53649,821.7274,90.93632,112.63712,679.5274,7394.7924,2638.2318 +538.000000,285.000000,49.189650,0.898770,4.328288,36.210970,10.140850,16.561010,66.96672,4.540894,24.110540,22.460940,0.000000,0.000000,167.942718,679.09946,1109.0365,109.48341,101.99275,541.5454,11246.5730,2459.1002 +54.000000,40.000000,7.723036,0.138122,0.690608,9.254144,5.000000,15.969320,62.78997,5.092907,19.095610,32.075470,0.000000,0.000000,79.846600,313.94985,1002.7131,97.25217,163.35739,612.5007,5013.5656,3119.4089 +143.000000,47.000000,48.694230,0.163221,1.468988,25.299240,4.301075,12.162620,52.08440,4.470921,20.178770,40.869570,0.000000,0.000000,52.312341,224.01891,633.4828,90.21769,182.72462,824.6977,2724.6569,3687.1581 +2349.000000,1785.000000,10.588160,8.755863,2.760139,7.792208,11.015120,14.191550,58.19862,3.718169,22.875710,46.688740,0.000000,0.000000,156.321626,641.06478,825.9286,85.05576,173.59663,1068.0381,9097.7029,3971.1461 +509.000000,280.000000,35.023650,0.704225,0.876689,19.617710,7.491857,13.514520,57.16813,3.976030,23.115920,39.736840,0.000000,0.000000,101.248851,428.29545,772.5998,91.90959,157.99487,918.5536,5788.2075,3652.1967 +8479.000000,3392.000000,64.152350,9.492747,16.924340,35.277330,25.084970,12.295970,62.78270,4.952585,22.193130,31.240320,4.166667,28.571430,308.444039,1574.90215,771.9742,109.91336,154.72034,693.3205,19364.9495,3433.7286 +1707.000000,683.000000,40.059770,2.532620,6.127555,37.385010,11.090910,12.812450,65.16445,4.103446,23.644490,34.332430,3.703704,81.481480,142.101730,722.73305,834.9163,97.02389,140.88127,811.7728,9259.9811,3331.0658 +595.000000,357.000000,26.923080,2.594662,1.762880,26.132840,13.333330,15.283930,62.99711,4.261820,24.326170,43.444730,0.000000,0.000000,203.785682,839.96126,962.8434,103.67376,185.15362,1056.8439,12837.9090,4504.0784 +1317.000000,435.000000,54.977400,1.804259,14.860010,41.521900,16.013440,13.173710,57.81114,3.832582,23.350250,44.717800,0.000000,0.000000,210.956415,925.75522,761.5872,89.49175,171.38464,1044.1718,12195.6308,4001.8741 +749.000000,330.000000,49.265040,2.389785,2.553705,44.137690,11.064720,13.668030,60.65716,4.097092,24.639980,29.655170,0.000000,83.333330,151.232925,671.15449,829.0639,100.95226,121.49996,730.7028,9173.3597,2993.7566 +3633.000000,1925.000000,64.554280,41.369020,16.193220,21.204120,43.737460,15.285470,52.88551,5.230051,17.931180,48.830660,2.654867,1.769912,668.547633,2313.07788,808.3799,93.78099,255.38684,875.5914,35356.4825,4579.3874 +200.000000,114.000000,36.412860,0.919842,0.328515,26.642580,5.673759,14.192450,53.51044,3.846512,23.320550,26.415090,0.000000,0.000000,80.524541,303.60534,759.4442,89.70278,101.60596,616.0144,4308.9036,2369.5069 +634.000000,279.000000,44.129830,19.627690,10.692260,17.626530,14.734300,13.201370,53.97081,4.022264,21.560640,29.835390,0.000000,0.000000,194.512946,795.22211,712.4886,86.72259,120.00582,643.2701,10498.0213,2587.4022 +193.000000,60.000000,40.582860,1.936027,0.336700,34.217170,7.207207,16.125200,52.19886,3.727909,22.026520,39.285710,0.000000,0.000000,116.217654,376.20799,841.7171,82.11286,146.45355,865.3275,6066.4291,3225.8621 +1932.000000,638.000000,48.768630,19.795470,5.832491,23.648810,11.271190,15.083600,59.46523,4.469021,22.002920,30.337080,0.000000,62.857140,170.010121,670.24391,896.9497,98.33151,135.57705,667.5043,10109.6910,2983.0909 +1207.000000,591.000000,35.133170,2.449629,4.936003,29.095470,11.326380,13.809780,56.91066,3.589197,24.385780,36.242600,0.000000,0.000000,156.414816,644.59176,785.9237,87.52537,130.08183,883.8041,8901.6704,3172.1469 +173.000000,130.000000,13.773990,0.730816,0.487211,21.843280,2.564103,14.550390,51.68300,3.786430,20.598800,29.729730,0.000000,0.000000,37.308699,132.52054,752.0078,77.99591,112.56954,612.3968,1928.2255,2318.7975 +2323.000000,558.000000,68.727080,20.872490,13.348300,42.185440,33.747550,12.677680,66.65475,4.527226,22.940490,18.209260,0.000000,21.951220,427.840640,2249.43451,845.0276,103.85678,82.43744,417.7293,28517.6109,1891.1552 +749.000000,397.000000,26.570330,4.436534,5.981941,26.723390,14.196240,10.593500,55.63190,3.616366,23.962600,26.286760,0.000000,0.000000,150.387868,789.76380,589.3365,86.65753,95.06255,629.8991,8366.3629,2277.9457 +437.000000,293.000000,18.073660,1.065779,1.648626,9.342215,3.284672,14.972580,60.46424,4.506425,23.304250,45.454550,0.000000,0.000000,49.180014,198.60520,905.3057,105.01885,204.83752,1059.2842,2973.6322,4773.5848 +727.000000,465.000000,38.074670,1.538031,1.165175,30.201340,8.932039,13.483160,55.68426,3.887088,21.219270,25.903610,0.000000,0.000000,120.432111,497.37398,750.7998,82.48117,100.68961,549.6557,6706.1730,2136.5601 +676.000000,453.000000,22.465790,2.346382,2.090835,12.614710,5.326877,16.195220,64.39768,4.933223,21.433270,25.635590,5.263158,0.000000,86.269945,343.03852,1042.9346,105.73510,126.46608,549.4545,5555.5843,2710.5817 +174.000000,96.000000,17.997810,0.617829,1.412180,9.223301,4.587156,11.087300,50.37247,3.667019,19.393940,35.955060,0.000000,0.000000,50.859175,231.06638,558.4947,71.11795,131.84789,697.3103,2561.9023,2557.0500 +423.000000,224.000000,36.826910,1.330486,3.876478,27.184630,5.802048,14.227840,59.65303,4.756442,22.281470,39.814810,0.000000,0.000000,82.550611,346.10974,848.7338,105.98052,189.37683,887.1325,4924.3941,4219.5943 +66.000000,34.000000,27.087790,1.005025,0.301508,21.608040,9.230770,12.864190,46.34738,4.792461,17.371320,41.333330,0.000000,0.000000,118.746379,427.82200,596.2215,83.25137,198.08837,718.0145,5503.5836,3441.0565 +331.000000,179.000000,19.302070,2.108511,0.539985,25.096430,8.290155,13.322900,51.76827,4.138211,21.009330,48.809520,0.000000,0.000000,110.448906,429.16698,689.7035,86.94104,201.98409,1025.4553,5717.7488,4243.5505 +705.000000,303.000000,31.914890,8.753316,4.823657,34.797130,11.899310,17.108610,57.48922,3.823838,23.523200,38.954470,0.000000,0.000000,203.580654,684.08205,983.5606,89.94891,148.95558,916.3338,11703.6930,3503.9120 +235.000000,108.000000,39.277270,1.385309,0.966495,54.381440,21.323530,14.497740,60.26291,4.158069,22.213290,33.333330,0.000000,0.000000,309.142994,1285.01797,873.6760,92.36439,138.60229,740.4429,18629.8564,3078.8128 +754.000000,302.000000,35.706330,4.651992,8.920774,32.866950,9.057301,17.083170,53.11772,4.325819,21.673770,42.914980,0.000000,13.333330,154.727413,481.10318,907.4190,93.75681,185.64244,930.1294,8218.7674,4023.5715 +590.000000,171.000000,44.542030,2.308979,1.528165,62.944790,22.371970,15.489660,62.89081,4.312730,24.507870,20.190020,0.000000,15.384620,346.534209,1406.99131,974.1573,105.69583,87.07410,494.8144,21793.8171,2134.0008 +715.000000,400.000000,23.649100,5.235658,2.399232,33.461290,11.250000,17.796090,60.28385,4.361515,23.737110,37.804880,0.000000,0.000000,200.206013,678.19331,1072.8168,103.52976,164.88655,897.3786,12069.1892,3913.9302 +605.000000,538.000000,7.894435,17.389000,4.916817,6.887782,13.528340,14.115750,66.18201,5.970823,18.747690,73.375260,0.000000,0.000000,190.962665,895.33273,934.2087,111.93914,438.11069,1375.6166,12638.2930,8213.5634 +2216.000000,975.000000,42.807840,12.245020,3.270391,49.410480,22.369510,16.577290,80.56504,5.038400,28.210850,38.107580,0.000000,0.000000,370.825854,1802.20047,1335.5500,142.13755,192.00123,1075.0472,29875.5998,5416.5179 +908.000000,463.000000,40.205450,18.394120,4.340957,25.200910,11.520000,15.609970,65.46892,4.317319,23.762800,29.551120,0.000000,0.000000,179.826854,754.20196,1021.9679,102.59159,127.58161,702.2174,11773.0699,3031.6963 +713.000000,399.000000,28.893570,31.459880,5.952142,18.429520,20.227270,14.806370,60.77492,4.090016,22.119770,26.720650,0.000000,0.000000,299.492444,1229.31072,899.8560,90.47021,109.28789,591.0546,18201.6293,2417.4229 +1269.000000,393.000000,56.348670,1.201376,0.587457,72.013760,19.716650,14.114210,59.92213,4.282146,22.535300,26.647560,4.000000,20.000000,278.284939,1181.46366,845.7535,96.49944,114.10874,600.5108,16675.4263,2571.4747 +345.000000,204.000000,14.506400,1.659053,1.226256,4.087521,3.333333,17.289160,58.61628,4.262088,24.333530,60.580910,14.285710,0.000000,57.630528,195.38758,1013.4262,103.71165,258.20117,1474.1474,3378.0871,6282.9459 +145.000000,59.000000,39.608940,0.747126,0.287356,8.908046,4.301075,16.491200,56.13194,4.741874,18.736380,28.828830,0.000000,0.000000,70.929888,241.42768,925.6830,88.84555,136.70268,540.1479,3981.4322,2561.3133 +335.000000,131.000000,49.377120,0.840532,1.074014,4.809713,4.090909,14.585830,55.39661,4.509515,20.738130,34.482760,0.000000,0.000000,59.669303,226.62249,808.0055,93.51891,155.50052,715.1080,3305.4771,3224.7901 +121.000000,80.000000,32.101620,1.633166,0.628141,8.354271,1.960784,14.403640,54.12202,2.908312,16.888890,43.243240,9.090909,0.000000,28.242427,106.12159,779.5541,49.11816,125.76483,730.3303,1528.5372,2124.0284 +435.000000,326.000000,11.443660,4.562111,7.805057,10.150240,10.162600,15.175620,61.41934,4.303057,22.279440,40.490800,0.000000,0.000000,154.223756,624.18018,932.0766,95.86970,174.23422,902.1123,9472.3213,3881.8409 +239.000000,100.000000,40.819420,1.316920,1.774979,39.965650,12.643680,15.513330,57.07422,4.262563,20.023700,39.664800,0.000000,16.666670,196.145580,721.62817,885.4112,85.35228,169.07371,794.2361,11194.8560,3385.4812 +1496.000000,688.000000,28.110860,6.548673,21.010710,18.015840,13.241530,15.965510,59.26899,3.955489,22.888910,26.116070,0.000000,34.615380,211.407780,784.81211,946.2597,90.53683,103.30183,597.7684,12529.9256,2364.4662 +323.000000,155.000000,22.712450,2.529475,15.348340,10.396570,18.220340,15.120850,62.35360,4.900856,20.228740,66.310160,0.000000,0.000000,275.507028,1136.10379,942.8394,99.13814,324.97655,1341.3710,17178.8550,6573.8660 +1052.000000,515.000000,23.019240,2.829361,8.373287,16.746570,9.129815,14.622740,53.90188,4.110539,22.381470,40.261440,5.263158,10.526320,133.502911,492.11419,788.1932,91.99991,165.49622,901.1102,7196.0579,3704.0487 +1324.000000,450.000000,35.460880,3.839582,35.214590,15.549300,23.876770,16.680850,68.33880,4.364927,25.670800,20.022750,0.000000,56.000000,398.284819,1631.70981,1139.9493,112.05117,87.39784,514.0000,27218.3066,2243.5725 +120.000000,55.000000,39.708680,0.429448,0.674847,25.092020,6.329114,15.629410,56.85404,3.942010,20.421610,43.835620,0.000000,0.000000,98.920318,359.83570,888.5951,80.50219,172.80045,895.1939,5624.0197,3528.8634 +386.000000,224.000000,30.760320,1.923440,0.716576,22.402410,6.153846,15.858610,54.12234,4.170568,21.147670,23.371650,11.111110,11.111110,97.591444,333.06055,858.3051,88.19780,97.47306,494.2559,5281.8773,2061.3280 +616.000000,320.000000,19.675840,3.863969,3.644564,12.847390,5.994550,15.717790,59.48468,4.081602,22.292980,14.450870,0.000000,0.000000,94.221078,356.58389,934.9677,90.99107,58.98270,322.1530,5604.7107,1314.9001 +234.000000,108.000000,33.558050,1.379099,0.858106,26.509350,17.567570,11.023640,50.73147,3.834786,21.023050,0.000000,0.000000,0.000000,193.658567,891.22865,559.2455,80.61890,0.00000,0.0000,9824.5838,0.0000 +232.000000,151.000000,21.463870,0.878378,0.439189,34.054050,14.285710,16.464530,56.83735,4.968968,20.913270,46.484380,0.000000,0.000000,235.207501,811.96190,935.8003,103.91737,230.97940,972.1404,13368.5710,4830.5345 +688.000000,193.000000,51.205220,4.550344,3.431583,39.264200,10.049020,13.277320,56.23431,3.767504,23.170010,12.967030,0.000000,41.666670,133.424054,565.09971,746.6409,87.29311,48.85334,300.4462,7503.0096,1131.9323 +120.000000,55.000000,42.130750,0.783085,0.234926,25.920130,1.724138,13.381750,49.55074,3.282389,21.306620,29.870130,0.000000,0.000000,23.071984,85.43231,663.0756,69.93662,98.04539,636.4315,1143.2339,2089.0158 +224.000000,72.000000,55.007260,0.673968,1.235608,64.588600,18.120810,13.327330,55.53515,4.008414,24.004090,13.071900,0.000000,0.000000,241.502015,1006.34190,740.1353,96.21833,52.39759,313.7791,13411.8506,1257.7564 +733.000000,359.000000,42.600700,4.702023,1.366867,32.558780,9.221311,14.964160,59.64521,3.932407,24.178630,21.406250,0.000000,50.000000,137.989173,550.00703,892.5405,95.08021,84.17809,517.5738,8230.3932,2035.3108 +120.000000,31.000000,53.904280,1.221374,1.475827,53.435110,14.736840,12.708570,51.29737,4.109917,21.686620,28.865980,0.000000,16.666670,187.284163,755.96113,651.9162,89.13021,118.63678,626.0055,9607.1850,2572.8308 +135.000000,39.000000,72.297700,12.323560,0.597177,45.331160,6.521739,12.382670,52.19434,4.350793,21.443790,17.721520,0.000000,0.000000,80.756542,340.39786,646.3053,93.29749,77.10267,380.0166,4215.0344,1653.3734 +776.000000,303.000000,49.256420,13.283120,2.939555,25.528200,14.107880,15.097450,57.77756,4.165932,23.061710,24.242420,0.000000,25.000000,212.993013,815.11888,872.2938,96.07352,100.99227,559.0717,12306.2166,2329.0545 +207.000000,79.000000,49.159070,0.876271,1.892744,29.758150,3.597122,13.243400,55.37246,3.941387,20.911080,36.423840,0.000000,0.000000,47.638125,199.18149,733.3196,82.41866,143.56045,761.6618,2637.8402,3002.0040 +41.000000,19.000000,51.293100,0.142248,0.568990,32.290180,2.564103,15.812220,53.21662,5.045576,19.643840,34.210530,0.000000,0.000000,40.544161,136.45289,841.4729,99.11449,172.61183,672.0262,2157.6232,3390.7592 +43.000000,23.000000,60.145990,0.480769,0.000000,5.128205,5.555556,16.132050,63.50783,6.482470,17.908310,42.424240,0.000000,0.000000,89.622507,352.82131,1024.5115,116.09008,275.01386,759.7464,5691.7309,4925.0335 +259.000000,91.000000,84.099040,0.562852,0.241222,90.726350,18.787880,14.217390,58.39111,3.952910,22.751840,8.370044,0.000000,0.000000,267.114617,1097.04517,830.1692,89.93598,33.08603,190.4339,15597.1190,752.7681 +342.000000,96.000000,74.574420,0.895583,0.244250,80.460000,15.981740,12.970660,53.30490,3.688748,22.964750,16.465860,0.000000,0.000000,207.293716,851.90505,691.3997,84.71118,60.73841,378.1344,11049.7708,1394.8424 +250.000000,40.000000,76.580370,1.721170,0.057372,83.763630,23.684210,13.284940,58.36271,4.115279,22.618730,27.428570,0.000000,0.000000,314.643309,1382.27468,775.3451,93.08238,112.87622,620.3994,18363.4362,2553.1167 +1750.000000,578.000000,44.833280,7.621228,1.954371,43.135170,12.711110,14.473250,58.32298,4.057255,22.312730,35.917310,3.125000,28.125000,183.971073,741.34981,844.1231,90.52844,145.72569,801.4132,10729.7412,3251.5379 +150.000000,26.000000,72.663140,1.192504,0.298126,79.258940,13.157890,14.814060,58.00131,4.081734,21.106030,36.134450,0.000000,0.000000,194.921772,763.17486,859.2349,86.14920,147.49121,762.6548,11305.7181,3112.9540 +134.000000,23.000000,92.334500,0.933553,0.109830,83.031300,17.105260,14.402380,61.35021,3.792456,22.918920,0.000000,0.000000,100.000000,246.356455,1049.41129,883.5890,86.91900,0.00000,0.0000,15114.0202,0.0000 +53.000000,31.000000,36.716420,0.427960,0.855920,4.707561,4.651163,13.268090,48.16047,4.666561,18.426670,70.270270,0.000000,0.000000,61.712049,224.00220,638.9975,85.98918,327.92050,1294.8471,2972.0813,6042.4829 +266.000000,59.000000,51.806540,0.547196,0.437757,76.908340,15.527950,15.024040,56.92598,3.897079,23.484750,30.601090,0.000000,16.666670,233.292542,883.94377,855.2582,91.52193,119.25487,718.6589,13280.4066,2800.6707 +304.000000,204.000000,23.281700,1.366251,0.862896,18.648130,8.152174,14.221360,56.80801,3.825936,22.877170,35.546880,0.000000,0.000000,115.935001,463.10878,807.8872,87.52659,136.00009,813.2120,6586.0367,3111.2971 +1338.000000,736.000000,15.681540,5.522166,1.674629,17.439770,6.917476,15.000220,57.20355,3.831574,23.209860,37.687190,0.000000,0.000000,103.763662,395.70418,858.0658,88.93030,144.40126,874.7144,5935.6498,3351.5330 +1170.000000,526.000000,38.158210,2.905512,2.354871,33.442680,9.943978,15.352550,56.41361,3.699070,24.851120,34.363410,0.000000,22.222220,152.665419,560.97570,866.0928,91.92603,127.11266,853.9692,8612.4074,3158.8919 +1431.000000,1088.000000,12.327020,5.661354,1.485200,14.531150,5.405405,15.732220,62.75024,4.265133,23.810320,41.166380,0.000000,0.000000,85.039021,339.19046,987.2006,101.55418,175.58009,980.1847,5336.2190,4180.6180 +248.000000,186.000000,1.247051,6.066291,1.000625,2.345216,4.729730,12.224850,55.20884,4.079327,20.988490,74.342100,0.000000,0.000000,57.820240,261.12291,674.9198,85.61891,303.26574,1560.3284,3192.1884,6365.0899 +516.000000,284.000000,23.455290,3.861647,1.819697,29.781910,10.365850,10.287230,54.40298,4.155084,21.652560,21.140940,0.000000,0.000000,106.635883,563.93313,559.6560,89.96821,87.84238,457.7555,5801.3098,1902.0124 +591.000000,455.000000,17.898830,10.490960,3.372093,12.700260,14.928910,14.437660,49.78331,4.254717,20.062860,46.420320,0.000000,0.000000,215.538527,743.21055,718.7545,85.36179,197.50532,931.3244,10730.2213,3962.5217 +59.000000,17.000000,49.235810,0.779510,1.670379,43.763920,4.166667,11.360910,50.43317,5.039203,19.545450,27.083330,0.000000,0.000000,47.337129,210.13823,572.9667,98.49349,136.47840,529.3559,2387.3615,2667.5317 +342.000000,96.000000,62.239680,13.820860,3.956157,32.128790,15.884480,13.270890,52.88133,4.324174,20.987110,8.000000,0.000000,18.181820,210.801187,839.99243,701.7823,90.75192,34.59339,167.8969,11147.4471,726.0153 +154.000000,37.000000,46.161880,1.150575,0.800400,45.622810,13.333330,11.807140,48.42615,3.945069,19.858300,53.773580,0.000000,0.000000,157.428494,645.68184,571.7743,78.34236,212.14048,1067.8519,7623.6559,4212.7494 +595.000000,208.000000,43.414310,3.648564,1.541204,46.319980,21.377670,14.404680,53.79616,3.845481,22.708840,29.892470,0.000000,6.666667,307.938495,1150.03656,774.9165,87.32641,114.95093,678.8233,16565.9086,2610.4022 +709.000000,199.000000,70.621040,20.461720,2.989345,17.423050,11.032860,16.564200,61.70566,3.970984,24.886470,15.142860,0.000000,13.636360,182.750500,680.78991,1022.1049,98.82377,60.13205,376.8523,11276.7402,1496.4746 +156.000000,72.000000,77.748270,5.998899,9.576225,11.117230,7.874016,16.918710,65.09957,6.913397,20.032520,23.529410,0.000000,0.000000,133.218193,512.59506,1101.4007,138.49276,162.66815,471.3534,8672.4471,3258.6530 diff --git a/statsmodels/datasets/statecrime/__init__.py b/statsmodels/datasets/statecrime/__init__.py new file mode 100644 index 0000000..df22d8b --- /dev/null +++ b/statsmodels/datasets/statecrime/__init__.py @@ -0,0 +1 @@ +from .data import * diff --git a/statsmodels/datasets/statecrime/data.py b/statsmodels/datasets/statecrime/data.py new file mode 100644 index 0000000..883cc1c --- /dev/null +++ b/statsmodels/datasets/statecrime/data.py @@ -0,0 +1,87 @@ +#! /usr/bin/env python + +"""Statewide Crime Data""" + +__docformat__ = 'restructuredtext' + +COPYRIGHT = """Public domain.""" +TITLE = """Statewide Crime Data 2009""" +SOURCE = """ +All data is for 2009 and was obtained from the American Statistical Abstracts except as indicated below. +""" + +DESCRSHORT = """State crime data 2009""" + +DESCRLONG = DESCRSHORT + +#suggested notes +NOTE = """:: + + Number of observations: 51 + Number of variables: 8 + Variable name definitions: + + state + All 50 states plus DC. + violent + Rate of violent crimes / 100,000 population. Includes murder, forcible + rape, robbery, and aggravated assault. Numbers for Illinois and + Minnesota do not include forcible rapes. Footnote included with the + American Statistical Abstract table reads: + "The data collection methodology for the offense of forcible + rape used by the Illinois and the Minnesota state Uniform Crime + Reporting (UCR) Programs (with the exception of Rockford, Illinois, + and Minneapolis and St. Paul, Minnesota) does not comply with + national UCR guidelines. Consequently, their state figures for + forcible rape and violent crime (of which forcible rape is a part) + are not published in this table." + murder + Rate of murders / 100,000 population. + hs_grad + Precent of population having graduated from high school or higher. + poverty + % of individuals below the poverty line + white + Percent of population that is one race - white only. From 2009 American + Community Survey + single + Calculated from 2009 1-year American Community Survey obtained obtained + from Census. Variable is Male householder, no wife present, family + household combined with Female household, no husband prsent, family + household, divided by the total number of Family households. + urban + % of population in Urbanized Areas as of 2010 Census. Urbanized + Areas are area of 50,000 or more people.""" + +import numpy as np +from statsmodels.datasets import utils as du +from os.path import dirname, abspath + +def load(): + """ + Load the statecrime data and return a Dataset class instance. + + Returns + ------- + Dataset instance: + See DATASET_PROPOSAL.txt for more information. + """ + data = _get_data() + ##### SET THE INDICES ##### + #NOTE: None for exog_idx is the complement of endog_idx + return du.process_recarray(data, endog_idx=2, exog_idx=[7, 4, 3, 5], + dtype=float) + +def load_pandas(): + data = _get_data() + ##### SET THE INDICES ##### + #NOTE: None for exog_idx is the complement of endog_idx + return du.process_recarray_pandas(data, endog_idx=2, exog_idx=[7,4,3,5], + dtype=float, index_idx=0) + +def _get_data(): + filepath = dirname(abspath(__file__)) + ##### EDIT THE FOLLOWING TO POINT TO DatasetName.csv ##### + with open(filepath + '/statecrime.csv', 'rb') as f: + data = np.recfromtxt(f, delimiter=",", names=True, dtype=None) + return data diff --git a/statsmodels/datasets/statecrime/statecrime.csv b/statsmodels/datasets/statecrime/statecrime.csv new file mode 100644 index 0000000..4610e85 --- /dev/null +++ b/statsmodels/datasets/statecrime/statecrime.csv @@ -0,0 +1,52 @@ +state,violent,murder,hs_grad,poverty,single,white,urban +Alabama,459.9,7.1,82.1,17.5,29.0,70,48.65 +Alaska,632.6,3.2,91.4,9.0,25.5,68.3,44.46 +Arizona,423.2,5.5,84.2,16.5,25.7,80,80.07 +Arkansas,530.3,6.3,82.4,18.8,26.3,78.4,39.54 +California,473.4,5.4,80.6,14.2,27.8,62.7,89.73 +Colorado,340.9,3.2,89.3,12.9,21.4,84.6,76.86 +Connecticut,300.5,3.0,88.6,9.4,25.0,79.1,84.83 +Delaware,645.1,4.6,87.4,10.8,27.6,71.9,68.71 +District of Columbia,1348.9,24.2,87.1,18.4,48.0,38.7,100 +Florida,612.6,5.5,85.3,14.9,26.6,76.9,87.44 +Georgia,432.6,6.0,83.9,16.5,29.3,61.9,65.38 +Hawaii,274.1,1.8,90.4,10.4,26.3,26.9,71.46 +Idaho,238.5,1.5,88.4,14.3,19.0,92.3,50.51 +Illinois,618.2,8.4,86.4,13.3,26.0,72.5,79.97 +Indiana,366.4,5.3,86.6,14.4,24.5,85.7,59.17 +Iowa,294.5,1.3,90.5,11.8,20.3,92.3,41.66 +Kansas ,412.0,4.7,89.7,13.4,22.8,86.3,50.17 +Kentucky ,265.5,4.3,81.7,18.6,25.4,88.8,40.99 +Louisiana,628.4,12.3,82.2,17.3,31.4,63.7,61.33 +Maine,119.9,2.0,90.2,12.3,22.0,94.9,26.21 +Maryland,590.0,7.7,88.2,9.1,27.3,60.2,83.53 +Massachusetts,465.6,2.7,89.0,10.3,25.0,82.4,90.3 +Michigan,504.4,6.3,87.9,16.2,25.6,79.9,66.37 +Minnesota,214.2,1.5,91.5,11.0,20.2,87.4,58 +Mississippi,306.7,6.9,80.4,21.9,32.8,59.6,27.62 +Missouri,500.3,6.6,86.8,14.6,25.3,83.9,56.61 +Montana ,283.9,3.2,90.8,15.1,20.3,89.4,26.49 +Nebraska,305.5,2.5,89.8,12.3,20.9,88.1,53.78 +Nevada,704.6,5.9,83.9,12.4,28.5,76.2,86.51 +New Hampshire,169.5,0.9,91.3,8.5,19.5,94.5,47.34 +New Jersey,311.3,3.7,87.4,9.4,25.8,70.7,92.24 +New Mexico,652.8,10.0,82.8,18.0,29.1,72.5,53.75 +New York,385.5,4.0,84.7,14.2,30.2,67.4,82.66 +North Carolina,414.0,5.4,84.3,16.3,26.3,70.5,54.88 +North Dakota,223.6,2.0,90.1,11.7,18.2,90.2,40 +Ohio,358.1,5.0,87.6,15.2,26.3,84,65.31 +Oklahoma,510.4,6.5,85.6,16.2,25.9,75.4,45.79 +Oregon,261.2,2.3,89.1,14.3,22.7,85.6,62.47 +Pennsylvania,388.9,5.4,87.9,12.5,24.5,83.5,70.68 +Rhode Island,254.3,3.0,84.7,11.5,27.3,82.6,90.46 +South Carolina,675.1,6.7,83.6,17.1,28.4,67.6,55.78 +South Dakota,201.0,3.6,89.9,14.2,20.8,86.3,29.92 +Tennessee,666.0,7.4,83.1,17.1,26.3,79.1,54.38 +Texas,491.4,5.4,79.9,17.2,27.6,73.8,75.35 +Utah,216.2,1.4,90.4,11.5,17.9,89.3,81.17 +Vermont,135.1,1.3,91.0,11.4,21.3,95.8,17.38 +Virginia,230.0,4.7,86.6,10.5,24.0,70.4,69.79 +Washington,338.3,2.8,89.7,12.3,22.2,80.2,74.97 +West Virginia,331.2,4.9,82.8,17.7,23.3,94.3,33.2 +Wisconsin,259.7,2.6,89.8,12.4,22.2,88.4,55.8 +Wyoming,219.3,2.0,91.8,9.8,18.9,91.3,24.51 diff --git a/statsmodels/datasets/strikes/__init__.py b/statsmodels/datasets/strikes/__init__.py new file mode 100644 index 0000000..df22d8b --- /dev/null +++ b/statsmodels/datasets/strikes/__init__.py @@ -0,0 +1 @@ +from .data import * diff --git a/statsmodels/datasets/strikes/data.py b/statsmodels/datasets/strikes/data.py new file mode 100644 index 0000000..f2c36b5 --- /dev/null +++ b/statsmodels/datasets/strikes/data.py @@ -0,0 +1,71 @@ +#! /usr/bin/env python +"""U.S. Strike Duration Data""" + +__docformat__ = 'restructuredtext' + +COPYRIGHT = """This is public domain.""" +TITLE = __doc__ +SOURCE = """ +This is a subset of the data used in Kennan (1985). It was originally +published by the Bureau of Labor Statistics. + +:: + + Kennan, J. 1985. "The duration of contract strikes in US manufacturing. + `Journal of Econometrics` 28.1, 5-28. +""" + +DESCRSHORT = """Contains data on the length of strikes in US manufacturing and +unanticipated industrial production.""" + +DESCRLONG = """Contains data on the length of strikes in US manufacturing and +unanticipated industrial production. The data is a subset of the data originally +used by Kennan. The data here is data for the months of June only to avoid +seasonal issues.""" + +#suggested notes +NOTE = """:: + + Number of observations - 62 + + Number of variables - 2 + + Variable name definitions:: + + duration - duration of the strike in days + iprod - unanticipated industrial production +""" + +from numpy import recfromtxt, column_stack, array +from statsmodels.datasets import utils as du +from os.path import dirname, abspath + +def load(): + """ + Load the strikes data and return a Dataset class instance. + + Returns + ------- + Dataset instance: + See DATASET_PROPOSAL.txt for more information. + """ + data = _get_data() + return du.process_recarray(data, endog_idx=0, dtype=float) + +def load_pandas(): + """ + Load the strikes data and return a Dataset class instance. + + Returns + ------- + Dataset instance: + See DATASET_PROPOSAL.txt for more information. + """ + data = _get_data() + return du.process_recarray_pandas(data, endog_idx=0, dtype=float) + +def _get_data(): + filepath = dirname(abspath(__file__)) + with open(filepath + '/strikes.csv', 'rb') as f: + data = recfromtxt(f, delimiter=",", names=True, dtype=float) + return data diff --git a/statsmodels/datasets/strikes/strikes.csv b/statsmodels/datasets/strikes/strikes.csv new file mode 100644 index 0000000..56424a8 --- /dev/null +++ b/statsmodels/datasets/strikes/strikes.csv @@ -0,0 +1,63 @@ +duration, iprod +7, .01138 +9, .01138 +13, .01138 +14, .01138 +26, .01138 +29, .01138 +52, .01138 +130, .01138 +9, .02299 +37, .02299 +41, .02299 +49, .02299 +52, .02299 +119, .02299 +3, -.03957 +17, -.03957 +19, -.03957 +28, -.03957 +72, -.03957 +99, -.03957 +104, -.03957 +114, -.03957 +152, -.03957 +153, -.03957 +216, -.03957 +15, -.05467 +61, -.05467 +98, -.05467 +2, .00535 +25, .00535 +85, .00535 +3, .07427 +10, .07427 +1, .06450 +2, .06450 +2, .06450 +3, .06450 +3, .06450 +4, .06450 +8, .06450 +11, .06450 +22, .06450 +23, .06450 +27, .06450 +32, .06450 +33, .06450 +35, .06450 +43, .06450 +43, .06450 +44, .06450 +100, .06450 +5, -.10443 +49, -.10443 +2, -.00700 +12, -.00700 +12, -.00700 +21, -.00700 +21, -.00700 +27, -.00700 +38, -.00700 +42, -.00700 +117, -.00700 diff --git a/statsmodels/datasets/sunspots/R_sunspots.s b/statsmodels/datasets/sunspots/R_sunspots.s new file mode 100644 index 0000000..373a491 --- /dev/null +++ b/statsmodels/datasets/sunspots/R_sunspots.s @@ -0,0 +1,9 @@ +d <- read.table('./sunspots.csv', sep=',', header=T) +attach(d) + +mod_ols <- ar(SUNACTIVITY, aic=FALSE, order.max=9, method="ols", intercept=FALSE) +mod_yw <- ar(SUNACTIVITY, aic=FALSE, order.max=9, method="yw") +mod_burg <- ar(SUNACTIVITY, aic=FALSE, order.max=9, method="burg") +mod_mle <- ar(SUNACTIVITY, aic=FALSE, order.max=9, method="mle") + +select_ols <- ar(SUNACTIVITY, aic=TRUE, method="ols") diff --git a/statsmodels/datasets/sunspots/__init__.py b/statsmodels/datasets/sunspots/__init__.py new file mode 100644 index 0000000..df22d8b --- /dev/null +++ b/statsmodels/datasets/sunspots/__init__.py @@ -0,0 +1 @@ +from .data import * diff --git a/statsmodels/datasets/sunspots/arima_mod.R b/statsmodels/datasets/sunspots/arima_mod.R new file mode 100644 index 0000000..902b272 --- /dev/null +++ b/statsmodels/datasets/sunspots/arima_mod.R @@ -0,0 +1,3 @@ +dta <- read.csv('./sunspots.csv') +attach(dta) +arma_mod <- arima(SUNACTIVITY, order=c(9,0,0), xreg=rep(1,309), include.mean=FALSE) diff --git a/statsmodels/datasets/sunspots/data.py b/statsmodels/datasets/sunspots/data.py new file mode 100644 index 0000000..780b6d8 --- /dev/null +++ b/statsmodels/datasets/sunspots/data.py @@ -0,0 +1,71 @@ +"""Yearly sunspots data 1700-2008""" + +__docformat__ = 'restructuredtext' + +COPYRIGHT = """This data is public domain.""" +TITLE = __doc__ +SOURCE = """ +http://www.ngdc.noaa.gov/stp/solar/solarda3.html + +The original dataset contains monthly data on sunspot activity in the file +./src/sunspots_yearly.dat. There is also sunspots_monthly.dat. +""" + +DESCRSHORT = """Yearly (1700-2008) data on sunspots from the National +Geophysical Data Center.""" + +DESCRLONG = DESCRSHORT + +NOTE = """:: + + Number of Observations - 309 (Annual 1700 - 2008) + Number of Variables - 1 + Variable name definitions:: + + SUNACTIVITY - Number of sunspots for each year + + The data file contains a 'YEAR' variable that is not returned by load. +""" + +from numpy import recfromtxt, array +from pandas import Series, DataFrame + +from statsmodels.datasets.utils import Dataset +from os.path import dirname, abspath + +def load(): + """ + Load the yearly sunspot data and returns a data class. + + Returns + -------- + Dataset instance: + See DATASET_PROPOSAL.txt for more information. + + Notes + ----- + This dataset only contains data for one variable, so the attributes + data, raw_data, and endog are all the same variable. There is no exog + attribute defined. + """ + data = _get_data() + endog_name = 'SUNACTIVITY' + endog = array(data[endog_name], dtype=float) + dataset = Dataset(data=data, names=[endog_name], endog=endog, + endog_name=endog_name) + return dataset + +def load_pandas(): + data = DataFrame(_get_data()) + # TODO: time series + endog = Series(data['SUNACTIVITY'], index=data['YEAR'].astype(int)) + dataset = Dataset(data=data, names=list(data.columns), + endog=endog, endog_name='volume') + return dataset + +def _get_data(): + filepath = dirname(abspath(__file__)) + with open(filepath + '/sunspots.csv', 'rb') as f: + data = recfromtxt(f, delimiter=",", + names=True, dtype=float) + return data diff --git a/statsmodels/datasets/sunspots/src/sunspots_monthly.dat b/statsmodels/datasets/sunspots/src/sunspots_monthly.dat new file mode 100644 index 0000000..577ce4d --- /dev/null +++ b/statsmodels/datasets/sunspots/src/sunspots_monthly.dat @@ -0,0 +1,323 @@ + MONTHLY MEAN SUNSPOT NUMBERS +=============================================================================== +Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec +------------------------------------------------------------------------------- +1749 58.0 62.6 70.0 55.7 85.0 83.5 94.8 66.3 75.9 75.5 158.6 85.2 +1750 73.3 75.9 89.2 88.3 90.0 100.0 85.4 103.0 91.2 65.7 63.3 75.4 + +1751 70.0 43.5 45.3 56.4 60.7 50.7 66.3 59.8 23.5 23.2 28.5 44.0 +1752 35.0 50.0 71.0 59.3 59.7 39.6 78.4 29.3 27.1 46.6 37.6 40.0 +1753 44.0 32.0 45.7 38.0 36.0 31.7 22.0 39.0 28.0 25.0 20.0 6.7 +1754 0.0 3.0 1.7 13.7 20.7 26.7 18.8 12.3 8.2 24.1 13.2 4.2 +1755 10.2 11.2 6.8 6.5 0.0 0.0 8.6 3.2 17.8 23.7 6.8 20.0 + +1756 12.5 7.1 5.4 9.4 12.5 12.9 3.6 6.4 11.8 14.3 17.0 9.4 +1757 14.1 21.2 26.2 30.0 38.1 12.8 25.0 51.3 39.7 32.5 64.7 33.5 +1758 37.6 52.0 49.0 72.3 46.4 45.0 44.0 38.7 62.5 37.7 43.0 43.0 +1759 48.3 44.0 46.8 47.0 49.0 50.0 51.0 71.3 77.2 59.7 46.3 57.0 +1760 67.3 59.5 74.7 58.3 72.0 48.3 66.0 75.6 61.3 50.6 59.7 61.0 + +1761 70.0 91.0 80.7 71.7 107.2 99.3 94.1 91.1 100.7 88.7 89.7 46.0 +1762 43.8 72.8 45.7 60.2 39.9 77.1 33.8 67.7 68.5 69.3 77.8 77.2 +1763 56.5 31.9 34.2 32.9 32.7 35.8 54.2 26.5 68.1 46.3 60.9 61.4 +1764 59.7 59.7 40.2 34.4 44.3 30.0 30.0 30.0 28.2 28.0 26.0 25.7 +1765 24.0 26.0 25.0 22.0 20.2 20.0 27.0 29.7 16.0 14.0 14.0 13.0 + +1766 12.0 11.0 36.6 6.0 26.8 3.0 3.3 4.0 4.3 5.0 5.7 19.2 +1767 27.4 30.0 43.0 32.9 29.8 33.3 21.9 40.8 42.7 44.1 54.7 53.3 +1768 53.5 66.1 46.3 42.7 77.7 77.4 52.6 66.8 74.8 77.8 90.6 111.8 +1769 73.9 64.2 64.3 96.7 73.6 94.4 118.6 120.3 148.8 158.2 148.1 112.0 +1770 104.0 142.5 80.1 51.0 70.1 83.3 109.8 126.3 104.4 103.6 132.2 102.3 + +1771 36.0 46.2 46.7 64.9 152.7 119.5 67.7 58.5 101.4 90.0 99.7 95.7 +1772 100.9 90.8 31.1 92.2 38.0 57.0 77.3 56.2 50.5 78.6 61.3 64.0 +1773 54.6 29.0 51.2 32.9 41.1 28.4 27.7 12.7 29.3 26.3 40.9 43.2 +1774 46.8 65.4 55.7 43.8 51.3 28.5 17.5 6.6 7.9 14.0 17.7 12.2 +1775 4.4 0.0 11.6 11.2 3.9 12.3 1.0 7.9 3.2 5.6 15.1 7.9 + +1776 21.7 11.6 6.3 21.8 11.2 19.0 1.0 24.2 16.0 30.0 35.0 40.0 +1777 45.0 36.5 39.0 95.5 80.3 80.7 95.0 112.0 116.2 106.5 146.0 157.3 +1778 177.3 109.3 134.0 145.0 238.9 171.6 153.0 140.0 171.7 156.3 150.3 105.0 +1779 114.7 165.7 118.0 145.0 140.0 113.7 143.0 112.0 111.0 124.0 114.0 110.0 +1780 70.0 98.0 98.0 95.0 107.2 88.0 86.0 86.0 93.7 77.0 60.0 58.7 + +1781 98.7 74.7 53.0 68.3 104.7 97.7 73.5 66.0 51.0 27.3 67.0 35.2 +1782 54.0 37.5 37.0 41.0 54.3 38.0 37.0 44.0 34.0 23.2 31.5 30.0 +1783 28.0 38.7 26.7 28.3 23.0 25.2 32.2 20.0 18.0 8.0 15.0 10.5 +1784 13.0 8.0 11.0 10.0 6.0 9.0 6.0 10.0 10.0 8.0 17.0 14.0 +1785 6.5 8.0 9.0 15.7 20.7 26.3 36.3 20.0 32.0 47.2 40.2 27.3 + +1786 37.2 47.6 47.7 85.4 92.3 59.0 83.0 89.7 111.5 112.3 116.0 112.7 +1787 134.7 106.0 87.4 127.2 134.8 99.2 128.0 137.2 157.3 157.0 141.5 174.0 +1788 138.0 129.2 143.3 108.5 113.0 154.2 141.5 136.0 141.0 142.0 94.7 129.5 +1789 114.0 125.3 120.0 123.3 123.5 120.0 117.0 103.0 112.0 89.7 134.0 135.5 +1790 103.0 127.5 96.3 94.0 93.0 91.0 69.3 87.0 77.3 84.3 82.0 74.0 + +1791 72.7 62.0 74.0 77.2 73.7 64.2 71.0 43.0 66.5 61.7 67.0 66.0 +1792 58.0 64.0 63.0 75.7 62.0 61.0 45.8 60.0 59.0 59.0 57.0 56.0 +1793 56.0 55.0 55.5 53.0 52.3 51.0 50.0 29.3 24.0 47.0 44.0 45.7 +1794 45.0 44.0 38.0 28.4 55.7 41.5 41.0 40.0 11.1 28.5 67.4 51.4 +1795 21.4 39.9 12.6 18.6 31.0 17.1 12.9 25.7 13.5 19.5 25.0 18.0 + +1796 22.0 23.8 15.7 31.7 21.0 6.7 26.9 1.5 18.4 11.0 8.4 5.1 +1797 14.4 4.2 4.0 4.0 7.3 11.1 4.3 6.0 5.7 6.9 5.8 3.0 +1798 2.0 4.0 12.4 1.1 0.0 0.0 0.0 3.0 2.4 1.5 12.5 9.9 +1799 1.6 12.6 21.7 8.4 8.2 10.6 2.1 0.0 0.0 4.6 2.7 8.6 +1800 6.9 9.3 13.9 0.0 5.0 23.7 21.0 19.5 11.5 12.3 10.5 40.1 + +1801 27.0 29.0 30.0 31.0 32.0 31.2 35.0 38.7 33.5 32.6 39.8 48.2 +1802 47.8 47.0 40.8 42.0 44.0 46.0 48.0 50.0 51.8 38.5 34.5 50.0 +1803 50.0 50.8 29.5 25.0 44.3 36.0 48.3 34.1 45.3 54.3 51.0 48.0 +1804 45.3 48.3 48.0 50.6 33.4 34.8 29.8 43.1 53.0 62.3 61.0 60.0 +1805 61.0 44.1 51.4 37.5 39.0 40.5 37.6 42.7 44.4 29.4 41.0 38.3 + +1806 39.0 29.6 32.7 27.7 26.4 25.6 30.0 26.3 24.0 27.0 25.0 24.0 +1807 12.0 12.2 9.6 23.8 10.0 12.0 12.7 12.0 5.7 8.0 2.6 0.0 +1808 0.0 4.5 0.0 12.3 13.5 13.5 6.7 8.0 11.7 4.7 10.5 12.3 +1809 7.2 9.2 0.9 2.5 2.0 7.7 0.3 0.2 0.4 0.0 0.0 0.0 +1810 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 + +1811 0.0 0.0 0.0 0.0 0.0 0.0 6.6 0.0 2.4 6.1 0.8 1.1 +1812 11.3 1.9 0.7 0.0 1.0 1.3 0.5 15.6 5.2 3.9 7.9 10.1 +1813 0.0 10.3 1.9 16.6 5.5 11.2 18.3 8.4 15.3 27.8 16.7 14.3 +1814 22.2 12.0 5.7 23.8 5.8 14.9 18.5 2.3 8.1 19.3 14.5 20.1 +1815 19.2 32.2 26.2 31.6 9.8 55.9 35.5 47.2 31.5 33.5 37.2 65.0 + +1816 26.3 68.8 73.7 58.8 44.3 43.6 38.8 23.2 47.8 56.4 38.1 29.9 +1817 36.4 57.9 96.2 26.4 21.2 40.0 50.0 45.0 36.7 25.6 28.9 28.4 +1818 34.9 22.4 25.4 34.5 53.1 36.4 28.0 31.5 26.1 31.6 10.9 25.8 +1819 32.8 20.7 3.7 20.2 19.6 35.0 31.4 26.1 14.9 27.5 25.1 30.6 +1820 19.2 26.6 4.5 19.4 29.3 10.8 20.6 25.9 5.2 8.9 7.9 9.1 + +1821 21.5 4.2 5.7 9.2 1.7 1.8 2.5 4.8 4.4 18.8 4.4 0.2 +1822 0.0 0.9 16.1 13.5 1.5 5.6 7.9 2.1 0.0 0.4 0.0 0.0 +1823 0.0 0.0 0.6 0.0 0.0 0.0 0.5 0.0 0.0 0.0 0.0 20.4 +1824 21.7 10.8 0.0 19.4 2.8 0.0 0.0 1.4 20.5 25.2 0.0 0.8 +1825 5.0 15.5 22.4 3.8 15.5 15.4 30.9 25.7 15.7 15.6 11.7 22.0 + +1826 17.7 18.2 36.7 24.0 32.4 37.1 52.5 39.6 18.9 50.6 39.5 68.1 +1827 34.6 47.4 57.8 46.0 56.3 56.7 42.3 53.7 49.6 56.1 48.2 46.1 +1828 52.8 64.4 65.0 61.1 89.1 98.0 54.2 76.4 50.4 54.7 57.0 46.9 +1829 43.0 49.4 72.3 95.0 67.4 73.9 90.8 77.6 52.8 57.2 67.6 56.5 +1830 52.2 72.1 84.6 106.3 66.3 65.1 43.9 50.7 62.1 84.4 81.2 82.1 + +1831 47.5 50.1 93.4 54.5 38.1 33.4 45.2 55.0 37.9 46.3 43.5 28.9 +1832 30.9 55.6 55.1 26.9 41.3 26.7 14.0 8.9 8.2 21.1 14.3 27.5 +1833 11.3 14.9 11.8 2.8 12.9 1.0 7.0 5.7 11.6 7.5 5.9 9.9 +1834 4.9 18.1 3.9 1.4 8.8 7.8 8.7 4.0 11.5 24.8 30.5 34.5 +1835 7.5 24.5 19.7 61.5 43.6 33.2 59.8 59.0 100.8 95.2 100.0 77.5 + +1836 88.6 107.6 98.2 142.9 111.4 124.7 116.7 107.8 95.1 137.4 120.9 206.2 +1837 188.0 175.6 134.6 138.2 111.7 158.0 162.8 134.0 96.3 123.7 107.0 129.8 +1838 144.9 84.8 140.8 126.6 137.6 94.5 108.2 78.8 73.6 90.8 77.4 79.8 +1839 105.6 102.5 77.7 61.8 53.8 54.6 84.8 131.2 132.7 90.9 68.8 63.7 +1840 81.2 87.7 67.8 65.9 69.2 48.5 60.7 57.8 74.0 55.0 54.3 53.7 + +1841 24.1 29.9 29.7 40.2 67.5 55.7 30.8 39.3 36.5 28.5 19.8 38.8 +1842 20.4 22.1 21.7 26.9 24.9 20.5 12.6 26.6 18.4 38.1 40.5 17.6 +1843 13.3 3.5 8.3 9.5 21.1 10.5 9.5 11.8 4.2 5.3 19.1 12.7 +1844 9.4 14.7 13.6 20.8 11.6 3.7 21.2 23.9 7.0 21.5 10.7 21.6 +1845 25.7 43.6 43.3 57.0 47.8 31.1 30.6 32.3 29.6 40.7 39.4 59.7 + +1846 38.7 51.0 63.9 69.3 59.9 65.1 46.5 54.8 107.1 55.9 60.4 65.5 +1847 62.6 44.9 85.7 44.7 75.4 85.3 52.2 140.6 160.9 180.4 138.9 109.6 +1848 159.1 111.8 108.6 107.1 102.2 129.0 139.2 132.6 100.3 132.4 114.6 159.5 +1849 157.0 131.7 96.2 102.5 80.6 81.1 78.0 67.7 93.7 71.5 99.0 97.0 +1850 78.0 89.4 82.6 44.1 61.6 70.0 39.1 61.6 86.2 71.0 54.8 61.0 + +1851 75.5 105.4 64.6 56.5 62.6 63.2 36.1 57.4 67.9 62.5 51.0 71.4 +1852 68.4 66.4 61.2 65.4 54.9 46.9 42.1 39.7 37.5 67.3 54.3 45.4 +1853 41.1 42.9 37.7 47.6 34.7 40.0 45.9 50.4 33.5 42.3 28.8 23.4 +1854 15.4 20.0 20.7 26.5 24.0 21.1 18.7 15.8 22.4 12.6 28.2 21.6 +1855 12.3 11.4 17.4 4.4 9.1 5.3 0.4 3.1 0.0 9.6 4.2 3.1 + +1856 0.5 4.9 0.4 6.5 0.0 5.2 4.6 5.9 4.4 4.5 7.7 7.2 +1857 13.7 7.4 5.2 11.1 28.6 16.0 22.2 16.9 42.4 40.6 31.4 37.2 +1858 39.0 34.9 57.5 38.3 41.4 44.5 56.7 55.3 80.1 91.2 51.9 66.9 +1859 83.7 87.6 90.3 85.7 91.0 87.1 95.2 106.8 105.8 114.6 97.2 81.0 +1860 82.4 88.3 98.9 71.4 107.1 108.6 116.7 100.3 92.2 90.1 97.9 95.6 + +1861 62.3 77.7 101.0 98.5 56.8 88.1 78.0 82.5 79.9 67.2 53.7 80.5 +1862 63.1 64.5 43.6 53.7 64.4 84.0 73.4 62.5 66.6 41.9 50.6 40.9 +1863 48.3 56.7 66.4 40.6 53.8 40.8 32.7 48.1 22.0 39.9 37.7 41.2 +1864 57.7 47.1 66.3 35.8 40.6 57.8 54.7 54.8 28.5 33.9 57.6 28.6 +1865 48.7 39.3 39.5 29.4 34.5 33.6 26.8 37.8 21.6 17.1 24.6 12.8 + +1866 31.6 38.4 24.6 17.6 12.9 16.5 9.3 12.7 7.3 14.1 9.0 1.5 +1867 0.0 0.7 9.2 5.1 2.9 1.5 5.0 4.8 9.8 13.5 9.6 25.2 +1868 15.6 15.7 26.5 36.6 26.7 31.1 29.0 34.4 47.2 61.6 59.1 67.6 +1869 60.9 59.9 52.7 41.0 103.9 108.4 59.2 79.6 80.6 59.3 78.1 104.3 +1870 77.3 114.9 157.6 160.0 176.0 135.6 132.4 153.8 136.0 146.4 147.5 130.0 + +1871 88.3 125.3 143.2 162.4 145.5 91.7 103.0 110.1 80.3 89.0 105.4 90.4 +1872 79.5 120.1 88.4 102.1 107.6 109.9 105.5 92.9 114.6 102.6 112.0 83.9 +1873 86.7 107.0 98.3 76.2 47.9 44.8 66.9 68.2 47.1 47.1 55.4 49.2 +1874 60.8 64.2 46.4 32.0 44.6 38.2 67.8 61.3 28.0 34.3 28.9 29.3 +1875 14.6 21.5 33.8 29.1 11.5 23.9 12.5 14.6 2.4 12.7 17.7 9.9 + +1876 14.3 15.0 30.6 2.3 5.1 1.6 15.2 8.8 9.9 14.3 9.9 8.2 +1877 24.4 8.7 11.9 15.8 21.6 14.2 6.0 6.3 16.9 6.7 14.2 2.2 +1878 3.3 6.6 7.8 0.1 5.9 6.4 0.1 0.0 5.3 1.1 4.1 0.5 +1879 1.0 0.6 0.0 6.2 2.4 4.8 7.5 10.7 6.1 12.3 13.1 7.3 +1880 24.0 27.2 19.3 19.5 23.5 34.1 21.9 48.1 66.0 43.0 30.7 29.6 + +1881 36.4 53.2 51.5 51.6 43.5 60.5 76.9 58.4 53.2 64.4 54.8 47.3 +1882 45.0 69.5 66.8 95.8 64.1 45.2 45.4 40.4 57.7 59.2 84.4 41.8 +1883 60.6 46.9 42.8 82.1 31.5 76.3 80.6 46.0 52.6 83.8 84.5 75.9 +1884 91.5 86.9 87.5 76.1 66.5 51.2 53.1 55.8 61.9 47.8 36.6 47.2 +1885 42.8 71.8 49.8 55.0 73.0 83.7 66.5 50.0 39.6 38.7 30.9 21.7 + +1886 29.9 25.9 57.3 43.7 30.7 27.1 30.3 16.9 21.4 8.6 0.3 13.0 +1887 10.3 13.2 4.2 6.9 20.0 15.7 23.3 21.4 7.4 6.6 6.9 20.7 +1888 12.7 7.1 7.8 5.1 7.0 7.1 3.1 2.8 8.8 2.1 10.7 6.7 +1889 0.8 8.5 6.7 4.3 2.4 6.4 9.4 20.6 6.5 2.1 0.2 6.7 +1890 5.3 0.6 5.1 1.6 4.8 1.3 11.6 8.5 17.2 11.2 9.6 7.8 + +1891 13.5 22.2 10.4 20.5 41.1 48.3 58.8 33.0 53.8 51.5 41.9 32.5 +1892 69.1 75.6 49.9 69.6 79.6 76.3 76.5 101.4 62.8 70.5 65.4 78.6 +1893 75.0 73.0 65.7 88.1 84.7 89.9 88.6 129.2 77.9 80.0 75.1 93.8 +1894 83.2 84.6 52.3 81.6 101.2 98.9 106.0 70.3 65.9 75.5 56.6 60.0 +1895 63.3 67.2 61.0 76.9 67.5 71.5 47.8 68.9 57.7 67.9 47.2 70.7 + +1896 29.0 57.4 52.0 43.8 27.7 49.0 45.0 27.2 61.3 28.7 38.0 42.6 +1897 40.6 29.4 29.1 31.0 20.0 11.3 27.6 21.8 48.1 14.3 8.4 33.3 +1898 30.2 36.4 38.3 14.5 25.8 22.3 9.0 31.4 34.8 34.4 30.9 12.6 +1899 19.5 9.2 18.1 14.2 7.7 20.5 13.5 2.9 8.4 13.0 7.8 10.5 +1900 9.4 13.6 8.6 16.0 15.2 12.1 8.3 4.3 8.3 12.9 4.5 0.3 + +1901 0.2 2.4 4.5 0.0 10.2 5.8 0.7 1.0 0.6 3.7 3.8 0.0 +1902 5.5 0.0 12.4 0.0 2.8 1.4 0.9 2.3 7.6 16.3 10.3 1.1 +1903 8.3 17.0 13.5 26.1 14.6 16.3 27.9 28.8 11.1 38.9 44.5 45.6 +1904 31.6 24.5 37.2 43.0 39.5 41.9 50.6 58.2 30.1 54.2 38.0 54.6 +1905 54.8 85.8 56.5 39.3 48.0 49.0 73.0 58.8 55.0 78.7 107.2 55.5 + +1906 45.5 31.3 64.5 55.3 57.7 63.2 103.6 47.7 56.1 17.8 38.9 64.7 +1907 76.4 108.2 60.7 52.6 42.9 40.4 49.7 54.3 85.0 65.4 61.5 47.3 +1908 39.2 33.9 28.7 57.6 40.8 48.1 39.5 90.5 86.9 32.3 45.5 39.5 +1909 56.7 46.6 66.3 32.3 36.0 22.6 35.8 23.1 38.8 58.4 55.8 54.2 +1910 26.4 31.5 21.4 8.4 22.2 12.3 14.1 11.5 26.2 38.3 4.9 5.8 + +1911 3.4 9.0 7.8 16.5 9.0 2.2 3.5 4.0 4.0 2.6 4.2 2.2 +1912 0.3 0.0 4.9 4.5 4.4 4.1 3.0 0.3 9.5 4.6 1.1 6.4 +1913 2.3 2.9 0.5 0.9 0.0 0.0 1.7 0.2 1.2 3.1 0.7 3.8 +1914 2.8 2.6 3.1 17.3 5.2 11.4 5.4 7.7 12.7 8.2 16.4 22.3 +1915 23.0 42.3 38.8 41.3 33.0 68.8 71.6 69.6 49.5 53.5 42.5 34.5 + +1916 45.3 55.4 67.0 71.8 74.5 67.7 53.5 35.2 45.1 50.7 65.6 53.0 +1917 74.7 71.9 94.8 74.7 114.1 114.9 119.8 154.5 129.4 72.2 96.4 129.3 +1918 96.0 65.3 72.2 80.5 76.7 59.4 107.6 101.7 79.9 85.0 83.4 59.2 +1919 48.1 79.5 66.5 51.8 88.1 111.2 64.7 69.0 54.7 52.8 42.0 34.9 +1920 51.1 53.9 70.2 14.8 33.3 38.7 27.5 19.2 36.3 49.6 27.2 29.9 + +1921 31.5 28.3 26.7 32.4 22.2 33.7 41.9 22.8 17.8 18.2 17.8 20.3 +1922 11.8 26.4 54.7 11.0 8.0 5.8 10.9 6.5 4.7 6.2 7.4 17.5 +1923 4.5 1.5 3.3 6.1 3.2 9.1 3.5 0.5 13.2 11.6 10.0 2.8 +1924 0.5 5.1 1.8 11.3 20.8 24.0 28.1 19.3 25.1 25.6 22.5 16.5 +1925 5.5 23.2 18.0 31.7 42.8 47.5 38.5 37.9 60.2 69.2 58.6 98.6 + +1926 71.8 69.9 62.5 38.5 64.3 73.5 52.3 61.6 60.8 71.5 60.5 79.4 +1927 81.6 93.0 69.6 93.5 79.1 59.1 54.9 53.8 68.4 63.1 67.2 45.2 +1928 83.5 73.5 85.4 80.6 77.0 91.4 98.0 83.8 89.7 61.4 50.3 59.0 +1929 68.9 62.8 50.2 52.8 58.2 71.9 70.2 65.8 34.4 54.0 81.1 108.0 +1930 65.3 49.9 35.0 38.2 36.8 28.8 21.9 24.9 32.1 34.4 35.6 25.8 + +1931 14.6 43.1 30.0 31.2 24.6 15.3 17.4 13.0 19.0 10.0 18.7 17.8 +1932 12.1 10.6 11.2 11.2 17.9 22.2 9.6 6.8 4.0 8.9 8.2 11.0 +1933 12.3 22.2 10.1 2.9 3.2 5.2 2.8 0.2 5.1 3.0 0.6 0.3 +1934 3.4 7.8 4.3 11.3 19.7 6.7 9.3 8.3 4.0 5.7 8.7 15.4 +1935 18.6 20.5 23.1 12.2 27.3 45.7 33.9 30.1 42.1 53.2 64.2 61.5 + +1936 62.8 74.3 77.1 74.9 54.6 70.0 52.3 87.0 76.0 89.0 115.4 123.4 +1937 132.5 128.5 83.9 109.3 116.7 130.3 145.1 137.7 100.7 124.9 74.4 88.8 +1938 98.4 119.2 86.5 101.0 127.4 97.5 165.3 115.7 89.6 99.1 122.2 92.7 +1939 80.3 77.4 64.6 109.1 118.3 101.0 97.6 105.8 112.6 88.1 68.1 42.1 +1940 50.5 59.4 83.3 60.7 54.4 83.9 67.5 105.5 66.5 55.0 58.4 68.3 + +1941 45.6 44.5 46.4 32.8 29.5 59.8 66.9 60.0 65.9 46.3 38.4 33.7 +1942 35.6 52.8 54.2 60.7 25.0 11.4 17.7 20.2 17.2 19.2 30.7 22.5 +1943 12.4 28.9 27.4 26.1 14.1 7.6 13.2 19.4 10.0 7.8 10.2 18.8 +1944 3.7 0.5 11.0 0.3 2.5 5.0 5.0 16.7 14.3 16.9 10.8 28.4 +1945 18.5 12.7 21.5 32.0 30.6 36.2 42.6 25.9 34.9 68.8 46.0 27.4 + +1946 47.6 86.2 76.6 75.7 84.9 73.5 116.2 107.2 94.4 102.3 123.8 121.7 +1947 115.7 133.4 129.8 149.8 201.3 163.9 157.9 188.8 169.4 163.6 128.0 116.5 +1948 108.5 86.1 94.8 189.7 174.0 167.8 142.2 157.9 143.3 136.3 95.8 138.0 +1949 119.1 182.3 157.5 147.0 106.2 121.7 125.8 123.8 145.3 131.6 143.5 117.6 +1950 101.6 94.8 109.7 113.4 106.2 83.6 91.0 85.2 51.3 61.4 54.8 54.1 + +1951 59.9 59.9 55.9 92.9 108.5 100.6 61.5 61.0 83.1 51.6 52.4 45.8 +1952 40.7 22.7 22.0 29.1 23.4 36.4 39.3 54.9 28.2 23.8 22.1 34.3 +1953 26.5 3.9 10.0 27.8 12.5 21.8 8.6 23.5 19.3 8.2 1.6 2.5 +1954 0.2 0.5 10.9 1.8 0.8 0.2 4.8 8.4 1.5 7.0 9.2 7.6 +1955 23.1 20.8 4.9 11.3 28.9 31.7 26.7 40.7 42.7 58.5 89.2 76.9 + +1956 73.6 124.0 118.4 110.7 136.6 116.6 129.1 169.6 173.2 155.3 201.3 192.1 +1957 165.0 130.2 157.4 175.2 164.6 200.7 187.2 158.0 235.8 253.8 210.9 239.4 +1958 202.5 164.9 190.7 196.0 175.3 171.5 191.4 200.2 201.2 181.5 152.3 187.6 +1959 217.4 143.1 185.7 163.3 172.0 168.7 149.6 199.6 145.2 111.4 124.0 125.0 +1960 146.3 106.0 102.2 122.0 119.6 110.2 121.7 134.1 127.2 82.8 89.6 85.6 + +1961 57.9 46.1 53.0 61.4 51.0 77.4 70.2 55.8 63.6 37.7 32.6 39.9 +1962 38.7 50.3 45.6 46.4 43.7 42.0 21.8 21.8 51.3 39.5 26.9 23.2 +1963 19.8 24.4 17.1 29.3 43.0 35.9 19.6 33.2 38.8 35.3 23.4 14.9 +1964 15.3 17.7 16.5 8.6 9.5 9.1 3.1 9.3 4.7 6.1 7.4 15.1 +1965 17.5 14.2 11.7 6.8 24.1 15.9 11.9 8.9 16.8 20.1 15.8 17.0 + +1966 28.2 24.4 25.3 48.7 45.3 47.7 56.7 51.2 50.2 57.2 57.2 70.4 +1967 110.9 93.6 111.8 69.5 86.5 67.3 91.5 107.2 76.8 88.2 94.3 126.4 +1968 121.8 111.9 92.2 81.2 127.2 110.3 96.1 109.3 117.2 107.7 86.0 109.8 +1969 104.4 120.5 135.8 106.8 120.0 106.0 96.8 98.0 91.3 95.7 93.5 97.9 +1970 111.5 127.8 102.9 109.5 127.5 106.8 112.5 93.0 99.5 86.6 95.2 83.5 + +1971 91.3 79.0 60.7 71.8 57.5 49.8 81.0 61.4 50.2 51.7 63.2 82.2 +1972 61.5 88.4 80.1 63.2 80.5 88.0 76.5 76.8 64.0 61.3 41.6 45.3 +1973 43.4 42.9 46.0 57.7 42.4 37.5 23.1 25.6 59.3 30.7 23.9 23.3 +1974 27.6 26.0 21.3 40.3 39.5 36.0 55.8 33.6 40.2 47.1 25.0 20.5 +1975 18.9 11.5 11.5 5.1 9.0 11.4 28.2 39.7 13.9 9.1 19.4 7.8 + +1976 8.1 4.3 21.9 18.8 12.4 12.2 1.9 16.4 13.5 20.6 5.2 15.3 +1977 16.4 23.1 8.7 12.9 18.6 38.5 21.4 30.1 44.0 43.8 29.1 43.2 +1978 51.9 93.6 76.5 99.7 82.7 95.1 70.4 58.1 138.2 125.1 97.9 122.7 +1979 166.6 137.5 138.0 101.5 134.4 149.5 159.4 142.2 188.4 186.2 183.3 176.3 +1980 159.6 155.0 126.2 164.1 179.9 157.3 136.3 135.4 155.0 164.7 147.9 174.4 + +1981 114.0 141.3 135.5 156.4 127.5 90.9 143.8 158.7 167.3 162.4 137.5 150.1 +1982 111.2 163.6 153.8 122.0 82.2 110.4 106.1 107.6 118.8 94.7 98.1 127.0 +1983 84.3 51.0 66.5 80.7 99.2 91.1 82.2 71.8 50.3 55.8 33.3 33.4 +1984 57.0 85.4 83.5 69.7 76.4 46.1 37.4 25.5 15.7 12.0 22.8 18.7 +1985 16.5 15.9 17.2 16.2 27.5 24.2 30.7 11.1 3.9 18.6 16.2 17.3 + +1986 2.5 23.2 15.1 18.5 13.7 1.1 18.1 7.4 3.8 35.4 15.2 6.8 +1987 10.4 2.4 14.7 39.6 33.0 17.4 33.0 38.7 33.9 60.6 39.9 27.1 +1988 59.0 40.0 76.2 88.0 60.1 101.8 113.8 111.6 120.1 125.1 125.1 179.2 +1989 161.3 165.1 131.4 130.6 138.5 196.2 126.9 168.9 176.7 159.4 173.0 165.5 +1990 177.3 130.5 140.3 140.3 132.2 105.4 149.4 200.3 125.2 145.5 131.4 129.7 + +1991 136.9 167.5 141.9 140.0 121.3 169.7 173.7 176.3 125.3 144.1 108.2 144.4 +1992 150.0 161.1 106.7 99.8 73.8 65.2 85.7 64.5 63.9 88.7 91.8 82.6 +1993 59.3 91.0 69.8 62.2 61.3 49.8 57.9 42.2 22.4 56.4 35.6 48.9 +1994 57.8 35.5 31.7 16.1 17.8 28.0 35.1 22.5 25.7 44.0 18.0 26.2 +1995 24.2 29.9 31.1 14.0 14.5 15.6 14.5 14.3 11.8 21.1 9.0 10.0 + +1996 11.5 4.4 9.2 4.8 5.5 11.8 8.2 14.4 1.6 0.9 17.9 13.3 +1997 5.7 7.6 8.7 15.5 18.5 12.7 10.4 24.4 51.3 23.8 39.0 41.2 +1998 31.9 40.3 54.8 53.4 56.3 70.7 66.6 92.2 92.9 55.5 74.0 81.9 +1999 62.0 66.3 68.8 63.7 106.4 137.7 113.5 93.7 71.5 116.7 133.2 84.6 +2000 90.1 112.9 138.5 125.5 121.6 124.9 170.1 130.5 109.7 99.4 106.8 104.4 + +2001 95.6 80.6 113.5 107.7 96.6 134.0 81.8 106.4 150.7 125.5 106.5 132.2 +2002 114.1 107.4 98.4 120.7 120.8 88.3 99.6 116.4 109.6 97.5 95.5 80.8 +2003 79.7 46.0 61.1 60.0 54.6 77.4 83.3 72.7 48.7 65.5 67.3 46.5 +2004 37.3 45.8 49.1 39.3 41.5 43.2 51.1 40.9 27.7 48.0 43.5 17.9 +2005 31.3 29.2 24.5 24.2 42.7 39.3 40.1 36.4 21.9 8.7 18.0 41.1 +2006 15.3 4.9 10.6 30.2 22.3 13.9 12.2 12.9 14.4 10.5 21.4 13.6 +2007 16.8 10.7 4.5 3.4 11.7 12.1 9.7 6.0 2.4 0.9 1.7 10.1 +2008 3.3 2.1 9.3 2.9 3.2 3.4 0.8 0.5 1.1 2.9 4.1 0.8 +2009 1.5 1.4 0.7 1.2 2.9 2.6 +------------------------------------------------------------------------------- +No observations were available during February 1824. The value shown was +interpolated from the January and March monthly means of that year. + + +Note: Data are preliminary after Dec 08. + diff --git a/statsmodels/datasets/sunspots/src/sunspots_yearly.dat b/statsmodels/datasets/sunspots/src/sunspots_yearly.dat new file mode 100644 index 0000000..e1d6472 --- /dev/null +++ b/statsmodels/datasets/sunspots/src/sunspots_yearly.dat @@ -0,0 +1,309 @@ +1700 5 +1701 11 +1702 16 +1703 23 +1704 36 +1705 58 +1706 29 +1707 20 +1708 10 +1709 8 +1710 3 +1711 0 +1712 0 +1713 2 +1714 11 +1715 27 +1716 47 +1717 63 +1718 60 +1719 39 +1720 28 +1721 26 +1722 22 +1723 11 +1724 21 +1725 40 +1726 78 +1727 122 +1728 103 +1729 73 +1730 47 +1731 35 +1732 11 +1733 5 +1734 16 +1735 34 +1736 70 +1737 81 +1738 111 +1739 101 +1740 73 +1741 40 +1742 20 +1743 16 +1744 5 +1745 11 +1746 22 +1747 40 +1748 60 +1749 80.9 +1750 83.4 +1751 47.7 +1752 47.8 +1753 30.7 +1754 12.2 +1755 9.6 +1756 10.2 +1757 32.4 +1758 47.6 +1759 54.0 +1760 62.9 +1761 85.9 +1762 61.2 +1763 45.1 +1764 36.4 +1765 20.9 +1766 11.4 +1767 37.8 +1768 69.8 +1769 106.1 +1770 100.8 +1771 81.6 +1772 66.5 +1773 34.8 +1774 30.6 +1775 7.0 +1776 19.8 +1777 92.5 +1778 154.4 +1779 125.9 +1780 84.8 +1781 68.1 +1782 38.5 +1783 22.8 +1784 10.2 +1785 24.1 +1786 82.9 +1787 132.0 +1788 130.9 +1789 118.1 +1790 89.9 +1791 66.6 +1792 60.0 +1793 46.9 +1794 41.0 +1795 21.3 +1796 16.0 +1797 6.4 +1798 4.1 +1799 6.8 +1800 14.5 +1801 34.0 +1802 45.0 +1803 43.1 +1804 47.5 +1805 42.2 +1806 28.1 +1807 10.1 +1808 8.1 +1809 2.5 +1810 0.0 +1811 1.4 +1812 5.0 +1813 12.2 +1814 13.9 +1815 35.4 +1816 45.8 +1817 41.1 +1818 30.1 +1819 23.9 +1820 15.6 +1821 6.6 +1822 4.0 +1823 1.8 +1824 8.5 +1825 16.6 +1826 36.3 +1827 49.6 +1828 64.2 +1829 67.0 +1830 70.9 +1831 47.8 +1832 27.5 +1833 8.5 +1834 13.2 +1835 56.9 +1836 121.5 +1837 138.3 +1838 103.2 +1839 85.7 +1840 64.6 +1841 36.7 +1842 24.2 +1843 10.7 +1844 15.0 +1845 40.1 +1846 61.5 +1847 98.5 +1848 124.7 +1849 96.3 +1850 66.6 +1851 64.5 +1852 54.1 +1853 39.0 +1854 20.6 +1855 6.7 +1856 4.3 +1857 22.7 +1858 54.8 +1859 93.8 +1860 95.8 +1861 77.2 +1862 59.1 +1863 44.0 +1864 47.0 +1865 30.5 +1866 16.3 +1867 7.3 +1868 37.6 +1869 74.0 +1870 139.0 +1871 111.2 +1872 101.6 +1873 66.2 +1874 44.7 +1875 17.0 +1876 11.3 +1877 12.4 +1878 3.4 +1879 6.0 +1880 32.3 +1881 54.3 +1882 59.7 +1883 63.7 +1884 63.5 +1885 52.2 +1886 25.4 +1887 13.1 +1888 6.8 +1889 6.3 +1890 7.1 +1891 35.6 +1892 73.0 +1893 85.1 +1894 78.0 +1895 64.0 +1896 41.8 +1897 26.2 +1898 26.7 +1899 12.1 +1900 9.5 +1901 2.7 +1902 5.0 +1903 24.4 +1904 42.0 +1905 63.5 +1906 53.8 +1907 62.0 +1908 48.5 +1909 43.9 +1910 18.6 +1911 5.7 +1912 3.6 +1913 1.4 +1914 9.6 +1915 47.4 +1916 57.1 +1917 103.9 +1918 80.6 +1919 63.6 +1920 37.6 +1921 26.1 +1922 14.2 +1923 5.8 +1924 16.7 +1925 44.3 +1926 63.9 +1927 69.0 +1928 77.8 +1929 64.9 +1930 35.7 +1931 21.2 +1932 11.1 +1933 5.7 +1934 8.7 +1935 36.1 +1936 79.7 +1937 114.4 +1938 109.6 +1939 88.8 +1940 67.8 +1941 47.5 +1942 30.6 +1943 16.3 +1944 9.6 +1945 33.2 +1946 92.6 +1947 151.6 +1948 136.3 +1949 134.7 +1950 83.9 +1951 69.4 +1952 31.5 +1953 13.9 +1954 4.4 +1955 38.0 +1956 141.7 +1957 190.2 +1958 184.8 +1959 159.0 +1960 112.3 +1961 53.9 +1962 37.6 +1963 27.9 +1964 10.2 +1965 15.1 +1966 47.0 +1967 93.8 +1968 105.9 +1969 105.5 +1970 104.5 +1971 66.6 +1972 68.9 +1973 38.0 +1974 34.5 +1975 15.5 +1976 12.6 +1977 27.5 +1978 92.5 +1979 155.4 +1980 154.6 +1981 140.4 +1982 115.9 +1983 66.6 +1984 45.9 +1985 17.9 +1986 13.4 +1987 29.4 +1988 100.2 +1989 157.6 +1990 142.6 +1991 145.7 +1992 94.3 +1993 54.6 +1994 29.9 +1995 17.5 +1996 8.6 +1997 21.5 +1998 64.3 +1999 93.3 +2000 119.6 +2001 111.0 +2002 104.0 +2003 63.7 +2004 40.4 +2005 29.8 +2006 15.2 +2007 7.5 +2008 2.9 diff --git a/statsmodels/datasets/sunspots/sunspots.csv b/statsmodels/datasets/sunspots/sunspots.csv new file mode 100644 index 0000000..bf1aec0 --- /dev/null +++ b/statsmodels/datasets/sunspots/sunspots.csv @@ -0,0 +1,310 @@ +"YEAR","SUNACTIVITY" +1700,5 +1701,11 +1702,16 +1703,23 +1704,36 +1705,58 +1706,29 +1707,20 +1708,10 +1709,8 +1710,3 +1711,0 +1712,0 +1713,2 +1714,11 +1715,27 +1716,47 +1717,63 +1718,60 +1719,39 +1720,28 +1721,26 +1722,22 +1723,11 +1724,21 +1725,40 +1726,78 +1727,122 +1728,103 +1729,73 +1730,47 +1731,35 +1732,11 +1733,5 +1734,16 +1735,34 +1736,70 +1737,81 +1738,111 +1739,101 +1740,73 +1741,40 +1742,20 +1743,16 +1744,5 +1745,11 +1746,22 +1747,40 +1748,60 +1749,80.9 +1750,83.4 +1751,47.7 +1752,47.8 +1753,30.7 +1754,12.2 +1755,9.6 +1756,10.2 +1757,32.4 +1758,47.6 +1759,54 +1760,62.9 +1761,85.9 +1762,61.2 +1763,45.1 +1764,36.4 +1765,20.9 +1766,11.4 +1767,37.8 +1768,69.8 +1769,106.1 +1770,100.8 +1771,81.6 +1772,66.5 +1773,34.8 +1774,30.6 +1775,7 +1776,19.8 +1777,92.5 +1778,154.4 +1779,125.9 +1780,84.8 +1781,68.1 +1782,38.5 +1783,22.8 +1784,10.2 +1785,24.1 +1786,82.9 +1787,132 +1788,130.9 +1789,118.1 +1790,89.9 +1791,66.6 +1792,60 +1793,46.9 +1794,41 +1795,21.3 +1796,16 +1797,6.4 +1798,4.1 +1799,6.8 +1800,14.5 +1801,34 +1802,45 +1803,43.1 +1804,47.5 +1805,42.2 +1806,28.1 +1807,10.1 +1808,8.1 +1809,2.5 +1810,0 +1811,1.4 +1812,5 +1813,12.2 +1814,13.9 +1815,35.4 +1816,45.8 +1817,41.1 +1818,30.1 +1819,23.9 +1820,15.6 +1821,6.6 +1822,4 +1823,1.8 +1824,8.5 +1825,16.6 +1826,36.3 +1827,49.6 +1828,64.2 +1829,67 +1830,70.9 +1831,47.8 +1832,27.5 +1833,8.5 +1834,13.2 +1835,56.9 +1836,121.5 +1837,138.3 +1838,103.2 +1839,85.7 +1840,64.6 +1841,36.7 +1842,24.2 +1843,10.7 +1844,15 +1845,40.1 +1846,61.5 +1847,98.5 +1848,124.7 +1849,96.3 +1850,66.6 +1851,64.5 +1852,54.1 +1853,39 +1854,20.6 +1855,6.7 +1856,4.3 +1857,22.7 +1858,54.8 +1859,93.8 +1860,95.8 +1861,77.2 +1862,59.1 +1863,44 +1864,47 +1865,30.5 +1866,16.3 +1867,7.3 +1868,37.6 +1869,74 +1870,139 +1871,111.2 +1872,101.6 +1873,66.2 +1874,44.7 +1875,17 +1876,11.3 +1877,12.4 +1878,3.4 +1879,6 +1880,32.3 +1881,54.3 +1882,59.7 +1883,63.7 +1884,63.5 +1885,52.2 +1886,25.4 +1887,13.1 +1888,6.8 +1889,6.3 +1890,7.1 +1891,35.6 +1892,73 +1893,85.1 +1894,78 +1895,64 +1896,41.8 +1897,26.2 +1898,26.7 +1899,12.1 +1900,9.5 +1901,2.7 +1902,5 +1903,24.4 +1904,42 +1905,63.5 +1906,53.8 +1907,62 +1908,48.5 +1909,43.9 +1910,18.6 +1911,5.7 +1912,3.6 +1913,1.4 +1914,9.6 +1915,47.4 +1916,57.1 +1917,103.9 +1918,80.6 +1919,63.6 +1920,37.6 +1921,26.1 +1922,14.2 +1923,5.8 +1924,16.7 +1925,44.3 +1926,63.9 +1927,69 +1928,77.8 +1929,64.9 +1930,35.7 +1931,21.2 +1932,11.1 +1933,5.7 +1934,8.7 +1935,36.1 +1936,79.7 +1937,114.4 +1938,109.6 +1939,88.8 +1940,67.8 +1941,47.5 +1942,30.6 +1943,16.3 +1944,9.6 +1945,33.2 +1946,92.6 +1947,151.6 +1948,136.3 +1949,134.7 +1950,83.9 +1951,69.4 +1952,31.5 +1953,13.9 +1954,4.4 +1955,38 +1956,141.7 +1957,190.2 +1958,184.8 +1959,159 +1960,112.3 +1961,53.9 +1962,37.6 +1963,27.9 +1964,10.2 +1965,15.1 +1966,47 +1967,93.8 +1968,105.9 +1969,105.5 +1970,104.5 +1971,66.6 +1972,68.9 +1973,38 +1974,34.5 +1975,15.5 +1976,12.6 +1977,27.5 +1978,92.5 +1979,155.4 +1980,154.6 +1981,140.4 +1982,115.9 +1983,66.6 +1984,45.9 +1985,17.9 +1986,13.4 +1987,29.4 +1988,100.2 +1989,157.6 +1990,142.6 +1991,145.7 +1992,94.3 +1993,54.6 +1994,29.9 +1995,17.5 +1996,8.6 +1997,21.5 +1998,64.3 +1999,93.3 +2000,119.6 +2001,111 +2002,104 +2003,63.7 +2004,40.4 +2005,29.8 +2006,15.2 +2007,7.5 +2008,2.9 diff --git a/statsmodels/datasets/template_data.py b/statsmodels/datasets/template_data.py new file mode 100644 index 0000000..919fac6 --- /dev/null +++ b/statsmodels/datasets/template_data.py @@ -0,0 +1,63 @@ +#! /usr/bin/env python + +"""Name of dataset.""" + +__docformat__ = 'restructuredtext' + +COPYRIGHT = """E.g., This is public domain.""" +TITLE = """Title of the dataset""" +SOURCE = """ +This section should provide a link to the original dataset if possible and +attribution and correspondance information for the dataset's original author +if so desired. +""" + +DESCRSHORT = """A short description.""" + +DESCRLONG = """A longer description of the dataset.""" + +#suggested notes +NOTE = """ +:: + + Number of observations: + Number of variables: + Variable name definitions: + +Any other useful information that does not fit into the above categories. +""" + +import numpy as np +from statsmodels.datasets import utils as du +from os.path import dirname, abspath + + +def load(): + """ + Load the data and return a Dataset class instance. + + Returns + ------- + Dataset instance: + See DATASET_PROPOSAL.txt for more information. + """ + data = _get_data() + ##### SET THE INDICES ##### + #NOTE: None for exog_idx is the complement of endog_idx + return du.process_recarray(data, endog_idx=0, exog_idx=None, dtype=float) + + +def load_pandas(): + data = _get_data() + ##### SET THE INDICES ##### + #NOTE: None for exog_idx is the complement of endog_idx + return du.process_recarray_pandas(data, endog_idx=0, exog_idx=None, + dtype=float) + + +def _get_data(): + filepath = dirname(abspath(__file__)) + ##### EDIT THE FOLLOWING TO POINT TO DatasetName.csv ##### + data = np.recfromtxt(open(filepath + '/DatasetName.csv', 'rb'), + delimiter=",", names=True, dtype=float) + return data diff --git a/statsmodels/datasets/tests/__init__.py b/statsmodels/datasets/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/datasets/tests/raw.github.com,vincentarelbundock,Rdatasets,master,csv,car,Duncan.csv.zip b/statsmodels/datasets/tests/raw.github.com,vincentarelbundock,Rdatasets,master,csv,car,Duncan.csv.zip new file mode 100644 index 0000000..f38557b --- /dev/null +++ b/statsmodels/datasets/tests/raw.github.com,vincentarelbundock,Rdatasets,master,csv,car,Duncan.csv.zip @@ -0,0 +1,2 @@ +xœU“ÁŽ£0Dïó¹ÌŲÀ@p~cöºÇé ހŒY6¿ÕfDAJ”çnwU¿>O'qJϑðå¼ ÿ ÛlMrÁã÷iJîN§ßþd¬ ³OƧ Â÷Iœ•Ðg¡èèú°ƒV‰ â²h;—È`#.J\ +†sêBÜHR Äv4¸épUÍWå¢ÁyÚËT)4pËcàš¦CO^*<€7òéØS¢,еi¤1ĵébQÕ¢ŸhXù»ót¸®]Uk°Ùß(&ó8ÐÒkÑð0½YžÇ:̯…¾ð˜ÝsrÖÿ[<€ õß&’\B|kœU6\žÈÀŸÒâRŠ–5Ú౿^BзªE¥W”¢ùa?†W¢nVÿ3yʰøCçs!h-q`&9oîïrëMpàjüqÞZ±f¶ðÂãA4nöª »X±–Á¸^Z£Û(ä U êü4Gã-Iܚ“Ç@Û†lSٞâcïÝ`±9D&Ž¨Ê¯6EU¢bŸ¨G$ãk ëÁÀ¯/yØ:CJTäh¿æˆQ‡ÕºpÄ9H$ɸ8l}•ÊÏ3öópÝzÂ7Õ`\€»™ä”¼4)‘¿­¯)™#¤y{¦—ˆþVÞâS6قH” Unì7×|­(sbÌ?'oÑýÝÊÑö§sг}¼C…«Ëj“K2`{fÍÎËÊB¨:ï=î¢Ê3ß©ŠõVó†´`Ÿ¦.œºƒŒû³Ìðx¯Ù¸¼È)Ü̶ä̐žB0ZL²Ý®m`jÉÑøc¼Ûny^~ ÆÐ;K{^¬>‡i1n‹æµ²AŸcñ!ÿ®ž†õ \ No newline at end of file diff --git a/statsmodels/datasets/tests/raw.github.com,vincentarelbundock,Rdatasets,master,datasets.csv.zip b/statsmodels/datasets/tests/raw.github.com,vincentarelbundock,Rdatasets,master,datasets.csv.zip new file mode 100644 index 0000000000000000000000000000000000000000..d0318970dc7b99f2bdf2a15cf7693db304dc33d8 GIT binary patch literal 16578 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 literal 0 HcmV?d00001 diff --git a/statsmodels/datasets/tests/test_data.py b/statsmodels/datasets/tests/test_data.py new file mode 100644 index 0000000..2e6e573 --- /dev/null +++ b/statsmodels/datasets/tests/test_data.py @@ -0,0 +1,40 @@ +from unittest import TestCase +from nose.tools import assert_true + +import numpy as np +import pandas as pd + +import statsmodels.datasets as datasets +from statsmodels.datasets import co2 +from statsmodels.datasets.utils import Dataset + + +def test_co2_python3(): + # this failed in pd.to_datetime on Python 3 with pandas <= 0.12.0 + dta = co2.load_pandas() + + +class TestDatasets(object): + + @classmethod + def setUpClass(cls): + exclude = ['check_internet', 'clear_data_home', 'get_data_home', + 'get_rdataset', 'tests', 'utils', 'webuse'] + cls.sets = [] + for dataset_name in dir(datasets): + if not dataset_name.startswith('_') and dataset_name not in exclude: + cls.sets.append(dataset_name) + + def check(self, dataset_name): + dataset = __import__('statsmodels.datasets.' + dataset_name, fromlist=['']) + data = dataset.load() + assert_true(isinstance(data, Dataset)) + assert_true(isinstance(data.data, np.recarray)) + + df_data = dataset.load_pandas() + assert_true(isinstance(data, Dataset)) + assert_true(isinstance(df_data.data, pd.DataFrame)) + + def test_all_datasets(self): + for dataset_name in self.sets: + yield (self.check, dataset_name) diff --git a/statsmodels/datasets/tests/test_utils.py b/statsmodels/datasets/tests/test_utils.py new file mode 100644 index 0000000..23115b5 --- /dev/null +++ b/statsmodels/datasets/tests/test_utils.py @@ -0,0 +1,38 @@ +from statsmodels.compat.python import PY3 +import os +from statsmodels.datasets import get_rdataset, webuse, check_internet +from numpy.testing import assert_, assert_array_equal, dec + +cur_dir = os.path.dirname(os.path.abspath(__file__)) + +dec.skipif(PY3, 'Not testable on Python 3.x') +def test_get_rdataset(): + # smoke test + if not PY3: + #NOTE: there's no way to test both since the cached files were + #created with Python 2.x, they're strings, but Python 3 expects + #bytes and the index file path is hard-coded so both can't live + #side by side + duncan = get_rdataset("Duncan", "car", cache=cur_dir) + assert_(duncan.from_cache) + +#internet_available = check_internet() +#@dec.skipif(not internet_available) +def t_est_webuse(): + # test copied and adjusted from iolib/tests/test_foreign + from statsmodels.iolib.tests.results.macrodata import macrodata_result as res2 + #base_gh = "http://github.com/statsmodels/statsmodels/raw/master/statsmodels/datasets/macrodata/" + base_gh = "http://www.statsmodels.org/devel/_static/" + res1 = webuse('macrodata', baseurl=base_gh, as_df=False) + assert_array_equal(res1 == res2, True) + +#@dec.skipif(not internet_available) +def t_est_webuse_pandas(): + # test copied and adjusted from iolib/tests/test_foreign + from pandas.util.testing import assert_frame_equal + from statsmodels.datasets import macrodata + dta = macrodata.load_pandas().data + base_gh = "http://github.com/statsmodels/statsmodels/raw/master/statsmodels/datasets/macrodata/" + res1 = webuse('macrodata', baseurl=base_gh) + res1 = res1.astype(float) + assert_frame_equal(res1, dta) diff --git a/statsmodels/datasets/utils.py b/statsmodels/datasets/utils.py new file mode 100644 index 0000000..6a005fc --- /dev/null +++ b/statsmodels/datasets/utils.py @@ -0,0 +1,337 @@ +from statsmodels.compat.python import (range, StringIO, urlopen, + HTTPError, URLError, lrange, + cPickle, urljoin, BytesIO, long, PY3) +import sys +import shutil +from os import environ +from os import makedirs +from os.path import expanduser +from os.path import exists +from os.path import join + +import numpy as np +from numpy import array +from pandas import read_csv, DataFrame, Index + + +def webuse(data, baseurl='http://www.stata-press.com/data/r11/', as_df=True): + """ + Download and return an example dataset from Stata. + + Parameters + ---------- + data : str + Name of dataset to fetch. + baseurl : str + The base URL to the stata datasets. + as_df : bool + If True, returns a `pandas.DataFrame` + + Returns + ------- + dta : Record Array + A record array containing the Stata dataset. + + Examples + -------- + >>> dta = webuse('auto') + + Notes + ----- + Make sure baseurl has trailing forward slash. Doesn't do any + error checking in response URLs. + """ + # lazy imports + from statsmodels.iolib import genfromdta + + url = urljoin(baseurl, data+'.dta') + dta = urlopen(url) + dta = BytesIO(dta.read()) # make it truly file-like + if as_df: # could make this faster if we don't process dta twice? + return DataFrame.from_records(genfromdta(dta)) + else: + return genfromdta(dta) + + +class Dataset(dict): + def __init__(self, **kw): + # define some default attributes, so pylint can find them + self.endog = None + self.exog = None + self.data = None + self.names = None + + dict.__init__(self, kw) + self.__dict__ = self + # Some datasets have string variables. If you want a raw_data + # attribute you must create this in the dataset's load function. + try: # some datasets have string variables + self.raw_data = self.data.view((float, len(self.names))) + except: + pass + + def __repr__(self): + return str(self.__class__) + + +def process_recarray(data, endog_idx=0, exog_idx=None, stack=True, dtype=None): + names = list(data.dtype.names) + + if isinstance(endog_idx, (int, long)): + endog = array(data[names[endog_idx]], dtype=dtype) + endog_name = names[endog_idx] + endog_idx = [endog_idx] + else: + endog_name = [names[i] for i in endog_idx] + + if stack: + endog = np.column_stack(data[field] for field in endog_name) + else: + endog = data[endog_name] + + if exog_idx is None: + exog_name = [names[i] for i in range(len(names)) + if i not in endog_idx] + else: + exog_name = [names[i] for i in exog_idx] + + if stack: + exog = np.column_stack(data[field] for field in exog_name) + else: + exog = data[exog_name] + + if dtype: + endog = endog.astype(dtype) + exog = exog.astype(dtype) + + dataset = Dataset(data=data, names=names, endog=endog, exog=exog, + endog_name=endog_name, exog_name=exog_name) + + return dataset + + +def process_recarray_pandas(data, endog_idx=0, exog_idx=None, dtype=None, + index_idx=None): + + data = DataFrame(data, dtype=dtype) + names = data.columns + + if isinstance(endog_idx, (int, long)): + endog_name = names[endog_idx] + endog = data[endog_name] + if exog_idx is None: + exog = data.drop([endog_name], axis=1) + else: + exog = data.filter(names[exog_idx]) + else: + endog = data.ix[:, endog_idx] + endog_name = list(endog.columns) + if exog_idx is None: + exog = data.drop(endog_name, axis=1) + elif isinstance(exog_idx, (int, long)): + exog = data.filter([names[exog_idx]]) + else: + exog = data.filter(names[exog_idx]) + + if index_idx is not None: # NOTE: will have to be improved for dates + endog.index = Index(data.ix[:, index_idx]) + exog.index = Index(data.ix[:, index_idx]) + data = data.set_index(names[index_idx]) + + exog_name = list(exog.columns) + dataset = Dataset(data=data, names=list(names), endog=endog, exog=exog, + endog_name=endog_name, exog_name=exog_name) + return dataset + + +def _maybe_reset_index(data): + """ + All the Rdatasets have the integer row.labels from R if there is no + real index. Strip this for a zero-based index + """ + if data.index.equals(Index(lrange(1, len(data) + 1))): + data = data.reset_index(drop=True) + return data + + +def _get_cache(cache): + if cache is False: + # do not do any caching or load from cache + cache = None + elif cache is True: # use default dir for cache + cache = get_data_home(None) + else: + cache = get_data_home(cache) + return cache + + +def _cache_it(data, cache_path): + if PY3: + # for some reason encode("zip") won't work for me in Python 3? + import zlib + # use protocol 2 so can open with python 2.x if cached in 3.x + open(cache_path, "wb").write(zlib.compress(cPickle.dumps(data, + protocol=2))) + else: + open(cache_path, "wb").write(cPickle.dumps(data).encode("zip")) + + +def _open_cache(cache_path): + if PY3: + # NOTE: don't know why but decode('zip') doesn't work on my + # Python 3 build + import zlib + data = zlib.decompress(open(cache_path, 'rb').read()) + # return as bytes object encoded in utf-8 for cross-compat of cached + data = cPickle.loads(data).encode('utf-8') + else: + data = open(cache_path, 'rb').read().decode('zip') + data = cPickle.loads(data) + return data + + +def _urlopen_cached(url, cache): + """ + Tries to load data from cache location otherwise downloads it. If it + downloads the data and cache is not None then it will put the downloaded + data in the cache path. + """ + from_cache = False + if cache is not None: + cache_path = join(cache, + url.split("://")[-1].replace('/', ',') + ".zip") + try: + data = _open_cache(cache_path) + from_cache = True + except: + pass + + # not using the cache or didn't find it in cache + if not from_cache: + data = urlopen(url).read() + if cache is not None: # then put it in the cache + _cache_it(data, cache_path) + return data, from_cache + + +def _get_data(base_url, dataname, cache, extension="csv"): + url = base_url + (dataname + ".%s") % extension + try: + data, from_cache = _urlopen_cached(url, cache) + except HTTPError as err: + if '404' in str(err): + raise ValueError("Dataset %s was not found." % dataname) + else: + raise err + + data = data.decode('utf-8', 'strict') + return StringIO(data), from_cache + + +def _get_dataset_meta(dataname, package, cache): + # get the index, you'll probably want this cached because you have + # to download info about all the data to get info about any of the data... + index_url = ("https://raw.github.com/vincentarelbundock/Rdatasets/master/" + "datasets.csv") + data, _ = _urlopen_cached(index_url, cache) + # Python 3 + if PY3: # pragma: no cover + data = data.decode('utf-8', 'strict') + index = read_csv(StringIO(data)) + idx = np.logical_and(index.Item == dataname, index.Package == package) + dataset_meta = index.ix[idx] + return dataset_meta["Title"].item() + + +def get_rdataset(dataname, package="datasets", cache=False): + """download and return R dataset + + Parameters + ---------- + dataname : str + The name of the dataset you want to download + package : str + The package in which the dataset is found. The default is the core + 'datasets' package. + cache : bool or str + If True, will download this data into the STATSMODELS_DATA folder. + The default location is a folder called statsmodels_data in the + user home folder. Otherwise, you can specify a path to a folder to + use for caching the data. If False, the data will not be cached. + + Returns + ------- + dataset : Dataset instance + A `statsmodels.data.utils.Dataset` instance. This objects has + attributes:: + + * data - A pandas DataFrame containing the data + * title - The dataset title + * package - The package from which the data came + * from_cache - Whether not cached data was retrieved + * __doc__ - The verbatim R documentation. + + + Notes + ----- + If the R dataset has an integer index. This is reset to be zero-based. + Otherwise the index is preserved. The caching facilities are dumb. That + is, no download dates, e-tags, or otherwise identifying information + is checked to see if the data should be downloaded again or not. If the + dataset is in the cache, it's used. + """ + # NOTE: use raw github bc html site might not be most up to date + data_base_url = ("https://raw.github.com/vincentarelbundock/Rdatasets/" + "master/csv/"+package+"/") + docs_base_url = ("https://raw.github.com/vincentarelbundock/Rdatasets/" + "master/doc/"+package+"/rst/") + cache = _get_cache(cache) + data, from_cache = _get_data(data_base_url, dataname, cache) + data = read_csv(data, index_col=0) + data = _maybe_reset_index(data) + + title = _get_dataset_meta(dataname, package, cache) + doc, _ = _get_data(docs_base_url, dataname, cache, "rst") + + return Dataset(data=data, __doc__=doc.read(), package=package, title=title, + from_cache=from_cache) + +# The below function were taken from sklearn + + +def get_data_home(data_home=None): + """Return the path of the statsmodels data dir. + + This folder is used by some large dataset loaders to avoid + downloading the data several times. + + By default the data dir is set to a folder named 'statsmodels_data' + in the user home folder. + + Alternatively, it can be set by the 'STATSMODELS_DATA' environment + variable or programatically by giving an explit folder path. The + '~' symbol is expanded to the user home folder. + + If the folder does not already exist, it is automatically created. + """ + if data_home is None: + data_home = environ.get('STATSMODELS_DATA', + join('~', 'statsmodels_data')) + data_home = expanduser(data_home) + if not exists(data_home): + makedirs(data_home) + return data_home + + +def clear_data_home(data_home=None): + """Delete all the content of the data home cache.""" + data_home = get_data_home(data_home) + shutil.rmtree(data_home) + +def check_internet(): + """Check if internet is available""" + try: + urlopen("https://github.com") + except URLError as err: + return False + return True diff --git a/statsmodels/discrete/__init__.py b/statsmodels/discrete/__init__.py new file mode 100644 index 0000000..0123ce8 --- /dev/null +++ b/statsmodels/discrete/__init__.py @@ -0,0 +1,2 @@ +from statsmodels import NoseWrapper as Tester +test = Tester().test diff --git a/statsmodels/discrete/discrete_margins.py b/statsmodels/discrete/discrete_margins.py new file mode 100644 index 0000000..c2807db --- /dev/null +++ b/statsmodels/discrete/discrete_margins.py @@ -0,0 +1,694 @@ +#Splitting out maringal effects to see if they can be generalized + +from statsmodels.compat.python import lzip, callable, range +import numpy as np +from scipy.stats import norm +from statsmodels.tools.decorators import cache_readonly, resettable_cache + +#### margeff helper functions #### +#NOTE: todo marginal effects for group 2 +# group 2 oprobit, ologit, gologit, mlogit, biprobit + +def _check_margeff_args(at, method): + """ + Checks valid options for margeff + """ + if at not in ['overall','mean','median','zero','all']: + raise ValueError("%s not a valid option for `at`." % at) + if method not in ['dydx','eyex','dyex','eydx']: + raise ValueError("method is not understood. Got %s" % method) + +def _check_discrete_args(at, method): + """ + Checks the arguments for margeff if the exogenous variables are discrete. + """ + if method in ['dyex','eyex']: + raise ValueError("%s not allowed for discrete variables" % method) + if at in ['median', 'zero']: + raise ValueError("%s not allowed for discrete variables" % at) + +def _get_const_index(exog): + """ + Returns a boolean array of non-constant column indices in exog and + an scalar array of where the constant is or None + """ + effects_idx = exog.var(0) != 0 + if np.any(~effects_idx): + const_idx = np.where(~effects_idx)[0] + else: + const_idx = None + return effects_idx, const_idx + +def _isdummy(X): + """ + Given an array X, returns the column indices for the dummy variables. + + Parameters + ---------- + X : array-like + A 1d or 2d array of numbers + + Examples + -------- + >>> X = np.random.randint(0, 2, size=(15,5)).astype(float) + >>> X[:,1:3] = np.random.randn(15,2) + >>> ind = _isdummy(X) + >>> ind + array([0, 3, 4]) + """ + X = np.asarray(X) + if X.ndim > 1: + ind = np.zeros(X.shape[1]).astype(bool) + max = (np.max(X, axis=0) == 1) + min = (np.min(X, axis=0) == 0) + remainder = np.all(X % 1. == 0, axis=0) + ind = min & max & remainder + if X.ndim == 1: + ind = np.asarray([ind]) + return np.where(ind)[0] + +def _get_dummy_index(X, const_idx): + dummy_ind = _isdummy(X) + dummy = True + # adjust back for a constant because effects doesn't have one + if const_idx is not None: + dummy_ind[dummy_ind > const_idx] -= 1 + if dummy_ind.size == 0: # don't waste your time + dummy = False + dummy_ind = None # this gets passed to stand err func + return dummy_ind, dummy + +def _iscount(X): + """ + Given an array X, returns the column indices for count variables. + + Parameters + ---------- + X : array-like + A 1d or 2d array of numbers + + Examples + -------- + >>> X = np.random.randint(0, 10, size=(15,5)).astype(float) + >>> X[:,1:3] = np.random.randn(15,2) + >>> ind = _iscount(X) + >>> ind + array([0, 3, 4]) + """ + X = np.asarray(X) + remainder = np.logical_and(np.logical_and(np.all(X % 1. == 0, axis = 0), + X.var(0) != 0), np.all(X >= 0, axis=0)) + dummy = _isdummy(X) + remainder = np.where(remainder)[0].tolist() + for idx in dummy: + remainder.remove(idx) + return np.array(remainder) + +def _get_count_index(X, const_idx): + count_ind = _iscount(X) + count = True + # adjust back for a constant because effects doesn't have one + if const_idx is not None: + count_ind[count_ind > const_idx] -= 1 + if count_ind.size == 0: # don't waste your time + count = False + count_ind = None # for stand err func + return count_ind, count + +def _get_margeff_exog(exog, at, atexog, ind): + if atexog is not None: # user supplied + if isinstance(atexog, dict): + # assumes values are singular or of len(exog) + for key in atexog: + exog[:,key] = atexog[key] + elif isinstance(atexog, np.ndarray): #TODO: handle DataFrames + if atexog.ndim == 1: + k_vars = len(atexog) + else: + k_vars = atexog.shape[1] + try: + assert k_vars == exog.shape[1] + except: + raise ValueError("atexog does not have the same number " + "of variables as exog") + exog = atexog + + #NOTE: we should fill in atexog after we process at + if at == 'mean': + exog = np.atleast_2d(exog.mean(0)) + elif at == 'median': + exog = np.atleast_2d(np.median(exog, axis=0)) + elif at == 'zero': + exog = np.zeros((1,exog.shape[1])) + exog[0,~ind] = 1 + return exog + +def _get_count_effects(effects, exog, count_ind, method, model, params): + """ + If there's a count variable, the predicted difference is taken by + subtracting one and adding one to exog then averaging the difference + """ + # this is the index for the effect and the index for count col in exog + for i in count_ind: + exog0 = exog.copy() + exog0[:, i] -= 1 + effect0 = model.predict(params, exog0) + exog0[:, i] += 2 + effect1 = model.predict(params, exog0) + #NOTE: done by analogy with dummy effects but untested bc + # stata doesn't handle both count and eydx anywhere + if 'ey' in method: + effect0 = np.log(effect0) + effect1 = np.log(effect1) + effects[:, i] = ((effect1 - effect0)/2) + return effects + +def _get_dummy_effects(effects, exog, dummy_ind, method, model, params): + """ + If there's a dummy variable, the predicted difference is taken at + 0 and 1 + """ + # this is the index for the effect and the index for dummy col in exog + for i in dummy_ind: + exog0 = exog.copy() # only copy once, can we avoid a copy? + exog0[:,i] = 0 + effect0 = model.predict(params, exog0) + #fittedvalues0 = np.dot(exog0,params) + exog0[:,i] = 1 + effect1 = model.predict(params, exog0) + if 'ey' in method: + effect0 = np.log(effect0) + effect1 = np.log(effect1) + effects[:, i] = (effect1 - effect0) + return effects + +def _effects_at(effects, at): + if at == 'all': + effects = effects + elif at == 'overall': + effects = effects.mean(0) + else: + effects = effects[0,:] + return effects + +def _margeff_cov_params_dummy(model, cov_margins, params, exog, dummy_ind, + method, J): + """ + Returns the Jacobian for discrete regressors for use in margeff_cov_params. + + For discrete regressors the marginal effect is + + \Delta F = F(XB) | d = 1 - F(XB) | d = 0 + + The row of the Jacobian for this variable is given by + + f(XB)*X | d = 1 - f(XB)*X | d = 0 + + Where F is the default prediction of the model. + """ + for i in dummy_ind: + exog0 = exog.copy() + exog1 = exog.copy() + exog0[:,i] = 0 + exog1[:,i] = 1 + dfdb0 = model._derivative_predict(params, exog0, method) + dfdb1 = model._derivative_predict(params, exog1, method) + dfdb = (dfdb1 - dfdb0) + if dfdb.ndim >= 2: # for overall + dfdb = dfdb.mean(0) + if J > 1: + K = dfdb.shape[1] // (J-1) + cov_margins[i::K, :] = dfdb + else: + cov_margins[i, :] = dfdb # how each F changes with change in B + return cov_margins + +def _margeff_cov_params_count(model, cov_margins, params, exog, count_ind, + method, J): + """ + Returns the Jacobian for discrete regressors for use in margeff_cov_params. + + For discrete regressors the marginal effect is + + \Delta F = F(XB) | d += 1 - F(XB) | d -= 1 + + The row of the Jacobian for this variable is given by + + (f(XB)*X | d += 1 - f(XB)*X | d -= 1) / 2 + + where F is the default prediction for the model. + """ + for i in count_ind: + exog0 = exog.copy() + exog0[:,i] -= 1 + dfdb0 = model._derivative_predict(params, exog0, method) + exog0[:,i] += 2 + dfdb1 = model._derivative_predict(params, exog0, method) + dfdb = (dfdb1 - dfdb0) + if dfdb.ndim >= 2: # for overall + dfdb = dfdb.mean(0) / 2 + if J > 1: + K = dfdb.shape[1] / (J-1) + cov_margins[i::K, :] = dfdb + else: + cov_margins[i, :] = dfdb # how each F changes with change in B + return cov_margins + +def margeff_cov_params(model, params, exog, cov_params, at, derivative, + dummy_ind, count_ind, method, J): + """ + Computes the variance-covariance of marginal effects by the delta method. + + Parameters + ---------- + model : model instance + The model that returned the fitted results. Its pdf method is used + for computing the Jacobian of discrete variables in dummy_ind and + count_ind + params : array-like + estimated model parameters + exog : array-like + exogenous variables at which to calculate the derivative + cov_params : array-like + The variance-covariance of the parameters + at : str + Options are: + + - 'overall', The average of the marginal effects at each + observation. + - 'mean', The marginal effects at the mean of each regressor. + - 'median', The marginal effects at the median of each regressor. + - 'zero', The marginal effects at zero for each regressor. + - 'all', The marginal effects at each observation. + + Only overall has any effect here.you + + derivative : function or array-like + If a function, it returns the marginal effects of the model with + respect to the exogenous variables evaluated at exog. Expected to be + called derivative(params, exog). This will be numerically + differentiated. Otherwise, it can be the Jacobian of the marginal + effects with respect to the parameters. + dummy_ind : array-like + Indices of the columns of exog that contain dummy variables + count_ind : array-like + Indices of the columns of exog that contain count variables + + Notes + ----- + For continuous regressors, the variance-covariance is given by + + Asy. Var[MargEff] = [d margeff / d params] V [d margeff / d params]' + + where V is the parameter variance-covariance. + + The outer Jacobians are computed via numerical differentiation if + derivative is a function. + """ + if callable(derivative): + from statsmodels.tools.numdiff import approx_fprime_cs + params = params.ravel('F') # for Multinomial + try: + jacobian_mat = approx_fprime_cs(params, derivative, + args=(exog,method)) + except TypeError: # norm.cdf doesn't take complex values + from statsmodels.tools.numdiff import approx_fprime + jacobian_mat = approx_fprime(params, derivative, + args=(exog,method)) + if at == 'overall': + jacobian_mat = np.mean(jacobian_mat, axis=1) + else: + jacobian_mat = jacobian_mat.squeeze() # exog was 2d row vector + if dummy_ind is not None: + jacobian_mat = _margeff_cov_params_dummy(model, jacobian_mat, + params, exog, dummy_ind, method, J) + if count_ind is not None: + jacobian_mat = _margeff_cov_params_count(model, jacobian_mat, + params, exog, count_ind, method, J) + else: + jacobian_mat = derivative + + #NOTE: this won't go through for at == 'all' + return np.dot(np.dot(jacobian_mat, cov_params), jacobian_mat.T) + +def margeff_cov_with_se(model, params, exog, cov_params, at, derivative, + dummy_ind, count_ind, method, J): + """ + See margeff_cov_params. + + Same function but returns both the covariance of the marginal effects + and their standard errors. + """ + cov_me = margeff_cov_params(model, params, exog, cov_params, at, + derivative, dummy_ind, + count_ind, method, J) + return cov_me, np.sqrt(np.diag(cov_me)) + +def margeff(): + pass + +def _check_at_is_all(method): + if method['at'] == 'all': + raise NotImplementedError("Only margeff are available when `at` is " + "all. Please input specific points if you would like to " + "do inference.") + +_transform_names = dict(dydx='dy/dx', + eyex='d(lny)/d(lnx)', + dyex='dy/d(lnx)', + eydx='d(lny)/dx') + +class Margins(object): + """ + Mostly a do nothing class. Lays out the methods expected of a sub-class. + + This is just a sketch of what we may want out of a general margins class. + I (SS) need to look at details of other models. + """ + def __init__(self, results, get_margeff, derivative, dist=None, + margeff_args=()): + self._cache = resettable_cache() + self.results = results + self.dist = dist + self.get_margeff(margeff_args) + + def _reset(self): + self._cache = resettable_cache() + + def get_margeff(self, *args, **kwargs): + self._reset() + self.margeff = self.get_margeff(*args) + + @cache_readonly + def tvalues(self): + raise NotImplementedError + + @cache_readonly + def cov_margins(self): + raise NotImplementedError + + @cache_readonly + def margins_se(self): + raise NotImplementedError + + def summary_frame(self): + raise NotImplementedError + + @cache_readonly + def pvalues(self): + raise NotImplementedError + + def conf_int(self, alpha=.05): + raise NotImplementedError + + def summary(self, alpha=.05): + raise NotImplementedError + +#class DiscreteMargins(Margins): +class DiscreteMargins(object): + """Get marginal effects of a Discrete Choice model. + + Parameters + ---------- + results : DiscreteResults instance + The results instance of a fitted discrete choice model + args : tuple + Args are passed to `get_margeff`. This is the same as + results.get_margeff. See there for more information. + kwargs : dict + Keyword args are passed to `get_margeff`. This is the same as + results.get_margeff. See there for more information. + """ + def __init__(self, results, args, kwargs={}): + self._cache = resettable_cache() + self.results = results + self.get_margeff(*args, **kwargs) + + def _reset(self): + self._cache = resettable_cache() + + @cache_readonly + def tvalues(self): + _check_at_is_all(self.margeff_options) + return self.margeff / self.margeff_se + + def summary_frame(self, alpha=.05): + """ + Returns a DataFrame summarizing the marginal effects. + + Parameters + ---------- + alpha : float + Number between 0 and 1. The confidence intervals have the + probability 1-alpha. + + Returns + ------- + frame : DataFrames + A DataFrame summarizing the marginal effects. + """ + _check_at_is_all(self.margeff_options) + from pandas import DataFrame + names = [_transform_names[self.margeff_options['method']], + 'Std. Err.', 'z', 'Pr(>|z|)', + 'Conf. Int. Low', 'Cont. Int. Hi.'] + ind = self.results.model.exog.var(0) != 0 # True if not a constant + exog_names = self.results.model.exog_names + var_names = [name for i,name in enumerate(exog_names) if ind[i]] + table = np.column_stack((self.margeff, self.margeff_se, self.tvalues, + self.pvalues, self.conf_int(alpha))) + return DataFrame(table, columns=names, index=var_names) + + @cache_readonly + def pvalues(self): + _check_at_is_all(self.margeff_options) + return norm.sf(np.abs(self.tvalues)) * 2 + + def conf_int(self, alpha=.05): + """ + Returns the confidence intervals of the marginal effects + + Parameters + ---------- + alpha : float + Number between 0 and 1. The confidence intervals have the + probability 1-alpha. + + Returns + ------- + conf_int : ndarray + An array with lower, upper confidence intervals for the marginal + effects. + """ + _check_at_is_all(self.margeff_options) + me_se = self.margeff_se + q = norm.ppf(1 - alpha / 2) + lower = self.margeff - q * me_se + upper = self.margeff + q * me_se + return np.asarray(lzip(lower, upper)) + + def summary(self, alpha=.05): + """ + Returns a summary table for marginal effects + + Parameters + ---------- + alpha : float + Number between 0 and 1. The confidence intervals have the + probability 1-alpha. + + Returns + ------- + Summary : SummaryTable + A SummaryTable instance + """ + _check_at_is_all(self.margeff_options) + results = self.results + model = results.model + title = model.__class__.__name__ + " Marginal Effects" + method = self.margeff_options['method'] + top_left = [('Dep. Variable:', [model.endog_names]), + ('Method:', [method]), + ('At:', [self.margeff_options['at']]),] + + from statsmodels.iolib.summary import (Summary, summary_params, + table_extend) + exog_names = model.exog_names[:] # copy + smry = Summary() + + # sigh, we really need to hold on to this in _data... + _, const_idx = _get_const_index(model.exog) + if const_idx is not None: + exog_names.pop(const_idx[0]) + + J = int(getattr(model, "J", 1)) + if J > 1: + yname, yname_list = results._get_endog_name(model.endog_names, + None, all=True) + else: + yname = model.endog_names + yname_list = [yname] + + smry.add_table_2cols(self, gleft=top_left, gright=[], + yname=yname, xname=exog_names, title=title) + + #NOTE: add_table_params is not general enough yet for margeff + # could use a refactor with getattr instead of hard-coded params + # tvalues etc. + table = [] + conf_int = self.conf_int(alpha) + margeff = self.margeff + margeff_se = self.margeff_se + tvalues = self.tvalues + pvalues = self.pvalues + if J > 1: + for eq in range(J): + restup = (results, margeff[:,eq], margeff_se[:,eq], + tvalues[:,eq], pvalues[:,eq], conf_int[:,:,eq]) + tble = summary_params(restup, yname=yname_list[eq], + xname=exog_names, alpha=alpha, use_t=False, + skip_header=True) + tble.title = yname_list[eq] + # overwrite coef with method name + header = ['', _transform_names[method], 'std err', 'z', + 'P>|z|', '[%3.1f%% Conf. Int.]' % (100-alpha*100)] + tble.insert_header_row(0, header) + #from IPython.core.debugger import Pdb; Pdb().set_trace() + table.append(tble) + + table = table_extend(table, keep_headers=True) + else: + restup = (results, margeff, margeff_se, tvalues, pvalues, conf_int) + table = summary_params(restup, yname=yname, xname=exog_names, + alpha=alpha, use_t=False, skip_header=True) + header = ['', _transform_names[method], 'std err', 'z', + 'P>|z|', '[%3.1f%% Conf. Int.]' % (100-alpha*100)] + table.insert_header_row(0, header) + + smry.tables.append(table) + return smry + + def get_margeff(self, at='overall', method='dydx', atexog=None, + dummy=False, count=False): + """Get marginal effects of the fitted model. + + Parameters + ---------- + at : str, optional + Options are: + + - 'overall', The average of the marginal effects at each + observation. + - 'mean', The marginal effects at the mean of each regressor. + - 'median', The marginal effects at the median of each regressor. + - 'zero', The marginal effects at zero for each regressor. + - 'all', The marginal effects at each observation. If `at` is all + only margeff will be available. + + Note that if `exog` is specified, then marginal effects for all + variables not specified by `exog` are calculated using the `at` + option. + method : str, optional + Options are: + + - 'dydx' - dy/dx - No transformation is made and marginal effects + are returned. This is the default. + - 'eyex' - estimate elasticities of variables in `exog` -- + d(lny)/d(lnx) + - 'dyex' - estimate semielasticity -- dy/d(lnx) + - 'eydx' - estimate semeilasticity -- d(lny)/dx + + Note that tranformations are done after each observation is + calculated. Semi-elasticities for binary variables are computed + using the midpoint method. 'dyex' and 'eyex' do not make sense + for discrete variables. + atexog : array-like, optional + Optionally, you can provide the exogenous variables over which to + get the marginal effects. This should be a dictionary with the key + as the zero-indexed column number and the value of the dictionary. + Default is None for all independent variables less the constant. + dummy : bool, optional + If False, treats binary variables (if present) as continuous. This + is the default. Else if True, treats binary variables as + changing from 0 to 1. Note that any variable that is either 0 or 1 + is treated as binary. Each binary variable is treated separately + for now. + count : bool, optional + If False, treats count variables (if present) as continuous. This + is the default. Else if True, the marginal effect is the + change in probabilities when each observation is increased by one. + + Returns + ------- + effects : ndarray + the marginal effect corresponding to the input options + + Notes + ----- + When using after Poisson, returns the expected number of events + per period, assuming that the model is loglinear. + """ + self._reset() # always reset the cache when this is called + #TODO: if at is not all or overall, we can also put atexog values + # in summary table head + method = method.lower() + at = at.lower() + _check_margeff_args(at, method) + self.margeff_options = dict(method=method, at=at) + results = self.results + model = results.model + params = results.params + exog = model.exog.copy() # copy because values are changed + effects_idx, const_idx = _get_const_index(exog) + + if dummy: + _check_discrete_args(at, method) + dummy_idx, dummy = _get_dummy_index(exog, const_idx) + else: + dummy_idx = None + + if count: + _check_discrete_args(at, method) + count_idx, count = _get_count_index(exog, const_idx) + else: + count_idx = None + + # get the exogenous variables + exog = _get_margeff_exog(exog, at, atexog, effects_idx) + + # get base marginal effects, handled by sub-classes + effects = model._derivative_exog(params, exog, method, + dummy_idx, count_idx) + + J = getattr(model, 'J', 1) + effects_idx = np.tile(effects_idx, J) # adjust for multi-equation. + + effects = _effects_at(effects, at) + + if at == 'all': + if J > 1: + K = model.K - np.any(~effects_idx) # subtract constant + self.margeff = effects[:, effects_idx].reshape(-1, K, J, + order='F') + else: + self.margeff = effects[:, effects_idx] + else: + # Set standard error of the marginal effects by Delta method. + margeff_cov, margeff_se = margeff_cov_with_se(model, params, exog, + results.cov_params(), at, + model._derivative_exog, + dummy_idx, count_idx, + method, J) + + # reshape for multi-equation + if J > 1: + K = model.K - np.any(~effects_idx) # subtract constant + self.margeff = effects[effects_idx].reshape(K, J, order='F') + self.margeff_se = margeff_se[effects_idx].reshape(K, J, + order='F') + self.margeff_cov = margeff_cov[effects_idx][:, effects_idx] + else: + # don't care about at constant + self.margeff_cov = margeff_cov[effects_idx][:, effects_idx] + self.margeff_se = margeff_se[effects_idx] + self.margeff = effects[effects_idx] diff --git a/statsmodels/discrete/discrete_model.py b/statsmodels/discrete/discrete_model.py new file mode 100644 index 0000000..7773c68 --- /dev/null +++ b/statsmodels/discrete/discrete_model.py @@ -0,0 +1,3190 @@ +""" +Limited dependent variable and qualitative variables. + +Includes binary outcomes, count data, (ordered) ordinal data and limited +dependent variables. + +General References +-------------------- + +A.C. Cameron and P.K. Trivedi. `Regression Analysis of Count Data`. + Cambridge, 1998 + +G.S. Madalla. `Limited-Dependent and Qualitative Variables in Econometrics`. + Cambridge, 1983. + +W. Greene. `Econometric Analysis`. Prentice Hall, 5th. edition. 2003. +""" +from __future__ import division + +__all__ = ["Poisson", "Logit", "Probit", "MNLogit", "NegativeBinomial"] + +from statsmodels.compat.python import lmap, lzip, range +import numpy as np +from scipy.special import gammaln +from scipy import stats, special, optimize # opt just for nbin +import statsmodels.tools.tools as tools +from statsmodels.tools import data as data_tools +from statsmodels.tools.decorators import (resettable_cache, + cache_readonly) +from statsmodels.regression.linear_model import OLS +from scipy import stats, special, optimize # opt just for nbin +from scipy.stats import nbinom +from statsmodels.tools.sm_exceptions import PerfectSeparationError +from statsmodels.tools.numdiff import (approx_fprime, approx_hess, + approx_hess_cs, approx_fprime_cs) +import statsmodels.base.model as base +from statsmodels.base.data import handle_data # for mnlogit +import statsmodels.regression.linear_model as lm +import statsmodels.base.wrapper as wrap +from statsmodels.compat.numpy import np_matrix_rank +from pandas.core.api import get_dummies + +from statsmodels.base.l1_slsqp import fit_l1_slsqp +try: + import cvxopt + have_cvxopt = True +except ImportError: + have_cvxopt = False + +#TODO: When we eventually get user-settable precision, we need to change +# this +FLOAT_EPS = np.finfo(float).eps + +#TODO: add options for the parameter covariance/variance +# ie., OIM, EIM, and BHHH see Green 21.4 + +_discrete_models_docs = """ +""" + +_discrete_results_docs = """ + %(one_line_description)s + + Parameters + ---------- + model : A DiscreteModel instance + params : array-like + The parameters of a fitted model. + hessian : array-like + The hessian of the fitted model. + scale : float + A scale parameter for the covariance matrix. + + Returns + ------- + *Attributes* + + aic : float + Akaike information criterion. `-2*(llf - p)` where `p` is the number + of regressors including the intercept. + bic : float + Bayesian information criterion. `-2*llf + ln(nobs)*p` where `p` is the + number of regressors including the intercept. + bse : array + The standard errors of the coefficients. + df_resid : float + See model definition. + df_model : float + See model definition. + fitted_values : array + Linear predictor XB. + llf : float + Value of the loglikelihood + llnull : float + Value of the constant-only loglikelihood + llr : float + Likelihood ratio chi-squared statistic; `-2*(llnull - llf)` + llr_pvalue : float + The chi-squared probability of getting a log-likelihood ratio + statistic greater than llr. llr has a chi-squared distribution + with degrees of freedom `df_model`. + prsquared : float + McFadden's pseudo-R-squared. `1 - (llf / llnull)` +%(extra_attr)s""" + +_l1_results_attr = """ nnz_params : Integer + The number of nonzero parameters in the model. Train with + trim_params == True or else numerical error will distort this. + trimmed : Boolean array + trimmed[i] == True if the ith parameter was trimmed from the model.""" + + +# helper for MNLogit (will be generally useful later) + +def _numpy_to_dummies(endog): + if endog.dtype.kind in ['S', 'O']: + endog_dummies, ynames = tools.categorical(endog, drop=True, + dictnames=True) + elif endog.ndim == 2: + endog_dummies = endog + ynames = range(endog.shape[1]) + else: + endog_dummies, ynames = tools.categorical(endog, drop=True, + dictnames=True) + return endog_dummies, ynames + + +def _pandas_to_dummies(endog): + if endog.ndim == 2: + if endog.shape[1] == 1: + yname = endog.columns[0] + endog_dummies = get_dummies(endog.iloc[:, 0]) + else: # series + yname = 'y' + endog_dummies = endog + else: + yname = endog.name + endog_dummies = get_dummies(endog) + ynames = endog_dummies.columns.tolist() + + return endog_dummies, ynames, yname + + +#### Private Model Classes #### + + +class DiscreteModel(base.LikelihoodModel): + """ + Abstract class for discrete choice models. + + This class does not do anything itself but lays out the methods and + call signature expected of child classes in addition to those of + statsmodels.model.LikelihoodModel. + """ + def __init__(self, endog, exog, **kwargs): + super(DiscreteModel, self).__init__(endog, exog, **kwargs) + self.raise_on_perfect_prediction = True + + def initialize(self): + """ + Initialize is called by + statsmodels.model.LikelihoodModel.__init__ + and should contain any preprocessing that needs to be done for a model. + """ + # assumes constant + self.df_model = float(np_matrix_rank(self.exog) - 1) + self.df_resid = (float(self.exog.shape[0] - + np_matrix_rank(self.exog))) + + def cdf(self, X): + """ + The cumulative distribution function of the model. + """ + raise NotImplementedError + + def pdf(self, X): + """ + The probability density (mass) function of the model. + """ + raise NotImplementedError + + def _check_perfect_pred(self, params, *args): + endog = self.endog + fittedvalues = self.cdf(np.dot(self.exog, params[:self.exog.shape[1]])) + if (self.raise_on_perfect_prediction and + np.allclose(fittedvalues - endog, 0)): + msg = "Perfect separation detected, results not available" + raise PerfectSeparationError(msg) + + def fit(self, start_params=None, method='newton', maxiter=35, + full_output=1, disp=1, callback=None, **kwargs): + """ + Fit the model using maximum likelihood. + + The rest of the docstring is from + statsmodels.base.model.LikelihoodModel.fit + """ + if callback is None: + callback = self._check_perfect_pred + else: + pass # make a function factory to have multiple call-backs + + mlefit = super(DiscreteModel, self).fit(start_params=start_params, + method=method, maxiter=maxiter, full_output=full_output, + disp=disp, callback=callback, **kwargs) + + return mlefit # up to subclasses to wrap results + + fit.__doc__ += base.LikelihoodModel.fit.__doc__ + + def fit_regularized(self, start_params=None, method='l1', + maxiter='defined_by_method', full_output=1, disp=True, + callback=None, alpha=0, trim_mode='auto', + auto_trim_tol=0.01, size_trim_tol=1e-4, qc_tol=0.03, + qc_verbose=False, **kwargs): + """ + Fit the model using a regularized maximum likelihood. + The regularization method AND the solver used is determined by the + argument method. + + Parameters + ---------- + start_params : array-like, optional + Initial guess of the solution for the loglikelihood maximization. + The default is an array of zeros. + method : 'l1' or 'l1_cvxopt_cp' + See notes for details. + maxiter : Integer or 'defined_by_method' + Maximum number of iterations to perform. + If 'defined_by_method', then use method defaults (see notes). + full_output : bool + Set to True to have all available output in the Results object's + mle_retvals attribute. The output is dependent on the solver. + See LikelihoodModelResults notes section for more information. + disp : bool + Set to True to print convergence messages. + fargs : tuple + Extra arguments passed to the likelihood function, i.e., + loglike(x,*args) + callback : callable callback(xk) + Called after each iteration, as callback(xk), where xk is the + current parameter vector. + retall : bool + Set to True to return list of solutions at each iteration. + Available in Results object's mle_retvals attribute. + alpha : non-negative scalar or numpy array (same size as parameters) + The weight multiplying the l1 penalty term + trim_mode : 'auto, 'size', or 'off' + If not 'off', trim (set to zero) parameters that would have been + zero if the solver reached the theoretical minimum. + If 'auto', trim params using the Theory above. + If 'size', trim params if they have very small absolute value + size_trim_tol : float or 'auto' (default = 'auto') + For use when trim_mode == 'size' + auto_trim_tol : float + For sue when trim_mode == 'auto'. Use + qc_tol : float + Print warning and don't allow auto trim when (ii) (above) is + violated by this much. + qc_verbose : Boolean + If true, print out a full QC report upon failure + + Notes + ----- + Extra parameters are not penalized if alpha is given as a scalar. + An example is the shape parameter in NegativeBinomial `nb1` and `nb2`. + + Optional arguments for the solvers (available in Results.mle_settings):: + + 'l1' + acc : float (default 1e-6) + Requested accuracy as used by slsqp + 'l1_cvxopt_cp' + abstol : float + absolute accuracy (default: 1e-7). + reltol : float + relative accuracy (default: 1e-6). + feastol : float + tolerance for feasibility conditions (default: 1e-7). + refinement : int + number of iterative refinement steps when solving KKT + equations (default: 1). + + + Optimization methodology + + With :math:`L` the negative log likelihood, we solve the convex but + non-smooth problem + + .. math:: \\min_\\beta L(\\beta) + \\sum_k\\alpha_k |\\beta_k| + + via the transformation to the smooth, convex, constrained problem + in twice as many variables (adding the "added variables" :math:`u_k`) + + .. math:: \\min_{\\beta,u} L(\\beta) + \\sum_k\\alpha_k u_k, + + subject to + + .. math:: -u_k \\leq \\beta_k \\leq u_k. + + With :math:`\\partial_k L` the derivative of :math:`L` in the + :math:`k^{th}` parameter direction, theory dictates that, at the + minimum, exactly one of two conditions holds: + + (i) :math:`|\\partial_k L| = \\alpha_k` and :math:`\\beta_k \\neq 0` + (ii) :math:`|\\partial_k L| \\leq \\alpha_k` and :math:`\\beta_k = 0` + + """ + ### Set attributes based on method + if method in ['l1', 'l1_cvxopt_cp']: + cov_params_func = self.cov_params_func_l1 + else: + raise Exception("argument method == %s, which is not handled" + % method) + + ### Bundle up extra kwargs for the dictionary kwargs. These are + ### passed through super(...).fit() as kwargs and unpacked at + ### appropriate times + alpha = np.array(alpha) + assert alpha.min() >= 0 + try: + kwargs['alpha'] = alpha + except TypeError: + kwargs = dict(alpha=alpha) + kwargs['alpha_rescaled'] = kwargs['alpha'] / float(self.endog.shape[0]) + kwargs['trim_mode'] = trim_mode + kwargs['size_trim_tol'] = size_trim_tol + kwargs['auto_trim_tol'] = auto_trim_tol + kwargs['qc_tol'] = qc_tol + kwargs['qc_verbose'] = qc_verbose + + ### Define default keyword arguments to be passed to super(...).fit() + if maxiter == 'defined_by_method': + if method == 'l1': + maxiter = 1000 + elif method == 'l1_cvxopt_cp': + maxiter = 70 + + ## Parameters to pass to super(...).fit() + # For the 'extra' parameters, pass all that are available, + # even if we know (at this point) we will only use one. + extra_fit_funcs = {'l1': fit_l1_slsqp} + if have_cvxopt and method == 'l1_cvxopt_cp': + from statsmodels.base.l1_cvxopt import fit_l1_cvxopt_cp + extra_fit_funcs['l1_cvxopt_cp'] = fit_l1_cvxopt_cp + elif method.lower() == 'l1_cvxopt_cp': + message = ("Attempt to use l1_cvxopt_cp failed since cvxopt " + "could not be imported") + + if callback is None: + callback = self._check_perfect_pred + else: + pass # make a function factory to have multiple call-backs + + mlefit = super(DiscreteModel, self).fit(start_params=start_params, + method=method, maxiter=maxiter, full_output=full_output, + disp=disp, callback=callback, extra_fit_funcs=extra_fit_funcs, + cov_params_func=cov_params_func, **kwargs) + + return mlefit # up to subclasses to wrap results + + def cov_params_func_l1(self, likelihood_model, xopt, retvals): + """ + Computes cov_params on a reduced parameter space + corresponding to the nonzero parameters resulting from the + l1 regularized fit. + + Returns a full cov_params matrix, with entries corresponding + to zero'd values set to np.nan. + """ + H = likelihood_model.hessian(xopt) + trimmed = retvals['trimmed'] + nz_idx = np.nonzero(trimmed == False)[0] + nnz_params = (trimmed == False).sum() + if nnz_params > 0: + H_restricted = H[nz_idx[:, None], nz_idx] + # Covariance estimate for the nonzero params + H_restricted_inv = np.linalg.inv(-H_restricted) + else: + H_restricted_inv = np.zeros(0) + + cov_params = np.nan * np.ones(H.shape) + cov_params[nz_idx[:, None], nz_idx] = H_restricted_inv + + return cov_params + + def predict(self, params, exog=None, linear=False): + """ + Predict response variable of a model given exogenous variables. + """ + raise NotImplementedError + + def _derivative_exog(self, params, exog=None, dummy_idx=None, + count_idx=None): + """ + This should implement the derivative of the non-linear function + """ + raise NotImplementedError + +class BinaryModel(DiscreteModel): + + def __init__(self, endog, exog, **kwargs): + super(BinaryModel, self).__init__(endog, exog, **kwargs) + if (not issubclass(self.__class__, MultinomialModel) and + not np.all((self.endog >= 0) & (self.endog <= 1))): + raise ValueError("endog must be in the unit interval.") + + + def predict(self, params, exog=None, linear=False): + """ + Predict response variable of a model given exogenous variables. + + Parameters + ---------- + params : array-like + Fitted parameters of the model. + exog : array-like + 1d or 2d array of exogenous values. If not supplied, the + whole exog attribute of the model is used. + linear : bool, optional + If True, returns the linear predictor dot(exog,params). Else, + returns the value of the cdf at the linear predictor. + + Returns + ------- + array + Fitted values at exog. + """ + if exog is None: + exog = self.exog + if not linear: + return self.cdf(np.dot(exog, params)) + else: + return np.dot(exog, params) + + def fit_regularized(self, start_params=None, method='l1', + maxiter='defined_by_method', full_output=1, disp=1, callback=None, + alpha=0, trim_mode='auto', auto_trim_tol=0.01, size_trim_tol=1e-4, + qc_tol=0.03, **kwargs): + bnryfit = super(BinaryModel, self).fit_regularized( + start_params=start_params, method=method, maxiter=maxiter, + full_output=full_output, disp=disp, callback=callback, + alpha=alpha, trim_mode=trim_mode, auto_trim_tol=auto_trim_tol, + size_trim_tol=size_trim_tol, qc_tol=qc_tol, **kwargs) + if method in ['l1', 'l1_cvxopt_cp']: + discretefit = L1BinaryResults(self, bnryfit) + else: + raise Exception( + "argument method == %s, which is not handled" % method) + return L1BinaryResultsWrapper(discretefit) + fit_regularized.__doc__ = DiscreteModel.fit_regularized.__doc__ + + def _derivative_predict(self, params, exog=None, transform='dydx'): + """ + For computing marginal effects standard errors. + + This is used only in the case of discrete and count regressors to + get the variance-covariance of the marginal effects. It returns + [d F / d params] where F is the predict. + + Transform can be 'dydx' or 'eydx'. Checking is done in margeff + computations for appropriate transform. + """ + if exog is None: + exog = self.exog + dF = self.pdf(np.dot(exog, params))[:,None] * exog + if 'ey' in transform: + dF /= self.predict(params, exog)[:,None] + return dF + + def _derivative_exog(self, params, exog=None, transform='dydx', + dummy_idx=None, count_idx=None): + """ + For computing marginal effects returns dF(XB) / dX where F(.) is + the predicted probabilities + + transform can be 'dydx', 'dyex', 'eydx', or 'eyex'. + + Not all of these make sense in the presence of discrete regressors, + but checks are done in the results in get_margeff. + """ + #note, this form should be appropriate for + ## group 1 probit, logit, logistic, cloglog, heckprob, xtprobit + if exog is None: + exog = self.exog + margeff = np.dot(self.pdf(np.dot(exog, params))[:,None], + params[None,:]) + if 'ex' in transform: + margeff *= exog + if 'ey' in transform: + margeff /= self.predict(params, exog)[:,None] + if count_idx is not None: + from statsmodels.discrete.discrete_margins import ( + _get_count_effects) + margeff = _get_count_effects(margeff, exog, count_idx, transform, + self, params) + if dummy_idx is not None: + from statsmodels.discrete.discrete_margins import ( + _get_dummy_effects) + margeff = _get_dummy_effects(margeff, exog, dummy_idx, transform, + self, params) + return margeff + +class MultinomialModel(BinaryModel): + + def _handle_data(self, endog, exog, missing, hasconst, **kwargs): + if data_tools._is_using_ndarray_type(endog, None): + endog_dummies, ynames = _numpy_to_dummies(endog) + yname = 'y' + elif data_tools._is_using_pandas(endog, None): + endog_dummies, ynames, yname = _pandas_to_dummies(endog) + else: + endog = np.asarray(endog) + endog_dummies, ynames = _numpy_to_dummies(endog) + yname = 'y' + + if not isinstance(ynames, dict): + ynames = dict(zip(range(endog_dummies.shape[1]), ynames)) + + self._ynames_map = ynames + data = handle_data(endog_dummies, exog, missing, hasconst, **kwargs) + data.ynames = yname # overwrite this to single endog name + data.orig_endog = endog + self.wendog = data.endog + + # repeating from upstream... + for key in kwargs: + try: + setattr(self, key, data.__dict__.pop(key)) + except KeyError: + pass + return data + + def initialize(self): + """ + Preprocesses the data for MNLogit. + """ + super(MultinomialModel, self).initialize() + # This is also a "whiten" method in other models (eg regression) + self.endog = self.endog.argmax(1) # turn it into an array of col idx + self.J = self.wendog.shape[1] + self.K = self.exog.shape[1] + self.df_model *= (self.J-1) # for each J - 1 equation. + self.df_resid = self.exog.shape[0] - self.df_model - (self.J-1) + + def predict(self, params, exog=None, linear=False): + """ + Predict response variable of a model given exogenous variables. + + Parameters + ---------- + params : array-like + 2d array of fitted parameters of the model. Should be in the + order returned from the model. + exog : array-like + 1d or 2d array of exogenous values. If not supplied, the + whole exog attribute of the model is used. If a 1d array is given + it assumed to be 1 row of exogenous variables. If you only have + one regressor and would like to do prediction, you must provide + a 2d array with shape[1] == 1. + linear : bool, optional + If True, returns the linear predictor dot(exog,params). Else, + returns the value of the cdf at the linear predictor. + + Notes + ----- + Column 0 is the base case, the rest conform to the rows of params + shifted up one for the base case. + """ + if exog is None: # do here to accomodate user-given exog + exog = self.exog + if exog.ndim == 1: + exog = exog[None] + pred = super(MultinomialModel, self).predict(params, exog, linear) + if linear: + pred = np.column_stack((np.zeros(len(exog)), pred)) + return pred + + def fit(self, start_params=None, method='newton', maxiter=35, + full_output=1, disp=1, callback=None, **kwargs): + if start_params is None: + start_params = np.zeros((self.K * (self.J-1))) + else: + start_params = np.asarray(start_params) + callback = lambda x : None # placeholder until check_perfect_pred + # skip calling super to handle results from LikelihoodModel + mnfit = base.LikelihoodModel.fit(self, start_params = start_params, + method=method, maxiter=maxiter, full_output=full_output, + disp=disp, callback=callback, **kwargs) + mnfit.params = mnfit.params.reshape(self.K, -1, order='F') + mnfit = MultinomialResults(self, mnfit) + return MultinomialResultsWrapper(mnfit) + fit.__doc__ = DiscreteModel.fit.__doc__ + + def fit_regularized(self, start_params=None, method='l1', + maxiter='defined_by_method', full_output=1, disp=1, callback=None, + alpha=0, trim_mode='auto', auto_trim_tol=0.01, size_trim_tol=1e-4, + qc_tol=0.03, **kwargs): + if start_params is None: + start_params = np.zeros((self.K * (self.J-1))) + else: + start_params = np.asarray(start_params) + mnfit = DiscreteModel.fit_regularized( + self, start_params=start_params, method=method, maxiter=maxiter, + full_output=full_output, disp=disp, callback=callback, + alpha=alpha, trim_mode=trim_mode, auto_trim_tol=auto_trim_tol, + size_trim_tol=size_trim_tol, qc_tol=qc_tol, **kwargs) + mnfit.params = mnfit.params.reshape(self.K, -1, order='F') + mnfit = L1MultinomialResults(self, mnfit) + return L1MultinomialResultsWrapper(mnfit) + fit_regularized.__doc__ = DiscreteModel.fit_regularized.__doc__ + + + def _derivative_predict(self, params, exog=None, transform='dydx'): + """ + For computing marginal effects standard errors. + + This is used only in the case of discrete and count regressors to + get the variance-covariance of the marginal effects. It returns + [d F / d params] where F is the predicted probabilities for each + choice. dFdparams is of shape nobs x (J*K) x (J-1)*K. + The zero derivatives for the base category are not included. + + Transform can be 'dydx' or 'eydx'. Checking is done in margeff + computations for appropriate transform. + """ + if exog is None: + exog = self.exog + if params.ndim == 1: # will get flatted from approx_fprime + params = params.reshape(self.K, self.J-1, order='F') + + eXB = np.exp(np.dot(exog, params)) + sum_eXB = (1 + eXB.sum(1))[:,None] + J, K = lmap(int, [self.J, self.K]) + repeat_eXB = np.repeat(eXB, J, axis=1) + X = np.tile(exog, J-1) + # this is the derivative wrt the base level + F0 = -repeat_eXB * X / sum_eXB ** 2 + # this is the derivative wrt the other levels when + # dF_j / dParams_j (ie., own equation) + #NOTE: this computes too much, any easy way to cut down? + F1 = eXB.T[:,:,None]*X * (sum_eXB - repeat_eXB) / (sum_eXB**2) + F1 = F1.transpose((1,0,2)) # put the nobs index first + + # other equation index + other_idx = ~np.kron(np.eye(J-1), np.ones(K)).astype(bool) + F1[:, other_idx] = (-eXB.T[:,:,None]*X*repeat_eXB / \ + (sum_eXB**2)).transpose((1,0,2))[:, other_idx] + dFdX = np.concatenate((F0[:, None,:], F1), axis=1) + + if 'ey' in transform: + dFdX /= self.predict(params, exog)[:, :, None] + return dFdX + + def _derivative_exog(self, params, exog=None, transform='dydx', + dummy_idx=None, count_idx=None): + """ + For computing marginal effects returns dF(XB) / dX where F(.) is + the predicted probabilities + + transform can be 'dydx', 'dyex', 'eydx', or 'eyex'. + + Not all of these make sense in the presence of discrete regressors, + but checks are done in the results in get_margeff. + + For Multinomial models the marginal effects are + + P[j] * (params[j] - sum_k P[k]*params[k]) + + It is returned unshaped, so that each row contains each of the J + equations. This makes it easier to take derivatives of this for + standard errors. If you want average marginal effects you can do + margeff.reshape(nobs, K, J, order='F).mean(0) and the marginal effects + for choice J are in column J + """ + J = int(self.J) # number of alternative choices + K = int(self.K) # number of variables + #note, this form should be appropriate for + ## group 1 probit, logit, logistic, cloglog, heckprob, xtprobit + if exog is None: + exog = self.exog + if params.ndim == 1: # will get flatted from approx_fprime + params = params.reshape(K, J-1, order='F') + zeroparams = np.c_[np.zeros(K), params] # add base in + + cdf = self.cdf(np.dot(exog, params)) + margeff = np.array([cdf[:,[j]]* (zeroparams[:,j]-np.array([cdf[:,[i]]* + zeroparams[:,i] for i in range(int(J))]).sum(0)) + for j in range(J)]) + margeff = np.transpose(margeff, (1,2,0)) + # swap the axes to make sure margeff are in order nobs, K, J + if 'ex' in transform: + margeff *= exog + if 'ey' in transform: + margeff /= self.predict(params, exog)[:,None,:] + + if count_idx is not None: + from statsmodels.discrete.discrete_margins import ( + _get_count_effects) + margeff = _get_count_effects(margeff, exog, count_idx, transform, + self, params) + if dummy_idx is not None: + from statsmodels.discrete.discrete_margins import ( + _get_dummy_effects) + margeff = _get_dummy_effects(margeff, exog, dummy_idx, transform, + self, params) + return margeff.reshape(len(exog), -1, order='F') + +class CountModel(DiscreteModel): + def __init__(self, endog, exog, offset=None, exposure=None, missing='none', + **kwargs): + super(CountModel, self).__init__(endog, exog, missing=missing, + offset=offset, + exposure=exposure, **kwargs) + if exposure is not None: + self.exposure = np.log(self.exposure) + self._check_inputs(self.offset, self.exposure, self.endog) + if offset is None: + delattr(self, 'offset') + if exposure is None: + delattr(self, 'exposure') + + def _check_inputs(self, offset, exposure, endog): + if offset is not None and offset.shape[0] != endog.shape[0]: + raise ValueError("offset is not the same length as endog") + + if exposure is not None and exposure.shape[0] != endog.shape[0]: + raise ValueError("exposure is not the same length as endog") + + def _get_init_kwds(self): + # this is a temporary fixup because exposure has been transformed + # see #1609 + kwds = super(CountModel, self)._get_init_kwds() + if 'exposure' in kwds and kwds['exposure'] is not None: + kwds['exposure'] = np.exp(kwds['exposure']) + return kwds + + def predict(self, params, exog=None, exposure=None, offset=None, + linear=False): + """ + Predict response variable of a count model given exogenous variables. + + Notes + ----- + If exposure is specified, then it will be logged by the method. + The user does not need to log it first. + """ + #TODO: add offset tp + if exog is None: + exog = self.exog + offset = getattr(self, 'offset', 0) + exposure = getattr(self, 'exposure', 0) + + else: + if exposure is None: + exposure = 0 + else: + exposure = np.log(exposure) + if offset is None: + offset = 0 + + if not linear: + return np.exp(np.dot(exog, params[:exog.shape[1]]) + exposure + offset) # not cdf + else: + return np.dot(exog, params[:exog.shape[1]]) + exposure + offset + + def _derivative_predict(self, params, exog=None, transform='dydx'): + """ + For computing marginal effects standard errors. + + This is used only in the case of discrete and count regressors to + get the variance-covariance of the marginal effects. It returns + [d F / d params] where F is the predict. + + Transform can be 'dydx' or 'eydx'. Checking is done in margeff + computations for appropriate transform. + """ + if exog is None: + exog = self.exog + #NOTE: this handles offset and exposure + dF = self.predict(params, exog)[:,None] * exog + if 'ey' in transform: + dF /= self.predict(params, exog)[:,None] + return dF + + def _derivative_exog(self, params, exog=None, transform="dydx", + dummy_idx=None, count_idx=None): + """ + For computing marginal effects. These are the marginal effects + d F(XB) / dX + For the Poisson model F(XB) is the predicted counts rather than + the probabilities. + + transform can be 'dydx', 'dyex', 'eydx', or 'eyex'. + + Not all of these make sense in the presence of discrete regressors, + but checks are done in the results in get_margeff. + """ + # group 3 poisson, nbreg, zip, zinb + if exog is None: + exog = self.exog + margeff = self.predict(params, exog)[:,None] * params[None,:] + if 'ex' in transform: + margeff *= exog + if 'ey' in transform: + margeff /= self.predict(params, exog)[:,None] + + if count_idx is not None: + from statsmodels.discrete.discrete_margins import ( + _get_count_effects) + margeff = _get_count_effects(margeff, exog, count_idx, transform, + self, params) + if dummy_idx is not None: + from statsmodels.discrete.discrete_margins import ( + _get_dummy_effects) + margeff = _get_dummy_effects(margeff, exog, dummy_idx, transform, + self, params) + return margeff + + def fit(self, start_params=None, method='newton', maxiter=35, + full_output=1, disp=1, callback=None, **kwargs): + cntfit = super(CountModel, self).fit(start_params=start_params, + method=method, maxiter=maxiter, full_output=full_output, + disp=disp, callback=callback, **kwargs) + discretefit = CountResults(self, cntfit) + return CountResultsWrapper(discretefit) + fit.__doc__ = DiscreteModel.fit.__doc__ + + def fit_regularized(self, start_params=None, method='l1', + maxiter='defined_by_method', full_output=1, disp=1, callback=None, + alpha=0, trim_mode='auto', auto_trim_tol=0.01, size_trim_tol=1e-4, + qc_tol=0.03, **kwargs): + cntfit = super(CountModel, self).fit_regularized( + start_params=start_params, method=method, maxiter=maxiter, + full_output=full_output, disp=disp, callback=callback, + alpha=alpha, trim_mode=trim_mode, auto_trim_tol=auto_trim_tol, + size_trim_tol=size_trim_tol, qc_tol=qc_tol, **kwargs) + if method in ['l1', 'l1_cvxopt_cp']: + discretefit = L1CountResults(self, cntfit) + else: + raise Exception( + "argument method == %s, which is not handled" % method) + return L1CountResultsWrapper(discretefit) + fit_regularized.__doc__ = DiscreteModel.fit_regularized.__doc__ + + +class OrderedModel(DiscreteModel): + pass + +#### Public Model Classes #### + +class Poisson(CountModel): + __doc__ = """ + Poisson model for count data + +%(params)s + %(extra_params)s + + Attributes + ----------- + endog : array + A reference to the endogenous response variable + exog : array + A reference to the exogenous design. + """ % {'params' : base._model_params_doc, + 'extra_params' : + """offset : array_like + Offset is added to the linear prediction with coefficient equal to 1. + exposure : array_like + Log(exposure) is added to the linear prediction with coefficient + equal to 1. + + """ + base._missing_param_doc} + + + def cdf(self, X): + """ + Poisson model cumulative distribution function + + Parameters + ----------- + X : array-like + `X` is the linear predictor of the model. See notes. + + Returns + ------- + The value of the Poisson CDF at each point. + + Notes + ----- + The CDF is defined as + + .. math:: \\exp\left(-\\lambda\\right)\\sum_{i=0}^{y}\\frac{\\lambda^{i}}{i!} + + where :math:`\\lambda` assumes the loglinear model. I.e., + + .. math:: \\ln\\lambda_{i}=X\\beta + + The parameter `X` is :math:`X\\beta` in the above formula. + """ + y = self.endog + return stats.poisson.cdf(y, np.exp(X)) + + def pdf(self, X): + """ + Poisson model probability mass function + + Parameters + ----------- + X : array-like + `X` is the linear predictor of the model. See notes. + + Returns + ------- + pdf : ndarray + The value of the Poisson probability mass function, PMF, for each + point of X. + + Notes + -------- + The PMF is defined as + + .. math:: \\frac{e^{-\\lambda_{i}}\\lambda_{i}^{y_{i}}}{y_{i}!} + + where :math:`\\lambda` assumes the loglinear model. I.e., + + .. math:: \\ln\\lambda_{i}=x_{i}\\beta + + The parameter `X` is :math:`x_{i}\\beta` in the above formula. + """ + y = self.endog + return np.exp(stats.poisson.logpmf(y, np.exp(X))) + + def loglike(self, params): + """ + Loglikelihood of Poisson model + + Parameters + ---------- + params : array-like + The parameters of the model. + + Returns + ------- + loglike : float + The log-likelihood function of the model evaluated at `params`. + See notes. + + Notes + -------- + .. math :: \\ln L=\\sum_{i=1}^{n}\\left[-\\lambda_{i}+y_{i}x_{i}^{\\prime}\\beta-\\ln y_{i}!\\right] + """ + offset = getattr(self, "offset", 0) + exposure = getattr(self, "exposure", 0) + XB = np.dot(self.exog, params) + offset + exposure + endog = self.endog + return np.sum(-np.exp(XB) + endog*XB - gammaln(endog+1)) + + def loglikeobs(self, params): + """ + Loglikelihood for observations of Poisson model + + Parameters + ---------- + params : array-like + The parameters of the model. + + Returns + ------- + loglike : ndarray (nobs,) + The log likelihood for each observation of the model evaluated + at `params`. See Notes + + Notes + -------- + .. math :: \\ln L_{i}=\\left[-\\lambda_{i}+y_{i}x_{i}^{\\prime}\\beta-\\ln y_{i}!\\right] + + for observations :math:`i=1,...,n` + + """ + offset = getattr(self, "offset", 0) + exposure = getattr(self, "exposure", 0) + XB = np.dot(self.exog, params) + offset + exposure + endog = self.endog + #np.sum(stats.poisson.logpmf(endog, np.exp(XB))) + return -np.exp(XB) + endog*XB - gammaln(endog+1) + + def fit(self, start_params=None, method='newton', maxiter=35, + full_output=1, disp=1, callback=None, **kwargs): + cntfit = super(CountModel, self).fit(start_params=start_params, + method=method, maxiter=maxiter, full_output=full_output, + disp=disp, callback=callback, **kwargs) + + if 'cov_type' in kwargs: + cov_kwds = kwargs.get('cov_kwds', {}) + kwds = {'cov_type':kwargs['cov_type'], 'cov_kwds':cov_kwds} + else: + kwds = {} + discretefit = PoissonResults(self, cntfit, **kwds) + return PoissonResultsWrapper(discretefit) + fit.__doc__ = DiscreteModel.fit.__doc__ + + def fit_regularized(self, start_params=None, method='l1', + maxiter='defined_by_method', full_output=1, disp=1, callback=None, + alpha=0, trim_mode='auto', auto_trim_tol=0.01, size_trim_tol=1e-4, + qc_tol=0.03, **kwargs): + cntfit = super(CountModel, self).fit_regularized( + start_params=start_params, method=method, maxiter=maxiter, + full_output=full_output, disp=disp, callback=callback, + alpha=alpha, trim_mode=trim_mode, auto_trim_tol=auto_trim_tol, + size_trim_tol=size_trim_tol, qc_tol=qc_tol, **kwargs) + if method in ['l1', 'l1_cvxopt_cp']: + discretefit = L1PoissonResults(self, cntfit) + else: + raise Exception( + "argument method == %s, which is not handled" % method) + return L1PoissonResultsWrapper(discretefit) + + fit_regularized.__doc__ = DiscreteModel.fit_regularized.__doc__ + + + def fit_constrained(self, constraints, start_params=None, **fit_kwds): + """fit the model subject to linear equality constraints + + The constraints are of the form `R params = q` + where R is the constraint_matrix and q is the vector of + constraint_values. + + The estimation creates a new model with transformed design matrix, + exog, and converts the results back to the original parameterization. + + Parameters + ---------- + constraints : formula expression or tuple + If it is a tuple, then the constraint needs to be given by two + arrays (constraint_matrix, constraint_value), i.e. (R, q). + Otherwise, the constraints can be given as strings or list of + strings. + see t_test for details + start_params : None or array_like + starting values for the optimization. `start_params` needs to be + given in the original parameter space and are internally + transformed. + **fit_kwds : keyword arguments + fit_kwds are used in the optimization of the transformed model. + + Returns + ------- + results : Results instance + + """ + + #constraints = (R, q) + # TODO: temporary trailing underscore to not overwrite the monkey + # patched version + # TODO: decide whether to move the imports + from patsy import DesignInfo + from statsmodels.base._constraints import fit_constrained + + # same pattern as in base.LikelihoodModel.t_test + lc = DesignInfo(self.exog_names).linear_constraint(constraints) + R, q = lc.coefs, lc.constants + + # TODO: add start_params option, need access to tranformation + # fit_constrained needs to do the transformation + params, cov, res_constr = fit_constrained(self, R, q, + start_params=start_params, + fit_kwds=fit_kwds) + #create dummy results Instance, TODO: wire up properly + res = self.fit(maxiter=0, method='nm', disp=0, + warn_convergence=False) # we get a wrapper back + res.mle_retvals['fcall'] = res_constr.mle_retvals.get('fcall', np.nan) + res.mle_retvals['iterations'] = res_constr.mle_retvals.get( + 'iterations', np.nan) + res.mle_retvals['converged'] = res_constr.mle_retvals['converged'] + res._results.params = params + res._results.normalized_cov_params = cov + k_constr = len(q) + res._results.df_resid += k_constr + res._results.df_model -= k_constr + res._results.constraints = lc + res._results.k_constr = k_constr + res._results.results_constrained = res_constr + return res + + + def score(self, params): + """ + Poisson model score (gradient) vector of the log-likelihood + + Parameters + ---------- + params : array-like + The parameters of the model + + Returns + ------- + score : ndarray, 1-D + The score vector of the model, i.e. the first derivative of the + loglikelihood function, evaluated at `params` + + Notes + ----- + .. math:: \\frac{\\partial\\ln L}{\\partial\\beta}=\\sum_{i=1}^{n}\\left(y_{i}-\\lambda_{i}\\right)x_{i} + + where the loglinear model is assumed + + .. math:: \\ln\\lambda_{i}=x_{i}\\beta + """ + offset = getattr(self, "offset", 0) + exposure = getattr(self, "exposure", 0) + X = self.exog + L = np.exp(np.dot(X,params) + offset + exposure) + return np.dot(self.endog - L, X) + + def score_obs(self, params): + """ + Poisson model Jacobian of the log-likelihood for each observation + + Parameters + ---------- + params : array-like + The parameters of the model + + Returns + ------- + score : ndarray (nobs, k_vars) + The score vector of the model evaluated at `params` + + Notes + ----- + .. math:: \\frac{\\partial\\ln L_{i}}{\\partial\\beta}=\\left(y_{i}-\\lambda_{i}\\right)x_{i} + + for observations :math:`i=1,...,n` + + where the loglinear model is assumed + + .. math:: \\ln\\lambda_{i}=x_{i}\\beta + """ + offset = getattr(self, "offset", 0) + exposure = getattr(self, "exposure", 0) + X = self.exog + L = np.exp(np.dot(X,params) + offset + exposure) + return (self.endog - L)[:,None] * X + + jac = np.deprecate(score_obs, 'jac', 'score_obs', "Use score_obs method." + " jac will be removed in 0.7") + + def hessian(self, params): + """ + Poisson model Hessian matrix of the loglikelihood + + Parameters + ---------- + params : array-like + The parameters of the model + + Returns + ------- + hess : ndarray, (k_vars, k_vars) + The Hessian, second derivative of loglikelihood function, + evaluated at `params` + + Notes + ----- + .. math:: \\frac{\\partial^{2}\\ln L}{\\partial\\beta\\partial\\beta^{\\prime}}=-\\sum_{i=1}^{n}\\lambda_{i}x_{i}x_{i}^{\\prime} + + where the loglinear model is assumed + + .. math:: \\ln\\lambda_{i}=x_{i}\\beta + + """ + offset = getattr(self, "offset", 0) + exposure = getattr(self, "exposure", 0) + X = self.exog + L = np.exp(np.dot(X,params) + exposure + offset) + return -np.dot(L*X.T, X) + +class Logit(BinaryModel): + __doc__ = """ + Binary choice logit model + +%(params)s + %(extra_params)s + + Attributes + ----------- + endog : array + A reference to the endogenous response variable + exog : array + A reference to the exogenous design. + """ % {'params' : base._model_params_doc, + 'extra_params' : base._missing_param_doc} + + def cdf(self, X): + """ + The logistic cumulative distribution function + + Parameters + ---------- + X : array-like + `X` is the linear predictor of the logit model. See notes. + + Returns + ------- + 1/(1 + exp(-X)) + + Notes + ------ + In the logit model, + + .. math:: \\Lambda\\left(x^{\\prime}\\beta\\right)=\\text{Prob}\\left(Y=1|x\\right)=\\frac{e^{x^{\\prime}\\beta}}{1+e^{x^{\\prime}\\beta}} + """ + X = np.asarray(X) + return 1/(1+np.exp(-X)) + + def pdf(self, X): + """ + The logistic probability density function + + Parameters + ----------- + X : array-like + `X` is the linear predictor of the logit model. See notes. + + Returns + ------- + pdf : ndarray + The value of the Logit probability mass function, PMF, for each + point of X. ``np.exp(-x)/(1+np.exp(-X))**2`` + + Notes + ----- + In the logit model, + + .. math:: \\lambda\\left(x^{\\prime}\\beta\\right)=\\frac{e^{-x^{\\prime}\\beta}}{\\left(1+e^{-x^{\\prime}\\beta}\\right)^{2}} + """ + X = np.asarray(X) + return np.exp(-X)/(1+np.exp(-X))**2 + + def loglike(self, params): + """ + Log-likelihood of logit model. + + Parameters + ----------- + params : array-like + The parameters of the logit model. + + Returns + ------- + loglike : float + The log-likelihood function of the model evaluated at `params`. + See notes. + + Notes + ------ + .. math:: \\ln L=\\sum_{i}\\ln\\Lambda\\left(q_{i}x_{i}^{\\prime}\\beta\\right) + + Where :math:`q=2y-1`. This simplification comes from the fact that the + logistic distribution is symmetric. + """ + q = 2*self.endog - 1 + X = self.exog + return np.sum(np.log(self.cdf(q*np.dot(X,params)))) + + def loglikeobs(self, params): + """ + Log-likelihood of logit model for each observation. + + Parameters + ----------- + params : array-like + The parameters of the logit model. + + Returns + ------- + loglike : ndarray (nobs,) + The log likelihood for each observation of the model evaluated + at `params`. See Notes + + Notes + ------ + .. math:: \\ln L=\\sum_{i}\\ln\\Lambda\\left(q_{i}x_{i}^{\\prime}\\beta\\right) + + for observations :math:`i=1,...,n` + + where :math:`q=2y-1`. This simplification comes from the fact that the + logistic distribution is symmetric. + """ + q = 2*self.endog - 1 + X = self.exog + return np.log(self.cdf(q*np.dot(X,params))) + + def score(self, params): + """ + Logit model score (gradient) vector of the log-likelihood + + Parameters + ---------- + params: array-like + The parameters of the model + + Returns + ------- + score : ndarray, 1-D + The score vector of the model, i.e. the first derivative of the + loglikelihood function, evaluated at `params` + + Notes + ----- + .. math:: \\frac{\\partial\\ln L}{\\partial\\beta}=\\sum_{i=1}^{n}\\left(y_{i}-\\Lambda_{i}\\right)x_{i} + """ + + y = self.endog + X = self.exog + L = self.cdf(np.dot(X,params)) + return np.dot(y - L,X) + + def score_obs(self, params): + """ + Logit model Jacobian of the log-likelihood for each observation + + Parameters + ---------- + params: array-like + The parameters of the model + + Returns + ------- + jac : ndarray, (nobs, k_vars) + The derivative of the loglikelihood for each observation evaluated + at `params`. + + Notes + ----- + .. math:: \\frac{\\partial\\ln L_{i}}{\\partial\\beta}=\\left(y_{i}-\\Lambda_{i}\\right)x_{i} + + for observations :math:`i=1,...,n` + + """ + + y = self.endog + X = self.exog + L = self.cdf(np.dot(X, params)) + return (y - L)[:,None] * X + + jac = np.deprecate(score_obs, 'jac', 'score_obs', "Use score_obs method." + " jac will be removed in 0.7") + + def hessian(self, params): + """ + Logit model Hessian matrix of the log-likelihood + + Parameters + ---------- + params : array-like + The parameters of the model + + Returns + ------- + hess : ndarray, (k_vars, k_vars) + The Hessian, second derivative of loglikelihood function, + evaluated at `params` + + Notes + ----- + .. math:: \\frac{\\partial^{2}\\ln L}{\\partial\\beta\\partial\\beta^{\\prime}}=-\\sum_{i}\\Lambda_{i}\\left(1-\\Lambda_{i}\\right)x_{i}x_{i}^{\\prime} + """ + X = self.exog + L = self.cdf(np.dot(X,params)) + return -np.dot(L*(1-L)*X.T,X) + + def fit(self, start_params=None, method='newton', maxiter=35, + full_output=1, disp=1, callback=None, **kwargs): + bnryfit = super(Logit, self).fit(start_params=start_params, + method=method, maxiter=maxiter, full_output=full_output, + disp=disp, callback=callback, **kwargs) + + discretefit = LogitResults(self, bnryfit) + return BinaryResultsWrapper(discretefit) + fit.__doc__ = DiscreteModel.fit.__doc__ + +class Probit(BinaryModel): + __doc__ = """ + Binary choice Probit model + +%(params)s + %(extra_params)s + + Attributes + ----------- + endog : array + A reference to the endogenous response variable + exog : array + A reference to the exogenous design. + """ % {'params' : base._model_params_doc, + 'extra_params' : base._missing_param_doc} + + def cdf(self, X): + """ + Probit (Normal) cumulative distribution function + + Parameters + ---------- + X : array-like + The linear predictor of the model (XB). + + Returns + -------- + cdf : ndarray + The cdf evaluated at `X`. + + Notes + ----- + This function is just an alias for scipy.stats.norm.cdf + """ + return stats.norm._cdf(X) + + def pdf(self, X): + """ + Probit (Normal) probability density function + + Parameters + ---------- + X : array-like + The linear predictor of the model (XB). + + Returns + -------- + pdf : ndarray + The value of the normal density function for each point of X. + + Notes + ----- + This function is just an alias for scipy.stats.norm.pdf + + """ + X = np.asarray(X) + return stats.norm._pdf(X) + + + def loglike(self, params): + """ + Log-likelihood of probit model (i.e., the normal distribution). + + Parameters + ---------- + params : array-like + The parameters of the model. + + Returns + ------- + loglike : float + The log-likelihood function of the model evaluated at `params`. + See notes. + + Notes + ----- + .. math:: \\ln L=\\sum_{i}\\ln\\Phi\\left(q_{i}x_{i}^{\\prime}\\beta\\right) + + Where :math:`q=2y-1`. This simplification comes from the fact that the + normal distribution is symmetric. + """ + + q = 2*self.endog - 1 + X = self.exog + return np.sum(np.log(np.clip(self.cdf(q*np.dot(X,params)), + FLOAT_EPS, 1))) + + def loglikeobs(self, params): + """ + Log-likelihood of probit model for each observation + + Parameters + ---------- + params : array-like + The parameters of the model. + + Returns + ------- + loglike : ndarray (nobs,) + The log likelihood for each observation of the model evaluated + at `params`. See Notes + + Notes + ----- + .. math:: \\ln L_{i}=\\ln\\Phi\\left(q_{i}x_{i}^{\\prime}\\beta\\right) + + for observations :math:`i=1,...,n` + + where :math:`q=2y-1`. This simplification comes from the fact that the + normal distribution is symmetric. + """ + + q = 2*self.endog - 1 + X = self.exog + return np.log(np.clip(self.cdf(q*np.dot(X,params)), FLOAT_EPS, 1)) + + + def score(self, params): + """ + Probit model score (gradient) vector + + Parameters + ---------- + params : array-like + The parameters of the model + + Returns + ------- + score : ndarray, 1-D + The score vector of the model, i.e. the first derivative of the + loglikelihood function, evaluated at `params` + + Notes + ----- + .. math:: \\frac{\\partial\\ln L}{\\partial\\beta}=\\sum_{i=1}^{n}\\left[\\frac{q_{i}\\phi\\left(q_{i}x_{i}^{\\prime}\\beta\\right)}{\\Phi\\left(q_{i}x_{i}^{\\prime}\\beta\\right)}\\right]x_{i} + + Where :math:`q=2y-1`. This simplification comes from the fact that the + normal distribution is symmetric. + """ + y = self.endog + X = self.exog + XB = np.dot(X,params) + q = 2*y - 1 + # clip to get rid of invalid divide complaint + L = q*self.pdf(q*XB)/np.clip(self.cdf(q*XB), FLOAT_EPS, 1 - FLOAT_EPS) + return np.dot(L,X) + + def score_obs(self, params): + """ + Probit model Jacobian for each observation + + Parameters + ---------- + params : array-like + The parameters of the model + + Returns + ------- + jac : ndarray, (nobs, k_vars) + The derivative of the loglikelihood for each observation evaluated + at `params`. + + Notes + ----- + .. math:: \\frac{\\partial\\ln L_{i}}{\\partial\\beta}=\\left[\\frac{q_{i}\\phi\\left(q_{i}x_{i}^{\\prime}\\beta\\right)}{\\Phi\\left(q_{i}x_{i}^{\\prime}\\beta\\right)}\\right]x_{i} + + for observations :math:`i=1,...,n` + + Where :math:`q=2y-1`. This simplification comes from the fact that the + normal distribution is symmetric. + """ + y = self.endog + X = self.exog + XB = np.dot(X,params) + q = 2*y - 1 + # clip to get rid of invalid divide complaint + L = q*self.pdf(q*XB)/np.clip(self.cdf(q*XB), FLOAT_EPS, 1 - FLOAT_EPS) + return L[:,None] * X + + jac = np.deprecate(score_obs, 'jac', 'score_obs', "Use score_obs method." + " jac will be removed in 0.7") + + def hessian(self, params): + """ + Probit model Hessian matrix of the log-likelihood + + Parameters + ---------- + params : array-like + The parameters of the model + + Returns + ------- + hess : ndarray, (k_vars, k_vars) + The Hessian, second derivative of loglikelihood function, + evaluated at `params` + + Notes + ----- + .. math:: \\frac{\\partial^{2}\\ln L}{\\partial\\beta\\partial\\beta^{\\prime}}=-\lambda_{i}\\left(\\lambda_{i}+x_{i}^{\\prime}\\beta\\right)x_{i}x_{i}^{\\prime} + + where + + .. math:: \\lambda_{i}=\\frac{q_{i}\\phi\\left(q_{i}x_{i}^{\\prime}\\beta\\right)}{\\Phi\\left(q_{i}x_{i}^{\\prime}\\beta\\right)} + + and :math:`q=2y-1` + """ + X = self.exog + XB = np.dot(X,params) + q = 2*self.endog - 1 + L = q*self.pdf(q*XB)/self.cdf(q*XB) + return np.dot(-L*(L+XB)*X.T,X) + + def fit(self, start_params=None, method='newton', maxiter=35, + full_output=1, disp=1, callback=None, **kwargs): + bnryfit = super(Probit, self).fit(start_params=start_params, + method=method, maxiter=maxiter, full_output=full_output, + disp=disp, callback=callback, **kwargs) + discretefit = ProbitResults(self, bnryfit) + return BinaryResultsWrapper(discretefit) + fit.__doc__ = DiscreteModel.fit.__doc__ + +class MNLogit(MultinomialModel): + __doc__ = """ + Multinomial logit model + + Parameters + ---------- + endog : array-like + `endog` is an 1-d vector of the endogenous response. `endog` can + contain strings, ints, or floats. Note that if it contains strings, + every distinct string will be a category. No stripping of whitespace + is done. + exog : array-like + A nobs x k array where `nobs` is the number of observations and `k` + is the number of regressors. An intercept is not included by default + and should be added by the user. See `statsmodels.tools.add_constant`. + %(extra_params)s + + Attributes + ---------- + endog : array + A reference to the endogenous response variable + exog : array + A reference to the exogenous design. + J : float + The number of choices for the endogenous variable. Note that this + is zero-indexed. + K : float + The actual number of parameters for the exogenous design. Includes + the constant if the design has one. + names : dict + A dictionary mapping the column number in `wendog` to the variables + in `endog`. + wendog : array + An n x j array where j is the number of unique categories in `endog`. + Each column of j is a dummy variable indicating the category of + each observation. See `names` for a dictionary mapping each column to + its category. + + Notes + ----- + See developer notes for further information on `MNLogit` internals. + """ % {'extra_params' : base._missing_param_doc} + + def pdf(self, eXB): + """ + NotImplemented + """ + raise NotImplementedError + + def cdf(self, X): + """ + Multinomial logit cumulative distribution function. + + Parameters + ---------- + X : array + The linear predictor of the model XB. + + Returns + -------- + cdf : ndarray + The cdf evaluated at `X`. + + Notes + ----- + In the multinomial logit model. + .. math:: \\frac{\\exp\\left(\\beta_{j}^{\\prime}x_{i}\\right)}{\\sum_{k=0}^{J}\\exp\\left(\\beta_{k}^{\\prime}x_{i}\\right)} + """ + eXB = np.column_stack((np.ones(len(X)), np.exp(X))) + return eXB/eXB.sum(1)[:,None] + + def loglike(self, params): + """ + Log-likelihood of the multinomial logit model. + + Parameters + ---------- + params : array-like + The parameters of the multinomial logit model. + + Returns + ------- + loglike : float + The log-likelihood function of the model evaluated at `params`. + See notes. + + Notes + ------ + .. math:: \\ln L=\\sum_{i=1}^{n}\\sum_{j=0}^{J}d_{ij}\\ln\\left(\\frac{\\exp\\left(\\beta_{j}^{\\prime}x_{i}\\right)}{\\sum_{k=0}^{J}\\exp\\left(\\beta_{k}^{\\prime}x_{i}\\right)}\\right) + + where :math:`d_{ij}=1` if individual `i` chose alternative `j` and 0 + if not. + """ + params = params.reshape(self.K, -1, order='F') + d = self.wendog + logprob = np.log(self.cdf(np.dot(self.exog,params))) + return np.sum(d * logprob) + + def loglikeobs(self, params): + """ + Log-likelihood of the multinomial logit model for each observation. + + Parameters + ---------- + params : array-like + The parameters of the multinomial logit model. + + Returns + ------- + loglike : ndarray (nobs,) + The log likelihood for each observation of the model evaluated + at `params`. See Notes + + Notes + ------ + .. math:: \\ln L_{i}=\\sum_{j=0}^{J}d_{ij}\\ln\\left(\\frac{\\exp\\left(\\beta_{j}^{\\prime}x_{i}\\right)}{\\sum_{k=0}^{J}\\exp\\left(\\beta_{k}^{\\prime}x_{i}\\right)}\\right) + + for observations :math:`i=1,...,n` + + where :math:`d_{ij}=1` if individual `i` chose alternative `j` and 0 + if not. + """ + params = params.reshape(self.K, -1, order='F') + d = self.wendog + logprob = np.log(self.cdf(np.dot(self.exog,params))) + return d * logprob + + def score(self, params): + """ + Score matrix for multinomial logit model log-likelihood + + Parameters + ---------- + params : array + The parameters of the multinomial logit model. + + Returns + -------- + score : ndarray, (K * (J-1),) + The 2-d score vector, i.e. the first derivative of the + loglikelihood function, of the multinomial logit model evaluated at + `params`. + + Notes + ----- + .. math:: \\frac{\\partial\\ln L}{\\partial\\beta_{j}}=\\sum_{i}\\left(d_{ij}-\\frac{\\exp\\left(\\beta_{j}^{\\prime}x_{i}\\right)}{\\sum_{k=0}^{J}\\exp\\left(\\beta_{k}^{\\prime}x_{i}\\right)}\\right)x_{i} + + for :math:`j=1,...,J` + + In the multinomial model the score matrix is K x J-1 but is returned + as a flattened array to work with the solvers. + """ + params = params.reshape(self.K, -1, order='F') + firstterm = self.wendog[:,1:] - self.cdf(np.dot(self.exog, + params))[:,1:] + #NOTE: might need to switch terms if params is reshaped + return np.dot(firstterm.T, self.exog).flatten() + + def loglike_and_score(self, params): + """ + Returns log likelihood and score, efficiently reusing calculations. + + Note that both of these returned quantities will need to be negated + before being minimized by the maximum likelihood fitting machinery. + + """ + params = params.reshape(self.K, -1, order='F') + cdf_dot_exog_params = self.cdf(np.dot(self.exog, params)) + loglike_value = np.sum(self.wendog * np.log(cdf_dot_exog_params)) + firstterm = self.wendog[:, 1:] - cdf_dot_exog_params[:, 1:] + score_array = np.dot(firstterm.T, self.exog).flatten() + return loglike_value, score_array + + def score_obs(self, params): + """ + Jacobian matrix for multinomial logit model log-likelihood + + Parameters + ---------- + params : array + The parameters of the multinomial logit model. + + Returns + -------- + jac : ndarray, (nobs, k_vars*(J-1)) + The derivative of the loglikelihood for each observation evaluated + at `params` . + + Notes + ----- + .. math:: \\frac{\\partial\\ln L_{i}}{\\partial\\beta_{j}}=\\left(d_{ij}-\\frac{\\exp\\left(\\beta_{j}^{\\prime}x_{i}\\right)}{\\sum_{k=0}^{J}\\exp\\left(\\beta_{k}^{\\prime}x_{i}\\right)}\\right)x_{i} + + for :math:`j=1,...,J`, for observations :math:`i=1,...,n` + + In the multinomial model the score vector is K x (J-1) but is returned + as a flattened array. The Jacobian has the observations in rows and + the flatteded array of derivatives in columns. + """ + params = params.reshape(self.K, -1, order='F') + firstterm = self.wendog[:,1:] - self.cdf(np.dot(self.exog, + params))[:,1:] + #NOTE: might need to switch terms if params is reshaped + return (firstterm[:,:,None] * self.exog[:,None,:]).reshape(self.exog.shape[0], -1) + + jac = np.deprecate(score_obs, 'jac', 'score_obs', "Use score_obs method." + " jac will be removed in 0.7") + + def hessian(self, params): + """ + Multinomial logit Hessian matrix of the log-likelihood + + Parameters + ----------- + params : array-like + The parameters of the model + + Returns + ------- + hess : ndarray, (J*K, J*K) + The Hessian, second derivative of loglikelihood function with + respect to the flattened parameters, evaluated at `params` + + Notes + ----- + .. math:: \\frac{\\partial^{2}\\ln L}{\\partial\\beta_{j}\\partial\\beta_{l}}=-\\sum_{i=1}^{n}\\frac{\\exp\\left(\\beta_{j}^{\\prime}x_{i}\\right)}{\\sum_{k=0}^{J}\\exp\\left(\\beta_{k}^{\\prime}x_{i}\\right)}\\left[\\boldsymbol{1}\\left(j=l\\right)-\\frac{\\exp\\left(\\beta_{l}^{\\prime}x_{i}\\right)}{\\sum_{k=0}^{J}\\exp\\left(\\beta_{k}^{\\prime}x_{i}\\right)}\\right]x_{i}x_{l}^{\\prime} + + where + :math:`\\boldsymbol{1}\\left(j=l\\right)` equals 1 if `j` = `l` and 0 + otherwise. + + The actual Hessian matrix has J**2 * K x K elements. Our Hessian + is reshaped to be square (J*K, J*K) so that the solvers can use it. + + This implementation does not take advantage of the symmetry of + the Hessian and could probably be refactored for speed. + """ + params = params.reshape(self.K, -1, order='F') + X = self.exog + pr = self.cdf(np.dot(X,params)) + partials = [] + J = self.wendog.shape[1] - 1 + K = self.exog.shape[1] + for i in range(J): + for j in range(J): # this loop assumes we drop the first col. + if i == j: + partials.append(\ + -np.dot(((pr[:,i+1]*(1-pr[:,j+1]))[:,None]*X).T,X)) + else: + partials.append(-np.dot(((pr[:,i+1]*-pr[:,j+1])[:,None]*X).T,X)) + H = np.array(partials) + # the developer's notes on multinomial should clear this math up + H = np.transpose(H.reshape(J,J,K,K), (0,2,1,3)).reshape(J*K,J*K) + return H + + +#TODO: Weibull can replaced by a survival analsysis function +# like stat's streg (The cox model as well) +#class Weibull(DiscreteModel): +# """ +# Binary choice Weibull model +# +# Notes +# ------ +# This is unfinished and untested. +# """ +##TODO: add analytic hessian for Weibull +# def initialize(self): +# pass +# +# def cdf(self, X): +# """ +# Gumbell (Log Weibull) cumulative distribution function +# """ +## return np.exp(-np.exp(-X)) +# return stats.gumbel_r.cdf(X) +# # these two are equivalent. +# # Greene table and discussion is incorrect. +# +# def pdf(self, X): +# """ +# Gumbell (LogWeibull) probability distribution function +# """ +# return stats.gumbel_r.pdf(X) +# +# def loglike(self, params): +# """ +# Loglikelihood of Weibull distribution +# """ +# X = self.exog +# cdf = self.cdf(np.dot(X,params)) +# y = self.endog +# return np.sum(y*np.log(cdf) + (1-y)*np.log(1-cdf)) +# +# def score(self, params): +# y = self.endog +# X = self.exog +# F = self.cdf(np.dot(X,params)) +# f = self.pdf(np.dot(X,params)) +# term = (y*f/F + (1 - y)*-f/(1-F)) +# return np.dot(term,X) +# +# def hessian(self, params): +# hess = nd.Jacobian(self.score) +# return hess(params) +# +# def fit(self, start_params=None, method='newton', maxiter=35, tol=1e-08): +## The example had problems with all zero start values, Hessian = 0 +# if start_params is None: +# start_params = OLS(self.endog, self.exog).fit().params +# mlefit = super(Weibull, self).fit(start_params=start_params, +# method=method, maxiter=maxiter, tol=tol) +# return mlefit +# + +class NegativeBinomial(CountModel): + __doc__ = """ + Negative Binomial Model for count data + +%(params)s + %(extra_params)s + + Attributes + ----------- + endog : array + A reference to the endogenous response variable + exog : array + A reference to the exogenous design. + + References + ---------- + + References: + + Greene, W. 2008. "Functional forms for the negtive binomial model + for count data". Economics Letters. Volume 99, Number 3, pp.585-590. + Hilbe, J.M. 2011. "Negative binomial regression". Cambridge University + Press. + """ % {'params' : base._model_params_doc, + 'extra_params' : + """loglike_method : string + Log-likelihood type. 'nb2','nb1', or 'geometric'. + Fitted value :math:`\\mu` + Heterogeneity parameter :math:`\\alpha` + + - nb2: Variance equal to :math:`\\mu + \\alpha\\mu^2` (most common) + - nb1: Variance equal to :math:`\\mu + \\alpha\\mu` + - geometric: Variance equal to :math:`\\mu + \\mu^2` + offset : array_like + Offset is added to the linear prediction with coefficient equal to 1. + exposure : array_like + Log(exposure) is added to the linear prediction with coefficient + equal to 1. + + """ + base._missing_param_doc} + def __init__(self, endog, exog, loglike_method='nb2', offset=None, + exposure=None, missing='none', **kwargs): + super(NegativeBinomial, self).__init__(endog, exog, offset=offset, + exposure=exposure, + missing=missing, **kwargs) + self.loglike_method = loglike_method + self._initialize() + if loglike_method in ['nb2', 'nb1']: + self.exog_names.append('alpha') + self.k_extra = 1 + else: + self.k_extra = 0 + # store keys for extras if we need to recreate model instance + # we need to append keys that don't go to super + self._init_keys.append('loglike_method') + + def _initialize(self): + if self.loglike_method == 'nb2': + self.hessian = self._hessian_nb2 + self.score = self._score_nbin + self.loglikeobs = self._ll_nb2 + self._transparams = True # transform lnalpha -> alpha in fit + elif self.loglike_method == 'nb1': + self.hessian = self._hessian_nb1 + self.score = self._score_nb1 + self.loglikeobs = self._ll_nb1 + self._transparams = True # transform lnalpha -> alpha in fit + elif self.loglike_method == 'geometric': + self.hessian = self._hessian_geom + self.score = self._score_geom + self.loglikeobs = self._ll_geometric + else: + raise NotImplementedError("Likelihood type must nb1, nb2 or " + "geometric") + + # Workaround to pickle instance methods + def __getstate__(self): + odict = self.__dict__.copy() # copy the dict since we change it + del odict['hessian'] + del odict['score'] + del odict['loglikeobs'] + return odict + + def __setstate__(self, indict): + self.__dict__.update(indict) + self._initialize() + + def _ll_nbin(self, params, alpha, Q=0): + endog = self.endog + mu = self.predict(params) + size = 1/alpha * mu**Q + prob = size/(size+mu) + coeff = (gammaln(size+endog) - gammaln(endog+1) - + gammaln(size)) + llf = coeff + size*np.log(prob) + endog*np.log(1-prob) + return llf + + def _ll_nb2(self, params): + if self._transparams: # got lnalpha during fit + alpha = np.exp(params[-1]) + else: + alpha = params[-1] + return self._ll_nbin(params[:-1], alpha, Q=0) + + def _ll_nb1(self, params): + if self._transparams: # got lnalpha during fit + alpha = np.exp(params[-1]) + else: + alpha = params[-1] + return self._ll_nbin(params[:-1], alpha, Q=1) + + def _ll_geometric(self, params): + # we give alpha of 1 because it's actually log(alpha) where alpha=0 + return self._ll_nbin(params, 1, 0) + + def loglike(self, params): + r""" + Loglikelihood for negative binomial model + + Parameters + ---------- + params : array-like + The parameters of the model. If `loglike_method` is nb1 or + nb2, then the ancillary parameter is expected to be the + last element. + + Returns + ------- + llf : float + The loglikelihood value at `params` + + Notes + ----- + Following notation in Greene (2008), with negative binomial + heterogeneity parameter :math:`\alpha`: + + .. math:: + + \lambda_i &= exp(X\beta) \\ + \theta &= 1 / \alpha \\ + g_i &= \theta \lambda_i^Q \\ + w_i &= g_i/(g_i + \lambda_i) \\ + r_i &= \theta / (\theta+\lambda_i) \\ + ln \mathcal{L}_i &= ln \Gamma(y_i+g_i) - ln \Gamma(1+y_i) + g_iln (r_i) + y_i ln(1-r_i) + + where :math`Q=0` for NB2 and geometric and :math:`Q=1` for NB1. + For the geometric, :math:`\alpha=0` as well. + + """ + llf = np.sum(self.loglikeobs(params)) + return llf + + def _score_geom(self, params): + exog = self.exog + y = self.endog[:,None] + mu = self.predict(params)[:,None] + dparams = exog * (y-mu)/(mu+1) + return dparams.sum(0) + + def _score_nbin(self, params, Q=0): + """ + Score vector for NB2 model + """ + if self._transparams: # lnalpha came in during fit + alpha = np.exp(params[-1]) + else: + alpha = params[-1] + params = params[:-1] + exog = self.exog + y = self.endog[:,None] + mu = self.predict(params)[:,None] + a1 = 1/alpha * mu**Q + if Q: # nb1 + dparams = exog*mu/alpha*(np.log(1/(alpha + 1)) + + special.digamma(y + mu/alpha) - + special.digamma(mu/alpha)) + dalpha = ((alpha*(y - mu*np.log(1/(alpha + 1)) - + mu*(special.digamma(y + mu/alpha) - + special.digamma(mu/alpha) + 1)) - + mu*(np.log(1/(alpha + 1)) + + special.digamma(y + mu/alpha) - + special.digamma(mu/alpha)))/ + (alpha**2*(alpha + 1))).sum() + + else: # nb2 + dparams = exog*a1 * (y-mu)/(mu+a1) + da1 = -alpha**-2 + dalpha = (special.digamma(a1+y) - special.digamma(a1) + np.log(a1) + - np.log(a1+mu) - (a1+y)/(a1+mu) + 1).sum()*da1 + + #multiply above by constant outside sum to reduce rounding error + if self._transparams: + return np.r_[dparams.sum(0), dalpha*alpha] + else: + return np.r_[dparams.sum(0), dalpha] + + def _score_nb1(self, params): + return self._score_nbin(params, Q=1) + + def _hessian_geom(self, params): + exog = self.exog + y = self.endog[:,None] + mu = self.predict(params)[:,None] + + # for dl/dparams dparams + dim = exog.shape[1] + hess_arr = np.empty((dim, dim)) + const_arr = mu*(1+y)/(mu+1)**2 + for i in range(dim): + for j in range(dim): + if j > i: + continue + hess_arr[i,j] = np.sum(-exog[:,i,None] * exog[:,j,None] * + const_arr, axis=0) + tri_idx = np.triu_indices(dim, k=1) + hess_arr[tri_idx] = hess_arr.T[tri_idx] + return hess_arr + + + def _hessian_nb1(self, params): + """ + Hessian of NB1 model. + """ + if self._transparams: # lnalpha came in during fit + alpha = np.exp(params[-1]) + else: + alpha = params[-1] + + params = params[:-1] + exog = self.exog + y = self.endog[:,None] + mu = self.predict(params)[:,None] + + a1 = mu/alpha + + # for dl/dparams dparams + dim = exog.shape[1] + hess_arr = np.empty((dim+1,dim+1)) + #const_arr = a1*mu*(a1+y)/(mu+a1)**2 + # not all of dparams + dparams = exog/alpha*(np.log(1/(alpha + 1)) + + special.digamma(y + mu/alpha) - + special.digamma(mu/alpha)) + + dmudb = exog*mu + xmu_alpha = exog*mu/alpha + trigamma = (special.polygamma(1, mu/alpha + y) - + special.polygamma(1, mu/alpha)) + for i in range(dim): + for j in range(dim): + if j > i: + continue + hess_arr[i,j] = np.sum(dparams[:,i,None] * dmudb[:,j,None] + + xmu_alpha[:,i,None] * xmu_alpha[:,j,None] * + trigamma, axis=0) + tri_idx = np.triu_indices(dim, k=1) + hess_arr[tri_idx] = hess_arr.T[tri_idx] + + # for dl/dparams dalpha + da1 = -alpha**-2 + dldpda = np.sum(-mu/alpha * dparams + exog*mu/alpha * + (-trigamma*mu/alpha**2 - 1/(alpha+1)), axis=0) + + hess_arr[-1,:-1] = dldpda + hess_arr[:-1,-1] = dldpda + + # for dl/dalpha dalpha + digamma_part = (special.digamma(y + mu/alpha) - + special.digamma(mu/alpha)) + + log_alpha = np.log(1/(alpha+1)) + alpha3 = alpha**3 + alpha2 = alpha**2 + mu2 = mu**2 + dada = ((alpha3*mu*(2*log_alpha + 2*digamma_part + 3) - + 2*alpha3*y + alpha2*mu2*trigamma + + 4*alpha2*mu*(log_alpha + digamma_part) + + alpha2 * (2*mu - y) + + 2*alpha*mu2*trigamma + + 2*alpha*mu*(log_alpha + digamma_part) + + mu2*trigamma)/(alpha**4*(alpha2 + 2*alpha + 1))) + hess_arr[-1,-1] = dada.sum() + + return hess_arr + + def _hessian_nb2(self, params): + """ + Hessian of NB2 model. + """ + if self._transparams: # lnalpha came in during fit + alpha = np.exp(params[-1]) + else: + alpha = params[-1] + a1 = 1/alpha + params = params[:-1] + + exog = self.exog + y = self.endog[:,None] + mu = self.predict(params)[:,None] + + # for dl/dparams dparams + dim = exog.shape[1] + hess_arr = np.empty((dim+1,dim+1)) + const_arr = a1*mu*(a1+y)/(mu+a1)**2 + for i in range(dim): + for j in range(dim): + if j > i: + continue + hess_arr[i,j] = np.sum(-exog[:,i,None] * exog[:,j,None] * + const_arr, axis=0) + tri_idx = np.triu_indices(dim, k=1) + hess_arr[tri_idx] = hess_arr.T[tri_idx] + + # for dl/dparams dalpha + da1 = -alpha**-2 + dldpda = np.sum(mu*exog*(y-mu)*da1/(mu+a1)**2 , axis=0) + hess_arr[-1,:-1] = dldpda + hess_arr[:-1,-1] = dldpda + + # for dl/dalpha dalpha + #NOTE: polygamma(1,x) is the trigamma function + da2 = 2*alpha**-3 + dalpha = da1 * (special.digamma(a1+y) - special.digamma(a1) + + np.log(a1) - np.log(a1+mu) - (a1+y)/(a1+mu) + 1) + dada = (da2 * dalpha/da1 + da1**2 * (special.polygamma(1, a1+y) - + special.polygamma(1, a1) + 1/a1 - 1/(a1 + mu) + + (y - mu)/(mu + a1)**2)).sum() + hess_arr[-1,-1] = dada + + return hess_arr + + #TODO: replace this with analytic where is it used? + def score_obs(self, params): + sc = approx_fprime_cs(params, self.loglikeobs) + return sc + + jac = np.deprecate(score_obs, 'jac', 'score_obs', "Use score_obs method." + " jac will be removed in 0.7") + + def fit(self, start_params=None, method='bfgs', maxiter=35, + full_output=1, disp=1, callback=None, + cov_type='nonrobust', cov_kwds=None, use_t=None, **kwargs): + + # Note: don't let super handle robust covariance because it has + # transformed params + + if self.loglike_method.startswith('nb') and method not in ['newton', + 'ncg']: + self._transparams = True # in case same Model instance is refit + elif self.loglike_method.startswith('nb'): # method is newton/ncg + self._transparams = False # because we need to step in alpha space + + if start_params is None: + # Use poisson fit as first guess. + #TODO, Warning: this assumes exposure is logged + offset = getattr(self, "offset", 0) + getattr(self, "exposure", 0) + if np.size(offset) == 1 and offset == 0: + offset = None + mod_poi = Poisson(self.endog, self.exog, offset=offset) + start_params = mod_poi.fit(disp=0).params + if self.loglike_method.startswith('nb'): + start_params = np.append(start_params, 0.1) + mlefit = super(NegativeBinomial, self).fit(start_params=start_params, + maxiter=maxiter, method=method, disp=disp, + full_output=full_output, callback=lambda x:x, + **kwargs) + # TODO: Fix NBin _check_perfect_pred + if self.loglike_method.startswith('nb'): + # mlefit is a wrapped counts results + self._transparams = False # don't need to transform anymore now + # change from lnalpha to alpha + if method not in ["newton", "ncg"]: + mlefit._results.params[-1] = np.exp(mlefit._results.params[-1]) + + nbinfit = NegativeBinomialResults(self, mlefit._results) + result = NegativeBinomialResultsWrapper(nbinfit) + else: + result = mlefit + + if cov_kwds is None: + cov_kwds = {} #TODO: make this unnecessary ? + result._get_robustcov_results(cov_type=cov_type, + use_self=True, use_t=use_t, **cov_kwds) + return result + + + def fit_regularized(self, start_params=None, method='l1', + maxiter='defined_by_method', full_output=1, disp=1, callback=None, + alpha=0, trim_mode='auto', auto_trim_tol=0.01, size_trim_tol=1e-4, + qc_tol=0.03, **kwargs): + + if self.loglike_method.startswith('nb') and (np.size(alpha) == 1 and + alpha != 0): + # don't penalize alpha if alpha is scalar + k_params = self.exog.shape[1] + self.k_extra + alpha = alpha * np.ones(k_params) + alpha[-1] = 0 + + # alpha for regularized poisson to get starting values + alpha_p = alpha[:-1] if (self.k_extra and np.size(alpha) > 1) else alpha + + self._transparams = False + if start_params is None: + # Use poisson fit as first guess. + #TODO, Warning: this assumes exposure is logged + offset = getattr(self, "offset", 0) + getattr(self, "exposure", 0) + if np.size(offset) == 1 and offset == 0: + offset = None + mod_poi = Poisson(self.endog, self.exog, offset=offset) + start_params = mod_poi.fit_regularized( + start_params=start_params, method=method, maxiter=maxiter, + full_output=full_output, disp=0, callback=callback, + alpha=alpha_p, trim_mode=trim_mode, auto_trim_tol=auto_trim_tol, + size_trim_tol=size_trim_tol, qc_tol=qc_tol, **kwargs).params + if self.loglike_method.startswith('nb'): + start_params = np.append(start_params, 0.1) + + cntfit = super(CountModel, self).fit_regularized( + start_params=start_params, method=method, maxiter=maxiter, + full_output=full_output, disp=disp, callback=callback, + alpha=alpha, trim_mode=trim_mode, auto_trim_tol=auto_trim_tol, + size_trim_tol=size_trim_tol, qc_tol=qc_tol, **kwargs) + if method in ['l1', 'l1_cvxopt_cp']: + discretefit = L1NegativeBinomialResults(self, cntfit) + else: + raise Exception( + "argument method == %s, which is not handled" % method) + + return L1NegativeBinomialResultsWrapper(discretefit) + + +### Results Class ### + +class DiscreteResults(base.LikelihoodModelResults): + __doc__ = _discrete_results_docs % {"one_line_description" : + "A results class for the discrete dependent variable models.", + "extra_attr" : ""} + + def __init__(self, model, mlefit, cov_type='nonrobust', cov_kwds=None, + use_t=None): + #super(DiscreteResults, self).__init__(model, params, + # np.linalg.inv(-hessian), scale=1.) + self.model = model + self.df_model = model.df_model + self.df_resid = model.df_resid + self._cache = resettable_cache() + self.nobs = model.exog.shape[0] + self.__dict__.update(mlefit.__dict__) + + if not hasattr(self, 'cov_type'): + # do this only if super, i.e. mlefit didn't already add cov_type + # robust covariance + if use_t is not None: + self.use_t = use_t + if cov_type == 'nonrobust': + self.cov_type = 'nonrobust' + self.cov_kwds = {'description' : 'Standard Errors assume that the ' + + 'covariance matrix of the errors is correctly ' + + 'specified.'} + else: + if cov_kwds is None: + cov_kwds = {} + from statsmodels.base.covtype import get_robustcov_results + get_robustcov_results(self, cov_type=cov_type, use_self=True, + **cov_kwds) + + + + def __getstate__(self): + try: + #remove unpicklable callback + self.mle_settings['callback'] = None + except (AttributeError, KeyError): + pass + return self.__dict__ + + @cache_readonly + def prsquared(self): + return 1 - self.llf/self.llnull + + @cache_readonly + def llr(self): + return -2*(self.llnull - self.llf) + + @cache_readonly + def llr_pvalue(self): + return stats.chisqprob(self.llr, self.df_model) + + @cache_readonly + def llnull(self): + + model = self.model + kwds = model._get_init_kwds() + # TODO: what parameters to pass to fit? + mod_null = model.__class__(model.endog, np.ones(self.nobs), **kwds) + # TODO: consider catching and warning on convergence failure? + # in the meantime, try hard to converge. see + # TestPoissonConstrained1a.test_smoke + res_null = mod_null.fit(disp=0, warn_convergence=False, + maxiter=10000) + return res_null.llf + + @cache_readonly + def fittedvalues(self): + return np.dot(self.model.exog, self.params[:self.model.exog.shape[1]]) + + @cache_readonly + def aic(self): + return -2*(self.llf - (self.df_model+1)) + + @cache_readonly + def bic(self): + return -2*self.llf + np.log(self.nobs)*(self.df_model+1) + + def _get_endog_name(self, yname, yname_list): + if yname is None: + yname = self.model.endog_names + if yname_list is None: + yname_list = self.model.endog_names + return yname, yname_list + + def get_margeff(self, at='overall', method='dydx', atexog=None, + dummy=False, count=False): + """Get marginal effects of the fitted model. + + Parameters + ---------- + at : str, optional + Options are: + + - 'overall', The average of the marginal effects at each + observation. + - 'mean', The marginal effects at the mean of each regressor. + - 'median', The marginal effects at the median of each regressor. + - 'zero', The marginal effects at zero for each regressor. + - 'all', The marginal effects at each observation. If `at` is all + only margeff will be available from the returned object. + + Note that if `exog` is specified, then marginal effects for all + variables not specified by `exog` are calculated using the `at` + option. + method : str, optional + Options are: + + - 'dydx' - dy/dx - No transformation is made and marginal effects + are returned. This is the default. + - 'eyex' - estimate elasticities of variables in `exog` -- + d(lny)/d(lnx) + - 'dyex' - estimate semielasticity -- dy/d(lnx) + - 'eydx' - estimate semeilasticity -- d(lny)/dx + + Note that tranformations are done after each observation is + calculated. Semi-elasticities for binary variables are computed + using the midpoint method. 'dyex' and 'eyex' do not make sense + for discrete variables. + atexog : array-like, optional + Optionally, you can provide the exogenous variables over which to + get the marginal effects. This should be a dictionary with the key + as the zero-indexed column number and the value of the dictionary. + Default is None for all independent variables less the constant. + dummy : bool, optional + If False, treats binary variables (if present) as continuous. This + is the default. Else if True, treats binary variables as + changing from 0 to 1. Note that any variable that is either 0 or 1 + is treated as binary. Each binary variable is treated separately + for now. + count : bool, optional + If False, treats count variables (if present) as continuous. This + is the default. Else if True, the marginal effect is the + change in probabilities when each observation is increased by one. + + Returns + ------- + DiscreteMargins : marginal effects instance + Returns an object that holds the marginal effects, standard + errors, confidence intervals, etc. See + `statsmodels.discrete.discrete_margins.DiscreteMargins` for more + information. + + Notes + ----- + When using after Poisson, returns the expected number of events + per period, assuming that the model is loglinear. + """ + from statsmodels.discrete.discrete_margins import DiscreteMargins + return DiscreteMargins(self, (at, method, atexog, dummy, count)) + + def summary(self, yname=None, xname=None, title=None, alpha=.05, + yname_list=None): + """Summarize the Regression Results + + Parameters + ----------- + yname : string, optional + Default is `y` + xname : list of strings, optional + Default is `var_##` for ## in p the number of regressors + title : string, optional + Title for the top table. If not None, then this replaces the + default title + alpha : float + significance level for the confidence intervals + + Returns + ------- + smry : Summary instance + this holds the summary tables and text, which can be printed or + converted to various output formats. + + See Also + -------- + statsmodels.iolib.summary.Summary : class to hold summary + results + + """ + + top_left = [('Dep. Variable:', None), + ('Model:', [self.model.__class__.__name__]), + ('Method:', ['MLE']), + ('Date:', None), + ('Time:', None), + #('No. iterations:', ["%d" % self.mle_retvals['iterations']]), + ('converged:', ["%s" % self.mle_retvals['converged']]) + ] + + top_right = [('No. Observations:', None), + ('Df Residuals:', None), + ('Df Model:', None), + ('Pseudo R-squ.:', ["%#6.4g" % self.prsquared]), + ('Log-Likelihood:', None), + ('LL-Null:', ["%#8.5g" % self.llnull]), + ('LLR p-value:', ["%#6.4g" % self.llr_pvalue]) + ] + + if title is None: + title = self.model.__class__.__name__ + ' ' + "Regression Results" + + #boiler plate + from statsmodels.iolib.summary import Summary + smry = Summary() + yname, yname_list = self._get_endog_name(yname, yname_list) + # for top of table + smry.add_table_2cols(self, gleft=top_left, gright=top_right, #[], + yname=yname, xname=xname, title=title) + # for parameters, etc + smry.add_table_params(self, yname=yname_list, xname=xname, alpha=alpha, + use_t=self.use_t) + + if hasattr(self, 'constraints'): + smry.add_extra_txt(['Model has been estimated subject to linear ' + 'equality constraints.']) + + #diagnostic table not used yet + #smry.add_table_2cols(self, gleft=diagn_left, gright=diagn_right, + # yname=yname, xname=xname, + # title="") + return smry + + def summary2(self, yname=None, xname=None, title=None, alpha=.05, + float_format="%.4f"): + """Experimental function to summarize regression results + + Parameters + ----------- + xname : List of strings of length equal to the number of parameters + Names of the independent variables (optional) + yname : string + Name of the dependent variable (optional) + title : string, optional + Title for the top table. If not None, then this replaces the + default title + alpha : float + significance level for the confidence intervals + float_format: string + print format for floats in parameters summary + + Returns + ------- + smry : Summary instance + this holds the summary tables and text, which can be printed or + converted to various output formats. + + See Also + -------- + statsmodels.iolib.summary.Summary : class to hold summary + results + + """ + # Summary + from statsmodels.iolib import summary2 + smry = summary2.Summary() + smry.add_base(results=self, alpha=alpha, float_format=float_format, + xname=xname, yname=yname, title=title) + + if hasattr(self, 'constraints'): + smry.add_text('Model has been estimated subject to linear ' + 'equality constraints.') + + return smry + + + +class CountResults(DiscreteResults): + __doc__ = _discrete_results_docs % { + "one_line_description" : "A results class for count data", + "extra_attr" : ""} + @cache_readonly + def resid(self): + """ + Residuals + + Notes + ----- + The residuals for Count models are defined as + + .. math:: y - p + + where :math:`p = \\exp(X\\beta)`. Any exposure and offset variables + are also handled. + """ + return self.model.endog - self.predict() + +class NegativeBinomialResults(CountResults): + __doc__ = _discrete_results_docs % { + "one_line_description" : "A results class for NegativeBinomial 1 and 2", + "extra_attr" : ""} + + @cache_readonly + def lnalpha(self): + return np.log(self.params[-1]) + + @cache_readonly + def lnalpha_std_err(self): + return self.bse[-1] / self.params[-1] + + @cache_readonly + def aic(self): + # + 1 because we estimate alpha + k_extra = getattr(self.model, 'k_extra', 0) + return -2*(self.llf - (self.df_model + self.k_constant + k_extra)) + + @cache_readonly + def bic(self): + # + 1 because we estimate alpha + k_extra = getattr(self.model, 'k_extra', 0) + return -2*self.llf + np.log(self.nobs)*(self.df_model + + self.k_constant + k_extra) + +class L1CountResults(DiscreteResults): + __doc__ = _discrete_results_docs % {"one_line_description" : + "A results class for count data fit by l1 regularization", + "extra_attr" : _l1_results_attr} + #discretefit = CountResults(self, cntfit) + + def __init__(self, model, cntfit): + super(L1CountResults, self).__init__(model, cntfit) + # self.trimmed is a boolean array with T/F telling whether or not that + # entry in params has been set zero'd out. + self.trimmed = cntfit.mle_retvals['trimmed'] + self.nnz_params = (self.trimmed == False).sum() + # update degrees of freedom + self.model.df_model = self.nnz_params - 1 + self.model.df_resid = float(self.model.endog.shape[0] - self.nnz_params) + # adjust for extra parameter in NegativeBinomial nb1 and nb2 + # extra parameter is not included in df_model + k_extra = getattr(self.model, 'k_extra', 0) + self.model.df_model -= k_extra + self.model.df_resid += k_extra + self.df_model = self.model.df_model + self.df_resid = self.model.df_resid + +class PoissonResults(CountResults): + def predict_prob(self, n=None, exog=None, exposure=None, offset=None, + transform=True): + """ + Return predicted probability of each count level for each observation + + Parameters + ---------- + n : array-like or int + The counts for which you want the probabilities. If n is None + then the probabilities for each count from 0 to max(y) are + given. + + Returns + ------- + ndarray + A nobs x n array where len(`n`) columns are indexed by the count + n. If n is None, then column 0 is the probability that each + observation is 0, column 1 is the probability that each + observation is 1, etc. + """ + if n is not None: + counts = np.atleast_2d(n) + else: + counts = np.atleast_2d(np.arange(0, np.max(self.model.endog)+1)) + mu = self.predict(exog=exog, exposure=exposure, offset=offset, + transform=transform, linear=False)[:,None] + # uses broadcasting + return stats.poisson.pmf(counts, mu) + +class L1PoissonResults(L1CountResults, PoissonResults): + pass + +class L1NegativeBinomialResults(L1CountResults, NegativeBinomialResults): + pass + +class OrderedResults(DiscreteResults): + __doc__ = _discrete_results_docs % {"one_line_description" : "A results class for ordered discrete data." , "extra_attr" : ""} + pass + +class BinaryResults(DiscreteResults): + __doc__ = _discrete_results_docs % {"one_line_description" : "A results class for binary data", "extra_attr" : ""} + + def pred_table(self, threshold=.5): + """ + Prediction table + + Parameters + ---------- + threshold : scalar + Number between 0 and 1. Threshold above which a prediction is + considered 1 and below which a prediction is considered 0. + + Notes + ------ + pred_table[i,j] refers to the number of times "i" was observed and + the model predicted "j". Correct predictions are along the diagonal. + """ + model = self.model + actual = model.endog + pred = np.array(self.predict() > threshold, dtype=float) + bins = np.array([0, 0.5, 1]) + return np.histogram2d(actual, pred, bins=bins)[0] + + + def summary(self, yname=None, xname=None, title=None, alpha=.05, + yname_list=None): + smry = super(BinaryResults, self).summary(yname, xname, title, alpha, + yname_list) + fittedvalues = self.model.cdf(self.fittedvalues) + absprederror = np.abs(self.model.endog - fittedvalues) + predclose_sum = (absprederror < 1e-4).sum() + predclose_frac = predclose_sum / len(fittedvalues) + + #add warnings/notes + etext = [] + if predclose_sum == len(fittedvalues): #nobs? + wstr = "Complete Separation: The results show that there is" + wstr += "complete separation.\n" + wstr += "In this case the Maximum Likelihood Estimator does " + wstr += "not exist and the parameters\n" + wstr += "are not identified." + etext.append(wstr) + elif predclose_frac > 0.1: # TODO: get better diagnosis + wstr = "Possibly complete quasi-separation: A fraction " + wstr += "%4.2f of observations can be\n" % predclose_frac + wstr += "perfectly predicted. This might indicate that there " + wstr += "is complete\nquasi-separation. In this case some " + wstr += "parameters will not be identified." + etext.append(wstr) + if etext: + smry.add_extra_txt(etext) + return smry + summary.__doc__ = DiscreteResults.summary.__doc__ + + @cache_readonly + def resid_dev(self): + """ + Deviance residuals + + Notes + ----- + Deviance residuals are defined + + .. math:: d_j = \\pm\\left(2\\left[Y_j\\ln\\left(\\frac{Y_j}{M_jp_j}\\right) + (M_j - Y_j\\ln\\left(\\frac{M_j-Y_j}{M_j(1-p_j)} \\right) \\right] \\right)^{1/2} + + where + + :math:`p_j = cdf(X\\beta)` and :math:`M_j` is the total number of + observations sharing the covariate pattern :math:`j`. + + For now :math:`M_j` is always set to 1. + """ + #These are the deviance residuals + #model = self.model + endog = self.model.endog + #exog = model.exog + # M = # of individuals that share a covariate pattern + # so M[i] = 2 for i = two share a covariate pattern + M = 1 + p = self.predict() + #Y_0 = np.where(exog == 0) + #Y_M = np.where(exog == M) + #NOTE: Common covariate patterns are not yet handled + res = -(1-endog)*np.sqrt(2*M*np.abs(np.log(1-p))) + \ + endog*np.sqrt(2*M*np.abs(np.log(p))) + return res + + @cache_readonly + def resid_pearson(self): + """ + Pearson residuals + + Notes + ----- + Pearson residuals are defined to be + + .. math:: r_j = \\frac{(y - M_jp_j)}{\\sqrt{M_jp_j(1-p_j)}} + + where :math:`p_j=cdf(X\\beta)` and :math:`M_j` is the total number of + observations sharing the covariate pattern :math:`j`. + + For now :math:`M_j` is always set to 1. + """ + # Pearson residuals + #model = self.model + endog = self.model.endog + #exog = model.exog + # M = # of individuals that share a covariate pattern + # so M[i] = 2 for i = two share a covariate pattern + # use unique row pattern? + M = 1 + p = self.predict() + return (endog - M*p)/np.sqrt(M*p*(1-p)) + + @cache_readonly + def resid_response(self): + """ + The response residuals + + Notes + ----- + Response residuals are defined to be + + .. math:: y - p + + where :math:`p=cdf(X\\beta)`. + """ + return self.model.endog - self.predict() + +class LogitResults(BinaryResults): + __doc__ = _discrete_results_docs % { + "one_line_description" : "A results class for Logit Model", + "extra_attr" : ""} + @cache_readonly + def resid_generalized(self): + """ + Generalized residuals + + Notes + ----- + The generalized residuals for the Logit model are defined + + .. math:: y - p + + where :math:`p=cdf(X\\beta)`. This is the same as the `resid_response` + for the Logit model. + """ + # Generalized residuals + return self.model.endog - self.predict() + +class ProbitResults(BinaryResults): + __doc__ = _discrete_results_docs % { + "one_line_description" : "A results class for Probit Model", + "extra_attr" : ""} + @cache_readonly + def resid_generalized(self): + """ + Generalized residuals + + Notes + ----- + The generalized residuals for the Probit model are defined + + .. math:: y\\frac{\phi(X\\beta)}{\\Phi(X\\beta)}-(1-y)\\frac{\\phi(X\\beta)}{1-\\Phi(X\\beta)} + """ + # generalized residuals + model = self.model + endog = model.endog + XB = self.predict(linear=True) + pdf = model.pdf(XB) + cdf = model.cdf(XB) + return endog * pdf/cdf - (1-endog)*pdf/(1-cdf) + +class L1BinaryResults(BinaryResults): + __doc__ = _discrete_results_docs % {"one_line_description" : + "Results instance for binary data fit by l1 regularization", + "extra_attr" : _l1_results_attr} + def __init__(self, model, bnryfit): + super(L1BinaryResults, self).__init__(model, bnryfit) + # self.trimmed is a boolean array with T/F telling whether or not that + # entry in params has been set zero'd out. + self.trimmed = bnryfit.mle_retvals['trimmed'] + self.nnz_params = (self.trimmed == False).sum() + self.model.df_model = self.nnz_params - 1 + self.model.df_resid = float(self.model.endog.shape[0] - self.nnz_params) + self.df_model = self.model.df_model + self.df_resid = self.model.df_resid + + +class MultinomialResults(DiscreteResults): + __doc__ = _discrete_results_docs % {"one_line_description" : + "A results class for multinomial data", "extra_attr" : ""} + def _maybe_convert_ynames_int(self, ynames): + # see if they're integers + try: + for i in ynames: + if ynames[i] % 1 == 0: + ynames[i] = str(int(ynames[i])) + except TypeError: + pass + return ynames + + def _get_endog_name(self, yname, yname_list, all=False): + """ + If all is False, the first variable name is dropped + """ + model = self.model + if yname is None: + yname = model.endog_names + if yname_list is None: + ynames = model._ynames_map + ynames = self._maybe_convert_ynames_int(ynames) + # use range below to ensure sortedness + ynames = [ynames[key] for key in range(int(model.J))] + ynames = ['='.join([yname, name]) for name in ynames] + if not all: + yname_list = ynames[1:] # assumes first variable is dropped + else: + yname_list = ynames + return yname, yname_list + + def pred_table(self): + """ + Returns the J x J prediction table. + + Notes + ----- + pred_table[i,j] refers to the number of times "i" was observed and + the model predicted "j". Correct predictions are along the diagonal. + """ + ju = self.model.J - 1 # highest index + # these are the actual, predicted indices + #idx = lzip(self.model.endog, self.predict().argmax(1)) + bins = np.concatenate(([0], np.linspace(0.5, ju - 0.5, ju), [ju])) + return np.histogram2d(self.model.endog, self.predict().argmax(1), + bins=bins)[0] + + @cache_readonly + def bse(self): + bse = np.sqrt(np.diag(self.cov_params())) + return bse.reshape(self.params.shape, order='F') + + @cache_readonly + def aic(self): + return -2*(self.llf - (self.df_model+self.model.J-1)) + + @cache_readonly + def bic(self): + return -2*self.llf + np.log(self.nobs)*(self.df_model+self.model.J-1) + + def conf_int(self, alpha=.05, cols=None): + confint = super(DiscreteResults, self).conf_int(alpha=alpha, + cols=cols) + return confint.transpose(2,0,1) + + def margeff(self): + raise NotImplementedError("Use get_margeff instead") + + @cache_readonly + def resid_misclassified(self): + """ + Residuals indicating which observations are misclassified. + + Notes + ----- + The residuals for the multinomial model are defined as + + .. math:: argmax(y_i) \\neq argmax(p_i) + + where :math:`argmax(y_i)` is the index of the category for the + endogenous variable and :math:`argmax(p_i)` is the index of the + predicted probabilities for each category. That is, the residual + is a binary indicator that is 0 if the category with the highest + predicted probability is the same as that of the observed variable + and 1 otherwise. + """ + # it's 0 or 1 - 0 for correct prediction and 1 for a missed one + return (self.model.wendog.argmax(1) != + self.predict().argmax(1)).astype(float) + + def summary2(self, alpha=0.05, float_format="%.4f"): + """Experimental function to summarize regression results + + Parameters + ----------- + alpha : float + significance level for the confidence intervals + float_format: string + print format for floats in parameters summary + + Returns + ------- + smry : Summary instance + this holds the summary tables and text, which can be printed or + converted to various output formats. + + See Also + -------- + statsmodels.iolib.summary2.Summary : class to hold summary + results + + """ + + from statsmodels.iolib import summary2 + smry = summary2.Summary() + smry.add_dict(summary2.summary_model(self)) + # One data frame per value of endog + eqn = self.params.shape[1] + confint = self.conf_int(alpha) + for i in range(eqn): + coefs = summary2.summary_params(self, alpha, self.params[:,i], + self.bse[:,i], self.tvalues[:,i], self.pvalues[:,i], + confint[i]) + # Header must show value of endog + level_str = self.model.endog_names + ' = ' + str(i) + coefs[level_str] = coefs.index + coefs = coefs.ix[:,[-1,0,1,2,3,4,5]] + smry.add_df(coefs, index=False, header=True, float_format=float_format) + smry.add_title(results=self) + return smry + + +class L1MultinomialResults(MultinomialResults): + __doc__ = _discrete_results_docs % {"one_line_description" : + "A results class for multinomial data fit by l1 regularization", + "extra_attr" : _l1_results_attr} + def __init__(self, model, mlefit): + super(L1MultinomialResults, self).__init__(model, mlefit) + # self.trimmed is a boolean array with T/F telling whether or not that + # entry in params has been set zero'd out. + self.trimmed = mlefit.mle_retvals['trimmed'] + self.nnz_params = (self.trimmed == False).sum() + + #Note: J-1 constants + self.model.df_model = self.nnz_params - (self.model.J - 1) + self.model.df_resid = float(self.model.endog.shape[0] - self.nnz_params) + self.df_model = self.model.df_model + self.df_resid = self.model.df_resid + + +#### Results Wrappers #### + +class OrderedResultsWrapper(lm.RegressionResultsWrapper): + pass +wrap.populate_wrapper(OrderedResultsWrapper, OrderedResults) + +class CountResultsWrapper(lm.RegressionResultsWrapper): + pass +wrap.populate_wrapper(CountResultsWrapper, CountResults) + +class NegativeBinomialResultsWrapper(lm.RegressionResultsWrapper): + pass +wrap.populate_wrapper(NegativeBinomialResultsWrapper, + NegativeBinomialResults) + +class PoissonResultsWrapper(lm.RegressionResultsWrapper): + pass + #_methods = { + # "predict_prob" : "rows", + # } + #_wrap_methods = lm.wrap.union_dicts( + # lm.RegressionResultsWrapper._wrap_methods, + # _methods) +wrap.populate_wrapper(PoissonResultsWrapper, PoissonResults) + +class L1CountResultsWrapper(lm.RegressionResultsWrapper): + pass + +class L1PoissonResultsWrapper(lm.RegressionResultsWrapper): + pass + #_methods = { + # "predict_prob" : "rows", + # } + #_wrap_methods = lm.wrap.union_dicts( + # lm.RegressionResultsWrapper._wrap_methods, + # _methods) +wrap.populate_wrapper(L1PoissonResultsWrapper, L1PoissonResults) + +class L1NegativeBinomialResultsWrapper(lm.RegressionResultsWrapper): + pass +wrap.populate_wrapper(L1NegativeBinomialResultsWrapper, + L1NegativeBinomialResults) + +class BinaryResultsWrapper(lm.RegressionResultsWrapper): + _attrs = {"resid_dev" : "rows", + "resid_generalized" : "rows", + "resid_pearson" : "rows", + "resid_response" : "rows" + } + _wrap_attrs = wrap.union_dicts(lm.RegressionResultsWrapper._wrap_attrs, + _attrs) +wrap.populate_wrapper(BinaryResultsWrapper, BinaryResults) + +class L1BinaryResultsWrapper(lm.RegressionResultsWrapper): + pass +wrap.populate_wrapper(L1BinaryResultsWrapper, L1BinaryResults) + +class MultinomialResultsWrapper(lm.RegressionResultsWrapper): + _attrs = {"resid_misclassified" : "rows"} + _wrap_attrs = wrap.union_dicts(lm.RegressionResultsWrapper._wrap_attrs, + _attrs) +wrap.populate_wrapper(MultinomialResultsWrapper, MultinomialResults) + +class L1MultinomialResultsWrapper(lm.RegressionResultsWrapper): + pass +wrap.populate_wrapper(L1MultinomialResultsWrapper, L1MultinomialResults) + + +if __name__=="__main__": + import numpy as np + import statsmodels.api as sm +# Scratch work for negative binomial models +# dvisits was written using an R package, I can provide the dataset +# on request until the copyright is cleared up +#TODO: request permission to use dvisits + data2 = np.genfromtxt('../datasets/dvisits/dvisits.csv', names=True) +# note that this has missing values for Accident + endog = data2['doctorco'] + exog = data2[['sex','age','agesq','income','levyplus','freepoor', + 'freerepa','illness','actdays','hscore','chcond1', + 'chcond2']].view(float, np.ndarray).reshape(len(data2),-1) + exog = sm.add_constant(exog, prepend=True) + poisson_mod = Poisson(endog, exog) + poisson_res = poisson_mod.fit() +# nb2_mod = NegBinTwo(endog, exog) +# nb2_res = nb2_mod.fit() +# solvers hang (with no error and no maxiter warn...) +# haven't derived hessian (though it will be block diagonal) to check +# newton, note that Lawless (1987) has the derivations +# appear to be something wrong with the score? +# according to Lawless, traditionally the likelihood is maximized wrt to B +# and a gridsearch on a to determin ahat? +# or the Breslow approach, which is 2 step iterative. + nb2_params = [-2.190,.217,-.216,.609,-.142,.118,-.497,.145,.214,.144, + .038,.099,.190,1.077] # alpha is last + # taken from Cameron and Trivedi +# the below is from Cameron and Trivedi as well +# endog2 = np.array(endog>=1, dtype=float) +# skipped for now, binary poisson results look off? + data = sm.datasets.randhie.load() + nbreg = NegativeBinomial + mod = nbreg(data.endog, data.exog.view((float,9))) +#FROM STATA: + params = np.asarray([-.05654133, -.21214282, .0878311, -.02991813, .22903632, + .06210226, .06799715, .08407035, .18532336]) + bse = [0.0062541, 0.0231818, 0.0036942, 0.0034796, 0.0305176, 0.0012397, + 0.0198008, 0.0368707, 0.0766506] + lnalpha = .31221786 + mod.loglike(np.r_[params,np.exp(lnalpha)]) + poiss_res = Poisson(data.endog, data.exog.view((float,9))).fit() + func = lambda x: -mod.loglike(x) + grad = lambda x: -mod.score(x) + from scipy import optimize +# res1 = optimize.fmin_l_bfgs_b(func, np.r_[poiss_res.params,.1], +# approx_grad=True) + res1 = optimize.fmin_bfgs(func, np.r_[poiss_res.params,.1], fprime=grad) + from statsmodels.tools.numdiff import approx_hess_cs +# np.sqrt(np.diag(-np.linalg.inv(approx_hess_cs(np.r_[params,lnalpha], mod.loglike)))) +#NOTE: this is the hessian in terms of alpha _not_ lnalpha + hess_arr = mod.hessian(res1) diff --git a/statsmodels/discrete/tests/__init__.py b/statsmodels/discrete/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/discrete/tests/results/__init__.py b/statsmodels/discrete/tests/results/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/discrete/tests/results/mn_logit_summary.txt b/statsmodels/discrete/tests/results/mn_logit_summary.txt new file mode 100644 index 0000000..76762e0 --- /dev/null +++ b/statsmodels/discrete/tests/results/mn_logit_summary.txt @@ -0,0 +1,49 @@ +============================================================================== + y=1 coef std err z P>|z| [0.025 0.975] +------------------------------------------------------------------------------ +const -0.2794 0.612 -0.457 0.648 -1.479 0.920 +x1 -0.0119 0.034 -0.350 0.727 -0.079 0.055 +x2 0.2946 0.093 3.152 0.002 0.111 0.478 +x3 -0.0257 0.007 -3.873 0.000 -0.039 -0.013 +x4 0.0897 0.069 1.297 0.195 -0.046 0.225 +------------------------------------------------------------------------------ + y=2 coef std err z P>|z| [0.025 0.975] +------------------------------------------------------------------------------ +const -1.7392 0.720 -2.414 0.016 -3.151 -0.327 +x1 -0.0941 0.039 -2.415 0.016 -0.170 -0.018 +x2 0.3838 0.108 3.559 0.000 0.172 0.595 +x3 -0.0230 0.008 -2.914 0.004 -0.038 -0.008 +x4 0.2451 0.080 3.053 0.002 0.088 0.402 +------------------------------------------------------------------------------ + y=3 coef std err z P>|z| [0.025 0.975] +------------------------------------------------------------------------------ +const -3.0091 1.069 -2.815 0.005 -5.104 -0.914 +x1 -0.1115 0.057 -1.965 0.049 -0.223 -0.000 +x2 0.5641 0.159 3.557 0.000 0.253 0.875 +x3 -0.0156 0.011 -1.391 0.164 -0.038 0.006 +x4 0.0687 0.119 0.577 0.564 -0.165 0.302 +------------------------------------------------------------------------------ + y=4 coef std err z P>|z| [0.025 0.975] +------------------------------------------------------------------------------ +const -6.5607 0.870 -7.540 0.000 -8.266 -4.855 +x1 -0.0949 0.043 -2.183 0.029 -0.180 -0.010 +x2 1.2668 0.128 9.897 0.000 1.016 1.518 +x3 -0.0109 0.008 -1.315 0.189 -0.027 0.005 +x4 0.3067 0.088 3.475 0.001 0.134 0.480 +------------------------------------------------------------------------------ + y=5 coef std err z P>|z| [0.025 0.975] +------------------------------------------------------------------------------ +const -6.0760 0.774 -7.851 0.000 -7.593 -4.559 +x1 -0.0967 0.039 -2.479 0.013 -0.173 -0.020 +x2 1.3377 0.116 11.493 0.000 1.110 1.566 +x3 -0.0198 0.008 -2.631 0.009 -0.035 -0.005 +x4 0.3193 0.080 4.001 0.000 0.163 0.476 +------------------------------------------------------------------------------ + y=6 coef std err z P>|z| [0.025 0.975] +------------------------------------------------------------------------------ +const -10.5973 0.957 -11.076 0.000 -12.473 -8.722 +x1 -0.1447 0.042 -3.475 0.001 -0.226 -0.063 +x2 2.0395 0.141 14.479 0.000 1.763 2.316 +x3 -0.0129 0.008 -1.612 0.107 -0.029 0.003 +x4 0.4576 0.085 5.352 0.000 0.290 0.625 +============================================================================== diff --git a/statsmodels/discrete/tests/results/mnlogit_resid.csv b/statsmodels/discrete/tests/results/mnlogit_resid.csv new file mode 100644 index 0000000..9000fe3 --- /dev/null +++ b/statsmodels/discrete/tests/results/mnlogit_resid.csv @@ -0,0 +1 @@ +0.00,0.00,0.00,0.00,0.00,0.00,1.00,1.00,1.00,0.00,1.00,0.00,1.00,1.00,0.00,1.00,1.00,0.00,1.00,0.00,1.00,1.00,1.00,0.00,1.00,0.00,1.00,1.00,0.00,1.00,1.00,1.00,1.00,0.00,1.00,0.00,1.00,1.00,0.00,1.00,0.00,1.00,0.00,0.00,1.00,1.00,1.00,0.00,1.00,1.00,1.00,1.00,1.00,0.00,0.00,1.00,1.00,0.00,0.00,0.00,0.00,0.00,1.00,0.00,0.00,1.00,1.00,1.00,1.00,0.00,1.00,1.00,1.00,1.00,0.00,1.00,0.00,1.00,1.00,1.00,1.00,1.00,1.00,0.00,1.00,0.00,1.00,1.00,1.00,0.00,0.00,1.00,0.00,1.00,0.00,1.00,1.00,1.00,0.00,1.00,0.00,1.00,1.00,1.00,0.00,0.00,1.00,1.00,0.00,0.00,1.00,0.00,1.00,0.00,1.00,1.00,1.00,1.00,1.00,1.00,0.00,1.00,0.00,0.00,1.00,1.00,0.00,0.00,0.00,1.00,1.00,1.00,1.00,0.00,1.00,1.00,1.00,0.00,1.00,1.00,0.00,1.00,1.00,1.00,1.00,1.00,0.00,1.00,0.00,0.00,0.00,1.00,1.00,0.00,1.00,0.00,1.00,1.00,0.00,0.00,1.00,0.00,0.00,1.00,1.00,1.00,1.00,0.00,1.00,1.00,1.00,1.00,1.00,0.00,0.00,1.00,1.00,0.00,0.00,1.00,0.00,0.00,0.00,0.00,1.00,1.00,1.00,1.00,1.00,0.00,0.00,1.00,1.00,1.00,1.00,0.00,0.00,1.00,1.00,1.00,1.00,1.00,0.00,0.00,1.00,1.00,0.00,0.00,1.00,1.00,0.00,1.00,1.00,1.00,0.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,0.00,1.00,0.00,0.00,0.00,1.00,0.00,0.00,1.00,1.00,1.00,1.00,0.00,1.00,1.00,0.00,1.00,1.00,1.00,0.00,1.00,0.00,1.00,0.00,0.00,0.00,1.00,0.00,1.00,1.00,0.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,0.00,1.00,0.00,1.00,1.00,1.00,0.00,1.00,1.00,0.00,1.00,1.00,1.00,1.00,0.00,0.00,1.00,0.00,1.00,1.00,1.00,1.00,0.00,0.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,0.00,0.00,1.00,1.00,0.00,1.00,1.00,0.00,1.00,1.00,0.00,1.00,0.00,0.00,0.00,0.00,1.00,0.00,0.00,0.00,1.00,0.00,0.00,1.00,0.00,1.00,1.00,0.00,0.00,0.00,0.00,0.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,0.00,1.00,0.00,1.00,0.00,0.00,1.00,0.00,1.00,0.00,1.00,1.00,1.00,1.00,0.00,1.00,0.00,1.00,1.00,1.00,1.00,1.00,0.00,0.00,0.00,1.00,0.00,0.00,1.00,1.00,1.00,1.00,1.00,1.00,0.00,0.00,1.00,1.00,0.00,1.00,1.00,0.00,0.00,0.00,0.00,1.00,0.00,0.00,1.00,1.00,0.00,0.00,1.00,1.00,0.00,1.00,0.00,0.00,1.00,1.00,1.00,0.00,1.00,0.00,0.00,0.00,0.00,1.00,0.00,0.00,0.00,0.00,1.00,0.00,0.00,0.00,0.00,0.00,1.00,1.00,0.00,0.00,1.00,1.00,0.00,0.00,1.00,1.00,0.00,1.00,1.00,0.00,0.00,1.00,0.00,0.00,1.00,0.00,1.00,0.00,0.00,0.00,1.00,0.00,1.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,1.00,1.00,1.00,1.00,1.00,0.00,1.00,1.00,1.00,0.00,1.00,1.00,1.00,0.00,0.00,0.00,0.00,1.00,1.00,1.00,1.00,1.00,0.00,1.00,1.00,0.00,0.00,1.00,1.00,0.00,1.00,0.00,1.00,1.00,0.00,1.00,1.00,0.00,0.00,1.00,0.00,1.00,1.00,0.00,0.00,0.00,1.00,1.00,1.00,1.00,1.00,0.00,1.00,1.00,1.00,0.00,0.00,1.00,1.00,1.00,1.00,1.00,0.00,1.00,1.00,0.00,0.00,1.00,0.00,0.00,1.00,1.00,1.00,1.00,0.00,0.00,1.00,0.00,1.00,1.00,1.00,0.00,1.00,0.00,0.00,1.00,1.00,0.00,0.00,1.00,1.00,1.00,1.00,1.00,1.00,0.00,1.00,1.00,1.00,0.00,1.00,0.00,1.00,1.00,0.00,0.00,1.00,0.00,0.00,1.00,1.00,1.00,1.00,0.00,0.00,1.00,1.00,0.00,0.00,1.00,1.00,1.00,1.00,0.00,0.00,1.00,1.00,0.00,1.00,1.00,1.00,0.00,0.00,1.00,0.00,1.00,1.00,0.00,1.00,1.00,1.00,1.00,0.00,0.00,1.00,0.00,1.00,1.00,1.00,1.00,1.00,0.00,1.00,1.00,0.00,1.00,0.00,0.00,1.00,1.00,0.00,0.00,1.00,0.00,1.00,0.00,1.00,1.00,1.00,0.00,0.00,0.00,1.00,1.00,1.00,1.00,0.00,1.00,1.00,1.00,1.00,1.00,0.00,1.00,1.00,1.00,1.00,1.00,1.00,0.00,0.00,1.00,1.00,1.00,0.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,0.00,0.00,0.00,1.00,0.00,0.00,1.00,1.00,1.00,1.00,1.00,0.00,1.00,1.00,1.00,0.00,1.00,0.00,1.00,1.00,1.00,0.00,1.00,0.00,0.00,1.00,0.00,0.00,1.00,1.00,1.00,0.00,0.00,1.00,1.00,0.00,0.00,0.00,1.00,0.00,1.00,1.00,0.00,0.00,1.00,1.00,1.00,1.00,1.00,0.00,1.00,1.00,1.00,1.00,1.00,0.00,1.00,1.00,1.00,0.00,1.00,1.00,1.00,0.00,1.00,0.00,0.00,1.00,0.00,1.00,1.00,0.00,1.00,0.00,1.00,1.00,0.00,1.00,1.00,0.00,0.00,1.00,0.00,1.00,0.00,1.00,0.00,1.00,0.00,1.00,1.00,0.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,0.00,0.00,1.00,1.00,1.00,1.00,1.00,0.00,1.00,0.00,1.00,0.00,1.00,1.00,0.00,0.00,0.00,1.00,0.00,0.00,1.00,1.00,1.00,0.00,1.00,0.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,0.00,1.00,1.00,1.00,1.00,1.00,1.00,0.00,0.00,0.00,1.00,1.00,1.00,1.00,1.00,0.00,1.00,1.00,0.00,0.00,0.00,0.00,1.00,0.00,0.00,1.00,1.00,1.00,1.00,1.00,1.00,0.00,0.00,0.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,0.00,1.00,1.00,0.00,1.00,1.00,1.00,1.00,1.00,0.00,1.00,1.00,1.00,0.00,0.00,1.00,1.00,1.00,1.00,1.00,1.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,1.00,1.00,0.00,1.00,1.00,1.00,1.00,1.00,0.00,0.00,1.00,1.00,1.00,1.00,1.00,0.00,1.00,1.00,0.00,1.00,1.00,0.00,1.00,0.00,1.00,1.00,1.00,0.00,0.00,1.00,1.00,0.00,1.00,1.00,0.00,1.00,1.00,0.00,1.00,1.00,1.00,0.00,1.00,0.00,0.00,0.00,0.00,0.00,0.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,0.00,1.00,0.00,1.00,1.00,0.00,0.00,1.00,1.00,0.00,0.00,1.00,1.00,1.00,0.00,1.00,1.00,0.00,1.00,1.00,1.00,0.00,1.00,1.00,1.00,1.00,0.00,0.00,0.00,0.00,1.00,0.00,1.00,0.00,1.00 diff --git a/statsmodels/discrete/tests/results/nbinom_resids.csv b/statsmodels/discrete/tests/results/nbinom_resids.csv new file mode 100644 index 0000000..0c7c54a --- /dev/null +++ b/statsmodels/discrete/tests/results/nbinom_resids.csv @@ -0,0 +1,20 @@ +-.5049508,-.6297218,-83.54991,-1.306285,-6.620286 +-.2341522,-.2554235,-216.8307,-.758866,-7.183702 +1.024237,.7987758,483.7363,2.503515,22.51353 +-.2850617,-.3177966,-70411.51,-2.379918,-141.7456 +.2099025,.1967877,2247.514,.9519455,21.77242 +-.4034835,-.4757415,-19563.36,-2.635026,-88.94614 +-.1644134,-.1744011,-17331.03,-1.162355,-53.42135 +-.4296077,-.5134667,-5300.37,-2.244962,-47.82603 +.323713,.2941846,4110.794,1.486844,36.55984 +.1503672,.1434294,7285.321,.8855429,33.1355 +.4212886,.373428,1373.157,1.521332,24.15702 +.4506587,.3965867,1701.469,1.661779,27.80326 +.2435375,.226174,3184.023,1.136562,27.90734 +1.051829,.8162054,6001.352,3.890797,79.71313 +-.5544503,-.712749,-2094.852,-2.454965,-34.21899 +-.6057506,-.8064111,-274.7382,-1.907744,-13.05105 +-.3412157,-.3902446,-631.138,-1.270229,-14.76001 +.2218985,.2073287,691.1358,.8168764,12.43929 +.2455925,.2266392,.1992506,.2579483,.2747237 +-.7589526,-1.153008,-256.739,-2.407166,-14.14742 diff --git a/statsmodels/discrete/tests/results/phat_mnlogit.csv b/statsmodels/discrete/tests/results/phat_mnlogit.csv new file mode 100644 index 0000000..2d89e80 --- /dev/null +++ b/statsmodels/discrete/tests/results/phat_mnlogit.csv @@ -0,0 +1,944 @@ +1.687758043408000078e-02 5.028960853815000326e-02 2.678359113634000074e-02 1.854180544615000037e-02 1.151017397642099954e-01 2.437793612480199934e-01 5.286263227462799641e-01 +3.588511943817099814e-01 4.822081923484800026e-01 1.051476225256900016e-01 2.250081487000000005e-02 1.033064723014999985e-02 1.938367635012000142e-02 1.577849267050000044e-03 +4.047162532806399815e-01 4.401110112667099838e-01 1.233638748526599965e-01 1.609495468437999871e-02 5.514059681449999702e-03 9.668628685179999835e-03 5.312216817399999713e-04 +3.475201725959800036e-01 4.554381370544399732e-01 1.310559958219499888e-01 2.082262188196000105e-02 1.501423493028000017e-02 2.711765095591999949e-02 3.031166037539999823e-03 +3.039404153823899724e-01 2.601728439331100207e-01 8.375249058007999681e-02 2.549703791737999853e-02 9.932299703359999399e-02 1.416708528995500038e-01 8.564334362745000540e-02 +3.602912724018100254e-01 4.752003550529499964e-01 1.083042770624200041e-01 2.358427830040000020e-02 1.080969441682000029e-02 2.011529915034999949e-02 1.694823615250000068e-03 +3.861714303493499756e-01 2.287689447402999898e-01 7.108116894959999599e-02 3.499735146761000226e-02 9.275097399949999710e-02 1.180404275655699969e-01 6.818971782923000102e-02 +1.635071635246299893e-01 3.969033360481299955e-01 1.203522458672500045e-01 3.852804377675000252e-02 7.107070088387000550e-02 1.519082337617899958e-01 5.773026868700999875e-02 +3.218005895614600154e-01 4.428995549678800270e-01 1.089596748352100047e-01 3.058131597936000062e-02 3.039760328829000172e-02 5.517518520354999789e-02 1.018606778234000011e-02 +5.131529569625900011e-01 3.832032978534700152e-01 6.395649164915000184e-02 1.837813481687999850e-02 8.018352091310000651e-03 1.235497463495000003e-02 9.357878589099999714e-04 +4.559426903724699831e-01 4.364211261272399889e-01 6.710705161094999982e-02 2.116757817565999983e-02 6.874299142509999842e-03 1.175016164779999969e-02 7.370943785599999576e-04 +3.270984590053599983e-01 4.470554888248399750e-01 1.049552932381599968e-01 2.915175072849000154e-02 2.923072129488000007e-02 5.300164222716999968e-02 9.506661444900000105e-03 +1.808367818593999976e-01 4.193063378333999891e-01 1.107852831482900036e-01 3.465483337641000333e-02 6.602165848016999794e-02 1.393841058015800050e-01 4.901099950074999656e-02 +3.448877036571499910e-01 3.944537341594699931e-01 1.146126613020899965e-01 2.941189333797000066e-02 3.815889358520999780e-02 6.372546404600000491e-02 1.474965177475999999e-02 +5.128169655799900140e-01 2.489267289638500136e-01 4.788245633245000188e-02 3.890095651150000250e-02 5.622610822319999702e-02 6.960584968327999944e-02 2.564091049134999828e-02 +9.867530316113999611e-02 1.141328215599100027e-01 5.835970491170999752e-02 4.152495786548000140e-02 1.494823396205899879e-01 2.326754927635200088e-01 3.051493763923600055e-01 +4.899313449859600267e-01 3.177997469902000272e-01 7.677578181027999715e-02 3.250369057059000061e-02 3.088429383934000044e-02 4.298429563641999879e-02 9.120845235880000249e-03 +3.039268255233800176e-01 4.545004069805099745e-01 1.609133481979400093e-01 2.597517892718000099e-02 1.755265519022999876e-02 3.305273875594000321e-02 4.078840371220000295e-03 +1.146878972649599954e-01 1.772738993167899957e-01 6.248850747943000133e-02 3.050998412072999932e-02 1.372299492359199957e-01 2.380926460027699976e-01 2.397171258926399928e-01 +5.431358814239499733e-01 3.455739319324500070e-01 8.004195988178000598e-02 2.059725672007000144e-02 4.165967460719999932e-03 6.195547990499999762e-03 2.894434728700000063e-04 +6.615408658981299928e-01 1.891568750143099997e-01 4.799268022179999788e-02 3.183285146952000155e-02 3.015408664942000050e-02 3.120403923093999915e-02 8.118601515890000453e-03 +4.400008022785200090e-01 4.413008689880399960e-01 9.141772240400000693e-02 1.647007279097999904e-02 3.837074618789999923e-03 6.701267790049999715e-03 2.721900818899999973e-04 +2.971393465995800232e-01 4.314915835857400239e-01 1.226486340165099942e-01 4.256079345942000158e-02 3.315719962119999947e-02 6.145562604069999824e-02 1.154682040215000011e-02 +5.863295122981000002e-02 1.159922033548400067e-01 6.583592295647000547e-02 3.390292450785999806e-02 1.379968672990800060e-01 2.570517659187300241e-01 3.305873870849599938e-01 +3.914179801940900205e-01 3.608804941177399805e-01 1.027423292398499943e-01 4.088709503411999679e-02 3.582967445253999739e-02 5.620659515261999806e-02 1.203582435846000005e-02 +2.064162492752099898e-01 3.995852172374699807e-01 1.793028861284300113e-01 5.334476754069000098e-02 4.596849530935000205e-02 9.236477315426000478e-02 2.301760949194000053e-02 +4.484073221683499977e-01 3.960995674133300226e-01 9.803463518619999484e-02 2.035995386541000068e-02 1.350139267743000020e-02 2.132720500231000127e-02 2.269935095680000216e-03 +2.921933233737900037e-01 3.875440955162000045e-01 1.386088579893099970e-01 2.974492870271000164e-02 4.753185436130000219e-02 8.209051936865000010e-02 2.228643186389999906e-02 +2.425913363695099967e-01 2.854321002960200082e-01 1.033556163311000059e-01 5.214307829737999805e-02 9.179728478192999974e-02 1.504309028387099956e-01 7.424967736005999575e-02 +3.649312853813200253e-01 4.268461465835600155e-01 9.309316426515999721e-02 3.211358562112000270e-02 2.751978114247000118e-02 4.752010852098000060e-02 7.975924760100000857e-03 +4.411235749721499899e-01 4.319424033165000232e-01 7.794369757175000080e-02 2.548349648713999979e-02 8.317616768180000411e-03 1.420421618967999955e-02 9.850088972599999135e-04 +5.072123408317600335e-01 2.936132848262800188e-01 7.423874735832000638e-02 3.979048877954000085e-02 3.250934556126999775e-02 4.341050609945999728e-02 9.225282818079999156e-03 +3.010159730911299847e-01 3.940159380435899750e-01 1.311748772859600010e-01 4.898530989884999909e-02 3.964623063803000141e-02 7.008794695139000663e-02 1.507375016809000060e-02 +2.611554563045500044e-01 3.646373152732800271e-01 1.579297631979000027e-01 6.206687539815999854e-02 4.751446843147000276e-02 8.528047055005999466e-02 2.141566015779999832e-02 +3.498645871877999886e-02 1.026061549782800036e-01 3.006544709206000060e-02 1.781413890420999874e-02 1.299838423728900128e-01 2.768018245696999835e-01 4.077421426773100155e-01 +5.101438164710999645e-01 2.764958739280700128e-01 1.149750128388399989e-01 4.644215106964000306e-02 2.061717398464999948e-02 2.719559334218999910e-02 4.130383953449999999e-03 +5.831526517867999804e-01 2.053729295730599980e-01 6.846129894256999804e-02 3.794878721237000124e-02 4.317101836204999959e-02 4.713376611470999900e-02 1.475955918430999977e-02 +4.643665626645000072e-02 4.907001554965999962e-02 1.876212097704000117e-02 1.622539013624000118e-02 1.483408063650099862e-01 2.153103798627900023e-01 5.058546066284199672e-01 +1.666899770497999936e-02 7.795239984988999726e-02 3.093838132918000014e-02 1.429391466081000005e-02 1.126484572887399976e-01 2.791135311126700103e-01 4.683843255042999809e-01 +3.692892789840699908e-01 3.289835453033400081e-01 1.801354587078100034e-01 3.817381709814000185e-02 2.964546903967999955e-02 4.514140263199999809e-02 8.631010539829999870e-03 +3.264776170253799736e-01 3.148187398910500256e-01 7.926380634308000106e-02 4.655805975198999691e-02 7.394184172152999668e-02 1.146474853158000046e-01 4.429244622588000141e-02 +1.290839314460799914e-01 2.360562980174999992e-01 6.387479603291000563e-02 3.338428586720999791e-02 1.256337165832500102e-01 2.342791706323600065e-01 1.776877939701100029e-01 +3.945878148078900138e-01 4.491612911224400206e-01 1.238585934042899933e-01 1.586400903761000028e-02 5.769421346490000158e-03 1.020970102399999975e-02 5.491598858500000352e-04 +3.751998394727999731e-02 9.847803413868000399e-02 3.029926866292999982e-02 2.273649908602000044e-02 1.329550892114599869e-01 2.741163969039899784e-01 4.038947522640199961e-01 +3.361515998840299835e-01 3.789079785346999851e-01 1.201512962579699972e-01 3.169128298758999707e-02 4.365935921669000103e-02 7.173224538564999808e-02 1.770626194775000092e-02 +8.426596969366000056e-02 8.425220102071999395e-02 4.510989785194000068e-02 1.920481212436999860e-02 1.583922207355500100e-01 2.246487140655500092e-01 3.841261863708499980e-01 +3.221931457519500164e-01 3.172559142112699737e-01 1.414033025503199925e-01 6.219850853086000136e-02 5.191100761293999943e-02 8.188566565513999418e-02 2.315245568752000160e-02 +6.184026002883900031e-01 1.837785094976399913e-01 6.084762886167000007e-02 4.283497855066999843e-02 3.998047113419000292e-02 4.143307730555999963e-02 1.272271666675999988e-02 +3.889329731464399864e-01 3.509368002414700038e-01 1.040320917963999947e-01 4.210904240608000226e-02 3.952800482511999863e-02 6.094141304492999706e-02 1.351968012749999934e-02 +2.447747439145999959e-01 4.089477062225300164e-01 2.220243513584100048e-01 3.885214403271999850e-02 2.656512707471999843e-02 5.076047778130000215e-02 8.075460791589999729e-03 +2.415309995412799893e-01 1.814048588275899987e-01 9.715960174799000149e-02 6.227907538414000077e-02 1.245835646986999945e-01 1.695752888917899937e-01 1.234666034579299937e-01 +1.577665656804999872e-01 2.504351139068600185e-01 1.261420845985400108e-01 6.351527571678000639e-02 1.055870503187199966e-01 1.895282119512599894e-01 1.070256903767600049e-01 +5.399852395057700427e-01 2.529498934745800232e-01 7.154653221369000615e-02 4.210593923926000265e-02 3.700365871190999800e-02 4.536714404820999663e-02 1.104159746319000046e-02 +3.591549396514899795e-01 2.524674534797700098e-01 7.331436872482000044e-02 4.068867862225000048e-02 9.064856171608000335e-02 1.228397116064999933e-01 6.088628619908999923e-02 +7.845624089241000076e-01 1.482361108064700062e-01 4.295558854938000271e-02 1.397980377077999957e-02 5.121487192809999825e-03 4.755453672260000035e-03 3.891243250100000022e-04 +1.451133191585499971e-01 1.369774788618099981e-01 5.073280632496000170e-02 3.517841920256999794e-02 1.553185582160900025e-01 2.239967286586800055e-01 2.526826858520500041e-01 +3.358109295368200131e-01 1.970187425613399990e-01 7.809141278266999719e-02 4.973707348108000192e-02 1.109077036380800019e-01 1.392309069633499985e-01 8.920323103666000231e-02 +5.195242166519199456e-01 2.331167906522799982e-01 8.208575099706999501e-02 5.189488083123999784e-02 4.464849829674000237e-02 5.350038036704000272e-02 1.522951573133000079e-02 +2.916244231163999875e-02 8.186722546815999868e-02 6.075617671012999849e-02 2.069495618343000082e-02 1.287970393896100130e-01 2.629556059837300230e-01 4.157665371894799788e-01 +5.106462836265599492e-01 2.595998644828800272e-01 8.066616952419000675e-02 3.928940743208000214e-02 4.250444471835999882e-02 5.300517752766999852e-02 1.428865175693999970e-02 +4.520524144172700098e-01 3.944078981876399936e-01 1.186365038156499963e-01 1.684467121959000099e-02 6.707932334389999848e-03 1.069261785596999949e-02 6.579421460600000425e-04 +5.369573235511799769e-01 3.710837960243200118e-01 6.880176067351999325e-02 1.345350686461000041e-02 3.760702908039999844e-03 5.702821072189999917e-03 2.400839875899999981e-04 +3.191439807415000218e-01 4.240587949752799846e-01 1.122010424733199951e-01 3.921531885862000050e-02 3.385876119136999735e-02 6.039184704423000011e-02 1.113023888319999988e-02 +3.688900172710399827e-01 4.719935357570599899e-01 1.009106859564800063e-01 2.634190022944999862e-02 1.068823318927999977e-02 1.966610364616000126e-02 1.509549445470000084e-03 +3.900443911552399778e-01 3.654978573322300028e-01 9.951821714639999539e-02 3.893014043569999888e-02 3.664500638842999730e-02 5.744427815079999888e-02 1.192010845988999979e-02 +4.921796917915299829e-01 2.813383340835600155e-01 8.230783790350000573e-02 3.808090835809999769e-02 4.032029211521000189e-02 5.259545892477000134e-02 1.317745447158999959e-02 +1.920979470014999926e-02 5.765815451740999992e-02 2.484063245355999996e-02 1.340221893042000019e-02 1.211910396814299962e-01 2.534641027450599826e-01 5.102340579032900170e-01 +3.121185302733999953e-02 9.419716149569000441e-02 6.530073285102999670e-02 2.583269961177999882e-02 1.294005513191200107e-01 2.735120058059700154e-01 3.805450201034499824e-01 +8.146709203719999792e-02 5.462190881370999895e-02 3.855882585049000277e-02 2.912729978560999952e-02 1.686202585697199885e-01 2.071153521537799913e-01 4.204892814159399972e-01 +1.061840429902100036e-01 8.933396637439999788e-02 4.488901793957000147e-02 2.891608886421000169e-02 1.659589856862999924e-01 2.240152508020399891e-01 3.407026529312099927e-01 +2.506931424140900200e-01 4.227101504802699972e-01 1.424173265695599933e-01 2.796901203691999974e-02 4.699935019016000110e-02 8.774364739656000112e-02 2.146738022565999882e-02 +5.054406523704499943e-01 3.784356713295000119e-01 8.621949702501000012e-02 1.738927140832000062e-02 4.780524410309999923e-03 7.385792676359999656e-03 3.485587949400000083e-04 +1.591330468654600094e-01 1.620699316263199963e-01 5.445358157157999951e-02 5.254632234572999966e-02 1.469511538743999979e-01 2.221124768257100035e-01 2.027335017919499882e-01 +2.858999669551799960e-01 2.938866317272200157e-01 1.580801010131800133e-01 5.968718230724000262e-02 6.546290963888000414e-02 1.023975014686600016e-01 3.458569571376000212e-02 +2.452120780944800071e-01 4.162119328975700250e-01 1.478529125451999993e-01 5.194279551506000153e-02 4.171105474233999938e-02 8.029188215733000511e-02 1.677734777331000085e-02 +4.223884940147399902e-01 3.077085316181200070e-01 1.004911288618999948e-01 4.451018199324999897e-02 4.507151246070999900e-02 6.377803534268999819e-02 1.605210267007000161e-02 +4.929379820823699965e-01 3.902163803577399781e-01 8.272092789411999991e-02 2.352289669216000093e-02 3.962847404179999609e-03 6.389749702070000349e-03 2.492259664000000090e-04 +6.526200771331800432e-01 2.322395592927899988e-01 5.622030049561999726e-02 3.257596865296000233e-02 1.151790563016999967e-02 1.340700685977999976e-02 1.419158070349999922e-03 +3.931836783886000219e-01 4.458431601524400212e-01 9.966330230235999343e-02 2.729748189449000134e-02 1.175299938767999930e-02 2.057385258377000120e-02 1.685528899539999936e-03 +3.494144082069399748e-01 3.752790391445199880e-01 1.608175337314599884e-01 5.329840257764000000e-02 2.113823406398000065e-02 3.551473468541999773e-02 4.537635482850000367e-03 +4.364208579063399984e-01 2.159609943628300055e-01 1.110166758298899992e-01 6.237118318676999895e-02 6.529437005520000170e-02 7.899485528468999651e-02 2.994105592369999957e-02 +6.007776260375999877e-01 2.418611049652099887e-01 8.421093225478999689e-02 2.425701357424000018e-02 2.080325968564000066e-02 2.406097762286999939e-02 4.029108211399999931e-03 +5.891888737678500076e-01 1.577868014574100031e-01 6.910130381583999559e-02 6.538064032793000635e-02 5.055821314454000265e-02 5.006747320293999937e-02 1.791666634380999906e-02 +6.611995697021499918e-01 2.197786122560499988e-01 5.903111770748999815e-02 2.969290502368999995e-02 1.341700740159000073e-02 1.502954401075999938e-02 1.851261244160000040e-03 +4.066946357488999964e-02 1.048722788691500013e-01 6.628386676311000258e-02 3.242466598748999784e-02 1.345209926366799924e-01 2.718835771083800146e-01 3.493451476097100272e-01 +4.309161901474000134e-01 3.379569649696400058e-01 8.788688480853999729e-02 4.329920932650999782e-02 3.611934930085999862e-02 5.321652814746000160e-02 1.060488075018000027e-02 +6.626947969197999333e-02 1.331275403499599941e-01 6.163687258958999715e-02 2.989654242992000055e-02 1.434423178434399981e-01 2.661282718181600115e-01 2.994989752769500191e-01 +1.607891172170599903e-01 1.278064548969299885e-01 4.709964245558000140e-02 4.150896891952000206e-02 1.611765623092699939e-01 2.186717987060499968e-01 2.429474443197300049e-01 +3.221481144428299803e-01 4.536592662334399950e-01 1.408235728740699910e-01 3.263439983130000249e-02 1.670084707438999894e-02 3.088294155896000037e-02 3.150871256369999849e-03 +4.216101765632599974e-01 4.193944036960600141e-01 1.189987808465999969e-01 2.336604148149000124e-02 5.979845300319999897e-03 1.014016196131999926e-02 5.105857271700000276e-04 +3.268148601055099745e-01 4.694082736969000247e-01 1.319802701473200002e-01 2.025630138814000017e-02 1.701308600605000096e-02 3.116355463862000019e-02 3.363647265360000024e-03 +2.213988453149799973e-01 3.204079866409300092e-01 1.790657639503500098e-01 4.215797781944000122e-02 7.080071419477000638e-02 1.224334985017799943e-01 4.373520985246000248e-02 +8.214078843593999868e-02 6.525116413831999473e-02 3.941886499523999943e-02 2.244516462088000028e-02 1.679414361715300119e-01 2.175676673650699944e-01 4.052349030971499899e-01 +9.732612967491000022e-02 1.879573613405199906e-01 6.335786730051000404e-02 3.453309088945000216e-02 1.375941336154899997e-01 2.567625641822799953e-01 2.224688678979900025e-01 +1.477123498916599886e-01 2.944371700286900206e-01 1.199401095509499970e-01 3.643815219402000288e-02 1.026421710848799962e-01 1.961077600717499869e-01 1.027222871780399949e-01 +4.079748690128299771e-01 3.128045797348000256e-01 1.034097522497200022e-01 4.524419084190999668e-02 4.671723023056999907e-02 6.705993413925000202e-02 1.678944192827000123e-02 +3.498511314392099836e-01 1.765820086002299893e-01 7.159785926341999396e-02 4.798599332570999826e-02 1.188316568732299960e-01 1.399170905351599936e-01 9.523427486419999699e-02 +5.587135553359999784e-01 2.076566815376300057e-01 7.249821722506999411e-02 4.001346975564999686e-02 4.945578798651999869e-02 5.432508513330999711e-02 1.733719743788000173e-02 +9.457509219646000054e-02 1.560281664133099933e-01 1.222852095961600022e-01 3.875134140252999709e-02 1.373675465583799882e-01 2.363634258508700015e-01 2.146292179822900104e-01 +3.905885219574000145e-01 2.212433964014099974e-01 1.226046681404100031e-01 6.746151298284999709e-02 7.226622104645000211e-02 9.090976417064999815e-02 3.492593392729999996e-02 +3.539921939373000259e-01 1.723001599311800025e-01 1.326014846563300098e-01 4.718617349863000326e-02 1.038096994161600006e-01 1.186098009347899968e-01 7.150050997734000435e-02 +4.876846075058000052e-02 1.261741518974300036e-01 6.231823191046999971e-02 2.357140742242000084e-02 1.384567916393300013e-01 2.773666977882400242e-01 3.233442306518600207e-01 +5.159212946891800211e-01 2.552711963653599980e-01 7.605224102735999581e-02 4.462160170078000032e-02 4.255991429090000278e-02 5.250448361039000006e-02 1.306925155221999937e-02 +1.997223943471899965e-01 3.156272172927899744e-01 1.068257018923799984e-01 5.851017311215000322e-02 8.985376358032000355e-02 1.627541780471800092e-01 6.670657545328000093e-02 +3.196945786476099727e-01 3.004199266433700277e-01 2.162073552608499982e-01 4.010020568967000154e-02 4.318762198091000148e-02 6.475105881690999821e-02 1.563925482332999967e-02 +7.056157588958700266e-01 1.692301183939000087e-01 3.598260879516999855e-02 2.899017557502000034e-02 2.750798501074000132e-02 2.656416781247000064e-02 6.109165493400000278e-03 +3.782887160778000135e-01 3.633987009525300182e-01 1.010419726371799970e-01 3.943300247191999786e-02 4.078491404653000058e-02 6.369480490685000551e-02 1.335790287703000033e-02 +3.437479436397600230e-01 2.278856337070500060e-01 1.385117918252899982e-01 6.163392961025000033e-02 7.971699535847000251e-02 1.048753559589400003e-01 4.362835735082999655e-02 +2.880791723728199916e-01 2.021468877792400032e-01 8.329085260629999488e-02 5.076858028768999748e-02 1.191986426711099945e-01 1.576675921678500070e-01 9.884827584027999769e-02 +2.361104637384399962e-01 2.429756671190299866e-01 9.241971373558000025e-02 4.064169898628999800e-02 1.153899058699599939e-01 1.736647188663499874e-01 9.879783540964000299e-02 +3.983498513698600085e-01 4.338321387767800075e-01 1.297982931137099949e-01 1.720480807125999989e-02 7.433735765520000163e-03 1.264938153327000055e-02 7.317950366999999550e-04 +4.209589660167700198e-01 1.914900243282300074e-01 1.128025874495500042e-01 6.738027185202000169e-02 7.838274538516999679e-02 9.042944759130000509e-02 3.855595737695999975e-02 +1.208243221044500021e-01 1.001230552792500006e-01 4.412716999650000138e-02 3.331464901567000175e-02 1.702806353568999953e-01 2.290412038564700048e-01 3.022889494895900087e-01 +6.108263041819999781e-03 3.009550832212000079e-02 1.960801891983000173e-02 6.961690727620000255e-03 9.720803052187000637e-02 2.320648282766299975e-01 6.079536676406900320e-01 +1.869038194418000121e-01 1.007459163665799934e-01 3.968984633684000118e-02 4.836776480078999740e-02 1.728711277246499922e-01 2.033086270093900083e-01 2.481128871440899941e-01 +3.189063444733999941e-02 1.159317567944500027e-01 3.080904670060000128e-02 2.013906836509999840e-02 1.314663290977499954e-01 3.007558286190000207e-01 3.690073490142800061e-01 +5.148594081401999811e-02 1.606224775314299968e-01 6.863345205783999425e-02 2.853474393486999869e-02 1.324395686387999926e-01 2.872118353843700067e-01 2.710719704628000160e-01 +2.515464723110200085e-01 1.748054623603799984e-01 8.497503399849000438e-02 4.490454494953000086e-02 1.361373513937000068e-01 1.759849041700400074e-01 1.316462308168399875e-01 +3.334131538867999844e-01 3.770525157451600218e-01 1.142421662807499988e-01 4.343149065970999811e-02 4.401098191738000293e-02 7.247693836688999525e-02 1.537273265421000047e-02 +2.651371955871599795e-01 3.544941544532799749e-01 1.492707133293199873e-01 4.874787852167999924e-02 5.744114518165999855e-02 9.853363782167000318e-02 2.637526392937000058e-02 +2.877986431121800082e-01 2.766937613487199799e-01 1.532851755618999945e-01 7.192429900169000634e-02 6.953079998493000291e-02 1.057859510183299934e-01 3.498137369752000320e-02 +2.594522237777699969e-01 4.378940463066099964e-01 1.295078992843599897e-01 4.337025806308000137e-02 3.975392878055999946e-02 7.589066028594999846e-02 1.413096860051000006e-02 +5.060639381408700288e-01 3.154241144657100038e-01 1.000937148928599946e-01 2.464901097118999893e-02 2.122507058083999976e-02 2.855800837278000062e-02 3.986126277599999837e-03 +3.035811707377000096e-02 9.836106002331000686e-02 6.024924665689000008e-02 1.865903474391000100e-02 1.321825087070500060e-01 2.816135883331299938e-01 3.785764575004599841e-01 +1.092886030674000003e-01 9.548008441925000256e-02 9.145376831293000608e-02 3.061533719300999976e-02 1.639932990074199903e-01 2.189071923494300131e-01 2.902617156505600260e-01 +4.463801681995400172e-01 4.001385271549199873e-01 9.170806407928000503e-02 2.243551611899999992e-02 1.446826942265000068e-02 2.270595915615999938e-02 2.163476077840000185e-03 +6.454045176506000292e-01 2.839953005313899936e-01 5.515010282397000280e-02 1.181082427502000085e-02 1.549854408949999981e-03 2.044207416470000122e-03 4.520090805999999698e-05 +6.308241486549399646e-01 2.040867805481000052e-01 1.018647700548200030e-01 3.941041976213000009e-02 1.080343127250999943e-02 1.188334170728999953e-02 1.127116614950000048e-03 +3.046638704836000106e-02 3.493713960052000078e-02 1.636819541454000160e-02 1.761436648666999880e-02 1.476616412401199896e-01 2.162653356790500137e-01 5.366869568824800263e-01 +2.747749686241099942e-01 1.670790761709199934e-01 7.797102630138000312e-02 4.241726547480000054e-02 1.386488974094400028e-01 1.701921075582500109e-01 1.289166659116700031e-01 +4.306874275207500102e-01 4.253840744495400172e-01 1.107409074902500068e-01 1.456086523830999943e-02 6.818803958589999929e-03 1.119928620755999971e-02 6.086493376599999561e-04 +4.981622397899599930e-01 3.199950456619299888e-01 1.002398207783700007e-01 2.946803718805000166e-02 2.048049867153000150e-02 2.803943119943000037e-02 3.614946035669999898e-03 +4.115125536919000265e-02 1.067657172679900013e-01 6.127357110381000116e-02 2.913557365536999927e-02 1.405786871910099933e-01 2.810550332069399748e-01 3.400401771068600199e-01 +6.382761150599000621e-02 5.854573473334000189e-02 3.628679737448999715e-02 1.647131890059000056e-02 1.672943234443700078e-01 2.232850641012200099e-01 4.342891573905899860e-01 +5.750831961631800437e-01 1.986791938543299996e-01 6.498134881257999762e-02 5.263208225369000320e-02 4.567870125174999796e-02 4.933274909853999773e-02 1.361273322254000044e-02 +1.818220913410200090e-01 1.520857363939299989e-01 4.609492048621000038e-02 4.587609320878999891e-02 1.574326157569899964e-01 2.185282111167899943e-01 1.981603354215600021e-01 +2.949121296405800008e-01 3.822519779205300061e-01 1.259290277957899884e-01 4.697735980152999841e-02 4.863364249468000305e-02 8.329349756241000158e-02 1.800235547124999849e-02 +4.905948340892800075e-01 2.312507331371299879e-01 8.467080444098000480e-02 5.324295163155000343e-02 5.533482506871000017e-02 6.580602377652999824e-02 1.909981109202000052e-02 +4.853018820285799895e-01 2.944504618644699923e-01 1.457233577966700055e-01 4.655477777123000205e-02 1.123619079590000049e-02 1.550932880491000081e-02 1.223991159350000003e-03 +2.224270552396800105e-01 1.568423658609399973e-01 8.540564030408999419e-02 4.630585759877999669e-02 1.473764330148699953e-01 1.892887502908700004e-01 1.523538827896100123e-01 +5.688523054122900380e-01 1.762846261262900061e-01 6.894858926534999655e-02 5.005903169512999906e-02 5.744377896189999805e-02 5.844156071544000242e-02 1.997007988393000033e-02 +9.026412852109999899e-03 3.564789518713999683e-02 1.967089623212999946e-02 8.628561161459999754e-03 1.099111065268500026e-01 2.436858564615199951e-01 5.734292864799499512e-01 +3.317747116088899939e-01 2.746927142143200107e-01 1.323633342981299921e-01 6.255746632813999342e-02 6.877281516790000049e-02 9.869184345006999648e-02 3.114710748195999995e-02 +1.384172141552000024e-01 1.352799981832500109e-01 1.020337119698500050e-01 5.472419038415000242e-02 1.524989157915100091e-01 2.184780091047300032e-01 1.985679566860200085e-01 +9.675845503806999870e-02 9.635847061871999353e-02 4.522533714771000135e-02 3.284648805857000309e-02 1.699438393116000090e-01 2.420682013034800018e-01 3.167991936206799863e-01 +2.991698123514999891e-02 8.177269250153999802e-02 5.321659892797000330e-02 1.762328296899999883e-02 1.385743618011499867e-01 2.745807468891099945e-01 4.043153524398799825e-01 +3.637174665927899730e-01 3.514380455017099836e-01 1.600919365882899903e-01 4.601197689771999860e-02 2.817254886030999897e-02 4.408548772334999755e-02 6.482523400340000318e-03 +7.037776708602899722e-01 2.117296010255799998e-01 6.754726171493999343e-02 1.048025581986000015e-02 3.026326186949999941e-03 3.302061464639999885e-03 1.367895456499999905e-04 +6.095357537269600057e-01 3.030140399932900186e-01 6.825982034206000415e-02 1.466114632785000052e-02 1.887632068250000034e-03 2.580732572819999845e-03 6.085365385000000328e-05 +4.291112422943100246e-01 2.244531959295300028e-01 1.047839745879200063e-01 5.637350678444000285e-02 7.014509290456999446e-02 8.513321727514000514e-02 2.999977394937999864e-02 +3.627644106746000241e-02 1.054746806621599947e-01 5.926176905632000308e-02 2.239150553942000077e-02 1.388792991638199970e-01 2.856767773628199891e-01 3.520395159721400047e-01 +3.814752399921400028e-01 3.872491717338599759e-01 1.725295484066000085e-01 2.597312815487000034e-02 1.195340696722000003e-02 1.933039724827000094e-02 1.489127636889999969e-03 +4.930322766304000015e-01 2.265195399522799968e-01 8.338548243045999786e-02 5.290739238262000266e-02 5.725510045886000182e-02 6.716702133417000453e-02 1.973316632210999830e-02 +4.067572951316800189e-01 2.045011967420599930e-01 1.101491525769199981e-01 9.106522053479999823e-02 7.137429714203000208e-02 8.633969724178000571e-02 2.981314063071999892e-02 +2.433142960071600081e-01 3.432835340499900134e-01 1.499693095684100086e-01 2.752595767378999969e-02 7.314558327197999421e-02 1.225516796112099960e-01 4.020966216921999931e-02 +6.077772974967999842e-01 2.716933190822600208e-01 9.806030243634999977e-02 1.395855657756000026e-02 3.697033040230000064e-03 4.627526272089999698e-03 1.859475742099999968e-04 +2.972011566162099938e-01 3.486629128456100180e-01 1.299581229686699868e-01 3.531963750719999823e-02 6.200395897030999692e-02 9.954869747161999849e-02 2.730548568070000071e-02 +1.287452727556200049e-01 8.995793759822999502e-02 4.011521860956999974e-02 3.864358365535999762e-02 1.793142110109300080e-01 2.259676158428199910e-01 2.972561717033400108e-01 +2.498067021369899943e-01 3.993605375289899784e-01 1.396852135658299965e-01 4.970749840139999931e-02 5.000392720103000177e-02 9.194126725196999361e-02 1.949485577642999859e-02 +2.506505846977200025e-01 3.616549968719500185e-01 1.482505798339799896e-01 5.676957592368000322e-02 5.728800967336000055e-02 1.009220257401499954e-01 2.446424588561000105e-02 +2.587596178054800133e-01 3.359569609165199977e-01 1.486615389585499991e-01 4.103334248065999834e-02 6.840646266937000508e-02 1.133591607213000063e-01 3.382292762399000119e-02 +1.438351720571499903e-01 3.629957437515299867e-01 1.102036163210900060e-01 3.482164442538999982e-02 8.984414488076999938e-02 1.870343089103700118e-01 7.126539200544000641e-02 +2.165471911430399965e-01 3.406764566898299873e-01 1.669896990060799891e-01 4.471570998430000193e-02 6.985701620579000404e-02 1.238057389855399953e-01 3.740819171070999816e-02 +4.537708163261400252e-01 2.372914999723400031e-01 9.413259476422999872e-02 4.847730696200999723e-02 6.396805495023999422e-02 7.772409170866000083e-02 2.463562600314999837e-02 +3.569498062133800165e-01 1.721719205379499962e-01 6.346698850392999691e-02 4.199894145131000123e-02 1.268760263919800069e-01 1.444130241870900111e-01 9.412328153849000567e-02 +5.113346576690700473e-01 2.084622681140899936e-01 8.027487248181999768e-02 5.343800410628000291e-02 5.925481393932999913e-02 6.643196195363999801e-02 2.080341428518000038e-02 +1.698005013168000024e-02 2.477002330124000035e-02 1.527156122028999925e-02 1.644852198660000028e-02 1.332948803901700119e-01 2.096520066261300108e-01 5.835829377174399646e-01 +3.604584634304000001e-01 3.364050388336199959e-01 1.701877564191799919e-01 2.876099757850000133e-02 3.754044324159999668e-02 5.587318167090000315e-02 1.077412627636999999e-02 +6.986268609762000259e-02 1.518292427062999939e-01 5.968596041202999664e-02 3.268987685441999969e-02 1.467884778976399907e-01 2.789063155651099746e-01 2.602374255657199931e-01 +2.248386293649700107e-01 3.780319094657900170e-01 1.564853638410599879e-01 5.738003551959999782e-02 5.557049438357000021e-02 1.035173386335399986e-01 2.417621202767000071e-02 +4.940660893917099838e-01 2.145144492387799917e-01 8.438882976769999933e-02 3.792826086283000026e-02 6.704978644848000324e-02 7.535800337791000170e-02 2.669459022581999880e-02 +5.992093309760000014e-02 7.563456147909000671e-02 4.250790178775999684e-02 2.063796296716000067e-02 1.645317673683200088e-01 2.481440007686600002e-01 3.886228799819900215e-01 +9.329681098460999855e-02 9.171338379382999728e-02 4.196109250188000128e-02 2.512920461595000154e-02 1.728337258100499929e-01 2.418011277914000057e-01 3.332646489143399893e-01 +6.807489693165000300e-02 4.926368221640999717e-02 3.261226043104999833e-02 1.955458149313999902e-02 1.757952868938399971e-01 2.150161564350099863e-01 4.396831393241900088e-01 +4.232773184776300046e-01 4.054853916168200123e-01 9.588061273098000270e-02 3.386756405234000317e-02 1.509457640349999921e-02 2.433853410184000018e-02 2.055985853080000061e-03 +5.236756205558800170e-01 2.702094316482500092e-01 1.027824729681000027e-01 4.107921943068999771e-02 2.554878219962000013e-02 3.200214356184000186e-02 4.702355246989999710e-03 +5.930602550506599568e-01 1.870348751545000132e-01 5.959594994782999727e-02 4.072816669940999834e-02 5.139018222689999832e-02 5.254279822111000003e-02 1.564778201282000097e-02 +5.679035782814000344e-01 2.593126893043499748e-01 8.556654304265999544e-02 3.415287286042999887e-02 2.239127457142000080e-02 2.694045938550999886e-02 3.732581855729999887e-03 +2.793481945991500015e-01 4.074060320854199779e-01 1.865331232547799978e-01 3.244148194790000272e-02 3.107441030442999880e-02 5.498475581408000107e-02 8.212018758059999937e-03 +2.688964642583999837e-02 7.690427452325999946e-02 5.865498259664000263e-02 3.532069548965000028e-02 1.386194974183999895e-01 2.839596867561299809e-01 3.796512186527299937e-01 +1.273914873599999997e-01 7.024300843476999345e-02 3.506983444094999985e-02 3.738394379616000185e-02 1.877901107072799947e-01 2.152767926454499936e-01 3.268448114395099968e-01 +5.448846220970200438e-01 2.737514674663499847e-01 1.259685605764399863e-01 2.362821623683000055e-02 1.344633568078000031e-02 1.671118475497000017e-02 1.609627157450000063e-03 +7.128551602363599748e-01 1.692364513874100029e-01 6.993965059519000049e-02 2.821851521730000048e-02 9.561780840159999489e-03 9.331396780910000341e-03 8.570524514700000223e-04 +3.297947645187400134e-01 2.497050762176500072e-01 1.321214586496400056e-01 6.574906408786999890e-02 7.818628847599000398e-02 1.073739007115400018e-01 3.706945478916000292e-02 +1.953630149364500024e-01 2.318808883428599976e-01 1.851891577243799936e-01 6.150138005613999675e-02 9.955388307571000350e-02 1.559649854898499943e-01 7.054667919873999771e-02 +1.642994433641400132e-01 3.162844479083999905e-01 1.966581940650899973e-01 7.719440758227999466e-02 7.035748660563999335e-02 1.353807002306000040e-01 3.982533141971000140e-02 +6.994896382092999354e-02 1.782421469688399984e-01 1.354581117629999887e-01 5.455970019102000107e-02 1.269177049398400037e-01 2.563260495662699756e-01 1.785473227500899984e-01 +1.395111829042399998e-01 1.073572561144800069e-01 9.001219272614000011e-02 5.334692820906999922e-02 1.668696850538300136e-01 2.164660692214999960e-01 2.264366894960400112e-01 +5.525463223457299788e-01 2.773769199848200029e-01 1.140799522399899985e-01 3.035824745892999957e-02 1.080742105842000082e-02 1.374798081815000080e-02 1.083141192790000032e-03 +3.688317909837000169e-02 1.047256290912600002e-01 5.380385741590999749e-02 1.652843691408999865e-02 1.428093761205699863e-01 2.868254482746099843e-01 3.584240972995800245e-01 +1.979740560054799869e-01 3.779631555080399941e-01 1.672597080469100106e-01 4.970000684261000057e-02 6.086492538451999945e-02 1.168844029307399973e-01 2.935373969376000106e-02 +2.228066921234100051e-01 1.551188975572599937e-01 1.597753763198900001e-01 4.562090709805000088e-02 1.327838152647000114e-01 1.662745624780699871e-01 1.176197379827499945e-01 +4.124326705932599979e-01 3.072819411754599828e-01 9.354203939437999438e-02 5.896223336458000092e-02 4.700012505053999950e-02 6.664232909679000671e-02 1.413865387439999961e-02 +3.876750469207799754e-01 4.086292982101399907e-01 1.163973659277000028e-01 3.473358973861000176e-02 1.873159036040000086e-02 3.078441880643000006e-02 3.048675367609999989e-03 +8.132519200439999180e-03 2.247635275126000018e-02 1.741704717278000011e-02 1.645598560572000130e-02 1.130683571100200013e-01 2.222813218831999893e-01 6.001684069633500540e-01 +4.936845600604999884e-01 2.441848218441000085e-01 7.964976131916000346e-02 3.957398980856000059e-02 5.645376816391999703e-02 6.736062467098000162e-02 1.909247972071000110e-02 +3.847635388374299747e-01 1.864100992679600111e-01 1.168247833847999989e-01 8.411248028277999722e-02 8.590737730264999539e-02 1.005925983190500000e-01 4.138912260532000287e-02 +3.531202077865600031e-01 3.577329218387599874e-01 1.053116694092799954e-01 4.103687405585999814e-02 4.934609681367999739e-02 7.686028629541000190e-02 1.659195311367999900e-02 +3.716021180152899728e-01 3.224276900291400128e-01 1.675966680049900126e-01 2.915643528104000168e-02 3.998727351426999838e-02 5.765821039677000021e-02 1.157161127775999977e-02 +6.166146323084999853e-02 5.582894012332000055e-02 3.879816085099999784e-02 3.220061212777999837e-02 1.726811230182599965e-01 2.326139509677900008e-01 4.062157571315799798e-01 +1.409840881824500070e-01 1.032773330807700007e-01 8.206236362457000610e-02 3.328700736165000201e-02 1.728108078241299972e-01 2.161877453327200049e-01 2.513906359672499757e-01 +2.041849344968799940e-01 1.205760464072200000e-01 8.369252830744000615e-02 7.463411986828000222e-02 1.581767797470099990e-01 1.911046653985999932e-01 1.676309406757399978e-01 +1.568871736526500082e-01 1.580976098775900007e-01 9.446769952774000667e-02 3.899887204170000149e-02 1.524747014045700066e-01 2.185970395803500110e-01 1.804769039154099919e-01 +2.675115689634999933e-02 8.653994649648999449e-02 5.414355173707000035e-02 1.686003617942000155e-02 1.367830783128700101e-01 2.863579690456399818e-01 3.925642669200899992e-01 +5.189719423651999869e-02 1.234686374664299979e-01 5.696070566772999666e-02 2.620706893504000032e-02 1.481685489416099955e-01 2.854953110217999801e-01 3.078025281429300208e-01 +7.028800249099700359e-01 1.843607872724500052e-01 8.288845419884000032e-02 2.146760746836999870e-02 4.024936817589999834e-03 4.178891889749999922e-03 1.992625184399999866e-04 +4.698019921779599817e-01 3.475832641124699807e-01 1.282982677221299883e-01 2.951698377728000089e-02 9.655104950069999525e-03 1.421107631177000001e-02 9.332950576200000270e-04 +3.843903914093999702e-02 6.336287409066999887e-02 4.169737547636000186e-02 1.611815579235999912e-02 1.546042263507799996e-01 2.522940039634700149e-01 4.334843158721899958e-01 +1.697109341621400036e-01 2.521353065967599782e-01 1.976890712976500097e-01 6.106614321469999718e-02 9.350998699665000191e-02 1.591751724481600128e-01 6.671337783337000227e-02 +2.426379770040499873e-01 2.062615901231799886e-01 8.323305100203000351e-02 4.757599905132999657e-02 1.311896145343799946e-01 1.818265467882199948e-01 1.072752252221099989e-01 +3.574332594871999780e-02 5.110694095492000072e-02 4.307872429489999905e-02 3.281325846909999983e-02 1.572403758764299997e-01 2.479182183742499879e-01 4.320991635322600222e-01 +4.582651257515000243e-01 2.769555151462599896e-01 1.313964724540699902e-01 5.312268808483999738e-02 3.177202865480999866e-02 4.170376807450999757e-02 6.784403696660000135e-03 +1.561526805162400111e-01 3.294740915298500217e-01 1.923564225435299979e-01 4.086238890886000064e-02 7.876247167586999942e-02 1.518170982599300056e-01 5.057483911513999814e-02 +5.121042728424100021e-01 2.289533168077499958e-01 7.525552809237999463e-02 3.861636295914999684e-02 5.847459658979999725e-02 6.694244593381999675e-02 1.965347677468999923e-02 +2.053364366293000121e-01 2.665808796882599974e-01 1.787404716014900086e-01 8.057931810617000035e-02 8.327473700047000049e-02 1.377641558647199893e-01 4.772398248314999730e-02 +2.044093608855999944e-02 6.413479149341999586e-02 5.187410488724999991e-02 2.110981568693999846e-02 1.349331140518200134e-01 2.786542475223500182e-01 4.288530051708199786e-01 +4.267575442791000095e-01 2.870607674121899988e-01 9.216405451298000095e-02 5.025315657257999752e-02 5.386688187718000065e-02 7.241602241993000399e-02 1.748155616224000147e-02 +3.226378262042999823e-01 3.748206198215500162e-01 1.727696806192400014e-01 3.222629800439000269e-02 3.386329114436999882e-02 5.488507077098000314e-02 8.797229267660000226e-03 +3.346705734729800152e-01 4.104489684104900005e-01 1.471616923809100086e-01 3.690566867589999828e-02 2.441231533885000055e-02 4.151194542646000074e-02 4.888822790240000306e-03 +3.330706954002399800e-01 4.170324206352200025e-01 1.450403779745099986e-01 3.585453331470000310e-02 2.369632571935999937e-02 4.064195975661000215e-02 4.663671366869999967e-03 +4.052968323231000147e-02 1.126603260636299952e-01 6.044656038283999916e-02 3.340578451752999889e-02 1.440224498510400131e-01 2.941151261329699729e-01 3.148200809955600254e-01 +3.893015384674100021e-01 2.264905720949199897e-01 1.122502088546799975e-01 5.940372124314000080e-02 7.906104624271000081e-02 9.837620705366000029e-02 3.511671349406000203e-02 +1.163286715745899952e-01 1.737878769636199972e-01 1.167035624384900050e-01 7.802747935057000039e-02 1.352080702781700006e-01 2.289774864912000052e-01 1.509668529033700024e-01 +6.760407686233500524e-01 2.234485447406799885e-01 7.822687923908000496e-02 1.461692061275000031e-02 3.534867428240000015e-03 3.971616737540000289e-03 1.604101853400000111e-04 +3.680803775787400145e-01 2.869903445243799922e-01 1.121805533766700030e-01 5.101602151989999973e-02 6.517827510833999749e-02 9.100224077702000203e-02 2.555219084024000151e-02 +1.131564527749999993e-01 8.844599872828000364e-02 3.845149651169999655e-02 2.941132709383999927e-02 1.818031519651399919e-01 2.346419245004700005e-01 3.140896558761600010e-01 +2.048441022634500119e-01 2.249024063348800118e-01 9.280338138341999443e-02 4.941435530781999874e-02 1.270870566368099974e-01 1.933431327343000106e-01 1.076055690646200019e-01 +3.640109002590199982e-01 1.863432675600099897e-01 1.213767975568799951e-01 8.683305978774999434e-02 8.998883515595999805e-02 1.069541350007099934e-01 4.449301958084000280e-02 +7.599975913763000468e-02 7.962241023779000060e-02 4.042255133389999894e-02 2.441161125898000037e-02 1.742720901966099967e-01 2.467259466648099864e-01 3.585456311702699961e-01 +8.869094401598000277e-02 1.713451892137499988e-01 1.251737773418399868e-01 6.553637981415000313e-02 1.337738186120999984e-01 2.458273023366900067e-01 1.696525961160700036e-01 +1.689619272947300022e-01 1.753945350647000134e-01 9.778054058552000660e-02 5.739329382777000332e-02 1.432536840438800030e-01 2.114249318838100078e-01 1.457910984754600126e-01 +5.820419788360600144e-01 2.768675386905700142e-01 9.478162974119000439e-02 2.440064586698999921e-02 9.369471110400000649e-03 1.170769147574999940e-02 8.310666889900000234e-04 +1.287212669849399915e-01 1.002560779452300044e-01 4.034942388534999702e-02 3.658924996852999656e-02 1.795888692140600040e-01 2.343884408473999870e-01 2.801066935062400121e-01 +2.198027074337000064e-01 2.743144631385799892e-01 9.175955504178999467e-02 5.373055487871000041e-02 1.081424653530100033e-01 1.753628849983200066e-01 7.688736915588000043e-02 +1.773936748504600092e-01 3.515855669975300191e-01 1.794691979885099931e-01 4.530863463879000047e-02 7.101306319236999620e-02 1.357019841670999982e-01 3.952785208820999707e-02 +3.849172294139899808e-01 4.001289904117599772e-01 1.609777063131299923e-01 1.935578882694000136e-02 1.271233055740999922e-02 2.035046741365999917e-02 1.557470066469999895e-03 +6.499661803245500025e-01 2.119212597608599868e-01 8.720465749502000208e-02 2.641539834440000123e-02 1.127032004296999942e-02 1.213735900818999937e-02 1.084806979629999958e-03 +2.406258285045599910e-01 1.743827462196400058e-01 7.957585155964000401e-02 4.930999875068999699e-02 1.440623849630399966e-01 1.867989152669899955e-01 1.252442747354499952e-01 +1.788257807492999937e-02 2.440320886672000048e-02 2.956883236765999942e-02 1.424205861986000028e-02 1.404771953821200015e-01 2.079896777868300017e-01 5.654364228248599522e-01 +4.452459812164299979e-01 3.365270495414700025e-01 1.535811126232100032e-01 3.072640486062000117e-02 1.323475316167000045e-02 1.914879120886000055e-02 1.535889110530000001e-03 +4.131388366222399910e-01 1.981171369552600092e-01 1.049233451485599988e-01 5.989278852939999842e-02 8.591351658106000100e-02 9.896450489758999713e-02 3.904988616704999776e-02 +1.457959711551700122e-01 1.329430341720599928e-01 9.706131368876000365e-02 7.696884125470999927e-02 1.550077199935900041e-01 2.175196707248699957e-01 1.747034639120099986e-01 +3.170066475868200118e-01 1.835283637046800087e-01 6.826553493737999578e-02 5.179853737354000315e-02 1.296733468770999986e-01 1.574301868677099869e-01 9.229739755391999645e-02 +7.265781760215800356e-01 1.657953411340699901e-01 6.322909146546999704e-02 2.525847963988999897e-02 9.377148002389999737e-03 8.969503454860000558e-03 7.922668009999999641e-04 +6.622999906540000259e-03 2.630329877138000080e-02 1.745888032018999905e-02 9.705561213200000759e-03 1.081910207867600032e-01 2.374343574047100003e-01 5.942838788032499542e-01 +3.042806126177000081e-02 5.079452320932999893e-02 4.413671419023999787e-02 3.234685212373999974e-02 1.534483134746600086e-01 2.548011541366599908e-01 4.340443611145000102e-01 +1.998146623373000044e-02 5.136463418603000319e-02 4.786307737230999920e-02 2.596426382661000051e-02 1.389578431844699924e-01 2.670722603797899830e-01 4.487964808940900219e-01 +3.042806126177000081e-02 5.079452320932999893e-02 4.413671419023999787e-02 3.234685212373999974e-02 1.534483134746600086e-01 2.548011541366599908e-01 4.340443611145000102e-01 +3.494245186448000084e-02 4.433306306601000196e-02 3.939948976040000272e-02 3.154738247395000306e-02 1.601652652025200019e-01 2.402970641851399913e-01 4.493152797222100259e-01 +5.188872218132000169e-01 3.475283980369600068e-01 9.385990351438999735e-02 2.045669034122999871e-02 7.706087548289999693e-03 1.095753908156999953e-02 6.041598389900000327e-04 +2.806787490844699917e-01 3.838524520397200157e-01 1.927659213542899930e-01 3.502471745013999854e-02 3.606000542640999673e-02 6.162873655558000208e-02 9.989413432780000143e-03 +4.902545511722600224e-01 3.284925222396899991e-01 1.247576847672499933e-01 2.978691458701999972e-02 1.066805329174000047e-02 1.500468142331000052e-02 1.035592402329999938e-03 +2.612046301364899792e-01 1.351774334907500097e-01 1.399651169776900128e-01 5.287906527518999866e-02 1.395968496799500080e-01 1.570369899272900105e-01 1.141399219632100032e-01 +3.609529137610999888e-02 4.583773016929999777e-02 3.431472182274000055e-02 1.484536193311000035e-02 1.601962000131600117e-01 2.346433550119400024e-01 4.740673303604099886e-01 +3.124901652335999869e-02 9.892019629477999398e-02 5.785806849598999768e-02 2.602454833685999974e-02 1.413630694150899980e-01 2.977375388145400148e-01 3.468475341796899980e-01 +5.410683751106299955e-01 3.020261526107799743e-01 1.276912838220599922e-01 1.772954314946999926e-02 4.803745541720000345e-03 6.411486305299999786e-03 2.694157883499999806e-04 +4.705008268356299928e-01 2.104005366563800050e-01 1.428014487028100021e-01 6.955564767121999448e-02 4.416347295045999766e-02 5.109373107553000226e-02 1.148433331400000069e-02 +1.328131407499300032e-01 2.219921499490699890e-01 2.087694555520999973e-01 5.403615161776999937e-02 1.067426651716199965e-01 1.852324753999700091e-01 9.041395783423999966e-02 +5.377235263585999903e-02 6.121181324123999706e-02 3.893731907010000021e-02 2.435926534235000052e-02 1.704033017158499974e-01 2.458980828523600060e-01 4.054178595542899943e-01 +4.981871843337999928e-01 2.938256263732900164e-01 1.063108593225499943e-01 3.329911828041000332e-02 2.753473259509000085e-02 3.563266620040000249e-02 5.209833383560000253e-03 +2.887765765190100087e-01 2.841426432132699853e-01 2.231495678424799955e-01 6.100513786076999789e-02 5.022149905561999750e-02 7.571655511855999998e-02 1.698799617588999875e-02 +3.766939789056999999e-02 7.412181049584999626e-02 5.008662864565999878e-02 3.266131132840999901e-02 1.540921777486800037e-01 2.740174531936599989e-01 3.773512244224500045e-01 +2.778087556362199839e-01 3.344073295593300021e-01 1.362490952014900059e-01 5.497685447334999670e-02 6.456458568572999435e-02 1.051535755395899968e-01 2.683981880545999871e-02 +3.888593241571999815e-02 6.594544649123999791e-02 4.268077760934999715e-02 1.968242041766999836e-02 1.578979641199100004e-01 2.609899640083300221e-01 4.139175117015799765e-01 +3.658013045787800177e-01 3.763604164123500184e-01 1.445439308881799889e-01 3.219032287597999725e-02 2.911740727723000077e-02 4.567236825823999674e-02 6.314245983959999864e-03 +1.468635052442600064e-01 2.971077263355300091e-01 1.951382458210000059e-01 3.583026304840999932e-02 9.056448936461999888e-02 1.688490509986899923e-01 6.564670056105000040e-02 +2.738073766231500228e-01 3.668266832828500079e-01 1.314191520214099962e-01 4.960989207028999870e-02 5.775374919175999683e-02 9.823951870203000147e-02 2.234362252057000078e-02 +3.608212471008300226e-01 3.432991206645999993e-01 1.619785875081999893e-01 3.227848559617999685e-02 3.685145825148000015e-02 5.523982644080999843e-02 9.531269781289999909e-03 +2.754122316837300244e-01 3.496915102004999887e-01 2.100277394056299929e-01 4.093892872333999844e-02 4.184697940946000005e-02 6.919262558222000203e-02 1.288996729999999924e-02 +5.141964554786999930e-02 5.965299159287999753e-02 4.083365201949999690e-02 3.131877630949000263e-02 1.691450923681299956e-01 2.476576864719400028e-01 3.999721407890299840e-01 +8.245868980885000254e-02 2.106434255838399994e-01 1.244091540574999988e-01 3.869809582829000089e-02 1.275850236415899952e-01 2.553664743900300182e-01 1.608391404151900128e-01 +5.538738369941700324e-01 2.212773710489299994e-01 1.044544726610199953e-01 3.949783742428000094e-02 3.474072739482000211e-02 3.863326832651999693e-02 7.522494066509999994e-03 +3.887242078781100174e-01 3.425917923450499947e-01 1.444847881793999977e-01 4.178990423679000005e-02 3.043803200125999933e-02 4.542056843638000302e-02 6.550718098880000187e-03 +1.589446216821699953e-01 3.124631643295299743e-01 1.901538223028199914e-01 4.171669110655999713e-02 8.426172286272000378e-02 1.574008017778399937e-01 5.505916103721000127e-02 +8.922521769999999797e-02 2.073402702808400111e-01 1.220706105232200051e-01 4.718385636806000233e-02 1.295029222965199955e-01 2.518617212772399916e-01 1.528153866529499971e-01 +2.174589037895200139e-01 1.635392159223600095e-01 8.139155060052999380e-02 5.104091390966999930e-02 1.509413719177200019e-01 1.970372498035400100e-01 1.385907977819400005e-01 +1.885904371738399976e-01 3.418866991996800109e-01 1.724432259797999967e-01 6.513245403766999841e-02 6.898911297321000391e-02 1.291551738977400055e-01 3.380290418863000218e-02 +1.299306936562000074e-02 5.097868293524000088e-02 4.547051712871000295e-02 1.214669924228999921e-02 1.258016824722300031e-01 2.733396291732799743e-01 4.792697131633800178e-01 +3.768332302570000236e-02 3.744347393512999916e-02 2.964342199265999900e-02 1.401199307292999921e-02 1.654373258352299925e-01 2.201548963785200097e-01 4.956255555152899728e-01 +2.253057360649100005e-01 3.104320764541599886e-01 1.601438522338899939e-01 6.608490645884999848e-02 7.491353899239999725e-02 1.267162710428199890e-01 3.640362247824999870e-02 +3.760628402233099910e-01 2.226786464452699954e-01 1.123866066336599995e-01 4.915653541684000122e-02 8.874175697564999632e-02 1.090814396738999936e-01 4.189218953251999666e-02 +4.483815133571599776e-01 2.120285779237700008e-01 9.181026369332999371e-02 4.123757407069000153e-02 8.072745800017999684e-02 9.182330220937999499e-02 3.399131819606000110e-02 +3.165393173694600049e-01 3.635391592979400066e-01 1.769617199897799975e-01 4.062060639262000256e-02 3.569270670414000091e-02 5.761126428842999747e-02 9.035210125149999855e-03 +5.409964546560999676e-02 1.053919345140500036e-01 5.374286696314999751e-02 3.940422460437000007e-02 1.577605754137000049e-01 2.837498784065199953e-01 3.058508932590500162e-01 +1.953053921461100073e-01 2.408216297626500080e-01 1.703658401966099967e-01 3.702463582157999866e-02 1.089530214667299990e-01 1.682845354080199918e-01 7.924494892359000564e-02 +1.534032523631999878e-01 1.482350230216999964e-01 9.103810787200999899e-02 4.633071273565000231e-02 1.586801409721400047e-01 2.233217954635600133e-01 1.789909601211500112e-01 +1.343598123639999989e-02 2.352015860378999998e-02 1.383931562303999940e-02 1.151864510030000018e-02 1.312593221664400123e-01 2.153539955616000090e-01 5.910725593566900082e-01 +1.891397982835799907e-01 3.499195575714100226e-01 1.707593649625800125e-01 6.353902071714000177e-02 6.727531552314999774e-02 1.270255744457199909e-01 3.234136104583999749e-02 +3.487128317356100182e-01 2.625513672828699852e-01 1.146998181939099942e-01 3.071994520724000144e-02 8.653558045626000284e-02 1.144162937998799978e-01 4.236415401100999956e-02 +2.443853318691300014e-01 2.097890228033099935e-01 1.586207449436199957e-01 8.359788358212000281e-02 1.012563630938499992e-01 1.421933025121699945e-01 6.015735119580999796e-02 +2.205042690038699904e-01 3.031368851661699892e-01 1.625113785266900090e-01 5.608073249459000209e-02 8.064346015453000005e-02 1.347759813070300017e-01 4.234726727008999991e-02 +2.994828224182100040e-01 3.306632041931200083e-01 1.264646500349000113e-01 5.148246884345999974e-02 6.460842490196000432e-02 1.017363220453299938e-01 2.556209452449999947e-02 +4.153257310390500168e-01 2.873181700706500252e-01 1.469469368457800018e-01 5.818488821387000215e-02 3.560923412441999863e-02 4.860099032521000145e-02 8.014024235310000452e-03 +7.930234074592999727e-02 8.916100859641999665e-02 4.211756587029000243e-02 2.951992303133000109e-02 1.757682412862799914e-01 2.564489543437999952e-01 3.276819586753800251e-01 +2.153896689414999954e-01 3.498201072216000074e-01 1.561980992555599967e-01 4.037776961923000146e-02 7.283982634544000634e-02 1.288946568965899930e-01 3.647987172007999962e-02 +4.435038659719999637e-03 2.139880694448999948e-02 1.516594737767999919e-02 5.535542964940000366e-03 9.777627140283999541e-02 2.245267927646600048e-01 6.311616301536600027e-01 +3.953102827072100256e-01 1.911277770996100134e-01 1.845731586217899955e-01 5.460687726736000031e-02 6.919884681702000162e-02 7.872663438320000318e-02 2.645644173025999898e-02 +3.265166580677000274e-01 3.426735699176799987e-01 1.793827712535900065e-01 4.313926398753999830e-02 3.838801011443000039e-02 5.980382114649000075e-02 1.009590923785999919e-02 +2.557540833949999981e-01 3.026391267776499805e-01 1.460565775632899910e-01 4.240030050278000007e-02 8.208903670311000489e-02 1.289965808391599911e-01 4.206428304314999839e-02 +1.953841596841799921e-01 1.462435126304600097e-01 8.349576592445000223e-02 5.439955368637999777e-02 1.578346192836800055e-01 2.047629803419100114e-01 1.578794121742199963e-01 +1.179619580507299953e-01 9.499779343604999871e-02 8.318896591662999773e-02 4.067683219910000342e-02 1.767133623361600014e-01 2.276648581027999885e-01 2.587962448596999865e-01 +2.542973496019999835e-02 4.265980422496999658e-02 3.410026803612999785e-02 1.141965575515999955e-02 1.498528420925100135e-01 2.392113804817199985e-01 4.973263144493100252e-01 +8.200143277645000062e-02 1.485344767570500046e-01 1.189063563942899943e-01 6.502559036015999328e-02 1.426910907030100040e-01 2.532590031623799809e-01 1.895820498466500026e-01 +2.887773811817200276e-01 3.904536366462699748e-01 1.831227988004699991e-01 3.277532011270999773e-02 3.539085760712999684e-02 6.012179329990999938e-02 9.358212351800000023e-03 +2.213066965341599912e-01 3.507255315780600236e-01 2.421882003545799966e-01 4.583873972296999971e-02 4.485801234840999796e-02 7.977039366961000133e-02 1.531240995972999938e-02 +2.557940483093300021e-01 3.385682404041300275e-01 2.971139252185799884e-01 4.093427211046000297e-02 2.329241670667999906e-02 3.956558927894000127e-02 4.731521010400000123e-03 +5.735653638839699475e-01 2.165961712598800104e-01 1.358911097049700090e-01 3.016290999948999935e-02 1.958691701292999965e-02 2.143863774835999894e-02 2.758871763940000214e-03 +4.870460554956999866e-02 9.483565390110000604e-02 5.084889382123999879e-02 3.125916421412999746e-02 1.584089249372500063e-01 2.815802395343799946e-01 3.343625068664600186e-01 +1.889558285474799981e-01 2.880339026451099738e-01 1.744935214519499900e-01 4.126569628716000165e-02 9.223240613937000454e-02 1.563187837600699959e-01 5.869986116886000138e-02 +1.484096143395000067e-02 3.864388912916000285e-02 4.172720760107000160e-02 1.939811930060000161e-02 1.336251795291900080e-01 2.532279491424599960e-01 4.985366761684399961e-01 +3.137582838535299956e-01 3.285353779792800077e-01 1.901331543922399891e-01 5.682609975338000219e-02 3.909936547278999863e-02 6.127104908228000330e-02 1.037666108459000050e-02 +5.389960408210799914e-01 2.598223984241500029e-01 1.372977346181900038e-01 2.237055823207000083e-02 1.783188618720000021e-02 2.125375345348999925e-02 2.427607076240000019e-03 +2.437263727188100082e-01 3.589469194412199804e-01 2.244287580251700109e-01 3.497413545847000149e-02 4.513463750481999659e-02 7.760565727948999515e-02 1.518352795392000076e-02 +3.728485107421899980e-01 1.941354274749799991e-01 1.142229586839700051e-01 5.410663411021000152e-02 9.872761368752000499e-02 1.151861995458599991e-01 5.077265575527999814e-02 +4.314828515052799851e-01 3.001452386379199755e-01 1.345082521438600021e-01 5.132259055972000078e-02 3.198334947228000102e-02 4.392862692474999720e-02 6.629067007449999591e-03 +1.763879954814900064e-01 2.392124533653300078e-01 1.826905906200400054e-01 4.761389270424999653e-02 1.060052067041400009e-01 1.708261370658900047e-01 7.726372033358000491e-02 +1.467843651771499891e-01 1.187652349471999963e-01 9.142182022332999425e-02 7.620874792336999881e-02 1.626048535108599868e-01 2.171273082494699913e-01 1.870876699686100098e-01 +2.911202013492599772e-01 1.567722260952000013e-01 1.368378251791000089e-01 7.131660729647000541e-02 1.216908693313600021e-01 1.419147700071299867e-01 8.034750819206000483e-02 +1.624737381935099922e-01 3.169777989387499995e-01 1.847679615020799970e-01 4.015510901809000305e-02 8.466506749391999875e-02 1.572932451963399980e-01 5.366708338260999661e-02 +2.035179436206799863e-01 3.622027039527899728e-01 1.614647507667499871e-01 5.932937189937000089e-02 6.430768966675000364e-02 1.200587525963800056e-01 2.911876887083000159e-02 +7.014238834381100185e-01 1.853514462709399957e-01 6.541649997234000313e-02 2.960482053459000118e-02 8.689023554329999149e-03 8.845399133859999791e-03 6.689466535999999842e-04 +1.689020395278900133e-01 1.323625892400699944e-01 8.678372204303999582e-02 5.787214636803000162e-02 1.625615358352699991e-01 2.135191559791599913e-01 1.779987961053799972e-01 +5.563741177320000175e-02 4.558785259723999866e-02 3.072319738567000011e-02 1.781991310418000116e-02 1.776619851589200105e-01 2.236402034759500113e-01 4.489294588565799771e-01 +4.134491086006200078e-01 3.273835480213200255e-01 1.831969022750900011e-01 3.156693279743000291e-02 1.720413006842000034e-02 2.480334788560999842e-02 2.396018477160000073e-03 +1.031314358115199975e-01 2.342252880334899923e-01 1.182877048850100032e-01 4.418427497149000210e-02 1.247920691966999951e-01 2.418681681156200081e-01 1.335110515356099925e-01 +1.621183604002000012e-01 3.031498491764100245e-01 1.865360140800499944e-01 4.165920242666999729e-02 8.810047805309000057e-02 1.608642637729600089e-01 5.757181718946000060e-02 +1.108854189515099953e-01 2.274550795555100036e-01 2.196074128150899973e-01 5.381715670228000292e-02 1.039514765143400021e-01 1.935153454542200002e-01 9.076812118292000575e-02 +7.692044228314999510e-02 8.092099428177000620e-02 4.067426919936999868e-02 2.957155928016000010e-02 1.775017082691200121e-01 2.522265315055799983e-01 3.421845138072999726e-01 +4.934907704592000205e-02 1.390908956527699969e-01 5.932808667421000243e-02 3.069468215108000012e-02 1.461769044399300055e-01 2.998350858688400011e-01 2.755252718925499944e-01 +4.809692203998600091e-01 2.092675715684899906e-01 1.337654292583499993e-01 7.814473658800000222e-02 4.093300923704999705e-02 4.725200682878000213e-02 9.668015874919999586e-03 +2.451597154139999873e-02 6.198785454035000281e-02 4.643303528427999982e-02 1.974514685571000100e-02 1.446713805198699965e-01 2.744588553905499828e-01 4.281877577304800120e-01 +1.860833317041399870e-01 1.383188664913199972e-01 1.612694561481499977e-01 4.665051773190000139e-02 1.453973352909100070e-01 1.834998577833200084e-01 1.387806385755500083e-01 +5.711395144462599882e-01 2.343686372041700050e-01 9.018946439027999973e-02 3.871608898044000269e-02 2.829848229885000011e-02 3.218109533190999932e-02 5.106744822109999735e-03 +5.871757864952099615e-01 2.062684595584899916e-01 9.156865626573999772e-02 4.279506951571000056e-02 3.188616409897999937e-02 3.409194201231000032e-02 6.213919259610000204e-03 +5.845921635627699953e-01 2.142143696546600085e-01 1.301048099994699947e-01 2.888877317309000020e-02 1.899756491184000085e-02 2.058677561580999835e-02 2.615562407299999812e-03 +2.638949453830700120e-01 2.540308237075800113e-01 1.499803960323299878e-01 7.147246599197000505e-02 8.716493099927999366e-02 1.286904066801100033e-01 4.476604238153000098e-02 +2.631083130836500139e-01 1.627726852893799925e-01 7.616344094275999399e-02 7.282068580389000623e-02 1.406305730342899962e-01 1.746718436479600123e-01 1.098324730992299991e-01 +2.643616497516599884e-01 3.675649166107199939e-01 2.078226953744899963e-01 3.877921402454000133e-02 4.043821617960999953e-02 6.898419559002000323e-02 1.204910036176000052e-02 +3.120748512447000036e-02 7.535997033119000432e-02 5.228035524486999985e-02 3.227800130844000331e-02 1.489052325487099926e-01 2.840620279312099927e-01 3.759069144725800116e-01 +2.330120205879200046e-01 2.664083242416400155e-01 1.607626378536199940e-01 6.052637100219999955e-02 8.971660584210999767e-02 1.395931243896499918e-01 4.998091980814999696e-02 +4.447103440761600024e-01 3.510091900825499933e-01 1.382986605167400018e-01 3.837270662188999731e-02 1.063575968145999938e-02 1.596133224665999967e-02 1.012005843219999967e-03 +1.713202297687499986e-01 1.027582064270999990e-01 8.106733113526999601e-02 7.442796230315999739e-02 1.710091084241900095e-01 2.044257670640899915e-01 1.949913948774300021e-01 +3.653657436370800204e-01 3.768678903579700257e-01 1.842587143182800036e-01 3.418834134936000330e-02 1.440973021089999966e-02 2.312863059342000135e-02 1.780960126779999961e-03 +3.184779584407799735e-01 1.738477200269699929e-01 1.260043829679499960e-01 5.146056041120999902e-02 1.187082752585399970e-01 1.380194425582899898e-01 7.348166406155000330e-02 +4.279142916202500202e-01 2.766334414482100046e-01 2.387956231832500109e-01 3.175887465477000154e-02 1.018404122441999952e-02 1.376511808485000009e-02 9.486227645500000093e-04 +2.870740294456500252e-01 3.029229342937500014e-01 2.088616490364099965e-01 7.889840006828000019e-02 4.286274313927000007e-02 6.737402081490000139e-02 1.200621575117000010e-02 +1.852511428297000037e-02 5.829805135727000182e-02 5.241788923739999773e-02 3.203116357327000230e-02 1.374357193708400093e-01 2.853635847568499750e-01 4.159284532070199880e-01 +5.816594362258900031e-01 2.806932032108300223e-01 9.148946404457000692e-02 2.313352189958000141e-02 9.888769127429999223e-03 1.229108870028999996e-02 8.445170824399999545e-04 +2.480898052454000025e-01 1.937490105629000037e-01 1.541372239589700044e-01 8.470995724200999777e-02 1.080369353294400037e-01 1.457035541534399958e-01 6.557350605726000592e-02 +2.435358799993999832e-02 8.641133457421999731e-02 5.605556443333999800e-02 2.504033967853000128e-02 1.393548548221600070e-01 3.025678694248200018e-01 3.662164509296400028e-01 +9.629534184933000174e-02 7.724990695715000522e-02 7.393734157084999592e-02 2.535499259829999963e-02 1.831301152706099888e-01 2.293471992015800043e-01 3.146851062774699836e-01 +1.290162466465999934e-02 3.731246665119999917e-02 4.170332849025999711e-02 1.895595900713999832e-02 1.308726519346199990e-01 2.564226388931299949e-01 5.018313527107199912e-01 +2.219708859920500044e-01 2.107675969600699972e-01 1.590765118598899963e-01 4.599489644170000335e-02 1.164792329073000010e-01 1.640797108411800043e-01 8.163117617369000656e-02 +1.127117574214900053e-01 2.103358805179600111e-01 2.136759012937499980e-01 5.460355430840999752e-02 1.110558882355699994e-01 1.985488682985299957e-01 9.906814247369999382e-02 +2.205899804830599997e-01 2.393611669540400000e-01 1.601012945175200042e-01 4.305496811867000340e-02 1.072209924459500002e-01 1.592442840337799925e-01 7.042729854583999749e-02 +8.394953608513000543e-02 1.018152758479100028e-01 8.758421242236999471e-02 2.577816881238999963e-02 1.699127852916700043e-01 2.485147267579999875e-01 2.824452817440000207e-01 +7.704506814479999965e-02 1.101534143090199952e-01 1.042962074279800005e-01 5.297350510954999814e-02 1.591432541608799878e-01 2.539686858654000012e-01 2.424198538064999964e-01 +4.252502229060000152e-03 1.271056197583999951e-02 1.291936170310000083e-02 1.059755403547999950e-02 1.003605872392699938e-01 1.960655599832500096e-01 6.630938649177600119e-01 +1.888838410377499943e-01 3.039793670177500240e-01 2.776822149753599978e-01 5.637660622597000237e-02 5.457895621657000290e-02 9.633161872624999844e-02 2.216738834977000083e-02 +2.578079402446700197e-01 3.018096089363099810e-01 1.453810632228899891e-01 6.184738874435000144e-02 7.648200541734999358e-02 1.216357797384299971e-01 3.503622859715999766e-02 +3.362260162830399968e-01 2.521308958530399935e-01 1.986401975154900024e-01 7.127755880356000107e-02 5.289408937097000302e-02 7.230350375175000066e-02 1.652771420777000150e-02 +1.067741513252299934e-01 1.939975768327699968e-01 1.139367371797599948e-01 5.728488415480000040e-02 1.361180990934399981e-01 2.433169037103700139e-01 1.485716700553899872e-01 +2.388321459293399895e-01 2.972279787063599743e-01 1.537581980228399925e-01 6.545835733414000213e-02 7.883728295564999822e-02 1.279314756393399866e-01 3.795456141233000125e-02 +1.675760746002200041e-01 3.450763523578599945e-01 1.752857565879800128e-01 3.611823916435000226e-02 7.933393120765999673e-02 1.504011005163199965e-01 4.620855301619000016e-02 +2.073809206485699996e-01 3.150837421417200246e-01 2.602798640728000157e-01 6.327453255652999708e-02 4.949773102998999974e-02 8.667685091495999639e-02 1.780633442104000153e-02 +2.974278666078999933e-02 3.719086199998999920e-02 3.607092797756000085e-02 2.968595363199999851e-02 1.600371301174199901e-01 2.362221926450699949e-01 4.710501432418799928e-01 +1.737454086542100096e-01 2.469148784875900005e-01 1.870155185460999903e-01 8.472937345504999440e-02 9.318862855434000003e-02 1.568158119916900073e-01 5.759037658571999896e-02 +1.242874469607999945e-02 2.491494081913999889e-02 3.188454359770000190e-02 1.387797202915000069e-02 1.316895335912700027e-01 2.223274558782599997e-01 5.628768205642700195e-01 +2.759182825684999840e-02 3.574918210505999977e-02 3.109574690460999852e-02 1.391569059342000030e-02 1.565689891576799997e-01 2.280426323413800027e-01 5.070359706878699857e-01 +1.867368370294600066e-01 1.402630209922799964e-01 8.263677358627000147e-02 5.422838032246000278e-02 1.619717031717300137e-01 2.093348205089599900e-01 1.648284643888499879e-01 +3.562280163169000147e-02 7.685360312462000132e-02 4.969178512691999755e-02 3.113875351845999881e-02 1.547192484140400004e-01 2.826897799968700054e-01 3.692840039730099777e-01 +3.997143805026999730e-01 2.418089061975499943e-01 1.021362990140900068e-01 7.477344572543999368e-02 6.883171200752000174e-02 8.801594376563999511e-02 2.471932582557000158e-02 +1.844847053289400129e-01 3.005856573581699998e-01 1.726357787847500047e-01 3.944258764386000121e-02 9.040648490191000031e-02 1.566507071256600103e-01 5.579409375786999886e-02 +3.381226062774699836e-01 2.272169291973100136e-01 1.232159510254900031e-01 7.729560881852999554e-02 8.507890999316999880e-02 1.110443696379700002e-01 3.802563250064999734e-02 +2.988795340061199957e-01 3.351381123065900192e-01 1.964265406131699976e-01 4.772239550948000064e-02 4.249590262770999716e-02 6.730959564447000498e-02 1.202790252863999987e-02 +3.850596258420000209e-03 1.280171237886000048e-02 1.129626203327999991e-02 4.889577161519999618e-03 9.533654898405000133e-02 1.888285577297199869e-01 6.829967498779300206e-01 +2.379420101642600038e-01 2.002636492252299893e-01 1.583444923162500018e-01 8.494661003351000605e-02 1.063518971204800018e-01 1.474549174308799893e-01 6.469641625880999392e-02 +3.238512575625999979e-02 3.400680795311999960e-02 3.345880284904999974e-02 2.913173288106999867e-02 1.639807373285299963e-01 2.269107848405799988e-01 4.801259934902200044e-01 +2.451786696910900065e-01 3.275279998779300206e-01 1.460660248994800070e-01 4.838771373034000262e-02 7.456955313683000242e-02 1.235559806227699980e-01 3.471405804157000341e-02 +2.435270696877999894e-02 2.992909029126000070e-02 3.229766711592999689e-02 2.274108305572999922e-02 1.545572876930199901e-01 2.236655503511399967e-01 5.124565958976700086e-01 +5.291255712509199682e-01 2.694285213947300028e-01 9.679826349020000109e-02 3.822653740643999765e-02 2.762781269848000112e-02 3.394625708461000008e-02 4.847011994570000169e-03 +5.109457373619099574e-01 3.051442801952399808e-01 1.202847808599499940e-01 3.629124537109999771e-02 1.119337696582000004e-02 1.510206051170999951e-02 1.038546673949999975e-03 +4.271112382411999808e-02 9.960483759641999835e-02 1.118391007185000063e-01 3.511476144194999871e-02 1.472875773906699992e-01 2.742144465446499924e-01 2.892281413078299779e-01 +2.930621802806899767e-01 3.331777453422499757e-01 2.012595981359500130e-01 3.358398750423999962e-02 4.822749271988999858e-02 7.518622279167000433e-02 1.550276856868999971e-02 +3.276079595088999818e-01 2.331601232290299863e-01 1.255320608615899947e-01 9.339825063944000305e-02 7.952139526606000208e-02 1.070882007479699999e-01 3.369200602174000220e-02 +2.435654215514999887e-02 3.273130953311999963e-02 3.070206567645000079e-02 1.386696286500000048e-02 1.528344899416000102e-01 2.250558286905300076e-01 5.204527974128699830e-01 +1.669068038463600023e-01 2.740905880928000138e-01 1.862458288669600059e-01 5.368913710117000082e-02 9.395562112331000415e-02 1.640087068080899879e-01 6.110329553484999954e-02 +3.800856173038499874e-01 3.299601376056700008e-01 1.513172239065199987e-01 4.494765773415999865e-02 3.478654101491000100e-02 5.106599256396000125e-02 7.836823351680000799e-03 +3.756371438503299798e-01 3.066015541553500090e-01 2.234775573015199968e-01 3.387183696031999952e-02 2.324775420129000097e-02 3.313393145799999745e-02 4.030223004520000138e-03 +2.209597826004000010e-01 1.631179749965699921e-01 8.112526684998999649e-02 6.182876974344000270e-02 1.491831392049799976e-01 1.945709586143500036e-01 1.292141079902600076e-01 +4.685549736022899814e-01 2.706203460693399898e-01 1.278877109289200120e-01 3.580234572291000200e-02 3.909519687295000268e-02 4.887975379824999883e-02 9.159650653600000594e-03 +1.043280214071300033e-01 8.202196657657999379e-02 7.698911428452000216e-02 3.194651752710000320e-02 1.824446022510499976e-01 2.292199432849900131e-01 2.930498421192200276e-01 +4.122690483928000138e-02 9.925097972155000337e-02 5.115417763591000033e-02 2.414223365485999862e-02 1.537232697010000038e-01 2.916425764560700018e-01 3.388598561286900179e-01 +4.337273165583999807e-02 7.659669965505999656e-02 4.465920478106000235e-02 2.391117811203000154e-02 1.620166301727299918e-01 2.732377946376799982e-01 3.762057423591599892e-01 +2.627461217344000122e-02 4.216242954135000082e-02 4.006415605545000230e-02 3.042311035096999933e-02 1.541977375745799961e-01 2.495926171541200111e-01 4.572853147983599875e-01 +6.678323447704000160e-02 1.294798105955100032e-01 1.037273034453399939e-01 2.601319737731999995e-02 1.534174531698200006e-01 2.671708464622499779e-01 2.534081339836100066e-01 +1.426112465559999966e-02 3.378279134631000102e-02 3.838175907731000008e-02 1.860615983605000065e-02 1.349572390317899939e-01 2.456182539462999914e-01 5.143926739692700201e-01 +2.464648522437000097e-02 2.954389899968999991e-02 3.194732591510000136e-02 2.267613820731999991e-02 1.550697088241599908e-01 2.223469614982599984e-01 5.137695074081399804e-01 +3.041714131832100043e-01 2.322666794061699902e-01 1.342493593692800080e-01 6.818804144859000327e-02 9.170500934123999859e-02 1.239399909973099984e-01 4.547952115535999762e-02 +5.465205311775199748e-01 2.669908106327100183e-01 9.079999476670999603e-02 2.959235385059999848e-02 2.778873965143999897e-02 3.335440158843999692e-02 4.953136201949999602e-03 +8.023333735760000349e-03 1.304524019360999917e-02 1.098707877100000077e-02 1.029104273765999930e-02 1.173544228076899981e-01 1.844714730977999873e-01 6.558274030685400380e-01 +2.306637316942199978e-01 3.833539187908199808e-01 2.209085375070599933e-01 3.926131129265000158e-02 4.035067930818000276e-02 7.315061241388000346e-02 1.231120619923000044e-02 +2.812547683715799773e-01 3.505865633487699751e-01 2.614867985248600091e-01 5.132309719920000179e-02 1.934790238737999976e-02 3.283664584160000260e-02 3.164225490760000023e-03 +3.917354345322000136e-02 9.178383648396000460e-02 5.243870243430000244e-02 3.101002983748999894e-02 1.536001265048999864e-01 2.904396951198600085e-01 3.415540456771899991e-01 +2.944926917552900258e-01 1.662914454937000075e-01 1.358613371849100027e-01 8.289964497089000184e-02 1.145577430725100015e-01 1.370415985584300111e-01 6.885553151369000480e-02 +4.203970432281500247e-01 2.774152755737300247e-01 1.461913287639599879e-01 5.917548388242999807e-02 3.778433799743999982e-02 5.042922869324999863e-02 8.607299067080000088e-03 +3.393219038844000335e-02 7.092493772506999750e-02 4.634510353207999672e-02 2.431941591203000061e-02 1.550959497690199973e-01 2.772305607795699789e-01 3.921518325805700145e-01 +8.717074245214000150e-02 7.458311319351000612e-02 3.662790358067000152e-02 2.815588377415999960e-02 1.852231025695799949e-01 2.431662529706999920e-01 3.450729846954300184e-01 +3.583669364452399808e-01 2.701484858989700033e-01 1.845579892396899957e-01 3.601341322064000039e-02 5.649688839912000299e-02 7.544571161270000048e-02 1.897058077156999964e-02 +1.061392109841000075e-02 2.942683920263999831e-02 3.666958585381999841e-02 1.437546685338000028e-02 1.258963644504499935e-01 2.396210581064200096e-01 5.433967709541299707e-01 +1.319296937436000017e-02 2.334574796259000079e-02 3.018376789987000167e-02 1.367704663426000042e-02 1.338490247726399907e-01 2.157894372940100114e-01 5.699620246887200370e-01 +3.381728231906899751e-01 2.208040803670900110e-01 1.233648881316199986e-01 6.508473306893999832e-02 9.161946177483000497e-02 1.170373782515500005e-01 4.391662031411999734e-02 +4.073826968669900239e-01 3.064782321453100034e-01 1.419840604066799905e-01 5.336875468492999902e-02 3.475182503462000139e-02 4.867383837699999771e-02 7.360581308600000310e-03 +3.687087446450999784e-02 9.791451692581000510e-02 1.135663166642199989e-01 3.458483517170000271e-02 1.444964110851300054e-01 2.807182967662800177e-01 2.918487489223500209e-01 +5.055612325668300544e-01 2.031954675912900077e-01 1.277321428060499975e-01 4.303627088665999689e-02 5.123887956142000183e-02 5.533777549862999717e-02 1.389825716615000067e-02 +2.920476794242899965e-01 2.706543803215000210e-01 1.328099071979499946e-01 5.037312209605999958e-02 8.711866289377000194e-02 1.253173500299500087e-01 4.167889058589999834e-02 +2.675963751971999899e-02 5.854916572570999928e-02 4.422210901976000169e-02 2.379032969474999953e-02 1.519192308187500007e-01 2.737375795841199833e-01 4.210219681262999947e-01 +3.260888159275000114e-02 2.819325588644000166e-02 2.942638471723000096e-02 2.759070880710999887e-02 1.676170825958299970e-01 2.146842479705800000e-01 4.998794496059399961e-01 +9.102335199709999866e-03 2.873722277581999829e-02 3.699102997780000235e-02 1.406541373581000030e-02 1.226983368396799973e-01 2.436912506818799951e-01 5.447143912315399739e-01 +1.603892445564299996e-01 2.142351567745200136e-01 1.891866177320500053e-01 7.524808496236999600e-02 1.085137128830000047e-01 1.751350611448299899e-01 7.729212194680999681e-02 +3.410966396331799877e-01 1.778318881988500133e-01 1.203520745038999945e-01 7.150713354349000350e-02 1.073806434869799958e-01 1.250032037496600079e-01 5.682842433453000330e-02 +7.602372672409999678e-03 2.188932523131000007e-02 3.154334798455000338e-02 1.051220856607000022e-02 1.177680119872100001e-01 2.230602204799700117e-01 5.876244902610799903e-01 +2.474833428859699869e-01 1.130077838897699943e-01 6.680501997471000042e-02 6.160051748156999962e-02 1.698904037475600093e-01 1.839708089828500093e-01 1.572421193122900129e-01 +4.730401337146800111e-01 2.047251909971199990e-01 8.264438807964000211e-02 3.740032762289000057e-02 8.111975342034999370e-02 8.879665285349000459e-02 3.227356448770000302e-02 +3.908883333206200072e-01 2.878570258617400013e-01 2.106535732746100120e-01 5.824788287281999766e-02 2.049439214169999912e-02 2.885988168418000127e-02 2.998913405459999963e-03 +2.245792374015000148e-02 3.751673921943000228e-02 3.325215354562000014e-02 1.385350804775999957e-02 1.506381332874300039e-01 2.397333234548600089e-01 5.025482177734400535e-01 +1.460061520338100105e-01 2.893782258033800181e-01 1.904426366090800071e-01 4.253925755619999971e-02 9.402024745940999739e-02 1.735810190439200096e-01 6.403245031833999790e-02 +1.804623752832399952e-01 2.287392914295199864e-01 1.776651591062499980e-01 5.737070739268999853e-02 1.089785769581800012e-01 1.715357303619400031e-01 7.524815201758999761e-02 +3.642399311065699918e-01 2.248906195163699884e-01 1.879574358463300121e-01 7.262986153363999720e-02 5.816991627215999799e-02 7.359872013330000240e-02 1.851350814104000056e-02 +1.291672736406299926e-01 2.711685299873399790e-01 1.973453909158700004e-01 3.681418672204000292e-02 1.006970331072799957e-01 1.873800307512299979e-01 7.742754369974000350e-02 +7.389134168625000054e-02 1.918206214904799867e-01 1.151021793484700018e-01 2.958116680384000052e-02 1.370453536510500003e-01 2.697422206401799971e-01 1.828171163797399912e-01 +3.870374262332900162e-01 3.215437531471300181e-01 1.471945047378500071e-01 5.352993682026999794e-02 3.403092548251000077e-02 4.945118725299999657e-02 7.212250493470000016e-03 +4.567374885082199909e-01 2.665706574916800187e-01 2.180506438016900084e-01 3.563165664673000055e-02 9.602244943380000217e-03 1.259675342589999976e-02 8.105660672299999734e-04 +1.748899370431900024e-01 1.449051350355100021e-01 8.439423143863999943e-02 5.359769240021999837e-02 1.618309915065800075e-01 2.160235345363600012e-01 1.643584817647900098e-01 +4.233759343624100002e-01 3.372453153133400106e-01 1.684864759445199867e-01 2.810380049049999995e-02 1.666528545320000027e-02 2.397228218614999920e-02 2.150896238160000199e-03 +3.894006907939899786e-01 1.906266957521400018e-01 1.057324558496500061e-01 5.020491778851000203e-02 1.006260588765099939e-01 1.140628010034600015e-01 4.934638366103000218e-02 +4.689568579196899956e-01 2.490257173776599942e-01 1.328972131013899938e-01 3.941285237670000274e-02 4.472279176116000093e-02 5.378521233796999812e-02 1.119935419409999987e-02 +1.344834268093099972e-01 2.363482862710999943e-01 2.040668129920999996e-01 7.429108768702000209e-02 1.001038998365400001e-01 1.788128018379200046e-01 7.189368456601999413e-02 +2.002202719450000001e-01 2.120299041271200002e-01 1.717635095119499911e-01 8.654375374316999880e-02 1.052959561348000006e-01 1.580653637647599918e-01 6.608124077320000345e-02 +3.525193035602999792e-02 1.101557165384299958e-01 5.734748020767999749e-02 3.033093363047000002e-02 1.463244110345799931e-01 3.072053194045999969e-01 3.133842051029199771e-01 +2.444046884775200046e-01 3.604288697242700179e-01 2.189838588237799921e-01 4.091199114919000235e-02 4.454786702991000297e-02 7.684750109910999660e-02 1.387522928416999937e-02 +5.133828520774800230e-01 3.193883001804400101e-01 1.305729597806900011e-01 2.540776319801999958e-02 4.590019583699999663e-03 6.431561894710000234e-03 2.265574294099999958e-04 +3.948901295661900179e-01 3.565739095211000187e-01 1.771083474159199922e-01 2.840488962828999903e-02 1.631870120764000037e-02 2.458396926521999939e-02 2.120056655259999843e-03 +3.441009521484399980e-01 3.171839714050300185e-01 2.278776019811599995e-01 5.860861763358000270e-02 1.950745098293000038e-02 2.984753437340000037e-02 2.873862627890000007e-03 +2.790949121117999865e-02 3.337308764458000315e-02 3.391799703239999769e-02 2.864350937306999953e-02 1.606007814407300061e-01 2.318993210792499871e-01 4.836558103561400257e-01 +1.783958449959999887e-02 5.134292319416999817e-02 4.211979359388000332e-02 1.459542661905000038e-02 1.393992304801900117e-01 2.715552747249599941e-01 4.631477594375599804e-01 +2.256067097187000048e-01 2.981162667274500078e-01 1.569721847772599932e-01 7.971453666687000617e-02 7.654479146003999313e-02 1.276539564132699867e-01 3.539155051112000128e-02 +2.712691724300400065e-01 3.192063868045800223e-01 1.354656517505599955e-01 5.561092868446999848e-02 7.243885844946000574e-02 1.154291927814500018e-01 3.057980537415000075e-02 +3.410499542952000196e-02 5.823619663715000339e-02 4.300025850533999855e-02 2.994936890900000079e-02 1.605006158351900136e-01 2.668872773647300023e-01 4.073213040828699838e-01 +1.321405172347999979e-01 1.930752247571899949e-01 1.027487888932200055e-01 5.371034517883999798e-02 1.418533772230100021e-01 2.338748723268500029e-01 1.425968706607800007e-01 +7.429882138967999761e-02 1.801546812057500113e-01 1.209592297673200006e-01 4.779801145195999856e-02 1.363653093576399911e-01 2.660629749298100144e-01 1.743609607219699931e-01 +4.144196808338200255e-01 1.649924069643000091e-01 9.955698251724000303e-02 6.220419332385000027e-02 1.018946617841700042e-01 1.078396886587100062e-01 4.909237101674000098e-02 +1.116302795707999930e-02 3.567529842257000094e-02 3.748513758183000255e-02 1.112448889761999925e-02 1.270990371704099897e-01 2.527078986167899943e-01 5.247451066970799660e-01 +2.261419221758999981e-02 4.132326692343000346e-02 4.056151956319999780e-02 2.987459115683999827e-02 1.508242785930599961e-01 2.547501921653699819e-01 4.600519537925700231e-01 +6.097059845924399646e-01 2.105956524610499980e-01 1.102391853928599980e-01 3.498674184083999661e-02 1.574293710290999848e-02 1.697389595211000121e-02 1.755614532160000053e-03 +1.258622109889999952e-01 2.444066405296299871e-01 2.093035578727699964e-01 7.378406077622999548e-02 9.699708223342999591e-02 1.797743737697599931e-01 6.987205892801000295e-02 +1.470125019550299894e-01 2.553420364856699987e-01 1.914791166782399967e-01 4.608584940433999716e-02 1.033927798271200016e-01 1.810874044895199875e-01 7.560030370951000001e-02 +2.861553132533999899e-01 2.192070335149799987e-01 1.376208662986800058e-01 5.904462933540000069e-02 1.034500151872600054e-01 1.376568526029600115e-01 5.686530098319000220e-02 +8.129177615050000097e-03 1.121845934540000034e-02 9.242151863870000372e-03 7.476269733160000389e-03 1.178022101521500054e-01 1.720530390739400117e-01 6.740787029266399610e-01 +1.965029165149000112e-02 4.724444821477000178e-02 4.534094780683999709e-02 3.056593239307000068e-02 1.441889703273800116e-01 2.695469856262199815e-01 4.434624314308199811e-01 +3.462431728839899803e-01 2.926139533519699909e-01 1.778516471385999942e-01 6.942386180161999598e-02 4.213624820113000269e-02 6.105040013790000164e-02 1.068073231727000028e-02 +2.752633765339999872e-02 7.211755961179999730e-02 4.423214495181999883e-02 1.458475459367000043e-02 1.490066498518000104e-01 2.830912470817599780e-01 4.094413220882400228e-01 +5.706941708921999673e-02 1.332342326641099972e-01 5.341694504023000029e-02 2.875546365975999857e-02 1.555167585611300085e-01 2.958678305149100018e-01 2.761393785476700113e-01 +8.857011795043999436e-02 1.785742342472100008e-01 1.138333603739700023e-01 4.689092934131999790e-02 1.414190977811800032e-01 2.582897841930399951e-01 1.724224537610999919e-01 +1.043265983462299956e-01 8.559589087963000165e-02 7.684165984391999604e-02 3.110020793973999886e-02 1.830389797687499986e-01 2.329862117767300123e-01 2.861104309558900050e-01 +9.195452928543000615e-02 1.101345568895299998e-01 9.942250698804999676e-02 6.356215476990000057e-02 1.634739190339999926e-01 2.462920248508499999e-01 2.251603007316599903e-01 +3.630579113960299975e-01 3.930180966854099900e-01 1.793464869260799899e-01 2.202332764864000161e-02 1.558459457010000042e-02 2.491368353366999952e-02 2.055895747620000054e-03 +5.342659354209899902e-01 2.078038454055800011e-01 1.116034835577000006e-01 5.321549996733999921e-02 4.023257642984000293e-02 4.401997104286999724e-02 8.858675137160000254e-03 +1.168205682187999951e-02 3.771071135997999813e-02 4.017236828804000154e-02 1.442333310842999934e-02 1.286468505859399980e-01 2.591861486434899886e-01 5.081785321235700037e-01 +5.624635219574000145e-01 1.959125399589499994e-01 1.857570111751599973e-01 3.050438687204999957e-02 1.172460895032000072e-02 1.253967639058999918e-02 1.098270993679999977e-03 +1.809430308640000082e-02 3.415969759226000074e-02 3.715455532074000283e-02 2.303864248097000147e-02 1.448357254266700034e-01 2.443089336156800129e-01 4.984081387519799788e-01 +2.690087258815799798e-01 3.097668886184700154e-01 2.997197210788700161e-01 4.418484866618999779e-02 2.753361687064000141e-02 4.393992573022999920e-02 5.846306681629999738e-03 +4.649319052696200272e-01 2.617519497871400036e-01 1.255062669515600027e-01 6.280372291803000551e-02 3.440486267209000304e-02 4.370903223752999750e-02 6.892250850799999835e-03 +2.869089543819399735e-01 2.990052402019500177e-01 2.916859090328199899e-01 4.440705105662000329e-02 2.836350910365999928e-02 4.362490400671999863e-02 6.004448980090000380e-03 +1.782958954572999924e-02 3.977202996611999691e-02 3.416279703379000027e-02 1.070027891546000004e-02 1.431305259466200130e-01 2.500170767307299813e-01 5.043877363205000464e-01 +4.201893880963000066e-02 3.782747313379999921e-02 3.141314163804000137e-02 2.736473828554000093e-02 1.761534810066200107e-01 2.297602742910400120e-01 4.554619491100300177e-01 +2.198833040893000135e-02 6.490787863730999863e-02 4.826111346483000220e-02 2.362447418271999833e-02 1.448281705379499962e-01 2.902506887912800204e-01 4.061393439769699909e-01 +2.971776127815199953e-01 3.404367268085500275e-01 2.567343413829800136e-01 4.286276921630000070e-02 2.252996899187999919e-02 3.639235720037999749e-02 3.866223618390000026e-03 +3.256648480892200270e-01 1.895129829645199881e-01 1.222443580627400050e-01 5.737039074301999997e-02 1.112999245524400049e-01 1.332278847694400026e-01 6.067959964274999979e-02 +9.147398173810000407e-03 2.377817779778999829e-02 3.246963024138999759e-02 1.329546235502000046e-02 1.251752674579600100e-01 2.301120609045000098e-01 5.660220384597800525e-01 +3.682182729244199981e-01 2.781517207622499765e-01 2.411631643772099987e-01 3.918025642633000266e-02 2.865687385201000012e-02 3.915633261203999710e-02 5.473382771020000176e-03 +1.012233123183299971e-01 1.615210771560700032e-01 2.012943178415300127e-01 4.709091782569999746e-02 1.322296559810600125e-01 2.177495658397700096e-01 1.388911753892899947e-01 +1.498302910477000011e-02 3.886405751108999718e-02 3.730800375341999930e-02 1.390951406211000073e-02 1.380376964807500106e-01 2.564745545387300263e-01 5.004231333732600540e-01 +3.082052804529999968e-02 7.263476401566999752e-02 4.624240100384000018e-02 2.323525957763000055e-02 1.545187681913400002e-01 2.865436971187599879e-01 3.860045671462999928e-01 +1.352213323116299992e-01 1.242947503924400066e-01 8.804416656494000459e-02 5.710597336291999698e-02 1.687896847724900118e-01 2.316388934850699965e-01 1.949051916599300049e-01 +3.514825403690299832e-01 1.471515148878100032e-01 1.116288676857900009e-01 6.040685996412999831e-02 1.246199086308499987e-01 1.314951479435000070e-01 7.321517169475999509e-02 +1.064884141087499986e-01 1.694668531417800050e-01 9.613019227982000370e-02 2.818773314356999918e-02 1.547677367925600067e-01 2.539723217487300233e-01 1.909867376089099955e-01 +1.265206038951899870e-01 2.084516435861600014e-01 1.938250213861499871e-01 4.152081906795999922e-02 1.207422316074400065e-01 2.031033337116200099e-01 1.058363616466500012e-01 +5.419194102287300252e-01 2.484425157308599863e-01 1.288087964057899881e-01 4.526789486407999802e-02 1.538818702101999933e-02 1.852329634130000027e-02 1.649898709729999934e-03 +1.047703027725200020e-01 6.464658677578000168e-02 6.601293385029000094e-02 3.012348338961999897e-02 1.938844472169899968e-01 2.204580605030100060e-01 3.201041817665100098e-01 +3.009553849697100270e-01 2.552153468132000169e-01 1.298591047525400055e-01 6.174539774656000179e-02 8.824633806944000292e-02 1.234520524740199965e-01 4.052637517451999905e-02 +4.672921821474999848e-02 9.646040946245000580e-02 1.073270812630700011e-01 4.214567691088000334e-02 1.535618454217899942e-01 2.739622890949199863e-01 2.798134684562699759e-01 +1.498242467641799913e-01 2.367407828569400019e-01 1.867940425872799959e-01 4.688142612576000345e-02 1.107475608587299987e-01 1.862830370664599888e-01 8.272890001534999316e-02 +8.124081790447000573e-02 1.541402786970099970e-01 1.028926521539700045e-01 2.989292331039999917e-02 1.530816107988400010e-01 2.665401101112400140e-01 2.122116237878799994e-01 +1.267713010311100064e-01 1.685815751552600106e-01 1.919413059949900136e-01 5.597377941012000174e-02 1.309797167777999871e-01 2.043524235487000074e-01 1.213998943567300010e-01 +5.934935212135300509e-01 2.517148554325099874e-01 1.130862757563600024e-01 3.061016835271999914e-02 4.890272859480000386e-03 5.970320664349999806e-03 2.345905522799999869e-04 +1.696573346853300079e-01 2.204887121915800052e-01 1.833758652210200069e-01 8.747889846563000615e-02 1.040723994374300049e-01 1.675969958305399965e-01 6.732979416847000020e-02 +1.234705522656399934e-01 1.424547284841500006e-01 1.823211759328799975e-01 4.735574126244000009e-02 1.440782099962200080e-01 2.104538381099700095e-01 1.498657464981099918e-01 +6.518694013357000105e-02 1.274093985557600006e-01 1.037546768784499973e-01 3.150952979921999714e-02 1.554833650589000082e-01 2.719290256500199732e-01 2.447270601987799887e-01 +2.046111673116700058e-01 2.424277216196099871e-01 2.750304341316199830e-01 5.364627391099999892e-02 7.440704852342999720e-02 1.144532337784800041e-01 3.542411699891000187e-02 +4.711501672863999818e-02 9.314408153295999915e-02 4.780658707022999998e-02 2.890000119805000156e-02 1.628737300634399976e-01 2.880167365074199903e-01 3.321438729762999920e-01 +2.792420610784999979e-02 7.070197165012000184e-02 4.917978495359000279e-02 2.994069829583000109e-02 1.512909829616500001e-01 2.900923788547499771e-01 3.808699846267700195e-01 +5.837846919893999870e-02 8.064109832047999804e-02 8.563614636659999668e-02 2.563643269241000153e-02 1.696989685297000117e-01 2.564775645732900178e-01 3.235313296318100273e-01 +6.938596814870999496e-02 1.214453950524300024e-01 1.109534204006200064e-01 6.348171830177000430e-02 1.528966873884199940e-01 2.635986804962199836e-01 2.182381302118300004e-01 +3.291280865669299893e-01 2.726473212242099819e-01 1.186057701706900031e-01 5.445814877748000188e-02 8.014135807753000607e-02 1.117211058735800011e-01 3.329822048545000301e-02 +3.538560569286299806e-01 3.119403123855600257e-01 1.698935627937299964e-01 4.349322617054000167e-02 4.465874657035000250e-02 6.438601016997999582e-02 1.177207566797999934e-02 +1.539376378059399975e-01 2.612170875072499787e-01 1.912978738546400048e-01 9.841898083686999310e-02 8.731868863106000134e-02 1.572830677032500124e-01 5.052665248512999696e-02 +1.848340593278000044e-02 4.249654710293000043e-02 4.273721203208000197e-02 2.956348471343999904e-02 1.450446397066099957e-01 2.652503550052600079e-01 4.564243555069000258e-01 +2.809452116489399853e-01 3.087916970253000160e-01 2.119335085153599973e-01 3.695672005415000239e-02 5.629904568195000236e-02 8.563093841075999912e-02 1.944288611412000115e-02 +3.329309523105600244e-01 2.398583590984300074e-01 1.191854178905499967e-01 4.891609027982000285e-02 9.331524372100999387e-02 1.218343377113299958e-01 4.395961016417000017e-02 +1.414254158735299971e-01 2.151132524013500136e-01 1.962257772684100066e-01 7.570093125104999932e-02 1.087389960885000034e-01 1.831316053867300120e-01 7.966402918100000397e-02 +4.128159582614999989e-02 6.712984293698999461e-02 4.265972971916000278e-02 2.895875647664000047e-02 1.663524657487900071e-01 2.719220817089100239e-01 3.816955387592300131e-01 +1.776893138885499990e-01 2.142765223979999911e-01 1.793071478605300084e-01 8.762793242930999593e-02 1.061972901225100019e-01 1.663519740104699995e-01 6.854981184005999595e-02 +4.088735282421099848e-01 4.008695185184499854e-01 1.343746781349199892e-01 2.765447832643999973e-02 1.049600727855999963e-02 1.677057705819999869e-02 9.612053399900000444e-04 +5.413334369659400513e-01 2.787805497646300146e-01 1.141906827688199955e-01 3.638116270304000283e-02 1.242516282946000070e-02 1.572874560951999928e-02 1.160262152549999988e-03 +2.711101770400999866e-01 3.066712915897399916e-01 1.327188611030599985e-01 3.791093081236000112e-02 8.371723443270000231e-02 1.282823532819699908e-01 3.958918526769000107e-02 +8.384524285793000520e-02 1.793853193521499911e-01 1.023828834295300028e-01 2.275514043867999867e-02 1.473910957574799951e-01 2.668933272361799780e-01 1.973470002412799906e-01 +9.615229442720000727e-03 3.517094999551999973e-02 4.203087091445999873e-02 1.811833679676000050e-02 1.248794049024599950e-01 2.639805674552900272e-01 5.062046647071799521e-01 +5.666757933799999696e-03 1.299375016241999942e-02 1.098878681659999981e-02 7.683356292550000410e-03 1.094306483864800061e-01 1.916265934705700114e-01 6.616101264953599959e-01 +3.863376677036299833e-01 2.078798264265100115e-01 1.055035740137099942e-01 5.747599527240000034e-02 9.247069060802000362e-02 1.094777733087499982e-01 4.085448384285000206e-02 +3.869235515594500185e-01 3.385536968708000027e-01 1.925061345100400056e-01 3.231216967106000093e-02 1.899071224034000124e-02 2.804265730082999841e-02 2.671065274629999976e-03 +3.626993894577000277e-01 3.410694897174800233e-01 2.013237178325699983e-01 4.882197827101000115e-02 1.722824946046000102e-02 2.661569043993999850e-02 2.241490874440000072e-03 +1.133967936038999952e-01 1.823601275682399936e-01 1.004950329661399994e-01 4.259874671698000298e-02 1.491709053516399874e-01 2.498974055051799981e-01 1.620809882879299946e-01 +1.438198145478999934e-02 3.031366504728999836e-02 3.561634197830999826e-02 2.180429548025000080e-02 1.411328017711599991e-01 2.452665567398099877e-01 5.114843845367400554e-01 +1.092852503061299968e-01 8.842176944016999496e-02 7.345093786716000439e-02 2.922873571515000046e-02 1.871473640203500099e-01 2.356740534305599988e-01 2.767919003963499880e-01 +1.250255759804999936e-02 4.071084409951999938e-02 3.943072259425999676e-02 1.376007962971999982e-02 1.330842971801800001e-01 2.676303386688200225e-01 4.928811788558999929e-01 +2.402274757623699963e-01 2.990420460700999872e-01 2.314878106117199963e-01 8.578462898730999930e-02 4.868798702955000335e-02 8.003029227256999723e-02 1.473976206034000036e-02 +1.268742531537999929e-01 1.328139454126399943e-01 8.140807598829000180e-02 2.763689868152000018e-02 1.731228232383699994e-01 2.420089840889000088e-01 2.161350250244100102e-01 +9.938278794289000240e-02 7.846511155367000279e-02 6.911330670118000230e-02 2.327869273722000046e-02 1.896020621061300093e-01 2.338367998599999997e-01 3.063212335109700146e-01 +2.685093283653299800e-01 2.938401103019699923e-01 2.216149121522900112e-01 4.797189682722000081e-02 5.857796967029999663e-02 8.920834213495000553e-02 2.027741819619999913e-02 +2.823730111122100261e-01 2.521144747734099800e-01 1.290476322174100021e-01 3.423677012324000124e-02 1.035047471523300039e-01 1.426054537296299884e-01 5.611791089176999814e-02 +3.054198622703599986e-01 2.969586849212599855e-01 1.995563507080100052e-01 4.339747130871000197e-02 5.558362603188000267e-02 8.135708421468999807e-02 1.772691681980999995e-02 +1.473767757415800073e-01 1.068072319030800021e-01 7.048971205949999819e-02 2.726155333220999996e-02 1.858260780572900117e-01 2.264243215322500058e-01 2.358143329620399908e-01 +1.695784032344800074e-01 1.732371449470500036e-01 1.643373519182199927e-01 4.085468128323999776e-02 1.388124823570300037e-01 1.950062364339799903e-01 1.181737110018700049e-01 +4.906280934810600125e-01 2.255428284406700012e-01 1.683119684457800025e-01 6.514760851860000590e-02 2.170804701745999987e-02 2.574472501873999869e-02 2.916705096139999946e-03 +2.367496192455300075e-01 3.652719557285299956e-01 2.175539731979400093e-01 3.987009078263999834e-02 4.611567407845999778e-02 8.027941733599000540e-02 1.415925286710000008e-02 +2.877323627471899958e-01 3.511603474616999954e-01 2.590788304805800024e-01 3.489080071449000148e-02 2.388898469507999903e-02 3.897224366665000272e-02 4.276448395099999994e-03 +2.197721004486100083e-01 3.792785406112699764e-01 1.420214176177999887e-01 5.023232474922999929e-02 6.467191874981000066e-02 1.181254237890199954e-01 2.589827217161999942e-02 +1.301987282931999987e-02 3.350381553172999960e-02 3.872510418295999762e-02 2.222943678497999939e-02 1.369550526142100100e-01 2.562308609485600130e-01 4.993358552455899879e-01 +2.891813172030000077e-03 1.071836892515000070e-02 1.218137051909999949e-02 9.645913727580000471e-03 9.426325559616000049e-02 1.961604505777400087e-01 6.741388440132100035e-01 +6.125348210334800036e-01 1.731979995966000108e-01 1.296483576297799978e-01 2.720445953309999845e-02 2.716364711523000172e-02 2.589529566466999833e-02 4.355439916250000362e-03 +2.503722310066199830e-01 3.253673911094699944e-01 1.386688202619600074e-01 5.529647320508999930e-02 7.517708092927999353e-02 1.232161521911600000e-01 3.190184757113000147e-02 +5.156940817832900148e-01 2.257378697395300005e-01 1.105975583195699941e-01 6.001761928200999990e-02 3.749066218733999867e-02 4.304542392492000102e-02 7.416778244079999874e-03 +3.240279257297499771e-01 2.687619328498799809e-01 1.188436001539199954e-01 5.477688461541999759e-02 8.321795612573999745e-02 1.155320331454299937e-01 3.483968600631000279e-02 +3.196769356727600098e-01 2.477335780858999914e-01 1.993760764598800084e-01 8.608984947205000626e-02 5.493833869695999989e-02 7.578895241022000351e-02 1.639625616372000078e-02 +6.561365723610000644e-02 1.662646830081900007e-01 1.145999431610100067e-01 3.721153736115000166e-02 1.428474187850999888e-01 2.779404222965199955e-01 1.955223381519299863e-01 +3.319587409496300157e-01 2.399170845747000125e-01 1.992505043745000093e-01 5.013682693242999672e-02 6.721509248017999705e-02 8.762838691473000263e-02 2.389335073531000109e-02 +1.914445608854299929e-01 1.900839060545000125e-01 1.687390059232700135e-01 8.880358189343999509e-02 1.161529496312100063e-01 1.684086322784399958e-01 7.636734843254000538e-02 +3.783557796849999939e-03 7.706469856200000301e-03 9.199423715469999194e-03 8.836462162440000476e-03 1.001351028680800004e-01 1.670037657022500066e-01 7.033352255821200272e-01 +3.039283454418200137e-01 3.234153091907500110e-01 1.917036622762700038e-01 4.743274301290999889e-02 4.741714894771999894e-02 7.275584340096000191e-02 1.334693189709999957e-02 +3.974922001362000273e-02 8.172967284917999342e-02 4.644044861196999774e-02 2.850639261305000158e-02 1.621644943952600115e-01 2.887914478778800254e-01 3.526183068752299921e-01 +3.833692073821999835e-01 3.604083955287900043e-01 1.713447123765899915e-01 4.740323871373999798e-02 1.402373425662999974e-02 2.194486372173000063e-02 1.505825086500000003e-03 +7.112895604219999710e-03 2.570510841905999933e-02 3.566932305693999716e-02 1.328324619680999914e-02 1.185708492994300006e-01 2.448675930499999986e-01 5.547909736633299671e-01 +2.414423674345000104e-01 3.121486902236900174e-01 2.321801483631099894e-01 3.939211368560999876e-02 5.885414779185999673e-02 9.438171982765000689e-02 2.160080522298999869e-02 +7.268906384706000368e-02 1.047532483935399994e-01 1.015252992510800034e-01 6.255359202622999548e-02 1.626037508249300045e-01 2.594748735427899744e-01 2.364001572132100049e-01 +1.131275370716999934e-01 2.204144448041900073e-01 1.076154708862299969e-01 5.039859190583000081e-02 1.340727061033200052e-01 2.443689256906499963e-01 1.300023198127699953e-01 +2.398111298680000170e-02 5.267021059989999976e-02 4.145914316176999709e-02 2.251862175762999949e-02 1.530065089464200112e-01 2.734819352626799982e-01 4.328824877738999821e-01 +6.506609916687000617e-02 1.577043235302000024e-01 1.131711751222600065e-01 3.764656931161999842e-02 1.453261375427200019e-01 2.778204679489100215e-01 2.032652199268299986e-01 +4.494365453720099990e-01 3.370514512062099954e-01 1.439599096775099896e-01 3.426016122102999717e-02 1.392216142267000030e-02 1.992186345159999844e-02 1.447917660700000090e-03 +4.619443714618700070e-01 2.765592038631399796e-01 1.678580492734899898e-01 4.696521535516000323e-02 1.920938119292000049e-02 2.501921728252999924e-02 2.444551326330000017e-03 +5.990902185440100114e-01 2.160156518220900101e-01 1.345726698637000063e-01 3.452492132782999934e-02 7.234936580060000004e-03 8.119316771629999166e-03 4.422892234299999857e-04 +6.103495359420799682e-01 2.183980792760799872e-01 1.049239337444300008e-01 3.218865022062999959e-02 1.557582337408999935e-02 1.692229136824999897e-02 1.641690963880000024e-03 +1.691818684339500001e-01 3.218563497066500023e-01 1.740788817405700128e-01 5.457598343491999737e-02 8.272865414619000324e-02 1.532163769006699983e-01 4.436190798879000030e-02 +1.503991782665299870e-01 1.931113004684399947e-01 1.864896118640899936e-01 7.685554772614999752e-02 1.184155344963099959e-01 1.862994730472599947e-01 8.842936903237999524e-02 +4.217821657657599976e-01 3.275308609008800165e-01 1.751222163438800050e-01 2.478470094501999954e-02 2.001218684017999974e-02 2.794593572617000074e-02 2.821927657350000070e-03 +1.697496324777600096e-01 1.785267442464799903e-01 1.752519160509100060e-01 7.702650874852999541e-02 1.246837824583099941e-01 1.822090297937400127e-01 9.255237132311000536e-02 +8.550952374935000266e-02 1.633256226777999864e-01 2.093956768512700017e-01 4.675459116696999845e-02 1.291670650243799956e-01 2.260895669460299962e-01 1.397579461336100060e-01 +5.823471546173100144e-01 1.798345446586600005e-01 9.586494415997999508e-02 4.887953400612000260e-02 4.209041595459000334e-02 4.198081418872000314e-02 9.002611972390000758e-03 +2.809273898601499786e-01 2.243477106094400042e-01 1.348302960395799943e-01 5.644479393959000307e-02 1.055177152156799997e-01 1.416167169809300075e-01 5.631538480520000001e-02 +4.516619443893399866e-01 2.997806072235100205e-01 1.199335083365399984e-01 4.499159380794000296e-02 3.314327076076999806e-02 4.418576508759999855e-02 6.303337402640000336e-03 +5.236701369285600149e-01 2.857832014560700018e-01 1.515007615089400128e-01 2.248307876289000126e-02 7.044484373180000085e-03 9.070171974599999798e-03 4.481757350700000240e-04 +2.183186858892399995e-01 3.037110865116099956e-01 1.536300033330899872e-01 5.197647586464999858e-02 8.630412817000999992e-02 1.427996158599899867e-01 4.325999692081999859e-02 +4.673553407192200249e-01 3.057649135589600164e-01 1.523074060678500097e-01 3.255011141300000188e-02 1.708018779754999841e-02 2.290110662579999956e-02 2.040945459160000124e-03 +1.080399844795000043e-02 2.376647852360999971e-02 2.973420731723000129e-02 1.250108703971000018e-02 1.334233134985000069e-01 2.294806838035599872e-01 5.602902173996000545e-01 +4.793747887014999931e-02 9.540142863988999855e-02 9.395020455121999570e-02 2.468937076627999994e-02 1.610891520977000002e-01 2.768076956272100264e-01 3.001246750354800152e-01 +1.628010571002999896e-01 2.148472219705599984e-01 1.791935265064200089e-01 7.041062414646000189e-02 1.139492914080599967e-01 1.812126487493500027e-01 7.758563756943000211e-02 +1.599236577749300059e-01 2.602086365222899822e-01 1.825413405895200125e-01 7.773905247449999778e-02 9.587702155112999558e-02 1.672397553920700053e-01 5.647052451968000153e-02 +1.263546198605999989e-02 4.291440919041999980e-02 3.961387649178999687e-02 1.347304787486999951e-02 1.343782991170900110e-01 2.737592458725000011e-01 4.832256436347999728e-01 +1.308506447822000048e-02 4.125120118259999885e-02 3.840131685137999906e-02 1.338662207126999938e-02 1.359523236751599973e-01 2.694216370582599995e-01 4.885018169879900007e-01 +3.610520660877200028e-01 3.311330676078800272e-01 2.098031640052800129e-01 4.319783672690000187e-02 2.074486576021000034e-02 3.111455030739000011e-02 2.954429015519999951e-03 +6.224962323904000006e-02 1.493803709745399888e-01 1.066176891326899995e-01 2.937569655477999947e-02 1.501800268888499879e-01 2.821144759654999890e-01 2.200821191072500072e-01 +3.484431654214999868e-02 9.326977282762999311e-02 1.107336431741700045e-01 4.090756177902000329e-02 1.478848457336399969e-01 2.872831523418399868e-01 2.850767076015500168e-01 +4.340696930885299953e-01 3.241267800331100180e-01 1.605307459831200045e-01 3.979414328933000150e-02 1.639585196972000170e-02 2.321767620742000091e-02 1.865112921219999956e-03 +3.204388916492499906e-01 2.839165031909899883e-01 1.924351304769499893e-01 5.213935300708000264e-02 5.547178909183000245e-02 7.891384512186000455e-02 1.668447442353000049e-02 +1.908807456493399890e-01 1.767750084400200039e-01 1.647755503654499964e-01 8.970253914594999989e-02 1.227822899818400010e-01 1.725505441427200026e-01 8.253330737352000679e-02 +1.174804754555000032e-02 3.115613199769999911e-02 3.750484436749999817e-02 2.156461961567000124e-02 1.356452107429499954e-01 2.552265524864200108e-01 5.071545839309700154e-01 +6.063636392350000431e-03 1.565379090607000104e-02 2.590263634919999849e-02 9.252151474359999322e-03 1.158915013074899997e-01 2.073993235826500081e-01 6.198369860649100005e-01 +1.883806586265600047e-01 2.536943256854999884e-01 1.624182909727099888e-01 4.042764380574000171e-02 1.100224107503900012e-01 1.742843836545900083e-01 7.077230513096000042e-02 +1.772950217127999828e-02 2.254176884889999913e-02 2.500886656344000064e-02 1.200532447546999969e-02 1.503666192293199866e-01 2.123084664344800088e-01 5.600394606590299862e-01 +2.583023905754099903e-01 2.537962794303900149e-01 2.323666960000999870e-01 7.997719943523000363e-02 6.214347854256999787e-02 9.184426069260000214e-02 2.156968414783000040e-02 +3.907664120197300028e-01 2.759432196617099819e-01 2.075515985488899928e-01 7.074803858995000472e-02 2.180605754256000062e-02 3.014384955168000063e-02 3.040820127349999971e-03 +7.830066233872999548e-02 1.607089489698400042e-01 1.120451912283900037e-01 5.682168528438000243e-02 1.464581936597799949e-01 2.678732872009300103e-01 1.777920275926599958e-01 +2.443914562463800066e-01 1.848829984664900061e-01 1.452718824148200027e-01 8.028364926577000182e-02 1.187739819288299997e-01 1.558349430561100091e-01 7.056108117103999933e-02 +1.562973260879499948e-01 2.499002516269699936e-01 1.846627146005599962e-01 8.016531914473000453e-02 9.855862706899999603e-02 1.705294996499999993e-01 5.988625437021000142e-02 +1.746348477900000126e-02 5.120985209942000016e-02 4.381457716227000337e-02 2.230663597584000082e-02 1.437792181968700067e-01 2.838252186775199748e-01 4.376010000705700120e-01 +1.371194869279900030e-01 1.614022105932199913e-01 1.821020245552099903e-01 6.641691178083000691e-02 1.350056380033499981e-01 2.018417418003100039e-01 1.161119863390900064e-01 +2.614074200392000127e-02 6.523188203572999333e-02 4.412217065691999979e-02 2.214097604156000168e-02 1.540757566690399982e-01 2.888542413711500112e-01 3.994342386722600224e-01 +3.593569993972999671e-02 7.621236145496000647e-02 4.535060003400000206e-02 2.791782096028000079e-02 1.619798839092299880e-01 2.901424169540400277e-01 3.624612390995000100e-01 +1.113265901804000035e-01 1.265880167484300101e-01 1.768117249012000070e-01 4.720277339219999813e-02 1.524958163499799957e-01 2.191473990678799999e-01 1.664276719093299994e-01 +1.086821481585499988e-01 1.057657971978200051e-01 8.389124274254000646e-02 4.558615386486000037e-02 1.783841699361800037e-01 2.446047961711899921e-01 2.330857068300200008e-01 +2.525452896952999973e-02 3.855900466441999908e-02 3.386008366941999775e-02 2.112166211008999900e-02 1.606437265873000009e-01 2.493528425693500028e-01 4.712081551551799974e-01 +2.566517330705999841e-02 6.507070362568000144e-02 4.640355706214999848e-02 2.841830998658999990e-02 1.532621830701799970e-01 2.914042472839399878e-01 3.897758424282100065e-01 +2.449056655168500019e-01 2.478753924369800077e-01 1.427311152219800094e-01 4.549285396933999692e-02 1.062242165207900046e-01 1.535659879445999965e-01 5.920477956532999714e-02 +3.391660749912300266e-01 3.123463392257699867e-01 1.741974055767100127e-01 3.662397712469000338e-02 5.062380060553999667e-02 7.278033345937999499e-02 1.426208112389000006e-02 +2.549105882644699950e-01 3.066796362400099896e-01 2.235611677169800082e-01 4.659987986088000300e-02 5.776431038976000132e-02 9.081320464610999343e-02 1.967120356858000074e-02 +2.817751094698999967e-02 5.016770958899999938e-02 3.774490579963000331e-02 2.157032489776999906e-02 1.612878888845399872e-01 2.662116587162000059e-01 4.348400235176099748e-01 +2.680468605829999969e-03 1.179811917244999973e-02 1.095078047364999967e-02 4.413077142089999981e-03 9.118778258562000583e-02 1.966553926467899949e-01 6.823143959045400164e-01 +3.348052203655200176e-01 3.446863293647799975e-01 2.262814939022100014e-01 3.108010068536000078e-02 2.342369966209000010e-02 3.589011728764000125e-02 3.833040595049999957e-03 +1.160211395471999994e-02 3.154629841447000038e-02 3.789685666560999727e-02 2.161538787186000066e-02 1.351282447576500068e-01 2.566096186637900067e-01 5.056014657020599934e-01 +3.034557104110700010e-01 1.666550338268300013e-01 1.230738386511800037e-01 6.092224270104999728e-02 1.260250806808499990e-01 1.458451598882699873e-01 7.402294129132999667e-02 +2.072054706513999991e-02 3.582881763576999806e-02 3.278984129429000222e-02 1.647830754518999838e-02 1.537752449512500008e-01 2.470372766256299923e-01 4.933699667453799731e-01 +1.827186197042499904e-01 1.823652088642100100e-01 1.689455211162599890e-01 8.977901190518999819e-02 1.206332966685299962e-01 1.742865741252900003e-01 8.127174526453000147e-02 +2.968237921596000167e-02 3.601205348968999909e-02 3.107244335114999964e-02 2.067191153764999859e-02 1.673209071159399985e-01 2.388374656438800037e-01 4.764028489589700044e-01 +8.162803947926000614e-02 1.194513961672799968e-01 9.726761281489999800e-02 4.708532616496000078e-02 1.651022881269499920e-01 2.627370655536699906e-01 2.267282754182800009e-01 +3.734036386012999920e-01 2.914218306541400128e-01 2.277358919382100055e-01 3.562019020319000251e-02 2.811191231011999844e-02 3.869012370706000070e-02 5.016423296179999686e-03 +7.460896857079999701e-03 1.229348033666999990e-02 2.110583707689999908e-02 8.713732473549999635e-03 1.219676807522799972e-01 1.848858594894400020e-01 6.435725092887899512e-01 +7.765676826240000032e-03 1.940470561384999987e-02 2.897697687148999973e-02 1.229404378682000080e-02 1.236670762300499937e-01 2.216100394725800116e-01 5.862814784050000005e-01 +2.931732535362199799e-01 1.343210488557800009e-01 1.130170673131900005e-01 3.461804985999999973e-02 1.526061892509499862e-01 1.596947908401500082e-01 1.125695854425400044e-01 +8.397351205349000425e-02 1.687117815017699918e-01 1.075602024793600037e-01 4.433279857038999877e-02 1.484529227018399899e-01 2.675054967403400208e-01 1.794632673263500122e-01 +1.868302375078000066e-02 4.504634439945000290e-02 4.019130021333999769e-02 2.194714732467999835e-02 1.479128450155300090e-01 2.713726162910499728e-01 4.548467099666599900e-01 +4.576147496700300188e-01 3.523506224155399935e-01 1.290525645017600032e-01 2.923605032265000001e-02 1.249552145600000067e-02 1.807100325822999856e-02 1.179488142949999948e-03 +1.346860919147999970e-02 3.066500648855999961e-02 3.068594448267999986e-02 9.947856888179999746e-03 1.386733055114700019e-01 2.408852130174599926e-01 5.356740355491600436e-01 +6.727703660726999657e-02 7.444882392882999633e-02 7.898811995983000267e-02 3.054135851561999918e-02 1.800039261579499950e-01 2.512545287609099787e-01 3.174861967563599729e-01 +1.622187942266500038e-01 1.747608035802800108e-01 8.386021852493000250e-02 3.863080963492000058e-02 1.585882753133799894e-01 2.294417619705199918e-01 1.524993181228599948e-01 +2.943967878818499750e-01 2.366328239440899928e-01 2.164937108755100037e-01 4.477994516492000282e-02 7.598597556352999771e-02 1.012508273124699959e-01 3.045991994441000009e-02 +1.513141393661500134e-01 2.764229178428599942e-01 1.792325526475899988e-01 4.084457084536999988e-02 1.025089249014899950e-01 1.815372556447999997e-01 6.813962012528999856e-02 +2.729581110178999973e-02 6.076975911856000168e-02 9.042192250489999861e-02 2.566007710992999902e-02 1.529933214187599866e-01 2.702999711036699892e-01 3.725591301917999809e-01 +9.415808133780000436e-03 2.516289427875999934e-02 3.363348916172999997e-02 1.641262508928999914e-02 1.293509900569899951e-01 2.408275604247999968e-01 5.451966524124099989e-01 +2.399804741144200004e-01 3.077053129673000265e-01 1.430725455284100056e-01 5.862510204315000278e-02 8.173560351132999613e-02 1.323921680450400040e-01 3.648879006505000022e-02 +3.120692372322099728e-01 2.496467977762200086e-01 1.224647685885399961e-01 5.866196751595000036e-02 9.170783311128999360e-02 1.247090026736299984e-01 4.074039310217000137e-02 +2.606224119663200223e-01 2.866951227188099804e-01 2.256538569927200033e-01 4.932235926390000219e-02 6.187053397298000051e-02 9.388963133097000258e-02 2.194608747958999920e-02 +3.134894967079199790e-01 2.776728272437999911e-01 1.981226801872300047e-01 4.501976445316999836e-02 6.061234325170999915e-02 8.521947264670999556e-02 1.986343227327000069e-02 +2.200428396463000036e-02 3.174403309821999947e-02 3.166356310248000239e-02 2.078867517411999918e-02 1.574606299400299891e-01 2.383883446454999888e-01 4.979504644870800245e-01 +3.063275478780000047e-02 4.803834483027000224e-02 3.598267957568000025e-02 2.133750915526999928e-02 1.649969816207899898e-01 2.599751353263899945e-01 4.390366077423100144e-01 +3.002021908760100222e-01 3.114002943038899907e-01 1.959023028612099926e-01 4.104329273105000037e-02 5.403640493751000334e-02 8.083835989236999586e-02 1.657715067266999839e-02 +4.140019714832299802e-01 3.188687264919299880e-01 1.826116889715199976e-01 3.189953789114999966e-02 2.074490673840000132e-02 2.898865565658000076e-02 2.884523477409999936e-03 +8.620169758796999981e-02 1.001987084746400053e-01 7.927014678716999552e-02 2.309121191502000112e-02 1.789200752973600095e-01 2.541776895523100155e-01 2.781404554843899812e-01 +9.930990636349999387e-03 2.693007886409999954e-02 1.472533307970000024e-02 1.052736397833000000e-02 1.286860108375499911e-01 2.435205727815600019e-01 5.656796097755399932e-01 +5.425220355390000110e-03 1.319869887084000083e-02 1.139468792826000068e-02 9.511630982159999248e-03 1.117813885211900032e-01 2.002789974212600133e-01 6.484093666076700124e-01 +3.050737679004700276e-01 2.350104004144699943e-01 1.255602240562400107e-01 6.223830208181999751e-02 9.702385216950999702e-02 1.297624707222000129e-01 4.533098265529000165e-02 +1.670740097761199972e-01 1.936729252338399987e-01 1.772308051586199973e-01 8.974281698465000345e-02 1.162023320794099979e-01 1.774368584156000017e-01 7.864026725292000419e-02 +2.544427290558999924e-02 3.305067121982999817e-02 3.417299687862000029e-02 3.417300060391000038e-02 1.627476364374199902e-01 2.415769249200800106e-01 4.688344895839700044e-01 +3.559010624885600160e-01 3.071894049644500191e-01 1.656515151262299979e-01 5.144241079688000040e-02 4.470396041869999920e-02 6.409250944852999676e-02 1.101915445178999926e-02 +1.553524434566500023e-01 2.267530262470200120e-01 1.774509996175800131e-01 4.549585655332000211e-02 1.177090778946899979e-01 1.908047646284100063e-01 8.643384277820999329e-02 +8.973088115454000424e-02 1.153261661529499937e-01 8.618956059217000587e-02 2.900549583136999982e-02 1.731848567724199872e-01 2.583084702491800222e-01 2.482545524835599871e-01 +1.990842819213899939e-01 2.640908062458000027e-01 1.626152396202099892e-01 5.881677567958999708e-02 9.942091256380000686e-02 1.599764674902000028e-01 5.599550157785000010e-02 +2.528960704803500104e-01 2.985559105873100139e-01 2.270718216896099872e-01 4.814558103680999929e-02 5.959885939956000023e-02 9.292111545801000350e-02 2.081064321101000134e-02 +8.092321455478999892e-02 1.239445433020600063e-01 9.178387373686000550e-02 2.922995947300999903e-02 1.669874638318999960e-01 2.657053470611600021e-01 2.414255887270000123e-01 +3.986449539661000158e-02 4.913403466343999743e-02 3.359974175692000131e-02 2.090426720678999900e-02 1.744044721126599973e-01 2.522904574871099870e-01 4.298025369644200011e-01 +4.956887103619999832e-03 1.955529861152000004e-02 3.125177696347000017e-02 9.735654108229999451e-03 1.098049432039300000e-01 2.298629879951500088e-01 5.948324203491199835e-01 +2.526529431343100263e-01 1.950455158948899981e-01 1.392981261014900052e-01 5.102450773120000005e-02 1.238086372613900060e-01 1.609207391738899928e-01 7.724953442812000637e-02 +1.669203639030500119e-01 2.989845871925400078e-01 1.699140518903700103e-01 3.759926185011999711e-02 9.671483188868000569e-02 1.707716584205599963e-01 5.909523740410999731e-02 +1.204139646142999946e-02 3.739206492900999657e-02 3.725584968924999796e-02 1.328600384295000082e-02 1.341062635183299934e-01 2.637120187282600003e-01 5.022063851356499686e-01 +2.308071404696000056e-02 5.069639906286999703e-02 4.024169594048999932e-02 2.190235629678000118e-02 1.538616865873299877e-01 2.738284766674000115e-01 4.363886713981600107e-01 +2.430500686168700075e-01 2.560965716838800033e-01 1.464946419000600075e-01 6.731043756007999701e-02 9.576874226331999473e-02 1.433709859847999979e-01 4.790855199098999900e-02 +6.185455620289000145e-02 1.340942680835700007e-01 1.070145368575999983e-01 3.786887973546999853e-02 1.533447355031999915e-01 2.792822718620299738e-01 2.265407443046600078e-01 +1.916943937540100118e-01 1.560236215591400133e-01 1.491978764533999913e-01 3.979161009191999748e-02 1.482825279235799876e-01 1.908130794763600036e-01 1.241968870162999949e-01 +1.149443835020100002e-01 1.380776613950699949e-01 8.725494146347000102e-02 3.463770821691000007e-02 1.692204177379600105e-01 2.500362098216999951e-01 2.058286815881699983e-01 +3.650664985179900013e-01 3.269591927528400221e-01 2.092610448598899997e-01 4.351234436035000125e-02 2.099366113543999976e-02 3.120426461100999846e-02 3.003019839530000207e-03 +2.489582821726999892e-02 3.381964936851999948e-02 3.162934258579999658e-02 2.078318968415000106e-02 1.614244580268900109e-01 2.395552992820700056e-01 4.878922402858700269e-01 +3.164241611957600009e-01 2.991065979003900144e-01 1.159960255026799975e-01 4.962038621306000263e-02 7.691206037997999623e-02 1.120479628443700054e-01 2.989282272756000128e-02 +2.189159840345399899e-01 2.867786884307900186e-01 1.539166271686600029e-01 6.511893868446000377e-02 8.839040994643999893e-02 1.436318308114999942e-01 4.324750602244999825e-02 +3.331603854895000272e-02 7.645622640848000195e-02 4.646027088165000096e-02 2.808811515569999834e-02 1.591715365648299907e-01 2.932886481285100211e-01 3.632191717624699834e-01 +1.859821379184699863e-01 2.104727625846899985e-01 1.625735163688699914e-01 4.483760893344999887e-02 1.241633892059299943e-01 1.833973824977900013e-01 8.857320994138999370e-02 +3.863033652305600252e-01 3.506299853324900129e-01 1.346601694822300022e-01 3.761100396513999966e-02 3.392077609896999857e-02 5.008753389119999927e-02 6.787155754859999605e-03 +4.667383432387999659e-02 6.298984587193000306e-02 3.811815381050000229e-02 2.700185403228000033e-02 1.757228821516000072e-01 2.664937376975999861e-01 3.829996883869200008e-01 +1.971891224384300090e-01 2.819320857524900137e-01 1.636718809604600089e-01 6.888232380151999845e-02 9.034562110900999643e-02 1.512137800455100045e-01 4.676518216728999672e-02 +1.104826480150000040e-02 3.176479414104999704e-02 3.310391306877000228e-02 1.011426560581000014e-02 1.319159120321299894e-01 2.493081986904099878e-01 5.327446460723900268e-01 +3.861157894134499835e-01 2.942860424518600193e-01 1.523165702819800071e-01 5.871776118875000200e-02 4.158447682857999844e-02 5.760629475116999659e-02 9.373054839670000651e-03 +1.597617939115000135e-02 3.824167326092999669e-02 3.848904371261999829e-02 2.175438031554000062e-02 1.442960500717200001e-01 2.630027532577500216e-01 4.782399237155899874e-01 +2.321652770042400005e-01 2.365168333053599969e-01 1.513807326555300092e-01 7.241066545247999697e-02 1.022184789180800024e-01 1.505941748619100129e-01 5.471383780241000083e-02 +4.318309724330899879e-01 2.096072733402299937e-01 1.541756987571699933e-01 4.231974855065000207e-02 6.630203127860999357e-02 7.467816770077000121e-02 2.108611166477000060e-02 +4.001939296722399897e-01 3.108198046684300109e-01 1.985750198364300001e-01 2.947033941745999877e-02 2.399175800383000073e-02 3.317715600132999793e-02 3.771986113860000163e-03 +5.657234191894500164e-01 2.203648388385799906e-01 1.653597503900499921e-01 2.464558370411000163e-02 1.093877665698999961e-02 1.208443194628000018e-02 8.832178427800000276e-04 +1.073704194277999915e-02 3.554455190896999711e-02 3.480194881557999859e-02 1.002116035670000058e-02 1.316490173339799896e-01 2.614869475364700047e-01 5.157593488693199557e-01 +8.160800486803000686e-02 9.418810158967999557e-02 8.039467781782000388e-02 2.895219065248999871e-02 1.804350912570999999e-01 2.565443813800800110e-01 2.778775691986100083e-01 +4.431112408637999933e-01 2.109588980674700076e-01 1.461980193853399945e-01 5.805642902850999959e-02 5.872589722275999707e-02 6.685672700405000113e-02 1.609276980161999937e-02 +1.618963330984100057e-01 2.442891001701399945e-01 1.716541200876199880e-01 4.232591763139000041e-02 1.141916736960399970e-01 1.872687786817600064e-01 7.837407290936000692e-02 +2.034825235605199900e-01 2.256267517805100042e-01 1.532363891601599970e-01 4.107479751109999883e-02 1.206443682312999949e-01 1.768902838230100028e-01 7.904490083456000571e-02 +2.712966501712999953e-02 3.552743792534000106e-02 3.102677501737999971e-02 2.023498341441000090e-02 1.659238338470500063e-01 2.424945980310400095e-01 4.776627123355899895e-01 +1.072950754314999991e-02 3.202330693602999795e-02 3.458425402641000096e-02 1.275131013244000001e-02 1.330211609602000022e-01 2.560837566852600111e-01 5.208067297935500273e-01 +1.410772092640000079e-02 2.939200401306000035e-02 3.050237521528999934e-02 1.239653676747999936e-02 1.428014785051300028e-01 2.412419617176100040e-01 5.295579433441199857e-01 +1.411061584949500070e-01 2.603844106197399921e-01 1.820397973060600139e-01 4.219463467598000284e-02 1.081264540553100034e-01 1.909483373165100084e-01 7.520021498203000032e-02 +2.409513480961000126e-02 3.629165515304000333e-02 3.093545697629000030e-02 1.589689776300999904e-02 1.608509570360200092e-01 2.452057749033000056e-01 4.867241382598900268e-01 +3.532133996486699901e-01 2.244771867990499881e-01 1.864679753780399962e-01 4.875574260949999683e-02 7.241835445166000529e-02 8.933015912771000155e-02 2.533717453479999993e-02 +1.338793188333499973e-01 1.780831664800600067e-01 1.869174689054499960e-01 7.791161537169999374e-02 1.259045153856299948e-01 1.985065639018999961e-01 9.879735112189999557e-02 +2.262909710406999994e-02 6.426095962524000504e-02 4.470105096698000213e-02 2.173555083572999841e-02 1.507858633995100006e-01 2.949522435665100084e-01 4.009352624416400168e-01 +3.545359969139100231e-01 2.602614164352399784e-01 1.753481477499000130e-01 7.335431128739999806e-02 5.222813040017999786e-02 7.046570628881000664e-02 1.380630023777000039e-02 +5.767974257469000304e-02 1.106118857860600019e-01 9.615955501794999638e-02 2.987402118742000026e-02 1.627566218376199914e-01 2.786530256271400052e-01 2.642651200294500180e-01 +8.160651661459999290e-03 2.711878716945999995e-02 3.225475549698000183e-02 9.773349389429999284e-03 1.246293187141400000e-01 2.463304400443999953e-01 5.517327189445500046e-01 +5.151972174643999758e-02 8.147253096103999892e-02 9.490463137627000445e-02 4.939234256743999657e-02 1.666531711816799932e-01 2.686177492141699763e-01 2.874398529529599844e-01 +8.879603445530000194e-02 1.617912203073499922e-01 2.042904794216200137e-01 5.568888783454999797e-02 1.311932057142299879e-01 2.262244075536699872e-01 1.320157647132899903e-01 +1.275288760662099952e-01 1.341488063335400105e-01 8.704568445683000255e-02 5.292973667382999681e-02 1.697673052549399930e-01 2.425283342599900138e-01 1.860512644052499942e-01 +9.256704896688000561e-02 1.630114316940300123e-01 1.009304448962199952e-01 4.293645173310999680e-02 1.546817570924799989e-01 2.647404670715299835e-01 1.811324059963199951e-01 +6.085157021879999961e-02 7.706055790186000509e-02 7.776656746863999659e-02 2.356069348752000067e-02 1.782922893762599881e-01 2.582706212997399886e-01 3.241977095603900128e-01 +2.410441786050800117e-01 1.570429503917699920e-01 1.415808051824599956e-01 1.026366204023400064e-01 1.255770772695500026e-01 1.561936140060400102e-01 7.592473924159999499e-02 +6.501526385545999820e-02 9.084993600844999684e-02 8.542852848767999718e-02 2.980968169868000034e-02 1.742736697196999862e-01 2.649666070938099804e-01 2.896563112735699996e-01 +3.564319014549299780e-01 3.395189642906200067e-01 2.102073580026599942e-01 3.516936674714000316e-02 2.214925549923999967e-02 3.324173390864999800e-02 3.281442215669999954e-03 +3.559889197349500045e-01 2.399224340915699916e-01 2.594068944454199777e-01 5.591417476535000264e-02 3.547341376542999941e-02 4.604856669902999966e-02 7.245613727720000286e-03 +3.738949894905099769e-01 3.312899470329300211e-01 1.450753957033200092e-01 5.110185965895999716e-02 3.692998364568000208e-02 5.413999035954000089e-02 7.567853666840000139e-03 +1.062961369752900009e-01 1.477126926183700006e-01 9.628032147883999747e-02 5.390967801213000093e-02 1.607516258954999888e-01 2.543230056762699753e-01 1.807265281677200019e-01 +3.636085689067800053e-01 1.613181680440899934e-01 1.054774448275599963e-01 6.513568758964999317e-02 1.177247986197500068e-01 1.272236704826399945e-01 5.951164662838000219e-02 +4.012406244873999855e-02 5.485156178474000221e-02 3.646489977837000240e-02 2.638273686170999888e-02 1.746977716684300075e-01 2.643062472343399860e-01 4.031727313995400186e-01 +3.248086273670199864e-01 3.458198606967899935e-01 2.293776571750600068e-01 3.780530020595000013e-02 2.289719134569000170e-02 3.571719303727000083e-02 3.574173199009999819e-03 +2.407375425100299893e-01 2.078772485256200064e-01 2.479131668806099920e-01 6.512925028801000438e-02 8.469024300574999609e-02 1.155447512865099974e-01 3.810779377818000052e-02 +2.542527206241999849e-02 6.579574197531000423e-02 4.580371454358000277e-02 2.769485674798000119e-02 1.543457210063899909e-01 2.947097122669199987e-01 3.862249851226799979e-01 +9.567271918060000005e-03 3.204325586556999728e-02 3.391851484775999792e-02 9.938091970980000855e-03 1.286713331937799909e-01 2.560189366340600015e-01 5.298426151275600349e-01 +2.192188240587999992e-02 6.295944750309000193e-02 9.578356146812000427e-02 2.532458491622999880e-02 1.458324193954499970e-01 2.815425097942400035e-01 3.666355907916999946e-01 +1.022783592343299991e-01 1.488825678825400067e-01 1.914867311716099973e-01 5.611908435822000191e-02 1.397555768489799899e-01 2.217935472726799973e-01 1.396841257810599868e-01 +1.341954320669200007e-01 2.057419121265399997e-01 1.921090632677099896e-01 8.990438282490000044e-02 1.117412969469999962e-01 1.881761103868500040e-01 7.813180983067000152e-02 +8.856604807080000613e-03 1.499896869063000078e-02 2.223999798298000041e-02 8.754506707189999709e-03 1.287099868059199959e-01 1.972173452377299907e-01 6.192225813865700479e-01 +4.099870920181299949e-01 3.008839488029499964e-01 1.875408738851500057e-01 4.969285801052999996e-02 2.057862654328000002e-02 2.862417139113000025e-02 2.692401409149999987e-03 +7.781352847810000216e-03 2.552012167871000117e-02 3.501999378204000146e-02 1.618000119925000133e-02 1.246885359287299988e-01 2.490397095680199901e-01 5.417702794074999995e-01 +6.104016304016099959e-01 2.099933773279200055e-01 1.047022789716700042e-01 3.967523574829000255e-02 1.621206104754999849e-02 1.737220026553000160e-02 1.643227529709999964e-03 +3.134559988975499922e-01 2.526920437812800180e-01 2.006827741861300085e-01 3.992373123765000087e-02 7.155754417180999749e-02 9.550332278013000387e-02 2.618456445634000096e-02 +4.798192381858800148e-01 2.938425838947300028e-01 1.425494998693500048e-01 4.508782178164000287e-02 1.592770405113999935e-02 2.110983245074999834e-02 1.663329545409999999e-03 +3.415080904960600128e-01 3.233983218669900239e-01 1.662736088037500004e-01 4.957105591892999735e-02 4.384160041809000152e-02 6.486841291188999437e-02 1.053890399634999954e-02 +1.252122689038999946e-02 4.444545134901999733e-02 3.962765634059999681e-02 1.317480020225000013e-02 1.351702064275699944e-01 2.790497839450800099e-01 4.760108888149299777e-01 +1.185039207339299988e-01 1.628548502922100016e-01 1.894114166498200025e-01 6.646845489739999779e-02 1.337532103061699895e-01 2.105998992919899948e-01 1.184082552790600013e-01 +4.477089345455200209e-01 2.873131036758400092e-01 1.698410362005199903e-01 4.619470983743999976e-02 1.996347121894000154e-02 2.647959440947000170e-02 2.499136840920000192e-03 +8.294816315174000088e-02 1.483675688505199930e-01 1.019673198461499980e-01 4.439859092236000254e-02 1.568645536899599957e-01 2.691040039062500000e-01 1.963498145341900092e-01 +2.123423516750299889e-01 2.357093840837500009e-01 1.528721451759300076e-01 4.891747981309999688e-02 1.134272888302799986e-01 1.682941019535099947e-01 6.843724846840000542e-02 +4.145812615752000191e-02 6.777749210595999940e-02 8.257166296244000669e-02 2.436653524636999898e-02 1.678287237882599980e-01 2.653788924217200251e-01 3.506185710430099745e-01 +8.054334670304999499e-02 1.621721684932700136e-01 1.057369336485900063e-01 4.380800575017999854e-02 1.512690782547000123e-01 2.714938819408400095e-01 1.849765777587900062e-01 +1.299659460783000042e-01 2.094505876302699965e-01 1.947729140520099989e-01 8.969584107398999306e-02 1.101149022579200054e-01 1.888894140720399906e-01 7.711038738488999733e-02 +3.811305016278999924e-02 5.239903926849000249e-02 3.618363663554000076e-02 2.640198171139000044e-02 1.735898107290299863e-01 2.628534138202699988e-01 4.104590713977799843e-01 +1.671919524669600032e-01 1.518464386463199978e-01 1.550456285476700113e-01 4.071309044956999967e-02 1.511773765087099930e-01 2.012756764888800065e-01 1.327498406171800094e-01 +2.941028475761400252e-01 3.277557492256200078e-01 1.917586773633999930e-01 4.661312699318000130e-02 4.943504184484000252e-02 7.655733823775999480e-02 1.377719920129000068e-02 +1.943001002073299899e-01 2.639165222644799802e-01 1.620655804872500050e-01 5.815018713474000289e-02 1.011706739664099963e-01 1.635609567165400013e-01 5.683597922324999663e-02 +3.053261339664499752e-01 1.690666824579200034e-01 1.184527054429100057e-01 4.769320040940999705e-02 1.309556514024700080e-01 1.501476019620900104e-01 7.835800200700999973e-02 +3.014071285724599925e-01 2.691498398780799994e-01 2.043867558240899940e-01 4.710156470536999707e-02 6.490754336119000656e-02 9.097588062285999477e-02 2.207129821180999971e-02 +3.176772966979999994e-03 1.150061562656999950e-02 1.065947767347000079e-02 5.504682660100000159e-03 9.717253595590999438e-02 1.962216943502400057e-01 6.757642030715900194e-01 +1.338255554437600137e-01 2.283009588718399874e-01 1.855321675539000070e-01 4.584252461790999655e-02 1.172539368271799942e-01 2.002040445804600111e-01 8.904080837965000494e-02 +1.646347790956499968e-01 2.499712705612200103e-01 1.735845655202900017e-01 5.148794502020000163e-02 1.089623644947999986e-01 1.809652149677299926e-01 7.039385288954000397e-02 +7.590216398238999740e-02 1.018404215574300054e-01 9.193623811006999824e-02 4.695227369666000322e-02 1.716717183589900053e-01 2.626734077930499844e-01 2.490237802267100120e-01 +4.121186956762999676e-02 9.130468219519000117e-02 9.451697021723000358e-02 2.436967194079999940e-02 1.589025408029600128e-01 2.824078202247600200e-01 3.072864413261400252e-01 +8.316252380609999439e-02 8.217117935418999375e-02 7.210405170917999484e-02 2.267168089747000070e-02 1.867966949939700028e-01 2.481563389301300049e-01 3.049375116825099874e-01 +3.678629100322700074e-01 1.701631993055300052e-01 1.049283146858200066e-01 6.299195438622999521e-02 1.136037111282300061e-01 1.249031946063000054e-01 5.554669350385999654e-02 +7.624674588442000023e-02 1.617426276206999913e-01 1.002168729901300043e-01 2.758491411804999890e-02 1.539186686277400073e-01 2.764883339405099782e-01 2.038018554449100017e-01 +2.167564481496800088e-01 1.982564181089400135e-01 2.614623904228199902e-01 5.736515671015000178e-02 9.231567382812999600e-02 1.269457340240499887e-01 4.689818248152999997e-02 +7.376205176114999928e-02 1.220847889781000034e-01 9.221877157687999316e-02 2.883994206785999923e-02 1.666697412729299943e-01 2.715749442577399808e-01 2.448497563600499916e-01 +7.984746247530000174e-02 1.537831127643599916e-01 1.044205501675599945e-01 4.432366415858000203e-02 1.538982540368999952e-01 2.713860273361199948e-01 1.923409402370500065e-01 +3.299098908901200167e-01 1.937529146671299884e-01 1.149197444319700057e-01 5.256220698357000343e-02 1.142591759562500003e-01 1.359391808509800015e-01 5.865689367055999803e-02 +9.887541830540000354e-02 1.825195252895399911e-01 1.047229319810900061e-01 5.203135311603999946e-02 1.468739509582500102e-01 2.589637041091900072e-01 1.560131013393399879e-01 +8.202055096626000019e-02 9.708270430564999720e-02 9.381295740603999567e-02 7.405806332827000182e-02 1.703503727912900056e-01 2.533815503120400159e-01 2.292937934398699973e-01 +6.172809377313000223e-02 1.347604840993900099e-01 1.012020185589800059e-01 2.907633595168999940e-02 1.565216481685600125e-01 2.823766171932199920e-01 2.343347966670999982e-01 +2.189746499062000112e-02 2.755318768322000123e-02 2.724493481219000118e-02 1.537750195711999959e-02 1.594888269901300060e-01 2.265049517154699987e-01 5.219331383705100302e-01 +9.810976684092999334e-02 1.287249177694299862e-01 9.483916312456000530e-02 5.583016201853999855e-02 1.659451574087099923e-01 2.560410797595999988e-01 2.005097717046699923e-01 +1.074313931166999934e-02 2.299827709794000086e-02 2.862375043333000024e-02 1.211409550159999945e-02 1.348943710327099865e-01 2.288127541542100130e-01 5.618135929107700433e-01 +3.296284005045999749e-02 8.091685920954000411e-02 4.685395956038999887e-02 2.739712595939999829e-02 1.590650975704200054e-01 2.996810972690600039e-01 3.531230092048600055e-01 +1.044034957885699999e-01 1.181585863232599981e-01 8.385027945042000663e-02 3.495140373707000120e-02 1.764637529849999997e-01 2.531074583530399935e-01 2.290650159120599938e-01 +2.332762628793700055e-01 2.293222695589099969e-01 2.492648959159899924e-01 5.081512406468000065e-02 8.258640766144000056e-02 1.173473596572899985e-01 3.738768771290999771e-02 +1.169458031654000037e-02 2.618092671036999913e-02 3.336467593907999768e-02 2.049352973699999914e-02 1.382702589035000040e-01 2.430385351181000020e-01 5.269575119018600207e-01 +4.344080761074999714e-02 1.278577595949199897e-01 1.105091795325300053e-01 3.013695962727000119e-02 1.470421552658099928e-01 2.946729063987699737e-01 2.463402301073099876e-01 +5.456203967333000254e-02 7.508012652397000330e-02 7.956800609826999993e-02 2.382226474583000117e-02 1.751559823751399902e-01 2.611673176288599740e-01 3.306442797183999915e-01 +4.215407967567399994e-01 2.769517302513099799e-01 1.916001737117800086e-01 5.397279933094999843e-02 2.265017479657999849e-02 3.014916926622000087e-02 3.135146806019999989e-03 +2.037489265203500099e-01 1.553613841533700024e-01 1.536250859498999866e-01 9.006252884865000030e-02 1.330466717481600114e-01 1.730629950761800040e-01 9.109240770340000515e-02 +8.686554618179999354e-03 2.276008762419000006e-02 3.181331232190000302e-02 1.580239087343000143e-02 1.287320405244800070e-01 2.366357296705199897e-01 5.555698871612499978e-01 +9.033378213643999954e-02 1.670878082513800045e-01 1.025026515126200022e-01 4.285992309450999821e-02 1.526590287685400116e-01 2.661119699478100009e-01 1.784448325633999910e-01 +5.163243412971499913e-01 2.813263833522799962e-01 1.294778287410700002e-01 3.459316119552000024e-02 1.618630252778999884e-02 2.038280852138999941e-02 1.709198695610000037e-03 +1.453463360667000062e-02 3.229083493352000178e-02 3.706070408224999835e-02 2.682204172014999999e-02 1.444357931613899915e-01 2.565701603889499749e-01 4.882858395576499810e-01 +4.204420745372799972e-01 2.859173417091400160e-01 1.367136538028700110e-01 5.338620394468000102e-02 4.078919813036999825e-02 5.410790070891000059e-02 8.643609471620000012e-03 +4.044740498065900192e-01 2.942802011966699771e-01 2.032049000263199956e-01 3.139721229672000347e-02 2.660456299781999850e-02 3.568294271827000125e-02 4.356126300990000380e-03 +2.277718111872999857e-02 7.197786122560999311e-02 4.936874285339999668e-02 2.799892611802000039e-02 1.484830379486100083e-01 3.052351772785200090e-01 3.741590678691900096e-01 +1.417487952858000055e-02 3.310255333781000203e-02 3.783709183335000337e-02 2.694677002727999954e-02 1.433278620243099988e-01 2.593418955802900272e-01 4.852689504623399763e-01 +1.231515873223999920e-02 1.315348315983999941e-02 1.867984049021999965e-02 8.348844014110000725e-03 1.392267197370500031e-01 1.803770065307599979e-01 6.278989315033000063e-01 +3.014071285724599925e-01 2.691498398780799994e-01 2.043867558240899940e-01 4.710156470536999707e-02 6.490754336119000656e-02 9.097588062285999477e-02 2.207129821180999971e-02 +1.113721653819099988e-01 1.279704272747000104e-01 9.032074362040000415e-02 5.470070615410999731e-02 1.693541705608400116e-01 2.492282837629299919e-01 1.970534920692399994e-01 +1.212766394019099969e-01 2.624174952507000169e-01 1.931786984205199897e-01 4.327823966741999734e-02 1.056059673428499934e-01 1.973901987075800113e-01 7.685274630784999506e-02 +1.155959889292700049e-01 2.546327710151700119e-01 2.002546042203899868e-01 5.491338670253999993e-02 1.035920307040199967e-01 1.964301913976700120e-01 7.458104193211000099e-02 +6.880992650985999493e-02 6.573620438575999980e-02 7.245337963103999634e-02 2.957564219831999852e-02 1.864075511693999987e-01 2.452234625816299973e-01 3.317938446998600077e-01 +9.246465051499999513e-04 5.281520076100000051e-03 8.661097846929999636e-03 3.758268896489999795e-03 6.906955689192000036e-02 1.602551639079999868e-01 7.520497441291800200e-01 +1.062544807791700047e-01 1.184579730033900047e-01 1.730240136385000072e-01 4.701870307325999726e-02 1.570121198892600045e-01 2.227762043476100018e-01 1.754564940929400074e-01 +1.902531087398499909e-01 2.388344705104800125e-01 2.762190103530899887e-01 6.431480497121999651e-02 7.623864710331000605e-02 1.194463074207299941e-01 3.469364717602999720e-02 +2.318511158227899993e-01 3.389095962047600219e-01 2.248590439558000031e-01 5.210488662123999998e-02 5.055416002870000147e-02 8.613584190607000146e-02 1.558536477387000019e-02 +2.827003970742000133e-02 6.898361444473000148e-02 4.544501379132000196e-02 2.755716815591000013e-02 1.572146266698800088e-01 2.943106889724699804e-01 3.782188594341299726e-01 +1.585324406623800086e-01 1.723024249076799963e-01 1.727818250656099897e-01 9.138368815184000349e-02 1.272060275077800118e-01 1.876055896282199931e-01 9.018800407648000506e-02 +2.957025915384000128e-02 5.974495410919000021e-02 8.791143447160999769e-02 3.095157071948000105e-02 1.593204438686399993e-01 2.722285687923399755e-01 3.602727651596099867e-01 +3.199087083339700044e-01 2.863041758537300252e-01 1.878217458725000011e-01 4.158584401010999992e-02 6.058561429381000007e-02 8.504560589790000069e-02 1.874833181500000154e-02 +5.237028934059999828e-03 1.236377563328000008e-02 2.246472053229999974e-02 8.448984473939999754e-03 1.144765987992300005e-01 1.960542201995799927e-01 6.409546732902500210e-01 +1.688785403966900078e-01 8.020111173390999382e-02 6.413629651070000548e-02 6.331989914178999534e-02 1.965139657258999917e-01 2.094832062721299903e-01 2.174669951200499940e-01 +1.969693005085000059e-01 2.885871231555899863e-01 2.582700252533000063e-01 4.432268440723000080e-02 6.919499486685000422e-02 1.140848100185399977e-01 2.857105992733999927e-02 +2.022500336170199864e-01 3.008669614791900093e-01 2.517656385898600080e-01 4.224225506186000262e-02 6.634298712014999322e-02 1.102352663874599931e-01 2.629687264562000082e-02 +7.008411735295999589e-02 1.688908189535099913e-01 2.175975590944299876e-01 5.482099950313999714e-02 1.239673793315899941e-01 2.357530593872100011e-01 1.288860589265800050e-01 +2.784583270549800260e-01 2.873701155185700018e-01 2.101534307002999868e-01 4.589579626918000033e-02 6.341111660003999340e-02 9.346088021994000683e-02 2.125032804906000147e-02 +7.218999788170000001e-03 1.420311722903999999e-02 2.357705496252000127e-02 1.105359662324000014e-02 1.248083263635599988e-01 2.025118023157100045e-01 6.166270971298200010e-01 +1.167667284608000025e-02 2.780370041727999939e-02 3.054347448051000086e-02 1.210580300539999994e-02 1.382733583450299897e-01 2.438854575157199944e-01 5.357115268707299816e-01 +4.346881527449999831e-03 1.529605779796999916e-02 2.689702808856999847e-02 8.893937803799999847e-03 1.091776415705699999e-01 2.167101353406900022e-01 6.186783313751199609e-01 +3.231799900531799885e-01 2.480293363332700118e-01 2.770147621631600110e-01 5.791398882866000131e-02 3.659817948936999743e-02 4.957493022084000223e-02 7.688790094110000209e-03 +2.757668495178199897e-01 2.398391366004899994e-01 2.175983786582899870e-01 9.366894513368999309e-02 6.322354823350999353e-02 8.954031020402999919e-02 2.036282233894000024e-02 +1.509559992700999949e-02 3.780100867152000332e-02 3.727990761398999875e-02 2.066733315587000047e-02 1.456304043531400083e-01 2.678592205047600205e-01 4.756665229797399919e-01 +2.126226127147700096e-01 2.555029988288899934e-01 1.537133157253300075e-01 6.879135966301000438e-02 1.006154194474200014e-01 1.565359532833099920e-01 5.221835896372999802e-02 +3.031329214572899833e-01 2.403534352779400085e-01 2.974600493907900156e-01 5.235597863792999795e-02 4.119948297738999787e-02 5.573330819607000275e-02 9.764817543329999336e-03 +1.073665991425500066e-01 1.980383545160299963e-01 1.951049864292100089e-01 4.957320168614000322e-02 1.250153928995099972e-01 2.174093723297099989e-01 1.074920892715500037e-01 +4.964048787950999658e-02 1.110208407044400020e-01 9.877905994654000155e-02 2.947906404733999924e-02 1.592055708169899941e-01 2.870173752307900172e-01 2.648575901985200098e-01 +1.520784646272700102e-01 2.063705772161499863e-01 1.779657751321800097e-01 6.994382292032000348e-02 1.198326572775799959e-01 1.907644569873800100e-01 8.304424583911999835e-02 +1.469991058111199955e-01 1.809903085231799880e-01 1.796456128358799864e-01 9.126709401608000538e-02 1.231843456625899974e-01 1.902481764554999899e-01 8.766536414622999596e-02 +1.711228117346999880e-02 2.619430795311999960e-02 2.645420283078999887e-02 1.170749124139999937e-02 1.518442928791000068e-01 2.283488363027600110e-01 5.383386015891999943e-01 +2.741383612155899874e-01 3.310558199882500108e-01 2.759460508823399771e-01 3.849973902105999907e-02 2.879747189581000066e-02 4.604858905077000020e-02 5.513977725059999654e-03 +9.911899454890000724e-03 1.625189743936000103e-02 2.464710548520000072e-02 1.440424658357999932e-02 1.355371028184899906e-01 2.083590030670199877e-01 5.908887386322000390e-01 +3.237812221050300199e-01 3.038673400878900144e-01 2.965505123138399979e-01 4.400886967777999786e-02 1.214250642805999973e-02 1.847583428025000030e-02 1.173739554359999994e-03 +1.382541656494100102e-01 2.497103065252299914e-01 1.805085092783000056e-01 4.248159006237999663e-02 1.127624884247799969e-01 1.965603232383699994e-01 7.972262054681999999e-02 +1.882851123810000069e-03 5.428776144979999968e-03 7.963799871499999475e-03 6.020041182639999759e-03 8.552248030900999609e-02 1.574319899082199936e-01 7.357500791549700381e-01 +5.637409910559999793e-02 1.055242866277699976e-01 9.312257170677000484e-02 2.925399132073000161e-02 1.656578034162499991e-01 2.798371016979199766e-01 2.702301442623100125e-01 +3.454369008541099961e-01 2.188188284635499969e-01 2.758446633815799798e-01 5.219798162579999956e-02 4.342052340507999986e-02 5.405921116470999849e-02 1.022188086063000045e-02 +2.784834504127500221e-01 2.735363841056799861e-01 2.125426083803199917e-01 3.960602730512999964e-02 7.003966718911999734e-02 1.001716628670699938e-01 2.562019228934999879e-02 +1.485614571720000020e-02 4.074158892034999979e-02 3.529150411486999678e-02 1.257953327148999927e-02 1.434655487537400131e-01 2.685733437538099788e-01 4.844923317432400234e-01 +1.827583760023100135e-01 2.202797681093200122e-01 1.587437540292699900e-01 4.215442389250000088e-02 1.243323981761900038e-01 1.868448555469499894e-01 8.488643169402999844e-02 +8.988374471663999887e-02 1.202319636940999970e-01 9.051693975925000080e-02 4.406582191585999703e-02 1.714614778757100055e-01 2.625381052494000222e-01 2.213019281625699941e-01 +1.943773180246400056e-01 3.043719530105600257e-01 2.560388147830999772e-01 4.236155375838000087e-02 6.559995561838000144e-02 1.110530868172600050e-01 2.619732916354999830e-02 +4.573816061019900236e-01 2.452312558889399863e-01 1.887228339910499986e-01 3.977378457784999655e-02 2.914773486555000126e-02 3.503357991575999780e-02 4.709205590190000332e-03 +3.741277754306999992e-02 3.866966813803000141e-02 3.030424751341000145e-02 2.491813525557999912e-02 1.792447715997700086e-01 2.424431741237600135e-01 4.470072388649000139e-01 +5.897588729858399548e-01 1.921313107013699895e-01 1.306796520948400042e-01 3.094939142466000132e-02 2.628657035529999991e-02 2.642001770437000033e-02 3.774180542680000139e-03 +1.403830014169000009e-02 1.992753148078999989e-02 2.388209477066999958e-02 1.131879538297999969e-02 1.459636837243999952e-01 2.123280763626100021e-01 5.725415349006699461e-01 +5.774650722742000197e-02 6.473685801028999931e-02 8.098588883877000377e-02 4.763424023986000122e-02 1.800028234720200127e-01 2.540901303291300262e-01 3.148035407066300251e-01 +5.193930864334000280e-02 1.166880652308499994e-01 9.532950073481000208e-02 2.296840958297000079e-02 1.599780917167699934e-01 2.868163883686100091e-01 2.662802338600199770e-01 +4.922345280647000276e-02 1.028104126453399936e-01 9.609172493218999522e-02 2.966147661208999933e-02 1.618758887052499928e-01 2.841416597366300256e-01 2.761953771114299960e-01 +8.023361675440000493e-03 2.000128477812000011e-02 2.660737559199000124e-02 9.055855683979999182e-03 1.266863048076599940e-01 2.235939800739299987e-01 5.860318541526799985e-01 +3.382004797458999790e-02 8.192765712737999639e-02 9.360035508870999388e-02 2.411895431578000085e-02 1.567695587873499941e-01 2.858180999755899898e-01 3.239453136920900089e-01 +4.149299860001000317e-02 7.956124097109000537e-02 8.701363205909999621e-02 2.377431467175000063e-02 1.652566641569100103e-01 2.769078016281100174e-01 3.259933292865799803e-01 +2.253180369735000022e-02 5.328047275542999867e-02 8.598947525024000504e-02 2.448311448097000020e-02 1.521623730659500129e-01 2.719047665595999974e-01 3.896480202674900140e-01 +1.741929650306699995e-01 2.368934750556900004e-01 2.841692268848399761e-01 6.521744281053999670e-02 7.796182483435000476e-02 1.251290887594199985e-01 3.643598780035999657e-02 +1.147107407451000011e-02 2.222595550120000027e-02 2.992480248212999946e-02 1.947789266706000111e-02 1.400953829288499874e-01 2.321670204401000137e-01 5.446378588676500376e-01 +1.126805320381999917e-02 3.332998603581999869e-02 3.416417911649000105e-02 1.245294418185999979e-02 1.358380466699599942e-01 2.600298225879700276e-01 5.129169821739200108e-01 +3.295107558370000134e-02 2.840499021113000039e-02 2.399674803019000158e-02 1.454592682420999955e-02 1.763318032026300053e-01 2.181937992572799967e-01 5.055756568908700288e-01 +6.168788671494000037e-02 1.374866068363199967e-01 1.074002981185900041e-01 4.529239237308999716e-02 1.535282284021400045e-01 2.831902801990500151e-01 2.114142924547199875e-01 +5.844229087233999975e-02 1.015885546803499961e-01 9.068280458449999581e-02 2.921823970973000048e-02 1.683791279792800077e-01 2.767051458358800176e-01 2.749838531017300136e-01 +5.671088397502999784e-02 1.535351872444200017e-01 1.140783727168999950e-01 4.477160423993999799e-02 1.453653723001500087e-01 2.884473502636000219e-01 1.970912367105500107e-01 +3.103690743446400058e-01 3.088406324386600010e-01 2.581727802753400192e-01 4.619344323874000069e-02 2.848343923688000101e-02 4.284327477217000218e-02 5.097373854369999756e-03 +1.995589435100600106e-01 2.121950685977899986e-01 1.564302295446400037e-01 7.668015360832000638e-02 1.162960007786800060e-01 1.711535304784800038e-01 6.768608093262000469e-02 +4.074200093746199736e-01 2.663030326366400136e-01 2.122887969016999943e-01 3.519128635525999721e-02 3.216544166206999900e-02 4.095050320028999907e-02 5.680931732059999600e-03 +2.962872982025099855e-01 2.913672029972099731e-01 1.959268152713800060e-01 6.203693896531999735e-02 5.595740303397000320e-02 8.254840224980999897e-02 1.587593741715000173e-02 +4.235332608222999728e-01 2.870559692382799732e-01 1.869311928749100016e-01 4.244091361761000158e-02 2.435632236301999917e-02 3.226794302463999869e-02 3.414404345680000039e-03 +1.237080432475000033e-02 1.135315001011000073e-02 1.635839231312000153e-02 7.679557427760000214e-03 1.424407064914700038e-01 1.730523705482500119e-01 6.367450356483500551e-01 +1.758419908580000079e-03 8.329322561620000620e-03 1.102335471660000066e-02 8.440384641290000697e-03 8.689922094344999792e-02 1.937241256237000053e-01 6.898251771926899867e-01 +2.327714860439299982e-01 3.093163669109300074e-01 2.284482717514000061e-01 4.635512083769000036e-02 6.199926882982000065e-02 9.982690215110999465e-02 2.128259837627000106e-02 +3.135150671005200174e-01 1.746128350496299886e-01 1.161155998706800002e-01 6.724809110165000381e-02 1.224767118692400014e-01 1.426398456096600043e-01 6.339184939861000623e-02 +1.196743734180999962e-02 2.574791572987999988e-02 2.843147516250999970e-02 1.163162756710999987e-02 1.410913914442100126e-01 2.387507855892199993e-01 5.423793792724600493e-01 +2.216805331409000060e-02 3.438608720899000160e-02 3.258327394723999765e-02 2.494775690137999991e-02 1.625697463750800098e-01 2.526247203350099890e-01 4.707203507423399769e-01 +5.769853014500000293e-03 1.501400116831000039e-02 2.543063089252000156e-02 1.101903803647000073e-02 1.194266676902800001e-01 2.137124687433200054e-01 6.096273660659800031e-01 +1.464755274355000053e-02 4.403671622276000147e-02 3.617892041801999692e-02 1.236570347099999988e-02 1.436687856912599870e-01 2.775313854217499876e-01 4.715709388256100199e-01 +9.323022328319999913e-03 1.885824464261999858e-02 2.413326501845999839e-02 8.654518052939999539e-03 1.330757737159700138e-01 2.169194519519800080e-01 5.890357494354200307e-01 +2.529451549053199910e-01 3.091334402561199957e-01 2.164751142263399986e-01 4.440699517727000195e-02 6.117752194405000343e-02 9.568847715855000047e-02 2.017328329384000113e-02 +2.133807241916700070e-01 1.753870099782899872e-01 1.480930298566799919e-01 8.133942633867000116e-02 1.292650848627099891e-01 1.723231077194199989e-01 8.021161705255999697e-02 +7.472320459779999841e-03 2.839603833854000003e-02 3.428899869323000227e-02 1.210975646973000072e-02 1.250682324171099868e-01 2.600257992744399727e-01 5.326388478279100447e-01 +1.109694913029699997e-01 2.318646013736699873e-01 1.924083530902900019e-01 4.496634379028999901e-02 1.165713444352200062e-01 2.125388085842100094e-01 9.068106114863999645e-02 +1.748821586370500059e-01 1.811247318983099930e-01 1.556251794099799968e-01 4.533270373940000153e-02 1.402711272239700047e-01 1.974446028470999981e-01 1.053195074200599934e-01 +7.618716359138000271e-02 1.219611838459999931e-01 9.432774782180999851e-02 4.381551593541999773e-02 1.677803248166999939e-01 2.730571627616900088e-01 2.228708714246699918e-01 +5.088376812639999920e-03 1.039684005082000019e-02 1.995814777911000121e-02 7.954347878689999735e-03 1.148911565542199975e-01 1.855138838291200132e-01 6.561972498893700045e-01 +1.040465664120000062e-03 2.841321751480000140e-03 5.396045744419999957e-03 3.039170755069999907e-03 7.092922925948999535e-02 1.239123195409800038e-01 7.928414344787599877e-01 +1.435236912220999930e-02 2.629745751619000024e-02 2.732200734317000168e-02 1.154071372001999954e-02 1.472662389278399930e-01 2.353985309600800102e-01 5.378226637840299862e-01 +6.314101070166000529e-02 1.020171791315099968e-01 8.322292566298999938e-02 2.212786115705999909e-02 1.738318353891399881e-01 2.750286459922799964e-01 2.806305587291699766e-01 +4.428603127598999822e-02 6.340982019900999467e-02 7.521814107895000157e-02 2.292697131634000018e-02 1.758371442556400099e-01 2.629183530807500113e-01 3.554035425186199970e-01 +7.335186749696999409e-02 1.076007038354900025e-01 9.118434041739000018e-02 4.455978050828000164e-02 1.721993088722200138e-01 2.706019878387500022e-01 2.405019998550400051e-01 +1.172251533716999958e-02 2.298229373990999871e-02 2.678282186388999953e-02 1.143145561217999949e-02 1.409208774566700073e-01 2.300606369972200138e-01 5.560994148254400082e-01 +2.006459534168200110e-01 2.920307517051700108e-01 2.519858479499800241e-01 4.290174692868999745e-02 6.982855498791000481e-02 1.145194843411399960e-01 2.808764949440999831e-02 +6.578002870082999554e-02 8.805594593287000005e-02 8.388628065585999882e-02 3.596217557787999980e-02 1.783384382724799988e-01 2.672873735427899744e-01 2.806897759437599893e-01 +1.817458122968700074e-01 2.193190455436699882e-01 2.773832380771599770e-01 6.691957265138999411e-02 8.475428819656000146e-02 1.294415444135700033e-01 4.043651372194000115e-02 +6.405317783356000161e-02 1.046642512083099941e-01 8.728251606225999326e-02 2.812813408673000073e-02 1.722394227981600134e-01 2.761833667755099753e-01 2.674491405487099960e-01 +1.242973059415800052e-01 1.316777616739299994e-01 8.107832074165000069e-02 4.011065885424999755e-02 1.768215298652600076e-01 2.491452544927600099e-01 1.968691498041200139e-01 +1.165176462381999935e-02 2.513561211526000108e-02 2.825465053320000072e-02 1.160532981156999974e-02 1.403047740459399950e-01 2.375144362449599922e-01 5.455334186553999487e-01 +4.867148771882000291e-02 1.126550361514099957e-01 1.017674058675799992e-01 3.648368641733999718e-02 1.581990420818299992e-01 2.903868556022600189e-01 2.518364787101700086e-01 +5.124494060873999862e-02 9.446614235639999579e-02 8.980781584977999554e-02 2.890885621309000064e-02 1.682752370834399991e-01 2.808405160903900133e-01 2.864564955234499832e-01 +2.800154685974000010e-02 5.410258844495000052e-02 8.342090249061999419e-02 3.013801015913000064e-02 1.613448262214700057e-01 2.696926593780499815e-01 3.732994496822399921e-01 +8.536815643311000679e-02 1.387405991554299944e-01 1.927574723958999925e-01 5.577390268444999688e-02 1.430068016052200019e-01 2.338208109140400004e-01 1.505322605371499922e-01 +1.045366935431999919e-02 2.036019600928000092e-02 2.860799245535999846e-02 1.880231127142999864e-02 1.389266848564099932e-01 2.294166833162299968e-01 5.534324645996100411e-01 +6.837713718413999942e-02 6.188210844994000009e-02 6.763788312674000325e-02 2.799048274755000162e-02 1.919601261615800081e-01 2.456255257129699998e-01 3.365267515182500113e-01 +8.826115727425000446e-02 1.290332078933700000e-01 8.483448624610999411e-02 2.652482129632999924e-02 1.731612533330899872e-01 2.686143219470999988e-01 2.295707315206499954e-01 +6.571844965218999468e-02 1.480190902948400056e-01 1.056034937501000026e-01 4.332124814391000167e-02 1.536456048488600012e-01 2.841855585575099874e-01 1.995065510272999998e-01 +2.335825935006000109e-02 4.435761272907000341e-02 7.609946280717999612e-02 2.352163940667999914e-02 1.587510704994199995e-01 2.601599097251899861e-01 4.137520492076899870e-01 +2.728531062603000157e-01 3.474999666213999805e-01 1.931369751691799919e-01 3.678281977772999978e-02 5.187725275755000059e-02 8.299938589333999417e-02 1.485049072653000027e-02 +1.262743324041399884e-01 1.162425577640500002e-01 7.706663757562999539e-02 4.056568816304000069e-02 1.834487169981000032e-01 2.449057847261399967e-01 2.114962935447700088e-01 +1.546838581562000048e-01 2.180732786655399935e-01 1.745322197675699960e-01 6.645824760198999759e-02 1.180007681250599960e-01 1.901866793632500108e-01 7.806494832039000131e-02 +1.078518945723999992e-02 3.191474452615000040e-02 3.306305781006999706e-02 1.208241842687000044e-02 1.362051218748099868e-01 2.596248686313599729e-01 5.163245797157299810e-01 +4.326601326465600028e-01 2.616542279720299735e-01 1.349317282438300125e-01 5.567893385887000279e-02 4.647436365484999832e-02 5.842956528068000283e-02 1.017102319746999994e-02 +2.815341651439700055e-01 2.418274432420700060e-01 3.104211091995199845e-01 5.385402962565000173e-02 4.273637756705000318e-02 5.922424420714000187e-02 1.040264684707000072e-02 +6.907889246940999983e-02 1.165919378399799949e-01 1.873221695423100130e-01 4.607647657393999785e-02 1.511287242174099987e-01 2.458988726139099967e-01 1.839029192924500067e-01 +4.251056015491500029e-01 2.517943680286400254e-01 2.057117074727999873e-01 3.535171225666999817e-02 3.419073671102999812e-02 4.177952930330999792e-02 6.066353060310000073e-03 +1.168247833847999989e-01 1.107919514179200038e-01 1.547310948371899975e-01 4.359336197376000033e-02 1.695291548967400030e-01 2.242519259452800118e-01 1.802777200937299984e-01 +4.462399482727100186e-01 2.663668096065500146e-01 1.834792941808700006e-01 3.633331879973000084e-02 2.820805646479000034e-02 3.510731831193000113e-02 4.265255760399999825e-03 +1.631519049406099930e-01 1.945147961378100032e-01 2.856588065624199868e-01 5.953605100513000015e-02 9.765393286942999906e-02 1.457048505544699946e-01 5.377964302897000198e-02 +1.829935014247900116e-01 2.154085785150499921e-01 1.607947349548299876e-01 7.668995112180999885e-02 1.170517429709399954e-01 1.780201941728599968e-01 6.904130429028999816e-02 +8.694937825203000181e-02 7.285709679127000404e-02 7.151921093464000401e-02 4.301085323094999691e-02 1.946921646595000110e-01 2.469126582145700077e-01 2.840586602687800166e-01 +3.706785738468200142e-01 2.653352022170999969e-01 2.358929067850099870e-01 3.917202726006999841e-02 3.562094643712000047e-02 4.653276875614999891e-02 6.767563056200000260e-03 +2.949509620666500020e-01 1.928299218416200111e-01 2.091039419174199887e-01 4.813367500901000184e-02 9.650244563818000110e-02 1.166324093937900069e-01 4.184662550688000165e-02 +8.282438851890000855e-03 1.770217344164999942e-02 2.354495227337000118e-02 8.389741182329999228e-03 1.308995783329000018e-01 2.165763825178100010e-01 5.946047306060799897e-01 +4.382149875164000064e-02 6.213381886482000072e-02 8.311000466347000237e-02 4.635942727326999857e-02 1.748910248279600121e-01 2.663480937480899868e-01 3.233361244201700124e-01 +3.107443153858199802e-01 3.289466500282299810e-01 2.413066625595099990e-01 4.945931211113999831e-02 2.571580372750999904e-02 3.981023654342000229e-02 4.017020110040000168e-03 +2.578238584100999917e-02 5.007442086935000314e-02 8.057630807160999498e-02 2.939410321413999869e-02 1.616565585136399974e-01 2.692588567733800176e-01 3.832573890686000184e-01 +4.242073595523799812e-01 2.619421780109399966e-01 2.016594558954200034e-01 3.368409350513999756e-02 3.251222893596000113e-02 4.041802138089999746e-02 5.576654337349999831e-03 +8.681289851665000001e-02 1.516784876585000053e-01 1.968482434749599941e-01 6.614986807108000355e-02 1.365147531032600003e-01 2.310839593410499992e-01 1.309117823839200112e-01 +1.109854206442800056e-01 1.493328362703300050e-01 1.718037724494899943e-01 4.136738553642999722e-02 1.511862725019499920e-01 2.288227528333700023e-01 1.465015560388600036e-01 +6.333546340465999458e-02 8.289205282926999374e-02 8.103808760642999820e-02 3.521504253148999980e-02 1.811447888612700008e-01 2.679375112056699981e-01 2.884370386600499936e-01 +1.344496477394999980e-02 2.035493776201999921e-02 2.743677049874999885e-02 2.325221896172000036e-02 1.498296409845399912e-01 2.272118031978599961e-01 5.384696722030599680e-01 +2.861680984497099733e-01 3.010147809982299805e-01 2.788756489753699830e-01 4.170784354209999822e-02 3.411334007978000099e-02 5.125749856233999951e-02 6.862785667180000201e-03 +1.288293022661999958e-02 3.312529250979000250e-02 3.144331276416999915e-02 1.170665491371999933e-02 1.435290277004200032e-01 2.595159709453599972e-01 5.077968239784199644e-01 +3.126183152198999671e-02 6.525708734988999726e-02 8.654699474572999374e-02 2.933578938245999870e-02 1.629368066787700020e-01 2.804257869720500063e-01 3.442356884479499946e-01 +2.717609982939999964e-03 6.622430868449999744e-03 7.003782317040000219e-03 3.489015856760000010e-03 9.467101097107000207e-02 1.610050350427600085e-01 7.244911193847699549e-01 +1.189761832356499988e-01 1.874512732029000039e-01 1.800947487354299936e-01 4.764172434806999978e-02 1.346217542886699869e-01 2.193461507558799872e-01 1.118681654334099940e-01 +5.002234131100000147e-03 1.445727422832999987e-02 2.534693107008999940e-02 1.073857583106000053e-02 1.166483983397500063e-01 2.158198803663300136e-01 6.119866967201199603e-01 +1.714146509766999865e-02 3.396657854318999720e-02 3.251764178276000256e-02 1.918139494956000099e-02 1.545853316783900033e-01 2.590611279010799906e-01 4.835464656353000157e-01 +2.096424698829700006e-01 3.232515454292300139e-01 2.361880391836199966e-01 4.569086804986000061e-02 6.096326187252999740e-02 1.032819077372599953e-01 2.098191343248000107e-02 +4.923133924603000089e-02 7.899701595305999580e-02 8.244603127241000029e-02 2.836482971906999911e-02 1.747558116912799886e-01 2.752163112163499847e-01 3.109886348247499765e-01 +1.143376901745799951e-01 1.275048404931999890e-01 1.716870069503800000e-01 6.668648123741000022e-02 1.537871658801999997e-01 2.205024808645200118e-01 1.454943269491200120e-01 +4.191176965833000312e-02 7.351271063089000191e-02 8.384269475937000671e-02 2.875943668187000077e-02 1.708843559026700099e-01 2.772574424743700083e-01 3.238315880298600069e-01 +2.220009863376599946e-01 2.656928896904000026e-01 2.411077916622199890e-01 4.412055760622000250e-02 7.763012498617000157e-02 1.178180947899799963e-01 3.162956982850999993e-02 +2.685750126838700180e-01 3.380597531795500044e-01 1.965172588825200017e-01 4.595049470662999902e-02 5.242837220430000139e-02 8.389297872782000565e-02 1.457612682133999950e-02 +4.275822937488599762e-01 2.825438976287800164e-01 1.853184252977400082e-01 4.247111082076999999e-02 2.537089772521999853e-02 3.315795585512999744e-02 3.555424511430000083e-03 +3.894548490644000188e-02 6.336700916290000096e-02 7.656698673964000557e-02 2.256580628454999890e-02 1.728398352861399978e-01 2.695923745632199942e-01 3.561224937438999816e-01 +4.771839361640000006e-03 1.523849740624000013e-02 2.649871632457000137e-02 1.087095495313000065e-02 1.152077317237899939e-01 2.211647033691399866e-01 6.062475442886400279e-01 +1.407602578401599969e-01 1.685544401407199910e-01 1.656275540590300133e-01 4.786958917974999672e-02 1.447646021843000119e-01 2.131169587373699936e-01 1.193066090345400038e-01 +2.075707316398600066e-01 2.631570994854000034e-01 2.504598200321199730e-01 4.562348872422999913e-02 7.852815091610000631e-02 1.215403974056200043e-01 3.312031179667000030e-02 +3.775886595249199895e-01 2.578525245189700055e-01 2.345574349164999961e-01 3.974873572588000226e-02 3.646576404572000191e-02 4.678547382355000006e-02 7.001395802939999746e-03 +2.547349929809599733e-01 2.402648031711600018e-01 2.275487035512900047e-01 5.470038577913999972e-02 7.979167997837000037e-02 1.119190901517899961e-01 3.104034252464999907e-02 +4.359968937929999816e-03 1.014447771013000064e-02 2.011582255363000143e-02 7.776107639070000029e-03 1.118765920400599939e-01 1.885031163692499900e-01 6.572239398956299938e-01 +7.845694199200000524e-03 2.563236467540000105e-02 3.127068653703000273e-02 1.158696040510999968e-02 1.286395788192699896e-01 2.519068121910100211e-01 5.431178808212300257e-01 +1.323905885219600065e-01 1.393805742263800052e-01 1.697163432836500119e-01 7.893353700638000570e-02 1.470868587493900093e-01 2.092384397983599875e-01 1.232536435127299934e-01 +7.808768190440000360e-03 1.890680752694999869e-02 2.489110082387999828e-02 8.519651368260000232e-03 1.288883835077299922e-01 2.233127802610400114e-01 5.876725316047699543e-01 +3.325097262859300074e-01 3.037833273410799895e-01 2.418254613876300030e-01 4.380130767821999865e-02 2.980589307844999994e-02 4.316552355885999726e-02 5.108782555910000404e-03 +3.054285645484899891e-01 3.089483082294500194e-01 2.608475089073200026e-01 3.850347548723000168e-02 3.225350379944000312e-02 4.791620746255000063e-02 6.102413404729999623e-03 +2.160700969400000150e-03 9.401968680320000118e-03 8.799495175479999515e-03 2.947779837999999885e-03 8.933829516171999663e-02 1.868428736925099864e-01 7.005088925361599994e-01 +3.438853919506100199e-01 2.184329628944400026e-01 2.700845599174500067e-01 6.139931082726000217e-02 4.301906749605999974e-02 5.374596267938999694e-02 9.432766586539999276e-03 +9.693040698766999808e-02 1.868023276329000004e-01 1.886351853609100071e-01 3.937081620097000051e-02 1.336338967084899909e-01 2.317475527524900103e-01 1.228798180818600067e-01 +5.751969758420000418e-03 1.232359278946999932e-02 2.214344218372999926e-02 1.033241208642999946e-02 1.208615750074400058e-01 2.001872360706299925e-01 6.283997893333399531e-01 +1.100786104798300025e-01 1.623607724904999883e-01 1.756884008645999973e-01 4.048075899482000278e-02 1.457767188549000115e-01 2.286549061536800043e-01 1.369598358869600074e-01 +2.012979984283400081e-01 1.950774192810099950e-01 2.622690498828900152e-01 6.868859380484000632e-02 9.447166323661999876e-02 1.323207020759600006e-01 4.587456211448000254e-02 +4.882647469640000182e-02 1.369443088769899952e-01 1.105909198522599945e-01 4.389858618379000044e-02 1.494908332824700092e-01 2.972697615623500211e-01 2.129791080951700111e-01 +1.920693218708000027e-01 2.005977034568799944e-01 2.680394947528800254e-01 6.852555274963000043e-02 9.251899272202999958e-02 1.332211792468999956e-01 4.502773657440999749e-02 +3.028587102890000216e-01 1.656216830015199981e-01 1.163087710738199970e-01 6.871616095304000638e-02 1.291249096393599916e-01 1.485080122947700088e-01 6.886175274849000438e-02 +2.468166798353199909e-01 2.337580472230899875e-01 2.295641750097300038e-01 9.835277497767999644e-02 6.877275556325999906e-02 9.942544996737999463e-02 2.331010624766000072e-02 +2.807640135288200223e-01 3.170290887355800002e-01 1.948976069688800050e-01 3.269849717617000218e-02 6.186990812420999769e-02 9.308432042599000533e-02 1.965656876563999858e-02 +6.381229311227999690e-02 7.328605651854999681e-02 7.337944209576000021e-02 2.760724350809999963e-02 1.866490393876999998e-01 2.603375613689399848e-01 3.149283528327900261e-01 +2.647932432592000132e-02 4.892522096633999951e-02 7.905008643866000273e-02 2.930518239737000055e-02 1.631685942411399970e-01 2.668102681636799756e-01 3.862613141536699879e-01 +2.100077122449900136e-01 2.108735144138300099e-01 1.497358977794600032e-01 7.391480356455000511e-02 1.184388622641600053e-01 1.701955646276500089e-01 6.683364510535999559e-02 +1.808355301618599920e-01 1.877612024545700087e-01 1.473128795623800114e-01 3.460756689310000300e-02 1.431573480367699935e-01 1.994702517986300105e-01 1.068551987409600001e-01 +4.510983359069999955e-03 9.739061817530000539e-03 1.943087764083999830e-02 7.694859523330000069e-03 1.127758920192700048e-01 1.848329752683600113e-01 6.610153317451500365e-01 +8.650088682770000481e-03 2.067561075091000136e-02 2.982536703347999849e-02 1.855948753654999839e-02 1.340900957584399977e-01 2.375427037477499947e-01 5.506566166877699953e-01 +4.117161333560899750e-01 3.203018307685899790e-01 1.803558468818700078e-01 2.584571018814999996e-02 2.460716478526999915e-02 3.363783285021999803e-02 3.535494208339999903e-03 +3.432532772420000215e-03 1.142612658440999955e-02 1.092464197427000031e-02 8.523369207980000667e-03 1.044509336352300033e-01 2.059041410684600004e-01 6.553382277488699614e-01 +1.144660054710000020e-03 1.956095453350000044e-03 4.030622541899999897e-03 2.670928835869999882e-03 7.200062274933000106e-02 1.051927804946899969e-01 8.130043148994400282e-01 +2.791899256408000157e-02 4.668654501438000010e-02 7.605320960283000475e-02 2.911642566323000003e-02 1.661683768033999919e-01 2.618742585182199933e-01 3.921822011470800229e-01 +5.181264132260000356e-03 1.389497425407000032e-02 2.451116405427000017e-02 1.063822209834999928e-02 1.177171543240499996e-01 2.118538171052899988e-01 6.162034273147599661e-01 +4.071109928190000393e-03 1.100170519203000005e-02 2.154932543634999892e-02 7.937623187900000668e-03 1.100500449538199949e-01 1.959755122661600013e-01 6.494146585464499744e-01 +1.415059566497799959e-01 1.365789771079999881e-01 1.530241519212700019e-01 4.042722284794000170e-02 1.616834402084399991e-01 2.168035805225400070e-01 1.499766707420299994e-01 diff --git a/statsmodels/discrete/tests/results/poisson_resid.csv b/statsmodels/discrete/tests/results/poisson_resid.csv new file mode 100644 index 0000000..509456b --- /dev/null +++ b/statsmodels/discrete/tests/results/poisson_resid.csv @@ -0,0 +1 @@ + -2.48, -0.48, -2.48, -2.48, -2.48, -2.51, -2.51, -1.51, -2.51, -2.51, -2.51, -1.51, -2.51, -2.51, -2.51, 3.52, -0.48, -2.48, -2.48, -2.48, -2.07, -3.07, -3.07, -3.07, -3.07, -2.93, -3.93, -2.93, -1.93, 0.07, -3.48, -3.48, -3.48, -3.48, -3.48, -1.82, -1.82, -1.82, -3.82, -3.82, -3.82, -1.85, -2.85, -2.85, -3.82, -3.82, -3.82, -2.82, -3.82, 3.18, -1.33, -2.33, -0.33, 5.99, -1.01, -0.01, -1.71, -1.71, -2.71, 1.20, 2.20, 11.20, 0.59, 0.59, 2.59, -1.59, -2.59, 2.41, -2.59, -1.59, -1.63, -1.63, 0.37, -0.63, -1.63, -3.17, -4.17, 0.83, -3.17, -4.17, 2.41, 0.41, -2.59, -2.59, -2.59, 1.41, -2.59, -1.59, -2.59, -1.59, -3.56, -3.56, -4.56, 12.10, 3.10, -0.90, 2.12, 2.12, 1.12, 17.69, 11.69, 16.69, 16.69, 13.69, 3.41, 4.41, 2.41, 11.41, 6.41, 4.41, 1.41, 5.41, -4.17, -4.17, -5.17, -1.64, -1.64, -2.64, -0.56, 2.44, 10.44, -0.00, -1.00, -1.00, -1.48, 0.52, -0.48, -0.09, -0.09, -1.09, -0.17, -2.17, 0.83, 16.75, 11.75, 7.75, 63.43, 52.43, 57.43, -3.28, -2.28, -3.28, 7.79, 5.79, 1.79, -0.21, 4.79, 2.83, -0.17, 0.83, -0.17, -1.17, 2.36, 6.36, 8.36, 31.87, 5.87, 2.87, 2.87, 10.87, 2.52, 1.52, -0.48, -2.48, -2.48, -1.51, -0.51, -1.51, 2.49, 0.49, 0.49, 0.49, 0.49, -1.51, -0.51, 0.49, -0.51, -1.51, -1.51, -1.51, -0.51, 0.49, -2.51, -1.51, -1.51, 10.55, 10.55, 11.55, -3.13, -3.13, -0.13, -0.01, 1.99, 0.99, 3.70, 0.70, 0.70, 4.99, 0.99, 4.99, 3.11, 3.11, -0.89, 0.79, -3.21, 0.79, 3.84, -0.16, 2.84, 2.08, 14.08, -4.92, 7.59, 2.59, -1.41, -3.89, -3.89, -2.89, 5.11, -1.89, -1.89, -0.89, -0.89, -1.89, 1.47, 0.47, 0.47, 1.47, -0.53, -1.56, -0.56, -2.56, -2.56, -2.56, -0.53, -1.53, -1.53, -0.53, -0.53, 1.44, 2.44, 1.44, 1.44, 2.44, 0.50, 1.50, -1.50, 0.50, 0.50, -1.89, -2.89, -0.89, 0.11, -2.89, 0.18, 0.18, 0.18, 0.18, -0.82, 1.19, 0.19, 7.19, 2.19, 8.19, 2.10, 0.10, -0.90, -2.90, 2.10, 3.64, -2.36, -1.36, -2.36, 1.64, -0.56, -2.56, 0.44, 0.44, -1.56, 1.44, -2.56, -1.56, -2.56, -1.56, 7.65, 3.65, -3.35, -1.56, -0.56, 1.44, -2.56, -2.56, -1.56, -2.56, -2.56, -2.56, 1.19, 7.19, -1.81, -1.94, -0.94, -1.94, -0.94, -0.94, -1.94, -0.82, -1.82, -1.82, -1.84, -1.84, 0.16, 1.24, 0.24, -0.76, -0.76, 0.24, -3.59, -3.59, -3.59, -0.59, -3.59, 3.67, -1.33, -2.33, 2.67, -1.33, 8.26, 41.26, 4.26, -1.42, -1.42, 0.58, -3.25, -0.25, -2.25, -0.23, -2.23, -5.23, -1.40, -1.40, -1.40, -0.18, -1.18, -1.18, 1.44, -0.56, -1.56, 0.52, 14.52, 18.52, -2.70, -2.70, -4.70, 4.82, -4.18, -4.18, -3.18, -4.18, -1.21, -3.21, -3.21, -0.21, -3.21, -2.21, -3.21, -3.21, -1.21, -3.21, -3.21, 3.79, 1.79, -3.21, -2.21, -1.17, -3.17, -3.17, -2.17, -3.17, -1.21, -1.21, -3.21, -3.21, -3.21, -3.17, -2.17, -3.17, 2.83, -3.17, -0.17, 0.83, 1.83, -3.39, -3.39, -3.39, 4.55, 4.55, 5.55, -0.73, 2.27, 6.27, 45.27, 5.27, 3.18, 6.18, 12.18, 2.49, 7.49, 1.49, 4.49, 3.49, 0.49, -1.29, -1.29, -1.29, -0.58, -1.58, -1.58, 18.52, 13.52, 6.52, 3.52, 8.52, 35.78, 18.78, 4.78, 4.78, 18.78, 0.50, -2.50, 0.50, -1.56, -1.56, -2.56, -0.56, -1.56, 0.44, -2.90, -2.90, 4.10, -1.50, -1.50, -0.50, -2.42, -2.42, -0.42, -3.69, -3.69, -3.69, -0.09, -0.09, 2.97, -0.03, 4.97, 5.97, 4.97, 2.91, 6.91, 4.91, 0.91, 1.91, 0.26, 0.26, -1.74, -2.74, 0.26, 1.58, -1.42, -1.42, 0.58, -0.42, -2.48, -3.48, -2.48, -0.48, -2.48, -2.71, -3.71, -1.71, -4.71, -3.71, -3.31, -3.31, -3.31, -3.31, -3.31, -2.56, -1.56, 0.44, -1.56, 1.44, -1.56, -1.56, -2.56, -2.56, -1.56, -2.56, -1.56, -1.56, 0.44, -1.56, -3.35, -0.35, -2.35, -3.35, -3.35, -3.35, 0.65, -1.35, -1.35, -3.35, -0.38, -1.38, -1.38, -2.38, 2.62, -1.38, 3.59, -1.41, 0.59, 1.67, -0.33, -1.33, -2.71, -1.71, -1.71, -1.33, -2.33, -1.33, 0.79, -3.21, -1.21, -1.33, 5.67, 0.67, 1.29, -2.71, -1.71, -1.16, -2.16, -0.16, 4.84, 2.84, -0.47, -0.47, -0.47, 3.53, -0.47, 6.36, 3.36, 4.36, 0.36, -0.64, 6.36, 11.36, 12.36, -0.64, 2.36, -2.21, 1.79, -2.21, 1.79, 10.79, -1.21, -0.21, -2.21, -3.21, 9.79, -3.00, 5.00, -3.00, -2.00, -2.00, -2.00, 1.00, -2.00, -2.00, 2.00, -3.95, -3.95, -3.95, -1.95, -1.95, 2.08, 0.08, 1.08, -2.92, -1.92, 0.08, 0.08, -2.92, -2.92, -1.92, 6.08, 3.08, 1.08, 0.08, 0.08, -2.17, -2.17, -2.17, 0.83, 0.83, 0.83, -3.17, 0.83, -0.17, -0.17, 1.83, 0.83, -3.17, -1.17, 0.83, 0.44, 3.44, 1.44, -0.56, 4.44, 3.44, -1.56, -2.56, -0.56, -2.56, -2.56, 2.44, 0.44, -2.56, -1.56, 5.44, 4.44, -1.56, 0.44, -0.56, -1.56, 1.44, -1.56, 2.47, -1.53, -0.53, 10.30, 9.30, 10.30, -0.59, -1.59, -2.59, 2.41, 0.41, -1.59, -0.59, -1.59, -1.59, -1.59, 2.41, -2.59, 0.41, 3.41, 0.41, 2.41, 3.41, -2.59, -2.87, 1.13, -2.87, -1.56, -0.56, -0.56, 0.44, -1.56, -1.56, -0.56, -1.56, -0.56, -1.56, 0.11, 0.11, 0.11, -2.89, -0.89, -0.89, 8.11, 10.11, 1.11, 6.11, -0.16, -0.16, -0.16, -1.16, -1.16, -0.89, -1.89, -2.89, 1.11, -2.89, 16.49, -0.51, 1.49, 12.52, 7.52, 4.52, 0.45, -2.55, -2.55, -1.55, -2.55, 0.50, -2.50, -4.50, -1.50, -0.50, -1.96, -0.96, 1.04, -2.13, -3.13, 0.87, 0.95, -1.05, 2.95, -2.13, -1.13, 1.87, -1.59, -1.40, 0.41, -0.59, 0.65, 0.65, 3.65, -1.63, -1.63, -0.63, 3.87, 1.87, -2.13, 0.12, 1.12, 12.12, -1.86, -1.86, -0.86, 0.14, 0.14, -0.89, -2.89, -2.89, 4.11, 0.11, 0.50, 0.50, 0.50, -2.50, -2.50, -2.51, -0.51, 1.49, -2.48, -1.48, -1.48, -4.04, -4.04, -4.04, -0.48, -1.48, -0.48, -2.56, -1.56, -1.86, -1.86, 1.14, 0.14, -1.86, -1.86, -2.56, -2.56, -2.30, 2.70, -1.03, 2.97, -3.03, -3.07, -3.07, -1.07, 30.99, 15.99, 11.99, 4.99, 11.99, 18.94, 5.94, 9.94, 4.94, 1.94, -1.53, -1.53, -1.53, -2.53, -2.53, -2.53, -2.53, -2.53, 0.47, -2.53, -2.53, -2.53, -0.53, -1.53, -1.53, -2.53, -2.53, -2.53, 1.47, -0.53, 5.47, 7.47, 2.47, 2.47, -0.56, -1.56, -0.56, 2.47, 4.47, 7.47, -1.97, -1.97, 0.03, -1.97, -1.97, -0.46, 0.54, -1.46, -1.46, 1.54, 12.54, 6.54, 7.54, -0.46, 1.54, 1.54, -0.46, -2.46, 0.54, -2.46, 2.39, -1.61, 1.39, 1.64, -5.36, 0.64, -3.21, -3.21, -2.21, -2.21, -2.21, -3.13, -3.13, -3.13, -3.13, -3.13, -2.17, -1.17, -1.17, -1.17, -1.17, -3.21, -3.21, -1.21, -2.21, -3.21, 4.29, -0.71, -0.71, -1.71, 1.29, -4.98, -4.98, -1.98, -2.98, -3.98, -2.47, 0.53, 2.53, -2.33, -1.33, -0.33, -1.33, -2.33, 2.67, -2.33, 2.67, -2.33, -2.33, 3.41, -2.59, -2.59, -0.59, 0.41, -0.16, -2.16, -1.16, -1.16, -2.16, 4.64, -2.36, 1.64, -0.36, 3.64, -3.06, -3.06, -3.06, -3.06, -2.06, 0.24, -2.76, -2.76, -4.76, -3.76, -2.71, -1.71, -0.71, 0.29, 0.29, -2.71, -0.71, -2.71, -1.71, -1.71, 0.29, 0.29, -2.71, -1.71, -1.71, -0.71, -0.71, -2.71, -1.71, 2.29, -1.56, -1.56, -1.56, -0.82, -1.82, -1.82, 1.51, -2.49, -2.49, -2.49, -2.49, -1.25, -2.25, -3.25, -1.48, -1.48, -2.48, -1.48, -2.48, -2.48, 0.52, 5.52, -2.48, -0.25, 8.75, 14.75, 5.55, 1.55, 10.55, -0.51, -2.51, -1.51, -0.45, -0.45, 1.55, 3.55, -2.45, 5.55, -2.12, -2.12, 4.88, -3.51, -3.51, -2.51, 7.49, -1.51, 1.44, -0.56, 0.44, -0.56, -0.56, -3.91, -4.91, -3.91, -2.91, -2.91, -1.86, -1.86, -1.86, -1.86, -1.86, 3.01, 2.01, 8.01, 1.06, 6.06, 1.06, -0.99, 3.01, -3.99, -1.59, -2.59, 0.41, -2.94, -2.94, -1.94, -2.40, -2.40, -0.40, 5.50, 5.50, 5.50, 3.14, 0.14, 1.14, 2.64, 0.64, 1.64, -2.56, -2.56, -2.56, -2.56, -2.56, -2.56, 4.05, 6.05, 2.05, -3.00, -3.00, -3.00, -3.37, -4.37, -4.37, -2.51, -2.51, -2.51, -1.51, -1.51, -2.51, 2.14, 4.14, 2.14, 1.14, 6.14, 3.50, -0.50, 0.50, 3.50, -2.50, 1.14, -0.86, 0.14, 4.14, 9.14, -0.63, -0.63, -0.63, -0.63, -1.63, 1.82, 0.82, -0.18, -1.18, -2.18, 5.41, 1.41, -0.59, 0.41, 3.41, 0.06, 0.06, -0.94, -1.94, 1.06, -0.59, -2.59, -0.59, -2.59, -2.59, -1.63, 0.37, -1.63, 1.37, -0.63, 0.06, -2.94, -2.94, 0.06, -1.94, -0.56, -2.56, -1.56, 1.44, -2.56, -0.18, 0.82, -0.18, 2.82, 2.82, 3.41, -1.59, -1.59, -2.59, -0.59, -2.93, -1.93, -1.93, 0.07, 2.07, -1.35, -1.35, -1.35, -0.35, -1.35, -0.61, 2.39, 4.39, 4.39, 1.39, -1.61, 5.62, 3.62, 10.62, 8.39, 13.39, 12.39, 0.89, -0.11, -0.11, -2.52, -3.52, -3.52, 0.97, -3.03, -0.03, 15.87, -0.13, 6.87, 3.36, 5.36, 2.36, 1.87, 6.87, -2.13, 3.32, 1.32, 4.32, 12.41, 13.41, 0.41, -1.56, -0.56, 0.44, -0.56, 6.44, -0.56, -1.56, -2.56, -0.56, -0.56, -2.65, -2.65, -2.65, -1.65, -2.65, 0.44, -2.56, -2.56, -2.56, -2.56, 0.19, 4.19, 11.19, 2.47, 1.47, -1.53, 1.47, 0.47, -2.59, -0.59, 2.41, -2.59, -2.59, -0.88, -0.88, -0.88, -1.88, -0.88, -1.59, 0.41, 0.41, -0.59, -0.59, -3.48, 0.52, -2.48, -3.48, -3.48, -2.07, -2.07, -0.07, 1.93, -2.07, -2.23, -2.23, -1.23, -0.23, 9.47, 2.47, -1.53, -2.53, -2.53, -2.53, -1.21, 6.79, 1.79, -0.21, -0.21, -3.21, -1.21, -2.21, -3.21, -2.21, 11.89, 4.89, 2.89, 0.89, -4.11, 3.30, 0.30, -0.70, -2.70, -0.70, 8.47, 3.47, 3.47, -0.53, 4.47, -2.59, -2.59, -2.59, 10.07, -0.93, 2.97, -1.03, -2.03, -2.00, 0.00, -1.00, 5.41, 11.41, 3.41, -2.62, -2.62, -0.62, -2.62, 2.38, 0.02, -3.98, 5.02, -1.98, 3.02, 6.45, 0.45, 4.45, 1.45, 2.45, 6.41, -1.59, 3.84, -0.16, -0.48, 7.52, -1.48, 0.52, -0.48, 0.52, 0.49, -0.51, -1.51, 2.52, 4.52, 7.52, 2.52, 3.52, -1.48, -0.56, -2.56, -1.56, 6.95, 11.95, -5.05, 0.16, -1.84, -0.84, -1.48, -0.48, 0.52, -2.48, -1.48, -2.81, -2.81, -2.81, -2.81, -2.81, -1.48, -2.48, -1.48, -2.48, -1.48, -0.42, -2.42, -1.42, -1.42, -1.42, 1.91, 0.91, -1.09, -1.09, -2.09, -1.58, -1.58, 1.42, 0.42, -0.58, -1.50, -1.50, -0.50, -2.50, -0.50, -2.51, -1.51, -2.51, -1.51, -2.51, -0.09, 3.91, -2.09, -1.09, -1.09, 7.65, 4.65, 2.65, -0.28, -1.28, -0.28, 7.47, 4.47, 2.47, 2.47, 2.47, 0.47, 2.36, 1.36, -1.64, -0.64, -0.64, -0.41, -0.41, -1.41, -1.41, -1.41, -1.94, -0.94, 6.06, 1.06, 0.06, 4.80, 2.80, 1.80, -0.20, 1.80, -1.03, 3.97, -0.03, 1.97, -2.03, 4.89, 0.89, 2.89, 0.89, -0.11, 0.89, -0.11, -1.11, -0.11, -0.11, -2.07, -3.07, 0.93, -0.07, -3.07, -0.07, -1.07, -2.07, -1.07, -1.07, -2.59, -0.59, -1.59, 1.41, -0.59, 0.41, 6.26, 8.26, -1.74, 4.44, 28.44, -1.56, 1.01, -0.99, 2.01, 0.01, -2.99, -0.36, 5.64, -2.36, 0.64, -2.36, -1.50, 0.50, -2.50, -0.50, -1.50, -0.99, 1.01, 3.01, -0.99, -3.99, -2.99, 1.01, 3.01, 0.01, -1.99, -1.12, -0.12, -7.12, -5.12, -6.12, 9.03, 22.03, 5.03, 10.03, 11.03, -1.82, -1.82, -1.82, -1.82, -1.82, -2.48, -2.48, -2.48, -2.51, -2.51, -2.51, -2.48, -2.48, -2.48, 0.52, -3.48, -0.48, -2.48, -2.48, -2.48, -2.48, -2.48, -2.48, -1.51, -2.51, -2.51, 0.41, 1.41, -3.59, -3.59, -0.59, 1.70, -2.30, -2.30, -2.30, -0.30, -2.17, -2.17, 0.83, -1.17, -1.17, 7.47, -2.53, -0.53, -0.53, 3.47, -0.53, -2.53, -2.53, -1.53, -2.53, -0.40, -3.40, -0.40, -2.40, -1.40, -2.47, -2.47, -2.47, -1.47, -2.47, 1.50, -0.50, -1.50, -0.50, -1.50, -1.71, 1.29, -2.71, -5.83, -6.83, -2.83, 4.42, 1.42, -2.30, -1.30, 0.70, -2.30, -0.30, -0.67, -2.67, -2.67, -2.67, -1.67, -2.67, -1.67, 5.33, -1.67, 0.33, 1.69, 7.69, 5.69, 0.69, -0.31, 4.83, -3.17, -3.17, -2.59, -2.59, -2.59, -2.59, -2.59, -2.59, -2.18, -2.18, -3.39, -3.39, -1.13, 1.87, 1.87, 1.87, 1.87, -2.56, -1.56, -1.56, -1.56, -2.56, -2.56, 3.44, 2.44, 0.44, -1.56, -1.59, -0.59, -1.59, -1.59, -1.59, -1.56, -1.56, -1.56, -0.56, -1.56, -3.35, -4.35, -3.35, -3.35, -2.35, -1.56, 1.44, -1.56, 0.44, 3.44, -0.50, -0.50, -1.50, -2.50, 1.50, -1.35, 5.65, 0.65, -2.35, -1.35, 5.26, 2.26, -1.74, 1.26, -1.74, -0.56, -0.56, -1.56, 0.44, -0.56, 4.50, 10.50, 1.50, -1.16, -1.16, 4.84, -0.56, -1.56, -2.56, -2.56, -1.56, -2.56, -0.41, -3.41, -5.41, -2.41, -1.41, -2.57, -3.57, -3.57, -3.57, -3.57, 5.93, 6.93, 4.93, 2.93, 4.93, -1.61, 1.39, -1.61, 0.39, 0.39, -1.56, -2.56, -0.56, -1.56, -1.56, 0.64, -2.36, 1.64, 0.64, -0.36, -1.13, -2.13, -2.13, -1.84, -1.84, -0.84, 0.41, 0.41, 4.41, -2.32, -3.32, -1.32, -5.85, -3.85, 0.15, -1.53, -2.53, 4.47, -1.31, -1.31, -2.31, -0.16, -0.16, -2.16, -1.16, -1.16, -0.56, -2.56, -2.56, -0.56, -1.56, 13.44, 13.44, 4.44, -2.56, -2.56, 1.10, -2.90, 0.10, -1.90, -0.90, -3.58, -3.58, 25.42, -5.45, -5.45, 6.55, 0.88, -2.12, 4.88, -0.12, -1.12, 2.18, -1.82, -1.82, -1.82, -0.82, -0.82, 1.18, -0.82, -1.82, 0.18, -1.77, 0.23, -2.77, 0.23, 2.23, -0.29, 5.71, -0.29, 1.71, 1.71, 5.00, -0.00, 13.00, 15.00, 5.00, -1.51, -1.51, -0.51, -2.51, -1.51, -0.51, -1.51, -1.51, 4.49, -0.51, 1.52, -2.48, 7.52, 4.52, 5.52, 0.23, -3.77, -1.77, -2.77, 0.23, 0.87, 1.87, 0.87, 0.87, 2.87, -1.71, -1.71, -0.71, 3.29, 1.29, 1.36, -1.64, 0.36, -0.64, 1.36, 2.79, -0.21, 4.79, 1.79, -0.21, 12.29, 1.29, 2.29, -0.71, -2.71, -0.33, 9.67, 6.67, 1.67, -0.33, -0.84, 1.16, 0.16, 1.16, -0.84, 0.16, 1.16, 2.16, 1.16, 2.16, -2.84, -2.84, -3.84, -3.84, -2.84, 5.16, 0.16, -1.84, -1.84, 0.16, 1.10, 2.10, 3.10, 7.65, 9.65, 5.65, -0.80, 4.20, -1.80, 4.20, 3.20, 18.27, -1.73, -3.73, -1.73, -3.73, 5.01, 4.01, -1.99, -2.95, 4.05, 3.05, -2.95, -2.95, -2.95, -0.61, 0.39, 0.39, -1.56, -1.56, -0.56, -1.36, 1.64, 0.64, -1.61, -0.61, -1.61, -2.53, -2.53, 2.16, 0.16, -1.59, -0.59, -0.59, -0.59, -1.59, -0.51, -0.51, -1.51, -0.51, -2.51, -0.82, -1.82, -0.82, -1.82, -1.82, -0.48, 3.52, 0.52, -0.48, -2.48, -2.45, 1.55, 0.55, -1.45, -2.45, 12.44, 1.44, 3.44, 4.68, -5.32, -0.32, 4.44, 3.44, 2.44, -1.94, 5.06, 0.06, 0.20, 0.20, 2.20, -1.85, -2.85, 1.15, 1.15, 1.15, -0.85, -1.63, -1.63, -1.63, -1.63, -1.63, 5.41, 0.41, -0.59, 1.41, -1.59, 7.41, 3.41, -0.59, -1.59, -0.59, 2.06, -2.94, 0.06, -2.94, -2.94, -3.71, 0.29, -3.71, -3.71, -1.71, 2.21, -0.79, -1.79, -0.79, 5.21, -1.51, -2.51, -2.51, -2.51, -2.51, 2.20, 0.20, -2.80, 6.20, 6.20, -2.11, -2.11, 2.89, -0.11, -2.11, -2.11, -2.11, -2.11, -0.11, 0.89, -0.45, -2.45, -2.45, -2.45, 0.55, -2.51, -2.51, -0.51, 3.49, -1.51, -1.11, -2.11, -2.11, -1.11, -1.11, -2.82, 33.18, 17.18, 2.29, -3.71, -2.71, -2.71, -2.71, 1.67, 0.67, -1.33, 0.67, 2.67, 2.67, -2.33, -1.33, -1.33, -2.33, 2.38, -3.71, -3.71, -3.71, -0.71, 2.29, -2.71, -3.71, -2.71, -1.71, -0.71, -1.71, -1.71, -2.71, 0.29, -2.71, -2.62, -2.62, 0.38, -1.62, 1.38, 10.03, 0.03, 7.03, 9.03, 8.03, 21.80, 9.80, 15.80, 16.80, 15.80, -0.96, 17.04, -5.96, -5.32, -5.32, -5.32, 2.95, -2.05, -3.05, -3.09, -3.09, -3.09, -0.09, -0.09, -0.09, -1.09, -2.09, -2.09, -5.78, -1.78, -3.78, 2.22, -2.78, 3.91, 5.91, -2.09, 0.91, -2.09, -2.33, -1.33, -2.33, -1.33, -2.33, 9.81, -3.19, 3.81, 8.81, 11.81, -3.84, -3.84, -2.84, 0.16, -0.84, -0.45, 0.55, 8.55, 0.55, -2.45, 1.55, 5.55, -1.45, -1.45, -2.45, -1.45, -0.50, -1.50, -1.50, -1.21, -3.21, -3.21, -1.71, 0.67, -2.33, -0.33, -0.33, -0.33, 1.87, 3.87, -0.13, -2.13, 10.87, -3.21, -1.21, -0.21, 2.79, -1.21, -2.21, 1.79, -0.21, 0.79, -0.21, -1.89, -1.89, 1.11, 3.11, 0.11, -3.21, -1.21, 4.79, -0.21, 1.79, -2.21, -0.21, -2.21, -2.21, 2.79, -2.13, -0.21, 1.79, -3.21, 6.79, 47.79, 0.49, 1.49, -2.51, 3.49, 20.49, 19.71, 8.71, 13.71, 7.71, 9.71, -0.42, -0.42, -1.42, 2.58, -0.42, -0.51, -0.51, -0.51, -0.51, 2.49, 2.18, 1.18, 3.18, -3.35, -3.35, 1.65, -2.35, 1.65, -1.94, 2.06, -2.94, -2.94, -2.94, -2.59, -0.59, -1.59, 0.41, -0.59, -1.18, 1.82, -1.18, 2.82, -0.18, -2.56, -1.56, -2.56, -2.56, -1.56, 2.44, 0.44, 2.44, 0.44, -0.56, 0.44, -1.56, 2.44, -0.56, 30.44, 0.44, 2.44, -0.56, 5.44, 7.44, 1.44, 2.44, 2.44, 2.44, 1.44, -2.56, -0.56, -2.56, -2.56, 1.44, -2.56, -2.56, -1.56, -1.56, -1.56, -2.56, -2.56, -2.56, -1.56, -2.56, 0.44, -2.56, -1.56, -2.56, -1.56, -2.56, -2.37, -2.37, -2.37, -2.37, -2.37, -2.37, -2.37, -2.37, -2.37, -1.49, -1.49, -1.49, -2.37, -2.37, -2.37, -2.68, -4.68, -1.84, 1.16, -1.84, -1.84, 3.16, -0.21, -1.21, -3.21, -3.21, -3.21, 1.79, -2.21, -3.21, -1.21, -2.21, -3.21, -2.21, -1.63, -1.63, -0.63, -2.59, -2.59, -1.59, -1.88, -1.88, -1.88, -2.59, -1.59, -1.59, -2.21, 0.79, -1.21, -1.21, -0.21, 0.67, -0.33, -1.33, 0.67, -0.33, 6.99, 14.99, 28.99, 10.99, 3.99, 4.79, -1.21, -2.21, 0.79, -1.21, 11.87, 24.87, 6.87, 16.87, 12.87, 3.92, -0.08, 0.92, -1.08, -2.08, -1.08, -1.56, -2.56, -0.56, -2.56, -2.56, -2.56, -2.56, -1.56, -1.56, -2.56, -0.56, -2.56, 1.44, -1.56, -1.56, 1.47, -1.53, -1.53, -1.53, -1.53, -2.72, -1.72, 1.28, 4.33, -0.67, 0.33, 1.28, 7.28, 3.28, -2.72, -3.72, -1.72, 2.28, 1.28, 8.28, 0.31, -1.69, -1.69, -2.69, 2.31, -3.71, -1.71, -0.71, -3.71, -3.71, -2.13, -3.13, -3.13, -3.13, -3.13, 1.25, -1.75, -0.75, -2.75, -3.75, 3.26, 3.26, 5.26, 2.64, 1.64, -0.36, 0.56, 0.56, -1.44, -8.77, -9.77, -6.77, -2.50, -2.50, -0.50, -1.50, -1.50, -2.56, -2.56, -0.56, -2.56, -0.56, 0.44, -0.56, 0.44, -0.56, -1.56, -2.16, -1.16, -2.16, -1.16, -0.16, 32.14, 22.14, 26.14, 20.14, 22.14, -2.11, -3.11, -3.11, -1.11, -2.11, -3.11, -1.11, -1.11, -1.11, -0.11, -3.11, -3.11, -3.11, -3.11, 4.89, -2.82, 0.18, -0.82, -2.82, 1.18, -6.60, -6.60, -6.60, -2.65, -0.65, 1.35, 1.35, 2.35, -3.25, -3.25, -2.25, -2.25, -2.25, -1.48, -1.48, 0.52, -2.48, 0.52, -0.48, -1.48, 0.52, -0.48, -0.48, -1.89, -3.89, -3.89, -1.89, 22.11, -3.80, -2.51, -1.51, -2.51, 4.49, 3.49, 5.49, -1.51, 0.49, -1.51, -0.51, 3.49, -2.51, -0.33, 1.67, 7.67, -2.21, 3.79, 3.79, 2.87, 0.87, -1.13, -0.89, -2.89, 0.11, 16.42, 19.42, 12.42, 8.42, 12.42, 8.19, 5.19, 13.19, 0.19, 1.19, -2.37, 0.63, -2.37, -1.37, -2.37, 2.13, 1.13, 10.13, -1.87, 1.13, 1.13, -2.92, 3.08, 3.08, 0.54, 5.54, 5.54, -0.87, 2.13, -1.87, 0.37, 2.37, 0.37, 0.37, 1.37, 2.37, -0.90, 2.10, 2.10, -1.35, 1.65, -1.35, 7.52, -1.48, 10.52, 2.52, 4.52, 1.52, 5.19, 0.19, 2.19, 11.75, 0.75, 5.75, 19.52, 20.52, 10.52, -2.47, -2.47, -1.47, -1.47, -2.47, -2.47, -2.47, -2.47, -2.47, -2.47, -2.44, -2.44, -2.44, -2.44, -2.44, -2.47, -1.47, -2.47, -2.47, -2.47, -1.44, -2.44, -0.44, -2.44, -2.44, -1.47, -2.47, -1.47, 0.53, -2.47, -1.15, -3.15, -3.15, -0.15, -1.15, 2.83, 2.83, 2.83, 4.83, 2.83, 1.55, 1.55, 0.55, 3.55, 0.55, -0.17, 1.83, 0.83, -0.17, -2.17, -1.67, 3.33, -2.67, -2.67, -1.67, -2.59, -2.59, -0.59, -1.59, 0.41, 1.41, 3.41, -1.59, 2.41, 5.41, -0.59, 6.41, 7.41, -2.59, -0.59, 2.41, 5.41, 5.41, -2.48, -2.48, -1.48, -1.48, -2.48, -2.80, -2.80, -2.80, -2.80, -2.80, -1.86, -1.86, -1.86, 0.14, 0.14, 1.44, 0.44, -0.56, -1.56, 3.44, -1.16, -0.16, -1.16, -1.16, -1.16, -0.56, 3.44, 1.44, -1.56, -0.56, 0.61, 7.61, 13.61, 7.89, 23.89, 31.89, 1.44, 1.44, 1.44, 7.47, 1.47, 6.47, 8.44, 15.44, -0.56, -0.56, -2.56, 1.92, -1.08, -0.08, 1.92, -2.08, -1.08, -1.80, -1.80, -2.80, -2.92, 1.08, 6.08, -0.92, -2.92, -0.40, -0.40, 3.60, -1.40, -3.40, 12.47, 2.47, 13.47, 5.47, 3.47, -1.59, -0.59, -1.59, 2.41, 0.41, 2.41, -0.59, -1.59, 0.41, -1.63, -1.63, -1.63, -1.40, -2.40, -3.40, 1.41, -1.59, 2.41, 0.82, -0.18, -0.18, -0.25, -0.25, 1.75, 7.75, -1.25, 4.58, 3.58, -0.42, -0.42, -2.42, 1.54, 4.54, 2.54, 5.54, 0.54, -5.10, -6.10, -6.10, -6.10, -6.10, -1.39, -1.39, -2.39, -1.39, -2.39, -5.11, -4.11, -3.11, -4.11, -4.11, -0.16, -1.16, 6.44, -5.33, -3.33, 6.54, 5.54, 3.41, 7.41, 7.41, -3.58, -3.58, -3.58, -1.33, -2.33, 1.67, -1.88, -1.88, 0.12, -0.88, -0.88, -2.59, -2.59, -2.59, 3.49, 1.49, -2.51, -1.51, -0.51, -1.51, 2.49, 1.49, 2.49, -1.51, 3.52, -2.48, 5.49, -1.51, -0.51, 1.49, -2.51, 2.49, 10.49, -0.51, -1.51, -0.51, -2.07, -2.03, -3.03, -3.03, 0.83, 4.83, 0.83, -2.17, -1.17, 1.83, -1.17, 2.83, -1.17, 3.83, 0.85, 0.85, 2.85, 0.85, 4.85, -1.59, -0.59, -0.59, -2.59, -0.59, 0.81, 3.81, -2.19, 7.84, -4.16, -3.16, -3.21, -5.21, 0.79, 1.26, -0.74, 0.26, -0.74, 8.26, 2.43, 0.43, 3.43, 2.89, -2.11, -1.11, 6.82, 5.82, 1.82, 0.82, -1.18, 2.84, -1.16, 1.84, 2.84, -2.59, -2.59, -2.59, -1.59, -0.59, -2.56, -2.56, -2.56, -2.56, -2.56, -1.21, 0.79, 0.79, 27.83, 13.83, 5.83, -0.51, 0.49, -1.51, -1.51, -2.51, -2.12, -2.12, -2.12, -2.12, -2.12, -1.82, -0.82, -0.82, -0.82, 0.18, -2.59, -1.59, 3.41, 4.60, 2.60, 4.60, 0.41, -0.59, -2.59, -0.40, -1.40, -3.40, -0.21, 1.79, 19.79, 0.79, -0.21, -1.21, -2.21, -2.21, -1.21, 1.79, -2.21, 0.79, 7.14, -0.86, 2.14, 2.14, -1.86, -3.86, -2.86, 1.14, 2.14, -3.86, -2.86, -2.86, -1.86, 7.14, 1.14, 1.52, -0.48, 0.52, 0.52, -0.48, 0.49, 2.49, -0.51, -1.51, -1.51, -0.51, -0.51, -0.51, -2.60, -2.60, -2.60, -0.59, 0.41, 0.41, -0.59, 1.41, -2.43, 3.57, 3.57, -0.19, -2.19, -1.19, -0.72, -0.72, 0.28, 5.60, 0.60, 17.60, 4.95, -1.05, 2.95, 12.87, -0.13, -1.13, 1.87, -0.13, -0.13, -2.13, -2.13, -0.13, 2.87, -2.56, -2.56, -2.56, -2.56, -2.56, -1.92, -2.92, -2.92, -0.92, -2.92, 1.61, -1.39, 2.61, 3.61, -2.39, -2.92, -3.92, -0.92, 2.08, -2.92, -1.31, -1.31, 1.69, -0.31, -1.31, -1.51, 0.49, -1.51, -0.51, -1.51, -0.51, -2.51, 0.49, -2.51, 19.52, 16.52, 11.52, -1.22, -1.22, -0.22, -1.22, -1.22, -0.94, -1.94, -1.94, -1.94, -1.94, -0.55, -2.55, -2.55, -2.55, -1.55, -1.22, -1.22, -1.22, -1.22, -1.22, -0.94, -1.94, -1.94, -1.94, -1.94, 2.45, -2.55, -2.55, -2.55, -2.55, -0.94, -1.94, -1.94, -1.94, -1.94, -0.84, 0.16, -2.84, -0.84, 5.16, 0.20, 7.20, 3.20, 2.20, 0.20, -1.84, -3.84, 0.16, 3.16, 7.16, 0.16, 1.16, 3.16, 0.16, 1.16, -3.84, 4.16, 0.16, -2.84, 0.16, -2.83, 7.17, -2.83, -2.26, -2.26, -0.26, -2.89, -1.89, -2.89, -2.56, -2.56, -2.56, -2.36, -2.39, -2.62, -2.62, -2.62, -1.13, -2.13, -2.13, -3.39, -3.39, -3.21, -3.21, 2.41, 0.41, 3.41, 3.41, 4.41, -0.59, 2.41, 1.41, 0.41, -1.59, 2.41, 1.41, 5.41, 3.41, 0.41, 5.41, 8.41, 9.41, 6.41, 5.41, -1.75, -1.75, 0.25, 0.25, 3.25, 16.37, -0.31, -2.31, -2.08, 1.92, -1.08, -0.08, 0.92, 5.92, 2.92, 1.92, -2.08, -0.08, 0.53, -1.47, -1.47, -2.47, -2.47, -2.47, -1.47, -1.47, -0.47, -2.47, 0.53, -0.47, -1.47, 1.53, -1.47, -3.89, -2.89, -2.89, -3.89, -1.89, -1.86, -1.86, -1.86, -1.86, -0.86, -1.97, -1.97, -1.97, -2.97, 0.03, -0.97, -1.97, -2.97, -1.97, 1.03, -1.88, -1.88, 3.12, 1.41, -0.59, -1.59, -0.59, -1.59, -0.59, -2.40, -1.40, -2.40, -0.53, -1.53, -1.53, 3.41, -1.59, -1.59, 1.41, -1.59, -1.59, -1.50, -1.50, -0.50, -2.94, -2.94, -1.94, 1.10, 0.10, -0.90, -0.89, 2.11, -0.89, 0.11, 2.11, 0.20, 6.20, -0.80, 3.20, 1.20, 1.11, -0.89, 1.11, -1.89, 0.11, 1.17, 4.17, 3.17, 9.17, -1.83, 6.02, -1.98, -5.98, -1.60, 3.40, 4.40, -1.60, 0.40, -0.60, 1.53, 3.53, -0.47, -0.76, -2.76, -1.76, 2.16, -3.84, -2.84, -0.84, -1.84, -2.86, 1.14, 0.14, 0.14, -0.86, -0.41, 6.59, 2.59, -1.41, 0.59, -1.50, -0.50, -1.50, -1.50, 0.50, 2.43, 1.43, 0.43, -0.57, 2.43, -0.11, 0.89, 3.89, -2.11, -0.11, -0.81, 0.19, -1.81, -2.81, -2.81, 1.19, -0.81, -1.81, -0.81, 4.57, -1.43, -0.43, -1.43, 1.57, -0.43, 0.57, -2.43, 1.57, -1.43, 0.44, -1.56, 1.44, 1.44, -2.56, -1.40, -3.40, -2.40, -3.40, 0.60, -0.56, -2.56, -0.56, -1.56, -1.56, 15.41, 7.41, 4.41, -2.59, -0.59, -1.56, -0.56, 1.47, -1.53, -2.56, -2.56, -2.56, -1.56, 1.44, -2.56, -2.53, -0.53, -2.77, -1.77, 1.23, -0.77, -3.77, 0.13, -0.87, -3.87, -2.87, -1.87, 16.18, 5.18, 22.18, 24.18, 29.18, 9.74, 7.74, 8.74, 3.74, 12.74, 2.74, -0.26, 2.74, 3.74, 2.74, -1.87, -3.87, -3.87, -0.87, -0.87, -0.56, -1.56, -2.56, -0.56, 0.44, 1.44, -1.56, -1.56, -1.56, -0.55, 3.45, -1.55, -2.20, 4.80, 3.80, -1.56, -2.56, -2.56, 34.44, 3.44, 8.44, 2.64, 4.64, 1.64, 1.44, -2.56, -1.56, -2.59, -2.59, 3.41, -1.88, 1.12, 0.12, -2.61, 2.82, 0.82, -2.18, -2.64, 0.36, -2.64, -3.64, -2.64, 0.29, -0.71, 0.29, -1.71, 0.29, 3.29, 4.29, 5.29, -0.71, -0.71, -1.64, -3.64, -3.64, -1.64, -3.64, -0.85, 32.28, 5.28, 0.28, 3.28, 1.28, 22.87, -4.13, -4.13, -2.53, 6.47, 8.47, -1.86, -1.86, -1.86, -1.86, -1.86, -0.90, 0.10, -1.90, -1.90, -1.90, -0.86, 0.14, -0.86, -2.56, -1.56, -0.56, -1.56, -2.56, -2.50, -1.50, -2.50, -2.50, -2.50, -1.16, -1.16, -0.16, -1.16, -2.16, -1.11, -2.11, -2.11, 8.59, 3.59, 6.59, -2.25, 0.75, -2.25, -1.25, -0.25, -1.12, -4.12, -3.12, 6.88, -0.12, -1.56, -2.56, -1.56, -0.56, -0.56, 0.44, 5.68, 3.68, 1.68, -2.56, -2.56, -1.56, -0.56, -1.56, 1.44, 0.44, -0.56, 3.44, -0.56, -1.56, -0.56, 0.47, -0.53, 0.47, 2.47, 5.47, 0.47, 0.39, 1.39, 2.39, -1.61, -0.61, -0.16, -1.16, -2.16, -1.16, -2.16, -1.16, -1.16, -0.16, -2.16, 1.84, -1.16, -2.16, -0.16, 1.84, -2.16, 1.39, -1.61, 0.39, -1.61, -0.61, -2.44, -2.44, -2.44, -2.44, -1.44, -2.44, 0.50, -1.50, -1.50, -1.50, -1.50, -1.50, -0.18, -1.18, -0.18, 2.41, 19.41, 38.41, 0.12, 20.12, 63.12, -3.22, -1.22, -3.22, -2.32, -1.32, -3.32, 0.13, -3.87, -0.87, -2.71, -1.71, -2.71, 0.29, -1.71, 30.34, 18.34, 27.34, 0.34, 3.34, -2.20, -0.20, -2.20, 5.80, 7.80, 24.38, 5.38, -2.62, 5.38, 20.38, 1.63, 0.63, 1.63, 6.63, 5.63, 0.34, 0.34, 1.34, 0.34, 6.34, 12.34, 4.34, 3.34, 1.34, 3.34, 0.34, -2.66, 0.34, 0.34, -1.66, 0.29, 7.29, 9.29, 2.29, 5.29, 1.79, -1.21, 5.79, 1.83, -1.17, 8.83, -0.21, 4.79, 14.79, -2.21, -2.21, 0.79, 2.83, 1.83, 2.83, -0.13, -2.13, 1.87, -2.13, -2.13, -2.47, -2.47, -2.47, -2.47, -1.47, -1.51, -2.51, -0.51, -0.51, -1.51, 4.28, -2.72, -4.72, -3.72, -5.72, 1.43, -1.57, -1.57, -1.57, 1.43, -0.51, -2.51, -0.51, -1.51, -2.51, 3.49, -2.51, -1.51, 1.49, -1.51, 8.47, 4.47, 6.47, 3.47, 1.47, 5.13, 3.13, 3.13, 3.13, 9.13, 0.47, 4.47, 10.47, 7.47, -0.53, -1.85, -1.85, 0.15, -0.85, 0.15, 3.35, -3.65, -4.65, -2.80, -2.80, -2.80, -2.80, -2.80, -1.13, -2.13, -2.13, 1.87, 6.69, 18.69, 4.69, 18.69, 14.69, 5.18, 5.18, 0.18, -1.82, 1.18, -1.82, 4.43, 3.43, 5.43, -0.83, 5.17, 0.17, 0.50, 1.50, -0.50, 1.53, -0.47, -1.47, 0.53, -1.47, -0.87, -0.87, -1.87, -1.87, -0.87, -2.88, -1.88, -2.88, -5.66, -1.66, 0.34, -2.53, -2.53, -1.53, -2.53, -2.53, 0.47, -1.53, -0.53, -2.53, -0.53, -0.59, 2.41, -1.59, -1.59, -1.59, -1.16, -1.16, -0.16, 2.10, 0.10, -0.90, 2.10, 1.10, 0.44, -0.56, 3.44, 1.44, 0.44, 1.47, 0.47, -2.53, -2.53, 0.47, 1.44, -0.56, 3.44, -2.56, 2.44, 0.50, -2.50, -1.50, -0.50, -2.50, 3.50, -2.50, 0.50, -1.50, -2.50, -0.51, 1.49, -1.51, -2.51, -2.51, -1.51, -2.51, -2.51, -2.51, 4.49, 1.49, -2.51, -2.56, -2.56, -1.56, -4.32, -6.32, -6.32, 1.91, -1.09, -1.09, 0.58, 0.58, -1.42, -3.94, -3.94, -0.94, 2.06, 1.06, -2.94, -2.94, 0.06, -3.94, -2.94, 1.68, 4.68, -2.32, -2.32, -3.32, -2.94, -2.94, -1.94, -2.94, -3.94, 1.53, 1.53, 6.53, 1.53, 4.53, -2.44, -0.44, -2.44, 1.56, -2.44, -3.94, -2.94, -2.94, -3.94, -3.94, -6.65, -2.65, -3.65, -1.70, 3.30, -4.70, -3.96, -4.96, -6.96, -1.21, 5.79, -1.21, -2.21, 0.79, -3.87, -3.87, -3.87, -3.87, -2.87, 9.36, 9.36, 4.36, 13.50, 2.50, 4.50, 34.03, 9.03, 11.03, 32.36, 43.36, 28.36, 9.60, -1.67, -0.67, -2.67, -2.31, -3.31, -3.31, -2.31, -2.31, -0.31, -1.97, -1.97, -0.97, -1.92, 0.08, -0.92, -1.97, -1.97, -1.97, 0.34, -1.66, -1.66, -2.49, -2.49, -2.49, -2.36, 10.64, 3.64, -1.36, 1.64, -8.97, -4.97, -1.97, -2.55, -2.55, -2.55, -1.94, -1.94, -1.94, 6.10, 12.10, 16.10, -0.90, 0.10, 3.97, 6.97, 3.97, 2.97, 6.97, -0.67, -1.67, -0.67, -1.67, -0.67, -0.25, -0.25, 2.75, 1.75, 5.75, 7.83, -1.17, -0.17, -0.17, -1.17, 0.83, 0.83, -0.17, 0.83, 8.18, 9.18, -2.82, 6.91, 0.91, -0.09, -2.19, -2.19, -2.19, 0.81, -2.19, 3.81, 5.81, 14.81, -2.18, -0.18, -1.18, -0.18, 0.82, -1.63, -1.63, -1.63, -0.63, -1.63, -3.39, -3.39, -3.39, -5.16, -5.16, -5.16, -3.39, -3.39, -3.39, -1.78, 3.22, -0.78, 5.77, -0.23, -0.23, 1.78, -1.22, -0.22, -2.01, 1.99, -2.01, -0.87, -1.87, 0.13, -0.87, 1.13, 0.13, 2.93, 4.93, 4.93, -2.53, -1.53, -2.53, -2.53, -1.53, 4.87, 7.87, 1.87, -2.13, -1.13, 6.99, -1.01, -0.01, 1.99, -2.01, -1.01, -2.01, -2.01, -2.01, -2.01, 6.02, 3.02, -1.98, -1.98, -1.98, 0.99, -1.01, -2.01, -2.01, -2.01, 6.50, 1.50, 5.50, -2.39, -0.39, 0.61, -3.17, -3.17, 3.83, -0.07, 2.93, -0.07, -1.98, 7.02, -1.98, 1.79, 8.79, 40.79, 52.79, 34.79, 7.29, 1.29, 1.29, -1.71, 0.29, -3.71, 1.29, -3.71, 3.29, 3.29, 5.29, -0.71, 3.29, 0.29, -0.82, 3.18, 1.18, 0.88, 2.88, -1.12, -0.23, 0.77, -1.23, -1.23, 1.67, 2.67, 0.67, 5.99, 7.99, 4.99, 3.03, 0.03, 1.03, 2.82, 0.82, -0.18, 10.50, 13.50, 4.50, 1.47, 0.47, -2.53, -1.92, -1.92, -1.92, -0.92, -0.92, -1.97, -1.97, -0.97, -1.97, -1.97, -1.66, -1.66, 5.34, -0.66, 1.34, 2.44, 5.44, 3.44, 8.44, 2.44, -1.56, -1.56, -1.56, 3.44, 0.44, 3.44, 1.44, -0.56, 0.44, 7.44, 27.44, 15.44, 15.44, 14.44, 11.44, 13.89, 17.89, 23.89, 21.89, 19.89, -2.56, -2.56, 0.44, -2.56, -0.56, -1.56, -2.56, 0.44, -2.56, -0.56, -0.56, 3.44, 1.44, 0.44, 4.44, -0.56, 1.44, 2.44, 1.44, -0.56, 0.65, 2.65, -1.35, -2.35, 2.65, 2.44, -0.56, 0.44, 1.44, -1.56, -2.43, -2.43, -2.43, -2.43, -1.43, -2.43, -2.43, -2.43, -2.43, -2.43, -2.43, -1.43, -1.12, -2.12, -2.12, -2.51, -2.51, -2.51, -2.12, -2.12, -2.12, -2.51, -2.51, -2.51, -1.86, -1.86, -1.86, -1.81, 2.19, -2.81, -2.81, 3.19, -0.25, 1.75, -2.25, 0.75, -2.25, -2.48, -1.48, -2.48, -2.48, 0.52, -2.48, -1.48, -2.48, -1.48, -2.48, 7.41, 0.41, -1.59, -2.59, 3.41, 0.41, 0.41, -1.59, 5.41, 5.41, -0.59, 6.41, -0.21, 4.79, -3.21, -2.21, -1.21, 4.79, -2.21, -3.21, -1.21, -2.21, -1.67, -2.67, -2.67, -2.15, -2.15, -3.15, -1.56, -0.56, -0.56, 0.44, 3.44, -1.56, -2.56, 0.44, 3.44, -0.56, -2.56, -0.56, -1.56, -0.56, -0.56, 3.04, -2.96, 1.04, -0.96, -1.96, 3.22, 2.22, -3.78, -3.78, 6.22, 4.04, 1.04, 4.04, 7.04, -4.96, 12.87, 1.87, -0.13, -0.50, -1.50, -1.50, 5.01, 0.01, 2.01, -0.99, 0.01, 0.91, 0.91, 4.91, 0.91, 0.91, 3.79, 5.79, 8.79, 0.79, 5.79, -2.07, -3.07, -1.07, -1.07, -2.07, 0.93, 0.26, -0.74, 1.26, -0.70, 2.30, 1.30, 1.44, -1.56, -2.56, 1.20, 7.20, 37.20, -1.80, -0.80, -0.80, 3.25, 6.25, 6.25, 2.96, 1.96, 6.96, 1.52, 4.52, 3.52, -1.47, -1.47, 0.53, -0.56, 1.44, -2.56, -0.56, -1.56, -1.56, 0.13, 3.13, 10.13, -1.61, -1.61, -1.61, -1.96, -0.96, -1.96, 0.04, -1.96, -2.87, -2.87, -2.87, 3.13, -0.87, -2.59, -2.59, -2.59, -1.59, -2.59, -1.05, -2.05, -0.05, -2.87, -3.87, -1.87, -2.43, -2.43, -0.43, -2.20, -2.20, -2.20, -2.20, -1.64, -1.64, -1.64, -1.64, -1.64, -4.25, -4.25, -4.25, -4.25, -4.25, -1.43, -1.43, -1.43, -1.43, -1.43, -2.45, -2.45, -2.48, 4.10, 2.10, 1.10, -1.94, -1.94, 11.06, -1.88, 0.12, -0.88, 0.93, -1.07, 0.93, 0.78, -0.22, -3.22, 4.07, 5.07, 6.07, 5.07, 4.07, -2.17, -2.17, 1.83, 1.27, -0.73, -1.73, -2.08, -1.08, -2.08, -2.08, -2.08, -3.45, -3.45, -3.45, 2.55, -3.45, -1.56, 0.44, 1.44, -1.56, 0.44, -2.73, -2.73, 0.44, -2.56, -2.56, 4.79, 5.79, -0.21, -1.21, 2.79, -0.56, 1.44, 0.44, -1.56, -2.56, -2.29, -3.29, -0.29, 5.71, -2.29, -2.40, -2.40, -2.40, 13.47, 3.47, 6.47, 0.41, -0.59, -1.59, -1.59, -1.59, 5.03, 19.03, 37.03, 16.03, 17.03, -2.59, -2.59, -1.59, 1.41, -2.59, 10.98, 2.98, 0.98, -4.02, 1.98, 4.98, 10.47, 4.47, 2.47, 5.47, 3.01, -0.99, -1.99, 0.01, -2.24, -1.24, 10.32, 3.32, 0.32, -2.68, 1.39, 9.03, -1.97, -2.97, -3.24, -3.24, 7.41, 2.41, -0.59, -0.59, 5.39, 1.39, 1.48, -0.52, 2.03, -0.97, -1.97, 1.03, 5.76, 3.76, 6.39, 19.39, 2.39, -0.61, 5.39, -1.61, -1.74, -0.74, 3.76, -2.24, -0.24, -1.24, 0.48, -1.52, -0.52, 3.48, 9.76, 1.41, 2.39, 2.39, -1.61, 0.47, -2.53, -2.53, 2.09, -2.91, -1.91, 2.76, 0.76, 3.76, 4.42, -0.58, 0.42, 4.41, 1.47, -1.53, -2.53, 8.39, 7.14, -1.31, -2.31, -2.31, 15.47, 2.47, -0.53, 8.76, 4.76, 4.86, 11.76, 2.76, 3.42, 3.42, 0.03, -0.97, 4.76, 2.76, 16.19, 10.19, -0.53, -2.53, -1.99, 3.01, 3.76, 3.27, -0.53, 3.76, 1.06, -2.44, 0.01, 1.39, 4.00, 10.55, -0.52, -1.52, -2.52, -1.98, -1.98, 1.02, 1.02, -1.98, -1.23, 0.77, -2.23, -2.23, -2.23, -2.39, -3.39, -1.39, -4.10, -3.10, -0.10, 0.64, -1.36, -0.36, -1.99, -1.99, 7.01, 16.64, 3.64, 4.64, -2.36, 2.64, 3.64, 0.47, 1.47, -1.53, -1.24, -3.24, -1.24, -3.24, -1.24, -1.06, -2.06, -2.06, -1.06, 0.94, -1.51, 0.49, -2.51, 3.45, -1.55, -2.55, -1.54, -1.54, -1.54, -3.02, -3.02, -4.02, -0.51, -0.51, 1.49, 10.82, 6.82, 18.82, -0.80, -0.80, -1.80, 1.73, 0.73, -1.27, -0.78, 1.22, -1.78, 0.49, -1.51, -1.51, 1.13, 5.13, 11.13, -0.00, -1.00, -1.00, -0.00, 4.00, -0.32, -2.32, -1.32, -0.20, 5.80, -0.20, -5.19, -2.19, 0.81, 0.68, 3.68, -1.32, -2.32, -0.32, 0.68, -2.30, -1.30, 0.70, 5.70, 0.70, -1.30, 0.70, -0.30, -1.30, -0.30, -0.73, -0.73, -1.73, -0.73, -0.73, 1.70, -0.30, 0.70, -1.30, 1.70, -0.73, -0.73, -1.73, -0.73, -0.73, 0.57, -0.43, -1.43, -1.56, -1.56, -2.56, 6.39, 0.39, -1.61, 7.63, -3.37, 0.63, -1.38, -2.38, -0.93, -1.93, 0.26, -4.74, 6.18, 0.18, -1.82, -2.01, -2.01, -2.01, -1.55, -2.55, 0.45, -3.01, -2.01, -2.01, -2.06, -0.06, -2.06, 1.20, -1.80, -1.80, -1.28, 0.72, -2.28, 0.33, -1.67, -1.67, 3.37, 3.37, 3.37, 7.37, 2.37, -0.43, -0.43, 1.57, -1.43, 1.57, -1.73, -0.73, 4.27, 2.27, 4.27, 6.23, 0.23, 1.23, 1.23, 2.23, -0.57, -0.57, -2.57, -2.57, -1.57, -0.26, -1.26, -1.26, 3.99, 4.99, 5.99, -0.01, 0.99, -0.01, 4.99, 0.99, 0.99, -2.55, -2.55, -2.55, -2.67, 8.33, 10.33, -2.78, -2.78, -3.78, -0.93, -0.93, -2.93, 0.99, 0.99, 1.99, -1.55, -2.55, -2.55, -1.26, -1.26, 0.74, -0.01, -0.01, 1.99, 1.68, -2.32, -2.32, -2.32, 2.68, 0.04, 1.04, -0.96, 0.04, -1.96, 5.11, 0.11, -1.89, -1.89, 0.11, 2.45, 3.45, 2.45, 2.43, 23.43, 11.43, -1.01, -2.01, 1.99, -1.66, 6.34, 2.34, -0.91, 3.09, -0.91, -2.09, 1.91, 1.91, 5.34, 4.34, 0.34, -1.57, 1.43, -1.57, -1.57, -1.57, -2.82, -0.82, -2.82, 1.18, -1.82, -1.28, -1.28, -1.28, 1.94, -0.06, -2.06, -1.36, -1.36, -2.36, -2.36, -2.36, 0.64, 3.01, -1.99, -0.99, -1.77, 4.23, -1.77, -3.14, -4.14, 14.86, 25.86, 13.86, -2.01, -2.01, -2.01, -2.01, 23.32, 15.32, -2.68, -4.68, -4.68, 1.14, -1.86, 0.14, -2.86, -0.86, -2.01, 3.99, -3.01, -2.01, -2.01, -3.01, -3.01, -2.01, -1.01, 9.23, 5.23, 5.23, 0.76, -1.24, 5.76, 1.94, -0.06, -0.06, -0.06, 2.94, -0.68, -2.68, -3.68, -0.40, -1.40, -1.40, -2.92, -2.92, -0.92, -2.43, -1.43, -1.43, -1.43, 2.57, -0.43, -2.23, -1.23, -1.23, -2.56, -0.56, -0.56, 0.40, 0.40, 0.40, -1.73, -1.73, 1.27, 3.27, 8.27, 2.27, 0.27, -0.73, 0.27, 7.46, 5.46, 1.46, -1.73, -1.73, -2.73, -2.04, -2.04, 0.96, -5.90, -5.90, -0.90, 28.74, 30.74, 8.74, 0.74, 8.74, 0.74, -2.57, -0.57, -1.57, 0.49, -2.51, 0.49, 4.09, -2.91, 3.09, -3.53, -0.53, 7.47, -1.29, -3.29, -3.29, -1.25, -1.25, 0.75, -2.43, 0.57, -2.43, -1.82, -1.82, -1.82, -1.82, -1.82, -0.82, -2.43, -1.43, 0.57, -2.43, -0.43, -1.43, 0.42, 6.42, 0.42, -0.37, -2.37, -2.37, -2.37, -1.37, -2.37, -2.37, -2.37, -2.37, -1.37, -0.57, -1.57, -1.57, 3.43, 0.43, 10.72, -0.28, 2.72, -1.28, -1.28, 0.72, 1.46, 10.46, 9.46, 5.46, 9.46, 2.48, 3.48, 12.48, 6.48, 12.48, -1.36, 0.64, -1.36, -2.36, -0.36, -2.36, -1.58, -1.58, -1.58, 2.43, -3.57, -2.57, 2.74, 1.74, 1.74, -0.85, -0.85, -1.85, -2.49, -2.49, -0.49, -0.49, -2.49, 0.37, -0.63, 3.37, 1.74, 2.74, 1.74, 7.96, -2.04, -2.04, -1.56, 0.44, 9.44, 8.44, 0.44, -0.78, -1.78, -0.78, -1.78, 0.22, -3.48, -6.48, -5.48, 0.52, -4.48, -0.23, 8.77, 0.77, 7.77, 5.77, 3.78, -1.22, 1.78, 3.78, 5.78, -3.54, -3.54, -2.54, 1.34, -1.66, 0.34, 1.64, -2.36, -2.36, -2.50, -2.50, -2.50, -3.50, -3.50, -3.50, -2.50, -1.50, -1.90, -0.90, -1.90, -1.03, -0.03, -0.03, -0.90, 0.10, 0.10, -1.90, -0.90, -1.90, -0.78, -1.78, -0.78, 2.37, -0.63, 1.37, 3.44, -2.56, 2.44, 32.40, 22.40, 34.65, 20.65, 12.65, -2.38, -2.38, -2.38, -2.31, -1.31, -2.31, -2.81, -1.81, -1.81, -1.96, -1.96, -1.96, -0.28, 3.72, -2.28, 1.72, -1.28, -1.32, -1.32, -1.32, -1.97, 0.03, -0.97, -0.97, 0.03, -1.97, 7.69, 0.69, -0.76, -2.76, 0.08, 2.08, 0.08, -0.03, -1.03, 0.97, 8.60, 3.60, -0.40, 0.57, -2.43, -2.43, -2.43, -2.43, 7.97, -2.03, -3.03, -3.03, -3.03, -1.43, -2.43, -2.43, -2.43, -2.43, 20.56, 7.56, 0.56, 2.13, 0.13, -0.87, 4.60, 5.60, 0.60, -2.09, -1.09, -3.09, -0.28, -2.28, -1.28, -3.01, -3.01, -0.01, -0.01, -0.01, -2.01, -2.26, -1.26, -2.26, -2.62, -1.67, -1.67, 1.33, -2.33, -1.33, -2.33, -0.97, -0.97, -0.97, -2.33, -0.33, -0.33, -2.79, -2.79, -2.79, -2.33, -1.33, -2.33, -1.01, 5.99, 10.99, 6.18, 3.18, -1.82, -1.26, 4.74, 5.74, -1.13, -1.13, -0.13, -0.88, -1.88, -1.88, 1.99, -1.01, -1.01, 2.45, 1.45, -2.55, 0.78, -2.22, -2.22, 4.09, -1.91, -2.91, -1.01, -1.01, -2.01, 2.00, 2.00, -5.00, -1.01, -1.01, -2.01, 11.91, 5.91, -1.09, 1.91, -1.09, 2.17, -0.83, 2.17, 3.17, 1.17, -1.33, -2.33, -2.33, -0.33, -2.33, -0.14, -2.14, -1.14, -0.14, -0.14, -2.33, -2.33, -2.33, -1.33, -1.33, 4.23, -0.77, -1.77, -0.75, -1.75, -0.75, -0.31, 0.69, -2.31, -1.77, -1.77, 3.23, 1.99, 2.99, -0.01, -1.01, -1.01, -2.01, 4.78, 1.78, -0.22, 0.37, -5.63, -5.63, -4.63, -5.63, 2.20, -1.80, 0.20, 1.20, 9.20, -0.63, -0.63, -1.63, -0.63, -0.63, 0.57, -1.43, -1.43, -1.43, -2.43, 0.57, -2.43, -1.43, -1.43, 0.57, -2.26, -0.26, -2.26, -0.83, -1.83, -0.83, -1.83, -1.83, -0.81, 5.19, -0.81, -1.81, -0.81, 2.62, 1.62, 0.62, -0.38, 0.62, 5.62, 9.46, 3.46, 0.46, -1.01, -0.01, -2.01, 3.62, 4.62, 0.62, -1.14, -2.14, 1.86, 0.57, -2.43, 8.57, 1.44, -0.56, -0.56, 1.37, 1.37, 2.37, 7.63, 7.63, 7.63, -0.55, -2.55, -2.55, -0.61, -0.61, -2.61, -3.01, -3.01, -0.01, -1.55, -2.55, 0.45, -0.24, -2.24, -2.24, -1.36, -1.36, 1.64, -0.36, -1.36, -0.36, 3.79, -0.21, 1.79, 0.64, -1.36, 0.64, 3.23, 12.23, 6.23, -0.16, -0.16, -2.16, -0.70, -1.70, 9.30, 0.30, 1.30, -0.88, 4.12, 2.12, 2.12, 3.12, -1.99, 2.01, 7.01, 0.42, -1.58, -1.58, -1.69, 10.31, -1.69, -3.70, -0.70, -0.70, -1.54, -2.06, -2.51, 0.49, 0.49, -0.76, -0.76, -1.76, -4.02, -4.02, -4.02, -4.02, -4.02, 8.45, 13.45, 13.45, 3.45, 8.45, -1.43, -2.43, -0.43, 5.94, 0.94, -1.06, 0.32, 2.32, 1.32, -2.43, -1.43, -1.43, -4.75, 1.25, -2.75, -4.75, -4.75, -2.19, -0.19, -1.19, -1.19, 0.81, 2.55, -2.45, -3.45, -4.45, -4.45, -0.37, 0.63, -1.37, 3.63, -0.37, -1.37, -1.37, -2.37, -2.37, -0.37, -1.82, 0.18, -1.82, -2.65, -2.65, -2.65, -2.25, -2.25, -2.25, -2.03, -2.03, 0.97, -2.03, 0.97, -0.03, 0.57, 0.57, -1.43, 3.25, 2.25, 1.25, -1.61, 5.99, 5.99, 2.99, -3.88, 0.12, 7.12, -4.62, -5.62, -1.62, 2.22, 4.22, 2.22, 2.43, 3.43, 1.43, 6.43, 6.43, -2.38, -2.38, -2.38, -1.38, -0.38, -1.26, -2.26, -1.26, 1.74, 1.74, -2.86, -1.86, -2.86, -2.86, 2.14, 3.14, 14.14, 4.14, 3.14, 4.14, -2.05, -2.05, -2.05, -0.05, -2.05, -1.92, 1.08, -1.92, -1.92, -0.92, -1.92, -1.92, -1.92, 0.08, -1.92, -1.05, -2.05, -2.05, -2.05, -2.05, -0.51, -1.51, 1.49, 0.49, -2.51, -0.26, 0.74, -1.26, -1.26, -0.26, -2.18, -2.18, -2.18, -2.18, 2.82, -0.77, 2.23, 0.23, -0.77, 1.23, -0.75, -1.75, -0.75, -0.79, 2.21, 5.21, 14.25, 1.25, 4.25, 9.76, 3.76, 0.76, 3.99, 1.99, 0.99, 0.49, -0.51, -2.51, 4.99, 5.99, 3.99, 4.39, 7.39, 3.39, 0.39, 1.39, 10.39, -1.61, 1.39, 5.45, 1.45, 0.45, -2.55, 0.45, 1.99, 3.99, -0.01, -1.01, 0.99, 2.03, 3.03, 8.03, 2.03, 6.03, -1.03, -0.03, -2.03, 1.17, -1.83, 1.17, -2.83, -1.83, -2.83, 0.01, 0.01, 12.01, 1.17, -2.83, 0.17, -2.83, -1.83, 0.17, 0.57, -2.43, -2.43, -2.43, -1.43, -2.43, -5.40, -3.40, -2.40, 0.92, 4.92, -1.08, -1.59, -0.59, -1.59, -1.59, -0.59, -1.38, -2.38, -1.38, -1.38, -2.38, -0.38, 0.62, -2.38, -1.38, 1.62, -2.38, -1.38, -2.38, -2.38, -2.38, 3.04, -0.96, -1.96, 1.04, 5.04, 1.82, -1.18, -3.18, 1.82, -1.18, 5.01, -1.99, -1.99, -1.36, -1.36, -2.36, -0.77, -1.77, -1.77, 0.25, 1.25, -1.99, -1.99, 0.01, -1.77, -1.77, -1.77, 1.08, 1.08, -2.92, -0.38, -1.38, -1.38, 10.49, 4.49, 2.49, 1.65, -0.35, -2.35, -0.76, 4.24, 0.24, -1.98, 0.02, -1.98, -1.35, -1.35, -0.35, -1.25, -0.25, -1.25, -0.04, -3.04, -2.04, 4.10, -0.90, -1.90, 0.75, -1.25, -1.25, 1.10, -2.90, 1.10, 3.88, -3.12, -2.12, 6.33, 3.33, 3.33, -0.24, -2.24, 0.76, -3.81, -3.81, -2.81, -1.83, 0.17, 0.17, -3.83, -0.83, -2.83, -1.83, 0.17, -2.83, -2.32, -2.32, -3.32, 8.14, 6.14, 3.14, 3.36, 5.36, 5.36, 3.55, -1.45, 1.55, -0.45, -1.45, -0.45, 0.14, 1.14, 0.14, -0.49, 1.51, 2.51, 0.74, 2.74, -1.26, 3.74, 20.74, -2.01, -1.01, 5.99, 2.99, -0.01, -3.01, -2.01, -0.01, 2.99, 7.99, 6.93, -2.07, -0.07, 8.93, 13.93, 1.14, -0.86, -1.86, 1.87, 0.87, 1.87, 0.43, -1.57, 1.43, -1.82, -1.82, -0.82, 4.66, -0.34, 1.66, 0.03, 1.03, -1.97, 6.82, 3.82, 2.82, 8.00, 10.00, 4.00, 2.64, -1.36, 3.64, -1.88, 0.12, -1.88, -3.02, 3.98, -2.02, -2.83, 1.17, 0.17, -2.34, -1.34, -1.34, -2.34, -1.34, 10.66, -2.34, -1.34, -2.34, -2.34, -1.73, -1.73, -1.73, -1.73, -1.73, -2.22, -2.22, -2.22, -2.22, -2.22, -2.34, -2.34, -0.34, -2.34, -1.34, -1.37, -1.37, -1.37, -1.37, 0.63, -2.37, 5.63, -2.37, -1.37, 1.63, 1.22, -2.78, -5.78, -5.78, -0.78, -3.54, 1.46, 0.46, 2.46, 0.46, 5.64, -3.36, -3.36, -2.36, -0.36, 1.73, -3.27, 2.73, -0.14, 2.86, -0.14, 1.64, -1.36, -0.36, -2.01, -1.01, -2.01, -2.01, -2.01, -1.36, -2.49, -1.99, -2.56, -1.56, -1.56, -1.80, -0.80, 3.20, 9.40, 59.40, 71.40, -1.82, 1.18, -0.36, -1.36, 0.64, 8.99, 13.99, 23.99, 5.10, 1.10, 2.10, -0.90, 0.10, 1.10, 0.10, -0.90, 0.10, 2.10, -1.81, -0.81, -1.81, -1.81, 0.19, 0.96, 1.96, 3.96, -1.04, -0.04, 2.29, 2.29, 0.29, -2.01, 8.99, 16.99, 16.99, -2.01, 5.74, 1.74, -2.26, 0.74, -2.26, -0.81, -0.81, -1.81, 1.59, -0.41, 2.59, 0.59, -1.41, -1.41, -1.41, -0.41, 0.59, -3.00, -3.00, -1.00, 6.66, 0.66, -3.34, -0.06, 3.94, 0.94, -3.08, -3.08, -3.08, -2.56, -0.56, -2.56, -1.72, -1.72, -1.72, 0.28, -1.72, 1.28, -2.56, -2.56, -2.56, -3.02, -3.02, -2.02, -1.51, 1.49, 1.49, -7.42, -8.42, -5.42, 2.99, -0.01, -0.01, 0.62, -2.38, -0.38, -0.01, -1.01, 0.99, 2.71, -3.29, -2.29, 0.46, -1.54, -0.54, -2.17, -3.17, -2.17, 42.99, 34.99, -0.01, -0.98, -1.98, -1.98, 0.31, -1.69, 0.31, 2.03, 5.03, 5.03, -0.75, -1.75, -1.75, -2.49, -2.49, -2.49, -0.32, 1.68, 0.68, -0.48, -1.48, -1.48, 0.45, -0.55, -1.55, 0.26, -2.74, -1.74, -1.74, 1.26, -1.74, -2.55, -1.55, -2.55, -1.55, -0.55, 1.45, -0.01, -0.01, -2.01, -0.01, 3.99, -2.01, 1.32, -4.68, -3.68, -1.56, 6.44, 1.44, -2.21, 0.79, 1.79, -2.21, -2.21, -3.33, -3.33, -3.33, -3.33, -3.33, 0.23, -3.77, 0.23, 2.18, 2.18, -0.82, -1.06, -1.06, -1.06, 1.08, 5.08, 5.08, -2.43, -2.43, -2.43, -1.80, 19.20, 4.20, 1.57, 0.57, 2.57, -2.43, -1.43, -2.43, -1.80, -1.80, -1.80, -1.56, -1.56, -1.56, 1.91, 1.91, 0.91, 0.44, 9.44, 1.44, -1.67, -1.67, -1.67, 1.64, -0.36, -2.36, -0.51, 30.49, 14.49, -4.43, -3.43, -1.43, 3.30, -2.70, -1.70, -3.86, -2.86, -2.86, 4.29, 1.29, -0.71, -4.33, -3.33, -1.33, 6.07, 8.07, 10.07, -1.90, 1.10, 0.10, 6.10, 4.10, 5.10, 8.47, -0.53, 4.47, 4.10, 1.10, 4.10, 0.01, 11.01, -1.99, 7.48, 1.48, 0.48, -2.36, -1.36, -1.36, -1.07, -2.07, -2.07, -0.55, -2.55, 4.45, 3.00, -1.00, -0.00, 2.00, -2.00, 2.03, -0.97, 4.03, 2.03, 3.03, 7.69, 4.69, 4.69, 0.44, -2.56, -1.56, 0.57, 0.57, -1.43, -3.18, -3.18, -3.18, -3.18, -3.18, 12.97, 12.97, 5.97, 0.20, 0.70, -4.30, -4.30, -4.84, -4.84, -4.84, -2.59, -2.59, -2.59, -4.14, -4.14, -4.14, 6.09, 9.09, 7.09, -1.31, 2.69, -1.43, 0.57, -3.01, -2.01, -1.01, -4.17, -3.17, -2.17, -2.18, -3.18, -3.18, -5.08, 0.92, -3.08, 9.83, 3.83, -1.17, -0.01, -2.01, -2.01, 0.76, 0.76, 3.76, 0.57, 0.57, -2.43, 3.57, 4.57, 1.57, 0.12, -2.88, 0.12, -1.43, 1.57, -1.43, 0.57, 2.57, 0.57, 4.37, -1.63, -1.63, 1.99, 4.99, 3.99, 0.49, -2.51, 0.49, -1.51, -0.51, -1.51, 4.95, -1.05, -0.05, 7.01, -0.99, 10.01, 0.53, -1.47, -0.47, -2.12, -1.12, -1.12, 6.43, 3.43, -1.57, -0.60, 2.40, 2.40, -0.96, -0.96, -0.96, -0.96, -1.96, 16.63, -1.54, 10.55, 21.55, 35.55, -1.23, -0.23, -2.23, 4.36, 4.36, -2.64, -2.64, -4.64, -1.89, -1.89, -1.89, -0.82, -2.82, -2.82, 5.49, -2.51, -2.51, -2.36, -2.36, -2.36, -2.24, -2.24, -2.24, 8.90, 2.90, 10.90, -0.94, -0.55, -0.55, -2.55, -2.71, -0.71, -1.71, -0.67, 3.33, -1.67, -2.01, -1.01, -5.01, -2.68, -4.68, -0.68, -1.26, -0.26, -2.26, 4.99, -1.01, 0.99, -2.42, 6.58, 3.58, 13.03, 2.03, -0.97, 3.74, 3.74, 4.74, -1.01, -2.01, -1.01, -1.80, 8.20, 2.20, -1.80, 2.20, -1.98, -2.98, 2.02, -0.98, 1.02, 21.73, 13.73, 6.73, 1.73, 1.73, -1.80, -0.80, -1.80, -1.80, -1.80, 6.08, 5.08, -2.92, -0.76, 0.24, -1.76, -0.67, -1.67, 0.33, -2.36, -2.36, -2.36, -1.21, -2.21, 13.79, -2.36, -2.36, -2.36, -0.38, -1.38, 1.15, -3.22, -3.22, -1.22, -2.01, -2.01, -2.01, -0.38, -0.38, 2.62, -1.26, -0.23, 3.77, -0.35, 0.65, -2.35, 0.03, -2.97, -0.97, -1.94, -1.94, -4.94, -0.77, -2.77, -3.77, -1.63, -2.63, -1.63, -0.05, -1.05, 4.95, -3.34, -2.34, -3.34, 3.30, 7.30, 0.30, 2.45, 3.45, 10.45, -1.41, -1.41, -1.41, 0.60, 0.60, -1.40, -1.88, -0.88, -0.88, -2.83, -5.32, -5.32, -5.32, -0.38, -1.38, -1.38, -3.55, -2.55, -2.55, -1.38, 0.62, -1.38, -3.14, -6.14, -5.14, -3.82, -2.82, -3.82, -1.32, 0.68, -1.32, 4.67, 8.67, -1.33, 2.51, 7.51, 3.51, 20.73, 35.73, 8.73, 6.03, 4.03, 0.03, -0.01, -1.63, 0.32, -0.43, -0.43, 8.57, 9.57, 2.57, -1.99, 1.01, 2.01, 26.01, 6.75, -1.25, 9.75, 0.75, 0.75, -0.33, -1.33, -2.33, -0.18, -1.18, -2.18, -1.87, -0.87, -1.87, -1.67, -1.67, -1.67, -2.10, 0.90, -2.10, -1.56, 0.44, -1.56, 0.40, -1.60, -2.60, 3.62, 1.62, 13.62, -3.83, -3.83, 0.17, -1.82, -1.82, 0.18, -0.17, -0.17, 7.83, 3.83, 47.83, 0.99, -3.01, 7.99, 1.99, -3.01, -0.01, 2.99, 7.99, 4.99, 4.99, -1.86, -2.86, -2.86, -2.86, 3.14, 6.43, 10.43, 8.43, 8.43, 6.43, -2.72, -2.72, -1.72, -0.06, -0.06, -1.06, -1.42, -0.42, -0.42, -1.23, -5.23, -3.23, -1.81, -1.81, 2.19, 1.62, -1.38, -0.38, -1.51, 1.49, -2.51, 6.65, -1.26, -2.26, -2.26, -0.38, 1.49, -2.51, -0.51, -0.38, -0.38, -2.38, -2.18, -0.18, -1.18, 0.82, 4.82, -1.36, -1.36, -2.36, 1.64, 3.64, -1.92, 5.08, 2.08, 1.08, -0.92, 14.49, 27.49, -1.51, 1.02, -0.98, -1.98, -2.77, -2.77, -2.77, 4.48, -0.52, 7.48, -1.18, -1.18, 2.82, -1.24, -1.24, -1.24, -0.24, 3.99, -0.01, -0.01, 2.03, -1.97, -0.97, -1.26, -2.26, 0.74, -0.97, -1.97, -0.97, 0.03, -2.97, -1.97, -0.97, -0.97, 1.01, 0.01, 0.01, -3.01, -1.01, -2.01, -2.97, -0.97, 2.03, 3.43, 0.43, -0.57, -2.03, -2.03, -1.03, -1.38, -2.38, 1.62, -0.38, -1.38, -1.57, -0.57, -1.57, -0.57, -0.57, -1.23, 6.77, -2.23, -1.23, -0.23, -0.38, 0.62, -0.38, 0.62, -0.38, 1.74, -2.26, -0.26, -0.26, -2.26, 27.55, 10.57, -1.60, 0.40, -2.60, 6.60, 32.60, 27.60, 2.60, -0.40, -1.40, -2.88, -1.88, -2.88, 1.74, 0.74, 0.74, 0.45, 1.45, -1.55, -1.64, -0.64, -2.64, -1.42, -6.42, -7.42, -0.33, -0.33, 1.67, -0.53, -2.53, -2.53, 2.51, 8.51, -1.49, -2.36, -0.36, 3.64, 0.69, -2.31, 1.69, 4.69, 2.69, 0.08, -1.92, 0.08, -0.92, 0.08, -2.01, -2.01, -2.01, 0.75, -0.25, 2.75, 0.94, -1.06, 0.94, -0.60, -0.60, 0.40, 0.40, -2.60, -2.60, -2.06, -2.06, -1.06, 2.35, 4.35, 0.35, 1.21, -1.79, -2.79, 3.52, -0.48, 0.52, 0.11, -0.89, 4.11, -3.94, 0.06, -3.94, -2.09, 0.91, 2.91, 35.74, 23.74, 29.74, -1.56, 4.44, 6.44, -2.01, -0.01, -1.01, -0.01, 0.99, 1.03, -0.97, 5.03, 1.03, 1.03, -1.01, -3.01, -2.01, 2.99, -1.01, 2.18, 2.18, 1.18, -0.82, 2.18, -0.01, 2.99, 0.99, 2.99, 0.99, -0.64, -3.64, -2.64, 0.19, -1.81, -1.81, 14.40, 32.40, 20.40, 1.69, -1.31, -2.31, -1.70, -2.70, -2.70, -1.43, -2.43, -1.43, -3.44, 3.56, -2.44, 0.56, -2.44, 1.64, 8.64, -1.36, -1.36, -1.36, 4.18, 9.18, 4.18, 1.18, -2.82, 6.57, 8.57, 2.57, 0.57, -2.43, 2.64, 1.64, -2.36, 6.51, 0.51, 1.51, 4.64, 0.64, -0.36, 6.64, -1.36, -2.36, 1.01, -2.99, 16.01, 1.00, -1.00, -3.00, -2.01, -3.01, -3.01, -2.01, -1.01, -3.01, -3.01, -2.01, -2.01, -3.56, -2.56, -2.56, 5.55, 1.55, -3.45, -0.21, -2.21, -0.21, -0.77, -1.77, -0.77, -1.36, -2.36, -0.36, -0.57, -3.57, 1.43, 12.21, 25.21, 20.21, -1.72, -1.72, 4.28, 9.13, 0.13, 7.13, -3.66, -4.66, -4.66, 3.03, -2.97, -2.97, -2.01, -3.01, 0.32, 1.32, 0.32, -2.97, -0.97, -2.97, -2.86, -0.86, -1.86, 0.49, -1.51, 0.49, -1.01, -0.01, -3.01, 0.03, 0.03, -0.97, -1.76, -2.76, -1.76, -1.54, -2.54, -2.54, 35.64, 34.64, 13.64, -1.36, -2.36, -1.36, -0.36, -2.36, -1.36, -1.77, -0.77, -0.77, 1.10, 1.10, -2.37, -1.05, 2.10, -2.01, -0.01, 1.99, -0.01, 0.99, 3.00, 3.00, 16.00, -3.00, 6.98, -4.02, -2.02, 2.98, -1.02, -1.82, -0.82, -0.82, 0.18, 2.18, 1.43, -0.57, -1.57, -1.49, -2.49, -1.49, -0.77, -1.77, -1.77, 2.67, -2.33, -0.33, -1.33, -2.33, -2.33, 5.99, 2.99, 5.99, 3.66, 2.66, -0.34, -4.02, -0.02, -4.02, -3.01, -3.01, -3.01, -2.01, -3.01, -3.01, -2.01, -2.01, -0.01, -2.51, -1.51, -1.51, -2.97, 0.03, -2.97, 0.44, -1.56, -0.56, -1.80, -1.80, -1.80, 0.51, -0.49, -1.49, 0.51, 4.51, 2.51, -0.73, 2.27, -0.73, 0.74, -0.26, 0.74, -0.38, 0.62, 1.62, -1.01, 0.99, -2.01, -1.38, -1.38, 0.62, -2.55, -0.82, -1.82, -1.82, 2.33, -0.67, -1.67, -1.67, 6.84, 1.84, -1.16, -0.16, 0.84, 6.89, -1.11, -0.11, -2.11, 3.89, 6.29, -1.71, -2.71, 1.55, -3.45, -3.45, -2.45, -2.45, -2.51, -1.51, 5.49, 1.04, -1.96, 0.04, -3.75, 1.25, -0.75, -1.52, 3.48, 3.48, -1.39, -2.39, -3.39, 4.99, -4.01, -5.01, -3.08, -4.08, 0.92, -1.43, -1.43, -1.43, -1.91, -1.91, 2.09, -0.81, -0.81, 3.19, 4.09, 1.09, 0.09, -1.81, -0.81, 0.19, -1.81, -0.81, -1.81, 1.72, -0.28, 7.72, 0.72, -1.28, -1.82, -0.82, -0.82, 9.63, 0.63, 6.63, 3.45, -1.55, -2.55, -2.39, -1.39, -2.39, -3.62, -2.62, -3.62, -2.39, -2.39, -2.39, 16.86, 14.86, 12.86, -2.01, -1.01, 1.99, -0.01, 3.99, 0.70, 1.70, 2.70, 11.70, 2.70, -3.22, -3.22, -3.22, -2.22, -2.22, -2.86, -8.73, -6.73, -6.73, -1.61, -1.61, -1.61, 3.73, 12.73, -2.27, -5.27, -4.27, 6.03, 0.03, -0.51, -2.51, -1.51, 1.49, -0.51, 0.70, -1.30, -3.30, -3.30, -3.30, -3.93, -2.93, -1.93, -3.93, -2.93, -2.01, -2.01, -2.01, -1.01, -2.01, -2.01, -2.01, -3.01, -2.01, -2.86, -2.86, -2.86, -3.61, -3.61, -2.61, -3.61, -1.61, 5.70, 7.70, 2.70, 6.70, 1.70, 5.96, 2.96, 0.96, 5.03, 2.03, 5.03, -0.41, -1.41, -2.41, -1.25, -0.25, -1.25, -1.25, -0.25, 0.23, -0.77, -1.77, -1.77, -1.77, -0.57, -0.57, -1.57, 0.43, -0.57, 6.14, 0.14, 2.14, 4.14, 1.14, -1.25, -0.25, -0.25, -1.25, -0.25, 2.40, 2.40, 2.40, 7.48, -2.52, -2.52, -1.90, -2.90, -1.90, -1.24, -2.24, -0.24, 2.00, -2.00, -1.00, -1.00, 3.00, -1.88, -0.88, -1.88, -1.88, -1.88, 8.62, 15.62, -1.38, 5.62, -2.38, -2.38, -2.38, -1.40, -2.40, -2.40, -1.40, -2.40, -2.40, 0.12, -2.88, -2.88, -2.28, -2.28, -2.28, -0.40, -2.40, -2.40, -1.59, -2.59, -0.59, 6.36, 2.36, 2.36, 5.54, 4.54, 7.54, 8.54, 7.54, 4.54, -0.73, -0.73, -1.73, -1.31, -2.31, -2.31, -3.12, -3.12, -3.12, -0.73, -1.73, -2.31, -2.31, -2.31, -2.19, -2.19, -2.19, -3.27, -5.27, -5.27, -3.27, -0.27, 1.18, -0.82, -2.82, 0.18, 1.18, -0.91, -3.91, -2.91, -2.66, -3.66, -3.66, 4.39, 0.39, -3.61, 0.57, 12.49, -0.51, 14.49, -3.66, 0.34, -0.77, -0.77, -1.77, -1.99, 3.01, -0.99, -3.45, -0.45, -3.45, 2.72, -0.28, -0.28, 5.72, -0.28, 1.72, 1.93, -3.07, 0.93, 8.72, 2.72, 8.72, -2.06, -2.06, -2.06, -0.82, -1.82, -2.82, 4.24, 3.24, -2.76, 0.24, -3.76, -3.76, -2.97, -2.97, -1.97, -0.23, -2.23, 0.77, -1.23, -2.23, -1.57, 3.43, -1.57, -0.57, -1.57, -1.75, -5.75, -4.75, -3.69, -3.69, -3.69, -3.69, -3.69, -3.69, -0.79, 0.21, -3.79, 1.95, 1.95, -3.05, -0.74, -0.74, -0.74, 4.26, 2.26, -1.74, -0.74, -2.74, -2.74, -2.74, -2.10, 1.90, 4.90, 0.34, -2.66, -1.66, 7.34, -0.66, -0.66, 3.25, -0.75, -2.75, 4.87, 0.87, -1.13, 6.48, 6.48, 0.48, -0.61, -3.61, -1.61, -3.61, -3.61, -5.27, -4.27, -5.27, 1.73, -2.27, -1.78, -3.78, -0.78, -1.78, 2.22, -2.78, -3.78, -2.78, -3.78, -2.78, 5.94, 7.94, 10.94, 11.67, 5.67, 14.67, -1.79, 2.21, -0.79, -1.75, 1.25, 1.25, -1.51, -2.51, -2.51, -2.51, -2.51, -1.80, 1.20, -0.80, -0.44, 1.56, 3.56, 3.77, 1.77, -1.23, 5.87, -1.13, -3.13, 6.22, 8.22, 0.54, -1.46, -2.46, -0.01, 1.99, -1.01, -0.86, 6.14, 0.14, -2.26, -2.26, -2.26, -3.01, 0.99, 0.99, 8.99, 8.99, 2.99, -1.77, -1.77, -0.77, -1.77, -1.77, -1.78, -1.78, -1.78, -1.78, -1.78, -2.96, 2.04, -0.96, -2.96, -0.96, 0.48, -2.52, -2.52, -1.52, -2.52, 2.23, -1.77, 2.23, 42.23, 55.23, 2.64, 8.64, 0.64, -0.24, -1.24, 8.76, 1.21, 2.21, 3.21, -0.79, 0.21, 0.21, -1.24, -2.24, -2.24, -2.29, -2.29, -2.29, 0.83, -2.17, -2.17, -0.53, 0.47, -0.53, -1.29, -1.29, -2.29, -1.23, -2.23, -2.23, -2.23, -2.23, -0.51, -0.51, -0.82, -2.82, -1.82, -5.66, -2.66, -2.66, 0.57, 30.57, 0.57, 3.57, 2.57, 1.18, -0.82, -0.82, -0.82, -0.82, -0.62, -0.62, -1.62, -1.62, -0.62, -0.97, -1.97, 1.03, -1.55, 3.45, 0.45, -2.01, -3.01, -3.01, 3.99, -3.01, -2.01, -0.54, 2.46, -2.54, -1.54, 2.46, -2.01, -2.01, -2.01, 2.99, 2.99, -2.38, -0.38, -0.38, -1.38, 0.62, -2.38, -0.38, -2.38, -2.38, -1.38, 5.62, 3.62, -0.38, -0.38, 4.62, -1.03, -2.03, -2.03, -1.28, 16.72, -1.28, 9.77, 6.77, 5.77, 1.18, 4.18, 4.18, 4.62, -2.38, 3.62, 3.62, -0.38, -0.38, -0.01, -0.01, 0.99, 0.84, 0.84, -0.16, 0.02, 3.02, -0.98, -0.69, -0.69, -0.69, -1.99, -1.99, -1.99, -1.99, -1.99, -2.53, -1.53, -2.53, -2.53, 1.47, -2.23, -2.23, -2.23, -2.23, -2.23, -2.73, -2.73, -2.73, 0.74, -2.23, -2.39, -2.85, -2.85, -2.85, 11.19, -2.81, 1.19, -1.81, -1.81, 17.83, 9.83, 16.83, 3.83, -0.17, -0.78, -1.78, -1.78, -1.78, -1.78, 0.65, -0.35, -2.35, -0.35, 12.65, -1.18, -3.18, -3.18, -2.18, -2.18, -2.97, -2.97, -1.97, 0.03, -1.97, -2.22, 1.78, -1.22, 5.93, -1.07, 0.93, -1.81, 0.19, -1.81, 3.00, 51.00, -1.00, -0.30, 10.12, -1.88, -3.88, -0.36, 1.64, -1.36, -0.36, -1.36, -1.36, -1.36, -1.36, -0.36, 2.64, 3.76, 6.76, 2.76, 0.76, 3.76, -1.77, -1.77, -1.77, 4.23, 1.23, -1.38, -1.38, -1.38, -0.38, -0.38, -2.01, -1.01, -2.01, -2.01, -2.01, -1.26, -0.26, 1.74, -1.26, -1.26, -0.38, -1.38, -2.38, -0.38, -1.38, -1.38, 0.62, -0.38, 0.62, -1.38, -0.76, -1.76, -3.76, -2.18, -3.18, -0.18, -2.14, -3.14, -2.14, 4.21, 4.21, 0.21, 11.48, 4.48, 0.48, 0.99, 2.99, -2.01, -1.01, -1.01, -0.85, 0.15, 2.15, 0.99, -0.01, 0.99, 0.62, -2.38, -1.38, -0.38, -1.38, -0.38, -2.83, -2.52, -1.63, -1.63, 0.37, 2.57, 0.57, 5.57, 5.36, 2.36, 3.36, -1.63, -1.63, 1.37, 0.40, -2.60, -3.60, -0.31, 1.69, -2.31, -0.04, -1.04, -2.04, -1.34, -2.34, -2.34, -1.65, -0.65, -0.65, -0.92, -2.92, -0.92, -0.36, -0.36, 2.64, -1.96, -2.96, 2.04, -3.23, -3.23, 1.03, 2.03, -1.97, 1.28, -2.72, 0.28, -1.79, 0.21, 1.21, -0.56, 1.44, -2.56, -2.26, -2.26, -1.26, 1.02, 4.02, 7.02, -2.28, -1.28, -2.28, 2.74, 1.74, 1.74, -2.01, 5.27, 8.27, 6.27, 0.69, 7.69, 5.69, -2.05, -1.05, -2.05, -1.58, -0.58, -1.58, -1.58, -0.58, -1.57, -0.57, -3.57, -1.57, -1.57, -2.26, -0.26, -0.26, -2.26, -1.26, -1.02, 6.98, 8.98, 1.41, -0.59, 3.41, 0.41, -0.59, 11.01, 0.01, -0.99, 5.01, -1.99, 0.01, 4.21, 4.21, 0.21, 9.18, -1.82, 5.45, 3.45, 10.45, 3.30, 0.30, -2.70, -0.69, -1.69, -1.69, -3.34, -3.34, -0.34, -0.28, 0.72, 3.72, -1.43, -1.43, -0.43, -1.43, -0.43, -0.43, -0.92, -2.92, -1.92, 0.57, -1.43, -0.43, -6.55, -3.55, -6.55, -5.55, -7.55, -0.51, -1.51, -0.51, -2.51, -2.51, -1.51, 6.00, 5.00, 7.00, -2.28, -1.28, -2.28, -3.63, -0.63, -2.63, -1.71, -2.71, 0.29, -0.71, -1.71, -2.71, -1.71, -2.71, -2.71, 2.47, 3.47, 2.47, 0.18, 13.18, -0.82, -0.97, -2.97, -2.97, -2.51, -2.51, 0.49, -1.86, -2.86, -2.86, -3.01, -3.01, -2.01, -1.60, 0.40, -2.43, -2.43, -1.82, 0.18, -1.82, 1.18, -0.82, -1.06, -0.06, -2.06, -1.06, 0.94, 0.18, 2.18, 2.18, -1.82, 0.18, 9.68, 0.68, -1.32, -1.32, 1.68, 1.48, -1.52, -0.52, 0.48, -2.52, -1.01, -2.01, -2.01, 5.18, 2.18, 1.18, 3.74, 1.74, 1.74, -2.55, -0.55, -1.55, -1.01, -2.01, -2.01, -1.95, -0.84, 2.16, 3.16, 4.53, 2.53, -2.47, 2.35, -1.65, -2.65, 1.48, -0.52, 1.48, 1.30, -2.70, -1.70, -2.55, 2.45, 20.45, -0.37, -1.37, 2.63, -2.00, -2.00, 1.00, -2.37, -0.37, -1.37, 0.78, 0.78, -0.22, -3.79, -4.79, -4.79, -1.38, -2.38, -3.38, -1.44, -0.44, -1.44, 0.46, -2.54, -1.48, -1.48, -1.48, -1.48, -1.48, -5.42, -3.42, -5.42, -5.42, -4.42, 1.76, -2.24, -3.24, -3.24, -1.24, -2.82, -1.82, -0.82, -1.82, -2.82, 3.83, 4.83, 4.83, 6.83, 1.83, -2.77, -0.72, -0.72, 2.28, 1.28, -1.72, -0.26, -2.26, -1.26, 0.48, 5.48, 0.48, 7.48, -1.52, 0.52, -1.48, -1.48, -1.48, 12.53, 7.53, 21.53, 4.79, 1.79, 3.79, 0.79, 0.79, 2.79, 1.79, 6.79, 1.79, 2.79, 0.01, 4.01, 1.01, 1.01, 5.01, 0.23, 11.23, 8.23, 4.23, 12.23, 2.09, 9.09, 18.09, -3.49, -2.49, -2.49, -2.45, -1.45, 2.55, 1.27, -1.73, 0.27, -1.88, -1.88, -0.88, 0.12, -0.88, 0.92, 2.92, 1.92, -2.08, -1.08, -1.88, 9.73, 3.73, -4.27, -3.95, -3.95, -2.95, -3.02, 2.98, -3.02, -2.26, -1.26, -1.26, 0.45, -2.55, -0.55, 2.01, 0.01, 1.01, 16.40, 36.40, 20.40, -2.87, -2.87, -2.87, -1.36, -2.36, -1.36, -1.58, -1.58, -0.58, -2.36, -2.36, 1.64, -0.77, -1.77, -1.77, -1.88, -0.88, -0.88, -1.88, -1.88, -1.67, 0.33, 5.33, 1.33, -1.67, -2.67, 2.33, 5.33, -0.67, -1.67, 6.14, 10.14, 11.14, -1.56, -1.85, -0.85, 8.15, 2.15, 2.15, -1.29, -4.29, 3.71, 2.71, -1.97, -2.97, -1.97, 2.03, -1.97, 13.39, 8.39, 17.39, 17.39, 8.39, -0.22, 4.78, 1.78, 2.45, 4.45, 5.45, -1.55, -0.55, -0.55, -3.22, -0.22, -0.22, -2.18, -3.18, -3.18, -0.18, -3.18, -1.59, 3.36, 1.36, 6.36, -2.22, 0.78, -1.22, -4.25, 1.75, -0.25, -0.43, 0.57, -0.43, -3.18, -1.18, -2.18, -3.18, -2.18, -0.78, -0.49, -2.49, 1.51, -1.99, -1.99, -0.99, 2.67, -2.33, -1.33, -1.99, -1.99, -4.66, -6.66, -6.66, -2.65, -3.65, -3.65, -1.23, -1.23, -2.23, -2.38, -2.38, -1.38, -2.38, -2.38, -2.38, -0.78, -1.78, -0.78, -2.26, -0.26, -1.26, 0.46, -2.54, -2.54, 0.99, -1.01, -2.01, 0.41, -1.59, -1.59, 0.15, -1.85, -1.85, -2.38, -2.38, -2.38, -1.77, -1.77, -1.77, -1.57, -2.23, -2.93, -2.80, -0.80, -1.80, -1.42, -1.42, -1.42, -3.18, -3.18, -3.18, -2.79, -2.79, -2.79, -1.63, 5.37, 0.37, 1.36, -1.64, -2.64, -0.68, 3.32, -1.68, 4.86, -1.14, -1.14, 2.31, -0.69, -1.69, -3.28, 0.72, 5.72, -2.26, -1.26, -2.26, 9.68, 5.68, 3.68, 0.68, 0.68, -2.38, 1.62, -2.38, 2.57, 0.57, 6.57, -1.96, -2.96, -2.96, -2.02, -2.02, -2.02, 0.82, 0.82, -2.18, -3.03, 1.97, 0.97, -0.40, -1.40, 2.15, 1.15, 0.15, 0.99, -2.01, -3.01, -0.19, -2.19, -3.19, 3.30, -1.70, 2.30, 2.10, -1.90, 6.10, 4.31, 2.31, -2.69, -0.69, -1.69, 1.01, 0.01, -3.18, -0.18, -2.18, 0.57, -1.43, -1.43, -0.43, -0.43, 0.25, 0.25, 1.25, 4.49, 5.49, 4.49, 4.49, 13.49, -2.26, -1.26, 0.74, 2.74, 0.74, -4.17, -1.49, 1.51, 2.51, 5.13, 24.13, 9.13, -0.43, -2.43, -1.43, -0.43, -0.43, 0.18, 3.18, -0.82, -1.82, -1.82, -2.06, -0.06, -0.06, -2.06, -2.06, -1.43, -2.43, -1.43, -0.43, -0.43, -2.03, -1.03, -3.03, -2.03, 0.62, -2.21, -1.73, -1.73, -0.73, 6.27, 0.27, 11.46, 0.46, -2.54, 2.01, -1.99, 3.01, 0.56, 2.56, -2.44, 2.42, 1.42, -1.58, 0.42, -1.58, -1.01, 0.99, 0.99, 1.17, 2.17, -1.83, -1.83, -1.83, 1.17, -1.83, 0.17, -2.83, 3.17, 1.37, -0.63, 2.37, -1.63, -1.63, -0.43, 0.57, -1.43, -2.43, -1.43, 17.08, 7.08, 20.08, 9.08, 6.08, 3.97, 2.97, -0.03, 2.14, 7.14, 3.14, 6.47, 4.47, 3.47, -0.61, -2.61, -2.61, -1.38, -1.82, -1.82, -1.82, -0.67, -1.67, -1.67, -1.98, -1.98, -1.98, -1.50, -0.50, -0.50, -2.60, -1.60, -1.60, 7.14, -0.86, 1.14, -1.86, 1.14, -2.41, 0.59, -1.41, 8.56, 7.56, 4.56, 0.56, -2.44, -0.37, -1.37, 4.97, 1.97, 4.63, -0.37, 0.61, -1.39, 1.55, 2.55, -0.46, -1.46, 4.45, -2.55, -1.55, -1.55, -2.55, -1.03, 1.97, -1.03, 0.97, -0.03, -2.03, 12.61, 9.61, 5.61, 1.61, 6.27, 2.27, 7.34, 2.34, 0.34, -0.66, 4.55, 1.55, 4.23, -0.77, 3.23, -0.77, -1.77, -0.99, -0.99, -1.99, 0.01, -1.03, -2.03, 2.09, -0.91, 0.63, -2.37, 1.61, 1.61, 6.61, 5.61, 8.32, 4.32, -0.45, -1.45, 2.55, -0.45, -2.45, 10.97, 8.97, 2.64, 3.64, -0.36, 0.26, -0.74, 1.01, 0.01, 1.01, 0.74, 2.74, -2.39, -2.39, -2.39, -2.39, 0.66, -0.33, -0.33, -0.33, 6.97, -1.03, 4.63, -1.37, 9.56, -1.37, 2.55, 9.61, 3.86, -3.03, 0.63, -1.99, 3.61, -1.39, -1.39, 0.97, 3.28, 6.28, 2.28, -2.37, 3.63, 6.63, -0.66, 2.34, -0.66, -2.03, 3.97, -1.03, 3.64, -0.36, 5.61, 3.61, 7.97, -1.03, -0.39, -0.39, 9.63, 5.63, 0.63, 5.61, 3.97, 3.34, 3.97, -1.03, -0.03, -0.82, 1.18, -0.82, -1.63, 0.37, 7.37, -0.28, 2.72, -1.28, -1.78, -2.78, -1.78, -1.60, 1.40, 1.40, 1.73, 3.73, -1.27, 2.39, -1.61, -0.61, -2.27, -3.27, 32.73, -2.25, -0.25, -2.25, 1.26, 2.26, 8.26, -0.59, -1.59, -1.59, -1.23, -2.23, -1.23, 1.75, -0.25, -1.25, -0.03, -1.03, -1.03, -2.23, -1.23, -1.23, -1.78, -1.78, 3.22, -2.23, -2.23, -2.23, -1.03, -1.03, -0.03, -1.03, -0.03, -1.03, -2.03, -1.03, -2.03, -1.03, -1.10, -2.10, -3.10, 1.90, 0.90, -2.45, -0.45, 1.55, -1.45, 0.55, -2.45, -2.45, 1.55, -1.45, -2.45, -4.15, -3.15, -4.15, -3.15, -3.15, -0.76, 3.24, -2.76, -1.76, -1.76, -1.26, 1.74, 2.74, 0.32, -1.68, 0.32, -1.83, -0.83, -2.83, -1.83, -1.83, -2.83, -0.59, 1.41, 0.41, -2.60, -2.60, -2.60, 2.77, 1.77, 3.77, -1.58, -1.58, 0.42, -1.58, -1.58, -0.78, 0.22, 2.22, -0.78, 2.22, 0.74, 6.74, -0.26, -0.26, 1.74, 4.77, 2.77, 8.77, -0.23, -0.23, 3.17, 31.17, -2.02, -0.02, 0.98, 0.29, 18.29, 30.29, -0.86, 1.14, 0.14, 1.40, 1.40, 0.40, -2.03, -2.03, -1.03, -0.83, -1.83, 0.17, -1.83, -0.83, 1.85, -1.15, -1.15, -3.15, -1.15, -0.49, -2.49, 0.51, -1.49, 6.51, -2.15, -1.15, 5.85, -0.15, 4.85, 9.43, 4.43, 0.43, -1.49, 0.51, -0.49, 0.41, -0.59, -0.59, 49.46, 15.46, -0.54, -0.26, 0.74, -2.26, -5.77, -4.77, -5.77, -5.77, -3.77, -2.69, -3.69, -0.69, 3.31, -1.69, -3.57, -2.57, -3.57, -3.57, -3.57, -3.57, -2.57, -1.57, -3.57, -3.57, -2.57, -2.57, -3.57, -2.57, -3.57, -0.57, -2.57, -0.57, -2.57, -0.57, -1.57, -0.57, -3.57, -3.57, -1.57, 1.80, 0.80, -1.20, 0.24, -1.76, -1.76, -1.57, -0.57, 2.43, -1.50, 1.50, 5.50, 3.54, -0.46, 0.54, -2.12, -3.12, -2.12, -0.21, -1.21, -2.21, -2.21, -1.21, -2.21, -1.14, -3.14, -0.14, 1.03, 0.03, -1.97, -0.05, -2.05, -1.05, -1.05, -1.05, -1.05, 0.69, 1.69, 1.69, 0.72, -2.28, -1.28, -0.28, 0.72, -1.28, -0.28, -1.28, -1.28, -0.78, 1.22, -0.78, -0.55, 1.45, 0.45, 2.50, 1.50, -0.50, -1.51, -1.51, -2.51, -1.20, -1.20, -2.20, -2.20, -1.20, -2.20, 3.49, -2.51, -1.51, -3.02, -3.02, -2.02, 3.61, -2.39, 0.61, -2.55, -2.55, -2.55, -3.70, -4.70, -3.70, 0.21, 4.21, -0.79, -2.69, -0.69, -2.69, -1.80, -0.80, -2.80, 7.31, 16.31, -4.19, -0.19, 0.81, -2.36, -1.36, 11.64, -1.59, -1.59, 0.41, -1.64, -3.64, -2.64, -0.83, 1.17, 0.17, 0.76, 3.76, -3.24, 3.68, -0.32, 0.68, -0.61, -1.61, -1.61, 4.75, -1.25, 4.75, 0.72, -1.28, -2.28, -1.68, -0.68, -2.68, -0.12, 1.88, -1.12, -2.64, -2.64, -2.64, -2.64, -2.64, -2.64, 6.36, -1.64, -2.64, -2.64, 0.67, -2.33, 2.67, 1.67, 1.67, 0.33, 0.33, -1.67, 0.33, -0.67, 1.33, 0.33, 1.33, -1.67, -1.67, 7.20, 2.20, 0.20, -1.28, -1.28, 0.72, -1.03, -1.03, -2.03, -1.57, -1.57, -0.57, -1.03, -2.03, -1.03, -0.64, -3.64, -1.64, -3.49, -3.49, -3.49, -4.30, -7.30, -3.30, -0.49, -3.49, -1.49, -3.50, -6.50, -3.50, 2.73, 2.73, 4.73, 2.73, 7.73, 2.17, -2.83, 2.04, -3.66, -1.66, -0.02, -0.02, 1.98, -1.02, 6.98, -3.66, -2.66, -3.66, -2.21, -2.21, -0.21, -2.21, -2.21, -2.21, -2.21, -2.21, -1.79, -2.79, 7.21, -2.05, -1.05, -0.82, -0.82, -0.50, 5.50, 1.50, -0.50, -1.50, -1.50, -1.50, -2.50, -2.50, -1.50, 0.20, 3.20, 3.20, 0.20, -1.80, 0.51, -1.49, -2.49, -1.49, -2.49, -0.15, 2.85, 3.85, -3.15, -3.15, 0.20, -2.80, -2.80, -0.80, -1.80, 2.12, -1.88, 1.12, 6.16, -0.84, 0.16, -1.55, -2.55, -3.55, -1.55, -0.55, 0.45, 0.42, 0.42, -1.58, -1.31, -0.31, -1.31, -1.21, 1.79, -1.21, -3.18, -4.18, -2.18, 7.79, 2.79, 8.79, 7.79, 4.79, 1.79, -0.58, 2.42, 1.42, -1.25, -0.25, -1.25, -0.01, 0.99, 2.99, 2.51, -1.49, -2.49, 1.65, -0.35, -0.35, -1.76, -0.76, -1.76, -1.35, -1.35, -1.35, -1.78, -1.78, -0.78, -1.35, -1.35, 0.65, -3.21, -2.21, -1.21, 3.02, -1.98, -0.98, 0.99, -2.01, -2.01, -1.23, -0.23, -0.23, 1.77, -0.23, 0.77, 3.99, -0.01, -2.01, 0.23, -1.77, -1.77, -2.24, -2.24, -2.24, 4.42, -0.58, 0.42, -0.75, -1.75, -0.75, -1.58, -0.58, -1.58, 0.86, 1.86, -0.14, 0.37, -1.63, 4.37, -2.28, -2.28, -2.28, -0.28, -2.28, -0.28, -0.60, -0.60, -0.60, 1.09, -0.91, -1.91, -2.22, 0.78, -2.22, -2.84, -0.84, -0.84, -1.22, -0.22, -1.22, -1.78, 0.22, -1.78, -7.04, -7.04, -7.04, 3.74, 3.74, 7.74, -2.61, -1.61, -2.61, 3.91, 2.91, -0.09, -1.74, -1.74, 0.26, 3.74, 0.74, -1.26, -0.87, 4.13, 9.13, 8.30, -6.70, -6.70, -0.38, 3.62, -1.38, -1.38, 2.62, 4.80, 1.80, -0.20, -0.20, 0.80, 1.22, 0.22, -1.78, -0.78, 1.22, 1.19, 2.19, 1.19, 7.88, 3.88, 1.88, -2.23, -0.23, -1.23, -2.23, -2.23, -0.23, -2.25, -1.25, -0.25, -2.23, -1.23, -2.23, 1.72, 0.72, -0.28, -2.28, -0.28, 1.18, 0.18, -1.82, 0.18, -1.82, 1.72, 3.72, 0.72, -2.28, -0.28, 0.95, -1.05, -1.05, -1.05, -1.05, 4.79, -1.21, -1.21, 0.23, -0.77, -0.77, -0.24, -1.24, -2.24, 0.18, 2.18, 0.18, -1.83, -0.83, 1.17, 7.02, 2.02, -0.79, 1.21, 0.21, 7.21, 4.21, -0.79, 0.21, -0.79, -1.79, -0.79, 3.21, 35.21, -1.79, -0.79, -1.79, 1.30, -0.70, -1.70, 5.74, -0.26, 0.74, -2.79, 0.17, -1.79, 2.21, -1.79, 0.58, 1.58, 0.58, -0.62, -0.62, 0.38, -1.24, -1.24, -2.24, -2.52, -2.52, -1.52, 3.22, -0.78, 1.22, -2.07, -2.07, -1.07, -5.26, -6.26, -9.26, 1.39, 5.39, 4.39, -0.61, 1.39, 2.19, 3.19, 3.19, 1.19, -1.81, 0.23, 0.23, 7.23, 1.23, 6.23, -1.21, -2.21, -2.21, -1.21, -1.21, -1.77, -1.77, -1.77, 5.23, 0.23, -2.21, -1.21, -0.21, -2.21, -1.21, 0.92, -1.08, -0.08, 14.92, 7.92, 5.92, 0.75, -0.25, -0.25, 4.72, 4.72, 17.72, -2.14, -3.14, -3.14, -1.59, -1.59, -0.59, -1.59, -1.59, -1.60, -2.60, -1.60, -2.60, 0.40, -3.57, -2.57, -3.57, 3.17, -0.83, -1.83, -0.24, -0.24, -0.24, 2.79, 0.79, -0.21, -0.99, -0.99, -0.99, 9.39, 4.39, 8.39, 5.39, 3.39, -0.82, -0.82, -0.82, -1.82, -1.82, -2.28, -0.28, -0.28, 3.72, 2.72, -1.03, 0.97, 1.97, -0.03, 5.97, 4.12, 4.12, 2.12, 3.12, 6.12, 0.95, 1.95, -0.05, -0.05, 6.95, -0.85, 0.15, -1.85, 0.43, 1.43, 1.43, -2.20, -0.20, -2.20, 3.82, -1.18, 41.82, -1.56, -0.56, -1.56, -0.21, -0.21, 1.79, -2.29, -1.29, -1.29, 3.52, 2.52, 6.52, -3.48, -1.48, -1.48, -2.48, -0.48, -1.48, -3.14, -2.14, -2.14, -1.22, 0.78, -4.22, 0.79, -1.21, 1.79, -0.56, -0.56, -1.56, -4.67, -4.67, -3.67, -3.67, -3.67, -0.04, -1.04, -1.04, -2.21, -2.21, -0.21, -2.21, -1.21, -2.21, -2.87, -2.87, 2.13, 1.25, -1.75, -0.75, 5.49, 0.49, -2.51, 0.55, -0.45, -2.45, 1.74, 10.74, -0.26, -0.27, 0.73, -4.27, -1.79, -0.79, 2.21, -2.67, -3.67, 0.33, -0.09, -2.09, -0.09, -0.52, -1.52, -2.52, -0.75, -0.75, 1.25, -0.68, -2.68, 6.32, -1.91, -1.91, -2.91, -0.28, 1.72, 2.72, -2.28, -1.28, -2.28, -2.03, -2.03, -2.03, -2.28, -1.28, -2.28, -0.28, -1.28, 3.72, 0.23, 1.23, -1.77, -2.52, -1.52, -1.52, -3.99, -2.99, -3.99, -2.27, -2.27, -2.27, -0.59, 2.41, -1.59, -1.59, 6.41, -0.59, -2.63, -1.63, -2.63, -3.64, -2.64, -0.64, -2.77, 1.23, -0.77, -2.63, -1.63, 0.37, 0.17, -2.83, -2.83, -1.55, 0.45, 2.45, -5.00, -4.00, -3.00, -1.79, 0.21, -2.79, -0.83, -2.83, -2.83, -0.98, 1.02, -0.98, 14.45, 13.45, 7.45, -2.26, -0.26, -0.26, -1.59, -0.59, 1.41, 7.67, 3.79, -2.21, -0.21, 1.79, -0.21, -0.21, -1.21, -0.21, -1.21, -1.21, -0.58, 5.42, 2.42, 1.42, 1.42, 5.01, 2.01, 3.01, 4.01, 1.01, 3.27, -1.73, 0.27, -1.85, -2.85, -2.85, -2.01, -2.01, -2.01, -1.23, -2.23, -2.23, -0.20, -2.20, -1.20, -3.00, -0.00, -2.00, -0.23, -1.23, -2.23, -1.20, -2.20, -0.20, -0.25, -2.25, 1.75, 1.97, -1.03, -1.03, 1.72, -2.28, -0.28, -1.25, -1.25, 0.75, -1.25, -0.25, -0.25, -2.05, -2.05, -2.05, -0.95, -0.95, 6.05, 6.05, 4.05, -1.74, -2.74, 0.26, -2.74, -2.74, 5.05, -1.95, -0.95, -1.95, -1.95, -1.95, 1.05, -2.95, -1.95, -0.95, -0.91, -2.91, -1.91, -1.91, -1.91, -2.10, -3.10, -0.10, 4.90, -0.10, -2.45, -1.45, -0.45, -0.45, -0.45, 4.17, 1.17, -2.83, -1.83, -1.83, -4.91, -4.91, -5.91, -4.91, -4.91, 5.17, -1.83, -2.83, -2.83, -1.83, 0.49, 0.49, -2.51, -1.51, -0.51, -2.02, -1.02, -0.02, -3.63, 5.37, -1.63, 7.20, -0.80, 0.20, -1.80, -1.80, -1.80, 5.17, -1.83, -1.83, 0.23, -0.77, -1.77, -0.21, -2.21, -1.21, -1.21, -2.21, -0.21, -1.82, -1.61, -0.61, -1.61, -0.00, -1.00, -0.00, -1.00, -1.00, 0.24, -1.76, -0.76, -0.76, -0.76, -0.78, -1.78, -1.78, -1.78, -1.78, 0.23, -1.77, -2.77, -1.77, -2.77, 0.88, 2.88, 3.88, -2.12, 0.88, -0.82, -1.82, -1.82, -1.82, -1.82, -1.82, -1.82, -0.82, -0.82, 10.36, -1.64, 2.36, -1.82, -0.82, -1.82, -1.54, -1.54, -1.54, -2.53, -3.53, -3.53, 4.48, 11.48, 20.48, 11.48, 13.48, 17.82, 3.82, 1.82, 11.82, 1.82, 1.19, 1.19, 0.19, 2.73, 0.73, -1.27, -1.27, -1.27, -1.27, -0.78, -1.78, -1.78, 1.82, -2.18, 2.82, -0.23, -1.23, -2.23, -2.23, -0.23, 1.41, 1.41, -0.59, 0.41, 1.41, 2.77, -0.23, -2.23, -0.23, -2.23, -1.01, -1.01, -0.01, -1.01, -1.01, -1.51, 0.49, -1.51, -2.51, -2.51, 0.02, 1.02, -1.98, -1.98, 3.02, 1.25, -0.75, -0.75, -1.77, -1.77, 3.23, -1.65, -0.65, -1.65, -1.55, -0.66, -3.66, -1.66, -1.49, -2.49, -1.49, -0.95, 1.05, 8.05, 8.72, -0.28, 0.72, -1.03, -1.03, 0.97, -1.25, -1.25, 0.75, 0.75, 2.75, 2.75, -3.44, 0.56, 0.56, 0.56, 3.56, -0.82, -1.82, -0.82, 0.18, -1.82, -0.05, -2.05, -0.05, -0.05, -2.05, -1.28, -2.28, -1.28, -1.28, -0.28, 0.72, 4.72, 5.72, 4.72, 9.72, -1.82, -2.82, -2.82, 0.18, -1.82, -1.39, -1.39, 0.61, -1.39, 3.61, -0.05, -1.05, -0.05, 1.95, 1.95, 3.00, 7.00, 2.00, 9.26, -2.74, -2.74, 0.37, 0.37, 3.37, 0.37, -0.63, 7.69, -1.31, 12.69, 8.69, 4.69, 1.72, -1.28, -2.28, -0.28, -0.28, 4.72, 0.72, -1.28, 4.72, 0.72, -14.93, -17.93, -15.93, 0.43, -2.57, -2.57, 0.04, -0.96, -2.96, -3.72, -3.72, 0.28, -1.48, -1.48, 1.52, -1.97, 0.42, -1.58, -1.58, -2.21, -2.21, -2.21, -1.58, -1.58, -1.58, -2.23, -2.23, -1.23, -1.23, -2.23, -1.23, -1.57, -1.57, -1.57, -1.23, -0.23, -1.23, -1.23, -2.23, -2.23, -0.23, -0.23, -1.23, -1.26, -2.26, 1.74, 1.22, 1.22, -0.78, -0.23, -2.23, -0.23, 3.39, -0.61, -0.61, -1.61, 0.39, 3.77, 3.77, -1.23, -0.23, 0.77, 0.17, 0.17, 10.17, 1.17, 3.17, -2.83, -0.83, 3.17, 5.17, 11.17, -0.83, -1.83, 6.17, 5.17, 3.17, 0.13, -1.87, -0.87, -1.87, 0.13, -1.75, -1.75, 2.25, -1.75, -1.75, -1.77, 0.23, -0.77, -0.77, -1.77, -1.34, -1.34, 0.66, -1.34, 0.66, 3.46, -1.54, 1.46, 2.46, 1.46, -1.41, -1.41, -1.41, -1.41, -0.41, 8.23, 9.23, 4.23, 0.23, 0.23, -1.59, 0.41, -1.59, 0.41, -1.59, -0.78, -1.78, -1.78, -0.80, -1.80, -1.80, 0.22, -1.78, -1.78, -0.61, -1.61, -1.61, 1.70, -2.30, -0.30, 0.03, -2.97, -0.97, -0.97, -2.97, -2.97, -1.48, -3.48, -0.48, -2.55, 7.45, 8.45, -0.18, 0.82, 0.82, -1.26, -2.26, 2.74, -1.23, -1.23, -2.23, 3.40, 1.40, -0.60, 6.20, -1.80, 7.20, -0.01, 3.99, -0.01, 3.42, 10.42, 0.42, -1.77, -1.77, -0.77, -1.77, 0.23, -1.77, -1.77, -0.31, 0.69, 4.69, -2.05, -0.05, -3.05, -2.31, 0.69, 3.69, -1.83, -2.83, -1.83, -2.83, -0.83, -2.83, -2.83, -2.83, -1.83, 0.17, -1.86, 3.14, 1.14, 4.14, 2.14, 4.21, 3.21, 28.21, -2.79, -1.79, -1.77, 0.23, -1.77, -2.21, -1.21, -2.21, -1.58, -1.58, -1.58, -0.18, 2.82, 1.82, -0.86, -1.86, -0.86, -0.70, -0.70, 5.30, -2.38, -1.38, -1.38, -1.38, -0.38, -2.38, -3.38, -2.38, -3.38, -1.38, -3.42, -2.42, -3.42, -3.42, -1.42, 1.95, -2.05, -0.05, 3.95, -2.05, 0.29, -2.71, -1.71, 0.29, -2.71, -2.25, 2.75, -0.25, -2.25, 1.75, -0.25, -2.25, -1.25, -2.25, -2.25, -2.25, -2.25, -1.25, -2.25, -1.25, 4.20, -1.80, -0.80, 4.20, -0.80, -0.80, -1.80, -0.80, 0.20, 0.20, 0.40, 4.40, 4.40, 4.40, -0.60, -2.85, -2.21, -4.21, -4.21, -2.01, 0.99, -2.01, -2.20, -2.20, -0.20, -2.23, 1.77, -1.23, -1.78, 3.22, -0.78, -2.23, 0.77, -2.23, -0.76, 0.24, -1.76, -0.76, -2.76, -1.76, -1.28, 1.72, -1.28, 0.72, -2.28, -4.81, 0.19, -4.81, 0.19, -3.81, -2.28, 1.72, -2.28, -2.28, -2.28, -1.03, -0.03, -2.03, -2.03, -2.03, -2.07, -0.78, 8.22, 0.22, 2.22, -1.78, -1.78, -0.77, -1.77, 1.23, -2.24, -2.24, -2.24, 0.21, -2.79, -1.79, 0.44, -0.56, -0.56, -1.03, -1.03, -2.03, -1.81, 2.19, -0.81, 5.77, 1.77, 0.77, -2.23, -0.23, -2.23, -1.01, 4.99, -2.01, 3.77, 2.77, -2.23, 1.75, -0.25, 5.75, -1.25, -2.25, -0.80, -1.80, 3.20, -1.80, -1.80, -1.23, -1.23, 2.77, 0.77, -0.23, -0.57, -2.57, -1.57, -1.57, -2.57, 0.75, -2.25, 0.75, -2.25, -2.25, 2.90, -2.10, -3.10, -3.25, -2.25, 0.75, -2.83, -2.83, -2.83, -4.56, -4.56, -4.56, -2.83, -2.83, -2.83, 0.17, -2.83, -2.83, -1.61, -3.61, -3.61, -1.28, -0.28, -1.28, 0.69, 0.69, 0.69, -1.00, -2.00, -2.00, -2.25, -1.25, -2.25, 3.42, -1.58, -2.58, -2.61, -3.61, -2.61, -2.65, 1.35, -2.65, -2.61, -3.61, 1.39, 3.57, 0.57, 2.57, 3.29, 10.29, 2.29, -0.18, -2.18, -2.18, -1.21, -2.21, -0.21, -0.10, 3.90, -0.10, -1.18, -1.18, -2.18, -2.18, -1.18, -2.18, 0.25, 2.25, -0.75, -1.97, 16.03, 9.03, -1.18, -2.18, 5.82, 8.57, 2.57, 3.57, 11.57, 7.57, -1.28, 0.72, -2.28, -1.28, -1.28, -3.41, -4.41, -4.41, -1.56, -1.56, -1.56, -2.79, -1.79, -2.79, 2.35, -0.65, -1.65, -1.34, -1.34, -2.34, 2.82, -2.18, -2.18, -3.03, -3.03, -1.03, -0.63, -0.63, 4.37, 2.44, -1.56, -1.56, -0.99, -2.99, -0.99, -0.82, 1.18, 1.95, -1.05, -2.05, 0.72, -1.28, 1.72, -1.28, -0.28, -0.28, -2.28, -1.28, -2.28, -1.31, 1.69, -1.31, -2.53, -1.53, -1.53, -1.66, -0.66, -1.66, -2.99, 0.01, 0.01, -3.54, -2.54, -3.54, 14.78, 63.78, 9.78, -0.49, -2.49, -0.49, -1.07, 3.93, -0.07, -1.21, -1.21, -2.21, -2.93, -4.93, -4.93, 1.90, -1.10, -1.24, -0.24, 0.76, -0.58, -0.58, -1.58, -0.57, -2.57, 2.43, -1.75, -3.75, -0.75, -2.57, -2.57, -1.57, -1.82, -1.82, -1.82, -0.82, -0.82, 0.18, 0.11, -1.89, -1.89, -1.23, 3.36, 1.36, 9.36, 2.77, 1.77, -1.23, -1.44, -3.44, -2.44, -2.34, 0.66, -0.34, -2.29, -2.29, -1.29, -2.21, -1.21, -1.21, -1.21, 0.79, -2.21, -1.13, -1.13, -2.13, -0.86, -2.86, -2.86, -1.86, -2.86, 6.46, 4.46, 2.46, -0.10, -1.10, -0.10, -0.13, 30.87, 42.87, 1.75, -0.25, -3.25, 11.19, 1.19, -1.81, 1.49, -0.51, -1.51, 3.92, -0.08, 0.92, 0.17, 2.17, 3.17, 0.17, 2.17, 3.17, 7.77, -2.23, -1.23, 2.98, 2.98, -0.02, 6.98, 5.98, 3.01, 10.01, 0.01, 5.01, 3.01, 2.21, -0.79, -1.18, -0.18, -1.18, -0.18, 0.82, 1.25, 5.72, 6.72, -1.28, -0.61, -0.61, -1.61, 6.72, 1.72, -1.28, -1.05, -2.05, -1.05, 1.28, 0.28, -3.72, 4.74, 2.74, -1.26, -2.23, -2.23, -2.23, -0.76, -1.76, -1.76, -3.67, -3.67, -4.67, -2.23, -2.23, -2.23, -0.21, -1.21, 1.79, -0.18, 0.82, 0.82, 0.79, -1.21, -0.21, -0.99, 2.01, 1.01, -1.90, -0.90, -1.90, -1.58, -1.58, 2.42, 0.66, 7.66, 5.66, 2.20, -0.80, -0.80, -3.05, -2.05, 18.95, -2.38, -1.38, 2.62, -1.78, -1.78, 3.22, 3.77, -0.23, 3.77, 4.72, 0.72, 2.72, 1.18, 3.18, 0.18, 2.72, 2.72, 0.72, 0.69, -2.31, -0.31, -0.21, -1.21, -0.21, 1.82, 10.82, -2.18, 5.97, 5.97, 10.97, -4.64, -5.64, -8.64, 2.01, -1.99, -0.99, 1.72, 6.72, -0.28, 2.40, 3.40, 1.40, -1.80, -0.80, -0.80, -1.99, -3.06, -2.05, -2.18, -2.18, 3.79, 4.79, -1.21, 0.79, 0.79, 2.79, -0.18, -0.18, -2.18, -1.18, -0.18, -1.18, 4.51, 1.51, -2.49, -1.36, -0.36, 0.64, 7.45, 0.45, 3.45, 1.05, 0.05, -2.95, 2.05, -0.95, 0.05, -0.95, -1.95, -0.95, -1.95, 0.05, -2.95, -1.95, -0.95, 1.96, 1.96, -0.04, -3.04, 3.96, 3.44, -0.56, 1.44, 2.44, 5.44, 2.05, -0.95, 4.05, 3.05, 3.05, 3.75, 2.75, 5.75, 1.75, -0.25, 12.64, -1.36, 8.64, 1.64, 10.64, 0.76, 0.76, -1.24, 0.76, 1.76, -2.28, -0.28, -1.28, -1.28, -1.28, 0.79, 3.79, -1.21, 0.44, -0.56, -1.56, -5.85, -5.85, -5.85, -0.63, 5.37, -1.18, -0.18, -1.18, -1.75, -1.75, -1.75, -1.63, -2.63, -2.63, 5.79, -2.21, -1.21, -1.82, 2.18, 0.18, 1.18, 1.18, -3.51, -3.51, -3.51, -2.51, 1.49, -1.53, -0.53, 2.47, -2.23, -2.23, -2.23, 10.12, 9.12, 3.12, 0.47, 7.47, 7.47, -1.80, -0.80, -1.80, -2.28, -1.28, -0.28, -1.82, -1.82, -1.82, -0.28, -2.28, -1.28, -0.05, -1.05, 2.95, -0.82, -1.82, -1.82, -2.05, -2.05, -2.05, -1.32, -1.49, -1.49, -2.49, -1.97, -1.97, -0.97, -2.29, -2.29, -2.29, -1.77, -1.77, -0.77, -0.77, -1.77, -2.52, -2.52, -2.52, -2.49, -1.49, -1.49, -0.79, -0.79, 1.21, 5.17, 6.17, 1.17, -1.61, -2.61, -2.61, -1.22, -0.22, 1.78, -1.60, -2.60, -3.60, -2.83, -0.83, -2.18, -1.18, 2.99, -1.01, 6.99, 1.99, 0.99, -0.23, -2.23, 2.77, -0.23, -2.23, 0.22, 1.22, 1.22, -0.78, -0.78, -1.90, -2.90, -2.90, -2.90, -0.90, -1.24, -2.24, 1.76, 1.79, -0.21, 0.79, -0.58, 2.42, -0.58, -0.21, 0.79, 1.79, -1.23, -2.23, -2.23, -0.78, -0.78, -0.78, -2.01, -2.01, -2.01, -2.16, -3.16, 0.84, 0.17, -1.83, -1.83, -1.01, -1.01, -2.01, -1.26, -0.26, -0.26, -2.83, -2.83, -2.83, -1.83, -2.83, -3.60, -1.60, -2.60, 2.39, 3.39, 0.39, 2.70, 12.70, -1.30, 1.10, 1.10, 1.10, 5.75, 6.75, 0.75, 0.75, 1.75, -2.31, -3.31, -1.31, -3.31, -2.31, 1.17, -0.83, 1.17, -1.83, -0.83, 2.76, -2.24, -0.24, -2.26, -1.01, 0.99, -2.01, -1.25, -2.25, -2.25, -1.96, -0.96, -1.96, -0.55, 6.79, 8.79, 14.79, -2.21, -2.21, -1.21, -1.77, -1.59, -1.59, -1.59, -1.59, -0.59, -1.01, -1.01, -2.01, -2.01, -2.01, -1.99, -1.99, 5.01, 0.74, -1.26, -1.26, 4.99, 0.99, 3.99, -1.01, -0.01, -0.01, 0.53, -2.47, -1.47, -1.47, 2.78, -1.22, 4.77, -1.23, 9.36, 10.36, 2.15, -0.23, 0.77, -0.23, 1.77, -1.27, 4.77, 3.77, 6.70, 2.70, -1.28, 0.51, 1.51, 2.51, 5.70, 2.70, 2.70, 3.54, 8.40, 4.62, 1.77, 3.75, 4.75, 9.75, 6.75, 0.75, 1.75, 2.70, 5.86, -1.24, -2.24, 0.70, 2.70, 2.55, 3.60, 14.75, 1.02, -1.98, -1.98, -0.92, -2.92, -2.92, -2.20, -2.20, -1.20, -1.57, -1.57, 6.43, -2.20, -2.20, -2.20, -0.05, 0.95, -2.05, 1.72, 3.72, 0.72, -0.25, -1.25, 0.75, -2.59, -0.59, -2.59, 1.17, -2.83, -2.83, 0.78, -3.22, -2.22, -1.82, -0.82, -1.82, -0.83, -1.83, 1.17, 1.35, 0.35, -0.65, -2.41, -2.41, -3.41, 1.30, -0.70, -1.70, -1.61, -1.61, -1.61, 4.02, 0.02, 5.02, 5.21, 1.21, 1.21, -0.83, -0.83, -0.83, -0.83, 0.17, -2.61, -2.61, -1.61, 4.39, 0.39, -2.25, -2.25, -2.25, 2.02, -1.98, -1.98, -1.22, -1.22, -1.22, 2.49, -2.51, -2.51, -2.79, 0.21, -1.79, -0.23, -2.23, 2.77, -1.23, 1.77, 0.77, 1.42, -2.58, -2.58, 0.42, -1.58, -3.78, -2.78, -3.78, 3.22, 0.22, 3.36, 1.36, -3.64, -3.64, -2.64, -1.41, -1.41, -1.41, 1.59, 3.59, 6.64, -0.36, 6.64, 4.64, 3.64, 2.36, 5.36, 2.36, 6.36, 1.36, 0.03, -1.97, -1.97, 0.01, -0.99, -1.99, 1.23, -1.77, -0.77, 1.47, -0.53, -2.53, 5.82, -0.18, -0.18, 0.72, 4.72, 1.72, -2.28, -2.28, -2.28, 0.72, -2.28, -1.28, -1.28, -0.62, -1.62, -1.62, -0.62, -1.62, -1.82, 0.18, -1.82, -0.82, -0.82, -1.28, 0.72, -2.28, -1.28, -1.28, -2.28, 1.72, -1.28, -1.28, -1.28, -1.98, -0.98, 0.02, 0.02, -1.98, -1.97, 0.03, -1.97, -2.85, -1.85, -2.85, -1.60, -1.60, -1.60, -3.32, 0.68, -2.32, -1.46, -0.46, -2.46, 0.51, -2.49, -0.49, -1.14, -2.14, -0.14, -2.21, -1.21, -1.21, -0.21, -2.21, -2.21, -0.21, -0.21, -2.21, 0.01, -1.99, 2.01, 1.01, 0.01, -0.77, 0.23, -0.77, 0.23, -0.77, -1.31, 3.69, -1.31, -1.60, 0.40, -1.60, -0.67, -0.67, -2.67, -0.42, -2.42, -1.42, 1.58, -3.42, -3.42, 0.08, -0.92, 2.08, -0.55, -1.55, -0.55, -2.73, -2.73, -4.73, -4.73, -4.73, -0.17, 1.83, 2.83, -1.17, 4.83, -0.03, -3.03, 5.97, -0.53, -2.53, -1.53, 9.47, 0.47, 1.47, 1.25, 1.25, -1.75, -1.75, -0.75, 2.79, 2.79, -2.21, 0.79, 2.79, 2.01, 3.01, -1.23, -2.23, -1.23, 2.77, 1.18, 2.18, 2.18, -1.14, -6.14, -3.45, -2.45, -2.45, 0.55, -2.45, -2.45, -1.93, -2.93, 0.07, -7.32, -7.32, -4.32, -2.45, -2.45, 0.55, 1.24, -2.76, -1.76, -0.79, -1.79, -0.79, 2.21, -1.79, -0.79, -2.79, -1.79, -0.79, -0.79, -5.10, -3.10, -9.10, -10.10, -8.10, 5.99, 4.99, 5.99, 3.99, 3.99, -1.59, -1.59, -1.59, -1.59, 0.41, -0.78, -1.78, -0.78, -1.78, -1.78, -1.78, -0.78, -1.78, -2.22, -2.22, -2.22, -2.22, -1.22, -1.22, 1.78, 0.78, 1.78, 6.00, -0.00, -2.00, -2.50, -0.50, -0.50, -2.80, -2.80, -2.80, -1.50, 0.50, -1.50, -2.54, -1.54, -2.54, -3.60, -1.60, -3.60, -2.30, -3.30, -1.30, 0.64, 2.64, 4.64, 1.79, -2.21, 1.79, 3.51, 0.51, 6.51, 4.66, 9.66, 8.66, 7.82, 1.82, 3.82, 2.17, -1.83, 2.17, -3.61, -1.61, -3.61, 0.18, -2.82, -1.82, -1.82, -1.82, -0.82, -0.82, -0.82, -0.28, -2.28, -2.28, -0.28, -2.28, -0.89, 0.11, -1.89, 0.49, -0.51, 0.49, -0.82, -0.82, -0.82, -0.24, -1.24, -2.24, -0.28, 0.72, -2.28, -1.50, -0.50, -3.50, 0.54, -2.46, -0.46, 3.50, 14.50, 5.50, 2.02, 29.02, 11.02, -2.60, -0.60, -0.60, 1.72, -0.28, -1.28, 9.18, 1.18, -1.82, 1.72, -0.28, -0.28, -2.23, -2.23, 0.22, 0.22, -1.78, -3.66, -3.66, -4.66, -1.23, -2.23, -2.23, -0.23, -2.23, -0.23, -2.18, -1.18, -0.18, -2.21, -2.21, 8.79, -1.99, -1.99, -1.99, 2.17, -1.83, 0.17, -1.83, 0.17, 0.74, -1.26, 1.74, 0.74, -1.26, 1.72, -0.28, 0.72, -0.28, -1.28, -1.28, -0.28, 0.72, -1.28, -2.28, -2.28, -2.28, -0.82, -1.82, -1.82, -2.62, -1.62, 4.38, -1.84, -1.84, -1.84, 5.72, -0.28, -1.28, -2.41, -3.41, -1.41, 2.40, -2.60, -0.60, -1.28, -2.28, -0.28, -0.54, 0.46, -1.54, -2.74, -2.74, 4.26, 6.26, -0.74, -1.16, -3.16, -3.16, -1.16, -3.16, 0.84, -3.16, -3.16, -4.37, -3.37, 6.63, -3.16, -3.16, -2.16, -2.01, -2.01, -2.01, -1.25, -1.25, -0.25, -1.25, -2.25, 25.75, -2.01, -1.01, -2.01, -0.25, 0.75, -1.25, -2.24, 0.76, 1.76, -1.24, 0.76, 3.21, 1.21, 1.21, 1.21, 1.21, -1.99, -1.99, -0.99, -0.99, -0.99, -1.21, -2.21, -2.21, -2.21, 2.79, -0.82, 0.18, 3.18, 3.17, 0.17, -2.83, 0.01, -1.99, -1.99, -1.55, 1.45, 0.45, -0.79, -2.79, -2.79, -1.79, 3.21, 8.49, 7.49, 7.49, 2.49, 1.49, -2.55, -0.55, -1.55, -0.55, -2.55, -0.23, -0.23, 0.77, -2.23, 3.77, 0.21, 0.21, 7.21, 3.21, 7.21, -1.18, 1.82, -2.18, 3.79, -1.21, -1.21, 2.23, 2.23, -0.77, -0.77, 0.23, 5.23, -4.45, -4.45, -4.45, -2.45, -0.45, -2.82, -3.82, -2.82, -2.82, -2.82, 4.82, 2.82, 13.82, -2.25, 1.75, 0.75, 5.05, 1.05, 1.05, -1.25, 0.75, -1.25, -0.25, -2.25, -2.25, -1.26, 0.74, -2.26, -1.30, -2.30, -0.30, 2.38, 2.38, 0.38, -1.00, 5.00, 4.00, -2.26, -1.26, 0.74, -2.53, -2.53, 1.47, -1.21, -0.21, -1.21, -1.21, -0.21, 0.29, -1.71, -3.71, -0.71, -2.71, -1.24, 3.76, 2.76, -1.24, 0.76, 0.79, 1.79, 0.79, 5.79, 0.79, -4.51, -4.51, -3.51, -0.26, 0.74, -2.26, 7.17, 6.17, 2.17, 1.14, -1.86, -2.86, 1.24, 0.24, 3.24, 3.24, 2.24, -0.76, -2.76, 2.24, 0.24, 4.24, 0.77, -0.23, -2.23, -1.78, -1.78, -1.78, 4.46, 0.46, -1.54, 1.77, -1.23, -2.23, -0.78, 0.22, 1.22, -1.23, -2.23, -2.23, -1.78, -0.78, 0.22, -1.23, -0.23, -0.23, -2.21, -1.21, 0.79, -0.21, -1.21, -2.21, 2.71, -0.29, 0.71, -0.99, -0.99, 1.01, 2.23, -1.77, -0.77, -1.26, -1.26, -2.26, 0.17, -1.83, -1.83, -1.22, -2.22, -0.22, -1.01, -1.01, 0.99, -0.83, -1.83, -0.83, -1.29, 0.71, 3.71, 1.67, -0.33, -1.33, -0.01, -0.01, 4.99, -2.01, -2.01, -2.01, -2.01, -2.01, 0.77, -0.23, -2.23, -1.23, -2.23, -2.23, -0.23, -1.23, 0.77, -2.23, -2.23, 4.77, -2.23, -0.23, -2.23, -1.23, -2.23, -2.23, -1.23, -2.23, -0.97, -3.97, -3.97, 12.52, 36.52, 15.52, 1.53, -0.47, -5.47, -0.77, -1.77, 5.23, 1.01, -0.99, -0.99, -1.10, -3.10, -2.10, -2.47, -2.47, -1.47, 0.22, -1.78, -2.78, -1.47, -2.47, -0.47, -2.43, -1.43, -2.43, -1.43, -0.43, -0.21, -1.21, -2.21, -1.99, -1.99, -0.99, -0.79, -2.79, -2.79, -1.99, -1.99, -1.99, -1.82, -1.82, -0.82, -0.79, -2.79, -1.79, -1.79, -2.79, -0.79, -1.51, -2.51, 0.49, 0.76, -2.24, 1.76, 10.03, 3.03, -2.01, -0.23, -1.23, -0.23, -2.54, -2.58, 5.42, 13.42, 13.42, 1.42, -1.90, -0.90, -2.90, -1.90, -1.90, -3.36, -2.36, -2.36, -3.36, -2.36, 1.82, 0.82, -2.18, 1.82, -2.18, 0.79, -0.21, 1.79, -2.21, -0.21, 0.82, -1.18, -0.18, -1.18, -2.18, 10.72, 3.72, -4.28, -5.28, -1.06, -1.06, 3.94, 1.94, -1.06, 0.06, -0.94, -0.94, -0.94, -2.94, -2.94, 0.65, -1.35, 0.65, 2.42, -1.58, -1.58, -0.77, 0.23, 0.23, -1.58, -1.58, -1.58, 2.20, -1.80, 2.20, -3.24, 0.76, 0.76, -1.55, -2.55, -1.55, 0.99, -1.01, -2.01, -1.79, -1.79, -0.79, 0.21, 0.21, -0.79, 0.79, -2.21, 1.79, -1.75, -1.75, 0.25, 2.37, 3.37, 0.37, -0.21, 1.79, 4.79, 3.25, 4.25, 2.25, 1.66, 2.66, 0.66, 2.79, -1.21, 2.79, -2.95, 4.05, -0.95, 1.04, -1.96, -1.96, -1.02, -2.02, 1.98, -0.02, -0.02, -0.02, -1.72, -0.72, -1.72, -1.40, -1.40, -1.40, -2.68, -0.68, -1.68, -3.40, -3.40, -1.40, -1.38, -2.38, -3.38, -1.28, -2.28, -0.28, 4.75, 0.75, -1.25, 1.72, -0.28, -2.28, -2.31, -2.31, -2.31, -2.23, -2.23, -2.23, -4.21, -4.21, -4.21, -1.34, -1.34, -1.34, -2.23, -2.23, -1.23, -0.23, -2.23, -2.23, -0.51, 0.49, -1.51, 2.49, 1.49, -2.18, -2.18, -2.18, -1.18, -1.18, 2.17, -0.83, -0.83, 1.17, -2.83, 1.21, -0.79, -0.79, -0.79, -1.79, -2.28, 6.72, -1.28, -1.27, -0.27, 3.73, -1.28, -1.28, -1.28, -1.28, 2.72, 3.64, -1.36, -3.36, 8.64, 7.64, -0.91, 6.09, -1.91, -1.28, -2.28, -1.28, -0.28, 2.72, 4.72, 1.72, -1.28, -2.28, -0.28, -1.28, -2.28, -1.28, 0.72, -2.28, -2.28, -1.28, 0.72, -1.28, -2.26, 0.74, -2.26, 1.69, 2.69, 0.69, 2.77, 2.77, -1.23, -0.23, -2.23, 1.77, -2.21, -0.21, 2.79, 3.48, 2.48, -2.52, 3.79, 0.79, -1.21, -1.25, -1.25, -2.25, -1.25, -1.25, -0.25, -0.25, -1.25, 5.75, 1.75, -1.31, -0.31, 4.69, -1.31, -0.31, -0.63, 1.37, 1.37, -1.63, 0.37, -1.79, 3.21, -1.79, 1.01, 2.01, 1.01, 0.72, -0.28, 0.72, -0.28, 1.72, 5.72, -1.13, -1.13, 2.87, 2.40, -0.60, 0.40, -2.12, -5.12, -8.12, -5.12, -3.12, -0.19, 0.81, -3.19, -2.19, -2.19, -2.19, -3.19, -3.19, -2.19, -2.19, -1.27, -1.27, 3.17, -1.83, -1.83, -2.83, 1.17, -3.94, -3.94, -0.94, -1.94, -4.94, -1.51, -1.51, -0.51, -1.82, 2.18, 2.18, 0.21, -0.79, -2.79, -1.41, -1.41, -2.41, -0.41, -0.41, -0.41, 1.27, -2.73, 4.27, 0.27, -1.73, -0.73, 0.82, 2.82, 5.82, -1.83, -0.83, -2.83, 1.26, 4.26, 2.26, -2.25, 1.75, 1.75, -1.20, 0.80, -0.20, -0.71, 4.29, 0.29, 3.17, 3.17, 1.17, -2.70, -2.70, -2.70, 4.17, 5.17, 2.17, 1.17, 4.17, -0.83, -3.32, 0.68, 23.68, -0.25, 1.75, -0.25, 0.75, 6.75, -0.25, 1.75, -0.25, -1.25, -1.25, -2.36, -1.36, 2.64, -2.36, 1.64, -1.60, -1.60, -1.60, -1.60, -1.60, 11.01, 0.01, 4.01, -5.07, -0.07, -5.07, 2.37, 0.37, -0.63, -3.09, -3.09, -3.09, 0.26, -1.74, 6.26, -1.90, -3.90, -2.90, -3.43, -3.43, -2.43, -1.09, -2.09, -3.09, -0.28, -1.28, -1.28, -3.68, -0.68, -3.68, 0.09, -0.91, -0.91, -1.21, -1.21, -1.21, 1.79, -0.21, -1.21, 0.43, -2.57, -2.57, -1.21, -1.21, -0.21, -2.14, -1.14, 4.86, -0.77, -0.77, -0.77, -2.21, -2.21, -1.21, -1.21, -2.21, -1.27, -0.27, -1.27, -3.27, -3.27, -2.21, -1.21, -2.21, -2.21, -2.21, -3.97, -3.97, -3.97, -1.97, -3.97, -3.06, -1.06, -3.06, -0.06, -2.06, 0.01, -1.99, 0.01, 3.01, 1.01, -1.22, -2.22, -3.22, 0.78, -0.22, 14.49, 9.49, -0.51, 3.49, 1.49, 0.01, -0.99, -1.99, -0.99, -1.99, -0.21, -2.21, -2.21, -0.21, -2.21, -1.77, -1.77, -1.77, -1.77, -1.77, -0.77, -0.77, -1.77, 1.23, -1.77, 1.61, 2.61, 1.61, -2.57, 0.43, -1.57, 1.43, -0.57, 0.75, -1.25, 3.75, 0.75, 1.75, 3.75, 0.75, 0.75, 3.75, -1.25, 0.20, 3.20, 0.20, 3.20, 1.20, 0.12, -0.88, -0.88, -2.28, -1.28, -1.28, -0.03, -2.03, -1.03, 0.73, 0.73, 2.73, -0.20, -1.20, -0.20, -1.76, -1.76, -0.76, -2.23, 3.77, -0.23, 7.85, -0.15, -3.15, 0.89, -3.11, -1.11, 5.32, -0.68, -3.68, 1.78, -1.22, -2.22, -0.83, -1.83, -1.83, 4.45, 1.45, 1.45, 10.45, 0.45, -1.55, 3.45, -2.55, 1.45, -0.83, -0.83, 1.17, 2.17, 3.17, -1.83, 0.24, -0.76, -1.76, -0.76, -0.76, -0.81, -0.81, -1.81, -1.81, -1.81, 0.77, -0.23, 0.77, 1.77, -0.23, -2.08, -2.08, -1.08, -0.63, 0.37, -2.63, 1.41, -0.78, -1.01, -1.01, 5.99, -0.51, -0.51, -1.51, -1.79, -0.79, 1.21, -1.91, -2.91, 1.09, 1.77, -1.23, 5.77, -2.01, -4.01, 2.02, 1.02, -2.26, -1.26, -2.26, -2.26, -2.26, 0.01, 3.01, 3.01, -0.21, -0.21, 0.79, -1.21, -1.21, 0.79, -1.21, -0.21, 0.79, -1.99, -0.99, -1.99, -1.35, -1.35, -2.35, -1.76, -1.76, -0.76, -2.20, -2.20, -2.20, 0.22, -1.78, -1.78, 2.20, 1.20, 2.20, 4.20, -0.80, 3.40, -2.60, -1.60, -2.60, 1.40, 2.66, 7.66, 6.66, -1.71, -2.71, -0.71, -2.71, -2.71, -2.71, 2.29, 1.29, -1.05, -3.05, -3.39, -3.39, -2.39, -0.30, 7.70, -1.30, 0.44, -2.56, 4.73, 0.73, 0.73, -0.75, 2.25, -0.75, -0.58, -1.58, -2.58, -1.56, -3.56, -2.56, -0.13, 1.87, -3.13, 0.26, -0.74, 2.26, -0.74, -1.74, -0.74, -0.74, -0.74, 0.26, -0.74, 12.11, 13.11, 14.11, 39.11, 5.43, 2.43, -1.57, 3.43, 2.43, 0.26, -0.74, 0.26, -0.74, 3.26, -0.40, 0.60, 0.60, -1.40, -0.40, -3.52, 0.48, -3.52, 0.48, -2.52, 0.48, -0.52, -1.52, -0.52, -3.52, -2.52, 4.48, -1.52, -3.52, 0.48, -1.75, 3.25, -1.75, -2.75, -0.75, -0.16, -4.16, -3.16, -3.16, 1.84, -1.06, 2.94, -0.06, -1.06, -1.06, -3.87, -3.87, 0.13, -3.87, -2.87, 20.51, 2.51, 1.51, 1.51, 3.51, -3.15, -3.15, -3.15, -2.15, -3.15, -0.49, -2.49, 1.51, -1.49, -2.49, 1.65, -1.35, -2.35, -3.35, -2.35, -1.77, -1.77, -0.77, -1.28, 0.72, -1.28, -2.03, -1.03, -2.03, -2.01, -1.01, -2.01, -2.23, -1.23, -2.23, -1.26, -1.26, -1.26, 3.77, -1.23, -2.23, 0.02, -1.98, -1.98, -0.98, -1.98, 0.49, -1.51, -0.51, -0.51, -0.51, -1.43, -2.43, -2.43, -1.06, -1.06, -1.06, 18.38, 21.38, 26.38, -1.43, -3.43, 0.57, 0.99, -2.01, -1.01, -1.81, -0.81, 0.19, 0.20, 0.20, -0.80, -2.25, -2.25, -0.25, 3.15, 1.15, 1.15, -1.89, -0.89, 4.74, -0.26, -0.26, -2.26, -1.26, -1.85, 2.15, -0.85, -0.61, 1.39, 2.39, 6.39, 4.39, -1.80, -1.80, -1.80, -0.80, -1.80, -0.25, -0.25, -1.25, 0.75, -1.25, -1.83, -2.83, -2.83, 4.79, -2.21, 0.79, 1.03, -3.97, -3.97, -2.97, -3.97, 3.70, -2.30, 0.70, -2.54, -2.54, -2.54, -1.23, 2.77, -2.23, 0.79, -0.21, -1.21, -2.24, 1.76, -2.24, -0.21, -1.21, -1.21, -0.77, 3.23, -1.77, -2.51, -2.51, -2.51, -2.35, -2.35, -1.35, -1.01, -1.01, 0.99, -2.85, -2.85, -2.85, -1.23, -1.23, -1.23, -2.23, 21.77, 30.77, -2.83, -2.83, -1.83, -1.83, -1.83, 6.17, -1.83, -2.83, -1.83, -2.83, -0.83, -2.83, -2.83, -1.83, 2.17, 9.74, 0.74, 10.74, 2.74, 2.74, -2.22, -1.22, 7.78, 1.78, -0.22, -2.83, -2.83, -1.83, -1.83, -2.83, -1.57, -1.57, 2.43, -1.86, -1.86, -2.86, 4.65, 1.65, -1.35, -0.84, -0.84, 0.16, -1.73, -2.73, 2.27, 5.58, -2.42, -1.42, -2.48, -4.48, -1.48, -2.89, -2.89, -1.89, -2.42, -3.42, -0.42, -0.22, -1.22, 3.78, -1.78, -1.78, -1.78, -1.58, -1.58, 0.42, -2.22, -2.22, -1.22, 1.66, 0.66, 3.66, -0.57, -0.57, -2.57, 1.20, 5.20, 8.20, 16.56, 11.56, -2.44, 5.18, 3.18, -0.82, -2.28, 9.72, 0.72, -1.59, -0.59, 2.41, -2.51, -2.51, 1.49, 3.89, -1.11, 1.89, 1.09, 3.09, 0.09, 4.09, -1.91, -0.91, 5.09, -0.91, -2.91, -0.91, -0.91, 0.09, 0.12, -0.88, -0.88, -0.88, 3.12, -0.21, -1.21, 0.79, -2.21, -1.21, -1.20, -0.20, -1.20, -1.20, -2.81, 0.19, -0.81, -0.81, -2.23, -2.23, -2.23, 1.72, -0.28, -0.28, -1.28, -1.28, -1.28, -2.05, -2.05, -1.05, -4.45, -3.45, -0.45, -2.48, -3.48, -2.48, -2.48, -1.48, -2.48, -3.14, -3.14, -3.14, 49.79, 2.79, -1.21, 5.34, -0.66, 4.34, -1.99, -0.99, -0.99, -0.18, -1.18, 2.82, 14.79, 8.79, 41.79, -0.97, 4.03, 0.03, 2.26, 0.26, -0.75, -0.75, -1.75, -0.75, -1.97, 8.03, -1.97, -1.97, -1.97, -1.49, -2.49, -2.49, 0.51, -2.49, 2.03, 1.03, -0.97, -0.97, -0.97, -1.75, -0.75, 0.25, 2.25, -0.75, -0.01, 1.99, 0.99, 0.99, -0.01, 3.79, 6.79, -1.21, -2.21, 0.79, -0.31, 3.69, -0.31, -0.31, -2.31, 6.43, 2.43, 0.43, 17.43, 6.43, 3.22, 3.22, 3.22, 10.22, 0.22, 3.77, -0.23, 3.77, -2.23, 4.77, -1.82, 1.18, -0.82, -0.98, 0.02, -0.98, -0.28, -0.28, -1.28, 4.98, 6.98, 1.98, 0.17, -0.83, -0.83, -1.86, -0.86, 0.14, 1.17, 0.17, -0.83, -0.20, -2.20, -2.20, -1.76, -1.76, -1.76, -1.98, -1.98, -1.98, 0.49, -2.51, -2.51, -1.57, -1.57, -1.57, -0.78, -0.78, 1.22, 3.22, 3.22, 0.22, 0.73, 1.73, -0.27, -0.43, -1.43, 1.57, -1.63, -1.63, 1.37, -2.03, -0.03, -2.03, -0.28, 0.72, -0.28, -1.77, -1.77, -0.77, -0.25, -1.25, -1.25, 5.39, -0.61, -1.61, 5.20, 1.20, -0.80, -3.10, -4.10, -3.10, 4.92, -0.08, 2.92, -0.28, -1.28, 0.72, -1.25, -2.25, -2.25, -1.99, -2.99, -2.99, -2.23, -2.23, -0.23, -1.80, -0.80, 0.20, 1.99, 2.99, -1.01, 16.78, 18.78, 10.78, -0.26, -0.26, -0.26, -1.59, -1.59, -1.59, -0.81, -2.81, 1.19, -2.81, 2.19, -1.64, -2.64, -1.64, -2.64, 4.36, -1.20, 0.80, 1.80, 1.80, -1.20, -0.95, 2.05, 0.05, -1.95, -2.95, 0.39, -0.61, -0.61, -0.61, 0.39, -0.91, -1.91, -2.91, -1.91, -1.91, -0.28, -1.28, -0.28, -0.28, -0.28, -1.58, -0.58, -0.58, -0.30, -2.30, -2.30, -2.30, -0.30, -0.30, -1.64, 0.36, 0.36, -3.99, -5.99, -4.99, 0.37, -5.63, -3.63, -2.33, -2.33, -0.33, -2.23, -0.23, -1.23, -1.78, -0.78, 0.22, -1.23, 6.77, 6.77, -1.92, -2.92, -0.92, 2.68, -0.32, -3.32, 0.66, 2.66, -1.34, 1.66, 0.66, -1.96, -0.96, -2.96, -1.96, -2.96, -1.21, -1.21, -1.21, -2.21, -2.21, 15.21, 10.21, 1.21, -1.79, -0.79, -0.21, -2.21, -1.21, 4.79, -1.21, -0.21, -2.21, -1.21, -2.21, -1.21, -4.43, -3.43, -6.43, -6.43, -5.43, 5.79, 0.79, 1.79, -1.21, -2.21, -1.21, -0.36, -0.36, -0.36, 3.76, -0.24, 0.76, -0.80, -0.80, -0.80, 0.44, 0.44, 11.44, -1.80, -0.80, -1.80, 4.39, -0.61, 2.39, -1.80, -1.80, -1.80, -1.03, -2.03, -2.03, 0.17, 0.17, 3.17, 0.17, 0.17, 0.17, -0.26, -1.26, 1.74, -0.01, 2.99, 1.99, -0.83, -1.83, -2.83, -2.26, -2.26, -1.26, -1.55, -1.55, -2.55, -1.82, -0.82, 3.18, -0.03, 1.97, -1.03, -3.42, 0.58, 35.58, 67.58, 68.58, -3.74, -3.74, 3.26, 20.26, 7.26, -1.28, 2.72, -2.28, 1.75, -2.25, 1.75, -2.25, -0.25, -2.25, -1.03, 0.97, -0.03, -0.25, -1.25, 2.75, -1.18, -3.18, -0.18, -3.18, 1.82, 0.95, 7.95, -2.05, 13.85, -4.15, -4.15, -1.83, -1.83, -0.83, -0.83, 0.17, -1.18, -2.18, -0.18, -3.18, -1.18, -2.51, -2.51, -2.51, -2.51, -1.51, 2.35, -1.65, -1.65, -1.65, -1.65, -0.97, -0.97, 0.03, -1.21, -1.21, 0.79, 1.47, 3.47, -2.53, -0.18, -0.18, -1.18, -2.25, -2.25, -1.25, 2.12, -1.88, -2.88, -1.80, -0.80, -1.80, -1.21, -1.21, 4.79, -1.03, -2.03, -2.03, 0.37, -2.63, -2.63, -1.63, -0.63, -0.25, -2.25, -0.25, 10.75, 1.75, -1.57, -2.57, -1.57, 2.43, 0.43, -1.25, -1.25, 0.75, -1.25, 0.75, -1.49, -2.49, -0.49, 1.01, -1.99, -1.99, -0.21, -1.21, -2.21, 4.03, 1.03, -1.97, -2.26, -2.26, -0.26, 0.52, -3.48, -3.48, -1.84, -3.84, -3.84, 4.08, 6.08, 3.08, 5.08, 5.08, -3.63, 2.37, -0.63, -0.63, 0.37, 1.03, 0.03, 4.03, 0.23, -0.77, 2.23, 0.82, -1.18, -0.18, 0.25, 5.25, 4.25, 3.18, 7.18, 9.18, 1.75, 0.75, 4.75, 0.97, 1.97, 14.97, -1.25, -1.25, 2.75, 3.12, -0.88, 3.12, -1.25, -0.25, -1.25, 0.78, -2.22, -1.22, 2.84, -1.16, -2.16, 1.59, 0.59, -0.41, -2.41, -1.41, 10.11, 9.11, 0.11, -2.89, -2.89, -1.03, -0.03, -2.03, -2.03, -1.03, -1.59, -1.59, -1.59, -1.59, -1.59, -1.59, -2.23, -2.23, -2.23, -2.23, -2.23, -1.23, -2.23, -2.23, -1.23, 1.16, -1.84, 0.26, 0.26, 0.26, -0.21, -1.21, -1.21, -0.51, -0.51, -1.51, -1.21, -2.21, -2.21, 1.25, -0.75, -1.75, 4.03, -1.97, -0.97, 2.47, -2.53, -2.53, 1.54, -2.46, 1.54, -2.83, -2.83, -2.83, -2.83, -2.83, -0.83, -1.01, -2.01, -0.01, 0.99, -2.01, 2.99, -2.51, 1.49, 2.49, -3.13, -3.13, -3.13, -2.51, -1.51, -3.95, -1.95, -0.95, -3.52, -1.52, -3.52, -3.52, -3.52, -3.52, -2.52, -3.52, -2.52, -2.17, -3.17, -3.17, 0.74, -2.26, 1.77, -1.23, -1.23, 1.22, -1.78, -0.78, 22.77, 7.77, -2.23, -0.59, -1.59, -0.59, 1.41, 0.41, -1.59, -2.81, -1.81, -3.81, 0.61, 3.61, 0.61, 2.72, 14.72, 1.72, -2.71, -2.71, -1.71, -1.28, -0.28, -0.28, 0.03, 5.03, -2.97, 1.22, 1.22, 6.65, -0.35, -2.35, -0.85, -1.85, -1.85, -2.23, -2.23, -2.23, 0.46, -0.54, -1.54, 0.41, -1.59, -1.59, -0.28, 0.72, 2.72, -1.03, -0.03, -0.03, 1.23, 4.23, 0.23, -0.03, -1.03, 0.97, -1.03, 0.97, 1.14, -1.86, -1.86, 1.14, -2.86, -2.83, 1.17, 0.17, -2.83, -1.83, -1.79, 0.21, 2.21, -2.79, -2.79, 0.21, 0.21, -0.79, -1.79, -1.79, 1.96, -2.04, -2.04, -2.97, -1.97, -2.97, -2.21, -0.21, -2.21, -2.02, -3.02, -5.02, -2.55, -2.55, -1.55, -2.55, -2.55, -2.55, -1.55, -2.55, -0.55, -2.55, -2.55, -2.55, -0.55, -2.55, -3.55, -2.48, -1.48, -3.48, -3.48, -3.48, -3.54, 1.46, 0.46, 0.46, -3.54, -0.99, -0.99, -1.99, 1.01, -1.99, 0.01, 1.47, 0.47, -1.53, 15.76, 3.76, 1.76, -2.31, -2.31, -2.31, -1.44, 1.56, -0.44, -1.58, -1.58, -1.58, -1.24, -2.24, -1.24, 5.01, 2.01, 0.01, -0.35, -2.35, 5.65, 1.65, 0.65, 0.25, 2.25, 8.25, 7.79, 9.79, 3.79, 5.48, -1.52, 4.48, 0.79, 5.79, 4.79, -2.33, 0.67, 3.67, 2.67, -2.33, 1.67, 10.42, 3.42, 3.42, -0.33, -0.33, -0.33, -1.60, -2.60, -0.60, 1.76, 5.76, 3.76, -2.23, -1.23, -2.23, 0.77, -0.23, 0.77, -1.23, 5.77, 2.77, 2.43, -0.57, 1.43, -0.51, -1.51, 0.49, -0.51, 1.49, 5.22, -0.78, 0.22, 2.22, 3.22, -0.20, 2.80, -2.20, -1.20, -0.20, -1.28, 0.72, -3.28, 2.41, -1.59, -0.59, 1.22, 0.22, 0.22, -1.83, -1.83, 0.17, -1.83, -0.83, -2.83, -1.83, -1.83, 1.17, 2.17, -3.22, -2.22, -3.22, -2.22, -1.22, 3.66, -2.34, -2.34, -1.34, -1.34, 3.38, 6.38, 4.38, -0.28, 7.72, 1.72, 3.18, 0.18, 0.18, -3.20, 2.80, -1.20, -1.95, 2.05, -0.95, 11.36, -1.64, 1.36, 0.70, -0.30, 0.70, -2.34, 3.66, 2.66, -1.22, 1.16, 2.16, -0.84, -0.82, -2.82, -2.82, -1.99, -1.99, -1.99, -0.82, -2.82, -1.82, 23.72, 11.72, 8.72, -2.28, 0.72, -0.28, -1.28, -0.28, -0.28, 0.09, 0.09, 1.09, -1.31, -1.31, -2.31, -0.28, 0.72, -1.28, -0.20, -0.20, -1.20, 1.02, 0.02, -0.98, -1.76, 1.24, 3.24, -2.68, -2.68, -1.23, -2.23, -2.47, -1.47, -0.29, -1.29, -3.29, 1.01, -1.99, -0.99, 0.78, -1.22, -2.22, 1.32, 3.32, -2.68, 5.45, -0.55, -0.55, 1.17, -1.83, -1.83, -0.26, 5.74, -2.26, -0.26, -1.26, -2.02, -1.02, 5.98, 4.98, 0.98, 6.17, 7.17, 6.17, 3.17, 0.17, 7.34, 7.34, 10.34, 5.34, 7.34, -2.01, -2.01, -1.26, -2.26, -2.26, -1.96, -1.96, -0.96, -2.21, 0.79, -1.21, -2.21, -2.21, 1.79, 0.49, -2.51, 1.49, -1.21, -2.21, -2.21, 0.65, 4.65, 6.65, 7.20, -1.80, -0.80, -1.80, 0.20, -1.03, -2.03, 1.97, -0.03, 3.97, 4.72, 4.72, 1.72, 0.72, 4.72, 4.75, 5.75, 2.75, 4.75, 4.75, -3.10, -0.10, 1.90, 5.90, 0.90, -0.80, -0.80, 5.20, 14.20, -0.80, -1.61, -0.86, -0.86, 0.14, -1.86, 3.14, -1.66, -1.66, -1.66, -1.66, -0.66, 4.23, 1.23, 3.23, 4.23, 0.23, -1.26, -2.26, -2.26, -2.26, -1.26, -2.26, -1.92, 2.08, -2.92, 3.35, -1.65, 2.35, -6.45, -8.45, -0.23, 0.77, 0.77, 3.61, -0.39, 3.61, -1.28, -0.28, 0.72, -0.28, -2.28, 1.31, -0.69, -1.69, -1.69, -1.69, 0.72, 3.72, 4.72, 0.72, 11.72, -1.28, -1.28, -0.28, -0.28, -0.28, -0.76, -1.76, 0.24, -3.56, -3.56, -3.56, -2.51, -2.51, -2.51, 1.24, -1.76, 2.24, -1.98, -1.98, -1.98, -1.78, -1.78, 1.22, -2.96, 2.04, 5.04, -1.63, -1.63, -1.63, -0.03, 11.97, 3.97, -0.03, 4.97, -1.72, -1.72, -1.72, 4.31, 7.31, 7.31, 0.02, 8.02, 5.02, -1.54, -2.54, -1.54, -0.54, -2.54, -0.23, -0.23, -1.23, 1.77, -1.23, -0.51, 7.49, 9.49, 8.49, 1.49, 3.58, -0.42, -3.42, 2.72, 4.72, 2.72, -0.28, -1.28, -1.24, -2.24, -1.24, -2.24, -0.24, 3.75, 0.75, -0.25, 0.75, -0.25, -1.52, -0.52, -1.52, 2.77, 1.77, -1.23, -0.23, -0.23, -2.87, -2.87, -1.87, 1.13, 1.25, -1.75, 0.14, 2.14, 2.14, -2.72, -1.72, -4.72, -0.23, 0.77, -1.23, 0.77, 4.77, -2.95, 4.15, 1.15, 4.15, -0.85, 9.46, 0.46, -2.54, 1.46, 1.46, 9.73, 1.73, 3.15, 4.15, -0.30, -0.30, 2.70, -0.30, 1.15, 0.15, 15.77, 10.77, 6.15, 7.15, 4.15, 4.15, 2.15, 1.15, -0.85, 1.15, 3.75, -0.25, 0.57, 0.77, 0.15, 2.15, 0.77, -0.23, -1.23, 17.15, 3.75, -1.85, 8.76, 5.02, -0.23, 0.77, -1.23, 4.77, -0.23, -1.23, -2.24, 5.15, 0.70, 4.70, 4.70, -0.30, 1.76, -2.24, 3.77, -0.23, 4.78, 3.15, 5.09, 4.09, 6.09, -0.55, -1.55, -0.55, 0.12, 1.12, 1.12, -3.04, -1.04, -1.04, -2.01, -2.01, -2.01, -1.85, 0.15, -2.85, -2.85, -0.85, -1.63, -1.63, -1.63, -1.63, -1.63, -1.07, -3.07, -4.07, -1.26, -2.26, -1.26, 0.74, -0.26, -4.09, -4.09, -4.09, -5.09, 0.91, -5.29, -3.29, -4.29, -0.29, 0.71, 6.77, 2.77, -2.23, -0.23, 5.77, -2.10, 1.90, 0.90, -0.26, 0.74, -2.26, 2.74, -1.26, -1.26, -1.48, -1.48, 0.52, -1.63, 0.37, -1.63, -8.29, -8.29, -8.29, -6.29, -8.29, -2.55, -2.55, -2.55, -2.55, -2.55, -2.88, -1.88, -0.88, -2.88, -2.88, -1.94, -2.94, 4.06, 0.06, -0.94, 1.58, -1.42, -2.31, -1.31, -0.31, -2.31, 3.17, -2.83, -1.80, -1.80, -1.80, -1.41, -1.41, -1.41, -1.59, 11.01, -0.99, 0.01, -0.99, 3.01, -0.26, -0.26, 2.74, -1.26, -0.26, 1.86, -0.14, 0.86, 2.86, -0.14, -2.12, -2.12, -2.12, -2.28, -2.28, -2.28, -2.99, 0.01, -2.99, -2.99, -0.99, -1.87, 0.13, -1.87, 2.13, -1.87, -2.23, -2.23, -2.23, -1.23, -2.23, 1.79, -0.21, 2.79, -2.85, -1.85, -1.85, -1.85, -2.85, -2.23, -2.23, -2.23, 3.77, -2.23, -2.85, -2.85, -2.85, 0.15, -2.85, -4.82, -2.82, 3.18, 7.18, 11.18, -2.88, -2.88, 0.12, 0.12, -1.88, -2.82, -0.82, -1.82, 0.18, 4.18, -3.18, -3.18, -3.18, -3.18, -3.18, -2.79, -2.79, -1.79, -1.79, -2.79, -2.46, -2.46, -2.46, -2.46, -2.46, -3.56, -3.56, -3.56, -3.56, -3.56, -2.52, -3.52, -3.52, -3.52, -3.52, -3.52, -3.52, -3.52, -3.52, -3.52, 1.82, -0.18, -0.18, 1.48, -1.52, 1.48, 2.22, 4.22, 1.22, -1.78, -1.78, 7.45, 11.45, 2.45, -1.55, -1.55, 9.45, 13.45, 6.45, 9.45, 7.45, 2.22, 4.22, 2.22, 1.22, 0.22, 4.51, 6.51, 8.51, -0.75, 0.25, -1.75, -1.75, -1.75, -1.75, -2.47, -2.47, -2.47, -1.84, -0.84, -1.84, -1.94, -1.94, -1.94, -2.47, -2.47, -2.47, -1.58, -1.58, -1.58, -1.77, -1.77, -1.77, -2.35, -2.35, -1.35, -2.35, -1.58, -1.58, -1.58, -1.99, -1.99, -1.99, -1.87, -1.87, -1.87, -2.26, -2.26, -2.26, -1.77, -1.77, -1.77, 2.77, -2.23, 1.77, -1.31, -1.31, -2.31, 2.69, 5.69, 2.42, 1.42, 1.42, 3.42, 1.42, 0.19, -1.81, -1.81, -1.81, -1.81, 1.97, 5.97, -0.03, 0.97, 0.97, -0.80, -1.80, -0.80, 3.20, 3.20, -1.37, -0.37, -2.37, -3.04, -3.04, -3.04, -1.25, 0.75, -1.25, 2.98, -1.02, -2.02, 7.79, 10.79, 10.79, -3.58, -3.58, -2.58, -0.55, -1.55, -0.55, 9.40, -0.60, 5.40, 1.12, 1.12, 5.12, -3.44, -2.44, -3.44, -1.60, -2.60, -2.60, 2.74, -0.26, 2.17, -1.83, 0.01, -1.99, -1.27, -2.95, -2.95, -2.25, -2.25, -2.95, -1.28, -2.28, -2.28, -2.88, 1.12, -2.88, 0.18, -0.82, -1.82, -1.28, -2.28, -2.28, -2.28, -2.28, 3.72, -1.59, -0.59, 1.41, -1.98, -1.98, -0.98, -2.28, -2.28, -2.28, -0.76, -1.76, -1.76, -1.76, -1.76, -0.59, -1.59, -1.59, -0.78, -1.78, 0.22, -1.78, -1.78, 1.84, -2.16, -3.16, 2.84, 10.84, -0.69, -1.69, 1.31, -2.60, -2.60, -2.60, -3.33, -3.33, -3.33, -2.86, -0.86, 1.14, -2.88, -1.88, -2.88, -2.85, -1.85, -2.85, -3.04, -3.04, -3.04, -3.58, -3.58, -3.58, -3.93, -3.93, -3.93, -3.58, 0.42, -3.58, -3.79, -3.79, -3.79, -2.22, -2.22, -2.22, -2.34, -2.34, -2.34, -2.36, -2.36, -2.36, -2.85, -2.85, -2.85, -2.88, -2.88, 0.12, -2.55, -2.55, -1.55, -2.51, -2.51, -2.51, -2.85, -2.85, -1.85, -1.99, -1.99, -2.85, -2.85, -2.85, 9.16, 7.16, 7.16, 3.29, -2.71, 2.29, -3.62, -2.62, -2.62, 0.38, -1.62, 1.38, 4.38, -0.62, -1.62, -1.62, -1.62, -1.62, -1.62, -1.62, -2.46, -2.46, -2.46, -2.46, -2.46, -2.17, -2.17, -2.17, -2.17, -2.17, -2.30, -2.30, -2.30, -0.30, -2.30, -2.30, -2.30, -2.30, -2.30, -2.30, -1.92, -1.92, -1.92, -1.92, -0.92, -1.72, -0.72, -1.72, -1.72, -1.72, -1.80, -1.80, -1.80, -1.80, -1.80, -2.47, -1.47, 1.53, -3.16, -3.16, -2.16, -3.62, -2.62, 0.38, -3.80, -2.80, -2.80, -2.55, -1.55, -2.55, 1.13, -0.87, 0.13, -4.55, -4.55, -4.55, -0.55, -3.55, -1.78, 2.22, 11.22, -1.57, -1.57, -1.57, -2.60, -0.60, -1.60, -3.27, -3.27, -3.27, -3.27, -2.27, -1.91, -1.91, -2.91, -2.91, -0.91, -1.55, -2.55, -1.55, -0.26, -2.26, -2.26, -2.86, -2.86, -2.86, -2.25, -2.25, -1.25, -1.76, -1.76, 0.24, -2.25, -0.25, -1.25, 0.75, -2.25, -1.25, -2.25, -2.25, -2.25, -2.25, -2.25, -1.25, -2.92, -2.92, -0.92, -2.25, -2.25, -2.25, 0.72, 3.72, -2.28, -1.28, -2.28, 2.44, -1.56, 1.44, 2.44, -2.56, -3.52, -3.52, -3.52, -1.41, -1.41, -1.41, -0.99, -0.99, -1.99, -1.59, -1.59, -1.59, -1.59, -1.59, -3.14, -4.14, -4.14, -4.14, -4.14, -1.80, -1.80, -1.80, -1.80, -1.80, -1.82, -1.82, -1.82, -1.82, -1.82, -3.61, -0.61, -2.61, -1.49, -0.49, -1.49, -2.98, 0.02, -2.98, -0.98, -1.98, -0.98, -1.98, -1.98, -2.39, -1.39, -2.39, -5.68, -7.68, -6.68, -2.26, -2.26, -2.26, 1.15, 0.15, 2.15, 4.52, -1.48, 0.52, -2.17, -2.17, -3.17, -0.67, -0.90, -0.90, 3.10, 2.74, 0.74, 1.74, -2.07, 0.93, -2.07, 1.76, -2.24, -0.24, -1.26, -0.26, -1.26, 4.23, 1.23, 6.23, -20.49, -28.49, -22.49, -10.49, -8.49, -2.75, -3.75, -2.75, -3.75, -1.89, -3.89, -3.89, 0.11, 3.11, -2.81, -2.81, -2.81, -2.81, -1.81, -3.05, -3.05, -3.05, -0.22, -0.22, -1.22, -1.22, -1.22, -3.07, -1.07, -3.07, -3.07, 0.18, -1.82, 2.18, -0.33, -0.33, 9.67, -1.82, -1.82, 0.18, -0.09, 0.91, -2.09, -3.09, -3.09, -3.47, -0.47, -3.47, -3.47, -3.47, -1.55, 0.45, -0.55, 1.45, -3.55, -2.57, 1.43, -3.57, -0.82, -0.82, 1.18, -3.02, -3.02, -3.02, -1.02, -0.02, -0.02, -0.02, -2.02, -2.93, 1.07, -1.93, -1.93, 0.07, -2.51, 0.49, -1.51, -1.99, -1.99, -1.99, -1.61, -3.61, -3.61, -0.13, -2.13, 1.87, -2.49, 1.51, -2.49, -2.23, -2.23, -2.23, -2.23, -2.23, -2.23, -1.23, -2.23, -2.23, -2.32, -2.32, -2.32, -2.23, -2.23, -2.23, -3.66, -3.66, -3.66, -0.26, -2.26, 0.74, -1.04, -2.04, -0.04, -1.60, -1.60, 2.40, -0.60, 1.40, -2.33, 0.67, 1.67, -0.33, -1.33, -2.33, -2.33, -1.82, -0.82, -2.33, -0.33, -1.33, -2.33, -0.33, -1.33, 0.67, -2.33, -2.33, -2.33, -2.33, -2.33, -3.04, -2.04, -2.04, -1.04, 0.69, -0.31, -1.31, -2.31, 1.29, -1.71, 0.29, -1.71, -2.71, -1.71, 3.22, -1.78, -1.78, 3.22, -1.78, -1.78, 5.78, -1.22, 1.78, -0.05, -1.05, -2.05, 1.37, -0.63, -1.63, -1.82, -1.82, -1.82, -2.66, -2.66, -2.66, -1.82, -0.82, -0.82, 0.98, -3.02, -4.02, -0.85, 0.15, -1.85, 1.78, -2.22, 9.78, -2.17, -1.17, -3.17, -2.17, 0.83, -1.77, -1.77, -1.77, -1.77, -1.77, -1.77, -1.77, -1.77, -1.77, -1.78, -1.78, -1.78, -1.39, -1.39, -1.39, -2.01, -2.01, -0.01, 3.98, -3.02, -1.02, 12.33, 15.33, 10.33, 13.33, 3.33, 1.53, 6.53, 0.53, -0.47, -2.47, 4.01, -1.99, -2.99, -1.99, 2.01, 14.46, 16.46, 14.46, 20.46, 22.46, 5.69, -1.31, 1.69, 1.60, 1.60, -0.40, 0.41, -1.59, -0.59, 2.60, 1.60, 0.60, -0.60, -2.60, 1.40, 3.40, 0.40, -2.51, 2.49, -2.51, 0.49, 7.49, 1.00, 5.00, 14.00, 6.00, 9.00, -1.56, -2.56, -2.56, -2.56, 1.44, -0.31, -2.31, 5.69, -1.25, -4.25, -3.25, -4.25, -3.25, -2.46, -2.46, -2.46, -1.46, -2.46, -3.22, -2.22, -3.22, -3.22, -3.22, -2.03, -2.03, -2.03, -2.03, -2.03, -2.03, -2.03, -1.03, -2.03, -2.03, -2.22, -2.22, -2.22, -2.40, -2.40, -2.40, -2.06, 0.94, 0.94, -3.63, -3.63, -2.63, -1.68, -1.68, -0.68, -4.03, -2.03, -3.03, -4.03, -4.03, -2.24, -2.24, -2.24, -2.24, -0.24, 1.74, -1.26, -2.26, -1.26, -2.26, -2.24, -1.24, -2.24, -0.50, 1.50, -1.50, -1.57, -1.57, -1.24, -2.24, -2.24, -2.24, -2.24, -2.24, -2.57, -1.57, -1.57, 5.70, 13.70, 2.70, -1.61, -1.61, -1.61, -1.43, 1.57, -0.43, -1.48, -3.48, -2.48, -1.43, -0.43, 1.57, -3.85, -4.85, -0.44, 1.56, 0.63, -1.37, 0.63, -0.37, 0.63, -0.33, -1.33, 1.67, 0.67, 7.67, -1.30, -1.30, -1.30, -0.30, -0.30, 8.20, -1.80, -1.80, 1.20, 1.20, -2.23, -2.23, -2.23, -1.75, -1.75, -1.75, -2.36, -2.36, -2.36, -2.27, -2.27, -2.27, -2.27, -1.27, -2.27, -2.27, -2.27, -2.27, -1.27, -3.60, -3.60, -1.60, -2.60, -1.60, -2.27, -2.27, -2.27, -2.27, -2.27, -1.68, -1.68, -0.68, -2.31, -1.31, -0.31, -0.82, -1.82, -1.82, -1.95, -1.95, -0.95, 1.39, -1.61, -0.61, 0.76, -2.24, -1.24, 0.18, -1.82, -1.82, 1.97, 0.97, 2.97, 1.24, -1.76, -1.76, -0.27, -0.27, 1.73, -1.63, -1.63, -1.63, -2.40, -2.40, -2.40, -2.42, -2.42, -2.42, -2.03, -2.03, -1.03, -0.58, -1.58, 2.90, 8.90, -1.10, -0.10, -2.10, 2.42, -1.58, -1.58, -1.49, -0.49, -2.49, -2.49, -2.49, -2.86, -2.86, -2.86, -2.26, -2.26, -2.26, -2.26, -2.26, 2.74, -2.55, -2.55, -2.55, -3.22, -3.22, -3.22, -2.68, -2.68, -2.68, -1.80, -1.80, -1.80, -1.80, -0.80, -1.82, -1.82, -1.82, -1.82, -1.82, -1.82, -1.82, -1.82, -1.82, -1.82, -1.56, -1.56, -1.56, -3.66, -3.66, -3.66, -2.23, -2.23, -2.23, -1.97, -2.23, -2.23, -2.23, -1.75, -1.75, -1.75, -2.23, -1.23, -2.23, -1.75, -3.02, -3.02, -3.02, -3.02, -3.02, -2.30, -2.30, -2.30, -2.30, -2.30, -2.30, -2.30, -2.30, -2.30, -2.30, -1.90, -1.90, -0.90, -0.90, -1.90, -4.30, -4.30, -4.30, -2.86, 0.14, -0.86, -5.43, -5.43, -5.43, -1.65, -1.65, -1.65, 0.35, 5.35, -2.01, -2.01, -2.01, -1.01, -1.01, -1.26, -1.26, 1.74, 1.74, 0.74, -0.80, -1.80, 1.20, -0.80, 0.20, -3.69, -0.69, 3.31, -1.25, -2.25, -0.25, 0.49, 1.49, 0.49, -2.53, -0.53, 0.47, 1.47, 2.47, 4.47, 2.62, 1.62, 1.62, 1.62, 2.62, -2.38, -2.38, -2.38, -2.38, -1.38, 5.82, 1.82, 0.82, -1.59, 1.41, 0.41, -1.78, -0.78, -1.78, -0.30, 5.70, -0.30, -2.43, -3.43, -1.43, 0.48, -0.52, 1.48, -2.42, -2.42, 0.58, -2.88, -2.88, -1.88, 2.45, 1.45, 4.45, -2.56, -2.56, 4.44, -2.60, -2.60, -2.60, -1.82, -1.82, -1.82, -2.86, -0.86, 9.14, 8.35, -1.65, 1.35, -2.93, 4.07, 0.07, -1.42, -1.42, 0.58, -2.25, -2.25, -0.25, -2.25, -2.25, -3.39, -1.39, 0.61, 8.61, 1.61, -1.68, -1.68, -1.68, -1.68, -2.25, -2.25, -1.25, -2.25, -0.25, -1.76, -1.76, -0.76, -0.76, -1.76, -2.25, -2.25, -2.25, 3.75, 0.75, 4.55, 5.55, 7.55, 15.73, 10.73, 8.73, 2.86, 0.86, 1.86, -2.46, 1.54, 0.54, -1.24, -2.24, -2.24, -0.19, 1.81, -1.19, 2.76, 3.76, -2.24, -2.59, -0.59, -3.59, -1.87, 2.13, -1.87, -2.82, -1.82, -2.82, -1.99, -1.99, 8.01, 0.67, -1.33, -2.33, 0.67, -2.33, -2.31, -2.31, -1.31, -2.31, -2.31, -1.05, -2.05, -2.05, -2.05, -1.05, 0.23, -1.77, -1.77, -2.23, -2.23, -2.23, -2.62, -0.62, -2.62, -3.73, -3.73, -3.34, -3.34, -0.04, 1.44, 0.44, 0.44, -0.03, -1.03, -1.03, -0.04, -1.04, -0.04, -1.61, -1.61, -1.61, -2.30, -2.30, -2.30, 5.20, 0.20, -1.80, -2.95, 6.05, -2.95, -2.95, -1.95, -1.95, -2.54, -2.54, 3.46, 7.74, -3.26, 4.74, 6.12, 8.12, 6.12, 5.18, 1.18, 7.18, -1.67, -1.67, -0.67, 0.23, 3.23, 7.23, 1.46, 0.46, -1.54, -2.54, -4.54, 2.47, -1.53, -2.53, -0.53, -0.53, -1.62, -3.62, 1.38, -2.62, -1.62, 0.42, 0.42, -1.58, -1.58, -1.58, -2.31, 6.97, -2.98, -0.98, -4.05, -6.05, -5.05, -1.83, -1.83, -0.83, -1.83, -1.83, -1.93, -1.93, -1.93, -1.93, -0.93, -1.85, 0.15, 0.15, -2.23, 0.77, 0.77, -2.00, -2.00, 2.00, -2.25, -1.25, -1.25, -3.39, -2.39, 1.61, -2.28, -0.28, -2.28, -1.51, -2.51, -2.51, -2.51, -2.51, -2.23, -2.23, -2.23, -2.23, -2.23, -0.85, -2.85, -2.85, -2.85, -2.85, -2.85, -1.85, -2.85, -2.85, -1.85, -2.02, -1.02, 2.98, -2.01, 0.99, 0.99, -2.28, -2.28, -1.59, -1.59, -2.96, -1.96, -2.64, -2.64, -5.32, -5.32, -3.57, -1.57, -3.57, -1.78, -1.78, -1.78, -2.53, -2.53, -2.53, -7.20, -4.20, -4.20, -9.20, -9.20, -2.42, -1.42, -3.42, -2.42, -3.42, -2.39, -2.39, -2.39, -2.39, -3.39, -4.16, -4.16, 21.84, -1.54, -2.54, -2.54, -2.28, -1.28, 0.72, -2.07, -1.07, -2.07, -1.84, -0.84, -1.84, -2.44, -2.44, -2.44, -2.44, -2.44, -2.44, -2.10, -2.10, -1.10, 3.90, 0.90, -2.23, -2.23, -2.23, -2.23, -2.23, -0.97, 0.03, -1.97, 1.03, 0.03, -2.23, -2.23, -0.23, -1.23, -2.23, -1.83, -1.83, -1.83, -1.98, -1.98, -1.98, -2.37, 1.63, -2.37, 2.41, 0.41, 0.41, -1.13, -3.13, -1.13, -1.78, -1.78, -0.78, -2.52, -1.52, -1.52, -3.04, -3.04, -3.04, -2.30, -1.30, -3.30, -4.46, -4.46, -2.46, -3.82, -3.82, -3.82, -4.30, -4.30, -4.30, -2.69, -2.69, -2.69, -1.80, -0.80, -1.80, -0.08, -2.08, -1.08, -0.82, 1.18, 3.18, -2.05, -1.05, -1.05, -0.42, -2.42, -1.42, -2.33, -2.33, -0.33, -2.88, -3.13, -3.13, -3.13, -3.13, -2.13, -0.84, -1.84, -1.84, -1.84, -1.84, -1.97, -1.97, -1.97, -1.97, -1.97, -0.84, -1.84, -0.84, -1.84, -1.84, -0.84, -1.84, -1.84, -1.84, -1.84, -1.84, -1.84, -1.84, -1.84, -1.84, 0.16, -1.84, -1.84, -1.84, -1.84, -0.84, -1.84, -0.84, -1.84, -1.84, -1.84, -0.84, -0.84, -1.84, -1.84, 5.21, 2.21, 0.21, -0.11, 2.89, 3.89, -7.20, -4.20, -3.20, -2.96, -2.96, -1.96, -1.96, -1.96, -1.82, -2.82, -1.82, -5.00, -2.00, 1.00, -2.88, -2.88, -2.88, -2.26, -2.26, -2.26, -2.88, -2.88, -0.88, -3.13, -2.13, -2.13, -1.52, -0.52, 1.48, -4.90, -3.90, -3.90, -2.15, -2.15, -1.15, -2.52, -3.52, -3.52, -0.20, 0.80, 4.80, -3.52, -3.52, -3.52, -2.26, -2.26, -2.26, -1.14, -1.14, -1.14, 1.64, -2.36, 7.64, -2.26, -2.26, -2.26, -2.03, -2.03, -2.03, -1.80, -1.80, -1.80, -3.19, -3.19, -3.19, -2.30, -2.30, -2.30, 1.25, 2.25, 0.25, -1.98, -1.98, -1.98, 1.83, -1.17, -2.17, -1.56, -1.56, -1.56, 9.79, -0.21, -2.21, -2.23, -1.23, -1.23, -2.01, -1.01, -2.01, -1.90, -1.90, -0.90, -1.92, -1.92, -1.92, -5.13, -5.13, -6.13, -2.95, -2.95, -2.95, 2.75, -2.25, 1.75, 7.87, 5.87, 15.87, 26.87, 23.87, 5.22, 6.22, 3.22, -0.78, -2.78, -2.13, -2.13, -1.13, -2.13, 4.87, 2.45, -2.55, 4.45, 5.45, 3.45, -2.01, -3.01, -1.54, 0.46, -1.54, 3.46, -1.54, -2.12, -2.12, -3.12, -0.12, -2.12, -3.60, 2.40, -3.60, -3.60, -0.60, -1.76, -1.76, -1.76, -2.82, -2.82, -2.82, -0.82, -2.82, -2.82, -2.88, -2.88, -2.88, -3.11, 0.89, -1.11, -0.66, -1.66, -3.66, -1.56, -0.77, -1.77, 2.23, -1.77, -2.77, -2.26, -2.26, -2.26, -2.78, -0.78, -1.78, -1.26, -2.26, -2.26, -1.97, -1.97, -1.97, -2.26, -2.26, -2.26, -2.26, -1.26, 1.74, 3.02, 1.02, 1.02, -2.08, -1.08, -3.08, 0.22, -2.78, -1.78, -2.44, -1.44, -2.44, -2.23, -2.26, -2.23, -2.26, -1.33, 3.67, -0.33, 0.67, -0.33, -1.33, -1.33, -1.33, 0.67, -0.33, -2.33, -1.33, 2.67, 0.67, -1.33, 0.20, 0.20, 3.20, 5.20, 0.20, 1.76, 0.76, -2.24, -0.24, -2.24, -0.76, -1.76, -0.76, -2.25, -2.25, -1.25, -1.76, -1.76, 2.25, -0.75, 1.25, -0.75, 1.25, -0.21, -1.21, -1.21, 1.79, -1.21, -0.76, -2.76, -3.76, 1.31, -2.69, -0.69, -2.69, -1.69, -1.69, -2.43, -2.43, -2.43, -3.68, -3.68, -3.68, -3.84, -3.84, -2.73, -2.73, -0.73, -1.80, -1.80, -1.80, -2.34, -1.34, 1.66, -3.01, -3.01, 1.99, -2.28, -2.28, -0.28, -0.98, -1.98, -1.98, -2.25, -2.25, -1.25, -1.25, 0.75, -2.23, -1.23, -2.23, 0.77, 1.77, 4.80, 0.80, -3.20, -3.60, -3.60, -3.60, 3.07, 9.07, 1.07, -0.97, -1.97, -1.97, -1.23, -1.23, -2.23, 4.53, -2.47, 1.53, -0.85, -2.85, 0.15, -1.31, -1.31, -1.31, -1.71, -1.71, -1.71, 5.06, 0.06, 2.06, 0.55, 7.55, 13.55, -3.88, -2.88, -2.88, 1.69, -0.31, 2.69, -2.07, -4.07, -2.07, -2.30, -2.30, -2.30, -0.80, 2.20, 6.20, -0.03, 1.97, 2.97, -2.30, -1.30, 0.70, -2.30, -2.30, -2.30, -0.58, -1.58, -1.58, -2.49, 0.51, -2.49, -1.26, -1.26, -2.26, 0.40, -2.60, -0.60, -2.60, 0.40, 0.67, -0.33, -1.33, 0.67, -1.33, 0.67, -1.33, -2.33, -2.33, -0.33, 0.18, 0.18, -0.82, -1.82, -1.82, -2.88, -2.88, -2.88, -3.40, -3.40, -3.40, -2.88, -2.88, -2.88, 3.79, -2.21, -2.21, -0.23, -2.23, -2.23, -1.23, -2.23, -2.23, 8.11, 3.11, -1.89, 0.85, -1.15, -2.15, -1.53, -2.53, -1.53, -12.96, -9.96, -2.96, -2.32, 6.68, 8.68, -2.46, -2.46, -0.46, -3.41, -4.41, -0.41, -1.24, 0.76, -0.24, 7.74, -2.26, 0.74, -5.22, -5.22, -2.22, 4.78, 16.78, -0.49, 2.51, 3.51, -1.58, -1.58, -1.58, -1.58, 2.01, 1.01, 2.01, -1.58, -1.58, -1.58, 2.42, -0.58, -1.58, 1.36, -1.64, -1.64, -0.36, -0.36, -0.36, -1.34, -2.34, -2.34, -2.36, -0.36, -2.36, -2.01, 1.99, -1.01, 1.97, -3.03, 0.97, -1.05, -0.05, -0.05, -2.33, -2.33, -1.33, -2.24, -2.24, -2.24, -0.02, -1.02, -1.02, -1.38, -4.38, -0.38, -1.33, -0.33, 0.67, -5.49, -4.49, -4.49, 3.67, -1.33, -0.33, 1.58, -1.42, -1.42, 0.58, -2.42, 5.06, -3.94, -1.94, 0.06, 3.06, 6.27, -1.73, -0.73, -2.73, 0.27, -2.33, -1.33, -1.33, -0.05, -0.05, -1.05, -2.05, -1.05, -0.05, -2.31, -3.31, -4.31, -2.55, -1.55, -2.55, -1.01, -0.01, -0.01, -2.26, -2.26, -2.26, -0.22, 0.78, -3.22, -1.80, -1.80, -0.80, -1.61, 5.39, -0.61, -5.37, -5.37, -4.37, -2.33, -2.33, -2.33, -2.31, -2.31, -2.31, -0.57, -1.57, 0.43, -1.80, 0.20, 2.20, -1.80, -1.80, -1.80, -3.32, -1.32, -3.32, -0.95, -0.95, 0.05, -0.82, -1.82, 0.18, -1.99, -1.99, -1.99, 4.57, -3.43, -4.43, -1.43, -3.43, -2.43, 1.31, -0.69, -1.69, -3.43, 3.57, -0.43, -3.24, -3.24, -3.24, -3.56, -3.56, -1.56, -2.12, -2.12, -2.12, -1.85, 0.15, -2.85, -1.59, -1.59, -1.59, -2.00, 0.00, 0.00, 0.00, -3.00, 0.00, 0.00, 2.00, -1.00, 1.00, -1.00, -3.00, 1.00, -2.00, -2.00, 10.33, 8.33, 6.33, 1.33, -0.67, 2.66, 14.66, 7.66, 3.66, 0.66, -2.86, 4.14, 2.14, -0.86, -1.86, -1.46, -1.46, -1.46, -2.25, -2.25, -3.25, -2.25, -3.25, -0.88, -2.88, -2.88, -2.88, 0.12, -1.82, -1.82, -1.82, -0.77, -1.77, -0.77, -0.82, 2.18, -0.82, -2.32, -2.32, -2.32, -0.88, -0.88, -1.88, -1.26, -2.26, -2.26, -1.88, -2.88, -1.88, -0.88, -0.88, -0.88, -2.02, -1.02, 2.98, 0.67, 7.67, 1.67, 7.67, -0.33, -0.33, -2.05, 0.95, 1.95, -1.28, 1.72, -2.28, -3.64, -3.64, -2.64, -1.30, -0.30, -2.30, -0.57, 2.43, -1.57, -2.02, -3.02, -3.02, -2.60, 3.40, 3.40, -2.80, -0.80, 3.20, -2.80, 4.20, 1.20, -2.18, -1.18, 1.82, -2.77, 3.23, 5.23, -1.60, -0.60, -0.60, 3.18, 3.18, -2.82, -2.88, -1.88, 0.12, -2.20, -0.54, -1.54, -1.26, -1.26, -2.26, -3.61, -1.61, -2.61, 6.31, 3.31, -2.69, -2.69, 2.18, -1.82, -1.82, -2.27, -2.27, -2.27, 1.12, -2.88, -2.88, 0.38, 2.38, 5.38, 8.65, -2.35, -1.35, -2.35, -1.39, -2.39, -2.39, 2.72, 9.72, 0.72, 7.27, 8.27, 1.27, 0.27, 25.00, 8.00, 2.00, -2.00, -2.42, -1.42, -2.42, -2.42, 2.63, -2.37, -1.37, -2.37, 2.74, 0.74, 1.74, -1.89, -1.89, -1.89, 0.11, 12.74, -0.26, -2.26, 4.33, 7.33, 5.33, -0.28, -2.28, -1.28, -2.54, -2.54, -2.54, -2.88, -1.88, -1.88, -3.00, 3.00, -3.00, -2.28, -2.28, -2.28, 3.75, -2.25, 0.75, -2.63, -1.63, -2.63, -2.55, 5.45, 2.45, -3.00, -3.00, -3.00, -2.27, -0.27, -2.27, 1.69, -1.31, -0.33, 2.67, 1.67, -2.50, -2.50, -2.50, 5.61, 1.61, -0.39, 7.65, 0.65, 0.65, -2.01, -2.01, -1.86, -0.86, -0.86, -1.82, -1.82, 0.18, 1.83, -1.17, 1.83, 5.12, 4.12, 5.12, 8.65, 6.65, -0.35, -3.52, -3.52, -1.64, -2.64, -2.64, -2.96, -2.96, -2.96, 0.81, -0.19, -0.19, -2.26, 0.00, -2.00, -2.59, -2.59, -2.59, -2.00, -3.00, 11.63, 5.63, -0.37, -2.37, -2.37, -2.37, -2.37, 3.64, -1.36, 13.29, 8.29, -1.42, -2.42, -2.42, -2.42, 8.65, 7.65, 3.65, 9.18, 4.18, -0.37, 4.65, -0.62, -2.35, -2.35, -2.40, -2.40, 0.11, -2.37, 3.58, -2.37, -1.37, -1.89, 2.00, 3.63, 2.00, 3.00, 15.00, 2.00, 5.00, 7.27, 1.33, 4.11, -2.37, 7.29, 7.65, -2.42, -2.25, -2.25, -2.25, -2.01, -0.01, -0.01, -2.38, -2.38, -1.38, -0.76, -0.76, -0.76, -0.39, 0.61, -2.39, 1.89, 2.89, -1.11, -2.47, -3.47, -1.47, -0.47, -2.47, -2.46, -2.46, -0.46, 2.54, -1.46, 12.59, -1.41, 3.59, -1.41, -2.41, -2.07, 5.93, -2.07, -3.07, -3.07, -1.56, 1.44, -0.56, -1.56, -1.56, -1.30, -2.30, -2.30, -2.30, -2.30, 0.18, 0.18, -1.82, 0.18, 0.18, -1.56, -2.56, 0.44, -0.56, -1.56, -2.33, -2.33, -2.33, -2.33, -2.33, -2.33, -2.33, -2.33, -2.33, -2.33, -2.33, -2.33, -1.33, -1.33, 0.15, -2.96, -0.50, -1.50, -1.50, 6.50, 0.50, -0.34, -2.34, -0.34, -2.34, 0.66, 3.67, 9.67, 3.67, 13.67, 6.67, -1.98, -1.98, -2.98, -2.98, -2.98, -1.11, -2.11, -2.11, -7.48, -5.48, -5.48, 1.18, 0.18, -2.82, -4.02, -3.02, -3.02, -1.29, -3.29, -3.29, -3.29, -3.29, -2.92, -2.92, -3.48, -2.48, -1.48, -3.75, -1.75, -1.75, -2.81, -0.81, 0.19, 0.19, -1.81, 0.74, 10.74, 9.74, 3.74, -2.26, -1.56, -1.56, -0.56, -2.49, -1.49, -1.49, -0.55, -0.55, 2.45, 0.45, 2.45, -1.88, -2.88, -2.88, -2.88, -1.88, -2.26, -2.26, -1.26, -2.26, -2.26, -2.88, -2.88, -1.88, 1.57, 1.57, -3.43, -2.01, -1.01, -2.01, -0.54, 0.46, -2.54, 0.40, -2.60, -0.60, -3.83, -1.83, -2.83, 1.41, 5.41, -1.59, -0.78, -1.78, 0.22, 1.22, 1.22, -1.75, -1.75, -0.75, 1.90, 13.90, 0.90, -1.55, -1.55, 1.45, -1.33, -0.33, 0.67, -7.04, -7.04, -7.04, -7.04, -7.04, -2.90, -2.90, -2.90, -2.90, -2.90, -1.77, -0.77, -1.77, -2.52, -1.52, -2.52, -2.26, -2.26, -2.26, -1.77, -0.77, -1.77, -2.23, -1.23, -2.23, -1.80, 4.20, -0.80, -0.28, 1.72, 1.72, -2.33, -1.33, -0.33, -2.24, -2.24, -1.24, -0.97, -1.97, -1.97, -1.23, -2.23, -1.23, -1.99, -1.99, 1.01, -2.12, -1.12, -2.12, -1.59, -1.59, -1.59, -1.41, 1.59, 0.59, -1.87, -1.87, -1.87, -2.24, 0.76, -2.24, -2.33, -2.33, -2.33, -2.28, -2.28, -2.28, -2.10, -0.10, -2.10, -2.38, -2.38, -2.38, -3.13, -3.13, -3.13, -2.38, -2.38, -2.38, -2.36, -0.36, -2.36, -2.45, -2.45, -2.45, -1.65, -1.65, -1.65, -4.31, -0.31, -5.31, -1.45, -3.45, -5.45, -2.45, -2.45, -2.45, -2.26, -2.26, -2.26, -2.26, -2.26, -0.75, 1.25, -1.75, 0.25, -1.75, -1.75, -1.75, -1.75, -1.75, -1.75, -2.26, -2.26, -1.26, -2.26, -2.26, -2.26, -2.26, -2.26, -2.26, -2.26, -1.77, -1.77, -1.77, -1.77, -1.77, -6.61, -6.61, -5.61, -1.41, -1.41, -1.41, -1.59, -0.59, -1.59, 3.02, -1.98, -1.98, -1.80, -0.80, -1.80, 35.70, 7.70, 4.70, 4.70, -1.30, -0.07, -3.07, -3.07, -0.07, 2.93, -0.50, -1.50, -2.50, -2.50, -3.50, -1.12, -3.12, -3.12, -3.12, -2.12, -3.53, -3.53, -2.53, -3.53, -1.53, -3.42, 0.58, -3.42, -3.42, -2.42, -5.32, -0.32, -4.32, -4.32, -4.32, -1.12, -1.12, 1.88, -1.12, 0.88, -0.17, -1.17, -2.17, -2.39, -0.39, 0.61, -1.39, -2.39, -0.39, -0.43, -2.43, -1.43, 7.20, 3.20, 2.20, -2.05, -2.05, -2.05, -2.10, -1.10, -0.10, 1.97, -2.03, -1.03, -2.82, -2.82, -1.82, -1.57, -1.57, -1.57, -2.38, -2.38, -2.38, -1.80, -1.80, -1.80, 0.24, -1.95, -0.25, 0.08, -1.52, -1.52, -1.52, -1.58, -1.58, -1.58, -2.21, -2.21, -2.21, -0.97, -1.97, -1.97, -2.26, -2.26, -2.26, -2.26, -2.26, -2.26, -1.58, -1.58, -1.58, -1.58, -1.58, -1.58, 1.37, 3.37, -1.63, -2.33, -2.33, 0.67, -1.33, -2.33, -2.03, -2.03, -1.03, -2.03, -2.03, -1.63, -1.63, -1.63, -1.63, -1.63, -0.18, -2.18, -3.18, -2.00, -3.00, -1.00, -2.01, -1.01, -1.01, -0.23, -1.23, -1.23, 0.77, -0.23, -0.23, -1.56, 0.44, -1.56, 0.79, 13.79, 9.79, 2.97, -1.03, -1.03, -2.88, -2.88, -2.88, -3.24, -2.24, -0.24, 7.06, 7.06, 5.06, 3.06, -1.94, -1.50, -2.29, -2.29, -2.29, -2.29, 0.71, -2.29, -2.15, -2.15, -2.14, 25.86, -3.14, -2.72, -2.72, -2.72, -3.03, 2.97, -2.15, -2.15, -2.15, -0.83, -2.83, 5.17, -1.54, 3.46, -0.54, 8.78, 4.78, 4.78, 5.12, 1.12, -0.88, 4.39, -0.61, -0.61, 0.12, 3.12, -0.88, -2.25, 3.75, -2.25, -2.25, -2.25, -2.25, -0.25, -0.25, 1.75, 0.24, -1.76, -1.76, -1.57, -1.57, -1.57, -2.25, 0.75, -0.25, -0.41, -1.41, -0.41, -5.26, -4.26, 0.74, -5.26, -4.26, -1.67, -1.67, -1.67, -1.67, -1.67, -1.87, -1.87, -1.87, -1.87, -1.87, -1.36, -0.36, -1.36, -0.36, -0.36, -2.38, -1.38, -2.38, -2.38, -2.38, -0.33, -2.33, -2.33, 0.67, 0.67, -2.33, -2.36, 0.64, 0.64, -1.15, -4.15, -4.15, -1.51, -1.51, -1.51, -1.70, -0.70, -0.70, -0.80, -1.80, -1.80, -1.76, -1.76, -1.76, -2.28, -2.28, -2.28, -4.67, -3.67, -4.67, -1.76, -1.76, -1.76, -2.28, -2.28, -2.28, -2.26, -2.26, -1.26, -1.21, -2.21, -1.21, -2.52, -1.52, -2.52, -3.56, -3.56, -0.56, -3.39, -2.39, 5.61, 1.70, 3.70, -0.30, -0.37, -1.37, -3.37, -1.06, -3.06, -1.06, -1.80, 2.20, 0.20, 3.60, 1.60, 0.60, -2.51, -2.51, -1.51, -1.51, 0.49, -2.85, -2.85, -2.85, 0.15, -1.85, -0.51, -2.85, -2.85, -2.85, -2.85, -0.85, -2.23, -2.23, 0.77, -1.23, -2.23, -3.18, 0.82, 6.82, 6.82, 5.82, 3.43, -1.57, -2.57, -2.57, 2.43, -2.85, -2.85, -2.85, -1.85, 0.15, 1.82, 2.82, -0.18, -1.88, 1.12, -2.88, -1.57, -3.57, -2.57, 0.39, -0.61, 0.39, 3.25, 0.25, 0.25, -2.23, -1.23, -2.23, -1.97, -1.97, -1.97, 10.93, 1.93, 1.93, 6.93, 3.93, -0.88, -2.88, 1.12, -2.88, -1.88, 1.12, -0.88, 1.12, -1.88, -0.88, 4.99, -1.01, -0.01, 1.99, 7.99, 0.59, -0.41, -0.41, -1.41, 1.59, 2.20, -1.80, -1.80, -1.80, -0.80, 0.20, -1.80, -1.80, -0.80, -1.80, -1.80, -1.80, -1.80, 0.20, -0.80, -1.80, -0.80, -1.80, -1.80, -1.80, -1.80, -1.80, -1.80, -1.80, -1.80, -5.39, -2.39, 19.61, -4.39, -1.62, 0.73, 0.73, -1.27, -1.95, 0.05, 1.05, -0.71, -1.71, -2.71, -2.43, -0.43, 1.57, 6.38, -5.62, -3.62, -5.62, 5.38, 2.31, -0.69, 0.31, -2.69, 0.31, 0.09, -0.91, -0.91, -2.91, -0.91, -2.91, -2.91, -2.91, -2.91, 0.09, 0.29, -0.71, -1.71, -3.71, -1.71, -0.14, -3.14, 5.86, -1.14, 3.86, -2.25, 7.75, -1.25, -2.25, 1.75, 1.75, -1.39, 4.61, 3.61, -1.82, -0.82, -1.82, -1.75, -1.75, -1.75, -1.58, -1.58, -1.58, -1.56, -1.56, -1.56, -1.43, -1.43, -1.43, -3.00, -1.00, 0.00, -3.00, -3.00, -3.00, -2.29, -2.29, -1.29, -2.45, -2.45, -2.45, -2.10, -2.10, -2.10, -8.43, -7.43, -0.43, -1.78, -2.78, -2.78, -2.78, -2.78, -0.76, 1.24, -0.76, -0.76, 0.24, 7.32, 3.32, 0.32, -2.41, -3.41, -3.41, -1.41, -3.41, -3.41, -3.61, -3.61, -0.61, -2.17, -2.17, -2.17, -1.15, -1.15, -2.15, -1.17, -2.17, -2.17, -1.92, -1.92, -0.92, 1.51, -0.49, 0.51, 0.01, 1.01, 4.01, -2.26, 0.74, -0.26, -2.23, -2.23, -2.23, -2.23, -1.23, -3.97, -3.97, -3.97, -3.97, -3.97, -2.23, -2.23, -2.23, -2.23, -2.23, -3.97, -3.97, -3.97, -3.97, -3.97, -2.03, -3.03, 4.97, -3.40, 1.60, -2.40, -2.43, -2.43, -3.43, -0.43, -2.43, -3.43, -0.97, -1.97, 1.03, -2.26, -2.26, 0.74, -2.06, -2.06, -0.06, -2.23, 4.77, -0.23, 2.62, 6.42, 1.44, -1.63, -1.77, -1.62, -1.66, -1.66, -1.66, -1.66, -1.66, -1.37, -1.37, -0.37, 2.63, -1.37, -0.37, -2.37, -2.37, -0.37, -2.37, -1.88, -2.88, -2.88, 9.43, 6.43, -2.57, -2.30, -0.30, -0.30, -0.30, -0.30, -2.30, -1.79, 2.21, -2.79, 1.21, -1.79, -0.26, 0.74, -1.26, 2.74, -1.26, -0.77, 1.23, 11.23, 0.23, -0.77, -1.28, -1.28, -4.28, -1.65, -1.65, -2.65, -3.94, -4.94, -3.94, -1.25, -2.25, -0.25, 0.69, -1.31, 0.69, 0.71, -2.29, 0.71, 4.69, 0.69, 0.69, -7.65, -11.65, -2.83, -2.83, -2.83, 0.76, -1.24, 0.76, 6.77, 10.77, 1.77, -2.69, -1.69, 1.31, -2.69, -2.04, -2.04, -0.04, -0.04, -1.04, 6.00, 16.00, 14.00, -1.04, 1.96, -1.04, 0.96, -1.04, -2.69, 0.31, 0.31, 1.31, 4.25, 0.25, -3.75, -2.15, -2.15, -2.15, -2.15, -2.15, -2.15, 1.32, -1.68, -1.68, -2.09, -2.09, -0.09, -1.15, -1.15, -2.15, 0.39, -1.61, 0.39, -0.61, 0.39, -1.37, 4.63, -1.37, -5.14, -3.14, -3.14, -2.29, 1.71, 1.71, -2.44, -2.44, 0.30, 4.30, -1.70, -1.49, -2.49, -2.49, -0.70, -2.70, -2.70, -0.59, -4.59, -3.59, -0.79, -1.79, -1.79, -2.85, -1.85, -2.85, -1.82, -2.82, -2.82, 0.15, -2.85, -1.85, -2.39, -2.39, 0.61, -1.85, -0.85, -1.85, -2.85, -2.85, -1.85, -2.23, -1.23, -2.23, -1.88, 1.12, -2.88, -0.88, -2.88, -1.80, 7.20, -1.80, -0.80, -0.80, -1.24, -2.24, -2.24, -1.24, -2.24, -2.24, 3.96, -2.04, -3.04, -2.41, -2.41, -2.41, -1.61, -0.61, -1.67, -1.67, -0.67, -1.67, -1.67, -2.30, -2.30, -2.30, -2.30, -2.30, -2.30, -2.30, -1.30, -2.30, -2.30, -2.30, -2.30, -2.30, -2.30, -2.30, -2.30, -2.30, -2.30, -2.30, -2.30, -2.53, -2.53, -1.53, -2.53, -2.53, -2.43, -0.43, -2.43, -2.43, -0.43, -2.47, -1.47, -2.47, -3.38, -3.38, -3.38, -1.72, -1.72, -1.72, -2.47, -2.47, -2.47, -2.18, -1.18, -2.18, -5.32, -4.32, -5.32, -1.32, -3.32, -2.28, -1.28, -2.28, -1.28, -1.28, -2.64, -2.64, -2.64, -1.64, -2.64, -1.28, -0.28, 1.72, -1.28, -0.28, -2.28, -2.28, -2.28, -2.28, -0.28, -1.30, -1.30, -0.30, 2.70, -0.30, -0.57, -2.57, -2.57, -1.57, -1.57, 0.97, -0.03, -2.03, 0.97, -0.03, -2.32, -1.32, -2.32, 0.79, -2.21, -2.21, 17.71, -2.29, -0.29, -2.66, -3.66, -3.66, 1.15, 5.15, -1.85, -0.85, 2.15, -1.88, -2.88, -2.88, 0.12, -0.88, 0.49, -1.51, 0.49, -2.51, -1.51, 3.83, -2.17, 1.83, 0.83, -0.17, -1.88, -1.88, -2.88, -2.88, -0.88, 3.75, 7.75, 16.75, 13.75, 0.95, 4.95, 0.95, 12.95, 11.95, -3.93, -2.93, -3.93, -0.93, 1.07, 2.07, 2.40, -0.60, 0.40, 1.95, -1.05, -1.05, 2.49, -2.51, -0.51, 0.39, -0.61, -1.61, 0.57, -3.43, -1.43, 3.11, 3.11, 2.11, -5.91, -5.91, -2.91, -3.63, 4.37, 3.37, -0.56, -1.56, -2.56, -2.30, -2.30, -2.30, 2.20, 0.20, 2.20, -3.07, -0.07, -1.07, -2.40, 4.60, 1.60, -1.85, -2.85, -1.85, -0.85, -2.85, -4.50, 9.50, -3.50, -4.50, -3.50, -4.72, -3.72, -4.72, -4.72, -4.72, 0.93, 16.93, 7.93, 0.39, -1.61, -1.61, -0.31, 1.69, -1.31, -6.34, -3.34, -6.34, -2.07, -3.07, -2.07, -0.34, -2.34, -3.34, -0.55, -0.55, 0.45, 0.61, 5.61, -0.39, -2.43, -1.43, -0.43, -1.69, -1.69, -1.69, -1.69, 1.31, -0.69, 1.79, -1.21, 3.79, -1.58, -1.58, -0.58, -2.33, -2.33, -2.33, -2.33, -2.33, -2.30, -2.30, -2.30, -1.30, -0.30, -0.33, -0.33, -2.33, 2.67, 0.67, 2.68, 1.68, 0.68, -0.14, -2.14, -2.14, -1.99, -1.99, 2.01, -0.32, 1.68, -2.32, -2.23, -2.23, -2.23, -5.91, -3.91, -7.91, -0.52, -2.52, -2.52, -1.52, -0.52, -0.52, -0.26, -2.26, -1.26, -1.26, -0.26, -0.26, -1.26, -2.26, -2.26, -1.61, -1.61, -1.61, -1.76, -1.76, -1.76, -2.25, -2.25, -2.25, -2.25, -2.25, -2.25, -2.51, -2.51, -2.51, -2.25, -2.25, -2.25, -2.25, -2.25, -2.25, -0.38, -2.38, -2.38, -2.40, -2.40, -2.40, -2.27, -2.27, -2.27, -1.88, 12.12, 7.12, -1.88, 0.12, 10.77, 15.77, 13.77, -0.51, -0.51, 4.49, -2.23, -2.23, -0.23, -2.23, -1.23, -1.80, 1.20, 0.20, -1.80, 1.20, -3.94, -1.94, -4.00, -5.00, -5.00, -5.00, -4.00, 1.49, -0.51, 1.49, -2.30, -2.30, -2.30, -2.46, -2.46, -2.46, -2.17, -2.17, -2.17, -1.74, -0.74, 1.26, -1.39, -0.39, -1.39, -3.91, 3.09, -0.91, -2.28, 1.72, 2.72, -2.34, -2.34, -1.34, -0.99, 0.01, -1.99, 3.01, -1.99, -1.99, 0.51, 14.51, 2.51, 0.14, 0.14, 1.14, 0.45, -2.55, 4.45, 4.12, 9.12, 4.12, -1.82, -1.82, -1.82, -1.34, -1.34, -1.34, -1.80, -1.80, -1.80, -2.01, -2.01, -2.01, -1.43, -1.43, -1.43, 6.76, 2.76, 4.76, 21.61, 25.61, -2.25, -2.25, -2.25, -2.45, -0.45, -1.45, -5.19, -5.19, -5.19, -3.84, -2.84, -3.84, -3.73, -3.73, -0.56, 0.44, -0.56, 5.44, 0.44, 0.70, 2.70, 0.70, 4.70, 1.70, 13.70, 2.70, 5.70, 3.70, 4.70, -0.63, -1.63, -1.63, -0.63, 0.37, -2.33, -2.33, -2.33, -2.56, -1.56, -1.56, -2.30, -2.30, -2.30, 1.23, -1.77, -3.77, 2.67, -2.33, 1.67, -3.07, -2.07, -1.07, -2.44, -0.44, -1.44, -3.44, -3.44, -2.44, -2.25, -4.25, -4.25, -3.44, -2.44, -3.44, -4.79, -4.79, -5.79, -2.23, -2.23, -1.23, -2.24, -2.24, -1.24, -2.23, -2.23, -0.23, -1.21, -2.21, -2.21, 1.98, 3.98, 9.98, -2.13, -2.13, -2.13, -1.50, -1.50, -1.50, -2.14, -2.14, -2.14, -1.50, -1.50, -1.50, -2.17, -2.17, -2.17, -4.52, -2.52, -3.52, -2.36, -2.36, -1.36, -3.36, -3.36, -3.36, -3.75, -2.75, -2.75, -3.36, -3.36, -3.36, -3.36, -0.36, -3.36, -1.75, -0.75, 0.25, -2.36, -2.36, -2.36, -3.36, -2.36, -3.36, -1.63, -1.63, -2.63, -1.37, -2.37, -2.37, -0.59, -0.59, 0.41, -2.28, -2.28, -2.28, 0.75, -2.25, -2.25, 1.99, -1.01, 0.99, -0.03, 1.97, 5.97, 0.97, 2.97, -1.97, -0.97, -1.97, 0.03, -1.97, -2.23, -2.23, -2.23, -2.23, -2.23, -1.56, -1.56, -1.56, -1.56, -1.56, -1.99, -0.99, -0.99, 7.19, 7.19, 2.19, 1.19, -0.81, -2.01, -2.01, -2.01, -1.01, -2.01, -1.59, -1.59, -1.59, -0.59, -1.59, -2.53, -0.53, -1.53, -1.53, -2.53, -2.90, 1.10, 4.10, -0.36, 0.64, -1.36, -2.23, -1.23, -0.23, -2.51, -0.51, -2.51, -1.17, -2.17, -3.17, -3.64, -1.64, -3.64, -2.58, -2.58, 0.42, -3.10, -3.10, -3.10, -2.10, -2.10, -2.10, -1.45, -1.45, -2.45, -1.78, -2.78, -2.78, -1.70, -1.70, -2.46, -2.46, -2.46, -0.33, -2.33, -2.33, -2.30, -2.30, -0.30, 0.57, 1.57, 9.57, -2.30, -2.30, -1.30, -2.30, -0.30, 0.70, -2.46, -2.46, -1.46, -2.46, -2.46, -2.46, -2.30, -0.30, -2.30, 1.01, 0.01, 0.01, -2.46, -1.46, -2.46, 7.68, 0.68, 2.68, -2.49, -0.49, -2.49, -2.12, -3.12, 6.88, -2.44, -0.44, 0.56, -4.32, -4.32, -3.32, 3.68, 8.68, -3.32, -1.18, -1.18, -0.18, -2.46, -2.46, -2.46, -1.46, 1.54, -0.82, -1.82, -1.82, -0.82, 0.18, -0.31, -2.31, -1.31, 0.69, 5.69, -3.17, -2.17, -1.17, -2.14, 18.86, -2.14, 1.03, -0.97, -1.97, -0.23, 0.77, -2.23, -2.26, -0.26, -1.26, -1.53, -4.53, -0.53, -1.37, 1.63, -2.37, -2.26, -2.26, -2.26, -0.87, -1.87, -1.87, -2.26, -2.26, -2.26, 2.21, -2.79, 0.21, -1.38, -2.38, -2.38, -2.26, -2.26, -2.26, -1.82, -1.82, -0.82, 0.18, -1.82, -0.61, 1.39, 1.39, 3.39, -0.61, -1.33, -2.33, -1.33, -1.33, -1.33, -2.33, -1.33, -0.33, 0.67, -0.33, -1.57, -0.57, -1.57, -1.76, -1.76, -1.76, -2.25, -2.25, -2.25, -0.98, -1.98, -1.98, -2.23, -2.23, -2.23, -2.25, -2.25, -2.25, -2.25, -2.25, -2.25, -1.98, -1.98, -1.98, -1.24, -2.24, -1.24, -2.25, -2.25, -2.25, -1.79, -1.79, -1.79, -2.01, -2.01, -2.01, -2.28, -2.28, -2.28, 0.72, -2.28, -2.28, 2.72, -2.28, -2.28, -2.24, -3.24, -2.24, -1.28, -2.28, -1.28, -0.85, -2.85, 4.15, -0.78, -1.78, -1.78, 2.24, 1.24, 1.24, -2.01, -2.01, -1.01, -2.51, -2.51, -2.51, -2.01, -2.01, -2.01, -0.85, -2.85, -2.85, -3.70, -3.70, -3.70, -1.68, -1.68, -2.68, -3.28, -3.28, -3.28, -5.44, -1.44, -5.44, -2.33, -2.33, -2.33, -0.90, -1.90, -2.90, 2.10, 1.10, -0.24, 4.76, -1.24, 1.51, 2.51, 0.51, 0.51, -2.49, -1.15, 0.85, -1.15, -1.15, -1.15, -2.15, -2.15, 1.85, 2.85, 2.08, -1.92, 1.08, 10.15, 4.15, 0.15, -1.23, -1.23, -2.23, 3.18, 6.18, 1.18, 17.15, 4.15, 1.15, -0.64, -2.64, -2.64, -0.56, -0.56, -1.56, -2.33, -1.33, 6.67, -2.18, -2.18, -2.18, 0.28, -1.72, 0.28, -2.72, -0.72, -1.01, -1.01, -0.01, 0.24, -0.76, 4.24, -1.63, -0.63, -1.63, 0.67, -1.33, -1.33, -1.33, 0.67, -0.33, -1.03, -2.03, -2.03, 0.93, -5.07, -3.07, 3.84, -1.16, 5.84, 1.27, -2.73, 5.27, 9.03, 1.03, 0.03, 0.79, -1.21, 1.79, 14.77, 7.77, 8.77, -1.99, -0.99, -1.99, -1.80, -1.80, 1.20, -2.33, -0.33, -1.33, -2.05, -1.05, -2.05, -2.85, 0.15, -2.85, -1.55, -2.55, -0.55, 1.77, -2.23, -2.23, -2.24, 5.76, 0.76, 3.76, 6.76, 1.21, 1.21, 3.21, 8.21, 5.21, -4.36, -3.00, 3.28, -1.90, 1.10, 0.10, -2.52, 0.48, -2.52, -2.52, -2.52, -2.52, -2.39, -2.39, -1.39, -2.39, -2.39, -2.39, -0.50, 5.50, 0.50, -2.35, -2.35, -2.35, -2.26, -2.26, -2.26, -3.02, -3.02, -3.02, -2.39, -1.30, -0.30, 0.70, 0.70, -2.30, -1.17, -2.17, -2.17, -3.17, 2.83, -2.41, -2.71, -1.71, -2.71, -3.45, -3.45, -3.45, -3.45, -2.45, -3.45, -2.38, -1.38, -2.38, -3.80, -2.80, -3.80, -2.33, -2.33, -0.33, 3.44, 0.44, -1.56, -1.33, -2.33, -1.33, 2.97, -0.03, 0.97, 0.95, -2.05, 3.95, 0.34, -0.66, -2.63, 2.37, 4.37, -2.91, -2.91, -2.91, -2.23, -3.23, -3.23, 7.20, 16.20, 11.20, -1.98, -1.98, -1.98, -3.28, 4.72, -3.28, -2.12, -2.12, -2.12, -2.91, -2.91, -2.91, -2.70, -1.70, -0.70, -0.85, -0.85, 4.15, 2.55, -2.45, -1.45, 1.97, -0.03, -1.03, 1.62, 0.62, -3.38, 0.07, -0.93, -1.93, -1.27, -2.27, -2.27, -2.27, -2.27, -3.99, -3.99, -3.99, -3.99, -3.99, -1.41, -1.41, -1.41, -2.41, -2.41, 1.59, 0.59, 0.59, 1.59, 0.59, -3.40, -2.40, -4.40, -5.43, 3.57, 7.57, -1.86, -1.86, -1.77, -1.77, -1.77, -0.77, -1.77, -2.25, -2.25, -1.34, -1.34, -1.34, -1.34, -1.34, 4.63, 1.63, -1.37, 1.51, -1.49, -1.49, 4.63, -2.37, -2.37, -1.49, -0.49, -1.49, -5.17, 18.83, 3.83, 4.55, 10.55, 1.55, 19.52, 33.52, 16.52, -1.41, -1.41, -1.41, -1.34, -1.41, -1.41, 2.59, -1.42, -1.42, -1.42, -3.24, -2.24, -3.24, -2.88, -2.88, -2.88, -2.23, -2.23, -2.24, -1.24, 0.23, -1.77, 0.97, -3.03, -2.68, -1.68, -0.68, -2.71, 1.29, 1.29, -1.78, -1.78, -1.78, -2.27, -2.27, -2.27, 3.99, -1.01, -0.01, -2.43, -2.43, -2.43, -2.27, -2.27, -1.78, -1.78, -1.78, -1.33, -2.33, -2.33, -2.33, 1.67, -1.33, -3.37, 4.63, 0.63, 2.12, 1.12, 1.12, 3.44, 2.44, -0.56, -1.56, -0.56, 8.23, -1.77, -1.77, -0.77, -1.77, 2.69, 1.69, 3.69, 6.16, 4.16, 6.16, -0.97, -1.97, -1.97, -1.97, -1.97, 3.51, -2.49, -2.49, -2.49, -2.49, -0.14, -2.14, -1.14, -3.14, -2.14, -0.26, -2.26, -1.26, -2.26, -2.26, -2.22, -4.22, -0.22, -1.99, -1.99, -1.99, -1.23, -1.23, -2.23, 4.45, 2.45, 7.45, -1.85, 1.15, -2.85, -2.23, -1.23, -1.23, -3.88, -3.88, -3.88, 5.12, -0.88, 1.51, -3.49, -3.49, 10.51, 3.51, -3.20, -8.20, -6.20, -1.55, -3.55, -3.55, 0.49, -2.51, -3.51, -2.52, -1.52, -0.52, 0.40, -4.60, -4.60, -3.18, -0.18, 1.18, 12.18, -2.58, -2.58, -1.58, -2.21, -2.21, -2.21, -1.18, -2.18, -2.18, -2.40, -0.40, -3.40, -2.40, -3.40, -2.61, -3.61, -1.61, -2.61, -2.61, 7.18, 1.18, -2.82, 1.18, 3.18, 10.38, 0.38, -2.62, -1.45, 3.55, 3.55, -1.75, -1.75, -1.75, -1.32, -2.32, -2.32, 1.44, -0.56, 0.44, -4.10, -3.10, -3.10, -1.63, -1.63, 2.37, -1.05, -0.05, 2.95, -0.10, -2.10, -2.10, -3.10, -0.56, -2.56, -0.56, -1.56, -2.56, -3.56, -0.56, -1.56, -2.56, -2.01, -2.01, -2.01, -1.80, -1.80, -1.80, -2.26, -2.26, -1.26, 3.34, -1.26, -2.26, -1.26, -1.58, -0.58, -1.58, -0.99, 0.01, 0.01, -1.21, 4.79, -2.21, -0.61, -0.61, -1.61, 16.75, 20.75, 13.75, -1.81, -1.81, -1.81, 6.69, 1.69, 2.69, -3.49, -2.49, -2.49, -3.22, -3.22, -3.22, -3.22, -3.22, -2.30, -2.30, -2.30, -2.30, -2.30, -3.22, -3.22, -3.22, -3.22, -3.22, -0.83, -2.83, -2.83, -2.83, -2.83, 1.76, -2.24, -3.24, -3.24, -2.24, -3.05, -3.05, -3.05, -3.05, -3.05, -1.29, -1.29, -1.29, -2.42, -2.42, -2.42, -0.80, 0.20, 0.20, -1.42, -2.42, -2.42, -4.83, -4.83, -4.83, -2.05, -2.05, -2.05, 1.45, -0.55, 3.45, 5.12, 0.12, 0.12, 0.14, 2.14, 8.14, 2.12, 7.12, 2.12, -2.39, -2.39, -0.39, -1.23, 0.77, -0.23, -1.88, 1.12, -1.88, 0.15, 0.15, -2.85, -0.02, 3.98, 0.98, -1.80, -0.80, -1.80, -1.80, -1.80, -1.02, -2.02, -2.02, -1.02, 0.98, -0.72, 3.28, 3.28, -1.72, 5.28, 2.28, 2.52, 1.52, 0.52, 20.56, 8.56, 5.56, -0.43, -2.43, -0.43, -2.43, -2.43, -2.30, -1.30, -2.30, -2.30, -2.30, -1.33, -2.33, -2.33, -2.33, -2.33, 3.95, 5.95, 2.95, 6.95, 0.95, -1.33, -1.33, -2.33, -2.33, -2.33, -2.01, -2.01, -2.01, 9.41, -1.59, -1.59, -0.55, -3.55, -1.55, -2.28, -2.28, -2.28, -1.78, -1.78, -1.78, -2.28, -2.28, -2.28, -1.78, -1.78, -1.78, -2.05, -2.05, -2.05, -2.60, -2.60, 4.40, -1.82, -1.82, -2.33, -2.33, -2.33, -1.82, -1.82, 1.18, -0.82, -1.82, -2.33, -2.33, -2.33, -2.33, -2.33, -1.33, 4.18, 1.18, 4.18, -2.90, -2.90, 1.10, -1.82, -0.82, 1.18, -2.02, -3.02, 3.98, 3.48, 4.48, 4.48, 0.40, 0.40, 4.40, -0.01, -0.01, -4.01, -3.29, -1.29, -3.29, -3.81, -3.81, -0.81, -1.72, 5.28, 1.28, -1.07, -3.07, -3.07, -3.61, -3.61, -1.61, -1.61, -1.61, -3.61, -2.25, -2.25, -2.25, -1.25, -1.25, -2.25, -3.69, -1.69, -3.69, -1.37, -1.78, -2.37, -2.51, -1.60, -1.62, -1.62, 1.38, -1.66, -1.66, -0.66, 13.77, 15.77, 16.77, -1.66, -0.66, 3.34, 0.34, 2.34, -0.66, -4.48, -2.48, -3.48, -2.12, -2.12, -2.44, -4.44, -4.44, -3.17, 1.83, -3.17, 3.67, 1.67, 5.67, 3.67, 8.67, 3.70, 6.70, 6.70, 0.70, 0.70, -1.88, -2.88, -1.88, 0.12, -2.88, -0.64, -1.64, -0.64, 0.36, -2.64, -4.83, -2.83, -2.83, -3.83, 0.18, -1.82, -1.82, -1.82, -1.82, -0.60, -2.60, -1.60, -1.60, -0.60, -2.05, -2.05, -2.05, -2.05, -2.05, 1.41, 1.41, -0.59, 4.41, 4.41, -1.59, -1.59, -1.59, -1.59, -0.59, -0.50, -0.50, -0.50, -1.50, 0.50, 3.34, 0.34, -0.66, -2.66, -2.66, -1.40, -3.40, -3.40, -1.02, -3.02, -2.02, -2.02, -1.02, -1.02, -0.86, -2.86, -2.86, -3.86, -3.86, -3.86, -1.26, -0.26, -1.26, -0.26, 0.74, 1.23, -0.77, -0.77, 1.23, -0.77, 0.23, -1.77, 0.23, -0.77, 0.23, -0.83, -2.83, -1.83, -0.83, -0.83, -2.36, -2.36, 0.64, -0.59, -0.59, 2.41, 5.29, -1.71, -1.71, 1.61, -1.39, -1.39, -1.59, -1.59, -1.59, 2.03, 6.03, -1.97, -1.97, -1.97, 0.37, -4.63, -4.63, -4.63, -4.63, -2.53, -3.53, -3.53, -1.53, -3.53, -1.31, 0.69, 1.69, 1.79, -1.21, 0.79, 11.15, 11.15, 15.15, 12.39, -0.61, -1.61, -1.82, -1.82, 1.18, 1.68, -1.32, 3.68, -0.61, 0.39, 1.39, 1.61, 1.61, -2.39, -1.00, -3.00, 0.00, -2.55, -0.55, -2.55, -1.01, -2.01, -2.01, 12.04, 5.04, 6.04, -2.74, -1.74, 1.26, 1.39, 0.39, 0.39, -2.88, 0.12, -1.88, -0.97, -2.97, -1.97, 1.12, 0.12, -1.88, -2.18, -0.18, 0.82, 0.30, -3.70, -1.70, -1.04, -2.04, -1.04, -3.74, 0.26, -0.74, -3.30, 5.70, 4.70, -2.82, 3.18, 0.18, -1.85, -2.85, -0.85, -2.26, -2.26, 1.42, 2.42, 0.42, -1.99, -1.99, -1.99, -1.99, -1.99, -1.99, -1.99, -3.74, -3.74, -3.74, -3.74, -3.74, -3.74, -2.23, -2.23, -0.23, 1.18, -2.82, -2.82, 2.18, 1.18, 0.18, -1.99, -1.99, -1.99, -3.46, 11.54, 11.54, 12.54, 6.54, -1.85, -2.85, -0.85, -2.85, -1.85, -3.44, -2.44, 4.56, -3.44, -3.44, -3.44, -0.44, 3.56, 1.56, 0.56, -3.44, 1.56, -3.44, -1.44, -2.44, -1.69, -1.69, -2.69, -0.69, -0.69, -2.44, -3.44, -3.44, -3.44, -2.44, -3.44, -3.44, -3.44, -0.44, -2.44, -2.23, 1.77, -2.23, -0.75, 1.25, 2.25, 4.25, 3.25, 0.25, -3.03, -0.03, 1.97, -5.44, -5.44, -1.44, -1.44, 0.56, -0.44, -1.58, -1.58, -1.58, -1.58, -1.58, -1.58, -1.58, -1.58, -1.58, -1.58, -2.94, -2.94, -2.94, -2.94, -2.94, -2.26, -2.26, -2.26, -2.26, -2.26, -2.90, -2.90, -2.90, -1.90, 1.10, -2.42, -2.42, -2.42, -1.63, -1.63, -3.63, -1.00, -2.00, -3.00, -3.00, -3.00, -3.00, -3.00, -3.00, -3.00, -2.85, -2.85, -2.85, -2.85, -1.85, -2.85, -1.85, -1.85, -1.85, -2.85, -2.74, -1.74, -2.74, 0.77, -0.23, 4.77, 8.12, 4.12, -2.88, -0.88, 0.12, 1.74, 2.74, 1.74, 3.74, -2.26, -1.63, -1.63, -1.63, -1.63, -1.63, -1.29, -1.29, -1.29, -1.29, -1.29, -1.84, -1.84, 0.16, -1.84, -1.84, -2.70, -2.70, -2.70, -0.33, -2.33, -2.33, -2.33, -1.33, 1.74, 4.74, 10.74, 4.74, 6.74, -2.05, -3.05, -3.05, -3.05, -3.05, -3.46, -0.46, -3.46, 2.14, 5.14, 9.14, -2.26, -1.26, -2.26, -3.40, -3.40, -3.40, -2.71, -2.71, -1.71, -1.30, -2.30, -2.30, -2.79, -3.79, -7.79, -3.33, -2.33, -2.33, -0.33, -1.33, 0.67, -1.76, -1.76, 0.24, 0.66, 0.66, -1.34, 0.00, -3.00, -3.00, -0.60, -2.60, -2.60, -1.33, -0.33, -2.33, 1.37, -1.63, 4.37, 1.32, -0.68, -1.68, -2.31, -1.31, -2.31, -2.35, -2.35, -1.35, -0.05, -2.05, -1.05, -1.82, -0.82, -1.82, -2.30, -2.30, -1.30, -1.35, -0.35, -0.35, -2.35, -1.35, 3.65, -1.52, -1.52, -1.52, -2.33, -2.33, -2.33, -2.33, -2.33, -1.26, -2.26, -2.26, -2.26, -2.26, -2.94, -2.94, -2.94, -2.94, 1.06, -1.82, -1.82, -0.82, -1.82, -1.82, -1.82, 0.70, -0.30, -0.30, -1.30, -0.30, -2.26, -2.26, -2.26, -2.26, -2.26, 2.33, -1.67, -1.67, -1.67, -0.67, -3.71, -3.71, -3.71, -3.71, -3.71, -5.24, -5.24, -5.24, -1.24, 3.76, -2.26, -2.26, -2.26, -2.22, -2.22, 9.78, -2.01, -2.01, -0.01, 0.12, 6.12, 3.12, 0.12, 1.12, 1.12, -2.88, 2.12, -2.33, -1.33, -2.33, -1.99, -1.99, -1.99, -1.99, -1.99, 4.53, -1.47, -1.47, -1.47, -2.17, -2.17, -2.17, -2.00, 1.00, -1.00, 1.78, -0.22, 0.78, -2.39, -2.39, -2.39, -2.39, -0.17, -2.17, -2.17, 0.12, -1.88, -2.88, -2.37, -2.37, -2.37, 4.00, 0.00, 2.00, 1.00, 1.46, 4.46, -2.54, 9.74, 0.74, -2.26, -2.26, -2.26, -2.26, 0.65, -1.35, -2.35, 2.53, -0.47, -1.47, 2.53, -0.26, -2.26, -0.26, 5.65, -0.35, 2.65, -1.35, -0.98, 3.02, 0.02, -1.71, -1.71, 0.29, -1.71, 1.29, -3.71, -0.71, -2.71, 11.64, 1.64, -1.36, -1.92, -1.92, -1.92, -2.35, -1.35, -2.35, -2.36, -2.36, -2.36, -2.36, -2.36, -2.36, -2.36, -2.36, -2.36, -2.36, -2.36, -2.36, 0.67, 0.67, -1.33, -3.00, -3.00, -3.00, 1.74, -0.26, 1.74, 17.66, 18.66, 25.66, -3.56, 4.44, 4.44, -1.96, -1.96, -2.96, -4.18, 1.82, 0.82, -1.62, -1.62, -1.62, -2.88, -2.88, -2.88, 0.00, -3.00, -3.00, -1.40, -3.40, -2.40, -2.54, -2.54, -0.54, -1.01, -2.01, -2.01, -1.54, -1.54, -0.54, -5.28, -5.28, -5.28, -2.35, -2.35, -2.35, -1.26, -2.26, -1.26, -1.30, -2.30, -0.30, -3.46, -2.46, -1.46, -0.26, -1.26, -2.26, -2.39, -2.39, -2.39, 10.12, 8.12, 9.12, 7.63, 7.63, 3.63, -2.71, -3.71, -1.71, 8.67, 4.67, 1.67, 2.12, -0.88, -0.88, -0.83, -2.83, -2.83, 5.04, 2.04, 0.04, -1.78, -1.78, 0.22, -2.28, -2.28, -2.28, -2.32, -0.32, -2.32, -0.58, 2.42, 1.42, 5.67, 4.67, -2.33, -1.29, 1.71, -1.50, -2.50, -3.50, -1.78, -1.78, 0.22, -2.37, -2.37, -2.37, -2.28, -2.28, -1.28, 2.37, -0.63, -1.63, -2.28, -2.28, -1.28, 1.40, -3.60, 2.40, 5.67, 1.67, -0.33, -0.23, -2.23, -2.23, 8.39, 5.39, -2.61, 17.66, 12.66, 9.66, -2.37, -2.37, -2.37, -1.37, -2.37, -2.37, 22.65, 13.65, 0.00, 5.00, -2.36, -2.36, -1.87, -1.87, 3.00, -2.35, -2.35, -2.37, -0.37, -2.37, 6.00, 0.00, -1.00, -2.00, -3.00, -3.00, -3.00, -3.00, -0.35, -1.35, 11.63, 11.63, 11.63, -1.26, -1.26, -2.26, -2.35, -1.35, 2.68, -2.32, 5.53, 1.53, 12.00, 3.00, -1.92, -1.92, 13.63, -2.37, 0.65, -2.35, -2.35, 6.64, -2.36, -0.35, -2.35, 8.38, -1.62, -2.26, -2.26, 4.26, 6.26, 3.39, 3.29, -2.71, -2.58, 18.58, -2.36, -0.54, 2.58, 5.58, 5.65, 8.00, -3.59, 3.00, 17.00, -0.44, -1.44, 1.11, -2.35, 2.58, -2.42, -1.36, -2.42, -1.63, -3.63, 5.56, 5.58, 3.58 diff --git a/statsmodels/discrete/tests/results/predict_prob_poisson.csv b/statsmodels/discrete/tests/results/predict_prob_poisson.csv new file mode 100644 index 0000000..414e893 --- /dev/null +++ b/statsmodels/discrete/tests/results/predict_prob_poisson.csv @@ -0,0 +1,100 @@ +8.379031744168380369e-02,2.077528821676430104e-01,2.575551768198139913e-01,2.128640155379669940e-01,1.319457727575999995e-01,6.543026788102700164e-02,2.703838014606119861e-02,9.577140339289870116e-03,2.968240497770269909e-03,8.177297504938440490e-04,2.027510071406040098e-04,4.570077413795890238e-05,9.442685657028509634e-06,1.800965535203219948e-06,3.189558616990250168e-07,5.272208179929220155e-08,8.170070228657619958e-09,1.191598890111820052e-09,1.641386309215599936e-10,2.141955418576350105e-11,2.655422638740709846e-12,3.135216820678259815e-13,3.533443256732679778e-14,3.809109935659109947e-15,3.935188017484579855e-16,3.902821602617689926e-17,3.721847497448600064e-18,3.417810908236739783e-19,3.026517726331670134e-20,2.587607765203720068e-21,2.138604187031469818e-22,1.710495518464319969e-23,1.325333525794619979e-24,9.957824455721199703e-26,7.261707817238370376e-27,5.144272289458259657e-28,3.543028688958180279e-29,2.374248468976859858e-30,1.549158276945170062e-31,9.848824676541599504e-33,6.104887100885410293e-34,3.691875116075040039e-35,2.179470189583640032e-36,1.256711818510240074e-37,7.081679122611000192e-39,3.901907346362489676e-40,2.103160141701780022e-41,1.109501021423509921e-42,5.731122491398079942e-44,2.899992217690780004e-45,1.438070077508169916e-46,6.991383020801489966e-48,3.333596055507870012e-49,1.559517762776100056e-50,7.160606157101919305e-52,3.228050496929589851e-53,1.429241159437210023e-54,6.217043135469849725e-56,2.657719291379690094e-57,1.116889784888329966e-58,4.615431292436830269e-60,1.876012280410359839e-61,7.502348068157760110e-63,2.952635802013810101e-64,1.143887012748099918e-65,4.363379574310999768e-67,1.639201264776670044e-68,6.066115841001130216e-70,2.211846624669259971e-71,7.948023445334989658e-73,2.815232848445230102e-74,9.831260284055620294e-76,3.385555358957499838e-77,1.149900548613980005e-78,3.852847177798599975e-80,1.273719335246129910e-81,4.155405123946290228e-83,1.338060860950400074e-84 +8.379031744168380369e-02,2.077528821676430104e-01,2.575551768198139913e-01,2.128640155379669940e-01,1.319457727575999995e-01,6.543026788102700164e-02,2.703838014606119861e-02,9.577140339289870116e-03,2.968240497770269909e-03,8.177297504938440490e-04,2.027510071406040098e-04,4.570077413795890238e-05,9.442685657028509634e-06,1.800965535203219948e-06,3.189558616990250168e-07,5.272208179929220155e-08,8.170070228657619958e-09,1.191598890111820052e-09,1.641386309215599936e-10,2.141955418576350105e-11,2.655422638740709846e-12,3.135216820678259815e-13,3.533443256732679778e-14,3.809109935659109947e-15,3.935188017484579855e-16,3.902821602617689926e-17,3.721847497448600064e-18,3.417810908236739783e-19,3.026517726331670134e-20,2.587607765203720068e-21,2.138604187031469818e-22,1.710495518464319969e-23,1.325333525794619979e-24,9.957824455721199703e-26,7.261707817238370376e-27,5.144272289458259657e-28,3.543028688958180279e-29,2.374248468976859858e-30,1.549158276945170062e-31,9.848824676541599504e-33,6.104887100885410293e-34,3.691875116075040039e-35,2.179470189583640032e-36,1.256711818510240074e-37,7.081679122611000192e-39,3.901907346362489676e-40,2.103160141701780022e-41,1.109501021423509921e-42,5.731122491398079942e-44,2.899992217690780004e-45,1.438070077508169916e-46,6.991383020801489966e-48,3.333596055507870012e-49,1.559517762776100056e-50,7.160606157101919305e-52,3.228050496929589851e-53,1.429241159437210023e-54,6.217043135469849725e-56,2.657719291379690094e-57,1.116889784888329966e-58,4.615431292436830269e-60,1.876012280410359839e-61,7.502348068157760110e-63,2.952635802013810101e-64,1.143887012748099918e-65,4.363379574310999768e-67,1.639201264776670044e-68,6.066115841001130216e-70,2.211846624669259971e-71,7.948023445334989658e-73,2.815232848445230102e-74,9.831260284055620294e-76,3.385555358957499838e-77,1.149900548613980005e-78,3.852847177798599975e-80,1.273719335246129910e-81,4.155405123946290228e-83,1.338060860950400074e-84 +8.379031744168380369e-02,2.077528821676430104e-01,2.575551768198139913e-01,2.128640155379669940e-01,1.319457727575999995e-01,6.543026788102700164e-02,2.703838014606119861e-02,9.577140339289870116e-03,2.968240497770269909e-03,8.177297504938440490e-04,2.027510071406040098e-04,4.570077413795890238e-05,9.442685657028509634e-06,1.800965535203219948e-06,3.189558616990250168e-07,5.272208179929220155e-08,8.170070228657619958e-09,1.191598890111820052e-09,1.641386309215599936e-10,2.141955418576350105e-11,2.655422638740709846e-12,3.135216820678259815e-13,3.533443256732679778e-14,3.809109935659109947e-15,3.935188017484579855e-16,3.902821602617689926e-17,3.721847497448600064e-18,3.417810908236739783e-19,3.026517726331670134e-20,2.587607765203720068e-21,2.138604187031469818e-22,1.710495518464319969e-23,1.325333525794619979e-24,9.957824455721199703e-26,7.261707817238370376e-27,5.144272289458259657e-28,3.543028688958180279e-29,2.374248468976859858e-30,1.549158276945170062e-31,9.848824676541599504e-33,6.104887100885410293e-34,3.691875116075040039e-35,2.179470189583640032e-36,1.256711818510240074e-37,7.081679122611000192e-39,3.901907346362489676e-40,2.103160141701780022e-41,1.109501021423509921e-42,5.731122491398079942e-44,2.899992217690780004e-45,1.438070077508169916e-46,6.991383020801489966e-48,3.333596055507870012e-49,1.559517762776100056e-50,7.160606157101919305e-52,3.228050496929589851e-53,1.429241159437210023e-54,6.217043135469849725e-56,2.657719291379690094e-57,1.116889784888329966e-58,4.615431292436830269e-60,1.876012280410359839e-61,7.502348068157760110e-63,2.952635802013810101e-64,1.143887012748099918e-65,4.363379574310999768e-67,1.639201264776670044e-68,6.066115841001130216e-70,2.211846624669259971e-71,7.948023445334989658e-73,2.815232848445230102e-74,9.831260284055620294e-76,3.385555358957499838e-77,1.149900548613980005e-78,3.852847177798599975e-80,1.273719335246129910e-81,4.155405123946290228e-83,1.338060860950400074e-84 +8.379031744168380369e-02,2.077528821676430104e-01,2.575551768198139913e-01,2.128640155379669940e-01,1.319457727575999995e-01,6.543026788102700164e-02,2.703838014606119861e-02,9.577140339289870116e-03,2.968240497770269909e-03,8.177297504938440490e-04,2.027510071406040098e-04,4.570077413795890238e-05,9.442685657028509634e-06,1.800965535203219948e-06,3.189558616990250168e-07,5.272208179929220155e-08,8.170070228657619958e-09,1.191598890111820052e-09,1.641386309215599936e-10,2.141955418576350105e-11,2.655422638740709846e-12,3.135216820678259815e-13,3.533443256732679778e-14,3.809109935659109947e-15,3.935188017484579855e-16,3.902821602617689926e-17,3.721847497448600064e-18,3.417810908236739783e-19,3.026517726331670134e-20,2.587607765203720068e-21,2.138604187031469818e-22,1.710495518464319969e-23,1.325333525794619979e-24,9.957824455721199703e-26,7.261707817238370376e-27,5.144272289458259657e-28,3.543028688958180279e-29,2.374248468976859858e-30,1.549158276945170062e-31,9.848824676541599504e-33,6.104887100885410293e-34,3.691875116075040039e-35,2.179470189583640032e-36,1.256711818510240074e-37,7.081679122611000192e-39,3.901907346362489676e-40,2.103160141701780022e-41,1.109501021423509921e-42,5.731122491398079942e-44,2.899992217690780004e-45,1.438070077508169916e-46,6.991383020801489966e-48,3.333596055507870012e-49,1.559517762776100056e-50,7.160606157101919305e-52,3.228050496929589851e-53,1.429241159437210023e-54,6.217043135469849725e-56,2.657719291379690094e-57,1.116889784888329966e-58,4.615431292436830269e-60,1.876012280410359839e-61,7.502348068157760110e-63,2.952635802013810101e-64,1.143887012748099918e-65,4.363379574310999768e-67,1.639201264776670044e-68,6.066115841001130216e-70,2.211846624669259971e-71,7.948023445334989658e-73,2.815232848445230102e-74,9.831260284055620294e-76,3.385555358957499838e-77,1.149900548613980005e-78,3.852847177798599975e-80,1.273719335246129910e-81,4.155405123946290228e-83,1.338060860950400074e-84 +8.379031744168380369e-02,2.077528821676430104e-01,2.575551768198139913e-01,2.128640155379669940e-01,1.319457727575999995e-01,6.543026788102700164e-02,2.703838014606119861e-02,9.577140339289870116e-03,2.968240497770269909e-03,8.177297504938440490e-04,2.027510071406040098e-04,4.570077413795890238e-05,9.442685657028509634e-06,1.800965535203219948e-06,3.189558616990250168e-07,5.272208179929220155e-08,8.170070228657619958e-09,1.191598890111820052e-09,1.641386309215599936e-10,2.141955418576350105e-11,2.655422638740709846e-12,3.135216820678259815e-13,3.533443256732679778e-14,3.809109935659109947e-15,3.935188017484579855e-16,3.902821602617689926e-17,3.721847497448600064e-18,3.417810908236739783e-19,3.026517726331670134e-20,2.587607765203720068e-21,2.138604187031469818e-22,1.710495518464319969e-23,1.325333525794619979e-24,9.957824455721199703e-26,7.261707817238370376e-27,5.144272289458259657e-28,3.543028688958180279e-29,2.374248468976859858e-30,1.549158276945170062e-31,9.848824676541599504e-33,6.104887100885410293e-34,3.691875116075040039e-35,2.179470189583640032e-36,1.256711818510240074e-37,7.081679122611000192e-39,3.901907346362489676e-40,2.103160141701780022e-41,1.109501021423509921e-42,5.731122491398079942e-44,2.899992217690780004e-45,1.438070077508169916e-46,6.991383020801489966e-48,3.333596055507870012e-49,1.559517762776100056e-50,7.160606157101919305e-52,3.228050496929589851e-53,1.429241159437210023e-54,6.217043135469849725e-56,2.657719291379690094e-57,1.116889784888329966e-58,4.615431292436830269e-60,1.876012280410359839e-61,7.502348068157760110e-63,2.952635802013810101e-64,1.143887012748099918e-65,4.363379574310999768e-67,1.639201264776670044e-68,6.066115841001130216e-70,2.211846624669259971e-71,7.948023445334989658e-73,2.815232848445230102e-74,9.831260284055620294e-76,3.385555358957499838e-77,1.149900548613980005e-78,3.852847177798599975e-80,1.273719335246129910e-81,4.155405123946290228e-83,1.338060860950400074e-84 +8.118990566648350005e-02,2.038649590327049899e-01,2.559488225798209893e-01,2.142261233149189981e-01,1.344785398345409999e-01,6.753416398034839396e-02,2.826264640524410107e-02,1.013807109615929951e-02,3.182041892589550051e-03,8.877770850232339717e-04,2.229176614786369955e-04,5.088530016805790175e-05,1.064759790535810080e-05,2.056595292001469815e-06,3.688598192005929801e-07,6.174625717556630074e-08,9.690165672526020780e-09,1.431274152236029917e-09,1.996599098365659890e-10,2.638625876428110119e-11,3.312747759619069994e-12,3.961043589608649791e-13,4.520926935511439786e-14,4.935602774818350051e-15,5.163801097101870000e-16,5.186448194375870065e-17,5.008840976890909780e-18,4.658155980666439870e-19,4.177308436713959746e-20,3.616921579389179838e-21,3.027320385679749904e-22,2.452094702116890103e-23,1.924100746760600180e-24,1.464044966245399959e-25,1.081224918496190041e-26,7.756906368555340416e-28,5.410365385754000081e-29,3.671685033976540261e-30,2.426176378792029910e-31,1.562062154782019909e-32,9.805705973453359381e-34,6.005311747583009938e-35,3.590267555429679690e-36,2.096519500694529919e-37,1.196428575840440114e-38,6.675976680079130067e-40,3.644160754733979779e-41,1.946884628800419970e-42,1.018449563386959969e-43,5.218960306134329739e-45,2.620924658723030084e-46,1.290401645599650074e-47,6.231062566223719704e-49,2.952070941754059896e-50,1.372693500964289936e-51,6.266880817965340241e-53,2.809984704400430286e-54,1.237854636494539965e-55,5.358980806317969645e-57,2.280713521763420130e-58,9.544650591368130054e-60,3.928897935451919947e-61,1.591181075226090022e-62,6.341903112131939561e-64,2.488170726726440089e-65,9.611858463788089710e-67,3.656823330032089826e-68,1.370470601576910125e-69,5.060592395230560341e-71,1.841589436886780107e-72,6.605950615307930248e-74,2.336240354828889928e-75,8.147522574080980633e-77,2.802484761216629766e-78,9.509377483820990701e-80,3.183694385406879935e-81,1.051860936285279979e-82,3.430110800482530023e-84 +8.118990566648350005e-02,2.038649590327049899e-01,2.559488225798209893e-01,2.142261233149189981e-01,1.344785398345409999e-01,6.753416398034839396e-02,2.826264640524410107e-02,1.013807109615929951e-02,3.182041892589550051e-03,8.877770850232339717e-04,2.229176614786369955e-04,5.088530016805790175e-05,1.064759790535810080e-05,2.056595292001469815e-06,3.688598192005929801e-07,6.174625717556630074e-08,9.690165672526020780e-09,1.431274152236029917e-09,1.996599098365659890e-10,2.638625876428110119e-11,3.312747759619069994e-12,3.961043589608649791e-13,4.520926935511439786e-14,4.935602774818350051e-15,5.163801097101870000e-16,5.186448194375870065e-17,5.008840976890909780e-18,4.658155980666439870e-19,4.177308436713959746e-20,3.616921579389179838e-21,3.027320385679749904e-22,2.452094702116890103e-23,1.924100746760600180e-24,1.464044966245399959e-25,1.081224918496190041e-26,7.756906368555340416e-28,5.410365385754000081e-29,3.671685033976540261e-30,2.426176378792029910e-31,1.562062154782019909e-32,9.805705973453359381e-34,6.005311747583009938e-35,3.590267555429679690e-36,2.096519500694529919e-37,1.196428575840440114e-38,6.675976680079130067e-40,3.644160754733979779e-41,1.946884628800419970e-42,1.018449563386959969e-43,5.218960306134329739e-45,2.620924658723030084e-46,1.290401645599650074e-47,6.231062566223719704e-49,2.952070941754059896e-50,1.372693500964289936e-51,6.266880817965340241e-53,2.809984704400430286e-54,1.237854636494539965e-55,5.358980806317969645e-57,2.280713521763420130e-58,9.544650591368130054e-60,3.928897935451919947e-61,1.591181075226090022e-62,6.341903112131939561e-64,2.488170726726440089e-65,9.611858463788089710e-67,3.656823330032089826e-68,1.370470601576910125e-69,5.060592395230560341e-71,1.841589436886780107e-72,6.605950615307930248e-74,2.336240354828889928e-75,8.147522574080980633e-77,2.802484761216629766e-78,9.509377483820990701e-80,3.183694385406879935e-81,1.051860936285279979e-82,3.430110800482530023e-84 +8.118990566648350005e-02,2.038649590327049899e-01,2.559488225798209893e-01,2.142261233149189981e-01,1.344785398345409999e-01,6.753416398034839396e-02,2.826264640524410107e-02,1.013807109615929951e-02,3.182041892589550051e-03,8.877770850232339717e-04,2.229176614786369955e-04,5.088530016805790175e-05,1.064759790535810080e-05,2.056595292001469815e-06,3.688598192005929801e-07,6.174625717556630074e-08,9.690165672526020780e-09,1.431274152236029917e-09,1.996599098365659890e-10,2.638625876428110119e-11,3.312747759619069994e-12,3.961043589608649791e-13,4.520926935511439786e-14,4.935602774818350051e-15,5.163801097101870000e-16,5.186448194375870065e-17,5.008840976890909780e-18,4.658155980666439870e-19,4.177308436713959746e-20,3.616921579389179838e-21,3.027320385679749904e-22,2.452094702116890103e-23,1.924100746760600180e-24,1.464044966245399959e-25,1.081224918496190041e-26,7.756906368555340416e-28,5.410365385754000081e-29,3.671685033976540261e-30,2.426176378792029910e-31,1.562062154782019909e-32,9.805705973453359381e-34,6.005311747583009938e-35,3.590267555429679690e-36,2.096519500694529919e-37,1.196428575840440114e-38,6.675976680079130067e-40,3.644160754733979779e-41,1.946884628800419970e-42,1.018449563386959969e-43,5.218960306134329739e-45,2.620924658723030084e-46,1.290401645599650074e-47,6.231062566223719704e-49,2.952070941754059896e-50,1.372693500964289936e-51,6.266880817965340241e-53,2.809984704400430286e-54,1.237854636494539965e-55,5.358980806317969645e-57,2.280713521763420130e-58,9.544650591368130054e-60,3.928897935451919947e-61,1.591181075226090022e-62,6.341903112131939561e-64,2.488170726726440089e-65,9.611858463788089710e-67,3.656823330032089826e-68,1.370470601576910125e-69,5.060592395230560341e-71,1.841589436886780107e-72,6.605950615307930248e-74,2.336240354828889928e-75,8.147522574080980633e-77,2.802484761216629766e-78,9.509377483820990701e-80,3.183694385406879935e-81,1.051860936285279979e-82,3.430110800482530023e-84 +8.118990566648350005e-02,2.038649590327049899e-01,2.559488225798209893e-01,2.142261233149189981e-01,1.344785398345409999e-01,6.753416398034839396e-02,2.826264640524410107e-02,1.013807109615929951e-02,3.182041892589550051e-03,8.877770850232339717e-04,2.229176614786369955e-04,5.088530016805790175e-05,1.064759790535810080e-05,2.056595292001469815e-06,3.688598192005929801e-07,6.174625717556630074e-08,9.690165672526020780e-09,1.431274152236029917e-09,1.996599098365659890e-10,2.638625876428110119e-11,3.312747759619069994e-12,3.961043589608649791e-13,4.520926935511439786e-14,4.935602774818350051e-15,5.163801097101870000e-16,5.186448194375870065e-17,5.008840976890909780e-18,4.658155980666439870e-19,4.177308436713959746e-20,3.616921579389179838e-21,3.027320385679749904e-22,2.452094702116890103e-23,1.924100746760600180e-24,1.464044966245399959e-25,1.081224918496190041e-26,7.756906368555340416e-28,5.410365385754000081e-29,3.671685033976540261e-30,2.426176378792029910e-31,1.562062154782019909e-32,9.805705973453359381e-34,6.005311747583009938e-35,3.590267555429679690e-36,2.096519500694529919e-37,1.196428575840440114e-38,6.675976680079130067e-40,3.644160754733979779e-41,1.946884628800419970e-42,1.018449563386959969e-43,5.218960306134329739e-45,2.620924658723030084e-46,1.290401645599650074e-47,6.231062566223719704e-49,2.952070941754059896e-50,1.372693500964289936e-51,6.266880817965340241e-53,2.809984704400430286e-54,1.237854636494539965e-55,5.358980806317969645e-57,2.280713521763420130e-58,9.544650591368130054e-60,3.928897935451919947e-61,1.591181075226090022e-62,6.341903112131939561e-64,2.488170726726440089e-65,9.611858463788089710e-67,3.656823330032089826e-68,1.370470601576910125e-69,5.060592395230560341e-71,1.841589436886780107e-72,6.605950615307930248e-74,2.336240354828889928e-75,8.147522574080980633e-77,2.802484761216629766e-78,9.509377483820990701e-80,3.183694385406879935e-81,1.051860936285279979e-82,3.430110800482530023e-84 +8.118990566648350005e-02,2.038649590327049899e-01,2.559488225798209893e-01,2.142261233149189981e-01,1.344785398345409999e-01,6.753416398034839396e-02,2.826264640524410107e-02,1.013807109615929951e-02,3.182041892589550051e-03,8.877770850232339717e-04,2.229176614786369955e-04,5.088530016805790175e-05,1.064759790535810080e-05,2.056595292001469815e-06,3.688598192005929801e-07,6.174625717556630074e-08,9.690165672526020780e-09,1.431274152236029917e-09,1.996599098365659890e-10,2.638625876428110119e-11,3.312747759619069994e-12,3.961043589608649791e-13,4.520926935511439786e-14,4.935602774818350051e-15,5.163801097101870000e-16,5.186448194375870065e-17,5.008840976890909780e-18,4.658155980666439870e-19,4.177308436713959746e-20,3.616921579389179838e-21,3.027320385679749904e-22,2.452094702116890103e-23,1.924100746760600180e-24,1.464044966245399959e-25,1.081224918496190041e-26,7.756906368555340416e-28,5.410365385754000081e-29,3.671685033976540261e-30,2.426176378792029910e-31,1.562062154782019909e-32,9.805705973453359381e-34,6.005311747583009938e-35,3.590267555429679690e-36,2.096519500694529919e-37,1.196428575840440114e-38,6.675976680079130067e-40,3.644160754733979779e-41,1.946884628800419970e-42,1.018449563386959969e-43,5.218960306134329739e-45,2.620924658723030084e-46,1.290401645599650074e-47,6.231062566223719704e-49,2.952070941754059896e-50,1.372693500964289936e-51,6.266880817965340241e-53,2.809984704400430286e-54,1.237854636494539965e-55,5.358980806317969645e-57,2.280713521763420130e-58,9.544650591368130054e-60,3.928897935451919947e-61,1.591181075226090022e-62,6.341903112131939561e-64,2.488170726726440089e-65,9.611858463788089710e-67,3.656823330032089826e-68,1.370470601576910125e-69,5.060592395230560341e-71,1.841589436886780107e-72,6.605950615307930248e-74,2.336240354828889928e-75,8.147522574080980633e-77,2.802484761216629766e-78,9.509377483820990701e-80,3.183694385406879935e-81,1.051860936285279979e-82,3.430110800482530023e-84 +8.118990566648350005e-02,2.038649590327049899e-01,2.559488225798209893e-01,2.142261233149189981e-01,1.344785398345409999e-01,6.753416398034839396e-02,2.826264640524410107e-02,1.013807109615929951e-02,3.182041892589550051e-03,8.877770850232339717e-04,2.229176614786369955e-04,5.088530016805790175e-05,1.064759790535810080e-05,2.056595292001469815e-06,3.688598192005929801e-07,6.174625717556630074e-08,9.690165672526020780e-09,1.431274152236029917e-09,1.996599098365659890e-10,2.638625876428110119e-11,3.312747759619069994e-12,3.961043589608649791e-13,4.520926935511439786e-14,4.935602774818350051e-15,5.163801097101870000e-16,5.186448194375870065e-17,5.008840976890909780e-18,4.658155980666439870e-19,4.177308436713959746e-20,3.616921579389179838e-21,3.027320385679749904e-22,2.452094702116890103e-23,1.924100746760600180e-24,1.464044966245399959e-25,1.081224918496190041e-26,7.756906368555340416e-28,5.410365385754000081e-29,3.671685033976540261e-30,2.426176378792029910e-31,1.562062154782019909e-32,9.805705973453359381e-34,6.005311747583009938e-35,3.590267555429679690e-36,2.096519500694529919e-37,1.196428575840440114e-38,6.675976680079130067e-40,3.644160754733979779e-41,1.946884628800419970e-42,1.018449563386959969e-43,5.218960306134329739e-45,2.620924658723030084e-46,1.290401645599650074e-47,6.231062566223719704e-49,2.952070941754059896e-50,1.372693500964289936e-51,6.266880817965340241e-53,2.809984704400430286e-54,1.237854636494539965e-55,5.358980806317969645e-57,2.280713521763420130e-58,9.544650591368130054e-60,3.928897935451919947e-61,1.591181075226090022e-62,6.341903112131939561e-64,2.488170726726440089e-65,9.611858463788089710e-67,3.656823330032089826e-68,1.370470601576910125e-69,5.060592395230560341e-71,1.841589436886780107e-72,6.605950615307930248e-74,2.336240354828889928e-75,8.147522574080980633e-77,2.802484761216629766e-78,9.509377483820990701e-80,3.183694385406879935e-81,1.051860936285279979e-82,3.430110800482530023e-84 +8.118990566648350005e-02,2.038649590327049899e-01,2.559488225798209893e-01,2.142261233149189981e-01,1.344785398345409999e-01,6.753416398034839396e-02,2.826264640524410107e-02,1.013807109615929951e-02,3.182041892589550051e-03,8.877770850232339717e-04,2.229176614786369955e-04,5.088530016805790175e-05,1.064759790535810080e-05,2.056595292001469815e-06,3.688598192005929801e-07,6.174625717556630074e-08,9.690165672526020780e-09,1.431274152236029917e-09,1.996599098365659890e-10,2.638625876428110119e-11,3.312747759619069994e-12,3.961043589608649791e-13,4.520926935511439786e-14,4.935602774818350051e-15,5.163801097101870000e-16,5.186448194375870065e-17,5.008840976890909780e-18,4.658155980666439870e-19,4.177308436713959746e-20,3.616921579389179838e-21,3.027320385679749904e-22,2.452094702116890103e-23,1.924100746760600180e-24,1.464044966245399959e-25,1.081224918496190041e-26,7.756906368555340416e-28,5.410365385754000081e-29,3.671685033976540261e-30,2.426176378792029910e-31,1.562062154782019909e-32,9.805705973453359381e-34,6.005311747583009938e-35,3.590267555429679690e-36,2.096519500694529919e-37,1.196428575840440114e-38,6.675976680079130067e-40,3.644160754733979779e-41,1.946884628800419970e-42,1.018449563386959969e-43,5.218960306134329739e-45,2.620924658723030084e-46,1.290401645599650074e-47,6.231062566223719704e-49,2.952070941754059896e-50,1.372693500964289936e-51,6.266880817965340241e-53,2.809984704400430286e-54,1.237854636494539965e-55,5.358980806317969645e-57,2.280713521763420130e-58,9.544650591368130054e-60,3.928897935451919947e-61,1.591181075226090022e-62,6.341903112131939561e-64,2.488170726726440089e-65,9.611858463788089710e-67,3.656823330032089826e-68,1.370470601576910125e-69,5.060592395230560341e-71,1.841589436886780107e-72,6.605950615307930248e-74,2.336240354828889928e-75,8.147522574080980633e-77,2.802484761216629766e-78,9.509377483820990701e-80,3.183694385406879935e-81,1.051860936285279979e-82,3.430110800482530023e-84 +8.118990566648350005e-02,2.038649590327049899e-01,2.559488225798209893e-01,2.142261233149189981e-01,1.344785398345409999e-01,6.753416398034839396e-02,2.826264640524410107e-02,1.013807109615929951e-02,3.182041892589550051e-03,8.877770850232339717e-04,2.229176614786369955e-04,5.088530016805790175e-05,1.064759790535810080e-05,2.056595292001469815e-06,3.688598192005929801e-07,6.174625717556630074e-08,9.690165672526020780e-09,1.431274152236029917e-09,1.996599098365659890e-10,2.638625876428110119e-11,3.312747759619069994e-12,3.961043589608649791e-13,4.520926935511439786e-14,4.935602774818350051e-15,5.163801097101870000e-16,5.186448194375870065e-17,5.008840976890909780e-18,4.658155980666439870e-19,4.177308436713959746e-20,3.616921579389179838e-21,3.027320385679749904e-22,2.452094702116890103e-23,1.924100746760600180e-24,1.464044966245399959e-25,1.081224918496190041e-26,7.756906368555340416e-28,5.410365385754000081e-29,3.671685033976540261e-30,2.426176378792029910e-31,1.562062154782019909e-32,9.805705973453359381e-34,6.005311747583009938e-35,3.590267555429679690e-36,2.096519500694529919e-37,1.196428575840440114e-38,6.675976680079130067e-40,3.644160754733979779e-41,1.946884628800419970e-42,1.018449563386959969e-43,5.218960306134329739e-45,2.620924658723030084e-46,1.290401645599650074e-47,6.231062566223719704e-49,2.952070941754059896e-50,1.372693500964289936e-51,6.266880817965340241e-53,2.809984704400430286e-54,1.237854636494539965e-55,5.358980806317969645e-57,2.280713521763420130e-58,9.544650591368130054e-60,3.928897935451919947e-61,1.591181075226090022e-62,6.341903112131939561e-64,2.488170726726440089e-65,9.611858463788089710e-67,3.656823330032089826e-68,1.370470601576910125e-69,5.060592395230560341e-71,1.841589436886780107e-72,6.605950615307930248e-74,2.336240354828889928e-75,8.147522574080980633e-77,2.802484761216629766e-78,9.509377483820990701e-80,3.183694385406879935e-81,1.051860936285279979e-82,3.430110800482530023e-84 +8.118990566648350005e-02,2.038649590327049899e-01,2.559488225798209893e-01,2.142261233149189981e-01,1.344785398345409999e-01,6.753416398034839396e-02,2.826264640524410107e-02,1.013807109615929951e-02,3.182041892589550051e-03,8.877770850232339717e-04,2.229176614786369955e-04,5.088530016805790175e-05,1.064759790535810080e-05,2.056595292001469815e-06,3.688598192005929801e-07,6.174625717556630074e-08,9.690165672526020780e-09,1.431274152236029917e-09,1.996599098365659890e-10,2.638625876428110119e-11,3.312747759619069994e-12,3.961043589608649791e-13,4.520926935511439786e-14,4.935602774818350051e-15,5.163801097101870000e-16,5.186448194375870065e-17,5.008840976890909780e-18,4.658155980666439870e-19,4.177308436713959746e-20,3.616921579389179838e-21,3.027320385679749904e-22,2.452094702116890103e-23,1.924100746760600180e-24,1.464044966245399959e-25,1.081224918496190041e-26,7.756906368555340416e-28,5.410365385754000081e-29,3.671685033976540261e-30,2.426176378792029910e-31,1.562062154782019909e-32,9.805705973453359381e-34,6.005311747583009938e-35,3.590267555429679690e-36,2.096519500694529919e-37,1.196428575840440114e-38,6.675976680079130067e-40,3.644160754733979779e-41,1.946884628800419970e-42,1.018449563386959969e-43,5.218960306134329739e-45,2.620924658723030084e-46,1.290401645599650074e-47,6.231062566223719704e-49,2.952070941754059896e-50,1.372693500964289936e-51,6.266880817965340241e-53,2.809984704400430286e-54,1.237854636494539965e-55,5.358980806317969645e-57,2.280713521763420130e-58,9.544650591368130054e-60,3.928897935451919947e-61,1.591181075226090022e-62,6.341903112131939561e-64,2.488170726726440089e-65,9.611858463788089710e-67,3.656823330032089826e-68,1.370470601576910125e-69,5.060592395230560341e-71,1.841589436886780107e-72,6.605950615307930248e-74,2.336240354828889928e-75,8.147522574080980633e-77,2.802484761216629766e-78,9.509377483820990701e-80,3.183694385406879935e-81,1.051860936285279979e-82,3.430110800482530023e-84 +8.118990566648350005e-02,2.038649590327049899e-01,2.559488225798209893e-01,2.142261233149189981e-01,1.344785398345409999e-01,6.753416398034839396e-02,2.826264640524410107e-02,1.013807109615929951e-02,3.182041892589550051e-03,8.877770850232339717e-04,2.229176614786369955e-04,5.088530016805790175e-05,1.064759790535810080e-05,2.056595292001469815e-06,3.688598192005929801e-07,6.174625717556630074e-08,9.690165672526020780e-09,1.431274152236029917e-09,1.996599098365659890e-10,2.638625876428110119e-11,3.312747759619069994e-12,3.961043589608649791e-13,4.520926935511439786e-14,4.935602774818350051e-15,5.163801097101870000e-16,5.186448194375870065e-17,5.008840976890909780e-18,4.658155980666439870e-19,4.177308436713959746e-20,3.616921579389179838e-21,3.027320385679749904e-22,2.452094702116890103e-23,1.924100746760600180e-24,1.464044966245399959e-25,1.081224918496190041e-26,7.756906368555340416e-28,5.410365385754000081e-29,3.671685033976540261e-30,2.426176378792029910e-31,1.562062154782019909e-32,9.805705973453359381e-34,6.005311747583009938e-35,3.590267555429679690e-36,2.096519500694529919e-37,1.196428575840440114e-38,6.675976680079130067e-40,3.644160754733979779e-41,1.946884628800419970e-42,1.018449563386959969e-43,5.218960306134329739e-45,2.620924658723030084e-46,1.290401645599650074e-47,6.231062566223719704e-49,2.952070941754059896e-50,1.372693500964289936e-51,6.266880817965340241e-53,2.809984704400430286e-54,1.237854636494539965e-55,5.358980806317969645e-57,2.280713521763420130e-58,9.544650591368130054e-60,3.928897935451919947e-61,1.591181075226090022e-62,6.341903112131939561e-64,2.488170726726440089e-65,9.611858463788089710e-67,3.656823330032089826e-68,1.370470601576910125e-69,5.060592395230560341e-71,1.841589436886780107e-72,6.605950615307930248e-74,2.336240354828889928e-75,8.147522574080980633e-77,2.802484761216629766e-78,9.509377483820990701e-80,3.183694385406879935e-81,1.051860936285279979e-82,3.430110800482530023e-84 +8.379031744168380369e-02,2.077528821676430104e-01,2.575551768198139913e-01,2.128640155379669940e-01,1.319457727575999995e-01,6.543026788102700164e-02,2.703838014606119861e-02,9.577140339289870116e-03,2.968240497770269909e-03,8.177297504938440490e-04,2.027510071406040098e-04,4.570077413795890238e-05,9.442685657028509634e-06,1.800965535203219948e-06,3.189558616990250168e-07,5.272208179929220155e-08,8.170070228657619958e-09,1.191598890111820052e-09,1.641386309215599936e-10,2.141955418576350105e-11,2.655422638740709846e-12,3.135216820678259815e-13,3.533443256732679778e-14,3.809109935659109947e-15,3.935188017484579855e-16,3.902821602617689926e-17,3.721847497448600064e-18,3.417810908236739783e-19,3.026517726331670134e-20,2.587607765203720068e-21,2.138604187031469818e-22,1.710495518464319969e-23,1.325333525794619979e-24,9.957824455721199703e-26,7.261707817238370376e-27,5.144272289458259657e-28,3.543028688958180279e-29,2.374248468976859858e-30,1.549158276945170062e-31,9.848824676541599504e-33,6.104887100885410293e-34,3.691875116075040039e-35,2.179470189583640032e-36,1.256711818510240074e-37,7.081679122611000192e-39,3.901907346362489676e-40,2.103160141701780022e-41,1.109501021423509921e-42,5.731122491398079942e-44,2.899992217690780004e-45,1.438070077508169916e-46,6.991383020801489966e-48,3.333596055507870012e-49,1.559517762776100056e-50,7.160606157101919305e-52,3.228050496929589851e-53,1.429241159437210023e-54,6.217043135469849725e-56,2.657719291379690094e-57,1.116889784888329966e-58,4.615431292436830269e-60,1.876012280410359839e-61,7.502348068157760110e-63,2.952635802013810101e-64,1.143887012748099918e-65,4.363379574310999768e-67,1.639201264776670044e-68,6.066115841001130216e-70,2.211846624669259971e-71,7.948023445334989658e-73,2.815232848445230102e-74,9.831260284055620294e-76,3.385555358957499838e-77,1.149900548613980005e-78,3.852847177798599975e-80,1.273719335246129910e-81,4.155405123946290228e-83,1.338060860950400074e-84 +8.379031744168380369e-02,2.077528821676430104e-01,2.575551768198139913e-01,2.128640155379669940e-01,1.319457727575999995e-01,6.543026788102700164e-02,2.703838014606119861e-02,9.577140339289870116e-03,2.968240497770269909e-03,8.177297504938440490e-04,2.027510071406040098e-04,4.570077413795890238e-05,9.442685657028509634e-06,1.800965535203219948e-06,3.189558616990250168e-07,5.272208179929220155e-08,8.170070228657619958e-09,1.191598890111820052e-09,1.641386309215599936e-10,2.141955418576350105e-11,2.655422638740709846e-12,3.135216820678259815e-13,3.533443256732679778e-14,3.809109935659109947e-15,3.935188017484579855e-16,3.902821602617689926e-17,3.721847497448600064e-18,3.417810908236739783e-19,3.026517726331670134e-20,2.587607765203720068e-21,2.138604187031469818e-22,1.710495518464319969e-23,1.325333525794619979e-24,9.957824455721199703e-26,7.261707817238370376e-27,5.144272289458259657e-28,3.543028688958180279e-29,2.374248468976859858e-30,1.549158276945170062e-31,9.848824676541599504e-33,6.104887100885410293e-34,3.691875116075040039e-35,2.179470189583640032e-36,1.256711818510240074e-37,7.081679122611000192e-39,3.901907346362489676e-40,2.103160141701780022e-41,1.109501021423509921e-42,5.731122491398079942e-44,2.899992217690780004e-45,1.438070077508169916e-46,6.991383020801489966e-48,3.333596055507870012e-49,1.559517762776100056e-50,7.160606157101919305e-52,3.228050496929589851e-53,1.429241159437210023e-54,6.217043135469849725e-56,2.657719291379690094e-57,1.116889784888329966e-58,4.615431292436830269e-60,1.876012280410359839e-61,7.502348068157760110e-63,2.952635802013810101e-64,1.143887012748099918e-65,4.363379574310999768e-67,1.639201264776670044e-68,6.066115841001130216e-70,2.211846624669259971e-71,7.948023445334989658e-73,2.815232848445230102e-74,9.831260284055620294e-76,3.385555358957499838e-77,1.149900548613980005e-78,3.852847177798599975e-80,1.273719335246129910e-81,4.155405123946290228e-83,1.338060860950400074e-84 +8.379031744168380369e-02,2.077528821676430104e-01,2.575551768198139913e-01,2.128640155379669940e-01,1.319457727575999995e-01,6.543026788102700164e-02,2.703838014606119861e-02,9.577140339289870116e-03,2.968240497770269909e-03,8.177297504938440490e-04,2.027510071406040098e-04,4.570077413795890238e-05,9.442685657028509634e-06,1.800965535203219948e-06,3.189558616990250168e-07,5.272208179929220155e-08,8.170070228657619958e-09,1.191598890111820052e-09,1.641386309215599936e-10,2.141955418576350105e-11,2.655422638740709846e-12,3.135216820678259815e-13,3.533443256732679778e-14,3.809109935659109947e-15,3.935188017484579855e-16,3.902821602617689926e-17,3.721847497448600064e-18,3.417810908236739783e-19,3.026517726331670134e-20,2.587607765203720068e-21,2.138604187031469818e-22,1.710495518464319969e-23,1.325333525794619979e-24,9.957824455721199703e-26,7.261707817238370376e-27,5.144272289458259657e-28,3.543028688958180279e-29,2.374248468976859858e-30,1.549158276945170062e-31,9.848824676541599504e-33,6.104887100885410293e-34,3.691875116075040039e-35,2.179470189583640032e-36,1.256711818510240074e-37,7.081679122611000192e-39,3.901907346362489676e-40,2.103160141701780022e-41,1.109501021423509921e-42,5.731122491398079942e-44,2.899992217690780004e-45,1.438070077508169916e-46,6.991383020801489966e-48,3.333596055507870012e-49,1.559517762776100056e-50,7.160606157101919305e-52,3.228050496929589851e-53,1.429241159437210023e-54,6.217043135469849725e-56,2.657719291379690094e-57,1.116889784888329966e-58,4.615431292436830269e-60,1.876012280410359839e-61,7.502348068157760110e-63,2.952635802013810101e-64,1.143887012748099918e-65,4.363379574310999768e-67,1.639201264776670044e-68,6.066115841001130216e-70,2.211846624669259971e-71,7.948023445334989658e-73,2.815232848445230102e-74,9.831260284055620294e-76,3.385555358957499838e-77,1.149900548613980005e-78,3.852847177798599975e-80,1.273719335246129910e-81,4.155405123946290228e-83,1.338060860950400074e-84 +8.379031744168380369e-02,2.077528821676430104e-01,2.575551768198139913e-01,2.128640155379669940e-01,1.319457727575999995e-01,6.543026788102700164e-02,2.703838014606119861e-02,9.577140339289870116e-03,2.968240497770269909e-03,8.177297504938440490e-04,2.027510071406040098e-04,4.570077413795890238e-05,9.442685657028509634e-06,1.800965535203219948e-06,3.189558616990250168e-07,5.272208179929220155e-08,8.170070228657619958e-09,1.191598890111820052e-09,1.641386309215599936e-10,2.141955418576350105e-11,2.655422638740709846e-12,3.135216820678259815e-13,3.533443256732679778e-14,3.809109935659109947e-15,3.935188017484579855e-16,3.902821602617689926e-17,3.721847497448600064e-18,3.417810908236739783e-19,3.026517726331670134e-20,2.587607765203720068e-21,2.138604187031469818e-22,1.710495518464319969e-23,1.325333525794619979e-24,9.957824455721199703e-26,7.261707817238370376e-27,5.144272289458259657e-28,3.543028688958180279e-29,2.374248468976859858e-30,1.549158276945170062e-31,9.848824676541599504e-33,6.104887100885410293e-34,3.691875116075040039e-35,2.179470189583640032e-36,1.256711818510240074e-37,7.081679122611000192e-39,3.901907346362489676e-40,2.103160141701780022e-41,1.109501021423509921e-42,5.731122491398079942e-44,2.899992217690780004e-45,1.438070077508169916e-46,6.991383020801489966e-48,3.333596055507870012e-49,1.559517762776100056e-50,7.160606157101919305e-52,3.228050496929589851e-53,1.429241159437210023e-54,6.217043135469849725e-56,2.657719291379690094e-57,1.116889784888329966e-58,4.615431292436830269e-60,1.876012280410359839e-61,7.502348068157760110e-63,2.952635802013810101e-64,1.143887012748099918e-65,4.363379574310999768e-67,1.639201264776670044e-68,6.066115841001130216e-70,2.211846624669259971e-71,7.948023445334989658e-73,2.815232848445230102e-74,9.831260284055620294e-76,3.385555358957499838e-77,1.149900548613980005e-78,3.852847177798599975e-80,1.273719335246129910e-81,4.155405123946290228e-83,1.338060860950400074e-84 +8.379031744168380369e-02,2.077528821676430104e-01,2.575551768198139913e-01,2.128640155379669940e-01,1.319457727575999995e-01,6.543026788102700164e-02,2.703838014606119861e-02,9.577140339289870116e-03,2.968240497770269909e-03,8.177297504938440490e-04,2.027510071406040098e-04,4.570077413795890238e-05,9.442685657028509634e-06,1.800965535203219948e-06,3.189558616990250168e-07,5.272208179929220155e-08,8.170070228657619958e-09,1.191598890111820052e-09,1.641386309215599936e-10,2.141955418576350105e-11,2.655422638740709846e-12,3.135216820678259815e-13,3.533443256732679778e-14,3.809109935659109947e-15,3.935188017484579855e-16,3.902821602617689926e-17,3.721847497448600064e-18,3.417810908236739783e-19,3.026517726331670134e-20,2.587607765203720068e-21,2.138604187031469818e-22,1.710495518464319969e-23,1.325333525794619979e-24,9.957824455721199703e-26,7.261707817238370376e-27,5.144272289458259657e-28,3.543028688958180279e-29,2.374248468976859858e-30,1.549158276945170062e-31,9.848824676541599504e-33,6.104887100885410293e-34,3.691875116075040039e-35,2.179470189583640032e-36,1.256711818510240074e-37,7.081679122611000192e-39,3.901907346362489676e-40,2.103160141701780022e-41,1.109501021423509921e-42,5.731122491398079942e-44,2.899992217690780004e-45,1.438070077508169916e-46,6.991383020801489966e-48,3.333596055507870012e-49,1.559517762776100056e-50,7.160606157101919305e-52,3.228050496929589851e-53,1.429241159437210023e-54,6.217043135469849725e-56,2.657719291379690094e-57,1.116889784888329966e-58,4.615431292436830269e-60,1.876012280410359839e-61,7.502348068157760110e-63,2.952635802013810101e-64,1.143887012748099918e-65,4.363379574310999768e-67,1.639201264776670044e-68,6.066115841001130216e-70,2.211846624669259971e-71,7.948023445334989658e-73,2.815232848445230102e-74,9.831260284055620294e-76,3.385555358957499838e-77,1.149900548613980005e-78,3.852847177798599975e-80,1.273719335246129910e-81,4.155405123946290228e-83,1.338060860950400074e-84 +4.633133393613070306e-02,1.423269291512619938e-01,2.186096647848879970e-01,2.238516904816630071e-01,1.719145607565180089e-01,1.056221327130079934e-01,5.407741918306949863e-02,2.373177334051530113e-02,9.112813445878680321e-03,3.110442985082190019e-03,9.555084232565150010e-04,2.668419524143549851e-04,6.831013418157699747e-05,1.614187801379509898e-05,3.541916349750319823e-06,7.253695422994540154e-07,1.392680863636159921e-07,2.516604458129289965e-08,4.294916564189589847e-09,6.944059049752949496e-10,1.066585522617169999e-10,1.560230144941920157e-11,2.178603809022959832e-12,2.909797037919440233e-13,3.724463569221349723e-14,4.576526661406039692e-15,5.407231004621589659e-16,6.152100682894599510e-17,6.749594432392579973e-18,7.149768082871659549e-19,7.321211866261859612e-20,7.254935504529200023e-21,6.964594771957720289e-22,6.483271179651690213e-23,5.857705659634569634e-24,5.141286145305669725e-25,4.387140568590949850e-26,3.642437434156559812e-27,2.944562513589399785e-28,2.319361515331009987e-29,1.781232990850980104e-30,1.334593939617320053e-31,9.761400523880610666e-33,6.973582644375760219e-34,4.868728424721940283e-35,3.323650212941749674e-36,2.219574643320629935e-37,1.450721914962750011e-38,9.284429207497320803e-40,5.820648905559470438e-41,3.576133100497220175e-42,2.154049966641890075e-43,1.272520256830739909e-44,7.375663755314640066e-46,4.195846819480219920e-47,2.343522945670750136e-48,1.285563276805910075e-49,6.928366882813799753e-51,3.669569846110620155e-52,1.910624848485779976e-53,9.782197933258529602e-55,4.926277655373190280e-56,2.440840896289020120e-57,1.190176022657300086e-58,5.712727356386279673e-60,2.699867280826569842e-61,1.256639639763869893e-62,5.761667967961699874e-64,2.602864675072639882e-65,1.158816775261229991e-66,5.085445546243179716e-68,2.200305247381469956e-69,9.387775880636879883e-71,3.950500559502410100e-72,1.639957837755040121e-73,6.717129083224589933e-75,2.715078413142810050e-76,1.083188215505070045e-77 +4.633133393613070306e-02,1.423269291512619938e-01,2.186096647848879970e-01,2.238516904816630071e-01,1.719145607565180089e-01,1.056221327130079934e-01,5.407741918306949863e-02,2.373177334051530113e-02,9.112813445878680321e-03,3.110442985082190019e-03,9.555084232565150010e-04,2.668419524143549851e-04,6.831013418157699747e-05,1.614187801379509898e-05,3.541916349750319823e-06,7.253695422994540154e-07,1.392680863636159921e-07,2.516604458129289965e-08,4.294916564189589847e-09,6.944059049752949496e-10,1.066585522617169999e-10,1.560230144941920157e-11,2.178603809022959832e-12,2.909797037919440233e-13,3.724463569221349723e-14,4.576526661406039692e-15,5.407231004621589659e-16,6.152100682894599510e-17,6.749594432392579973e-18,7.149768082871659549e-19,7.321211866261859612e-20,7.254935504529200023e-21,6.964594771957720289e-22,6.483271179651690213e-23,5.857705659634569634e-24,5.141286145305669725e-25,4.387140568590949850e-26,3.642437434156559812e-27,2.944562513589399785e-28,2.319361515331009987e-29,1.781232990850980104e-30,1.334593939617320053e-31,9.761400523880610666e-33,6.973582644375760219e-34,4.868728424721940283e-35,3.323650212941749674e-36,2.219574643320629935e-37,1.450721914962750011e-38,9.284429207497320803e-40,5.820648905559470438e-41,3.576133100497220175e-42,2.154049966641890075e-43,1.272520256830739909e-44,7.375663755314640066e-46,4.195846819480219920e-47,2.343522945670750136e-48,1.285563276805910075e-49,6.928366882813799753e-51,3.669569846110620155e-52,1.910624848485779976e-53,9.782197933258529602e-55,4.926277655373190280e-56,2.440840896289020120e-57,1.190176022657300086e-58,5.712727356386279673e-60,2.699867280826569842e-61,1.256639639763869893e-62,5.761667967961699874e-64,2.602864675072639882e-65,1.158816775261229991e-66,5.085445546243179716e-68,2.200305247381469956e-69,9.387775880636879883e-71,3.950500559502410100e-72,1.639957837755040121e-73,6.717129083224589933e-75,2.715078413142810050e-76,1.083188215505070045e-77 +4.633133393613070306e-02,1.423269291512619938e-01,2.186096647848879970e-01,2.238516904816630071e-01,1.719145607565180089e-01,1.056221327130079934e-01,5.407741918306949863e-02,2.373177334051530113e-02,9.112813445878680321e-03,3.110442985082190019e-03,9.555084232565150010e-04,2.668419524143549851e-04,6.831013418157699747e-05,1.614187801379509898e-05,3.541916349750319823e-06,7.253695422994540154e-07,1.392680863636159921e-07,2.516604458129289965e-08,4.294916564189589847e-09,6.944059049752949496e-10,1.066585522617169999e-10,1.560230144941920157e-11,2.178603809022959832e-12,2.909797037919440233e-13,3.724463569221349723e-14,4.576526661406039692e-15,5.407231004621589659e-16,6.152100682894599510e-17,6.749594432392579973e-18,7.149768082871659549e-19,7.321211866261859612e-20,7.254935504529200023e-21,6.964594771957720289e-22,6.483271179651690213e-23,5.857705659634569634e-24,5.141286145305669725e-25,4.387140568590949850e-26,3.642437434156559812e-27,2.944562513589399785e-28,2.319361515331009987e-29,1.781232990850980104e-30,1.334593939617320053e-31,9.761400523880610666e-33,6.973582644375760219e-34,4.868728424721940283e-35,3.323650212941749674e-36,2.219574643320629935e-37,1.450721914962750011e-38,9.284429207497320803e-40,5.820648905559470438e-41,3.576133100497220175e-42,2.154049966641890075e-43,1.272520256830739909e-44,7.375663755314640066e-46,4.195846819480219920e-47,2.343522945670750136e-48,1.285563276805910075e-49,6.928366882813799753e-51,3.669569846110620155e-52,1.910624848485779976e-53,9.782197933258529602e-55,4.926277655373190280e-56,2.440840896289020120e-57,1.190176022657300086e-58,5.712727356386279673e-60,2.699867280826569842e-61,1.256639639763869893e-62,5.761667967961699874e-64,2.602864675072639882e-65,1.158816775261229991e-66,5.085445546243179716e-68,2.200305247381469956e-69,9.387775880636879883e-71,3.950500559502410100e-72,1.639957837755040121e-73,6.717129083224589933e-75,2.715078413142810050e-76,1.083188215505070045e-77 +4.633133393613070306e-02,1.423269291512619938e-01,2.186096647848879970e-01,2.238516904816630071e-01,1.719145607565180089e-01,1.056221327130079934e-01,5.407741918306949863e-02,2.373177334051530113e-02,9.112813445878680321e-03,3.110442985082190019e-03,9.555084232565150010e-04,2.668419524143549851e-04,6.831013418157699747e-05,1.614187801379509898e-05,3.541916349750319823e-06,7.253695422994540154e-07,1.392680863636159921e-07,2.516604458129289965e-08,4.294916564189589847e-09,6.944059049752949496e-10,1.066585522617169999e-10,1.560230144941920157e-11,2.178603809022959832e-12,2.909797037919440233e-13,3.724463569221349723e-14,4.576526661406039692e-15,5.407231004621589659e-16,6.152100682894599510e-17,6.749594432392579973e-18,7.149768082871659549e-19,7.321211866261859612e-20,7.254935504529200023e-21,6.964594771957720289e-22,6.483271179651690213e-23,5.857705659634569634e-24,5.141286145305669725e-25,4.387140568590949850e-26,3.642437434156559812e-27,2.944562513589399785e-28,2.319361515331009987e-29,1.781232990850980104e-30,1.334593939617320053e-31,9.761400523880610666e-33,6.973582644375760219e-34,4.868728424721940283e-35,3.323650212941749674e-36,2.219574643320629935e-37,1.450721914962750011e-38,9.284429207497320803e-40,5.820648905559470438e-41,3.576133100497220175e-42,2.154049966641890075e-43,1.272520256830739909e-44,7.375663755314640066e-46,4.195846819480219920e-47,2.343522945670750136e-48,1.285563276805910075e-49,6.928366882813799753e-51,3.669569846110620155e-52,1.910624848485779976e-53,9.782197933258529602e-55,4.926277655373190280e-56,2.440840896289020120e-57,1.190176022657300086e-58,5.712727356386279673e-60,2.699867280826569842e-61,1.256639639763869893e-62,5.761667967961699874e-64,2.602864675072639882e-65,1.158816775261229991e-66,5.085445546243179716e-68,2.200305247381469956e-69,9.387775880636879883e-71,3.950500559502410100e-72,1.639957837755040121e-73,6.717129083224589933e-75,2.715078413142810050e-76,1.083188215505070045e-77 +4.633133393613070306e-02,1.423269291512619938e-01,2.186096647848879970e-01,2.238516904816630071e-01,1.719145607565180089e-01,1.056221327130079934e-01,5.407741918306949863e-02,2.373177334051530113e-02,9.112813445878680321e-03,3.110442985082190019e-03,9.555084232565150010e-04,2.668419524143549851e-04,6.831013418157699747e-05,1.614187801379509898e-05,3.541916349750319823e-06,7.253695422994540154e-07,1.392680863636159921e-07,2.516604458129289965e-08,4.294916564189589847e-09,6.944059049752949496e-10,1.066585522617169999e-10,1.560230144941920157e-11,2.178603809022959832e-12,2.909797037919440233e-13,3.724463569221349723e-14,4.576526661406039692e-15,5.407231004621589659e-16,6.152100682894599510e-17,6.749594432392579973e-18,7.149768082871659549e-19,7.321211866261859612e-20,7.254935504529200023e-21,6.964594771957720289e-22,6.483271179651690213e-23,5.857705659634569634e-24,5.141286145305669725e-25,4.387140568590949850e-26,3.642437434156559812e-27,2.944562513589399785e-28,2.319361515331009987e-29,1.781232990850980104e-30,1.334593939617320053e-31,9.761400523880610666e-33,6.973582644375760219e-34,4.868728424721940283e-35,3.323650212941749674e-36,2.219574643320629935e-37,1.450721914962750011e-38,9.284429207497320803e-40,5.820648905559470438e-41,3.576133100497220175e-42,2.154049966641890075e-43,1.272520256830739909e-44,7.375663755314640066e-46,4.195846819480219920e-47,2.343522945670750136e-48,1.285563276805910075e-49,6.928366882813799753e-51,3.669569846110620155e-52,1.910624848485779976e-53,9.782197933258529602e-55,4.926277655373190280e-56,2.440840896289020120e-57,1.190176022657300086e-58,5.712727356386279673e-60,2.699867280826569842e-61,1.256639639763869893e-62,5.761667967961699874e-64,2.602864675072639882e-65,1.158816775261229991e-66,5.085445546243179716e-68,2.200305247381469956e-69,9.387775880636879883e-71,3.950500559502410100e-72,1.639957837755040121e-73,6.717129083224589933e-75,2.715078413142810050e-76,1.083188215505070045e-77 +1.960191247921719976e-02,7.707723169724829682e-02,1.515387759334730078e-01,1.986232951525450097e-01,1.952530621332899952e-01,1.535520120865860039e-01,1.006310313319749988e-01,5.652773003750349856e-02,2.778428476073219883e-02,1.213904089044499923e-02,4.773226430263940133e-03,1.706267088613529952e-03,5.591050697472000480e-04,1.691132907005950031e-04,4.749822353971799795e-05,1.245127343181479951e-05,3.060000166588670003e-06,7.077831040986429547e-07,1.546163256713090014e-07,3.199848449422579987e-08,6.291107069111699611e-09,1.177973292905390002e-09,2.105428152545269969e-10,3.599484038981429742e-11,5.897346869369469945e-12,9.275649435357189876e-13,1.402809314631710086e-13,2.042972586656660115e-14,2.869010714785690080e-15,3.890109576348379825e-16,5.098803113587280033e-17,6.467466843107960074e-18,7.947158869208430160e-19,9.469468799649109731e-20,1.095151904624369943e-20,1.230365035422090026e-21,1.343875827988839892e-22,1.428187016928709856e-23,1.477845884567170039e-24,1.490020356999499952e-25,1.464737744490890096e-26,1.404765001418149972e-27,1.315170475005459955e-28,1.202655543335640045e-29,1.074771751619359958e-30,9.391422779571949803e-32,8.027886479414929959e-33,6.716314541866880351e-34,5.501960296007829776e-35,4.415186309447890198e-36,3.472215667942080157e-37,2.677097439829789752e-38,2.024363496562730096e-39,1.501897485762999929e-40,1.093639513003939968e-41,7.818783102408770658e-43,5.490081620259560330e-44,3.787316568613119996e-45,2.567623114179589806e-46,1.711224255153600058e-47,1.121458841837250010e-48,7.229048970693259894e-50,4.584765628680060024e-51,2.861569198915899836e-52,1.758133871474929894e-53,1.063570411306560026e-54,6.336507795961580084e-56,3.718800093541709778e-57,2.150411544473469975e-58,1.225462862461189920e-59,6.883824297861820661e-61,3.812405527669159892e-62,2.082064870027639897e-63,1.121499434106799993e-64,5.959296602876059937e-66,3.124362383854180140e-67,1.616499112561910091e-68,8.254911236467590513e-70 +1.960191247921719976e-02,7.707723169724829682e-02,1.515387759334730078e-01,1.986232951525450097e-01,1.952530621332899952e-01,1.535520120865860039e-01,1.006310313319749988e-01,5.652773003750349856e-02,2.778428476073219883e-02,1.213904089044499923e-02,4.773226430263940133e-03,1.706267088613529952e-03,5.591050697472000480e-04,1.691132907005950031e-04,4.749822353971799795e-05,1.245127343181479951e-05,3.060000166588670003e-06,7.077831040986429547e-07,1.546163256713090014e-07,3.199848449422579987e-08,6.291107069111699611e-09,1.177973292905390002e-09,2.105428152545269969e-10,3.599484038981429742e-11,5.897346869369469945e-12,9.275649435357189876e-13,1.402809314631710086e-13,2.042972586656660115e-14,2.869010714785690080e-15,3.890109576348379825e-16,5.098803113587280033e-17,6.467466843107960074e-18,7.947158869208430160e-19,9.469468799649109731e-20,1.095151904624369943e-20,1.230365035422090026e-21,1.343875827988839892e-22,1.428187016928709856e-23,1.477845884567170039e-24,1.490020356999499952e-25,1.464737744490890096e-26,1.404765001418149972e-27,1.315170475005459955e-28,1.202655543335640045e-29,1.074771751619359958e-30,9.391422779571949803e-32,8.027886479414929959e-33,6.716314541866880351e-34,5.501960296007829776e-35,4.415186309447890198e-36,3.472215667942080157e-37,2.677097439829789752e-38,2.024363496562730096e-39,1.501897485762999929e-40,1.093639513003939968e-41,7.818783102408770658e-43,5.490081620259560330e-44,3.787316568613119996e-45,2.567623114179589806e-46,1.711224255153600058e-47,1.121458841837250010e-48,7.229048970693259894e-50,4.584765628680060024e-51,2.861569198915899836e-52,1.758133871474929894e-53,1.063570411306560026e-54,6.336507795961580084e-56,3.718800093541709778e-57,2.150411544473469975e-58,1.225462862461189920e-59,6.883824297861820661e-61,3.812405527669159892e-62,2.082064870027639897e-63,1.121499434106799993e-64,5.959296602876059937e-66,3.124362383854180140e-67,1.616499112561910091e-68,8.254911236467590513e-70 +1.960191247921719976e-02,7.707723169724829682e-02,1.515387759334730078e-01,1.986232951525450097e-01,1.952530621332899952e-01,1.535520120865860039e-01,1.006310313319749988e-01,5.652773003750349856e-02,2.778428476073219883e-02,1.213904089044499923e-02,4.773226430263940133e-03,1.706267088613529952e-03,5.591050697472000480e-04,1.691132907005950031e-04,4.749822353971799795e-05,1.245127343181479951e-05,3.060000166588670003e-06,7.077831040986429547e-07,1.546163256713090014e-07,3.199848449422579987e-08,6.291107069111699611e-09,1.177973292905390002e-09,2.105428152545269969e-10,3.599484038981429742e-11,5.897346869369469945e-12,9.275649435357189876e-13,1.402809314631710086e-13,2.042972586656660115e-14,2.869010714785690080e-15,3.890109576348379825e-16,5.098803113587280033e-17,6.467466843107960074e-18,7.947158869208430160e-19,9.469468799649109731e-20,1.095151904624369943e-20,1.230365035422090026e-21,1.343875827988839892e-22,1.428187016928709856e-23,1.477845884567170039e-24,1.490020356999499952e-25,1.464737744490890096e-26,1.404765001418149972e-27,1.315170475005459955e-28,1.202655543335640045e-29,1.074771751619359958e-30,9.391422779571949803e-32,8.027886479414929959e-33,6.716314541866880351e-34,5.501960296007829776e-35,4.415186309447890198e-36,3.472215667942080157e-37,2.677097439829789752e-38,2.024363496562730096e-39,1.501897485762999929e-40,1.093639513003939968e-41,7.818783102408770658e-43,5.490081620259560330e-44,3.787316568613119996e-45,2.567623114179589806e-46,1.711224255153600058e-47,1.121458841837250010e-48,7.229048970693259894e-50,4.584765628680060024e-51,2.861569198915899836e-52,1.758133871474929894e-53,1.063570411306560026e-54,6.336507795961580084e-56,3.718800093541709778e-57,2.150411544473469975e-58,1.225462862461189920e-59,6.883824297861820661e-61,3.812405527669159892e-62,2.082064870027639897e-63,1.121499434106799993e-64,5.959296602876059937e-66,3.124362383854180140e-67,1.616499112561910091e-68,8.254911236467590513e-70 +1.960191247921719976e-02,7.707723169724829682e-02,1.515387759334730078e-01,1.986232951525450097e-01,1.952530621332899952e-01,1.535520120865860039e-01,1.006310313319749988e-01,5.652773003750349856e-02,2.778428476073219883e-02,1.213904089044499923e-02,4.773226430263940133e-03,1.706267088613529952e-03,5.591050697472000480e-04,1.691132907005950031e-04,4.749822353971799795e-05,1.245127343181479951e-05,3.060000166588670003e-06,7.077831040986429547e-07,1.546163256713090014e-07,3.199848449422579987e-08,6.291107069111699611e-09,1.177973292905390002e-09,2.105428152545269969e-10,3.599484038981429742e-11,5.897346869369469945e-12,9.275649435357189876e-13,1.402809314631710086e-13,2.042972586656660115e-14,2.869010714785690080e-15,3.890109576348379825e-16,5.098803113587280033e-17,6.467466843107960074e-18,7.947158869208430160e-19,9.469468799649109731e-20,1.095151904624369943e-20,1.230365035422090026e-21,1.343875827988839892e-22,1.428187016928709856e-23,1.477845884567170039e-24,1.490020356999499952e-25,1.464737744490890096e-26,1.404765001418149972e-27,1.315170475005459955e-28,1.202655543335640045e-29,1.074771751619359958e-30,9.391422779571949803e-32,8.027886479414929959e-33,6.716314541866880351e-34,5.501960296007829776e-35,4.415186309447890198e-36,3.472215667942080157e-37,2.677097439829789752e-38,2.024363496562730096e-39,1.501897485762999929e-40,1.093639513003939968e-41,7.818783102408770658e-43,5.490081620259560330e-44,3.787316568613119996e-45,2.567623114179589806e-46,1.711224255153600058e-47,1.121458841837250010e-48,7.229048970693259894e-50,4.584765628680060024e-51,2.861569198915899836e-52,1.758133871474929894e-53,1.063570411306560026e-54,6.336507795961580084e-56,3.718800093541709778e-57,2.150411544473469975e-58,1.225462862461189920e-59,6.883824297861820661e-61,3.812405527669159892e-62,2.082064870027639897e-63,1.121499434106799993e-64,5.959296602876059937e-66,3.124362383854180140e-67,1.616499112561910091e-68,8.254911236467590513e-70 +1.960191247921719976e-02,7.707723169724829682e-02,1.515387759334730078e-01,1.986232951525450097e-01,1.952530621332899952e-01,1.535520120865860039e-01,1.006310313319749988e-01,5.652773003750349856e-02,2.778428476073219883e-02,1.213904089044499923e-02,4.773226430263940133e-03,1.706267088613529952e-03,5.591050697472000480e-04,1.691132907005950031e-04,4.749822353971799795e-05,1.245127343181479951e-05,3.060000166588670003e-06,7.077831040986429547e-07,1.546163256713090014e-07,3.199848449422579987e-08,6.291107069111699611e-09,1.177973292905390002e-09,2.105428152545269969e-10,3.599484038981429742e-11,5.897346869369469945e-12,9.275649435357189876e-13,1.402809314631710086e-13,2.042972586656660115e-14,2.869010714785690080e-15,3.890109576348379825e-16,5.098803113587280033e-17,6.467466843107960074e-18,7.947158869208430160e-19,9.469468799649109731e-20,1.095151904624369943e-20,1.230365035422090026e-21,1.343875827988839892e-22,1.428187016928709856e-23,1.477845884567170039e-24,1.490020356999499952e-25,1.464737744490890096e-26,1.404765001418149972e-27,1.315170475005459955e-28,1.202655543335640045e-29,1.074771751619359958e-30,9.391422779571949803e-32,8.027886479414929959e-33,6.716314541866880351e-34,5.501960296007829776e-35,4.415186309447890198e-36,3.472215667942080157e-37,2.677097439829789752e-38,2.024363496562730096e-39,1.501897485762999929e-40,1.093639513003939968e-41,7.818783102408770658e-43,5.490081620259560330e-44,3.787316568613119996e-45,2.567623114179589806e-46,1.711224255153600058e-47,1.121458841837250010e-48,7.229048970693259894e-50,4.584765628680060024e-51,2.861569198915899836e-52,1.758133871474929894e-53,1.063570411306560026e-54,6.336507795961580084e-56,3.718800093541709778e-57,2.150411544473469975e-58,1.225462862461189920e-59,6.883824297861820661e-61,3.812405527669159892e-62,2.082064870027639897e-63,1.121499434106799993e-64,5.959296602876059937e-66,3.124362383854180140e-67,1.616499112561910091e-68,8.254911236467590513e-70 +3.083132474141640073e-02,1.072690871125669965e-01,1.866065948588060130e-01,2.164153854083279982e-01,1.882394044414910095e-01,1.309854133249579999e-01,7.595460044978180614e-02,3.775186771701460192e-02,1.641840085028289931e-02,6.347032823234140426e-03,2.208274936390389794e-03,6.984621190148159690e-04,2.025088513003540014e-04,5.419797458340410074e-05,1.346906411781849947e-05,3.124126137506229797e-06,6.793459282188820527e-07,1.390351002637480001e-07,2.687412595790230049e-08,4.921110834738690207e-09,8.560823630667229787e-10,1.418334458302809965e-10,2.243046993136679888e-11,3.393070906919759941e-12,4.918855819340400076e-13,6.845520622994079698e-14,9.160423121084469264e-15,1.180413503816439982e-15,1.466758240566319956e-16,1.759717439190710019e-17,2.040817089558740063e-18,2.290470947729340200e-19,2.490331765678369924e-20,2.625582490419460077e-21,2.686761704477249944e-22,2.670813139794699943e-23,2.581210377548669995e-24,2.427191695173029929e-25,2.222300990888940126e-26,1.982534127067739860e-27,1.724420113015719897e-28,1.463327795581630048e-29,1.212201258784709980e-30,9.808185571543309583e-32,7.755653479892950425e-33,5.996368056961259881e-34,4.535371319351259809e-35,3.357355969174630118e-36,2.433540353208119850e-37,1.727924932493439983e-38,1.202367602833669936e-39,8.202561379009530057e-41,5.488182495280260007e-42,3.602757854983250139e-43,2.321259600560630162e-44,1.468396776753920087e-45,9.123002514633019318e-47,5.568591215510530400e-48,3.340409756237189930e-49,1.969836275164859927e-50,1.142250296683420054e-51,6.514991352109629640e-53,3.655986245181260051e-54,2.019046879261299884e-55,1.097611952861240092e-56,5.875135268569759908e-58,3.097107883896979796e-59,1.608288401977360053e-60,8.228817231899880498e-62,4.149260720402880196e-63,2.062315395150100133e-64,1.010599628198940004e-65,4.883475764340500096e-67,2.327494029941739827e-68,1.094307195797930038e-69,5.076453245672360401e-71,2.323962936362599961e-72,1.050076335472080006e-73 +3.083132474141640073e-02,1.072690871125669965e-01,1.866065948588060130e-01,2.164153854083279982e-01,1.882394044414910095e-01,1.309854133249579999e-01,7.595460044978180614e-02,3.775186771701460192e-02,1.641840085028289931e-02,6.347032823234140426e-03,2.208274936390389794e-03,6.984621190148159690e-04,2.025088513003540014e-04,5.419797458340410074e-05,1.346906411781849947e-05,3.124126137506229797e-06,6.793459282188820527e-07,1.390351002637480001e-07,2.687412595790230049e-08,4.921110834738690207e-09,8.560823630667229787e-10,1.418334458302809965e-10,2.243046993136679888e-11,3.393070906919759941e-12,4.918855819340400076e-13,6.845520622994079698e-14,9.160423121084469264e-15,1.180413503816439982e-15,1.466758240566319956e-16,1.759717439190710019e-17,2.040817089558740063e-18,2.290470947729340200e-19,2.490331765678369924e-20,2.625582490419460077e-21,2.686761704477249944e-22,2.670813139794699943e-23,2.581210377548669995e-24,2.427191695173029929e-25,2.222300990888940126e-26,1.982534127067739860e-27,1.724420113015719897e-28,1.463327795581630048e-29,1.212201258784709980e-30,9.808185571543309583e-32,7.755653479892950425e-33,5.996368056961259881e-34,4.535371319351259809e-35,3.357355969174630118e-36,2.433540353208119850e-37,1.727924932493439983e-38,1.202367602833669936e-39,8.202561379009530057e-41,5.488182495280260007e-42,3.602757854983250139e-43,2.321259600560630162e-44,1.468396776753920087e-45,9.123002514633019318e-47,5.568591215510530400e-48,3.340409756237189930e-49,1.969836275164859927e-50,1.142250296683420054e-51,6.514991352109629640e-53,3.655986245181260051e-54,2.019046879261299884e-55,1.097611952861240092e-56,5.875135268569759908e-58,3.097107883896979796e-59,1.608288401977360053e-60,8.228817231899880498e-62,4.149260720402880196e-63,2.062315395150100133e-64,1.010599628198940004e-65,4.883475764340500096e-67,2.327494029941739827e-68,1.094307195797930038e-69,5.076453245672360401e-71,2.323962936362599961e-72,1.050076335472080006e-73 +3.083132474141640073e-02,1.072690871125669965e-01,1.866065948588060130e-01,2.164153854083279982e-01,1.882394044414910095e-01,1.309854133249579999e-01,7.595460044978180614e-02,3.775186771701460192e-02,1.641840085028289931e-02,6.347032823234140426e-03,2.208274936390389794e-03,6.984621190148159690e-04,2.025088513003540014e-04,5.419797458340410074e-05,1.346906411781849947e-05,3.124126137506229797e-06,6.793459282188820527e-07,1.390351002637480001e-07,2.687412595790230049e-08,4.921110834738690207e-09,8.560823630667229787e-10,1.418334458302809965e-10,2.243046993136679888e-11,3.393070906919759941e-12,4.918855819340400076e-13,6.845520622994079698e-14,9.160423121084469264e-15,1.180413503816439982e-15,1.466758240566319956e-16,1.759717439190710019e-17,2.040817089558740063e-18,2.290470947729340200e-19,2.490331765678369924e-20,2.625582490419460077e-21,2.686761704477249944e-22,2.670813139794699943e-23,2.581210377548669995e-24,2.427191695173029929e-25,2.222300990888940126e-26,1.982534127067739860e-27,1.724420113015719897e-28,1.463327795581630048e-29,1.212201258784709980e-30,9.808185571543309583e-32,7.755653479892950425e-33,5.996368056961259881e-34,4.535371319351259809e-35,3.357355969174630118e-36,2.433540353208119850e-37,1.727924932493439983e-38,1.202367602833669936e-39,8.202561379009530057e-41,5.488182495280260007e-42,3.602757854983250139e-43,2.321259600560630162e-44,1.468396776753920087e-45,9.123002514633019318e-47,5.568591215510530400e-48,3.340409756237189930e-49,1.969836275164859927e-50,1.142250296683420054e-51,6.514991352109629640e-53,3.655986245181260051e-54,2.019046879261299884e-55,1.097611952861240092e-56,5.875135268569759908e-58,3.097107883896979796e-59,1.608288401977360053e-60,8.228817231899880498e-62,4.149260720402880196e-63,2.062315395150100133e-64,1.010599628198940004e-65,4.883475764340500096e-67,2.327494029941739827e-68,1.094307195797930038e-69,5.076453245672360401e-71,2.323962936362599961e-72,1.050076335472080006e-73 +3.083132474141640073e-02,1.072690871125669965e-01,1.866065948588060130e-01,2.164153854083279982e-01,1.882394044414910095e-01,1.309854133249579999e-01,7.595460044978180614e-02,3.775186771701460192e-02,1.641840085028289931e-02,6.347032823234140426e-03,2.208274936390389794e-03,6.984621190148159690e-04,2.025088513003540014e-04,5.419797458340410074e-05,1.346906411781849947e-05,3.124126137506229797e-06,6.793459282188820527e-07,1.390351002637480001e-07,2.687412595790230049e-08,4.921110834738690207e-09,8.560823630667229787e-10,1.418334458302809965e-10,2.243046993136679888e-11,3.393070906919759941e-12,4.918855819340400076e-13,6.845520622994079698e-14,9.160423121084469264e-15,1.180413503816439982e-15,1.466758240566319956e-16,1.759717439190710019e-17,2.040817089558740063e-18,2.290470947729340200e-19,2.490331765678369924e-20,2.625582490419460077e-21,2.686761704477249944e-22,2.670813139794699943e-23,2.581210377548669995e-24,2.427191695173029929e-25,2.222300990888940126e-26,1.982534127067739860e-27,1.724420113015719897e-28,1.463327795581630048e-29,1.212201258784709980e-30,9.808185571543309583e-32,7.755653479892950425e-33,5.996368056961259881e-34,4.535371319351259809e-35,3.357355969174630118e-36,2.433540353208119850e-37,1.727924932493439983e-38,1.202367602833669936e-39,8.202561379009530057e-41,5.488182495280260007e-42,3.602757854983250139e-43,2.321259600560630162e-44,1.468396776753920087e-45,9.123002514633019318e-47,5.568591215510530400e-48,3.340409756237189930e-49,1.969836275164859927e-50,1.142250296683420054e-51,6.514991352109629640e-53,3.655986245181260051e-54,2.019046879261299884e-55,1.097611952861240092e-56,5.875135268569759908e-58,3.097107883896979796e-59,1.608288401977360053e-60,8.228817231899880498e-62,4.149260720402880196e-63,2.062315395150100133e-64,1.010599628198940004e-65,4.883475764340500096e-67,2.327494029941739827e-68,1.094307195797930038e-69,5.076453245672360401e-71,2.323962936362599961e-72,1.050076335472080006e-73 +3.083132474141640073e-02,1.072690871125669965e-01,1.866065948588060130e-01,2.164153854083279982e-01,1.882394044414910095e-01,1.309854133249579999e-01,7.595460044978180614e-02,3.775186771701460192e-02,1.641840085028289931e-02,6.347032823234140426e-03,2.208274936390389794e-03,6.984621190148159690e-04,2.025088513003540014e-04,5.419797458340410074e-05,1.346906411781849947e-05,3.124126137506229797e-06,6.793459282188820527e-07,1.390351002637480001e-07,2.687412595790230049e-08,4.921110834738690207e-09,8.560823630667229787e-10,1.418334458302809965e-10,2.243046993136679888e-11,3.393070906919759941e-12,4.918855819340400076e-13,6.845520622994079698e-14,9.160423121084469264e-15,1.180413503816439982e-15,1.466758240566319956e-16,1.759717439190710019e-17,2.040817089558740063e-18,2.290470947729340200e-19,2.490331765678369924e-20,2.625582490419460077e-21,2.686761704477249944e-22,2.670813139794699943e-23,2.581210377548669995e-24,2.427191695173029929e-25,2.222300990888940126e-26,1.982534127067739860e-27,1.724420113015719897e-28,1.463327795581630048e-29,1.212201258784709980e-30,9.808185571543309583e-32,7.755653479892950425e-33,5.996368056961259881e-34,4.535371319351259809e-35,3.357355969174630118e-36,2.433540353208119850e-37,1.727924932493439983e-38,1.202367602833669936e-39,8.202561379009530057e-41,5.488182495280260007e-42,3.602757854983250139e-43,2.321259600560630162e-44,1.468396776753920087e-45,9.123002514633019318e-47,5.568591215510530400e-48,3.340409756237189930e-49,1.969836275164859927e-50,1.142250296683420054e-51,6.514991352109629640e-53,3.655986245181260051e-54,2.019046879261299884e-55,1.097611952861240092e-56,5.875135268569759908e-58,3.097107883896979796e-59,1.608288401977360053e-60,8.228817231899880498e-62,4.149260720402880196e-63,2.062315395150100133e-64,1.010599628198940004e-65,4.883475764340500096e-67,2.327494029941739827e-68,1.094307195797930038e-69,5.076453245672360401e-71,2.323962936362599961e-72,1.050076335472080006e-73 +1.619143234834510003e-01,2.947954578663899983e-01,2.683652690786709760e-01,1.628698039626489957e-01,7.413377241557909947e-02,2.699489324037120108e-02,8.191546143705760036e-03,2.130607052028110193e-03,4.848963235023660227e-04,9.809387707802130578e-05,1.785983400663149990e-05,2.956107689397159984e-06,4.485124710040789939e-07,6.281548091125419566e-08,8.169099230973110089e-09,9.915587027097630735e-10,1.128324364230059969e-10,1.208427396949129987e-11,1.222316222959169964e-12,1.171292852366850024e-13,1.066279391719199985e-14,9.244581147336470142e-16,7.650680685148089388e-17,6.056305278551959983e-18,4.594434186855209591e-19,3.346012386333200097e-20,2.343094013774099993e-21,1.580015940378520078e-22,1.027398566104010054e-23,6.450248931781929775e-25,3.914630170425099937e-26,2.299135478726860144e-27,1.308127582473849905e-28,7.217248872204239546e-30,3.864811194484390152e-31,2.010461478521419973e-32,1.016784163879200057e-33,5.003369394536750375e-35,2.397256413477099929e-36,1.119142530143720009e-37,5.094023300310259944e-39,2.262104108577769829e-40,9.806156415418189800e-42,4.152081588725990263e-43,1.718101118252230089e-44,6.951391121472340067e-46,2.751372621260899790e-47,1.065827868157169983e-48,4.042791577982640091e-50,1.502175900934909981e-51,5.469987126336150265e-53,1.952772481027480054e-54,6.837287167923960402e-56,2.348786106492300061e-57,7.919271414166920069e-59,2.621549462682590133e-60,8.523256285267649379e-62,2.722489477574489934e-63,8.546213428691119756e-65,2.637286070609580005e-66,8.002791620320990698e-68,2.388620701273239860e-69,7.014407952261859968e-71,2.027150482909689917e-72,5.766888217452300180e-74,1.615339060382169981e-75,4.456103581931830154e-77,1.210921507490959990e-78,3.242220879909729837e-80,8.555177522677469464e-82,2.225186947787019997e-83,5.706156429066819901e-85,1.442934757934120032e-86,3.598813599864390055e-88,8.854481836886659634e-90,2.149499785744400100e-91,5.149432053497710169e-93,1.217598557724579998e-94 +1.619143234834510003e-01,2.947954578663899983e-01,2.683652690786709760e-01,1.628698039626489957e-01,7.413377241557909947e-02,2.699489324037120108e-02,8.191546143705760036e-03,2.130607052028110193e-03,4.848963235023660227e-04,9.809387707802130578e-05,1.785983400663149990e-05,2.956107689397159984e-06,4.485124710040789939e-07,6.281548091125419566e-08,8.169099230973110089e-09,9.915587027097630735e-10,1.128324364230059969e-10,1.208427396949129987e-11,1.222316222959169964e-12,1.171292852366850024e-13,1.066279391719199985e-14,9.244581147336470142e-16,7.650680685148089388e-17,6.056305278551959983e-18,4.594434186855209591e-19,3.346012386333200097e-20,2.343094013774099993e-21,1.580015940378520078e-22,1.027398566104010054e-23,6.450248931781929775e-25,3.914630170425099937e-26,2.299135478726860144e-27,1.308127582473849905e-28,7.217248872204239546e-30,3.864811194484390152e-31,2.010461478521419973e-32,1.016784163879200057e-33,5.003369394536750375e-35,2.397256413477099929e-36,1.119142530143720009e-37,5.094023300310259944e-39,2.262104108577769829e-40,9.806156415418189800e-42,4.152081588725990263e-43,1.718101118252230089e-44,6.951391121472340067e-46,2.751372621260899790e-47,1.065827868157169983e-48,4.042791577982640091e-50,1.502175900934909981e-51,5.469987126336150265e-53,1.952772481027480054e-54,6.837287167923960402e-56,2.348786106492300061e-57,7.919271414166920069e-59,2.621549462682590133e-60,8.523256285267649379e-62,2.722489477574489934e-63,8.546213428691119756e-65,2.637286070609580005e-66,8.002791620320990698e-68,2.388620701273239860e-69,7.014407952261859968e-71,2.027150482909689917e-72,5.766888217452300180e-74,1.615339060382169981e-75,4.456103581931830154e-77,1.210921507490959990e-78,3.242220879909729837e-80,8.555177522677469464e-82,2.225186947787019997e-83,5.706156429066819901e-85,1.442934757934120032e-86,3.598813599864390055e-88,8.854481836886659634e-90,2.149499785744400100e-91,5.149432053497710169e-93,1.217598557724579998e-94 +1.619143234834510003e-01,2.947954578663899983e-01,2.683652690786709760e-01,1.628698039626489957e-01,7.413377241557909947e-02,2.699489324037120108e-02,8.191546143705760036e-03,2.130607052028110193e-03,4.848963235023660227e-04,9.809387707802130578e-05,1.785983400663149990e-05,2.956107689397159984e-06,4.485124710040789939e-07,6.281548091125419566e-08,8.169099230973110089e-09,9.915587027097630735e-10,1.128324364230059969e-10,1.208427396949129987e-11,1.222316222959169964e-12,1.171292852366850024e-13,1.066279391719199985e-14,9.244581147336470142e-16,7.650680685148089388e-17,6.056305278551959983e-18,4.594434186855209591e-19,3.346012386333200097e-20,2.343094013774099993e-21,1.580015940378520078e-22,1.027398566104010054e-23,6.450248931781929775e-25,3.914630170425099937e-26,2.299135478726860144e-27,1.308127582473849905e-28,7.217248872204239546e-30,3.864811194484390152e-31,2.010461478521419973e-32,1.016784163879200057e-33,5.003369394536750375e-35,2.397256413477099929e-36,1.119142530143720009e-37,5.094023300310259944e-39,2.262104108577769829e-40,9.806156415418189800e-42,4.152081588725990263e-43,1.718101118252230089e-44,6.951391121472340067e-46,2.751372621260899790e-47,1.065827868157169983e-48,4.042791577982640091e-50,1.502175900934909981e-51,5.469987126336150265e-53,1.952772481027480054e-54,6.837287167923960402e-56,2.348786106492300061e-57,7.919271414166920069e-59,2.621549462682590133e-60,8.523256285267649379e-62,2.722489477574489934e-63,8.546213428691119756e-65,2.637286070609580005e-66,8.002791620320990698e-68,2.388620701273239860e-69,7.014407952261859968e-71,2.027150482909689917e-72,5.766888217452300180e-74,1.615339060382169981e-75,4.456103581931830154e-77,1.210921507490959990e-78,3.242220879909729837e-80,8.555177522677469464e-82,2.225186947787019997e-83,5.706156429066819901e-85,1.442934757934120032e-86,3.598813599864390055e-88,8.854481836886659634e-90,2.149499785744400100e-91,5.149432053497710169e-93,1.217598557724579998e-94 +2.187156478120630063e-02,8.360554140387460587e-02,1.597939293177869924e-01,2.036077148161750117e-01,1.945760785922280023e-01,1.487560543352109965e-01,9.477168631365390228e-02,5.175302938687639798e-02,2.472868359251079867e-02,1.050300800574680005e-02,4.014846123146280366e-03,1.395183809483479956e-03,4.444320701203220139e-04,1.306824433788680102e-04,3.568160806040770224e-05,9.093024633868010469e-06,2.172419003619220210e-06,4.884834790274119561e-07,1.037367369699729963e-07,2.087056423935419840e-08,3.988957443353329836e-09,7.260981270490240125e-10,1.261617904998560092e-10,2.096791349017409969e-11,3.339636374504610117e-12,5.106394717993829806e-13,7.507515585269479943e-14,1.062888446937449961e-14,1.451058305728390048e-15,1.912678930029880026e-16,2.437115025477270112e-17,3.005173438469220170e-18,3.589837347732470173e-19,4.158302122183250180e-20,4.675115353224010115e-21,5.105984533432969634e-22,5.421659045379489484e-23,5.601259410496589662e-24,5.634524844457669561e-25,5.522654817666599894e-26,5.277680753944960277e-27,4.920559274156719926e-28,4.478374266629659847e-29,3.981137140756380286e-30,3.458674325084570051e-31,2.938003876327329727e-32,2.441460717565630085e-33,1.985670077090300055e-34,1.581324727499419918e-35,1.233616558997859952e-36,9.431166112853870714e-38,7.068877023596269745e-39,5.196396612075019853e-40,3.747845070328839908e-41,2.653035602070679864e-42,1.843892495232910183e-43,1.258643617675630027e-44,8.440790679826370018e-46,5.563016462661159983e-47,3.604238668513929714e-48,2.296241171617929975e-49,1.438940620963050093e-50,8.871690684369259637e-52,5.382958731411739970e-53,3.215113318911780221e-54,1.890767532332179998e-55,1.095088980454569948e-56,6.247838778729850186e-58,3.512174697827359856e-59,1.945728442149469959e-60,1.062525582927570044e-61,5.720529836231269853e-63,3.037099126318090057e-64,1.590344879756880087e-65,8.215136869649860140e-67,4.187055796356500151e-68,2.105961193788740010e-69,1.045477877020849939e-70 +2.187156478120630063e-02,8.360554140387460587e-02,1.597939293177869924e-01,2.036077148161750117e-01,1.945760785922280023e-01,1.487560543352109965e-01,9.477168631365390228e-02,5.175302938687639798e-02,2.472868359251079867e-02,1.050300800574680005e-02,4.014846123146280366e-03,1.395183809483479956e-03,4.444320701203220139e-04,1.306824433788680102e-04,3.568160806040770224e-05,9.093024633868010469e-06,2.172419003619220210e-06,4.884834790274119561e-07,1.037367369699729963e-07,2.087056423935419840e-08,3.988957443353329836e-09,7.260981270490240125e-10,1.261617904998560092e-10,2.096791349017409969e-11,3.339636374504610117e-12,5.106394717993829806e-13,7.507515585269479943e-14,1.062888446937449961e-14,1.451058305728390048e-15,1.912678930029880026e-16,2.437115025477270112e-17,3.005173438469220170e-18,3.589837347732470173e-19,4.158302122183250180e-20,4.675115353224010115e-21,5.105984533432969634e-22,5.421659045379489484e-23,5.601259410496589662e-24,5.634524844457669561e-25,5.522654817666599894e-26,5.277680753944960277e-27,4.920559274156719926e-28,4.478374266629659847e-29,3.981137140756380286e-30,3.458674325084570051e-31,2.938003876327329727e-32,2.441460717565630085e-33,1.985670077090300055e-34,1.581324727499419918e-35,1.233616558997859952e-36,9.431166112853870714e-38,7.068877023596269745e-39,5.196396612075019853e-40,3.747845070328839908e-41,2.653035602070679864e-42,1.843892495232910183e-43,1.258643617675630027e-44,8.440790679826370018e-46,5.563016462661159983e-47,3.604238668513929714e-48,2.296241171617929975e-49,1.438940620963050093e-50,8.871690684369259637e-52,5.382958731411739970e-53,3.215113318911780221e-54,1.890767532332179998e-55,1.095088980454569948e-56,6.247838778729850186e-58,3.512174697827359856e-59,1.945728442149469959e-60,1.062525582927570044e-61,5.720529836231269853e-63,3.037099126318090057e-64,1.590344879756880087e-65,8.215136869649860140e-67,4.187055796356500151e-68,2.105961193788740010e-69,1.045477877020849939e-70 +2.187156478120630063e-02,8.360554140387460587e-02,1.597939293177869924e-01,2.036077148161750117e-01,1.945760785922280023e-01,1.487560543352109965e-01,9.477168631365390228e-02,5.175302938687639798e-02,2.472868359251079867e-02,1.050300800574680005e-02,4.014846123146280366e-03,1.395183809483479956e-03,4.444320701203220139e-04,1.306824433788680102e-04,3.568160806040770224e-05,9.093024633868010469e-06,2.172419003619220210e-06,4.884834790274119561e-07,1.037367369699729963e-07,2.087056423935419840e-08,3.988957443353329836e-09,7.260981270490240125e-10,1.261617904998560092e-10,2.096791349017409969e-11,3.339636374504610117e-12,5.106394717993829806e-13,7.507515585269479943e-14,1.062888446937449961e-14,1.451058305728390048e-15,1.912678930029880026e-16,2.437115025477270112e-17,3.005173438469220170e-18,3.589837347732470173e-19,4.158302122183250180e-20,4.675115353224010115e-21,5.105984533432969634e-22,5.421659045379489484e-23,5.601259410496589662e-24,5.634524844457669561e-25,5.522654817666599894e-26,5.277680753944960277e-27,4.920559274156719926e-28,4.478374266629659847e-29,3.981137140756380286e-30,3.458674325084570051e-31,2.938003876327329727e-32,2.441460717565630085e-33,1.985670077090300055e-34,1.581324727499419918e-35,1.233616558997859952e-36,9.431166112853870714e-38,7.068877023596269745e-39,5.196396612075019853e-40,3.747845070328839908e-41,2.653035602070679864e-42,1.843892495232910183e-43,1.258643617675630027e-44,8.440790679826370018e-46,5.563016462661159983e-47,3.604238668513929714e-48,2.296241171617929975e-49,1.438940620963050093e-50,8.871690684369259637e-52,5.382958731411739970e-53,3.215113318911780221e-54,1.890767532332179998e-55,1.095088980454569948e-56,6.247838778729850186e-58,3.512174697827359856e-59,1.945728442149469959e-60,1.062525582927570044e-61,5.720529836231269853e-63,3.037099126318090057e-64,1.590344879756880087e-65,8.215136869649860140e-67,4.187055796356500151e-68,2.105961193788740010e-69,1.045477877020849939e-70 +5.812293385103640270e-02,1.653710785902759994e-01,2.352564798621540054e-01,2.231168504550770093e-01,1.587027347328379967e-01,9.030804427477469309e-02,4.282399877179059872e-02,1.740608936762949935e-02,6.190464722885580078e-03,1.957008782687990039e-03,5.568071529788849684e-04,1.440204460598989988e-04,3.414718730048180238e-05,7.473492714302469681e-06,1.518824558709430018e-06,2.880901322094340147e-07,5.122953705415850327e-08,8.574001220604989582e-09,1.355261393338489910e-09,2.029464678421699948e-10,2.887111339661680150e-11,3.911616494935300182e-12,5.058777975479810013e-13,6.257917222395159753e-14,7.418747731664529363e-15,8.443113469246439647e-16,9.239347657420759436e-17,9.736202003830509448e-18,9.893354604918450258e-19,9.706387131968270253e-20,9.205521256848659922e-21,8.448871840593599696e-22,7.512089874513110367e-23,6.476775838704429841e-24,5.419908820172310035e-25,4.405913506165479930e-26,3.482134142309730140e-27,2.677662302687789779e-28,2.004860866972590109e-29,1.462620522803490082e-30,1.040360135829469943e-31,7.219579067066360199e-33,4.890740474272090025e-34,3.236072130136279875e-35,2.092558209654990010e-36,1.323052461454550096e-37,8.183352604918020287e-39,4.953879490784940355e-40,2.936406869020030237e-41,1.705030618604360004e-42,9.702289053429010412e-44,5.412726262378519886e-45,2.961588748909099861e-46,1.589867431880020114e-47,8.376820014810619754e-49,4.333397473944720051e-50,2.201671546919749871e-51,1.098979788431029907e-52,5.391054754783180108e-54,2.599763022049259835e-55,1.232805442275309892e-56,5.750117760534070306e-58,2.638742916971140181e-59,1.191704453066189981e-60,5.297861728875310390e-62,2.318992231115490100e-63,9.996946990471059777e-65,4.245263166600070230e-66,1.776264908159289932e-67,7.324376765946500387e-69,2.977039982409040027e-70,1.192994247983149923e-71,4.714307256222770244e-73,1.837414144712299835e-74,7.064596578778080569e-76,2.680020612934810037e-77,1.003313308806630041e-78,3.707301262182540209e-80 +5.812293385103640270e-02,1.653710785902759994e-01,2.352564798621540054e-01,2.231168504550770093e-01,1.587027347328379967e-01,9.030804427477469309e-02,4.282399877179059872e-02,1.740608936762949935e-02,6.190464722885580078e-03,1.957008782687990039e-03,5.568071529788849684e-04,1.440204460598989988e-04,3.414718730048180238e-05,7.473492714302469681e-06,1.518824558709430018e-06,2.880901322094340147e-07,5.122953705415850327e-08,8.574001220604989582e-09,1.355261393338489910e-09,2.029464678421699948e-10,2.887111339661680150e-11,3.911616494935300182e-12,5.058777975479810013e-13,6.257917222395159753e-14,7.418747731664529363e-15,8.443113469246439647e-16,9.239347657420759436e-17,9.736202003830509448e-18,9.893354604918450258e-19,9.706387131968270253e-20,9.205521256848659922e-21,8.448871840593599696e-22,7.512089874513110367e-23,6.476775838704429841e-24,5.419908820172310035e-25,4.405913506165479930e-26,3.482134142309730140e-27,2.677662302687789779e-28,2.004860866972590109e-29,1.462620522803490082e-30,1.040360135829469943e-31,7.219579067066360199e-33,4.890740474272090025e-34,3.236072130136279875e-35,2.092558209654990010e-36,1.323052461454550096e-37,8.183352604918020287e-39,4.953879490784940355e-40,2.936406869020030237e-41,1.705030618604360004e-42,9.702289053429010412e-44,5.412726262378519886e-45,2.961588748909099861e-46,1.589867431880020114e-47,8.376820014810619754e-49,4.333397473944720051e-50,2.201671546919749871e-51,1.098979788431029907e-52,5.391054754783180108e-54,2.599763022049259835e-55,1.232805442275309892e-56,5.750117760534070306e-58,2.638742916971140181e-59,1.191704453066189981e-60,5.297861728875310390e-62,2.318992231115490100e-63,9.996946990471059777e-65,4.245263166600070230e-66,1.776264908159289932e-67,7.324376765946500387e-69,2.977039982409040027e-70,1.192994247983149923e-71,4.714307256222770244e-73,1.837414144712299835e-74,7.064596578778080569e-76,2.680020612934810037e-77,1.003313308806630041e-78,3.707301262182540209e-80 +5.812293385103640270e-02,1.653710785902759994e-01,2.352564798621540054e-01,2.231168504550770093e-01,1.587027347328379967e-01,9.030804427477469309e-02,4.282399877179059872e-02,1.740608936762949935e-02,6.190464722885580078e-03,1.957008782687990039e-03,5.568071529788849684e-04,1.440204460598989988e-04,3.414718730048180238e-05,7.473492714302469681e-06,1.518824558709430018e-06,2.880901322094340147e-07,5.122953705415850327e-08,8.574001220604989582e-09,1.355261393338489910e-09,2.029464678421699948e-10,2.887111339661680150e-11,3.911616494935300182e-12,5.058777975479810013e-13,6.257917222395159753e-14,7.418747731664529363e-15,8.443113469246439647e-16,9.239347657420759436e-17,9.736202003830509448e-18,9.893354604918450258e-19,9.706387131968270253e-20,9.205521256848659922e-21,8.448871840593599696e-22,7.512089874513110367e-23,6.476775838704429841e-24,5.419908820172310035e-25,4.405913506165479930e-26,3.482134142309730140e-27,2.677662302687789779e-28,2.004860866972590109e-29,1.462620522803490082e-30,1.040360135829469943e-31,7.219579067066360199e-33,4.890740474272090025e-34,3.236072130136279875e-35,2.092558209654990010e-36,1.323052461454550096e-37,8.183352604918020287e-39,4.953879490784940355e-40,2.936406869020030237e-41,1.705030618604360004e-42,9.702289053429010412e-44,5.412726262378519886e-45,2.961588748909099861e-46,1.589867431880020114e-47,8.376820014810619754e-49,4.333397473944720051e-50,2.201671546919749871e-51,1.098979788431029907e-52,5.391054754783180108e-54,2.599763022049259835e-55,1.232805442275309892e-56,5.750117760534070306e-58,2.638742916971140181e-59,1.191704453066189981e-60,5.297861728875310390e-62,2.318992231115490100e-63,9.996946990471059777e-65,4.245263166600070230e-66,1.776264908159289932e-67,7.324376765946500387e-69,2.977039982409040027e-70,1.192994247983149923e-71,4.714307256222770244e-73,1.837414144712299835e-74,7.064596578778080569e-76,2.680020612934810037e-77,1.003313308806630041e-78,3.707301262182540209e-80 +2.187156478120630063e-02,8.360554140387460587e-02,1.597939293177869924e-01,2.036077148161750117e-01,1.945760785922280023e-01,1.487560543352109965e-01,9.477168631365390228e-02,5.175302938687639798e-02,2.472868359251079867e-02,1.050300800574680005e-02,4.014846123146280366e-03,1.395183809483479956e-03,4.444320701203220139e-04,1.306824433788680102e-04,3.568160806040770224e-05,9.093024633868010469e-06,2.172419003619220210e-06,4.884834790274119561e-07,1.037367369699729963e-07,2.087056423935419840e-08,3.988957443353329836e-09,7.260981270490240125e-10,1.261617904998560092e-10,2.096791349017409969e-11,3.339636374504610117e-12,5.106394717993829806e-13,7.507515585269479943e-14,1.062888446937449961e-14,1.451058305728390048e-15,1.912678930029880026e-16,2.437115025477270112e-17,3.005173438469220170e-18,3.589837347732470173e-19,4.158302122183250180e-20,4.675115353224010115e-21,5.105984533432969634e-22,5.421659045379489484e-23,5.601259410496589662e-24,5.634524844457669561e-25,5.522654817666599894e-26,5.277680753944960277e-27,4.920559274156719926e-28,4.478374266629659847e-29,3.981137140756380286e-30,3.458674325084570051e-31,2.938003876327329727e-32,2.441460717565630085e-33,1.985670077090300055e-34,1.581324727499419918e-35,1.233616558997859952e-36,9.431166112853870714e-38,7.068877023596269745e-39,5.196396612075019853e-40,3.747845070328839908e-41,2.653035602070679864e-42,1.843892495232910183e-43,1.258643617675630027e-44,8.440790679826370018e-46,5.563016462661159983e-47,3.604238668513929714e-48,2.296241171617929975e-49,1.438940620963050093e-50,8.871690684369259637e-52,5.382958731411739970e-53,3.215113318911780221e-54,1.890767532332179998e-55,1.095088980454569948e-56,6.247838778729850186e-58,3.512174697827359856e-59,1.945728442149469959e-60,1.062525582927570044e-61,5.720529836231269853e-63,3.037099126318090057e-64,1.590344879756880087e-65,8.215136869649860140e-67,4.187055796356500151e-68,2.105961193788740010e-69,1.045477877020849939e-70 +2.187156478120630063e-02,8.360554140387460587e-02,1.597939293177869924e-01,2.036077148161750117e-01,1.945760785922280023e-01,1.487560543352109965e-01,9.477168631365390228e-02,5.175302938687639798e-02,2.472868359251079867e-02,1.050300800574680005e-02,4.014846123146280366e-03,1.395183809483479956e-03,4.444320701203220139e-04,1.306824433788680102e-04,3.568160806040770224e-05,9.093024633868010469e-06,2.172419003619220210e-06,4.884834790274119561e-07,1.037367369699729963e-07,2.087056423935419840e-08,3.988957443353329836e-09,7.260981270490240125e-10,1.261617904998560092e-10,2.096791349017409969e-11,3.339636374504610117e-12,5.106394717993829806e-13,7.507515585269479943e-14,1.062888446937449961e-14,1.451058305728390048e-15,1.912678930029880026e-16,2.437115025477270112e-17,3.005173438469220170e-18,3.589837347732470173e-19,4.158302122183250180e-20,4.675115353224010115e-21,5.105984533432969634e-22,5.421659045379489484e-23,5.601259410496589662e-24,5.634524844457669561e-25,5.522654817666599894e-26,5.277680753944960277e-27,4.920559274156719926e-28,4.478374266629659847e-29,3.981137140756380286e-30,3.458674325084570051e-31,2.938003876327329727e-32,2.441460717565630085e-33,1.985670077090300055e-34,1.581324727499419918e-35,1.233616558997859952e-36,9.431166112853870714e-38,7.068877023596269745e-39,5.196396612075019853e-40,3.747845070328839908e-41,2.653035602070679864e-42,1.843892495232910183e-43,1.258643617675630027e-44,8.440790679826370018e-46,5.563016462661159983e-47,3.604238668513929714e-48,2.296241171617929975e-49,1.438940620963050093e-50,8.871690684369259637e-52,5.382958731411739970e-53,3.215113318911780221e-54,1.890767532332179998e-55,1.095088980454569948e-56,6.247838778729850186e-58,3.512174697827359856e-59,1.945728442149469959e-60,1.062525582927570044e-61,5.720529836231269853e-63,3.037099126318090057e-64,1.590344879756880087e-65,8.215136869649860140e-67,4.187055796356500151e-68,2.105961193788740010e-69,1.045477877020849939e-70 +2.187156478120630063e-02,8.360554140387460587e-02,1.597939293177869924e-01,2.036077148161750117e-01,1.945760785922280023e-01,1.487560543352109965e-01,9.477168631365390228e-02,5.175302938687639798e-02,2.472868359251079867e-02,1.050300800574680005e-02,4.014846123146280366e-03,1.395183809483479956e-03,4.444320701203220139e-04,1.306824433788680102e-04,3.568160806040770224e-05,9.093024633868010469e-06,2.172419003619220210e-06,4.884834790274119561e-07,1.037367369699729963e-07,2.087056423935419840e-08,3.988957443353329836e-09,7.260981270490240125e-10,1.261617904998560092e-10,2.096791349017409969e-11,3.339636374504610117e-12,5.106394717993829806e-13,7.507515585269479943e-14,1.062888446937449961e-14,1.451058305728390048e-15,1.912678930029880026e-16,2.437115025477270112e-17,3.005173438469220170e-18,3.589837347732470173e-19,4.158302122183250180e-20,4.675115353224010115e-21,5.105984533432969634e-22,5.421659045379489484e-23,5.601259410496589662e-24,5.634524844457669561e-25,5.522654817666599894e-26,5.277680753944960277e-27,4.920559274156719926e-28,4.478374266629659847e-29,3.981137140756380286e-30,3.458674325084570051e-31,2.938003876327329727e-32,2.441460717565630085e-33,1.985670077090300055e-34,1.581324727499419918e-35,1.233616558997859952e-36,9.431166112853870714e-38,7.068877023596269745e-39,5.196396612075019853e-40,3.747845070328839908e-41,2.653035602070679864e-42,1.843892495232910183e-43,1.258643617675630027e-44,8.440790679826370018e-46,5.563016462661159983e-47,3.604238668513929714e-48,2.296241171617929975e-49,1.438940620963050093e-50,8.871690684369259637e-52,5.382958731411739970e-53,3.215113318911780221e-54,1.890767532332179998e-55,1.095088980454569948e-56,6.247838778729850186e-58,3.512174697827359856e-59,1.945728442149469959e-60,1.062525582927570044e-61,5.720529836231269853e-63,3.037099126318090057e-64,1.590344879756880087e-65,8.215136869649860140e-67,4.187055796356500151e-68,2.105961193788740010e-69,1.045477877020849939e-70 +2.187156478120630063e-02,8.360554140387460587e-02,1.597939293177869924e-01,2.036077148161750117e-01,1.945760785922280023e-01,1.487560543352109965e-01,9.477168631365390228e-02,5.175302938687639798e-02,2.472868359251079867e-02,1.050300800574680005e-02,4.014846123146280366e-03,1.395183809483479956e-03,4.444320701203220139e-04,1.306824433788680102e-04,3.568160806040770224e-05,9.093024633868010469e-06,2.172419003619220210e-06,4.884834790274119561e-07,1.037367369699729963e-07,2.087056423935419840e-08,3.988957443353329836e-09,7.260981270490240125e-10,1.261617904998560092e-10,2.096791349017409969e-11,3.339636374504610117e-12,5.106394717993829806e-13,7.507515585269479943e-14,1.062888446937449961e-14,1.451058305728390048e-15,1.912678930029880026e-16,2.437115025477270112e-17,3.005173438469220170e-18,3.589837347732470173e-19,4.158302122183250180e-20,4.675115353224010115e-21,5.105984533432969634e-22,5.421659045379489484e-23,5.601259410496589662e-24,5.634524844457669561e-25,5.522654817666599894e-26,5.277680753944960277e-27,4.920559274156719926e-28,4.478374266629659847e-29,3.981137140756380286e-30,3.458674325084570051e-31,2.938003876327329727e-32,2.441460717565630085e-33,1.985670077090300055e-34,1.581324727499419918e-35,1.233616558997859952e-36,9.431166112853870714e-38,7.068877023596269745e-39,5.196396612075019853e-40,3.747845070328839908e-41,2.653035602070679864e-42,1.843892495232910183e-43,1.258643617675630027e-44,8.440790679826370018e-46,5.563016462661159983e-47,3.604238668513929714e-48,2.296241171617929975e-49,1.438940620963050093e-50,8.871690684369259637e-52,5.382958731411739970e-53,3.215113318911780221e-54,1.890767532332179998e-55,1.095088980454569948e-56,6.247838778729850186e-58,3.512174697827359856e-59,1.945728442149469959e-60,1.062525582927570044e-61,5.720529836231269853e-63,3.037099126318090057e-64,1.590344879756880087e-65,8.215136869649860140e-67,4.187055796356500151e-68,2.105961193788740010e-69,1.045477877020849939e-70 +2.187156478120630063e-02,8.360554140387460587e-02,1.597939293177869924e-01,2.036077148161750117e-01,1.945760785922280023e-01,1.487560543352109965e-01,9.477168631365390228e-02,5.175302938687639798e-02,2.472868359251079867e-02,1.050300800574680005e-02,4.014846123146280366e-03,1.395183809483479956e-03,4.444320701203220139e-04,1.306824433788680102e-04,3.568160806040770224e-05,9.093024633868010469e-06,2.172419003619220210e-06,4.884834790274119561e-07,1.037367369699729963e-07,2.087056423935419840e-08,3.988957443353329836e-09,7.260981270490240125e-10,1.261617904998560092e-10,2.096791349017409969e-11,3.339636374504610117e-12,5.106394717993829806e-13,7.507515585269479943e-14,1.062888446937449961e-14,1.451058305728390048e-15,1.912678930029880026e-16,2.437115025477270112e-17,3.005173438469220170e-18,3.589837347732470173e-19,4.158302122183250180e-20,4.675115353224010115e-21,5.105984533432969634e-22,5.421659045379489484e-23,5.601259410496589662e-24,5.634524844457669561e-25,5.522654817666599894e-26,5.277680753944960277e-27,4.920559274156719926e-28,4.478374266629659847e-29,3.981137140756380286e-30,3.458674325084570051e-31,2.938003876327329727e-32,2.441460717565630085e-33,1.985670077090300055e-34,1.581324727499419918e-35,1.233616558997859952e-36,9.431166112853870714e-38,7.068877023596269745e-39,5.196396612075019853e-40,3.747845070328839908e-41,2.653035602070679864e-42,1.843892495232910183e-43,1.258643617675630027e-44,8.440790679826370018e-46,5.563016462661159983e-47,3.604238668513929714e-48,2.296241171617929975e-49,1.438940620963050093e-50,8.871690684369259637e-52,5.382958731411739970e-53,3.215113318911780221e-54,1.890767532332179998e-55,1.095088980454569948e-56,6.247838778729850186e-58,3.512174697827359856e-59,1.945728442149469959e-60,1.062525582927570044e-61,5.720529836231269853e-63,3.037099126318090057e-64,1.590344879756880087e-65,8.215136869649860140e-67,4.187055796356500151e-68,2.105961193788740010e-69,1.045477877020849939e-70 +2.187156478120630063e-02,8.360554140387460587e-02,1.597939293177869924e-01,2.036077148161750117e-01,1.945760785922280023e-01,1.487560543352109965e-01,9.477168631365390228e-02,5.175302938687639798e-02,2.472868359251079867e-02,1.050300800574680005e-02,4.014846123146280366e-03,1.395183809483479956e-03,4.444320701203220139e-04,1.306824433788680102e-04,3.568160806040770224e-05,9.093024633868010469e-06,2.172419003619220210e-06,4.884834790274119561e-07,1.037367369699729963e-07,2.087056423935419840e-08,3.988957443353329836e-09,7.260981270490240125e-10,1.261617904998560092e-10,2.096791349017409969e-11,3.339636374504610117e-12,5.106394717993829806e-13,7.507515585269479943e-14,1.062888446937449961e-14,1.451058305728390048e-15,1.912678930029880026e-16,2.437115025477270112e-17,3.005173438469220170e-18,3.589837347732470173e-19,4.158302122183250180e-20,4.675115353224010115e-21,5.105984533432969634e-22,5.421659045379489484e-23,5.601259410496589662e-24,5.634524844457669561e-25,5.522654817666599894e-26,5.277680753944960277e-27,4.920559274156719926e-28,4.478374266629659847e-29,3.981137140756380286e-30,3.458674325084570051e-31,2.938003876327329727e-32,2.441460717565630085e-33,1.985670077090300055e-34,1.581324727499419918e-35,1.233616558997859952e-36,9.431166112853870714e-38,7.068877023596269745e-39,5.196396612075019853e-40,3.747845070328839908e-41,2.653035602070679864e-42,1.843892495232910183e-43,1.258643617675630027e-44,8.440790679826370018e-46,5.563016462661159983e-47,3.604238668513929714e-48,2.296241171617929975e-49,1.438940620963050093e-50,8.871690684369259637e-52,5.382958731411739970e-53,3.215113318911780221e-54,1.890767532332179998e-55,1.095088980454569948e-56,6.247838778729850186e-58,3.512174697827359856e-59,1.945728442149469959e-60,1.062525582927570044e-61,5.720529836231269853e-63,3.037099126318090057e-64,1.590344879756880087e-65,8.215136869649860140e-67,4.187055796356500151e-68,2.105961193788740010e-69,1.045477877020849939e-70 +9.719762568479080322e-02,2.265685397566289949e-01,2.640666520698959907e-01,2.051805804115789944e-01,1.195694446308459974e-01,5.574349019054480187e-02,2.165642950711500064e-02,7.211618854150080027e-03,2.101293552124580168e-03,5.442371301089919807e-04,1.268621645656389948e-04,2.688334970165440023e-05,5.222110830689879590e-06,9.363682552949949827e-07,1.559059161182239946e-07,2.422787285557660052e-08,3.529711847140960202e-09,4.839876508929410329e-10,6.267664264801159605e-11,7.689464093907009193e-12,8.962104984526120102e-13,9.947974920188189741e-14,1.054037228193190075e-14,1.068247939088879982e-15,1.037539814511080037e-16,9.674058560873710007e-18,8.673199047242719981e-19,7.487890738481540110e-20,6.233693094435099784e-21,5.010618853355809722e-22,3.893265872438220056e-23,2.927496054286810022e-24,2.132506135984669863e-25,1.506330601428380076e-26,1.032726523900230045e-27,6.877985190026859608e-29,4.453512595809830027e-30,2.805723762120480074e-31,1.721096664941740117e-32,1.028690206952590063e-33,5.994715313495129502e-35,3.408228126286139820e-36,1.891573909316770075e-37,1.025412976089170040e-38,5.432379251765939613e-40,2.813983311047030080e-41,1.425960958613110056e-42,7.072186853062670273e-44,3.434443993391999999e-45,1.633820375747750071e-46,7.616899983920450305e-48,3.481384779600979965e-49,1.560603699239570064e-50,6.863738227247259706e-52,2.962858434541909868e-53,1.255718120292259974e-54,5.226946845521300017e-56,2.137554405773069868e-57,8.590790598274639757e-59,3.394103416626840011e-60,1.318614265643929951e-61,5.038855268939080228e-63,1.894454347745750065e-64,7.009508135032990341e-66,2.553004142619300020e-67,9.155500954657230016e-69,3.233568951265649846e-70,1.124996762852420099e-71,3.856437608045490070e-73,1.302810254017699929e-74,4.338374886851700214e-76,1.424336744311150080e-77,4.611308003877640075e-79,1.472465813069849924e-80,4.638285209440399944e-82,1.441584605897930000e-83,4.421508793807590204e-85,1.338516463572389954e-86 +9.719762568479080322e-02,2.265685397566289949e-01,2.640666520698959907e-01,2.051805804115789944e-01,1.195694446308459974e-01,5.574349019054480187e-02,2.165642950711500064e-02,7.211618854150080027e-03,2.101293552124580168e-03,5.442371301089919807e-04,1.268621645656389948e-04,2.688334970165440023e-05,5.222110830689879590e-06,9.363682552949949827e-07,1.559059161182239946e-07,2.422787285557660052e-08,3.529711847140960202e-09,4.839876508929410329e-10,6.267664264801159605e-11,7.689464093907009193e-12,8.962104984526120102e-13,9.947974920188189741e-14,1.054037228193190075e-14,1.068247939088879982e-15,1.037539814511080037e-16,9.674058560873710007e-18,8.673199047242719981e-19,7.487890738481540110e-20,6.233693094435099784e-21,5.010618853355809722e-22,3.893265872438220056e-23,2.927496054286810022e-24,2.132506135984669863e-25,1.506330601428380076e-26,1.032726523900230045e-27,6.877985190026859608e-29,4.453512595809830027e-30,2.805723762120480074e-31,1.721096664941740117e-32,1.028690206952590063e-33,5.994715313495129502e-35,3.408228126286139820e-36,1.891573909316770075e-37,1.025412976089170040e-38,5.432379251765939613e-40,2.813983311047030080e-41,1.425960958613110056e-42,7.072186853062670273e-44,3.434443993391999999e-45,1.633820375747750071e-46,7.616899983920450305e-48,3.481384779600979965e-49,1.560603699239570064e-50,6.863738227247259706e-52,2.962858434541909868e-53,1.255718120292259974e-54,5.226946845521300017e-56,2.137554405773069868e-57,8.590790598274639757e-59,3.394103416626840011e-60,1.318614265643929951e-61,5.038855268939080228e-63,1.894454347745750065e-64,7.009508135032990341e-66,2.553004142619300020e-67,9.155500954657230016e-69,3.233568951265649846e-70,1.124996762852420099e-71,3.856437608045490070e-73,1.302810254017699929e-74,4.338374886851700214e-76,1.424336744311150080e-77,4.611308003877640075e-79,1.472465813069849924e-80,4.638285209440399944e-82,1.441584605897930000e-83,4.421508793807590204e-85,1.338516463572389954e-86 +9.719762568479080322e-02,2.265685397566289949e-01,2.640666520698959907e-01,2.051805804115789944e-01,1.195694446308459974e-01,5.574349019054480187e-02,2.165642950711500064e-02,7.211618854150080027e-03,2.101293552124580168e-03,5.442371301089919807e-04,1.268621645656389948e-04,2.688334970165440023e-05,5.222110830689879590e-06,9.363682552949949827e-07,1.559059161182239946e-07,2.422787285557660052e-08,3.529711847140960202e-09,4.839876508929410329e-10,6.267664264801159605e-11,7.689464093907009193e-12,8.962104984526120102e-13,9.947974920188189741e-14,1.054037228193190075e-14,1.068247939088879982e-15,1.037539814511080037e-16,9.674058560873710007e-18,8.673199047242719981e-19,7.487890738481540110e-20,6.233693094435099784e-21,5.010618853355809722e-22,3.893265872438220056e-23,2.927496054286810022e-24,2.132506135984669863e-25,1.506330601428380076e-26,1.032726523900230045e-27,6.877985190026859608e-29,4.453512595809830027e-30,2.805723762120480074e-31,1.721096664941740117e-32,1.028690206952590063e-33,5.994715313495129502e-35,3.408228126286139820e-36,1.891573909316770075e-37,1.025412976089170040e-38,5.432379251765939613e-40,2.813983311047030080e-41,1.425960958613110056e-42,7.072186853062670273e-44,3.434443993391999999e-45,1.633820375747750071e-46,7.616899983920450305e-48,3.481384779600979965e-49,1.560603699239570064e-50,6.863738227247259706e-52,2.962858434541909868e-53,1.255718120292259974e-54,5.226946845521300017e-56,2.137554405773069868e-57,8.590790598274639757e-59,3.394103416626840011e-60,1.318614265643929951e-61,5.038855268939080228e-63,1.894454347745750065e-64,7.009508135032990341e-66,2.553004142619300020e-67,9.155500954657230016e-69,3.233568951265649846e-70,1.124996762852420099e-71,3.856437608045490070e-73,1.302810254017699929e-74,4.338374886851700214e-76,1.424336744311150080e-77,4.611308003877640075e-79,1.472465813069849924e-80,4.638285209440399944e-82,1.441584605897930000e-83,4.421508793807590204e-85,1.338516463572389954e-86 +1.333919565423110076e-01,2.687132200585030106e-01,2.706564792432070155e-01,1.817425276914919896e-01,9.152841952292280203e-02,3.687613102678920229e-02,1.238093631275869952e-02,3.562991941920300165e-03,8.971896268837399645e-04,2.008173005431940087e-04,4.045391106869420175e-05,7.408447725312220038e-06,1.243670592731910048e-06,1.927176111016150063e-07,2.773018445759939851e-08,3.724096190689580129e-09,4.688784771715189570e-10,5.556109126587969783e-11,6.218099289668739857e-12,6.592701949802110250e-13,6.640378534575920511e-14,6.369904669652750111e-15,5.832700042303749835e-16,5.108591743394630075e-17,4.287946380336490346e-18,3.455164491669909846e-19,2.677039445529770118e-20,1.997332629172289902e-21,1.436983416137460090e-22,9.981898483291519574e-24,6.702723195786210199e-25,4.355609950694019771e-26,2.741942818153079984e-27,1.673801081893609976e-28,9.917091442651010645e-30,5.707890906609280412e-31,3.193982657940519993e-32,1.738962514142409906e-33,9.218622141228640243e-35,4.761686486996669991e-36,2.398060838893399871e-37,1.178245340070309952e-38,5.651267058519989767e-40,2.647504859674920148e-41,1.212114035284830033e-42,5.426132028785949989e-44,2.376248828139349946e-45,1.018482211915680085e-46,4.274364965323089741e-48,1.757255503086640139e-49,7.079853942320110015e-51,2.796491558689100024e-52,1.083351925754989953e-53,4.117684623488480005e-55,1.536097248934470071e-56,5.626203187327250246e-58,2.023889400775310143e-59,7.152721422361519750e-61,2.484292383456649903e-62,8.482230827886909614e-64,2.847857319790270025e-65,9.404761412936969448e-67,3.055733557656370040e-68,9.770894513908900622e-70,3.075485906982360175e-71,9.531467583684830391e-73,2.909211061584469816e-74,8.747013928109549767e-76,2.591255852131170079e-77,7.565203167892110341e-79,2.177117888766820060e-80,6.177076617249239466e-82,1.728263198707800134e-83,4.769209635421640046e-85,1.298297089601710029e-86,3.487162700386649814e-88,9.243107605370860222e-90,2.418169139180570041e-91 +1.333919565423110076e-01,2.687132200585030106e-01,2.706564792432070155e-01,1.817425276914919896e-01,9.152841952292280203e-02,3.687613102678920229e-02,1.238093631275869952e-02,3.562991941920300165e-03,8.971896268837399645e-04,2.008173005431940087e-04,4.045391106869420175e-05,7.408447725312220038e-06,1.243670592731910048e-06,1.927176111016150063e-07,2.773018445759939851e-08,3.724096190689580129e-09,4.688784771715189570e-10,5.556109126587969783e-11,6.218099289668739857e-12,6.592701949802110250e-13,6.640378534575920511e-14,6.369904669652750111e-15,5.832700042303749835e-16,5.108591743394630075e-17,4.287946380336490346e-18,3.455164491669909846e-19,2.677039445529770118e-20,1.997332629172289902e-21,1.436983416137460090e-22,9.981898483291519574e-24,6.702723195786210199e-25,4.355609950694019771e-26,2.741942818153079984e-27,1.673801081893609976e-28,9.917091442651010645e-30,5.707890906609280412e-31,3.193982657940519993e-32,1.738962514142409906e-33,9.218622141228640243e-35,4.761686486996669991e-36,2.398060838893399871e-37,1.178245340070309952e-38,5.651267058519989767e-40,2.647504859674920148e-41,1.212114035284830033e-42,5.426132028785949989e-44,2.376248828139349946e-45,1.018482211915680085e-46,4.274364965323089741e-48,1.757255503086640139e-49,7.079853942320110015e-51,2.796491558689100024e-52,1.083351925754989953e-53,4.117684623488480005e-55,1.536097248934470071e-56,5.626203187327250246e-58,2.023889400775310143e-59,7.152721422361519750e-61,2.484292383456649903e-62,8.482230827886909614e-64,2.847857319790270025e-65,9.404761412936969448e-67,3.055733557656370040e-68,9.770894513908900622e-70,3.075485906982360175e-71,9.531467583684830391e-73,2.909211061584469816e-74,8.747013928109549767e-76,2.591255852131170079e-77,7.565203167892110341e-79,2.177117888766820060e-80,6.177076617249239466e-82,1.728263198707800134e-83,4.769209635421640046e-85,1.298297089601710029e-86,3.487162700386649814e-88,9.243107605370860222e-90,2.418169139180570041e-91 +1.333919565423110076e-01,2.687132200585030106e-01,2.706564792432070155e-01,1.817425276914919896e-01,9.152841952292280203e-02,3.687613102678920229e-02,1.238093631275869952e-02,3.562991941920300165e-03,8.971896268837399645e-04,2.008173005431940087e-04,4.045391106869420175e-05,7.408447725312220038e-06,1.243670592731910048e-06,1.927176111016150063e-07,2.773018445759939851e-08,3.724096190689580129e-09,4.688784771715189570e-10,5.556109126587969783e-11,6.218099289668739857e-12,6.592701949802110250e-13,6.640378534575920511e-14,6.369904669652750111e-15,5.832700042303749835e-16,5.108591743394630075e-17,4.287946380336490346e-18,3.455164491669909846e-19,2.677039445529770118e-20,1.997332629172289902e-21,1.436983416137460090e-22,9.981898483291519574e-24,6.702723195786210199e-25,4.355609950694019771e-26,2.741942818153079984e-27,1.673801081893609976e-28,9.917091442651010645e-30,5.707890906609280412e-31,3.193982657940519993e-32,1.738962514142409906e-33,9.218622141228640243e-35,4.761686486996669991e-36,2.398060838893399871e-37,1.178245340070309952e-38,5.651267058519989767e-40,2.647504859674920148e-41,1.212114035284830033e-42,5.426132028785949989e-44,2.376248828139349946e-45,1.018482211915680085e-46,4.274364965323089741e-48,1.757255503086640139e-49,7.079853942320110015e-51,2.796491558689100024e-52,1.083351925754989953e-53,4.117684623488480005e-55,1.536097248934470071e-56,5.626203187327250246e-58,2.023889400775310143e-59,7.152721422361519750e-61,2.484292383456649903e-62,8.482230827886909614e-64,2.847857319790270025e-65,9.404761412936969448e-67,3.055733557656370040e-68,9.770894513908900622e-70,3.075485906982360175e-71,9.531467583684830391e-73,2.909211061584469816e-74,8.747013928109549767e-76,2.591255852131170079e-77,7.565203167892110341e-79,2.177117888766820060e-80,6.177076617249239466e-82,1.728263198707800134e-83,4.769209635421640046e-85,1.298297089601710029e-86,3.487162700386649814e-88,9.243107605370860222e-90,2.418169139180570041e-91 +6.677236706914149722e-02,1.807171379171219894e-01,2.445523902360579871e-01,2.206242391082149923e-01,1.492779977587669893e-01,8.080316362314529655e-02,3.644850184184490055e-02,1.409237559817990044e-02,4.767566840035520302e-03,1.433695257779719900e-03,3.880247398793200257e-04,9.547052240857170245e-05,2.153230984915289973e-05,4.482804880433699934e-06,8.666113408795699637e-07,1.563636057693420063e-07,2.644954843350119886e-08,4.210870720318439989e-09,6.331432348412589583e-10,9.018845299915960347e-11,1.220459885921379931e-11,1.572920535897050023e-12,1.935025397039970029e-13,2.276991456842229872e-14,2.567749936612830041e-15,2.779811109293379816e-16,2.893640044826539877e-17,2.900569723988320002e-18,2.803676141238819947e-19,2.616570349282930052e-20,2.360552852607340020e-21,2.060889006547770051e-22,1.743039351342540089e-23,1.429538380320170067e-24,1.137940279849379960e-25,8.799418917967580676e-27,6.615368801947009817e-28,4.838992003643349791e-29,3.446465024563690071e-30,2.391728266435230149e-31,1.618282779080190046e-32,1.068250546367870080e-33,6.883770786930810222e-35,4.332718894634050126e-36,2.665080945926620121e-37,1.602877963529780080e-38,9.430727459445960715e-40,5.430626118909939723e-41,3.062042641990719784e-42,1.691288602039770028e-43,9.154830028295490432e-45,4.858281520704990124e-46,2.528610291244960129e-47,1.291244840702780020e-48,6.471685546885579743e-50,3.184617559268610027e-51,1.539117676787800028e-52,7.308016818024510248e-54,3.410154945652020343e-55,1.564316652009720085e-56,7.056282924505830317e-58,3.130752372679960156e-59,1.366657209126430033e-60,5.871128893197960426e-62,2.482814131458510057e-63,1.033792601321860075e-64,4.239279508355270011e-66,1.712457558904970074e-67,6.815747169285779516e-69,2.673418498830410108e-70,1.033645162704290011e-71,3.940176673121210209e-73,1.481104722966550041e-74,5.491177400082089941e-76,2.008335765177909853e-77,7.247323154576439719e-79,2.580872809373470101e-80,9.071486209785800215e-82 +6.677236706914149722e-02,1.807171379171219894e-01,2.445523902360579871e-01,2.206242391082149923e-01,1.492779977587669893e-01,8.080316362314529655e-02,3.644850184184490055e-02,1.409237559817990044e-02,4.767566840035520302e-03,1.433695257779719900e-03,3.880247398793200257e-04,9.547052240857170245e-05,2.153230984915289973e-05,4.482804880433699934e-06,8.666113408795699637e-07,1.563636057693420063e-07,2.644954843350119886e-08,4.210870720318439989e-09,6.331432348412589583e-10,9.018845299915960347e-11,1.220459885921379931e-11,1.572920535897050023e-12,1.935025397039970029e-13,2.276991456842229872e-14,2.567749936612830041e-15,2.779811109293379816e-16,2.893640044826539877e-17,2.900569723988320002e-18,2.803676141238819947e-19,2.616570349282930052e-20,2.360552852607340020e-21,2.060889006547770051e-22,1.743039351342540089e-23,1.429538380320170067e-24,1.137940279849379960e-25,8.799418917967580676e-27,6.615368801947009817e-28,4.838992003643349791e-29,3.446465024563690071e-30,2.391728266435230149e-31,1.618282779080190046e-32,1.068250546367870080e-33,6.883770786930810222e-35,4.332718894634050126e-36,2.665080945926620121e-37,1.602877963529780080e-38,9.430727459445960715e-40,5.430626118909939723e-41,3.062042641990719784e-42,1.691288602039770028e-43,9.154830028295490432e-45,4.858281520704990124e-46,2.528610291244960129e-47,1.291244840702780020e-48,6.471685546885579743e-50,3.184617559268610027e-51,1.539117676787800028e-52,7.308016818024510248e-54,3.410154945652020343e-55,1.564316652009720085e-56,7.056282924505830317e-58,3.130752372679960156e-59,1.366657209126430033e-60,5.871128893197960426e-62,2.482814131458510057e-63,1.033792601321860075e-64,4.239279508355270011e-66,1.712457558904970074e-67,6.815747169285779516e-69,2.673418498830410108e-70,1.033645162704290011e-71,3.940176673121210209e-73,1.481104722966550041e-74,5.491177400082089941e-76,2.008335765177909853e-77,7.247323154576439719e-79,2.580872809373470101e-80,9.071486209785800215e-82 +6.677236706914149722e-02,1.807171379171219894e-01,2.445523902360579871e-01,2.206242391082149923e-01,1.492779977587669893e-01,8.080316362314529655e-02,3.644850184184490055e-02,1.409237559817990044e-02,4.767566840035520302e-03,1.433695257779719900e-03,3.880247398793200257e-04,9.547052240857170245e-05,2.153230984915289973e-05,4.482804880433699934e-06,8.666113408795699637e-07,1.563636057693420063e-07,2.644954843350119886e-08,4.210870720318439989e-09,6.331432348412589583e-10,9.018845299915960347e-11,1.220459885921379931e-11,1.572920535897050023e-12,1.935025397039970029e-13,2.276991456842229872e-14,2.567749936612830041e-15,2.779811109293379816e-16,2.893640044826539877e-17,2.900569723988320002e-18,2.803676141238819947e-19,2.616570349282930052e-20,2.360552852607340020e-21,2.060889006547770051e-22,1.743039351342540089e-23,1.429538380320170067e-24,1.137940279849379960e-25,8.799418917967580676e-27,6.615368801947009817e-28,4.838992003643349791e-29,3.446465024563690071e-30,2.391728266435230149e-31,1.618282779080190046e-32,1.068250546367870080e-33,6.883770786930810222e-35,4.332718894634050126e-36,2.665080945926620121e-37,1.602877963529780080e-38,9.430727459445960715e-40,5.430626118909939723e-41,3.062042641990719784e-42,1.691288602039770028e-43,9.154830028295490432e-45,4.858281520704990124e-46,2.528610291244960129e-47,1.291244840702780020e-48,6.471685546885579743e-50,3.184617559268610027e-51,1.539117676787800028e-52,7.308016818024510248e-54,3.410154945652020343e-55,1.564316652009720085e-56,7.056282924505830317e-58,3.130752372679960156e-59,1.366657209126430033e-60,5.871128893197960426e-62,2.482814131458510057e-63,1.033792601321860075e-64,4.239279508355270011e-66,1.712457558904970074e-67,6.815747169285779516e-69,2.673418498830410108e-70,1.033645162704290011e-71,3.940176673121210209e-73,1.481104722966550041e-74,5.491177400082089941e-76,2.008335765177909853e-77,7.247323154576439719e-79,2.580872809373470101e-80,9.071486209785800215e-82 +6.094717344643320323e-02,1.705148203702830101e-01,2.385287317012670105e-01,2.224477447120130069e-01,1.555881720449300010e-01,8.705929318050910359e-02,4.059499098096139985e-02,1.622493523870120052e-02,5.674159606799010144e-03,1.763874172398409912e-03,4.934875083692609942e-04,1.255139627651479894e-04,2.926303442339809962e-05,6.297737704049639777e-06,1.258534414337640043e-06,2.347374591858240106e-07,4.104601311251369910e-08,6.755081932164609983e-09,1.049945311575579998e-09,1.546043255063920063e-10,2.162719557073530036e-11,2.881306609925340195e-12,3.664167830186849948e-13,4.457138035820660089e-14,5.195811720808610039e-15,5.814628322543409918e-16,6.256870612269250328e-17,6.483387401719810006e-18,6.478172440637300017e-19,6.249756099273779767e-20,5.828413790522900100e-21,5.260139307935130168e-22,4.598919741144429800e-23,3.898975025442739754e-24,3.208337881213030108e-25,2.564605784539589986e-26,1.993088941449819837e-27,1.507070324141679995e-28,1.109579653272490056e-29,7.959805212446000830e-31,5.567381878568899536e-32,3.799056194497189755e-33,2.530666930180799844e-34,1.646550659100810101e-35,1.046962155132540003e-36,6.509191256107939482e-38,3.958929458827670122e-39,2.356614080887749924e-40,1.373585803770659962e-41,7.842748284398970332e-43,4.388406350292759781e-44,2.407383178044630119e-45,1.295240574602199963e-46,6.837276352604559529e-48,3.542402753193249791e-49,1.801954455676919977e-50,9.002525200756590260e-52,4.418735976602629921e-53,2.131467043669439912e-54,1.010730039025590036e-55,4.712946236923630252e-57,2.161579501895790081e-58,9.754119828998039551e-60,4.331677346603449674e-61,1.893584494189239967e-62,8.150418232310489797e-64,3.454971919860470203e-65,1.442707475327479914e-66,5.935781858562689887e-68,2.406785598644789811e-69,9.619398730687060225e-71,3.790514313706039803e-72,1.472903205357679972e-73,5.644947535693739555e-75,2.134208046478959917e-76,7.961301153104999858e-78,2.930751681442179965e-79,1.064870657977030031e-80 +6.094717344643320323e-02,1.705148203702830101e-01,2.385287317012670105e-01,2.224477447120130069e-01,1.555881720449300010e-01,8.705929318050910359e-02,4.059499098096139985e-02,1.622493523870120052e-02,5.674159606799010144e-03,1.763874172398409912e-03,4.934875083692609942e-04,1.255139627651479894e-04,2.926303442339809962e-05,6.297737704049639777e-06,1.258534414337640043e-06,2.347374591858240106e-07,4.104601311251369910e-08,6.755081932164609983e-09,1.049945311575579998e-09,1.546043255063920063e-10,2.162719557073530036e-11,2.881306609925340195e-12,3.664167830186849948e-13,4.457138035820660089e-14,5.195811720808610039e-15,5.814628322543409918e-16,6.256870612269250328e-17,6.483387401719810006e-18,6.478172440637300017e-19,6.249756099273779767e-20,5.828413790522900100e-21,5.260139307935130168e-22,4.598919741144429800e-23,3.898975025442739754e-24,3.208337881213030108e-25,2.564605784539589986e-26,1.993088941449819837e-27,1.507070324141679995e-28,1.109579653272490056e-29,7.959805212446000830e-31,5.567381878568899536e-32,3.799056194497189755e-33,2.530666930180799844e-34,1.646550659100810101e-35,1.046962155132540003e-36,6.509191256107939482e-38,3.958929458827670122e-39,2.356614080887749924e-40,1.373585803770659962e-41,7.842748284398970332e-43,4.388406350292759781e-44,2.407383178044630119e-45,1.295240574602199963e-46,6.837276352604559529e-48,3.542402753193249791e-49,1.801954455676919977e-50,9.002525200756590260e-52,4.418735976602629921e-53,2.131467043669439912e-54,1.010730039025590036e-55,4.712946236923630252e-57,2.161579501895790081e-58,9.754119828998039551e-60,4.331677346603449674e-61,1.893584494189239967e-62,8.150418232310489797e-64,3.454971919860470203e-65,1.442707475327479914e-66,5.935781858562689887e-68,2.406785598644789811e-69,9.619398730687060225e-71,3.790514313706039803e-72,1.472903205357679972e-73,5.644947535693739555e-75,2.134208046478959917e-76,7.961301153104999858e-78,2.930751681442179965e-79,1.064870657977030031e-80 +6.094717344643320323e-02,1.705148203702830101e-01,2.385287317012670105e-01,2.224477447120130069e-01,1.555881720449300010e-01,8.705929318050910359e-02,4.059499098096139985e-02,1.622493523870120052e-02,5.674159606799010144e-03,1.763874172398409912e-03,4.934875083692609942e-04,1.255139627651479894e-04,2.926303442339809962e-05,6.297737704049639777e-06,1.258534414337640043e-06,2.347374591858240106e-07,4.104601311251369910e-08,6.755081932164609983e-09,1.049945311575579998e-09,1.546043255063920063e-10,2.162719557073530036e-11,2.881306609925340195e-12,3.664167830186849948e-13,4.457138035820660089e-14,5.195811720808610039e-15,5.814628322543409918e-16,6.256870612269250328e-17,6.483387401719810006e-18,6.478172440637300017e-19,6.249756099273779767e-20,5.828413790522900100e-21,5.260139307935130168e-22,4.598919741144429800e-23,3.898975025442739754e-24,3.208337881213030108e-25,2.564605784539589986e-26,1.993088941449819837e-27,1.507070324141679995e-28,1.109579653272490056e-29,7.959805212446000830e-31,5.567381878568899536e-32,3.799056194497189755e-33,2.530666930180799844e-34,1.646550659100810101e-35,1.046962155132540003e-36,6.509191256107939482e-38,3.958929458827670122e-39,2.356614080887749924e-40,1.373585803770659962e-41,7.842748284398970332e-43,4.388406350292759781e-44,2.407383178044630119e-45,1.295240574602199963e-46,6.837276352604559529e-48,3.542402753193249791e-49,1.801954455676919977e-50,9.002525200756590260e-52,4.418735976602629921e-53,2.131467043669439912e-54,1.010730039025590036e-55,4.712946236923630252e-57,2.161579501895790081e-58,9.754119828998039551e-60,4.331677346603449674e-61,1.893584494189239967e-62,8.150418232310489797e-64,3.454971919860470203e-65,1.442707475327479914e-66,5.935781858562689887e-68,2.406785598644789811e-69,9.619398730687060225e-71,3.790514313706039803e-72,1.472903205357679972e-73,5.644947535693739555e-75,2.134208046478959917e-76,7.961301153104999858e-78,2.930751681442179965e-79,1.064870657977030031e-80 +8.984874031306809561e-02,2.165020121871240044e-01,2.608446212921259888e-01,2.095128070471860005e-01,1.262119650944369953e-01,6.082476907261089721e-02,2.442750792267199891e-02,8.408742769153439156e-03,2.532742422351009787e-03,6.781073624157900369e-04,1.633986274380400106e-04,3.579362331694719809e-05,7.187442143118479669e-06,1.332235352131080093e-06,2.292993706010720093e-07,3.683507411485500319e-08,5.547425899587209658e-09,7.863077077782209791e-10,1.052616012317899989e-10,1.334954045122720074e-11,1.608371113158360015e-12,1.845512172956600014e-13,2.021362375601920020e-14,2.117709018765709998e-15,2.126204284148589904e-16,2.049344283448330153e-17,1.899291047310629841e-18,1.695031218842770078e-19,1.458712197541100120e-20,1.212052860937910031e-21,9.735320434316260038e-23,7.567257305828090381e-24,5.698210221635190013e-25,4.160777305821780031e-26,2.948801232441709988e-27,2.030146596980669975e-28,1.358860401720279869e-29,8.849588229835910112e-31,5.611634948947640501e-32,3.467166906472690015e-33,2.088645342228500040e-34,1.227526254225159918e-35,7.042574397981500328e-37,3.946507499593260237e-38,2.161275848408160015e-39,1.157304471298420028e-40,6.062332380152069765e-42,3.108077434758540080e-43,1.560272799211289890e-44,7.672809253642249954e-46,3.697722720993799788e-47,1.747085302488640051e-48,8.095817527353799661e-50,3.680736991056809739e-51,1.642445510661769936e-52,7.195785772378049714e-54,3.096279396029869848e-55,1.308926413237920060e-56,5.437974696436000197e-58,2.220931251335500092e-59,8.919362385567469752e-61,3.523334843180320201e-62,1.369342771654159881e-63,5.237470244196899605e-65,1.971930203695300069e-66,7.310180943336780032e-68,2.668911271034010122e-69,9.598630581289060471e-71,3.401342057919600120e-72,1.187821448033470064e-73,4.088867781279710015e-75,1.387697043534789919e-76,4.644212799332200205e-78,1.532989553388179954e-79,4.991802797016850093e-81,1.603784829525469945e-82,5.084900430516129677e-84,1.591261929428149973e-85 +8.984874031306809561e-02,2.165020121871240044e-01,2.608446212921259888e-01,2.095128070471860005e-01,1.262119650944369953e-01,6.082476907261089721e-02,2.442750792267199891e-02,8.408742769153439156e-03,2.532742422351009787e-03,6.781073624157900369e-04,1.633986274380400106e-04,3.579362331694719809e-05,7.187442143118479669e-06,1.332235352131080093e-06,2.292993706010720093e-07,3.683507411485500319e-08,5.547425899587209658e-09,7.863077077782209791e-10,1.052616012317899989e-10,1.334954045122720074e-11,1.608371113158360015e-12,1.845512172956600014e-13,2.021362375601920020e-14,2.117709018765709998e-15,2.126204284148589904e-16,2.049344283448330153e-17,1.899291047310629841e-18,1.695031218842770078e-19,1.458712197541100120e-20,1.212052860937910031e-21,9.735320434316260038e-23,7.567257305828090381e-24,5.698210221635190013e-25,4.160777305821780031e-26,2.948801232441709988e-27,2.030146596980669975e-28,1.358860401720279869e-29,8.849588229835910112e-31,5.611634948947640501e-32,3.467166906472690015e-33,2.088645342228500040e-34,1.227526254225159918e-35,7.042574397981500328e-37,3.946507499593260237e-38,2.161275848408160015e-39,1.157304471298420028e-40,6.062332380152069765e-42,3.108077434758540080e-43,1.560272799211289890e-44,7.672809253642249954e-46,3.697722720993799788e-47,1.747085302488640051e-48,8.095817527353799661e-50,3.680736991056809739e-51,1.642445510661769936e-52,7.195785772378049714e-54,3.096279396029869848e-55,1.308926413237920060e-56,5.437974696436000197e-58,2.220931251335500092e-59,8.919362385567469752e-61,3.523334843180320201e-62,1.369342771654159881e-63,5.237470244196899605e-65,1.971930203695300069e-66,7.310180943336780032e-68,2.668911271034010122e-69,9.598630581289060471e-71,3.401342057919600120e-72,1.187821448033470064e-73,4.088867781279710015e-75,1.387697043534789919e-76,4.644212799332200205e-78,1.532989553388179954e-79,4.991802797016850093e-81,1.603784829525469945e-82,5.084900430516129677e-84,1.591261929428149973e-85 +8.984874031306809561e-02,2.165020121871240044e-01,2.608446212921259888e-01,2.095128070471860005e-01,1.262119650944369953e-01,6.082476907261089721e-02,2.442750792267199891e-02,8.408742769153439156e-03,2.532742422351009787e-03,6.781073624157900369e-04,1.633986274380400106e-04,3.579362331694719809e-05,7.187442143118479669e-06,1.332235352131080093e-06,2.292993706010720093e-07,3.683507411485500319e-08,5.547425899587209658e-09,7.863077077782209791e-10,1.052616012317899989e-10,1.334954045122720074e-11,1.608371113158360015e-12,1.845512172956600014e-13,2.021362375601920020e-14,2.117709018765709998e-15,2.126204284148589904e-16,2.049344283448330153e-17,1.899291047310629841e-18,1.695031218842770078e-19,1.458712197541100120e-20,1.212052860937910031e-21,9.735320434316260038e-23,7.567257305828090381e-24,5.698210221635190013e-25,4.160777305821780031e-26,2.948801232441709988e-27,2.030146596980669975e-28,1.358860401720279869e-29,8.849588229835910112e-31,5.611634948947640501e-32,3.467166906472690015e-33,2.088645342228500040e-34,1.227526254225159918e-35,7.042574397981500328e-37,3.946507499593260237e-38,2.161275848408160015e-39,1.157304471298420028e-40,6.062332380152069765e-42,3.108077434758540080e-43,1.560272799211289890e-44,7.672809253642249954e-46,3.697722720993799788e-47,1.747085302488640051e-48,8.095817527353799661e-50,3.680736991056809739e-51,1.642445510661769936e-52,7.195785772378049714e-54,3.096279396029869848e-55,1.308926413237920060e-56,5.437974696436000197e-58,2.220931251335500092e-59,8.919362385567469752e-61,3.523334843180320201e-62,1.369342771654159881e-63,5.237470244196899605e-65,1.971930203695300069e-66,7.310180943336780032e-68,2.668911271034010122e-69,9.598630581289060471e-71,3.401342057919600120e-72,1.187821448033470064e-73,4.088867781279710015e-75,1.387697043534789919e-76,4.644212799332200205e-78,1.532989553388179954e-79,4.991802797016850093e-81,1.603784829525469945e-82,5.084900430516129677e-84,1.591261929428149973e-85 +7.490357668545119529e-02,1.941166365677090000e-01,2.515318377291799745e-01,2.172860829451200015e-01,1.407771346200339946e-01,7.296629904026590008e-02,3.151601294014309829e-02,1.166791970744679961e-02,3.779754968949949976e-03,1.088381970661640068e-03,2.820600254284109975e-04,6.645215315380820524e-05,1.435119326485279959e-05,2.860914392138140178e-06,5.295866498206079942e-07,9.149681388917869806e-08,1.481993129932099982e-08,2.259214520924909904e-09,3.252708671105680124e-10,4.436615255800080248e-11,5.748863200601840167e-12,7.094517778535250055e-13,8.357192431922580381e-14,9.416570626216260002e-15,1.016814493852260068e-15,1.054051719793159981e-16,1.050627526074630029e-17,1.008428735596160024e-18,9.333561275632560541e-20,8.340836092435070447e-21,7.205241369737989667e-22,6.023474024415860231e-23,4.878173754400329866e-24,3.830923919426219895e-25,2.920013181074190032e-26,2.162105936824460038e-27,1.556448195472559991e-28,1.090167292284080028e-29,7.434807923756800254e-31,4.940436798369769767e-32,3.200851738035739757e-33,2.023214381104890071e-34,1.248397282704009892e-35,7.523926786394099408e-37,4.431513596867370035e-38,2.552112261876139899e-39,1.437812133426080064e-40,7.928015454042819800e-42,4.280391100509650271e-43,2.263849617021769984e-44,1.173377541627389977e-45,5.962491833983170183e-47,2.971561037824159997e-48,1.453011285757459996e-49,6.973253114631120223e-51,3.285738085358960072e-52,1.520565443687369965e-53,6.913380536077539831e-55,3.089033874272489970e-56,1.356846944243409967e-57,5.860569388200929590e-59,2.489832772401330243e-60,1.040731480050659978e-61,4.281129288962499826e-63,1.733558777871280039e-64,6.911708546738989806e-66,2.713949003140849847e-67,1.049752896888139934e-68,4.000721967147890067e-70,1.502621096194889930e-71,5.563033095086130080e-73,2.030549105514110163e-74,7.308717943158739549e-76,2.594648570665790029e-77,9.086717485809730119e-79,3.139828766243740067e-80,1.070662455007230018e-81,3.603479453308719727e-83 +7.490357668545119529e-02,1.941166365677090000e-01,2.515318377291799745e-01,2.172860829451200015e-01,1.407771346200339946e-01,7.296629904026590008e-02,3.151601294014309829e-02,1.166791970744679961e-02,3.779754968949949976e-03,1.088381970661640068e-03,2.820600254284109975e-04,6.645215315380820524e-05,1.435119326485279959e-05,2.860914392138140178e-06,5.295866498206079942e-07,9.149681388917869806e-08,1.481993129932099982e-08,2.259214520924909904e-09,3.252708671105680124e-10,4.436615255800080248e-11,5.748863200601840167e-12,7.094517778535250055e-13,8.357192431922580381e-14,9.416570626216260002e-15,1.016814493852260068e-15,1.054051719793159981e-16,1.050627526074630029e-17,1.008428735596160024e-18,9.333561275632560541e-20,8.340836092435070447e-21,7.205241369737989667e-22,6.023474024415860231e-23,4.878173754400329866e-24,3.830923919426219895e-25,2.920013181074190032e-26,2.162105936824460038e-27,1.556448195472559991e-28,1.090167292284080028e-29,7.434807923756800254e-31,4.940436798369769767e-32,3.200851738035739757e-33,2.023214381104890071e-34,1.248397282704009892e-35,7.523926786394099408e-37,4.431513596867370035e-38,2.552112261876139899e-39,1.437812133426080064e-40,7.928015454042819800e-42,4.280391100509650271e-43,2.263849617021769984e-44,1.173377541627389977e-45,5.962491833983170183e-47,2.971561037824159997e-48,1.453011285757459996e-49,6.973253114631120223e-51,3.285738085358960072e-52,1.520565443687369965e-53,6.913380536077539831e-55,3.089033874272489970e-56,1.356846944243409967e-57,5.860569388200929590e-59,2.489832772401330243e-60,1.040731480050659978e-61,4.281129288962499826e-63,1.733558777871280039e-64,6.911708546738989806e-66,2.713949003140849847e-67,1.049752896888139934e-68,4.000721967147890067e-70,1.502621096194889930e-71,5.563033095086130080e-73,2.030549105514110163e-74,7.308717943158739549e-76,2.594648570665790029e-77,9.086717485809730119e-79,3.139828766243740067e-80,1.070662455007230018e-81,3.603479453308719727e-83 +7.490357668545119529e-02,1.941166365677090000e-01,2.515318377291799745e-01,2.172860829451200015e-01,1.407771346200339946e-01,7.296629904026590008e-02,3.151601294014309829e-02,1.166791970744679961e-02,3.779754968949949976e-03,1.088381970661640068e-03,2.820600254284109975e-04,6.645215315380820524e-05,1.435119326485279959e-05,2.860914392138140178e-06,5.295866498206079942e-07,9.149681388917869806e-08,1.481993129932099982e-08,2.259214520924909904e-09,3.252708671105680124e-10,4.436615255800080248e-11,5.748863200601840167e-12,7.094517778535250055e-13,8.357192431922580381e-14,9.416570626216260002e-15,1.016814493852260068e-15,1.054051719793159981e-16,1.050627526074630029e-17,1.008428735596160024e-18,9.333561275632560541e-20,8.340836092435070447e-21,7.205241369737989667e-22,6.023474024415860231e-23,4.878173754400329866e-24,3.830923919426219895e-25,2.920013181074190032e-26,2.162105936824460038e-27,1.556448195472559991e-28,1.090167292284080028e-29,7.434807923756800254e-31,4.940436798369769767e-32,3.200851738035739757e-33,2.023214381104890071e-34,1.248397282704009892e-35,7.523926786394099408e-37,4.431513596867370035e-38,2.552112261876139899e-39,1.437812133426080064e-40,7.928015454042819800e-42,4.280391100509650271e-43,2.263849617021769984e-44,1.173377541627389977e-45,5.962491833983170183e-47,2.971561037824159997e-48,1.453011285757459996e-49,6.973253114631120223e-51,3.285738085358960072e-52,1.520565443687369965e-53,6.913380536077539831e-55,3.089033874272489970e-56,1.356846944243409967e-57,5.860569388200929590e-59,2.489832772401330243e-60,1.040731480050659978e-61,4.281129288962499826e-63,1.733558777871280039e-64,6.911708546738989806e-66,2.713949003140849847e-67,1.049752896888139934e-68,4.000721967147890067e-70,1.502621096194889930e-71,5.563033095086130080e-73,2.030549105514110163e-74,7.308717943158739549e-76,2.594648570665790029e-77,9.086717485809730119e-79,3.139828766243740067e-80,1.070662455007230018e-81,3.603479453308719727e-83 +7.490357668545119529e-02,1.941166365677090000e-01,2.515318377291799745e-01,2.172860829451200015e-01,1.407771346200339946e-01,7.296629904026590008e-02,3.151601294014309829e-02,1.166791970744679961e-02,3.779754968949949976e-03,1.088381970661640068e-03,2.820600254284109975e-04,6.645215315380820524e-05,1.435119326485279959e-05,2.860914392138140178e-06,5.295866498206079942e-07,9.149681388917869806e-08,1.481993129932099982e-08,2.259214520924909904e-09,3.252708671105680124e-10,4.436615255800080248e-11,5.748863200601840167e-12,7.094517778535250055e-13,8.357192431922580381e-14,9.416570626216260002e-15,1.016814493852260068e-15,1.054051719793159981e-16,1.050627526074630029e-17,1.008428735596160024e-18,9.333561275632560541e-20,8.340836092435070447e-21,7.205241369737989667e-22,6.023474024415860231e-23,4.878173754400329866e-24,3.830923919426219895e-25,2.920013181074190032e-26,2.162105936824460038e-27,1.556448195472559991e-28,1.090167292284080028e-29,7.434807923756800254e-31,4.940436798369769767e-32,3.200851738035739757e-33,2.023214381104890071e-34,1.248397282704009892e-35,7.523926786394099408e-37,4.431513596867370035e-38,2.552112261876139899e-39,1.437812133426080064e-40,7.928015454042819800e-42,4.280391100509650271e-43,2.263849617021769984e-44,1.173377541627389977e-45,5.962491833983170183e-47,2.971561037824159997e-48,1.453011285757459996e-49,6.973253114631120223e-51,3.285738085358960072e-52,1.520565443687369965e-53,6.913380536077539831e-55,3.089033874272489970e-56,1.356846944243409967e-57,5.860569388200929590e-59,2.489832772401330243e-60,1.040731480050659978e-61,4.281129288962499826e-63,1.733558777871280039e-64,6.911708546738989806e-66,2.713949003140849847e-67,1.049752896888139934e-68,4.000721967147890067e-70,1.502621096194889930e-71,5.563033095086130080e-73,2.030549105514110163e-74,7.308717943158739549e-76,2.594648570665790029e-77,9.086717485809730119e-79,3.139828766243740067e-80,1.070662455007230018e-81,3.603479453308719727e-83 +7.490357668545119529e-02,1.941166365677090000e-01,2.515318377291799745e-01,2.172860829451200015e-01,1.407771346200339946e-01,7.296629904026590008e-02,3.151601294014309829e-02,1.166791970744679961e-02,3.779754968949949976e-03,1.088381970661640068e-03,2.820600254284109975e-04,6.645215315380820524e-05,1.435119326485279959e-05,2.860914392138140178e-06,5.295866498206079942e-07,9.149681388917869806e-08,1.481993129932099982e-08,2.259214520924909904e-09,3.252708671105680124e-10,4.436615255800080248e-11,5.748863200601840167e-12,7.094517778535250055e-13,8.357192431922580381e-14,9.416570626216260002e-15,1.016814493852260068e-15,1.054051719793159981e-16,1.050627526074630029e-17,1.008428735596160024e-18,9.333561275632560541e-20,8.340836092435070447e-21,7.205241369737989667e-22,6.023474024415860231e-23,4.878173754400329866e-24,3.830923919426219895e-25,2.920013181074190032e-26,2.162105936824460038e-27,1.556448195472559991e-28,1.090167292284080028e-29,7.434807923756800254e-31,4.940436798369769767e-32,3.200851738035739757e-33,2.023214381104890071e-34,1.248397282704009892e-35,7.523926786394099408e-37,4.431513596867370035e-38,2.552112261876139899e-39,1.437812133426080064e-40,7.928015454042819800e-42,4.280391100509650271e-43,2.263849617021769984e-44,1.173377541627389977e-45,5.962491833983170183e-47,2.971561037824159997e-48,1.453011285757459996e-49,6.973253114631120223e-51,3.285738085358960072e-52,1.520565443687369965e-53,6.913380536077539831e-55,3.089033874272489970e-56,1.356846944243409967e-57,5.860569388200929590e-59,2.489832772401330243e-60,1.040731480050659978e-61,4.281129288962499826e-63,1.733558777871280039e-64,6.911708546738989806e-66,2.713949003140849847e-67,1.049752896888139934e-68,4.000721967147890067e-70,1.502621096194889930e-71,5.563033095086130080e-73,2.030549105514110163e-74,7.308717943158739549e-76,2.594648570665790029e-77,9.086717485809730119e-79,3.139828766243740067e-80,1.070662455007230018e-81,3.603479453308719727e-83 +1.966976057298369940e-01,3.198475623819980185e-01,2.600500976667139974e-01,1.409547573075889959e-01,5.730120018962110012e-02,1.863535566099979932e-02,5.050453851210079739e-03,1.173211573920090013e-03,2.384681175225460104e-04,4.308556432341399911e-05,7.006090730776149603e-06,1.035683467593529906e-06,1.403426812102430097e-07,1.755457779456169952e-08,2.038948820305120036e-09,2.210339766893990049e-10,2.246378978069679956e-11,2.148711343443400142e-12,1.941107301097100039e-13,1.661268819409479877e-14,1.350684418292179922e-15,1.045872073374320001e-16,7.730362460575530633e-18,5.465325005886049859e-19,3.702957462445780275e-20,2.408533471615809858e-21,1.506341044423469987e-22,9.072009938095790444e-24,5.268530003269949637e-25,2.954169645381540188e-26,1.601246333481010056e-27,8.399248415938290540e-29,4.268098361109030113e-30,2.103121926585920025e-31,1.005841397292380006e-32,4.673103857977569817e-34,2.110799118081820028e-35,9.276606858525839519e-37,3.969625407951149788e-38,1.655117731308789974e-39,6.728416569308079558e-41,2.668535511653359980e-42,1.033160200357850035e-43,3.906997954981170091e-45,1.443891231711010018e-46,5.217541798560720151e-48,1.844387103862010054e-49,6.381138790025569547e-51,2.161727388213799831e-52,7.173792597173609798e-54,2.333043218016079856e-55,7.438692040590149620e-57,2.326147273770329869e-58,7.136829302650469589e-60,2.149094542694320158e-61,6.353847741042310350e-63,1.844984611365860164e-64,5.263345317421040357e-66,1.475631244411250010e-67,4.066959075292650080e-69,1.102205372313399975e-70,2.938168241456250100e-72,7.705998893425169526e-74,1.988988923180449946e-75,5.053547616939980383e-77,1.264232577218619929e-78,3.114777388543780041e-80,7.559554149665810291e-82,1.807720325837389929e-83,4.260162077709120143e-85,9.896281806726059244e-87,2.266510194014309944e-88,5.118811676399559712e-90,1.140224224376389956e-91,2.505546778349790061e-93,5.432318483767559762e-95,1.162292948602590001e-96,2.454532853984980055e-98 +1.966976057298369940e-01,3.198475623819980185e-01,2.600500976667139974e-01,1.409547573075889959e-01,5.730120018962110012e-02,1.863535566099979932e-02,5.050453851210079739e-03,1.173211573920090013e-03,2.384681175225460104e-04,4.308556432341399911e-05,7.006090730776149603e-06,1.035683467593529906e-06,1.403426812102430097e-07,1.755457779456169952e-08,2.038948820305120036e-09,2.210339766893990049e-10,2.246378978069679956e-11,2.148711343443400142e-12,1.941107301097100039e-13,1.661268819409479877e-14,1.350684418292179922e-15,1.045872073374320001e-16,7.730362460575530633e-18,5.465325005886049859e-19,3.702957462445780275e-20,2.408533471615809858e-21,1.506341044423469987e-22,9.072009938095790444e-24,5.268530003269949637e-25,2.954169645381540188e-26,1.601246333481010056e-27,8.399248415938290540e-29,4.268098361109030113e-30,2.103121926585920025e-31,1.005841397292380006e-32,4.673103857977569817e-34,2.110799118081820028e-35,9.276606858525839519e-37,3.969625407951149788e-38,1.655117731308789974e-39,6.728416569308079558e-41,2.668535511653359980e-42,1.033160200357850035e-43,3.906997954981170091e-45,1.443891231711010018e-46,5.217541798560720151e-48,1.844387103862010054e-49,6.381138790025569547e-51,2.161727388213799831e-52,7.173792597173609798e-54,2.333043218016079856e-55,7.438692040590149620e-57,2.326147273770329869e-58,7.136829302650469589e-60,2.149094542694320158e-61,6.353847741042310350e-63,1.844984611365860164e-64,5.263345317421040357e-66,1.475631244411250010e-67,4.066959075292650080e-69,1.102205372313399975e-70,2.938168241456250100e-72,7.705998893425169526e-74,1.988988923180449946e-75,5.053547616939980383e-77,1.264232577218619929e-78,3.114777388543780041e-80,7.559554149665810291e-82,1.807720325837389929e-83,4.260162077709120143e-85,9.896281806726059244e-87,2.266510194014309944e-88,5.118811676399559712e-90,1.140224224376389956e-91,2.505546778349790061e-93,5.432318483767559762e-95,1.162292948602590001e-96,2.454532853984980055e-98 +1.966976057298369940e-01,3.198475623819980185e-01,2.600500976667139974e-01,1.409547573075889959e-01,5.730120018962110012e-02,1.863535566099979932e-02,5.050453851210079739e-03,1.173211573920090013e-03,2.384681175225460104e-04,4.308556432341399911e-05,7.006090730776149603e-06,1.035683467593529906e-06,1.403426812102430097e-07,1.755457779456169952e-08,2.038948820305120036e-09,2.210339766893990049e-10,2.246378978069679956e-11,2.148711343443400142e-12,1.941107301097100039e-13,1.661268819409479877e-14,1.350684418292179922e-15,1.045872073374320001e-16,7.730362460575530633e-18,5.465325005886049859e-19,3.702957462445780275e-20,2.408533471615809858e-21,1.506341044423469987e-22,9.072009938095790444e-24,5.268530003269949637e-25,2.954169645381540188e-26,1.601246333481010056e-27,8.399248415938290540e-29,4.268098361109030113e-30,2.103121926585920025e-31,1.005841397292380006e-32,4.673103857977569817e-34,2.110799118081820028e-35,9.276606858525839519e-37,3.969625407951149788e-38,1.655117731308789974e-39,6.728416569308079558e-41,2.668535511653359980e-42,1.033160200357850035e-43,3.906997954981170091e-45,1.443891231711010018e-46,5.217541798560720151e-48,1.844387103862010054e-49,6.381138790025569547e-51,2.161727388213799831e-52,7.173792597173609798e-54,2.333043218016079856e-55,7.438692040590149620e-57,2.326147273770329869e-58,7.136829302650469589e-60,2.149094542694320158e-61,6.353847741042310350e-63,1.844984611365860164e-64,5.263345317421040357e-66,1.475631244411250010e-67,4.066959075292650080e-69,1.102205372313399975e-70,2.938168241456250100e-72,7.705998893425169526e-74,1.988988923180449946e-75,5.053547616939980383e-77,1.264232577218619929e-78,3.114777388543780041e-80,7.559554149665810291e-82,1.807720325837389929e-83,4.260162077709120143e-85,9.896281806726059244e-87,2.266510194014309944e-88,5.118811676399559712e-90,1.140224224376389956e-91,2.505546778349790061e-93,5.432318483767559762e-95,1.162292948602590001e-96,2.454532853984980055e-98 +1.966976057298369940e-01,3.198475623819980185e-01,2.600500976667139974e-01,1.409547573075889959e-01,5.730120018962110012e-02,1.863535566099979932e-02,5.050453851210079739e-03,1.173211573920090013e-03,2.384681175225460104e-04,4.308556432341399911e-05,7.006090730776149603e-06,1.035683467593529906e-06,1.403426812102430097e-07,1.755457779456169952e-08,2.038948820305120036e-09,2.210339766893990049e-10,2.246378978069679956e-11,2.148711343443400142e-12,1.941107301097100039e-13,1.661268819409479877e-14,1.350684418292179922e-15,1.045872073374320001e-16,7.730362460575530633e-18,5.465325005886049859e-19,3.702957462445780275e-20,2.408533471615809858e-21,1.506341044423469987e-22,9.072009938095790444e-24,5.268530003269949637e-25,2.954169645381540188e-26,1.601246333481010056e-27,8.399248415938290540e-29,4.268098361109030113e-30,2.103121926585920025e-31,1.005841397292380006e-32,4.673103857977569817e-34,2.110799118081820028e-35,9.276606858525839519e-37,3.969625407951149788e-38,1.655117731308789974e-39,6.728416569308079558e-41,2.668535511653359980e-42,1.033160200357850035e-43,3.906997954981170091e-45,1.443891231711010018e-46,5.217541798560720151e-48,1.844387103862010054e-49,6.381138790025569547e-51,2.161727388213799831e-52,7.173792597173609798e-54,2.333043218016079856e-55,7.438692040590149620e-57,2.326147273770329869e-58,7.136829302650469589e-60,2.149094542694320158e-61,6.353847741042310350e-63,1.844984611365860164e-64,5.263345317421040357e-66,1.475631244411250010e-67,4.066959075292650080e-69,1.102205372313399975e-70,2.938168241456250100e-72,7.705998893425169526e-74,1.988988923180449946e-75,5.053547616939980383e-77,1.264232577218619929e-78,3.114777388543780041e-80,7.559554149665810291e-82,1.807720325837389929e-83,4.260162077709120143e-85,9.896281806726059244e-87,2.266510194014309944e-88,5.118811676399559712e-90,1.140224224376389956e-91,2.505546778349790061e-93,5.432318483767559762e-95,1.162292948602590001e-96,2.454532853984980055e-98 +1.966976057298369940e-01,3.198475623819980185e-01,2.600500976667139974e-01,1.409547573075889959e-01,5.730120018962110012e-02,1.863535566099979932e-02,5.050453851210079739e-03,1.173211573920090013e-03,2.384681175225460104e-04,4.308556432341399911e-05,7.006090730776149603e-06,1.035683467593529906e-06,1.403426812102430097e-07,1.755457779456169952e-08,2.038948820305120036e-09,2.210339766893990049e-10,2.246378978069679956e-11,2.148711343443400142e-12,1.941107301097100039e-13,1.661268819409479877e-14,1.350684418292179922e-15,1.045872073374320001e-16,7.730362460575530633e-18,5.465325005886049859e-19,3.702957462445780275e-20,2.408533471615809858e-21,1.506341044423469987e-22,9.072009938095790444e-24,5.268530003269949637e-25,2.954169645381540188e-26,1.601246333481010056e-27,8.399248415938290540e-29,4.268098361109030113e-30,2.103121926585920025e-31,1.005841397292380006e-32,4.673103857977569817e-34,2.110799118081820028e-35,9.276606858525839519e-37,3.969625407951149788e-38,1.655117731308789974e-39,6.728416569308079558e-41,2.668535511653359980e-42,1.033160200357850035e-43,3.906997954981170091e-45,1.443891231711010018e-46,5.217541798560720151e-48,1.844387103862010054e-49,6.381138790025569547e-51,2.161727388213799831e-52,7.173792597173609798e-54,2.333043218016079856e-55,7.438692040590149620e-57,2.326147273770329869e-58,7.136829302650469589e-60,2.149094542694320158e-61,6.353847741042310350e-63,1.844984611365860164e-64,5.263345317421040357e-66,1.475631244411250010e-67,4.066959075292650080e-69,1.102205372313399975e-70,2.938168241456250100e-72,7.705998893425169526e-74,1.988988923180449946e-75,5.053547616939980383e-77,1.264232577218619929e-78,3.114777388543780041e-80,7.559554149665810291e-82,1.807720325837389929e-83,4.260162077709120143e-85,9.896281806726059244e-87,2.266510194014309944e-88,5.118811676399559712e-90,1.140224224376389956e-91,2.505546778349790061e-93,5.432318483767559762e-95,1.162292948602590001e-96,2.454532853984980055e-98 +5.658439360707899664e-03,2.928020080834270109e-02,7.575676831761750385e-02,1.306705051534109985e-01,1.690421327648899963e-01,1.749453259779130132e-01,1.508788892889310063e-01,1.115341400315249948e-01,7.214316989473559816e-02,4.147917368909709995e-02,2.146384290011979848e-02,1.009699591532869922e-02,4.353998943224119886e-03,1.733094929946909970e-03,6.405775304802919937e-04,2.209824715511749991e-04,7.146859241649590564e-05,2.175422880915430041e-05,6.253866003974430073e-06,1.703226304080479961e-06,4.406763510786210134e-07,1.085869999914559967e-07,2.554068487347610030e-08,5.746217857316629831e-09,1.238934168543609924e-09,2.564399045798819837e-10,5.103752943660099826e-11,9.781450557514589728e-12,1.807684430430960090e-12,3.225536824034309944e-13,5.563628643983189977e-14,9.286965353258930699e-15,1.501762417985449944e-15,2.354857743905140128e-16,3.583959921540159832e-17,5.298738473491060219e-18,7.616358339802989964e-19,1.065180064017699943e-19,1.450496942582470004e-20,1.924551758719319838e-21,2.489699825744029968e-22,3.142248423137810101e-23,3.871405042059320050e-24,4.658837263917830211e-25,5.479011964779249681e-26,6.300385449192810318e-27,7.087395572098979681e-28,7.803082520335430041e-29,8.412059718636910097e-30,8.883490697489069377e-31,9.193714906895639767e-32,9.328208421268920284e-33,9.282656548153799201e-34,9.063037924868499858e-35,8.684752018914000022e-36,8.170941808386539334e-37,7.550252491758490396e-38,6.854314135842890452e-39,6.115238444408589871e-40,5.363382477248280439e-41,4.625566224622129773e-42,3.923850506065170137e-43,3.274900791644730107e-44,2.689892868571430066e-45,2.174865451075510085e-46,1.731396050263920070e-47,1.357468847236169978e-48,1.048413135986130083e-49,7.978126641228239661e-51,5.983140755081869870e-52,4.422914709609900433e-53,3.223499451720929714e-54,2.316714351471820162e-55,1.642203652300360056e-56,1.148345779862959967e-57,7.922984386892809889e-59,5.394517329759839942e-60,3.625260776408269697e-61 +5.658439360707899664e-03,2.928020080834270109e-02,7.575676831761750385e-02,1.306705051534109985e-01,1.690421327648899963e-01,1.749453259779130132e-01,1.508788892889310063e-01,1.115341400315249948e-01,7.214316989473559816e-02,4.147917368909709995e-02,2.146384290011979848e-02,1.009699591532869922e-02,4.353998943224119886e-03,1.733094929946909970e-03,6.405775304802919937e-04,2.209824715511749991e-04,7.146859241649590564e-05,2.175422880915430041e-05,6.253866003974430073e-06,1.703226304080479961e-06,4.406763510786210134e-07,1.085869999914559967e-07,2.554068487347610030e-08,5.746217857316629831e-09,1.238934168543609924e-09,2.564399045798819837e-10,5.103752943660099826e-11,9.781450557514589728e-12,1.807684430430960090e-12,3.225536824034309944e-13,5.563628643983189977e-14,9.286965353258930699e-15,1.501762417985449944e-15,2.354857743905140128e-16,3.583959921540159832e-17,5.298738473491060219e-18,7.616358339802989964e-19,1.065180064017699943e-19,1.450496942582470004e-20,1.924551758719319838e-21,2.489699825744029968e-22,3.142248423137810101e-23,3.871405042059320050e-24,4.658837263917830211e-25,5.479011964779249681e-26,6.300385449192810318e-27,7.087395572098979681e-28,7.803082520335430041e-29,8.412059718636910097e-30,8.883490697489069377e-31,9.193714906895639767e-32,9.328208421268920284e-33,9.282656548153799201e-34,9.063037924868499858e-35,8.684752018914000022e-36,8.170941808386539334e-37,7.550252491758490396e-38,6.854314135842890452e-39,6.115238444408589871e-40,5.363382477248280439e-41,4.625566224622129773e-42,3.923850506065170137e-43,3.274900791644730107e-44,2.689892868571430066e-45,2.174865451075510085e-46,1.731396050263920070e-47,1.357468847236169978e-48,1.048413135986130083e-49,7.978126641228239661e-51,5.983140755081869870e-52,4.422914709609900433e-53,3.223499451720929714e-54,2.316714351471820162e-55,1.642203652300360056e-56,1.148345779862959967e-57,7.922984386892809889e-59,5.394517329759839942e-60,3.625260776408269697e-61 +5.658439360707899664e-03,2.928020080834270109e-02,7.575676831761750385e-02,1.306705051534109985e-01,1.690421327648899963e-01,1.749453259779130132e-01,1.508788892889310063e-01,1.115341400315249948e-01,7.214316989473559816e-02,4.147917368909709995e-02,2.146384290011979848e-02,1.009699591532869922e-02,4.353998943224119886e-03,1.733094929946909970e-03,6.405775304802919937e-04,2.209824715511749991e-04,7.146859241649590564e-05,2.175422880915430041e-05,6.253866003974430073e-06,1.703226304080479961e-06,4.406763510786210134e-07,1.085869999914559967e-07,2.554068487347610030e-08,5.746217857316629831e-09,1.238934168543609924e-09,2.564399045798819837e-10,5.103752943660099826e-11,9.781450557514589728e-12,1.807684430430960090e-12,3.225536824034309944e-13,5.563628643983189977e-14,9.286965353258930699e-15,1.501762417985449944e-15,2.354857743905140128e-16,3.583959921540159832e-17,5.298738473491060219e-18,7.616358339802989964e-19,1.065180064017699943e-19,1.450496942582470004e-20,1.924551758719319838e-21,2.489699825744029968e-22,3.142248423137810101e-23,3.871405042059320050e-24,4.658837263917830211e-25,5.479011964779249681e-26,6.300385449192810318e-27,7.087395572098979681e-28,7.803082520335430041e-29,8.412059718636910097e-30,8.883490697489069377e-31,9.193714906895639767e-32,9.328208421268920284e-33,9.282656548153799201e-34,9.063037924868499858e-35,8.684752018914000022e-36,8.170941808386539334e-37,7.550252491758490396e-38,6.854314135842890452e-39,6.115238444408589871e-40,5.363382477248280439e-41,4.625566224622129773e-42,3.923850506065170137e-43,3.274900791644730107e-44,2.689892868571430066e-45,2.174865451075510085e-46,1.731396050263920070e-47,1.357468847236169978e-48,1.048413135986130083e-49,7.978126641228239661e-51,5.983140755081869870e-52,4.422914709609900433e-53,3.223499451720929714e-54,2.316714351471820162e-55,1.642203652300360056e-56,1.148345779862959967e-57,7.922984386892809889e-59,5.394517329759839942e-60,3.625260776408269697e-61 +5.658439360707899664e-03,2.928020080834270109e-02,7.575676831761750385e-02,1.306705051534109985e-01,1.690421327648899963e-01,1.749453259779130132e-01,1.508788892889310063e-01,1.115341400315249948e-01,7.214316989473559816e-02,4.147917368909709995e-02,2.146384290011979848e-02,1.009699591532869922e-02,4.353998943224119886e-03,1.733094929946909970e-03,6.405775304802919937e-04,2.209824715511749991e-04,7.146859241649590564e-05,2.175422880915430041e-05,6.253866003974430073e-06,1.703226304080479961e-06,4.406763510786210134e-07,1.085869999914559967e-07,2.554068487347610030e-08,5.746217857316629831e-09,1.238934168543609924e-09,2.564399045798819837e-10,5.103752943660099826e-11,9.781450557514589728e-12,1.807684430430960090e-12,3.225536824034309944e-13,5.563628643983189977e-14,9.286965353258930699e-15,1.501762417985449944e-15,2.354857743905140128e-16,3.583959921540159832e-17,5.298738473491060219e-18,7.616358339802989964e-19,1.065180064017699943e-19,1.450496942582470004e-20,1.924551758719319838e-21,2.489699825744029968e-22,3.142248423137810101e-23,3.871405042059320050e-24,4.658837263917830211e-25,5.479011964779249681e-26,6.300385449192810318e-27,7.087395572098979681e-28,7.803082520335430041e-29,8.412059718636910097e-30,8.883490697489069377e-31,9.193714906895639767e-32,9.328208421268920284e-33,9.282656548153799201e-34,9.063037924868499858e-35,8.684752018914000022e-36,8.170941808386539334e-37,7.550252491758490396e-38,6.854314135842890452e-39,6.115238444408589871e-40,5.363382477248280439e-41,4.625566224622129773e-42,3.923850506065170137e-43,3.274900791644730107e-44,2.689892868571430066e-45,2.174865451075510085e-46,1.731396050263920070e-47,1.357468847236169978e-48,1.048413135986130083e-49,7.978126641228239661e-51,5.983140755081869870e-52,4.422914709609900433e-53,3.223499451720929714e-54,2.316714351471820162e-55,1.642203652300360056e-56,1.148345779862959967e-57,7.922984386892809889e-59,5.394517329759839942e-60,3.625260776408269697e-61 +5.658439360707899664e-03,2.928020080834270109e-02,7.575676831761750385e-02,1.306705051534109985e-01,1.690421327648899963e-01,1.749453259779130132e-01,1.508788892889310063e-01,1.115341400315249948e-01,7.214316989473559816e-02,4.147917368909709995e-02,2.146384290011979848e-02,1.009699591532869922e-02,4.353998943224119886e-03,1.733094929946909970e-03,6.405775304802919937e-04,2.209824715511749991e-04,7.146859241649590564e-05,2.175422880915430041e-05,6.253866003974430073e-06,1.703226304080479961e-06,4.406763510786210134e-07,1.085869999914559967e-07,2.554068487347610030e-08,5.746217857316629831e-09,1.238934168543609924e-09,2.564399045798819837e-10,5.103752943660099826e-11,9.781450557514589728e-12,1.807684430430960090e-12,3.225536824034309944e-13,5.563628643983189977e-14,9.286965353258930699e-15,1.501762417985449944e-15,2.354857743905140128e-16,3.583959921540159832e-17,5.298738473491060219e-18,7.616358339802989964e-19,1.065180064017699943e-19,1.450496942582470004e-20,1.924551758719319838e-21,2.489699825744029968e-22,3.142248423137810101e-23,3.871405042059320050e-24,4.658837263917830211e-25,5.479011964779249681e-26,6.300385449192810318e-27,7.087395572098979681e-28,7.803082520335430041e-29,8.412059718636910097e-30,8.883490697489069377e-31,9.193714906895639767e-32,9.328208421268920284e-33,9.282656548153799201e-34,9.063037924868499858e-35,8.684752018914000022e-36,8.170941808386539334e-37,7.550252491758490396e-38,6.854314135842890452e-39,6.115238444408589871e-40,5.363382477248280439e-41,4.625566224622129773e-42,3.923850506065170137e-43,3.274900791644730107e-44,2.689892868571430066e-45,2.174865451075510085e-46,1.731396050263920070e-47,1.357468847236169978e-48,1.048413135986130083e-49,7.978126641228239661e-51,5.983140755081869870e-52,4.422914709609900433e-53,3.223499451720929714e-54,2.316714351471820162e-55,1.642203652300360056e-56,1.148345779862959967e-57,7.922984386892809889e-59,5.394517329759839942e-60,3.625260776408269697e-61 +7.490357668545119529e-02,1.941166365677090000e-01,2.515318377291799745e-01,2.172860829451200015e-01,1.407771346200339946e-01,7.296629904026590008e-02,3.151601294014309829e-02,1.166791970744679961e-02,3.779754968949949976e-03,1.088381970661640068e-03,2.820600254284109975e-04,6.645215315380820524e-05,1.435119326485279959e-05,2.860914392138140178e-06,5.295866498206079942e-07,9.149681388917869806e-08,1.481993129932099982e-08,2.259214520924909904e-09,3.252708671105680124e-10,4.436615255800080248e-11,5.748863200601840167e-12,7.094517778535250055e-13,8.357192431922580381e-14,9.416570626216260002e-15,1.016814493852260068e-15,1.054051719793159981e-16,1.050627526074630029e-17,1.008428735596160024e-18,9.333561275632560541e-20,8.340836092435070447e-21,7.205241369737989667e-22,6.023474024415860231e-23,4.878173754400329866e-24,3.830923919426219895e-25,2.920013181074190032e-26,2.162105936824460038e-27,1.556448195472559991e-28,1.090167292284080028e-29,7.434807923756800254e-31,4.940436798369769767e-32,3.200851738035739757e-33,2.023214381104890071e-34,1.248397282704009892e-35,7.523926786394099408e-37,4.431513596867370035e-38,2.552112261876139899e-39,1.437812133426080064e-40,7.928015454042819800e-42,4.280391100509650271e-43,2.263849617021769984e-44,1.173377541627389977e-45,5.962491833983170183e-47,2.971561037824159997e-48,1.453011285757459996e-49,6.973253114631120223e-51,3.285738085358960072e-52,1.520565443687369965e-53,6.913380536077539831e-55,3.089033874272489970e-56,1.356846944243409967e-57,5.860569388200929590e-59,2.489832772401330243e-60,1.040731480050659978e-61,4.281129288962499826e-63,1.733558777871280039e-64,6.911708546738989806e-66,2.713949003140849847e-67,1.049752896888139934e-68,4.000721967147890067e-70,1.502621096194889930e-71,5.563033095086130080e-73,2.030549105514110163e-74,7.308717943158739549e-76,2.594648570665790029e-77,9.086717485809730119e-79,3.139828766243740067e-80,1.070662455007230018e-81,3.603479453308719727e-83 +7.490357668545119529e-02,1.941166365677090000e-01,2.515318377291799745e-01,2.172860829451200015e-01,1.407771346200339946e-01,7.296629904026590008e-02,3.151601294014309829e-02,1.166791970744679961e-02,3.779754968949949976e-03,1.088381970661640068e-03,2.820600254284109975e-04,6.645215315380820524e-05,1.435119326485279959e-05,2.860914392138140178e-06,5.295866498206079942e-07,9.149681388917869806e-08,1.481993129932099982e-08,2.259214520924909904e-09,3.252708671105680124e-10,4.436615255800080248e-11,5.748863200601840167e-12,7.094517778535250055e-13,8.357192431922580381e-14,9.416570626216260002e-15,1.016814493852260068e-15,1.054051719793159981e-16,1.050627526074630029e-17,1.008428735596160024e-18,9.333561275632560541e-20,8.340836092435070447e-21,7.205241369737989667e-22,6.023474024415860231e-23,4.878173754400329866e-24,3.830923919426219895e-25,2.920013181074190032e-26,2.162105936824460038e-27,1.556448195472559991e-28,1.090167292284080028e-29,7.434807923756800254e-31,4.940436798369769767e-32,3.200851738035739757e-33,2.023214381104890071e-34,1.248397282704009892e-35,7.523926786394099408e-37,4.431513596867370035e-38,2.552112261876139899e-39,1.437812133426080064e-40,7.928015454042819800e-42,4.280391100509650271e-43,2.263849617021769984e-44,1.173377541627389977e-45,5.962491833983170183e-47,2.971561037824159997e-48,1.453011285757459996e-49,6.973253114631120223e-51,3.285738085358960072e-52,1.520565443687369965e-53,6.913380536077539831e-55,3.089033874272489970e-56,1.356846944243409967e-57,5.860569388200929590e-59,2.489832772401330243e-60,1.040731480050659978e-61,4.281129288962499826e-63,1.733558777871280039e-64,6.911708546738989806e-66,2.713949003140849847e-67,1.049752896888139934e-68,4.000721967147890067e-70,1.502621096194889930e-71,5.563033095086130080e-73,2.030549105514110163e-74,7.308717943158739549e-76,2.594648570665790029e-77,9.086717485809730119e-79,3.139828766243740067e-80,1.070662455007230018e-81,3.603479453308719727e-83 +7.490357668545119529e-02,1.941166365677090000e-01,2.515318377291799745e-01,2.172860829451200015e-01,1.407771346200339946e-01,7.296629904026590008e-02,3.151601294014309829e-02,1.166791970744679961e-02,3.779754968949949976e-03,1.088381970661640068e-03,2.820600254284109975e-04,6.645215315380820524e-05,1.435119326485279959e-05,2.860914392138140178e-06,5.295866498206079942e-07,9.149681388917869806e-08,1.481993129932099982e-08,2.259214520924909904e-09,3.252708671105680124e-10,4.436615255800080248e-11,5.748863200601840167e-12,7.094517778535250055e-13,8.357192431922580381e-14,9.416570626216260002e-15,1.016814493852260068e-15,1.054051719793159981e-16,1.050627526074630029e-17,1.008428735596160024e-18,9.333561275632560541e-20,8.340836092435070447e-21,7.205241369737989667e-22,6.023474024415860231e-23,4.878173754400329866e-24,3.830923919426219895e-25,2.920013181074190032e-26,2.162105936824460038e-27,1.556448195472559991e-28,1.090167292284080028e-29,7.434807923756800254e-31,4.940436798369769767e-32,3.200851738035739757e-33,2.023214381104890071e-34,1.248397282704009892e-35,7.523926786394099408e-37,4.431513596867370035e-38,2.552112261876139899e-39,1.437812133426080064e-40,7.928015454042819800e-42,4.280391100509650271e-43,2.263849617021769984e-44,1.173377541627389977e-45,5.962491833983170183e-47,2.971561037824159997e-48,1.453011285757459996e-49,6.973253114631120223e-51,3.285738085358960072e-52,1.520565443687369965e-53,6.913380536077539831e-55,3.089033874272489970e-56,1.356846944243409967e-57,5.860569388200929590e-59,2.489832772401330243e-60,1.040731480050659978e-61,4.281129288962499826e-63,1.733558777871280039e-64,6.911708546738989806e-66,2.713949003140849847e-67,1.049752896888139934e-68,4.000721967147890067e-70,1.502621096194889930e-71,5.563033095086130080e-73,2.030549105514110163e-74,7.308717943158739549e-76,2.594648570665790029e-77,9.086717485809730119e-79,3.139828766243740067e-80,1.070662455007230018e-81,3.603479453308719727e-83 +7.490357668545119529e-02,1.941166365677090000e-01,2.515318377291799745e-01,2.172860829451200015e-01,1.407771346200339946e-01,7.296629904026590008e-02,3.151601294014309829e-02,1.166791970744679961e-02,3.779754968949949976e-03,1.088381970661640068e-03,2.820600254284109975e-04,6.645215315380820524e-05,1.435119326485279959e-05,2.860914392138140178e-06,5.295866498206079942e-07,9.149681388917869806e-08,1.481993129932099982e-08,2.259214520924909904e-09,3.252708671105680124e-10,4.436615255800080248e-11,5.748863200601840167e-12,7.094517778535250055e-13,8.357192431922580381e-14,9.416570626216260002e-15,1.016814493852260068e-15,1.054051719793159981e-16,1.050627526074630029e-17,1.008428735596160024e-18,9.333561275632560541e-20,8.340836092435070447e-21,7.205241369737989667e-22,6.023474024415860231e-23,4.878173754400329866e-24,3.830923919426219895e-25,2.920013181074190032e-26,2.162105936824460038e-27,1.556448195472559991e-28,1.090167292284080028e-29,7.434807923756800254e-31,4.940436798369769767e-32,3.200851738035739757e-33,2.023214381104890071e-34,1.248397282704009892e-35,7.523926786394099408e-37,4.431513596867370035e-38,2.552112261876139899e-39,1.437812133426080064e-40,7.928015454042819800e-42,4.280391100509650271e-43,2.263849617021769984e-44,1.173377541627389977e-45,5.962491833983170183e-47,2.971561037824159997e-48,1.453011285757459996e-49,6.973253114631120223e-51,3.285738085358960072e-52,1.520565443687369965e-53,6.913380536077539831e-55,3.089033874272489970e-56,1.356846944243409967e-57,5.860569388200929590e-59,2.489832772401330243e-60,1.040731480050659978e-61,4.281129288962499826e-63,1.733558777871280039e-64,6.911708546738989806e-66,2.713949003140849847e-67,1.049752896888139934e-68,4.000721967147890067e-70,1.502621096194889930e-71,5.563033095086130080e-73,2.030549105514110163e-74,7.308717943158739549e-76,2.594648570665790029e-77,9.086717485809730119e-79,3.139828766243740067e-80,1.070662455007230018e-81,3.603479453308719727e-83 +7.490357668545119529e-02,1.941166365677090000e-01,2.515318377291799745e-01,2.172860829451200015e-01,1.407771346200339946e-01,7.296629904026590008e-02,3.151601294014309829e-02,1.166791970744679961e-02,3.779754968949949976e-03,1.088381970661640068e-03,2.820600254284109975e-04,6.645215315380820524e-05,1.435119326485279959e-05,2.860914392138140178e-06,5.295866498206079942e-07,9.149681388917869806e-08,1.481993129932099982e-08,2.259214520924909904e-09,3.252708671105680124e-10,4.436615255800080248e-11,5.748863200601840167e-12,7.094517778535250055e-13,8.357192431922580381e-14,9.416570626216260002e-15,1.016814493852260068e-15,1.054051719793159981e-16,1.050627526074630029e-17,1.008428735596160024e-18,9.333561275632560541e-20,8.340836092435070447e-21,7.205241369737989667e-22,6.023474024415860231e-23,4.878173754400329866e-24,3.830923919426219895e-25,2.920013181074190032e-26,2.162105936824460038e-27,1.556448195472559991e-28,1.090167292284080028e-29,7.434807923756800254e-31,4.940436798369769767e-32,3.200851738035739757e-33,2.023214381104890071e-34,1.248397282704009892e-35,7.523926786394099408e-37,4.431513596867370035e-38,2.552112261876139899e-39,1.437812133426080064e-40,7.928015454042819800e-42,4.280391100509650271e-43,2.263849617021769984e-44,1.173377541627389977e-45,5.962491833983170183e-47,2.971561037824159997e-48,1.453011285757459996e-49,6.973253114631120223e-51,3.285738085358960072e-52,1.520565443687369965e-53,6.913380536077539831e-55,3.089033874272489970e-56,1.356846944243409967e-57,5.860569388200929590e-59,2.489832772401330243e-60,1.040731480050659978e-61,4.281129288962499826e-63,1.733558777871280039e-64,6.911708546738989806e-66,2.713949003140849847e-67,1.049752896888139934e-68,4.000721967147890067e-70,1.502621096194889930e-71,5.563033095086130080e-73,2.030549105514110163e-74,7.308717943158739549e-76,2.594648570665790029e-77,9.086717485809730119e-79,3.139828766243740067e-80,1.070662455007230018e-81,3.603479453308719727e-83 +7.490357668545119529e-02,1.941166365677090000e-01,2.515318377291799745e-01,2.172860829451200015e-01,1.407771346200339946e-01,7.296629904026590008e-02,3.151601294014309829e-02,1.166791970744679961e-02,3.779754968949949976e-03,1.088381970661640068e-03,2.820600254284109975e-04,6.645215315380820524e-05,1.435119326485279959e-05,2.860914392138140178e-06,5.295866498206079942e-07,9.149681388917869806e-08,1.481993129932099982e-08,2.259214520924909904e-09,3.252708671105680124e-10,4.436615255800080248e-11,5.748863200601840167e-12,7.094517778535250055e-13,8.357192431922580381e-14,9.416570626216260002e-15,1.016814493852260068e-15,1.054051719793159981e-16,1.050627526074630029e-17,1.008428735596160024e-18,9.333561275632560541e-20,8.340836092435070447e-21,7.205241369737989667e-22,6.023474024415860231e-23,4.878173754400329866e-24,3.830923919426219895e-25,2.920013181074190032e-26,2.162105936824460038e-27,1.556448195472559991e-28,1.090167292284080028e-29,7.434807923756800254e-31,4.940436798369769767e-32,3.200851738035739757e-33,2.023214381104890071e-34,1.248397282704009892e-35,7.523926786394099408e-37,4.431513596867370035e-38,2.552112261876139899e-39,1.437812133426080064e-40,7.928015454042819800e-42,4.280391100509650271e-43,2.263849617021769984e-44,1.173377541627389977e-45,5.962491833983170183e-47,2.971561037824159997e-48,1.453011285757459996e-49,6.973253114631120223e-51,3.285738085358960072e-52,1.520565443687369965e-53,6.913380536077539831e-55,3.089033874272489970e-56,1.356846944243409967e-57,5.860569388200929590e-59,2.489832772401330243e-60,1.040731480050659978e-61,4.281129288962499826e-63,1.733558777871280039e-64,6.911708546738989806e-66,2.713949003140849847e-67,1.049752896888139934e-68,4.000721967147890067e-70,1.502621096194889930e-71,5.563033095086130080e-73,2.030549105514110163e-74,7.308717943158739549e-76,2.594648570665790029e-77,9.086717485809730119e-79,3.139828766243740067e-80,1.070662455007230018e-81,3.603479453308719727e-83 +7.490357668545119529e-02,1.941166365677090000e-01,2.515318377291799745e-01,2.172860829451200015e-01,1.407771346200339946e-01,7.296629904026590008e-02,3.151601294014309829e-02,1.166791970744679961e-02,3.779754968949949976e-03,1.088381970661640068e-03,2.820600254284109975e-04,6.645215315380820524e-05,1.435119326485279959e-05,2.860914392138140178e-06,5.295866498206079942e-07,9.149681388917869806e-08,1.481993129932099982e-08,2.259214520924909904e-09,3.252708671105680124e-10,4.436615255800080248e-11,5.748863200601840167e-12,7.094517778535250055e-13,8.357192431922580381e-14,9.416570626216260002e-15,1.016814493852260068e-15,1.054051719793159981e-16,1.050627526074630029e-17,1.008428735596160024e-18,9.333561275632560541e-20,8.340836092435070447e-21,7.205241369737989667e-22,6.023474024415860231e-23,4.878173754400329866e-24,3.830923919426219895e-25,2.920013181074190032e-26,2.162105936824460038e-27,1.556448195472559991e-28,1.090167292284080028e-29,7.434807923756800254e-31,4.940436798369769767e-32,3.200851738035739757e-33,2.023214381104890071e-34,1.248397282704009892e-35,7.523926786394099408e-37,4.431513596867370035e-38,2.552112261876139899e-39,1.437812133426080064e-40,7.928015454042819800e-42,4.280391100509650271e-43,2.263849617021769984e-44,1.173377541627389977e-45,5.962491833983170183e-47,2.971561037824159997e-48,1.453011285757459996e-49,6.973253114631120223e-51,3.285738085358960072e-52,1.520565443687369965e-53,6.913380536077539831e-55,3.089033874272489970e-56,1.356846944243409967e-57,5.860569388200929590e-59,2.489832772401330243e-60,1.040731480050659978e-61,4.281129288962499826e-63,1.733558777871280039e-64,6.911708546738989806e-66,2.713949003140849847e-67,1.049752896888139934e-68,4.000721967147890067e-70,1.502621096194889930e-71,5.563033095086130080e-73,2.030549105514110163e-74,7.308717943158739549e-76,2.594648570665790029e-77,9.086717485809730119e-79,3.139828766243740067e-80,1.070662455007230018e-81,3.603479453308719727e-83 +7.490357668545119529e-02,1.941166365677090000e-01,2.515318377291799745e-01,2.172860829451200015e-01,1.407771346200339946e-01,7.296629904026590008e-02,3.151601294014309829e-02,1.166791970744679961e-02,3.779754968949949976e-03,1.088381970661640068e-03,2.820600254284109975e-04,6.645215315380820524e-05,1.435119326485279959e-05,2.860914392138140178e-06,5.295866498206079942e-07,9.149681388917869806e-08,1.481993129932099982e-08,2.259214520924909904e-09,3.252708671105680124e-10,4.436615255800080248e-11,5.748863200601840167e-12,7.094517778535250055e-13,8.357192431922580381e-14,9.416570626216260002e-15,1.016814493852260068e-15,1.054051719793159981e-16,1.050627526074630029e-17,1.008428735596160024e-18,9.333561275632560541e-20,8.340836092435070447e-21,7.205241369737989667e-22,6.023474024415860231e-23,4.878173754400329866e-24,3.830923919426219895e-25,2.920013181074190032e-26,2.162105936824460038e-27,1.556448195472559991e-28,1.090167292284080028e-29,7.434807923756800254e-31,4.940436798369769767e-32,3.200851738035739757e-33,2.023214381104890071e-34,1.248397282704009892e-35,7.523926786394099408e-37,4.431513596867370035e-38,2.552112261876139899e-39,1.437812133426080064e-40,7.928015454042819800e-42,4.280391100509650271e-43,2.263849617021769984e-44,1.173377541627389977e-45,5.962491833983170183e-47,2.971561037824159997e-48,1.453011285757459996e-49,6.973253114631120223e-51,3.285738085358960072e-52,1.520565443687369965e-53,6.913380536077539831e-55,3.089033874272489970e-56,1.356846944243409967e-57,5.860569388200929590e-59,2.489832772401330243e-60,1.040731480050659978e-61,4.281129288962499826e-63,1.733558777871280039e-64,6.911708546738989806e-66,2.713949003140849847e-67,1.049752896888139934e-68,4.000721967147890067e-70,1.502621096194889930e-71,5.563033095086130080e-73,2.030549105514110163e-74,7.308717943158739549e-76,2.594648570665790029e-77,9.086717485809730119e-79,3.139828766243740067e-80,1.070662455007230018e-81,3.603479453308719727e-83 +7.490357668545119529e-02,1.941166365677090000e-01,2.515318377291799745e-01,2.172860829451200015e-01,1.407771346200339946e-01,7.296629904026590008e-02,3.151601294014309829e-02,1.166791970744679961e-02,3.779754968949949976e-03,1.088381970661640068e-03,2.820600254284109975e-04,6.645215315380820524e-05,1.435119326485279959e-05,2.860914392138140178e-06,5.295866498206079942e-07,9.149681388917869806e-08,1.481993129932099982e-08,2.259214520924909904e-09,3.252708671105680124e-10,4.436615255800080248e-11,5.748863200601840167e-12,7.094517778535250055e-13,8.357192431922580381e-14,9.416570626216260002e-15,1.016814493852260068e-15,1.054051719793159981e-16,1.050627526074630029e-17,1.008428735596160024e-18,9.333561275632560541e-20,8.340836092435070447e-21,7.205241369737989667e-22,6.023474024415860231e-23,4.878173754400329866e-24,3.830923919426219895e-25,2.920013181074190032e-26,2.162105936824460038e-27,1.556448195472559991e-28,1.090167292284080028e-29,7.434807923756800254e-31,4.940436798369769767e-32,3.200851738035739757e-33,2.023214381104890071e-34,1.248397282704009892e-35,7.523926786394099408e-37,4.431513596867370035e-38,2.552112261876139899e-39,1.437812133426080064e-40,7.928015454042819800e-42,4.280391100509650271e-43,2.263849617021769984e-44,1.173377541627389977e-45,5.962491833983170183e-47,2.971561037824159997e-48,1.453011285757459996e-49,6.973253114631120223e-51,3.285738085358960072e-52,1.520565443687369965e-53,6.913380536077539831e-55,3.089033874272489970e-56,1.356846944243409967e-57,5.860569388200929590e-59,2.489832772401330243e-60,1.040731480050659978e-61,4.281129288962499826e-63,1.733558777871280039e-64,6.911708546738989806e-66,2.713949003140849847e-67,1.049752896888139934e-68,4.000721967147890067e-70,1.502621096194889930e-71,5.563033095086130080e-73,2.030549105514110163e-74,7.308717943158739549e-76,2.594648570665790029e-77,9.086717485809730119e-79,3.139828766243740067e-80,1.070662455007230018e-81,3.603479453308719727e-83 +7.490357668545119529e-02,1.941166365677090000e-01,2.515318377291799745e-01,2.172860829451200015e-01,1.407771346200339946e-01,7.296629904026590008e-02,3.151601294014309829e-02,1.166791970744679961e-02,3.779754968949949976e-03,1.088381970661640068e-03,2.820600254284109975e-04,6.645215315380820524e-05,1.435119326485279959e-05,2.860914392138140178e-06,5.295866498206079942e-07,9.149681388917869806e-08,1.481993129932099982e-08,2.259214520924909904e-09,3.252708671105680124e-10,4.436615255800080248e-11,5.748863200601840167e-12,7.094517778535250055e-13,8.357192431922580381e-14,9.416570626216260002e-15,1.016814493852260068e-15,1.054051719793159981e-16,1.050627526074630029e-17,1.008428735596160024e-18,9.333561275632560541e-20,8.340836092435070447e-21,7.205241369737989667e-22,6.023474024415860231e-23,4.878173754400329866e-24,3.830923919426219895e-25,2.920013181074190032e-26,2.162105936824460038e-27,1.556448195472559991e-28,1.090167292284080028e-29,7.434807923756800254e-31,4.940436798369769767e-32,3.200851738035739757e-33,2.023214381104890071e-34,1.248397282704009892e-35,7.523926786394099408e-37,4.431513596867370035e-38,2.552112261876139899e-39,1.437812133426080064e-40,7.928015454042819800e-42,4.280391100509650271e-43,2.263849617021769984e-44,1.173377541627389977e-45,5.962491833983170183e-47,2.971561037824159997e-48,1.453011285757459996e-49,6.973253114631120223e-51,3.285738085358960072e-52,1.520565443687369965e-53,6.913380536077539831e-55,3.089033874272489970e-56,1.356846944243409967e-57,5.860569388200929590e-59,2.489832772401330243e-60,1.040731480050659978e-61,4.281129288962499826e-63,1.733558777871280039e-64,6.911708546738989806e-66,2.713949003140849847e-67,1.049752896888139934e-68,4.000721967147890067e-70,1.502621096194889930e-71,5.563033095086130080e-73,2.030549105514110163e-74,7.308717943158739549e-76,2.594648570665790029e-77,9.086717485809730119e-79,3.139828766243740067e-80,1.070662455007230018e-81,3.603479453308719727e-83 +1.042988767141319988e-02,4.759240953886999942e-02,1.085839808190680045e-01,1.651591224280709869e-01,1.884085629997029887e-01,1.719446608325150005e-01,1.307662008478490123e-01,8.524237242404550385e-02,4.862096824864890060e-02,2.465126189878339910e-02,1.124856747165599996e-02,4.666191889225210047e-03,1.774350488193939977e-03,6.228079103793869630e-04,2.029944416102329890e-04,6.175198879471399368e-05,1.761120321442250094e-05,4.727136781496590362e-06,1.198350125774010089e-06,2.877982751591560207e-07,6.566232450180890022e-08,1.426773453466579995e-08,2.959309589022479955e-09,5.871115542520380111e-10,1.116265359036030052e-10,2.037443155477379880e-11,3.575775255855090147e-12,6.043165839649310084e-13,9.848374231714400359e-14,1.549617838638139917e-14,2.357009941962050136e-15,3.469427228039600147e-16,4.947272884908819706e-17,6.840848747337369802e-18,9.180981939868469131e-19,1.196958658525680051e-19,1.517171625544160097e-20,1.871074369455720069e-21,2.246805689931629958e-22,2.628808618675949931e-23,2.998865863202230129e-24,3.337576629919510160e-25,3.626102007969920071e-26,3.847951802793230216e-27,3.990570696572389977e-28,4.046509434519509793e-29,4.014031604211219650e-30,3.897094989063799821e-31,3.704740696771720203e-32,3.450005584243110283e-33,3.148530144322099936e-34,2.817057693647839920e-35,2.472011346226280049e-36,2.128299054597719979e-37,1.798444144698839941e-38,1.492080747591009893e-39,1.215800623060960041e-40,9.732974104107440619e-42,7.657299539937559984e-43,5.922181135331719532e-44,4.503897498477619804e-45,3.369121902546580190e-46,2.479608391797760061e-47,1.795976335619179965e-48,1.280497390943629996e-49,8.989248850283489969e-51,6.214948433969159878e-52,4.232732168874729959e-53,2.840337437212309871e-54,1.878360337320930041e-55,1.224444010625970041e-56,7.869346065307510305e-58,4.987285265381360415e-59,3.117449390477929897e-60,1.922320307864570076e-61,1.169560123611950002e-62,7.022100199076760141e-64,4.161351094810609770e-65 +1.042988767141319988e-02,4.759240953886999942e-02,1.085839808190680045e-01,1.651591224280709869e-01,1.884085629997029887e-01,1.719446608325150005e-01,1.307662008478490123e-01,8.524237242404550385e-02,4.862096824864890060e-02,2.465126189878339910e-02,1.124856747165599996e-02,4.666191889225210047e-03,1.774350488193939977e-03,6.228079103793869630e-04,2.029944416102329890e-04,6.175198879471399368e-05,1.761120321442250094e-05,4.727136781496590362e-06,1.198350125774010089e-06,2.877982751591560207e-07,6.566232450180890022e-08,1.426773453466579995e-08,2.959309589022479955e-09,5.871115542520380111e-10,1.116265359036030052e-10,2.037443155477379880e-11,3.575775255855090147e-12,6.043165839649310084e-13,9.848374231714400359e-14,1.549617838638139917e-14,2.357009941962050136e-15,3.469427228039600147e-16,4.947272884908819706e-17,6.840848747337369802e-18,9.180981939868469131e-19,1.196958658525680051e-19,1.517171625544160097e-20,1.871074369455720069e-21,2.246805689931629958e-22,2.628808618675949931e-23,2.998865863202230129e-24,3.337576629919510160e-25,3.626102007969920071e-26,3.847951802793230216e-27,3.990570696572389977e-28,4.046509434519509793e-29,4.014031604211219650e-30,3.897094989063799821e-31,3.704740696771720203e-32,3.450005584243110283e-33,3.148530144322099936e-34,2.817057693647839920e-35,2.472011346226280049e-36,2.128299054597719979e-37,1.798444144698839941e-38,1.492080747591009893e-39,1.215800623060960041e-40,9.732974104107440619e-42,7.657299539937559984e-43,5.922181135331719532e-44,4.503897498477619804e-45,3.369121902546580190e-46,2.479608391797760061e-47,1.795976335619179965e-48,1.280497390943629996e-49,8.989248850283489969e-51,6.214948433969159878e-52,4.232732168874729959e-53,2.840337437212309871e-54,1.878360337320930041e-55,1.224444010625970041e-56,7.869346065307510305e-58,4.987285265381360415e-59,3.117449390477929897e-60,1.922320307864570076e-61,1.169560123611950002e-62,7.022100199076760141e-64,4.161351094810609770e-65 +1.042988767141319988e-02,4.759240953886999942e-02,1.085839808190680045e-01,1.651591224280709869e-01,1.884085629997029887e-01,1.719446608325150005e-01,1.307662008478490123e-01,8.524237242404550385e-02,4.862096824864890060e-02,2.465126189878339910e-02,1.124856747165599996e-02,4.666191889225210047e-03,1.774350488193939977e-03,6.228079103793869630e-04,2.029944416102329890e-04,6.175198879471399368e-05,1.761120321442250094e-05,4.727136781496590362e-06,1.198350125774010089e-06,2.877982751591560207e-07,6.566232450180890022e-08,1.426773453466579995e-08,2.959309589022479955e-09,5.871115542520380111e-10,1.116265359036030052e-10,2.037443155477379880e-11,3.575775255855090147e-12,6.043165839649310084e-13,9.848374231714400359e-14,1.549617838638139917e-14,2.357009941962050136e-15,3.469427228039600147e-16,4.947272884908819706e-17,6.840848747337369802e-18,9.180981939868469131e-19,1.196958658525680051e-19,1.517171625544160097e-20,1.871074369455720069e-21,2.246805689931629958e-22,2.628808618675949931e-23,2.998865863202230129e-24,3.337576629919510160e-25,3.626102007969920071e-26,3.847951802793230216e-27,3.990570696572389977e-28,4.046509434519509793e-29,4.014031604211219650e-30,3.897094989063799821e-31,3.704740696771720203e-32,3.450005584243110283e-33,3.148530144322099936e-34,2.817057693647839920e-35,2.472011346226280049e-36,2.128299054597719979e-37,1.798444144698839941e-38,1.492080747591009893e-39,1.215800623060960041e-40,9.732974104107440619e-42,7.657299539937559984e-43,5.922181135331719532e-44,4.503897498477619804e-45,3.369121902546580190e-46,2.479608391797760061e-47,1.795976335619179965e-48,1.280497390943629996e-49,8.989248850283489969e-51,6.214948433969159878e-52,4.232732168874729959e-53,2.840337437212309871e-54,1.878360337320930041e-55,1.224444010625970041e-56,7.869346065307510305e-58,4.987285265381360415e-59,3.117449390477929897e-60,1.922320307864570076e-61,1.169560123611950002e-62,7.022100199076760141e-64,4.161351094810609770e-65 +5.511696288968499780e-02,1.597453697374799919e-01,2.314948231421870006e-01,2.236469753070159938e-01,1.620488815421209927e-01,9.393318187470710290e-02,4.537438833856499709e-02,1.878692682858409957e-02,6.806263478427260379e-03,2.191842016783690159e-03,6.352610793850210465e-04,1.673796144941310058e-04,4.042633005952189789e-05,9.012887815726439261e-06,1.865859465089190053e-06,3.605210864338480227e-07,6.530609093724130581e-08,1.113391156885470003e-08,1.792743938367819964e-09,2.734687226129430173e-10,3.962968922369299697e-11,5.469459012352550044e-12,7.205509440821390005e-13,9.079874707417129633e-14,1.096507519540310039e-14,1.271202112347719910e-15,1.417047010306820070e-16,1.521120061833530044e-17,1.574521020863510046e-18,1.573596806214909978e-19,1.520250696261080100e-20,1.421335218752240037e-21,1.287328959954890068e-22,1.130625040300880042e-23,9.637905925451860180e-25,7.981006027065209640e-26,6.425369955839330155e-27,5.033144678408970222e-28,3.838829451527160162e-29,2.852838660626959948e-30,2.067093970486719895e-31,1.461232636946600051e-32,1.008354111759369984e-33,6.796535946770039768e-35,4.476905651795780174e-36,2.883423465425359990e-37,1.816743424563770091e-38,1.120311358846640021e-39,6.764574780961919881e-41,4.001173855679999910e-42,2.319318639667519917e-43,1.318054118355259999e-44,7.346371712632149349e-46,4.017353326988420025e-47,2.156201134016329964e-48,1.136238709706050026e-49,5.880639464430240139e-51,2.990148096571249968e-52,1.494196467537010115e-53,7.340044517872699665e-55,3.545605756446679779e-56,1.684626426170959859e-57,7.875079011134249954e-59,3.622908541061240139e-60,1.640666826039199888e-61,7.315601502438279995e-63,3.212544151810840089e-64,1.389687984934569953e-65,5.923131713483979719e-67,2.487970918904330011e-68,1.030125789384469982e-69,4.205086283757180032e-71,1.692721129249719980e-72,6.720561433772180030e-74,2.632187582099540140e-75,1.017181780891359996e-76,3.879073250956909961e-78,1.460092115576080119e-79 +5.511696288968499780e-02,1.597453697374799919e-01,2.314948231421870006e-01,2.236469753070159938e-01,1.620488815421209927e-01,9.393318187470710290e-02,4.537438833856499709e-02,1.878692682858409957e-02,6.806263478427260379e-03,2.191842016783690159e-03,6.352610793850210465e-04,1.673796144941310058e-04,4.042633005952189789e-05,9.012887815726439261e-06,1.865859465089190053e-06,3.605210864338480227e-07,6.530609093724130581e-08,1.113391156885470003e-08,1.792743938367819964e-09,2.734687226129430173e-10,3.962968922369299697e-11,5.469459012352550044e-12,7.205509440821390005e-13,9.079874707417129633e-14,1.096507519540310039e-14,1.271202112347719910e-15,1.417047010306820070e-16,1.521120061833530044e-17,1.574521020863510046e-18,1.573596806214909978e-19,1.520250696261080100e-20,1.421335218752240037e-21,1.287328959954890068e-22,1.130625040300880042e-23,9.637905925451860180e-25,7.981006027065209640e-26,6.425369955839330155e-27,5.033144678408970222e-28,3.838829451527160162e-29,2.852838660626959948e-30,2.067093970486719895e-31,1.461232636946600051e-32,1.008354111759369984e-33,6.796535946770039768e-35,4.476905651795780174e-36,2.883423465425359990e-37,1.816743424563770091e-38,1.120311358846640021e-39,6.764574780961919881e-41,4.001173855679999910e-42,2.319318639667519917e-43,1.318054118355259999e-44,7.346371712632149349e-46,4.017353326988420025e-47,2.156201134016329964e-48,1.136238709706050026e-49,5.880639464430240139e-51,2.990148096571249968e-52,1.494196467537010115e-53,7.340044517872699665e-55,3.545605756446679779e-56,1.684626426170959859e-57,7.875079011134249954e-59,3.622908541061240139e-60,1.640666826039199888e-61,7.315601502438279995e-63,3.212544151810840089e-64,1.389687984934569953e-65,5.923131713483979719e-67,2.487970918904330011e-68,1.030125789384469982e-69,4.205086283757180032e-71,1.692721129249719980e-72,6.720561433772180030e-74,2.632187582099540140e-75,1.017181780891359996e-76,3.879073250956909961e-78,1.460092115576080119e-79 +5.511696288968499780e-02,1.597453697374799919e-01,2.314948231421870006e-01,2.236469753070159938e-01,1.620488815421209927e-01,9.393318187470710290e-02,4.537438833856499709e-02,1.878692682858409957e-02,6.806263478427260379e-03,2.191842016783690159e-03,6.352610793850210465e-04,1.673796144941310058e-04,4.042633005952189789e-05,9.012887815726439261e-06,1.865859465089190053e-06,3.605210864338480227e-07,6.530609093724130581e-08,1.113391156885470003e-08,1.792743938367819964e-09,2.734687226129430173e-10,3.962968922369299697e-11,5.469459012352550044e-12,7.205509440821390005e-13,9.079874707417129633e-14,1.096507519540310039e-14,1.271202112347719910e-15,1.417047010306820070e-16,1.521120061833530044e-17,1.574521020863510046e-18,1.573596806214909978e-19,1.520250696261080100e-20,1.421335218752240037e-21,1.287328959954890068e-22,1.130625040300880042e-23,9.637905925451860180e-25,7.981006027065209640e-26,6.425369955839330155e-27,5.033144678408970222e-28,3.838829451527160162e-29,2.852838660626959948e-30,2.067093970486719895e-31,1.461232636946600051e-32,1.008354111759369984e-33,6.796535946770039768e-35,4.476905651795780174e-36,2.883423465425359990e-37,1.816743424563770091e-38,1.120311358846640021e-39,6.764574780961919881e-41,4.001173855679999910e-42,2.319318639667519917e-43,1.318054118355259999e-44,7.346371712632149349e-46,4.017353326988420025e-47,2.156201134016329964e-48,1.136238709706050026e-49,5.880639464430240139e-51,2.990148096571249968e-52,1.494196467537010115e-53,7.340044517872699665e-55,3.545605756446679779e-56,1.684626426170959859e-57,7.875079011134249954e-59,3.622908541061240139e-60,1.640666826039199888e-61,7.315601502438279995e-63,3.212544151810840089e-64,1.389687984934569953e-65,5.923131713483979719e-67,2.487970918904330011e-68,1.030125789384469982e-69,4.205086283757180032e-71,1.692721129249719980e-72,6.720561433772180030e-74,2.632187582099540140e-75,1.017181780891359996e-76,3.879073250956909961e-78,1.460092115576080119e-79 +1.523453475285279912e-01,2.866538151778830201e-01,2.696846706810280270e-01,1.691467029785319875e-01,7.956683371062049648e-02,2.994267539479989956e-02,9.390049513376219278e-03,2.524052434987239957e-03,5.936588086999420276e-04,1.241146186670299978e-04,2.335347257886559859e-05,3.994728914502679870e-06,6.263752621485889479e-07,9.066084773877960330e-08,1.218485233582089975e-08,1.528472192119580042e-09,1.797488372521250065e-10,1.989508041240509912e-11,2.079704943773209868e-12,2.059570457752100103e-13,1.937649356937999988e-14,1.736138725205490060e-15,1.484876294466490123e-16,1.214761358011200072e-17,9.523755933848759962e-19,7.167979902371499780e-20,5.187426561949570248e-21,3.615070138853759766e-22,2.429333991696569979e-23,1.576223359845989914e-24,9.886100822950779661e-26,6.000561233568539845e-27,3.528339966389590026e-28,2.011800976825940050e-29,1.113357472003170030e-30,5.985426667277320093e-32,3.128391836699309843e-33,1.590918567067669895e-34,7.877581123303889844e-36,3.800640637902999820e-37,1.787826403381000010e-38,8.204838189388979903e-40,3.675777886137729931e-41,1.608456557330999955e-42,6.878364551131530289e-44,2.876081617271109819e-45,1.176445749779670016e-46,4.709801217319759991e-48,1.846247289431899893e-49,7.089609606486859845e-51,2.667969419204810166e-52,9.843265552155940491e-54,3.561757836728990277e-55,1.264494804881909948e-56,4.406074336931249971e-58,1.507362341403299937e-59,5.064751765695249701e-61,1.671905934494069966e-62,5.423908771750069885e-64,1.729772128317719983e-65,5.424580708837330060e-67,1.673265553683129920e-68,5.078105410167079817e-70,1.516665097617529985e-71,4.459007975466900303e-73,1.290783552795910003e-74,3.679916954038420100e-76,1.033455416219749906e-77,2.859640001382630289e-79,7.798135966944099904e-81,2.096144865656939865e-82,5.555094808556719684e-84,1.451735541777490119e-85,3.741908639890800060e-87,9.514588073075759588e-89,2.387026594719790128e-90,5.909792000871349660e-92,1.444142340523629974e-93 +1.523453475285279912e-01,2.866538151778830201e-01,2.696846706810280270e-01,1.691467029785319875e-01,7.956683371062049648e-02,2.994267539479989956e-02,9.390049513376219278e-03,2.524052434987239957e-03,5.936588086999420276e-04,1.241146186670299978e-04,2.335347257886559859e-05,3.994728914502679870e-06,6.263752621485889479e-07,9.066084773877960330e-08,1.218485233582089975e-08,1.528472192119580042e-09,1.797488372521250065e-10,1.989508041240509912e-11,2.079704943773209868e-12,2.059570457752100103e-13,1.937649356937999988e-14,1.736138725205490060e-15,1.484876294466490123e-16,1.214761358011200072e-17,9.523755933848759962e-19,7.167979902371499780e-20,5.187426561949570248e-21,3.615070138853759766e-22,2.429333991696569979e-23,1.576223359845989914e-24,9.886100822950779661e-26,6.000561233568539845e-27,3.528339966389590026e-28,2.011800976825940050e-29,1.113357472003170030e-30,5.985426667277320093e-32,3.128391836699309843e-33,1.590918567067669895e-34,7.877581123303889844e-36,3.800640637902999820e-37,1.787826403381000010e-38,8.204838189388979903e-40,3.675777886137729931e-41,1.608456557330999955e-42,6.878364551131530289e-44,2.876081617271109819e-45,1.176445749779670016e-46,4.709801217319759991e-48,1.846247289431899893e-49,7.089609606486859845e-51,2.667969419204810166e-52,9.843265552155940491e-54,3.561757836728990277e-55,1.264494804881909948e-56,4.406074336931249971e-58,1.507362341403299937e-59,5.064751765695249701e-61,1.671905934494069966e-62,5.423908771750069885e-64,1.729772128317719983e-65,5.424580708837330060e-67,1.673265553683129920e-68,5.078105410167079817e-70,1.516665097617529985e-71,4.459007975466900303e-73,1.290783552795910003e-74,3.679916954038420100e-76,1.033455416219749906e-77,2.859640001382630289e-79,7.798135966944099904e-81,2.096144865656939865e-82,5.555094808556719684e-84,1.451735541777490119e-85,3.741908639890800060e-87,9.514588073075759588e-89,2.387026594719790128e-90,5.909792000871349660e-92,1.444142340523629974e-93 +1.523453475285279912e-01,2.866538151778830201e-01,2.696846706810280270e-01,1.691467029785319875e-01,7.956683371062049648e-02,2.994267539479989956e-02,9.390049513376219278e-03,2.524052434987239957e-03,5.936588086999420276e-04,1.241146186670299978e-04,2.335347257886559859e-05,3.994728914502679870e-06,6.263752621485889479e-07,9.066084773877960330e-08,1.218485233582089975e-08,1.528472192119580042e-09,1.797488372521250065e-10,1.989508041240509912e-11,2.079704943773209868e-12,2.059570457752100103e-13,1.937649356937999988e-14,1.736138725205490060e-15,1.484876294466490123e-16,1.214761358011200072e-17,9.523755933848759962e-19,7.167979902371499780e-20,5.187426561949570248e-21,3.615070138853759766e-22,2.429333991696569979e-23,1.576223359845989914e-24,9.886100822950779661e-26,6.000561233568539845e-27,3.528339966389590026e-28,2.011800976825940050e-29,1.113357472003170030e-30,5.985426667277320093e-32,3.128391836699309843e-33,1.590918567067669895e-34,7.877581123303889844e-36,3.800640637902999820e-37,1.787826403381000010e-38,8.204838189388979903e-40,3.675777886137729931e-41,1.608456557330999955e-42,6.878364551131530289e-44,2.876081617271109819e-45,1.176445749779670016e-46,4.709801217319759991e-48,1.846247289431899893e-49,7.089609606486859845e-51,2.667969419204810166e-52,9.843265552155940491e-54,3.561757836728990277e-55,1.264494804881909948e-56,4.406074336931249971e-58,1.507362341403299937e-59,5.064751765695249701e-61,1.671905934494069966e-62,5.423908771750069885e-64,1.729772128317719983e-65,5.424580708837330060e-67,1.673265553683129920e-68,5.078105410167079817e-70,1.516665097617529985e-71,4.459007975466900303e-73,1.290783552795910003e-74,3.679916954038420100e-76,1.033455416219749906e-77,2.859640001382630289e-79,7.798135966944099904e-81,2.096144865656939865e-82,5.555094808556719684e-84,1.451735541777490119e-85,3.741908639890800060e-87,9.514588073075759588e-89,2.387026594719790128e-90,5.909792000871349660e-92,1.444142340523629974e-93 +3.667351615308579726e-02,1.212316575714769973e-01,2.003777703803729937e-01,2.207962929096410065e-01,1.824715992825579891e-01,1.206392882995020038e-01,6.646622423541169444e-02,3.138820357814629813e-02,1.296999969980200049e-02,4.763881487983540053e-03,1.574796501245009960e-03,4.732550407189550171e-04,1.303699487138589898e-04,3.315107642951420157e-05,7.827680508214350635e-06,1.725064447033169917e-06,3.564091411675569944e-07,6.930481446548139533e-08,1.272783077494139934e-08,2.214441867179409974e-09,3.660140699806459851e-10,5.761585062275659759e-11,8.657306423710390639e-12,1.244280932119739982e-12,1.713841664101940064e-13,2.266178840194519972e-14,2.881272435687100149e-15,3.527638328425570177e-16,4.164755530964130263e-17,4.747391064695470094e-18,5.231150871113779640e-19,5.578263743948540178e-20,5.762521491895889849e-21,5.772475663014290469e-22,5.612375057513309809e-23,5.300808730708199855e-24,4.867468228227479547e-25,4.348754525047629747e-26,3.783073589142530035e-27,3.206591777971869826e-28,2.650007942897260126e-29,2.136617648031550055e-30,1.681670915730689959e-31,1.292814010288440116e-32,9.712854114760189782e-34,7.135063528721190440e-35,5.127474449752560247e-36,3.606360514278259923e-37,2.483655718573480080e-38,1.675555457127449910e-39,1.107776874039400082e-40,7.180349945846680275e-42,4.564631883991050156e-43,2.847038776192090106e-44,1.742862456360189996e-45,1.047523844636680038e-46,6.183571442986500031e-48,3.586146436150379708e-49,2.043918234947270067e-50,1.145183280975199929e-51,6.309388078863389840e-53,3.419171605164850077e-54,1.823025321707859995e-55,9.565675496443530379e-57,4.940821478058910104e-58,2.512750094014659800e-59,1.258545307408900032e-60,6.209513052476710105e-62,3.018645569899840204e-63,1.446193900513559966e-64,6.829548253262870211e-66,3.179780351542369957e-67,1.459916837237680094e-68,6.611024239602200641e-70,2.953252104496869993e-71,1.301675561041950024e-72,5.661775582235429918e-74,2.430666739293579759e-75 diff --git a/statsmodels/discrete/tests/results/results_count_robust_cluster.py b/statsmodels/discrete/tests/results/results_count_robust_cluster.py new file mode 100644 index 0000000..22670e3 --- /dev/null +++ b/statsmodels/discrete/tests/results/results_count_robust_cluster.py @@ -0,0 +1,695 @@ +import numpy as np + +est = dict( + rank = 3, + N = 34, + ic = 1, + k = 3, + k_eq = 1, + k_dv = 1, + converged = 1, + rc = 0, + k_autoCns = 0, + N_clust = 5, + ll = -354.2436413025559, + k_eq_model = 1, + ll_0 = -356.2029100704882, + df_m = 2, + chi2 = 5.204189583786304, + p = .0741181533729996, + r2_p = .0055004288638308, + cmdline = "poisson accident yr_con op_75_79, vce(cluster ship)", + cmd = "poisson", + predict = "poisso_p", + estat_cmd = "poisson_estat", + gof = "poiss_g", + chi2type = "Wald", + opt = "moptimize", + vcetype = "Robust", + clustvar = "ship", + vce = "cluster", + title = "Poisson regression", + user = "poiss_lf", + crittype = "log pseudolikelihood", + ml_method = "e2", + singularHmethod = "m-marquardt", + technique = "nr", + which = "max", + depvar = "accident", + properties = "b V", + ) + +params_table = np.array([ + -.02172061893549, .19933709357097, -.10896426022065, .91323083771076, + -.41241414311748, .36897290524649, np.nan, 1.9599639845401, + 0, .22148585072024, .11093628220713, 1.9965140918162, + .04587799343723, .00405473301549, .43891696842499, np.nan, + 1.9599639845401, 0, 2.2697077143215, 1.1048569901548, + 2.054299999499, .03994666479943, .10422780555076, 4.4351876230922, + np.nan, 1.9599639845401, 0]).reshape(3,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = 'yr_con op_75_79 _cons'.split() + +cov = np.array([ + .03973527687332, .00976206273414, -.21171095768584, .00976206273414, + .01230685870994, -.06297293767114, -.21171095768584, -.06297293767114, + 1.2207089686939]).reshape(3,3) + +cov_colnames = 'yr_con op_75_79 _cons'.split() + +cov_rownames = 'yr_con op_75_79 _cons'.split() + +class Bunch(dict): + def __init__(self, **kw): + dict.__init__(self, kw) + self.__dict__ = self + + for i,att in enumerate(['params', 'bse', 'tvalues', 'pvalues']): + self[att] = self.params_table[:,i] + + +results_poisson_clu = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) + +est = dict( + rank = 3, + N = 34, + ic = 1, + k = 3, + k_eq = 1, + k_dv = 1, + converged = 1, + rc = 0, + k_autoCns = 0, + ll = -354.2436413025559, + k_eq_model = 1, + ll_0 = -356.2029100704882, + df_m = 2, + chi2 = .1635672212515404, + p = .9214713337295277, + r2_p = .0055004288638308, + cmdline = "poisson accident yr_con op_75_79, vce(robust)", + cmd = "poisson", + predict = "poisso_p", + estat_cmd = "poisson_estat", + gof = "poiss_g", + chi2type = "Wald", + opt = "moptimize", + vcetype = "Robust", + vce = "robust", + title = "Poisson regression", + user = "poiss_lf", + crittype = "log pseudolikelihood", + ml_method = "e2", + singularHmethod = "m-marquardt", + technique = "nr", + which = "max", + depvar = "accident", + properties = "b V", + ) + +params_table = np.array([ + -.02172061893549, .19233713248134, -.11292993014545, .91008610728406, + -.39869447148862, .35525323361764, np.nan, 1.9599639845401, + 0, .22148585072024, .55301404772037, .400506735106, + .68878332380143, -.8624017657564, 1.3053734671969, np.nan, + 1.9599639845401, 0, 2.2697077143215, .66532523368388, + 3.4114258702533, .00064624070669, .96569421829539, 3.5737212103476, + np.nan, 1.9599639845401, 0]).reshape(3,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = 'yr_con op_75_79 _cons'.split() + +cov = np.array([ + .03699357253114, -.01521223175214, -.09585501859714, -.01521223175214, + .30582453697607, -.1649339692102, -.09585501859714, -.1649339692102, + .44265766657651]).reshape(3,3) + +cov_colnames = 'yr_con op_75_79 _cons'.split() + +cov_rownames = 'yr_con op_75_79 _cons'.split() + + +results_poisson_hc1 = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) + +est = dict( + rank = 3, + N = 34, + ic = 4, + k = 3, + k_eq = 1, + k_dv = 1, + converged = 1, + rc = 0, + k_autoCns = 0, + ll = -91.28727940081573, + k_eq_model = 1, + ll_0 = -122.0974139280415, + df_m = 2, + chi2 = 61.62026905445154, + p = 4.16225408420e-14, + r2_p = .2523405986746273, + cmdline = "poisson accident yr_con op_75_79, exposure(service)", + cmd = "poisson", + predict = "poisso_p", + estat_cmd = "poisson_estat", + offset = "ln(service)", + gof = "poiss_g", + chi2type = "LR", + opt = "moptimize", + vce = "oim", + title = "Poisson regression", + user = "poiss_lf", + crittype = "log likelihood", + ml_method = "e2", + singularHmethod = "m-marquardt", + technique = "nr", + which = "max", + depvar = "accident", + properties = "b V", + ) + +params_table = np.array([ + .30633819450439, .05790831365493, 5.290055523458, 1.222792336e-07, + .19283998533528, .4198364036735, np.nan, 1.9599639845401, + 0, .35592229608495, .12151759298719, 2.9289775030556, + .00340079035234, .11775219034206, .59409240182785, np.nan, + 1.9599639845401, 0, -6.974712802772, .13252425018256, + -52.629709605328, 0, -7.234455560208, -6.714970045336, + np.nan, 1.9599639845401, 0]).reshape(3,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = 'yr_con op_75_79 _cons'.split() + +cov = np.array([ + .00335337279036, -.00315267340017, -.00589654294427, -.00315267340017, + .0147665254054, -.00165060980569, -.00589654294427, -.00165060980569, + .01756267688645]).reshape(3,3) + +cov_colnames = 'yr_con op_75_79 _cons'.split() + +cov_rownames = 'yr_con op_75_79 _cons'.split() + + +results_poisson_exposure_nonrobust = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) + +est = dict( + rank = 3, + N = 34, + ic = 4, + k = 3, + k_eq = 1, + k_dv = 1, + converged = 1, + rc = 0, + k_autoCns = 0, + ll = -91.28727940081573, + k_eq_model = 1, + ll_0 = -122.0974139280415, + df_m = 2, + chi2 = 15.1822804640621, + p = .0005049050167458, + r2_p = .2523405986746273, + cmdline = "poisson accident yr_con op_75_79, exposure(service) vce(robust)", + cmd = "poisson", + predict = "poisso_p", + estat_cmd = "poisson_estat", + offset = "ln(service)", + gof = "poiss_g", + chi2type = "Wald", + opt = "moptimize", + vcetype = "Robust", + vce = "robust", + title = "Poisson regression", + user = "poiss_lf", + crittype = "log pseudolikelihood", + ml_method = "e2", + singularHmethod = "m-marquardt", + technique = "nr", + which = "max", + depvar = "accident", + properties = "b V", + ) + +params_table = np.array([ + .30633819450439, .09144457613957, 3.3499875819514, .00080815183366, + .12711011868929, .48556627031949, np.nan, 1.9599639845401, + 0, .35592229608495, .16103531267836, 2.2102127177276, + .02709040275274, .04029888299621, .67154570917369, np.nan, + 1.9599639845401, 0, -6.974712802772, .2558675415017, + -27.259076168227, 1.29723387e-163, -7.4762039689282, -6.4732216366159, + np.nan, 1.9599639845401, 0]).reshape(3,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = 'yr_con op_75_79 _cons'.split() + +cov = np.array([ + .00836211050535, .00098797681063, -.01860743122756, .00098797681063, + .02593237192942, -.02395236210603, -.01860743122756, -.02395236210603, + .06546819879413]).reshape(3,3) + +cov_colnames = 'yr_con op_75_79 _cons'.split() + +cov_rownames = 'yr_con op_75_79 _cons'.split() + + +results_poisson_exposure_hc1 = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) + +est = dict( + rank = 3, + N = 34, + ic = 4, + k = 3, + k_eq = 1, + k_dv = 1, + converged = 1, + rc = 0, + k_autoCns = 0, + N_clust = 5, + ll = -91.28727940081573, + k_eq_model = 1, + ll_0 = -122.0974139280415, + df_m = 2, + chi2 = 340.7343047354823, + p = 1.02443835269e-74, + r2_p = .2523405986746273, + cmdline = "poisson accident yr_con op_75_79, exposure(service) vce(cluster ship)", + cmd = "poisson", + predict = "poisso_p", + estat_cmd = "poisson_estat", + offset = "ln(service)", + gof = "poiss_g", + chi2type = "Wald", + opt = "moptimize", + vcetype = "Robust", + clustvar = "ship", + vce = "cluster", + title = "Poisson regression", + user = "poiss_lf", + crittype = "log pseudolikelihood", + ml_method = "e2", + singularHmethod = "m-marquardt", + technique = "nr", + which = "max", + depvar = "accident", + properties = "b V", + ) + +params_table = np.array([ + .30633819450439, .03817694295902, 8.0241677504982, 1.022165435e-15, + .23151276126487, .38116362774391, np.nan, 1.9599639845401, + 0, .35592229608495, .09213163536669, 3.8631930787765, + .00011191448109, .17534760892947, .53649698324044, np.nan, + 1.9599639845401, 0, -6.974712802772, .0968656626603, + -72.003975518463, 0, -7.1645660129248, -6.7848595926192, + np.nan, 1.9599639845401, 0]).reshape(3,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = 'yr_con op_75_79 _cons'.split() + +cov = np.array([ + .0014574789737, -.00277745275086, .00108765624666, -.00277745275086, + .00848823823534, -.00469929607507, .00108765624666, -.00469929607507, + .00938295660262]).reshape(3,3) + +cov_colnames = 'yr_con op_75_79 _cons'.split() + +cov_rownames = 'yr_con op_75_79 _cons'.split() + + +results_poisson_exposure_clu = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) + +est = dict( + rank = 4, + N = 34, + ic = 2, + k = 4, + k_eq = 2, + k_dv = 1, + converged = 1, + rc = 0, + k_autoCns = 0, + N_clust = 5, + ll = -109.0877965183258, + k_eq_model = 1, + ll_0 = -109.1684720604314, + rank0 = 2, + df_m = 2, + chi2 = 5.472439553195301, + p = .0648148991694882, + k_aux = 1, + alpha = 2.330298308905143, + cmdline = "nbreg accident yr_con op_75_79, vce(cluster ship)", + cmd = "nbreg", + predict = "nbreg_p", + dispers = "mean", + diparm_opt2 = "noprob", + chi2type = "Wald", + opt = "moptimize", + vcetype = "Robust", + clustvar = "ship", + vce = "cluster", + title = "Negative binomial regression", + diparm1 = "lnalpha, exp label(", + user = "nbreg_lf", + crittype = "log pseudolikelihood", + ml_method = "e2", + singularHmethod = "m-marquardt", + technique = "nr", + which = "max", + depvar = "accident", + properties = "b V", + ) + +params_table = np.array([ + -.03536709401845, .27216090050938, -.12994921001605, .89660661037787, + -.56879265701682, .49805846897992, np.nan, 1.9599639845401, + 0, .23211570238882, .09972456245386, 2.3275680201277, + .01993505322091, .03665915160525, .42757225317239, np.nan, + 1.9599639845401, 0, 2.2952623989519, 1.2335785495143, + 1.8606536242509, .06279310688494, -.12250713019722, 4.7130319281011, + np.nan, 1.9599639845401, 0, .84599628895555, + .22483100011931, np.nan, np.nan, .40533562611357, + 1.2866569517975, np.nan, 1.9599639845401, 0, + 2.3302983089051, .52392329936749, np.nan, np.nan, + 1.4998057895818, 3.6206622525444, np.nan, 1.9599639845401, + 0]).reshape(5,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = 'yr_con op_75_79 _cons _cons alpha'.split() + +cov = np.array([ + .07407155576607, -.00421355148283, -.32663130963457, .02015715724983, + -.00421355148283, .00994498835661, .00992613461881, -.00714955450361, + -.32663130963457, .00992613461881, 1.5217160378218, -.09288283512096, + .02015715724983, -.00714955450361, -.09288283512096, .05054897861465 + ]).reshape(4,4) + +cov_colnames = 'yr_con op_75_79 _cons _cons'.split() + +cov_rownames = 'yr_con op_75_79 _cons _cons'.split() + + +results_negbin_clu = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) + +est = dict( + rank = 4, + N = 34, + ic = 2, + k = 4, + k_eq = 2, + k_dv = 1, + converged = 1, + rc = 0, + k_autoCns = 0, + ll = -109.0877965183258, + k_eq_model = 1, + ll_0 = -109.1684720604314, + rank0 = 2, + df_m = 2, + chi2 = .1711221347493475, + p = .9179970816706797, + r2_p = .0007390003778831, + k_aux = 1, + alpha = 2.330298308905143, + cmdline = "nbreg accident yr_con op_75_79, vce(robust)", + cmd = "nbreg", + predict = "nbreg_p", + dispers = "mean", + diparm_opt2 = "noprob", + chi2type = "Wald", + opt = "moptimize", + vcetype = "Robust", + vce = "robust", + title = "Negative binomial regression", + diparm1 = "lnalpha, exp label(", + user = "nbreg_lf", + crittype = "log pseudolikelihood", + ml_method = "e2", + singularHmethod = "m-marquardt", + technique = "nr", + which = "max", + depvar = "accident", + properties = "b V", + ) + +params_table = np.array([ + -.03536709401845, .26106873337039, -.13547043172065, .89223994079058, + -.5470524089139, .476318220877, np.nan, 1.9599639845401, + 0, .23211570238882, .56245325203342, .41268443475019, + .67983783029986, -.87027241458412, 1.3345038193618, np.nan, + 1.9599639845401, 0, 2.2952623989519, .76040210713867, + 3.0184850586341, .00254041928465, .80490165519179, 3.7856231427121, + np.nan, 1.9599639845401, 0, .84599628895555, + .24005700345444, np.nan, np.nan, .37549320794823, + 1.3164993699629, np.nan, 1.9599639845401, 0, + 2.3302983089051, .55940442919073, np.nan, np.nan, + 1.4557092049439, 3.7303399539165, np.nan, 1.9599639845401, + 0]).reshape(5,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = 'yr_con op_75_79 _cons _cons alpha'.split() + +cov = np.array([ + .06815688354362, -.03840590969835, -.16217402790798, .02098165591138, + -.03840590969835, .31635366072297, -.11049674936104, -.02643483668568, + -.16217402790798, -.11049674936104, .57821136454093, -.03915049342584, + .02098165591138, -.02643483668568, -.03915049342584, .05762736490753 + ]).reshape(4,4) + +cov_colnames = 'yr_con op_75_79 _cons _cons'.split() + +cov_rownames = 'yr_con op_75_79 _cons _cons'.split() + + +results_negbin_hc1 = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) + +est = dict( + rank = 4, + N = 34, + ic = 4, + k = 4, + k_eq = 2, + k_dv = 1, + converged = 1, + rc = 0, + k_autoCns = 0, + ll = -82.49115612464289, + k_eq_model = 1, + ll_0 = -84.68893065247886, + rank0 = 2, + df_m = 2, + chi2 = 4.39554905567195, + p = .1110500222994781, + ll_c = -91.28727940081573, + chi2_c = 17.5922465523457, + r2_p = .0259511427397111, + k_aux = 1, + alpha = .2457422083490335, + cmdline = "nbreg accident yr_con op_75_79, exposure(service)", + cmd = "nbreg", + predict = "nbreg_p", + offset = "ln(service)", + dispers = "mean", + diparm_opt2 = "noprob", + chi2_ct = "LR", + chi2type = "LR", + opt = "moptimize", + vce = "oim", + title = "Negative binomial regression", + diparm1 = "lnalpha, exp label(", + user = "nbreg_lf", + crittype = "log likelihood", + ml_method = "e2", + singularHmethod = "m-marquardt", + technique = "nr", + which = "max", + depvar = "accident", + properties = "b V", + ) + +params_table = np.array([ + .28503762550355, .14983643534827, 1.9023251910727, .05712865433138, + -.00863639135093, .57871164235802, np.nan, 1.9599639845401, + 0, .17127003537767, .27580549562862, .62098122804736, + .53461197443513, -.36929880279264, .71183887354798, np.nan, + 1.9599639845401, 0, -6.5908639033905, .40391814231008, + -16.31732574748, 7.432080344e-60, -7.3825289150206, -5.7991988917604, + np.nan, 1.9599639845401, 0, -1.4034722260565, + .51305874839271, np.nan, np.nan, -2.4090488948595, + -.39789555725363, np.nan, 1.9599639845401, 0, + .24574220834903, .12608018984282, np.nan, np.nan, + .089900758997, .67173218155228, np.nan, 1.9599639845401, + 0]).reshape(5,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = 'yr_con op_75_79 _cons _cons alpha'.split() + +cov = np.array([ + .02245095735788, -.01097939549632, -.05127649084781, .00045725833006, + -.01097939549632, .07606867141895, -.0197375670989, -.00926008351523, + -.05127649084781, -.0197375670989, .16314986568722, .02198323898312, + .00045725833006, -.00926008351523, .02198323898312, .26322927930229 + ]).reshape(4,4) + +cov_colnames = 'yr_con op_75_79 _cons _cons'.split() + +cov_rownames = 'yr_con op_75_79 _cons _cons'.split() + + +results_negbin_exposure_nonrobust = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) + +est = dict( + rank = 4, + N = 34, + ic = 4, + k = 4, + k_eq = 2, + k_dv = 1, + converged = 1, + rc = 0, + k_autoCns = 0, + N_clust = 5, + ll = -82.49115612464289, + k_eq_model = 1, + ll_0 = -84.68893065247886, + rank0 = 2, + df_m = 2, + chi2 = 5.473741859983782, + p = .0647727084656973, + k_aux = 1, + alpha = .2457422083490335, + cmdline = "nbreg accident yr_con op_75_79, exposure(service) vce(cluster ship)", + cmd = "nbreg", + predict = "nbreg_p", + offset = "ln(service)", + dispers = "mean", + diparm_opt2 = "noprob", + chi2type = "Wald", + opt = "moptimize", + vcetype = "Robust", + clustvar = "ship", + vce = "cluster", + title = "Negative binomial regression", + diparm1 = "lnalpha, exp label(", + user = "nbreg_lf", + crittype = "log pseudolikelihood", + ml_method = "e2", + singularHmethod = "m-marquardt", + technique = "nr", + which = "max", + depvar = "accident", + properties = "b V", + ) + +params_table = np.array([ + .28503762550355, .14270989695062, 1.9973220610073, .04579020833966, + .00533136724292, .56474388376418, np.nan, 1.9599639845401, + 0, .17127003537767, .17997186802799, .95164892854829, + .34127505843023, -.18146834418759, .52400841494293, np.nan, + 1.9599639845401, 0, -6.5908639033905, .62542746996715, + -10.538174640357, 5.760612980e-26, -7.8166792194681, -5.3650485873129, + np.nan, 1.9599639845401, 0, -1.4034722260565, + .86579403765571, np.nan, np.nan, -3.1003973578913, + .29345290577817, np.nan, 1.9599639845401, 0, + .24574220834903, .21276213878894, np.nan, np.nan, + .0450313052935, 1.3410500222158, np.nan, 1.9599639845401, + 0]).reshape(5,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = 'yr_con op_75_79 _cons _cons alpha'.split() + +cov = np.array([ + .02036611468766, -.00330004038514, -.08114367170947, -.07133030733881, + -.00330004038514, .03238987328148, -.03020509748676, -.09492663454187, + -.08114367170947, -.03020509748676, .39115952018952, .43276143586693, + -.07133030733881, -.09492663454187, .43276143586693, .74959931564018 + ]).reshape(4,4) + +cov_colnames = 'yr_con op_75_79 _cons _cons'.split() + +cov_rownames = 'yr_con op_75_79 _cons _cons'.split() + + +results_negbin_exposure_clu = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) diff --git a/statsmodels/discrete/tests/results/results_discrete.py b/statsmodels/discrete/tests/results/results_discrete.py new file mode 100644 index 0000000..a221a05 --- /dev/null +++ b/statsmodels/discrete/tests/results/results_discrete.py @@ -0,0 +1,960 @@ +""" +Test Results for discrete models from Stata +""" +import os +import numpy as np + +#### Discrete Model Tests #### +# Note that there is a slight refactor of the classes, so that one dataset +# might be used for more than one model + +cur_dir = os.path.abspath(os.path.dirname(__file__)) + +class Anes(object): + def __init__(self): + """ + Results are from Stata 11 (checked vs R nnet package). + """ + self.nobs = 944 + + def mnlogit_basezero(self): + params = [-.01153598, .29771435, -.024945, .08249144, .00519655, + -.37340167, -.08875065, .39166864, -.02289784, .18104276, + .04787398, -2.2509132, -.1059667, .57345051, -.01485121, + -.00715242, .05757516, -3.6655835, -.0915567, 1.2787718, + -.00868135, .19982796, .08449838, -7.6138431, -.0932846, + 1.3469616, -.01790407, .21693885, .08095841, -7.0604782, + -.14088069, 2.0700801, -.00943265, .3219257, .10889408, + -12.105751] + self.params = np.reshape(params, (6,-1), order='F') + bse = [.0342823657, .093626795, .0065248584, .0735865799, + .0176336937, .6298376313, .0391615553, .1082386919, + .0079144618, .0852893563, .0222809297, .7631899491, + .0570382292, .1585481337, .0113313133, .1262913234, + .0336142088, 1.156541492, .0437902764, .1288965854, + .0084187486, .0941250559, .0261963632, .9575809602, + .0393516553, .1171860107, .0076110152, .0850070091, + .0229760791, .8443638283, .042138047, .1434089089, + .0081338625, .0910979921, .025300888, 1.059954821] + self.bse = np.reshape(bse, (6,-1), order='F') + self.yhat = np.loadtxt(os.path.join(cur_dir,'yhat_mnlogit.csv')) + self.phat = np.loadtxt(os.path.join(cur_dir,'phat_mnlogit.csv')) + self.cov_params = None + self.llf = -1461.922747312 + self.llnull = -1750.34670999 + self.llr = 576.8479253554 + self.llr_pvalue = 1.8223179e-102 + self.prsquared = .1647810465387 + self.df_model = 30 + self.df_resid = 944 - 36 + self.J = 7 + self.K = 6 + self.aic = 2995.84549462 + self.bic = 3170.45003661 + z = [-.3364988051, 3.179798597, -3.823070772, 1.121012042, + .2946945327, -.5928538661, -2.266269864, 3.618564069, + -2.893164162, 2.122688754, 2.148652536, -2.949348555, + -1.857818873, 3.616885888, -1.310634214, -.0566342868, + 1.712822091, -3.169435381, -2.090799808, 9.920912816, + -1.031191864, 2.123004903, 3.225576554, -7.951122047, + -2.370538224, 11.49421878, -2.352389066, 2.552011323, + 3.523595639, -8.361890935, -3.34331327, 14.43480847, + -1.159676452, 3.533839715, 4.303962885, -11.42100649] + self.z = np.reshape(z, (6,-1), order='F') + pvalues = [0.7364947525, 0.0014737744, 0.0001317999, 0.2622827367, + 0.7682272401, 0.5532789548, 0.0234348654, 0.0002962422, + 0.0038138191, 0.0337799420, 0.0316619538, 0.0031844460, + 0.0631947400, 0.0002981687, 0.1899813744, 0.9548365214, + 0.0867452747, 0.0015273542, 0.0365460134, 3.37654e-23, + 0.3024508550, 0.0337534410, 0.0012571921, 1.84830e-15, + 0.0177622072, 1.41051e-30, 0.0186532528, 0.0107103038, + 0.0004257334, 6.17209e-17, 0.0008278439, 3.12513e-47, + 0.2461805610, 0.0004095694, 0.0000167770, 3.28408e-30] + self.pvalues = np.reshape(pvalues, (6,-1), order='F') + conf_int = [[[-0.0787282, 0.0556562], [0.1142092, 0.4812195], + [-0.0377335, -0.0121565], [-0.0617356, 0.2267185], [-0.0293649, + 0.0397580], [-1.6078610, 0.8610574]], [[-0.1655059, -0.0119954], + [0.1795247, 0.6038126], [-0.0384099, -0.0073858], [0.0138787, + 0.3482068], [0.0042042, 0.0915438], [-3.7467380, -0.7550884]], + [[-0.2177596, 0.0058262], [0.2627019, 0.8841991], [-0.0370602, + 0.0073578], [-0.2546789, 0.2403740], [-0.0083075, 0.1234578], + [-5.9323630,-1.3988040]],[[-0.1773841, -0.0057293], [1.0261390, + 1.5314040], [-0.0251818, 0.0078191], [0.0153462, 0.3843097], + [0.0331544, 0.1358423], [-9.4906670, -5.7370190]], [[-0.1704124, + -0.0161568], [1.1172810, 1.5766420], [-0.0328214, -0.0029868], + [0.0503282, 0.3835495], [0.0359261, 0.1259907], [-8.7154010, + -5.4055560]], [[-0.2234697, -0.0582916], [1.7890040, 2.3511560], + [-0.0253747, 0.0065094], [0.1433769, 0.5004745], [0.0593053, + 0.1584829], [-14.1832200, -10.0282800]]] + self.conf_int = np.asarray(conf_int) + + # margins, dydx(*) predict(outcome(#)) + self.margeff_dydx_overall = np.array([ + [0.00868085993550, -0.09779854015456, 0.00272556969847, + -0.01992376579372, -0.00603133322764], + [0.00699386733148, -0.05022430802614, -0.00211003909752, + -0.00536980000265, -0.00554366741814], + [-0.00391040848820, -0.02824717135857, -0.00100551299310, + 0.00664337806861, 0.00097987356999], + [-0.00182580888015, -0.00573744730031, -0.00004249256428, + -0.00546669558488, 0.00054101121854], + [-0.00098558129923, 0.01985550937033, 0.00047972250012, + 0.00172605778905, 0.00211291403209], + [-0.00153469551647, 0.03755346502013, -0.00068531143399, + 0.00472471794347, 0.00254733486106], + [-0.00741820702809, 0.12459834487569, 0.00063806819375, + 0.01766610701188, 0.00539385283759] + ]).T + self.margeff_dydx_overall_se = np.array([ + [.0038581061, .0080471125, .0007068488, .0082318967, .0020261706], + [.003904378, .0073600286, .000756431, .0084381578, .0020482238], + [.003137126, .0056813182, .0006601377, .0068932588, .0018481806], + [.0019427783, .0031904763, .0003865411, .004361789, .0011523221], + [.0029863227, .0054076092, .0005886612, .0064426365, .0018886818], + [.0035806552, .0069497362, .000722511, .0078287717, .0022352393], + [.0033641608, .008376629, .0006774697, .0073505286, .0021660086] + ]).T + + self.margeff_dydx_mean = np.array([ + [0.01149887431225, -0.13784207091973, 0.00273313385873, + -0.02542974260540, -0.00855346837482], + [0.01114846831102, -0.09864273512889, -0.00222435063712, + -0.01214617126321, -0.00903581444579], + [-0.00381702868421, -0.05132297961269, -0.00116763216994, + 0.00624203027060, 0.00021912081810], + [-0.00233455327258, -0.00928554037343, -0.00000206561214, + -0.00775415690571, 0.00060004460394], + [-0.00352579921274, 0.06412187169362, 0.00073938948643, + 0.00747778063206, 0.00459965010365], + [-0.00574308219449, 0.11126535089794, -0.00057337915464, + 0.01467424346725, 0.00641760846097], + [-0.00722687818452, 0.12170608820238, 0.00049490419675, + 0.01693601418978, 0.00575285798725]]).T + self.margeff_dydx_mean_se = np.array([ + [.0043729758, .0110343353, .0008149907, .0092551389, .0023752071], + [.004875051, .0124746358, .0009613152, .0105665812, .0026524426], + [.0040718954, .0103613938, .0008554615, .0089931297, .0024374625], + [.0026430804, .0070845916, .0005364369, .0057654258, .0015988838], + [.0037798151, .0103849291, .0007393481, .0082021938, .0023489261], + [.0045654631, .0130329403, .0009128134, .0100053262, .0028048602], + [.0027682389, .0113292677, .0005325113, .0061289353, .0017330763] + ]).T + + self.margeff_dydx_dummy_overall = np.array([ + [0.00549149574321, -0.05348235321783, 0.00298963549049, + -0.01479461677951, -0.00332167981255, -0.26502967041815], + [0.00345677928276, -0.00950322030929, -0.00189456107189, + 0.00033893662061, -0.00314690167350, -0.21040878091828], + [-0.00645089013284, 0.00401746940204, -0.00083948249351, + 0.01114202556889, 0.00277069841472, -0.15967397659686], + [-0.00215436802341, -0.00366545199370, -0.00000002297812, + -0.00457368049644, 0.00065303026027, -0.00094772782001], + [0.00058038428936, -0.00369080100124, 0.00035948233235, + -0.00018863693013, 0.00079351293461, 0.12640653743480], + [0.00217597030999, -0.01279456622853, -0.00091882392767, + 0.00001651192759, -0.00037998290789, 0.27175070356670], + [-0.00309932483642, 0.07911868907484, 0.00030378521102, + 0.00805941631677, 0.00263129901425, 0.23790291475181]]).T + self.margeff_dydx_dummy_overall_se = np.array([ + [.0037314453, .0094102332, .000688838, .0079744554, .0019365971, + .0243914836], + [.0038215262, .0095938828, .0007410885, .008259353, .0019984087, + .0317628806], + [.0031045718, .00785814, .0006504353, .0067892866, .0018060332, + 0.0262803561], + [.0019756086, .0051031194, .0003862449, .0043621673, .0011796953, + .0219999601], + [.0029714074, .0081732018, .0005715192, .0064742872, .0019130195, + .0331694192], + [.0034443743, .0097296187, .0006774867, .0075996454, .0021993881, + .038600835], + [.0032003518, .0098741227, .0006335772, .0070902078, .0021003227, + .0255727127]]).T + + self.margeff_eydx_dummy_overall = np.array([ + [.03939188, -.65758371, .01750922, -.12131806, -.03613241, + -3.2132513], + [.02752366, -.383165, -.00830021, -.03652935, -.03286046, + -1.8741853], + [-.05006681, -.2719659, -.00626481, .06525323, .01012554, + -2.0058029], + [-.05239558, -.22549142, .00025015, -.13104416, .01114517, + -.27052009], + [-.00296374, .25627809, .00140513, .03358712, .02296041, + 1.3302701], + [.00328283, .2800168, -.0083912, .04332782, .01575863, + 1.8441023], + [-.03257068, .98346111, -.00122118, .10847807, .0406456, + 2.9119099]]).T + + self.margeff_eydx_dummy_overall_se = np.array([ + [.0272085605, .0777760394, .0052427952, .0584011446, .0148618012, + .5796921383], + [.0262290023, .0724479385, .005174736, .0567743614, .0144447083, + .3015738731], + [.0321415498, .0895589422, .0067480662, .0701460193, .0190451865, + .3904138447], + [.0511305319, .1420904068, .0102342163, .1129912244, .0308618233, + .3693799595], + [.0340186217, .0991711703, .0065812158, .0737441012, .0212966336, + .2346982385], + [.0289250212, .0840662279, .0056743561, .0631772185, .0177278895, + .2089516714], + [.0318251305, .1085637405, .0062400589, .0699123044, .0201045606, + .3727166284]]).T + + # taken from gretl + self.resid = np.loadtxt(os.path.join(cur_dir,'mnlogit_resid.csv'), + delimiter=",") + + +class DiscreteL1(object): + def __init__(self): + """ + Special results for L1 models + Uses the Spector data and a script to generate the baseline results + """ + pass + + def logit(self): + """ + Results generated with: + data = sm.datasets.spector.load() + data.exog = sm.add_constant(data.exog, prepend=True) + alpha = 3 * np.array([0, 1, 1, 1]) + res2 = sm.Logit(data.endog, data.exog).fit_regularized( + method="l1", alpha=alpha, disp=0, trim_mode='size', + size_trim_tol=1e-5, acc=1e-10, maxiter=1000) + """ + nan = np.nan + self.params = [-4.10271595, 0., 0.15493781, 0.] + self.conf_int = [[-9.15205122, 0.94661932], [nan, nan], + [-0.06539482, 0.37527044], [ nan, nan]] + self.bse = [ 2.5762388 , nan, 0.11241668, nan] + self.nnz_params = 2 + self.aic = 42.091439368583671 + self.bic = 45.022911174183122 + self.cov_params = [[ 6.63700638, nan, -0.28636261, nan], + [nan, nan, nan, nan], [-0.28636261, nan, 0.01263751, nan], + [nan, nan, nan, nan]] + + def sweep(self): + """ + Results generated with + params = np.zeros((3, 4)) + alphas = np.array( + [[0.1, 0.1, 0.1, 0.1], + [0.4, 0.4, 0.5, 0.5], [0.5, 0.5, 1, 1]]) + model = sm.Logit(data.endog, data.exog) + for i in range(3): + alpha = alphas[i, :] + res2 = model.fit_regularized(method="l1", alpha=alpha, disp=0, acc=1e-10, + maxiter=1000, trim_mode='off') + params[i, :] = res2.params + print params + """ + self.params = [[-10.37593611, 2.27080968, 0.06670638, 2.05723691], + [ -5.32670811, 1.18216019, 0.01402395, 1.45178712], + [ -3.92630318, 0.90126958, -0. , 1.09498178]] + + def probit(self): + """ + Results generated with + data = sm.datasets.spector.load() + data.exog = sm.add_constant(data.exog, prepend=True) + alpha = np.array([0.1, 0.2, 0.3, 10]) + res2 = sm.Probit(data.endog, data.exog).fit_regularized( + method="l1", alpha=alpha, disp=0, trim_mode='auto', + auto_trim_tol=0.02, acc=1e-10, maxiter=1000) + """ + nan = np.nan + self.params = [-5.40476992, 1.25018458, 0.04744558, 0. ] + self.conf_int = [[-9.44077951, -1.36876033], + [ 0.03716721, 2.46320194], + [-0.09727571, 0.19216687], + [ np.nan, np.nan]] + self.bse = [ 2.05922641, 0.61889778, 0.07383875, np.nan] + self.nnz_params = 3 + self.aic = 38.399773877542927 + self.bic = 42.796981585942106 + self.cov_params = [[ 4.24041339, -0.83432592, -0.06827915, nan], + [-0.83432592, 0.38303447, -0.01700249, nan], + [-0.06827915, -0.01700249, 0.00545216, nan], + [ nan, nan, nan, nan]] + + def mnlogit(self): + """ + Results generated with + anes_data = sm.datasets.anes96.load() + anes_exog = anes_data.exog + anes_exog = sm.add_constant(anes_exog, prepend=False) + mlogit_mod = sm.MNLogit(anes_data.endog, anes_exog) + + alpha = 10 * np.ones((mlogit_mod.J - 1, mlogit_mod.K)) + alpha[-1,:] = 0 + mlogit_l1_res = mlogit_mod.fit_regularized( + method='l1', alpha=alpha, trim_mode='auto', auto_trim_tol=0.02, + acc=1e-10) + """ + self.params = [[ 0.00100163, -0.05864195, -0.06147822, -0.04769671, -0.05222987, + -0.09522432], + [ 0. , 0.03186139, 0.12048999, 0.83211915, 0.92330292, + 1.5680646 ], + [-0.0218185 , -0.01988066, -0.00808564, -0.00487463, -0.01400173, + -0.00562079], + [ 0. , 0.03306875, 0. , 0.02362861, 0.05486435, + 0.14656966], + [ 0. , 0.04448213, 0.03252651, 0.07661761, 0.07265266, + 0.0967758 ], + [ 0.90993803, -0.50081247, -2.08285102, -5.26132955, -4.86783179, + -9.31537963]] + self.conf_int = [[[ -0.0646223 , 0.06662556], + [ np.nan, np.nan], + [ -0.03405931, -0.00957768], + [ np.nan, np.nan], + [ np.nan, np.nan], + [ 0.26697895, 1.55289711]], + + [[ -0.1337913 , 0.01650741], + [ -0.14477255, 0.20849532], + [ -0.03500303, -0.00475829], + [ -0.11406121, 0.18019871], + [ 0.00479741, 0.08416684], + [ -1.84626136, 0.84463642]], + + [[ -0.17237962, 0.04942317], + [ -0.15146029, 0.39244026], + [ -0.02947379, 0.01330252], + [ np.nan, np.nan], + [ -0.02501483, 0.09006785], + [ -3.90379391, -0.26190812]], + + [[ -0.12938296, 0.03398954], + [ 0.62612955, 1.03810876], + [ -0.02046322, 0.01071395], + [ -0.13738534, 0.18464256], + [ 0.03017236, 0.12306286], + [ -6.91227465, -3.61038444]], + + [[ -0.12469773, 0.02023799], + [ 0.742564 , 1.10404183], + [ -0.02791975, -0.00008371], + [ -0.08491561, 0.19464431], + [ 0.0332926 , 0.11201273], + [ -6.29331126, -3.44235233]], + + [[ -0.17165567, -0.01879296], + [ 1.33994079, 1.79618841], + [ -0.02027503, 0.00903345], + [ -0.00267819, 0.29581751], + [ 0.05343135, 0.14012026], + [-11.10419107, -7.52656819]]] + + self.bse = [[ 0.03348221, 0.03834221, 0.05658338, 0.04167742, 0.03697408, + 0.03899631], + [ np.nan, 0.09012101, 0.13875269, 0.10509867, 0.09221543, + 0.11639184], + [ 0.00624543, 0.00771564, 0.01091253, 0.00795351, 0.00710116, + 0.00747679], + [ np.nan, 0.07506769, np.nan, 0.08215148, 0.07131762, + 0.07614826], + [ np.nan, 0.02024768, 0.02935837, 0.02369699, 0.02008204, + 0.02211492], + [ 0.32804638, 0.68646613, 0.92906957, 0.84233441, 0.72729881, + 0.91267567]] + + self.nnz_params = 32 + self.aic = 3019.4391360294126 + self.bic = 3174.6431733460686 + + +class Spector(object): + """ + Results are from Stata 11 + """ + def __init__(self): + self.nobs = 32 + + def logit(self): + self.params = [2.82611297201, .0951576702557, 2.37868772835, + -13.0213483201] + self.cov_params = [[1.59502033639, -.036920566629, .427615725153, + -4.57347950298], [-.036920566629, .0200375937069, + .0149126464275, -.346255757562], [.427615725153 , + .0149126464275, 1.13329715236, -2.35916128427], + [-4.57347950298, -.346255757562, -2.35916128427, + 24.3179625937]] + self.bse = [1.26294114526, .141554207662, 1.06456430165, 4.93132462871] + + self.resid_pearson = [-.1652382, -.2515266, -.4800059, -.1630655, + .8687437, -.1900454, -.165002, -.2331563, + -.3535812, .6647838, -.1583799, -.4843181, + -.689527, 2.043449, -.7516119, -.1764176, + -.2380445, -.2003426, -1.199277, .7164842, + -.255713, .3242821, -.5646816, -2.400189, + .4392082, 1.038473, .75747, -.6659256, + .4336657, .2404583, -1.060033, 2.829577] + + self.resid_dev = [-.2321102, -.3502712, -.6439626, -.2290982, + 1.060478, -.2663844, -.2317827, -.3253788, -.4853875, + .8555557, -.2225972, -.6491808, -.8819993, 1.813269, + -.9463985, -.247583, -.3320177, -.2805444, -1.335131, + .9103027, -.3559217, .4471892, -.744005, -1.955074, + .5939538, 1.209638, .952332, -.8567857, .5870719, .335292, + -1.227311, 2.096639] + + # from gretl + self.resid_generalized = [-0.026578, -0.059501, -0.187260, + -0.025902, 0.430107, -0.034858, -0.026504, -0.051559, + -0.111127, 0.306489, -0.024470, -0.189997, -0.322240, + 0.806789, -0.360990, -0.030184, -0.053626, -0.038588, + -0.589872, 0.339214, -0.061376, 0.095153, -0.241772, + -0.852091, 0.161709, 0.518867, 0.364579, -0.307219, + 0.158296, 0.054660, -0.529117, 0.888969] + + self.phat = np.array([ .02657799236476, + .05950126051903, + .18725991249084, + .02590163610876, + .56989300251007, + .03485824912786, + .02650404907763, + .05155897513032, + .11112663894892, + .69351142644882, + .02447037212551, + .18999740481377, + .32223951816559, + .1932111531496, + .36098992824554, + .03018374741077, + .05362640321255, + .03858831897378, + .58987241983414, + .66078591346741, + .06137581542134, + .90484726428986, + .24177247285843, + .85209089517593, + .8382905125618, + .48113295435905, + .63542068004608, + .30721867084503, + .84170418977737, + .94534027576447, + .52911710739136, + .1110308393836]) + self.yhat = np.array([-3.6007342338562, + -2.7604126930237, + -1.4679137468338, + -3.6272060871124, + .28141465783119, + -3.3209850788116, + -3.6035962104797, + -2.9120934009552, + -2.0792844295502, + .81658720970154, + -3.6855175495148, + -1.4500269889832, + -.74349880218506, + -1.429278254509, + -.57107019424438, + -3.4698030948639, + -2.8705959320068, + -3.2154531478882, + .36343798041344, + .66679841279984, + -2.7273993492126, + 2.2522828578949, + -1.1429864168167, + 1.7510952949524, + 1.6455633640289, + -.07550399750471, + .55554306507111, + -.81315463781357, + 1.6709630489349, + 2.8504176139832, + .11660042405128, + -2.0802545547485]) + self.llf = -12.8896334653335 + self.llnull = -20.5917296966173 + self.df_model = 3 + self.df_resid = 32 - 4 #TODO: is this right? not reported in stata + self.llr = 15.4041924625676 + self.prsquared = .374038332124624 + self.llr_pvalue = .00150187761112892 + self.aic = 33.779266930667 + self.bic = 39.642210541866 + self.z = [2.237723415, 0.6722348408, 2.234423721, -2.640537645] + self.conf_int = [[.3507938,5.301432],[-.1822835,.3725988],[.29218, + 4.465195],[-22.68657,-3.35613]] + self.pvalues = [.0252390974, .5014342039, .0254552063, .0082774596] + + # taken from margins command + self.margeff_nodummy_dydx = [.36258084688424,.01220841099085, + .30517768382304] + self.margeff_nodummy_dydx_se = [.1094412, .0177942, .0923796] + self.margeff_nodummy_dydxmean = [.53385885781692,.01797548988961, + .44933926079386] + self.margeff_nodummy_dydxmean_se = [.237038, .0262369, .1967626] + self.margeff_nodummy_dydxmedian = [.25009492465091,.00842091261329, + .2105003352955] + self.margeff_nodummy_dydxmedian_se = [.1546708, .0134314, .0928183] + self.margeff_nodummy_dydxzero = [6.252993785e-06,2.105437138e-07, + 5.263030788e-06] + self.margeff_nodummy_dydxzero_se = [.0000288, 9.24e-07, .000025] + self.margeff_nodummy_dyex = [1.1774000792198,.27896245178384, + .16960002159996] + self.margeff_nodummy_dyex_se = [.3616481, .4090679, .0635583] + self.margeff_nodummy_dyexmean = [1.6641381583512,.39433730945339, + .19658592659731] + self.margeff_nodummy_dyexmean_se = [.7388917, .5755722, .0860836] + #NOTE: PSI at median should be a NaN or 'omitted' + self.margeff_nodummy_dyexmedian = [.76654095836557,.18947053379898,0] + self.margeff_nodummy_dyexmedian_se = [ .4740659, .302207, 0] + #NOTE: all should be NaN + self.margeff_nodummy_dyexzero = [0,0,0] + self.margeff_nodummy_dyexzero_se = [0,0,0] + + self.margeff_nodummy_eydx = [1.8546366266779,.06244722072812, + 1.5610138123033] + self.margeff_nodummy_eydx_se = [.847903, .0930901, .7146715] + self.margeff_nodummy_eydxmean = [2.1116143062702,.0710998816585, + 1.7773072368626] + self.margeff_nodummy_eydxmean_se = [ 1.076109, .1081501, .9120842] + self.margeff_nodummy_eydxmedian = [2.5488082240624,.0858205793373, + 2.1452853812126] + self.margeff_nodummy_eydxmedian_se = [1.255377, .1283771, 1.106872] + self.margeff_nodummy_eydxzero = [2.8261067189993,.0951574597115, + 2.3786824653103] + self.margeff_nodummy_eydxzero_se = [1.262961, .1415544, 1.064574] + self.margeff_nodummy_eyex = [5.4747106798973,1.3173389907576, + .44600395466634] + self.margeff_nodummy_eyex_se = [2.44682, 1.943525, .1567618] + self.margeff_nodummy_eyexmean = [6.5822977203268,1.5597536538833, + .77757191612739] + self.margeff_nodummy_eyexmean_se = [3.354433, 2.372543, .3990368] + self.margeff_nodummy_eyexmedian = [7.8120973525952,1.9309630350892,0] + self.margeff_nodummy_eyexmedian_se = [3.847731951, 2.888485089, 0] + + self.margeff_nodummy_eyexzero = [0,0,0] + self.margeff_nodummy_eyexzero_se = [0,0,0] + + # for below GPA = 2.0, psi = 1 + self.margeff_nodummy_atexog1 = [.1456333017086,.00490359933927, + .12257689308426] + self.margeff_nodummy_atexog1_se = [.145633, .0111226, .1777101] + # for below GPA at mean, tuce = 21, psi = 0 + self.margeff_nodummy_atexog2 = [.25105129214546,.00845311433473, + .2113052923675] + self.margeff_nodummy_atexog2_se = [.1735778, .012017, .0971515] + + # must get this from older margeff or i.psi then margins + self.margeff_dummy_dydx = [.36258084688424,.01220841099085, + .35751515254729] + self.margeff_dummy_dydx_se = [.1094412, .0177942, .1420034] + self.margeff_dummy_dydxmean = [.53385885781692,.01797548988961, + .4564984096959] + self.margeff_dummy_dydxmean_se = [.237038, .0262369, .1810537] + #self.margeff_dummy_dydxmedian + # from margeff + self.margeff_dummy_count_dydx_median = [0.250110487483923, + 0.008426867847905, 0.441897738279663] + self.margeff_dummy_count_dydx_median_se = [.1546736661, .0134551951, + .1792363708] + + # estimate with i.psi for the below then use margins + self.margeff_dummy_eydx = [1.8546366266779,.06244722072812, + 1.5549034398832] + self.margeff_dummy_eydx_se = [.847903, .0930901, .7283702] + # ie + # margins, eydx(*) at((mean) _all) + self.margeff_dummy_eydxmean = [2.1116143062702,.0710998816585, + 1.6631775707188] + self.margeff_dummy_eydxmean_se = [1.076109, .1081501, .801205] + + # Factor variables not allowed in below + # test raises + #self.margeff_dummy_dydxzero + #self.margeff_dummy_eydxmedian + #self.margeff_dummy_eydxzero + #self.margeff_dummy_dyex + #self.margeff_dummy_dyexmean + #self.margeff_dummy_dyexmedian + #self.margeff_dummy_dyexzero + #self.margeff_dummy_eyex + #self.margeff_count_dummy_dydx_median + #self.margeff_count_dummy_dydx_median_se + + #NOTE: need old version of margeff for nodisc but at option is broken + # stata command is margeff, count nodisc + # this can be replicated with the new results by margeff + # and then using margins for the last value + self.margeff_count_dydx = [.3625767598018, .0122068569914, .3051777] + self.margeff_count_dydx_se = [.1094379569, .0177869773, .0923796] + + # middle value taken from margeff rest from margins + self.margeff_count_dydxmean = [.5338588, 0.01797186545386, + .4493393 ] + self.margeff_count_dydxmean_se = [.237038, .0262211, .1967626] + + # with new version of margeff this is just a call to + # margeff + # mat list e(margeff_b), nonames format(%17.16g) + self.margeff_count_dummy_dydxoverall = [.362576759801767, + .012206856991439, .357515163621704] + # AFAICT, an easy way to get se is + # mata + # V = st_matrix("e(margeff_V)") + # se = diagonal(cholesky(diag(V))) + # last SE taken from margins with i.psi, don't know how they + # don't know why margeff is different, but trust official results + self.margeff_count_dummy_dydxoverall_se = [.1094379569, .0177869773, + .1420034] + #.1574340751 ] + + # from new margeff + self.margeff_count_dummy_dydxmean = [0.533849340033768, + 0.017971865453858, 0.456498405282412] + self.margeff_count_dummy_dydxmean_se = [.2370202503, .0262210796, + .1810536852 ] + + # for below GPA = 2.0, psi = 1 + self.margeff_dummy_atexog1 = [.1456333017086,.00490359933927, + .0494715429937] + self.margeff_dummy_atexog1_se = [.145633, .0111226, .0731368] + # for below GPA at mean, tuce = 21, psi = 0 + self.margeff_dummy_atexog2 = [.25105129214546,.00845311433473, + .44265645632553] + self.margeff_dummy_atexog2_se = [.1735778, .012017, .1811925] + #The test for the prediction table was taken from Gretl + #Gretl Output matched the Stata output here for params and SE + self.pred_table = np.array([[18, 3], [3, 8]]) + + def probit(self): + self.params = [1.62581025407, .051728948442, 1.42633236818, + -7.45232041607] + self.cov_params = [[.481472955383, -.01891350017, .105439226234, + -1.1696681354], [-.01891350017, .00703757594, .002471864882, + -.101172838897], [.105439226234, .002471864882, .354070126802, + -.594791776765], [-1.1696681354, -.101172838897, -.594791776765, + 6.46416639958]] + self.bse = [.693882522754, .083890261293, .595037920474, 2.54247249731] + self.llf = -12.8188033249334 + self.llnull = -20.5917296966173 + self.df_model = 3 + self.df_resid = 32 - 4 + self.llr = 15.5458527433678 + self.prsquared = .377478069409622 + self.llr_pvalue = .00140489496775855 + self.aic = 33.637606649867 + self.bic = 39.500550261066 + self.z = [ 2.343062695, .6166263836, 2.397044489, -2.931131182] + self.conf_int = [[.2658255,2.985795],[-.1126929,.2161508],[.2600795, + 2.592585],[-12.43547,-2.469166]] + self.pvalues = [.0191261688, .537481188, .0165279168, .0033773013] + self.phat = [.0181707, .0530805, .1899263, .0185707, .5545748, + .0272331, .0185033, .0445714, .1088081, .6631207, + .0161024, .1935566, .3233282, .1951826, .3563406, + .0219654, .0456943, .0308513, .5934023, .6571863, + .0619288, .9045388, .2731908, .8474501, .8341947, + .488726, .6424073, .3286732, .8400168, .9522446, + .5399595, .123544] + self.yhat = np.array([-2.0930860042572, + -1.615691781044, + -.87816804647446, + -2.0842070579529, + .13722851872444, + -1.9231110811234, + -2.0856919288635, + -1.6999372243881, + -1.2328916788101, + .42099541425705, + -2.1418602466583, + -.86486464738846, + -.45841211080551, + -.85895526409149, + -.36825761198997, + -2.0147502422333, + -1.6881184577942, + -1.8684275150299, + .23630557954311, + .40479621291161, + -1.538782119751, + 1.3078554868698, + -.60319095849991, + 1.025558590889, + .97087496519089, + -.02826354466379, + .36490100622177, + -.44357979297638, + .99452745914459, + 1.6670187711716, + .10033150017262, + -1.1574513912201]) + self.resid_dev = [-.191509, -.3302762, -.6490455, -.1936247, 1.085867, + -.2349926, -.1932698, -.3019776, -.4799906, .9064196, + -.1801855, -.6559291, -.8838201, 1.807661, -.9387071, + -.2107617, -.3058469, -.2503485, -1.341589, .9162835, + -.3575735, .447951, -.7988633, -1.939208, .6021435, + 1.196623, .9407793, -.8927477, .59048, .3128364, + -1.246147, 2.045071] + # Stata doesn't have it, but I think it's just oversight + self.resid_pearson = None + # generalized residuals from gretl + self.resid_generalized = [-0.045452, -0.114220, -0.334908, + -0.046321, 0.712624, -0.064538, + -0.046175, -0.098447, -0.209349, + 0.550593, -0.040906, -0.340339, + -0.530763, 1.413373, -0.579170, + -0.053593, -0.100556, -0.071855, + -0.954156, 0.559294, -0.130167, + 0.187523, -0.457597, -1.545643, + 0.298511, 0.815964, 0.581013, + -0.538579, 0.289631, 0.104405, + -0.862836, 1.652638] + self.pred_table = np.array([[18, 3], [3, 8]]) + + +class RandHIE(object): + """ + Results obtained from Stata 11 + """ + def __init__(self): + self.nobs = 20190 + + def poisson(self): + self.params = [-.052535114675, -.247086797633, .035290201794, + -.03457750643, .271713973711, .033941474461, -.012635035534, + .054056326828, .206115121809, .700352877227] + self.cov_params = None + self.bse = [.00288398915279, .01061725196728, .00182833684966, + .00161284852954, .01223913844387, .00056476496963, + .00925061122826, .01530987068312, .02627928267502, + .01116266712362] + predict = np.loadtxt(os.path.join(cur_dir, 'yhat_poisson.csv'), + delimiter=",") + self.phat = predict[:,0] + self.yhat = predict[:,1] + self.llf = -62419.588535018 + self.llnull = -66647.181687959 + self.df_model = 9 + self.df_resid = self.nobs - self.df_model - 1 + self.llr = 8455.186305881856 + self.prsquared = .0634324369893758 + self.llr_pvalue = 0 + self.aic = 124859.17707 + self.bic = 124938.306497 + self.z = [-18.21612769, -23.27219872, 19.30180524, -21.43878101, + 22.20041672, 60.09840604, -1.36585953, 3.53081538, 7.84325525, + 62.74063980] + self.conf_int = [[ -.0581876, -.0468826],[-0.2678962, -0.2262774], + [0.0317067, 0.0388737],[-0.0377386, -0.0314164], + [0.2477257, 0.2957022], [0.0328346, 0.0350484],[-0.0307659, + 0.0054958], [0.0240495, 0.0840631],[0.1546087, 0.2576216], + [0.6784745, 0.7222313]] + self.pvalues = [3.84415e-74, 8.4800e-120, 5.18652e-83, 5.8116e-102, + 3.4028e-109, 0, .1719830562, .0004142808, 4.39014e-15, 0] + + # from stata + # use margins and put i. in front of dummies + self.margeff_dummy_overall = [-0.15027280560599, -0.66568074771099, + 0.10094500919706, -0.09890639687842, + 0.77721770295360, 0.09708707452600, + -0.03608195237609, 0.15804581481115, + 0.65104087597053] + self.margeff_dummy_overall_se = [.008273103, .0269856266, + .0052466639, .0046317555, .0351582169, .0016652181, + .0263736472, .0457480115, .0913901155] + + # just use margins + self.margeff_nodummy_overall = [-0.15027280560599, -0.70677348928158, + 0.10094500919705, -0.09890639687842, + 0.77721770295359, 0.09708707452600, + -0.03614158359367, 0.15462412033340, + 0.58957704430148] + self.margeff_nodummy_overall_se = [.008273103, .0305119343, + .0052466639, .0046317555, + .0351582168, .0016652181, + .0264611158, .0437974779, + .0752099666] + # taken from gretl + self.resid = np.loadtxt(os.path.join(cur_dir,'poisson_resid.csv'), + delimiter=",") + + + def negativebinomial_nb2_bfgs(self): + # R 2.15.1 MASS 7.3-22 glm.nb() + self.params = [-0.0579469537244314, + -0.267787718814838, 0.0412060770911646, -0.0381376804392121, + 0.268915772213171, 0.0381637446219235, -0.0441338846217674, + 0.0172521803400544, 0.177960787443151,0.663556087183864, + # lnalpha from stata + 1.292953339909746 + ] + # alpha and stderr from stata + self.lnalpha_std_err = .0143932 + self.lnalpha = 0.256929012449 + self.bse = [0.00607085853920512, 0.0226125368090765, + 0.00405542008282773, 0.00344455937127785, 0.0298855063286547, + 0.00142421904710063, 0.0199374393307107, 0.0358416931939136, + 0.0741013728607101, 0.0250354082637892, + # from stata + .0186098 + ] + self.z = [-9.54510030998327, -11.8424447940467, + 10.1607419822296, -11.071860382846, 8.99820030672628, + 26.7962605187844, -2.21361850384595, 0.481343898758222, + 2.40158556546135, 26.5047040652267] + self.pvalues = [1.35975947860026e-21, + 2.35486776488278e-32, 2.96808970292151e-24, + 1.71796558863781e-28, 2.2944789508802e-19, + 3.57231639404726e-158, 0.0268550333379416, 0.630272102021494, + 0.0163241908407114, 8.55476622951356e-155] + self.fittedvalues = [0.892904166867786, 0.892904166867786, 0.892904166867786, + 0.892904166867786, 0.892904166867786, 0.937038051489553, + 0.937038051489553, 0.937038051489553, 0.937038051489553, + 0.937038051489553] + #self.aic = 86789.3241530713 # This is what R reports + self.aic = 86789.32415307125484 # from Stata + self.df_resid = 20180 + self.df_model = 9 + # R conf_int: 1.96 * bse, not profile likelihood via R's confint() + self.conf_int = [ + # from Stata + [-.0698826, -.0460113], + [-.3122654, -.2233101], + [ .0330781, .049334], + [-.0448006, -.0314748], + [ .2102246, .3276069], + [ .0352959, .0410316], + [-.0834356, -.0048321], + [-.0535908, .0880951], + [ .0324115, .3235101], + [ .6150055, .7121067], + # from Stata + [ 1.256989, 1.329947] + ] + self.bic = 86876.36652289562335 # stata + self.llnull = -44199.27443563430279 # stata + self.llr = 1631.224718197351 # stata + self.llf = -43383.66207653563 # stata + self.df_model = 9.0 + self.llr_pvalue = 0.0 + + def negativebinomial_nb1_bfgs(self): + # Unpublished implementation intended for R's COUNT package. Sent by + # J.Hilbe (of Cambridge UP NBin book) and Andrew Robinson to Vincent + # Arel-Bundock on 2012-12-06. + #self.params = [-0.065309744899923, -0.296016207412261, + # 0.0411724098925173, -0.0320460533573259, 0.19083354227553, + # 0.0318566232844115, -0.0331972813313092, -0.0484691550721231, + # 0.111971860837541, 0.757560143822609, + # 3.73086958562569] + # from Stata + self.params = [-.065317260803762961, -.296023807893893376, + .041187021258044826, -.032028789543547605, + .19065933246421754, .031871625115758778, + -.033250849053302826, -.04850769174426571, + .111813637465757343, .757277086555503409, + 3.731151380800305] + # lnalpha and lnalpha_std_err are from stata + self.lnalpha = 1.316716867203 + self.lnalpha_std_err = .0168876692 + self.bse = [0.00536019929563678, + 0.0196998350459769, 0.00335779098766272, 0.00301145915122889, + 0.0237984097096245, 0.00107360844112751, 0.0167174614755359, + 0.0298037989274781, 0.0546838603596457,0.0214703279904911, + 0.0630011409376052] + self.z = [-12.1842008660173, -15.0263292419148, + 12.2617548393554, -10.6413707601675, 8.0187518663633, + 29.6724784046551, -1.98578482623631, -1.62627439508848, + 2.04762173155154, 35.2840508145997, + + # From R, this is alpha/bse(alpha) + 59.2190796881069 + + # taken from Stata even though they don't report it + # lnalpha/bse(lnalpha) + #77.968995 + ] + + self.conf_int = [ + [-0.075815736,-0.0548037543], + [-0.334627884,-0.2574045307], + [ 0.034591140, 0.0477536802], + [-0.037948513,-0.0261435934], + [ 0.144188659, 0.2374784253], + [ 0.029752351, 0.0339608958], + [-0.065963506,-0.0004310568], + [-0.106884601, 0.0099462908], + [ 0.004791495, 0.2191522271], + [ 3.607387349, 3.8543518219], + [ 0.715478301, 0.7996419867]] + # from Stata + self.llf = -43278.75612911823 + self.llnull = -44199.2744356343 + self.llr = 1841.036613032149 + self.aic = 86579.51225823645655 + self.bic = 86666.55462806082505 + self.llr_pvalue = 0.0 + self.df_model = 9.0 + self.df_resid = 20180.0 + # Smoke tests TODO: check against other stats package + self.pvalues = [3.65557865e-034, 5.24431864e-051, + 1.42921171e-034, 2.09797259e-026, 1.15949461e-015, + 1.56785415e-193, 4.71746349e-002, 1.04731854e-001, + 4.07534831e-002, 1.95504975e-272, 0.00000000e+000] + self.conf_int = [[-.0758236, -.054811], + [-.3346363, -.2574113], + [ .0346053, .0477687], + [-.0379314, -.0261261], + [ .1440119, .2373067], + [ .0297667, .0339766], + [-.0660178, -.0004839], + [-.1069241, .0099087], + [ .0046266, .2190007], + [ .7151889, .7993652], + # from stata for alpha no lnalpha + [ 3.609675, 3.856716]] + #[ 1.28360034e+00, 1.34979803e+00]] + self.fittedvalues = [ 0.8487497 , 0.8487497 , 0.8487497 , 0.8487497, + 0.8487497 , 0.88201746, 0.88201746, 0.88201746, 0.88201746, + 0.88201746] + + def negativebinomial_geometric_bfgs(self): + # Smoke tests TODO: Cross check with other stats package + self.params = [-0.05768894, -0.26646696, 0.04088528, -0.03795503, + 0.26885821, 0.03802523, -0.04308456, 0.01931675, 0.18051684, + 0.66469896] + self.bse = [ 0.00553867, 0.02061988, 0.00375937, 0.0030924 , + 0.02701658, 0.00132201, 0.01821646, 0.03271784, 0.06666231, + 0.02250053] + self.pvalues = [ 2.10310916e-025, 3.34666368e-038, 1.50697768e-027, + 1.25468406e-034, 2.48155744e-023, 6.18745348e-182, + 1.80230194e-002, 5.54919603e-001, 6.77044178e-003, + 8.44913440e-192] + self.z = [-10.41567024, -12.92281571, 10.8755779 , -12.27364916, + 9.95160202, 28.76323587, -2.36514487, 0.59040434, + 2.70792943, 29.54148082] + self.aic = 87101.159433012392 # old value 87101.160011780419 + self.bic = 87180.288860125467 # old value 87180.289438893495 + self.df_model = 9.0 + self.df_resid = 20180.0 + self.llf = -43540.58000589021 + self.llnull = -44586.650971362695 # old value -44199.27443567125 + self.llr = 2092.1425097129977 # old value 1317.3888595620811 + self.llr_pvalue = 0 # old value 5.4288002863296022e-278 + self.fittedvalues = [ 0.89348994, 0.89348994, 0.89348994, + 0.89348994, 0.89348994, 0.9365745 , 0.9365745 , 0.9365745 , + 0.9365745 , 0.9365745 ] + self.conf_int = [[-0.06854453, -0.04683335], + [-0.30688118, -0.22605273], + [ 0.03351706, 0.04825351], + [-0.04401602, -0.03189404], + [ 0.21590669, 0.32180972], + [ 0.03543415, 0.04061632], + [-0.07878816, -0.00738096], + [-0.04480903, 0.08344253], + [ 0.04986111, 0.31117258], + [ 0.62059873, 0.70879919]] diff --git a/statsmodels/discrete/tests/results/results_glm_logit_constrained.py b/statsmodels/discrete/tests/results/results_glm_logit_constrained.py new file mode 100644 index 0000000..e052a39 --- /dev/null +++ b/statsmodels/discrete/tests/results/results_glm_logit_constrained.py @@ -0,0 +1,704 @@ +import numpy as np + +est = dict( + k_eq_model = 0, + phi = 1, + vf = 1, + df = 28, + df_m = 3, + power = 0, + canonical = 1, + rank = 4, + aic = 1.055602138883215, + rc = 0, + p = .0388431588742135, + chi2 = 8.376256383189103, + ll = -12.88963422213144, + k_autoCns = 0, + converged = 1, + k_dv = 1, + k_eq = 1, + k = 4, + ic = 3, + N = 32, + nbml = 0, + bic = -71.26133683412948, + dispers_ps = .9734684585933382, + deviance_ps = 27.25711684061347, + dispers_p = .9734684585933382, + deviance_p = 27.25711684061347, + dispers_s = .920688158723674, + deviance_s = 25.77926844426287, + dispers = .920688158723674, + deviance = 25.77926844426287, + cmdline = "glm grade gpa tuce psi, family(binomial)", + cmd = "glm", + predict = "glim_p", + marginsnotok = "stdp Anscombe Cooksd Deviance Hat Likelihood Pearson Response Score Working ADJusted STAndardized STUdentized MODified", + marginsok = "default", + hac_lag = "30", + vcetype = "OIM", + vce = "oim", + linkt = "Logit", + linkf = "ln(u/(1-u))", + varfunct = "Bernoulli", + varfuncf = "u*(1-u)", + opt1 = "ML", + oim = "oim", + a = "1", + m = "1", + varfunc = "glim_v2", + link = "glim_l02", + chi2type = "Wald", + opt = "moptimize", + title = "Generalized linear models", + user = "glim_lf", + crittype = "log likelihood", + ml_method = "e2", + singularHmethod = "m-marquardt", + technique = "nr", + which = "max", + depvar = "grade", + properties = "b V", + ) + +params_table = np.array([ + 2.8261124216999, 1.2629410221647, 2.2377231969675, .02523911156938, + .35079350365878, 5.301431339741, np.nan, 1.9599639845401, + 0, .09515765001172, .141554201358, .67223472774972, + .50143427587633, -.18228348651028, .37259878653373, np.nan, + 1.9599639845401, 0, 2.3786875040587, 1.0645642078703, + 2.2344237073472, .02545520725424, .29217999740245, 4.4651950107149, + np.nan, 1.9599639845401, 0, -13.021345912635, + 4.931323890811, -2.6405375515688, .00827746189686, -22.686563134726, + -3.3561286905433, np.nan, 1.9599639845401, 0 + ]).reshape(4,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = 'gpa tuce psi _cons'.split() + +cov = np.array([ + 1.5950200254665, -.03692058012179, .42761557297075, -4.5734780841711, + -.03692058012179, .0200375919221, .01491263753083, -.34625566662867, + .42761557297075, .01491263753083, 1.1332969526786, -2.3591604492672, + -4.5734780841711, -.34625566662867, -2.3591604492672, 24.317955316083 + ]).reshape(4,4) + +cov_colnames = 'gpa tuce psi _cons'.split() + +cov_rownames = 'gpa tuce psi _cons'.split() + +infocrit = np.array([ + 32, np.nan, -12.889634222131, 4, + 33.779268444263, 39.642212055462]) + +infocrit_colnames = 'N ll0 ll df AIC BIC'.split() + +infocrit_rownames = '.'.split() + +class Bunch(dict): + def __init__(self, **kw): + dict.__init__(self, kw) + self.__dict__ = self + + for i,att in enumerate(['params', 'bse', 'tvalues', 'pvalues']): + self[att] = self.params_table[:,i] + + +results_noconstraint = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + infocrit=infocrit, + infocrit_colnames=infocrit_colnames, + infocrit_rownames=infocrit_rownames, + **est + ) + +est = dict( + k_eq_model = 0, + phi = 1, + vf = 1, + df = 28, + df_m = 3, + power = 0, + canonical = 1, + rank = 4, + aic = 1.055602138883215, + rc = 0, + p = .0248623136764981, + chi2 = 9.360530997638559, + ll = -12.88963422213144, + k_autoCns = 0, + converged = 1, + k_dv = 1, + k_eq = 1, + k = 4, + ic = 3, + N = 32, + nbml = 0, + bic = -71.26133683412948, + dispers_ps = .9734684585933382, + deviance_ps = 27.25711684061347, + dispers_p = .9734684585933382, + deviance_p = 27.25711684061347, + dispers_s = .920688158723674, + deviance_s = 25.77926844426287, + dispers = .920688158723674, + deviance = 25.77926844426287, + cmdline = "glm grade gpa tuce psi, family(binomial) vce(robust)", + cmd = "glm", + predict = "glim_p", + marginsnotok = "stdp Anscombe Cooksd Deviance Hat Likelihood Pearson Response Score Working ADJusted STAndardized STUdentized MODified", + marginsok = "default", + hac_lag = "30", + vcetype = "Robust", + vce = "robust", + linkt = "Logit", + linkf = "ln(u/(1-u))", + varfunct = "Bernoulli", + varfuncf = "u*(1-u)", + opt1 = "ML", + oim = "oim", + a = "1", + m = "1", + varfunc = "glim_v2", + link = "glim_l02", + chi2type = "Wald", + opt = "moptimize", + title = "Generalized linear models", + user = "glim_lf", + crittype = "log pseudolikelihood", + ml_method = "e2", + singularHmethod = "m-marquardt", + technique = "nr", + which = "max", + depvar = "grade", + properties = "b V", + ) + +params_table = np.array([ + 2.8261124216999, 1.287827879216, 2.1944799202672, .02820092594159, + .30201616014984, 5.3502086832499, np.nan, 1.9599639845401, + 0, .09515765001172, .1198091371814, .79424367999287, + .42705358424294, -.13966394388263, .32997924390608, np.nan, + 1.9599639845401, 0, 2.3786875040587, .97985082470462, + 2.4276016757712, .01519902587997, .45821517741577, 4.2991598307016, + np.nan, 1.9599639845401, 0, -13.021345912635, + 5.2807513766642, -2.4658130981467, .01367026437574, -23.371428422207, + -2.6712634030626, np.nan, 1.9599639845401, 0 + ]).reshape(4,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = 'gpa tuce psi _cons'.split() + +cov = np.array([ + 1.6585006464861, .00630184631279, .20368998146717, -5.7738061195745, + .00630184631279, .01435422935215, .01997066738212, -.34768562593344, + .20368998146717, .01997066738212, .96010763867432, -1.5315997267117, + -5.7738061195745, -.34768562593344, -1.5315997267117, 27.886335102141 + ]).reshape(4,4) + +cov_colnames = 'gpa tuce psi _cons'.split() + +cov_rownames = 'gpa tuce psi _cons'.split() + +infocrit = np.array([ + 32, np.nan, -12.889634222131, 4, + 33.779268444263, 39.642212055462]) + +infocrit_colnames = 'N ll0 ll df AIC BIC'.split() + +infocrit_rownames = '.'.split() + + +results_noconstraint_robust = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + infocrit=infocrit, + infocrit_colnames=infocrit_colnames, + infocrit_rownames=infocrit_rownames, + **est + ) + +est = dict( + k_eq_model = 0, + phi = 1, + vf = 1, + df = 29, + df_m = 2, + power = 0, + canonical = 1, + rank = 3, + aic = .993115540206396, + rc = 0, + p = .0600760311411508, + chi2 = 5.624288666552698, + ll = -12.88984864330234, + k_autoCns = 0, + converged = 1, + k_dv = 1, + k_eq = 1, + k = 4, + ic = 3, + N = 32, + nbml = 0, + bic = -74.7266438945874, + dispers_ps = .9340711710496038, + deviance_ps = 27.08806396043851, + dispers_p = .9340711710496038, + deviance_p = 27.08806396043851, + dispers_s = .8889550788484368, + deviance_s = 25.77969728660467, + dispers = .8889550788484368, + deviance = 25.77969728660467, + cmdline = "glm grade gpa tuce psi, family(binomial) constraints(1)", + cmd = "glm", + predict = "glim_p", + marginsnotok = "stdp Anscombe Cooksd Deviance Hat Likelihood Pearson Response Score Working ADJusted STAndardized STUdentized MODified", + marginsok = "default", + hac_lag = "30", + vcetype = "OIM", + vce = "oim", + linkt = "Logit", + linkf = "ln(u/(1-u))", + varfunct = "Bernoulli", + varfuncf = "u*(1-u)", + opt1 = "ML", + oim = "oim", + a = "1", + m = "1", + varfunc = "glim_v2", + link = "glim_l02", + chi2type = "Wald", + opt = "moptimize", + title = "Generalized linear models", + user = "glim_lf", + crittype = "log likelihood", + ml_method = "e2", + singularHmethod = "m-marquardt", + technique = "nr", + which = "max", + depvar = "grade", + properties = "b V", + ) + +params_table = np.array([ + 2.8, np.nan, np.nan, np.nan, + np.nan, np.nan, np.nan, 1.9599639845401, + 0, .09576464077943, .13824841412912, .69269974185736, + .48849800113543, -.17519727183342, .36672655339228, np.nan, + 1.9599639845401, 0, 2.3717067235827, 1.0071435928909, + 2.3548843882081, .01852846934254, .39774155425619, 4.3456718929091, + np.nan, 1.9599639845401, 0, -12.946549758905, + 3.3404275889275, -3.8757163309928, .00010631147941, -19.493667526167, + -6.3994319916434, np.nan, 1.9599639845401, 0 + ]).reshape(4,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = 'gpa tuce psi _cons'.split() + +cov = np.array([ + 0, 0, 0, 0, + 0, .01911262400922, .02461998233256, -.45036648979107, + 0, .02461998233256, 1.0143382167012, -1.126241119498, + 0, -.45036648979107, -1.126241119498, 11.158456476868 + ]).reshape(4,4) + +cov_colnames = 'gpa tuce psi _cons'.split() + +cov_rownames = 'gpa tuce psi _cons'.split() + +infocrit = np.array([ + 32, np.nan, -12.889848643302, 3, + 31.779697286605, 36.176904995004]) + +infocrit_colnames = 'N ll0 ll df AIC BIC'.split() + +infocrit_rownames = '.'.split() + + +results_constraint1 = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + infocrit=infocrit, + infocrit_colnames=infocrit_colnames, + infocrit_rownames=infocrit_rownames, + **est + ) + +est = dict( + k_eq_model = 0, + phi = 1, + vf = 1, + df = 29, + df_m = 2, + power = 0, + canonical = 1, + rank = 3, + aic = .9965088127779717, + rc = 0, + p = .0151376593316312, + chi2 = 8.381139289068923, + ll = -12.94414100444755, + k_autoCns = 0, + converged = 1, + k_dv = 1, + k_eq = 1, + k = 4, + ic = 3, + N = 32, + nbml = 0, + bic = -74.61805917229698, + dispers_ps = .9101961406899989, + deviance_ps = 26.39568808000997, + dispers_p = .9101961406899989, + deviance_p = 26.39568808000997, + dispers_s = .892699379617072, + deviance_s = 25.88828200889509, + dispers = .892699379617072, + deviance = 25.88828200889509, + cmdline = "glm grade gpa tuce psi, family(binomial) constraints(2)", + cmd = "glm", + predict = "glim_p", + marginsnotok = "stdp Anscombe Cooksd Deviance Hat Likelihood Pearson Response Score Working ADJusted STAndardized STUdentized MODified", + marginsok = "default", + hac_lag = "30", + vcetype = "OIM", + vce = "oim", + linkt = "Logit", + linkf = "ln(u/(1-u))", + varfunct = "Bernoulli", + varfuncf = "u*(1-u)", + opt1 = "ML", + oim = "oim", + a = "1", + m = "1", + varfunc = "glim_v2", + link = "glim_l02", + chi2type = "Wald", + opt = "moptimize", + title = "Generalized linear models", + user = "glim_lf", + crittype = "log likelihood", + ml_method = "e2", + singularHmethod = "m-marquardt", + technique = "nr", + which = "max", + depvar = "grade", + properties = "b V", + ) + +params_table = np.array([ + 2.5537914524884, .92662050289421, 2.7560273537138, .00585081038138, + .73764863947939, 4.3699342654975, np.nan, 1.9599639845401, + 0, .10791139824293, .13554656123081, .79612051580696, + .42596199070477, -.15775497999771, .37357777648357, np.nan, + 1.9599639845401, 0, 2.5537914524884, .92662050289421, + 2.7560273537138, .00585081038138, .73764863947939, 4.3699342654975, + np.nan, 1.9599639845401, 0, -12.527922070831, + 4.6393777844052, -2.7003453163357, .00692675392223, -21.62093543894, + -3.4349087027211, np.nan, 1.9599639845401, 0 + ]).reshape(4,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = 'gpa tuce psi _cons'.split() + +cov = np.array([ + .85862555638391, -.00408642741742, .85862555638391, -3.1725052764862, + -.00408642741742, .0183728702615, -.00408642741742, -.40376368789892, + .85862555638391, -.00408642741742, .85862555638391, -3.1725052764862, + -3.1725052764862, -.40376368789892, -3.1725052764862, 21.523826226433 + ]).reshape(4,4) + +cov_colnames = 'gpa tuce psi _cons'.split() + +cov_rownames = 'gpa tuce psi _cons'.split() + +infocrit = np.array([ + 32, np.nan, -12.944141004448, 3, + 31.888282008895, 36.285489717294]) + +infocrit_colnames = 'N ll0 ll df AIC BIC'.split() + +infocrit_rownames = '.'.split() + +predict_mu = np.array([ + .02720933393726, .05877785527304, .17341537851768, .02240274574181, + .48834788561471, .03262255746648, .02545734725406, .05057489993471, + .10986224061161, .64848146294279, .02525325609066, .17259131542841, + .28314297612096, .18171413480391, .33018645131295, .02988039105483, + .05693576903037, .03731338966779, .61672273095571, .68861137241716, + .08792248035539, .90822178043053, .25295501355621, .85758484919326, + .83972248507748, .54158048311843, .62661357692624, .36224489285202, + .83387563062407, .93837010344092, .55200183830167, .13940358008872 + ]) + +predict_mu_colnames = 'predict_mu'.split() + +predict_mu_rownames = 'r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 r23 r24 r25 r26 r27 r28 r29 r30 r31 r32'.split() + +predict_linpred_std = np.array([ + 1.2186852972383, .98250143329647, .71300625338041, 1.7281112031272, + .58278126610648, 1.2588643933597, 1.323097466817, 1.0187451680624, + .92583226681839, .97445803529749, 1.2426520057509, .66674211884633, + .53877733839827, .77006015103931, .70670367147137, 1.2036701125873, + 1.1407798755705, 1.1376397495763, .57331962577752, .65764380198652, + .85122884445037, 1.1282943138296, 1.2981327331615, .91561885084703, + .8524827403359, .75030433039358, 1.0902299962647, .53350768600347, + .96511132361274, 1.2127047415358, .61923877005984, .80300912367498 + ]) + +predict_linpred_std_colnames = 'predict_linpred_std'.split() + +predict_linpred_std_rownames = 'r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 r23 r24 r25 r26 r27 r28 r29 r30 r31 r32'.split() + +predict_hat = np.array([ + .03931157544567, .05340381182541, .07287215399916, .06540404284993, + .0848623883214, .0500117280211, .04343078449564, .04983412818394, + .08382437063813, .21645722203914, .03801090644315, .06348261316195, + .05891921860299, .08817451110282, .11045563375857, .04199779738721, + .06987634275981, .04648995770552, .0776956378885, .09273814423054, + .05810645039404, .10611489289649, .31844046474321, .10239122636412, + .09780916971071, .13976583081559, .27809589396914, .06575633167064, + .12902962938834, .08505028097419, .09482722348113, .07735963673184 + ]) + +predict_hat_colnames = 'predict_hat'.split() + +predict_hat_rownames = 'r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 r23 r24 r25 r26 r27 r28 r29 r30 r31 r32'.split() + + +results_constraint2 = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + infocrit=infocrit, + infocrit_colnames=infocrit_colnames, + infocrit_rownames=infocrit_rownames, + predict_mu=predict_mu, + predict_mu_colnames=predict_mu_colnames, + predict_mu_rownames=predict_mu_rownames, + predict_linpred_std=predict_linpred_std, + predict_linpred_std_colnames=predict_linpred_std_colnames, + predict_linpred_std_rownames=predict_linpred_std_rownames, + predict_hat=predict_hat, + predict_hat_colnames=predict_hat_colnames, + predict_hat_rownames=predict_hat_rownames, + **est + ) + +est = dict( + k_eq_model = 0, + phi = 1, + vf = 1, + df = 29, + df_m = 2, + power = 0, + canonical = 1, + rank = 3, + aic = .9965088127779717, + rc = 0, + p = .0085760854232441, + chi2 = 9.517555427941099, + ll = -12.94414100444755, + k_autoCns = 0, + converged = 1, + k_dv = 1, + k_eq = 1, + k = 4, + ic = 3, + N = 32, + nbml = 0, + bic = -74.61805917229698, + dispers_ps = .9101961406899989, + deviance_ps = 26.39568808000997, + dispers_p = .9101961406899989, + deviance_p = 26.39568808000997, + dispers_s = .892699379617072, + deviance_s = 25.88828200889509, + dispers = .892699379617072, + deviance = 25.88828200889509, + cmdline = "glm grade gpa tuce psi, family(binomial) constraints(2) vce(robust)", + cmd = "glm", + predict = "glim_p", + marginsnotok = "stdp Anscombe Cooksd Deviance Hat Likelihood Pearson Response Score Working ADJusted STAndardized STUdentized MODified", + marginsok = "default", + hac_lag = "30", + vcetype = "Robust", + vce = "robust", + linkt = "Logit", + linkf = "ln(u/(1-u))", + varfunct = "Bernoulli", + varfuncf = "u*(1-u)", + opt1 = "ML", + oim = "oim", + a = "1", + m = "1", + varfunc = "glim_v2", + link = "glim_l02", + chi2type = "Wald", + opt = "moptimize", + title = "Generalized linear models", + user = "glim_lf", + crittype = "log pseudolikelihood", + ml_method = "e2", + singularHmethod = "m-marquardt", + technique = "nr", + which = "max", + depvar = "grade", + properties = "b V", + ) + +params_table = np.array([ + 2.5537914524884, .83609404798719, 3.0544308485827, .00225487991353, + .91507723074524, 4.1925056742316, np.nan, 1.9599639845401, + 0, .10791139824293, .12275592600281, .8790728216287, + .37936179287834, -.13268579561143, .3485085920973, np.nan, + 1.9599639845401, 0, 2.5537914524884, .83609404798719, + 3.0544308485827, .00225487991353, .91507723074524, 4.1925056742316, + np.nan, 1.9599639845401, 0, -12.527922070831, + 4.510414281113, -2.7775546302454, .00547696322683, -21.368171617167, + -3.6876725244938, np.nan, 1.9599639845401, 0 + ]).reshape(4,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = 'gpa tuce psi _cons'.split() + +cov = np.array([ + .6990532570796, .01512804251258, .6990532570796, -2.9662622048441, + .01512804251258, .01506901736881, .01512804251258, -.3968065659911, + .6990532570796, .01512804251258, .6990532570796, -2.9662622048441, + -2.9662622048441, -.3968065659911, -2.9662622048441, 20.343836987269 + ]).reshape(4,4) + +cov_colnames = 'gpa tuce psi _cons'.split() + +cov_rownames = 'gpa tuce psi _cons'.split() + +infocrit = np.array([ + 32, np.nan, -12.944141004448, 3, + 31.888282008895, 36.285489717294]) + +infocrit_colnames = 'N ll0 ll df AIC BIC'.split() + +infocrit_rownames = '.'.split() + + +results_constraint2_robust = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + infocrit=infocrit, + infocrit_colnames=infocrit_colnames, + infocrit_rownames=infocrit_rownames, + **est + ) + +est = dict( + N_cds = 0, + N_cdf = 0, + p = .0151376589433054, + chi2 = 8.381139340374848, + df_m = 2, + k_eq_model = 1, + ll = -12.94414100444751, + k_autoCns = 0, + rc = 0, + converged = 1, + k_dv = 1, + k_eq = 1, + k = 4, + ic = 5, + N = 32, + rank = 3, + cmdline = "logit grade gpa tuce psi, constraints(2)", + cmd = "logit", + estat_cmd = "logit_estat", + predict = "logit_p", + marginsnotok = "stdp DBeta DEviance DX2 DDeviance Hat Number Residuals RStandard SCore", + title = "Logistic regression", + chi2type = "Wald", + opt = "moptimize", + vce = "oim", + user = "mopt__logit_d2()", + crittype = "log likelihood", + ml_method = "d2", + singularHmethod = "m-marquardt", + technique = "nr", + which = "max", + depvar = "grade", + properties = "b V", + ) + +params_table = np.array([ + 2.5537916456996, .92662056628814, 2.7560273736742, .00585081002433, + .73764870844071, 4.3699345829585, np.nan, 1.9599639845401, + 0, .10791141442743, .13554656655573, .79612060393329, + .42596193948753, -.15775497424986, .37357780310472, np.nan, + 1.9599639845401, 0, 2.5537916456996, .92662056628814, + 2.7560273736742, .00585081002433, .73764870844071, 4.3699345829585, + np.nan, 1.9599639845401, 0, -12.527923225554, + 4.6393781670436, -2.7003453425175, .00692675337706, -21.62093734362, + -3.4349091074867, np.nan, 1.9599639845401, 0 + ]).reshape(4,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = 'gpa tuce psi _cons'.split() + +cov = np.array([ + .85862567386816, -.00408642236043, .85862567386816, -3.172505858545, + -.00408642236043, .01837287170505, -.00408642236043, -.40376374127778, + .85862567386816, -.00408642236043, .85862567386816, -3.172505858545, + -3.172505858545, -.40376374127778, -3.172505858545, 21.523829776841 + ]).reshape(4,4) + +cov_colnames = 'gpa tuce psi _cons'.split() + +cov_rownames = 'gpa tuce psi _cons'.split() + +infocrit = np.array([ + 32, np.nan, -12.944141004448, 3, + 31.888282008895, 36.285489717294]) + +infocrit_colnames = 'N ll0 ll df AIC BIC'.split() + +infocrit_rownames = '.'.split() + + +results_logit_constraint2 = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + infocrit=infocrit, + infocrit_colnames=infocrit_colnames, + infocrit_rownames=infocrit_rownames, + **est + ) + diff --git a/statsmodels/discrete/tests/results/results_poisson_constrained.py b/statsmodels/discrete/tests/results/results_poisson_constrained.py new file mode 100644 index 0000000..3f780a9 --- /dev/null +++ b/statsmodels/discrete/tests/results/results_poisson_constrained.py @@ -0,0 +1,649 @@ +import numpy as np + +class Bunch(dict): + def __init__(self, **kw): + dict.__init__(self, kw) + self.__dict__ = self + + for i,att in enumerate(['params', 'bse', 'tvalues', 'pvalues']): + self[att] = self.params_table[:,i] + + +est = dict( + rank = 7, + N = 10, + ic = 3, + k = 8, + k_eq = 1, + k_dv = 1, + converged = 1, + rc = 0, + k_autoCns = 1, + ll = -33.45804471711131, + k_eq_model = 1, + ll_0 = -349.6684656479622, + df_m = 6, + chi2 = 632.4208418617018, + p = 2.3617193197e-133, + r2_p = .9043149497192691, + cmdline = "poisson deaths lnpyears smokes i.agecat", + cmd = "poisson", + predict = "poisso_p", + estat_cmd = "poisson_estat", + gof = "poiss_g", + chi2type = "LR", + opt = "moptimize", + vce = "oim", + title = "Poisson regression", + user = "poiss_lf", + crittype = "log likelihood", + ml_method = "e2", + singularHmethod = "m-marquardt", + technique = "nr", + which = "max", + depvar = "deaths", + properties = "b V", + ) + +params_table = np.array([ + .66308184237808, .63593388706566, 1.0426899019923, .29709193621918, + -.58332567281917, 1.9094893575753, np.nan, 1.9599639845401, + 0, .84966723812924, .94279599903649, .90122066597395, + .36747100512904, -.99817896475073, 2.6975134410092, np.nan, + 1.9599639845401, 0, 0, np.nan, + np.nan, np.nan, np.nan, np.nan, + np.nan, 1.9599639845401, 0, 1.3944392032504, + .25613243411925, 5.4442117338454, 5.203529593e-08, .8924288571041, + 1.8964495493967, np.nan, 1.9599639845401, 0, + 2.389284381366, .48305517266329, 4.9461935542328, 7.567871319e-07, + 1.4425136404002, 3.3360551223318, np.nan, 1.9599639845401, + 0, 2.8385093615484, .98099727008295, 2.8934936397003, + .00380982006764, .91579004325369, 4.7612286798431, np.nan, + 1.9599639845401, 0, 2.9103531988515, 1.500316321385, + 1.9398263935201, .05240079188831, -.03021275648066, 5.8509191541838, + np.nan, 1.9599639845401, 0, -4.724924181641, + 6.0276019460727, -.78388125558284, .43310978942119, -16.538806909087, + 7.088958545805, np.nan, 1.9599639845401, 0 + ]).reshape(8,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = 'lnpyears smokes 1b.agecat 2.agecat 3.agecat 4.agecat 5.agecat _cons'.split() + +cov = np.array([ + .40441190871844, -.59566294916097, 0, .1055698685775, + .28413388045122, .61269322798077, .94624135329227, -3.8311942353131, + -.59566294916097, .88886429579921, 0, -.15587944298625, + -.4190789999425, -.90299843943229, -1.3940094688194, 5.6335527795822, + 0, 0, 0, 0, + 0, 0, 0, 0, + .1055698685775, -.15587944298625, 0, .06560382380785, + .10360281461667, .18937107288073, .27643306166968, -1.029211453947, + .28413388045122, -.4190789999425, 0, .10360281461667, + .23334229983676, .45990880867889, .69424104947043, -2.7206801001387, + .61269322798077, -.90299843943229, 0, .18937107288073, + .45990880867889, .96235564391021, 1.4630024143274, -5.8333014154113, + .94624135329227, -1.3940094688194, 0, .27643306166968, + .69424104947043, 1.4630024143274, 2.2509490642142, -8.993394678922, + -3.8311942353131, 5.6335527795822, 0, -1.029211453947, + -2.7206801001387, -5.8333014154113, -8.993394678922, 36.331985220299 + ]).reshape(8,8) + +cov_colnames = 'lnpyears smokes 1b.agecat 2.agecat 3.agecat 4.agecat 5.agecat _cons'.split() + +cov_rownames = 'lnpyears smokes 1b.agecat 2.agecat 3.agecat 4.agecat 5.agecat _cons'.split() + + + +results_noexposure_noconstraint = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) + +est = dict( + rank = 6, + N = 10, + ic = 3, + k = 7, + k_eq = 1, + k_dv = 1, + converged = 1, + rc = 0, + k_autoCns = 1, + ll = -33.6001534405213, + k_eq_model = 1, + ll_0 = -495.0676356770329, + df_m = 5, + chi2 = 922.9349644730232, + p = 2.8920463572e-197, + r2_p = .9321301757191799, + cmdline = "poisson deaths smokes i.agecat, exposure(pyears)", + cmd = "poisson", + predict = "poisso_p", + estat_cmd = "poisson_estat", + offset = "ln(pyears)", + gof = "poiss_g", + chi2type = "LR", + opt = "moptimize", + vce = "oim", + title = "Poisson regression", + user = "poiss_lf", + crittype = "log likelihood", + ml_method = "e2", + singularHmethod = "m-marquardt", + technique = "nr", + which = "max", + depvar = "deaths", + properties = "b V", + ) + +params_table = np.array([ + .35453563725291, .10737411818853, 3.3018723993653, .00096041750265, + .14408623273163, .56498504177418, np.nan, 1.9599639845401, + 0, 0, np.nan, np.nan, + np.nan, np.nan, np.nan, np.nan, + 1.9599639845401, 0, 1.4840070063099, .19510337263434, + 7.606260139291, 2.821411159e-14, 1.1016114226842, 1.8664025899355, + np.nan, 1.9599639845401, 0, 2.6275051184579, + .18372726944827, 14.301116684248, 2.153264398e-46, 2.2674062873614, + 2.9876039495544, np.nan, 1.9599639845401, 0, + 3.350492785161, .18479918093323, 18.130452571495, 1.832448146e-73, + 2.9882930461593, 3.7126925241626, np.nan, 1.9599639845401, + 0, 3.7000964518246, .19221951212105, 19.24932807807, + 1.430055953e-82, 3.3233531309415, 4.0768397727077, np.nan, + 1.9599639845401, 0, -7.919325711822, .19176181876223, + -41.297719029467, 0, -8.2951719702059, -7.5434794534381, + np.nan, 1.9599639845401, 0]).reshape(7,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = 'smokes 1b.agecat 2.agecat 3.agecat 4.agecat 5.agecat _cons'.split() + +cov = np.array([ + .01152920125677, 0, -.00061561668833, -.00090117889461, + -.00087280941113, -.00045274641397, -.00921219275997, 0, + 0, 0, 0, 0, + 0, 0, -.00061561668833, 0, + .0380653260133, .02945988432334, .02945836949789, .0294359396881, + -.0289198676971, -.00090117889461, 0, .02945988432334, + .03375570953892, .0294799877675, .02944715358419, -.02869169455392, + -.00087280941113, 0, .02945836949789, .0294799877675, + .03415073727359, .02944603952766, -.02871436265941, -.00045274641397, + 0, .0294359396881, .02944715358419, .02944603952766, + .03694834084006, -.02905000614546, -.00921219275997, 0, + -.0289198676971, -.02869169455392, -.02871436265941, -.02905000614546, + .036772595135]).reshape(7,7) + +cov_colnames = 'smokes 1b.agecat 2.agecat 3.agecat 4.agecat 5.agecat _cons'.split() + +cov_rownames = 'smokes 1b.agecat 2.agecat 3.agecat 4.agecat 5.agecat _cons'.split() + + +results_exposure_noconstraint = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) + +est = dict( + rank = 6, + N = 10, + ic = 4, + k = 8, + k_eq = 1, + k_dv = 1, + converged = 1, + rc = 0, + k_autoCns = 1, + ll = -33.46699798755848, + k_eq_model = 1, + df_m = 5, + chi2 = 452.5895246742914, + p = 1.35732711092e-95, + r2_p = np.nan, + cmdline = "poisson deaths lnpyears smokes i.agecat, constraints(1)", + cmd = "poisson", + predict = "poisso_p", + estat_cmd = "poisson_estat", + gof = "poiss_g", + chi2type = "Wald", + opt = "moptimize", + vce = "oim", + title = "Poisson regression", + user = "poiss_lf", + crittype = "log likelihood", + ml_method = "e2", + singularHmethod = "m-marquardt", + technique = "nr", + which = "max", + depvar = "deaths", + properties = "b V", + ) + +params_table = np.array([ + .57966535352347, .13107152221057, 4.4225117992619, 9.756001957e-06, + .32276989059191, .83656081645503, np.nan, 1.9599639845401, + 0, .97254074124891, .22289894431919, 4.3631464663029, + .00001282050472, .5356668381913, 1.4094146443065, np.nan, + 1.9599639845401, 0, 0, np.nan, + np.nan, np.nan, np.nan, np.nan, + np.nan, 1.9599639845401, 0, 1.3727621378494, + .19798042377276, 6.9338276567436, 4.096036246e-12, .98472763761078, + 1.760796638088, np.nan, 1.9599639845401, 0, + 2.3307703209845, .20530981936838, 11.352454199, 7.210981748e-30, + 1.92837046935, 2.7331701726189, np.nan, 1.9599639845401, + 0, 2.71338890728, .29962471107816, 9.0559583604312, + 1.353737255e-19, 2.1261352646886, 3.3006425498714, np.nan, + 1.9599639845401, 0, 2.71338890728, .29962471107816, + 9.0559583604312, 1.353737255e-19, 2.1261352646886, 3.3006425498714, + np.nan, 1.9599639845401, 0, -3.9347864312059, + 1.2543868840549, -3.1368204508696, .00170790683415, -6.3933395466329, + -1.476233315779, np.nan, 1.9599639845401, 0 + ]).reshape(8,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = 'lnpyears smokes 1b.agecat 2.agecat 3.agecat 4.agecat 5.agecat _cons'.split() + +cov = np.array([ + .0171797439346, -.02561346650005, 0, .00445310785396, + .01204526460873, .03142116278001, .03142116278001, -.16245493266167, + -.02561346650005, .04968393937861, 0, -.0069699735991, + -.01845598801461, -.04723465558226, -.04723465558226, .2326939064726, + 0, 0, 0, 0, + 0, 0, 0, 0, + .00445310785396, -.0069699735991, 0, .03919624819724, + .03254829669461, .03756752462584, .03756752462584, -.07124751761252, + .01204526460873, -.01845598801461, 0, .03254829669461, + .04215212192908, .05145895528528, .05145895528528, -.14290240509701, + .03142116278001, -.04723465558226, 0, .03756752462584, + .05145895528528, .08977496748867, .08977496748867, -.32621483141938, + .03142116278001, -.04723465558226, 0, .03756752462584, + .05145895528528, .08977496748867, .08977496748867, -.32621483141938, + -.16245493266167, .2326939064726, 0, -.07124751761252, + -.14290240509701, -.32621483141938, -.32621483141938, 1.5734864548889 + ]).reshape(8,8) + +cov_colnames = 'lnpyears smokes 1b.agecat 2.agecat 3.agecat 4.agecat 5.agecat _cons'.split() + +cov_rownames = 'lnpyears smokes 1b.agecat 2.agecat 3.agecat 4.agecat 5.agecat _cons'.split() + + +results_noexposure_constraint = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) + +est = dict( + rank = 5, + N = 10, + ic = 3, + k = 7, + k_eq = 1, + k_dv = 1, + converged = 1, + rc = 0, + k_autoCns = 1, + ll = -38.45090497564205, + k_eq_model = 1, + df_m = 4, + chi2 = 641.6446542589836, + p = 1.5005477751e-137, + r2_p = np.nan, + cmdline = "poisson deaths smokes i.agecat, exposure(pyears) constraints(1)", + cmd = "poisson", + predict = "poisso_p", + estat_cmd = "poisson_estat", + offset = "ln(pyears)", + gof = "poiss_g", + chi2type = "Wald", + opt = "moptimize", + vce = "oim", + title = "Poisson regression", + user = "poiss_lf", + crittype = "log likelihood", + ml_method = "e2", + singularHmethod = "m-marquardt", + technique = "nr", + which = "max", + depvar = "deaths", + properties = "b V", + ) + +params_table = np.array([ + .34304077058284, .1073083520206, 3.196776058186, .00138972774083, + .13272026538212, .55336127578356, np.nan, 1.9599639845401, + 0, 0, np.nan, np.nan, + np.nan, np.nan, np.nan, np.nan, + 1.9599639845401, 0, 1.4846230896448, .19510453584194, + 7.6093724999174, 2.754298692e-14, 1.1022252261742, 1.8670209531154, + np.nan, 1.9599639845401, 0, 2.6284071093765, + .18373002757074, 14.305811326156, 2.012766793e-46, 2.2683028724593, + 2.9885113462937, np.nan, 1.9599639845401, 0, + 3.4712405808805, .17983994458502, 19.301833020969, 5.183735658e-83, + 3.1187607665121, 3.8237203952488, np.nan, 1.9599639845401, + 0, 3.4712405808805, .17983994458502, 19.301833020969, + 5.183735658e-83, 3.1187607665121, 3.8237203952488, np.nan, + 1.9599639845401, 0, -7.9101515866812, .19164951521841, + -41.274049546467, 0, -8.2857777341639, -7.5345254391986, + np.nan, 1.9599639845401, 0]).reshape(7,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = 'smokes 1b.agecat 2.agecat 3.agecat 4.agecat 5.agecat _cons'.split() + +cov = np.array([ + .01151508241338, 0, -.00061947268694, -.00090708285562, + -.00074959767622, -.00074959767622, -.00917958318314, 0, + 0, 0, 0, 0, + 0, 0, -.00061947268694, 0, + .0380657799061, .02946056271023, .0294520905375, .0294520905375, + -.02891793401778, -.00090708285562, 0, .02946056271023, + .03375672303114, .02947081310555, .02947081310555, -.02868865719866, + -.00074959767622, 0, .0294520905375, .02947081310555, + .03234240566834, .03234240566834, -.02881420109427, -.00074959767622, + 0, .0294520905375, .02947081310555, .03234240566834, + .03234240566834, -.02881420109427, -.00917958318314, 0, + -.02891793401778, -.02868865719866, -.02881420109427, -.02881420109427, + .03672953668345]).reshape(7,7) + +cov_colnames = 'smokes 1b.agecat 2.agecat 3.agecat 4.agecat 5.agecat _cons'.split() + +cov_rownames = 'smokes 1b.agecat 2.agecat 3.agecat 4.agecat 5.agecat _cons'.split() + + +results_exposure_constraint = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) + +est = dict( + rank = 6, + N = 10, + ic = 3, + k = 8, + k_eq = 1, + k_dv = 1, + converged = 1, + rc = 0, + k_autoCns = 1, + ll = -33.78306559091298, + k_eq_model = 1, + df_m = 5, + chi2 = 526.719430888018, + p = 1.3614066522e-111, + r2_p = np.nan, + cmdline = "poisson deaths lnpyears smokes i.agecat, constraints(2)", + cmd = "poisson", + predict = "poisso_p", + estat_cmd = "poisson_estat", + gof = "poiss_g", + chi2type = "Wald", + opt = "moptimize", + vce = "oim", + title = "Poisson regression", + user = "poiss_lf", + crittype = "log likelihood", + ml_method = "e2", + singularHmethod = "m-marquardt", + technique = "nr", + which = "max", + depvar = "deaths", + properties = "b V", + ) + +params_table = np.array([ + 1.1598786864273, .13082965708054, 8.8655639119598, 7.611783820e-19, + .90345727043975, 1.4163001024149, np.nan, 1.9599639845401, + 0, .12111539473831, .22317899375276, .54268277090847, + .58734823873758, -.31630739512299, .55853818459962, np.nan, + 1.9599639845401, 0, 0, np.nan, + np.nan, np.nan, np.nan, np.nan, + np.nan, 1.9599639845401, 0, 1.5276244194375, + .19848759770871, 7.6963217705896, 1.400389019e-14, 1.1385958765506, + 1.9166529623245, np.nan, 1.9599639845401, 0, + 2.7415571106656, .20647039325801, 13.278209371354, 3.097119459e-40, + 2.3368825760061, 3.1462316453252, np.nan, 1.9599639845401, + 0, 3.587300073596, .30160673316211, 11.893965482753, + 1.272196529e-32, 2.9961617391034, 4.1784384080885, np.nan, + 1.9599639845401, 0, 4.087300073596, .30160673316211, + 13.551753406643, 7.735990122e-42, 3.4961617391034, 4.6784384080885, + np.nan, 1.9599639845401, 0, -9.4376201542802, + 1.2537557101599, -7.5274792990385, 5.172920628e-14, -11.894936191605, + -6.9803041169553, np.nan, 1.9599639845401, 0 + ]).reshape(8,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = 'lnpyears smokes 1b.agecat 2.agecat 3.agecat 4.agecat 5.agecat _cons'.split() + +cov = np.array([ + .01711639917181, -.02559852137367, 0, .00475026273828, + .012305588195, .03167368550108, .03167368550108, -.16210959536359, + -.02559852137367, .0498088632525, 0, -.00783669874902, + -.01946551099054, -.0482099128044, -.0482099128044, .23336630265161, + 0, 0, 0, 0, + 0, 0, 0, 0, + .00475026273828, -.00783669874902, 0, .03939732644417, + .0328943776068, .0382554606876, .0382554606876, -.07382466315002, + .012305588195, -.01946551099054, 0, .0328943776068, + .04263002329212, .05226051095238, .05226051095238, -.14512177326509, + .03167368550108, -.0482099128044, 0, .0382554606876, + .05226051095238, .09096662148872, .09096662148872, -.32873181469848, + .03167368550108, -.0482099128044, 0, .0382554606876, + .05226051095238, .09096662148872, .09096662148872, -.32873181469848, + -.16210959536359, .23336630265161, 0, -.07382466315002, + -.14512177326509, -.32873181469848, -.32873181469848, 1.5719033807586 + ]).reshape(8,8) + +cov_colnames = 'lnpyears smokes 1b.agecat 2.agecat 3.agecat 4.agecat 5.agecat _cons'.split() + +cov_rownames = 'lnpyears smokes 1b.agecat 2.agecat 3.agecat 4.agecat 5.agecat _cons'.split() + + +results_noexposure_constraint2 = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) + +est = dict( + rank = 5, + N = 10, + ic = 3, + k = 7, + k_eq = 1, + k_dv = 1, + converged = 1, + rc = 0, + k_autoCns = 1, + ll = -34.5367006700131, + k_eq_model = 1, + df_m = 4, + chi2 = 554.4168921897579, + p = 1.1331093797e-118, + r2_p = np.nan, + cmdline = "poisson deaths smokes i.agecat, exposure(pyears) constraints(2)", + cmd = "poisson", + predict = "poisso_p", + estat_cmd = "poisson_estat", + offset = "ln(pyears)", + gof = "poiss_g", + chi2type = "Wald", + opt = "moptimize", + vce = "oim", + title = "Poisson regression", + user = "poiss_lf", + crittype = "log likelihood", + ml_method = "e2", + singularHmethod = "m-marquardt", + technique = "nr", + which = "max", + depvar = "deaths", + properties = "b V", + ) + +params_table = np.array([ + .35978347114582, .10730668667519, 3.3528522992687, .00079983377167, + .14946622996212, .57010071232952, np.nan, 1.9599639845401, + 0, 0, np.nan, np.nan, + np.nan, np.nan, np.nan, np.nan, + 1.9599639845401, 0, 1.4837272702102, .19510269288329, + 7.6048528509946, 2.852282383e-14, 1.1013330188722, 1.8661215215483, + np.nan, 1.9599639845401, 0, 2.6270956495127, + .18372567328363, 14.299012231442, 2.219372691e-46, 2.2669999468414, + 2.987191352184, np.nan, 1.9599639845401, 0, + 3.2898291023835, .17982035319735, 18.295087535352, 9.055555257e-75, + 2.9373876864294, 3.6422705183376, np.nan, 1.9599639845401, + 0, 3.7898291023835, .17982035319735, 21.075640409983, + 1.330935038e-98, 3.4373876864294, 4.1422705183376, np.nan, + 1.9599639845401, 0, -7.9235211042587, .19177810950798, + -41.316087245761, 0, -8.2993992919175, -7.5476429165999, + np.nan, 1.9599639845401, 0]).reshape(7,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = 'smokes 1b.agecat 2.agecat 3.agecat 4.agecat 5.agecat _cons'.split() + +cov = np.array([ + .01151472500521, 0, -.00061274288972, -.00089685568608, + -.00069335681347, -.00069335681347, -.00921031399899, 0, + 0, 0, 0, 0, + 0, 0, -.00061274288972, 0, + .03806506077031, .02945948985187, .02944866089267, .02944866089267, + -.02892164840477, -.00089685568608, 0, .02945948985187, + .03375512302352, .02946576868665, .02946576868665, -.0286943943397, + -.00069335681347, 0, .02944866089267, .02946576868665, + .03233535942402, .03233535942402, -.02885716752919, -.00069335681347, + 0, .02944866089267, .02946576868665, .03233535942402, + .03233535942402, -.02885716752919, -.00921031399899, 0, + -.02892164840477, -.0286943943397, -.02885716752919, -.02885716752919, + .03677884328645]).reshape(7,7) + +cov_colnames = 'smokes 1b.agecat 2.agecat 3.agecat 4.agecat 5.agecat _cons'.split() + +cov_rownames = 'smokes 1b.agecat 2.agecat 3.agecat 4.agecat 5.agecat _cons'.split() + + +results_exposure_constraint2 = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) + + +est = dict( + rank = 5, + N = 10, + ic = 3, + k = 7, + k_eq = 1, + k_dv = 1, + converged = 1, + rc = 0, + k_autoCns = 1, + ll = -34.5367006700131, + k_eq_model = 1, + df_m = 4, + chi2 = 582.5215805315736, + p = 9.3932644024e-125, + r2_p = np.nan, + cmdline = "poisson deaths smokes i.agecat, exposure(pyears) constraints(2) vce(robust)", + cmd = "poisson", + predict = "poisso_p", + estat_cmd = "poisson_estat", + offset = "ln(pyears)", + gof = "poiss_g", + chi2type = "Wald", + opt = "moptimize", + vcetype = "Robust", + vce = "robust", + title = "Poisson regression", + user = "poiss_lf", + crittype = "log pseudolikelihood", + ml_method = "e2", + singularHmethod = "m-marquardt", + technique = "nr", + which = "max", + depvar = "deaths", + properties = "b V", + ) + +params_table = np.array([ + .35978347114582, .1172393358046, 3.0687948603312, .00214924117257, + .1299985953974, .58956834689424, np.nan, 1.9599639845401, + 0, 0, np.nan, np.nan, + np.nan, np.nan, np.nan, np.nan, + 1.9599639845401, 0, 1.4837272702102, .21969092615175, + 6.7537030145039, 1.441186055e-11, 1.0531409672225, 1.9143135731979, + np.nan, 1.9599639845401, 0, 2.6270956495127, + .20894895542061, 12.572906355164, 2.975796525e-36, 2.217563222281, + 3.0366280767443, np.nan, 1.9599639845401, 0, + 3.2898291023835, .2211846822073, 14.873675109654, 4.885611722e-50, + 2.8563150913252, 3.7233431134417, np.nan, 1.9599639845401, + 0, 3.7898291023835, .2211846822073, 17.134229479922, + 8.243780087e-66, 3.3563150913252, 4.2233431134417, np.nan, + 1.9599639845401, 0, -7.9235211042587, .2479876721169, + -31.951270144281, 5.18748229e-224, -8.4095680102177, -7.4374741982996, + np.nan, 1.9599639845401, 0]).reshape(7,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = 'smokes 1b.agecat 2.agecat 3.agecat 4.agecat 5.agecat _cons'.split() + +cov = np.array([ + .0137450618599, 0, .00249770233028, .00412347653263, + .00486142402447, .00486142402447, -.01620342093134, 0, + 0, 0, 0, 0, + 0, 0, .00249770233028, 0, + .04826410303341, .04389964215014, .04391744129373, .04391744129373, + -.04609122424924, .00412347653263, 0, .04389964215014, + .04365966597136, .04367917402468, .04367917402468, -.04726310745444, + .00486142402447, 0, .04391744129373, .04367917402468, + .04892266364314, .04892266364314, -.04794543190806, .00486142402447, + 0, .04391744129373, .04367917402468, .04892266364314, + .04892266364314, -.04794543190806, -.01620342093134, 0, + -.04609122424924, -.04726310745444, -.04794543190806, -.04794543190806, + .06149788552196]).reshape(7,7) + +cov_colnames = 'smokes 1b.agecat 2.agecat 3.agecat 4.agecat 5.agecat _cons'.split() + +cov_rownames = 'smokes 1b.agecat 2.agecat 3.agecat 4.agecat 5.agecat _cons'.split() + + +results_exposure_constraint2_robust = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) diff --git a/statsmodels/discrete/tests/results/ships.csv b/statsmodels/discrete/tests/results/ships.csv new file mode 100644 index 0000000..4857c89 --- /dev/null +++ b/statsmodels/discrete/tests/results/ships.csv @@ -0,0 +1,41 @@ +ship,yr_con,yr_op,service,accident,op_75_79,co_65_69,co_70_74,co_75_79 +1,1,1,127,0,0,0,0,0 +1,1,2,63,0,1,0,0,0 +1,2,1,1095,3,0,1,0,0 +1,2,2,1095,4,1,1,0,0 +1,3,1,1512,6,0,0,1,0 +1,3,2,3353,18,1,0,1,0 +1,4,1,,,0,0,0,1 +1,4,2,2244,11,1,0,0,1 +2,1,1,44882,39,0,0,0,0 +2,1,2,17176,29,1,0,0,0 +2,2,1,28609,58,0,1,0,0 +2,2,2,20370,53,1,1,0,0 +2,3,1,7064,12,0,0,1,0 +2,3,2,13099,44,1,0,1,0 +2,4,1,,,0,0,0,1 +2,4,2,7117,18,1,0,0,1 +3,1,1,1179,1,0,0,0,0 +3,1,2,552,1,1,0,0,0 +3,2,1,781,0,0,1,0,0 +3,2,2,676,1,1,1,0,0 +3,3,1,783,6,0,0,1,0 +3,3,2,1948,2,1,0,1,0 +3,4,1,,,0,0,0,1 +3,4,2,274,1,1,0,0,1 +4,1,1,251,0,0,0,0,0 +4,1,2,105,0,1,0,0,0 +4,2,1,288,0,0,1,0,0 +4,2,2,192,0,1,1,0,0 +4,3,1,349,2,0,0,1,0 +4,3,2,1208,11,1,0,1,0 +4,4,1,,,0,0,0,1 +4,4,2,2051,4,1,0,0,1 +5,1,1,45,0,0,0,0,0 +5,1,2,,,1,0,0,0 +5,2,1,789,7,0,1,0,0 +5,2,2,437,7,1,1,0,0 +5,3,1,1157,5,0,0,1,0 +5,3,2,2161,12,1,0,1,0 +5,4,1,,,0,0,0,1 +5,4,2,542,1,1,0,0,1 diff --git a/statsmodels/discrete/tests/results/yhat_mnlogit.csv b/statsmodels/discrete/tests/results/yhat_mnlogit.csv new file mode 100644 index 0000000..92a034f --- /dev/null +++ b/statsmodels/discrete/tests/results/yhat_mnlogit.csv @@ -0,0 +1,944 @@ +0.000000000000000000e+00 1.091812372207600079e+00 4.618033468723299895e-01 9.404182434081999331e-02 1.919830322265599909e+00 2.670277595519999991e+00 3.444295644760099862e+00 +0.000000000000000000e+00 2.954681813716900085e-01 -1.227542519569400081e+00 -2.769356250762899929e+00 -3.547792911529500159e+00 -2.918476581573500095e+00 -5.426845073700000022e+00 +0.000000000000000000e+00 8.384079486131999770e-02 -1.188047885894800038e+00 -3.224680423736599799e+00 -4.295885086059599622e+00 -3.734299659728999909e+00 -6.635762214660600122e+00 +0.000000000000000000e+00 2.704371809959399964e-01 -9.751980304717999815e-01 -2.814782619476300152e+00 -3.141824007034299981e+00 -2.550637960433999929e+00 -4.741875171661400046e+00 +0.000000000000000000e+00 -1.554855406284300079e-01 -1.288965821266200074e+00 -2.478269338607800076e+00 -1.118454575538599949e+00 -7.633252739906299933e-01 -1.266640186309800020e+00 +0.000000000000000000e+00 2.768236994743299983e-01 -1.201968193054200107e+00 -2.726332426071199855e+00 -3.506469488143900026e+00 -2.885432243347199943e+00 -5.359333992004399860e+00 +0.000000000000000000e+00 -5.235689282417299584e-01 -1.692458987236000079e+00 -2.401009082794200111e+00 -1.426363229751600015e+00 -1.185254216194199905e+00 -1.733987689018199996e+00 +0.000000000000000000e+00 8.868359327316299723e-01 -3.064339756965600015e-01 -1.445470452308700082e+00 -8.331816196441700351e-01 -7.358023524284000583e-02 -1.041075229644800038e+00 +0.000000000000000000e+00 3.194109499454499956e-01 -1.082954168319699928e+00 -2.353542804717999815e+00 -2.359568357467700217e+00 -1.763418793678299901e+00 -3.452911138534500157e+00 +0.000000000000000000e+00 -2.920083403587300230e-01 -2.082370996475200187e+00 -3.329412460327100032e+00 -4.158841133117699762e+00 -3.726515293121300143e+00 -6.306940555572499996e+00 +0.000000000000000000e+00 -4.375942796468999807e-02 -1.916077971458399976e+00 -3.069896459579500192e+00 -4.194577217102099631e+00 -3.658500194549600071e+00 -6.427406311035199771e+00 +0.000000000000000000e+00 3.124215006828299779e-01 -1.136726737022399902e+00 -2.417746305465700019e+00 -2.415040969848599950e+00 -1.819938302040100098e+00 -3.538268327712999817e+00 +0.000000000000000000e+00 8.410068750381499703e-01 -4.900009036064100210e-01 -1.652157664298999906e+00 -1.007611989975000011e+00 -2.603613734245299738e-01 -1.305550098419199889e+00 +0.000000000000000000e+00 1.342830210924099987e-01 -1.101660609245300071e+00 -2.461819648742700206e+00 -2.201459884643599985e+00 -1.688634634017899927e+00 -3.151999473571799992e+00 +0.000000000000000000e+00 -7.227604389190700473e-01 -2.371169805526700092e+00 -2.578900098800700036e+00 -2.210537910461400024e+00 -1.997070431709299987e+00 -2.995729923248299897e+00 +0.000000000000000000e+00 1.455281674861899910e-01 -5.252090692520100523e-01 -8.655400872230499809e-01 4.153435826301600242e-01 8.578100800514200097e-01 1.128966689109800026e+00 +0.000000000000000000e+00 -4.328437447547899830e-01 -1.853376030921900064e+00 -2.712911605835000017e+00 -2.764017581939699930e+00 -2.433430433273299887e+00 -3.983702659606899843e+00 +0.000000000000000000e+00 4.024118185043299989e-01 -6.359210014343299466e-01 -2.459645509719799783e+00 -2.851581811904900121e+00 -2.218682527542100047e+00 -4.310974121093799738e+00 +0.000000000000000000e+00 4.354814589023600080e-01 -6.072318553924600515e-01 -1.324160575866700107e+00 1.794435083866099956e-01 7.304453849792500453e-01 7.372450828552199464e-01 +0.000000000000000000e+00 -4.521529078483599862e-01 -1.914808630943299894e+00 -3.272201538085900197e+00 -4.870410919189500198e+00 -4.473528385162399701e+00 -7.537154674529999987e+00 +0.000000000000000000e+00 -1.251995086669899893e+00 -2.623523235321000069e+00 -3.034072875976599803e+00 -3.088251352310200204e+00 -3.054024219512899929e+00 -4.400413990020799915e+00 +0.000000000000000000e+00 2.950382418930000156e-03 -1.571337223053000054e+00 -3.285231590271000091e+00 -4.742066383361800419e+00 -4.184479713439899662e+00 -7.388031005859399869e+00 +0.000000000000000000e+00 3.730467259883900044e-01 -8.848776221275299614e-01 -1.943267822265599909e+00 -2.192941427230799878e+00 -1.575885891914400094e+00 -3.247791051864600043e+00 +0.000000000000000000e+00 6.822260618209800009e-01 1.158687546849300060e-01 -5.477955937385600160e-01 8.559341430664100248e-01 1.477980613708500091e+00 1.729574084281900070e+00 +0.000000000000000000e+00 -8.122916519641999733e-02 -1.337551832199100010e+00 -2.258961439132700200e+00 -2.390999555587800085e+00 -1.940741896629299967e+00 -3.481888532638500067e+00 +0.000000000000000000e+00 6.605322957038900489e-01 -1.408182680606800130e-01 -1.353118896484400091e+00 -1.501938462257399909e+00 -8.041491508483900041e-01 -2.193635225296000080e+00 +0.000000000000000000e+00 -1.240363940596599934e-01 -1.520381212234499957e+00 -3.092132091522199921e+00 -3.502909183502199930e+00 -3.045718431472800081e+00 -5.285950660705600157e+00 +0.000000000000000000e+00 2.824140489101399920e-01 -7.457596659660300498e-01 -2.284756898879999998e+00 -1.816015481948900057e+00 -1.269593119621299948e+00 -2.573437690734900141e+00 +0.000000000000000000e+00 1.626259088516200102e-01 -8.532025814056399815e-01 -1.537386775016799989e+00 -9.717955589294400287e-01 -4.778743386268600180e-01 -1.183944821357699961e+00 +0.000000000000000000e+00 1.567146331071899990e-01 -1.366108298301700108e+00 -2.430429935455300061e+00 -2.584804058075000022e+00 -2.038556098937999828e+00 -3.823281526565600164e+00 +0.000000000000000000e+00 -2.103277668356999877e-02 -1.733338236808799948e+00 -2.851294040679900110e+00 -3.970949172973599950e+00 -3.435786247253400205e+00 -6.104429721832300260e+00 +0.000000000000000000e+00 -5.466662049293500303e-01 -1.921643495559699932e+00 -2.545301914215099881e+00 -2.747402191162100049e+00 -2.458228349685700032e+00 -4.006981849670400386e+00 +0.000000000000000000e+00 2.692280411720299749e-01 -8.306318521499600482e-01 -1.815642833709699921e+00 -2.027167320251499927e+00 -1.457412481308000052e+00 -2.994208574294999980e+00 +0.000000000000000000e+00 3.337874114513399992e-01 -5.029654502868700083e-01 -1.436903357505799894e+00 -1.704081535339400100e+00 -1.119170308113099921e+00 -2.500993251800499806e+00 +0.000000000000000000e+00 1.075936794281000086e+00 -1.515845060348499918e-01 -6.749686002731299928e-01 1.312448978424100021e+00 2.068340778350799880e+00 2.455673933029200118e+00 +0.000000000000000000e+00 -6.124967932701099738e-01 -1.489977836608900041e+00 -2.396485328674299975e+00 -3.208568334579500192e+00 -2.931637763977100075e+00 -4.816322326660199771e+00 +0.000000000000000000e+00 -1.043621420860300075e+00 -2.142180442810099894e+00 -2.732211351394699950e+00 -2.603279590606700111e+00 -2.515459299087499989e+00 -3.676558017730700012e+00 +0.000000000000000000e+00 5.515900254250000190e-02 -9.062491655349700359e-01 -1.051511883735700037e+00 1.161423206329299962e+00 1.533991456031799983e+00 2.388160228729200085e+00 +0.000000000000000000e+00 1.542547702789299979e+00 6.184469461441000071e-01 -1.537166833877600114e-01 1.910721421241800000e+00 2.818068027496300143e+00 3.335738658904999987e+00 +0.000000000000000000e+00 -1.155725270509700003e-01 -7.178711891174299753e-01 -2.269430398941000071e+00 -2.522270917892500020e+00 -2.101780414581300160e+00 -3.756218671798699837e+00 +0.000000000000000000e+00 -3.636437281965999857e-02 -1.415579795837399901e+00 -1.947661280631999947e+00 -1.485082626342800083e+00 -1.046499371528599953e+00 -1.997547268867500003e+00 +0.000000000000000000e+00 6.036074757575999872e-01 -7.035380005836500139e-01 -1.352377533912699992e+00 -2.709221653639999963e-02 5.960505604743999708e-01 3.195651769638099826e-01 +0.000000000000000000e+00 1.295403391122799952e-01 -1.158701181411700087e+00 -3.213788747787500011e+00 -4.225269794464099782e+00 -3.654503345489500177e+00 -6.577207565307600312e+00 +0.000000000000000000e+00 9.649598002433800170e-01 -2.137501090764999945e-01 -5.009021759033199794e-01 1.265137672424299975e+00 1.988679051399200093e+00 2.376280546188399789e+00 +0.000000000000000000e+00 1.197311356663700033e-01 -1.028810501098599950e+00 -2.361520528793299878e+00 -2.041144609451300163e+00 -1.544621825218200017e+00 -2.943643808364900138e+00 +0.000000000000000000e+00 -1.633648353200000086e-04 -6.248764395713799491e-01 -1.478817224502599892e+00 6.310963034629799573e-01 9.805598258972200165e-01 1.516993045806900087e+00 +0.000000000000000000e+00 -1.544251292943999918e-02 -8.235351443290700457e-01 -1.644820213317899960e+00 -1.825620412826499894e+00 -1.369827270507800066e+00 -2.633050441741899839e+00 +0.000000000000000000e+00 -1.213408470153799934e+00 -2.318766832351700113e+00 -2.669784784317000170e+00 -2.738748550414999983e+00 -2.703060150146499918e+00 -3.883750677108800176e+00 +0.000000000000000000e+00 -1.028008386492700044e-01 -1.318707585334800036e+00 -2.223144531250000000e+00 -2.286397695541400044e+00 -1.853494048118599968e+00 -3.359260559082000164e+00 +0.000000000000000000e+00 5.132489204406700534e-01 -9.755128622054999588e-02 -1.840575098991400038e+00 -2.220738887786899873e+00 -1.573220372199999995e+00 -3.411508321762100060e+00 +0.000000000000000000e+00 -2.862665057182299799e-01 -9.106428027152999594e-01 -1.355372309684800047e+00 -6.620211601257299794e-01 -3.537007570266699763e-01 -6.710271239280699573e-01 +0.000000000000000000e+00 4.620833694934800007e-01 -2.237076759338400000e-01 -9.098361134529100447e-01 -4.015808105468799960e-01 1.834212988614999928e-01 -3.880476355552699985e-01 +0.000000000000000000e+00 -7.583503723144500164e-01 -2.021193742752100064e+00 -2.551352977752700202e+00 -2.680525064468400220e+00 -2.476753711700399929e+00 -3.889872074127199930e+00 +0.000000000000000000e+00 -3.524715900421099835e-01 -1.588997364044199889e+00 -2.177803993225099877e+00 -1.376763820648200021e+00 -1.072873592376700103e+00 -1.774745941162100049e+00 +0.000000000000000000e+00 -1.666319727897600078e+00 -2.904959440231300150e+00 -4.027512550354000354e+00 -5.031681060790999638e+00 -5.105834007263199581e+00 -7.608982563018799716e+00 +0.000000000000000000e+00 -5.769834294915000134e-02 -1.050942182540899994e+00 -1.417082190513599960e+00 6.796327978372999901e-02 4.341165423393200107e-01 5.546195507049600515e-01 +0.000000000000000000e+00 -5.332493782043500330e-01 -1.458668231964100004e+00 -1.909797787666299929e+00 -1.107849955558799948e+00 -8.804145455360400385e-01 -1.325631022453299890e+00 +0.000000000000000000e+00 -8.013738393783600422e-01 -1.845148921012899956e+00 -2.303693294525099855e+00 -2.454092741012599888e+00 -2.273224592208900052e+00 -3.529677867889399856e+00 +0.000000000000000000e+00 1.032217025756799966e+00 7.339870929717999815e-01 -3.429916799068499778e-01 1.485356211662300030e+00 2.199103593826300163e+00 2.657242298126199831e+00 +0.000000000000000000e+00 -6.765357255935700032e-01 -1.845357894897500017e+00 -2.564722299575799891e+00 -2.486068487167400143e+00 -2.265287637710600155e+00 -3.576211452484100217e+00 +0.000000000000000000e+00 -1.364124864339799903e-01 -1.337733983993500075e+00 -3.289763689041099948e+00 -4.210507392883299893e+00 -3.744244575500499828e+00 -6.532436370849599605e+00 +0.000000000000000000e+00 -3.694907128810899777e-01 -2.054689407348599950e+00 -3.686678886413599976e+00 -4.961312770843499642e+00 -4.544957637786899873e+00 -7.712685108184800242e+00 +0.000000000000000000e+00 2.842297554016099959e-01 -1.045350074768099935e+00 -2.096575021743800171e+00 -2.243444681167599875e+00 -1.664788246154800033e+00 -3.355976819992100069e+00 +0.000000000000000000e+00 2.464667409658400088e-01 -1.296262741088900050e+00 -2.639337539672899968e+00 -3.541355133056600213e+00 -2.931602001190200202e+00 -5.498687267303499659e+00 +0.000000000000000000e+00 -6.500019133091000656e-02 -1.365919828414899895e+00 -2.304491758346599806e+00 -2.364983558654799811e+00 -1.915445208549499956e+00 -3.488033771514900128e+00 +0.000000000000000000e+00 -5.592858791351299486e-01 -1.788377523422199911e+00 -2.559130668640099859e+00 -2.501988887786899873e+00 -2.236214160919200111e+00 -3.620336532592800083e+00 +0.000000000000000000e+00 1.099111437797499979e+00 2.570604383945500060e-01 -3.599999845027900269e-01 1.841947913169899920e+00 2.579802036285399947e+00 3.279449224472000157e+00 +0.000000000000000000e+00 1.104592084884600034e+00 7.382053136825600381e-01 -1.891568452119800070e-01 1.422114729881299944e+00 2.170547485351599803e+00 2.500806570053100142e+00 +0.000000000000000000e+00 -3.997640609741199835e-01 -7.480141520500199759e-01 -1.028523206710800109e+00 7.274500727653500087e-01 9.330767393112200381e-01 1.641219854354899921e+00 +0.000000000000000000e+00 -1.727920621633499965e-01 -8.609806895256000292e-01 -1.300775647163399995e+00 4.465667903423299889e-01 7.465402483940100087e-01 1.165836215019200095e+00 +0.000000000000000000e+00 5.224570035934400503e-01 -5.654680132865900211e-01 -2.193132400512700197e+00 -1.674095869064299968e+00 -1.049810171127300018e+00 -2.457695007324200098e+00 +0.000000000000000000e+00 -2.893845736980399930e-01 -1.768534302711499917e+00 -3.369577169418299878e+00 -4.660880565643299889e+00 -4.225872516632099618e+00 -7.279378890991200279e+00 +0.000000000000000000e+00 1.828726008533999858e-02 -1.072391986846900069e+00 -1.108045578002899934e+00 -7.964038848877000309e-02 3.334432542324100024e-01 2.421516776084899902e-01 +0.000000000000000000e+00 2.755204401910000059e-02 -5.925400853157000158e-01 -1.566524744033799932e+00 -1.474158406257600085e+00 -1.026779651641799962e+00 -2.112201929092400121e+00 +0.000000000000000000e+00 5.290710926055900432e-01 -5.059055685997000396e-01 -1.551980495452899955e+00 -1.771357178688000023e+00 -1.116454958915700013e+00 -2.682093858718900048e+00 +0.000000000000000000e+00 -3.167724311351799993e-01 -1.435855984687800069e+00 -2.250207424163800152e+00 -2.237674951553299874e+00 -1.890516638755799894e+00 -3.270085573196400031e+00 +0.000000000000000000e+00 -2.336819916963600030e-01 -1.784910678863500078e+00 -3.042408943176300173e+00 -4.823420524597199943e+00 -4.345688343048100144e+00 -7.589778423309300415e+00 +0.000000000000000000e+00 -1.033225774764999993e+00 -2.451717376708999918e+00 -2.997420310974100222e+00 -4.037092208862300247e+00 -3.885217666626000099e+00 -6.130931377410900218e+00 +0.000000000000000000e+00 1.256903111934699890e-01 -1.372479319572400103e+00 -2.667482376098599950e+00 -3.510168552398699848e+00 -2.950255870819099790e+00 -5.452197551727300251e+00 +0.000000000000000000e+00 7.141117006540000089e-02 -7.759882807731599552e-01 -1.880352377891499893e+00 -2.805175304412800052e+00 -2.286310911178599969e+00 -4.343852519989000349e+00 +0.000000000000000000e+00 -7.035092711448700520e-01 -1.368926644325300090e+00 -1.945503711700399929e+00 -1.899701237678500076e+00 -1.709224343299899918e+00 -2.679376363754299994e+00 +0.000000000000000000e+00 -9.098612070083600400e-01 -1.964900135993999930e+00 -3.209518909454299962e+00 -3.363115072250399962e+00 -3.217633485794099801e+00 -5.004679679870600140e+00 +0.000000000000000000e+00 -1.317502140998799920e+00 -2.143173217773400197e+00 -2.198520660400399951e+00 -2.455621480941799994e+00 -2.465375185012800063e+00 -3.493015527725200187e+00 +0.000000000000000000e+00 -1.101434946060199982e+00 -2.415991067886400057e+00 -3.103147506713900050e+00 -3.897532701492299800e+00 -3.784037828445399931e+00 -5.878188610076899856e+00 +0.000000000000000000e+00 9.472656846046400014e-01 4.884690642356899759e-01 -2.265580445527999864e-01 1.196242690086400051e+00 1.899896502494800021e+00 2.150582790374799824e+00 +0.000000000000000000e+00 -2.429950684308999909e-01 -1.589863061904899899e+00 -2.297779321670499808e+00 -2.479084968566899860e+00 -2.091544628143299889e+00 -3.704599142074600060e+00 +0.000000000000000000e+00 6.975781321525600376e-01 -7.246921956539000009e-02 -7.959866523742700206e-01 7.722035050392199729e-01 1.390248894691499926e+00 1.508381485938999900e+00 +0.000000000000000000e+00 -2.295766621828100040e-01 -1.227828264236499933e+00 -1.354184269905100102e+00 2.406696556140000207e-03 3.074782490730300077e-01 4.127514362335200082e-01 +0.000000000000000000e+00 3.423350155353500068e-01 -8.275035619735700010e-01 -2.289644479751599793e+00 -2.959552049636799964e+00 -2.344807386398299887e+00 -4.627332210540799906e+00 +0.000000000000000000e+00 -5.269329063590000133e-03 -1.264967918396000091e+00 -2.892797470092800083e+00 -4.255686283111599799e+00 -3.727577209472700215e+00 -6.716277599334699921e+00 +0.000000000000000000e+00 3.620790839195299760e-01 -9.067413806915299856e-01 -2.780927896499600038e+00 -2.955410957336400024e+00 -2.350144624710099883e+00 -4.576367855072000168e+00 +0.000000000000000000e+00 3.696293830871599795e-01 -2.122126966714900087e-01 -1.658541798591600003e+00 -1.140096664428700057e+00 -5.923977494239800468e-01 -1.621812343597399897e+00 +0.000000000000000000e+00 -2.301907688379299932e-01 -7.341901659965499594e-01 -1.297359466552699958e+00 7.151806950569199461e-01 9.740752577781699451e-01 1.596032261848399969e+00 +0.000000000000000000e+00 6.581476330757100035e-01 -4.292683899402600090e-01 -1.036149501800500028e+00 3.462408781051600215e-01 9.700843095779400072e-01 8.267197012901299491e-01 +0.000000000000000000e+00 6.897988319397000412e-01 -2.082742452621499929e-01 -1.399650454521200071e+00 -3.640179336070999971e-01 2.833974659442899946e-01 -3.632376790046700221e-01 +0.000000000000000000e+00 -2.656269371509599742e-01 -1.372506260871900086e+00 -2.199131250381499925e+00 -2.167092561721799981e+00 -1.805618882179300000e+00 -3.190455436706499892e+00 +0.000000000000000000e+00 -6.837223172187799625e-01 -1.586442470550500028e+00 -1.986598610878000049e+00 -1.079799890518200023e+00 -9.164577126502999604e-01 -1.301167845726000083e+00 +0.000000000000000000e+00 -9.897508025169400314e-01 -2.042074918746899836e+00 -2.636420726776099954e+00 -2.424557924270600129e+00 -2.330650806427000177e+00 -3.472782611846899847e+00 +0.000000000000000000e+00 5.006423592567400549e-01 2.569620013237000067e-01 -8.922287821769699923e-01 3.732660710811600002e-01 9.159764647483800148e-01 8.195178508758500513e-01 +0.000000000000000000e+00 -5.683912038803099476e-01 -1.158689498901400050e+00 -1.756097316741900061e+00 -1.687297821044899893e+00 -1.457787156104999982e+00 -2.414424896240200180e+00 +0.000000000000000000e+00 -7.200368046760600160e-01 -9.819266200065599470e-01 -2.015173912048299876e+00 -1.226715445518500092e+00 -1.093435764312699954e+00 -1.599570274353000032e+00 +0.000000000000000000e+00 9.505793452262899512e-01 2.451702058315300137e-01 -7.270494103431700550e-01 1.043474555015599936e+00 1.738256692886400057e+00 1.891633749008200027e+00 +0.000000000000000000e+00 -7.036277055740399744e-01 -1.914533853530899998e+00 -2.447736263275099855e+00 -2.495041370391799962e+00 -2.285055637359600045e+00 -3.675691843032800055e+00 +0.000000000000000000e+00 4.576334953308099918e-01 -6.257297992706299938e-01 -1.227727651596099978e+00 -7.987449169158900020e-01 -2.046874463558200075e-01 -1.096624732017499992e+00 +0.000000000000000000e+00 -6.218486651777999780e-02 -3.911282122135200101e-01 -2.075984716415399944e+00 -2.001812219619799826e+00 -1.596816062927199908e+00 -3.017581939697299820e+00 +0.000000000000000000e+00 -1.427811384201000067e+00 -2.976035118102999810e+00 -3.192113876342800083e+00 -3.244594573974600049e+00 -3.279507637023900024e+00 -4.749280452728299906e+00 +0.000000000000000000e+00 -4.015715047717000052e-02 -1.320121645927399889e+00 -2.261054515838599954e+00 -2.227345466613800173e+00 -1.781554698944100013e+00 -3.343549489975000011e+00 +0.000000000000000000e+00 -4.110647737979900018e-01 -9.089532494544999564e-01 -1.718696117401099954e+00 -1.461425781250000000e+00 -1.187136173248299897e+00 -2.064201354980499836e+00 +0.000000000000000000e+00 -3.542408049106600121e-01 -1.240896701812699954e+00 -1.735957741737399918e+00 -8.824440240859999784e-01 -6.027464270591700313e-01 -1.069649338722199916e+00 +0.000000000000000000e+00 2.866150811314999852e-02 -9.379594922065700446e-01 -1.759505152702300013e+00 -7.159828543663000477e-01 -3.071732521057100040e-01 -8.712241053581200045e-01 +0.000000000000000000e+00 8.532707393169000620e-02 -1.121348977088900023e+00 -3.142141819000200176e+00 -3.981302022933999929e+00 -3.449722290039099803e+00 -6.299585342407199917e+00 +0.000000000000000000e+00 -7.876995801925700258e-01 -1.316896080970799909e+00 -1.832183122634899908e+00 -1.680931568145799915e+00 -1.537965416908299909e+00 -2.390424728393599985e+00 +0.000000000000000000e+00 -1.879376471042600028e-01 -1.007261991500900011e+00 -1.288340449333200022e+00 3.431102633476300068e-01 6.395642757415800350e-01 9.170457124710099661e-01 +0.000000000000000000e+00 1.594733476638799941e+00 1.166296124458300110e+00 1.307798475027099894e-01 2.767210960388200025e+00 3.637374162673999933e+00 4.600456237792999836e+00 +0.000000000000000000e+00 -6.179925203323399785e-01 -1.549498796463000039e+00 -1.351760625839200092e+00 -7.804774492978999723e-02 8.413095772265999361e-02 2.832896709442099814e-01 +0.000000000000000000e+00 1.290689229965199969e+00 -3.450408205390000094e-02 -4.596508443355600271e-01 1.416438341140699997e+00 2.243986368179299973e+00 2.448504209518400199e+00 +0.000000000000000000e+00 1.137748003006000097e+00 2.874712646007500094e-01 -5.901864171028099459e-01 9.448176026344300427e-01 1.718911290168799955e+00 1.661075592041000082e+00 +0.000000000000000000e+00 -3.639539778232599998e-01 -1.085270285606400043e+00 -1.723088741302500004e+00 -6.139634251594500158e-01 -3.572294712066699796e-01 -6.475095152854899450e-01 +0.000000000000000000e+00 1.230020374059700022e-01 -1.071062088012699975e+00 -2.038197755813599965e+00 -2.024943351745600140e+00 -1.526113986968999914e+00 -3.076787233352700213e+00 +0.000000000000000000e+00 2.904444932937599866e-01 -5.744858384132399687e-01 -1.693585634231600023e+00 -1.529486536979699940e+00 -9.898493885993999708e-01 -2.307820796966599808e+00 +0.000000000000000000e+00 -3.934973850845999849e-02 -6.299609541892999820e-01 -1.386646866798399991e+00 -1.420491218566900082e+00 -1.000843286514299990e+00 -2.107445240020799915e+00 +0.000000000000000000e+00 5.234043598174999978e-01 -6.948307752609299559e-01 -1.788798689842199918e+00 -1.875863909721400047e+00 -1.229279041290300079e+00 -2.910203933715799884e+00 +0.000000000000000000e+00 -4.727448821067800067e-01 -1.620556116104099997e+00 -3.021926164627100064e+00 -3.171479940414399845e+00 -2.874725580215499843e+00 -4.843842983245799871e+00 +0.000000000000000000e+00 1.175581097602800051e+00 6.854261159896900546e-01 -4.867334663867999844e-01 1.471119642257699978e+00 2.227472066879299994e+00 2.523354053497299798e+00 +0.000000000000000000e+00 -1.350744813680599954e-01 -1.781585514545399873e-01 -1.272490978241000104e+00 4.058333933353400202e-01 6.946557164192199707e-01 9.767908453941299696e-01 +0.000000000000000000e+00 -1.093601807951899985e-01 -1.582560658454899905e+00 -2.990525722503699857e+00 -3.429213047027599881e+00 -2.978543758392299790e+00 -5.329454898834200094e+00 +0.000000000000000000e+00 -8.209196329116800195e-01 -2.459818601608299904e+00 -4.000860691070600161e+00 -6.031716346740699564e+00 -5.754867076873799725e+00 -9.566514968872100511e+00 +0.000000000000000000e+00 -1.128481745719899898e+00 -1.823380947113000028e+00 -2.772996902465799884e+00 -4.067163467407199917e+00 -3.971889495849600049e+00 -6.327364444732699766e+00 +0.000000000000000000e+00 1.369264423847199874e-01 -6.212838292121900530e-01 -5.479091405868500297e-01 1.578299403190599914e+00 1.959882020950300063e+00 2.868790864944500196e+00 +0.000000000000000000e+00 -4.974853098392499895e-01 -1.259615182876600015e+00 -1.868396997451799990e+00 -6.840076446533199794e-01 -4.790246784687000048e-01 -7.567863464355499836e-01 +0.000000000000000000e+00 -1.239013671875000000e-02 -1.358189344406099952e+00 -3.387045145034799809e+00 -4.145698547363299902e+00 -3.649532556533800154e+00 -6.561895370483400214e+00 +0.000000000000000000e+00 -4.426203370094299872e-01 -1.603360295295700011e+00 -2.827619552612299803e+00 -3.191452741622899936e+00 -2.877314090728800178e+00 -4.925848960876500371e+00 +0.000000000000000000e+00 9.533824920654300206e-01 3.980941772460899752e-01 -3.452945053577399781e-01 1.228513002395599907e+00 1.921296119689900106e+00 2.111809253692599864e+00 +0.000000000000000000e+00 -8.637761324643999927e-02 -5.647318959236099500e-01 -1.354565262794499958e+00 9.635688066482499536e-01 1.252263426780700017e+00 1.917524695396400025e+00 +0.000000000000000000e+00 -1.062823295593299910e+00 -2.180414438247700204e+00 -2.391188859939600064e+00 -2.532882452011099961e+00 -2.455926418304399839e+00 -3.743509054183999929e+00 +0.000000000000000000e+00 -1.785843372345000124e-01 -1.372326016426099971e+00 -1.377084612846400047e+00 -1.440311819314999964e-01 1.838864088058499990e-01 8.604772388935000293e-02 +0.000000000000000000e+00 2.594025135040299856e-01 -8.509590029716499471e-01 -1.837011694908099901e+00 -1.802361965179400061e+00 -1.264307022094699917e+00 -2.796174764633200027e+00 +0.000000000000000000e+00 -7.521160840988200258e-01 -1.756847739219699944e+00 -2.220753192901599782e+00 -2.182216167450000022e+00 -2.008907318115200180e+00 -3.245940208435099894e+00 +0.000000000000000000e+00 -4.996603727340699908e-01 -1.203061103820799893e+00 -2.344141483306899865e+00 -3.765631198883100161e+00 -3.443329334258999896e+00 -5.982654094695999625e+00 +0.000000000000000000e+00 -3.493578732013700172e-01 -9.571870565414399845e-01 -1.569330692291299956e+00 -4.116090834140799792e-01 -1.613255292177200040e-01 -3.783931732177699958e-01 +0.000000000000000000e+00 -1.171520948409999985e+00 -2.110259771347000157e+00 -2.430417776107800076e+00 -2.292814254760699999e+00 -2.275593519210799887e+00 -3.349385738372800070e+00 +0.000000000000000000e+00 1.373535037040700013e+00 7.789852023124700375e-01 -4.507727921008999883e-02 2.499516963958699822e+00 3.295724868774399852e+00 4.151479721069300410e+00 +0.000000000000000000e+00 -1.888031512498900000e-01 -9.189055562019300405e-01 -1.668370604515100109e+00 -1.573647618293799955e+00 -1.212453961372399913e+00 -2.365734815597499985e+00 +0.000000000000000000e+00 -2.292576991021999869e-02 -3.049691319465600015e-01 -9.279665350914000355e-01 9.688512235879999379e-02 4.564129710197399881e-01 3.608589768409700138e-01 +0.000000000000000000e+00 -4.142452031369999940e-03 -7.605602741241499487e-01 -1.080372929573099938e+00 5.632503032684299527e-01 9.170017838478099481e-01 1.186050415039100026e+00 +0.000000000000000000e+00 1.005517125129699929e+00 5.759440660476700113e-01 -5.292053222656299960e-01 1.532980799675000005e+00 2.216819047927899966e+00 2.603768825531000086e+00 +0.000000000000000000e+00 -3.434398025273999872e-02 -8.206291198730499836e-01 -2.067475795745799871e+00 -2.558029413223299908e+00 -2.110246658325200197e+00 -4.027267456054699934e+00 +0.000000000000000000e+00 -1.201152563095100101e+00 -2.343635082244900136e+00 -4.206969261169399843e+00 -5.449113368987999806e+00 -5.361915588378900033e+00 -8.545774459838899162e+00 +0.000000000000000000e+00 -6.989184617996200277e-01 -2.189376354217499987e+00 -3.727496862411499912e+00 -5.777374267578100131e+00 -5.464624404907199917e+00 -9.211980819702100476e+00 +0.000000000000000000e+00 -6.480489969253500071e-01 -1.409815311431900087e+00 -2.029716968536400046e+00 -1.811150312423700059e+00 -1.617498874664299979e+00 -2.660526275634799820e+00 +0.000000000000000000e+00 1.067302346229600074e+00 4.907958805561100091e-01 -4.824868738651300060e-01 1.342436671256999947e+00 2.063692569732700210e+00 2.272574901580799889e+00 +0.000000000000000000e+00 1.502239052205999945e-02 -7.934774160385099639e-01 -2.686983346939099793e+00 -3.463029623031599780e+00 -2.982367038726799979e+00 -5.545855522155799910e+00 +0.000000000000000000e+00 -7.777433991432199933e-01 -1.777100443839999988e+00 -2.232031583786000084e+00 -2.153057813644399854e+00 -1.993392229080199973e+00 -3.218273878097499985e+00 +0.000000000000000000e+00 -6.876428723335300530e-01 -1.306381225585899974e+00 -1.496640682220500063e+00 -1.740278840064999999e+00 -1.549927115440399961e+00 -2.613267421722400119e+00 +0.000000000000000000e+00 3.442027270793899807e-01 -4.839233458042099811e-01 -2.179224491119399865e+00 -1.201902270317100063e+00 -6.858211755752600114e-01 -1.800246715545700038e+00 +0.000000000000000000e+00 -8.051345944404599830e-01 -1.824225902557399914e+00 -3.773715734481799977e+00 -5.102277755737300247e+00 -4.877786159515400399e+00 -8.092099189758300781e+00 +0.000000000000000000e+00 1.596963703632399978e-01 -8.271969556808500545e-01 -2.129970073700000022e+00 -1.567211031913799957e+00 -1.093762278556799972e+00 -2.387321710586499890e+00 +0.000000000000000000e+00 -3.584936261177100181e-01 -1.166079998016400054e+00 -1.203455090522800086e+00 3.313038051128400219e-01 5.625558495521499891e-01 8.367585539817800067e-01 +0.000000000000000000e+00 4.691771566867800058e-01 -5.812960267066999975e-01 -1.614531636238099921e+00 -1.608585834503200029e+00 -9.995374083518999697e-01 -2.550536870956400026e+00 +0.000000000000000000e+00 3.666308820247700107e-01 -5.251559019088699598e-01 -1.485059261321999946e+00 -1.475968480110199987e+00 -9.097116589546200283e-01 -2.326847076416000082e+00 +0.000000000000000000e+00 2.610835433006299944e-01 -5.542272925376899861e-01 -1.841514468193099940e+00 -1.330432176590000015e+00 -8.253383040428200479e-01 -2.034760713577299818e+00 +0.000000000000000000e+00 9.257230758666999959e-01 -2.663382589816999935e-01 -1.418428778648400002e+00 -4.705915153026600239e-01 2.626240551471700213e-01 -7.022572159767199729e-01 +0.000000000000000000e+00 4.531246721744500161e-01 -2.598764300346400047e-01 -1.577483654022199921e+00 -1.131357908248900035e+00 -5.590948462486300397e-01 -1.755918860435500051e+00 +0.000000000000000000e+00 -6.483029723167399450e-01 -1.572887897491499931e+00 -2.236496448516799962e+00 -1.959208488464400100e+00 -1.764427065849299980e+00 -2.913398742675799902e+00 +0.000000000000000000e+00 -7.291016578674299753e-01 -1.727075338363599943e+00 -2.139950752258299893e+00 -1.034384846687300019e+00 -9.049177169799800247e-01 -1.332989811897300036e+00 +0.000000000000000000e+00 -8.972662687301600215e-01 -1.851567625999499977e+00 -2.258502244949299964e+00 -2.155177354812599866e+00 -2.040846109390300089e+00 -3.201907157897899925e+00 +0.000000000000000000e+00 3.775950670242300133e-01 -1.060467585921300027e-01 -3.180353716016000309e-02 2.060524702072100034e+00 2.513409852981599801e+00 3.537147521972700215e+00 +0.000000000000000000e+00 -6.906075775622999569e-02 -7.504744529724100000e-01 -2.528356552123999901e+00 -2.261957883834799787e+00 -1.864292144775399951e+00 -3.510229110717800083e+00 +0.000000000000000000e+00 7.762248516082800309e-01 -1.574348360300099892e-01 -7.594662308692899932e-01 7.424609661102300473e-01 1.384344339370700006e+00 1.315062761306799999e+00 +0.000000000000000000e+00 5.195956826209999768e-01 -3.624204695224800266e-01 -1.365686535835300086e+00 -1.397730588913000060e+00 -7.756438851356499686e-01 -2.230013847351099976e+00 +0.000000000000000000e+00 -8.342921733856200062e-01 -1.767234206199600033e+00 -2.566972732543900015e+00 -1.997233867645300087e+00 -1.880419135093700067e+00 -2.918208360672000179e+00 +0.000000000000000000e+00 2.328873574733699992e-01 -3.433359563350700250e-01 -1.065893650054900110e+00 1.010077714919999980e+00 1.420983314514199902e+00 1.869583487510700026e+00 +0.000000000000000000e+00 -1.711761951446999844e-02 -7.990430593490599476e-01 -1.311755180358900041e+00 6.165440082549999978e-01 9.523296356201199631e-01 1.273151040077199925e+00 +0.000000000000000000e+00 -3.234213888645199875e-01 -7.359201908111600021e-01 -1.247398972511299942e+00 9.487116336822499774e-01 1.150104641914400094e+00 1.865445733070399958e+00 +0.000000000000000000e+00 -4.294274002313999694e-02 -1.484923839569100013e+00 -2.525569915771499918e+00 -3.333692073822000168e+00 -2.855966806411700087e+00 -5.327271938324000367e+00 +0.000000000000000000e+00 -6.616750955581699456e-01 -1.628257513046299954e+00 -2.545370101928699835e+00 -3.020282745361300147e+00 -2.795069456100499838e+00 -4.712809085845900192e+00 +0.000000000000000000e+00 -1.154000878333999891e+00 -2.297708272933999929e+00 -2.678376197814900106e+00 -2.445848941802999832e+00 -2.423667907714799785e+00 -3.634966850280799910e+00 +0.000000000000000000e+00 -7.839170694351199620e-01 -1.892657279968299910e+00 -2.811105012893699850e+00 -3.233280181884799820e+00 -3.048322439193699829e+00 -5.024851322174099799e+00 +0.000000000000000000e+00 3.773512840270999980e-01 -4.038502275943799957e-01 -2.153021097183200006e+00 -2.196074247360200182e+00 -1.625403046608000057e+00 -3.526860237121599795e+00 +0.000000000000000000e+00 1.050820112228399994e+00 7.799311280250500467e-01 2.727277278900099855e-01 1.639991402626000072e+00 2.357090950012199926e+00 2.647511720657299783e+00 +0.000000000000000000e+00 -5.953041911125199759e-01 -1.289923667907699967e+00 -1.226023554801900062e+00 3.880599737167400032e-01 5.246596336364699464e-01 9.422205686569200545e-01 +0.000000000000000000e+00 -6.883533596992500447e-01 -1.464541673660300081e+00 -3.138132333755499825e+00 -3.701867341995200178e+00 -3.484495878219600051e+00 -5.824571609497099622e+00 +0.000000000000000000e+00 -1.437981367111200059e+00 -2.321645498275799913e+00 -3.229300022125200176e+00 -4.311504364013700297e+00 -4.335893630981400015e+00 -6.723534584045400386e+00 +0.000000000000000000e+00 -2.781900167465199969e-01 -9.147489070892299567e-01 -1.612625122070300066e+00 -1.439376235008200000e+00 -1.122153401374800019e+00 -2.185677289962800085e+00 +0.000000000000000000e+00 1.713643521070500053e-01 -5.348168313503000315e-02 -1.155799865722699993e+00 -6.741604208946200272e-01 -2.252279073000000020e-01 -1.018584847450300090e+00 +0.000000000000000000e+00 6.549513339996300143e-01 1.797765642404600128e-01 -7.553636431693999675e-01 -8.481013774871799527e-01 -1.935998052358600119e-01 -1.417187452316299945e+00 +0.000000000000000000e+00 9.353771805763200220e-01 6.608965992927600119e-01 -2.484703809022900112e-01 5.957729816436799775e-01 1.298684358596799981e+00 9.370877742767299567e-01 +0.000000000000000000e+00 -2.619826197624199882e-01 -4.381995797157299810e-01 -9.613283276557900159e-01 1.790684163570399889e-01 4.392890930175800124e-01 4.843206703662900070e-01 +0.000000000000000000e+00 -6.891599893569899660e-01 -1.577637791633599962e+00 -2.901468992233299904e+00 -3.934304237365700008e+00 -3.693645238876300141e+00 -6.234672069549599627e+00 +0.000000000000000000e+00 1.043588280677800073e+00 3.775896131992300120e-01 -8.026732206344600051e-01 1.353755116462699970e+00 2.051118373870799871e+00 2.273961305618299900e+00 +0.000000000000000000e+00 6.466606855392500464e-01 -1.685882806777999898e-01 -1.382130861282300005e+00 -1.179479002952600109e+00 -5.269505381584199677e-01 -1.908716082572899930e+00 +0.000000000000000000e+00 -3.621126413345300277e-01 -3.325355947017700209e-01 -1.585938453674299975e+00 -5.175821781158399526e-01 -2.926641404628799736e-01 -6.388476490974399624e-01 +0.000000000000000000e+00 -2.943072021007500094e-01 -1.483662009239200108e+00 -1.945175886154199896e+00 -2.171922683715799884e+00 -1.822732925414999983e+00 -3.373160362243699861e+00 +0.000000000000000000e+00 5.264093354344000220e-02 -1.203157544136000068e+00 -2.412460327148400197e+00 -3.029956102371199833e+00 -2.533158779144299988e+00 -4.845460414886500367e+00 +0.000000000000000000e+00 1.016593098640399928e+00 7.615786790847800525e-01 7.048186063766499476e-01 2.632121801376300141e+00 3.308073043823199999e+00 4.301339626312300268e+00 +0.000000000000000000e+00 -7.039713263511699903e-01 -1.824257731437699981e+00 -2.523724794387800063e+00 -2.168474674224900145e+00 -1.991836190223700065e+00 -3.252602338790900216e+00 +0.000000000000000000e+00 -7.246798276901199598e-01 -1.191953778266900077e+00 -1.520473957061799997e+00 -1.499359250068700078e+00 -1.341550230979899894e+00 -2.229610919952400128e+00 +0.000000000000000000e+00 1.297811418771999993e-02 -1.209884285926799974e+00 -2.152337551116899839e+00 -1.967949867248500073e+00 -1.524819135665899994e+00 -3.057890653610200182e+00 +0.000000000000000000e+00 -1.419447660446200021e-01 -7.962633967399600499e-01 -2.545148134231599801e+00 -2.229262351989699908e+00 -1.863291025161700087e+00 -3.469269037246700105e+00 +0.000000000000000000e+00 -9.936676174401999628e-02 -4.632862806320199867e-01 -6.496736407280000458e-01 1.029787540435799897e+00 1.327721118926999955e+00 1.885225296020500041e+00 +0.000000000000000000e+00 -3.112290799617800086e-01 -5.411674976348900268e-01 -1.443479895591700091e+00 2.035503685474399915e-01 4.275001883506799882e-01 5.783610343933099918e-01 +0.000000000000000000e+00 -5.267454981803899594e-01 -8.918763995170599923e-01 -1.006428241729699913e+00 -2.553128600120500025e-01 -6.620487570763000651e-02 -1.972613334655800021e-01 +0.000000000000000000e+00 7.685706019400000318e-03 -5.072689056396499918e-01 -1.391994118690500049e+00 -2.852815575897999986e-02 3.317031562328299765e-01 1.400759369134899901e-01 +0.000000000000000000e+00 1.174028515815700002e+00 7.050611376762400129e-01 -4.616316556930499804e-01 1.631818532943700051e+00 2.370665073394799816e+00 2.686122655868500075e+00 +0.000000000000000000e+00 8.667224049568199584e-01 9.309688955544999367e-02 -6.832355856895400148e-01 1.049085736274699920e+00 1.704960823059100017e+00 1.780193686485300075e+00 +0.000000000000000000e+00 -1.338291645049999978e+00 -2.137690544128400205e+00 -3.488641023635899785e+00 -5.162677288055400382e+00 -5.125140190124500172e+00 -8.168318748474099777e+00 +0.000000000000000000e+00 -3.013070225715600015e-01 -1.297953486442599891e+00 -2.767345428466799984e+00 -3.884824514388999894e+00 -3.498289585113500078e+00 -6.221345424652099609e+00 +0.000000000000000000e+00 4.998045563697799953e-01 8.136464655399000545e-02 -8.691272735595699794e-01 1.391794919967699995e+00 1.881521582603500109e+00 2.422781944274900123e+00 +0.000000000000000000e+00 3.958693146705600241e-01 1.525988429784800038e-01 -1.022138953208900025e+00 -5.960283279418899793e-01 -6.409128010273000553e-02 -9.336910843849199892e-01 +0.000000000000000000e+00 -1.624253541231200082e-01 -1.069926023483299904e+00 -1.629242062568700078e+00 -6.149268746375999850e-01 -2.885173857212099957e-01 -8.161728382110600144e-01 +0.000000000000000000e+00 3.575567603111299841e-01 1.866656839847599947e-01 -8.553090691565999604e-02 1.481412172317499998e+00 1.936735391616799973e+00 2.492291450500499828e+00 +0.000000000000000000e+00 -5.035910010337799614e-01 -1.249228715896600006e+00 -2.154843807220499841e+00 -2.668861627578699824e+00 -2.396856307983400214e+00 -4.212821483612099627e+00 +0.000000000000000000e+00 7.466634511947599639e-01 2.085156887769699929e-01 -1.340624332428000054e+00 -6.843976378440900232e-01 -2.815781533717999843e-02 -1.127380132675199986e+00 +0.000000000000000000e+00 -8.050101995468099680e-01 -1.917638897895800110e+00 -2.584852218627899934e+00 -2.169935941696199855e+00 -2.034695148467999815e+00 -3.260273933410600122e+00 +0.000000000000000000e+00 2.610279917716999964e-01 -1.387148499488800035e-01 -9.354077577590900194e-01 -9.025045037269600057e-01 -3.991065025329599836e-01 -1.459215760231000081e+00 +0.000000000000000000e+00 1.143447518348700065e+00 9.312801957130399932e-01 3.219858184457000116e-02 1.887239694595300055e+00 2.612432241439799796e+00 3.043574571609500179e+00 +0.000000000000000000e+00 -3.965220749378199905e-01 -1.532645821571400058e+00 -2.139142751693699829e+00 -2.069700241088900050e+00 -1.773788452148399974e+00 -3.195069789886499922e+00 +0.000000000000000000e+00 1.499171555042299875e-01 -6.245709657669099579e-01 -2.303747653961199848e+00 -2.254198789596599806e+00 -1.771288990974400068e+00 -3.602093458175700036e+00 +0.000000000000000000e+00 2.041049301624300039e-01 -8.216147422790499588e-01 -2.204781532287599877e+00 -2.618058919906599780e+00 -2.087165355682400136e+00 -4.226195335388199581e+00 +0.000000000000000000e+00 2.248091697692899960e-01 -8.313426375389100231e-01 -2.228884696960399925e+00 -2.643034934997599894e+00 -2.103553771972700215e+00 -4.268551826477099631e+00 +0.000000000000000000e+00 1.022342681884800042e+00 3.997249901294699925e-01 -1.933055669069299876e-01 1.267934560775799913e+00 1.981936573982199912e+00 2.049966573715200191e+00 +0.000000000000000000e+00 -5.416508913040199991e-01 -1.243623852729800028e+00 -1.879997372627300045e+00 -1.594133973121599990e+00 -1.375555157661400019e+00 -2.405677080154399849e+00 +0.000000000000000000e+00 4.014159142970999961e-01 3.217520657930000166e-03 -3.993584811687500014e-01 1.503952741622900102e-01 6.772040724754300189e-01 2.606407403945900092e-01 +0.000000000000000000e+00 -1.107072234153700041e+00 -2.156640052795399942e+00 -3.834073543548599972e+00 -5.253577709197999823e+00 -5.137080192565900205e+00 -8.346274375915500698e+00 +0.000000000000000000e+00 -2.488527297973600061e-01 -1.188191652298000056e+00 -1.976161599159200088e+00 -1.731175065040599925e+00 -1.397417187690700002e+00 -2.667578220367400110e+00 +0.000000000000000000e+00 -2.463792413473100129e-01 -1.079373836517300012e+00 -1.347391486167899943e+00 4.741531312465699921e-01 7.292892336845400170e-01 1.020907044410700015e+00 +0.000000000000000000e+00 9.341730922461000119e-02 -7.917661666870100534e-01 -1.422008275985700010e+00 -4.773769378662099938e-01 -5.778272449969999724e-02 -6.437768340110799903e-01 +0.000000000000000000e+00 -6.695933341980000453e-01 -1.098284125328099936e+00 -1.433196425437899935e+00 -1.397498250007600085e+00 -1.224783658981299928e+00 -2.101851463317899960e+00 +0.000000000000000000e+00 4.656543955207000096e-02 -6.313422918319699928e-01 -1.135671257972699966e+00 8.298876881599399624e-01 1.177548050880399932e+00 1.551325798034699943e+00 +0.000000000000000000e+00 6.585223078727699964e-01 3.445451259612999917e-01 -3.025524616241500042e-01 4.109926521778100028e-01 1.019471406936599989e+00 6.485949754715000237e-01 +0.000000000000000000e+00 3.736447542905999702e-02 -5.469478368759199682e-01 -1.079746007919299977e+00 -1.650563478469800061e-01 2.241965979337700032e-01 -1.474986970424700117e-01 +0.000000000000000000e+00 -7.430033683776899878e-01 -1.814966917038000060e+00 -3.171932935714699919e+00 -4.129086017608599946e+00 -3.906296491622899936e+00 -6.551587581634500168e+00 +0.000000000000000000e+00 -2.499216496944400012e-01 -1.160072207450900006e+00 -1.257894873619100018e+00 3.330208659172099739e-01 5.993304252624499506e-01 7.775211930275000016e-01 +0.000000000000000000e+00 2.215448021888699881e-01 -8.735587596893300555e-01 -1.408748507499699931e+00 -7.092808485031100174e-01 -2.258729338645900087e-01 -1.050388693809499951e+00 +0.000000000000000000e+00 6.840816736221300154e-01 1.163216587155999938e-02 -1.364873886108399992e+00 -9.155076742172200133e-01 -2.679102122783699746e-01 -1.501365900039699941e+00 +0.000000000000000000e+00 3.875863924622999918e-02 -8.717625141143799938e-01 -2.990036725997899936e+00 -3.410455942153900022e+00 -2.939924478530900220e+00 -5.509965419769300432e+00 +0.000000000000000000e+00 -1.120705604553200008e+00 -2.008662700653100153e+00 -3.202973365783699844e+00 -4.054747581481899843e+00 -3.980632066726700113e+00 -6.395518302917500009e+00 +0.000000000000000000e+00 -3.219905495643600180e-01 -1.106532454490700035e+00 -1.585116267204299989e+00 -5.129967331886300386e-01 -2.532104551792099811e-01 -6.529771089553799701e-01 +0.000000000000000000e+00 3.108876943588300135e-01 5.028938651084899902e-01 -2.276274859905199899e-01 2.061218261718800182e+00 2.453661441802999832e+00 3.453770875930799900e+00 +0.000000000000000000e+00 -2.799483537674000155e-01 -1.064398050308200006e+00 -2.673504590988200036e+00 -3.515780687332199950e+00 -3.146387338638299891e+00 -5.669517517089800229e+00 +0.000000000000000000e+00 -7.349252104759199655e-01 -1.370553612708999891e+00 -1.931227564811700104e+00 -1.570442438125599915e+00 -1.429022431373599966e+00 -2.358943700790399944e+00 +0.000000000000000000e+00 -9.228745847939999469e-02 -4.068652391433700277e-01 -6.388074755668600169e-01 6.126674637197999929e-02 4.000811278820000094e-01 1.808818578720099990e-01 +0.000000000000000000e+00 -5.465534925460799887e-01 -1.535517692565899983e+00 -1.811560750007600085e+00 -8.939042091369600040e-01 -6.999406814575199753e-01 -1.233906745910599900e+00 +0.000000000000000000e+00 -1.477591991424600071e+00 -2.441581726074200098e+00 -3.359184026718100124e+00 -4.350070476532000185e+00 -4.394515991210900197e+00 -6.821203231811500345e+00 +0.000000000000000000e+00 1.379145860671999957e+00 9.693000316619899692e-01 3.821506500244100102e-01 2.793349981307999830e+00 3.579342842102100075e+00 4.496808528900100299e+00 +0.000000000000000000e+00 5.124232769012500022e-01 3.719266951084099770e-01 6.115149334073000098e-02 1.617998600006099963e+00 2.125118255615200180e+00 2.657781600952100032e+00 +0.000000000000000000e+00 9.441446661949199903e-01 8.735391497611999512e-01 2.619159817695599912e-01 1.939365386962899951e+00 2.592714071273800158e+00 3.111764430999799824e+00 +0.000000000000000000e+00 5.124232769012500022e-01 3.719266951084099770e-01 6.115149334073000098e-02 1.617998600006099963e+00 2.125118255615200180e+00 2.657781600952100032e+00 +0.000000000000000000e+00 2.380283474922199882e-01 1.200504750013400013e-01 -1.022117882966999958e-01 1.522503852844200090e+00 1.928173422813399984e+00 2.554022312164299979e+00 +0.000000000000000000e+00 -4.008402228355399943e-01 -1.709883332252499999e+00 -3.233376502990700008e+00 -4.209675788879399860e+00 -3.857658863067599864e+00 -6.755602836608900041e+00 +0.000000000000000000e+00 3.130473792552900258e-01 -3.757341802120199858e-01 -2.081156969070399931e+00 -2.052026510238599943e+00 -1.516082525253299895e+00 -3.335685014724699915e+00 +0.000000000000000000e+00 -4.004106223583199786e-01 -1.368551373481800004e+00 -2.800855636596700116e+00 -3.827671051025399951e+00 -3.486562490463299913e+00 -6.159951210022000190e+00 +0.000000000000000000e+00 -6.587159037590000210e-01 -6.239109635353099481e-01 -1.597296595573399980e+00 -6.265454888343799933e-01 -5.088227987289399845e-01 -8.278790116310099645e-01 +0.000000000000000000e+00 2.389450967311899932e-01 -5.058798193932000087e-02 -8.884750008583099934e-01 1.490236759185799897e+00 1.871904253959699949e+00 2.575186967849699915e+00 +0.000000000000000000e+00 1.152325510978700063e+00 6.160050034523000262e-01 -1.829476803541200125e-01 1.509343624115000004e+00 2.254224538803100142e+00 2.406897544860799876e+00 +0.000000000000000000e+00 -5.830320715904200313e-01 -1.443930149078400005e+00 -3.418313264846799981e+00 -4.724149703979500181e+00 -4.435454368591299712e+00 -7.605045318603499638e+00 +0.000000000000000000e+00 -8.047846555709800009e-01 -1.192342519760100084e+00 -1.911670565605199990e+00 -2.365899562835700021e+00 -2.220135927200300063e+00 -3.712813854217499987e+00 +0.000000000000000000e+00 5.136988759040800323e-01 4.522874057292899930e-01 -8.992899060249299747e-01 -2.185222804546400055e-01 3.326684534549699812e-01 -3.845445513725300191e-01 +0.000000000000000000e+00 1.295807063579600127e-01 -3.228063285350800116e-01 -7.918471693992600313e-01 1.153408527374299997e+00 1.520157694816600014e+00 2.020158767700200197e+00 +0.000000000000000000e+00 -5.279893875122100289e-01 -1.544608473777800084e+00 -2.705444812774699948e+00 -2.895527601242100069e+00 -2.637712955474900145e+00 -4.560428142547600316e+00 +0.000000000000000000e+00 -1.617690920829999851e-02 -2.578110396862000053e-01 -1.554695248603799929e+00 -1.749210119247400108e+00 -1.338656425476099976e+00 -2.833146333694500196e+00 +0.000000000000000000e+00 6.768617033958399531e-01 2.849060297012300236e-01 -1.426568478345900115e-01 1.408702969551099971e+00 1.984343767166099948e+00 2.304328203201300163e+00 +0.000000000000000000e+00 1.854268610477400048e-01 -7.124481201171900535e-01 -1.620020627975500060e+00 -1.459266901016200046e+00 -9.715110063552899744e-01 -2.337046384811400035e+00 +0.000000000000000000e+00 5.281952619552600092e-01 9.311610460281000146e-02 -6.809066534042399477e-01 1.401316404342699995e+00 1.903849363326999944e+00 2.365034103393599985e+00 +0.000000000000000000e+00 2.845695987344000130e-02 -9.285067915916399572e-01 -2.430424451827999821e+00 -2.530754089355499836e+00 -2.080596923828100131e+00 -4.059281826019300432e+00 +0.000000000000000000e+00 7.045911550521900546e-01 2.842046320438399998e-01 -1.410710811615000004e+00 -4.834414422512099963e-01 1.395014822483099937e-01 -8.052163124084500412e-01 +0.000000000000000000e+00 2.924646735191300251e-01 -7.340330481529200313e-01 -1.708234667778000038e+00 -1.556236505508399981e+00 -1.025016307830800111e+00 -2.505883932113599943e+00 +0.000000000000000000e+00 -4.978055506944999847e-02 -8.009184598922699516e-01 -2.413981676101700113e+00 -2.281487464904799811e+00 -1.876698493957499991e+00 -3.633804798126199831e+00 +0.000000000000000000e+00 2.387823313474700115e-01 -2.710294425487499992e-01 -1.906187653541600024e+00 -1.884249448776200042e+00 -1.381374716758700050e+00 -3.061819791793800150e+00 +0.000000000000000000e+00 1.485239714384100074e-01 -2.305138111114500010e-01 -4.958024919033099942e-01 1.190736532211299936e+00 1.572027206420899992e+00 2.051374673843400220e+00 +0.000000000000000000e+00 9.378693699836699871e-01 4.112783372402200044e-01 -7.565070390701299496e-01 4.364855587482500132e-01 1.130402326583900052e+00 6.681072711944600062e-01 +0.000000000000000000e+00 -9.175199270248399763e-01 -1.668185591697699977e+00 -2.640691041946400031e+00 -2.769024133682299826e+00 -2.662823200225799880e+00 -4.299039363861099972e+00 +0.000000000000000000e+00 -1.263304501771899957e-01 -9.896959066391000093e-01 -2.230215311050399940e+00 -2.547177076339699919e+00 -2.146904945373500073e+00 -4.083295345306400037e+00 +0.000000000000000000e+00 6.759307384491000104e-01 1.792774498462700039e-01 -1.337654471397399902e+00 -6.346281766891499476e-01 -9.760395623740000456e-03 -1.060147643089299985e+00 +0.000000000000000000e+00 8.431976437568700078e-01 3.134360015392300136e-01 -6.371119022369400309e-01 3.725398182869000263e-01 1.037716507911699892e+00 5.380669236183199811e-01 +0.000000000000000000e+00 -2.849570810794799791e-01 -9.827384948730499836e-01 -1.449382424354600074e+00 -3.651184439659099779e-01 -9.861709922552000518e-02 -4.504842460155499828e-01 +0.000000000000000000e+00 5.949017405509899881e-01 -8.950957655907000599e-02 -1.063154697418200012e+00 -1.005628824233999907e+00 -3.785631060600300191e-01 -1.719030857086200070e+00 +0.000000000000000000e+00 1.366991519928000054e+00 1.252648115158099928e+00 -6.735862791537999827e-02 2.270290613174399841e+00 3.046298980712899951e+00 3.607847452163699842e+00 +0.000000000000000000e+00 -6.385199259969999777e-03 -2.399773746728899870e-01 -9.893040657043500330e-01 1.479374766349800030e+00 1.765113711357100046e+00 2.576603174209600056e+00 +0.000000000000000000e+00 3.205068111419699939e-01 -3.413857817649800230e-01 -1.226517915725700014e+00 -1.101123690605199990e+00 -5.755078792572000390e-01 -1.822790026664699914e+00 +0.000000000000000000e+00 -5.240265727043199595e-01 -1.207811474800100093e+00 -2.034746408462499989e+00 -1.444025635719299983e+00 -1.237661480903599953e+00 -2.194656848907500013e+00 +0.000000000000000000e+00 -7.489234209060700032e-01 -1.585920453071600011e+00 -2.386294603347800081e+00 -1.714565753936799997e+00 -1.585778355598399969e+00 -2.579539299011199827e+00 +0.000000000000000000e+00 1.384396106004699978e-01 -5.815140008926400483e-01 -2.053171873092700217e+00 -2.182501077652000188e+00 -1.703729391098000034e+00 -3.556318283081099985e+00 +0.000000000000000000e+00 6.668584942817700201e-01 -6.616648752239999605e-03 -3.169546127319299855e-01 1.070250868797300026e+00 1.657265543937699981e+00 1.732270121574400079e+00 +0.000000000000000000e+00 2.094920277595500036e-01 -1.366163492202799867e-01 -1.662981033325199975e+00 -5.836476683616600436e-01 -1.489082872867600049e-01 -9.020208120346100422e-01 +0.000000000000000000e+00 -3.427108004689000120e-02 -5.217918753624000150e-01 -1.197265028953599986e+00 3.382036089897000330e-02 3.755436241626700089e-01 1.542651355266599911e-01 +0.000000000000000000e+00 5.599215626716600447e-01 2.957718446851000105e-02 -1.539692878723100122e-01 2.279238700866700107e+00 2.774346828460700021e+00 3.784002542495700006e+00 +0.000000000000000000e+00 6.152169108390800334e-01 -1.022310554981200048e-01 -1.090832233428999931e+00 -1.033693075180099896e+00 -3.980979919433599856e-01 -1.766139507293700062e+00 +0.000000000000000000e+00 -2.838019430637400142e-01 -1.111930251121499902e+00 -2.429336547851599803e+00 -1.393693089485199987e+00 -1.114405274391200074e+00 -2.107946157455399927e+00 +0.000000000000000000e+00 -1.526438444852800114e-01 -4.322301447391500018e-01 -1.072728037834199899e+00 -8.810906410217299589e-01 -5.415588617324800236e-01 -1.401782631874100016e+00 +0.000000000000000000e+00 3.182674348354300187e-01 -3.051690161228199916e-01 -1.369124770164499960e+00 -1.005879282951400056e+00 -4.923030138015699886e-01 -1.650013208389299990e+00 +0.000000000000000000e+00 9.904330968857000261e-02 -8.620942831039399845e-01 -1.760815739631699905e+00 -1.533712267875700030e+00 -1.079672694206200045e+00 -2.460946559906000086e+00 +0.000000000000000000e+00 -3.684729039669000228e-01 -1.038991570472699966e+00 -1.965437412261999972e+00 -2.456458091735799876e+00 -2.145419359207199950e+00 -3.947870016097999812e+00 +0.000000000000000000e+00 1.171761974692299979e-01 -6.328027248382599446e-01 -9.882022142410300525e-01 7.958986759185799897e-01 1.173661947250399962e+00 1.418775916099499934e+00 +0.000000000000000000e+00 4.849702417850499936e-01 -3.213236927986100055e-01 -1.674169421196000096e+00 -1.084185957908599951e+00 -5.134533643722499763e-01 -1.775688171386700098e+00 +0.000000000000000000e+00 1.573798775672899941e+00 1.229516267776499916e+00 2.216533571481699993e-01 3.093145608902000188e+00 3.924458742141700096e+00 4.958025455474899701e+00 +0.000000000000000000e+00 -7.267287969589200092e-01 -7.616250514984099773e-01 -1.979511141776999938e+00 -1.742686748504600036e+00 -1.613689422607399893e+00 -2.704171180725099877e+00 +0.000000000000000000e+00 4.829730466007999684e-02 -5.989590287208600428e-01 -2.024047374725300052e+00 -2.140735864639299990e+00 -1.697411417961099955e+00 -3.476350784301800001e+00 +0.000000000000000000e+00 1.683247536420799939e-01 -5.602223277091999964e-01 -1.797060847282399898e+00 -1.136411905288700064e+00 -6.844305396080000436e-01 -1.805017352104199890e+00 +0.000000000000000000e+00 -2.896945178508800178e-01 -8.501717448234600294e-01 -1.278611660003700079e+00 -2.134198695421199998e-01 4.688550904392999735e-02 -2.131361365318300005e-01 +0.000000000000000000e+00 -2.165085673332199923e-01 -3.492474853992499906e-01 -1.064703464508099939e+00 4.041667878627799859e-01 6.575124263763399979e-01 7.856788039207499574e-01 +0.000000000000000000e+00 5.173379778861999512e-01 2.933860719203900125e-01 -8.005830645561200498e-01 1.773734569549600071e+00 2.241428375244100213e+00 2.973327159881599790e+00 +0.000000000000000000e+00 5.940804481506299917e-01 3.715995848178900163e-01 -2.319557517766999977e-01 5.539453625678999460e-01 1.127676010131799966e+00 8.380852341651899851e-01 +0.000000000000000000e+00 3.016532063484200221e-01 -4.554990828037300266e-01 -2.175980329513500067e+00 -2.099202632904099808e+00 -1.569283604621900086e+00 -3.429401636123699859e+00 +0.000000000000000000e+00 4.604544639587400123e-01 9.016558527946000323e-02 -1.574419975280799910e+00 -1.596047282218900021e+00 -1.020397067069999997e+00 -2.670885801315300068e+00 +0.000000000000000000e+00 2.803530991077399781e-01 1.497430503368399890e-01 -1.832404851913500110e+00 -2.396244764327999821e+00 -1.866412758827199925e+00 -3.990125894546499907e+00 +0.000000000000000000e+00 -9.738373160362200354e-01 -1.440018057823200026e+00 -2.945258855819699928e+00 -3.377010107040399944e+00 -3.286677122116099969e+00 -5.337049961090100325e+00 +0.000000000000000000e+00 6.663718223571799548e-01 4.308474436402000285e-02 -4.434610605239899805e-01 1.179406166076699902e+00 1.754643797874499977e+00 1.926452159881600013e+00 +0.000000000000000000e+00 4.215649068355600271e-01 -7.962570339440999678e-02 -1.521481752395599907e+00 -7.172017693519600057e-01 -1.896158903837200094e-01 -1.169075965881299917e+00 +0.000000000000000000e+00 9.569976925849900118e-01 1.033762335777300034e+00 2.677851021289799904e-01 2.197647571563699831e+00 2.836899042129500170e+00 3.514286041259799820e+00 +0.000000000000000000e+00 4.602163285016999672e-02 -5.008983016014100231e-01 -1.708627223968500086e+00 -2.082516670227100075e+00 -1.633315443992600091e+00 -3.409063816070600161e+00 +0.000000000000000000e+00 -7.297099232673599500e-01 -1.367556333541900093e+00 -3.181962490081799988e+00 -3.408720016479500181e+00 -3.233174800872800070e+00 -5.402801990509000341e+00 +0.000000000000000000e+00 3.871283531188999816e-01 -8.248786628246000674e-02 -1.941437363624600065e+00 -1.686396241188000023e+00 -1.144405841827399906e+00 -2.775835037231400015e+00 +0.000000000000000000e+00 -6.526162624359099773e-01 -1.183019876480100097e+00 -1.930215358734099995e+00 -1.328807592391999970e+00 -1.174622297286999961e+00 -1.993814349174499956e+00 +0.000000000000000000e+00 -3.629612922668499775e-01 -1.165602207183799921e+00 -2.129096746444699928e+00 -2.602012395858800176e+00 -2.284661531448399785e+00 -4.175763607025100299e+00 +0.000000000000000000e+00 3.046660423278800267e-01 3.510790318251000297e-02 -1.309561491012600110e+00 -5.091978907585099634e-01 -3.203974664210999801e-02 -8.254615068435700032e-01 +0.000000000000000000e+00 -2.118158787488899908e-01 -4.734804630279499937e-01 -6.554883122444199461e-01 1.023584008216899960e-01 3.915191888809200216e-01 2.426126897335099952e-01 +0.000000000000000000e+00 -6.189423203468300549e-01 -7.549397945404100474e-01 -1.406606912612899940e+00 -8.722522854805000447e-01 -7.185094952583299666e-01 -1.287375211715700019e+00 +0.000000000000000000e+00 6.683153510093700067e-01 1.285844147205399968e-01 -1.397766590118399987e+00 -6.518132090568500292e-01 -3.240444138646000199e-02 -1.107716560363799951e+00 +0.000000000000000000e+00 5.764498114585899780e-01 -2.314673513174100028e-01 -1.232649683952300013e+00 -1.152074933052100070e+00 -5.277729630470300304e-01 -1.944371342658999913e+00 +0.000000000000000000e+00 -1.330858588218700067e+00 -2.372337818145799915e+00 -3.165175199508699855e+00 -4.391051769256599790e+00 -4.373214721679699934e+00 -6.955163478851299708e+00 +0.000000000000000000e+00 -2.437738180160499979e-01 -6.658998131751999727e-01 -1.071082711219800032e+00 -3.826222941278999840e-02 2.344076931476599956e-01 5.245795100926999716e-02 +0.000000000000000000e+00 -1.992145925760299974e-01 -5.938379168510400374e-01 -1.138539314269999991e+00 1.161026835441600014e+00 1.391182661056499903e+00 2.088009834289600075e+00 +0.000000000000000000e+00 -2.334020435810099936e-01 -8.139729499816900082e-01 -2.572424411773699848e+00 -3.179384946823100133e+00 -2.813555717468299910e+00 -5.150725841522199921e+00 +0.000000000000000000e+00 8.202791810035700015e-01 1.371156126260799912e-01 -8.476353287696799521e-01 1.906446665525400042e-01 8.523885607719400292e-01 2.581800520420099998e-01 +0.000000000000000000e+00 6.259005069732700433e-01 1.402976363897300016e-01 -1.358804464340199969e+00 -6.098487377166700307e-01 -7.765757851299999980e-03 -1.035293579101600026e+00 +0.000000000000000000e+00 7.184553742408800181e-01 6.833440661430399965e-01 -7.229050397872900380e-01 -6.457314640283999541e-02 5.568594336509700149e-01 -2.001892775297199889e-01 +0.000000000000000000e+00 5.070168152452000226e-02 -6.371759772300700231e-01 -9.559586048126199609e-01 8.362085223197900374e-01 1.187555909156799983e+00 1.492578387260399930e+00 +0.000000000000000000e+00 1.036208629608200038e+00 1.841638088226300041e-01 -4.748296141624500089e-01 1.085898518562300019e+00 1.804313540458700071e+00 1.719760298728900016e+00 +0.000000000000000000e+00 -8.321895599365199958e-01 -1.279715538024899901e+00 -1.817240595817599891e+00 -2.463866472244299999e+00 -2.320308208465600153e+00 -3.906980276107800076e+00 +0.000000000000000000e+00 9.276136755943299450e-01 6.386863589286799758e-01 -2.164170593023299893e-01 1.775139927864100020e+00 2.415476560592700217e+00 2.860236883163500110e+00 +0.000000000000000000e+00 -2.966329753398900260e-01 -1.431180089712099923e-01 -1.383510589599600049e+00 -2.467243671417199968e-01 -1.398076023905999929e-02 -2.933001220226300054e-01 +0.000000000000000000e+00 -8.907381892204300211e-01 -1.845720887184099990e+00 -2.691378355026199820e+00 -3.004825353622400108e+00 -2.876254320144699950e+00 -4.717071533203100131e+00 +0.000000000000000000e+00 -1.046145677566499899e+00 -1.858235239982600095e+00 -2.618901252746599795e+00 -2.913152217865000004e+00 -2.846263170242299800e+00 -4.548532485961899852e+00 +0.000000000000000000e+00 -1.003937125206000092e+00 -1.502574086189299996e+00 -3.007461309432999830e+00 -3.426603555679299973e+00 -3.346265554428100142e+00 -5.409435272216800428e+00 +0.000000000000000000e+00 -3.809540346265000155e-02 -5.650464892387400129e-01 -1.306238770484899891e+00 -1.107748985290500032e+00 -7.181414961814900355e-01 -1.774101138114899889e+00 +0.000000000000000000e+00 -4.802110791206399831e-01 -1.239684224128700052e+00 -1.284565687179600069e+00 -6.264293789863599748e-01 -4.096567034721400047e-01 -8.736095428466800206e-01 +0.000000000000000000e+00 3.295819163322399881e-01 -2.406327873468399881e-01 -1.919433712959299987e+00 -1.877542853355399943e+00 -1.343440651893599957e+00 -3.088328123092700217e+00 +0.000000000000000000e+00 8.816182613372800514e-01 5.159627199173000278e-01 3.372796624899000034e-02 1.562652111053500104e+00 2.208534717559799798e+00 2.488683462142899927e+00 +0.000000000000000000e+00 1.339401155710200075e-01 -3.711611032486000217e-01 -1.348010897636400029e+00 -9.544342160224900118e-01 -5.123581290245099451e-01 -1.539448738098099900e+00 +0.000000000000000000e+00 -2.366107255220399885e-01 -1.168007612228399994e+00 -2.450076818466199846e+00 -3.733201265335099883e+00 -3.327254056930499804e+00 -6.085488796234099773e+00 +0.000000000000000000e+00 -5.111558437347399897e-01 -7.482544779777500210e-01 -8.337028026580800555e-01 -1.817743177529999952e-03 1.766703575849500052e-01 1.294209063053100017e-01 +0.000000000000000000e+00 3.099586814642000046e-02 -6.845580339431800443e-01 -2.369014263153100153e+00 -3.232995033264200124e+00 -2.759827613830600157e+00 -5.323746204376200275e+00 +0.000000000000000000e+00 -6.053734421730000426e-01 -9.272364974021900519e-01 -1.822737574577300013e+00 -9.868841767311099522e-01 -8.361587524414100248e-01 -1.466517329216000087e+00 +0.000000000000000000e+00 -4.362296164035799895e-01 -5.833148360252400355e-01 -2.600750684738200036e+00 -3.738101005554200107e+00 -3.436785221099900145e+00 -6.111667156219500185e+00 +0.000000000000000000e+00 5.373826995492000241e-02 -3.180680572986600008e-01 -1.291579246521000091e+00 -1.901737093925500055e+00 -1.449480652809099990e+00 -3.174315690994299999e+00 +0.000000000000000000e+00 1.146441340446499924e+00 1.040120601654100030e+00 5.475819706916800200e-01 2.004029035568200001e+00 2.734636783599900145e+00 3.111385822296099946e+00 +0.000000000000000000e+00 -7.286229133606000330e-01 -1.849661231041000109e+00 -3.224602460861199837e+00 -4.074485301971400020e+00 -3.857010602951000067e+00 -6.534875392913799708e+00 +0.000000000000000000e+00 -2.472272664308499956e-01 -4.759474992752100175e-01 -1.074557662010199977e+00 -8.313176631927500226e-01 -5.322167277336099511e-01 -1.330619096756000097e+00 +0.000000000000000000e+00 1.266439676284800031e+00 8.336641788482700433e-01 2.780889533460000063e-02 1.744344353675800097e+00 2.519626379013100159e+00 2.710545301437400134e+00 +0.000000000000000000e+00 -2.203742116689700048e-01 -2.642019689083099920e-01 -1.334444284439100015e+00 6.427769660949700370e-01 8.678171038627600087e-01 1.184152603149400074e+00 +0.000000000000000000e+00 1.061974167823799942e+00 1.173227667808500074e+00 3.847650885582000191e-01 2.316871404647800059e+00 2.989473819732700210e+00 3.660910844802899966e+00 +0.000000000000000000e+00 -5.179010331631000302e-02 -3.331609666347499776e-01 -1.574015855789199891e+00 -6.448332071304300195e-01 -3.021939098834999782e-01 -1.000334978103599948e+00 +0.000000000000000000e+00 6.238719224929799578e-01 6.396266818046599800e-01 -7.247347235679599819e-01 -1.480014994740000076e-02 5.662015676498399763e-01 -1.290257871150999880e-01 +0.000000000000000000e+00 8.166787028312999519e-02 -3.204990029334999768e-01 -1.633828043937699981e+00 -7.214136719703699852e-01 -3.258663117885600147e-01 -1.141724705696099962e+00 +0.000000000000000000e+00 1.929442733526199882e-01 4.238484427333000237e-02 -1.180687904357899942e+00 7.050694227218600174e-01 1.085286140441900082e+00 1.213268995284999985e+00 +0.000000000000000000e+00 3.574834764003799736e-01 3.028444349765799792e-01 -3.745987117290500157e-01 7.254142165183999902e-01 1.192820429801900062e+00 1.146280527114899916e+00 +0.000000000000000000e+00 1.094925761222800054e+00 1.111219525337199920e+00 9.131156206131000319e-01 3.161262035369900136e+00 3.830941438674900112e+00 5.049408912658700288e+00 +0.000000000000000000e+00 4.758275747299199887e-01 3.853450715541800187e-01 -1.209077954292300028e+00 -1.241483807563799946e+00 -6.733356714248700525e-01 -2.142509937286400046e+00 +0.000000000000000000e+00 1.575814485549900112e-01 -5.728566050529499964e-01 -1.427545070648200021e+00 -1.215159416198700049e+00 -7.511837482452400350e-01 -1.995832204818700051e+00 +0.000000000000000000e+00 -2.878352105617499879e-01 -5.262885093689000371e-01 -1.551202178001400034e+00 -1.849492073059100017e+00 -1.536911010742199934e+00 -3.012744903564500198e+00 +0.000000000000000000e+00 5.971298217773399752e-01 6.492750346660999816e-02 -6.226790547370899542e-01 2.428070157766299975e-01 8.236488699913000477e-01 3.303515911102299918e-01 +0.000000000000000000e+00 2.187384217977499934e-01 -4.403797984123200004e-01 -1.294346928596499913e+00 -1.108374953270000018e+00 -6.242662072181700550e-01 -1.839371323585500040e+00 +0.000000000000000000e+00 7.223281860351600248e-01 4.498006030916999742e-02 -1.534639477729800028e+00 -7.477715015411400268e-01 -1.081317141652100022e-01 -1.288272500038099899e+00 +0.000000000000000000e+00 4.182811081409499865e-01 2.272001653909699881e-01 -1.187074422836299936e+00 -1.432630419731099947e+00 -8.723704218864399840e-01 -2.455003023147599883e+00 +0.000000000000000000e+00 2.234764546155899867e-01 1.929005980491599881e-01 -1.912672771139999972e-03 1.682819247245799898e+00 2.072186231613200036e+00 2.762377977371199833e+00 +0.000000000000000000e+00 3.514526188373600091e-01 7.360059022902999681e-02 -7.181286811828599959e-01 -6.229653358459500412e-01 -1.025190576910999934e-01 -1.104235529899600055e+00 +0.000000000000000000e+00 6.954557299614000376e-01 9.421094059944199461e-01 1.102909296750999996e-01 2.360435247421300176e+00 2.884139299392700195e+00 3.813048839569099790e+00 +0.000000000000000000e+00 2.590077519416800200e-01 1.195513680577300064e-01 -6.845026612281800427e-01 1.735977053642300039e+00 2.112012863159200116e+00 2.911062240600600148e+00 +0.000000000000000000e+00 -2.861809432506600137e-01 -8.152455687522900396e-01 -1.236495971679699934e+00 -1.422786414623299911e-01 1.142346933484099936e-01 -1.247950270771999992e-01 +0.000000000000000000e+00 7.689164280891399583e-01 3.328537046909300079e-01 -1.345328092575099888e-01 1.468626260757400104e+00 2.071364164352400117e+00 2.338580131530799910e+00 +0.000000000000000000e+00 -5.026024580001799968e-01 -1.364441990852399922e+00 -1.676287412643399977e+00 -1.759085655212399901e+00 -1.513232231140100081e+00 -2.783164978027299785e+00 +0.000000000000000000e+00 4.881661534309399975e-01 -6.638255715370000587e-02 -1.542720437049899918e+00 -7.132505178451500338e-01 -1.635480821132699880e-01 -1.195898532867400110e+00 +0.000000000000000000e+00 -3.975033760070800226e-01 -1.009470105171200061e+00 -1.475771427154499937e+00 -1.379829406738299902e+00 -1.113478779792800077e+00 -2.185148000717199945e+00 +0.000000000000000000e+00 1.145021393895099965e-01 -4.197520911693600199e-01 -1.834639787673999933e+00 -1.950632929801900062e+00 -1.490737795829800039e+00 -3.212811470031700090e+00 +0.000000000000000000e+00 1.201350927352899944e+00 1.076243877410899996e+00 2.388777881860700003e-01 3.209185123443599963e+00 3.892611503601099976e+00 5.178262233734099773e+00 +0.000000000000000000e+00 -1.723922789096800079e-01 -4.072539806366000104e-01 -1.030004024505599913e+00 -8.052735924720799687e-01 -4.785045087337500003e-01 -1.302321195602399895e+00 +0.000000000000000000e+00 4.886148869990999954e-02 3.261573240160999670e-02 -1.058711186051399938e-01 1.622049808502199930e+00 1.946857690811200081e+00 2.696349382400499817e+00 +0.000000000000000000e+00 2.895863652229300200e-01 -5.179284811019899681e-01 -1.622741341590899999e+00 -1.190254926681499903e+00 -6.852928400039699497e-01 -1.954842448234600072e+00 +0.000000000000000000e+00 2.061879187822300008e-01 2.823520004749299761e-01 -6.846991926432000053e-02 1.847921729087800058e+00 2.217508792877199930e+00 3.046572923660300081e+00 +0.000000000000000000e+00 -6.749227046966600474e-01 -1.698596715927100043e+00 -2.627695798873900035e+00 -2.952402830123900035e+00 -2.746447324752800068e+00 -4.692863464355499836e+00 +0.000000000000000000e+00 -5.154786705970799687e-01 -1.446401238441499926e+00 -2.644686937332199950e+00 -3.820941209793100146e+00 -3.521432161331199850e+00 -6.198441028595000013e+00 +0.000000000000000000e+00 8.467513322830200195e-01 9.626018404960600128e-01 -1.958378553390499877e-01 1.237927556037899945e+00 1.859451055526700092e+00 1.912756443023700070e+00 +0.000000000000000000e+00 1.282913982868200131e-01 -3.757891356945000094e-01 -2.166335344314600064e+00 -1.804455518722499985e+00 -1.360416769981400043e+00 -2.939366102218599952e+00 +0.000000000000000000e+00 -3.400922417640699913e-01 -9.592564702033999913e-01 -1.254945039749099989e+00 -1.415791511535599900e+00 -1.118164896964999988e+00 -2.274557113647500017e+00 +0.000000000000000000e+00 2.955315411090900235e-01 2.315294444560999920e-01 -5.632912516593899799e-01 1.836555123329199901e+00 2.223547935485799876e+00 3.061898708343500086e+00 +0.000000000000000000e+00 4.960230588912999949e-01 1.096318513155000035e-01 -1.134224891662600099e+00 -5.746130943298299876e-01 -1.751608215271999863e-02 -1.004869818687400107e+00 +0.000000000000000000e+00 -1.414246708154699994e-01 -9.210181236267099836e-01 -2.134897947311400035e+00 -2.391165971756000097e+00 -2.007277727127100064e+00 -3.881562948226899845e+00 +0.000000000000000000e+00 -2.030746638774900137e-01 -5.193126201629599814e-01 -2.406039714813200003e+00 -2.782415151596099978e+00 -2.428065776825000022e+00 -4.534801959991500375e+00 +0.000000000000000000e+00 -3.035069406032600003e-01 -1.001986145973200015e+00 -1.273611903190599914e+00 -3.928059935569799821e-01 -1.271837353706400109e-01 -5.365099310874900107e-01 +0.000000000000000000e+00 -5.489365458488499883e-01 -1.298500776290899994e+00 -2.571640014648400197e+00 -2.483653783798200010e+00 -2.260290145873999901e+00 -3.934845447540300079e+00 +0.000000000000000000e+00 -2.405528873205199925e-01 -3.038759529590600028e-01 -1.183476805686999977e+00 5.589065551757800288e-01 7.871419787406900292e-01 1.032802700996400036e+00 +0.000000000000000000e+00 8.785607218742399471e-01 2.157530933618500013e-01 -5.351282954216000087e-01 1.316063046455399954e+00 1.956437945365899989e+00 2.106495618820200200e+00 +0.000000000000000000e+00 5.687230229377699953e-01 2.922951988875999857e-02 -5.954849123954799595e-01 1.317867994308500101e+00 1.840511560440099892e+00 2.160305261611899841e+00 +0.000000000000000000e+00 4.729264080524400171e-01 4.218789637088800060e-01 1.465993970632600008e-01 1.769632697105399943e+00 2.251226902008100161e+00 2.856704473495499830e+00 +0.000000000000000000e+00 6.620728969574000145e-01 4.403132796287499984e-01 -9.428480863571200299e-01 8.317105174064599593e-01 1.386436223983799954e+00 1.333549261093099902e+00 +0.000000000000000000e+00 8.624142408371000545e-01 9.900450110435500273e-01 2.659554183483099910e-01 2.247420787811300169e+00 2.846241235732999808e+00 3.585449695587199948e+00 +0.000000000000000000e+00 1.812429279089000089e-01 2.594541609287300266e-01 -8.332112431525999507e-02 1.839240431785599927e+00 2.199604749679600069e+00 3.037140369415300079e+00 +0.000000000000000000e+00 -2.697052061557799751e-01 -8.178924322128300339e-01 -1.495322227478000032e+00 -1.199014306068399982e+00 -8.977938890457199950e-01 -1.900329232215899999e+00 +0.000000000000000000e+00 -7.163576483726500355e-01 -1.794912695884699927e+00 -2.916055917739900138e+00 -2.978940963745099868e+00 -2.796382188797000179e+00 -4.703550815582300260e+00 +0.000000000000000000e+00 4.860692620277399789e-01 3.143658936023699946e-01 2.489198446273800103e-01 2.682844638824500194e+00 3.135140895843500086e+00 4.403543472289999983e+00 +0.000000000000000000e+00 5.079976916313200253e-01 -4.321217164397000293e-02 -1.770721316337600104e+00 -1.743352770805399965e+00 -1.148440480232199912e+00 -2.930451154708900052e+00 +0.000000000000000000e+00 2.203467488288899934e-01 -7.287713140248999744e-02 -1.701120018958999891e+00 -2.676676988601700113e+00 -2.147715806961099982e+00 -4.487352848052999832e+00 +0.000000000000000000e+00 8.514345884323100133e-01 2.916433215141300272e-01 -2.336909025907500104e-01 1.366351127624499950e+00 2.003394365310700032e+00 2.165504217147800059e+00 +0.000000000000000000e+00 -5.715122222900399507e-01 -7.736194133758500513e-01 -1.267623305320700000e+00 -9.441751241683999929e-01 -7.649695873260500267e-01 -1.453243494033799932e+00 +0.000000000000000000e+00 -4.156841039657599990e-01 -1.056283354759200099e+00 -1.960692286491400038e+00 -2.409305095672599872e+00 -2.120628595352199941e+00 -3.888588905334500190e+00 +0.000000000000000000e+00 7.372578978538499861e-01 3.117514848709099784e-01 -3.330891132354700246e-01 1.519679784774800035e+00 2.100485324859600045e+00 2.447284936904900121e+00 +0.000000000000000000e+00 -1.559545993804899999e-01 -8.670583963394199456e-01 -1.130112409591699896e+00 7.536923289299000128e-01 1.025876641273500089e+00 1.375887274742100042e+00 +0.000000000000000000e+00 -2.825857400894200011e-01 -6.635937094688399984e-01 -2.297666072845499841e+00 -1.847371816635100084e+00 -1.558144092559800020e+00 -2.938668012618999903e+00 +0.000000000000000000e+00 1.019740700721700088e+00 1.239781260490399939e+00 3.033566176891300259e-01 2.473292589187599866e+00 3.116892337799099799e+00 3.935673236846899847e+00 +0.000000000000000000e+00 5.707307457923900262e-01 8.276202082633999924e-01 3.603489696980000101e-02 2.317028522491499931e+00 2.794619083404500159e+00 3.765885591507000196e+00 +0.000000000000000000e+00 -4.262812733650199748e-01 -1.008410573005700028e+00 -1.647867083549499956e+00 -1.305913448333700044e+00 -1.061063647270199972e+00 -2.041264295577999821e+00 +0.000000000000000000e+00 -2.846063077449800249e-01 -1.054038286209100006e+00 -2.032527685165399944e+00 -2.461520910263100159e+00 -2.124611377716099980e+00 -4.013614177703900054e+00 +0.000000000000000000e+00 9.766728281974800252e-01 1.124964952468900048e+00 -6.400665640831000591e-02 1.365832686424300002e+00 2.029929637908900020e+00 2.068813800811799997e+00 +0.000000000000000000e+00 -9.115006923675500472e-01 -1.375733733177199936e+00 -2.463625907897899925e+00 -2.289170503616300145e+00 -2.212213277816799994e+00 -3.593905687332199950e+00 +0.000000000000000000e+00 -7.607439160347000129e-02 -7.879983186721799537e-01 -1.757459282875099893e+00 -1.209645986556999953e+00 -8.460677862167399477e-01 -1.946922302246099967e+00 +0.000000000000000000e+00 7.829722166061400257e-01 5.023301839828500093e-01 -1.176154762506499973e-01 1.736454367637600082e+00 2.325275182723999912e+00 2.755790233612100071e+00 +0.000000000000000000e+00 -1.455019265413300122e-01 -1.026929840445500036e-01 -1.671056151390100109e-01 1.637097358703599959e+00 1.884583592414899922e+00 2.729782342910799908e+00 +0.000000000000000000e+00 1.149662256240800096e+00 1.402144432067899960e+00 4.351878166198699938e-01 2.601197719573999922e+00 3.287371158599900145e+00 4.091730594634999996e+00 +0.000000000000000000e+00 2.894706428050999869e-01 1.651303023099900125e-01 -7.568131685257000196e-01 -3.907271027565000221e-01 8.795379102229999857e-02 -7.300116419792199718e-01 +0.000000000000000000e+00 -6.513271927833600428e-01 -1.041744470596299932e+00 -1.562368631362899940e+00 -1.155785918235799903e+00 -1.003826379776000088e+00 -1.792129158973700065e+00 +0.000000000000000000e+00 1.057538747787500011e+00 1.422902345657300005e+00 3.240769505500800118e-01 2.740256309509299992e+00 3.378981351852400117e+00 4.347627639770499819e+00 +0.000000000000000000e+00 -7.838866114616399594e-01 -1.309565067291299956e+00 -1.390673041343700067e+00 -3.761897385120400172e-01 -2.965662479400599794e-01 -4.535565376281699979e-01 +0.000000000000000000e+00 -8.375116586685199538e-01 -1.744633316993700056e+00 -2.537500858306899865e+00 -1.763253808021499891e+00 -1.672831296920799904e+00 -2.684931755065900205e+00 +0.000000000000000000e+00 -3.059580624103500068e-01 -6.182069778442399466e-01 -1.903714179992699984e+00 -2.948270559310900207e+00 -2.605969429016099959e+00 -4.870172023773199577e+00 +0.000000000000000000e+00 5.131437182426500376e-01 3.924760520458199786e-01 -4.831050038337699748e-01 1.903236985206600007e+00 2.367883682251000099e+00 3.108048200607299805e+00 +0.000000000000000000e+00 6.840857863426199614e-01 2.657022476196300165e-01 -1.233221411704999992e+00 -4.401385784149199898e-01 1.729957163333900039e-01 -8.242587447166399572e-01 +0.000000000000000000e+00 2.370605766773200007e-01 -1.562164817005000025e-02 -1.145988464355500058e+00 -5.043709874153099459e-01 -5.073070526122999691e-02 -8.747309446334800009e-01 +0.000000000000000000e+00 -4.821986258029899997e-01 -6.615972518920899548e-01 -1.612436652183500074e+00 -1.834444403648400002e+00 -1.599185109138500094e+00 -2.979312181472800081e+00 +0.000000000000000000e+00 7.416322827339200119e-01 4.238471686840100117e-01 -1.255225062370300071e+00 -2.489919662475600093e-01 3.720304965972899836e-01 -5.117657184600800102e-01 +0.000000000000000000e+00 9.539650082588200242e-01 4.432246387004900035e-01 -9.154577255249000123e-01 6.177162528038000477e-01 1.294871091842699995e+00 9.058906435966499471e-01 +0.000000000000000000e+00 -1.853878051042600061e-01 -9.667665362358099923e-01 -1.978280305862399890e+00 -2.431251764297500007e+00 -2.057535409927400138e+00 -3.982740402221700116e+00 +0.000000000000000000e+00 -5.384694933891299717e-01 -7.393814325332600523e-01 -2.550874471664399845e+00 -3.862112045288100148e+00 -3.590669631957999819e+00 -6.334131240844699917e+00 +0.000000000000000000e+00 -1.880775243043900091e-01 -7.286577224731399793e-01 -1.182650804519699950e+00 -7.760424911975999374e-02 2.112305313348800118e-01 -6.210688874124999787e-02 +0.000000000000000000e+00 -2.274499684572199865e-01 -9.214050173759500417e-01 -2.712355852127100064e+00 -3.234932661056499903e+00 -2.871362209320099890e+00 -5.282375812530499815e+00 +0.000000000000000000e+00 -7.142918705940199953e-01 -1.303696990013099910e+00 -2.048495769500700003e+00 -1.353197574615500054e+00 -1.227859735488900039e+00 -2.065744400024399852e+00 +0.000000000000000000e+00 -6.329545974731399793e-01 -1.260934829711900074e+00 -2.476418733596799981e+00 -2.350027561187700176e+00 -2.165512323379500170e+00 -3.734654664993299900e+00 +0.000000000000000000e+00 5.638656020164499738e-01 4.170064926147499795e-01 -5.934498906135600160e-01 -2.952322959899900123e-01 2.848985493183099904e-01 -6.262525320053099476e-01 +0.000000000000000000e+00 5.730922892689999798e-02 -1.532994806766500018e-01 -8.387680053710899752e-01 -6.426431536674499512e-01 -2.364094704389599899e-01 -1.108533263206499919e+00 +0.000000000000000000e+00 1.139374613761900079e+00 4.866085946559899900e-01 -1.503521800041200118e-01 1.423305869102500010e+00 2.164995908737199937e+00 2.184909582138100159e+00 +0.000000000000000000e+00 3.884692490100900009e-01 -1.098273843526799964e-01 -1.787402272224400068e+00 -1.702261090278599953e+00 -1.157002449035599900e+00 -2.868720293044999980e+00 +0.000000000000000000e+00 -4.746141731738999781e-01 -1.369089603424100021e+00 -3.005967140197800092e+00 -4.717137336730999664e+00 -4.379804611206099985e+00 -7.725778579711899852e+00 +0.000000000000000000e+00 -1.020659878850000007e-01 -8.018458485603300323e-01 -2.632046222686799997e+00 -3.186295747757000196e+00 -2.776512861251799968e+00 -5.227164745330799889e+00 +0.000000000000000000e+00 -8.145309984684000193e-02 -4.121264517307299813e-01 -1.770053386688200003e+00 -2.870138645172100045e+00 -2.444832801818800139e+00 -4.785277843475300052e+00 +0.000000000000000000e+00 1.787830144166900059e-01 1.949788928031900015e-01 2.596007287502000160e-02 1.749954938888500067e+00 2.117336511611899841e+00 2.852406740188599965e+00 +0.000000000000000000e+00 1.057107329368599968e+00 8.590980172157299810e-01 -2.007115632295599916e-01 2.055922269821199855e+00 2.722745895385699999e+00 3.256626367568999925e+00 +0.000000000000000000e+00 2.786902785301200169e-01 -3.627246022224400179e-01 -1.040341258048999906e+00 -1.080917239189099988e+00 -5.694701671600299608e-01 -1.852320194244400087e+00 +0.000000000000000000e+00 1.627263575792300132e-01 -6.943934559822100283e-01 -1.584731817245500052e+00 -1.320368647575399956e+00 -8.544542789459199650e-01 -2.182771682739300001e+00 +0.000000000000000000e+00 5.350632667541499465e-01 2.317623347043999971e-01 -1.299355924129499962e-01 1.548853993415800101e+00 2.057382583618200034e+00 2.480158567428599969e+00 +0.000000000000000000e+00 3.792139887809800047e-01 -2.515788376331299925e-01 -9.002603292465199969e-01 7.092802971601000483e-02 5.709203481674199887e-01 7.615564018487999687e-02 +0.000000000000000000e+00 8.857206702232399698e-01 4.873584210872700107e-01 -4.411110579967499890e-01 6.072422266006499703e-01 1.275637984275800108e+00 8.530325293541000109e-01 +0.000000000000000000e+00 -9.209797382354699691e-01 -1.426149010658299909e+00 -1.896456718444800016e+00 -1.402939677238500105e+00 -1.346233487129200102e+00 -2.133175611496000101e+00 +0.000000000000000000e+00 1.161851167678799923e+00 1.211337327957199950e+00 -3.458392573519999957e-03 2.432359457016000093e+00 3.119626998901400050e+00 3.850305318832400125e+00 +0.000000000000000000e+00 6.028479337692299600e-01 5.842421054840100103e-01 2.784305810928299763e-01 1.897537708282500013e+00 2.421705722808800143e+00 3.012761831283599978e+00 +0.000000000000000000e+00 -1.063036918640100081e+00 -1.710324406623799920e+00 -2.858007669448900057e+00 -3.656584978103599948e+00 -3.581300258636499922e+00 -5.850157737731899843e+00 +0.000000000000000000e+00 6.636455655098000284e-01 5.085978507995599918e-01 -5.340451002121000545e-01 -2.605069279670699789e-01 3.565148115158099928e-01 -5.885218977928200479e-01 +0.000000000000000000e+00 5.520863533019999547e-01 2.642611265182500113e-01 -1.160011649131799993e+00 -3.519825339317300128e-01 2.084621638059599991e-01 -6.650573611259500417e-01 +0.000000000000000000e+00 -2.665180265903500101e-01 -7.320321202278099459e-01 -1.578241109848000034e+00 -1.017446160316499926e+00 -7.317706942558299676e-01 -1.615849375724800030e+00 +0.000000000000000000e+00 3.221007883548699935e-01 1.283149570226700120e-01 -8.372578024863999713e-02 2.673547267913800152e+00 3.052343130111700109e+00 4.417887210845900192e+00 +0.000000000000000000e+00 8.772428631782499542e-01 8.361183404922499784e-01 4.417938590049699799e-01 1.993032574653599953e+00 2.618650436401400050e+00 3.116520881652800057e+00 +0.000000000000000000e+00 -1.682872027158699990e-01 -6.661915183067299573e-01 -1.606910705566400033e+00 -2.106232881546000080e+00 -1.735441565513599960e+00 -3.478699922561600211e+00 +0.000000000000000000e+00 9.631543159484899919e-01 4.743085205554999906e-01 -6.351665258407600545e-01 1.688847661018400004e+00 2.330626010894799816e+00 2.699650287628200029e+00 +0.000000000000000000e+00 8.478403687477099604e-01 -6.614039093255999480e-02 -6.854405999183700304e-01 1.002485036850000011e+00 1.645644426345800104e+00 1.576637268066400033e+00 +0.000000000000000000e+00 7.012098431587200364e-01 2.509410977363599748e-01 -6.359702944755599718e-01 4.679332673549699839e-01 1.070287704467800083e+00 6.661530733108500524e-01 +0.000000000000000000e+00 -1.978891193866700038e-01 -3.057793974876399923e-01 -1.210311889648399974e+00 5.621727705001799968e-01 8.034529089927699985e-01 1.008851528167699962e+00 +0.000000000000000000e+00 1.804086118936500116e-01 7.808429747820000433e-02 -3.692759573459600264e-01 5.753592252731299928e-01 9.852237105369600068e-01 8.955183625221300181e-01 +0.000000000000000000e+00 7.929329574108000267e-02 -7.052427530288699620e-01 -2.802460193633999896e+00 -3.148279428482100073e+00 -2.679145097732499980e+00 -5.173850536346400020e+00 +0.000000000000000000e+00 -9.442991018295300298e-01 -1.565941452979999982e+00 -2.306544065475499838e+00 -2.586216688156099952e+00 -2.496250391006499925e+00 -4.099496364593499642e+00 +0.000000000000000000e+00 1.171890139579800039e+00 1.235125303268399977e+00 2.107931822538400002e-01 2.399017095565799895e+00 3.099492549896199822e+00 3.772778749465900194e+00 +0.000000000000000000e+00 -1.054657936096200066e+00 -1.107886791229200085e+00 -2.914455652236899841e+00 -3.870636224746700105e+00 -3.803428411483800176e+00 -6.238589286804200107e+00 +0.000000000000000000e+00 6.354494094848599506e-01 7.194892168044999536e-01 2.415757626295099991e-01 2.080003023147599883e+00 2.602836370468100124e+00 3.315822124481199840e+00 +0.000000000000000000e+00 1.410762369632700131e-01 1.081039831042300003e-01 -1.806361794471700088e+00 -2.279335975647000190e+00 -1.811920404434200105e+00 -3.828933715820300066e+00 +0.000000000000000000e+00 -5.744937062263499872e-01 -1.309535264968900048e+00 -2.001876592636099961e+00 -2.603693008422899968e+00 -2.364336252212499989e+00 -4.211493492126500371e+00 +0.000000000000000000e+00 4.129625111817999961e-02 1.651263609528999879e-02 -1.865766644477800051e+00 -2.314061403274500162e+00 -1.883536696433999902e+00 -3.866664171218900048e+00 +0.000000000000000000e+00 8.023045063018799938e-01 6.502778530120799649e-01 -5.105895996093799960e-01 2.082897663116499931e+00 2.640669822692899960e+00 3.342485904693599963e+00 +0.000000000000000000e+00 -1.050847694277800004e-01 -2.908941209316299736e-01 -4.288651347160299943e-01 1.433235287666299929e+00 1.698916077613799924e+00 2.383191823959399880e+00 +0.000000000000000000e+00 1.082457065582300038e+00 7.861142754554699685e-01 7.177129387856000242e-02 1.885036110878000049e+00 2.580233097076400028e+00 2.916184425353999909e+00 +0.000000000000000000e+00 1.358992606401399905e-01 -1.462882161140399984e-01 -1.936326503753700079e+00 -2.579483747482299805e+00 -2.099971294403100153e+00 -4.342051982879599592e+00 +0.000000000000000000e+00 -5.414112806320200422e-01 -9.798468351364100215e-01 -1.736340522766099959e+00 -1.073640227317800067e+00 -8.938077092170699789e-01 -1.680261254310599917e+00 +0.000000000000000000e+00 9.552987813949600504e-01 1.266835689544699939e+00 3.739533126354199766e-01 2.616245269775399951e+00 3.225096940994299999e+00 4.125163555145300087e+00 +0.000000000000000000e+00 -2.805092036724100013e-01 -4.232022166252100148e-01 -2.240503072738599943e+00 -2.553282499313399789e+00 -2.241113901138299891e+00 -4.208778858184800242e+00 +0.000000000000000000e+00 4.673065245151499791e-01 6.874390244483900014e-01 -7.652488946914699497e-01 2.672111093997999731e-01 7.660165429115299851e-01 3.163616061210600128e-01 +0.000000000000000000e+00 9.531516432762100477e-01 9.122896790504499975e-01 -7.434515655041000481e-02 2.220608711242700206e+00 2.840111255645799915e+00 3.508535861968999914e+00 +0.000000000000000000e+00 8.572627305984500401e-01 4.057162106037099925e-01 -2.825099825859099800e-01 1.612134695053099920e+00 2.229710102081300160e+00 2.527668237686199859e+00 +0.000000000000000000e+00 -8.425723761320000338e-02 -4.290743470191999975e-01 -8.620042204856900314e-01 2.217405289411500113e-01 5.382666587829599836e-01 3.656002879142800088e-01 +0.000000000000000000e+00 -8.706972599029499937e-01 -1.146980404853799929e+00 -1.761057376861600021e+00 -1.036891698837300035e+00 -9.831900000572200149e-01 -1.568757414817800067e+00 +0.000000000000000000e+00 4.646211266517599747e-01 -1.023327112197899985e-01 -1.329149365425100093e+00 3.738893568515799792e-01 8.691891431808500545e-01 5.841677784919699912e-01 +0.000000000000000000e+00 4.993018507957500129e-01 4.265505969524400198e-01 -1.114210247993500102e+00 -4.674727469683000181e-02 4.733096361160299970e-01 -1.785110682249100023e-01 +0.000000000000000000e+00 -7.799057960510300536e-01 -1.436788201332100057e+00 -2.482519149780300083e+00 -3.561517238616899839e+00 -3.376088142394999991e+00 -5.794403553009000341e+00 +0.000000000000000000e+00 -4.828350245952600095e-01 -4.619196951389299977e-01 -1.246465325355500031e+00 6.154919862747200154e-01 7.439371347427400361e-01 1.116876244545000008e+00 +0.000000000000000000e+00 -1.648542732000400080e-01 -8.405119180679300195e-01 -1.583942532539400094e+00 -1.226829767227199941e+00 -8.911091685295100540e-01 -2.005008935928299874e+00 +0.000000000000000000e+00 7.247629761695899564e-01 8.315113186836200487e-01 -1.032375246286399983e-01 1.189733743667600097e+00 1.768620848655700017e+00 1.789753556251499900e+00 +0.000000000000000000e+00 4.575029015541099975e-01 2.205437421798699948e-01 -1.161841392517100058e+00 -3.022095263004300203e-01 2.178042978048299882e-01 -5.938938856124900134e-01 +0.000000000000000000e+00 6.404452919959999768e-01 2.362684309482599998e-01 -9.997959733009299521e-01 6.335533857345599928e-01 1.188107013702399906e+00 9.601662158966099980e-01 +0.000000000000000000e+00 2.850351035594900218e-01 4.148049354553199897e-01 -8.175013065338100349e-01 3.265776857733999894e-02 4.774614274501799982e-01 -4.329470172523999794e-02 +0.000000000000000000e+00 -8.577294349670400164e-01 -1.657875299453700046e+00 -2.964694023132299794e+00 -4.798778057098400218e+00 -4.599225521087600299e+00 -7.835939884185799897e+00 +0.000000000000000000e+00 2.620657384395599920e-01 7.775719463824999622e-02 -6.623831987381000319e-01 -4.886939823627500235e-01 -1.221850886941000004e-02 -9.241779446601899872e-01 +0.000000000000000000e+00 1.430215984582899891e-01 3.897671401500700239e-01 -9.583145976066600458e-01 1.543536186218300021e-01 5.332636237144500191e-01 1.937371641397500066e-01 +0.000000000000000000e+00 6.701463460922200133e-01 4.647701084613800049e-01 -7.269690632820100529e-01 8.692796230316199857e-01 1.428282022476200064e+00 1.322884440422100072e+00 +0.000000000000000000e+00 1.695921868085900064e-01 2.957704067230200184e-01 -1.338699460029600052e+00 -1.011560678482100073e+00 -5.809450745582600550e-01 -1.753718495368999930e+00 +0.000000000000000000e+00 6.815557479858399548e-01 1.457162760198000076e-02 -4.887501895427699972e-01 1.240383386611900063e+00 1.810426712036099950e+00 1.952976465225199965e+00 +0.000000000000000000e+00 9.289795160293600196e-01 5.659887194633500540e-01 6.972475349902999830e-02 1.689711093902600103e+00 2.340705394744900136e+00 2.612964153289799807e+00 +0.000000000000000000e+00 3.230612874031100201e-01 3.831603229045900116e-01 -8.229327201843299466e-01 1.067078948020899976e+00 1.480093955993700083e+00 1.712348699569699928e+00 +0.000000000000000000e+00 5.597801208496100411e-01 4.694258272647899854e-01 -8.893268555402999986e-02 7.900778055191000071e-01 1.334743142128000049e+00 1.145902156829800012e+00 +0.000000000000000000e+00 -1.882679015397999978e-01 -1.020641803741499931e+00 -1.799014449119600068e+00 -1.412654995918299905e+00 -1.080441355705300088e+00 -2.290942907333399781e+00 +0.000000000000000000e+00 -1.260783523321200028e-01 -7.337180376052899744e-01 -2.096285104751599793e+00 -2.069839954376199831e+00 -1.703993916511499895e+00 -3.403159856796300176e+00 +0.000000000000000000e+00 5.288042426109299532e-01 2.172841578722000122e-01 -4.473138749599500086e-01 -5.669831037521400052e-01 2.149960771203000137e-02 -1.114046573638900028e+00 +0.000000000000000000e+00 8.325494527816800217e-01 8.381966352462799641e-01 4.696666002273600093e-01 2.060168266296400041e+00 2.663800716400099855e+00 3.206549644470200189e+00 +0.000000000000000000e+00 9.450718760489999759e-02 -2.818871140479999871e-01 -2.028412103652999843e+00 -1.607482075691200052e+00 -1.188113093376200080e+00 -2.670678377151499916e+00 +0.000000000000000000e+00 -3.278864920139299977e-01 -1.027254700660700015e+00 -1.917828679084800036e+00 -1.271951675414999983e+00 -1.005272865295399942e+00 -2.024663686752299796e+00 +0.000000000000000000e+00 4.193921685218799933e-01 3.274934589862800172e-01 -6.249819993972800525e-01 -2.628220021724699818e-01 2.584325373172799978e-01 -5.739543437957800309e-01 +0.000000000000000000e+00 4.862118959426899867e-01 3.283855691551999800e-02 -3.545441627502399773e-01 1.393692016601600026e+00 1.885098695754999998e+00 2.224206447601300152e+00 +0.000000000000000000e+00 1.872307658195500046e-01 9.063679724929999543e-03 -7.069368362426800001e-01 -5.147380232810999656e-01 -6.593071669340000440e-02 -9.524759054183999929e-01 +0.000000000000000000e+00 -1.976991072297000149e-02 -1.112773895263700075e+00 -2.693618297576899856e+00 -3.662410974502599892e+00 -3.193779945373500073e+00 -6.052973270416299734e+00 +0.000000000000000000e+00 -6.636105775833099907e-01 -1.556165695190399934e+00 -2.699984312057500002e+00 -3.774311780929600069e+00 -3.538545370101899845e+00 -6.145389556884800264e+00 +0.000000000000000000e+00 1.232511773705499969e-01 -7.142922282218899799e-01 -1.967285752296400014e+00 -1.175080299377400106e+00 -7.482915520667999809e-01 -1.923969268798799925e+00 +0.000000000000000000e+00 7.605633735656700534e-01 1.997467875480699873e-01 -1.304181694984400064e+00 5.641167759895300282e-01 1.157876253128099941e+00 8.559908270835899780e-01 +0.000000000000000000e+00 1.296872258186299920e+00 1.475056171417199913e+00 6.335762739181499681e-01 2.564000368118299900e+00 3.312527179717999815e+00 3.963592767715499843e+00 +0.000000000000000000e+00 8.298513293266299717e-01 6.622582077980000426e-01 3.044393658637999933e-01 2.960673809051499905e+00 3.520931482315099892e+00 4.760059356689500198e+00 +0.000000000000000000e+00 -6.197515726089499744e-01 -1.297966957092300033e+00 -1.905344367027300034e+00 -1.429819941520700022e+00 -1.260990262031600029e+00 -2.246695041656499914e+00 +0.000000000000000000e+00 -1.335443556308699986e-01 -6.980990767478899572e-01 -2.482783079147299787e+00 -3.014276981353800178e+00 -2.624500274658200016e+00 -4.975749969482399671e+00 +0.000000000000000000e+00 -6.148808822035999738e-02 -5.886601805686999533e-01 -2.005393743514999993e+00 -3.047024011611899841e+00 -2.612073421478299906e+00 -5.086432933807399692e+00 +0.000000000000000000e+00 4.750903248786900179e-01 -1.207848042249699966e-01 -9.790682196617099819e-01 2.741996049880999764e-01 7.901573777198800386e-01 3.572030067443799917e-01 +0.000000000000000000e+00 7.456224560737599871e-01 9.068285226821900524e-01 4.161309003829999908e-01 2.283725261688200003e+00 2.836369514465300057e+00 3.571340799331700122e+00 +0.000000000000000000e+00 -2.118432223796800074e-01 -3.973437845706899729e-01 -1.318809151649499967e+00 5.379348397254900549e-01 7.684882879257199928e-01 9.293044805526700092e-01 +0.000000000000000000e+00 1.180561304092399899e+00 1.148612022399899901e+00 9.583839774131999723e-02 2.365049600601199842e+00 3.063673496246300143e+00 3.674334764480600146e+00 +0.000000000000000000e+00 2.189979106187799895e-01 -3.705910220742000133e-02 -1.029746532440199980e+00 -1.596153974533099928e+00 -1.099181056022600078e+00 -2.791037559509299992e+00 +0.000000000000000000e+00 4.575276374817000002e-02 -4.437219798564899786e-01 -1.524044632911699892e+00 3.108048439025900000e-01 6.457784175872800514e-01 5.327068567275999866e-01 +0.000000000000000000e+00 -2.363248616456999907e-01 -3.632316291332199909e-01 -1.451440453529400099e+00 6.459485292434700154e-01 8.556445240974399624e-01 1.125655412673999933e+00 +0.000000000000000000e+00 9.015012532473000439e-02 -1.919444352388399999e-01 -1.722270369529699918e+00 -1.522526979446400031e+00 -1.101911187171900064e+00 -2.583377838134799820e+00 +0.000000000000000000e+00 -1.133457645773899986e-01 -7.830473780632000169e-01 -2.109928607940700029e+00 -1.003611445426900062e+00 -6.831471920013399979e-01 -1.615773916244499953e+00 +0.000000000000000000e+00 -2.809442766010999959e-02 -4.255907833576200172e-01 -1.951286315918000058e+00 -1.703798770904499937e+00 -1.322839498519899903e+00 -2.846603155136099961e+00 +0.000000000000000000e+00 -3.219667673111000217e-01 -7.375256419181800416e-01 -1.687515020370500052e+00 2.318187952041599886e-01 4.294183850288399995e-01 4.700523912906600099e-01 +0.000000000000000000e+00 2.134600281714999978e-02 -3.139410540462000271e-02 -1.423293948173500079e+00 -2.001914530992499885e-01 1.397161185741400136e-01 -3.611597120761900204e-01 +0.000000000000000000e+00 -7.771763205528300356e-01 -1.069867134094200090e+00 -2.019030809402500015e+00 -3.118003368377700202e+00 -2.947456598281899876e+00 -5.125231742858900041e+00 +0.000000000000000000e+00 4.336390197277100178e-01 -8.455618470907000361e-02 -1.781376719474800030e+00 -1.635850310325599910e+00 -1.081489801406900098e+00 -2.816634893417400143e+00 +0.000000000000000000e+00 1.992121636867499879e-01 -1.048984378576300058e-01 -2.109807491302500004e+00 -2.488613367080700023e+00 -1.999181032180799900e+00 -4.208908081054699934e+00 +0.000000000000000000e+00 5.456798076629599814e-01 -4.366132616996800109e-01 -1.475932359695399931e+00 -1.223263978958099907e+00 -6.208441257476799979e-01 -2.138414859771700094e+00 +0.000000000000000000e+00 9.451824426650999866e-01 1.090011239051799974e+00 5.349405407905599708e-01 2.353175878524799813e+00 2.979602098465000015e+00 3.646802186965900194e+00 +0.000000000000000000e+00 1.310075283050500028e+00 1.438024163246200082e+00 1.204650759696999973e+00 3.484207868576000067e+00 4.217049121856700111e+00 5.451552391052199908e+00 +0.000000000000000000e+00 -1.263170242309600066e+00 -1.552779912948599961e+00 -3.114224910736099972e+00 -3.115726232528699846e+00 -3.163544416427599870e+00 -4.946179866790799906e+00 +0.000000000000000000e+00 2.620061635971099867e-01 -5.908602476119999558e-01 -1.510239601135300092e+00 -1.203102350235000007e+00 -7.090086340904200313e-01 -2.060284852981599801e+00 +0.000000000000000000e+00 -8.261392712593099708e-01 -1.539615750312800069e+00 -2.150875568389900128e+00 -2.621421813964799785e+00 -2.483257770538299880e+00 -4.241768836975100321e+00 +0.000000000000000000e+00 -1.870037466287599870e-01 -1.003021359443700078e+00 -1.777561426162699965e+00 -1.359366536140399928e+00 -1.031281828880300067e+00 -2.230072498321499896e+00 +0.000000000000000000e+00 -2.549570202827500243e-01 -4.721180200576799990e-01 -1.311919450759899908e+00 -1.761099457740799901e+00 -1.439358353614800023e+00 -2.970257759094200090e+00 +0.000000000000000000e+00 9.297971129417399450e-01 5.576634407043500330e-01 -5.671649575233500551e-01 7.779932022094699917e-01 1.443622827529899899e+00 1.091890692710900002e+00 +0.000000000000000000e+00 -3.247173130512199801e-01 -5.104479193687400107e-01 -1.890254974365199958e+00 -1.597112894058200006e+00 -1.331905722618099919e+00 -2.631410598754900132e+00 +0.000000000000000000e+00 -7.132649421690000213e-03 -1.262450367212299973e-01 -7.681713104248000246e-01 -4.996904134750400073e-01 -1.282048523426100040e-01 -9.190430045127899739e-01 +0.000000000000000000e+00 7.113954424858099923e-01 8.884760141372699538e-01 8.482217788696300165e-01 3.275855541229200085e+00 3.787351608276400050e+00 5.225168704986599799e+00 +0.000000000000000000e+00 6.214533373712999992e-02 -4.608412086963700194e-01 -1.857479214668299905e+00 -1.857807993888900056e+00 -1.429682731628399983e+00 -3.125505447387700197e+00 +0.000000000000000000e+00 7.208268642425500472e-01 1.555806249380100037e-01 -3.324618637561799761e-01 1.406020998954800039e+00 1.983114600181600018e+00 2.182796001434299971e+00 +0.000000000000000000e+00 -6.176067888737000328e-02 -8.053210973739599599e-01 -2.090307950973500084e+00 -3.308247327804600069e+00 -2.860465526580799889e+00 -5.539657592773400197e+00 +0.000000000000000000e+00 1.284780263900799913e+00 1.612381577491800000e+00 6.245941519737200354e-01 2.813601255416899871e+00 3.538808107376099965e+00 4.356681823730499836e+00 +0.000000000000000000e+00 2.568488419055899863e-01 -3.911720588802999887e-02 -1.813065171241800000e+00 -1.411568522453299890e+00 -9.392833709716800206e-01 -2.413900136947599862e+00 +0.000000000000000000e+00 3.654166758060499731e-01 3.341171145439100210e-01 -1.501671820879000030e-01 8.051254153251600210e-01 1.272469043731699889e+00 1.179334998130799894e+00 +0.000000000000000000e+00 6.669937968254100458e-01 -4.995135590434000156e-02 -8.085525631904599830e-01 1.698664277791999966e-01 7.701632976532000185e-01 1.390364319086100087e-01 +0.000000000000000000e+00 7.867835164070100529e-01 5.474418997764599615e-01 -6.292392313479999721e-02 1.853213906288099899e+00 2.433969020843500086e+00 2.893199682235700010e+00 +0.000000000000000000e+00 8.853182792663599754e-01 5.534978508949299769e-01 -5.471618175506599568e-01 8.035768270492600340e-01 1.451571583747899963e+00 1.139108061790500059e+00 +0.000000000000000000e+00 -2.877591252326999749e-01 -1.138459801673900040e+00 -2.574011564254799822e+00 -3.474512815475499838e+00 -3.116176843643200023e+00 -5.737868309020999646e+00 +0.000000000000000000e+00 -5.130196213722200138e-01 -1.012325882911699892e+00 -2.286037206649799813e+00 -3.180045843124399862e+00 -2.915800333023100155e+00 -5.241582870483400214e+00 +0.000000000000000000e+00 -1.020061254501299919e+00 -1.493307828903200019e+00 -2.853730678558299871e+00 -4.416490554809599622e+00 -4.301166057586700120e+00 -7.211203575134300436e+00 +0.000000000000000000e+00 -1.027712345123299897e+00 -1.760796070098900046e+00 -2.942417860031099952e+00 -3.668311834335300059e+00 -3.585399866104100219e+00 -5.918304920196500341e+00 +0.000000000000000000e+00 6.431310176849399651e-01 2.853422239423000079e-02 -1.131380319595300055e+00 -7.154082655906699451e-01 -9.912314265966000459e-02 -1.338593125343300105e+00 +0.000000000000000000e+00 2.499737590551399935e-01 2.150825709104499939e-01 -6.713652610778799712e-01 -2.390930354595199869e-01 2.140624821186100091e-01 -5.310887694358800148e-01 +0.000000000000000000e+00 -2.529067099094399751e-01 -8.790048956871000518e-01 -2.834262371063200003e+00 -3.048147439956700122e+00 -2.714217185974100222e+00 -5.007068634033199572e+00 +0.000000000000000000e+00 5.041379854083000156e-02 3.189988061785999779e-02 -7.901749610900900000e-01 -3.085438013076799990e-01 7.082992792129999549e-02 -6.065499782562300268e-01 +0.000000000000000000e+00 6.471180319786099533e-01 8.955978751182599451e-01 -6.037153005600000011e-01 4.124788939952899747e-01 9.723034501075700220e-01 4.912842214107500105e-01 +0.000000000000000000e+00 -1.175029516220100101e+00 -1.804126381874100016e+00 -2.477707862853999909e+00 -2.627246618270899781e+00 -2.629853963851899845e+00 -4.169551849365199736e+00 +0.000000000000000000e+00 -2.248991280794100101e-01 -7.340793013572699532e-01 -1.604833126068099913e+00 -9.792174100875900011e-01 -6.849720478057900186e-01 -1.607128500938399984e+00 +0.000000000000000000e+00 -4.098831117153199921e-01 -1.325996518135100111e+00 -2.306458234787000183e+00 -2.612094402313200003e+00 -2.324531316757199928e+00 -4.271854877471899847e+00 +0.000000000000000000e+00 -6.056284904480000453e-01 -1.240271329879800044e+00 -3.148098945617700206e+00 -4.308617115020799915e+00 -4.055870532989500177e+00 -7.063431739807099596e+00 +0.000000000000000000e+00 3.301210105419200014e-01 -3.514087200164799918e-01 -1.435164570808399986e+00 -9.280784130096400020e-01 -4.245135486125899971e-01 -1.618727564811700104e+00 +0.000000000000000000e+00 -4.242732822895100009e-01 -1.121188998222399924e+00 -2.664309024810799897e+00 -3.309170722961400024e+00 -3.015904664993299900e+00 -5.433676719665499810e+00 +0.000000000000000000e+00 7.883598804473900268e-01 1.012381911277800084e+00 1.458993554115300129e-01 2.513610601425200208e+00 3.055902719497700204e+00 3.948538541793800150e+00 +0.000000000000000000e+00 6.881959438324000145e-01 6.728672981262200370e-01 -6.635248064994799799e-01 1.212060332298299903e+00 1.753425478935199955e+00 1.834300279617300022e+00 +0.000000000000000000e+00 2.773982584476499813e-01 9.593745321034999329e-02 -8.381847739219699944e-01 -3.567753732204400063e-01 1.071423143148400037e-01 -7.411465644836400246e-01 +0.000000000000000000e+00 4.867872595787000045e-01 1.322801560163499868e-01 -7.213388085365299851e-01 -5.116302371025099882e-01 4.473193362354999786e-02 -1.040977716445899981e+00 +0.000000000000000000e+00 1.222700357437100038e+00 1.142672181129499975e+00 6.418399512767999915e-02 2.364151716232299805e+00 3.075741767883299893e+00 3.643976449966400022e+00 +0.000000000000000000e+00 1.148208737373400012e+00 1.076620221138000044e+00 2.278438583016000052e-02 2.340832710266099959e+00 3.024806022643999892e+00 3.619871616363500078e+00 +0.000000000000000000e+00 -8.650190383196000588e-02 -5.428524017333999918e-01 -2.123231887817400132e+00 -2.856723308563200003e+00 -2.451346635818500097e+00 -4.805716991424599627e+00 +0.000000000000000000e+00 8.753433823585500262e-01 5.380969047546400041e-01 -7.509848475456200045e-01 8.806822299957299816e-01 1.511160492896999941e+00 1.262848258018500092e+00 +0.000000000000000000e+00 9.846060276031499692e-01 1.156237721443200028e+00 1.604248583316799925e-01 1.445543885231000081e+00 2.109578371047999834e+00 2.101868152618400210e+00 +0.000000000000000000e+00 -2.920703887939499754e-01 -9.947196245193500319e-01 -2.389485359191899860e+00 -3.276176691055300072e+00 -2.928291320800799902e+00 -5.449883460998499629e+00 +0.000000000000000000e+00 -1.210113689303399936e-01 -5.099324584007299821e-01 -1.815771579742400110e+00 -1.753816962242100042e+00 -1.401334881782499986e+00 -2.955213069915799906e+00 +0.000000000000000000e+00 -7.677108049392999956e-02 -1.470645815133999890e-01 -7.551497817039499738e-01 -4.412360787391699790e-01 -1.009586527943600043e-01 -8.384469151496900530e-01 +0.000000000000000000e+00 9.753239750862100488e-01 1.160783052444499974e+00 6.073669195175199764e-01 2.446355581283599978e+00 3.078464508056600213e+00 3.765128850936899862e+00 +0.000000000000000000e+00 9.484033584594699917e-01 1.452035069465599904e+00 4.225463867187500000e-01 2.950344800949099788e+00 3.532336235046400041e+00 4.627146720886200271e+00 +0.000000000000000000e+00 2.976654171943700078e-01 -1.482896357774700080e-01 -1.538950800895700022e+00 -5.377805829048200037e-01 -7.777629792689999544e-02 -9.789969325065599470e-01 +0.000000000000000000e+00 2.401398718357100059e-01 3.440003395080600268e-01 -3.898798227310200093e-01 2.137846469879200129e+00 2.482810258865399966e+00 3.452777147293100146e+00 +0.000000000000000000e+00 -1.759904250502999923e-02 -1.058142557740199968e-01 -1.172389388084400075e+00 -1.424685120582600106e+00 -1.034036636352499983e+00 -2.482842206955000020e+00 +0.000000000000000000e+00 -3.479148447513599751e-01 -6.327299475669899698e-01 -1.708985090255700001e+00 -2.885922193527199919e+00 -2.562129020690900205e+00 -4.855982780456500336e+00 +0.000000000000000000e+00 7.190389037132299821e-01 3.583462536334999782e-01 -3.206380009651200180e-01 6.261840462684600261e-01 1.229958057403599980e+00 8.200584650039699497e-01 +0.000000000000000000e+00 -2.790481150150300182e-01 -5.201641917228699841e-01 -1.113205313682599895e+00 -7.215488553047200160e-01 -4.499738514423399782e-01 -1.242292523384100011e+00 +0.000000000000000000e+00 4.693017601966900099e-01 1.667709052562700023e-01 -6.676690578460700021e-01 -4.611085057258599851e-01 8.714822679757999735e-02 -9.593130946159400541e-01 +0.000000000000000000e+00 1.075819849968000064e+00 9.198544025421100390e-01 2.447720468044299880e-01 2.108166694641099959e+00 2.788246631622299798e+00 3.221195459365799874e+00 +0.000000000000000000e+00 1.630467921495399874e-01 2.837144434452100183e-01 -7.249010205268899831e-01 -1.553612574935000004e-02 3.866312503814700041e-01 -1.662975400686300120e-01 +0.000000000000000000e+00 9.144532084465000210e-01 5.234673023223900268e-01 -1.660651266574899865e-01 1.773949265479999982e+00 2.402427196502700202e+00 2.726553916931199861e+00 +0.000000000000000000e+00 7.517924904823299892e-01 2.326922118663800054e-01 -2.524659335613300137e-01 1.505741000175500055e+00 2.088640689849900145e+00 2.311186313629200129e+00 +0.000000000000000000e+00 1.284697055816700073e-01 4.626172780990600031e-01 -8.580154776573200026e-01 3.146690130233800176e-01 6.772764325141900077e-01 4.020926654338800033e-01 +0.000000000000000000e+00 -2.720039524138000153e-02 -2.589063346386000219e-01 -8.688235282897900369e-01 4.955118894577000277e-01 8.112162351608299682e-01 7.629786133766199852e-01 +0.000000000000000000e+00 4.231841564178500104e-01 2.932313084602399811e-01 -1.787063181400299905e-01 1.850183486938500099e+00 2.289863348007199928e+00 2.926294565200799891e+00 +0.000000000000000000e+00 9.303394556045500030e-01 5.922411084175099871e-01 1.018986776471099975e-01 1.787015080451999971e+00 2.429576396942100036e+00 2.720436811447100034e+00 +0.000000000000000000e+00 1.205309201031999969e-02 -5.399105548858600390e-01 -1.683317780494699933e+00 -8.353209495544400287e-01 -4.667427241802200033e-01 -1.419870734214800034e+00 +0.000000000000000000e+00 -8.237724006176000424e-02 -6.663007140159600272e-01 -2.225786685943599963e+00 -1.902068018913299907e+00 -1.539044141769400076e+00 -3.168885469436600211e+00 +0.000000000000000000e+00 1.848907470703100020e-01 -1.312278658151599942e-01 -1.699314951896699899e+00 -1.484541773796099973e+00 -1.032108187675500055e+00 -2.561757087707499991e+00 +0.000000000000000000e+00 5.768473744392399460e-01 2.923263013362900065e-01 -2.672056853771199725e-01 1.744666695594800032e+00 2.245767354965200191e+00 2.736454010009799820e+00 +0.000000000000000000e+00 1.481948494911200065e+00 1.407419085502600087e+00 4.985806345939600148e-01 3.526929378509500168e+00 4.295461177825900201e+00 5.539498805999800268e+00 +0.000000000000000000e+00 2.908582240342999850e-02 -3.917691409587900075e-01 -2.376981258392299790e+00 -2.659800529480000009e+00 -2.233087062835700021e+00 -4.469890594482399671e+00 +0.000000000000000000e+00 1.000268936157199917e+00 1.183680891990700035e+00 6.222181320190399711e-01 2.455036878585799887e+00 3.096368551254299994e+00 3.774561405181899865e+00 +0.000000000000000000e+00 -5.993096828460700021e-01 -9.024512171745300293e-01 -1.605637311935399936e+00 -8.787546753883399564e-01 -7.326901555061300364e-01 -1.410860657691999975e+00 +0.000000000000000000e+00 5.476267337799100021e-01 4.589929282665299870e-01 -2.290809303522099993e-01 2.004366159439099793e+00 2.478413343429600069e+00 3.170133590698199999e+00 +0.000000000000000000e+00 -1.936096348799999948e-03 -7.837106287478999567e-02 -7.105961441993700056e-01 -4.151920378208199813e-01 -4.724644497036999818e-02 -8.101489543914800473e-01 +0.000000000000000000e+00 1.933001726865800074e-01 4.576778411864999840e-02 -3.617777228355399943e-01 1.729359984397899952e+00 2.085229635238599943e+00 2.775710344314600064e+00 +0.000000000000000000e+00 3.807367384433700264e-01 1.752932667732199912e-01 -5.502113699913000477e-01 7.043923139572100256e-01 1.168980956077600109e+00 1.021579384803799950e+00 +0.000000000000000000e+00 -2.478881627321199987e-01 -4.944733679294600059e-01 -2.349747419357299805e+00 -2.586466550827000166e+00 -2.267075538635300092e+00 -4.309942722320600161e+00 +0.000000000000000000e+00 4.993934631347700104e-01 1.039873957633999924e+00 1.552246659994100109e-01 2.794080495834399880e+00 3.210062980651899878e+00 4.457359313964800229e+00 +0.000000000000000000e+00 9.158019423484800026e-01 1.316787958145100079e+00 4.594012200832400250e-01 2.767879486083999918e+00 3.351205587387100060e+00 4.324086189269999991e+00 +0.000000000000000000e+00 -7.805309295654300206e-01 -9.532249569892899954e-01 -2.136388540267899927e+00 -6.529030799865700452e-01 -6.074993610382100062e-01 -9.571921825408900020e-01 +0.000000000000000000e+00 6.976904273033099901e-01 2.475492358207700139e-01 -6.387767195701600231e-01 5.697664022445699805e-01 1.158638715743999903e+00 7.594690918922399891e-01 +0.000000000000000000e+00 8.800765872001600210e-01 7.660352587699900129e-01 1.610219329595599935e-01 2.069007873535200215e+00 2.675877571106000108e+00 3.192345142364500177e+00 +0.000000000000000000e+00 -2.614008486270900100e-01 -1.265807867050199986e+00 -2.750625133514399856e+00 -3.600657463073699827e+00 -3.231719017028800156e+00 -5.960947036743199590e+00 +0.000000000000000000e+00 8.227604031562799625e-01 8.234429359435999629e-01 -3.030046224594100113e-01 2.331759214401199820e+00 2.883958816528299884e+00 3.683164119720499841e+00 +0.000000000000000000e+00 1.012929752469099998e-01 1.604785025119800090e-01 -7.897371649742099819e-01 9.841596484184299554e-01 1.317647576332100057e+00 1.551615357398999917e+00 +0.000000000000000000e+00 7.447224855423000001e-02 -6.597946286201500365e-01 -1.434895753860500056e+00 -2.263456210494000156e-02 3.467032909393300000e-01 -6.178580224513999936e-02 +0.000000000000000000e+00 -2.184188067913100106e-01 -3.073669970035600163e-01 -1.883168101310700004e+00 -1.354379653930700034e+00 -1.067327618598900019e+00 -2.268516778945900203e+00 +0.000000000000000000e+00 6.025739908218400442e-01 1.693261116743099981e-01 -1.309584140777600103e+00 -3.894082009792300125e-01 1.821028590202299902e-01 -7.977992296218899826e-01 +0.000000000000000000e+00 8.003590106964100226e-01 1.197753429412800052e+00 -6.179687380790999801e-02 1.723660945892300012e+00 2.292798995971700116e+00 2.613662481307999830e+00 +0.000000000000000000e+00 9.829804301261899635e-01 1.273132324218799960e+00 5.556609034538300129e-01 2.620139598846400020e+00 3.241691112518299889e+00 4.058756351470900192e+00 +0.000000000000000000e+00 2.485850453376799996e-01 -5.172057151794400287e-01 -1.409394621849100027e+00 -1.077067852020300087e+00 -5.947890877723700509e-01 -1.883552432060199955e+00 +0.000000000000000000e+00 -2.231779992580399941e-01 -9.354017376899700364e-01 -1.671433448791499909e+00 -1.224617362022399902e+00 -9.172419905662499984e-01 -2.036005020141599786e+00 +0.000000000000000000e+00 9.534668177365999975e-02 -1.440704613924000121e-01 -1.664695143699600033e+00 -1.438028573989899916e+00 -1.020952701568599963e+00 -2.474483728408800154e+00 +0.000000000000000000e+00 -1.213223114609700004e-01 -4.588794410228699827e-01 -1.940664291381799966e+00 -1.643267273902899950e+00 -1.302535891532899948e+00 -2.758885383606000108e+00 +0.000000000000000000e+00 3.664675652980800002e-01 3.639294207096099854e-01 -5.682882666588000287e-02 1.967938303947400103e+00 2.382663965225200187e+00 3.119263410568200001e+00 +0.000000000000000000e+00 4.499297142028800267e-01 1.609678864479099913e-01 -3.616032898426099762e-01 1.683857321739200108e+00 2.138516187667800050e+00 2.662513017654399849e+00 +0.000000000000000000e+00 3.662305697799000254e-02 -4.268401563167599777e-01 -1.989828705787699992e+00 -1.714798212051400039e+00 -1.312004566192600086e+00 -2.896430969238299902e+00 +0.000000000000000000e+00 -2.610912919044500180e-01 -8.185088038444500169e-01 -2.563279151916499909e+00 -2.993570089340200191e+00 -2.658966302871700105e+00 -4.966510772705100329e+00 +0.000000000000000000e+00 1.504653841257100055e-01 -8.382828533649000491e-02 -1.317237854003900033e+00 7.302492856979400093e-01 1.081343770027199946e+00 1.171436309814499976e+00 +0.000000000000000000e+00 9.975835680961600005e-01 3.939091265201600245e-01 5.831771343946000330e-02 2.561715126037599877e+00 3.199541091918900015e+00 4.042367458343499642e+00 +0.000000000000000000e+00 8.890597820282000185e-01 7.420887947082499547e-01 5.614569187164299979e-01 3.025486707687400134e+00 3.608652830123900035e+00 4.783463954925499806e+00 +0.000000000000000000e+00 -2.609238922595999988e-01 -8.877681493759199682e-01 -1.589583039283799959e+00 -1.145596742629999998e+00 -8.548479676246599768e-01 -1.906562924385100111e+00 +0.000000000000000000e+00 1.477338820695900112e-01 5.901595577597999742e-02 -6.214889287948599517e-01 -3.631039559841199860e-01 6.017797067761000013e-02 -7.535530328750600360e-01 +0.000000000000000000e+00 2.615512013435399852e-01 2.949450910091400146e-01 2.949452102184300095e-01 1.855710148811299920e+00 2.250697374343900048e+00 2.913759231567400132e+00 +0.000000000000000000e+00 -1.471882611513100070e-01 -7.647664546966600474e-01 -1.934189796447800092e+00 -2.074590682983400214e+00 -1.714325308799699910e+00 -3.475017547607400115e+00 +0.000000000000000000e+00 3.781650960445400167e-01 1.329981237649900117e-01 -1.228075027465800106e+00 -2.774802148342099817e-01 2.055543512105899862e-01 -5.863170623779300206e-01 +0.000000000000000000e+00 2.509493827819799794e-01 -4.026592150331000097e-02 -1.129329681396499918e+00 6.575446128845200411e-01 1.057339549064600037e+00 1.017639636993399987e+00 +0.000000000000000000e+00 2.825647890567800080e-01 -2.023413330316500003e-01 -1.219301104545599923e+00 -6.943657994270300282e-01 -2.187015265226399940e-01 -1.268456935882599890e+00 +0.000000000000000000e+00 1.659786701202400072e-01 -1.077121794223799972e-01 -1.658749222755399932e+00 -1.445342183113099921e+00 -1.001227617263799941e+00 -2.497514009475700014e+00 +0.000000000000000000e+00 4.263334274291999959e-01 1.259358525276199903e-01 -1.018306493759199904e+00 7.244180440902699969e-01 1.188887238502499999e+00 1.093060612678500076e+00 +0.000000000000000000e+00 2.090658843517300136e-01 -1.709676533937500020e-01 -6.455327868461600005e-01 1.475891113281299960e+00 1.845095038413999911e+00 2.377839803695700027e+00 +0.000000000000000000e+00 1.372468352317800067e+00 1.841298341751099965e+00 6.750169396400500510e-01 3.097927570342999815e+00 3.836705446243299900e+00 4.787501811981200284e+00 +0.000000000000000000e+00 -2.587838768958999891e-01 -5.954003334045400164e-01 -1.599710702896099956e+00 -7.132796645164499738e-01 -4.511048495769500177e-01 -1.184975862503099941e+00 +0.000000000000000000e+00 5.828751921653699819e-01 1.777587458490999944e-02 -1.490532398223900046e+00 -5.457500815391499449e-01 2.281046286225000067e-02 -1.038366556167600097e+00 +0.000000000000000000e+00 1.133108139038099926e+00 1.129458546638500094e+00 9.836073964833999539e-02 2.410282135009799820e+00 3.086507320404099808e+00 3.730660676956199850e+00 +0.000000000000000000e+00 7.868575453758199778e-01 5.559062957763699631e-01 -5.240310728550000297e-02 1.897056698799099994e+00 2.473504543304399839e+00 2.939535856246899836e+00 +0.000000000000000000e+00 5.228714644909000092e-02 -5.062785744667099852e-01 -1.283952116966200041e+00 -9.313310980796799532e-01 -5.278319120407100051e-01 -1.623973488807699983e+00 +0.000000000000000000e+00 7.737572789192199707e-01 5.481788516044600046e-01 -4.906561076641099972e-01 9.079027175903300328e-01 1.507437229156499914e+00 1.298139095306400037e+00 +0.000000000000000000e+00 -2.058949768543200110e-01 -2.506289482116699774e-01 -1.572246313095100101e+00 -2.567830085754400082e-01 -4.608089569960000312e-03 -4.340343177318600199e-01 +0.000000000000000000e+00 1.833678930997799938e-01 -2.756142020225499922e-01 -1.199505448341400049e+00 3.867536783218399887e-01 7.771573066711400246e-01 5.825957655906699451e-01 +0.000000000000000000e+00 -1.102441474795299997e-01 -5.564969778060899763e-01 -2.127034902572599862e+00 -2.855859041213999916e+00 -2.459524631500200176e+00 -4.800461292266800406e+00 +0.000000000000000000e+00 3.063416779041300275e-01 2.393849939107899893e-01 -1.805558353662500004e-01 1.869336962699899907e+00 2.264084100723299908e+00 2.975394248962400123e+00 +0.000000000000000000e+00 -5.628359317779999677e-02 -1.003527641296400041e+00 -1.852681875228900044e+00 -1.414420843124400085e+00 -1.038156509399400074e+00 -2.359465122222899947e+00 +0.000000000000000000e+00 2.700227797031399812e-01 -3.522770106792499911e-01 -1.212472558021499891e+00 -9.069245457649199871e-01 -4.214347302913700188e-01 -1.621748447418200012e+00 +0.000000000000000000e+00 8.306793570518500314e-01 3.325586318969699917e-01 -1.706923991441700039e-01 1.563943505287199942e+00 2.175118446350099877e+00 2.388967514038100148e+00 +0.000000000000000000e+00 1.237056329846400043e-01 -1.345203369855899889e-01 -1.422603368759199904e+00 -4.040522873401600212e-01 -1.399529539048999932e-02 -7.418211698532100051e-01 +0.000000000000000000e+00 -9.689153730869000392e-02 -1.053868651390100109e+00 -2.329326391220099879e+00 -2.432595252990700008e+00 -2.042850732803299874e+00 -4.041591167450000022e+00 +0.000000000000000000e+00 2.997898161411299833e-01 -2.024931460618999979e-01 -5.472782254219099585e-01 1.325724482536299931e+00 1.742166996002199930e+00 2.104850530624399862e+00 +0.000000000000000000e+00 3.575029075145699786e-01 -1.862995475530599965e-01 -1.051763653755199979e+00 -7.805206775665299856e-01 -2.654687166213999805e-01 -1.439024329185500051e+00 +0.000000000000000000e+00 1.056085228920000008e+00 1.097378134727500010e+00 -8.832648396492000231e-02 2.479891300201400028e+00 3.116416454315200202e+00 3.875768899917599875e+00 +0.000000000000000000e+00 -2.715850770473500209e-01 -9.301761984825099860e-01 -1.883395075798000029e+00 -2.228410482406599780e+00 -1.902505397796599995e+00 -3.718298196792599875e+00 +0.000000000000000000e+00 8.728269338607800298e-01 8.792747259140000216e-01 3.087162673473399788e-01 2.200768232345600151e+00 2.801065683364900138e+00 3.399013757705700023e+00 +0.000000000000000000e+00 1.856986805797000012e-02 -4.276514351367999844e-01 -1.165095925331099957e+00 -8.203370571136500145e-01 -4.328608810901600212e-01 -1.445332884788500083e+00 +0.000000000000000000e+00 -7.227986454963699625e-01 -1.029941439628599964e+00 -2.322780370712299813e+00 -1.873813629150399951e+00 -1.754846453666699890e+00 -3.019419670105000009e+00 +0.000000000000000000e+00 -2.527359127998399790e-01 -7.007823586463900467e-01 -2.608564853668200012e+00 -2.814238786697400130e+00 -2.490087747573900057e+00 -4.664347648620600140e+00 +0.000000000000000000e+00 -9.428207278251600210e-01 -1.229981780052199936e+00 -3.133507490158100151e+00 -3.945791244506799966e+00 -3.846187353134200126e+00 -6.462288856506299695e+00 +0.000000000000000000e+00 1.197087168693500070e+00 1.175973653793300100e+00 -6.900075823069000414e-02 2.506439924240099870e+00 3.192684650421099946e+00 3.871940612792999836e+00 +0.000000000000000000e+00 1.433665305376100041e-01 -1.497931778430999956e-02 -1.036281466484100022e+00 7.934437394142199729e-01 1.145374298095700016e+00 1.225253224372899963e+00 +0.000000000000000000e+00 -7.421575188636799769e-01 -1.108858823776200042e+00 -2.032405376434299971e+00 -2.020940065383900031e+00 -1.891268968582199950e+00 -3.315450906753500071e+00 +0.000000000000000000e+00 4.113961756229400080e-01 5.852532014251000253e-02 -1.341556549072300042e+00 -3.490778207778900133e-01 1.455886662006400101e-01 -7.254630327224700359e-01 +0.000000000000000000e+00 1.033020019531299960e-01 -2.835983633995100006e-01 -1.600185275077800062e+00 -5.227329730987499978e-01 -1.400504410266900090e-01 -9.455640316009500390e-01 +0.000000000000000000e+00 2.696775794029199758e-01 1.342227607965499891e-01 -2.932147979736299814e-01 1.810901045799300002e+00 2.190351724624600038e+00 2.868277072906499914e+00 +0.000000000000000000e+00 1.093466281890900005e+00 1.170400738716099953e+00 1.726363599300400065e-01 2.517510414123500073e+00 3.172506809234600045e+00 3.882381200790399944e+00 +0.000000000000000000e+00 7.340004444122300020e-01 7.710823416709899902e-01 -1.293051391839999953e-01 2.314733028411899873e+00 2.839078187942499998e+00 3.625320196151700092e+00 +0.000000000000000000e+00 6.126465201377899739e-01 2.547127902507799746e-01 -1.207219481468200017e+00 -2.662110924720800242e-01 3.024903535842899949e-01 -6.293584108352699991e-01 +0.000000000000000000e+00 4.095778763294199987e-01 2.498929947614700053e-01 -4.158860445022600216e-01 1.898468255996700105e+00 2.320087671279900121e+00 3.005687475204500192e+00 +0.000000000000000000e+00 -4.532982707023600066e-01 -6.388128399848900241e-01 -1.980249404907199917e+00 -1.584612607955899977e+00 -1.374733209610000007e+00 -2.634799718856799977e+00 +0.000000000000000000e+00 2.853118479251899875e-01 3.337283730506899748e-01 -5.413637757301299480e-01 -6.141494587064000310e-02 3.938833773136100058e-01 -3.038679659366599894e-01 +0.000000000000000000e+00 1.043715715408300104e+00 6.807604432106000303e-01 -4.028738662601000220e-02 1.896624088287399923e+00 2.567576885223400218e+00 2.874563455581700122e+00 +0.000000000000000000e+00 -3.091232776641800184e-01 -7.040364742279100474e-01 -1.575508594512899929e+00 -1.915188670158399997e+00 -1.615683794021600006e+00 -3.245684862136799964e+00 +0.000000000000000000e+00 6.511214971542399477e-01 5.111027956008900031e-01 -6.579167842865000226e-01 1.037349939346299932e+00 1.575061440467800056e+00 1.522046804428099920e+00 +0.000000000000000000e+00 1.200902700424200109e+00 1.374341368675199959e+00 1.803351491689700048e-01 2.726019859313999927e+00 3.407349824905399949e+00 4.213739871978799734e+00 +0.000000000000000000e+00 4.583012461662300252e-01 6.109077930450399485e-01 -4.216928407550000341e-02 1.173950076103200013e+00 1.651324629783599951e+00 1.719048976898200021e+00 +0.000000000000000000e+00 5.999647378921499907e-01 8.332009315490700452e-01 -4.665613472461699884e-01 3.903290331363700183e-01 9.351854920387300263e-01 3.965793251991299728e-01 +0.000000000000000000e+00 5.060687288641999709e-02 -3.819097578525499914e-01 -8.793775439262400129e-01 2.860858440399199898e-01 6.427757143974299758e-01 3.776794075965900221e-01 +0.000000000000000000e+00 5.658870339393600180e-01 8.649836480618000589e-02 -7.682120800018300555e-01 5.134366154670699789e-01 1.050816774368299900e+00 6.712950468063400011e-01 +0.000000000000000000e+00 2.361539006233200066e-01 2.452739775180799997e-01 -9.488578438758900058e-01 1.074986696243299900e+00 1.445570349693299894e+00 1.672915935516400054e+00 +0.000000000000000000e+00 -4.284609258174900126e-01 -5.321095585823100160e-01 -8.537854552268999697e-01 -6.520604491233800148e-01 -4.338838458061199943e-01 -1.155237674713099905e+00 +0.000000000000000000e+00 3.345870077609999771e-01 2.730579972267199729e-01 -7.797888517379799600e-01 9.860047698020899531e-01 1.404981732368500102e+00 1.494073033332800060e+00 +0.000000000000000000e+00 -4.861340671778000000e-02 -5.280486941337599882e-01 -2.315967798232999808e+00 -2.778339385986300147e+00 -2.372337102889999993e+00 -4.687860012054399839e+00 +0.000000000000000000e+00 -3.945839107036600013e-01 -3.165017664432500100e-01 -1.851081728935199955e+00 -2.306116104126000099e+00 -2.045202970504799822e+00 -3.894503355026199820e+00 +0.000000000000000000e+00 -1.209810003638299991e-01 -9.467213749885600160e-01 -1.990154027938799919e+00 -2.314951181411700087e+00 -1.932401895523099933e+00 -3.900065422058100140e+00 +0.000000000000000000e+00 3.290401697158800154e-01 -9.896495193243000366e-02 -6.789188981056200056e-01 4.136315584182699845e-01 8.723762631416299707e-01 5.307561159133900031e-01 +0.000000000000000000e+00 -8.126993179321300165e-01 -1.237580776214600053e+00 -1.719605326652499988e+00 -1.127728223800700036e+00 -1.050131201744100018e+00 -1.809905886650100104e+00 +0.000000000000000000e+00 3.126544058322899833e-01 -9.562605619430999959e-02 -4.192663431167599764e-01 1.471081137657199944e+00 1.885132193565399961e+00 2.307388782501199831e+00 +0.000000000000000000e+00 6.268179416656000091e-02 -3.478663563728299768e-01 -2.150786876678500104e+00 -2.652221918106099974e+00 -2.207604169845600151e+00 -4.509502410888700297e+00 +0.000000000000000000e+00 -1.467595547437700043e-01 2.937119267880999862e-02 -1.307333588600199992e+00 -1.044706940650899973e+00 -7.340493798255900426e-01 -1.843288421630900009e+00 +0.000000000000000000e+00 9.508115053176899867e-01 5.886215567588799491e-01 8.550304174422999892e-02 1.803451299667399921e+00 2.450247049331700122e+00 2.720676422119100213e+00 +0.000000000000000000e+00 1.208738684654200091e+00 1.265612959861800002e+00 3.802692145108999694e-02 2.598913192748999901e+00 3.286903381347700215e+00 4.014231681823700271e+00 +0.000000000000000000e+00 1.055005550384499946e+00 1.474605798721299932e+00 1.442903578281400090e-01 1.894972801208500091e+00 2.552798271179200107e+00 2.816883087158200016e+00 +0.000000000000000000e+00 3.754597604274699796e-01 6.271203756332399681e-01 -6.002222299575800113e-01 3.121969401836400260e-01 7.740488648414599604e-01 3.116855025291400128e-01 +0.000000000000000000e+00 4.273253679275499928e-01 3.587661385536199954e-01 -4.005504846572899846e-01 -1.831107884645500061e-01 3.380811512470199842e-01 -5.408998131751999727e-01 +0.000000000000000000e+00 5.268179178237899496e-01 9.207289218902600103e-01 -1.159480866045000010e-02 2.676398277282700189e+00 3.103142976760899785e+00 4.247301101684599622e+00 +0.000000000000000000e+00 -3.094010055065199993e-01 -7.821288704872100261e-01 -2.110264539718599952e+00 -2.991872787475600148e+00 -2.661874294281000086e+00 -5.025692462921099946e+00 +0.000000000000000000e+00 1.187736988067600086e+00 1.504188895225500033e+00 7.320457100868199563e-01 2.774088621139500166e+00 3.465882062912000183e+00 4.243111610412600321e+00 +0.000000000000000000e+00 -1.067041158676099943e+00 -1.762996196746799971e+00 -2.733389854431199861e+00 -3.628361701965300057e+00 -3.559245824813800141e+00 -5.917454719543499664e+00 +0.000000000000000000e+00 -2.154874652624099995e-01 -4.459336400032000158e-01 -2.060688018798800147e+00 -1.477157115936299947e+00 -1.188497900962800058e+00 -2.482488870620700006e+00 +0.000000000000000000e+00 -4.903652966022499782e-01 -1.213720083236700109e+00 -2.364797353744500175e+00 -3.405349493026700092e+00 -3.123670578002899934e+00 -5.664587974548299876e+00 +0.000000000000000000e+00 -5.448664352298000085e-02 -7.197367548942600335e-01 -1.929964303970300055e+00 -2.052788257598900046e+00 -1.661010622978200013e+00 -3.478297948837299813e+00 +0.000000000000000000e+00 1.266837239265399928e+00 1.152101874351499911e+00 5.088058859109999971e-02 2.379109382629399860e+00 3.103964805602999810e+00 3.638015270233200038e+00 +0.000000000000000000e+00 3.179133236408199781e-01 4.689754545688599729e-01 -5.782185792923000278e-01 1.210503205657000036e-01 5.750140547752400355e-01 -8.075605728700000537e-04 +0.000000000000000000e+00 -4.435707926750199759e-01 -9.692803621292099825e-01 -2.271278142929099797e+00 -3.110239267349200087e+00 -2.827769041061400035e+00 -5.188198089599599605e+00 +0.000000000000000000e+00 5.814768075942999825e-01 2.064364552497900129e-01 -6.250081062316900082e-01 6.371667981147800530e-01 1.176882028579699924e+00 8.616819381713900494e-01 +0.000000000000000000e+00 1.043997779488600036e-01 -3.285979628562900046e-01 -1.468065023422199911e+00 -6.270378828048700504e-01 -2.324868142604800125e-01 -1.132282614707899926e+00 +0.000000000000000000e+00 4.915462136268600180e-01 6.889826059341399578e-01 -5.314732789993299455e-01 1.398259997367899965e+00 1.856474637985199960e+00 2.135015010833699822e+00 +0.000000000000000000e+00 6.998630166053799728e-01 2.721586823463399973e-01 -6.089789867401099732e-01 6.302646994590800356e-01 1.215144038200399956e+00 8.314336538314800462e-01 +0.000000000000000000e+00 4.772153794765500168e-01 4.045618176460299975e-01 -3.708480596542400032e-01 -1.657481044530899894e-01 3.738892674446099851e-01 -5.220345258712799641e-01 +0.000000000000000000e+00 3.183315396308900036e-01 -5.194976180791999881e-02 -3.671176433563200225e-01 1.516138434410100100e+00 1.931039810180700034e+00 2.376719474792500009e+00 +0.000000000000000000e+00 -9.627282619476000558e-02 -7.542316615581999562e-02 -1.412592887878399983e+00 -1.006887927651400061e-01 1.855328977108000044e-01 -2.306760847568500028e-01 +0.000000000000000000e+00 1.083391383290299992e-01 -4.276918768882799760e-01 -1.842047333717300006e+00 -1.783270001411400019e+00 -1.345889568328900054e+00 -3.060914516448999922e+00 +0.000000000000000000e+00 3.062289357185399852e-01 -1.814027726650200012e-01 -1.206374764442400105e+00 -6.525949239730800544e-01 -1.722180992364900076e-01 -1.229234337806700106e+00 +0.000000000000000000e+00 -5.910873413085899752e-01 -9.468667507171599773e-01 -1.856591701507599890e+00 -8.465217351913499888e-01 -7.097616791725199770e-01 -1.360092401504499948e+00 +0.000000000000000000e+00 -1.131936758756599964e-01 -3.884478509426099735e-01 -1.856155633926400039e+00 -1.535498142242400110e+00 -1.197867393493700083e+00 -2.614183902740499832e+00 +0.000000000000000000e+00 1.286534667015100109e+00 1.210583567619299972e+00 5.497332215309099768e-01 3.420622348785399947e+00 4.123379230499300441e+00 5.359978199005100308e+00 +0.000000000000000000e+00 5.341276526451099738e-01 3.266911208629599828e-01 -1.071324944496200082e+00 -1.321951746940600025e-01 4.027999639511100072e-01 -4.074423313140900227e-01 +0.000000000000000000e+00 4.176164865493799949e-01 5.293541029096000133e-02 -1.162381768226599998e+00 -4.127269685268399879e-01 9.457530826330000362e-02 -8.496235609054599847e-01 +0.000000000000000000e+00 2.939618825912500011e-01 1.916500180959699873e-01 -4.803135991096499913e-01 8.161388635635400401e-01 1.241466164588900023e+00 1.188103199005100086e+00 +0.000000000000000000e+00 7.954757809639000365e-01 8.300530910491900061e-01 -5.253868699073800386e-01 1.349564790725700014e+00 1.924625873565700029e+00 2.009053945541400044e+00 +0.000000000000000000e+00 -1.199215184896999971e-02 -1.426865011453599952e-01 -1.299680113792399894e+00 8.092240691184999779e-01 1.093262195587199948e+00 1.299310088157699994e+00 +0.000000000000000000e+00 -7.709524035453799717e-01 -1.254433035850500033e+00 -1.764703392982500008e+00 -1.174994230270399953e+00 -1.080171346664400067e+00 -1.890486359596299959e+00 +0.000000000000000000e+00 7.520316243171699666e-01 2.733618915080999745e-01 -1.016705632209800036e+00 7.024495601654100474e-01 1.288193941116299923e+00 9.831734895706200072e-01 +0.000000000000000000e+00 -8.921310305594999657e-02 1.875161081552499942e-01 -1.329337239265399928e+00 -8.535603284835799887e-01 -5.350146293640100081e-01 -1.530795454978900016e+00 +0.000000000000000000e+00 5.038713812828099492e-01 2.233193516731299955e-01 -9.390830993652300451e-01 8.151698708534199644e-01 1.303393840789800029e+00 1.199800372123700054e+00 +0.000000000000000000e+00 6.554251313209500385e-01 2.683083713054699726e-01 -5.885993242263799496e-01 6.561735868453999476e-01 1.223424196243299900e+00 8.791514635086099538e-01 +0.000000000000000000e+00 -5.322358608245799649e-01 -1.054585576057400109e+00 -1.836822152137800090e+00 -1.060350179672199911e+00 -8.866119980812100509e-01 -1.727114439010599911e+00 +0.000000000000000000e+00 6.129965782165499588e-01 5.745748430489999725e-02 -6.420141458511400279e-01 3.957141339778900146e-01 9.628273248672499784e-01 4.560793340206100166e-01 +0.000000000000000000e+00 1.685933768749199868e-01 1.343331187963499873e-01 -1.021204814314800036e-01 7.308874726295500057e-01 1.127926588058500101e+00 1.028034329414400094e+00 +0.000000000000000000e+00 7.807599306106599579e-01 4.943795502185799884e-01 -7.528144717216499471e-01 9.304552078247100289e-01 1.520502567291299956e+00 1.334011673927300023e+00 +0.000000000000000000e+00 2.297473996877699987e-01 2.184967994689900050e-01 -3.534653186798100144e-01 1.985602974891699901e+00 2.336395978927599870e+00 3.171168565750099866e+00 +0.000000000000000000e+00 2.715907692909200200e-01 -3.390448167920000200e-02 -5.637726187706000314e-01 5.255704522132900181e-01 9.592510461807299826e-01 7.147760391235400412e-01 +0.000000000000000000e+00 7.611519694328300334e-01 9.799694418907199944e-01 1.201023533940299981e-01 2.530224561691300167e+00 3.058636665344200090e+00 3.956902742385899785e+00 +0.000000000000000000e+00 8.980413675308199783e-01 3.516547083854700273e-01 -1.849427372217199994e-01 1.573932766914400094e+00 2.207338094711300158e+00 2.371435642242400110e+00 +0.000000000000000000e+00 1.237645000219299990e-01 -2.192303836345700085e-01 -1.094304561615000004e+00 5.248523354530300056e-01 8.855509757995599918e-01 7.857427000999499533e-01 +0.000000000000000000e+00 -1.709518209099999964e-02 6.629268825053999392e-02 -1.524029374122600089e+00 -1.038378357887300041e+00 -6.870850324630699557e-01 -1.830881953239400062e+00 +0.000000000000000000e+00 8.059055805206299938e-01 1.048372149467500014e+00 5.609836578369099547e-01 2.470084667205799889e+00 3.034094572067299822e+00 3.807994365692100036e+00 +0.000000000000000000e+00 1.079519152641299939e+00 9.336993098258999924e-01 -3.656469285488099796e-01 1.219320058822600084e+00 1.914466738700900006e+00 1.735314369201699902e+00 +0.000000000000000000e+00 3.192175626754800155e-01 3.772737383842499903e-01 -8.287177085876500371e-01 1.166338562965399950e+00 1.565822839736900063e+00 1.801704645156900098e+00 +0.000000000000000000e+00 -4.200733602046999859e-01 -7.885057926177999610e-01 -2.055436372757000196e+00 -2.923748970031700090e+00 -2.637759208679200107e+00 -4.901240825653100153e+00 +0.000000000000000000e+00 -2.711344957351700113e-01 -2.823733091354400093e-01 -8.163842558860799903e-01 -4.261884689331100207e-01 -1.632327884435700038e-01 -8.050140142440800339e-01 +0.000000000000000000e+00 9.632319808006299944e-01 1.298108458518999919e+00 5.983848571777300451e-01 2.695956468582199950e+00 3.304745435714699919e+00 4.158217906951899856e+00 +0.000000000000000000e+00 6.150079369544999564e-01 1.263771206140499870e-01 -7.455743551254300217e-01 5.246953368186999533e-01 1.080405712127699980e+00 6.807679533958399531e-01 +0.000000000000000000e+00 -6.072195768356299928e-01 -1.383225440978999909e+00 -2.703078985214200092e+00 -3.462569713592499987e+00 -3.232043266296400041e+00 -5.710710525512699753e+00 +0.000000000000000000e+00 7.982491254806499681e-01 9.360228776931800443e-01 6.126896739006000292e-01 2.296300649642899927e+00 2.870867729187000172e+00 3.514366626739500177e+00 +0.000000000000000000e+00 -3.856039941310899777e-01 -1.123418092727699991e+00 -2.063754320144699950e+00 -2.332889556884799820e+00 -2.050326585769699950e+00 -3.884486436843900048e+00 +0.000000000000000000e+00 -3.180551528930700145e-01 -6.883727908134500417e-01 -2.555868387222299809e+00 -2.721504926681499903e+00 -2.427914857864399867e+00 -4.531004428863499633e+00 +0.000000000000000000e+00 1.150599479675300074e+00 7.735582590103099454e-01 2.064069658517800054e-01 1.874711632728599975e+00 2.595323324203500093e+00 2.798921823501599793e+00 +0.000000000000000000e+00 8.481391072273299914e-01 9.818185567855800544e-01 6.423920989036600027e-01 2.313663244247400108e+00 2.906676054000899789e+00 3.533231973648100155e+00 +0.000000000000000000e+00 6.585568934678999453e-02 4.166139960288999800e-01 -3.887077867984800039e-01 2.425272703170799904e+00 2.684218168258699855e+00 3.931548357009900130e+00 +0.000000000000000000e+00 -1.131936758756599964e-01 -3.884478509426099735e-01 -1.856155633926400039e+00 -1.535498142242400110e+00 -1.197867393493700083e+00 -2.614183902740499832e+00 +0.000000000000000000e+00 1.389217525720599922e-01 -2.095102667808499963e-01 -7.110008001327500216e-01 4.191147685050999883e-01 8.054918646812400107e-01 5.705977678299000155e-01 +0.000000000000000000e+00 7.718625664710999645e-01 4.655414819717400010e-01 -1.030424237251299946e+00 -1.383593380451199895e-01 4.871082901954699729e-01 -4.561829566955600268e-01 +0.000000000000000000e+00 7.897210717201199603e-01 5.494883060455300061e-01 -7.443441152572599639e-01 -1.096408516168600050e-01 5.302057862281800427e-01 -4.382149279117599772e-01 +0.000000000000000000e+00 -4.569820687174999674e-02 5.159531533718000190e-02 -8.443968892097499790e-01 9.965873956680300072e-01 1.270821809768700072e+00 1.573165774345399948e+00 +0.000000000000000000e+00 1.742557764053300096e+00 2.237185239791899871e+00 1.402302265167199913e+00 4.313457965850799880e+00 5.155111312866200279e+00 6.701146125793499664e+00 +0.000000000000000000e+00 1.087212637066800047e-01 4.875934123992899938e-01 -8.152915239334099784e-01 3.904860615730300077e-01 7.403307557106000303e-01 5.015541315078699824e-01 +0.000000000000000000e+00 2.274153828620900097e-01 3.728387355804400061e-01 -1.084565520286600027e+00 -9.144867658615100092e-01 -4.654883742332500129e-01 -1.701798796653700041e+00 +0.000000000000000000e+00 3.796379864215900235e-01 -3.062167577446000058e-02 -1.492836594581600007e+00 -1.523050189018199996e+00 -9.901698231697100283e-01 -2.699763059616099969e+00 +0.000000000000000000e+00 8.920664191246000518e-01 4.747004806995400172e-01 -2.553987316787000028e-02 1.715809345245399964e+00 2.342833280563399789e+00 2.593670368194600062e+00 +0.000000000000000000e+00 8.329199254513000583e-02 8.607039600610999486e-02 -5.508922338485700010e-01 -2.201512455940199953e-01 1.683825850486800058e-01 -5.640628337860099650e-01 +0.000000000000000000e+00 7.033156752586400273e-01 1.089560866355899993e+00 4.565465822815999858e-02 1.684148430824299991e+00 2.219872951507599890e+00 2.500092267990099870e+00 +0.000000000000000000e+00 -1.109808459878000031e-01 -5.325422883033800181e-01 -2.040275812148999890e+00 -1.663978099823000045e+00 -1.324847936630199952e+00 -2.836930751800499806e+00 +0.000000000000000000e+00 8.590164780616800222e-01 1.456191658973700065e+00 4.782918691635100195e-01 3.084616184234600045e+00 3.622636795043900015e+00 4.807204246520999646e+00 +0.000000000000000000e+00 -7.446423768997200154e-01 -9.681692719459500385e-01 -9.809801578521699650e-01 1.515537947416299991e-01 2.154638320207599989e-01 2.528673410415600009e-01 +0.000000000000000000e+00 3.819491267204300211e-01 2.709577977657299797e-01 -1.491551280021699899e+00 -1.046119332313500072e+00 -5.461057424545300298e-01 -1.930653572082499991e+00 +0.000000000000000000e+00 3.971634805202500229e-01 2.189939022064200103e-01 -1.566083669662500011e+00 -1.114666581153900049e+00 -6.068878173828099465e-01 -2.040054798126199831e+00 +0.000000000000000000e+00 8.795562386512799646e-01 1.132951140403700041e+00 -2.456229180097599940e-01 5.703222155571000540e-01 1.213088631629900105e+00 6.092325448989900361e-01 +0.000000000000000000e+00 3.150258585810999934e-02 -2.814305126666999946e-01 -1.802894830703700046e+00 -1.479629158973700065e+00 -1.091725468635599938e+00 -2.572896003723100122e+00 +0.000000000000000000e+00 6.767450571060199538e-01 1.183557629585300086e+00 4.260394871234899905e-01 2.850062847137500022e+00 3.334081649780300083e+00 4.447547912597699771e+00 +0.000000000000000000e+00 8.675760626792899943e-01 9.615579843521100400e-01 3.609189018607000116e-02 2.471639633178699835e+00 3.039105653762800063e+00 3.826002836227400117e+00 +0.000000000000000000e+00 1.258136391639699925e+00 1.822557091713000066e+00 7.159112095832800282e-01 3.223517656326300163e+00 3.909101963043200012e+00 4.958126544952399684e+00 +0.000000000000000000e+00 -2.646623849868799949e-01 -1.541386097669600053e-01 -1.719250440597499985e+00 -2.178210973739600043e+00 -1.874724149703999920e+00 -3.738445997238200036e+00 +0.000000000000000000e+00 -1.395873725414299993e-01 -2.369047254323999874e-01 -1.079789042472800054e+00 -1.472879052162199942e+00 -1.124866843223599977e+00 -2.605844974517800061e+00 +0.000000000000000000e+00 9.179324507713300108e-01 9.040511846542399477e-01 3.141510486602799856e-01 2.266668558120700006e+00 2.876058101654099808e+00 3.450313806533800154e+00 +0.000000000000000000e+00 1.837152838706999913e-01 -3.244295716285700015e-01 -1.128440737724299980e+00 -7.482132911682100040e-01 -3.062331080436699882e-01 -1.404084682464600053e+00 +0.000000000000000000e+00 -2.320609241724000127e-01 -1.889152824879000020e-02 -1.756105303764299963e+00 -1.995745658874499950e+00 -1.693593382835399952e+00 -3.435385465621899836e+00 +0.000000000000000000e+00 6.122115850448599517e-01 5.972886085510300536e-01 -7.727987766265900227e-01 1.521876901388199976e-01 7.055329084396400052e-01 1.168100628999999913e-03 +0.000000000000000000e+00 8.049111366272000412e-01 6.880788207054100436e-01 -5.211265087127699980e-01 1.165389418601999960e+00 1.754735946655300083e+00 1.674385428428599942e+00 +0.000000000000000000e+00 3.052768707275400062e-01 1.571946591138800031e-01 -7.767041921615599476e-01 -2.383003085851700120e-01 2.266428470611600021e-01 -6.050230264663699620e-01 +0.000000000000000000e+00 2.080169767141299975e-01 2.005595862865399981e-01 -4.766361713409399958e-01 -1.767445206642200006e-01 2.579029202461199932e-01 -5.168995857238799507e-01 +0.000000000000000000e+00 4.257457256317099814e-01 4.356186687946300151e-01 -3.795674741268200147e-01 2.183059215545700038e+00 2.591078042983999907e+00 3.448691368102999810e+00 +0.000000000000000000e+00 1.886540651321400031e-01 6.572407204659999613e-03 -1.962981462478599948e+00 -2.253345251083399781e+00 -1.783935785293599974e+00 -3.906346559524500162e+00 +0.000000000000000000e+00 4.944736361503599964e-01 9.109234809875500494e-01 3.737870752811400243e-01 2.615509510040300079e+00 3.045526504516599786e+00 4.087891578674300419e+00 +0.000000000000000000e+00 -6.347682327032000416e-02 -8.785051107407000626e-02 -1.995676875114400062e+00 -3.283355951309200105e+00 -2.863604307174699937e+00 -5.619873046875000000e+00 +0.000000000000000000e+00 5.912076830864000376e-01 2.666841447353400230e-01 -1.180022954940799895e+00 -2.038100212812400114e-01 3.518755435943600185e-01 -5.505404472351099754e-01 +0.000000000000000000e+00 1.058926463127100037e+00 1.442119121551499905e+00 1.162306904792800077e+00 3.815992116928100142e+00 4.426206588745100312e+00 5.968103408813499655e+00 +0.000000000000000000e+00 6.269313097000099866e-01 5.019067525863599721e-01 -6.559938192367600340e-01 1.077914357185399963e+00 1.602197766303999904e+00 1.567264199256900081e+00 +0.000000000000000000e+00 -4.565658867359200235e-01 -2.249720692634600006e-01 -1.889766216278099931e+00 -2.073877811431899865e+00 -1.854730010032699994e+00 -3.520279407501199831e+00 +0.000000000000000000e+00 -1.792404428124000013e-02 -2.702161967754400096e-01 -1.950377345085100078e+00 -1.380296826362600093e+00 -1.022473335266099959e+00 -2.385977745056199861e+00 +0.000000000000000000e+00 1.008835792541499909e+00 8.652286529541000082e-01 -1.663424372672999973e-01 2.267681360244799826e+00 2.894710540771499918e+00 3.484688043594399876e+00 +0.000000000000000000e+00 1.867334991693500035e-01 -1.408736705779999876e-01 -1.466825366020199972e+00 -3.852063417434700154e-01 2.211365662515000011e-02 -7.668507099151600226e-01 +0.000000000000000000e+00 2.909058034420000105e-01 7.019876968120000379e-03 -7.128326296806299922e-01 6.458414793014499722e-01 1.071879148483299904e+00 9.010108709335300503e-01 +0.000000000000000000e+00 4.484492242336299839e-01 2.755278050899500064e-01 -1.523560047149699948e+00 -1.086226224899299986e+00 -5.597928762435899763e-01 -2.004143714904799811e+00 +0.000000000000000000e+00 -6.233164072036699865e-01 -8.852386474609400535e-01 -2.442310094833399781e+00 -2.753140926361099972e+00 -2.569211006164600075e+00 -4.575998783111599799e+00 +0.000000000000000000e+00 3.304319828748999988e-02 -2.107244431972500054e-01 -4.064164459705399968e-01 1.566739916801499932e+00 1.868754982948299892e+00 2.480562448501599793e+00 +0.000000000000000000e+00 -1.121534705161999934e+00 -1.506964921951299941e+00 -2.947360515594500185e+00 -3.110655546188399789e+00 -3.105591773986799975e+00 -5.051530361175499806e+00 +0.000000000000000000e+00 3.503129482269299877e-01 5.313396453857399671e-01 -2.153246849775299898e-01 2.341568470001199831e+00 2.716343164443999925e+00 3.708295822143599985e+00 +0.000000000000000000e+00 1.142678558826400043e-01 3.382120728492700179e-01 -1.925110220909100056e-01 1.136909604072600111e+00 1.481626152992199907e+00 1.695885896682699956e+00 +0.000000000000000000e+00 8.094283938407900170e-01 6.072634458541900093e-01 -8.159561157226600248e-01 1.124961018562300019e+00 1.708766341209400075e+00 1.634473323821999946e+00 +0.000000000000000000e+00 7.365164160728500109e-01 6.689329743385300509e-01 -5.065211057663000505e-01 1.190459728241000104e+00 1.753102660179099992e+00 1.724738359451299941e+00 +0.000000000000000000e+00 9.134390354156499692e-01 1.198830962181099968e+00 1.210541278123900000e-01 2.759356498718299910e+00 3.327474355697599862e+00 4.291016578674300419e+00 +0.000000000000000000e+00 8.847827911376999754e-01 1.017980337142899927e+00 -3.380557894706699984e-01 1.533723235130300067e+00 2.134301900863599943e+00 2.259521007537800052e+00 +0.000000000000000000e+00 6.510024070739699464e-01 7.405400872230499809e-01 -5.569189786910999640e-01 1.381975054740899989e+00 1.898159861564600037e+00 2.061352252960200193e+00 +0.000000000000000000e+00 8.606420755386400279e-01 1.339297056198099911e+00 8.305586129427000586e-02 1.910020470619200106e+00 2.490524053573599961e+00 2.850316047668500108e+00 +0.000000000000000000e+00 3.074469268321999849e-01 4.894062280654900010e-01 -9.824367165565499604e-01 -8.039443492889399856e-01 -3.308177590370199872e-01 -1.564606666564900106e+00 +0.000000000000000000e+00 6.614321470260600133e-01 9.588590860366800195e-01 5.294515490531900292e-01 2.502494812011700098e+00 3.007628440856899843e+00 3.860292434692400132e+00 +0.000000000000000000e+00 1.084485888481099947e+00 1.109206080436700104e+00 9.998548775910999498e-02 2.489491701126099965e+00 3.138824701309200105e+00 3.818142414092999815e+00 +0.000000000000000000e+00 -1.484590768814099959e-01 -3.171055912971499913e-01 -8.177129030227699991e-01 1.677343487739600070e+00 1.890359759330699996e+00 2.730673789977999810e+00 +0.000000000000000000e+00 8.014389276504499948e-01 5.544754266738900483e-01 -3.089485168457000164e-01 9.117969274520899559e-01 1.524031519889800013e+00 1.231732130050700036e+00 +0.000000000000000000e+00 5.528911352157600545e-01 4.393279552459700144e-01 -6.932466030120799649e-01 1.058178424835199971e+00 1.554912686348000062e+00 1.548672556877100037e+00 +0.000000000000000000e+00 9.959635734558099918e-01 6.989195346832299816e-01 -2.363920807838399973e-01 9.412842392921400014e-01 1.626546382904100030e+00 1.245700597763099937e+00 +0.000000000000000000e+00 -4.936826415359999928e-03 -1.841331720352200052e-01 -1.904924273490899989e+00 -2.388439416885399957e+00 -1.980213522911099977e+00 -4.109036922454800234e+00 +0.000000000000000000e+00 6.139638274907999876e-02 -2.434995174408000063e-01 -9.564667344093300549e-01 -5.399709343910199522e-01 -1.535486727952999897e-01 -1.081229090690599914e+00 +0.000000000000000000e+00 -4.252098202705399954e-01 -6.518970727920500030e-01 -2.449046134948699827e+00 -2.538952112197899957e+00 -2.297480583190900205e+00 -4.272729396820100334e+00 +0.000000000000000000e+00 -1.674529723823000096e-02 -4.135883748531299919e-01 -1.563599586486799975e+00 -1.666738867759699927e+00 -1.277944803237899940e+00 -2.926525115966799984e+00 +0.000000000000000000e+00 -3.889548778533900020e-01 -8.178914189338699625e-01 -2.300519227981599801e+00 -2.855840682983400214e+00 -2.574557781219500185e+00 -4.820629119872999802e+00 +0.000000000000000000e+00 -8.584395051003000654e-02 2.794018089771300173e-01 -4.767772853374500075e-01 2.443586587905900220e+00 2.638255119323699827e+00 3.941030025482199939e+00 +0.000000000000000000e+00 1.555366516113299902e+00 1.835600495338399973e+00 1.568612217903099904e+00 3.900333404541000082e+00 4.702019691467300255e+00 5.972022533416700085e+00 +0.000000000000000000e+00 2.843073606491099969e-01 -1.874741911888000087e-02 -1.613725423812899962e+00 -1.322934627533000063e+00 -8.466194868087799641e-01 -2.392167568206799988e+00 +0.000000000000000000e+00 -5.852763652801500349e-01 -9.932612180709800009e-01 -1.539458751678500104e+00 -9.399265646934500396e-01 -7.875245809555100340e-01 -1.598512172698999922e+00 +0.000000000000000000e+00 7.661643028259299548e-01 8.653074502944899660e-01 -2.846147492527999895e-02 2.467218399047899968e+00 2.993230819702100032e+00 3.813776254653900022e+00 +0.000000000000000000e+00 4.389998316764799902e-01 3.851468563079800123e-01 1.181317195296300027e-01 1.992455005645799915e+00 2.433253049850499838e+00 3.055612087249799824e+00 +0.000000000000000000e+00 9.563365578651400467e-01 1.483307719230700039e+00 6.469779014587400123e-01 3.030055999755899787e+00 3.611984968185399936e+00 4.660201072692900404e+00 +0.000000000000000000e+00 1.100750446319600062e+00 9.042033553123499656e-01 -1.693464666604999891e-01 2.283237218856799977e+00 2.941660881042500009e+00 3.471796274185200204e+00 +0.000000000000000000e+00 7.044633626937899518e-01 9.511042833328200441e-01 -7.440535724162999909e-02 2.658431768417400143e+00 3.147039175033599978e+00 4.145999908447300264e+00 +0.000000000000000000e+00 2.006002962589299998e-01 -1.556970924139000068e-01 -1.739775657653799934e+00 -1.419392824173000056e+00 -9.720748066902199502e-01 -2.528813600540200213e+00 +0.000000000000000000e+00 -1.960829347372100018e-01 -3.652373552322399908e-01 -9.644471406936599989e-01 -5.012127757072399881e-01 -2.137067615985900060e-01 -9.784096479415900216e-01 +0.000000000000000000e+00 1.335044026374800019e+00 1.523618936538700064e+00 4.828058481216400133e-01 2.817653894424399841e+00 3.549575328826899856e+00 4.266637802124000345e+00 +0.000000000000000000e+00 7.368983030319200545e-01 5.503646731376600210e-01 -9.033409953117399471e-01 4.924817383288999928e-02 6.498693227767899927e-01 -2.019067853689200109e-01 +0.000000000000000000e+00 3.507354855537000299e-02 -1.166619583964299961e-01 -1.350083708763099910e+00 -2.205351740121800075e-01 1.213457360863700041e-01 -5.071136951446499896e-01 +0.000000000000000000e+00 4.705098271369900220e-01 2.135824114084199921e-01 -5.532049536705000436e-01 7.894625067710899780e-01 1.276488184928900038e+00 1.073399543762199926e+00 +0.000000000000000000e+00 7.145431041717500431e-01 1.366678595542899943e+00 4.467597901821099837e-01 3.117026329040499810e+00 3.596170902252199930e+00 4.859502315521200266e+00 +0.000000000000000000e+00 1.004601001739499955e+00 1.645998001098599950e+00 1.071916341781600002e+00 4.222014427185100338e+00 4.779905796050999633e+00 6.635954856872600338e+00 +0.000000000000000000e+00 6.055572628974900118e-01 6.437774896621699661e-01 -2.180338650941799905e-01 2.328326940536499912e+00 2.797364950180099896e+00 3.623613834381099963e+00 +0.000000000000000000e+00 4.797707498073600085e-01 2.761524617671999859e-01 -1.048532962799100021e+00 1.012717962264999993e+00 1.471504807472199916e+00 1.491668581962600104e+00 +0.000000000000000000e+00 3.589495122432699858e-01 5.297231674194300410e-01 -6.583552956581100180e-01 1.378888964653000038e+00 1.781174302101099949e+00 2.082584619522100056e+00 +0.000000000000000000e+00 3.831592500209800023e-01 2.176152318716000067e-01 -4.984362721443200139e-01 8.533846735954300211e-01 1.305381178855899993e+00 1.187460541725199992e+00 +0.000000000000000000e+00 6.732126474380499825e-01 8.262492418289200113e-01 -2.514260634779999851e-02 2.486687183380099864e+00 2.976831436157199917e+00 3.859435558319099790e+00 +0.000000000000000000e+00 3.753172457218200142e-01 2.278310358524300028e-01 -1.542629361152600076e+00 -1.055498838424699937e+00 -5.607969760894799816e-01 -1.966211915016200074e+00 +0.000000000000000000e+00 2.916560769081100180e-01 2.431458234787000072e-01 -6.038486361503599964e-01 9.973668456077600109e-01 1.402008056640599909e+00 1.450933694839499966e+00 +0.000000000000000000e+00 1.879184991121299886e-01 4.227910339832299802e-01 -9.991175532341000087e-01 -7.628527283668500303e-01 -3.393796682357799743e-01 -1.502875924110399941e+00 +0.000000000000000000e+00 4.910439848899800230e-01 3.094365298748000259e-01 -8.229433298110999662e-01 9.891718626022300009e-01 1.461351394653300106e+00 1.429215788841200041e+00 +0.000000000000000000e+00 5.768146738410000196e-02 -4.272606670856500255e-01 -1.131034135818500097e+00 3.524646162986799780e-01 6.953597664833099934e-01 4.598629474639899795e-01 +0.000000000000000000e+00 7.688279747963000510e-01 8.858004212379499975e-01 -3.993177786469999900e-03 2.488359451293900015e+00 3.014770746231099974e+00 3.846306324005099864e+00 +0.000000000000000000e+00 8.392369151115399717e-01 7.375964522361799780e-01 -2.882282137870800232e-01 1.178760528564499976e+00 1.786120653152500015e+00 1.643686652183500074e+00 +0.000000000000000000e+00 6.116245985031100174e-01 5.610550642013499845e-01 -5.724688768386799742e-01 1.188984036445599912e+00 1.701170086860700037e+00 1.720969676971400020e+00 +0.000000000000000000e+00 6.586222052574199903e-01 1.091639161109899891e+00 7.352740317582999452e-02 1.751284122466999937e+00 2.265023231506300139e+00 2.590121030807500002e+00 +0.000000000000000000e+00 4.856328368187000089e-01 8.144596815109299559e-01 -4.256670773029300192e-01 5.159190893173200010e-01 1.007581949233999907e+00 5.672042369842500431e-01 +0.000000000000000000e+00 6.666287183761600010e-01 1.006733059883099912e+00 5.870267152786300402e-01 2.586993217468299910e+00 3.088586807251000099e+00 3.969186544418299878e+00 +0.000000000000000000e+00 -9.980738162994000351e-02 -1.087032072246000083e-02 -8.931739330291700307e-01 1.032249212264999993e+00 1.278769612312300019e+00 1.593639135360700010e+00 +0.000000000000000000e+00 3.797697722911799745e-01 -3.959797322749999959e-02 -1.202219128608700061e+00 6.739231944084199677e-01 1.112976551055899987e+00 9.559110999107399698e-01 +0.000000000000000000e+00 8.119615912437400107e-01 4.743117392063099791e-01 -4.167364537715900208e-01 8.492689728736899646e-01 1.464247703552199908e+00 1.110467433929400061e+00 +0.000000000000000000e+00 6.413336992263799496e-01 1.181090593338000039e+00 6.970156449819999746e-03 1.916386723518400004e+00 2.410345792770399953e+00 2.874316215515099859e+00 +0.000000000000000000e+00 2.418310344219199992e-01 -3.455339372158099942e-01 -2.003902673721300154e+00 -1.660053253173799925e+00 -1.190100312233000057e+00 -2.910900592803999931e+00 +0.000000000000000000e+00 -8.277782052755000564e-02 -4.937863945961000200e-01 -1.135534286498999901e+00 3.734782934188800030e-01 6.624166965484600267e-01 5.157505869865399717e-01 +0.000000000000000000e+00 3.434477746486699901e-01 1.207259446382499962e-01 -8.448094725608800148e-01 -2.706922292709399991e-01 2.066227346658700004e-01 -6.838421821594200534e-01 +0.000000000000000000e+00 1.084894299507100035e+00 1.120242834091200068e+00 1.135775670409199939e-01 2.535988092422500007e+00 3.181063890457199950e+00 3.868561744689900106e+00 +0.000000000000000000e+00 -5.029286146163900462e-01 -1.165183663368200007e+00 -2.050350666046099946e+00 -2.231051683425900212e+00 -2.002130508422899968e+00 -3.750409841537500011e+00 +0.000000000000000000e+00 -1.520293951034500102e-01 9.767595678568000150e-02 -1.653976559638999921e+00 -1.885203242301900062e+00 -1.558922767639199902e+00 -3.298193454742400110e+00 +0.000000000000000000e+00 5.234308242797900412e-01 9.975807070732100046e-01 -4.049467444419900253e-01 7.828826904296900535e-01 1.269671082496599990e+00 9.791587591171300176e-01 +0.000000000000000000e+00 -5.237248539924600488e-01 -7.258619070053099476e-01 -2.486990690231300150e+00 -2.520382881164600075e+00 -2.319931030273400197e+00 -4.249579906463599954e+00 +0.000000000000000000e+00 -5.302110686897999747e-02 2.810135483741800222e-01 -9.857703447341900072e-01 3.723497092723799806e-01 6.520948410034199672e-01 4.338233172893499745e-01 +0.000000000000000000e+00 -5.159823894500700225e-01 -8.887549638748200032e-01 -2.508121490478500082e+00 -2.761249065399200120e+00 -2.542447328567499998e+00 -4.650354862213100127e+00 +0.000000000000000000e+00 1.758265048265499897e-01 5.601164102554300195e-01 -1.008099675178500076e+00 -5.132517814636200493e-01 -1.130986958742099951e-01 -1.109786629676799974e+00 +0.000000000000000000e+00 1.630859524011600004e-01 -1.293220221996299879e-01 -8.696799874305699563e-01 -4.468345642089799896e-01 -2.755367383361000122e-02 -9.747457504272499795e-01 +0.000000000000000000e+00 -1.768261641264000095e-01 -1.953600645065300123e-01 -7.038736343383800165e-01 8.060935139656100201e-01 1.043708562851000110e+00 1.183854579925500028e+00 +0.000000000000000000e+00 -3.343414068221999824e-01 -4.519573748111699873e-01 -2.247372388839699919e+00 -2.342401504516599786e+00 -2.075178623199500194e+00 -4.003194332122800070e+00 +0.000000000000000000e+00 -4.250005483627299907e-01 -3.439777195453599945e-01 -1.812827110290500032e+00 -1.117240786552399889e+00 -9.277819395065299846e-01 -1.952798008918799955e+00 +0.000000000000000000e+00 7.595498561859099773e-01 1.044773936271699899e+00 1.287221722305000038e-02 2.760293006897000190e+00 3.263805866241499931e+00 4.273759365081800432e+00 +0.000000000000000000e+00 3.491659164428699835e-01 6.400405764579799595e-01 5.630015954374999881e-02 1.384038567543000031e+00 1.804679512977600098e+00 1.998567938804600042e+00 +0.000000000000000000e+00 5.692508071661000341e-02 -2.529019117355300050e-01 -1.837820172309899913e+00 -2.491864681243900037e+00 -2.054846286773699848e+00 -4.348430156707800087e+00 +0.000000000000000000e+00 6.638187766075099860e-01 1.139513134956400053e+00 1.311025619506800133e-01 1.835782527923599972e+00 2.345981597900399951e+00 2.699015140533400192e+00 +0.000000000000000000e+00 -4.820985794067400021e-01 -7.436420321464499716e-01 -2.533196687698399785e+00 -2.568606138229399871e+00 -2.350946664810200204e+00 -4.331633567810100338e+00 +0.000000000000000000e+00 5.580079555511500145e-01 8.186779022216800206e-01 -2.718322575092300131e-01 4.526775479316699768e-01 9.790259599685700032e-01 4.107685387134599742e-01 +0.000000000000000000e+00 2.967787086963700194e-01 4.369541406631500258e-01 -9.869060516357399671e-01 3.091138601303100031e-01 7.235488891601600248e-01 2.776371836662300252e-01 +0.000000000000000000e+00 2.690937817096700213e-01 2.464738339185700011e-01 -5.869721174240100092e-01 1.050851225853000059e+00 1.442308306693999898e+00 1.516031503677399916e+00 +0.000000000000000000e+00 4.147188663482699877e-01 7.132794260978699841e-01 5.477958321571400058e-01 2.410894393920900214e+00 2.827277898788500110e+00 3.690126419067400132e+00 +0.000000000000000000e+00 5.057995393872000145e-02 -2.581341750919999983e-02 -1.925890207290599898e+00 -2.126890897750899789e+00 -1.719717502593999914e+00 -3.730465888977100075e+00 +0.000000000000000000e+00 9.443939924240100092e-01 8.922830820083600400e-01 -9.574574232101000504e-02 2.410634040832499991e+00 3.002915143966700118e+00 3.674178123474100222e+00 +0.000000000000000000e+00 7.359367012977600098e-01 1.018289685249299970e+00 -6.358966231345999920e-02 1.650964498519899903e+00 2.193911314010600133e+00 2.398928642272899925e+00 +0.000000000000000000e+00 8.907096982002300489e-01 9.466975331306499708e-01 2.498668581247300013e-01 3.550654888153100153e+00 4.081682682037399701e+00 5.585716724395799915e+00 +0.000000000000000000e+00 4.545955955982199925e-01 4.145597219467199723e-01 -9.152144193649299764e-01 1.235456764697999976e-01 6.117277741432199933e-01 -6.160227581858999935e-02 +0.000000000000000000e+00 1.061313152313200003e+00 1.622773051261900079e+00 7.639579176902799862e-01 3.149279594421400041e+00 3.764559507370000002e+00 4.806826114654500159e+00 +0.000000000000000000e+00 6.838766336441000071e-01 6.402823925018300555e-01 1.124404370784800045e-01 2.199245929717999815e+00 2.715563774108900041e+00 3.339647054672199911e+00 +0.000000000000000000e+00 4.330271780490900224e-01 1.192246749997099980e-01 -1.523505091667199940e+00 -1.235132217407199917e+00 -7.079414129257199928e-01 -2.301742792129500170e+00 +0.000000000000000000e+00 4.728796780109399966e-01 5.156135559082000164e-01 -5.513803958892800061e-01 1.266859292983999907e+00 1.721027016639699925e+00 1.843225955963099905e+00 +0.000000000000000000e+00 1.089980155229599984e-01 4.065168499946599789e-01 -5.391539931297300026e-01 2.964133322238899915e-01 6.567527055740399744e-01 2.409808486700099894e-01 +0.000000000000000000e+00 5.618916153907800304e-01 6.933757066726700113e-01 -3.766007423400900000e-01 1.405420422553999904e+00 1.889379858970599901e+00 2.044656991958599956e+00 +0.000000000000000000e+00 1.796592026948899967e-01 8.256225287913999955e-02 -1.615756034851099976e+00 -1.050726294517499992e+00 -6.335399746894799788e-01 -1.948589444160500062e+00 +0.000000000000000000e+00 2.300924658775299891e-01 -3.123799860477399770e-01 -1.765565633773799936e+00 -1.633682250976600026e+00 -1.163588285446200077e+00 -2.913745164871199833e+00 +0.000000000000000000e+00 -4.143128097057299786e-01 -8.360711932182299799e-01 -2.309322595596300154e+00 -2.824543952941899860e+00 -2.556864023208599956e+00 -4.789672374725300052e+00 +0.000000000000000000e+00 4.867805242538499888e-01 6.760031580925000005e-01 -5.457270741462699748e-01 1.490202426910399947e+00 1.934748291969299983e+00 2.213111877441400033e+00 +0.000000000000000000e+00 1.161093115806600018e+00 1.714364409446700099e+00 8.233627080917399477e-01 3.184005022048999933e+00 3.836175918579099786e+00 4.844556331634500168e+00 +0.000000000000000000e+00 1.802006512880300060e-01 1.626835018396400045e-01 -1.078577637672399891e+00 2.805087901652000143e-02 4.147830009460399814e-01 -1.653614193201100036e-01 +0.000000000000000000e+00 2.372790127992600029e-01 1.878262907266599890e-01 -1.515049457549999978e+00 -9.720149636268600180e-01 -5.352254509925800097e-01 -1.835325479507400104e+00 +0.000000000000000000e+00 -3.814175426959999782e-01 -4.761049449443799930e-01 -2.251227378845200189e+00 -2.337431669235200182e+00 -2.088232517242400110e+00 -3.987695932388299891e+00 +0.000000000000000000e+00 -5.848207697272000266e-02 -1.128594130277599944e-01 -1.538352966308599967e+00 -1.160804510116600019e+00 -8.224475383758500513e-01 -2.104935884475700014e+00 +0.000000000000000000e+00 8.444646000862100488e-01 1.529041767120399964e+00 5.785909891128500071e-01 3.244931459426899867e+00 3.766649723052999832e+00 5.015559673309300415e+00 +0.000000000000000000e+00 1.183890938758900058e+00 1.382716178893999892e+00 3.899154663085899752e-01 2.797049760818500097e+00 3.469094276428200008e+00 4.237361431121800415e+00 +0.000000000000000000e+00 5.145156756042999768e-02 2.483719289302800115e-01 -5.171503424644500191e-01 1.052667275071099973e-01 4.577179253101300027e-01 -7.151220738888000583e-02 +0.000000000000000000e+00 8.842748403549199887e-01 1.159263134002699980e+00 8.712825179100000539e-02 2.803699731826799990e+00 3.353326082229600047e+00 4.320922374725300052e+00 +0.000000000000000000e+00 -9.035441279410999504e-02 -3.184528350830099774e-01 -2.027005434036300180e+00 -2.411962985992400110e+00 -2.041626930236799975e+00 -4.175707817077600303e+00 +0.000000000000000000e+00 1.145801320672000002e-02 -1.577799171209300078e-01 -2.070967435836799986e+00 -2.248089313507100062e+00 -1.852262139320399958e+00 -3.913031578063999927e+00 +0.000000000000000000e+00 1.470486402511600010e+00 1.404261708259600061e+00 3.106196224689499741e-01 3.721997499465900194e+00 4.459835529327399684e+00 5.781374454498299897e+00 +0.000000000000000000e+00 -4.538292288780200190e-01 -2.415733635425600101e-01 -1.722909808158900047e+00 -2.078665018081700122e+00 -1.856039881706200045e+00 -3.596118927002000198e+00 +0.000000000000000000e+00 6.560577154159500379e-01 6.658216118812599893e-01 -9.009684324264499722e-01 3.211106359958599832e-01 8.716553449630699557e-01 2.372134923934899886e-01 +0.000000000000000000e+00 7.619731426239000349e-01 1.347999095916700085e+00 5.857434272766099959e-01 3.045103549957299816e+00 3.549710750579799790e+00 4.693634033203100131e+00 +0.000000000000000000e+00 3.886261284351300027e-01 4.675171971321099851e-01 -1.000367879867599896e+00 2.808814346790299843e-01 7.310191392898599538e-01 2.184929400682399936e-01 +0.000000000000000000e+00 -3.138990700245000015e-02 2.645844817161600027e-01 -1.075203299522399902e+00 -7.564864754676799974e-01 -4.195578992366800208e-01 -1.478875637054400061e+00 +0.000000000000000000e+00 1.031301617622399913e+00 8.175653219223000256e-01 -1.063905581831900010e-01 1.118962287902800057e+00 1.806367278099100027e+00 1.472921371460000017e+00 +0.000000000000000000e+00 4.344507679343000139e-02 3.332779705524400171e-01 -1.030649662017800061e+00 -7.304424047470100545e-01 -3.658456802368200145e-01 -1.450577735900900000e+00 +0.000000000000000000e+00 -6.035602688789399872e-01 -9.570178985595699794e-01 -1.483282089233399992e+00 -8.524861335754400082e-01 -7.126274704933199811e-01 -1.481165528297399891e+00 +0.000000000000000000e+00 -5.435927584767000220e-02 -7.246326655149000484e-02 -9.200851321220400170e-01 -1.277838230133099939e+00 -9.092378020286600027e-01 -2.359758853912400145e+00 +0.000000000000000000e+00 1.214790120720899980e-01 -3.650401532650000003e-01 -2.150185346603400216e+00 -1.512480616569499947e+00 -1.104008793830900004e+00 -2.659102916717499987e+00 +0.000000000000000000e+00 1.384244859218599910e-01 1.396979689598099872e-01 -8.378676772117600313e-01 1.073284268379200102e+00 1.406033277511600010e+00 1.596399307251000099e+00 +0.000000000000000000e+00 6.139287948608399548e-01 1.093717455863999932e+00 1.014001518487900044e-01 1.818419814109800026e+00 2.310173511505099864e+00 2.680150032043500108e+00 +0.000000000000000000e+00 4.114202223719999954e-03 -3.382712006568899810e-01 -1.044231176376299919e+00 -5.727474093437200375e-01 -2.101961076259599992e-01 -1.144937753677399916e+00 +0.000000000000000000e+00 3.758299350739000011e-02 -2.050292342901199882e-01 -1.653515577316299945e+00 -2.336435765027999878e-01 9.807717055082000590e-02 -5.261133909225500505e-01 +0.000000000000000000e+00 7.696295976638799496e-01 1.460348248481800004e+00 5.340373516082800309e-01 3.218887329101599803e+00 3.712937355041499909e+00 4.987261772155799910e+00 +0.000000000000000000e+00 8.713852167129499948e-01 1.237789750099199892e+00 7.634115219116199835e-01 2.740942478179900110e+00 3.312777757644699950e+00 4.153542041778599980e+00 +0.000000000000000000e+00 -2.510703206062300241e-01 -8.254023194313000467e-01 -2.768189430236799975e+00 -2.817296504974399873e+00 -2.504682540893599985e+00 -4.757481098174999978e+00 +0.000000000000000000e+00 1.202604174613999932e+00 1.157722473144499942e+00 9.095132350921599773e-01 3.415419101715099881e+00 4.094112396240199736e+00 5.251852989196800436e+00 +0.000000000000000000e+00 5.358425974845899553e-01 1.258813142776499916e+00 8.473185896873499656e-01 4.141567230224599605e+00 4.520687103271500362e+00 6.565628528595000013e+00 +0.000000000000000000e+00 5.141488313674900112e-01 1.002126097679099992e+00 4.199532046914000033e-02 1.783694386482199912e+00 2.238557338714600053e+00 2.642419338226300152e+00 +0.000000000000000000e+00 9.864781498908999913e-01 1.554079532623299897e+00 7.194042801857000180e-01 3.123235702514600032e+00 3.710847377777100053e+00 4.778528213500999655e+00 +0.000000000000000000e+00 9.941346049308800170e-01 1.666428804397600105e+00 6.676982641220100545e-01 3.297019481658900020e+00 3.874073982238800173e+00 5.072155952453599959e+00 +0.000000000000000000e+00 -3.543878719211000089e-02 7.825397700071000384e-02 -1.252838492393500092e+00 1.332985609769800073e-01 4.266499578952799854e-01 5.813790485262999852e-02 diff --git a/statsmodels/discrete/tests/results/yhat_poisson.csv b/statsmodels/discrete/tests/results/yhat_poisson.csv new file mode 100644 index 0000000..2538c9e --- /dev/null +++ b/statsmodels/discrete/tests/results/yhat_poisson.csv @@ -0,0 +1,20190 @@ +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +3.071937,1.122308 +3.071937,1.122308 +3.071937,1.122308 +3.071937,1.122308 +3.071937,1.122308 +3.932128,1.369181 +3.932128,1.369181 +3.932128,1.369181 +3.932128,1.369181 +3.932128,1.369181 +3.479224,1.246809 +3.479224,1.246809 +3.479224,1.246809 +3.479224,1.246809 +3.479224,1.246809 +1.820688,.5992144 +1.820688,.5992144 +1.820688,.5992144 +3.822568,1.340922 +3.822568,1.340922 +3.822568,1.340922 +2.845195,1.045632 +2.845195,1.045632 +2.845195,1.045632 +3.822568,1.340922 +3.822568,1.340922 +3.822568,1.340922 +3.822568,1.340922 +3.822568,1.340922 +3.822568,1.340922 +2.331009,.8463012 +2.331009,.8463012 +2.331009,.8463012 +2.014463,.7003528 +2.014463,.7003528 +2.014463,.7003528 +2.706466,.9956437 +2.706466,.9956437 +2.706466,.9956437 +2.797748,1.028815 +2.797748,1.028815 +2.797748,1.028815 +2.409628,.8794723 +2.409628,.8794723 +2.409628,.8794723 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +1.626088,.486177 +1.626088,.486177 +1.626088,.486177 +1.626088,.486177 +1.626088,.486177 +5.174607,1.643763 +5.174607,1.643763 +5.174607,1.643763 +5.174607,1.643763 +5.174607,1.643763 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +4.56308,1.517998 +4.56308,1.517998 +4.56308,1.517998 +2.898298,1.064124 +2.898298,1.064124 +2.898298,1.064124 +1.881605,.6321253 +1.881605,.6321253 +1.881605,.6321253 +3.3057,1.195648 +3.3057,1.195648 +3.3057,1.195648 +3.3057,1.195648 +3.3057,1.195648 +3.590529,1.278299 +3.590529,1.278299 +3.590529,1.278299 +3.590529,1.278299 +3.590529,1.278299 +1.587174,.4619548 +1.587174,.4619548 +1.587174,.4619548 +5.171269,1.643118 +5.171269,1.643118 +5.171269,1.643118 +2.637642,.9698853 +2.637642,.9698853 +2.637642,.9698853 +1.55574,.4419512 +1.55574,.4419512 +1.55574,.4419512 +3.001837,1.099224 +3.001837,1.099224 +3.001837,1.099224 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.090163,.7372421 +2.090163,.7372421 +2.090163,.7372421 +3.17372,1.154904 +3.17372,1.154904 +3.17372,1.154904 +3.249435,1.178481 +3.249435,1.178481 +3.249435,1.178481 +5.57245,1.717835 +5.57245,1.717835 +5.57245,1.717835 +5.279221,1.663779 +5.279221,1.663779 +5.279221,1.663779 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.636183,1.290935 +3.636183,1.290935 +3.636183,1.290935 +3.13175,1.141592 +3.13175,1.141592 +3.13175,1.141592 +3.13175,1.141592 +3.13175,1.141592 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +5.451887,1.695962 +5.451887,1.695962 +5.451887,1.695962 +3.13175,1.141592 +3.13175,1.141592 +3.13175,1.141592 +2.014463,.7003528 +2.014463,.7003528 +2.014463,.7003528 +2.301742,.8336662 +2.301742,.8336662 +2.301742,.8336662 +2.014463,.7003528 +2.014463,.7003528 +2.014463,.7003528 +4.885274,1.586225 +4.885274,1.586225 +4.885274,1.586225 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +4.159989,1.425512 +4.159989,1.425512 +4.159989,1.425512 +4.917929,1.592887 +4.917929,1.592887 +4.917929,1.592887 +4.406809,1.483151 +4.406809,1.483151 +4.406809,1.483151 +3.890937,1.35865 +3.890937,1.35865 +3.890937,1.35865 +3.890937,1.35865 +3.890937,1.35865 +3.890937,1.35865 +3.890937,1.35865 +3.890937,1.35865 +3.890937,1.35865 +2.529939,.9281953 +2.529939,.9281953 +2.529939,.9281953 +2.529939,.9281953 +2.529939,.9281953 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.529939,.9281953 +2.529939,.9281953 +2.529939,.9281953 +2.529939,.9281953 +2.529939,.9281953 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.496229,.9147811 +2.496229,.9147811 +2.496229,.9147811 +2.496229,.9147811 +2.496229,.9147811 +3.893912,1.359414 +3.893912,1.359414 +3.893912,1.359414 +3.893912,1.359414 +3.893912,1.359414 +1.823093,.6005346 +1.823093,.6005346 +1.823093,.6005346 +1.823093,.6005346 +1.823093,.6005346 +2.80817,1.032533 +2.80817,1.032533 +2.80817,1.032533 +2.80817,1.032533 +2.80817,1.032533 +2.898298,1.064124 +2.898298,1.064124 +2.898298,1.064124 +2.898298,1.064124 +2.898298,1.064124 +3.35797,1.211336 +3.35797,1.211336 +3.35797,1.211336 +3.35797,1.211336 +3.35797,1.211336 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +3.353726,1.210072 +3.353726,1.210072 +3.353726,1.210072 +2.557909,.9391899 +2.557909,.9391899 +2.557909,.9391899 +2.557909,.9391899 +2.557909,.9391899 +2.557909,.9391899 +2.557909,.9391899 +2.557909,.9391899 +2.557909,.9391899 +2.808304,1.032581 +2.808304,1.032581 +2.808304,1.032581 +1.943044,.6642558 +1.943044,.6642558 +1.943044,.6642558 +1.943044,.6642558 +1.943044,.6642558 +1.943044,.6642558 +1.823093,.6005346 +1.823093,.6005346 +1.823093,.6005346 +2.843876,1.045168 +2.843876,1.045168 +2.843876,1.045168 +1.755895,.5629784 +1.755895,.5629784 +1.755895,.5629784 +1.755895,.5629784 +1.755895,.5629784 +3.590529,1.278299 +3.590529,1.278299 +3.590529,1.278299 +3.590529,1.278299 +3.590529,1.278299 +2.331009,.8463012 +2.331009,.8463012 +2.331009,.8463012 +2.331009,.8463012 +2.331009,.8463012 +2.742736,1.008956 +2.742736,1.008956 +2.742736,1.008956 +2.418604,.8831904 +2.418604,.8831904 +2.418604,.8831904 +3.253547,1.179746 +3.253547,1.179746 +3.253547,1.179746 +8.227385,2.107468 +8.227385,2.107468 +8.227385,2.107468 +4.396136,1.480726 +4.396136,1.480726 +4.396136,1.480726 +2.183688,.7810153 +2.183688,.7810153 +2.183688,.7810153 +1.55574,.4419512 +1.55574,.4419512 +1.55574,.4419512 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +7.696586,2.040777 +7.696586,2.040777 +7.696586,2.040777 +5.177191,1.644263 +5.177191,1.644263 +5.177191,1.644263 +5.177191,1.644263 +5.177191,1.644263 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.388847,1.22049 +3.388847,1.22049 +3.388847,1.22049 +4.446885,1.492204 +4.446885,1.492204 +4.446885,1.492204 +2.733185,1.005468 +2.733185,1.005468 +2.733185,1.005468 +2.733185,1.005468 +2.733185,1.005468 +1.823093,.6005346 +1.823093,.6005346 +1.823093,.6005346 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +3.290753,1.191116 +3.290753,1.191116 +3.290753,1.191116 +1.575521,.4545863 +1.575521,.4545863 +1.575521,.4545863 +11.47832,2.44046 +11.47832,2.44046 +11.47832,2.44046 +11.47832,2.44046 +11.47832,2.44046 +9.223089,2.22171 +9.223089,2.22171 +9.223089,2.22171 +9.223089,2.22171 +9.223089,2.22171 +2.499246,.9159889 +2.499246,.9159889 +2.499246,.9159889 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.9018,1.065331 +2.9018,1.065331 +2.9018,1.065331 +1.500501,.4057988 +1.500501,.4057988 +1.500501,.4057988 +2.421808,.8845144 +2.421808,.8845144 +2.421808,.8845144 +3.685132,1.304306 +3.685132,1.304306 +3.685132,1.304306 +2.090163,.7372421 +2.090163,.7372421 +4.033019,1.394515 +4.033019,1.394515 +4.033019,1.394515 +4.033019,1.394515 +4.033019,1.394515 +2.090163,.7372421 +2.090163,.7372421 +2.090163,.7372421 +2.090163,.7372421 +2.090163,.7372421 +2.742736,1.008956 +2.742736,1.008956 +2.742736,1.008956 +2.742736,1.008956 +2.742736,1.008956 +2.418604,.8831904 +2.418604,.8831904 +2.418604,.8831904 +2.418604,.8831904 +2.418604,.8831904 +3.47793,1.246437 +3.47793,1.246437 +3.47793,1.246437 +3.47793,1.246437 +3.47793,1.246437 +4.711534,1.550013 +4.711534,1.550013 +4.711534,1.550013 +4.711534,1.550013 +4.711534,1.550013 +3.3057,1.195648 +3.3057,1.195648 +3.3057,1.195648 +3.3057,1.195648 +3.3057,1.195648 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +3.353726,1.210072 +3.353726,1.210072 +3.353726,1.210072 +3.353726,1.210072 +3.353726,1.210072 +3.353726,1.210072 +3.353726,1.210072 +3.353726,1.210072 +3.353726,1.210072 +3.353726,1.210072 +2.376297,.8655434 +2.376297,.8655434 +2.376297,.8655434 +2.376297,.8655434 +2.376297,.8655434 +2.376297,.8655434 +2.406512,.8781785 +2.406512,.8781785 +2.406512,.8781785 +2.331009,.8463012 +2.331009,.8463012 +2.331009,.8463012 +2.706466,.9956437 +2.706466,.9956437 +2.706466,.9956437 +2.331009,.8463012 +2.331009,.8463012 +2.331009,.8463012 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +2.331009,.8463012 +2.331009,.8463012 +2.331009,.8463012 +2.706466,.9956437 +2.706466,.9956437 +2.706466,.9956437 +2.159854,.7700406 +2.159854,.7700406 +2.159854,.7700406 +2.159854,.7700406 +2.159854,.7700406 +2.467866,.9033539 +2.467866,.9033539 +2.467866,.9033539 +2.467866,.9033539 +2.467866,.9033539 +3.636183,1.290935 +3.636183,1.290935 +3.636183,1.290935 +3.636183,1.290935 +3.636183,1.290935 +3.636183,1.290935 +3.636183,1.290935 +3.636183,1.290935 +3.636183,1.290935 +3.636183,1.290935 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.995541,1.385179 +3.995541,1.385179 +3.995541,1.385179 +3.995541,1.385179 +3.995541,1.385179 +3.995541,1.385179 +3.995541,1.385179 +3.995541,1.385179 +3.995541,1.385179 +3.995541,1.385179 +3.945375,1.372544 +3.945375,1.372544 +3.945375,1.372544 +3.945375,1.372544 +3.945375,1.372544 +3.92074,1.366281 +3.92074,1.366281 +3.92074,1.366281 +3.92074,1.366281 +3.92074,1.366281 +3.92074,1.366281 +3.92074,1.366281 +3.92074,1.366281 +3.92074,1.366281 +3.92074,1.366281 +3.92074,1.366281 +3.92074,1.366281 +3.92074,1.366281 +3.92074,1.366281 +3.92074,1.366281 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +2.561172,.9404651 +2.561172,.9404651 +2.561172,.9404651 +2.561172,.9404651 +2.561172,.9404651 +2.561172,.9404651 +2.561172,.9404651 +2.561172,.9404651 +2.561172,.9404651 +2.561172,.9404651 +2.561172,.9404651 +2.561172,.9404651 +2.561172,.9404651 +2.561172,.9404651 +2.561172,.9404651 +2.561172,.9404651 +2.561172,.9404651 +2.561172,.9404651 +2.561172,.9404651 +2.561172,.9404651 +2.561503,.9405942 +2.561503,.9405942 +2.561503,.9405942 +2.529342,.9279592 +2.529342,.9279592 +2.529342,.9279592 +2.703779,.9946505 +2.703779,.9946505 +2.703779,.9946505 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.870429,1.054462 +2.870429,1.054462 +2.870429,1.054462 +1.55574,.4419512 +1.55574,.4419512 +1.55574,.4419512 +1.55574,.4419512 +1.55574,.4419512 +1.55574,.4419512 +1.55574,.4419512 +1.55574,.4419512 +1.55574,.4419512 +1.55574,.4419512 +3.887215,1.357693 +3.887215,1.357693 +3.887215,1.357693 +3.887215,1.357693 +3.887215,1.357693 +3.887215,1.357693 +3.887215,1.357693 +3.887215,1.357693 +3.887215,1.357693 +3.887215,1.357693 +4.155299,1.424384 +4.155299,1.424384 +4.155299,1.424384 +4.155299,1.424384 +4.155299,1.424384 +3.887215,1.357693 +3.887215,1.357693 +3.887215,1.357693 +3.887215,1.357693 +3.887215,1.357693 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.552848,.9372095 +2.552848,.9372095 +2.552848,.9372095 +2.552848,.9372095 +2.552848,.9372095 +4.500616,1.504214 +4.500616,1.504214 +4.500616,1.504214 +4.500616,1.504214 +4.500616,1.504214 +1.96332,.6746372 +1.96332,.6746372 +1.96332,.6746372 +3.129014,1.140718 +3.129014,1.140718 +3.129014,1.140718 +3.052242,1.115876 +3.052242,1.115876 +3.052242,1.115876 +3.129014,1.140718 +3.129014,1.140718 +3.129014,1.140718 +2.591554,.9522575 +3.400667,1.223971 +2.591554,.9522575 +2.591554,.9522575 +3.353726,1.210072 +3.353726,1.210072 +3.353726,1.210072 +1.626088,.486177 +1.626088,.486177 +1.626088,.486177 +2.133771,.7578909 +2.133771,.7578909 +2.133771,.7578909 +1.881605,.6321253 +1.881605,.6321253 +1.881605,.6321253 +1.859107,.6200966 +1.859107,.6200966 +1.859107,.6200966 +1.859107,.6200966 +1.859107,.6200966 +2.890229,1.061336 +2.890229,1.061336 +2.890229,1.061336 +2.890229,1.061336 +2.890229,1.061336 +2.497743,.9153874 +2.497743,.9153874 +2.497743,.9153874 +2.497743,.9153874 +2.497743,.9153874 +2.507652,.9193467 +2.507652,.9193467 +2.507652,.9193467 +2.476166,.9067116 +2.476166,.9067116 +2.476166,.9067116 +4.043763,1.397176 +4.043763,1.397176 +4.043763,1.397176 +2.476166,.9067116 +2.476166,.9067116 +2.476166,.9067116 +2.557049,.9388537 +2.557049,.9388537 +1.856553,.6187214 +1.856553,.6187214 +1.856553,.6187214 +1.856553,.6187214 +1.856553,.6187214 +1.856553,.6187214 +2.557049,.9388537 +2.557049,.9388537 +2.30425,.8347552 +2.30425,.8347552 +3.028294,1.107999 +3.028294,1.107999 +3.028294,1.107999 +3.066799,1.120634 +3.066799,1.120634 +3.066799,1.120634 +4.0136,1.389689 +4.0136,1.389689 +4.0136,1.389689 +4.0136,1.389689 +4.0136,1.389689 +3.058653,1.117975 +3.058653,1.117975 +3.058653,1.117975 +3.058653,1.117975 +3.058653,1.117975 +2.529535,.9280354 +2.529535,.9280354 +2.529535,.9280354 +2.529535,.9280354 +2.529535,.9280354 +2.529535,.9280354 +2.529535,.9280354 +2.529535,.9280354 +2.529535,.9280354 +2.529535,.9280354 +2.529535,.9280354 +2.529535,.9280354 +2.529939,.9281953 +2.529939,.9281953 +2.529939,.9281953 +2.529939,.9281953 +2.529939,.9281953 +2.529939,.9281953 +2.529939,.9281953 +2.529939,.9281953 +2.529939,.9281953 +2.529939,.9281953 +2.529939,.9281953 +2.529939,.9281953 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.529939,.9281953 +2.529939,.9281953 +2.529939,.9281953 +1.96775,.6768908 +1.96775,.6768908 +1.96775,.6768908 +1.96775,.6768908 +1.96775,.6768908 +2.45999,.9001571 +2.45999,.9001571 +2.45999,.9001571 +2.45999,.9001571 +2.45999,.9001571 +2.45999,.9001571 +2.45999,.9001571 +2.45999,.9001571 +2.45999,.9001571 +2.45999,.9001571 +2.45999,.9001571 +2.45999,.9001571 +2.45999,.9001571 +2.45999,.9001571 +2.45999,.9001571 +3.60699,1.282874 +3.60699,1.282874 +3.60699,1.282874 +7.358285,1.995827 +7.358285,1.995827 +7.358285,1.995827 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.13175,1.141592 +3.13175,1.141592 +3.13175,1.141592 +3.13175,1.141592 +3.13175,1.141592 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +2.706466,.9956437 +2.706466,.9956437 +2.706466,.9956437 +2.706466,.9956437 +2.706466,.9956437 +9.983452,2.300929 +9.983452,2.300929 +9.983452,2.300929 +9.983452,2.300929 +9.983452,2.300929 +2.472342,.9051659 +2.472342,.9051659 +2.472342,.9051659 +2.331009,.8463012 +2.331009,.8463012 +2.331009,.8463012 +2.331009,.8463012 +2.331009,.8463012 +2.331009,.8463012 +2.331009,.8463012 +2.331009,.8463012 +2.331009,.8463012 +2.331009,.8463012 +3.590529,1.278299 +3.590529,1.278299 +3.590529,1.278299 +3.590529,1.278299 +3.590529,1.278299 +2.159773,.7700033 +2.159773,.7700033 +2.159773,.7700033 +2.159773,.7700033 +2.159773,.7700033 +3.357654,1.211242 +3.357654,1.211242 +3.357654,1.211242 +3.357654,1.211242 +3.357654,1.211242 +3.06415,1.11977 +3.06415,1.11977 +3.06415,1.11977 +3.06415,1.11977 +3.06415,1.11977 +4.763627,1.561009 +4.763627,1.561009 +4.763627,1.561009 +4.763627,1.561009 +4.763627,1.561009 +2.705452,.995269 +2.705452,.995269 +2.705452,.995269 +2.705452,.995269 +2.705452,.995269 +2.705452,.995269 +2.705452,.995269 +2.705452,.995269 +2.705452,.995269 +2.705452,.995269 +2.705452,.995269 +2.705452,.995269 +2.705452,.995269 +2.705452,.995269 +2.705452,.995269 +2.705452,.995269 +2.705452,.995269 +2.705452,.995269 +2.705452,.995269 +2.705452,.995269 +1.55574,.4419512 +1.55574,.4419512 +1.55574,.4419512 +1.823093,.6005346 +1.823093,.6005346 +1.823093,.6005346 +2.494484,.9140821 +2.494484,.9140821 +2.494484,.9140821 +2.494484,.9140821 +2.494484,.9140821 +3.253547,1.179746 +3.253547,1.179746 +3.253547,1.179746 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +3.249435,1.178481 +3.249435,1.178481 +3.249435,1.178481 +2.449357,.8958254 +2.449357,.8958254 +2.449357,.8958254 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.449357,.8958254 +2.449357,.8958254 +2.449357,.8958254 +2.449357,.8958254 +2.449357,.8958254 +2.449357,.8958254 +2.11674,.7498771 +2.11674,.7498771 +2.11674,.7498771 +4.505067,1.505203 +4.505067,1.505203 +4.505067,1.505203 +4.505067,1.505203 +4.505067,1.505203 +2.558606,.9394626 +2.558606,.9394626 +2.558606,.9394626 +2.558606,.9394626 +2.558606,.9394626 +5.911602,1.776917 +5.911602,1.776917 +5.911602,1.776917 +5.911602,1.776917 +5.911602,1.776917 +1.856193,.6185275 +1.856193,.6185275 +1.856193,.6185275 +1.856193,.6185275 +1.856193,.6185275 +3.987288,1.383111 +3.987288,1.383111 +3.987288,1.383111 +3.937225,1.370476 +3.937225,1.370476 +3.937225,1.370476 +3.987288,1.383111 +3.987288,1.383111 +3.987288,1.383111 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.93515,1.076759 +2.93515,1.076759 +2.93515,1.076759 +3.396369,1.222707 +3.396369,1.222707 +3.396369,1.222707 +2.499246,.9159889 +2.499246,.9159889 +2.499246,.9159889 +1.860226,.6206981 +1.860226,.6206981 +1.860226,.6206981 +3.357779,1.21128 +3.357779,1.21128 +3.357779,1.21128 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.950603,1.082009 +2.950603,1.082009 +2.950603,1.082009 +3.001837,1.099224 +3.001837,1.099224 +3.001837,1.099224 +4.365672,1.473772 +4.365672,1.473772 +4.365672,1.473772 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +1.860226,.6206981 +1.860226,.6206981 +1.860226,.6206981 +1.860226,.6206981 +1.860226,.6206981 +2.499246,.9159889 +2.499246,.9159889 +2.499246,.9159889 +2.499246,.9159889 +2.499246,.9159889 +1.860226,.6206981 +1.860226,.6206981 +1.860226,.6206981 +1.860226,.6206981 +1.860226,.6206981 +1.626088,.486177 +1.626088,.486177 +1.626088,.486177 +1.626088,.486177 +1.626088,.486177 +2.184676,.7814678 +2.184676,.7814678 +2.184676,.7814678 +2.184676,.7814678 +2.184676,.7814678 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.93515,1.076759 +2.93515,1.076759 +2.93515,1.076759 +2.93515,1.076759 +2.93515,1.076759 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +1.626088,.486177 +1.626088,.486177 +1.626088,.486177 +1.626088,.486177 +1.626088,.486177 +2.93515,1.076759 +2.93515,1.076759 +2.93515,1.076759 +2.93515,1.076759 +2.93515,1.076759 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.184072,.7811908 +2.184072,.7811908 +2.184072,.7811908 +2.184072,.7811908 +2.184072,.7811908 +2.590836,.9519805 +2.590836,.9519805 +2.590836,.9519805 +2.590836,.9519805 +2.590836,.9519805 +2.934337,1.076482 +2.934337,1.076482 +2.934337,1.076482 +2.934337,1.076482 +2.934337,1.076482 +1.352408,.301887 +1.352408,.301887 +1.352408,.301887 +1.352408,.301887 +1.352408,.301887 +2.611369,.9598745 +2.611369,.9598745 +2.611369,.9598745 +2.611369,.9598745 +2.611369,.9598745 +2.611369,.9598745 +3.383645,1.218953 +3.383645,1.218953 +3.383645,1.218953 +2.611369,.9598745 +2.611369,.9598745 +2.611369,.9598745 +3.110997,1.134943 +3.110997,1.134943 +3.110997,1.134943 +3.523463,1.259444 +3.523463,1.259444 +3.523463,1.259444 +3.034667,1.110102 +3.034667,1.110102 +3.034667,1.110102 +3.13175,1.141592 +3.13175,1.141592 +3.13175,1.141592 +3.636183,1.290935 +3.636183,1.290935 +3.636183,1.290935 +3.13175,1.141592 +3.13175,1.141592 +3.13175,1.141592 +2.679798,.9857414 +2.679798,.9857414 +2.679798,.9857414 +2.590937,.9520195 +2.590937,.9520195 +2.590937,.9520195 +2.557751,.9391285 +2.557751,.9391285 +2.557751,.9391285 +2.557751,.9391285 +2.557751,.9391285 +2.557751,.9391285 +2.557751,.9391285 +2.557751,.9391285 +2.557751,.9391285 +2.557751,.9391285 +2.649583,.9744024 +2.649583,.9744024 +2.649583,.9744024 +2.649583,.9744024 +2.649583,.9744024 +2.557751,.9391285 +2.557751,.9391285 +2.557751,.9391285 +2.557751,.9391285 +2.557751,.9391285 +2.80817,1.032533 +2.80817,1.032533 +2.80817,1.032533 +2.52655,.9268549 +2.52655,.9268549 +2.52655,.9268549 +2.52655,.9268549 +2.52655,.9268549 +2.5901,.9516963 +2.5901,.9516963 +2.5901,.9516963 +2.5901,.9516963 +2.5901,.9516963 +1.88055,.6315641 +1.88055,.6315641 +1.88055,.6315641 +1.88055,.6315641 +1.88055,.6315641 +2.5901,.9516963 +2.5901,.9516963 +2.5901,.9516963 +2.5901,.9516963 +2.5901,.9516963 +3.481924,1.247585 +3.481924,1.247585 +3.481924,1.247585 +3.481924,1.247585 +3.481924,1.247585 +3.07432,1.123084 +3.07432,1.123084 +3.07432,1.123084 +3.07432,1.123084 +3.07432,1.123084 +2.23212,.8029516 +2.23212,.8029516 +2.23212,.8029516 +2.23212,.8029516 +2.529939,.9281953 +2.529939,.9281953 +2.529939,.9281953 +2.529939,.9281953 +2.529939,.9281953 +2.529939,.9281953 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +5.108825,1.630969 +5.108825,1.630969 +5.108825,1.630969 +5.108825,1.630969 +5.108825,1.630969 +4.703553,1.548318 +4.703553,1.548318 +4.703553,1.548318 +4.703553,1.548318 +4.703553,1.548318 +2.527567,.9272571 +2.527567,.9272571 +2.527567,.9272571 +2.527567,.9272571 +2.527567,.9272571 +2.591238,.9521358 +2.591238,.9521358 +2.591238,.9521358 +3.929046,1.368397 +3.929046,1.368397 +4.025937,1.392758 +4.025937,1.392758 +4.025937,1.392758 +2.996566,1.097467 +2.996566,1.097467 +2.996566,1.097467 +2.589639,.9515185 +2.589639,.9515185 +2.589639,.9515185 +2.618861,.9627396 +2.618861,.9627396 +2.618861,.9627396 +2.618861,.9627396 +2.618861,.9627396 +3.984977,1.382532 +3.984977,1.382532 +3.984977,1.382532 +3.984977,1.382532 +3.984977,1.382532 +2.554606,.9378982 +2.554606,.9378982 +2.554606,.9378982 +2.554606,.9378982 +2.554606,.9378982 +3.585017,1.276763 +3.585017,1.276763 +2.157247,.7688327 +2.157247,.7688327 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +5.05158,1.619701 +5.05158,1.619701 +5.05158,1.619701 +1.83687,.608063 +1.83687,.608063 +1.83687,.608063 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.80817,1.032533 +2.80817,1.032533 +2.80817,1.032533 +2.80817,1.032533 +2.80817,1.032533 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.418604,.8831904 +2.418604,.8831904 +2.418604,.8831904 +2.418604,.8831904 +2.418604,.8831904 +2.090163,.7372421 +2.090163,.7372421 +2.090163,.7372421 +2.090163,.7372421 +2.090163,.7372421 +1.575521,.4545863 +1.575521,.4545863 +1.575521,.4545863 +1.575521,.4545863 +1.575521,.4545863 +2.498222,.9155794 +2.498222,.9155794 +2.498222,.9155794 +2.498222,.9155794 +2.498222,.9155794 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.090163,.7372421 +2.090163,.7372421 +2.090163,.7372421 +2.090163,.7372421 +2.090163,.7372421 +4.350795,1.470359 +4.350795,1.470359 +4.350795,1.470359 +3.279539,1.187703 +3.279539,1.187703 +3.279539,1.187703 +2.529939,.9281953 +2.529939,.9281953 +2.529939,.9281953 +2.529939,.9281953 +2.529939,.9281953 +2.529939,.9281953 +1.637984,.493466 +1.637984,.493466 +1.637984,.493466 +1.637984,.493466 +1.637984,.493466 +1.410753,.3441235 +1.410753,.3441235 +1.410753,.3441235 +1.410753,.3441235 +1.410753,.3441235 +1.943044,.6642558 +1.943044,.6642558 +1.943044,.6642558 +1.943044,.6642558 +1.943044,.6642558 +2.200659,.7887568 +2.200659,.7887568 +2.200659,.7887568 +2.200659,.7887568 +2.200659,.7887568 +2.026086,.7061057 +2.026086,.7061057 +2.026086,.7061057 +2.026086,.7061057 +2.026086,.7061057 +3.110997,1.134943 +3.110997,1.134943 +3.110997,1.134943 +3.110997,1.134943 +3.110997,1.134943 +3.110997,1.134943 +3.110997,1.134943 +3.110997,1.134943 +3.110997,1.134943 +3.110997,1.134943 +3.071937,1.122308 +3.071937,1.122308 +3.071937,1.122308 +3.071937,1.122308 +3.071937,1.122308 +3.071937,1.122308 +3.071937,1.122308 +3.071937,1.122308 +3.071937,1.122308 +3.071937,1.122308 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.735499,1.006314 +2.735499,1.006314 +2.735499,1.006314 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +3.985457,1.382652 +3.985457,1.382652 +3.985457,1.382652 +3.985457,1.382652 +3.985457,1.382652 +3.359735,1.211862 +3.359735,1.211862 +3.359735,1.211862 +3.359735,1.211862 +3.359735,1.211862 +2.500702,.9165713 +2.500702,.9165713 +2.500702,.9165713 +2.500702,.9165713 +2.500702,.9165713 +3.985457,1.382652 +3.985457,1.382652 +3.985457,1.382652 +3.985457,1.382652 +3.985457,1.382652 +3.985457,1.382652 +3.985457,1.382652 +3.985457,1.382652 +3.985457,1.382652 +3.985457,1.382652 +9.115742,2.210003 +9.115742,2.210003 +9.115742,2.210003 +9.115742,2.210003 +9.115742,2.210003 +5.966915,1.78623 +5.966915,1.78623 +5.966915,1.78623 +5.966915,1.78623 +5.966915,1.78623 +1.820688,.5992144 +1.820688,.5992144 +1.820688,.5992144 +1.820688,.5992144 +1.820688,.5992144 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +3.47793,1.246437 +3.47793,1.246437 +3.47793,1.246437 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +3.590529,1.278299 +3.590529,1.278299 +3.590529,1.278299 +3.590529,1.278299 +3.590529,1.278299 +2.301742,.8336662 +2.301742,.8336662 +2.301742,.8336662 +2.301742,.8336662 +2.301742,.8336662 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +2.529939,.9281953 +2.529939,.9281953 +2.529939,.9281953 +2.529939,.9281953 +2.529939,.9281953 +2.529939,.9281953 +2.529939,.9281953 +2.529939,.9281953 +2.529939,.9281953 +2.529939,.9281953 +5.399965,1.686393 +5.399965,1.686393 +5.399965,1.686393 +5.399965,1.686393 +5.399965,1.686393 +2.467866,.9033539 +2.467866,.9033539 +2.467866,.9033539 +2.467866,.9033539 +2.467866,.9033539 +2.499246,.9159889 +2.499246,.9159889 +2.499246,.9159889 +2.499246,.9159889 +2.499246,.9159889 +4.711534,1.550013 +4.711534,1.550013 +4.711534,1.550013 +7.829855,2.057944 +7.829855,2.057944 +7.829855,2.057944 +3.583911,1.276455 +3.583911,1.276455 +2.301742,.8336662 +2.301742,.8336662 +2.301742,.8336662 +2.301742,.8336662 +2.301742,.8336662 +2.672485,.9830087 +2.672485,.9830087 +2.672485,.9830087 +2.672485,.9830087 +2.672485,.9830087 +2.672485,.9830087 +2.672485,.9830087 +2.672485,.9830087 +2.672485,.9830087 +2.672485,.9830087 +2.313224,.8386422 +2.313224,.8386422 +2.313224,.8386422 +2.313224,.8386422 +2.313224,.8386422 +3.169125,1.153455 +3.169125,1.153455 +3.169125,1.153455 +2.587322,.9506236 +2.587322,.9506236 +2.587322,.9506236 +2.587322,.9506236 +2.587322,.9506236 +2.587322,.9506236 +2.18111,.7798338 +2.18111,.7798338 +3.390824,1.221073 +3.390824,1.221073 +3.13175,1.141592 +3.13175,1.141592 +3.13175,1.141592 +3.13175,1.141592 +3.13175,1.141592 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +1.587427,.4621147 +1.587427,.4621147 +1.587427,.4621147 +1.587427,.4621147 +1.587427,.4621147 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +4.350795,1.470359 +4.350795,1.470359 +4.350795,1.470359 +4.350795,1.470359 +4.350795,1.470359 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.496229,.9147811 +2.496229,.9147811 +2.496229,.9147811 +2.496229,.9147811 +2.496229,.9147811 +3.353726,1.210072 +3.353726,1.210072 +3.353726,1.210072 +3.353726,1.210072 +3.353726,1.210072 +2.735499,1.006314 +2.735499,1.006314 +2.735499,1.006314 +2.735499,1.006314 +2.735499,1.006314 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.49554,.9145051 +2.49554,.9145051 +2.49554,.9145051 +2.156651,.7685568 +2.156651,.7685568 +2.156651,.7685568 +2.558309,.9393466 +2.558309,.9393466 +2.558309,.9393466 +2.558309,.9393466 +2.558309,.9393466 +2.558309,.9393466 +5.408915,1.688048 +5.408915,1.688048 +5.408915,1.688048 +5.408915,1.688048 +5.408915,1.688048 +4.565478,1.518523 +4.565478,1.518523 +4.565478,1.518523 +4.565478,1.518523 +4.565478,1.518523 +3.071937,1.122308 +3.071937,1.122308 +3.071937,1.122308 +3.071937,1.122308 +3.071937,1.122308 +1.607612,.4747497 +1.607612,.4747497 +1.607612,.4747497 +1.607612,.4747497 +1.607612,.4747497 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +3.357779,1.21128 +3.357779,1.21128 +3.357779,1.21128 +3.357779,1.21128 +3.357779,1.21128 +2.132736,.7574055 +2.132736,.7574055 +2.132736,.7574055 +1.83687,.608063 +1.83687,.608063 +1.83687,.608063 +1.587427,.4621147 +1.587427,.4621147 +1.587427,.4621147 +3.31562,1.198645 +3.31562,1.198645 +3.31562,1.198645 +5.845367,1.765649 +5.845367,1.765649 +5.845367,1.765649 +2.529939,.9281953 +2.529939,.9281953 +2.529939,.9281953 +3.314335,1.198257 +3.314335,1.198257 +3.314335,1.198257 +2.158862,.7695814 +2.158862,.7695814 +2.158862,.7695814 +2.158862,.7695814 +2.158862,.7695814 +2.560932,.9403712 +2.560932,.9403712 +2.560932,.9403712 +2.560932,.9403712 +2.560932,.9403712 +2.560932,.9403712 +2.560932,.9403712 +2.560932,.9403712 +2.560932,.9403712 +2.560932,.9403712 +2.900468,1.064872 +2.900468,1.064872 +2.900468,1.064872 +2.900468,1.064872 +2.900468,1.064872 +3.582829,1.276153 +3.582829,1.276153 +3.582829,1.276153 +5.451793,1.695945 +5.451793,1.695945 +5.451793,1.695945 +2.11674,.7498771 +2.11674,.7498771 +2.11674,.7498771 +2.11674,.7498771 +2.11674,.7498771 +1.823093,.6005346 +1.823093,.6005346 +1.823093,.6005346 +1.823093,.6005346 +1.823093,.6005346 +1.823093,.6005346 +1.823093,.6005346 +1.823093,.6005346 +1.823093,.6005346 +1.823093,.6005346 +3.772824,1.327824 +3.772824,1.327824 +3.772824,1.327824 +3.772824,1.327824 +3.772824,1.327824 +2.291613,.8292558 +2.291613,.8292558 +2.291613,.8292558 +2.291613,.8292558 +2.291613,.8292558 +3.003281,1.099705 +3.003281,1.099705 +3.003281,1.099705 +3.003281,1.099705 +3.003281,1.099705 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +3.47793,1.246437 +3.47793,1.246437 +3.47793,1.246437 +3.47793,1.246437 +3.47793,1.246437 +5.771085,1.75286 +5.771085,1.75286 +5.771085,1.75286 +5.771085,1.75286 +5.771085,1.75286 +2.125181,.7538571 +2.125181,.7538571 +2.125181,.7538571 +2.125181,.7538571 +2.125181,.7538571 +2.706466,.9956437 +2.706466,.9956437 +2.706466,.9956437 +2.706466,.9956437 +2.706466,.9956437 +3.636183,1.290935 +3.636183,1.290935 +3.636183,1.290935 +3.636183,1.290935 +3.636183,1.290935 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +2.706466,.9956437 +2.706466,.9956437 +2.706466,.9956437 +2.706466,.9956437 +2.706466,.9956437 +2.331009,.8463012 +2.331009,.8463012 +2.331009,.8463012 +2.331009,.8463012 +2.331009,.8463012 +3.842667,1.346167 +3.842667,1.346167 +3.842667,1.346167 +3.842667,1.346167 +3.842667,1.346167 +3.842667,1.346167 +3.842667,1.346167 +3.842667,1.346167 +3.842667,1.346167 +3.842667,1.346167 +3.842667,1.346167 +3.842667,1.346167 +3.842667,1.346167 +3.842667,1.346167 +3.842667,1.346167 +3.842667,1.346167 +3.842667,1.346167 +3.842667,1.346167 +3.842667,1.346167 +3.842667,1.346167 +2.898298,1.064124 +2.898298,1.064124 +2.898298,1.064124 +3.353726,1.210072 +3.353726,1.210072 +3.353726,1.210072 +1.800199,.5878971 +1.800199,.5878971 +1.800199,.5878971 +1.800199,.5878971 +1.800199,.5878971 +3.725445,1.315186 +3.725445,1.315186 +3.725445,1.315186 +3.725445,1.315186 +3.725445,1.315186 +2.989113,1.094977 +2.989113,1.094977 +2.989113,1.094977 +2.951583,1.082342 +2.951583,1.082342 +2.951583,1.082342 +2.951583,1.082342 +2.951583,1.082342 +2.951583,1.082342 +1.607612,.4747497 +1.607612,.4747497 +1.607612,.4747497 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +3.357779,1.21128 +3.357779,1.21128 +3.357779,1.21128 +1.607612,.4747497 +1.607612,.4747497 +1.607612,.4747497 +2.529939,.9281953 +2.529939,.9281953 +1.83687,.608063 +1.83687,.608063 +1.587427,.4621147 +1.587427,.4621147 +1.587427,.4621147 +1.587427,.4621147 +1.587427,.4621147 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +1.823093,.6005346 +1.823093,.6005346 +1.823093,.6005346 +1.823093,.6005346 +1.823093,.6005346 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.449357,.8958254 +2.449357,.8958254 +2.449357,.8958254 +2.449357,.8958254 +2.449357,.8958254 +2.558201,.9393044 +2.558201,.9393044 +2.558201,.9393044 +6.318299,1.84345 +6.318299,1.84345 +6.318299,1.84345 +2.558201,.9393044 +2.558201,.9393044 +2.558201,.9393044 +3.94217,1.371731 +3.94217,1.371731 +3.94217,1.371731 +3.796963,1.334202 +3.796963,1.334202 +3.796963,1.334202 +3.845242,1.346837 +3.845242,1.346837 +3.845242,1.346837 +3.845242,1.346837 +3.845242,1.346837 +3.845242,1.346837 +1.625285,.4856829 +1.625285,.4856829 +1.625285,.4856829 +1.625285,.4856829 +1.625285,.4856829 +2.590274,.9517635 +2.590274,.9517635 +2.590274,.9517635 +2.590274,.9517635 +2.590274,.9517635 +2.590274,.9517635 +2.590274,.9517635 +2.590274,.9517635 +2.590274,.9517635 +2.590274,.9517635 +3.941477,1.371555 +3.941477,1.371555 +3.941477,1.371555 +3.941477,1.371555 +3.941477,1.371555 +3.70542,1.309797 +3.70542,1.309797 +3.70542,1.309797 +3.70542,1.309797 +3.70542,1.309797 +1.790523,.5825076 +1.790523,.5825076 +1.790523,.5825076 +1.790523,.5825076 +1.790523,.5825076 +2.507652,.9193467 +2.507652,.9193467 +2.507652,.9193467 +2.507652,.9193467 +2.507652,.9193467 +2.804465,1.031213 +2.804465,1.031213 +2.804465,1.031213 +2.804465,1.031213 +2.804465,1.031213 +2.113947,.7485569 +2.113947,.7485569 +2.113947,.7485569 +2.113947,.7485569 +2.113947,.7485569 +2.113947,.7485569 +2.113947,.7485569 +2.113947,.7485569 +2.113947,.7485569 +2.113947,.7485569 +2.446125,.8945053 +2.446125,.8945053 +2.446125,.8945053 +2.446125,.8945053 +2.446125,.8945053 +2.507652,.9193467 +2.507652,.9193467 +2.507652,.9193467 +2.507652,.9193467 +2.507652,.9193467 +2.113947,.7485569 +2.113947,.7485569 +2.113947,.7485569 +2.113947,.7485569 +2.113947,.7485569 +4.823937,1.57359 +4.823937,1.57359 +4.823937,1.57359 +3.709599,1.310924 +3.709599,1.310924 +3.709599,1.310924 +3.709599,1.310924 +3.709599,1.310924 +2.327613,.8448431 +2.327613,.8448431 +2.327613,.8448431 +2.327613,.8448431 +2.327613,.8448431 +2.327613,.8448431 +2.327613,.8448431 +2.327613,.8448431 +2.327613,.8448431 +2.327613,.8448431 +3.618582,1.286082 +3.709599,1.310924 +3.709599,1.310924 +3.709599,1.310924 +3.709599,1.310924 +3.709599,1.310924 +3.709599,1.310924 +3.709599,1.310924 +3.709599,1.310924 +3.709599,1.310924 +3.709599,1.310924 +3.709599,1.310924 +3.709599,1.310924 +3.709599,1.310924 +3.709599,1.310924 +3.709599,1.310924 +3.618582,1.286082 +3.618582,1.286082 +3.618582,1.286082 +3.618582,1.286082 +3.618582,1.286082 +3.96874,1.378449 +3.96874,1.378449 +3.96874,1.378449 +3.96874,1.378449 +3.96874,1.378449 +2.198702,.7878671 +2.198702,.7878671 +2.198702,.7878671 +2.198702,.7878671 +2.198702,.7878671 +5.957755,1.784694 +5.957755,1.784694 +5.957755,1.784694 +5.318631,1.671216 +5.318631,1.671216 +5.318631,1.671216 +3.051947,1.11578 +3.051947,1.11578 +3.051947,1.11578 +3.090753,1.128415 +3.090753,1.128415 +3.090753,1.128415 +3.090753,1.128415 +3.090753,1.128415 +3.090753,1.128415 +3.090753,1.128415 +3.090753,1.128415 +3.090753,1.128415 +6.784985,1.914712 +6.784985,1.914712 +6.784985,1.914712 +6.784985,1.914712 +6.784985,1.914712 +3.092429,1.128957 +3.092429,1.128957 +3.092429,1.128957 +3.092429,1.128957 +3.092429,1.128957 +2.331009,.8463012 +2.331009,.8463012 +2.331009,.8463012 +2.331009,.8463012 +2.331009,.8463012 +3.188051,1.15941 +3.188051,1.15941 +3.188051,1.15941 +3.188051,1.15941 +3.188051,1.15941 +3.835293,1.344246 +3.835293,1.344246 +3.835293,1.344246 +3.835293,1.344246 +3.835293,1.344246 +2.454278,.8978324 +2.454278,.8978324 +2.454278,.8978324 +2.454278,.8978324 +2.454278,.8978324 +2.454278,.8978324 +2.454278,.8978324 +2.454278,.8978324 +2.454278,.8978324 +2.454278,.8978324 +2.454278,.8978324 +2.497565,.915316 +2.497565,.915316 +2.497565,.915316 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +2.706466,.9956437 +2.331009,.8463012 +2.331009,.8463012 +2.331009,.8463012 +2.331009,.8463012 +2.331009,.8463012 +3.13175,1.141592 +3.13175,1.141592 +3.13175,1.141592 +3.13175,1.141592 +3.13175,1.141592 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +4.885274,1.586225 +4.885274,1.586225 +4.885274,1.586225 +4.885274,1.586225 +4.885274,1.586225 +4.20756,1.436883 +4.20756,1.436883 +4.20756,1.436883 +4.20756,1.436883 +4.20756,1.436883 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.13175,1.141592 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +3.290753,1.191116 +3.290753,1.191116 +3.290753,1.191116 +3.290753,1.191116 +3.290753,1.191116 +2.418604,.8831904 +2.418604,.8831904 +2.418604,.8831904 +2.418604,.8831904 +2.418604,.8831904 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +1.823093,.6005346 +1.823093,.6005346 +1.823093,.6005346 +3.353726,1.210072 +3.353726,1.210072 +3.353726,1.210072 +3.353726,1.210072 +3.353726,1.210072 +2.93515,1.076759 +2.93515,1.076759 +2.93515,1.076759 +2.93515,1.076759 +2.93515,1.076759 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.184676,.7814678 +2.184676,.7814678 +2.184676,.7814678 +2.184676,.7814678 +2.184676,.7814678 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.557805,.9391496 +2.557805,.9391496 +2.557805,.9391496 +2.557805,.9391496 +2.557805,.9391496 +2.557805,.9391496 +2.557805,.9391496 +2.557805,.9391496 +2.557805,.9391496 +2.557805,.9391496 +2.557805,.9391496 +2.557805,.9391496 +2.557805,.9391496 +2.557805,.9391496 +2.557805,.9391496 +2.557805,.9391496 +2.557805,.9391496 +2.557805,.9391496 +2.557805,.9391496 +2.557805,.9391496 +2.557805,.9391496 +2.37141,.8634847 +2.37141,.8634847 +2.37141,.8634847 +2.37141,.8634847 +2.37141,.8634847 +2.37141,.8634847 +2.37141,.8634847 +2.37141,.8634847 +2.37141,.8634847 +1.487957,.3974041 +1.487957,.3974041 +1.487957,.3974041 +2.37141,.8634847 +2.37141,.8634847 +2.37141,.8634847 +4.677362,1.542734 +4.677362,1.542734 +1.836511,.6078675 +1.836511,.6078675 +1.836511,.6078675 +1.836511,.6078675 +1.836511,.6078675 +4.212884,1.438147 +4.212884,1.438147 +4.212884,1.438147 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +1.625674,.4859227 +1.625674,.4859227 +1.625674,.4859227 +2.590895,.9520033 +2.590895,.9520033 +2.590895,.9520033 +1.881127,.6318711 +1.881127,.6318711 +1.881127,.6318711 +2.590895,.9520033 +2.590895,.9520033 +2.590895,.9520033 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +2.331009,.8463012 +2.331009,.8463012 +2.331009,.8463012 +2.331009,.8463012 +2.331009,.8463012 +2.014463,.7003528 +2.014463,.7003528 +2.014463,.7003528 +2.014463,.7003528 +2.014463,.7003528 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.13175,1.141592 +3.13175,1.141592 +3.13175,1.141592 +3.13175,1.141592 +3.13175,1.141592 +2.083719,.734154 +2.083719,.734154 +2.083719,.734154 +2.083719,.734154 +2.083719,.734154 +2.083719,.734154 +2.560503,.9402035 +2.560503,.9402035 +2.560503,.9402035 +2.560503,.9402035 +2.560503,.9402035 +2.560503,.9402035 +2.560503,.9402035 +2.560503,.9402035 +2.560503,.9402035 +2.560503,.9402035 +2.560112,.9400509 +2.560112,.9400509 +2.560112,.9400509 +2.560112,.9400509 +2.560112,.9400509 +2.528354,.9275685 +2.528354,.9275685 +2.528354,.9275685 +2.528354,.9275685 +2.528354,.9275685 +3.720092,1.313748 +3.720092,1.313748 +3.720092,1.313748 +3.673384,1.301113 +3.673384,1.301113 +3.673384,1.301113 +3.720092,1.313748 +3.720092,1.313748 +3.720092,1.313748 +3.720092,1.313748 +3.720092,1.313748 +3.720092,1.313748 +3.720092,1.313748 +3.720092,1.313748 +3.720092,1.313748 +2.693365,.9907915 +2.693365,.9907915 +2.693365,.9907915 +2.693365,.9907915 +2.693365,.9907915 +3.709599,1.310924 +3.709599,1.310924 +3.709599,1.310924 +3.709599,1.310924 +3.709599,1.310924 +3.127187,1.140134 +3.127187,1.140134 +3.127187,1.140134 +3.127187,1.140134 +3.127187,1.140134 +4.748346,1.557796 +4.748346,1.557796 +4.748346,1.557796 +4.748346,1.557796 +4.748346,1.557796 +2.735499,1.006314 +2.735499,1.006314 +2.735499,1.006314 +3.35797,1.211336 +3.35797,1.211336 +3.35797,1.211336 +4.441265,1.490939 +4.441265,1.490939 +4.441265,1.490939 +10.77051,2.376812 +10.77051,2.376812 +10.77051,2.376812 +2.496229,.9147811 +2.496229,.9147811 +2.496229,.9147811 +2.496229,.9147811 +2.496229,.9147811 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +4.162458,1.426106 +4.162458,1.426106 +4.162458,1.426106 +4.162458,1.426106 +4.162458,1.426106 +1.857981,.6194903 +1.857981,.6194903 +1.857981,.6194903 +1.857981,.6194903 +1.857981,.6194903 +3.110997,1.134943 +3.110997,1.134943 +3.110997,1.134943 +3.110997,1.134943 +3.110997,1.134943 +3.110997,1.134943 +3.110997,1.134943 +3.110997,1.134943 +3.110997,1.134943 +3.110997,1.134943 +3.110997,1.134943 +3.110997,1.134943 +3.110997,1.134943 +3.110997,1.134943 +3.110997,1.134943 +2.819872,1.036692 +2.819872,1.036692 +2.819872,1.036692 +2.819872,1.036692 +2.819872,1.036692 +6.598085,1.88678 +6.598085,1.88678 +6.598085,1.88678 +2.646937,.973403 +2.646937,.973403 +2.646937,.973403 +2.646937,.973403 +2.646937,.973403 +3.249254,1.178426 +3.249254,1.178426 +3.249254,1.178426 +3.249254,1.178426 +3.249254,1.178426 +2.476166,.9067116 +2.476166,.9067116 +2.476166,.9067116 +2.476166,.9067116 +2.476166,.9067116 +2.476166,.9067116 +2.476166,.9067116 +2.476166,.9067116 +2.476166,.9067116 +2.476166,.9067116 +3.890944,1.358652 +3.890944,1.358652 +3.890944,1.358652 +3.890944,1.358652 +3.890944,1.358652 +3.800281,1.335075 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.331009,.8463012 +2.331009,.8463012 +2.331009,.8463012 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.13175,1.141592 +3.13175,1.141592 +3.13175,1.141592 +4.885274,1.586225 +4.885274,1.586225 +4.885274,1.586225 +1.575521,.4545863 +1.575521,.4545863 +1.575521,.4545863 +1.575521,.4545863 +1.575521,.4545863 +2.80817,1.032533 +2.80817,1.032533 +2.80817,1.032533 +2.80817,1.032533 +2.80817,1.032533 +2.365803,.8611176 +2.365803,.8611176 +2.365803,.8611176 +2.365803,.8611176 +2.365803,.8611176 +3.872929,1.354011 +3.872929,1.354011 +3.872929,1.354011 +3.872929,1.354011 +3.872929,1.354011 +3.872929,1.354011 +7.917645,2.069094 +7.917645,2.069094 +7.917645,2.069094 +5.458982,1.697262 +5.458982,1.697262 +5.458982,1.697262 +3.872929,1.354011 +3.872929,1.354011 +3.872929,1.354011 +1.626088,.486177 +1.626088,.486177 +1.626088,.486177 +1.626088,.486177 +1.626088,.486177 +1.626088,.486177 +2.898298,1.064124 +2.898298,1.064124 +2.898298,1.064124 +3.353726,1.210072 +3.353726,1.210072 +3.353726,1.210072 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.80817,1.032533 +2.80817,1.032533 +2.80817,1.032533 +3.249435,1.178481 +3.249435,1.178481 +3.249435,1.178481 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.46952,.9040239 +2.46952,.9040239 +2.46952,.9040239 +2.46952,.9040239 +2.46952,.9040239 +2.46952,.9040239 +2.46952,.9040239 +2.46952,.9040239 +2.46952,.9040239 +2.46952,.9040239 +2.438514,.8913888 +2.438514,.8913888 +2.438514,.8913888 +2.438514,.8913888 +2.438514,.8913888 +2.46952,.9040239 +2.46952,.9040239 +2.46952,.9040239 +2.46952,.9040239 +2.46952,.9040239 +2.438514,.8913888 +2.438514,.8913888 +2.438514,.8913888 +2.438514,.8913888 +2.438514,.8913888 +2.46952,.9040239 +2.46952,.9040239 +2.46952,.9040239 +2.46952,.9040239 +2.46952,.9040239 +3.146872,1.146409 +3.146872,1.146409 +3.146872,1.146409 +3.146872,1.146409 +3.146872,1.146409 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +5.451887,1.695962 +5.451887,1.695962 +5.451887,1.695962 +5.451887,1.695962 +5.451887,1.695962 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +2.672485,.9830087 +2.672485,.9830087 +2.672485,.9830087 +2.672485,.9830087 +2.672485,.9830087 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.476166,.9067116 +2.476166,.9067116 +2.476166,.9067116 +2.476166,.9067116 +2.476166,.9067116 +2.804465,1.031213 +2.804465,1.031213 +2.804465,1.031213 +2.804465,1.031213 +2.804465,1.031213 +1.857213,.619077 +1.857213,.619077 +1.857213,.619077 +1.857213,.619077 +1.857213,.619077 +2.557958,.9392093 +2.557958,.9392093 +2.557958,.9392093 +2.557958,.9392093 +2.557958,.9392093 +2.156355,.7684195 +2.156355,.7684195 +2.156355,.7684195 +2.156355,.7684195 +2.156355,.7684195 +2.557958,.9392093 +2.557958,.9392093 +2.557958,.9392093 +2.557958,.9392093 +2.557958,.9392093 +5.385526,1.683715 +5.385526,1.683715 +5.385526,1.683715 +6.107275,1.809481 +6.107275,1.809481 +6.107275,1.809481 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.529939,.9281953 +2.529939,.9281953 +2.529939,.9281953 +2.558491,.9394175 +2.558491,.9394175 +2.558491,.9394175 +2.558491,.9394175 +2.558491,.9394175 +2.082739,.7336836 +2.082739,.7336836 +2.082739,.7336836 +2.082739,.7336836 +2.082739,.7336836 +2.082739,.7336836 +2.798195,1.028974 +2.798195,1.028974 +2.798195,1.028974 +2.924419,1.073096 +2.924419,1.073096 +2.924419,1.073096 +2.924419,1.073096 +2.924419,1.073096 +3.396369,1.222707 +3.396369,1.222707 +3.396369,1.222707 +3.396369,1.222707 +3.396369,1.222707 +2.527969,.9274161 +2.527969,.9274161 +2.527969,.9274161 +2.527969,.9274161 +2.527969,.9274161 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +1.626088,.486177 +1.626088,.486177 +1.626088,.486177 +3.396369,1.222707 +3.396369,1.222707 +3.396369,1.222707 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.184676,.7814678 +2.184676,.7814678 +2.184676,.7814678 +3.249435,1.178481 +3.249435,1.178481 +3.249435,1.178481 +3.249435,1.178481 +3.249435,1.178481 +2.418604,.8831904 +2.418604,.8831904 +2.418604,.8831904 +2.418604,.8831904 +2.418604,.8831904 +3.460235,1.241337 +3.460235,1.241337 +3.460235,1.241337 +3.460235,1.241337 +3.460235,1.241337 +6.100321,1.808341 +6.100321,1.808341 +6.100321,1.808341 +6.100321,1.808341 +6.100321,1.808341 +2.385661,.8694764 +2.385661,.8694764 +2.385661,.8694764 +2.385661,.8694764 +2.385661,.8694764 +5.110567,1.63131 +5.110567,1.63131 +5.110567,1.63131 +5.110567,1.63131 +5.110567,1.63131 +2.159854,.7700406 +2.159854,.7700406 +2.562108,.9408303 +5.33207,1.67374 +5.33207,1.67374 +6.463665,1.866197 +6.463665,1.866197 +3.590529,1.278299 +3.590529,1.278299 +3.590529,1.278299 +5.581953,1.719539 +5.581953,1.719539 +5.581953,1.719539 +2.331009,.8463012 +2.331009,.8463012 +2.331009,.8463012 +1.880374,.6314704 +1.880374,.6314704 +1.880374,.6314704 +1.880374,.6314704 +1.880374,.6314704 +2.594433,.9533678 +2.594433,.9533678 +2.594433,.9533678 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.479438,.9080318 +2.479438,.9080318 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +3.066799,1.120634 +3.028294,1.107999 +3.028294,1.107999 +3.028294,1.107999 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +4.154732,1.424248 +4.154732,1.424248 +4.154732,1.424248 +4.154732,1.424248 +4.154732,1.424248 +3.590529,1.278299 +3.590529,1.278299 +3.590529,1.278299 +3.590529,1.278299 +3.590529,1.278299 +2.194395,.7859064 +2.194395,.7859064 +2.194395,.7859064 +5.156622,1.640282 +5.156622,1.640282 +5.156622,1.640282 +12.21393,2.502577 +12.21393,2.502577 +12.21393,2.502577 +2.735499,1.006314 +2.735499,1.006314 +2.735499,1.006314 +2.735499,1.006314 +2.735499,1.006314 +1.569674,.4508681 +1.569674,.4508681 +1.569674,.4508681 +2.108884,.746159 +2.108884,.746159 +2.108884,.746159 +2.184676,.7814678 +2.184676,.7814678 +2.184676,.7814678 +2.184676,.7814678 +2.184676,.7814678 +2.157247,.7688327 +2.157247,.7688327 +2.157247,.7688327 +2.157247,.7688327 +2.591303,.9521607 +2.591303,.9521607 +2.591303,.9521607 +2.591303,.9521607 +2.591303,.9521607 +2.558768,.9395257 +2.558768,.9395257 +2.558768,.9395257 +2.558768,.9395257 +2.558768,.9395257 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.11674,.7498771 +2.11674,.7498771 +2.11674,.7498771 +2.11674,.7498771 +2.11674,.7498771 +1.823093,.6005346 +1.823093,.6005346 +1.823093,.6005346 +1.823093,.6005346 +1.823093,.6005346 +2.591052,.9520639 +2.591052,.9520639 +2.591052,.9520639 +3.400008,1.223778 +3.400008,1.223778 +3.400008,1.223778 +2.591052,.9520639 +2.591052,.9520639 +2.591052,.9520639 +3.400008,1.223778 +3.400008,1.223778 +3.400008,1.223778 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.856513,1.349764 +3.856513,1.349764 +3.856513,1.349764 +3.856513,1.349764 +3.856513,1.349764 +3.856513,1.349764 +3.856513,1.349764 +3.856513,1.349764 +3.856513,1.349764 +3.856513,1.349764 +3.856513,1.349764 +3.856513,1.349764 +3.856513,1.349764 +3.856513,1.349764 +3.856513,1.349764 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.601116,.9559408 +2.601116,.9559408 +2.601116,.9559408 +2.590895,.9520033 +2.590895,.9520033 +2.590895,.9520033 +2.590895,.9520033 +2.590895,.9520033 +2.430854,.8882425 +2.430854,.8882425 +2.430854,.8882425 +3.185763,1.158692 +3.185763,1.158692 +3.185763,1.158692 +2.718577,1.000108 +2.718577,1.000108 +2.718577,1.000108 +2.400333,.8756074 +2.400333,.8756074 +2.400333,.8756074 +2.049206,.7174527 +2.049206,.7174527 +2.049206,.7174527 +2.130291,.7562585 +2.130291,.7562585 +2.130291,.7562585 +2.130291,.7562585 +2.130291,.7562585 +2.129451,.7558641 +2.129451,.7558641 +2.129451,.7558641 +2.129451,.7558641 +2.129451,.7558641 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +3.922174,1.366646 +3.922174,1.366646 +3.922174,1.366646 +3.922174,1.366646 +3.922174,1.366646 +4.386415,1.478512 +4.386415,1.478512 +4.386415,1.478512 +4.386415,1.478512 +4.386415,1.478512 +3.922174,1.366646 +3.922174,1.366646 +3.922174,1.366646 +3.922174,1.366646 +3.922174,1.366646 +3.306388,1.195856 +3.306388,1.195856 +3.306388,1.195856 +3.306388,1.195856 +3.306388,1.195856 +2.508994,.9198818 +2.508994,.9198818 +2.508994,.9198818 +2.508994,.9198818 +2.508994,.9198818 +2.508994,.9198818 +2.508994,.9198818 +2.508994,.9198818 +2.508994,.9198818 +2.477492,.9072468 +2.477492,.9072468 +2.477492,.9072468 +1.219176,.1981752 +1.219176,.1981752 +1.219176,.1981752 +1.219176,.1981752 +1.219176,.1981752 +1.943044,.6642558 +1.943044,.6642558 +1.943044,.6642558 +1.943044,.6642558 +1.943044,.6642558 +2.546463,.9347052 +2.546463,.9347052 +2.546463,.9347052 +2.546463,.9347052 +2.546463,.9347052 +1.219176,.1981752 +1.219176,.1981752 +1.219176,.1981752 +1.219176,.1981752 +1.219176,.1981752 +1.943044,.6642558 +1.943044,.6642558 +1.943044,.6642558 +1.943044,.6642558 +1.943044,.6642558 +2.546463,.9347052 +2.546463,.9347052 +2.546463,.9347052 +2.546463,.9347052 +2.546463,.9347052 +1.943044,.6642558 +1.943044,.6642558 +1.943044,.6642558 +1.943044,.6642558 +1.943044,.6642558 +3.844422,1.346623 +3.844422,1.346623 +3.844422,1.346623 +3.844422,1.346623 +3.844422,1.346623 +3.796153,1.333988 +3.796153,1.333988 +3.796153,1.333988 +3.796153,1.333988 +3.796153,1.333988 +3.844422,1.346623 +3.844422,1.346623 +3.844422,1.346623 +3.844422,1.346623 +3.844422,1.346623 +3.844422,1.346623 +3.844422,1.346623 +3.844422,1.346623 +3.844422,1.346623 +3.844422,1.346623 +3.844422,1.346623 +3.844422,1.346623 +3.844422,1.346623 +3.844422,1.346623 +3.844422,1.346623 +3.832771,1.343588 +3.832771,1.343588 +3.832771,1.343588 +2.26284,.8166208 +2.26284,.8166208 +2.26284,.8166208 +2.894628,1.062857 +2.894628,1.062857 +2.894628,1.062857 +2.555775,.9383554 +2.555775,.9383554 +2.555775,.9383554 +2.361806,.8594266 +2.394458,.8731568 +2.617561,.9622431 +2.617561,.9622431 +2.617561,.9622431 +2.130122,.7561795 +2.130122,.7561795 +2.130122,.7561795 +3.388847,1.22049 +3.388847,1.22049 +3.210522,1.166433 +3.210522,1.166433 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +3.747314,1.321039 +3.747314,1.321039 +3.747314,1.321039 +3.747314,1.321039 +3.747314,1.321039 +3.630116,1.289265 +2.305294,.8352081 +2.305294,.8352081 +2.084804,.7346748 +2.084804,.7346748 +2.084804,.7346748 +2.084804,.7346748 +2.084804,.7346748 +2.084804,.7346748 +2.084804,.7346748 +2.084804,.7346748 +2.084804,.7346748 +2.084804,.7346748 +2.47308,.9054645 +2.47308,.9054645 +2.47308,.9054645 +2.47308,.9054645 +2.47308,.9054645 +2.47308,.9054645 +2.47308,.9054645 +2.47308,.9054645 +2.47308,.9054645 +2.47308,.9054645 +2.47308,.9054645 +2.47308,.9054645 +2.47308,.9054645 +2.47308,.9054645 +2.47308,.9054645 +3.891317,1.358748 +3.891317,1.358748 +3.891317,1.358748 +3.891317,1.358748 +3.891317,1.358748 +1.863055,.6222177 +1.863055,.6222177 +1.863055,.6222177 +1.863055,.6222177 +1.863055,.6222177 +2.969217,1.088298 +2.969217,1.088298 +2.969217,1.088298 +2.969217,1.088298 +2.969217,1.088298 +2.969217,1.088298 +2.969217,1.088298 +2.969217,1.088298 +2.969217,1.088298 +2.969217,1.088298 +1.881556,.6320992 +1.881556,.6320992 +1.881556,.6320992 +2.591486,.9522314 +2.591486,.9522314 +2.591486,.9522314 +2.591486,.9522314 +2.591486,.9522314 +2.591486,.9522314 +3.400578,1.223945 +3.400578,1.223945 +3.400578,1.223945 +2.527903,.92739 +2.527903,.92739 +2.527903,.92739 +2.591486,.9522314 +2.591486,.9522314 +2.591486,.9522314 +2.591486,.9522314 +2.591486,.9522314 +2.591486,.9522314 +2.496229,.9147811 +2.496229,.9147811 +2.496229,.9147811 +2.93515,1.076759 +2.93515,1.076759 +2.93515,1.076759 +2.898298,1.064124 +2.898298,1.064124 +2.898298,1.064124 +3.891527,1.358802 +3.891527,1.358802 +3.891527,1.358802 +3.891527,1.358802 +3.891527,1.358802 +3.796047,1.33396 +3.796047,1.33396 +3.796047,1.33396 +3.796047,1.33396 +3.796047,1.33396 +3.891527,1.358802 +3.891527,1.358802 +3.891527,1.358802 +3.891527,1.358802 +3.891527,1.358802 +2.825455,1.038669 +2.825455,1.038669 +2.825455,1.038669 +2.825455,1.038669 +2.825455,1.038669 +6.980622,1.943138 +6.980622,1.943138 +6.980622,1.943138 +2.602159,.9563414 +2.602159,.9563414 +2.602159,.9563414 +2.602159,.9563414 +2.602159,.9563414 +2.602159,.9563414 +2.46523,.902285 +2.46523,.902285 +2.46523,.902285 +2.757022,1.014151 +2.757022,1.014151 +2.757022,1.014151 +3.84255,1.346136 +3.84255,1.346136 +3.84255,1.346136 +3.84255,1.346136 +3.84255,1.346136 +2.860068,1.050845 +2.860068,1.050845 +2.860068,1.050845 +2.860068,1.050845 +2.860068,1.050845 +4.405455,1.482844 +4.405455,1.482844 +4.405455,1.482844 +4.405455,1.482844 +4.405455,1.482844 +2.500659,.9165544 +2.500659,.9165544 +2.500659,.9165544 +2.500659,.9165544 +2.500659,.9165544 +1.569055,.4504738 +1.569055,.4504738 +1.569055,.4504738 +1.569055,.4504738 +1.569055,.4504738 +2.108053,.7457647 +2.108053,.7457647 +2.108053,.7457647 +2.108053,.7457647 +2.108053,.7457647 +2.807758,1.032386 +2.807758,1.032386 +2.807758,1.032386 +2.807758,1.032386 +2.807758,1.032386 +2.807758,1.032386 +2.807758,1.032386 +2.807758,1.032386 +2.807758,1.032386 +2.426471,.8864381 +2.426471,.8864381 +2.426471,.8864381 +2.426471,.8864381 +2.426471,.8864381 +2.426471,.8864381 +2.426471,.8864381 +2.426471,.8864381 +2.426471,.8864381 +2.426471,.8864381 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +3.400667,1.223971 +3.400667,1.223971 +3.400667,1.223971 +3.400667,1.223971 +3.400667,1.223971 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +3.589554,1.278028 +3.589554,1.278028 +3.589554,1.278028 +3.589554,1.278028 +3.589554,1.278028 +2.562108,.9408303 +2.562108,.9408303 +2.529939,.9281953 +2.529939,.9281953 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.529939,.9281953 +2.529939,.9281953 +3.772952,1.327858 +3.772952,1.327858 +3.772952,1.327858 +3.772952,1.327858 +3.772952,1.327858 +3.867851,1.352699 +3.867851,1.352699 +3.867851,1.352699 +3.867851,1.352699 +3.867851,1.352699 +3.819288,1.340064 +3.819288,1.340064 +3.819288,1.340064 +3.819288,1.340064 +3.819288,1.340064 +3.260594,1.181909 +3.260594,1.181909 +3.260594,1.181909 +3.260594,1.181909 +3.260594,1.181909 +3.260594,1.181909 +3.260594,1.181909 +3.260594,1.181909 +3.260594,1.181909 +3.260594,1.181909 +3.867851,1.352699 +3.867851,1.352699 +3.867851,1.352699 +3.867851,1.352699 +3.867851,1.352699 +2.557148,.9388924 +2.557148,.9388924 +2.557148,.9388924 +2.557148,.9388924 +2.557148,.9388924 +2.557148,.9388924 +2.557148,.9388924 +2.557148,.9388924 +2.557148,.9388924 +2.552848,.9372095 +2.552848,.9372095 +2.552848,.9372095 +2.198702,.7878671 +2.198702,.7878671 +2.198702,.7878671 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +3.35797,1.211336 +3.35797,1.211336 +3.35797,1.211336 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +1.881605,.6321253 +1.881605,.6321253 +1.881605,.6321253 +2.614744,.9611662 +2.184676,.7814678 +2.184676,.7814678 +2.184676,.7814678 +3.636183,1.290935 +3.636183,1.290935 +3.636183,1.290935 +3.636183,1.290935 +3.636183,1.290935 +2.706466,.9956437 +2.706466,.9956437 +2.706466,.9956437 +2.706466,.9956437 +2.706466,.9956437 +2.706466,.9956437 +2.706466,.9956437 +2.706466,.9956437 +2.706466,.9956437 +2.706466,.9956437 +3.636183,1.290935 +3.636183,1.290935 +3.636183,1.290935 +3.636183,1.290935 +3.636183,1.290935 +12.85198,2.553498 +5.721127,1.744166 +5.721127,1.744166 +5.721127,1.744166 +5.721127,1.744166 +5.721127,1.744166 +4.130108,1.418304 +4.130108,1.418304 +4.130108,1.418304 +2.529039,.9278395 +2.529039,.9278395 +2.529039,.9278395 +1.860226,.6206981 +1.860226,.6206981 +1.860226,.6206981 +1.860226,.6206981 +1.860226,.6206981 +2.9018,1.065331 +2.9018,1.065331 +2.9018,1.065331 +2.9018,1.065331 +2.9018,1.065331 +2.864537,1.052407 +2.864537,1.052407 +2.864537,1.052407 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.496229,.9147811 +2.496229,.9147811 +2.496229,.9147811 +2.496229,.9147811 +2.496229,.9147811 +2.157247,.7688327 +2.157247,.7688327 +2.157247,.7688327 +2.157247,.7688327 +2.157247,.7688327 +2.112833,.7480298 +2.112833,.7480298 +2.112833,.7480298 +4.413023,1.48456 +4.413023,1.48456 +4.413023,1.48456 +3.249435,1.178481 +3.249435,1.178481 +3.249435,1.178481 +3.249435,1.178481 +3.249435,1.178481 +6.123767,1.812177 +6.123767,1.812177 +6.123767,1.812177 +6.123767,1.812177 +6.123767,1.812177 +2.56143,.9405659 +2.56143,.9405659 +2.56143,.9405659 +2.56143,.9405659 +2.56143,.9405659 +2.56143,.9405659 +3.318938,1.199645 +3.318938,1.199645 +3.318938,1.199645 +2.56143,.9405659 +2.56143,.9405659 +2.56143,.9405659 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.529939,.9281953 +2.529939,.9281953 +2.529939,.9281953 +2.529939,.9281953 +2.529939,.9281953 +2.529939,.9281953 +1.607612,.4747497 +1.607612,.4747497 +1.607612,.4747497 +1.607612,.4747497 +1.607612,.4747497 +2.159854,.7700406 +2.159854,.7700406 +2.159854,.7700406 +2.159854,.7700406 +2.159854,.7700406 +2.159854,.7700406 +2.159854,.7700406 +2.159854,.7700406 +2.159854,.7700406 +2.159854,.7700406 +2.159854,.7700406 +2.159854,.7700406 +2.159854,.7700406 +2.159854,.7700406 +2.159854,.7700406 +1.607612,.4747497 +1.607612,.4747497 +1.607612,.4747497 +1.607612,.4747497 +1.607612,.4747497 +2.440267,.8921073 +2.440267,.8921073 +2.440267,.8921073 +2.440267,.8921073 +2.440267,.8921073 +2.440267,.8921073 +2.501646,.9169487 +2.501646,.9169487 +2.501646,.9169487 +2.501646,.9169487 +2.501646,.9169487 +2.501646,.9169487 +2.184676,.7814678 +2.184676,.7814678 +2.184676,.7814678 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +1.881605,.6321253 +1.881605,.6321253 +1.881605,.6321253 +3.217314,1.168547 +3.217314,1.168547 +3.217314,1.168547 +4.322515,1.463838 +4.322515,1.463838 +4.322515,1.463838 +3.865038,1.351972 +3.865038,1.351972 +3.865038,1.351972 +3.709599,1.310924 +3.709599,1.310924 +3.709599,1.310924 +3.709599,1.310924 +3.709599,1.310924 +3.663023,1.298289 +3.663023,1.298289 +3.663023,1.298289 +3.663023,1.298289 +3.663023,1.298289 +4.201429,1.435425 +4.201429,1.435425 +4.201429,1.435425 +4.201429,1.435425 +4.201429,1.435425 +3.618582,1.286082 +3.618582,1.286082 +3.618582,1.286082 +3.618582,1.286082 +3.618582,1.286082 +4.367822,1.474265 +4.367822,1.474265 +4.367822,1.474265 +4.367822,1.474265 +4.367822,1.474265 +3.661806,1.297956 +3.661806,1.297956 +3.661806,1.297956 +3.661806,1.297956 +3.661806,1.297956 +3.661806,1.297956 +3.661806,1.297956 +3.661806,1.297956 +3.661806,1.297956 +3.661806,1.297956 +3.661806,1.297956 +3.661806,1.297956 +3.661806,1.297956 +3.661806,1.297956 +3.661806,1.297956 +3.706777,1.310163 +3.706777,1.310163 +3.706777,1.310163 +3.706777,1.310163 +3.706777,1.310163 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +2.132736,.7574055 +2.132736,.7574055 +2.132736,.7574055 +2.132736,.7574055 +2.132736,.7574055 +2.467866,.9033539 +2.467866,.9033539 +2.467866,.9033539 +2.467866,.9033539 +2.467866,.9033539 +2.507652,.9193467 +2.507652,.9193467 +2.507652,.9193467 +2.507652,.9193467 +2.507652,.9193467 +5.721127,1.744166 +5.721127,1.744166 +5.721127,1.744166 +5.721127,1.744166 +5.721127,1.744166 +1.573443,.4532661 +1.573443,.4532661 +1.573443,.4532661 +1.573443,.4532661 +1.573443,.4532661 +2.507652,.9193467 +2.507652,.9193467 +2.507652,.9193467 +2.507652,.9193467 +2.507652,.9193467 +2.507652,.9193467 +2.507652,.9193467 +2.507652,.9193467 +2.507652,.9193467 +2.507652,.9193467 +2.529938,.9281946 +2.529938,.9281946 +2.529938,.9281946 +2.529938,.9281946 +2.529938,.9281946 +2.865365,1.052696 +2.865365,1.052696 +2.865365,1.052696 +2.865365,1.052696 +2.865365,1.052696 +2.529938,.9281946 +2.529938,.9281946 +2.529938,.9281946 +2.529938,.9281946 +2.529938,.9281946 +3.849666,1.347986 +3.849666,1.347986 +3.849666,1.347986 +3.849666,1.347986 +3.849666,1.347986 +4.653718,1.537667 +4.653718,1.537667 +4.653718,1.537667 +2.797408,1.028693 +2.797408,1.028693 +2.797408,1.028693 +2.797408,1.028693 +2.797408,1.028693 +2.131827,.7569795 +2.131827,.7569795 +2.131827,.7569795 +2.131827,.7569795 +3.314208,1.198219 +3.314208,1.198219 +3.314208,1.198219 +3.314208,1.198219 +3.314208,1.198219 +1.816327,.5968165 +1.816327,.5968165 +1.816327,.5968165 +1.816327,.5968165 +1.816327,.5968165 +1.816327,.5968165 +1.569674,.4508681 +1.569674,.4508681 +1.569674,.4508681 +2.833322,1.04145 +2.833322,1.04145 +2.833322,1.04145 +2.501646,.9169487 +2.501646,.9169487 +2.501646,.9169487 +2.467866,.9033539 +2.467866,.9033539 +2.467866,.9033539 +2.467866,.9033539 +2.467866,.9033539 +2.865367,1.052696 +2.865367,1.052696 +2.865367,1.052696 +2.865367,1.052696 +2.865367,1.052696 +3.877208,1.355115 +3.877208,1.355115 +3.877208,1.355115 +10.66272,2.366753 +10.66272,2.366753 +10.66272,2.366753 +2.527969,.9274161 +2.527969,.9274161 +2.527969,.9274161 +2.527969,.9274161 +2.527969,.9274161 +2.527969,.9274161 +2.527969,.9274161 +2.527969,.9274161 +2.527969,.9274161 +2.527969,.9274161 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.159854,.7700406 +2.159854,.7700406 +2.159854,.7700406 +2.897866,1.063975 +2.897866,1.063975 +2.897866,1.063975 +2.897866,1.063975 +2.897866,1.063975 +2.558634,.9394735 +2.558634,.9394735 +2.558634,.9394735 +2.558634,.9394735 +2.558634,.9394735 +2.526509,.9268385 +2.526509,.9268385 +2.526509,.9268385 +2.526509,.9268385 +2.526509,.9268385 +2.558634,.9394735 +2.558634,.9394735 +2.558634,.9394735 +2.558634,.9394735 +2.558634,.9394735 +2.497224,.9151798 +2.497224,.9151798 +2.497224,.9151798 +2.497224,.9151798 +2.497224,.9151798 +2.497224,.9151798 +2.497224,.9151798 +2.497224,.9151798 +2.497224,.9151798 +2.497224,.9151798 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.559263,.9397192 +2.559263,.9397192 +2.559263,.9397192 +6.32092,1.843865 +6.32092,1.843865 +6.32092,1.843865 +2.090163,.7372421 +2.090163,.7372421 +2.090163,.7372421 +2.418604,.8831904 +2.418604,.8831904 +2.418604,.8831904 +3.937499,1.370546 +3.937499,1.370546 +3.937499,1.370546 +3.937499,1.370546 +3.937499,1.370546 +3.937499,1.370546 +3.937499,1.370546 +3.937499,1.370546 +3.937499,1.370546 +3.937499,1.370546 +3.319307,1.199756 +3.319307,1.199756 +3.319307,1.199756 +3.319307,1.199756 +3.319307,1.199756 +3.937499,1.370546 +3.937499,1.370546 +3.937499,1.370546 +3.937499,1.370546 +3.937499,1.370546 +2.47061,.9044652 +2.47061,.9044652 +2.47061,.9044652 +2.47061,.9044652 +2.47061,.9044652 +2.43959,.8918302 +2.43959,.8918302 +2.43959,.8918302 +2.43959,.8918302 +2.43959,.8918302 +3.937499,1.370546 +3.937499,1.370546 +3.937499,1.370546 +3.937499,1.370546 +3.937499,1.370546 +9.648854,2.266839 +9.648854,2.266839 +9.648854,2.266839 +4.701001,1.547776 +4.701001,1.547776 +4.701001,1.547776 +12.9634,2.56213 +12.9634,2.56213 +12.9634,2.56213 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.873316,1.354111 +3.873316,1.354111 +3.873316,1.354111 +3.873316,1.354111 +3.873316,1.354111 +2.641842,.9714763 +2.641842,.9714763 +2.641842,.9714763 +7.50107,2.015046 +7.50107,2.015046 +7.50107,2.015046 +3.969472,1.378633 +3.969472,1.378633 +3.969472,1.378633 +2.641842,.9714763 +2.641842,.9714763 +2.641842,.9714763 +3.397566,1.223059 +2.672485,.9830087 +2.672485,.9830087 +2.672485,.9830087 +3.3057,1.195648 +3.3057,1.195648 +3.3057,1.195648 +3.3057,1.195648 +3.3057,1.195648 +3.3057,1.195648 +1.96775,.6768908 +1.96775,.6768908 +1.96775,.6768908 +2.924448,1.073106 +2.924448,1.073106 +2.924448,1.073106 +1.96775,.6768908 +1.96775,.6768908 +1.96775,.6768908 +1.658811,.5061011 +1.658811,.5061011 +1.658811,.5061011 +2.487127,.9111283 +2.487127,.9111283 +2.487127,.9111283 +2.364647,.8606288 +2.364647,.8606288 +2.364647,.8606288 +2.364647,.8606288 +2.364647,.8606288 +11.97289,2.482645 +11.97289,2.482645 +11.97289,2.482645 +2.546463,.9347052 +2.546463,.9347052 +2.546463,.9347052 +1.943044,.6642558 +1.943044,.6642558 +1.943044,.6642558 +2.897243,1.06376 +2.897243,1.06376 +2.897243,1.06376 +2.897243,1.06376 +2.897243,1.06376 +5.028218,1.615066 +5.028218,1.615066 +5.028218,1.615066 +5.028218,1.615066 +5.028218,1.615066 +2.671484,.982634 +2.671484,.982634 +2.671484,.982634 +2.671484,.982634 +2.671484,.982634 +2.252058,.8118442 +2.252058,.8118442 +2.252058,.8118442 +2.252058,.8118442 +2.252058,.8118442 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +4.823937,1.57359 +4.823937,1.57359 +4.823937,1.57359 +3.092429,1.128957 +3.092429,1.128957 +3.092429,1.128957 +2.188277,.7831147 +2.188277,.7831147 +2.188277,.7831147 +2.188277,.7831147 +2.188277,.7831147 +2.188277,.7831147 +2.188277,.7831147 +2.188277,.7831147 +2.184676,.7814678 +2.184676,.7814678 +2.184676,.7814678 +2.184676,.7814678 +2.184676,.7814678 +1.626088,.486177 +1.626088,.486177 +1.626088,.486177 +1.626088,.486177 +1.626088,.486177 +3.388847,1.22049 +3.388847,1.22049 +3.388847,1.22049 +5.156622,1.640282 +5.156622,1.640282 +5.156622,1.640282 +3.388847,1.22049 +3.388847,1.22049 +3.388847,1.22049 +2.779229,1.022174 +2.779229,1.022174 +2.779229,1.022174 +3.226882,1.171516 +3.226882,1.171516 +3.226882,1.171516 +3.219563,1.169246 +3.219563,1.169246 +3.219563,1.169246 +4.006605,1.387944 +4.006605,1.387944 +4.006605,1.387944 +3.86774,1.35267 +3.86774,1.35267 +3.86774,1.35267 +3.86774,1.35267 +3.86774,1.35267 +3.86774,1.35267 +5.06888,1.62312 +5.06888,1.62312 +5.06888,1.62312 +2.528283,.9275405 +2.528283,.9275405 +2.528283,.9275405 +2.528283,.9275405 +2.528283,.9275405 +2.13134,.7567508 +2.13134,.7567508 +2.13134,.7567508 +2.13134,.7567508 +2.13134,.7567508 +2.009945,.6981075 +2.009945,.6981075 +2.009945,.6981075 +2.009945,.6981075 +2.009945,.6981075 +2.009945,.6981075 +2.009945,.6981075 +2.009945,.6981075 +2.009945,.6981075 +2.009945,.6981075 +1.984709,.6854724 +1.984709,.6854724 +1.984709,.6854724 +1.984709,.6854724 +1.984709,.6854724 +2.009945,.6981075 +2.009945,.6981075 +2.009945,.6981075 +2.009945,.6981075 +2.009945,.6981075 +2.496229,.9147811 +2.496229,.9147811 +2.496229,.9147811 +3.388847,1.22049 +3.388847,1.22049 +3.388847,1.22049 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.074138,1.123025 +3.074138,1.123025 +3.074138,1.123025 +1.977405,.6817854 +1.977405,.6817854 +1.977405,.6817854 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +2.706466,.9956437 +2.706466,.9956437 +2.706466,.9956437 +2.706466,.9956437 +2.706466,.9956437 +3.709599,1.310924 +3.709599,1.310924 +3.709599,1.310924 +3.709599,1.310924 +3.709599,1.310924 +3.709599,1.310924 +3.709599,1.310924 +3.709599,1.310924 +3.709599,1.310924 +1.823093,.6005346 +1.823093,.6005346 +1.823093,.6005346 +2.11674,.7498771 +2.11674,.7498771 +2.11674,.7498771 +1.234678,.2108102 +1.234678,.2108102 +1.234678,.2108102 +1.234678,.2108102 +2.331009,.8463012 +2.331009,.8463012 +2.331009,.8463012 +2.014463,.7003528 +2.014463,.7003528 +2.014463,.7003528 +9.965992,2.299178 +9.965992,2.299178 +9.965992,2.299178 +2.184676,.7814678 +2.184676,.7814678 +2.184676,.7814678 +2.496229,.9147811 +2.496229,.9147811 +2.496229,.9147811 +2.528283,.9275405 +2.528283,.9275405 +2.528283,.9275405 +1.919471,.6520494 +1.919471,.6520494 +1.919471,.6520494 +1.919471,.6520494 +1.919471,.6520494 +1.96775,.6768908 +1.96775,.6768908 +1.96775,.6768908 +1.96775,.6768908 +1.96775,.6768908 +1.658811,.5061011 +1.658811,.5061011 +1.658811,.5061011 +1.658811,.5061011 +1.658811,.5061011 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +5.109637,1.631128 +5.109637,1.631128 +5.109637,1.631128 +5.109637,1.631128 +5.109637,1.631128 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +3.353726,1.210072 +3.353726,1.210072 +3.353726,1.210072 +3.353726,1.210072 +3.353726,1.210072 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.432253,.888818 +2.432253,.888818 +2.432253,.888818 +2.432253,.888818 +2.432253,.888818 +2.432253,.888818 +2.432253,.888818 +2.432253,.888818 +2.432253,.888818 +2.432253,.888818 +2.432253,.888818 +2.432253,.888818 +2.11674,.7498771 +2.11674,.7498771 +2.11674,.7498771 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +2.11674,.7498771 +2.11674,.7498771 +2.11674,.7498771 +2.510964,.9206669 +2.510964,.9206669 +2.510964,.9206669 +1.859845,.6204931 +1.859845,.6204931 +1.859845,.6204931 +2.80817,1.032533 +2.80817,1.032533 +2.80817,1.032533 +2.80817,1.032533 +2.80817,1.032533 +3.249435,1.178481 +3.249435,1.178481 +3.249435,1.178481 +3.249435,1.178481 +3.249435,1.178481 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.479438,.9080318 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +2.672485,.9830087 +2.672485,.9830087 +2.672485,.9830087 +4.154732,1.424248 +4.154732,1.424248 +4.154732,1.424248 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +4.958067,1.601016 +4.958067,1.601016 +4.958067,1.601016 +4.958067,1.601016 +4.958067,1.601016 +3.778405,1.329302 +3.778405,1.329302 +3.778405,1.329302 +3.778405,1.329302 +3.778405,1.329302 +4.958067,1.601016 +4.958067,1.601016 +4.958067,1.601016 +4.958067,1.601016 +4.958067,1.601016 +2.131344,.7567526 +2.131344,.7567526 +2.131344,.7567526 +2.504389,.9180446 +2.504389,.9180446 +2.504389,.9180446 +1.989171,.6877179 +1.989171,.6877179 +1.989171,.6877179 +1.989171,.6877179 +1.989171,.6877179 +3.092429,1.128957 +3.092429,1.128957 +3.092429,1.128957 +3.092429,1.128957 +3.092429,1.128957 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.066799,1.120634 +3.066799,1.120634 +3.066799,1.120634 +3.066799,1.120634 +3.066799,1.120634 +3.066799,1.120634 +2.735499,1.006314 +2.735499,1.006314 +2.735499,1.006314 +2.703434,.9945226 +2.703434,.9945226 +2.703434,.9945226 +2.561175,.9404663 +2.561175,.9404663 +2.561175,.9404663 +3.801459,1.335385 +3.801459,1.335385 +3.801459,1.335385 +3.801459,1.335385 +3.801459,1.335385 +3.801459,1.335385 +3.75373,1.32275 +3.75373,1.32275 +3.75373,1.32275 +4.043763,1.397176 +4.043763,1.397176 +4.043763,1.397176 +2.476166,.9067116 +2.476166,.9067116 +2.476166,.9067116 +3.473341,1.245117 +3.473341,1.245117 +3.473341,1.245117 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.865367,1.052696 +2.865367,1.052696 +2.865367,1.052696 +1.607612,.4747497 +1.607612,.4747497 +1.607612,.4747497 +1.963551,.6747544 +1.963551,.6747544 +1.963551,.6747544 +1.963551,.6747544 +1.963551,.6747544 +2.865367,1.052696 +2.865367,1.052696 +2.865367,1.052696 +2.865367,1.052696 +2.865367,1.052696 +2.585035,.949739 +2.585035,.949739 +2.585035,.949739 +2.585035,.949739 +2.585035,.949739 +2.0527,.7191561 +2.0527,.7191561 +2.0527,.7191561 +3.868443,1.352852 +3.868443,1.352852 +3.868443,1.352852 +2.434998,.8899459 +2.434998,.8899459 +2.434998,.8899459 +2.200659,.7887568 +2.200659,.7887568 +2.200659,.7887568 +2.200659,.7887568 +1.637984,.493466 +1.637984,.493466 +1.637984,.493466 +1.637984,.493466 +1.637984,.493466 +4.246223,1.44603 +4.246223,1.44603 +4.246223,1.44603 +4.246223,1.44603 +4.246223,1.44603 +1.428691,.3567586 +1.428691,.3567586 +1.428691,.3567586 +1.428691,.3567586 +1.428691,.3567586 +2.449357,.8958254 +2.449357,.8958254 +2.479438,.9080318 +2.898298,1.064124 +2.898298,1.064124 +2.898298,1.064124 +3.943424,1.372049 +3.943424,1.372049 +3.943424,1.372049 +1.881605,.6321253 +1.881605,.6321253 +1.881605,.6321253 +2.072416,.7287151 +2.072416,.7287151 +2.072416,.7287151 +3.221845,1.169954 +3.221845,1.169954 +3.221845,1.169954 +2.93189,1.075647 +2.93189,1.075647 +2.93189,1.075647 +2.93189,1.075647 +2.93189,1.075647 +3.170212,1.153798 +3.170212,1.153798 +3.170212,1.153798 +3.733544,1.317358 +3.733544,1.317358 +3.733544,1.317358 +2.077047,.7309471 +2.077047,.7309471 +2.077047,.7309471 +2.077047,.7309471 +2.077047,.7309471 +4.446885,1.492204 +4.446885,1.492204 +4.446885,1.492204 +4.446885,1.492204 +4.446885,1.492204 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.559015,.9396225 +2.733397,1.005545 +2.733397,1.005545 +2.561698,.9406704 +2.561698,.9406704 +2.561698,.9406704 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +3.210522,1.166433 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +2.562108,.9408303 +3.29057,1.191061 +3.29057,1.191061 +3.29057,1.191061 +3.29057,1.191061 +3.29057,1.191061 +2.401563,.8761198 +2.401563,.8761198 +2.401563,.8761198 +2.529939,.9281953 +2.529939,.9281953 +2.529939,.9281953 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +2.591554,.9522575 +3.972734,1.379454 +3.972734,1.379454 +3.972734,1.379454 +3.972734,1.379454 +3.972734,1.379454 +2.585035,.949739 +2.585035,.949739 +2.585035,.949739 +2.585035,.949739 +2.585035,.949739 +4.021121,1.391561 +4.021121,1.391561 +4.021121,1.391561 +4.021121,1.391561 +3.015861,1.103885 +3.015861,1.103885 +2.533434,.9295755 +2.533434,.9295755 +2.533434,.9295755 +2.533434,.9295755 +1.985358,.6857995 +1.985358,.6857995 +1.985358,.6857995 +1.985358,.6857995 +3.239251,1.175342 +3.239251,1.175342 +2.675893,.9842833 +2.675893,.9842833 +2.675893,.9842833 +2.675893,.9842833 +2.614744,.9611662 +3.972734,1.379454 +3.972734,1.379454 +3.972734,1.379454 +3.239251,1.175342 +3.239251,1.175342 +2.585035,.949739 +2.585035,.949739 +2.585035,.949739 +2.585035,.949739 +2.614744,.9611662 +2.614744,.9611662 +2.524031,.9258574 +2.524031,.9258574 +3.971869,1.379237 +3.971869,1.379237 +3.971869,1.379237 +3.971869,1.379237 +3.239251,1.175342 +3.239251,1.175342 +2.614744,.9611662 +2.614744,.9611662 +2.614744,.9611662 +2.614744,.9611662 +2.614744,.9611662 +2.614744,.9611662 +3.742794,1.319832 +3.742794,1.319832 +3.239251,1.175342 +3.239251,1.175342 +3.239251,1.175342 +3.239251,1.175342 +2.523036,.9254631 +2.523036,.9254631 +2.523036,.9254631 +2.523036,.9254631 +3.239251,1.175342 +2.585035,.949739 +2.613032,.9605114 +2.613032,.9605114 +2.613032,.9605114 +2.533434,.9295755 +2.533434,.9295755 +2.533434,.9295755 +3.907976,1.36302 +3.907976,1.36302 +3.907976,1.36302 +3.239251,1.175342 +3.239251,1.175342 +3.239251,1.175342 +2.582071,.9485919 +2.582071,.9485919 +2.582071,.9485919 +2.585035,.949739 +2.533434,.9295755 +2.533434,.9295755 +2.533434,.9295755 +2.614744,.9611662 +3.862114,1.351215 +2.312119,.8381645 +2.312119,.8381645 +2.312119,.8381645 +2.533434,.9295755 +2.533434,.9295755 +2.533434,.9295755 +3.239251,1.175342 +3.239251,1.175342 +3.138836,1.143852 +3.239251,1.175342 +3.239251,1.175342 +2.584091,.9493738 +2.584091,.9493738 +3.972734,1.379454 +3.972734,1.379454 +3.239251,1.175342 +3.239251,1.175342 +3.812216,1.338211 +3.812216,1.338211 +2.533434,.9295755 +2.533434,.9295755 +1.985358,.6857995 +1.985358,.6857995 +3.239251,1.175342 +2.729662,1.004178 +2.530091,.9282553 +3.239251,1.175342 +3.940498,1.371307 +2.440052,.8920193 +1.985358,.6857995 +2.613792,.9608021 +2.995787,1.097207 +2.447012,.8948677 +2.519222,.9239499 +2.519222,.9239499 +2.519222,.9239499 +1.983472,.6848489 +1.983472,.6848489 +1.983472,.6848489 +1.983472,.6848489 +1.983472,.6848489 +2.226097,.8002499 +2.226097,.8002499 +2.226097,.8002499 +2.226097,.8002499 +2.226097,.8002499 +3.388498,1.220387 +3.388498,1.220387 +3.388498,1.220387 +6.095644,1.807574 +6.095644,1.807574 +6.095644,1.807574 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +3.529658,1.261201 +3.529658,1.261201 +3.529658,1.261201 +3.241806,1.17613 +3.241806,1.17613 +3.241806,1.17613 +3.241806,1.17613 +3.241806,1.17613 +2.0552,.7203732 +2.0552,.7203732 +2.0552,.7203732 +2.0552,.7203732 +2.0552,.7203732 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +1.537567,.4302013 +1.537567,.4302013 +1.537567,.4302013 +4.02236,1.391869 +4.02236,1.391869 +4.02236,1.391869 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +3.177549,1.15611 +3.177549,1.15611 +3.177549,1.15611 +1.803713,.5898471 +1.803713,.5898471 +1.803713,.5898471 +1.271567,.2402499 +1.271567,.2402499 +1.271567,.2402499 +1.784458,.5791149 +1.784458,.5791149 +1.784458,.5791149 +2.507964,.9194711 +2.507964,.9194711 +2.507964,.9194711 +1.873549,.6278344 +1.873549,.6278344 +1.873549,.6278344 +4.001864,1.38676 +4.001864,1.38676 +4.001864,1.38676 +4.001864,1.38676 +4.001864,1.38676 +2.318401,.8408776 +2.318401,.8408776 +2.318401,.8408776 +2.200131,.7885171 +2.200131,.7885171 +2.200131,.7885171 +5.193556,1.647419 +5.193556,1.647419 +5.193556,1.647419 +2.318401,.8408776 +2.318401,.8408776 +2.318401,.8408776 +2.318401,.8408776 +2.318401,.8408776 +2.318401,.8408776 +2.304625,.834918 +2.304625,.834918 +2.304625,.834918 +2.304625,.834918 +2.304625,.834918 +2.304625,.834918 +2.304625,.834918 +2.304625,.834918 +2.304625,.834918 +2.304625,.834918 +1.730415,.5483614 +1.730415,.5483614 +1.730415,.5483614 +1.730415,.5483614 +1.730415,.5483614 +2.304625,.834918 +2.304625,.834918 +2.304625,.834918 +2.304625,.834918 +2.304625,.834918 +1.730415,.5483614 +1.730415,.5483614 +1.730415,.5483614 +1.730415,.5483614 +1.730415,.5483614 +2.430592,.8881347 +2.430592,.8881347 +2.430592,.8881347 +2.564938,.9419343 +2.564938,.9419343 +2.564938,.9419343 +1.605671,.4735419 +1.605671,.4735419 +1.605671,.4735419 +4.367107,1.474101 +4.367107,1.474101 +4.367107,1.474101 +2.382038,.8679566 +2.382038,.8679566 +2.929041,1.074675 +2.929041,1.074675 +6.744273,1.908694 +6.744273,1.908694 +2.821631,1.037315 +2.821631,1.037315 +2.821631,1.037315 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +2.0552,.7203732 +2.0552,.7203732 +2.0552,.7203732 +1.802083,.5889429 +1.802083,.5889429 +1.802083,.5889429 +2.277638,.8231391 +2.277638,.8231391 +2.277638,.8231391 +2.671651,.9826966 +2.671651,.9826966 +2.671651,.9826966 +3.634392,1.290442 +3.634392,1.290442 +3.634392,1.290442 +3.634392,1.290442 +3.634392,1.290442 +2.431441,.8884842 +2.431441,.8884842 +2.431441,.8884842 +2.431441,.8884842 +2.431441,.8884842 +2.728863,1.003885 +2.728863,1.003885 +2.728863,1.003885 +2.728863,1.003885 +2.728863,1.003885 +5.76923,1.752539 +5.76923,1.752539 +5.76923,1.752539 +5.76923,1.752539 +5.76923,1.752539 +7.57045,2.024253 +7.57045,2.024253 +7.57045,2.024253 +7.57045,2.024253 +7.57045,2.024253 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.014463,.7003528 +2.014463,.7003528 +2.014463,.7003528 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +3.674491,1.301415 +3.674491,1.301415 +3.674491,1.301415 +5.783241,1.754964 +5.783241,1.754964 +5.783241,1.754964 +3.926896,1.367849 +3.926896,1.367849 +3.926896,1.367849 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +2.317431,.8404593 +2.317431,.8404593 +2.317431,.8404593 +2.317431,.8404593 +2.317431,.8404593 +1.959517,.6726977 +1.959517,.6726977 +1.959517,.6726977 +1.959517,.6726977 +1.959517,.6726977 +2.885831,1.059813 +2.885831,1.059813 +2.885831,1.059813 +2.885831,1.059813 +2.885831,1.059813 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +3.566238,1.271511 +3.566238,1.271511 +3.566238,1.271511 +2.014463,.7003528 +2.014463,.7003528 +2.014463,.7003528 +3.658809,1.297138 +3.658809,1.297138 +3.658809,1.297138 +3.910136,1.363572 +3.910136,1.363572 +3.910136,1.363572 +3.093726,1.129376 +3.093726,1.129376 +3.093726,1.129376 +3.658809,1.297138 +3.658809,1.297138 +3.658809,1.297138 +1.570712,.4515291 +1.570712,.4515291 +1.570712,.4515291 +1.570712,.4515291 +1.570712,.4515291 +2.816014,1.035322 +2.816014,1.035322 +2.816014,1.035322 +2.816014,1.035322 +2.816014,1.035322 +2.277471,.8230656 +2.277471,.8230656 +2.277471,.8230656 +2.055049,.7202997 +2.055049,.7202997 +2.055049,.7202997 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +4.144635,1.421815 +4.144635,1.421815 +4.144635,1.421815 +4.144635,1.421815 +4.144635,1.421815 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +4.679659,1.543225 +4.679659,1.543225 +4.679659,1.543225 +4.679659,1.543225 +4.679659,1.543225 +2.857508,1.04995 +2.857508,1.04995 +2.857508,1.04995 +2.857508,1.04995 +2.857508,1.04995 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +1.769963,.5709586 +1.769963,.5709586 +1.769963,.5709586 +2.237043,.8051547 +2.237043,.8051547 +2.237043,.8051547 +2.055125,.7203366 +2.055125,.7203366 +2.055125,.7203366 +2.055125,.7203366 +2.055125,.7203366 +3.684617,1.304167 +3.684617,1.304167 +3.684617,1.304167 +2.400074,.8754996 +2.400074,.8754996 +2.400074,.8754996 +2.915293,1.06997 +2.915293,1.06997 +2.915293,1.06997 +2.430592,.8881347 +2.430592,.8881347 +2.430592,.8881347 +2.430592,.8881347 +2.430592,.8881347 +2.430592,.8881347 +3.232274,1.173186 +3.232274,1.173186 +3.232274,1.173186 +2.557396,.9389898 +2.557396,.9389898 +2.557396,.9389898 +2.595517,.9537859 +2.595517,.9537859 +2.595517,.9537859 +3.734288,1.317557 +3.734288,1.317557 +3.734288,1.317557 +3.734288,1.317557 +3.734288,1.317557 +3.734288,1.317557 +3.734288,1.317557 +3.734288,1.317557 +3.734288,1.317557 +3.54379,1.265197 +3.54379,1.265197 +3.54379,1.265197 +3.734288,1.317557 +3.734288,1.317557 +3.734288,1.317557 +5.043943,1.618188 +5.043943,1.618188 +5.043943,1.618188 +13.89814,2.631755 +13.89814,2.631755 +13.89814,2.631755 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +3.566238,1.271511 +3.566238,1.271511 +3.566238,1.271511 +2.513046,.9214954 +2.513046,.9214954 +2.513046,.9214954 +5.91211,1.777003 +5.91211,1.777003 +5.91211,1.777003 +8.525381,2.143048 +8.525381,2.143048 +8.525381,2.143048 +3.289754,1.190813 +3.289754,1.190813 +3.289754,1.190813 +2.254524,.8129388 +2.254524,.8129388 +2.254524,.8129388 +2.430592,.8881347 +2.430592,.8881347 +2.430592,.8881347 +1.824996,.601578 +1.824996,.601578 +1.824996,.601578 +1.824996,.601578 +1.824996,.601578 +1.824996,.601578 +2.430592,.8881347 +2.430592,.8881347 +2.430592,.8881347 +2.430592,.8881347 +2.430592,.8881347 +2.430592,.8881347 +1.576273,.4550635 +1.576273,.4550635 +1.576273,.4550635 +2.374941,.8649725 +2.374941,.8649725 +2.374941,.8649725 +2.374941,.8649725 +2.374941,.8649725 +2.374941,.8649725 +2.374941,.8649725 +2.374941,.8649725 +2.374941,.8649725 +2.374941,.8649725 +1.568908,.4503798 +1.568908,.4503798 +1.568908,.4503798 +1.568908,.4503798 +1.568908,.4503798 +3.283026,1.188766 +3.283026,1.188766 +3.283026,1.188766 +3.283026,1.188766 +3.283026,1.188766 +3.283026,1.188766 +3.543283,1.265054 +3.543283,1.265054 +3.543283,1.265054 +3.543283,1.265054 +3.543283,1.265054 +6.51634,1.874313 +6.51634,1.874313 +6.51634,1.874313 +6.51634,1.874313 +6.51634,1.874313 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +3.574538,1.273836 +3.574538,1.273836 +3.574538,1.273836 +2.255363,.813311 +2.255363,.813311 +2.255363,.813311 +2.850536,1.047507 +2.850536,1.047507 +2.850536,1.047507 +2.486362,.9108208 +2.486362,.9108208 +2.486362,.9108208 +2.486362,.9108208 +2.486362,.9108208 +3.634118,1.290366 +3.634118,1.290366 +3.634118,1.290366 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +3.037416,1.111007 +3.037416,1.111007 +3.037416,1.111007 +3.557537,1.269068 +3.557537,1.269068 +3.557537,1.269068 +3.557537,1.269068 +3.557537,1.269068 +1.784458,.5791149 +1.784458,.5791149 +1.784458,.5791149 +1.784458,.5791149 +1.784458,.5791149 +7.475399,2.011617 +7.475399,2.011617 +7.475399,2.011617 +7.475399,2.011617 +7.475399,2.011617 +2.232493,.8031189 +2.232493,.8031189 +2.232493,.8031189 +2.232493,.8031189 +2.232493,.8031189 +3.217952,1.168745 +3.217952,1.168745 +3.217952,1.168745 +3.217952,1.168745 +3.217952,1.168745 +3.541681,1.264601 +3.541681,1.264601 +3.541681,1.264601 +2.659251,.9780447 +2.659251,.9780447 +2.659251,.9780447 +3.361008,1.212241 +3.361008,1.212241 +3.361008,1.212241 +3.497213,1.251966 +3.497213,1.251966 +3.497213,1.251966 +3.499219,1.25254 +3.499219,1.25254 +3.499219,1.25254 +3.499219,1.25254 +3.499219,1.25254 +1.900672,.6422076 +1.900672,.6422076 +1.900672,.6422076 +2.031232,.7086423 +2.031232,.7086423 +2.031232,.7086423 +1.900672,.6422076 +1.900672,.6422076 +1.900672,.6422076 +1.900672,.6422076 +1.900672,.6422076 +1.900672,.6422076 +1.781066,.5772121 +1.781066,.5772121 +1.781066,.5772121 +1.626088,.486177 +1.626088,.486177 +1.626088,.486177 +2.564938,.9419343 +2.564938,.9419343 +2.564938,.9419343 +2.597552,.9545693 +2.597552,.9545693 +2.346762,.8530365 +2.346762,.8530365 +2.346762,.8530365 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +2.312187,.8381938 +2.312187,.8381938 +2.312187,.8381938 +2.814746,1.034872 +2.814746,1.034872 +2.814746,1.034872 +1.956876,.6713493 +1.956876,.6713493 +1.956876,.6713493 +2.277638,.8231391 +2.277638,.8231391 +2.277638,.8231391 +2.277638,.8231391 +2.277638,.8231391 +2.324477,.8434953 +2.324477,.8434953 +2.324477,.8434953 +1.965475,.6757337 +1.965475,.6757337 +1.965475,.6757337 +1.965475,.6757337 +1.965475,.6757337 +1.965475,.6757337 +2.307871,.8363256 +2.307871,.8363256 +2.76341,1.016466 +2.76341,1.016466 +2.915293,1.06997 +2.915293,1.06997 +2.915293,1.06997 +2.029396,.7077381 +2.029396,.7077381 +2.029396,.7077381 +2.400074,.8754996 +2.400074,.8754996 +2.400074,.8754996 +2.430014,.8878972 +2.430014,.8878972 +2.430014,.8878972 +2.430014,.8878972 +2.430014,.8878972 +3.026027,1.107251 +3.026027,1.107251 +3.026027,1.107251 +3.026027,1.107251 +3.026027,1.107251 +2.430014,.8878972 +2.430014,.8878972 +2.430014,.8878972 +2.430014,.8878972 +2.430014,.8878972 +3.436553,1.234469 +3.436553,1.234469 +3.436553,1.234469 +3.870037,1.353264 +3.870037,1.353264 +3.870037,1.353264 +2.39872,.8749351 +2.39872,.8749351 +2.39872,.8749351 +4.094981,1.409762 +4.094981,1.409762 +4.094981,1.409762 +2.276353,.8225746 +2.276353,.8225746 +2.276353,.8225746 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +2.014463,.7003528 +2.014463,.7003528 +2.014463,.7003528 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +5.615803,1.725585 +1.669348,.5124334 +1.669348,.5124334 +1.669348,.5124334 +2.328372,.8451692 +2.328372,.8451692 +2.328372,.8451692 +1.968767,.6774077 +1.968767,.6774077 +1.968767,.6774077 +2.328372,.8451692 +2.328372,.8451692 +2.328372,.8451692 +2.792689,1.027005 +2.792689,1.027005 +2.792689,1.027005 +2.328372,.8451692 +2.328372,.8451692 +2.328372,.8451692 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +2.821631,1.037315 +2.821631,1.037315 +2.821631,1.037315 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.132067,.7570921 +2.132067,.7570921 +2.132067,.7570921 +1.875839,.629056 +1.875839,.629056 +1.875839,.629056 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +3.217952,1.168745 +3.217952,1.168745 +3.217952,1.168745 +5.914585,1.777421 +5.914585,1.777421 +5.914585,1.777421 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +5.002394,1.609917 +5.002394,1.609917 +5.002394,1.609917 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.094165,1.129518 +3.094165,1.129518 +3.094165,1.129518 +3.094165,1.129518 +3.094165,1.129518 +2.828198,1.03964 +2.828198,1.03964 +2.828198,1.03964 +2.828198,1.03964 +2.828198,1.03964 +2.328372,.8451692 +2.328372,.8451692 +2.328372,.8451692 +2.328372,.8451692 +2.328372,.8451692 +3.144956,1.1458 +3.144956,1.1458 +3.144956,1.1458 +3.144956,1.1458 +3.144956,1.1458 +2.328372,.8451692 +2.328372,.8451692 +2.328372,.8451692 +2.328372,.8451692 +2.328372,.8451692 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +1.748245,.5586125 +1.748245,.5586125 +1.748245,.5586125 +3.306707,1.195953 +3.306707,1.195953 +3.306707,1.195953 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.217952,1.168745 +3.217952,1.168745 +3.217952,1.168745 +5.633392,1.728712 +5.633392,1.728712 +5.633392,1.728712 +5.633392,1.728712 +5.633392,1.728712 +1.802039,.5889186 +1.802039,.5889186 +1.802039,.5889186 +1.802039,.5889186 +1.802039,.5889186 +1.626048,.4861526 +1.626048,.4861526 +1.626048,.4861526 +1.626048,.4861526 +1.626048,.4861526 +2.430532,.8881103 +2.430532,.8881103 +2.430532,.8881103 +2.430532,.8881103 +2.430532,.8881103 +2.430532,.8881103 +2.430532,.8881103 +2.430532,.8881103 +2.430532,.8881103 +2.430532,.8881103 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +1.829179,.6038671 +1.829179,.6038671 +1.829179,.6038671 +1.829179,.6038671 +1.829179,.6038671 +1.806212,.5912321 +1.806212,.5912321 +1.806212,.5912321 +1.806212,.5912321 +1.806212,.5912321 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +2.539853,.9321062 +2.539853,.9321062 +2.539853,.9321062 +2.009548,.69791 +2.009548,.69791 +2.009548,.69791 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +3.139575,1.144087 +3.139575,1.144087 +3.139575,1.144087 +2.430592,.8881347 +2.430592,.8881347 +2.430592,.8881347 +2.564938,.9419343 +2.564938,.9419343 +2.564938,.9419343 +1.626088,.486177 +1.626088,.486177 +1.626088,.486177 +3.366606,1.213905 +3.366606,1.213905 +3.366606,1.213905 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +3.611583,1.284146 +3.611583,1.284146 +3.611583,1.284146 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +2.237689,.8054437 +2.237689,.8054437 +2.237689,.8054437 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +2.209594,.7928087 +2.209594,.7928087 +2.209594,.7928087 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +3.77013,1.327109 +3.77013,1.327109 +3.77013,1.327109 +2.157915,.7691424 +2.157915,.7691424 +2.157915,.7691424 +2.695405,.9915482 +2.695405,.9915482 +2.695405,.9915482 +2.695405,.9915482 +2.695405,.9915482 +2.877152,1.056801 +2.877152,1.056801 +2.877152,1.056801 +2.877152,1.056801 +2.877152,1.056801 +1.993225,.6897537 +1.993225,.6897537 +1.993225,.6897537 +2.582693,.9488327 +2.582693,.9488327 +2.582693,.9488327 +3.690069,1.305645 +3.690069,1.305645 +3.690069,1.305645 +3.703813,1.309363 +3.703813,1.309363 +3.703813,1.309363 +2.539853,.9321062 +4.057222,1.400499 +2.507964,.9194711 +2.507964,.9194711 +2.507964,.9194711 +1.762053,.5664798 +1.762053,.5664798 +1.762053,.5664798 +4.01608,1.390306 +4.01608,1.390306 +4.01608,1.390306 +4.01608,1.390306 +4.01608,1.390306 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +2.430592,.8881347 +2.430592,.8881347 +2.430592,.8881347 +2.0552,.7203732 +2.0552,.7203732 +2.0552,.7203732 +3.684617,1.304167 +3.684617,1.304167 +3.684617,1.304167 +2.430592,.8881347 +2.430592,.8881347 +2.430592,.8881347 +5.74731,1.748732 +5.74731,1.748732 +5.74731,1.748732 +5.74731,1.748732 +5.74731,1.748732 +3.189451,1.159849 +3.189451,1.159849 +3.189451,1.159849 +3.189451,1.159849 +3.189451,1.159849 +6.450341,1.864133 +6.450341,1.864133 +6.450341,1.864133 +6.450341,1.864133 +6.450341,1.864133 +3.366606,1.213905 +3.366606,1.213905 +3.366606,1.213905 +3.366606,1.213905 +3.366606,1.213905 +3.365741,1.213648 +3.365741,1.213648 +3.365741,1.213648 +3.365741,1.213648 +3.365741,1.213648 +1.824612,.6013672 +1.824612,.6013672 +1.824612,.6013672 +3.652168,1.295321 +3.652168,1.295321 +3.652168,1.295321 +2.253133,.8123216 +2.253133,.8123216 +2.253133,.8123216 +2.029396,.7077381 +2.029396,.7077381 +2.029396,.7077381 +2.029396,.7077381 +2.029396,.7077381 +2.029396,.7077381 +2.430592,.8881347 +2.430592,.8881347 +2.430592,.8881347 +1.753767,.5617661 +1.753767,.5617661 +1.753767,.5617661 +1.607124,.4744461 +2.005728,.6960073 +2.005728,.6960073 +2.005728,.6960073 +5.881168,1.771755 +5.881168,1.771755 +5.881168,1.771755 +6.623014,1.890551 +6.623014,1.890551 +6.623014,1.890551 +3.784224,1.330841 +3.784224,1.330841 +3.784224,1.330841 +3.569484,1.272421 +3.569484,1.272421 +3.569484,1.272421 +3.569484,1.272421 +3.569484,1.272421 +3.382521,1.218621 +3.382521,1.218621 +3.382521,1.218621 +3.382521,1.218621 +3.382521,1.218621 +2.262937,.8166636 +2.262937,.8166636 +2.262937,.8166636 +2.262937,.8166636 +2.262937,.8166636 +2.860109,1.05086 +2.860109,1.05086 +2.860109,1.05086 +2.860109,1.05086 +2.860109,1.05086 +2.860109,1.05086 +2.860109,1.05086 +2.860109,1.05086 +2.860109,1.05086 +2.860109,1.05086 +2.049992,.7178357 +2.049992,.7178357 +2.049992,.7178357 +2.049992,.7178357 +2.049992,.7178357 +1.918226,.651401 +1.918226,.651401 +1.918226,.651401 +1.918226,.651401 +1.918226,.651401 +1.918226,.651401 +1.918226,.651401 +1.918226,.651401 +1.918226,.651401 +1.918226,.651401 +2.049992,.7178357 +2.049992,.7178357 +2.049992,.7178357 +2.049992,.7178357 +2.049992,.7178357 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +3.184025,1.158146 +3.184025,1.158146 +3.184025,1.158146 +3.184025,1.158146 +3.184025,1.158146 +1.769963,.5709586 +1.769963,.5709586 +1.769963,.5709586 +1.769963,.5709586 +1.769963,.5709586 +1.74774,.5583236 +1.74774,.5583236 +1.74774,.5583236 +2.791882,1.026716 +2.791882,1.026716 +2.791882,1.026716 +1.74774,.5583236 +1.74774,.5583236 +1.74774,.5583236 +2.237043,.8051547 +2.237043,.8051547 +2.237043,.8051547 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.611583,1.284146 +3.611583,1.284146 +3.611583,1.284146 +3.611583,1.284146 +3.611583,1.284146 +3.611583,1.284146 +3.611583,1.284146 +3.611583,1.284146 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +2.973309,1.089676 +2.973309,1.089676 +2.973309,1.089676 +2.973309,1.089676 +2.973309,1.089676 +2.034047,.7100272 +2.034047,.7100272 +2.034047,.7100272 +1.829179,.6038671 +1.829179,.6038671 +1.829179,.6038671 +3.825481,1.341684 +3.825481,1.341684 +3.825481,1.341684 +2.988744,1.094853 +2.988744,1.094853 +2.988744,1.094853 +4.833775,1.575628 +4.833775,1.575628 +4.833775,1.575628 +4.833775,1.575628 +4.833775,1.575628 +4.833775,1.575628 +2.429977,.8878819 +2.429977,.8878819 +2.429977,.8878819 +2.429977,.8878819 +2.429977,.8878819 +2.429977,.8878819 +10.39924,2.341733 +10.39924,2.341733 +10.39924,2.341733 +4.075314,1.404948 +4.075314,1.404948 +4.075314,1.404948 +1.589765,.4635859 +1.589765,.4635859 +1.589765,.4635859 +1.589765,.4635859 +1.589765,.4635859 +2.376297,.8655437 +2.376297,.8655437 +2.376297,.8655437 +2.376297,.8655437 +2.376297,.8655437 +2.376297,.8655437 +2.376297,.8655437 +2.376297,.8655437 +2.376297,.8655437 +2.376297,.8655437 +2.376297,.8655437 +2.376297,.8655437 +2.376297,.8655437 +2.376297,.8655437 +2.376297,.8655437 +2.959135,1.084897 +2.959135,1.084897 +2.959135,1.084897 +2.959135,1.084897 +2.959135,1.084897 +3.177549,1.15611 +3.177549,1.15611 +3.177549,1.15611 +3.177549,1.15611 +3.177549,1.15611 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +1.746437,.557578 +1.746437,.557578 +1.991739,.6890082 +1.991739,.6890082 +1.991739,.6890082 +1.768644,.570213 +1.768644,.570213 +1.768644,.570213 +2.921883,1.072228 +2.921883,1.072228 +2.921883,1.072228 +2.376217,.8655097 +2.376217,.8655097 +2.376217,.8655097 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +2.346762,.8530365 +2.346762,.8530365 +2.346762,.8530365 +1.762053,.5664798 +1.762053,.5664798 +1.762053,.5664798 +1.984317,.685275 +1.984317,.685275 +1.984317,.685275 +2.346762,.8530365 +2.346762,.8530365 +2.346762,.8530365 +2.251489,.8115918 +2.251489,.8115918 +2.251489,.8115918 +3.04111,1.112223 +3.04111,1.112223 +3.04111,1.112223 +1.903759,.6438303 +1.903759,.6438303 +1.903759,.6438303 +2.251489,.8115918 +2.251489,.8115918 +2.251489,.8115918 +2.901794,1.065329 +2.901794,1.065329 +2.901794,1.065329 +4.116184,1.414927 +4.116184,1.414927 +4.116184,1.414927 +3.667556,1.299525 +3.667556,1.299525 +3.667556,1.299525 +3.24128,1.175968 +3.24128,1.175968 +3.24128,1.175968 +5.811053,1.759762 +5.811053,1.759762 +5.811053,1.759762 +3.833315,1.34373 +3.833315,1.34373 +3.833315,1.34373 +3.833315,1.34373 +3.833315,1.34373 +3.833315,1.34373 +3.833315,1.34373 +3.833315,1.34373 +3.833315,1.34373 +4.323282,1.464015 +4.323282,1.464015 +4.323282,1.464015 +2.857508,1.04995 +2.857508,1.04995 +2.857508,1.04995 +3.637485,1.291293 +3.637485,1.291293 +3.637485,1.291293 +1.447258,.3696709 +1.447258,.3696709 +1.447258,.3696709 +1.447258,.3696709 +1.447258,.3696709 +1.447258,.3696709 +1.855771,.6183003 +1.855771,.6183003 +1.855771,.6183003 +1.486968,.3967391 +1.486968,.3967391 +1.486968,.3967391 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +4.067146,1.402941 +4.067146,1.402941 +4.067146,1.402941 +4.067146,1.402941 +4.067146,1.402941 +2.857508,1.04995 +2.857508,1.04995 +2.857508,1.04995 +2.126355,.7544092 +2.126355,.7544092 +2.126355,.7544092 +3.566238,1.271511 +3.566238,1.271511 +3.566238,1.271511 +2.821631,1.037315 +2.821631,1.037315 +2.821631,1.037315 +3.340976,1.206263 +3.340976,1.206263 +3.340976,1.206263 +2.973309,1.089676 +2.973309,1.089676 +2.973309,1.089676 +3.178365,1.156367 +3.178365,1.156367 +3.178365,1.156367 +8.998916,2.197104 +8.998916,2.197104 +8.998916,2.197104 +3.361056,1.212255 +3.361056,1.212255 +3.361056,1.212255 +5.88391,1.772222 +5.88391,1.772222 +5.88391,1.772222 +4.024265,1.392342 +4.024265,1.392342 +4.024265,1.392342 +2.827381,1.039351 +2.827381,1.039351 +2.827381,1.039351 +2.336844,.8488014 +2.336844,.8488014 +2.336844,.8488014 +2.336844,.8488014 +2.336844,.8488014 +2.336844,.8488014 +2.336844,.8488014 +2.336844,.8488014 +2.336844,.8488014 +2.336844,.8488014 +1.732577,.5496097 +1.732577,.5496097 +1.732577,.5496097 +1.732577,.5496097 +1.732577,.5496097 +2.217634,.7964409 +2.217634,.7964409 +2.217634,.7964409 +2.217634,.7964409 +2.217634,.7964409 +2.336844,.8488014 +2.336844,.8488014 +2.336844,.8488014 +2.336844,.8488014 +2.336844,.8488014 +2.366542,.8614296 +2.366542,.8614296 +2.366542,.8614296 +2.366542,.8614296 +2.366542,.8614296 +2.366542,.8614296 +2.366542,.8614296 +2.366542,.8614296 +2.366542,.8614296 +2.366542,.8614296 +8.781913,2.172694 +8.781913,2.172694 +8.781913,2.172694 +8.781913,2.172694 +8.781913,2.172694 +3.537384,1.263387 +3.537384,1.263387 +3.537384,1.263387 +3.537384,1.263387 +3.537384,1.263387 +3.35693,1.211027 +3.35693,1.211027 +3.35693,1.211027 +3.35693,1.211027 +3.35693,1.211027 +3.26519,1.183318 +3.26519,1.183318 +3.26519,1.183318 +3.144956,1.1458 +3.144956,1.1458 +3.144956,1.1458 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +4.006281,1.387864 +4.006281,1.387864 +4.006281,1.387864 +4.006281,1.387864 +4.006281,1.387864 +2.357977,.8578042 +2.48831,.9116039 +1.993801,.6900427 +2.564938,.9419343 +2.564938,.9419343 +2.564938,.9419343 +1.802083,.5889429 +1.802083,.5889429 +1.802083,.5889429 +2.597552,.9545693 +2.597552,.9545693 +2.597552,.9545693 +1.824996,.601578 +1.824996,.601578 +2.364714,.8606569 +2.364714,.8606569 +2.364714,.8606569 +2.009548,.69791 +2.009548,.69791 +2.009548,.69791 +1.904765,.6443586 +1.904765,.6443586 +1.904765,.6443586 +1.904765,.6443586 +1.904765,.6443586 +1.904765,.6443586 +1.904765,.6443586 +1.904765,.6443586 +1.904765,.6443586 +1.904765,.6443586 +1.807597,.5919981 +1.807597,.5919981 +1.807597,.5919981 +1.807597,.5919981 +1.807597,.5919981 +2.035605,.7107933 +2.035605,.7107933 +2.035605,.7107933 +2.035605,.7107933 +2.035605,.7107933 +1.706292,.5343226 +1.706292,.5343226 +1.706292,.5343226 +2.009548,.69791 +2.009548,.69791 +2.009548,.69791 +2.009548,.69791 +2.009548,.69791 +2.255363,.813311 +2.255363,.813311 +2.255363,.813311 +2.255363,.813311 +2.255363,.813311 +1.806779,.5915456 +1.806779,.5915456 +1.806779,.5915456 +2.406329,.8781024 +2.406329,.8781024 +2.406329,.8781024 +2.406329,.8781024 +2.406329,.8781024 +2.406329,.8781024 +2.406329,.8781024 +2.406329,.8781024 +2.406329,.8781024 +2.996532,1.097456 +2.996532,1.097456 +2.996532,1.097456 +3.340976,1.206263 +3.340976,1.206263 +3.340976,1.206263 +2.0552,.7203732 +2.0552,.7203732 +2.0552,.7203732 +3.075299,1.123402 +3.075299,1.123402 +3.075299,1.123402 +2.563995,.9415665 +2.563995,.9415665 +2.563995,.9415665 +1.715336,.5396088 +1.715336,.5396088 +1.715336,.5396088 +1.715336,.5396088 +1.715336,.5396088 +1.715336,.5396088 +2.563995,.9415665 +2.563995,.9415665 +2.563995,.9415665 +3.016226,1.104006 +3.016226,1.104006 +3.016226,1.104006 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +8.418341,2.130413 +8.418341,2.130413 +8.418341,2.130413 +2.009255,.6977642 +2.009255,.6977642 +2.009255,.6977642 +2.376255,.8655258 +2.376255,.8655258 +2.376255,.8655258 +2.009255,.6977642 +2.009255,.6977642 +2.009255,.6977642 +3.291824,1.191442 +3.291824,1.191442 +3.291824,1.191442 +2.539853,.9321062 +2.539853,.9321062 +2.539853,.9321062 +3.169796,1.153667 +3.169796,1.153667 +3.169796,1.153667 +2.009548,.69791 +2.009548,.69791 +2.009548,.69791 +1.982043,.6841279 +1.982043,.6841279 +1.982043,.6841279 +3.689309,1.305439 +3.689309,1.305439 +3.689309,1.305439 +1.967226,.6766247 +1.967226,.6766247 +1.967226,.6766247 +1.746877,.5578295 +1.746877,.5578295 +1.746877,.5578295 +2.486362,.9108208 +2.486362,.9108208 +2.486362,.9108208 +1.320799,.2782372 +1.320799,.2782372 +1.320799,.2782372 +1.482364,.3936382 +1.482364,.3936382 +1.482364,.3936382 +3.546413,1.265937 +3.546413,1.265937 +3.546413,1.265937 +3.737052,1.318297 +3.737052,1.318297 +3.737052,1.318297 +3.737052,1.318297 +3.737052,1.318297 +3.737052,1.318297 +3.546413,1.265937 +3.546413,1.265937 +3.546413,1.265937 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +2.014463,.7003528 +2.014463,.7003528 +2.014463,.7003528 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +5.682895,1.737461 +5.682895,1.737461 +5.682895,1.737461 +3.557537,1.269068 +3.557537,1.269068 +3.557537,1.269068 +2.207864,.7920257 +2.207864,.7920257 +2.207864,.7920257 +2.207864,.7920257 +2.207864,.7920257 +3.334049,1.204188 +3.334049,1.204188 +3.334049,1.204188 +3.334049,1.204188 +3.334049,1.204188 +4.774291,1.563245 +4.774291,1.563245 +4.774291,1.563245 +1.824996,.601578 +1.824996,.601578 +1.824996,.601578 +2.0552,.7203732 +2.0552,.7203732 +2.0552,.7203732 +2.915293,1.06997 +2.915293,1.06997 +2.915293,1.06997 +2.430267,.8880011 +2.430267,.8880011 +2.430267,.8880011 +1.801842,.5888094 +1.801842,.5888094 +1.801842,.5888094 +2.430267,.8880011 +2.430267,.8880011 +2.430267,.8880011 +2.430267,.8880011 +2.430267,.8880011 +2.430267,.8880011 +1.801842,.5888094 +1.801842,.5888094 +1.801842,.5888094 +1.564701,.4476945 +1.564701,.4476945 +1.564701,.4476945 +3.092916,1.129114 +3.092916,1.129114 +3.092916,1.129114 +4.555017,1.516229 +4.555017,1.516229 +4.555017,1.516229 +1.666954,.510998 +1.666954,.510998 +1.666954,.510998 +2.364568,.8605952 +2.364568,.8605952 +2.364568,.8605952 +3.507292,1.254844 +3.507292,1.254844 +3.507292,1.254844 +4.43284,1.48904 +4.43284,1.48904 +4.43284,1.48904 +3.695828,1.307205 +3.695828,1.307205 +3.695828,1.307205 +3.85908,1.350429 +3.85908,1.350429 +3.85908,1.350429 +2.711325,.9974375 +2.711325,.9974375 +2.711325,.9974375 +4.331136,1.46583 +4.331136,1.46583 +4.331136,1.46583 +1.9296,.6573125 +1.9296,.6573125 +1.9296,.6573125 +1.902144,.6429817 +1.902144,.6429817 +1.902144,.6429817 +1.902144,.6429817 +1.902144,.6429817 +1.902144,.6429817 +2.532043,.9290265 +2.532043,.9290265 +2.532043,.9290265 +1.902144,.6429817 +1.902144,.6429817 +1.902144,.6429817 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +2.51995,.9242389 +2.51995,.9242389 +2.51995,.9242389 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +2.070025,.7275605 +2.070025,.7275605 +2.070025,.7275605 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +5.002394,1.609917 +5.002394,1.609917 +5.002394,1.609917 +5.002394,1.609917 +5.002394,1.609917 +2.973309,1.089676 +2.973309,1.089676 +2.973309,1.089676 +2.973309,1.089676 +2.973309,1.089676 +2.305508,.8353009 +2.305508,.8353009 +2.305508,.8353009 +2.564383,.9417178 +2.564383,.9417178 +2.564383,.9417178 +2.429442,.8876615 +2.429442,.8876615 +2.429442,.8876615 +3.177549,1.15611 +3.177549,1.15611 +3.177549,1.15611 +3.177549,1.15611 +3.177549,1.15611 +6.034618,1.797513 +6.034618,1.797513 +6.034618,1.797513 +1.80221,.5890139 +4.298558,1.458279 +4.298558,1.458279 +4.298558,1.458279 +4.840774,1.577075 +4.840774,1.577075 +4.840774,1.577075 +2.591843,.9523693 +2.591843,.9523693 +2.591843,.9523693 +4.140273,1.420762 +4.140273,1.420762 +4.140273,1.420762 +2.914012,1.069531 +2.914012,1.069531 +2.914012,1.069531 +2.305586,.8353348 +2.305586,.8353348 +2.429524,.8876953 +2.429524,.8876953 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +4.170687,1.428081 +4.170687,1.428081 +4.170687,1.428081 +3.178365,1.156367 +3.178365,1.156367 +3.178365,1.156367 +5.075893,1.624503 +5.075893,1.624503 +5.075893,1.624503 +4.170687,1.428081 +4.170687,1.428081 +4.170687,1.428081 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.239174,1.175318 +3.239174,1.175318 +3.239174,1.175318 +2.428618,.8873226 +2.428618,.8873226 +2.428618,.8873226 +2.430161,.8879576 +2.430161,.8879576 +2.430161,.8879576 +2.87818,1.057158 +2.87818,1.057158 +2.87818,1.057158 +2.430161,.8879576 +2.430161,.8879576 +2.430161,.8879576 +2.430161,.8879576 +2.430161,.8879576 +2.430161,.8879576 +1.6258,.4859999 +1.6258,.4859999 +1.6258,.4859999 +3.009249,1.10169 +3.009249,1.10169 +3.009249,1.10169 +3.514218,1.256817 +3.514218,1.256817 +3.514218,1.256817 +3.514218,1.256817 +3.514218,1.256817 +3.514218,1.256817 +3.052566,1.115983 +3.052566,1.115983 +3.052566,1.115983 +4.985807,1.606595 +4.985807,1.606595 +4.985807,1.606595 +2.469478,.9040069 +2.469478,.9040069 +2.469478,.9040069 +2.119305,.7510881 +2.119305,.7510881 +2.119305,.7510881 +1.568627,.4502005 +1.568627,.4502005 +1.568627,.4502005 +2.601558,.9561107 +2.601558,.9561107 +2.601558,.9561107 +1.961412,.6736648 +1.961412,.6736648 +1.961412,.6736648 +1.961412,.6736648 +1.961412,.6736648 +2.373116,.8642036 +2.536127,.9306383 +4.446301,1.492073 +4.446301,1.492073 +4.446301,1.492073 +2.227046,.800676 +2.227046,.800676 +2.227046,.800676 +5.642519,1.730331 +5.642519,1.730331 +5.642519,1.730331 +5.642519,1.730331 +5.642519,1.730331 +1.887939,.6354859 +1.887939,.6354859 +1.887939,.6354859 +2.818588,1.036236 +2.818588,1.036236 +2.818588,1.036236 +2.511387,.920835 +2.511387,.920835 +2.511387,.920835 +2.357296,.8575153 +2.357296,.8575153 +2.357296,.8575153 +2.237043,.8051547 +2.237043,.8051547 +2.237043,.8051547 +4.097293,1.410327 +4.097293,1.410327 +4.097293,1.410327 +2.941503,1.078921 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +3.713552,1.311989 +3.713552,1.311989 +3.713552,1.311989 +3.666926,1.299354 +3.666926,1.299354 +3.666926,1.299354 +8.012572,2.081012 +8.012572,2.081012 +8.012572,2.081012 +4.679659,1.543225 +4.679659,1.543225 +4.679659,1.543225 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +6.415383,1.858699 +6.415383,1.858699 +6.415383,1.858699 +2.973309,1.089676 +2.973309,1.089676 +2.973309,1.089676 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.014463,.7003528 +2.014463,.7003528 +2.014463,.7003528 +1.798187,.5867788 +1.798187,.5867788 +1.798187,.5867788 +1.798187,.5867788 +1.798187,.5867788 +2.982283,1.092689 +2.982283,1.092689 +2.982283,1.092689 +2.982283,1.092689 +2.982283,1.092689 +2.272715,.820975 +2.272715,.820975 +2.272715,.820975 +2.272715,.820975 +2.272715,.820975 +1.798187,.5867788 +1.798187,.5867788 +1.798187,.5867788 +1.798187,.5867788 +1.798187,.5867788 +3.924217,1.367167 +3.924217,1.367167 +3.924217,1.367167 +2.757089,1.014176 +2.757089,1.014176 +2.757089,1.014176 +1.665129,.5099028 +1.665129,.5099028 +1.665129,.5099028 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +2.209594,.7928087 +2.209594,.7928087 +2.209594,.7928087 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +2.375574,.865239 +2.375574,.865239 +2.849304,1.047075 +3.217952,1.168745 +3.217952,1.168745 +3.217952,1.168745 +2.009548,.69791 +2.009548,.69791 +2.009548,.69791 +2.380635,.8673673 +2.380635,.8673673 +2.380635,.8673673 +2.255363,.813311 +2.227046,.800676 +2.227046,.800676 +2.346762,.8530365 +2.346762,.8530365 +2.346762,.8530365 +7.971447,2.075866 +7.971447,2.075866 +7.971447,2.075866 +4.943962,1.598167 +4.943962,1.598167 +4.943962,1.598167 +3.767656,1.326453 +3.767656,1.326453 +3.767656,1.326453 +4.632847,1.533172 +4.632847,1.533172 +4.632847,1.533172 +4.046994,1.397974 +4.046994,1.397974 +4.046994,1.397974 +5.336956,1.674655 +5.336956,1.674655 +5.336956,1.674655 +3.702577,1.309029 +3.702577,1.309029 +3.702577,1.309029 +2.553577,.9374949 +2.553577,.9374949 +2.553577,.9374949 +1.414929,.3470791 +1.414929,.3470791 +1.414929,.3470791 +1.397164,.3344441 +1.397164,.3344441 +1.397164,.3344441 +1.88445,.6336358 +1.88445,.6336358 +1.88445,.6336358 +2.825985,1.038857 +5.323934,1.672212 +5.323934,1.672212 +5.323934,1.672212 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +4.553515,1.5159 +4.553515,1.5159 +4.553515,1.5159 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +8.13853,2.09661 +8.13853,2.09661 +8.13853,2.09661 +3.817257,1.339532 +3.817257,1.339532 +3.817257,1.339532 +1.320799,.2782372 +1.320799,.2782372 +1.320799,.2782372 +2.328372,.8451692 +2.328372,.8451692 +2.328372,.8451692 +2.48831,.9116039 +2.48831,.9116039 +2.48831,.9116039 +3.266028,1.183575 +3.266028,1.183575 +3.266028,1.183575 +1.968767,.6774077 +1.968767,.6774077 +1.968767,.6774077 +3.011115,1.102311 +5.633392,1.728712 +4.679659,1.543225 +2.43041,.8880599 +2.43041,.8880599 +2.43041,.8880599 +2.43041,.8880599 +2.43041,.8880599 +2.98852,1.094778 +2.98852,1.094778 +2.98852,1.094778 +2.98852,1.094778 +4.253617,1.44777 +4.253617,1.44777 +4.253617,1.44777 +4.253617,1.44777 +4.253617,1.44777 +2.328372,.8451692 +2.328372,.8451692 +2.328372,.8451692 +2.175727,.7773626 +2.175727,.7773626 +2.175727,.7773626 +1.868814,.6253039 +1.868814,.6253039 +1.868814,.6253039 +1.665129,.5099028 +1.665129,.5099028 +1.665129,.5099028 +2.104544,.744099 +2.104544,.744099 +2.104544,.744099 +1.556483,.4424285 +1.556483,.4424285 +1.556483,.4424285 +2.597552,.9545693 +2.597552,.9545693 +2.597552,.9545693 +5.376516,1.682041 +5.376516,1.682041 +5.376516,1.682041 +3.825481,1.341684 +3.825481,1.341684 +3.825481,1.341684 +1.824996,.601578 +1.824996,.601578 +1.824996,.601578 +4.169617,1.427824 +4.169617,1.427824 +4.169617,1.427824 +4.169617,1.427824 +4.169617,1.427824 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +2.857508,1.04995 +2.857508,1.04995 +2.857508,1.04995 +2.857508,1.04995 +2.857508,1.04995 +4.572748,1.520114 +4.572748,1.520114 +4.572748,1.520114 +4.572748,1.520114 +4.572748,1.520114 +2.715604,.9990144 +2.715604,.9990144 +2.715604,.9990144 +3.058148,1.11781 +3.058148,1.11781 +3.058148,1.11781 +2.419627,.8836133 +2.419627,.8836133 +2.419627,.8836133 +6.232857,1.829835 +6.232857,1.829835 +6.232857,1.829835 +2.814372,1.034739 +2.814372,1.034739 +2.814372,1.034739 +2.376285,.8655384 +2.376285,.8655384 +2.376285,.8655384 +2.50763,.919338 +2.50763,.919338 +2.50763,.919338 +2.34645,.8529034 +2.255063,.8131779 +2.255063,.8131779 +2.255063,.8131779 +2.380318,.8672342 +2.508274,.9195947 +2.508274,.9195947 +2.508274,.9195947 +2.376285,.8655384 +2.376285,.8655384 +2.376285,.8655384 +3.184945,1.158435 +3.184945,1.158435 +3.184945,1.158435 +3.184945,1.158435 +3.184945,1.158435 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +3.91733,1.36541 +3.91733,1.36541 +3.91733,1.36541 +3.91733,1.36541 +3.91733,1.36541 +4.514296,1.507249 +4.514296,1.507249 +4.514296,1.507249 +1.984317,.685275 +1.984317,.685275 +1.984317,.685275 +2.772191,1.019638 +2.772191,1.019638 +2.772191,1.019638 +2.51995,.9242389 +2.51995,.9242389 +2.51995,.9242389 +3.184945,1.158435 +3.184945,1.158435 +3.184945,1.158435 +2.237689,.8054437 +2.237689,.8054437 +2.237689,.8054437 +2.237689,.8054437 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +2.973309,1.089676 +2.973309,1.089676 +2.973309,1.089676 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.973309,1.089676 +2.973309,1.089676 +2.973309,1.089676 +3.971775,1.379213 +3.971775,1.379213 +3.971775,1.379213 +3.971775,1.379213 +3.971775,1.379213 +1.989171,.6877179 +1.989171,.6877179 +1.989171,.6877179 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +2.973309,1.089676 +2.973309,1.089676 +2.973309,1.089676 +3.566238,1.271511 +3.566238,1.271511 +3.566238,1.271511 +2.028295,.7071955 +2.028295,.7071955 +2.028295,.7071955 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +1.570005,.4510788 +1.570005,.4510788 +1.570005,.4510788 +1.570005,.4510788 +1.570005,.4510788 +2.227046,.800676 +2.227046,.800676 +2.227046,.800676 +2.227046,.800676 +2.227046,.800676 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +2.255363,.813311 +2.255363,.813311 +2.255363,.813311 +2.255363,.813311 +2.255363,.813311 +6.447466,1.863687 +2.433632,.8893847 +3.597131,1.280137 +3.597131,1.280137 +3.597131,1.280137 +2.403053,.8767399 +2.403053,.8767399 +2.403053,.8767399 +2.403053,.8767399 +2.403053,.8767399 +2.403053,.8767399 +2.882263,1.058576 +2.882263,1.058576 +2.882263,1.058576 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +2.643402,.9720669 +2.643402,.9720669 +2.643402,.9720669 +8.418341,2.130413 +8.418341,2.130413 +8.418341,2.130413 +2.327699,.8448802 +2.327699,.8448802 +2.327699,.8448802 +3.528638,1.260912 +3.528638,1.260912 +3.528638,1.260912 +2.487591,.9113149 +2.487591,.9113149 +2.487591,.9113149 +2.361297,.8592111 +2.361297,.8592111 +2.361297,.8592111 +3.309602,1.196828 +3.309602,1.196828 +3.309602,1.196828 +3.309602,1.196828 +3.309602,1.196828 +2.922384,1.0724 +2.922384,1.0724 +2.922384,1.0724 +2.922384,1.0724 +2.922384,1.0724 +2.007733,.6970063 +2.007733,.6970063 +2.007733,.6970063 +2.253326,.8124074 +2.253326,.8124074 +2.253326,.8124074 +2.0552,.7203732 +2.0552,.7203732 +2.0552,.7203732 +2.597552,.9545693 +2.597552,.9545693 +2.597552,.9545693 +2.597552,.9545693 +2.597552,.9545693 +2.597552,.9545693 +2.0552,.7203732 +2.0552,.7203732 +2.0552,.7203732 +2.650866,.9748864 +2.650866,.9748864 +2.650866,.9748864 +2.786227,1.024688 +2.786227,1.024688 +2.786227,1.024688 +2.480479,.9084517 +2.480479,.9084517 +2.480479,.9084517 +1.890304,.6367377 +1.890304,.6367377 +1.890304,.6367377 +4.937773,1.596914 +4.937773,1.596914 +4.937773,1.596914 +3.091085,1.128522 +3.091085,1.128522 +3.091085,1.128522 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +3.557018,1.268923 +3.557018,1.268923 +3.557018,1.268923 +2.014463,.7003528 +2.014463,.7003528 +2.014463,.7003528 +2.014463,.7003528 +2.014463,.7003528 +2.973309,1.089676 +2.973309,1.089676 +2.973309,1.089676 +2.973309,1.089676 +2.973309,1.089676 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +2.821631,1.037315 +2.821631,1.037315 +2.821631,1.037315 +2.821631,1.037315 +2.821631,1.037315 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.636255,1.290954 +3.636255,1.290954 +3.636255,1.290954 +2.806589,1.03197 +2.806589,1.03197 +2.806589,1.03197 +5.603361,1.723366 +5.603361,1.723366 +5.603361,1.723366 +2.306599,.8357741 +2.306599,.8357741 +2.306599,.8357741 +2.696857,.9920871 +2.696857,.9920871 +2.696857,.9920871 +2.430592,.8881347 +2.430592,.8881347 +2.430592,.8881347 +5.440917,1.693948 +5.440917,1.693948 +5.440917,1.693948 +5.440917,1.693948 +5.440917,1.693948 +3.364155,1.213177 +3.364155,1.213177 +3.364155,1.213177 +3.364155,1.213177 +3.364155,1.213177 +3.822697,1.340956 +3.822697,1.340956 +3.822697,1.340956 +3.822697,1.340956 +3.822697,1.340956 +2.428823,.8874065 +2.428823,.8874065 +2.428823,.8874065 +2.428823,.8874065 +2.428823,.8874065 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +2.48831,.9116039 +2.48831,.9116039 +2.48831,.9116039 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +7.990944,2.078309 +7.990944,2.078309 +7.990944,2.078309 +5.002394,1.609917 +5.002394,1.609917 +5.002394,1.609917 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +4.564652,1.518342 +4.564652,1.518342 +4.564652,1.518342 +4.446301,1.492073 +4.446301,1.492073 +4.446301,1.492073 +2.209594,.7928087 +2.209594,.7928087 +2.209594,.7928087 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +3.566238,1.271511 +3.566238,1.271511 +3.566238,1.271511 +6.791664,1.915696 +6.791664,1.915696 +6.791664,1.915696 +1.719258,.5418926 +1.719258,.5418926 +1.719258,.5418926 +1.873549,.6278344 +1.873549,.6278344 +1.873549,.6278344 +6.660646,1.896217 +6.660646,1.896217 +6.660646,1.896217 +2.973309,1.089676 +2.973309,1.089676 +2.973309,1.089676 +3.011115,1.102311 +3.011115,1.102311 +4.679659,1.543225 +4.679659,1.543225 +4.679659,1.543225 +2.973309,1.089676 +2.973309,1.089676 +2.973309,1.089676 +2.857508,1.04995 +2.857508,1.04995 +2.857508,1.04995 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +2.973309,1.089676 +2.973309,1.089676 +2.973309,1.089676 +5.755154,1.750096 +5.755154,1.750096 +5.755154,1.750096 +2.539853,.9321062 +2.539853,.9321062 +2.539853,.9321062 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +1.904765,.6443586 +1.904765,.6443586 +2.371949,.8637121 +5.054894,1.620357 +1.904765,.6443586 +2.014463,.7003528 +2.014463,.7003528 +2.014463,.7003528 +2.014463,.7003528 +2.014463,.7003528 +5.002394,1.609917 +5.002394,1.609917 +5.002394,1.609917 +5.002394,1.609917 +4.01608,1.390306 +4.01608,1.390306 +4.01608,1.390306 +4.01608,1.390306 +4.01608,1.390306 +1.823958,.6010089 +1.823958,.6010089 +1.823958,.6010089 +1.823958,.6010089 +1.823958,.6010089 +3.566238,1.271511 +3.566238,1.271511 +3.566238,1.271511 +2.48831,.9116039 +2.48831,.9116039 +2.48831,.9116039 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +2.328372,.8451692 +2.328372,.8451692 +2.328372,.8451692 +2.328372,.8451692 +2.328372,.8451692 +2.328372,.8451692 +2.009137,.6977051 +2.009137,.6977051 +2.009137,.6977051 +7.341358,1.993524 +7.341358,1.993524 +7.341358,1.993524 +4.01608,1.390306 +4.01608,1.390306 +4.01608,1.390306 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +4.507341,1.505707 +4.507341,1.505707 +4.507341,1.505707 +2.973309,1.089676 +2.973309,1.089676 +2.973309,1.089676 +2.564938,.9419343 +2.564938,.9419343 +2.564938,.9419343 +1.802083,.5889429 +1.802083,.5889429 +1.802083,.5889429 +2.493696,.9137658 +2.493696,.9137658 +2.493696,.9137658 +2.493696,.9137658 +2.493696,.9137658 +2.493696,.9137658 +3.727447,1.315724 +3.727447,1.315724 +3.727447,1.315724 +2.255363,.813311 +2.255363,.813311 +2.255363,.813311 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +2.009548,.69791 +2.009548,.69791 +2.009548,.69791 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +4.545715,1.514185 +1.823427,.6007177 +1.823427,.6007177 +1.823427,.6007177 +1.672152,.5141116 +1.672152,.5141116 +1.672152,.5141116 +1.672152,.5141116 +3.158221,1.150009 +3.158221,1.150009 +3.158221,1.150009 +3.158221,1.150009 +3.158221,1.150009 +2.113421,.7483078 +2.113421,.7483078 +2.113421,.7483078 +2.113421,.7483078 +2.113421,.7483078 +2.706757,.9957514 +2.706757,.9957514 +2.706757,.9957514 +3.451993,1.238952 +3.451993,1.238952 +3.451993,1.238952 +3.451993,1.238952 +3.451993,1.238952 +2.511246,.9207792 +2.511246,.9207792 +2.511246,.9207792 +3.962176,1.376793 +3.962176,1.376793 +3.962176,1.376793 +3.753681,1.322737 +3.753681,1.322737 +3.753681,1.322737 +3.517468,1.257741 +3.517468,1.257741 +3.517468,1.257741 +3.392287,1.221504 +3.392287,1.221504 +3.392287,1.221504 +6.014094,1.794106 +6.014094,1.794106 +6.014094,1.794106 +4.083648,1.406991 +4.083648,1.406991 +4.083648,1.406991 +1.432335,.3593061 +1.432335,.3593061 +1.432335,.3593061 +1.907632,.6458628 +1.907632,.6458628 +1.907632,.6458628 +1.810318,.5935022 +1.810318,.5935022 +1.810318,.5935022 +1.907632,.6458628 +1.907632,.6458628 +1.907632,.6458628 +1.806212,.5912321 +1.806212,.5912321 +1.806212,.5912321 +1.806212,.5912321 +1.806212,.5912321 +1.806212,.5912321 +2.277638,.8231391 +2.277638,.8231391 +2.277638,.8231391 +2.277638,.8231391 +2.277638,.8231391 +1.824261,.6011749 +1.824261,.6011749 +1.824261,.6011749 +5.374349,1.681638 +5.374349,1.681638 +5.374349,1.681638 +2.554027,.9376712 +2.554027,.9376712 +2.554027,.9376712 +2.389864,.8712366 +2.389864,.8712366 +2.389864,.8712366 +3.622877,1.287268 +3.622877,1.287268 +3.622877,1.287268 +2.389864,.8712366 +2.389864,.8712366 +2.389864,.8712366 +3.136008,1.142951 +3.136008,1.142951 +3.136008,1.142951 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.299028,1.193628 +3.299028,1.193628 +3.299028,1.193628 +3.299028,1.193628 +3.299028,1.193628 +3.217952,1.168745 +3.217952,1.168745 +3.217952,1.168745 +3.217952,1.168745 +3.217952,1.168745 +2.857508,1.04995 +9.727795,2.274987 +9.727795,2.274987 +9.727795,2.274987 +1.610584,.4765971 +1.610584,.4765971 +1.610584,.4765971 +5.269948,1.66202 +5.269948,1.66202 +5.269948,1.66202 +5.269948,1.66202 +5.269948,1.66202 +2.973309,1.089676 +2.973309,1.089676 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +3.299028,1.193628 +3.299028,1.193628 +3.299028,1.193628 +3.299028,1.193628 +3.299028,1.193628 +3.928551,1.368271 +3.928551,1.368271 +3.928551,1.368271 +3.928551,1.368271 +3.928551,1.368271 +2.014463,.7003528 +2.014463,.7003528 +2.014463,.7003528 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +2.857508,1.04995 +2.857508,1.04995 +2.857508,1.04995 +3.611583,1.284146 +3.611583,1.284146 +3.611583,1.284146 +3.611583,1.284146 +3.611583,1.284146 +3.299028,1.193628 +3.299028,1.193628 +3.299028,1.193628 +3.299028,1.193628 +3.299028,1.193628 +2.040928,.7134048 +2.040928,.7134048 +2.040928,.7134048 +2.967989,1.087885 +2.967989,1.087885 +2.967989,1.087885 +2.413713,.8811663 +2.413713,.8811663 +2.413713,.8811663 +1.245999,.2199378 +1.245999,.2199378 +1.245999,.2199378 +1.245999,.2199378 +1.245999,.2199378 +1.767445,.569535 +1.767445,.569535 +1.767445,.569535 +1.767445,.569535 +1.767445,.569535 +1.574809,.4541339 +1.574809,.4541339 +1.574809,.4541339 +1.574809,.4541339 +1.574809,.4541339 +1.862455,.6218954 +1.862455,.6218954 +1.862455,.6218954 +1.862455,.6218954 +1.862455,.6218954 +1.245999,.2199378 +1.245999,.2199378 +1.245999,.2199378 +1.245999,.2199378 +1.245999,.2199378 +2.597552,.9545693 +2.597552,.9545693 +2.597552,.9545693 +2.519222,.9239499 +2.519222,.9239499 +2.519222,.9239499 +2.898617,1.064234 +2.898617,1.064234 +2.898617,1.064234 +3.241806,1.17613 +3.241806,1.17613 +3.241806,1.17613 +3.00277,1.099535 +3.00277,1.099535 +3.00277,1.099535 +3.00277,1.099535 +3.00277,1.099535 +1.879757,.6311427 +1.879757,.6311427 +1.879757,.6311427 +1.879757,.6311427 +1.879757,.6311427 +2.375811,.8653389 +2.375811,.8653389 +2.375811,.8653389 +2.375811,.8653389 +2.375811,.8653389 +2.375811,.8653389 +2.375811,.8653389 +2.399915,.8754333 +2.399915,.8754333 +2.399915,.8754333 +2.399915,.8754333 +2.399915,.8754333 +2.399915,.8754333 +2.878499,1.057269 +2.878499,1.057269 +2.878499,1.057269 +2.277487,.8230727 +2.277487,.8230727 +2.277487,.8230727 +2.399915,.8754333 +2.399915,.8754333 +2.399915,.8754333 +2.592345,.952563 +2.592345,.952563 +2.592345,.952563 +1.643463,.4968057 +1.643463,.4968057 +1.643463,.4968057 +2.456563,.8987634 +2.456563,.8987634 +2.456563,.8987634 +2.456563,.8987634 +2.456563,.8987634 +2.456563,.8987634 +1.734684,.550825 +1.734684,.550825 +1.734684,.550825 +2.31031,.8373817 +2.31031,.8373817 +2.31031,.8373817 +3.12056,1.138013 +3.12056,1.138013 +3.12056,1.138013 +1.734684,.550825 +1.734684,.550825 +2.31031,.8373817 +2.31031,.8373817 +2.31031,.8373817 +2.192453,.7850212 +2.192453,.7850212 +2.192453,.7850212 +5.269948,1.66202 +5.269948,1.66202 +5.269948,1.66202 +5.269948,1.66202 +5.269948,1.66202 +2.821631,1.037315 +2.821631,1.037315 +2.821631,1.037315 +2.821631,1.037315 +2.821631,1.037315 +3.910019,1.363542 +3.910019,1.363542 +3.910019,1.363542 +3.658699,1.297108 +3.658699,1.297108 +3.658699,1.297108 +3.612762,1.284472 +3.612762,1.284472 +3.612762,1.284472 +3.428463,1.232112 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +3.664599,1.298719 +2.659918,.9782952 +1.769963,.5709586 +1.769963,.5709586 +1.769963,.5709586 +1.993225,.6897537 +1.993225,.6897537 +1.993225,.6897537 +3.449795,1.238315 +3.449795,1.238315 +3.449795,1.238315 +2.275689,.822283 +2.275689,.822283 +2.275689,.822283 +2.275689,.822283 +2.275689,.822283 +2.275689,.822283 +3.073798,1.122914 +3.073798,1.122914 +3.073798,1.122914 +2.275689,.822283 +2.275689,.822283 +2.275689,.822283 +2.0552,.7203732 +2.0552,.7203732 +2.0552,.7203732 +2.822601,1.037659 +2.822601,1.037659 +2.822601,1.037659 +3.759235,1.324216 +3.759235,1.324216 +3.759235,1.324216 +3.759235,1.324216 +3.759235,1.324216 +3.759235,1.324216 +3.96702,1.378015 +3.96702,1.378015 +3.96702,1.378015 +2.225679,.8000619 +2.225679,.8000619 +2.225679,.8000619 +2.225679,.8000619 +2.225679,.8000619 +1.569041,.4504648 +1.569041,.4504648 +1.569041,.4504648 +1.569041,.4504648 +1.569041,.4504648 +7.74817,2.047457 +7.74817,2.047457 +7.74817,2.047457 +3.690104,1.305655 +3.690104,1.305655 +3.690104,1.305655 +3.690104,1.305655 +3.690104,1.305655 +3.690104,1.305655 +3.79324,1.33322 +3.79324,1.33322 +3.79324,1.33322 +4.054842,1.399912 +4.054842,1.399912 +4.054842,1.399912 +2.738211,1.007305 +2.738211,1.007305 +2.738211,1.007305 +2.738211,1.007305 +2.738211,1.007305 +2.738211,1.007305 +2.738211,1.007305 +2.738211,1.007305 +2.738211,1.007305 +2.738211,1.007305 +3.095814,1.130051 +3.095814,1.130051 +3.095814,1.130051 +3.661279,1.297812 +3.661279,1.297812 +3.661279,1.297812 +3.661279,1.297812 +3.661279,1.297812 +3.661279,1.297812 +2.749051,1.011256 +2.749051,1.011256 +2.749051,1.011256 +3.133781,1.14224 +3.133781,1.14224 +3.133781,1.14224 +3.517116,1.257641 +3.517116,1.257641 +3.517116,1.257641 +6.6074,1.88819 +6.6074,1.88819 +6.6074,1.88819 +6.6074,1.88819 +6.6074,1.88819 +6.271945,1.836086 +6.271945,1.836086 +6.271945,1.836086 +6.271945,1.836086 +6.271945,1.836086 +3.775302,1.32848 +3.775302,1.32848 +3.775302,1.32848 +3.775302,1.32848 +3.775302,1.32848 +3.775302,1.32848 +3.775302,1.32848 +3.775302,1.32848 +3.775302,1.32848 +3.775302,1.32848 +3.055316,1.116883 +3.055316,1.116883 +3.055316,1.116883 +2.328372,.8451692 +2.328372,.8451692 +2.328372,.8451692 +2.792689,1.027005 +2.792689,1.027005 +2.792689,1.027005 +1.748245,.5586125 +1.748245,.5586125 +1.748245,.5586125 +2.507964,.9194711 +2.507964,.9194711 +2.507964,.9194711 +2.507964,.9194711 +2.507964,.9194711 +1.801653,.5887048 +1.801653,.5887048 +1.801653,.5887048 +2.442519,.89303 +2.442519,.89303 +2.442519,.89303 +6.232732,1.829815 +6.232732,1.829815 +6.232732,1.829815 +3.126335,1.139861 +3.126335,1.139861 +3.126335,1.139861 +2.776153,1.021066 +2.776153,1.021066 +3.464704,1.242627 +3.464704,1.242627 +3.464704,1.242627 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +2.857508,1.04995 +2.857508,1.04995 +2.857508,1.04995 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +1.769089,.5704646 +1.769089,.5704646 +1.769089,.5704646 +1.769089,.5704646 +1.769089,.5704646 +1.784458,.5791149 +1.784458,.5791149 +1.784458,.5791149 +1.784458,.5791149 +1.784458,.5791149 +2.959514,1.085025 +2.959514,1.085025 +2.959514,1.085025 +2.959514,1.085025 +2.959514,1.085025 +2.519222,.9239499 +2.519222,.9239499 +2.519222,.9239499 +2.519222,.9239499 +2.519222,.9239499 +1.769963,.5709586 +1.769963,.5709586 +1.769963,.5709586 +1.769963,.5709586 +1.769963,.5709586 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +2.237689,.8054437 +2.237689,.8054437 +2.237689,.8054437 +2.792689,1.027005 +2.792689,1.027005 +2.792689,1.027005 +2.792689,1.027005 +2.792689,1.027005 +2.792689,1.027005 +2.237689,.8054437 +2.237689,.8054437 +2.237689,.8054437 +2.289519,.8283417 +2.289519,.8283417 +2.289519,.8283417 +2.172723,.7759812 +2.172723,.7759812 +2.172723,.7759812 +1.531709,.426384 +1.531709,.426384 +1.531709,.426384 +2.289519,.8283417 +2.289519,.8283417 +2.289519,.8283417 +2.226785,.8005589 +2.226785,.8005589 +2.226785,.8005589 +2.226785,.8005589 +2.226785,.8005589 +2.514098,.921914 +2.514098,.921914 +2.821631,1.037315 +2.821631,1.037315 +2.821631,1.037315 +6.660646,1.896217 +6.660646,1.896217 +6.660646,1.896217 +2.42853,.8872861 +2.42853,.8872861 +2.42853,.8872861 +2.42853,.8872861 +2.42853,.8872861 +1.823448,.6007293 +1.823448,.6007293 +1.823448,.6007293 +1.823448,.6007293 +1.823448,.6007293 +1.624708,.4853283 +1.624708,.4853283 +1.624708,.4853283 +1.624708,.4853283 +1.624708,.4853283 +2.966752,1.087468 +2.966752,1.087468 +2.966752,1.087468 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +2.539853,.9321062 +2.539853,.9321062 +2.539853,.9321062 +2.539853,.9321062 +2.539853,.9321062 +2.009548,.69791 +2.009548,.69791 +2.009548,.69791 +2.009548,.69791 +2.009548,.69791 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +2.031537,.7087924 +2.031537,.7087924 +2.031537,.7087924 +2.280041,.8241935 +2.280041,.8241935 +2.280041,.8241935 +4.232727,1.442846 +4.232727,1.442846 +4.232727,1.442846 +1.823194,.60059 +1.823194,.60059 +1.823194,.60059 +2.375133,.8650533 +2.375133,.8650533 +2.375133,.8650533 +2.375133,.8650533 +2.375133,.8650533 +2.375133,.8650533 +2.008307,.6972918 +2.008307,.6972918 +2.008307,.6972918 +4.159443,1.425381 +4.159443,1.425381 +4.159443,1.425381 +1.984317,.685275 +1.984317,.685275 +1.984317,.685275 +3.693543,1.306586 +3.693543,1.306586 +3.693543,1.306586 +1.993225,.6897537 +1.993225,.6897537 +1.993225,.6897537 +1.993225,.6897537 +1.993225,.6897537 +3.528638,1.260912 +3.528638,1.260912 +3.528638,1.260912 +3.528638,1.260912 +3.528638,1.260912 +2.227046,.800676 +2.227046,.800676 +2.227046,.800676 +2.227046,.800676 +2.227046,.800676 +2.733844,1.005708 +2.733844,1.005708 +2.733844,1.005708 +2.255363,.813311 +2.227046,.800676 +3.388403,1.220359 +2.848405,1.046759 +2.848405,1.046759 +2.848405,1.046759 +2.814746,1.034872 +2.814746,1.034872 +2.814746,1.034872 +2.814746,1.034872 +2.814746,1.034872 +3.169796,1.153667 +3.169796,1.153667 +3.169796,1.153667 +3.169796,1.153667 +3.169796,1.153667 +1.784458,.5791149 +1.784458,.5791149 +1.784458,.5791149 +1.784458,.5791149 +1.784458,.5791149 +2.346762,.8530365 +2.346762,.8530365 +2.346762,.8530365 +2.346762,.8530365 +2.346762,.8530365 +3.177549,1.15611 +3.177549,1.15611 +3.177549,1.15611 +3.177549,1.15611 +3.177549,1.15611 +2.973309,1.089676 +2.973309,1.089676 +2.973309,1.089676 +2.973309,1.089676 +2.973309,1.089676 +2.223652,.7991507 +2.223652,.7991507 +2.223652,.7991507 +3.074755,1.123225 +3.074755,1.123225 +3.074755,1.123225 +2.810456,1.033347 +2.810456,1.033347 +2.810456,1.033347 +4.000175,1.386338 +4.000175,1.386338 +4.000175,1.386338 +1.304216,.2656021 +3.877946,1.355306 +3.877946,1.355306 +3.877946,1.355306 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +2.237689,.8054437 +2.237689,.8054437 +2.237689,.8054437 +2.237689,.8054437 +2.237689,.8054437 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +2.009548,.69791 +2.009548,.69791 +2.009548,.69791 +2.009548,.69791 +2.009548,.69791 +2.255363,.813311 +2.255363,.813311 +2.255363,.813311 +2.255363,.813311 +2.255363,.813311 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +3.758514,1.324024 +3.758514,1.324024 +3.758514,1.324024 +3.178032,1.156262 +3.178032,1.156262 +3.178032,1.156262 +3.13813,1.143627 +3.13813,1.143627 +3.13813,1.143627 +2.786627,1.024832 +2.786627,1.024832 +2.786627,1.024832 +2.517977,.9234558 +2.517977,.9234558 +2.517977,.9234558 +2.007054,.6966678 +2.007054,.6966678 +2.007054,.6966678 +2.007054,.6966678 +2.007054,.6966678 +2.850536,1.047507 +2.850536,1.047507 +2.850536,1.047507 +2.009548,.69791 +2.009548,.69791 +2.009548,.69791 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +2.827381,1.039351 +2.519222,.9239499 +1.626088,.486177 +1.626088,.486177 +1.626088,.486177 +2.430592,.8881347 +2.430592,.8881347 +2.430592,.8881347 +3.638354,1.291531 +3.638354,1.291531 +3.638354,1.291531 +1.626088,.486177 +1.626088,.486177 +1.626088,.486177 +3.597861,1.28034 +3.597861,1.28034 +3.597861,1.28034 +2.306599,.8357741 +2.306599,.8357741 +2.306599,.8357741 +2.042418,.7141342 +2.042418,.7141342 +2.042418,.7141342 +2.338233,.8493955 +2.338233,.8493955 +2.338233,.8493955 +1.648389,.4997983 +1.648389,.4997983 +1.648389,.4997983 +2.922384,1.0724 +2.922384,1.0724 +2.922384,1.0724 +3.359615,1.211826 +3.359615,1.211826 +3.359615,1.211826 +2.955862,1.08379 +2.955862,1.08379 +2.955862,1.08379 +3.230787,1.172726 +3.230787,1.172726 +3.971598,1.379169 +3.971598,1.379169 +3.971598,1.379169 +3.71632,1.312734 +3.71632,1.312734 +3.71632,1.312734 +2.790378,1.026177 +2.790378,1.026177 +2.790378,1.026177 +4.564652,1.518342 +4.564652,1.518342 +4.564652,1.518342 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +1.979137,.6826608 +1.979137,.6826608 +1.979137,.6826608 +2.279926,.8241431 +2.279926,.8241431 +2.279926,.8241431 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.014463,.7003528 +3.725635,1.315237 +3.725635,1.315237 +3.725635,1.315237 +3.308325,1.196442 +3.308325,1.196442 +3.308325,1.196442 +2.051676,.718657 +2.051676,.718657 +2.051676,.718657 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +3.574538,1.273836 +3.574538,1.273836 +3.574538,1.273836 +3.574538,1.273836 +3.574538,1.273836 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.020103,.7031484 +2.020103,.7031484 +2.020103,.7031484 +1.589664,.4635229 +1.589664,.4635229 +1.589664,.4635229 +1.589664,.4635229 +1.589664,.4635229 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +2.792689,1.027005 +2.792689,1.027005 +2.792689,1.027005 +1.822502,.6002105 +1.822502,.6002105 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +3.702577,1.309029 +3.702577,1.309029 +3.702577,1.309029 +2.687484,.9886054 +2.687484,.9886054 +2.687484,.9886054 +3.340976,1.206263 +3.340976,1.206263 +3.340976,1.206263 +2.277638,.8231391 +2.277638,.8231391 +2.277638,.8231391 +2.430592,.8881347 +2.430592,.8881347 +2.430592,.8881347 +2.430592,.8881347 +2.430592,.8881347 +2.430592,.8881347 +2.915293,1.06997 +2.915293,1.06997 +2.915293,1.06997 +2.430592,.8881347 +2.430592,.8881347 +2.430592,.8881347 +7.55198,2.02181 +7.55198,2.02181 +7.55198,2.02181 +7.55198,2.02181 +7.55198,2.02181 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +2.996788,1.097541 +2.996788,1.097541 +2.996788,1.097541 +2.283769,.8258272 +2.283769,.8258272 +2.283769,.8258272 +5.631122,1.728309 +5.631122,1.728309 +5.631122,1.728309 +3.714622,1.312277 +3.714622,1.312277 +3.714622,1.312277 +3.714622,1.312277 +3.714622,1.312277 +3.714622,1.312277 +3.714622,1.312277 +3.714622,1.312277 +3.714622,1.312277 +3.525127,1.259916 +3.525127,1.259916 +3.525127,1.259916 +2.821631,1.037315 +2.821631,1.037315 +2.821631,1.037315 +2.973309,1.089676 +2.973309,1.089676 +2.973309,1.089676 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +2.857508,1.04995 +2.857508,1.04995 +2.857508,1.04995 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +2.596606,.9542053 +2.596606,.9542053 +2.429707,.8877706 +2.429707,.8877706 +1.824996,.601578 +1.824996,.601578 +1.824996,.601578 +1.824996,.601578 +1.824996,.601578 +2.0552,.7203732 +2.0552,.7203732 +2.0552,.7203732 +2.0552,.7203732 +2.0552,.7203732 +1.824996,.601578 +1.824996,.601578 +1.824996,.601578 +1.824996,.601578 +1.824996,.601578 +2.322566,.8426725 +2.322566,.8426725 +2.322566,.8426725 +2.322566,.8426725 +2.322566,.8426725 +2.519222,.9239499 +2.519222,.9239499 +2.519222,.9239499 +2.519222,.9239499 +2.519222,.9239499 +2.014463,.7003528 +2.014463,.7003528 +2.014463,.7003528 +2.821631,1.037315 +2.821631,1.037315 +2.821631,1.037315 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.951221,1.374025 +5.841094,1.764918 +5.841094,1.764918 +5.841094,1.764918 +6.469991,1.867175 +6.469991,1.867175 +6.469991,1.867175 +3.650375,1.29483 +3.650375,1.29483 +3.650375,1.29483 +2.523031,.9254608 +2.523031,.9254608 +2.523031,.9254608 +4.696286,1.546772 +4.696286,1.546772 +4.696286,1.546772 +3.547125,1.266137 +3.547125,1.266137 +3.547125,1.266137 +2.369646,.8627405 +2.369646,.8627405 +2.369646,.8627405 +2.003667,.694979 +2.003667,.694979 +2.003667,.694979 +2.369646,.8627405 +2.369646,.8627405 +2.369646,.8627405 +3.217952,1.168745 +3.217952,1.168745 +3.217952,1.168745 +4.793873,1.567339 +4.793873,1.567339 +4.793873,1.567339 +3.379546,1.217741 +3.379546,1.217741 +3.379546,1.217741 +2.440561,.8922279 +2.440561,.8922279 +2.440561,.8922279 +2.538131,.9314282 +2.538131,.9314282 +1.48345,.3943704 +1.48345,.3943704 +1.48345,.3943704 +1.48345,.3943704 +1.48345,.3943704 +5.423826,1.690802 +5.423826,1.690802 +5.423826,1.690802 +5.423826,1.690802 +5.423826,1.690802 +4.238902,1.444304 +4.238902,1.444304 +4.238902,1.444304 +4.238902,1.444304 +4.238902,1.444304 +2.821631,1.037315 +2.821631,1.037315 +2.821631,1.037315 +2.821631,1.037315 +2.821631,1.037315 +4.169617,1.427824 +4.169617,1.427824 +4.169617,1.427824 +4.169617,1.427824 +4.169617,1.427824 +3.774426,1.328248 +2.719099,1.000301 +2.719099,1.000301 +2.719099,1.000301 +2.719099,1.000301 +2.719099,1.000301 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.51995,.9242389 +2.51995,.9242389 +2.51995,.9242389 +2.51995,.9242389 +2.51995,.9242389 +1.482364,.3936382 +1.482364,.3936382 +1.482364,.3936382 +1.482364,.3936382 +1.474043,.3880093 +1.474043,.3880093 +1.474043,.3880093 +2.209594,.7928087 +2.209594,.7928087 +2.209594,.7928087 +2.209594,.7928087 +2.209594,.7928087 +2.209594,.7928087 +2.209594,.7928087 +2.209594,.7928087 +2.209594,.7928087 +2.209594,.7928087 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +2.913646,1.069405 +2.913646,1.069405 +2.913646,1.069405 +3.490916,1.250164 +3.490916,1.250164 +3.490916,1.250164 +3.447086,1.237529 +3.447086,1.237529 +3.447086,1.237529 +3.730712,1.316599 +3.730712,1.316599 +3.730712,1.316599 +1.876808,.6295726 +1.876808,.6295726 +1.876808,.6295726 +1.876808,.6295726 +1.876808,.6295726 +2.082408,.733525 +2.082408,.733525 +2.082408,.733525 +2.082408,.733525 +2.082408,.733525 +1.876808,.6295726 +5.269948,1.66202 +5.269948,1.66202 +5.269948,1.66202 +3.951221,1.374025 +3.951221,1.374025 +3.951221,1.374025 +3.016226,1.104006 +3.016226,1.104006 +3.016226,1.104006 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +1.989171,.6877179 +1.989171,.6877179 +1.989171,.6877179 +4.595384,1.525052 +4.595384,1.525052 +4.595384,1.525052 +3.865924,1.352201 +3.865924,1.352201 +3.865924,1.352201 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +2.357977,.8578042 +2.357977,.8578042 +2.357977,.8578042 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +1.87994,.6312397 +1.87994,.6312397 +1.87994,.6312397 +1.87994,.6312397 +1.87994,.6312397 +1.669367,.5124446 +1.669367,.5124446 +1.669367,.5124446 +1.669367,.5124446 +1.669367,.5124446 +2.666687,.9808369 +2.666687,.9808369 +2.666687,.9808369 +2.666687,.9808369 +2.666687,.9808369 +2.857508,1.04995 +2.857508,1.04995 +2.857508,1.04995 +1.556483,.4424285 +1.850025,.6151993 +1.850025,.6151993 +1.850025,.6151993 +1.850025,.6151993 +1.850025,.6151993 +4.293051,1.456998 +4.293051,1.456998 +4.293051,1.456998 +4.293051,1.456998 +2.973309,1.089676 +2.973309,1.089676 +2.973309,1.089676 +2.973309,1.089676 +2.973309,1.089676 +5.609478,1.724458 +5.609478,1.724458 +5.609478,1.724458 +5.609478,1.724458 +5.609478,1.724458 +4.222634,1.440459 +4.222634,1.440459 +4.222634,1.440459 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +3.217952,1.168745 +3.217952,1.168745 +3.217952,1.168745 +3.177549,1.15611 +3.177549,1.15611 +3.177549,1.15611 +3.177549,1.15611 +3.177549,1.15611 +1.588087,.4625303 +2.643402,.9720669 +2.643402,.9720669 +2.643402,.9720669 +3.221925,1.169979 +3.221925,1.169979 +3.221925,1.169979 +4.25225,1.447448 +4.25225,1.447448 +4.25225,1.447448 +2.429629,.8877384 +2.429629,.8877384 +2.429629,.8877384 +3.177549,1.15611 +3.177549,1.15611 +3.177549,1.15611 +3.177549,1.15611 +3.177549,1.15611 +1.784901,.579363 +2.48831,.9116039 +2.48831,.9116039 +2.48831,.9116039 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +2.328372,.8451692 +2.328372,.8451692 +2.328372,.8451692 +1.989171,.6877179 +1.989171,.6877179 +6.660646,1.896217 +6.660646,1.896217 +6.660646,1.896217 +3.645826,1.293583 +3.645826,1.293583 +3.645826,1.293583 +2.232493,.8031189 +2.232493,.8031189 +2.232493,.8031189 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +1.784458,.5791149 +1.784458,.5791149 +1.784458,.5791149 +2.255363,.813311 +2.255363,.813311 +2.255363,.813311 +2.539379,.9319195 +2.539379,.9319195 +2.539379,.9319195 +2.009173,.6977233 +2.009173,.6977233 +2.009173,.6977233 +1.589671,.4635271 +1.589671,.4635271 +1.589671,.4635271 +2.850004,1.04732 +2.850004,1.04732 +2.850004,1.04732 +2.376158,.8654848 +2.376158,.8654848 +2.376158,.8654848 +1.769089,.5704646 +1.769089,.5704646 +1.769089,.5704646 +1.574809,.4541339 +2.23386,.8037311 +2.931297,1.075445 +2.80101,1.02998 +2.80101,1.02998 +2.80101,1.02998 +1.415767,.3476717 +1.415767,.3476717 +1.415767,.3476717 +3.17771,1.156161 +3.17771,1.156161 +3.17771,1.156161 +2.790228,1.026123 +2.790228,1.026123 +2.790228,1.026123 +1.634885,.4915724 +1.634885,.4915724 +1.634885,.4915724 +3.638354,1.291531 +3.638354,1.291531 +3.638354,1.291531 +1.675162,.5159101 +1.675162,.5159101 +1.675162,.5159101 +2.141106,.7613224 +2.141106,.7613224 +2.141106,.7613224 +4.691268,1.545703 +4.691268,1.545703 +4.691268,1.545703 +5.283021,1.664498 +5.283021,1.664498 +5.283021,1.664498 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.317431,.8404593 +2.317431,.8404593 +2.317431,.8404593 +2.317431,.8404593 +2.317431,.8404593 +2.376601,.8656715 +2.376601,.8656715 +2.376601,.8656715 +2.42922,.8875701 +2.42922,.8875701 +2.42922,.8875701 +2.955246,1.083582 +2.955246,1.083582 +2.955246,1.083582 +2.017624,.7019206 +2.017624,.7019206 +2.017624,.7019206 +3.17771,1.156161 +3.17771,1.156161 +3.17771,1.156161 +3.029271,1.108322 +3.029271,1.108322 +3.029271,1.108322 +2.396401,.8739679 +2.396401,.8739679 +3.845712,1.346959 +3.845712,1.346959 +3.845712,1.346959 +3.011115,1.102311 +3.011115,1.102311 +3.011115,1.102311 +3.185762,1.158692 +3.185762,1.158692 +3.185762,1.158692 +3.704362,1.309511 +3.704362,1.309511 +3.704362,1.309511 +1.900672,.6422076 +1.900672,.6422076 +1.900672,.6422076 +3.693213,1.306497 +3.693213,1.306497 +3.693213,1.306497 +3.693213,1.306497 +3.693213,1.306497 +1.992335,.6893072 +1.992335,.6893072 +3.17771,1.156161 +3.17771,1.156161 +3.17771,1.156161 +2.42853,.8872861 +2.42853,.8872861 +2.42853,.8872861 +2.42853,.8872861 +2.42853,.8872861 +3.753681,1.322737 +3.753681,1.322737 +3.753681,1.322737 +2.507612,.9193309 +2.507612,.9193309 +2.507612,.9193309 +2.507612,.9193309 +2.507612,.9193309 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +4.172171,1.428436 +2.486764,.9109823 +2.486764,.9109823 +2.486764,.9109823 +1.867173,.6244256 +1.867173,.6244256 +1.867173,.6244256 +2.430592,.8881347 +2.430592,.8881347 +2.430592,.8881347 +2.430592,.8881347 +2.430592,.8881347 +1.824996,.601578 +1.824996,.601578 +1.824996,.601578 +1.824996,.601578 +1.824996,.601578 +2.0552,.7203732 +2.0552,.7203732 +2.0552,.7203732 +2.0552,.7203732 +2.0552,.7203732 +2.430592,.8881347 +2.430592,.8881347 +2.430592,.8881347 +2.430592,.8881347 +2.430592,.8881347 +3.029271,1.108322 +3.029271,1.108322 +3.029271,1.108322 +3.029271,1.108322 +2.376601,.8656715 +4.212332,1.438016 +2.73124,1.004756 +2.73124,1.004756 +2.73124,1.004756 +2.73124,1.004756 +2.73124,1.004756 +3.540213,1.264187 +3.540213,1.264187 +3.540213,1.264187 +1.993225,.6897537 +1.993225,.6897537 +1.993225,.6897537 +2.444731,.8939353 +2.444731,.8939353 +2.444731,.8939353 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +2.014463,.7003528 +2.014463,.7003528 +2.014463,.7003528 +1.829179,.6038671 +1.829179,.6038671 +1.829179,.6038671 +1.829179,.6038671 +1.829179,.6038671 +3.834248,1.343973 +3.834248,1.343973 +3.834248,1.343973 +3.834248,1.343973 +3.834248,1.343973 +1.626088,.486177 +1.626088,.486177 +1.626088,.486177 +1.626088,.486177 +1.626088,.486177 +2.430592,.8881347 +2.430592,.8881347 +2.430592,.8881347 +2.430592,.8881347 +2.430592,.8881347 +2.915293,1.06997 +2.915293,1.06997 +2.915293,1.06997 +2.915293,1.06997 +2.915293,1.06997 +3.029271,1.108322 +3.029271,1.108322 +3.029271,1.108322 +1.863032,.6222055 +1.863032,.6222055 +1.863032,.6222055 +3.531653,1.261766 +3.531653,1.261766 +3.531653,1.261766 +2.609528,.9591692 +2.609528,.9591692 +2.609528,.9591692 +2.376601,.8656715 +1.824996,.601578 +1.824996,.601578 +1.824996,.601578 +1.673001,.5146189 +1.673001,.5146189 +1.673001,.5146189 +1.978582,.6823804 +1.978582,.6823804 +1.978582,.6823804 +1.502527,.407148 +1.502527,.407148 +1.502527,.407148 +2.595472,.9537683 +2.595472,.9537683 +2.595472,.9537683 +2.857508,1.04995 +2.857508,1.04995 +2.857508,1.04995 +2.857508,1.04995 +2.857508,1.04995 +3.405171,1.225295 +3.405171,1.225295 +3.405171,1.225295 +2.443467,.8934179 +2.443467,.8934179 +2.443467,.8934179 +2.443467,.8934179 +2.443467,.8934179 +2.372195,.8638156 +2.372195,.8638156 +3.029271,1.108322 +3.029271,1.108322 +2.371509,.8635266 +2.371509,.8635266 +2.388567,.8706935 +2.388567,.8706935 +2.445247,.894146 +2.445247,.894146 +2.455276,.8982393 +2.455276,.8982393 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +3.029271,1.108322 +3.029271,1.108322 +3.029271,1.108322 +3.029271,1.108322 +3.029271,1.108322 +3.029271,1.108322 +2.390931,.8716829 +2.390931,.8716829 +2.390931,.8716829 +2.390931,.8716829 +3.726697,1.315522 +3.726697,1.315522 +3.656306,1.296453 +3.656306,1.296453 +3.656306,1.296453 +3.656306,1.296453 +2.445067,.8940726 +2.445067,.8940726 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +3.029271,1.108322 +3.029271,1.108322 +1.912132,.648219 +1.912132,.648219 +2.374794,.8649107 +2.374794,.8649107 +2.390931,.8716829 +2.390931,.8716829 +2.390583,.8715371 +2.390583,.8715371 +3.677727,1.302295 +3.677727,1.302295 +2.445247,.894146 +2.445247,.894146 +2.445187,.8941217 +2.445187,.8941217 +2.445187,.8941217 +3.029271,1.108322 +3.029271,1.108322 +2.361975,.8594981 +2.361975,.8594981 +2.361975,.8594981 +3.738727,1.318745 +3.738727,1.318745 +1.986166,.6862063 +1.986166,.6862063 +1.986166,.6862063 +2.260224,.815464 +2.260224,.815464 +2.390651,.8715658 +2.390651,.8715658 +2.390651,.8715658 +2.390651,.8715658 +2.338493,.8495067 +2.331404,.8464707 +2.331404,.8464707 +2.331404,.8464707 +3.029271,1.108322 +3.029271,1.108322 +2.371509,.8635266 +2.371509,.8635266 +2.444261,.8937429 +2.372195,.8638156 +2.445247,.894146 +2.390931,.8716829 +2.141851,.7616706 +3.029271,1.108322 +2.372195,.8638156 +1.990512,.6883918 +2.390931,.8716829 +2.390931,.8716829 +2.390931,.8716829 +3.029271,1.108322 +3.715481,1.312508 +3.715481,1.312508 +3.715481,1.312508 +2.371509,.8635266 +2.371509,.8635266 +2.371509,.8635266 +3.659489,1.297324 +3.659489,1.297324 +3.659489,1.297324 +3.029271,1.108322 +3.029271,1.108322 +3.029271,1.108322 +2.361975,.8594981 +2.361975,.8594981 +2.390625,.871555 +2.390625,.871555 +3.029271,1.108322 +3.029271,1.108322 +2.390931,.8716829 +2.390931,.8716829 +2.371509,.8635266 +2.371509,.8635266 +2.372195,.8638156 +2.390475,.871492 +3.029271,1.108322 +3.659489,1.297324 +2.02898,.7075331 +2.02898,.7075331 +2.02898,.7075331 +1.824622,.6013729 +1.824622,.6013729 +1.824622,.6013729 +1.625754,.4859719 +1.625754,.4859719 +1.625754,.4859719 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +3.776676,1.328844 +3.776676,1.328844 +3.776676,1.328844 +1.601749,.4710964 +1.601749,.4710964 +1.601749,.4710964 +2.272075,.8206936 +2.272075,.8206936 +2.272075,.8206936 +3.611285,1.284064 +3.611285,1.284064 +3.611285,1.284064 +4.270231,1.451668 +4.270231,1.451668 +4.270231,1.451668 +3.254225,1.179954 +3.254225,1.179954 +3.254225,1.179954 +4.73877,1.555778 +4.73877,1.555778 +4.73877,1.555778 +1.587427,.4621147 +1.587427,.4621147 +1.587427,.4621147 +2.226477,.8004205 +2.226477,.8004205 +2.226477,.8004205 +2.25176,.8117119 +2.25176,.8117119 +2.25176,.8117119 +2.031848,.7089459 +2.031848,.7089459 +2.031848,.7089459 +2.226477,.8004205 +2.226477,.8004205 +2.226477,.8004205 +1.781607,.5775157 +1.781607,.5775157 +1.781607,.5775157 +2.226477,.8004205 +2.226477,.8004205 +2.226477,.8004205 +2.02898,.7075331 +2.02898,.7075331 +2.02898,.7075331 +2.02898,.7075331 +2.02898,.7075331 +2.02898,.7075331 +2.02898,.7075331 +2.02898,.7075331 +2.02898,.7075331 +2.02898,.7075331 +4.096453,1.410122 +4.096453,1.410122 +4.096453,1.410122 +4.096453,1.410122 +4.096453,1.410122 +3.446328,1.237309 +3.446328,1.237309 +3.446328,1.237309 +3.446328,1.237309 +3.446328,1.237309 +3.446328,1.237309 +3.446328,1.237309 +3.446328,1.237309 +3.446328,1.237309 +3.446328,1.237309 +5.150583,1.63911 +5.150583,1.63911 +5.150583,1.63911 +5.150583,1.63911 +5.150583,1.63911 +2.757721,1.014405 +2.757721,1.014405 +2.757721,1.014405 +2.757721,1.014405 +2.757721,1.014405 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +4.679659,1.543225 +4.679659,1.543225 +4.679659,1.543225 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +1.590184,.4638499 +1.590184,.4638499 +1.590184,.4638499 +3.603261,1.281839 +3.603261,1.281839 +3.603261,1.281839 +2.230344,.8021556 +2.230344,.8021556 +2.230344,.8021556 +1.584067,.4599956 +1.584067,.4599956 +1.584067,.4599956 +1.584067,.4599956 +1.584067,.4599956 +1.784458,.5791149 +1.784458,.5791149 +1.784458,.5791149 +1.784458,.5791149 +1.784458,.5791149 +2.255363,.813311 +2.255363,.813311 +2.255363,.813311 +2.255363,.813311 +2.255363,.813311 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +2.825424,1.038659 +2.825424,1.038659 +4.01608,1.390306 +4.01608,1.390306 +4.01608,1.390306 +3.707555,1.310373 +3.707555,1.310373 +3.707555,1.310373 +2.857508,1.04995 +2.857508,1.04995 +2.857508,1.04995 +3.597124,1.280135 +3.597124,1.280135 +3.597124,1.280135 +2.02898,.7075331 +2.02898,.7075331 +2.02898,.7075331 +2.830222,1.040355 +2.830222,1.040355 +2.830222,1.040355 +2.830222,1.040355 +2.830222,1.040355 +3.147207,1.146515 +3.147207,1.146515 +3.147207,1.146515 +3.147207,1.146515 +3.147207,1.146515 +2.490091,.9123191 +2.490091,.9123191 +2.490091,.9123191 +2.490091,.9123191 +2.490091,.9123191 +3.147207,1.146515 +3.147207,1.146515 +3.147207,1.146515 +3.147207,1.146515 +3.147207,1.146515 +1.565068,.4479293 +1.565068,.4479293 +1.565068,.4479293 +2.486362,.9108208 +2.486362,.9108208 +2.486362,.9108208 +1.589968,.4637138 +1.589968,.4637138 +1.589968,.4637138 +2.539853,.9321062 +2.539853,.9321062 +2.539853,.9321062 +2.255363,.813311 +2.255363,.813311 +2.255363,.813311 +5.769479,1.752582 +5.769479,1.752582 +5.769479,1.752582 +5.769479,1.752582 +5.769479,1.752582 +4.686153,1.544612 +4.686153,1.544612 +4.686153,1.544612 +4.686153,1.544612 +4.686153,1.544612 +3.566392,1.271554 +3.566392,1.271554 +3.566392,1.271554 +3.566392,1.271554 +3.566392,1.271554 +3.571187,1.272898 +3.571187,1.272898 +3.571187,1.272898 +3.571187,1.272898 +3.571187,1.272898 +3.571187,1.272898 +3.571187,1.272898 +3.571187,1.272898 +3.571187,1.272898 +3.571187,1.272898 +3.571187,1.272898 +3.571187,1.272898 +3.571187,1.272898 +3.571187,1.272898 +3.571187,1.272898 +3.571187,1.272898 +3.571187,1.272898 +3.571187,1.272898 +3.571187,1.272898 +3.571187,1.272898 +2.203349,.7899783 +2.203349,.7899783 +2.203349,.7899783 +1.7631,.5670736 +1.7631,.5670736 +1.7631,.5670736 +1.570938,.4516726 +1.570938,.4516726 +1.570938,.4516726 +3.500257,1.252836 +3.500257,1.252836 +3.500257,1.252836 +3.460956,1.241545 +3.460956,1.241545 +3.460956,1.241545 +3.118759,1.137435 +3.118759,1.137435 +3.118759,1.137435 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +3.144956,1.1458 +3.144956,1.1458 +3.144956,1.1458 +1.968767,.6774077 +1.968767,.6774077 +1.968767,.6774077 +2.054779,.7201681 +2.054779,.7201681 +2.054779,.7201681 +2.054779,.7201681 +2.054779,.7201681 +2.054779,.7201681 +2.306126,.8355691 +2.306126,.8355691 +2.306126,.8355691 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +1.781607,.5775157 +1.781607,.5775157 +1.781607,.5775157 +4.546239,1.5143 +4.546239,1.5143 +4.546239,1.5143 +2.504411,.9180537 +2.504411,.9180537 +2.504411,.9180537 +2.507964,.9194711 +2.507964,.9194711 +2.507964,.9194711 +2.202041,.7893845 +2.202041,.7893845 +2.202041,.7893845 +2.202041,.7893845 +2.202041,.7893845 +2.202041,.7893845 +2.507964,.9194711 +2.507964,.9194711 +2.507964,.9194711 +3.01954,1.105105 +3.01954,1.105105 +3.01954,1.105105 +3.388901,1.220506 +3.388901,1.220506 +3.388901,1.220506 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +5.696794,1.739904 +5.696794,1.739904 +5.696794,1.739904 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.687484,.9886054 +2.687484,.9886054 +2.687484,.9886054 +2.797726,1.028807 +2.797726,1.028807 +2.797726,1.028807 +3.685391,1.304377 +3.685391,1.304377 +4.192801,1.433369 +4.192801,1.433369 +4.192801,1.433369 +3.355042,1.210464 +3.355042,1.210464 +3.355042,1.210464 +2.589294,.9513853 +2.589294,.9513853 +2.589294,.9513853 +3.639119,1.291742 +3.639119,1.291742 +3.639119,1.291742 +3.826285,1.341894 +3.826285,1.341894 +3.826285,1.341894 +3.235845,1.17429 +3.235845,1.17429 +3.235845,1.17429 +2.319767,.841467 +2.319767,.841467 +2.319767,.841467 +1.607612,.4747497 +1.607612,.4747497 +1.607612,.4747497 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +2.280391,.8243469 +2.280391,.8243469 +2.280391,.8243469 +2.681637,.9864272 +2.681637,.9864272 +2.681637,.9864272 +2.118587,.7507496 +2.118587,.7507496 +2.118587,.7507496 +2.63507,.9689099 +2.63507,.9689099 +2.63507,.9689099 +2.63507,.9689099 +2.63507,.9689099 +2.63507,.9689099 +2.63507,.9689099 +2.63507,.9689099 +2.63507,.9689099 +2.63507,.9689099 +3.334476,1.204315 +3.334476,1.204315 +3.334476,1.204315 +3.334476,1.204315 +3.334476,1.204315 +2.668217,.9814106 +2.668217,.9814106 +2.668217,.9814106 +2.668217,.9814106 +2.668217,.9814106 +2.668217,.9814106 +2.668217,.9814106 +2.668217,.9814106 +2.668217,.9814106 +2.668217,.9814106 +1.80426,.5901508 +1.80426,.5901508 +1.80426,.5901508 +2.280391,.8243469 +2.280391,.8243469 +2.280391,.8243469 +2.031848,.7089459 +2.031848,.7089459 +2.031848,.7089459 +2.568038,.9431421 +2.568038,.9431421 +2.568038,.9431421 +2.028395,.7072446 +2.028395,.7072446 +2.028395,.7072446 +3.636559,1.291038 +3.636559,1.291038 +3.636559,1.291038 +3.485508,1.248614 +3.485508,1.248614 +3.485508,1.248614 +7.296367,1.987377 +7.296367,1.987377 +7.296367,1.987377 +3.485508,1.248614 +3.485508,1.248614 +3.485508,1.248614 +6.501127,1.871976 +6.501127,1.871976 +6.501127,1.871976 +5.269948,1.66202 +5.269948,1.66202 +5.269948,1.66202 +5.269948,1.66202 +5.269948,1.66202 +2.825424,1.038659 +2.825424,1.038659 +3.957927,1.37572 +3.661005,1.297738 +3.661005,1.297738 +3.016226,1.104006 +3.016226,1.104006 +3.016226,1.104006 +3.016226,1.104006 +3.016226,1.104006 +3.664599,1.298719 +3.664599,1.298719 +3.664599,1.298719 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.792689,1.027005 +2.792689,1.027005 +2.792689,1.027005 +2.054779,.7201681 +2.054779,.7201681 +1.824622,.6013729 +1.824622,.6013729 +3.49932,1.252569 +3.49932,1.252569 +3.49932,1.252569 +3.49932,1.252569 +3.49932,1.252569 +3.49932,1.252569 +3.49932,1.252569 +3.49932,1.252569 +3.49932,1.252569 +3.49932,1.252569 +2.800125,1.029664 +2.800125,1.029664 +2.800125,1.029664 +2.800125,1.029664 +2.800125,1.029664 +3.494622,1.251225 +3.494622,1.251225 +3.494622,1.251225 +3.494622,1.251225 +3.494622,1.251225 +3.15333,1.148459 +3.15333,1.148459 +3.15333,1.148459 +3.15333,1.148459 +3.15333,1.148459 +2.800125,1.029664 +2.800125,1.029664 +2.800125,1.029664 +2.800125,1.029664 +2.800125,1.029664 +2.880671,1.058023 +2.880671,1.058023 +2.880671,1.058023 +2.844502,1.045388 +2.844502,1.045388 +2.844502,1.045388 +3.554779,1.268293 +3.554779,1.268293 +3.554779,1.268293 +3.554779,1.268293 +3.554779,1.268293 +3.554779,1.268293 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +3.306707,1.195953 +3.306707,1.195953 +3.306707,1.195953 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +4.179322,1.430149 +4.179322,1.430149 +4.179322,1.430149 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +2.254225,.8128064 +2.254225,.8128064 +2.254225,.8128064 +2.005838,.6960618 +2.005838,.6960618 +2.005838,.6960618 +4.494656,1.502889 +4.494656,1.502889 +4.494656,1.502889 +2.353905,.8560759 +2.353905,.8560759 +2.353905,.8560759 +1.762053,.5664798 +1.762053,.5664798 +1.762053,.5664798 +2.353905,.8560759 +2.353905,.8560759 +2.353905,.8560759 +1.784458,.5791149 +1.784458,.5791149 +1.784458,.5791149 +2.353905,.8560759 +2.353905,.8560759 +2.353905,.8560759 +3.208933,1.165938 +3.208933,1.165938 +3.208933,1.165938 +1.984317,.685275 +1.984317,.685275 +1.984317,.685275 +2.009548,.69791 +2.009548,.69791 +2.009548,.69791 +2.228834,.8014784 +2.228834,.8014784 +2.228834,.8014784 +2.228834,.8014784 +2.228834,.8014784 +2.228834,.8014784 +2.008461,.6973689 +2.008461,.6973689 +2.008461,.6973689 +1.769089,.5704646 +1.769089,.5704646 +1.769089,.5704646 +2.237689,.8054437 +2.237689,.8054437 +2.237689,.8054437 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +1.748245,.5586125 +1.748245,.5586125 +1.748245,.5586125 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +3.144956,1.1458 +3.144956,1.1458 +3.144956,1.1458 +1.625754,.4859719 +1.625754,.4859719 +1.625754,.4859719 +2.277171,.8229341 +2.277171,.8229341 +2.277171,.8229341 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.597019,.9543642 +2.597019,.9543642 +2.597019,.9543642 +2.914695,1.069765 +2.914695,1.069765 +2.914695,1.069765 +2.219676,.7973614 +2.219676,.7973614 +2.219676,.7973614 +2.837289,1.042849 +2.837289,1.042849 +2.837289,1.042849 +2.219676,.7973614 +2.219676,.7973614 +2.219676,.7973614 +1.776165,.5744567 +1.776165,.5744567 +1.776165,.5744567 +7.036568,1.95112 +7.036568,1.95112 +7.036568,1.95112 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +3.611583,1.284146 +3.611583,1.284146 +3.611583,1.284146 +3.086035,1.126887 +3.086035,1.126887 +3.086035,1.126887 +2.740367,1.008092 +2.740367,1.008092 +2.740367,1.008092 +3.257446,1.180943 +3.257446,1.180943 +3.257446,1.180943 +4.867811,1.582644 +4.867811,1.582644 +4.867811,1.582644 +12.69872,2.541501 +12.69872,2.541501 +12.69872,2.541501 +2.380485,.8673041 +2.380485,.8673041 +2.380485,.8673041 +2.380485,.8673041 +2.380485,.8673041 +2.201901,.7893212 +2.201901,.7893212 +2.201901,.7893212 +2.201901,.7893212 +2.201901,.7893212 +1.784345,.5790516 +1.784345,.5790516 +1.784345,.5790516 +1.784345,.5790516 +1.784345,.5790516 +1.8063,.5912808 +1.8063,.5912808 +1.8063,.5912808 +7.120001,1.962908 +7.120001,1.962908 +7.120001,1.962908 +2.229583,.8018146 +2.229583,.8018146 +2.229583,.8018146 +2.229583,.8018146 +2.229583,.8018146 +2.229583,.8018146 +2.254901,.813106 +2.254901,.813106 +2.254901,.813106 +2.229583,.8018146 +2.229583,.8018146 +2.229583,.8018146 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +1.824622,.6013729 +1.824622,.6013729 +1.824622,.6013729 +1.824622,.6013729 +1.824622,.6013729 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.054779,.7201681 +2.054779,.7201681 +2.054779,.7201681 +2.054779,.7201681 +2.054779,.7201681 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +2.237689,.8054437 +2.237689,.8054437 +2.237689,.8054437 +2.821631,1.037315 +2.821631,1.037315 +2.821631,1.037315 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.98236,1.092715 +2.98236,1.092715 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +3.702577,1.309029 +3.702577,1.309029 +3.702577,1.309029 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.78995,1.026024 +2.825424,1.038659 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +6.415383,1.858699 +6.415383,1.858699 +6.415383,1.858699 +2.615532,.9614677 +2.615532,.9614677 +2.615532,.9614677 +2.237043,.8051547 +2.237043,.8051547 +2.237043,.8051547 +3.516589,1.257492 +3.516589,1.257492 +3.516589,1.257492 +2.782349,1.023295 +2.782349,1.023295 +2.782349,1.023295 +5.068871,1.623118 +5.068871,1.623118 +5.068871,1.623118 +13.26044,2.584785 +13.26044,2.584785 +13.26044,2.584785 +1.609351,.475831 +1.609351,.475831 +1.609351,.475831 +1.609351,.475831 +1.609351,.475831 +1.806212,.5912321 +1.806212,.5912321 +1.806212,.5912321 +1.806212,.5912321 +1.806212,.5912321 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +3.076589,1.123822 +3.076589,1.123822 +3.076589,1.123822 +3.075268,1.123392 +3.075268,1.123392 +3.075268,1.123392 +2.250636,.8112129 +2.250636,.8112129 +2.250636,.8112129 +2.279253,.8238479 +2.279253,.8238479 +2.279253,.8238479 +3.142495,1.145017 +3.142495,1.145017 +3.142495,1.145017 +1.58915,.4631992 +1.58915,.4631992 +1.58915,.4631992 +1.58915,.4631992 +1.58915,.4631992 +2.602505,.9564744 +2.602505,.9564744 +2.602505,.9564744 +2.602505,.9564744 +2.602505,.9564744 +3.574538,1.273836 +3.574538,1.273836 +3.574538,1.273836 +2.828198,1.03964 +2.828198,1.03964 +2.828198,1.03964 +2.237689,.8054437 +2.237689,.8054437 +2.237689,.8054437 +2.209594,.7928087 +2.209594,.7928087 +2.209594,.7928087 +1.99224,.6892597 +1.99224,.6892597 +1.99224,.6892597 +1.605342,.4733369 +1.605342,.4733369 +1.605342,.4733369 +1.605342,.4733369 +1.605342,.4733369 +1.824622,.6013729 +1.824622,.6013729 +1.824622,.6013729 +1.824622,.6013729 +1.824622,.6013729 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.02898,.7075331 +2.02898,.7075331 +2.02898,.7075331 +2.02898,.7075331 +2.02898,.7075331 +2.8781,1.05713 +2.8781,1.05713 +2.8781,1.05713 +2.8781,1.05713 +2.8781,1.05713 +2.054779,.7201681 +2.054779,.7201681 +2.054779,.7201681 +2.054779,.7201681 +2.054779,.7201681 +2.85413,1.048767 +2.85413,1.048767 +2.85413,1.048767 +2.566664,.942607 +2.566664,.942607 +2.566664,.942607 +3.203257,1.164168 +3.203257,1.164168 +3.203257,1.164168 +2.184785,.7815173 +2.184785,.7815173 +2.184785,.7815173 +1.557702,.4432115 +1.557702,.4432115 +1.557702,.4432115 +2.209594,.7928087 +2.209594,.7928087 +2.209594,.7928087 +2.294068,.8303265 +2.294068,.8303265 +2.294068,.8303265 +3.476926,1.246148 +3.476926,1.246148 +3.476926,1.246148 +3.4816,1.247492 +3.4816,1.247492 +3.4816,1.247492 +3.4816,1.247492 +3.4816,1.247492 +3.4816,1.247492 +3.137362,1.143382 +3.137362,1.143382 +3.137362,1.143382 +5.215892,1.65171 +5.215892,1.65171 +5.215892,1.65171 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +1.557702,.4432115 +1.557702,.4432115 +1.557702,.4432115 +4.668287,1.540792 +4.668287,1.540792 +4.668287,1.540792 +4.668287,1.540792 +4.668287,1.540792 +2.044034,.7149255 +2.044034,.7149255 +2.044034,.7149255 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.8669,1.053231 +2.8669,1.053231 +2.8669,1.053231 +2.751625,1.012192 +2.751625,1.012192 +2.751625,1.012192 +4.512316,1.506811 +4.512316,1.506811 +4.512316,1.506811 +2.451722,.8967908 +2.451722,.8967908 +2.451722,.8967908 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +5.269948,1.66202 +5.269948,1.66202 +5.269948,1.66202 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +5.672121,1.735563 +5.672121,1.735563 +5.672121,1.735563 +3.086035,1.126887 +3.086035,1.126887 +3.086035,1.126887 +2.519222,.9239499 +2.519222,.9239499 +2.519222,.9239499 +1.74774,.5583236 +1.74774,.5583236 +1.74774,.5583236 +2.67812,.9851151 +2.67812,.9851151 +2.67812,.9851151 +2.914574,1.069724 +2.914574,1.069724 +2.914574,1.069724 +2.277076,.8228924 +2.277076,.8228924 +2.277076,.8228924 +2.280138,.824236 +2.280138,.824236 +2.280138,.824236 +2.028895,.7074913 +2.028895,.7074913 +2.028895,.7074913 +2.277714,.8231722 +2.277714,.8231722 +2.277714,.8231722 +2.277714,.8231722 +2.277714,.8231722 +2.277714,.8231722 +3.772503,1.327739 +3.772503,1.327739 +3.772503,1.327739 +5.520263,1.708426 +5.520263,1.708426 +5.520263,1.708426 +3.98547,1.382655 +3.98547,1.382655 +3.98547,1.382655 +3.274295,1.186103 +3.274295,1.186103 +3.274295,1.186103 +2.590644,.9519065 +2.590644,.9519065 +2.590644,.9519065 +2.590644,.9519065 +2.590644,.9519065 +2.590644,.9519065 +3.633558,1.290212 +3.633558,1.290212 +3.633558,1.290212 +4.644575,1.5357 +4.644575,1.5357 +4.644575,1.5357 +4.767996,1.561926 +4.767996,1.561926 +4.767996,1.561926 +3.633558,1.290212 +3.633558,1.290212 +3.633558,1.290212 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +5.002394,1.609917 +5.002394,1.609917 +5.002394,1.609917 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.98236,1.092715 +2.98236,1.092715 +2.98236,1.092715 +2.547275,.9350241 +2.547275,.9350241 +2.547275,.9350241 +2.264995,.8175726 +2.264995,.8175726 +2.264995,.8175726 +1.594614,.4666318 +1.594614,.4666318 +1.594614,.4666318 +2.328352,.8451606 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +3.728783,1.316082 +3.728783,1.316082 +3.728783,1.316082 +2.850536,1.047507 +2.850536,1.047507 +2.850536,1.047507 +2.009548,.69791 +2.009548,.69791 +2.009548,.69791 +2.229182,.8016346 +2.229182,.8016346 +2.229182,.8016346 +2.201193,.7889995 +2.201193,.7889995 +2.201193,.7889995 +4.004739,1.387478 +4.004739,1.387478 +4.004739,1.387478 +2.226189,.8002909 +2.226189,.8002909 +2.226189,.8002909 +2.201193,.7889995 +2.201193,.7889995 +2.201193,.7889995 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +2.031848,.7089459 +2.031848,.7089459 +2.031848,.7089459 +2.280391,.8243469 +2.280391,.8243469 +2.280391,.8243469 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +2.054358,.7199632 +2.054358,.7199632 +2.054358,.7199632 +2.948763,1.081386 +2.948763,1.081386 +2.948763,1.081386 +2.948763,1.081386 +2.948763,1.081386 +2.738098,1.007264 +2.738098,1.007264 +2.738098,1.007264 +2.738098,1.007264 +2.738098,1.007264 +2.948763,1.081386 +2.948763,1.081386 +2.948763,1.081386 +2.948763,1.081386 +2.948763,1.081386 +2.948763,1.081386 +2.948763,1.081386 +2.948763,1.081386 +2.948763,1.081386 +2.948763,1.081386 +3.914607,1.364715 +3.914607,1.364715 +3.914607,1.364715 +3.914607,1.364715 +3.914607,1.364715 +3.097263,1.130519 +3.097263,1.130519 +3.097263,1.130519 +3.097263,1.130519 +3.097263,1.130519 +2.450575,.8963225 +2.450575,.8963225 +2.450575,.8963225 +2.450575,.8963225 +2.450575,.8963225 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +5.914585,1.777421 +5.914585,1.777421 +5.914585,1.777421 +5.914585,1.777421 +5.914585,1.777421 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +3.017513,1.104433 +3.017513,1.104433 +3.017513,1.104433 +5.633392,1.728712 +5.633392,1.728712 +5.633392,1.728712 +1.801713,.5887379 +1.801713,.5887379 +1.801713,.5887379 +1.801713,.5887379 +1.801713,.5887379 +1.801713,.5887379 +2.828198,1.03964 +2.828198,1.03964 +2.828198,1.03964 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +1.823805,.600925 +1.605342,.4733369 +1.605342,.4733369 +1.605342,.4733369 +3.001914,1.09925 +3.001914,1.09925 +3.001914,1.09925 +3.001914,1.09925 +3.001914,1.09925 +1.757982,.5641664 +1.757982,.5641664 +1.757982,.5641664 +1.757982,.5641664 +1.757982,.5641664 +1.780335,.5768014 +1.780335,.5768014 +1.780335,.5768014 +1.780335,.5768014 +1.780335,.5768014 +2.774063,1.020313 +2.774063,1.020313 +2.774063,1.020313 +2.774063,1.020313 +2.774063,1.020313 +3.123981,1.139108 +3.123981,1.139108 +3.123981,1.139108 +3.123981,1.139108 +3.123981,1.139108 +1.820879,.5993191 +1.820879,.5993191 +1.820879,.5993191 +1.820879,.5993191 +1.820879,.5993191 +1.820879,.5993191 +1.820879,.5993191 +1.820879,.5993191 +1.820879,.5993191 +1.640842,.4952095 +1.640842,.4952095 +1.640842,.4952095 +1.820879,.5993191 +1.820879,.5993191 +1.820879,.5993191 +1.537981,.4304707 +1.537981,.4304707 +1.537981,.4304707 +3.526896,1.260418 +3.526896,1.260418 +3.526896,1.260418 +2.519222,.9239499 +2.519222,.9239499 +2.519222,.9239499 +2.519222,.9239499 +2.519222,.9239499 +3.184025,1.158146 +3.184025,1.158146 +3.184025,1.158146 +3.184025,1.158146 +3.184025,1.158146 +2.814169,1.034667 +2.814169,1.034667 +2.814169,1.034667 +1.271567,.2402499 +1.271567,.2402499 +1.271567,.2402499 +1.271567,.2402499 +1.271567,.2402499 +1.271567,.2402499 +1.783461,.5785557 +1.783461,.5785557 +1.783461,.5785557 +3.182452,1.157652 +3.182452,1.157652 +3.182452,1.157652 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +1.589968,.4637138 +1.589968,.4637138 +1.589968,.4637138 +1.589968,.4637138 +1.589968,.4637138 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +2.009548,.69791 +2.009548,.69791 +2.009548,.69791 +2.009548,.69791 +2.009548,.69791 +2.507964,.9194711 +2.507964,.9194711 +2.507964,.9194711 +2.507964,.9194711 +2.507964,.9194711 +1.984317,.685275 +1.984317,.685275 +1.984317,.685275 +1.984317,.685275 +1.984317,.685275 +1.74774,.5583236 +1.74774,.5583236 +1.74774,.5583236 +1.769963,.5709586 +1.769963,.5709586 +1.769963,.5709586 +1.648389,.4997983 +1.648389,.4997983 +1.648389,.4997983 +2.546065,.934549 +3.66354,1.29843 +3.66354,1.29843 +3.66354,1.29843 +2.487591,.9113149 +2.487591,.9113149 +2.487591,.9113149 +2.948335,1.081241 +2.948335,1.081241 +2.948335,1.081241 +2.280391,.8243469 +2.280391,.8243469 +2.280391,.8243469 +2.031848,.7089459 +2.031848,.7089459 +2.031848,.7089459 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +5.442616,1.69426 +5.442616,1.69426 +5.442616,1.69426 +5.442616,1.69426 +5.442616,1.69426 +1.824238,.6011622 +1.824238,.6011622 +1.824238,.6011622 +1.824238,.6011622 +1.824238,.6011622 +2.054346,.7199574 +2.054346,.7199574 +2.054346,.7199574 +2.054346,.7199574 +2.054346,.7199574 +2.279752,.8240669 +2.279752,.8240669 +2.279752,.8240669 +2.279752,.8240669 +2.279752,.8240669 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +3.824697,1.341479 +3.824697,1.341479 +3.824697,1.341479 +3.824697,1.341479 +3.824697,1.341479 +2.39429,.8730869 +2.39429,.8730869 +2.39429,.8730869 +2.39429,.8730869 +2.39429,.8730869 +2.054779,.7201681 +2.054779,.7201681 +2.054779,.7201681 +2.054779,.7201681 +2.054779,.7201681 +2.995366,1.097066 +2.995366,1.097066 +2.995366,1.097066 +3.738287,1.318628 +3.738287,1.318628 +3.738287,1.318628 +1.625754,.4859719 +1.625754,.4859719 +1.625754,.4859719 +1.625754,.4859719 +1.625754,.4859719 +2.306126,.8355691 +2.306126,.8355691 +2.306126,.8355691 +2.306126,.8355691 +2.306126,.8355691 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +17.92653,2.886282 +17.92653,2.886282 +17.92653,2.886282 +6.57192,1.882806 +6.57192,1.882806 +6.57192,1.882806 +3.962582,1.376896 +3.962582,1.376896 +3.962582,1.376896 +3.71917,1.313501 +3.71917,1.313501 +3.71917,1.313501 +3.479224,1.246809 +3.479224,1.246809 +3.479224,1.246809 +1.968767,.6774077 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +2.227046,.800676 +2.227046,.800676 +2.227046,.800676 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +1.570005,.4510788 +1.570005,.4510788 +1.570005,.4510788 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +2.255363,.813311 +2.255363,.813311 +2.255363,.813311 +1.784458,.5791149 +1.784458,.5791149 +1.784458,.5791149 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +3.611583,1.284146 +3.611583,1.284146 +3.611583,1.284146 +3.611583,1.284146 +3.611583,1.284146 +2.232493,.8031189 +2.232493,.8031189 +2.232493,.8031189 +2.232493,.8031189 +2.232493,.8031189 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +1.868814,.6253039 +1.868814,.6253039 +1.868814,.6253039 +1.868814,.6253039 +1.868814,.6253039 +1.748245,.5586125 +1.748245,.5586125 +1.748245,.5586125 +1.748245,.5586125 +1.748245,.5586125 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +2.335459,.8482086 +2.335459,.8482086 +2.335459,.8482086 +2.335459,.8482086 +2.335459,.8482086 +2.543554,.9335622 +2.543554,.9335622 +2.543554,.9335622 +2.543554,.9335622 +2.543554,.9335622 +1.413932,.3463747 +1.413932,.3463747 +1.413932,.3463747 +1.413932,.3463747 +1.413932,.3463747 +1.766993,.5692794 +1.766993,.5692794 +1.766993,.5692794 +1.766993,.5692794 +1.766993,.5692794 +1.592285,.4651698 +1.592285,.4651698 +1.592285,.4651698 +1.592285,.4651698 +1.592285,.4651698 +1.783461,.5785557 +1.783461,.5785557 +1.783461,.5785557 +1.803713,.5898471 +1.803713,.5898471 +1.803713,.5898471 +1.783461,.5785557 +1.783461,.5785557 +1.783461,.5785557 +1.607124,.4744461 +1.607124,.4744461 +1.607124,.4744461 +3.295005,1.192408 +3.295005,1.192408 +3.295005,1.192408 +2.969217,1.088298 +2.969217,1.088298 +2.969217,1.088298 +2.969217,1.088298 +2.969217,1.088298 +2.969217,1.088298 +7.476551,2.011772 +7.476551,2.011772 +7.476551,2.011772 +2.546457,.9347031 +2.546457,.9347031 +2.546457,.9347031 +3.177549,1.15611 +3.177549,1.15611 +3.177549,1.15611 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +2.603844,.9569889 +2.603844,.9569889 +2.603844,.9569889 +3.802884,1.33576 +3.802884,1.33576 +3.802884,1.33576 +2.009193,.697733 +2.009193,.697733 +2.009193,.697733 +1.584332,.4601627 +1.584332,.4601627 +1.584332,.4601627 +1.769089,.5704646 +1.769089,.5704646 +1.769089,.5704646 +1.769089,.5704646 +1.769089,.5704646 +1.769089,.5704646 +1.769089,.5704646 +2.306051,.8355367 +2.306051,.8355367 +2.306051,.8355367 +3.05479,1.116711 +3.05479,1.116711 +3.05479,1.116711 +6.305179,1.841371 +6.305179,1.841371 +6.305179,1.841371 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.857508,1.04995 +2.857508,1.04995 +2.857508,1.04995 +2.857508,1.04995 +2.857508,1.04995 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +3.177549,1.15611 +3.177549,1.15611 +3.177549,1.15611 +2.857508,1.04995 +2.857508,1.04995 +2.857508,1.04995 +2.701041,.9936371 +2.701041,.9936371 +2.701041,.9936371 +3.381643,1.218361 +3.381643,1.218361 +3.381643,1.218361 +3.381643,1.218361 +3.381643,1.218361 +3.381643,1.218361 +3.381643,1.218361 +3.381643,1.218361 +3.381643,1.218361 +3.381643,1.218361 +3.424641,1.230997 +3.424641,1.230997 +3.424641,1.230997 +3.424641,1.230997 +3.424641,1.230997 +3.047288,1.114252 +3.047288,1.114252 +3.047288,1.114252 +3.047288,1.114252 +3.047288,1.114252 +2.70596,.9954568 +2.70596,.9954568 +2.70596,.9954568 +2.70596,.9954568 +2.70596,.9954568 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +1.80426,.5901508 +1.80426,.5901508 +1.80426,.5901508 +1.80426,.5901508 +1.80426,.5901508 +1.80426,.5901508 +1.80426,.5901508 +1.80426,.5901508 +1.80426,.5901508 +1.80426,.5901508 +1.600079,.4700527 +1.600079,.4700527 +1.600079,.4700527 +1.600079,.4700527 +1.600079,.4700527 +2.847165,1.046324 +4.211367,1.437787 +4.211367,1.437787 +4.211367,1.437787 +2.009088,.697681 +2.009088,.697681 +2.009088,.697681 +2.201536,.7891555 +2.201536,.7891555 +2.201536,.7891555 +2.229529,.8017906 +2.229529,.8017906 +2.229529,.8017906 +1.78405,.5788859 +1.78405,.5788859 +1.78405,.5788859 +2.229529,.8017906 +2.229529,.8017906 +2.229529,.8017906 +2.761911,1.015923 +2.761911,1.015923 +2.761911,1.015923 +2.761911,1.015923 +2.761911,1.015923 +2.761911,1.015923 +2.279439,.8239293 +2.279439,.8239293 +2.279439,.8239293 +2.279439,.8239293 +2.279439,.8239293 +5.808779,1.75937 +5.808779,1.75937 +5.808779,1.75937 +5.808779,1.75937 +5.808779,1.75937 +2.279439,.8239293 +2.279439,.8239293 +2.279439,.8239293 +2.279439,.8239293 +2.279439,.8239293 +2.028273,.7071847 +2.028273,.7071847 +2.028273,.7071847 +2.028273,.7071847 +2.028273,.7071847 +4.067146,1.402941 +1.782243,.5778726 +1.782243,.5778726 +1.782243,.5778726 +1.782243,.5778726 +1.782243,.5778726 +1.782243,.5778726 +1.769089,.5704646 +1.769089,.5704646 +1.769089,.5704646 +2.235938,.8046607 +2.235938,.8046607 +2.235938,.8046607 +3.785136,1.331082 +3.785136,1.331082 +3.785136,1.331082 +2.564412,.9417292 +2.564412,.9417292 +2.564412,.9417292 +2.02898,.7075331 +2.02898,.7075331 +2.02898,.7075331 +2.813913,1.034576 +2.813913,1.034576 +2.813913,1.034576 +2.22938,.8017235 +2.22938,.8017235 +2.22938,.8017235 +2.22938,.8017235 +2.22938,.8017235 +2.22938,.8017235 +2.008953,.6976139 +2.008953,.6976139 +2.008953,.6976139 +2.22938,.8017235 +2.22938,.8017235 +2.22938,.8017235 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +1.80426,.5901508 +1.80426,.5901508 +1.80426,.5901508 +1.80426,.5901508 +1.80426,.5901508 +2.226477,.8004205 +2.226477,.8004205 +2.226477,.8004205 +2.226477,.8004205 +2.226477,.8004205 +2.568038,.9431421 +2.568038,.9431421 +2.568038,.9431421 +2.568038,.9431421 +2.568038,.9431421 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +5.102506,1.629732 +5.102506,1.629732 +5.102506,1.629732 +4.253063,1.447639 +4.253063,1.447639 +4.253063,1.447639 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +4.564652,1.518342 +4.564652,1.518342 +4.564652,1.518342 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +3.611583,1.284146 +3.611583,1.284146 +3.611583,1.284146 +2.276939,.8228321 +2.276939,.8228321 +2.276939,.8228321 +2.305891,.8354672 +2.305891,.8354672 +2.305891,.8354672 +2.004206,.6952478 +2.004206,.6952478 +2.004206,.6952478 +2.252391,.8119924 +2.252391,.8119924 +2.252391,.8119924 +2.575777,.9461513 +2.575777,.9461513 +2.575777,.9461513 +3.612706,1.284457 +3.612706,1.284457 +3.612706,1.284457 +3.65373,1.295748 +3.65373,1.295748 +3.65373,1.295748 +3.612706,1.284457 +3.612706,1.284457 +3.612706,1.284457 +3.426004,1.231395 +3.426004,1.231395 +3.426004,1.231395 +2.710677,.9971984 +2.710677,.9971984 +2.710677,.9971984 +2.184153,.7812282 +2.184153,.7812282 +2.184153,.7812282 +2.208955,.7925197 +2.208955,.7925197 +2.208955,.7925197 +2.104544,.744099 +2.104544,.744099 +2.104544,.744099 +2.184785,.7815173 +2.184785,.7815173 +2.184785,.7815173 +2.184785,.7815173 +2.184785,.7815173 +2.184785,.7815173 +1.748245,.5586125 +1.748245,.5586125 +1.748245,.5586125 +1.968767,.6774077 +1.968767,.6774077 +1.968767,.6774077 +2.184785,.7815173 +2.184785,.7815173 +2.184785,.7815173 +2.434218,.8896254 +2.434218,.8896254 +2.434218,.8896254 +2.434218,.8896254 +2.434218,.8896254 +2.277171,.8229341 +2.277171,.8229341 +2.277171,.8229341 +2.277171,.8229341 +2.277171,.8229341 +4.411458,1.484205 +4.411458,1.484205 +4.411458,1.484205 +1.557702,.4432115 +1.557702,.4432115 +1.557702,.4432115 +2.792689,1.027005 +2.792689,1.027005 +2.792689,1.027005 +1.648389,.4997983 +1.648389,.4997983 +1.648389,.4997983 +2.335459,.8482086 +2.335459,.8482086 +2.335459,.8482086 +2.184785,.7815173 +2.184785,.7815173 +2.184785,.7815173 +3.026125,1.107283 +3.026125,1.107283 +3.026125,1.107283 +1.625754,.4859719 +1.625754,.4859719 +1.625754,.4859719 +2.564412,.9417292 +2.564412,.9417292 +2.564412,.9417292 +2.992148,1.095992 +2.992148,1.095992 +2.992148,1.095992 +1.824622,.6013729 +1.824622,.6013729 +2.054779,.7201681 +2.054779,.7201681 +2.054779,.7201681 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.277171,.8229341 +2.277171,.8229341 +2.277171,.8229341 +1.305409,.2665162 +1.305409,.2665162 +1.305409,.2665162 +2.532421,.9291756 +2.532421,.9291756 +2.532421,.9291756 +2.663571,.9796678 +2.663571,.9796678 +2.663571,.9796678 +2.989388,1.095069 +2.989388,1.095069 +2.989388,1.095069 +3.539258,1.263917 +3.539258,1.263917 +3.539258,1.263917 +8.215553,2.106029 +8.215553,2.106029 +8.215553,2.106029 +3.494821,1.251282 +3.494821,1.251282 +3.494821,1.251282 +4.069176,1.403441 +4.069176,1.403441 +4.069176,1.403441 +2.211925,.7938633 +2.211925,.7938633 +2.211925,.7938633 +5.926639,1.779457 +5.926639,1.779457 +5.926639,1.779457 +3.096991,1.130431 +3.096991,1.130431 +2.237043,.8051547 +2.237043,.8051547 +2.237043,.8051547 +1.577052,.4555576 +1.577052,.4555576 +1.577052,.4555576 +3.574081,1.273708 +3.574081,1.273708 +3.574081,1.273708 +3.752856,1.322517 +3.752856,1.322517 +3.752856,1.322517 +3.569282,1.272364 +3.569282,1.272364 +3.569282,1.272364 +1.824359,.601229 +1.824359,.601229 +1.824359,.601229 +1.824359,.601229 +1.824359,.601229 +1.824359,.601229 +3.891292,1.358741 +3.891292,1.358741 +3.891292,1.358741 +2.231922,.8028633 +5.642968,1.73041 +5.642968,1.73041 +5.642968,1.73041 +2.227049,.8006775 +2.227049,.8006775 +2.227049,.8006775 +4.440338,1.490731 +4.440338,1.490731 +4.440338,1.490731 +2.335459,.8482086 +2.335459,.8482086 +2.335459,.8482086 +2.294068,.8303265 +2.294068,.8303265 +2.294068,.8303265 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +3.127617,1.140271 +3.127617,1.140271 +3.127617,1.140271 +2.857508,1.04995 +2.857508,1.04995 +2.857508,1.04995 +2.857508,1.04995 +2.857508,1.04995 +2.538947,.9317495 +2.538947,.9317495 +2.538947,.9317495 +4.104554,1.412097 +4.104554,1.412097 +4.104554,1.412097 +3.127966,1.140383 +3.127966,1.140383 +3.127966,1.140383 +5.253677,1.658928 +5.253677,1.658928 +5.253677,1.658928 +2.81292,1.034223 +2.81292,1.034223 +2.81292,1.034223 +2.506336,.9188219 +2.506336,.9188219 +2.506336,.9188219 +5.075893,1.624503 +5.075893,1.624503 +5.075893,1.624503 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.232493,.8031189 +2.232493,.8031189 +2.232493,.8031189 +5.01508,1.612449 +5.01508,1.612449 +5.01508,1.612449 +5.01508,1.612449 +5.01508,1.612449 +2.985288,1.093696 +2.985288,1.093696 +2.985288,1.093696 +2.985288,1.093696 +2.985288,1.093696 +2.792689,1.027005 +2.792689,1.027005 +2.184785,.7815173 +2.184785,.7815173 +2.184785,.7815173 +2.184785,.7815173 +2.184785,.7815173 +1.748245,.5586125 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +1.605342,.4733369 +1.605342,.4733369 +1.605342,.4733369 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.054779,.7201681 +2.054779,.7201681 +2.054779,.7201681 +5.724538,1.744762 +5.724538,1.744762 +5.724538,1.744762 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +1.762053,.5664798 +1.762053,.5664798 +1.762053,.5664798 +4.668241,1.540782 +4.668241,1.540782 +4.668241,1.540782 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.184785,.7815173 +2.184785,.7815173 +2.184785,.7815173 +2.209594,.7928087 +2.209594,.7928087 +2.209594,.7928087 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +2.903353,1.065866 +2.903353,1.065866 +2.903353,1.065866 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +2.335459,.8482086 +2.335459,.8482086 +2.335459,.8482086 +1.804167,.590099 +1.804167,.590099 +1.804167,.590099 +4.05053,1.398848 +4.05053,1.398848 +4.05053,1.398848 +2.379904,.8670601 +2.379904,.8670601 +2.379904,.8670601 +1.781515,.577464 +1.781515,.577464 +1.781515,.577464 +2.226104,.8002532 +2.226104,.8002532 +2.226104,.8002532 +2.279758,.8240695 +2.279758,.8240695 +2.279758,.8240695 +1.824242,.6011648 +1.824242,.6011648 +1.824242,.6011648 +2.279758,.8240695 +2.279758,.8240695 +2.279758,.8240695 +2.305646,.8353609 +2.305646,.8353609 +2.305646,.8353609 +2.207864,.7920257 +2.207864,.7920257 +2.207864,.7920257 +3.182452,1.157652 +3.182452,1.157652 +3.182452,1.157652 +2.02898,.7075331 +2.02898,.7075331 +2.02898,.7075331 +9.637183,2.265629 +9.637183,2.265629 +9.637183,2.265629 +2.988131,1.094648 +2.988131,1.094648 +2.988131,1.094648 +2.277171,.8229341 +2.277171,.8229341 +2.277171,.8229341 +1.604713,.4729447 +1.604713,.4729447 +1.604713,.4729447 +1.800874,.5882719 +1.800874,.5882719 +1.800874,.5882719 +1.993801,.6900427 +3.064617,1.119923 +7.04697,1.952598 +2.184785,.7815173 +2.184785,.7815173 +2.209594,.7928087 +2.209594,.7928087 +2.209594,.7928087 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.184785,.7815173 +2.184785,.7815173 +2.184785,.7815173 +2.184785,.7815173 +2.184785,.7815173 +2.184785,.7815173 +2.48831,.9116039 +2.48831,.9116039 +2.48831,.9116039 +2.364229,.8604519 +2.364229,.8604519 +2.364229,.8604519 +4.546378,1.514331 +4.546378,1.514331 +4.546378,1.514331 +2.948763,1.081386 +2.948763,1.081386 +2.948763,1.081386 +2.948763,1.081386 +2.948763,1.081386 +2.948763,1.081386 +2.948763,1.081386 +2.948763,1.081386 +2.948763,1.081386 +2.948763,1.081386 +2.948763,1.081386 +2.948763,1.081386 +2.948763,1.081386 +2.948763,1.081386 +4.036768,1.395445 +4.036768,1.395445 +4.036768,1.395445 +4.036768,1.395445 +4.036768,1.395445 +2.564178,.9416382 +2.564178,.9416382 +2.564178,.9416382 +2.564178,.9416382 +2.564178,.9416382 +2.954311,1.083266 +2.954311,1.083266 +2.954311,1.083266 +2.954311,1.083266 +2.954311,1.083266 +2.251398,.8115516 +2.251398,.8115516 +2.251398,.8115516 +2.251398,.8115516 +2.251398,.8115516 +3.364745,1.213352 +3.364745,1.213352 +3.364745,1.213352 +3.364745,1.213352 +3.364745,1.213352 +3.240846,1.175834 +3.240846,1.175834 +3.240846,1.175834 +3.240846,1.175834 +3.240846,1.175834 +2.275685,.8222811 +2.275685,.8222811 +2.275685,.8222811 +2.275685,.8222811 +2.275685,.8222811 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +1.557702,.4432115 +1.557702,.4432115 +1.557702,.4432115 +5.853918,1.767111 +5.853918,1.767111 +5.853918,1.767111 +4.631659,1.532915 +4.631659,1.532915 +2.184785,.7815173 +2.184785,.7815173 +2.184785,.7815173 +1.748245,.5586125 +1.748245,.5586125 +1.748245,.5586125 +2.629197,.9666783 +2.629197,.9666783 +2.629197,.9666783 +6.206392,1.82558 +6.206392,1.82558 +6.206392,1.82558 +2.821631,1.037315 +2.821631,1.037315 +2.821631,1.037315 +2.821631,1.037315 +2.821631,1.037315 +4.507341,1.505707 +4.507341,1.505707 +4.507341,1.505707 +4.507341,1.505707 +4.507341,1.505707 +2.525117,.9262873 +2.525117,.9262873 +2.525117,.9262873 +2.227046,.800676 +2.227046,.800676 +2.227046,.800676 +3.877946,1.355306 +3.877946,1.355306 +3.877946,1.355306 +3.526896,1.260418 +3.526896,1.260418 +3.526896,1.260418 +1.801071,.5883814 +1.801071,.5883814 +1.801071,.5883814 +2.27942,.8239211 +2.27942,.8239211 +2.27942,.8239211 +1.823972,.6010165 +1.823972,.6010165 +1.823972,.6010165 +2.27942,.8239211 +2.27942,.8239211 +2.27942,.8239211 +2.054046,.7198116 +2.054046,.7198116 +2.054046,.7198116 +1.823972,.6010165 +1.823972,.6010165 +1.823972,.6010165 +2.053136,.7193683 +2.053136,.7193683 +2.053136,.7193683 +2.32012,.8416188 +2.48831,.9116039 +2.48831,.9116039 +2.48831,.9116039 +1.968767,.6774077 +1.968767,.6774077 +1.968767,.6774077 +2.294068,.8303265 +2.294068,.8303265 +2.294068,.8303265 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +2.51995,.9242389 +2.51995,.9242389 +2.51995,.9242389 +2.48831,.9116039 +2.48831,.9116039 +2.48831,.9116039 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +3.611583,1.284146 +3.611583,1.284146 +3.611583,1.284146 +3.217952,1.168745 +3.217952,1.168745 +3.217952,1.168745 +3.60042,1.28105 +3.60042,1.28105 +3.60042,1.28105 +2.828198,1.03964 +2.828198,1.03964 +2.184785,.7815173 +2.184785,.7815173 +2.009548,.69791 +2.009548,.69791 +2.009548,.69791 +2.009548,.69791 +2.009548,.69791 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +1.784458,.5791149 +1.784458,.5791149 +1.784458,.5791149 +1.784458,.5791149 +1.784458,.5791149 +2.897185,1.06374 +2.897185,1.06374 +2.897185,1.06374 +2.897185,1.06374 +2.897185,1.06374 +2.237689,.8054437 +2.237689,.8054437 +2.237689,.8054437 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.226566,.8004603 +2.226566,.8004603 +2.226566,.8004603 +1.784073,.5788992 +1.784073,.5788992 +1.784073,.5788992 +2.009115,.6976944 +2.009115,.6976944 +2.009115,.6976944 +3.156668,1.149517 +3.156668,1.149517 +3.156668,1.149517 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.014463,.7003528 +2.014463,.7003528 +2.014463,.7003528 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +4.604823,1.527104 +4.604823,1.527104 +4.604823,1.527104 +3.611285,1.284064 +3.611285,1.284064 +3.611285,1.284064 +3.295005,1.192408 +3.295005,1.192408 +3.295005,1.192408 +3.896241,1.360012 +3.896241,1.360012 +3.896241,1.360012 +2.246366,.8093139 +2.246366,.8093139 +2.246366,.8093139 +2.246366,.8093139 +2.246366,.8093139 +3.309073,1.196668 +3.309073,1.196668 +3.309073,1.196668 +3.309073,1.196668 +3.309073,1.196668 +2.830222,1.040355 +2.830222,1.040355 +2.830222,1.040355 +2.830222,1.040355 +2.830222,1.040355 +2.239302,.8061644 +2.239302,.8061644 +2.239302,.8061644 +2.26088,.8157539 +2.009136,.697705 +2.009136,.697705 +2.009136,.697705 +2.246366,.8093139 +2.246366,.8093139 +2.246366,.8093139 +2.955614,1.083706 +2.955614,1.083706 +2.955614,1.083706 +2.546065,.934549 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +1.770474,.5712476 +1.589968,.4637138 +1.589968,.4637138 +1.589968,.4637138 +1.589968,.4637138 +1.589968,.4637138 +2.009548,.69791 +2.009548,.69791 +2.009548,.69791 +2.009548,.69791 +2.009548,.69791 +3.989161,1.383581 +3.989161,1.383581 +3.989161,1.383581 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.014463,.7003528 +2.014463,.7003528 +2.014463,.7003528 +2.008237,.697257 +2.008237,.697257 +2.008237,.697257 +3.471558,1.244604 +3.471558,1.244604 +3.471558,1.244604 +3.471558,1.244604 +2.219479,.7972726 +2.219479,.7972726 +2.228763,.8014466 +2.228763,.8014466 +3.637723,1.291358 +3.637723,1.291358 +2.846109,1.045953 +2.228763,.8014466 +2.228763,.8014466 +2.228763,.8014466 +2.228763,.8014466 +2.271294,.8203498 +2.228763,.8014466 +2.228763,.8014466 +2.295856,.8311059 +2.295856,.8311059 +2.275239,.822085 +3.492131,1.250512 +3.492131,1.250512 +3.492131,1.250512 +2.296717,.8314809 +2.296717,.8314809 +2.296717,.8314809 +3.463885,1.242391 +3.600247,1.281002 +3.375382,1.216509 +2.228119,.8011577 +2.246224,.8092507 +2.246224,.8092507 +2.246224,.8092507 +2.245906,.8091089 +2.246366,.8093139 +2.246366,.8093139 +2.296448,.8313638 +3.144076,1.14552 +2.238029,.8055957 +2.238029,.8055957 +2.296717,.8314809 +2.296717,.8314809 +3.446856,1.237463 +3.401596,1.224245 +2.246224,.8092507 +1.984317,.685275 +1.984317,.685275 +1.984317,.685275 +2.921613,1.072136 +2.921613,1.072136 +2.921613,1.072136 +2.201481,.7891303 +2.201481,.7891303 +2.201481,.7891303 +1.569606,.4508246 +1.569606,.4508246 +1.569606,.4508246 +2.201481,.7891303 +2.201481,.7891303 +2.201481,.7891303 +2.052322,.7189717 +2.052322,.7189717 +2.052322,.7189717 +2.277507,.8230813 +2.277507,.8230813 +2.277507,.8230813 +2.248911,.8104463 +2.248911,.8104463 +2.248911,.8104463 +2.593914,.9531679 +2.593914,.9531679 +2.593914,.9531679 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +3.217952,1.168745 +3.217952,1.168745 +3.217952,1.168745 +2.821631,1.037315 +2.821631,1.037315 +2.821631,1.037315 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +1.648389,.4997983 +1.648389,.4997983 +1.648389,.4997983 +3.413988,1.227881 +3.413988,1.227881 +3.413988,1.227881 +3.702577,1.309029 +3.702577,1.309029 +3.702577,1.309029 +2.610213,.9594318 +2.610213,.9594318 +2.610213,.9594318 +2.98236,1.092715 +2.98236,1.092715 +2.98236,1.092715 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +3.611583,1.284146 +3.611583,1.284146 +3.611583,1.284146 +3.611583,1.284146 +3.611583,1.284146 +2.246958,.8095773 +2.246958,.8095773 +2.246958,.8095773 +1.976922,.6815412 +1.976922,.6815412 +1.976922,.6815412 +2.221729,.7982858 +2.221729,.7982858 +2.221729,.7982858 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.232493,.8031189 +2.232493,.8031189 +2.232493,.8031189 +2.232493,.8031189 +2.232493,.8031189 +2.232493,.8031189 +3.579229,1.275147 +3.579229,1.275147 +3.579229,1.275147 +3.579229,1.275147 +3.579229,1.275147 +4.781448,1.564743 +4.781448,1.564743 +4.781448,1.564743 +4.781448,1.564743 +4.781448,1.564743 +3.643808,1.293029 +3.643808,1.293029 +3.643808,1.293029 +3.643808,1.293029 +3.643808,1.293029 +3.408724,1.226338 +3.408724,1.226338 +3.408724,1.226338 +3.408724,1.226338 +3.408724,1.226338 +4.357183,1.471826 +4.357183,1.471826 +4.357183,1.471826 +4.357183,1.471826 +4.357183,1.471826 +3.643808,1.293029 +3.643808,1.293029 +3.643808,1.293029 +3.643808,1.293029 +3.643808,1.293029 +1.967226,.6766247 +1.967226,.6766247 +1.967226,.6766247 +1.99224,.6892597 +1.99224,.6892597 +1.99224,.6892597 +1.770174,.5710777 +1.770174,.5710777 +1.770174,.5710777 +3.529059,1.261031 +3.529059,1.261031 +3.529059,1.261031 +2.184414,.7813474 +2.184414,.7813474 +2.184414,.7813474 +2.277507,.8230813 +2.277507,.8230813 +2.277507,.8230813 +2.277507,.8230813 +2.277507,.8230813 +2.277507,.8230813 +2.277507,.8230813 +2.277507,.8230813 +2.277507,.8230813 +2.277507,.8230813 +1.623811,.4847755 +1.623811,.4847755 +1.623811,.4847755 +1.623811,.4847755 +1.623811,.4847755 +1.822441,.6001766 +1.822441,.6001766 +1.822441,.6001766 +1.822441,.6001766 +1.822441,.6001766 +2.277507,.8230813 +2.277507,.8230813 +2.277507,.8230813 +2.277507,.8230813 +2.277507,.8230813 +2.277507,.8230813 +2.277507,.8230813 +2.277507,.8230813 +2.277507,.8230813 +2.277507,.8230813 +2.984558,1.093452 +2.984558,1.093452 +2.984558,1.093452 +2.984558,1.093452 +2.984558,1.093452 +3.973304,1.379598 +3.973304,1.379598 +3.973304,1.379598 +2.845902,1.04588 +2.845902,1.04588 +2.845902,1.04588 +2.597019,.9543642 +2.597019,.9543642 +2.597019,.9543642 +4.320667,1.46341 +4.320667,1.46341 +4.320667,1.46341 +3.462008,1.241849 +3.462008,1.241849 +3.462008,1.241849 +3.489367,1.24972 +3.489367,1.24972 +3.489367,1.24972 +3.144048,1.145511 +3.144048,1.145511 +3.144048,1.145511 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +2.306126,.8355691 +2.306126,.8355691 +2.306126,.8355691 +2.597019,.9543642 +2.597019,.9543642 +2.597019,.9543642 +5.665836,1.734455 +5.665836,1.734455 +5.665836,1.734455 +3.420846,1.229888 +3.420846,1.229888 +3.420846,1.229888 +3.420846,1.229888 +3.420846,1.229888 +3.420846,1.229888 +4.924244,1.594171 +4.924244,1.594171 +4.924244,1.594171 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +4.727598,1.553417 +4.727598,1.553417 +4.727598,1.553417 +4.727598,1.553417 +4.727598,1.553417 +3.169796,1.153667 +3.169796,1.153667 +3.169796,1.153667 +3.169796,1.153667 +3.169796,1.153667 +4.02576,1.392714 +4.02576,1.392714 +4.02576,1.392714 +3.534695,1.262627 +3.534695,1.262627 +3.534695,1.262627 +3.534695,1.262627 +3.534695,1.262627 +3.534695,1.262627 +1.74774,.5583236 +1.74774,.5583236 +1.74774,.5583236 +1.74774,.5583236 +1.74774,.5583236 +2.208955,.7925197 +2.208955,.7925197 +2.208955,.7925197 +2.208955,.7925197 +2.208955,.7925197 +1.989171,.6877179 +1.989171,.6877179 +2.232493,.8031189 +2.232493,.8031189 +2.232493,.8031189 +2.232493,.8031189 +2.821631,1.037315 +2.821631,1.037315 +2.821631,1.037315 +8.139304,2.096705 +8.139304,2.096705 +3.452067,1.238973 +3.452067,1.238973 +3.452067,1.238973 +3.452067,1.238973 +3.452067,1.238973 +3.452067,1.238973 +3.931652,1.36906 +3.931652,1.36906 +3.931652,1.36906 +7.318247,1.990371 +7.318247,1.990371 +7.318247,1.990371 +3.452067,1.238973 +3.452067,1.238973 +3.452067,1.238973 +2.762313,1.016068 +2.762313,1.016068 +2.762313,1.016068 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +10.09969,2.312505 +10.09969,2.312505 +10.09969,2.312505 +10.09969,2.312505 +10.09969,2.312505 +2.009548,.69791 +2.009548,.69791 +2.009548,.69791 +2.009548,.69791 +2.009548,.69791 +1.589968,.4637138 +1.589968,.4637138 +1.589968,.4637138 +1.589968,.4637138 +1.589968,.4637138 +1.784458,.5791149 +1.784458,.5791149 +1.784458,.5791149 +1.784458,.5791149 +1.784458,.5791149 +1.777748,.5753476 +1.777748,.5753476 +1.777748,.5753476 +2.221655,.7982523 +2.221655,.7982523 +2.221655,.7982523 +2.221655,.7982523 +2.221655,.7982523 +2.221655,.7982523 +2.221655,.7982523 +2.221655,.7982523 +2.221655,.7982523 +2.001992,.6941428 +2.001992,.6941428 +2.001992,.6941428 +3.503366,1.253724 +3.503366,1.253724 +3.503366,1.253724 +2.803362,1.03082 +2.803362,1.03082 +2.803362,1.03082 +3.503366,1.253724 +3.503366,1.253724 +3.503366,1.253724 +3.543148,1.265016 +3.543148,1.265016 +3.543148,1.265016 +3.602706,1.281685 +3.602706,1.281685 +3.602706,1.281685 +4.301766,1.459026 +4.301766,1.459026 +4.301766,1.459026 +2.363087,.8599687 +2.363087,.8599687 +2.363087,.8599687 +2.209594,.7928087 +2.209594,.7928087 +2.209594,.7928087 +2.48831,.9116039 +2.48831,.9116039 +2.48831,.9116039 +2.335459,.8482086 +2.335459,.8482086 +2.335459,.8482086 +2.184785,.7815173 +2.184785,.7815173 +2.184785,.7815173 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +3.611583,1.284146 +3.611583,1.284146 +3.611583,1.284146 +2.821631,1.037315 +2.821631,1.037315 +2.821631,1.037315 +1.823431,.6007199 +1.823431,.6007199 +1.823431,.6007199 +1.823431,.6007199 +1.823431,.6007199 +2.278744,.8236247 +2.278744,.8236247 +2.278744,.8236247 +2.278744,.8236247 +2.278744,.8236247 +1.891239,.6372324 +1.891239,.6372324 +1.891239,.6372324 +1.513353,.4143277 +1.513353,.4143277 +1.513353,.4143277 +1.823943,.6010009 +1.823943,.6010009 +1.823943,.6010009 +3.241141,1.175925 +3.241141,1.175925 +3.241141,1.175925 +3.282353,1.18856 +3.282353,1.18856 +3.282353,1.18856 +3.503366,1.253724 +3.503366,1.253724 +3.503366,1.253724 +3.459379,1.241089 +3.459379,1.241089 +3.459379,1.241089 +3.498662,1.252381 +3.498662,1.252381 +3.498662,1.252381 +4.979712,1.605372 +4.979712,1.605372 +4.979712,1.605372 +2.596261,.9540724 +2.596261,.9540724 +2.596261,.9540724 +2.279567,.8239858 +2.279567,.8239858 +2.279567,.8239858 +1.82409,.601081 +1.82409,.601081 +1.82409,.601081 +2.279567,.8239858 +2.279567,.8239858 +2.279567,.8239858 +2.227642,.8009437 +2.227642,.8009437 +1.782539,.578039 +1.782539,.578039 +1.782539,.578039 +4.663221,1.539706 +4.663221,1.539706 +4.663221,1.539706 +2.227642,.8009437 +2.227642,.8009437 +2.227642,.8009437 +2.227642,.8009437 +2.227642,.8009437 +2.227642,.8009437 +3.184945,1.158435 +3.184945,1.158435 +3.184945,1.158435 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +3.282353,1.18856 +3.282353,1.18856 +3.282353,1.18856 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +1.824622,.6013729 +1.824622,.6013729 +1.824622,.6013729 +2.620786,.9634743 +2.620786,.9634743 +2.620786,.9634743 +1.841321,.6104829 +1.841321,.6104829 +1.841321,.6104829 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +3.407839,1.226078 +3.407839,1.226078 +3.407839,1.226078 +2.597019,.9543642 +2.597019,.9543642 +2.597019,.9543642 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.535311,.9303162 +2.535311,.9303162 +2.535311,.9303162 +3.739508,1.318954 +3.739508,1.318954 +3.739508,1.318954 +3.739508,1.318954 +3.739508,1.318954 +4.158333,1.425114 +4.158333,1.425114 +4.158333,1.425114 +4.158333,1.425114 +4.158333,1.425114 +3.156976,1.149615 +3.156976,1.149615 +3.156976,1.149615 +6.373847,1.852203 +6.373847,1.852203 +6.373847,1.852203 +3.156976,1.149615 +3.156976,1.149615 +3.156976,1.149615 +2.006337,.6963109 +2.006337,.6963109 +2.006337,.6963109 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +2.006337,.6963109 +2.006337,.6963109 +2.006337,.6963109 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +2.237689,.8054437 +2.237689,.8054437 +2.237689,.8054437 +2.237689,.8054437 +2.237689,.8054437 +2.792689,1.027005 +2.792689,1.027005 +2.792689,1.027005 +2.792689,1.027005 +2.792689,1.027005 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.821631,1.037315 +2.821631,1.037315 +2.821631,1.037315 +2.827381,1.039351 +2.827381,1.039351 +2.827381,1.039351 +1.993225,.6897537 +1.993225,.6897537 +1.993225,.6897537 +5.550559,1.713899 +5.550559,1.713899 +5.550559,1.713899 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +2.232493,.8031189 +2.232493,.8031189 +2.232493,.8031189 +2.232493,.8031189 +2.232493,.8031189 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.184785,.7815173 +2.184785,.7815173 +2.184785,.7815173 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +4.447479,1.492337 +4.447479,1.492337 +4.447479,1.492337 +4.447479,1.492337 +4.447479,1.492337 +3.816824,1.339419 +3.816824,1.339419 +3.816824,1.339419 +3.816824,1.339419 +3.816824,1.339419 +3.177549,1.15611 +3.177549,1.15611 +3.177549,1.15611 +2.25176,.8117119 +2.25176,.8117119 +2.25176,.8117119 +2.954785,1.083426 +2.954785,1.083426 +2.954785,1.083426 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +2.25176,.8117119 +2.25176,.8117119 +2.25176,.8117119 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.298568,.8322862 +2.298568,.8322862 +2.298568,.8322862 +1.620426,.4826891 +1.620426,.4826891 +1.620426,.4826891 +1.996818,.6915549 +1.996818,.6915549 +1.996818,.6915549 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +3.526547,1.260319 +3.526547,1.260319 +3.526547,1.260319 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +3.711195,1.311354 +3.711195,1.311354 +3.711195,1.311354 +3.711195,1.311354 +3.711195,1.311354 +2.237689,.8054437 +2.237689,.8054437 +2.237689,.8054437 +2.237689,.8054437 +2.237689,.8054437 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +4.507341,1.505707 +4.507341,1.505707 +4.507341,1.505707 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.857508,1.04995 +2.857508,1.04995 +2.857508,1.04995 +2.762313,1.016068 +2.762313,1.016068 +2.762313,1.016068 +2.762313,1.016068 +2.762313,1.016068 +2.762313,1.016068 +2.762313,1.016068 +2.762313,1.016068 +2.762313,1.016068 +2.762313,1.016068 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +1.784458,.5791149 +1.784458,.5791149 +1.784458,.5791149 +2.539853,.9321062 +2.539853,.9321062 +2.539853,.9321062 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +1.784458,.5791149 +1.784458,.5791149 +1.784458,.5791149 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +1.784458,.5791149 +1.784458,.5791149 +1.784458,.5791149 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.294068,.8303265 +2.294068,.8303265 +2.294068,.8303265 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +1.766015,.5687255 +1.766015,.5687255 +1.766015,.5687255 +2.260434,.8155568 +2.260434,.8155568 +2.260434,.8155568 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +3.217952,1.168745 +3.217952,1.168745 +3.217952,1.168745 +2.014463,.7003528 +2.014463,.7003528 +2.014463,.7003528 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.289077,.8281488 +2.289077,.8281488 +2.289077,.8281488 +1.330474,.2855354 +1.330474,.2855354 +1.330474,.2855354 +2.007314,.6967977 +2.007314,.6967977 +2.007314,.6967977 +2.007754,.6970165 +2.007754,.6970165 +2.007754,.6970165 +2.007754,.6970165 +2.007754,.6970165 +2.228049,.8011261 +2.228049,.8011261 +2.228049,.8011261 +2.228049,.8011261 +2.228049,.8011261 +2.228049,.8011261 +2.228049,.8011261 +2.228049,.8011261 +2.228049,.8011261 +2.228049,.8011261 +2.225057,.7997825 +2.225057,.7997825 +2.225057,.7997825 +2.225057,.7997825 +2.225057,.7997825 +2.228049,.8011261 +2.228049,.8011261 +2.228049,.8011261 +2.228049,.8011261 +2.228049,.8011261 +3.965469,1.377624 +3.965469,1.377624 +3.965469,1.377624 +3.481759,1.247538 +3.481759,1.247538 +3.481759,1.247538 +5.469244,1.69914 +5.469244,1.69914 +5.469244,1.69914 +1.769963,.5709586 +1.769963,.5709586 +1.769963,.5709586 +1.993225,.6897537 +1.993225,.6897537 +1.993225,.6897537 +4.10334,1.411801 +4.10334,1.411801 +4.10334,1.411801 +3.470147,1.244197 +3.470147,1.244197 +3.470147,1.244197 +2.77678,1.021292 +2.77678,1.021292 +2.77678,1.021292 +3.470147,1.244197 +3.470147,1.244197 +3.470147,1.244197 +3.430024,1.232567 +3.430024,1.232567 +3.430024,1.232567 +3.430024,1.232567 +3.430024,1.232567 +2.207864,.7920257 +2.207864,.7920257 +2.207864,.7920257 +1.989171,.6877179 +1.989171,.6877179 +1.989171,.6877179 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +1.989171,.6877179 +1.989171,.6877179 +1.989171,.6877179 +2.821631,1.037315 +2.821631,1.037315 +2.821631,1.037315 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +2.237043,.8051547 +2.237043,.8051547 +2.237043,.8051547 +1.968199,.6771187 +1.968199,.6771187 +2.008861,.6975681 +2.229278,.8016776 +2.229278,.8016776 +2.229278,.8016776 +2.538985,.9317642 +2.58344,.9491217 +2.58344,.9491217 +2.58344,.9491217 +2.58344,.9491217 +2.58344,.9491217 +2.903353,1.065866 +2.903353,1.065866 +2.903353,1.065866 +2.903353,1.065866 +2.903353,1.065866 +3.36185,1.212491 +3.36185,1.212491 +3.36185,1.212491 +3.36185,1.212491 +3.36185,1.212491 +2.184785,.7815173 +2.184785,.7815173 +2.184785,.7815173 +2.184785,.7815173 +2.184785,.7815173 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.184785,.7815173 +2.184785,.7815173 +2.184785,.7815173 +2.184785,.7815173 +2.184785,.7815173 +7.280629,1.985217 +7.280629,1.985217 +7.280629,1.985217 +7.280629,1.985217 +2.05991,.7226623 +2.05991,.7226623 +2.05991,.7226623 +2.05991,.7226623 +2.05991,.7226623 +2.935189,1.076772 +2.935189,1.076772 +2.935189,1.076772 +2.935189,1.076772 +2.935189,1.076772 +2.935189,1.076772 +2.349527,.854214 +2.349527,.854214 +2.349527,.854214 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +1.799559,.5875415 +1.799559,.5875415 +1.799559,.5875415 +3.237266,1.174729 +3.237266,1.174729 +3.237266,1.174729 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +2.014463,.7003528 +2.014463,.7003528 +2.014463,.7003528 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +1.748245,.5586125 +1.748245,.5586125 +1.748245,.5586125 +4.631659,1.532915 +4.631659,1.532915 +4.631659,1.532915 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +1.748245,.5586125 +1.748245,.5586125 +1.748245,.5586125 +2.335459,.8482086 +2.335459,.8482086 +2.335459,.8482086 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +4.946827,1.598746 +4.946827,1.598746 +4.946827,1.598746 +2.959514,1.085025 +2.959514,1.085025 +2.959514,1.085025 +3.023523,1.106423 +3.023523,1.106423 +3.023523,1.106423 +3.023523,1.106423 +3.023523,1.106423 +3.023523,1.106423 +2.718996,1.000262 +2.718996,1.000262 +2.718996,1.000262 +3.397933,1.223167 +3.397933,1.223167 +3.397933,1.223167 +2.684857,.9876274 +2.684857,.9876274 +2.684857,.9876274 +3.397933,1.223167 +3.397933,1.223167 +3.397933,1.223167 +5.375414,1.681836 +5.375414,1.681836 +5.375414,1.681836 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.251603,.8116426 +2.251603,.8116426 +2.251603,.8116426 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.306126,.8355691 +2.306126,.8355691 +2.306126,.8355691 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +4.212332,1.438016 +4.212332,1.438016 +4.212332,1.438016 +2.341587,.8508288 +2.341587,.8508288 +2.341587,.8508288 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +3.177549,1.15611 +3.177549,1.15611 +3.177549,1.15611 +3.177549,1.15611 +3.177549,1.15611 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.277619,.8231306 +2.277619,.8231306 +2.277619,.8231306 +2.274561,.821787 +2.274561,.821787 +2.274561,.821787 +2.278712,.8236102 +2.278712,.8236102 +2.278712,.8236102 +2.278712,.8236102 +2.278712,.8236102 +3.362806,1.212776 +3.362806,1.212776 +3.362806,1.212776 +3.362806,1.212776 +3.362806,1.212776 +2.912751,1.069098 +2.912751,1.069098 +2.912751,1.069098 +2.278712,.8236102 +2.278712,.8236102 +2.278712,.8236102 +2.278712,.8236102 +2.278712,.8236102 +2.278712,.8236102 +2.278712,.8236102 +2.278712,.8236102 +2.278712,.8236102 +2.278712,.8236102 +2.278712,.8236102 +2.278712,.8236102 +2.278712,.8236102 +2.278712,.8236102 +2.278712,.8236102 +2.278712,.8236102 +2.278712,.8236102 +2.278712,.8236102 +2.278712,.8236102 +2.255363,.813311 +2.255363,.813311 +2.255363,.813311 +2.312187,.8381938 +2.312187,.8381938 +2.312187,.8381938 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +2.209774,.7928901 +2.209774,.7928901 +2.209774,.7928901 +2.516771,.9229767 +2.516771,.9229767 +2.516771,.9229767 +2.209774,.7928901 +2.209774,.7928901 +2.209774,.7928901 +2.251582,.8116332 +2.251582,.8116332 +2.251582,.8116332 +2.251582,.8116332 +2.251582,.8116332 +2.251582,.8116332 +2.251582,.8116332 +2.251582,.8116332 +2.251582,.8116332 +2.251582,.8116332 +2.306104,.8355597 +2.306104,.8355597 +2.306104,.8355597 +2.306104,.8355597 +2.306104,.8355597 +1.625739,.4859625 +1.625739,.4859625 +1.625739,.4859625 +1.625739,.4859625 +1.625739,.4859625 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +1.989171,.6877179 +1.989171,.6877179 +1.989171,.6877179 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.133334,.7576859 +2.133334,.7576859 +2.133334,.7576859 +2.597019,.9543642 +2.597019,.9543642 +2.597019,.9543642 +8.118364,2.094129 +8.118364,2.094129 +8.118364,2.094129 +8.118364,2.094129 +8.118364,2.094129 +3.185749,1.158688 +3.185749,1.158688 +3.185749,1.158688 +3.185749,1.158688 +3.185749,1.158688 +3.185749,1.158688 +3.185749,1.158688 +3.185749,1.158688 +3.185749,1.158688 +3.185749,1.158688 +2.271367,.8203818 +2.271367,.8203818 +2.834719,1.041943 +2.834719,1.041943 +2.834719,1.041943 +2.834719,1.041943 +2.834719,1.041943 +4.937365,1.596832 +4.937365,1.596832 +4.937365,1.596832 +4.937365,1.596832 +4.937365,1.596832 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +2.821631,1.037315 +2.821631,1.037315 +2.821631,1.037315 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +3.409071,1.22644 +3.409071,1.22644 +3.409071,1.22644 +3.409071,1.22644 +3.409071,1.22644 +3.409071,1.22644 +2.727908,1.003535 +2.727908,1.003535 +2.727908,1.003535 +2.727908,1.003535 +2.727908,1.003535 +2.727908,1.003535 +2.184153,.7812282 +2.184153,.7812282 +2.184153,.7812282 +2.827381,1.039351 +2.827381,1.039351 +2.827381,1.039351 +2.738272,1.007327 +2.738272,1.007327 +2.738272,1.007327 +2.253542,.8125034 +2.253542,.8125034 +2.253542,.8125034 +2.200263,.7885769 +2.200263,.7885769 +2.200263,.7885769 +3.707555,1.310373 +3.707555,1.310373 +3.707555,1.310373 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +5.696794,1.739904 +5.696794,1.739904 +5.696794,1.739904 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +6.322487,1.844113 +6.322487,1.844113 +6.322487,1.844113 +2.247445,.8097939 +2.247445,.8097939 +2.247445,.8097939 +2.247445,.8097939 +2.247445,.8097939 +2.247445,.8097939 +2.247445,.8097939 +2.247445,.8097939 +2.247445,.8097939 +2.247445,.8097939 +3.358836,1.211595 +3.358836,1.211595 +3.358836,1.211595 +3.358836,1.211595 +3.358836,1.211595 +1.602377,.4714882 +1.602377,.4714882 +1.602377,.4714882 +1.602377,.4714882 +1.602377,.4714882 +4.990189,1.607474 +4.990189,1.607474 +4.990189,1.607474 +6.074818,1.804152 +6.074818,1.804152 +6.074818,1.804152 +1.625754,.4859719 +1.625754,.4859719 +1.625754,.4859719 +3.089354,1.127962 +3.089354,1.127962 +3.089354,1.127962 +2.743314,1.009167 +2.743314,1.009167 +2.743314,1.009167 +3.904611,1.362158 +3.904611,1.362158 +3.904611,1.362158 +3.428324,1.232072 +3.428324,1.232072 +3.428324,1.232072 +3.089354,1.127962 +3.089354,1.127962 +3.089354,1.127962 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +3.683861,1.303961 +3.683861,1.303961 +3.683861,1.303961 +2.914695,1.069765 +2.914695,1.069765 +2.914695,1.069765 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +3.574538,1.273836 +3.574538,1.273836 +3.574538,1.273836 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +3.144956,1.1458 +3.144956,1.1458 +3.144956,1.1458 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +3.26519,1.183318 +3.26519,1.183318 +3.26519,1.183318 +3.26519,1.183318 +3.26519,1.183318 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +3.974887,1.379996 +3.974887,1.379996 +3.974887,1.379996 +3.974887,1.379996 +3.974887,1.379996 +3.064617,1.119923 +3.064617,1.119923 +3.064617,1.119923 +3.064617,1.119923 +3.064617,1.119923 +1.989171,.6877179 +1.989171,.6877179 +1.989171,.6877179 +1.989171,.6877179 +1.989171,.6877179 +3.217952,1.168745 +3.217952,1.168745 +3.217952,1.168745 +3.217952,1.168745 +3.217952,1.168745 +4.507341,1.505707 +4.507341,1.505707 +4.507341,1.505707 +4.507341,1.505707 +4.507341,1.505707 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +2.392992,.8725443 +2.392992,.8725443 +2.392992,.8725443 +2.568054,.9431484 +2.568054,.9431484 +2.568054,.9431484 +2.568054,.9431484 +2.568054,.9431484 +2.254801,.8130618 +2.254801,.8130618 +2.254801,.8130618 +2.254801,.8130618 +2.254801,.8130618 +2.254801,.8130618 +2.254801,.8130618 +2.254801,.8130618 +2.254801,.8130618 +2.254801,.8130618 +1.804272,.5901571 +1.804272,.5901571 +1.804272,.5901571 +1.804272,.5901571 +1.804272,.5901571 +2.8781,1.05713 +2.8781,1.05713 +2.8781,1.05713 +2.277171,.8229341 +2.277171,.8229341 +2.277171,.8229341 +4.025728,1.392706 +4.025728,1.392706 +4.025728,1.392706 +2.26631,.8181531 +2.26631,.8181531 +2.26631,.8181531 +2.202041,.7893845 +2.202041,.7893845 +2.202041,.7893845 +1.762053,.5664798 +1.762053,.5664798 +1.762053,.5664798 +2.227046,.800676 +2.227046,.800676 +2.227046,.800676 +5.150977,1.639186 +5.150977,1.639186 +5.150977,1.639186 +3.105815,1.133276 +3.105815,1.133276 +3.105815,1.133276 +4.679659,1.543225 +4.679659,1.543225 +4.679659,1.543225 +3.217952,1.168745 +3.217952,1.168745 +3.217952,1.168745 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +1.761382,.5660987 +1.761382,.5660987 +1.761382,.5660987 +1.761382,.5660987 +1.761382,.5660987 +2.813674,1.034491 +2.813674,1.034491 +2.813674,1.034491 +2.813674,1.034491 +2.813674,1.034491 +2.22919,.8016384 +2.22919,.8016384 +2.22919,.8016384 +2.22919,.8016384 +2.22919,.8016384 +2.084581,.7345679 +2.084581,.7345679 +2.084581,.7345679 +2.633176,.9681907 +2.633176,.9681907 +2.633176,.9681907 +1.589968,.4637138 +1.784458,.5791149 +2.014463,.7003528 +2.014463,.7003528 +2.014463,.7003528 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +5.914585,1.777421 +5.914585,1.777421 +5.914585,1.777421 +2.232493,.8031189 +2.232493,.8031189 +2.232493,.8031189 +4.006079,1.387813 +4.006079,1.387813 +1.984217,.6852243 +1.984217,.6852243 +2.255194,.8132359 +2.255194,.8132359 +2.255194,.8132359 +2.255194,.8132359 +2.255194,.8132359 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +2.352996,.8556893 +2.352996,.8556893 +2.352996,.8556893 +1.761372,.5660932 +1.761372,.5660932 +1.761372,.5660932 +2.20119,.7889979 +2.20119,.7889979 +2.20119,.7889979 +1.783768,.5787283 +1.783768,.5787283 +1.783768,.5787283 +1.801713,.5887379 +1.801713,.5887379 +1.801713,.5887379 +1.801713,.5887379 +1.801713,.5887379 +2.597019,.9543642 +2.597019,.9543642 +2.597019,.9543642 +2.597019,.9543642 +2.597019,.9543642 +1.338285,.2913887 +1.338285,.2913887 +1.338285,.2913887 +2.711894,.9976472 +2.711894,.9976472 +2.711894,.9976472 +2.711894,.9976472 +2.711894,.9976472 +2.711894,.9976472 +2.711894,.9976472 +2.711894,.9976472 +3.05397,1.116442 +3.05397,1.116442 +3.389058,1.220552 +3.389058,1.220552 +3.389058,1.220552 +2.303369,.8343728 +2.303369,.8343728 +2.303369,.8343728 +2.561346,.9405329 +2.561346,.9405329 +2.269065,.8193677 +2.269065,.8193677 +2.269065,.8193677 +4.749933,1.558131 +4.749933,1.558131 +4.749933,1.558131 +2.584299,.9494543 +2.584299,.9494543 +2.584299,.9494543 +3.558687,1.269392 +3.558687,1.269392 +3.558687,1.269392 +3.13101,1.141356 +3.13101,1.141356 +3.13101,1.141356 +1.744808,.5566444 +1.744808,.5566444 +1.744808,.5566444 +1.744808,.5566444 +1.744808,.5566444 +1.744808,.5566444 +1.744808,.5566444 +1.744808,.5566444 +1.744808,.5566444 +1.744808,.5566444 +1.886319,.6346272 +1.886319,.6346272 +1.886319,.6346272 +1.886319,.6346272 +1.572293,.4525348 +1.572293,.4525348 +1.572293,.4525348 +1.572293,.4525348 +1.572293,.4525348 +1.744808,.5566444 +1.744808,.5566444 +1.744808,.5566444 +1.744808,.5566444 +1.744808,.5566444 +1.39618,.3337396 +1.39618,.3337396 +1.39618,.3337396 +1.39618,.3337396 +1.39618,.3337396 +3.516494,1.257464 +3.516494,1.257464 +3.516494,1.257464 +3.516494,1.257464 +3.516494,1.257464 +3.516494,1.257464 +3.516494,1.257464 +3.516494,1.257464 +3.516494,1.257464 +3.516494,1.257464 +3.516494,1.257464 +3.516494,1.257464 +3.516494,1.257464 +3.516494,1.257464 +3.516494,1.257464 +3.753963,1.322812 +3.753963,1.322812 +3.753963,1.322812 +3.753963,1.322812 +3.753963,1.322812 +4.158144,1.425069 +4.158144,1.425069 +4.158144,1.425069 +4.158144,1.425069 +4.158144,1.425069 +3.058722,1.117997 +3.058722,1.117997 +3.058722,1.117997 +3.058722,1.117997 +3.058722,1.117997 +3.865896,1.352193 +3.865896,1.352193 +3.865896,1.352193 +3.865896,1.352193 +3.865896,1.352193 +3.490712,1.250106 +3.490712,1.250106 +3.490712,1.250106 +3.490712,1.250106 +3.490712,1.250106 +3.145573,1.145996 +3.145573,1.145996 +3.145573,1.145996 +3.145573,1.145996 +3.145573,1.145996 +3.490712,1.250106 +3.490712,1.250106 +3.490712,1.250106 +3.490712,1.250106 +3.490712,1.250106 +6.350824,1.848585 +6.350824,1.848585 +6.350824,1.848585 +6.350824,1.848585 +6.350824,1.848585 +1.769239,.5705494 +1.769239,.5705494 +1.769239,.5705494 +1.278057,.2453412 +1.278057,.2453412 +1.278057,.2453412 +2.031848,.7089459 +2.031848,.7089459 +2.031848,.7089459 +2.009548,.69791 +2.009548,.69791 +2.009548,.69791 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +2.255363,.813311 +2.255363,.813311 +2.255363,.813311 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +1.984317,.685275 +1.984317,.685275 +1.984317,.685275 +1.984317,.685275 +1.984317,.685275 +2.507964,.9194711 +2.507964,.9194711 +2.507964,.9194711 +2.507964,.9194711 +2.507964,.9194711 +3.434001,1.233726 +3.434001,1.233726 +3.434001,1.233726 +3.055617,1.116981 +3.055617,1.116981 +3.055617,1.116981 +3.624739,1.287782 +3.624739,1.287782 +3.624739,1.287782 +3.42939,1.232382 +3.42939,1.232382 +3.42939,1.232382 +2.009548,.69791 +2.009548,.69791 +2.009548,.69791 +2.812187,1.033962 +2.812187,1.033962 +2.812187,1.033962 +1.80426,.5901508 +1.80426,.5901508 +1.80426,.5901508 +2.25176,.8117119 +2.25176,.8117119 +2.25176,.8117119 +2.845982,1.045908 +2.845982,1.045908 +2.845982,1.045908 +1.891368,.6373003 +1.891368,.6373003 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +3.854207,1.349165 +3.854207,1.349165 +3.854207,1.349165 +1.607612,.4747497 +1.607612,.4747497 +1.607612,.4747497 +1.607612,.4747497 +1.607612,.4747497 +1.80426,.5901508 +1.80426,.5901508 +1.80426,.5901508 +1.80426,.5901508 +1.80426,.5901508 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +2.827381,1.039351 +2.827381,1.039351 +2.827381,1.039351 +2.211925,.7938633 +2.211925,.7938633 +2.211925,.7938633 +3.971775,1.379213 +3.971775,1.379213 +3.971775,1.379213 +3.971775,1.379213 +3.971775,1.379213 +3.299028,1.193628 +3.299028,1.193628 +3.299028,1.193628 +2.539853,.9321062 +2.539853,.9321062 +2.539853,.9321062 +2.227046,.800676 +2.227046,.800676 +2.227046,.800676 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.237689,.8054437 +2.237689,.8054437 +2.237689,.8054437 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +3.346745,1.207988 +3.346745,1.207988 +3.346745,1.207988 +2.009548,.69791 +2.009548,.69791 +2.009548,.69791 +2.850536,1.047507 +2.850536,1.047507 +2.850536,1.047507 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +3.217952,1.168745 +3.217952,1.168745 +3.217952,1.168745 +3.217952,1.168745 +3.217952,1.168745 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +3.566238,1.271511 +3.566238,1.271511 +3.566238,1.271511 +2.857508,1.04995 +2.857508,1.04995 +2.857508,1.04995 +1.353155,.3024386 +1.353155,.3024386 +1.353155,.3024386 +1.844339,.6121207 +1.844339,.6121207 +1.844339,.6121207 +2.732865,1.00535 +2.732865,1.00535 +2.732865,1.00535 +3.415265,1.228255 +3.415265,1.228255 +3.415265,1.228255 +4.481551,1.499969 +4.481551,1.499969 +4.481551,1.499969 +3.889738,1.358342 +3.889738,1.358342 +3.889738,1.358342 +3.415265,1.228255 +3.415265,1.228255 +3.415265,1.228255 +2.219676,.7973614 +2.219676,.7973614 +2.219676,.7973614 +1.776165,.5744567 +1.776165,.5744567 +1.776165,.5744567 +1.582579,.4590557 +1.582579,.4590557 +1.582579,.4590557 +2.219676,.7973614 +2.219676,.7973614 +2.219676,.7973614 +3.340976,1.206263 +3.340976,1.206263 +3.340976,1.206263 +3.566238,1.271511 +3.566238,1.271511 +3.566238,1.271511 +1.799361,.5874318 +1.799361,.5874318 +1.799361,.5874318 +6.440601,1.862622 +6.440601,1.862622 +6.440601,1.862622 +1.822241,.6000668 +1.822241,.6000668 +1.822241,.6000668 +2.277257,.8229716 +2.277257,.8229716 +2.277257,.8229716 +2.593629,.9530582 +2.593629,.9530582 +2.593629,.9530582 +2.506594,.9189247 +2.506594,.9189247 +2.506594,.9189247 +3.112549,1.135442 +3.112549,1.135442 +3.112549,1.135442 +2.91174,1.068751 +2.91174,1.068751 +2.91174,1.068751 +2.91174,1.068751 +2.91174,1.068751 +2.91174,1.068751 +2.91174,1.068751 +2.91174,1.068751 +2.91174,1.068751 +2.91174,1.068751 +2.91174,1.068751 +2.91174,1.068751 +1.880808,.6317015 +1.880808,.6317015 +1.880808,.6317015 +1.880808,.6317015 +1.880808,.6317015 +2.212499,.7941226 +2.212499,.7941226 +2.212499,.7941226 +2.212499,.7941226 +2.212499,.7941226 +2.197932,.787517 +2.197932,.787517 +2.197932,.787517 +2.197932,.787517 +2.809495,1.033005 +2.809495,1.033005 +2.809495,1.033005 +2.809495,1.033005 +2.232493,.8031189 +2.232493,.8031189 +2.232493,.8031189 +2.280001,.8241757 +2.280001,.8241757 +2.280001,.8241757 +2.280001,.8241757 +2.280001,.8241757 +2.280001,.8241757 +2.054569,.7200661 +2.054569,.7200661 +2.054569,.7200661 +4.447986,1.492451 +4.447986,1.492451 +4.447986,1.492451 +3.479761,1.246964 +3.479761,1.246964 +3.479761,1.246964 +3.479761,1.246964 +3.479761,1.246964 +3.479761,1.246964 +3.135705,1.142854 +3.135705,1.142854 +3.135705,1.142854 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.659918,.9782952 +2.659918,.9782952 +2.659918,.9782952 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +2.184785,.7815173 +2.184785,.7815173 +2.184785,.7815173 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.96961,1.088431 +2.96961,1.088431 +2.96961,1.088431 +4.743727,1.556823 +4.743727,1.556823 +1.748245,.5586125 +1.748245,.5586125 +1.748245,.5586125 +1.748245,.5586125 +1.968767,.6774077 +1.968767,.6774077 +1.968767,.6774077 +1.968767,.6774077 +1.968767,.6774077 +2.48831,.9116039 +2.48831,.9116039 +2.48831,.9116039 +2.48831,.9116039 +2.48831,.9116039 +1.968767,.6774077 +1.968767,.6774077 +1.968767,.6774077 +1.968767,.6774077 +1.968767,.6774077 +1.748245,.5586125 +1.748245,.5586125 +1.748245,.5586125 +1.748245,.5586125 +1.748245,.5586125 +2.008312,.6972946 +2.008312,.6972946 +2.008312,.6972946 +2.008312,.6972946 +2.008312,.6972946 +3.208126,1.165687 +3.208126,1.165687 +3.208126,1.165687 +3.208126,1.165687 +3.208126,1.165687 +2.310764,.8375784 +2.310764,.8375784 +2.310764,.8375784 +2.310764,.8375784 +2.310764,.8375784 +1.569039,.4504634 +1.569039,.4504634 +1.569039,.4504634 +1.569039,.4504634 +1.569039,.4504634 +1.78336,.5784994 +1.78336,.5784994 +1.78336,.5784994 +1.78336,.5784994 +1.78336,.5784994 +2.228668,.8014042 +2.228668,.8014042 +2.228668,.8014042 +2.228668,.8014042 +2.228668,.8014042 +1.822441,.6001766 +1.822441,.6001766 +1.822441,.6001766 +2.984558,1.093452 +2.984558,1.093452 +2.984558,1.093452 +2.276768,.8227569 +2.276768,.8227569 +2.276768,.8227569 +4.01608,1.390306 +4.01608,1.390306 +4.01608,1.390306 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.857508,1.04995 +2.857508,1.04995 +2.857508,1.04995 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.202041,.7893845 +2.202041,.7893845 +2.202041,.7893845 +1.762053,.5664798 +1.762053,.5664798 +1.762053,.5664798 +1.984317,.685275 +1.984317,.685275 +1.984317,.685275 +2.507964,.9194711 +2.507964,.9194711 +2.507964,.9194711 +1.570005,.4510788 +1.570005,.4510788 +1.570005,.4510788 +1.783461,.5785557 +1.783461,.5785557 +1.783461,.5785557 +1.783461,.5785557 +1.783461,.5785557 +1.783461,.5785557 +1.271567,.2402499 +1.271567,.2402499 +1.271567,.2402499 +1.427109,.355651 +1.427109,.355651 +1.427109,.355651 +1.625612,.4858843 +1.625612,.4858843 +1.625612,.4858843 +2.028802,.7074454 +2.028802,.7074454 +2.028802,.7074454 +2.280033,.8241901 +2.280033,.8241901 +2.280033,.8241901 +1.769089,.5704646 +1.769089,.5704646 +1.769089,.5704646 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +1.607612,.4747497 +1.607612,.4747497 +1.607612,.4747497 +1.80426,.5901508 +1.80426,.5901508 +1.80426,.5901508 +5.102255,1.629683 +5.102255,1.629683 +5.102255,1.629683 +3.076438,1.123773 +3.076438,1.123773 +3.076438,1.123773 +2.280121,.8242285 +2.280121,.8242285 +2.280121,.8242285 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +2.992356,1.096061 +2.992356,1.096061 +2.992356,1.096061 +2.226477,.8004205 +2.226477,.8004205 +2.226477,.8004205 +1.80426,.5901508 +1.80426,.5901508 +1.80426,.5901508 +2.014463,.7003528 +2.014463,.7003528 +2.014463,.7003528 +4.222634,1.440459 +4.222634,1.440459 +4.222634,1.440459 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +1.594136,.4663321 +1.594136,.4663321 +1.594136,.4663321 +2.812233,1.033979 +2.812233,1.033979 +2.812233,1.033979 +2.812233,1.033979 +2.812233,1.033979 +6.638461,1.89288 +6.638461,1.89288 +6.638461,1.89288 +6.638461,1.89288 +6.638461,1.89288 +2.200074,.7884911 +2.200074,.7884911 +2.200074,.7884911 +2.200074,.7884911 +2.200074,.7884911 +2.95458,1.083357 +2.95458,1.083357 +2.95458,1.083357 +2.95458,1.083357 +2.95458,1.083357 +1.605342,.4733369 +1.605342,.4733369 +1.605342,.4733369 +1.605342,.4733369 +1.605342,.4733369 +2.914695,1.069765 +2.914695,1.069765 +2.914695,1.069765 +2.914695,1.069765 +2.914695,1.069765 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.584645,.9495882 +2.584645,.9495882 +2.584645,.9495882 +2.298224,.8321366 +2.298224,.8321366 +2.298224,.8321366 +2.298224,.8321366 +2.298224,.8321366 +2.298224,.8321366 +1.638582,.4938309 +1.638582,.4938309 +1.638582,.4938309 +7.990944,2.078309 +7.990944,2.078309 +7.990944,2.078309 +5.633392,1.728712 +5.633392,1.728712 +5.633392,1.728712 +3.332824,1.20382 +3.332824,1.20382 +3.332824,1.20382 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +1.784458,.5791149 +1.784458,.5791149 +1.784458,.5791149 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +2.922355,1.07239 +2.922355,1.07239 +2.922355,1.07239 +5.323934,1.672212 +5.323934,1.672212 +5.323934,1.672212 +2.341587,.8508288 +2.341587,.8508288 +2.341587,.8508288 +2.341587,.8508288 +2.341587,.8508288 +2.959514,1.085025 +2.959514,1.085025 +2.959514,1.085025 +2.959514,1.085025 +2.959514,1.085025 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.792689,1.027005 +2.792689,1.027005 +2.792689,1.027005 +2.792689,1.027005 +2.792689,1.027005 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +6.430315,1.861024 +6.430315,1.861024 +6.430315,1.861024 +6.430315,1.861024 +6.430315,1.861024 +2.209594,.7928087 +2.209594,.7928087 +2.209594,.7928087 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.361979,.8595001 +2.361979,.8595001 +2.361979,.8595001 +3.237266,1.174729 +3.237266,1.174729 +3.237266,1.174729 +1.799559,.5875415 +1.799559,.5875415 +1.799559,.5875415 +2.561346,.9405329 +2.561346,.9405329 +2.561346,.9405329 +1.801713,.5887379 +1.801713,.5887379 +1.801713,.5887379 +1.605342,.4733369 +1.605342,.4733369 +1.605342,.4733369 +1.801713,.5887379 +1.801713,.5887379 +1.801713,.5887379 +2.02898,.7075331 +2.02898,.7075331 +2.02898,.7075331 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.014463,.7003528 +2.014463,.7003528 +2.014463,.7003528 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +1.824622,.6013729 +1.824622,.6013729 +1.824622,.6013729 +2.02898,.7075331 +2.02898,.7075331 +2.02898,.7075331 +8.418341,2.130413 +8.418341,2.130413 +8.418341,2.130413 +8.418341,2.130413 +8.418341,2.130413 +4.739161,1.55586 +4.739161,1.55586 +4.739161,1.55586 +4.739161,1.55586 +4.739161,1.55586 +2.277171,.8229341 +2.277171,.8229341 +2.277171,.8229341 +2.251603,.8116426 +2.251603,.8116426 +2.251603,.8116426 +2.251603,.8116426 +2.251603,.8116426 +2.251603,.8116426 +2.02898,.7075331 +2.02898,.7075331 +2.02898,.7075331 +2.251603,.8116426 +2.251603,.8116426 +2.251603,.8116426 +3.177549,1.15611 +3.177549,1.15611 +3.177549,1.15611 +3.177549,1.15611 +3.177549,1.15611 +2.054779,.7201681 +2.054779,.7201681 +2.054779,.7201681 +4.14908,1.422887 +4.14908,1.422887 +4.14908,1.422887 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +3.177549,1.15611 +3.177549,1.15611 +3.177549,1.15611 +3.177549,1.15611 +3.177549,1.15611 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +1.648389,.4997983 +1.648389,.4997983 +1.648389,.4997983 +1.648389,.4997983 +1.648389,.4997983 +1.968767,.6774077 +1.968767,.6774077 +1.968767,.6774077 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +3.529658,1.261201 +3.529658,1.261201 +3.529658,1.261201 +2.184785,.7815173 +2.184785,.7815173 +2.184785,.7815173 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +2.882169,1.058543 +2.882169,1.058543 +2.882169,1.058543 +1.80426,.5901508 +1.80426,.5901508 +1.80426,.5901508 +4.205601,1.436417 +4.205601,1.436417 +4.205601,1.436417 +2.031848,.7089459 +2.031848,.7089459 +2.031848,.7089459 +2.632739,.9680248 +2.632739,.9680248 +2.632739,.9680248 +2.632739,.9680248 +2.632739,.9680248 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +2.568038,.9431421 +2.568038,.9431421 +2.568038,.9431421 +2.568038,.9431421 +2.568038,.9431421 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +2.48831,.9116039 +2.48831,.9116039 +2.48831,.9116039 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +1.968767,.6774077 +1.968767,.6774077 +1.968767,.6774077 +2.263121,.8167449 +2.263121,.8167449 +2.263121,.8167449 +7.475399,2.011617 +7.475399,2.011617 +7.475399,2.011617 +3.841102,1.345759 +3.841102,1.345759 +3.841102,1.345759 +3.916198,1.365121 +3.916198,1.365121 +3.916198,1.365121 +3.916198,1.365121 +3.916198,1.365121 +4.63032,1.532626 +4.63032,1.532626 +4.63032,1.532626 +4.63032,1.532626 +4.63032,1.532626 +1.968767,.6774077 +1.968767,.6774077 +1.968767,.6774077 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +2.184785,.7815173 +2.184785,.7815173 +2.184785,.7815173 +1.748245,.5586125 +1.748245,.5586125 +1.748245,.5586125 +1.82266,.6002972 +1.82266,.6002972 +1.82266,.6002972 +2.251603,.8116426 +2.251603,.8116426 +2.251603,.8116426 +2.02898,.7075331 +2.02898,.7075331 +2.02898,.7075331 +2.251603,.8116426 +2.251603,.8116426 +2.251603,.8116426 +2.8781,1.05713 +2.8781,1.05713 +2.8781,1.05713 +2.251603,.8116426 +2.251603,.8116426 +2.251603,.8116426 +2.223664,.7991564 +2.223664,.7991564 +2.223664,.7991564 +3.160734,1.150804 +3.160734,1.150804 +3.160734,1.150804 +2.406768,.8782848 +2.406768,.8782848 +2.406768,.8782848 +2.406768,.8782848 +2.406768,.8782848 +3.888287,1.357969 +3.888287,1.357969 +3.888287,1.357969 +3.888287,1.357969 +3.888287,1.357969 +2.02888,.7074839 +2.02888,.7074839 +2.02888,.7074839 +2.02888,.7074839 +2.02888,.7074839 +1.589968,.4637138 +1.589968,.4637138 +1.589968,.4637138 +1.589968,.4637138 +1.589968,.4637138 +1.589968,.4637138 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +1.842577,.6111653 +1.842577,.6111653 +1.744722,.5565954 +1.744722,.5565954 +1.744722,.5565954 +2.208106,.7921351 +2.208106,.7921351 +2.208106,.7921351 +2.514872,.9222217 +2.514872,.9222217 +2.514872,.9222217 +2.208106,.7921351 +2.208106,.7921351 +2.208106,.7921351 +1.748245,.5586125 +1.748245,.5586125 +1.748245,.5586125 +1.968767,.6774077 +1.968767,.6774077 +1.968767,.6774077 +3.529658,1.261201 +3.529658,1.261201 +3.529658,1.261201 +4.457616,1.494614 +4.457616,1.494614 +4.457616,1.494614 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.014463,.7003528 +2.014463,.7003528 +2.014463,.7003528 +2.014463,.7003528 +2.014463,.7003528 +2.014463,.7003528 +2.50718,.9191586 +2.50718,.9191586 +2.50718,.9191586 +3.12902,1.14072 +3.12902,1.14072 +3.12902,1.14072 +2.50718,.9191586 +2.50718,.9191586 +3.954744,1.374916 +3.954744,1.374916 +3.954744,1.374916 +3.516494,1.257464 +3.516494,1.257464 +3.516494,1.257464 +3.516494,1.257464 +3.516494,1.257464 +3.516494,1.257464 +3.516494,1.257464 +3.516494,1.257464 +3.516494,1.257464 +3.168806,1.153355 +3.168806,1.153355 +3.168806,1.153355 +2.263101,.816736 +2.263101,.816736 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +1.784458,.5791149 +1.784458,.5791149 +1.784458,.5791149 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +1.589968,.4637138 +1.589968,.4637138 +1.589968,.4637138 +1.589968,.4637138 +1.589968,.4637138 +1.589968,.4637138 +4.806436,1.569956 +4.806436,1.569956 +4.806436,1.569956 +3.389058,1.220552 +3.389058,1.220552 +3.389058,1.220552 +4.277653,1.453405 +4.277653,1.453405 +4.277653,1.453405 +2.711894,.9976472 +2.711894,.9976472 +2.711894,.9976472 +2.277171,.8229341 +2.277171,.8229341 +2.277171,.8229341 +2.972062,1.089256 +2.972062,1.089256 +2.972062,1.089256 +1.784174,.5789558 +1.784174,.5789558 +2.353531,.8559169 +2.353531,.8559169 +2.353531,.8559169 +2.850083,1.047348 +2.850083,1.047348 +2.850083,1.047348 +2.229686,.8018606 +2.229686,.8018606 +2.229686,.8018606 +2.539449,.9319472 +2.539449,.9319472 +2.539449,.9319472 +1.588398,.4627258 +1.588398,.4627258 +1.588398,.4627258 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.02898,.7075331 +2.02898,.7075331 +2.02898,.7075331 +4.773312,1.56304 +4.773312,1.56304 +4.773312,1.56304 +2.031432,.7087409 +2.031432,.7087409 +2.031432,.7087409 +2.031432,.7087409 +2.031432,.7087409 +2.857508,1.04995 +2.857508,1.04995 +2.857508,1.04995 +2.857508,1.04995 +2.857508,1.04995 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.78995,1.026024 +2.042434,.7141424 +2.042434,.7141424 +2.042434,.7141424 +2.969667,1.08845 +2.969667,1.08845 +2.969667,1.08845 +2.211925,.7938633 +2.211925,.7938633 +2.211925,.7938633 +5.022377,1.613903 +5.022377,1.613903 +5.022377,1.613903 +3.549997,1.266947 +3.549997,1.266947 +3.549997,1.266947 +3.549997,1.266947 +3.549997,1.266947 +3.549997,1.266947 +3.549997,1.266947 +3.549997,1.266947 +3.549997,1.266947 +3.549997,1.266947 +3.549997,1.266947 +3.549997,1.266947 +3.549997,1.266947 +3.549997,1.266947 +3.549997,1.266947 +4.480789,1.499799 +4.480789,1.499799 +4.480789,1.499799 +4.480789,1.499799 +4.480789,1.499799 +4.537764,1.512434 +4.537764,1.512434 +4.537764,1.512434 +4.537764,1.512434 +4.537764,1.512434 +1.993225,.6897537 +1.993225,.6897537 +1.993225,.6897537 +1.993225,.6897537 +1.993225,.6897537 +1.993225,.6897537 +2.530107,.9282616 +2.530107,.9282616 +2.530107,.9282616 +2.238644,.8058704 +2.238644,.8058704 +2.238644,.8058704 +2.30915,.8368794 +2.30915,.8368794 +2.30915,.8368794 +2.437409,.8909358 +2.437409,.8909358 +2.437409,.8909358 +1.576273,.4550635 +1.576273,.4550635 +1.576273,.4550635 +2.238644,.8058704 +2.238644,.8058704 +2.238644,.8058704 +1.99224,.6892597 +1.99224,.6892597 +1.99224,.6892597 +2.349296,.8541155 +2.349296,.8541155 +2.349296,.8541155 +2.349296,.8541155 +2.349296,.8541155 +1.748245,.5586125 +1.748245,.5586125 +1.748245,.5586125 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.51995,.9242389 +2.51995,.9242389 +2.51995,.9242389 +2.212564,.7941523 +2.212564,.7941523 +2.212564,.7941523 +2.327388,.8447467 +2.327388,.8447467 +2.327388,.8447467 +2.327388,.8447467 +2.327388,.8447467 +2.327388,.8447467 +1.584968,.4605643 +1.584968,.4605643 +1.584968,.4605643 +2.327388,.8447467 +2.327388,.8447467 +2.327388,.8447467 +4.595733,1.525128 +4.595733,1.525128 +4.595733,1.525128 +3.239863,1.175531 +3.239863,1.175531 +3.239863,1.175531 +2.226362,.800369 +2.226362,.800369 +2.226362,.800369 +2.229356,.8017126 +2.229356,.8017126 +2.229356,.8017126 +2.229356,.8017126 +2.229356,.8017126 +2.229356,.8017126 +1.569523,.4507718 +1.569523,.4507718 +1.569523,.4507718 +2.507964,.9194711 +2.507964,.9194711 +2.507964,.9194711 +2.507964,.9194711 +2.507964,.9194711 +1.784458,.5791149 +1.784458,.5791149 +1.784458,.5791149 +1.784458,.5791149 +1.784458,.5791149 +2.202041,.7893845 +2.202041,.7893845 +2.202041,.7893845 +2.202041,.7893845 +2.202041,.7893845 +4.283001,1.454654 +4.283001,1.454654 +4.283001,1.454654 +1.587641,.4622496 +1.587641,.4622496 +1.587641,.4622496 +1.781847,.5776506 +1.781847,.5776506 +1.781847,.5776506 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +3.217952,1.168745 +3.217952,1.168745 +3.217952,1.168745 +3.217952,1.168745 +3.217952,1.168745 +3.340976,1.206263 +3.340976,1.206263 +3.340976,1.206263 +3.340976,1.206263 +3.340976,1.206263 +1.623811,.4847755 +1.623811,.4847755 +1.623811,.4847755 +2.277507,.8230813 +2.277507,.8230813 +2.277507,.8230813 +1.822441,.6001766 +1.822441,.6001766 +1.822441,.6001766 +3.204972,1.164703 +3.204972,1.164703 +3.204972,1.164703 +2.954785,1.083426 +2.954785,1.083426 +2.954785,1.083426 +1.642,.4959153 +1.642,.4959153 +1.642,.4959153 +2.30302,.8342211 +2.30302,.8342211 +2.30302,.8342211 +2.335056,.848036 +2.335056,.848036 +2.335056,.848036 +2.223821,.7992268 +2.842587,1.044714 +2.842587,1.044714 +2.842587,1.044714 +2.821631,1.037315 +2.821631,1.037315 +2.821631,1.037315 +1.989171,.6877179 +1.989171,.6877179 +1.989171,.6877179 +2.821631,1.037315 +2.821631,1.037315 +2.821631,1.037315 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.914695,1.069765 +2.914695,1.069765 +2.914695,1.069765 +2.306126,.8355691 +2.306126,.8355691 +2.306126,.8355691 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.202025,.7893775 +2.202025,.7893775 +2.202025,.7893775 +1.984303,.6852679 +1.984303,.6852679 +1.984303,.6852679 +1.762041,.5664728 +1.762041,.5664728 +1.762041,.5664728 +2.680638,.986055 +2.680638,.986055 +2.2298,.801912 +2.2298,.801912 +2.469258,.9039176 +2.469258,.9039176 +7.291686,1.986735 +7.291686,1.986735 +7.291686,1.986735 +1.989171,.6877179 +1.989171,.6877179 +1.989171,.6877179 +3.217952,1.168745 +3.217952,1.168745 +3.217952,1.168745 +4.679659,1.543225 +4.679659,1.543225 +4.679659,1.543225 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +3.016226,1.104006 +3.016226,1.104006 +3.016226,1.104006 +3.016226,1.104006 +3.016226,1.104006 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +2.825424,1.038659 +3.661005,1.297738 +3.661005,1.297738 +3.661005,1.297738 +3.661005,1.297738 +3.661005,1.297738 +2.007754,.6970165 +2.007754,.6970165 +2.255136,.8132101 +2.255136,.8132101 +2.255136,.8132101 +1.9648,.6753905 +1.9648,.6753905 +1.9648,.6753905 +2.208106,.7921351 +2.208106,.7921351 +2.208106,.7921351 +2.208106,.7921351 +2.208106,.7921351 +2.208106,.7921351 +2.514872,.9222217 +2.514872,.9222217 +2.514872,.9222217 +2.208106,.7921351 +2.208106,.7921351 +2.208106,.7921351 +3.346745,1.207988 +3.346745,1.207988 +3.346745,1.207988 +1.80426,.5901508 +1.80426,.5901508 +1.80426,.5901508 +1.80426,.5901508 +1.80426,.5901508 +2.031848,.7089459 +2.031848,.7089459 +2.031848,.7089459 +2.031848,.7089459 +2.031848,.7089459 +3.276497,1.186775 +3.276497,1.186775 +3.276497,1.186775 +3.276497,1.186775 +3.276497,1.186775 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +2.254787,.8130555 +4.102245,1.411534 +4.102245,1.411534 +4.102245,1.411534 +4.102245,1.411534 +4.102245,1.411534 +1.80426,.5901508 +1.80426,.5901508 +1.80426,.5901508 +1.80426,.5901508 +1.80426,.5901508 +1.607612,.4747497 +1.860815,.6210144 +1.860815,.6210144 +1.860815,.6210144 +1.860815,.6210144 +1.860815,.6210144 +1.658002,.5056134 +1.658002,.5056134 +1.658002,.5056134 +1.658002,.5056134 +1.658002,.5056134 +1.769089,.5704646 +1.769089,.5704646 +1.769089,.5704646 +1.769089,.5704646 +1.769089,.5704646 +2.255363,.813311 +2.255363,.813311 +2.255363,.813311 +2.255363,.813311 +2.255363,.813311 +2.255363,.813311 +2.922355,1.07239 +2.922355,1.07239 +2.922355,1.07239 +1.648389,.4997983 +1.648389,.4997983 +1.648389,.4997983 +9.448101,2.245814 +9.448101,2.245814 +2.232493,.8031189 +2.232493,.8031189 +2.232493,.8031189 +2.386458,.8698102 +2.386458,.8698102 +2.386458,.8698102 +2.27716,.822929 +2.27716,.822929 +2.27716,.822929 +2.27716,.822929 +2.27716,.822929 +2.694544,.9912291 +2.694544,.9912291 +2.694544,.9912291 +2.694544,.9912291 +2.694544,.9912291 +2.275685,.8222811 +2.275685,.8222811 +2.275685,.8222811 +2.275685,.8222811 +2.275685,.8222811 +2.278744,.8236247 +2.278744,.8236247 +2.278744,.8236247 +2.278744,.8236247 +2.278744,.8236247 +1.761069,.5659209 +1.761069,.5659209 +1.761069,.5659209 +3.555549,1.26851 +3.555549,1.26851 +3.555549,1.26851 +2.506562,.9189123 +2.506562,.9189123 +2.506562,.9189123 +1.761069,.5659209 +1.761069,.5659209 +1.761069,.5659209 +1.982209,.6842119 +1.982209,.6842119 +1.982209,.6842119 +1.784324,.5790398 +1.784324,.5790398 +1.784324,.5790398 +2.959292,1.08495 +2.959292,1.08495 +2.959292,1.08495 +1.625754,.4859719 +1.625754,.4859719 +1.625754,.4859719 +2.031848,.7089459 +2.031848,.7089459 +2.031848,.7089459 +2.031848,.7089459 +2.031848,.7089459 +1.717436,.5408327 +1.717436,.5408327 +1.717436,.5408327 +3.693732,1.306637 +3.693732,1.306637 +3.693732,1.306637 +2.98198,1.092587 +2.98198,1.092587 +2.98198,1.092587 +2.537931,.931349 +2.537931,.931349 +2.537931,.931349 +2.537931,.931349 +2.537931,.931349 +2.22536,.7999189 +2.22536,.7999189 +2.22536,.7999189 +2.22536,.7999189 +2.22536,.7999189 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +3.420846,1.229888 +3.420846,1.229888 +3.420846,1.229888 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.280233,.8242776 +2.240631,.8067576 +2.240631,.8067576 +2.240631,.8067576 +2.240631,.8067576 +2.240631,.8067576 +2.24551,.8089328 +2.24551,.8089328 +2.24551,.8089328 +2.24551,.8089328 +2.24551,.8089328 +2.520157,.9243214 +2.520157,.9243214 +2.520157,.9243214 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +2.23004,.8020195 +2.870763,1.054578 +2.870763,1.054578 +2.870763,1.054578 +2.870763,1.054578 +3.749656,1.321664 +3.749656,1.321664 +2.857508,1.04995 +2.857508,1.04995 +2.857508,1.04995 +7.721957,2.044068 +7.721957,2.044068 +7.721957,2.044068 +2.231693,.8027605 +2.231693,.8027605 +2.231693,.8027605 +2.231693,.8027605 +2.231693,.8027605 +2.948763,1.081386 +2.846109,1.045953 +2.846109,1.045953 +2.846109,1.045953 +2.846109,1.045953 +3.542238,1.264759 +3.542238,1.264759 +3.542238,1.264759 +3.542238,1.264759 +3.542238,1.264759 +2.271294,.8203498 +2.271294,.8203498 +2.846109,1.045953 +2.846109,1.045953 +2.295427,.830919 +2.295427,.830919 +2.295427,.830919 +2.295427,.830919 +2.846109,1.045953 +2.846109,1.045953 +2.228763,.8014466 +2.228763,.8014466 +2.846109,1.045953 +2.846109,1.045953 +2.846109,1.045953 +2.846109,1.045953 +2.846109,1.045953 +2.846109,1.045953 +2.846109,1.045953 +2.846109,1.045953 +2.24635,.8093069 +2.24635,.8093069 +3.434029,1.233734 +2.228763,.8014466 +2.846109,1.045953 +2.846109,1.045953 +2.228119,.8011577 +2.228119,.8011577 +2.228119,.8011577 +2.846109,1.045953 +2.246366,.8093139 +2.846109,1.045953 +2.243079,.8078496 +1.977737,.6819533 +2.227018,.8006636 +2.227018,.8006636 +2.227018,.8006636 +2.231693,.8027605 +2.231693,.8027605 +2.231693,.8027605 +2.244148,.8083259 +2.846109,1.045953 +2.296905,.8315626 +2.296905,.8315626 +2.295427,.830919 +2.295427,.830919 +2.242175,.8074464 +2.242175,.8074464 +2.231693,.8027605 +2.231693,.8027605 +2.223019,.7988662 +2.846109,1.045953 +2.914695,1.069765 +2.914695,1.069765 +2.914695,1.069765 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +3.044641,1.113383 +3.044641,1.113383 +3.044641,1.113383 +2.014463,.7003528 +2.014463,.7003528 +2.014463,.7003528 +2.853175,1.048433 +2.853175,1.048433 +2.853175,1.048433 +2.853175,1.048433 +2.853175,1.048433 +1.629814,.4884661 +1.629814,.4884661 +1.629814,.4884661 +1.629814,.4884661 +1.629814,.4884661 +4.067146,1.402941 +4.067146,1.402941 +4.067146,1.402941 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +6.089676,1.806595 +6.089676,1.806595 +6.089676,1.806595 +6.089676,1.806595 +6.089676,1.806595 +8.28931,2.114967 +8.28931,2.114967 +8.28931,2.114967 +8.28931,2.114967 +8.28931,2.114967 +2.232493,.8031189 +2.232493,.8031189 +2.232493,.8031189 +2.232493,.8031189 +2.232493,.8031189 +5.102506,1.629732 +5.102506,1.629732 +5.102506,1.629732 +2.255363,.813311 +2.255363,.813311 +2.255363,.813311 +2.255363,.813311 +2.255363,.813311 +2.255363,.813311 +1.483661,.394513 +1.483661,.394513 +1.483661,.394513 +2.633176,.9681907 +2.633176,.9681907 +2.633176,.9681907 +8.28931,2.114967 +8.28931,2.114967 +8.28931,2.114967 +8.28931,2.114967 +8.28931,2.114967 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +3.942595,1.371839 +3.942595,1.371839 +3.942595,1.371839 +3.942595,1.371839 +3.942595,1.371839 +2.416985,.8825207 +2.416985,.8825207 +2.311371,.837841 +2.311371,.837841 +2.311371,.837841 +2.311371,.837841 +2.825919,1.038834 +2.825919,1.038834 +1.797845,.5865887 +1.797845,.5865887 +1.797845,.5865887 +1.409191,.3430159 +1.409191,.3430159 +1.409191,.3430159 +1.586945,.4618111 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +3.144956,1.1458 +3.144956,1.1458 +3.144956,1.1458 +3.144956,1.1458 +3.144956,1.1458 +2.119782,.7513133 +2.119782,.7513133 +2.119782,.7513133 +2.275124,.8220347 +2.275124,.8220347 +2.275124,.8220347 +2.985288,1.093696 +2.985288,1.093696 +2.985288,1.093696 +2.985288,1.093696 +2.985288,1.093696 +1.868814,.6253039 +1.868814,.6253039 +1.868814,.6253039 +1.868814,.6253039 +1.868814,.6253039 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +2.207864,.7920257 +2.207864,.7920257 +2.207864,.7920257 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +2.232493,.8031189 +2.232493,.8031189 +2.232493,.8031189 +2.232493,.8031189 +2.232493,.8031189 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +4.818192,1.572399 +4.818192,1.572399 +4.818192,1.572399 +4.818192,1.572399 +4.818192,1.572399 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.821631,1.037315 +2.821631,1.037315 +2.821631,1.037315 +2.821631,1.037315 +2.821631,1.037315 +3.177549,1.15611 +3.177549,1.15611 +3.177549,1.15611 +3.177549,1.15611 +3.177549,1.15611 +2.791116,1.026441 +2.791116,1.026441 +2.791116,1.026441 +2.791116,1.026441 +2.791116,1.026441 +2.455684,.8984053 +2.455684,.8984053 +2.455684,.8984053 +2.455684,.8984053 +2.455684,.8984053 +3.560903,1.270014 +3.560903,1.270014 +3.560903,1.270014 +3.560903,1.270014 +3.560903,1.270014 +3.516194,1.257379 +3.516194,1.257379 +3.516194,1.257379 +3.516194,1.257379 +3.516194,1.257379 +3.516194,1.257379 +3.516194,1.257379 +3.516194,1.257379 +3.516194,1.257379 +3.516194,1.257379 +3.184945,1.158435 +3.184945,1.158435 +3.184945,1.158435 +2.51995,.9242389 +2.51995,.9242389 +2.51995,.9242389 +2.782517,1.023356 +2.782517,1.023356 +2.782517,1.023356 +2.782517,1.023356 +2.782517,1.023356 +3.549933,1.266929 +3.549933,1.266929 +3.549933,1.266929 +3.549933,1.266929 +3.549933,1.266929 +3.549933,1.266929 +3.549933,1.266929 +3.549933,1.266929 +3.549933,1.266929 +3.549933,1.266929 +2.782517,1.023356 +2.782517,1.023356 +2.782517,1.023356 +2.782517,1.023356 +2.782517,1.023356 +2.487591,.9113149 +2.487591,.9113149 +2.487591,.9113149 +1.74774,.5583236 +1.74774,.5583236 +1.74774,.5583236 +1.746877,.5578295 +1.746877,.5578295 +1.746877,.5578295 +2.470303,.9043407 +2.470303,.9043407 +2.470303,.9043407 +1.844223,.6120582 +1.844223,.6120582 +1.844223,.6120582 +1.936278,.6607679 +1.936278,.6607679 +1.936278,.6607679 +2.470303,.9043407 +2.470303,.9043407 +2.470303,.9043407 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +2.349087,.8540267 +2.349087,.8540267 +2.349087,.8540267 +2.349087,.8540267 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +1.868814,.6253039 +1.868814,.6253039 +1.868814,.6253039 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +2.232493,.8031189 +2.232493,.8031189 +2.232493,.8031189 +2.312014,.8381189 +2.312014,.8381189 +2.312014,.8381189 +2.312014,.8381189 +2.312014,.8381189 +2.57935,.9475374 +2.57935,.9475374 +2.57935,.9475374 +2.57935,.9475374 +2.57935,.9475374 +1.812208,.5945461 +1.812208,.5945461 +1.812208,.5945461 +1.812208,.5945461 +1.812208,.5945461 +3.033851,1.109833 +3.033851,1.109833 +3.033851,1.109833 +3.033851,1.109833 +3.033851,1.109833 +1.80426,.5901508 +1.80426,.5901508 +1.80426,.5901508 +1.80426,.5901508 +1.80426,.5901508 +2.373857,.8645159 +2.373857,.8645159 +2.373857,.8645159 +3.038449,1.111347 +3.038449,1.111347 +3.038449,1.111347 +3.252278,1.179356 +3.252278,1.179356 +3.252278,1.179356 +4.021039,1.39154 +4.021039,1.39154 +4.021039,1.39154 +3.211444,1.166721 +3.211444,1.166721 +3.211444,1.166721 +3.58278,1.276139 +3.58278,1.276139 +3.58278,1.276139 +2.549208,.9357828 +2.549208,.9357828 +2.549208,.9357828 +3.602771,1.281703 +3.602771,1.281703 +3.602771,1.281703 +2.8781,1.05713 +2.8781,1.05713 +2.8781,1.05713 +5.443763,1.694471 +5.443763,1.694471 +5.443763,1.694471 +2.597019,.9543642 +2.597019,.9543642 +2.597019,.9543642 +2.25877,.8148203 +2.25877,.8148203 +2.828198,1.03964 +2.828198,1.03964 +1.993801,.6900427 +1.993801,.6900427 +2.271388,.8203912 +2.952725,1.082729 +2.952725,1.082729 +2.25019,.8110145 +2.25019,.8110145 +2.952725,1.082729 +2.277171,.8229341 +2.277171,.8229341 +2.277171,.8229341 +2.8781,1.05713 +2.8781,1.05713 +2.8781,1.05713 +1.824622,.6013729 +1.824622,.6013729 +1.824622,.6013729 +2.27552,.8222086 +2.27552,.8222086 +2.27552,.8222086 +2.27552,.8222086 +2.27552,.8222086 +2.27552,.8222086 +1.589206,.4632348 +1.589206,.4632348 +1.589206,.4632348 +1.983367,.684796 +1.983367,.684796 +1.983367,.684796 +2.27552,.8222086 +2.27552,.8222086 +2.27552,.8222086 +1.762053,.5664798 +1.762053,.5664798 +1.762053,.5664798 +1.762053,.5664798 +1.762053,.5664798 +1.589968,.4637138 +1.589968,.4637138 +1.589968,.4637138 +1.784458,.5791149 +1.784458,.5791149 +1.784458,.5791149 +1.784458,.5791149 +1.784458,.5791149 +4.159443,1.425381 +4.159443,1.425381 +4.159443,1.425381 +4.159443,1.425381 +4.159443,1.425381 +2.692448,.990451 +2.692448,.990451 +2.692448,.990451 +2.600232,.9556006 +2.600232,.9556006 +2.600232,.9556006 +3.328201,1.202432 +3.328201,1.202432 +3.328201,1.202432 +2.857508,1.04995 +2.857508,1.04995 +2.857508,1.04995 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +3.044641,1.113383 +3.044641,1.113383 +3.044641,1.113383 +3.577745,1.274733 +3.577745,1.274733 +3.577745,1.274733 +3.934673,1.369828 +3.934673,1.369828 +3.934673,1.369828 +3.577745,1.274733 +3.577745,1.274733 +3.577745,1.274733 +3.789787,1.33231 +3.789787,1.33231 +3.789787,1.33231 +2.224294,.7994394 +2.224294,.7994394 +2.224294,.7994394 +2.335025,.8480224 +2.335025,.8480224 +2.335025,.8480224 +2.364715,.8606574 +2.364715,.8606574 +2.364715,.8606574 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +1.989171,.6877179 +1.989171,.6877179 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +2.840924,1.044129 +2.840924,1.044129 +2.840924,1.044129 +4.711656,1.55004 +4.711656,1.55004 +4.711656,1.55004 +3.624449,1.287702 +3.624449,1.287702 +3.624449,1.287702 +3.624449,1.287702 +3.624449,1.287702 +3.624449,1.287702 +3.624449,1.287702 +3.624449,1.287702 +3.624449,1.287702 +1.624816,.4853948 +1.624816,.4853948 +1.624816,.4853948 +1.624816,.4853948 +1.624816,.4853948 +2.455732,.898425 +2.455732,.898425 +2.455732,.898425 +2.455732,.898425 +2.455732,.898425 +2.167658,.7736474 +2.167658,.7736474 +2.167658,.7736474 +2.167658,.7736474 +2.167658,.7736474 +2.297298,.8317336 +2.297298,.8317336 +2.297298,.8317336 +2.297298,.8317336 +2.297298,.8317336 +2.297298,.8317336 +2.297298,.8317336 +2.297298,.8317336 +2.297298,.8317336 +2.297298,.8317336 +1.924858,.6548522 +1.924858,.6548522 +1.924858,.6548522 +1.924858,.6548522 +1.924858,.6548522 +1.715065,.5394512 +1.715065,.5394512 +1.715065,.5394512 +1.715065,.5394512 +1.715065,.5394512 +1.800674,.5881608 +1.800674,.5881608 +1.800674,.5881608 +1.800674,.5881608 +1.800674,.5881608 +2.466049,.9026173 +2.466049,.9026173 +2.466049,.9026173 +4.158132,1.425066 +4.158132,1.425066 +4.158132,1.425066 +3.622643,1.287204 +3.622643,1.287204 +3.622643,1.287204 +3.802987,1.335787 +3.802987,1.335787 +3.802987,1.335787 +2.553862,.9376066 +2.553862,.9376066 +2.553862,.9376066 +2.866259,1.053008 +2.866259,1.053008 +2.866259,1.053008 +4.548981,1.514903 +4.548981,1.514903 +4.548981,1.514903 +4.548981,1.514903 +4.548981,1.514903 +1.784458,.5791149 +1.784458,.5791149 +1.784458,.5791149 +1.570005,.4510788 +1.570005,.4510788 +1.570005,.4510788 +2.603844,.9569889 +2.603844,.9569889 +2.603844,.9569889 +3.268666,1.184382 +3.268666,1.184382 +3.268666,1.184382 +3.268666,1.184382 +3.268666,1.184382 +2.91241,1.068981 +2.91241,1.068981 +2.91241,1.068981 +2.91241,1.068981 +2.91241,1.068981 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.857508,1.04995 +2.857508,1.04995 +2.857508,1.04995 +2.248026,.8100526 +2.248026,.8100526 +2.248026,.8100526 +1.762053,.5664798 +1.762053,.5664798 +1.762053,.5664798 +2.248026,.8100526 +2.248026,.8100526 +2.248026,.8100526 +2.248026,.8100526 +2.248026,.8100526 +2.248026,.8100526 +2.248026,.8100526 +2.248026,.8100526 +2.248026,.8100526 +2.248026,.8100526 +2.248026,.8100526 +2.248026,.8100526 +2.922355,1.07239 +2.922355,1.07239 +2.922355,1.07239 +2.248026,.8100526 +2.248026,.8100526 +2.248026,.8100526 +2.277171,.8229341 +2.277171,.8229341 +2.277171,.8229341 +2.277171,.8229341 +2.277171,.8229341 +2.564412,.9417292 +2.564412,.9417292 +2.564412,.9417292 +2.564412,.9417292 +2.564412,.9417292 +3.523069,1.259333 +3.523069,1.259333 +3.523069,1.259333 +1.413932,.3463747 +1.413932,.3463747 +1.413932,.3463747 +1.987209,.686731 +1.987209,.686731 +1.987209,.686731 +1.586945,.4618111 +1.586945,.4618111 +1.586945,.4618111 +1.586945,.4618111 +1.586945,.4618111 +4.139883,1.420668 +4.139883,1.420668 +4.139883,1.420668 +4.139883,1.420668 +4.139883,1.420668 +1.797845,.5865887 +1.797845,.5865887 +1.797845,.5865887 +1.797845,.5865887 +1.797845,.5865887 +1.820705,.5992238 +1.820705,.5992238 +1.820705,.5992238 +1.820705,.5992238 +1.820705,.5992238 +3.613298,1.284621 +3.613298,1.284621 +3.613298,1.284621 +2.491817,.9130121 +2.491817,.9130121 +2.491817,.9130121 +3.980488,1.381405 +3.980488,1.381405 +3.980488,1.381405 +1.984317,.685275 +1.984317,.685275 +1.984317,.685275 +1.984317,.685275 +1.984317,.685275 +2.386458,.8698102 +2.386458,.8698102 +2.386458,.8698102 +12.67564,2.539682 +12.67564,2.539682 +12.67564,2.539682 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +4.475814,1.498688 +4.475814,1.498688 +4.475814,1.498688 +4.169617,1.427824 +4.169617,1.427824 +4.169617,1.427824 +2.668686,.9815863 +2.899455,1.064523 +2.899455,1.064523 +2.899455,1.064523 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.070025,.7275605 +2.070025,.7275605 +2.070025,.7275605 +2.237689,.8054437 +2.237689,.8054437 +2.237689,.8054437 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +29.49241,3.384133 +29.49241,3.384133 +29.49241,3.384133 +29.49241,3.384133 +29.49241,3.384133 +3.747118,1.320987 +3.747118,1.320987 +3.747118,1.320987 +3.747118,1.320987 +3.887028,1.357645 +3.887028,1.357645 +3.887028,1.357645 +3.887028,1.357645 +3.887028,1.357645 +2.808736,1.032735 +2.808736,1.032735 +2.808736,1.032735 +2.808736,1.032735 +2.808736,1.032735 +3.047658,1.114373 +3.047658,1.114373 +3.047658,1.114373 +3.217952,1.168745 +3.217952,1.168745 +3.217952,1.168745 +3.217952,1.168745 +3.217952,1.168745 +4.067146,1.402941 +4.067146,1.402941 +4.067146,1.402941 +4.067146,1.402941 +1.823357,.6006792 +1.823357,.6006792 +1.823357,.6006792 +2.326237,.844252 +2.326237,.844252 +2.326237,.844252 +1.823357,.6006792 +1.823357,.6006792 +1.823357,.6006792 +3.093811,1.129404 +3.093811,1.129404 +3.093811,1.129404 +3.093811,1.129404 +3.093811,1.129404 +3.472257,1.244805 +3.472257,1.244805 +3.472257,1.244805 +3.472257,1.244805 +3.472257,1.244805 +3.549534,1.266816 +3.549534,1.266816 +3.549534,1.266816 +3.549534,1.266816 +3.549534,1.266816 +3.566238,1.271511 +3.566238,1.271511 +3.566238,1.271511 +1.824622,.6013729 +1.824622,.6013729 +1.824622,.6013729 +3.016226,1.104006 +3.016226,1.104006 +3.016226,1.104006 +3.016226,1.104006 +3.016226,1.104006 +3.016226,1.104006 +3.016226,1.104006 +3.016226,1.104006 +2.929503,1.074833 +2.929503,1.074833 +2.929503,1.074833 +2.929503,1.074833 +2.929503,1.074833 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +1.989171,.6877179 +1.989171,.6877179 +1.989171,.6877179 +3.611583,1.284146 +3.611583,1.284146 +3.611583,1.284146 +3.128846,1.140664 +3.128846,1.140664 +3.128846,1.140664 +2.48831,.9116039 +2.48831,.9116039 +2.48831,.9116039 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +2.319593,.8413916 +2.319593,.8413916 +2.319593,.8413916 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +3.664599,1.298719 +3.664599,1.298719 +3.664599,1.298719 +2.261404,.815986 +2.261404,.815986 +2.261404,.815986 +2.040551,.7132201 +2.040551,.7132201 +2.040551,.7132201 +2.604909,.9573976 +2.604909,.9573976 +2.604909,.9573976 +2.604909,.9573976 +2.604909,.9573976 +2.334923,.8479791 +2.334923,.8479791 +2.334923,.8479791 +2.334923,.8479791 +2.334923,.8479791 +2.327737,.8448966 +2.327737,.8448966 +1.824532,.6013237 +1.824532,.6013237 +2.327737,.8448966 +2.327737,.8448966 +2.327737,.8448966 +2.327737,.8448966 +2.327737,.8448966 +2.327737,.8448966 +2.327737,.8448966 +2.327737,.8448966 +2.327737,.8448966 +2.327737,.8448966 +2.327737,.8448966 +2.327737,.8448966 +4.036938,1.395486 +4.036938,1.395486 +4.036938,1.395486 +4.036938,1.395486 +2.306013,.8355199 +2.306013,.8355199 +2.306013,.8355199 +2.306013,.8355199 +3.71137,1.311401 +3.71137,1.311401 +3.71137,1.311401 +3.71137,1.311401 +3.71137,1.311401 +3.71137,1.311401 +1.775131,.5738741 +1.775131,.5738741 +1.775131,.5738741 +1.775131,.5738741 +1.775131,.5738741 +1.775131,.5738741 +2.215405,.7954352 +2.215405,.7954352 +2.215405,.7954352 +2.054779,.7201681 +2.054779,.7201681 +2.054779,.7201681 +1.625754,.4859719 +1.625754,.4859719 +1.625754,.4859719 +1.824622,.6013729 +1.824622,.6013729 +1.824622,.6013729 +2.662451,.979247 +2.662451,.979247 +2.662451,.979247 +1.824622,.6013729 +1.824622,.6013729 +1.824622,.6013729 +4.01608,1.390306 +4.01608,1.390306 +4.01608,1.390306 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +3.217952,1.168745 +3.217952,1.168745 +3.217952,1.168745 +4.169617,1.427824 +4.169617,1.427824 +4.169617,1.427824 +4.169617,1.427824 +4.169617,1.427824 +1.771114,.5716084 +1.771114,.5716084 +1.771114,.5716084 +1.771114,.5716084 +1.771114,.5716084 +1.771114,.5716084 +1.771114,.5716084 +1.771114,.5716084 +1.771114,.5716084 +1.776894,.5748668 +1.776894,.5748668 +1.776894,.5748668 +1.388238,.3280356 +1.388238,.3280356 +1.388238,.3280356 +2.014463,.7003528 +2.014463,.7003528 +2.014463,.7003528 +4.01608,1.390306 +4.01608,1.390306 +4.01608,1.390306 +3.671193,1.300517 +3.671193,1.300517 +3.671193,1.300517 +3.671193,1.300517 +3.671193,1.300517 +2.471648,.9048851 +2.471648,.9048851 +2.471648,.9048851 +2.471648,.9048851 +2.471648,.9048851 +4.990189,1.607474 +4.990189,1.607474 +4.990189,1.607474 +4.990189,1.607474 +4.990189,1.607474 +6.542554,1.878328 +6.542554,1.878328 +6.542554,1.878328 +6.542554,1.878328 +6.542554,1.878328 +6.307061,1.84167 +6.307061,1.84167 +6.307061,1.84167 +2.403063,.876744 +2.403063,.876744 +2.403063,.876744 +1.589968,.4637138 +1.589968,.4637138 +1.589968,.4637138 +2.403063,.876744 +2.403063,.876744 +2.403063,.876744 +3.596795,1.280043 +3.596795,1.280043 +3.596795,1.280043 +3.596795,1.280043 +3.596795,1.280043 +2.511975,.9210694 +2.511975,.9210694 +2.511975,.9210694 +2.511975,.9210694 +2.511975,.9210694 +7.99979,2.079415 +7.99979,2.079415 +7.99979,2.079415 +7.99979,2.079415 +7.99979,2.079415 +3.563227,1.270667 +3.563227,1.270667 +3.563227,1.270667 +3.563227,1.270667 +3.563227,1.270667 +2.306013,.8355199 +2.306013,.8355199 +2.306013,.8355199 +4.253063,1.447639 +4.253063,1.447639 +4.253063,1.447639 +4.253063,1.447639 +4.253063,1.447639 +2.45715,.8990021 +2.45715,.8990021 +2.45715,.8990021 +2.45715,.8990021 +2.45715,.8990021 +3.224301,1.170716 +3.224301,1.170716 +3.224301,1.170716 +3.224301,1.170716 +3.224301,1.170716 +2.02898,.7075331 +2.02898,.7075331 +2.02898,.7075331 +2.02898,.7075331 +2.02898,.7075331 +2.02898,.7075331 +2.02898,.7075331 +2.02898,.7075331 +2.02898,.7075331 +2.02898,.7075331 +2.223934,.7992778 +2.223934,.7992778 +2.223934,.7992778 +2.399705,.8753458 +2.399705,.8753458 +2.399705,.8753458 +2.0573,.7213946 +2.0573,.7213946 +2.0573,.7213946 +3.631849,1.289742 +3.631849,1.289742 +3.631849,1.289742 +1.675936,.516372 +1.675936,.516372 +1.675936,.516372 +4.025428,1.392631 +4.025428,1.392631 +4.025428,1.392631 +4.025428,1.392631 +4.025428,1.392631 +2.237689,.8054437 +2.237689,.8054437 +2.237689,.8054437 +2.237689,.8054437 +2.237689,.8054437 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.24171,.8072392 +2.24171,.8072392 +2.24171,.8072392 +2.500918,.9166577 +2.500918,.9166577 +2.500918,.9166577 +1.565594,.4482653 +1.565594,.4482653 +2.24171,.8072392 +2.24171,.8072392 +2.24171,.8072392 +2.24171,.8072392 +2.24171,.8072392 +2.24171,.8072392 +2.568038,.9431421 +2.568038,.9431421 +2.568038,.9431421 +2.301874,.8337236 +2.301874,.8337236 +2.301874,.8337236 +1.607612,.4747497 +1.607612,.4747497 +1.607612,.4747497 +2.428297,.8871901 +2.428297,.8871901 +2.428297,.8871901 +3.476979,1.246164 +3.476979,1.246164 +3.476979,1.246164 +2.428297,.8871901 +2.428297,.8871901 +2.428297,.8871901 +4.850788,1.579141 +4.850788,1.579141 +3.440189,1.235526 +3.440189,1.235526 +3.365051,1.213443 +3.365051,1.213443 +3.365051,1.213443 +3.365051,1.213443 +3.365051,1.213443 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.298624,.8323107 +2.298624,.8323107 +2.298624,.8323107 +2.298624,.8323107 +2.298624,.8323107 +1.801713,.5887379 +1.801713,.5887379 +1.801713,.5887379 +1.801713,.5887379 +1.801713,.5887379 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +1.748245,.5586125 +1.748245,.5586125 +1.748245,.5586125 +2.361979,.8595001 +2.361979,.8595001 +2.361979,.8595001 +2.274084,.8215775 +2.274084,.8215775 +2.274084,.8215775 +2.274084,.8215775 +2.274084,.8215775 +2.274084,.8215775 +2.274084,.8215775 +2.274084,.8215775 +2.274084,.8215775 +2.274084,.8215775 +3.598774,1.280593 +3.598774,1.280593 +3.598774,1.280593 +3.598774,1.280593 +3.598774,1.280593 +2.274084,.8215775 +2.274084,.8215775 +2.274084,.8215775 +2.274084,.8215775 +2.274084,.8215775 +3.683861,1.303961 +3.683861,1.303961 +3.683861,1.303961 +2.306126,.8355691 +2.306126,.8355691 +2.306126,.8355691 +1.819728,.598687 +1.819728,.598687 +1.819728,.598687 +1.945226,.6653784 +1.945226,.6653784 +1.945226,.6653784 +1.606261,.4739093 +1.606261,.4739093 +1.606261,.4739093 +3.242997,1.176498 +3.242997,1.176498 +3.242997,1.176498 +1.819728,.598687 +1.819728,.598687 +1.819728,.598687 +4.028799,1.393468 +4.028799,1.393468 +4.028799,1.393468 +1.76163,.5662397 +1.76163,.5662397 +1.76163,.5662397 +2.272469,.8208668 +2.272469,.8208668 +2.272469,.8208668 +1.626685,.4865444 +1.626685,.4865444 +1.626685,.4865444 +2.395661,.8736594 +2.395661,.8736594 +2.395661,.8736594 +2.41823,.883036 +2.41823,.883036 +2.41823,.883036 +2.030142,.7081055 +2.030142,.7081055 +2.030142,.7081055 +1.577508,.4558465 +1.577508,.4558465 +2.104544,.744099 +2.104544,.744099 +2.104544,.744099 +2.104544,.744099 +2.104544,.744099 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +2.48831,.9116039 +2.48831,.9116039 +2.48831,.9116039 +2.48831,.9116039 +2.48831,.9116039 +2.857508,1.04995 +2.857508,1.04995 +2.857508,1.04995 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +3.217952,1.168745 +3.217952,1.168745 +3.217952,1.168745 +2.676463,.9844963 +2.676463,.9844963 +2.676463,.9844963 +1.802622,.589242 +1.802622,.589242 +1.802622,.589242 +1.802622,.589242 +1.802622,.589242 +1.819604,.5986187 +1.819604,.5986187 +1.819604,.5986187 +1.819604,.5986187 +1.819604,.5986187 +1.819604,.5986187 +1.819604,.5986187 +1.819604,.5986187 +1.819604,.5986187 +1.819604,.5986187 +1.557702,.4432115 +1.557702,.4432115 +1.557702,.4432115 +3.664599,1.298719 +3.664599,1.298719 +3.664599,1.298719 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +1.968767,.6774077 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +1.748245,.5586125 +1.748245,.5586125 +1.748245,.5586125 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +1.748245,.5586125 +3.020459,1.105409 +3.020459,1.105409 +3.020459,1.105409 +3.020459,1.105409 +3.020459,1.105409 +2.301808,.8336949 +2.301808,.8336949 +2.301808,.8336949 +2.301808,.8336949 +2.301808,.8336949 +2.301808,.8336949 +2.301808,.8336949 +2.301808,.8336949 +2.301808,.8336949 +2.301808,.8336949 +1.904422,.6441785 +1.904422,.6441785 +1.904422,.6441785 +1.904422,.6441785 +1.904422,.6441785 +4.29607,1.457701 +4.29607,1.457701 +4.29607,1.457701 +2.859518,1.050653 +2.859518,1.050653 +2.859518,1.050653 +5.42977,1.691897 +5.42977,1.691897 +5.42977,1.691897 +1.647615,.4993289 +1.647615,.4993289 +1.647615,.4993289 +1.647615,.4993289 +1.647615,.4993289 +2.005728,.6960073 +2.005728,.6960073 +2.005728,.6960073 +2.005728,.6960073 +2.005728,.6960073 +1.255602,.2276149 +1.255602,.2276149 +1.255602,.2276149 +1.255602,.2276149 +1.255602,.2276149 +1.797845,.5865887 +1.797845,.5865887 +1.797845,.5865887 +1.797845,.5865887 +1.797845,.5865887 +3.693543,1.306586 +3.693543,1.306586 +3.693543,1.306586 +2.248026,.8100526 +2.248026,.8100526 +2.248026,.8100526 +2.507964,.9194711 +2.507964,.9194711 +2.507964,.9194711 +3.528809,1.26096 +3.528809,1.26096 +3.528809,1.26096 +3.528809,1.26096 +3.528809,1.26096 +3.528809,1.26096 +2.379905,.8670604 +2.379905,.8670604 +2.379905,.8670604 +2.379905,.8670604 +2.379905,.8670604 +2.379905,.8670604 +2.379905,.8670604 +2.379905,.8670604 +2.379905,.8670604 +2.379905,.8670604 +3.184945,1.158435 +3.184945,1.158435 +3.184945,1.158435 +1.589968,.4637138 +1.589968,.4637138 +1.589968,.4637138 +1.784458,.5791149 +1.784458,.5791149 +1.784458,.5791149 +2.298477,.8322469 +2.298477,.8322469 +2.298477,.8322469 +5.425708,1.691148 +5.425708,1.691148 +5.425708,1.691148 +2.517977,.9234558 +2.517977,.9234558 +2.517977,.9234558 +2.420931,.8841521 +2.420931,.8841521 +2.420931,.8841521 +2.8781,1.05713 +2.8781,1.05713 +2.8781,1.05713 +4.546378,1.514331 +4.546378,1.514331 +4.546378,1.514331 +2.555399,.9382083 +2.555399,.9382083 +2.555399,.9382083 +2.597019,.9543642 +2.597019,.9543642 +2.597019,.9543642 +1.824622,.6013729 +1.824622,.6013729 +1.824622,.6013729 +5.863721,1.768785 +5.863721,1.768785 +5.863721,1.768785 +5.652663,1.732127 +5.652663,1.732127 +5.652663,1.732127 +2.93099,1.07534 +2.93099,1.07534 +2.93099,1.07534 +1.416046,.3478688 +1.416046,.3478688 +1.416046,.3478688 +2.247858,.8099776 +2.247858,.8099776 +2.247858,.8099776 +2.247858,.8099776 +2.247858,.8099776 +3.388149,1.220284 +3.388149,1.220284 +3.388149,1.220284 +3.388149,1.220284 +3.388149,1.220284 +1.678155,.5176951 +1.678155,.5176951 +1.678155,.5176951 +1.678155,.5176951 +2.247858,.8099776 +2.247858,.8099776 +2.247858,.8099776 +2.247858,.8099776 +2.247858,.8099776 +1.761921,.5664048 +1.761921,.5664048 +1.761921,.5664048 +1.761921,.5664048 +1.761921,.5664048 +2.247858,.8099776 +2.247858,.8099776 +2.247858,.8099776 +2.247858,.8099776 +2.247858,.8099776 +4.449225,1.49273 +4.449225,1.49273 +4.449225,1.49273 +2.266468,.8182226 +2.266468,.8182226 +2.266468,.8182226 +3.139278,1.143993 +3.139278,1.143993 +3.139278,1.143993 +2.460821,.9004952 +2.460821,.9004952 +2.460821,.9004952 +2.243675,.808115 +2.243675,.808115 +2.243675,.808115 +3.193465,1.161106 +3.193465,1.161106 +3.193465,1.161106 +3.238849,1.175218 +3.238849,1.175218 +3.238849,1.175218 +3.589396,1.277984 +3.589396,1.277984 +3.589396,1.277984 +1.873549,.6278344 +1.873549,.6278344 +1.873549,.6278344 +2.821631,1.037315 +2.821631,1.037315 +2.821631,1.037315 +1.989171,.6877179 +1.989171,.6877179 +1.989171,.6877179 +2.327173,.8446541 +2.327173,.8446541 +2.327173,.8446541 +2.327173,.8446541 +2.327173,.8446541 +2.305454,.8352774 +2.305454,.8352774 +2.305454,.8352774 +2.305454,.8352774 +2.305454,.8352774 +2.054179,.7198764 +2.054179,.7198764 +2.054179,.7198764 +2.054179,.7198764 +2.054179,.7198764 +1.769963,.5709586 +1.769963,.5709586 +1.769963,.5709586 +2.229765,.8018964 +2.229765,.8018964 +2.229765,.8018964 +2.617731,.962308 +2.617731,.962308 +2.617731,.962308 +3.725866,1.315299 +3.725866,1.315299 +3.3397,1.205881 +3.3397,1.205881 +4.038698,1.395922 +2.564412,.9417292 +2.564412,.9417292 +2.564412,.9417292 +2.02898,.7075331 +2.02898,.7075331 +2.02898,.7075331 +2.039237,.7125757 +2.039237,.7125757 +2.039237,.7125757 +1.605342,.4733369 +1.605342,.4733369 +1.605342,.4733369 +2.298624,.8323107 +2.298624,.8323107 +2.298624,.8323107 +1.801713,.5887379 +1.801713,.5887379 +1.801713,.5887379 +2.94746,1.080944 +2.94746,1.080944 +2.94746,1.080944 +2.94746,1.080944 +2.94746,1.080944 +2.94746,1.080944 +2.537764,.9312832 +2.537764,.9312832 +2.537764,.9312832 +7.258525,1.982177 +7.258525,1.982177 +7.258525,1.982177 +7.879891,2.064314 +7.879891,2.064314 +7.879891,2.064314 +2.817796,1.035955 +2.817796,1.035955 +2.817796,1.035955 +1.665129,.5099028 +1.665129,.5099028 +1.665129,.5099028 +3.773083,1.327892 +3.773083,1.327892 +3.773083,1.327892 +4.535882,1.51202 +4.535882,1.51202 +4.535882,1.51202 +4.535882,1.51202 +4.535882,1.51202 +2.530017,.9282261 +2.530017,.9282261 +2.530017,.9282261 +2.530017,.9282261 +2.530017,.9282261 +3.622629,1.2872 +3.622629,1.2872 +3.622629,1.2872 +3.622629,1.2872 +3.622629,1.2872 +1.576273,.4550635 +1.576273,.4550635 +1.576273,.4550635 +1.576273,.4550635 +1.576273,.4550635 +2.30532,.8352194 +2.02827,.7071834 +3.978158,1.380819 +3.978158,1.380819 +7.052769,1.95342 +7.052769,1.95342 +7.052769,1.95342 +1.8314,.6050808 +1.8314,.6050808 +1.8314,.6050808 +1.8314,.6050808 +1.8314,.6050808 +2.925523,1.073473 +2.925523,1.073473 +2.925523,1.073473 +2.925523,1.073473 +2.925523,1.073473 +1.847268,.6137081 +1.847268,.6137081 +1.847268,.6137081 +2.230788,.8023547 +2.230788,.8023547 +2.230788,.8023547 +1.997763,.6920279 +1.997763,.6920279 +1.997763,.6920279 +2.24683,.8095202 +2.24683,.8095202 +2.24683,.8095202 +3.386599,1.219826 +3.386599,1.219826 +3.386599,1.219826 +2.275398,.8221552 +2.275398,.8221552 +2.275398,.8221552 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +2.232493,.8031189 +2.232493,.8031189 +2.232493,.8031189 +2.232493,.8031189 +2.232493,.8031189 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +3.016226,1.104006 +3.016226,1.104006 +3.016226,1.104006 +2.014463,.7003528 +2.014463,.7003528 +2.014463,.7003528 +2.27661,.8226877 +2.27661,.8226877 +1.589968,.4637138 +1.589968,.4637138 +2.959514,1.085025 +2.959514,1.085025 +2.636953,.969624 +2.636953,.969624 +5.323934,1.672212 +5.323934,1.672212 +3.566238,1.271511 +3.566238,1.271511 +3.566238,1.271511 +1.780959,.5771517 +1.780959,.5771517 +1.780959,.5771517 +2.525963,.9266222 +2.525963,.9266222 +2.525963,.9266222 +11.20112,2.416013 +11.20112,2.416013 +11.20112,2.416013 +11.20112,2.416013 +11.20112,2.416013 +3.41961,1.229526 +3.41961,1.229526 +3.41961,1.229526 +3.41961,1.229526 +3.41961,1.229526 +3.387695,1.22015 +3.387695,1.22015 +3.387695,1.22015 +3.387695,1.22015 +3.387695,1.22015 +4.159443,1.425381 +4.159443,1.425381 +4.159443,1.425381 +2.539853,.9321062 +2.539853,.9321062 +2.539853,.9321062 +2.276729,.8227396 +2.276729,.8227396 +2.276729,.8227396 +2.072293,.7286559 +2.072293,.7286559 +2.072293,.7286559 +1.840175,.6098608 +1.840175,.6098608 +1.840175,.6098608 +2.441566,.8926399 +2.441566,.8926399 +2.441566,.8926399 +2.441566,.8926399 +2.441566,.8926399 +2.441566,.8926399 +2.104544,.744099 +2.104544,.744099 +2.104544,.744099 +2.104544,.744099 +2.104544,.744099 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +1.968767,.6774077 +1.968767,.6774077 +1.968767,.6774077 +1.968767,.6774077 +1.968767,.6774077 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +1.831042,.6048851 +1.831042,.6048851 +1.831042,.6048851 +1.982729,.684474 +1.982729,.684474 +1.982729,.684474 +2.365745,.861093 +2.365745,.861093 +2.365745,.861093 +3.59079,1.278372 +3.59079,1.278372 +3.59079,1.278372 +3.12977,1.14096 +3.12977,1.14096 +3.12977,1.14096 +2.779204,1.022164 +2.779204,1.022164 +2.779204,1.022164 +2.517977,.9234558 +2.517977,.9234558 +2.517977,.9234558 +3.044641,1.113383 +3.044641,1.113383 +3.044641,1.113383 +3.299028,1.193628 +3.299028,1.193628 +3.299028,1.193628 +4.462322,1.495669 +4.462322,1.495669 +4.462322,1.495669 +3.816586,1.339356 +3.816586,1.339356 +3.816586,1.339356 +4.298007,1.458152 +4.298007,1.458152 +4.298007,1.458152 +2.690587,.9897592 +2.690587,.9897592 +2.690587,.9897592 +1.804458,.59026 +1.804458,.59026 +1.804458,.59026 +2.083386,.7339945 +2.083386,.7339945 +2.083386,.7339945 +1.824622,.6013729 +1.824622,.6013729 +1.824622,.6013729 +2.054779,.7201681 +2.054779,.7201681 +2.054779,.7201681 +2.420931,.8841521 +2.420931,.8841521 +2.420931,.8841521 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.884428,1.059327 +3.131538,1.141524 +3.131538,1.141524 +3.131538,1.141524 +3.131538,1.141524 +3.131538,1.141524 +1.841046,.610334 +1.841046,.610334 +1.841046,.610334 +1.841046,.610334 +1.841046,.610334 +1.974956,.6805462 +1.974956,.6805462 +1.974956,.6805462 +1.974956,.6805462 +1.974956,.6805462 +1.841046,.610334 +1.841046,.610334 +1.841046,.610334 +1.841046,.610334 +1.841046,.610334 +1.841046,.610334 +1.841046,.610334 +1.841046,.610334 +1.841046,.610334 +1.841046,.610334 +1.841046,.610334 +1.841046,.610334 +1.841046,.610334 +1.841046,.610334 +1.841046,.610334 +1.841046,.610334 +1.841046,.610334 +1.841046,.610334 +1.841046,.610334 +1.841046,.610334 +1.841046,.610334 +1.841046,.610334 +1.841046,.610334 +1.841046,.610334 +1.841046,.610334 +1.841046,.610334 +1.841046,.610334 +1.841046,.610334 +1.841046,.610334 +1.841046,.610334 +1.789367,.5818621 +1.789367,.5818621 +1.789367,.5818621 +2.109877,.7466295 +2.109877,.7466295 +2.109877,.7466295 +7.200135,1.9741 +7.200135,1.9741 +7.200135,1.9741 +2.962099,1.085898 +2.962099,1.085898 +2.962099,1.085898 +2.962099,1.085898 +2.962099,1.085898 +2.821631,1.037315 +2.821631,1.037315 +2.821631,1.037315 +4.998094,1.609057 +4.998094,1.609057 +4.998094,1.609057 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +3.128846,1.140664 +3.128846,1.140664 +3.128846,1.140664 +3.523715,1.259516 +3.523715,1.259516 +3.523715,1.259516 +4.896616,1.588544 +4.896616,1.588544 +4.896616,1.588544 +3.149908,1.147373 +3.149908,1.147373 +3.149908,1.147373 +3.523715,1.259516 +3.523715,1.259516 +3.523715,1.259516 +2.202779,.7897196 +2.202779,.7897196 +2.202779,.7897196 +3.523715,1.259516 +3.523715,1.259516 +3.523715,1.259516 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +3.144956,1.1458 +3.144956,1.1458 +3.144956,1.1458 +2.361979,.8595001 +2.361979,.8595001 +2.361979,.8595001 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.027928,.7070145 +2.027928,.7070145 +2.027928,.7070145 +1.800779,.5882193 +1.800779,.5882193 +1.800779,.5882193 +3.192553,1.160821 +3.192553,1.160821 +3.192553,1.160821 +2.297432,.8317922 +2.297432,.8317922 +2.297432,.8317922 +1.746877,.5578295 +1.746877,.5578295 +1.746877,.5578295 +1.983911,.6850699 +1.983911,.6850699 +1.983911,.6850699 +3.169147,1.153462 +3.169147,1.153462 +3.169147,1.153462 +1.557702,.4432115 +1.557702,.4432115 +1.557702,.4432115 +2.209594,.7928087 +2.209594,.7928087 +2.209594,.7928087 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +2.005728,.6960073 +2.005728,.6960073 +2.005728,.6960073 +1.903898,.6439034 +1.903898,.6439034 +1.903898,.6439034 +1.921834,.6532801 +1.921834,.6532801 +1.921834,.6532801 +6.126658,1.812649 +6.126658,1.812649 +6.126658,1.812649 +2.9535,1.082991 +2.9535,1.082991 +2.9535,1.082991 +2.253798,.8126168 +2.253798,.8126168 +2.253798,.8126168 +3.132056,1.14169 +3.132056,1.14169 +3.132056,1.14169 +3.132056,1.14169 +3.132056,1.14169 +2.781234,1.022895 +2.781234,1.022895 +2.781234,1.022895 +2.781234,1.022895 +2.781234,1.022895 +3.132056,1.14169 +3.132056,1.14169 +3.132056,1.14169 +3.132056,1.14169 +3.132056,1.14169 +3.548295,1.266467 +3.548295,1.266467 +3.548295,1.266467 +3.548295,1.266467 +3.548295,1.266467 +4.005817,1.387748 +4.005817,1.387748 +3.538839,1.263799 +3.538839,1.263799 +3.538839,1.263799 +3.538839,1.263799 +3.538839,1.263799 +3.123709,1.139021 +3.123709,1.139021 +3.123709,1.139021 +3.123709,1.139021 +3.123709,1.139021 +5.600268,1.722815 +5.600268,1.722815 +5.600268,1.722815 +5.600268,1.722815 +5.600268,1.722815 +1.756513,.5633303 +1.756513,.5633303 +1.756513,.5633303 +2.821631,1.037315 +2.821631,1.037315 +2.821631,1.037315 +2.821631,1.037315 +2.821631,1.037315 +2.821631,1.037315 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +3.114871,1.136188 +3.114871,1.136188 +3.114871,1.136188 +4.66385,1.539841 +4.66385,1.539841 +4.66385,1.539841 +2.564407,.9417273 +2.772329,1.019688 +2.772329,1.019688 +2.772329,1.019688 +2.772329,1.019688 +2.772329,1.019688 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.77579,1.020936 +2.77579,1.020936 +2.77579,1.020936 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +1.968767,.6774077 +1.968767,.6774077 +1.968767,.6774077 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +1.984317,.685275 +1.984317,.685275 +1.984317,.685275 +3.07837,1.1244 +3.07837,1.1244 +3.07837,1.1244 +4.781295,1.564712 +4.781295,1.564712 +4.781295,1.564712 +2.435627,.890204 +2.435627,.890204 +2.435627,.890204 +2.231383,.8026214 +2.259755,.8152564 +2.231383,.8026214 +2.259755,.8152564 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +1.801713,.5887379 +1.801713,.5887379 +1.801713,.5887379 +1.801713,.5887379 +1.801713,.5887379 +3.241141,1.175925 +3.241141,1.175925 +3.241141,1.175925 +3.241141,1.175925 +3.241141,1.175925 +1.761729,.5662959 +1.761729,.5662959 +1.761729,.5662959 +2.254948,.8131271 +2.254948,.8131271 +2.254948,.8131271 +1.761729,.5662959 +1.761729,.5662959 +1.74774,.5583236 +1.74774,.5583236 +1.74774,.5583236 +1.74774,.5583236 +1.74774,.5583236 +2.208955,.7925197 +2.208955,.7925197 +2.208955,.7925197 +2.208955,.7925197 +2.208955,.7925197 +5.757807,1.750557 +5.757807,1.750557 +5.757807,1.750557 +3.690878,1.305864 +3.690878,1.305864 +3.690878,1.305864 +3.690878,1.305864 +3.690878,1.305864 +3.690878,1.305864 +2.434767,.889851 +2.434767,.889851 +2.434767,.889851 +3.679884,1.302881 +3.679884,1.302881 +3.679884,1.302881 +3.840522,1.345608 +3.840522,1.345608 +2.732596,1.005252 +2.732596,1.005252 +2.732596,1.005252 +1.803713,.5898471 +1.803713,.5898471 +1.803713,.5898471 +2.337136,.8489261 +2.337136,.8489261 +2.337136,.8489261 +4.005897,1.387767 +4.005897,1.387767 +4.005897,1.387767 +2.276392,.8225917 +2.276392,.8225917 +2.276392,.8225917 +1.984127,.6851789 +1.984127,.6851789 +1.984127,.6851789 +2.246884,.8095444 +2.246884,.8095444 +2.246884,.8095444 +2.246884,.8095444 +2.246884,.8095444 +2.225914,.8001677 +2.225914,.8001677 +2.225914,.8001677 +2.225914,.8001677 +2.225914,.8001677 +7.195349,1.973435 +7.195349,1.973435 +7.195349,1.973435 +3.603978,1.282038 +3.603978,1.282038 +3.603978,1.282038 +3.930997,1.368893 +3.930997,1.368893 +3.930997,1.368893 +1.968199,.6771187 +1.968199,.6771187 +1.968199,.6771187 +2.229765,.8018964 +2.229765,.8018964 +2.229765,.8018964 +6.470748,1.867292 +6.470748,1.867292 +6.470748,1.867292 +2.845982,1.045908 +2.845982,1.045908 +2.845982,1.045908 +1.311742,.2713559 +1.311742,.2713559 +1.311742,.2713559 +1.714995,.53941 +1.714995,.53941 +1.714995,.53941 +1.940797,.6630988 +1.940797,.6630988 +1.940797,.6630988 +2.452959,.8972949 +2.452959,.8972949 +2.452959,.8972949 +4.880743,1.585297 +4.880743,1.585297 +4.880743,1.585297 +3.314088,1.198182 +3.314088,1.198182 +3.314088,1.198182 +4.068218,1.403205 +4.068218,1.403205 +4.068218,1.403205 +2.298624,.8323107 +2.298624,.8323107 +2.298624,.8323107 +1.801713,.5887379 +1.801713,.5887379 +1.801713,.5887379 +2.02898,.7075331 +2.02898,.7075331 +2.02898,.7075331 +2.298624,.8323107 +2.298624,.8323107 +2.298624,.8323107 +2.298624,.8323107 +2.298624,.8323107 +2.298624,.8323107 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +2.48831,.9116039 +2.48831,.9116039 +2.48831,.9116039 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.597019,.9543642 +2.597019,.9543642 +2.597019,.9543642 +2.597019,.9543642 +2.597019,.9543642 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +1.824622,.6013729 +1.824622,.6013729 +1.824622,.6013729 +1.824622,.6013729 +1.824622,.6013729 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +3.39669,1.222802 +3.39669,1.222802 +3.39669,1.222802 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.209594,.7928087 +2.209594,.7928087 +2.209594,.7928087 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +1.893898,.6386374 +1.893898,.6386374 +1.893898,.6386374 +2.145591,.763415 +2.145591,.763415 +2.145591,.763415 +3.52524,1.259949 +3.52524,1.259949 +3.52524,1.259949 +12.96154,2.561987 +12.96154,2.561987 +12.96154,2.561987 +3.324866,1.201429 +3.324866,1.201429 +3.324866,1.201429 +2.460936,.9005419 +2.460936,.9005419 +2.460936,.9005419 +4.412032,1.484335 +4.412032,1.484335 +4.412032,1.484335 +2.237043,.8051547 +2.237043,.8051547 +2.237043,.8051547 +3.264246,1.183029 +3.264246,1.183029 +3.264246,1.183029 +5.215105,1.651559 +5.215105,1.651559 +5.215105,1.651559 +5.215105,1.651559 +5.215105,1.651559 +2.48831,.9116039 +2.48831,.9116039 +2.48831,.9116039 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +2.635368,.9690229 +2.635368,.9690229 +2.635368,.9690229 +2.362226,.8596044 +2.362226,.8596044 +2.362226,.8596044 +2.34018,.8502278 +2.34018,.8502278 +2.34018,.8502278 +2.362226,.8596044 +2.362226,.8596044 +2.362226,.8596044 +2.014463,.7003528 +2.014463,.7003528 +2.014463,.7003528 +6.032481,1.797158 +6.032481,1.797158 +6.032481,1.797158 +2.054618,.7200898 +2.054618,.7200898 +2.054618,.7200898 +2.327669,.8448675 +2.327669,.8448675 +2.327669,.8448675 +2.235938,.8046607 +2.235938,.8046607 +2.235938,.8046607 +3.016281,1.104025 +3.016281,1.104025 +3.016281,1.104025 +5.375414,1.681836 +5.375414,1.681836 +5.375414,1.681836 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +9.489471,2.250183 +9.489471,2.250183 +9.489471,2.250183 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +4.416632,1.485377 +4.416632,1.485377 +4.416632,1.485377 +4.416632,1.485377 +4.416632,1.485377 +3.935258,1.369976 +3.935258,1.369976 +3.935258,1.369976 +3.935258,1.369976 +3.935258,1.369976 +2.730132,1.00435 +2.730132,1.00435 +2.730132,1.00435 +2.730132,1.00435 +2.730132,1.00435 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.054779,.7201681 +2.054779,.7201681 +2.054779,.7201681 +2.054779,.7201681 +2.054779,.7201681 +2.054779,.7201681 +4.307141,1.460274 +4.307141,1.460274 +4.307141,1.460274 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +2.014463,.7003528 +2.014463,.7003528 +2.014463,.7003528 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +4.222634,1.440459 +4.222634,1.440459 +4.222634,1.440459 +1.801376,.5885507 +1.801376,.5885507 +1.801376,.5885507 +1.605042,.4731497 +1.605042,.4731497 +1.605042,.4731497 +5.373893,1.681553 +5.373893,1.681553 +5.373893,1.681553 +2.327193,.8446629 +2.327193,.8446629 +2.327193,.8446629 +2.305474,.8352863 +2.305474,.8352863 +2.305474,.8352863 +1.572293,.4525348 +1.572293,.4525348 +1.572293,.4525348 +1.803894,.5899475 +1.803894,.5899475 +1.803894,.5899475 +1.803894,.5899475 +1.803894,.5899475 +1.803894,.5899475 +3.321893,1.200535 +3.321893,1.200535 +3.321893,1.200535 +3.9492,1.373513 +3.9492,1.373513 +3.9492,1.373513 +2.819475,1.036551 +2.819475,1.036551 +2.819475,1.036551 +1.99224,.6892597 +1.99224,.6892597 +1.99224,.6892597 +5.429204,1.691793 +5.429204,1.691793 +5.429204,1.691793 +3.430743,1.232777 +3.430743,1.232777 +3.430743,1.232777 +2.689093,.9892041 +2.689093,.9892041 +2.689093,.9892041 +3.430743,1.232777 +3.430743,1.232777 +3.430743,1.232777 +3.237141,1.174691 +3.237141,1.174691 +3.237141,1.174691 +3.557537,1.269068 +3.557537,1.269068 +3.557537,1.269068 +2.121167,.7519663 +2.121167,.7519663 +2.121167,.7519663 +2.849472,1.047134 +2.849472,1.047134 +2.849472,1.047134 +1.589374,.4633402 +1.589374,.4633402 +1.589374,.4633402 +2.999762,1.098533 +2.999762,1.098533 +2.999762,1.098533 +2.999762,1.098533 +2.999762,1.098533 +2.999762,1.098533 +2.999762,1.098533 +2.999762,1.098533 +2.999762,1.098533 +2.999762,1.098533 +2.999762,1.098533 +2.999762,1.098533 +2.999762,1.098533 +2.999762,1.098533 +2.999762,1.098533 +3.668691,1.299835 +3.668691,1.299835 +3.668691,1.299835 +3.668691,1.299835 +3.668691,1.299835 +3.340976,1.206263 +3.340976,1.206263 +3.340976,1.206263 +3.340976,1.206263 +3.340976,1.206263 +2.857508,1.04995 +2.857508,1.04995 +2.857508,1.04995 +2.857508,1.04995 +2.857508,1.04995 +1.459919,.3783807 +1.459919,.3783807 +1.459919,.3783807 +3.245723,1.177338 +3.245723,1.177338 +3.245723,1.177338 +3.245723,1.177338 +3.245723,1.177338 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +1.820705,.5992238 +1.820705,.5992238 +1.820705,.5992238 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +2.819008,1.036385 +2.819008,1.036385 +2.819008,1.036385 +2.315687,.8397066 +2.315687,.8397066 +2.315687,.8397066 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +4.01608,1.390306 +4.01608,1.390306 +4.01608,1.390306 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.054779,.7201681 +2.054779,.7201681 +2.054779,.7201681 +2.277171,.8229341 +2.277171,.8229341 +2.277171,.8229341 +3.642751,1.292739 +3.642751,1.292739 +3.642751,1.292739 +2.301874,.8337236 +2.301874,.8337236 +2.301874,.8337236 +2.568038,.9431421 +2.568038,.9431421 +2.568038,.9431421 +3.020546,1.105438 +3.020546,1.105438 +3.020546,1.105438 +3.601021,1.281217 +3.601021,1.281217 +3.601021,1.281217 +3.801036,1.335274 +3.801036,1.335274 +3.801036,1.335274 +3.801036,1.335274 +3.801036,1.335274 +3.801036,1.335274 +3.178596,1.15644 +3.178596,1.15644 +3.178596,1.15644 +3.765562,1.325897 +3.765562,1.325897 +3.765562,1.325897 +3.601021,1.281217 +3.601021,1.281217 +3.601021,1.281217 +2.822561,1.037645 +2.822561,1.037645 +2.822561,1.037645 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +3.195444,1.161726 +2.539559,.9319904 +2.539559,.9319904 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +3.613298,1.284621 +3.613298,1.284621 +3.613298,1.284621 +3.691463,1.306023 +3.691463,1.306023 +3.691463,1.306023 +3.691463,1.306023 +1.824622,.6013729 +1.824622,.6013729 +1.824622,.6013729 +2.273452,.8212993 +2.273452,.8212993 +2.273452,.8212993 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.616288,.9617567 +2.616288,.9617567 +2.616288,.9617567 +2.347248,.8532436 +2.347248,.8532436 +2.347248,.8532436 +2.347248,.8532436 +2.385319,.869333 +2.385319,.869333 +2.385319,.869333 +2.27661,.8226877 +2.27661,.8226877 +2.27661,.8226877 +3.727136,1.31564 +3.727136,1.31564 +3.727136,1.31564 +3.727136,1.31564 +2.999762,1.098533 +2.999762,1.098533 +2.999762,1.098533 +2.999762,1.098533 +2.419534,.883575 +2.419534,.883575 +2.419534,.883575 +2.419534,.883575 +2.367641,.861894 +2.367641,.861894 +2.367641,.861894 +2.367641,.861894 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +1.893506,.6384301 +1.893506,.6384301 +1.893506,.6384301 +1.893506,.6384301 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +3.669281,1.299996 +3.669281,1.299996 +3.669281,1.299996 +2.27661,.8226877 +2.27661,.8226877 +2.27661,.8226877 +2.537764,.9312832 +2.537764,.9312832 +2.537764,.9312832 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.999762,1.098533 +2.999762,1.098533 +2.999762,1.098533 +2.27661,.8226877 +2.27661,.8226877 +2.27661,.8226877 +2.254822,.8130709 +2.254822,.8130709 +2.254822,.8130709 +3.63229,1.289863 +3.63229,1.289863 +3.63229,1.289863 +4.547979,1.514683 +4.547979,1.514683 +4.547979,1.514683 +2.999762,1.098533 +2.999762,1.098533 +2.999762,1.098533 +2.274788,.8218867 +2.274788,.8218867 +2.274788,.8218867 +2.311371,.837841 +2.311371,.837841 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.501713,.9169757 +2.501713,.9169757 +2.501713,.9169757 +2.393914,.8729299 +2.393914,.8729299 +2.393914,.8729299 +2.349087,.8540267 +2.349087,.8540267 +2.349087,.8540267 +2.009593,.6979322 +2.009593,.6979322 +2.857508,1.04995 +2.857508,1.04995 +2.857508,1.04995 +1.820705,.5992238 +1.820705,.5992238 +1.820705,.5992238 +2.172873,.7760501 +2.172873,.7760501 +2.172873,.7760501 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.349087,.8540267 +2.349087,.8540267 +2.349087,.8540267 +3.5174,1.257722 +3.5174,1.257722 +2.643402,.9720669 +2.643402,.9720669 +2.643402,.9720669 +2.963984,1.086534 +2.963984,1.086534 +2.963984,1.086534 +3.194174,1.161329 +3.194174,1.161329 +3.194174,1.161329 +2.25877,.8148203 +2.999762,1.098533 +2.999762,1.098533 +2.586335,.9502417 +2.586335,.9502417 +2.586335,.9502417 +2.999762,1.098533 +2.999762,1.098533 +2.367641,.861894 +2.367641,.861894 +2.367641,.861894 +2.367641,.861894 +2.367641,.861894 +2.367641,.861894 +2.367641,.861894 +2.364333,.8604958 +2.364333,.8604958 +3.711207,1.311357 +3.711207,1.311357 +2.420931,.8841521 +2.420931,.8841521 +2.419435,.8835338 +2.419435,.8835338 +2.349087,.8540267 +2.349087,.8540267 +2.349087,.8540267 +3.815997,1.339202 +3.815997,1.339202 +2.367641,.861894 +2.349087,.8540267 +3.616007,1.28537 +2.349087,.8540267 +2.349087,.8540267 +2.404459,.8773252 +2.404459,.8773252 +1.893506,.6384301 +2.365745,.861093 +2.420478,.8839649 +2.36638,.8613615 +2.36638,.8613615 +1.893506,.6384301 +2.999762,1.098533 +2.365693,.8610711 +2.999762,1.098533 +2.999762,1.098533 +2.999762,1.098533 +2.999762,1.098533 +2.999762,1.098533 +3.734368,1.317579 +3.668431,1.299764 +1.893506,.6384301 +2.367205,.86171 +3.711207,1.311357 +2.348408,.8537377 +2.419435,.8835338 +2.253891,.812658 +2.253891,.812658 +2.253891,.812658 +2.008237,.697257 +2.008237,.697257 +2.008237,.697257 +2.380635,.8673673 +2.380635,.8673673 +2.380635,.8673673 +1.762053,.5664798 +1.762053,.5664798 +1.762053,.5664798 +2.386956,.870019 +2.386956,.870019 +2.386956,.870019 +2.10695,.7452413 +2.10695,.7452413 +2.10695,.7452413 +3.474844,1.24555 +3.474844,1.24555 +3.474844,1.24555 +3.474844,1.24555 +3.474844,1.24555 +2.457663,.8992108 +2.457663,.8992108 +2.457663,.8992108 +2.457663,.8992108 +2.457663,.8992108 +5.41471,1.689119 +5.41471,1.689119 +5.41471,1.689119 +5.41471,1.689119 +5.41471,1.689119 +3.067221,1.120772 +3.067221,1.120772 +3.067221,1.120772 +3.067221,1.120772 +3.067221,1.120772 +3.56455,1.271038 +3.56455,1.271038 +3.56455,1.271038 +3.56455,1.271038 +3.56455,1.271038 +3.297467,1.193154 +3.297467,1.193154 +3.297467,1.193154 +3.297467,1.193154 +3.297467,1.193154 +2.820295,1.036842 +2.820295,1.036842 +2.820295,1.036842 +2.820295,1.036842 +2.820295,1.036842 +3.56455,1.271038 +3.56455,1.271038 +3.56455,1.271038 +3.56455,1.271038 +3.56455,1.271038 +2.33288,.8471037 +2.33288,.8471037 +2.33288,.8471037 +2.33288,.8471037 +2.33288,.8471037 +2.33288,.8471037 +2.33288,.8471037 +2.33288,.8471037 +2.33288,.8471037 +2.33288,.8471037 +2.33288,.8471037 +2.33288,.8471037 +2.33288,.8471037 +2.33288,.8471037 +2.852907,1.048339 +2.961975,1.085856 +2.498561,.915715 +2.498561,.915715 +2.498561,.915715 +2.498561,.915715 +2.498561,.915715 +2.337363,.8490236 +2.337363,.8490236 +2.337363,.8490236 +2.337363,.8490236 +2.337363,.8490236 +3.326814,1.202015 +3.326814,1.202015 +3.326814,1.202015 +3.326814,1.202015 +3.326814,1.202015 +2.982007,1.092596 +2.982007,1.092596 +2.982007,1.092596 +2.982007,1.092596 +2.982007,1.092596 +3.105603,1.133208 +3.105603,1.133208 +3.105603,1.133208 +7.475399,2.011617 +7.475399,2.011617 +7.475399,2.011617 +2.821631,1.037315 +2.821631,1.037315 +2.821631,1.037315 +4.01608,1.390306 +4.01608,1.390306 +4.01608,1.390306 +3.291626,1.191382 +3.291626,1.191382 +3.291626,1.191382 +3.291626,1.191382 +3.291626,1.191382 +2.92293,1.072586 +2.92293,1.072586 +3.47525,1.245666 +3.47525,1.245666 +3.47525,1.245666 +3.74992,1.321734 +3.74992,1.321734 +3.74992,1.321734 +3.811864,1.338118 +3.811864,1.338118 +3.811864,1.338118 +3.811864,1.338118 +3.811864,1.338118 +3.260255,1.181805 +3.260255,1.181805 +3.260255,1.181805 +3.260255,1.181805 +3.260255,1.181805 +1.557252,.4429225 +1.557252,.4429225 +1.557252,.4429225 +2.487591,.9113149 +2.487591,.9113149 +2.487591,.9113149 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.882169,1.058543 +2.882169,1.058543 +2.882169,1.058543 +3.426004,1.231395 +3.426004,1.231395 +3.426004,1.231395 +2.006337,.6963109 +2.006337,.6963109 +2.006337,.6963109 +2.540256,.932265 +2.540256,.932265 +2.540256,.932265 +3.603343,1.281862 +3.603343,1.281862 +3.603343,1.281862 +3.82568,1.341736 +3.82568,1.341736 +3.82568,1.341736 +4.589765,1.523829 +4.589765,1.523829 +4.589765,1.523829 +2.781099,1.022846 +2.781099,1.022846 +2.781099,1.022846 +2.781099,1.022846 +2.781099,1.022846 +1.746877,.5578295 +1.746877,.5578295 +1.746877,.5578295 +5.099387,1.62912 +5.099387,1.62912 +5.099387,1.62912 +1.548706,.4374195 +1.548706,.4374195 +1.548706,.4374195 +2.326429,.8443343 +2.326429,.8443343 +2.326429,.8443343 +7.044934,1.952309 +7.044934,1.952309 +7.044934,1.952309 +7.044934,1.952309 +7.044934,1.952309 +2.898617,1.064234 +2.898617,1.064234 +2.898617,1.064234 +2.898617,1.064234 +2.898617,1.064234 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +2.51995,.9242389 +2.51995,.9242389 +2.51995,.9242389 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +1.801713,.5887379 +1.801713,.5887379 +1.801713,.5887379 +2.277171,.8229341 +2.277171,.8229341 +2.277171,.8229341 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.237689,.8054437 +2.237689,.8054437 +2.237689,.8054437 +1.968767,.6774077 +1.968767,.6774077 +1.968767,.6774077 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +7.124412,1.963527 +7.124412,1.963527 +7.124412,1.963527 +1.586945,.4618111 +1.586945,.4618111 +1.586945,.4618111 +1.409191,.3430159 +1.409191,.3430159 +1.409191,.3430159 +1.869732,.625795 +1.869732,.625795 +1.869732,.625795 +3.240956,1.175868 +3.240956,1.175868 +3.240956,1.175868 +2.327719,.8448887 +2.327719,.8448887 +2.327719,.8448887 +2.277042,.822877 +2.277042,.822877 +2.277042,.822877 +2.104544,.744099 +2.104544,.744099 +2.104544,.744099 +2.384231,.8688767 +2.384231,.8688767 +2.384231,.8688767 +3.128616,1.140591 +3.128616,1.140591 +3.128616,1.140591 +2.384231,.8688767 +2.384231,.8688767 +2.384231,.8688767 +2.359566,.8584779 +2.359566,.8584779 +2.359566,.8584779 +2.453914,.8976842 +2.453914,.8976842 +2.453914,.8976842 +1.647904,.4995041 +1.647904,.4995041 +1.647904,.4995041 +5.314744,1.670485 +5.314744,1.670485 +5.314744,1.670485 +5.448649,1.695368 +5.448649,1.695368 +5.448649,1.695368 +2.453914,.8976842 +2.453914,.8976842 +2.453914,.8976842 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +1.748245,.5586125 +1.748245,.5586125 +1.748245,.5586125 +1.748245,.5586125 +1.748245,.5586125 +1.748245,.5586125 +1.748245,.5586125 +1.748245,.5586125 +1.748245,.5586125 +1.748245,.5586125 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +6.613149,1.88906 +6.613149,1.88906 +6.613149,1.88906 +1.409191,.3430159 +1.409191,.3430159 +1.409191,.3430159 +2.591599,.9522752 +2.591599,.9522752 +2.591599,.9522752 +1.983685,.6849565 +1.983685,.6849565 +1.983685,.6849565 +1.803688,.5898333 +1.803688,.5898333 +1.803688,.5898333 +4.302051,1.459092 +4.302051,1.459092 +4.302051,1.459092 +4.302051,1.459092 +4.302051,1.459092 +3.071388,1.12213 +3.071388,1.12213 +3.071388,1.12213 +3.071388,1.12213 +3.071388,1.12213 +3.499462,1.252609 +3.499462,1.252609 +3.499462,1.252609 +3.499462,1.252609 +3.499462,1.252609 +3.118051,1.137208 +3.118051,1.137208 +3.118051,1.137208 +3.118051,1.137208 +3.118051,1.137208 +3.532429,1.261986 +3.532429,1.261986 +3.532429,1.261986 +3.532429,1.261986 +3.532429,1.261986 +4.422943,1.486805 +4.422943,1.486805 +4.422943,1.486805 +4.422943,1.486805 +4.422943,1.486805 +5.324357,1.672292 +5.324357,1.672292 +5.324357,1.672292 +5.324357,1.672292 +5.324357,1.672292 +3.118051,1.137208 +3.118051,1.137208 +3.118051,1.137208 +3.118051,1.137208 +3.118051,1.137208 +2.168735,.774144 +2.168735,.774144 +2.168735,.774144 +2.390342,.8714366 +2.390342,.8714366 +2.390342,.8714366 +2.390342,.8714366 +2.390342,.8714366 +2.390342,.8714366 +2.434022,.889545 +2.434022,.889545 +2.434022,.889545 +1.799834,.5876946 +1.799834,.5876946 +1.799834,.5876946 +2.052636,.7191248 +2.052636,.7191248 +2.052636,.7191248 +5.097185,1.628688 +5.097185,1.628688 +5.097185,1.628688 +2.026864,.7064897 +2.026864,.7064897 +2.026864,.7064897 +3.820709,1.340436 +3.820709,1.340436 +3.820709,1.340436 +1.570149,.4511707 +1.570149,.4511707 +1.570149,.4511707 +2.380854,.8674593 +2.380854,.8674593 +2.380854,.8674593 +1.801435,.5885834 +1.801435,.5885834 +1.801435,.5885834 +1.760736,.5657316 +2.94768,1.081018 +2.246345,.8093045 +2.92017,1.071642 +1.517518,.4170763 +1.517518,.4170763 +1.517518,.4170763 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +2.209594,.7928087 +2.209594,.7928087 +2.209594,.7928087 +1.968767,.6774077 +1.968767,.6774077 +1.968767,.6774077 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +4.629306,1.532407 +4.629306,1.532407 +4.629306,1.532407 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.02898,.7075331 +2.02898,.7075331 +2.02898,.7075331 +2.02898,.7075331 +2.02898,.7075331 +1.625754,.4859719 +1.625754,.4859719 +1.625754,.4859719 +1.625754,.4859719 +1.625754,.4859719 +3.177549,1.15611 +3.177549,1.15611 +3.177549,1.15611 +2.999762,1.098533 +2.999762,1.098533 +2.999762,1.098533 +2.014463,.7003528 +2.014463,.7003528 +2.014463,.7003528 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +1.557702,.4432115 +1.557702,.4432115 +1.557702,.4432115 +2.209594,.7928087 +2.209594,.7928087 +2.209594,.7928087 +2.028663,.7073771 +2.028663,.7073771 +2.028663,.7073771 +2.877651,1.056974 +2.877651,1.056974 +2.877651,1.056974 +3.240635,1.175769 +3.240635,1.175769 +3.240635,1.175769 +3.939891,1.371153 +3.939891,1.371153 +3.939891,1.371153 +3.939891,1.371153 +3.939891,1.371153 +1.498465,.4044412 +2.293563,.8301064 +2.293563,.8301064 +2.293563,.8301064 +2.293563,.8301064 +2.293563,.8301064 +2.293563,.8301064 +2.145591,.763415 +2.145591,.763415 +3.14102,1.144548 +3.14102,1.144548 +3.14102,1.144548 +2.720647,1.00087 +2.720647,1.00087 +2.720647,1.00087 +3.025359,1.10703 +3.025359,1.10703 +2.145591,.763415 +2.145591,.763415 +2.145591,.763415 +2.828573,1.039772 +2.828573,1.039772 +2.828573,1.039772 +1.538944,.4310962 +1.538944,.4310962 +1.538944,.4310962 +3.217952,1.168745 +3.217952,1.168745 +3.217952,1.168745 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +3.611583,1.284146 +3.611583,1.284146 +3.611583,1.284146 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.248026,.8100526 +2.248026,.8100526 +2.248026,.8100526 +2.248026,.8100526 +2.248026,.8100526 +2.248026,.8100526 +2.248026,.8100526 +2.248026,.8100526 +2.248026,.8100526 +1.762053,.5664798 +1.762053,.5664798 +1.762053,.5664798 +1.570005,.4510788 +1.570005,.4510788 +1.570005,.4510788 +2.248026,.8100526 +2.248026,.8100526 +2.248026,.8100526 +2.413797,.8812012 +2.413797,.8812012 +2.413797,.8812012 +6.257637,1.833803 +6.257637,1.833803 +6.257637,1.833803 +6.257637,1.833803 +6.257637,1.833803 +1.665129,.5099028 +1.665129,.5099028 +1.665129,.5099028 +1.665129,.5099028 +1.665129,.5099028 +1.868814,.6253039 +1.868814,.6253039 +1.868814,.6253039 +1.868814,.6253039 +1.868814,.6253039 +2.361979,.8595001 +2.361979,.8595001 +2.361979,.8595001 +2.361979,.8595001 +2.361979,.8595001 +2.384231,.8688767 +2.384231,.8688767 +2.384231,.8688767 +2.384231,.8688767 +2.384231,.8688767 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.364229,.8604519 +2.364229,.8604519 +2.364229,.8604519 +4.14854,1.422757 +4.14854,1.422757 +4.14854,1.422757 +1.506377,.4097073 +1.506377,.4097073 +1.506377,.4097073 +1.69639,.5285025 +1.69639,.5285025 +1.69639,.5285025 +1.797845,.5865887 +1.797845,.5865887 +1.797845,.5865887 +1.761493,.5661618 +1.761493,.5661618 +1.761493,.5661618 +2.275887,.8223696 +2.275887,.8223696 +2.275887,.8223696 +4.666756,1.540464 +4.666756,1.540464 +4.666756,1.540464 +1.761493,.5661618 +1.761493,.5661618 +1.761493,.5661618 +2.275887,.8223696 +2.275887,.8223696 +2.275887,.8223696 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.209594,.7928087 +2.209594,.7928087 +2.209594,.7928087 +2.51995,.9242389 +2.51995,.9242389 +2.51995,.9242389 +3.556343,1.268733 +3.556343,1.268733 +3.556343,1.268733 +3.387695,1.22015 +3.387695,1.22015 +3.387695,1.22015 +5.302611,1.668199 +5.302611,1.668199 +5.302611,1.668199 +3.371147,1.215253 +3.371147,1.215253 +3.371147,1.215253 +4.0582,1.400739 +4.0582,1.400739 +4.0582,1.400739 +3.796381,1.334048 +3.796381,1.334048 +3.796381,1.334048 +3.402905,1.22463 +3.402905,1.22463 +3.402905,1.22463 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +2.514098,.921914 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +2.232493,.8031189 +2.232493,.8031189 +2.232493,.8031189 +2.232493,.8031189 +2.232493,.8031189 +3.177549,1.15611 +3.177549,1.15611 +3.177549,1.15611 +3.177549,1.15611 +3.177549,1.15611 +3.566238,1.271511 +3.566238,1.271511 +3.566238,1.271511 +3.566238,1.271511 +3.566238,1.271511 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +3.177549,1.15611 +3.177549,1.15611 +3.177549,1.15611 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +3.566238,1.271511 +3.566238,1.271511 +3.566238,1.271511 +1.606261,.4739093 +1.606261,.4739093 +1.606261,.4739093 +1.748245,.5586125 +1.748245,.5586125 +1.748245,.5586125 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +1.968767,.6774077 +1.968767,.6774077 +1.968767,.6774077 +4.067146,1.402941 +4.067146,1.402941 +4.067146,1.402941 +4.067146,1.402941 +4.067146,1.402941 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.005728,.6960073 +2.005728,.6960073 +2.005728,.6960073 +2.005728,.6960073 +2.005728,.6960073 +1.409191,.3430159 +1.409191,.3430159 +1.409191,.3430159 +1.409191,.3430159 +1.409191,.3430159 +1.797845,.5865887 +1.797845,.5865887 +1.797845,.5865887 +1.797845,.5865887 +1.797845,.5865887 +1.797845,.5865887 +1.797845,.5865887 +1.797845,.5865887 +1.797845,.5865887 +1.797845,.5865887 +1.797845,.5865887 +1.797845,.5865887 +1.797845,.5865887 +1.797845,.5865887 +1.797845,.5865887 +1.797845,.5865887 +1.797845,.5865887 +1.797845,.5865887 +1.797845,.5865887 +1.797845,.5865887 +1.797845,.5865887 +1.797845,.5865887 +1.797845,.5865887 +1.797845,.5865887 +1.797845,.5865887 +9.390388,2.239686 +9.390388,2.239686 +9.390388,2.239686 +9.390388,2.239686 +6.61996,1.890089 +2.272973,.8210886 +2.272973,.8210886 +2.272973,.8210886 +2.954785,1.083426 +2.954785,1.083426 +2.954785,1.083426 +2.710677,.9971984 +2.710677,.9971984 +2.710677,.9971984 +2.429729,.8877799 +2.429729,.8877799 +2.429729,.8877799 +5.621149,1.726536 +5.621149,1.726536 +5.621149,1.726536 +5.621149,1.726536 +5.621149,1.726536 +2.687484,.9886054 +2.687484,.9886054 +2.687484,.9886054 +2.687484,.9886054 +2.687484,.9886054 +2.911205,1.068567 +2.911205,1.068567 +2.911205,1.068567 +2.911205,1.068567 +2.911205,1.068567 +2.911205,1.068567 +2.911205,1.068567 +2.911205,1.068567 +2.911205,1.068567 +2.911205,1.068567 +3.714113,1.31214 +3.714113,1.31214 +3.714113,1.31214 +3.714113,1.31214 +3.714113,1.31214 +4.143573,1.421558 +4.143573,1.421558 +4.143573,1.421558 +4.143573,1.421558 +4.143573,1.421558 +2.248026,.8100526 +2.248026,.8100526 +2.248026,.8100526 +2.248026,.8100526 +2.248026,.8100526 +2.248026,.8100526 +3.388403,1.220359 +3.388403,1.220359 +3.388403,1.220359 +1.823228,.6006087 +1.823228,.6006087 +1.823228,.6006087 +1.748245,.5586125 +1.748245,.5586125 +1.748245,.5586125 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +1.557702,.4432115 +1.557702,.4432115 +1.557702,.4432115 +1.429087,.3570359 +1.429087,.3570359 +1.429087,.3570359 +2.999762,1.098533 +2.999762,1.098533 +2.999762,1.098533 +2.999762,1.098533 +2.999762,1.098533 +2.999762,1.098533 +2.292766,.829759 +2.292766,.829759 +2.292766,.829759 +2.450888,.8964504 +2.450888,.8964504 +2.450888,.8964504 +2.10118,.7424992 +2.10118,.7424992 +2.10118,.7424992 +8.433655,2.13223 +8.433655,2.13223 +8.433655,2.13223 +2.784113,1.023929 +2.784113,1.023929 +2.784113,1.023929 +2.784113,1.023929 +2.784113,1.023929 +1.762492,.5667288 +1.762492,.5667288 +1.762492,.5667288 +1.762492,.5667288 +1.762492,.5667288 +2.675212,.9840285 +2.675212,.9840285 +2.675212,.9840285 +3.413033,1.227601 +3.413033,1.227601 +3.413033,1.227601 +3.413033,1.227601 +3.413033,1.227601 +3.413033,1.227601 +3.614364,1.284916 +3.614364,1.284916 +3.614364,1.284916 +2.172873,.7760501 +2.172873,.7760501 +2.172873,.7760501 +2.152594,.7666734 +2.152594,.7666734 +2.152594,.7666734 +2.172873,.7760501 +2.172873,.7760501 +2.172873,.7760501 +1.91798,.6512724 +1.91798,.6512724 +1.91798,.6512724 +2.48831,.9116039 +2.48831,.9116039 +2.48831,.9116039 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +3.974887,1.379996 +3.974887,1.379996 +3.974887,1.379996 +3.974887,1.379996 +3.974887,1.379996 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +3.974887,1.379996 +3.974887,1.379996 +3.974887,1.379996 +3.974887,1.379996 +3.974887,1.379996 +3.026904,1.10754 +3.026904,1.10754 +3.026904,1.10754 +3.397165,1.222941 +3.397165,1.222941 +3.397165,1.222941 +3.429169,1.232318 +3.429169,1.232318 +3.429169,1.232318 +3.429169,1.232318 +3.429169,1.232318 +3.429169,1.232318 +1.968199,.6771187 +1.968199,.6771187 +1.968199,.6771187 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +3.062386,1.119195 +3.062386,1.119195 +3.062386,1.119195 +2.231917,.8028609 +2.231917,.8028609 +2.231917,.8028609 +2.384231,.8688767 +1.577508,.4558465 +1.557702,.4432115 +4.631659,1.532915 +1.770474,.5712476 +2.616288,.9617567 +1.657245,.5051566 +1.657245,.5051566 +1.657245,.5051566 +1.657245,.5051566 +1.657245,.5051566 +2.372942,.8641304 +2.372942,.8641304 +2.372942,.8641304 +2.372942,.8641304 +2.372942,.8641304 +2.372942,.8641304 +2.372942,.8641304 +2.372942,.8641304 +2.372942,.8641304 +2.372942,.8641304 +2.882169,1.058543 +2.882169,1.058543 +2.882169,1.058543 +2.568038,.9431421 +2.568038,.9431421 +2.568038,.9431421 +2.301874,.8337236 +2.301874,.8337236 +2.301874,.8337236 +2.301874,.8337236 +2.301874,.8337236 +2.301874,.8337236 +2.792689,1.027005 +2.792689,1.027005 +2.792689,1.027005 +2.792689,1.027005 +2.792689,1.027005 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +5.275115,1.663001 +5.275115,1.663001 +5.275115,1.663001 +2.645995,.973047 +2.645995,.973047 +2.645995,.973047 +5.940514,1.781796 +5.940514,1.781796 +5.940514,1.781796 +3.25307,1.179599 +3.25307,1.179599 +3.25307,1.179599 +2.307084,.8359844 +2.307084,.8359844 +2.307084,.8359844 +2.285553,.8266078 +2.285553,.8266078 +2.285553,.8266078 +2.307084,.8359844 +2.307084,.8359844 +2.307084,.8359844 +11.64844,2.455173 +11.64844,2.455173 +2.828198,1.03964 +2.828198,1.03964 +2.828198,1.03964 +2.237689,.8054437 +2.237689,.8054437 +2.237689,.8054437 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +2.687484,.9886054 +2.687484,.9886054 +2.687484,.9886054 +2.687484,.9886054 +3.044641,1.113383 +3.044641,1.113383 +3.044641,1.113383 +3.044641,1.113383 +3.044641,1.113383 +5.002394,1.609917 +5.002394,1.609917 +5.002394,1.609917 +3.044641,1.113383 +3.044641,1.113383 +3.044641,1.113383 +3.044641,1.113383 +3.044641,1.113383 +2.687484,.9886054 +2.687484,.9886054 +2.687484,.9886054 +2.687484,.9886054 +3.749656,1.321664 +3.749656,1.321664 +3.749656,1.321664 +2.145591,.763415 +2.145591,.763415 +2.145591,.763415 +2.145591,.763415 +2.145591,.763415 +2.145591,.763415 +1.681762,.5198422 +1.681762,.5198422 +1.681762,.5198422 +2.092987,.7385924 +2.092987,.7385924 +2.092987,.7385924 +2.145591,.763415 +2.145591,.763415 +2.145591,.763415 +1.606889,.4742998 +1.606889,.4742998 +1.606889,.4742998 +1.606889,.4742998 +1.606889,.4742998 +5.36574,1.680034 +5.36574,1.680034 +5.36574,1.680034 +6.136629,1.814276 +6.136629,1.814276 +6.136629,1.814276 +4.285404,1.455215 +4.285404,1.455215 +4.285404,1.455215 +2.435436,.8901259 +2.435436,.8901259 +2.699028,.9928918 +2.699028,.9928918 +2.699028,.9928918 +3.487202,1.2491 +3.487202,1.2491 +3.487202,1.2491 +2.699028,.9928918 +2.699028,.9928918 +2.699028,.9928918 +4.593384,1.524617 +4.593384,1.524617 +4.593384,1.524617 +2.790228,1.026123 +2.790228,1.026123 +2.790228,1.026123 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +2.821631,1.037315 +2.821631,1.037315 +2.821631,1.037315 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +2.386458,.8698102 +2.386458,.8698102 +2.386458,.8698102 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +2.232493,.8031189 +2.232493,.8031189 +2.232493,.8031189 +2.8781,1.05713 +2.8781,1.05713 +2.8781,1.05713 +2.8781,1.05713 +2.8781,1.05713 +1.801713,.5887379 +1.801713,.5887379 +1.801713,.5887379 +1.801713,.5887379 +1.801713,.5887379 +2.243428,.8080049 +2.243428,.8080049 +2.243428,.8080049 +2.243428,.8080049 +2.243428,.8080049 +2.243428,.8080049 +3.04169,1.112413 +3.04169,1.112413 +3.04169,1.112413 +2.406605,.8782171 +2.406605,.8782171 +2.406605,.8782171 +1.605342,.4733369 +1.605342,.4733369 +1.669532,.5125431 +1.669532,.5125431 +1.669532,.5125431 +1.669532,.5125431 +1.669532,.5125431 +2.298624,.8323107 +2.298624,.8323107 +2.298624,.8323107 +2.298624,.8323107 +2.298624,.8323107 +2.298624,.8323107 +2.298624,.8323107 +2.298624,.8323107 +2.298624,.8323107 +2.298624,.8323107 +2.298624,.8323107 +2.298624,.8323107 +2.298624,.8323107 +2.298624,.8323107 +2.298624,.8323107 +2.298624,.8323107 +2.298624,.8323107 +2.298624,.8323107 +2.298624,.8323107 +2.298624,.8323107 +2.527279,.9271432 +2.527279,.9271432 +2.527279,.9271432 +2.527279,.9271432 +2.527279,.9271432 +2.434218,.8896254 +2.434218,.8896254 +2.434218,.8896254 +2.434218,.8896254 +2.434218,.8896254 +2.465009,.9021955 +2.465009,.9021955 +2.465009,.9021955 +3.375814,1.216637 +3.375814,1.216637 +3.375814,1.216637 +1.721544,.5432217 +1.721544,.5432217 +1.721544,.5432217 +2.465009,.9021955 +2.465009,.9021955 +2.465009,.9021955 +2.175847,.7774178 +2.175847,.7774178 +2.175847,.7774178 +5.322581,1.671958 +5.322581,1.671958 +5.322581,1.671958 +5.322581,1.671958 +5.322581,1.671958 +2.276032,.8224335 +2.276032,.8224335 +2.276032,.8224335 +2.276032,.8224335 +2.276032,.8224335 +2.636282,.9693698 +2.636282,.9693698 +2.636282,.9693698 +2.636282,.9693698 +2.636282,.9693698 +2.276032,.8224335 +2.276032,.8224335 +2.276032,.8224335 +2.276032,.8224335 +2.276032,.8224335 +2.276032,.8224335 +2.276032,.8224335 +2.276032,.8224335 +2.276032,.8224335 +2.276032,.8224335 +2.301874,.8337236 +2.301874,.8337236 +2.301874,.8337236 +2.301874,.8337236 +2.301874,.8337236 +2.568038,.9431421 +2.568038,.9431421 +2.568038,.9431421 +2.568038,.9431421 +2.568038,.9431421 +2.031848,.7089459 +2.031848,.7089459 +2.031848,.7089459 +2.031848,.7089459 +2.031848,.7089459 +2.320115,.8416167 +2.320115,.8416167 +2.320115,.8416167 +2.210091,.7930338 +2.210091,.7930338 +2.210091,.7930338 +2.294584,.8305516 +2.294584,.8305516 +2.294584,.8305516 +3.664599,1.298719 +3.664599,1.298719 +3.664599,1.298719 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +4.169617,1.427824 +4.169617,1.427824 +4.169617,1.427824 +4.169617,1.427824 +4.169617,1.427824 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +4.253063,1.447639 +4.253063,1.447639 +4.253063,1.447639 +4.253063,1.447639 +2.054779,.7201681 +2.054779,.7201681 +2.054779,.7201681 +2.054779,.7201681 +2.054779,.7201681 +4.932987,1.595945 +4.932987,1.595945 +4.932987,1.595945 +4.932987,1.595945 +4.932987,1.595945 +4.932987,1.595945 +2.597019,.9543642 +2.597019,.9543642 +2.597019,.9543642 +2.054779,.7201681 +2.054779,.7201681 +2.054779,.7201681 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +3.611583,1.284146 +3.611583,1.284146 +3.611583,1.284146 +3.434223,1.233791 +3.434223,1.233791 +3.434223,1.233791 +4.887994,1.586782 +4.887994,1.586782 +4.887994,1.586782 +7.906694,2.06771 +7.906694,2.06771 +7.906694,2.06771 +4.63032,1.532626 +4.63032,1.532626 +4.63032,1.532626 +2.563907,.9415322 +2.563907,.9415322 +2.563907,.9415322 +2.298171,.8321137 +2.298171,.8321137 +2.298171,.8321137 +1.801358,.5885409 +1.801358,.5885409 +1.801358,.5885409 +3.065391,1.120175 +3.065391,1.120175 +3.065391,1.120175 +3.397165,1.222941 +3.397165,1.222941 +3.397165,1.222941 +2.849968,1.047308 +2.849968,1.047308 +2.849968,1.047308 +2.849968,1.047308 +2.849968,1.047308 +5.502908,1.705277 +5.502908,1.705277 +5.502908,1.705277 +5.502908,1.705277 +5.502908,1.705277 +4.722592,1.552358 +4.722592,1.552358 +4.722592,1.552358 +4.722592,1.552358 +4.722592,1.552358 +5.067488,1.622845 +5.067488,1.622845 +5.067488,1.622845 +1.614597,.4790854 +1.614597,.4790854 +1.614597,.4790854 +2.311876,.8380593 +2.311876,.8380593 +2.311876,.8380593 +6.34487,1.847647 +6.34487,1.847647 +6.34487,1.847647 +3.065391,1.120175 +3.065391,1.120175 +3.065391,1.120175 +6.34487,1.847647 +6.34487,1.847647 +6.34487,1.847647 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +2.390535,.871517 +2.390535,.871517 +2.390535,.871517 +3.429169,1.232318 +3.429169,1.232318 +3.429169,1.232318 +2.687859,.988745 +2.687859,.988745 +2.687859,.988745 +2.687859,.988745 +2.687859,.988745 +2.687859,.988745 +2.208955,.7925197 +2.208955,.7925197 +2.208955,.7925197 +1.577052,.4555576 +1.577052,.4555576 +1.577052,.4555576 +2.325504,.8439366 +2.325504,.8439366 +2.325504,.8439366 +2.325504,.8439366 +2.325504,.8439366 +2.3038,.8345599 +2.3038,.8345599 +2.3038,.8345599 +2.3038,.8345599 +2.3038,.8345599 +2.325504,.8439366 +2.325504,.8439366 +2.325504,.8439366 +2.325504,.8439366 +2.325504,.8439366 +2.319593,.8413916 +2.319593,.8413916 +2.319593,.8413916 +3.144956,1.1458 +3.144956,1.1458 +3.144956,1.1458 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +2.319593,.8413916 +2.319593,.8413916 +2.319593,.8413916 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +7.908979,2.067999 +7.908979,2.067999 +7.908979,2.067999 +2.51995,.9242389 +2.51995,.9242389 +2.51995,.9242389 +2.51995,.9242389 +2.51995,.9242389 +2.51995,.9242389 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +1.611465,.4771435 +1.611465,.4771435 +1.611465,.4771435 +1.761804,.5663384 +1.761804,.5663384 +1.761804,.5663384 +2.247708,.8099112 +2.247708,.8099112 +2.247708,.8099112 +2.247708,.8099112 +2.247708,.8099112 +2.247708,.8099112 +2.507609,.9193297 +2.507609,.9193297 +2.507609,.9193297 +2.247708,.8099112 +2.247708,.8099112 +2.247708,.8099112 +2.247708,.8099112 +2.247708,.8099112 +2.247708,.8099112 +2.376373,.8655753 +2.376373,.8655753 +2.376373,.8655753 +2.39876,.874952 +2.39876,.874952 +2.39876,.874952 +2.272534,.8208956 +2.272534,.8208956 +2.272534,.8208956 +1.876022,.6291538 +1.876022,.6291538 +1.876022,.6291538 +1.876022,.6291538 +1.876022,.6291538 +2.232493,.8031189 +2.232493,.8031189 +2.232493,.8031189 +2.514098,.921914 +2.514098,.921914 +2.514098,.921914 +2.232493,.8031189 +2.232493,.8031189 +2.232493,.8031189 +2.232493,.8031189 +2.232493,.8031189 +5.803,1.758375 +5.803,1.758375 +5.803,1.758375 +5.803,1.758375 +5.803,1.758375 +3.940313,1.37126 +3.940313,1.37126 +5.002394,1.609917 +5.002394,1.609917 +5.002394,1.609917 +5.002394,1.609917 +5.002394,1.609917 +4.507341,1.505707 +4.507341,1.505707 +4.507341,1.505707 +2.298624,.8323107 +2.298624,.8323107 +2.298624,.8323107 +2.45715,.8990021 +2.45715,.8990021 +2.45715,.8990021 +2.168909,.7742244 +2.168909,.7742244 +2.168909,.7742244 +2.741268,1.008421 +2.741268,1.008421 +2.741268,1.008421 +2.390535,.871517 +2.390535,.871517 +2.390535,.871517 +4.914618,1.592214 +4.914618,1.592214 +4.914618,1.592214 +2.277171,.8229341 +2.277171,.8229341 +2.277171,.8229341 +2.341587,.8508288 +2.341587,.8508288 +2.341587,.8508288 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +3.490375,1.250009 +3.490375,1.250009 +3.490375,1.250009 +2.857508,1.04995 +2.857508,1.04995 +2.857508,1.04995 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +1.820705,.5992238 +1.820705,.5992238 +1.820705,.5992238 +1.342195,.2943062 +1.342195,.2943062 +1.342195,.2943062 +1.797845,.5865887 +1.797845,.5865887 +1.797845,.5865887 +2.005728,.6960073 +2.005728,.6960073 +2.005728,.6960073 +1.427109,.355651 +1.427109,.355651 +1.427109,.355651 +12.23918,2.504642 +12.23918,2.504642 +12.23918,2.504642 +6.386316,1.854158 +6.386316,1.854158 +2.253551,.812507 +2.253551,.812507 +2.253551,.812507 +7.451167,2.008371 +7.451167,2.008371 +7.451167,2.008371 +5.187427,1.646238 +5.187427,1.646238 +5.187427,1.646238 +3.841922,1.345973 +3.841922,1.345973 +3.841922,1.345973 +3.731458,1.316799 +3.731458,1.316799 +2.564412,.9417292 +2.564412,.9417292 +2.564412,.9417292 +2.564412,.9417292 +2.564412,.9417292 +2.298624,.8323107 +2.298624,.8323107 +2.298624,.8323107 +2.298624,.8323107 +2.298624,.8323107 +2.298624,.8323107 +2.298624,.8323107 +2.298624,.8323107 +2.298624,.8323107 +2.298624,.8323107 +1.625754,.4859719 +1.625754,.4859719 +1.625754,.4859719 +1.625754,.4859719 +1.625754,.4859719 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.564412,.9417292 +2.564412,.9417292 +2.564412,.9417292 +2.298624,.8323107 +2.298624,.8323107 +2.298624,.8323107 +4.773312,1.56304 +4.773312,1.56304 +4.773312,1.56304 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +3.068123,1.121066 +3.068123,1.121066 +3.068123,1.121066 +3.443426,1.236467 +3.443426,1.236467 +3.443426,1.236467 +3.443426,1.236467 +3.443426,1.236467 +3.443426,1.236467 +4.250281,1.446985 +4.250281,1.446985 +4.250281,1.446985 +3.437693,1.234801 +3.437693,1.234801 +3.437693,1.234801 +6.789501,1.915377 +6.789501,1.915377 +6.789501,1.915377 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +2.237689,.8054437 +2.237689,.8054437 +2.237689,.8054437 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +2.209594,.7928087 +2.209594,.7928087 +2.209594,.7928087 +3.016226,1.104006 +3.016226,1.104006 +3.016226,1.104006 +2.126355,.7544092 +2.126355,.7544092 +2.126355,.7544092 +1.497758,.4039693 +1.497758,.4039693 +1.497758,.4039693 +2.144579,.7629431 +2.144579,.7629431 +2.144579,.7629431 +1.497758,.4039693 +1.497758,.4039693 +1.497758,.4039693 +2.171847,.7755781 +2.171847,.7755781 +2.171847,.7755781 +5.517831,1.707985 +5.517831,1.707985 +5.517831,1.707985 +3.358355,1.211451 +3.358355,1.211451 +3.358355,1.211451 +3.358355,1.211451 +3.358355,1.211451 +3.358355,1.211451 +3.746679,1.32087 +3.746679,1.32087 +3.746679,1.32087 +3.358355,1.211451 +3.358355,1.211451 +3.358355,1.211451 +3.358355,1.211451 +3.358355,1.211451 +3.358355,1.211451 +3.746679,1.32087 +3.746679,1.32087 +3.746679,1.32087 +3.358355,1.211451 +3.358355,1.211451 +3.358355,1.211451 +3.358355,1.211451 +3.358355,1.211451 +3.358355,1.211451 +2.632354,.9678785 +2.632354,.9678785 +2.632354,.9678785 +2.367641,.861894 +2.367641,.861894 +2.367641,.861894 +1.589968,.4637138 +1.589968,.4637138 +1.589968,.4637138 +2.27661,.8226877 +2.27661,.8226877 +2.27661,.8226877 +2.248026,.8100526 +2.248026,.8100526 +2.248026,.8100526 +2.009548,.69791 +2.009548,.69791 +2.009548,.69791 +2.02898,.7075331 +2.02898,.7075331 +2.02898,.7075331 +2.02898,.7075331 +2.02898,.7075331 +1.968767,.6774077 +1.968767,.6774077 +1.968767,.6774077 +1.968767,.6774077 +1.968767,.6774077 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +1.557702,.4432115 +1.557702,.4432115 +1.557702,.4432115 +1.557702,.4432115 +1.557702,.4432115 +2.988131,1.094648 +2.988131,1.094648 +2.988131,1.094648 +2.812489,1.03407 +2.812489,1.03407 +2.812489,1.03407 +2.812489,1.03407 +2.812489,1.03407 +2.007937,.6971078 +2.007937,.6971078 +2.007937,.6971078 +2.007937,.6971078 +2.007937,.6971078 +1.585649,.4609935 +1.585649,.4609935 +1.585649,.4609935 +1.585649,.4609935 +1.585649,.4609935 +2.532953,.9293859 +2.532953,.9293859 +2.532953,.9293859 +2.532953,.9293859 +2.532953,.9293859 +2.899455,1.064523 +2.899455,1.064523 +2.899455,1.064523 +2.361979,.8595001 +2.361979,.8595001 +2.361979,.8595001 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +2.507964,.9194711 +2.507964,.9194711 +2.507964,.9194711 +3.169796,1.153667 +3.169796,1.153667 +3.169796,1.153667 +3.642424,1.29265 +3.642424,1.29265 +3.642424,1.29265 +2.58344,.9491217 +2.58344,.9491217 +2.58344,.9491217 +3.096753,1.130354 +3.096753,1.130354 +3.096753,1.130354 +2.104544,.744099 +2.104544,.744099 +2.104544,.744099 +2.450171,.8961578 +2.450171,.8961578 +2.450171,.8961578 +2.77579,1.020936 +2.77579,1.020936 +2.77579,1.020936 +1.699721,.5304643 +1.699721,.5304643 +2.45623,.8986278 +2.45623,.8986278 +2.45623,.8986278 +2.326981,.8445715 +2.326981,.8445715 +2.326981,.8445715 +2.297764,.8319365 +2.297764,.8319365 +2.297764,.8319365 +2.433307,.8892512 +2.433307,.8892512 +2.433307,.8892512 +2.297764,.8319365 +2.297764,.8319365 +2.297764,.8319365 +2.297764,.8319365 +2.297764,.8319365 +2.297764,.8319365 +2.45623,.8986278 +2.45623,.8986278 +2.45623,.8986278 +2.45623,.8986278 +2.45623,.8986278 +2.45623,.8986278 +2.297764,.8319365 +2.297764,.8319365 +2.297764,.8319365 +2.987013,1.094274 +2.987013,1.094274 +2.987013,1.094274 +2.457133,.8989951 +2.457133,.8989951 +2.457133,.8989951 +4.318858,1.462991 +4.318858,1.462991 +4.318858,1.462991 +3.488122,1.249363 +3.488122,1.249363 +3.488122,1.249363 +3.123314,1.138895 +3.123314,1.138895 +3.123314,1.138895 +2.436079,.8903896 +2.436079,.8903896 +2.436079,.8903896 +4.318858,1.462991 +4.318858,1.462991 +4.318858,1.462991 +5.318552,1.671201 +5.318552,1.671201 +5.318552,1.671201 +2.17937,.779036 +2.17937,.779036 +2.17937,.779036 +2.456899,.8989002 +2.456899,.8989002 +2.456899,.8989002 +2.456899,.8989002 +2.456899,.8989002 +1.824436,.601271 +1.824436,.601271 +1.824436,.601271 +1.824436,.601271 +1.824436,.601271 +2.305891,.8354672 +2.305891,.8354672 +2.305891,.8354672 +2.305891,.8354672 +2.305891,.8354672 +3.169796,1.153667 +3.169796,1.153667 +3.169796,1.153667 +3.144956,1.1458 +3.144956,1.1458 +3.144956,1.1458 +1.968767,.6774077 +1.968767,.6774077 +1.968767,.6774077 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +7.526883,2.018481 +7.526883,2.018481 +7.526883,2.018481 +3.373455,1.215937 +3.373455,1.215937 +3.373455,1.215937 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +1.868814,.6253039 +1.868814,.6253039 +1.868814,.6253039 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.792689,1.027005 +2.792689,1.027005 +2.792689,1.027005 +2.384231,.8688767 +2.384231,.8688767 +2.384231,.8688767 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +1.8246,.6013609 +1.8246,.6013609 +1.8246,.6013609 +1.8246,.6013609 +1.8246,.6013609 +1.605323,.4733249 +1.605323,.4733249 +1.605323,.4733249 +1.605323,.4733249 +1.605323,.4733249 +2.327824,.8449337 +2.327824,.8449337 +2.327824,.8449337 +2.327824,.8449337 +2.327824,.8449337 +2.327824,.8449337 +2.327824,.8449337 +2.327824,.8449337 +2.327824,.8449337 +2.327824,.8449337 +1.570005,.4510788 +1.570005,.4510788 +1.570005,.4510788 +1.762053,.5664798 +1.762053,.5664798 +1.762053,.5664798 +2.248026,.8100526 +2.248026,.8100526 +2.248026,.8100526 +1.984317,.685275 +1.984317,.685275 +1.984317,.685275 +2.227046,.800676 +2.227046,.800676 +2.227046,.800676 +2.248026,.8100526 +2.248026,.8100526 +2.248026,.8100526 +2.248026,.8100526 +2.248026,.8100526 +2.248026,.8100526 +1.984317,.685275 +1.984317,.685275 +1.984317,.685275 +3.240006,1.175575 +3.240006,1.175575 +3.240006,1.175575 +2.250786,.8112797 +2.250786,.8112797 +2.250786,.8112797 +1.786649,.5803419 +1.786649,.5803419 +1.786649,.5803419 +2.012016,.699137 +2.012016,.699137 +2.012016,.699137 +2.279406,.8239147 +2.279406,.8239147 +2.279406,.8239147 +2.27661,.8226877 +2.27661,.8226877 +2.27661,.8226877 +2.27661,.8226877 +2.27661,.8226877 +2.27661,.8226877 +3.240537,1.175739 +3.240537,1.175739 +3.240537,1.175739 +2.27661,.8226877 +2.27661,.8226877 +2.27661,.8226877 +2.850536,1.047507 +2.850536,1.047507 +2.850536,1.047507 +1.784458,.5791149 +1.784458,.5791149 +1.784458,.5791149 +1.762053,.5664798 +1.762053,.5664798 +1.762053,.5664798 +2.009548,.69791 +2.009548,.69791 +2.009548,.69791 +2.507964,.9194711 +2.507964,.9194711 +2.507964,.9194711 +2.009548,.69791 +2.009548,.69791 +2.009548,.69791 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +3.702577,1.309029 +3.702577,1.309029 +3.702577,1.309029 +4.679659,1.543225 +4.679659,1.543225 +4.679659,1.543225 +3.281517,1.188306 +3.281517,1.188306 +3.281517,1.188306 +5.442378,1.694216 +5.442378,1.694216 +5.442378,1.694216 +2.327259,.8446912 +2.327259,.8446912 +2.327259,.8446912 +6.895844,1.930919 +6.895844,1.930919 +6.895844,1.930919 +6.895844,1.930919 +6.895844,1.930919 +7.240053,1.979629 +7.240053,1.979629 +7.240053,1.979629 +3.486502,1.248899 +3.486502,1.248899 +3.486502,1.248899 +3.486502,1.248899 +3.486502,1.248899 +2.145591,.763415 +2.145591,.763415 +2.145591,.763415 +2.145591,.763415 +2.145591,.763415 +2.145591,.763415 +2.152594,.7666734 +2.152594,.7666734 +2.152594,.7666734 +1.91798,.6512724 +1.91798,.6512724 +1.91798,.6512724 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +2.232493,.8031189 +2.232493,.8031189 +2.232493,.8031189 +2.821631,1.037315 +2.821631,1.037315 +2.821631,1.037315 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +3.637608,1.291326 +3.637608,1.291326 +3.637608,1.291326 +2.564412,.9417292 +2.564412,.9417292 +2.564412,.9417292 +2.328423,.8451911 +2.328423,.8451911 +2.328423,.8451911 +2.178202,.7784997 +2.178202,.7784997 +2.178202,.7784997 +9.72356,2.274552 +9.72356,2.274552 +9.72356,2.274552 +9.72356,2.274552 +9.72356,2.274552 +2.009548,.69791 +2.009548,.69791 +2.009548,.69791 +1.762053,.5664798 +1.762053,.5664798 +1.762053,.5664798 +1.625754,.4859719 +1.625754,.4859719 +1.625754,.4859719 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.02898,.7075331 +2.02898,.7075331 +2.02898,.7075331 +8.067162,2.087802 +8.067162,2.087802 +8.067162,2.087802 +9.162507,2.21512 +9.162507,2.21512 +9.162507,2.21512 +8.7269,2.16641 +8.7269,2.16641 +8.7269,2.16641 +3.974887,1.379996 +3.974887,1.379996 +3.974887,1.379996 +2.209594,.7928087 +2.209594,.7928087 +2.209594,.7928087 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +1.993801,.6900427 +1.993801,.6900427 +1.993801,.6900427 +1.801713,.5887379 +1.801713,.5887379 +1.801713,.5887379 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.054779,.7201681 +2.054779,.7201681 +2.054779,.7201681 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +2.232493,.8031189 +2.232493,.8031189 +2.232493,.8031189 +2.237689,.8054437 +2.237689,.8054437 +2.237689,.8054437 +2.237689,.8054437 +2.237689,.8054437 +2.792689,1.027005 +2.792689,1.027005 +2.792689,1.027005 +2.792689,1.027005 +2.792689,1.027005 +7.360821,1.996171 +3.995214,1.385097 +9.722332,2.274426 +1.901342,.6425597 +1.901342,.6425597 +1.901342,.6425597 +2.518467,.9236503 +2.518467,.9236503 +2.518467,.9236503 +2.518467,.9236503 +2.518467,.9236503 +2.518467,.9236503 +2.385942,.869594 +2.385942,.869594 +2.385942,.869594 +2.385942,.869594 +2.385942,.869594 +2.385942,.869594 +1.504354,.4083636 +1.504354,.4083636 +1.504354,.4083636 +2.351281,.8549602 +2.351281,.8549602 +2.351281,.8549602 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +3.016226,1.104006 +3.016226,1.104006 +3.016226,1.104006 +2.386458,.8698102 +3.301709,1.19444 +3.301709,1.19444 +3.301709,1.19444 +3.301709,1.19444 +3.301709,1.19444 +4.173006,1.428637 +4.173006,1.428637 +4.173006,1.428637 +4.173006,1.428637 +4.173006,1.428637 +2.411275,.8801556 +2.70623,.9955567 +2.70623,.9955567 +2.70623,.9955567 +3.452606,1.239129 +3.452606,1.239129 +3.452606,1.239129 +3.452606,1.239129 +3.452606,1.239129 +3.452606,1.239129 +2.381,.8675206 +2.381,.8675206 +2.381,.8675206 +3.803467,1.335913 +3.803467,1.335913 +3.803467,1.335913 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.564412,.9417292 +2.564412,.9417292 +2.564412,.9417292 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.02898,.7075331 +2.02898,.7075331 +2.02898,.7075331 +3.052995,1.116123 +3.052995,1.116123 +3.052995,1.116123 +3.66354,1.29843 +3.66354,1.29843 +4.63032,1.532626 +4.63032,1.532626 +4.63032,1.532626 +2.909496,1.06798 +2.909496,1.06798 +2.909496,1.06798 +5.233956,1.655167 +5.233956,1.655167 +5.233956,1.655167 +4.798959,1.568399 +4.798959,1.568399 +4.798959,1.568399 +1.984317,.685275 +1.984317,.685275 +1.984317,.685275 +4.282577,1.454555 +4.282577,1.454555 +4.282577,1.454555 +2.121167,.7519663 +2.121167,.7519663 +2.121167,.7519663 +2.909581,1.068009 +2.909581,1.068009 +2.909581,1.068009 +2.704659,.994976 +2.704659,.994976 +2.704659,.994976 +3.849593,1.347967 +3.849593,1.347967 +3.849593,1.347967 +3.450603,1.238549 +3.450603,1.238549 +3.450603,1.238549 +2.028921,.7075039 +2.028921,.7075039 +2.028921,.7075039 +4.37884,1.476784 +4.37884,1.476784 +4.37884,1.476784 +1.925913,.6554002 +1.925913,.6554002 +1.925913,.6554002 +2.272973,.8210886 +2.272973,.8210886 +2.272973,.8210886 +2.272973,.8210886 +2.272973,.8210886 +3.992084,1.384313 +3.992084,1.384313 +3.992084,1.384313 +3.992084,1.384313 +3.992084,1.384313 +2.407053,.8784032 +2.407053,.8784032 +2.407053,.8784032 +2.407053,.8784032 +2.407053,.8784032 +2.407053,.8784032 +2.407053,.8784032 +2.407053,.8784032 +2.407053,.8784032 +2.407053,.8784032 +4.398483,1.48126 +4.398483,1.48126 +4.398483,1.48126 +5.425955,1.691194 +5.425955,1.691194 +5.425955,1.691194 +1.864676,.6230876 +1.864676,.6230876 +1.766555,.5690312 +1.766555,.5690312 +1.766555,.5690312 +1.766555,.5690312 +1.766555,.5690312 +2.253769,.8126041 +2.253769,.8126041 +1.343251,.295093 +1.343251,.295093 +1.343251,.295093 +1.343251,.295093 +1.343251,.295093 +4.369625,1.474677 +4.369625,1.474677 +4.369625,1.474677 +3.489846,1.249858 +3.489846,1.249858 +3.489846,1.249858 +4.369625,1.474677 +4.369625,1.474677 +4.369625,1.474677 +3.489846,1.249858 +3.489846,1.249858 +3.489846,1.249858 +7.173988,1.970462 +7.173988,1.970462 +7.173988,1.970462 +3.454688,1.239732 +3.454688,1.239732 +3.454688,1.239732 +14.48408,2.67305 +14.48408,2.67305 +14.48408,2.67305 +1.409191,.3430159 +1.409191,.3430159 +1.409191,.3430159 +1.342195,.2943062 +1.409191,.3430159 +1.409191,.3430159 +1.409191,.3430159 +1.423334,.3530019 +1.423334,.3530019 +1.423334,.3530019 +3.241141,1.175925 +3.241141,1.175925 +3.241141,1.175925 +2.8781,1.05713 +2.8781,1.05713 +2.8781,1.05713 +2.23041,.8021854 +2.23041,.8021854 +2.237689,.8054437 +2.237689,.8054437 +1.770474,.5712476 +1.770474,.5712476 +4.025428,1.392631 +4.025428,1.392631 +3.680318,1.302999 +3.680318,1.302999 +3.680318,1.302999 +2.710677,.9971984 +2.710677,.9971984 +2.710677,.9971984 +1.781607,.5775157 +1.781607,.5775157 +1.781607,.5775157 +2.272973,.8210886 +2.272973,.8210886 +2.272973,.8210886 +2.006337,.6963109 +2.006337,.6963109 +2.006337,.6963109 +2.429729,.8877799 +2.429729,.8877799 +2.429729,.8877799 +2.272973,.8210886 +2.272973,.8210886 +1.781607,.5775157 +1.781607,.5775157 +1.781607,.5775157 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +3.365051,1.213443 +3.365051,1.213443 +3.365051,1.213443 +2.8781,1.05713 +2.8781,1.05713 +2.8781,1.05713 +1.557252,.4429225 +1.557252,.4429225 +1.557252,.4429225 +1.557252,.4429225 +1.557252,.4429225 +1.769963,.5709586 +1.769963,.5709586 +1.769963,.5709586 +1.769963,.5709586 +1.769963,.5709586 +2.312187,.8381938 +2.312187,.8381938 +2.312187,.8381938 +6.841091,1.922947 +6.841091,1.922947 +6.841091,1.922947 +1.968767,.6774077 +1.968767,.6774077 +1.968767,.6774077 +1.968767,.6774077 +1.968767,.6774077 +2.48831,.9116039 +2.48831,.9116039 +2.48831,.9116039 +2.48831,.9116039 +2.48831,.9116039 +3.144956,1.1458 +3.144956,1.1458 +3.144956,1.1458 +3.144956,1.1458 +3.144956,1.1458 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +4.222634,1.440459 +4.222634,1.440459 +4.222634,1.440459 +1.989171,.6877179 +1.989171,.6877179 +1.989171,.6877179 +2.232493,.8031189 +2.232493,.8031189 +2.232493,.8031189 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +2.232493,.8031189 +2.232493,.8031189 +2.232493,.8031189 +3.883495,1.356736 +3.883495,1.356736 +3.883495,1.356736 +3.883495,1.356736 +3.883495,1.356736 +3.493269,1.250838 +3.493269,1.250838 +3.493269,1.250838 +3.493269,1.250838 +3.493269,1.250838 +8.198266,2.103923 +8.198266,2.103923 +8.198266,2.103923 +3.550303,1.267033 +3.550303,1.267033 +3.550303,1.267033 +3.505727,1.254398 +3.505727,1.254398 +3.505727,1.254398 +3.517168,1.257656 +3.517168,1.257656 +3.517168,1.257656 +4.600255,1.526112 +4.600255,1.526112 +4.600255,1.526112 +3.177549,1.15611 +3.177549,1.15611 +5.82393,1.761975 +5.82393,1.761975 +2.579119,.9474477 +2.579119,.9474477 +2.579119,.9474477 +2.205898,.7911348 +2.205898,.7911348 +2.205898,.7911348 +2.178202,.7784997 +2.178202,.7784997 +2.178202,.7784997 +3.404866,1.225206 +3.404866,1.225206 +3.404866,1.225206 +3.404866,1.225206 +3.404866,1.225206 +3.608499,1.283292 +3.608499,1.283292 +3.608499,1.283292 +3.608499,1.283292 +3.608499,1.283292 +3.821361,1.340607 +3.821361,1.340607 +3.821361,1.340607 +3.821361,1.340607 +3.821361,1.340607 +2.615532,.9614677 +2.615532,.9614677 +2.615532,.9614677 +2.449463,.8958688 +2.449463,.8958688 +2.449463,.8958688 +1.748245,.5586125 +1.748245,.5586125 +1.748245,.5586125 +2.319593,.8413916 +2.319593,.8413916 +2.319593,.8413916 +1.557702,.4432115 +1.557702,.4432115 +1.557702,.4432115 +5.102506,1.629732 +5.102506,1.629732 +5.102506,1.629732 +1.625754,.4859719 +1.625754,.4859719 +1.625754,.4859719 +2.054779,.7201681 +2.054779,.7201681 +2.054779,.7201681 +3.102358,1.132162 +3.102358,1.132162 +3.102358,1.132162 +3.102358,1.132162 +3.55934,1.269575 +3.55934,1.269575 +3.55934,1.269575 +3.55934,1.269575 +3.55934,1.269575 +3.55934,1.269575 +3.55934,1.269575 +3.55934,1.269575 +3.55934,1.269575 +2.006337,.6963109 +2.006337,.6963109 +2.006337,.6963109 +1.80426,.5901508 +1.80426,.5901508 +1.80426,.5901508 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +3.664599,1.298719 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +1.993225,.6897537 +1.993225,.6897537 +1.993225,.6897537 +2.208955,.7925197 +2.208955,.7925197 +2.208955,.7925197 +2.612334,.9602442 +2.612334,.9602442 +2.612334,.9602442 +3.253477,1.179724 +3.253477,1.179724 +3.253477,1.179724 +1.80857,.5925366 +1.80857,.5925366 +1.80857,.5925366 +2.307373,.8361095 +2.307373,.8361095 +2.307373,.8361095 +4.492963,1.502512 +4.492963,1.502512 +4.492963,1.502512 +3.223003,1.170314 +3.223003,1.170314 +3.223003,1.170314 +3.223003,1.170314 +3.223003,1.170314 +2.297699,.8319083 +2.297699,.8319083 +2.297699,.8319083 +2.297699,.8319083 +2.297699,.8319083 +3.223003,1.170314 +3.223003,1.170314 +3.223003,1.170314 +3.223003,1.170314 +3.223003,1.170314 +2.832846,1.041282 +2.832846,1.041282 +2.832846,1.041282 +2.832846,1.041282 +2.832846,1.041282 +3.239837,1.175523 +3.239837,1.175523 +3.239837,1.175523 +3.239837,1.175523 +3.239837,1.175523 +3.053405,1.116257 +3.053405,1.116257 +3.053405,1.116257 +3.053405,1.116257 +3.053405,1.116257 +1.287044,.2523482 +1.287044,.2523482 +1.287044,.2523482 +2.420931,.8841521 +2.420931,.8841521 +2.420931,.8841521 +1.801713,.5887379 +1.801713,.5887379 +1.801713,.5887379 +2.420931,.8841521 +2.420931,.8841521 +2.420931,.8841521 +4.834005,1.575675 +4.834005,1.575675 +4.834005,1.575675 +2.054779,.7201681 +2.054779,.7201681 +2.054779,.7201681 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.857508,1.04995 +2.857508,1.04995 +2.857508,1.04995 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.386458,.8698102 +2.386458,.8698102 +2.386458,.8698102 +2.232493,.8031189 +2.232493,.8031189 +2.232493,.8031189 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +3.016226,1.104006 +3.016226,1.104006 +3.016226,1.104006 +1.796091,.5856124 +1.796091,.5856124 +1.796091,.5856124 +1.796091,.5856124 +1.796091,.5856124 +2.022648,.7044076 +2.022648,.7044076 +2.022648,.7044076 +2.022648,.7044076 +2.022648,.7044076 +2.724462,1.002271 +2.724462,1.002271 +2.724462,1.002271 +2.724462,1.002271 +2.724462,1.002271 +2.724462,1.002271 +3.475866,1.245844 +3.475866,1.245844 +3.475866,1.245844 +3.443426,1.236467 +3.443426,1.236467 +3.443426,1.236467 +2.434218,.8896254 +2.434218,.8896254 +2.434218,.8896254 +2.434218,.8896254 +2.434218,.8896254 +2.298624,.8323107 +2.298624,.8323107 +2.298624,.8323107 +2.298624,.8323107 +2.298624,.8323107 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.054779,.7201681 +2.054779,.7201681 +2.054779,.7201681 +2.054779,.7201681 +2.054779,.7201681 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.008228,.6972525 +2.008228,.6972525 +2.008228,.6972525 +1.589968,.4637138 +1.589968,.4637138 +1.589968,.4637138 +4.553515,1.5159 +4.553515,1.5159 +4.553515,1.5159 +2.27661,.8226877 +2.27661,.8226877 +2.27661,.8226877 +1.784458,.5791149 +1.784458,.5791149 +1.784458,.5791149 +2.27661,.8226877 +2.27661,.8226877 +2.27661,.8226877 +1.784458,.5791149 +1.784458,.5791149 +1.784458,.5791149 +2.053969,.7197739 +2.053969,.7197739 +2.053969,.7197739 +2.595996,.9539701 +2.595996,.9539701 +2.595996,.9539701 +1.823903,.6009788 +1.823903,.6009788 +2.326934,.8445516 +2.326934,.8445516 +2.326934,.8445516 +1.823903,.6009788 +1.823903,.6009788 +1.823903,.6009788 +1.823903,.6009788 +1.823903,.6009788 +2.326934,.8445516 +2.326934,.8445516 +2.326934,.8445516 +2.326934,.8445516 +2.326934,.8445516 +2.326934,.8445516 +1.817984,.597728 +1.817984,.597728 +1.817984,.597728 +2.904091,1.06612 +2.904091,1.06612 +2.904091,1.06612 +1.817984,.597728 +1.817984,.597728 +1.817984,.597728 +3.015115,1.103638 +3.015115,1.103638 +3.015115,1.103638 +3.517121,1.257643 +3.517121,1.257643 +3.517121,1.257643 +3.595397,1.279655 +3.595397,1.279655 +3.595397,1.279655 +4.01113,1.389073 +4.01113,1.389073 +4.01113,1.389073 +4.286445,1.455458 +4.286445,1.455458 +4.286445,1.455458 +4.810778,1.570859 +4.810778,1.570859 +4.810778,1.570859 +2.722772,1.00165 +2.722772,1.00165 +2.722772,1.00165 +3.06622,1.120446 +3.06622,1.120446 +3.06622,1.120446 +3.612607,1.28443 +3.612607,1.28443 +3.612607,1.28443 +3.612607,1.28443 +3.612607,1.28443 +3.612607,1.28443 +2.248026,.8100526 +2.248026,.8100526 +2.248026,.8100526 +2.248026,.8100526 +2.248026,.8100526 +2.248026,.8100526 +3.693543,1.306586 +3.693543,1.306586 +3.693543,1.306586 +2.367641,.861894 +1.784458,.5791149 +2.367641,.861894 +2.507964,.9194711 +3.602771,1.281703 +3.621956,1.287014 +3.621956,1.287014 +3.621956,1.287014 +3.656078,1.296391 +3.656078,1.296391 +3.656078,1.296391 +3.227195,1.171613 +3.227195,1.171613 +3.227195,1.171613 +3.656078,1.296391 +3.656078,1.296391 +3.656078,1.296391 +3.656078,1.296391 +3.656078,1.296391 +3.656078,1.296391 +4.475643,1.49865 +4.475643,1.49865 +4.475643,1.49865 +2.119749,.7512976 +2.119749,.7512976 +4.443329,1.491404 +4.443329,1.491404 +4.443329,1.491404 +3.168346,1.15321 +3.168346,1.15321 +3.168346,1.15321 +2.327113,.8446285 +2.327113,.8446285 +2.327113,.8446285 +2.327113,.8446285 +2.327113,.8446285 +2.297895,.8319934 +2.297895,.8319934 +2.297895,.8319934 +2.297895,.8319934 +2.297895,.8319934 +2.877187,1.056813 +2.877187,1.056813 +2.877187,1.056813 +2.877187,1.056813 +2.877187,1.056813 +3.636454,1.291009 +3.636454,1.291009 +3.636454,1.291009 +3.636454,1.291009 +3.636454,1.291009 +4.833594,1.57559 +4.833594,1.57559 +4.833594,1.57559 +4.833594,1.57559 +1.824467,.6012879 +1.824467,.6012879 +1.824467,.6012879 +1.824467,.6012879 +1.824467,.6012879 +2.596798,.9542792 +2.596798,.9542792 +2.596798,.9542792 +2.596798,.9542792 +2.596798,.9542792 +2.054604,.7200831 +2.054604,.7200831 +2.054604,.7200831 +2.054604,.7200831 +2.054604,.7200831 +3.585315,1.276846 +3.585315,1.276846 +3.585315,1.276846 +3.585315,1.276846 +3.585315,1.276846 +3.585315,1.276846 +3.585315,1.276846 +3.585315,1.276846 +3.585315,1.276846 +3.585315,1.276846 +2.503957,.9178724 +2.503957,.9178724 +2.503957,.9178724 +2.503957,.9178724 +2.503957,.9178724 +4.660783,1.539183 +4.660783,1.539183 +4.660783,1.539183 +4.660783,1.539183 +4.660783,1.539183 +3.403241,1.224728 +3.403241,1.224728 +3.403241,1.224728 +3.022043,1.105933 +3.022043,1.105933 +3.022043,1.105933 +3.022043,1.105933 +3.022043,1.105933 +3.022043,1.105933 +3.85552,1.349506 +3.85552,1.349506 +3.85552,1.349506 +3.85552,1.349506 +3.85552,1.349506 +3.85552,1.349506 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +1.770474,.5712476 +2.828198,1.03964 +2.828198,1.03964 +2.828198,1.03964 +2.828198,1.03964 +2.828198,1.03964 +2.363858,.8602948 +2.363858,.8602948 +2.363858,.8602948 +1.587427,.4621147 +1.587427,.4621147 +1.587427,.4621147 +2.710677,.9971984 +2.710677,.9971984 +2.710677,.9971984 +2.393914,.8729299 +2.393914,.8729299 +2.393914,.8729299 +1.587427,.4621147 +1.587427,.4621147 +1.587427,.4621147 +1.968767,.6774077 +1.968767,.6774077 +1.968767,.6774077 +1.968767,.6774077 +1.968767,.6774077 +4.631659,1.532915 +4.631659,1.532915 +4.631659,1.532915 +4.631659,1.532915 +4.631659,1.532915 +3.529658,1.261201 +3.529658,1.261201 +3.529658,1.261201 +3.529658,1.261201 +3.529658,1.261201 +2.306126,.8355691 +2.306126,.8355691 +2.306126,.8355691 +2.208955,.7925197 +2.208955,.7925197 +2.208955,.7925197 +5.852227,1.766822 +5.852227,1.766822 +5.852227,1.766822 +2.612334,.9602442 +2.612334,.9602442 +2.612334,.9602442 +4.817786,1.572314 +4.817786,1.572314 +4.817786,1.572314 +4.318447,1.462896 +4.318447,1.462896 +4.318447,1.462896 +2.612334,.9602442 +2.612334,.9602442 +2.612334,.9602442 +2.386458,.8698102 +2.386458,.8698102 +2.386458,.8698102 +2.999762,1.098533 +2.999762,1.098533 +2.999762,1.098533 +2.546065,.934549 +2.546065,.934549 +2.546065,.934549 +2.014463,.7003528 +2.014463,.7003528 +2.014463,.7003528 +3.957927,1.37572 +3.957927,1.37572 +3.957927,1.37572 +2.739239,1.00768 +2.739239,1.00768 +2.739239,1.00768 +3.611583,1.284146 +3.611583,1.284146 +3.611583,1.284146 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.966752,1.087468 +2.966752,1.087468 +2.966752,1.087468 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +3.177549,1.15611 +3.177549,1.15611 +3.177549,1.15611 +3.702577,1.309029 +3.702577,1.309029 +3.702577,1.309029 +3.044641,1.113383 +3.044641,1.113383 +3.044641,1.113383 +3.737458,1.318406 +3.737458,1.318406 +3.737458,1.318406 +3.299028,1.193628 +3.299028,1.193628 +3.299028,1.193628 +2.821631,1.037315 +2.821631,1.037315 +2.821631,1.037315 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +2.258117,.8145314 +2.258117,.8145314 +2.582693,.9488327 +2.582693,.9488327 +2.582693,.9488327 +1.989171,.6877179 +1.989171,.6877179 +1.989171,.6877179 +1.989171,.6877179 +1.989171,.6877179 +1.989171,.6877179 +1.989171,.6877179 +3.737458,1.318406 +3.737458,1.318406 +3.737458,1.318406 +3.737458,1.318406 +3.737458,1.318406 +3.737458,1.318406 +2.232493,.8031189 +2.232493,.8031189 +2.232493,.8031189 +2.821631,1.037315 +2.821631,1.037315 +2.821631,1.037315 +2.821631,1.037315 +2.821631,1.037315 +2.821631,1.037315 +1.989171,.6877179 +1.989171,.6877179 +1.989171,.6877179 +4.457616,1.494614 +4.457616,1.494614 +4.457616,1.494614 +4.457616,1.494614 +4.457616,1.494614 +4.847211,1.578403 +4.847211,1.578403 +4.847211,1.578403 +4.847211,1.578403 +4.847211,1.578403 +3.437652,1.234789 +3.437652,1.234789 +3.437652,1.234789 +3.437652,1.234789 +3.437652,1.234789 +3.437652,1.234789 +3.437652,1.234789 +3.437652,1.234789 +3.437652,1.234789 +3.437652,1.234789 +3.437652,1.234789 +3.437652,1.234789 +3.437652,1.234789 +3.437652,1.234789 +3.437652,1.234789 +2.694509,.991216 +2.694509,.991216 +2.694509,.991216 +2.694509,.991216 +2.694509,.991216 +3.437652,1.234789 +3.437652,1.234789 +3.437652,1.234789 +3.437652,1.234789 +3.437652,1.234789 +3.437652,1.234789 +3.437652,1.234789 +3.437652,1.234789 +3.437652,1.234789 +3.437652,1.234789 +2.23041,.8021854 +2.23041,.8021854 +2.23041,.8021854 +1.748245,.5586125 +1.748245,.5586125 +1.748245,.5586125 +1.748245,.5586125 +1.748245,.5586125 +1.748245,.5586125 +3.034428,1.110023 +3.034428,1.110023 +3.034428,1.110023 +5.440202,1.693816 +5.440202,1.693816 +5.440202,1.693816 +3.437693,1.234801 +3.437693,1.234801 +3.437693,1.234801 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +1.577508,.4558465 +2.936322,1.077158 +2.936322,1.077158 +2.936322,1.077158 +2.936322,1.077158 +2.936322,1.077158 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.899455,1.064523 +2.899455,1.064523 +2.899455,1.064523 +2.899455,1.064523 +2.899455,1.064523 +2.420931,.8841521 +2.420931,.8841521 +2.420931,.8841521 +3.634455,1.290459 +3.634455,1.290459 +3.634455,1.290459 +2.999762,1.098533 +2.999762,1.098533 +2.999762,1.098533 +2.999762,1.098533 +2.999762,1.098533 +2.999762,1.098533 +2.999762,1.098533 +2.999762,1.098533 +2.999762,1.098533 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +2.848213,1.046692 +3.740507,1.319221 +3.740507,1.319221 +3.740507,1.319221 +3.226768,1.171481 +3.226768,1.171481 +3.226768,1.171481 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +2.26088,.8157539 +1.626685,.4865444 +1.626685,.4865444 +1.626685,.4865444 +1.626685,.4865444 +1.626685,.4865444 +1.287044,.2523482 +1.287044,.2523482 +1.287044,.2523482 +1.287044,.2523482 +1.287044,.2523482 +1.842866,.611322 +1.842866,.611322 +1.842866,.611322 +1.842866,.611322 +1.842866,.611322 +2.699999,.9932514 +2.699999,.9932514 +2.699999,.9932514 +2.327614,.8448438 +2.327614,.8448438 +2.327614,.8448438 +2.327614,.8448438 +2.327614,.8448438 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +3.053405,1.116257 +3.053405,1.116257 +3.053405,1.116257 +3.053405,1.116257 +3.053405,1.116257 +3.45643,1.240236 +3.45643,1.240236 +3.45643,1.240236 +2.857508,1.04995 +2.857508,1.04995 +2.857508,1.04995 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +3.401057,1.224086 +3.401057,1.224086 +3.401057,1.224086 +2.711028,.9973279 +2.711028,.9973279 +2.711028,.9973279 +2.301874,.8337236 +2.301874,.8337236 +2.301874,.8337236 +7.793903,2.053342 +7.793903,2.053342 +7.793903,2.053342 +3.332814,1.203817 +3.332814,1.203817 +3.332814,1.203817 +3.332814,1.203817 +3.332814,1.203817 +3.332814,1.203817 +4.760249,1.5603 +4.760249,1.5603 +4.760249,1.5603 +3.344471,1.207309 +3.344471,1.207309 +3.344471,1.207309 +2.999762,1.098533 +2.999762,1.098533 +2.999762,1.098533 +2.597019,.9543642 +2.597019,.9543642 +2.597019,.9543642 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +1.625754,.4859719 +1.625754,.4859719 +1.625754,.4859719 +3.683861,1.303961 +3.683861,1.303961 +3.683861,1.303961 +2.306126,.8355691 +2.306126,.8355691 +2.306126,.8355691 +2.347417,.8533158 +2.347417,.8533158 +2.347417,.8533158 +3.05156,1.115653 +3.05156,1.115653 +3.05156,1.115653 +1.816857,.5971079 +1.816857,.5971079 +1.816857,.5971079 +2.296311,.8313041 +2.296311,.8313041 +2.296311,.8313041 +2.347417,.8533158 +2.347417,.8533158 +2.347417,.8533158 +2.347417,.8533158 +2.347417,.8533158 +2.347417,.8533158 +1.517518,.4170763 +1.517518,.4170763 +1.517518,.4170763 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.936322,1.077158 +2.936322,1.077158 +2.936322,1.077158 +2.936322,1.077158 +2.936322,1.077158 +1.820705,.5992238 +1.820705,.5992238 +1.820705,.5992238 +1.820705,.5992238 +1.820705,.5992238 +1.820705,.5992238 +2.301874,.8337236 +2.301874,.8337236 +2.301874,.8337236 +2.301874,.8337236 +2.301874,.8337236 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +1.669348,.5124334 +1.669348,.5124334 +1.669348,.5124334 +1.669348,.5124334 +1.669348,.5124334 +3.713801,1.312056 +3.713801,1.312056 +3.713801,1.312056 +3.713801,1.312056 +3.713801,1.312056 +5.236591,1.655671 +5.236591,1.655671 +5.236591,1.655671 +5.236591,1.655671 +5.236591,1.655671 +2.259755,.8152564 +2.259755,.8152564 +2.259755,.8152564 +3.217952,1.168745 +3.217952,1.168745 +3.217952,1.168745 +2.014463,.7003528 +2.014463,.7003528 +2.014463,.7003528 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.327784,.8449166 +2.327784,.8449166 +2.327784,.8449166 +1.989387,.6878264 +1.989387,.6878264 +1.989387,.6878264 +1.989387,.6878264 +1.989387,.6878264 +3.466077,1.243023 +3.466077,1.243023 +3.466077,1.243023 +3.466077,1.243023 +2.171847,.7755781 +2.171847,.7755781 +2.171847,.7755781 +2.999762,1.098533 +2.999762,1.098533 +2.999762,1.098533 +4.222634,1.440459 +4.222634,1.440459 +4.222634,1.440459 +2.393421,.8727238 +2.393421,.8727238 +2.393421,.8727238 +2.393421,.8727238 +2.172873,.7760501 +2.172873,.7760501 +2.172873,.7760501 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.367306,.8617525 +2.367306,.8617525 +2.367306,.8617525 +2.999762,1.098533 +2.999762,1.098533 +2.999762,1.098533 +2.999762,1.098533 +2.539853,.9321062 +2.539853,.9321062 +2.539853,.9321062 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.349087,.8540267 +2.349087,.8540267 +2.349087,.8540267 +3.466077,1.243023 +3.466077,1.243023 +3.466077,1.243023 +3.466077,1.243023 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.349087,.8540267 +2.349087,.8540267 +2.349087,.8540267 +2.349087,.8540267 +1.975837,.6809924 +1.975837,.6809924 +1.975837,.6809924 +3.713801,1.312056 +3.713801,1.312056 +3.713801,1.312056 +3.713801,1.312056 +3.713801,1.312056 +3.713801,1.312056 +3.713801,1.312056 +3.713801,1.312056 +2.361209,.8591737 +2.361209,.8591737 +2.361209,.8591737 +1.916553,.6505283 +1.916553,.6505283 +1.916553,.6505283 +2.349087,.8540267 +2.349087,.8540267 +2.349087,.8540267 +2.362543,.8597387 +2.362543,.8597387 +2.362543,.8597387 +2.362543,.8597387 +2.362543,.8597387 +2.362543,.8597387 +2.362543,.8597387 +2.362543,.8597387 +2.362543,.8597387 +2.362543,.8597387 +2.362543,.8597387 +2.362543,.8597387 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.999762,1.098533 +2.999762,1.098533 +2.999762,1.098533 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.336711,.8487445 +2.336711,.8487445 +2.336711,.8487445 +4.558243,1.516937 +4.558243,1.516937 +4.558243,1.516937 +2.963984,1.086534 +2.963984,1.086534 +2.963984,1.086534 +4.179322,1.430149 +4.179322,1.430149 +4.179322,1.430149 +1.624191,.4850096 +1.624191,.4850096 +1.624191,.4850096 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.999762,1.098533 +2.999762,1.098533 +2.999762,1.098533 +3.401057,1.224086 +3.401057,1.224086 +3.401057,1.224086 +3.537049,1.263293 +3.537049,1.263293 +3.537049,1.263293 +2.014463,.7003528 +2.014463,.7003528 +2.014463,.7003528 +3.539155,1.263888 +3.539155,1.263888 +3.539155,1.263888 +5.280687,1.664056 +5.280687,1.664056 +5.280687,1.664056 +2.348408,.8537377 +2.348408,.8537377 +2.348408,.8537377 +2.258117,.8145314 +2.258117,.8145314 +2.258117,.8145314 +2.301874,.8337236 +2.301874,.8337236 +2.301874,.8337236 +3.45643,1.240236 +3.45643,1.240236 +3.45643,1.240236 +2.25877,.8148203 +2.25877,.8148203 +2.25877,.8148203 +2.393421,.8727238 +2.393421,.8727238 +2.393421,.8727238 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.365742,.8610917 +2.365742,.8610917 +2.365742,.8610917 +3.713801,1.312056 +3.713801,1.312056 +3.713801,1.312056 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.884428,1.059327 +2.884428,1.059327 +2.884428,1.059327 +2.828198,1.03964 +2.828198,1.03964 +2.828198,1.03964 +2.963984,1.086534 +2.963984,1.086534 +2.963984,1.086534 +1.784458,.5791149 +1.784458,.5791149 +1.784458,.5791149 +2.27661,.8226877 +2.27661,.8226877 +2.27661,.8226877 +2.317105,.8403186 +2.317105,.8403186 +2.317105,.8403186 +3.583383,1.276307 +3.583383,1.276307 +3.583383,1.276307 +2.327784,.8449166 +2.327784,.8449166 +2.327784,.8449166 +1.287044,.2523482 +1.287044,.2523482 +3.500165,1.25281 +3.500165,1.25281 +3.500165,1.25281 +1.784458,.5791149 +1.784458,.5791149 +1.784458,.5791149 +2.367641,.861894 +2.367641,.861894 +2.367641,.861894 +2.27661,.8226877 +2.27661,.8226877 +2.27661,.8226877 +1.626685,.4865444 +1.626685,.4865444 +1.626685,.4865444 +2.275114,.8220302 +2.275114,.8220302 +2.275114,.8220302 +3.600403,1.281046 +3.600403,1.281046 +3.600403,1.281046 +2.327852,.8449457 +2.327852,.8449457 +2.327852,.8449457 +2.226679,.8005114 +2.226679,.8005114 +2.226679,.8005114 +3.611583,1.284146 +3.611583,1.284146 +3.611583,1.284146 +2.336711,.8487445 +2.336711,.8487445 +2.336711,.8487445 +2.367641,.861894 +2.367641,.861894 +2.367641,.861894 +2.368106,.8620905 +2.368106,.8620905 +2.368106,.8620905 +2.349087,.8540267 +2.349087,.8540267 +2.999762,1.098533 +2.999762,1.098533 +2.363401,.8601019 +2.363401,.8601019 +1.873465,.6277897 +1.873465,.6277897 +2.999762,1.098533 +2.349087,.8540267 +2.349087,.8540267 +2.367641,.861894 +2.367641,.861894 +2.367641,.861894 +2.999762,1.098533 +2.999762,1.098533 +2.999762,1.098533 +2.999762,1.098533 +2.999762,1.098533 +2.999762,1.098533 +2.999762,1.098533 +2.999762,1.098533 +2.348408,.8537377 +2.348408,.8537377 +2.367641,.861894 +2.367641,.861894 +2.367641,.861894 +2.259755,.8152564 +2.259755,.8152564 +2.259755,.8152564 +2.349087,.8540267 +2.349087,.8540267 +2.315713,.8397177 +2.315713,.8397177 +3.466077,1.243023 +3.466077,1.243023 +2.999762,1.098533 +2.999762,1.098533 +1.916553,.6505283 +1.916553,.6505283 +2.367641,.861894 +2.367641,.861894 +2.349087,.8540267 +2.349087,.8540267 +2.349087,.8540267 +2.361209,.8591737 +2.361209,.8591737 +2.349087,.8540267 +2.349087,.8540267 +3.620565,1.28663 +3.620565,1.28663 +2.259755,.8152564 +2.259755,.8152564 +3.742002,1.319621 +3.742002,1.319621 +3.61163,1.284159 +3.713801,1.312056 +3.713801,1.312056 +3.582391,1.276031 +2.418602,.8831897 +2.362543,.8597387 +3.537049,1.263293 +2.420931,.8841521 +2.420931,.8841521 +2.348408,.8537377 +2.999762,1.098533 +3.594636,1.279443 +2.999762,1.098533 +2.999762,1.098533 +2.441279,.892522 +2.441279,.892522 +1.890963,.6370863 +2.349087,.8540267 +2.420684,.8840501 +2.420736,.8840716 +2.362543,.8597387 +2.420314,.8838974 +3.626638,1.288306 +3.626638,1.288306 +2.442793,.8931421 +2.418406,.8831087 +2.420931,.8841521 diff --git a/statsmodels/discrete/tests/test_constrained.py b/statsmodels/discrete/tests/test_constrained.py new file mode 100644 index 0000000..5853b47 --- /dev/null +++ b/statsmodels/discrete/tests/test_constrained.py @@ -0,0 +1,519 @@ +# -*- coding: utf-8 -*- +""" +Created on Fri May 30 16:22:29 2014 + +Author: Josef Perktold +License: BSD-3 + +""" + +from statsmodels.compat.python import StringIO + +import numpy as np +from numpy.testing import assert_allclose, assert_equal, assert_ +from nose import SkipTest + +import pandas as pd +import patsy + +from statsmodels.discrete.discrete_model import Poisson +from statsmodels.discrete.discrete_model import Logit +from statsmodels.genmod.generalized_linear_model import GLM +from statsmodels.genmod import families +from statsmodels.base._constraints import fit_constrained + +from statsmodels.tools.tools import add_constant +from statsmodels import datasets + + +spector_data = datasets.spector.load() +spector_data.exog = add_constant(spector_data.exog, prepend=False) + +from .results import results_poisson_constrained as results +from .results import results_glm_logit_constrained as reslogit + +DEBUG = False + +ss='''\ +agecat smokes deaths pyears +1 1 32 52407 +2 1 104 43248 +3 1 206 28612 +4 1 186 12663 +5 1 102 5317 +1 0 2 18790 +2 0 12 10673 +3 0 28 5710 +4 0 28 2585 +5 0 31 1462''' + +data = pd.read_csv(StringIO(ss), delimiter='\t') +data['logpyears'] = np.log(data['pyears']) + + +class CheckPoissonConstrainedMixin(object): + + def test_basic(self): + res1 = self.res1 + res2 = self.res2 + assert_allclose(res1[0], res2.params[self.idx], rtol=1e-6) + # see below Stata has nan, we have zero + bse1 = np.sqrt(np.diag(res1[1])) + mask = (bse1 == 0) & np.isnan(res2.bse[self.idx]) + assert_allclose(bse1[~mask], res2.bse[self.idx][~mask], rtol=1e-6) + + + def test_basic_method(self): + if hasattr(self, 'res1m'): + res1 = (self.res1m if not hasattr(self.res1m, '_results') + else self.res1m._results) + res2 = self.res2 + assert_allclose(res1.params, res2.params[self.idx], rtol=1e-6) + + # when a parameter is fixed, the Stata has bse=nan, we have bse=0 + mask = (res1.bse == 0) & np.isnan(res2.bse[self.idx]) + assert_allclose(res1.bse[~mask], res2.bse[self.idx][~mask], rtol=1e-6) + + tvalues = res2.params_table[self.idx, 2] + # when a parameter is fixed, the Stata has tvalue=nan, we have tvalue=inf + mask = np.isinf(res1.tvalues) & np.isnan(tvalues) + assert_allclose(res1.tvalues[~mask], tvalues[~mask], rtol=1e-6) + pvalues = res2.params_table[self.idx, 3] + # note most pvalues are very small + # examples so far agree at 8 or more decimal, but rtol is stricter + # see above + mask = (res1.pvalues == 0) & np.isnan(pvalues) + assert_allclose(res1.pvalues[~mask], pvalues[~mask], rtol=5e-5) + + ci_low = res2.params_table[self.idx, 4] + ci_upp = res2.params_table[self.idx, 5] + ci = np.column_stack((ci_low, ci_upp)) + # note most pvalues are very small + # examples so far agree at 8 or more decimal, but rtol is stricter + # see above: nan versus value + assert_allclose(res1.conf_int()[~np.isnan(ci)], ci[~np.isnan(ci)], rtol=5e-5) + + #other + assert_allclose(res1.llf, res2.ll, rtol=1e-6) + assert_equal(res1.df_model, res2.df_m) + # Stata doesn't have df_resid + df_r = res2.N - res2.df_m - 1 + assert_equal(res1.df_resid, df_r) + else: + raise SkipTest("not available yet") + + def test_other(self): + # some results may not be valid or available for all models + if hasattr(self, 'res1m'): + res1 = self.res1m + res2 = self.res2 + + if hasattr(res2, 'll_0'): + assert_allclose(res1.llnull, res2.ll_0, rtol=1e-6) + else: + if DEBUG: + import warnings + message = ('test: ll_0 not available, llnull=%6.4F' + % res1.llnull) + warnings.warn(message) + + else: + raise SkipTest("not available yet") + + +class TestPoissonConstrained1a(CheckPoissonConstrainedMixin): + + @classmethod + def setup_class(cls): + + cls.res2 = results.results_noexposure_constraint + cls.idx = [7, 3, 4, 5, 6, 0, 1] # 2 is dropped baseline for categorical + + # example without offset + formula = 'deaths ~ logpyears + smokes + C(agecat)' + mod = Poisson.from_formula(formula, data=data) + #res1a = mod1a.fit() + # get start_params, example fails to converge on one py TravisCI + k_vars = len(mod.exog_names) + start_params = np.zeros(k_vars) + start_params[0] = np.log(mod.endog.mean()) + # if we need it, this is desired params + p = np.array([-3.93478643, 1.37276214, 2.33077032, 2.71338891, + 2.71338891, 0.57966535, 0.97254074]) + + constr = 'C(agecat)[T.4] = C(agecat)[T.5]' + lc = patsy.DesignInfo(mod.exog_names).linear_constraint(constr) + cls.res1 = fit_constrained(mod, lc.coefs, lc.constants, + start_params=start_params, + fit_kwds={'method': 'bfgs', + 'disp': 0}) + # TODO: Newton fails + + # test method of Poisson, not monkey patched + cls.res1m = mod.fit_constrained(constr, start_params=start_params, + method='bfgs', disp=0) + + def test_smoke(self): + # trailing text in summary, assumes it's the first extra string + #NOTE: see comment about convergence in llnull for self.res1m + summ = self.res1m.summary() + assert_('linear equality constraints' in summ.extra_txt) + summ = self.res1m.summary2() + assert_('linear equality constraints' in summ.extra_txt[0]) + + +class TestPoissonConstrained1b(CheckPoissonConstrainedMixin): + + @classmethod + def setup_class(cls): + + cls.res2 = results.results_exposure_constraint + #cls.idx = [3, 4, 5, 6, 0, 1] # 2 is dropped baseline for categorical + cls.idx = [6, 2, 3, 4, 5, 0] # 2 is dropped baseline for categorical + + # example without offset + formula = 'deaths ~ smokes + C(agecat)' + mod = Poisson.from_formula(formula, data=data, + exposure=data['pyears'].values) + #offset=np.log(data['pyears'].values)) + #res1a = mod1a.fit() + constr = 'C(agecat)[T.4] = C(agecat)[T.5]' + lc = patsy.DesignInfo(mod.exog_names).linear_constraint(constr) + cls.res1 = fit_constrained(mod, lc.coefs, lc.constants, + fit_kwds={'method': 'newton', + 'disp': 0}) + cls.constraints = lc + # TODO: bfgs fails + # test method of Poisson, not monkey patched + cls.res1m = mod.fit_constrained(constr, method='newton', + disp=0) + + +class TestPoissonConstrained1c(CheckPoissonConstrainedMixin): + + @classmethod + def setup_class(cls): + + cls.res2 = results.results_exposure_constraint + #cls.idx = [3, 4, 5, 6, 0, 1] # 2 is dropped baseline for categorical + cls.idx = [6, 2, 3, 4, 5, 0] # 2 is dropped baseline for categorical + + # example without offset + formula = 'deaths ~ smokes + C(agecat)' + mod = Poisson.from_formula(formula, data=data, + offset=np.log(data['pyears'].values)) + #res1a = mod1a.fit() + constr = 'C(agecat)[T.4] = C(agecat)[T.5]' + lc = patsy.DesignInfo(mod.exog_names).linear_constraint(constr) + cls.res1 = fit_constrained(mod, lc.coefs, lc.constants, + fit_kwds={'method': 'newton', + 'disp': 0}) + cls.constraints = lc + # TODO: bfgs fails + + # test method of Poisson, not monkey patched + cls.res1m = mod.fit_constrained(constr, method='newton', disp=0) + + +class TestPoissonNoConstrained(CheckPoissonConstrainedMixin): + + @classmethod + def setup_class(cls): + + cls.res2 = results.results_exposure_noconstraint + cls.idx = [6, 2, 3, 4, 5, 0] # 1 is dropped baseline for categorical + + # example without offset + formula = 'deaths ~ smokes + C(agecat)' + mod = Poisson.from_formula(formula, data=data, + #exposure=data['pyears'].values) + offset=np.log(data['pyears'].values)) + res1 = mod.fit(disp=0)._results + # res1 is duplicate check, so we can follow the same pattern + cls.res1 = (res1.params, res1.cov_params()) + cls.res1m = res1 + + +class TestPoissonConstrained2a(CheckPoissonConstrainedMixin): + + @classmethod + def setup_class(cls): + + cls.res2 = results.results_noexposure_constraint2 + cls.idx = [7, 3, 4, 5, 6, 0, 1] # 2 is dropped baseline for categorical + + # example without offset + formula = 'deaths ~ logpyears + smokes + C(agecat)' + mod = Poisson.from_formula(formula, data=data) + + # get start_params, example fails to converge on one py TravisCI + k_vars = len(mod.exog_names) + start_params = np.zeros(k_vars) + start_params[0] = np.log(mod.endog.mean()) + # if we need it, this is desired params + p = np.array([-9.43762015, 1.52762442, 2.74155711, 3.58730007, + 4.08730007, 1.15987869, 0.12111539]) + + constr = 'C(agecat)[T.5] - C(agecat)[T.4] = 0.5' + lc = patsy.DesignInfo(mod.exog_names).linear_constraint(constr) + cls.res1 = fit_constrained(mod, lc.coefs, lc.constants, + start_params=start_params, + fit_kwds={'method': 'bfgs', 'disp': 0}) + # TODO: Newton fails + + # test method of Poisson, not monkey patched + cls.res1m = mod.fit_constrained(constr, start_params=start_params, + method='bfgs', disp=0) + + +class TestPoissonConstrained2b(CheckPoissonConstrainedMixin): + + @classmethod + def setup_class(cls): + + cls.res2 = results.results_exposure_constraint2 + #cls.idx = [3, 4, 5, 6, 0, 1] # 2 is dropped baseline for categorical + cls.idx = [6, 2, 3, 4, 5, 0] # 2 is dropped baseline for categorical + + # example without offset + formula = 'deaths ~ smokes + C(agecat)' + mod = Poisson.from_formula(formula, data=data, + exposure=data['pyears'].values) + #offset=np.log(data['pyears'].values)) + #res1a = mod1a.fit() + constr = 'C(agecat)[T.5] - C(agecat)[T.4] = 0.5' + lc = patsy.DesignInfo(mod.exog_names).linear_constraint(constr) + cls.res1 = fit_constrained(mod, lc.coefs, lc.constants, + fit_kwds={'method': 'newton', + 'disp': 0}) + cls.constraints = lc + # TODO: bfgs fails to converge. overflow somewhere? + + # test method of Poisson, not monkey patched + cls.res1m = mod.fit_constrained(constr, method='bfgs', disp=0, + start_params=cls.res1[0]) + + +class TestPoissonConstrained2c(CheckPoissonConstrainedMixin): + + @classmethod + def setup_class(cls): + + cls.res2 = results.results_exposure_constraint2 + #cls.idx = [3, 4, 5, 6, 0, 1] # 2 is dropped baseline for categorical + cls.idx = [6, 2, 3, 4, 5, 0] # 2 is dropped baseline for categorical + + # example without offset + formula = 'deaths ~ smokes + C(agecat)' + mod = Poisson.from_formula(formula, data=data, + offset=np.log(data['pyears'].values)) + + constr = 'C(agecat)[T.5] - C(agecat)[T.4] = 0.5' + lc = patsy.DesignInfo(mod.exog_names).linear_constraint(constr) + cls.res1 = fit_constrained(mod, lc.coefs, lc.constants, + fit_kwds={'method':'newton', + 'disp': 0}) + cls.constraints = lc + # TODO: bfgs fails + + # test method of Poisson, not monkey patched + cls.res1m = mod.fit_constrained(constr, + method='bfgs', disp=0, + start_params=cls.res1[0]) + + +class TestGLMPoissonConstrained1a(CheckPoissonConstrainedMixin): + + @classmethod + def setup_class(cls): + from statsmodels.base._constraints import fit_constrained + + cls.res2 = results.results_noexposure_constraint + cls.idx = [7, 3, 4, 5, 6, 0, 1] # 2 is dropped baseline for categorical + + # example without offset + formula = 'deaths ~ logpyears + smokes + C(agecat)' + mod = GLM.from_formula(formula, data=data, + family=families.Poisson()) + + constr = 'C(agecat)[T.4] = C(agecat)[T.5]' + lc = patsy.DesignInfo(mod.exog_names).linear_constraint(constr) + cls.res1 = fit_constrained(mod, lc.coefs, lc.constants) + cls.constraints = lc + cls.res1m = mod.fit_constrained(constr) + + +class TestGLMPoissonConstrained1b(CheckPoissonConstrainedMixin): + + @classmethod + def setup_class(cls): + from statsmodels.genmod.generalized_linear_model import GLM + from statsmodels.genmod import families + from statsmodels.base._constraints import fit_constrained + + cls.res2 = results.results_exposure_constraint + cls.idx = [6, 2, 3, 4, 5, 0] # 2 is dropped baseline for categorical + + # example with offset + formula = 'deaths ~ smokes + C(agecat)' + mod = GLM.from_formula(formula, data=data, + family=families.Poisson(), + offset=np.log(data['pyears'].values)) + + constr = 'C(agecat)[T.4] = C(agecat)[T.5]' + lc = patsy.DesignInfo(mod.exog_names).linear_constraint(constr) + + cls.res1 = fit_constrained(mod, lc.coefs, lc.constants, + fit_kwds={'atol': 1e-10}) + cls.constraints = lc + cls.res1m = mod.fit_constrained(constr, atol=1e-10)._results + + def test_compare_glm_poisson(self): + res1 = self.res1m + res2 = self.res2 + + formula = 'deaths ~ smokes + C(agecat)' + mod = Poisson.from_formula(formula, data=data, + exposure=data['pyears'].values) + #offset=np.log(data['pyears'].values)) + + constr = 'C(agecat)[T.4] = C(agecat)[T.5]' + res2 = mod.fit_constrained(constr, start_params=self.res1m.params, + method='newton', warn_convergence=False, + disp=0) + + # we get high precision because we use the params as start_params + + # basic, just as check that we have the same model + assert_allclose(res1.params, res2.params, rtol=1e-12) + assert_allclose(res1.bse, res2.bse, rtol=1e-12) + + # check predict, fitted, ... + + predicted = res1.predict() + assert_allclose(predicted, res2.predict(), rtol=1e-10) + assert_allclose(res1.mu, predicted, rtol=1e-10) + assert_allclose(res1.fittedvalues, predicted, rtol=1e-10) + assert_allclose(res2.predict(linear=True), res2.predict(linear=True), + rtol=1e-10) + + +class CheckGLMConstrainedMixin(CheckPoissonConstrainedMixin): + # add tests for some GLM specific attributes + + def test_glm(self): + res2 = self.res2 # reference results + res1 = self.res1m + + #assert_allclose(res1.aic, res2.aic, rtol=1e-10) # far away + # Stata aic in ereturn and in estat ic are very different + # we have the same as estat ic + # see issue #1733 + assert_allclose(res1.aic, res2.infocrit[4], rtol=1e-10) + + assert_allclose(res1.bic, res2.bic, rtol=1e-10) + # bic is deviance based + #assert_allclose(res1.bic, res2.infocrit[5], rtol=1e-10) + assert_allclose(res1.deviance, res2.deviance, rtol=1e-10) + # TODO: which chi2 are these + #assert_allclose(res1.pearson_chi2, res2.chi2, rtol=1e-10) + + +class TestGLMLogitConstrained1(CheckGLMConstrainedMixin): + + @classmethod + def setup_class(cls): + cls.idx = slice(None) + # params sequence same as Stata, but Stata reports param = nan + # and we have param = value = 0 + + #res1ul = Logit(data.endog, data.exog).fit(method="newton", disp=0) + cls.res2 = reslogit.results_constraint1 + + mod1 = GLM(spector_data.endog, spector_data.exog, + family=families.Binomial()) + + constr = 'x1 = 2.8' + cls.res1m = mod1.fit_constrained(constr) + + R, q = cls.res1m.constraints.coefs, cls.res1m.constraints.constants + cls.res1 = fit_constrained(mod1, R, q) + + +class TestGLMLogitConstrained2(CheckGLMConstrainedMixin): + + @classmethod + def setup_class(cls): + cls.idx = slice(None) # params sequence same as Stata + #res1ul = Logit(data.endog, data.exog).fit(method="newton", disp=0) + cls.res2 = reslogit.results_constraint2 + + mod1 = GLM(spector_data.endog, spector_data.exog, + family=families.Binomial()) + + constr = 'x1 - x3 = 0' + cls.res1m = mod1.fit_constrained(constr, atol=1e-10) + + R, q = cls.res1m.constraints.coefs, cls.res1m.constraints.constants + cls.res1 = fit_constrained(mod1, R, q, fit_kwds={'atol': 1e-10}) + cls.constraints_rq = (R, q) + + + def test_predict(self): + # results only available for this case + res2 = self.res2 # reference results + res1 = self.res1m + + predicted = res1.predict() + assert_allclose(predicted, res2.predict_mu, atol=1e-7) + assert_allclose(res1.mu, predicted, rtol=1e-10) + assert_allclose(res1.fittedvalues, predicted, rtol=1e-10) + + + def test_smoke(self): + # trailing text in summary, assumes it's the first extra string + summ = self.res1m.summary() + assert_('linear equality constraints' in summ.extra_txt) + summ = self.res1m.summary2() + assert_('linear equality constraints' in summ.extra_txt[0]) + + + def test_fit_constrained_wrap(self): + # minimal test + res2 = self.res2 # reference results + + from statsmodels.base._constraints import fit_constrained_wrap + res_wrap = fit_constrained_wrap(self.res1m.model, self.constraints_rq) + assert_allclose(res_wrap.params, res2.params, rtol=1e-6) + assert_allclose(res_wrap.params, res2.params, rtol=1e-6) + + +def junk(): + # Singular Matrix in mod1a.fit() + + formula1 = 'deaths ~ smokes + C(agecat)' + + formula2 = 'deaths ~ C(agecat) + C(smokes) : C(agecat)' # same as Stata default + + mod = Poisson.from_formula(formula2, data=data, exposure=data['pyears'].values) + + res0 = mod.fit() + + constraints = 'C(smokes)[T.1]:C(agecat)[3] = C(smokes)[T.1]:C(agecat)[4]' + + import patsy + lc = patsy.DesignInfo(mod.exog_names).linear_constraint(constraints) + R, q = lc.coefs, lc.constants + + resc = mod.fit_constrained(R,q, fit_kwds={'method':'bfgs'}) + + # example without offset + formula1a = 'deaths ~ logpyears + smokes + C(agecat)' + mod1a = Poisson.from_formula(formula1a, data=data) + print(mod1a.exog.shape) + + res1a = mod1a.fit() + lc_1a = patsy.DesignInfo(mod1a.exog_names).linear_constraint('C(agecat)[T.4] = C(agecat)[T.5]') + resc1a = mod1a.fit_constrained(lc_1a.coefs, lc_1a.constants, fit_kwds={'method':'newton'}) + print(resc1a[0]) + print(resc1a[1]) diff --git a/statsmodels/discrete/tests/test_discrete.py b/statsmodels/discrete/tests/test_discrete.py new file mode 100644 index 0000000..5d74d66 --- /dev/null +++ b/statsmodels/discrete/tests/test_discrete.py @@ -0,0 +1,1429 @@ +""" +Tests for discrete models + +Notes +----- +DECIMAL_3 is used because it seems that there is a loss of precision +in the Stata *.dta -> *.csv output, NOT the estimator for the Poisson +tests. +""" +# pylint: disable-msg=E1101 +from statsmodels.compat.python import range +import os +import numpy as np +from numpy.testing import (assert_, assert_raises, assert_almost_equal, + assert_equal, assert_array_equal, assert_allclose, + assert_array_less) + +from statsmodels.discrete.discrete_model import (Logit, Probit, MNLogit, + Poisson, NegativeBinomial) +from statsmodels.discrete.discrete_margins import _iscount, _isdummy +import statsmodels.api as sm +import statsmodels.formula.api as smf +from nose import SkipTest +from .results.results_discrete import Spector, DiscreteL1, RandHIE, Anes +from statsmodels.tools.sm_exceptions import PerfectSeparationError + +try: + import cvxopt + has_cvxopt = True +except ImportError: + has_cvxopt = False + +try: + from scipy.optimize import basinhopping + has_basinhopping = True +except ImportError: + has_basinhopping = False + +DECIMAL_14 = 14 +DECIMAL_10 = 10 +DECIMAL_9 = 9 +DECIMAL_4 = 4 +DECIMAL_3 = 3 +DECIMAL_2 = 2 +DECIMAL_1 = 1 +DECIMAL_0 = 0 + +class CheckModelResults(object): + """ + res2 should be the test results from RModelWrap + or the results as defined in model_results_data + """ + + def test_params(self): + assert_almost_equal(self.res1.params, self.res2.params, DECIMAL_4) + + def test_conf_int(self): + assert_allclose(self.res1.conf_int(), self.res2.conf_int, rtol=8e-5) + + def test_zstat(self): + assert_almost_equal(self.res1.tvalues, self.res2.z, DECIMAL_4) + + def pvalues(self): + assert_almost_equal(self.res1.pvalues, self.res2.pvalues, DECIMAL_4) + +# def test_cov_params(self): +# assert_almost_equal(self.res1.cov_params(), self.res2.cov_params, +# DECIMAL_4) + + def test_llf(self): + assert_almost_equal(self.res1.llf, self.res2.llf, DECIMAL_4) + + def test_llnull(self): + assert_almost_equal(self.res1.llnull, self.res2.llnull, DECIMAL_4) + + def test_llr(self): + assert_almost_equal(self.res1.llr, self.res2.llr, DECIMAL_3) + + def test_llr_pvalue(self): + assert_almost_equal(self.res1.llr_pvalue, self.res2.llr_pvalue, + DECIMAL_4) + + def test_normalized_cov_params(self): + pass + + def test_bse(self): + assert_almost_equal(self.res1.bse, self.res2.bse, DECIMAL_4) + + def test_dof(self): + assert_equal(self.res1.df_model, self.res2.df_model) + assert_equal(self.res1.df_resid, self.res2.df_resid) + + def test_aic(self): + assert_almost_equal(self.res1.aic, self.res2.aic, DECIMAL_3) + + def test_bic(self): + assert_almost_equal(self.res1.bic, self.res2.bic, DECIMAL_3) + + def test_predict(self): + assert_almost_equal(self.res1.model.predict(self.res1.params), + self.res2.phat, DECIMAL_4) + + def test_predict_xb(self): + assert_almost_equal(self.res1.model.predict(self.res1.params, + linear=True), + self.res2.yhat, DECIMAL_4) + + def test_loglikeobs(self): + #basic cross check + llobssum = self.res1.model.loglikeobs(self.res1.params).sum() + assert_almost_equal(llobssum, self.res1.llf, DECIMAL_14) + + def test_jac(self): + #basic cross check + jacsum = self.res1.model.score_obs(self.res1.params).sum(0) + score = self.res1.model.score(self.res1.params) + assert_almost_equal(jacsum, score, DECIMAL_9) #Poisson has low precision ? + + +class CheckBinaryResults(CheckModelResults): + def test_pred_table(self): + assert_array_equal(self.res1.pred_table(), self.res2.pred_table) + + def test_resid_dev(self): + assert_almost_equal(self.res1.resid_dev, self.res2.resid_dev, + DECIMAL_4) + + def test_resid_generalized(self): + assert_almost_equal(self.res1.resid_generalized, + self.res2.resid_generalized, DECIMAL_4) + + def smoke_test_resid_response(self): + self.res1.resid_response + + +class CheckMargEff(object): + """ + Test marginal effects (margeff) and its options + """ + + def test_nodummy_dydxoverall(self): + me = self.res1.get_margeff() + assert_almost_equal(me.margeff, + self.res2.margeff_nodummy_dydx, DECIMAL_4) + assert_almost_equal(me.margeff_se, + self.res2.margeff_nodummy_dydx_se, DECIMAL_4) + + def test_nodummy_dydxmean(self): + me = self.res1.get_margeff(at='mean') + assert_almost_equal(me.margeff, + self.res2.margeff_nodummy_dydxmean, DECIMAL_4) + assert_almost_equal(me.margeff_se, + self.res2.margeff_nodummy_dydxmean_se, DECIMAL_4) + + def test_nodummy_dydxmedian(self): + me = self.res1.get_margeff(at='median') + assert_almost_equal(me.margeff, + self.res2.margeff_nodummy_dydxmedian, DECIMAL_4) + assert_almost_equal(me.margeff_se, + self.res2.margeff_nodummy_dydxmedian_se, DECIMAL_4) + + def test_nodummy_dydxzero(self): + me = self.res1.get_margeff(at='zero') + assert_almost_equal(me.margeff, + self.res2.margeff_nodummy_dydxzero, DECIMAL_4) + assert_almost_equal(me.margeff_se, + self.res2.margeff_nodummy_dydxzero, DECIMAL_4) + + def test_nodummy_dyexoverall(self): + me = self.res1.get_margeff(method='dyex') + assert_almost_equal(me.margeff, + self.res2.margeff_nodummy_dyex, DECIMAL_4) + assert_almost_equal(me.margeff_se, + self.res2.margeff_nodummy_dyex_se, DECIMAL_4) + + def test_nodummy_dyexmean(self): + me = self.res1.get_margeff(at='mean', method='dyex') + assert_almost_equal(me.margeff, + self.res2.margeff_nodummy_dyexmean, DECIMAL_4) + assert_almost_equal(me.margeff_se, + self.res2.margeff_nodummy_dyexmean_se, DECIMAL_4) + + def test_nodummy_dyexmedian(self): + me = self.res1.get_margeff(at='median', method='dyex') + assert_almost_equal(me.margeff, + self.res2.margeff_nodummy_dyexmedian, DECIMAL_4) + assert_almost_equal(me.margeff_se, + self.res2.margeff_nodummy_dyexmedian_se, DECIMAL_4) + + def test_nodummy_dyexzero(self): + me = self.res1.get_margeff(at='zero', method='dyex') + assert_almost_equal(me.margeff, + self.res2.margeff_nodummy_dyexzero, DECIMAL_4) + assert_almost_equal(me.margeff_se, + self.res2.margeff_nodummy_dyexzero_se, DECIMAL_4) + + def test_nodummy_eydxoverall(self): + me = self.res1.get_margeff(method='eydx') + assert_almost_equal(me.margeff, + self.res2.margeff_nodummy_eydx, DECIMAL_4) + assert_almost_equal(me.margeff_se, + self.res2.margeff_nodummy_eydx_se, DECIMAL_4) + + def test_nodummy_eydxmean(self): + me = self.res1.get_margeff(at='mean', method='eydx') + assert_almost_equal(me.margeff, + self.res2.margeff_nodummy_eydxmean, DECIMAL_4) + assert_almost_equal(me.margeff_se, + self.res2.margeff_nodummy_eydxmean_se, DECIMAL_4) + + def test_nodummy_eydxmedian(self): + me = self.res1.get_margeff(at='median', method='eydx') + assert_almost_equal(me.margeff, + self.res2.margeff_nodummy_eydxmedian, DECIMAL_4) + assert_almost_equal(me.margeff_se, + self.res2.margeff_nodummy_eydxmedian_se, DECIMAL_4) + + def test_nodummy_eydxzero(self): + me = self.res1.get_margeff(at='zero', method='eydx') + assert_almost_equal(me.margeff, + self.res2.margeff_nodummy_eydxzero, DECIMAL_4) + assert_almost_equal(me.margeff_se, + self.res2.margeff_nodummy_eydxzero_se, DECIMAL_4) + + def test_nodummy_eyexoverall(self): + me = self.res1.get_margeff(method='eyex') + assert_almost_equal(me.margeff, + self.res2.margeff_nodummy_eyex, DECIMAL_4) + assert_almost_equal(me.margeff_se, + self.res2.margeff_nodummy_eyex_se, DECIMAL_4) + + def test_nodummy_eyexmean(self): + me = self.res1.get_margeff(at='mean', method='eyex') + assert_almost_equal(me.margeff, + self.res2.margeff_nodummy_eyexmean, DECIMAL_4) + assert_almost_equal(me.margeff_se, + self.res2.margeff_nodummy_eyexmean_se, DECIMAL_4) + + def test_nodummy_eyexmedian(self): + me = self.res1.get_margeff(at='median', method='eyex') + assert_almost_equal(me.margeff, + self.res2.margeff_nodummy_eyexmedian, DECIMAL_4) + assert_almost_equal(me.margeff_se, + self.res2.margeff_nodummy_eyexmedian_se, DECIMAL_4) + + def test_nodummy_eyexzero(self): + me = self.res1.get_margeff(at='zero', method='eyex') + assert_almost_equal(me.margeff, + self.res2.margeff_nodummy_eyexzero, DECIMAL_4) + assert_almost_equal(me.margeff_se, + self.res2.margeff_nodummy_eyexzero_se, DECIMAL_4) + + def test_dummy_dydxoverall(self): + me = self.res1.get_margeff(dummy=True) + assert_almost_equal(me.margeff, + self.res2.margeff_dummy_dydx, DECIMAL_4) + assert_almost_equal(me.margeff_se, + self.res2.margeff_dummy_dydx_se, DECIMAL_4) + + def test_dummy_dydxmean(self): + me = self.res1.get_margeff(at='mean', dummy=True) + assert_almost_equal(me.margeff, + self.res2.margeff_dummy_dydxmean, DECIMAL_4) + assert_almost_equal(me.margeff_se, + self.res2.margeff_dummy_dydxmean_se, DECIMAL_4) + + def test_dummy_eydxoverall(self): + me = self.res1.get_margeff(method='eydx', dummy=True) + assert_almost_equal(me.margeff, + self.res2.margeff_dummy_eydx, DECIMAL_4) + assert_almost_equal(me.margeff_se, + self.res2.margeff_dummy_eydx_se, DECIMAL_4) + + def test_dummy_eydxmean(self): + me = self.res1.get_margeff(at='mean', method='eydx', dummy=True) + assert_almost_equal(me.margeff, + self.res2.margeff_dummy_eydxmean, DECIMAL_4) + assert_almost_equal(me.margeff_se, + self.res2.margeff_dummy_eydxmean_se, DECIMAL_4) + + def test_count_dydxoverall(self): + me = self.res1.get_margeff(count=True) + assert_almost_equal(me.margeff, + self.res2.margeff_count_dydx, DECIMAL_4) + assert_almost_equal(me.margeff_se, + self.res2.margeff_count_dydx_se, DECIMAL_4) + + def test_count_dydxmean(self): + me = self.res1.get_margeff(count=True, at='mean') + assert_almost_equal(me.margeff, + self.res2.margeff_count_dydxmean, DECIMAL_4) + assert_almost_equal(me.margeff_se, + self.res2.margeff_count_dydxmean_se, DECIMAL_4) + + def test_count_dummy_dydxoverall(self): + me = self.res1.get_margeff(count=True, dummy=True) + assert_almost_equal(me.margeff, + self.res2.margeff_count_dummy_dydxoverall, DECIMAL_4) + assert_almost_equal(me.margeff_se, + self.res2.margeff_count_dummy_dydxoverall_se, DECIMAL_4) + + def test_count_dummy_dydxmean(self): + me = self.res1.get_margeff(count=True, dummy=True, at='mean') + assert_almost_equal(me.margeff, + self.res2.margeff_count_dummy_dydxmean, DECIMAL_4) + assert_almost_equal(me.margeff_se, + self.res2.margeff_count_dummy_dydxmean_se, DECIMAL_4) + +class TestProbitNewton(CheckBinaryResults): + + @classmethod + def setupClass(cls): + data = sm.datasets.spector.load() + data.exog = sm.add_constant(data.exog, prepend=False) + cls.res1 = Probit(data.endog, data.exog).fit(method="newton", disp=0) + res2 = Spector() + res2.probit() + cls.res2 = res2 + + #def test_predict(self): + # assert_almost_equal(self.res1.model.predict(self.res1.params), + # self.res2.predict, DECIMAL_4) + +class TestProbitBFGS(CheckBinaryResults): + + @classmethod + def setupClass(cls): + data = sm.datasets.spector.load() + data.exog = sm.add_constant(data.exog, prepend=False) + cls.res1 = Probit(data.endog, data.exog).fit(method="bfgs", + disp=0) + res2 = Spector() + res2.probit() + cls.res2 = res2 + + +class TestProbitNM(CheckBinaryResults): + @classmethod + def setupClass(cls): + data = sm.datasets.spector.load() + data.exog = sm.add_constant(data.exog, prepend=False) + res2 = Spector() + res2.probit() + cls.res2 = res2 + cls.res1 = Probit(data.endog, data.exog).fit(method="nm", + disp=0, maxiter=500) + +class TestProbitPowell(CheckBinaryResults): + @classmethod + def setupClass(cls): + data = sm.datasets.spector.load() + data.exog = sm.add_constant(data.exog, prepend=False) + res2 = Spector() + res2.probit() + cls.res2 = res2 + cls.res1 = Probit(data.endog, data.exog).fit(method="powell", + disp=0, ftol=1e-8) + +class TestProbitCG(CheckBinaryResults): + @classmethod + def setupClass(cls): + data = sm.datasets.spector.load() + data.exog = sm.add_constant(data.exog, prepend=False) + res2 = Spector() + res2.probit() + cls.res2 = res2 + + # fmin_cg fails to converge on some machines - reparameterize + from statsmodels.tools.transform_model import StandardizeTransform + transf = StandardizeTransform(data.exog) + exog_st = transf(data.exog) + res1_st = Probit(data.endog, + exog_st).fit(method="cg", disp=0, maxiter=1000, + gtol=1e-08) + start_params = transf.transform_params(res1_st.params) + assert_allclose(start_params, res2.params, rtol=1e-5, atol=1e-6) + + cls.res1 = Probit(data.endog, + data.exog).fit(start_params=start_params, + method="cg", maxiter=1000, + gtol=1e-05, disp=0) + + assert_array_less(cls.res1.mle_retvals['fcalls'], 100) + + +class TestProbitNCG(CheckBinaryResults): + @classmethod + def setupClass(cls): + data = sm.datasets.spector.load() + data.exog = sm.add_constant(data.exog, prepend=False) + res2 = Spector() + res2.probit() + cls.res2 = res2 + cls.res1 = Probit(data.endog, data.exog).fit(method="ncg", + disp=0, avextol=1e-8, + warn_convergence=False) + # converges close enough but warnflag is 2 for precision loss + +class TestProbitBasinhopping(CheckBinaryResults): + @classmethod + def setupClass(cls): + if not has_basinhopping: + raise SkipTest("Skipped TestProbitBasinhopping since" + " basinhopping solver is not available") + + data = sm.datasets.spector.load() + data.exog = sm.add_constant(data.exog, prepend=False) + res2 = Spector() + res2.probit() + cls.res2 = res2 + fit = Probit(data.endog, data.exog).fit + cls.res1 = fit(method="basinhopping", disp=0, niter=5, + minimizer={'method' : 'L-BFGS-B', 'tol' : 1e-8}) + +class CheckLikelihoodModelL1(object): + """ + For testing results generated with L1 regularization + """ + def test_params(self): + assert_almost_equal(self.res1.params, self.res2.params, DECIMAL_4) + + def test_conf_int(self): + assert_almost_equal( + self.res1.conf_int(), self.res2.conf_int, DECIMAL_4) + + def test_bse(self): + assert_almost_equal(self.res1.bse, self.res2.bse, DECIMAL_4) + + def test_nnz_params(self): + assert_almost_equal( + self.res1.nnz_params, self.res2.nnz_params, DECIMAL_4) + + def test_aic(self): + assert_almost_equal( + self.res1.aic, self.res2.aic, DECIMAL_3) + + def test_bic(self): + assert_almost_equal( + self.res1.bic, self.res2.bic, DECIMAL_3) + + +class TestProbitL1(CheckLikelihoodModelL1): + @classmethod + def setupClass(cls): + data = sm.datasets.spector.load() + data.exog = sm.add_constant(data.exog, prepend=True) + alpha = np.array([0.1, 0.2, 0.3, 10]) #/ data.exog.shape[0] + cls.res1 = Probit(data.endog, data.exog).fit_regularized( + method="l1", alpha=alpha, disp=0, trim_mode='auto', + auto_trim_tol=0.02, acc=1e-10, maxiter=1000) + res2 = DiscreteL1() + res2.probit() + cls.res2 = res2 + + def test_cov_params(self): + assert_almost_equal( + self.res1.cov_params(), self.res2.cov_params, DECIMAL_4) + + +class TestMNLogitL1(CheckLikelihoodModelL1): + @classmethod + def setupClass(cls): + anes_data = sm.datasets.anes96.load() + anes_exog = anes_data.exog + anes_exog = sm.add_constant(anes_exog, prepend=False) + mlogit_mod = sm.MNLogit(anes_data.endog, anes_exog) + alpha = 10. * np.ones((mlogit_mod.J - 1, mlogit_mod.K)) #/ anes_exog.shape[0] + alpha[-1,:] = 0 + cls.res1 = mlogit_mod.fit_regularized( + method='l1', alpha=alpha, trim_mode='auto', auto_trim_tol=0.02, + acc=1e-10, disp=0) + res2 = DiscreteL1() + res2.mnlogit() + cls.res2 = res2 + + +class TestLogitL1(CheckLikelihoodModelL1): + @classmethod + def setupClass(cls): + data = sm.datasets.spector.load() + data.exog = sm.add_constant(data.exog, prepend=True) + cls.alpha = 3 * np.array([0., 1., 1., 1.]) #/ data.exog.shape[0] + cls.res1 = Logit(data.endog, data.exog).fit_regularized( + method="l1", alpha=cls.alpha, disp=0, trim_mode='size', + size_trim_tol=1e-5, acc=1e-10, maxiter=1000) + res2 = DiscreteL1() + res2.logit() + cls.res2 = res2 + + def test_cov_params(self): + assert_almost_equal( + self.res1.cov_params(), self.res2.cov_params, DECIMAL_4) + + +class TestCVXOPT(object): + @classmethod + def setupClass(self): + self.data = sm.datasets.spector.load() + self.data.exog = sm.add_constant(self.data.exog, prepend=True) + + def test_cvxopt_versus_slsqp(self): + #Compares resutls from cvxopt to the standard slsqp + if has_cvxopt: + self.alpha = 3. * np.array([0, 1, 1, 1.]) #/ self.data.endog.shape[0] + res_slsqp = Logit(self.data.endog, self.data.exog).fit_regularized( + method="l1", alpha=self.alpha, disp=0, acc=1e-10, maxiter=1000, + trim_mode='auto') + res_cvxopt = Logit(self.data.endog, self.data.exog).fit_regularized( + method="l1_cvxopt_cp", alpha=self.alpha, disp=0, abstol=1e-10, + trim_mode='auto', auto_trim_tol=0.01, maxiter=1000) + assert_almost_equal(res_slsqp.params, res_cvxopt.params, DECIMAL_4) + else: + raise SkipTest("Skipped test_cvxopt since cvxopt is not available") + + +class TestSweepAlphaL1(object): + @classmethod + def setupClass(cls): + data = sm.datasets.spector.load() + data.exog = sm.add_constant(data.exog, prepend=True) + cls.model = Logit(data.endog, data.exog) + cls.alphas = np.array( + [[0.1, 0.1, 0.1, 0.1], + [0.4, 0.4, 0.5, 0.5], + [0.5, 0.5, 1, 1]]) #/ data.exog.shape[0] + cls.res1 = DiscreteL1() + cls.res1.sweep() + + def test_sweep_alpha(self): + for i in range(3): + alpha = self.alphas[i, :] + res2 = self.model.fit_regularized( + method="l1", alpha=alpha, disp=0, acc=1e-10, + trim_mode='off', maxiter=1000) + assert_almost_equal(res2.params, self.res1.params[i], DECIMAL_4) + + +class CheckL1Compatability(object): + """ + Tests compatability between l1 and unregularized by setting alpha such + that certain parameters should be effectively unregularized, and others + should be ignored by the model. + """ + def test_params(self): + m = self.m + assert_almost_equal( + self.res_unreg.params[:m], self.res_reg.params[:m], DECIMAL_4) + # The last entry should be close to zero + # handle extra parameter of NegativeBinomial + kvars = self.res_reg.model.exog.shape[1] + assert_almost_equal(0, self.res_reg.params[m:kvars], DECIMAL_4) + + def test_cov_params(self): + m = self.m + # The restricted cov_params should be equal + assert_almost_equal( + self.res_unreg.cov_params()[:m, :m], + self.res_reg.cov_params()[:m, :m], + DECIMAL_1) + + def test_df(self): + assert_equal(self.res_unreg.df_model, self.res_reg.df_model) + assert_equal(self.res_unreg.df_resid, self.res_reg.df_resid) + + def test_t_test(self): + m = self.m + kvars = self.kvars + # handle extra parameter of NegativeBinomial + extra = getattr(self, 'k_extra', 0) + t_unreg = self.res_unreg.t_test(np.eye(len(self.res_unreg.params))) + t_reg = self.res_reg.t_test(np.eye(kvars + extra)) + assert_almost_equal(t_unreg.effect[:m], t_reg.effect[:m], DECIMAL_3) + assert_almost_equal(t_unreg.sd[:m], t_reg.sd[:m], DECIMAL_3) + assert_almost_equal(np.nan, t_reg.sd[m]) + assert_allclose(t_unreg.tvalue[:m], t_reg.tvalue[:m], atol=3e-3) + assert_almost_equal(np.nan, t_reg.tvalue[m]) + + def test_f_test(self): + m = self.m + kvars = self.kvars + # handle extra parameter of NegativeBinomial + extra = getattr(self, 'k_extra', 0) + f_unreg = self.res_unreg.f_test(np.eye(len(self.res_unreg.params))[:m]) + f_reg = self.res_reg.f_test(np.eye(kvars + extra)[:m]) + assert_allclose(f_unreg.fvalue, f_reg.fvalue, rtol=3e-5, atol=1e-3) + assert_almost_equal(f_unreg.pvalue, f_reg.pvalue, DECIMAL_3) + + def test_bad_r_matrix(self): + kvars = self.kvars + assert_raises(ValueError, self.res_reg.f_test, np.eye(kvars) ) + + +class TestPoissonL1Compatability(CheckL1Compatability): + @classmethod + def setupClass(cls): + cls.kvars = 10 # Number of variables + cls.m = 7 # Number of unregularized parameters + rand_data = sm.datasets.randhie.load() + rand_exog = rand_data.exog.view(float).reshape(len(rand_data.exog), -1) + rand_exog = sm.add_constant(rand_exog, prepend=True) + # Drop some columns and do an unregularized fit + exog_no_PSI = rand_exog[:, :cls.m] + mod_unreg = sm.Poisson(rand_data.endog, exog_no_PSI) + cls.res_unreg = mod_unreg.fit(method="newton", disp=False) + # Do a regularized fit with alpha, effectively dropping the last column + alpha = 10 * len(rand_data.endog) * np.ones(cls.kvars) + alpha[:cls.m] = 0 + cls.res_reg = sm.Poisson(rand_data.endog, rand_exog).fit_regularized( + method='l1', alpha=alpha, disp=False, acc=1e-10, maxiter=2000, + trim_mode='auto') + + +class TestNegativeBinomialL1Compatability(CheckL1Compatability): + @classmethod + def setupClass(cls): + cls.kvars = 10 # Number of variables + cls.m = 7 # Number of unregularized parameters + rand_data = sm.datasets.randhie.load() + rand_exog = rand_data.exog.view(float).reshape(len(rand_data.exog), -1) + rand_exog_st = (rand_exog - rand_exog.mean(0)) / rand_exog.std(0) + rand_exog = sm.add_constant(rand_exog_st, prepend=True) + # Drop some columns and do an unregularized fit + exog_no_PSI = rand_exog[:, :cls.m] + mod_unreg = sm.NegativeBinomial(rand_data.endog, exog_no_PSI) + cls.res_unreg = mod_unreg.fit(method="newton", disp=False) + # Do a regularized fit with alpha, effectively dropping the last column + alpha = 10 * len(rand_data.endog) * np.ones(cls.kvars + 1) + alpha[:cls.m] = 0 + alpha[-1] = 0 # don't penalize alpha + + mod_reg = sm.NegativeBinomial(rand_data.endog, rand_exog) + cls.res_reg = mod_reg.fit_regularized( + method='l1', alpha=alpha, disp=False, acc=1e-10, maxiter=2000, + trim_mode='auto') + cls.k_extra = 1 # 1 extra parameter in nb2 + + +class TestNegativeBinomialGeoL1Compatability(CheckL1Compatability): + @classmethod + def setupClass(cls): + cls.kvars = 10 # Number of variables + cls.m = 7 # Number of unregularized parameters + rand_data = sm.datasets.randhie.load() + rand_exog = rand_data.exog.view(float).reshape(len(rand_data.exog), -1) + rand_exog = sm.add_constant(rand_exog, prepend=True) + # Drop some columns and do an unregularized fit + exog_no_PSI = rand_exog[:, :cls.m] + mod_unreg = sm.NegativeBinomial(rand_data.endog, exog_no_PSI, + loglike_method='geometric') + cls.res_unreg = mod_unreg.fit(method="newton", disp=False) + # Do a regularized fit with alpha, effectively dropping the last columns + alpha = 10 * len(rand_data.endog) * np.ones(cls.kvars) + alpha[:cls.m] = 0 + mod_reg = sm.NegativeBinomial(rand_data.endog, rand_exog, + loglike_method='geometric') + cls.res_reg = mod_reg.fit_regularized( + method='l1', alpha=alpha, disp=False, acc=1e-10, maxiter=2000, + trim_mode='auto') + + assert_equal(mod_reg.loglike_method, 'geometric') + + +class TestLogitL1Compatability(CheckL1Compatability): + @classmethod + def setupClass(cls): + cls.kvars = 4 # Number of variables + cls.m = 3 # Number of unregularized parameters + data = sm.datasets.spector.load() + data.exog = sm.add_constant(data.exog, prepend=True) + # Do a regularized fit with alpha, effectively dropping the last column + alpha = np.array([0, 0, 0, 10]) + cls.res_reg = Logit(data.endog, data.exog).fit_regularized( + method="l1", alpha=alpha, disp=0, acc=1e-15, maxiter=2000, + trim_mode='auto') + # Actually drop the last columnand do an unregularized fit + exog_no_PSI = data.exog[:, :cls.m] + cls.res_unreg = Logit(data.endog, exog_no_PSI).fit(disp=0, tol=1e-15) + + +class TestMNLogitL1Compatability(CheckL1Compatability): + @classmethod + def setupClass(cls): + cls.kvars = 4 # Number of variables + cls.m = 3 # Number of unregularized parameters + data = sm.datasets.spector.load() + data.exog = sm.add_constant(data.exog, prepend=True) + alpha = np.array([0, 0, 0, 10]) + cls.res_reg = MNLogit(data.endog, data.exog).fit_regularized( + method="l1", alpha=alpha, disp=0, acc=1e-15, maxiter=2000, + trim_mode='auto') + # Actually drop the last columnand do an unregularized fit + exog_no_PSI = data.exog[:, :cls.m] + cls.res_unreg = MNLogit(data.endog, exog_no_PSI).fit( + disp=0, tol=1e-15, method='bfgs', maxiter=1000) + + def test_t_test(self): + m = self.m + kvars = self.kvars + t_unreg = self.res_unreg.t_test(np.eye(m)) + t_reg = self.res_reg.t_test(np.eye(kvars)) + assert_almost_equal(t_unreg.effect, t_reg.effect[:m], DECIMAL_3) + assert_almost_equal(t_unreg.sd, t_reg.sd[:m], DECIMAL_3) + assert_almost_equal(np.nan, t_reg.sd[m]) + assert_almost_equal(t_unreg.tvalue, t_reg.tvalue[:m, :m], DECIMAL_3) + + def test_f_test(self): + raise SkipTest("Skipped test_f_test for MNLogit") + + +class TestProbitL1Compatability(CheckL1Compatability): + @classmethod + def setupClass(cls): + cls.kvars = 4 # Number of variables + cls.m = 3 # Number of unregularized parameters + data = sm.datasets.spector.load() + data.exog = sm.add_constant(data.exog, prepend=True) + alpha = np.array([0, 0, 0, 10]) + cls.res_reg = Probit(data.endog, data.exog).fit_regularized( + method="l1", alpha=alpha, disp=0, acc=1e-15, maxiter=2000, + trim_mode='auto') + # Actually drop the last columnand do an unregularized fit + exog_no_PSI = data.exog[:, :cls.m] + cls.res_unreg = Probit(data.endog, exog_no_PSI).fit(disp=0, tol=1e-15) + + +class CompareL1(object): + """ + For checking results for l1 regularization. + Assumes self.res1 and self.res2 are two legitimate models to be compared. + """ + def test_basic_results(self): + assert_almost_equal(self.res1.params, self.res2.params, DECIMAL_4) + assert_almost_equal(self.res1.cov_params(), self.res2.cov_params(), DECIMAL_4) + assert_almost_equal(self.res1.conf_int(), self.res2.conf_int(), DECIMAL_4) + assert_almost_equal(self.res1.pvalues, self.res2.pvalues, DECIMAL_4) + assert_almost_equal(self.res1.pred_table(), self.res2.pred_table(), DECIMAL_4) + assert_almost_equal(self.res1.bse, self.res2.bse, DECIMAL_4) + assert_almost_equal(self.res1.llf, self.res2.llf, DECIMAL_4) + assert_almost_equal(self.res1.aic, self.res2.aic, DECIMAL_4) + assert_almost_equal(self.res1.bic, self.res2.bic, DECIMAL_4) + assert_almost_equal(self.res1.pvalues, self.res2.pvalues, DECIMAL_4) + + +class CompareL11D(CompareL1): + """ + Check t and f tests. This only works for 1-d results + """ + def test_tests(self): + restrictmat = np.eye(len(self.res1.params.ravel())) + assert_almost_equal(self.res1.t_test(restrictmat).pvalue, + self.res2.t_test(restrictmat).pvalue, DECIMAL_4) + assert_almost_equal(self.res1.f_test(restrictmat).pvalue, + self.res2.f_test(restrictmat).pvalue, DECIMAL_4) + + +class TestL1AlphaZeroLogit(CompareL11D): + """ + Compares l1 model with alpha = 0 to the unregularized model. + """ + @classmethod + def setupClass(cls): + data = sm.datasets.spector.load() + data.exog = sm.add_constant(data.exog, prepend=True) + cls.res1 = Logit(data.endog, data.exog).fit_regularized( + method="l1", alpha=0, disp=0, acc=1e-15, maxiter=1000, + trim_mode='auto', auto_trim_tol=0.01) + cls.res2 = Logit(data.endog, data.exog).fit(disp=0, tol=1e-15) + + +class TestL1AlphaZeroProbit(CompareL11D): + """ + Compares l1 model with alpha = 0 to the unregularized model. + """ + @classmethod + def setupClass(cls): + data = sm.datasets.spector.load() + data.exog = sm.add_constant(data.exog, prepend=True) + cls.res1 = Probit(data.endog, data.exog).fit_regularized( + method="l1", alpha=0, disp=0, acc=1e-15, maxiter=1000, + trim_mode='auto', auto_trim_tol=0.01) + cls.res2 = Probit(data.endog, data.exog).fit(disp=0, tol=1e-15) + + +class TestL1AlphaZeroMNLogit(CompareL1): + @classmethod + def setupClass(cls): + data = sm.datasets.anes96.load() + data.exog = sm.add_constant(data.exog, prepend=False) + cls.res1 = MNLogit(data.endog, data.exog).fit_regularized( + method="l1", alpha=0, disp=0, acc=1e-15, maxiter=1000, + trim_mode='auto', auto_trim_tol=0.01) + cls.res2 = MNLogit(data.endog, data.exog).fit(disp=0, tol=1e-15, + method='bfgs', + maxiter=1000) + + +class TestLogitNewton(CheckBinaryResults, CheckMargEff): + @classmethod + def setupClass(cls): + data = sm.datasets.spector.load() + data.exog = sm.add_constant(data.exog, prepend=False) + cls.res1 = Logit(data.endog, data.exog).fit(method="newton", disp=0) + res2 = Spector() + res2.logit() + cls.res2 = res2 + + def test_resid_pearson(self): + assert_almost_equal(self.res1.resid_pearson, + self.res2.resid_pearson, 5) + + def test_nodummy_exog1(self): + me = self.res1.get_margeff(atexog={0 : 2.0, 2 : 1.}) + assert_almost_equal(me.margeff, + self.res2.margeff_nodummy_atexog1, DECIMAL_4) + assert_almost_equal(me.margeff_se, + self.res2.margeff_nodummy_atexog1_se, DECIMAL_4) + + def test_nodummy_exog2(self): + me = self.res1.get_margeff(atexog={1 : 21., 2 : 0}, at='mean') + assert_almost_equal(me.margeff, + self.res2.margeff_nodummy_atexog2, DECIMAL_4) + assert_almost_equal(me.margeff_se, + self.res2.margeff_nodummy_atexog2_se, DECIMAL_4) + + def test_dummy_exog1(self): + me = self.res1.get_margeff(atexog={0 : 2.0, 2 : 1.}, dummy=True) + assert_almost_equal(me.margeff, + self.res2.margeff_dummy_atexog1, DECIMAL_4) + assert_almost_equal(me.margeff_se, + self.res2.margeff_dummy_atexog1_se, DECIMAL_4) + + def test_dummy_exog2(self): + me = self.res1.get_margeff(atexog={1 : 21., 2 : 0}, at='mean', + dummy=True) + assert_almost_equal(me.margeff, + self.res2.margeff_dummy_atexog2, DECIMAL_4) + assert_almost_equal(me.margeff_se, + self.res2.margeff_dummy_atexog2_se, DECIMAL_4) + +class TestLogitBFGS(CheckBinaryResults, CheckMargEff): + @classmethod + def setupClass(cls): + data = sm.datasets.spector.load() + data.exog = sm.add_constant(data.exog, prepend=False) + res2 = Spector() + res2.logit() + cls.res2 = res2 + cls.res1 = Logit(data.endog, data.exog).fit(method="bfgs", disp=0) + +class TestPoissonNewton(CheckModelResults): + @classmethod + def setupClass(cls): + data = sm.datasets.randhie.load() + exog = sm.add_constant(data.exog, prepend=False) + cls.res1 = Poisson(data.endog, exog).fit(method='newton', disp=0) + res2 = RandHIE() + res2.poisson() + cls.res2 = res2 + + def test_margeff_overall(self): + me = self.res1.get_margeff() + assert_almost_equal(me.margeff, + self.res2.margeff_nodummy_overall, DECIMAL_4) + assert_almost_equal(me.margeff_se, + self.res2.margeff_nodummy_overall_se, DECIMAL_4) + + def test_margeff_dummy_overall(self): + me = self.res1.get_margeff(dummy=True) + assert_almost_equal(me.margeff, + self.res2.margeff_dummy_overall, DECIMAL_4) + assert_almost_equal(me.margeff_se, + self.res2.margeff_dummy_overall_se, DECIMAL_4) + + def test_resid(self): + assert_almost_equal(self.res1.resid, self.res2.resid, 2) + + def test_predict_prob(self): + cur_dir = os.path.dirname(os.path.abspath(__file__)) + probs_res = np.loadtxt(os.path.join(cur_dir, "results", + "predict_prob_poisson.csv"), delimiter=",") + + # just check the first 100 obs. vs R to save memory + probs = self.res1.predict_prob()[:100] + assert_almost_equal(probs, probs_res, 8) + +class TestNegativeBinomialNB2Newton(CheckModelResults): + @classmethod + def setupClass(cls): + data = sm.datasets.randhie.load() + exog = sm.add_constant(data.exog, prepend=False) + cls.res1 = NegativeBinomial(data.endog, exog, 'nb2').fit(method='newton', disp=0) + res2 = RandHIE() + res2.negativebinomial_nb2_bfgs() + cls.res2 = res2 + + def test_jac(self): + pass + + #NOTE: The bse is much closer precitions to stata + def test_bse(self): + assert_almost_equal(self.res1.bse, self.res2.bse, DECIMAL_3) + + def test_params(self): + assert_almost_equal(self.res1.params, self.res2.params, DECIMAL_4) + + def test_alpha(self): + self.res1.bse # attaches alpha_std_err + assert_almost_equal(self.res1.lnalpha, self.res2.lnalpha, + DECIMAL_4) + assert_almost_equal(self.res1.lnalpha_std_err, + self.res2.lnalpha_std_err, DECIMAL_4) + + def test_conf_int(self): + assert_almost_equal(self.res1.conf_int(), self.res2.conf_int, + DECIMAL_3) + + def test_zstat(self): # Low precision because Z vs. t + assert_almost_equal(self.res1.pvalues[:-1], self.res2.pvalues, + DECIMAL_2) + + def test_fittedvalues(self): + assert_almost_equal(self.res1.fittedvalues[:10], + self.res2.fittedvalues[:10], DECIMAL_3) + + def test_predict(self): + assert_almost_equal(self.res1.predict()[:10], + np.exp(self.res2.fittedvalues[:10]), DECIMAL_3) + + def test_predict_xb(self): + assert_almost_equal(self.res1.predict(linear=True)[:10], + self.res2.fittedvalues[:10], DECIMAL_3) + + def no_info(self): + pass + + test_jac = no_info + +class TestNegativeBinomialNB1Newton(CheckModelResults): + @classmethod + def setupClass(cls): + data = sm.datasets.randhie.load() + exog = sm.add_constant(data.exog, prepend=False) + cls.res1 = NegativeBinomial(data.endog, exog, 'nb1').fit( + method="newton", + maxiter=100, + disp=0) + res2 = RandHIE() + res2.negativebinomial_nb1_bfgs() + cls.res2 = res2 + + def test_zstat(self): + assert_almost_equal(self.res1.tvalues, self.res2.z, DECIMAL_1) + + def test_lnalpha(self): + self.res1.bse # attaches alpha_std_err + assert_almost_equal(self.res1.lnalpha, self.res2.lnalpha, 3) + assert_almost_equal(self.res1.lnalpha_std_err, + self.res2.lnalpha_std_err, DECIMAL_4) + + def test_params(self): + assert_almost_equal(self.res1.params, self.res2.params, DECIMAL_4) + + def test_conf_int(self): + # the bse for alpha is not high precision from the hessian + # approximation + assert_almost_equal(self.res1.conf_int(), self.res2.conf_int, + DECIMAL_2) + + def test_jac(self): + pass + + def test_predict(self): + pass + + def test_predict_xb(self): + pass + +class TestNegativeBinomialNB2BFGS(CheckModelResults): + @classmethod + def setupClass(cls): + data = sm.datasets.randhie.load() + exog = sm.add_constant(data.exog, prepend=False) + cls.res1 = NegativeBinomial(data.endog, exog, 'nb2').fit( + method='bfgs', disp=0, + maxiter=1000) + res2 = RandHIE() + res2.negativebinomial_nb2_bfgs() + cls.res2 = res2 + + def test_jac(self): + pass + + #NOTE: The bse is much closer precitions to stata + def test_bse(self): + assert_almost_equal(self.res1.bse, self.res2.bse, DECIMAL_3) + + def test_params(self): + assert_almost_equal(self.res1.params, self.res2.params, DECIMAL_4) + + def test_alpha(self): + self.res1.bse # attaches alpha_std_err + assert_almost_equal(self.res1.lnalpha, self.res2.lnalpha, + DECIMAL_4) + assert_almost_equal(self.res1.lnalpha_std_err, + self.res2.lnalpha_std_err, DECIMAL_4) + + def test_conf_int(self): + assert_almost_equal(self.res1.conf_int(), self.res2.conf_int, + DECIMAL_3) + + def test_zstat(self): # Low precision because Z vs. t + assert_almost_equal(self.res1.pvalues[:-1], self.res2.pvalues, + DECIMAL_2) + + def test_fittedvalues(self): + assert_almost_equal(self.res1.fittedvalues[:10], + self.res2.fittedvalues[:10], DECIMAL_3) + + def test_predict(self): + assert_almost_equal(self.res1.predict()[:10], + np.exp(self.res2.fittedvalues[:10]), DECIMAL_3) + + def test_predict_xb(self): + assert_almost_equal(self.res1.predict(linear=True)[:10], + self.res2.fittedvalues[:10], DECIMAL_3) + + def no_info(self): + pass + + test_jac = no_info + + +class TestNegativeBinomialNB1BFGS(CheckModelResults): + @classmethod + def setupClass(cls): + data = sm.datasets.randhie.load() + exog = sm.add_constant(data.exog, prepend=False) + cls.res1 = NegativeBinomial(data.endog, exog, 'nb1').fit(method="bfgs", + maxiter=100, + disp=0) + res2 = RandHIE() + res2.negativebinomial_nb1_bfgs() + cls.res2 = res2 + + def test_zstat(self): + assert_almost_equal(self.res1.tvalues, self.res2.z, DECIMAL_1) + + def test_lnalpha(self): + self.res1.bse # attaches alpha_std_err + assert_almost_equal(self.res1.lnalpha, self.res2.lnalpha, 3) + assert_almost_equal(self.res1.lnalpha_std_err, + self.res2.lnalpha_std_err, DECIMAL_4) + + def test_params(self): + assert_almost_equal(self.res1.params, self.res2.params, DECIMAL_4) + + def test_conf_int(self): + # the bse for alpha is not high precision from the hessian + # approximation + assert_almost_equal(self.res1.conf_int(), self.res2.conf_int, + DECIMAL_2) + + def test_jac(self): + pass + + def test_predict(self): + pass + + def test_predict_xb(self): + pass + + +class TestNegativeBinomialGeometricBFGS(CheckModelResults): + """ + Cannot find another implementation of the geometric to cross-check results + we only test fitted values because geometric has fewer parameters than nb1 and nb2 + and we want to make sure that predict() np.dot(exog, params) works + """ + + @classmethod + def setupClass(cls): + data = sm.datasets.randhie.load() + exog = sm.add_constant(data.exog, prepend=False) + cls.res1 = NegativeBinomial(data.endog, exog, 'geometric').fit(method='bfgs', disp=0) + res2 = RandHIE() + res2.negativebinomial_geometric_bfgs() + cls.res2 = res2 + + # the following are regression tests, could be inherited instead + + def test_aic(self): + assert_almost_equal(self.res1.aic, self.res2.aic, DECIMAL_3) + + def test_bic(self): + assert_almost_equal(self.res1.bic, self.res2.bic, DECIMAL_3) + + def test_conf_int(self): + assert_almost_equal(self.res1.conf_int(), self.res2.conf_int, DECIMAL_3) + + def test_fittedvalues(self): + assert_almost_equal(self.res1.fittedvalues[:10], self.res2.fittedvalues[:10], DECIMAL_3) + + def test_jac(self): + pass + + def test_predict(self): + assert_almost_equal(self.res1.predict()[:10], np.exp(self.res2.fittedvalues[:10]), DECIMAL_3) + + def test_params(self): + assert_almost_equal(self.res1.params, self.res2.params, DECIMAL_3) + + def test_predict_xb(self): + assert_almost_equal(self.res1.predict(linear=True)[:10], self.res2.fittedvalues[:10], DECIMAL_3) + + def test_zstat(self): # Low precision because Z vs. t + assert_almost_equal(self.res1.tvalues, self.res2.z, DECIMAL_1) + + def no_info(self): + pass + + def test_llf(self): + assert_almost_equal(self.res1.llf, self.res2.llf, DECIMAL_1) + + def test_llr(self): + assert_almost_equal(self.res1.llr, self.res2.llr, DECIMAL_2) + + def test_bse(self): + assert_almost_equal(self.res1.bse, self.res2.bse, DECIMAL_3) + + test_jac = no_info + + +class CheckMNLogitBaseZero(CheckModelResults): + + def test_margeff_overall(self): + me = self.res1.get_margeff() + assert_almost_equal(me.margeff, self.res2.margeff_dydx_overall, 6) + assert_almost_equal(me.margeff_se, self.res2.margeff_dydx_overall_se, 6) + + def test_margeff_mean(self): + me = self.res1.get_margeff(at='mean') + assert_almost_equal(me.margeff, self.res2.margeff_dydx_mean, 7) + assert_almost_equal(me.margeff_se, self.res2.margeff_dydx_mean_se, 7) + + def test_margeff_dummy(self): + data = self.data + vote = data.data['vote'] + exog = np.column_stack((data.exog, vote)) + exog = sm.add_constant(exog, prepend=False) + res = MNLogit(data.endog, exog).fit(method="newton", disp=0) + me = res.get_margeff(dummy=True) + assert_almost_equal(me.margeff, self.res2.margeff_dydx_dummy_overall, + 6) + assert_almost_equal(me.margeff_se, + self.res2.margeff_dydx_dummy_overall_se, 6) + me = res.get_margeff(dummy=True, method="eydx") + assert_almost_equal(me.margeff, self.res2.margeff_eydx_dummy_overall, + 5) + assert_almost_equal(me.margeff_se, + self.res2.margeff_eydx_dummy_overall_se, 6) + + def test_j(self): + assert_equal(self.res1.model.J, self.res2.J) + + def test_k(self): + assert_equal(self.res1.model.K, self.res2.K) + + def test_endog_names(self): + assert_equal(self.res1._get_endog_name(None,None)[1], + ['y=1', 'y=2', 'y=3', 'y=4', 'y=5', 'y=6']) + + def test_pred_table(self): + # fitted results taken from gretl + pred = [6, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 6, 0, 1, 6, 0, 0, + 1, 1, 6, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 6, 0, 0, 6, 6, 0, 0, 1, + 1, 6, 1, 6, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 0, 6, 0, 0, 0, 1, + 1, 0, 0, 6, 6, 6, 6, 1, 0, 5, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, + 6, 0, 6, 6, 1, 0, 1, 1, 6, 5, 1, 0, 0, 0, 5, 0, 0, 6, 0, 1, 0, + 0, 0, 0, 0, 1, 1, 0, 6, 6, 6, 6, 5, 0, 1, 1, 0, 1, 0, 6, 6, 0, + 0, 0, 6, 0, 0, 0, 6, 6, 0, 5, 1, 0, 0, 0, 0, 6, 0, 5, 6, 6, 0, + 0, 0, 0, 6, 1, 0, 0, 1, 0, 1, 6, 1, 1, 1, 1, 1, 0, 0, 0, 6, 0, + 5, 1, 0, 6, 6, 6, 0, 0, 0, 0, 1, 6, 6, 0, 0, 0, 1, 1, 5, 6, 0, + 6, 1, 0, 0, 1, 6, 0, 0, 1, 0, 6, 6, 0, 5, 6, 6, 0, 0, 6, 1, 0, + 6, 0, 1, 0, 1, 6, 0, 1, 1, 1, 6, 0, 5, 0, 0, 6, 1, 0, 6, 5, 5, + 0, 6, 1, 1, 1, 0, 0, 6, 0, 0, 5, 0, 0, 6, 6, 6, 6, 6, 0, 1, 0, + 0, 6, 6, 0, 0, 1, 6, 0, 0, 6, 1, 6, 1, 1, 1, 0, 1, 6, 5, 0, 0, + 1, 5, 0, 1, 6, 6, 1, 0, 0, 1, 6, 1, 5, 6, 1, 0, 0, 1, 1, 0, 6, + 1, 6, 0, 1, 1, 5, 6, 6, 5, 1, 1, 1, 0, 6, 1, 6, 1, 0, 1, 0, 0, + 1, 5, 0, 1, 1, 0, 5, 6, 0, 5, 1, 1, 6, 5, 0, 6, 0, 0, 0, 0, 0, + 0, 1, 6, 1, 0, 5, 1, 0, 0, 1, 6, 0, 0, 6, 6, 6, 0, 2, 1, 6, 5, + 6, 1, 1, 0, 5, 1, 1, 1, 6, 1, 6, 6, 5, 6, 0, 1, 0, 1, 6, 0, 6, + 1, 6, 0, 0, 6, 1, 0, 6, 1, 0, 0, 0, 0, 6, 6, 6, 6, 5, 6, 6, 0, + 0, 6, 1, 1, 6, 0, 0, 6, 6, 0, 6, 6, 0, 0, 6, 0, 0, 6, 6, 6, 1, + 0, 6, 0, 0, 0, 6, 1, 1, 0, 1, 5, 0, 0, 5, 0, 0, 0, 1, 1, 6, 1, + 0, 0, 0, 6, 6, 1, 1, 6, 5, 5, 0, 6, 6, 0, 1, 1, 0, 6, 6, 0, 6, + 5, 5, 6, 5, 1, 0, 6, 0, 6, 1, 0, 1, 6, 6, 6, 1, 0, 6, 0, 5, 6, + 6, 5, 0, 5, 1, 0, 6, 0, 6, 1, 5, 5, 0, 1, 5, 5, 2, 6, 6, 6, 5, + 0, 0, 1, 6, 1, 0, 1, 6, 1, 0, 0, 1, 5, 6, 6, 0, 0, 0, 5, 6, 6, + 6, 1, 5, 6, 1, 0, 0, 6, 5, 0, 1, 1, 1, 6, 6, 0, 1, 0, 0, 0, 5, + 0, 0, 6, 1, 6, 0, 6, 1, 5, 5, 6, 5, 0, 0, 0, 0, 1, 1, 0, 5, 5, + 0, 0, 0, 0, 1, 0, 6, 6, 1, 1, 6, 6, 0, 5, 5, 0, 0, 0, 6, 6, 1, + 6, 0, 0, 5, 0, 1, 6, 5, 6, 6, 5, 5, 6, 6, 1, 0, 1, 6, 6, 1, 6, + 0, 6, 0, 6, 5, 0, 6, 6, 0, 5, 6, 0, 6, 6, 5, 0, 1, 6, 6, 1, 0, + 1, 0, 6, 6, 1, 0, 6, 6, 6, 0, 1, 6, 0, 1, 5, 1, 1, 5, 6, 6, 0, + 1, 6, 6, 1, 5, 0, 5, 0, 6, 0, 1, 6, 1, 0, 6, 1, 6, 0, 6, 1, 0, + 0, 0, 6, 6, 0, 1, 1, 6, 6, 6, 1, 6, 0, 5, 6, 0, 5, 6, 6, 5, 5, + 5, 6, 0, 6, 0, 0, 0, 5, 0, 6, 1, 2, 6, 6, 6, 5, 1, 6, 0, 6, 0, + 0, 0, 0, 6, 5, 0, 5, 1, 6, 5, 1, 6, 5, 1, 1, 0, 0, 6, 1, 1, 5, + 6, 6, 0, 5, 2, 5, 5, 0, 5, 5, 5, 6, 5, 6, 6, 5, 2, 6, 5, 6, 0, + 0, 6, 5, 0, 6, 0, 0, 6, 6, 6, 0, 5, 1, 1, 6, 6, 5, 2, 1, 6, 5, + 6, 0, 6, 6, 1, 1, 5, 1, 6, 6, 6, 0, 0, 6, 1, 0, 5, 5, 1, 5, 6, + 1, 6, 0, 1, 6, 5, 0, 0, 6, 1, 5, 1, 0, 6, 0, 6, 6, 5, 5, 6, 6, + 6, 6, 2, 6, 6, 6, 5, 5, 5, 0, 1, 0, 0, 0, 6, 6, 1, 0, 6, 6, 6, + 6, 6, 1, 0, 6, 1, 5, 5, 6, 6, 6, 6, 6, 5, 6, 1, 6, 2, 5, 5, 6, + 5, 6, 6, 5, 6, 6, 5, 5, 6, 1, 5, 1, 6, 0, 2, 5, 0, 5, 0, 2, 1, + 6, 0, 0, 6, 6, 1, 6, 0, 5, 5, 6, 6, 1, 6, 6, 6, 5, 6, 6, 1, 6, + 5, 6, 1, 1, 0, 6, 6, 5, 1, 0, 0, 6, 6, 5, 6, 0, 1, 6, 0, 5, 6, + 5, 2, 5, 2, 0, 0, 1, 6, 6, 1, 5, 6, 6, 0, 6, 6, 6, 6, 6, 5] + assert_array_equal(self.res1.predict().argmax(1), pred) + + # the rows should add up for pred table + assert_array_equal(self.res1.pred_table().sum(0), np.bincount(pred)) + + # note this is just a regression test, gretl doesn't have a prediction + # table + pred = [[ 126., 41., 2., 0., 0., 12., 19.], + [ 77., 73., 3., 0., 0., 15., 12.], + [ 37., 43., 2., 0., 0., 19., 7.], + [ 12., 9., 1., 0., 0., 9., 6.], + [ 19., 10., 2., 0., 0., 20., 43.], + [ 22., 25., 1., 0., 0., 31., 71.], + [ 9., 7., 1., 0., 0., 18., 140.]] + assert_array_equal(self.res1.pred_table(), pred) + + def test_resid(self): + assert_array_equal(self.res1.resid_misclassified, self.res2.resid) + + +class TestMNLogitNewtonBaseZero(CheckMNLogitBaseZero): + @classmethod + def setupClass(cls): + + data = sm.datasets.anes96.load() + cls.data = data + exog = data.exog + exog = sm.add_constant(exog, prepend=False) + cls.res1 = MNLogit(data.endog, exog).fit(method="newton", disp=0) + res2 = Anes() + res2.mnlogit_basezero() + cls.res2 = res2 + +class TestMNLogitLBFGSBaseZero(CheckMNLogitBaseZero): + @classmethod + def setupClass(cls): + data = sm.datasets.anes96.load() + cls.data = data + exog = data.exog + exog = sm.add_constant(exog, prepend=False) + mymodel = MNLogit(data.endog, exog) + cls.res1 = mymodel.fit(method="lbfgs", disp=0, maxiter=50000, + #m=12, pgtol=1e-7, factr=1e3, # 5 failures + #m=20, pgtol=1e-8, factr=1e2, # 3 failures + #m=30, pgtol=1e-9, factr=1e1, # 1 failure + m=40, pgtol=1e-10, factr=5e0, + loglike_and_score=mymodel.loglike_and_score) + res2 = Anes() + res2.mnlogit_basezero() + cls.res2 = res2 + + +def test_perfect_prediction(): + cur_dir = os.path.dirname(os.path.abspath(__file__)) + iris_dir = os.path.join(cur_dir, '..', '..', 'genmod', 'tests', 'results') + iris_dir = os.path.abspath(iris_dir) + iris = np.genfromtxt(os.path.join(iris_dir, 'iris.csv'), delimiter=",", + skip_header=1) + y = iris[:,-1] + X = iris[:,:-1] + X = X[y != 2] + y = y[y != 2] + X = sm.add_constant(X, prepend=True) + mod = Logit(y,X) + assert_raises(PerfectSeparationError, mod.fit, maxiter=1000) + #turn off raise PerfectSeparationError + mod.raise_on_perfect_prediction = False + # this will raise if you set maxiter high enough with a singular matrix + from pandas.util.testing import assert_produces_warning + # this is not thread-safe + with assert_produces_warning(): + mod.fit(disp=False, maxiter=50) # should not raise but does warn + +def test_poisson_predict(): + #GH: 175, make sure poisson predict works without offset and exposure + data = sm.datasets.randhie.load() + exog = sm.add_constant(data.exog, prepend=True) + res = sm.Poisson(data.endog, exog).fit(method='newton', disp=0) + pred1 = res.predict() + pred2 = res.predict(exog) + assert_almost_equal(pred1, pred2) + #exta options + pred3 = res.predict(exog, offset=0, exposure=1) + assert_almost_equal(pred1, pred3) + pred3 = res.predict(exog, offset=0, exposure=2) + assert_almost_equal(2*pred1, pred3) + pred3 = res.predict(exog, offset=np.log(2), exposure=1) + assert_almost_equal(2*pred1, pred3) + +def test_poisson_newton(): + #GH: 24, Newton doesn't work well sometimes + nobs = 10000 + np.random.seed(987689) + x = np.random.randn(nobs, 3) + x = sm.add_constant(x, prepend=True) + y_count = np.random.poisson(np.exp(x.sum(1))) + mod = sm.Poisson(y_count, x) + from pandas.util.testing import assert_produces_warning + # this is not thread-safe + with assert_produces_warning(): + res = mod.fit(start_params=-np.ones(4), method='newton', disp=0) + assert_(not res.mle_retvals['converged']) + +def test_issue_339(): + # make sure MNLogit summary works for J != K. + data = sm.datasets.anes96.load() + exog = data.exog + # leave out last exog column + exog = exog[:,:-1] + exog = sm.add_constant(exog, prepend=True) + res1 = sm.MNLogit(data.endog, exog).fit(method="newton", disp=0) + # strip the header from the test + smry = "\n".join(res1.summary().as_text().split('\n')[9:]) + cur_dir = os.path.dirname(os.path.abspath(__file__)) + test_case_file = os.path.join(cur_dir, 'results', 'mn_logit_summary.txt') + test_case = open(test_case_file, 'r').read() + np.testing.assert_equal(smry, test_case[:-1]) + +def test_issue_341(): + data = sm.datasets.anes96.load() + exog = data.exog + # leave out last exog column + exog = exog[:,:-1] + exog = sm.add_constant(exog, prepend=True) + res1 = sm.MNLogit(data.endog, exog).fit(method="newton", disp=0) + x = exog[0] + np.testing.assert_equal(res1.predict(x).shape, (1,7)) + np.testing.assert_equal(res1.predict(x[None]).shape, (1,7)) + +def test_iscount(): + X = np.random.random((50, 10)) + X[:,2] = np.random.randint(1, 10, size=50) + X[:,6] = np.random.randint(1, 10, size=50) + X[:,4] = np.random.randint(0, 2, size=50) + X[:,1] = np.random.randint(-10, 10, size=50) # not integers + count_ind = _iscount(X) + assert_equal(count_ind, [2, 6]) + +def test_isdummy(): + X = np.random.random((50, 10)) + X[:,2] = np.random.randint(1, 10, size=50) + X[:,6] = np.random.randint(0, 2, size=50) + X[:,4] = np.random.randint(0, 2, size=50) + X[:,1] = np.random.randint(-10, 10, size=50) # not integers + count_ind = _isdummy(X) + assert_equal(count_ind, [4, 6]) + + +def test_non_binary(): + y = [1, 2, 1, 2, 1, 2] + X = np.random.randn(6, 2) + np.testing.assert_raises(ValueError, Logit, y, X) + + +def test_mnlogit_factor(): + dta = sm.datasets.anes96.load_pandas() + dta['endog'] = dta.endog.replace(dict(zip(range(7), 'ABCDEFG'))) + dta.exog['constant'] = 1 + mod = sm.MNLogit(dta.endog, dta.exog) + res = mod.fit(disp=0) + # smoke tests + params = res.params + summary = res.summary() + + # with patsy + del dta.exog['constant'] + mod = smf.mnlogit('PID ~ ' + ' + '.join(dta.exog.columns), dta.data) + res2 = mod.fit(disp=0) + res2.params + summary = res2.summary() + + +def test_formula_missing_exposure(): + # see 2083 + import statsmodels.formula.api as smf + import pandas as pd + + d = {'Foo': [1, 2, 10, 149], 'Bar': [1, 2, 3, np.nan], + 'constant': [1] * 4, 'exposure' : np.random.uniform(size=4), + 'x': [1, 3, 2, 1.5]} + df = pd.DataFrame(d) + + # should work + mod1 = smf.poisson('Foo ~ Bar', data=df, exposure=df['exposure']) + assert_(type(mod1.exposure) is np.ndarray, msg='Exposure is not ndarray') + + # make sure this raises + exposure = pd.Series(np.random.randn(5)) + assert_raises(ValueError, sm.Poisson, df.Foo, df[['constant', 'Bar']], + exposure=exposure) + + +def test_binary_pred_table_zeros(): + # see 2968 + nobs = 10 + y = np.zeros(nobs) + y[[1,3]] = 1 + + res = Logit(y, np.ones(nobs)).fit(disp=0) + expected = np.array([[ 8., 0.], [ 2., 0.]]) + assert_equal(res.pred_table(), expected) + + res = MNLogit(y, np.ones(nobs)).fit(disp=0) + expected = np.array([[ 8., 0.], [ 2., 0.]]) + assert_equal(res.pred_table(), expected) + + +if __name__ == "__main__": + import nose + nose.runmodule(argv=[__file__, '-vvs', '-x', '--pdb'], + exit=False) diff --git a/statsmodels/discrete/tests/test_sandwich_cov.py b/statsmodels/discrete/tests/test_sandwich_cov.py new file mode 100644 index 0000000..2329f33 --- /dev/null +++ b/statsmodels/discrete/tests/test_sandwich_cov.py @@ -0,0 +1,691 @@ +# -*- coding: utf-8 -*- +""" + +Created on Mon Dec 09 21:29:20 2013 + +Author: Josef Perktold +""" + +import os +import numpy as np +import pandas as pd +import statsmodels.discrete.discrete_model as smd +from statsmodels.genmod.generalized_linear_model import GLM +from statsmodels.genmod import families +from statsmodels.genmod.families import links +from statsmodels.regression.linear_model import OLS +import statsmodels.stats.sandwich_covariance as sc +from statsmodels.base.covtype import get_robustcov_results +import statsmodels.stats.sandwich_covariance as sw +from statsmodels.tools.tools import add_constant + + +from numpy.testing import assert_allclose, assert_equal, assert_ +import statsmodels.tools._testing as smt + + +# get data and results as module global for now, TODO: move to class +from .results import results_count_robust_cluster as results_st + +cur_dir = os.path.dirname(os.path.abspath(__file__)) + +filepath = os.path.join(cur_dir, "results", "ships.csv") +data_raw = pd.read_csv(filepath, index_col=False) +data = data_raw.dropna() + +#mod = smd.Poisson.from_formula('accident ~ yr_con + op_75_79', data=dat) +# Don't use formula for tests against Stata because intercept needs to be last +endog = data['accident'] +exog_data = data['yr_con op_75_79'.split()] +exog = add_constant(exog_data, prepend=False) +group = np.asarray(data['ship'], int) +exposure = np.asarray(data['service']) + + +# TODO get the test methods from regression/tests +class CheckCountRobustMixin(object): + + + def test_basic(self): + res1 = self.res1 + res2 = self.res2 + + if len(res1.params) == (len(res2.params) - 1): + # Stata includes lnalpha in table for NegativeBinomial + mask = np.ones(len(res2.params), np.bool_) + mask[-2] = False + res2_params = res2.params[mask] + res2_bse = res2.bse[mask] + else: + res2_params = res2.params + res2_bse = res2.bse + + assert_allclose(res1._results.params, res2_params, 1e-4) + + assert_allclose(self.bse_rob / self.corr_fact, res2_bse, 6e-5) + + @classmethod + def get_robust_clu(cls): + res1 = cls.res1 + cov_clu = sc.cov_cluster(res1, group) + cls.bse_rob = sc.se_cov(cov_clu) + + nobs, k_vars = res1.model.exog.shape + k_params = len(res1.params) + #n_groups = len(np.unique(group)) + corr_fact = (nobs-1.) / float(nobs - k_params) + # for bse we need sqrt of correction factor + cls.corr_fact = np.sqrt(corr_fact) + + + def test_oth(self): + res1 = self.res1 + res2 = self.res2 + assert_allclose(res1._results.llf, res2.ll, 1e-4) + assert_allclose(res1._results.llnull, res2.ll_0, 1e-4) + + + def test_ttest(self): + smt.check_ttest_tvalues(self.res1) + + + def test_waldtest(self): + smt.check_ftest_pvalues(self.res1) + + +class TestPoissonClu(CheckCountRobustMixin): + + @classmethod + def setup_class(cls): + cls.res2 = results_st.results_poisson_clu + mod = smd.Poisson(endog, exog) + cls.res1 = mod.fit(disp=False) + cls.get_robust_clu() + + +class TestPoissonCluGeneric(CheckCountRobustMixin): + + @classmethod + def setup_class(cls): + cls.res2 = results_st.results_poisson_clu + mod = smd.Poisson(endog, exog) + cls.res1 = res1 = mod.fit(disp=False) + + debug = False + if debug: + # for debugging + cls.bse_nonrobust = cls.res1.bse.copy() + cls.res1 = res1 = mod.fit(disp=False) + cls.get_robust_clu() + cls.res3 = cls.res1 + cls.bse_rob3 = cls.bse_rob.copy() + cls.res1 = res1 = mod.fit(disp=False) + + from statsmodels.base.covtype import get_robustcov_results + + #res_hc0_ = cls.res1.get_robustcov_results('HC1') + get_robustcov_results(cls.res1._results, 'cluster', + groups=group, + use_correction=True, + df_correction=True, #TODO has no effect + use_t=False, #True, + use_self=True) + cls.bse_rob = cls.res1.bse + + nobs, k_vars = res1.model.exog.shape + k_params = len(res1.params) + #n_groups = len(np.unique(group)) + corr_fact = (nobs-1.) / float(nobs - k_params) + # for bse we need sqrt of correction factor + cls.corr_fact = np.sqrt(corr_fact) + + +class TestPoissonHC1Generic(CheckCountRobustMixin): + + @classmethod + def setup_class(cls): + cls.res2 = results_st.results_poisson_hc1 + mod = smd.Poisson(endog, exog) + cls.res1 = mod.fit(disp=False) + + from statsmodels.base.covtype import get_robustcov_results + + #res_hc0_ = cls.res1.get_robustcov_results('HC1') + get_robustcov_results(cls.res1._results, 'HC1', use_self=True) + cls.bse_rob = cls.res1.bse + nobs, k_vars = mod.exog.shape + corr_fact = (nobs) / float(nobs - 1.) + # for bse we need sqrt of correction factor + cls.corr_fact = np.sqrt(1./corr_fact) + +# TODO: refactor xxxFit to full testing results +class TestPoissonCluFit(CheckCountRobustMixin): + + @classmethod + def setup_class(cls): + + + cls.res2 = results_st.results_poisson_clu + mod = smd.Poisson(endog, exog) + + # scaling of cov_params_default to match Stata + # TODO should the default be changed? + nobs, k_params = mod.exog.shape + sc_fact = (nobs-1.) / float(nobs - k_params) + + cls.res1 = mod.fit(disp=False, cov_type='cluster', + cov_kwds=dict(groups=group, + use_correction=True, + scaling_factor=1. / sc_fact, + df_correction=True), #TODO has no effect + use_t=False, #True, + ) + + # The model results, t_test, ... should also work without + # normalized_cov_params, see #2209 + # Note: we cannot set on the wrapper res1, we need res1._results + cls.res1._results.normalized_cov_params = None + + cls.bse_rob = cls.res1.bse + + # backwards compatibility with inherited test methods + cls.corr_fact = 1 + + + def test_basic_inference(self): + res1 = self.res1 + res2 = self.res2 + rtol = 1e-7 + assert_allclose(res1.params, res2.params, rtol=1e-8) + assert_allclose(res1.bse, res2.bse, rtol=rtol) + assert_allclose(res1.tvalues, res2.tvalues, rtol=rtol, atol=1e-8) + assert_allclose(res1.pvalues, res2.pvalues, rtol=rtol, atol=1e-20) + ci = res2.params_table[:, 4:6] + assert_allclose(res1.conf_int(), ci, rtol=5e-7, atol=1e-20) + + +class TestPoissonHC1Fit(CheckCountRobustMixin): + + @classmethod + def setup_class(cls): + cls.res2 = results_st.results_poisson_hc1 + mod = smd.Poisson(endog, exog) + cls.res1 = mod.fit(disp=False, cov_type='HC1') + + cls.bse_rob = cls.res1.bse + nobs, k_vars = mod.exog.shape + corr_fact = (nobs) / float(nobs - 1.) + # for bse we need sqrt of correction factor + cls.corr_fact = np.sqrt(1./corr_fact) + + +class TestPoissonHC1FitExposure(CheckCountRobustMixin): + + @classmethod + def setup_class(cls): + cls.res2 = results_st.results_poisson_exposure_hc1 + mod = smd.Poisson(endog, exog, exposure=exposure) + cls.res1 = mod.fit(disp=False, cov_type='HC1') + + cls.bse_rob = cls.res1.bse + nobs, k_vars = mod.exog.shape + corr_fact = (nobs) / float(nobs - 1.) + # for bse we need sqrt of correction factor + cls.corr_fact = np.sqrt(1./corr_fact) + + + +class TestPoissonCluExposure(CheckCountRobustMixin): + + @classmethod + def setup_class(cls): + cls.res2 = results_st.results_poisson_exposure_clu #nonrobust + mod = smd.Poisson(endog, exog, exposure=exposure) + cls.res1 = mod.fit(disp=False) + cls.get_robust_clu() + + +class TestPoissonCluExposureGeneric(CheckCountRobustMixin): + + @classmethod + def setup_class(cls): + cls.res2 = results_st.results_poisson_exposure_clu #nonrobust + mod = smd.Poisson(endog, exog, exposure=exposure) + cls.res1 = res1 = mod.fit(disp=False) + + from statsmodels.base.covtype import get_robustcov_results + + #res_hc0_ = cls.res1.get_robustcov_results('HC1') + get_robustcov_results(cls.res1._results, 'cluster', + groups=group, + use_correction=True, + df_correction=True, #TODO has no effect + use_t=False, #True, + use_self=True) + cls.bse_rob = cls.res1.bse #sc.se_cov(cov_clu) + + nobs, k_vars = res1.model.exog.shape + k_params = len(res1.params) + #n_groups = len(np.unique(group)) + corr_fact = (nobs-1.) / float(nobs - k_params) + # for bse we need sqrt of correction factor + cls.corr_fact = np.sqrt(corr_fact) + + +class TestGLMPoissonClu(CheckCountRobustMixin): + + @classmethod + def setup_class(cls): + cls.res2 = results_st.results_poisson_clu + mod = smd.Poisson(endog, exog) + mod = GLM(endog, exog, family=families.Poisson()) + cls.res1 = mod.fit() + cls.get_robust_clu() + + +class TestGLMPoissonCluGeneric(CheckCountRobustMixin): + + @classmethod + def setup_class(cls): + cls.res2 = results_st.results_poisson_clu + mod = GLM(endog, exog, family=families.Poisson()) + cls.res1 = res1 = mod.fit() + + get_robustcov_results(cls.res1._results, 'cluster', + groups=group, + use_correction=True, + df_correction=True, #TODO has no effect + use_t=False, #True, + use_self=True) + cls.bse_rob = cls.res1.bse + + nobs, k_vars = res1.model.exog.shape + k_params = len(res1.params) + #n_groups = len(np.unique(group)) + corr_fact = (nobs-1.) / float(nobs - k_params) + # for bse we need sqrt of correction factor + cls.corr_fact = np.sqrt(corr_fact) + + +class TestGLMPoissonHC1Generic(CheckCountRobustMixin): + + @classmethod + def setup_class(cls): + cls.res2 = results_st.results_poisson_hc1 + mod = GLM(endog, exog, family=families.Poisson()) + cls.res1 = mod.fit() + + #res_hc0_ = cls.res1.get_robustcov_results('HC1') + get_robustcov_results(cls.res1._results, 'HC1', use_self=True) + cls.bse_rob = cls.res1.bse + nobs, k_vars = mod.exog.shape + corr_fact = (nobs) / float(nobs - 1.) + # for bse we need sqrt of correction factor + cls.corr_fact = np.sqrt(1./corr_fact) + + +# TODO: refactor xxxFit to full testing results +class TestGLMPoissonCluFit(CheckCountRobustMixin): + + @classmethod + def setup_class(cls): + cls.res2 = results_st.results_poisson_clu + mod = GLM(endog, exog, family=families.Poisson()) + cls.res1 = res1 = mod.fit(cov_type='cluster', + cov_kwds=dict(groups=group, + use_correction=True, + df_correction=True), #TODO has no effect + use_t=False, #True, + ) + + # The model results, t_test, ... should also work without + # normalized_cov_params, see #2209 + # Note: we cannot set on the wrapper res1, we need res1._results + cls.res1._results.normalized_cov_params = None + + cls.bse_rob = cls.res1.bse + + nobs, k_vars = mod.exog.shape + k_params = len(cls.res1.params) + #n_groups = len(np.unique(group)) + corr_fact = (nobs-1.) / float(nobs - k_params) + # for bse we need sqrt of correction factor + cls.corr_fact = np.sqrt(corr_fact) + + +class TestGLMPoissonHC1Fit(CheckCountRobustMixin): + + @classmethod + def setup_class(cls): + cls.res2 = results_st.results_poisson_hc1 + mod = GLM(endog, exog, family=families.Poisson()) + cls.res1 = mod.fit(cov_type='HC1') + + cls.bse_rob = cls.res1.bse + nobs, k_vars = mod.exog.shape + corr_fact = (nobs) / float(nobs - 1.) + # for bse we need sqrt of correction factor + cls.corr_fact = np.sqrt(1./corr_fact) + + +class TestNegbinClu(CheckCountRobustMixin): + + @classmethod + def setup_class(cls): + cls.res2 = results_st.results_negbin_clu + mod = smd.NegativeBinomial(endog, exog) + cls.res1 = mod.fit(disp=False) + cls.get_robust_clu() + + +class TestNegbinCluExposure(CheckCountRobustMixin): + + @classmethod + def setup_class(cls): + cls.res2 = results_st.results_negbin_exposure_clu #nonrobust + mod = smd.NegativeBinomial(endog, exog, exposure=exposure) + cls.res1 = mod.fit(disp=False) + cls.get_robust_clu() + + +# mod_nbe = smd.NegativeBinomial(endog, exog, exposure=data['service']) +# res_nbe = mod_nbe.fit() +# mod_nb = smd.NegativeBinomial(endog, exog) +# res_nb = mod_nb.fit() +# +# cov_clu_nb = sc.cov_cluster(res_nb, group) +# k_params = k_vars + 1 +# print sc.se_cov(cov_clu_nb / ((nobs-1.) / float(nobs - k_params))) +# +# wt = res_nb.wald_test(np.eye(len(res_nb.params))[1:3], cov_p=cov_clu_nb/((nobs-1.) / float(nobs - k_params))) +# print wt +# +# print dir(results_st) + +class TestNegbinCluGeneric(CheckCountRobustMixin): + + @classmethod + def setup_class(cls): + cls.res2 = results_st.results_negbin_clu + mod = smd.NegativeBinomial(endog, exog) + cls.res1 = res1 = mod.fit(disp=False) + + get_robustcov_results(cls.res1._results, 'cluster', + groups=group, + use_correction=True, + df_correction=True, #TODO has no effect + use_t=False, #True, + use_self=True) + cls.bse_rob = cls.res1.bse + + nobs, k_vars = mod.exog.shape + k_params = len(cls.res1.params) + #n_groups = len(np.unique(group)) + corr_fact = (nobs-1.) / float(nobs - k_params) + # for bse we need sqrt of correction factor + cls.corr_fact = np.sqrt(corr_fact) + + +class TestNegbinCluFit(CheckCountRobustMixin): + + @classmethod + def setup_class(cls): + cls.res2 = results_st.results_negbin_clu + mod = smd.NegativeBinomial(endog, exog) + cls.res1 = res1 = mod.fit(disp=False, cov_type='cluster', + cov_kwds=dict(groups=group, + use_correction=True, + df_correction=True), #TODO has no effect + use_t=False, #True, + ) + cls.bse_rob = cls.res1.bse + + nobs, k_vars = mod.exog.shape + k_params = len(cls.res1.params) + #n_groups = len(np.unique(group)) + corr_fact = (nobs-1.) / float(nobs - k_params) + # for bse we need sqrt of correction factor + cls.corr_fact = np.sqrt(corr_fact) + + +class TestNegbinCluExposureFit(CheckCountRobustMixin): + + @classmethod + def setup_class(cls): + cls.res2 = results_st.results_negbin_exposure_clu #nonrobust + mod = smd.NegativeBinomial(endog, exog, exposure=exposure) + cls.res1 = res1 = mod.fit(disp=False, cov_type='cluster', + cov_kwds=dict(groups=group, + use_correction=True, + df_correction=True), #TODO has no effect + use_t=False, #True, + ) + cls.bse_rob = cls.res1.bse + + nobs, k_vars = mod.exog.shape + k_params = len(cls.res1.params) + #n_groups = len(np.unique(group)) + corr_fact = (nobs-1.) / float(nobs - k_params) + # for bse we need sqrt of correction factor + cls.corr_fact = np.sqrt(corr_fact) + + +class CheckDiscreteGLM(object): + # compare GLM with other models, no verified reference results + + def test_basic(self): + res1 = self.res1 + res2 = self.res2 + + assert_equal(res1.cov_type, self.cov_type) + assert_equal(res2.cov_type, self.cov_type) + + assert_allclose(res1.params, res2.params, rtol=1e-13) + # bug TODO res1.scale missing ? in Gaussian/OLS + assert_allclose(res1.bse, res2.bse, rtol=1e-13) +# if not self.cov_type == 'nonrobust': +# assert_allclose(res1.bse * res1.scale, res2.bse, rtol=1e-13) +# else: +# assert_allclose(res1.bse, res2.bse, rtol=1e-13) + + +class TestGLMLogit(CheckDiscreteGLM): + + @classmethod + def setup_class(cls): + endog_bin = (endog > endog.mean()).astype(int) + cls.cov_type = 'cluster' + + mod1 = GLM(endog_bin, exog, family=families.Binomial()) + cls.res1 = mod1.fit(cov_type='cluster', cov_kwds=dict(groups=group)) + + mod1 = smd.Logit(endog_bin, exog) + cls.res2 = mod1.fit(cov_type='cluster', cov_kwds=dict(groups=group)) + + +class T_estGLMProbit(CheckDiscreteGLM): + # invalid link. What's Probit as GLM? + + @classmethod + def setup_class(cls): + endog_bin = (endog > endog.mean()).astype(int) + cls.cov_type = 'cluster' + + mod1 = GLM(endog_bin, exog, family=families.Gaussian(link=links.CDFLink)) + cls.res1 = mod1.fit(cov_type='cluster', cov_kwds=dict(groups=group)) + + mod1 = smd.Probit(endog_bin, exog) + cls.res2 = mod1.fit(cov_type='cluster', cov_kwds=dict(groups=group)) + + +class TestGLMGaussNonRobust(CheckDiscreteGLM): + + @classmethod + def setup_class(cls): + cls.cov_type = 'nonrobust' + + mod1 = GLM(endog, exog, family=families.Gaussian()) + cls.res1 = mod1.fit() + + mod2 = OLS(endog, exog) + cls.res2 = mod2.fit() + + +class TestGLMGaussClu(CheckDiscreteGLM): + + @classmethod + def setup_class(cls): + cls.cov_type = 'cluster' + + mod1 = GLM(endog, exog, family=families.Gaussian()) + cls.res1 = mod1.fit(cov_type='cluster', cov_kwds=dict(groups=group)) + + mod2 = OLS(endog, exog) + cls.res2 = mod2.fit(cov_type='cluster', cov_kwds=dict(groups=group)) + + +class TestGLMGaussHC(CheckDiscreteGLM): + + @classmethod + def setup_class(cls): + cls.cov_type = 'HC0' + + mod1 = GLM(endog, exog, family=families.Gaussian()) + cls.res1 = mod1.fit(cov_type='HC0') + + mod2 = OLS(endog, exog) + cls.res2 = mod2.fit(cov_type='HC0') + + +class TestGLMGaussHAC(CheckDiscreteGLM): + + @classmethod + def setup_class(cls): + + cls.cov_type = 'HAC' + + kwds={'maxlags':2} + mod1 = GLM(endog, exog, family=families.Gaussian()) + cls.res1 = mod1.fit(cov_type='HAC', cov_kwds=kwds) + + mod2 = OLS(endog, exog) + cls.res2 = mod2.fit(cov_type='HAC', cov_kwds=kwds) + + +class TestGLMGaussHACUniform(CheckDiscreteGLM): + + @classmethod + def setup_class(cls): + + cls.cov_type = 'HAC' + + kwds={'kernel':sw.weights_uniform, 'maxlags':2} + mod1 = GLM(endog, exog, family=families.Gaussian()) + cls.res1 = mod1.fit(cov_type='HAC', cov_kwds=kwds) + + mod2 = OLS(endog, exog) + cls.res2 = mod2.fit(cov_type='HAC', cov_kwds=kwds) + + #for debugging + cls.res3 = mod2.fit(cov_type='HAC', cov_kwds={'maxlags':2}) + + + def test_cov_options(self): + + # check keyword `weights_func + kwdsa = {'weights_func':sw.weights_uniform, 'maxlags':2} + res1a = self.res1.model.fit(cov_type='HAC', cov_kwds=kwdsa) + res2a = self.res2.model.fit(cov_type='HAC', cov_kwds=kwdsa) + assert_allclose(res1a.bse, self.res1.bse, rtol=1e-12) + assert_allclose(res2a.bse, self.res2.bse, rtol=1e-12) + + # regression test for bse values + bse = np.array([ 2.82203924, 4.60199596, 11.01275064]) + assert_allclose(res1a.bse, bse, rtol=1e-6) + + assert_(res1a.cov_kwds['weights_func'] is sw.weights_uniform) + + kwdsb = {'kernel':sw.weights_bartlett, 'maxlags':2} + res1a = self.res1.model.fit(cov_type='HAC', cov_kwds=kwdsb) + res2a = self.res2.model.fit(cov_type='HAC', cov_kwds=kwdsb) + assert_allclose(res1a.bse, res2a.bse, rtol=1e-12) + + # regression test for bse values + bse = np.array([ 2.502264, 3.697807, 9.193303]) + assert_allclose(res1a.bse, bse, rtol=1e-6) + + +class TestGLMGaussHACPanel(CheckDiscreteGLM): + + @classmethod + def setup_class(cls): + cls.cov_type = 'hac-panel' + # time index is just made up to have a test case + time = np.tile(np.arange(7), 5)[:-1] + mod1 = GLM(endog.copy(), exog.copy(), family=families.Gaussian()) + kwds = dict(time=time, + maxlags=2, + kernel=sw.weights_uniform, + use_correction='hac', + df_correction=False) + cls.res1 = mod1.fit(cov_type='hac-panel', cov_kwds=kwds) + cls.res1b = mod1.fit(cov_type='nw-panel', cov_kwds=kwds) + + mod2 = OLS(endog, exog) + cls.res2 = mod2.fit(cov_type='hac-panel', cov_kwds=kwds) + + def test_kwd(self): + # test corrected keyword name + assert_allclose(self.res1b.bse, self.res1.bse, rtol=1e-12) + + +class TestGLMGaussHACPanelGroups(CheckDiscreteGLM): + + @classmethod + def setup_class(cls): + cls.cov_type = 'hac-panel' + # time index is just made up to have a test case + groups = np.repeat(np.arange(5), 7)[:-1] + mod1 = GLM(endog.copy(), exog.copy(), family=families.Gaussian()) + kwds = dict(groups=groups, + maxlags=2, + kernel=sw.weights_uniform, + use_correction='hac', + df_correction=False) + cls.res1 = mod1.fit(cov_type='hac-panel', cov_kwds=kwds) + + mod2 = OLS(endog, exog) + cls.res2 = mod2.fit(cov_type='hac-panel', cov_kwds=kwds) + + +class TestGLMGaussHACGroupsum(CheckDiscreteGLM): + + @classmethod + def setup_class(cls): + cls.cov_type = 'hac-groupsum' + # time index is just made up to have a test case + time = np.tile(np.arange(7), 5)[:-1] + mod1 = GLM(endog, exog, family=families.Gaussian()) + kwds = dict(time=time, + maxlags=2, + use_correction='hac', + df_correction=False) + cls.res1 = mod1.fit(cov_type='hac-groupsum', cov_kwds=kwds) + cls.res1b = mod1.fit(cov_type='nw-groupsum', cov_kwds=kwds) + + mod2 = OLS(endog, exog) + cls.res2 = mod2.fit(cov_type='hac-groupsum', cov_kwds=kwds) + + def test_kwd(self): + # test corrected keyword name + assert_allclose(self.res1b.bse, self.res1.bse, rtol=1e-12) + + + +if __name__ == '__main__': + tt = TestPoissonClu() + tt.setup_class() + tt.test_basic() + tt = TestNegbinClu() + tt.setup_class() + tt.test_basic() diff --git a/statsmodels/distributions/__init__.py b/statsmodels/distributions/__init__.py new file mode 100644 index 0000000..5306ddc --- /dev/null +++ b/statsmodels/distributions/__init__.py @@ -0,0 +1,3 @@ +from .empirical_distribution import ECDF, monotone_fn_inverter, StepFunction +from .edgeworth import ExpandedNormal + diff --git a/statsmodels/distributions/edgeworth.py b/statsmodels/distributions/edgeworth.py new file mode 100644 index 0000000..d602214 --- /dev/null +++ b/statsmodels/distributions/edgeworth.py @@ -0,0 +1,213 @@ +from __future__ import division, print_function, absolute_import + +import warnings + +import numpy as np +from numpy.polynomial.hermite_e import HermiteE +from scipy.misc import factorial +from scipy.stats import rv_continuous +import scipy.special as special + +# TODO: +# * actually solve (31) of Blinnikov & Moessner +# * numerical stability: multiply factorials in logspace? +# * ppf & friends: Cornish & Fisher series, or tabulate/solve + + +_faa_di_bruno_cache = { + 1: [[(1, 1)]], + 2: [[(1, 2)], [(2, 1)]], + 3: [[(1, 3)], [(2, 1), (1, 1)], [(3, 1)]], + 4: [[(1, 4)], [(1, 2), (2, 1)], [(2, 2)], [(3, 1), (1, 1)], [(4, 1)]]} + + +def _faa_di_bruno_partitions(n): + """ Return all non-negative integer solutions of the diophantine equation:: + + n*k_n + ... + 2*k_2 + 1*k_1 = n (1) + + Parameters + ---------- + n: int + the r.h.s. of Eq. (1) + + Returns + ------- + partitions: a list of solutions of (1). Each solution is itself + a list of the form `[(m, k_m), ...]` for non-zero `k_m`. + Notice that the index `m` is 1-based. + + Examples: + --------- + >>> _faa_di_bruno_partitions(2) + [[(1, 2)], [(2, 1)]] + >>> for p in _faa_di_bruno_partitions(4): + ... assert 4 == sum(m * k for (m, k) in p) + + """ + if n < 1: + raise ValueError("Expected a positive integer; got %s instead" % n) + try: + return _faa_di_bruno_cache[n] + except KeyError: + # TODO: higher order terms + # solve Eq. (31) from Blinninkov & Moessner here + raise NotImplementedError('Higher order terms not yet implemented.') + + +def cumulant_from_moments(momt, n): + """Compute n-th cumulant given moments. + + Parameters + ---------- + momt: array_like + `momt[j]` contains `(j+1)`-th moment. + These can be raw moments around zero, or central moments + (in which case, `momt[0]` == 0). + n: integer + which cumulant to calculate (must be >1) + + Returns + ------- + kappa: float + n-th cumulant. + + """ + if n < 1: + raise ValueError("Expected a positive integer. Got %s instead." % n) + if len(momt) < n: + raise ValueError("%s-th cumulant requires %s moments, " + "only got %s." % (n, n, len(momt))) + kappa = 0. + for p in _faa_di_bruno_partitions(n): + r = sum(k for (m, k) in p) + term = (-1)**(r - 1) * factorial(r - 1) + for (m, k) in p: + term *= np.power(momt[m - 1] / factorial(m), k) / factorial(k) + kappa += term + kappa *= factorial(n) + return kappa + +## copied from scipy.stats.distributions to avoid the overhead of +## the public methods +_norm_pdf_C = np.sqrt(2*np.pi) +def _norm_pdf(x): + return np.exp(-x**2/2.0) / _norm_pdf_C + +def _norm_cdf(x): + return special.ndtr(x) + +def _norm_sf(x): + return special.ndtr(-x) + + +class ExpandedNormal(rv_continuous): + """Construct the Edgeworth expansion pdf given cumulants. + + Parameters + ---------- + cum: array_like + `cum[j]` contains `(j+1)`-th cumulant: cum[0] is the mean, + cum[1] is the variance and so on. + + Notes + ----- + This is actually an asymptotic rather than convergent series, hence + higher orders of the expansion may or may not improve the result. + In a strongly non-Gaussian case, it is possible that the density + becomes negative, especially far out in the tails. + + Examples + -------- + Construct the 4th order expansion for the chi-square distribution using + the known values of the cumulants: + + >>> import matplotlib.pyplot as plt + >>> from scipy import stats + >>> from scipy.misc import factorial + >>> df = 12 + >>> chi2_c = [2**(j-1) * factorial(j-1) * df for j in range(1, 5)] + >>> edgw_chi2 = ExpandedNormal(chi2_c, name='edgw_chi2', momtype=0) + + Calculate several moments: + >>> m, v = edgw_chi2.stats(moments='mv') + >>> np.allclose([m, v], [df, 2 * df]) + True + + Plot the density function: + >>> mu, sigma = df, np.sqrt(2*df) + >>> x = np.linspace(mu - 3*sigma, mu + 3*sigma) + >>> fig1 = plt.plot(x, stats.chi2.pdf(x, df=df), 'g-', lw=4, alpha=0.5) + >>> fig2 = plt.plot(x, stats.norm.pdf(x, mu, sigma), 'b--', lw=4, alpha=0.5) + >>> fig3 = plt.plot(x, edgw_chi2.pdf(x), 'r-', lw=2) + >>> plt.show() + + References + ---------- + .. [1] E.A. Cornish and R.A. Fisher, Moments and cumulants in the + specification of distributions, Revue de l'Institut Internat. + de Statistique. 5: 307 (1938), reprinted in + R.A. Fisher, Contributions to Mathematical Statistics. Wiley, 1950. + .. [2] http://en.wikipedia.org/wiki/Edgeworth_series + .. [3] S. Blinnikov and R. Moessner, Expansions for nearly Gaussian + distributions, Astron. Astrophys. Suppl. Ser. 130, 193 (1998) + + """ + def __init__(self, cum, name='Edgeworth expanded normal', **kwds): + if len(cum) < 2: + raise ValueError("At least two cumulants are needed.") + self._coef, self._mu, self._sigma = self._compute_coefs_pdf(cum) + self._herm_pdf = HermiteE(self._coef) + if self._coef.size > 2: + self._herm_cdf = HermiteE(-self._coef[1:]) + else: + self._herm_cdf = lambda x: 0. + + # warn if pdf(x) < 0 for some values of x within 4 sigma + r = np.real_if_close(self._herm_pdf.roots()) + r = (r - self._mu) / self._sigma + if r[(np.imag(r) == 0) & (np.abs(r) < 4)].any(): + mesg = 'PDF has zeros at %s ' % r + warnings.warn(mesg, RuntimeWarning) + + kwds.update({'name': name, + 'momtype': 0}) # use pdf, not ppf in self.moment() + super(ExpandedNormal, self).__init__(**kwds) + + def _pdf(self, x): + y = (x - self._mu) / self._sigma + return self._herm_pdf(y) * _norm_pdf(y) / self._sigma + + def _cdf(self, x): + y = (x - self._mu) / self._sigma + return (_norm_cdf(y) + + self._herm_cdf(y) * _norm_pdf(y)) + + def _sf(self, x): + y = (x - self._mu) / self._sigma + return (_norm_sf(y) - + self._herm_cdf(y) * _norm_pdf(y)) + + def _compute_coefs_pdf(self, cum): + # scale cumulants by \sigma + mu, sigma = cum[0], np.sqrt(cum[1]) + lam = np.asarray(cum) + for j, l in enumerate(lam): + lam[j] /= cum[1]**j + + coef = np.zeros(lam.size * 3 - 5) + coef[0] = 1. + for s in range(lam.size - 2): + for p in _faa_di_bruno_partitions(s+1): + term = sigma**(s+1) + for (m, k) in p: + term *= np.power(lam[m+1] / factorial(m+2), k) / factorial(k) + r = sum(k for (m, k) in p) + coef[s + 1 + 2*r] += term + return coef, mu, sigma + + +if __name__ == "__main__": + cum =[1, 1, 1, 1] + en = ExpandedNormal(cum) + diff --git a/statsmodels/distributions/empirical_distribution.py b/statsmodels/distributions/empirical_distribution.py new file mode 100644 index 0000000..757e55b --- /dev/null +++ b/statsmodels/distributions/empirical_distribution.py @@ -0,0 +1,183 @@ +""" +Empirical CDF Functions +""" +import numpy as np +from scipy.interpolate import interp1d + +def _conf_set(F, alpha=.05): + r""" + Constructs a Dvoretzky-Kiefer-Wolfowitz confidence band for the eCDF. + + Parameters + ---------- + F : array-like + The empirical distributions + alpha : float + Set alpha for a (1 - alpha) % confidence band. + + Notes + ----- + Based on the DKW inequality. + + ..math:: P \left( \sup_x \left| F(x) - \hat(F)_n(X) \right| > \epsilon \right) \leq 2e^{-2n\epsilon^2} + + References + ---------- + Wasserman, L. 2006. `All of Nonparametric Statistics`. Springer. + """ + nobs = len(F) + epsilon = np.sqrt(np.log(2./alpha) / (2 * nobs)) + lower = np.clip(F - epsilon, 0, 1) + upper = np.clip(F + epsilon, 0, 1) + return lower, upper + +class StepFunction(object): + """ + A basic step function. + + Values at the ends are handled in the simplest way possible: + everything to the left of x[0] is set to ival; everything + to the right of x[-1] is set to y[-1]. + + Parameters + ---------- + x : array-like + y : array-like + ival : float + ival is the value given to the values to the left of x[0]. Default + is 0. + sorted : bool + Default is False. + side : {'left', 'right'}, optional + Default is 'left'. Defines the shape of the intervals constituting the + steps. 'right' correspond to [a, b) intervals and 'left' to (a, b]. + + Examples + -------- + >>> import numpy as np + >>> from statsmodels.distributions.empirical_distribution import StepFunction + >>> + >>> x = np.arange(20) + >>> y = np.arange(20) + >>> f = StepFunction(x, y) + >>> + >>> print(f(3.2)) + 3.0 + >>> print(f([[3.2,4.5],[24,-3.1]])) + [[ 3. 4.] + [ 19. 0.]] + >>> f2 = StepFunction(x, y, side='right') + >>> + >>> print(f(3.0)) + 2.0 + >>> print(f2(3.0)) + 3.0 + """ + + def __init__(self, x, y, ival=0., sorted=False, side='left'): + + if side.lower() not in ['right', 'left']: + msg = "side can take the values 'right' or 'left'" + raise ValueError(msg) + self.side = side + + _x = np.asarray(x) + _y = np.asarray(y) + + if _x.shape != _y.shape: + msg = "x and y do not have the same shape" + raise ValueError(msg) + if len(_x.shape) != 1: + msg = 'x and y must be 1-dimensional' + raise ValueError(msg) + + self.x = np.r_[-np.inf, _x] + self.y = np.r_[ival, _y] + + if not sorted: + asort = np.argsort(self.x) + self.x = np.take(self.x, asort, 0) + self.y = np.take(self.y, asort, 0) + self.n = self.x.shape[0] + + def __call__(self, time): + + tind = np.searchsorted(self.x, time, self.side) - 1 + return self.y[tind] + +class ECDF(StepFunction): + """ + Return the Empirical CDF of an array as a step function. + + Parameters + ---------- + x : array-like + Observations + side : {'left', 'right'}, optional + Default is 'right'. Defines the shape of the intervals constituting the + steps. 'right' correspond to [a, b) intervals and 'left' to (a, b]. + + Returns + ------- + Empirical CDF as a step function. + + Examples + -------- + >>> import numpy as np + >>> from statsmodels.distributions.empirical_distribution import ECDF + >>> + >>> ecdf = ECDF([3, 3, 1, 4]) + >>> + >>> ecdf([3, 55, 0.5, 1.5]) + array([ 0.75, 1. , 0. , 0.25]) + """ + def __init__(self, x, side='right'): + step = True + if step: #TODO: make this an arg and have a linear interpolation option? + x = np.array(x, copy=True) + x.sort() + nobs = len(x) + y = np.linspace(1./nobs,1,nobs) + super(ECDF, self).__init__(x, y, side=side, sorted=True) + else: + return interp1d(x,y,drop_errors=False,fill_values=ival) + +def monotone_fn_inverter(fn, x, vectorized=True, **keywords): + """ + Given a monotone function fn (no checking is done to verify monotonicity) + and a set of x values, return an linearly interpolated approximation + to its inverse from its values on x. + """ + x = np.asarray(x) + if vectorized: + y = fn(x, **keywords) + else: + y = [] + for _x in x: + y.append(fn(_x, **keywords)) + y = np.array(y) + + a = np.argsort(y) + + return interp1d(y[a], x[a]) + +if __name__ == "__main__": + #TODO: Make sure everything is correctly aligned and make a plotting + # function + from statsmodels.compat.python import urlopen + import matplotlib.pyplot as plt + nerve_data = urlopen('http://www.statsci.org/data/general/nerve.txt') + nerve_data = np.loadtxt(nerve_data) + x = nerve_data / 50. # was in 1/50 seconds + cdf = ECDF(x) + x.sort() + F = cdf(x) + plt.step(x, F) + lower, upper = _conf_set(F) + plt.step(x, lower, 'r') + plt.step(x, upper, 'r') + plt.xlim(0, 1.5) + plt.ylim(0, 1.05) + plt.vlines(x, 0, .05) + plt.show() + diff --git a/statsmodels/distributions/mixture_rvs.py b/statsmodels/distributions/mixture_rvs.py new file mode 100644 index 0000000..c376bb3 --- /dev/null +++ b/statsmodels/distributions/mixture_rvs.py @@ -0,0 +1,282 @@ +from statsmodels.compat.python import range +import numpy as np + +def _make_index(prob,size): + """ + Returns a boolean index for given probabilities. + + Notes + --------- + prob = [.75,.25] means that there is a 75% chance of the first column + being True and a 25% chance of the second column being True. The + columns are mutually exclusive. + """ + rv = np.random.uniform(size=(size,1)) + cumprob = np.cumsum(prob) + return np.logical_and(np.r_[0,cumprob[:-1]] <= rv, rv < cumprob) + +def mixture_rvs(prob, size, dist, kwargs=None): + """ + Sample from a mixture of distributions. + + Parameters + ---------- + prob : array-like + Probability of sampling from each distribution in dist + size : int + The length of the returned sample. + dist : array-like + An iterable of distributions objects from scipy.stats. + kwargs : tuple of dicts, optional + A tuple of dicts. Each dict in kwargs can have keys loc, scale, and + args to be passed to the respective distribution in dist. If not + provided, the distribution defaults are used. + + Examples + -------- + Say we want 5000 random variables from mixture of normals with two + distributions norm(-1,.5) and norm(1,.5) and we want to sample from the + first with probability .75 and the second with probability .25. + + >>> from scipy import stats + >>> prob = [.75,.25] + >>> Y = mixture_rvs(prob, 5000, dist=[stats.norm, stats.norm], + ... kwargs = (dict(loc=-1,scale=.5),dict(loc=1,scale=.5))) + """ + if len(prob) != len(dist): + raise ValueError("You must provide as many probabilities as distributions") + if not np.allclose(np.sum(prob), 1): + raise ValueError("prob does not sum to 1") + + if kwargs is None: + kwargs = ({},)*len(prob) + + idx = _make_index(prob,size) + sample = np.empty(size) + for i in range(len(prob)): + sample_idx = idx[...,i] + sample_size = sample_idx.sum() + loc = kwargs[i].get('loc',0) + scale = kwargs[i].get('scale',1) + args = kwargs[i].get('args',()) + sample[sample_idx] = dist[i].rvs(*args, **dict(loc=loc,scale=scale, + size=sample_size)) + return sample + + +class MixtureDistribution(object): + '''univariate mixture distribution + + for simple case for now (unbound support) + does not yet inherit from scipy.stats.distributions + + adding pdf to mixture_rvs, some restrictions on broadcasting + Currently it does not hold any state, all arguments included in each method. + ''' + + #def __init__(self, prob, size, dist, kwargs=None): + + def rvs(self, prob, size, dist, kwargs=None): + return mixture_rvs(prob, size, dist, kwargs=kwargs) + + + def pdf(self, x, prob, dist, kwargs=None): + """ + pdf a mixture of distributions. + + Parameters + ---------- + x : array-like + Array containing locations where the PDF should be evaluated + prob : array-like + Probability of sampling from each distribution in dist + dist : array-like + An iterable of distributions objects from scipy.stats. + kwargs : tuple of dicts, optional + A tuple of dicts. Each dict in kwargs can have keys loc, scale, and + args to be passed to the respective distribution in dist. If not + provided, the distribution defaults are used. + + Examples + -------- + Say we want 5000 random variables from mixture of normals with two + distributions norm(-1,.5) and norm(1,.5) and we want to sample from the + first with probability .75 and the second with probability .25. + + >>> import numpy as np + >>> from scipy import stats + >>> from statsmodels.distributions.mixture_rvs import MixtureDistribution + >>> x = np.arange(-4.0, 4.0, 0.01) + >>> prob = [.75,.25] + >>> mixture = MixtureDistribution() + >>> Y = mixture.pdf(x, prob, dist=[stats.norm, stats.norm], + ... kwargs = (dict(loc=-1,scale=.5),dict(loc=1,scale=.5))) + """ + if len(prob) != len(dist): + raise ValueError("You must provide as many probabilities as distributions") + if not np.allclose(np.sum(prob), 1): + raise ValueError("prob does not sum to 1") + + if kwargs is None: + kwargs = ({},)*len(prob) + + for i in range(len(prob)): + loc = kwargs[i].get('loc',0) + scale = kwargs[i].get('scale',1) + args = kwargs[i].get('args',()) + if i == 0: #assume all broadcast the same as the first dist + pdf_ = prob[i] * dist[i].pdf(x, *args, loc=loc, scale=scale) + else: + pdf_ += prob[i] * dist[i].pdf(x, *args, loc=loc, scale=scale) + return pdf_ + + def cdf(self, x, prob, dist, kwargs=None): + """ + cdf of a mixture of distributions. + + Parameters + ---------- + x : array-like + Array containing locations where the CDF should be evaluated + prob : array-like + Probability of sampling from each distribution in dist + size : int + The length of the returned sample. + dist : array-like + An iterable of distributions objects from scipy.stats. + kwargs : tuple of dicts, optional + A tuple of dicts. Each dict in kwargs can have keys loc, scale, and + args to be passed to the respective distribution in dist. If not + provided, the distribution defaults are used. + + Examples + -------- + Say we want 5000 random variables from mixture of normals with two + distributions norm(-1,.5) and norm(1,.5) and we want to sample from the + first with probability .75 and the second with probability .25. + + >>> import numpy as np + >>> from scipy import stats + >>> from statsmodels.distributions.mixture_rvs import MixtureDistribution + >>> x = np.arange(-4.0, 4.0, 0.01) + >>> prob = [.75,.25] + >>> mixture = MixtureDistribution() + >>> Y = mixture.pdf(x, prob, dist=[stats.norm, stats.norm], + ... kwargs = (dict(loc=-1,scale=.5),dict(loc=1,scale=.5))) + """ + if len(prob) != len(dist): + raise ValueError("You must provide as many probabilities as distributions") + if not np.allclose(np.sum(prob), 1): + raise ValueError("prob does not sum to 1") + + if kwargs is None: + kwargs = ({},)*len(prob) + + for i in range(len(prob)): + loc = kwargs[i].get('loc',0) + scale = kwargs[i].get('scale',1) + args = kwargs[i].get('args',()) + if i == 0: #assume all broadcast the same as the first dist + cdf_ = prob[i] * dist[i].cdf(x, *args, loc=loc, scale=scale) + else: + cdf_ += prob[i] * dist[i].cdf(x, *args, loc=loc, scale=scale) + return cdf_ + + +def mv_mixture_rvs(prob, size, dist, nvars, **kwargs): + """ + Sample from a mixture of multivariate distributions. + + Parameters + ---------- + prob : array-like + Probability of sampling from each distribution in dist + size : int + The length of the returned sample. + dist : array-like + An iterable of distributions instances with callable method rvs. + nvargs : int + dimension of the multivariate distribution, could be inferred instead + kwargs : tuple of dicts, optional + ignored + + Examples + -------- + Say we want 2000 random variables from mixture of normals with two + multivariate normal distributions, and we want to sample from the + first with probability .4 and the second with probability .6. + + import statsmodels.sandbox.distributions.mv_normal as mvd + + cov3 = np.array([[ 1. , 0.5 , 0.75], + [ 0.5 , 1.5 , 0.6 ], + [ 0.75, 0.6 , 2. ]]) + + mu = np.array([-1, 0.0, 2.0]) + mu2 = np.array([4, 2.0, 2.0]) + mvn3 = mvd.MVNormal(mu, cov3) + mvn32 = mvd.MVNormal(mu2, cov3/2., 4) + rvs = mix.mv_mixture_rvs([0.4, 0.6], 2000, [mvn3, mvn32], 3) + + """ + if len(prob) != len(dist): + raise ValueError("You must provide as many probabilities as distributions") + if not np.allclose(np.sum(prob), 1): + raise ValueError("prob does not sum to 1") + + if kwargs is None: + kwargs = ({},)*len(prob) + + idx = _make_index(prob,size) + sample = np.empty((size, nvars)) + for i in range(len(prob)): + sample_idx = idx[...,i] + sample_size = sample_idx.sum() + #loc = kwargs[i].get('loc',0) + #scale = kwargs[i].get('scale',1) + #args = kwargs[i].get('args',()) + # use int to avoid numpy bug with np.random.multivariate_normal + sample[sample_idx] = dist[i].rvs(size=int(sample_size)) + return sample + + + +if __name__ == '__main__': + + from scipy import stats + + obs_dist = mixture_rvs([.25,.75], size=10000, dist=[stats.norm, stats.beta], + kwargs=(dict(loc=-1,scale=.5),dict(loc=1,scale=1,args=(1,.5)))) + + + + nobs = 10000 + mix = MixtureDistribution() +## mrvs = mixture_rvs([1/3.,2/3.], size=nobs, dist=[stats.norm, stats.norm], +## kwargs = (dict(loc=-1,scale=.5),dict(loc=1,scale=.75))) + + mix_kwds = (dict(loc=-1,scale=.25),dict(loc=1,scale=.75)) + mrvs = mix.rvs([1/3.,2/3.], size=nobs, dist=[stats.norm, stats.norm], + kwargs=mix_kwds) + + grid = np.linspace(-4,4, 100) + mpdf = mix.pdf(grid, [1/3.,2/3.], dist=[stats.norm, stats.norm], + kwargs=mix_kwds) + mcdf = mix.cdf(grid, [1/3.,2/3.], dist=[stats.norm, stats.norm], + kwargs=mix_kwds) + + doplot = 1 + if doplot: + import matplotlib.pyplot as plt + plt.figure() + plt.hist(mrvs, bins=50, normed=True, color='red') + plt.title('histogram of sample and pdf') + plt.plot(grid, mpdf, lw=2, color='black') + + plt.figure() + plt.hist(mrvs, bins=50, normed=True, cumulative=True, color='red') + plt.title('histogram of sample and pdf') + plt.plot(grid, mcdf, lw=2, color='black') + + plt.show() + diff --git a/statsmodels/distributions/tests/__init__.py b/statsmodels/distributions/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/distributions/tests/test_ecdf.py b/statsmodels/distributions/tests/test_ecdf.py new file mode 100644 index 0000000..11b1ed5 --- /dev/null +++ b/statsmodels/distributions/tests/test_ecdf.py @@ -0,0 +1,44 @@ +import numpy as np +import numpy.testing as npt +from statsmodels.distributions import StepFunction, monotone_fn_inverter + +class TestDistributions(npt.TestCase): + + def test_StepFunction(self): + x = np.arange(20) + y = np.arange(20) + f = StepFunction(x, y) + npt.assert_almost_equal(f( np.array([[3.2,4.5],[24,-3.1],[3.0, 4.0]])), + [[ 3, 4], [19, 0], [2, 3]]) + + def test_StepFunctionBadShape(self): + x = np.arange(20) + y = np.arange(21) + self.assertRaises(ValueError, StepFunction, x, y) + x = np.zeros((2, 2)) + y = np.zeros((2, 2)) + self.assertRaises(ValueError, StepFunction, x, y) + + def test_StepFunctionValueSideRight(self): + x = np.arange(20) + y = np.arange(20) + f = StepFunction(x, y, side='right') + npt.assert_almost_equal(f( np.array([[3.2,4.5],[24,-3.1],[3.0, 4.0]])), + [[ 3, 4], [19, 0], [3, 4]]) + + def test_StepFunctionRepeatedValues(self): + x = [1, 1, 2, 2, 2, 3, 3, 3, 4, 5] + y = [6, 7, 8, 9, 10, 11, 12, 13, 14, 15] + f = StepFunction(x, y) + npt.assert_almost_equal(f([1, 2, 3, 4, 5]), [0, 7, 10, 13, 14]) + f2 = StepFunction(x, y, side='right') + npt.assert_almost_equal(f2([1, 2, 3, 4, 5]), [7, 10, 13, 14, 15]) + + def test_monotone_fn_inverter(self): + x = [6, 7, 8, 9, 10, 11, 12, 13, 14, 15] + fn = lambda x : 1./x + y = fn(np.array(x)) + f = monotone_fn_inverter(fn, x) + npt.assert_array_equal(f.y, x[::-1]) + npt.assert_array_equal(f.x, y[::-1]) + diff --git a/statsmodels/distributions/tests/test_edgeworth.py b/statsmodels/distributions/tests/test_edgeworth.py new file mode 100644 index 0000000..6c7f91e --- /dev/null +++ b/statsmodels/distributions/tests/test_edgeworth.py @@ -0,0 +1,194 @@ +from __future__ import division, print_function, absolute_import + +import warnings + +import numpy as np +from numpy.polynomial.hermite_e import HermiteE +from numpy.testing import (TestCase, run_module_suite, assert_equal, + assert_raises, assert_allclose) +import numpy.testing as npt + +from scipy.misc import factorial, factorial2 +from scipy.special import gamma +import scipy.stats as stats + +from statsmodels.distributions.edgeworth import (_faa_di_bruno_partitions, + cumulant_from_moments, ExpandedNormal) + +class TestFaaDiBruno(TestCase): + def test_neg_arg(self): + assert_raises(ValueError, _faa_di_bruno_partitions, -1) + assert_raises(ValueError, _faa_di_bruno_partitions, 0) + + def test_small_vals(self): + for n in range(1, 5): + for ks in _faa_di_bruno_partitions(n): + lhs = sum(m * k for (m, k) in ks) + assert_equal(lhs, n) + + +def _norm_moment(n): + # moments of N(0, 1) + return (1 - n % 2) * factorial2(n - 1) + +def _norm_cumulant(n): + # cumulants of N(0, 1) + try: + return {1: 0, 2: 1}[n] + except KeyError: + return 0 + +def _chi2_moment(n, df): + # (raw) moments of \chi^2(df) + return (2**n) * gamma(n + df/2.) / gamma(df/2.) + +def _chi2_cumulant(n, df): + assert n > 0 + return 2**(n-1) * factorial(n - 1) * df + + +class TestCumulants(TestCase): + def test_badvalues(self): + assert_raises(ValueError, cumulant_from_moments, [1, 2, 3], 0) + assert_raises(ValueError, cumulant_from_moments, [1, 2, 3], 4) + + def test_norm(self): + N = 4 + momt = [_norm_moment(j+1) for j in range(N)] + for n in range(1, N+1): + kappa = cumulant_from_moments(momt, n) + assert_allclose(kappa, _norm_cumulant(n), + atol=1e-12) + + def test_chi2(self): + N = 4 + df = 8 + momt = [_chi2_moment(j+1, df) for j in range(N)] + for n in range(1, N+1): + kappa = cumulant_from_moments(momt, n) + assert_allclose(kappa, _chi2_cumulant(n, df)) + + +class TestExpandedNormal(TestCase): + def test_too_few_cumulants(self): + assert_raises(ValueError, ExpandedNormal, [1]) + + def test_coefficients(self): + with warnings.catch_warnings(): + warnings.simplefilter('ignore', RuntimeWarning) + # 3rd order in n**(1/2) + ne3 = ExpandedNormal([0., 1., 1.]) + assert_allclose(ne3._coef, [1., 0., 0., 1./6]) + + # 4th order in n**(1/2) + ne4 = ExpandedNormal([0., 1., 1., 1.]) + assert_allclose(ne4._coef, [1., 0., 0., 1./6, 1./24, 0., 1./72]) + + # 5th order + ne5 = ExpandedNormal([0., 1., 1., 1., 1.]) + assert_allclose(ne5._coef, [1., 0., 0., 1./6, 1./24, 1./120, + 1./72, 1./144, 0., 1./1296]) + + # adding trailing zeroes increases the order + ne33 = ExpandedNormal([0., 1., 1., 0.]) + assert_allclose(ne33._coef, [1., 0., 0., 1./6, 0., 0., 1./72]) + + def test_normal(self): + # with two cumulants, it's just a gaussian + ne2 = ExpandedNormal([3, 4]) + x = np.linspace(-2., 2., 100) + assert_allclose(ne2.pdf(x), stats.norm.pdf(x, loc=3, scale=2)) + + def test_chi2_moments(self): + # construct the expansion for \chi^2 + N, df = 6, 15 + cum = [_chi2_cumulant(n+1, df) for n in range(N)] + with warnings.catch_warnings(): + warnings.simplefilter("ignore", RuntimeWarning) + ne = ExpandedNormal(cum, name='edgw_chi2') + + # compare the moments + assert_allclose([_chi2_moment(n, df) for n in range(N)], + [ne.moment(n) for n in range(N)]) + + # compare the pdf [fragile!] + # this one is actually not a very good test: there is, strictly + # speaking, no guarantee that the pdfs match point-by-point + # m, s = df, np.sqrt(df) + # x = np.linspace(m - s, m + s, 10) + # assert_allclose(ne.pdf(x), stats.chi2.pdf(x, df), + # atol=1e-4, rtol=1e-5) + + # pdf-cdf roundtrip + check_pdf(ne, arg=(), msg='') + + # cdf-ppf roundtrip + check_cdf_ppf(ne, arg=(), msg='') + + # cdf + sf == 1 + check_cdf_sf(ne, arg=(), msg='') + + # generate rvs & run a KS test + np.random.seed(765456) + rvs = ne.rvs(size=500) + check_distribution_rvs(ne, args=(), alpha=0.01, rvs=rvs) + + def test_pdf_no_roots(self): + with warnings.catch_warnings(): + warnings.simplefilter("error", RuntimeWarning) + ne = ExpandedNormal([0, 1]) + ne = ExpandedNormal([0, 1, 0.1, 0.1]) + + def test_pdf_has_roots(self): + with warnings.catch_warnings(): + warnings.simplefilter("error", RuntimeWarning) + assert_raises(RuntimeWarning, ExpandedNormal, [0, 1, 101]) + + +## stolen verbatim from scipy/stats/tests/test_continuous_extra.py +DECIMAL = 8 + +def check_pdf(distfn, arg, msg): + # compares pdf at median with numerical derivative of cdf + median = distfn.ppf(0.5, *arg) + eps = 1e-6 + pdfv = distfn.pdf(median, *arg) + if (pdfv < 1e-4) or (pdfv > 1e4): + # avoid checking a case where pdf is close to zero + # or huge (singularity) + median = median + 0.1 + pdfv = distfn.pdf(median, *arg) + cdfdiff = (distfn.cdf(median + eps, *arg) - + distfn.cdf(median - eps, *arg))/eps/2.0 + # replace with better diff and better test (more points), + # actually, this works pretty well + npt.assert_almost_equal(pdfv, cdfdiff, + decimal=DECIMAL, err_msg=msg + ' - cdf-pdf relationship') + + +def check_cdf_ppf(distfn, arg, msg): + values = [0.001, 0.5, 0.999] + npt.assert_almost_equal(distfn.cdf(distfn.ppf(values, *arg), *arg), + values, decimal=DECIMAL, err_msg=msg + ' - cdf-ppf roundtrip') + + +def check_cdf_sf(distfn, arg, msg): + values = [0.001, 0.5, 0.999] + npt.assert_almost_equal(distfn.cdf(values, *arg), + 1. - distfn.sf(values, *arg), + decimal=DECIMAL, err_msg=msg +' - sf+cdf == 1') + + +def check_distribution_rvs(distfn, args, alpha, rvs): + ## signature changed to avoid calling a distribution by name + # test from scipy.stats.tests + # this version reuses existing random variables + D,pval = stats.kstest(rvs, distfn.cdf, args=args, N=1000) + if (pval < alpha): + D,pval = stats.kstest(distfn.rvs, distfn.cdf, args=args, N=1000) + npt.assert_(pval > alpha, "D = " + str(D) + "; pval = " + str(pval) + + "; alpha = " + str(alpha) + "\nargs = " + str(args)) + + +if __name__ == "__main__": + run_module_suite() diff --git a/statsmodels/distributions/tests/test_mixture.py b/statsmodels/distributions/tests/test_mixture.py new file mode 100644 index 0000000..e387fd6 --- /dev/null +++ b/statsmodels/distributions/tests/test_mixture.py @@ -0,0 +1,111 @@ +# Copyright (c) 2013 Ana Martinez Pardo +# License: BSD-3 [see LICENSE.txt] + +import numpy as np +import numpy.testing as npt +from statsmodels.distributions.mixture_rvs import (mv_mixture_rvs, + MixtureDistribution) +import statsmodels.sandbox.distributions.mv_normal as mvd +from scipy import stats + +class TestMixtureDistributions(object): + + def test_mixture_rvs_random(self): + # Test only medium small sample at 1 decimal + np.random.seed(0) + mix = MixtureDistribution() + res = mix.rvs([.75,.25], 1000, dist=[stats.norm, stats.norm], kwargs = + (dict(loc=-1,scale=.5),dict(loc=1,scale=.5))) + npt.assert_almost_equal( + np.array([res.std(),res.mean(),res.var()]), + np.array([1,-0.5,1]), + decimal=1) + + def test_mv_mixture_rvs_random(self): + cov3 = np.array([[ 1. , 0.5 , 0.75], + [ 0.5 , 1.5 , 0.6 ], + [ 0.75, 0.6 , 2. ]]) + mu = np.array([-1, 0.0, 2.0]) + mu2 = np.array([4, 2.0, 2.0]) + mvn3 = mvd.MVNormal(mu, cov3) + mvn32 = mvd.MVNormal(mu2, cov3/2.) + np.random.seed(0) + res = mv_mixture_rvs([0.4, 0.6], 5000, [mvn3, mvn32], 3) + npt.assert_almost_equal( + np.array([res.std(),res.mean(),res.var()]), + np.array([1.874,1.733,3.512]), + decimal=1) + + def test_mixture_pdf(self): + mix = MixtureDistribution() + grid = np.linspace(-4,4, 10) + res = mix.pdf(grid, [1/3.,2/3.], dist=[stats.norm, stats.norm], kwargs= + (dict(loc=-1,scale=.25),dict(loc=1,scale=.75))) + npt.assert_almost_equal( + res, + np.array([ 7.92080017e-11, 1.05977272e-07, 3.82368500e-05, + 2.21485447e-01, 1.00534607e-01, 2.69531536e-01, + 3.21265627e-01, 9.39899015e-02, 6.74932493e-03, + 1.18960201e-04])) + + def test_mixture_cdf(self): + mix = MixtureDistribution() + grid = np.linspace(-4,4, 10) + res = mix.cdf(grid, [1/3.,2/3.], dist=[stats.norm, stats.norm], kwargs= + (dict(loc=-1,scale=.25),dict(loc=1,scale=.75))) + npt.assert_almost_equal( + res, + np.array([ 8.72261646e-12, 1.40592960e-08, 5.95819161e-06, + 3.10250226e-02, 3.46993159e-01, 4.86283549e-01, + 7.81092904e-01, 9.65606734e-01, 9.98373155e-01, + 9.99978886e-01])) + + def test_mixture_rvs_fixed(self): + mix = MixtureDistribution() + np.random.seed(1234) + res = mix.rvs([.15,.85], 50, dist=[stats.norm, stats.norm], kwargs = + (dict(loc=1,scale=.5),dict(loc=-1,scale=.5))) + npt.assert_almost_equal( + res, + np.array([-0.5794956 , -1.72290504, -1.70098664, -1.0504591 , + -1.27412122,-1.07230975, -0.82298983, -1.01775651, + -0.71713085,-0.2271706 ,-1.48711817, -1.03517244, + -0.84601557, -1.10424938, -0.48309963,-2.20022682, + 0.01530181, 1.1238961 , -1.57131564, -0.89405831, + -0.64763969, -1.39271761, 0.55142161, -0.76897013, + -0.64788589,-0.73824602, -1.46312716, 0.00392148, + -0.88651873, -1.57632955,-0.68401028, -0.98024366, + -0.76780384, 0.93160258,-2.78175833,-0.33944719, + -0.92368472, -0.91773523, -1.21504785, -0.61631563, + 1.0091446 , -0.50754008, 1.37770699, -0.86458208, + -0.3040069 ,-0.96007884, 1.10763429, -1.19998229, + -1.51392528, -1.29235911])) + + def test_mv_mixture_rvs_fixed(self): + np.random.seed(1234) + cov3 = np.array([[ 1. , 0.5 , 0.75], + [ 0.5 , 1.5 , 0.6 ], + [ 0.75, 0.6 , 2. ]]) + mu = np.array([-1, 0.0, 2.0]) + mu2 = np.array([4, 2.0, 2.0]) + mvn3 = mvd.MVNormal(mu, cov3) + mvn32 = mvd.MVNormal(mu2, cov3/2) + res = mv_mixture_rvs([0.2, 0.8], 10, [mvn3, mvn32], 3) + npt.assert_almost_equal( + res, + np.array([[-0.23955497, 1.73426482, 0.36100243], + [ 2.52063189, 1.0832677 , 1.89947131], + [ 4.36755379, 2.14480498, 2.22003966], + [ 3.1141545 , 1.21250505, 2.58511199], + [ 4.1980202 , 2.50017561, 1.87324933], + [ 3.48717503, 0.91847424, 2.14004598], + [ 3.55904133, 2.74367622, 0.68619582], + [ 3.60521933, 1.57316531, 0.82784584], + [ 3.86102275, 0.6211812 , 1.33016426], + [ 3.91074761, 2.037155 , 2.22247051]])) + + +if __name__ == "__main__": + import nose + nose.runmodule(argv=[__file__,'-vvs','-x','--pdb'], + exit=False) diff --git a/statsmodels/duration/__init__.py b/statsmodels/duration/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/duration/api.py b/statsmodels/duration/api.py new file mode 100644 index 0000000..32d3748 --- /dev/null +++ b/statsmodels/duration/api.py @@ -0,0 +1,3 @@ +from .hazard_regression import PHReg +from .survfunc import (SurvfuncRight, survdiff, + CumIncidenceRight) diff --git a/statsmodels/duration/hazard_regression.py b/statsmodels/duration/hazard_regression.py new file mode 100644 index 0000000..4143c2b --- /dev/null +++ b/statsmodels/duration/hazard_regression.py @@ -0,0 +1,1725 @@ +import numpy as np +from statsmodels.base import model +import statsmodels.base.model as base +from statsmodels.tools.decorators import cache_readonly +from scipy.optimize import brent +from statsmodels.compat.numpy import np_matrix_rank +from statsmodels.compat.numpy import np_new_unique + +""" +Implementation of proportional hazards regression models for duration +data that may be censored ("Cox models"). + +References +---------- +T Therneau (1996). Extending the Cox model. Technical report. +http://www.mayo.edu/research/documents/biostat-58pdf/DOC-10027288 + +G Rodriguez (2005). Non-parametric estimation in survival models. +http://data.princeton.edu/pop509/NonParametricSurvival.pdf + +B Gillespie (2006). Checking the assumptions in the Cox proportional +hazards model. +http://www.mwsug.org/proceedings/2006/stats/MWSUG-2006-SD08.pdf +""" + + +_predict_docstring = """ + Returns predicted values from the proportional hazards + regression model. + + Parameters + ---------- + params : array-like + The proportional hazards model parameters. + exog : array-like + Data to use as `exog` in forming predictions. If not + provided, the `exog` values from the model used to fit the + data are used.%(cov_params_doc)s + endog : array-like + Duration (time) values at which the predictions are made. + Only used if pred_type is either 'cumhaz' or 'surv'. If + using model `exog`, defaults to model `endog` (time), but + may be provided explicitly to make predictions at + alternative times. + strata : array-like + A vector of stratum values used to form the predictions. + Not used (may be 'None') if pred_type is 'lhr' or 'hr'. + If `exog` is None, the model stratum values are used. If + `exog` is not None and pred_type is 'surv' or 'cumhaz', + stratum values must be provided (unless there is only one + stratum). + offset : array-like + Offset values used to create the predicted values. + pred_type : string + If 'lhr', returns log hazard ratios, if 'hr' returns + hazard ratios, if 'surv' returns the survival function, if + 'cumhaz' returns the cumulative hazard function. + + Returns + ------- + A bunch containing two fields: `predicted_values` and + `standard_errors`. + + Notes + ----- + Standard errors are only returned when predicting the log + hazard ratio (pred_type is 'lhr'). + + Types `surv` and `cumhaz` require estimation of the cumulative + hazard function. +""" + +_predict_cov_params_docstring = """ + cov_params : array-like + The covariance matrix of the estimated `params` vector, + used to obtain prediction errors if pred_type='lhr', + otherwise optional.""" + + + +class PHSurvivalTime(object): + + def __init__(self, time, status, exog, strata=None, entry=None, + offset=None): + """ + Represent a collection of survival times with possible + stratification and left truncation. + + Parameters + ---------- + time : array_like + The times at which either the event (failure) occurs or + the observation is censored. + status : array_like + Indicates whether the event (failure) occurs at `time` + (`status` is 1), or if `time` is a censoring time (`status` + is 0). + exog : array_like + The exogeneous (covariate) data matrix, cases are rows and + variables are columns. + strata : array_like + Grouping variable defining the strata. If None, all + observations are in a single stratum. + entry : array_like + Entry (left truncation) times. The observation is not + part of the risk set for times before the entry time. If + None, the entry time is treated as being zero, which + gives no left truncation. The entry time must be less + than or equal to `time`. + offset : array-like + An optional array of offsets + """ + + # Default strata + if strata is None: + strata = np.zeros(len(time), dtype=np.int32) + + # Default entry times + if entry is None: + entry = np.zeros(len(time)) + + # Parameter validity checks. + n1, n2, n3, n4 = len(time), len(status), len(strata),\ + len(entry) + nv = [n1, n2, n3, n4] + if max(nv) != min(nv): + raise ValueError("endog, status, strata, and " + + "entry must all have the same length") + if min(time) < 0: + raise ValueError("endog must be non-negative") + if min(entry) < 0: + raise ValueError("entry time must be non-negative") + + # In Stata, this is entry >= time, in R it is >. + if np.any(entry > time): + raise ValueError("entry times may not occur " + + "after event or censoring times") + + # Get the row indices for the cases in each stratum + stu = np.unique(strata) + #sth = {x: [] for x in stu} # needs >=2.7 + sth = dict([(x, []) for x in stu]) + for i,k in enumerate(strata): + sth[k].append(i) + stratum_rows = [np.asarray(sth[k], dtype=np.int32) for k in stu] + stratum_names = stu + + # Remove strata with no events + ix = [i for i,ix in enumerate(stratum_rows) if status[ix].sum() > 0] + self.nstrat_orig = len(stratum_rows) + stratum_rows = [stratum_rows[i] for i in ix] + stratum_names = [stratum_names[i] for i in ix] + + # The number of strata + nstrat = len(stratum_rows) + self.nstrat = nstrat + + # Remove subjects whose entry time occurs after the last event + # in their stratum. + for stx,ix in enumerate(stratum_rows): + last_failure = max(time[ix][status[ix] == 1]) + + # Stata uses < here, R uses <= + ii = [i for i,t in enumerate(entry[ix]) if + t <= last_failure] + stratum_rows[stx] = stratum_rows[stx][ii] + + # Remove subjects who are censored before the first event in + # their stratum. + for stx,ix in enumerate(stratum_rows): + first_failure = min(time[ix][status[ix] == 1]) + + ii = [i for i,t in enumerate(time[ix]) if + t >= first_failure] + stratum_rows[stx] = stratum_rows[stx][ii] + + # Order by time within each stratum + for stx,ix in enumerate(stratum_rows): + ii = np.argsort(time[ix]) + stratum_rows[stx] = stratum_rows[stx][ii] + + if offset is not None: + self.offset_s = [] + for stx in range(nstrat): + self.offset_s.append(offset[stratum_rows[stx]]) + else: + self.offset_s = None + + # Number of informative subjects + self.n_obs = sum([len(ix) for ix in stratum_rows]) + + # Split everything by stratum + self.time_s = [] + self.exog_s = [] + self.status_s = [] + self.entry_s = [] + for ix in stratum_rows: + self.time_s.append(time[ix]) + self.exog_s.append(exog[ix,:]) + self.status_s.append(status[ix]) + self.entry_s.append(entry[ix]) + + self.stratum_rows = stratum_rows + self.stratum_names = stratum_names + + # Precalculate some indices needed to fit Cox models. + # Distinct failure times within a stratum are always taken to + # be sorted in ascending order. + # + # ufailt_ix[stx][k] is a list of indices for subjects who fail + # at the k^th sorted unique failure time in stratum stx + # + # risk_enter[stx][k] is a list of indices for subjects who + # enter the risk set at the k^th sorted unique failure time in + # stratum stx + # + # risk_exit[stx][k] is a list of indices for subjects who exit + # the risk set at the k^th sorted unique failure time in + # stratum stx + self.ufailt_ix, self.risk_enter, self.risk_exit, self.ufailt =\ + [], [], [], [] + + for stx in range(self.nstrat): + + # All failure times + ift = np.flatnonzero(self.status_s[stx] == 1) + ft = self.time_s[stx][ift] + + # Unique failure times + uft = np.unique(ft) + nuft = len(uft) + + # Indices of cases that fail at each unique failure time + #uft_map = {x:i for i,x in enumerate(uft)} # requires >=2.7 + uft_map = dict([(x, i) for i,x in enumerate(uft)]) # 2.6 + uft_ix = [[] for k in range(nuft)] + for ix,ti in zip(ift,ft): + uft_ix[uft_map[ti]].append(ix) + + # Indices of cases (failed or censored) that enter the + # risk set at each unique failure time. + risk_enter1 = [[] for k in range(nuft)] + for i,t in enumerate(self.time_s[stx]): + ix = np.searchsorted(uft, t, "right") - 1 + if ix >= 0: + risk_enter1[ix].append(i) + + # Indices of cases (failed or censored) that exit the + # risk set at each unique failure time. + risk_exit1 = [[] for k in range(nuft)] + for i,t in enumerate(self.entry_s[stx]): + ix = np.searchsorted(uft, t) + risk_exit1[ix].append(i) + + self.ufailt.append(uft) + self.ufailt_ix.append([np.asarray(x, dtype=np.int32) for x in uft_ix]) + self.risk_enter.append([np.asarray(x, dtype=np.int32) for x in risk_enter1]) + self.risk_exit.append([np.asarray(x, dtype=np.int32) for x in risk_exit1]) + + + +class PHReg(model.LikelihoodModel): + """ + Fit the Cox proportional hazards regression model for right + censored data. + + Parameters + ---------- + endog : array-like + The observed times (event or censoring) + exog : 2D array-like + The covariates or exogeneous variables + status : array-like + The censoring status values; status=1 indicates that an + event occured (e.g. failure or death), status=0 indicates + that the observation was right censored. If None, defaults + to status=1 for all cases. + entry : array-like + The entry times, if left truncation occurs + strata : array-like + Stratum labels. If None, all observations are taken to be + in a single stratum. + ties : string + The method used to handle tied times, must be either 'breslow' + or 'efron'. + offset : array-like + Array of offset values + missing : string + The method used to handle missing data + + Notes + ----- + Proportional hazards regression models should not include an + explicit or implicit intercept. The effect of an intercept is + not identified using the partial likelihood approach. + + `endog`, `event`, `strata`, `entry`, and the first dimension + of `exog` all must have the same length + """ + + def __init__(self, endog, exog, status=None, entry=None, + strata=None, offset=None, ties='breslow', + missing='drop', **kwargs): + + # Default is no censoring + if status is None: + status = np.ones(len(endog)) + + super(PHReg, self).__init__(endog, exog, status=status, + entry=entry, strata=strata, + offset=offset, missing=missing, + **kwargs) + + # endog and exog are automatically converted, but these are + # not + if self.status is not None: + self.status = np.asarray(self.status) + if self.entry is not None: + self.entry = np.asarray(self.entry) + if self.strata is not None: + self.strata = np.asarray(self.strata) + if self.offset is not None: + self.offset = np.asarray(self.offset) + + self.surv = PHSurvivalTime(self.endog, self.status, + self.exog, self.strata, + self.entry, self.offset) + self.nobs = len(self.endog) + self.groups = None + + # TODO: not used? + self.missing = missing + + self.df_resid = (np.float(self.exog.shape[0] - + np_matrix_rank(self.exog))) + self.df_model = np.float(np_matrix_rank(self.exog)) + + ties = ties.lower() + if ties not in ("efron", "breslow"): + raise ValueError("`ties` must be either `efron` or " + + "`breslow`") + + self.ties = ties + + @classmethod + def from_formula(cls, formula, data, status=None, entry=None, + strata=None, offset=None, subset=None, + ties='breslow', missing='drop', *args, **kwargs): + """ + Create a proportional hazards regression model from a formula + and dataframe. + + Parameters + ---------- + formula : str or generic Formula object + The formula specifying the model + data : array-like + The data for the model. See Notes. + status : array-like + The censoring status values; status=1 indicates that an + event occured (e.g. failure or death), status=0 indicates + that the observation was right censored. If None, defaults + to status=1 for all cases. + entry : array-like + The entry times, if left truncation occurs + strata : array-like + Stratum labels. If None, all observations are taken to be + in a single stratum. + offset : array-like + Array of offset values + subset : array-like + An array-like object of booleans, integers, or index + values that indicate the subset of df to use in the + model. Assumes df is a `pandas.DataFrame` + ties : string + The method used to handle tied times, must be either 'breslow' + or 'efron'. + missing : string + The method used to handle missing data + args : extra arguments + These are passed to the model + kwargs : extra keyword arguments + These are passed to the model with one exception. The + ``eval_env`` keyword is passed to patsy. It can be either a + :class:`patsy:patsy.EvalEnvironment` object or an integer + indicating the depth of the namespace to use. For example, the + default ``eval_env=0`` uses the calling namespace. If you wish + to use a "clean" environment set ``eval_env=-1``. + + Returns + ------- + model : PHReg model instance + """ + + # Allow array arguments to be passed by column name. + if isinstance(status, str): + status = data[status] + if isinstance(entry, str): + entry = data[entry] + if isinstance(strata, str): + strata = data[strata] + if isinstance(offset, str): + offset = data[offset] + + import re + terms = re.split("[+\-~]", formula) + for term in terms: + term = term.strip() + if term in ("0", "1"): + import warnings + warnings.warn("PHReg formulas should not include any '0' or '1' terms") + + mod = super(PHReg, cls).from_formula(formula, data, + status=status, entry=entry, strata=strata, + offset=offset, subset=subset, ties=ties, + missing=missing, drop_cols=["Intercept"], *args, + **kwargs) + + return mod + + def fit(self, groups=None, **args): + """ + Fit a proportional hazards regression model. + + Parameters + ---------- + groups : array-like + Labels indicating groups of observations that may be + dependent. If present, the standard errors account for + this dependence. Does not affect fitted values. + + Returns a PHregResults instance. + """ + + # TODO process for missing values + if groups is not None: + if len(groups) != len(self.endog): + msg = ("len(groups) = %d and len(endog) = %d differ" % + (len(groups), len(self.endog))) + raise ValueError(msg) + self.groups = np.asarray(groups) + else: + self.groups = None + + if 'disp' not in args: + args['disp'] = False + fit_rslts = super(PHReg, self).fit(**args) + + if self.groups is None: + cov_params = fit_rslts.cov_params() + else: + cov_params = self.robust_covariance(fit_rslts.params) + + results = PHRegResults(self, fit_rslts.params, cov_params) + + return results + + + def fit_regularized(self, method="elastic_net", alpha=0., + start_params=None, refit=False, **kwargs): + """ + Return a regularized fit to a linear regression model. + + Parameters + ---------- + method : + Only the `elastic_net` approach is currently implemented. + alpha : scalar or array-like + The penalty weight. If a scalar, the same penalty weight + applies to all variables in the model. If a vector, it + must have the same length as `params`, and contains a + penalty weight for each coefficient. + start_params : array-like + Starting values for `params`. + refit : bool + If True, the model is refit using only the variables that + have non-zero coefficients in the regularized fit. The + refitted model is not regularized. + + + Returns + ------- + A results object. + + Notes + ----- + The penalty is the ``elastic net`` penalty, which is a + combination of L1 and L2 penalties. + + The function that is minimized is: ..math:: + + -loglike/n + alpha*((1-L1_wt)*|params|_2^2/2 + L1_wt*|params|_1) + + where :math:`|*|_1` and :math:`|*|_2` are the L1 and L2 norms. + + Post-estimation results are based on the same data used to + select variables, hence may be subject to overfitting biases. + + The elastic_net method uses the following keyword arguments: + + maxiter : int + Maximum number of iterations + L1_wt : float + Must be in [0, 1]. The L1 penalty has weight L1_wt and the + L2 penalty has weight 1 - L1_wt. + cnvrg_tol : float + Convergence threshold for line searches + zero_tol : float + Coefficients below this threshold are treated as zero. + """ + + from statsmodels.base.elastic_net import fit_elasticnet + + if method != "elastic_net": + raise ValueError("method for fit_regularied must be elastic_net") + + defaults = {"maxiter" : 50, "L1_wt" : 1, "cnvrg_tol" : 1e-10, + "zero_tol" : 1e-10} + defaults.update(kwargs) + + return fit_elasticnet(self, method=method, + alpha=alpha, + start_params=start_params, + refit=refit, + **defaults) + + + def loglike(self, params): + """ + Returns the log partial likelihood function evaluated at + `params`. + """ + + if self.ties == "breslow": + return self.breslow_loglike(params) + elif self.ties == "efron": + return self.efron_loglike(params) + + def score(self, params): + """ + Returns the score function evaluated at `params`. + """ + + if self.ties == "breslow": + return self.breslow_gradient(params) + elif self.ties == "efron": + return self.efron_gradient(params) + + def hessian(self, params): + """ + Returns the Hessian matrix of the log partial likelihood + function evaluated at `params`. + """ + + if self.ties == "breslow": + return self.breslow_hessian(params) + else: + return self.efron_hessian(params) + + def breslow_loglike(self, params): + """ + Returns the value of the log partial likelihood function + evaluated at `params`, using the Breslow method to handle tied + times. + """ + + surv = self.surv + + like = 0. + + # Loop over strata + for stx in range(surv.nstrat): + + uft_ix = surv.ufailt_ix[stx] + exog_s = surv.exog_s[stx] + nuft = len(uft_ix) + + linpred = np.dot(exog_s, params) + if surv.offset_s is not None: + linpred += surv.offset_s[stx] + linpred -= linpred.max() + e_linpred = np.exp(linpred) + + xp0 = 0. + + # Iterate backward through the unique failure times. + for i in range(nuft)[::-1]: + + # Update for new cases entering the risk set. + ix = surv.risk_enter[stx][i] + xp0 += e_linpred[ix].sum() + + # Account for all cases that fail at this point. + ix = uft_ix[i] + like += (linpred[ix] - np.log(xp0)).sum() + + # Update for cases leaving the risk set. + ix = surv.risk_exit[stx][i] + xp0 -= e_linpred[ix].sum() + + return like + + def efron_loglike(self, params): + """ + Returns the value of the log partial likelihood function + evaluated at `params`, using the Efron method to handle tied + times. + """ + + surv = self.surv + + like = 0. + + # Loop over strata + for stx in range(surv.nstrat): + + # exog and linear predictor for this stratum + exog_s = surv.exog_s[stx] + linpred = np.dot(exog_s, params) + if surv.offset_s is not None: + linpred += surv.offset_s[stx] + linpred -= linpred.max() + e_linpred = np.exp(linpred) + + xp0 = 0. + + # Iterate backward through the unique failure times. + uft_ix = surv.ufailt_ix[stx] + nuft = len(uft_ix) + for i in range(nuft)[::-1]: + + # Update for new cases entering the risk set. + ix = surv.risk_enter[stx][i] + xp0 += e_linpred[ix].sum() + xp0f = e_linpred[uft_ix[i]].sum() + + # Account for all cases that fail at this point. + ix = uft_ix[i] + like += linpred[ix].sum() + + m = len(ix) + J = np.arange(m, dtype=np.float64) / m + like -= np.log(xp0 - J*xp0f).sum() + + # Update for cases leaving the risk set. + ix = surv.risk_exit[stx][i] + xp0 -= e_linpred[ix].sum() + + return like + + def breslow_gradient(self, params): + """ + Returns the gradient of the log partial likelihood, using the + Breslow method to handle tied times. + """ + + surv = self.surv + + grad = 0. + + # Loop over strata + for stx in range(surv.nstrat): + + # Indices of subjects in the stratum + strat_ix = surv.stratum_rows[stx] + + # Unique failure times in the stratum + uft_ix = surv.ufailt_ix[stx] + nuft = len(uft_ix) + + # exog and linear predictor for the stratum + exog_s = surv.exog_s[stx] + linpred = np.dot(exog_s, params) + if surv.offset_s is not None: + linpred += surv.offset_s[stx] + linpred -= linpred.max() + e_linpred = np.exp(linpred) + + xp0, xp1 = 0., 0. + + # Iterate backward through the unique failure times. + for i in range(nuft)[::-1]: + + # Update for new cases entering the risk set. + ix = surv.risk_enter[stx][i] + if len(ix) > 0: + v = exog_s[ix,:] + xp0 += e_linpred[ix].sum() + xp1 += (e_linpred[ix][:,None] * v).sum(0) + + # Account for all cases that fail at this point. + ix = uft_ix[i] + grad += (exog_s[ix,:] - xp1 / xp0).sum(0) + + # Update for cases leaving the risk set. + ix = surv.risk_exit[stx][i] + if len(ix) > 0: + v = exog_s[ix,:] + xp0 -= e_linpred[ix].sum() + xp1 -= (e_linpred[ix][:,None] * v).sum(0) + + return grad + + def efron_gradient(self, params): + """ + Returns the gradient of the log partial likelihood evaluated + at `params`, using the Efron method to handle tied times. + """ + + surv = self.surv + + grad = 0. + + # Loop over strata + for stx in range(surv.nstrat): + + # Indices of cases in the stratum + strat_ix = surv.stratum_rows[stx] + + # exog and linear predictor of the stratum + exog_s = surv.exog_s[stx] + linpred = np.dot(exog_s, params) + if surv.offset_s is not None: + linpred += surv.offset_s[stx] + linpred -= linpred.max() + e_linpred = np.exp(linpred) + + xp0, xp1 = 0., 0. + + # Iterate backward through the unique failure times. + uft_ix = surv.ufailt_ix[stx] + nuft = len(uft_ix) + for i in range(nuft)[::-1]: + + # Update for new cases entering the risk set. + ix = surv.risk_enter[stx][i] + if len(ix) > 0: + v = exog_s[ix,:] + xp0 += e_linpred[ix].sum() + xp1 += (e_linpred[ix][:,None] * v).sum(0) + ixf = uft_ix[i] + if len(ixf) > 0: + v = exog_s[ixf,:] + xp0f = e_linpred[ixf].sum() + xp1f = (e_linpred[ixf][:,None] * v).sum(0) + + # Consider all cases that fail at this point. + grad += v.sum(0) + + m = len(ixf) + J = np.arange(m, dtype=np.float64) / m + numer = xp1 - np.outer(J, xp1f) + denom = xp0 - np.outer(J, xp0f) + ratio = numer / denom + rsum = ratio.sum(0) + grad -= rsum + + # Update for cases leaving the risk set. + ix = surv.risk_exit[stx][i] + if len(ix) > 0: + v = exog_s[ix,:] + xp0 -= e_linpred[ix].sum() + xp1 -= (e_linpred[ix][:,None] * v).sum(0) + + return grad + + def breslow_hessian(self, params): + """ + Returns the Hessian of the log partial likelihood evaluated at + `params`, using the Breslow method to handle tied times. + """ + + surv = self.surv + + hess = 0. + + # Loop over strata + for stx in range(surv.nstrat): + + uft_ix = surv.ufailt_ix[stx] + nuft = len(uft_ix) + + exog_s = surv.exog_s[stx] + + linpred = np.dot(exog_s, params) + if surv.offset_s is not None: + linpred += surv.offset_s[stx] + linpred -= linpred.max() + e_linpred = np.exp(linpred) + + xp0, xp1, xp2 = 0., 0., 0. + + # Iterate backward through the unique failure times. + for i in range(nuft)[::-1]: + + # Update for new cases entering the risk set. + ix = surv.risk_enter[stx][i] + if len(ix) > 0: + xp0 += e_linpred[ix].sum() + v = exog_s[ix,:] + xp1 += (e_linpred[ix][:,None] * v).sum(0) + elx = e_linpred[ix] + xp2 += np.einsum("ij,ik,i->jk", v, v, elx) + + # Account for all cases that fail at this point. + m = len(uft_ix[i]) + hess += m*(xp2 / xp0 - np.outer(xp1, xp1) / xp0**2) + + # Update for new cases entering the risk set. + ix = surv.risk_exit[stx][i] + if len(ix) > 0: + xp0 -= e_linpred[ix].sum() + v = exog_s[ix,:] + xp1 -= (e_linpred[ix][:,None] * v).sum(0) + elx = e_linpred[ix] + xp2 -= np.einsum("ij,ik,i->jk", v, v, elx) + return -hess + + def efron_hessian(self, params): + """ + Returns the Hessian matrix of the partial log-likelihood + evaluated at `params`, using the Efron method to handle tied + times. + """ + + surv = self.surv + + hess = 0. + + # Loop over strata + for stx in range(surv.nstrat): + + exog_s = surv.exog_s[stx] + + linpred = np.dot(exog_s, params) + if surv.offset_s is not None: + linpred += surv.offset_s[stx] + linpred -= linpred.max() + e_linpred = np.exp(linpred) + + xp0, xp1, xp2 = 0., 0., 0. + + # Iterate backward through the unique failure times. + uft_ix = surv.ufailt_ix[stx] + nuft = len(uft_ix) + for i in range(nuft)[::-1]: + + # Update for new cases entering the risk set. + ix = surv.risk_enter[stx][i] + if len(ix) > 0: + xp0 += e_linpred[ix].sum() + v = exog_s[ix,:] + xp1 += (e_linpred[ix][:,None] * v).sum(0) + elx = e_linpred[ix] + xp2 += np.einsum("ij,ik,i->jk", v, v, elx) + + ixf = uft_ix[i] + if len(ixf) > 0: + v = exog_s[ixf,:] + xp0f = e_linpred[ixf].sum() + xp1f = (e_linpred[ixf][:,None] * v).sum(0) + elx = e_linpred[ixf] + xp2f = np.einsum("ij,ik,i->jk", v, v, elx) + + # Account for all cases that fail at this point. + m = len(uft_ix[i]) + J = np.arange(m, dtype=np.float64) / m + c0 = xp0 - J*xp0f + hess += xp2 * np.sum(1 / c0) + hess -= xp2f * np.sum(J / c0) + mat = (xp1[None, :] - np.outer(J, xp1f)) / c0[:, None] + hess -= np.einsum("ij,ik->jk", mat, mat) + + # Update for new cases entering the risk set. + ix = surv.risk_exit[stx][i] + if len(ix) > 0: + xp0 -= e_linpred[ix].sum() + v = exog_s[ix,:] + xp1 -= (e_linpred[ix][:,None] * v).sum(0) + elx = e_linpred[ix] + xp2 -= np.einsum("ij,ik,i->jk", v, v, elx) + + return -hess + + def robust_covariance(self, params): + """ + Returns a covariance matrix for the proportional hazards model + regresion coefficient estimates that is robust to certain + forms of model misspecification. + + Parameters + ---------- + params : ndarray + The parameter vector at which the covariance matrix is + calculated. + + Returns + ------- + The robust covariance matrix as a square ndarray. + + Notes + ----- + This function uses the `groups` argument to determine groups + within which observations may be dependent. The covariance + matrix is calculated using the Huber-White "sandwich" approach. + """ + + if self.groups is None: + raise ValueError("`groups` must be specified to calculate the robust covariance matrix") + + hess = self.hessian(params) + + score_obs = self.score_residuals(params) + + # Collapse + grads = {} + for i,g in enumerate(self.groups): + if g not in grads: + grads[g] = 0. + grads[g] += score_obs[i, :] + grads = np.asarray(list(grads.values())) + + mat = grads[None, :, :] + mat = mat.T * mat + mat = mat.sum(1) + + hess_inv = np.linalg.inv(hess) + cmat = np.dot(hess_inv, np.dot(mat, hess_inv)) + + return cmat + + def score_residuals(self, params): + """ + Returns the score residuals calculated at a given vector of + parameters. + + Parameters + ---------- + params : ndarray + The parameter vector at which the score residuals are + calculated. + + Returns + ------- + The score residuals, returned as a ndarray having the same + shape as `exog`. + + Notes + ----- + Observations in a stratum with no observed events have undefined + score residuals, and contain NaN in the returned matrix. + """ + + surv = self.surv + + score_resid = np.zeros(self.exog.shape, dtype=np.float64) + + # Use to set undefined values to NaN. + mask = np.zeros(self.exog.shape[0], dtype=np.int32) + + w_avg = self.weighted_covariate_averages(params) + + # Loop over strata + for stx in range(surv.nstrat): + + uft_ix = surv.ufailt_ix[stx] + exog_s = surv.exog_s[stx] + nuft = len(uft_ix) + strat_ix = surv.stratum_rows[stx] + + xp0 = 0. + + linpred = np.dot(exog_s, params) + if surv.offset_s is not None: + linpred += surv.offset_s[stx] + linpred -= linpred.max() + e_linpred = np.exp(linpred) + + at_risk_ix = set([]) + + # Iterate backward through the unique failure times. + for i in range(nuft)[::-1]: + + # Update for new cases entering the risk set. + ix = surv.risk_enter[stx][i] + at_risk_ix |= set(ix) + xp0 += e_linpred[ix].sum() + + atr_ix = list(at_risk_ix) + leverage = exog_s[atr_ix, :] - w_avg[stx][i, :] + + # Event indicators + d = np.zeros(exog_s.shape[0]) + d[uft_ix[i]] = 1 + + # The increment in the cumulative hazard + dchaz = len(uft_ix[i]) / xp0 + + # Piece of the martingale residual + mrp = d[atr_ix] - e_linpred[atr_ix] * dchaz + + # Update the score residuals + ii = strat_ix[atr_ix] + score_resid[ii,:] += leverage * mrp[:, None] + mask[ii] = 1 + + # Update for cases leaving the risk set. + ix = surv.risk_exit[stx][i] + at_risk_ix -= set(ix) + xp0 -= e_linpred[ix].sum() + + jj = np.flatnonzero(mask == 0) + if len(jj) > 0: + score_resid[jj, :] = np.nan + + return score_resid + + def weighted_covariate_averages(self, params): + """ + Returns the hazard-weighted average of covariate values for + subjects who are at-risk at a particular time. + + Parameters + ---------- + params : ndarray + Parameter vector + + Returns + ------- + averages : list of ndarrays + averages[stx][i,:] is a row vector containing the weighted + average values (for all the covariates) of at-risk + subjects a the i^th largest observed failure time in + stratum `stx`, using the hazard multipliers as weights. + + Notes + ----- + Used to calculate leverages and score residuals. + """ + + surv = self.surv + + averages = [] + xp0, xp1 = 0., 0. + + # Loop over strata + for stx in range(surv.nstrat): + + uft_ix = surv.ufailt_ix[stx] + exog_s = surv.exog_s[stx] + nuft = len(uft_ix) + + average_s = np.zeros((len(uft_ix), exog_s.shape[1]), + dtype=np.float64) + + linpred = np.dot(exog_s, params) + if surv.offset_s is not None: + linpred += surv.offset_s[stx] + linpred -= linpred.max() + e_linpred = np.exp(linpred) + + # Iterate backward through the unique failure times. + for i in range(nuft)[::-1]: + + # Update for new cases entering the risk set. + ix = surv.risk_enter[stx][i] + xp0 += e_linpred[ix].sum() + xp1 += np.dot(e_linpred[ix], exog_s[ix, :]) + + average_s[i, :] = xp1 / xp0 + + # Update for cases leaving the risk set. + ix = surv.risk_exit[stx][i] + xp0 -= e_linpred[ix].sum() + xp1 -= np.dot(e_linpred[ix], exog_s[ix, :]) + + averages.append(average_s) + + return averages + + def baseline_cumulative_hazard(self, params): + """ + Estimate the baseline cumulative hazard and survival + functions. + + Parameters + ---------- + params : ndarray + The model parameters. + + Returns + ------- + A list of triples (time, hazard, survival) containing the time + values and corresponding cumulative hazard and survival + function values for each stratum. + + Notes + ----- + Uses the Nelson-Aalen estimator. + """ + + # TODO: some disagreements with R, not the same algorithm but + # hard to deduce what R is doing. Our results are reasonable. + + surv = self.surv + rslt = [] + + # Loop over strata + for stx in range(surv.nstrat): + + uft = surv.ufailt[stx] + uft_ix = surv.ufailt_ix[stx] + exog_s = surv.exog_s[stx] + nuft = len(uft_ix) + + linpred = np.dot(exog_s, params) + if surv.offset_s is not None: + linpred += surv.offset_s[stx] + e_linpred = np.exp(linpred) + + xp0 = 0. + h0 = np.zeros(nuft, dtype=np.float64) + + # Iterate backward through the unique failure times. + for i in range(nuft)[::-1]: + + # Update for new cases entering the risk set. + ix = surv.risk_enter[stx][i] + xp0 += e_linpred[ix].sum() + + # Account for all cases that fail at this point. + ix = uft_ix[i] + h0[i] = len(ix) / xp0 + + # Update for cases leaving the risk set. + ix = surv.risk_exit[stx][i] + xp0 -= e_linpred[ix].sum() + + cumhaz = np.cumsum(h0) - h0 + current_strata_surv = np.exp(-cumhaz) + rslt.append([uft, cumhaz, current_strata_surv]) + + return rslt + + def baseline_cumulative_hazard_function(self, params): + """ + Returns a function that calculates the baseline cumulative + hazard function for each stratum. + + Parameters + ---------- + params : ndarray + The model parameters. + + Returns + ------- + A dict mapping stratum names to the estimated baseline + cumulative hazard function. + """ + + from scipy.interpolate import interp1d + surv = self.surv + base = self.baseline_cumulative_hazard(params) + + cumhaz_f = {} + for stx in range(surv.nstrat): + time_h = base[stx][0] + cumhaz = base[stx][1] + time_h = np.r_[-np.inf, time_h, np.inf] + cumhaz = np.r_[cumhaz[0], cumhaz, cumhaz[-1]] + func = interp1d(time_h, cumhaz, kind='zero') + cumhaz_f[self.surv.stratum_names[stx]] = func + + return cumhaz_f + + def predict(self, params, exog=None, cov_params=None, endog=None, + strata=None, offset=None, pred_type="lhr"): + # docstring attached below + + pred_type = pred_type.lower() + if pred_type not in ["lhr", "hr", "surv", "cumhaz"]: + msg = "Type %s not allowed for prediction" % pred_type + raise ValueError(msg) + + class bunch: + predicted_values = None + standard_errors = None + ret_val = bunch() + + # Don't do anything with offset here because we want to allow + # different offsets to be specified even if exog is the model + # exog. + exog_provided = True + if exog is None: + exog = self.exog + exog_provided = False + + lhr = np.dot(exog, params) + if offset is not None: + lhr += offset + # Never use self.offset unless we are also using self.exog + elif self.offset is not None and not exog_provided: + lhr += self.offset + + # Handle lhr and hr prediction first, since they don't make + # use of the hazard function. + + if pred_type == "lhr": + ret_val.predicted_values = lhr + if cov_params is not None: + mat = np.dot(exog, cov_params) + va = (mat * exog).sum(1) + ret_val.standard_errors = np.sqrt(va) + return ret_val + + hr = np.exp(lhr) + + if pred_type == "hr": + ret_val.predicted_values = hr + return ret_val + + # Makes sure endog is defined + if endog is None and exog_provided: + msg = "If `exog` is provided `endog` must be provided." + raise ValueError(msg) + # Use model endog if using model exog + elif endog is None and not exog_provided: + endog = self.endog + + # Make sure strata is defined + if strata is None: + if exog_provided and self.surv.nstrat > 1: + raise ValueError("`strata` must be provided") + if self.strata is None: + strata = [self.surv.stratum_names[0],] * len(endog) + else: + strata = self.strata + + cumhaz = np.nan * np.ones(len(endog), dtype=np.float64) + stv = np.unique(strata) + bhaz = self.baseline_cumulative_hazard_function(params) + for stx in stv: + ix = np.flatnonzero(strata == stx) + func = bhaz[stx] + cumhaz[ix] = func(endog[ix]) * hr[ix] + + if pred_type == "cumhaz": + ret_val.predicted_values = cumhaz + + elif pred_type == "surv": + ret_val.predicted_values = np.exp(-cumhaz) + + return ret_val + + predict.__doc__ = _predict_docstring % {'cov_params_doc': _predict_cov_params_docstring} + + def get_distribution(self, params): + """ + Returns a scipy distribution object corresponding to the + distribution of uncensored endog (duration) values for each + case. + + Parameters + ---------- + params : array-like + The proportional hazards model parameters. + + Returns + ------- + A list of objects of type scipy.stats.distributions.rv_discrete + + Notes + ----- + The distributions are obtained from a simple discrete estimate + of the survivor function that puts all mass on the observed + failure times within a stratum. + """ + + # TODO: this returns a Python list of rv_discrete objects, so + # nothing can be vectorized. It appears that rv_discrete does + # not allow vectorization. + + from scipy.stats.distributions import rv_discrete + + surv = self.surv + bhaz = self.baseline_cumulative_hazard(params) + + # The arguments to rv_discrete_float, first obtained by + # stratum + pk, xk = [], [] + + for stx in range(self.surv.nstrat): + + exog_s = surv.exog_s[stx] + + linpred = np.dot(exog_s, params) + if surv.offset_s is not None: + linpred += surv.offset_s[stx] + e_linpred = np.exp(linpred) + + # The unique failure times for this stratum (the support + # of the distribution). + pts = bhaz[stx][0] + + # The individual cumulative hazards for everyone in this + # stratum. + ichaz = np.outer(e_linpred, bhaz[stx][1]) + + # The individual survival functions. + usurv = np.exp(-ichaz) + z = np.zeros((usurv.shape[0], 1)) + usurv = np.concatenate((usurv, z), axis=1) + + # The individual survival probability masses. + probs = -np.diff(usurv, 1) + + pk.append(probs) + xk.append(np.outer(np.ones(probs.shape[0]), pts)) + + # Pad to make all strata have the same shape + mxc = max([x.shape[1] for x in xk]) + for k in range(self.surv.nstrat): + if xk[k].shape[1] < mxc: + xk1 = np.zeros((xk[k].shape[0], mxc)) + pk1 = np.zeros((pk[k].shape[0], mxc)) + xk1[:, 0:xk[k].shape[1]] = xk[k] + pk1[:, 0:pk[k].shape[1]] = pk[k] + xk[k], pk[k] = xk1, pk1 + + # Put the support points and probabilities into single matrices + xka = np.nan * np.ones((len(self.endog), mxc)) + pka = np.ones((len(self.endog), mxc), dtype=np.float64) / mxc + for stx in range(self.surv.nstrat): + ix = self.surv.stratum_rows[stx] + xka[ix, :] = xk[stx] + pka[ix, :] = pk[stx] + + dist = rv_discrete_float(xka, pka) + + return dist + + +class PHRegResults(base.LikelihoodModelResults): + ''' + Class to contain results of fitting a Cox proportional hazards + survival model. + + PHregResults inherits from statsmodels.LikelihoodModelResults + + Parameters + ---------- + See statsmodels.LikelihoodModelResults + + Returns + ------- + **Attributes** + + model : class instance + PHreg model instance that called fit. + normalized_cov_params : array + The sampling covariance matrix of the estimates + params : array + The coefficients of the fitted model. Each coefficient is the + log hazard ratio corresponding to a 1 unit difference in a + single covariate while holding the other covariates fixed. + bse : array + The standard errors of the fitted parameters. + + See Also + -------- + statsmodels.LikelihoodModelResults + ''' + + def __init__(self, model, params, cov_params, scale=1., covariance_type="naive"): + + # There is no scale parameter, but we need it for + # meta-procedures that work with results. + + self.covariance_type = covariance_type + self.df_resid = model.df_resid + self.df_model = model.df_model + + super(PHRegResults, self).__init__(model, params, scale=1., + normalized_cov_params=cov_params) + + @cache_readonly + def standard_errors(self): + """ + Returns the standard errors of the parameter estimates. + """ + return np.sqrt(np.diag(self.cov_params())) + + @cache_readonly + def bse(self): + """ + Returns the standard errors of the parameter estimates. + """ + return self.standard_errors + + def get_distribution(self): + """ + Returns a scipy distribution object corresponding to the + distribution of uncensored endog (duration) values for each + case. + + Returns + ------- + A list of objects of type scipy.stats.distributions.rv_discrete + + Notes + ----- + The distributions are obtained from a simple discrete estimate + of the survivor function that puts all mass on the observed + failure times wihtin a stratum. + """ + + return self.model.get_distribution(self.params) + + + def predict(self, endog=None, exog=None, strata=None, + offset=None, transform=True, pred_type="lhr"): + # docstring attached below + + return super(PHRegResults, self).predict(exog=exog, + transform=transform, + cov_params=self.cov_params(), + endog=endog, + strata=strata, + offset=offset, + pred_type=pred_type) + + predict.__doc__ = _predict_docstring % {'cov_params_doc': ''} + + def _group_stats(self, groups): + """ + Descriptive statistics of the groups. + """ + gsizes = np_new_unique(groups, return_counts=True) + gsizes = gsizes[1] + return gsizes.min(), gsizes.max(), gsizes.mean(), len(gsizes) + + @cache_readonly + def weighted_covariate_averages(self): + """ + The average covariate values within the at-risk set at each + event time point, weighted by hazard. + """ + return self.model.weighted_covariate_averages(self.params) + + @cache_readonly + def score_residuals(self): + """ + A matrix containing the score residuals. + """ + return self.model.score_residuals(self.params) + + @cache_readonly + def baseline_cumulative_hazard(self): + """ + A list (corresponding to the strata) containing the baseline + cumulative hazard function evaluated at the event points. + """ + return self.model.baseline_cumulative_hazard(self.params) + + @cache_readonly + def baseline_cumulative_hazard_function(self): + """ + A list (corresponding to the strata) containing function + objects that calculate the cumulative hazard function. + """ + return self.model.baseline_cumulative_hazard_function(self.params) + + @cache_readonly + def schoenfeld_residuals(self): + """ + A matrix containing the Schoenfeld residuals. + + Notes + ----- + Schoenfeld residuals for censored observations are set to zero. + """ + + surv = self.model.surv + w_avg = self.weighted_covariate_averages + + # Initialize at NaN since rows that belong to strata with no + # events have undefined residuals. + sch_resid = np.nan*np.ones(self.model.exog.shape, dtype=np.float64) + + # Loop over strata + for stx in range(surv.nstrat): + + uft = surv.ufailt[stx] + exog_s = surv.exog_s[stx] + time_s = surv.time_s[stx] + strat_ix = surv.stratum_rows[stx] + + ii = np.searchsorted(uft, time_s) + + # These subjects are censored after the last event in + # their stratum, so have empty risk sets and undefined + # residuals. + jj = np.flatnonzero(ii < len(uft)) + + sch_resid[strat_ix[jj], :] = exog_s[jj, :] - w_avg[stx][ii[jj], :] + + jj = np.flatnonzero(self.model.status == 0) + sch_resid[jj, :] = np.nan + + return sch_resid + + @cache_readonly + def martingale_residuals(self): + """ + The martingale residuals. + """ + + surv = self.model.surv + + # Initialize at NaN since rows that belong to strata with no + # events have undefined residuals. + mart_resid = np.nan*np.ones(len(self.model.endog), dtype=np.float64) + + cumhaz_f_list = self.baseline_cumulative_hazard_function + + # Loop over strata + for stx in range(surv.nstrat): + + cumhaz_f = cumhaz_f_list[stx] + + exog_s = surv.exog_s[stx] + time_s = surv.time_s[stx] + + linpred = np.dot(exog_s, self.params) + if surv.offset_s is not None: + linpred += surv.offset_s[stx] + e_linpred = np.exp(linpred) + + ii = surv.stratum_rows[stx] + chaz = cumhaz_f(time_s) + mart_resid[ii] = self.model.status[ii] - e_linpred * chaz + + return mart_resid + + def summary(self, yname=None, xname=None, title=None, alpha=.05): + """ + Summarize the proportional hazards regression results. + + Parameters + ----------- + yname : string, optional + Default is `y` + xname : list of strings, optional + Default is `x#` for ## in p the number of regressors + title : string, optional + Title for the top table. If not None, then this replaces + the default title + alpha : float + significance level for the confidence intervals + + Returns + ------- + smry : Summary instance + this holds the summary tables and text, which can be + printed or converted to various output formats. + + See Also + -------- + statsmodels.iolib.summary.Summary : class to hold summary + results + """ + + from statsmodels.iolib import summary2 + from statsmodels.compat.collections import OrderedDict + smry = summary2.Summary() + float_format = "%8.3f" + + info = OrderedDict() + info["Model:"] = "PH Reg" + if yname is None: + yname = self.model.endog_names + info["Dependent variable:"] = yname + info["Ties:"] = self.model.ties.capitalize() + info["Sample size:"] = str(self.model.surv.n_obs) + info["Num. events:"] = str(int(sum(self.model.status))) + + if self.model.groups is not None: + mn, mx, avg, num = self._group_stats(self.model.groups) + info["Num groups:"] = "%.0f" % num + info["Min group size:"] = "%.0f" % mn + info["Max group size:"] = "%.0f" % mx + info["Avg group size:"] = "%.1f" % avg + + if self.model.strata is not None: + mn, mx, avg, num = self._group_stats(self.model.strata) + info["Num strata:"] = "%.0f" % num + info["Min stratum size:"] = "%.0f" % mn + info["Max stratum size:"] = "%.0f" % mx + info["Avg stratum size:"] = "%.1f" % avg + + smry.add_dict(info, align='l', float_format=float_format) + + param = summary2.summary_params(self, alpha=alpha) + param = param.rename(columns={"Coef.": "log HR", + "Std.Err.": "log HR SE"}) + param.insert(2, "HR", np.exp(param["log HR"])) + a = "[%.3f" % (alpha / 2) + param.loc[:, a] = np.exp(param.loc[:, a]) + a = "%.3f]" % (1 - alpha / 2) + param.loc[:, a] = np.exp(param.loc[:, a]) + if xname != None: + param.index = xname + smry.add_df(param, float_format=float_format) + smry.add_title(title=title, results=self) + smry.add_text("Confidence intervals are for the hazard ratios") + + dstrat = self.model.surv.nstrat_orig - self.model.surv.nstrat + if dstrat > 0: + if dstrat == 1: + smry.add_text("1 stratum dropped for having no events") + else: + smry.add_text("%d strata dropped for having no events" % dstrat) + + if self.model.entry is not None: + n_entry = sum(self.model.entry != 0) + if n_entry == 1: + smry.add_text("1 observation has a positive entry time") + else: + smry.add_text("%d observations have positive entry times" % n_entry) + + if self.model.groups is not None: + smry.add_text("Standard errors account for dependence within groups") + + if hasattr(self, "regularized"): + smry.add_text("Standard errors do not account for the regularization") + + return smry + +class rv_discrete_float(object): + """ + A class representing a collection of discrete distributions. + + Parameters + ---------- + xk : 2d array-like + The support points, should be non-decreasing within each + row. + pk : 2d array-like + The probabilities, should sum to one within each row. + + Notes + ----- + Each row of `xk`, and the corresponding row of `pk` describe a + discrete distribution. + + `xk` and `pk` should both be two-dimensional ndarrays. Each row + of `pk` should sum to 1. + + This class is used as a substitute for scipy.distributions. + rv_discrete, since that class does not allow non-integer support + points, or vectorized operations. + + Only a limited number of methods are implemented here compared to + the other scipy distribution classes. + """ + + def __init__(self, xk, pk): + + self.xk = xk + self.pk = pk + self.cpk = np.cumsum(self.pk, axis=1) + + def rvs(self): + """ + Returns a random sample from the discrete distribution. + + A vector is returned containing a single draw from each row of + `xk`, using the probabilities of the corresponding row of `pk` + """ + + n = self.xk.shape[0] + u = np.random.uniform(size=n) + + ix = (self.cpk < u[:, None]).sum(1) + ii = np.arange(n, dtype=np.int32) + return self.xk[(ii,ix)] + + def mean(self): + """ + Returns a vector containing the mean values of the discrete + distributions. + + A vector is returned containing the mean value of each row of + `xk`, using the probabilities in the corresponding row of + `pk`. + """ + + return (self.xk * self.pk).sum(1) + + def var(self): + """ + Returns a vector containing the variances of the discrete + distributions. + + A vector is returned containing the variance for each row of + `xk`, using the probabilities in the corresponding row of + `pk`. + """ + + mn = self.mean() + xkc = self.xk - mn[:, None] + + return (self.pk * (self.xk - xkc)**2).sum(1) + + def std(self): + """ + Returns a vector containing the standard deviations of the + discrete distributions. + + A vector is returned containing the standard deviation for + each row of `xk`, using the probabilities in the corresponding + row of `pk`. + """ + + return np.sqrt(self.var()) diff --git a/statsmodels/duration/survfunc.py b/statsmodels/duration/survfunc.py new file mode 100644 index 0000000..abe0a84 --- /dev/null +++ b/statsmodels/duration/survfunc.py @@ -0,0 +1,673 @@ +import numpy as np +import pandas as pd +from scipy.stats.distributions import chi2, norm +from statsmodels.graphics import utils + + +def _calc_survfunc_right(time, status, weights=None, compress=True, + retall=True): + """ + Calculate the survival function and its standard error for a single + group. + """ + + # Convert the unique times to ranks (0, 1, 2, ...) + utime, rtime = np.unique(time, return_inverse=True) + + # Number of deaths at each unique time. + if weights is None: + d = np.bincount(rtime, weights=status) + else: + d = np.bincount(rtime, weights=status*weights) + + # Size of risk set just prior to each event time. + if weights is None: + n = np.bincount(rtime) + else: + n = np.bincount(rtime, weights=weights) + n = np.cumsum(n[::-1])[::-1] + + # Only retain times where an event occured. + if compress: + ii = np.flatnonzero(d > 0) + d = d[ii] + n = n[ii] + utime = utime[ii] + + # The survival function probabilities. + sp = 1 - d / n.astype(np.float64) + sp = np.log(sp) + sp = np.cumsum(sp) + sp = np.exp(sp) + + if not retall: + return sp, utime, rtime, n, d + + # Standard errors + if weights is None: + # Greenwood's formula + se = d / (n * (n - d)).astype(np.float64) + se = np.cumsum(se) + se = np.sqrt(se) + se *= sp + else: + # Tsiatis' (1981) formula + se = d / (n * n).astype(np.float64) + se = np.cumsum(se) + se = np.sqrt(se) + + return sp, se, utime, rtime, n, d + + +def _calc_incidence_right(time, status, weights=None): + """ + Calculate the cumulative incidence function and its standard error. + """ + + # Calculate the all-cause survival function. + status0 = (status >= 1).astype(np.float64) + sp, utime, rtime, n, d = _calc_survfunc_right(time, status0, weights, + compress=False, retall=False) + + ngrp = status.max() + + # Number of cause-specific deaths at each unique time. + d = [] + for k in range(ngrp): + status0 = (status == k + 1).astype(np.float64) + if weights is None: + d0 = np.bincount(rtime, weights=status0, minlength=len(utime)) + else: + d0 = np.bincount(rtime, weights=status0*weights, + minlength=len(utime)) + d.append(d0) + + # The cumulative incidence function probabilities. + ip = [] + sp0 = np.r_[1, sp[:-1]] / n + for k in range(ngrp): + ip0 = np.cumsum(sp0 * d[k]) + ip.append(ip0) + + # The standard error of the cumulative incidence function. + if weights is not None: + return ip, None, utime + se = [] + da = sum(d) + for k in range(ngrp): + + ra = da / (n * (n - da)) + v = ip[k]**2 * np.cumsum(ra) + v -= 2 * ip[k] * np.cumsum(ip[k] * ra) + v += np.cumsum(ip[k]**2 * ra) + + ra = (n - d[k]) * d[k] / n + v += np.cumsum(sp0**2 * ra) + + ra = sp0 * d[k] / n + v -= 2 * ip[k] * np.cumsum(ra) + v += 2 * np.cumsum(ip[k] * ra) + + se.append(np.sqrt(v)) + + return ip, se, utime + + +def _checkargs(time, status, freq_weights): + + if len(time) != len(status): + raise ValueError("time and status must have the same length") + + if freq_weights is not None and (len(freq_weights) != len(time)): + raise ValueError("weights, time and status must have the same length") + + +class CumIncidenceRight(object): + """ + Estimation and inference for a cumulative incidence function. + + If J = 1, 2, ... indicates the event type, the cumulative + incidence function for cause j is: + + I(t, j) = P(T <= t and J=j) + + Only right censoring is supported. If frequency weights are provided, + the point estimate is returned without a standard error. + + Parameters + ---------- + time : array-like + An array of times (censoring times or event times) + status : array-like + If status >= 1 indicates which event occured at time t. If + status = 0, the subject was censored at time t. + title : string + Optional title used for plots and summary output. + freq_weights : array-like + Optional frequency weights + + Attributes + ---------- + times : array-like + The distinct times at which the incidence rates are estimated + cinc : list of arrays + cinc[k-1] contains the estimated cumulative incidence rates + for outcome k=1,2,... + cinc_se : list of arrays + The standard errors for the values in `cinc`. + + References + ---------- + The Stata stcompet procedure: + http://www.stata-journal.com/sjpdf.html?articlenum=st0059 + + Dinse, G. E. and M. G. Larson. 1986. A note on semi-Markov models + for partially censored data. Biometrika 73: 379-386. + + Marubini, E. and M. G. Valsecchi. 1995. Analysing Survival Data + from Clinical Trials and Observational Studies. Chichester, UK: + John Wiley & Sons. + """ + + def __init__(self, time, status, title=None, freq_weights=None): + + _checkargs(time, status, freq_weights) + time = self.time = np.asarray(time) + status = self.status = np.asarray(status) + if freq_weights is not None: + freq_weights = self.freq_weights = np.asarray(freq_weights) + x = _calc_incidence_right(time, status, freq_weights) + self.cinc = x[0] + self.cinc_se = x[1] + self.times = x[2] + self.title = "" if not title else title + + +class SurvfuncRight(object): + """ + Estimation and inference for a survival function. + + The survival function S(t) = P(T > t) is the probability that an + event time T is greater than t. + + This class currently only supports right censoring. + + Parameters + ---------- + time : array-like + An array of times (censoring times or event times) + status : array-like + Status at the event time, status==1 is the 'event' + (e.g. death, failure), meaning that the event + occurs at the given value in `time`; status==0 + indicates that censoring has occured, meaning that + the event occurs after the given value in `time`. + title : string + Optional title used for plots and summary output. + freq_weights : array-like + Optional frequency weights + + Attributes + ---------- + surv_prob : array-like + The estimated value of the survivor function at each time + point in `surv_times`. + surv_prob_se : array-like + The standard errors for the values in `surv_prob`. + surv_times : array-like + The points where the survival function changes. + n_risk : array-like + The number of subjects at risk just before each time value in + `surv_times`. + n_events : array-like + The number of events (e.g. deaths) that occur at each point + in `surv_times`. + """ + + def __init__(self, time, status, title=None, freq_weights=None): + + _checkargs(time, status, freq_weights) + time = self.time = np.asarray(time) + status = self.status = np.asarray(status) + if freq_weights is not None: + freq_weights = self.freq_weights = np.asarray(freq_weights) + x = _calc_survfunc_right(time, status, freq_weights) + self.surv_prob = x[0] + self.surv_prob_se = x[1] + self.surv_times = x[2] + self.n_risk = x[4] + self.n_events = x[5] + self.title = "" if not title else title + + def plot(self, ax=None): + """ + Plot the survival function. + + Examples + -------- + Change the line color: + + >>> import statsmodels.api as sm + >>> data = sm.datasets.get_rdataset("flchain", "survival").data + >>> df = data.loc[data.sex == "F", :] + >>> sf = sm.SurvfuncRight(df["futime"], df["death"]) + >>> fig = sf.plot() + >>> ax = fig.get_axes()[0] + >>> li = ax.get_lines() + >>> li[0].set_color('purple') + >>> li[1].set_color('purple') + + Don't show the censoring points: + + >>> fig = sf.plot() + >>> ax = fig.get_axes()[0] + >>> li = ax.get_lines() + >>> li[1].set_visible(False) + """ + + return plot_survfunc(self, ax) + + def quantile(self, p): + """ + Estimated quantile of a survival distribution. + + Parameters + ---------- + p : float + The probability point at which the quantile + is determined. + + Returns the estimated quantile. + """ + + # SAS uses a strict inequality here. + ii = np.flatnonzero(self.surv_prob < 1 - p) + + if len(ii) == 0: + return np.nan + + return self.surv_times[ii[0]] + + def quantile_ci(self, p, alpha=0.05, method='cloglog'): + """ + Returns a confidence interval for a survival quantile. + + Parameters + ---------- + p : float + The probability point for which a confidence interval is + determined. + alpha : float + The confidence interval has nominal coverage probability + 1 - `alpha`. + method : string + Function to use for g-transformation, must be ... + + Returns + ------- + lb : float + The lower confidence limit. + ub : float + The upper confidence limit. + + Notes + ----- + The confidence interval is obtained by inverting Z-tests. The + limits of the confidence interval will always be observed + event times. + + References + ---------- + The method is based on the approach used in SAS, documented here: + + http://support.sas.com/documentation/cdl/en/statug/68162/HTML/default/viewer.htm#statug_lifetest_details03.htm + """ + + tr = norm.ppf(1 - alpha / 2) + + method = method.lower() + if method == "cloglog": + g = lambda x: np.log(-np.log(x)) + gprime = lambda x: -1 / (x * np.log(x)) + elif method == "linear": + g = lambda x: x + gprime = lambda x: 1 + elif method == "log": + g = lambda x: np.log(x) + gprime = lambda x: 1 / x + elif method == "logit": + g = lambda x: np.log(x / (1 - x)) + gprime = lambda x: 1 / (x * (1 - x)) + elif method == "asinsqrt": + g = lambda x: np.arcsin(np.sqrt(x)) + gprime = lambda x: 1 / (2 * np.sqrt(x) * np.sqrt(1 - x)) + else: + raise ValueError("unknown method") + + r = g(self.surv_prob) - g(1 - p) + r /= (gprime(self.surv_prob) * self.surv_prob_se) + + ii = np.flatnonzero(np.abs(r) <= tr) + if len(ii) == 0: + return np.nan, np.nan + + lb = self.surv_times[ii[0]] + + if ii[-1] == len(self.surv_times) - 1: + ub = np.inf + else: + ub = self.surv_times[ii[-1] + 1] + + return lb, ub + + def summary(self): + """ + Return a summary of the estimated survival function. + + The summary is a datafram containing the unique event times, + estimated survival function values, and related quantities. + """ + + df = pd.DataFrame(index=self.surv_times) + df.index.name = "Time" + df["Surv prob"] = self.surv_prob + df["Surv prob SE"] = self.surv_prob_se + df["num at risk"] = self.n_risk + df["num events"] = self.n_events + + return df + + def simultaneous_cb(self, alpha=0.05, method="hw", transform="log"): + """ + Returns a simultaneous confidence band for the survival function. + + Parameters + ---------- + alpha : float + `1 - alpha` is the desired simultaneous coverage + probability for the confidence region. Currently alpha + must be set to 0.05, giving 95% simultaneous intervals. + method : string + The method used to produce the simultaneous confidence + band. Only the Hall-Wellner (hw) method is currently + implemented. + transform : string + The used to produce the interval (note that the returned + interval is on the survival probability scale regardless + of which transform is used). Only `log` and `arcsin` are + implemented. + + Returns + ------- + lcb : array-like + The lower confidence limits corresponding to the points + in `surv_times`. + ucb : array-like + The upper confidence limits corresponding to the points + in `surv_times`. + """ + + method = method.lower() + if method != "hw": + msg = "only the Hall-Wellner (hw) method is implemented" + raise ValueError(msg) + + if alpha != 0.05: + raise ValueError("alpha must be set to 0.05") + + transform = transform.lower() + s2 = self.surv_prob_se**2 / self.surv_prob**2 + nn = self.n_risk + if transform == "log": + denom = np.sqrt(nn) * np.log(self.surv_prob) + theta = 1.3581 * (1 + nn * s2) / denom + theta = np.exp(theta) + lcb = self.surv_prob**(1/theta) + ucb = self.surv_prob**theta + elif transform == "arcsin": + k = 1.3581 + k *= (1 + nn * s2) / (2 * np.sqrt(nn)) + k *= np.sqrt(self.surv_prob / (1 - self.surv_prob)) + f = np.arcsin(np.sqrt(self.surv_prob)) + v = np.clip(f - k, 0, np.inf) + lcb = np.sin(v)**2 + v = np.clip(f + k, -np.inf, np.pi/2) + ucb = np.sin(v)**2 + else: + raise ValueError("Unknown transform") + + return lcb, ucb + + +def survdiff(time, status, group, weight_type=None, strata=None, **kwargs): + """ + Test for the equality of two survival distributions. + + Parameters: + ----------- + time : array-like + The event or censoring times. + status : array-like + The censoring status variable, status=1 indicates that the + event occured, status=0 indicates that the observation was + censored. + group : array-like + Indicators of the two groups + weight_type : string + The following weight types are implemented: + None (default) : logrank test + fh : Fleming-Harrington, weights by S^(fh_p), + requires exponent fh_p to be provided as keyword + argument; the weights are derived from S defined at + the previous event time, and the first weight is + always 1. + gb : Gehan-Breslow, weights by the number at risk + tw : Tarone-Ware, weights by the square root of the number + at risk + strata : array-like + Optional stratum indicators for a stratified test + + Returns + -------- + chisq : The chi-square (1 degree of freedom) distributed test + statistic value + pvalue : The p-value for the chi^2 test + """ + + # TODO: extend to handle more than two groups + + time = np.asarray(time) + status = np.asarray(status) + group = np.asarray(group) + + gr = np.unique(group) + if len(gr) != 2: + raise ValueError("logrank only supports two groups") + + if strata is None: + obs, var = _survdiff(time, status, group, weight_type, gr, + **kwargs) + else: + strata = np.asarray(strata) + stu = np.unique(strata) + obs, var = 0., 0. + for st in stu: + # could be more efficient? + ii = (strata == st) + obs1, var1 = _survdiff(time[ii], status[ii], group[ii], + weight_type, gr, **kwargs) + obs += obs1 + var += var1 + + zstat = obs / np.sqrt(var) + + # The chi^2 test statistic and p-value. + chisq = zstat**2 + pvalue = 1 - chi2.cdf(chisq, 1) + + return chisq, pvalue + + +def _survdiff(time, status, group, weight_type, gr, **kwargs): + # logrank test for one stratum + + ii = (group == gr[0]) + time1 = time[ii] + status1 = status[ii] + ii = (group == gr[1]) + time2 = time[ii] + status2 = status[ii] + + # Get the unique times. + utimes = np.unique(time) + + status1 = status1.astype(np.bool) + status2 = status2.astype(np.bool) + + # The positions of the observed event times in each group, in the + # overall list of unique times. + ix1 = np.searchsorted(utimes, time1[status1]) + ix2 = np.searchsorted(utimes, time2[status2]) + + # Number of events observed at each time point, per group and + # overall. + obs1 = np.bincount(ix1, minlength=len(utimes)) + obs2 = np.bincount(ix2, minlength=len(utimes)) + obs = obs1 + obs2 + + # Risk set size at each time point, per group and overall. + nvec = [] + for time0 in time1, time2: + ix = np.searchsorted(utimes, time0) + n = np.bincount(ix, minlength=len(utimes)) + n = np.cumsum(n) + n = np.roll(n, 1) + n[0] = 0 + n = len(time0) - n + nvec.append(n) + n1, n2 = tuple(nvec) + n = n1 + n2 + + # The variance of event counts in the first group. + r = n1 / n.astype(np.float64) + var = obs * r * (1 - r) * (n - obs) / (n - 1) + + # The expected number of events in the first group. + exp1 = obs * r + + weights = None + if weight_type is not None: + weight_type = weight_type.lower() + if weight_type == "gb": + weights = n + elif weight_type == "tw": + weights = np.sqrt(n) + elif weight_type == "fh": + if "fh_p" not in kwargs: + msg = "weight_type type 'fh' requires specification of fh_p" + raise ValueError(msg) + fh_p = kwargs["fh_p"] + # Calculate the survivor function directly to avoid the + # overhead of creating a SurvfuncRight object + sp = 1 - obs / n.astype(np.float64) + sp = np.log(sp) + sp = np.cumsum(sp) + sp = np.exp(sp) + weights = sp**fh_p + weights = np.roll(weights, 1) + weights[0] = 1 + else: + raise ValueError("weight_type not implemented") + + # The Z-scale test statistic (compare to normal reference + # distribution). + ix = np.flatnonzero(n > 1) + if weights is None: + obs = np.sum(obs1[ix] - exp1[ix]) + var = np.sum(var[ix]) + else: + obs = np.dot(weights[ix], obs1[ix] - exp1[ix]) + var = np.dot(weights[ix]**2, var[ix]) + + return obs, var + + +def plot_survfunc(survfuncs, ax=None): + """ + Plot one or more survivor functions. + + Parameters + ---------- + survfuncs : object or array-like + A single SurvfuncRight object, or a list or SurvfuncRight + objects that are plotted together. + + Returns + ------- + A figure instance on which the plot was drawn. + + Examples + -------- + Add a legend: + + >>> import statsmodels.api as sm + >>> from statsmodels.duration.survfunc import plot_survfunc + >>> data = sm.datasets.get_rdataset("flchain", "survival").data + >>> df = data.loc[data.sex == "F", :] + >>> sf0 = sm.SurvfuncRight(df["futime"], df["death"]) + >>> sf1 = sm.SurvfuncRight(3.0 * df["futime"], df["death"]) + >>> fig = plot_survfunc([sf0, sf1]) + >>> ax = fig.get_axes()[0] + >>> ax.set_position([0.1, 0.1, 0.64, 0.8]) + >>> ha, lb = ax.get_legend_handles_labels() + >>> leg = fig.legend((ha[0], ha[1]), (lb[0], lb[1]), 'center right') + + Change the line colors: + + >>> fig = plot_survfunc([sf0, sf1]) + >>> ax = fig.get_axes()[0] + >>> ax.set_position([0.1, 0.1, 0.64, 0.8]) + >>> ha, lb = ax.get_legend_handles_labels() + >>> ha[0].set_color('purple') + >>> ha[1].set_color('orange') + """ + + fig, ax = utils.create_mpl_ax(ax) + + # If we have only a single survival function to plot, put it into + # a list. + try: + assert(type(survfuncs[0]) is SurvfuncRight) + except: + survfuncs = [survfuncs] + + for gx, sf in enumerate(survfuncs): + + # The estimated survival function does not include a point at + # time 0, include it here for plotting. + surv_times = np.concatenate(([0], sf.surv_times)) + surv_prob = np.concatenate(([1], sf.surv_prob)) + + # If the final times are censoring times they are not included + # in the survival function so we add them here + mxt = max(sf.time) + if mxt > surv_times[-1]: + surv_times = np.concatenate((surv_times, [mxt])) + surv_prob = np.concatenate((surv_prob, [surv_prob[-1]])) + + label = getattr(sf, "title", "Group %d" % (gx + 1)) + + li, = ax.step(surv_times, surv_prob, '-', label=label, lw=2, + where='post') + + # Plot the censored points. + ii = np.flatnonzero(np.logical_not(sf.status)) + ti = sf.time[ii] + jj = np.searchsorted(surv_times, ti) - 1 + sp = surv_prob[jj] + ax.plot(ti, sp, '+', ms=12, color=li.get_color(), + label=label + " points") + + ax.set_ylim(0, 1.01) + + return fig diff --git a/statsmodels/duration/tests/__init__.py b/statsmodels/duration/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/duration/tests/phreg_gentests.py b/statsmodels/duration/tests/phreg_gentests.py new file mode 100644 index 0000000..6563b54 --- /dev/null +++ b/statsmodels/duration/tests/phreg_gentests.py @@ -0,0 +1,60 @@ +import numpy as np + +""" +Generate data sets for testing Cox proportional hazards regression +models. + +After updating the test data sets, use R to run the survival.R script +to update the R results. +""" + +# The current data may not reflect this seed +np.random.seed(5234) + +# Loop over pairs containing (sample size, number of variables). +for (n,p) in (20,1), (50,1), (50,2), (100,5), (1000,10): + + exog = np.random.normal(size=(5*n,p)) + coef = np.linspace(-0.5, 0.5, p) + lpred = np.dot(exog, coef) + expected_survival_time = np.exp(-lpred) + + # Survival times are exponential + survival_time = -np.log(np.random.uniform(size=5*n)) + survival_time *= expected_survival_time + + # Set this to get a reasonable amount of censoring + expected_censoring_time = np.mean(expected_survival_time) + + # Theses are the observation times. + censoring_time = -np.log(np.random.uniform(size=5*n)) + censoring_time *= expected_censoring_time + + # Entry times + entry_time = -np.log(np.random.uniform(size=5*n)) + entry_time *= 0.5*expected_censoring_time + + # 1=failure (death), 0=no failure (no death) + status = 1*(survival_time <= censoring_time) + + # The censoring time of the failure time, whichever comes first + time = np.where(status==1, survival_time, censoring_time) + + # Round time so that we have ties + time = np.around(time, decimals=1) + + # Only take cases where the entry time is before the failure or + # censoring time. Take exactly n such cases. + ii = np.flatnonzero(entry_time < time) + ii = ii[np.random.permutation(len(ii))[0:n]] + status = status[ii] + time = time[ii] + exog = exog[ii,:] + entry_time = entry_time[ii] + + data = np.concatenate((time[:,None], status[:,None], + entry_time[:,None], exog), + axis=1) + + fname = "results/survival_data_%d_%d.csv" % (n, p) + np.savetxt(fname, data, fmt="%.5f") diff --git a/statsmodels/duration/tests/results/__init__.py b/statsmodels/duration/tests/results/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/duration/tests/results/bmt.csv b/statsmodels/duration/tests/results/bmt.csv new file mode 100644 index 0000000..ad6ec8b --- /dev/null +++ b/statsmodels/duration/tests/results/bmt.csv @@ -0,0 +1,138 @@ +Group,T,Status +ALL,2081,0 +ALL,1602,0 +ALL,1496,0 +ALL,1462,0 +ALL,1433,0 +ALL,1377,0 +ALL,1330,0 +ALL,996,0 +ALL,226,0 +ALL,1199,0 +ALL,1111,0 +ALL,530,0 +ALL,1182,0 +ALL,1167,0 +ALL,418,1 +ALL,383,1 +ALL,276,1 +ALL,104,1 +ALL,609,1 +ALL,172,1 +ALL,487,1 +ALL,662,1 +ALL,194,1 +ALL,230,1 +ALL,526,1 +ALL,122,1 +ALL,129,1 +ALL,74,1 +ALL,122,1 +ALL,86,1 +ALL,466,1 +ALL,192,1 +ALL,109,1 +ALL,55,1 +ALL,1,1 +ALL,107,1 +ALL,110,1 +ALL,332,1 +AML-Low Risk,2569,0 +AML-Low Risk,2506,0 +AML-Low Risk,2409,0 +AML-Low Risk,2218,0 +AML-Low Risk,1857,0 +AML-Low Risk,1829,0 +AML-Low Risk,1562,0 +AML-Low Risk,1470,0 +AML-Low Risk,1363,0 +AML-Low Risk,1030,0 +AML-Low Risk,860,0 +AML-Low Risk,1258,0 +AML-Low Risk,2246,0 +AML-Low Risk,1870,0 +AML-Low Risk,1799,0 +AML-Low Risk,1709,0 +AML-Low Risk,1674,0 +AML-Low Risk,1568,0 +AML-Low Risk,1527,0 +AML-Low Risk,1324,0 +AML-Low Risk,957,0 +AML-Low Risk,932,0 +AML-Low Risk,847,0 +AML-Low Risk,848,0 +AML-Low Risk,1850,0 +AML-Low Risk,1843,0 +AML-Low Risk,1535,0 +AML-Low Risk,1447,0 +AML-Low Risk,1384,0 +AML-Low Risk,414,1 +AML-Low Risk,2204,1 +AML-Low Risk,1063,1 +AML-Low Risk,481,1 +AML-Low Risk,105,1 +AML-Low Risk,641,1 +AML-Low Risk,390,1 +AML-Low Risk,288,1 +AML-Low Risk,421,1 +AML-Low Risk,79,1 +AML-Low Risk,748,1 +AML-Low Risk,486,1 +AML-Low Risk,48,1 +AML-Low Risk,272,1 +AML-Low Risk,1074,1 +AML-Low Risk,381,1 +AML-Low Risk,10,1 +AML-Low Risk,53,1 +AML-Low Risk,80,1 +AML-Low Risk,35,1 +AML-Low Risk,248,1 +AML-Low Risk,704,1 +AML-Low Risk,211,1 +AML-Low Risk,219,1 +AML-Low Risk,606,1 +AML-High Risk,2640,0 +AML-High Risk,2430,0 +AML-High Risk,2252,0 +AML-High Risk,2140,0 +AML-High Risk,2133,0 +AML-High Risk,1238,0 +AML-High Risk,1631,0 +AML-High Risk,2024,0 +AML-High Risk,1345,0 +AML-High Risk,1136,0 +AML-High Risk,845,0 +AML-High Risk,422,1 +AML-High Risk,162,1 +AML-High Risk,84,1 +AML-High Risk,100,1 +AML-High Risk,2,1 +AML-High Risk,47,1 +AML-High Risk,242,1 +AML-High Risk,456,1 +AML-High Risk,268,1 +AML-High Risk,318,1 +AML-High Risk,32,1 +AML-High Risk,467,1 +AML-High Risk,47,1 +AML-High Risk,390,1 +AML-High Risk,183,1 +AML-High Risk,105,1 +AML-High Risk,115,1 +AML-High Risk,164,1 +AML-High Risk,93,1 +AML-High Risk,120,1 +AML-High Risk,80,1 +AML-High Risk,677,1 +AML-High Risk,64,1 +AML-High Risk,168,1 +AML-High Risk,74,1 +AML-High Risk,16,1 +AML-High Risk,157,1 +AML-High Risk,625,1 +AML-High Risk,48,1 +AML-High Risk,273,1 +AML-High Risk,63,1 +AML-High Risk,76,1 +AML-High Risk,113,1 +AML-High Risk,363,1 diff --git a/statsmodels/duration/tests/results/bmt_results.csv b/statsmodels/duration/tests/results/bmt_results.csv new file mode 100644 index 0000000..ebdbbf2 --- /dev/null +++ b/statsmodels/duration/tests/results/bmt_results.csv @@ -0,0 +1,24 @@ +t,s,se,linear,loglog,log,asinsqrt,logit +1,0.97368,0.025967,8.6141,2.37831,9.7871,4.44648,2.47903 +55,0.94737,0.036224,5.4486,2.36375,6.1098,3.60151,2.46635 +74,0.92105,0.043744,3.9103,2.16833,4.3257,2.94398,2.25757 +86,0.89474,0.049784,2.9073,1.89961,3.1713,2.38164,1.97023 +104,0.86842,0.054836,2.1595,1.59196,2.3217,1.87884,1.64297 +107,0.84211,0.059153,1.5571,1.26050,1.6490,1.41733,1.29331 +109,0.81579,0.062886,1.0462,0.91307,1.0908,0.98624,0.93069 +110,0.78947,0.066135,0.5969,0.55415,0.6123,0.57846,0.56079 +122,0.73684,0.071434,–0.1842,–0.18808,–0.1826,–0.18573,–0.18728 +129,0.71053,0.073570,–0.5365,–0.56842,–0.5222,–0.54859,–0.56101 +172,0.68421,0.075405,–0.8725,–0.95372,–0.8330,–0.90178,–0.93247 +192,0.65789,0.076960,–1.1968,–1.34341,–1.1201,–1.24712,–1.30048 +194,0.63158,0.078252,–1.5133,–1.73709,–1.3870,–1.58613,–1.66406 +230,0.60412,0.079522,–1.8345,–2.14672,–1.6432,–1.92995,–2.03291 +276,0.57666,0.080509,–2.1531,–2.55898,–1.8825,–2.26871,–2.39408 +332,0.54920,0.081223,–2.4722,–2.97389,–2.1070,–2.60380,–2.74691 +383,0.52174,0.081672,–2.7948,–3.39146,–2.3183,–2.93646,–3.09068 +418,0.49428,0.081860,–3.1239,–3.81166,–2.5177,–3.26782,–3.42460 +466,0.46682,0.081788,–3.4624,–4.23445,–2.7062,–3.59898,–3.74781 +487,0.43936,0.081457,–3.8136,–4.65971,–2.8844,–3.93103,–4.05931 +526,0.41190,0.080862,–4.1812,–5.08726,–3.0527,–4.26507,–4.35795 +609,0.38248,0.080260,–4.5791,–5.52446,–3.2091,–4.60719,–4.64271 +662,0.35306,0.079296,–5.0059,–5.96222,–3.3546,–4.95358,–4.90900 diff --git a/statsmodels/duration/tests/results/survival_data_1000_10.csv b/statsmodels/duration/tests/results/survival_data_1000_10.csv new file mode 100644 index 0000000..4d7be61 --- /dev/null +++ b/statsmodels/duration/tests/results/survival_data_1000_10.csv @@ -0,0 +1,1000 @@ +2.20000 1.00000 0.61724 -0.55769 0.53610 0.36943 1.27222 1.50100 -0.12360 -1.96969 0.19446 0.51010 0.02451 +4.00000 0.00000 0.07211 0.25464 -0.35689 -0.65315 1.29070 2.10784 -1.08015 -1.10013 0.51913 -1.35782 0.14478 +1.40000 1.00000 0.44822 0.58003 -0.44211 2.40188 -0.64420 1.06588 0.01564 -0.20484 1.17820 -0.05933 -0.20595 +0.50000 1.00000 0.00636 1.21382 0.09781 0.46914 -0.49769 0.52211 -0.20400 -0.35330 1.52768 -0.55526 1.94335 +2.40000 0.00000 0.45299 1.52515 -0.10118 0.43453 1.17629 0.03341 2.54058 -1.54177 0.18589 -0.29454 -0.27507 +0.50000 1.00000 0.03047 -0.51227 0.46126 1.17288 0.84365 0.05497 1.68704 -0.80740 -0.03969 1.01761 0.96855 +0.60000 1.00000 0.02254 2.38102 0.16372 0.02408 -0.45695 -0.42139 0.24483 -0.46658 1.34592 -0.16698 0.16030 +0.40000 0.00000 0.19834 0.37075 0.27571 0.17561 -0.52539 1.12128 1.34544 0.16943 -0.79336 1.67125 0.61738 +1.20000 1.00000 0.02888 -0.25093 -0.20272 -0.55030 -1.07225 -0.23384 -0.61526 0.26331 -0.92035 -0.20961 -0.54408 +0.80000 0.00000 0.38322 -1.60083 -0.68285 -1.48935 2.24038 -1.08571 0.91860 -1.28901 1.28458 -1.34052 0.15455 +0.70000 1.00000 0.49899 0.24645 0.21391 -0.38812 -0.57698 -0.99367 0.39804 0.42150 0.15845 -0.89688 -0.97871 +0.20000 1.00000 0.04449 1.00699 -0.09812 -0.74531 -0.72399 0.67709 -1.49618 0.08465 -0.01884 1.61963 0.63704 +1.70000 0.00000 0.11911 -1.12379 0.60479 0.05384 0.53668 1.05582 -0.02650 0.46632 -1.22204 -0.91967 -0.12464 +0.80000 0.00000 0.70736 -1.32535 -1.48392 0.40817 0.54245 0.52589 -2.24096 1.06386 -1.30732 0.48406 -0.76728 +0.30000 1.00000 0.21839 -0.16116 1.01429 1.98822 -1.63103 1.51877 0.71420 -1.26542 -0.19523 -0.29345 -0.25738 +1.10000 1.00000 0.13444 0.10086 0.90778 0.93187 -0.47899 1.32071 -0.73275 -0.85642 -0.08555 1.16334 0.12531 +0.30000 1.00000 0.07944 -0.64357 0.42648 -0.38013 -0.64211 0.45105 -0.23755 -1.01499 1.19018 -0.79870 0.86741 +1.20000 1.00000 0.17678 1.22821 0.69375 -0.08204 -0.06515 -0.37206 -0.90847 0.20110 -0.10712 1.24427 1.18669 +3.30000 0.00000 0.63612 0.83048 0.51623 -0.30725 0.28668 1.29840 0.89453 1.35904 1.24821 -1.52340 0.02210 +1.70000 0.00000 0.17967 1.48728 -0.98179 -0.17205 0.60989 -0.66084 -1.22882 0.94681 -1.42983 -1.07240 0.03947 +0.20000 1.00000 0.14060 -0.34051 -1.43963 0.27502 -0.90567 0.87136 -0.90789 0.56778 -1.15960 0.91351 -1.00314 +0.20000 1.00000 0.06641 -0.19928 -0.36731 0.89397 0.84483 1.22801 0.64019 1.32367 1.71569 -1.16877 -0.43738 +1.80000 0.00000 1.40485 0.57806 1.21823 -0.33102 -0.70758 0.11314 -0.80432 -2.19486 0.38958 1.14877 -0.48417 +0.40000 1.00000 0.04382 0.05096 0.99463 -0.11308 -0.18949 -1.58033 0.56111 -2.02685 2.17153 -0.53126 0.95653 +0.80000 1.00000 0.77853 0.30823 -0.74766 -0.80125 -1.02869 -0.33454 -0.11097 0.11125 0.15521 -0.33027 -0.11349 +0.20000 1.00000 0.09230 0.19993 -1.37290 0.28852 -0.99227 -0.33308 -0.92476 0.97752 0.92906 -1.42667 -0.17842 +0.30000 0.00000 0.20174 0.90145 -0.32399 0.99409 1.80795 1.11584 -0.42079 0.57662 0.85008 0.54249 -1.33448 +1.10000 0.00000 0.07433 -0.12512 0.02531 -0.91369 -0.45084 0.28431 -0.29162 -1.07533 0.19434 0.75378 -0.77702 +1.00000 1.00000 0.46145 0.40457 0.81231 -0.65551 -1.30441 -0.39547 2.30006 -1.24383 -1.66349 0.28972 -0.48189 +0.60000 1.00000 0.32065 -1.47057 -0.27235 0.22591 0.23103 0.96082 -0.03386 -2.24012 0.28122 0.51545 0.65154 +0.50000 0.00000 0.25740 0.89852 -0.84627 1.03231 0.92781 0.62345 -0.53002 2.17166 -0.84762 -1.17697 1.37519 +0.70000 1.00000 0.26728 0.01672 0.94589 -0.94987 -0.38894 -0.22265 -0.11350 2.37459 0.06065 -1.33097 0.14716 +0.70000 0.00000 0.50150 1.80922 1.51778 -0.61979 -0.22195 0.22494 0.56150 1.41038 -0.05552 0.32786 -0.58039 +2.50000 0.00000 0.49045 0.83981 -0.57183 1.38586 1.54608 -0.37083 -0.71233 -1.48779 -2.15661 -1.34006 0.51544 +2.30000 1.00000 0.10220 0.56316 -0.15995 -1.37081 -0.23635 0.86945 -0.68112 -0.05512 1.44105 -1.14032 0.17601 +0.80000 0.00000 0.15386 -0.05641 0.00698 1.35970 -1.49505 -0.07127 0.75206 1.25451 1.00960 -2.19150 -1.58381 +0.30000 0.00000 0.20899 0.47189 0.03439 -1.10909 -0.72646 -0.57064 0.49575 -0.02468 1.64553 0.08820 -1.74802 +1.50000 0.00000 0.26005 -0.30979 1.55708 0.04519 1.40924 2.10640 -0.67887 -0.27614 0.61303 -0.75696 -2.42120 +0.50000 0.00000 0.47647 0.03873 0.56850 0.62389 -0.60103 0.85510 -0.25514 0.01472 0.25561 0.69803 -0.76283 +0.50000 0.00000 0.10029 0.29256 -0.11039 -0.65402 0.98904 -0.18524 0.51356 -0.37936 -0.01548 -0.46630 -0.69037 +0.80000 0.00000 0.73227 -0.84287 1.07579 -2.30983 2.24255 -0.78086 -0.71297 0.36329 2.31857 -2.09155 -0.42988 +1.10000 1.00000 0.66478 -0.48090 -0.37737 1.18841 1.01447 0.10118 0.26306 0.31614 1.38793 0.52677 -0.23500 +0.10000 1.00000 0.09993 -0.42501 -0.42893 -0.08679 -0.51303 -0.76561 -0.97812 -0.47942 0.50401 1.19724 0.37896 +0.40000 0.00000 0.02132 0.85363 -2.03032 -0.21032 -1.86388 -0.17712 -0.06023 0.23730 -0.05747 -0.49141 -0.59492 +1.30000 1.00000 0.73015 -0.20033 -0.53364 1.64427 -0.64094 -2.10497 0.88635 -0.81696 0.16816 -0.31259 -0.63673 +1.60000 0.00000 0.24884 -0.13516 0.29118 0.78286 0.38359 0.13437 -1.13291 -0.55708 0.28424 2.12825 -0.33668 +0.30000 0.00000 0.06130 -0.80155 -0.26938 -0.02131 0.26252 2.35012 2.69595 0.45638 -0.88787 -0.34754 -1.25935 +0.20000 1.00000 0.06879 -0.03594 0.07137 2.26181 0.96746 0.19547 0.25759 -1.26563 0.31185 0.43839 0.21369 +0.60000 1.00000 0.59358 2.04935 -0.30424 -0.66108 0.30798 -0.63184 -0.48547 0.93856 0.53268 -0.66899 0.35317 +0.20000 1.00000 0.16074 -2.07685 2.10954 2.59192 -1.60720 -0.37301 1.60251 0.05945 1.45938 -0.50836 0.34949 +0.20000 1.00000 0.08517 -1.13384 -1.04117 -2.36658 0.94309 -1.50149 -0.16257 1.02879 -1.21137 -2.04241 -0.03434 +0.30000 1.00000 0.17995 -1.59503 0.18642 -0.54020 0.51362 -0.79789 -0.14350 -0.93135 -2.27129 -0.29814 0.72981 +2.60000 1.00000 0.91573 0.87026 1.10883 0.05655 0.13939 0.17743 -2.41925 1.22067 -1.52242 0.81110 0.30637 +0.30000 1.00000 0.28670 -0.47664 0.28862 -0.91211 0.46332 2.73744 1.37625 -0.89297 -0.18965 2.04583 -0.24316 +0.10000 1.00000 0.02463 0.19580 -0.86287 -1.44295 -1.83444 -0.58274 -0.15113 0.16388 0.26304 -0.31822 -0.49172 +0.90000 0.00000 0.58259 0.26031 1.20138 -0.48431 -1.80565 -0.91469 -0.67820 -0.19139 -0.34316 -1.09843 -0.67124 +0.10000 1.00000 0.01954 -0.45657 0.88331 -0.65184 -1.25290 0.13091 0.17759 -2.21138 1.81611 0.62190 1.94569 +3.50000 1.00000 1.01212 1.39195 -0.42450 0.30235 -0.97606 -1.33319 1.10923 -1.77969 -1.09560 0.16093 1.40142 +0.70000 0.00000 0.45899 -0.11529 1.24143 -1.12147 -0.37257 -0.85146 -0.04134 1.09950 -0.23292 -0.24387 0.42814 +0.70000 1.00000 0.01005 0.98625 0.46120 -0.25261 -0.06216 1.38985 -1.63511 0.82711 1.36053 -0.12956 0.93860 +0.10000 0.00000 0.06188 0.33788 -0.25017 0.02240 -1.14818 0.20593 1.23239 0.53586 0.02116 1.47118 0.71487 +1.50000 0.00000 0.07481 1.45880 0.13808 -0.68422 1.19840 1.03880 -0.16734 0.66926 -1.43712 -1.80100 0.25813 +0.50000 1.00000 0.10980 0.47766 -1.45531 -0.31684 1.18532 1.97556 0.45056 -0.80495 -0.50342 -0.07798 -2.00409 +0.90000 1.00000 0.40818 1.98068 0.89488 0.06603 0.54825 0.50202 0.83223 0.60367 -0.48965 0.84259 0.78089 +0.60000 1.00000 0.08811 0.83371 1.72915 0.12250 -0.50049 0.95996 -1.00916 -0.78073 1.43720 1.46421 -0.15638 +0.40000 0.00000 0.06872 -0.64644 -0.19031 -1.87613 0.83498 1.01219 -1.12158 -0.12305 0.08361 0.14208 0.60038 +1.00000 0.00000 0.91024 0.82217 -1.47016 0.24977 0.06945 -0.10101 -1.23500 -1.17219 -0.01201 0.06957 -0.81433 +0.40000 1.00000 0.09630 0.32206 -0.21303 0.72312 0.82139 -1.46147 -0.47339 0.01365 1.26419 0.62508 0.04829 +1.40000 1.00000 0.59508 -0.25204 0.70924 0.12863 0.39569 -0.26226 1.91710 0.29008 0.90980 -1.70443 1.41947 +1.30000 1.00000 0.26925 0.95353 -0.54838 0.03708 0.80695 -1.73116 -0.09481 -1.19070 1.27154 0.67448 0.94453 +3.10000 0.00000 0.49551 1.76198 -1.17190 0.89388 -0.68775 -0.82192 2.16776 -1.81519 -0.49197 0.32627 -1.48220 +1.30000 1.00000 0.40312 1.42303 1.31907 0.05230 0.14808 -0.85371 -0.08268 -0.31415 -0.83462 -2.33346 0.89933 +0.60000 1.00000 0.56062 0.12606 0.36613 -0.25065 1.74737 0.54024 -1.50968 0.88075 0.99551 0.36235 0.02234 +1.40000 0.00000 1.12312 1.62111 -0.05271 0.85462 1.99328 -0.95174 0.33799 0.21482 1.07215 -1.71928 -0.25125 +0.80000 0.00000 0.04567 0.87732 0.30726 -0.11310 0.00935 -0.72777 0.64841 0.27179 -0.59682 0.17937 -0.79882 +0.50000 1.00000 0.49700 -0.12892 1.70498 1.27126 -0.44879 -0.77952 -0.29405 -0.15313 -1.18383 1.13164 0.12135 +1.50000 0.00000 0.02809 -0.34159 0.12828 0.97597 0.24102 1.31322 0.87890 0.12447 -0.52598 -1.53469 -1.32023 +2.80000 0.00000 0.91942 -0.51853 0.96362 0.20781 1.11869 -1.17815 0.78420 -0.32641 0.04367 0.25444 -1.80276 +2.20000 1.00000 0.15209 0.11677 0.25506 -0.90580 -0.65541 1.61159 -2.04166 0.67123 -0.86008 -0.80309 -0.47633 +1.70000 0.00000 0.53897 -0.76483 0.24680 -0.06752 0.28115 -0.28039 0.98929 -0.04618 -0.07617 -1.27110 -0.43542 +0.30000 1.00000 0.25342 -0.36865 -1.36895 -0.57852 -1.24010 -1.16006 1.00148 -0.12909 -1.11907 -2.65099 1.26662 +0.80000 0.00000 0.70787 -1.15635 -0.90157 1.29859 0.75574 0.16644 0.57186 0.18145 -1.82403 1.06831 -1.91489 +2.40000 0.00000 1.77746 1.49400 0.03187 1.54599 0.16272 -0.53871 -0.69686 0.25683 -0.76584 -0.48619 0.81472 +1.30000 0.00000 0.75132 0.97662 0.86430 0.54683 -0.73482 -1.95987 0.64754 1.82739 -0.81556 -2.01563 0.29016 +0.20000 1.00000 0.08801 -0.03736 0.12160 0.66240 -0.42815 0.41156 0.24933 0.62472 -0.40181 -0.66878 2.16372 +2.80000 0.00000 2.07602 0.93076 -0.20529 -1.16406 0.00629 1.63748 -0.81835 -0.84634 -0.19272 -2.11735 0.15722 +1.10000 0.00000 0.26579 -1.27825 0.55364 1.85670 0.81142 1.36801 -0.48025 -1.42131 -0.67701 -0.27516 1.62169 +0.80000 1.00000 0.71482 -0.33395 -0.20932 -0.13935 -1.10927 0.95986 -1.73525 -0.33638 -0.43780 0.97443 -1.60293 +2.60000 1.00000 0.44690 -2.62991 1.06802 0.10542 0.14743 -0.27650 0.88939 -1.60525 0.35992 -1.77525 -1.06956 +2.60000 0.00000 0.97298 2.20290 0.57394 -1.47597 -0.26401 -1.12682 -0.53432 -0.16734 1.30834 -0.71959 -0.63619 +0.30000 0.00000 0.29372 1.47661 -0.75787 -0.68858 0.48255 1.48518 -1.55068 0.19821 2.28240 0.16158 -0.75720 +0.20000 1.00000 0.17337 -0.65454 0.49182 -2.27478 -0.40236 -0.81987 -0.27001 -0.41169 0.88828 0.61799 0.52557 +0.40000 0.00000 0.00719 -0.76521 1.35812 -0.31781 -1.13900 1.01622 -0.13036 -0.43187 -0.77417 -0.40752 1.47863 +0.70000 0.00000 0.51194 0.86238 -0.00989 2.30806 -1.26985 1.71035 -1.17978 -0.96622 -1.45639 -1.02457 0.56094 +4.20000 1.00000 0.80083 0.07497 1.64179 0.49477 0.54202 -0.93254 2.31501 -0.39701 0.13436 -0.54443 0.46980 +2.70000 0.00000 0.43417 1.05910 -0.14958 1.56718 -0.73549 1.15733 -0.34648 0.02349 1.75677 0.27982 -1.65915 +1.50000 0.00000 0.02045 1.41961 -1.67078 1.52164 -1.19592 0.95035 -1.08666 -1.41903 -1.89439 -0.86194 -0.64884 +0.30000 1.00000 0.01351 0.26678 -0.50789 1.28267 0.15336 -1.75472 -0.74918 -0.08506 0.04178 -0.18185 -1.83142 +2.50000 0.00000 0.07456 1.09485 0.49743 -0.32385 0.67634 -0.03034 0.49741 -0.96481 -0.42071 0.58523 0.08997 +1.80000 1.00000 0.59381 -0.76442 -0.48021 -1.38269 0.60495 0.53631 0.06574 -1.08575 -0.91454 -0.88622 0.38743 +0.40000 1.00000 0.28399 0.09567 -1.18106 -1.35837 0.29573 0.71659 -0.97645 -1.07833 -0.37212 -0.11607 0.03007 +0.30000 0.00000 0.13955 0.42499 -0.21993 -0.74871 0.08216 -0.37837 -0.74119 0.62831 0.86392 0.45604 -1.29506 +1.40000 1.00000 0.20764 1.15291 -0.17852 -1.20665 0.96735 0.28522 1.08336 0.05155 -0.53839 -0.16196 -1.55195 +0.70000 0.00000 0.09606 0.46135 0.68257 -0.89292 -0.67576 -1.38405 0.80949 -0.33061 0.91101 0.31205 -0.52141 +0.50000 1.00000 0.13764 0.57914 0.73110 -0.75427 -1.44021 -0.22513 0.31669 -2.25102 1.15791 -0.74497 1.24190 +1.50000 1.00000 0.07334 0.70024 0.70606 0.22728 -0.08470 0.23770 -1.81575 -0.58336 1.48828 1.35347 0.50668 +1.40000 1.00000 0.24149 0.46755 0.71748 -1.25266 -1.03759 -0.51690 -0.57993 1.35628 -0.53200 -0.01798 0.43953 +1.90000 0.00000 1.58332 1.04515 0.26934 0.68967 0.47602 -1.67805 -0.70660 -1.92104 -2.44487 -0.78016 -0.08947 +1.10000 1.00000 0.66905 1.13182 -0.12878 0.85998 0.41918 0.08136 -0.46119 1.08347 0.73013 0.76389 1.12596 +0.60000 1.00000 0.15310 -0.86660 0.19793 -0.37177 0.38060 -0.37399 -0.42304 -2.70463 -0.26893 -0.10115 0.05031 +2.00000 0.00000 0.32811 -0.68962 2.28747 0.70309 1.77726 0.67451 -0.39243 0.31542 0.28116 -0.95015 -0.33063 +0.30000 1.00000 0.04578 1.09677 0.18570 0.54639 1.52047 -0.44682 -0.47933 -0.46953 0.11459 1.05734 -0.22807 +4.20000 0.00000 0.12646 0.65923 0.12099 -0.07110 0.61661 0.19862 -1.39906 1.32065 0.50983 -1.63159 -1.57018 +1.40000 0.00000 1.10036 1.07413 -0.03850 1.11149 -0.69157 0.00836 0.58810 -1.37906 1.76383 -0.35971 -1.03351 +0.70000 0.00000 0.20116 0.85561 -0.39957 0.57080 1.39615 0.08189 -0.50628 -0.84098 0.48881 -0.58612 -0.15291 +2.00000 0.00000 0.82176 2.11433 0.93282 1.79311 -0.35742 0.25543 -0.88078 -0.86799 -1.51496 -1.26603 0.18133 +1.70000 1.00000 0.78262 -1.94297 0.35351 0.71620 2.09406 0.19198 -1.20357 1.00308 0.14950 -1.18374 0.28556 +0.20000 1.00000 0.06884 -1.46087 0.63419 -0.85284 -1.15756 1.95312 0.81650 1.58726 0.33571 0.44596 1.33227 +1.00000 0.00000 0.62379 0.88066 0.50677 1.00883 0.65805 0.28291 -1.55669 2.06216 -0.81408 0.29812 0.14993 +0.10000 1.00000 0.04282 -1.46762 -1.20065 2.02247 -0.22365 0.73529 2.54643 1.55540 -0.15383 -0.97272 -0.54099 +1.90000 1.00000 0.61175 -0.52513 -0.38409 -0.58707 -0.82428 -1.98392 0.06674 0.35056 0.15044 -0.39197 0.12882 +0.40000 1.00000 0.30324 -0.35344 -0.01725 2.01211 0.74427 -0.41410 -0.54799 -0.00202 0.09607 -0.53669 -0.61148 +2.00000 0.00000 0.87685 1.17390 1.41275 0.78705 -0.58352 1.78227 -2.52103 1.11908 0.35726 1.19634 -2.70581 +1.30000 0.00000 0.00987 -0.34701 -0.90169 -0.05430 0.46310 0.01764 0.43314 -0.18962 -0.88936 -0.09308 -0.81687 +0.50000 1.00000 0.03952 0.47289 -0.85933 0.32105 -0.87985 -1.14532 -0.43672 -0.01510 -0.14838 0.01095 -0.80111 +0.60000 0.00000 0.21255 -1.43584 0.27559 2.39081 0.28578 -1.07018 -3.17251 0.91862 0.95470 -1.41619 -0.89133 +1.10000 1.00000 0.39894 -0.60399 0.03056 -1.17593 -0.83832 0.81076 -1.44544 -1.04736 0.03201 1.35847 -0.33185 +2.30000 1.00000 0.69815 0.28232 1.14855 -0.62873 -0.32722 1.97018 -0.80904 -1.54445 -0.02594 -1.76363 0.26351 +1.00000 1.00000 0.37151 0.44222 -0.47906 1.10785 0.38264 1.08296 -0.65891 1.01732 -2.10841 -0.93645 -0.63516 +0.30000 0.00000 0.12720 -0.92691 0.44397 0.72075 0.20720 -0.65849 -1.87412 0.60497 -1.48825 -0.66308 1.17267 +0.30000 0.00000 0.01780 0.08404 1.26443 0.00384 -0.42726 -0.82147 -0.61815 0.68993 -0.69680 1.35158 -0.51535 +1.10000 0.00000 0.08188 0.13393 0.32966 0.24828 -1.86673 0.58378 0.91474 0.08595 -0.86552 -1.47686 -0.45709 +0.80000 0.00000 0.11305 -1.32514 -0.18001 2.23320 -0.54599 -1.35097 0.13958 -1.08246 -1.20222 2.16812 -1.09491 +2.70000 0.00000 0.40340 0.12145 -0.03427 0.41756 -1.84262 0.20825 0.11143 0.11563 -1.71734 -0.61982 -2.04873 +0.40000 1.00000 0.25573 0.16207 -0.63295 -1.08577 0.72362 -0.39485 1.49596 -0.55991 -0.60471 -2.11945 1.55128 +0.90000 0.00000 0.18052 -0.21351 0.20711 -0.48678 -0.85576 1.05172 0.30428 -0.09626 0.53953 -1.03933 -0.83970 +3.00000 0.00000 0.02793 0.12199 -1.36668 0.16700 0.35381 -0.17582 -0.43478 -0.35462 -0.14964 -1.69213 -0.92712 +0.90000 0.00000 0.16021 -0.15461 0.15570 0.38001 -0.98717 1.33293 -0.06940 -1.49721 -0.06565 1.06423 0.23115 +0.90000 1.00000 0.40586 0.80580 2.42546 -1.27288 -0.69419 1.66917 -0.16038 0.66573 1.37608 -0.79586 0.24515 +0.40000 0.00000 0.26865 1.33105 0.03801 -1.15213 1.12074 -0.74539 -0.32116 0.72513 -2.13522 -1.25561 0.49580 +2.00000 1.00000 0.21050 -0.16289 0.85770 -0.00160 0.28418 2.06806 1.08917 -0.08028 -0.84072 -1.09703 1.72495 +0.40000 1.00000 0.39033 1.76717 -1.56853 -0.72620 0.76812 -0.58209 -1.88715 -0.50485 1.40082 0.04795 0.68152 +0.10000 1.00000 0.00824 -1.85646 -0.31127 -0.53295 0.15634 -0.40158 -0.58530 0.04320 0.65862 0.27053 -0.90698 +1.20000 0.00000 0.09005 -1.50235 -0.30499 -0.22438 -1.21412 -0.15676 -0.57837 0.33534 -1.58310 -0.64785 -0.46215 +0.40000 1.00000 0.34875 -0.08165 0.01447 -1.09632 0.59689 -0.45404 0.00261 0.65614 -0.68964 -1.84695 -0.68076 +0.50000 0.00000 0.14829 -0.71942 -0.25172 -1.14064 0.43252 -0.47800 -0.49941 -1.31965 -0.51106 -1.34027 1.08861 +0.20000 1.00000 0.05003 0.45574 -0.79000 -1.31688 0.32359 0.69657 2.00380 -0.67291 1.04042 0.79662 0.55335 +0.40000 0.00000 0.23937 -0.13889 0.29789 -0.44053 1.42137 -0.01961 1.08950 -0.18659 -0.02759 -0.47577 0.05874 +0.40000 0.00000 0.21439 0.14680 1.07376 0.05133 1.62393 -0.68644 -0.15040 0.05314 -0.24385 0.17771 0.06498 +2.50000 1.00000 0.51498 0.50826 -0.25636 1.52481 -0.08510 -1.36326 -0.44916 1.44823 -1.03232 0.76881 0.08556 +1.10000 0.00000 0.25231 1.20462 0.95526 -0.52231 -0.42703 1.13211 0.05326 -0.07102 0.17185 1.53996 -2.19026 +1.00000 0.00000 0.98569 0.98702 1.92112 -0.03646 0.34946 1.28712 0.49206 -1.21545 -0.71235 -0.71359 0.38280 +5.00000 0.00000 0.36514 1.32067 -0.11704 -0.48106 -0.77811 -1.08408 -2.12092 0.83713 -2.11381 -1.29369 -0.11984 +1.60000 1.00000 1.32106 0.45281 1.15010 -0.38257 -0.14682 0.50548 -0.19286 0.88510 0.17455 -0.46690 -0.50945 +1.40000 1.00000 0.85911 -0.04034 -0.01380 -0.63814 -1.75233 -0.44007 -0.03773 0.19444 -0.31070 -0.49794 0.40814 +0.90000 1.00000 0.58587 1.88058 0.85597 -0.15575 0.23587 0.56936 0.92463 0.16393 -0.15473 1.18872 0.31553 +0.20000 1.00000 0.06285 0.65085 0.07952 -0.39468 -0.27162 -0.02970 1.41836 0.99644 0.35638 -0.82518 0.28948 +0.20000 0.00000 0.13328 0.88066 0.92357 -0.23548 0.74230 -1.06651 0.14576 -0.38101 -0.61486 -1.42605 0.60168 +2.70000 1.00000 0.08387 0.02996 1.39130 -1.25240 -2.31088 1.02681 -2.07972 -0.11298 -1.04167 -0.26845 -0.93112 +0.70000 0.00000 0.65539 -0.44232 1.44002 1.09539 -0.92343 0.52742 0.34328 -0.49499 -1.82141 -0.08164 -1.04844 +1.00000 0.00000 0.06765 -0.51435 0.35253 0.05162 -0.12314 0.58341 -1.41368 1.44480 -2.08420 -0.01317 -0.58998 +1.00000 1.00000 0.98228 0.69296 -0.38748 -3.03333 1.48198 0.99655 -1.14103 -0.49212 -0.04090 -0.78186 -0.27604 +2.20000 1.00000 1.34919 1.10119 -0.74927 -0.78192 -2.18733 -0.85693 -0.26202 -0.67307 -0.50294 -0.59377 -0.73034 +1.60000 1.00000 0.00212 1.47734 0.08775 -0.28268 0.14385 2.08126 -0.90942 -0.49397 0.07878 0.98254 0.00707 +0.60000 0.00000 0.09344 -0.37725 1.17843 0.82059 0.92997 -0.15105 0.14470 -0.11988 1.45642 -0.83175 0.02936 +0.20000 1.00000 0.10328 -2.26922 0.61927 -0.25134 -2.68098 -0.72045 -0.19845 -0.21392 -0.37503 0.79806 -0.25884 +2.60000 0.00000 0.50782 1.53903 -0.44812 -0.32393 0.98989 -0.06916 1.49554 0.06975 0.03153 -0.98194 -0.52916 +1.20000 1.00000 0.45513 0.32838 1.25188 -2.09851 0.98918 0.04952 1.13006 0.90597 1.37279 -0.38600 -1.04595 +0.60000 1.00000 0.35639 -0.67578 1.09638 -1.23040 1.75229 -0.04410 1.26213 -1.57147 -0.78540 0.41686 -0.00986 +0.50000 0.00000 0.36988 -1.39016 -0.24428 0.26198 -0.24481 -0.73518 -0.86397 2.24318 -0.71250 -1.35094 -0.49509 +0.60000 1.00000 0.40236 0.30101 0.63237 0.09977 -2.76941 0.96387 1.24001 1.14469 1.51392 0.95184 -0.15668 +0.40000 1.00000 0.02408 0.46068 -0.41882 -0.85955 0.54199 -0.57839 0.29651 -0.46629 -1.06904 -0.06090 0.87713 +0.30000 1.00000 0.16792 -0.73542 1.11428 -1.55390 0.92762 -0.72227 1.02146 -0.30479 0.15083 -0.79652 -0.43373 +0.80000 0.00000 0.40446 -0.25013 0.31058 -0.05754 0.61603 0.27893 -0.51822 -0.15011 1.34840 -0.20528 -0.84129 +1.30000 1.00000 0.05395 0.85825 -0.79039 -0.12367 0.60386 0.23277 1.38423 0.12782 -0.17165 -1.62858 -0.50728 +0.10000 1.00000 0.06561 -0.74787 0.83250 1.21869 0.31120 0.42984 0.83367 1.82665 1.19822 1.44656 2.13144 +0.50000 0.00000 0.26208 0.12026 0.72387 -0.56642 -0.04395 -0.28445 0.58350 0.19922 1.05322 -1.05197 1.43254 +2.50000 0.00000 1.11054 -0.28665 -0.24169 0.49838 -1.37407 2.32539 0.17557 -0.69824 -0.02025 0.70325 -2.58334 +0.40000 0.00000 0.29083 1.08791 0.64187 1.05860 -0.03464 1.66297 -0.83809 -1.28946 -1.11165 -1.43971 -1.43796 +1.70000 0.00000 0.00721 -0.98468 0.84269 -0.99151 -0.43782 -0.89503 -0.28142 -1.75209 -0.86231 -0.57890 -1.13151 +2.10000 1.00000 0.85621 -0.73250 -1.36076 -0.68611 -0.77395 -0.89833 0.36684 -1.33476 -1.12834 -0.56608 -1.77733 +1.20000 0.00000 0.61570 0.91147 -0.55081 -0.08691 -1.04746 -0.07131 0.03792 1.11201 1.28873 -1.77679 -0.02380 +1.00000 1.00000 0.15255 -0.47531 -1.23875 -1.49602 -0.65709 -0.01216 0.13653 1.45879 1.56789 -1.24419 -0.56616 +1.00000 1.00000 0.57844 0.56142 0.22321 -0.38151 1.12601 -0.14809 0.25750 -0.35760 -2.44658 0.77886 0.79798 +1.60000 0.00000 0.13134 1.17711 -0.00153 -0.35729 -0.08114 0.80303 0.28242 -0.63011 0.92458 -0.04768 0.03576 +0.30000 1.00000 0.25482 0.86840 -2.13604 0.33549 0.69813 -0.51596 1.14897 0.56024 0.00702 -0.64625 0.88679 +0.90000 1.00000 0.37279 0.48398 1.63618 -0.15104 0.74800 -0.30662 1.33929 1.80634 -0.47085 1.05075 0.56652 +0.30000 1.00000 0.07819 -0.69857 1.60345 -1.09418 0.91919 -1.15945 -0.17044 -0.60929 0.16257 -0.61399 -0.61753 +2.30000 0.00000 0.82266 -0.03969 0.90091 0.79275 -0.83881 0.85156 0.13441 -1.07244 0.78396 -1.86042 -2.08783 +2.10000 0.00000 0.10269 -0.22147 0.17138 -0.11109 0.00791 -1.32245 0.21830 -0.72394 0.18492 0.71345 -0.01457 +4.00000 0.00000 0.64473 1.09809 1.59509 -0.16032 -0.17678 -1.69096 0.18298 -0.97594 0.52310 0.26912 -1.60245 +1.30000 0.00000 0.54456 0.25169 2.61494 -0.05461 -0.73199 1.50591 0.32816 1.06045 0.56472 -1.45963 -0.43340 +1.50000 0.00000 0.53025 -0.52032 -0.00102 1.36328 -0.88665 1.13605 -0.14806 -1.41825 0.34001 0.99299 -2.01239 +1.20000 1.00000 0.41996 -0.87343 1.99894 2.02539 0.06520 0.05161 1.59045 0.45069 0.25726 -1.69435 -0.23731 +1.00000 1.00000 0.24357 -0.70947 0.15322 0.93509 -1.26684 0.74673 0.78928 0.70138 -0.21798 -0.02413 1.05860 +0.80000 0.00000 0.70788 0.73869 1.24498 1.00648 0.73811 0.77425 -0.07284 -1.75906 0.61283 -0.53053 -0.22178 +0.60000 1.00000 0.06009 0.27084 -1.48376 1.14782 0.71793 0.06844 -0.59141 0.38953 0.41190 -0.77679 1.32401 +4.10000 0.00000 0.03828 -0.25272 -0.12265 0.41422 -1.46830 0.27749 1.04206 2.60620 -1.71512 -0.54826 -0.45283 +1.40000 0.00000 0.03796 0.71420 0.64172 -1.13408 -0.38212 1.23587 -1.17029 0.80903 1.28074 -1.24988 -0.35711 +1.10000 0.00000 0.19402 0.09967 -0.56727 -0.97914 1.29860 -1.49965 -2.35241 -0.71374 -2.09218 1.86614 -0.58044 +1.50000 1.00000 0.51801 -0.39962 0.86635 -1.36293 0.58049 0.62911 -0.59103 -0.05974 -0.70555 -0.78018 0.60184 +1.90000 0.00000 1.88043 -0.88199 -0.11815 -1.04093 1.85847 -0.19274 -0.77704 -2.33540 0.08945 -0.35394 -2.69119 +0.20000 1.00000 0.15595 0.60562 1.48918 0.43099 0.06393 -0.07581 0.46649 -1.33833 -0.82049 -0.94165 3.43839 +0.90000 0.00000 0.25145 0.82616 0.62646 1.79073 1.15053 -0.21066 0.00125 -0.64561 -1.69657 0.52132 0.61842 +0.80000 1.00000 0.66471 0.30569 -1.39972 -0.14317 -0.59371 -1.16552 0.77134 -1.24254 -1.30292 0.70176 0.74649 +4.90000 0.00000 4.55001 2.18727 1.19637 -0.32897 -0.55537 -0.92427 -0.82154 1.06001 -2.18391 -2.09248 -1.87160 +0.70000 1.00000 0.33560 -0.44312 -0.20496 -0.58961 -1.01931 -0.44845 0.41490 0.41336 2.30799 -1.12325 -1.72092 +1.30000 0.00000 0.29865 -0.06688 0.20624 1.46005 2.02106 0.81249 1.66394 1.62065 -0.11813 -0.73283 0.47006 +1.60000 0.00000 0.50000 0.11585 2.54301 0.55188 -0.62929 0.79657 -0.08640 -0.35044 -1.54259 -0.91203 1.08320 +0.20000 1.00000 0.08306 0.50298 -0.65719 -0.87988 -2.09282 -1.21821 1.82386 0.77197 0.25835 -0.75938 -0.13757 +1.10000 1.00000 0.12474 0.51475 -1.08226 1.05712 1.59329 -0.91517 -1.28442 0.03058 -1.44147 0.91908 -0.39751 +2.10000 1.00000 0.51022 -1.79828 0.36277 -1.11770 -0.06454 1.99851 -1.26503 0.59961 -0.29055 -1.82379 -1.39671 +0.70000 0.00000 0.04827 -1.02179 1.35722 1.87660 -0.06704 1.82421 0.59337 1.38163 -0.48889 -1.19013 -1.05711 +0.80000 1.00000 0.76346 -0.29050 -1.27119 2.01048 0.75332 -1.58214 -0.31968 -1.13548 -0.57071 2.01818 -0.86927 +3.80000 0.00000 0.25305 1.29259 -1.02173 2.20522 -0.04128 1.24868 0.89310 -0.79365 -0.77858 0.45330 -0.61013 +0.60000 1.00000 0.28222 0.24820 0.98382 1.52656 -1.65826 0.64915 0.45435 -1.12425 -1.55473 -2.06208 1.85741 +0.40000 0.00000 0.17713 -0.84474 0.23725 1.46575 -0.53415 -1.07761 2.03019 -0.71110 -0.48147 2.04229 -1.67436 +0.40000 0.00000 0.34505 -0.96393 -2.94909 -0.47932 -0.48042 -1.65673 -1.07543 -1.44406 -1.04268 -0.53088 -0.70941 +0.30000 1.00000 0.13348 -0.48924 1.47720 -1.21762 -0.64999 0.01509 -0.96161 0.09071 0.95351 1.41868 0.29067 +1.00000 0.00000 0.00132 -0.23096 0.43777 -0.68726 0.28643 0.06143 -1.38742 1.15771 0.01809 0.57870 -0.03210 +1.80000 1.00000 1.46976 1.73352 0.76974 -0.62489 -1.87723 0.70252 0.72642 -0.37934 -1.75897 -0.69750 1.51386 +0.20000 1.00000 0.07464 -0.03454 -0.33823 1.37363 -0.78753 0.13906 -0.36997 1.77425 -0.57284 -0.73531 1.13299 +1.30000 0.00000 0.42927 -1.45033 -0.01159 -0.31803 -0.24953 0.75364 -0.68244 0.66568 -0.22708 -0.90056 -0.96017 +1.30000 0.00000 0.53390 1.98346 0.52981 -0.51147 2.06130 -0.94455 -0.51270 -0.32023 -0.96324 -0.67638 -0.46340 +1.20000 1.00000 0.32307 0.06172 0.43329 2.51147 -0.30017 0.35182 -2.07269 0.62346 -0.23488 -0.35916 0.12418 +0.10000 1.00000 0.03816 -0.30701 0.47456 -0.20656 0.38566 0.45525 -1.12687 -0.47949 0.98767 -0.66273 -1.24309 +0.50000 0.00000 0.02244 -0.65000 1.27773 1.73768 0.72064 0.19683 -0.26524 1.17640 0.54623 0.79182 -0.24055 +2.80000 1.00000 0.86613 0.01881 -1.86253 -0.49297 0.19564 -1.39122 0.77280 0.94388 -1.41863 -2.36222 0.53213 +2.00000 1.00000 0.76248 -0.25303 1.41987 2.11070 -1.02312 -0.89568 1.56787 1.27826 1.12410 0.29699 -0.14126 +0.70000 1.00000 0.32474 -1.79160 -0.76991 -0.09087 -0.51056 -1.44735 -2.06473 0.67947 0.01794 0.62414 -0.59647 +0.70000 0.00000 0.40023 -1.57913 2.03268 0.02842 -0.24056 0.13391 -0.12009 0.16641 0.66416 -1.23855 -1.02672 +0.30000 1.00000 0.16448 0.25361 0.05384 -1.16742 -1.98690 0.92827 1.68456 -2.04426 0.55664 0.45098 0.93075 +3.90000 0.00000 0.34159 2.53176 0.43752 -1.80237 -1.36772 0.27904 1.20591 0.33834 -0.05038 0.73901 -1.35472 +0.60000 1.00000 0.58858 -0.38529 0.57508 -1.11289 -2.01318 -0.55322 -0.90015 -0.06835 0.20529 -0.52381 1.22507 +4.30000 0.00000 0.51366 -0.28177 1.75795 0.58593 -0.46891 -1.37246 -0.57434 0.81824 -1.36966 0.33548 -1.16849 +0.80000 1.00000 0.33019 0.22640 -0.35521 2.35335 -0.41426 2.58730 -1.03177 -0.88962 0.45918 0.95746 -0.92880 +2.40000 0.00000 0.98949 1.74745 -1.83826 1.35555 0.13616 1.13256 -0.50299 1.17732 -0.91825 -1.31371 1.02820 +2.20000 0.00000 0.09231 0.09080 1.90507 -0.29217 1.59130 -0.05046 -0.86981 0.45405 -1.10217 0.02812 0.13184 +0.20000 0.00000 0.07966 -1.43974 -0.11493 -0.95070 0.74915 0.83930 -2.45516 -1.16771 0.27741 2.34912 -1.56249 +0.40000 0.00000 0.34514 0.70947 -0.55311 0.32688 2.02732 0.57756 -0.33365 -0.76375 -2.31593 -0.57700 -0.14429 +1.90000 1.00000 0.78956 -0.95270 1.14595 0.52744 -0.88159 -0.69031 0.79890 -1.70431 -1.03652 1.48146 -0.20273 +0.40000 1.00000 0.17257 -1.22750 -0.12986 0.13171 -0.11249 0.48126 -0.31197 -0.89581 1.52334 0.90406 -2.18316 +1.60000 1.00000 0.08868 0.20544 0.56796 -0.97695 -1.60400 -0.89952 0.33984 0.97282 -1.63354 -1.24098 -1.25620 +0.40000 1.00000 0.03785 0.57257 -1.24143 -0.37641 0.26776 -0.00954 0.56400 0.29088 -0.02128 1.67143 -0.26501 +0.60000 1.00000 0.01584 -0.53790 0.07824 -0.15383 -1.50849 0.29570 0.28427 0.04375 -1.02929 -1.20228 0.82278 +4.00000 1.00000 0.17106 0.00500 0.42562 0.00820 0.40286 -0.76928 0.33832 0.28533 -1.33610 -1.98528 -1.32325 +1.30000 1.00000 0.35765 -2.15834 0.98873 0.73167 -0.53829 -0.10578 1.01708 -1.33831 0.39752 -0.81176 -0.54147 +1.10000 1.00000 0.83764 0.09426 0.07396 -1.34841 -0.35914 0.54657 1.75894 -2.08187 -1.49649 0.36832 0.45018 +0.20000 1.00000 0.09800 -0.39267 0.17101 -0.42922 1.76945 -2.36974 1.56871 0.93247 -0.40346 -0.62097 1.16240 +2.90000 1.00000 1.18789 -0.32376 0.13632 -0.15818 -0.31467 0.24390 1.08610 -1.03765 -1.45753 -0.13165 1.60378 +0.50000 0.00000 0.09217 -0.97897 1.53282 -2.03302 2.16523 0.84886 -1.75378 1.31784 -0.91588 -1.01981 0.03157 +0.50000 0.00000 0.20208 -0.14176 -0.42757 -0.77322 0.08286 0.56978 -1.24544 -0.39766 -1.09840 0.21440 -1.32115 +0.80000 1.00000 0.68498 0.76748 0.50557 0.53107 -1.07415 0.20162 -0.18405 -0.62453 0.31385 -0.04871 0.54313 +0.10000 1.00000 0.05662 -0.22507 -0.53241 1.92881 0.20577 0.05748 -0.19032 0.95843 0.35981 0.08875 0.88584 +0.60000 0.00000 0.43325 0.53165 1.73872 0.33418 0.78126 0.34597 0.73342 -0.82235 -0.18501 -0.97950 0.03559 +1.10000 1.00000 0.25777 0.28634 -0.22365 -0.32278 1.63391 -1.03647 2.04703 -0.64077 -1.08041 -0.41686 -0.15689 +0.30000 1.00000 0.06581 -0.37875 -1.30051 1.05990 -0.59542 1.07904 -0.08606 0.61069 0.20605 -0.06950 -0.70859 +1.50000 1.00000 0.20555 -0.90307 -1.56097 -0.86335 0.33615 -0.48511 0.27368 1.23660 -1.48686 0.62807 -1.16456 +0.20000 1.00000 0.15339 1.33886 -0.52687 -0.16687 -0.25357 -0.64926 -0.12737 -0.85968 -0.60375 -1.06853 -0.17955 +0.50000 0.00000 0.06808 0.46040 -0.70688 0.97132 -0.71513 -1.01288 -1.84373 1.33500 -1.36550 0.77659 0.49366 +1.40000 1.00000 0.85388 1.59344 -0.67070 -1.34720 -0.18590 0.38022 -0.87558 1.41293 -1.72103 -0.55148 -0.30543 +5.20000 1.00000 0.04487 0.65351 1.70152 -0.86462 0.01923 1.13323 0.13462 -1.65617 -0.36458 -1.46316 -0.28200 +0.40000 0.00000 0.10641 -0.20481 1.19887 0.84185 0.41577 -0.04928 1.66355 -0.56222 0.47190 -0.16582 0.04577 +0.90000 1.00000 0.18810 0.82276 0.40597 1.08601 -0.11988 0.61940 0.26188 -0.49425 0.26531 0.74612 1.51035 +0.10000 0.00000 0.02379 0.25234 0.55950 0.32496 -0.22454 -0.77136 0.91591 -1.19312 -0.47846 -0.46434 -0.15470 +0.90000 0.00000 0.84986 0.80877 0.43833 0.34500 -0.32691 0.16115 0.36772 0.69414 -0.79098 -0.80809 -1.41615 +3.90000 1.00000 0.32165 -0.41586 0.85432 1.53158 -0.83936 1.09195 0.10820 -0.86834 -0.97641 -1.25143 0.65003 +0.80000 0.00000 0.11147 -0.21177 -0.92316 -1.17554 0.00889 -0.68087 -1.24871 -1.12195 -0.57113 -0.82837 -1.39335 +1.70000 0.00000 0.84071 -0.19802 0.35640 -0.41051 1.65026 0.95552 -0.37154 0.30220 1.26828 -2.01960 0.30956 +0.10000 0.00000 0.03715 -1.25818 1.13948 0.95166 0.57223 -1.73394 0.89863 0.94146 -0.50548 -1.05034 2.02802 +0.40000 0.00000 0.05460 -0.02308 1.41744 -0.43765 -1.29931 1.44363 0.35405 -0.17328 0.19013 -1.35109 0.33481 +4.10000 0.00000 0.38343 0.06618 0.33604 0.54665 -2.44977 -0.35554 -1.21404 -1.54683 -0.27504 0.63557 -2.34753 +0.20000 0.00000 0.06616 1.37411 -2.57626 0.47728 -0.15419 0.50722 0.05922 1.54218 0.22007 -0.36973 -1.03960 +1.10000 0.00000 0.74278 1.76293 1.06214 -1.45747 -1.03015 -0.79088 0.49661 -0.14180 1.11732 -1.78525 -0.25641 +0.10000 1.00000 0.09018 -1.17833 -0.42911 1.92796 -1.18477 -0.28528 0.92847 0.09874 2.35734 0.21591 -1.61233 +0.50000 0.00000 0.36315 0.97437 -0.97670 -0.63666 -0.40240 -0.71595 -0.50576 0.81848 -0.64963 -1.28970 0.32739 +0.40000 0.00000 0.23530 0.54508 1.11671 0.29445 0.07313 1.99263 1.33511 1.46255 -0.51764 1.18931 -0.88122 +0.10000 0.00000 0.09599 -0.05714 2.05383 -0.25974 0.29634 -0.54251 0.17294 -0.64743 -1.50895 -0.96539 -1.14246 +1.10000 1.00000 0.31808 0.48416 -0.72865 -1.12265 -0.48306 2.39604 -0.38743 1.98006 -0.68995 0.89532 -2.97962 +1.20000 1.00000 0.44596 0.97161 -1.26740 1.50916 -1.23407 -0.02654 0.09319 -0.65811 -1.21880 -1.44422 -0.25493 +0.30000 1.00000 0.09737 0.18079 -1.58882 -0.59103 -1.01035 0.49572 -0.89363 -1.13579 -0.71677 0.50098 -1.23906 +0.30000 1.00000 0.18620 0.20475 0.10893 0.01789 -1.31510 0.90592 0.59078 0.22949 -1.17133 0.11467 -0.20652 +0.60000 1.00000 0.15191 -0.22353 1.21033 -1.27996 0.23349 -0.29629 0.82658 -0.76969 -1.36421 0.26695 0.64223 +1.30000 0.00000 0.42086 -0.34416 -0.17319 -2.25413 2.33164 0.92853 0.11798 -1.21293 -1.72135 -1.06921 -0.39895 +0.70000 1.00000 0.14569 1.94707 0.16729 -1.50234 1.00099 -1.54207 -1.00022 -0.44487 -0.24909 1.28355 0.01970 +1.90000 1.00000 1.66518 -0.34603 -1.80916 -0.23269 1.40987 2.19176 -0.16508 -0.07228 0.96494 -1.75104 -1.46848 +2.20000 0.00000 1.02268 0.10816 1.60395 0.28681 -0.46044 0.32585 -0.04200 1.01538 0.79377 -0.31247 0.44867 +3.60000 1.00000 1.97111 1.82589 2.20568 -0.41100 0.42343 0.76246 -1.03097 -0.27688 0.08538 -0.96135 1.94305 +0.30000 1.00000 0.09444 0.30562 0.02778 0.88851 0.23713 0.77082 -0.55814 -1.40150 0.07791 -0.16754 -0.39875 +1.40000 1.00000 0.54439 -0.60652 -1.31389 -0.76518 -1.22577 0.53733 -0.05864 1.19481 -0.22873 -1.93815 -1.87432 +1.50000 0.00000 0.41771 1.06979 0.22939 0.40016 0.07506 -0.69184 -0.09486 0.16931 1.34871 -1.29645 -1.59040 +1.50000 0.00000 0.30340 -1.58930 -0.33068 1.43427 0.67112 0.86815 -0.80432 -1.85202 -0.39385 0.51668 -1.12442 +0.70000 0.00000 0.23071 1.01588 0.74426 0.35911 0.62567 -1.51300 -0.51022 1.65414 -1.26030 -0.14278 -0.78036 +2.20000 0.00000 1.15447 -1.47262 1.45667 -1.26957 -0.74041 1.11352 -0.89508 0.82123 -0.63683 -1.00244 0.05598 +0.30000 0.00000 0.06623 1.37914 2.07736 -1.19992 1.21730 -0.83235 -1.46166 2.10318 -0.28655 -0.84602 0.89117 +2.30000 0.00000 2.22903 1.48135 -0.77557 -0.25199 -0.63230 -0.01732 0.20899 -1.14061 -2.63642 0.31232 -0.73527 +0.20000 1.00000 0.06019 -0.12359 -0.38824 -0.65217 0.03627 0.50653 1.79886 0.58246 0.26921 -0.36965 -0.69307 +0.70000 0.00000 0.10261 0.35756 -0.25503 0.55426 0.13836 0.08887 -0.64809 0.66928 -0.37372 0.88570 -0.23348 +0.10000 1.00000 0.04415 -0.46086 0.99164 1.02736 -1.53043 1.18125 0.92489 -0.33312 -1.62416 0.86570 0.29519 +0.50000 1.00000 0.20317 -0.59911 0.86187 -0.39832 0.04260 0.47536 -0.09966 -0.30217 -0.72322 0.24217 -0.64349 +0.50000 1.00000 0.07260 -0.04850 1.18515 -1.11816 -0.99904 0.21203 -0.40725 -0.29421 0.67663 -1.80576 0.41576 +1.00000 0.00000 0.24518 0.05909 0.43420 -1.55521 -0.28686 0.06605 -0.57593 -1.32388 -0.70928 1.42259 -0.37553 +0.30000 1.00000 0.00910 -0.40374 0.39255 0.58886 0.61965 -2.26197 0.05662 1.70065 0.37232 0.51850 0.93843 +0.60000 1.00000 0.34745 -0.88811 1.31655 -1.54552 -2.40226 -1.34754 -1.76844 -0.47407 0.85154 -0.74226 1.38132 +1.20000 1.00000 0.63103 -0.67947 0.11811 -0.37475 -0.80414 0.30605 0.21053 -0.38903 1.06666 0.08697 0.49228 +0.70000 1.00000 0.23364 0.48848 0.01212 0.21237 0.58374 0.73338 0.63102 0.47609 0.31864 -0.80829 0.86430 +1.50000 1.00000 0.56219 0.30272 0.01761 0.51313 0.57769 -0.36571 -1.55621 0.82909 -0.80239 -1.05614 1.23425 +0.30000 1.00000 0.02978 0.40024 -0.95542 -1.32411 -0.55884 0.74565 -0.12311 1.03639 -0.12748 0.22949 0.50609 +1.40000 0.00000 1.22862 0.86668 -0.68888 1.29509 -0.29101 0.85836 0.12009 0.40098 -1.16420 -0.17156 -0.67495 +0.20000 1.00000 0.05738 -1.23124 -1.02987 0.68446 -0.06570 3.36575 0.86665 -1.42831 0.46492 -0.73068 0.22897 +0.80000 1.00000 0.16919 0.56133 1.07240 -0.89110 0.69877 2.81483 1.19922 -0.11925 -0.06564 -1.48109 0.75791 +0.30000 1.00000 0.18558 0.38241 -0.16491 -0.00576 -0.65205 -0.45846 -0.64260 -0.23280 0.59299 0.36251 1.24109 +1.60000 0.00000 0.01498 1.68967 0.30575 -1.01363 -0.96981 0.99052 0.43194 0.71832 -1.26139 -1.54333 -1.13320 +0.70000 0.00000 0.43423 0.76978 -0.96305 -0.95035 -0.13328 1.74953 -1.52002 0.37449 1.42814 -0.13320 -1.29442 +0.60000 1.00000 0.18485 0.92965 -0.14109 1.29695 -1.34652 -0.08176 0.74003 -0.43832 0.73152 0.24496 0.33254 +3.70000 0.00000 2.95255 0.54527 0.19331 -0.23310 -0.46310 0.89368 -1.68701 0.30899 -0.48979 -0.67434 -0.78669 +2.40000 1.00000 0.48094 0.97852 -1.63861 0.62020 -0.85686 -0.60445 -2.75947 0.13742 1.00089 -1.33001 -1.05028 +0.30000 0.00000 0.00708 0.02154 1.69723 0.46318 -0.75377 0.14879 -0.68637 0.26277 -0.69576 -1.29452 -0.23038 +1.10000 1.00000 0.15960 -0.21766 -0.72201 -0.26364 -0.37505 1.84625 -0.09393 -0.06252 0.09583 -0.19264 1.01371 +1.90000 1.00000 0.08882 -0.52197 1.15204 -1.11571 -0.53267 -1.63407 -1.71492 0.54213 -1.02088 1.05812 -1.04395 +0.40000 1.00000 0.36079 0.42736 -1.18275 1.16549 1.54238 0.02735 -1.30506 -0.31750 -1.27544 0.14799 1.30120 +0.80000 1.00000 0.50191 -0.23418 -1.81871 -1.83992 0.73838 -0.11691 -0.13892 0.67277 0.71325 -1.25715 -0.07216 +1.10000 1.00000 0.44455 -0.30566 -1.00934 1.92578 0.29597 0.46875 -0.32722 -0.32893 0.39784 0.19719 1.84136 +2.70000 1.00000 0.49192 0.86658 0.31698 0.22295 1.24368 0.58487 0.14798 1.22008 -0.19706 0.03838 -0.52329 +1.50000 1.00000 1.01711 -0.53908 1.49873 -0.76347 1.07114 1.82934 1.11616 0.44015 -1.52748 -0.29103 -2.29367 +0.40000 1.00000 0.18532 -0.79525 1.82246 -1.14364 1.46896 -0.47801 -1.48947 0.28803 0.37365 0.41080 -0.48666 +0.20000 1.00000 0.19272 -0.43084 0.15281 -3.11921 0.65169 -0.25691 -1.06729 0.34670 -0.32153 -0.92867 -1.30902 +2.00000 1.00000 0.27611 -0.86599 0.22311 0.41819 -0.04104 -0.34045 0.35365 0.46491 0.24373 -0.51700 -0.85015 +0.50000 0.00000 0.16336 1.02960 0.75062 2.86097 -0.29534 0.92334 -0.05335 -0.75880 -0.20398 -0.30476 0.73377 +0.60000 1.00000 0.03304 1.79941 -0.58145 -1.77630 -1.14282 0.04521 0.08555 -1.61965 0.98524 -0.65615 -0.06223 +0.70000 0.00000 0.10595 -0.23564 -0.69703 1.70770 1.18673 -0.33833 0.09882 0.61622 2.91421 1.28657 0.02243 +0.60000 0.00000 0.36774 0.66831 -0.35946 -0.62385 0.60950 -0.58847 1.73244 -0.24128 -0.39720 1.39003 -2.64115 +0.70000 0.00000 0.57804 0.66675 1.74770 -0.24858 1.18713 -1.07882 0.53177 -2.74271 1.77775 -1.01000 -1.05979 +0.60000 1.00000 0.26226 -0.52038 0.27983 0.82319 -0.31648 1.37898 2.41627 -0.03081 -0.82105 1.60211 1.34683 +1.00000 0.00000 0.25264 2.47587 -0.18848 0.40920 0.96486 -0.71156 -1.24880 -0.16625 -0.84285 -1.09707 0.23039 +0.40000 0.00000 0.26197 0.65460 0.26917 1.14210 2.33431 0.70211 -0.39777 0.05974 -0.43724 1.36021 0.78501 +0.70000 0.00000 0.41036 1.16321 -1.34285 1.82774 1.34659 1.24493 -0.28306 1.24148 1.59091 0.08794 -1.05476 +0.70000 1.00000 0.39666 -0.44207 -0.70135 -0.99239 0.82748 -1.14605 0.12709 -0.80846 0.85338 0.91872 1.00616 +0.80000 1.00000 0.16094 -0.07681 0.60000 0.86898 -0.73290 -0.42338 0.39240 -0.16178 -2.60568 -1.30911 1.27321 +0.50000 0.00000 0.35531 0.56238 1.43256 -0.87227 0.44870 1.76032 0.02771 -1.68432 -0.96361 0.24338 -0.78420 +0.40000 0.00000 0.29202 0.12509 -0.08348 -0.56797 0.55897 -0.39280 -0.31256 0.37874 0.92309 -0.12348 -0.19223 +1.20000 0.00000 0.38037 -1.00185 0.63225 0.07632 0.44429 -1.20668 0.14976 -1.14726 -1.44174 -1.38378 -0.96465 +2.10000 0.00000 0.02910 0.70744 -0.05528 -0.20583 -0.18810 2.05575 1.20890 0.84783 0.55568 -0.11491 -1.45828 +0.40000 0.00000 0.27505 -0.83327 0.44127 -1.13874 0.62971 1.29126 0.40110 0.85790 0.63329 0.72086 -0.60926 +0.80000 1.00000 0.16881 -1.34532 0.23883 1.49950 -2.09200 0.82040 -0.02150 1.42669 0.84952 0.99146 0.55948 +1.40000 1.00000 0.44714 1.28849 -0.25198 -0.27115 0.51487 -2.35464 2.31350 0.73089 -0.73146 -0.43977 -0.12912 +1.30000 0.00000 0.23415 0.18362 0.60205 1.03603 -1.60066 -0.24351 -0.55586 -0.65988 -2.04841 0.07570 -0.43577 +0.60000 1.00000 0.50368 0.34333 0.85640 -1.32394 -0.92953 1.02876 0.20167 -0.63296 0.64270 1.91873 0.38832 +1.80000 0.00000 0.61057 -1.65877 1.12554 -0.26606 1.50156 0.43433 0.09446 -2.03239 0.74413 -0.18307 -0.86286 +0.60000 0.00000 0.37925 -0.36737 1.32977 0.31179 -0.67062 -0.86436 -1.86977 -0.21569 0.79177 -1.03118 0.41663 +2.80000 0.00000 1.01704 1.40630 0.72426 -0.87170 1.48526 -0.17506 -0.38057 -1.46860 1.27013 0.43667 0.97888 +0.80000 1.00000 0.58522 0.02654 0.50204 2.09890 -1.25687 0.84987 0.14864 1.28587 0.17635 0.30118 0.52974 +1.10000 0.00000 0.87524 -0.19427 0.44220 0.00473 0.26974 0.20123 -0.16820 -1.10154 -1.25945 -0.78721 0.58918 +1.10000 1.00000 0.70172 0.42463 0.39561 -0.76338 -0.38576 -0.77086 0.57272 -0.88044 -0.24050 -0.27816 -0.26400 +0.20000 1.00000 0.19768 -0.55493 -0.29148 0.54635 0.94974 -0.30173 1.56025 1.05636 -0.21752 0.62401 0.19693 +1.10000 0.00000 0.66687 2.77543 1.56340 -1.37234 0.11934 -0.20807 -1.53108 1.15961 -0.37652 0.21921 1.35224 +0.30000 1.00000 0.05775 1.08075 -0.29643 -1.26057 0.39036 -1.14641 -0.79128 -0.49078 0.60600 -0.16376 1.08404 +1.00000 1.00000 0.22631 -0.33606 -0.79474 0.35852 0.02228 0.46522 0.05359 1.14539 -0.08795 -0.93939 0.42788 +1.10000 1.00000 0.03291 0.56848 -1.27717 -0.76133 -0.15171 0.32964 -0.73571 -0.78845 -0.38973 1.02191 -0.48356 +1.10000 0.00000 0.06031 1.85709 0.52715 1.01327 1.01465 0.26333 1.33086 0.14318 0.07157 -1.56031 0.58350 +0.60000 1.00000 0.05097 -0.68838 1.29713 -0.26017 0.07404 -0.38291 -2.49437 0.54077 -0.07551 -1.35154 0.78454 +2.30000 1.00000 0.05344 1.65953 0.45679 -1.32345 -1.03592 -0.60036 -0.79165 0.62929 0.97899 -0.39623 -1.29818 +0.70000 1.00000 0.02965 0.03959 -1.20625 -0.23343 1.05328 0.87502 -0.15248 -0.32533 0.72749 -1.26521 -1.17767 +0.20000 1.00000 0.07715 0.25784 -0.95262 -0.79153 -0.72362 0.46171 0.71930 -0.16597 -0.24901 0.03209 -0.16496 +0.20000 1.00000 0.14467 -0.33230 0.48615 -0.69146 -0.78178 0.39621 -1.56788 -0.45223 -0.05965 1.25237 0.56787 +0.60000 1.00000 0.27879 0.69609 0.44461 -1.51477 -1.66483 0.21163 -1.16935 -0.08795 0.13717 1.48144 1.26439 +0.10000 1.00000 0.07556 -0.26552 0.11730 -0.44872 0.41289 -2.32189 -0.70022 -2.05216 -0.86669 0.17349 1.90747 +0.70000 0.00000 0.02525 2.16957 0.30937 1.14120 0.24587 0.24798 -0.73417 -1.23944 0.35338 -2.58042 -0.38128 +1.10000 0.00000 0.16669 0.88975 0.82331 -0.04727 -0.64710 -1.59539 0.22567 0.19827 0.72699 -0.72544 0.36081 +0.30000 0.00000 0.06345 -0.23706 1.02425 0.16055 0.12936 -0.47650 -1.21782 -0.47494 -1.07564 -0.16270 0.63968 +1.00000 0.00000 0.15282 0.42541 0.30152 -1.37985 -1.18106 -2.14608 0.14508 0.61416 -0.80184 -1.44954 1.59978 +1.40000 1.00000 0.28213 0.58182 0.46641 1.44368 -1.10098 -0.45817 -0.34523 -2.61224 0.06026 0.76760 0.27392 +1.60000 0.00000 0.06547 -0.54910 0.70470 0.01480 -0.06198 0.18259 0.24841 1.13554 -0.84216 -1.25357 -0.41991 +1.90000 1.00000 0.51199 -0.69189 -0.90078 0.39557 0.74392 -0.97501 -0.83488 2.32745 -1.11841 -0.51439 0.07481 +2.40000 0.00000 0.31976 0.02618 -0.78191 0.87628 -0.67385 1.15751 0.42163 0.53327 -0.83535 -0.85036 -0.95917 +0.90000 1.00000 0.74640 1.55302 1.89228 -1.61221 -0.48660 1.79421 0.61170 -0.75155 -0.32029 2.21272 -1.04258 +0.50000 1.00000 0.26175 0.28585 -0.45489 -0.61398 -1.05470 1.07746 -0.60834 -1.02210 0.41624 0.86252 1.47063 +1.00000 1.00000 0.64502 -0.12312 -1.79579 0.50137 1.45061 0.61493 -0.02007 -0.60891 0.51547 0.92811 -0.33788 +1.30000 1.00000 0.80265 -1.37542 -0.26297 2.09879 -0.00351 0.45448 -0.41667 -1.43744 -1.53054 1.80732 1.59153 +0.60000 1.00000 0.25324 -0.02814 -0.63317 -0.09116 0.43140 0.55783 -0.58842 -0.90600 0.62258 0.46047 -0.85758 +1.00000 1.00000 0.39402 -1.09843 0.99823 2.27311 0.46028 0.45919 0.92991 0.23911 1.49684 1.96261 0.36582 +0.30000 1.00000 0.07926 -1.04564 -0.27685 0.84065 -0.32837 2.22589 -1.32717 -0.97275 -0.73124 -1.62926 -0.46236 +1.30000 0.00000 0.33045 1.87360 -0.02195 -0.16502 0.35821 1.76992 0.13413 -0.22290 1.05247 -0.58776 1.21437 +0.20000 0.00000 0.10435 -0.75156 -2.29416 0.22825 -1.12098 -0.91088 -0.23812 1.00334 0.56760 -0.20531 -1.23599 +0.60000 0.00000 0.36732 -0.69411 0.81095 -0.47137 0.62931 -0.32337 -0.06992 -1.10499 -0.25500 0.09929 -0.92840 +1.40000 0.00000 0.76631 -0.78140 -0.25584 1.53003 2.03798 -0.34945 -0.16929 0.26312 0.10000 0.02794 -0.00948 +1.50000 0.00000 0.06733 0.53766 0.40326 0.82031 0.21465 1.02957 0.54347 0.95339 -1.97462 -1.05630 -0.45600 +0.50000 0.00000 0.24223 1.85029 0.61634 0.62910 0.50682 1.13604 -0.69570 0.26418 -1.37967 0.70669 -0.43523 +1.30000 1.00000 0.37336 -1.29753 0.50107 1.75459 -1.16314 -0.54525 -0.10143 1.24405 0.67155 -0.52167 -0.11878 +0.50000 0.00000 0.07106 2.12202 0.76369 0.81639 -1.77220 0.90257 -0.18242 1.17917 -2.08409 0.07743 1.45724 +1.50000 1.00000 1.33600 0.82680 0.67065 -0.05326 0.24611 2.07696 -1.40406 -0.20733 0.05926 -0.42020 -0.95597 +0.40000 0.00000 0.34550 -0.25440 -0.97131 0.36240 0.11971 0.24911 1.01494 -1.28954 -0.35238 0.62207 0.28115 +0.30000 1.00000 0.01488 1.21505 -0.43028 -0.68456 0.72715 0.46417 -0.64609 0.54488 -1.33192 -0.70566 -0.64724 +0.90000 0.00000 0.03922 0.57200 1.16872 0.25874 -0.08039 0.35416 0.74137 2.04949 -0.84877 -0.31533 -1.47607 +0.60000 1.00000 0.08834 2.10652 0.56966 0.33619 -0.13360 -0.18783 1.67968 -0.99161 0.48155 0.06802 -0.82418 +1.60000 1.00000 1.33519 -0.87406 0.93290 -2.17732 2.05212 1.14997 0.51834 -0.00867 2.00103 1.16283 -0.78923 +0.40000 1.00000 0.05996 -1.61561 0.15345 1.46676 0.12240 0.37244 -0.82519 -0.37693 -1.06016 0.77975 0.07423 +1.50000 0.00000 0.04413 -0.88606 1.19963 0.44104 0.53512 -0.05849 -2.17100 0.15317 2.64799 -0.13835 -0.13782 +0.40000 0.00000 0.34581 0.32908 -1.75037 -0.59766 -0.74881 2.18127 -0.25403 -0.39932 -0.55599 1.06882 -1.89765 +0.30000 1.00000 0.25746 -1.14545 2.50999 -1.01220 0.47534 -1.37337 0.30691 1.37530 0.52817 3.19339 0.92182 +5.10000 0.00000 0.26463 0.13412 1.41079 3.04814 0.35265 -0.36482 -0.64066 0.45780 -2.40603 -2.17158 0.11866 +1.10000 0.00000 0.59284 0.75163 0.65135 -0.32943 -0.23359 0.71832 0.29820 0.39837 -0.76137 1.11751 -0.61503 +0.50000 0.00000 0.33309 0.05292 -0.05893 -0.67264 0.46089 -0.34511 -0.17258 -1.71515 0.05140 -0.34454 0.98849 +1.80000 1.00000 1.26634 -0.52267 0.01760 2.25378 0.39503 0.75326 -1.17579 -2.53208 -1.40630 -0.00482 -0.97690 +0.30000 1.00000 0.28270 -1.03676 -1.19865 -0.66702 -1.04964 0.57615 -1.07737 1.44819 -0.56458 -1.62348 -0.67231 +0.20000 1.00000 0.01412 -0.71334 0.85943 -1.25346 1.09575 -1.37493 -0.84064 0.01937 2.00551 1.05360 0.58635 +0.40000 1.00000 0.31986 -0.03195 -0.56915 0.08665 0.26618 1.07300 -1.36366 -1.32446 -0.33261 0.50225 0.11000 +0.20000 0.00000 0.02486 0.22875 1.63079 0.68824 -1.06388 0.98348 -0.37465 -0.50038 -0.29531 2.18982 1.47527 +0.50000 0.00000 0.11864 -0.40742 -0.84861 -0.16081 -0.02666 0.11045 0.90540 0.37544 -0.14375 -0.39189 -1.63674 +1.40000 1.00000 0.09757 -0.13485 1.76720 0.21105 0.16459 -0.93362 0.31777 0.09455 0.60130 0.89475 -1.32670 +0.10000 0.00000 0.08406 0.55620 -0.17467 -1.83024 0.11848 1.01231 -0.69249 -1.57369 0.27931 -1.57904 1.07757 +0.90000 1.00000 0.63911 1.44543 0.15343 0.33354 1.04460 0.50516 -1.59591 -0.14296 0.47574 0.11010 -0.06523 +1.80000 0.00000 0.46641 1.15590 -1.23889 -1.01301 1.27947 -0.20298 -0.37144 0.36477 -0.13682 -1.35770 0.04677 +2.10000 1.00000 1.75136 1.31666 -0.30418 0.92202 -1.06392 -0.87338 1.00800 0.43891 -0.91890 -0.22154 -0.92136 +0.20000 1.00000 0.00545 0.76695 0.45929 1.74199 0.96696 -0.82960 0.65998 0.94424 -0.73492 0.60788 0.63396 +1.10000 1.00000 1.03994 -1.08527 0.42661 0.39781 0.61153 -0.43964 0.49523 -1.13553 1.73268 0.89120 -0.38470 +0.50000 1.00000 0.08972 0.00988 -2.14543 1.29159 -0.29460 -0.02035 1.13870 1.71403 -1.59351 -0.11769 2.06649 +0.60000 1.00000 0.12654 -0.78540 -0.00644 0.70118 0.72344 -0.85871 0.09888 0.62861 0.05650 -1.98635 -0.42252 +0.50000 1.00000 0.33337 0.97873 -0.66409 1.98127 0.49228 -0.69633 -0.24924 1.42018 1.65520 1.19693 0.50347 +1.00000 1.00000 0.12364 -0.64832 -1.23510 0.47855 -1.01020 0.23835 -0.70306 -0.48816 0.69794 0.11049 -1.95860 +0.90000 0.00000 0.26414 1.06230 1.25233 -0.39951 -0.31236 0.00951 -0.88479 2.32833 -0.06709 -1.57866 -2.00259 +2.40000 1.00000 0.39908 0.12305 0.26308 1.95116 -0.67976 -0.78978 1.04071 -1.54090 1.49777 -0.10349 -0.68031 +1.50000 0.00000 0.01356 0.91829 2.39225 0.60798 1.60527 2.00554 -2.03352 -0.88303 0.00103 -0.99155 -0.31312 +1.50000 0.00000 0.64626 0.68993 0.80640 1.88628 -0.66298 1.39376 0.81993 -0.42329 -1.16420 -0.31526 0.50955 +0.20000 0.00000 0.13333 0.03358 -0.05923 0.16423 -0.92117 1.28458 -1.47045 -0.97136 0.84685 0.79988 -0.46545 +0.30000 1.00000 0.02038 0.16597 1.37733 -0.24851 0.17968 0.44537 0.68133 0.85406 0.34099 0.26101 1.08751 +0.20000 0.00000 0.16251 0.50442 0.32154 -0.61463 -0.43600 -0.00111 -0.06977 -0.53232 0.15685 -0.97582 -0.67575 +0.40000 0.00000 0.13751 0.64972 -0.36746 -1.03217 -0.56799 -0.03231 -1.26422 0.41095 -0.42200 0.40184 0.05551 +0.40000 1.00000 0.00089 0.24981 -1.53588 -0.48457 -1.11811 -1.64126 -1.75437 -0.98867 -0.28589 -0.71661 0.23349 +1.30000 0.00000 0.30937 -0.46314 2.08028 0.11277 -1.54435 0.88982 -2.49764 -0.01824 -0.45486 0.29212 -2.02819 +0.30000 1.00000 0.16254 -0.12904 -2.01584 0.71360 -0.50288 1.27402 0.14292 0.04879 -1.28041 0.19426 0.01027 +0.70000 1.00000 0.53082 0.40244 -0.99249 -0.71075 -1.28208 1.44183 -1.84479 1.55882 -0.38284 -0.44362 -0.27852 +1.30000 0.00000 0.71095 1.71627 -0.46062 -1.88211 -0.47165 1.36392 2.07475 -2.01694 0.93823 -1.66597 -1.06221 +0.60000 0.00000 0.13651 -1.13685 0.92552 0.73492 0.01293 1.03851 1.01272 -0.56071 -0.02040 -0.19000 -1.03889 +0.50000 0.00000 0.35141 -0.58718 -0.30778 0.60764 -0.60205 0.39853 1.07350 -0.51198 0.85798 0.44821 -0.79363 +2.80000 1.00000 1.78380 0.40894 0.87931 -2.11254 0.80739 -0.05098 0.99256 -2.28316 0.65757 -1.53557 0.85914 +0.10000 1.00000 0.07518 0.27122 -4.28129 0.88633 0.06429 0.55236 -2.26649 -0.09479 1.10333 -0.56349 0.19594 +2.20000 0.00000 0.34588 0.38674 1.13226 0.01634 -0.90998 0.61789 0.69106 -1.72046 0.41759 0.45265 -0.73726 +1.50000 1.00000 0.58904 1.81615 1.19605 0.31631 0.60792 -1.86672 -1.97266 0.50723 0.85712 0.55522 0.39553 +0.30000 1.00000 0.22478 0.48438 0.26414 0.28914 -1.92698 0.07797 -0.07691 0.79481 0.59357 0.68260 0.09654 +0.90000 0.00000 0.25535 1.74668 -0.64495 0.69181 0.36440 0.85196 0.38787 -0.60530 1.61747 1.05564 -0.84156 +0.40000 0.00000 0.12480 -1.06153 -1.17263 1.38251 1.87147 0.55931 2.00665 -0.89662 0.85719 -1.17704 -1.55083 +1.30000 1.00000 0.13271 3.00705 -1.41460 -0.48025 0.59395 -0.21921 -0.29379 -0.24449 1.45330 0.02747 -0.58060 +0.20000 0.00000 0.00505 -0.07486 -0.65281 -0.93902 1.14833 0.71271 0.14756 -1.56016 -0.29277 0.28736 -0.34043 +0.70000 1.00000 0.67732 -0.40952 -0.68376 -0.87619 1.89463 1.18323 -1.44832 0.56353 2.00290 1.35504 -1.05613 +3.20000 0.00000 0.29503 0.88971 0.22497 1.56492 0.42225 0.74103 0.60593 -0.08908 -0.50431 -0.38413 0.30298 +1.50000 1.00000 0.05628 -2.11303 0.64400 0.56280 0.35071 0.81488 0.43878 -0.02028 -0.53337 0.32938 0.53034 +1.00000 0.00000 0.23852 0.21420 2.70581 -1.28932 -0.40020 -0.33500 -2.25368 -0.96797 0.03641 0.75505 -1.05100 +1.60000 1.00000 1.55312 1.11881 1.15675 -1.49225 -0.75384 0.85856 -2.38032 -0.52799 -0.38720 0.44284 -1.09770 +0.30000 0.00000 0.16417 0.84471 1.67024 0.28032 -0.11703 0.01729 -0.33659 0.44464 -0.48609 -1.43478 -1.10533 +0.40000 0.00000 0.38878 0.25018 -1.81263 0.41631 -1.35944 -0.32341 0.79223 0.07969 0.17568 -0.11963 -0.66163 +0.10000 1.00000 0.09020 1.19639 -0.17255 -3.05011 0.52214 -1.40297 -1.85855 0.36818 1.20778 -0.05550 -0.39432 +0.50000 1.00000 0.08286 0.16583 -2.85797 -2.13444 0.19610 0.58546 0.24302 0.27340 -0.89831 0.50451 0.30632 +0.50000 1.00000 0.46690 -0.74182 0.24749 -0.19593 -1.68545 0.09314 0.85276 1.80962 0.64536 -0.25289 0.85565 +2.50000 1.00000 1.24275 -0.95310 -1.19651 2.04548 0.13033 -0.24891 -0.50271 1.07562 -1.33959 -1.54481 -0.14229 +0.60000 0.00000 0.00162 -0.48540 1.27942 0.39851 -1.29531 -1.78363 -1.25128 1.19022 0.19736 0.40237 0.00464 +0.50000 0.00000 0.47978 1.14906 2.35086 -0.01336 0.24353 -0.85233 2.19241 1.87584 0.74348 -0.15398 -1.35875 +1.60000 0.00000 0.83540 0.41346 0.57446 0.60020 0.73843 1.13872 -1.14596 -1.81776 1.08234 1.23742 -0.00912 +1.00000 1.00000 0.39238 0.78714 -1.15406 -0.01149 -0.89360 -0.31185 0.23603 -0.14287 -1.20509 -0.63626 0.23496 +0.40000 1.00000 0.22932 1.19201 -1.79624 -1.20914 0.90484 -0.52639 -0.03425 0.93120 0.36421 0.17059 -0.40441 +1.90000 0.00000 0.33455 1.08918 -0.33909 1.47293 0.54585 -0.06239 0.05630 -0.22977 0.53350 -0.55551 0.66178 +1.60000 0.00000 0.37621 0.78190 0.97165 0.73326 -0.92309 1.37658 -0.38202 1.46972 -2.25818 0.24831 -1.02949 +1.40000 1.00000 0.91462 -0.60409 0.93696 -0.04410 0.84150 -0.44904 0.45368 1.16737 -1.78301 -0.77877 1.24704 +0.70000 0.00000 0.29242 0.16529 -0.06630 -1.67002 0.38315 1.13243 -0.44820 0.14350 0.80552 1.53047 -0.41404 +1.20000 0.00000 0.52353 1.37875 0.29189 0.98684 0.99558 -1.57262 -2.12467 -0.56055 -0.59049 0.45497 -0.19754 +0.40000 0.00000 0.22202 -0.10178 0.20615 0.84635 -1.99647 0.57385 0.37942 0.88262 -0.46804 0.60924 -0.29997 +1.10000 0.00000 0.41794 2.17689 0.82653 -1.03350 -0.88846 -1.14905 -0.86329 0.38111 -0.44506 2.00224 0.43542 +0.80000 1.00000 0.39364 -0.32210 1.28561 0.34433 -1.50234 -1.26956 0.65338 -1.29827 -0.48401 1.60299 -0.74341 +4.00000 1.00000 0.98969 -0.34101 -0.60080 0.06915 0.51836 1.21091 0.47849 -1.10326 -1.05685 -1.03143 0.18055 +1.00000 0.00000 0.90590 0.25514 1.65554 0.16209 -0.13374 -1.03363 -2.01831 -0.67901 -0.85368 -1.81320 -0.28722 +0.40000 0.00000 0.21081 -0.54098 0.10138 -0.22070 -0.08606 -0.42218 1.03756 -0.27246 -0.36876 -0.78952 -1.08489 +0.20000 0.00000 0.13828 -0.96117 0.47433 0.24447 -0.70030 0.11369 1.16737 -0.80770 1.49076 -0.12406 -1.59043 +0.80000 1.00000 0.12202 0.74596 -0.24531 0.54572 -0.10665 0.07680 0.26508 -1.06567 1.04586 0.31198 -1.41367 +0.30000 1.00000 0.25208 -0.07404 -0.44578 0.42996 -0.28075 0.77125 0.34017 -0.53095 1.50089 -0.81629 0.61118 +1.80000 1.00000 0.28969 0.99552 -0.21105 -0.80714 -0.30339 0.42895 0.93787 -0.62111 0.71874 0.17927 -1.17789 +0.20000 1.00000 0.09551 -1.31459 0.84464 -0.66937 0.44394 -2.13913 -1.29136 -0.05275 0.23158 -1.04863 0.20961 +0.30000 0.00000 0.07967 -1.19840 -0.35907 0.41803 -1.07588 -0.34742 0.37793 0.21856 -0.09171 -1.64007 0.83137 +1.30000 1.00000 0.13362 0.46965 -1.45436 0.27316 0.01224 0.07646 -0.61689 -1.31178 2.37356 -0.72240 -1.84551 +0.90000 0.00000 0.22978 1.07550 0.03460 0.48814 1.29976 -1.51491 -3.38835 0.92320 0.46141 0.99877 -1.22213 +0.50000 0.00000 0.05036 -1.58118 -1.57934 0.26098 1.10015 -0.19725 -0.62294 0.52212 0.33005 -1.67839 -0.95211 +2.20000 0.00000 0.91167 0.69526 1.50346 -0.70735 -0.11493 0.63969 -0.01937 1.25464 0.47468 -0.74265 0.20561 +0.90000 1.00000 0.42427 0.75899 -0.65319 -0.04288 1.46623 0.48924 0.71334 0.22965 1.07418 -0.30665 -0.84372 +0.30000 1.00000 0.06147 -1.56923 0.94396 -0.12646 -0.43048 1.56284 2.09311 -1.03756 0.99414 1.49938 1.03866 +1.70000 1.00000 0.25100 0.14047 -0.74003 -1.45033 -0.26153 -1.50387 1.29943 -0.86091 -0.36554 -1.29513 1.52962 +4.40000 0.00000 0.32942 1.32746 1.00420 -0.71990 1.20009 0.87834 -1.71544 -0.68379 -0.11221 0.48723 -0.63348 +0.70000 1.00000 0.13560 0.64594 0.61537 1.94771 0.11091 -0.68565 0.55190 -0.39501 -0.17320 0.90919 -2.08481 +1.70000 0.00000 0.04717 -1.09383 1.18015 -0.73934 -0.09232 0.29285 -0.98540 -0.35405 0.44810 0.07289 -0.62932 +1.10000 0.00000 0.23078 0.85090 0.63335 -0.03785 -0.55746 0.45344 0.09699 -1.29180 1.23401 -0.60007 -1.02535 +0.80000 0.00000 0.12034 2.21850 0.87388 0.19292 0.61909 -0.89292 -0.87292 1.29240 -0.11491 0.66028 1.64331 +1.20000 0.00000 0.95202 -1.81890 1.58176 -0.19033 0.46804 0.05786 -0.90988 -1.14080 -0.09807 -0.24006 0.41607 +0.70000 0.00000 0.31940 0.46317 0.10655 -0.67408 1.81905 1.26492 1.18509 -0.39472 -0.30847 -1.17871 -0.18878 +2.60000 1.00000 2.02613 0.40194 1.55680 1.95927 -1.31427 -0.93531 2.20151 0.80673 0.26105 0.82798 1.12152 +1.00000 1.00000 0.61576 0.10650 -0.42225 -1.35763 -0.00213 -0.76918 -0.29396 -1.86067 0.93234 -1.19190 0.11639 +0.80000 1.00000 0.74511 -0.30872 -0.97375 -1.78367 1.28642 0.69567 -1.92366 0.34152 -0.47503 1.04171 -0.89989 +4.90000 1.00000 0.28029 1.48855 0.35614 0.60478 0.00684 -1.02979 -1.90796 -0.17927 0.65485 -2.30098 -0.41594 +0.10000 0.00000 0.08143 -0.16006 1.80277 0.45806 1.38994 0.50297 1.55319 1.34315 1.13998 -0.48779 1.04333 +0.10000 0.00000 0.06023 0.54413 -0.70422 0.47188 0.64782 0.09877 -0.51145 1.28702 0.91665 -1.39462 -1.20926 +0.20000 1.00000 0.10526 -0.28955 0.42217 -1.14242 -0.70005 -0.93001 -0.56345 1.32146 -0.48733 -0.93196 0.09941 +0.60000 1.00000 0.43489 -2.02256 0.66920 -1.56842 0.89555 -0.66555 -2.70800 -0.17851 -1.39412 -1.77624 0.82096 +1.80000 0.00000 1.03480 1.85153 -1.12742 -0.07151 -1.23791 -1.00928 -1.59943 -1.60286 -0.57055 -0.62804 -0.64059 +0.80000 1.00000 0.23901 -1.24141 0.77820 1.35702 -0.89363 -0.37167 -0.09871 -1.10999 0.04325 1.32833 -0.12358 +0.30000 1.00000 0.23840 1.34375 -0.24944 -0.56804 -0.01729 -0.01459 -0.91655 0.51111 -0.55985 0.15389 0.55761 +0.20000 0.00000 0.14030 0.99975 -0.05193 1.17802 1.45690 0.21105 0.45639 1.54164 0.40413 -0.12875 0.99402 +0.90000 0.00000 0.23075 -0.55732 0.21688 1.74393 -0.73664 0.76383 0.84067 -0.21642 -0.37900 -0.28392 0.21249 +0.20000 1.00000 0.15962 -1.85125 -0.04542 -0.53680 -0.93261 0.43582 0.84837 -0.71793 0.66285 -0.09343 2.00718 +1.40000 0.00000 0.18759 0.07323 0.03251 -0.01383 -1.29285 -0.04571 -0.64333 -1.67534 0.01019 0.20085 -1.83775 +0.90000 0.00000 0.16803 -0.93816 0.78426 1.89771 0.94930 2.38794 -1.73227 0.29806 0.55420 -0.16552 -0.15369 +1.30000 0.00000 0.03552 1.59796 1.92038 0.37003 -0.17195 0.21306 -0.69622 1.03631 -0.20924 -0.88397 -0.34574 +0.90000 0.00000 0.43642 -0.50980 -0.75899 0.08118 -0.83118 -0.38488 -1.13018 0.15689 2.32973 -1.04900 -1.60287 +0.50000 1.00000 0.12780 -0.23931 1.38449 -0.94944 -2.06116 2.14355 0.06903 -0.28626 1.13890 0.25855 0.30637 +1.10000 0.00000 0.75563 1.50119 -0.32184 -0.72249 -0.43277 -1.34307 -0.67825 -0.28042 -0.37069 0.55922 -1.01260 +1.50000 0.00000 0.28788 0.92739 -2.51551 0.19490 1.74565 0.50182 1.37850 1.45755 0.45444 -1.21652 -0.64401 +1.10000 0.00000 0.40413 -1.28265 0.74659 0.19949 0.68555 0.05472 -1.03002 -1.38263 -1.27682 -0.20981 -0.76057 +1.20000 1.00000 0.21942 -0.75840 -1.17412 -0.43697 -0.45779 -0.63898 0.18897 -0.22358 -0.70419 -2.81118 -1.47082 +1.60000 0.00000 0.37203 -1.16151 -0.05004 1.84744 1.13460 -0.89025 -0.66386 1.12333 -1.26422 1.26459 -1.32946 +1.00000 0.00000 0.01331 -0.02732 0.38790 0.75666 0.07481 1.23249 -0.70972 -0.79522 0.09631 0.86061 1.74791 +0.70000 1.00000 0.54781 -1.00074 0.56679 1.27043 -1.56489 -0.07539 0.31941 -0.50400 -0.92011 0.89521 0.36677 +5.70000 0.00000 0.17479 0.73355 1.99711 1.52267 0.47643 0.93417 -0.10097 -0.51725 0.08378 0.45305 1.37353 +0.40000 1.00000 0.21160 0.61651 -0.24566 1.48645 1.68523 -1.04572 -0.67812 0.41917 -0.22586 -1.10162 1.73258 +0.20000 1.00000 0.02043 -0.17701 0.10301 -1.81734 1.35039 1.36324 -0.09084 -1.67290 0.81477 -0.55956 0.27979 +0.60000 1.00000 0.32950 0.62082 -0.29587 1.52326 -0.63835 0.23712 1.88248 -1.19362 -0.20318 2.13993 -0.81971 +0.60000 1.00000 0.59405 0.10532 0.16113 -1.69580 -0.28350 0.04813 0.31768 0.72608 -0.41136 0.28512 -1.28940 +0.80000 1.00000 0.72170 1.12852 -0.54076 0.13377 -0.00002 0.21215 -1.03546 -0.98618 0.82347 -0.87487 0.63823 +0.30000 1.00000 0.21974 -0.46481 0.53126 0.63008 -1.38003 -0.12139 0.02774 0.51898 -0.87177 -0.54949 -0.66415 +0.10000 1.00000 0.03627 0.10696 -0.10916 -0.11752 -0.19361 -2.30936 0.93317 2.30560 0.51606 0.16634 -0.24312 +0.50000 1.00000 0.32980 1.48661 -0.41317 -0.68008 -0.48764 -1.25027 0.19341 0.56844 1.24405 1.15429 -0.42824 +3.70000 0.00000 0.87372 1.46699 0.04080 -1.98177 -1.27554 0.92360 -0.06995 0.90832 0.93749 -0.62304 -1.12554 +2.10000 1.00000 0.65144 0.85992 -1.58531 0.59607 0.17593 0.75380 0.65549 -1.35173 -1.07133 0.94978 0.12576 +2.10000 0.00000 1.00839 -0.25454 0.79924 0.99825 0.03913 -0.09137 1.83063 0.39298 0.83791 0.56232 -1.48450 +0.50000 1.00000 0.47359 1.16566 0.15896 0.59877 -0.09344 1.79744 -1.46058 0.10507 0.45421 0.73610 -1.12193 +0.50000 0.00000 0.49862 -0.07859 0.04995 -1.19991 0.05940 -0.56189 -2.59258 1.14964 -0.36495 -0.50058 -0.11424 +0.70000 1.00000 0.09345 -0.39477 -0.88444 1.69547 0.68842 1.08626 -1.81339 1.48853 -0.32830 1.70522 1.21578 +3.90000 1.00000 0.86515 -1.28025 0.74331 1.05605 1.54133 -0.16083 -0.19642 0.35864 -0.92935 0.46940 -1.23331 +0.90000 0.00000 0.22654 -0.53445 -0.55605 0.75336 1.59294 -0.56531 0.03211 1.19862 0.50034 -0.27439 -2.03137 +0.80000 1.00000 0.11289 2.24248 1.01551 0.61030 -1.66862 -0.44135 0.61392 -0.64875 0.31684 0.06808 0.59169 +2.20000 0.00000 1.63197 1.80260 0.12117 0.32906 1.05693 1.08977 -0.89854 0.17989 -0.52642 0.28903 -2.10019 +0.10000 1.00000 0.07958 0.14124 -0.37730 -0.08567 0.40804 -0.97142 1.97877 0.07369 0.36860 1.22828 0.74648 +0.30000 1.00000 0.18611 -0.45742 -0.62346 0.36518 -1.00243 -0.82447 -1.73522 -1.01194 2.37621 0.12238 -0.41794 +2.20000 1.00000 1.86528 1.20598 -1.67361 -0.63502 -0.04673 1.06959 -0.96733 2.48369 -0.78705 1.48157 0.06055 +2.70000 0.00000 0.32739 0.85542 1.68069 0.46884 -0.04073 -0.59390 0.93872 -0.65883 -1.16570 1.24874 0.02661 +0.90000 1.00000 0.10827 0.49375 -0.42316 1.70334 -0.73416 2.47727 1.08682 -0.76817 0.52934 0.59419 -0.58636 +0.90000 1.00000 0.58011 -0.60713 -0.91069 -0.18273 0.90948 -0.74909 0.33793 2.58095 -0.05754 0.34740 -0.02709 +0.50000 1.00000 0.05322 -0.59499 -0.33158 -0.59713 -1.01310 -0.91348 -1.39350 0.07692 -0.31203 0.04014 -0.65429 +0.30000 0.00000 0.01477 0.86265 0.22204 2.44598 -0.59831 0.02872 0.09730 0.42172 -0.27818 0.11802 -0.35531 +0.60000 1.00000 0.23562 -0.43756 1.03867 -2.35477 1.53327 -0.57975 -2.48328 -0.15243 1.08291 -0.21340 -0.23200 +4.80000 1.00000 0.67291 -0.88203 -0.04331 0.17298 0.42506 -0.98443 -0.55397 -0.28812 -1.72079 -1.13271 -0.27584 +0.30000 1.00000 0.17872 0.61501 -0.68078 -0.50359 1.72862 -0.73695 0.36016 0.43417 -0.49428 -0.10900 -0.44635 +0.40000 1.00000 0.31170 -0.44336 -0.99192 -0.99666 0.31303 -1.79875 -0.55953 -2.30569 0.34854 0.08952 -0.24276 +0.40000 1.00000 0.17193 0.82517 -0.92750 -1.11038 -0.59477 -1.29416 -0.80740 -1.45587 0.73713 -0.31276 1.07457 +1.70000 1.00000 0.68398 0.28116 -0.33579 1.07031 2.21737 -0.27141 -0.53932 -1.40951 -0.92972 -0.11138 1.15320 +2.10000 1.00000 0.53537 -0.19536 0.47714 0.73975 -1.09204 1.99957 -1.72756 -0.45745 0.09324 0.51840 -0.15870 +0.70000 1.00000 0.20747 -0.22053 0.00417 -0.03029 0.42284 -0.63973 1.13266 0.74801 -0.95373 0.36880 -1.23482 +2.40000 0.00000 1.57000 -0.35167 0.93193 0.42088 -0.12565 0.30050 0.01785 1.19016 -1.17470 -1.71630 -1.52489 +1.70000 0.00000 0.26177 1.01207 -0.41957 0.55212 -0.44343 -0.28443 0.60075 -0.74438 -0.89561 -0.89939 0.18041 +2.40000 1.00000 0.03914 1.03153 1.63621 -0.46048 0.32643 0.67911 -0.53416 0.05107 0.67035 -2.02956 0.64725 +1.10000 1.00000 0.41391 1.53289 -0.87778 0.88939 0.65378 -0.11537 -0.41568 1.47918 1.43829 -0.25270 -0.37493 +2.10000 0.00000 1.20542 1.44965 0.16307 -0.55702 -0.80174 0.37224 1.74704 -2.80421 -0.85479 -1.04441 -0.12139 +1.50000 0.00000 0.04073 0.36347 -0.99554 1.36407 -0.63996 1.57678 -0.70050 -0.63798 1.61152 -0.04144 -1.78628 +1.50000 1.00000 0.07895 0.87569 -0.97214 0.43700 -1.11184 0.32807 0.13955 0.06214 -0.60754 0.02259 0.56787 +0.80000 1.00000 0.49552 0.24684 -0.33917 -1.40700 0.57236 -2.13329 -0.98918 0.65916 -0.95663 0.03205 -0.33995 +1.10000 0.00000 0.33277 0.13422 0.17577 0.52540 0.28590 1.07500 -1.15694 -1.66829 0.86665 0.52114 1.28400 +0.20000 0.00000 0.16933 0.40220 -0.12806 -0.70163 0.86882 -1.09273 1.00014 -0.74990 -1.69688 -0.08532 -0.25705 +1.20000 0.00000 0.18725 -0.24551 -0.96170 2.11808 -0.03013 -2.39450 0.57524 -0.95487 0.86499 -1.29233 -1.33661 +1.90000 0.00000 1.07126 1.46224 0.18352 0.19289 0.67124 0.59506 0.89740 0.42262 0.39347 0.26726 -0.84469 +1.20000 0.00000 0.03853 -1.18383 1.00977 1.25894 1.09686 0.09537 0.01072 -1.69382 0.12876 0.16454 -0.07121 +0.40000 1.00000 0.10874 -0.44626 0.55825 -0.20959 0.07237 -0.48590 1.35491 -0.11871 -0.91629 -1.91648 -0.01617 +2.40000 0.00000 0.65451 -0.41811 1.23991 0.80317 -1.72656 -0.75188 0.22846 -2.76000 0.21883 0.30609 -0.71004 +1.90000 0.00000 0.36445 1.09849 0.86648 -2.27000 0.83664 0.13566 -0.30661 0.80931 -1.36031 -0.95670 -1.22885 +0.50000 0.00000 0.27376 2.23004 -1.34218 0.89134 -2.30803 0.73813 -1.80321 1.21080 0.04564 -0.48114 0.22543 +0.30000 1.00000 0.15153 -2.19356 -2.54535 -0.96200 1.53858 -1.08335 0.08557 1.50827 -1.13390 0.33737 0.14873 +0.20000 1.00000 0.06617 -1.09420 -0.94415 -0.58588 0.14827 0.38087 0.60386 0.70341 -1.81700 -1.01998 1.12336 +0.60000 0.00000 0.06558 1.12175 -0.42030 0.16432 1.11880 -1.28898 0.20167 1.81520 -1.05842 1.50318 -0.10664 +1.40000 0.00000 0.94676 2.25130 0.43535 0.14418 -1.33228 1.13367 -1.08020 -0.76528 0.65407 -0.48857 -0.01616 +3.70000 1.00000 0.12341 0.31102 -0.30005 0.54925 0.63588 2.44468 0.38627 -0.68532 -1.58330 0.21285 0.20661 +0.80000 1.00000 0.41718 1.18494 -1.04816 -0.35613 -0.98367 -0.80906 -0.13466 -0.29851 -1.20683 0.22618 -0.99673 +1.40000 0.00000 1.12940 0.51256 0.03637 -1.05598 -0.19409 0.13901 -0.09394 -0.58276 -0.37034 -1.43626 -0.22038 +0.80000 0.00000 0.17661 -0.35823 1.12279 0.54062 -0.37908 0.43796 1.88409 0.87159 -1.53774 -0.58701 0.17612 +0.40000 1.00000 0.32364 -1.55422 -0.52888 -0.41171 -0.02872 -0.75996 -0.96537 0.02664 0.89427 -1.64074 0.35076 +0.10000 1.00000 0.07394 -1.14953 -1.39878 0.29904 -0.28637 2.03077 -1.20060 -0.40652 0.42426 2.03106 1.04767 +2.10000 0.00000 0.71494 1.38469 -0.53472 -0.28086 1.10924 0.55351 -0.10735 0.60026 1.48467 0.62147 -0.42718 +0.70000 0.00000 0.04617 1.23221 -1.47506 1.78576 -0.62496 -2.44383 -0.15617 -0.31353 -0.47320 -0.64379 0.54025 +0.20000 1.00000 0.00206 1.08177 -1.81266 -0.35495 -2.06183 -0.71884 -0.81877 -0.04296 1.62336 0.26940 0.56563 +0.80000 0.00000 0.68144 -0.09062 0.64012 -1.10933 -0.44471 -0.01047 1.50858 0.77464 0.43128 1.02136 -1.04490 +5.80000 0.00000 0.32270 0.41564 0.48583 1.53229 -0.14453 0.79127 0.51677 0.44542 1.07739 0.49386 -1.86053 +0.40000 0.00000 0.07549 2.80056 -1.45334 0.32731 -0.04726 -0.05765 0.06189 -0.94388 -0.51737 -1.55469 -0.44877 +0.20000 0.00000 0.07532 0.21667 -1.03413 -1.40343 -0.29505 -0.56902 -1.67019 1.17539 0.99848 -0.17842 0.64715 +0.50000 1.00000 0.05922 -0.38058 -1.31194 -0.99337 -0.78289 -2.19341 -1.31962 0.52798 0.68495 -0.21941 -0.52588 +0.50000 0.00000 0.21852 -0.21339 0.06829 -0.00152 -0.93912 -0.82441 -0.07435 -1.41201 -0.76817 0.01350 0.59662 +0.60000 1.00000 0.38595 -1.23089 0.28683 -0.66435 0.03714 -1.93628 0.28199 -0.36962 1.81032 0.32928 -2.41782 +1.00000 0.00000 0.23388 -1.65206 -0.61723 1.23580 -1.13274 0.77908 -2.36623 0.40758 -1.84937 -0.93060 -0.95877 +0.20000 0.00000 0.03253 -0.40081 1.80288 -1.03773 0.85240 -1.82446 0.83685 0.87222 -0.39537 0.37686 -1.21573 +2.30000 0.00000 2.05201 1.16512 0.17308 -0.62645 0.54655 0.51306 0.90289 0.41922 -0.89491 -0.89449 0.54630 +0.90000 0.00000 0.83598 0.02331 -0.96590 -0.60233 0.35231 0.50245 -0.65413 0.44017 -0.64069 -1.15854 -0.49249 +0.40000 1.00000 0.20182 -1.64921 1.41137 -0.63390 0.43078 1.77593 -0.38077 2.10146 0.10942 0.28366 -0.57969 +1.00000 0.00000 0.22000 1.28481 0.40218 -0.90789 0.76401 0.02910 0.17544 -0.86043 0.85809 -1.53269 -0.21283 +1.80000 1.00000 0.57194 0.44108 0.08943 -1.52614 -0.23500 -0.16196 1.33640 0.10901 1.02591 -1.28369 -2.13188 +1.60000 1.00000 0.57034 0.24376 -2.44576 1.39598 -0.31153 -0.54565 -0.63443 -0.52934 -1.00695 -1.71959 1.67253 +1.10000 0.00000 0.16439 0.53365 1.85816 2.61257 -0.71256 -0.10015 -0.25522 -1.14096 0.95431 -0.27313 -0.32774 +1.90000 1.00000 0.25833 0.54972 -0.25177 0.80498 1.96717 -0.33583 -0.07693 0.72877 0.55932 -1.16172 0.56328 +0.30000 0.00000 0.08403 1.13342 -0.57102 -1.70452 0.34426 0.00452 -1.40954 -0.90529 -0.95512 -0.16733 -0.45835 +0.40000 1.00000 0.22190 -0.09425 -1.61942 -0.36232 2.52153 0.88543 -0.66843 -0.34850 0.71391 -1.22528 -0.63310 +0.90000 1.00000 0.42896 0.32281 -0.19639 0.55136 0.73327 -0.87264 1.64567 0.91923 1.04170 0.67805 -0.61395 +1.90000 0.00000 0.62910 0.04820 -0.49203 1.02719 0.60491 -1.25815 -0.50067 1.64732 0.56836 -0.96640 -0.17413 +3.70000 0.00000 2.66805 0.82634 -0.43824 -0.08855 -0.73464 -0.09992 0.34788 -1.40367 -1.43515 -1.38529 -0.30729 +0.10000 1.00000 0.03481 -0.07561 -1.83070 1.25293 0.45883 -0.06482 0.09322 -2.07891 -0.40375 -0.22638 -0.24268 +0.70000 0.00000 0.56132 1.74074 -0.15071 -0.06818 -0.03488 0.29643 -0.22057 0.39892 -0.22377 -0.70877 1.13479 +1.00000 1.00000 0.35173 0.31751 0.66901 0.63512 -0.37051 -0.77672 1.38677 0.20859 0.93649 -0.77403 0.40785 +0.70000 1.00000 0.02903 0.48272 -0.19649 -0.10484 -0.84885 -0.68320 0.16949 0.99725 2.07219 -0.76412 0.38308 +6.90000 0.00000 2.05765 1.77051 1.64156 -0.66705 0.62574 -0.05006 -0.12170 0.10344 -0.22481 -0.83492 -0.50257 +0.40000 0.00000 0.39963 0.08896 0.26161 0.26925 0.83716 -0.51487 -1.80671 1.56913 -0.78675 -0.27808 0.03882 +1.30000 0.00000 0.02321 -0.85238 0.57656 -0.78599 0.68559 -0.04328 -1.00745 0.35610 -1.48258 0.30985 0.76111 +0.40000 1.00000 0.24725 0.37168 -2.15214 -0.65334 -0.41948 -0.50027 -0.17345 0.05945 0.19980 -1.62444 0.78081 +0.90000 0.00000 0.41126 0.61922 0.18070 1.60227 0.12809 -0.30277 0.46697 -0.03840 -1.12206 -0.61790 0.45472 +2.70000 0.00000 0.59297 0.72466 0.79118 -0.02878 -0.53273 0.50035 1.50142 1.87727 -1.56864 -0.68589 -0.12948 +0.50000 0.00000 0.48060 0.59352 1.28996 0.43051 -0.95508 -0.81664 -0.40186 -0.91919 -1.98139 -0.02853 1.11251 +1.00000 0.00000 0.10518 0.00348 -1.30987 1.89774 -0.48026 -0.12411 -0.65379 1.39309 -1.41802 -0.09597 0.09597 +0.80000 1.00000 0.01380 0.45225 0.68287 -0.65574 -0.05592 -0.49306 -0.34570 0.28499 0.16821 -0.23044 0.14692 +0.70000 0.00000 0.25547 0.17036 -0.14907 1.52965 -0.91934 -0.62990 -1.51660 -0.90994 -2.03134 0.19034 -1.78174 +1.00000 1.00000 0.09832 -1.34059 -1.73870 -0.95639 0.31102 -0.24022 0.30512 1.20462 -0.43213 -1.30772 -2.19178 +1.20000 1.00000 0.93013 0.16479 1.23841 -1.05485 -0.12505 -0.42433 -0.58223 -0.20306 -1.25894 -0.86690 1.26797 +0.10000 0.00000 0.02811 -0.72640 -0.44930 -0.13619 0.41697 -1.07859 -0.15207 0.18343 -0.58322 1.63725 -0.30048 +0.40000 1.00000 0.37679 -1.48809 0.44095 0.69790 -0.03311 -0.80729 0.32186 0.78259 1.19228 0.64678 -0.59028 +2.30000 1.00000 0.95286 -0.34300 -0.12970 0.54603 1.12220 -0.09620 -1.43118 -0.14911 -1.36907 -0.05830 0.25349 +0.50000 0.00000 0.18850 0.41541 0.36569 0.15719 0.58539 -1.63958 -1.42673 -2.04507 0.01967 -0.19259 -1.54577 +2.80000 0.00000 0.16484 0.72871 0.34656 1.11026 -0.57146 0.50715 1.03719 -1.73474 -1.00243 -0.47391 -1.16183 +0.80000 1.00000 0.05516 0.43215 -0.38307 -0.89107 2.05207 -0.96846 0.60704 -0.69510 -0.30634 0.48421 0.55069 +0.70000 0.00000 0.04196 -0.94070 0.26658 0.06283 -0.89150 0.73424 -0.71597 -0.03316 0.90407 -0.74291 -0.10387 +0.30000 0.00000 0.02526 -1.88104 -0.54499 0.51409 0.76309 -1.26739 -1.27656 0.38090 2.30997 -1.56779 0.38499 +2.00000 1.00000 1.42086 1.69366 0.60970 0.65668 0.42025 0.44793 0.08176 0.09890 -0.74491 0.08637 -0.26459 +0.20000 1.00000 0.01646 0.54417 -1.18107 -0.11736 1.25260 -0.57163 0.24478 0.19555 0.47464 0.38556 -0.56131 +0.40000 1.00000 0.01788 -0.54396 0.99550 0.15129 -1.98108 0.19569 0.87967 -0.81904 0.49607 -1.68436 0.25583 +0.30000 0.00000 0.26090 0.46935 -0.12527 0.25897 1.20006 -1.01176 -0.73698 0.53682 1.80467 1.88398 -0.21920 +1.00000 0.00000 0.07437 0.29691 -2.21821 1.58935 0.49129 -1.55523 0.94391 -0.87066 -1.69857 -1.27298 -0.21739 +0.60000 0.00000 0.14153 -0.52508 0.24718 -0.26255 -0.24005 0.66611 -0.56057 -1.10360 -0.69412 0.49301 0.41016 +0.40000 1.00000 0.28327 -0.85401 1.63169 -1.85734 1.09824 -0.41539 -1.01297 1.24930 1.43923 -0.83920 1.23870 +3.50000 1.00000 2.33931 1.44942 2.42095 -0.47056 1.35769 1.08568 0.63397 -0.30748 -0.12715 -0.12138 -0.43130 +2.70000 0.00000 0.16600 -0.18254 -0.44716 1.36369 0.12310 0.31605 -1.20419 0.22518 1.22665 -0.43415 -0.15076 +1.70000 1.00000 1.43905 -0.66003 0.95685 0.00375 -1.21575 -0.39235 -1.28859 -1.92402 0.13024 0.24241 -0.03824 +1.70000 0.00000 1.00972 -1.36926 0.86057 0.48973 0.70464 0.36699 1.04862 1.23136 0.21101 -0.15410 -0.67379 +1.30000 0.00000 0.50838 0.77836 1.22672 0.18861 -1.35590 -0.04444 0.11107 0.40550 -0.97661 1.07828 -0.56986 +0.80000 0.00000 0.68738 0.04790 0.40761 2.93053 -0.96658 -1.38616 0.48720 -1.45193 -0.11932 -1.00957 -1.01673 +0.60000 0.00000 0.16785 0.26589 0.12371 1.36876 -1.53509 0.02664 2.06755 -1.22545 -1.47297 0.25831 -1.96463 +1.60000 1.00000 1.55677 0.15822 1.47939 -0.02624 2.60823 -0.42890 1.52405 -0.25443 0.31378 0.51453 -0.12513 +0.90000 0.00000 0.89835 -0.00638 0.94289 0.90174 -0.11677 1.37234 2.02133 0.25161 1.34556 -0.36154 -0.02693 +1.30000 0.00000 0.20036 0.05850 -1.37430 -0.00924 0.50919 -0.62175 -1.31851 0.98157 -0.36944 0.30836 -2.05655 +0.20000 1.00000 0.15830 0.52077 -0.76226 0.06250 -1.42947 0.04442 -0.71318 -0.41345 -0.63171 -0.52106 1.00764 +1.60000 1.00000 0.92828 3.43266 -1.78041 0.95398 -2.29790 1.05817 -1.43815 0.17761 -0.91204 0.93735 0.32850 +0.30000 1.00000 0.19585 0.95883 -0.27161 0.34968 -0.18339 0.42548 1.97350 -0.24787 2.90609 0.46719 -0.12381 +1.70000 1.00000 1.07216 0.64389 1.32153 0.92544 1.75558 -0.66276 -0.52792 0.89209 1.92732 1.55212 -1.27856 +1.80000 0.00000 0.11159 -1.53425 1.03426 0.29138 -0.91037 0.46910 0.24600 -0.33380 0.10005 -0.39408 0.40570 +0.90000 1.00000 0.76010 -0.93580 0.52551 0.75454 1.14698 0.65245 1.38544 1.12787 -0.21268 -1.64047 0.58280 +0.30000 1.00000 0.29895 -0.89502 0.40432 -0.01814 -0.14658 -1.77706 0.96012 0.22782 0.60553 0.09374 -0.83817 +1.10000 1.00000 0.42903 0.40037 -1.22516 -0.68064 0.22440 -2.07222 -0.04450 -1.66052 -0.91537 -1.56174 0.57543 +0.60000 1.00000 0.21839 -0.26857 -1.70573 -0.29314 -0.34415 1.63297 -0.14998 1.62284 -1.69297 0.29935 0.51695 +0.70000 1.00000 0.67791 0.48663 0.71656 0.65043 -2.43240 0.58044 1.11211 -0.19832 0.04466 -0.24830 -2.28604 +1.10000 1.00000 0.33948 -0.12745 1.06751 -0.14538 0.75739 -1.40257 0.94975 0.75182 -0.02117 1.07705 -0.43360 +0.70000 1.00000 0.08545 0.62676 -1.35587 -0.75281 -0.55308 -1.25802 0.05534 0.33929 -0.05877 -0.48829 -0.15937 +1.70000 0.00000 1.31654 0.38138 -0.25870 1.14618 2.27287 0.61200 -0.20984 -0.24846 1.29306 -0.56570 -1.08178 +4.60000 1.00000 1.01095 1.47506 0.32877 -0.68843 -1.48897 1.51873 0.48145 -0.30082 -1.53764 -0.41030 -0.56624 +1.00000 1.00000 0.82812 -0.58075 0.43680 -0.32222 -0.94518 -0.18369 0.97411 -1.31919 -0.45696 0.46761 -0.27152 +1.80000 0.00000 0.36609 0.92824 1.45591 0.82342 0.77638 -1.25766 0.98224 1.37800 1.23688 -1.37766 1.23526 +0.90000 1.00000 0.05731 -0.52391 0.28196 0.88839 0.46174 -1.38867 0.84550 0.43263 -0.78803 0.05322 -0.41731 +1.60000 1.00000 0.95104 0.53364 -0.53611 -0.17996 1.23878 2.86410 0.59127 0.96286 -0.67908 -1.10877 -0.53738 +0.60000 1.00000 0.38144 1.68540 0.58189 0.49360 -0.21825 -2.09119 0.40632 1.18136 0.77291 -1.72505 -0.78049 +2.10000 0.00000 0.26197 -0.43426 1.57138 -0.70508 -0.31382 -0.00951 -0.28937 0.05061 1.04911 0.62059 -1.02716 +0.70000 1.00000 0.26666 0.47836 0.08874 0.13933 -1.86515 -0.75740 -0.89016 -2.32697 -1.09100 0.52054 -1.07146 +0.70000 0.00000 0.22074 -0.48387 1.24844 0.57613 1.61883 1.75901 -0.92243 0.86430 0.84984 0.76414 -0.86204 +0.20000 1.00000 0.16826 -0.72750 -0.17476 -0.76131 -1.99981 1.26721 0.97099 0.69639 0.78445 -0.74850 -0.57787 +0.60000 1.00000 0.00208 -0.51594 -0.22009 0.15811 0.02105 0.84330 -0.22446 0.02598 -0.34638 -1.19548 -0.42797 +0.70000 0.00000 0.48542 -0.49069 -1.08668 -0.13941 -0.63629 1.63194 -0.60619 1.36588 1.19720 -0.85615 -2.02566 +1.30000 0.00000 1.18130 0.28652 0.95695 -0.09513 -0.30799 -1.15667 0.30243 1.20563 -0.84300 -0.48094 0.64698 +2.40000 1.00000 1.89560 -0.14493 -0.47784 0.97072 -0.87092 -0.65465 -0.07002 1.09525 1.16881 -0.42816 -1.56605 +1.60000 0.00000 0.61663 0.37137 0.10172 0.47737 0.64477 -0.60606 1.62453 0.64499 0.07966 -0.71373 -0.78559 +1.60000 0.00000 0.06246 -0.64573 0.95735 -0.34110 -0.38933 -0.23741 0.66256 0.20712 -0.63340 -1.28451 -0.89317 +0.40000 1.00000 0.07548 2.13850 -0.16716 0.29517 -0.82024 0.58975 0.72463 0.98633 -1.40183 -1.01691 0.83885 +0.40000 1.00000 0.22290 -1.07820 0.16619 0.30106 0.58756 -0.00946 -0.25374 0.61494 0.96188 -0.21015 -1.01512 +1.00000 1.00000 0.11988 1.32866 -0.31154 -0.14628 1.35274 -1.69925 0.36450 -1.28640 1.70753 -0.43827 -0.84857 +1.00000 0.00000 0.82230 -0.00525 -0.59603 1.10529 0.35865 0.09282 -0.54210 -1.52601 -0.56887 0.75602 1.06802 +1.20000 0.00000 0.19749 -0.86366 -0.60359 0.60335 0.74150 -1.87382 -0.88854 -1.50609 -0.10027 0.65258 -0.15011 +1.60000 0.00000 0.65392 -1.24112 0.52339 -0.20218 1.38899 0.85791 -0.48913 -0.91569 0.63295 1.49983 -0.41072 +0.80000 0.00000 0.12617 0.25105 0.57228 -1.25993 -0.88933 1.11483 0.29404 0.27086 -0.70266 0.12863 -1.06588 +0.70000 1.00000 0.25627 0.23046 -0.59120 0.60547 -0.23231 -0.26049 0.44911 -0.79771 0.91017 1.69604 0.28641 +0.80000 1.00000 0.35760 0.42175 0.68374 0.53902 -1.14421 0.73613 0.69316 0.06799 -0.50939 0.93213 -0.36543 +0.50000 1.00000 0.27716 1.16259 1.30037 -0.31950 0.08730 0.31296 -1.58151 -0.23216 0.71656 0.17577 -0.35409 +0.60000 0.00000 0.47139 1.20821 -1.53912 0.61653 1.63400 0.07366 -0.68728 0.61108 0.19003 -1.13149 -0.95971 +0.50000 0.00000 0.45752 0.26983 1.49841 -0.63108 0.13400 -0.00378 0.50339 -0.28658 -0.96679 -0.73567 2.04127 +1.10000 1.00000 0.30359 0.27558 -0.04195 -0.23707 -0.50746 0.58277 0.92881 -2.07576 0.97809 0.08554 -0.81785 +0.40000 1.00000 0.35572 -1.31236 1.43825 -0.36977 0.25697 -0.13639 0.90506 -0.20679 1.72149 -0.99220 0.88878 +0.60000 1.00000 0.31867 -0.13831 0.25715 -0.70946 0.62570 -0.27583 0.42001 -0.10525 0.77465 -0.75345 -0.56250 +0.70000 1.00000 0.23578 0.56734 -1.13853 0.97581 -0.47823 0.19157 0.29475 -1.63049 0.70353 1.33871 0.48786 +0.50000 1.00000 0.22767 -1.32657 0.45363 1.05506 -0.79358 -1.85434 -0.19276 1.01108 0.55416 0.44559 -0.73791 +1.00000 0.00000 0.82465 1.32064 0.71164 -1.13724 -0.65246 -1.36418 2.68379 -0.03248 0.26586 -2.32308 -0.95052 +1.20000 1.00000 0.37171 0.71296 0.77420 0.23762 0.53560 -0.54614 0.53560 0.64052 -0.84474 0.33769 0.17608 +0.40000 1.00000 0.14725 0.33524 0.47790 -1.31981 0.98594 -1.56465 0.15041 0.70813 0.94435 -0.71110 -1.46358 +2.10000 0.00000 0.26422 0.03557 1.61114 1.08421 -0.42164 -1.45396 1.71423 1.86569 -0.59542 0.91478 -0.90939 +0.70000 0.00000 0.14613 0.66170 -0.50141 1.70596 1.00666 -1.13599 -1.20488 -0.02122 0.06867 -1.69294 1.03502 +0.40000 0.00000 0.30270 1.29234 -0.08930 -0.54162 1.89508 1.20166 1.44914 -1.47928 -0.27921 -2.18034 0.19887 +5.80000 1.00000 1.04841 2.78446 0.48193 -0.23459 0.40274 -0.41987 -1.08787 -0.04626 -0.37453 -0.23019 0.20083 +1.40000 1.00000 0.09703 1.50871 1.80097 1.28367 0.71723 1.09608 -0.51525 0.51855 2.55230 -1.80843 0.25063 +1.10000 1.00000 0.79456 0.82338 1.38515 -1.24256 0.36020 -1.04748 -1.36807 1.62168 -0.30325 1.66174 0.92198 +1.30000 0.00000 0.16942 0.00912 -1.08937 0.55700 0.12030 2.17727 -0.70490 0.43519 -0.16464 -0.82991 -2.58250 +0.80000 0.00000 0.46250 1.84284 0.22444 -1.33573 0.81901 2.62919 -0.18377 -1.10477 -0.58370 -1.66046 -0.99847 +3.40000 0.00000 0.95508 3.34482 0.92111 0.50803 0.14519 1.36643 -0.17410 0.49150 1.01822 -0.12660 0.72181 +1.40000 1.00000 1.09936 0.76349 0.15760 0.39289 1.10843 -1.22147 -0.81644 -0.72810 1.07548 -0.74232 -1.15601 +0.70000 1.00000 0.42026 0.22793 -0.39473 0.71678 -0.73785 -0.46712 1.74880 -1.21801 -1.51506 0.20626 1.31193 +0.40000 1.00000 0.20617 -1.21632 -0.02409 -0.79104 -1.28438 0.61707 -0.60715 1.15426 -0.45442 -0.06981 0.65812 +1.00000 0.00000 0.23008 0.75628 -1.25628 -0.64941 -0.41696 0.91217 2.16080 0.55047 -1.15658 -0.62988 -1.25703 +0.30000 1.00000 0.11672 0.91492 -0.20988 -0.12888 0.02239 0.06967 -0.52324 1.16652 -0.10734 -0.35585 0.05949 +0.40000 1.00000 0.36826 0.40922 -1.55311 -0.31615 -0.76287 -2.02125 -0.84196 0.22142 1.20749 -0.21950 -0.36950 +1.50000 1.00000 0.82799 0.79523 -0.16953 -0.21914 -0.54197 0.12795 -1.20113 -0.06979 1.95330 1.02150 -0.07542 +0.60000 1.00000 0.43019 0.07058 0.29242 0.06546 0.90969 0.62624 -0.98127 -0.71209 -0.17388 -1.43269 1.74201 +0.80000 1.00000 0.23958 0.55087 -1.39004 -0.89153 -0.14092 1.93270 -1.61025 -0.45298 0.32212 -0.18512 0.76854 +2.60000 1.00000 0.40762 1.32906 -1.24066 0.45689 0.56978 0.04224 -0.44356 0.87756 0.29924 -2.00259 0.16336 +4.10000 1.00000 0.22053 0.98921 2.51445 1.31969 -0.33204 0.89721 1.47520 -1.42129 -0.85867 -0.12754 0.46251 +1.00000 1.00000 0.89903 -0.28574 2.73964 0.68692 -1.12436 0.65294 -0.14818 -1.02136 0.74765 -1.42417 -0.71502 +1.50000 0.00000 0.21821 0.43741 -0.99187 -0.28656 0.10611 0.10369 -0.61971 0.13370 0.75564 -0.47463 -0.97909 +0.80000 1.00000 0.06014 -1.28151 -0.44527 1.40164 -1.17340 0.47875 1.36579 1.01283 0.17364 -1.45345 -0.13396 +0.20000 1.00000 0.03714 -0.37192 0.58560 -1.28397 -1.23006 -0.21437 -1.30473 0.60077 1.31183 0.64686 -1.87727 +1.60000 0.00000 0.05648 2.41553 -0.04575 0.92165 -0.66631 -0.17880 -1.13713 -0.66960 -0.42694 0.48765 0.56952 +0.30000 0.00000 0.15244 0.47450 -0.14273 -0.10725 -1.88216 0.20548 0.71140 -0.57430 -0.97283 -3.23897 -0.43271 +0.50000 1.00000 0.05913 0.15058 -0.45804 -1.39974 0.62525 0.08829 -1.15459 0.43364 -0.30207 0.26938 0.04018 +0.80000 0.00000 0.77049 -0.23861 -1.39528 1.75901 0.95825 -0.24735 0.59539 -0.72431 0.05125 -2.28935 -0.47894 +0.80000 0.00000 0.64092 -1.09110 2.08327 0.58529 0.13607 0.09815 0.68141 0.00839 -1.35745 -0.62911 -1.04151 +0.30000 1.00000 0.00513 -0.67448 0.40683 -0.47954 -2.05836 0.24219 0.69055 0.07045 1.87364 -0.37699 -1.69349 +1.00000 1.00000 0.11588 0.31345 -0.52038 -0.12431 1.10062 0.42951 0.55268 -2.40791 -1.48892 -0.49023 1.55831 +0.50000 0.00000 0.20365 -0.21255 1.29892 1.28890 -1.74197 2.17801 -0.75109 0.78584 -0.19357 -0.26726 -1.58539 +1.60000 1.00000 0.42360 -0.09202 0.90726 0.83457 0.72553 -0.39020 -1.37914 0.32096 0.69464 0.97741 -0.38074 +1.20000 0.00000 0.19111 -2.01345 1.22959 0.60755 -1.29836 0.34722 -0.70893 -0.76841 0.62357 0.46924 0.96703 +0.50000 1.00000 0.15474 -0.71576 1.71718 2.31127 -0.89233 1.33219 0.67429 -0.05271 -0.31587 -0.47786 0.17632 +0.80000 0.00000 0.59890 0.37594 0.36656 0.06359 2.23002 -0.23890 1.14541 0.22693 1.36901 -1.09806 -0.56380 +0.80000 0.00000 0.14597 -0.80847 0.74156 0.51969 0.30524 0.98879 -0.36283 2.90465 -0.56741 0.13070 -0.07485 +1.70000 1.00000 1.67838 -0.58680 -0.55209 1.05755 -0.42037 -0.87504 0.82307 -0.76455 -0.48075 -0.04466 0.65911 +0.60000 1.00000 0.00575 -0.30989 -0.71211 1.79634 -0.92107 -0.16723 -0.44375 -0.25649 -0.31548 -0.66831 0.60865 +1.80000 1.00000 0.62810 0.05614 1.13760 -0.35860 1.72402 -0.16421 -0.35977 -0.96953 0.99880 0.60658 -1.51923 +0.80000 0.00000 0.27661 0.53957 0.35271 -0.27684 0.38808 0.47377 0.08677 1.50450 0.55037 0.49955 0.38773 +1.00000 0.00000 0.14372 -0.43486 0.32332 0.54793 1.48227 -0.04962 -0.21003 -0.15536 -0.38250 -0.45578 -0.44590 +1.30000 1.00000 1.08191 0.92686 0.00835 0.82152 0.32865 -1.26096 0.30314 -0.36030 -0.72197 -0.34992 -0.00023 +1.90000 1.00000 0.44859 2.07041 -1.98428 -0.45503 -0.76926 0.06973 0.40204 0.53549 0.96463 0.06056 -0.24746 +0.50000 0.00000 0.28805 -0.05905 0.29316 -0.38380 -0.30000 1.38480 -0.16109 1.05030 -0.75567 -1.17647 -1.52566 +1.20000 1.00000 0.07727 0.17129 -0.86594 0.86633 0.30033 0.90821 -0.34697 1.55952 -0.68668 0.54991 1.85322 +0.70000 1.00000 0.55585 -0.14473 0.32854 -1.79576 1.37049 -1.33240 -0.62037 0.92349 0.26469 -0.01666 -1.74479 +1.10000 0.00000 0.47575 -0.04448 0.61113 -1.09848 1.02462 -0.26687 -0.01809 0.45429 -0.47146 0.10815 0.19765 +0.40000 1.00000 0.21115 1.60444 -1.16010 -0.19948 -0.59982 1.67065 -0.52806 1.06931 -1.25733 1.44633 1.31478 +1.30000 0.00000 0.78342 -0.56616 0.49828 0.10139 -1.29648 -0.03959 -0.95101 -1.26565 -0.13098 1.38687 -0.64903 +1.50000 0.00000 0.15037 -0.21313 -0.23576 0.17185 1.37497 1.05589 0.32585 -0.30718 1.15997 -1.42903 -0.46404 +0.20000 1.00000 0.06559 -0.51244 0.96048 -0.86482 1.42790 0.13423 0.01551 -1.08174 0.84208 0.57561 1.30481 +1.60000 1.00000 0.96725 -0.49974 0.69079 1.76084 2.01735 0.01754 1.19465 0.23088 -0.76979 1.17823 -1.20458 +4.10000 1.00000 0.03391 1.81503 -0.90815 -0.07355 0.95770 -0.42244 -0.02903 0.05166 -0.24848 -0.78510 -0.17660 +0.10000 1.00000 0.06582 -0.36646 0.24020 1.95037 0.67384 0.03645 -0.78332 -0.72557 -0.16236 0.98319 1.26336 +3.80000 1.00000 0.19018 1.25064 2.24772 -0.70893 -0.78139 1.30139 0.58533 -0.71261 1.40558 1.66814 -1.31039 +0.40000 0.00000 0.23370 1.39243 -1.07518 1.13423 -0.83571 0.30956 1.45966 0.18125 0.21815 0.47223 -0.75441 +0.80000 1.00000 0.43713 0.52104 -0.83917 0.24027 0.85884 0.40088 1.14817 0.36462 -1.65515 -0.96048 2.73476 +0.80000 1.00000 0.62717 -0.21866 -0.37546 0.31369 0.66745 0.16314 -0.99042 0.13922 -0.62682 -1.14011 -0.24511 +1.20000 1.00000 0.10122 0.47875 -0.71840 -0.42742 -0.69008 0.77578 -1.44716 -0.63352 -0.07965 0.85682 -0.99047 +2.40000 1.00000 1.76367 0.15137 0.58734 0.38571 1.17090 0.84372 0.64742 -0.36335 1.15192 -1.04641 -1.86349 +0.10000 0.00000 0.01465 -0.79907 -0.20492 -0.57108 -1.78402 -0.20623 1.32242 -1.19384 -0.30461 -0.01686 1.54235 +0.30000 1.00000 0.11023 2.02710 0.34976 -1.10235 0.29751 0.77622 -1.02039 -0.16706 -0.48703 2.87343 0.71147 +1.20000 1.00000 0.07654 0.82419 1.81293 3.46004 -0.68952 0.34241 0.71041 0.13869 -0.30237 -1.23316 -0.43426 +1.00000 0.00000 0.20876 0.87030 2.05951 -2.05484 1.05570 -0.56688 0.54181 -0.45898 0.56536 -0.86765 0.96078 +0.10000 0.00000 0.04351 -1.52610 -0.06585 1.40746 0.92924 -0.76667 -0.20940 0.02776 1.27610 -1.82395 -0.09536 +1.60000 0.00000 0.16433 -0.48058 0.05072 -0.49852 0.73457 -0.17317 -0.21674 -0.37635 -1.26402 -1.46165 0.95452 +0.80000 1.00000 0.02039 -1.11249 0.71918 0.11629 -0.19657 0.50818 -0.33978 0.14163 -0.92404 1.85089 0.12007 +0.70000 0.00000 0.46634 1.17869 -0.45065 -0.08486 2.17451 -0.31383 -1.64252 1.73265 1.07394 -0.64761 -0.50940 +1.70000 1.00000 0.69078 0.93241 -0.86248 1.36121 0.18200 1.01439 2.10765 1.08191 0.26668 -0.27564 -0.12552 +1.30000 1.00000 0.01365 1.57990 -1.21812 0.55562 -1.35256 0.00583 1.08107 1.34170 0.21781 -0.22060 -0.42262 +0.90000 1.00000 0.61654 0.49980 0.20848 1.19771 0.17269 -2.21815 -0.36391 -0.45108 0.57446 2.07777 0.17767 +0.30000 0.00000 0.06943 -0.42108 0.53522 1.67297 0.78460 -0.25444 0.23499 1.46543 0.03064 1.02354 -0.98781 +0.40000 1.00000 0.29413 -0.14459 -0.70676 0.48951 -0.50686 0.58205 0.26024 -0.50646 2.45769 0.03217 -1.58173 +1.00000 1.00000 0.11574 -1.16581 0.18326 0.63506 0.62113 0.76610 -0.25298 1.46853 1.20621 -0.73272 -1.58661 +0.70000 0.00000 0.57524 0.20770 -0.30213 0.59442 -0.03319 -1.03916 -0.22576 -0.23429 -1.41019 0.18938 -0.68581 +3.40000 0.00000 0.85176 -1.83404 1.27577 2.12738 0.60452 -1.83324 -0.72285 -1.06752 0.77624 1.33033 -2.29766 +1.80000 0.00000 0.21049 1.30651 0.36546 1.35974 1.53059 0.15495 1.59716 -0.23095 -1.19779 -0.92654 -1.57521 +1.30000 0.00000 0.09162 3.05342 1.44800 -0.47570 -0.03599 -0.07275 0.27605 -0.95961 0.54054 -1.11485 -0.71002 +4.00000 0.00000 3.68779 -0.22342 -0.77039 0.68914 0.23088 -0.54768 -1.23134 0.15413 -0.64801 0.06430 -1.67907 +0.30000 1.00000 0.26863 0.78103 -0.60854 0.41182 0.32836 -1.98309 -0.42735 0.23333 -0.05181 -0.65826 -0.17748 +0.20000 0.00000 0.03422 -0.66176 -1.88207 0.64725 0.14614 0.58449 -1.81513 1.20296 -1.70427 1.49706 -0.36280 +0.60000 1.00000 0.35422 -0.19225 -1.48532 1.01133 1.26834 0.93148 0.49779 -0.57478 -0.41233 -1.28939 0.67970 +1.00000 1.00000 0.07197 1.63761 -0.53926 -1.30429 -0.19110 -0.30966 -0.14327 1.17693 0.43392 -0.43492 -0.54253 +0.30000 0.00000 0.23607 0.30805 0.50827 1.28320 -0.53986 -0.49648 0.16081 0.36632 -1.06437 -0.07873 0.03505 +0.60000 1.00000 0.22910 1.64210 0.11677 -0.73432 0.58966 1.57928 0.02288 3.05208 2.54307 -0.17116 1.72354 +2.70000 0.00000 1.50852 0.36852 2.29690 -0.55525 -1.08699 -0.50325 -1.52517 -0.86903 -0.27283 0.75719 0.86564 +0.10000 1.00000 0.06327 -0.14808 -0.05276 -0.49828 -0.45473 -2.24788 0.60333 0.28467 -0.09014 -0.10217 1.43113 +1.70000 0.00000 0.95024 1.30785 0.40993 0.41120 0.11194 0.11023 -1.64377 0.37290 -1.76244 -1.44022 -0.76699 +2.50000 1.00000 1.29321 0.59847 0.77940 1.17005 0.30499 0.33493 0.25948 -1.52495 -0.58362 -1.72178 2.44981 +1.50000 1.00000 0.52806 0.84303 0.90489 -1.15749 0.07484 0.57098 -0.13129 0.83797 0.76227 0.99951 0.24543 +0.40000 0.00000 0.24114 2.17427 -0.51106 1.42733 1.21052 0.16760 -2.27380 0.25833 0.00545 0.20716 -0.38068 +0.70000 0.00000 0.55252 -0.57870 1.18087 -0.69039 1.21362 0.93828 -0.00379 1.04105 -3.04358 -0.50440 0.31681 +0.60000 1.00000 0.17101 0.61800 0.07136 1.51402 -0.90678 -0.48994 0.01397 0.13958 0.69695 0.69826 -0.35830 +2.00000 1.00000 1.51464 0.41635 0.24050 0.28207 1.07379 -1.29684 1.85991 -0.53060 1.53029 -1.57388 0.05464 +1.00000 0.00000 0.84789 -0.62231 -0.16668 0.21090 0.33364 0.73162 0.56183 -1.01673 0.62569 0.41510 -0.61431 +0.10000 1.00000 0.03263 -1.69125 -1.30728 0.25103 -0.36525 -0.91739 0.17300 -1.65450 -1.38221 -0.01219 1.48980 +1.30000 0.00000 0.31235 1.75235 -0.83644 0.07622 -2.88672 -0.10353 -1.46937 0.33752 0.14190 -1.37314 -0.15240 +0.80000 0.00000 0.15145 0.83680 0.55017 -0.92706 0.70241 0.50008 -0.03261 0.30300 0.14594 -0.47149 -0.29419 +0.40000 0.00000 0.27991 0.29145 1.04352 -0.25502 -0.37584 -0.70087 -2.45118 0.85291 -0.39481 1.30075 -1.32186 +0.80000 1.00000 0.68612 -0.24631 1.92396 -1.67516 -0.06476 -1.31341 0.08228 -1.14081 -0.16394 0.47635 0.48907 +1.10000 1.00000 0.32660 -0.31988 1.66877 -0.38631 -0.78042 0.86219 -1.43828 -0.33232 -0.59553 -0.76387 0.05509 +1.50000 0.00000 0.06806 0.23834 0.36321 0.97324 -1.73742 1.17724 0.96387 0.04689 0.47764 -2.40649 1.91540 +3.60000 0.00000 0.49338 0.75734 -0.01435 0.06430 0.89680 1.32842 -1.20464 0.18165 -1.38937 -0.75712 -0.25717 +0.40000 1.00000 0.13626 0.72239 0.30463 -0.47323 1.82003 0.48641 -1.36913 -0.04786 1.83378 0.38129 -0.39600 +0.60000 1.00000 0.00276 0.67303 2.21110 1.80691 0.89845 -1.05199 0.75519 1.21388 1.21211 -0.13229 0.47812 +0.40000 0.00000 0.25873 0.00889 0.46749 -2.56626 -1.47614 -0.99630 2.03090 0.52766 0.25078 0.31135 -0.00091 +1.20000 1.00000 0.13790 1.25777 -0.71223 0.12099 2.60764 0.53009 2.28237 -1.10200 -1.08426 0.87922 -0.58214 +0.60000 0.00000 0.20965 -0.93686 0.36012 0.54267 -0.03955 1.02395 -0.18038 -0.70770 -0.11808 0.29766 0.64995 +0.30000 1.00000 0.27762 0.15232 0.02338 -1.15087 -1.61271 0.98838 -0.27965 0.30343 -0.76482 -0.06930 -0.66669 +0.70000 1.00000 0.22653 0.01008 0.45724 -0.89596 0.14799 -1.85117 -0.63660 1.28234 0.40696 -1.71110 1.32079 +0.10000 0.00000 0.06278 1.93861 0.95893 0.27197 -1.08985 -0.80410 0.84778 1.55295 0.25661 -0.97598 0.42806 +3.30000 0.00000 0.07175 1.47285 0.14420 0.26709 1.62522 0.39012 -0.30561 0.47125 0.16670 -0.72928 0.11850 +2.60000 1.00000 0.29761 1.18228 -0.85118 0.64890 -0.79115 0.34278 -1.27897 -1.54584 -0.76702 -0.92755 1.26826 +1.30000 1.00000 1.08510 -0.47809 -1.78954 0.93401 -0.71436 1.14809 0.22754 -0.18773 -1.01920 0.68385 -0.72500 +1.00000 1.00000 0.45652 -0.43086 0.77285 -0.50981 -1.20491 -0.12979 0.52885 -0.82219 0.16584 2.26693 -0.27339 +1.40000 1.00000 1.12946 1.71381 -0.79670 0.17732 0.61103 -1.08055 -1.21345 1.85314 0.35916 -0.18835 0.85578 +1.30000 0.00000 0.63005 -0.35505 -0.05685 0.40660 -0.47578 1.70063 -0.50897 -1.28310 0.29765 -0.79235 -0.88648 +1.40000 1.00000 1.22245 -0.03859 -0.47033 0.67459 0.13310 -0.74907 0.88039 -0.11121 0.13853 -0.25307 -1.04224 +1.10000 0.00000 0.63387 0.71344 1.78648 0.40485 0.55456 1.76852 0.93099 -0.78068 -0.06582 0.11391 0.75498 +0.20000 0.00000 0.13647 0.28569 0.72602 0.97244 -0.06526 -0.54732 1.12157 0.14451 -0.51495 -1.62660 2.33030 +0.70000 1.00000 0.54083 0.27724 0.26130 0.49395 0.98630 0.71755 -0.57904 -0.28504 -1.53212 0.54735 1.25063 +0.80000 0.00000 0.36468 0.11628 2.43520 -1.78194 1.02805 1.05761 -0.12198 0.52151 0.03797 -0.69025 0.38513 +1.90000 0.00000 0.21436 -0.67256 -0.54498 0.21024 1.18195 -0.18849 -1.05782 0.96477 0.55037 -1.35492 -1.77846 +0.30000 0.00000 0.00511 0.85791 1.18302 0.10255 0.61065 -0.14231 -1.25221 -0.52563 -0.85609 -0.59077 1.78223 +1.80000 0.00000 0.55807 -1.18819 0.51377 -1.03441 -0.18416 1.10020 -0.91642 0.44994 -1.04120 1.14044 -1.02499 +0.80000 0.00000 0.49291 -1.08699 -0.48051 -0.67686 -0.81729 0.16521 -1.89325 -1.86433 -0.53021 -0.46267 -0.72306 +0.70000 0.00000 0.23008 -0.89872 -0.51643 1.17519 0.85922 0.60855 -0.67909 -1.34773 0.73467 -0.34888 -0.30830 +0.30000 0.00000 0.02423 1.24985 0.16614 -1.28637 0.57224 -0.84364 -0.39353 -1.74088 1.24013 0.97507 -0.15007 +0.40000 1.00000 0.11208 0.03525 -0.39245 -0.11377 0.63404 0.49347 0.82967 0.78517 -0.91951 -1.75664 0.64045 +0.50000 1.00000 0.08761 -0.33583 1.26800 -0.72976 0.00814 1.32987 -0.11781 -0.66661 -1.10185 2.27882 0.80706 +0.80000 1.00000 0.57171 -0.85473 0.66577 1.36439 0.54393 1.29204 0.52298 -0.49947 0.61281 1.12325 -0.98520 +5.90000 0.00000 0.97490 1.67234 0.39344 -1.01567 2.16253 0.80279 0.61914 -0.45843 0.45193 -0.20418 -1.15520 +0.70000 1.00000 0.23016 1.24650 -0.03458 -0.42057 -1.54388 1.22319 -0.21375 0.48939 0.34747 0.45038 1.34222 +0.80000 0.00000 0.74769 0.85839 1.00208 -1.19187 -0.24232 0.13117 -0.33385 -1.95423 -1.46848 0.45890 -0.21918 +1.00000 0.00000 0.20928 -0.57609 1.34750 0.24074 -0.48346 0.51209 -0.99294 0.29446 -0.75890 -0.23250 0.27144 +0.50000 0.00000 0.07126 2.33266 1.26075 -0.38489 -0.75914 -0.03365 -0.68346 -1.24108 1.49753 -0.59361 1.14823 +1.20000 1.00000 0.22874 1.25185 0.50450 2.50316 0.77947 1.33633 0.15770 -0.34637 1.03892 -0.63850 -0.54986 +1.60000 1.00000 0.09875 -0.71063 -1.46478 1.64192 1.89069 0.25316 0.85041 -1.09798 0.34176 -0.18972 0.21574 +0.70000 1.00000 0.11804 -1.83509 0.05115 -0.01321 1.06461 -1.07933 -1.06559 1.47799 -1.06601 -1.06467 0.15132 +0.40000 1.00000 0.30100 -0.37865 -0.89028 0.80367 0.84436 0.28986 2.07028 1.92842 0.94420 1.02915 1.53462 +1.10000 1.00000 0.72381 -1.39251 -0.62414 0.01521 0.05048 -0.23608 1.31856 0.72546 0.80792 -1.56626 -1.54393 +0.30000 1.00000 0.01019 0.35125 -0.63087 -0.91680 2.22018 1.19039 -1.89882 1.83175 -0.06699 0.68801 0.15075 +1.70000 0.00000 0.73652 0.94774 -1.53453 0.41516 0.28861 -0.03212 0.32367 -0.70823 0.37811 -1.06773 -0.19459 +0.70000 1.00000 0.62700 -2.43666 1.91546 0.07602 -1.88577 -1.81706 0.23790 -0.53740 0.29142 0.92344 -2.05160 +0.20000 0.00000 0.07262 1.00904 -1.49135 -0.27034 -1.76249 0.68368 0.66182 1.38892 1.05108 -0.67303 -1.30416 +0.50000 0.00000 0.23886 0.12038 1.33840 1.53909 -0.70758 0.36123 -2.00352 -2.31136 1.00951 0.40382 -0.61523 +1.30000 1.00000 0.51300 2.03199 -0.48188 -0.24247 -0.12102 -1.71835 0.81646 -1.04706 0.07002 1.35501 0.40669 +0.60000 0.00000 0.02146 0.42489 -0.92674 0.01142 0.32962 -1.02944 0.13242 -1.14959 -0.72369 2.61360 -1.39494 +1.60000 0.00000 0.63545 0.99043 -1.23065 0.15435 -1.32984 1.16857 0.44628 0.05682 1.51927 0.59021 -0.54485 +2.70000 0.00000 0.01835 -0.18491 1.42860 0.65606 0.14236 -1.21349 -1.47502 -1.83849 1.55051 -0.30519 -0.46794 +4.20000 0.00000 0.22506 2.60495 -0.06560 1.60062 1.44777 0.00399 1.05945 0.05074 0.67101 1.79028 -0.80476 +1.60000 0.00000 1.35829 0.64092 0.35310 -0.92032 0.44300 -0.55173 1.43562 0.33740 1.40967 -0.45973 0.01300 +0.90000 0.00000 0.32187 0.87261 0.20152 0.51912 -0.90714 -0.12325 1.79476 -2.35024 -0.02416 -0.57557 -0.22409 +1.10000 0.00000 0.85010 0.34827 0.04765 0.76025 -0.78008 -1.01398 0.70296 1.04130 -1.20253 -0.53496 0.90351 +0.60000 1.00000 0.34151 -0.16032 -0.47344 0.03818 0.46571 -1.51216 -0.85018 -0.64212 -3.14758 0.00861 0.58243 +0.70000 1.00000 0.03435 0.02818 -0.96729 -0.75719 0.28435 -1.10318 -0.12984 0.20352 1.40846 0.73933 -0.69944 +0.40000 1.00000 0.21989 0.24049 0.47456 -0.11273 -0.74866 0.22494 0.23690 -1.18843 0.48282 -0.10750 -1.22481 +0.70000 1.00000 0.47891 0.09086 -0.20616 0.40172 -0.11807 0.46708 -0.14550 2.16133 -0.58469 0.08761 0.43395 +0.50000 1.00000 0.24939 -0.23069 -0.63700 0.10043 -0.34281 -1.54588 -1.03896 0.23795 0.95687 -0.22092 0.45224 +0.10000 1.00000 0.04928 -0.09527 -1.07564 -0.49818 -0.61727 0.23780 -0.26050 -0.34067 0.01433 -0.23006 0.76739 +0.40000 1.00000 0.08136 -0.36548 0.53983 0.52256 -0.22678 1.18279 0.20536 0.61984 -0.41265 0.11361 0.59254 +0.90000 1.00000 0.39365 -0.14344 -0.42689 1.11981 -0.03857 -1.67884 -0.39871 0.33449 0.20846 0.17292 1.27179 +0.30000 0.00000 0.21532 0.60554 -0.76969 -0.30649 -0.97512 -0.46179 3.23782 -0.92099 1.19623 1.44181 -1.55627 +1.70000 1.00000 0.52904 2.68365 0.73854 -0.38156 -0.58455 0.42597 -0.99228 0.82202 -1.58469 -0.13944 0.83958 +0.60000 0.00000 0.40306 -1.19447 0.29891 -0.29689 0.37694 -0.32396 -0.73120 -0.12119 -0.86393 -0.73883 -0.87210 +1.40000 0.00000 0.03815 -0.48555 2.37393 0.59932 -0.25819 0.23685 1.48164 -0.11846 -1.03229 0.30920 -0.66810 +3.10000 1.00000 0.31704 0.97916 -0.50306 1.63739 0.21067 -0.30932 -0.40297 1.00003 -0.18679 1.15505 -0.31920 +0.60000 0.00000 0.36464 1.70963 0.99269 -0.29658 -0.22102 -1.30402 0.32047 -0.55325 -0.41524 1.40212 0.75101 +0.90000 1.00000 0.23286 2.20975 -0.52276 0.31487 1.68649 -1.80536 -1.21530 0.18858 0.93224 0.94172 0.12297 +2.10000 1.00000 0.97309 0.44663 -0.23264 0.70745 0.53847 0.18075 0.37916 -0.94294 -0.23082 -2.39247 0.04361 +0.40000 0.00000 0.31777 -0.59582 0.64211 0.00830 -0.67822 -1.25979 -0.32797 -1.11180 -0.67630 0.84416 -1.75015 +1.90000 1.00000 0.11389 -1.80165 -0.15596 1.91241 0.22360 0.06940 -0.12018 1.36428 -1.20627 -0.78619 0.40490 +0.30000 0.00000 0.23929 -0.98019 0.71055 -0.72496 -1.12062 0.11782 -0.59769 0.45922 -0.67680 0.72624 0.95066 +0.10000 1.00000 0.07913 0.64319 0.49804 -1.58913 -0.17210 0.42973 0.29268 -1.31986 -1.82999 -0.40693 1.54962 +0.20000 1.00000 0.19779 0.33148 0.64139 1.13585 -1.34763 0.42034 0.89613 0.43512 1.38019 0.25660 1.26077 +0.60000 0.00000 0.15505 0.00504 0.02982 -0.49968 0.25175 0.67425 0.46219 0.58000 0.94931 0.47138 0.42203 +0.70000 1.00000 0.38724 -0.92294 1.78199 -0.45740 -1.59572 -0.05220 -1.35045 -1.28891 1.60333 1.62670 -0.32288 +4.40000 0.00000 0.10148 -1.06087 0.31980 1.18524 0.67294 -0.29361 1.32328 -1.08614 -0.21384 -1.11626 -0.66960 +0.40000 0.00000 0.21205 -2.05503 -0.83938 -0.08635 0.01920 -1.50046 -1.42091 0.93423 -0.41873 0.52472 -0.49130 +1.20000 1.00000 0.01571 -0.14218 -0.53189 0.83154 -0.54280 1.64718 1.13428 1.41079 1.00272 -1.89436 -0.82013 +4.30000 1.00000 0.29840 0.39047 -0.36193 -0.34676 0.54955 -1.01782 1.23320 -0.10564 0.78691 -1.99896 -0.72422 +0.40000 1.00000 0.04561 0.46513 0.03276 0.97080 -1.12083 -0.69504 0.94367 0.77264 0.45761 1.09905 -0.48481 +0.30000 1.00000 0.23527 0.13893 -0.67698 0.60305 1.21410 -0.23168 0.18162 1.37595 -1.89980 0.58455 -1.03058 +0.50000 1.00000 0.03250 -0.10396 -0.17825 -0.80434 -0.77527 1.21855 0.38462 -0.41359 -0.17534 0.91177 0.48077 +1.70000 0.00000 0.22080 -2.00607 -0.16880 0.78908 0.93899 -2.23697 -0.47186 -0.26599 -1.15533 0.97597 -1.33541 +2.00000 1.00000 0.22462 -0.32207 1.01036 -0.02014 1.60387 0.92117 2.20242 -0.02353 -0.83061 0.26394 0.43110 +0.30000 1.00000 0.09763 0.13937 -1.64140 1.44841 -1.53911 -1.09693 0.93215 -1.79744 0.47786 0.14638 -0.67843 +0.50000 1.00000 0.47468 -1.05868 0.90051 1.19456 -0.77663 -0.14238 -2.33861 -0.18758 0.48040 0.80136 2.07075 +2.10000 1.00000 0.16622 0.15364 0.59547 1.24025 2.19314 1.34591 -0.81358 -0.91167 0.85894 -0.36306 0.26050 +0.20000 1.00000 0.04171 2.33673 -0.82261 0.62747 0.39372 -0.71791 -1.15031 1.10622 1.14095 -0.03096 -0.47497 +0.70000 1.00000 0.69334 1.75549 0.40474 0.45651 -1.31859 1.19425 0.33629 0.71842 0.79545 0.48068 1.13393 +1.60000 0.00000 0.92100 0.08840 -0.02064 0.66035 0.09917 -0.06088 1.50761 -0.72349 1.09869 -1.09250 -0.72787 +1.40000 0.00000 0.57401 0.73360 0.93655 -1.13481 0.64217 -0.18259 -1.16235 0.78200 0.09578 1.01897 -1.10042 +0.50000 0.00000 0.40108 0.56399 0.69243 -1.84948 -0.35249 0.14541 -0.14232 -1.38975 0.56447 -0.37855 -0.66156 +0.50000 1.00000 0.08420 -2.38245 0.20380 -0.40587 0.57868 0.01155 -0.75604 -0.69997 -0.76780 -0.04641 -0.17146 +1.80000 0.00000 0.71057 -0.42475 0.28539 -0.20078 -0.32477 1.30814 -1.52305 -1.36223 -0.65308 -1.15721 -1.67479 +0.70000 1.00000 0.54581 -0.79583 0.68945 -0.40938 1.30714 0.39494 -0.86136 0.96468 0.37981 0.35708 -1.56360 +0.50000 1.00000 0.08479 -0.23704 -2.36853 0.21677 0.82742 -1.37056 0.41650 0.57948 -0.29881 -0.14777 0.95435 +1.40000 0.00000 0.04858 1.62098 0.55399 -0.71088 0.16537 0.23084 0.04721 -0.80160 -0.37036 0.71292 -0.36980 +0.90000 1.00000 0.44223 0.69712 -0.66020 -1.02107 -1.03968 -0.94000 -0.05073 0.52216 -0.41600 0.29704 -0.14651 +0.20000 0.00000 0.06404 -0.28492 -0.11337 0.31962 1.54157 0.37127 -0.44099 0.64268 0.48107 -0.42470 0.24083 +2.50000 0.00000 0.86339 0.84555 0.98336 0.43426 -0.35524 0.25002 -0.64388 0.03092 -0.69022 -0.22426 -2.05925 +1.30000 0.00000 0.13941 -0.91549 1.05459 -0.30229 1.11287 0.21680 -0.99040 0.56706 -0.11482 1.07554 -0.97839 +1.30000 0.00000 1.16008 -0.88436 0.30746 0.65642 1.15349 -1.06374 -0.47741 0.51826 0.36713 0.60445 -0.09023 +2.90000 0.00000 0.22561 1.06491 0.33620 0.49981 0.08376 -0.65623 -0.70548 0.12343 0.54177 1.00292 -0.44520 +1.20000 0.00000 0.17572 1.27995 1.55255 0.13208 -2.31213 -1.10447 0.30709 -0.82227 0.44535 -0.46226 0.62817 +0.10000 0.00000 0.08218 1.23409 -0.14384 2.06099 1.26601 1.73406 1.45206 -1.05459 -0.25040 0.59435 0.70071 +0.20000 1.00000 0.11230 -1.92646 -0.14995 0.56444 0.05140 -1.82252 0.26424 0.46232 -1.85030 2.07243 -0.20078 +0.30000 1.00000 0.27488 -0.11099 -0.27709 -0.46935 1.25031 -0.28320 1.47313 0.86959 0.75522 -0.04641 0.92801 +0.10000 1.00000 0.04680 -0.21983 0.31557 0.44908 -1.74856 -0.86096 -0.69712 0.67682 -0.91912 0.60088 0.91032 +0.60000 1.00000 0.43928 -0.25896 -0.92844 -0.46440 -1.17506 -0.08587 1.10366 -0.49902 0.04198 -0.45949 0.33407 +0.80000 1.00000 0.20445 0.60216 0.44755 0.03642 2.34203 0.07602 -0.92861 -0.16249 0.19432 0.08362 -0.06280 +2.40000 0.00000 0.65720 0.89076 0.48889 -0.27830 -0.43075 -1.88989 1.03740 1.20989 -0.71868 0.72970 -0.40976 +0.70000 1.00000 0.53551 -0.96042 0.55011 0.21034 -0.45563 -0.04020 0.13981 1.64733 1.17626 0.55026 0.85941 +0.50000 1.00000 0.17612 -0.53230 -0.74261 -0.28282 -1.34140 -0.11978 1.83856 -0.42653 -0.76619 -2.13056 1.15927 +0.10000 0.00000 0.05279 -1.43876 -0.91904 -1.28660 1.45627 -1.53605 -0.13772 -0.12014 -1.11961 -0.04693 -1.16146 +0.30000 1.00000 0.12053 -1.50421 1.18250 0.73438 0.13049 0.73385 0.75861 -0.33390 0.65143 -0.02921 0.62100 +0.50000 1.00000 0.28532 -0.19517 1.18114 -1.35339 -0.29063 1.20088 0.31450 -0.18548 2.87647 -0.73612 1.84248 +2.70000 1.00000 0.26268 1.38494 1.74414 -0.37998 -0.46183 -0.98883 -1.47174 -0.93956 0.50729 -1.00623 -0.91988 +1.30000 0.00000 0.27654 0.97065 0.35385 0.50176 0.00572 -0.02729 -0.68552 1.61030 -0.89726 -0.85749 0.07469 +0.10000 1.00000 0.02577 0.25801 -0.10380 -0.43126 -0.37204 -0.45917 0.83395 -0.95274 0.62202 -1.32051 0.57482 +0.80000 1.00000 0.02529 -0.45755 1.24386 -1.02113 -0.64051 0.70373 1.01338 -0.19148 0.70627 0.67508 0.32351 +1.50000 0.00000 0.07525 0.15543 0.97427 -0.11614 0.10320 1.02957 1.21125 0.22332 -1.48803 -0.40184 0.30885 +1.80000 1.00000 0.50560 -0.16332 0.23598 -0.24711 0.07134 0.87035 -1.01406 1.09791 -0.94216 0.70829 0.06276 +0.50000 1.00000 0.18048 -0.67798 -1.31354 -0.73030 -1.39952 0.68134 -0.16836 -1.86250 -1.31042 -0.21032 -0.99834 +0.40000 0.00000 0.08064 0.89826 -0.05446 0.81280 -0.11819 -1.49979 1.37450 1.07699 0.57002 0.37795 -1.26203 +3.00000 1.00000 0.83123 -0.90258 -0.55334 1.14651 -0.22868 -1.63405 0.34597 0.42649 0.51761 -0.93438 -1.09466 +1.10000 1.00000 0.13882 -0.24209 -0.05947 -1.04969 1.60623 0.88685 -1.22931 2.09444 0.87342 1.20215 -0.50204 +1.10000 1.00000 0.15602 -0.34929 -1.02811 0.58494 0.84176 0.66274 0.97864 -1.21128 1.54766 1.00498 -0.17922 +0.70000 0.00000 0.06762 -0.13825 -0.16718 -0.58170 0.39320 0.58856 -0.10927 -0.08848 1.12438 -0.24281 -1.88088 +1.40000 0.00000 0.30186 2.05412 0.86589 1.54687 -0.15961 -1.38354 0.27315 0.38625 0.22832 -0.11481 0.77556 +1.10000 1.00000 0.89902 0.73698 -0.44485 -0.75391 -1.47051 -0.18714 -0.14417 0.55321 -1.29181 -0.64036 1.40306 +0.60000 1.00000 0.34608 2.54382 1.04366 -0.54795 -0.83492 -0.36182 -0.22231 -1.50016 1.54814 -0.20354 -0.44719 +0.50000 0.00000 0.29632 -0.37174 0.92653 0.07582 -1.11830 0.10205 0.01093 -1.32829 -1.22061 0.92842 -0.88099 +1.20000 0.00000 0.46782 -1.10320 -0.50160 1.85001 0.55472 1.41359 -0.65611 -0.06306 0.73754 -0.60610 -0.28437 +0.20000 1.00000 0.00207 -1.33284 1.05596 -1.64198 -0.12181 -0.99756 1.15729 -0.91018 -1.11450 2.13915 0.52839 +0.60000 0.00000 0.23960 1.72166 -0.91766 0.14233 -2.51683 -1.42285 -0.29877 0.51553 0.42550 -1.10110 0.46576 +0.60000 1.00000 0.45254 -0.21340 -0.95018 -1.93197 1.66001 -2.27360 -0.66379 -0.07282 -1.20011 0.06670 -1.34635 +0.30000 0.00000 0.17508 0.04782 1.22140 -0.25029 -1.54210 -0.61239 -0.38749 -1.83434 0.82215 0.01834 -0.47591 +0.40000 1.00000 0.14743 1.16024 -0.33724 -0.23757 0.20324 -1.13728 -0.69158 -2.35734 2.36227 -0.11399 1.83977 +0.40000 1.00000 0.05977 -0.26137 0.63005 2.23918 0.32914 1.16818 1.45920 -0.50488 0.61158 -0.69791 0.00977 +0.90000 0.00000 0.26469 -0.53794 -1.44163 1.38510 -0.90220 0.81594 -2.74929 2.64114 0.14232 0.00303 -1.13268 +1.10000 0.00000 0.78721 0.95594 -0.08791 1.14831 1.90508 -0.16446 0.30828 -0.31597 -0.97289 -0.74836 -0.45629 +1.90000 0.00000 0.40714 0.28869 0.26408 -0.54844 -1.29401 0.48816 -0.93909 -1.00829 -1.20184 -1.36593 -1.28194 +1.10000 0.00000 0.82541 -1.36921 1.26598 0.94078 1.28625 0.45932 -0.92989 1.88318 -0.22993 0.02964 0.94972 +0.70000 0.00000 0.39744 1.44490 -0.63655 0.18774 1.05447 0.16334 1.00415 -1.50058 0.03385 -1.17894 0.56098 +0.30000 1.00000 0.09922 -0.85833 -0.14211 2.02754 0.17389 1.18752 -0.14411 0.48573 -1.44428 -0.17839 -1.04092 +1.30000 1.00000 0.61860 -0.21922 0.06945 -0.26665 -0.54619 0.53593 0.66266 0.38204 -0.31937 -1.12040 -0.23536 +0.50000 1.00000 0.00991 -0.70146 -1.21262 -0.35735 1.73741 0.11094 -0.94615 1.51233 -0.81372 0.92888 0.80877 +0.40000 0.00000 0.13061 -0.00398 0.48239 0.39765 -0.26512 -0.69912 0.24785 -0.16097 -0.97971 0.40524 0.54638 +2.10000 1.00000 0.68123 -0.16329 -0.28725 0.79996 0.93897 -0.25371 -0.16898 0.69060 -1.81229 1.01470 -1.82545 +1.40000 0.00000 0.31050 0.67841 1.15093 1.10446 1.51291 0.55984 0.99490 0.17072 0.62932 0.09375 -0.43611 +2.80000 1.00000 2.74661 -0.48137 0.43500 -1.21187 0.57839 1.80966 -0.99153 0.80017 -2.26403 1.27318 0.23447 +1.00000 0.00000 0.68609 -1.14471 1.07275 0.73059 -0.82290 0.24756 -1.27167 1.92971 -0.10703 0.66591 -0.89378 +0.30000 1.00000 0.26720 -0.21151 -1.12925 0.80659 0.37817 0.16105 0.66458 -1.02756 -0.43368 0.70226 1.86945 +0.20000 1.00000 0.01068 -1.11949 0.55108 -1.17912 -0.74674 -1.13190 0.54687 -0.04748 -0.65158 -1.00314 0.51139 +0.50000 1.00000 0.06590 0.39083 -1.99256 -0.04854 -1.50416 -1.83215 1.82553 0.58411 0.03448 -0.63830 0.63647 +0.30000 0.00000 0.18542 1.54810 1.59698 -0.55391 0.10763 -0.61231 1.32889 0.51451 -0.60665 0.67104 0.90071 +2.00000 0.00000 0.36035 0.20557 0.78995 -0.82281 1.69678 0.38375 -1.81994 -0.59729 -1.51422 1.09234 0.51738 +2.40000 1.00000 2.06846 0.25349 -0.21835 0.61716 -0.96026 0.49205 1.80235 0.15939 0.52807 -1.35078 -0.06943 +1.20000 0.00000 0.43371 0.53904 -0.31775 -1.63176 1.98101 1.31855 0.61305 -1.02356 0.94438 -0.52072 -0.50295 +0.20000 0.00000 0.07024 0.72932 -0.67900 0.52918 -1.39522 -0.33907 0.35157 -0.95770 -2.18996 -0.58862 0.69042 +0.80000 0.00000 0.07712 0.45468 0.90040 -0.19616 0.41571 -0.90060 1.51679 -0.12981 -0.97294 -0.10945 -1.49618 +0.30000 0.00000 0.03584 1.23598 0.12883 0.38994 0.57260 -1.62470 1.68044 1.26968 -0.64251 -0.60008 0.71153 +0.20000 1.00000 0.13328 -0.94264 -0.95259 0.98208 0.00833 0.26202 0.94758 0.12353 -0.96615 -1.18305 0.86769 +0.50000 1.00000 0.03595 0.45300 -1.07306 0.83564 -0.90996 0.81424 0.32201 0.60061 -0.81453 -1.01389 1.79896 +0.70000 1.00000 0.53531 -0.36458 -0.31083 -1.43401 1.02692 -1.70004 -0.49371 0.28645 -0.25898 -0.40790 0.34461 +1.50000 1.00000 0.20360 1.52043 -0.26607 -1.09538 -0.72628 -0.14364 0.54597 -1.40358 -1.34770 2.04245 -0.06022 +0.20000 0.00000 0.07710 2.33149 -0.15380 -1.14074 -0.60954 0.54024 -1.69359 -2.13615 0.18868 1.39556 -0.85436 +0.40000 1.00000 0.06402 -0.38695 0.12472 -0.36009 -1.66260 -0.37820 -0.44470 1.27690 -1.48605 0.03437 -1.16101 +2.40000 1.00000 0.28470 1.55944 -0.36433 0.05562 0.65430 -2.26211 -1.80336 -0.21820 -1.64530 0.45499 -0.36550 +0.20000 0.00000 0.00551 0.07618 1.13968 0.76878 1.13408 -0.24329 0.41839 0.04609 -1.30930 1.50674 0.15328 +2.30000 1.00000 0.13195 0.12100 -0.62849 0.31748 0.63637 1.57913 -0.89443 0.35607 -1.27215 -1.05086 -0.50072 +1.80000 0.00000 0.08020 0.16672 0.21688 1.13902 1.59670 -0.38312 0.04294 -1.84063 -0.99102 -1.30282 1.16464 +1.20000 0.00000 0.74896 1.38765 0.37669 -1.21934 1.32953 -1.98963 -2.13653 -0.79169 0.01195 0.04070 0.34871 +0.20000 0.00000 0.00791 -1.62358 -0.22414 0.67328 -0.21697 0.29037 -0.13936 0.37456 -0.56370 -1.13378 -0.49195 +0.30000 0.00000 0.00858 0.48653 -0.47418 -1.26140 1.78148 0.17478 1.63168 -0.88460 0.22147 -0.30615 0.66503 +1.10000 1.00000 0.93405 0.77399 0.45708 -0.07950 0.44372 -0.20407 -0.49405 1.29247 0.58411 0.98705 -0.72343 +0.20000 1.00000 0.12498 -0.92650 0.64570 -0.62010 -1.39367 0.45445 -1.66181 -0.70280 -0.70214 -0.13226 -0.05173 +0.20000 1.00000 0.17057 -0.93230 -1.18796 0.27497 0.09378 0.15336 1.46695 -0.49255 -0.85503 -0.75010 -0.04250 +0.60000 0.00000 0.04770 0.34804 0.94995 0.72538 0.12419 0.98893 -1.30715 -0.83709 -1.53859 -1.18164 -0.10363 +3.10000 0.00000 0.24878 -0.27524 0.98860 0.52618 1.68672 -1.63939 2.22568 -1.59679 -0.39047 0.54517 -0.70259 +0.10000 1.00000 0.00119 -0.65400 -1.64149 -1.36859 1.44073 1.66582 -0.14708 0.90595 -0.03035 0.81504 0.10136 +1.40000 1.00000 1.00203 -0.81662 1.33003 -0.98118 -0.97958 -0.92075 -0.61809 1.00900 0.34355 0.76449 -1.27193 +1.10000 0.00000 0.90981 1.91621 -0.83845 1.41652 1.16161 1.64779 -0.75305 -0.83859 0.84296 1.42585 -0.72301 +2.60000 1.00000 0.17914 1.40607 -0.28355 0.06399 -0.47987 -0.82742 -0.24348 -1.63302 -0.65638 1.43838 -1.57279 +3.30000 1.00000 1.36343 0.89757 0.22892 -1.46753 -0.35953 -0.95941 0.14817 0.41190 0.72845 -0.68264 -0.64940 +3.40000 0.00000 0.46038 0.76225 0.08295 -0.82201 -0.08767 -0.20032 0.69771 0.26845 -0.38886 -1.24166 -0.58442 +1.30000 1.00000 0.68943 -0.50308 -0.08961 1.02699 -0.14458 0.93932 -0.37125 -0.48852 -1.49178 0.16634 1.02284 +1.00000 0.00000 0.05161 0.67141 -0.81065 0.13612 1.83266 -0.20170 -1.16810 -0.75463 -2.02271 -1.55125 0.25792 +0.20000 1.00000 0.13066 -1.06267 -0.09016 -0.07905 1.56025 0.68883 -1.53289 1.13700 -1.26008 -0.21611 -0.97764 +4.00000 1.00000 0.94688 -0.70284 -0.68694 1.50505 -0.24536 -0.74781 -0.43438 -0.02517 -0.60913 -1.07802 0.41976 +0.30000 1.00000 0.00132 0.01796 1.26928 0.85887 -0.00670 -0.23357 0.35562 1.08288 -1.59691 3.00638 1.67534 +1.50000 1.00000 1.13608 1.16983 0.77347 0.41651 0.72949 -0.73281 1.17539 1.53487 1.81621 -0.25428 1.62423 +1.60000 0.00000 1.20554 0.05565 -0.52898 -0.14566 0.08737 0.90938 -0.07621 1.08019 -1.68943 0.44843 0.64478 +1.10000 0.00000 0.19445 -0.00957 -1.43771 2.33792 -1.27935 0.41219 -0.77601 -0.73709 -1.88358 -0.37912 -1.49641 +1.60000 1.00000 0.27986 1.50813 -0.51979 1.71542 1.52506 -1.06200 0.27987 2.39909 2.61405 -1.97769 0.29501 +1.40000 0.00000 0.04100 0.58992 0.13231 -0.29243 -0.50992 0.10282 -0.90073 0.00624 -0.65900 1.64648 -0.95289 +1.00000 0.00000 0.83413 0.82804 -0.06205 -1.14134 0.99848 -0.91858 -0.73159 -0.89335 -0.74471 -0.16358 0.77739 +0.70000 0.00000 0.09446 1.48083 0.80258 0.23336 1.19433 -0.68533 0.70738 0.15646 -0.17469 -1.00471 2.03512 +0.40000 0.00000 0.19390 2.40228 0.84566 0.27004 0.30415 0.10103 0.69431 -0.57915 -0.95526 0.33643 0.61523 +0.30000 1.00000 0.01813 -0.36579 -1.43385 -1.14985 0.74714 -1.44873 -2.47962 1.70665 0.31440 0.58379 -0.48322 +0.30000 1.00000 0.23005 0.33267 0.74881 -0.83343 0.12539 0.63773 1.24234 0.05388 0.37529 -1.35082 0.76315 +1.70000 0.00000 0.37298 0.35965 -0.18051 0.63746 1.28644 0.05868 -0.03454 1.67051 0.68689 0.64782 -0.63823 +1.10000 0.00000 0.56399 -0.75068 0.31384 -1.86374 -1.47222 0.16047 -0.09538 -2.27530 -2.15169 0.07035 0.99788 diff --git a/statsmodels/duration/tests/results/survival_data_100_5.csv b/statsmodels/duration/tests/results/survival_data_100_5.csv new file mode 100644 index 0000000..f81d97f --- /dev/null +++ b/statsmodels/duration/tests/results/survival_data_100_5.csv @@ -0,0 +1,100 @@ +2.00000 0.00000 0.04088 1.65888 0.43887 2.16009 1.53852 -0.32477 +0.80000 0.00000 0.64317 -0.01543 1.27200 0.06238 -1.39983 0.28912 +0.70000 0.00000 0.62035 0.01568 1.10189 1.08241 0.28838 0.03060 +0.20000 0.00000 0.00396 1.92122 -0.74627 -0.20202 -0.49432 0.18627 +1.30000 0.00000 0.48061 0.03445 0.62648 -0.05107 0.21468 -1.33564 +0.10000 1.00000 0.00311 -0.42507 -0.02765 0.92646 -1.79002 0.46062 +0.10000 1.00000 0.00360 -1.92760 -0.97652 0.33572 1.09292 0.99413 +0.20000 1.00000 0.16825 -0.92224 -1.46157 -0.83315 1.27701 0.89145 +1.90000 0.00000 0.31681 0.47668 -2.21992 -1.23187 0.17330 -0.71609 +0.20000 1.00000 0.11154 -0.78852 -0.22280 -0.39515 0.49144 0.73336 +0.20000 0.00000 0.08597 0.63231 0.55002 0.32947 0.04749 -0.85148 +0.60000 1.00000 0.07035 -0.98309 0.24301 -0.72338 0.81746 -1.26767 +0.90000 1.00000 0.12016 -0.95699 -0.79824 -0.33108 1.09238 -1.56246 +0.90000 1.00000 0.02773 0.71522 0.92762 -0.58902 1.14907 0.04783 +1.10000 0.00000 0.69469 0.23457 0.83722 -0.50415 0.55788 -0.06246 +1.20000 0.00000 0.75846 -0.48568 0.26540 -0.65537 1.36581 -0.12905 +0.90000 1.00000 0.18518 -0.64696 1.20687 -1.18730 1.23675 -0.30962 +0.40000 1.00000 0.05883 -0.81157 0.13249 -1.84991 0.19780 0.79789 +0.30000 1.00000 0.29091 0.50970 1.45016 0.02051 1.09439 0.66784 +0.90000 0.00000 0.21925 1.25407 -0.55512 0.06966 -0.22258 -1.92762 +0.80000 0.00000 0.52030 -1.82573 -0.96723 3.06176 -0.78653 -1.03201 +0.50000 0.00000 0.31396 -1.50465 0.34928 -0.28756 -0.75276 -1.60910 +2.80000 0.00000 0.50161 -0.51879 1.85085 1.62061 1.62330 0.31456 +0.20000 0.00000 0.17478 0.51892 -2.01221 0.24535 0.33276 -0.00219 +0.70000 1.00000 0.02345 1.01616 -2.08282 0.85616 0.20281 0.85377 +0.50000 0.00000 0.02822 -1.22080 0.43769 -0.94754 -1.30187 0.90808 +0.60000 0.00000 0.35722 1.42375 -0.38970 -0.64537 -1.08120 -0.66272 +0.10000 0.00000 0.01318 -2.32399 -0.32153 -0.64911 2.44607 -0.67781 +0.70000 1.00000 0.33234 -0.86239 2.74390 -0.26652 -1.38002 -1.72868 +0.30000 1.00000 0.01818 -0.00276 -0.73023 -0.07908 -0.36846 0.24726 +2.50000 1.00000 0.12683 -0.20405 1.38441 0.11380 -1.55265 1.61875 +1.90000 1.00000 1.05276 0.46781 0.14070 -2.79994 0.69604 -0.71800 +0.30000 0.00000 0.12424 0.34365 -1.30879 0.06613 -1.80332 0.50442 +2.00000 1.00000 0.16247 -0.31284 -1.08730 -0.08539 0.00160 -1.68699 +2.10000 1.00000 0.19426 -0.31993 0.21405 -0.52766 -1.15955 -1.66554 +0.20000 1.00000 0.01721 0.25259 0.37725 1.05776 0.20531 0.00615 +0.20000 0.00000 0.08898 0.25225 -0.59453 -1.68651 0.01607 -0.13487 +3.30000 1.00000 0.36441 1.58715 0.10576 0.90020 -0.64476 0.16278 +1.60000 1.00000 0.25111 0.25002 0.29993 0.17598 -0.01910 0.14305 +1.00000 1.00000 0.91850 0.51040 -0.37021 -1.11632 0.21391 -0.13709 +1.50000 1.00000 0.85495 1.01267 0.53073 1.60362 0.91206 -0.06950 +1.70000 0.00000 0.98528 -0.03470 0.46678 0.51241 1.81681 -0.87271 +1.50000 0.00000 0.45072 1.22177 -0.33281 -0.21419 0.30984 0.25901 +0.30000 1.00000 0.01095 0.08628 0.06831 -0.55069 -0.98570 -1.47021 +0.70000 1.00000 0.20957 0.09985 0.55591 -0.14907 1.44737 -0.19020 +1.80000 0.00000 0.48048 -0.15396 2.06115 0.73874 -0.63995 0.83598 +1.20000 1.00000 0.05958 1.34778 1.18792 -0.37932 2.49795 0.34569 +1.60000 0.00000 0.37681 0.42462 0.39925 0.31818 -1.24178 -2.10098 +1.60000 0.00000 0.27681 0.43797 0.42857 0.71614 0.47339 -0.69239 +1.50000 0.00000 0.16083 -0.68583 -1.09449 0.14085 0.15615 -2.17219 +0.30000 0.00000 0.11799 0.84516 0.60886 -0.02455 -0.88110 -0.78903 +1.30000 0.00000 0.47439 1.14278 0.22765 0.00355 1.24747 -0.44769 +1.00000 0.00000 0.34329 1.13115 -0.71649 0.20680 -0.62674 0.11690 +0.90000 0.00000 0.07241 0.87043 -0.52193 -1.82556 -0.96574 -0.46303 +1.50000 1.00000 0.40548 0.17182 1.23767 -0.22511 0.92575 -0.99200 +0.70000 0.00000 0.13319 0.64169 0.50024 -1.40025 -0.22809 0.37239 +0.40000 1.00000 0.30444 -1.48351 -0.71597 1.13583 -0.31381 0.17228 +0.40000 0.00000 0.00518 0.78247 0.27451 0.90321 0.88329 0.87831 +0.10000 1.00000 0.06982 -0.40623 -0.59915 0.16943 0.65481 0.74213 +0.20000 1.00000 0.02326 0.98320 -0.33050 -1.45162 1.03546 0.05095 +1.70000 1.00000 0.26671 0.39948 -0.01170 -1.99802 1.09214 0.38202 +0.50000 1.00000 0.20631 1.85586 1.26267 1.09781 0.26681 0.86920 +0.30000 1.00000 0.03166 -1.12012 -2.17322 -0.81189 0.47966 0.66974 +0.40000 0.00000 0.17714 -0.62389 0.11727 0.30922 0.45983 -1.18198 +0.90000 0.00000 0.39204 -1.45848 0.60149 0.40569 -0.14587 -0.41534 +0.30000 0.00000 0.03714 0.83848 0.53119 -0.58428 1.31723 -1.24635 +1.10000 0.00000 0.46379 0.21576 -0.81655 0.31364 -0.27610 -1.03055 +1.40000 0.00000 0.71581 0.88179 2.50473 -1.20963 0.22792 -0.68145 +0.50000 1.00000 0.04560 -0.13862 1.38279 -0.96235 1.86021 0.77598 +0.10000 0.00000 0.05473 0.46752 -1.80012 -0.98436 0.60777 -0.35878 +0.80000 1.00000 0.42481 -0.40098 2.76071 0.74394 1.09659 0.23616 +0.30000 0.00000 0.23718 -0.32013 0.39748 -0.88636 -1.68891 0.75689 +0.50000 0.00000 0.03726 0.59910 -0.14940 -0.01991 -0.28925 0.23417 +0.30000 0.00000 0.12740 0.15096 0.90280 -0.61087 0.48783 1.80243 +0.70000 1.00000 0.63824 0.55312 -0.76756 -1.62404 0.50754 1.83655 +1.60000 0.00000 0.03744 -0.92345 -0.40163 -0.14609 -0.71917 -0.39060 +3.20000 0.00000 0.52178 0.30277 -0.17976 -0.45561 -0.48284 -1.54195 +0.90000 0.00000 0.04532 -0.14812 0.03298 -0.11498 0.09681 -2.37051 +0.80000 0.00000 0.36657 -0.97253 -0.04856 0.14913 0.00607 0.78143 +0.60000 1.00000 0.03655 -0.99128 0.85325 1.24141 -1.52963 1.18147 +0.40000 0.00000 0.01616 1.21142 -2.49815 2.32805 0.95173 0.40863 +0.30000 1.00000 0.00955 -2.06282 -1.01843 -1.49079 0.84123 1.16571 +0.40000 1.00000 0.01111 -0.02352 -1.14282 -1.73493 -0.08088 0.22988 +1.00000 1.00000 0.14784 0.66488 -0.55177 0.29813 1.06110 -0.09346 +0.10000 0.00000 0.01538 -0.01239 -0.38551 0.90332 0.98841 -1.09158 +1.80000 1.00000 1.44280 1.15346 1.52878 -0.78441 0.74890 1.19751 +0.40000 0.00000 0.14388 -0.62050 1.33600 -1.25079 1.04416 1.09523 +0.50000 0.00000 0.25285 0.43475 -0.66619 -1.80572 -1.41659 -0.18333 +0.70000 1.00000 0.12394 0.07814 -0.49443 0.52055 -0.85472 1.47196 +1.00000 0.00000 0.00122 1.35184 -0.75871 -0.33501 -0.20529 1.28920 +0.90000 1.00000 0.41370 0.54683 1.24851 -1.14847 -0.04749 1.60048 +0.10000 1.00000 0.06023 0.32626 -0.11112 -0.10537 0.58654 0.55261 +1.30000 0.00000 0.27967 -0.77736 -0.03111 -3.14766 -0.79793 -0.72638 +0.70000 0.00000 0.36676 -0.77517 0.31001 -1.09973 -1.75452 -0.82917 +0.30000 1.00000 0.13509 -0.12913 1.30423 -1.15341 0.04622 0.52666 +1.80000 0.00000 0.11982 -0.64227 -0.51723 0.64616 -1.48093 -0.81054 +1.10000 1.00000 0.26003 -0.04358 -0.64401 1.67422 -1.79441 -1.28941 +1.00000 0.00000 0.98041 1.36679 0.03887 0.94946 -1.98330 -1.71907 +0.50000 1.00000 0.48143 0.25458 0.05441 0.11660 0.00090 -0.40448 +1.80000 1.00000 0.15619 0.29362 -1.22544 -0.09859 0.02863 -1.39324 diff --git a/statsmodels/duration/tests/results/survival_data_20_1.csv b/statsmodels/duration/tests/results/survival_data_20_1.csv new file mode 100644 index 0000000..8b6910e --- /dev/null +++ b/statsmodels/duration/tests/results/survival_data_20_1.csv @@ -0,0 +1,20 @@ +0.70000 1.00000 0.17884 -0.80807 +0.60000 0.00000 0.23284 -0.10099 +1.40000 1.00000 0.07038 -0.34916 +0.80000 1.00000 0.04943 1.32464 +0.40000 1.00000 0.19263 -1.51983 +0.70000 0.00000 0.11941 0.75329 +0.40000 1.00000 0.16606 0.13835 +1.20000 0.00000 0.05183 0.97574 +1.20000 0.00000 0.27814 1.15109 +0.30000 0.00000 0.26536 -0.07403 +0.50000 1.00000 0.15457 -1.10065 +0.40000 1.00000 0.19745 -0.64876 +0.30000 1.00000 0.07634 0.76335 +1.10000 0.00000 0.25912 0.86522 +0.50000 1.00000 0.00805 -0.27593 +1.50000 0.00000 0.47960 0.24884 +0.10000 0.00000 0.00516 0.33618 +0.20000 0.00000 0.07805 0.39894 +1.30000 1.00000 0.28314 0.19641 +0.70000 0.00000 0.29323 0.70037 diff --git a/statsmodels/duration/tests/results/survival_data_50_1.csv b/statsmodels/duration/tests/results/survival_data_50_1.csv new file mode 100644 index 0000000..0914f4f --- /dev/null +++ b/statsmodels/duration/tests/results/survival_data_50_1.csv @@ -0,0 +1,50 @@ +1.10000 0.00000 0.34994 -0.01447 +0.50000 0.00000 0.19143 0.10335 +0.20000 1.00000 0.07772 -0.23178 +0.40000 1.00000 0.20723 -2.16909 +1.00000 0.00000 0.15399 -0.10232 +0.40000 1.00000 0.03610 -0.49694 +0.40000 1.00000 0.12840 -1.20376 +0.20000 0.00000 0.14323 0.78727 +0.30000 0.00000 0.29799 0.31506 +0.20000 1.00000 0.14530 0.89771 +1.80000 0.00000 0.20163 2.18046 +0.20000 1.00000 0.08723 -0.49941 +0.70000 0.00000 0.62887 0.74497 +1.70000 0.00000 1.26137 0.31418 +1.00000 1.00000 0.61647 1.54372 +0.70000 0.00000 0.16552 1.02511 +0.80000 1.00000 0.24764 0.03132 +0.60000 1.00000 0.31866 -0.75876 +0.10000 0.00000 0.04446 0.16542 +0.40000 0.00000 0.28586 0.12311 +0.50000 1.00000 0.36568 -0.70318 +0.40000 1.00000 0.06591 0.10302 +2.40000 0.00000 0.62202 0.89696 +0.30000 1.00000 0.04989 -2.19325 +0.50000 0.00000 0.14153 0.35311 +1.20000 0.00000 0.32188 0.37552 +1.20000 1.00000 0.43017 0.85034 +0.20000 0.00000 0.08460 0.69427 +0.40000 0.00000 0.11157 1.02984 +1.90000 1.00000 0.82567 0.56098 +0.70000 1.00000 0.03936 -0.32045 +0.40000 1.00000 0.29959 -0.53575 +0.50000 0.00000 0.40070 -2.07033 +2.80000 0.00000 0.47653 -0.13154 +1.70000 0.00000 0.90095 1.60037 +0.70000 0.00000 0.12335 0.39483 +0.80000 0.00000 0.56741 -0.29127 +0.40000 1.00000 0.35975 -0.62702 +0.60000 0.00000 0.34351 -0.60780 +1.00000 0.00000 0.54425 -0.83077 +2.40000 1.00000 0.15080 0.01460 +1.50000 0.00000 0.15170 2.29830 +1.00000 1.00000 0.09671 0.80049 +0.30000 1.00000 0.23474 0.28060 +0.90000 0.00000 0.56784 -0.45666 +1.60000 1.00000 0.73536 0.17942 +0.20000 0.00000 0.19858 1.43121 +0.30000 0.00000 0.10249 0.63181 +0.40000 0.00000 0.15787 -0.86227 +1.10000 1.00000 0.40295 0.73249 diff --git a/statsmodels/duration/tests/results/survival_data_50_2.csv b/statsmodels/duration/tests/results/survival_data_50_2.csv new file mode 100644 index 0000000..631c927 --- /dev/null +++ b/statsmodels/duration/tests/results/survival_data_50_2.csv @@ -0,0 +1,50 @@ +1.00000 1.00000 0.03528 -0.38315 -1.11646 +0.30000 1.00000 0.01149 -2.16263 0.67790 +1.50000 1.00000 1.19729 1.33121 -0.43045 +0.70000 1.00000 0.53896 0.84117 -0.63001 +0.20000 1.00000 0.16054 -0.95780 -0.82060 +0.90000 1.00000 0.30738 -1.08477 -0.06120 +0.40000 0.00000 0.12942 -1.76866 -0.04241 +0.50000 1.00000 0.13266 -0.26914 -1.53422 +0.90000 0.00000 0.15526 -0.81154 -0.36088 +0.60000 0.00000 0.12826 0.33186 0.65154 +0.70000 0.00000 0.22373 0.92204 0.25643 +1.20000 1.00000 0.48185 -0.43982 0.31456 +0.90000 0.00000 0.63365 -1.04665 -2.21337 +0.60000 0.00000 0.07299 -2.42939 0.18910 +1.20000 1.00000 0.69923 -0.29619 0.26199 +0.80000 0.00000 0.10030 0.85841 0.88421 +0.80000 1.00000 0.63120 -0.36353 0.26827 +0.70000 1.00000 0.55604 -1.95990 -0.44759 +1.10000 0.00000 0.40564 0.88427 -1.96625 +0.20000 1.00000 0.03342 0.64777 -0.36391 +0.10000 1.00000 0.06233 -0.64523 0.51863 +1.10000 1.00000 0.04864 2.43561 0.44143 +1.00000 0.00000 0.14794 1.51211 -1.71867 +1.30000 1.00000 0.16023 -0.49040 -0.02378 +0.40000 1.00000 0.24862 0.08828 -0.70830 +0.50000 0.00000 0.12510 1.64139 -0.07560 +1.90000 1.00000 0.57775 0.22910 -0.06035 +0.60000 0.00000 0.21988 -0.61760 -0.84216 +1.50000 0.00000 0.73572 -0.31742 -0.50461 +0.20000 0.00000 0.09880 0.01778 -0.61300 +2.70000 1.00000 0.68267 0.46799 -1.20130 +0.20000 0.00000 0.00640 -0.57452 0.07641 +1.00000 0.00000 0.53120 0.10882 -1.29716 +1.40000 0.00000 0.39915 1.78210 -0.98747 +0.30000 1.00000 0.24249 -0.52481 -0.00631 +1.50000 0.00000 0.90297 -0.15558 -0.41401 +0.60000 0.00000 0.11513 1.91513 0.84025 +2.90000 0.00000 1.22897 0.83216 0.05158 +0.20000 1.00000 0.14026 -0.15508 2.57765 +0.20000 1.00000 0.02342 -0.43017 -0.19378 +0.10000 1.00000 0.01043 -2.09826 1.82889 +1.00000 0.00000 0.12414 -0.15255 -0.78868 +0.10000 0.00000 0.08182 2.05096 -0.00273 +0.70000 0.00000 0.50106 -1.11553 -0.37599 +0.70000 0.00000 0.04540 0.20011 -1.63279 +0.70000 1.00000 0.41003 1.04118 0.07873 +0.40000 1.00000 0.33584 -1.70869 -0.94676 +1.20000 0.00000 0.59698 0.21795 -2.65967 +1.10000 0.00000 0.90747 1.10303 2.21828 +0.20000 0.00000 0.15655 1.50321 0.88795 diff --git a/statsmodels/duration/tests/survival.R b/statsmodels/duration/tests/survival.R new file mode 100644 index 0000000..82de69e --- /dev/null +++ b/statsmodels/duration/tests/survival.R @@ -0,0 +1,68 @@ +library(survival) +library(R2nparray) + +ixd = list(c(20,1), c(50,1), c(50,2), c(100,5), c(1000,10)) + +res = list() + +for (ix in ixd) { + fname = sprintf("results/survival_data_%d_%d.csv", ix[1], ix[2]) + data = read.table(fname) + + time = data[,1] + status = data[,2] + entry = data[,3] + exog = data[,4:dim(data)[2]] + exog = as.matrix(exog) + n = dim(exog)[1] + p = dim(exog)[2] + + # Needs to match the kronecker statement in test_phreg.py + strata = kronecker(seq(5), array(1, n/5)) + + for (ties in c("breslow", "efron")) { + + ti = substr(ties, 1, 3) + + # Base model + surv = Surv(time, status) + md = coxph(surv ~ exog, ties=ties) + tag = sprintf("%d_%d_%s", n, p, ti) + res[[sprintf("coef_%s", tag)]] = md$coef + res[[sprintf("se_%s", tag)]] = sqrt(diag(md$var)) + #bhaz = basehaz(md) + bhaz = survfit(md, type="aalen") + #bhaz = survfit(md, type="efron") + res[[sprintf("time_%s", tag)]] = bhaz$time + res[[sprintf("hazard_%s", tag)]] = -log(bhaz$surv) + + # With entry time + surv = Surv(entry, time, status) + md = coxph(surv ~ exog, ties=ties) + tag = sprintf("%d_%d_et_%s", n, p, ti) + res[[sprintf("coef_%s", tag)]] = md$coef + res[[sprintf("se_%s", tag)]] = sqrt(diag(md$var)) + res[[sprintf("time_%s", tag)]] = c(0) + res[[sprintf("hazard_%s", tag)]] = c(0) + + # With strata + surv = Surv(time, status) + md = coxph(surv ~ exog + strata(strata), ties=ties) + tag = sprintf("%d_%d_st_%s", n, p, ti) + res[[sprintf("coef_%s", tag)]] = md$coef + res[[sprintf("se_%s", tag)]] = sqrt(diag(md$var)) + res[[sprintf("time_%s", tag)]] = c(0) + res[[sprintf("hazard_%s", tag)]] = c(0) + + # With entry time and strata + surv = Surv(entry, time, status) + md = coxph(surv ~ exog + strata(strata), ties=ties) + tag = sprintf("%d_%d_et_st_%s", n, p, ti) + res[[sprintf("coef_%s", tag)]] = md$coef + res[[sprintf("se_%s", tag)]] = sqrt(diag(md$var)) + res[[sprintf("time_%s", tag)]] = c(0) + res[[sprintf("hazard_%s", tag)]] = c(0) + } +} + +R2nparray(res, fname="survival_r_results.py") diff --git a/statsmodels/duration/tests/survival_enet_r_results.py b/statsmodels/duration/tests/survival_enet_r_results.py new file mode 100644 index 0000000..f1bfba0 --- /dev/null +++ b/statsmodels/duration/tests/survival_enet_r_results.py @@ -0,0 +1,10 @@ +import numpy as np + +coef_50_2_0 = np.array([-0.6748149,0.5219471]) + +coef_50_2_1 = np.array([-0.3464841,0.211115]) + +coef_100_5_0 = np.array([-0.4839566,-0.3130558,-0.1239565,0.3466049,0.5827503]) + +coef_100_5_1 = np.array([-0.1314948,0,0,0.0324285,0.2364489]) + diff --git a/statsmodels/duration/tests/survival_r_results.py b/statsmodels/duration/tests/survival_r_results.py new file mode 100644 index 0000000..ce4aa4e --- /dev/null +++ b/statsmodels/duration/tests/survival_r_results.py @@ -0,0 +1,321 @@ +import numpy as np + +coef_20_1_bre = np.array([-0.9185611]) + +se_20_1_bre = np.array([0.4706831]) + +time_20_1_bre = np.array([0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,1.1,1.2,1.3,1.4,1.5]) + +hazard_20_1_bre = np.array([0,0,0.04139181,0.1755379,0.3121216,0.3121216,0.4263121,0.6196358,0.6196358,0.6196358,0.909556,1.31083,1.31083]) + +coef_20_1_et_bre = np.array([-0.8907007]) + +se_20_1_et_bre = np.array([0.4683384]) + +time_20_1_et_bre = np.array([0]) + +hazard_20_1_et_bre = np.array([0]) + +coef_20_1_st_bre = np.array([-0.5766809]) + +se_20_1_st_bre = np.array([0.4418918]) + +time_20_1_st_bre = np.array([0]) + +hazard_20_1_st_bre = np.array([0]) + +coef_20_1_et_st_bre = np.array([-0.5785683]) + +se_20_1_et_st_bre = np.array([0.4388437]) + +time_20_1_et_st_bre = np.array([0]) + +hazard_20_1_et_st_bre = np.array([0]) + +coef_20_1_efr = np.array([-0.9975319]) + +se_20_1_efr = np.array([0.4792421]) + +time_20_1_efr = np.array([0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,1.1,1.2,1.3,1.4,1.5]) + +hazard_20_1_efr = np.array([0,0,0.03934634,0.1663316,0.2986427,0.2986427,0.4119189,0.6077373,0.6077373,0.6077373,0.8933041,1.285732,1.285732]) + +coef_20_1_et_efr = np.array([-0.9679541]) + +se_20_1_et_efr = np.array([0.4766406]) + +time_20_1_et_efr = np.array([0]) + +hazard_20_1_et_efr = np.array([0]) + +coef_20_1_st_efr = np.array([-0.6345294]) + +se_20_1_st_efr = np.array([0.4455952]) + +time_20_1_st_efr = np.array([0]) + +hazard_20_1_st_efr = np.array([0]) + +coef_20_1_et_st_efr = np.array([-0.6355622]) + +se_20_1_et_st_efr = np.array([0.4423104]) + +time_20_1_et_st_efr = np.array([0]) + +hazard_20_1_et_st_efr = np.array([0]) + +coef_50_1_bre = np.array([-0.6761247]) + +se_50_1_bre = np.array([0.25133]) + +time_50_1_bre = np.array([0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1,1.1,1.2,1.5,1.6,1.7,1.8,1.9,2.4,2.8]) + +hazard_50_1_bre = np.array([0,0.04895521,0.08457461,0.2073863,0.2382473,0.2793018,0.3271622,0.3842953,0.3842953,0.5310807,0.6360276,0.7648251,0.7648251,0.9294298,0.9294298,0.9294298,1.206438,1.555569,1.555569]) + +coef_50_1_et_bre = np.array([-0.6492871]) + +se_50_1_et_bre = np.array([0.2542493]) + +time_50_1_et_bre = np.array([0]) + +hazard_50_1_et_bre = np.array([0]) + +coef_50_1_st_bre = np.array([-0.7051135]) + +se_50_1_st_bre = np.array([0.2852093]) + +time_50_1_st_bre = np.array([0]) + +hazard_50_1_st_bre = np.array([0]) + +coef_50_1_et_st_bre = np.array([-0.8672546]) + +se_50_1_et_st_bre = np.array([0.3443235]) + +time_50_1_et_st_bre = np.array([0]) + +hazard_50_1_et_st_bre = np.array([0]) + +coef_50_1_efr = np.array([-0.7119322]) + +se_50_1_efr = np.array([0.2533563]) + +time_50_1_efr = np.array([0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1,1.1,1.2,1.5,1.6,1.7,1.8,1.9,2.4,2.8]) + +hazard_50_1_efr = np.array([0,0.04773902,0.08238731,0.2022993,0.2327053,0.2736316,0.3215519,0.3787123,0.3787123,0.526184,0.6323073,0.7627338,0.7627338,0.9288858,0.9288858,0.9288858,1.206835,1.556054,1.556054]) + +coef_50_1_et_efr = np.array([-0.7103063]) + +se_50_1_et_efr = np.array([0.2598129]) + +time_50_1_et_efr = np.array([0]) + +hazard_50_1_et_efr = np.array([0]) + +coef_50_1_st_efr = np.array([-0.7417904]) + +se_50_1_st_efr = np.array([0.2846437]) + +time_50_1_st_efr = np.array([0]) + +hazard_50_1_st_efr = np.array([0]) + +coef_50_1_et_st_efr = np.array([-0.9276112]) + +se_50_1_et_st_efr = np.array([0.3462638]) + +time_50_1_et_st_efr = np.array([0]) + +hazard_50_1_et_st_efr = np.array([0]) + +coef_50_2_bre = np.array([-0.5935189,0.5035724]) + +se_50_2_bre = np.array([0.2172841,0.2399933]) + +time_50_2_bre = np.array([0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1,1.1,1.2,1.3,1.4,1.5,1.9,2.7,2.9]) + +hazard_50_2_bre = np.array([0.02695812,0.09162381,0.1309537,0.1768423,0.2033353,0.2033353,0.3083449,0.3547287,0.4076453,0.4761318,0.5579718,0.7610905,0.918962,0.918962,1.136173,1.605757,2.457676,2.457676]) + +coef_50_2_et_bre = np.array([-0.4001465,0.4415933]) + +se_50_2_et_bre = np.array([0.1992302,0.2525949]) + +time_50_2_et_bre = np.array([0]) + +hazard_50_2_et_bre = np.array([0]) + +coef_50_2_st_bre = np.array([-0.6574891,0.4416079]) + +se_50_2_st_bre = np.array([0.2753398,0.269458]) + +time_50_2_st_bre = np.array([0]) + +hazard_50_2_st_bre = np.array([0]) + +coef_50_2_et_st_bre = np.array([-0.3607069,0.2731982]) + +se_50_2_et_st_bre = np.array([0.255415,0.306942]) + +time_50_2_et_st_bre = np.array([0]) + +hazard_50_2_et_st_bre = np.array([0]) + +coef_50_2_efr = np.array([-0.6107485,0.5309737]) + +se_50_2_efr = np.array([0.2177713,0.2440535]) + +time_50_2_efr = np.array([0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1,1.1,1.2,1.3,1.4,1.5,1.9,2.7,2.9]) + +hazard_50_2_efr = np.array([0.02610571,0.08933637,0.1279094,0.1731699,0.19933,0.19933,0.303598,0.3497025,0.4023939,0.4706978,0.5519237,0.7545023,0.9129989,0.9129989,1.13186,1.60574,2.472615,2.472615]) + +coef_50_2_et_efr = np.array([-0.4092002,0.4871344]) + +se_50_2_et_efr = np.array([0.1968905,0.2608527]) + +time_50_2_et_efr = np.array([0]) + +hazard_50_2_et_efr = np.array([0]) + +coef_50_2_st_efr = np.array([-0.6631286,0.4663285]) + +se_50_2_st_efr = np.array([0.2748224,0.273603]) + +time_50_2_st_efr = np.array([0]) + +hazard_50_2_st_efr = np.array([0]) + +coef_50_2_et_st_efr = np.array([-0.3656059,0.2943912]) + +se_50_2_et_st_efr = np.array([0.2540752,0.3124632]) + +time_50_2_et_st_efr = np.array([0]) + +hazard_50_2_et_st_efr = np.array([0]) + +coef_100_5_bre = np.array([-0.529776,-0.2916374,-0.1205425,0.3493476,0.6034305]) + +se_100_5_bre = np.array([0.1789305,0.1482505,0.1347422,0.1528205,0.1647927]) + +time_100_5_bre = np.array([0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2,2.1,2.5,2.8,3.2,3.3]) + +hazard_100_5_bre = np.array([0.02558588,0.05608812,0.1087773,0.1451098,0.1896703,0.2235791,0.3127521,0.3355107,0.439452,0.504983,0.5431706,0.5841462,0.5841462,0.5841462,0.6916466,0.7540191,0.8298704,1.027876,1.170335,1.379306,1.648758,1.943177,1.943177,1.943177,4.727101]) + +coef_100_5_et_bre = np.array([-0.4000784,-0.1790941,-0.1378969,0.3288529,0.533246]) + +se_100_5_et_bre = np.array([0.1745655,0.1513545,0.1393968,0.1487803,0.1686992]) + +time_100_5_et_bre = np.array([0]) + +hazard_100_5_et_bre = np.array([0]) + +coef_100_5_st_bre = np.array([-0.53019,-0.3225739,-0.1241568,0.3246598,0.6196859]) + +se_100_5_st_bre = np.array([0.1954581,0.1602811,0.1470644,0.17121,0.1784115]) + +time_100_5_st_bre = np.array([0]) + +hazard_100_5_st_bre = np.array([0]) + +coef_100_5_et_st_bre = np.array([-0.3977171,-0.2166136,-0.1387623,0.3251726,0.5664705]) + +se_100_5_et_st_bre = np.array([0.1951054,0.1707925,0.1501968,0.1699932,0.1843428]) + +time_100_5_et_st_bre = np.array([0]) + +hazard_100_5_et_st_bre = np.array([0]) + +coef_100_5_efr = np.array([-0.5641909,-0.3233021,-0.1234858,0.3712328,0.6421963]) + +se_100_5_efr = np.array([0.1804027,0.1496253,0.1338531,0.1529832,0.1670848]) + +time_100_5_efr = np.array([0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2,2.1,2.5,2.8,3.2,3.3]) + +hazard_100_5_efr = np.array([0.02393412,0.05276399,0.1028432,0.1383859,0.1823461,0.2158107,0.3037825,0.3264864,0.4306648,0.4964367,0.5348595,0.5760305,0.5760305,0.5760305,0.6842238,0.7468135,0.8228841,1.023195,1.166635,1.379361,1.652898,1.950119,1.950119,1.950119,4.910635]) + +coef_100_5_et_efr = np.array([-0.4338666,-0.2140139,-0.1397387,0.3535993,0.5768645]) + +se_100_5_et_efr = np.array([0.1756485,0.1527244,0.138298,0.1488427,0.1716654]) + +time_100_5_et_efr = np.array([0]) + +hazard_100_5_et_efr = np.array([0]) + +coef_100_5_st_efr = np.array([-0.5530876,-0.3331652,-0.128381,0.3503472,0.6397813]) + +se_100_5_st_efr = np.array([0.1969338,0.1614976,0.1464088,0.171299,0.1800787]) + +time_100_5_st_efr = np.array([0]) + +hazard_100_5_st_efr = np.array([0]) + +coef_100_5_et_st_efr = np.array([-0.421153,-0.2350069,-0.1433638,0.3538863,0.5934568]) + +se_100_5_et_st_efr = np.array([0.1961729,0.1724719,0.1492979,0.170464,0.1861849]) + +time_100_5_et_st_efr = np.array([0]) + +hazard_100_5_et_st_efr = np.array([0]) + +coef_1000_10_bre = np.array([-0.4699279,-0.464557,-0.308411,-0.2158298,-0.09048563,0.09359662,0.112588,0.3343705,0.3480601,0.5634985]) + +se_1000_10_bre = np.array([0.04722914,0.04785291,0.04503528,0.04586872,0.04429793,0.0446141,0.04139944,0.04464292,0.04559903,0.04864393]) + +time_1000_10_bre = np.array([0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2,2.1,2.2,2.3,2.4,2.5,2.6,2.7,2.8,2.9,3,3.1,3.2,3.3,3.4,3.5,3.6,3.7,3.8,3.9,4,4.1,4.2,4.3,4.4,4.6,4.8,4.9,5,5.1,5.2,5.7,5.8,5.9,6.9]) + +hazard_1000_10_bre = np.array([0.01610374,0.04853538,0.08984849,0.1311329,0.168397,0.2230488,0.2755388,0.3312606,0.3668702,0.4146558,0.477935,0.5290705,0.5831775,0.6503129,0.7113068,0.7830385,0.8361717,0.8910061,0.9615944,1.024011,1.113399,1.165349,1.239827,1.352902,1.409548,1.53197,1.601843,1.682158,1.714907,1.751564,1.790898,1.790898,1.83393,1.83393,1.936055,1.992303,2.050778,2.118776,2.263056,2.504999,2.739343,2.895514,3.090349,3.090349,3.391772,3.728142,4.152769,4.152769,4.152769,4.725957,4.725957,5.69653,5.69653,5.69653]) + +coef_1000_10_et_bre = np.array([-0.410889,-0.3929442,-0.2975845,-0.1851533,-0.0918359,0.1011997,0.106735,0.2899179,0.3220672,0.5069589]) + +se_1000_10_et_bre = np.array([0.04696754,0.04732169,0.04537707,0.04605371,0.04365232,0.04450021,0.04252475,0.04482007,0.04562374,0.04859727]) + +time_1000_10_et_bre = np.array([0]) + +hazard_1000_10_et_bre = np.array([0]) + +coef_1000_10_st_bre = np.array([-0.471015,-0.4766859,-0.3070839,-0.2091938,-0.09190845,0.0964942,0.1138269,0.3307131,0.3543551,0.562492]) + +se_1000_10_st_bre = np.array([0.04814778,0.04841938,0.04572291,0.04641227,0.04502525,0.04517603,0.04203737,0.04524356,0.04635037,0.04920866]) + +time_1000_10_st_bre = np.array([0]) + +hazard_1000_10_st_bre = np.array([0]) + +coef_1000_10_et_st_bre = np.array([-0.4165849,-0.4073504,-0.2980959,-0.1765194,-0.09152798,0.1013213,0.1009838,0.2859668,0.3247608,0.5044448]) + +se_1000_10_et_st_bre = np.array([0.04809818,0.04809499,0.0460829,0.04679922,0.0445294,0.04514045,0.04339298,0.04580591,0.04652447,0.04920744]) + +time_1000_10_et_st_bre = np.array([0]) + +hazard_1000_10_et_st_bre = np.array([0]) + +coef_1000_10_efr = np.array([-0.4894399,-0.4839746,-0.3227769,-0.2261293,-0.09318482,0.09767154,0.1173205,0.3493732,0.3640146,0.5879749]) + +se_1000_10_efr = np.array([0.0474181,0.04811855,0.04507655,0.04603044,0.04440409,0.04478202,0.04136728,0.04473343,0.045768,0.04891375]) + +time_1000_10_efr = np.array([0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2,2.1,2.2,2.3,2.4,2.5,2.6,2.7,2.8,2.9,3,3.1,3.2,3.3,3.4,3.5,3.6,3.7,3.8,3.9,4,4.1,4.2,4.3,4.4,4.6,4.8,4.9,5,5.1,5.2,5.7,5.8,5.9,6.9]) + +hazard_1000_10_efr = np.array([0.01549698,0.04680035,0.08682564,0.1269429,0.1632388,0.2167291,0.2682311,0.3231316,0.3582936,0.4054892,0.4681098,0.5188697,0.5727059,0.639571,0.7003012,0.7718979,0.825053,0.880063,0.950935,1.013828,1.103903,1.156314,1.231707,1.346235,1.40359,1.527475,1.598231,1.6795,1.712779,1.750227,1.790455,1.790455,1.834455,1.834455,1.938997,1.996804,2.056859,2.126816,2.275217,2.524027,2.76669,2.929268,3.13247,3.13247,3.448515,3.80143,4.249649,4.249649,4.249649,4.851365,4.851365,5.877307,5.877307,5.877307]) + +coef_1000_10_et_efr = np.array([-0.4373066,-0.4131901,-0.3177637,-0.1978493,-0.09679451,0.1092037,0.1136069,0.3088907,0.3442007,0.5394121]) + +se_1000_10_et_efr = np.array([0.04716041,0.04755342,0.04546713,0.04627802,0.04376583,0.04474868,0.04259991,0.04491564,0.04589027,0.04890847]) + +time_1000_10_et_efr = np.array([0]) + +hazard_1000_10_et_efr = np.array([0]) + +coef_1000_10_st_efr = np.array([-0.4911117,-0.4960756,-0.3226152,-0.220949,-0.09478141,0.1015735,0.1195524,0.3446977,0.3695904,0.5878576]) + +se_1000_10_st_efr = np.array([0.04833676,0.04868554,0.04578407,0.04661755,0.04518267,0.04537135,0.04202183,0.04531266,0.0464931,0.04949831]) + +time_1000_10_st_efr = np.array([0]) + +hazard_1000_10_st_efr = np.array([0]) + +coef_1000_10_et_st_efr = np.array([-0.444355,-0.4283278,-0.3198815,-0.1901781,-0.09727039,0.1106191,0.1092104,0.3034778,0.3451699,0.5382381]) + +se_1000_10_et_st_efr = np.array([0.04830664,0.04833619,0.04617371,0.04706401,0.04472699,0.0454208,0.04350539,0.04588588,0.04675675,0.04950987]) + +time_1000_10_et_st_efr = np.array([0]) + +hazard_1000_10_et_st_efr = np.array([0]) diff --git a/statsmodels/duration/tests/survival_regularized.R b/statsmodels/duration/tests/survival_regularized.R new file mode 100644 index 0000000..da3fb56 --- /dev/null +++ b/statsmodels/duration/tests/survival_regularized.R @@ -0,0 +1,35 @@ +library(glmnet) +library(survival) +library(R2nparray) + +# List containing (sample size, # covariates) for each data set +ixd = list(c(50,2), c(100,5)) + +res = list() + +for (ix in ixd) { + + fname = sprintf("results/survival_data_%d_%d.csv", ix[1], ix[2]) + data = read.table(fname) + + time = data[,1] + status = data[,2] + entry = data[,3] + exog = data[,4:dim(data)[2]] + exog = as.matrix(exog) + n = dim(exog)[1] + p = dim(exog)[2] + + for (k in 1:p) { + exog[,k] = (exog[,k] - mean(exog[,k])) / sd(exog[,k]) + } + + surv = Surv(time, status) + md = glmnet(exog, surv, family="cox", lambda=c(0, 0.1)) + #md1 = coxph(surv ~ exog, ties="breslow") + tag = sprintf("%d_%d", n, p) + res[[sprintf("coef_%s_0", tag)]] = as.vector(coef(md, s=0)) + res[[sprintf("coef_%s_1", tag)]] = as.vector(coef(md, s=0.1)) +} + +R2nparray(res, fname="survival_enet_r_results.py") diff --git a/statsmodels/duration/tests/test_phreg.py b/statsmodels/duration/tests/test_phreg.py new file mode 100644 index 0000000..bbd00ed --- /dev/null +++ b/statsmodels/duration/tests/test_phreg.py @@ -0,0 +1,420 @@ +import os +import numpy as np +from statsmodels.duration.hazard_regression import PHReg +from numpy.testing import (assert_allclose, + assert_equal, assert_) +import pandas as pd + +# TODO: Include some corner cases: data sets with empty strata, strata +# with no events, entry times after censoring times, etc. + +# All the R results +from . import survival_r_results +from . import survival_enet_r_results + +""" +Tests of PHReg against R coxph. + +Tests include entry times and stratification. + +phreg_gentests.py generates the test data sets and puts them into the +results folder. + +survival.R runs R on all the test data sets and constructs the +survival_r_results module. +""" + +# Arguments passed to the PHReg fit method. +args = {"method": "bfgs", "disp": 0} + +def get_results(n, p, ext, ties): + if ext is None: + coef_name = "coef_%d_%d_%s" % (n, p, ties) + se_name = "se_%d_%d_%s" % (n, p, ties) + time_name = "time_%d_%d_%s" % (n, p, ties) + hazard_name = "hazard_%d_%d_%s" % (n, p, ties) + else: + coef_name = "coef_%d_%d_%s_%s" % (n, p, ext, ties) + se_name = "se_%d_%d_%s_%s" % (n, p, ext, ties) + time_name = "time_%d_%d_%s_%s" % (n, p, ext, ties) + hazard_name = "hazard_%d_%d_%s_%s" % (n, p, ext, ties) + coef = getattr(survival_r_results, coef_name) + se = getattr(survival_r_results, se_name) + time = getattr(survival_r_results, time_name) + hazard = getattr(survival_r_results, hazard_name) + return coef, se, time, hazard + +class TestPHReg(object): + + # Load a data file from the results directory + def load_file(self, fname): + cur_dir = os.path.dirname(os.path.abspath(__file__)) + data = np.genfromtxt(os.path.join(cur_dir, 'results', fname), + delimiter=" ") + time = data[:,0] + status = data[:,1] + entry = data[:,2] + exog = data[:,3:] + + return time, status, entry, exog + + + # Run a single test against R output + def do1(self, fname, ties, entry_f, strata_f): + + # Read the test data. + time, status, entry, exog = self.load_file(fname) + n = len(time) + + vs = fname.split("_") + n = int(vs[2]) + p = int(vs[3].split(".")[0]) + ties1 = ties[0:3] + + # Needs to match the kronecker statement in survival.R + strata = np.kron(range(5), np.ones(n // 5)) + + # No stratification or entry times + mod = PHReg(time, exog, status, ties=ties) + phrb = mod.fit(**args) + coef_r, se_r, time_r, hazard_r = get_results(n, p, None, ties1) + assert_allclose(phrb.params, coef_r, rtol=1e-3) + assert_allclose(phrb.bse, se_r, rtol=1e-4) + time_h, cumhaz, surv = phrb.baseline_cumulative_hazard[0] + + # Entry times but no stratification + phrb = PHReg(time, exog, status, entry=entry, + ties=ties).fit(**args) + coef, se, time_r, hazard_r = get_results(n, p, "et", ties1) + assert_allclose(phrb.params, coef, rtol=1e-3) + assert_allclose(phrb.bse, se, rtol=1e-3) + + # Stratification but no entry times + phrb = PHReg(time, exog, status, strata=strata, + ties=ties).fit(**args) + coef, se, time_r, hazard_r = get_results(n, p, "st", ties1) + assert_allclose(phrb.params, coef, rtol=1e-4) + assert_allclose(phrb.bse, se, rtol=1e-4) + + # Stratification and entry times + phrb = PHReg(time, exog, status, entry=entry, + strata=strata, ties=ties).fit(**args) + coef, se, time_r, hazard_r = get_results(n, p, "et_st", ties1) + assert_allclose(phrb.params, coef, rtol=1e-3) + assert_allclose(phrb.bse, se, rtol=1e-4) + + #smoke test + time_h, cumhaz, surv = phrb.baseline_cumulative_hazard[0] + + + # Run all the tests + def test_r(self): + + cur_dir = os.path.dirname(os.path.abspath(__file__)) + rdir = os.path.join(cur_dir, 'results') + fnames = os.listdir(rdir) + fnames = [x for x in fnames if x.startswith("survival") + and x.endswith(".csv")] + + for fname in fnames: + for ties in "breslow","efron": + for entry_f in False,True: + for strata_f in False,True: + yield (self.do1, fname, ties, entry_f, + strata_f) + + def test_missing(self): + + np.random.seed(34234) + time = 50 * np.random.uniform(size=200) + status = np.random.randint(0, 2, 200).astype(np.float64) + exog = np.random.normal(size=(200,4)) + + time[0:5] = np.nan + status[5:10] = np.nan + exog[10:15,:] = np.nan + + md = PHReg(time, exog, status, missing='drop') + assert_allclose(len(md.endog), 185) + assert_allclose(len(md.status), 185) + assert_allclose(md.exog.shape, np.r_[185,4]) + + def test_formula(self): + + np.random.seed(34234) + time = 50 * np.random.uniform(size=200) + status = np.random.randint(0, 2, 200).astype(np.float64) + exog = np.random.normal(size=(200,4)) + entry = np.zeros_like(time) + entry[0:10] = time[0:10] / 2 + + df = pd.DataFrame({"time": time, "status": status, + "exog1": exog[:, 0], "exog2": exog[:, 1], + "exog3": exog[:, 2], "exog4": exog[:, 3], + "entry": entry}) + + mod1 = PHReg(time, exog, status, entry=entry) + rslt1 = mod1.fit() + + # works with "0 +" on RHS but issues warning + fml = "time ~ exog1 + exog2 + exog3 + exog4" + mod2 = PHReg.from_formula(fml, df, status=status, + entry=entry) + rslt2 = mod2.fit() + + mod3 = PHReg.from_formula(fml, df, status="status", + entry="entry") + rslt3 = mod3.fit() + + assert_allclose(rslt1.params, rslt2.params) + assert_allclose(rslt1.params, rslt3.params) + assert_allclose(rslt1.bse, rslt2.bse) + assert_allclose(rslt1.bse, rslt3.bse) + + def test_formula_cat_interactions(self): + + time = np.r_[1, 2, 3, 4, 5, 6, 7, 8, 9] + status = np.r_[1, 1, 0, 0, 1, 0, 1, 1, 1] + x1 = np.r_[1, 1, 1, 2, 2, 2, 3, 3, 3] + x2 = np.r_[1, 2, 3, 1, 2, 3, 1, 2, 3] + df = pd.DataFrame({"time": time, "status": status, + "x1": x1, "x2": x2}) + + model1 = PHReg.from_formula("time ~ C(x1) + C(x2) + C(x1)*C(x2)", status="status", + data=df) + assert_equal(model1.exog.shape, [9, 8]) + + def test_predict_formula(self): + + n = 100 + np.random.seed(34234) + time = 50 * np.random.uniform(size=n) + status = np.random.randint(0, 2, n).astype(np.float64) + exog = np.random.uniform(1, 2, size=(n, 2)) + + df = pd.DataFrame({"time": time, "status": status, + "exog1": exog[:, 0], "exog2": exog[:, 1]}) + + # Works with "0 +" on RHS but issues warning + fml = "time ~ exog1 + np.log(exog2) + exog1*exog2" + model1 = PHReg.from_formula(fml, df, status=status) + result1 = model1.fit() + + from patsy import dmatrix + dfp = dmatrix(model1.data.design_info.builder, df) + + pr1 = result1.predict() + pr2 = result1.predict(exog=df) + pr3 = model1.predict(result1.params, exog=dfp) # No standard errors + pr4 = model1.predict(result1.params, cov_params=result1.cov_params(), exog=dfp) + + prl = (pr1, pr2, pr3, pr4) + for i in range(4): + for j in range(i): + assert_allclose(prl[i].predicted_values, prl[j].predicted_values) + + prl = (pr1, pr2, pr4) + for i in range(3): + for j in range(i): + assert_allclose(prl[i].standard_errors, prl[j].standard_errors) + + def test_formula_args(self): + + np.random.seed(34234) + n = 200 + time = 50 * np.random.uniform(size=n) + status = np.random.randint(0, 2, size=n).astype(np.float64) + exog = np.random.normal(size=(200, 2)) + offset = np.random.uniform(size=n) + entry = np.random.uniform(0, 1, size=n) * time + + df = pd.DataFrame({"time": time, "status": status, "x1": exog[:, 0], + "x2": exog[:, 1], "offset": offset, "entry": entry}) + model1 = PHReg.from_formula("time ~ x1 + x2", status="status", offset="offset", + entry="entry", data=df) + result1 = model1.fit() + model2 = PHReg.from_formula("time ~ x1 + x2", status=df.status, offset=df.offset, + entry=df.entry, data=df) + result2 = model2.fit() + assert_allclose(result1.params, result2.params) + assert_allclose(result1.bse, result2.bse) + + def test_offset(self): + + np.random.seed(34234) + time = 50 * np.random.uniform(size=200) + status = np.random.randint(0, 2, 200).astype(np.float64) + exog = np.random.normal(size=(200,4)) + + for ties in "breslow", "efron": + mod1 = PHReg(time, exog, status) + rslt1 = mod1.fit() + offset = exog[:,0] * rslt1.params[0] + exog = exog[:, 1:] + + mod2 = PHReg(time, exog, status, offset=offset, ties=ties) + rslt2 = mod2.fit() + + assert_allclose(rslt2.params, rslt1.params[1:]) + + def test_post_estimation(self): + # All regression tests + np.random.seed(34234) + time = 50 * np.random.uniform(size=200) + status = np.random.randint(0, 2, 200).astype(np.float64) + exog = np.random.normal(size=(200,4)) + + mod = PHReg(time, exog, status) + rslt = mod.fit() + mart_resid = rslt.martingale_residuals + assert_allclose(np.abs(mart_resid).sum(), 120.72475743348433) + + w_avg = rslt.weighted_covariate_averages + assert_allclose(np.abs(w_avg[0]).sum(0), + np.r_[7.31008415, 9.77608674,10.89515885, 13.1106801]) + + bc_haz = rslt.baseline_cumulative_hazard + v = [np.mean(np.abs(x)) for x in bc_haz[0]] + w = np.r_[23.482841556421608, 0.44149255358417017, + 0.68660114081275281] + assert_allclose(v, w) + + score_resid = rslt.score_residuals + v = np.r_[ 0.50924792, 0.4533952, 0.4876718, 0.5441128] + w = np.abs(score_resid).mean(0) + assert_allclose(v, w) + + groups = np.random.randint(0, 3, 200) + mod = PHReg(time, exog, status) + rslt = mod.fit(groups=groups) + robust_cov = rslt.cov_params() + v = [0.00513432, 0.01278423, 0.00810427, 0.00293147] + w = np.abs(robust_cov).mean(0) + assert_allclose(v, w, rtol=1e-6) + + s_resid = rslt.schoenfeld_residuals + ii = np.flatnonzero(np.isfinite(s_resid).all(1)) + s_resid = s_resid[ii, :] + v = np.r_[0.85154336, 0.72993748, 0.73758071, 0.78599333] + assert_allclose(np.abs(s_resid).mean(0), v) + + def test_summary(self): + # smoke test + np.random.seed(34234) + time = 50 * np.random.uniform(size=200) + status = np.random.randint(0, 2, 200).astype(np.float64) + exog = np.random.normal(size=(200,4)) + + mod = PHReg(time, exog, status) + rslt = mod.fit() + smry = rslt.summary() + + strata = np.kron(np.arange(50), np.ones(4)) + mod = PHReg(time, exog, status, strata=strata) + rslt = mod.fit() + smry = rslt.summary() + msg = "3 strata dropped for having no events" + assert_(msg in str(smry)) + + groups = np.kron(np.arange(25), np.ones(8)) + mod = PHReg(time, exog, status) + rslt = mod.fit(groups=groups) + smry = rslt.summary() + + entry = np.random.uniform(0.1, 0.8, 200) * time + mod = PHReg(time, exog, status, entry=entry) + rslt = mod.fit() + smry = rslt.summary() + msg = "200 observations have positive entry times" + assert_(msg in str(smry)) + + def test_predict(self): + # All smoke tests. We should be able to convert the lhr and hr + # tests into real tests against R. There are many options to + # this function that may interact in complicated ways. Only a + # few key combinations are tested here. + np.random.seed(34234) + endog = 50 * np.random.uniform(size=200) + status = np.random.randint(0, 2, 200).astype(np.float64) + exog = np.random.normal(size=(200,4)) + + mod = PHReg(endog, exog, status) + rslt = mod.fit() + rslt.predict() + for pred_type in 'lhr', 'hr', 'cumhaz', 'surv': + rslt.predict(pred_type=pred_type) + rslt.predict(endog=endog[0:10], pred_type=pred_type) + rslt.predict(endog=endog[0:10], exog=exog[0:10,:], + pred_type=pred_type) + + def test_get_distribution(self): + # Smoke test + np.random.seed(34234) + n = 200 + exog = np.random.normal(size=(n, 2)) + lin_pred = exog.sum(1) + elin_pred = np.exp(-lin_pred) + time = -elin_pred * np.log(np.random.uniform(size=n)) + status = np.ones(n) + status[0:20] = 0 + strata = np.kron(range(5), np.ones(n // 5)) + + mod = PHReg(time, exog, status=status, strata=strata) + rslt = mod.fit() + + dist = rslt.get_distribution() + + fitted_means = dist.mean() + true_means = elin_pred + fitted_var = dist.var() + fitted_sd = dist.std() + sample = dist.rvs() + + + def test_fit_regularized(self): + + # Data set sizes + for n,p in (50,2),(100,5): + + # Penalty weights + for js,s in enumerate([0,0.1]): + + coef_name = "coef_%d_%d_%d" % (n, p, js) + params = getattr(survival_enet_r_results, coef_name) + + fname = "survival_data_%d_%d.csv" % (n, p) + time, status, entry, exog = self.load_file(fname) + + exog -= exog.mean(0) + exog /= exog.std(0, ddof=1) + + model = PHReg(time, exog, status=status, ties='breslow') + sm_result = model.fit_regularized(alpha=s) + + # The agreement isn't very high, the issue may be on + # the R side. See below for further checks. + assert_allclose(sm_result.params, params, rtol=0.3) + + # Smoke test for summary + smry = sm_result.summary() + + # The penalized log-likelihood that we are maximizing. + def plf(params): + llf = model.loglike(params) / len(time) + L1_wt = 1 + llf = llf - s * ((1 - L1_wt)*np.sum(params**2) / 2 + L1_wt*np.sum(np.abs(params))) + return llf + + # Confirm that we are doing better than glmnet. + from numpy.testing import assert_equal + llf_r = plf(params) + llf_sm = plf(sm_result.params) + assert_equal(np.sign(llf_sm - llf_r), 1) + + +if __name__=="__main__": + + import nose + + nose.runmodule(argv=[__file__,'-vvs','-x','--pdb', '--pdb-failure'], + exit=False) diff --git a/statsmodels/duration/tests/test_survfunc.py b/statsmodels/duration/tests/test_survfunc.py new file mode 100644 index 0000000..96ca98f --- /dev/null +++ b/statsmodels/duration/tests/test_survfunc.py @@ -0,0 +1,334 @@ +import numpy as np +from statsmodels.duration.survfunc import ( + SurvfuncRight, survdiff, plot_survfunc, + CumIncidenceRight) +from numpy.testing import assert_allclose +from numpy.testing import dec +import pandas as pd +import os + +# If true, the output is written to a multi-page pdf file. +pdf_output = False + +try: + import matplotlib.pyplot as plt + have_matplotlib = True +except ImportError: + have_matplotlib = False + + +def close_or_save(pdf, fig): + if pdf_output: + pdf.savefig(fig) + else: + plt.close(fig) + + +""" +library(survival) +ti1 = c(3, 1, 2, 3, 2, 1, 5, 3) +st1 = c(0, 1, 1, 1, 0, 0, 1, 0) +ti2 = c(1, 1, 2, 3, 7, 1, 5, 3, 9) +st2 = c(0, 1, 0, 0, 1, 0, 1, 0, 1) + +ti = c(ti1, ti2) +st = c(st1, st2) +ix = c(rep(1, length(ti1)), rep(2, length(ti2))) +sd = survdiff(Surv(ti, st) ~ ix) +""" + +ti1 = np.r_[3, 1, 2, 3, 2, 1, 5, 3] +st1 = np.r_[0, 1, 1, 1, 0, 0, 1, 0] +times1 = np.r_[1, 2, 3, 5] +surv_prob1 = np.r_[0.8750000, 0.7291667, 0.5468750, 0.0000000] +surv_prob_se1 = np.r_[0.1169268, 0.1649762, 0.2005800, np.nan] +n_risk1 = np.r_[8, 6, 4, 1] +n_events1 = np.r_[1., 1., 1., 1.] + +ti2 = np.r_[1, 1, 2, 3, 7, 1, 5, 3, 9] +st2 = np.r_[0, 1, 0, 0, 1, 0, 1, 0, 1] +times2 = np.r_[1, 5, 7, 9] +surv_prob2 = np.r_[0.8888889, 0.5925926, 0.2962963, 0.0000000] +surv_prob_se2 = np.r_[0.1047566, 0.2518034, 0.2444320, np.nan] +n_risk2 = np.r_[9, 3, 2, 1] +n_events2 = np.r_[1., 1., 1., 1.] + +cur_dir = os.path.dirname(os.path.abspath(__file__)) +fp = os.path.join(cur_dir, 'results', 'bmt.csv') +bmt = pd.read_csv(fp) + + +def test_survfunc1(): + # Test where all times have at least 1 event. + + sr = SurvfuncRight(ti1, st1) + assert_allclose(sr.surv_prob, surv_prob1, atol=1e-5, rtol=1e-5) + assert_allclose(sr.surv_prob_se, surv_prob_se1, atol=1e-5, rtol=1e-5) + assert_allclose(sr.surv_times, times1) + assert_allclose(sr.n_risk, n_risk1) + assert_allclose(sr.n_events, n_events1) + + +def test_survfunc2(): + # Test where some times have no events. + + sr = SurvfuncRight(ti2, st2) + assert_allclose(sr.surv_prob, surv_prob2, atol=1e-5, rtol=1e-5) + assert_allclose(sr.surv_prob_se, surv_prob_se2, atol=1e-5, rtol=1e-5) + assert_allclose(sr.surv_times, times2) + assert_allclose(sr.n_risk, n_risk2) + assert_allclose(sr.n_events, n_events2) + + +def test_survdiff_basic(): + + # Constants taken from R, code above + ti = np.concatenate((ti1, ti2)) + st = np.concatenate((st1, st2)) + groups = np.ones(len(ti)) + groups[0:len(ti1)] = 0 + z, p = survdiff(ti, st, groups) + assert_allclose(z, 2.14673, atol=1e-4, rtol=1e-4) + assert_allclose(p, 0.14287, atol=1e-4, rtol=1e-4) + + +def test_simultaneous_cb(): + + # The exact numbers here are regression tests, but they are close + # to page 103 of Klein and Moeschberger. + + df = bmt.loc[bmt["Group"] == "ALL", :] + sf = SurvfuncRight(df["T"], df["Status"]) + lcb1, ucb1 = sf.simultaneous_cb(transform="log") + lcb2, ucb2 = sf.simultaneous_cb(transform="arcsin") + + ti = sf.surv_times.tolist() + ix = [ti.index(x) for x in (110, 122, 129, 172)] + assert_allclose(lcb1[ix], np.r_[0.43590582, 0.42115592, + 0.4035897, 0.38785927]) + assert_allclose(ucb1[ix], np.r_[0.93491636, 0.89776803, + 0.87922239, 0.85894181]) + + assert_allclose(lcb2[ix], np.r_[0.52115708, 0.48079378, + 0.45595321, 0.43341115]) + assert_allclose(ucb2[ix], np.r_[0.96465636, 0.92745068, + 0.90885428, 0.88796708]) + + +def test_bmt(): + # All tests against SAS + # Results taken from here: + # http://support.sas.com/documentation/cdl/en/statug/68162/HTML/default/viewer.htm#statug_lifetest_details03.htm + + # Confidence intervals for 25% percentile of the survival + # distribution (for "ALL" subjects), taken from the SAS web site + cb = {"linear": [107, 276], + "cloglog": [86, 230], + "log": [107, 332], + "asinsqrt": [104, 276], + "logit": [104, 230]} + + dfa = bmt[bmt.Group == "ALL"] + + cur_dir = os.path.dirname(os.path.abspath(__file__)) + fp = os.path.join(cur_dir, 'results', 'bmt_results.csv') + rslt = pd.read_csv(fp) + + sf = SurvfuncRight(dfa["T"].values, dfa.Status.values) + + assert_allclose(sf.surv_times, rslt.t) + assert_allclose(sf.surv_prob, rslt.s, atol=1e-4, rtol=1e-4) + assert_allclose(sf.surv_prob_se, rslt.se, atol=1e-4, rtol=1e-4) + + for method in "linear", "cloglog", "log", "logit", "asinsqrt": + lcb, ucb = sf.quantile_ci(0.25, method=method) + assert_allclose(cb[method], np.r_[lcb, ucb]) + + +def test_survdiff(): + # Results come from R survival and survMisc packages (survMisc is + # used for non G-rho family tests but does not seem to support + # stratification) + + df = bmt[bmt.Group != "ALL"].copy() + + # Not stratified + stat, p = survdiff(df["T"], df.Status, df.Group) + assert_allclose(stat, 13.44556, atol=1e-4, rtol=1e-4) + stat, p = survdiff(df["T"], df.Status, df.Group, weight_type="gb") + assert_allclose(stat, 15.38787, atol=1e-4, rtol=1e-4) + stat, p = survdiff(df["T"], df.Status, df.Group, weight_type="tw") + assert_allclose(stat, 14.98382, atol=1e-4, rtol=1e-4) + stat, p = survdiff(df["T"], df.Status, df.Group, weight_type="fh", + fh_p=0.5) + assert_allclose(stat, 14.46866, atol=1e-4, rtol=1e-4) + stat, p = survdiff(df["T"], df.Status, df.Group, weight_type="fh", + fh_p=1) + assert_allclose(stat, 14.84500, atol=1e-4, rtol=1e-4) + + # 5 strata + strata = np.arange(df.shape[0]) % 5 + df["strata"] = strata + stat, p = survdiff(df["T"], df.Status, df.Group, strata=df.strata) + assert_allclose(stat, 11.97799, atol=1e-4, rtol=1e-4) + stat, p = survdiff(df["T"], df.Status, df.Group, strata=df.strata, + weight_type="fh", fh_p=0.5) + assert_allclose(stat, 12.6257, atol=1e-4, rtol=1e-4) + stat, p = survdiff(df["T"], df.Status, df.Group, strata=df.strata, + weight_type="fh", fh_p=1) + assert_allclose(stat, 12.73565, atol=1e-4, rtol=1e-4) + + # 8 strata + df["strata"] = np.arange(df.shape[0]) % 8 + stat, p = survdiff(df["T"], df.Status, df.Group, strata=df.strata) + assert_allclose(stat, 12.12631, atol=1e-4, rtol=1e-4) + stat, p = survdiff(df["T"], df.Status, df.Group, strata=df.strata, + weight_type="fh", fh_p=0.5) + assert_allclose(stat, 12.9633, atol=1e-4, rtol=1e-4) + stat, p = survdiff(df["T"], df.Status, df.Group, strata=df.strata, + weight_type="fh", fh_p=1) + assert_allclose(stat, 13.35259, atol=1e-4, rtol=1e-4) + + +@dec.skipif(not have_matplotlib) +def test_plot_km(): + + if pdf_output: + from matplotlib.backends.backend_pdf import PdfPages + pdf = PdfPages("test_survfunc.pdf") + else: + pdf = None + + sr1 = SurvfuncRight(ti1, st1) + sr2 = SurvfuncRight(ti2, st2) + + fig = plot_survfunc(sr1) + close_or_save(pdf, fig) + + fig = plot_survfunc(sr2) + close_or_save(pdf, fig) + + fig = plot_survfunc([sr1, sr2]) + close_or_save(pdf, fig) + + # Plot the SAS BMT data + gb = bmt.groupby("Group") + sv = [] + for g in gb: + s0 = SurvfuncRight(g[1]["T"], g[1]["Status"], title=g[0]) + sv.append(s0) + fig = plot_survfunc(sv) + ax = fig.get_axes()[0] + ax.set_position([0.1, 0.1, 0.64, 0.8]) + ha, lb = ax.get_legend_handles_labels() + fig.legend([ha[k] for k in (0, 2, 4)], + [lb[k] for k in (0, 2, 4)], + 'center right') + close_or_save(pdf, fig) + + # Simultaneous CB for BMT data + ii = bmt.Group == "ALL" + sf = SurvfuncRight(bmt.loc[ii, "T"], bmt.loc[ii, "Status"]) + fig = sf.plot() + ax = fig.get_axes()[0] + ax.set_position([0.1, 0.1, 0.64, 0.8]) + ha, lb = ax.get_legend_handles_labels() + lcb, ucb = sf.simultaneous_cb(transform="log") + plt.fill_between(sf.surv_times, lcb, ucb, color="lightgrey") + lcb, ucb = sf.simultaneous_cb(transform="arcsin") + plt.plot(sf.surv_times, lcb, color="darkgrey") + plt.plot(sf.surv_times, ucb, color="darkgrey") + plt.plot(sf.surv_times, sf.surv_prob - 2*sf.surv_prob_se, color="red") + plt.plot(sf.surv_times, sf.surv_prob + 2*sf.surv_prob_se, color="red") + plt.xlim(100, 600) + close_or_save(pdf, fig) + + if pdf_output: + pdf.close() + + +def test_weights1(): + # tm = c(1, 3, 5, 6, 7, 8, 8, 9, 3, 4, 1, 3, 2) + # st = c(1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0) + # wt = c(1, 2, 3, 2, 3, 1, 2, 1, 1, 2, 2, 3, 1) + # library(survival) + # sf = survfit(Surv(tm, st) ~ 1, weights=wt, err='tsiatis') + + tm = np.r_[1, 3, 5, 6, 7, 8, 8, 9, 3, 4, 1, 3, 2] + st = np.r_[1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0] + wt = np.r_[1, 2, 3, 2, 3, 1, 2, 1, 1, 2, 2, 3, 1] + + sf = SurvfuncRight(tm, st, "", freq_weights=wt) + assert_allclose(sf.surv_times, np.r_[1, 3, 6, 7, 9]) + assert_allclose(sf.surv_prob, + np.r_[0.875, 0.65625, 0.51041667, 0.29166667, 0.]) + assert_allclose(sf.surv_prob_se, + np.r_[0.07216878, 0.13307266, 0.20591185, 0.3219071, + 1.05053519]) + + +def test_weights2(): + # tm = c(1, 3, 5, 6, 7, 2, 4, 6, 8, 10) + # st = c(1, 1, 0, 1, 1, 1, 1, 0, 1, 1) + # wt = c(1, 1, 1, 1, 1, 2, 2, 2, 2, 2) + # library(survival) + # sf = survfit(Surv(tm, st) ~ 1, weights=wt, err='tsiatis') + + tm = np.r_[1, 3, 5, 6, 7, 2, 4, 6, 8, 10] + st = np.r_[1, 1, 0, 1, 1, 1, 1, 0, 1, 1] + wt = np.r_[1, 1, 1, 1, 1, 2, 2, 2, 2, 2] + tm0 = np.r_[1, 3, 5, 6, 7, 2, 4, 6, 8, 10, 2, 4, 6, 8, 10] + st0 = np.r_[1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1] + + sf0 = SurvfuncRight(tm, st, "", freq_weights=wt) + sf1 = SurvfuncRight(tm0, st0, "") + + assert_allclose(sf0.surv_times, sf1.surv_times) + assert_allclose(sf0.surv_prob, sf1.surv_prob) + + assert_allclose(sf0.surv_prob_se, + np.r_[0.06666667, 0.1210311, 0.14694547, + 0.19524829, 0.23183377, + 0.30618115, 0.46770386, 0.84778942]) + + +def test_incidence(): + # Check estimates in R: + # ftime = c(1, 1, 2, 4, 4, 4, 6, 6, 7, 8, 9, 9, 9, 1, 2, 2, 4, 4) + # fstat = c(1, 1, 1, 2, 2, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0) + # cuminc(ftime, fstat) + # + # The standard errors agree with Stata, not with R (cmprisk + # package), which uses a different SE formula from Aalen (1978) + + ftime = np.r_[1, 1, 2, 4, 4, 4, 6, 6, 7, 8, 9, 9, 9, 1, 2, 2, 4, 4] + fstat = np.r_[1, 1, 1, 2, 2, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0] + + ci = CumIncidenceRight(ftime, fstat) + + cinc = [np.array([0.11111111, 0.17037037, 0.17037037, 0.17037037, + 0.17037037, 0.17037037, 0.17037037]), + np.array([0., 0., 0.20740741, 0.20740741, + 0.20740741, 0.20740741, 0.20740741]), + np.array([0., 0., 0., 0.17777778, + 0.26666667, 0.26666667, 0.26666667])] + assert_allclose(cinc[0], ci.cinc[0]) + assert_allclose(cinc[1], ci.cinc[1]) + assert_allclose(cinc[2], ci.cinc[2]) + + cinc_se = [np.array([0.07407407, 0.08976251, 0.08976251, 0.08976251, + 0.08976251, 0.08976251, 0.08976251]), + np.array([0., 0., 0.10610391, 0.10610391, 0.10610391, + 0.10610391, 0.10610391]), + np.array([0., 0., 0., 0.11196147, 0.12787781, + 0.12787781, 0.12787781])] + assert_allclose(cinc_se[0], ci.cinc_se[0]) + assert_allclose(cinc_se[1], ci.cinc_se[1]) + assert_allclose(cinc_se[2], ci.cinc_se[2]) + + # Simple check for frequency weights + weights = np.ones(len(ftime)) + ciw = CumIncidenceRight(ftime, fstat, freq_weights=weights) + assert_allclose(ci.cinc[0], ciw.cinc[0]) + assert_allclose(ci.cinc[1], ciw.cinc[1]) + assert_allclose(ci.cinc[2], ciw.cinc[2]) diff --git a/statsmodels/emplike/__init__.py b/statsmodels/emplike/__init__.py new file mode 100644 index 0000000..0123ce8 --- /dev/null +++ b/statsmodels/emplike/__init__.py @@ -0,0 +1,2 @@ +from statsmodels import NoseWrapper as Tester +test = Tester().test diff --git a/statsmodels/emplike/aft_el.py b/statsmodels/emplike/aft_el.py new file mode 100644 index 0000000..1417e5f --- /dev/null +++ b/statsmodels/emplike/aft_el.py @@ -0,0 +1,561 @@ +""" + +Accelerated Failure Time (AFT) Model with empirical likelihood inference. + +AFT regression analysis is applicable when the researcher has access +to a randomly right censored dependent variable, a matrix of exogenous +variables and an indicatior variable (delta) that takes a value of 0 if the +observation is censored and 1 otherwise. + +AFT References +-------------- + +Stute, W. (1993). "Consistent Estimation Under Random Censorship when +Covariables are Present." Journal of Multivariate Analysis. +Vol. 45. Iss. 1. 89-103 + +EL and AFT References +--------------------- + +Zhou, Kim And Bathke. "Empirical Likelihood Analysis for the Heteroskedastic +Accelerated Failure Time Model." Manuscript: +URL: www.ms.uky.edu/~mai/research/CasewiseEL20080724.pdf + +Zhou, M. (2005). Empirical Likelihood Ratio with Arbitrarily Censored/ +Truncated Data by EM Algorithm. Journal of Computational and Graphical +Statistics. 14:3, 643-656. + + +""" +from __future__ import division + +import numpy as np +from statsmodels.regression.linear_model import OLS, WLS +from statsmodels.tools import add_constant +#from elregress import ElReg +from scipy import optimize +from scipy.stats import chi2 +from .descriptive import _OptFuncts +import warnings +from statsmodels.tools.sm_exceptions import IterationLimitWarning + +class OptAFT(_OptFuncts): + """ + Provides optimization functions used in estimating and conducting + inference in an AFT model. + + Methods + ------ + + _opt_wtd_nuis_regress: + Function optimized over nuisance parameters to compute + the profile likelihood + + _EM_test: + Uses the modified Em algorithm of Zhou 2005 to maximize the + likelihood of a parameter vector. + + """ + def __init__(self): + pass + + def _opt_wtd_nuis_regress(self, test_vals): + """ + A function that is optimized over nuisance parameters to conduct a + hypothesis test for the parameters of interest + + Parameters + ---------- + + params: 1d array + The regression coefficients of the model. This includes the + nuisance and parameters of interests. + + Returns + ------- + + llr: float + -2 times the log likelihood of the nuisance parameters and the + hypothesized value of the parameter(s) of interest. + + """ + test_params = test_vals.reshape(self.model.nvar, 1) + est_vect = self.model.uncens_exog * (self.model.uncens_endog - + np.dot(self.model.uncens_exog, + test_params)) + eta_star = self._modif_newton(np.zeros(self.model.nvar), est_vect, + self.model._fit_weights) + denom = np.sum(self.model._fit_weights) + np.dot(eta_star, est_vect.T) + self.new_weights = self.model._fit_weights / denom + return -1 * np.sum(np.log(self.new_weights)) + + def _EM_test(self, nuisance_params, params=None, param_nums=None, + b0_vals=None, F=None, survidx=None, uncens_nobs=None, + numcensbelow=None, km=None, uncensored=None, censored=None, + maxiter=None, ftol=None): + """ + Uses EM algorithm to compute the maximum likelihood of a test + + Parameters + --------- + + Nuisance Params: array + Vector of values to be used as nuisance params. + + maxiter: int + Number of iterations in the EM algorithm for a parameter vector + + Returns + ------- + -2 ''*'' log likelihood ratio at hypothesized values and + nuisance params + + Notes + ----- + Optional parameters are provided by the test_beta function. + """ + iters = 0 + params[param_nums] = b0_vals + + nuis_param_index = np.int_(np.delete(np.arange(self.model.nvar), + param_nums)) + params[nuis_param_index] = nuisance_params + to_test = params.reshape(self.model.nvar, 1) + opt_res = np.inf + diff = np.inf + while iters < maxiter and diff > ftol: + F = F.flatten() + death = np.cumsum(F[::-1]) + survivalprob = death[::-1] + surv_point_mat = np.dot(F.reshape(-1, 1), + 1. / survivalprob[survidx].reshape(1, - 1)) + surv_point_mat = add_constant(surv_point_mat) + summed_wts = np.cumsum(surv_point_mat, axis=1) + wts = summed_wts[np.int_(np.arange(uncens_nobs)), + numcensbelow[uncensored]] + # ^E step + # See Zhou 2005, section 3. + self.model._fit_weights = wts + new_opt_res = self._opt_wtd_nuis_regress(to_test) + # ^ Uncensored weights' contribution to likelihood value. + F = self.new_weights + # ^ M step + diff = np.abs(new_opt_res - opt_res) + opt_res = new_opt_res + iters = iters + 1 + death = np.cumsum(F.flatten()[::-1]) + survivalprob = death[::-1] + llike = -opt_res + np.sum(np.log(survivalprob[survidx])) + wtd_km = km.flatten() / np.sum(km) + survivalmax = np.cumsum(wtd_km[::-1])[::-1] + llikemax = np.sum(np.log(wtd_km[uncensored])) + \ + np.sum(np.log(survivalmax[censored])) + if iters == maxiter: + warnings.warn('The EM reached the maximum number of iterations', + IterationLimitWarning) + return -2 * (llike - llikemax) + + def _ci_limits_beta(self, b0, param_num=None): + """ + Returns the difference between the log likelihood for a + parameter and some critical value. + + Parameters + --------- + b0: float + Value of a regression parameter + + param_num: int + Parameter index of b0 + """ + return self.test_beta([b0], [param_num])[0] - self.r0 + + +class emplikeAFT(object): + """ + + Class for estimating and conducting inference in an AFT model. + + Parameters + --------- + + endog: nx1 array + Response variables that are subject to random censoring + + exog: nxk array + Matrix of covariates + + censors: nx1 array + array with entries 0 or 1. 0 indicates a response was + censored. + + Attributes + ---------- + + nobs: float + Number of observations + + endog: array + Endog attay + + exog: array + Exogenous variable matrix + + censors + Censors array but sets the max(endog) to uncensored + + nvar: float + Number of exogenous variables + + uncens_nobs: float + Number of uncensored observations + + uncens_endog: array + Uncensored response variables + + uncens_exog: array + Exogenous variables of the uncensored observations + + Methods + ------- + + params: + Fits model parameters + + test_beta: + Tests if beta = b0 for any vector b0. + + Notes + ----- + + The data is immediately sorted in order of increasing endogenous + variables + + The last observation is assumed to be uncensored which makes + estimation and inference possible. + """ + def __init__(self, endog, exog, censors): + self.nobs = np.shape(exog)[0] + self.endog = endog.reshape(self.nobs, 1) + self.exog = exog.reshape(self.nobs, -1) + self.censors = censors.reshape(self.nobs, 1) + self.nvar = self.exog.shape[1] + idx = np.lexsort((-self.censors[:, 0], self.endog[:, 0])) + self.endog = self.endog[idx] + self.exog = self.exog[idx] + self.censors = self.censors[idx] + self.censors[-1] = 1 # Sort in init, not in function + self.uncens_nobs = int(np.sum(self.censors)) + mask = self.censors.ravel().astype(bool) + self.uncens_endog = self.endog[mask, :].reshape(-1, 1) + self.uncens_exog = self.exog[mask, :] + + + def _is_tied(self, endog, censors): + """ + Indicated if an observation takes the same value as the next + ordered observation. + + Parameters + ---------- + endog: array + Models endogenous variable + censors: array + arrat indicating a censored array + + Returns + ------- + indic_ties: array + ties[i]=1 if endog[i]==endog[i+1] and + censors[i]=censors[i+1] + """ + nobs = int(self.nobs) + endog_idx = endog[np.arange(nobs - 1)] == ( + endog[np.arange(nobs - 1) + 1]) + censors_idx = censors[np.arange(nobs - 1)] == ( + censors[np.arange(nobs - 1) + 1]) + indic_ties = endog_idx * censors_idx # Both true + return np.int_(indic_ties) + + def _km_w_ties(self, tie_indic, untied_km): + """ + Computes KM estimator value at each observation, taking into acocunt + ties in the data. + + Parameters + ---------- + tie_indic: 1d array + Indicates if the i'th observation is the same as the ith +1 + untied_km: 1d array + Km estimates at each observation assuming no ties. + + """ + # TODO: Vectorize, even though it is only 1 pass through for any + # function call + num_same = 1 + idx_nums = [] + for obs_num in np.arange(int(self.nobs - 1))[::-1]: + if tie_indic[obs_num] == 1: + idx_nums.append(obs_num) + num_same = num_same + 1 + untied_km[obs_num] = untied_km[obs_num + 1] + elif tie_indic[obs_num] == 0 and num_same > 1: + idx_nums.append(max(idx_nums) + 1) + idx_nums = np.asarray(idx_nums) + untied_km[idx_nums] = untied_km[idx_nums] + num_same = 1 + idx_nums = [] + return untied_km.reshape(self.nobs, 1) + + def _make_km(self, endog, censors): + """ + + Computes the Kaplan-Meier estimate for the weights in the AFT model + + Parameters + ---------- + endog: nx1 array + Array of response variables + censors: nx1 array + Censor-indicating variable + + Returns + ------- + Kaplan Meier estimate for each observation + + Notes + ----- + + This function makes calls to _is_tied and km_w_ties to handle ties in + the data.If a censored observation and an uncensored observation has + the same value, it is assumed that the uncensored happened first. + + """ + nobs = self.nobs + num = (nobs - (np.arange(nobs) + 1.)) + denom = ((nobs - (np.arange(nobs) + 1.) + 1.)) + km = (num / denom).reshape(nobs, 1) + km = km ** np.abs(censors - 1.) + km = np.cumprod(km) # If no ties, this is kaplan-meier + tied = self._is_tied(endog, censors) + wtd_km = self._km_w_ties(tied, km) + return (censors / wtd_km).reshape(nobs, 1) + + def fit(self): + """ + + Fits an AFT model and returns results instance + + Parameters + --------- + None + + + Returns + ------- + Results instance. + + Notes + ----- + To avoid dividing by zero, max(endog) is assumed to be uncensored. + """ + return AFTResults(self) + + def predict(self, params, endog=None): + if endog is None: + endog = self.endog + return np.dot(endog, params) + + +class AFTResults(OptAFT): + def __init__(self, model): + self.model = model + + def params(self): + """ + + Fits an AFT model and returns parameters. + + Parameters + --------- + None + + + Returns + ------- + Fitted params + + Notes + ----- + To avoid dividing by zero, max(endog) is assumed to be uncensored. + """ + self.model.modif_censors = np.copy(self.model.censors) + self.model.modif_censors[-1] = 1 + wts = self.model._make_km(self.model.endog, self.model.modif_censors) + res = WLS(self.model.endog, self.model.exog, wts).fit() + params = res.params + return params + + def test_beta(self, b0_vals, param_nums, ftol=10 ** - 5, maxiter=30, + print_weights=1): + """ + Returns the profile log likelihood for regression parameters + 'param_num' at 'b0_vals.' + + Parameters + ---------- + b0_vals: list + The value of parameters to be tested + + param_num: list + Which parameters to be tested + + maxiter: int, optional + How many iterations to use in the EM algorithm. Default is 30 + + ftol: float, optional + The function tolerance for the EM optimization. + Default is 10''**''-5 + + print_weights: bool + If true, returns the weights tate maximize the profile + log likelihood. Default is False + + Returns + ------- + + test_results: tuple + The log-likelihood and p-pvalue of the test. + + Notes + ---- + + The function will warn if the EM reaches the maxiter. However, when + optimizing over nuisance parameters, it is possible to reach a + maximum number of inner iterations for a specific value for the + nuisance parameters while the resultsof the function are still valid. + This usually occurs when the optimization over the nuisance parameters + selects paramater values that yield a log-likihood ratio close to + infinity. + + Examples + ------- + + >>> import statsmodels.api as sm + >>> import numpy as np + + # Test parameter is .05 in one regressor no intercept model + >>> data=sm.datasets.heart.load() + >>> y = np.log10(data.endog) + >>> x = data.exog + >>> cens = data.censors + >>> model = sm.emplike.emplikeAFT(y, x, cens) + >>> res=model.test_beta([0], [0]) + >>> res + (1.4657739632606308, 0.22601365256959183) + + #Test slope is 0 in model with intercept + + >>> data=sm.datasets.heart.load() + >>> y = np.log10(data.endog) + >>> x = data.exog + >>> cens = data.censors + >>> model = sm.emplike.emplikeAFT(y, sm.add_constant(x), cens) + >>> res = model.test_beta([0], [1]) + >>> res + (4.623487775078047, 0.031537049752572731) + + """ + censors = self.model.censors + endog = self.model.endog + exog = self.model.exog + uncensored = (censors == 1).flatten() + censored = (censors == 0).flatten() + uncens_endog = endog[uncensored] + uncens_exog = exog[uncensored, :] + reg_model = OLS(uncens_endog, uncens_exog).fit() + llr, pval, new_weights = reg_model.el_test(b0_vals, param_nums, + return_weights=True) # Needs to be changed + km = self.model._make_km(endog, censors).flatten() # when merged + uncens_nobs = self.model.uncens_nobs + F = np.asarray(new_weights).reshape(uncens_nobs) + # Step 0 ^ + params = self.params() + survidx = np.where(censors == 0) + survidx = survidx[0] - np.arange(len(survidx[0])) + numcensbelow = np.int_(np.cumsum(1 - censors)) + if len(param_nums) == len(params): + llr = self._EM_test([], F=F, params=params, + param_nums=param_nums, + b0_vals=b0_vals, survidx=survidx, + uncens_nobs=uncens_nobs, + numcensbelow=numcensbelow, km=km, + uncensored=uncensored, censored=censored, + ftol=ftol, maxiter=25) + return llr, chi2.sf(llr, self.model.nvar) + else: + x0 = np.delete(params, param_nums) + try: + res = optimize.fmin(self._EM_test, x0, + (params, param_nums, b0_vals, F, survidx, + uncens_nobs, numcensbelow, km, uncensored, + censored, maxiter, ftol), full_output=1, + disp=0) + + llr = res[1] + return llr, chi2.sf(llr, len(param_nums)) + except np.linalg.linalg.LinAlgError: + return np.inf, 0 + + def ci_beta(self, param_num, beta_high, beta_low, sig=.05): + """ + Returns the confidence interval for a regression + parameter in the AFT model. + + Parameters + --------- + + param_num: int + Parameter number of interest + + beta_high: float + Upper bound for the confidence interval + + beta_low: + Lower bound for the confidence interval + + sig: float, optional + Significance level. Default is .05 + + Notes + ---- + If the function returns f(a) and f(b) must have different signs, + consider widening the search area by adjusting beta_low and + beta_high. + + Also note that this process is computational intensive. There + are 4 levels of optimization/solving. From outer to inner: + + 1) Solving so that llr-critical value = 0 + 2) maximizing over nuisance parameters + 3) Using EM at each value of nuisamce parameters + 4) Using the _modified_Newton optimizer at each iteration + of the EM algorithm. + + Also, for very unlikely nuisance parameters, it is possible for + the EM algorithm to not converge. This is not an indicator + that the solver did not find the correct solution. It just means + for a specific iteration of the nuisance parameters, the optimizer + was unable to converge. + + If the user desires to verify the success of the optimization, + it is recommended to test the limits using test_beta. + + """ + params = self.params() + self.r0 = chi2.ppf(1 - sig, 1) + ll = optimize.brentq(self._ci_limits_beta, beta_low, + params[param_num], (param_num)) + ul = optimize.brentq(self._ci_limits_beta, + params[param_num], beta_high, (param_num)) + return ll, ul diff --git a/statsmodels/emplike/api.py b/statsmodels/emplike/api.py new file mode 100644 index 0000000..dd118e5 --- /dev/null +++ b/statsmodels/emplike/api.py @@ -0,0 +1,12 @@ +""" +api for empirical likelihood + +""" + + +# pylint: disable=W0611 + +from .descriptive import DescStat, DescStatUV, DescStatMV +from .originregress import ELOriginRegress +from .elanova import ANOVA +from .aft_el import emplikeAFT diff --git a/statsmodels/emplike/descriptive.py b/statsmodels/emplike/descriptive.py new file mode 100644 index 0000000..74fef0d --- /dev/null +++ b/statsmodels/emplike/descriptive.py @@ -0,0 +1,1149 @@ +""" +Empirical likelihood inference on descriptive statistics + +This module conducts hypothesis tests and constructs confidence +intervals for the mean, variance, skewness, kurtosis and correlation. + +If matplotlib is installed, this module can also generate multivariate +confidence region plots as well as mean-variance contour plots. + +See _OptFuncts docstring for technical details and optimization variable +definitions. + +General References: +------------------ +Owen, A. (2001). "Empirical Likelihood." Chapman and Hall + +""" +from __future__ import division + +import numpy as np +from scipy import optimize +from scipy.stats import chi2, skew, kurtosis +from statsmodels.base.optimizer import _fit_newton +import itertools +from statsmodels.graphics import utils + + +def DescStat(endog): + """ + Returns an instance to conduct inference on descriptive statistics + via empirical likelihood. See DescStatUV and DescStatMV for more + information. + + Parameters + ---------- + endog : ndarray + Array of data + + Returns : DescStat instance + If k=1, the function returns a univariate instance, DescStatUV. + If k>1, the function returns a multivariate instance, DescStatMV. + """ + if endog.ndim == 1: + endog = endog.reshape(len(endog), 1) + if endog.shape[1] == 1: + return DescStatUV(endog) + if endog.shape[1] > 1: + return DescStatMV(endog) + + +class _OptFuncts(object): + """ + A class that holds functions that are optimized/solved. + + The general setup of the class is simple. Any method that starts with + _opt_ creates a vector of estimating equations named est_vect such that + np.dot(p, (est_vect))=0 where p is the weight on each + observation as a 1 x n array and est_vect is n x k. Then _modif_Newton is + called to determine the optimal p by solving for the Lagrange multiplier + (eta) in the profile likelihood maximization problem. In the presence + of nuisance parameters, _opt_ functions are optimized over to profile + out the nuisance parameters. + + Any method starting with _ci_limits calculates the log likelihood + ratio for a specific value of a parameter and then subtracts a + pre-specified critical value. This is solved so that llr - crit = 0. + + """ + + def __init__(self, endog): + pass + + def _log_star(self, eta, est_vect, weights, nobs): + """ + Transforms the log of observation probabilities in terms of the + Lagrange multiplier to the log 'star' of the probabilities. + + Parameters + ---------- + eta : float + Lagrange multiplier + + est_vect : ndarray (n,k) + Estimating equations vector + + wts : nx1 array + Observation weights + + Returns + ------ + data_star : array + The weighted logstar of the estimting equations + + Notes + ----- + This function is only a placeholder for the _fit_Newton. + The function value is not used in optimization and the optimal value + is disregarded when computing the log likelihood ratio. + """ + data_star = np.log(weights) + (np.sum(weights) +\ + np.dot(est_vect, eta)) + idx = data_star < 1. / nobs + not_idx = ~idx + nx = nobs * data_star[idx] + data_star[idx] = np.log(1. / nobs) - 1.5 + nx * (2. - nx / 2) + data_star[not_idx] = np.log(data_star[not_idx]) + return data_star + + def _hess(self, eta, est_vect, weights, nobs): + """ + Calculates the hessian of a weighted empirical likelihood + problem. + + Parameters + ---------- + eta : ndarray, (1,m) + Lagrange multiplier in the profile likelihood maximization + + est_vect : ndarray (n,k) + Estimating equations vector + + weights : 1darray + Observation weights + + Returns + ------- + hess : m x m array + Weighted hessian used in _wtd_modif_newton + """ + #eta = np.squeeze(eta) + data_star_doub_prime = np.sum(weights) + np.dot(est_vect, eta) + idx = data_star_doub_prime < 1. / nobs + not_idx = ~idx + data_star_doub_prime[idx] = - nobs ** 2 + data_star_doub_prime[not_idx] = - (data_star_doub_prime[not_idx]) ** -2 + wtd_dsdp = weights * data_star_doub_prime + return np.dot(est_vect.T, wtd_dsdp[:, None] * est_vect) + + def _grad(self, eta, est_vect, weights, nobs): + """ + Calculates the gradient of a weighted empirical likelihood + problem + + Parameters + ---------- + eta : ndarray, (1,m) + Lagrange multiplier in the profile likelihood maximization + + est_vect : ndarray, (n,k) + Estimating equations vector + + weights : 1darray + Observation weights + + Returns + ------- + gradient : ndarray (m,1) + The gradient used in _wtd_modif_newton + """ + #eta = np.squeeze(eta) + data_star_prime = np.sum(weights) + np.dot(est_vect, eta) + idx = data_star_prime < 1. / nobs + not_idx = ~idx + data_star_prime[idx] = nobs * (2 - nobs * data_star_prime[idx]) + data_star_prime[not_idx] = 1. / data_star_prime[not_idx] + return np.dot(weights * data_star_prime, est_vect) + + def _modif_newton(self, eta, est_vect, weights): + """ + Modified Newton's method for maximizing the log 'star' equation. This + function calls _fit_newton to find the optimal values of eta. + + Parameters + ---------- + eta : ndarray, (1,m) + Lagrange multiplier in the profile likelihood maximization + + est_vect : ndarray, (n,k) + Estimating equations vector + + weights : 1darray + Observation weights + + Returns + ------- + params : 1xm array + Lagrange multiplier that maximizes the log-likelihood + """ + nobs = len(est_vect) + f = lambda x0: - np.sum(self._log_star(x0, est_vect, weights, nobs)) + grad = lambda x0: - self._grad(x0, est_vect, weights, nobs) + hess = lambda x0: - self._hess(x0, est_vect, weights, nobs) + kwds = {'tol': 1e-8} + eta = eta.squeeze() + res = _fit_newton(f, grad, eta, (), kwds, hess=hess, maxiter=50, \ + disp=0) + return res[0] + + def _find_eta(self, eta): + """ + Finding the root of sum(xi-h0)/(1+eta(xi-mu)) solves for + eta when computing ELR for univariate mean. + + Parameters + ---------- + eta : float + Lagrange multiplier in the empirical likelihood maximization + + Returns + ------- + llr : float + n times the log likelihood value for a given value of eta + """ + return np.sum((self.endog - self.mu0) / \ + (1. + eta * (self.endog - self.mu0))) + + def _ci_limits_mu(self, mu): + """ + Calculates the difference between the log likelihood of mu_test and a + specified critical value. + + Parameters + ---------- + mu : float + Hypothesized value of the mean. + + Returns + ------- + diff : float + The difference between the log likelihood value of mu0 and + a specified value. + """ + return self.test_mean(mu)[0] - self.r0 + + def _find_gamma(self, gamma): + """ + Finds gamma that satisfies + sum(log(n * w(gamma))) - log(r0) = 0 + + Used for confidence intervals for the mean + + Parameters + ---------- + gamma : float + Lagrange multiplier when computing confidence interval + + Returns + ------- + diff : float + The difference between the log-liklihood when the Lagrange + multiplier is gamma and a pre-specified value + """ + denom = np.sum((self.endog - gamma) ** -1) + new_weights = (self.endog - gamma) ** -1 / denom + return -2 * np.sum(np.log(self.nobs * new_weights)) - \ + self.r0 + + def _opt_var(self, nuisance_mu, pval=False): + """ + This is the function to be optimized over a nuisance mean parameter + to determine the likelihood ratio for the variance + + Parameters + ---------- + nuisance_mu : float + Value of a nuisance mean parameter + + Returns + ------- + llr : float + Log likelihood of a pre-specified variance holding the nuisance + parameter constant + """ + endog = self.endog + nobs = self.nobs + sig_data = ((endog - nuisance_mu) ** 2 \ + - self.sig2_0) + mu_data = (endog - nuisance_mu) + est_vect = np.column_stack((mu_data, sig_data)) + eta_star = self._modif_newton(np.array([1. / nobs, + 1. / nobs]), est_vect, + np.ones(nobs) * (1. / nobs)) + + denom = 1 + np.dot(eta_star, est_vect.T) + self.new_weights = 1. / nobs * 1. / denom + llr = np.sum(np.log(nobs * self.new_weights)) + if pval: # Used for contour plotting + return chi2.sf(-2 * llr, 1) + return -2 * llr + + def _ci_limits_var(self, var): + """ + Used to determine the confidence intervals for the variance. + It calls test_var and when called by an optimizer, + finds the value of sig2_0 that is chi2.ppf(significance-level) + + Parameters + ---------- + var_test : float + Hypothesized value of the variance + + Returns + ------- + diff : float + The difference between the log likelihood ratio at var_test and a + pre-specified value. + """ + return self.test_var(var)[0] - self.r0 + + def _opt_skew(self, nuis_params): + """ + Called by test_skew. This function is optimized over + nuisance parameters mu and sigma + + Parameters + ---------- + nuis_params : 1darray + An array with a nuisance mean and variance parameter + + Returns + ------- + llr : float + The log likelihood ratio of a pre-specified skewness holding + the nuisance parameters constant. + """ + endog = self.endog + nobs = self.nobs + mu_data = endog - nuis_params[0] + sig_data = ((endog - nuis_params[0]) ** 2) - nuis_params[1] + skew_data = ((((endog - nuis_params[0]) ** 3) / + (nuis_params[1] ** 1.5))) - self.skew0 + est_vect = np.column_stack((mu_data, sig_data, skew_data)) + eta_star = self._modif_newton(np.array([1. / nobs, + 1. / nobs, + 1. / nobs]), est_vect, + np.ones(nobs) * (1. / nobs)) + denom = 1. + np.dot(eta_star, est_vect.T) + self.new_weights = 1. / nobs * 1. / denom + llr = np.sum(np.log(nobs * self.new_weights)) + return -2 * llr + + def _opt_kurt(self, nuis_params): + """ + Called by test_kurt. This function is optimized over + nuisance parameters mu and sigma + + Parameters + ---------- + nuis_params : 1darray + An array with a nuisance mean and variance parameter + + Returns + ------- + llr : float + The log likelihood ratio of a pre-speified kurtosis holding the + nuisance parameters constant + """ + endog = self.endog + nobs = self.nobs + mu_data = endog - nuis_params[0] + sig_data = ((endog - nuis_params[0]) ** 2) - nuis_params[1] + kurt_data = (((((endog - nuis_params[0]) ** 4) / \ + (nuis_params[1] ** 2))) - 3) - self.kurt0 + est_vect = np.column_stack((mu_data, sig_data, kurt_data)) + eta_star = self._modif_newton(np.array([1. / nobs, + 1. / nobs, + 1. / nobs]), est_vect, + np.ones(nobs) * (1. / nobs)) + denom = 1 + np.dot(eta_star, est_vect.T) + self.new_weights = 1. / nobs * 1. / denom + llr = np.sum(np.log(nobs * self.new_weights)) + return -2 * llr + + def _opt_skew_kurt(self, nuis_params): + """ + Called by test_joint_skew_kurt. This function is optimized over + nuisance parameters mu and sigma + + Parameters + ----------- + nuis_params : 1darray + An array with a nuisance mean and variance parameter + + Returns + ------ + llr : float + The log likelihood ratio of a pre-speified skewness and + kurtosis holding the nuisance parameters constant. + """ + endog = self.endog + nobs = self.nobs + mu_data = endog - nuis_params[0] + sig_data = ((endog - nuis_params[0]) ** 2) - nuis_params[1] + skew_data = ((((endog - nuis_params[0]) ** 3) / \ + (nuis_params[1] ** 1.5))) - self.skew0 + kurt_data = (((((endog - nuis_params[0]) ** 4) / \ + (nuis_params[1] ** 2))) - 3) - self.kurt0 + est_vect = np.column_stack((mu_data, sig_data, skew_data, kurt_data)) + eta_star = self._modif_newton(np.array([1. / nobs, + 1. / nobs, + 1. / nobs, + 1. / nobs]), est_vect, + np.ones(nobs) * (1. / nobs)) + denom = 1. + np.dot(eta_star, est_vect.T) + self.new_weights = 1. / nobs * 1. / denom + llr = np.sum(np.log(nobs * self.new_weights)) + return -2 * llr + + def _ci_limits_skew(self, skew): + """ + Parameters + ---------- + skew0 : float + Hypothesized value of skewness + + Returns + ------- + diff : float + The difference between the log likelihood ratio at skew and a + pre-specified value. + """ + return self.test_skew(skew)[0] - self.r0 + + def _ci_limits_kurt(self, kurt): + """ + Parameters + --------- + skew0 : float + Hypothesized value of kurtosis + + Returns + ------- + diff : float + The difference between the log likelihood ratio at kurt and a + pre-specified value. + """ + return self.test_kurt(kurt)[0] - self.r0 + + def _opt_correl(self, nuis_params, corr0, endog, nobs, x0, weights0): + """ + Parameters + ---------- + nuis_params : 1darray + Array containing two nuisance means and two nuisance variances + + Returns + ------- + llr : float + The log-likelihood of the correlation coefficient holding nuisance + parameters constant + """ + mu1_data, mu2_data = (endog - nuis_params[::2]).T + sig1_data = mu1_data ** 2 - nuis_params[1] + sig2_data = mu2_data ** 2 - nuis_params[3] + correl_data = ((mu1_data * mu2_data) - corr0 * + (nuis_params[1] * nuis_params[3]) ** .5) + est_vect = np.column_stack((mu1_data, sig1_data, + mu2_data, sig2_data, correl_data)) + eta_star = self._modif_newton(x0, est_vect, weights0) + denom = 1. + np.dot(est_vect, eta_star) + self.new_weights = 1. / nobs * 1. / denom + llr = np.sum(np.log(nobs * self.new_weights)) + return -2 * llr + + def _ci_limits_corr(self, corr): + return self.test_corr(corr)[0] - self.r0 + + +class DescStatUV(_OptFuncts): + """ + A class to compute confidence intervals and hypothesis tests involving + mean, variance, kurtosis and skewness of a univariate random variable. + + Parameters + ---------- + endog : 1darray + Data to be analyzed + + Attributes + ---------- + endog : 1darray + Data to be analyzed + + nobs : float + Number of observations + """ + + def __init__(self, endog): + self.endog = np.squeeze(endog) + self.nobs = endog.shape[0] + + def test_mean(self, mu0, return_weights=False): + """ + Returns - 2 x log-likelihood ratio, p-value and weights + for a hypothesis test of the mean. + + Parameters + ---------- + mu0 : float + Mean value to be tested + + return_weights : bool + If return_weights is True the funtion returns + the weights of the observations under the null hypothesis. + Default is False + + Returns + ------- + test_results : tuple + The log-likelihood ratio and p-value of mu0 + """ + self.mu0 = mu0 + endog = self.endog + nobs = self.nobs + eta_min = (1. - (1. / nobs)) / (self.mu0 - max(endog)) + eta_max = (1. - (1. / nobs)) / (self.mu0 - min(endog)) + eta_star = optimize.brentq(self._find_eta, eta_min, eta_max) + new_weights = (1. / nobs) * 1. / (1. + eta_star * (endog - self.mu0)) + llr = -2 * np.sum(np.log(nobs * new_weights)) + if return_weights: + return llr, chi2.sf(llr, 1), new_weights + else: + return llr, chi2.sf(llr, 1) + + def ci_mean(self, sig=.05, method='gamma', epsilon=10 ** -8, + gamma_low=-10 ** 10, gamma_high=10 ** 10): + """ + Returns the confidence interval for the mean. + + Parameters + ---------- + sig : float + significance level. Default is .05 + + method : str + Root finding method, Can be 'nested-brent' or + 'gamma'. Default is 'gamma' + + 'gamma' Tries to solve for the gamma parameter in the + Lagrange (see Owen pg 22) and then determine the weights. + + 'nested brent' uses brents method to find the confidence + intervals but must maximize the likelihhod ratio on every + iteration. + + gamma is generally much faster. If the optimizations does not + converge, try expanding the gamma_high and gamma_low + variable. + + gamma_low : float + Lower bound for gamma when finding lower limit. + If function returns f(a) and f(b) must have different signs, + consider lowering gamma_low. + + gamma_high : float + Upper bound for gamma when finding upper limit. + If function returns f(a) and f(b) must have different signs, + consider raising gamma_high. + + epsilon : float + When using 'nested-brent', amount to decrease (increase) + from the maximum (minimum) of the data when + starting the search. This is to protect against the + likelihood ratio being zero at the maximum (minimum) + value of the data. If data is very small in absolute value + (<10 ``**`` -6) consider shrinking epsilon + + When using 'gamma', amount to decrease (increase) the + minimum (maximum) by to start the search for gamma. + If fucntion returns f(a) and f(b) must have differnt signs, + consider lowering epsilon. + + Returns + ------- + Interval : tuple + Confidence interval for the mean + """ + endog = self.endog + sig = 1 - sig + if method == 'nested-brent': + self.r0 = chi2.ppf(sig, 1) + middle = np.mean(endog) + epsilon_u = (max(endog) - np.mean(endog)) * epsilon + epsilon_l = (np.mean(endog) - min(endog)) * epsilon + ulim = optimize.brentq(self._ci_limits_mu, middle, + max(endog) - epsilon_u) + llim = optimize.brentq(self._ci_limits_mu, middle, + min(endog) + epsilon_l) + return llim, ulim + + if method == 'gamma': + self.r0 = chi2.ppf(sig, 1) + gamma_star_l = optimize.brentq(self._find_gamma, gamma_low, + min(endog) - epsilon) + gamma_star_u = optimize.brentq(self._find_gamma, \ + max(endog) + epsilon, gamma_high) + weights_low = ((endog - gamma_star_l) ** -1) / \ + np.sum((endog - gamma_star_l) ** -1) + weights_high = ((endog - gamma_star_u) ** -1) / \ + np.sum((endog - gamma_star_u) ** -1) + mu_low = np.sum(weights_low * endog) + mu_high = np.sum(weights_high * endog) + return mu_low, mu_high + + def test_var(self, sig2_0, return_weights=False): + """ + Returns -2 x log-likelihoog ratio and the p-value for the + hypothesized variance + + Parameters + ---------- + sig2_0 : float + Hypothesized variance to be tested + + return_weights : bool + If True, returns the weights that maximize the + likelihood of observing sig2_0. Default is False + + Returns + -------- + test_results : tuple + The log-likelihood ratio and the p_value of sig2_0 + + Examples + -------- + >>> import numpy as np + >>> import statsmodels.api as sm + >>> random_numbers = np.random.standard_normal(1000)*100 + >>> el_analysis = sm.emplike.DescStat(random_numbers) + >>> hyp_test = el_analysis.test_var(9500) + """ + self.sig2_0 = sig2_0 + mu_max = max(self.endog) + mu_min = min(self.endog) + llr = optimize.fminbound(self._opt_var, mu_min, mu_max, \ + full_output=1)[1] + p_val = chi2.sf(llr, 1) + if return_weights: + return llr, p_val, self.new_weights.T + else: + return llr, p_val + + def ci_var(self, lower_bound=None, upper_bound=None, sig=.05): + """ + Returns the confidence interval for the variance. + + Parameters + ---------- + lower_bound : float + The minimum value the lower confidence interval can + take. The p-value from test_var(lower_bound) must be lower + than 1 - significance level. Default is .99 confidence + limit assuming normality + + upper_bound : float + The maximum value the upper confidence interval + can take. The p-value from test_var(upper_bound) must be lower + than 1 - significance level. Default is .99 confidence + limit assuming normality + + sig : float + The significance level. Default is .05 + + Returns + -------- + Interval : tuple + Confidence interval for the variance + + Examples + -------- + >>> import numpy as np + >>> import statsmodels.api as sm + >>> random_numbers = np.random.standard_normal(100) + >>> el_analysis = sm.emplike.DescStat(random_numbers) + >>> el_analysis.ci_var() + (0.7539322567470305, 1.229998852496268) + >>> el_analysis.ci_var(.5, 2) + (0.7539322567469926, 1.2299988524962664) + + Notes + ----- + If the function returns the error f(a) and f(b) must have + different signs, consider lowering lower_bound and raising + upper_bound. + """ + endog = self.endog + if upper_bound is None: + upper_bound = ((self.nobs - 1) * endog.var()) / \ + (chi2.ppf(.0001, self.nobs - 1)) + if lower_bound is None: + lower_bound = ((self.nobs - 1) * endog.var()) / \ + (chi2.ppf(.9999, self.nobs - 1)) + self.r0 = chi2.ppf(1 - sig, 1) + llim = optimize.brentq(self._ci_limits_var, lower_bound, endog.var()) + ulim = optimize.brentq(self._ci_limits_var, endog.var(), upper_bound) + return llim, ulim + + def plot_contour(self, mu_low, mu_high, var_low, var_high, mu_step, + var_step, + levs=[.2, .1, .05, .01, .001]): + """ + Returns a plot of the confidence region for a univariate + mean and variance. + + Parameters + ---------- + mu_low : float + Lowest value of the mean to plot + + mu_high : float + Highest value of the mean to plot + + var_low : float + Lowest value of the variance to plot + + var_high : float + Highest value of the variance to plot + + mu_step : float + Increments to evaluate the mean + + var_step : float + Increments to evaluate the mean + + levs : list + Which values of significance the contour lines will be drawn. + Default is [.2, .1, .05, .01, .001] + + Returns + ------- + fig : matplotlib figure instance + The contour plot + """ + fig, ax = utils.create_mpl_ax() + ax.set_ylabel('Variance') + ax.set_xlabel('Mean') + mu_vect = list(np.arange(mu_low, mu_high, mu_step)) + var_vect = list(np.arange(var_low, var_high, var_step)) + z = [] + for sig0 in var_vect: + self.sig2_0 = sig0 + for mu0 in mu_vect: + z.append(self._opt_var(mu0, pval=True)) + z = np.asarray(z).reshape(len(var_vect), len(mu_vect)) + ax.contour(mu_vect, var_vect, z, levels=levs) + return fig + + def test_skew(self, skew0, return_weights=False): + """ + Returns -2 x log-likelihood and p-value for the hypothesized + skewness. + + Parameters + ---------- + skew0 : float + Skewness value to be tested + + return_weights : bool + If True, function also returns the weights that + maximize the likelihood ratio. Default is False. + + Returns + -------- + test_results : tuple + The log-likelihood ratio and p_value of skew0 + """ + self.skew0 = skew0 + start_nuisance = np.array([self.endog.mean(), + self.endog.var()]) + + llr = optimize.fmin_powell(self._opt_skew, start_nuisance, + full_output=1, disp=0)[1] + p_val = chi2.sf(llr, 1) + if return_weights: + return llr, p_val, self.new_weights.T + return llr, p_val + + def test_kurt(self, kurt0, return_weights=False): + """ + Returns -2 x log-likelihood and the p-value for the hypothesized + kurtosis. + + Parameters + ---------- + kurt0 : float + Kurtosis value to be tested + + return_weights : bool + If True, function also returns the weights that + maximize the likelihood ratio. Default is False. + + Returns + ------- + test_results : tuple + The log-likelihood ratio and p-value of kurt0 + """ + self.kurt0 = kurt0 + start_nuisance = np.array([self.endog.mean(), + self.endog.var()]) + + llr = optimize.fmin_powell(self._opt_kurt, start_nuisance, + full_output=1, disp=0)[1] + p_val = chi2.sf(llr, 1) + if return_weights: + return llr, p_val, self.new_weights.T + return llr, p_val + + def test_joint_skew_kurt(self, skew0, kurt0, return_weights=False): + """ + Returns - 2 x log-likelihood and the p-value for the joint + hypothesis test for skewness and kurtosis + + Parameters + ---------- + skew0 : float + Skewness value to be tested + kurt0 : float + Kurtosis value to be tested + + return_weights : bool + If True, function also returns the weights that + maximize the likelihood ratio. Default is False. + + Returns + ------- + test_results : tuple + The log-likelihood ratio and p-value of the joint hypothesis test. + """ + self.skew0 = skew0 + self.kurt0 = kurt0 + start_nuisance = np.array([self.endog.mean(), + self.endog.var()]) + + llr = optimize.fmin_powell(self._opt_skew_kurt, start_nuisance, + full_output=1, disp=0)[1] + p_val = chi2.sf(llr, 2) + if return_weights: + return llr, p_val, self.new_weights.T + return llr, p_val + + def ci_skew(self, sig=.05, upper_bound=None, lower_bound=None): + """ + Returns the confidence interval for skewness. + + Parameters + ---------- + sig : float + The significance level. Default is .05 + + upper_bound : float + Maximum value of skewness the upper limit can be. + Default is .99 confidence limit assuming normality. + + lower_bound : float + Minimum value of skewness the lower limit can be. + Default is .99 confidence level assuming normality. + + Returns + ------- + Interval : tuple + Confidence interval for the skewness + + Notes + ----- + If function returns f(a) and f(b) must have different signs, consider + expanding lower and upper bounds + """ + nobs = self.nobs + endog = self.endog + if upper_bound is None: + upper_bound = skew(endog) + \ + 2.5 * ((6. * nobs * (nobs - 1.)) / \ + ((nobs - 2.) * (nobs + 1.) * \ + (nobs + 3.))) ** .5 + if lower_bound is None: + lower_bound = skew(endog) - \ + 2.5 * ((6. * nobs * (nobs - 1.)) / \ + ((nobs - 2.) * (nobs + 1.) * \ + (nobs + 3.))) ** .5 + self.r0 = chi2.ppf(1 - sig, 1) + llim = optimize.brentq(self._ci_limits_skew, lower_bound, skew(endog)) + ulim = optimize.brentq(self._ci_limits_skew, skew(endog), upper_bound) + return llim, ulim + + def ci_kurt(self, sig=.05, upper_bound=None, lower_bound=None): + """ + Returns the confidence interval for kurtosis. + + Parameters + ---------- + + sig : float + The significance level. Default is .05 + + upper_bound : float + Maximum value of kurtosis the upper limit can be. + Default is .99 confidence limit assuming normality. + + lower_bound : float + Minimum value of kurtosis the lower limit can be. + Default is .99 confidence limit assuming normality. + + Returns + -------- + Interval : tuple + Lower and upper confidence limit + + Notes + ----- + For small n, upper_bound and lower_bound may have to be + provided by the user. Consider using test_kurt to find + values close to the desired significance level. + + If function returns f(a) and f(b) must have different signs, consider + expanding the bounds. + """ + endog = self.endog + nobs = self.nobs + if upper_bound is None: + upper_bound = kurtosis(endog) + \ + (2.5 * (2. * ((6. * nobs * (nobs - 1.)) / \ + ((nobs - 2.) * (nobs + 1.) * \ + (nobs + 3.))) ** .5) * \ + (((nobs ** 2.) - 1.) / ((nobs - 3.) *\ + (nobs + 5.))) ** .5) + if lower_bound is None: + lower_bound = kurtosis(endog) - \ + (2.5 * (2. * ((6. * nobs * (nobs - 1.)) / \ + ((nobs - 2.) * (nobs + 1.) * \ + (nobs + 3.))) ** .5) * \ + (((nobs ** 2.) - 1.) / ((nobs - 3.) *\ + (nobs + 5.))) ** .5) + self.r0 = chi2.ppf(1 - sig, 1) + llim = optimize.brentq(self._ci_limits_kurt, lower_bound, \ + kurtosis(endog)) + ulim = optimize.brentq(self._ci_limits_kurt, kurtosis(endog), \ + upper_bound) + return llim, ulim + + +class DescStatMV(_OptFuncts): + """ + A class for conducting inference on multivariate means and correlation. + + Parameters + ---------- + endog : ndarray + Data to be analyzed + + Attributes + ---------- + endog : ndarray + Data to be analyzed + + nobs : float + Number of observations + + """ + + def __init__(self, endog): + self.endog = endog + self.nobs = endog.shape[0] + + def mv_test_mean(self, mu_array, return_weights=False): + """ + Returns -2 x log likelihood and the p-value + for a multivariate hypothesis test of the mean + + Parameters + ---------- + mu_array : 1d array + Hypothesized values for the mean. Must have same number of + elements as columns in endog + + return_weights : bool + If True, returns the weights that maximize the + likelihood of mu_array. Default is False. + + Returns + ------- + test_results : tuple + The log-likelihood ratio and p-value for mu_array + """ + endog = self.endog + nobs = self.nobs + if len(mu_array) != endog.shape[1]: + raise Exception('mu_array must have the same number of \ + elements as the columns of the data.') + mu_array = mu_array.reshape(1, endog.shape[1]) + means = np.ones((endog.shape[0], endog.shape[1])) + means = mu_array * means + est_vect = endog - means + start_vals = 1. / nobs * np.ones(endog.shape[1]) + eta_star = self._modif_newton(start_vals, est_vect, + np.ones(nobs) * (1. / nobs)) + denom = 1 + np.dot(eta_star, est_vect.T) + self.new_weights = 1 / nobs * 1 / denom + llr = -2 * np.sum(np.log(nobs * self.new_weights)) + p_val = chi2.sf(llr, mu_array.shape[1]) + if return_weights: + return llr, p_val, self.new_weights.T + else: + return llr, p_val + + def mv_mean_contour(self, mu1_low, mu1_upp, mu2_low, mu2_upp, step1, step2, + levs=(.001, .01, .05, .1, .2), var1_name=None, + var2_name=None, plot_dta=False): + """ + Creates a confidence region plot for the mean of bivariate data + + Parameters + ---------- + m1_low : float + Minimum value of the mean for variable 1 + m1_upp : float + Maximum value of the mean for variable 1 + mu2_low : float + Minimum value of the mean for variable 2 + mu2_upp : float + Maximum value of the mean for variable 2 + step1 : float + Increment of evaluations for variable 1 + step2 : float + Increment of evaluations for variable 2 + levs : list + Levels to be drawn on the contour plot. + Default = (.001, .01, .05, .1, .2) + plot_dta : bool + If True, makes a scatter plot of the data on + top of the contour plot. Defaultis False. + var1_name : str + Name of variable 1 to be plotted on the x-axis + var2_name : str + Name of variable 2 to be plotted on the y-axis + + Notes + ----- + The smaller the step size, the more accurate the intervals + will be + + If the function returns optimization failed, consider narrowing + the boundaries of the plot + + Examples + -------- + >>> import statsmodels.api as sm + >>> two_rvs = np.random.standard_normal((20,2)) + >>> el_analysis = sm.emplike.DescStat(two_rvs) + >>> contourp = el_analysis.mv_mean_contour(-2, 2, -2, 2, .1, .1) + >>> contourp.show() + """ + if self.endog.shape[1] != 2: + raise Exception('Data must contain exactly two variables') + fig, ax = utils.create_mpl_ax() + if var2_name is None: + ax.set_ylabel('Variable 2') + else: + ax.set_ylabel(var2_name) + if var1_name is None: + ax.set_xlabel('Variable 1') + else: + ax.set_xlabel(var1_name) + x = np.arange(mu1_low, mu1_upp, step1) + y = np.arange(mu2_low, mu2_upp, step2) + pairs = itertools.product(x, y) + z = [] + for i in pairs: + z.append(self.mv_test_mean(np.asarray(i))[0]) + X, Y = np.meshgrid(x, y) + z = np.asarray(z) + z = z.reshape(X.shape[1], Y.shape[0]) + ax.contour(x, y, z.T, levels=levs) + if plot_dta: + ax.plot(self.endog[:, 0], self.endog[:, 1], 'bo') + return fig + + def test_corr(self, corr0, return_weights=0): + """ + Returns -2 x log-likelihood ratio and p-value for the + correlation coefficient between 2 variables + + Parameters + ---------- + corr0 : float + Hypothesized value to be tested + + return_weights : bool + If true, returns the weights that maximize + the log-likelihood at the hypothesized value + """ + nobs = self.nobs + endog = self.endog + if endog.shape[1] != 2: + raise Exception('Correlation matrix not yet implemented') + nuis0 = np.array([endog[:, 0].mean(), + endog[:, 0].var(), + endog[:, 1].mean(), + endog[:, 1].var()]) + + x0 = np.zeros(5) + weights0 = np.array([1. / nobs] * int(nobs)) + args = (corr0, endog, nobs, x0, weights0) + llr = optimize.fmin(self._opt_correl, nuis0, args=args, + full_output=1, disp=0)[1] + p_val = chi2.sf(llr, 1) + if return_weights: + return llr, p_val, self.new_weights.T + return llr, p_val + + def ci_corr(self, sig=.05, upper_bound=None, lower_bound=None): + """ + Returns the confidence intervals for the correlation coefficient + + Parameters + ---------- + sig : float + The significance level. Default is .05 + + upper_bound : float + Maximum value the upper confidence limit can be. + Default is 99% confidence limit assuming normality. + + lower_bound : float + Minimum value the lower condidence limit can be. + Default is 99% confidence limit assuming normality. + + Returns + ------- + interval : tuple + Confidence interval for the correlation + + """ + endog = self.endog + nobs = self.nobs + self.r0 = chi2.ppf(1 - sig, 1) + point_est = np.corrcoef(endog[:, 0], endog[:, 1])[0, 1] + if upper_bound is None: + upper_bound = min(.999, point_est + \ + 2.5 * ((1. - point_est ** 2.) / \ + (nobs - 2.)) ** .5) + + if lower_bound is None: + lower_bound = max(- .999, point_est - \ + 2.5 * (np.sqrt((1. - point_est ** 2.) / \ + (nobs - 2.)))) + + llim = optimize.brenth(self._ci_limits_corr, lower_bound, point_est) + ulim = optimize.brenth(self._ci_limits_corr, point_est, upper_bound) + return llim, ulim diff --git a/statsmodels/emplike/elanova.py b/statsmodels/emplike/elanova.py new file mode 100644 index 0000000..5a13212 --- /dev/null +++ b/statsmodels/emplike/elanova.py @@ -0,0 +1,126 @@ +""" +This script contains empirical likelihood ANOVA. + +Currently the script only contains one feature that allows the user to compare +means of multiple groups + +General References +------------------ + +Owen, A. B. (2001). Empirical Likelihood. Chapman and Hall. +""" +from __future__ import division + +from statsmodels.compat.python import range +import numpy as np +from .descriptive import _OptFuncts +from scipy import optimize +from scipy.stats import chi2 + + +class _ANOVAOpt(_OptFuncts): + """ + + Class containing functions that are optimized over when + conducting ANOVA + + """ + def _opt_common_mu(self, mu): + """ + Optimizes the likelihood under the null hypothesis that all groups have + mean mu + + Parameters + ---------- + mu : float + The common mean + + Returns + ------- + llr : float + -2 times the llr ratio, which is the test statistic + """ + nobs = self.nobs + endog = self.endog + num_groups = self.num_groups + endog_asarray = np.zeros((nobs, num_groups)) + obs_num = 0 + for arr_num in range(len(endog)): + new_obs_num = obs_num + len(endog[arr_num]) + endog_asarray[obs_num: new_obs_num, arr_num] = endog[arr_num] - \ + mu + obs_num = new_obs_num + est_vect = endog_asarray + wts = np.ones(est_vect.shape[0]) * (1. / (est_vect.shape[0])) + eta_star = self._modif_newton(np.zeros(num_groups), est_vect, wts) + denom = 1. + np.dot(eta_star, est_vect.T) + self.new_weights = 1. / nobs * 1. / denom + llr = np.sum(np.log(nobs * self.new_weights)) + return -2 * llr + + +class ANOVA(_ANOVAOpt): + """ + A class for ANOVA and comparing means. + + Parameters + ---------- + + endog : list of arrays + endog should be a list containing 1 dimensional arrays. Each array + is the data collected from a certain group. + """ + + def __init__(self, endog): + self.endog = endog + self.num_groups = len(self.endog) + self.nobs = 0 + for i in self.endog: + self.nobs = self.nobs + len(i) + + def compute_ANOVA(self, mu=None, mu_start=0, return_weights=0): + + """ + Returns -2 log likelihood, the pvalue and the maximum likelihood + estimate for a common mean. + + Parameters + ---------- + + mu : float + If a mu is specified, ANOVA is conducted with mu as the + common mean. Otherwise, the common mean is the maximum + empirical likelihood estimate of the common mean. + Default is None. + + mu_start : float + Starting value for commean mean if specific mu is not specified. + Default = 0 + + return_weights : bool + if TRUE, returns the weights on observations that maximize the + likelihood. Default is FALSE + + Returns + ------- + + res: tuple + The log-likelihood, p-value and estimate for the common mean. + """ + if mu is not None: + llr = self._opt_common_mu(mu) + pval = 1 - chi2.cdf(llr, self.num_groups - 1) + if return_weights: + return llr, pval, mu, self.new_weights + else: + return llr, pval, mu + else: + res = optimize.fmin_powell(self._opt_common_mu, mu_start, + full_output=1, disp=False) + llr = res[1] + mu_common = float(res[0]) + pval = 1 - chi2.cdf(llr, self.num_groups - 1) + if return_weights: + return llr, pval, mu_common, self.new_weights + else: + return llr, pval, mu_common diff --git a/statsmodels/emplike/elregress.py b/statsmodels/emplike/elregress.py new file mode 100644 index 0000000..66bdbfd --- /dev/null +++ b/statsmodels/emplike/elregress.py @@ -0,0 +1,93 @@ +""" +Empirical Likelihood Linear Regression Inference + +The script contains the function that is optimized over nuisance parameters to + conduct inference on linear regression parameters. It is called by eltest +in OLSResults. + + +General References +----------------- + +Owen, A.B.(2001). Empirical Likelihood. Chapman and Hall + +""" +from __future__ import division + +import numpy as np +from statsmodels.emplike.descriptive import _OptFuncts + + + +class _ELRegOpts(_OptFuncts): + """ + + A class that holds functions to be optimized over when conducting + hypothesis tests and calculating confidence intervals. + + Parameters + ---------- + + OLSResults : Results instance + A fitted OLS result + + """ + def __init__(self): + pass + + def _opt_nuis_regress(self, nuisance_params, param_nums=None, + endog=None, exog=None, + nobs=None, nvar=None, params=None, b0_vals=None, + stochastic_exog=None): + """ + A function that is optimized over nuisance parameters to conduct a + hypothesis test for the parameters of interest + + Parameters + ---------- + nuisance_params: 1darray + Parameters to be optimized over + + Returns + ------- + llr : float + -2 x the log-likelihood of the nuisance parameters and the + hypothesized value of the parameter(s) of interest. + """ + params[param_nums] = b0_vals + nuis_param_index = np.int_(np.delete(np.arange(nvar), + param_nums)) + params[nuis_param_index] = nuisance_params + new_params = params.reshape(nvar, 1) + self.new_params = new_params + est_vect = exog * \ + (endog - np.squeeze(np.dot(exog, new_params))).reshape(int(nobs), 1) + if not stochastic_exog: + exog_means = np.mean(exog, axis=0)[1:] + exog_mom2 = (np.sum(exog * exog, axis=0))[1:]\ + / nobs + mean_est_vect = exog[:, 1:] - exog_means + mom2_est_vect = (exog * exog)[:, 1:] - exog_mom2 + regressor_est_vect = np.concatenate((mean_est_vect, mom2_est_vect), + axis=1) + est_vect = np.concatenate((est_vect, regressor_est_vect), + axis=1) + + wts = np.ones(int(nobs)) * (1. / nobs) + x0 = np.zeros(est_vect.shape[1]).reshape(-1, 1) + try: + eta_star = self._modif_newton(x0, est_vect, wts) + denom = 1. + np.dot(eta_star, est_vect.T) + self.new_weights = 1. / nobs * 1. / denom + # the following commented out code is to verify weights + # see open issue #1845 + #self.new_weights /= self.new_weights.sum() + #if not np.allclose(self.new_weights.sum(), 1., rtol=0, atol=1e-10): + # raise RuntimeError('weights do not sum to 1') + llr = np.sum(np.log(nobs * self.new_weights)) + return -2 * llr + except np.linalg.linalg.LinAlgError: + return np.inf + + + diff --git a/statsmodels/emplike/heartdata.csv b/statsmodels/emplike/heartdata.csv new file mode 100644 index 0000000..a7b5dad --- /dev/null +++ b/statsmodels/emplike/heartdata.csv @@ -0,0 +1,69 @@ +15;1;54.3 +3;1;40.4 +624;1;51 +46;1;42.5 +127;1;48 +64;1;54.6 +1350;1;54.1 +280;1;49.5 +23;1;56.9 +10;1;55.3 +1024;1;43.4 +39;1;42.8 +730;1;58.4 +136;1;52 +1775;0;33.3 +1;1;54.2 +836;1;45 +60;1;64.5 +1536;0;49 +1549;0;40.6 +54;1;49 +47;1;61.5 +1;1;41.5 +51;1;50.5 +1367;0;48.6 +1264;0;45.5 +44;1;36.2 +994;1;48.6 +51;1;47.2 +1106;0;36.8 +897;1;46.1 +253;1;48.8 +147;1;47.5 +51;1;52.5 +875;0;38.9 +322;1;48.1 +838;0;41.6 +65;1;49.1 +815;0;32.7 +551;1;48.9 +66;1;51.3 +228;1;19.7 +65;1;45.2 +660;0;48 +25;1;53 +589;0;47.5 +592;0;26.7 +63;1;56.4 +12;1;29.2 +499;0;52.2 +305;0;49.3 +29;1;54 +456;0;46.5 +439;0;52.9 +48;1;53.4 +297;1;42.8 +389;0;48.9 +50;1;46.4 +339;0;54.4 +68;1;51.4 +26;1;52.5 +30;0;45.8 +237;0;47.8 +161;1;43.8 +14;1;40.3 +167;0;26.7 +110;0;23.7 +13;0;28.9 +1;0;35.2 diff --git a/statsmodels/emplike/koul_and_mc.py b/statsmodels/emplike/koul_and_mc.py new file mode 100644 index 0000000..a1ea4f7 --- /dev/null +++ b/statsmodels/emplike/koul_and_mc.py @@ -0,0 +1,36 @@ +from statsmodels.compat.python import range +import statsmodels.api as sm +import numpy as np + +################## +#Monte Carlo test# +################## +modrand1 = np.random.RandomState(5676576) +modrand2 = np.random.RandomState(1543543) +modrand3 = np.random.RandomState(5738276) +X = modrand1.uniform(0, 5, (1000, 4)) +X = sm.add_constant(X) +beta = np.array([[10], [2], [3], [4], [5]]) +y = np.dot(X, beta) +params = [] +for i in range(10000): + yhat = y + modrand2.standard_normal((1000, 1)) + cens_times = 50 + (modrand3.standard_normal((1000, 1)) * 5) + yhat_observed = np.minimum(yhat, cens_times) + censors = np.int_(yhat < cens_times) + model = sm.emplike.emplikeAFT(yhat_observed, X, censors) + new_params = model.fit().params + params.append(new_params) + +mc_est = np.mean(params, axis=0) # Gives MC parameter estimate + +################## +#Koul replication# +################## + +koul_data = np.genfromtxt('/home/justin/rverify.csv', delimiter=';') +# ^ Change path to where file is located. +koul_y = np.log10(koul_data[:, 0]) +koul_x = sm.add_constant(koul_data[:, 2]) +koul_censors = koul_data[:, 1] +koul_params = sm.emplike.emplikeAFT(koul_y, koul_x, koul_censors).fit().params diff --git a/statsmodels/emplike/originregress.py b/statsmodels/emplike/originregress.py new file mode 100644 index 0000000..8fd80f0 --- /dev/null +++ b/statsmodels/emplike/originregress.py @@ -0,0 +1,259 @@ +""" +This module implements empirical likelihood regression that is forced through +the origin. + +This is different than regression not forced through the origin because the +maximum empirical likelihood estimate is calculated with a vector of ones in +the exogenous matrix but restricts the intercept parameter to be 0. This +results in significantly more narrow confidence intervals and different +parameter estimates. + +For notes on regression not forced through the origin, see empirical likelihood +methods in the OLSResults class. + +General References +------------------ +Owen, A.B. (2001). Empirical Likelihood. Chapman and Hall. p. 82. + +""" +from __future__ import division + +import numpy as np +from scipy.stats import chi2 +from scipy import optimize +# When descriptive merged, this will be changed +from statsmodels.tools.tools import add_constant +from statsmodels.regression.linear_model import OLS, RegressionResults + + +class ELOriginRegress(object): + """ + Empirical Likelihood inference and estimation for linear regression + through the origin + + Parameters + ---------- + endog: nx1 array + Array of response variables + + exog: nxk array + Array of exogenous variables. Assumes no array of ones + + Attributes + ---------- + endog : nx1 array + Array of response variables + + exog : nxk array + Array of exogenous variables. Assumes no array of ones + + nobs : float + Number of observations + + nvar : float + Number of exogenous regressors + + """ + def __init__(self, endog, exog): + self.endog = endog + self.exog = exog + self.nobs = self.exog.shape[0] + try: + self.nvar = float(exog.shape[1]) + except IndexError: + self.nvar = 1. + + def fit(self): + """ + Fits the model and provides regression results. + + Returns + ------- + Results : class + Empirical likelihood regression class + + """ + exog_with = add_constant(self.exog, prepend=True) + restricted_model = OLS(self.endog, exog_with) + restricted_fit = restricted_model.fit() + restricted_el = restricted_fit.el_test( + np.array([0]), np.array([0]), ret_params=1) + params = np.squeeze(restricted_el[3]) + beta_hat_llr = restricted_el[0] + llf = np.sum(np.log(restricted_el[2])) + return OriginResults(restricted_model, params, beta_hat_llr, llf) + + def predict(self, params, exog=None): + if exog is None: + exog = self.exog + return np.dot(add_constant(exog, prepend=True), params) + + +class OriginResults(RegressionResults): + """ + A Results class for empirical likelihood regression through the origin + + Parameters + ---------- + model : class + An OLS model with an intercept + + params : 1darray + Fitted parameters + + est_llr : float + The log likelihood ratio of the model with the intercept restricted to + 0 at the maximum likelihood estimates of the parameters. + llr_restricted/llr_unrestricted + + llf_el : float + The log likelihood of the fitted model with the intercept restricted to 0. + + Attributes + ---------- + model : class + An OLS model with an intercept + + params : 1darray + Fitted parameter + + llr : float + The log likelihood ratio of the maximum empirical likelihood estimate + + llf_el : float + The log likelihood of the fitted model with the intercept restricted to 0 + + Notes + ----- + IMPORTANT. Since EL estimation does not drop the intercept parameter but + instead estimates the slope parameters conditional on the slope parameter + being 0, the first element for params will be the intercept, which is + restricted to 0. + + IMPORTANT. This class inherits from RegressionResults but inference is + conducted via empirical likelihood. Therefore, any methods that + require an estimate of the covariance matrix will not function. Instead + use el_test and conf_int_el to conduct inference. + + Examples + -------- + >>> import statsmodels.api as sm + >>> data = sm.datasets.bc.load() + >>> model = sm.emplike.ELOriginRegress(data.endog, data.exog) + >>> fitted = model.fit() + >>> fitted.params # 0 is the intercept term. + array([ 0. , 0.00351813]) + + >>> fitted.el_test(np.array([.0034]), np.array([1])) + (3.6696503297979302, 0.055411808127497755) + >>> fitted.conf_int_el(1) + (0.0033971871114706867, 0.0036373150174892847) + + # No covariance matrix so normal inference is not valid + >>> fitted.conf_int() + TypeError: unsupported operand type(s) for *: 'instancemethod' and 'float' + + """ + def __init__(self, model, params, est_llr, llf_el): + self.model = model + self.params = np.squeeze(params) + self.llr = est_llr + self.llf_el = llf_el + def el_test(self, b0_vals, param_nums, method='nm', + stochastic_exog=1, return_weights=0): + """ + Returns the llr and p-value for a hypothesized parameter value + for a regression that goes through the origin + + Parameters + ---------- + b0_vals : 1darray + The hypothesized value to be tested + + param_num : 1darray + Which parameters to test. Note this uses python + indexing but the '0' parameter refers to the intercept term, + which is assumed 0. Therefore, param_num should be > 0. + + return_weights : bool + If true, returns the weights that optimize the likelihood + ratio at b0_vals. Default is False + + method : string + Can either be 'nm' for Nelder-Mead or 'powell' for Powell. The + optimization method that optimizes over nuisance parameters. + Default is 'nm' + + stochastic_exog : bool + When TRUE, the exogenous variables are assumed to be stochastic. + When the regressors are nonstochastic, moment conditions are + placed on the exogenous variables. Confidence intervals for + stochastic regressors are at least as large as non-stochastic + regressors. Default is TRUE + + Returns + ------- + res : tuple + pvalue and likelihood ratio + """ + b0_vals = np.hstack((0, b0_vals)) + param_nums = np.hstack((0, param_nums)) + test_res = self.model.fit().el_test(b0_vals, param_nums, method=method, + stochastic_exog=stochastic_exog, + return_weights=return_weights) + llr_test = test_res[0] + llr_res = llr_test - self.llr + pval = chi2.sf(llr_res, self.model.exog.shape[1] - 1) + if return_weights: + return llr_res, pval, test_res[2] + else: + return llr_res, pval + + def conf_int_el(self, param_num, upper_bound=None, + lower_bound=None, sig=.05, method='nm', + stochastic_exog=1): + """ + Returns the confidence interval for a regression parameter when the + regression is forced through the origin + + Parameters + ---------- + param_num : int + The parameter number to be tested. Note this uses python + indexing but the '0' parameter refers to the intercept term + + upper_bound : float + The maximum value the upper confidence limit can be. The + closer this is to the confidence limit, the quicker the + computation. Default is .00001 confidence limit under normality + + lower_bound : float + The minimum value the lower confidence limit can be. + Default is .00001 confidence limit under normality + + sig : float, optional + The significance level. Default .05 + + method : str, optional + Algorithm to optimize of nuisance params. Can be 'nm' or + 'powell'. Default is 'nm'. + + Returns + ------- + ci: tuple + The confidence interval for the parameter 'param_num' + """ + r0 = chi2.ppf(1 - sig, 1) + param_num = np.array([param_num]) + if upper_bound is None: + upper_bound = (np.squeeze(self.model.fit(). + conf_int(.0001)[param_num])[1]) + if lower_bound is None: + lower_bound = (np.squeeze(self.model.fit().conf_int(.00001) + [param_num])[0]) + f = lambda b0: self.el_test(np.array([b0]), param_num, + method=method, + stochastic_exog=stochastic_exog)[0] - r0 + lowerl = optimize.brentq(f, lower_bound, self.params[param_num]) + upperl = optimize.brentq(f, self.params[param_num], upper_bound) + return (lowerl, upperl) diff --git a/statsmodels/emplike/tests/__init__.py b/statsmodels/emplike/tests/__init__.py new file mode 100644 index 0000000..beeb5d3 --- /dev/null +++ b/statsmodels/emplike/tests/__init__.py @@ -0,0 +1 @@ +#init file diff --git a/statsmodels/emplike/tests/results/__init__.py b/statsmodels/emplike/tests/results/__init__.py new file mode 100644 index 0000000..b7e2599 --- /dev/null +++ b/statsmodels/emplike/tests/results/__init__.py @@ -0,0 +1 @@ +# Init for results diff --git a/statsmodels/emplike/tests/results/el_results.py b/statsmodels/emplike/tests/results/el_results.py new file mode 100644 index 0000000..d69e98b --- /dev/null +++ b/statsmodels/emplike/tests/results/el_results.py @@ -0,0 +1,373 @@ +""" +Results from Matlab and R +""" +import numpy as np + + +class DescStatRes(object): + """ + + The results were generated from Bruce Hansen's + MATLAb package: + + Bruce E. Hansen + Department of Economics + Social Science Building + University of Wisconsin + Madison, WI 53706-1393 + bhansen@ssc.wisc.edu + http://www.ssc.wisc.edu/~bhansen/ + + The R results are from Mai Zhou's emplik package + + """ + + def __init__(self): + self.ci_mean = (13.556709, 14.559394) + self.test_mean_14 = (.080675, .776385) + self.test_mean_weights = np.array([[0.01969213], + [0.01911859], + [0.01973982], + [0.01982913], + [0.02004183], + [0.0195765], + [0.01970423], + [0.02015074], + [0.01898431], + [0.02067787], + [0.01878104], + [0.01920531], + [0.01981207], + [0.02031582], + [0.01857329], + [0.01907883], + [0.01943674], + [0.0210042], + [0.0197373], + [0.01997998], + [0.0199233], + [0.01986713], + [0.02017751], + [0.01962176], + [0.0214596], + [0.02118228], + [0.02013767], + [0.01918665], + [0.01908886], + [0.01943081], + [0.01916251], + [0.01868129], + [0.01918334], + [0.01969084], + [0.01984322], + [0.0198977], + [0.02098504], + [0.02132222], + [0.02100581], + [0.01970351], + [0.01942184], + [0.01979781], + [0.02114276], + [0.02096136], + [0.01999804], + [0.02044712], + [0.02174404], + [0.02189933], + [0.02077078], + [0.02082612]]).squeeze() + self.test_var_3 = (.199385, .655218) + self.ci_var = (2.290077, 4.423634) + self.test_var_weights = np.array([[0.020965], + [0.019686], + [0.021011], + [0.021073], + [0.021089], + [0.020813], + [0.020977], + [0.021028], + [0.019213], + [0.02017], + [0.018397], + [0.01996], + [0.021064], + [0.020854], + [0.017463], + [0.019552], + [0.020555], + [0.019283], + [0.021009], + [0.021103], + [0.021102], + [0.021089], + [0.021007], + [0.020879], + [0.017796], + [0.018726], + [0.021038], + [0.019903], + [0.019587], + [0.020543], + [0.019828], + [0.017959], + [0.019893], + [0.020963], + [0.02108], + [0.021098], + [0.01934], + [0.018264], + [0.019278], + [0.020977], + [0.020523], + [0.021055], + [0.018853], + [0.019411], + [0.0211], + [0.02065], + [0.016803], + [0.016259], + [0.019939], + [0.019793]]).squeeze() + self.mv_test_mean = (.7002663, .7045943) + self.mv_test_mean_wts = np.array([[0.01877015], + [0.01895746], + [0.01817092], + [0.01904308], + [0.01707106], + [0.01602806], + [0.0194296], + [0.01692204], + [0.01978322], + [0.01881313], + [0.02011785], + [0.0226274], + [0.01953733], + [0.01874346], + [0.01694224], + [0.01611816], + [0.02297437], + [0.01943187], + [0.01899873], + [0.02113375], + [0.02295293], + [0.02043509], + [0.02276583], + [0.02208274], + [0.02466621], + [0.02287983], + [0.0173136], + [0.01905693], + [0.01909335], + [0.01982534], + [0.01924093], + [0.0179352], + [0.01871907], + [0.01916633], + [0.02022359], + [0.02228696], + [0.02080555], + [0.01725214], + [0.02166185], + [0.01798537], + [0.02103582], + [0.02052757], + [0.03096074], + [0.01966538], + [0.02201629], + [0.02094854], + [0.02127771], + [0.01961964], + [0.02023756], + [0.01774807]]).squeeze() + self.test_skew = (2.498418, .113961) + self.test_skew_wts = np.array([[0.016698], + [0.01564], + [0.01701], + [0.017675], + [0.019673], + [0.016071], + [0.016774], + [0.020902], + [0.016397], + [0.027359], + [0.019136], + [0.015419], + [0.01754], + [0.022965], + [0.027203], + [0.015805], + [0.015565], + [0.028518], + [0.016992], + [0.019034], + [0.018489], + [0.01799], + [0.021222], + [0.016294], + [0.022725], + [0.027133], + [0.020748], + [0.015452], + [0.015759], + [0.01555], + [0.015506], + [0.021863], + [0.015459], + [0.01669], + [0.017789], + [0.018257], + [0.028578], + [0.025151], + [0.028512], + [0.01677], + [0.015529], + [0.01743], + [0.027563], + [0.028629], + [0.019216], + [0.024677], + [0.017376], + [0.014739], + [0.028112], + [0.02842]]).squeeze() + self.test_kurt_0 = (1.904269, .167601) + self.test_corr = (.012025, .912680,) + self.test_corr_weights = np.array([[0.020037], + [0.020108], + [0.020024], + [0.02001], + [0.019766], + [0.019971], + [0.020013], + [0.019663], + [0.019944], + [0.01982], + [0.01983], + [0.019436], + [0.020005], + [0.019897], + [0.020768], + [0.020468], + [0.019521], + [0.019891], + [0.020024], + [0.01997], + [0.019824], + [0.019976], + [0.019979], + [0.019753], + [0.020814], + [0.020474], + [0.019751], + [0.020085], + [0.020087], + [0.019977], + [0.020057], + [0.020435], + [0.020137], + [0.020025], + [0.019982], + [0.019866], + [0.020151], + [0.019046], + [0.020272], + [0.020034], + [0.019813], + [0.01996], + [0.020657], + [0.019947], + [0.019931], + [0.02008], + [0.02035], + [0.019823], + [0.02005], + [0.019497]]).squeeze() + self.test_joint_skew_kurt = (8.753952, .012563) + + + +class RegressionResults(object): + """ + Results for EL Regression + """ + def __init__(self): + self.source = 'Matlab' + self.test_beta0 = (1.758104, .184961, + np.array([ 0.04326392, + 0.04736749, 0.03573865, 0.04770535, 0.04721684, + 0.04718301, 0.07088816, 0.05631242, 0.04865098, 0.06572099, + 0.04016013, 0.04438627, 0.04042288, 0.03938043, 0.04006474, + 0.04845233, 0.01991985, 0.03623254, 0.03617999, 0.05607242, + 0.0886806 ])) + + self.test_beta1 = (1.932529, .164482, np.array([ 0.033328, + 0.051412, 0.03395 , 0.071695, 0.046433, 0.041303, + 0.033329, 0.036413, 0.03246 , 0.037776, 0.043872, 0.037507, + 0.04762 , 0.04881 , 0.05874 , 0.049553, 0.048898, 0.04512 , + 0.041142, 0.048121, 0.11252 ])) + + self.test_beta2 = (.494593, .481866, np.array([ 0.046287, + 0.048632, 0.048772, 0.034769, 0.048416, 0.052447, + 0.053336, 0.050112, 0.056053, 0.049318, 0.053609, 0.055634, + 0.042188, 0.046519, 0.048415, 0.047897, 0.048673, 0.047695, + 0.047503, 0.047447, 0.026279])) + + self.test_beta3 = (3.537250, .060005, np.array([ 0.036327, + 0.070483, 0.048965, 0.087399, 0.041685, 0.036221, + 0.016752, 0.019585, 0.027467, 0.02957 , 0.069204, 0.060167, + 0.060189, 0.030007, 0.067371, 0.046862, 0.069814, 0.053041, + 0.053362, 0.041585, 0.033943])) + + self.test_ci_beta0 = (-52.77128837058528, -24.11607348661947) + + self.test_ci_beta1 = (0.41969831751229664, 0.9857167306604057) + + self.test_ci_beta2 = (0.6012045929381431, 2.1847079367275692) + + self.test_ci_beta3 = (-0.3804313225443794, 0.006934528877337928) + +class ANOVAResults(object): + """ + Results for ANOVA + """ + def __init__(self): + self.source = 'Matlab' + self.compute_ANOVA = (.426163, .51387, np.array([9.582371]), + np.array([ 0.018494, 0.01943 , 0.016624, 0.0172 , 0.016985, 0.01922 , + 0.016532, 0.015985, 0.016769, 0.017631, 0.017677, 0.017984, + 0.017049, 0.016721, 0.016382, 0.016566, 0.015642, 0.015894, + 0.016282, 0.015704, 0.016272, 0.015678, 0.015651, 0.015648, + 0.015618, 0.015726, 0.015981, 0.01635 , 0.01586 , 0.016443, + 0.016126, 0.01683 , 0.01348 , 0.017391, 0.011225, 0.017282, + 0.015568, 0.017543, 0.017009, 0.016325, 0.012841, 0.017648, + 0.01558 , 0.015994, 0.017258, 0.017664, 0.017792, 0.017772, + 0.017527, 0.017797, 0.017856, 0.017849, 0.017749, 0.017827, + 0.017381, 0.017902, 0.016557, 0.015522, 0.017455, 0.017248])) + + +class AFTRes(object): + """ + Results for the AFT model from package emplik in R written by Mai Zhou + """ + def __init__(self): + self.test_params = np.array([3.77710799, -0.03281745]) + self.test_beta0 = (.132511, 0.7158323) + self.test_beta1 = (.297951, .5851693) + self.test_joint = (11.8068, 0.002730147) + +class OriginResults(object): + """ + These results are from Bruce Hansen's Matlab package. + To replicate the results, the exogenous variables were scaled + down by 10**-2 and the results were then rescaled. + + These tests must also test likelihood functions because the + llr when conducting hypothesis tests is the MLE while + restricting the intercept to 0. Matlab's generic package always + uses the unrestricted MLE. + """ + def __init__(self): + self.test_params = np.array([0, .00351861]) + self.test_llf = -1719.793173 # llf when testing param = .0034 + self.test_llf_hat = -1717.95833 # llf when origin=0 + self.test_llf_hypoth = -2*(self.test_llf-self.test_llf_hat) + self.test_llf_conf = -1719.879077 # The likelihood function at conf_vals diff --git a/statsmodels/emplike/tests/test_aft.py b/statsmodels/emplike/tests/test_aft.py new file mode 100644 index 0000000..6414628 --- /dev/null +++ b/statsmodels/emplike/tests/test_aft.py @@ -0,0 +1,48 @@ +from __future__ import division + +import numpy as np +from numpy.testing import assert_almost_equal +from statsmodels.datasets import heart +from statsmodels.tools import add_constant +from statsmodels.emplike.aft_el import emplikeAFT +from .results.el_results import AFTRes + + +class GenRes(object): + def __init__(self): + data = heart.load() + endog = np.log10(data.endog) + exog = add_constant(data.exog) + self.mod1 = emplikeAFT(endog, exog, data.censors) + self.res1 = self.mod1.fit() + self.res2 = AFTRes() + + +class Test_AFTModel(GenRes): + def __init__(self): + super(Test_AFTModel, self).__init__() + + def test_params(self): + assert_almost_equal(self.res1.params(), self.res2.test_params, + decimal=4) + + def test_beta0(self): + assert_almost_equal(self.res1.test_beta([4], [0]), + self.res2.test_beta0, decimal=4) + + def test_beta1(self): + assert_almost_equal(self.res1.test_beta([-.04], [1]), + self.res2.test_beta1, decimal=4) + + def test_beta_vect(self): + assert_almost_equal(self.res1.test_beta([3.5, -.035], [0, 1]), + self.res2.test_joint, decimal=4) + + def test_betaci(self): + ci = self.res1.ci_beta(1, -.06, 0) + ll = ci[0] + ul = ci[1] + ll_pval = self.res1.test_beta([ll], [1])[1] + ul_pval = self.res1.test_beta([ul], [1])[1] + assert_almost_equal(ul_pval, .050000, decimal=4) + assert_almost_equal(ll_pval, .05000, decimal=4) diff --git a/statsmodels/emplike/tests/test_anova.py b/statsmodels/emplike/tests/test_anova.py new file mode 100644 index 0000000..252d5e0 --- /dev/null +++ b/statsmodels/emplike/tests/test_anova.py @@ -0,0 +1,24 @@ +from __future__ import division + +from numpy.testing import assert_almost_equal +from statsmodels.datasets import star98 +from statsmodels.emplike.elanova import ANOVA +from .results.el_results import ANOVAResults + +class TestANOVA(object): + """ + Tests ANOVA difference in means + """ + + def __init__(self): + self.data = star98.load().exog[:30, 1:3] + self.res1 = ANOVA([self.data[:, 0], self.data[:, 1]]) + self.res2 = ANOVAResults() + + def test_anova(self): + assert_almost_equal(self.res1.compute_ANOVA()[:2], + self.res2.compute_ANOVA[:2], 4) + assert_almost_equal(self.res1.compute_ANOVA()[2], + self.res2.compute_ANOVA[2], 4) + assert_almost_equal(self.res1.compute_ANOVA(return_weights=1)[3], + self.res2.compute_ANOVA[3], 4) diff --git a/statsmodels/emplike/tests/test_descriptive.py b/statsmodels/emplike/tests/test_descriptive.py new file mode 100644 index 0000000..daeb6a0 --- /dev/null +++ b/statsmodels/emplike/tests/test_descriptive.py @@ -0,0 +1,122 @@ +from __future__ import division + +import numpy as np +from numpy.testing import assert_almost_equal +from statsmodels.datasets import star98 +from statsmodels.emplike.descriptive import DescStat +from .results.el_results import DescStatRes + + +class GenRes(object): + """ + Reads in the data and creates class instance to be tested + + """ + def __init__(self): + data = star98.load() + desc_stat_data = data.exog[:50, 5] + mv_desc_stat_data = data.exog[:50, 5:7] # mv = multivariate + self.res1 = DescStat(desc_stat_data) + self.res2 = DescStatRes() + self.mvres1 = DescStat(mv_desc_stat_data) + + +class TestDescriptiveStatistics(GenRes): + def __init__(self): + super(TestDescriptiveStatistics, self).__init__() + + def test_test_mean(self): + assert_almost_equal(self.res1.test_mean(14), + self.res2.test_mean_14, 4) + + def test_test_mean_weights(self): + assert_almost_equal(self.res1.test_mean(14, return_weights=1)[2], + self.res2.test_mean_weights, 4) + + def test_ci_mean(self): + assert_almost_equal(self.res1.ci_mean(), self.res2.ci_mean, 4) + + def test_test_var(self): + assert_almost_equal(self.res1.test_var(3), + self.res2.test_var_3, 4) + + def test_test_var_weights(self): + assert_almost_equal(self.res1.test_var(3, return_weights=1)[2], + self.res2.test_var_weights, 4) + + def test_ci_var(self): + assert_almost_equal(self.res1.ci_var(), self.res2.ci_var, 4) + + def test_mv_test_mean(self): + assert_almost_equal(self.mvres1.mv_test_mean(np.array([14, 56])), + self.res2.mv_test_mean, 4) + + def test_mv_test_mean_weights(self): + assert_almost_equal(self.mvres1.mv_test_mean(np.array([14, 56]), + return_weights=1)[2], + self.res2.mv_test_mean_wts, 4) + + def test_test_skew(self): + assert_almost_equal(self.res1.test_skew(0), + self.res2.test_skew, 4) + + def test_ci_skew(self): + """ + This will be tested in a round about way since MATLAB fails when + computing CI with multiple nuisance parameters. The process is: + + (1) Get CI for skewness from ci.skew() + (2) In MATLAB test the hypotheis that skew=results of test_skew. + (3) If p-value approx .05, test confirmed + + """ + skew_ci = self.res1.ci_skew() + lower_lim = skew_ci[0] + upper_lim = skew_ci[1] + ul_pval = self.res1.test_skew(lower_lim)[1] + ll_pval = self.res1.test_skew(upper_lim)[1] + assert_almost_equal(ul_pval, .050000, 4) + assert_almost_equal(ll_pval, .050000, 4) + + def test_ci_skew_weights(self): + assert_almost_equal(self.res1.test_skew(0, return_weights=1)[2], + self.res2.test_skew_wts, 4) + + def test_test_kurt(self): + assert_almost_equal(self.res1.test_kurt(0), + self.res2.test_kurt_0, 4) + + def test_ci_kurt(self): + """ + + Same strategy for skewness CI + + """ + kurt_ci = self.res1.ci_kurt(upper_bound=.5, lower_bound=-1.5) + lower_lim = kurt_ci[0] + upper_lim = kurt_ci[1] + ul_pval = self.res1.test_kurt(upper_lim)[1] + ll_pval = self.res1.test_kurt(lower_lim)[1] + assert_almost_equal(ul_pval, .050000, 4) + assert_almost_equal(ll_pval, .050000, 4) + + def test_joint_skew_kurt(self): + assert_almost_equal(self.res1.test_joint_skew_kurt(0, 0), + self.res2.test_joint_skew_kurt, 4) + + def test_test_corr(self): + assert_almost_equal(self.mvres1.test_corr(.5), + self.res2.test_corr, 4) + + def test_ci_corr(self): + corr_ci = self.mvres1.ci_corr() + lower_lim = corr_ci[0] + upper_lim = corr_ci[1] + ul_pval = self.mvres1.test_corr(upper_lim)[1] + ll_pval = self.mvres1.test_corr(lower_lim)[1] + assert_almost_equal(ul_pval, .050000, 4) + assert_almost_equal(ll_pval, .050000, 4) + + def test_test_corr_weights(self): + assert_almost_equal(self.mvres1.test_corr(.5, return_weights=1)[2], + self.res2.test_corr_weights, 4) diff --git a/statsmodels/emplike/tests/test_origin.py b/statsmodels/emplike/tests/test_origin.py new file mode 100644 index 0000000..1c0997f --- /dev/null +++ b/statsmodels/emplike/tests/test_origin.py @@ -0,0 +1,44 @@ +from __future__ import division + +from numpy.testing import assert_almost_equal +from statsmodels.emplike.originregress import ELOriginRegress +from statsmodels.datasets import cancer +from .results.el_results import OriginResults +import numpy as np + +class GenRes(object): + """ + Loads data and creates class instance ot be tested. + + """ + def __init__(self): + data = cancer.load() + self.res1 = ELOriginRegress(data.endog, data.exog).fit() + self.res2 = OriginResults() + + +class TestOrigin(GenRes): + """ + See OriginResults for details on how tests were computed + """ + def __init__(self): + super(TestOrigin, self).__init__() + + def test_params(self): + assert_almost_equal(self.res1.params, self.res2.test_params, 4) + + def test_llf(self): + assert_almost_equal(self.res1.llf_el, self.res2.test_llf_hat, 4) + + def test_hypothesis_beta1(self): + assert_almost_equal(self.res1.el_test([.0034],[1])[0], + self.res2.test_llf_hypoth,4) + + def test_ci_beta(self): + ci = self.res1.conf_int_el(1) + ll = ci[0] + ul = ci[1] + llf_low = np.sum(np.log(self.res1.el_test([ll],[1], return_weights=1)[2])) + llf_high = np.sum(np.log(self.res1.el_test([ul],[1], return_weights=1)[2])) + assert_almost_equal(llf_low, self.res2.test_llf_conf, 4) + assert_almost_equal(llf_high, self.res2.test_llf_conf, 4) diff --git a/statsmodels/emplike/tests/test_regression.py b/statsmodels/emplike/tests/test_regression.py new file mode 100644 index 0000000..dd0d939 --- /dev/null +++ b/statsmodels/emplike/tests/test_regression.py @@ -0,0 +1,157 @@ +from __future__ import division + +from numpy.testing import assert_almost_equal +from numpy.testing.decorators import slow +from statsmodels.regression.linear_model import OLS +from statsmodels.tools import add_constant +from .results.el_results import RegressionResults +from statsmodels.datasets import stackloss + + +class GenRes(object): + """ + Loads data and creates class instance ot be tested + + """ + def __init__(self): + data = stackloss.load() + data.exog = add_constant(data.exog) + self.res1 = OLS(data.endog, data.exog).fit() + self.res2 = RegressionResults() + + +class TestRegressionPowell(GenRes): + """ + All confidence intervals are tested by conducting a hypothesis + tests at the confidence interval values. + + See Also + -------- + + test_descriptive.py, test_ci_skew + + """ + def __init__(self): + super(TestRegressionPowell, self).__init__() + + @slow + def test_hypothesis_beta0(self): + beta0res = self.res1.el_test([-30], [0], return_weights=1, + method='powell') + assert_almost_equal(beta0res[:2], self.res2.test_beta0[:2], 4) + assert_almost_equal(beta0res[2], self.res2.test_beta0[2], 4) + + @slow + def test_hypothesis_beta1(self): + beta1res = self.res1.el_test([.5], [1], return_weights=1, + method='powell') + assert_almost_equal(beta1res[:2], self.res2.test_beta1[:2], 4) + assert_almost_equal(beta1res[2], self.res2.test_beta1[2], 4) + + def test_hypothesis_beta2(self): + beta2res = self.res1.el_test([1], [2], return_weights=1, + method='powell') + assert_almost_equal(beta2res[:2], self.res2.test_beta2[:2], 4) + assert_almost_equal(beta2res[2], self.res2.test_beta2[2], 4) + + def test_hypothesis_beta3(self): + beta3res = self.res1.el_test([0], [3], return_weights=1, + method='powell') + assert_almost_equal(beta3res[:2], self.res2.test_beta3[:2], 4) + assert_almost_equal(beta3res[2], self.res2.test_beta3[2], 4) + + # Confidence interval results obtained through hypothesis testing in Matlab + def test_ci_beta0(self): + beta0ci = self.res1.conf_int_el(0, lower_bound=-52.9, + upper_bound=-24.1, method='powell') + assert_almost_equal(beta0ci, self.res2.test_ci_beta0, 3) + # Slightly lower precision. CI was obtained from nm method. + + def test_ci_beta1(self): + beta1ci = self.res1.conf_int_el(1, lower_bound=.418, upper_bound=.986, + method='powell') + assert_almost_equal(beta1ci, self.res2.test_ci_beta1, 4) + + def test_ci_beta2(self): + beta2ci = self.res1.conf_int_el(2, lower_bound=.59, + upper_bound=2.2, method='powell') + assert_almost_equal(beta2ci, self.res2.test_ci_beta2, 5) + + def test_ci_beta3(self): + beta3ci = self.res1.conf_int_el(3, lower_bound=-.39, upper_bound=.01, + method='powell') + assert_almost_equal(beta3ci, self.res2.test_ci_beta3, 6) + + +class TestRegressionNM(GenRes): + """ + All confidence intervals are tested by conducting a hypothesis + tests at the confidence interval values. + + See Also + -------- + + test_descriptive.py, test_ci_skew + + """ + def __init__(self): + super(TestRegressionNM, self).__init__() + + def test_hypothesis_beta0(self): + beta0res = self.res1.el_test([-30], [0], return_weights=1, + method='nm') + assert_almost_equal(beta0res[:2], self.res2.test_beta0[:2], 4) + assert_almost_equal(beta0res[2], self.res2.test_beta0[2], 4) + + def test_hypothesis_beta1(self): + beta1res = self.res1.el_test([.5], [1], return_weights=1, + method='nm') + assert_almost_equal(beta1res[:2], self.res2.test_beta1[:2], 4) + assert_almost_equal(beta1res[2], self.res2.test_beta1[2], 4) + + @slow + def test_hypothesis_beta2(self): + beta2res = self.res1.el_test([1], [2], return_weights=1, + method='nm') + assert_almost_equal(beta2res[:2], self.res2.test_beta2[:2], 4) + assert_almost_equal(beta2res[2], self.res2.test_beta2[2], 4) + + @slow + def test_hypothesis_beta3(self): + beta3res = self.res1.el_test([0], [3], return_weights=1, + method='nm') + assert_almost_equal(beta3res[:2], self.res2.test_beta3[:2], 4) + assert_almost_equal(beta3res[2], self.res2.test_beta3[2], 4) + + # Confidence interval results obtained through hyp testing in Matlab + + @slow + def test_ci_beta0(self): + """ + All confidence intervals are tested by conducting a hypothesis + tests at the confidence interval values since el_test + is already tested against Matlab + + See Also + -------- + + test_descriptive.py, test_ci_skew + + """ + beta0ci = self.res1.conf_int_el(0, method='nm') + assert_almost_equal(beta0ci, self.res2.test_ci_beta0, 6) + + @slow + def test_ci_beta1(self): + beta1ci = self.res1.conf_int_el(1, method='nm') + assert_almost_equal(beta1ci, self.res2.test_ci_beta1, 6) + + @slow + def test_ci_beta2(self): + beta2ci = self.res1.conf_int_el(2, lower_bound=.59, upper_bound=2.2, method='nm') + assert_almost_equal(beta2ci, self.res2.test_ci_beta2, 6) + + @slow + def test_ci_beta3(self): + beta3ci = self.res1.conf_int_el(3, method='nm') + assert_almost_equal(beta3ci, self.res2.test_ci_beta3, 6) diff --git a/statsmodels/examples/es_misc_poisson2.py b/statsmodels/examples/es_misc_poisson2.py new file mode 100644 index 0000000..b2fff0f --- /dev/null +++ b/statsmodels/examples/es_misc_poisson2.py @@ -0,0 +1,62 @@ + +from __future__ import print_function +import numpy as np +from numpy.testing import assert_almost_equal +import statsmodels.api as sm +from statsmodels.miscmodels.count import (PoissonGMLE, PoissonOffsetGMLE, + PoissonZiGMLE) + +DEC = 3 + +class Dummy(object): + pass + +self = Dummy() + +# generate artificial data +np.random.seed(98765678) +nobs = 200 +rvs = np.random.randn(nobs,6) +data_exog = rvs +data_exog = sm.add_constant(data_exog, prepend=False) +xbeta = 1 + 0.1*rvs.sum(1) +data_endog = np.random.poisson(np.exp(xbeta)) + +#estimate discretemod.Poisson as benchmark +from statsmodels.discrete.discrete_model import Poisson +res_discrete = Poisson(data_endog, data_exog).fit() + +mod_glm = sm.GLM(data_endog, data_exog, family=sm.families.Poisson()) +res_glm = mod_glm.fit() + +#estimate generic MLE +self.mod = PoissonGMLE(data_endog, data_exog) +res = self.mod.fit() +offset = res.params[0] * data_exog[:,0] #1d ??? + +mod1 = PoissonOffsetGMLE(data_endog, data_exog[:,1:], offset=offset) +start_params = np.ones(6)/2. +start_params = res.params[1:] +res1 = mod1.fit(start_params=start_params, method='nm', maxiter=1000, maxfun=1000) + +print('mod2') +mod2 = PoissonZiGMLE(data_endog, data_exog[:,1:], offset=offset) +start_params = np.r_[np.ones(6)/2.,10] +start_params = np.r_[res.params[1:], 20.] #-100] +res2 = mod2.fit(start_params=start_params, method='bfgs', maxiter=1000, maxfun=2000) + +print('mod3') +mod3 = PoissonZiGMLE(data_endog, data_exog, offset=None) +start_params = np.r_[np.ones(7)/2.,10] +start_params = np.r_[res.params, 20.] +res3 = mod3.fit(start_params=start_params, method='nm', maxiter=1000, maxfun=2000) + +print('mod4') +data_endog2 = np.r_[data_endog, np.zeros(nobs)] +data_exog2 = np.r_[data_exog, data_exog] + +mod4 = PoissonZiGMLE(data_endog2, data_exog2, offset=None) +start_params = np.r_[np.ones(7)/2.,10] +start_params = np.r_[res.params, 0.] +res4 = mod4.fit(start_params=start_params, method='nm', maxiter=1000, maxfun=1000) +print(res4.summary()) diff --git a/statsmodels/examples/ex_arch_canada.py b/statsmodels/examples/ex_arch_canada.py new file mode 100644 index 0000000..311bfa5 --- /dev/null +++ b/statsmodels/examples/ex_arch_canada.py @@ -0,0 +1,159 @@ +# -*- coding: utf-8 -*- +""" + +Created on Sat Dec 24 07:31:47 2011 + +Author: Josef Perktold +""" + +from __future__ import print_function +import numpy as np +import statsmodels.sandbox.stats.diagnostic as dia + +canada_raw = '''\ + 405.36646642737 929.610513893698 7.52999999999884 386.136109062605 + 404.639833965913 929.803984550587 7.69999999999709 388.135759111711 + 403.814883043744 930.318387567177 7.47000000000116 390.540112911955 + 404.215773188006 931.427687420772 7.2699999999968 393.963817246136 + 405.046713585284 932.662005594273 7.37000000000262 396.764690917547 + 404.416738673847 933.550939726636 7.12999999999738 400.021701616327 + 402.81912737043 933.531526191785 7.40000000000146 400.751498688807 + 401.977334663103 933.076879439814 8.33000000000175 405.733473658807 + 402.089724946428 932.12375320915 8.83000000000175 409.05038628366 + 401.306688373207 930.635939140315 10.429999999993 411.398377747425 + 401.630171263522 929.097059933419 12.1999999999971 413.019421511595 + 401.56375463175 928.563335601161 12.7700000000041 415.166962884156 + 402.815698906973 929.069380060201 12.429999999993 414.662070678749 + 403.142107624713 930.265516098198 12.2299999999959 415.731936138368 + 403.078619166324 931.677031559203 11.6999999999971 416.231468866173 + 403.718785733801 932.138967575148 11.1999999999971 418.14392690728 + 404.866799027579 932.276686471608 11.2700000000041 419.735231229658 + 405.636186735378 932.832783118083 11.4700000000012 420.484186198549 + 405.136285378794 933.733419116009 11.3000000000029 420.930881402259 + 406.024639922986 934.177206176622 11.1699999999983 422.112404525291 + 406.412269729241 934.592839827856 11 423.627805811063 + 406.300932644569 935.606709830033 10.6300000000047 423.988686751336 + 406.335351723382 936.511085968336 10.2700000000041 424.190212657915 + 406.773695329549 937.420090112655 10.1999999999971 426.127043353785 + 405.152547649247 938.415921627889 9.66999999999825 426.857794216679 + 404.929830809648 938.999170021426 9.60000000000582 426.745717993024 + 404.576546350926 939.235354789206 9.60000000000582 426.885793656802 + 404.199492630983 939.679504234357 9.5 428.840253264144 + 405.94985619596 940.249674139969 9.5 430.122322107039 + 405.82209202516 941.435818685214 9.02999999999884 430.230679154048 + 406.446282537108 942.29809597644 8.69999999999709 430.392994893689 + 407.051247525876 943.532223256403 8.13000000000466 432.028420083791 + 407.946023990985 944.34896981513 7.87000000000262 433.388625934544 + 408.179584663105 944.821488789039 7.66999999999825 433.964091817787 + 408.599812740441 945.067136927327 7.80000000000291 434.484384354647 + 409.090560656008 945.80672616174 7.7300000000032 436.156879277168 + 408.704215141145 946.869661504613 7.56999999999971 438.265143944308 + 408.980275213206 946.876612143542 7.56999999999971 438.763587343863 + 408.328690037174 947.249692256472 7.33000000000175 439.949811558539 + 407.885696563307 947.651276093962 7.56999999999971 441.835856392131 + 407.260532233258 948.183970741596 7.62999999999738 443.176872656863 + 406.775150765526 948.349239264364 7.59999999999854 444.359199033223 + 406.179413590339 948.032170661406 8.16999999999825 444.523614807208 + 405.439793348166 947.106483115935 9.19999999999709 446.969404642587 + 403.279970790458 946.079554231134 10.1699999999983 450.158586973168 + 403.364855995771 946.183811678692 10.3300000000017 451.546427290378 + 403.380680430043 946.22579516585 10.3999999999942 452.298351499968 + 404.003182812546 945.997783938785 10.3699999999953 453.120066578834 + 404.47739841708 945.518279080208 10.6000000000058 453.999145996277 + 404.786782762866 945.351397570438 11 454.955176222477 + 405.271003921828 945.291785517556 11.3999999999942 455.482381155116 + 405.382993140508 945.400785900878 11.7299999999959 456.100929020225 + 405.156416006566 945.905809840959 11.070000000007 457.202696739531 + 406.470043094757 945.90347041344 11.6699999999983 457.388589594786 + 406.229308967752 946.319028746014 11.4700000000012 457.779898919191 + 406.726483850871 946.579621275764 11.3000000000029 457.553538085846 + 408.578504884277 946.780032223884 10.9700000000012 458.80240271533 + 409.67671010704 947.628284240641 10.6300000000047 459.05640335985 + 410.385763295936 948.622057553611 10.1000000000058 459.15782324686 + 410.539523677181 949.399183241404 9.66999999999825 459.703720275789 + 410.445258303139 949.948137966398 9.52999999999884 459.703720275789 + 410.625605270832 949.794494142446 9.47000000000116 460.025814162716 + 410.867239714014 949.953380175189 9.5 461.025722503696 + 411.235917829196 950.250239444989 9.27000000000407 461.30391443673 + 410.663655285725 950.538030883093 9.5 461.4030814421 + 410.808508412624 950.787128498243 9.42999999999302 462.927726133156 + 412.115961520089 950.869528648471 9.69999999999709 464.688777934061 + 412.999407129539 950.928132469716 9.89999999999418 465.071700094375 + 412.955056755303 951.845722481401 9.42999999999302 464.285125295526 + 412.82413309368 952.6004761952 9.30000000000291 464.034426099541 + 413.048874899 953.597552755418 8.86999999999534 463.453479461824 + 413.611017876145 954.143388344158 8.77000000000407 465.071700094375 + 413.604781916778 954.542593332134 8.60000000000582 466.088867474481 + 412.968388225217 955.263136106029 8.33000000000175 466.617120754625 + 412.265886525002 956.056052852469 8.16999999999825 465.747796561181 + 412.910594097915 956.79658640007 8.02999999999884 465.899527268299 + 413.829416419695 957.386480451857 7.90000000000146 466.409925351738 + 414.22415210314 958.06341570725 7.87000000000262 466.955244491812 + 415.1677707968 958.716592187518 7.52999999999884 467.628081344681 + 415.701580225863 959.488142422254 6.93000000000029 467.70256230891 + 416.867407108435 960.362493080892 6.80000000000291 469.134788222928 + 417.610399060359 960.783379042937 6.69999999999709 469.336419672322 + 418.002980476361 961.029029939624 6.93000000000029 470.011666329664 + 417.266680178544 961.765709811429 6.87000000000262 469.647234439539''' + +canada = np.array(canada_raw.split(), float).reshape(-1,4) +k=2; +resarch2 = dia.acorr_lm((canada[:,k]-canada[:,k].mean())**2, maxlag=2, autolag=None, store=1) +print(resarch2) +resarch5 = dia.acorr_lm(canada[:,k]**2, maxlag=12, autolag=None, store=1) + +ss = '''\ + ARCH LM-test; Null hypothesis: no ARCH effects + +Chi-squared = %(chi)-8.4f df = %(df)-4d p-value = %(pval)8.4g +''' +resarch = resarch5 +print() +print(ss % dict(chi=resarch[2], df=resarch[-1].resols.df_model, pval=resarch[3])) + + +#R:FinTS: ArchTest(as.vector(Canada[,3]), lag=5) +''' + ARCH LM-test; Null hypothesis: no ARCH effects + +data: as.vector(Canada[, 3]) +Chi-squared = 78.878, df = 5, p-value = 1.443e-15 +''' + +#from ss above +''' + ARCH LM-test; Null hypothesis: no ARCH effects + +Chi-squared = 78.849 df = 5 p-value = 1.461e-15 +''' + +#k=2 +#R +''' + ARCH LM-test; Null hypothesis: no ARCH effects + +data: as.vector(Canada[, 4]) +Chi-squared = 74.6028, df = 5, p-value = 1.121e-14 +''' +#mine +''' + ARCH LM-test; Null hypothesis: no ARCH effects + +Chi-squared = 74.6028 df = 5 p-value = 1.126e-14 +''' + +''' +> ArchTest(as.vector(Canada[,4]), lag=12) + + ARCH LM-test; Null hypothesis: no ARCH effects + +data: as.vector(Canada[, 4]) +Chi-squared = 69.6359, df = 12, p-value = 3.747e-10 +''' + +#mine: +''' + ARCH LM-test; Null hypothesis: no ARCH effects + +Chi-squared = 69.6359 df = 12 p-value = 3.747e-10 +''' diff --git a/statsmodels/examples/ex_emplike_1.py b/statsmodels/examples/ex_emplike_1.py new file mode 100644 index 0000000..8611ef4 --- /dev/null +++ b/statsmodels/examples/ex_emplike_1.py @@ -0,0 +1,99 @@ +""" +This is a basic tutorial on how to conduct basic empirical likelihood +inference for descriptive statistics. If matplotlib is installed +it also generates plots. + +""" + +from __future__ import print_function +import numpy as np +import statsmodels.api as sm +print('Welcome to El') +np.random.seed(634) # No significance of the seed. +# Let's first generate some univariate data. +univariate = np.random.standard_normal(30) + +# Now let's play with it +# Initiate an empirical likelihood descriptive statistics instance +eldescriptive = sm.emplike.DescStat(univariate) + +# Empirical likelihood is (typically) a method of inference, +# not estimation. Therefore, there is no attribute eldescriptive.mean +# However, we can check the mean: +eldescriptive_mean = eldescriptive.endog.mean() #.42 + +#Let's conduct a hypothesis test to see if the mean is 0 +print('Hypothesis test results for the mean:') +print(eldescriptive.test_mean(0)) + + +# The first value is is -2 *log-likelihood ratio, which is distributed +#chi2. The second value is the p-value. + +# Let's see what the variance is: +eldescriptive_var = eldescriptive.endog.var() # 1.01 + +#Let's test if the variance is 1: +print('Hypothesis test results for the variance:') +print(eldescriptive.test_var(1)) + +# Let's test if Skewness and Kurtosis are 0 +print('Hypothesis test results for Skewness:') +print(eldescriptive.test_skew(0)) +print('Hypothesis test results for the Kurtosis:') +print(eldescriptive.test_kurt(0)) +# Note that the skewness and Kurtosis take longer. This is because +# we have to optimize over the nuisance parameters (mean, variance). + +# We can also test for the joint skewness and kurtoses +print(' Joint Skewness-Kurtosis test') +eldescriptive.test_joint_skew_kurt(0, 0) + + +# Let's try and get some confidence intervals +print('Confidence interval for the mean') +print(eldescriptive.ci_mean()) +print('Confidence interval for the variance') +print(eldescriptive.ci_var()) +print('Confidence interval for skewness') +print(eldescriptive.ci_skew()) +print('Confidence interval for kurtosis') +print(eldescriptive.ci_kurt()) + + +# if matplotlib is installed, we can get a contour plot for the mean +# and variance. +mean_variance_contour = eldescriptive.plot_contour(-.5, 1.2, .2, 2.5, .05, .05) +# This returns a figure instance. Just type mean_var_contour.show() +# to see the plot. + +# Once you close the plot, we can start some multivariate analysis. + +x1 = np.random.exponential(2, (30, 1)) +x2 = 2 * x1 + np.random.chisquare(4, (30, 1)) +mv_data = np.concatenate((x1, x2), axis=1) +mv_elmodel = sm.emplike.DescStat(mv_data) +# For multivariate data, the only methods are mv_test_mean, +# mv mean contour and ci_corr and test_corr. + +# Let's test the hypthesis that x1 has a mean of 2 and x2 has a mean of 7 +print('Multivaraite mean hypothesis test') +print(mv_elmodel.mv_test_mean(np.array([2, 7]))) + +# Now let's get the confidence interval for correlation +print('Correlation Coefficient CI') +print(mv_elmodel.ci_corr()) +# Note how this took much longer than previous functions. That is +# because the function is optimizing over 4 nuisance parameters. +# We can also do a hypothesis test for correlation +print('Hypothesis test for correlation') +print(mv_elmodel.test_corr(.7)) + +# Finally, let's create a contour plot for the means of the data +means_contour = mv_elmodel.mv_mean_contour(1, 3, 6,9, .15,.15, plot_dta=1) +# This also returns a fig so we can type mean_contour.show() to see the figure +# Sometimes, the data is very dispersed and we would like to see the confidence +# intervals without the plotted data. Let's see the difference when we set +# plot_dta=0 + +means_contour2 = mv_elmodel.mv_mean_contour(1, 3, 6,9, .05,.05, plot_dta=0) diff --git a/statsmodels/examples/ex_emplike_2.py b/statsmodels/examples/ex_emplike_2.py new file mode 100644 index 0000000..2ca8ea6 --- /dev/null +++ b/statsmodels/examples/ex_emplike_2.py @@ -0,0 +1,92 @@ +""" +This script is a basic tutorial on how to conduct empirical +likelihood estimation and inference in linear regression models. +""" + +from __future__ import print_function +import numpy as np +import statsmodels.api as sm + +# Let's generate some regression data +np.random.seed(100) # no significance of the seed +X = np.random.standard_normal((40, 3)) +X = sm.add_constant(X) +beta = np.arange(1,5) +y = np.dot(X, beta) + np.random.standard_normal(40) +# There are no distributional assumptions on the error. I just chose +# normal errors to demonstrate. + +print('Lets play with EL Regression') + + +# In a model with an intercept, access EL inference through OLS results. + + +elmodel = sm.OLS(y, X) +fitted = elmodel.fit() + + +# Let's test if the intercept is 0 +print('Intercept test') +test0_1 = fitted.el_test(np.array([0]), np.array([0])) +print(test0_1) +# Let's test if beta3 is 4 +print('beta3 test') +test1 = fitted.el_test(np.array([4]), np.array([3])) +print(test1) +# Lets test the hypothesis that beta3=4 and beta2=3 +print('joint beta test') +test2 = fitted.el_test(np.array([3, 4]), np.array([2, 3])) +print(test2) + +# Let's get the confidence intervals for the parameters +print('Confidence Interval for Beta1') +ci_beta1 = fitted.conf_int_el(1) +print(ci_beta1) + +# Of course, we can still see the rest of the RegressionResults +print('R-squared') +print(fitted.rsquared) +print('Params') +print(fitted.params) + +# Now lets check out regression through the origin +print('Origin Regression') +originx = np.random.standard_normal((30, 3)) +originbeta = np.array([[1], [2], [3]]) +originy = np.dot(originx, originbeta) + np.random.standard_normal((30, 1)) + +originmodel = sm.emplike.ELOriginRegress(originy, originx) +# Since in this case, parameter estimates are different then in OLS, +# we need to fit the model. + +originfit = originmodel.fit() + + +print('The fitted parameters') +print(originfit.params) +print('The MSE') +print(originfit.mse_model) +print('The R-squared') +print(originfit.rsquared) + +# Note that the first element of param is 0 and there are 4 params. That is +# because the first param is the intercept term. This is noted in the +# documentation. + +# Now that the model is fitted, we can do some inference. + +print('Test beta1 =1') +test_beta1 = originfit.el_test([1], [1]) +print(test_beta1) + +# A confidence interval for Beta1. +print('confidence interval for beta1') +ci_beta2 = originfit.conf_int_el(1) +print(ci_beta2) + +# Finally, since we initiated an EL model, normal inference is not available +try: + originfit.conf_int() +except: + print('No normal inference available') diff --git a/statsmodels/examples/ex_emplike_3.py b/statsmodels/examples/ex_emplike_3.py new file mode 100644 index 0000000..1f3b70f --- /dev/null +++ b/statsmodels/examples/ex_emplike_3.py @@ -0,0 +1,28 @@ +""" +This script provides a tutorial on how to use estimate and conduct +inference in an accelerated failure time model using empirical likelihood. + +We will be using the Stanford Heart Transplant data + +""" + +from __future__ import print_function +import statsmodels.api as sm +import numpy as np + +data = sm.datasets.heart.load() +# Note this data has endog, exog and censors +# We will take the log (base 10) of the endogenous survival times + +model = sm.emplike.emplikeAFT(np.log10(data.endog), + sm.add_constant(data.exog), data.censors) + +# We need to fit the model to get the parameters +fitted = model.fit() +print(fitted.params()) +test1 = fitted.test_beta([4],[0]) # Test that the intercept is 4 +print(test1) +test2 = fitted.test_beta([-.05], [1]) # Test that the slope is -.05 +print(test2) +ci_beta1 = fitted.ci_beta(1, .1, -.1) +print(ci_beta1) diff --git a/statsmodels/examples/ex_feasible_gls_het.py b/statsmodels/examples/ex_feasible_gls_het.py new file mode 100644 index 0000000..07ce40f --- /dev/null +++ b/statsmodels/examples/ex_feasible_gls_het.py @@ -0,0 +1,124 @@ +# -*- coding: utf-8 -*- +"""Examples for linear model with heteroscedasticity estimated by feasible GLS + +These are examples to check the results during developement. + +The assumptions: + +We have a linear model y = X*beta where the variance of an observation depends +on some explanatory variable Z (`exog_var`). +linear_model.WLS estimated the model for a given weight matrix +here we want to estimate also the weight matrix by two step or iterative WLS + +Created on Wed Dec 21 12:28:17 2011 + +Author: Josef Perktold + +There might be something fishy with the example, but I don't see it. +Or maybe it's supposed to be this way because in the first case I don't +include a constant and in the second case I include some of the same +regressors as in the main equation. + +""" + +from __future__ import print_function +import numpy as np +from numpy.testing import assert_almost_equal + +from statsmodels.regression.linear_model import OLS, WLS, GLS +from statsmodels.regression.feasible_gls import GLSHet, GLSHet2 + +examples = ['ex1'] + +if 'ex1' in examples: + #from tut_ols_wls + nsample = 1000 + sig = 0.5 + x1 = np.linspace(0, 20, nsample) + X = np.c_[x1, (x1-5)**2, np.ones(nsample)] + np.random.seed(0)#9876789) #9876543) + beta = [0.5, -0.015, 1.] + y_true2 = np.dot(X, beta) + w = np.ones(nsample) + w[nsample*6//10:] = 4 #Note this is the squared value + #y2[:nsample*6/10] = y_true2[:nsample*6/10] + sig*1. * np.random.normal(size=nsample*6/10) + #y2[nsample*6/10:] = y_true2[nsample*6/10:] + sig*4. * np.random.normal(size=nsample*4/10) + y2 = y_true2 + sig*np.sqrt(w)* np.random.normal(size=nsample) + X2 = X[:,[0,2]] + X2 = X + + res_ols = OLS(y2, X2).fit() + print('OLS beta estimates') + print(res_ols.params) + print('OLS stddev of beta') + print(res_ols.bse) + print('\nWLS') + mod0 = GLSHet2(y2, X2, exog_var=w) + res0 = mod0.fit() + print('new version') + mod1 = GLSHet(y2, X2, exog_var=w) + res1 = mod1.iterative_fit(2) + print('WLS beta estimates') + print(res1.params) + print(res0.params) + print('WLS stddev of beta') + print(res1.bse) + #compare with previous version GLSHet2, refactoring check + #assert_almost_equal(res1.params, np.array([ 0.37642521, 1.51447662])) + #this fails ??? more iterations? different starting weights? + + + print(res1.model.weights/res1.model.weights.max()) + #why is the error so small in the estimated weights ? + assert_almost_equal(res1.model.weights/res1.model.weights.max(), 1./w, 14) + print('residual regression params') + print(res1.results_residual_regression.params) + print('scale of model ?') + print(res1.scale) + print('unweighted residual variance, note unweighted mean is not zero') + print(res1.resid.var()) + #Note weighted mean is zero: + #(res1.model.weights * res1.resid).mean() + + doplots = False + if doplots: + import matplotlib.pyplot as plt + plt.figure() + plt.plot(x1, y2, 'o') + plt.plot(x1, y_true2, 'b-', label='true') + plt.plot(x1, res1.fittedvalues, 'r-', label='fwls') + plt.plot(x1, res_ols.fittedvalues, '--', label='ols') + plt.legend() + + #z = (w[:,None] == [1,4]).astype(float) #dummy variable + z = (w[:,None] == np.unique(w)).astype(float) #dummy variable + mod2 = GLSHet(y2, X2, exog_var=z) + res2 = mod2.iterative_fit(2) + print(res2.params) + + import statsmodels.api as sm + z = sm.add_constant(w) + mod3 = GLSHet(y2, X2, exog_var=z) + res3 = mod3.iterative_fit(8) + print(res3.params) + print("np.array(res3.model.history['ols_params'])") + + print(np.array(res3.model.history['ols_params'])) + print("np.array(res3.model.history['self_params'])") + print(np.array(res3.model.history['self_params'])) + + print(np.unique(res2.model.weights)) #for discrete z only, only a few uniques + print(np.unique(res3.model.weights)) + + if doplots: + plt.figure() + plt.plot(x1, y2, 'o') + plt.plot(x1, y_true2, 'b-', label='true') + plt.plot(x1, res1.fittedvalues, '-', label='fwls1') + plt.plot(x1, res2.fittedvalues, '-', label='fwls2') + plt.plot(x1, res3.fittedvalues, '-', label='fwls3') + plt.plot(x1, res_ols.fittedvalues, '--', label='ols') + plt.legend() + + + plt.show() diff --git a/statsmodels/examples/ex_feasible_gls_het_0.py b/statsmodels/examples/ex_feasible_gls_het_0.py new file mode 100644 index 0000000..c7f93db --- /dev/null +++ b/statsmodels/examples/ex_feasible_gls_het_0.py @@ -0,0 +1,174 @@ +# -*- coding: utf-8 -*- +"""Examples for linear model with heteroscedasticity estimated by feasible GLS + +These are examples to check the results during developement. + +The assumptions: + +We have a linear model y = X*beta where the variance of an observation depends +on some explanatory variable Z (`exog_var`). +linear_model.WLS estimated the model for a given weight matrix +here we want to estimate also the weight matrix by two step or iterative WLS + +Created on Wed Dec 21 12:28:17 2011 + +Author: Josef Perktold + +""" + +from __future__ import print_function +import numpy as np +from numpy.testing import assert_almost_equal + +from statsmodels.regression.linear_model import OLS, WLS, GLS +from statsmodels.regression.feasible_gls import GLSHet, GLSHet2 +from statsmodels.tools.tools import add_constant + +examples = ['ex1'] + +if 'ex1' in examples: + nsample = 300 #different pattern last graph with 100 or 200 or 500 + sig = 0.5 + + np.random.seed(9876789) #9876543) + X = np.random.randn(nsample, 3) + X = np.column_stack((np.ones((nsample,1)), X)) + beta = [1, 0.5, -0.5, 1.] + y_true2 = np.dot(X, beta) + + + x1 = np.linspace(0, 1, nsample) + gamma = np.array([1, 3.]) + #with slope 3 instead of two, I get negative weights, Not correct + # - was misspecified, but the negative weights are still possible with identity link + #gamma /= gamma.sum() #normalize assuming x1.max is 1 + z_true = add_constant(x1) + + winv = np.dot(z_true, gamma) + het_params = sig**2 * np.array([1, 3.]) # for squared + sig2_het = sig**2 * winv + + weights_dgp = 1/winv + weights_dgp /= weights_dgp.max() #should be already normalized - NOT check normalization + #y2[:nsample*6/10] = y_true2[:nsample*6/10] + sig*1. * np.random.normal(size=nsample*6/10) + z0 = np.zeros(nsample) + z0[(nsample * 5)//10:] = 1 #dummy for 2 halfs of sample + z0 = add_constant(z0) + + z1 = add_constant(x1) + + noise = np.sqrt(sig2_het) * np.random.normal(size=nsample) + y2 = y_true2 + noise + + X2 = X[:,[0,2]] #misspecified, missing regressor in main equation + X2 = X #correctly specigied + + res_ols = OLS(y2, X2).fit() + print('OLS beta estimates') + print(res_ols.params) + print('OLS stddev of beta') + print(res_ols.bse) + print('\nWLS') + mod0 = GLSHet2(y2, X2, exog_var=winv) + res0 = mod0.fit() + print('new version') + mod1 = GLSHet(y2, X2, exog_var=winv) + res1 = mod1.iterative_fit(2) + print('WLS beta estimates') + print(res1.params) + print(res0.params) + print('WLS stddev of beta') + print(res1.bse) + #compare with previous version GLSHet2, refactoring check + #assert_almost_equal(res1.params, np.array([ 0.37642521, 1.51447662])) + #this fails ??? more iterations? different starting weights? + + + print(res1.model.weights/res1.model.weights.max()) + #why is the error so small in the estimated weights ? + assert_almost_equal(res1.model.weights/res1.model.weights.max(), weights_dgp, 14) + print('residual regression params') + print(res1.results_residual_regression.params) + print('scale of model ?') + print(res1.scale) + print('unweighted residual variance, note unweighted mean is not zero') + print(res1.resid.var()) + #Note weighted mean is zero: + #(res1.model.weights * res1.resid).mean() + + doplots = True #False + if doplots: + import matplotlib.pyplot as plt + plt.figure() + plt.plot(x1, y2, 'o') + plt.plot(x1, y_true2, 'b-', label='true') + plt.plot(x1, res1.fittedvalues, 'r-', label='fwls') + plt.plot(x1, res_ols.fittedvalues, '--', label='ols') + plt.legend() + + #the next only works if w has finite support, discrete/categorical + #z = (w[:,None] == [1,4]).astype(float) #dummy variable + #z = (w0[:,None] == np.unique(w0)).astype(float) #dummy variable + #changed z0 contains dummy and constant + mod2 = GLSHet(y2, X2, exog_var=z0) + res2 = mod2.iterative_fit(3) + print(res2.params) + + import statsmodels.api as sm + #z = sm.add_constant(w, prepend=True) + z = sm.add_constant(x1/x1.max()) + mod3 = GLSHet(y2, X2, exog_var=z1)#, link=sm.families.links.log()) + res3 = mod3.iterative_fit(20) + error_var_3 = res3.mse_resid/res3.model.weights + print(res3.params) + print("np.array(res3.model.history['ols_params'])") + + print(np.array(res3.model.history['ols_params'])) + print("np.array(res3.model.history['self_params'])") + print(np.array(res3.model.history['self_params'])) + + #Models 2 and 3 are equivalent with different parameterization of Z + print(np.unique(res2.model.weights)) #for discrete z only, only a few uniques + print(np.unique(res3.model.weights)) + + print(res3.summary()) + print('\n\nResults of estimation of weights') + print('--------------------------------') + print(res3.results_residual_regression.summary()) + + if doplots: + plt.figure() + plt.plot(x1, y2, 'o') + plt.plot(x1, y_true2, 'b-', label='true') + plt.plot(x1, res1.fittedvalues, '-', label='fwls1') + plt.plot(x1, res2.fittedvalues, '-', label='fwls2') + plt.plot(x1, res3.fittedvalues, '-', label='fwls3') + plt.plot(x1, res_ols.fittedvalues, '--', label='ols') + plt.legend() + + plt.figure() + plt.ylim(0, 5) + res_e2 = OLS(noise**2, z).fit() + plt.plot(noise**2, 'bo', alpha=0.5, label='dgp error**2') + plt.plot(res_e2.fittedvalues, lw=2, label='ols for noise**2') + #plt.plot(res3.model.weights, label='GLSHet weights') + plt.plot(error_var_3, lw=2, label='GLSHet error var') + plt.plot(res3.resid**2, 'ro', alpha=0.5, label='resid squared') + #plt.plot(weights_dgp, label='DGP weights') + plt.plot(sig**2 * winv, lw=2, label='DGP error var') + plt.legend() + + + plt.show() + + '''Note these are close but maybe biased because of skewed distribution + >>> res3.mse_resid/res3.model.weights[-10:] + array([ 1.03115871, 1.03268209, 1.03420547, 1.03572885, 1.03725223, + 1.03877561, 1.04029899, 1.04182237, 1.04334575, 1.04486913]) + >>> res_e2.fittedvalues[-10:] + array([ 1.0401953 , 1.04171386, 1.04323242, 1.04475098, 1.04626954, + 1.0477881 , 1.04930666, 1.05082521, 1.05234377, 1.05386233]) + >>> sig**2 * w[-10:] + array([ 0.98647295, 0.98797595, 0.98947896, 0.99098196, 0.99248497, + 0.99398798, 0.99549098, 0.99699399, 0.99849699, 1. ]) + ''' diff --git a/statsmodels/examples/ex_generic_mle.py b/statsmodels/examples/ex_generic_mle.py new file mode 100644 index 0000000..a634b2b --- /dev/null +++ b/statsmodels/examples/ex_generic_mle.py @@ -0,0 +1,384 @@ + +from __future__ import print_function +import numpy as np +from scipy import stats +import statsmodels.api as sm +from statsmodels.base.model import GenericLikelihoodModel + + +data = sm.datasets.spector.load() +data.exog = sm.add_constant(data.exog, prepend=False) +# in this dir + +probit_mod = sm.Probit(data.endog, data.exog) +probit_res = probit_mod.fit() +loglike = probit_mod.loglike +score = probit_mod.score +mod = GenericLikelihoodModel(data.endog, data.exog*2, loglike, score) +res = mod.fit(method="nm", maxiter = 500) + +def probitloglike(params, endog, exog): + """ + Log likelihood for the probit + """ + q = 2*endog - 1 + X = exog + return np.add.reduce(stats.norm.logcdf(q*np.dot(X,params))) + +mod = GenericLikelihoodModel(data.endog, data.exog, loglike=probitloglike) +res = mod.fit(method="nm", fargs=(data.endog,data.exog), maxiter=500) +print(res) + + +#np.allclose(res.params, probit_res.params) + +print(res.params, probit_res.params) + +#datal = sm.datasets.longley.load() +datal = sm.datasets.ccard.load() +datal.exog = sm.add_constant(datal.exog, prepend=False) +# Instance of GenericLikelihood model doesn't work directly, because loglike +# cannot get access to data in self.endog, self.exog + +nobs = 5000 +rvs = np.random.randn(nobs,6) +datal.exog = rvs[:,:-1] +datal.exog = sm.add_constant(datal.exog, prepend=False) +datal.endog = 1 + rvs.sum(1) + +show_error = False +show_error2 = 1#False +if show_error: + def loglike_norm_xb(self, params): + beta = params[:-1] + sigma = params[-1] + xb = np.dot(self.exog, beta) + return stats.norm.logpdf(self.endog, loc=xb, scale=sigma) + + mod_norm = GenericLikelihoodModel(datal.endog, datal.exog, loglike_norm_xb) + res_norm = mod_norm.fit(method="nm", maxiter = 500) + + print(res_norm.params) + +if show_error2: + def loglike_norm_xb(params, endog, exog): + beta = params[:-1] + sigma = params[-1] + #print exog.shape, beta.shape + xb = np.dot(exog, beta) + #print xb.shape, stats.norm.logpdf(endog, loc=xb, scale=sigma).shape + return stats.norm.logpdf(endog, loc=xb, scale=sigma).sum() + + mod_norm = GenericLikelihoodModel(datal.endog, datal.exog, loglike_norm_xb) + res_norm = mod_norm.fit(start_params=np.ones(datal.exog.shape[1]+1), + method="nm", maxiter = 5000, + fargs=(datal.endog, datal.exog)) + + print(res_norm.params) + +class MygMLE(GenericLikelihoodModel): + # just for testing + def loglike(self, params): + beta = params[:-1] + sigma = params[-1] + xb = np.dot(self.exog, beta) + return stats.norm.logpdf(self.endog, loc=xb, scale=sigma).sum() + + def loglikeobs(self, params): + beta = params[:-1] + sigma = params[-1] + xb = np.dot(self.exog, beta) + return stats.norm.logpdf(self.endog, loc=xb, scale=sigma) + +mod_norm2 = MygMLE(datal.endog, datal.exog) +#res_norm = mod_norm.fit(start_params=np.ones(datal.exog.shape[1]+1), method="nm", maxiter = 500) +res_norm2 = mod_norm2.fit(start_params=[1.]*datal.exog.shape[1]+[1], method="nm", maxiter = 500) +print(res_norm2.params) + +res2 = sm.OLS(datal.endog, datal.exog).fit() +start_params = np.hstack((res2.params, np.sqrt(res2.mse_resid))) +res_norm3 = mod_norm2.fit(start_params=start_params, method="nm", maxiter = 500, + retall=0) +print(start_params) +print(res_norm3.params) +print(res2.bse) +#print res_norm3.bse # not available +print('llf', res2.llf, res_norm3.llf) + +bse = np.sqrt(np.diag(np.linalg.inv(res_norm3.model.hessian(res_norm3.params)))) +res_norm3.model.score(res_norm3.params) + +#fprime in fit option cannot be overwritten, set to None, when score is defined +# exception is fixed, but I don't think score was supposed to be called +''' +>>> mod_norm2.fit(start_params=start_params, method="bfgs", fprime=None, maxiter +Traceback (most recent call last): + File "", line 1, in + File "c:\josef\eclipsegworkspace\statsmodels-josef-experimental-gsoc\scikits\s +tatsmodels\model.py", line 316, in fit + disp=disp, retall=retall, callback=callback) + File "C:\Josef\_progs\Subversion\scipy-trunk_after\trunk\dist\scipy-0.9.0.dev6 +579.win32\Programs\Python25\Lib\site-packages\scipy\optimize\optimize.py", line +710, in fmin_bfgs + gfk = myfprime(x0) + File "C:\Josef\_progs\Subversion\scipy-trunk_after\trunk\dist\scipy-0.9.0.dev6 +579.win32\Programs\Python25\Lib\site-packages\scipy\optimize\optimize.py", line +103, in function_wrapper + return function(x, *args) + File "c:\josef\eclipsegworkspace\statsmodels-josef-experimental-gsoc\scikits\s +tatsmodels\model.py", line 240, in + score = lambda params: -self.score(params) + File "c:\josef\eclipsegworkspace\statsmodels-josef-experimental-gsoc\scikits\s +tatsmodels\model.py", line 480, in score + return approx_fprime1(params, self.nloglike) + File "c:\josef\eclipsegworkspace\statsmodels-josef-experimental-gsoc\scikits\s +tatsmodels\sandbox\regression\numdiff.py", line 81, in approx_fprime1 + nobs = np.size(f0) #len(f0) +TypeError: object of type 'numpy.float64' has no len() + +''' + +res_bfgs = mod_norm2.fit(start_params=start_params, method="bfgs", fprime=None, +maxiter = 500, retall=0) + +from statsmodels.tools.numdiff import approx_fprime, approx_hess +hb=-approx_hess(res_norm3.params, mod_norm2.loglike, epsilon=-1e-4) +hf=-approx_hess(res_norm3.params, mod_norm2.loglike, epsilon=1e-4) +hh = (hf+hb)/2. +print(np.linalg.eigh(hh)) + +grad = -approx_fprime(res_norm3.params, mod_norm2.loglike, epsilon=-1e-4) +print(grad) +gradb = -approx_fprime(res_norm3.params, mod_norm2.loglike, epsilon=-1e-4) +gradf = -approx_fprime(res_norm3.params, mod_norm2.loglike, epsilon=1e-4) +print((gradb+gradf)/2.) + +print(res_norm3.model.score(res_norm3.params)) +print(res_norm3.model.score(start_params)) +mod_norm2.loglike(start_params/2.) +print(np.linalg.inv(-1*mod_norm2.hessian(res_norm3.params))) +print(np.sqrt(np.diag(res_bfgs.cov_params()))) +print(res_norm3.bse) + +print("MLE - OLS parameter estimates") +print(res_norm3.params[:-1] - res2.params) +print("bse diff in percent") +print((res_norm3.bse[:-1] / res2.bse)*100. - 100) + +''' +C:\Programs\Python25\lib\site-packages\matplotlib-0.99.1-py2.5-win32.egg\matplotlib\rcsetup.py:117: UserWarning: rcParams key "numerix" is obsolete and has no effect; + please delete it from your matplotlibrc file + warnings.warn('rcParams key "numerix" is obsolete and has no effect;\n' +Optimization terminated successfully. + Current function value: 12.818804 + Iterations 6 +Optimization terminated successfully. + Current function value: 12.818804 + Iterations: 439 + Function evaluations: 735 +Optimization terminated successfully. + Current function value: 12.818804 + Iterations: 439 + Function evaluations: 735 + +[ 1.6258006 0.05172931 1.42632252 -7.45229732] [ 1.62581004 0.05172895 1.42633234 -7.45231965] +Warning: Maximum number of function evaluations has been exceeded. +[ -1.18109149 246.94438535 -16.21235536 24.05282629 -324.80867176 + 274.07378453] +Warning: Maximum number of iterations has been exceeded +[ 17.57107 -149.87528787 19.89079376 -72.49810777 -50.06067953 + 306.14170418] +Optimization terminated successfully. + Current function value: 506.488765 + Iterations: 339 + Function evaluations: 550 +[ -3.08181404 234.34702702 -14.99684418 27.94090839 -237.1465136 + 284.75079529] +[ -3.08181304 234.34701361 -14.99684381 27.94088692 -237.14649571 + 274.6857294 ] +[ 5.51471653 80.36595035 7.46933695 82.92232357 199.35166485] +llf -506.488764864 -506.488764864 +Optimization terminated successfully. + Current function value: 506.488765 + Iterations: 9 + Function evaluations: 13 + Gradient evaluations: 13 +(array([ 2.41772580e-05, 1.62492628e-04, 2.79438138e-04, + 1.90996240e-03, 2.07117946e-01, 1.28747174e+00]), array([[ 1.52225754e-02, 2.01838216e-02, 6.90127235e-02, + -2.57002471e-04, -5.25941060e-01, -8.47339404e-01], + [ 2.39797491e-01, -2.32325602e-01, -9.36235262e-01, + 3.02434938e-03, 3.95614029e-02, -1.02035585e-01], + [ -2.11381471e-02, 3.01074776e-02, 7.97208277e-02, + -2.94955832e-04, 8.49402362e-01, -5.20391053e-01], + [ -1.55821981e-01, -9.66926643e-01, 2.01517298e-01, + 1.52397702e-03, 4.13805882e-03, -1.19878714e-02], + [ -9.57881586e-01, 9.87911166e-02, -2.67819451e-01, + 1.55192932e-03, -1.78717579e-02, -2.55757014e-02], + [ -9.96486655e-04, -2.03697290e-03, -2.98130314e-03, + -9.99992985e-01, -1.71500426e-05, 4.70854949e-06]])) +[[ -4.91007768e-05 -7.28732630e-07 -2.51941401e-05 -2.50111043e-08 + -4.77484718e-08 -9.72022463e-08]] +[[ -1.64845915e-08 -2.87059265e-08 -2.88764568e-07 -6.82121026e-09 + 2.84217094e-10 -1.70530257e-09]] +[ -4.90678076e-05 -6.71320777e-07 -2.46166110e-05 -1.13686838e-08 + -4.83169060e-08 -9.37916411e-08] +[ -4.56753924e-05 -6.50857146e-07 -2.31756303e-05 -1.70530257e-08 + -4.43378667e-08 -1.75592936e-02] +[[ 2.99386348e+01 -1.24442928e+02 9.67254672e+00 -1.58968536e+02 + -5.91960010e+02 -2.48738183e+00] + [ -1.24442928e+02 5.62972166e+03 -5.00079203e+02 -7.13057475e+02 + -7.82440674e+03 -1.05126925e+01] + [ 9.67254672e+00 -5.00079203e+02 4.87472259e+01 3.37373299e+00 + 6.96960872e+02 7.69866589e-01] + [ -1.58968536e+02 -7.13057475e+02 3.37373299e+00 6.82417837e+03 + 4.84485862e+03 3.21440021e+01] + [ -5.91960010e+02 -7.82440674e+03 6.96960872e+02 4.84485862e+03 + 3.43753691e+04 9.37524459e+01] + [ -2.48738183e+00 -1.05126925e+01 7.69866589e-01 3.21440021e+01 + 9.37524459e+01 5.23915258e+02]] +>>> res_norm3.bse +array([ 5.47162086, 75.03147114, 6.98192136, 82.60858536, + 185.40595756, 22.88919522]) +>>> print res_norm3.model.score(res_norm3.params) +[ -4.90678076e-05 -6.71320777e-07 -2.46166110e-05 -1.13686838e-08 + -4.83169060e-08 -9.37916411e-08] +>>> print res_norm3.model.score(start_params) +[ -4.56753924e-05 -6.50857146e-07 -2.31756303e-05 -1.70530257e-08 + -4.43378667e-08 -1.75592936e-02] +>>> mod_norm2.loglike(start_params/2.) +-598.56178102781314 +>>> print np.linalg.inv(-1*mod_norm2.hessian(res_norm3.params)) +[[ 2.99386348e+01 -1.24442928e+02 9.67254672e+00 -1.58968536e+02 + -5.91960010e+02 -2.48738183e+00] + [ -1.24442928e+02 5.62972166e+03 -5.00079203e+02 -7.13057475e+02 + -7.82440674e+03 -1.05126925e+01] + [ 9.67254672e+00 -5.00079203e+02 4.87472259e+01 3.37373299e+00 + 6.96960872e+02 7.69866589e-01] + [ -1.58968536e+02 -7.13057475e+02 3.37373299e+00 6.82417837e+03 + 4.84485862e+03 3.21440021e+01] + [ -5.91960010e+02 -7.82440674e+03 6.96960872e+02 4.84485862e+03 + 3.43753691e+04 9.37524459e+01] + [ -2.48738183e+00 -1.05126925e+01 7.69866589e-01 3.21440021e+01 + 9.37524459e+01 5.23915258e+02]] +>>> print np.sqrt(np.diag(res_bfgs.cov_params())) +[ 5.10032831 74.34988912 6.96522122 76.7091604 169.8117832 + 22.91695494] +>>> print res_norm3.bse +[ 5.47162086 75.03147114 6.98192136 82.60858536 185.40595756 + 22.88919522] +>>> res_norm3.conf_int +> +>>> res_norm3.conf_int() +Traceback (most recent call last): + File "", line 1, in + File "c:\josef\eclipsegworkspace\statsmodels-josef-experimental-gsoc\scikits\statsmodels\model.py", line 993, in conf_int + lower = self.params - dist.ppf(1-alpha/2,self.model.df_resid) *\ +AttributeError: 'MygMLE' object has no attribute 'df_resid' + +>>> res_norm3.params +array([ -3.08181304, 234.34701361, -14.99684381, 27.94088692, + -237.14649571, 274.6857294 ]) +>>> res2.params +array([ -3.08181404, 234.34702702, -14.99684418, 27.94090839, + -237.1465136 ]) +>>> +>>> res_norm3.params - res2.params +Traceback (most recent call last): + File "", line 1, in +ValueError: shape mismatch: objects cannot be broadcast to a single shape + +>>> res_norm3.params[:-1] - res2.params +array([ 9.96859735e-07, -1.34122981e-05, 3.72278400e-07, + -2.14645839e-05, 1.78919019e-05]) +>>> +>>> res_norm3.bse[:-1] - res2.bse +array([ -0.04309567, -5.33447922, -0.48741559, -0.31373822, -13.94570729]) +>>> (res_norm3.bse[:-1] / res2.bse) - 1 +array([-0.00781467, -0.06637735, -0.06525554, -0.00378352, -0.06995531]) +>>> (res_norm3.bse[:-1] / res2.bse)*100. - 100 +array([-0.7814667 , -6.6377355 , -6.52555369, -0.37835193, -6.99553089]) +>>> np.sqrt(np.diag(np.linalg.inv(res_norm3.model.hessian(res_bfgs.params)))) +array([ NaN, NaN, NaN, NaN, NaN, NaN]) +>>> np.sqrt(np.diag(np.linalg.inv(-res_norm3.model.hessian(res_bfgs.params)))) +array([ 5.10032831, 74.34988912, 6.96522122, 76.7091604 , + 169.8117832 , 22.91695494]) +>>> res_norm3.bse +array([ 5.47162086, 75.03147114, 6.98192136, 82.60858536, + 185.40595756, 22.88919522]) +>>> res2.bse +array([ 5.51471653, 80.36595035, 7.46933695, 82.92232357, + 199.35166485]) +>>> +>>> bse_bfgs = np.sqrt(np.diag(np.linalg.inv(-res_norm3.model.hessian(res_bfgs.params)))) +>>> (bse_bfgs[:-1] / res2.bse)*100. - 100 +array([ -7.51422527, -7.4858335 , -6.74913633, -7.49275094, -14.8179759 ]) +>>> hb=-approx_hess(res_bfgs.params, mod_norm2.loglike, epsilon=-1e-4) +>>> hf=-approx_hess(res_bfgs.params, mod_norm2.loglike, epsilon=1e-4) +>>> hh = (hf+hb)/2. +>>> bse_bfgs = np.sqrt(np.diag(np.linalg.inv(-hh))) +>>> bse_bfgs +array([ NaN, NaN, NaN, NaN, NaN, NaN]) +>>> bse_bfgs = np.sqrt(np.diag(np.linalg.inv(hh))) +>>> np.diag(hh) +array([ 9.81680159e-01, 1.39920076e-02, 4.98101826e-01, + 3.60955710e-04, 9.57811608e-04, 1.90709670e-03]) +>>> np.diag(np.inv(hh)) +Traceback (most recent call last): + File "", line 1, in +AttributeError: 'module' object has no attribute 'inv' + +>>> np.diag(np.linalg.inv(hh)) +array([ 2.64875153e+01, 5.91578496e+03, 5.13279911e+01, + 6.11533345e+03, 3.33775960e+04, 5.24357391e+02]) +>>> res2.bse**2 +array([ 3.04120984e+01, 6.45868598e+03, 5.57909945e+01, + 6.87611175e+03, 3.97410863e+04]) +>>> bse_bfgs +array([ 5.14660231, 76.91414015, 7.1643556 , 78.20059751, + 182.69536402, 22.89885131]) +>>> bse_bfgs - res_norm3.bse +array([-0.32501855, 1.88266901, 0.18243424, -4.40798785, -2.71059354, + 0.00965609]) +>>> (bse_bfgs[:-1] / res2.bse)*100. - 100 +array([-6.67512508, -4.29511526, -4.0831115 , -5.69415552, -8.35523538]) +>>> (res_norm3.bse[:-1] / res2.bse)*100. - 100 +array([-0.7814667 , -6.6377355 , -6.52555369, -0.37835193, -6.99553089]) +>>> (bse_bfgs / res_norm3.bse)*100. - 100 +array([-5.94007812, 2.50917247, 2.61295176, -5.33599242, -1.46197759, + 0.04218624]) +>>> bse_bfgs +array([ 5.14660231, 76.91414015, 7.1643556 , 78.20059751, + 182.69536402, 22.89885131]) +>>> res_norm3.bse +array([ 5.47162086, 75.03147114, 6.98192136, 82.60858536, + 185.40595756, 22.88919522]) +>>> res2.bse +array([ 5.51471653, 80.36595035, 7.46933695, 82.92232357, + 199.35166485]) +>>> dir(res_bfgs) +['__class__', '__delattr__', '__dict__', '__doc__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__str__', '__weakref__', 'bse', 'conf_int', 'cov_params', 'f_test', 'initialize', 'llf', 'mle_retvals', 'mle_settings', 'model', 'normalized_cov_params', 'params', 'scale', 't', 't_test'] +>>> res_bfgs.scale +1.0 +>>> res2.scale +81083.015420213851 +>>> res2.mse_resid +81083.015420213851 +>>> print np.sqrt(np.diag(np.linalg.inv(-1*mod_norm2.hessian(res_bfgs.params)))) +[ 5.10032831 74.34988912 6.96522122 76.7091604 169.8117832 + 22.91695494] +>>> print np.sqrt(np.diag(np.linalg.inv(-1*res_bfgs.model.hessian(res_bfgs.params)))) +[ 5.10032831 74.34988912 6.96522122 76.7091604 169.8117832 + 22.91695494] + +Is scale a misnomer, actually scale squared, i.e. variance of error term ? +''' + +print(res_norm3.model.score_obs(res_norm3.params).shape) + +jac = res_norm3.model.score_obs(res_norm3.params) +print(np.sqrt(np.diag(np.dot(jac.T, jac)))/start_params) +jac2 = res_norm3.model.score_obs(res_norm3.params, centered=True) + +print(np.sqrt(np.diag(np.linalg.inv(np.dot(jac.T, jac))))) +print(res_norm3.bse) +print(res2.bse) diff --git a/statsmodels/examples/ex_generic_mle_t.py b/statsmodels/examples/ex_generic_mle_t.py new file mode 100644 index 0000000..d18b61e --- /dev/null +++ b/statsmodels/examples/ex_generic_mle_t.py @@ -0,0 +1,271 @@ +# -*- coding: utf-8 -*- +""" +Created on Wed Jul 28 08:28:04 2010 + +Author: josef-pktd +""" + + +from __future__ import print_function +import numpy as np + +from scipy import stats, special +import statsmodels.api as sm +from statsmodels.base.model import GenericLikelihoodModel + +#redefine some shortcuts +np_log = np.log +np_pi = np.pi +sps_gamln = special.gammaln + + +def maxabs(arr1, arr2): + return np.max(np.abs(arr1 - arr2)) + +def maxabsrel(arr1, arr2): + return np.max(np.abs(arr2 / arr1 - 1)) + + + +class MyT(GenericLikelihoodModel): + '''Maximum Likelihood Estimation of Poisson Model + + This is an example for generic MLE which has the same + statistical model as discretemod.Poisson. + + Except for defining the negative log-likelihood method, all + methods and results are generic. Gradients and Hessian + and all resulting statistics are based on numerical + differentiation. + + ''' + + def loglike(self, params): + return -self.nloglikeobs(params).sum(0) + + # copied from discretemod.Poisson + def nloglikeobs(self, params): + """ + Loglikelihood of Poisson model + + Parameters + ---------- + params : array-like + The parameters of the model. + + Returns + ------- + The log likelihood of the model evaluated at `params` + + Notes + -------- + .. math :: \\ln L=\\sum_{i=1}^{n}\\left[-\\lambda_{i}+y_{i}x_{i}^{\\prime}\\beta-\\ln y_{i}!\\right] + """ + #print len(params), + beta = params[:-2] + df = params[-2] + scale = params[-1] + loc = np.dot(self.exog, beta) + endog = self.endog + x = (endog - loc)/scale + #next part is stats.t._logpdf + lPx = sps_gamln((df+1)/2) - sps_gamln(df/2.) + lPx -= 0.5*np_log(df*np_pi) + (df+1)/2.*np_log(1+(x**2)/df) + lPx -= np_log(scale) # correction for scale + return -lPx + + +#Example: +np.random.seed(98765678) +nobs = 1000 +rvs = np.random.randn(nobs,5) +data_exog = sm.add_constant(rvs, prepend=False) +xbeta = 0.9 + 0.1*rvs.sum(1) +data_endog = xbeta + 0.1*np.random.standard_t(5, size=nobs) +#print data_endog + +modp = MyT(data_endog, data_exog) +modp.start_value = np.ones(data_exog.shape[1]+2) +modp.start_value[-2] = 10 +modp.start_params = modp.start_value +resp = modp.fit(start_params = modp.start_value) +print(resp.params) +print(resp.bse) + +from statsmodels.tools.numdiff import approx_fprime, approx_hess + +hb=-approx_hess(modp.start_value, modp.loglike, epsilon=-1e-4) +tmp = modp.loglike(modp.start_value) +print(tmp.shape) + + +''' +>>> tmp = modp.loglike(modp.start_value) +8 +>>> tmp.shape +(100,) +>>> tmp.sum(0) +-24220.877108016182 +>>> tmp = modp.nloglikeobs(modp.start_value) +8 +>>> tmp.shape +(100, 100) +>>> np.dot(modp.exog, beta).shape +Traceback (most recent call last): + File "", line 1, in +NameError: name 'beta' is not defined + +>>> params = modp.start_value +>>> beta = params[:-2] +>>> beta.shape +(6,) +>>> np.dot(modp.exog, beta).shape +(100,) +>>> modp.endog.shape +(100, 100) +>>> xbeta.shape +(100,) +>>> +''' + +''' +C:\Programs\Python25\lib\site-packages\matplotlib-0.99.1-py2.5-win32.egg\matplotlib\rcsetup.py:117: UserWarning: rcParams key "numerix" is obsolete and has no effect; + please delete it from your matplotlibrc file + warnings.warn('rcParams key "numerix" is obsolete and has no effect;\n' +repr(start_params) array([ 1., 1., 1., 1., 1., 1., 1., 1.]) +Optimization terminated successfully. + Current function value: 91.897859 + Iterations: 108 + Function evaluations: 173 + Gradient evaluations: 173 +[ 1.58253308e-01 1.73188603e-01 1.77357447e-01 2.06707494e-02 + -1.31174789e-01 8.79915580e-01 6.47663840e+03 6.73457641e+02] +[ NaN NaN NaN NaN NaN + 28.26906182 NaN NaN] +() +>>> resp.params +array([ 1.58253308e-01, 1.73188603e-01, 1.77357447e-01, + 2.06707494e-02, -1.31174789e-01, 8.79915580e-01, + 6.47663840e+03, 6.73457641e+02]) +>>> resp.bse +array([ NaN, NaN, NaN, NaN, + NaN, 28.26906182, NaN, NaN]) +>>> resp.jac +Traceback (most recent call last): + File "", line 1, in +AttributeError: 'GenericLikelihoodModelResults' object has no attribute 'jac' + +>>> resp.bsejac +array([ 45243.35919908, 51997.80776897, 41418.33021984, + 42763.46575168, 50101.91631612, 42804.92083525, + 3005625.35649203, 13826948.68708931]) +>>> resp.bsejhj +array([ 1.51643931, 0.80229636, 0.27720185, 0.4711138 , 0.9028682 , + 0.31673747, 0.00524426, 0.69729368]) +>>> resp.covjac +array([[ 2.04696155e+09, 1.46643494e+08, 7.59932781e+06, + -2.39993397e+08, 5.62644255e+08, 2.34300598e+08, + -3.07824799e+09, -1.93425470e+10], + [ 1.46643494e+08, 2.70377201e+09, 1.06005712e+08, + 3.76824011e+08, -1.21778986e+08, 5.38612723e+08, + -2.12575784e+10, -1.69503271e+11], + [ 7.59932781e+06, 1.06005712e+08, 1.71547808e+09, + -5.94451158e+07, -1.44586401e+08, -5.41830441e+06, + 1.25899515e+10, 1.06372065e+11], + [ -2.39993397e+08, 3.76824011e+08, -5.94451158e+07, + 1.82871400e+09, -5.66930891e+08, 3.75061111e+08, + -6.84681772e+09, -7.29993789e+10], + [ 5.62644255e+08, -1.21778986e+08, -1.44586401e+08, + -5.66930891e+08, 2.51020202e+09, -4.67886982e+08, + 1.78890380e+10, 1.75428694e+11], + [ 2.34300598e+08, 5.38612723e+08, -5.41830441e+06, + 3.75061111e+08, -4.67886982e+08, 1.83226125e+09, + -1.27484996e+10, -1.12550321e+11], + [ -3.07824799e+09, -2.12575784e+10, 1.25899515e+10, + -6.84681772e+09, 1.78890380e+10, -1.27484996e+10, + 9.03378378e+12, 2.15188047e+13], + [ -1.93425470e+10, -1.69503271e+11, 1.06372065e+11, + -7.29993789e+10, 1.75428694e+11, -1.12550321e+11, + 2.15188047e+13, 1.91184510e+14]]) +>>> hb +array([[ 33.68732564, -2.33209221, -13.51255321, -1.60840159, + -13.03920385, -9.3506543 , 4.86239173, -9.30409101], + [ -2.33209221, 3.12512611, -6.08530968, -6.79232244, + 3.66804898, 1.26497071, 5.10113409, -2.53482995], + [ -13.51255321, -6.08530968, 31.14883498, -5.01514705, + -10.48819911, -2.62533035, 3.82241581, -12.51046342], + [ -1.60840159, -6.79232244, -5.01514705, 28.40141917, + -8.72489636, -8.82449456, 5.47584023, -18.20500017], + [ -13.03920385, 3.66804898, -10.48819911, -8.72489636, + 9.03650914, 3.65206176, 6.55926726, -1.8233635 ], + [ -9.3506543 , 1.26497071, -2.62533035, -8.82449456, + 3.65206176, 21.41825348, -1.28610793, 4.28101146], + [ 4.86239173, 5.10113409, 3.82241581, 5.47584023, + 6.55926726, -1.28610793, 46.52354448, -32.23861427], + [ -9.30409101, -2.53482995, -12.51046342, -18.20500017, + -1.8233635 , 4.28101146, -32.23861427, 178.61978279]]) +>>> np.linalg.eigh(hb) +(array([ -10.50373649, 0.7460258 , 14.73131793, 29.72453087, + 36.24103832, 41.98042979, 48.99815223, 190.04303734]), array([[-0.40303259, 0.10181305, 0.18164206, 0.48201456, 0.03916688, + 0.00903695, 0.74620692, 0.05853619], + [-0.3201713 , -0.88444855, -0.19867642, 0.02828812, 0.16733946, + -0.21440765, -0.02927317, 0.01176904], + [-0.41847094, 0.00170161, 0.04973298, 0.43276118, -0.55894304, + 0.26454728, -0.49745582, 0.07251685], + [-0.3508729 , -0.08302723, 0.25004884, -0.73495077, -0.38936448, + 0.20677082, 0.24464779, 0.11448238], + [-0.62065653, 0.44662675, -0.37388565, -0.19453047, 0.29084735, + -0.34151809, -0.19088978, 0.00342713], + [-0.15119802, -0.01099165, 0.84377273, 0.00554863, 0.37332324, + -0.17917015, -0.30371283, -0.03635211], + [ 0.15813581, 0.0293601 , 0.09882271, 0.03515962, -0.48768565, + -0.81960996, 0.05248464, 0.22533642], + [-0.06118044, -0.00549223, 0.03205047, -0.01782649, -0.21128588, + -0.14391393, 0.05973658, -0.96226835]])) +>>> np.linalg.eigh(np.linalg.inv(hb)) +(array([-0.09520422, 0.00526197, 0.02040893, 0.02382062, 0.02759303, + 0.03364225, 0.06788259, 1.34043621]), array([[-0.40303259, 0.05853619, 0.74620692, -0.00903695, -0.03916688, + 0.48201456, 0.18164206, 0.10181305], + [-0.3201713 , 0.01176904, -0.02927317, 0.21440765, -0.16733946, + 0.02828812, -0.19867642, -0.88444855], + [-0.41847094, 0.07251685, -0.49745582, -0.26454728, 0.55894304, + 0.43276118, 0.04973298, 0.00170161], + [-0.3508729 , 0.11448238, 0.24464779, -0.20677082, 0.38936448, + -0.73495077, 0.25004884, -0.08302723], + [-0.62065653, 0.00342713, -0.19088978, 0.34151809, -0.29084735, + -0.19453047, -0.37388565, 0.44662675], + [-0.15119802, -0.03635211, -0.30371283, 0.17917015, -0.37332324, + 0.00554863, 0.84377273, -0.01099165], + [ 0.15813581, 0.22533642, 0.05248464, 0.81960996, 0.48768565, + 0.03515962, 0.09882271, 0.0293601 ], + [-0.06118044, -0.96226835, 0.05973658, 0.14391393, 0.21128588, + -0.01782649, 0.03205047, -0.00549223]])) +>>> np.diag(np.linalg.inv(hb)) +array([ 0.01991288, 1.0433882 , 0.00516616, 0.02642799, 0.24732871, + 0.05281555, 0.02236704, 0.00643486]) +>>> np.sqrt(np.diag(np.linalg.inv(hb))) +array([ 0.14111302, 1.02146375, 0.07187597, 0.16256686, 0.49732154, + 0.22981633, 0.14955616, 0.08021756]) +>>> hess = modp.hessian(resp.params) +>>> np.sqrt(np.diag(np.linalg.inv(hess))) +array([ 231.3823423 , 117.79508218, 31.46595143, 53.44753106, + 132.4855704 , NaN, 5.47881705, 90.75332693]) +>>> hb=-approx_hess(resp.params, modp.loglike, epsilon=-1e-4) +>>> np.sqrt(np.diag(np.linalg.inv(hb))) +array([ 31.93524822, 22.0333515 , NaN, 29.90198792, + 38.82615785, NaN, NaN, NaN]) +>>> hb=-approx_hess(resp.params, modp.loglike, epsilon=-1e-8) +>>> np.sqrt(np.diag(np.linalg.inv(hb))) +Traceback (most recent call last): + File "", line 1, in + File "C:\Programs\Python25\lib\site-packages\numpy\linalg\linalg.py", line 423, in inv + return wrap(solve(a, identity(a.shape[0], dtype=a.dtype))) + File "C:\Programs\Python25\lib\site-packages\numpy\linalg\linalg.py", line 306, in solve + raise LinAlgError, 'Singular matrix' +numpy.linalg.linalg.LinAlgError: Singular matrix +>>> resp.params +array([ 1.58253308e-01, 1.73188603e-01, 1.77357447e-01, + 2.06707494e-02, -1.31174789e-01, 8.79915580e-01, + 6.47663840e+03, 6.73457641e+02]) +>>> +''' diff --git a/statsmodels/examples/ex_generic_mle_tdist.py b/statsmodels/examples/ex_generic_mle_tdist.py new file mode 100644 index 0000000..c00df48 --- /dev/null +++ b/statsmodels/examples/ex_generic_mle_tdist.py @@ -0,0 +1,1095 @@ +# -*- coding: utf-8 -*- +""" +Created on Wed Jul 28 08:28:04 2010 + +Author: josef-pktd +""" + + +from __future__ import print_function +from statsmodels.compat.python import zip +import numpy as np + +from scipy import stats, special, optimize +import statsmodels.api as sm +from statsmodels.base.model import GenericLikelihoodModel + +#redefine some shortcuts +np_log = np.log +np_pi = np.pi +sps_gamln = special.gammaln + + +def maxabs(arr1, arr2): + return np.max(np.abs(arr1 - arr2)) + +def maxabsrel(arr1, arr2): + return np.max(np.abs(arr2 / arr1 - 1)) + +#global +store_params = [] + +class MyT(GenericLikelihoodModel): + '''Maximum Likelihood Estimation of Linear Model with t-distributed errors + + This is an example for generic MLE which has the same + statistical model as discretemod.Poisson. + + Except for defining the negative log-likelihood method, all + methods and results are generic. Gradients and Hessian + and all resulting statistics are based on numerical + differentiation. + + ''' + + + def loglike(self, params): + return -self.nloglikeobs(params).sum(0) + + # copied from discretemod.Poisson + def nloglikeobs(self, params): + """ + Loglikelihood of Poisson model + + Parameters + ---------- + params : array-like + The parameters of the model. + + Returns + ------- + The log likelihood of the model evaluated at `params` + + Notes + -------- + .. math :: \\ln L=\\sum_{i=1}^{n}\\left[-\\lambda_{i}+y_{i}x_{i}^{\\prime}\\beta-\\ln y_{i}!\\right] + """ + #print len(params), + store_params.append(params) + if not self.fixed_params is None: + #print 'using fixed' + params = self.expandparams(params) + + beta = params[:-2] + df = params[-2] + scale = params[-1] + loc = np.dot(self.exog, beta) + endog = self.endog + x = (endog - loc)/scale + #next part is stats.t._logpdf + lPx = sps_gamln((df+1)/2) - sps_gamln(df/2.) + lPx -= 0.5*np_log(df*np_pi) + (df+1)/2.*np_log(1+(x**2)/df) + lPx -= np_log(scale) # correction for scale + return -lPx + + +#Example: +np.random.seed(98765678) +nobs = 1000 +nvars = 6 +df = 5 +rvs = np.random.randn(nobs, nvars-1) +data_exog = sm.add_constant(rvs, prepend=False) +xbeta = 0.9 + 0.1*rvs.sum(1) +data_endog = xbeta + 0.1*np.random.standard_t(df, size=nobs) +print(data_endog.var()) + +res_ols = sm.OLS(data_endog, data_exog).fit() +print(res_ols.scale) +print(np.sqrt(res_ols.scale)) +print(res_ols.params) +kurt = stats.kurtosis(res_ols.resid) +df_fromkurt = 6./kurt + 4 +print(stats.t.stats(df_fromkurt, moments='mvsk')) +print(stats.t.stats(df, moments='mvsk')) + +modp = MyT(data_endog, data_exog) +start_value = 0.1*np.ones(data_exog.shape[1]+2) +#start_value = np.zeros(data_exog.shape[1]+2) +#start_value[:nvars] = sm.OLS(data_endog, data_exog).fit().params +start_value[:nvars] = res_ols.params +start_value[-2] = df_fromkurt #10 +start_value[-1] = np.sqrt(res_ols.scale) #0.5 +modp.start_params = start_value + +#adding fixed parameters + +fixdf = np.nan * np.zeros(modp.start_params.shape) +fixdf[-2] = 100 + +fixone = 0 +if fixone: + modp.fixed_params = fixdf + modp.fixed_paramsmask = np.isnan(fixdf) + modp.start_params = modp.start_params[modp.fixed_paramsmask] +else: + modp.fixed_params = None + modp.fixed_paramsmask = None + + +resp = modp.fit(start_params = modp.start_params, disp=1, method='nm')#'newton') +#resp = modp.fit(start_params = modp.start_params, disp=1, method='newton') +print('\nestimation results t-dist') +print(resp.params) +print(resp.bse) +resp2 = modp.fit(start_params = resp.params, method='Newton') +print('using Newton') +print(resp2.params) +print(resp2.bse) + +from statsmodels.tools.numdiff import approx_fprime, approx_hess + +hb=-approx_hess(modp.start_params, modp.loglike, epsilon=-1e-4) +tmp = modp.loglike(modp.start_params) +print(tmp.shape) +#np.linalg.eigh(np.linalg.inv(hb))[0] + +pp=np.array(store_params) +print(pp.min(0)) +print(pp.max(0)) + + + + +##################### Example: Pareto +# estimating scale doesn't work yet, a bug somewhere ? +# fit_ks works well, but no bse or other result statistics yet + + + + + +#import for kstest based estimation +#should be replace +import statsmodels.sandbox.distributions.sppatch + +class MyPareto(GenericLikelihoodModel): + '''Maximum Likelihood Estimation pareto distribution + + first version: iid case, with constant parameters + ''' + + #copied from stats.distribution + def pdf(self, x, b): + return b * x**(-b-1) + + def loglike(self, params): + return -self.nloglikeobs(params).sum(0) + + def nloglikeobs(self, params): + #print params.shape + if not self.fixed_params is None: + #print 'using fixed' + params = self.expandparams(params) + b = params[0] + loc = params[1] + scale = params[2] + #loc = np.dot(self.exog, beta) + endog = self.endog + x = (endog - loc)/scale + logpdf = np_log(b) - (b+1.)*np_log(x) #use np_log(1 + x) for Pareto II + logpdf -= np.log(scale) + #lb = loc + scale + #logpdf[endog>> res_par.params +array([ 7.42705803e+152, 2.17339053e+153]) +>>> mod_par.loglike(mod_p.start_params) +Traceback (most recent call last): + File "", line 1, in +NameError: name 'mod_p' is not defined + +>>> mod_par.loglike(mod_par.start_params) +-1085.1993430947232 +>>> np.log(mod_par.pdf(mod_par.start_params)) +Traceback (most recent call last): + File "", line 1, in +TypeError: pdf() takes exactly 3 arguments (2 given) + +>>> np.log(mod_par.pdf(*mod_par.start_params)) +0.69314718055994529 +>>> mod_par.loglike(*mod_par.start_params) +Traceback (most recent call last): + File "", line 1, in +TypeError: loglike() takes exactly 2 arguments (3 given) + +>>> mod_par.loglike(mod_par.start_params) +-1085.1993430947232 +>>> np.log(stats.pareto.pdf(y[0],*mod_par.start_params)) +-4.6414308627431353 +>>> mod_par.loglike(mod_par.start_params) +-1085.1993430947232 +>>> mod_par.nloglikeobs(mod_par.start_params)[0] +0.29377232943845044 +>>> mod_par.start_params +array([ 1., 2.]) +>>> np.log(stats.pareto.pdf(y[0],1,9.5,2)) +-1.2806918394368461 +>>> mod_par.fixed_params= None +>>> mod_par.nloglikeobs(np.array([1., 10., 2.]))[0] +0.087533156771285828 +>>> y[0] +12.182956907488885 +>>> mod_para.endog[0] +Traceback (most recent call last): + File "", line 1, in +NameError: name 'mod_para' is not defined + +>>> mod_par.endog[0] +12.182956907488885 +>>> np.log(stats.pareto.pdf(y[0],1,10,2)) +-0.86821349410251702 +>>> np.log(stats.pareto.pdf(y[0],1.,10.,2.)) +-0.86821349410251702 +>>> stats.pareto.pdf(y[0],1.,10.,2.) +0.41970067762301644 +>>> mod_par.loglikeobs(np.array([1., 10., 2.]))[0] +-0.087533156771285828 +>>> +''' + +''' +>>> mod_par.nloglikeobs(np.array([1., 10., 2.]))[0] +0.86821349410251691 +>>> np.log(stats.pareto.pdf(y,1.,10.,2.)).sum() +-2627.9403758026938 +''' + + +#''' +#C:\Programs\Python25\lib\site-packages\matplotlib-0.99.1-py2.5-win32.egg\matplotlib\rcsetup.py:117: UserWarning: rcParams key "numerix" is obsolete and has no effect; +# please delete it from your matplotlibrc file +# warnings.warn('rcParams key "numerix" is obsolete and has no effect;\n' +#0.0686702747648 +#0.0164150896481 +#0.128121386381 +#[ 0.10370428 0.09921315 0.09676723 0.10457413 0.10201618 0.89964496] +#(array(0.0), array(1.4552599885729827), array(0.0), array(2.5072143354058203)) +#(array(0.0), array(1.6666666666666667), array(0.0), array(6.0)) +#repr(start_params) array([ 0.10370428, 0.09921315, 0.09676723, 0.10457413, 0.10201618, +# 0.89964496, 6.39309417, 0.12812139]) +#Optimization terminated successfully. +# Current function value: -679.951339 +# Iterations: 398 +# Function evaluations: 609 +# +#estimation results t-dist +#[ 0.10400826 0.10111893 0.09725133 0.10507788 0.10086163 0.8996041 +# 4.72131318 0.09825355] +#[ 0.00365493 0.00356149 0.00349329 0.00362333 0.003732 0.00362716 +# 0.72325227 0.00388822] +#repr(start_params) array([ 0.10400826, 0.10111893, 0.09725133, 0.10507788, 0.10086163, +# 0.8996041 , 4.72131318, 0.09825355]) +#Optimization terminated successfully. +# Current function value: -679.950443 +# Iterations 3 +#using Newton +#[ 0.10395383 0.10106762 0.09720665 0.10503384 0.10080599 0.89954546 +# 4.70918964 0.09815885] +#[ 0.00365299 0.00355968 0.00349147 0.00362166 0.00373015 0.00362533 +# 0.72014669 0.00388436] +#() +#[ 0.09992709 0.09786601 0.09387356 0.10229919 0.09756623 0.85466272 +# 4.60459182 0.09661986] +#[ 0.11308292 0.10828401 0.1028508 0.11268895 0.10934726 0.94462721 +# 7.15412655 0.13452746] +#repr(start_params) array([ 1., 2.]) +#Warning: Maximum number of function evaluations has been exceeded. +#repr(start_params) array([ 3.06504406e+302, 3.29325579e+303]) +#Traceback (most recent call last): +# File "C:\Josef\eclipsegworkspace\statsmodels-josef-experimental-gsoc\scikits\statsmodels\examples\ex_generic_mle_tdist.py", line 222, in +# res_par2 = mod_par.fit(start_params=res_par.params, method='newton', maxfun=10000, maxiter=5000) +# File "c:\josef\eclipsegworkspace\statsmodels-josef-experimental-gsoc\scikits\statsmodels\model.py", line 547, in fit +# disp=disp, callback=callback, **kwargs) +# File "c:\josef\eclipsegworkspace\statsmodels-josef-experimental-gsoc\scikits\statsmodels\model.py", line 262, in fit +# newparams = oldparams - np.dot(np.linalg.inv(H), +# File "C:\Programs\Python25\lib\site-packages\numpy\linalg\linalg.py", line 423, in inv +# return wrap(solve(a, identity(a.shape[0], dtype=a.dtype))) +# File "C:\Programs\Python25\lib\site-packages\numpy\linalg\linalg.py", line 306, in solve +# raise LinAlgError, 'Singular matrix' +#numpy.linalg.linalg.LinAlgError: Singular matrix +# +#>>> mod_par.fixed_params +#array([ NaN, 10., NaN]) +#>>> mod_par.start_params +#array([ 1., 2.]) +#>>> np.source(stats.pareto.fit_fr) +#In file: c:\josef\eclipsegworkspace\statsmodels-josef-experimental-gsoc\scikits\statsmodels\sandbox\stats\distributions_patch.py +# +#def fit_fr(self, data, *args, **kwds): +# '''estimate distribution parameters by MLE taking some parameters as fixed +# +# Parameters +# ---------- +# data : array, 1d +# data for which the distribution parameters are estimated, +# args : list ? check +# starting values for optimization +# kwds : +# +# - 'frozen' : array_like +# values for frozen distribution parameters and, for elements with +# np.nan, the corresponding parameter will be estimated +# +# Returns +# ------- +# argest : array +# estimated parameters +# +# +# Examples +# -------- +# generate random sample +# >>> np.random.seed(12345) +# >>> x = stats.gamma.rvs(2.5, loc=0, scale=1.2, size=200) +# +# estimate all parameters +# >>> stats.gamma.fit(x) +# array([ 2.0243194 , 0.20395655, 1.44411371]) +# >>> stats.gamma.fit_fr(x, frozen=[np.nan, np.nan, np.nan]) +# array([ 2.0243194 , 0.20395655, 1.44411371]) +# +# keep loc fixed, estimate shape and scale parameters +# >>> stats.gamma.fit_fr(x, frozen=[np.nan, 0.0, np.nan]) +# array([ 2.45603985, 1.27333105]) +# +# keep loc and scale fixed, estimate shape parameter +# >>> stats.gamma.fit_fr(x, frozen=[np.nan, 0.0, 1.0]) +# array([ 3.00048828]) +# >>> stats.gamma.fit_fr(x, frozen=[np.nan, 0.0, 1.2]) +# array([ 2.57792969]) +# +# estimate only scale parameter for fixed shape and loc +# >>> stats.gamma.fit_fr(x, frozen=[2.5, 0.0, np.nan]) +# array([ 1.25087891]) +# +# Notes +# ----- +# self is an instance of a distribution class. This can be attached to +# scipy.stats.distributions.rv_continuous +# +# *Todo* +# +# * check if docstring is correct +# * more input checking, args is list ? might also apply to current fit method +# +# ''' +# loc0, scale0 = map(kwds.get, ['loc', 'scale'],[0.0, 1.0]) +# Narg = len(args) +# +# if Narg == 0 and hasattr(self, '_fitstart'): +# x0 = self._fitstart(data) +# elif Narg > self.numargs: +# raise ValueError("Too many input arguments.") +# else: +# args += (1.0,)*(self.numargs-Narg) +# # location and scale are at the end +# x0 = args + (loc0, scale0) +# +# if 'frozen' in kwds: +# frmask = np.array(kwds['frozen']) +# if len(frmask) != self.numargs+2: +# raise ValueError("Incorrect number of frozen arguments.") +# else: +# # keep starting values for not frozen parameters +# x0 = np.array(x0)[np.isnan(frmask)] +# else: +# frmask = None +# +# #print x0 +# #print frmask +# return optimize.fmin(self.nnlf_fr, x0, +# args=(np.ravel(data), frmask), disp=0) +# +#>>> stats.pareto.fit_fr(y, 1., frozen=[np.nan, loc, np.nan]) +#Traceback (most recent call last): +# File "", line 1, in +#NameError: name 'loc' is not defined +# +#>>> stats.pareto.fit_fr(y, 1., frozen=[np.nan, 10., np.nan]) +#array([ 1.0346268 , 2.00184808]) +#>>> stats.pareto.fit_fr(y, (1.,2), frozen=[np.nan, 10., np.nan]) +#Traceback (most recent call last): +# File "", line 1, in +# File "c:\josef\eclipsegworkspace\statsmodels-josef-experimental-gsoc\scikits\statsmodels\sandbox\stats\distributions_patch.py", line 273, in fit_fr +# x0 = np.array(x0)[np.isnan(frmask)] +#ValueError: setting an array element with a sequence. +# +#>>> stats.pareto.fit_fr(y, [1.,2], frozen=[np.nan, 10., np.nan]) +#Traceback (most recent call last): +# File "", line 1, in +# File "c:\josef\eclipsegworkspace\statsmodels-josef-experimental-gsoc\scikits\statsmodels\sandbox\stats\distributions_patch.py", line 273, in fit_fr +# x0 = np.array(x0)[np.isnan(frmask)] +#ValueError: setting an array element with a sequence. +# +#>>> stats.pareto.fit_fr(y, frozen=[np.nan, 10., np.nan]) +#array([ 1.03463526, 2.00184809]) +#>>> stats.pareto.pdf(y, 1.03463526, 10, 2.00184809).sum() +#173.33947284555239 +#>>> mod_par(1.03463526, 10, 2.00184809) +#Traceback (most recent call last): +# File "", line 1, in +#TypeError: 'MyPareto' object is not callable +# +#>>> mod_par.loglike(1.03463526, 10, 2.00184809) +#Traceback (most recent call last): +# File "", line 1, in +#TypeError: loglike() takes exactly 2 arguments (4 given) +# +#>>> mod_par.loglike((1.03463526, 10, 2.00184809)) +#-962.21623668859741 +#>>> np.log(stats.pareto.pdf(y, 1.03463526, 10, 2.00184809)).sum() +#-inf +#>>> np.log(stats.pareto.pdf(y, 1.03463526, 9, 2.00184809)).sum() +#-3074.5947476137271 +#>>> np.log(stats.pareto.pdf(y, 1.03463526, 10., 2.00184809)).sum() +#-inf +#>>> np.log(stats.pareto.pdf(y, 1.03463526, 9.9, 2.00184809)).sum() +#-2677.3867091635661 +#>>> y.min() +#12.001848089426717 +#>>> np.log(stats.pareto.pdf(y, 1.03463526, loc=9.9, scale=2.00184809)).sum() +#-2677.3867091635661 +#>>> np.log(stats.pareto.pdf(y, 1.03463526, loc=10., scale=2.00184809)).sum() +#-inf +#>>> stats.pareto.logpdf(y, 1.03463526, loc=10., scale=2.00184809).sum() +#-inf +#>>> stats.pareto.logpdf(y, 1.03463526, loc=9.99, scale=2.00184809).sum() +#-2631.6120098202355 +#>>> mod_par.loglike((1.03463526, 9.99, 2.00184809)) +#-963.2513896113644 +#>>> maxabs(y, mod_par.endog) +#0.0 +#>>> np.source(stats.pareto.logpdf) +#In file: C:\Josef\_progs\Subversion\scipy-trunk_after\trunk\dist\scipy-0.9.0.dev6579.win32\Programs\Python25\Lib\site-packages\scipy\stats\distributions.py +# +# def logpdf(self, x, *args, **kwds): +# """ +# Log of the probability density function at x of the given RV. +# +# This uses more numerically accurate calculation if available. +# +# Parameters +# ---------- +# x : array-like +# quantiles +# arg1, arg2, arg3,... : array-like +# The shape parameter(s) for the distribution (see docstring of the +# instance object for more information) +# loc : array-like, optional +# location parameter (default=0) +# scale : array-like, optional +# scale parameter (default=1) +# +# Returns +# ------- +# logpdf : array-like +# Log of the probability density function evaluated at x +# +# """ +# loc,scale=map(kwds.get,['loc','scale']) +# args, loc, scale = self._fix_loc_scale(args, loc, scale) +# x,loc,scale = map(arr,(x,loc,scale)) +# args = tuple(lmap(arr,args)) +# x = arr((x-loc)*1.0/scale) +# cond0 = self._argcheck(*args) & (scale > 0) +# cond1 = (scale > 0) & (x >= self.a) & (x <= self.b) +# cond = cond0 & cond1 +# output = empty(shape(cond),'d') +# output.fill(NINF) +# putmask(output,(1-cond0)*array(cond1,bool),self.badvalue) +# goodargs = argsreduce(cond, *((x,)+args+(scale,))) +# scale, goodargs = goodargs[-1], goodargs[:-1] +# place(output,cond,self._logpdf(*goodargs) - log(scale)) +# if output.ndim == 0: +# return output[()] +# return output +# +#>>> np.source(stats.pareto._logpdf) +#In file: C:\Josef\_progs\Subversion\scipy-trunk_after\trunk\dist\scipy-0.9.0.dev6579.win32\Programs\Python25\Lib\site-packages\scipy\stats\distributions.py +# +# def _logpdf(self, x, *args): +# return log(self._pdf(x, *args)) +# +#>>> np.source(stats.pareto._pdf) +#In file: C:\Josef\_progs\Subversion\scipy-trunk_after\trunk\dist\scipy-0.9.0.dev6579.win32\Programs\Python25\Lib\site-packages\scipy\stats\distributions.py +# +# def _pdf(self, x, b): +# return b * x**(-b-1) +# +#>>> stats.pareto.a +#1.0 +#>>> (1-loc)/scale +#Traceback (most recent call last): +# File "", line 1, in +#NameError: name 'loc' is not defined +# +#>>> b, loc, scale = (1.03463526, 9.99, 2.00184809) +#>>> (1-loc)/scale +#-4.4908502522786327 +#>>> (x-loc)/scale == 1 +#Traceback (most recent call last): +# File "", line 1, in +#NameError: name 'x' is not defined +# +#>>> (lb-loc)/scale == 1 +#Traceback (most recent call last): +# File "", line 1, in +#NameError: name 'lb' is not defined +# +#>>> lb = scale + loc +#>>> lb +#11.991848090000001 +#>>> (lb-loc)/scale == 1 +#False +#>>> (lb-loc)/scale +#1.0000000000000004 +#>>> +#''' + +''' +repr(start_params) array([ 1., 10., 2.]) +Optimization terminated successfully. + Current function value: 2626.436870 + Iterations: 102 + Function evaluations: 210 +Optimization terminated successfully. + Current function value: 0.016555 + Iterations: 16 + Function evaluations: 35 +[ 1.03482659 10.00737039 1.9944777 ] +(1.0596088578825995, 9.9043376069230007, 2.0975104813987118) +>>> 9.9043376069230007 + 2.0975104813987118 +12.001848088321712 +>>> y.min() +12.001848089426717 + +''' + +''' +C:\Programs\Python25\lib\site-packages\matplotlib-0.99.1-py2.5-win32.egg\matplotlib\rcsetup.py:117: UserWarning: rcParams key "numerix" is obsolete and has no effect; + please delete it from your matplotlibrc file + warnings.warn('rcParams key "numerix" is obsolete and has no effect;\n' +0.0686702747648 +0.0164150896481 +0.128121386381 +[ 0.10370428 0.09921315 0.09676723 0.10457413 0.10201618 0.89964496] +(array(0.0), array(1.4552599885729829), array(0.0), array(2.5072143354058221)) +(array(0.0), array(1.6666666666666667), array(0.0), array(6.0)) +repr(start_params) array([ 0.10370428, 0.09921315, 0.09676723, 0.10457413, 0.10201618, + 0.89964496, 6.39309417, 0.12812139]) +Optimization terminated successfully. + Current function value: -679.951339 + Iterations: 398 + Function evaluations: 609 + +estimation results t-dist +[ 0.10400826 0.10111893 0.09725133 0.10507788 0.10086163 0.8996041 + 4.72131318 0.09825355] +[ 0.00365493 0.00356149 0.00349329 0.00362333 0.003732 0.00362716 + 0.72329352 0.00388832] +repr(start_params) array([ 0.10400826, 0.10111893, 0.09725133, 0.10507788, 0.10086163, + 0.8996041 , 4.72131318, 0.09825355]) +Optimization terminated successfully. + Current function value: -679.950443 + Iterations 3 +using Newton +[ 0.10395383 0.10106762 0.09720665 0.10503384 0.10080599 0.89954546 + 4.70918964 0.09815885] +[ 0.00365299 0.00355968 0.00349147 0.00362166 0.00373015 0.00362533 + 0.7201488 0.00388437] +() +[ 0.09992709 0.09786601 0.09387356 0.10229919 0.09756623 0.85466272 + 4.60459182 0.09661986] +[ 0.11308292 0.10828401 0.1028508 0.11268895 0.10934726 0.94462721 + 7.15412655 0.13452746] +repr(start_params) array([ 1., 9., 2.]) +Optimization terminated successfully. + Current function value: 2636.129089 + Iterations: 147 + Function evaluations: 279 +Optimization terminated successfully. + Current function value: 0.016555 + Iterations: 16 + Function evaluations: 35 +[ 0.84856418 10.2197801 1.78206799] +(1.0596088578825995, 9.9043376069230007, 2.0975104813987118) +12.0018480891 12.0018480883 12.0018480894 +repr(start_params) array([ 1., 2.]) +Warning: Desired error not necessarily achieveddue to precision loss + Current function value: 2643.549907 + Iterations: 2 + Function evaluations: 13 + Gradient evaluations: 12 +>>> res_parks2 = mod_par.fit_ks() +repr(start_params) array([ 1., 2.]) +Optimization terminated successfully. + Current function value: 2642.465273 + Iterations: 92 + Function evaluations: 172 +repr(start_params) array([ 1., 2.]) +Optimization terminated successfully. + Current function value: 2636.639863 + Iterations: 73 + Function evaluations: 136 +repr(start_params) array([ 1., 2.]) +Optimization terminated successfully. + Current function value: 2631.568778 + Iterations: 75 + Function evaluations: 133 +repr(start_params) array([ 1., 2.]) +Optimization terminated successfully. + Current function value: 2627.821044 + Iterations: 75 + Function evaluations: 135 +repr(start_params) array([ 1., 2.]) +Warning: Maximum number of function evaluations has been exceeded. +repr(start_params) array([ 1., 2.]) +Optimization terminated successfully. + Current function value: 2631.568778 + Iterations: 75 + Function evaluations: 133 +repr(start_params) array([ 1., 2.]) +Optimization terminated successfully. + Current function value: 2626.431596 + Iterations: 58 + Function evaluations: 109 +repr(start_params) array([ 1., 2.]) +Warning: Maximum number of function evaluations has been exceeded. +repr(start_params) array([ 1., 2.]) +Warning: Maximum number of function evaluations has been exceeded. +repr(start_params) array([ 1., 2.]) +Optimization terminated successfully. + Current function value: 2626.737426 + Iterations: 60 + Function evaluations: 109 +repr(start_params) array([ 1., 2.]) +Optimization terminated successfully. + Current function value: 2627.821044 + Iterations: 75 + Function evaluations: 135 +repr(start_params) array([ 1., 2.]) +Optimization terminated successfully. + Current function value: 2626.471666 + Iterations: 48 + Function evaluations: 94 +repr(start_params) array([ 1., 2.]) +Optimization terminated successfully. + Current function value: 2627.196314 + Iterations: 66 + Function evaluations: 119 +repr(start_params) array([ 1., 2.]) +Optimization terminated successfully. + Current function value: 2626.578538 + Iterations: 56 + Function evaluations: 103 +repr(start_params) array([ 1., 2.]) +Optimization terminated successfully. + Current function value: 2626.471666 + Iterations: 48 + Function evaluations: 94 +repr(start_params) array([ 1., 2.]) +Optimization terminated successfully. + Current function value: 2626.651702 + Iterations: 67 + Function evaluations: 122 +repr(start_params) array([ 1., 2.]) +Optimization terminated successfully. + Current function value: 2626.737426 + Iterations: 60 + Function evaluations: 109 +repr(start_params) array([ 1., 2.]) +Optimization terminated successfully. + Current function value: 2626.613505 + Iterations: 73 + Function evaluations: 141 +repr(start_params) array([ 1., 2.]) +Optimization terminated successfully. + Current function value: 2626.578538 + Iterations: 56 + Function evaluations: 103 +repr(start_params) array([ 1., 2.]) +Optimization terminated successfully. + Current function value: 2626.632218 + Iterations: 64 + Function evaluations: 119 +repr(start_params) array([ 1., 2.]) +Optimization terminated successfully. + Current function value: 2626.651702 + Iterations: 67 + Function evaluations: 122 +repr(start_params) array([ 1., 2.]) +Optimization terminated successfully. + Current function value: 2626.622789 + Iterations: 63 + Function evaluations: 114 +repr(start_params) array([ 1., 2.]) +Optimization terminated successfully. + Current function value: 2626.613505 + Iterations: 73 + Function evaluations: 141 +repr(start_params) array([ 1., 2.]) +Optimization terminated successfully. + Current function value: 2626.627465 + Iterations: 59 + Function evaluations: 109 +repr(start_params) array([ 1., 2.]) +Optimization terminated successfully. + Current function value: 2626.632218 + Iterations: 64 + Function evaluations: 119 +repr(start_params) array([ 1., 2.]) +Optimization terminated successfully. + Current function value: 2626.625104 + Iterations: 59 + Function evaluations: 108 +repr(start_params) array([ 1., 2.]) +Optimization terminated successfully. + Current function value: 2626.629829 + Iterations: 66 + Function evaluations: 118 +repr(start_params) array([ 1., 2.]) +Optimization terminated successfully. + Current function value: 2626.632218 + Iterations: 64 + Function evaluations: 119 +repr(start_params) array([ 1., 2.]) +Optimization terminated successfully. + Current function value: 2626.632218 + Iterations: 64 + Function evaluations: 119 +repr(start_params) array([ 1., 2.]) +Optimization terminated successfully. + Current function value: 2626.628642 + Iterations: 67 + Function evaluations: 122 +repr(start_params) array([ 1., 2.]) +Optimization terminated successfully. + Current function value: 2626.631023 + Iterations: 68 + Function evaluations: 129 +repr(start_params) array([ 1., 2.]) +Optimization terminated successfully. + Current function value: 2626.630430 + Iterations: 57 + Function evaluations: 108 +repr(start_params) array([ 1., 2.]) +Optimization terminated successfully. + Current function value: 2626.629598 + Iterations: 60 + Function evaluations: 112 +repr(start_params) array([ 1., 2.]) +Optimization terminated successfully. + Current function value: 2626.630430 + Iterations: 57 + Function evaluations: 108 +repr(start_params) array([ 1., 2.]) +Optimization terminated successfully. + Current function value: 2626.630130 + Iterations: 65 + Function evaluations: 122 +repr(start_params) array([ 1., 2.]) +Optimization terminated successfully. + Current function value: 2626.629536 + Iterations: 62 + Function evaluations: 111 +repr(start_params) array([ 1., 2.]) +Optimization terminated successfully. + Current function value: 2626.630130 + Iterations: 65 + Function evaluations: 122 +repr(start_params) array([ 1., 2.]) +Optimization terminated successfully. + Current function value: 2626.629984 + Iterations: 67 + Function evaluations: 123 +Optimization terminated successfully. + Current function value: 0.016560 + Iterations: 18 + Function evaluations: 38 +>>> res_parks2 +(1.0592352626264809, 9.9051580457572399, 2.0966900385041591) +>>> res_parks +(1.0596088578825995, 9.9043376069230007, 2.0975104813987118) +>>> res_par.params +array([ 0.84856418, 10.2197801 , 1.78206799]) +>>> np.sqrt(np.diag(mod_par.hessian(res_par.params))) +array([ NaN, NaN, NaN]) +>>> mod_par.hessian(res_par.params +... ) +array([[ NaN, NaN, NaN], + [ NaN, NaN, NaN], + [ NaN, NaN, NaN]]) +>>> mod_par.hessian(res_parks) +Traceback (most recent call last): + File "", line 1, in + File "c:\josef\eclipsegworkspace\statsmodels-josef-experimental-gsoc\scikits\statsmodels\model.py", line 533, in hessian + return approx_hess(params, self.loglike)[0] #need options for hess (epsilon) + File "c:\josef\eclipsegworkspace\statsmodels-josef-experimental-gsoc\scikits\statsmodels\sandbox\regression\numdiff.py", line 118, in approx_hess + xh = x + h +TypeError: can only concatenate tuple (not "float") to tuple + +>>> mod_par.hessian(np.array(res_parks)) +array([[ NaN, NaN, NaN], + [ NaN, NaN, NaN], + [ NaN, NaN, NaN]]) +>>> mod_par.fixed_params +array([ NaN, 9.90510677, NaN]) +>>> mod_par.fixed_params=None +>>> mod_par.hessian(np.array(res_parks)) +array([[-890.48553491, NaN, NaN], + [ NaN, NaN, NaN], + [ NaN, NaN, NaN]]) +>>> mod_par.loglike(np.array(res_parks)) +-2626.6322080820569 +>>> mod_par.bsejac +Traceback (most recent call last): + File "", line 1, in + File "c:\josef\eclipsegworkspace\statsmodels-josef-experimental-gsoc\scikits\statsmodels\decorators.py", line 85, in __get__ + _cachedval = self.fget(obj) + File "c:\josef\eclipsegworkspace\statsmodels-josef-experimental-gsoc\scikits\statsmodels\model.py", line 592, in bsejac + return np.sqrt(np.diag(self.covjac)) + File "c:\josef\eclipsegworkspace\statsmodels-josef-experimental-gsoc\scikits\statsmodels\decorators.py", line 85, in __get__ + _cachedval = self.fget(obj) + File "c:\josef\eclipsegworkspace\statsmodels-josef-experimental-gsoc\scikits\statsmodels\model.py", line 574, in covjac + jacv = self.jacv + File "c:\josef\eclipsegworkspace\statsmodels-josef-experimental-gsoc\scikits\statsmodels\decorators.py", line 85, in __get__ + _cachedval = self.fget(obj) + File "c:\josef\eclipsegworkspace\statsmodels-josef-experimental-gsoc\scikits\statsmodels\model.py", line 557, in jacv + return self.jac(self._results.params) + File "c:\josef\eclipsegworkspace\statsmodels-josef-experimental-gsoc\scikits\statsmodels\model.py", line 530, in jac + return approx_fprime1(params, self.loglikeobs, **kwds) + File "c:\josef\eclipsegworkspace\statsmodels-josef-experimental-gsoc\scikits\statsmodels\sandbox\regression\numdiff.py", line 80, in approx_fprime1 + f0 = f(*((xk,)+args)) + File "c:\josef\eclipsegworkspace\statsmodels-josef-experimental-gsoc\scikits\statsmodels\model.py", line 522, in loglikeobs + return -self.nloglikeobs(params) + File "C:\Josef\eclipsegworkspace\statsmodels-josef-experimental-gsoc\scikits\statsmodels\examples\ex_generic_mle_tdist.py", line 184, in nloglikeobs + scale = params[2] +IndexError: index out of bounds +>>> hasattr(self, 'start_params') +Traceback (most recent call last): + File "", line 1, in +NameError: name 'self' is not defined + +>>> hasattr(mod_par, 'start_params') +True +>>> mod_par.start_params +array([ 1., 2.]) +>>> stats.pareto.stats(1., 9., 2., moments='mvsk') +(array(1.#INF), array(1.#INF), array(1.#QNAN), array(1.#QNAN)) +>>> stats.pareto.stats(1., 8., 2., moments='mvsk') +(array(1.#INF), array(1.#INF), array(1.#QNAN), array(1.#QNAN)) +>>> stats.pareto.stats(1., 8., 1., moments='mvsk') +(array(1.#INF), array(1.#INF), array(1.#QNAN), array(1.#QNAN)) +>>> stats.pareto.stats(1., moments='mvsk') +(array(1.#INF), array(1.#INF), array(1.#QNAN), array(1.#QNAN)) +>>> stats.pareto.stats(0.5., moments='mvsk') + File "", line 1 + stats.pareto.stats(0.5., moments='mvsk') + ^ +SyntaxError: invalid syntax + +>>> stats.pareto.stats(0.5, moments='mvsk') +(array(1.#INF), array(1.#INF), array(1.#QNAN), array(1.#QNAN)) +>>> stats.pareto.stats(2, moments='mvsk') +(array(2.0), array(1.#INF), array(1.#QNAN), array(1.#QNAN)) +>>> stats.pareto.stats(10, moments='mvsk') +(array(1.1111111111111112), array(0.015432098765432098), array(2.8110568859997356), array(14.828571428571429)) +>>> stats.pareto.rvs(10, size=10) +array([ 1.07716265, 1.18977526, 1.07093 , 1.05157081, 1.15991232, + 1.31015589, 1.06675107, 1.08082475, 1.19501243, 1.34967158]) +>>> r = stats.pareto.rvs(10, size=1000) +>>> plt +Traceback (most recent call last): + File "", line 1, in +NameError: name 'plt' is not defined + +>>> import matplotlib.pyplot as plt +>>> plt.hist(r) +(array([962, 32, 3, 2, 0, 0, 0, 0, 0, 1]), array([ 1.00013046, 1.3968991 , 1.79366773, 2.19043637, 2.587205 , + 2.98397364, 3.38074227, 3.77751091, 4.17427955, 4.57104818, + 4.96781682]), ) +>>> plt.show() + +''' diff --git a/statsmodels/examples/ex_grangercausality.py b/statsmodels/examples/ex_grangercausality.py new file mode 100644 index 0000000..d312aa7 --- /dev/null +++ b/statsmodels/examples/ex_grangercausality.py @@ -0,0 +1,42 @@ +# -*- coding: utf-8 -*- +""" + +Created on Sat Jul 06 15:44:57 2013 + +Author: Josef Perktold +""" + +from __future__ import print_function +from statsmodels.compat.python import iteritems +import numpy as np +from numpy.testing import assert_almost_equal +from statsmodels.datasets import macrodata + +import statsmodels.tsa.stattools as tsa_stats + +# some example data +mdata = macrodata.load().data +mdata = mdata[['realgdp','realcons']] +data = mdata.view((float,2)) +data = np.diff(np.log(data), axis=0) + +#R: lmtest:grangertest +r_result = [0.243097, 0.7844328, 195, 2] #f_test +gr = tsa_stats.grangercausalitytests(data[:,1::-1], 2, verbose=False) +assert_almost_equal(r_result, gr[2][0]['ssr_ftest'], decimal=7) +assert_almost_equal(gr[2][0]['params_ftest'], gr[2][0]['ssr_ftest'], + decimal=7) + +lag = 2 +print('\nTest Results for %d lags' % lag) +print() +print('\n'.join(['%-20s statistic: %f6.4 p-value: %f6.4' % (k, res[0], res[1]) + for k, res in iteritems(gr[lag][0]) ])) + +print('\n Results for auxiliary restricted regression with two lags') +print() +print(gr[lag][1][0].summary()) + +print('\n Results for auxiliary unrestricted regression with two lags') +print() +print(gr[lag][1][1].summary()) diff --git a/statsmodels/examples/ex_inter_rater.py b/statsmodels/examples/ex_inter_rater.py new file mode 100644 index 0000000..57abc00 --- /dev/null +++ b/statsmodels/examples/ex_inter_rater.py @@ -0,0 +1,112 @@ +# -*- coding: utf-8 -*- +""" + +Created on Mon Dec 10 08:54:02 2012 + +Author: Josef Perktold +""" + +from __future__ import print_function +import numpy as np +from numpy.testing import assert_almost_equal + +from statsmodels.stats.inter_rater import fleiss_kappa, cohens_kappa, KappaResults + + +table0 = np.asarray('''\ +1 0 0 0 0 14 1.000 +2 0 2 6 4 2 0.253 +3 0 0 3 5 6 0.308 +4 0 3 9 2 0 0.440 +5 2 2 8 1 1 0.330 +6 7 7 0 0 0 0.462 +7 3 2 6 3 0 0.242 +8 2 5 3 2 2 0.176 +9 6 5 2 1 0 0.286 +10 0 2 2 3 7 0.286'''.split(), float).reshape(10,-1) + + +Total = np.asarray("20 28 39 21 32".split('\t'), int) +Pj = np.asarray("0.143 0.200 0.279 0.150 0.229".split('\t'), float) +kappa_wp = 0.210 +table1 = table0[:, 1:-1] + + +print(fleiss_kappa(table1)) +table4 = np.array([[20,5], [10, 15]]) +print('res', cohens_kappa(table4), 0.4) #wikipedia + +table5 = np.array([[45, 15], [25, 15]]) +print('res', cohens_kappa(table5), 0.1304) #wikipedia + +table6 = np.array([[25, 35], [5, 35]]) +print('res', cohens_kappa(table6), 0.2593) #wikipedia +print('res', cohens_kappa(table6, weights=np.arange(2)), 0.2593) #wikipedia +t7 = np.array([[16, 18, 28], + [10, 27, 13], + [28, 20, 24]]) +print(cohens_kappa(t7, weights=[0, 1, 2])) + +table8 = np.array([[25, 35], [5, 35]]) +print('res', cohens_kappa(table8)) + +#SAS example from http://www.john-uebersax.com/stat/saskappa.htm +''' + Statistic Value ASE 95% Confidence Limits + ------------------------------------------------------------ + Simple Kappa 0.3333 0.0814 0.1738 0.4929 + Weighted Kappa 0.2895 0.0756 0.1414 0.4376 +''' +t9 = [[0, 0, 0], + [5, 16, 3], + [8, 12, 28]] +res9 = cohens_kappa(t9) +print('res', res9) +print('res', cohens_kappa(t9, weights=[0, 1, 2])) + + +#check max kappa, constructed by hand, same marginals +table6a = np.array([[30, 30], [0, 40]]) +res = cohens_kappa(table6a) +assert res.kappa == res.kappa_max +#print np.divide(*cohens_kappa(table6)[:2]) +print(res.kappa / res.kappa_max) + + +table10 = [[0, 4, 1], + [0, 8, 0], + [0, 1, 5]] +res10 = cohens_kappa(table10) +print('res10', res10) + + +'''SAS result for table10 + + Simple Kappa Coefficient + -------------------------------- + Kappa 0.4842 + ASE 0.1380 + 95% Lower Conf Limit 0.2137 + 95% Upper Conf Limit 0.7547 + + Test of H0: Kappa = 0 + + ASE under H0 0.1484 + Z 3.2626 + One-sided Pr > Z 0.0006 + Two-sided Pr > |Z| 0.0011 + + Weighted Kappa Coefficient + -------------------------------- + Weighted Kappa 0.4701 + ASE 0.1457 + 95% Lower Conf Limit 0.1845 + 95% Upper Conf Limit 0.7558 + + Test of H0: Weighted Kappa = 0 + + ASE under H0 0.1426 + Z 3.2971 + One-sided Pr > Z 0.0005 + Two-sided Pr > |Z| 0.0010 +''' diff --git a/statsmodels/examples/ex_kde_confint.py b/statsmodels/examples/ex_kde_confint.py new file mode 100644 index 0000000..e064472 --- /dev/null +++ b/statsmodels/examples/ex_kde_confint.py @@ -0,0 +1,65 @@ +# -*- coding: utf-8 -*- +""" + +Created on Mon Dec 16 11:02:59 2013 + +Author: Josef Perktold +""" + +from __future__ import print_function +import numpy as np +from scipy import stats +import matplotlib.pyplot as plt +import statsmodels.nonparametric.api as npar +from statsmodels.sandbox.nonparametric import kernels +from statsmodels.distributions.mixture_rvs import mixture_rvs + +# example from test_kde.py mixture of two normal distributions +np.random.seed(12345) +x = mixture_rvs([.25,.75], size=200, dist=[stats.norm, stats.norm], + kwargs = (dict(loc=-1, scale=.5),dict(loc=1, scale=.5))) + +x.sort() # not needed + +kde = npar.KDEUnivariate(x) +kde.fit('gau') +ci = kde.kernel.density_confint(kde.density, len(x)) + +fig = plt.figure() +ax = fig.add_subplot(1, 1, 1) +ax.hist(x, bins=15, normed=True, alpha=0.25) +ax.plot(kde.support, kde.density, lw=2, color='red') +ax.fill_between(kde.support, ci[:,0], ci[:,1], + color='grey', alpha='0.7') +ax.set_title('Kernel Density Gaussian (bw = %4.2f)' % kde.bw) + + +# use all kernels directly + +x_grid = np.linspace(np.min(x), np.max(x), 51) +x_grid = np.linspace(-3, 3, 51) + +kernel_names = ['Biweight', 'Cosine', 'Epanechnikov', 'Gaussian', + 'Triangular', 'Triweight', #'Uniform', + ] + +fig = plt.figure() +for ii, kn in enumerate(kernel_names): + ax = fig.add_subplot(2, 3, ii+1) # without uniform + ax.hist(x, bins=10, normed=True, alpha=0.25) + #reduce bandwidth for Gaussian and Uniform which are to large in example + if kn in ['Gaussian', 'Uniform']: + args = (0.5,) + else: + args = () + kernel = getattr(kernels, kn)(*args) + + kde_grid = [kernel.density(x, xi) for xi in x_grid] + confint_grid = kernel.density_confint(kde_grid, len(x)) + + ax.plot(x_grid, kde_grid, lw=2, color='red', label=kn) + ax.fill_between(x_grid, confint_grid[:,0], confint_grid[:,1], + color='grey', alpha='0.7') + ax.legend(loc='upper left') + +plt.show() diff --git a/statsmodels/examples/ex_kde_normalreference.py b/statsmodels/examples/ex_kde_normalreference.py new file mode 100644 index 0000000..ed5ea2c --- /dev/null +++ b/statsmodels/examples/ex_kde_normalreference.py @@ -0,0 +1,59 @@ +# -*- coding: utf-8 -*- +""" +Author: Padarn Wilson + +Performance of normal reference plug-in estimator vs silverman. Sample is drawn +from a mixture of gaussians. Distribution has been chosen to be reasoanbly close +to normal. +""" + +from __future__ import print_function +import numpy as np +from scipy import stats +import matplotlib.pyplot as plt +import statsmodels.nonparametric.api as npar +from statsmodels.sandbox.nonparametric import kernels +from statsmodels.distributions.mixture_rvs import mixture_rvs + +# example from test_kde.py mixture of two normal distributions +np.random.seed(12345) +x = mixture_rvs([.1, .9], size=200, dist=[stats.norm, stats.norm], + kwargs=(dict(loc=0, scale=.5), dict(loc=1, scale=.5))) + +kde = npar.KDEUnivariate(x) + + +kernel_names = ['Gaussian', 'Epanechnikov', 'Biweight', + 'Triangular', 'Triweight', 'Cosine' + ] + +kernel_switch = ['gau', 'epa', 'tri', 'biw', + 'triw', 'cos' + ] + + +def true_pdf(x): + pdf = 0.1 * stats.norm.pdf(x, loc=0, scale=0.5) + pdf += 0.9 * stats.norm.pdf(x, loc=1, scale=0.5) + return pdf + +fig = plt.figure() +for ii, kn in enumerate(kernel_switch): + + ax = fig.add_subplot(2, 3, ii + 1) # without uniform + ax.hist(x, bins=20, normed=True, alpha=0.25) + + kde.fit(kernel=kn, bw='silverman', fft=False) + ax.plot(kde.support, kde.density) + + kde.fit(kernel=kn, bw='normal_reference', fft=False) + ax.plot(kde.support, kde.density) + + ax.plot(kde.support, true_pdf(kde.support), color='black', linestyle='--') + + ax.set_title(kernel_names[ii]) + + +ax.legend(['silverman', 'normal reference', 'true pdf'], loc='lower right') +ax.set_title('200 points') +plt.show() diff --git a/statsmodels/examples/ex_kernel_regression.py b/statsmodels/examples/ex_kernel_regression.py new file mode 100644 index 0000000..9f8a119 --- /dev/null +++ b/statsmodels/examples/ex_kernel_regression.py @@ -0,0 +1,64 @@ +# -*- coding: utf-8 -*- +""" + +Created on Wed Jan 02 09:17:40 2013 + +Author: Josef Perktold based on test file by George Panterov +""" + +from __future__ import print_function +import numpy as np +import numpy.testing as npt + +import statsmodels.nonparametric.api as nparam +#import statsmodels.api as sm +#nparam = sm.nonparametric + + + +italy_gdp = \ + [8.556, 12.262, 9.587, 8.119, 5.537, 6.796, 8.638, + 6.483, 6.212, 5.111, 6.001, 7.027, 4.616, 3.922, + 4.688, 3.957, 3.159, 3.763, 3.829, 5.242, 6.275, + 8.518, 11.542, 9.348, 8.02, 5.527, 6.865, 8.666, + 6.672, 6.289, 5.286, 6.271, 7.94, 4.72, 4.357, + 4.672, 3.883, 3.065, 3.489, 3.635, 5.443, 6.302, + 9.054, 12.485, 9.896, 8.33, 6.161, 7.055, 8.717, + 6.95] + +italy_year = \ + [1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, + 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1952, + 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, + 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1953, 1953, + 1953, 1953, 1953, 1953, 1953, 1953] + +italy_year = np.asarray(italy_year, float) + +model = nparam.KernelReg(endog=[italy_gdp], + exog=[italy_year], reg_type='lc', + var_type='o', bw='cv_ls') + +sm_bw = model.bw +R_bw = 0.1390096 + +sm_mean, sm_mfx = model.fit() +sm_mean2 = sm_mean[0:5] +sm_mfx = sm_mfx[0:5] +R_mean = 6.190486 + +sm_R2 = model.r_squared() +R_R2 = 0.1435323 + +npt.assert_allclose(sm_bw, R_bw, atol=1e-2) +npt.assert_allclose(sm_mean2, R_mean, atol=1e-2) +npt.assert_allclose(sm_R2, R_R2, atol=1e-2) + +import matplotlib.pyplot as plt + +fig = plt.figure() +ax = fig.add_subplot(1,1,1) +ax.plot(italy_year, italy_gdp, 'o') +ax.plot(italy_year, sm_mean, '-') + +plt.show() diff --git a/statsmodels/examples/ex_kernel_regression2.py b/statsmodels/examples/ex_kernel_regression2.py new file mode 100644 index 0000000..eaac45b --- /dev/null +++ b/statsmodels/examples/ex_kernel_regression2.py @@ -0,0 +1,57 @@ +# -*- coding: utf-8 -*- +""" + +Created on Wed Jan 02 13:43:44 2013 + +Author: Josef Perktold +""" + +from __future__ import print_function +import numpy as np +import numpy.testing as npt +import statsmodels.nonparametric.api as nparam + +if __name__ == '__main__': + + np.random.seed(500) + nobs = [250, 1000][0] + sig_fac = 1 + x = np.random.uniform(-2, 2, size=nobs) + x.sort() + y_true = np.sin(x*5)/x + 2*x + y = y_true + sig_fac * (np.sqrt(np.abs(3+x))) * np.random.normal(size=nobs) + + model = nparam.KernelReg(endog=[y], + exog=[x], reg_type='lc', + var_type='c', bw='cv_ls', + defaults=nparam.EstimatorSettings(efficient=True)) + + sm_bw = model.bw + + sm_mean, sm_mfx = model.fit() + + model1 = nparam.KernelReg(endog=[y], + exog=[x], reg_type='lc', + var_type='c', bw='cv_ls') + mean1, mfx1 = model1.fit() + + model2 = nparam.KernelReg(endog=[y], + exog=[x], reg_type='ll', + var_type='c', bw='cv_ls') + + mean2, mfx2 = model2.fit() + + print(model.bw) + print(model1.bw) + print(model2.bw) + + import matplotlib.pyplot as plt + fig = plt.figure() + ax = fig.add_subplot(1,1,1) + ax.plot(x, y, 'o', alpha=0.5) + ax.plot(x, y_true, lw=2, label='DGP mean') + ax.plot(x, sm_mean, lw=2, label='kernel mean') + ax.plot(x, mean2, lw=2, label='kernel mean') + ax.legend() + + plt.show() diff --git a/statsmodels/examples/ex_kernel_regression3.py b/statsmodels/examples/ex_kernel_regression3.py new file mode 100644 index 0000000..281533d --- /dev/null +++ b/statsmodels/examples/ex_kernel_regression3.py @@ -0,0 +1,77 @@ +# -*- coding: utf-8 -*- +"""script to try out Censored kernel regression + +Created on Wed Jan 02 13:43:44 2013 + +Author: Josef Perktold +""" + +from __future__ import print_function +import numpy as np +import statsmodels.nonparametric.api as nparam + +if __name__ == '__main__': + + np.random.seed(500) + nobs = [250, 1000][0] + sig_fac = 1 + x = np.random.uniform(-2, 2, size=nobs) + x.sort() + x2 = x**2 + 0.02 * np.random.normal(size=nobs) + y_true = np.sin(x*5)/x + 2*x - 3 * x2 + y = y_true + sig_fac * (np.sqrt(np.abs(3+x))) * np.random.normal(size=nobs) + cens_side = ['left', 'right', 'random'][2] + if cens_side == 'left': + c_val = 0.5 + y_cens = np.clip(y, c_val, 100) + elif cens_side == 'right': + c_val = 3.5 + y_cens = np.clip(y, -100, c_val) + elif cens_side == 'random': + c_val = 3.5 + 3 * np.random.randn(nobs) + y_cens = np.minimum(y, c_val) + + model = nparam.KernelCensoredReg(endog=[y_cens], + #exog=[np.column_stack((x, x**2))], reg_type='lc', + exog=[x, x2], reg_type='ll', + var_type='cc', bw='aic', #'cv_ls', #[0.23, 434697.22], #'cv_ls', + censor_val=c_val[:,None], + #defaults=nparam.EstimatorSettings(efficient=True) + ) + + sm_bw = model.bw + + sm_mean, sm_mfx = model.fit() + +# model1 = nparam.KernelReg(endog=[y], +# exog=[x], reg_type='lc', +# var_type='c', bw='cv_ls') +# mean1, mfx1 = model1.fit() + + model2 = nparam.KernelReg(endog=[y_cens], + exog=[x, x2], reg_type='ll', + var_type='cc', bw='aic',# 'cv_ls' + ) + + mean2, mfx2 = model2.fit() + + print(model.bw) + #print model1.bw + print(model2.bw) + + ix = np.argsort(y_cens) + ix_rev = np.zeros(nobs, int) + ix_rev[ix] = np.arange(nobs) + ix_rev = model.sortix_rev + + import matplotlib.pyplot as plt + fig = plt.figure() + ax = fig.add_subplot(1,1,1) + ax.plot(x, y, 'o', alpha=0.5) + ax.plot(x, y_cens, 'o', alpha=0.5) + ax.plot(x, y_true, lw=2, label='DGP mean') + ax.plot(x, sm_mean[ix_rev], lw=2, label='model 0 mean') + ax.plot(x, mean2, lw=2, label='model 2 mean') + ax.legend() + + plt.show() diff --git a/statsmodels/examples/ex_kernel_regression_censored2.py b/statsmodels/examples/ex_kernel_regression_censored2.py new file mode 100644 index 0000000..c93f7e4 --- /dev/null +++ b/statsmodels/examples/ex_kernel_regression_censored2.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +"""script to check KernelCensoredReg based on test file + +Created on Thu Jan 03 20:20:47 2013 + +Author: Josef Perktold +""" + +from __future__ import print_function +import numpy as np +import statsmodels.nonparametric.api as nparam + +if __name__ == '__main__': + #example from test file + nobs = 200 + np.random.seed(1234) + C1 = np.random.normal(size=(nobs, )) + C2 = np.random.normal(2, 1, size=(nobs, )) + noise = 0.1 * np.random.normal(size=(nobs, )) + y = 0.3 +1.2 * C1 - 0.9 * C2 + noise + y[y>0] = 0 # censor the data + model = nparam.KernelCensoredReg(endog=[y], exog=[C1, C2], + reg_type='ll', var_type='cc', + bw='cv_ls', censor_val=0) + sm_mean, sm_mfx = model.fit() + + import matplotlib.pyplot as plt + fig = plt.figure() + ax = fig.add_subplot(1,1,1) + sortidx = np.argsort(y) + ax.plot(y[sortidx], 'o', alpha=0.5) + #ax.plot(x, y_cens, 'o', alpha=0.5) + #ax.plot(x, y_true, lw=2, label='DGP mean') + ax.plot(sm_mean[sortidx], lw=2, label='model 0 mean') + #ax.plot(x, mean2, lw=2, label='model 2 mean') + ax.legend() + + plt.show() diff --git a/statsmodels/examples/ex_kernel_regression_dgp.py b/statsmodels/examples/ex_kernel_regression_dgp.py new file mode 100644 index 0000000..43df3fd --- /dev/null +++ b/statsmodels/examples/ex_kernel_regression_dgp.py @@ -0,0 +1,46 @@ +# -*- coding: utf-8 -*- +""" + +Created on Sun Jan 06 09:50:54 2013 + +Author: Josef Perktold +""" + +from __future__ import print_function + +if __name__ == '__main__': + + import numpy as np + import matplotlib.pyplot as plt + from statsmodels.nonparametric.api import KernelReg + import statsmodels.sandbox.nonparametric.dgp_examples as dgp + + + seed = np.random.randint(999999) + seed = 430973 + print(seed) + np.random.seed(seed) + + funcs = [dgp.UnivariateFanGijbels1(), + dgp.UnivariateFanGijbels2(), + dgp.UnivariateFanGijbels1EU(), + #dgp.UnivariateFanGijbels2(distr_x=stats.uniform(-2, 4)) + dgp.UnivariateFunc1() + ] + + res = [] + fig = plt.figure() + for i,func in enumerate(funcs): + #f = func() + f = func + model = KernelReg(endog=[f.y], exog=[f.x], reg_type='ll', + var_type='c', bw='cv_ls') + mean, mfx = model.fit() + ax = fig.add_subplot(2, 2, i+1) + f.plot(ax=ax) + ax.plot(f.x, mean, color='r', lw=2, label='est. mean') + ax.legend(loc='upper left') + res.append((model, mean, mfx)) + + fig.suptitle('Kernel Regression') + fig.show() diff --git a/statsmodels/examples/ex_kernel_regression_sigtest.py b/statsmodels/examples/ex_kernel_regression_sigtest.py new file mode 100644 index 0000000..985c321 --- /dev/null +++ b/statsmodels/examples/ex_kernel_regression_sigtest.py @@ -0,0 +1,108 @@ +# -*- coding: utf-8 -*- +"""Kernel Regression and Significance Test + +Warning: SLOW, 11 minutes on my computer + +Created on Thu Jan 03 20:20:47 2013 + +Author: Josef Perktold + +results - this version +---------------------- + +>>> exec(open('ex_kernel_regression_censored1.py').read()) +bw +[ 0.3987821 0.50933458] +[0.39878209999999997, 0.50933457999999998] + +sig_test - default +Not Significant +pvalue +0.11 +test statistic 0.000434305313291 +bootstrap critical values +[ 0.00043875 0.00046808 0.0005064 0.00054151] + +sig_test - pivot=True, nboot=200, nested_res=50 +pvalue +0.01 +test statistic 6.17877171579 +bootstrap critical values +[ 5.5658345 5.74761076 5.87386858 6.46012041] +times: 8.34599995613 20.6909999847 666.373999834 + +""" + +from __future__ import print_function +import time + +import numpy as np +import statsmodels.nonparametric.api as nparam +import statsmodels.nonparametric.kernel_regression as smkr + +if __name__ == '__main__': + t0 = time.time() + #example from test file + nobs = 200 + np.random.seed(1234) + C1 = np.random.normal(size=(nobs, )) + C2 = np.random.normal(2, 1, size=(nobs, )) + noise = np.random.normal(size=(nobs, )) + Y = 0.3 +1.2 * C1 - 0.9 * C2 + noise + #self.write2file('RegData.csv', (Y, C1, C2)) + + #CODE TO PRODUCE BANDWIDTH ESTIMATION IN R + #library(np) + #data <- read.csv('RegData.csv', header=FALSE) + #bw <- npregbw(formula=data$V1 ~ data$V2 + data$V3, + # bwmethod='cv.aic', regtype='lc') + model = nparam.KernelReg(endog=[Y], exog=[C1, C2], + reg_type='lc', var_type='cc', bw='aic') + mean, marg = model.fit() + #R_bw = [0.4017893, 0.4943397] # Bandwidth obtained in R + bw_expected = [0.3987821, 0.50933458] + #npt.assert_allclose(model.bw, bw_expected, rtol=1e-3) + print('bw') + print(model.bw) + print(bw_expected) + + print('\nsig_test - default') + print(model.sig_test([1], nboot=100)) + t1 = time.time() + res0 = smkr.TestRegCoefC(model, [1]) + print('pvalue') + print((res0.t_dist >= res0.test_stat).mean()) + print('test statistic', res0.test_stat) + print('bootstrap critical values') + probs = np.array([0.9, 0.95, 0.975, 0.99]) + bsort0 = np.sort(res0.t_dist) + nrep0 = len(bsort0) + print(bsort0[(probs * nrep0).astype(int)]) + + t2 = time.time() + print('\nsig_test - pivot=True, nboot=200, nested_res=50') + res1 = smkr.TestRegCoefC(model, [1], pivot=True, nboot=200, nested_res=50) + print('pvalue') + print((res1.t_dist >= res1.test_stat).mean()) + print('test statistic', res1.test_stat) + print('bootstrap critical values') + probs = np.array([0.9, 0.95, 0.975, 0.99]) + bsort1 = np.sort(res1.t_dist) + nrep1 = len(bsort1) + print(bsort1[(probs * nrep1).astype(int)]) + t3 = time.time() + + print('times:', t1-t0, t2-t1, t3-t2) + + +# import matplotlib.pyplot as plt +# fig = plt.figure() +# ax = fig.add_subplot(1,1,1) +# ax.plot(x, y, 'o', alpha=0.5) +# ax.plot(x, y_cens, 'o', alpha=0.5) +# ax.plot(x, y_true, lw=2, label='DGP mean') +# ax.plot(x, sm_mean, lw=2, label='model 0 mean') +# ax.plot(x, mean2, lw=2, label='model 2 mean') +# ax.legend() +# +# plt.show() diff --git a/statsmodels/examples/ex_kernel_semilinear_dgp.py b/statsmodels/examples/ex_kernel_semilinear_dgp.py new file mode 100644 index 0000000..33aba7d --- /dev/null +++ b/statsmodels/examples/ex_kernel_semilinear_dgp.py @@ -0,0 +1,129 @@ +# -*- coding: utf-8 -*- +""" + +Created on Sun Jan 06 09:50:54 2013 + +Author: Josef Perktold +""" + +from __future__ import print_function + + +if __name__ == '__main__': + + import numpy as np + import matplotlib.pyplot as plt + #from statsmodels.nonparametric.api import KernelReg + import statsmodels.sandbox.nonparametric.kernel_extras as smke + import statsmodels.sandbox.nonparametric.dgp_examples as dgp + + class UnivariateFunc1a(dgp.UnivariateFunc1): + + def het_scale(self, x): + return 0.5 + + seed = np.random.randint(999999) + #seed = 430973 + #seed = 47829 + seed = 648456 #good seed for het_scale = 0.5 + print(seed) + np.random.seed(seed) + + nobs, k_vars = 300, 3 + x = np.random.uniform(-2, 2, size=(nobs, k_vars)) + xb = x.sum(1) / 3 #beta = [1,1,1] + + k_vars_lin = 2 + x2 = np.random.uniform(-2, 2, size=(nobs, k_vars_lin)) + + funcs = [#dgp.UnivariateFanGijbels1(), + #dgp.UnivariateFanGijbels2(), + #dgp.UnivariateFanGijbels1EU(), + #dgp.UnivariateFanGijbels2(distr_x=stats.uniform(-2, 4)) + UnivariateFunc1a(x=xb) + ] + + res = [] + fig = plt.figure() + for i,func in enumerate(funcs): + #f = func() + f = func + y = f.y + x2.sum(1) + model = smke.SemiLinear(y, x2, x, 'ccc', k_vars_lin) + mean, mfx = model.fit() + ax = fig.add_subplot(1, 1, i+1) + f.plot(ax=ax) + xb_est = np.dot(model.exog, model.b) + sortidx = np.argsort(xb_est) #f.x) + ax.plot(f.x[sortidx], mean[sortidx], 'o', color='r', lw=2, label='est. mean') +# ax.plot(f.x, mean0, color='g', lw=2, label='est. mean') + ax.legend(loc='upper left') + res.append((model, mean, mfx)) + + print('beta', model.b) + print('scale - est', (y - (xb_est+mean)).std()) + print('scale - dgp realised, true', (y - (f.y_true + x2.sum(1))).std(), \ + 2 * f.het_scale(1)) + fittedvalues = xb_est + mean + resid = np.squeeze(model.endog) - fittedvalues + print('corrcoef(fittedvalues, resid)', np.corrcoef(fittedvalues, resid)[0,1]) + print('variance of components, var and as fraction of var(y)') + print('fitted values', fittedvalues.var(), fittedvalues.var() / y.var()) + print('linear ', xb_est.var(), xb_est.var() / y.var()) + print('nonparametric', mean.var(), mean.var() / y.var()) + print('residual ', resid.var(), resid.var() / y.var()) + print('\ncovariance decomposition fraction of var(y)') + print(np.cov(fittedvalues, resid) / model.endog.var(ddof=1)) + print('sum', (np.cov(fittedvalues, resid) / model.endog.var(ddof=1)).sum()) + print('\ncovariance decomposition, xb, m, resid as fraction of var(y)') + print(np.cov(np.column_stack((xb_est, mean, resid)), rowvar=False) / model.endog.var(ddof=1)) + + fig.suptitle('Kernel Regression') + fig.show() + + alpha = 0.7 + fig = plt.figure() + ax = fig.add_subplot(1, 1, 1) + ax.plot(f.x[sortidx], f.y[sortidx], 'o', color='b', lw=2, alpha=alpha, label='observed') + ax.plot(f.x[sortidx], f.y_true[sortidx], 'o', color='g', lw=2, alpha=alpha, label='dgp. mean') + ax.plot(f.x[sortidx], mean[sortidx], 'o', color='r', lw=2, alpha=alpha, label='est. mean') + ax.legend(loc='upper left') + + sortidx = np.argsort(xb_est + mean) + fig = plt.figure() + ax = fig.add_subplot(1, 1, 1) + ax.plot(f.x[sortidx], y[sortidx], 'o', color='b', lw=2, alpha=alpha, label='observed') + ax.plot(f.x[sortidx], f.y_true[sortidx], 'o', color='g', lw=2, alpha=alpha, label='dgp. mean') + ax.plot(f.x[sortidx], (xb_est + mean)[sortidx], 'o', color='r', lw=2, alpha=alpha, label='est. mean') + ax.legend(loc='upper left') + ax.set_title('Semilinear Model - observed and total fitted') + + fig = plt.figure() +# ax = fig.add_subplot(1, 2, 1) +# ax.plot(f.x, f.y, 'o', color='b', lw=2, alpha=alpha, label='observed') +# ax.plot(f.x, f.y_true, 'o', color='g', lw=2, alpha=alpha, label='dgp. mean') +# ax.plot(f.x, mean, 'o', color='r', lw=2, alpha=alpha, label='est. mean') +# ax.legend(loc='upper left') + sortidx0 = np.argsort(xb) + ax = fig.add_subplot(1, 2, 1) + ax.plot(f.y[sortidx0], 'o', color='b', lw=2, alpha=alpha, label='observed') + ax.plot(f.y_true[sortidx0], 'o', color='g', lw=2, alpha=alpha, label='dgp. mean') + ax.plot(mean[sortidx0], 'o', color='r', lw=2, alpha=alpha, label='est. mean') + ax.legend(loc='upper left') + ax.set_title('Single Index Model (sorted by true xb)') + + ax = fig.add_subplot(1, 2, 2) + ax.plot(y - xb_est, 'o', color='b', lw=2, alpha=alpha, label='observed') + ax.plot(f.y_true, 'o', color='g', lw=2, alpha=alpha, label='dgp. mean') + ax.plot(mean, 'o', color='r', lw=2, alpha=alpha, label='est. mean') + ax.legend(loc='upper left') + ax.set_title('Single Index Model (nonparametric)') + + plt.figure() + plt.plot(y, xb_est+mean, '.') + plt.title('observed versus fitted values') + + plt.show() + + + diff --git a/statsmodels/examples/ex_kernel_singleindex_dgp.py b/statsmodels/examples/ex_kernel_singleindex_dgp.py new file mode 100644 index 0000000..f6eb9e3 --- /dev/null +++ b/statsmodels/examples/ex_kernel_singleindex_dgp.py @@ -0,0 +1,93 @@ +# -*- coding: utf-8 -*- +""" + +Created on Sun Jan 06 09:50:54 2013 + +Author: Josef Perktold +""" + +from __future__ import print_function + + +if __name__ == '__main__': + + import numpy as np + import matplotlib.pyplot as plt + #from statsmodels.nonparametric.api import KernelReg + import statsmodels.sandbox.nonparametric.kernel_extras as smke + import statsmodels.sandbox.nonparametric.dgp_examples as dgp + + class UnivariateFunc1a(dgp.UnivariateFunc1): + + def het_scale(self, x): + return 0.5 + + seed = np.random.randint(999999) + #seed = 430973 + #seed = 47829 + seed = 648456 #good seed for het_scale = 0.5 + print(seed) + np.random.seed(seed) + + nobs, k_vars = 300, 3 + x = np.random.uniform(-2, 2, size=(nobs, k_vars)) + xb = x.sum(1) / 3 #beta = [1,1,1] + + funcs = [#dgp.UnivariateFanGijbels1(), + #dgp.UnivariateFanGijbels2(), + #dgp.UnivariateFanGijbels1EU(), + #dgp.UnivariateFanGijbels2(distr_x=stats.uniform(-2, 4)) + UnivariateFunc1a(x=xb) + ] + + res = [] + fig = plt.figure() + for i,func in enumerate(funcs): + #f = func() + f = func +# mod0 = smke.SingleIndexModel(endog=[f.y], exog=[xb], #reg_type='ll', +# var_type='c')#, bw='cv_ls') +# mean0, mfx0 = mod0.fit() + model = smke.SingleIndexModel(endog=[f.y], exog=x, #reg_type='ll', + var_type='ccc')#, bw='cv_ls') + mean, mfx = model.fit() + ax = fig.add_subplot(1, 1, i+1) + f.plot(ax=ax) + xb_est = np.dot(model.exog, model.b) + sortidx = np.argsort(xb_est) #f.x) + ax.plot(f.x[sortidx], mean[sortidx], 'o', color='r', lw=2, label='est. mean') +# ax.plot(f.x, mean0, color='g', lw=2, label='est. mean') + ax.legend(loc='upper left') + res.append((model, mean, mfx)) + + fig.suptitle('Kernel Regression') + fig.show() + + alpha = 0.7 + fig = plt.figure() + ax = fig.add_subplot(1, 1, 1) + ax.plot(f.x[sortidx], f.y[sortidx], 'o', color='b', lw=2, alpha=alpha, label='observed') + ax.plot(f.x[sortidx], f.y_true[sortidx], 'o', color='g', lw=2, alpha=alpha, label='dgp. mean') + ax.plot(f.x[sortidx], mean[sortidx], 'o', color='r', lw=2, alpha=alpha, label='est. mean') + ax.legend(loc='upper left') + + fig = plt.figure() +# ax = fig.add_subplot(1, 2, 1) +# ax.plot(f.x, f.y, 'o', color='b', lw=2, alpha=alpha, label='observed') +# ax.plot(f.x, f.y_true, 'o', color='g', lw=2, alpha=alpha, label='dgp. mean') +# ax.plot(f.x, mean, 'o', color='r', lw=2, alpha=alpha, label='est. mean') +# ax.legend(loc='upper left') + sortidx0 = np.argsort(xb) + ax = fig.add_subplot(1, 2, 1) + ax.plot(f.y[sortidx0], 'o', color='b', lw=2, alpha=alpha, label='observed') + ax.plot(f.y_true[sortidx0], 'o', color='g', lw=2, alpha=alpha, label='dgp. mean') + ax.plot(mean[sortidx0], 'o', color='r', lw=2, alpha=alpha, label='est. mean') + ax.legend(loc='upper left') + ax.set_title('Single Index Model (sorted by true xb)') + ax = fig.add_subplot(1, 2, 2) + ax.plot(f.y[sortidx], 'o', color='b', lw=2, alpha=alpha, label='observed') + ax.plot(f.y_true[sortidx], 'o', color='g', lw=2, alpha=alpha, label='dgp. mean') + ax.plot(mean[sortidx], 'o', color='r', lw=2, alpha=alpha, label='est. mean') + ax.legend(loc='upper left') + ax.set_title('Single Index Model (sorted by estimated xb)') + plt.show() diff --git a/statsmodels/examples/ex_kernel_test_functional.py b/statsmodels/examples/ex_kernel_test_functional.py new file mode 100644 index 0000000..b05e0b4 --- /dev/null +++ b/statsmodels/examples/ex_kernel_test_functional.py @@ -0,0 +1,71 @@ +# -*- coding: utf-8 -*- +""" + +Created on Tue Jan 08 19:03:20 2013 + +Author: Josef Perktold +""" + +from __future__ import print_function + + +if __name__ == '__main__': + + import numpy as np + + from statsmodels.regression.linear_model import OLS + #from statsmodels.nonparametric.api import KernelReg + import statsmodels.sandbox.nonparametric.kernel_extras as smke + + seed = np.random.randint(999999) + #seed = 661176 + print(seed) + np.random.seed(seed) + + sig_e = 0.5 #0.1 + nobs, k_vars = 200, 1 + x = np.random.uniform(-2, 2, size=(nobs, k_vars)) + x.sort() + + order = 3 + exog = x**np.arange(order + 1) + beta = np.array([1, 1, 0.1, 0.0])[:order+1] # 1. / np.arange(1, order + 2) + y_true = np.dot(exog, beta) + y = y_true + sig_e * np.random.normal(size=nobs) + endog = y + + print('DGP') + print('nobs=%d, beta=%r, sig_e=%3.1f' % (nobs, beta, sig_e)) + + mod_ols = OLS(endog, exog[:,:2]) + res_ols = mod_ols.fit() + #'cv_ls'[1000, 0.5][0.01, 0.45] + tst = smke.TestFForm(endog, exog[:,:2], bw=[0.01, 0.45], var_type='cc', + fform=lambda x,p: mod_ols.predict(p,x), + estimator=lambda y,x: OLS(y,x).fit().params, + nboot=1000) + + print('bw', tst.bw) + print('tst.test_stat', tst.test_stat) + print(tst.sig) + print('tst.boots_results mean, min, max', (tst.boots_results.mean(), + tst.boots_results.min(), + tst.boots_results.max())) + print('lower tail bootstrap p-value', (tst.boots_results < tst.test_stat).mean()) + print('upper tail bootstrap p-value', (tst.boots_results >= tst.test_stat).mean()) + from scipy import stats + print('aymp.normal p-value (2-sided)', stats.norm.sf(np.abs(tst.test_stat))*2) + print('aymp.normal p-value (upper)', stats.norm.sf(tst.test_stat)) + + do_plot=True + if do_plot: + import matplotlib.pyplot as plt + plt.figure() + plt.plot(x, y, '.') + plt.plot(x, res_ols.fittedvalues) + plt.title('OLS fit') + + plt.figure() + plt.hist(tst.boots_results.ravel(), bins=20) + plt.title('bootstrap histogram or test statistic') + plt.show() diff --git a/statsmodels/examples/ex_kernel_test_functional_li_wang.py b/statsmodels/examples/ex_kernel_test_functional_li_wang.py new file mode 100644 index 0000000..fab9365 --- /dev/null +++ b/statsmodels/examples/ex_kernel_test_functional_li_wang.py @@ -0,0 +1,141 @@ +# -*- coding: utf-8 -*- +"""Example TestFForm with Li Wang DGP1 + +Created on Tue Jan 08 19:03:20 2013 + +Author: Josef Perktold + + +trying to replicate some examples in +Li, Q., and Suojin Wang. 1998. "A Simple Consistent Bootstrap Test for a + Parametric Regression Function." + Journal of Econometrics 87 (1) (November): 145-165. + doi:10.1016/S0304-4076(98)00011-6. + +currently DGP1 + + + + +Monte Carlo with 100 replications +--------------------------------- +results +598948 +time 11.1642833312 +[-0.72505981 0.26514944 0.45681704] +[ 0.74884796 0.22005569 0.3004892 ] +reject at [0.2, 0.1, 0.05] (row 1: normal, row 2: bootstrap) +[[ 0.55 0.24 0.01] + [ 0.29 0.16 0.06]] +bw [ 0.11492364 0.11492364] +tst.test_stat -1.40274609515 +Not Significant +tst.boots_results min, max -2.03386582198 2.32562183511 +lower tail bootstrap p-value 0.077694235589 +aymp.normal p-value (2-sided) 0.160692566481 + +mean and std in Li and Wang for n=1 are -0.764 and 0.621 +results look reasonable now + +Power +----- +true model: quadratic, estimated model: linear +498198 +time 8.4588166674 +[ 0.50374364 0.3991975 0.25373434] +[ 1.21353172 0.28669981 0.25461368] +reject at [0.2, 0.1, 0.05] (row 1: normal, row 2: bootstrap) +[[ 0.66 0.78 0.82] + [ 0.46 0.61 0.74]] +bw [ 0.11492364 0.11492364] +tst.test_stat 0.505426717024 +Not Significant +tst.boots_results min, max -1.67050998463 3.39835350718 +lower tail bootstrap p-value 0.892230576441 +upper tail bootstrap p-value 0.107769423559 +aymp.normal p-value (2-sided) 0.613259157709 +aymp.normal p-value (upper) 0.306629578855 + + +""" + +from __future__ import print_function + + +if __name__ == '__main__': + + import time + + import numpy as np + from scipy import stats + + from statsmodels.regression.linear_model import OLS + #from statsmodels.nonparametric.api import KernelReg + import statsmodels.sandbox.nonparametric.kernel_extras as smke + + seed = np.random.randint(999999) + #seed = 661176 + print(seed) + np.random.seed(seed) + + sig_e = 0.1 #0.5 #0.1 + nobs, k_vars = 100, 1 + + t0 = time.time() + + b_res = [] + for i in range(100): + x = np.random.uniform(0, 1, size=(nobs, k_vars)) + x.sort(0) + + order = 2 + exog = x**np.arange(1, order + 1) + beta = np.array([2, -0.2])[:order+1-1] # 1. / np.arange(1, order + 2) + y_true = np.dot(exog, beta) + y = y_true + sig_e * np.random.normal(size=nobs) + endog = y + + mod_ols = OLS(endog, exog[:,:1]) + #res_ols = mod_ols.fit() + #'cv_ls'[1000, 0.5] + bw_lw = [1./np.sqrt(12.) * nobs**(-0.2)]*2 #(-1. / 5.) + tst = smke.TestFForm(endog, exog[:,:1], bw=bw_lw, var_type='c', + fform=lambda x,p: mod_ols.predict(p,x), + estimator=lambda y,x: OLS(y,x).fit().params, + nboot=399) + b_res.append([tst.test_stat, + stats.norm.sf(tst.test_stat), + (tst.boots_results > tst.test_stat).mean()]) + t1 = time.time() + b_res = np.asarray(b_res) + + print('time', (t1 - t0) / 60.) + print(b_res.mean(0)) + print(b_res.std(0)) + print('reject at [0.2, 0.1, 0.05] (row 1: normal, row 2: bootstrap)') + print((b_res[:,1:,None] >= [0.2, 0.1, 0.05]).mean(0)) + + print('bw', tst.bw) + print('tst.test_stat', tst.test_stat) + print(tst.sig) + print('tst.boots_results min, max', tst.boots_results.min(), tst.boots_results.max()) + print('lower tail bootstrap p-value', (tst.boots_results < tst.test_stat).mean()) + print('upper tail bootstrap p-value', (tst.boots_results >= tst.test_stat).mean()) + from scipy import stats + print('aymp.normal p-value (2-sided)', stats.norm.sf(np.abs(tst.test_stat))*2) + print('aymp.normal p-value (upper)', stats.norm.sf(tst.test_stat)) + + res_ols = mod_ols.fit() + + do_plot=True + if do_plot: + import matplotlib.pyplot as plt + plt.figure() + plt.plot(x, y, '.') + plt.plot(x, res_ols.fittedvalues) + plt.title('OLS fit') + + plt.figure() + plt.hist(tst.boots_results.ravel(), bins=20) + plt.title('bootstrap histogram or test statistic') + plt.show() diff --git a/statsmodels/examples/ex_lowess.py b/statsmodels/examples/ex_lowess.py new file mode 100644 index 0000000..40d9275 --- /dev/null +++ b/statsmodels/examples/ex_lowess.py @@ -0,0 +1,75 @@ +# -*- coding: utf-8 -*- +""" +Created on Mon Oct 31 15:26:06 2011 + +Author: Chris Jordan Squire + +extracted from test suite by josef-pktd +""" + +from __future__ import print_function +import numpy as np +import matplotlib.pyplot as plt +import statsmodels.api as sm + +lowess = sm.nonparametric.lowess + +# this is just to check direct import +import statsmodels.nonparametric.smoothers_lowess +statsmodels.nonparametric.smoothers_lowess.lowess + +x = np.arange(20.) + +#standard normal noise +noise = np.array([-0.76741118, -0.30754369, + 0.39950921, -0.46352422, -1.67081778, + 0.6595567 , 0.66367639, -2.04388585, + 0.8123281 , 1.45977518, + 1.21428038, 1.29296866, 0.78028477, + -0.2402853 , -0.21721302, + 0.24549405, 0.25987014, -0.90709034, + -1.45688216, -0.31780505]) +y = x + noise + +expected_lowess = np.array([[ 0. , -0.58337912], + [ 1. , 0.61951246], + [ 2. , 1.82221628], + [ 3. , 3.02536876], + [ 4. , 4.22667951], + [ 5. , 5.42387723], + [ 6. , 6.60834945], + [ 7. , 7.7797691 ], + [ 8. , 8.91824348], + [ 9. , 9.94997506], + [ 10. , 10.89697569], + [ 11. , 11.78746276], + [ 12. , 12.62356492], + [ 13. , 13.41538492], + [ 14. , 14.15745254], + [ 15. , 14.92343948], + [ 16. , 15.70019862], + [ 17. , 16.48167846], + [ 18. , 17.26380699], + [ 19. , 18.0466769 ]]) + +actual_lowess = lowess(y, x) +print(actual_lowess) +print(np.max(np.abs(actual_lowess-expected_lowess))) + +plt.plot(y, 'o') +plt.plot(actual_lowess[:,1]) +plt.plot(expected_lowess[:,1]) + +import os.path +import statsmodels.nonparametric.tests.results +rpath = os.path.split(statsmodels.nonparametric.tests.results.__file__)[0] +rfile = os.path.join(rpath, 'test_lowess_frac.csv') +test_data = np.genfromtxt(open(rfile, 'rb'), + delimiter = ',', names = True) +expected_lowess_23 = np.array([test_data['x'], test_data['out_2_3']]).T +expected_lowess_15 = np.array([test_data['x'], test_data['out_1_5']]).T + +actual_lowess_23 = lowess(test_data['y'], test_data['x'] ,frac = 2./3) +actual_lowess_15 = lowess(test_data['y'], test_data['x'] ,frac = 1./5) + +#plt.show() diff --git a/statsmodels/examples/ex_misc_tarma.py b/statsmodels/examples/ex_misc_tarma.py new file mode 100644 index 0000000..aefd8d8 --- /dev/null +++ b/statsmodels/examples/ex_misc_tarma.py @@ -0,0 +1,76 @@ +# -*- coding: utf-8 -*- +""" + +Created on Wed Jul 03 23:01:44 2013 + +Author: Josef Perktold +""" + +from __future__ import print_function +import numpy as np + +from statsmodels.tsa.arima_process import arma_generate_sample, ArmaProcess +from statsmodels.miscmodels.tmodel import TArma +from statsmodels.tsa.arima_model import ARMA + +nobs = 500 +ar = [1, -0.6, -0.1] +ma = [1, 0.7] +dist = lambda n: np.random.standard_t(3, size=n) +np.random.seed(8659567) +x = arma_generate_sample(ar, ma, nobs, sigma=1, distrvs=dist, + burnin=500) + +mod = TArma(x) +order = (2, 1) +res = mod.fit(order=order) +res2 = mod.fit_mle(order=order, start_params=np.r_[res[0], 5, 1], method='nm') + +print(res[0]) +proc = ArmaProcess.from_coeffs(res[0][:order[0]], res[0][:order[1]]) + +print(ar, ma) +proc.nobs = nobs +# TODO: bug nobs is None, not needed ?, used in ArmaProcess.__repr__ +print(proc.ar, proc.ma) + +print(proc.ar_roots(), proc.ma_roots()) + +from statsmodels.tsa.arma_mle import Arma +modn = Arma(x) +resn = modn.fit_mle(order=order) + +moda = ARMA(x, order=order) +resa = moda.fit( trend='nc') + +print('\nparameter estimates') +print('ls ', res[0]) +print('norm', resn.params) +print('t ', res2.params) +print('A ', resa.params) + +print('\nstandard deviation of parameter estimates') +#print 'ls ', res[0] #TODO: not available yet +print('norm', resn.bse) +print('t ', res2.bse) +print('A ', resa.bse) +print('A/t-1', resa.bse / res2.bse[:3] - 1) + +print('other bse') +print(resn.bsejac) +print(resn.bsejhj) +print(res2.bsejac) +print(res2.bsejhj) + +print(res2.t_test(np.eye(len(res2.params)))) + +# TArma has no fittedvalues and resid +# TODO: check if lag is correct or if fitted `x-resid` is shifted +resid = res2.model.geterrors(res2.params) +fv = res[2]['fvec'] #resid returned from leastsq? + +import matplotlib.pyplot as plt +plt.plot(x, 'o', alpha=0.5) +plt.plot(x-resid) +plt.plot(x-fv) +#plt.show() diff --git a/statsmodels/examples/ex_misc_tmodel.py b/statsmodels/examples/ex_misc_tmodel.py new file mode 100644 index 0000000..93fbad3 --- /dev/null +++ b/statsmodels/examples/ex_misc_tmodel.py @@ -0,0 +1,85 @@ + +from __future__ import print_function +import numpy as np + +from scipy import stats, special, optimize +import statsmodels.api as sm +from statsmodels.miscmodels import TLinearModel + +#Example: +#np.random.seed(98765678) +nobs = 50 +nvars = 6 +df = 3 +rvs = np.random.randn(nobs, nvars-1) +data_exog = sm.add_constant(rvs, prepend=False) +xbeta = 0.9 + 0.1*rvs.sum(1) +data_endog = xbeta + 0.1*np.random.standard_t(df, size=nobs) +print('variance of endog:', data_endog.var()) +print('true parameters:', [0.1]*nvars + [0.9]) + +res_ols = sm.OLS(data_endog, data_exog).fit() +print('\nResults with ols') +print('----------------') +print(res_ols.scale) +print(np.sqrt(res_ols.scale)) +print(res_ols.params) +print(res_ols.bse) +kurt = stats.kurtosis(res_ols.resid) +df_fromkurt = 6./kurt + 4 +print('df_fromkurt from ols residuals', df_fromkurt) +print(stats.t.stats(df_fromkurt, moments='mvsk')) +print(stats.t.stats(df, moments='mvsk')) + +modp = TLinearModel(data_endog, data_exog) +start_value = 0.1*np.ones(data_exog.shape[1]+2) +#start_value = np.zeros(data_exog.shape[1]+2) +#start_value[:nvars] = sm.OLS(data_endog, data_exog).fit().params +start_value[:nvars] = res_ols.params +start_value[-2] = df_fromkurt #10 +start_value[-1] = np.sqrt(res_ols.scale) #0.5 +modp.start_params = start_value + +#adding fixed parameters + +fixdf = np.nan * np.zeros(modp.start_params.shape) +fixdf[-2] = 5 + +fixone = 0 +if fixone: + modp.fixed_params = fixdf + modp.fixed_paramsmask = np.isnan(fixdf) + modp.start_params = modp.start_params[modp.fixed_paramsmask] +else: + modp.fixed_params = None + modp.fixed_paramsmask = None + + +print('\nResults with TLinearModel') +print('-------------------------') +resp = modp.fit(start_params = modp.start_params, disp=1, method='nm', + maxfun=10000, maxiter=5000)#'newton') +#resp = modp.fit(start_params = modp.start_params, disp=1, method='newton') + +print('using Nelder-Mead') +print(resp.params) +print(resp.bse) +resp2 = modp.fit(start_params = resp.params, method='Newton') +print('using Newton') +print(resp2.params) +print(resp2.bse) + +from statsmodels.tools.numdiff import approx_fprime, approx_hess + +hb=-approx_hess(modp.start_params, modp.loglike, epsilon=-1e-4) +tmp = modp.loglike(modp.start_params) +print(tmp.shape) +print('eigenvalues of numerical Hessian') +print(np.linalg.eigh(np.linalg.inv(hb))[0]) + +#store_params is only available in original test script +##pp=np.array(store_params) +##print pp.min(0) +##print pp.max(0) + + diff --git a/statsmodels/examples/ex_multivar_kde.py b/statsmodels/examples/ex_multivar_kde.py new file mode 100644 index 0000000..0606b1e --- /dev/null +++ b/statsmodels/examples/ex_multivar_kde.py @@ -0,0 +1,56 @@ + +from __future__ import print_function +import numpy as np +import matplotlib.pyplot as plt +from matplotlib import cm +from mpl_toolkits.mplot3d import axes3d + +import statsmodels.api as sm + +""" +This example illustrates the nonparametric estimation of a +bivariate bi-modal distribution that is a mixture of two normal +distributions. + +author: George Panterov +""" +if __name__ == '__main__': + np.random.seed(123456) + + # generate the data + nobs = 500 + BW = 'cv_ml' + + mu1 = [3, 4] + mu2 = [6, 1] + cov1 = np.asarray([[1, 0.7], [0.7, 1]]) + cov2 = np.asarray([[1, -0.7], [-0.7, 1]]) + + ix = np.random.uniform(size=nobs) > 0.5 + V = np.random.multivariate_normal(mu1, cov1, size=nobs) + V[ix, :] = np.random.multivariate_normal(mu2, cov2, size=nobs)[ix, :] + + x = V[:, 0] + y = V[:, 1] + + dens = sm.nonparametric.KDEMultivariate(data=[x, y], var_type='cc', bw=BW, + defaults=sm.nonparametric.EstimatorSettings(efficient=True)) + + supportx = np.linspace(min(x), max(x), 60) + supporty = np.linspace(min(y), max(y), 60) + X, Y = np.meshgrid(supportx, supporty) + + edat = np.column_stack([X.ravel(), Y.ravel()]) + Z = dens.pdf(edat).reshape(X.shape) + + # plot + fig = plt.figure(1) + ax = fig.gca(projection='3d') + surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.jet, + linewidth=0, antialiased=False) + + fig.colorbar(surf, shrink=0.5, aspect=5) + plt.figure(2) + plt.imshow(Z) + + plt.show() diff --git a/statsmodels/examples/ex_nearest_corr.py b/statsmodels/examples/ex_nearest_corr.py new file mode 100644 index 0000000..3fcf413 --- /dev/null +++ b/statsmodels/examples/ex_nearest_corr.py @@ -0,0 +1,100 @@ +# -*- coding: utf-8 -*- +"""Find near positive definite correlation and covariance matrices + +Created on Sun Aug 19 15:25:07 2012 +Author: Josef Perktold + + +TODO: + add examples for cov_nearest from script log + +Notes +----- +We are looking at eigenvalues before and after the conversion to psd matrix. +As distance measure for how close the change in the matrix is, we consider +the sum of squared differences (Frobenious norm without taking the square root) + +""" + +from __future__ import print_function +import numpy as np +from statsmodels.stats.correlation_tools import ( + corr_nearest, corr_clipped, cov_nearest) + +examples = ['all'] + +if 'all' in examples: + # x0 is positive definite + x0 = np.array([[1, -0.2, -0.9], [-0.2, 1, -0.2], [-0.9, -0.2, 1]]) + # x has negative eigenvalues, not definite + x = np.array([[1, -0.9, -0.9], [-0.9, 1, -0.9], [-0.9, -0.9, 1]]) + #x = np.array([[1, 0.2, 0.2], [0.2, 1, 0.2], [0.2, 0.2, 1]]) + + n_fact = 2 + + print('evals original', np.linalg.eigvalsh(x)) + y = corr_nearest(x, n_fact=100) + print('evals nearest', np.linalg.eigvalsh(y)) + print(y) + + y = corr_nearest(x, n_fact=100, threshold=1e-16) + print('evals nearest', np.linalg.eigvalsh(y)) + print(y) + + y = corr_clipped(x, threshold=1e-16) + print('evals clipped', np.linalg.eigvalsh(y)) + print(y) + + np.set_printoptions(precision=4) + print('\nMini Monte Carlo') + # we are simulating a uniformly distributed symmetric matrix + # and find close positive definite matrix + # original can be far away from positive definite, + # then original and converted matrices can be far apart in norm + # results are printed for visual inspection of different cases + + k_vars = 5 + diag_idx = np.arange(k_vars) + for ii in range(10): + print() + x = np.random.uniform(-1, 1, size=(k_vars, k_vars)) + x = (x + x.T) * 0.5 + x[diag_idx, diag_idx] = 1 + #x_std = np.sqrt(np.diag(x)) + #x = x / x_std / x_std[:,None] + print() + print(np.sort(np.linalg.eigvals(x)), 'original') + + yn = corr_nearest(x, threshold=1e-12, n_fact=200) + print(np.sort(np.linalg.eigvals(yn)), ((yn - x)**2).sum(), 'nearest') + + yc = corr_clipped(x, threshold=1e-12) + print(np.sort(np.linalg.eigvals(yc)), ((yc - x)**2).sum(), 'clipped') + + import time + t0 = time.time() + for _ in range(100): + corr_nearest(x, threshold=1e-15, n_fact=100) + + t1 = time.time() + for _ in range(1000): + corr_clipped(x, threshold=1e-15) + t2 = time.time() + + print('\ntime (nearest, clipped):', t1 - t0, t2 - t1) + +if 'all' in examples: + # example for test case against R + x2 = np.array([ 1, 0.477, 0.644, 0.478, 0.651, 0.826, + 0.477, 1, 0.516, 0.233, 0.682, 0.75, + 0.644, 0.516, 1, 0.599, 0.581, 0.742, + 0.478, 0.233, 0.599, 1, 0.741, 0.8, + 0.651, 0.682, 0.581, 0.741, 1, 0.798, + 0.826, 0.75, 0.742, 0.8, 0.798, 1]).reshape(6,6) + + y1 = corr_nearest(x2, threshold=1e-15, n_fact=200) + y2 = corr_clipped(x2, threshold=1e-15) + print('\nmatrix 2') + print(np.sort(np.linalg.eigvals(x2)), 'original') + print(np.sort(np.linalg.eigvals(y1)), ((y1 - x2)**2).sum(), 'nearest') + print(np.sort(np.linalg.eigvals(y1)), ((y2 - x2)**2).sum(), 'clipped') diff --git a/statsmodels/examples/ex_ols_robustcov.py b/statsmodels/examples/ex_ols_robustcov.py new file mode 100644 index 0000000..daeb138 --- /dev/null +++ b/statsmodels/examples/ex_ols_robustcov.py @@ -0,0 +1,64 @@ + +from __future__ import print_function +import numpy as np +from statsmodels.regression.linear_model import OLS, GLSAR +from statsmodels.tools.tools import add_constant +from statsmodels.datasets import macrodata +import statsmodels.regression.tests.results.results_macro_ols_robust as res + + +d2 = macrodata.load().data +g_gdp = 400*np.diff(np.log(d2['realgdp'])) +g_inv = 400*np.diff(np.log(d2['realinv'])) +exogg = add_constant(np.c_[g_gdp, d2['realint'][:-1]], prepend=False) +res_olsg = OLS(g_inv, exogg).fit() + + + +print(res_olsg.summary()) +res_hc0 = res_olsg.get_robustcov_results('HC1') +print('\n\n') +print(res_hc0.summary()) +print('\n\n') +res_hac4 = res_olsg.get_robustcov_results('HAC', maxlags=4, use_correction=True) +print(res_hac4.summary()) + + +print('\n\n') +tt = res_hac4.t_test(np.eye(len(res_hac4.params))) +print(tt.summary()) +print('\n\n') +print(tt.summary_frame()) + +res_hac4.use_t = False + +print('\n\n') +tt = res_hac4.t_test(np.eye(len(res_hac4.params))) +print(tt.summary()) +print('\n\n') +print(tt.summary_frame()) + +print(vars(res_hac4.f_test(np.eye(len(res_hac4.params))[:-1]))) + +print(vars(res_hac4.wald_test(np.eye(len(res_hac4.params))[:-1], use_f=True))) +print(vars(res_hac4.wald_test(np.eye(len(res_hac4.params))[:-1], use_f=False))) + +# new cov_type can be set in fit method of model + +mod_olsg = OLS(g_inv, exogg) +res_hac4b = mod_olsg.fit(cov_type='HAC', + cov_kwds=dict(maxlags=4, use_correction=True)) +print(res_hac4b.summary()) + +res_hc1b = mod_olsg.fit(cov_type='HC1') +print(res_hc1b.summary()) + +# force t-distribution +res_hc1c = mod_olsg.fit(cov_type='HC1', cov_kwds={'use_t':True}) +print(res_hc1c.summary()) + +# force t-distribution +decade = (d2['year'][1:] // 10).astype(int) # just make up a group variable +res_clu = mod_olsg.fit(cov_type='cluster', + cov_kwds={'groups':decade, 'use_t':True}) +print(res_clu.summary()) diff --git a/statsmodels/examples/ex_outliers_influence.py b/statsmodels/examples/ex_outliers_influence.py new file mode 100644 index 0000000..91d10a4 --- /dev/null +++ b/statsmodels/examples/ex_outliers_influence.py @@ -0,0 +1,122 @@ + +from __future__ import print_function +import numpy as np + +import statsmodels.stats.outliers_influence as oi + + +if __name__ == '__main__': + + import statsmodels.api as sm + + data = np.array('''\ + 64 57 8 + 71 59 10 + 53 49 6 + 67 62 11 + 55 51 8 + 58 50 7 + 77 55 10 + 57 48 9 + 56 42 10 + 51 42 6 + 76 61 12 + 68 57 9'''.split(), float).reshape(-1,3) + varnames = 'weight height age'.split() + + endog = data[:,0] + exog = sm.add_constant(data[:,2]) + + + res_ols = sm.OLS(endog, exog).fit() + + hh = (res_ols.model.exog * res_ols.model.pinv_wexog.T).sum(1) + x = res_ols.model.exog + hh_check = np.diag(np.dot(x, np.dot(res_ols.model.normalized_cov_params, x.T))) + + from numpy.testing import assert_almost_equal + assert_almost_equal(hh, hh_check, decimal=13) + + res = res_ols #alias + + #http://en.wikipedia.org/wiki/PRESS_statistic + #predicted residuals, leave one out predicted residuals + resid_press = res.resid / (1-hh) + ess_press = np.dot(resid_press, resid_press) + + sigma2_est = np.sqrt(res.mse_resid) #can be replace by different estimators of sigma + sigma_est = np.sqrt(sigma2_est) + resid_studentized = res.resid / sigma_est / np.sqrt(1 - hh) + #http://en.wikipedia.org/wiki/DFFITS: + dffits = resid_studentized * np.sqrt(hh / (1 - hh)) + + nobs, k_vars = res.model.exog.shape + #Belsley, Kuh and Welsch (1980) suggest a threshold for abs(DFFITS) + dffits_threshold = 2 * np.sqrt(k_vars/nobs) + + res_ols.df_modelwc = res_ols.df_model + 1 + n_params = res.model.exog.shape[1] + #http://en.wikipedia.org/wiki/Cook%27s_distance + cooks_d = res.resid**2 / sigma2_est / res_ols.df_modelwc * hh / (1 - hh)**2 + #or + #Eubank p.93, 94 + cooks_d2 = resid_studentized**2 / res_ols.df_modelwc * hh / (1 - hh) + #threshold if normal, also Wikipedia + from scipy import stats + alpha = 0.1 + #df looks wrong + print(stats.f.isf(1-alpha, n_params, res.df_resid)) + print(stats.f.sf(cooks_d, n_params, res.df_resid)) + + + print('Cooks Distance') + print(cooks_d) + print(cooks_d2) + + doplot = 0 + if doplot: + import matplotlib.pyplot as plt + fig = plt.figure() +# ax = fig.add_subplot(3,1,1) +# plt.plot(andrew_results.weights, 'o', label='rlm weights') +# plt.legend(loc='lower left') + ax = fig.add_subplot(3,1,2) + plt.plot(cooks_d, 'o', label="Cook's distance") + plt.legend(loc='upper left') + ax2 = fig.add_subplot(3,1,3) + plt.plot(resid_studentized, 'o', label='studentized_resid') + plt.plot(dffits, 'o', label='DFFITS') + leg = plt.legend(loc='lower left', fancybox=True) + leg.get_frame().set_alpha(0.5) #, fontsize='small') + ltext = leg.get_texts() # all the text.Text instance in the legend + plt.setp(ltext, fontsize='small') # the legend text fontsize + + + print(oi.reset_ramsey(res, degree=3)) + + #note, constant in last column + for i in range(1): + print(oi.variance_inflation_factor(res.model.exog, i)) + + infl = oi.OLSInfluence(res_ols) + print(infl.resid_studentized_external) + print(infl.resid_studentized_internal) + print(infl.summary_table()) + print(oi.summary_table(res, alpha=0.05)[0]) + +''' +>>> res.resid +array([ 4.28571429, 4. , 0.57142857, -3.64285714, + -4.71428571, 1.92857143, 10. , -6.35714286, + -11. , -1.42857143, 1.71428571, 4.64285714]) +>>> infl.hat_matrix_diag +array([ 0.10084034, 0.11764706, 0.28571429, 0.20168067, 0.10084034, + 0.16806723, 0.11764706, 0.08403361, 0.11764706, 0.28571429, + 0.33613445, 0.08403361]) +>>> infl.resid_press +array([ 4.76635514, 4.53333333, 0.8 , -4.56315789, + -5.24299065, 2.31818182, 11.33333333, -6.94036697, + -12.46666667, -2. , 2.58227848, 5.06880734]) +>>> infl.ess_press +465.98646628086374 +''' diff --git a/statsmodels/examples/ex_pairwise.py b/statsmodels/examples/ex_pairwise.py new file mode 100644 index 0000000..1bb5cb8 --- /dev/null +++ b/statsmodels/examples/ex_pairwise.py @@ -0,0 +1,204 @@ +# -*- coding: utf-8 -*- +""" + +Created on Sun Mar 24 10:26:39 2013 + +Author: Josef Perktold +""" + + +from __future__ import print_function +from statsmodels.compat.python import BytesIO, asbytes, StringIO +import numpy as np +from numpy.testing import assert_almost_equal, assert_equal + + +ss = '''\ + 43.9 1 1 + 39.0 1 2 + 46.7 1 3 + 43.8 1 4 + 44.2 1 5 + 47.7 1 6 + 43.6 1 7 + 38.9 1 8 + 43.6 1 9 + 40.0 1 10 + 89.8 2 1 + 87.1 2 2 + 92.7 2 3 + 90.6 2 4 + 87.7 2 5 + 92.4 2 6 + 86.1 2 7 + 88.1 2 8 + 90.8 2 9 + 89.1 2 10 + 68.4 3 1 + 69.3 3 2 + 68.5 3 3 + 66.4 3 4 + 70.0 3 5 + 68.1 3 6 + 70.6 3 7 + 65.2 3 8 + 63.8 3 9 + 69.2 3 10 + 36.2 4 1 + 45.2 4 2 + 40.7 4 3 + 40.5 4 4 + 39.3 4 5 + 40.3 4 6 + 43.2 4 7 + 38.7 4 8 + 40.9 4 9 + 39.7 4 10''' + +#idx Treatment StressReduction +ss2 = '''\ +1 mental 2 +2 mental 2 +3 mental 3 +4 mental 4 +5 mental 4 +6 mental 5 +7 mental 3 +8 mental 4 +9 mental 4 +10 mental 4 +11 physical 4 +12 physical 4 +13 physical 3 +14 physical 5 +15 physical 4 +16 physical 1 +17 physical 1 +18 physical 2 +19 physical 3 +20 physical 3 +21 medical 1 +22 medical 2 +23 medical 2 +24 medical 2 +25 medical 3 +26 medical 2 +27 medical 3 +28 medical 1 +29 medical 3 +30 medical 1''' + +ss3 = '''\ +1 24.5 +1 23.5 +1 26.4 +1 27.1 +1 29.9 +2 28.4 +2 34.2 +2 29.5 +2 32.2 +2 30.1 +3 26.1 +3 28.3 +3 24.3 +3 26.2 +3 27.8''' + +ss5 = '''\ +2 - 3 4.340 0.691 7.989 *** +2 - 1 4.600 0.951 8.249 *** +3 - 2 -4.340 -7.989 -0.691 *** +3 - 1 0.260 -3.389 3.909 - +1 - 2 -4.600 -8.249 -0.951 *** +1 - 3 -0.260 -3.909 3.389 ''' + +#accommodate recfromtxt for python 3.2, requires bytes +ss = asbytes(ss) +ss2 = asbytes(ss2) +ss3 = asbytes(ss3) +ss5 = asbytes(ss5) + +dta = np.recfromtxt(BytesIO(ss), names=("Rust","Brand","Replication")) +dta2 = np.recfromtxt(BytesIO(ss2), names = ("idx", "Treatment", "StressReduction")) +dta3 = np.recfromtxt(BytesIO(ss3), names = ("Brand", "Relief")) +dta5 = np.recfromtxt(BytesIO(ss5), names = ('pair', 'mean', 'lower', 'upper', 'sig'), delimiter='\t') +sas_ = dta5[[1,3,2]] + + +if __name__ == '__main__': + import statsmodels.stats.multicomp as multi #incomplete refactoring + + mc = multi.MultiComparison(dta['Rust'], dta['Brand']) + res = mc.tukeyhsd() + print(res[0]) + + mc2 = multi.MultiComparison(dta2['StressReduction'], dta2['Treatment']) + res2 = mc2.tukeyhsd() + print(res2[0]) + + mc2s = multi.MultiComparison(dta2['StressReduction'][3:29], dta2['Treatment'][3:29]) + res2s = mc2s.tukeyhsd() + print(res2s[0]) + res2s_001 = mc2s.tukeyhsd(alpha=0.01) + #R result + tukeyhsd2s = np.array([1.888889,0.8888889,-1,0.2658549,-0.5908785,-2.587133,3.511923,2.368656,0.5871331,0.002837638,0.150456,0.1266072]).reshape(3,4, order='F') + assert_almost_equal(res2s_001[1][4], tukeyhsd2s[:,1:3], decimal=3) + + mc3 = multi.MultiComparison(dta3['Relief'], dta3['Brand']) + res3 = mc3.tukeyhsd() + print(res3[0]) + +# for mci in [mc, mc2, mc3]: +# get_thsd(mci) + + from scipy import stats + print(mc2.allpairtest(stats.ttest_ind, method='b')[0]) + + '''same as SAS: + >>> np.var(mci.groupstats.groupdemean(), ddof=3) + 4.6773333333333351 + >>> var_ = np.var(mci.groupstats.groupdemean(), ddof=3) + >>> tukeyhsd(means, nobs, var_, df=None, alpha=0.05, q_crit=qsturng(0.95, 3, 12))[4] + array([[ 0.95263648, 8.24736352], + [-3.38736352, 3.90736352], + [-7.98736352, -0.69263648]]) + >>> tukeyhsd(means, nobs, var_, df=None, alpha=0.05, q_crit=3.77278)[4] + array([[ 0.95098508, 8.24901492], + [-3.38901492, 3.90901492], + [-7.98901492, -0.69098508]]) + ''' + + ss5 = '''\ + Comparisons significant at the 0.05 level are indicated by ***. + BRAND + Comparison Difference + Between + Means Simultaneous 95% Confidence Limits Sign. + 2 - 3 4.340 0.691 7.989 *** + 2 - 1 4.600 0.951 8.249 *** + 3 - 2 -4.340 -7.989 -0.691 *** + 3 - 1 0.260 -3.389 3.909 - + 1 - 2 -4.600 -8.249 -0.951 *** + 1 - 3 -0.260 -3.909 3.389 ''' + + ss5 = '''\ + 2 - 3 4.340 0.691 7.989 *** + 2 - 1 4.600 0.951 8.249 *** + 3 - 2 -4.340 -7.989 -0.691 *** + 3 - 1 0.260 -3.389 3.909 - + 1 - 2 -4.600 -8.249 -0.951 *** + 1 - 3 -0.260 -3.909 3.389 ''' + + dta5 = np.recfromtxt(StringIO(ss5), names = ('pair', 'mean', 'lower', 'upper', 'sig'), delimiter='\t') + + sas_ = dta5[[1,3,2]] + confint1 = res3[1][4] + confint2 = sas_[['lower','upper']].view(float).reshape((3,2)) + assert_almost_equal(confint1, confint2, decimal=2) + reject1 = res3[1][1] + reject2 = sas_['sig'] == '***' + assert_equal(reject1, reject2) + meandiff1 = res3[1][2] + meandiff2 = sas_['mean'] + assert_almost_equal(meandiff1, meandiff2, decimal=14) diff --git a/statsmodels/examples/ex_pandas.py b/statsmodels/examples/ex_pandas.py new file mode 100644 index 0000000..dc3cb0f --- /dev/null +++ b/statsmodels/examples/ex_pandas.py @@ -0,0 +1,151 @@ +# -*- coding: utf-8 -*- +"""Examples using Pandas + +""" + + +from __future__ import print_function +from statsmodels.compat.python import zip +from datetime import datetime + +import numpy as np + +from pandas import DataFrame, Series, datetools + +import statsmodels.api as sm +import statsmodels.tsa.api as tsa + + +data = sm.datasets.stackloss.load() +X = DataFrame(data.exog, columns=data.exog_name) +X['intercept'] = 1. +Y = Series(data.endog) + +#Example: OLS +model = sm.OLS(Y, X) +results = model.fit() +print(results.summary()) + +print(results.params) +print(results.cov_params()) + +infl = results.get_influence() +print(infl.summary_table()) + +#raise + +#Example RLM +huber_t = sm.RLM(Y, X, M=sm.robust.norms.HuberT()) +hub_results = huber_t.fit() +print(hub_results.params) +print(hub_results.bcov_scaled) +print(hub_results.summary()) + + +import matplotlib.pyplot as plt +from matplotlib import cm +import matplotlib as mpl + +def plot_acf_multiple(ys, lags=20): + """ + + """ + from statsmodels.tsa.stattools import acf + # hack + old_size = mpl.rcParams['font.size'] + mpl.rcParams['font.size'] = 8 + + plt.figure(figsize=(10, 10)) + xs = np.arange(lags + 1) + + acorr = np.apply_along_axis(lambda x: acf(x, nlags=lags), 0, ys) + + k = acorr.shape[1] + for i in range(k): + ax = plt.subplot(k, 1, i + 1) + ax.vlines(xs, [0], acorr[:, i]) + + ax.axhline(0, color='k') + ax.set_ylim([-1, 1]) + + # hack? + ax.set_xlim([-1, xs[-1] + 1]) + + mpl.rcParams['font.size'] = old_size + +#Example TSA descriptive + +data = sm.datasets.macrodata.load() +mdata = data.data +df = DataFrame.from_records(mdata) +quarter_end = datetools.BQuarterEnd() +df.index = [quarter_end.rollforward(datetime(int(y), int(q) * 3, 1)) +for y, q in zip(df.pop('year'), df.pop('quarter'))] +logged = np.log(df.ix[:, ['m1', 'realgdp', 'cpi']]) +logged.plot(subplots=True) + +log_difference = logged.diff().dropna() +plot_acf_multiple(log_difference.values) + +#Example TSA VAR + +model = tsa.VAR(log_difference, freq='D') +print(model.select_order()) + +res = model.fit(2) +print(res.summary()) +print(res.is_stable()) + +irf = res.irf(20) +irf.plot() + +fevd = res.fevd() +fevd.plot() + +#print res.test_whiteness() +print(res.test_causality('m1', 'realgdp')) +#print res.test_normality() # exception +''' +Traceback (most recent call last): + File "E:\Josef\eclipsegworkspace\statsmodels-git\statsmodels-josef\scikits\statsmodels\examples\ex_pandas.py", line 100, in + print res.test_normality() + File "e:\josef\eclipsegworkspace\statsmodels-git\statsmodels-all\scikits\statsmodels\tsa\vector_ar\var_model.py", line 1456, in test_normality + summ = output.normality_summary(results) + File "e:\josef\eclipsegworkspace\statsmodels-git\statsmodels-all\scikits\statsmodels\tsa\vector_ar\output.py", line 182, in normality_summary + return hypothesis_test_table(results, title, null_hyp) + File "e:\josef\eclipsegworkspace\statsmodels-git\statsmodels-all\scikits\statsmodels\tsa\vector_ar\output.py", line 190, in hypothesis_test_table + results['crit_value'], +KeyError: 'crit_value' +''' + + +#Example TSA ARMA + +import numpy as np +import statsmodels.api as sm + + +# Generate some data from an ARMA process +from statsmodels.tsa.arima_process import arma_generate_sample +arparams = np.array([.75, -.25]) +maparams = np.array([.65, .35]) +# The conventions of the arma_generate function require that we specify a +# 1 for the zero-lag of the AR and MA parameters and that the AR parameters +# be negated. +arparams = np.r_[1, -arparams] +maparam = np.r_[1, maparams] +nobs = 250 +y = arma_generate_sample(arparams, maparams, nobs) +plt.figure() +plt.plot(y) + +#Now, optionally, we can add some dates information. For this example, +# we'll use a pandas time series. +dates = sm.tsa.datetools.dates_from_range('1980m1', length=nobs) +y = Series(y, index=dates) +arma_mod = sm.tsa.ARMA(y, freq='M') +#arma_res = arma_mod.fit(order=(2,2), trend='nc', disp=-1) #fails +#old pandas 0.4.0: AttributeError: 'TimeSeries' object has no attribute 'name' +#arma_res.params + +plt.show() diff --git a/statsmodels/examples/ex_pareto_plot.py b/statsmodels/examples/ex_pareto_plot.py new file mode 100644 index 0000000..24f4682 --- /dev/null +++ b/statsmodels/examples/ex_pareto_plot.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +""" +Created on Sun Aug 01 19:20:16 2010 + +Author: josef-pktd +""" + + +from __future__ import print_function +import numpy as np +from scipy import stats +import matplotlib.pyplot as plt + +nobs = 1000 +r = stats.pareto.rvs(1, size=nobs) + +#rhisto = np.histogram(r, bins=20) +rhisto, e = np.histogram(np.clip(r, 0 , 1000), bins=50) +plt.figure() +plt.loglog(e[:-1]+np.diff(e)/2, rhisto, '-o') +plt.figure() +plt.loglog(e[:-1]+np.diff(e)/2, nobs-rhisto.cumsum(), '-o') +##plt.figure() +##plt.plot(e[:-1]+np.diff(e)/2, rhisto.cumsum(), '-o') +##plt.figure() +##plt.semilogx(e[:-1]+np.diff(e)/2, nobs-rhisto.cumsum(), '-o') + +rsind = np.argsort(r) +rs = r[rsind] +rsf = nobs-rsind.argsort() +plt.figure() +plt.loglog(rs, nobs-np.arange(nobs), '-o') +print(stats.linregress(np.log(rs), np.log(nobs-np.arange(nobs)))) + +plt.show() diff --git a/statsmodels/examples/ex_predict_results.py b/statsmodels/examples/ex_predict_results.py new file mode 100644 index 0000000..aa92cde --- /dev/null +++ b/statsmodels/examples/ex_predict_results.py @@ -0,0 +1,96 @@ +# -*- coding: utf-8 -*- +""" +Created on Sat Dec 20 12:01:13 2014 + +Author: Josef Perktold +License: BSD-3 + +""" + +import numpy as np +from statsmodels.regression.linear_model import OLS, WLS + +from statsmodels.sandbox.regression.predstd import wls_prediction_std +from statsmodels.regression._prediction import get_prediction +from statsmodels.genmod._prediction import params_transform_univariate + + +# from example wls.py + +nsample = 50 +x = np.linspace(0, 20, nsample) +X = np.column_stack((x, (x - 5)**2)) +from statsmodels.tools.tools import add_constant +X = add_constant(X) +beta = [5., 0.5, -0.01] +sig = 0.5 +w = np.ones(nsample) +w[nsample * 6/10:] = 3 +y_true = np.dot(X, beta) +e = np.random.normal(size=nsample) +y = y_true + sig * w * e +X = X[:,[0,1]] + + +# ### WLS knowing the true variance ratio of heteroscedasticity + +mod_wls = WLS(y, X, weights=1./w) +res_wls = mod_wls.fit() + + + +prstd, iv_l, iv_u = wls_prediction_std(res_wls) +pred_res = get_prediction(res_wls) +ci = pred_res.conf_int(obs=True) + +from numpy.testing import assert_allclose +assert_allclose(pred_res.se_obs, prstd, rtol=1e-13) +assert_allclose(ci, np.column_stack((iv_l, iv_u)), rtol=1e-13) + +print pred_res.summary_frame().head() + +pred_res2 = res_wls.get_prediction() +ci2 = pred_res2.conf_int(obs=True) + +from numpy.testing import assert_allclose +assert_allclose(pred_res2.se_obs, prstd, rtol=1e-13) +assert_allclose(ci2, np.column_stack((iv_l, iv_u)), rtol=1e-13) + +print pred_res2.summary_frame().head() + +res_wls_n = mod_wls.fit(use_t=False) +pred_wls_n = res_wls_n.get_prediction() +print(pred_wls_n.summary_frame().head()) + +from statsmodels.genmod.generalized_linear_model import GLM + +w_sqrt = np.sqrt(w) +mod_glm = GLM(y/w_sqrt, X/w_sqrt[:,None]) +res_glm = mod_glm.fit() +pred_glm = res_glm.get_prediction() +print(pred_glm.summary_frame().head()) + +res_glm_t = mod_glm.fit(use_t=True) +pred_glm_t = res_glm_t.get_prediction() +print(pred_glm_t.summary_frame().head()) + +rates = params_transform_univariate(res_glm.params, res_glm.cov_params()) +print('\nRates exp(params)') +print(rates.summary_frame()) + +rates2 = np.column_stack((np.exp(res_glm.params), + res_glm.bse * np.exp(res_glm.params), + np.exp(res_glm.conf_int()))) +assert_allclose(rates.summary_frame().values, rates2, rtol=1e-13) + +from statsmodels.genmod.families import links + +# with identity transform +pt = params_transform_univariate(res_glm.params, res_glm.cov_params(), link=links.identity()) +print(pt.tvalues) + +assert_allclose(pt.tvalues, res_glm.tvalues, rtol=1e-13) +assert_allclose(pt.se_mean, res_glm.bse, rtol=1e-13) +ptt = pt.t_test() +assert_allclose(ptt[0], res_glm.tvalues, rtol=1e-13) +assert_allclose(ptt[1], res_glm.pvalues, rtol=1e-13) diff --git a/statsmodels/examples/ex_proportion.py b/statsmodels/examples/ex_proportion.py new file mode 100644 index 0000000..9b61f27 --- /dev/null +++ b/statsmodels/examples/ex_proportion.py @@ -0,0 +1,57 @@ +# -*- coding: utf-8 -*- +""" + +Created on Sun Apr 21 07:59:26 2013 + +Author: Josef Perktold +""" + +from __future__ import print_function +from statsmodels.compat.python import lmap +import numpy as np +import statsmodels.stats.proportion as sms +import statsmodels.stats.weightstats as smw + +from numpy.testing import assert_almost_equal + + +# Region, Eyes, Hair, Count +ss = '''\ +1 blue fair 23 1 blue red 7 1 blue medium 24 +1 blue dark 11 1 green fair 19 1 green red 7 +1 green medium 18 1 green dark 14 1 brown fair 34 +1 brown red 5 1 brown medium 41 1 brown dark 40 +1 brown black 3 2 blue fair 46 2 blue red 21 +2 blue medium 44 2 blue dark 40 2 blue black 6 +2 green fair 50 2 green red 31 2 green medium 37 +2 green dark 23 2 brown fair 56 2 brown red 42 +2 brown medium 53 2 brown dark 54 2 brown black 13''' + +dta0 = np.array(ss.split()).reshape(-1,4) +dta = np.array(lmap(tuple, dta0.tolist()), dtype=[('Region', int), ('Eyes', 'S6'), ('Hair', 'S6'), ('Count', int)]) + +xfair = np.repeat([1,0], [228, 762-228]) + +# comparing to SAS last output at +# http://support.sas.com/documentation/cdl/en/procstat/63104/HTML/default/viewer.htm#procstat_freq_sect028.htm +# confidence interval for tost +ci01 = smw.confint_ztest(xfair, alpha=0.1) +assert_almost_equal(ci01, [0.2719, 0.3265], 4) +res = smw.ztost(xfair, 0.18, 0.38) + +assert_almost_equal(res[1][0], 7.1865, 4) +assert_almost_equal(res[2][0], -4.8701, 4) + +nn = np.arange(200, 351) +pow_z = sms.power_ztost_prop(0.5, 0.72, nn, 0.6, alpha=0.05) +pow_bin = sms.power_ztost_prop(0.5, 0.72, nn, 0.6, alpha=0.05, dist='binom') +import matplotlib.pyplot as plt +plt.plot(nn, pow_z[0], label='normal') +plt.plot(nn, pow_bin[0], label='binomial') +plt.legend(loc='lower right') +plt.title('Proportion Equivalence Test: Power as function of sample size') +plt.xlabel('Number of Observations') +plt.ylabel('Power') + +plt.show() + diff --git a/statsmodels/examples/ex_regressionplots.py b/statsmodels/examples/ex_regressionplots.py new file mode 100644 index 0000000..672382f --- /dev/null +++ b/statsmodels/examples/ex_regressionplots.py @@ -0,0 +1,142 @@ +# -*- coding: utf-8 -*- +"""Examples for Regression Plots + +Author: Josef Perktold + +""" + +from __future__ import print_function +import numpy as np +import statsmodels.api as sm +import matplotlib.pyplot as plt + +from statsmodels.sandbox.regression.predstd import wls_prediction_std +import statsmodels.graphics.regressionplots as smrp + +#example from tut.ols with changes +#fix a seed for these examples +np.random.seed(9876789) + +# OLS non-linear curve but linear in parameters +# --------------------------------------------- + +nsample = 100 +sig = 0.5 +x1 = np.linspace(0, 20, nsample) +x2 = 5 + 3* np.random.randn(nsample) +X = np.c_[x1, x2, np.sin(0.5*x1), (x2-5)**2, np.ones(nsample)] +beta = [0.5, 0.5, 1, -0.04, 5.] +y_true = np.dot(X, beta) +y = y_true + sig * np.random.normal(size=nsample) + +#estimate only linear function, misspecified because of non-linear terms +exog0 = sm.add_constant(np.c_[x1, x2], prepend=False) + +# plt.figure() +# plt.plot(x1, y, 'o', x1, y_true, 'b-') + +res = sm.OLS(y, exog0).fit() +#print res.params +#print res.bse + + +plot_old = 0 #True +if plot_old: + + #current bug predict requires call to model.results + #print res.model.predict + prstd, iv_l, iv_u = wls_prediction_std(res) + plt.plot(x1, res.fittedvalues, 'r-o') + plt.plot(x1, iv_u, 'r--') + plt.plot(x1, iv_l, 'r--') + plt.title('blue: true, red: OLS') + + plt.figure() + plt.plot(res.resid, 'o') + plt.title('Residuals') + + fig2 = plt.figure() + ax = fig2.add_subplot(2,1,1) + #namestr = ' for %s' % self.name if self.name else '' + plt.plot(x1, res.resid, 'o') + ax.set_title('residuals versus exog')# + namestr) + ax = fig2.add_subplot(2,1,2) + plt.plot(x2, res.resid, 'o') + + fig3 = plt.figure() + ax = fig3.add_subplot(2,1,1) + #namestr = ' for %s' % self.name if self.name else '' + plt.plot(x1, res.fittedvalues, 'o') + ax.set_title('Fitted values versus exog')# + namestr) + ax = fig3.add_subplot(2,1,2) + plt.plot(x2, res.fittedvalues, 'o') + + fig4 = plt.figure() + ax = fig4.add_subplot(2,1,1) + #namestr = ' for %s' % self.name if self.name else '' + plt.plot(x1, res.fittedvalues + res.resid, 'o') + ax.set_title('Fitted values plus residuals versus exog')# + namestr) + ax = fig4.add_subplot(2,1,2) + plt.plot(x2, res.fittedvalues + res.resid, 'o') + + # see http://www.itl.nist.gov/div898/software/dataplot/refman1/auxillar/partregr.htm + fig5 = plt.figure() + ax = fig5.add_subplot(2,1,1) + #namestr = ' for %s' % self.name if self.name else '' + res1a = sm.OLS(y, exog0[:,[0,2]]).fit() + res1b = sm.OLS(x1, exog0[:,[0,2]]).fit() + plt.plot(res1b.resid, res1a.resid, 'o') + res1c = sm.OLS(res1a.resid, res1b.resid).fit() + plt.plot(res1b.resid, res1c.fittedvalues, '-') + ax.set_title('Partial Regression plot')# + namestr) + ax = fig5.add_subplot(2,1,2) + #plt.plot(x2, res.fittedvalues + res.resid, 'o') + res2a = sm.OLS(y, exog0[:,[0,1]]).fit() + res2b = sm.OLS(x2, exog0[:,[0,1]]).fit() + plt.plot(res2b.resid, res2a.resid, 'o') + res2c = sm.OLS(res2a.resid, res2b.resid).fit() + plt.plot(res2b.resid, res2c.fittedvalues, '-') + + # see http://www.itl.nist.gov/div898/software/dataplot/refman1/auxillar/ccpr.htm + fig6 = plt.figure() + ax = fig6.add_subplot(2,1,1) + #namestr = ' for %s' % self.name if self.name else '' + x1beta = x1*res.params[1] + x2beta = x2*res.params[2] + plt.plot(x1, x1beta + res.resid, 'o') + plt.plot(x1, x1beta, '-') + ax.set_title('X_i beta_i plus residuals versus exog (CCPR)')# + namestr) + ax = fig6.add_subplot(2,1,2) + plt.plot(x2, x2beta + res.resid, 'o') + plt.plot(x2, x2beta, '-') + + + #print res.summary() + +doplots = 1 +if doplots: + fig1 = smrp.plot_fit(res, 0, y_true=None) + smrp.plot_fit(res, 1, y_true=None) + smrp.plot_partregress_grid(res, exog_idx=[0,1]) + smrp.plot_regress_exog(res, exog_idx=0) + smrp.plot_ccpr(res, exog_idx=0) + smrp.plot_ccpr_grid(res, exog_idx=[0,1]) + +from statsmodels.graphics.tests.test_regressionplots import TestPlot +tp = TestPlot() +tp.test_plot_fit() + +fig1 = smrp.plot_partregress_grid(res, exog_idx=[0,1]) +#add lowess +ax = fig1.axes[0] +y0 = ax.get_lines()[0]._y +x0 = ax.get_lines()[0]._x +lres = sm.nonparametric.lowess(y0, x0, frac=0.2) +ax.plot(lres[:,0], lres[:,1], 'r', lw=1.5) +ax = fig1.axes[1] +y0 = ax.get_lines()[0]._y +x0 = ax.get_lines()[0]._x +lres = sm.nonparametric.lowess(y0, x0, frac=0.2) +ax.plot(lres[:,0], lres[:,1], 'r', lw=1.5) + +#plt.show() diff --git a/statsmodels/examples/ex_rootfinding.py b/statsmodels/examples/ex_rootfinding.py new file mode 100644 index 0000000..c1a662e --- /dev/null +++ b/statsmodels/examples/ex_rootfinding.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +""" + +Created on Sat Mar 23 13:35:51 2013 + +Author: Josef Perktold +""" +from __future__ import print_function +import numpy as np +from statsmodels.tools.rootfinding import brentq_expanding + + +# Warning: module.global, changing this will affect everyone +#import statsmodels.tools.rootfinding as smroots +#smroots.DEBUG = True + +DEBUG = False #True + + + +def func(x, a): + f = (x - a)**3 + if DEBUG: print('evaluating at %g, fval = %f' % (x, f)) + return f + +def func_nan(x, a, b): + x = np.atleast_1d(x) + f = (x - 1.*a)**3 + f[x < b] = np.nan + if DEBUG: print('evaluating at %f, fval = %f' % (x, f)) + return f + + + +def funcn(x, a): + f = -(x - a)**3 + if DEBUG: print('evaluating at %g, fval = %g' % (x, f)) + return f + +def func2(x, a): + f = (x - a)**3 + print('evaluating at %g, fval = %f' % (x, f)) + return f + +if __name__ == '__main__': + run_all = False + if run_all: + print(brentq_expanding(func, args=(0,), increasing=True)) + + print(brentq_expanding(funcn, args=(0,), increasing=False)) + print(brentq_expanding(funcn, args=(-50,), increasing=False)) + + print(brentq_expanding(func, args=(20,))) + print(brentq_expanding(funcn, args=(20,))) + print(brentq_expanding(func, args=(500000,))) + + # one bound + print(brentq_expanding(func, args=(500000,), low=10000)) + print(brentq_expanding(func, args=(-50000,), upp=-1000)) + + print(brentq_expanding(funcn, args=(500000,), low=10000)) + print(brentq_expanding(funcn, args=(-50000,), upp=-1000)) + + # both bounds + # hits maxiter in brentq if bounds too wide + print(brentq_expanding(func, args=(500000,), low=300000, upp=700000)) + print(brentq_expanding(func, args=(-50000,), low= -70000, upp=-1000)) + print(brentq_expanding(funcn, args=(500000,), low=300000, upp=700000)) + print(brentq_expanding(funcn, args=(-50000,), low= -70000, upp=-10000)) + + print(brentq_expanding(func, args=(1.234e30,), xtol=1e10, + increasing=True, maxiter_bq=200)) + + + print(brentq_expanding(func, args=(-50000,), start_low=-10000)) + try: + print(brentq_expanding(func, args=(-500,), start_upp=-100)) + except ValueError: + print('raised ValueError start_upp needs to be positive') + + ''' it still works + raise ValueError('start_upp needs to be positive') + -499.999996336 + ''' + ''' this doesn't work + >>> print(brentq_expanding(func, args=(-500,), start_upp=-1000) + raise ValueError('start_upp needs to be positive') + OverflowError: (34, 'Result too large') + ''' + + try: + print(brentq_expanding(funcn, args=(-50000,), low= -40000, upp=-10000)) + except Exception as e: + print(e) + + val, info = brentq_expanding(func, args=(500,), full_output=True) + print(val) + print(vars(info)) + + # + print(brentq_expanding(func_nan, args=(20,0), increasing=True)) + print(brentq_expanding(func_nan, args=(20,0))) + # In the next point 0 is minumum, below is nan + print(brentq_expanding(func_nan, args=(-20,0), increasing=True)) + print(brentq_expanding(func_nan, args=(-20,0))) diff --git a/statsmodels/examples/ex_sandwich.py b/statsmodels/examples/ex_sandwich.py new file mode 100644 index 0000000..d0d2877 --- /dev/null +++ b/statsmodels/examples/ex_sandwich.py @@ -0,0 +1,80 @@ +# -*- coding: utf-8 -*- +"""examples for sandwich estimators of covariance + +Author: Josef Perktold + +""" +from statsmodels.compat.python import lzip +import numpy as np +from numpy.testing import assert_almost_equal + +import statsmodels.api as sm + +import statsmodels.stats.sandwich_covariance as sw +#import statsmodels.sandbox.panel.sandwich_covariance_generic as swg + + +nobs = 100 +kvars = 4 #including constant +x = np.random.randn(nobs, kvars-1) +exog = sm.add_constant(x) +params_true = np.ones(kvars) +y_true = np.dot(exog, params_true) +sigma = 0.1 + np.exp(exog[:,-1]) +endog = y_true + sigma * np.random.randn(nobs) + +self = sm.OLS(endog, exog).fit() + +print(self.HC3_se) +print(sw.se_cov(sw.cov_hc3(self))) +#test standalone refactoring +assert_almost_equal(sw.se_cov(sw.cov_hc0(self)), self.HC0_se, 15) +assert_almost_equal(sw.se_cov(sw.cov_hc1(self)), self.HC1_se, 15) +assert_almost_equal(sw.se_cov(sw.cov_hc2(self)), self.HC2_se, 15) +assert_almost_equal(sw.se_cov(sw.cov_hc3(self)), self.HC3_se, 15) +print(self.HC0_se) +print(sw.se_cov(sw.cov_hac_simple(self, nlags=0, use_correction=False))) +#test White as HAC with nlags=0, same as nlags=1 ? +bse_hac0 = sw.se_cov(sw.cov_hac_simple(self, nlags=0, use_correction=False)) +assert_almost_equal(bse_hac0, self.HC0_se, 15) +print(bse_hac0) +#test White as HAC with nlags=0, same as nlags=1 ? +bse_hac0c = sw.se_cov(sw.cov_hac_simple(self, nlags=0, use_correction=True)) +assert_almost_equal(bse_hac0c, self.HC1_se, 15) + +bse_w = sw.se_cov(sw.cov_white_simple(self, use_correction=False)) +print(bse_w) +#test White +assert_almost_equal(bse_w, self.HC0_se, 15) + +bse_wc = sw.se_cov(sw.cov_white_simple(self, use_correction=True)) +print(bse_wc) +#test White +assert_almost_equal(bse_wc, self.HC1_se, 15) + + +groups = np.repeat(np.arange(5), 20) + +idx = np.nonzero(np.diff(groups))[0].tolist() +groupidx = lzip([0]+idx, idx+[len(groups)]) +ngroups = len(groupidx) + +print(sw.se_cov(sw.cov_cluster(self, groups))) +#two strange looking corner cases BUG? +print(sw.se_cov(sw.cov_cluster(self, np.ones(len(endog), int), use_correction=False))) +print(sw.se_cov(sw.cov_crosssection_0(self, np.arange(len(endog))))) +#these results are close to simple (no group) white, 50 groups 2 obs each +groups = np.repeat(np.arange(50), 100//50) +print(sw.se_cov(sw.cov_cluster(self, groups))) +#2 groups with 50 obs each, what was the interpretation again? +groups = np.repeat(np.arange(2), 100//2) +print(sw.se_cov(sw.cov_cluster(self, groups))) + +"http://www.kellogg.northwestern.edu/faculty/petersen/htm/papers/se/test_data.txt" +''' +test <- read.table( + url(paste("http://www.kellogg.northwestern.edu/", + "faculty/petersen/htm/papers/se/", + "test_data.txt",sep="")), + col.names=c("firmid", "year", "x", "y")) +''' diff --git a/statsmodels/examples/ex_sandwich2.py b/statsmodels/examples/ex_sandwich2.py new file mode 100644 index 0000000..60a6746 --- /dev/null +++ b/statsmodels/examples/ex_sandwich2.py @@ -0,0 +1,73 @@ +# -*- coding: utf-8 -*- +"""Cluster robust standard errors for OLS + +Created on Fri Dec 16 12:52:13 2011 +Author: Josef Perktold +""" + +from statsmodels.compat.python import urlretrieve +import numpy as np +from numpy.testing import assert_almost_equal + +import statsmodels.api as sm +import statsmodels.stats.sandwich_covariance as sw + +#http://www.ats.ucla.edu/stat/stata/seminars/svy_stata_intro/srs.dta + +import statsmodels.iolib.foreign as dta + +try: + srs = dta.genfromdta("srs.dta") + print('using local file') +except IOError: + urlretrieve('http://www.ats.ucla.edu/stat/stata/seminars/svy_stata_intro/srs.dta', 'srs.dta') + print('downloading file') + srs = dta.genfromdta("srs.dta") +# from statsmodels.datasets import webuse +# srs = webuse('srs', 'http://www.ats.ucla.edu/stat/stata/seminars/svy_stata_intro/') +# #does currently not cache file + +y = srs['api00'] +#older numpy don't reorder +#x = srs[['growth', 'emer', 'yr_rnd']].view(float).reshape(len(y), -1) +#force sequence +x = np.column_stack([srs[ii] for ii in ['growth', 'emer', 'yr_rnd']]) +group = srs['dnum'] + +#xx = sm.add_constant(x, prepend=True) +xx = sm.add_constant(x, prepend=False) #const at end for Stata compatibility + +#remove nan observation +mask = (xx!=-999.0).all(1) #nan code in dta file +mask.shape +y = y[mask] +xx = xx[mask] +group = group[mask] + +#run OLS + +res_srs = sm.OLS(y, xx).fit() +print('params ', res_srs.params) +print('bse_OLS ', res_srs.bse) + +#get cluster robust standard errors and compare with STATA + +cov_cr = sw.cov_cluster(res_srs, group.astype(int)) +bse_cr = sw.se_cov(cov_cr) +print('bse_rob ', bse_cr) + +res_stata = np.rec.array( + [ ('growth', '|', -0.1027121, 0.22917029999999999, -0.45000000000000001, 0.65500000000000003, -0.55483519999999997, 0.34941109999999997), + ('emer', '|', -5.4449319999999997, 0.72939690000000001, -7.46, 0.0, -6.8839379999999997, -4.0059269999999998), + ('yr_rnd', '|', -51.075690000000002, 22.83615, -2.2400000000000002, 0.027, -96.128439999999998, -6.0229350000000004), + ('_cons', '|', 740.3981, 13.460760000000001, 55.0, 0.0, 713.84180000000003, 766.95439999999996)], + dtype=[('exogname', '|S6'), ('del', '|S1'), ('params', 'float'), + ('bse', 'float'), ('tvalues', 'float'), ('pvalues', 'float'), + ('cilow', 'float'), ('ciupp', 'float')]) + +print('diff Stata', bse_cr - res_stata.bse) +assert_almost_equal(bse_cr, res_stata.bse, decimal=6) + +#We see that in this case the robust standard errors of the parameter estimates +#are larger than those of OLS by 8 to 35 % +print('reldiff to OLS', bse_cr/res_srs.bse - 1) diff --git a/statsmodels/examples/ex_sandwich3.py b/statsmodels/examples/ex_sandwich3.py new file mode 100644 index 0000000..931febb --- /dev/null +++ b/statsmodels/examples/ex_sandwich3.py @@ -0,0 +1,63 @@ +# -*- coding: utf-8 -*- +"""Cluster Robust Standard Errors with Two Clusters + +Created on Sat Dec 17 08:39:16 2011 + +Author: Josef Perktold +""" +from statsmodels.compat.python import urlretrieve +import numpy as np +from numpy.testing import assert_almost_equal + +import statsmodels.api as sm + +import statsmodels.stats.sandwich_covariance as sw + +#requires Petersen's test_data +#http://www.kellogg.northwestern.edu/faculty/petersen/htm/papers/se/test_data.txt +try: + pet = np.genfromtxt("test_data.txt") + print('using local file') +except IOError: + urlretrieve('http://www.kellogg.northwestern.edu/faculty/petersen/htm/papers/se/test_data.txt', + 'test_data.txt') + print('downloading file') + pet = np.genfromtxt("test_data.txt") + + +endog = pet[:,-1] +group = pet[:,0].astype(int) +time = pet[:,1].astype(int) +exog = sm.add_constant(pet[:,2]) +res = sm.OLS(endog, exog).fit() + +cov01, covg, covt = sw.cov_cluster_2groups(res, group, group2=time) + +#Reference number from Petersen +#http://www.kellogg.northwestern.edu/faculty/petersen/htm/papers/se/test_data.htm + +bse_petw = [0.0284, 0.0284] +bse_pet0 = [0.0670, 0.0506] +bse_pet1 = [0.0234, 0.0334] #year +bse_pet01 = [0.0651, 0.0536] #firm and year + +bse_0 = sw.se_cov(covg) +bse_1 = sw.se_cov(covt) +bse_01 = sw.se_cov(cov01) + +print('OLS ', res.bse) +print('het HC0 ', res.HC0_se, bse_petw - res.HC0_se) +print('het firm ', bse_0, bse_0 - bse_pet0) +print('het year ', bse_1, bse_1 - bse_pet1) +print('het firm & year', bse_01, bse_01 - bse_pet01) + +print('relative difference standard error het firm & year to OLS') +print(' ', bse_01 / res.bse) + +#From the last line we see that the cluster and year robust standard errors +#are approximately twice those of OLS + +assert_almost_equal(bse_petw, res.HC0_se, decimal=4) +assert_almost_equal(bse_0, bse_pet0, decimal=4) +assert_almost_equal(bse_1, bse_pet1, decimal=4) +assert_almost_equal(bse_01, bse_pet01, decimal=4) diff --git a/statsmodels/examples/ex_scatter_ellipse.py b/statsmodels/examples/ex_scatter_ellipse.py new file mode 100644 index 0000000..1735f65 --- /dev/null +++ b/statsmodels/examples/ex_scatter_ellipse.py @@ -0,0 +1,50 @@ +'''example for grid of scatter plots with probability ellipses + + +Author: Josef Perktold +License: BSD-3 +''' + + +from statsmodels.compat.python import lrange +import numpy as np +import matplotlib.pyplot as plt + +from statsmodels.graphics.plot_grids import scatter_ellipse + + +nvars = 6 +mmean = np.arange(1.,nvars+1)/nvars * 1.5 +rho = 0.5 +#dcorr = rho*np.ones((nvars, nvars)) + (1-rho)*np.eye(nvars) +r = np.random.uniform(-0.99, 0.99, size=(nvars, nvars)) +##from scipy import stats +##r = stats.rdist.rvs(1, size=(nvars, nvars)) +r = (r + r.T) / 2. +assert np.allclose(r, r.T) +mcorr = r +mcorr[lrange(nvars), lrange(nvars)] = 1 +#dcorr = np.array([[1, 0.5, 0.1],[0.5, 1, -0.2], [0.1, -0.2, 1]]) +mstd = np.arange(1.,nvars+1)/nvars +mcov = mcorr * np.outer(mstd, mstd) +evals = np.linalg.eigvalsh(mcov) +assert evals.min > 0 #assert positive definite + +nobs = 100 +data = np.random.multivariate_normal(mmean, mcov, size=nobs) +dmean = data.mean(0) +dcov = np.cov(data, rowvar=0) +print(dmean) +print(dcov) +dcorr = np.corrcoef(data, rowvar=0) +dcorr[np.triu_indices(nvars)] = 0 +print(dcorr) + +#default +#fig = scatter_ellipse(data, level=[0.5, 0.75, 0.95]) +#used for checking +#fig = scatter_ellipse(data, level=[0.5, 0.75, 0.95], add_titles=True, keep_ticks=True) +#check varnames +varnames = ['var%d' % i for i in range(nvars)] +fig = scatter_ellipse(data, level=0.9, varnames=varnames) +plt.show() diff --git a/statsmodels/examples/ex_shrink_pickle.py b/statsmodels/examples/ex_shrink_pickle.py new file mode 100644 index 0000000..11e4a0a --- /dev/null +++ b/statsmodels/examples/ex_shrink_pickle.py @@ -0,0 +1,90 @@ +# -*- coding: utf-8 -*- +""" + +Created on Fri Mar 09 16:00:27 2012 + +Author: Josef Perktold +""" +from statsmodels.compat.python import StringIO +import numpy as np +import statsmodels.api as sm + +nobs = 10000 +np.random.seed(987689) +x = np.random.randn(nobs, 3) +x = sm.add_constant(x) +y = x.sum(1) + np.random.randn(nobs) + + + +xf = 0.25 * np.ones((2,4)) + +model = sm.OLS(y, x) +#y_count = np.random.poisson(np.exp(x.sum(1)-x.mean())) +#model = sm.Poisson(y_count, x)#, exposure=np.ones(nobs), offset=np.zeros(nobs)) #bug with default +results = model.fit() + + +#print results.predict(xf) +print(results.model.predict(results.params, xf)) +results.summary() + +shrinkit = 1 +if shrinkit: + results.remove_data() + +from statsmodels.compat.python import cPickle +fname = 'try_shrink%d_ols.pickle' % shrinkit +fh = open(fname, 'w') +cPickle.dump(results._results, fh) #pickling wrapper doesn't work +fh.close() +fh = open(fname, 'r') +results2 = cPickle.load(fh) +fh.close() +print(results2.predict(xf)) +print(results2.model.predict(results.params, xf)) + + +y_count = np.random.poisson(np.exp(x.sum(1)-x.mean())) +model = sm.Poisson(y_count, x)#, exposure=np.ones(nobs), offset=np.zeros(nobs)) #bug with default +results = model.fit(method='bfgs') + +results.summary() + +print(results.model.predict(results.params, xf, exposure=1, offset=0)) + +if shrinkit: + results.remove_data() +else: + #work around pickling bug + results.mle_settings['callback'] = None + +import pickle +fname = 'try_shrink%d_poisson.pickle' % shrinkit +fh = open(fname, 'w') +cPickle.dump(results._results, fh) #pickling wrapper doesn't work +fh.close() +fh = open(fname, 'r') +results3 = cPickle.load(fh) +fh.close() +print(results3.predict(xf, exposure=1, offset=0)) +print(results3.model.predict(results.params, xf, exposure=1, offset=0)) + +def check_pickle(obj): + fh =StringIO() + cPickle.dump(obj, fh) + plen = fh.pos + fh.seek(0,0) + res = cPickle.load(fh) + fh.close() + return res, plen + +def test_remove_data_pickle(results, xf): + res, l = check_pickle(results) + #Note: 10000 is just a guess for the limit on the length of the pickle + np.testing.assert_(l < 10000, msg='pickle length not %d < %d' % (l, 10000)) + pred1 = results.predict(xf, exposure=1, offset=0) + pred2 = res.predict(xf, exposure=1, offset=0) + np.testing.assert_equal(pred2, pred1) + +test_remove_data_pickle(results._results, xf) diff --git a/statsmodels/examples/ex_univar_kde.py b/statsmodels/examples/ex_univar_kde.py new file mode 100644 index 0000000..d8f9100 --- /dev/null +++ b/statsmodels/examples/ex_univar_kde.py @@ -0,0 +1,156 @@ +""" +This example tests the nonparametric estimator +for several popular univariate distributions with the different +bandwidth selction methods - CV-ML; CV-LS; Scott's rule of thumb. + +Produces six different plots for each distribution +1) Beta +2) f +3) Pareto +4) Laplace +5) Weibull +6) Poisson + +""" + + +from __future__ import print_function +import numpy as np +import scipy.stats as stats +import matplotlib.pyplot as plt +import statsmodels.api as sm + +KDEMultivariate = sm.nonparametric.KDEMultivariate + + +np.random.seed(123456) + +# Beta distribution + +# Parameters +a = 2 +b = 5 +nobs = 250 + +support = np.random.beta(a, b, size=nobs) +rv = stats.beta(a, b) +ix = np.argsort(support) + +dens_normal = KDEMultivariate(data=[support], var_type='c', bw='normal_reference') +dens_cvls = KDEMultivariate(data=[support], var_type='c', bw='cv_ls') +dens_cvml = KDEMultivariate(data=[support], var_type='c', bw='cv_ml') + +plt.figure(1) +plt.plot(support[ix], rv.pdf(support[ix]), label='Actual') +plt.plot(support[ix], dens_normal.pdf()[ix], label='Scott') +plt.plot(support[ix], dens_cvls.pdf()[ix], label='CV_LS') +plt.plot(support[ix], dens_cvml.pdf()[ix], label='CV_ML') +plt.title("Nonparametric Estimation of the Density of Beta Distributed " \ + "Random Variable") +plt.legend(('Actual', 'Scott', 'CV_LS', 'CV_ML')) + +# f distribution +df = 100 +dn = 100 +nobs = 250 + +support = np.random.f(dn, df, size=nobs) +rv = stats.f(df, dn) +ix = np.argsort(support) + +dens_normal = KDEMultivariate(data=[support], var_type='c', bw='normal_reference') +dens_cvls = KDEMultivariate(data=[support], var_type='c', bw='cv_ls') +dens_cvml = KDEMultivariate(data=[support], var_type='c', bw='cv_ml') + +plt.figure(2) +plt.plot(support[ix], rv.pdf(support[ix]), label='Actual') +plt.plot(support[ix], dens_normal.pdf()[ix], label='Scott') +plt.plot(support[ix], dens_cvls.pdf()[ix], label='CV_LS') +plt.plot(support[ix], dens_cvml.pdf()[ix], label='CV_ML') +plt.title("Nonparametric Estimation of the Density of f Distributed " \ + "Random Variable") +plt.legend(('Actual', 'Scott', 'CV_LS', 'CV_ML')) + +# Pareto distribution +a = 2 +nobs = 150 +support = np.random.pareto(a, size=nobs) +rv = stats.pareto(a) +ix = np.argsort(support) + +dens_normal = KDEMultivariate(data=[support], var_type='c', bw='normal_reference') +dens_cvls = KDEMultivariate(data=[support], var_type='c', bw='cv_ls') +dens_cvml = KDEMultivariate(data=[support], var_type='c', bw='cv_ml') +plt.figure(3) +plt.plot(support[ix], rv.pdf(support[ix]), label='Actual') +plt.plot(support[ix], dens_normal.pdf()[ix], label='Scott') +plt.plot(support[ix], dens_cvls.pdf()[ix], label='CV_LS') +plt.plot(support[ix], dens_cvml.pdf()[ix], label='CV_ML') +plt.title("Nonparametric Estimation of the Density of Pareto " \ + "Distributed Random Variable") +plt.legend(('Actual', 'Scott', 'CV_LS', 'CV_ML')) + +# Laplace Distribution +mu = 0 +s = 1 +nobs = 250 + +support = np.random.laplace(mu, s, size=nobs) +rv = stats.laplace(mu, s) +ix = np.argsort(support) + +dens_normal = KDEMultivariate(data=[support], var_type='c', bw='normal_reference') +dens_cvls = KDEMultivariate(data=[support], var_type='c', bw='cv_ls') +dens_cvml = KDEMultivariate(data=[support], var_type='c', bw='cv_ml') + +plt.figure(4) +plt.plot(support[ix], rv.pdf(support[ix]), label='Actual') +plt.plot(support[ix], dens_normal.pdf()[ix], label='Scott') +plt.plot(support[ix], dens_cvls.pdf()[ix], label='CV_LS') +plt.plot(support[ix], dens_cvml.pdf()[ix], label='CV_ML') +plt.title("Nonparametric Estimation of the Density of Laplace " \ + "Distributed Random Variable") +plt.legend(('Actual', 'Scott', 'CV_LS', 'CV_ML')) + +# Weibull Distribution +a = 1 +nobs = 250 + +support = np.random.weibull(a, size=nobs) +rv = stats.weibull_min(a) + +ix = np.argsort(support) +dens_normal = KDEMultivariate(data=[support], var_type='c', bw='normal_reference') +dens_cvls = KDEMultivariate(data=[support], var_type='c', bw='cv_ls') +dens_cvml = KDEMultivariate(data=[support], var_type='c', bw='cv_ml') + +plt.figure(5) +plt.plot(support[ix], rv.pdf(support[ix]), label='Actual') +plt.plot(support[ix], dens_normal.pdf()[ix], label='Scott') +plt.plot(support[ix], dens_cvls.pdf()[ix], label='CV_LS') +plt.plot(support[ix], dens_cvml.pdf()[ix], label='CV_ML') +plt.title("Nonparametric Estimation of the Density of Weibull " \ + "Distributed Random Variable") +plt.legend(('Actual', 'Scott', 'CV_LS', 'CV_ML')) + +# Poisson Distribution +a = 2 +nobs = 250 +support = np.random.poisson(a, size=nobs) +rv = stats.poisson(a) + +ix = np.argsort(support) +dens_normal = KDEMultivariate(data=[support], var_type='o', bw='normal_reference') +dens_cvls = KDEMultivariate(data=[support], var_type='o', bw='cv_ls') +dens_cvml = KDEMultivariate(data=[support], var_type='o', bw='cv_ml') + +plt.figure(6) +plt.plot(support[ix], rv.pmf(support[ix]), label='Actual') +plt.plot(support[ix], dens_normal.pdf()[ix], label='Scott') +plt.plot(support[ix], dens_cvls.pdf()[ix], label='CV_LS') +plt.plot(support[ix], dens_cvml.pdf()[ix], label='CV_ML') +plt.title("Nonparametric Estimation of the Density of Poisson " \ + "Distributed Random Variable") +plt.legend(('Actual', 'Scott', 'CV_LS', 'CV_ML')) + +plt.show() diff --git a/statsmodels/examples/ex_wald_anova.py b/statsmodels/examples/ex_wald_anova.py new file mode 100644 index 0000000..c48a7c0 --- /dev/null +++ b/statsmodels/examples/ex_wald_anova.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +"""Example for wald_test for terms - `wald_anova` + +Created on Mon Dec 15 11:19:23 2014 + +Author: Josef Perktold +License: BSD-3 + +""" + +import numpy as np + +from statsmodels.formula.api import ols, glm, poisson +from statsmodels.discrete.discrete_model import Poisson + +import statsmodels.stats.tests.test_anova as ttmod + +test = ttmod.TestAnova3() +test.setupClass() + +data = test.data.drop([0,1,2]) +res_ols = ols("np.log(Days+1) ~ C(Duration, Sum)*C(Weight, Sum)", data).fit(use_t=False) + +res_glm = glm("np.log(Days+1) ~ C(Duration, Sum)*C(Weight, Sum)", + data).fit() + +res_poi = Poisson.from_formula("Days ~ C(Weight) * C(Duration)", data).fit(cov_type='HC0') +res_poi_2 = poisson("Days ~ C(Weight) + C(Duration)", data).fit(cov_type='HC0') + +print('\nOLS') +print(res_ols.wald_test_terms()) +print('\nGLM') +print(res_glm.wald_test_terms(skip_single=False, combine_terms=['Duration', 'Weight'])) +print('\nPoisson 1') +print(res_poi.wald_test_terms(skip_single=False, combine_terms=['Duration', 'Weight'])) +print('\nPoisson 2') +print(res_poi_2.wald_test_terms(skip_single=False)) + +from statsmodels.discrete.discrete_model import NegativeBinomial +res_nb2 = NegativeBinomial.from_formula("Days ~ C(Weight) * C(Duration)", data).fit() +print('\nNegative Binomial nb2') +print(res_nb2.wald_test_terms(skip_single=False)) + +res_nb1 = NegativeBinomial.from_formula("Days ~ C(Weight) * C(Duration)", data, + loglike_method='nb1').fit(cov_type='HC0') +print('\nNegative Binomial nb2') +print(res_nb1.wald_test_terms(skip_single=False)) + diff --git a/statsmodels/examples/example_discrete_mnl.py b/statsmodels/examples/example_discrete_mnl.py new file mode 100644 index 0000000..cd5c39f --- /dev/null +++ b/statsmodels/examples/example_discrete_mnl.py @@ -0,0 +1,68 @@ +"""Example: statsmodels.discretemod +""" + +from __future__ import print_function +from statsmodels.compat.python import lrange +import numpy as np +import statsmodels.api as sm + +anes_data = sm.datasets.anes96.load() +anes_exog = anes_data.exog +anes_exog = sm.add_constant(anes_exog, prepend=False) +mlogit_mod = sm.MNLogit(anes_data.endog, anes_exog) +mlogit_res = mlogit_mod.fit() + +# The default method for the fit is Newton-Raphson +# However, you can use other solvers +mlogit_res = mlogit_mod.fit(method='bfgs', maxiter=100) +# The below needs a lot of iterations to get it right? +#TODO: Add a technical note on algorithms +#mlogit_res = mlogit_mod.fit(method='ncg') # this takes forever + + +from statsmodels.iolib.summary import ( + summary_params_2d, summary_params_2dflat) + +exog_names = [anes_data.exog_name[i] for i in [0, 2]+lrange(5,8)] + ['const'] +endog_names = [anes_data.endog_name+'_%d' % i for i in np.unique(mlogit_res.model.endog)[1:]] +print('\n\nMultinomial') +print(summary_params_2d(mlogit_res, extras=['bse','tvalues'], + endog_names=endog_names, exog_names=exog_names)) +tables, table_all = summary_params_2dflat(mlogit_res, + endog_names=endog_names, + exog_names=exog_names, + keep_headers=True) +tables, table_all = summary_params_2dflat(mlogit_res, + endog_names=endog_names, + exog_names=exog_names, + keep_headers=False) +print('\n\n') +print(table_all) +print('\n\n') +print('\n'.join((str(t) for t in tables))) + +from statsmodels.iolib.summary import table_extend +at = table_extend(tables) +print(at) + +print('\n\n') +print(mlogit_res.summary()) +print(mlogit_res.summary(yname='PID')) +#the following is supposed to raise ValueError +#mlogit_res.summary(yname=['PID']) + +endog_names = [anes_data.endog_name+'=%d' % i for i in np.unique(mlogit_res.model.endog)[1:]] +print(mlogit_res.summary(yname='PID', yname_list=endog_names, xname=exog_names)) + + +''' #trying cPickle +from statsmodels.compat.python import cPickle #, copy + +#copy.deepcopy(mlogit_res) #raises exception: AttributeError: 'ResettableCache' object has no attribute '_resetdict' +mnl_res = mlogit_mod.fit(method='bfgs', maxiter=100) +mnl_res.cov_params() +#mnl_res.model.endog = None +#mnl_res.model.exog = None +cPickle.dump(mnl_res, open('mnl_res.dump', 'w')) +mnl_res_l = cPickle.load(open('mnl_res.dump', 'r')) +''' diff --git a/statsmodels/examples/example_enhanced_boxplots.py b/statsmodels/examples/example_enhanced_boxplots.py new file mode 100644 index 0000000..ccaa90c --- /dev/null +++ b/statsmodels/examples/example_enhanced_boxplots.py @@ -0,0 +1,100 @@ + +from __future__ import print_function +import numpy as np +import matplotlib.pyplot as plt + +import statsmodels.api as sm + + +# Necessary to make horizontal axis labels fit +plt.rcParams['figure.subplot.bottom'] = 0.23 + +data = sm.datasets.anes96.load_pandas() +party_ID = np.arange(7) +labels = ["Strong Democrat", "Weak Democrat", "Independent-Democrat", + "Independent-Independent", "Independent-Republican", + "Weak Republican", "Strong Republican"] + +# Group age by party ID. +age = [data.exog['age'][data.endog == id] for id in party_ID] + + +# Create a violin plot. +fig = plt.figure() +ax = fig.add_subplot(111) + +sm.graphics.violinplot(age, ax=ax, labels=labels, + plot_opts={'cutoff_val':5, 'cutoff_type':'abs', + 'label_fontsize':'small', + 'label_rotation':30}) + +ax.set_xlabel("Party identification of respondent.") +ax.set_ylabel("Age") +ax.set_title("US national election '96 - Age & Party Identification") + + +# Create a bean plot. +fig2 = plt.figure() +ax = fig2.add_subplot(111) + +sm.graphics.beanplot(age, ax=ax, labels=labels, + plot_opts={'cutoff_val':5, 'cutoff_type':'abs', + 'label_fontsize':'small', + 'label_rotation':30}) + +ax.set_xlabel("Party identification of respondent.") +ax.set_ylabel("Age") +ax.set_title("US national election '96 - Age & Party Identification") + + +# Create a jitter plot. +fig3 = plt.figure() +ax = fig3.add_subplot(111) + +plot_opts={'cutoff_val':5, 'cutoff_type':'abs', 'label_fontsize':'small', + 'label_rotation':30, 'violin_fc':(0.8, 0.8, 0.8), + 'jitter_marker':'.', 'jitter_marker_size':3, 'bean_color':'#FF6F00', + 'bean_mean_color':'#009D91'} +sm.graphics.beanplot(age, ax=ax, labels=labels, jitter=True, + plot_opts=plot_opts) + +ax.set_xlabel("Party identification of respondent.") +ax.set_ylabel("Age") +ax.set_title("US national election '96 - Age & Party Identification") + + +# Create an asymmetrical jitter plot. +ix = data.exog['income'] < 16 # incomes < $30k +age = data.exog['age'][ix] +endog = data.endog[ix] +age_lower_income = [age[endog == id] for id in party_ID] + +ix = data.exog['income'] >= 20 # incomes > $50k +age = data.exog['age'][ix] +endog = data.endog[ix] +age_higher_income = [age[endog == id] for id in party_ID] + +fig = plt.figure() +ax = fig.add_subplot(111) + +plot_opts['violin_fc'] = (0.5, 0.5, 0.5) +plot_opts['bean_show_mean'] = False +plot_opts['bean_show_median'] = False +plot_opts['bean_legend_text'] = 'Income < \$30k' +plot_opts['cutoff_val'] = 10 +sm.graphics.beanplot(age_lower_income, ax=ax, labels=labels, side='left', + jitter=True, plot_opts=plot_opts) +plot_opts['violin_fc'] = (0.7, 0.7, 0.7) +plot_opts['bean_color'] = '#009D91' +plot_opts['bean_legend_text'] = 'Income > \$50k' +sm.graphics.beanplot(age_higher_income, ax=ax, labels=labels, side='right', + jitter=True, plot_opts=plot_opts) + +ax.set_xlabel("Party identification of respondent.") +ax.set_ylabel("Age") +ax.set_title("US national election '96 - Age & Party Identification") + + +# Show all plots. +plt.show() + diff --git a/statsmodels/examples/example_functional_plots.py b/statsmodels/examples/example_functional_plots.py new file mode 100644 index 0000000..7c0f606 --- /dev/null +++ b/statsmodels/examples/example_functional_plots.py @@ -0,0 +1,52 @@ +'''Functional boxplots and rainbow plots + +see docstrings for an explanation + + +Author: Ralf Gommers + +''' + +from __future__ import print_function +import numpy as np +import matplotlib.pyplot as plt +import statsmodels.api as sm + +#Load the El Nino dataset. Consists of 60 years worth of Pacific Ocean sea +#surface temperature data. + +data = sm.datasets.elnino.load() + +#Create a functional boxplot: + +#We see that the years 1982-83 and 1997-98 are outliers; these are +#the years where El Nino (a climate pattern characterized by warming +#up of the sea surface and higher air pressures) occurred with unusual +#intensity. + +fig = plt.figure() +ax = fig.add_subplot(111) +res = sm.graphics.fboxplot(data.raw_data[:, 1:], wfactor=2.58, + labels=data.raw_data[:, 0].astype(int), + ax=ax) + +ax.set_xlabel("Month of the year") +ax.set_ylabel("Sea surface temperature (C)") +ax.set_xticks(np.arange(13, step=3) - 1) +ax.set_xticklabels(["", "Mar", "Jun", "Sep", "Dec"]) +ax.set_xlim([-0.2, 11.2]) + + + +#Create a rainbow plot: + +fig = plt.figure() +ax = fig.add_subplot(111) +res = sm.graphics.rainbowplot(data.raw_data[:, 1:], ax=ax) + +ax.set_xlabel("Month of the year") +ax.set_ylabel("Sea surface temperature (C)") +ax.set_xticks(np.arange(13, step=3) - 1) +ax.set_xticklabels(["", "Mar", "Jun", "Sep", "Dec"]) +ax.set_xlim([-0.2, 11.2]) +plt.show() diff --git a/statsmodels/examples/example_kde.py b/statsmodels/examples/example_kde.py new file mode 100644 index 0000000..abdab0a --- /dev/null +++ b/statsmodels/examples/example_kde.py @@ -0,0 +1,32 @@ + +from __future__ import print_function +import numpy as np +from scipy import stats +from statsmodels.distributions.mixture_rvs import mixture_rvs +from statsmodels.nonparametric.kde import kdensityfft +import matplotlib.pyplot as plt + + +np.random.seed(12345) +obs_dist = mixture_rvs([.25,.75], size=10000, dist=[stats.norm, stats.norm], + kwargs = (dict(loc=-1,scale=.5),dict(loc=1,scale=.5))) +#.. obs_dist = mixture_rvs([.25,.75], size=10000, dist=[stats.norm, stats.beta], +#.. kwargs = (dict(loc=-1,scale=.5),dict(loc=1,scale=1,args=(1,.5)))) + + +f_hat, grid, bw = kdensityfft(obs_dist, kernel="gauss", bw="scott") + +# Check the plot + +plt.figure() +plt.hist(obs_dist, bins=50, normed=True, color='red') +plt.plot(grid, f_hat, lw=2, color='black') +plt.show() + +# do some timings +# get bw first because they're not streamlined +from statsmodels.nonparametric import bandwidths +bw = bandwidths.bw_scott(obs_dist) + +#.. timeit kdensity(obs_dist, kernel="gauss", bw=bw, gridsize=2**10) +#.. timeit kdensityfft(obs_dist, kernel="gauss", bw=bw, gridsize=2**10) diff --git a/statsmodels/examples/example_ols_minimal_comp.py b/statsmodels/examples/example_ols_minimal_comp.py new file mode 100644 index 0000000..d7a0da8 --- /dev/null +++ b/statsmodels/examples/example_ols_minimal_comp.py @@ -0,0 +1,36 @@ +"""Example: minimal OLS + +add example for new compare methods + +""" + +from __future__ import print_function +import numpy as np +import statsmodels.api as sm + +np.random.seed(765367) +nsample = 100 +x = np.linspace(0,10, 100) +X = sm.add_constant(np.column_stack((x, x**2))) +beta = np.array([10, 1, 0.01]) +y = np.dot(X, beta) + np.random.normal(size=nsample) + +results = sm.OLS(y, X).fit() +print(results.summary()) + +results2 = sm.OLS(y, X[:,:2]).fit() +print(results.compare_f_test(results2)) +print(results.f_test([0,0,1])) + +print(results.compare_lr_test(results2)) + +''' +(1.841903749875428, 0.1778775592033047) + +(1.8810663357027693, 0.17021300121753191, 1.0) +''' + + + + + diff --git a/statsmodels/examples/example_rpy.py b/statsmodels/examples/example_rpy.py new file mode 100644 index 0000000..c58bf0b --- /dev/null +++ b/statsmodels/examples/example_rpy.py @@ -0,0 +1,52 @@ +'''Just two examples for using rpy + +These examples are mainly for developers. + +# example 1: OLS using LM +# example 2: GLM with binomial family + The second results isn't exactly correct since it assumes that each + obvervation has the same number of trials see datasets/longley for an R script + with the correct syntax. + +See rmodelwrap.py in the tests folder for a convenience wrapper +to make rpy more like statsmodels. Note, however, that rmodelwrap +was created in a very ad hoc manner and due to the idiosyncracies in R +it does not work for all types of R models. + +There are also R scripts included with most of the datasets to run +some basic models for comparisons of results to statsmodels. +''' + +from __future__ import print_function +from statsmodels.compat.python import iterkeys +from rpy import r +import numpy as np +import statsmodels.api as sm + + +examples = [1, 2] + +if 1 in examples: + data = sm.datasets.longley.load() + y,x = data.endog, sm.add_constant(data.exog, prepend=False) + des_cols = ['x.%d' % (i+1) for i in range(x.shape[1])] + formula = r('y~%s-1' % '+'.join(des_cols)) + frame = r.data_frame(y=y, x=x) + results = r.lm(formula, data=frame) + print(list(iterkeys(results))) + print(results['coefficients']) + +if 2 in examples: + data2 = sm.datasets.star98.load() + y2,x2 = data2.endog, sm.add_constant(data2.exog, prepend=False) + import rpy + y2 = y2[:,0]/y2.sum(axis=1) + des_cols2 = ['x.%d' % (i+1) for i in range(x2.shape[1])] + formula2 = r('y~%s-1' % '+'.join(des_cols2)) + frame2 = r.data_frame(y=y2, x=x2) + results2 = r.glm(formula2, data=frame2, family='binomial') + params_est = [results2['coefficients'][k] for k + in sorted(results2['coefficients'])] + print(params_est) + print(', '.join(['%13.10f']*21) % tuple(params_est)) + diff --git a/statsmodels/examples/l1_demo/demo.py b/statsmodels/examples/l1_demo/demo.py new file mode 100644 index 0000000..9558a3c --- /dev/null +++ b/statsmodels/examples/l1_demo/demo.py @@ -0,0 +1,357 @@ +from __future__ import print_function +from statsmodels.compat.python import range +from optparse import OptionParser +import statsmodels.api as sm +import scipy as sp +from scipy import linalg +from scipy import stats +import pdb +# pdb.set_trace() + + +docstr = """ +Demonstrates l1 regularization for likelihood models. +Use different models by setting mode = mnlogit, logit, or probit. + +Examples +------- +$ python demo.py --get_l1_slsqp_results logit + +>>> import demo +>>> demo.run_demo('logit') + +The Story +--------- +The maximum likelihood (ML) solution works well when the number of data +points is large and the noise is small. When the ML solution starts +"breaking", the regularized solution should do better. + +The l1 Solvers +-------------- +The solvers are slower than standard Newton, and sometimes have + convergence issues Nonetheless, the final solution makes sense and + is often better than the ML solution. +The standard l1 solver is fmin_slsqp and is included with scipy. It + sometimes has trouble verifying convergence when the data size is + large. +The l1_cvxopt_cp solver is part of CVXOPT and this package needs to be + installed separately. It works well even for larger data sizes. +""" + + +def main(): + """ + Provides a CLI for the demo. + """ + usage = "usage: %prog [options] mode" + usage += '\n'+docstr + parser = OptionParser(usage=usage) + # base_alpha + parser.add_option("-a", "--base_alpha", + help="Size of regularization param (the param actully used will "\ + "automatically scale with data size in this demo) "\ + "[default: %default]", + dest='base_alpha', action='store', type='float', default=0.01) + # num_samples + parser.add_option("-N", "--num_samples", + help="Number of data points to generate for fit "\ + "[default: %default]", + dest='N', action='store', type='int', default=500) + # get_l1_slsqp_results + parser.add_option("--get_l1_slsqp_results", + help="Do an l1 fit using slsqp. [default: %default]", \ + action="store_true",dest='get_l1_slsqp_results', default=False) + # get_l1_cvxopt_results + parser.add_option("--get_l1_cvxopt_results", + help="Do an l1 fit using cvxopt. [default: %default]", \ + action="store_true",dest='get_l1_cvxopt_results', default=False) + # num_nonconst_covariates + parser.add_option("--num_nonconst_covariates", + help="Number of covariates that are not constant "\ + "(a constant will be prepended) [default: %default]", + dest='num_nonconst_covariates', action='store', + type='int', default=10) + # noise_level + parser.add_option("--noise_level", + help="Level of the noise relative to signal [default: %default]", + dest='noise_level', action='store', type='float', + default=0.2) + # cor_length + parser.add_option("--cor_length", + help="Correlation length of the (Gaussian) independent variables"\ + "[default: %default]", + dest='cor_length', action='store', type='float', + default=2) + # num_zero_params + parser.add_option("--num_zero_params", + help="Number of parameters equal to zero for every target in "\ + "logistic regression examples. [default: %default]", + dest='num_zero_params', action='store', type='int', + default=8) + # num_targets + parser.add_option("-J", "--num_targets", + help="Number of choices for the endogenous response in "\ + "multinomial logit example [default: %default]", + dest='num_targets', action='store', type='int', default=3) + # print_summaries + parser.add_option("-s", "--print_summaries", + help="Print the full fit summary. [default: %default]", \ + action="store_true",dest='print_summaries', default=False) + # save_arrays + parser.add_option("--save_arrays", + help="Save exog/endog/true_params to disk for future use. "\ + "[default: %default]", + action="store_true",dest='save_arrays', default=False) + # load_old_arrays + parser.add_option("--load_old_arrays", + help="Load exog/endog/true_params arrays from disk. "\ + "[default: %default]", + action="store_true",dest='load_old_arrays', default=False) + + (options, args) = parser.parse_args() + + assert len(args) == 1 + mode = args[0].lower() + + run_demo(mode, **options.__dict__) + + +def run_demo(mode, base_alpha=0.01, N=500, get_l1_slsqp_results=False, + get_l1_cvxopt_results=False, num_nonconst_covariates=10, + noise_level=0.2, cor_length=2, num_zero_params=8, num_targets=3, + print_summaries=False, save_arrays=False, load_old_arrays=False): + """ + Run the demo and print results. + + Parameters + ---------- + mode : String + either 'logit', 'mnlogit', or 'probit' + base_alpha : Float + Size of regularization param (the param actually used will + automatically scale with data size in this demo) + N : Integer + Number of data points to generate for fit + get_l1_slsqp_results : boolean, + Do an l1 fit using slsqp. + get_l1_cvxopt_results : boolean + Do an l1 fit using cvxopt + num_nonconst_covariates : Integer + Number of covariates that are not constant + (a constant will be prepended) + noise_level : Float (non-negative) + Level of the noise relative to signal + cor_length : Float (non-negative) + Correlation length of the (Gaussian) independent variables + num_zero_params : Integer + Number of parameters equal to zero for every target in logistic + regression examples. + num_targets : Integer + Number of choices for the endogenous response in multinomial logit + example + print_summaries : Boolean + print the full fit summary. + save_arrays : Boolean + Save exog/endog/true_params to disk for future use. + load_old_arrays + Load exog/endog/true_params arrays from disk. + """ + if mode != 'mnlogit': + print("Setting num_targets to 2 since mode != 'mnlogit'") + num_targets = 2 + models = { + 'logit': sm.Logit, 'mnlogit': sm.MNLogit, 'probit': sm.Probit} + endog_funcs = { + 'logit': get_logit_endog, 'mnlogit': get_logit_endog, + 'probit': get_probit_endog} + # The regularization parameter + # Here we scale it with N for simplicity. In practice, you should + # use cross validation to pick alpha + alpha = base_alpha * N * sp.ones((num_nonconst_covariates+1, num_targets-1)) + alpha[0,:] = 0 # Don't regularize the intercept + + #### Make the data and model + exog = get_exog(N, num_nonconst_covariates, cor_length) + exog = sm.add_constant(exog) + true_params = sp.rand(num_nonconst_covariates+1, num_targets-1) + if num_zero_params: + true_params[-num_zero_params:, :] = 0 + endog = endog_funcs[mode](true_params, exog, noise_level) + + endog, exog, true_params = save_andor_load_arrays( + endog, exog, true_params, save_arrays, load_old_arrays) + model = models[mode](endog, exog) + + #### Get the results and print + results = run_solvers(model, true_params, alpha, + get_l1_slsqp_results, get_l1_cvxopt_results, print_summaries) + + summary_str = get_summary_str(results, true_params, get_l1_slsqp_results, + get_l1_cvxopt_results, print_summaries) + + print(summary_str) + + +def run_solvers(model, true_params, alpha, get_l1_slsqp_results, + get_l1_cvxopt_results, print_summaries): + """ + Runs the solvers using the specified settings and returns a result string. + Works the same for any l1 penalized likelihood model. + """ + results = {} + #### Train the models + # Get ML results + results['results_ML'] = model.fit(method='newton') + # Get l1 results + start_params = results['results_ML'].params.ravel(order='F') + if get_l1_slsqp_results: + results['results_l1_slsqp'] = model.fit_regularized( + method='l1', alpha=alpha, maxiter=1000, + start_params=start_params, retall=True) + if get_l1_cvxopt_results: + results['results_l1_cvxopt_cp'] = model.fit_regularized( + method='l1_cvxopt_cp', alpha=alpha, maxiter=50, + start_params=start_params, retall=True, feastol=1e-5) + + return results + + +def get_summary_str(results, true_params, get_l1_slsqp_results, + get_l1_cvxopt_results, print_summaries): + """ + Gets a string summarizing the results. + """ + #### Extract specific results + results_ML = results['results_ML'] + RMSE_ML = get_RMSE(results_ML, true_params) + if get_l1_slsqp_results: + results_l1_slsqp = results['results_l1_slsqp'] + if get_l1_cvxopt_results: + results_l1_cvxopt_cp = results['results_l1_cvxopt_cp'] + + #### Format summaries + # Short summary + print_str = '\n\n=========== Short Error Summary ============' + print_str += '\n\n The maximum likelihood fit RMS error = %.4f'%RMSE_ML + if get_l1_slsqp_results: + RMSE_l1_slsqp = get_RMSE(results_l1_slsqp, true_params) + print_str += '\n The l1_slsqp fit RMS error = %.4f'%RMSE_l1_slsqp + if get_l1_cvxopt_results: + RMSE_l1_cvxopt_cp = get_RMSE(results_l1_cvxopt_cp, true_params) + print_str += '\n The l1_cvxopt_cp fit RMS error = %.4f'%RMSE_l1_cvxopt_cp + # Parameters + print_str += '\n\n\n============== Parameters =================' + print_str += "\n\nTrue parameters: \n%s"%true_params + # Full summary + if print_summaries: + print_str += '\n' + results_ML.summary().as_text() + if get_l1_slsqp_results: + print_str += '\n' + results_l1_slsqp.summary().as_text() + if get_l1_cvxopt_results: + print_str += '\n' + results_l1_cvxopt_cp.summary().as_text() + else: + print_str += '\n\nThe maximum likelihood params are \n%s'%results_ML.params + if get_l1_slsqp_results: + print_str += '\n\nThe l1_slsqp params are \n%s'%results_l1_slsqp.params + if get_l1_cvxopt_results: + print_str += '\n\nThe l1_cvxopt_cp params are \n%s'%\ + results_l1_cvxopt_cp.params + # Return + return print_str + + +def save_andor_load_arrays( + endog, exog, true_params, save_arrays, load_old_arrays): + if save_arrays: + sp.save('endog.npy', endog) + sp.save('exog.npy', exog) + sp.save('true_params.npy', true_params) + if load_old_arrays: + endog = sp.load('endog.npy') + exog = sp.load('exog.npy') + true_params = sp.load('true_params.npy') + return endog, exog, true_params + + +def get_RMSE(results, true_params): + """ + Gets the (normalized) root mean square error. + """ + diff = results.params.reshape(true_params.shape) - true_params + raw_RMSE = sp.sqrt(((diff)**2).sum()) + param_norm = sp.sqrt((true_params**2).sum()) + return raw_RMSE / param_norm + + +def get_logit_endog(true_params, exog, noise_level): + """ + Gets an endogenous response that is consistent with the true_params, + perturbed by noise at noise_level. + """ + N = exog.shape[0] + ### Create the probability of entering the different classes, + ### given exog and true_params + Xdotparams = sp.dot(exog, true_params) + noise = noise_level * sp.randn(*Xdotparams.shape) + eXB = sp.column_stack((sp.ones(len(Xdotparams)), sp.exp(Xdotparams))) + class_probabilities = eXB / eXB.sum(1)[:, None] + + ### Create the endog + cdf = class_probabilities.cumsum(axis=1) + endog = sp.zeros(N) + for i in range(N): + endog[i] = sp.searchsorted(cdf[i, :], sp.rand()) + + return endog + + +def get_probit_endog(true_params, exog, noise_level): + """ + Gets an endogenous response that is consistent with the true_params, + perturbed by noise at noise_level. + """ + N = exog.shape[0] + ### Create the probability of entering the different classes, + ### given exog and true_params + Xdotparams = sp.dot(exog, true_params) + noise = noise_level * sp.randn(*Xdotparams.shape) + + ### Create the endog + cdf = stats.norm._cdf(-Xdotparams) + endog = sp.zeros(N) + for i in range(N): + endog[i] = sp.searchsorted(cdf[i, :], sp.rand()) + + return endog + + +def get_exog(N, num_nonconst_covariates, cor_length): + """ + Returns an exog array with correlations determined by cor_length. + The covariance matrix of exog will have (asymptotically, as + :math:'N\\to\\inf') + .. math:: Cov[i,j] = \\exp(-|i-j| / cor_length) + + Higher cor_length makes the problem more ill-posed, and easier to screw + up with noise. + BEWARE: With very long correlation lengths, you often get a singular KKT + matrix (during the l1_cvxopt_cp fit) + """ + ## Create the noiseless exog + uncorrelated_exog = sp.randn(N, num_nonconst_covariates) + if cor_length == 0: + exog = uncorrelated_exog + else: + cov_matrix = sp.zeros((num_nonconst_covariates, num_nonconst_covariates)) + j = sp.arange(num_nonconst_covariates) + for i in range(num_nonconst_covariates): + cov_matrix[i,:] = sp.exp(-sp.fabs(i-j) / cor_length) + chol = linalg.cholesky(cov_matrix) # cov_matrix = sp.dot(chol.T, chol) + exog = sp.dot(uncorrelated_exog, chol) + ## Return + return exog + + + +if __name__ == '__main__': + main() diff --git a/statsmodels/examples/l1_demo/short_demo.py b/statsmodels/examples/l1_demo/short_demo.py new file mode 100644 index 0000000..6febb83 --- /dev/null +++ b/statsmodels/examples/l1_demo/short_demo.py @@ -0,0 +1,117 @@ +""" +You can fit your LikelihoodModel using l1 regularization by changing + the method argument and adding an argument alpha. See code for + details. + +The Story +--------- +The maximum likelihood (ML) solution works well when the number of data +points is large and the noise is small. When the ML solution starts +"breaking", the regularized solution should do better. + +The l1 Solvers +-------------- +The standard l1 solver is fmin_slsqp and is included with scipy. It + sometimes has trouble verifying convergence when the data size is + large. +The l1_cvxopt_cp solver is part of CVXOPT and this package needs to be + installed separately. It works well even for larger data sizes. +""" +from __future__ import print_function +from statsmodels.compat.python import range +import statsmodels.api as sm +import matplotlib.pyplot as plt +import numpy as np +import pdb # pdb.set_trace() + + +## Load the data from Spector and Mazzeo (1980) +spector_data = sm.datasets.spector.load() +spector_data.exog = sm.add_constant(spector_data.exog) +N = len(spector_data.endog) +K = spector_data.exog.shape[1] + +### Logit Model +logit_mod = sm.Logit(spector_data.endog, spector_data.exog) +## Standard logistic regression +logit_res = logit_mod.fit() + +## Regularized regression + +# Set the reularization parameter to something reasonable +alpha = 0.05 * N * np.ones(K) + +# Use l1, which solves via a built-in (scipy.optimize) solver +logit_l1_res = logit_mod.fit_regularized(method='l1', alpha=alpha, acc=1e-6) + +# Use l1_cvxopt_cp, which solves with a CVXOPT solver +logit_l1_cvxopt_res = logit_mod.fit_regularized( + method='l1_cvxopt_cp', alpha=alpha) + +## Print results +print("============ Results for Logit =================") +print("ML results") +print(logit_res.summary()) +print("l1 results") +print(logit_l1_res.summary()) +print(logit_l1_cvxopt_res.summary()) + +### Multinomial Logit Example using American National Election Studies Data +anes_data = sm.datasets.anes96.load() +anes_exog = anes_data.exog +anes_exog = sm.add_constant(anes_exog, prepend=False) +mlogit_mod = sm.MNLogit(anes_data.endog, anes_exog) +mlogit_res = mlogit_mod.fit() + +## Set the regularization parameter. +alpha = 10 * np.ones((mlogit_mod.J - 1, mlogit_mod.K)) + +# Don't regularize the constant +alpha[-1,:] = 0 +mlogit_l1_res = mlogit_mod.fit_regularized(method='l1', alpha=alpha) +print(mlogit_l1_res.params) + +#mlogit_l1_res = mlogit_mod.fit_regularized( +# method='l1_cvxopt_cp', alpha=alpha, abstol=1e-10, trim_tol=1e-6) +#print mlogit_l1_res.params + +## Print results +print("============ Results for MNLogit =================") +print("ML results") +print(mlogit_res.summary()) +print("l1 results") +print(mlogit_l1_res.summary()) +# +# +#### Logit example with many params, sweeping alpha +spector_data = sm.datasets.spector.load() +X = spector_data.exog +Y = spector_data.endog + +## Fit +N = 50 # number of points to solve at +K = X.shape[1] +logit_mod = sm.Logit(Y, X) +coeff = np.zeros((N, K)) # Holds the coefficients +alphas = 1 / np.logspace(-0.5, 2, N) + +## Sweep alpha and store the coefficients +# QC check doesn't always pass with the default options. +# Use the options QC_verbose=True and disp=True +# to to see what is happening. It just barely doesn't pass, so I decreased +# acc and increased QC_tol to make it pass +for n, alpha in enumerate(alphas): + logit_res = logit_mod.fit_regularized( + method='l1', alpha=alpha, trim_mode='off', QC_tol=0.1, disp=False, + QC_verbose=True, acc=1e-15) + coeff[n,:] = logit_res.params + +## Plot +plt.figure(1);plt.clf();plt.grid() +plt.title('Regularization Path'); +plt.xlabel('alpha'); +plt.ylabel('Parameter value'); +for i in range(K): + plt.plot(alphas, coeff[:,i], label='X'+str(i), lw=3) +plt.legend(loc='best') +plt.show() diff --git a/statsmodels/examples/l1_demo/sklearn_compare.py b/statsmodels/examples/l1_demo/sklearn_compare.py new file mode 100644 index 0000000..4826cb3 --- /dev/null +++ b/statsmodels/examples/l1_demo/sklearn_compare.py @@ -0,0 +1,103 @@ +""" +For comparison with sklearn.linear_model.LogisticRegression + +Computes a regularzation path with both packages. The coefficient values in + either path are related by a "constant" in the sense that for any fixed + value of the constraint C and log likelihood, there exists an l1 + regularization constant alpha such that the optimal solutions should be + the same. Note that alpha(C) is a nonlinear function in general. Here we + find alpha(C) by finding a reparameterization of the statsmodels path that + makes the paths match up. An equation is available, but to use it I would + need to hack the sklearn code to extract the gradient of the log + likelihood. + + +The results "prove" that the regularization paths are the same. Note that + finding the reparameterization is non-trivial since the coefficient paths + are NOT monotonic. As a result, the paths don't match up perfectly. +""" +from __future__ import print_function +from statsmodels.compat.python import range, lrange +from sklearn import linear_model +from sklearn import datasets +import statsmodels.api as sm +import numpy as np +import matplotlib.pyplot as plt +import pdb # pdb.set_trace +import sys + +## Decide which dataset to use +# Use either spector or anes96 +use_spector = False + +#### Load data +## The Spector and Mazzeo (1980) data from statsmodels +if use_spector: + spector_data = sm.datasets.spector.load() + X = spector_data.exog + Y = spector_data.endog +else: + raise Exception( + "The anes96 dataset is now loaded in as a short version that cannot "\ + "be used here") + anes96_data = sm.datasets.anes96.load_pandas() + Y = anes96_data.exog.vote + +#### Fit and plot results +N = 200 # number of points to solve at +K = X.shape[1] + +## Statsmodels +logit_mod = sm.Logit(Y, X) +sm_coeff = np.zeros((N, K)) # Holds the coefficients +if use_spector: + alphas = 1 / np.logspace(-1, 2, N) # for spector_data +else: + alphas = 1 / np.logspace(-3, 2, N) # for anes96_data +for n, alpha in enumerate(alphas): + logit_res = logit_mod.fit_regularized( + method='l1', alpha=alpha, disp=False, trim_mode='off') + sm_coeff[n,:] = logit_res.params +## Sklearn +sk_coeff = np.zeros((N, K)) +if use_spector: + Cs = np.logspace(-0.45, 2, N) +else: + Cs = np.logspace(-2.6, 0, N) +for n, C in enumerate(Cs): + clf = linear_model.LogisticRegression( + C=C, penalty='l1', fit_intercept=False) + clf.fit(X, Y) + sk_coeff[n, :] = clf.coef_ + +## Get the reparametrization of sm_coeff that makes the paths equal +# Do this by finding one single re-parameterization of the second coefficient +# that makes the path for the second coefficient (almost) identical. This +# same parameterization will work for the other two coefficients since the +# the regularization coefficients (in sk and sm) are related by a constant. +# +# special_X is chosen since this coefficient becomes non-zero before the +# other two...and is relatively monotonic...with both datasets. +sk_special_X = np.fabs(sk_coeff[:,2]) +sm_special_X = np.fabs(sm_coeff[:,2]) +s = np.zeros(N) +# Note that sk_special_X will not always be perfectly sorted... +s = np.searchsorted(sk_special_X, sm_special_X) + +## Plot +plt.figure(2);plt.clf();plt.grid() +plt.xlabel('Index in sklearn simulation') +plt.ylabel('Coefficient value') +plt.title('Regularization Paths') +colors = ['b', 'r', 'k', 'g', 'm', 'c', 'y'] +for coeff, name in [(sm_coeff, 'sm'), (sk_coeff, 'sk')]: + if name == 'sk': + ltype = 'x' # linetype + t = lrange(N) # The 'time' parameter + else: + ltype = 'o' + t = s + for i in range(K): + plt.plot(t, coeff[:,i], ltype+colors[i], label=name+'-X'+str(i)) +plt.legend(loc='best') +plt.show() diff --git a/statsmodels/examples/run_all.py b/statsmodels/examples/run_all.py new file mode 100644 index 0000000..34053db --- /dev/null +++ b/statsmodels/examples/run_all.py @@ -0,0 +1,69 @@ +'''run all examples to make sure we don't get an exception + +Note: +If an example contaings plt.show(), then all plot windows have to be closed +manually, at least in my setup. + +uncomment plt.show() to show all plot windows + +''' +from __future__ import print_function +from statsmodels.compat.python import lzip, input +import matplotlib.pyplot as plt #matplotlib is required for many examples + +stop_on_error = True + + +filelist = ['example_glsar.py', 'example_wls.py', 'example_gls.py', + 'example_glm.py', 'example_ols_tftest.py', #'example_rpy.py', + 'example_ols.py', 'example_ols_minimal.py', 'example_rlm.py', + 'example_discrete.py', 'example_predict.py', + 'example_ols_table.py', + 'tut_ols.py', 'tut_ols_rlm.py', 'tut_ols_wls.py'] + +use_glob = True +if use_glob: + import glob + filelist = glob.glob('*.py') + +print(lzip(range(len(filelist)), filelist)) + +for fname in ['run_all.py', 'example_rpy.py']: + filelist.remove(fname) + +#filelist = filelist[15:] + + + +#temporarily disable show +plt_show = plt.show +def noop(*args): + pass +plt.show = noop + +cont = input("""Are you sure you want to run all of the examples? +This is done mainly to check that they are up to date. +(y/n) >>> """) +has_errors = [] +if 'y' in cont.lower(): + for run_all_f in filelist: + try: + print("\n\nExecuting example file", run_all_f) + print("-----------------------" + "-"*len(run_all_f)) + exec(open(run_all_f).read()) + except: + #f might be overwritten in the executed file + print("**********************" + "*"*len(run_all_f)) + print("ERROR in example file", run_all_f) + print("**********************" + "*"*len(run_all_f)) + has_errors.append(run_all_f) + if stop_on_error: + raise + +print('\nModules that raised exception:') +print(has_errors) + +#reenable show after closing windows +plt.close('all') +plt.show = plt_show +plt.show() diff --git a/statsmodels/examples/t_est_rlm.py b/statsmodels/examples/t_est_rlm.py new file mode 100644 index 0000000..9554521 --- /dev/null +++ b/statsmodels/examples/t_est_rlm.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +""" +Example from robust test_rlm, fails on Mac + +Created on Sun Mar 27 14:36:40 2011 + +""" + +from __future__ import print_function +import numpy as np +import statsmodels.api as sm +RLM = sm.RLM + +DECIMAL_4 = 4 +DECIMAL_3 = 3 +DECIMAL_2 = 2 +DECIMAL_1 = 1 + +from statsmodels.datasets.stackloss import load +data = load() # class attributes for subclasses +data.exog = sm.add_constant(data.exog, prepend=False) + +decimal_standarderrors = DECIMAL_1 +decimal_scale = DECIMAL_3 + +results = RLM(data.endog, data.exog,\ + M=sm.robust.norms.HuberT()).fit() # default M +h2 = RLM(data.endog, data.exog,\ + M=sm.robust.norms.HuberT()).fit(cov="H2").bcov_scaled +h3 = RLM(data.endog, data.exog,\ + M=sm.robust.norms.HuberT()).fit(cov="H3").bcov_scaled + + +from statsmodels.robust.tests.results.results_rlm import Huber +res2 = Huber() + +print("res2.h1") +print(res2.h1) +print("results.bcov_scaled") +print(results.bcov_scaled) +print("res2.h1 - results.bcov_scaled") +print(res2.h1 - results.bcov_scaled) + +from numpy.testing import assert_almost_equal +assert_almost_equal(res2.h1, results.bcov_scaled, 4) diff --git a/statsmodels/examples/try_2regress.py b/statsmodels/examples/try_2regress.py new file mode 100644 index 0000000..4901ddc --- /dev/null +++ b/statsmodels/examples/try_2regress.py @@ -0,0 +1,63 @@ +# -*- coding: utf-8 -*- +"""F test for null hypothesis that coefficients in two regressions are the same + +see discussion in http://mail.scipy.org/pipermail/scipy-user/2010-March/024851.html + +Created on Thu Mar 25 22:56:45 2010 +Author: josef-pktd +""" + +from __future__ import print_function +import numpy as np +from numpy.testing import assert_almost_equal +import statsmodels.api as sm + +np.random.seed(87654589) + +nobs = 10 #100 +x1 = np.random.randn(nobs) +y1 = 10 + 15*x1 + 2*np.random.randn(nobs) + +x1 = sm.add_constant(x1, prepend=False) +assert_almost_equal(x1, np.vander(x1[:,0],2), 16) +res1 = sm.OLS(y1, x1).fit() +print(res1.params) +print(np.polyfit(x1[:,0], y1, 1)) +assert_almost_equal(res1.params, np.polyfit(x1[:,0], y1, 1), 14) +print(res1.summary(xname=['x1','const1'])) + +#regression 2 +x2 = np.random.randn(nobs) +y2 = 19 + 17*x2 + 2*np.random.randn(nobs) +#y2 = 10 + 15*x2 + 2*np.random.randn(nobs) # if H0 is true + +x2 = sm.add_constant(x2, prepend=False) +assert_almost_equal(x2, np.vander(x2[:,0],2), 16) + +res2 = sm.OLS(y2, x2).fit() +print(res2.params) +print(np.polyfit(x2[:,0], y2, 1)) +assert_almost_equal(res2.params, np.polyfit(x2[:,0], y2, 1), 14) +print(res2.summary(xname=['x2','const2'])) + + +# joint regression + +x = np.concatenate((x1,x2),0) +y = np.concatenate((y1,y2)) +dummy = np.arange(2*nobs)>nobs-1 +x = np.column_stack((x,x*dummy[:,None])) + +res = sm.OLS(y, x).fit() +print(res.summary(xname=['x','const','x2','const2'])) + +print('\nF test for equal coefficients in 2 regression equations') +#effect of dummy times second regression is zero +#is equivalent to 3rd and 4th coefficient are both zero +print(res.f_test([[0,0,1,0],[0,0,0,1]])) + +print('\nchecking coefficients individual versus joint') +print(res1.params, res2.params) +print(res.params[:2], res.params[:2]+res.params[2:]) +assert_almost_equal(res1.params, res.params[:2], 13) +assert_almost_equal(res2.params, res.params[:2]+res.params[2:], 13) diff --git a/statsmodels/examples/try_fit_constrained.py b/statsmodels/examples/try_fit_constrained.py new file mode 100644 index 0000000..13b6d1f --- /dev/null +++ b/statsmodels/examples/try_fit_constrained.py @@ -0,0 +1,191 @@ +# -*- coding: utf-8 -*- +""" +Created on Fri May 30 22:56:57 2014 + +Author: Josef Perktold +License: BSD-3 + +""" + +import numpy as np +from numpy.testing import assert_allclose, assert_raises + +from statsmodels.base._constraints import (TransformRestriction, + transform_params_constraint, fit_constrained) + + +if __name__ == '__main__': + + + + R = np.array([[1, 1, 0, 0, 0], [0, 0, 1, -1, 0]]) + + + + k_constr, k_vars = R.shape + + m = np.eye(k_vars) - R.T.dot(np.linalg.pinv(R).T) + evals, evecs = np.linalg.eigh(m) + + L = evecs[:, :k_constr] + T = evecs[:, k_constr:] + + print T.T.dot(np.eye(k_vars)) + + tr = np.column_stack((T, R.T)) + + q = [2, 0] + tr0 = TransformRestriction(R, q) + + p_reduced = [1,1,1] + #round trip test + assert_allclose(tr0.reduce(tr0.expand(p_reduced)), p_reduced, rtol=1e-14) + + + p = tr0.expand(p_reduced) + assert_allclose(R.dot(p), q, rtol=1e-14) + + # inconsistent restrictions + #Ri = np.array([[1, 1, 0, 0, 0], [0, 0, 1, -1, 0], [0, 0, 1, -2, 0]]) + R = np.array([[1, 1, 0, 0, 0], [0, 0, 1, -1, 0], [0, 0, 1, 0, -1]]) + q = np.zeros(R.shape[0]) + tr1 = TransformRestriction(R, q) # bug raises error with q + p = tr1.expand([1,1]) + + # inconsistent restrictions that has a solution with p3=0 + Ri = np.array([[1, 1, 0, 0, 0], [0, 0, 1, -1, 0], [0, 0, 1, -2, 0]]) + tri = TransformRestriction(Ri, [0, 1, 1]) + # Note: the only way this can hold is if variable 3 is zero + p = tri.expand([1,1]) + print(p[[2,3]]) + #array([ 1.00000000e+00, -1.34692639e-17]) + + # inconsistent without any possible solution + Ri2 = np.array([[0, 0, 0, 1, 0], [0, 0, 1, -1, 0], [0, 0, 1, -2, 0]]) + q = [1, 1] + #tri2 = TransformRestriction(Ri2, q) + #p = tri.expand([1,1]) + assert_raises(ValueError, TransformRestriction, Ri2, q) + # L doesn't have full row rank, calculating constant fails with Singular Matrix + + # transform data xr = T x + np.random.seed(1) + x = np.random.randn(10, 5) + xr = tr1.reduce(x) + # roundtrip + x2 = tr1.expand(xr) + # this doesn't hold ? don't use constant? don't need it anyway ? + #assert_allclose(x2, x, rtol=1e-14) + + + from patsy import DesignInfo + + names = 'a b c d'.split() + LC = DesignInfo(names).linear_constraint('a + b = 0') + LC = DesignInfo(names).linear_constraint(['a + b = 0', 'a + 2*c = 1', 'b-a', 'c-a', 'd-a']) + #LC = DesignInfo(self.model.exog_names).linear_constraint(r_matrix) + r_matrix, q_matrix = LC.coefs, LC.constants + + np.random.seed(123) + nobs = 20 + x = 1 + np.random.randn(nobs, 4) + exog = np.column_stack((np.ones(nobs), x)) + endog = exog.sum(1) + np.random.randn(nobs) + + from statsmodels.regression.linear_model import OLS + res2 = OLS(endog, exog).fit() + #transf = TransformRestriction(np.eye(exog.shape[1])[:2], res2.params[:2] / 2) + transf = TransformRestriction([[0, 0, 0,1,1]], res2.params[-2:].sum()) + exog_st = transf.reduce(exog) + res1 = OLS(endog, exog_st).fit() + # need to correct for constant/offset in the optimization + res1 = OLS(endog - exog.dot(transf.constant.squeeze()), exog_st).fit() + params = transf.expand(res1.params).squeeze() + assert_allclose(params, res2.params, rtol=1e-13) + print(res2.params) + print(params) + print(res1.params) + + res3_ols = OLS(endog - exog[:, -1], exog[:, :-2]).fit() + #transf = TransformRestriction(np.eye(exog.shape[1])[:2], res2.params[:2] / 2) + transf3 = TransformRestriction([[0, 0, 0, 1, 0],[0, 0, 0, 0, 1]], [0, 1]) + exog3_st = transf3.reduce(exog) + res3 = OLS(endog, exog3_st).fit() + # need to correct for constant/offset in the optimization + res3 = OLS(endog - exog.dot(transf3.constant.squeeze()), exog3_st).fit() + params = transf3.expand(res3.params).squeeze() + assert_allclose(params[:-2], res3_ols.params, rtol=1e-13) + print(res3.params) + print(params) + print(res3_ols.params) + print(res3_ols.bse) + # the following raises `ValueError: can't test a constant constraint` + #tt = res3.t_test(transf3.transf_mat, transf3.constant.squeeze()) + #print tt.sd + cov_params3 = transf3.transf_mat.dot(res3.cov_params()).dot(transf3.transf_mat.T) + bse3 = np.sqrt(np.diag(cov_params3)) + print(bse3) + + tp = transform_params_constraint(res2.params, res2.normalized_cov_params, + transf3.R, transf3.q) + tp = transform_params_constraint(res2.params, res2.cov_params(), transf3.R, transf3.q) + + + from statsmodels.discrete.discrete_model import Poisson + import statsmodels.api as sm + rand_data = sm.datasets.randhie.load() + rand_exog = rand_data.exog.view(float).reshape(len(rand_data.exog), -1) + rand_exog = sm.add_constant(rand_exog, prepend=False) + + + # Fit Poisson model: + poisson_mod0 = sm.Poisson(rand_data.endog, rand_exog) + poisson_res0 = poisson_mod0.fit(method="newton") + + R = np.zeros((2, 10)) + R[0, -2] = 1 + R[1, -1] = 1 + transfp = TransformRestriction(R, [0, 1]) + poisson_mod = sm.Poisson(rand_data.endog, rand_exog[:, :-2]) + # note wrong offset, why did I put offset in fit ? it's ignored + poisson_res = poisson_mod.fit(method="newton", offset=rand_exog.dot(transfp.constant.squeeze())) + + exogp_st = transfp.reduce(rand_exog) + poisson_modr = sm.Poisson(rand_data.endog, exogp_st) + poisson_resr = poisson_modr.fit(method="newton") + paramsp = transfp.expand(poisson_resr.params).squeeze() + print('\nPoisson') + print(paramsp) + print(poisson_res.params) + # error because I don't use the unconstrained basic model +# tp = transform_params_constraint(poisson_res.params, poisson_res.cov_params(), transfp.R, transfp.q) +# cov_params3 = transf3.transf_mat.dot(res3.cov_params()).dot(transf3.transf_mat.T) +# bse3 = np.sqrt(np.diag(cov_params3)) + + + poisson_mod0 = sm.Poisson(rand_data.endog, rand_exog) + poisson_res0 = poisson_mod0.fit(method="newton") + tp = transform_params_constraint(poisson_res0.params, poisson_res0.cov_params(), transfp.R, transfp.q) + cov_params3 = transf3.transf_mat.dot(res3.cov_params()).dot(transf3.transf_mat.T) + bse3 = np.sqrt(np.diag(cov_params3)) + + # try again same example as it was intended + + poisson_mod = sm.Poisson(rand_data.endog, rand_exog[:, :-2], offset=rand_exog[:, -1]) + poisson_res = poisson_mod.fit(method="newton") + + exogp_st = transfp.reduce(rand_exog) + poisson_modr = sm.Poisson(rand_data.endog, exogp_st, offset=rand_exog.dot(transfp.constant.squeeze())) + poisson_resr = poisson_modr.fit(method="newton") + paramsp = transfp.expand(poisson_resr.params).squeeze() + print('\nPoisson') + print(paramsp) + print(poisson_resr.params) + tp = transform_params_constraint(poisson_res0.params, poisson_res0.cov_params(), transfp.R, transfp.q) + cov_paramsp = transfp.transf_mat.dot(poisson_resr.cov_params()).dot(transfp.transf_mat.T) + bsep = np.sqrt(np.diag(cov_paramsp)) + print(bsep) + p, cov, res_r = fit_constrained(poisson_mod0, transfp.R, transfp.q) + se = np.sqrt(np.diag(cov)) + print(p) + print(se) diff --git a/statsmodels/examples/try_gee.py b/statsmodels/examples/try_gee.py new file mode 100644 index 0000000..af61483 --- /dev/null +++ b/statsmodels/examples/try_gee.py @@ -0,0 +1,97 @@ +# -*- coding: utf-8 -*- +""" + +Created on Thu Jul 18 14:57:46 2013 + +Author: Josef Perktold +""" + +from __future__ import print_function +import numpy as np + +from statsmodels.genmod.generalized_estimating_equations import GEE, GEEMargins + +from statsmodels.genmod.families import Gaussian, Binomial, Poisson +from statsmodels.genmod.cov_struct import (Exchangeable, Independence, + GlobalOddsRatio, Autoregressive, + Nested) + +from statsmodels.genmod.tests import gee_gaussian_simulation_check as gees + +da,va = gees.gen_gendat_ar0(0.6)() +ga = Gaussian() +lhs = np.array([[0., 1, 1, 0, 0],]) +rhs = np.r_[0.,] + +example = [] +if 'constraint' in example: + md = GEE(da.endog, da.exog, da.group, da.time, ga, va, + constraint=(lhs, rhs)) + mdf = md.fit() + print(mdf.summary()) + + +md2 = GEE(da.endog, da.exog, da.group, da.time, ga, va, + constraint=None) +mdf2 = md2.fit() +print('\n\n') +print(mdf2.summary()) + + +mdf2.use_t = False +mdf2.df_resid = np.diff(mdf2.model.exog.shape) +tt2 = mdf2.t_test(np.eye(len(mdf2.params))) +# need master to get wald_test +#print mdf2.wald_test(np.eye(len(mdf2.params))[1:]) + +''' +>>> mdf2.predict(da.exog.mean(0)) +Traceback (most recent call last): + File "", line 1, in + mdf2.predict(da.exog.mean(0)) + File "e:\josef\eclipsegworkspace\statsmodels-git\statsmodels-all-new2_py27\statsmodels\statsmodels\base\model.py", line 963, in predict + return self.model.predict(self.params, exog, *args, **kwargs) + File "e:\josef\eclipsegworkspace\statsmodels-git\statsmodels-all-new2_py27\statsmodels\statsmodels\genmod\generalized_estimating_equations.py", line 621, in predict + fitted = offset + np.dot(exog, params) +TypeError: unsupported operand type(s) for +: 'NoneType' and 'numpy.float64' +''' +mdf2.predict(da.exog.mean(0), offset=0) +# -0.10867809062890971 + +marg2 = GEEMargins(mdf2, ()) +print(marg2.summary()) + + +mdf_nc = md2.fit(cov_type='naive') +mdf_bc = md2.fit(cov_type='bias_reduced') + +mdf_nc.use_t = False +mdf_nc.df_resid = np.diff(mdf2.model.exog.shape) +mdf_bc.use_t = False +mdf_bc.df_resid = np.diff(mdf2.model.exog.shape) + +tt_nc = mdf_nc.t_test(np.eye(len(mdf2.params))) +tt_bc = mdf_bc.t_test(np.eye(len(mdf2.params))) + +print('\nttest robust') +print(tt2) +print('\nttest naive') +print(tt_nc) +print('\nttest bias corrected') +print(tt_bc) + +print("\nbse after fit option ") +bse = np.column_stack((mdf2.bse, mdf2.bse, mdf_nc.bse, mdf_bc.bse)) +print(bse) + +print("\nimplemented `standard_errors`") +bse2 = np.column_stack((mdf2.bse, mdf2.standard_errors(), + mdf2.standard_errors(covariance_type='naive'), + mdf2.standard_errors(covariance_type='bias_reduced'))) +print(bse2) +print("bse and `standard_errors` agree:", np.allclose(bse, bse2)) + +print("\nimplied standard errors in t_test") +bse1 = np.column_stack((mdf2.bse, tt2.sd, tt_nc.sd, tt_bc.sd)) +print(bse1) +print("t_test uses correct cov_params:", np.allclose(bse1, bse2)) diff --git a/statsmodels/examples/try_gof_chisquare.py b/statsmodels/examples/try_gof_chisquare.py new file mode 100644 index 0000000..93ece1a --- /dev/null +++ b/statsmodels/examples/try_gof_chisquare.py @@ -0,0 +1,101 @@ +# -*- coding: utf-8 -*- +""" + +Created on Thu Feb 28 15:37:53 2013 + +Author: Josef Perktold +""" + +from __future__ import print_function +import numpy as np +from scipy import stats +from statsmodels.stats.gof import (chisquare, chisquare_power, + chisquare_effectsize) + +from numpy.testing import assert_almost_equal + + +nobs = 30000 +n_bins = 5 +probs = 1./np.arange(2, n_bins + 2) +probs /= probs.sum() +#nicer +probs = np.round(probs, 2) +probs[-1] = 1 - probs[:-1].sum() +print("probs", probs) +probs_d = probs.copy() +delta = 0.01 +probs_d[0] += delta +probs_d[1] -= delta +probs_cs = probs.cumsum() +#rvs = np.random.multinomial(n_bins, probs, size=10) +#rvs = np.round(np.random.randn(10), 2) +rvs = np.argmax(np.random.rand(nobs,1) < probs_cs, 1) +print(probs) +print(np.bincount(rvs) * (1. / nobs)) + + +freq = np.bincount(rvs) +print(stats.chisquare(freq, nobs*probs)) +print('null', chisquare(freq, nobs*probs)) +print('delta', chisquare(freq, nobs*probs_d)) +chisq_null, pval_null = chisquare(freq, nobs*probs) + +# effect size ? +d_null = ((freq / float(nobs) - probs)**2 / probs).sum() +print(d_null) +d_delta = ((freq / float(nobs) - probs_d)**2 / probs_d).sum() +print(d_delta) +d_null_alt = ((probs - probs_d)**2 / probs_d).sum() +print(d_null_alt) + +print('\nchisquare with value') +chisq, pval = chisquare(freq, nobs*probs_d) +print(stats.ncx2.sf(chisq_null, n_bins, 0.001 * nobs)) +print(stats.ncx2.sf(chisq, n_bins, 0.001 * nobs)) +print(stats.ncx2.sf(chisq, n_bins, d_delta * nobs)) +print(chisquare(freq, nobs*probs_d, value=np.sqrt(d_delta))) +print(chisquare(freq, nobs*probs_d, value=np.sqrt(chisq / nobs))) +print() + +assert_almost_equal(stats.chi2.sf(d_delta * nobs, n_bins - 1), + chisquare(freq, nobs*probs_d)[1], decimal=13) + +crit = stats.chi2.isf(0.05, n_bins - 1) +power = stats.ncx2.sf(crit, n_bins-1, 0.001**2 * nobs) +#> library(pwr) +#> tr = pwr.chisq.test(w =0.001, N =30000 , df = 5-1, sig.level = 0.05, power = NULL) +assert_almost_equal(power, 0.05147563, decimal=7) +effect_size = 0.001 +power = chisquare_power(effect_size, nobs, n_bins, alpha=0.05) +assert_almost_equal(power, 0.05147563, decimal=7) +print(chisquare(freq, nobs*probs, value=0, ddof=0)) +d_null_alt = ((probs - probs_d)**2 / probs).sum() +print(chisquare(freq, nobs*probs, value=np.sqrt(d_null_alt), ddof=0)) + + +#Monte Carlo to check correct size and power of test + +d_delta_r = chisquare_effectsize(probs, probs_d) +n_rep = 10000 +nobs = 3000 +res_boots = np.zeros((n_rep, 6)) +for i in range(n_rep): + rvs = np.argmax(np.random.rand(nobs,1) < probs_cs, 1) + freq = np.bincount(rvs) + res1 = chisquare(freq, nobs*probs) + res2 = chisquare(freq, nobs*probs_d) + res3 = chisquare(freq, nobs*probs_d, value=d_delta_r) + res_boots[i] = [res1[0], res2[0], res3[0], res1[1], res2[1], res3[1]] + +alpha = np.array([0.01, 0.05, 0.1, 0.25, 0.5]) +chi2_power = chisquare_power(chisquare_effectsize(probs, probs_d), 3000, n_bins, + alpha=[0.01, 0.05, 0.1, 0.25, 0.5]) +print((res_boots[:, 3:] < 0.05).mean(0)) +reject_freq = (res_boots[:, 3:, None] < alpha).mean(0) +reject = (res_boots[:, 3:, None] < alpha).sum(0) + +desired = np.column_stack((alpha, chi2_power, alpha)).T + +print('relative difference Monte Carlo rejection and expected (in %)') +print((reject_freq / desired - 1) * 100) diff --git a/statsmodels/examples/try_polytrend.py b/statsmodels/examples/try_polytrend.py new file mode 100644 index 0000000..6c85572 --- /dev/null +++ b/statsmodels/examples/try_polytrend.py @@ -0,0 +1,66 @@ + + +from __future__ import print_function +import numpy as np +#import statsmodels.linear_model.regression as smreg + +from scipy import special + +import statsmodels.api as sm +from statsmodels.datasets.macrodata import data +dta = data.load() +gdp = np.log(dta.data['realgdp']) + +from numpy import polynomial +from scipy import special + + +maxorder = 20 +polybase = special.chebyt +polybase = special.legendre + +t = np.linspace(-1,1,len(gdp)) + +exog = np.column_stack([polybase(i)(t) for i in range(maxorder)]) + +fitted = [sm.OLS(gdp, exog[:, :maxr]).fit().fittedvalues for maxr in + range(2,maxorder)] + +print((np.corrcoef(exog[:,1:6], rowvar=0)*10000).astype(int)) + +import matplotlib.pyplot as plt + +plt.figure() +plt.plot(gdp, 'o') +for i in range(maxorder-2): + plt.plot(fitted[i]) + +plt.figure() +#plt.plot(gdp, 'o') +for i in range(maxorder-4, maxorder-2): + #plt.figure() + plt.plot(gdp - fitted[i]) + plt.title(str(i+2)) + +plt.figure() +plt.plot(gdp, '.') +plt.plot(fitted[-1], lw=2, color='r') +plt.plot(fitted[0], lw=2, color='g') +plt.title('GDP and Polynomial Trend') + +plt.figure() +plt.plot(gdp - fitted[-1], lw=2, color='r') +plt.plot(gdp - fitted[0], lw=2, color='g') +plt.title('Residual GDP minus Polynomial Trend (green: linear, red: legendre(20))') + + +#orthonormalize an exog using QR + +ex2 = t[:,None]**np.arange(6) #np.vander has columns reversed +q2,r2 = np.linalg.qr(ex2, mode='full') +np.max(np.abs(np.dot(q2.T, q2)-np.eye(6))) +plt.figure() +plt.plot(q2, lw=2) + + +plt.show() diff --git a/statsmodels/examples/try_power.py b/statsmodels/examples/try_power.py new file mode 100644 index 0000000..0604727 --- /dev/null +++ b/statsmodels/examples/try_power.py @@ -0,0 +1,69 @@ +# -*- coding: utf-8 -*- +""" + +Created on Sat Mar 02 14:38:17 2013 + +Author: Josef Perktold +""" + +from __future__ import print_function +import numpy as np + +import statsmodels.stats.power as smp +import statsmodels.stats.proportion as smpr + +sigma=1; d=0.3; nobs=80; alpha=0.05 +print(smp.normal_power(d, nobs/2, 0.05)) +print(smp.NormalIndPower().power(d, nobs, 0.05)) +print(smp.NormalIndPower().solve_power(effect_size=0.3, nobs1=80, alpha=0.05, power=None)) +print(0.475100870572638, 'R') + +norm_pow = smp.normal_power(-0.01, nobs/2, 0.05) +norm_pow_R = 0.05045832927039234 +#value from R: >pwr.2p.test(h=0.01,n=80,sig.level=0.05,alternative="two.sided") +print('norm_pow', norm_pow, norm_pow - norm_pow_R) + +norm_pow = smp.NormalIndPower().power(0.01, nobs, 0.05, alternative="larger") +norm_pow_R = 0.056869534873146124 +#value from R: >pwr.2p.test(h=0.01,n=80,sig.level=0.05,alternative="greater") +print('norm_pow', norm_pow, norm_pow - norm_pow_R) + +# Note: negative effect size is same as switching one-sided alternative +# TODO: should I switch to larger/smaller instead of "one-sided" options +norm_pow = smp.NormalIndPower().power(-0.01, nobs, 0.05, alternative="larger") +norm_pow_R = 0.0438089705093578 +#value from R: >pwr.2p.test(h=0.01,n=80,sig.level=0.05,alternative="less") +print('norm_pow', norm_pow, norm_pow - norm_pow_R) + + +#Note: I use n_bins and ddof instead of df +# pwr.chisq.test(w=0.289,df=(4-1),N=100,sig.level=0.05) +chi2_pow = smp.GofChisquarePower().power(0.289, 100, 4, 0.05) +chi2_pow_R = 0.675077657003721 +print('chi2_pow', chi2_pow, chi2_pow - chi2_pow_R) + +chi2_pow = smp.GofChisquarePower().power(0.01, 100, 4, 0.05) +chi2_pow_R = 0.0505845519208533 +print('chi2_pow', chi2_pow, chi2_pow - chi2_pow_R) + +chi2_pow = smp.GofChisquarePower().power(2, 100, 4, 0.05) +chi2_pow_R = 1 +print('chi2_pow', chi2_pow, chi2_pow - chi2_pow_R) + +chi2_pow = smp.GofChisquarePower().power(0.9, 100, 4, 0.05) +chi2_pow_R = 0.999999999919477 +print('chi2_pow', chi2_pow, chi2_pow - chi2_pow_R, 'lower precision ?') + +chi2_pow = smp.GofChisquarePower().power(0.8, 100, 4, 0.05) +chi2_pow_R = 0.999999968205591 +print('chi2_pow', chi2_pow, chi2_pow - chi2_pow_R) + +def cohen_es(*args, **kwds): + print("You better check what's a meaningful effect size for your question.") + + +#BUG: after fixing 2.sided option, 2 rejection areas +tt_pow = smp.TTestPower().power(effect_size=0.01, nobs=nobs, alpha=0.05) +tt_pow_R = 0.05089485285965 +# value from> pwr.t.test(d=0.01,n=80,sig.level=0.05,type="one.sample",alternative="two.sided") +print('tt_pow', tt_pow, tt_pow - tt_pow_R) diff --git a/statsmodels/examples/try_power2.py b/statsmodels/examples/try_power2.py new file mode 100644 index 0000000..14b27ed --- /dev/null +++ b/statsmodels/examples/try_power2.py @@ -0,0 +1,58 @@ +# -*- coding: utf-8 -*- +""" + +Created on Wed Mar 13 13:06:14 2013 + +Author: Josef Perktold +""" + +from __future__ import print_function +from statsmodels.stats.power import TTestPower, TTestIndPower, tt_solve_power + +if __name__ == '__main__': + effect_size, alpha, power = 0.5, 0.05, 0.8 + + ttest_pow = TTestPower() + print('\nroundtrip - root with respect to all variables') + print('\n calculated, desired') + + nobs_p = ttest_pow.solve_power(effect_size=effect_size, nobs=None, alpha=alpha, power=power) + print('nobs ', nobs_p) + print('effect', ttest_pow.solve_power(effect_size=None, nobs=nobs_p, alpha=alpha, power=power), effect_size) + + print('alpha ', ttest_pow.solve_power(effect_size=effect_size, nobs=nobs_p, alpha=None, power=power), alpha) + print('power ', ttest_pow.solve_power(effect_size=effect_size, nobs=nobs_p, alpha=alpha, power=None), power) + + print('\nroundtrip - root with respect to all variables') + print('\n calculated, desired') + + print('nobs ', tt_solve_power(effect_size=effect_size, nobs=None, alpha=alpha, power=power), nobs_p) + print('effect', tt_solve_power(effect_size=None, nobs=nobs_p, alpha=alpha, power=power), effect_size) + + print('alpha ', tt_solve_power(effect_size=effect_size, nobs=nobs_p, alpha=None, power=power), alpha) + print('power ', tt_solve_power(effect_size=effect_size, nobs=nobs_p, alpha=alpha, power=None), power) + + print('\none sided') + nobs_p1 = tt_solve_power(effect_size=effect_size, nobs=None, alpha=alpha, power=power, alternative='larger') + print('nobs ', nobs_p1) + print('effect', tt_solve_power(effect_size=None, nobs=nobs_p1, alpha=alpha, power=power, alternative='larger'), effect_size) + print('alpha ', tt_solve_power(effect_size=effect_size, nobs=nobs_p1, alpha=None, power=power, alternative='larger'), alpha) + print('power ', tt_solve_power(effect_size=effect_size, nobs=nobs_p1, alpha=alpha, power=None, alternative='larger'), power) + + #start_ttp = dict(effect_size=0.01, nobs1=10., alpha=0.15, power=0.6) + + ttind_solve_power = TTestIndPower().solve_power + + print('\nroundtrip - root with respect to all variables') + print('\n calculated, desired') + + nobs_p2 = ttind_solve_power(effect_size=effect_size, nobs1=None, alpha=alpha, power=power) + print('nobs ', nobs_p2) + print('effect', ttind_solve_power(effect_size=None, nobs1=nobs_p2, alpha=alpha, power=power), effect_size) + print('alpha ', ttind_solve_power(effect_size=effect_size, nobs1=nobs_p2, alpha=None, power=power), alpha) + print('power ', ttind_solve_power(effect_size=effect_size, nobs1=nobs_p2, alpha=alpha, power=None), power) + print('ratio ', ttind_solve_power(effect_size=effect_size, nobs1=nobs_p2, alpha=alpha, power=power, ratio=None), 1) + + print('\ncheck ratio') + print('smaller power', ttind_solve_power(effect_size=effect_size, nobs1=nobs_p2, alpha=alpha, power=0.7, ratio=None), '< 1') + print('larger power ', ttind_solve_power(effect_size=effect_size, nobs1=nobs_p2, alpha=alpha, power=0.9, ratio=None), '> 1') diff --git a/statsmodels/examples/try_tukey_hsd.py b/statsmodels/examples/try_tukey_hsd.py new file mode 100644 index 0000000..a5b9bab --- /dev/null +++ b/statsmodels/examples/try_tukey_hsd.py @@ -0,0 +1,223 @@ +# -*- coding: utf-8 -*- +""" + +Created on Wed Mar 28 15:34:18 2012 + +Author: Josef Perktold +""" + +from __future__ import print_function +from statsmodels.compat.python import StringIO +import numpy as np +from numpy.testing import assert_almost_equal, assert_equal + +from statsmodels.stats.libqsturng import qsturng + +ss = '''\ + 43.9 1 1 + 39.0 1 2 + 46.7 1 3 + 43.8 1 4 + 44.2 1 5 + 47.7 1 6 + 43.6 1 7 + 38.9 1 8 + 43.6 1 9 + 40.0 1 10 + 89.8 2 1 + 87.1 2 2 + 92.7 2 3 + 90.6 2 4 + 87.7 2 5 + 92.4 2 6 + 86.1 2 7 + 88.1 2 8 + 90.8 2 9 + 89.1 2 10 + 68.4 3 1 + 69.3 3 2 + 68.5 3 3 + 66.4 3 4 + 70.0 3 5 + 68.1 3 6 + 70.6 3 7 + 65.2 3 8 + 63.8 3 9 + 69.2 3 10 + 36.2 4 1 + 45.2 4 2 + 40.7 4 3 + 40.5 4 4 + 39.3 4 5 + 40.3 4 6 + 43.2 4 7 + 38.7 4 8 + 40.9 4 9 + 39.7 4 10''' + +#idx Treatment StressReduction +ss2 = '''\ +1 mental 2 +2 mental 2 +3 mental 3 +4 mental 4 +5 mental 4 +6 mental 5 +7 mental 3 +8 mental 4 +9 mental 4 +10 mental 4 +11 physical 4 +12 physical 4 +13 physical 3 +14 physical 5 +15 physical 4 +16 physical 1 +17 physical 1 +18 physical 2 +19 physical 3 +20 physical 3 +21 medical 1 +22 medical 2 +23 medical 2 +24 medical 2 +25 medical 3 +26 medical 2 +27 medical 3 +28 medical 1 +29 medical 3 +30 medical 1''' + +ss3 = '''\ +1 24.5 +1 23.5 +1 26.4 +1 27.1 +1 29.9 +2 28.4 +2 34.2 +2 29.5 +2 32.2 +2 30.1 +3 26.1 +3 28.3 +3 24.3 +3 26.2 +3 27.8''' + +cylinders = np.array([8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 4, 8, 8, 8, 8, 8, 8, 8, 8, 8, 4, 6, 6, 6, 4, 4, + 4, 4, 4, 4, 6, 8, 8, 8, 8, 4, 4, 4, 4, 8, 8, 8, 8, 6, 6, 6, 6, 4, 4, 4, 4, 6, 6, + 6, 6, 4, 4, 4, 4, 4, 8, 4, 6, 6, 8, 8, 8, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 6, 6, 4, 6, 4, 4, 4, 4, 4, 4, 4, 4]) +cyl_labels = np.array(['USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'France', + 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'Japan', 'USA', 'USA', 'USA', 'Japan', + 'Germany', 'France', 'Germany', 'Sweden', 'Germany', 'USA', 'USA', 'USA', 'USA', 'USA', 'Germany', + 'USA', 'USA', 'France', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'Germany', + 'Japan', 'USA', 'USA', 'USA', 'USA', 'Germany', 'Japan', 'Japan', 'USA', 'Sweden', 'USA', 'France', + 'Japan', 'Germany', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', + 'Germany', 'Japan', 'Japan', 'USA', 'USA', 'Japan', 'Japan', 'Japan', 'Japan', 'Japan', 'Japan', 'USA', + 'USA', 'USA', 'USA', 'Japan', 'USA', 'USA', 'USA', 'Germany', 'USA', 'USA', 'USA']) + +dta = np.recfromtxt(StringIO(ss), names=("Rust","Brand","Replication")) +dta2 = np.recfromtxt(StringIO(ss2), names = ("idx", "Treatment", "StressReduction")) +dta3 = np.recfromtxt(StringIO(ss3), names = ("Brand", "Relief")) + +from statsmodels.sandbox.stats.multicomp import tukeyhsd +import statsmodels.sandbox.stats.multicomp as multi +#print tukeyhsd(dta['Brand'], dta['Rust']) + +def get_thsd(mci): + var_ = np.var(mci.groupstats.groupdemean(), ddof=len(mci.groupsunique)) + means = mci.groupstats.groupmean + nobs = mci.groupstats.groupnobs + resi = tukeyhsd(means, nobs, var_, df=None, alpha=0.05, q_crit=qsturng(0.95, len(means), (nobs-1).sum())) + print(resi[4]) + var2 = (mci.groupstats.groupvarwithin() * (nobs - 1)).sum() \ + / (nobs - 1).sum() + assert_almost_equal(var_, var2, decimal=14) + return resi + +mc = multi.MultiComparison(dta['Rust'], dta['Brand']) +res = mc.tukeyhsd() +print(res) + +mc2 = multi.MultiComparison(dta2['StressReduction'], dta2['Treatment']) +res2 = mc2.tukeyhsd() +print(res2) + +mc2s = multi.MultiComparison(dta2['StressReduction'][3:29], dta2['Treatment'][3:29]) +res2s = mc2s.tukeyhsd() +print(res2s) +res2s_001 = mc2s.tukeyhsd(alpha=0.01) +#R result +tukeyhsd2s = np.array([1.888889,0.8888889,-1,0.2658549,-0.5908785,-2.587133,3.511923,2.368656,0.5871331,0.002837638,0.150456,0.1266072]).reshape(3,4, order='F') +assert_almost_equal(res2s_001.confint, tukeyhsd2s[:,1:3], decimal=3) + +mc3 = multi.MultiComparison(dta3['Relief'], dta3['Brand']) +res3 = mc3.tukeyhsd() +print(res3) + +tukeyhsd4 = multi.MultiComparison(cylinders, cyl_labels, group_order=["Sweden", "Japan", "Germany", "France", "USA"]) +res4 = tukeyhsd4.tukeyhsd() +print(res4) +try: + import matplotlib.pyplot as plt + fig = res4.plot_simultaneous("USA") + plt.show() +except Exception as e: + print(e) + +for mci in [mc, mc2, mc3]: + get_thsd(mci) + +from scipy import stats +print(mc2.allpairtest(stats.ttest_ind, method='b')[0]) + +'''same as SAS: +>>> np.var(mci.groupstats.groupdemean(), ddof=3) +4.6773333333333351 +>>> var_ = np.var(mci.groupstats.groupdemean(), ddof=3) +>>> tukeyhsd(means, nobs, var_, df=None, alpha=0.05, q_crit=qsturng(0.95, 3, 12))[4] +array([[ 0.95263648, 8.24736352], + [-3.38736352, 3.90736352], + [-7.98736352, -0.69263648]]) +>>> tukeyhsd(means, nobs, var_, df=None, alpha=0.05, q_crit=3.77278)[4] +array([[ 0.95098508, 8.24901492], + [-3.38901492, 3.90901492], + [-7.98901492, -0.69098508]]) +''' + +ss5 = '''\ +Comparisons significant at the 0.05 level are indicated by ***. +BRAND +Comparison Difference +Between +Means Simultaneous 95% Confidence Limits Sign. +2 - 3 4.340 0.691 7.989 *** +2 - 1 4.600 0.951 8.249 *** +3 - 2 -4.340 -7.989 -0.691 *** +3 - 1 0.260 -3.389 3.909 - +1 - 2 -4.600 -8.249 -0.951 *** +1 - 3 -0.260 -3.909 3.389 ''' + +ss5 = '''\ +2 - 3 4.340 0.691 7.989 *** +2 - 1 4.600 0.951 8.249 *** +3 - 2 -4.340 -7.989 -0.691 *** +3 - 1 0.260 -3.389 3.909 - +1 - 2 -4.600 -8.249 -0.951 *** +1 - 3 -0.260 -3.909 3.389 ''' + +dta5 = np.recfromtxt(StringIO(ss5), names = ('pair', 'mean', 'lower', 'upper', 'sig'), delimiter='\t') + +sas_ = dta5[[1,3,2]] +confint1 = res3.confint +confint2 = sas_[['lower','upper']].view(float).reshape((3,2)) +assert_almost_equal(confint1, confint2, decimal=2) +reject1 = res3.reject +reject2 = sas_['sig'] == '***' +assert_equal(reject1, reject2) +meandiff1 = res3.meandiffs +meandiff2 = sas_['mean'] +assert_almost_equal(meandiff1, meandiff2, decimal=14) + diff --git a/statsmodels/examples/tsa/ar1cholesky.py b/statsmodels/examples/tsa/ar1cholesky.py new file mode 100644 index 0000000..1751c57 --- /dev/null +++ b/statsmodels/examples/tsa/ar1cholesky.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +""" +Created on Thu Oct 21 15:42:18 2010 + +Author: josef-pktd +""" + +from __future__ import print_function +import numpy as np +from scipy import linalg + +def tiny2zero(x, eps = 1e-15): + '''replace abs values smaller than eps by zero, makes copy + ''' + mask = np.abs(x.copy()) < eps + x[mask] = 0 + return x + + +nobs = 5 +autocov = 0.8**np.arange(nobs) +#from statsmodels.tsa import arima_process as ap +#autocov = ap.arma_acf([1, -0.8, 0.2], [1])[:10] +autocov = np.array([ 3., 2., 1., 0.4, 0.12, 0.016, -0.0112, + 0.016 , -0.0112 , -0.01216 , -0.007488 , -0.0035584])/3. +autocov = autocov[:nobs] +sigma = linalg.toeplitz(autocov) +sigmainv = linalg.inv(sigma) + +c = linalg.cholesky(sigma, lower=True) +ci = linalg.cholesky(sigmainv, lower=True) + +print(sigma) +print(tiny2zero(ci/ci.max())) + +"this is the text book transformation" +print('coefficient for first observation', np.sqrt(1-autocov[1]**2)) +ci2 = ci[::-1,::-1].T +print(tiny2zero(ci2/ci2.max())) + +print(np.dot(ci/ci.max(), np.ones(nobs))) + +print(np.dot(ci2/ci2.max(), np.ones(nobs))) diff --git a/statsmodels/examples/tsa/arma_plots.py b/statsmodels/examples/tsa/arma_plots.py new file mode 100644 index 0000000..7bfddd1 --- /dev/null +++ b/statsmodels/examples/tsa/arma_plots.py @@ -0,0 +1,77 @@ +'''Plot acf and pacf for some ARMA(1,1) + +''' + + +from __future__ import print_function +import numpy as np +import matplotlib.pyplot as plt +import statsmodels.tsa.arima_process as tsp +from statsmodels.sandbox.tsa.fftarma import ArmaFft as FftArmaProcess +import statsmodels.tsa.stattools as tss +from statsmodels.graphics.tsaplots import plotacf + +np.set_printoptions(precision=2) + + +arcoefs = [0.9, 0., -0.5] #[0.9, 0.5, 0.1, 0., -0.5] +macoefs = [0.9, 0., -0.5] #[0.9, 0.5, 0.1, 0., -0.5] +nsample = 1000 +nburnin = 1000 +sig = 1 + +fig = plt.figure(figsize=(8, 13)) +fig.suptitle('ARMA: Autocorrelation (left) and Partial Autocorrelation (right)') +subplotcount = 1 +nrows = 4 +for arcoef in arcoefs[:-1]: + for macoef in macoefs[:-1]: + ar = np.r_[1., -arcoef] + ma = np.r_[1., macoef] + + #y = tsp.arma_generate_sample(ar,ma,nsample, sig, burnin) + #armaprocess = FftArmaProcess(ar, ma, nsample) #TODO: make n optional + #armaprocess.plot4() + armaprocess = tsp.ArmaProcess(ar, ma) + acf = armaprocess.acf(20)[:20] + pacf = armaprocess.pacf(20)[:20] + ax = fig.add_subplot(nrows, 2, subplotcount) + plotacf(acf, ax=ax) +## ax.set_title('Autocorrelation \nar=%s, ma=%rs' % (ar, ma), +## size='xx-small') + ax.text(0.7, 0.6, 'ar =%s \nma=%s' % (ar, ma), + transform=ax.transAxes, + horizontalalignment='left', #'right', + size='xx-small') + ax.set_xlim(-1,20) + subplotcount +=1 + ax = fig.add_subplot(nrows, 2, subplotcount) + plotacf(pacf, ax=ax) +## ax.set_title('Partial Autocorrelation \nar=%s, ma=%rs' % (ar, ma), +## size='xx-small') + ax.text(0.7, 0.6, 'ar =%s \nma=%s' % (ar, ma), + transform=ax.transAxes, + horizontalalignment='left', #'right', + size='xx-small') + ax.set_xlim(-1,20) + subplotcount +=1 + +axs = fig.axes +### turn of the 2nd column y tick labels +##for ax in axs[1::2]:#[:,1].flat: +## for label in ax.get_yticklabels(): label.set_visible(False) + +# turn off all but the bottom xtick labels +for ax in axs[:-2]:#[:-1,:].flat: + for label in ax.get_xticklabels(): label.set_visible(False) + + +# use a MaxNLocator on the first column y axis if you have a bunch of +# rows to avoid bunching; example below uses at most 3 ticks +import matplotlib.ticker as mticker +for ax in axs: #[::2]:#[:,1].flat: + ax.yaxis.set_major_locator( mticker.MaxNLocator(3 )) + + + +plt.show() diff --git a/statsmodels/examples/tsa/compare_arma.py b/statsmodels/examples/tsa/compare_arma.py new file mode 100644 index 0000000..3b26f81 --- /dev/null +++ b/statsmodels/examples/tsa/compare_arma.py @@ -0,0 +1,78 @@ +from __future__ import print_function +from time import time +from statsmodels.tsa.arma_mle import Arma +from statsmodels.tsa.api import ARMA +import numpy as np + +print("Battle of the dueling ARMAs") + +y_arma22 = np.loadtxt(r'C:\Josef\eclipsegworkspace\statsmodels-josef-experimental-gsoc\scikits\statsmodels\tsa\y_arma22.txt') + +arma1 = Arma(y_arma22) +arma2 = ARMA(y_arma22) + +print("The actual results from gretl exact mle are") +params_mle = np.array([.826990, -.333986, .0362419, -.792825]) +sigma_mle = 1.094011 +llf_mle = -1510.233 +print("params: ", params_mle) +print("sigma: ", sigma_mle) +print("llf: ", llf_mle) +print("The actual results from gretl css are") +params_css = np.array([.824810, -.337077, .0407222, -.789792]) +sigma_css = 1.095688 +llf_css = -1507.301 + +results = [] +results += ["gretl exact mle", params_mle, sigma_mle, llf_mle] +results += ["gretl css", params_css, sigma_css, llf_css] + +t0 = time() +print("Exact MLE - Kalman filter version using l_bfgs_b") +arma2.fit(order=(2,2), trend='nc') +t1 = time() +print("params: ", arma2.params) +print("sigma: ", arma2.sigma2**.5) +arma2.llf = arma2.loglike(arma2._invtransparams(arma2.params)) +results += ["exact mle kalmanf", arma2.params, arma2.sigma2**.5, arma2.llf] +print('time used:', t1-t0) + +t1=time() +print("CSS MLE - ARMA Class") +arma2.fit(order=(2,2), trend='nc', method="css") +t2=time() +arma2.llf = arma2.loglike_css(arma2._invtransparams(arma2.params)) +print("params: ", arma2.params) +print("sigma: ", arma2.sigma2**.5) +results += ["css kalmanf", arma2.params, arma2.sigma2**.5, arma2.llf] +print('time used:', t2-t1) + +print("Arma.fit_mle results") +# have to set nar and nma manually +arma1.nar = 2 +arma1.nma = 2 +t2=time() +ret = arma1.fit_mle() +t3=time() +print("params, first 4, sigma, last 1 ", ret.params) +results += ["Arma.fit_mle ", ret.params[:4], ret.params[-1], ret.llf] +print('time used:', t3-t2) + +print("Arma.fit method = \"ls\"") +t3=time() +ret2 = arma1.fit(order=(2,0,2), method="ls") +t4=time() +print(ret2[0]) +results += ["Arma.fit ls", ret2[0]] +print('time used:', t4-t3) + +print("Arma.fit method = \"CLS\"") +t4=time() +ret3 = arma1.fit(order=(2,0,2), method="None") +t5=time() +print(ret3) +results += ["Arma.fit other", ret3[0]] +print('time used:', t5-t4) + +for i in results: print(i) + diff --git a/statsmodels/examples/tsa/ex_arma.py b/statsmodels/examples/tsa/ex_arma.py new file mode 100644 index 0000000..0bcf0b5 --- /dev/null +++ b/statsmodels/examples/tsa/ex_arma.py @@ -0,0 +1,102 @@ +''' + +doesn't seem to work so well anymore even with nobs=1000 ??? +works ok if noise variance is large +''' + +from __future__ import print_function +import numpy as np +import statsmodels.api as sm +from statsmodels.tsa.arima_process import arma_generate_sample +from statsmodels.tsa.arma_mle import Arma as Arma +from statsmodels.tsa.arima_process import ARIMA as ARIMA_old +from statsmodels.sandbox.tsa.garch import Arma as Armamle_old +from statsmodels.tsa.arima import ARMA as ARMA_kf + + + + +print("\nExample 1") +ar = [1.0, -0.6, 0.1] +ma = [1.0, 0.5, 0.3] +nobs = 1000 +y22 = arma_generate_sample(ar, ma, nobs+1000, 0.5)[-nobs:] +y22 -= y22.mean() +start_params = [0.1, 0.1, 0.1, 0.1] +start_params_lhs = [-0.1, -0.1, 0.1, 0.1] + +print('truelhs', np.r_[ar[1:], ma[1:]]) + + + + + +###bug in current version, fixed in Skipper and 1 more +###arr[1:q,:] = params[p+k:p+k+q] # p to p+q short params are MA coeffs +###ValueError: array dimensions are not compatible for copy +##arma22 = ARMA_kf(y22, constant=False, order=(2,2)) +##res = arma22.fit(start_params=start_params) +##print res.params + +print('\nARIMA new') +arest2 = Arma(y22) + +naryw = 4 #= 30 +resyw = sm.regression.yule_walker(y22, order=naryw, inv=True) +arest2.nar = naryw +arest2.nma = 0 +e = arest2.geterrors(np.r_[1, -resyw[0]]) +x=sm.tsa.tsatools.lagmat2ds(np.column_stack((y22,e)),3,dropex=1, + trim='both') +yt = x[:,0] +xt = x[:,1:] +res_ols = sm.OLS(yt, xt).fit() +print('hannan_rissannen') +print(res_ols.params) +start_params = res_ols.params +start_params_mle = np.r_[-res_ols.params[:2], + res_ols.params[2:], + #res_ols.scale] + #areste.var()] + np.sqrt(res_ols.scale)] +#need to iterate, ar1 too large ma terms too small +#fix large parameters, if hannan_rissannen are too large +start_params_mle[:-1] = (np.sign(start_params_mle[:-1]) + * np.minimum(np.abs(start_params_mle[:-1]),0.75)) + + +print('conditional least-squares') + +#print rhohat2 +print('with mle') +arest2.nar = 2 +arest2.nma = 2 +# +res = arest2.fit_mle(start_params=start_params_mle, method='nm') #no order in fit +print(res.params) +rhohat2, cov_x2a, infodict, mesg, ier = arest2.fit((2,2)) +print('\nARIMA_old') +arest = ARIMA_old(y22) +rhohat1, cov_x1, infodict, mesg, ier = arest.fit((2,0,2)) +print(rhohat1) +print(np.sqrt(np.diag(cov_x1))) +err1 = arest.errfn(x=y22) +print(np.var(err1)) +print('bse ls, formula not checked') +print(np.sqrt(np.diag(cov_x1))*err1.std()) +print('bsejac for mle') +#print arest2.bsejac +#TODO:check bsejac raises singular matrix linalg error +#in model.py line620: return np.linalg.inv(np.dot(jacv.T, jacv)) + +print('\nyule-walker') +print(sm.regression.yule_walker(y22, order=2, inv=True)) + +print('\nArmamle_old') +arma1 = Armamle_old(y22) +arma1.nar = 2 +arma1.nma = 2 +#arma1res = arma1.fit(start_params=np.r_[-0.5, -0.1, 0.1, 0.1, 0.5], method='fmin') + #maxfun=1000) +arma1res = arma1.fit(start_params=res.params*0.7, method='fmin') +print(arma1res.params) diff --git a/statsmodels/examples/tsa/ex_arma_all.py b/statsmodels/examples/tsa/ex_arma_all.py new file mode 100644 index 0000000..1cc1c84 --- /dev/null +++ b/statsmodels/examples/tsa/ex_arma_all.py @@ -0,0 +1,74 @@ + + +from __future__ import print_function +import numpy as np +from numpy.testing import assert_almost_equal +import matplotlib.pyplot as plt +import statsmodels.sandbox.tsa.fftarma as fa +from statsmodels.tsa.descriptivestats import TsaDescriptive +from statsmodels.tsa.arma_mle import Arma + +x = fa.ArmaFft([1, -0.5], [1., 0.4], 40).generate_sample(size=200, burnin=1000) +d = TsaDescriptive(x) +d.plot4() + +#d.fit(order=(1,1)) +d.fit((1,1), trend='nc') +print(d.res.params) + +modc = Arma(x) +resls = modc.fit(order=(1,1)) +print(resls[0]) +rescm = modc.fit_mle(order=(1,1), start_params=[-0.4,0.4, 1.]) +print(rescm.params) + +#decimal 1 corresponds to threshold of 5% difference +assert_almost_equal(resls[0] / d.res.params, 1, decimal=1) +assert_almost_equal(rescm.params[:-1] / d.res.params, 1, decimal=1) +#copied to tsa.tests + +plt.figure() +plt.plot(x, 'b-o') +plt.plot(modc.predicted(), 'r-') +plt.figure() +plt.plot(modc.error_estimate) +#plt.show() + +from statsmodels.miscmodels.tmodel import TArma + +modct = TArma(x) +reslst = modc.fit(order=(1,1)) +print(reslst[0]) +rescmt = modct.fit_mle(order=(1,1), start_params=[-0.4,0.4, 10, 1.],maxiter=500, + maxfun=500) +print(rescmt.params) + + +from statsmodels.tsa.arima_model import ARMA +mkf = ARMA(x) +##rkf = mkf.fit((1,1)) +##rkf.params +rkf = mkf.fit((1,1), trend='nc') +print(rkf.params) + +from statsmodels.tsa.arima_process import arma_generate_sample +np.random.seed(12345) +y_arma22 = arma_generate_sample([1.,-.85,.35, -0.1],[1,.25,-.7], nsample=1000) +##arma22 = ARMA(y_arma22) +##res22 = arma22.fit(trend = 'nc', order=(2,2)) +##print 'kf ',res22.params +##res22css = arma22.fit(method='css',trend = 'nc', order=(2,2)) +##print 'css', res22css.params +mod22 = Arma(y_arma22) +resls22 = mod22.fit(order=(2,2)) +print('ls ', resls22[0]) +resmle22 = mod22.fit_mle(order=(2,2), maxfun=2000) +print('mle', resmle22.params) + +f = mod22.forecast() +f3 = mod22.forecast3(start=900)[-20:] + +print(y_arma22[-10:]) +print(f[-20:]) +print(f3[-109:-90]) +plt.show() \ No newline at end of file diff --git a/statsmodels/examples/tsa/ex_coint.py b/statsmodels/examples/tsa/ex_coint.py new file mode 100644 index 0000000..6685604 --- /dev/null +++ b/statsmodels/examples/tsa/ex_coint.py @@ -0,0 +1,9 @@ + +from __future__ import print_function +from statsmodels.tsa.tests.test_stattools import CheckCoint, TestCoint_t + + +#test whether t-test for cointegration equals that produced by Stata + +tst = TestCoint_t() +print(tst.test_tstat()) diff --git a/statsmodels/examples/tsa/ex_var.py b/statsmodels/examples/tsa/ex_var.py new file mode 100644 index 0000000..a8a1a6e --- /dev/null +++ b/statsmodels/examples/tsa/ex_var.py @@ -0,0 +1,46 @@ + +from __future__ import print_function +import numpy as np +import statsmodels.api as sm +from statsmodels.tsa.api import VAR + +# some example data +mdata = sm.datasets.macrodata.load().data +mdata = mdata[['realgdp','realcons','realinv']] +names = mdata.dtype.names +data = mdata.view((float,3)) + +use_growthrate = False #True #False +if use_growthrate: + data = 100 * 4 * np.diff(np.log(data), axis=0) + +model = VAR(data, names=names) +res = model.fit(4) + +nobs_all = data.shape[0] + +#in-sample 1-step ahead forecasts +fc_in = np.array([np.squeeze(res.forecast(model.y[t-20:t], 1)) + for t in range(nobs_all-6,nobs_all)]) + +print(fc_in - res.fittedvalues[-6:]) + +#out-of-sample 1-step ahead forecasts +fc_out = np.array([np.squeeze(VAR(data[:t]).fit(2).forecast(data[t-20:t], 1)) + for t in range(nobs_all-6,nobs_all)]) + +print(fc_out - data[nobs_all-6:nobs_all]) +print(fc_out - res.fittedvalues[-6:]) + + +#out-of-sample h-step ahead forecasts +h = 2 +fc_out = np.array([VAR(data[:t]).fit(2).forecast(data[t-20:t], h)[-1] + for t in range(nobs_all-6-h+1,nobs_all-h+1)]) + +print(fc_out - data[nobs_all-6:nobs_all]) #out-of-sample forecast error +print(fc_out - res.fittedvalues[-6:]) + +import matplotlib.pyplot as plt +res.plot_forecast(20) +#plt.show() diff --git a/statsmodels/examples/tsa/ex_var_reorder.py b/statsmodels/examples/tsa/ex_var_reorder.py new file mode 100644 index 0000000..bdba3df --- /dev/null +++ b/statsmodels/examples/tsa/ex_var_reorder.py @@ -0,0 +1,7 @@ + +from __future__ import print_function +import statsmodels.api as sm +from statsmodels.tsa.vector_ar.tests.test_var import TestVARResults + +test_VAR = TestVARResults() +test_VAR.test_reorder() diff --git a/statsmodels/examples/tsa/lagpolynomial.py b/statsmodels/examples/tsa/lagpolynomial.py new file mode 100644 index 0000000..e6690e6 --- /dev/null +++ b/statsmodels/examples/tsa/lagpolynomial.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +""" +Created on Fri Oct 22 08:13:38 2010 + +Author: josef-pktd +License: BSD (3-clause) +""" + +from __future__ import print_function +import numpy as np +from numpy import polynomial as npp + + +class LagPolynomial(npp.Polynomial): + + #def __init__(self, maxlag): + + def pad(self, maxlag): + return LagPolynomial(np.r_[self.coef, np.zeros(maxlag-len(self.coef))]) + + def padflip(self, maxlag): + return LagPolynomial(np.r_[self.coef, np.zeros(maxlag-len(self.coef))][::-1]) + + def flip(self): + '''reverse polynomial coefficients + ''' + return LagPolynomial(self.coef[::-1]) + + def div(self, other, maxlag=None): + '''padded division, pads numerator with zeros to maxlag + ''' + if maxlag is None: + maxlag = max(len(self.coef), len(other.coef)) + 1 + return (self.padflip(maxlag) / other.flip()).flip() + + def filter(self, arr): + return (self * arr).coef[:-len(self.coef)] #trim to end + + + +ar = LagPolynomial([1, -0.8]) +arpad = ar.pad(10) + +ma = LagPolynomial([1, 0.1]) +mapad = ma.pad(10) + +unit = LagPolynomial([1]) diff --git a/statsmodels/examples/tsa/try_ar.py b/statsmodels/examples/tsa/try_ar.py new file mode 100644 index 0000000..c29db27 --- /dev/null +++ b/statsmodels/examples/tsa/try_ar.py @@ -0,0 +1,81 @@ +# -*- coding: utf-8 -*- +""" +Created on Thu Oct 21 21:45:24 2010 + +Author: josef-pktd +""" + +from __future__ import print_function +import numpy as np +from scipy import signal + +def armaloop(arcoefs, macoefs, x): + '''get arma recursion in simple loop + + for simplicity assumes that ma polynomial is not longer than the ar-polynomial + + Parameters + ---------- + arcoefs : array_like + autoregressive coefficients in right hand side parameterization + macoefs : array_like + moving average coefficients, without leading 1 + + Returns + ------- + y : ndarray + predicted values, initial values are the same as the observed values + e : ndarray + predicted residuals, zero for initial observations + + Notes + ----- + Except for the treatment of initial observations this is the same as using + scipy.signal.lfilter, which is much faster. Written for testing only + ''' + arcoefs_r = np.asarray(arcoefs) + macoefs_r = np.asarray(macoefs) + x = np.asarray(x) + nobs = x.shape[0] + #assume ar longer than ma + arlag = arcoefs_r.shape[0] + malag = macoefs_r.shape[0] + maxlag = max(arlag, malag) + print(maxlag) + y = np.zeros(x.shape, float) + e = np.zeros(x.shape, float) + y[:maxlag] = x[:maxlag] + + #if malag > arlaga: + for t in range(arlag, maxlag): + y[t] = (x[t-arlag:t] * arcoefs_r).sum(0) + (e[:t] * macoefs_r[:t]).sum(0) + e[t] = x[t] - y[t] + + for t in range(maxlag, nobs): + #wrong broadcasting, 1d only + y[t] = (x[t-arlag:t] * arcoefs_r).sum(0) + (e[t-malag:t] * macoefs_r).sum(0) + e[t] = x[t] - y[t] + + return y, e + +arcoefs, macoefs = -np.array([1, -0.8, 0.2])[1:], np.array([1., 0.5, 0.1])[1:] +print(armaloop(arcoefs, macoefs, np.ones(10))) +print(armaloop([0.8], [], np.ones(10))) +print(armaloop([0.8], [], np.arange(2,10))) +y, e = armaloop([0.1], [0.8], np.arange(2,10)) +print(e) +print(signal.lfilter(np.array([1, -0.1]), np.array([1., 0.8]), np.arange(2,10))) + +y, e = armaloop([], [0.8], np.ones(10)) +print(e) +print(signal.lfilter(np.array([1, -0.]), np.array([1., 0.8]), np.ones(10))) + +ic=signal.lfiltic(np.array([1, -0.1]), np.array([1., 0.8]), np.ones([0]), np.array([1])) +print(signal.lfilter(np.array([1, -0.1]), np.array([1., 0.8]), np.ones(10), zi=ic)) + +zi = signal.lfilter_zi(np.array([1, -0.8, 0.2]), np.array([1., 0, 0])) +print(signal.lfilter(np.array([1, -0.1]), np.array([1., 0.8]), np.ones(10), zi=zi)) +print(signal.filtfilt(np.array([1, -0.8]), np.array([1.]), np.ones(10))) + +#todo write examples/test across different versions + diff --git a/statsmodels/examples/tut_ols_ancova.py b/statsmodels/examples/tut_ols_ancova.py new file mode 100644 index 0000000..2940bf7 --- /dev/null +++ b/statsmodels/examples/tut_ols_ancova.py @@ -0,0 +1,102 @@ +'''Examples OLS + +Note: uncomment plt.show() to display graphs + +Summary: +======== + +Relevant part of construction of design matrix +xg includes group numbers/labels, +x1 is continuous explanatory variable + +>>> dummy = (xg[:,None] == np.unique(xg)).astype(float) +>>> X = np.c_[x1, dummy[:,1:], np.ones(nsample)] + +Estimate the model + +>>> res2 = sm.OLS(y, X).fit() +>>> print res2.params +[ 1.00901524 3.08466166 -2.84716135 9.94655423] +>>> print res2.bse +[ 0.07499873 0.71217506 1.16037215 0.38826843] +>>> prstd, iv_l, iv_u = wls_prediction_std(res2) + +"Test hypothesis that all groups have same intercept" + +>>> R = [[0, 1, 0, 0], +... [0, 0, 1, 0]] + +>>> print res2.f_test(R) + + +strongly rejected because differences in intercept are very large + +''' + +from __future__ import print_function +import numpy as np +import statsmodels.api as sm +import matplotlib.pyplot as plt +from statsmodels.sandbox.regression.predstd import wls_prediction_std + +#fix a seed for these examples +np.random.seed(98765789) + +#OLS with dummy variables, similar to ANCOVA +#------------------------------------------- + +#construct simulated example: +#3 groups common slope but different intercepts + +nsample = 50 +x1 = np.linspace(0, 20, nsample) +sig = 1. +#suppose observations from 3 groups +xg = np.zeros(nsample, int) +xg[20:40] = 1 +xg[40:] = 2 +#print xg +dummy = (xg[:,None] == np.unique(xg)).astype(float) +#use group 0 as benchmark +X = np.c_[x1, dummy[:,1:], np.ones(nsample)] +beta = [1., 3, -3, 10] +y_true = np.dot(X, beta) +y = y_true + sig * np.random.normal(size=nsample) + +#estimate +#~~~~~~~~ + +res2 = sm.OLS(y, X).fit() +#print "estimated parameters: x d1-d0 d2-d0 constant" +print(res2.params) +#print "standard deviation of parameter estimates" +print(res2.bse) +prstd, iv_l, iv_u = wls_prediction_std(res2) +#print res.summary() + +#plot +#~~~~ + +plt.figure() +plt.plot(x1, y, 'o', x1, y_true, 'b-') +plt.plot(x1, res2.fittedvalues, 'r--.') +plt.plot(x1, iv_u, 'r--') +plt.plot(x1, iv_l, 'r--') +plt.title('3 groups: different intercepts, common slope; blue: true, red: OLS') +plt.show() + + +#Test hypothesis that all groups have same intercept +#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +R = [[0, 1, 0, 0], + [0, 0, 1, 0]] + +# F test joint hypothesis R * beta = 0 +# i.e. coefficient on both dummy variables equal zero +print("Test hypothesis that all groups have same intercept") +print(res2.f_test(R)) + + + + diff --git a/statsmodels/examples/tut_ols_rlm_short.py b/statsmodels/examples/tut_ols_rlm_short.py new file mode 100644 index 0000000..21cdc16 --- /dev/null +++ b/statsmodels/examples/tut_ols_rlm_short.py @@ -0,0 +1,63 @@ +'''Examples: comparing OLS and RLM + +robust estimators and outliers + +RLM is less influenced by outliers than OLS and has estimated slope +closer to true slope and not tilted like OLS. + +Note: uncomment plt.show() to display graphs +''' + +from __future__ import print_function +import numpy as np +#from scipy import stats +import statsmodels.api as sm +import matplotlib.pyplot as plt +from statsmodels.sandbox.regression.predstd import wls_prediction_std + +#fix a seed for these examples +np.random.seed(98765789) + +nsample = 50 +x1 = np.linspace(0, 20, nsample) +X = np.c_[x1, np.ones(nsample)] + +sig = 0.3 # smaller error variance makes OLS<->RLM contrast bigger +beta = [0.5, 5.] +y_true2 = np.dot(X, beta) +y2 = y_true2 + sig*1. * np.random.normal(size=nsample) +y2[[39,41,43,45,48]] -= 5 # add some outliers (10% of nsample) + + +# Example: estimate linear function (true is linear) + +plt.figure() +plt.plot(x1, y2, 'o', x1, y_true2, 'b-') + + +res2 = sm.OLS(y2, X).fit() +print("OLS: parameter estimates: slope, constant") +print(res2.params) +print("standard deviation of parameter estimates") +print(res2.bse) +prstd, iv_l, iv_u = wls_prediction_std(res2) +plt.plot(x1, res2.fittedvalues, 'r-') +plt.plot(x1, iv_u, 'r--') +plt.plot(x1, iv_l, 'r--') + + +#compare with robust estimator + +resrlm2 = sm.RLM(y2, X).fit() +print("\nRLM: parameter estimates: slope, constant") +print(resrlm2.params) +print("standard deviation of parameter estimates") +print(resrlm2.bse) +plt.plot(x1, resrlm2.fittedvalues, 'g.-') +plt.title('Data with Outliers; blue: true, red: OLS, green: RLM') + + +# see also help(sm.RLM.fit) for more options and +# module sm.robust.scale for scale options + +plt.show() diff --git a/statsmodels/formula/__init__.py b/statsmodels/formula/__init__.py new file mode 100644 index 0000000..d3690aa --- /dev/null +++ b/statsmodels/formula/__init__.py @@ -0,0 +1,4 @@ +from statsmodels import NoseWrapper as Tester +test = Tester().test + +from .formulatools import handle_formula_data diff --git a/statsmodels/formula/api.py b/statsmodels/formula/api.py new file mode 100644 index 0000000..b75a011 --- /dev/null +++ b/statsmodels/formula/api.py @@ -0,0 +1,33 @@ +from statsmodels.regression.linear_model import GLS +gls = GLS.from_formula +from statsmodels.regression.linear_model import WLS +wls = WLS.from_formula +from statsmodels.regression.linear_model import OLS +ols = OLS.from_formula +from statsmodels.regression.linear_model import GLSAR +glsar = GLSAR.from_formula +from statsmodels.regression.mixed_linear_model import MixedLM +mixedlm = MixedLM.from_formula +from statsmodels.genmod.generalized_linear_model import GLM +glm = GLM.from_formula +from statsmodels.robust.robust_linear_model import RLM +rlm = RLM.from_formula +from statsmodels.discrete.discrete_model import MNLogit +mnlogit = MNLogit.from_formula +from statsmodels.discrete.discrete_model import Logit +logit = Logit.from_formula +from statsmodels.discrete.discrete_model import Probit +probit = Probit.from_formula +from statsmodels.discrete.discrete_model import Poisson +poisson = Poisson.from_formula +from statsmodels.discrete.discrete_model import NegativeBinomial +negativebinomial = NegativeBinomial.from_formula +from statsmodels.regression.quantile_regression import QuantReg +quantreg = QuantReg.from_formula +from statsmodels.duration.hazard_regression import PHReg +phreg = PHReg.from_formula +from statsmodels.genmod.generalized_estimating_equations import (GEE, + OrdinalGEE, NominalGEE) +gee = GEE.from_formula +ordinal_gee = OrdinalGEE.from_formula +nominal_gee = NominalGEE.from_formula diff --git a/statsmodels/formula/formulatools.py b/statsmodels/formula/formulatools.py new file mode 100644 index 0000000..6b514db --- /dev/null +++ b/statsmodels/formula/formulatools.py @@ -0,0 +1,109 @@ +from statsmodels.compat.python import iterkeys +import statsmodels.tools.data as data_util +from patsy import dmatrices, NAAction +import numpy as np + +# if users want to pass in a different formula framework, they can +# add their handler here. how to do it interactively? + +# this is a mutable object, so editing it should show up in the below +formula_handler = {} + + +class NAAction(NAAction): + # monkey-patch so we can handle missing values in 'extra' arrays later + def _handle_NA_drop(self, values, is_NAs, origins): + total_mask = np.zeros(is_NAs[0].shape[0], dtype=bool) + for is_NA in is_NAs: + total_mask |= is_NA + good_mask = ~total_mask + self.missing_mask = total_mask + # "..." to handle 1- versus 2-dim indexing + return [v[good_mask, ...] for v in values] + + +def handle_formula_data(Y, X, formula, depth=0, missing='drop'): + """ + Returns endog, exog, and the model specification from arrays and formula + + Parameters + ---------- + Y : array-like + Either endog (the LHS) of a model specification or all of the data. + Y must define __getitem__ for now. + X : array-like + Either exog or None. If all the data for the formula is provided in + Y then you must explicitly set X to None. + formula : str or patsy.model_desc + You can pass a handler by import formula_handler and adding a + key-value pair where the key is the formula object class and + the value is a function that returns endog, exog, formula object + + Returns + ------- + endog : array-like + Should preserve the input type of Y,X + exog : array-like + Should preserve the input type of Y,X. Could be None. + """ + # half ass attempt to handle other formula objects + if isinstance(formula, tuple(iterkeys(formula_handler))): + return formula_handler[type(formula)] + + na_action = NAAction(on_NA=missing) + + if X is not None: + if data_util._is_using_pandas(Y, X): + result = dmatrices(formula, (Y, X), depth, + return_type='dataframe', NA_action=na_action) + else: + result = dmatrices(formula, (Y, X), depth, + return_type='dataframe', NA_action=na_action) + else: + if data_util._is_using_pandas(Y, None): + result = dmatrices(formula, Y, depth, return_type='dataframe', + NA_action=na_action) + else: + result = dmatrices(formula, Y, depth, return_type='dataframe', + NA_action=na_action) + + # if missing == 'raise' there's not missing_mask + missing_mask = getattr(na_action, 'missing_mask', None) + if not np.any(missing_mask): + missing_mask = None + if len(result) > 1: # have RHS design + design_info = result[1].design_info # detach it from DataFrame + else: + design_info = None + # NOTE: is there ever a case where we'd need LHS design_info? + return result, missing_mask, design_info + + +def _remove_intercept_patsy(terms): + """ + Remove intercept from Patsy terms. + """ + from patsy.desc import INTERCEPT + if INTERCEPT in terms: + terms.remove(INTERCEPT) + return terms + +def _has_intercept(design_info): + from patsy.desc import INTERCEPT + return INTERCEPT in design_info.terms + +def _intercept_idx(design_info): + """ + Returns boolean array index indicating which column holds the intercept + """ + from patsy.desc import INTERCEPT + from numpy import array + return array([INTERCEPT == i for i in design_info.terms]) + +def make_hypotheses_matrices(model_results, test_formula): + """ + """ + from patsy.constraint import linear_constraint + exog_names = model_results.model.exog_names + LC = linear_constraint(test_formula, exog_names) + return LC diff --git a/statsmodels/formula/tests/__init__.py b/statsmodels/formula/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/formula/tests/test_formula.py b/statsmodels/formula/tests/test_formula.py new file mode 100644 index 0000000..0dec80c --- /dev/null +++ b/statsmodels/formula/tests/test_formula.py @@ -0,0 +1,103 @@ +from statsmodels.compat.python import iteritems, StringIO +import warnings + +from statsmodels.formula.api import ols +from statsmodels.formula.formulatools import make_hypotheses_matrices +from statsmodels.tools import add_constant +from statsmodels.datasets.longley import load, load_pandas + +import numpy.testing as npt +from statsmodels.tools.testing import assert_equal +from numpy.testing.utils import WarningManager + + +longley_formula = 'TOTEMP ~ GNPDEFL + GNP + UNEMP + ARMED + POP + YEAR' + +class CheckFormulaOLS(object): + + @classmethod + def setupClass(cls): + cls.data = load() + + def test_endog_names(self): + assert self.model.endog_names == 'TOTEMP' + + def test_exog_names(self): + assert self.model.exog_names == ['Intercept', 'GNPDEFL', 'GNP', + 'UNEMP', 'ARMED', 'POP', 'YEAR'] + def test_design(self): + npt.assert_equal(self.model.exog, + add_constant(self.data.exog, prepend=True)) + + def test_endog(self): + npt.assert_equal(self.model.endog, self.data.endog) + + def test_summary(self): + # smoke test + warn_ctx = WarningManager() + warn_ctx.__enter__() + try: + warnings.filterwarnings("ignore", + "kurtosistest only valid for n>=20") + self.model.fit().summary() + finally: + warn_ctx.__exit__() + + +class TestFormulaPandas(CheckFormulaOLS): + @classmethod + def setupClass(cls): + data = load_pandas().data + cls.model = ols(longley_formula, data) + super(TestFormulaPandas, cls).setupClass() + + +class TestFormulaDict(CheckFormulaOLS): + @classmethod + def setupClass(cls): + data = dict((k, v.tolist()) for k, v in iteritems(load_pandas().data)) + cls.model = ols(longley_formula, data) + super(TestFormulaDict, cls).setupClass() + + +class TestFormulaRecArray(CheckFormulaOLS): + @classmethod + def setupClass(cls): + data = load().data + cls.model = ols(longley_formula, data) + super(TestFormulaRecArray, cls).setupClass() + + +def test_tests(): + formula = 'TOTEMP ~ GNPDEFL + GNP + UNEMP + ARMED + POP + YEAR' + dta = load_pandas().data + results = ols(formula, dta).fit() + test_formula = '(GNPDEFL = GNP), (UNEMP = 2), (YEAR/1829 = 1)' + LC = make_hypotheses_matrices(results, test_formula) + R = LC.coefs + Q = LC.constants + npt.assert_almost_equal(R, [[0, 1, -1, 0, 0, 0, 0], + [0, 0 , 0, 1, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 1./1829]], 8) + npt.assert_array_equal(Q, [[0],[2],[1]]) + + +def test_formula_labels(): + # make sure labels pass through patsy as expected + # data(Duncan) from car in R + dta = StringIO(""""type" "income" "education" "prestige"\n"accountant" "prof" 62 86 82\n"pilot" "prof" 72 76 83\n"architect" "prof" 75 92 90\n"author" "prof" 55 90 76\n"chemist" "prof" 64 86 90\n"minister" "prof" 21 84 87\n"professor" "prof" 64 93 93\n"dentist" "prof" 80 100 90\n"reporter" "wc" 67 87 52\n"engineer" "prof" 72 86 88\n"undertaker" "prof" 42 74 57\n"lawyer" "prof" 76 98 89\n"physician" "prof" 76 97 97\n"welfare.worker" "prof" 41 84 59\n"teacher" "prof" 48 91 73\n"conductor" "wc" 76 34 38\n"contractor" "prof" 53 45 76\n"factory.owner" "prof" 60 56 81\n"store.manager" "prof" 42 44 45\n"banker" "prof" 78 82 92\n"bookkeeper" "wc" 29 72 39\n"mail.carrier" "wc" 48 55 34\n"insurance.agent" "wc" 55 71 41\n"store.clerk" "wc" 29 50 16\n"carpenter" "bc" 21 23 33\n"electrician" "bc" 47 39 53\n"RR.engineer" "bc" 81 28 67\n"machinist" "bc" 36 32 57\n"auto.repairman" "bc" 22 22 26\n"plumber" "bc" 44 25 29\n"gas.stn.attendant" "bc" 15 29 10\n"coal.miner" "bc" 7 7 15\n"streetcar.motorman" "bc" 42 26 19\n"taxi.driver" "bc" 9 19 10\n"truck.driver" "bc" 21 15 13\n"machine.operator" "bc" 21 20 24\n"barber" "bc" 16 26 20\n"bartender" "bc" 16 28 7\n"shoe.shiner" "bc" 9 17 3\n"cook" "bc" 14 22 16\n"soda.clerk" "bc" 12 30 6\n"watchman" "bc" 17 25 11\n"janitor" "bc" 7 20 8\n"policeman" "bc" 34 47 41\n"waiter" "bc" 8 32 10""") + from pandas import read_table + dta = read_table(dta, sep=" ") + model = ols("prestige ~ income + education", dta).fit() + assert_equal(model.fittedvalues.index, dta.index) + + +def test_formula_predict(): + from numpy import log + formula = """TOTEMP ~ log(GNPDEFL) + log(GNP) + UNEMP + ARMED + + POP + YEAR""" + data = load_pandas() + dta = load_pandas().data + results = ols(formula, dta).fit() + npt.assert_almost_equal(results.fittedvalues.values, + results.predict(data.exog), 8) diff --git a/statsmodels/genmod/__init__.py b/statsmodels/genmod/__init__.py new file mode 100644 index 0000000..0123ce8 --- /dev/null +++ b/statsmodels/genmod/__init__.py @@ -0,0 +1,2 @@ +from statsmodels import NoseWrapper as Tester +test = Tester().test diff --git a/statsmodels/genmod/_prediction.py b/statsmodels/genmod/_prediction.py new file mode 100644 index 0000000..40583e9 --- /dev/null +++ b/statsmodels/genmod/_prediction.py @@ -0,0 +1,271 @@ +# -*- coding: utf-8 -*- +""" +Created on Fri Dec 19 11:29:18 2014 + +Author: Josef Perktold +License: BSD-3 + +""" + +import numpy as np +from scipy import stats + +# this is similar to ContrastResults after t_test, partially copied and adjusted +class PredictionResults(object): + + def __init__(self, predicted_mean, var_pred_mean, var_resid=None, + df=None, dist=None, row_labels=None, linpred=None, link=None): + # TODO: is var_resid used? drop from arguments? + self.predicted_mean = predicted_mean + self.var_pred_mean = var_pred_mean + self.df = df + self.var_resid = var_resid + self.row_labels = row_labels + self.linpred = linpred + self.link = link + + if dist is None or dist == 'norm': + self.dist = stats.norm + self.dist_args = () + elif dist == 't': + self.dist = stats.t + self.dist_args = (self.df,) + else: + self.dist = dist + self.dist_args = () + + @property + def se_obs(self): + raise NotImplementedError + return np.sqrt(self.var_pred_mean + self.var_resid) + + @property + def se_mean(self): + return np.sqrt(self.var_pred_mean) + + @property + def tvalues(self): + return self.predicted_mean / self.se_mean + + + def t_test(self, value=0, alternative='two-sided'): + '''z- or t-test for hypothesis that mean is equal to value + + Parameters + ---------- + value : array_like + value under the null hypothesis + alternative : string + 'two-sided', 'larger', 'smaller' + + Returns + ------- + stat : ndarray + test statistic + pvalue : ndarray + p-value of the hypothesis test, the distribution is given by + the attribute of the instance, specified in `__init__`. Default + if not specified is the normal distribution. + + ''' + # from statsmodels.stats.weightstats + + # assumes symmetric distribution + stat = (self.predicted_mean - value) / self.se_mean + + if alternative in ['two-sided', '2-sided', '2s']: + pvalue = self.dist.sf(np.abs(stat), *self.dist_args)*2 + elif alternative in ['larger', 'l']: + pvalue = self.dist.sf(stat, *self.dist_args) + elif alternative in ['smaller', 's']: + pvalue = self.dist.cdf(stat, *self.dist_args) + else: + raise ValueError('invalid alternative') + return stat, pvalue + + + def conf_int(self, method='endpoint', alpha=0.05, **kwds): + """ + Returns the confidence interval of the value, `effect` of the constraint. + + This is currently only available for t and z tests. + + Parameters + ---------- + alpha : float, optional + The significance level for the confidence interval. + ie., The default `alpha` = .05 returns a 95% confidence interval. + + kwds : extra keyword arguments + currently ignored, only for compatibility, consistent signature + + Returns + ------- + ci : ndarray, (k_constraints, 2) + The array has the lower and the upper limit of the confidence + interval in the columns. + + """ + tmp = np.linspace(0, 1, 6) + is_linear = (self.link.inverse(tmp) == tmp).all() + if method == 'endpoint' and not is_linear: + ci_linear = self.linpred.conf_int(alpha=alpha, obs=False) + ci = self.link.inverse(ci_linear) + elif method == 'delta' or is_linear: + se = self.se_mean + q = self.dist.ppf(1 - alpha / 2., *self.dist_args) + lower = self.predicted_mean - q * se + upper = self.predicted_mean + q * se + ci = np.column_stack((lower, upper)) + # if we want to stack at a new last axis, for lower.ndim > 1 + # np.concatenate((lower[..., None], upper[..., None]), axis=-1) + + return ci + + + def summary_frame(self, what='all', alpha=0.05): + # TODO: finish and cleanup + import pandas as pd + from statsmodels.compat.collections import OrderedDict + #ci_obs = self.conf_int(alpha=alpha, obs=True) # need to split + ci_mean = self.conf_int(alpha=alpha) + to_include = OrderedDict() + to_include['mean'] = self.predicted_mean + to_include['mean_se'] = self.se_mean + to_include['mean_ci_lower'] = ci_mean[:, 0] + to_include['mean_ci_upper'] = ci_mean[:, 1] + + + self.table = to_include + #OrderedDict doesn't work to preserve sequence + # pandas dict doesn't handle 2d_array + #data = np.column_stack(list(to_include.values())) + #names = .... + res = pd.DataFrame(to_include, index=self.row_labels, + columns=to_include.keys()) + return res + + +def get_prediction_glm(self, exog=None, transform=True, weights=None, + row_labels=None, linpred=None, link=None, pred_kwds=None): + """ + compute prediction results + + Parameters + ---------- + exog : array-like, optional + The values for which you want to predict. + transform : bool, optional + If the model was fit via a formula, do you want to pass + exog through the formula. Default is True. E.g., if you fit + a model y ~ log(x1) + log(x2), and transform is True, then + you can pass a data structure that contains x1 and x2 in + their original form. Otherwise, you'd need to log the data + first. + weights : array_like, optional + Weights interpreted as in WLS, used for the variance of the predicted + residual. + args, kwargs : + Some models can take additional arguments or keywords, see the + predict method of the model for the details. + + Returns + ------- + prediction_results : instance + The prediction results instance contains prediction and prediction + variance and can on demand calculate confidence intervals and summary + tables for the prediction of the mean and of new observations. + + """ + + ### prepare exog and row_labels, based on base Results.predict + if transform and hasattr(self.model, 'formula') and exog is not None: + from patsy import dmatrix + exog = dmatrix(self.model.data.design_info.builder, + exog) + + if exog is not None: + if row_labels is None: + if hasattr(exog, 'index'): + row_labels = exog.index + else: + row_labels = None + + exog = np.asarray(exog) + if exog.ndim == 1 and (self.model.exog.ndim == 1 or + self.model.exog.shape[1] == 1): + exog = exog[:, None] + exog = np.atleast_2d(exog) # needed in count model shape[1] + else: + exog = self.model.exog + if weights is None: + weights = getattr(self.model, 'weights', None) + + if row_labels is None: + row_labels = getattr(self.model.data, 'row_labels', None) + + # need to handle other arrays, TODO: is delegating to model possible ? + if weights is not None: + weights = np.asarray(weights) + if (weights.size > 1 and + (weights.ndim != 1 or weights.shape[0] == exog.shape[1])): + raise ValueError('weights has wrong shape') + + ### end + + pred_kwds['linear'] = False + predicted_mean = self.model.predict(self.params, exog, **pred_kwds) + + covb = self.cov_params() + + link_deriv = self.model.family.link.inverse_deriv(linpred.predicted_mean) + var_pred_mean = link_deriv**2 * (exog * np.dot(covb, exog.T).T).sum(1) + + # TODO: check that we have correct scale, Refactor scale #??? + var_resid = self.scale / weights # self.mse_resid / weights + # special case for now: + if self.cov_type == 'fixed scale': + var_resid = self.cov_kwds['scale'] / weights + + dist = ['norm', 't'][self.use_t] + return PredictionResults(predicted_mean, var_pred_mean, var_resid, + df=self.df_resid, dist=dist, + row_labels=row_labels, linpred=linpred, link=link) + + +def params_transform_univariate(params, cov_params, link=None, transform=None, + row_labels=None): + """ + results for univariate, nonlinear, monotonicaly transformed parameters + + This provides transformed values, standard errors and confidence interval + for transformations of parameters, for example in calculating rates with + `exp(params)` in the case of Poisson or other models with exponential + mean function. + + """ + + from statsmodels.genmod.families import links + if link is None and transform is None: + link = links.Log() + + if row_labels is None and hasattr(params, 'index'): + row_labels = params.index + + params = np.asarray(params) + + predicted_mean = link.inverse(params) + link_deriv = link.inverse_deriv(params) + var_pred_mean = link_deriv**2 * np.diag(cov_params) + # TODO: do we want covariance also, or just var/se + + dist = stats.norm + + # TODO: need ci for linear prediction, method of `lin_pred + linpred = PredictionResults(params, np.diag(cov_params), dist=dist, + row_labels=row_labels, link=links.identity()) + + res = PredictionResults(predicted_mean, var_pred_mean, dist=dist, + row_labels=row_labels, linpred=linpred, link=link) + + return res diff --git a/statsmodels/genmod/_tweedie_compound_poisson.py b/statsmodels/genmod/_tweedie_compound_poisson.py new file mode 100644 index 0000000..4c320a1 --- /dev/null +++ b/statsmodels/genmod/_tweedie_compound_poisson.py @@ -0,0 +1,95 @@ +""" +Private experimental module for miscellaneous Tweedie functions. + +References +---------- + +Dunn, Peter K. and Smyth, Gordon K. 2001. Tweedie family densities: methods of + evaluation. In Proceedings of the 16th International Workshop on + Statistical Modelling, Odense, Denmark, 2–6 July. + +Jørgensen, B., Demétrio, C.G.B., Kristensen, E., Banta, G.T., Petersen, H.C., + Delefosse, M.: Bias-corrected Pearson estimating functions for Taylor’s + power law applied to benthic macrofauna data. Stat. Probab. Lett. 81, + 749–758 (2011) + +Smyth G.K. and Jørgensen B. 2002. Fitting Tweedie's compound Poisson model to + insurance claims data: dispersion modelling. ASTIN Bulletin 32: 143–157 +""" +import numpy as np +from scipy._lib._util import _lazywhere as lazywhere +from scipy.special import gammaln + + +def _theta(mu, p): + return np.where(p == 1, np.log(mu), mu ** (1 - p) / (1 - p)) + + +def _alpha(p): + return (2 - p) / (1 - p) + + +def _logWj(y, j, p, phi): + alpha = _alpha(p) + logz = (-alpha * np.log(y) + alpha * np.log(p - 1) - (1 - alpha) * + np.log(phi) - np.log(2 - p)) + return (j * logz - gammaln(1 + j) - gammaln(-alpha * j)) + + +def kappa(mu, p): + return mu ** (2 - p) / (2 - p) + + +@np.vectorize +def _sumw(y, j_l, j_u, logWmax, p, phi): + j = np.arange(j_l, j_u + 1) + sumw = np.sum(np.exp(_logWj(y, j, p, phi) - logWmax)) + return sumw + + +def logW(y, p, phi): + alpha = _alpha(p) + jmax = y ** (2 - p) / ((2 - p) * phi) + logWmax = np.array((1 - alpha) * jmax) + tol = logWmax - 37 # Machine accuracy for 64 bit. + j = np.ceil(jmax) + while (_logWj(y, np.ceil(j), p, phi) > tol).any(): + j = np.where(_logWj(y, j, p, phi) > tol, j + 1, j) + j_u = j + j = np.floor(jmax) + j = np.where(j > 1, j, 1) + while (_logWj(y, j, p, phi) > tol).any() and (j > 1).any(): + j = np.where(_logWj(y, j, p, phi) > tol, j - 1, 1) + j_l = j + sumw = _sumw(y, j_l, j_u, logWmax, p, phi) + return logWmax + np.log(sumw) + + +def density_at_zero(y, mu, p, phi): + return np.exp(-(mu ** (2 - p)) / (phi * (2 - p))) + + +def density_otherwise(y, mu, p, phi): + theta = _theta(mu, p) + logd = logW(y, p, phi) - np.log(y) + (1 / phi * (y * theta - kappa(mu, p))) + return np.exp(logd) + + +def series_density(y, mu, p, phi): + density = lazywhere(np.array(y) > 0, + (y, mu, p, phi), + f=density_otherwise, + f2=density_at_zero) + return density + + +if __name__ == '__main__': + from scipy import stats + n = stats.poisson.rvs(.1, size=10000000) + y = stats.gamma.rvs(.1, scale=30000, size=10000000) + y = n * y + mu = stats.gamma.rvs(10, scale=30, size=10000000) + import time + t = time.time() + l = series_density(y=y, mu=mu, p=1.5, phi=20) + print('That took {} seconds'.format(time.time() - t)) diff --git a/statsmodels/genmod/api.py b/statsmodels/genmod/api.py new file mode 100644 index 0000000..63d7515 --- /dev/null +++ b/statsmodels/genmod/api.py @@ -0,0 +1,4 @@ +from .generalized_linear_model import GLM +from .generalized_estimating_equations import GEE, OrdinalGEE, NominalGEE +from . import families +from . import cov_struct diff --git a/statsmodels/genmod/cov_struct.py b/statsmodels/genmod/cov_struct.py new file mode 100644 index 0000000..2416c38 --- /dev/null +++ b/statsmodels/genmod/cov_struct.py @@ -0,0 +1,1413 @@ +from statsmodels.compat.python import iterkeys, itervalues, zip, range +from statsmodels.stats.correlation_tools import cov_nearest +import numpy as np +import pandas as pd +from scipy import linalg as spl +from collections import defaultdict +from statsmodels.tools.sm_exceptions import (ConvergenceWarning, OutputWarning, + NotImplementedWarning) +import warnings + +""" +Some details for the covariance calculations can be found in the Stata +docs: + +http://www.stata.com/manuals13/xtxtgee.pdf +""" + + +class CovStruct(object): + """ + A base class for correlation and covariance structures of grouped + data. + + Each implementation of this class takes the residuals from a + regression model that has been fitted to grouped data, and uses + them to estimate the within-group dependence structure of the + random errors in the model. + + The state of the covariance structure is represented through the + value of the class variable `dep_params`. The default state of a + newly-created instance should correspond to the identity + correlation matrix. + """ + + def __init__(self, cov_nearest_method="clipped"): + + # Parameters describing the dependency structure + self.dep_params = None + + # Keep track of the number of times that the covariance was + # adjusted. + self.cov_adjust = [] + + # Method for projecting the covariance matrix if it not SPD. + self.cov_nearest_method = cov_nearest_method + + def initialize(self, model): + """ + Called by GEE, used by implementations that need additional + setup prior to running `fit`. + + Parameters + ---------- + model : GEE class + A reference to the parent GEE class instance. + """ + self.model = model + + def update(self, params): + """ + Updates the association parameter values based on the current + regression coefficients. + + Parameters + ---------- + params : array-like + Working values for the regression parameters. + """ + raise NotImplementedError + + def covariance_matrix(self, endog_expval, index): + """ + Returns the working covariance or correlation matrix for a + given cluster of data. + + Parameters + ---------- + endog_expval: array-like + The expected values of endog for the cluster for which the + covariance or correlation matrix will be returned + index: integer + The index of the cluster for which the covariane or + correlation matrix will be returned + + Returns + ------- + M: matrix + The covariance or correlation matrix of endog + is_cor: bool + True if M is a correlation matrix, False if M is a + covariance matrix + """ + raise NotImplementedError + + def covariance_matrix_solve(self, expval, index, stdev, rhs): + """ + Solves matrix equations of the form `covmat * soln = rhs` and + returns the values of `soln`, where `covmat` is the covariance + matrix represented by this class. + + Parameters + ---------- + expval: array-like + The expected value of endog for each observed value in the + group. + index: integer + The group index. + stdev : array-like + The standard deviation of endog for each observation in + the group. + rhs : list/tuple of array-like + A set of right-hand sides; each defines a matrix equation + to be solved. + + Returns + ------- + soln : list/tuple of array-like + The solutions to the matrix equations. + + Notes + ----- + Returns None if the solver fails. + + Some dependence structures do not use `expval` and/or `index` + to determine the correlation matrix. Some families + (e.g. binomial) do not use the `stdev` parameter when forming + the covariance matrix. + + If the covariance matrix is singular or not SPD, it is + projected to the nearest such matrix. These projection events + are recorded in the fit_history member of the GEE model. + + Systems of linear equations with the covariance matrix as the + left hand side (LHS) are solved for different right hand sides + (RHS); the LHS is only factorized once to save time. + + This is a default implementation, it can be reimplemented in + subclasses to optimize the linear algebra according to the + struture of the covariance matrix. + """ + + vmat, is_cor = self.covariance_matrix(expval, index) + if is_cor: + vmat *= np.outer(stdev, stdev) + + # Factor the covariance matrix. If the factorization fails, + # attempt to condition it into a factorizable matrix. + threshold = 1e-2 + success = False + cov_adjust = 0 + for itr in range(20): + try: + vco = spl.cho_factor(vmat) + success = True + break + except np.linalg.LinAlgError: + vmat = cov_nearest(vmat, method=self.cov_nearest_method, + threshold=threshold) + threshold *= 2 + cov_adjust += 1 + + self.cov_adjust.append(cov_adjust) + + # Last resort if we still can't factor the covariance matrix. + if not success: + warnings.warn( + "Unable to condition covariance matrix to an SPD " + "matrix using cov_nearest", ConvergenceWarning) + vmat = np.diag(np.diag(vmat)) + vco = spl.cho_factor(vmat) + + soln = [spl.cho_solve(vco, x) for x in rhs] + return soln + + def summary(self): + """ + Returns a text summary of the current estimate of the + dependence structure. + """ + raise NotImplementedError + + +class Independence(CovStruct): + """ + An independence working dependence structure. + """ + + # Nothing to update + def update(self, params): + return + + def covariance_matrix(self, expval, index): + dim = len(expval) + return np.eye(dim, dtype=np.float64), True + + def covariance_matrix_solve(self, expval, index, stdev, rhs): + v = stdev ** 2 + rslt = [] + for x in rhs: + if x.ndim == 1: + rslt.append(x / v) + else: + rslt.append(x / v[:, None]) + return rslt + + update.__doc__ = CovStruct.update.__doc__ + covariance_matrix.__doc__ = CovStruct.covariance_matrix.__doc__ + covariance_matrix_solve.__doc__ = CovStruct.covariance_matrix_solve.__doc__ + + def summary(self): + return ("Observations within a cluster are modeled " + "as being independent.") + + +class Exchangeable(CovStruct): + """ + An exchangeable working dependence structure. + """ + + def __init__(self): + + super(Exchangeable, self).__init__() + + # The correlation between any two values in the same cluster + self.dep_params = 0. + + def update(self, params): + + endog = self.model.endog_li + + nobs = self.model.nobs + + varfunc = self.model.family.variance + + cached_means = self.model.cached_means + + has_weights = self.model.weights is not None + weights_li = self.model.weights + + residsq_sum, scale = 0, 0 + fsum1, fsum2, n_pairs = 0., 0., 0. + for i in range(self.model.num_group): + expval, _ = cached_means[i] + stdev = np.sqrt(varfunc(expval)) + resid = (endog[i] - expval) / stdev + f = weights_li[i] if has_weights else 1. + + ssr = np.sum(resid * resid) + scale += f * ssr + fsum1 += f * len(endog[i]) + + residsq_sum += f * (resid.sum() ** 2 - ssr) / 2 + ngrp = len(resid) + npr = 0.5 * ngrp * (ngrp - 1) + fsum2 += f * npr + n_pairs += npr + + ddof = self.model.ddof_scale + scale /= (fsum1 * (nobs - ddof) / float(nobs)) + residsq_sum /= scale + self.dep_params = residsq_sum / \ + (fsum2 * (n_pairs - ddof) / float(n_pairs)) + + def covariance_matrix(self, expval, index): + dim = len(expval) + dp = self.dep_params * np.ones((dim, dim), dtype=np.float64) + np.fill_diagonal(dp, 1) + return dp, True + + def covariance_matrix_solve(self, expval, index, stdev, rhs): + + k = len(expval) + c = self.dep_params / (1. - self.dep_params) + c /= 1. + self.dep_params * (k - 1) + + rslt = [] + for x in rhs: + if x.ndim == 1: + x1 = x / stdev + y = x1 / (1. - self.dep_params) + y -= c * sum(x1) + y /= stdev + else: + x1 = x / stdev[:, None] + y = x1 / (1. - self.dep_params) + y -= c * x1.sum(0) + y /= stdev[:, None] + rslt.append(y) + + return rslt + + update.__doc__ = CovStruct.update.__doc__ + covariance_matrix.__doc__ = CovStruct.covariance_matrix.__doc__ + covariance_matrix_solve.__doc__ = CovStruct.covariance_matrix_solve.__doc__ + + def summary(self): + return ("The correlation between two observations in the " + + "same cluster is %.3f" % self.dep_params) + + +class Nested(CovStruct): + """ + A nested working dependence structure. + + A working dependence structure that captures a nested hierarchy of + groups, each level of which contributes to the random error term + of the model. + + When using this working covariance structure, `dep_data` of the + GEE instance should contain a n_obs x k matrix of 0/1 indicators, + corresponding to the k subgroups nested under the top-level + `groups` of the GEE instance. These subgroups should be nested + from left to right, so that two observations with the same value + for column j of `dep_data` should also have the same value for all + columns j' < j (this only applies to observations in the same + top-level cluster given by the `groups` argument to GEE). + + Examples + -------- + Suppose our data are student test scores, and the students are in + classrooms, nested in schools, nested in school districts. The + school district is the highest level of grouping, so the school + district id would be provided to GEE as `groups`, and the school + and classroom id's would be provided to the Nested class as the + `dep_data` argument, e.g. + + 0 0 # School 0, classroom 0, student 0 + 0 0 # School 0, classroom 0, student 1 + 0 1 # School 0, classroom 1, student 0 + 0 1 # School 0, classroom 1, student 1 + 1 0 # School 1, classroom 0, student 0 + 1 0 # School 1, classroom 0, student 1 + 1 1 # School 1, classroom 1, student 0 + 1 1 # School 1, classroom 1, student 1 + + Labels lower in the hierarchy are recycled, so that student 0 in + classroom 0 is different fro student 0 in classroom 1, etc. + + Notes + ----- + The calculations for this dependence structure involve all pairs + of observations within a group (that is, within the top level + `group` structure passed to GEE). Large group sizes will result + in slow iterations. + + The variance components are estimated using least squares + regression of the products r*r', for standardized residuals r and + r' in the same group, on a vector of indicators defining which + variance components are shared by r and r'. + """ + + def initialize(self, model): + """ + Called on the first call to update + + `ilabels` is a list of n_i x n_i matrices containing integer + labels that correspond to specific correlation parameters. + Two elements of ilabels[i] with the same label share identical + variance components. + + `designx` is a matrix, with each row containing dummy + variables indicating which variance components are associated + with the corresponding element of QY. + """ + + super(Nested, self).initialize(model) + + if self.model.weights is not None: + warnings.warn("weights not implemented for nested cov_struct, " + "using unweighted covariance estimate", + NotImplementedWarning) + + # A bit of processing of the nest data + id_matrix = np.asarray(self.model.dep_data) + if id_matrix.ndim == 1: + id_matrix = id_matrix[:, None] + self.id_matrix = id_matrix + + endog = self.model.endog_li + designx, ilabels = [], [] + + # The number of layers of nesting + n_nest = self.id_matrix.shape[1] + + for i in range(self.model.num_group): + ngrp = len(endog[i]) + glab = self.model.group_labels[i] + rix = self.model.group_indices[glab] + + # Determine the number of common variance components + # shared by each pair of observations. + ix1, ix2 = np.tril_indices(ngrp, -1) + ncm = (self.id_matrix[rix[ix1], :] == + self.id_matrix[rix[ix2], :]).sum(1) + + # This is used to construct the working correlation + # matrix. + ilabel = np.zeros((ngrp, ngrp), dtype=np.int32) + ilabel[[ix1, ix2]] = ncm + 1 + ilabel[[ix2, ix1]] = ncm + 1 + ilabels.append(ilabel) + + # This is used to estimate the variance components. + dsx = np.zeros((len(ix1), n_nest + 1), dtype=np.float64) + dsx[:, 0] = 1 + for k in np.unique(ncm): + ii = np.flatnonzero(ncm == k) + dsx[ii, 1:k + 1] = 1 + designx.append(dsx) + + self.designx = np.concatenate(designx, axis=0) + self.ilabels = ilabels + + svd = np.linalg.svd(self.designx, 0) + self.designx_u = svd[0] + self.designx_s = svd[1] + self.designx_v = svd[2].T + + def update(self, params): + + endog = self.model.endog_li + + nobs = self.model.nobs + dim = len(params) + + if self.designx is None: + self._compute_design(self.model) + + cached_means = self.model.cached_means + + varfunc = self.model.family.variance + + dvmat = [] + scale = 0. + for i in range(self.model.num_group): + + expval, _ = cached_means[i] + + stdev = np.sqrt(varfunc(expval)) + resid = (endog[i] - expval) / stdev + + ix1, ix2 = np.tril_indices(len(resid), -1) + dvmat.append(resid[ix1] * resid[ix2]) + + scale += np.sum(resid ** 2) + + dvmat = np.concatenate(dvmat) + scale /= (nobs - dim) + + # Use least squares regression to estimate the variance + # components + vcomp_coeff = np.dot(self.designx_v, np.dot(self.designx_u.T, + dvmat) / self.designx_s) + + self.vcomp_coeff = np.clip(vcomp_coeff, 0, np.inf) + self.scale = scale + + self.dep_params = self.vcomp_coeff.copy() + + def covariance_matrix(self, expval, index): + + dim = len(expval) + + # First iteration + if self.dep_params is None: + return np.eye(dim, dtype=np.float64), True + + ilabel = self.ilabels[index] + + c = np.r_[self.scale, np.cumsum(self.vcomp_coeff)] + vmat = c[ilabel] + vmat /= self.scale + return vmat, True + + update.__doc__ = CovStruct.update.__doc__ + covariance_matrix.__doc__ = CovStruct.covariance_matrix.__doc__ + + def summary(self): + """ + Returns a summary string describing the state of the + dependence structure. + """ + + msg = "Variance estimates\n------------------\n" + for k in range(len(self.vcomp_coeff)): + msg += "Component %d: %.3f\n" % (k + 1, self.vcomp_coeff[k]) + msg += "Residual: %.3f\n" % (self.scale - + np.sum(self.vcomp_coeff)) + return msg + + +class Stationary(CovStruct): + """ + A stationary covariance structure. + + The correlation between two observations is an arbitrary function + of the distance between them. Distances up to a given maximum + value are included in the covariance model. + + Parameters + ---------- + max_lag : float + The largest distance that is included in the covariance model. + grid : bool + If True, the index positions in the data (after dropping missing + values) are used to define distances, and the `time` variable is + ignored. + """ + + def __init__(self, max_lag=1, grid=False): + + super(Stationary, self).__init__() + self.max_lag = max_lag + self.grid = grid + self.dep_params = np.zeros(max_lag) + + def initialize(self, model): + + super(Stationary, self).initialize(model) + + # Time used as an index needs to be integer type. + if not self.grid: + time = self.model.time[:, 0].astype(np.int32) + self.time = self.model.cluster_list(time) + + def update(self, params): + + if self.grid: + self.update_grid(params) + else: + self.update_nogrid(params) + + def update_grid(self, params): + + endog = self.model.endog_li + cached_means = self.model.cached_means + varfunc = self.model.family.variance + + dep_params = np.zeros(self.max_lag + 1) + for i in range(self.model.num_group): + + expval, _ = cached_means[i] + stdev = np.sqrt(varfunc(expval)) + resid = (endog[i] - expval) / stdev + + dep_params[0] += np.sum(resid * resid) / len(resid) + for j in range(1, self.max_lag + 1): + dep_params[j] += np.sum(resid[0:-j] * + resid[j:]) / len(resid[j:]) + + self.dep_params = dep_params[1:] / dep_params[0] + + def update_nogrid(self, params): + + endog = self.model.endog_li + cached_means = self.model.cached_means + varfunc = self.model.family.variance + + dep_params = np.zeros(self.max_lag + 1) + dn = np.zeros(self.max_lag + 1) + for i in range(self.model.num_group): + + expval, _ = cached_means[i] + stdev = np.sqrt(varfunc(expval)) + resid = (endog[i] - expval) / stdev + + j1, j2 = np.tril_indices(len(expval)) + dx = np.abs(self.time[i][j1] - self.time[i][j2]) + ii = np.flatnonzero(dx <= self.max_lag) + j1 = j1[ii] + j2 = j2[ii] + dx = dx[ii] + + vs = np.bincount(dx, weights=resid[ + j1] * resid[j2], minlength=self.max_lag + 1) + vd = np.bincount(dx, minlength=self.max_lag + 1) + + ii = np.flatnonzero(vd > 0) + dn[ii] += 1 + if len(ii) > 0: + dep_params[ii] += vs[ii] / vd[ii] + + dep_params /= dn + self.dep_params = dep_params[1:] / dep_params[0] + + def covariance_matrix(self, endog_expval, index): + + if self.grid: + return self.covariance_matrix_grid(endog_expval, index) + + j1, j2 = np.tril_indices(len(endog_expval)) + dx = np.abs(self.time[index][j1] - self.time[index][j2]) + ii = np.flatnonzero((0 < dx) & (dx <= self.max_lag)) + j1 = j1[ii] + j2 = j2[ii] + dx = dx[ii] + + cmat = np.eye(len(endog_expval)) + cmat[j1, j2] = self.dep_params[dx - 1] + cmat[j2, j1] = self.dep_params[dx - 1] + return cmat, True + + def covariance_matrix_grid(self, endog_expval, index): + + from scipy.linalg import toeplitz + r = np.zeros(len(endog_expval)) + r[0] = 1 + r[1:self.max_lag + 1] = self.dep_params + return toeplitz(r), True + + def covariance_matrix_solve(self, expval, index, stdev, rhs): + + if not self.grid: + return super(Stationary, self).covariance_matrix_solve( + expval, index, stdev, rhs) + + from statsmodels.tools.linalg import stationary_solve + r = np.zeros(len(expval)) + r[0:self.max_lag] = self.dep_params + return [stationary_solve(r, x) for x in rhs] + + update.__doc__ = CovStruct.update.__doc__ + covariance_matrix.__doc__ = CovStruct.covariance_matrix.__doc__ + covariance_matrix_solve.__doc__ = CovStruct.covariance_matrix_solve.__doc__ + + def summary(self): + + return ("Stationary dependence parameters\n", + self.dep_params) + + +class Autoregressive(CovStruct): + """ + A first-order autoregressive working dependence structure. + + The dependence is defined in terms of the `time` component of the + parent GEE class, which defaults to the index position of each + value within its cluster, based on the order of values in the + input data set. Time represents a potentially multidimensional + index from which distances between pairs of observations can be + determined. + + The correlation between two observations in the same cluster is + dep_params^distance, where `dep_params` contains the (scalar) + autocorrelation parameter to be estimated, and `distance` is the + distance between the two observations, calculated from their + corresponding time values. `time` is stored as an n_obs x k + matrix, where `k` represents the number of dimensions in the time + index. + + The autocorrelation parameter is estimated using weighted + nonlinear least squares, regressing each value within a cluster on + each preceeding value in the same cluster. + + Parameters + ---------- + dist_func: function from R^k x R^k to R^+, optional + A function that computes the distance between the two + observations based on their `time` values. + + References + ---------- + B Rosner, A Munoz. Autoregressive modeling for the analysis of + longitudinal data with unequally spaced examinations. Statistics + in medicine. Vol 7, 59-71, 1988. + """ + + def __init__(self, dist_func=None): + + super(Autoregressive, self).__init__() + + # The function for determining distances based on time + if dist_func is None: + self.dist_func = lambda x, y: np.abs(x - y).sum() + else: + self.dist_func = dist_func + + self.designx = None + + # The autocorrelation parameter + self.dep_params = 0. + + def update(self, params): + + if self.model.weights is not None: + warnings.warn("weights not implemented for autoregressive " + "cov_struct, using unweighted covariance estimate", + NotImplementedWarning) + + endog = self.model.endog_li + time = self.model.time_li + + # Only need to compute this once + if self.designx is not None: + designx = self.designx + else: + designx = [] + for i in range(self.model.num_group): + + ngrp = len(endog[i]) + if ngrp == 0: + continue + + # Loop over pairs of observations within a cluster + for j1 in range(ngrp): + for j2 in range(j1): + designx.append(self.dist_func(time[i][j1, :], + time[i][j2, :])) + + designx = np.array(designx) + self.designx = designx + + scale = self.model.estimate_scale() + varfunc = self.model.family.variance + cached_means = self.model.cached_means + + # Weights + var = 1. - self.dep_params ** (2 * designx) + var /= 1. - self.dep_params ** 2 + wts = 1. / var + wts /= wts.sum() + + residmat = [] + for i in range(self.model.num_group): + + expval, _ = cached_means[i] + stdev = np.sqrt(scale * varfunc(expval)) + resid = (endog[i] - expval) / stdev + + ngrp = len(resid) + for j1 in range(ngrp): + for j2 in range(j1): + residmat.append([resid[j1], resid[j2]]) + + residmat = np.array(residmat) + + # Need to minimize this + def fitfunc(a): + dif = residmat[:, 0] - (a ** designx) * residmat[:, 1] + return np.dot(dif ** 2, wts) + + # Left bracket point + b_lft, f_lft = 0., fitfunc(0.) + + # Center bracket point + b_ctr, f_ctr = 0.5, fitfunc(0.5) + while f_ctr > f_lft: + b_ctr /= 2 + f_ctr = fitfunc(b_ctr) + if b_ctr < 1e-8: + self.dep_params = 0 + return + + # Right bracket point + b_rgt, f_rgt = 0.75, fitfunc(0.75) + while f_rgt < f_ctr: + b_rgt = b_rgt + (1. - b_rgt) / 2 + f_rgt = fitfunc(b_rgt) + if b_rgt > 1. - 1e-6: + raise ValueError( + "Autoregressive: unable to find right bracket") + + from scipy.optimize import brent + self.dep_params = brent(fitfunc, brack=[b_lft, b_ctr, b_rgt]) + + def covariance_matrix(self, endog_expval, index): + ngrp = len(endog_expval) + if self.dep_params == 0: + return np.eye(ngrp, dtype=np.float64), True + idx = np.arange(ngrp) + cmat = self.dep_params ** np.abs(idx[:, None] - idx[None, :]) + return cmat, True + + def covariance_matrix_solve(self, expval, index, stdev, rhs): + # The inverse of an AR(1) covariance matrix is tri-diagonal. + + k = len(expval) + soln = [] + + # LHS has 1 column + if k == 1: + return [x / stdev ** 2 for x in rhs] + + # LHS has 2 columns + if k == 2: + mat = np.array([[1, -self.dep_params], [-self.dep_params, 1]]) + mat /= (1. - self.dep_params ** 2) + for x in rhs: + if x.ndim == 1: + x1 = x / stdev + else: + x1 = x / stdev[:, None] + x1 = np.dot(mat, x1) + if x.ndim == 1: + x1 /= stdev + else: + x1 /= stdev[:, None] + soln.append(x1) + return soln + + # LHS has >= 3 columns: values c0, c1, c2 defined below give + # the inverse. c0 is on the diagonal, except for the first + # and last position. c1 is on the first and last position of + # the diagonal. c2 is on the sub/super diagonal. + c0 = (1. + self.dep_params ** 2) / (1. - self.dep_params ** 2) + c1 = 1. / (1. - self.dep_params ** 2) + c2 = -self.dep_params / (1. - self.dep_params ** 2) + soln = [] + for x in rhs: + flatten = False + if x.ndim == 1: + x = x[:, None] + flatten = True + x1 = x / stdev[:, None] + + z0 = np.zeros((1, x.shape[1])) + rhs1 = np.concatenate((x[1:, :], z0), axis=0) + rhs2 = np.concatenate((z0, x[0:-1, :]), axis=0) + + y = c0 * x + c2 * rhs1 + c2 * rhs2 + y[0, :] = c1 * x[0, :] + c2 * x[1, :] + y[-1, :] = c1 * x[-1, :] + c2 * x[-2, :] + + y /= stdev[:, None] + + if flatten: + y = np.squeeze(y) + + soln.append(y) + + return soln + + update.__doc__ = CovStruct.update.__doc__ + covariance_matrix.__doc__ = CovStruct.covariance_matrix.__doc__ + covariance_matrix_solve.__doc__ = CovStruct.covariance_matrix_solve.__doc__ + + def summary(self): + + return ("Autoregressive(1) dependence parameter: %.3f\n" % + self.dep_params) + + +class CategoricalCovStruct(CovStruct): + """ + Parent class for covariance structure for categorical data models. + + Attributes + ---------- + nlevel : int + The number of distinct levels for the outcome variable. + ibd : list + A list whose i^th element ibd[i] is an array whose rows + contain integer pairs (a,b), where endog_li[i][a:b] is the + subvector of binary indicators derived from the same ordinal + value. + """ + + def initialize(self, model): + + super(CategoricalCovStruct, self).initialize(model) + + self.nlevel = len(model.endog_values) + self._ncut = self.nlevel - 1 + + from numpy.lib.stride_tricks import as_strided + b = np.dtype(np.int64).itemsize + + ibd = [] + for v in model.endog_li: + jj = np.arange(0, len(v) + 1, self._ncut, dtype=np.int64) + jj = as_strided(jj, shape=(len(jj) - 1, 2), strides=(b, b)) + ibd.append(jj) + + self.ibd = ibd + + +class GlobalOddsRatio(CategoricalCovStruct): + """ + Estimate the global odds ratio for a GEE with ordinal or nominal + data. + + References + ---------- + PJ Heagerty and S Zeger. "Marginal Regression Models for Clustered + Ordinal Measurements". Journal of the American Statistical + Association Vol. 91, Issue 435 (1996). + + Thomas Lumley. Generalized Estimating Equations for Ordinal Data: + A Note on Working Correlation Structures. Biometrics Vol. 52, + No. 1 (Mar., 1996), pp. 354-361 + http://www.jstor.org/stable/2533173 + + Notes + ----- + The following data structures are calculated in the class: + + 'ibd' is a list whose i^th element ibd[i] is a sequence of integer + pairs (a,b), where endog_li[i][a:b] is the subvector of binary + indicators derived from the same ordinal value. + + `cpp` is a dictionary where cpp[group] is a map from cut-point + pairs (c,c') to the indices of all between-subject pairs derived + from the given cut points. + """ + + def __init__(self, endog_type): + super(GlobalOddsRatio, self).__init__() + self.endog_type = endog_type + self.dep_params = 0. + + def initialize(self, model): + + super(GlobalOddsRatio, self).initialize(model) + + if self.model.weights is not None: + warnings.warn("weights not implemented for GlobalOddsRatio " + "cov_struct, using unweighted covariance estimate", + NotImplementedWarning) + + # Need to restrict to between-subject pairs + cpp = [] + for v in model.endog_li: + + # Number of subjects in this group + m = int(len(v) / self._ncut) + i1, i2 = np.tril_indices(m, -1) + + cpp1 = {} + for k1 in range(self._ncut): + for k2 in range(k1 + 1): + jj = np.zeros((len(i1), 2), dtype=np.int64) + jj[:, 0] = i1 * self._ncut + k1 + jj[:, 1] = i2 * self._ncut + k2 + cpp1[(k2, k1)] = jj + + cpp.append(cpp1) + + self.cpp = cpp + + # Initialize the dependence parameters + self.crude_or = self.observed_crude_oddsratio() + if self.model.update_dep: + self.dep_params = self.crude_or + + def pooled_odds_ratio(self, tables): + """ + Returns the pooled odds ratio for a list of 2x2 tables. + + The pooled odds ratio is the inverse variance weighted average + of the sample odds ratios of the tables. + """ + + if len(tables) == 0: + return 1. + + # Get the sampled odds ratios and variances + log_oddsratio, var = [], [] + for table in tables: + lor = np.log(table[1, 1]) + np.log(table[0, 0]) -\ + np.log(table[0, 1]) - np.log(table[1, 0]) + log_oddsratio.append(lor) + var.append((1 / table.astype(np.float64)).sum()) + + # Calculate the inverse variance weighted average + wts = [1 / v for v in var] + wtsum = sum(wts) + wts = [w / wtsum for w in wts] + log_pooled_or = sum([w * e for w, e in zip(wts, log_oddsratio)]) + + return np.exp(log_pooled_or) + + def covariance_matrix(self, expected_value, index): + + vmat = self.get_eyy(expected_value, index) + vmat -= np.outer(expected_value, expected_value) + return vmat, False + + def observed_crude_oddsratio(self): + """ + To obtain the crude (global) odds ratio, first pool all binary + indicators corresponding to a given pair of cut points (c,c'), + then calculate the odds ratio for this 2x2 table. The crude + odds ratio is the inverse variance weighted average of these + odds ratios. Since the covariate effects are ignored, this OR + will generally be greater than the stratified OR. + """ + + cpp = self.cpp + endog = self.model.endog_li + + # Storage for the contingency tables for each (c,c') + tables = {} + for ii in iterkeys(cpp[0]): + tables[ii] = np.zeros((2, 2), dtype=np.float64) + + # Get the observed crude OR + for i in range(len(endog)): + + # The observed joint values for the current cluster + yvec = endog[i] + endog_11 = np.outer(yvec, yvec) + endog_10 = np.outer(yvec, 1. - yvec) + endog_01 = np.outer(1. - yvec, yvec) + endog_00 = np.outer(1. - yvec, 1. - yvec) + + cpp1 = cpp[i] + for ky in iterkeys(cpp1): + ix = cpp1[ky] + tables[ky][1, 1] += endog_11[ix[:, 0], ix[:, 1]].sum() + tables[ky][1, 0] += endog_10[ix[:, 0], ix[:, 1]].sum() + tables[ky][0, 1] += endog_01[ix[:, 0], ix[:, 1]].sum() + tables[ky][0, 0] += endog_00[ix[:, 0], ix[:, 1]].sum() + + return self.pooled_odds_ratio(list(itervalues(tables))) + + def get_eyy(self, endog_expval, index): + """ + Returns a matrix V such that V[i,j] is the joint probability + that endog[i] = 1 and endog[j] = 1, based on the marginal + probabilities of endog and the global odds ratio `current_or`. + """ + + current_or = self.dep_params + ibd = self.ibd[index] + + # The between-observation joint probabilities + if current_or == 1.0: + vmat = np.outer(endog_expval, endog_expval) + else: + psum = endog_expval[:, None] + endog_expval[None, :] + pprod = endog_expval[:, None] * endog_expval[None, :] + pfac = np.sqrt((1. + psum * (current_or - 1.)) ** 2 + + 4 * current_or * (1. - current_or) * pprod) + vmat = 1. + psum * (current_or - 1.) - pfac + vmat /= 2. * (current_or - 1) + + # Fix E[YY'] for elements that belong to same observation + for bdl in ibd: + evy = endog_expval[bdl[0]:bdl[1]] + if self.endog_type == "ordinal": + vmat[bdl[0]:bdl[1], bdl[0]:bdl[1]] =\ + np.minimum.outer(evy, evy) + else: + vmat[bdl[0]:bdl[1], bdl[0]:bdl[1]] = np.diag(evy) + + return vmat + + def update(self, params): + """ + Update the global odds ratio based on the current value of + params. + """ + + cpp = self.cpp + cached_means = self.model.cached_means + + # This will happen if all the clusters have only + # one observation + if len(cpp[0]) == 0: + return + + tables = {} + for ii in cpp[0]: + tables[ii] = np.zeros((2, 2), dtype=np.float64) + + for i in range(self.model.num_group): + + endog_expval, _ = cached_means[i] + + emat_11 = self.get_eyy(endog_expval, i) + emat_10 = endog_expval[:, None] - emat_11 + emat_01 = -emat_11 + endog_expval + emat_00 = 1. - (emat_11 + emat_10 + emat_01) + + cpp1 = cpp[i] + for ky in iterkeys(cpp1): + ix = cpp1[ky] + tables[ky][1, 1] += emat_11[ix[:, 0], ix[:, 1]].sum() + tables[ky][1, 0] += emat_10[ix[:, 0], ix[:, 1]].sum() + tables[ky][0, 1] += emat_01[ix[:, 0], ix[:, 1]].sum() + tables[ky][0, 0] += emat_00[ix[:, 0], ix[:, 1]].sum() + + cor_expval = self.pooled_odds_ratio(list(itervalues(tables))) + + self.dep_params *= self.crude_or / cor_expval + if not np.isfinite(self.dep_params): + self.dep_params = 1. + warnings.warn("dep_params became inf, resetting to 1", + ConvergenceWarning) + + update.__doc__ = CovStruct.update.__doc__ + covariance_matrix.__doc__ = CovStruct.covariance_matrix.__doc__ + + def summary(self): + + return "Global odds ratio: %.3f\n" % self.dep_params + + +class OrdinalIndependence(CategoricalCovStruct): + """ + An independence covariance structure for ordinal models. + + The working covariance between indicators derived from different + observations is zero. The working covariance between indicators + derived form a common observation is determined from their current + mean values. + + There are no parameters to estimate in this covariance structure. + """ + + def covariance_matrix(self, expected_value, index): + + ibd = self.ibd[index] + n = len(expected_value) + vmat = np.zeros((n, n)) + + for bdl in ibd: + ev = expected_value[bdl[0]:bdl[1]] + vmat[bdl[0]:bdl[1], bdl[0]:bdl[1]] =\ + np.minimum.outer(ev, ev) - np.outer(ev, ev) + + return vmat, False + + # Nothing to update + def update(self, params): + pass + + +class NominalIndependence(CategoricalCovStruct): + """ + An independence covariance structure for nominal models. + + The working covariance between indicators derived from different + observations is zero. The working covariance between indicators + derived form a common observation is determined from their current + mean values. + + There are no parameters to estimate in this covariance structure. + """ + + def covariance_matrix(self, expected_value, index): + + ibd = self.ibd[index] + n = len(expected_value) + vmat = np.zeros((n, n)) + + for bdl in ibd: + ev = expected_value[bdl[0]:bdl[1]] + vmat[bdl[0]:bdl[1], bdl[0]:bdl[1]] =\ + np.diag(ev) - np.outer(ev, ev) + + return vmat, False + + # Nothing to update + def update(self, params): + pass + + +class Equivalence(CovStruct): + """ + A covariance structure defined in terms of equivalence classes. + + An 'equivalence class' is a set of pairs of observations such that + the covariance of every pair within the equivalence class has a + common value. + + Parameters + ---------- + pairs : dict-like + A dictionary of dictionaries, where `pairs[group][label]` + provides the indices of all pairs of observations in the group + that have the same covariance value. Specifically, + `pairs[group][label]` is a tuple `(j1, j2)`, where `j1` and `j2` + are integer arrays of the same length. `j1[i], j2[i]` is one + index pair that belongs to the `label` equivalence class. Only + one triangle of each covariance matrix should be included. + Positions where j1 and j2 have the same value are variance + parameters. + labels : array-like + An array of labels such that every distinct pair of labels + defines an equivalence class. Either `labels` or `pairs` must + be provided. When the two labels in a pair are equal two + equivalence classes are defined: one for the diagonal elements + (corresponding to variances) and one for the off-diagonal + elements (corresponding to covariances). + return_cov : boolean + If True, `covariance_matrix` returns an estimate of the + covariance matrix, otherwise returns an estimate of the + correlation matrix. + + Notes + ----- + Using `labels` to define the class is much easier than using + `pairs`, but is less general. + + Any pair of values not contained in `pairs` will be assigned zero + covariance. + + The index values in `pairs` are row indices into the `exog` + matrix. They are not updated if missing data are present. When + using this covariance structure, missing data should be removed + before constructing the model. + + If using `labels`, after a model is defined using the covariance + structure it is possible to remove a label pair from the second + level of the `pairs` dictionary to force the corresponding + covariance to be zero. + + Examples + -------- + The following sets up the `pairs` dictionary for a model with two + groups, equal variance for all observations, and constant + covariance for all pairs of observations within each group. + + >> pairs = {0: {}, 1: {}} + >> pairs[0][0] = (np.r_[0, 1, 2], np.r_[0, 1, 2]) + >> pairs[0][1] = np.tril_indices(3, -1) + >> pairs[1][0] = (np.r_[3, 4, 5], np.r_[3, 4, 5]) + >> pairs[1][2] = 3 + np.tril_indices(3, -1) + """ + + def __init__(self, pairs=None, labels=None, return_cov=False): + + super(Equivalence, self).__init__() + + if (pairs is None) and (labels is None): + raise ValueError( + "Equivalence cov_struct requires either `pairs` or `labels`") + + if (pairs is not None) and (labels is not None): + raise ValueError( + "Equivalence cov_struct accepts only one of `pairs` " + "and `labels`") + + if pairs is not None: + import copy + self.pairs = copy.deepcopy(pairs) + + if labels is not None: + self.labels = np.asarray(labels) + + self.return_cov = return_cov + + def _make_pairs(self, i, j): + """ + Create arrays containing all unique ordered pairs of i, j. + + The arrays i and j must be one-dimensional containing non-negative + integers. + """ + + mat = np.zeros((len(i) * len(j), 2), dtype=np.int32) + + # Create the pairs and order them + f = np.ones(len(j)) + mat[:, 0] = np.kron(f, i).astype(np.int32) + f = np.ones(len(i)) + mat[:, 1] = np.kron(j, f).astype(np.int32) + mat.sort(1) + + # Remove repeated rows + try: + dtype = np.dtype((np.void, mat.dtype.itemsize * mat.shape[1])) + bmat = np.ascontiguousarray(mat).view(dtype) + _, idx = np.unique(bmat, return_index=True) + except TypeError: + # workaround for old numpy that can't call unique with complex + # dtypes + rs = np.random.RandomState(4234) + bmat = np.dot(mat, rs.uniform(size=mat.shape[1])) + _, idx = np.unique(bmat, return_index=True) + mat = mat[idx, :] + + return mat[:, 0], mat[:, 1] + + def _pairs_from_labels(self): + + from collections import defaultdict + pairs = defaultdict(lambda: defaultdict(lambda: None)) + + model = self.model + + df = pd.DataFrame({"labels": self.labels, "groups": model.groups}) + gb = df.groupby(["groups", "labels"]) + + ulabels = np.unique(self.labels) + + for g_ix, g_lb in enumerate(model.group_labels): + + # Loop over label pairs + for lx1 in range(len(ulabels)): + for lx2 in range(lx1 + 1): + + lb1 = ulabels[lx1] + lb2 = ulabels[lx2] + + try: + i1 = gb.groups[(g_lb, lb1)] + i2 = gb.groups[(g_lb, lb2)] + except KeyError: + continue + + i1, i2 = self._make_pairs(i1, i2) + + clabel = str(lb1) + "/" + str(lb2) + + # Variance parameters belong in their own equiv class. + jj = np.flatnonzero(i1 == i2) + if len(jj) > 0: + clabelv = clabel + "/v" + pairs[g_lb][clabelv] = (i1[jj], i2[jj]) + + # Covariance parameters + jj = np.flatnonzero(i1 != i2) + if len(jj) > 0: + i1 = i1[jj] + i2 = i2[jj] + pairs[g_lb][clabel] = (i1, i2) + + self.pairs = pairs + + def initialize(self, model): + + super(Equivalence, self).initialize(model) + + if self.model.weights is not None: + warnings.warn("weights not implemented for equalence cov_struct, " + "using unweighted covariance estimate", + NotImplementedWarning) + + if not hasattr(self, 'pairs'): + self._pairs_from_labels() + + # Initialize so that any equivalence class containing a + # variance parameter has value 1. + self.dep_params = defaultdict(lambda: 0.) + self._var_classes = set([]) + for gp in self.model.group_labels: + for lb in self.pairs[gp]: + j1, j2 = self.pairs[gp][lb] + if np.any(j1 == j2): + if not np.all(j1 == j2): + warnings.warn( + "equivalence class contains both variance " + "and covariance parameters", OutputWarning) + self._var_classes.add(lb) + self.dep_params[lb] = 1 + + # Need to start indexing at 0 within each group. + # rx maps olds indices to new indices + rx = -1 * np.ones(len(self.model.endog), dtype=np.int32) + for g_ix, g_lb in enumerate(self.model.group_labels): + ii = self.model.group_indices[g_lb] + rx[ii] = np.arange(len(ii), dtype=np.int32) + + # Reindex + for gp in self.model.group_labels: + for lb in self.pairs[gp].keys(): + a, b = self.pairs[gp][lb] + self.pairs[gp][lb] = (rx[a], rx[b]) + + def update(self, params): + + endog = self.model.endog_li + varfunc = self.model.family.variance + cached_means = self.model.cached_means + dep_params = defaultdict(lambda: [0., 0., 0.]) + n_pairs = defaultdict(lambda: 0) + dim = len(params) + + for k, gp in enumerate(self.model.group_labels): + expval, _ = cached_means[k] + stdev = np.sqrt(varfunc(expval)) + resid = (endog[k] - expval) / stdev + for lb in self.pairs[gp].keys(): + if (not self.return_cov) and lb in self._var_classes: + continue + jj = self.pairs[gp][lb] + dep_params[lb][0] += np.sum(resid[jj[0]] * resid[jj[1]]) + if not self.return_cov: + dep_params[lb][1] += np.sum(resid[jj[0]] ** 2) + dep_params[lb][2] += np.sum(resid[jj[1]] ** 2) + n_pairs[lb] += len(jj[0]) + + if self.return_cov: + for lb in dep_params.keys(): + dep_params[lb] = dep_params[lb][0] / (n_pairs[lb] - dim) + else: + for lb in dep_params.keys(): + den = np.sqrt(dep_params[lb][1] * dep_params[lb][2]) + dep_params[lb] = dep_params[lb][0] / den + for lb in self._var_classes: + dep_params[lb] = 1. + + self.dep_params = dep_params + self.n_pairs = n_pairs + + def covariance_matrix(self, expval, index): + dim = len(expval) + cmat = np.zeros((dim, dim)) + g_lb = self.model.group_labels[index] + + for lb in self.pairs[g_lb].keys(): + j1, j2 = self.pairs[g_lb][lb] + cmat[j1, j2] = self.dep_params[lb] + + cmat = cmat + cmat.T + np.fill_diagonal(cmat, cmat.diagonal() / 2) + + return cmat, not self.return_cov + + update.__doc__ = CovStruct.update.__doc__ + covariance_matrix.__doc__ = CovStruct.covariance_matrix.__doc__ diff --git a/statsmodels/genmod/families/__init__.py b/statsmodels/genmod/families/__init__.py new file mode 100644 index 0000000..0589348 --- /dev/null +++ b/statsmodels/genmod/families/__init__.py @@ -0,0 +1,16 @@ +''' +This module contains the one-parameter exponential families used +for fitting GLMs and GAMs. + +These families are described in + + P. McCullagh and J. A. Nelder. "Generalized linear models." + Monographs on Statistics and Applied Probability. + Chapman & Hall, London, 1983. + +''' + +#from statsmodels.family.family import Gaussian, Family, Poisson, Gamma, \ +# InverseGaussian, Binomial, NegativeBinomial +from .family import Gaussian, Family, Poisson, Gamma, \ + InverseGaussian, Binomial, NegativeBinomial, Tweedie diff --git a/statsmodels/genmod/families/family.py b/statsmodels/genmod/families/family.py new file mode 100644 index 0000000..d900b15 --- /dev/null +++ b/statsmodels/genmod/families/family.py @@ -0,0 +1,1707 @@ +''' +The one parameter exponential family distributions used by GLM. +''' +# TODO: quasi, quasibinomial, quasipoisson +# see http://www.biostat.jhsph.edu/~qli/biostatistics_r_doc/library/stats/html/family.html +# for comparison to R, and McCullagh and Nelder + +import numpy as np +from scipy import special +from . import links as L +from . import varfuncs as V +FLOAT_EPS = np.finfo(float).eps + + +class Family(object): + """ + The parent class for one-parameter exponential families. + + Parameters + ---------- + link : a link function instance + Link is the linear transformation function. + See the individual families for available links. + variance : a variance function + Measures the variance as a function of the mean probabilities. + See the individual families for the default variance function. + + See Also + -------- + :ref:`links` + + """ + # TODO: change these class attributes, use valid somewhere... + valid = [-np.inf, np.inf] + + links = [] + + def _setlink(self, link): + """ + Helper method to set the link for a family. + + Raises a ValueError exception if the link is not available. Note that + the error message might not be that informative because it tells you + that the link should be in the base class for the link function. + + See glm.GLM for a list of appropriate links for each family but note + that not all of these are currently available. + """ + # TODO: change the links class attribute in the families to hold + # meaningful information instead of a list of links instances such as + # [, + # , + # ] + # for Poisson... + self._link = link + if not isinstance(link, L.Link): + raise TypeError("The input should be a valid Link object.") + if hasattr(self, "links"): + validlink = link in self.links + validlink = max([isinstance(link, _) for _ in self.links]) + if not validlink: + errmsg = "Invalid link for family, should be in %s. (got %s)" + raise ValueError(errmsg % (repr(self.links), link)) + + def _getlink(self): + """ + Helper method to get the link for a family. + """ + return self._link + + # link property for each family is a pointer to link instance + link = property(_getlink, _setlink, doc="Link function for family") + + def __init__(self, link, variance): + self.link = link() + self.variance = variance + + def starting_mu(self, y): + r""" + Starting value for mu in the IRLS algorithm. + + Parameters + ---------- + y : array + The untransformed response variable. + + Returns + ------- + mu_0 : array + The first guess on the transformed response variable. + + Notes + ----- + .. math:: + + \mu_0 = (Y + \overline{Y})/2 + + Notes + ----- + Only the Binomial family takes a different initial value. + """ + return (y + y.mean())/2. + + def weights(self, mu): + r""" + Weights for IRLS steps + + Parameters + ---------- + mu : array-like + The transformed mean response variable in the exponential family + + Returns + ------- + w : array + The weights for the IRLS steps + + Notes + ----- + .. math:: + + w = 1 / (g'(\mu)^2 * Var(\mu)) + """ + return 1. / (self.link.deriv(mu)**2 * self.variance(mu)) + + def deviance(self, endog, mu, freq_weights=1., scale=1.): + r""" + The deviance function evaluated at (endog,mu,freq_weights,mu). + + Deviance is usually defined as twice the loglikelihood ratio. + + Parameters + ---------- + endog : array-like + The endogenous response variable + mu : array-like + The inverse of the link function at the linear predicted values. + freq_weights : array-like + 1d array of frequency weights. The default is 1. + scale : float, optional + An optional scale argument. The default is 1. + + Returns + ------- + Deviance : array + The value of deviance function defined below. + + Notes + ----- + Deviance is defined + + .. math:: + + D = \sum_i (2 * freq\_weights_i * llf(Y_i, Y_i) - 2 * + llf(Y_i, \mu_i)) / scale + + where y is the endogenous variable. The deviance functions are + analytically defined for each family. + """ + raise NotImplementedError + + def resid_dev(self, endog, mu, freq_weights=1., scale=1.): + """ + The deviance residuals + + Parameters + ---------- + endog : array + The endogenous response variable + mu : array + The inverse of the link function at the linear predicted values. + freq_weights : array-like + 1d array of frequency weights. The default is 1. + scale : float, optional + An optional argument to divide the residuals by scale. The default + is 1. + + Returns + ------- + Deviance residuals. + + Notes + ----- + The deviance residuals are defined for each family. + """ + raise NotImplementedError + + def fitted(self, lin_pred): + """ + Fitted values based on linear predictors lin_pred. + + Parameters + ----------- + lin_pred : array + Values of the linear predictor of the model. + dot(X,beta) in a classical linear model. + + Returns + -------- + mu : array + The mean response variables given by the inverse of the link + function. + """ + fits = self.link.inverse(lin_pred) + return fits + + def predict(self, mu): + """ + Linear predictors based on given mu values. + + Parameters + ---------- + mu : array + The mean response variables + + Returns + ------- + lin_pred : array + Linear predictors based on the mean response variables. The value + of the link function at the given mu. + """ + return self.link(mu) + + def loglike(self, endog, mu, freq_weights=1., scale=1.): + """ + The log-likelihood function in terms of the fitted mean response. + + Parameters + ---------- + endog : array + Usually the endogenous response variable. + mu : array + Usually but not always the fitted mean response variable. + freq_weights : array-like + 1d array of frequency weights. The default is 1. + scale : float + The scale parameter. The default is 1. + + Returns + ------- + llf : float + The value of the loglikelihood evaluated at + (endog,mu,freq_weights,scale) as defined below. + + Notes + ----- + This is defined for each family. endog and mu are not restricted to + `endog` and `mu` respectively. For instance, the deviance function + calls both loglike(endog,endog) and loglike(endog,mu) to get the + likelihood ratio. + """ + raise NotImplementedError + + def resid_anscombe(self, endog, mu): + """ + The Anscombe residuals + + See Also + -------- + statsmodels.genmod.families.family.Family : `resid_anscombe` for the + individual families for more information + """ + raise NotImplementedError + + +class Poisson(Family): + """ + Poisson exponential family. + + Parameters + ---------- + link : a link instance, optional + The default link for the Poisson family is the log link. Available + links are log, identity, and sqrt. See statsmodels.family.links for + more information. + + Attributes + ---------- + Poisson.link : a link instance + The link function of the Poisson instance. + Poisson.variance : varfuncs instance + `variance` is an instance of + statsmodels.genmod.families.family.varfuncs.mu + + See also + -------- + statsmodels.genmod.families.family.Family + :ref:`links` + + """ + + links = [L.log, L.identity, L.sqrt] + variance = V.mu + valid = [0, np.inf] + safe_links = [L.Log, ] + + def __init__(self, link=L.log): + self.variance = Poisson.variance + self.link = link() + + def _clean(self, x): + """ + Helper function to trim the data so that is in (0,inf) + + Notes + ----- + The need for this function was discovered through usage and its + possible that other families might need a check for validity of the + domain. + """ + return np.clip(x, FLOAT_EPS, np.inf) + + def resid_dev(self, endog, mu, scale=1.): + r"""Poisson deviance residual + + Parameters + ---------- + endog : array-like + Endogenous response variable + mu : array-like + Fitted mean response variable + scale : float, optional + An optional argument to divide the residuals by scale. The default + is 1. + + Returns + ------- + resid_dev : array + Deviance residuals as defined below + + Notes + ----- + .. math:: + + resid\_dev_i = sign(Y_i - \mu_i) * \sqrt{2 * + (Y_i * \log(Y_i / \mu_i) - (Y_i - \mu_i))} / scale + """ + endog_mu = self._clean(endog / mu) + return (np.sign(endog - mu) * + np.sqrt(2 * (endog * np.log(endog_mu) - (endog - mu))) / scale) + + def deviance(self, endog, mu, freq_weights=1., scale=1.): + r''' + Poisson deviance function + + Parameters + ---------- + endog : array-like + Endogenous response variable + mu : array-like + Fitted mean response variable + freq_weights : array-like + 1d array of frequency weights. The default is 1. + scale : float, optional + An optional scale argument. The default is 1. + + Returns + ------- + deviance : float + The deviance function at (endog,mu,freq_weights,scale) as defined + below. + + Notes + ----- + If a constant term is included it is defined as + + .. math:: + + D = 2 * \sum_i (freq\_weights_i * Y_i * \log(Y_i / \mu_i))/ scale + ''' + endog_mu = self._clean(endog / mu) + return 2 * np.sum(endog * freq_weights * np.log(endog_mu)) / scale + + def loglike(self, endog, mu, freq_weights=1., scale=1.): + r""" + The log-likelihood function in terms of the fitted mean response. + + Parameters + ---------- + endog : array-like + Endogenous response variable + mu : array-like + Fitted mean response variable + freq_weights : array-like + 1d array of frequency weights. The default is 1. + scale : float, optional + The scale parameter, defaults to 1. + + Returns + ------- + llf : float + The value of the loglikelihood function evaluated at + (endog,mu,freq_weights,scale) as defined below. + + Notes + ----- + .. math:: + + llf = scale * \sum_i freq\_weights_i * (Y_i * \log(\mu_i) - \mu_i - + \ln \Gamma(Y_i + 1)) + """ + loglike = np.sum(freq_weights * (endog * np.log(mu) - mu - + special.gammaln(endog + 1))) + return scale * loglike + + def resid_anscombe(self, endog, mu): + r""" + Anscombe residuals for the Poisson exponential family distribution + + Parameters + ---------- + endog : array-like + Endogenous response variable + mu : array-like + Fitted mean response variable + + Returns + ------- + resid_anscombe : array + The Anscome residuals for the Poisson family defined below + + Notes + ----- + .. math:: + + resid\_anscombe_i = (3/2) * (Y_i^{2/3} - \mu_i^{2/3}) / \mu_i^{1/6} + """ + return (3 / 2.) * (endog**(2/3.) - mu**(2 / 3.)) / mu**(1 / 6.) + + +class Gaussian(Family): + """ + Gaussian exponential family distribution. + + Parameters + ---------- + link : a link instance, optional + The default link for the Gaussian family is the identity link. + Available links are log, identity, and inverse. + See statsmodels.family.links for more information. + + Attributes + ---------- + Gaussian.link : a link instance + The link function of the Gaussian instance + Gaussian.variance : varfunc instance + `variance` is an instance of statsmodels.family.varfuncs.constant + + See also + -------- + statsmodels.genmod.families.family.Family + :ref:`links` + + """ + + links = [L.log, L.identity, L.inverse_power] + variance = V.constant + safe_links = links + + def __init__(self, link=L.identity): + self.variance = Gaussian.variance + self.link = link() + + def resid_dev(self, endog, mu, scale=1.): + r""" + Gaussian deviance residuals + + Parameters + ----------- + endog : array-like + Endogenous response variable + mu : array-like + Fitted mean response variable + scale : float, optional + An optional argument to divide the residuals by scale. The default + is 1. + + Returns + ------- + resid_dev : array + Deviance residuals as defined below + + Notes + -------- + .. math:: + + resid\_dev_i = (Y_i - \mu_i) / \sqrt{Var(\mu_i)} / scale + """ + + return (endog - mu) / np.sqrt(self.variance(mu)) / scale + + def deviance(self, endog, mu, freq_weights=1., scale=1.): + r""" + Gaussian deviance function + + Parameters + ---------- + endog : array-like + Endogenous response variable + mu : array-like + Fitted mean response variable + freq_weights : array-like + 1d array of frequency weights. The default is 1. + scale : float, optional + An optional scale argument. The default is 1. + + Returns + ------- + deviance : float + The deviance function at (endog,mu,freq_weights,scale) + as defined below. + + Notes + -------- + .. math:: + + D = \sum_i freq\_weights_i * (Y_i - \mu_i)^2 / scale + """ + return np.sum((freq_weights * (endog - mu)**2)) / scale + + def loglike(self, endog, mu, freq_weights=1., scale=1.): + r""" + The log-likelihood in terms of the fitted mean response. + + Parameters + ---------- + endog : array-like + Endogenous response variable + mu : array-like + Fitted mean response variable + freq_weights : array-like + 1d array of frequency weights. The default is 1. + scale : float, optional + Scales the loglikelihood function. The default is 1. + + Returns + ------- + llf : float + The value of the loglikelihood function evaluated at + (endog,mu,freq_weights,scale) as defined below. + + Notes + ----- + If the link is the identity link function then the + loglikelihood function is the same as the classical OLS model. + + .. math:: + + llf = -nobs / 2 * (\log(SSR) + (1 + \log(2 \pi / nobs))) + + where + + .. math:: + SSR = \sum_i (Y_i - g^{-1}(\mu_i))^2 + + If the links is not the identity link then the loglikelihood + function is defined as + + .. math:: + + llf = \sum_i freq\_weights_i * ((Y_i * \mu_i - \mu_i^2 / 2) / scale- + Y^2 / (2 * scale) - (1/2) * \log(2 * \pi * scale)) + """ + if isinstance(self.link, L.Power) and self.link.power == 1: + # This is just the loglikelihood for classical OLS + nobs2 = np.sum(freq_weights, axis=0) / 2. + SSR = np.sum((endog-self.fitted(mu))**2, axis=0) + llf = -np.log(SSR) * nobs2 + llf -= (1+np.log(np.pi/nobs2))*nobs2 + return llf + else: + return np.sum(freq_weights * ((endog * mu - mu**2/2)/scale - + endog**2/(2 * scale) - .5*np.log(2 * np.pi * scale))) + + def resid_anscombe(self, endog, mu): + r""" + The Anscombe residuals for the Gaussian exponential family distribution + + Parameters + ---------- + endog : array + Endogenous response variable + mu : array + Fitted mean response variable + + Returns + ------- + resid_anscombe : array + The Anscombe residuals for the Gaussian family defined below + + Notes + -------- + .. math:: + + resid\_anscombe_i = Y_i - \mu_i + """ + return endog - mu + + +class Gamma(Family): + """ + Gamma exponential family distribution. + + Parameters + ---------- + link : a link instance, optional + The default link for the Gamma family is the inverse link. + Available links are log, identity, and inverse. + See statsmodels.family.links for more information. + + Attributes + ---------- + Gamma.link : a link instance + The link function of the Gamma instance + Gamma.variance : varfunc instance + `variance` is an instance of statsmodels.family.varfuncs.mu_squared + + See also + -------- + statsmodels.genmod.families.family.Family + :ref:`links` + + """ + + links = [L.log, L.identity, L.inverse_power] + variance = V.mu_squared + safe_links = [L.Log, ] + + def __init__(self, link=L.inverse_power): + self.variance = Gamma.variance + self.link = link() + + def _clean(self, x): + """ + Helper function to trim the data so that is in (0,inf) + + Notes + ----- + The need for this function was discovered through usage and its + possible that other families might need a check for validity of the + domain. + """ + return np.clip(x, FLOAT_EPS, np.inf) + + def deviance(self, endog, mu, freq_weights=1., scale=1.): + r""" + Gamma deviance function + + Parameters + ----------- + endog : array-like + Endogenous response variable + mu : array-like + Fitted mean response variable + freq_weights : array-like + 1d array of frequency weights. The default is 1. + scale : float, optional + An optional scale argument. The default is 1. + + Returns + ------- + deviance : float + Deviance function as defined below + + Notes + ----- + .. math:: + + D = 2 * \sum_i freq\_weights_i * ((Y_i - \mu_i)/\mu_i - \log(Y_i / + \mu_i)) + """ + endog_mu = self._clean(endog/mu) + return 2*np.sum(freq_weights*((endog-mu)/mu-np.log(endog_mu))) + + def resid_dev(self, endog, mu, scale=1.): + r""" + Gamma deviance residuals + + Parameters + ----------- + endog : array-like + Endogenous response variable + mu : array-like + Fitted mean response variable + scale : float, optional + An optional argument to divide the residuals by scale. The default + is 1. + + Returns + ------- + resid_dev : array + Deviance residuals as defined below + + Notes + ----- + .. math:: + + resid\_dev_i = sign(Y_i - \mu_i) \sqrt{-2 * + (-(Y_i - \mu_i) / \mu_i + \log(Y_i / \mu_i))} + """ + endog_mu = self._clean(endog / mu) + return np.sign(endog - mu) * np.sqrt(-2 * (-(endog - mu)/mu + + np.log(endog_mu))) + + def loglike(self, endog, mu, freq_weights=1., scale=1.): + r""" + The log-likelihood function in terms of the fitted mean response. + + Parameters + ---------- + endog : array-like + Endogenous response variable + mu : array-like + Fitted mean response variable + freq_weights : array-like + 1d array of frequency weights. The default is 1. + scale : float, optional + The default is 1. + + Returns + ------- + llf : float + The value of the loglikelihood function evaluated at + (endog,mu,freq_weights,scale) as defined below. + + Notes + -------- + .. math:: + + llf = -1 / scale * \sum_i *(Y_i / \mu_i+ \log(\mu_i)+ + (scale -1) * \log(Y) + \log(scale) + scale * + \ln \Gamma(1 / scale)) + """ + return - 1./scale * np.sum((endog/mu + np.log(mu) + (scale - 1) * + np.log(endog) + np.log(scale) + scale * + special.gammaln(1./scale)) * freq_weights) + + # in Stata scale is set to equal 1 for reporting llf + # in R it's the dispersion, though there is a loss of precision vs. + # our results due to an assumed difference in implementation + + def resid_anscombe(self, endog, mu): + r""" + The Anscombe residuals for Gamma exponential family distribution + + Parameters + ---------- + endog : array + Endogenous response variable + mu : array + Fitted mean response variable + + Returns + ------- + resid_anscombe : array + The Anscombe residuals for the Gamma family defined below + + Notes + ----- + .. math:: + + resid\_anscombe_i = 3 * (Y_i^{1/3} - \mu_i^{1/3}) / \mu_i^{1/3} + """ + return 3 * (endog**(1/3.) - mu**(1/3.)) / mu**(1/3.) + + +class Binomial(Family): + """ + Binomial exponential family distribution. + + Parameters + ---------- + link : a link instance, optional + The default link for the Binomial family is the logit link. + Available links are logit, probit, cauchy, log, and cloglog. + See statsmodels.family.links for more information. + + Attributes + ---------- + Binomial.link : a link instance + The link function of the Binomial instance + Binomial.variance : varfunc instance + `variance` is an instance of statsmodels.family.varfuncs.binary + + See also + -------- + statsmodels.genmod.families.family.Family + :ref:`links` + + Notes + ----- + endog for Binomial can be specified in one of three ways. + + """ + + links = [L.logit, L.probit, L.cauchy, L.log, L.cloglog, L.identity] + variance = V.binary # this is not used below in an effort to include n + + # Other safe links, e.g. cloglog and probit are subclasses + safe_links = [L.Logit, L.CDFLink] + + def __init__(self, link=L.logit): # , n=1.): + # TODO: it *should* work for a constant n>1 actually, if freq_weights + # is equal to n + self.n = 1 + # overwritten by initialize if needed but always used to initialize + # variance since endog is assumed/forced to be (0,1) + self.variance = V.Binomial(n=self.n) + self.link = link() + + def starting_mu(self, y): + """ + The starting values for the IRLS algorithm for the Binomial family. + A good choice for the binomial family is :math:`\mu_0 = (Y_i + 0.5)/2` + """ + return (y + .5)/2 + + def initialize(self, endog, freq_weights): + ''' + Initialize the response variable. + + Parameters + ---------- + endog : array + Endogenous response variable + + Returns + -------- + If `endog` is binary, returns `endog` + + If `endog` is a 2d array, then the input is assumed to be in the format + (successes, failures) and + successes/(success + failures) is returned. And n is set to + successes + failures. + ''' + # if not np.all(np.asarray(freq_weights) == 1): + # self.variance = V.Binomial(n=freq_weights) + if (endog.ndim > 1 and endog.shape[1] > 1): + y = endog[:, 0] + # overwrite self.freq_weights for deviance below + self.n = endog.sum(1) + return y*1./self.n, self.n + else: + return endog, np.ones(endog.shape[0]) + + def deviance(self, endog, mu, freq_weights=1, scale=1.): + r''' + Deviance function for either Bernoulli or Binomial data. + + Parameters + ---------- + endog : array-like + Endogenous response variable (already transformed to a probability + if appropriate). + mu : array + Fitted mean response variable + freq_weights : array-like + 1d array of frequency weights. The default is 1. + scale : float, optional + An optional scale argument. The default is 1. + + Returns + -------- + deviance : float + The deviance function as defined below + + Notes + ----- + If the endogenous variable is binary: + + .. math:: + + D = -2 * \sum_i freq\_weights * (I_{1,i} * \log(\mu_i) + I_{0,i} * + \log(1 - \mu_i)) + + where :math:`I_{1,i}` is an indicator function that evalueates to 1 if + :math:`Y_i = 1`. and :math:`I_{0,i}` is an indicator function that + evaluates to 1 if :math:`Y_i = 0`. + + If the model is ninomial: + + .. math:: + + D = 2 * \sum_i freq\_weights * (\log(Y_i / \mu_i) + (n_i - Y_i) * + \log((n_i - Y_i) / n_i - \mu_i)) + + where :math:`Y_i` and :math:`n` are as defined in Binomial.initialize. + ''' + if np.shape(self.n) == () and self.n == 1: + one = np.equal(endog, 1) + return -2 * np.sum((one * np.log(mu + 1e-200) + (1-one) * + np.log(1 - mu + 1e-200)) * freq_weights) + + else: + return 2 * np.sum(self.n * freq_weights * + (endog * np.log(endog/mu + 1e-200) + + (1 - endog) * np.log((1 - endog) / + (1 - mu) + 1e-200))) + + def resid_dev(self, endog, mu, scale=1.): + r""" + Binomial deviance residuals + + Parameters + ----------- + endog : array-like + Endogenous response variable + mu : array-like + Fitted mean response variable + scale : float, optional + An optional argument to divide the residuals by scale. The default + is 1. + + Returns + ------- + resid_dev : array + Deviance residuals as defined below + + Notes + ----- + If the endogenous variable is binary: + + .. math:: + + resid\_dev_i = sign(Y_i - \mu_i) * \sqrt{-2 * + \log(I_{1,i} * \mu_i + I_{0,i} * (1 - \mu_i))} + + where :math:`I_{1,i}` is an indicator function that evalueates to 1 if + :math:`Y_i = 1`. and :math:`I_{0,i}` is an indicator function that + evaluates to 1 if :math:`Y_i = 0`. + + If the endogenous variable is binomial: + + .. math:: + + resid\_dev_i = sign(Y_i - \mu_i) \sqrt{2 * n_i * + (Y_i * \log(Y_i / \mu_i) + (1 - Y_i) * + \log(1 - Y_i)/(1 - \mu_i))} + + where :math:`Y_i` and :math:`n` are as defined in Binomial.initialize. + """ + + mu = self.link._clean(mu) + if np.shape(self.n) == () and self.n == 1: + one = np.equal(endog, 1) + return np.sign(endog-mu)*np.sqrt(-2 * + np.log(one * mu + (1 - one) * + (1 - mu)))/scale + else: + return (np.sign(endog - mu) * + np.sqrt(2 * self.n * + (endog * np.log(endog/mu + 1e-200) + + (1 - endog) * np.log((1 - endog)/(1 - mu) + + 1e-200)))/scale) + + def loglike(self, endog, mu, freq_weights=1, scale=1.): + r""" + The log-likelihood function in terms of the fitted mean response. + + Parameters + ---------- + endog : array-like + Endogenous response variable + mu : array-like + Fitted mean response variable + freq_weights : array-like + 1d array of frequency weights. The default is 1. + scale : float, optional + Not used for the Binomial GLM. + + Returns + ------- + llf : float + The value of the loglikelihood function evaluated at + (endog,mu,freq_weights,scale) as defined below. + + Notes + -------- + If the endogenous variable is binary: + + .. math:: + + llf = scale * \sum_i (y_i * \log(\mu_i/(1-\mu_i)) + \log(1-\mu_i)) * + freq\_weights_i + + If the endogenous variable is binomial: + + .. math:: + + llf = scale * \sum_i freq\_weights_i * (\ln \Gamma(n+1) - + \ln \Gamma(y_i + 1) - \ln \Gamma(n_i - y_i +1) + y_i * + \log(\mu_i / (1 - \mu_i)) + n * \log(1 - \mu_i)) + + where :math:`y_i = Y_i * n_i` with :math:`Y_i` and :math:`n_i` as + defined in Binomial initialize. This simply makes :math:`y_i` the + original number of successes. + """ + + if np.shape(self.n) == () and self.n == 1: + return scale * np.sum((endog * np.log(mu/(1 - mu) + 1e-200) + + np.log(1 - mu)) * freq_weights) + else: + y = endog * self.n # convert back to successes + return scale * np.sum((special.gammaln(self.n + 1) - + special.gammaln(y + 1) - + special.gammaln(self.n - y + 1) + y * + np.log(mu/(1 - mu)) + self.n * + np.log(1 - mu)) * freq_weights) + + def resid_anscombe(self, endog, mu): + ''' + The Anscombe residuals + + Parameters + ---------- + endog : array-like + Endogenous response variable + mu : array-like + Fitted mean response variable + + Returns + ------- + resid_anscombe : array + The Anscombe residuals as defined below. + + Notes + ----- + sqrt(n)*(cox_snell(endog)-cox_snell(mu))/(mu**(1/6.)*(1-mu)**(1/6.)) + + where cox_snell is defined as + cox_snell(x) = betainc(2/3., 2/3., x)*betainc(2/3.,2/3.) + where betainc is the incomplete beta function + + The name 'cox_snell' is idiosyncratic and is simply used for + convenience following the approach suggested in Cox and Snell (1968). + Further note that + cox_snell(x) = x**(2/3.)/(2/3.)*hyp2f1(2/3.,1/3.,5/3.,x) + where hyp2f1 is the hypergeometric 2f1 function. The Anscombe + residuals are sometimes defined in the literature using the + hyp2f1 formulation. Both betainc and hyp2f1 can be found in scipy. + + References + ---------- + Anscombe, FJ. (1953) "Contribution to the discussion of H. Hotelling's + paper." Journal of the Royal Statistical Society B. 15, 229-30. + + Cox, DR and Snell, EJ. (1968) "A General Definition of Residuals." + Journal of the Royal Statistical Society B. 30, 248-75. + + ''' + cox_snell = lambda x: (special.betainc(2/3., 2/3., x) + * special.beta(2/3., 2/3.)) + return np.sqrt(self.n) * ((cox_snell(endog) - cox_snell(mu)) / + (mu**(1/6.) * (1 - mu)**(1/6.))) + + +class InverseGaussian(Family): + """ + InverseGaussian exponential family. + + Parameters + ---------- + link : a link instance, optional + The default link for the inverse Gaussian family is the + inverse squared link. + Available links are inverse_squared, inverse, log, and identity. + See statsmodels.family.links for more information. + + Attributes + ---------- + InverseGaussian.link : a link instance + The link function of the inverse Gaussian instance + InverseGaussian.variance : varfunc instance + `variance` is an instance of statsmodels.family.varfuncs.mu_cubed + + See also + -------- + statsmodels.genmod.families.family.Family + :ref:`links` + + Notes + ----- + The inverse Guassian distribution is sometimes referred to in the + literature as the Wald distribution. + + """ + + links = [L.inverse_squared, L.inverse_power, L.identity, L.log] + variance = V.mu_cubed + safe_links = [L.inverse_squared, L.Log, ] + + def __init__(self, link=L.inverse_squared): + self.variance = InverseGaussian.variance + self.link = link() + + def resid_dev(self, endog, mu, scale=1.): + r""" + Returns the deviance residuals for the inverse Gaussian family. + + Parameters + ----------- + endog : array-like + Endogenous response variable + mu : array-like + Fitted mean response variable + freq_weights : array-like + 1d array of frequency weights. The default is 1. + scale : float, optional + An optional argument to divide the residuals by scale. The default + is 1. + + Returns + ------- + resid_dev : array + Deviance residuals as defined below + + Notes + ----- + .. math:: + + resid\_dev_i = sign(Y_i - \mu_i) * + \sqrt {(Y_i - \mu_i)^2 / (Y_i * \mu_i^2)} / scale + """ + return np.sign(endog-mu) * np.sqrt((endog-mu)**2/(endog*mu**2))/scale + + def deviance(self, endog, mu, freq_weights=1., scale=1.): + r""" + Inverse Gaussian deviance function + + Parameters + ----------- + endog : array-like + Endogenous response variable + mu : array-like + Fitted mean response variable + freq_weights : array-like + 1d array of frequency weights. The default is 1. + scale : float, optional + An optional scale argument. The default is 1. + + Returns + ------- + deviance : float + Deviance function as defined below + + Notes + ----- + .. math:: + + D = \sum_i freq\_weights_i * ((Y_i - \mu_i)^2 / (Y_i *\mu_i^2)) / + scale + """ + return np.sum(freq_weights*(endog-mu)**2/(endog*mu**2))/scale + + def loglike(self, endog, mu, freq_weights=1., scale=1.): + r""" + The log-likelihood function in terms of the fitted mean response. + + Parameters + ---------- + endog : array-like + Endogenous response variable + mu : array-like + Fitted mean response variable + freq_weights : array-like + 1d array of frequency weights. The default is 1. + scale : float, optional + The default is 1. + + Returns + ------- + llf : float + The value of the loglikelihood function evaluated at + (endog,mu,freq_weights,scale) as defined below. + + Notes + ----- + .. math:: + + llf = -1/2 * \sum_i freq\_weights_i * ((Y_i - \mu_i)^2 / (Y_i * + \mu_i * scale) + \log(scale * Y_i^3) + \log(2 * \pi)) + """ + return -.5 * np.sum(((endog - mu)**2/(endog * mu**2 * scale) + + np.log(scale * endog**3) + np.log(2 * np.pi)) * + freq_weights) + + def resid_anscombe(self, endog, mu): + r""" + The Anscombe residuals for the inverse Gaussian distribution + + Parameters + ---------- + endog : array + Endogenous response variable + mu : array + Fitted mean response variable + + Returns + ------- + resid_anscombe : array + The Anscombe residuals for the inverse Gaussian distribution as + defined below + + Notes + ----- + .. math:: + + resid\_anscombe_i = \log(Y_i / \mu_i) / \sqrt{\mu_i} + """ + return np.log(endog / mu) / np.sqrt(mu) + + +class NegativeBinomial(Family): + """ + Negative Binomial exponential family. + + Parameters + ---------- + link : a link instance, optional + The default link for the negative binomial family is the log link. + Available links are log, cloglog, identity, nbinom and power. + See statsmodels.family.links for more information. + alpha : float, optional + The ancillary parameter for the negative binomial distribution. + For now `alpha` is assumed to be nonstochastic. The default value + is 1. Permissible values are usually assumed to be between .01 and 2. + + + Attributes + ---------- + NegativeBinomial.link : a link instance + The link function of the negative binomial instance + NegativeBinomial.variance : varfunc instance + `variance` is an instance of statsmodels.family.varfuncs.nbinom + + See also + -------- + statsmodels.genmod.families.family.Family + :ref:`links` + + Notes + ----- + Power link functions are not yet supported. + + """ + links = [L.log, L.cloglog, L.identity, L.nbinom, L.Power] + # TODO: add the ability to use the power links with an if test + # similar to below + variance = V.nbinom + safe_links = [L.Log, ] + + def __init__(self, link=L.log, alpha=1.): + self.alpha = 1. * alpha # make it at least float + self.variance = V.NegativeBinomial(alpha=self.alpha) + if isinstance(link, L.NegativeBinomial): + self.link = link(alpha=self.alpha) + else: + self.link = link() + + def _clean(self, x): + """ + Helper function to trim the data so that is in (0,inf) + + Notes + ----- + The need for this function was discovered through usage and its + possible that other families might need a check for validity of the + domain. + """ + return np.clip(x, FLOAT_EPS, np.inf) + + def deviance(self, endog, mu, freq_weights=1., scale=1.): + r""" + Returns the value of the deviance function. + + Parameters + ----------- + endog : array-like + Endogenous response variable + mu : array-like + Fitted mean response variable + freq_weights : array-like + 1d array of frequency weights. The default is 1. + scale : float, optional + An optional scale argument. The default is 1. + + Returns + ------- + deviance : float + Deviance function as defined below + + Notes + ----- + :math:`D = \sum_i piecewise_i` where :math:`piecewise_i` is defined as: + + If :math:`Y_{i} = 0`: + + :math:`piecewise_i = 2* \log(1 + \alpha * \mu_i) / \alpha` + + If :math:`Y_{i} > 0`: + + .. math: + + piecewise_i = 2 * Y_i * \log(Y_i / \mu_i) - (2 / \alpha) * + (1 + \alpha * Y_i) * \ln(1 + \alpha * Y_i) / (1 + \alpha * \mu_i) + + """ + iszero = np.equal(endog, 0) + notzero = 1 - iszero + endog_mu = self._clean(endog/mu) + tmp = iszero * 2 * np.log(1 + self.alpha * mu) / self.alpha + tmp += notzero * (2 * endog * np.log(endog_mu) - 2 / self.alpha * + (1 + self.alpha * endog) * + np.log((1 + self.alpha * endog) / + (1 + self.alpha * mu))) + return np.sum(freq_weights * tmp) / scale + + def resid_dev(self, endog, mu, scale=1.): + r""" + Negative Binomial Deviance Residual + + Parameters + ---------- + endog : array-like + `endog` is the response variable + mu : array-like + `mu` is the fitted value of the model + scale : float, optional + An optional argument to divide the residuals by scale. The default + is 1. + + Returns + -------- + resid_dev : array + The array of deviance residuals + + Notes + ----- + :math:`resid\_dev_i = sign(Y_i-\mu_i) * \sqrt{piecewise_i}` + + where :math:`piecewise_i` is defined as + + If :math:`Y_i = 0`: + + :math:`piecewise_i = 2 * \log(1 + \alpha * \mu_i)/ \alpha` + + If :math:`Y_i > 0`: + + :math:`piecewise_i = 2 * Y_i * \log(Y_i / \mu_i) - (2 / \alpha) * + (1 + \alpha * Y_i) * \log((1 + \alpha * Y_i) / (1 + \alpha * \mu_i))` + """ + iszero = np.equal(endog, 0) + notzero = 1 - iszero + endog_mu = self._clean(endog / mu) + tmp = iszero * 2 * np.log(1 + self.alpha * mu) / self.alpha + tmp += notzero * (2 * endog * np.log(endog_mu) - 2 / self.alpha * + (1 + self.alpha * endog) * + np.log((1 + self.alpha * endog) / + (1 + self.alpha * mu))) + return np.sign(endog - mu) * np.sqrt(tmp) / scale + + def loglike(self, endog, mu, freq_weights=1., scale=1.): + r""" + The log-likelihood function in terms of the fitted mean response. + + Parameters + ---------- + endog : array-like + Endogenous response variable + mu : array-like + The fitted mean response values + freq_weights : array-like + 1d array of frequency weights. The default is 1. + scale : float + The scale parameter. The default is 1. + + Returns + ------- + llf : float + The value of the loglikelihood function evaluated at + (endog,mu,freq_weights,scale) as defined below. + + Notes + ----- + Defined as: + + .. math:: + + llf = \sum_i freq\_weights_i * (Y_i * \log{(\alpha * e^{\eta_i} / + (1 + \alpha * e^{\eta_i}))} - \log{(1 + \alpha * e^{\eta_i})}/ + \alpha + Constant) + + where :math:`Constant` is defined as: + + .. math:: + + Constant = \ln \Gamma{(Y_i + 1/ \alpha )} - \ln \Gamma(Y_i + 1) - + \ln \Gamma{(1/ \alpha )} + """ + lin_pred = self._link(mu) + constant = (special.gammaln(endog + 1 / self.alpha) - + special.gammaln(endog+1)-special.gammaln(1/self.alpha)) + exp_lin_pred = np.exp(lin_pred) + return np.sum((endog * np.log(self.alpha * exp_lin_pred / + (1 + self.alpha * exp_lin_pred)) - + np.log(1 + self.alpha * exp_lin_pred) / + self.alpha + constant) * freq_weights) + + def resid_anscombe(self, endog, mu): + """ + The Anscombe residuals for the negative binomial family + + Parameters + ---------- + endog : array-like + Endogenous response variable + mu : array-like + Fitted mean response variable + + Returns + ------- + resid_anscombe : array + The Anscombe residuals as defined below. + + Notes + ----- + `resid_anscombe` = (hyp2f1(-alpha*endog)-hyp2f1(-alpha*mu)+\ + 1.5*(endog**(2/3.)-mu**(2/3.)))/(mu+alpha*mu**2)**(1/6.) + + where hyp2f1 is the hypergeometric 2f1 function parameterized as + hyp2f1(x) = hyp2f1(2/3.,1/3.,5/3.,x) + """ + + hyp2f1 = lambda x : special.hyp2f1(2 / 3., 1 / 3., 5 / 3., x) + return ((hyp2f1(-self.alpha * endog) - hyp2f1(-self.alpha * mu) + + 1.5 * ( endog**(2 / 3.) - mu**(2 / 3.))) / + (mu + self.alpha * mu**2)**(1 / 6.)) + + +class Tweedie(Family): + """ + Tweedie family. + + Parameters + ---------- + link : a link instance, optional + The default link for the Tweedie family is the log link when the + link_power is 0. Otherwise, the power link is default. + Available links are log and Power. + var_power : float, optional + The variance power. + link_power : float, optional + The link power. + + Attributes + ---------- + Tweedie.link : a link instance + The link function of the Tweedie instance + Tweedie.variance : varfunc instance + `variance` is an instance of statsmodels.family.varfuncs.Power + Tweedie.link_power : float + The power of the link function, or 0 if its a log link. + Tweedie.var_power : float + The power of the variance function. + + See also + -------- + statsmodels.genmod.families.family.Family + :ref:`links` + + Notes + ----- + Logliklihood function not implemented because of the complexity of + calculating an infinite series of summations. The variance power can be + estimated using the `estimate_tweedie_power` function that is part of the + `GLM` class. + """ + links = [L.log, L.Power] + variance = V.Power + safe_links = [L.log, L.Power] + + def __init__(self, link=None, var_power=1., link_power=0): + self.var_power = var_power + self.link_power = link_power + self.variance = V.Power(power=var_power * 1.) + if link_power != 0 and not ((link is L.Power) or (link is None)): + msg = 'link_power of {} not supported specified link' + msg = msg.format(link_power) + raise ValueError(msg) + if (link_power == 0) and ((link is None) or (link is L.Log)): + self.link = L.log() + elif link_power != 0: + self.link = L.Power(power=link_power * 1.) + else: + self.link = link() + + def _clean(self, x): + """ + Helper function to trim the data so that is in (0,inf) + + Notes + ----- + The need for this function was discovered through usage and its + possible that other families might need a check for validity of the + domain. + """ + return np.clip(x, 0, np.inf) + + def deviance(self, endog, mu, freq_weights=1., scale=1.): + r""" + Returns the value of the deviance function. + + Parameters + ----------- + endog : array-like + Endogenous response variable + mu : array-like + Fitted mean response variable + freq_weights : array-like + 1d array of frequency weights. The default is 1. + scale : float, optional + An optional scale argument. The default is 1. + + Returns + ------- + deviance : float + Deviance function as defined below + + Notes + ----- + When :math:`p = 1`, + + .. math:: + + resid\_dev_i = \mu + + when :math:`endog = 0` and + + .. math:: + + resid\_dev_i = endog * \log(endog / \mu) + (\mu - endog) + + otherwise. + + When :math:`p = 2`, + + .. math:: + + resid\_dev_i = (endog - \mu) / \mu - \log(endog / \mu) + + For all other p, + + .. math:: + + resid\_dev_i = endog ^{2 - p} / ((1 - p) * (2 - p)) - + endog * \mu ^{1 - p} / (1 - p) + \mu ^{2 - p} / + (2 - p) + + Once :math:`resid\_dev_i` is calculated, then calculate deviance as + + .. math:: + + D = \sum{2 * freq\_weights * resid\_dev_i} + """ + p = self.var_power + if p == 1: + dev = np.where(endog == 0, + mu, + endog * np.log(endog / mu) + (mu - endog)) + elif p == 2: + endog1 = np.clip(endog, FLOAT_EPS, np.inf) + dev = ((endog - mu) / mu) - np.log(endog1 / mu) + else: + dev = (endog ** (2 - p) / ((1 - p) * (2 - p)) - + endog * mu ** (1-p) / (1 - p) + mu ** (2 - p) / (2 - p)) + return np.sum(2 * freq_weights * dev) + + def resid_dev(self, endog, mu, scale=1.): + r""" + Tweedie Deviance Residual + + Parameters + ---------- + endog : array-like + `endog` is the response variable + mu : array-like + `mu` is the fitted value of the model + scale : float, optional + An optional argument to divide the residuals by scale. The default + is 1. + + Returns + -------- + resid_dev : array + The array of deviance residuals + + Notes + ----- + When :math:`p = 1`, + + .. math:: + + resid\_dev_i = \mu + + when :math:`endog = 0` and + + .. math:: + + resid\_dev_i = endog * \log(endog / \mu) + (\mu - endog) + + otherwise. + + When :math:`p = 2`, + + .. math:: + + resid\_dev_i = (endog - \mu) / \mu - \log(endog / \mu) + + For all other p, + + .. math:: + + resid\_dev_i = endog ^{2 - p} / ((1 - p) * (2 - p)) - + endog * \mu ^{1 - p} / (1 - p) + \mu ^{2 - p} / + (2 - p) + """ + p = self.var_power + if p == 1: + dev = np.where(endog == 0, + mu, + endog * np.log(endog / mu) + (mu - endog)) + elif p == 2: + endog1 = np.clip(endog, FLOAT_EPS, np.inf) + dev = ((endog - mu) / mu) - np.log(endog1 / mu) + else: + dev = (endog ** (2 - p) / ((1 - p) * (2 - p)) - + endog * mu ** (1-p) / (1 - p) + mu ** (2 - p) / (2 - p)) + return np.sign(endog - mu) * np.sqrt(2 * dev) + + def loglike(self, endog, mu, freq_weights=1., scale=1.): + r""" + The log-likelihood function in terms of the fitted mean response. + + Parameters + ---------- + endog : array-like + Endogenous response variable + mu : array-like + The fitted mean response values + freq_weights : array-like + 1d array of frequency weights. The default is 1. + scale : float + The scale parameter. The default is 1. + + Returns + ------- + llf : float + The value of the loglikelihood function evaluated at + (endog,mu,freq_weights,scale) as defined below. + + Notes + ----- + This is not implemented because of the complexity of calculating an + infinite series of sums. + """ + return np.nan + + def resid_anscombe(self, endog, mu): + """ + The Anscombe residuals for the Tweedie family + + Parameters + ---------- + endog : array-like + Endogenous response variable + mu : array-like + Fitted mean response variable + + Returns + ------- + resid_anscombe : array + The Anscombe residuals as defined below. + + Notes + ----- + When :math:`p = 3`, then + + .. math:: + + resid\_anscombe_i = (\log(endog) - \log(\mu)) / \sqrt{mu} + + Otherwise, + + .. math:: + + c = (3 - p) / 3 + + .. math:: + + resid\_anscombe_i = (1 / c) * (endog ^ c - \mu ^ c) / \mu ^{p / 6} + """ + if self.var_power == 3: + return (np.log(endog) - np.log(mu)) / np.sqrt(mu) + else: + c = (3. - self.var_power) / 3. + return ((1. / c) * (endog ** c - mu ** c) / + mu ** (self.var_power / 6.)) diff --git a/statsmodels/genmod/families/links.py b/statsmodels/genmod/families/links.py new file mode 100644 index 0000000..f45724d --- /dev/null +++ b/statsmodels/genmod/families/links.py @@ -0,0 +1,953 @@ +''' +Defines the link functions to be used with GLM and GEE families. +''' + +import numpy as np +import scipy.stats +FLOAT_EPS = np.finfo(float).eps + + +class Link(object): + """ + A generic link function for one-parameter exponential family. + + `Link` does nothing, but lays out the methods expected of any subclass. + """ + + def __call__(self, p): + """ + Return the value of the link function. This is just a placeholder. + + Parameters + ---------- + p : array-like + Probabilities + + Returns + ------- + g(p) : array-like + The value of the link function g(p) = z + """ + return NotImplementedError + + def inverse(self, z): + """ + Inverse of the link function. Just a placeholder. + + Parameters + ---------- + z : array-like + `z` is usually the linear predictor of the transformed variable + in the IRLS algorithm for GLM. + + Returns + ------- + g^(-1)(z) : array + The value of the inverse of the link function g^(-1)(z) = p + + + """ + return NotImplementedError + + def deriv(self, p): + """ + Derivative of the link function g'(p). Just a placeholder. + + Parameters + ---------- + p : array-like + + Returns + ------- + g'(p) : array + The value of the derivative of the link function g'(p) + """ + return NotImplementedError + + def deriv2(self, p): + """Second derivative of the link function g''(p) + + implemented through numerical differentiation + """ + from statsmodels.tools.numdiff import approx_fprime_cs + # TODO: workaround proplem with numdiff for 1d + return np.diag(approx_fprime_cs(p, self.deriv)) + + def inverse_deriv(self, z): + """ + Derivative of the inverse link function g^(-1)(z). + + Notes + ----- + This reference implementation gives the correct result but is + inefficient, so it can be overriden in subclasses. + + Parameters + ---------- + z : array-like + `z` is usually the linear predictor for a GLM or GEE model. + + Returns + ------- + g'^(-1)(z) : array + The value of the derivative of the inverse of the link function + + """ + return 1 / self.deriv(self.inverse(z)) + + +class Logit(Link): + """ + The logit transform + + Notes + ----- + call and derivative use a private method _clean to make trim p by + machine epsilon so that p is in (0,1) + + Alias of Logit: + logit = Logit() + """ + + def _clean(self, p): + """ + Clip logistic values to range (eps, 1-eps) + + Parameters + ----------- + p : array-like + Probabilities + + Returns + -------- + pclip : array + Clipped probabilities + """ + return np.clip(p, FLOAT_EPS, 1. - FLOAT_EPS) + + def __call__(self, p): + """ + The logit transform + + Parameters + ---------- + p : array-like + Probabilities + + Returns + ------- + z : array + Logit transform of `p` + + Notes + ----- + g(p) = log(p / (1 - p)) + """ + p = self._clean(p) + return np.log(p / (1. - p)) + + def inverse(self, z): + """ + Inverse of the logit transform + + Parameters + ---------- + z : array-like + The value of the logit transform at `p` + + Returns + ------- + p : array + Probabilities + + Notes + ----- + g^(-1)(z) = exp(z)/(1+exp(z)) + """ + z = np.asarray(z) + t = np.exp(-z) + return 1. / (1. + t) + + def deriv(self, p): + + """ + Derivative of the logit transform + + Parameters + ---------- + p: array-like + Probabilities + + Returns + ------- + g'(p) : array + Value of the derivative of logit transform at `p` + + Notes + ----- + g'(p) = 1 / (p * (1 - p)) + + Alias for `Logit`: + logit = Logit() + """ + p = self._clean(p) + return 1. / (p * (1 - p)) + + def inverse_deriv(self, z): + """ + Derivative of the inverse of the logit transform + + Parameters + ---------- + z : array-like + `z` is usually the linear predictor for a GLM or GEE model. + + Returns + ------- + g'^(-1)(z) : array + The value of the derivative of the inverse of the logit function + + """ + t = np.exp(z) + return t/(1 + t)**2 + + + def deriv2(self, p): + """ + Second derivative of the logit function. + + Parameters + ---------- + p : array-like + probabilities + + Returns + ------- + g''(z) : array + The value of the second derivative of the logit function + """ + v = p * (1 - p) + return (2*p - 1) / v**2 + +class logit(Logit): + pass + + +class Power(Link): + """ + The power transform + + Parameters + ---------- + power : float + The exponent of the power transform + + Notes + ----- + Aliases of Power: + inverse = Power(power=-1) + sqrt = Power(power=.5) + inverse_squared = Power(power=-2.) + identity = Power(power=1.) + """ + + def __init__(self, power=1.): + self.power = power + + def __call__(self, p): + """ + Power transform link function + + Parameters + ---------- + p : array-like + Mean parameters + + Returns + ------- + z : array-like + Power transform of x + + Notes + ----- + g(p) = x**self.power + """ + + z = np.power(p, self.power) + return z + + def inverse(self, z): + """ + Inverse of the power transform link function + + Parameters + ---------- + `z` : array-like + Value of the transformed mean parameters at `p` + + Returns + ------- + `p` : array + Mean parameters + + Notes + ----- + g^(-1)(z`) = `z`**(1/`power`) + """ + + p = np.power(z, 1. / self.power) + return p + + def deriv(self, p): + """ + Derivative of the power transform + + Parameters + ---------- + p : array-like + Mean parameters + + Returns + -------- + g'(p) : array + Derivative of power transform of `p` + + Notes + ----- + g'(`p`) = `power` * `p`**(`power` - 1) + """ + return self.power * np.power(p, self.power - 1) + + def deriv2(self, p): + """ + Second derivative of the power transform + + Parameters + ---------- + p : array-like + Mean parameters + + Returns + -------- + g''(p) : array + Second derivative of the power transform of `p` + + Notes + ----- + g''(`p`) = `power` * (`power` - 1) * `p`**(`power` - 2) + """ + return self.power * (self.power - 1) * np.power(p, self.power - 2) + + def inverse_deriv(self, z): + """ + Derivative of the inverse of the power transform + + Parameters + ---------- + z : array-like + `z` is usually the linear predictor for a GLM or GEE model. + + Returns + ------- + g^(-1)'(z) : array + The value of the derivative of the inverse of the power transform + function + """ + return np.power(z, (1 - self.power)/self.power) / self.power + + +class inverse_power(Power): + """ + The inverse transform + + Notes + ----- + g(p) = 1/p + + Alias of statsmodels.family.links.Power(power=-1.) + """ + def __init__(self): + super(inverse_power, self).__init__(power=-1.) + + +class sqrt(Power): + """ + The square-root transform + + Notes + ----- + g(`p`) = sqrt(`p`) + + Alias of statsmodels.family.links.Power(power=.5) + """ + def __init__(self): + super(sqrt, self).__init__(power=.5) + + +class inverse_squared(Power): + """ + The inverse squared transform + + Notes + ----- + g(`p`) = 1/(`p`\ \*\*2) + + Alias of statsmodels.family.links.Power(power=2.) + """ + def __init__(self): + super(inverse_squared, self).__init__(power=-2.) + + +class identity(Power): + """ + The identity transform + + Notes + ----- + g(`p`) = `p` + + Alias of statsmodels.family.links.Power(power=1.) + """ + def __init__(self): + super(identity, self).__init__(power=1.) + + +class Log(Link): + """ + The log transform + + Notes + ----- + call and derivative call a private method _clean to trim the data by + machine epsilon so that p is in (0,1). log is an alias of Log. + """ + + def _clean(self, x): + return np.clip(x, FLOAT_EPS, np.inf) + + def __call__(self, p, **extra): + """ + Log transform link function + + Parameters + ---------- + x : array-like + Mean parameters + + Returns + ------- + z : array + log(x) + + Notes + ----- + g(p) = log(p) + """ + x = self._clean(p) + return np.log(x) + + def inverse(self, z): + """ + Inverse of log transform link function + + Parameters + ---------- + z : array + The inverse of the link function at `p` + + Returns + ------- + p : array + The mean probabilities given the value of the inverse `z` + + Notes + ----- + g^{-1}(z) = exp(z) + """ + return np.exp(z) + + def deriv(self, p): + """ + Derivative of log transform link function + + Parameters + ---------- + p : array-like + Mean parameters + + Returns + ------- + g'(p) : array + derivative of log transform of x + + Notes + ----- + g'(x) = 1/x + """ + p = self._clean(p) + return 1. / p + + def deriv2(self, p): + """ + Second derivative of the log transform link function + + Parameters + ---------- + p : array-like + Mean parameters + + Returns + ------- + g''(p) : array + Second derivative of log transform of x + + Notes + ----- + g''(x) = -1/x^2 + """ + p = self._clean(p) + return -1. / p**2 + + def inverse_deriv(self, z): + """ + Derivative of the inverse of the log transform link function + + Parameters + ---------- + z : array + The inverse of the link function at `p` + + Returns + ------- + g^(-1)'(z) : array + The value of the derivative of the inverse of the log function, + the exponential function + """ + return np.exp(z) + + +class log(Log): + """ + The log transform + + Notes + ----- + log is a an alias of Log. + """ + pass + + +# TODO: the CDFLink is untested +class CDFLink(Logit): + """ + The use the CDF of a scipy.stats distribution + + CDFLink is a subclass of logit in order to use its _clean method + for the link and its derivative. + + Parameters + ---------- + dbn : scipy.stats distribution + Default is dbn=scipy.stats.norm + + Notes + ----- + The CDF link is untested. + """ + + def __init__(self, dbn=scipy.stats.norm): + self.dbn = dbn + + def __call__(self, p): + """ + CDF link function + + Parameters + ---------- + p : array-like + Mean parameters + + Returns + ------- + z : array + (ppf) inverse of CDF transform of p + + Notes + ----- + g(`p`) = `dbn`.ppf(`p`) + """ + p = self._clean(p) + return self.dbn.ppf(p) + + def inverse(self, z): + """ + The inverse of the CDF link + + Parameters + ---------- + z : array-like + The value of the inverse of the link function at `p` + + Returns + ------- + p : array + Mean probabilities. The value of the inverse of CDF link of `z` + + Notes + ----- + g^(-1)(`z`) = `dbn`.cdf(`z`) + """ + return self.dbn.cdf(z) + + def deriv(self, p): + """ + Derivative of CDF link + + Parameters + ---------- + p : array-like + mean parameters + + Returns + ------- + g'(p) : array + The derivative of CDF transform at `p` + + Notes + ----- + g'(`p`) = 1./ `dbn`.pdf(`dbn`.ppf(`p`)) + """ + p = self._clean(p) + return 1. / self.dbn.pdf(self.dbn.ppf(p)) + + def deriv2(self, p): + """ + Second derivative of the link function g''(p) + + implemented through numerical differentiation + """ + from statsmodels.tools.numdiff import approx_fprime + p = np.atleast_1d(p) + # Note: special function for norm.ppf does not support complex + return np.diag(approx_fprime(p, self.deriv, centered=True)) + + def inverse_deriv(self, z): + """ + Derivative of the inverse of the CDF transformation link function + + Parameters + ---------- + z : array + The inverse of the link function at `p` + + Returns + ------- + g^(-1)'(z) : array + The value of the derivative of the inverse of the logit function + """ + return 1/self.deriv(self.inverse(z)) + + +class probit(CDFLink): + """ + The probit (standard normal CDF) transform + + Notes + -------- + g(p) = scipy.stats.norm.ppf(p) + + probit is an alias of CDFLink. + """ + pass + + +class cauchy(CDFLink): + """ + The Cauchy (standard Cauchy CDF) transform + + Notes + ----- + g(p) = scipy.stats.cauchy.ppf(p) + + cauchy is an alias of CDFLink with dbn=scipy.stats.cauchy + """ + + def __init__(self): + super(cauchy, self).__init__(dbn=scipy.stats.cauchy) + + def deriv2(self, p): + """ + Second derivative of the Cauchy link function. + + Parameters + ---------- + p: array-like + Probabilities + + Returns + ------- + g''(p) : array + Value of the second derivative of Cauchy link function at `p` + """ + a = np.pi * (p - 0.5) + d2 = 2 * np.pi**2 * np.sin(a) / np.cos(a)**3 + return d2 + +class CLogLog(Logit): + """ + The complementary log-log transform + + CLogLog inherits from Logit in order to have access to its _clean method + for the link and its derivative. + + Notes + ----- + CLogLog is untested. + """ + def __call__(self, p): + """ + C-Log-Log transform link function + + Parameters + ---------- + p : array + Mean parameters + + Returns + ------- + z : array + The CLogLog transform of `p` + + Notes + ----- + g(p) = log(-log(1-p)) + """ + p = self._clean(p) + return np.log(-np.log(1 - p)) + + def inverse(self, z): + """ + Inverse of C-Log-Log transform link function + + + Parameters + ---------- + z : array-like + The value of the inverse of the CLogLog link function at `p` + + Returns + ------- + p : array + Mean parameters + + Notes + ----- + g^(-1)(`z`) = 1-exp(-exp(`z`)) + """ + return 1 - np.exp(-np.exp(z)) + + def deriv(self, p): + """ + Derivative of C-Log-Log transform link function + + Parameters + ---------- + p : array-like + Mean parameters + + Returns + ------- + g'(p) : array + The derivative of the CLogLog transform link function + + Notes + ----- + g'(p) = - 1 / ((p-1)*log(1-p)) + """ + p = self._clean(p) + return 1. / ((p - 1) * (np.log(1 - p))) + + def deriv2(self, p): + """ + Second derivative of the C-Log-Log ink function + + Parameters + ---------- + p : array-like + Mean parameters + + Returns + ------- + g''(p) : array + The second derivative of the CLogLog link function + """ + p = self._clean(p) + fl = np.log(1 - p) + d2 = -1 / ((1 - p)**2 * fl) + d2 *= 1 + 1 / fl + return d2 + + def inverse_deriv(self, z): + """ + Derivative of the inverse of the C-Log-Log transform link function + + Parameters + ---------- + z : array-like + The value of the inverse of the CLogLog link function at `p` + + Returns + ------- + g^(-1)'(z) : array + The derivative of the inverse of the CLogLog link function + """ + return np.exp(z - np.exp(z)) + + +class cloglog(CLogLog): + """ + The CLogLog transform link function. + + Notes + ----- + g(`p`) = log(-log(1-`p`)) + + cloglog is an alias for CLogLog + cloglog = CLogLog() + """ + pass + + +class NegativeBinomial(object): + ''' + The negative binomial link function + + Parameters + ---------- + alpha : float, optional + Alpha is the ancillary parameter of the Negative Binomial link + function. It is assumed to be nonstochastic. The default value is 1. + Permissible values are usually assumed to be in (.01, 2). + ''' + + def __init__(self, alpha=1.): + self.alpha = alpha + + def _clean(self, x): + return np.clip(x, FLOAT_EPS, np.inf) + + def __call__(self, p): + ''' + Negative Binomial transform link function + + Parameters + ---------- + p : array-like + Mean parameters + + Returns + ------- + z : array + The negative binomial transform of `p` + + Notes + ----- + g(p) = log(p/(p + 1/alpha)) + ''' + p = self._clean(p) + return np.log(p/(p + 1/self.alpha)) + + def inverse(self, z): + ''' + Inverse of the negative binomial transform + + Parameters + ----------- + z : array-like + The value of the inverse of the negative binomial link at `p`. + + Returns + ------- + p : array + Mean parameters + + Notes + ----- + g^(-1)(z) = exp(z)/(alpha*(1-exp(z))) + ''' + return -1/(self.alpha * (1 - np.exp(-z))) + + def deriv(self, p): + ''' + Derivative of the negative binomial transform + + Parameters + ---------- + p : array-like + Mean parameters + + Returns + ------- + g'(p) : array + The derivative of the negative binomial transform link function + + Notes + ----- + g'(x) = 1/(x+alpha*x^2) + ''' + return 1/(p + self.alpha * p**2) + + def deriv2(self,p): + ''' + Second derivative of the negative binomial link function. + + Parameters + ---------- + p : array-like + Mean parameters + + Returns + ------- + g''(p) : array + The second derivative of the negative binomial transform link + function + + Notes + ----- + g''(x) = -(1+2*alpha*x)/(x+alpha*x^2)^2 + ''' + numer = -(1 + 2 * self.alpha * p) + denom = (p + self.alpha * p**2)**2 + return numer / denom + + def inverse_deriv(self, z): + ''' + Derivative of the inverse of the negative binomial transform + + Parameters + ----------- + z : array-like + Usually the linear predictor for a GLM or GEE model + + Returns + ------- + g^(-1)'(z) : array + The value of the derivative of the inverse of the negative + binomial link + ''' + t = np.exp(z) + return t / (self.alpha * (1-t)**2) + + +class nbinom(NegativeBinomial): + """ + The negative binomial link function. + + Notes + ----- + g(p) = log(p/(p + 1/alpha)) + + nbinom is an alias of NegativeBinomial. + nbinom = NegativeBinomial(alpha=1.) + """ + pass diff --git a/statsmodels/genmod/families/tests/__init__.py b/statsmodels/genmod/families/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/genmod/families/tests/test_link.py b/statsmodels/genmod/families/tests/test_link.py new file mode 100644 index 0000000..b5198e7 --- /dev/null +++ b/statsmodels/genmod/families/tests/test_link.py @@ -0,0 +1,133 @@ +""" +Test functions for genmod.families.links +""" +from statsmodels.compat.python import range +import numpy as np +from numpy.testing import assert_allclose, assert_equal +import statsmodels.genmod.families as families +from statsmodels.tools import numdiff as nd + +# Family instances +links = families.links +logit = links.Logit() +inverse_power = links.inverse_power() +sqrt = links.sqrt() +inverse_squared = links.inverse_squared() +identity = links.identity() +log = links.log() +probit = links.probit() +cauchy = links.cauchy() +cloglog = links.CLogLog() +negbinom = links.NegativeBinomial() + +Links = [logit, inverse_power, sqrt, inverse_squared, identity, log, probit, cauchy, + cloglog, negbinom] + + +def get_domainvalue(link): + """ + Get a value in the domain for a given family. + """ + z = -np.log(np.random.uniform(0, 1)) + if type(link) == type(cloglog): # prone to overflow + z = min(z, 3) + elif type(link) == type(negbinom): # domain is negative numbers + z = -z + return z + +def test_inverse(): + """ + Logic check that link.inverse(link) and link(link.inverse) are the + identity. + """ + + np.random.seed(3285) + + for link in Links: + for k in range(10): + p = np.random.uniform(0, 1) # In domain for all families + d = link.inverse(link(p)) + assert_allclose(d, p, atol=1e-8, err_msg=str(link)) + + z = get_domainvalue(link) + d = link(link.inverse(z)) + assert_allclose(d, z, atol=1e-8, err_msg=str(link)) + + +def test_deriv(): + """ + Check link function derivatives using numeric differentiation. + """ + + np.random.seed(24235) + + for link in Links: + for k in range(10): + p = np.random.uniform(0, 1) + d = link.deriv(p) + da = nd.approx_fprime(np.r_[p], link) + assert_allclose(d, da, rtol=1e-6, atol=1e-6, + err_msg=str(link)) + + +def test_deriv2(): + """ + Check link function second derivatives using numeric + differentiation. + """ + + np.random.seed(24235) + + for link in Links: + # TODO: Resolve errors with the numeric derivatives + if type(link) == type(probit): + continue + for k in range(10): + p = np.random.uniform(0, 1) + p = np.clip(p, 0.01, 0.99) + if type(link) == type(cauchy): + p = np.clip(p, 0.03, 0.97) + d = link.deriv2(p) + da = nd.approx_fprime(np.r_[p], link.deriv) + assert_allclose(d, da, rtol=1e-6, atol=1e-6, + err_msg=str(link)) + +def test_inverse_deriv(): + """ + Logic check that inverse_deriv equals 1/link.deriv(link.inverse) + """ + + np.random.seed(24235) + + for link in Links: + for k in range(10): + z = -np.log(np.random.uniform()) # In domain for all families + d = link.inverse_deriv(z) + f = 1 / link.deriv(link.inverse(z)) + assert_allclose(d, f, rtol=1e-8, atol=1e-10, + err_msg=str(link)) + + +def test_invlogit_stability(): + z = [1123.4910007309222, 1483.952316802719, 1344.86033748641, + 706.339159002542, 1167.9986375146532, 663.8345826933115, + 1496.3691686913917, 1563.0763842182257, 1587.4309332296314, + 697.1173174974248, 1333.7256198289665, 1388.7667560586933, + 819.7605431778434, 1479.9204150555015, 1078.5642245164856, + 480.10338454985896, 1112.691659145772, 534.1061908007274, + 918.2011296406588, 1280.8808515887802, 758.3890788775948, + 673.503699841035, 1556.7043357878208, 819.5269028006679, + 1262.5711060356423, 1098.7271535253608, 1482.811928490097, + 796.198809756532, 893.7946963941745, 470.3304989319786, + 1427.77079226037, 1365.2050226373822, 1492.4193201661922, + 871.9922191949931, 768.4735925445908, 732.9222777654679, + 812.2382651982667, 495.06449978924525] + zinv = logit.inverse(z) + assert_equal(zinv, np.ones_like(z)) + +if __name__=="__main__": + #run_module_suite() + #taken from Fernando Perez: + import nose + nose.runmodule(argv=[__file__,'-vvs','-x','--pdb'], + exit=False) diff --git a/statsmodels/genmod/families/varfuncs.py b/statsmodels/genmod/families/varfuncs.py new file mode 100644 index 0000000..8c964d2 --- /dev/null +++ b/statsmodels/genmod/families/varfuncs.py @@ -0,0 +1,281 @@ +""" +Variance functions for use with the link functions in statsmodels.family.links +""" + +__docformat__ = 'restructuredtext' + +import numpy as np +FLOAT_EPS = np.finfo(float).eps + +class VarianceFunction(object): + """ + Relates the variance of a random variable to its mean. Defaults to 1. + + Methods + ------- + call + Returns an array of ones that is the same shape as `mu` + + Notes + ----- + After a variance function is initialized, its call method can be used. + + Alias for VarianceFunction: + constant = VarianceFunction() + + See also + -------- + statsmodels.genmod.families.family + """ + + def __call__(self, mu): + """ + Default variance function + + Parameters + ----------- + mu : array-like + mean parameters + + Returns + ------- + v : array + ones(mu.shape) + """ + mu = np.asarray(mu) + return np.ones(mu.shape, np.float64) + + def deriv(self, mu): + """ + Derivative of the variance function v'(mu) + """ + return np.zeros_like(mu) + + +constant = VarianceFunction() +constant.__doc__ = """ +The call method of constant returns a constant variance, i.e., a vector of ones. + +constant is an alias of VarianceFunction() +""" + +class Power(object): + """ + Power variance function + + Parameters + ---------- + power : float + exponent used in power variance function + + Methods + ------- + call + Returns the power variance + + Formulas + -------- + V(mu) = numpy.fabs(mu)**power + + Notes + ----- + Aliases for Power: + mu = Power() + mu_squared = Power(power=2) + mu_cubed = Power(power=3) + """ + + def __init__(self, power=1.): + self.power = power + + def __call__(self, mu): + """ + Power variance function + + Parameters + ---------- + mu : array-like + mean parameters + + Returns + ------- + variance : array + numpy.fabs(mu)**self.power + """ + return np.power(np.fabs(mu), self.power) + + def deriv(self, mu): + """ + Derivative of the variance function v'(mu) + + May be undefined at zero. + """ + + der = self.power * np.fabs(mu) ** (self.power - 1) + ii = np.flatnonzero(mu < 0) + der[ii] *= -1 + return der + + +mu = Power() +mu.__doc__ = """ +Returns np.fabs(mu) + +Notes +----- +This is an alias of Power() +""" +mu_squared = Power(power=2) +mu_squared.__doc__ = """ +Returns np.fabs(mu)**2 + +Notes +----- +This is an alias of statsmodels.family.links.Power(power=2) +""" +mu_cubed = Power(power=3) +mu_cubed.__doc__ = """ +Returns np.fabs(mu)**3 + +Notes +----- +This is an alias of statsmodels.family.links.Power(power=3) +""" + +class Binomial(object): + """ + Binomial variance function + + Parameters + ---------- + n : int, optional + The number of trials for a binomial variable. The default is 1 for + p in (0,1) + + Methods + ------- + call + Returns the binomial variance + + Formulas + -------- + V(mu) = p * (1 - p) * n + + where p = mu / n + + Notes + ----- + Alias for Binomial: + binary = Binomial() + + A private method _clean trims the data by machine epsilon so that p is + in (0,1) + """ + + def __init__(self, n=1): + self.n = n + + def _clean(self, p): + return np.clip(p, FLOAT_EPS, 1 - FLOAT_EPS) + + def __call__(self, mu): + """ + Binomial variance function + + Parameters + ----------- + mu : array-like + mean parameters + + Returns + ------- + variance : array + variance = mu/n * (1 - mu/n) * self.n + """ + p = self._clean(mu / self.n) + return p * (1 - p) * self.n + + #TODO: inherit from super + def deriv(self, mu): + """ + Derivative of the variance function v'(mu) + """ + return 1 - 2*mu + + +binary = Binomial() +binary.__doc__ = """ +The binomial variance function for n = 1 + +Notes +----- +This is an alias of Binomial(n=1) +""" + +class NegativeBinomial(object): + ''' + Negative binomial variance function + + Parameters + ---------- + alpha : float + The ancillary parameter for the negative binomial variance function. + `alpha` is assumed to be nonstochastic. The default is 1. + + Methods + ------- + call + Returns the negative binomial variance + + Formulas + -------- + V(mu) = mu + alpha*mu**2 + + Notes + ----- + Alias for NegativeBinomial: + nbinom = NegativeBinomial() + + A private method _clean trims the data by machine epsilon so that p is + in (0,inf) + ''' + + def __init__(self, alpha=1.): + self.alpha = alpha + + def _clean(self, p): + return np.clip(p, FLOAT_EPS, np.inf) + + def __call__(self, mu): + """ + Negative binomial variance function + + Parameters + ---------- + mu : array-like + mean parameters + + Returns + ------- + variance : array + variance = mu + alpha*mu**2 + """ + p = self._clean(mu) + return p + self.alpha*p**2 + + def deriv(self, mu): + """ + Derivative of the negative binomial variance function. + """ + + p = self._clean(mu) + return 1 + 2 * self.alpha * p + +nbinom = NegativeBinomial() +nbinom.__doc__ = """ +Negative Binomial variance function. + +Notes +----- +This is an alias of NegativeBinomial(alpha=1.) +""" diff --git a/statsmodels/genmod/generalized_estimating_equations.py b/statsmodels/genmod/generalized_estimating_equations.py new file mode 100644 index 0000000..df852f3 --- /dev/null +++ b/statsmodels/genmod/generalized_estimating_equations.py @@ -0,0 +1,2724 @@ +""" +Procedures for fitting marginal regression models to dependent data +using Generalized Estimating Equations. + +References +---------- +KY Liang and S Zeger. "Longitudinal data analysis using +generalized linear models". Biometrika (1986) 73 (1): 13-22. + +S Zeger and KY Liang. "Longitudinal Data Analysis for Discrete and +Continuous Outcomes". Biometrics Vol. 42, No. 1 (Mar., 1986), +pp. 121-130 + +A Rotnitzky and NP Jewell (1990). "Hypothesis testing of regression +parameters in semiparametric generalized linear models for cluster +correlated data", Biometrika, 77, 485-497. + +Xu Guo and Wei Pan (2002). "Small sample performance of the score +test in GEE". +http://www.sph.umn.edu/faculty1/wp-content/uploads/2012/11/rr2002-013.pdf + +LA Mancl LA, TA DeRouen (2001). A covariance estimator for GEE with +improved small-sample properties. Biometrics. 2001 Mar;57(1):126-34. +""" +from __future__ import division +from statsmodels.compat.python import range, lzip, zip + +import numpy as np +from scipy import stats +import pandas as pd + +from statsmodels.tools.decorators import (cache_readonly, + resettable_cache) +import statsmodels.base.model as base +# used for wrapper: +import statsmodels.regression.linear_model as lm +import statsmodels.base.wrapper as wrap + +from statsmodels.genmod import families +from statsmodels.genmod import cov_struct as cov_structs + +import statsmodels.genmod.families.varfuncs as varfuncs +from statsmodels.genmod.families.links import Link + +from statsmodels.tools.sm_exceptions import (ConvergenceWarning, + DomainWarning, + IterationLimitWarning, + ValueWarning) +import warnings + +from statsmodels.graphics._regressionplots_doc import ( + _plot_added_variable_doc, + _plot_partial_residuals_doc, + _plot_ceres_residuals_doc) + + +class ParameterConstraint(object): + """ + A class for managing linear equality constraints for a parameter + vector. + """ + + def __init__(self, lhs, rhs, exog): + """ + Parameters + ---------- + lhs : ndarray + A q x p matrix which is the left hand side of the + constraint lhs * param = rhs. The number of constraints is + q >= 1 and p is the dimension of the parameter vector. + rhs : ndarray + A 1-dimensional vector of length q which is the right hand + side of the constraint equation. + exog : ndarray + The n x p exognenous data for the full model. + """ + + # In case a row or column vector is passed (patsy linear + # constraints passes a column vector). + rhs = np.atleast_1d(rhs.squeeze()) + + if rhs.ndim > 1: + raise ValueError("The right hand side of the constraint " + "must be a vector.") + + if len(rhs) != lhs.shape[0]: + raise ValueError("The number of rows of the left hand " + "side constraint matrix L must equal " + "the length of the right hand side " + "constraint vector R.") + + self.lhs = lhs + self.rhs = rhs + + # The columns of lhs0 are an orthogonal basis for the + # orthogonal complement to row(lhs), the columns of lhs1 are + # an orthogonal basis for row(lhs). The columns of lhsf = + # [lhs0, lhs1] are mutually orthogonal. + lhs_u, lhs_s, lhs_vt = np.linalg.svd(lhs.T, full_matrices=1) + self.lhs0 = lhs_u[:, len(lhs_s):] + self.lhs1 = lhs_u[:, 0:len(lhs_s)] + self.lhsf = np.hstack((self.lhs0, self.lhs1)) + + # param0 is one solution to the underdetermined system + # L * param = R. + self.param0 = np.dot(self.lhs1, np.dot(lhs_vt, self.rhs) / + lhs_s) + + self._offset_increment = np.dot(exog, self.param0) + + self.orig_exog = exog + self.exog_fulltrans = np.dot(exog, self.lhsf) + + def offset_increment(self): + """ + Returns a vector that should be added to the offset vector to + accommodate the constraint. + + Parameters + ---------- + exog : array-like + The exogeneous data for the model. + """ + + return self._offset_increment + + def reduced_exog(self): + """ + Returns a linearly transformed exog matrix whose columns span + the constrained model space. + + Parameters + ---------- + exog : array-like + The exogeneous data for the model. + """ + return self.exog_fulltrans[:, 0:self.lhs0.shape[1]] + + def restore_exog(self): + """ + Returns the full exog matrix before it was reduced to + satisfy the constraint. + """ + return self.orig_exog + + def unpack_param(self, params): + """ + Converts the parameter vector `params` from reduced to full + coordinates. + """ + + return self.param0 + np.dot(self.lhs0, params) + + def unpack_cov(self, bcov): + """ + Converts the covariance matrix `bcov` from reduced to full + coordinates. + """ + + return np.dot(self.lhs0, np.dot(bcov, self.lhs0.T)) + + +_gee_init_doc = """ + Marginal regression model fit using Generalized Estimating Equations. + + GEE can be used to fit Generalized Linear Models (GLMs) when the + data have a grouped structure, and the observations are possibly + correlated within groups but not between groups. + + Parameters + ---------- + endog : array-like + 1d array of endogenous values (i.e. responses, outcomes, + dependent variables, or 'Y' values). + exog : array-like + 2d array of exogeneous values (i.e. covariates, predictors, + independent variables, regressors, or 'X' values). A `nobs x + k` array where `nobs` is the number of observations and `k` is + the number of regressors. An intercept is not included by + default and should be added by the user. See + `statsmodels.tools.add_constant`. + groups : array-like + A 1d array of length `nobs` containing the group labels. + time : array-like + A 2d array of time (or other index) values, used by some + dependence structures to define similarity relationships among + observations within a cluster. + family : family class instance +%(family_doc)s + cov_struct : CovStruct class instance + The default is Independence. To specify an exchangeable + structure use cov_struct = Exchangeable(). See + statsmodels.genmod.cov_struct.CovStruct for more + information. + offset : array-like + An offset to be included in the fit. If provided, must be + an array whose length is the number of rows in exog. + dep_data : array-like + Additional data passed to the dependence structure. + constraint : (ndarray, ndarray) + If provided, the constraint is a tuple (L, R) such that the + model parameters are estimated under the constraint L * + param = R, where L is a q x p matrix and R is a + q-dimensional vector. If constraint is provided, a score + test is performed to compare the constrained model to the + unconstrained model. + update_dep : bool + If true, the dependence parameters are optimized, otherwise + they are held fixed at their starting values. + weights : array-like + An array of weights to use in the analysis. The weights must + be constant within each group. These correspond to + probability weights (pweights) in Stata. + %(extra_params)s + + See Also + -------- + statsmodels.genmod.families.family + :ref:`families` + :ref:`links` + + Notes + ----- + Only the following combinations make sense for family and link :: + + + ident log logit probit cloglog pow opow nbinom loglog logc + Gaussian | x x x + inv Gaussian | x x x + binomial | x x x x x x x x x + Poission | x x x + neg binomial | x x x x + gamma | x x x + + Not all of these link functions are currently available. + + Endog and exog are references so that if the data they refer + to are already arrays and these arrays are changed, endog and + exog will change. + + The "robust" covariance type is the standard "sandwich estimator" + (e.g. Liang and Zeger (1986)). It is the default here and in most + other packages. The "naive" estimator gives smaller standard + errors, but is only correct if the working correlation structure + is correctly specified. The "bias reduced" estimator of Mancl and + DeRouen (Biometrics, 2001) reduces the downard bias of the robust + estimator. + + The robust covariance provided here follows Liang and Zeger (1986) + and agrees with R's gee implementation. To obtain the robust + standard errors reported in Stata, multiply by sqrt(N / (N - g)), + where N is the total sample size, and g is the average group size. + + Examples + -------- + %(example)s +""" + +_gee_family_doc = """\ + The default is Gaussian. To specify the binomial + distribution use `family=sm.family.Binomial()`. Each family + can take a link instance as an argument. See + statsmodels.family.family for more information.""" + +_gee_ordinal_family_doc = """\ + The only family supported is `Binomial`. The default `Logit` + link may be replaced with `probit` if desired.""" + +_gee_nominal_family_doc = """\ + The default value `None` uses a multinomial logit family + specifically designed for use with GEE. Setting this + argument to a non-default value is not currently supported.""" + +_gee_fit_doc = """ + Fits a marginal regression model using generalized estimating + equations (GEE). + + Parameters + ---------- + maxiter : integer + The maximum number of iterations + ctol : float + The convergence criterion for stopping the Gauss-Seidel + iterations + start_params : array-like + A vector of starting values for the regression + coefficients. If None, a default is chosen. + params_niter : integer + The number of Gauss-Seidel updates of the mean structure + parameters that take place prior to each update of the + dependence structure. + first_dep_update : integer + No dependence structure updates occur before this + iteration number. + cov_type : string + One of "robust", "naive", or "bias_reduced". + ddof_scale : scalar or None + The scale parameter is estimated as the sum of squared + Pearson residuals divided by `N - ddof_scale`, where N + is the total sample size. If `ddof_scale` is None, the + number of covariates (including an intercept if present) + is used. + scaling_factor : scalar + The estimated covariance of the parameter estimates is + scaled by this value. Default is 1, Stata uses N / (N - g), + where N is the total sample size and g is the average group + size. + + Returns + ------- + An instance of the GEEResults class or subclass + + Notes + ----- + If convergence difficulties occur, increase the values of + `first_dep_update` and/or `params_niter`. Setting + `first_dep_update` to a greater value (e.g. ~10-20) causes the + algorithm to move close to the GLM solution before attempting + to identify the dependence structure. + + For the Gaussian family, there is no benefit to setting + `params_niter` to a value greater than 1, since the mean + structure parameters converge in one step. +""" + +_gee_results_doc = """ + Returns + ------- + **Attributes** + + cov_params_default : ndarray + default covariance of the parameter estimates. Is chosen among one + of the following three based on `cov_type` + cov_robust : ndarray + covariance of the parameter estimates that is robust + cov_naive : ndarray + covariance of the parameter estimates that is not robust to + correlation or variance misspecification + cov_robust_bc : ndarray + covariance of the parameter estimates that is robust and bias + reduced + converged : bool + indicator for convergence of the optimization. + True if the norm of the score is smaller than a threshold + cov_type : string + string indicating whether a "robust", "naive" or "bias_reduced" + covariance is used as default + fit_history : dict + Contains information about the iterations. + fittedvalues : array + Linear predicted values for the fitted model. + dot(exog, params) + model : class instance + Pointer to GEE model instance that called `fit`. + normalized_cov_params : array + See GEE docstring + params : array + The coefficients of the fitted model. Note that + interpretation of the coefficients often depends on the + distribution family and the data. + scale : float + The estimate of the scale / dispersion for the model fit. + See GEE.fit for more information. + score_norm : float + norm of the score at the end of the iterative estimation. + bse : array + The standard errors of the fitted GEE parameters. +""" + +_gee_example = """ + Logistic regression with autoregressive working dependence: + + >>> import statsmodels.api as sm + >>> family = sm.families.Binomial() + >>> va = sm.cov_struct.Autoregressive() + >>> model = sm.GEE(endog, exog, group, family=family, cov_struct=va) + >>> result = model.fit() + >>> print(result.summary()) + + Use formulas to fit a Poisson GLM with independent working + dependence: + + >>> import statsmodels.api as sm + >>> fam = sm.families.Poisson() + >>> ind = sm.cov_struct.Independence() + >>> model = sm.GEE.from_formula("y ~ age + trt + base", "subject", + data, cov_struct=ind, family=fam) + >>> result = model.fit() + >>> print(result.summary()) + + Equivalent, using the formula API: + + >>> import statsmodels.api as sm + >>> import statsmodels.formula.api as smf + >>> fam = sm.families.Poisson() + >>> ind = sm.cov_struct.Independence() + >>> model = smf.gee("y ~ age + trt + base", "subject", + data, cov_struct=ind, family=fam) + >>> result = model.fit() + >>> print(result.summary()) +""" + +_gee_ordinal_example = """ + Fit an ordinal regression model using GEE, with "global + odds ratio" dependence: + + >>> import statsmodels.api as sm + >>> gor = sm.cov_struct.GlobalOddsRatio("ordinal") + >>> model = sm.OrdinalGEE(endog, exog, groups, cov_struct=gor) + >>> result = model.fit() + >>> print(result.summary()) + + Using formulas: + + >>> import statsmodels.formula.api as smf + >>> model = smf.ordinal_gee("y ~ x1 + x2", groups, data, + cov_struct=gor) + >>> result = model.fit() + >>> print(result.summary()) +""" + +_gee_nominal_example = """ + Fit a nominal regression model using GEE: + + >>> import statsmodels.api as sm + >>> import statsmodels.formula.api as smf + >>> gor = sm.cov_struct.GlobalOddsRatio("nominal") + >>> model = sm.NominalGEE(endog, exog, groups, cov_struct=gor) + >>> result = model.fit() + >>> print(result.summary()) + + Using formulas: + + >>> import statsmodels.api as sm + >>> model = sm.NominalGEE.from_formula("y ~ x1 + x2", groups, + data, cov_struct=gor) + >>> result = model.fit() + >>> print(result.summary()) + + Using the formula API: + + >>> import statsmodels.formula.api as smf + >>> model = smf.nominal_gee("y ~ x1 + x2", groups, data, + cov_struct=gor) + >>> result = model.fit() + >>> print(result.summary()) +""" + + +class GEE(base.Model): + + __doc__ = ( + " Estimation of marginal regression models using Generalized\n" + " Estimating Equations (GEE).\n" + _gee_init_doc % + {'extra_params': base._missing_param_doc, + 'family_doc': _gee_family_doc, + 'example': _gee_example}) + + cached_means = None + + def __init__(self, endog, exog, groups, time=None, family=None, + cov_struct=None, missing='none', offset=None, + exposure=None, dep_data=None, constraint=None, + update_dep=True, weights=None, **kwargs): + + if family is not None: + if not isinstance(family.link, tuple(family.safe_links)): + import warnings + msg = ("The {0} link function does not respect the " + "domain of the {1} family.") + warnings.warn(msg.format(family.link.__class__.__name__, + family.__class__.__name__), + DomainWarning) + + self.missing = missing + self.dep_data = dep_data + self.constraint = constraint + self.update_dep = update_dep + + groups = np.array(groups) # in case groups is pandas + # Pass groups, time, offset, and dep_data so they are + # processed for missing data along with endog and exog. + # Calling super creates self.exog, self.endog, etc. as + # ndarrays and the original exog, endog, etc. are + # self.data.endog, etc. + super(GEE, self).__init__(endog, exog, groups=groups, + time=time, offset=offset, + exposure=exposure, weights=weights, + dep_data=dep_data, missing=missing, + **kwargs) + + self._init_keys.extend(["update_dep", "constraint", "family", + "cov_struct"]) + + # Handle the family argument + if family is None: + family = families.Gaussian() + else: + if not issubclass(family.__class__, families.Family): + raise ValueError("GEE: `family` must be a genmod " + "family instance") + self.family = family + + # Handle the cov_struct argument + if cov_struct is None: + cov_struct = cov_structs.Independence() + else: + if not issubclass(cov_struct.__class__, cov_structs.CovStruct): + raise ValueError("GEE: `cov_struct` must be a genmod " + "cov_struct instance") + + self.cov_struct = cov_struct + + # Handle the offset and exposure + self._offset_exposure = None + if offset is not None: + self._offset_exposure = self.offset.copy() + self.offset = offset + if exposure is not None: + if not isinstance(self.family.link, families.links.Log): + raise ValueError( + "exposure can only be used with the log link function") + if self._offset_exposure is not None: + self._offset_exposure += np.log(exposure) + else: + self._offset_exposure = np.log(exposure) + self.exposure = exposure + + # Handle the constraint + self.constraint = None + if constraint is not None: + if len(constraint) != 2: + raise ValueError("GEE: `constraint` must be a 2-tuple.") + if constraint[0].shape[1] != self.exog.shape[1]: + raise ValueError( + "GEE: the left hand side of the constraint must have " + "the same number of columns as the exog matrix.") + self.constraint = ParameterConstraint(constraint[0], + constraint[1], + self.exog) + + if self._offset_exposure is not None: + self._offset_exposure += self.constraint.offset_increment() + else: + self._offset_exposure = ( + self.constraint.offset_increment().copy()) + self.exog = self.constraint.reduced_exog() + + # Create list of row indices for each group + group_labels, ix = np.unique(self.groups, return_inverse=True) + se = pd.Series(index=np.arange(len(ix))) + gb = se.groupby(ix).groups + dk = [(lb, np.asarray(gb[k])) for k, lb in enumerate(group_labels)] + self.group_indices = dict(dk) + self.group_labels = group_labels + + # Convert the data to the internal representation, which is a + # list of arrays, corresponding to the groups. + self.endog_li = self.cluster_list(self.endog) + self.exog_li = self.cluster_list(self.exog) + + if self.weights is not None: + self.weights_li = self.cluster_list(self.weights) + self.weights_li = [x[0] for x in self.weights_li] + self.weights_li = np.asarray(self.weights_li) + + self.num_group = len(self.endog_li) + + # Time defaults to a 1d grid with equal spacing + if self.time is not None: + self.time = np.asarray(self.time, np.float64) + if self.time.ndim == 1: + self.time = self.time[:, None] + self.time_li = self.cluster_list(self.time) + else: + self.time_li = \ + [np.arange(len(y), dtype=np.float64)[:, None] + for y in self.endog_li] + self.time = np.concatenate(self.time_li) + + if self._offset_exposure is not None: + self.offset_li = self.cluster_list(self._offset_exposure) + else: + self.offset_li = None + if constraint is not None: + self.constraint.exog_fulltrans_li = \ + self.cluster_list(self.constraint.exog_fulltrans) + + self.family = family + + self.cov_struct.initialize(self) + + # Total sample size + group_ns = [len(y) for y in self.endog_li] + self.nobs = sum(group_ns) + # The following are column based, not on rank see #1928 + self.df_model = self.exog.shape[1] - 1 # assumes constant + self.df_resid = self.nobs - self.exog.shape[1] + + # Skip the covariance updates if all groups have a single + # observation (reduces to fitting a GLM). + maxgroup = max([len(x) for x in self.endog_li]) + if maxgroup == 1: + self.update_dep = False + + # Override to allow groups and time to be passed as variable + # names. + @classmethod + def from_formula(cls, formula, groups, data, subset=None, + time=None, offset=None, exposure=None, + *args, **kwargs): + """ + Create a GEE model instance from a formula and dataframe. + + Parameters + ---------- + formula : str or generic Formula object + The formula specifying the model + groups : array-like or string + Array of grouping labels. If a string, this is the name + of a variable in `data` that contains the grouping labels. + data : array-like + The data for the model. + subset : array-like + An array-like object of booleans, integers, or index + values that indicate the subset of the data to used when + fitting the model. + time : array-like or string + The time values, used for dependence structures involving + distances between observations. If a string, this is the + name of a variable in `data` that contains the time + values. + offset : array-like or string + The offset values, added to the linear predictor. If a + string, this is the name of a variable in `data` that + contains the offset values. + exposure : array-like or string + The exposure values, only used if the link function is the + logarithm function, in which case the log of `exposure` + is added to the offset (if any). If a string, this is the + name of a variable in `data` that contains the offset + values. + %(missing_param_doc)s + args : extra arguments + These are passed to the model + kwargs : extra keyword arguments + These are passed to the model with one exception. The + ``eval_env`` keyword is passed to patsy. It can be either a + :class:`patsy:patsy.EvalEnvironment` object or an integer + indicating the depth of the namespace to use. For example, the + default ``eval_env=0`` uses the calling namespace. If you wish + to use a "clean" environment set ``eval_env=-1``. + + Returns + ------- + model : GEE model instance + + Notes + ------ + `data` must define __getitem__ with the keys in the formula + terms args and kwargs are passed on to the model + instantiation. E.g., a numpy structured or rec array, a + dictionary, or a pandas DataFrame. + + This method currently does not correctly handle missing + values, so missing values should be explicitly dropped from + the DataFrame before calling this method. + """ % {'missing_param_doc': base._missing_param_doc} + + if type(groups) == str: + groups = data[groups] + + if type(time) == str: + time = data[time] + + if type(offset) == str: + offset = data[offset] + + if type(exposure) == str: + exposure = data[exposure] + + model = super(GEE, cls).from_formula(formula, data=data, subset=subset, + groups=groups, time=time, + offset=offset, + exposure=exposure, + *args, **kwargs) + + return model + + def cluster_list(self, array): + """ + Returns `array` split into subarrays corresponding to the + cluster structure. + """ + + if array.ndim == 1: + return [np.array(array[self.group_indices[k]]) + for k in self.group_labels] + else: + return [np.array(array[self.group_indices[k], :]) + for k in self.group_labels] + + def estimate_scale(self): + """ + Returns an estimate of the scale parameter at the current + parameter value. + """ + + if isinstance(self.family, (families.Binomial, families.Poisson, + _Multinomial)): + return 1. + + endog = self.endog_li + cached_means = self.cached_means + nobs = self.nobs + varfunc = self.family.variance + + scale = 0. + fsum = 0. + for i in range(self.num_group): + + if len(endog[i]) == 0: + continue + + expval, _ = cached_means[i] + + f = self.weights_li[i] if self.weights is not None else 1. + + sdev = np.sqrt(varfunc(expval)) + resid = (endog[i] - expval) / sdev + + scale += f * np.sum(resid ** 2) + fsum += f * len(endog[i]) + + scale /= (fsum * (nobs - self.ddof_scale) / float(nobs)) + + return scale + + def mean_deriv(self, exog, lin_pred): + """ + Derivative of the expected endog with respect to the parameters. + + Parameters + ---------- + exog : array-like + The exogeneous data at which the derivative is computed. + lin_pred : array-like + The values of the linear predictor. + + Returns + ------- + The value of the derivative of the expected endog with respect + to the parameter vector. + + Notes + ----- + If there is an offset or exposure, it should be added to + `lin_pred` prior to calling this function. + """ + + idl = self.family.link.inverse_deriv(lin_pred) + dmat = exog * idl[:, None] + return dmat + + def mean_deriv_exog(self, exog, params, offset_exposure=None): + """ + Derivative of the expected endog with respect to exog. + + Parameters + ---------- + exog : array-like + Values of the independent variables at which the derivative + is calculated. + params : array-like + Parameter values at which the derivative is calculated. + offset_exposure : array-like, optional + Combined offset and exposure. + + Returns + ------- + The derivative of the expected endog with respect to exog. + """ + + lin_pred = np.dot(exog, params) + if offset_exposure is not None: + lin_pred += offset_exposure + + idl = self.family.link.inverse_deriv(lin_pred) + dmat = np.outer(idl, params) + return dmat + + def _update_mean_params(self): + """ + Returns + ------- + update : array-like + The update vector such that params + update is the next + iterate when solving the score equations. + score : array-like + The current value of the score equations, not + incorporating the scale parameter. If desired, + multiply this vector by the scale parameter to + incorporate the scale. + """ + + endog = self.endog_li + exog = self.exog_li + + cached_means = self.cached_means + + varfunc = self.family.variance + + bmat, score = 0, 0 + for i in range(self.num_group): + + expval, lpr = cached_means[i] + resid = endog[i] - expval + dmat = self.mean_deriv(exog[i], lpr) + sdev = np.sqrt(varfunc(expval)) + + rslt = self.cov_struct.covariance_matrix_solve(expval, i, + sdev, (dmat, resid)) + if rslt is None: + return None, None + vinv_d, vinv_resid = tuple(rslt) + + f = self.weights_li[i] if self.weights is not None else 1. + + bmat += f * np.dot(dmat.T, vinv_d) + score += f * np.dot(dmat.T, vinv_resid) + + update = np.linalg.solve(bmat, score) + + self._fit_history["cov_adjust"].append( + self.cov_struct.cov_adjust) + + return update, score + + def update_cached_means(self, mean_params): + """ + cached_means should always contain the most recent calculation + of the group-wise mean vectors. This function should be + called every time the regression parameters are changed, to + keep the cached means up to date. + """ + + endog = self.endog_li + exog = self.exog_li + offset = self.offset_li + + linkinv = self.family.link.inverse + + self.cached_means = [] + + for i in range(self.num_group): + + if len(endog[i]) == 0: + continue + + lpr = np.dot(exog[i], mean_params) + if offset is not None: + lpr += offset[i] + expval = linkinv(lpr) + + self.cached_means.append((expval, lpr)) + + def _covmat(self): + """ + Returns the sampling covariance matrix of the regression + parameters and related quantities. + + Returns + ------- + cov_robust : array-like + The robust, or sandwich estimate of the covariance, which + is meaningful even if the working covariance structure is + incorrectly specified. + cov_naive : array-like + The model-based estimate of the covariance, which is + meaningful if the covariance structure is correctly + specified. + cmat : array-like + The center matrix of the sandwich expression, used in + obtaining score test results. + """ + + endog = self.endog_li + exog = self.exog_li + varfunc = self.family.variance + cached_means = self.cached_means + + # Calculate the naive (model-based) and robust (sandwich) + # covariances. + bmat, cmat = 0, 0 + for i in range(self.num_group): + + expval, lpr = cached_means[i] + resid = endog[i] - expval + dmat = self.mean_deriv(exog[i], lpr) + sdev = np.sqrt(varfunc(expval)) + + rslt = self.cov_struct.covariance_matrix_solve( + expval, i, sdev, (dmat, resid)) + if rslt is None: + return None, None, None, None + vinv_d, vinv_resid = tuple(rslt) + + f = self.weights_li[i] if self.weights is not None else 1. + + bmat += f * np.dot(dmat.T, vinv_d) + dvinv_resid = f * np.dot(dmat.T, vinv_resid) + cmat += np.outer(dvinv_resid, dvinv_resid) + + scale = self.estimate_scale() + + bmati = np.linalg.inv(bmat) + cov_naive = bmati * scale + cov_robust = np.dot(bmati, np.dot(cmat, bmati)) + + cov_naive *= self.scaling_factor + cov_robust *= self.scaling_factor + return cov_robust, cov_naive, cmat + + # Calculate the bias-corrected sandwich estimate of Mancl and + # DeRouen. + def _bc_covmat(self, cov_naive): + + cov_naive = cov_naive / self.scaling_factor + endog = self.endog_li + exog = self.exog_li + varfunc = self.family.variance + cached_means = self.cached_means + scale = self.estimate_scale() + + bcm = 0 + for i in range(self.num_group): + + expval, lpr = cached_means[i] + resid = endog[i] - expval + dmat = self.mean_deriv(exog[i], lpr) + sdev = np.sqrt(varfunc(expval)) + + rslt = self.cov_struct.covariance_matrix_solve( + expval, i, sdev, (dmat,)) + if rslt is None: + return None + vinv_d = rslt[0] + vinv_d /= scale + + hmat = np.dot(vinv_d, cov_naive) + hmat = np.dot(hmat, dmat.T).T + + f = self.weights_li[i] if self.weights is not None else 1. + + aresid = np.linalg.solve(np.eye(len(resid)) - hmat, resid) + rslt = self.cov_struct.covariance_matrix_solve( + expval, i, sdev, (aresid,)) + if rslt is None: + return None + srt = rslt[0] + srt = f * np.dot(dmat.T, srt) / scale + bcm += np.outer(srt, srt) + + cov_robust_bc = np.dot(cov_naive, np.dot(bcm, cov_naive)) + cov_robust_bc *= self.scaling_factor + + return cov_robust_bc + + def predict(self, params, exog=None, offset=None, + exposure=None, linear=False): + """ + Return predicted values for a marginal regression model fit + using GEE. + + Parameters + ---------- + params : array-like + Parameters / coefficients of a marginal regression model. + exog : array-like, optional + Design / exogenous data. If exog is None, model exog is + used. + offset : array-like, optional + Offset for exog if provided. If offset is None, model + offset is used. + exposure : array-like, optional + Exposure for exog, if exposure is None, model exposure is + used. Only allowed if link function is the logarithm. + linear : bool + If True, returns the linear predicted values. If False, + returns the value of the inverse of the model's link + function at the linear predicted values. + + Returns + ------- + An array of fitted values + + Notes + ----- + Using log(V) as the offset is equivalent to using V as the + exposure. If exposure U and offset V are both provided, then + log(U) + V is added to the linear predictor. + """ + + # TODO: many paths through this, not well covered in tests + + if exposure is not None: + if not isinstance(self.family.link, families.links.Log): + raise ValueError( + "exposure can only be used with the log link function") + + # This is the combined offset and exposure + _offset = 0. + + # Using model exog + if exog is None: + exog = self.exog + + if not isinstance(self.family.link, families.links.Log): + # Don't need to worry about exposure + if offset is None: + if self._offset_exposure is not None: + _offset = self._offset_exposure.copy() + else: + _offset = offset + + else: + if offset is None and exposure is None: + if self._offset_exposure is not None: + _offset = self._offset_exposure + elif offset is None and exposure is not None: + _offset = np.log(exposure) + if hasattr(self, "offset"): + _offset = _offset + self.offset + elif offset is not None and exposure is None: + _offset = offset + if hasattr(self, "exposure"): + _offset = offset + np.log(self.exposure) + else: + _offset = offset + np.log(exposure) + + # exog is provided: this is simpler than above because we + # never use model exog or exposure if exog is provided. + else: + if offset is not None: + _offset = _offset + offset + if exposure is not None: + _offset += np.log(exposure) + + lin_pred = _offset + np.dot(exog, params) + + if not linear: + return self.family.link.inverse(lin_pred) + + return lin_pred + + def _starting_params(self): + + # TODO: use GLM to get Poisson starting values + return np.zeros(self.exog.shape[1]) + + def fit(self, maxiter=60, ctol=1e-6, start_params=None, + params_niter=1, first_dep_update=0, + cov_type='robust', ddof_scale=None, scaling_factor=1.): + # Docstring attached below + + # Subtract this number from the total sample size when + # normalizing the scale parameter estimate. + if ddof_scale is None: + self.ddof_scale = self.exog.shape[1] + else: + if not ddof_scale >= 0: + raise ValueError( + "ddof_scale must be a non-negative number or None") + self.ddof_scale = ddof_scale + + self.scaling_factor = scaling_factor + + self._fit_history = {'params': [], + 'score': [], + 'dep_params': [], + 'cov_adjust': []} + + if self.weights is not None and cov_type == 'naive': + raise ValueError("when using weights, cov_type may not be naive") + + if start_params is None: + mean_params = self._starting_params() + else: + start_params = np.asarray(start_params) + mean_params = start_params.copy() + + self.update_cached_means(mean_params) + + del_params = -1. + num_assoc_updates = 0 + for itr in range(maxiter): + + update, score = self._update_mean_params() + if update is None: + warnings.warn("Singular matrix encountered in GEE update", + ConvergenceWarning) + break + mean_params += update + self.update_cached_means(mean_params) + + # L2 norm of the change in mean structure parameters at + # this iteration. + del_params = np.sqrt(np.sum(score ** 2)) + + self._fit_history['params'].append(mean_params.copy()) + self._fit_history['score'].append(score) + self._fit_history['dep_params'].append( + self.cov_struct.dep_params) + + # Don't exit until the association parameters have been + # updated at least once. + if (del_params < ctol and + (num_assoc_updates > 0 or self.update_dep is False)): + break + + # Update the dependence structure + if (self.update_dep and (itr % params_niter) == 0 + and (itr >= first_dep_update)): + self._update_assoc(mean_params) + num_assoc_updates += 1 + + if del_params >= ctol: + warnings.warn("Iteration limit reached prior to convergence", + IterationLimitWarning) + + if mean_params is None: + warnings.warn("Unable to estimate GEE parameters.", + ConvergenceWarning) + return None + + bcov, ncov, _ = self._covmat() + if bcov is None: + warnings.warn("Estimated covariance structure for GEE " + "estimates is singular", ConvergenceWarning) + return None + bc_cov = None + if cov_type == "bias_reduced": + bc_cov = self._bc_covmat(ncov) + + if self.constraint is not None: + x = mean_params.copy() + mean_params, bcov = self._handle_constraint(mean_params, bcov) + if mean_params is None: + warnings.warn("Unable to estimate constrained GEE " + "parameters.", ConvergenceWarning) + return None + + y, ncov = self._handle_constraint(x, ncov) + if y is None: + warnings.warn("Unable to estimate constrained GEE " + "parameters.", ConvergenceWarning) + return None + + if bc_cov is not None: + y, bc_cov = self._handle_constraint(x, bc_cov) + if x is None: + warnings.warn("Unable to estimate constrained GEE " + "parameters.", ConvergenceWarning) + return None + + scale = self.estimate_scale() + + # kwargs to add to results instance, need to be available in __init__ + res_kwds = dict(cov_type=cov_type, + cov_robust=bcov, + cov_naive=ncov, + cov_robust_bc=bc_cov) + + # The superclass constructor will multiply the covariance + # matrix argument bcov by scale, which we don't want, so we + # divide bcov by the scale parameter here + results = GEEResults(self, mean_params, bcov / scale, scale, + cov_type=cov_type, use_t=False, + attr_kwds=res_kwds) + + # attributes not needed during results__init__ + results.fit_history = self._fit_history + delattr(self, "_fit_history") + results.score_norm = del_params + results.converged = (del_params < ctol) + results.cov_struct = self.cov_struct + results.params_niter = params_niter + results.first_dep_update = first_dep_update + results.ctol = ctol + results.maxiter = maxiter + + # These will be copied over to subclasses when upgrading. + results._props = ["cov_type", "use_t", + "cov_params_default", "cov_robust", + "cov_naive", "cov_robust_bc", + "fit_history", + "score_norm", "converged", "cov_struct", + "params_niter", "first_dep_update", "ctol", + "maxiter"] + + return GEEResultsWrapper(results) + + fit.__doc__ = _gee_fit_doc + + def _handle_constraint(self, mean_params, bcov): + """ + Expand the parameter estimate `mean_params` and covariance matrix + `bcov` to the coordinate system of the unconstrained model. + + Parameters + ---------- + mean_params : array-like + A parameter vector estimate for the reduced model. + bcov : array-like + The covariance matrix of mean_params. + + Returns + ------- + mean_params : array-like + The input parameter vector mean_params, expanded to the + coordinate system of the full model + bcov : array-like + The input covariance matrix bcov, expanded to the + coordinate system of the full model + """ + + # The number of variables in the full model + red_p = len(mean_params) + full_p = self.constraint.lhs.shape[1] + mean_params0 = np.r_[mean_params, np.zeros(full_p - red_p)] + + # Get the score vector under the full model. + save_exog_li = self.exog_li + self.exog_li = self.constraint.exog_fulltrans_li + import copy + save_cached_means = copy.deepcopy(self.cached_means) + self.update_cached_means(mean_params0) + _, score = self._update_mean_params() + + if score is None: + warnings.warn("Singular matrix encountered in GEE score test", + ConvergenceWarning) + return None, None + + _, ncov1, cmat = self._covmat() + scale = self.estimate_scale() + cmat = cmat / scale ** 2 + score2 = score[red_p:] / scale + + amat = np.linalg.inv(ncov1) + + bmat_11 = cmat[0:red_p, 0:red_p] + bmat_22 = cmat[red_p:, red_p:] + bmat_12 = cmat[0:red_p, red_p:] + amat_11 = amat[0:red_p, 0:red_p] + amat_12 = amat[0:red_p, red_p:] + + score_cov = bmat_22 - np.dot(amat_12.T, + np.linalg.solve(amat_11, bmat_12)) + score_cov -= np.dot(bmat_12.T, + np.linalg.solve(amat_11, amat_12)) + score_cov += np.dot(amat_12.T, + np.dot(np.linalg.solve(amat_11, bmat_11), + np.linalg.solve(amat_11, amat_12))) + + from scipy.stats.distributions import chi2 + score_statistic = np.dot(score2, + np.linalg.solve(score_cov, score2)) + score_df = len(score2) + score_pvalue = 1 - chi2.cdf(score_statistic, score_df) + self.score_test_results = {"statistic": score_statistic, + "df": score_df, + "p-value": score_pvalue} + + mean_params = self.constraint.unpack_param(mean_params) + bcov = self.constraint.unpack_cov(bcov) + + self.exog_li = save_exog_li + self.cached_means = save_cached_means + self.exog = self.constraint.restore_exog() + + return mean_params, bcov + + def _update_assoc(self, params): + """ + Update the association parameters + """ + + self.cov_struct.update(params) + + def _derivative_exog(self, params, exog=None, transform='dydx', + dummy_idx=None, count_idx=None): + """ + For computing marginal effects, returns dF(XB) / dX where F(.) + is the fitted mean. + + transform can be 'dydx', 'dyex', 'eydx', or 'eyex'. + + Not all of these make sense in the presence of discrete regressors, + but checks are done in the results in get_margeff. + """ + # This form should be appropriate for group 1 probit, logit, + # logistic, cloglog, heckprob, xtprobit. + offset_exposure = None + if exog is None: + exog = self.exog + offset_exposure = self._offset_exposure + + margeff = self.mean_deriv_exog(exog, params, offset_exposure) + + if 'ex' in transform: + margeff *= exog + if 'ey' in transform: + margeff /= self.predict(params, exog)[:, None] + if count_idx is not None: + from statsmodels.discrete.discrete_margins import ( + _get_count_effects) + margeff = _get_count_effects(margeff, exog, count_idx, transform, + self, params) + if dummy_idx is not None: + from statsmodels.discrete.discrete_margins import ( + _get_dummy_effects) + margeff = _get_dummy_effects(margeff, exog, dummy_idx, transform, + self, params) + return margeff + + +class GEEResults(base.LikelihoodModelResults): + + __doc__ = ( + "This class summarizes the fit of a marginal regression model " + "using GEE.\n" + _gee_results_doc) + + def __init__(self, model, params, cov_params, scale, + cov_type='robust', use_t=False, **kwds): + + super(GEEResults, self).__init__( + model, params, normalized_cov_params=cov_params, + scale=scale) + + # not added by super + self.df_resid = model.df_resid + self.df_model = model.df_model + self.family = model.family + + attr_kwds = kwds.pop('attr_kwds', {}) + self.__dict__.update(attr_kwds) + + # we don't do this if the cov_type has already been set + # subclasses can set it through attr_kwds + if not (hasattr(self, 'cov_type') and + hasattr(self, 'cov_params_default')): + self.cov_type = cov_type # keep alias + covariance_type = self.cov_type.lower() + allowed_covariances = ["robust", "naive", "bias_reduced"] + if covariance_type not in allowed_covariances: + msg = ("GEE: `cov_type` must be one of " + + ", ".join(allowed_covariances)) + raise ValueError(msg) + + if cov_type == "robust": + cov = self.cov_robust + elif cov_type == "naive": + cov = self.cov_naive + elif cov_type == "bias_reduced": + cov = self.cov_robust_bc + + self.cov_params_default = cov + else: + if self.cov_type != cov_type: + raise ValueError('cov_type in argument is different from ' + 'already attached cov_type') + + def standard_errors(self, cov_type="robust"): + """ + This is a convenience function that returns the standard + errors for any covariance type. The value of `bse` is the + standard errors for whichever covariance type is specified as + an argument to `fit` (defaults to "robust"). + + Parameters + ---------- + cov_type : string + One of "robust", "naive", or "bias_reduced". Determines + the covariance used to compute standard errors. Defaults + to "robust". + """ + + # Check covariance_type + covariance_type = cov_type.lower() + allowed_covariances = ["robust", "naive", "bias_reduced"] + if covariance_type not in allowed_covariances: + msg = ("GEE: `covariance_type` must be one of " + + ", ".join(allowed_covariances)) + raise ValueError(msg) + + if covariance_type == "robust": + return np.sqrt(np.diag(self.cov_robust)) + elif covariance_type == "naive": + return np.sqrt(np.diag(self.cov_naive)) + elif covariance_type == "bias_reduced": + if self.cov_robust_bc is None: + raise ValueError( + "GEE: `bias_reduced` covariance not available") + return np.sqrt(np.diag(self.cov_robust_bc)) + + # Need to override to allow for different covariance types. + @cache_readonly + def bse(self): + return self.standard_errors(self.cov_type) + + @cache_readonly + def resid(self): + """ + Returns the residuals, the endogeneous data minus the fitted + values from the model. + """ + return self.model.endog - self.fittedvalues + + @cache_readonly + def resid_split(self): + """ + Returns the residuals, the endogeneous data minus the fitted + values from the model. The residuals are returned as a list + of arrays containing the residuals for each cluster. + """ + sresid = [] + for v in self.model.group_labels: + ii = self.model.group_indices[v] + sresid.append(self.resid[ii]) + return sresid + + @cache_readonly + def resid_centered(self): + """ + Returns the residuals centered within each group. + """ + cresid = self.resid.copy() + for v in self.model.group_labels: + ii = self.model.group_indices[v] + cresid[ii] -= cresid[ii].mean() + return cresid + + @cache_readonly + def resid_centered_split(self): + """ + Returns the residuals centered within each group. The + residuals are returned as a list of arrays containing the + centered residuals for each cluster. + """ + sresid = [] + for v in self.model.group_labels: + ii = self.model.group_indices[v] + sresid.append(self.centered_resid[ii]) + return sresid + + # FIXME: alias to be removed, temporary backwards compatibility + split_resid = resid_split + centered_resid = resid_centered + split_centered_resid = resid_centered_split + + @cache_readonly + def resid_response(self): + return self.model.endog - self.fittedvalues + + @cache_readonly + def resid_pearson(self): + val = self.model.endog - self.fittedvalues + val = val / np.sqrt(self.family.variance(self.fittedvalues)) + return val + + @cache_readonly + def resid_working(self): + val = self.resid_response + val = val / self.family.link.deriv(self.fittedvalues) + return val + + @cache_readonly + def resid_anscombe(self): + return self.family.resid_anscombe(self.model.endog, self.fittedvalues) + + @cache_readonly + def resid_deviance(self): + return self.family.resid_dev(self.model.endog, self.fittedvalues) + + @cache_readonly + def fittedvalues(self): + """ + Returns the fitted values from the model. + """ + return self.model.family.link.inverse(np.dot(self.model.exog, + self.params)) + + def plot_added_variable(self, focus_exog, resid_type=None, + use_glm_weights=True, fit_kwargs=None, + ax=None): + # Docstring attached below + + from statsmodels.graphics.regressionplots import plot_added_variable + + fig = plot_added_variable(self, focus_exog, + resid_type=resid_type, + use_glm_weights=use_glm_weights, + fit_kwargs=fit_kwargs, ax=ax) + + return fig + + plot_added_variable.__doc__ = _plot_added_variable_doc % { + 'extra_params_doc': ''} + + def plot_partial_residuals(self, focus_exog, ax=None): + # Docstring attached below + + from statsmodels.graphics.regressionplots import plot_partial_residuals + + return plot_partial_residuals(self, focus_exog, ax=ax) + + plot_partial_residuals.__doc__ = _plot_partial_residuals_doc % { + 'extra_params_doc': ''} + + def plot_ceres_residuals(self, focus_exog, frac=0.66, cond_means=None, + ax=None): + # Docstring attached below + + from statsmodels.graphics.regressionplots import plot_ceres_residuals + + return plot_ceres_residuals(self, focus_exog, frac, + cond_means=cond_means, ax=ax) + + plot_ceres_residuals.__doc__ = _plot_ceres_residuals_doc % { + 'extra_params_doc': ''} + + def conf_int(self, alpha=.05, cols=None, cov_type=None): + """ + Returns confidence intervals for the fitted parameters. + + Parameters + ---------- + alpha : float, optional + The `alpha` level for the confidence interval. i.e., The + default `alpha` = .05 returns a 95% confidence interval. + cols : array-like, optional + `cols` specifies which confidence intervals to return + cov_type : string + The covariance type used for computing standard errors; + must be one of 'robust', 'naive', and 'bias reduced'. + See `GEE` for details. + + Notes + ----- + The confidence interval is based on the Gaussian distribution. + """ + # super doesn't allow to specify cov_type and method is not + # implemented, + # FIXME: remove this method here + if cov_type is None: + bse = self.bse + else: + bse = self.standard_errors(cov_type=cov_type) + params = self.params + dist = stats.norm + q = dist.ppf(1 - alpha / 2) + + if cols is None: + lower = self.params - q * bse + upper = self.params + q * bse + else: + cols = np.asarray(cols) + lower = params[cols] - q * bse[cols] + upper = params[cols] + q * bse[cols] + return np.asarray(lzip(lower, upper)) + + def summary(self, yname=None, xname=None, title=None, alpha=.05): + """ + Summarize the GEE regression results + + Parameters + ----------- + yname : string, optional + Default is `y` + xname : list of strings, optional + Default is `var_##` for ## in p the number of regressors + title : string, optional + Title for the top table. If not None, then this replaces + the default title + alpha : float + significance level for the confidence intervals + cov_type : string + The covariance type used to compute the standard errors; + one of 'robust' (the usual robust sandwich-type covariance + estimate), 'naive' (ignores dependence), and 'bias + reduced' (the Mancl/DeRouen estimate). + + Returns + ------- + smry : Summary instance + this holds the summary tables and text, which can be + printed or converted to various output formats. + + See Also + -------- + statsmodels.iolib.summary.Summary : class to hold summary + results + + """ + + top_left = [('Dep. Variable:', None), + ('Model:', None), + ('Method:', ['Generalized']), + ('', ['Estimating Equations']), + ('Family:', [self.model.family.__class__.__name__]), + ('Dependence structure:', + [self.model.cov_struct.__class__.__name__]), + ('Date:', None), + ('Covariance type: ', [self.cov_type, ]) + ] + + NY = [len(y) for y in self.model.endog_li] + + top_right = [('No. Observations:', [sum(NY)]), + ('No. clusters:', [len(self.model.endog_li)]), + ('Min. cluster size:', [min(NY)]), + ('Max. cluster size:', [max(NY)]), + ('Mean cluster size:', ["%.1f" % np.mean(NY)]), + ('Num. iterations:', ['%d' % + len(self.fit_history['params'])]), + ('Scale:', ["%.3f" % self.scale]), + ('Time:', None), + ] + + # The skew of the residuals + skew1 = stats.skew(self.resid) + kurt1 = stats.kurtosis(self.resid) + skew2 = stats.skew(self.centered_resid) + kurt2 = stats.kurtosis(self.centered_resid) + + diagn_left = [('Skew:', ["%12.4f" % skew1]), + ('Centered skew:', ["%12.4f" % skew2])] + + diagn_right = [('Kurtosis:', ["%12.4f" % kurt1]), + ('Centered kurtosis:', ["%12.4f" % kurt2]) + ] + + if title is None: + title = self.model.__class__.__name__ + ' ' +\ + "Regression Results" + + # Override the dataframe names if xname is provided as an + # argument. + if xname is not None: + xna = xname + else: + xna = self.model.exog_names + + # Create summary table instance + from statsmodels.iolib.summary import Summary + smry = Summary() + smry.add_table_2cols(self, gleft=top_left, gright=top_right, + yname=self.model.endog_names, xname=xna, + title=title) + smry.add_table_params(self, yname=yname, xname=xna, + alpha=alpha, use_t=False) + smry.add_table_2cols(self, gleft=diagn_left, + gright=diagn_right, yname=yname, + xname=xna, title="") + + return smry + + def get_margeff(self, at='overall', method='dydx', atexog=None, + dummy=False, count=False): + """Get marginal effects of the fitted model. + + Parameters + ---------- + at : str, optional + Options are: + + - 'overall', The average of the marginal effects at each + observation. + - 'mean', The marginal effects at the mean of each regressor. + - 'median', The marginal effects at the median of each regressor. + - 'zero', The marginal effects at zero for each regressor. + - 'all', The marginal effects at each observation. If `at` is 'all' + only margeff will be available. + + Note that if `exog` is specified, then marginal effects for all + variables not specified by `exog` are calculated using the `at` + option. + method : str, optional + Options are: + + - 'dydx' - dy/dx - No transformation is made and marginal effects + are returned. This is the default. + - 'eyex' - estimate elasticities of variables in `exog` -- + d(lny)/d(lnx) + - 'dyex' - estimate semielasticity -- dy/d(lnx) + - 'eydx' - estimate semeilasticity -- d(lny)/dx + + Note that tranformations are done after each observation is + calculated. Semi-elasticities for binary variables are computed + using the midpoint method. 'dyex' and 'eyex' do not make sense + for discrete variables. + atexog : array-like, optional + Optionally, you can provide the exogenous variables over which to + get the marginal effects. This should be a dictionary with the key + as the zero-indexed column number and the value of the dictionary. + Default is None for all independent variables less the constant. + dummy : bool, optional + If False, treats binary variables (if present) as continuous. This + is the default. Else if True, treats binary variables as + changing from 0 to 1. Note that any variable that is either 0 or 1 + is treated as binary. Each binary variable is treated separately + for now. + count : bool, optional + If False, treats count variables (if present) as continuous. This + is the default. Else if True, the marginal effect is the + change in probabilities when each observation is increased by one. + + Returns + ------- + effects : ndarray + the marginal effect corresponding to the input options + + Notes + ----- + When using after Poisson, returns the expected number of events + per period, assuming that the model is loglinear. + """ + + if self.model.constraint is not None: + warnings.warn("marginal effects ignore constraints", + ValueWarning) + + return GEEMargins(self, (at, method, atexog, dummy, count)) + + def plot_isotropic_dependence(self, ax=None, xpoints=10, + min_n=50): + """ + Create a plot of the pairwise products of within-group + residuals against the corresponding time differences. This + plot can be used to assess the possible form of an isotropic + covariance structure. + + Parameters + ---------- + ax : Matplotlib axes instance + An axes on which to draw the graph. If None, new + figure and axes objects are created + xpoints : scalar or array-like + If scalar, the number of points equally spaced points on + the time difference axis used to define bins for + calculating local means. If an array, the specific points + that define the bins. + min_n : integer + The minimum sample size in a bin for the mean residual + product to be included on the plot. + """ + + from statsmodels.graphics import utils as gutils + + resid = self.model.cluster_list(self.resid) + time = self.model.cluster_list(self.model.time) + + # All within-group pairwise time distances (xdt) and the + # corresponding products of scaled residuals (xre). + xre, xdt = [], [] + for re, ti in zip(resid, time): + ix = np.tril_indices(re.shape[0], 0) + re = re[ix[0]] * re[ix[1]] / self.scale ** 2 + xre.append(re) + dists = np.sqrt(((ti[ix[0], :] - ti[ix[1], :]) ** 2).sum(1)) + xdt.append(dists) + + xre = np.concatenate(xre) + xdt = np.concatenate(xdt) + + if ax is None: + fig, ax = gutils.create_mpl_ax(ax) + else: + fig = ax.get_figure() + + # Convert to a correlation + ii = np.flatnonzero(xdt == 0) + v0 = np.mean(xre[ii]) + xre /= v0 + + # Use the simple average to smooth, since fancier smoothers + # that trim and downweight outliers give biased results (we + # need the actual mean of a skewed distribution). + if np.isscalar(xpoints): + xpoints = np.linspace(0, max(xdt), xpoints) + dg = np.digitize(xdt, xpoints) + dgu = np.unique(dg) + hist = np.asarray([np.sum(dg == k) for k in dgu]) + ii = np.flatnonzero(hist >= min_n) + dgu = dgu[ii] + dgy = np.asarray([np.mean(xre[dg == k]) for k in dgu]) + dgx = np.asarray([np.mean(xdt[dg == k]) for k in dgu]) + + ax.plot(dgx, dgy, '-', color='orange', lw=5) + ax.set_xlabel("Time difference") + ax.set_ylabel("Product of scaled residuals") + + return fig + + def sensitivity_params(self, dep_params_first, + dep_params_last, num_steps): + """ + Refits the GEE model using a sequence of values for the + dependence parameters. + + Parameters + ---------- + dep_params_first : array-like + The first dep_params in the sequence + dep_params_last : array-like + The last dep_params in the sequence + num_steps : int + The number of dep_params in the sequence + + Returns + ------- + results : array-like + The GEEResults objects resulting from the fits. + """ + + model = self.model + + import copy + cov_struct = copy.deepcopy(self.model.cov_struct) + + # We are fixing the dependence structure in each run. + update_dep = model.update_dep + model.update_dep = False + + dep_params = [] + results = [] + for x in np.linspace(0, 1, num_steps): + + dp = x * dep_params_last + (1 - x) * dep_params_first + dep_params.append(dp) + + model.cov_struct = copy.deepcopy(cov_struct) + model.cov_struct.dep_params = dp + rslt = model.fit(start_params=self.params, + ctol=self.ctol, + params_niter=self.params_niter, + first_dep_update=self.first_dep_update, + cov_type=self.cov_type) + results.append(rslt) + + model.update_dep = update_dep + + return results + + # FIXME: alias to be removed, temporary backwards compatibility + params_sensitivity = sensitivity_params + + +class GEEResultsWrapper(lm.RegressionResultsWrapper): + _attrs = { + 'centered_resid': 'rows', + } + _wrap_attrs = wrap.union_dicts(lm.RegressionResultsWrapper._wrap_attrs, + _attrs) +wrap.populate_wrapper(GEEResultsWrapper, GEEResults) + + +class OrdinalGEE(GEE): + + __doc__ = ( + " Estimation of ordinal response marginal regression models\n" + " using Generalized Estimating Equations (GEE).\n" + + _gee_init_doc % {'extra_params': base._missing_param_doc, + 'family_doc': _gee_ordinal_family_doc, + 'example': _gee_ordinal_example}) + + def __init__(self, endog, exog, groups, time=None, family=None, + cov_struct=None, missing='none', offset=None, + dep_data=None, constraint=None, **kwargs): + + if family is None: + family = families.Binomial() + else: + if not isinstance(family, families.Binomial): + raise ValueError("ordinal GEE must use a Binomial family") + + if cov_struct is None: + cov_struct = cov_structs.OrdinalIndependence() + + endog, exog, groups, time, offset = self.setup_ordinal( + endog, exog, groups, time, offset) + + super(OrdinalGEE, self).__init__(endog, exog, groups, time, + family, cov_struct, missing, + offset, dep_data, constraint) + + def setup_ordinal(self, endog, exog, groups, time, offset): + """ + Restructure ordinal data as binary indicators so that they can + be analysed using Generalized Estimating Equations. + """ + + self.endog_orig = endog.copy() + self.exog_orig = exog.copy() + self.groups_orig = groups.copy() + if offset is not None: + self.offset_orig = offset.copy() + else: + self.offset_orig = None + offset = np.zeros(len(endog)) + if time is not None: + self.time_orig = time.copy() + else: + self.time_orig = None + time = np.zeros((len(endog), 1)) + + exog = np.asarray(exog) + endog = np.asarray(endog) + groups = np.asarray(groups) + time = np.asarray(time) + offset = np.asarray(offset) + + # The unique outcomes, except the greatest one. + self.endog_values = np.unique(endog) + endog_cuts = self.endog_values[0:-1] + ncut = len(endog_cuts) + + nrows = ncut * len(endog) + exog_out = np.zeros((nrows, exog.shape[1]), + dtype=np.float64) + endog_out = np.zeros(nrows, dtype=np.float64) + intercepts = np.zeros((nrows, ncut), dtype=np.float64) + groups_out = np.zeros(nrows, dtype=groups.dtype) + time_out = np.zeros((nrows, time.shape[1]), + dtype=np.float64) + offset_out = np.zeros(nrows, dtype=np.float64) + + jrow = 0 + zipper = zip(exog, endog, groups, time, offset) + for (exog_row, endog_value, group_value, time_value, + offset_value) in zipper: + + # Loop over thresholds for the indicators + for thresh_ix, thresh in enumerate(endog_cuts): + + exog_out[jrow, :] = exog_row + endog_out[jrow] = (int(endog_value > thresh)) + intercepts[jrow, thresh_ix] = 1 + groups_out[jrow] = group_value + time_out[jrow] = time_value + offset_out[jrow] = offset_value + jrow += 1 + + exog_out = np.concatenate((intercepts, exog_out), axis=1) + + # exog column names, including intercepts + xnames = ["I(y>%.1f)" % v for v in endog_cuts] + if type(self.exog_orig) == pd.DataFrame: + xnames.extend(self.exog_orig.columns) + else: + xnames.extend(["x%d" % k for k in range(1, exog.shape[1] + 1)]) + exog_out = pd.DataFrame(exog_out, columns=xnames) + + # Preserve the endog name if there is one + if type(self.endog_orig) == pd.Series: + endog_out = pd.Series(endog_out, name=self.endog_orig.name) + + return endog_out, exog_out, groups_out, time_out, offset_out + + def _starting_params(self): + model = GEE(self.endog, self.exog, self.groups, + time=self.time, family=families.Binomial(), + offset=self.offset, exposure=self.exposure) + result = model.fit() + return result.params + + def fit(self, maxiter=60, ctol=1e-6, start_params=None, + params_niter=1, first_dep_update=0, + cov_type='robust'): + + rslt = super(OrdinalGEE, self).fit(maxiter, ctol, start_params, + params_niter, first_dep_update, + cov_type=cov_type) + + rslt = rslt._results # use unwrapped instance + res_kwds = dict(((k, getattr(rslt, k)) for k in rslt._props)) + # Convert the GEEResults to an OrdinalGEEResults + ord_rslt = OrdinalGEEResults(self, rslt.params, + rslt.cov_params() / rslt.scale, + rslt.scale, + cov_type=cov_type, + attr_kwds=res_kwds) + # for k in rslt._props: + # setattr(ord_rslt, k, getattr(rslt, k)) + + return OrdinalGEEResultsWrapper(ord_rslt) + + fit.__doc__ = _gee_fit_doc + + +class OrdinalGEEResults(GEEResults): + + __doc__ = ( + "This class summarizes the fit of a marginal regression model" + "for an ordinal response using GEE.\n" + + _gee_results_doc) + + def plot_distribution(self, ax=None, exog_values=None): + """ + Plot the fitted probabilities of endog in an ordinal model, + for specifed values of the predictors. + + Parameters + ---------- + ax : Matplotlib axes instance + An axes on which to draw the graph. If None, new + figure and axes objects are created + exog_values : array-like + A list of dictionaries, with each dictionary mapping + variable names to values at which the variable is held + fixed. The values P(endog=y | exog) are plotted for all + possible values of y, at the given exog value. Variables + not included in a dictionary are held fixed at the mean + value. + + Example: + -------- + We have a model with covariates 'age' and 'sex', and wish to + plot the probabilities P(endog=y | exog) for males (sex=0) and + for females (sex=1), as separate paths on the plot. Since + 'age' is not included below in the map, it is held fixed at + its mean value. + + >>> ev = [{"sex": 1}, {"sex": 0}] + >>> rslt.distribution_plot(exog_values=ev) + """ + + from statsmodels.graphics import utils as gutils + + if ax is None: + fig, ax = gutils.create_mpl_ax(ax) + else: + fig = ax.get_figure() + + # If no covariate patterns are specified, create one with all + # variables set to their mean values. + if exog_values is None: + exog_values = [{}, ] + + exog_means = self.model.exog.mean(0) + ix_icept = [i for i, x in enumerate(self.model.exog_names) if + x.startswith("I(")] + + for ev in exog_values: + + for k in ev.keys(): + if k not in self.model.exog_names: + raise ValueError("%s is not a variable in the model" + % k) + + # Get the fitted probability for each level, at the given + # covariate values. + pr = [] + for j in ix_icept: + + xp = np.zeros_like(self.params) + xp[j] = 1. + for i, vn in enumerate(self.model.exog_names): + if i in ix_icept: + continue + # User-specified value + if vn in ev: + xp[i] = ev[vn] + # Mean value + else: + xp[i] = exog_means[i] + + p = 1 / (1 + np.exp(-np.dot(xp, self.params))) + pr.append(p) + + pr.insert(0, 1) + pr.append(0) + pr = np.asarray(pr) + prd = -np.diff(pr) + + ax.plot(self.model.endog_values, prd, 'o-') + + ax.set_xlabel("Response value") + ax.set_ylabel("Probability") + ax.set_ylim(0, 1) + + return fig + + +class OrdinalGEEResultsWrapper(GEEResultsWrapper): + pass +wrap.populate_wrapper(OrdinalGEEResultsWrapper, OrdinalGEEResults) + + +class NominalGEE(GEE): + + __doc__ = ( + " Estimation of nominal response marginal regression models\n" + " using Generalized Estimating Equations (GEE).\n" + + _gee_init_doc % {'extra_params': base._missing_param_doc, + 'family_doc': _gee_nominal_family_doc, + 'example': _gee_nominal_example}) + + def __init__(self, endog, exog, groups, time=None, family=None, + cov_struct=None, missing='none', offset=None, + dep_data=None, constraint=None, **kwargs): + + endog, exog, groups, time, offset = self.setup_nominal( + endog, exog, groups, time, offset) + + if family is None: + family = _Multinomial(self.ncut + 1) + + if cov_struct is None: + cov_struct = cov_structs.NominalIndependence() + + super(NominalGEE, self).__init__( + endog, exog, groups, time, family, cov_struct, missing, + offset, dep_data, constraint) + + def _starting_params(self): + model = GEE(self.endog, self.exog, self.groups, + time=self.time, family=families.Binomial(), + offset=self.offset, exposure=self.exposure) + result = model.fit() + return result.params + + def setup_nominal(self, endog, exog, groups, time, offset): + """ + Restructure nominal data as binary indicators so that they can + be analysed using Generalized Estimating Equations. + """ + + self.endog_orig = endog.copy() + self.exog_orig = exog.copy() + self.groups_orig = groups.copy() + if offset is not None: + self.offset_orig = offset.copy() + else: + self.offset_orig = None + offset = np.zeros(len(endog)) + if time is not None: + self.time_orig = time.copy() + else: + self.time_orig = None + time = np.zeros((len(endog), 1)) + + exog = np.asarray(exog) + endog = np.asarray(endog) + groups = np.asarray(groups) + time = np.asarray(time) + offset = np.asarray(offset) + + # The unique outcomes, except the greatest one. + self.endog_values = np.unique(endog) + endog_cuts = self.endog_values[0:-1] + ncut = len(endog_cuts) + self.ncut = ncut + + nrows = len(endog_cuts) * exog.shape[0] + ncols = len(endog_cuts) * exog.shape[1] + exog_out = np.zeros((nrows, ncols), dtype=np.float64) + endog_out = np.zeros(nrows, dtype=np.float64) + groups_out = np.zeros(nrows, dtype=np.float64) + time_out = np.zeros((nrows, time.shape[1]), + dtype=np.float64) + offset_out = np.zeros(nrows, dtype=np.float64) + + jrow = 0 + zipper = zip(exog, endog, groups, time, offset) + for (exog_row, endog_value, group_value, time_value, + offset_value) in zipper: + + # Loop over thresholds for the indicators + for thresh_ix, thresh in enumerate(endog_cuts): + + u = np.zeros(len(endog_cuts), dtype=np.float64) + u[thresh_ix] = 1 + exog_out[jrow, :] = np.kron(u, exog_row) + endog_out[jrow] = (int(endog_value == thresh)) + groups_out[jrow] = group_value + time_out[jrow] = time_value + offset_out[jrow] = offset_value + jrow += 1 + + # exog names + if type(self.exog_orig) == pd.DataFrame: + xnames_in = self.exog_orig.columns + else: + xnames_in = ["x%d" % k for k in range(1, exog.shape[1] + 1)] + xnames = [] + for tr in endog_cuts: + xnames.extend(["%s[%.1f]" % (v, tr) for v in xnames_in]) + exog_out = pd.DataFrame(exog_out, columns=xnames) + exog_out = pd.DataFrame(exog_out, columns=xnames) + + # Preserve endog name if there is one + if type(self.endog_orig) == pd.Series: + endog_out = pd.Series(endog_out, name=self.endog_orig.name) + + return endog_out, exog_out, groups_out, time_out, offset_out + + def mean_deriv(self, exog, lin_pred): + """ + Derivative of the expected endog with respect to the parameters. + + Parameters + ---------- + exog : array-like + The exogeneous data at which the derivative is computed, + number of rows must be a multiple of `ncut`. + lin_pred : array-like + The values of the linear predictor, length must be multiple + of `ncut`. + + Returns + ------- + The derivative of the expected endog with respect to the + parameters. + """ + + expval = np.exp(lin_pred) + + # Reshape so that each row contains all the indicators + # corresponding to one multinomial observation. + expval_m = np.reshape(expval, (len(expval) // self.ncut, + self.ncut)) + + # The normalizing constant for the multinomial probabilities. + denom = 1 + expval_m.sum(1) + denom = np.kron(denom, np.ones(self.ncut, dtype=np.float64)) + + # The multinomial probabilities + mprob = expval / denom + + # First term of the derivative: denom * expval' / denom^2 = + # expval' / denom. + dmat = mprob[:, None] * exog + + # Second term of the derivative: -expval * denom' / denom^2 + ddenom = expval[:, None] * exog + dmat -= mprob[:, None] * ddenom / denom[:, None] + + return dmat + + def mean_deriv_exog(self, exog, params, offset_exposure=None): + """ + Derivative of the expected endog with respect to exog for the + multinomial model, used in analyzing marginal effects. + + Parameters + ---------- + exog : array-like + The exogeneous data at which the derivative is computed, + number of rows must be a multiple of `ncut`. + lpr : array-like + The linear predictor values, length must be multiple of + `ncut`. + + Returns + ------- + The value of the derivative of the expected endog with respect + to exog. + + Notes + ----- + offset_exposure must be set at None for the multinoial family. + """ + + if offset_exposure is not None: + warnings.warn("Offset/exposure ignored for the multinomial family", + ValueWarning) + + lpr = np.dot(exog, params) + expval = np.exp(lpr) + + expval_m = np.reshape(expval, (len(expval) // self.ncut, + self.ncut)) + + denom = 1 + expval_m.sum(1) + denom = np.kron(denom, np.ones(self.ncut, dtype=np.float64)) + + bmat0 = np.outer(np.ones(exog.shape[0]), params) + + # Masking matrix + qmat = [] + for j in range(self.ncut): + ee = np.zeros(self.ncut, dtype=np.float64) + ee[j] = 1 + qmat.append(np.kron(ee, np.ones(len(params) // self.ncut))) + qmat = np.array(qmat) + qmat = np.kron(np.ones((exog.shape[0] // self.ncut, 1)), qmat) + bmat = bmat0 * qmat + + dmat = expval[:, None] * bmat / denom[:, None] + + expval_mb = np.kron(expval_m, np.ones((self.ncut, 1))) + expval_mb = np.kron(expval_mb, np.ones((1, self.ncut))) + + dmat -= expval[:, None] * (bmat * expval_mb) / denom[:, None] ** 2 + + return dmat + + def fit(self, maxiter=60, ctol=1e-6, start_params=None, + params_niter=1, first_dep_update=0, + cov_type='robust'): + + rslt = super(NominalGEE, self).fit(maxiter, ctol, start_params, + params_niter, first_dep_update, + cov_type=cov_type) + if rslt is None: + warnings.warn("GEE updates did not converge", + ConvergenceWarning) + return None + + rslt = rslt._results # use unwrapped instance + res_kwds = dict(((k, getattr(rslt, k)) for k in rslt._props)) + # Convert the GEEResults to a NominalGEEResults + nom_rslt = NominalGEEResults(self, rslt.params, + rslt.cov_params() / rslt.scale, + rslt.scale, + cov_type=cov_type, + attr_kwds=res_kwds) + # for k in rslt._props: + # setattr(nom_rslt, k, getattr(rslt, k)) + + return NominalGEEResultsWrapper(nom_rslt) + + fit.__doc__ = _gee_fit_doc + + +class NominalGEEResults(GEEResults): + + __doc__ = ( + "This class summarizes the fit of a marginal regression model" + "for a nominal response using GEE.\n" + + _gee_results_doc) + + def plot_distribution(self, ax=None, exog_values=None): + """ + Plot the fitted probabilities of endog in an nominal model, + for specifed values of the predictors. + + Parameters + ---------- + ax : Matplotlib axes instance + An axes on which to draw the graph. If None, new + figure and axes objects are created + exog_values : array-like + A list of dictionaries, with each dictionary mapping + variable names to values at which the variable is held + fixed. The values P(endog=y | exog) are plotted for all + possible values of y, at the given exog value. Variables + not included in a dictionary are held fixed at the mean + value. + + Example: + -------- + We have a model with covariates 'age' and 'sex', and wish to + plot the probabilities P(endog=y | exog) for males (sex=0) and + for females (sex=1), as separate paths on the plot. Since + 'age' is not included below in the map, it is held fixed at + its mean value. + + >>> ex = [{"sex": 1}, {"sex": 0}] + >>> rslt.distribution_plot(exog_values=ex) + """ + + from statsmodels.graphics import utils as gutils + + if ax is None: + fig, ax = gutils.create_mpl_ax(ax) + else: + fig = ax.get_figure() + + # If no covariate patterns are specified, create one with all + # variables set to their mean values. + if exog_values is None: + exog_values = [{}, ] + + link = self.model.family.link.inverse + ncut = self.model.family.ncut + + k = int(self.model.exog.shape[1] / ncut) + exog_means = self.model.exog.mean(0)[0:k] + exog_names = self.model.exog_names[0:k] + exog_names = [x.split("[")[0] for x in exog_names] + + params = np.reshape(self.params, + (ncut, len(self.params) / ncut)) + + for ev in exog_values: + + exog = exog_means.copy() + + for k in ev.keys(): + if k not in exog_names: + raise ValueError("%s is not a variable in the model" + % k) + + ii = exog_names.index(k) + exog[ii] = ev[k] + + lpr = np.dot(params, exog) + pr = link(lpr) + pr = np.r_[pr, 1 - pr.sum()] + + ax.plot(self.model.endog_values, pr, 'o-') + + ax.set_xlabel("Response value") + ax.set_ylabel("Probability") + ax.set_xticks(self.model.endog_values) + ax.set_xticklabels(self.model.endog_values) + ax.set_ylim(0, 1) + + return fig + + +class NominalGEEResultsWrapper(GEEResultsWrapper): + pass +wrap.populate_wrapper(NominalGEEResultsWrapper, NominalGEEResults) + + +class _MultinomialLogit(Link): + """ + The multinomial logit transform, only for use with GEE. + + Notes + ----- + The data are assumed coded as binary indicators, where each + observed multinomial value y is coded as I(y == S[0]), ..., I(y == + S[-1]), where S is the set of possible response labels, excluding + the largest one. Thererefore functions in this class should only + be called using vector argument whose length is a multiple of |S| + = ncut, which is an argument to be provided when initializing the + class. + + call and derivative use a private method _clean to trim p by 1e-10 + so that p is in (0, 1) + """ + + def __init__(self, ncut): + self.ncut = ncut + + def inverse(self, lpr): + """ + Inverse of the multinomial logit transform, which gives the + expected values of the data as a function of the linear + predictors. + + Parameters + ---------- + lpr : array-like (length must be divisible by `ncut`) + The linear predictors + + Returns + ------- + prob : array + Probabilities, or expected values + """ + + expval = np.exp(lpr) + + denom = 1 + np.reshape(expval, (len(expval) // self.ncut, + self.ncut)).sum(1) + denom = np.kron(denom, np.ones(self.ncut, dtype=np.float64)) + + prob = expval / denom + + return prob + + +class _Multinomial(families.Family): + """ + Pseudo-link function for fitting nominal multinomial models with + GEE. Not for use outside the GEE class. + """ + + links = [_MultinomialLogit, ] + variance = varfuncs.binary + safe_links = [_MultinomialLogit, ] + + def __init__(self, nlevels): + """ + Parameters + ---------- + nlevels : integer + The number of distinct categories for the multinomial + distribution. + """ + self.initialize(nlevels) + + def initialize(self, nlevels): + self.ncut = nlevels - 1 + self.link = _MultinomialLogit(self.ncut) + + +from statsmodels.discrete.discrete_margins import ( + _get_margeff_exog, _check_margeff_args, _effects_at, margeff_cov_with_se, + _check_at_is_all, _transform_names, _check_discrete_args, + _get_dummy_index, _get_count_index) + + +class GEEMargins(object): + """ + Estimated marginal effects for a regression model fit with GEE. + + Parameters + ---------- + results : GEEResults instance + The results instance of a fitted discrete choice model + args : tuple + Args are passed to `get_margeff`. This is the same as + results.get_margeff. See there for more information. + kwargs : dict + Keyword args are passed to `get_margeff`. This is the same as + results.get_margeff. See there for more information. + """ + + def __init__(self, results, args, kwargs={}): + self._cache = resettable_cache() + self.results = results + self.get_margeff(*args, **kwargs) + + def _reset(self): + self._cache = resettable_cache() + + @cache_readonly + def tvalues(self): + _check_at_is_all(self.margeff_options) + return self.margeff / self.margeff_se + + def summary_frame(self, alpha=.05): + """ + Returns a DataFrame summarizing the marginal effects. + + Parameters + ---------- + alpha : float + Number between 0 and 1. The confidence intervals have the + probability 1-alpha. + + Returns + ------- + frame : DataFrames + A DataFrame summarizing the marginal effects. + """ + _check_at_is_all(self.margeff_options) + from pandas import DataFrame + names = [_transform_names[self.margeff_options['method']], + 'Std. Err.', 'z', 'Pr(>|z|)', + 'Conf. Int. Low', 'Cont. Int. Hi.'] + ind = self.results.model.exog.var(0) != 0 # True if not a constant + exog_names = self.results.model.exog_names + var_names = [name for i, name in enumerate(exog_names) if ind[i]] + table = np.column_stack((self.margeff, self.margeff_se, self.tvalues, + self.pvalues, self.conf_int(alpha))) + return DataFrame(table, columns=names, index=var_names) + + @cache_readonly + def pvalues(self): + _check_at_is_all(self.margeff_options) + return stats.norm.sf(np.abs(self.tvalues)) * 2 + + def conf_int(self, alpha=.05): + """ + Returns the confidence intervals of the marginal effects + + Parameters + ---------- + alpha : float + Number between 0 and 1. The confidence intervals have the + probability 1-alpha. + + Returns + ------- + conf_int : ndarray + An array with lower, upper confidence intervals for the marginal + effects. + """ + _check_at_is_all(self.margeff_options) + me_se = self.margeff_se + q = stats.norm.ppf(1 - alpha / 2) + lower = self.margeff - q * me_se + upper = self.margeff + q * me_se + return np.asarray(lzip(lower, upper)) + + def summary(self, alpha=.05): + """ + Returns a summary table for marginal effects + + Parameters + ---------- + alpha : float + Number between 0 and 1. The confidence intervals have the + probability 1-alpha. + + Returns + ------- + Summary : SummaryTable + A SummaryTable instance + """ + _check_at_is_all(self.margeff_options) + results = self.results + model = results.model + title = model.__class__.__name__ + " Marginal Effects" + method = self.margeff_options['method'] + top_left = [('Dep. Variable:', [model.endog_names]), + ('Method:', [method]), + ('At:', [self.margeff_options['at']]), ] + + from statsmodels.iolib.summary import (Summary, summary_params, + table_extend) + exog_names = model.exog_names[:] # copy + smry = Summary() + + const_idx = model.data.const_idx + if const_idx is not None: + exog_names.pop(const_idx) + + J = int(getattr(model, "J", 1)) + if J > 1: + yname, yname_list = results._get_endog_name(model.endog_names, + None, all=True) + else: + yname = model.endog_names + yname_list = [yname] + + smry.add_table_2cols(self, gleft=top_left, gright=[], + yname=yname, xname=exog_names, title=title) + + # NOTE: add_table_params is not general enough yet for margeff + # could use a refactor with getattr instead of hard-coded params + # tvalues etc. + table = [] + conf_int = self.conf_int(alpha) + margeff = self.margeff + margeff_se = self.margeff_se + tvalues = self.tvalues + pvalues = self.pvalues + if J > 1: + for eq in range(J): + restup = (results, margeff[:, eq], margeff_se[:, eq], + tvalues[:, eq], pvalues[:, eq], conf_int[:, :, eq]) + tble = summary_params(restup, yname=yname_list[eq], + xname=exog_names, alpha=alpha, + use_t=False, + skip_header=True) + tble.title = yname_list[eq] + # overwrite coef with method name + header = ['', _transform_names[method], 'std err', 'z', + 'P>|z|', + '[%3.1f%% Conf. Int.]' % (100 - alpha * 100)] + tble.insert_header_row(0, header) + # from IPython.core.debugger import Pdb; Pdb().set_trace() + table.append(tble) + + table = table_extend(table, keep_headers=True) + else: + restup = (results, margeff, margeff_se, tvalues, pvalues, conf_int) + table = summary_params(restup, yname=yname, xname=exog_names, + alpha=alpha, use_t=False, skip_header=True) + header = ['', _transform_names[method], 'std err', 'z', + 'P>|z|', '[%3.1f%% Conf. Int.]' % (100 - alpha * 100)] + table.insert_header_row(0, header) + + smry.tables.append(table) + return smry + + def get_margeff(self, at='overall', method='dydx', atexog=None, + dummy=False, count=False): + + self._reset() # always reset the cache when this is called + # TODO: if at is not all or overall, we can also put atexog values + # in summary table head + method = method.lower() + at = at.lower() + _check_margeff_args(at, method) + self.margeff_options = dict(method=method, at=at) + results = self.results + model = results.model + params = results.params + exog = model.exog.copy() # copy because values are changed + effects_idx = exog.var(0) != 0 + const_idx = model.data.const_idx + + if dummy: + _check_discrete_args(at, method) + dummy_idx, dummy = _get_dummy_index(exog, const_idx) + else: + dummy_idx = None + + if count: + _check_discrete_args(at, method) + count_idx, count = _get_count_index(exog, const_idx) + else: + count_idx = None + + # get the exogenous variables + exog = _get_margeff_exog(exog, at, atexog, effects_idx) + + # get base marginal effects, handled by sub-classes + effects = model._derivative_exog(params, exog, method, + dummy_idx, count_idx) + effects = _effects_at(effects, at) + + if at == 'all': + self.margeff = effects[:, effects_idx] + else: + # Set standard error of the marginal effects by Delta method. + margeff_cov, margeff_se = margeff_cov_with_se( + model, params, exog, results.cov_params(), at, + model._derivative_exog, dummy_idx, count_idx, + method, 1) + + # don't care about at constant + self.margeff_cov = margeff_cov[effects_idx][:, effects_idx] + self.margeff_se = margeff_se[effects_idx] + self.margeff = effects[effects_idx] diff --git a/statsmodels/genmod/generalized_linear_model.py b/statsmodels/genmod/generalized_linear_model.py new file mode 100644 index 0000000..1738483 --- /dev/null +++ b/statsmodels/genmod/generalized_linear_model.py @@ -0,0 +1,1664 @@ +""" +Generalized linear models currently supports estimation using the one-parameter +exponential families + +References +---------- +Gill, Jeff. 2000. Generalized Linear Models: A Unified Approach. + SAGE QASS Series. + +Green, PJ. 1984. "Iteratively reweighted least squares for maximum + likelihood estimation, and some robust and resistant alternatives." + Journal of the Royal Statistical Society, Series B, 46, 149-192. + +Hardin, J.W. and Hilbe, J.M. 2007. "Generalized Linear Models and + Extensions." 2nd ed. Stata Press, College Station, TX. + +McCullagh, P. and Nelder, J.A. 1989. "Generalized Linear Models." 2nd ed. + Chapman & Hall, Boca Rotan. +""" + +import numpy as np +from . import families +from statsmodels.tools.decorators import cache_readonly, resettable_cache + +import statsmodels.base.model as base +import statsmodels.regression.linear_model as lm +import statsmodels.base.wrapper as wrap +from statsmodels.compat.numpy import np_matrix_rank + +from statsmodels.graphics._regressionplots_doc import ( + _plot_added_variable_doc, + _plot_partial_residuals_doc, + _plot_ceres_residuals_doc) + +# need import in module instead of lazily to copy `__doc__` +from . import _prediction as pred + +from statsmodels.tools.sm_exceptions import (PerfectSeparationError, + DomainWarning) + +__all__ = ['GLM'] + + +def _check_convergence(criterion, iteration, atol, rtol): + return np.allclose(criterion[iteration], criterion[iteration + 1], + atol=atol, rtol=rtol) + + +class GLM(base.LikelihoodModel): + __doc__ = """ + Generalized Linear Models class + + GLM inherits from statsmodels.base.model.LikelihoodModel + + Parameters + ----------- + endog : array-like + 1d array of endogenous response variable. This array can be 1d or 2d. + Binomial family models accept a 2d array with two columns. If + supplied, each observation is expected to be [success, failure]. + exog : array-like + A nobs x k array where `nobs` is the number of observations and `k` + is the number of regressors. An intercept is not included by default + and should be added by the user (models specified using a formula + include an intercept by default). See `statsmodels.tools.add_constant`. + family : family class instance + The default is Gaussian. To specify the binomial distribution + family = sm.family.Binomial() + Each family can take a link instance as an argument. See + statsmodels.family.family for more information. + offset : array-like or None + An offset to be included in the model. If provided, must be + an array whose length is the number of rows in exog. + exposure : array-like or None + Log(exposure) will be added to the linear prediction in the model. Exposure + is only valid if the log link is used. If provided, it must be an array + with the same length as endog. + freq_weights : array-like + 1d array of frequency weights. The default is None. If None is selected + or a blank value, then the algorithm will replace with an array of 1's + with length equal to the endog. + WARNING: Using weights is not verified yet for all possible options + and results, see Notes. + %(extra_params)s + + Attributes + ----------- + df_model : float + `p` - 1, where `p` is the number of regressors including the intercept. + df_resid : float + The number of observation `n` minus the number of regressors `p`. + endog : array + See Parameters. + exog : array + See Parameters. + family : family class instance + A pointer to the distribution family of the model. + freq_weights : array + See Parameters. + mu : array + The estimated mean response of the transformed variable. + n_trials : array + See Parameters. + normalized_cov_params : array + `p` x `p` normalized covariance of the design / exogenous data. + pinv_wexog : array + For GLM this is just the pseudo inverse of the original design. + scale : float + The estimate of the scale / dispersion. Available after fit is called. + scaletype : str + The scaling used for fitting the model. Available after fit is called. + weights : array + The value of the weights after the last iteration of fit. + + + Examples + -------- + >>> import statsmodels.api as sm + >>> data = sm.datasets.scotland.load() + >>> data.exog = sm.add_constant(data.exog) + + Instantiate a gamma family model with the default link function. + + >>> gamma_model = sm.GLM(data.endog, data.exog, + ... family=sm.families.Gamma()) + + >>> gamma_results = gamma_model.fit() + >>> gamma_results.params + array([-0.01776527, 0.00004962, 0.00203442, -0.00007181, 0.00011185, + -0.00000015, -0.00051868, -0.00000243]) + >>> gamma_results.scale + 0.0035842831734919055 + >>> gamma_results.deviance + 0.087388516416999198 + >>> gamma_results.pearson_chi2 + 0.086022796163805704 + >>> gamma_results.llf + -83.017202161073527 + + See also + -------- + statsmodels.genmod.families.family.Family + :ref:`families` + :ref:`links` + + Notes + ----- + Only the following combinations make sense for family and link :: + + + ident log logit probit cloglog pow opow nbinom loglog logc + Gaussian | x x x + inv Gaussian | x x x + binomial | x x x x x x x x x + Poission | x x x + neg binomial | x x x x + gamma | x x x + + Not all of these link functions are currently available. + + Endog and exog are references so that if the data they refer to are already + arrays and these arrays are changed, endog and exog will change. + + Using frequency weights: Frequency weights produce the same results as repeating + observations by the frequencies (if those are integers). This is verified for all + basic results with nonrobust or heteroscedasticity robust ``cov_type``. Other + robust covariance types have not yet been verified, and at least the small sample + correction is currently not based on the correct total frequency count. + It has not yet been decided whether all the different types of residuals will be + based on weighted residuals. Currently, residuals are not weighted. + + + **Attributes** + + df_model : float + Model degrees of freedom is equal to p - 1, where p is the number + of regressors. Note that the intercept is not reported as a + degree of freedom. + df_resid : float + Residual degrees of freedom is equal to the number of observation n + minus the number of regressors p. + endog : array + See above. Note that `endog` is a reference to the data so that if + data is already an array and it is changed, then `endog` changes + as well. + exposure : array-like + Include ln(exposure) in model with coefficient constrained to 1. Can + only be used if the link is the logarithm function. + exog : array + See above. Note that `exog` is a reference to the data so that if + data is already an array and it is changed, then `exog` changes + as well. + freq_weights : array + See above. Note that `freq_weights` is a reference to the data so that + if data i already an array and it is changed, then `freq_weights` + changes as well. + iteration : int + The number of iterations that fit has run. Initialized at 0. + family : family class instance + The distribution family of the model. Can be any family in + statsmodels.families. Default is Gaussian. + mu : array + The mean response of the transformed variable. `mu` is the value of + the inverse of the link function at lin_pred, where lin_pred is the + linear predicted value of the WLS fit of the transformed variable. + `mu` is only available after fit is called. See + statsmodels.families.family.fitted of the distribution family for more + information. + n_trials : array + See above. Note that `n_trials` is a reference to the data so that if + data is already an array and it is changed, then `n_trials` changes + as well. `n_trials` is the number of binomial trials and only available + with that distribution. See statsmodels.families.Binomial for more + information. + normalized_cov_params : array + The p x p normalized covariance of the design / exogenous data. + This is approximately equal to (X.T X)^(-1) + offset : array-like + Include offset in model with coefficient constrained to 1. + pinv_wexog : array + The pseudoinverse of the design / exogenous data array. Note that + GLM has no whiten method, so this is just the pseudo inverse of the + design. + The pseudoinverse is approximately equal to (X.T X)^(-1)X.T + scale : float + The estimate of the scale / dispersion of the model fit. Only + available after fit is called. See GLM.fit and GLM.estimate_scale + for more information. + scaletype : str + The scaling used for fitting the model. This is only available after + fit is called. The default is None. See GLM.fit for more information. + weights : array + The value of the weights after the last iteration of fit. Only + available after fit is called. See statsmodels.families.family for + the specific distribution weighting functions. + """ % {'extra_params' : base._missing_param_doc} + + def __init__(self, endog, exog, family=None, offset=None, + exposure=None, freq_weights=None, missing='none', **kwargs): + + if (family is not None) and not isinstance(family.link, tuple(family.safe_links)): + import warnings + warnings.warn("The %s link function does not respect the domain of the %s family." % + (family.link.__class__.__name__, family.__class__.__name__), + DomainWarning) + + if exposure is not None: + exposure = np.log(exposure) + if offset is not None: # this should probably be done upstream + offset = np.asarray(offset) + + self.freq_weights = freq_weights + + super(GLM, self).__init__(endog, exog, missing=missing, + offset=offset, exposure=exposure, + freq_weights=freq_weights, **kwargs) + self._check_inputs(family, self.offset, self.exposure, self.endog, + self.freq_weights) + if offset is None: + delattr(self, 'offset') + if exposure is None: + delattr(self, 'exposure') + + self.nobs = self.endog.shape[0] + + #things to remove_data + self._data_attr.extend(['weights', 'pinv_wexog', 'mu', 'freq_weights', + '_offset_exposure', 'n_trials']) + # register kwds for __init__, offset and exposure are added by super + self._init_keys.append('family') + + self._setup_binomial() + + # Construct a combined offset/exposure term. Note that + # exposure has already been logged if present. + offset_exposure = 0. + if hasattr(self, 'offset'): + offset_exposure = self.offset + if hasattr(self, 'exposure'): + offset_exposure = offset_exposure + self.exposure + self._offset_exposure = offset_exposure + + self.scaletype = None + + + def initialize(self): + """ + Initialize a generalized linear model. + """ + # TODO: intended for public use? + self.history = {'fittedvalues' : [], + 'params' : [np.inf], + 'deviance' : [np.inf]} + + self.pinv_wexog = np.linalg.pinv(self.exog) + self.normalized_cov_params = np.dot(self.pinv_wexog, + np.transpose(self.pinv_wexog)) + + self.df_model = np_matrix_rank(self.exog) - 1 + + + if (self.freq_weights is not None) and \ + (self.freq_weights.shape[0] == self.endog.shape[0]): + self.wnobs = self.freq_weights.sum() + self.df_resid = self.wnobs - self.df_model - 1 + else: + self.wnobs = self.exog.shape[0] + self.df_resid = self.exog.shape[0] - self.df_model - 1 + + def _check_inputs(self, family, offset, exposure, endog, freq_weights): + + # Default family is Gaussian + if family is None: + family = families.Gaussian() + self.family = family + + if exposure is not None: + if not isinstance(self.family.link, families.links.Log): + raise ValueError("exposure can only be used with the log " + "link function") + elif exposure.shape[0] != endog.shape[0]: + raise ValueError("exposure is not the same length as endog") + + if offset is not None: + if offset.shape[0] != endog.shape[0]: + raise ValueError("offset is not the same length as endog") + + if freq_weights is not None: + if freq_weights.shape[0] != endog.shape[0]: + raise ValueError("freq weights not the same length as endog") + if len(freq_weights.shape) > 1: + raise ValueError("freq weights has too many dimensions") + + # internal flag to store whether freq_weights were not None + self._has_freq_weights = (self.freq_weights is not None) + if self.freq_weights is None: + self.freq_weights = np.ones((endog.shape[0])) + # TODO: check do we want to keep None as sentinel for freq_weights + + if np.shape(self.freq_weights) == () and self.freq_weights > 1: + self.freq_weights = (self.freq_weights * + np.ones((endog.shape[0]))) + + def _get_init_kwds(self): + # this is a temporary fixup because exposure has been transformed + # see #1609, copied from discrete_model.CountModel + kwds = super(GLM, self)._get_init_kwds() + if 'exposure' in kwds and kwds['exposure'] is not None: + kwds['exposure'] = np.exp(kwds['exposure']) + return kwds + + def loglike_mu(self, mu, scale=1.): + """ + Evaluate the log-likelihood for a generalized linear model. + """ + return self.family.loglike(mu, self.endog, self.exog, + self.freq_weights, scale) + + def loglike(self, params, scale=None): + """ + Evaluate the log-likelihood for a generalized linear model. + """ + lin_pred = np.dot(self.exog, params) + self._offset_exposure + expval = self.family.link.inverse(lin_pred) + if scale is None: + scale = self.estimate_scale(expval) + llf = self.family.loglike(self.endog, expval, self.freq_weights, + scale) + return llf + + def score_obs(self, params, scale=None): + """score first derivative of the loglikelihood for each observation. + + Parameters + ---------- + params : ndarray + parameter at which score is evaluated + scale : None or float + If scale is None, then the default scale will be calculated. + Default scale is defined by `self.scaletype` and set in fit. + If scale is not None, then it is used as a fixed scale. + + Returns + ------- + score_obs : ndarray, 2d + The first derivative of the loglikelihood function evaluated at + params for each observation. + + """ + + score_factor = self.score_factor(params, scale=scale) + return score_factor[:, None] * self.exog + + + def score(self, params, scale=None): + """score, first derivative of the loglikelihood function + + Parameters + ---------- + params : ndarray + parameter at which score is evaluated + scale : None or float + If scale is None, then the default scale will be calculated. + Default scale is defined by `self.scaletype` and set in fit. + If scale is not None, then it is used as a fixed scale. + + Returns + ------- + score : ndarray_1d + The first derivative of the loglikelihood function calculated as + the sum of `score_obs` + + """ + return self.score_obs(params, scale=scale).sum(0) + + + def score_factor(self, params, scale=None): + """weights for score for each observation + + This can be considered as score residuals. + + Parameters + ---------- + params : ndarray + parameter at which Hessian is evaluated + scale : None or float + If scale is None, then the default scale will be calculated. + Default scale is defined by `self.scaletype` and set in fit. + If scale is not None, then it is used as a fixed scale. + + Returns + ------- + score_factor : ndarray_1d + A 1d weight vector used in the calculation of the score_obs. + The score_obs are obtained by `score_factor[:, None] * exog` + + """ + mu = self.predict(params) + if scale is None: + scale = self.estimate_scale(mu) + + score_factor = (self.endog - mu) / self.family.link.deriv(mu) + score_factor /= self.family.variance(mu) + score_factor *= self.freq_weights + + if not scale == 1: + score_factor /= scale + + return score_factor + + + def hessian_factor(self, params, scale=None, observed=True): + """Weights for calculating Hessian + + Parameters + ---------- + params : ndarray + parameter at which Hessian is evaluated + scale : None or float + If scale is None, then the default scale will be calculated. + Default scale is defined by `self.scaletype` and set in fit. + If scale is not None, then it is used as a fixed scale. + observed : bool + If True, then the observed Hessian is returned. If false then the + expected information matrix is returned. + + Returns + ------- + hessian_factor : ndarray, 1d + A 1d weight vector used in the calculation of the Hessian. + The hessian is obtained by `(exog.T * hessian_factor).dot(exog)` + """ + + # calculating eim_factor + mu = self.predict(params) + if scale is None: + scale = self.estimate_scale(mu) + + eim_factor = 1 / (self.family.link.deriv(mu)**2 * + self.family.variance(mu)) + eim_factor *= self.freq_weights * self.n_trials + + if not observed: + if not scale == 1: + eim_factor /= scale + return eim_factor + + # calculating oim_factor, eim_factor is with scale=1 + + score_factor = self.score_factor(params, scale=1.) + if eim_factor.ndim > 1 or score_factor.ndim > 1: + raise RuntimeError('something wrong') + + tmp = self.family.variance(mu) * self.family.link.deriv2(mu) + tmp += self.family.variance.deriv(mu) * self.family.link.deriv(mu) + + tmp = score_factor * eim_factor * tmp + # correct for duplicatee freq_weights in oim_factor and score_factor + tmp /= self.freq_weights + oim_factor = eim_factor * (1 + tmp) + + if tmp.ndim > 1: + raise RuntimeError('something wrong') + + if not scale == 1: + oim_factor /= scale + + return oim_factor + + + def hessian(self, params, scale=None, observed=True): + """Hessian, second derivative of loglikelihood function + + Parameters + ---------- + params : ndarray + parameter at which Hessian is evaluated + scale : None or float + If scale is None, then the default scale will be calculated. + Default scale is defined by `self.scaletype` and set in fit. + If scale is not None, then it is used as a fixed scale. + observed : bool + If True, then the observed Hessian is returned. If false then the + expected information matrix is returned. + + Returns + ------- + hessian : ndarray + Hessian, i.e. observed information, or expected information matrix. + """ + + factor = self.hessian_factor(params, scale=scale, observed=observed) + hess = -np.dot(self.exog.T * factor, self.exog) + return hess + + def information(self, params, scale=None): + """ + Fisher information matrix. + """ + return self.hessian(params, scale=scale, observed=False) + + + def score_test(self, params_constrained, k_constraints=None, + exog_extra=None, observed=True): + """score test for restrictions or for omitted variables + + The covariance matrix for the score is based on the Hessian, i.e. + observed information matrix or optionally on the expected information + matrix.. + + Parameters + ---------- + params_constrained : array_like + estimated parameter of the restricted model. This can be the + parameter estimate for the current when testing for omitted + variables. + k_constraints : int or None + Number of constraints that were used in the estimation of params + restricted relative to the number of exog in the model. + This must be provided if no exog_extra are given. If exog_extra is + not None, then k_constraints is assumed to be zero if it is None. + exog_extra : None or array_like + Explanatory variables that are jointly tested for inclusion in the + model, i.e. omitted variables. + observed : bool + If True, then the observed Hessian is used in calculating the + covariance matrix of the score. If false then the expected + information matrix is used. + + Returns + ------- + chi2_stat : float + chisquare statistic for the score test + p-value : float + P-value of the score test based on the chisquare distribution. + df : int + Degrees of freedom used in the p-value calculation. This is equal + to the number of constraints. + + Notes + ----- + not yet verified for case with scale not equal to 1. + + """ + + if exog_extra is None: + if k_constraints is None: + raise ValueError('if exog_extra is None, then k_constraints' + 'needs to be given') + + score = self.score(params_constrained) + hessian = self.hessian(params_constrained, observed=observed) + + else: + #exog_extra = np.asarray(exog_extra) + if k_constraints is None: + k_constraints = 0 + + ex = np.column_stack((self.exog, exog_extra)) + k_constraints += ex.shape[1] - self.exog.shape[1] + + score_factor = self.score_factor(params_constrained) + score = (score_factor[:, None] * ex).sum(0) + hessian_factor = self.hessian_factor(params_constrained, + observed=observed) + hessian = -np.dot(ex.T * hessian_factor, ex) + + + from scipy import stats + # TODO check sign, why minus? + chi2stat = -score.dot(np.linalg.solve(hessian, score[:, None])) + pval = stats.chi2.sf(chi2stat, k_constraints) + # return a stats results instance instead? Contrast? + return chi2stat, pval, k_constraints + + + def _update_history(self, tmp_result, mu, history): + """ + Helper method to update history during iterative fit. + """ + history['params'].append(tmp_result.params) + history['deviance'].append(self.family.deviance(self.endog, mu, + self.freq_weights)) + return history + + def estimate_scale(self, mu): + """ + Estimates the dispersion/scale. + + Type of scale can be chose in the fit method. + + Parameters + ---------- + mu : array + mu is the mean response estimate + + Returns + ------- + Estimate of scale + + Notes + ----- + The default scale for Binomial and Poisson families is 1. The default + for the other families is Pearson's Chi-Square estimate. + + See also + -------- + statsmodels.genmod.generalized_linear_model.GLM.fit for more information + """ + if not self.scaletype: + if isinstance(self.family, (families.Binomial, families.Poisson)): + return 1. + else: + resid = self.endog - mu + return ((self.freq_weights * (np.power(resid, 2) / + self.family.variance(mu))).sum() / + (self.df_resid)) + + if isinstance(self.scaletype, float): + return np.array(self.scaletype) + + if isinstance(self.scaletype, str): + if self.scaletype.lower() == 'x2': + resid = self.endog - mu + return ((self.freq_weights * (np.power(resid, 2) / + self.family.variance(mu))).sum() / + (self.df_resid)) + elif self.scaletype.lower() == 'dev': + return (self.family.deviance(self.endog, mu, + self.freq_weights) / + (self.df_resid)) + else: + raise ValueError("Scale %s with type %s not understood" % + (self.scaletype, type(self.scaletype))) + + else: + raise ValueError("Scale %s with type %s not understood" % + (self.scaletype, type(self.scaletype))) + + def estimate_tweedie_power(self, mu, method='brentq', low=1.01, high=5.): + """ + Tweedie specific function to estimate scale and the variance parameter. + The variance parameter is also referred to as p, xi, or shape. + + Parameters + ---------- + mu : array-like + Fitted mean response variable + method : str, defaults to 'brentq' + Scipy optimizer used to solve the Pearson equation. Only brentq + currently supported. + low : float, optional + Low end of the bracketing interval [a,b] to be used in the search + for the power. Defaults to 1.01. + high : float, optional + High end of the bracketing interval [a,b] to be used in the search + for the power. Defaults to 5. + + Returns + ------- + power : float + The estimated shape or power + """ + if method == 'brentq': + from scipy.optimize import brentq + + def psi_p(power, mu): + scale = ((self.freq_weights * (self.endog - mu) ** 2 / + (mu ** power)).sum() / self.df_resid) + return (np.sum(self.freq_weights * ((self.endog - mu) ** 2 / + (scale * (mu ** power)) - 1) * + np.log(mu)) / self.freq_weights.sum()) + power = brentq(psi_p, low, high, args=(mu)) + else: + raise NotImplementedError('Only brentq can currently be used') + return power + + def predict(self, params, exog=None, exposure=None, offset=None, + linear=False): + """ + Return predicted values for a design matrix + + Parameters + ---------- + params : array-like + Parameters / coefficients of a GLM. + exog : array-like, optional + Design / exogenous data. Is exog is None, model exog is used. + exposure : array-like, optional + Exposure time values, only can be used with the log link + function. See notes for details. + offset : array-like, optional + Offset values. See notes for details. + linear : bool + If True, returns the linear predicted values. If False, + returns the value of the inverse of the model's link function at + the linear predicted values. + + Returns + ------- + An array of fitted values + + Notes + ----- + Any `exposure` and `offset` provided here take precedence over + the `exposure` and `offset` used in the model fit. If `exog` + is passed as an argument here, then any `exposure` and + `offset` values in the fit will be ignored. + + Exposure values must be strictly positive. + """ + + # Use fit offset if appropriate + if offset is None and exog is None and hasattr(self, 'offset'): + offset = self.offset + elif offset is None: + offset = 0. + + if exposure is not None and not isinstance(self.family.link, + families.links.Log): + raise ValueError("exposure can only be used with the log link function") + + # Use fit exposure if appropriate + if exposure is None and exog is None and hasattr(self, 'exposure'): + # Already logged + exposure = self.exposure + elif exposure is None: + exposure = 0. + else: + exposure = np.log(exposure) + + if exog is None: + exog = self.exog + + linpred = np.dot(exog, params) + offset + exposure + if linear: + return linpred + else: + return self.family.fitted(linpred) + + def get_distribution(self, params, scale=1, exog=None, exposure=None, + offset=None): + """ + Returns a random number generator for the predictive distribution. + + Parameters + ---------- + params : array-like + The model parameters. + scale : scalar + The scale parameter. + exog : array-like + The predictor variable matrix. + + Returns a frozen random number generator object. Use the + ``rvs`` method to generate random values. + + Notes + ----- + Due to the behavior of ``scipy.stats.distributions objects``, + the returned random number generator must be called with + ``gen.rvs(n)`` where ``n`` is the number of observations in + the data set used to fit the model. If any other value is + used for ``n``, misleading results will be produced. + """ + + fit = self.predict(params, exog, exposure, offset, linear=False) + + import scipy.stats.distributions as dist + + if isinstance(self.family, families.Gaussian): + return dist.norm(loc=fit, scale=np.sqrt(scale)) + + elif isinstance(self.family, families.Binomial): + return dist.binom(n=1, p=fit) + + elif isinstance(self.family, families.Poisson): + return dist.poisson(mu=fit) + + elif isinstance(self.family, families.Gamma): + alpha = fit / float(scale) + return dist.gamma(alpha, scale=scale) + + else: + raise ValueError("get_distribution not implemented for %s" % self.family.name) + + def _setup_binomial(self): + # this checks what kind of data is given for Binomial. + # family will need a reference to endog if this is to be removed from + # preprocessing + self.n_trials = np.ones((self.endog.shape[0])) # For binomial + if isinstance(self.family, families.Binomial): + tmp = self.family.initialize(self.endog, self.freq_weights) + self.endog = tmp[0] + self.n_trials = tmp[1] + + def fit(self, start_params=None, maxiter=100, method='IRLS', tol=1e-8, + scale=None, cov_type='nonrobust', cov_kwds=None, use_t=None, + full_output=True, disp=False, max_start_irls=3, **kwargs): + """ + Fits a generalized linear model for a given family. + + Parameters + ---------- + start_params : array-like, optional + Initial guess of the solution for the loglikelihood maximization. + The default is family-specific and is given by the + ``family.starting_mu(endog)``. If start_params is given then the + initial mean will be calculated as ``np.dot(exog, start_params)``. + maxiter : int, optional + Default is 100. + method : string + Default is 'IRLS' for iteratively reweighted least squares. + Otherwise gradient optimization is used. + tol : float + Convergence tolerance. Default is 1e-8. + scale : string or float, optional + `scale` can be 'X2', 'dev', or a float + The default value is None, which uses `X2` for Gamma, Gaussian, + and Inverse Gaussian. + `X2` is Pearson's chi-square divided by `df_resid`. + The default is 1 for the Binomial and Poisson families. + `dev` is the deviance divided by df_resid + cov_type : string + The type of parameter estimate covariance matrix to compute. + cov_kwds : dict-like + Extra arguments for calculating the covariance of the parameter + estimates. + use_t : bool + If True, the Student t-distribution is used for inference. + full_output : bool, optional + Set to True to have all available output in the Results object's + mle_retvals attribute. The output is dependent on the solver. + See LikelihoodModelResults notes section for more information. + Not used if methhod is IRLS. + disp : bool, optional + Set to True to print convergence messages. Not used if method is + IRLS. + max_start_irls : int + The number of IRLS iterations used to obtain starting + values for gradient optimization. Only relevant if + `method` is set to something other than 'IRLS'. + + If IRLS fitting used, the following additional parameters are + available: + + atol : float, optional + The absolute tolerance criterion that must be satisfied. Defaults + to ``tol``. Convergence is attained when: + :math:`rtol * prior + atol > abs(current - prior)` + rtol : float, optional + The relative tolerance criterion that must be satisfied. Defaults + to 0 which means ``rtol`` is not used. Convergence is attained + when: + :math:`rtol * prior + atol > abs(current - prior)` + tol_criterion : str, optional + Defaults to ``'deviance'``. Can optionally be ``'params'``. + """ + self.scaletype = scale + + if method.lower() == "irls": + return self._fit_irls(start_params=start_params, maxiter=maxiter, + tol=tol, scale=scale, cov_type=cov_type, + cov_kwds=cov_kwds, use_t=use_t, **kwargs) + else: + return self._fit_gradient(start_params=start_params, + method=method, + maxiter=maxiter, + tol=tol, scale=scale, + full_output=full_output, + disp=disp, cov_type=cov_type, + cov_kwds=cov_kwds, use_t=use_t, + max_start_irls=max_start_irls, + **kwargs) + + def _fit_gradient(self, start_params=None, method="newton", + maxiter=100, tol=1e-8, full_output=True, + disp=True, scale=None, cov_type='nonrobust', + cov_kwds=None, use_t=None, max_start_irls=3, + **kwargs): + """ + Fits a generalized linear model for a given family iteratively + using the scipy gradient optimizers. + """ + + if (max_start_irls > 0) and (start_params is None): + irls_rslt = self._fit_irls(start_params=start_params, maxiter=max_start_irls, + tol=tol, scale=scale, cov_type=cov_type, + cov_kwds=cov_kwds, use_t=use_t, **kwargs) + start_params = irls_rslt.params + + rslt = super(GLM, self).fit(start_params=start_params, tol=tol, + maxiter=maxiter, full_output=full_output, + method=method, disp=disp, **kwargs) + + mu = self.predict(rslt.params) + scale = self.estimate_scale(mu) + + glm_results = GLMResults(self, rslt.params, + rslt.normalized_cov_params / scale, + scale, + cov_type=cov_type, cov_kwds=cov_kwds, + use_t=use_t) + + # TODO: iteration count is not always available + history = {'iteration': 0} + if full_output: + glm_results.mle_retvals = rslt.mle_retvals + if 'iterations' in rslt.mle_retvals: + history['iteration'] = rslt.mle_retvals['iterations'] + glm_results.method = method + glm_results.fit_history = history + + return GLMResultsWrapper(glm_results) + + + def _fit_irls(self, start_params=None, maxiter=100, tol=1e-8, + scale=None, cov_type='nonrobust', cov_kwds=None, + use_t=None, **kwargs): + """ + Fits a generalized linear model for a given family using + iteratively reweighted least squares (IRLS). + """ + atol = kwargs.get('atol') + rtol = kwargs.get('rtol', 0.) + tol_criterion = kwargs.get('tol_criterion', 'deviance') + atol = tol if atol is None else atol + + endog = self.endog + wlsexog = self.exog + if start_params is None: + start_params = np.zeros(self.exog.shape[1], np.float) + mu = self.family.starting_mu(self.endog) + lin_pred = self.family.predict(mu) + else: + lin_pred = np.dot(wlsexog, start_params) + self._offset_exposure + mu = self.family.fitted(lin_pred) + dev = self.family.deviance(self.endog, mu, self.freq_weights) + if np.isnan(dev): + raise ValueError("The first guess on the deviance function " + "returned a nan. This could be a boundary " + " problem and should be reported.") + + # first guess on the deviance is assumed to be scaled by 1. + # params are none to start, so they line up with the deviance + history = dict(params=[np.inf, start_params], deviance=[np.inf, dev]) + converged = False + criterion = history[tol_criterion] + # This special case is used to get the likelihood for a specific + # params vector. + if maxiter == 0: + mu = self.family.fitted(lin_pred) + self.scale = self.estimate_scale(mu) + wls_results = lm.RegressionResults(self, start_params, None) + iteration = 0 + for iteration in range(maxiter): + self.weights = (self.freq_weights * self.n_trials * + self.family.weights(mu)) + wlsendog = (lin_pred + self.family.link.deriv(mu) * (self.endog-mu) + - self._offset_exposure) + wls_results = lm.WLS(wlsendog, wlsexog, self.weights).fit() + lin_pred = np.dot(self.exog, wls_results.params) + self._offset_exposure + mu = self.family.fitted(lin_pred) + history = self._update_history(wls_results, mu, history) + self.scale = self.estimate_scale(mu) + if endog.squeeze().ndim == 1 and np.allclose(mu - endog, 0): + msg = "Perfect separation detected, results not available" + raise PerfectSeparationError(msg) + converged = _check_convergence(criterion, iteration + 1, atol, + rtol) + if converged: + break + self.mu = mu + + glm_results = GLMResults(self, wls_results.params, + wls_results.normalized_cov_params, + self.scale, + cov_type=cov_type, cov_kwds=cov_kwds, + use_t=use_t) + + glm_results.method = "IRLS" + history['iteration'] = iteration + 1 + glm_results.fit_history = history + glm_results.converged = converged + return GLMResultsWrapper(glm_results) + + + def fit_regularized(self, method="elastic_net", alpha=0., + start_params=None, refit=False, **kwargs): + """ + Return a regularized fit to a linear regression model. + + Parameters + ---------- + method : + Only the `elastic_net` approach is currently implemented. + alpha : scalar or array-like + The penalty weight. If a scalar, the same penalty weight + applies to all variables in the model. If a vector, it + must have the same length as `params`, and contains a + penalty weight for each coefficient. + start_params : array-like + Starting values for `params`. + refit : bool + If True, the model is refit using only the variables that + have non-zero coefficients in the regularized fit. The + refitted model is not regularized. + + Returns + ------- + An array, or a GLMResults object of the same type returned by `fit`. + + Notes + ----- + The penalty is the ``elastic net`` penalty, which is a + combination of L1 and L2 penalties. + + The function that is minimized is: ..math:: + + -loglike/n + alpha*((1-L1_wt)*|params|_2^2/2 + L1_wt*|params|_1) + + where :math:`|*|_1` and :math:`|*|_2` are the L1 and L2 norms. + + Post-estimation results are based on the same data used to + select variables, hence may be subject to overfitting biases. + + The elastic_net method uses the following keyword arguments: + + maxiter : int + Maximum number of iterations + L1_wt : float + Must be in [0, 1]. The L1 penalty has weight L1_wt and the + L2 penalty has weight 1 - L1_wt. + cnvrg_tol : float + Convergence threshold for line searches + zero_tol : float + Coefficients below this threshold are treated as zero. + """ + from statsmodels.base.elastic_net import fit_elasticnet + + if method != "elastic_net": + raise ValueError("method for fit_regularied must be elastic_net") + + defaults = {"maxiter" : 50, "L1_wt" : 1, "cnvrg_tol" : 1e-10, + "zero_tol" : 1e-10} + defaults.update(kwargs) + + result = fit_elasticnet(self, method=method, + alpha=alpha, + start_params=start_params, + refit=refit, + **defaults) + + self.mu = self.predict(result.params) + self.scale = self.estimate_scale(self.mu) + + return result + + + def fit_constrained(self, constraints, start_params=None, **fit_kwds): + """fit the model subject to linear equality constraints + + The constraints are of the form `R params = q` + where R is the constraint_matrix and q is the vector of + constraint_values. + + The estimation creates a new model with transformed design matrix, + exog, and converts the results back to the original parameterization. + + + Parameters + ---------- + constraints : formula expression or tuple + If it is a tuple, then the constraint needs to be given by two + arrays (constraint_matrix, constraint_value), i.e. (R, q). + Otherwise, the constraints can be given as strings or list of + strings. + see t_test for details + start_params : None or array_like + starting values for the optimization. `start_params` needs to be + given in the original parameter space and are internally + transformed. + **fit_kwds : keyword arguments + fit_kwds are used in the optimization of the transformed model. + + Returns + ------- + results : Results instance + + """ + + from patsy import DesignInfo + from statsmodels.base._constraints import fit_constrained + + # same pattern as in base.LikelihoodModel.t_test + lc = DesignInfo(self.exog_names).linear_constraint(constraints) + R, q = lc.coefs, lc.constants + + # TODO: add start_params option, need access to tranformation + # fit_constrained needs to do the transformation + params, cov, res_constr = fit_constrained(self, R, q, + start_params=start_params, + fit_kwds=fit_kwds) + #create dummy results Instance, TODO: wire up properly + res = self.fit(start_params=params, maxiter=0) # we get a wrapper back + res._results.params = params + res._results.normalized_cov_params = cov + k_constr = len(q) + res._results.df_resid += k_constr + res._results.df_model -= k_constr + res._results.constraints = lc + res._results.k_constr = k_constr + res._results.results_constrained = res_constr + # TODO: the next is not the best. history should bin in results + res._results.model.history = res_constr.model.history + return res + + +class GLMResults(base.LikelihoodModelResults): + """ + Class to contain GLM results. + + GLMResults inherits from statsmodels.LikelihoodModelResults + + Parameters + ---------- + See statsmodels.LikelihoodModelReesults + + Returns + ------- + **Attributes** + + aic : float + Akaike Information Criterion + -2 * `llf` + 2*(`df_model` + 1) + bic : float + Bayes Information Criterion + `deviance` - `df_resid` * log(`nobs`) + deviance : float + See statsmodels.families.family for the distribution-specific deviance + functions. + df_model : float + See GLM.df_model + df_resid : float + See GLM.df_resid + fit_history : dict + Contains information about the iterations. Its keys are `iterations`, + `deviance` and `params`. + fittedvalues : array + Linear predicted values for the fitted model. + dot(exog, params) + llf : float + Value of the loglikelihood function evalued at params. + See statsmodels.families.family for distribution-specific + loglikelihoods. + model : class instance + Pointer to GLM model instance that called fit. + mu : array + See GLM docstring. + nobs : float + The number of observations n. + normalized_cov_params : array + See GLM docstring + null_deviance : float + The value of the deviance function for the model fit with a constant + as the only regressor. + params : array + The coefficients of the fitted model. Note that interpretation + of the coefficients often depends on the distribution family and the + data. + pearson_chi2 : array + Pearson's Chi-Squared statistic is defined as the sum of the squares + of the Pearson residuals. + pinv_wexog : array + See GLM docstring. + pvalues : array + The two-tailed p-values for the parameters. + resid_anscombe : array + Anscombe residuals. See statsmodels.families.family for distribution- + specific Anscombe residuals. + resid_deviance : array + Deviance residuals. See statsmodels.families.family for distribution- + specific deviance residuals. + resid_pearson : array + Pearson residuals. The Pearson residuals are defined as + (`endog` - `mu`)/sqrt(VAR(`mu`)) where VAR is the distribution + specific variance function. See statsmodels.families.family and + statsmodels.families.varfuncs for more information. + resid_response : array + Respnose residuals. The response residuals are defined as + `endog` - `fittedvalues` + resid_working : array + Working residuals. The working residuals are defined as + `resid_response`/link'(`mu`). See statsmodels.family.links for the + derivatives of the link functions. They are defined analytically. + scale : float + The estimate of the scale / dispersion for the model fit. + See GLM.fit and GLM.estimate_scale for more information. + stand_errors : array + The standard errors of the fitted GLM. #TODO still named bse + + See Also + -------- + statsmodels.base.model.LikelihoodModelResults + """ + + def __init__(self, model, params, normalized_cov_params, scale, + cov_type='nonrobust', cov_kwds=None, use_t=None): + super(GLMResults, self).__init__(model, params, + normalized_cov_params= + normalized_cov_params, scale=scale) + self.family = model.family + self._endog = model.endog + self.nobs = model.endog.shape[0] + self._freq_weights = model.freq_weights + if isinstance(self.family, families.Binomial): + self._n_trials = self.model.n_trials + else: + self._n_trials = 1 + self.df_resid = model.df_resid + self.df_model = model.df_model + self.pinv_wexog = model.pinv_wexog + self._cache = resettable_cache() + # are these intermediate results needed or can we just + # call the model's attributes? + + # for remove data and pickle without large arrays + self._data_attr.extend(['results_constrained', '_freq_weights']) + self.data_in_cache = getattr(self, 'data_in_cache', []) + self.data_in_cache.extend(['null', 'mu']) + self._data_attr_model = getattr(self, '_data_attr_model', []) + self._data_attr_model.append('mu') + + # robust covariance + from statsmodels.base.covtype import get_robustcov_results + if use_t is None: + self.use_t = False # TODO: class default + else: + self.use_t = use_t + + # temporary warning + ct = (cov_type == 'nonrobust') or (cov_type.startswith('HC')) + if self.model._has_freq_weights and not ct: + import warnings + from statsmodels.tools.sm_exceptions import SpecificationWarning + warnings.warn('cov_type not fully supported with freq_weights', + SpecificationWarning) + + if cov_type == 'nonrobust': + self.cov_type = 'nonrobust' + self.cov_kwds = {'description' : 'Standard Errors assume that the ' + + 'covariance matrix of the errors is correctly ' + + 'specified.'} + + else: + if cov_kwds is None: + cov_kwds = {} + get_robustcov_results(self, cov_type=cov_type, use_self=True, + use_t=use_t, **cov_kwds) + + @cache_readonly + def resid_response(self): + return self._n_trials * (self._endog-self.mu) + + @cache_readonly + def resid_pearson(self): + return (np.sqrt(self._n_trials) * (self._endog-self.mu) / + np.sqrt(self.family.variance(self.mu))) + + @cache_readonly + def resid_working(self): + # Isn't self.resid_response is already adjusted by _n_trials? + val = (self.resid_response * self.family.link.deriv(self.mu)) + val *= self._n_trials + return val + + @cache_readonly + def resid_anscombe(self): + return self.family.resid_anscombe(self._endog, self.fittedvalues) + + @cache_readonly + def resid_deviance(self): + return self.family.resid_dev(self._endog, self.fittedvalues) + + @cache_readonly + def pearson_chi2(self): + chisq = (self._endog - self.mu)**2 / self.family.variance(self.mu) + chisq *= self._freq_weights + chisqsum = np.sum(chisq) + return chisqsum + + + @cache_readonly + def fittedvalues(self): + return self.mu + + + @cache_readonly + def mu(self): + return self.model.predict(self.params) + + + @cache_readonly + def null(self): + endog = self._endog + model = self.model + exog = np.ones((len(endog), 1)) + kwargs = {} + if hasattr(model, 'offset'): + kwargs['offset'] = model.offset + if hasattr(model, 'exposure'): + kwargs['exposure'] = model.exposure + if len(kwargs) > 0: + return GLM(endog, exog, family=self.family, **kwargs).fit().fittedvalues + else: + wls_model = lm.WLS(endog, exog, + weights=self._freq_weights * self._n_trials) + return wls_model.fit().fittedvalues + + @cache_readonly + def deviance(self): + return self.family.deviance(self._endog, self.mu, self._freq_weights) + + @cache_readonly + def null_deviance(self): + return self.family.deviance(self._endog, self.null, self._freq_weights) + + @cache_readonly + def llnull(self): + return self.family.loglike(self._endog, self.null, + self._freq_weights, scale=self.scale) + + @cache_readonly + def llf(self): + _modelfamily = self.family + val = _modelfamily.loglike(self._endog, self.mu, + self._freq_weights, scale=self.scale) + return val + + @cache_readonly + def aic(self): + return -2 * self.llf + 2*(self.df_model+1) + + @cache_readonly + def bic(self): + return (self.deviance - + (self.model.wnobs - self.df_model - 1) * + np.log(self.model.wnobs)) + + + def get_prediction(self, exog=None, exposure=None, offset=None, + transform=True, linear=False, + row_labels=None): + + import statsmodels.regression._prediction as linpred + + pred_kwds = {'exposure': exposure, 'offset': offset, 'linear': True} + + # two calls to a get_prediction duplicates exog generation if patsy + res_linpred = linpred.get_prediction(self, exog=exog, transform=transform, + row_labels=row_labels, pred_kwds=pred_kwds) + + pred_kwds['linear'] = False + res = pred.get_prediction_glm(self, exog=exog, transform=transform, + row_labels=row_labels, + linpred=res_linpred, + link=self.model.family.link, + pred_kwds=pred_kwds) + + return res + + + get_prediction.__doc__ = pred.get_prediction_glm.__doc__ + + + def remove_data(self): + #GLM has alias/reference in result instance + self._data_attr.extend([i for i in self.model._data_attr + if not '_data.' in i]) + super(self.__class__, self).remove_data() + + #TODO: what are these in results? + self._endog = None + self._freq_weights = None + self._n_trials = None + + remove_data.__doc__ = base.LikelihoodModelResults.remove_data.__doc__ + + def plot_added_variable(self, focus_exog, resid_type=None, + use_glm_weights=True, fit_kwargs=None, + ax=None): + # Docstring attached below + + from statsmodels.graphics.regressionplots import plot_added_variable + + fig = plot_added_variable(self, focus_exog, + resid_type=resid_type, + use_glm_weights=use_glm_weights, + fit_kwargs=fit_kwargs, ax=ax) + + return fig + + plot_added_variable.__doc__ = _plot_added_variable_doc % { + 'extra_params_doc' : ''} + + def plot_partial_residuals(self, focus_exog, ax=None): + # Docstring attached below + + from statsmodels.graphics.regressionplots import plot_partial_residuals + + return plot_partial_residuals(self, focus_exog, ax=ax) + + plot_partial_residuals.__doc__ = _plot_partial_residuals_doc % { + 'extra_params_doc' : ''} + + def plot_ceres_residuals(self, focus_exog, frac=0.66, cond_means=None, + ax=None): + # Docstring attached below + + from statsmodels.graphics.regressionplots import plot_ceres_residuals + + return plot_ceres_residuals(self, focus_exog, frac, + cond_means=cond_means, ax=ax) + + plot_ceres_residuals.__doc__ = _plot_ceres_residuals_doc % { + 'extra_params_doc' : ''} + + def summary(self, yname=None, xname=None, title=None, alpha=.05): + """ + Summarize the Regression Results + + Parameters + ----------- + yname : string, optional + Default is `y` + xname : list of strings, optional + Default is `var_##` for ## in p the number of regressors + title : string, optional + Title for the top table. If not None, then this replaces the + default title + alpha : float + significance level for the confidence intervals + + Returns + ------- + smry : Summary instance + this holds the summary tables and text, which can be printed or + converted to various output formats. + + See Also + -------- + statsmodels.iolib.summary.Summary : class to hold summary + results + + """ + + top_left = [('Dep. Variable:', None), + ('Model:', None), + ('Model Family:', [self.family.__class__.__name__]), + ('Link Function:', [self.family.link.__class__.__name__]), + ('Method:', [self.method]), + ('Date:', None), + ('Time:', None), + ('No. Iterations:', + ["%d" % self.fit_history['iteration']]), + ] + + top_right = [('No. Observations:', None), + ('Df Residuals:', None), + ('Df Model:', None), + ('Scale:', [self.scale]), + ('Log-Likelihood:', None), + ('Deviance:', ["%#8.5g" % self.deviance]), + ('Pearson chi2:', ["%#6.3g" % self.pearson_chi2]) + ] + + if title is None: + title = "Generalized Linear Model Regression Results" + + #create summary tables + from statsmodels.iolib.summary import Summary + smry = Summary() + smry.add_table_2cols(self, gleft=top_left, gright=top_right, # [], + yname=yname, xname=xname, title=title) + smry.add_table_params(self, yname=yname, xname=xname, alpha=alpha, + use_t=self.use_t) + + if hasattr(self, 'constraints'): + smry.add_extra_txt(['Model has been estimated subject to linear ' + 'equality constraints.']) + + #diagnostic table is not used yet: + #smry.add_table_2cols(self, gleft=diagn_left, gright=diagn_right, + # yname=yname, xname=xname, + # title="") + + return smry + + def summary2(self, yname=None, xname=None, title=None, alpha=.05, + float_format="%.4f"): + + """Experimental summary for regression Results + + Parameters + ----------- + yname : string + Name of the dependent variable (optional) + xname : List of strings of length equal to the number of parameters + Names of the independent variables (optional) + title : string, optional + Title for the top table. If not None, then this replaces the + default title + alpha : float + significance level for the confidence intervals + float_format: string + print format for floats in parameters summary + + Returns + ------- + smry : Summary instance + this holds the summary tables and text, which can be printed or + converted to various output formats. + + See Also + -------- + statsmodels.iolib.summary2.Summary : class to hold summary + results + + """ + self.method = 'IRLS' + from statsmodels.iolib import summary2 + smry = summary2.Summary() + smry.add_base(results=self, alpha=alpha, float_format=float_format, + xname=xname, yname=yname, title=title) + if hasattr(self, 'constraints'): + smry.add_text('Model has been estimated subject to linear ' + 'equality constraints.') + + return smry + + +class GLMResultsWrapper(lm.RegressionResultsWrapper): + _attrs = { + 'resid_anscombe' : 'rows', + 'resid_deviance' : 'rows', + 'resid_pearson' : 'rows', + 'resid_response' : 'rows', + 'resid_working' : 'rows' + } + _wrap_attrs = wrap.union_dicts(lm.RegressionResultsWrapper._wrap_attrs, + _attrs) +wrap.populate_wrapper(GLMResultsWrapper, GLMResults) + +if __name__ == "__main__": + import statsmodels.api as sm + data = sm.datasets.longley.load() + #data.exog = add_constant(data.exog) + GLMmod = GLM(data.endog, data.exog).fit() + GLMT = GLMmod.summary(returns='tables') +## GLMT[0].extend_right(GLMT[1]) +## print(GLMT[0]) +## print(GLMT[2]) + GLMTp = GLMmod.summary(title='Test GLM') + + """ +From Stata +. webuse beetle +. glm r i.beetle ldose, family(binomial n) link(cloglog) + +Iteration 0: log likelihood = -79.012269 +Iteration 1: log likelihood = -76.94951 +Iteration 2: log likelihood = -76.945645 +Iteration 3: log likelihood = -76.945645 + +Generalized linear models No. of obs = 24 +Optimization : ML Residual df = 20 + Scale parameter = 1 +Deviance = 73.76505595 (1/df) Deviance = 3.688253 +Pearson = 71.8901173 (1/df) Pearson = 3.594506 + +Variance function: V(u) = u*(1-u/n) [Binomial] +Link function : g(u) = ln(-ln(1-u/n)) [Complementary log-log] + + AIC = 6.74547 +Log likelihood = -76.94564525 BIC = 10.20398 + +------------------------------------------------------------------------------ + | OIM + r | Coef. Std. Err. z P>|z| [95% Conf. Interval] +-------------+---------------------------------------------------------------- + beetle | + 2 | -.0910396 .1076132 -0.85 0.398 -.3019576 .1198783 + 3 | -1.836058 .1307125 -14.05 0.000 -2.09225 -1.579867 + | + ldose | 19.41558 .9954265 19.50 0.000 17.46458 21.36658 + _cons | -34.84602 1.79333 -19.43 0.000 -38.36089 -31.33116 +------------------------------------------------------------------------------ +""" + + #NOTE: wfs dataset has been removed due to a licensing issue + # example of using offset + #data = sm.datasets.wfs.load() + # get offset + #offset = np.log(data.exog[:,-1]) + #exog = data.exog[:,:-1] + + # convert dur to dummy + #exog = sm.tools.categorical(exog, col=0, drop=True) + # drop reference category + # convert res to dummy + #exog = sm.tools.categorical(exog, col=0, drop=True) + # convert edu to dummy + #exog = sm.tools.categorical(exog, col=0, drop=True) + # drop reference categories and add intercept + #exog = sm.add_constant(exog[:,[1,2,3,4,5,7,8,10,11,12]]) + + #endog = np.round(data.endog) + #mod = sm.GLM(endog, exog, family=sm.families.Poisson()).fit() + + #res1 = GLM(endog, exog, family=sm.families.Poisson(), + # offset=offset).fit(tol=1e-12, maxiter=250) + #exposuremod = GLM(endog, exog, family=sm.families.Poisson(), + # exposure = data.exog[:,-1]).fit(tol=1e-12, + # maxiter=250) + #assert(np.all(res1.params == exposuremod.params)) diff --git a/statsmodels/genmod/tests/__init__.py b/statsmodels/genmod/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/genmod/tests/gee_categorical_simulation_check.py b/statsmodels/genmod/tests/gee_categorical_simulation_check.py new file mode 100644 index 0000000..d34d24f --- /dev/null +++ b/statsmodels/genmod/tests/gee_categorical_simulation_check.py @@ -0,0 +1,288 @@ +""" +Assesment of Generalized Estimating Equations using simulation. + +This script checks ordinal and nominal models for multinomial data. + +See the generated file "gee_categorical_simulation_check.txt" for +results. +""" +from statsmodels.compat.python import lrange +import numpy as np +from scipy import stats +from statsmodels.genmod.generalized_estimating_equations import GEE,\ + gee_setup_ordinal, gee_setup_nominal,\ + gee_ordinal_starting_values, Multinomial +from statsmodels.genmod.families import Binomial +from statsmodels.genmod.cov_struct import GlobalOddsRatio +from .gee_gaussian_simulation_check import GEE_simulator + + +class ordinal_simulator(GEE_simulator): + + # The thresholds where the latent continuous process is cut to + # obtain the categorical values. + thresholds = None + + + def true_params(self): + return np.concatenate((self.thresholds, self.params)) + + + def starting_values(self, nconstraints): + beta = gee_ordinal_starting_values(self.endog, + len(self.params)) + if nconstraints > 0: + m = self.exog_ex.shape[1] - nconstraints + beta = beta[0:m] + + return beta + + + def print_dparams(self, dparams_est): + OUT.write("Odds ratio estimate: %8.4f\n" % dparams_est[0]) + OUT.write("Odds ratio truth: %8.4f\n" % + self.dparams[0]) + OUT.write("\n") + + + def simulate(self): + + endog, exog, group, time = [], [], [], [] + + for i in range(self.ngroups): + + gsize = np.random.randint(self.group_size_range[0], + self.group_size_range[1]) + + group.append([i,] * gsize) + + time1 = np.random.normal(size=(gsize,2)) + time.append(time1) + + exog1 = np.random.normal(size=(gsize, len(self.params))) + exog.append(exog1) + + lp = np.dot(exog1, self.params) + + z = np.random.uniform(size=gsize) + z = np.log(z / (1 - z)) + lp + endog1 = np.array([np.sum(x > self.thresholds) for x in z]) + endog.append(endog1) + + self.exog = np.concatenate(exog, axis=0) + self.endog = np.concatenate(endog) + self.time = np.concatenate(time, axis=0) + self.group = np.concatenate(group) + self.offset = np.zeros(len(self.endog), dtype=np.float64) + + +class nominal_simulator(GEE_simulator): + + def starting_values(self, nconstraints): + return None + + def true_params(self): + return np.concatenate(self.params[:-1]) + + def print_dparams(self, dparams_est): + OUT.write("Odds ratio estimate: %8.4f\n" % dparams_est[0]) + OUT.write("Odds ratio truth: %8.4f\n" % self.dparams[0]) + OUT.write("\n") + + def simulate(self): + + endog, exog, group, time = [], [], [], [] + + for i in range(self.ngroups): + + gsize = np.random.randint(self.group_size_range[0], + self.group_size_range[1]) + + group.append([i,] * gsize) + + time1 = np.random.normal(size=(gsize,2)) + time.append(time1) + + exog1 = np.random.normal(size=(gsize, len(self.params[0]))) + exog.append(exog1) + + # Probabilities for each outcome + prob = [np.exp(np.dot(exog1, p)) for p in self.params] + prob = np.vstack(prob).T + prob /= prob.sum(1)[:, None] + + m = len(self.params) + endog1 = [] + for k in range(gsize): + pdist = stats.rv_discrete(values=(lrange(m), + prob[k,:])) + endog1.append(pdist.rvs()) + + endog.append(np.asarray(endog1)) + + self.exog = np.concatenate(exog, axis=0) + self.endog = np.concatenate(endog).astype(np.int32) + self.time = np.concatenate(time, axis=0) + self.group = np.concatenate(group) + self.offset = np.zeros(len(self.endog), dtype=np.float64) + + + +def gendat_ordinal(): + + os = ordinal_simulator() + os.params = np.r_[0., 1] + os.ngroups = 200 + os.thresholds = [1, 0, -1] + os.dparams = [1.,] + os.simulate() + + data = np.concatenate((os.endog[:,None], os.exog, + os.group[:,None]), axis=1) + + os.endog_ex, os.exog_ex, os.intercepts, os.nthresh = \ + gee_setup_ordinal(data, 0) + + os.group_ex = os.exog_ex[:,-1] + os.exog_ex = os.exog_ex[:,0:-1] + + os.exog_ex = np.concatenate((os.intercepts, os.exog_ex), + axis=1) + + va = GlobalOddsRatio(4, "ordinal") + + lhs = np.array([[0., 0., 0, 1., 0.], [0., 0, 0, 0, 1]]) + rhs = np.r_[0., 1] + + return os, va, Binomial(), (lhs, rhs) + + +def gendat_nominal(): + + ns = nominal_simulator() + + # The last component of params must be identically zero + ns.params = [np.r_[0., 1], np.r_[-1., 0], np.r_[0., 0]] + ns.ngroups = 200 + ns.dparams = [1., ] + ns.simulate() + + data = np.concatenate((ns.endog[:,None], ns.exog, + ns.group[:,None]), axis=1) + + ns.endog_ex, ns.exog_ex, ns.exog_ne, ns.nlevel = \ + gee_setup_nominal(data, 0, [3,]) + + ns.group_ex = ns.exog_ne[:,0] + + va = GlobalOddsRatio(3, "nominal") + + lhs = np.array([[0., 1., 1, 0],]) + rhs = np.r_[0.,] + + return ns, va, Multinomial(3), (lhs, rhs) + + +if __name__ == '__main__': + + nrep = 100 + + OUT = open("gee_categorical_simulation_check.txt", "w") + + np.set_printoptions(formatter={'all': lambda x: "%8.3f" % x}, + suppress=True) + + # Loop over data generating models + gendats = [gendat_nominal, gendat_ordinal] + + for jg,gendat in enumerate(gendats): + + dparams = [] + params = [] + std_errors = [] + pvalues = [] + + for j in range(nrep): + + da, va, mt, constraint = gendat() + + beta = da.starting_values(0) + + md = GEE(da.endog_ex, da.exog_ex, da.group_ex, None, + mt, va) + mdf = md.fit(start_params = beta) + + if mdf is None: + continue + + scale_inv = 1 / md.estimate_scale() + + dparams.append(np.r_[va.dparams, scale_inv]) + + params.append(np.asarray(mdf.params)) + std_errors.append(np.asarray(mdf.standard_errors)) + + da, va, mt, constraint = gendat() + + beta = da.starting_values(constraint[0].shape[0]) + + md = GEE(da.endog_ex, da.exog_ex, da.group_ex, None, + mt, va, constraint=constraint) + mdf = md.fit(start_params = beta) + + if mdf is None: + continue + + score = md.score_test_results + pvalues.append(score["p-value"]) + + dparams_mean = np.array(sum(dparams) / len(dparams)) + + OUT.write("%s data.\n" % ("Nominal", "Ordinal")[jg]) + OUT.write("%d runs converged successfully.\n" % len(pvalues)) + + OUT.write("Checking dependence parameters:\n") + da.print_dparams(dparams_mean) + + params = np.array(params) + eparams = params.mean(0) + sdparams = params.std(0) + std_errors = np.array(std_errors) + std_errors = std_errors.mean(0) + true_params = da.true_params() + + OUT.write("Checking parameter values:\n") + OUT.write("Observed: ") + OUT.write(np.array_str(eparams) + "\n") + OUT.write("Expected: ") + OUT.write(np.array_str(true_params) + "\n") + OUT.write("Absolute difference: ") + OUT.write(np.array_str(eparams - true_params) + "\n") + OUT.write("Relative difference: ") + OUT.write(np.array_str((eparams - true_params) / true_params) + + "\n") + OUT.write("\n") + + OUT.write("Checking standard errors:\n") + OUT.write("Observed: ") + OUT.write(np.array_str(sdparams) + "\n") + OUT.write("Expected: ") + OUT.write(np.array_str(std_errors) + "\n") + OUT.write("Absolute difference: ") + OUT.write(np.array_str(sdparams - std_errors) + "\n") + OUT.write("Relative difference: ") + OUT.write(np.array_str((sdparams - std_errors) / std_errors) + + "\n") + OUT.write("\n") + + OUT.write("Checking constrained estimation:\n") + OUT.write("Observed Expected\n") + + pvalues.sort() + for q in np.arange(0.1, 0.91, 0.1): + OUT.write("%10.3f %10.3f\n" % + (pvalues[int(q*len(pvalues))], q)) + + OUT.write("=" * 80 + "\n\n") + + OUT.close() diff --git a/statsmodels/genmod/tests/gee_categorical_simulation_check.txt b/statsmodels/genmod/tests/gee_categorical_simulation_check.txt new file mode 100644 index 0000000..66ac059 --- /dev/null +++ b/statsmodels/genmod/tests/gee_categorical_simulation_check.txt @@ -0,0 +1,5 @@ +Nominal data. +99 runs converged successfully. +Checking dependence parameters: +Odds ratio estimate: 1.0028 +Odds ratio truth: 1.0000 diff --git a/statsmodels/genmod/tests/gee_gaussian_simulation_check.py b/statsmodels/genmod/tests/gee_gaussian_simulation_check.py new file mode 100644 index 0000000..0ac4341 --- /dev/null +++ b/statsmodels/genmod/tests/gee_gaussian_simulation_check.py @@ -0,0 +1,337 @@ +""" +Assesment of Generalized Estimating Equations using simulation. + +This script checks Gaussian models. + +See the generated file "gee_gaussian_simulation_check.txt" for +results. +""" +from statsmodels.compat.python import range, lrange, zip +import scipy +import numpy as np +from itertools import product +from statsmodels.genmod.families import Gaussian +from statsmodels.genmod.generalized_estimating_equations import GEE +from statsmodels.genmod.cov_struct import Autoregressive, Nested + +class GEE_simulator(object): + + # + # Parameters that must be defined + # + + # Number of groups + ngroups = None + + # Standard deviation of the pure errors + error_sd = None + + # The regression coefficients + params = None + + # The parameters defining the dependence structure + dep_params = None + + # The true scale parameter + scale = None + + # + # Output parameters + # + + # Matrix of exogeneous data (rows are cases, columns are + # variables) + exog = None + + # Matrix of endogeneous data (len(endog) = exog.shape[0]) + endog = None + + # Matrix of time information (time.shape[0] = len(endog)) + time = None + + # Group labels (len(groups) = len(endog)) + group = None + + # Group sizes are random within this range + group_size_range = [4, 11] + + # dparams_est is dparams with scale_inv appended + def print_dparams(self, dparams_est): + raise NotImplementedError + + +class AR_simulator(GEE_simulator): + + # The distance function for determining AR correlations. + distfun = [lambda x, y: np.sqrt(np.sum((x-y)**2)),] + + + def print_dparams(self, dparams_est): + OUT.write("AR coefficient estimate: %8.4f\n" % + dparams_est[0]) + OUT.write("AR coefficient truth: %8.4f\n" % + self.dep_params[0]) + OUT.write("Error variance estimate: %8.4f\n" % + dparams_est[1]) + OUT.write("Error variance truth: %8.4f\n" % + self.error_sd**2) + OUT.write("\n") + + def simulate(self): + + endog, exog, group, time = [], [], [], [] + + for i in range(self.ngroups): + + gsize = np.random.randint(self.group_size_range[0], + self.group_size_range[1]) + + group.append([i,] * gsize) + + time1 = np.random.normal(size=(gsize,2)) + time.append(time1) + + exog1 = np.random.normal(size=(gsize, 5)) + exog1[:,0] = 1 + exog.append(exog1) + + # Pairwise distances within the cluster + distances = scipy.spatial.distance.cdist(time1, time1, + self.distfun[0]) + + # Pairwise correlations within the cluster + correlations = self.dep_params[0]**distances + correlations_sr = np.linalg.cholesky(correlations) + + errors = np.dot(correlations_sr, np.random.normal(size=gsize)) + + endog1 = np.dot(exog1, self.params) + errors * self.error_sd + endog.append(endog1) + + self.exog = np.concatenate(exog, axis=0) + self.endog = np.concatenate(endog) + self.time = np.concatenate(time, axis=0) + self.group = np.concatenate(group) + + + +class Nested_simulator(GEE_simulator): + + # Vector containing list of nest sizes (used instead of + # group_size_range). + nest_sizes = None + + # Matrix of nest id's (an output parameter) + id_matrix = None + + + def print_dparams(self, dparams_est): + for j in range(len(self.nest_sizes)): + OUT.write("Nest %d variance estimate: %8.4f\n" % \ + (j+1, dparams_est[j])) + OUT.write("Nest %d variance truth: %8.4f\n" % \ + (j+1, self.dep_params[j])) + + OUT.write("Error variance estimate: %8.4f\n" % \ + (dparams_est[-1] - sum(dparams_est[0:-1]))) + OUT.write("Error variance truth: %8.4f\n" % + self.error_sd**2) + OUT.write("\n") + + + def simulate(self): + + group_effect_var = self.dep_params[0] + + vcomp = self.dep_params[1:] + vcomp.append(0) + + endog, exog, group, id_matrix = [], [], [], [] + + for i in range(self.ngroups): + + iterators = [lrange(n) for n in self.nest_sizes] + + # The random effects + variances = [np.sqrt(v)*np.random.normal(size=n) + for v,n in zip(vcomp, self.nest_sizes)] + + gpe = np.random.normal() * np.sqrt(group_effect_var) + + nest_all = [] + for j in self.nest_sizes: + nest_all.append(set()) + + for nest in product(*iterators): + + group.append(i) + + # The sum of all random effects that apply to this + # unit + ref = gpe + sum([v[j] for v,j in zip(variances, nest)]) + + exog1 = np.random.normal(size=5) + exog1[0] = 1 + exog.append(exog1) + + error = ref + self.error_sd * np.random.normal() + + endog1 = np.dot(exog1, self.params) + error + endog.append(endog1) + + for j in range(len(nest)): + nest_all[j].add(tuple(nest[0:j+1])) + + nest1 = [len(x)-1 for x in nest_all] + id_matrix.append(nest1[0:-1]) + + self.exog = np.array(exog) + self.endog = np.array(endog) + self.group = np.array(group) + self.id_matrix = np.array(id_matrix) + self.time = np.zeros_like(self.endog) + + + +def gen_gendat_ar0(ar): + def gendat_ar0(msg = False): + ars = AR_simulator() + ars.ngroups = 200 + ars.params = np.r_[0, -1, 1, 0, 0.5] + ars.error_sd = 2 + ars.dep_params = [ar,] + ars.simulate() + return ars, Autoregressive() + return gendat_ar0 + +def gen_gendat_ar1(ar): + def gendat_ar1(): + ars = AR_simulator() + ars.ngroups = 200 + ars.params = np.r_[0, -0.8, 1.2, 0, 0.5] + ars.error_sd = 2 + ars.dep_params = [ar,] + ars.simulate() + return ars, Autoregressive() + return gendat_ar1 + +def gendat_nested0(): + ns = Nested_simulator() + ns.error_sd = 1. + ns.params = np.r_[0., 1, 1, -1, -1] + ns.ngroups = 50 + ns.nest_sizes = [10, 5] + ns.dep_params = [2., 1.] + ns.simulate() + return ns, Nested(ns.id_matrix) + +def gendat_nested1(): + ns = Nested_simulator() + ns.error_sd = 2. + ns.params = np.r_[0, 1, 1.3, -0.8, -1.2] + ns.ngroups = 50 + ns.nest_sizes = [10, 5] + ns.dep_params = [1., 3.] + ns.simulate() + return ns, Nested(ns.id_matrix) + + +if __name__ == "__main__": + + try: + np.set_printoptions(formatter={'all': lambda x: "%8.3f" % x}, + suppress=True) + except TypeError: + # older numpy versions do not have formatter option + pass + + OUT = open("gee_gaussian_simulation_check.txt", "w") + + nrep = 100 + + gendats = [gen_gendat_ar0(ar) for ar in (0, 0.3, 0.6)] + gendats.extend([gen_gendat_ar1(ar) for ar in (0, 0.3, 0.6)]) + gendats.extend([gendat_nested0, gendat_nested1]) + + lhs = np.array([[0., 1, 1, 0, 0],]) + rhs = np.r_[0.,] + + # Loop over data generating models + for gendat in gendats: + + pvalues = [] + params = [] + std_errors = [] + dep_params = [] + + for j in range(nrep): + + da,va = gendat() + ga = Gaussian() + + md = GEE(da.endog, da.exog, da.group, da.time, ga, va) + mdf = md.fit() + + scale_inv = 1 / md.estimate_scale() + dep_params.append(np.r_[va.dep_params, scale_inv]) + params.append(np.asarray(mdf.params)) + std_errors.append(np.asarray(mdf.standard_errors())) + + da,va = gendat() + ga = Gaussian() + + md = GEE(da.endog, da.exog, da.group, da.time, ga, va, + constraint=(lhs, rhs)) + mdf = md.fit() + score = md.score_test_results + pvalue = score["p-value"] + pvalues.append(pvalue) + + dparams_mean = np.array(sum(dep_params) / len(dep_params)) + OUT.write("Checking dependence parameters:\n") + da.print_dparams(dparams_mean) + + params = np.array(params) + eparams = params.mean(0) + sdparams = params.std(0) + std_errors = np.array(std_errors) + std_errors = std_errors.mean(0) + + OUT.write("Checking parameter values:\n") + OUT.write("Observed: ") + OUT.write(np.array_str(eparams) + "\n") + OUT.write("Expected: ") + OUT.write(np.array_str(da.params) + "\n") + OUT.write("Absolute difference: ") + OUT.write(np.array_str(eparams - da.params) + "\n") + OUT.write("Relative difference: ") + OUT.write(np.array_str((eparams - da.params) / da.params) + + "\n") + OUT.write("\n") + + OUT.write("Checking standard errors\n") + OUT.write("Observed: ") + OUT.write(np.array_str(sdparams) + "\n") + OUT.write("Expected: ") + OUT.write(np.array_str(std_errors) + "\n") + OUT.write("Absolute difference: ") + OUT.write(np.array_str(sdparams - std_errors) + "\n") + OUT.write("Relative difference: ") + OUT.write(np.array_str((sdparams - std_errors) / std_errors) + + "\n") + OUT.write("\n") + + pvalues.sort() + OUT.write("Checking constrained estimation:\n") + OUT.write("Left hand side:\n") + OUT.write(np.array_str(lhs) + "\n") + OUT.write("Right hand side:\n") + OUT.write(np.array_str(rhs) + "\n") + OUT.write("Observed p-values Expected Null p-values\n") + for q in np.arange(0.1, 0.91, 0.1): + OUT.write("%20.3f %20.3f\n" % + (pvalues[int(q*len(pvalues))], q)) + + OUT.write("=" * 80 + "\n\n") + + OUT.close() diff --git a/statsmodels/genmod/tests/gee_gaussian_simulation_check.txt b/statsmodels/genmod/tests/gee_gaussian_simulation_check.txt new file mode 100644 index 0000000..6209230 --- /dev/null +++ b/statsmodels/genmod/tests/gee_gaussian_simulation_check.txt @@ -0,0 +1,283 @@ +Checking dependence parameters: +AR coefficient estimate: 0.0000 +AR coefficient truth: 0.0000 +Error variance estimate: 4.0006 +Error variance truth: 4.0000 + +Checking parameter values: +Observed: [ -0.005 -1.007 1.008 -0.003 0.494] +Expected: [ 0.000 -1.000 1.000 0.000 0.500] +Absolute difference: [ -0.005 -0.007 0.008 -0.003 -0.006] +Relative difference: [ -inf 0.007 0.008 -inf -0.012] + +Checking standard errors +Observed: [ 0.054 0.056 0.056 0.052 0.053] +Expected: [ 0.053 0.053 0.054 0.053 0.053] +Absolute difference: [ 0.001 0.003 0.002 -0.001 -0.001] +Relative difference: [ 0.023 0.052 0.042 -0.025 -0.012] + +Checking constrained estimation: +Left hand side: +[[ 0.000 1.000 1.000 0.000 0.000]] +Right hand side: +[ 0.000] +Observed p-values Expected Null p-values + 0.169 0.100 + 0.284 0.200 + 0.406 0.300 + 0.488 0.400 + 0.600 0.500 + 0.679 0.600 + 0.732 0.700 + 0.810 0.800 + 0.910 0.900 +================================================================================ + +Checking dependence parameters: +AR coefficient estimate: 0.3766 +AR coefficient truth: 0.3000 +Error variance estimate: 3.9845 +Error variance truth: 4.0000 + +Checking parameter values: +Observed: [ -0.005 -1.002 0.998 -0.003 0.492] +Expected: [ 0.000 -1.000 1.000 0.000 0.500] +Absolute difference: [ -0.005 -0.002 -0.002 -0.003 -0.008] +Relative difference: [ -inf 0.002 -0.002 -inf -0.017] + +Checking standard errors +Observed: [ 0.082 0.055 0.056 0.055 0.054] +Expected: [ 0.080 0.054 0.053 0.053 0.053] +Absolute difference: [ 0.002 0.002 0.002 0.002 0.001] +Relative difference: [ 0.026 0.034 0.044 0.034 0.020] + +Checking constrained estimation: +Left hand side: +[[ 0.000 1.000 1.000 0.000 0.000]] +Right hand side: +[ 0.000] +Observed p-values Expected Null p-values + 0.152 0.100 + 0.268 0.200 + 0.347 0.300 + 0.437 0.400 + 0.517 0.500 + 0.585 0.600 + 0.705 0.700 + 0.826 0.800 + 0.915 0.900 +================================================================================ + +Checking dependence parameters: +AR coefficient estimate: 0.6689 +AR coefficient truth: 0.6000 +Error variance estimate: 4.0118 +Error variance truth: 4.0000 + +Checking parameter values: +Observed: [ -0.009 -0.998 0.996 -0.002 0.493] +Expected: [ 0.000 -1.000 1.000 0.000 0.500] +Absolute difference: [ -0.009 0.002 -0.004 -0.002 -0.007] +Relative difference: [ -inf -0.002 -0.004 -inf -0.014] + +Checking standard errors +Observed: [ 0.102 0.050 0.046 0.050 0.044] +Expected: [ 0.106 0.048 0.048 0.048 0.048] +Absolute difference: [ -0.004 0.001 -0.002 0.002 -0.004] +Relative difference: [ -0.040 0.031 -0.039 0.044 -0.075] + +Checking constrained estimation: +Left hand side: +[[ 0.000 1.000 1.000 0.000 0.000]] +Right hand side: +[ 0.000] +Observed p-values Expected Null p-values + 0.064 0.100 + 0.126 0.200 + 0.191 0.300 + 0.329 0.400 + 0.474 0.500 + 0.609 0.600 + 0.676 0.700 + 0.840 0.800 + 0.934 0.900 +================================================================================ + +Checking dependence parameters: +AR coefficient estimate: 0.0000 +AR coefficient truth: 0.0000 +Error variance estimate: 3.9885 +Error variance truth: 4.0000 + +Checking parameter values: +Observed: [ -0.005 -0.798 1.195 0.005 0.505] +Expected: [ 0.000 -0.800 1.200 0.000 0.500] +Absolute difference: [ -0.005 0.002 -0.005 0.005 0.005] +Relative difference: [ -inf -0.002 -0.004 inf 0.011] + +Checking standard errors +Observed: [ 0.044 0.047 0.054 0.059 0.057] +Expected: [ 0.053 0.053 0.053 0.053 0.053] +Absolute difference: [ -0.009 -0.005 0.001 0.006 0.004] +Relative difference: [ -0.178 -0.098 0.014 0.106 0.071] + +Checking constrained estimation: +Left hand side: +[[ 0.000 1.000 1.000 0.000 0.000]] +Right hand side: +[ 0.000] +Observed p-values Expected Null p-values + 0.000 0.100 + 0.000 0.200 + 0.000 0.300 + 0.000 0.400 + 0.000 0.500 + 0.000 0.600 + 0.000 0.700 + 0.000 0.800 + 0.000 0.900 +================================================================================ + +Checking dependence parameters: +AR coefficient estimate: 0.3810 +AR coefficient truth: 0.3000 +Error variance estimate: 3.9966 +Error variance truth: 4.0000 + +Checking parameter values: +Observed: [ -0.000 -0.797 1.200 -0.002 0.499] +Expected: [ 0.000 -0.800 1.200 0.000 0.500] +Absolute difference: [ -0.000 0.003 0.000 -0.002 -0.001] +Relative difference: [ -inf -0.004 0.000 -inf -0.002] + +Checking standard errors +Observed: [ 0.086 0.062 0.044 0.058 0.053] +Expected: [ 0.080 0.053 0.053 0.054 0.054] +Absolute difference: [ 0.006 0.008 -0.009 0.004 -0.001] +Relative difference: [ 0.074 0.158 -0.165 0.081 -0.010] + +Checking constrained estimation: +Left hand side: +[[ 0.000 1.000 1.000 0.000 0.000]] +Right hand side: +[ 0.000] +Observed p-values Expected Null p-values + 0.000 0.100 + 0.000 0.200 + 0.000 0.300 + 0.000 0.400 + 0.000 0.500 + 0.000 0.600 + 0.000 0.700 + 0.000 0.800 + 0.000 0.900 +================================================================================ + +Checking dependence parameters: +AR coefficient estimate: 0.6660 +AR coefficient truth: 0.6000 +Error variance estimate: 4.0002 +Error variance truth: 4.0000 + +Checking parameter values: +Observed: [ -0.007 -0.793 1.201 -0.006 0.501] +Expected: [ 0.000 -0.800 1.200 0.000 0.500] +Absolute difference: [ -0.007 0.007 0.001 -0.006 0.001] +Relative difference: [ -inf -0.009 0.001 -inf 0.003] + +Checking standard errors +Observed: [ 0.109 0.048 0.046 0.047 0.049] +Expected: [ 0.106 0.048 0.048 0.048 0.048] +Absolute difference: [ 0.002 -0.000 -0.001 -0.001 0.002] +Relative difference: [ 0.023 -0.007 -0.029 -0.018 0.034] + +Checking constrained estimation: +Left hand side: +[[ 0.000 1.000 1.000 0.000 0.000]] +Right hand side: +[ 0.000] +Observed p-values Expected Null p-values + 0.000 0.100 + 0.000 0.200 + 0.000 0.300 + 0.000 0.400 + 0.000 0.500 + 0.000 0.600 + 0.000 0.700 + 0.000 0.800 + 0.000 0.900 +================================================================================ + +Checking dependence parameters: +Nest 1 variance estimate: 1.9752 +Nest 1 variance truth: 2.0000 +Nest 2 variance estimate: 1.0013 +Nest 2 variance truth: 1.0000 +Error variance estimate: 1.0089 +Error variance truth: 1.0000 + +Checking parameter values: +Observed: [ 0.024 1.002 0.999 -1.000 -1.001] +Expected: [ 0.000 1.000 1.000 -1.000 -1.000] +Absolute difference: [ 0.024 0.002 -0.001 -0.000 -0.001] +Relative difference: [ inf 0.002 -0.001 0.000 0.001] + +Checking standard errors +Observed: [ 0.219 0.024 0.022 0.021 0.020] +Expected: [ 0.204 0.021 0.022 0.021 0.022] +Absolute difference: [ 0.016 0.002 0.001 -0.001 -0.002] +Relative difference: [ 0.077 0.104 0.026 -0.041 -0.089] + +Checking constrained estimation: +Left hand side: +[[ 0.000 1.000 1.000 0.000 0.000]] +Right hand side: +[ 0.000] +Observed p-values Expected Null p-values + 0.000 0.100 + 0.000 0.200 + 0.000 0.300 + 0.000 0.400 + 0.000 0.500 + 0.000 0.600 + 0.000 0.700 + 0.000 0.800 + 0.000 0.900 +================================================================================ + +Checking dependence parameters: +Nest 1 variance estimate: 0.9614 +Nest 1 variance truth: 1.0000 +Nest 2 variance estimate: 3.0497 +Nest 2 variance truth: 3.0000 +Error variance estimate: 4.0144 +Error variance truth: 4.0000 + +Checking parameter values: +Observed: [ 0.007 0.999 1.297 -0.799 -1.200] +Expected: [ 0.000 1.000 1.300 -0.800 -1.200] +Absolute difference: [ 0.007 -0.001 -0.003 0.001 0.000] +Relative difference: [ inf -0.001 -0.002 -0.001 -0.000] + +Checking standard errors +Observed: [ 0.142 0.047 0.044 0.044 0.040] +Expected: [ 0.163 0.044 0.043 0.043 0.042] +Absolute difference: [ -0.021 0.003 0.001 0.001 -0.002] +Relative difference: [ -0.129 0.077 0.015 0.015 -0.052] + +Checking constrained estimation: +Left hand side: +[[ 0.000 1.000 1.000 0.000 0.000]] +Right hand side: +[ 0.000] +Observed p-values Expected Null p-values + 0.000 0.100 + 0.000 0.200 + 0.000 0.300 + 0.000 0.400 + 0.000 0.500 + 0.000 0.600 + 0.000 0.700 + 0.000 0.800 + 0.000 0.900 +================================================================================ diff --git a/statsmodels/genmod/tests/gee_poisson_simulation_check.py b/statsmodels/genmod/tests/gee_poisson_simulation_check.py new file mode 100644 index 0000000..086174a --- /dev/null +++ b/statsmodels/genmod/tests/gee_poisson_simulation_check.py @@ -0,0 +1,284 @@ +""" +Assesment of Generalized Estimating Equations using simulation. + +This script checks Poisson models. + +See the generated file "gee_poisson_simulation_check.txt" for results. +""" + +from __future__ import print_function +import numpy as np +from statsmodels.genmod.families import Poisson +from .gee_gaussian_simulation_check import GEE_simulator +from statsmodels.genmod.generalized_estimating_equations import GEE +from statsmodels.genmod.cov_struct import Exchangeable,Independence + + +class Exchangeable_simulator(GEE_simulator): + """ + Simulate exchangeable Poisson data. + + The data within a cluster are simulated as y_i = z_c + z_i. The + z_c, and {z_i} are independent Poisson random variables with + expected values e_c and {e_i}, respectively. In order for the + pairwise correlation to be equal to `f` for all pairs, we need + + e_c / sqrt((e_c + e_i) * (e_c + e_j)) = f for all i, j. + + By setting all e_i = e within a cluster, these equations can be + satisfied. We thus need + + e_c * (1 - f) = f * e, + + which can be solved (non-uniquely) for e and e_c. + """ + + scale_inv = 1. + + def print_dparams(self, dparams_est): + OUT.write("Estimated common pairwise correlation: %8.4f\n" % + dparams_est[0]) + OUT.write("True common pairwise correlation: %8.4f\n" % + self.dparams[0]) + OUT.write("Estimated inverse scale parameter: %8.4f\n" % + dparams_est[1]) + OUT.write("True inverse scale parameter: %8.4f\n" % + self.scale_inv) + OUT.write("\n") + + + def simulate(self): + + endog, exog, group, time = [], [], [], [] + + # Get a basis for the orthogonal complement to params. + f = np.sum(self.params**2) + u,s,vt = np.linalg.svd(np.eye(len(self.params)) - + np.outer(self.params, self.params) / f) + params0 = u[:,np.flatnonzero(s > 1e-6)] + + for i in range(self.ngroups): + + gsize = np.random.randint(self.group_size_range[0], + self.group_size_range[1]) + + group.append([i,] * gsize) + + time1 = np.random.normal(size=(gsize, 2)) + time.append(time1) + + e_c = np.random.uniform(low=1, high=10) + e = e_c * (1 - self.dparams[0]) / self.dparams[0] + + common = np.random.poisson(e_c) + unique = np.random.poisson(e, gsize) + endog1 = common + unique + endog.append(endog1) + + lpr = np.log(e_c + e) * np.ones(gsize) + + # Create an exog matrix so that E[Y] = log(dot(exog1, params)) + exog1 = np.outer(lpr, self.params) / np.sum(self.params**2) + emat = np.random.normal(size=(len(lpr), params0.shape[1])) + exog1 += np.dot(emat, params0.T) + + exog.append(exog1) + + self.exog = np.concatenate(exog, axis=0) + self.endog = np.concatenate(endog) + self.time = np.concatenate(time, axis=0) + self.group = np.concatenate(group) + + +class Overdispersed_simulator(GEE_simulator): + """ + Use the negative binomial distribution to check GEE estimation + using the overdispered Poisson model with independent dependence. + + Simulating + X = np.random.negative_binomial(n, p, size) + then EX = (1 - p) * n / p + Var(X) = (1 - p) * n / p**2 + + These equations can be inverted as follows: + + p = E / V + n = E * p / (1 - p) + + dparams[0] is the common correlation coefficient + """ + + + def print_dparams(self, dparams_est): + OUT.write("Estimated inverse scale parameter: %8.4f\n" % + dparams_est[0]) + OUT.write("True inverse scale parameter: %8.4f\n" % + self.scale_inv) + OUT.write("\n") + + + def simulate(self): + + endog, exog, group, time = [], [], [], [] + + # Get a basis for the orthogonal complement to params. + f = np.sum(self.params**2) + u,s,vt = np.linalg.svd(np.eye(len(self.params)) - + np.outer(self.params, self.params) / f) + params0 = u[:,np.flatnonzero(s > 1e-6)] + + for i in range(self.ngroups): + + gsize = np.random.randint(self.group_size_range[0], + self.group_size_range[1]) + + group.append([i,] * gsize) + + time1 = np.random.normal(size=(gsize, 2)) + time.append(time1) + + exog1 = np.random.normal(size=(gsize, len(self.params))) + exog.append(exog1) + + E = np.exp(np.dot(exog1, self.params)) + V = E * self.scale_inv + + p = E / V + n = E * p / (1 - p) + + endog1 = np.random.negative_binomial(n, p, gsize) + endog.append(endog1) + + self.exog = np.concatenate(exog, axis=0) + self.endog = np.concatenate(endog) + self.time = np.concatenate(time, axis=0) + self.group = np.concatenate(group) + + + +def gendat_exchangeable(): + exs = Exchangeable_simulator() + exs.params = np.r_[2., 0.2, 0.2, -0.1, -0.2] + exs.ngroups = 200 + exs.dparams = [0.3,] + exs.simulate() + return exs, Exchangeable() + +def gendat_overdispersed(): + exs = Overdispersed_simulator() + exs.params = np.r_[2., 0.2, 0.2, -0.1, -0.2] + exs.ngroups = 200 + exs.scale_inv = 2. + exs.dparams = [] + exs.simulate() + return exs, Independence() + + +if __name__ == "__main__": + + np.set_printoptions(formatter={'all': lambda x: "%8.3f" % x}, + suppress=True) + + OUT = open("gee_poisson_simulation_check.txt", "w") + + nrep = 100 + + gendats = [gendat_exchangeable, gendat_overdispersed] + + lhs = np.array([[0., 1, -1, 0, 0],]) + rhs = np.r_[0.0,] + + # Loop over data generating models + for gendat in gendats: + + pvalues = [] + params = [] + std_errors = [] + dparams = [] + + for j in range(nrep): + + da, va = gendat() + ga = Poisson() + + # Poisson seems to be more sensitive to starting values, + # so we run the independence model first. + md = GEE(da.endog, da.exog, da.group, da.time, ga, + Independence()) + mdf = md.fit() + + md = GEE(da.endog, da.exog, da.group, da.time, ga, va) + mdf = md.fit(start_params = mdf.params) + if mdf is None or (not mdf.converged): + print("Failed to converge") + continue + + scale_inv = 1. / md.estimate_scale() + dparams.append(np.r_[va.dparams, scale_inv]) + params.append(np.asarray(mdf.params)) + std_errors.append(np.asarray(mdf.standard_errors)) + + da,va = gendat() + ga = Poisson() + + md = GEE(da.endog, da.exog, da.group, da.time, ga, va, + constraint=(lhs, rhs)) + mdf = md.fit() + if mdf is None or (not mdf.converged): + print("Failed to converge") + continue + + score = md.score_test_results + pvalue = score["p-value"] + pvalues.append(pvalue) + + dparams_mean = np.array(sum(dparams) / len(dparams)) + OUT.write("Results based on %d successful fits out of %d data sets.\n\n" + % (len(dparams), nrep)) + OUT.write("Checking dependence parameters:\n") + da.print_dparams(dparams_mean) + + params = np.array(params) + eparams = params.mean(0) + sdparams = params.std(0) + std_errors = np.array(std_errors) + std_errors = std_errors.mean(0) + + OUT.write("Checking parameter values:\n") + OUT.write("Observed: ") + OUT.write(np.array_str(eparams) + "\n") + OUT.write("Expected: ") + OUT.write(np.array_str(da.params) + "\n") + OUT.write("Absolute difference: ") + OUT.write(np.array_str(eparams - da.params) + "\n") + OUT.write("Relative difference: ") + OUT.write(np.array_str((eparams - da.params) / da.params) + + "\n") + OUT.write("\n") + + OUT.write("Checking standard errors\n") + OUT.write("Observed: ") + OUT.write(np.array_str(sdparams) + "\n") + OUT.write("Expected: ") + OUT.write(np.array_str(std_errors) + "\n") + OUT.write("Absolute difference: ") + OUT.write(np.array_str(sdparams - std_errors) + "\n") + OUT.write("Relative difference: ") + OUT.write(np.array_str((sdparams - std_errors) / std_errors) + + "\n") + OUT.write("\n") + + pvalues.sort() + OUT.write("Checking constrained estimation:\n") + OUT.write("Left hand side:\n") + OUT.write(np.array_str(lhs) + "\n") + OUT.write("Right hand side:\n") + OUT.write(np.array_str(rhs) + "\n") + OUT.write("Observed p-values Expected Null p-values\n") + for q in np.arange(0.1, 0.91, 0.1): + OUT.write("%20.3f %20.3f\n" % + (pvalues[int(q*len(pvalues))], q)) + + OUT.write("=" * 80 + "\n\n") + + OUT.close() diff --git a/statsmodels/genmod/tests/gee_poisson_simulation_check.txt b/statsmodels/genmod/tests/gee_poisson_simulation_check.txt new file mode 100644 index 0000000..069b1f8 --- /dev/null +++ b/statsmodels/genmod/tests/gee_poisson_simulation_check.txt @@ -0,0 +1,67 @@ +Results based on 100 successful fits out of 100 data sets.Checking dependence parameters: +Estimated common pairwise correlation: 0.2993 +True common pairwise correlation: 0.3000 +Estimated inverse scale parameter: 1.0104 +True inverse scale parameter: 1.0000 + +Checking parameter values: +Observed: [ 1.999 0.198 0.200 -0.100 -0.200] +Expected: [ 2.000 0.200 0.200 -0.100 -0.200] +Absolute difference: [ -0.001 -0.002 -0.000 0.000 0.000] +Relative difference: [ -0.000 -0.009 -0.000 -0.004 -0.002] + +Checking standard errors +Observed: [ 0.007 0.006 0.006 0.006 0.006] +Expected: [ 0.007 0.006 0.006 0.006 0.006] +Absolute difference: [ 0.000 0.000 0.000 0.000 -0.000] +Relative difference: [ 0.046 0.050 0.077 0.042 -0.007] + +Checking constrained estimation: +Left hand side: +[[ 0.000 1.000 -1.000 0.000 0.000]] +Right hand side: +[ 0.000] +Observed p-values Expected Null p-values + 0.127 0.100 + 0.206 0.200 + 0.250 0.300 + 0.329 0.400 + 0.403 0.500 + 0.484 0.600 + 0.565 0.700 + 0.645 0.800 + 0.832 0.900 +================================================================================ + +Results based on 98 successful fits out of 100 data sets.Checking dependence parameters: +Estimated inverse scale parameter: 1.9792 +True inverse scale parameter: 2.0000 + +Checking parameter values: +Observed: [ 2.001 0.198 0.199 -0.100 -0.199] +Expected: [ 2.000 0.200 0.200 -0.100 -0.200] +Absolute difference: [ 0.001 -0.002 -0.001 0.000 0.001] +Relative difference: [ 0.000 -0.010 -0.007 -0.004 -0.004] + +Checking standard errors +Observed: [ 0.007 0.014 0.016 0.016 0.014] +Expected: [ 0.007 0.014 0.014 0.013 0.013] +Absolute difference: [ 0.000 0.001 0.002 0.002 0.001] +Relative difference: [ 0.010 0.057 0.150 0.185 0.043] + +Checking constrained estimation: +Left hand side: +[[ 0.000 1.000 -1.000 0.000 0.000]] +Right hand side: +[ 0.000] +Observed p-values Expected Null p-values + 0.096 0.100 + 0.147 0.200 + 0.241 0.300 + 0.281 0.400 + 0.459 0.500 + 0.530 0.600 + 0.649 0.700 + 0.849 0.800 + 0.879 0.900 +================================================================================ diff --git a/statsmodels/genmod/tests/gee_simulation_check.py b/statsmodels/genmod/tests/gee_simulation_check.py new file mode 100644 index 0000000..90e5760 --- /dev/null +++ b/statsmodels/genmod/tests/gee_simulation_check.py @@ -0,0 +1,339 @@ +""" +Assesment of Generalized Estimating Equations using simulation. + +Only Gaussian models are currently checked. + +See the generated file "gee_simulation_check.txt" for results. +""" +from statsmodels.compat.python import range, lrange, zip +import scipy +import numpy as np +from itertools import product +from statsmodels.genmod.families import Gaussian +from statsmodels.genmod.generalized_estimating_equations import GEE +from statsmodels.genmod.cov_struct import Autoregressive, Nested + +np.set_printoptions(formatter={'all': lambda x: "%8.3f" % x}, + suppress=True) + + +OUT = open("gee_simulation_check.txt", "w") + +class GEE_simulator(object): + + # + # Parameters that must be defined + # + + # Number of groups + ngroups = None + + # Standard deviation of the pure errors + error_sd = None + + # The regression coefficients + params = None + + # The parameters defining the dependence structure + dparams = None + + + # + # Output parameters + # + + # Matrix of exogeneous data (rows are cases, columns are + # variables) + exog = None + + # Matrix of endogeneous data (len(endog) = exog.shape[0]) + endog = None + + # Matrix of time information (time.shape[0] = len(endog)) + time = None + + # Group labels (len(groups) = len(endog)) + group = None + + # Group sizes are random within this range + group_size_range = [4, 11] + + # dparams_est is dparams with scale_inv appended + def print_dparams(self, dparams_est): + raise NotImplementedError + + +class AR_simulator(GEE_simulator): + + # The distance function for determining AR correlations. + distfun = [lambda x, y: np.sqrt(np.sum((x-y)**2)),] + + + def print_dparams(self, dparams_est): + OUT.write("AR coefficient estimate: %8.4f\n" % + dparams_est[0]) + OUT.write("AR coefficient truth: %8.4f\n" % + self.dparams[0]) + OUT.write("Error variance estimate: %8.4f\n" % + dparams_est[1]) + OUT.write("Error variance truth: %8.4f\n" % + self.error_sd**2) + OUT.write("\n") + + def simulate(self): + + endog, exog, group, time = [], [], [], [] + + for i in range(self.ngroups): + + gsize = np.random.randint(self.group_size_range[0], + self.group_size_range[1]) + + group.append([i,] * gsize) + + time1 = np.random.normal(size=(gsize,2)) + time.append(time1) + + exog1 = np.random.normal(size=(gsize, 5)) + exog1[:,0] = 1 + exog.append(exog1) + + # Pairwise distances within the cluster + distances = scipy.spatial.distance.cdist(time1, time1, + self.distfun[0]) + + # Pairwise correlations within the cluster + correlations = self.dparams[0]**distances + correlations_sr = np.linalg.cholesky(correlations) + + errors = np.dot(correlations_sr, np.random.normal(size=gsize)) + + endog1 = np.dot(exog1, self.params) + errors * self.error_sd + endog.append(endog1) + + self.exog = np.concatenate(exog, axis=0) + self.endog = np.concatenate(endog) + self.time = np.concatenate(time, axis=0) + self.group = np.concatenate(group) + + + +class Nested_simulator(GEE_simulator): + + # Vector containing list of nest sizes (used instead of + # group_size_range). + nest_sizes = None + + # Matrix of nest id's (an output parameter) + id_matrix = None + + + def print_dparams(self, dparams_est): + for j in range(len(self.nest_sizes)): + OUT.write("Nest %d variance estimate: %8.4f\n" % \ + (j+1, dparams_est[j])) + OUT.write("Nest %d variance truth: %8.4f\n" % \ + (j+1, self.dparams[j])) + + OUT.write("Error variance estimate: %8.4f\n" % \ + (dparams_est[-1] - sum(dparams_est[0:-1]))) + OUT.write("Error variance truth: %8.4f\n" % + self.error_sd**2) + OUT.write("\n") + + + def simulate(self): + + group_effect_var = self.dparams[0] + + vcomp = self.dparams[1:] + vcomp.append(0) + + endog, exog, group, id_matrix = [], [], [], [] + + for i in range(self.ngroups): + + iterators = [lrange(n) for n in self.nest_sizes] + + # The random effects + variances = [np.sqrt(v)*np.random.normal(size=n) + for v,n in zip(vcomp, self.nest_sizes)] + + gpe = np.random.normal() * np.sqrt(group_effect_var) + + nest_all = [] + for j in self.nest_sizes: + nest_all.append(set()) + + for nest in product(*iterators): + + group.append(i) + + # The sum of all random effects that apply to this + # unit + ref = gpe + sum([v[j] for v,j in zip(variances, nest)]) + + exog1 = np.random.normal(size=5) + exog1[0] = 1 + exog.append(exog1) + + error = ref + self.error_sd * np.random.normal() + + endog1 = np.dot(exog1, self.params) + error + endog.append(endog1) + + for j in range(len(nest)): + nest_all[j].add(tuple(nest[0:j+1])) + + nest1 = [len(x)-1 for x in nest_all] + id_matrix.append(nest1[0:-1]) + + self.exog = np.array(exog) + self.endog = np.array(endog) + self.group = np.array(group) + self.id_matrix = np.array(id_matrix) + self.time = np.zeros_like(self.endog) + + + + + + + +def check_constraint(da, va, ga): + """ + Check the score testing of the parameter constraints. + """ + + + + + +def gen_gendat_ar0(ar): + def gendat_ar0(msg = False): + ars = AR_simulator() + ars.ngroups = 200 + ars.params = np.r_[0, -1, 1, 0, 0.5] + ars.error_sd = 2 + ars.dparams = [ar,] + ars.simulate() + return ars, Autoregressive() + return gendat_ar0 + +def gen_gendat_ar1(ar): + def gendat_ar1(): + ars = AR_simulator() + ars.ngroups = 200 + ars.params = np.r_[0, -0.8, 1.2, 0, 0.5] + ars.error_sd = 2 + ars.dparams = [ar,] + ars.simulate() + return ars, Autoregressive() + return gendat_ar1 + +def gendat_nested0(): + ns = Nested_simulator() + ns.error_sd = 1. + ns.params = np.r_[0., 1, 1, -1, -1] + ns.ngroups = 50 + ns.nest_sizes = [10, 5] + ns.dparams = [2., 1.] + ns.simulate() + return ns, Nested(ns.id_matrix) + +def gendat_nested1(): + ns = Nested_simulator() + ns.error_sd = 2. + ns.params = np.r_[0, 1, 1.3, -0.8, -1.2] + ns.ngroups = 50 + ns.nest_sizes = [10, 5] + ns.dparams = [1., 3.] + ns.simulate() + return ns, Nested(ns.id_matrix) + + +nrep = 100 + +gendats = [gen_gendat_ar0(ar) for ar in (0, 0.3, 0.6)] +gendats.extend([gen_gendat_ar1(ar) for ar in (0, 0.3, 0.6)]) +gendats.extend([gendat_nested0, gendat_nested1]) + +lhs = np.array([[0., 1, 1, 0, 0],]) +rhs = np.r_[0.,] + +# Loop over data generating models +for gendat in gendats: + + pvalues = [] + params = [] + std_errors = [] + dparams = [] + + for j in range(nrep): + + da,va = gendat() + ga = Gaussian() + + md = GEE(da.endog, da.exog, da.group, da.time, ga, va) + mdf = md.fit() + + scale_inv = 1 / md.estimate_scale() + dparams.append(np.r_[va.dparams, scale_inv]) + params.append(np.asarray(mdf.params)) + std_errors.append(np.asarray(mdf.standard_errors)) + + da,va = gendat() + ga = Gaussian() + + md = GEE(da.endog, da.exog, da.group, da.time, ga, va, + constraint=(lhs, rhs)) + mdf = md.fit() + score = md.score_test_results + pvalue = score["p-value"] + pvalues.append(pvalue) + + dparams_mean = np.array(sum(dparams) / len(dparams)) + OUT.write("Checking dependence parameters:\n") + da.print_dparams(dparams_mean) + + params = np.array(params) + eparams = params.mean(0) + sdparams = params.std(0) + std_errors = np.array(std_errors) + std_errors = std_errors.mean(0) + + OUT.write("Checking parameter values:\n") + OUT.write("Observed: ") + OUT.write(np.array_str(eparams) + "\n") + OUT.write("Expected: ") + OUT.write(np.array_str(da.params) + "\n") + OUT.write("Absolute difference: ") + OUT.write(np.array_str(eparams - da.params) + "\n") + OUT.write("Relative difference: ") + OUT.write(np.array_str((eparams - da.params) / da.params) + "\n") + OUT.write("\n") + + OUT.write("Checking standard errors\n") + OUT.write("Observed: ") + OUT.write(np.array_str(sdparams) + "\n") + OUT.write("Expected: ") + OUT.write(np.array_str(std_errors) + "\n") + OUT.write("Absolute difference: ") + OUT.write(np.array_str(sdparams - std_errors) + "\n") + OUT.write("Relative difference: ") + OUT.write(np.array_str((sdparams - std_errors) / std_errors) + "\n") + OUT.write("\n") + + pvalues.sort() + OUT.write("Checking constrained estimation:\n") + OUT.write("Left hand side:\n") + OUT.write(np.array_str(lhs) + "\n") + OUT.write("Right hand side:\n") + OUT.write(np.array_str(rhs) + "\n") + OUT.write("Observed p-values Expected Null p-values\n") + for q in np.arange(0.1, 0.91, 0.1): + OUT.write("%20.3f %20.3f\n" % (pvalues[int(q*len(pvalues))], q)) + + OUT.write("=" * 80 + "\n\n") + +OUT.close() diff --git a/statsmodels/genmod/tests/glmnet_r_results.py b/statsmodels/genmod/tests/glmnet_r_results.py new file mode 100644 index 0000000..3f33363 --- /dev/null +++ b/statsmodels/genmod/tests/glmnet_r_results.py @@ -0,0 +1,37 @@ +import numpy as np + +rslt_binomial_0 = np.array([0,6.618737,0.004032037,0.01433665,0.01265635,0.006173346,0.01067706]) + +rslt_binomial_1 = np.array([0,1.029661,0.02180239,0.07769613,0.06756466,0.03156418,0.05851878]) + +rslt_binomial_2 = np.array([0,0.1601819,0.07111087,0.2544921,0.2110318,0.08577924,0.1984383]) + +rslt_binomial_3 = np.array([0.5,0.05343991,0.004990061,0.2838563,0.2167881,0.02370156,0.2096612]) + +rslt_binomial_4 = np.array([0.5,0.02313286,0.0708914,0.3791042,0.2938332,0.07506391,0.2982251]) + +rslt_binomial_5 = np.array([0.5,0.009124078,0.106681,0.4327268,0.3362166,0.1019452,0.3479955]) + +rslt_binomial_6 = np.array([1,0.02932512,0,0.3085764,0.2300801,0.01143652,0.2291531]) + +rslt_binomial_7 = np.array([1,0.01269414,0.07022348,0.396642,0.3044255,0.07151663,0.31301]) + +rslt_binomial_8 = np.array([1,0.005494992,0.1049623,0.4385186,0.3391729,0.09907393,0.3527401]) + +rslt_poisson_0 = np.array([0,23.5349,0.009251658,0.003730997,0.01266164,0.003439135,0.0141719]) + +rslt_poisson_1 = np.array([0,3.661269,0.04842557,0.02095708,0.06550316,0.02029514,0.07300782]) + +rslt_poisson_2 = np.array([0,0.5695749,0.1440462,0.07208017,0.182649,0.07511376,0.2018242]) + +rslt_poisson_3 = np.array([0.5,0.1577593,0.1247603,0.02857521,0.185693,0.03840622,0.2200925]) + +rslt_poisson_4 = np.array([0.5,0.05669575,0.187629,0.08842012,0.2348627,0.09736964,0.2628845]) + +rslt_poisson_5 = np.array([0.5,0.0185653,0.2118078,0.1121067,0.2534181,0.1204543,0.2784761]) + +rslt_poisson_6 = np.array([1,0.07887965,0.1339927,0.0322772,0.1969884,0.0439019,0.2339252]) + +rslt_poisson_7 = np.array([1,0.02834788,0.1927163,0.09160406,0.2398164,0.1010126,0.2682158]) + +rslt_poisson_8 = np.array([1,0.0101877,0.2126847,0.1123439,0.2544153,0.1208601,0.2796794]) diff --git a/statsmodels/genmod/tests/results/__init__.py b/statsmodels/genmod/tests/results/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/genmod/tests/results/elastic_net.R b/statsmodels/genmod/tests/results/elastic_net.R new file mode 100644 index 0000000..fd65517 --- /dev/null +++ b/statsmodels/genmod/tests/results/elastic_net.R @@ -0,0 +1,37 @@ +library(glmnet) +library(R2nparray) + +rslt = list() + +for (dtype in c("binomial", "poisson")) { + + ik = 0 + + data = read.csv(sprintf("enet_%s.csv", dtype)) + + endog = data[, 1] + exog = data[, 2:dim(data)[2]] + exog = as.matrix(exog) + + for (k in 1:dim(exog)[2]) { + exog[,k] = exog[,k] - mean(exog[,k]) + exog[,k] = exog[,k] / sd(exog[,k]) + } + + for (alpha in c(0, 0.5, 1)) { + + fit = glmnet(exog, endog, family=dtype, intercept=FALSE, + standardize=FALSE, alpha=alpha) + + for (q in c(0.3, 0.5, 0.7)) { + ii = round(q * length(fit$lambda)) + coefs = coef(fit, s=fit$lambda[ii]) + coefs = coefs[2:length(coefs)] + rname = sprintf("rslt_%s_%d", dtype, ik) + ik = ik + 1 + rslt[[rname]] = c(alpha, fit$lambda[ii], coefs) + } + } +} + +R2nparray(rslt, fname="../glmnet_r_results.py") diff --git a/statsmodels/genmod/tests/results/elastic_net_generate_tests.py b/statsmodels/genmod/tests/results/elastic_net_generate_tests.py new file mode 100644 index 0000000..753803e --- /dev/null +++ b/statsmodels/genmod/tests/results/elastic_net_generate_tests.py @@ -0,0 +1,24 @@ +import numpy as np + +""" +Generate data sets for testing elastic net fits of GLMs. +""" + +n = 200 +p = 5 + +# Logistic +exog = np.random.normal(size=(n, p)) +lin_pred = exog.sum(1) * 0.2 +exp_val = 1 / (1 + np.exp(-lin_pred)) +endog = 1 * (np.random.uniform(size=n) < exp_val) +mat = np.concatenate((endog[:, None], exog), axis=1) +np.savetxt("enet_binomial.csv", mat, fmt="%.2f", delimiter=",") + +# Poisson +exog = np.random.normal(size=(n, p)) +lin_pred = exog.sum(1) * 0.2 +exp_val = np.exp(lin_pred) +endog = np.random.poisson(exp_val) +mat = np.concatenate((endog[:, None], exog), axis=1) +np.savetxt("enet_poisson.csv", mat, fmt="%.2f", delimiter=",") diff --git a/statsmodels/genmod/tests/results/enet_binomial.csv b/statsmodels/genmod/tests/results/enet_binomial.csv new file mode 100644 index 0000000..3884d20 --- /dev/null +++ b/statsmodels/genmod/tests/results/enet_binomial.csv @@ -0,0 +1,200 @@ +0.00,0.42,0.45,0.24,-0.28,0.68 +0.00,0.62,0.12,0.94,-1.49,-0.53 +1.00,-1.32,-0.69,-0.30,0.50,0.82 +0.00,0.25,-1.27,0.28,2.00,-0.61 +1.00,0.51,0.08,0.21,1.00,-1.36 +1.00,1.88,-0.63,-0.53,-2.08,0.16 +1.00,-0.67,1.09,1.43,0.26,0.73 +0.00,-1.61,-1.07,-1.37,-0.17,0.10 +0.00,1.08,1.04,0.78,-0.62,-2.36 +1.00,-1.32,-0.69,1.24,-1.05,0.29 +0.00,-0.26,1.46,-0.92,1.75,-1.52 +1.00,-0.67,0.63,0.18,1.80,0.70 +0.00,0.12,-0.91,-1.25,-1.49,1.57 +0.00,-1.31,-0.79,0.45,-0.30,-0.98 +1.00,-0.33,1.97,-0.99,-0.23,-1.76 +0.00,1.50,0.95,0.47,-1.14,-0.92 +0.00,1.21,0.22,-0.79,-0.54,0.23 +1.00,-0.12,0.38,0.34,-0.79,-0.66 +1.00,0.32,-0.02,-0.10,1.46,-1.05 +1.00,1.44,-0.47,1.08,0.05,-0.78 +0.00,0.10,-0.57,-0.09,-0.24,-0.19 +0.00,1.30,-0.99,-1.25,-0.36,-0.20 +0.00,-0.48,-0.64,0.56,0.48,1.40 +0.00,0.28,0.39,-2.01,-1.74,-0.47 +1.00,0.51,1.81,0.81,-0.86,0.68 +1.00,-3.04,0.21,-0.67,-0.09,0.56 +1.00,1.44,0.74,0.55,1.14,0.35 +1.00,2.15,-0.07,1.84,0.75,0.03 +1.00,-3.68,1.72,1.68,0.18,-0.23 +0.00,-0.93,0.01,-0.62,0.11,-0.59 +0.00,-0.04,1.09,0.31,0.84,1.33 +0.00,0.69,0.37,-1.40,-0.12,-1.20 +1.00,-0.66,0.48,0.68,-1.03,-1.74 +0.00,0.00,1.83,-0.07,0.35,-0.92 +0.00,1.32,-2.05,1.24,1.00,-0.39 +0.00,-1.17,-1.28,0.31,1.45,1.00 +0.00,-0.64,0.35,-0.86,1.26,-2.51 +1.00,-1.16,-1.45,-0.83,-0.23,1.59 +1.00,1.34,0.57,-0.38,0.14,-0.90 +0.00,-0.01,-0.96,1.03,-2.48,-1.42 +1.00,0.06,0.19,-0.76,-0.15,0.15 +0.00,-1.00,-1.96,-1.18,-0.75,0.74 +0.00,-1.27,0.15,-0.86,-0.20,-0.39 +1.00,-0.90,2.16,1.72,-0.69,-0.68 +1.00,-1.34,1.88,-0.47,-0.28,-1.31 +1.00,-1.13,-0.74,0.09,0.52,0.06 +1.00,1.03,0.17,-1.08,1.79,-0.47 +0.00,-0.16,-0.93,0.45,-1.58,-0.38 +1.00,-0.51,0.02,-0.84,-0.68,1.24 +1.00,0.58,-0.65,0.17,1.20,-0.09 +1.00,0.65,0.42,-0.14,1.14,-0.62 +1.00,0.58,1.51,-0.10,1.55,0.99 +0.00,1.15,-0.47,-0.85,0.63,0.04 +1.00,-1.32,-0.95,0.23,2.30,0.71 +0.00,0.37,-0.04,-1.43,-0.05,-0.10 +1.00,0.50,-0.28,0.69,2.27,1.33 +0.00,-1.05,-2.08,-1.63,0.57,-0.24 +1.00,0.70,0.40,0.35,0.20,-0.11 +1.00,-0.14,-1.21,-0.04,-0.52,0.21 +1.00,-1.38,-2.20,-0.43,0.44,-0.44 +1.00,-0.77,0.23,-0.12,0.11,1.24 +0.00,0.17,-1.04,-1.90,0.26,-0.77 +1.00,1.36,0.67,0.47,0.61,1.16 +1.00,-1.70,1.42,0.77,1.77,1.68 +0.00,-0.91,-0.25,-0.40,-0.24,1.15 +0.00,-1.43,-1.82,-1.24,-1.42,-0.74 +0.00,-0.62,-0.71,-3.27,0.86,0.73 +0.00,-0.66,-0.50,0.34,-0.41,-1.24 +0.00,-0.65,-2.60,0.80,0.64,0.10 +1.00,0.63,-0.29,1.92,0.50,0.51 +0.00,-0.27,0.12,-1.15,0.19,-1.93 +1.00,-1.27,-1.13,-1.23,1.63,1.30 +0.00,-0.68,0.47,-0.27,1.25,-0.29 +0.00,-1.88,-1.73,-0.32,0.67,-0.94 +1.00,0.73,0.62,-1.24,0.16,-0.24 +0.00,-0.54,-1.90,-0.45,1.56,1.27 +1.00,1.28,-0.12,-0.53,1.03,0.91 +0.00,-0.07,-0.11,-2.01,-0.34,-0.61 +1.00,-0.21,-0.02,1.21,-0.16,0.34 +1.00,1.10,-1.87,-0.51,-0.63,0.81 +1.00,2.25,-1.74,-0.88,-0.53,0.53 +1.00,-1.34,0.60,0.03,0.35,0.85 +0.00,-1.04,-0.84,-0.24,-1.17,-1.57 +0.00,1.88,-0.66,0.87,-0.46,0.17 +0.00,-2.24,-0.81,-0.36,1.00,0.12 +0.00,-1.28,0.77,-0.64,-1.20,-0.24 +1.00,1.31,-1.58,0.15,-0.83,0.91 +1.00,0.56,-0.89,-0.01,-0.05,1.59 +0.00,-0.17,-0.18,-0.20,0.87,-0.53 +0.00,0.54,0.58,0.41,1.58,0.77 +0.00,-0.53,-0.24,-0.49,-0.35,-0.04 +1.00,0.79,0.54,-0.27,0.28,-0.26 +0.00,-1.20,-1.04,-0.69,-1.32,0.76 +1.00,0.21,0.06,-0.37,0.87,-0.75 +0.00,0.70,1.24,0.75,-0.17,-0.78 +1.00,0.20,1.47,-0.70,-2.32,-0.76 +1.00,-0.20,-1.14,1.11,-2.40,-0.38 +0.00,0.43,0.35,0.43,-1.37,-0.40 +0.00,-0.27,0.64,0.54,-0.65,-0.48 +1.00,1.07,0.77,-0.44,-0.05,-0.41 +1.00,-0.51,-1.70,-0.46,-1.45,0.54 +0.00,-1.23,-0.34,-1.83,-1.21,-1.57 +0.00,0.11,-0.68,0.65,0.25,0.14 +0.00,-0.04,-0.81,1.11,0.41,0.47 +1.00,-0.90,0.57,-0.92,0.51,-0.58 +1.00,1.34,-1.06,0.33,-0.50,-0.22 +0.00,-0.91,-1.85,0.02,-1.67,-0.73 +0.00,-1.43,-0.42,1.75,-0.49,0.08 +1.00,0.75,0.14,-0.55,0.03,-0.82 +0.00,2.21,-0.48,-2.20,-1.09,1.67 +1.00,0.71,-1.50,-0.71,0.05,2.14 +1.00,-2.32,0.26,-0.69,-1.01,0.27 +1.00,-0.38,0.59,1.06,0.74,-0.03 +1.00,-0.99,-0.17,-0.08,-0.76,-0.11 +0.00,1.29,-1.86,0.33,0.16,-0.06 +0.00,0.58,-1.56,-0.97,0.42,1.93 +0.00,-0.96,-0.20,-1.60,-0.47,0.53 +0.00,0.82,0.12,-0.56,1.02,0.85 +0.00,-1.38,-0.13,0.94,0.40,0.70 +0.00,-0.58,-1.20,-1.64,0.03,-0.85 +0.00,-0.52,-0.76,0.44,1.26,0.55 +1.00,-1.28,0.61,-0.35,-1.13,-0.12 +1.00,-1.20,2.10,0.62,-1.67,-0.33 +0.00,-0.90,-0.69,-0.98,-1.63,0.84 +1.00,1.75,2.48,-0.04,0.00,0.25 +0.00,-0.48,1.86,-2.13,0.87,-0.20 +1.00,0.22,0.66,0.59,0.79,2.09 +1.00,0.52,1.85,-0.32,-0.78,-0.77 +0.00,1.00,-0.59,-1.02,1.88,0.60 +1.00,-1.33,0.05,-0.07,0.96,1.66 +0.00,-0.13,0.88,0.25,-0.20,1.22 +1.00,-0.55,-0.62,-0.81,0.16,0.75 +1.00,-0.60,1.66,-0.90,1.04,1.07 +1.00,2.19,0.83,0.03,-2.03,0.19 +1.00,1.27,-2.35,1.26,-0.56,-0.79 +1.00,1.20,-0.71,-0.37,-0.30,2.33 +0.00,0.17,-1.56,1.28,0.16,-0.06 +1.00,0.04,-0.52,1.09,-1.00,0.46 +1.00,0.75,-0.58,0.15,-1.85,-0.36 +1.00,0.68,1.69,1.54,0.60,0.47 +1.00,-0.38,0.66,1.25,0.18,0.59 +1.00,-0.28,1.11,1.86,0.37,-0.53 +0.00,1.25,-1.66,1.22,-0.69,-0.47 +0.00,-1.14,-0.42,0.88,0.64,0.41 +0.00,0.39,0.91,0.15,0.30,0.34 +0.00,0.96,-0.68,1.63,-0.30,0.01 +0.00,-0.39,-1.36,0.71,-1.62,0.65 +0.00,0.04,-0.98,0.63,0.61,0.33 +0.00,-0.27,1.83,-1.77,0.91,0.79 +0.00,-0.80,-0.01,-0.81,-0.73,0.51 +0.00,-0.86,-1.16,-0.98,-0.54,1.07 +1.00,0.12,-0.35,0.97,1.27,-0.65 +1.00,-0.50,-1.27,0.53,2.28,1.71 +1.00,0.22,-0.10,0.28,0.10,1.48 +0.00,-0.10,-0.56,0.34,-0.25,0.85 +0.00,0.05,-0.97,-2.22,0.72,-0.69 +0.00,-0.20,0.19,-1.82,1.34,-1.21 +1.00,-0.36,0.23,-0.33,0.13,0.21 +1.00,-0.39,-1.46,-0.82,0.27,0.57 +1.00,-0.12,-1.23,-1.97,0.81,-0.08 +0.00,0.54,1.61,-0.27,-0.97,-0.70 +0.00,-0.20,-0.82,0.61,-2.51,-0.53 +1.00,-0.23,0.68,1.84,2.21,0.30 +1.00,-0.80,0.63,-0.12,-1.27,-0.17 +1.00,0.81,-0.14,1.02,0.20,-0.16 +1.00,1.52,-1.64,-0.31,0.84,-0.41 +1.00,-0.14,0.63,0.39,-0.01,-0.17 +0.00,0.62,1.66,0.60,-1.59,-1.81 +0.00,-1.14,0.27,0.16,-0.94,-0.11 +1.00,-1.13,-0.45,1.02,-1.19,-0.45 +0.00,0.38,0.04,-0.26,0.71,0.42 +1.00,1.35,0.23,-1.55,-1.19,-2.59 +1.00,0.87,0.57,-0.51,-0.70,-0.29 +0.00,-0.60,0.06,-0.34,0.43,-0.34 +0.00,0.80,-0.07,1.16,-0.54,-2.22 +0.00,0.70,-1.24,-1.00,-1.43,-0.92 +1.00,-1.11,-0.92,-0.51,-0.93,-0.18 +1.00,-0.29,-0.69,0.41,0.84,1.10 +1.00,0.45,0.92,-0.83,1.22,0.64 +0.00,-0.83,-0.74,1.30,-0.79,0.96 +1.00,-0.41,0.24,-0.12,-0.96,-0.51 +0.00,0.52,-1.95,-0.44,1.06,-0.69 +1.00,-0.54,1.29,1.56,1.16,-1.01 +1.00,-0.39,-0.41,0.25,-0.22,0.45 +0.00,-0.97,0.90,-0.17,0.01,0.03 +1.00,-2.52,1.53,-3.83,2.25,-0.13 +1.00,0.42,-0.44,3.15,-1.38,-1.99 +1.00,1.38,-0.39,-0.54,-0.37,1.21 +1.00,-1.21,1.33,0.99,-1.83,0.80 +0.00,-0.39,-0.50,0.68,-0.39,-0.13 +0.00,-1.36,-0.00,0.35,-1.09,0.60 +0.00,-0.22,-0.02,0.92,0.35,0.07 +1.00,-0.58,-0.34,-1.03,-1.53,0.81 +1.00,-0.07,-1.50,-0.04,0.86,0.78 +0.00,-0.89,-1.18,-0.21,-1.15,0.40 +0.00,0.31,-0.97,-0.09,0.67,0.33 +0.00,1.15,0.43,-0.43,-0.54,-1.09 +1.00,-0.78,0.44,0.44,0.54,1.40 +1.00,-1.08,-0.68,0.26,-0.26,-2.14 +0.00,0.27,2.21,-0.58,-0.37,0.84 diff --git a/statsmodels/genmod/tests/results/enet_poisson.csv b/statsmodels/genmod/tests/results/enet_poisson.csv new file mode 100644 index 0000000..ae86b45 --- /dev/null +++ b/statsmodels/genmod/tests/results/enet_poisson.csv @@ -0,0 +1,200 @@ +0.00,-0.55,0.38,1.26,-1.33,-0.74 +1.00,0.74,0.89,-1.55,-0.26,-0.81 +1.00,0.71,0.64,2.57,-2.68,0.50 +0.00,-0.98,0.47,0.17,0.32,-2.49 +2.00,0.18,-0.52,-1.01,0.04,-0.87 +1.00,0.39,0.54,0.19,0.76,-0.91 +0.00,-0.35,0.30,-2.02,-0.16,-1.16 +0.00,-2.13,-0.60,-1.42,0.47,0.13 +1.00,0.04,-0.81,1.61,0.91,1.04 +1.00,-1.06,0.40,-1.11,1.76,-0.65 +0.00,-1.82,0.20,-1.87,-0.38,-1.54 +1.00,-0.11,-0.15,-0.99,2.31,-1.11 +1.00,-0.17,-0.37,-0.85,0.07,2.76 +1.00,1.28,-1.07,-0.26,0.62,0.96 +3.00,-0.59,1.92,1.04,-0.48,0.69 +1.00,0.42,0.05,1.47,-0.74,0.91 +3.00,0.76,1.23,1.53,-1.09,3.17 +0.00,0.23,0.28,0.60,1.13,0.05 +3.00,1.10,-1.38,0.27,0.82,0.47 +0.00,-0.87,-0.78,-0.47,1.55,-1.25 +1.00,0.22,-0.46,-0.10,-2.41,2.14 +1.00,-2.31,0.31,-1.17,-0.52,1.06 +1.00,-1.42,1.02,2.48,-0.11,1.07 +1.00,0.28,1.25,0.83,0.48,-1.04 +0.00,-0.48,0.24,-0.44,1.00,1.06 +3.00,-0.30,-0.92,0.96,0.33,2.13 +0.00,1.20,-0.39,0.03,-0.55,-1.21 +1.00,-0.10,-0.68,0.11,-1.40,-0.35 +1.00,-1.16,0.73,-0.53,0.14,0.08 +1.00,-1.74,-0.43,-0.84,0.35,-2.00 +2.00,0.48,0.33,0.46,0.34,-0.14 +2.00,-0.41,0.13,0.65,-0.76,1.13 +3.00,0.61,-0.48,1.36,1.34,0.68 +0.00,1.12,-2.13,-0.99,-1.13,-0.29 +2.00,-1.71,0.91,-0.63,0.48,-0.48 +1.00,-1.19,0.02,-0.21,0.51,0.67 +3.00,1.09,-0.63,0.82,-0.27,-1.37 +3.00,1.46,1.03,-0.84,-0.66,-0.38 +5.00,1.84,1.02,1.67,-0.97,0.69 +2.00,0.30,1.62,-1.31,2.28,-0.43 +0.00,0.50,-0.04,-0.99,0.24,-0.86 +0.00,-0.75,1.09,0.22,1.85,0.77 +1.00,1.36,-0.40,-0.52,0.15,-0.18 +2.00,-1.14,0.19,0.36,0.60,-2.80 +1.00,0.54,-1.31,-0.34,-1.65,1.17 +0.00,1.82,-0.44,-0.76,0.99,-0.24 +0.00,-0.19,-0.41,1.63,1.14,-0.50 +4.00,1.01,0.72,0.97,0.90,1.68 +1.00,-1.40,0.12,1.25,1.86,-0.14 +0.00,-0.36,0.64,0.23,-0.71,-2.03 +2.00,0.00,0.92,-0.16,0.08,0.47 +1.00,-0.38,-2.33,1.56,-0.86,-0.31 +0.00,-1.03,-1.43,0.72,0.97,-1.50 +4.00,0.97,1.11,-0.89,0.29,0.89 +0.00,0.66,-1.89,-1.69,1.10,-1.02 +1.00,0.24,0.47,-1.71,1.10,-1.43 +0.00,-0.14,-0.69,0.38,-0.50,-0.11 +2.00,0.02,0.88,-1.96,-0.12,0.94 +2.00,-0.38,-0.27,1.16,0.48,1.98 +1.00,0.22,1.57,-0.77,0.53,0.88 +4.00,0.13,0.49,1.35,-0.23,1.48 +2.00,0.41,-2.89,1.12,-0.00,1.79 +1.00,-1.47,1.51,0.11,0.41,0.68 +2.00,-0.58,1.42,0.43,0.62,1.34 +1.00,0.35,0.71,0.30,-2.30,1.33 +2.00,0.42,-0.55,2.37,0.76,0.70 +1.00,-0.65,0.19,-1.47,-0.08,-0.63 +1.00,-0.75,-1.08,-0.14,1.10,-1.14 +3.00,1.48,-1.65,0.97,-0.25,-0.48 +4.00,-0.42,-1.86,-1.33,-0.63,0.28 +2.00,1.61,-1.08,-0.18,-1.78,0.49 +2.00,-0.45,0.02,1.47,0.80,0.58 +1.00,-1.11,1.13,0.17,1.12,0.49 +1.00,1.61,0.16,1.27,-1.95,-0.00 +4.00,-0.67,0.76,1.21,2.99,-0.07 +0.00,-0.16,-0.75,-0.38,-0.71,-1.44 +2.00,-0.29,0.61,0.88,-0.11,0.31 +0.00,-0.14,0.03,-0.63,-1.06,-0.01 +0.00,0.68,0.53,-0.84,1.04,-1.03 +1.00,-0.96,1.24,0.57,-0.01,0.34 +2.00,-0.01,-0.11,0.19,0.46,0.23 +0.00,1.66,-1.70,-0.25,1.15,-0.84 +0.00,-1.43,0.61,-0.84,2.37,0.35 +0.00,-0.08,-1.17,1.60,-0.85,-2.67 +1.00,0.85,0.70,1.40,-0.46,-0.87 +0.00,-0.22,-0.88,-1.94,0.37,1.33 +2.00,-0.84,1.32,-1.02,-0.21,0.93 +3.00,-1.25,0.65,0.75,1.01,-1.05 +0.00,0.84,-1.04,0.08,-0.24,1.48 +0.00,0.32,-0.69,0.83,-0.29,-1.36 +0.00,0.72,-0.44,-1.80,-0.37,0.33 +0.00,-2.29,-0.09,0.28,-0.99,0.85 +2.00,1.01,-1.89,0.66,-0.11,-0.19 +1.00,0.07,-0.78,-0.65,0.87,1.86 +1.00,0.13,-1.87,0.38,-0.84,-0.38 +1.00,1.14,-0.59,1.22,2.11,1.43 +0.00,-1.29,1.29,0.87,-1.83,1.59 +0.00,-1.14,-2.02,0.17,0.08,-2.81 +1.00,-0.02,-1.71,2.18,0.66,1.10 +1.00,-0.69,-0.79,0.27,0.14,-1.79 +2.00,-0.22,-0.65,-0.09,1.15,-0.47 +0.00,-0.35,0.12,0.36,-0.00,1.00 +0.00,-0.47,1.60,-1.96,0.11,0.88 +2.00,0.29,0.33,0.73,-0.55,0.34 +0.00,-0.25,-1.42,0.76,-1.71,-0.60 +2.00,-0.48,0.83,0.19,-1.23,-0.61 +1.00,-2.01,0.45,-0.78,0.64,1.34 +1.00,-0.34,-2.13,1.11,0.30,-1.44 +0.00,-1.29,1.85,1.03,2.08,-0.67 +1.00,1.44,-0.45,-0.58,0.76,1.95 +1.00,-0.07,-0.15,0.19,2.36,0.60 +1.00,0.37,1.25,-0.67,1.64,-1.62 +4.00,0.51,-0.72,0.82,-0.02,1.77 +1.00,-0.26,-0.14,0.05,1.64,0.72 +2.00,1.88,0.38,-0.50,0.67,0.55 +2.00,-1.71,-1.24,0.44,1.06,1.13 +1.00,0.30,1.03,-0.50,0.88,0.78 +2.00,-0.15,1.82,-0.96,0.14,-0.31 +0.00,0.88,-0.33,-1.65,-1.40,-0.09 +1.00,0.97,-0.95,-0.94,-1.24,-0.31 +1.00,1.29,-1.08,0.01,0.39,0.49 +2.00,-0.22,0.27,1.00,0.47,0.25 +0.00,-0.11,-1.03,-1.13,-2.08,-0.15 +1.00,0.31,-1.72,0.23,1.15,0.74 +3.00,0.04,0.92,1.23,-0.51,-0.76 +0.00,-0.79,0.91,-1.62,-0.01,-0.79 +5.00,1.37,-0.86,2.21,0.87,0.23 +2.00,1.35,-0.51,-2.27,0.46,1.89 +0.00,1.17,-0.37,0.60,1.29,-0.44 +2.00,-0.46,-1.17,1.10,1.61,0.38 +0.00,0.82,0.66,-0.48,-0.52,0.36 +0.00,-1.04,-0.38,-2.27,-0.51,-1.08 +4.00,0.18,-0.20,0.48,1.22,1.19 +6.00,1.58,0.59,0.56,0.04,0.34 +2.00,1.99,0.31,0.77,0.23,-0.12 +1.00,-0.89,1.15,-0.97,0.29,0.60 +0.00,0.08,0.18,1.04,1.09,0.21 +1.00,0.13,-1.82,1.29,1.21,1.16 +1.00,1.60,0.76,-0.37,0.69,-1.22 +0.00,1.43,-0.60,-1.89,-1.00,0.78 +0.00,-0.37,-0.40,0.17,-0.64,0.31 +0.00,0.39,0.90,-0.97,-0.47,0.87 +2.00,0.98,-0.64,-1.86,0.68,0.60 +0.00,1.05,-0.40,0.24,-0.65,0.69 +2.00,1.28,-0.66,1.18,-0.64,0.90 +0.00,-0.03,-1.60,-0.76,-0.46,-0.57 +3.00,1.81,-0.33,-0.25,1.47,1.59 +3.00,0.94,-1.43,0.54,0.31,0.03 +1.00,-0.85,1.07,0.98,-2.15,-0.79 +3.00,1.60,-1.28,1.15,0.10,-0.33 +1.00,2.01,-0.29,1.21,0.50,-1.70 +1.00,-1.23,1.40,-1.12,-1.08,0.25 +0.00,0.01,2.06,0.57,-0.42,-0.56 +1.00,-0.45,0.75,1.28,-0.39,0.30 +1.00,-0.08,-1.03,0.64,-0.02,0.78 +0.00,1.13,0.08,0.16,0.73,-0.09 +2.00,-2.34,0.61,0.44,0.90,0.65 +0.00,-2.00,1.51,-1.33,1.11,-0.59 +0.00,-0.50,-0.01,0.67,-0.19,0.50 +1.00,-0.89,0.61,0.36,1.33,0.69 +0.00,0.92,1.10,-0.47,-1.66,0.64 +2.00,0.80,-0.24,-0.91,1.46,1.74 +2.00,0.69,-0.20,-0.91,-0.91,0.21 +0.00,-0.46,0.43,0.47,0.40,-0.58 +1.00,1.24,-0.76,-0.41,0.88,-0.27 +0.00,-0.15,-1.04,0.63,0.51,-2.06 +2.00,-1.55,-0.59,1.03,-0.31,1.49 +1.00,0.23,-0.45,0.60,0.22,-1.05 +2.00,-0.21,-1.30,1.60,-0.72,1.09 +2.00,0.35,-1.89,1.42,-1.77,-0.14 +0.00,-2.33,0.16,-1.60,-1.17,-0.16 +0.00,0.37,-1.10,0.43,1.19,-1.41 +4.00,-0.32,1.94,0.49,0.14,1.12 +1.00,-1.03,1.27,0.49,-0.55,0.07 +2.00,-0.83,0.66,1.13,0.16,-1.13 +0.00,-1.17,-0.10,-0.09,-0.09,-0.49 +0.00,-1.17,-0.07,-0.10,1.42,-1.77 +0.00,1.66,-1.07,-0.96,1.12,-1.98 +0.00,2.75,1.14,-0.05,0.58,0.14 +1.00,-1.06,0.66,-0.98,1.17,0.02 +0.00,-1.02,-0.36,0.06,0.67,-0.29 +2.00,0.28,0.73,-0.62,-0.56,1.98 +0.00,-0.17,-2.83,-1.42,-0.19,-0.77 +2.00,1.64,-0.91,-1.54,-2.04,1.41 +1.00,1.48,0.46,-0.46,-0.71,-1.07 +0.00,0.02,0.93,2.02,-0.84,1.44 +1.00,0.13,-0.27,1.43,0.22,-1.15 +1.00,0.26,-1.04,0.11,0.18,0.46 +2.00,0.51,-1.22,-0.03,0.11,0.86 +3.00,-1.07,-1.32,-0.11,-0.03,-0.11 +4.00,-1.67,1.23,0.01,-0.85,-0.45 +1.00,0.99,1.07,-0.37,0.38,0.95 +1.00,-1.77,-0.72,-0.54,-0.05,1.08 +0.00,-0.80,-0.03,-0.00,0.92,1.12 +2.00,-0.77,-0.08,-0.41,2.02,-0.62 +0.00,0.80,0.03,0.90,-1.62,-0.40 +0.00,1.06,1.06,-0.73,-0.11,0.04 +1.00,0.25,-0.36,-0.44,0.40,-0.13 +1.00,0.38,-0.47,-1.65,0.47,-0.13 +5.00,1.12,0.34,-0.87,1.43,0.07 diff --git a/statsmodels/genmod/tests/results/epil.csv b/statsmodels/genmod/tests/results/epil.csv new file mode 100644 index 0000000..829c4ec --- /dev/null +++ b/statsmodels/genmod/tests/results/epil.csv @@ -0,0 +1,237 @@ +"","y","trt","base","age","V4","subject","period","lbase","lage" +"1",5,"placebo",11,31,0,1,1,-0.756353788717556,0.114203695299265 +"2",3,"placebo",11,31,0,1,2,-0.756353788717556,0.114203695299265 +"3",3,"placebo",11,31,0,1,3,-0.756353788717556,0.114203695299265 +"4",3,"placebo",11,31,1,1,4,-0.756353788717556,0.114203695299265 +"5",3,"placebo",11,30,0,2,1,-0.756353788717556,0.0814138724762743 +"6",5,"placebo",11,30,0,2,2,-0.756353788717556,0.0814138724762743 +"7",3,"placebo",11,30,0,2,3,-0.756353788717556,0.0814138724762743 +"8",3,"placebo",11,30,1,2,4,-0.756353788717556,0.0814138724762743 +"9",2,"placebo",6,25,0,3,1,-1.36248959228787,-0.10090768431768 +"10",4,"placebo",6,25,0,3,2,-1.36248959228787,-0.10090768431768 +"11",0,"placebo",6,25,0,3,3,-1.36248959228787,-0.10090768431768 +"12",5,"placebo",6,25,1,3,4,-1.36248959228787,-0.10090768431768 +"13",4,"placebo",8,36,0,4,1,-1.07480751983609,0.263735429270229 +"14",4,"placebo",8,36,0,4,2,-1.07480751983609,0.263735429270229 +"15",1,"placebo",8,36,0,4,3,-1.07480751983609,0.263735429270229 +"16",4,"placebo",8,36,1,4,4,-1.07480751983609,0.263735429270229 +"17",7,"placebo",66,22,0,5,1,1.0354056805105,-0.228741055827565 +"18",18,"placebo",66,22,0,5,2,1.0354056805105,-0.228741055827565 +"19",9,"placebo",66,22,0,5,3,1.0354056805105,-0.228741055827565 +"20",21,"placebo",66,22,1,5,4,1.0354056805105,-0.228741055827565 +"21",5,"placebo",27,29,0,6,1,0.141587804488402,0.047512320800593 +"22",2,"placebo",27,29,0,6,2,0.141587804488402,0.047512320800593 +"23",8,"placebo",27,29,0,6,3,0.141587804488402,0.047512320800593 +"24",7,"placebo",27,29,1,6,4,0.141587804488402,0.047512320800593 +"25",6,"placebo",12,31,0,7,1,-0.669342411727926,0.114203695299265 +"26",4,"placebo",12,31,0,7,2,-0.669342411727926,0.114203695299265 +"27",0,"placebo",12,31,0,7,3,-0.669342411727926,0.114203695299265 +"28",2,"placebo",12,31,1,7,4,-0.669342411727926,0.114203695299265 +"29",40,"placebo",52,42,0,8,1,0.796994657065501,0.417886109097487 +"30",20,"placebo",52,42,0,8,2,0.796994657065501,0.417886109097487 +"31",21,"placebo",52,42,0,8,3,0.796994657065501,0.417886109097487 +"32",12,"placebo",52,42,1,8,4,0.796994657065501,0.417886109097487 +"33",5,"placebo",23,37,0,9,1,-0.018754845586777,0.291134403458343 +"34",6,"placebo",23,37,0,9,2,-0.018754845586777,0.291134403458343 +"35",6,"placebo",23,37,0,9,3,-0.018754845586777,0.291134403458343 +"36",5,"placebo",23,37,1,9,4,-0.018754845586777,0.291134403458343 +"37",14,"placebo",10,28,0,10,1,-0.851663968521881,0.0124210009893226 +"38",13,"placebo",10,28,0,10,2,-0.851663968521881,0.0124210009893226 +"39",6,"placebo",10,28,0,10,3,-0.851663968521881,0.0124210009893226 +"40",0,"placebo",10,28,1,10,4,-0.851663968521881,0.0124210009893226 +"41",26,"placebo",52,36,0,11,1,0.796994657065501,0.263735429270229 +"42",12,"placebo",52,36,0,11,2,0.796994657065501,0.263735429270229 +"43",6,"placebo",52,36,0,11,3,0.796994657065501,0.263735429270229 +"44",22,"placebo",52,36,1,11,4,0.796994657065501,0.263735429270229 +"45",12,"placebo",33,24,0,12,1,0.342258499950553,-0.141729678837935 +"46",6,"placebo",33,24,0,12,2,0.342258499950553,-0.141729678837935 +"47",8,"placebo",33,24,0,12,3,0.342258499950553,-0.141729678837935 +"48",4,"placebo",33,24,1,12,4,0.342258499950553,-0.141729678837935 +"49",4,"placebo",18,23,0,13,1,-0.263877303619762,-0.184289293256731 +"50",4,"placebo",18,23,0,13,2,-0.263877303619762,-0.184289293256731 +"51",6,"placebo",18,23,0,13,3,-0.263877303619762,-0.184289293256731 +"52",2,"placebo",18,23,1,13,4,-0.263877303619762,-0.184289293256731 +"53",7,"placebo",42,36,0,14,1,0.583420556767442,0.263735429270229 +"54",9,"placebo",42,36,0,14,2,0.583420556767442,0.263735429270229 +"55",12,"placebo",42,36,0,14,3,0.583420556767442,0.263735429270229 +"56",14,"placebo",42,36,1,14,4,0.583420556767442,0.263735429270229 +"57",16,"placebo",87,26,0,15,1,1.31165905713866,-0.061686971164399 +"58",24,"placebo",87,26,0,15,2,1.31165905713866,-0.061686971164399 +"59",10,"placebo",87,26,0,15,3,1.31165905713866,-0.061686971164399 +"60",9,"placebo",87,26,1,15,4,1.31165905713866,-0.061686971164399 +"61",11,"placebo",50,26,0,16,1,0.75777394391222,-0.061686971164399 +"62",0,"placebo",50,26,0,16,2,0.75777394391222,-0.061686971164399 +"63",0,"placebo",50,26,0,16,3,0.75777394391222,-0.061686971164399 +"64",5,"placebo",50,26,1,16,4,0.75777394391222,-0.061686971164399 +"65",0,"placebo",18,28,0,17,1,-0.263877303619762,0.0124210009893226 +"66",0,"placebo",18,28,0,17,2,-0.263877303619762,0.0124210009893226 +"67",3,"placebo",18,28,0,17,3,-0.263877303619762,0.0124210009893226 +"68",3,"placebo",18,28,1,17,4,-0.263877303619762,0.0124210009893226 +"69",37,"placebo",111,31,0,18,1,1.55528113979641,0.114203695299265 +"70",29,"placebo",111,31,0,18,2,1.55528113979641,0.114203695299265 +"71",28,"placebo",111,31,0,18,3,1.55528113979641,0.114203695299265 +"72",29,"placebo",111,31,1,18,4,1.55528113979641,0.114203695299265 +"73",3,"placebo",18,32,0,19,1,-0.263877303619762,0.145952393613845 +"74",5,"placebo",18,32,0,19,2,-0.263877303619762,0.145952393613845 +"75",2,"placebo",18,32,0,19,3,-0.263877303619762,0.145952393613845 +"76",5,"placebo",18,32,1,19,4,-0.263877303619762,0.145952393613845 +"77",3,"placebo",20,21,0,20,1,-0.158516787961936,-0.275261071462458 +"78",0,"placebo",20,21,0,20,2,-0.158516787961936,-0.275261071462458 +"79",6,"placebo",20,21,0,20,3,-0.158516787961936,-0.275261071462458 +"80",7,"placebo",20,21,1,20,4,-0.158516787961936,-0.275261071462458 +"81",3,"placebo",12,29,0,21,1,-0.669342411727926,0.047512320800593 +"82",4,"placebo",12,29,0,21,2,-0.669342411727926,0.047512320800593 +"83",3,"placebo",12,29,0,21,3,-0.669342411727926,0.047512320800593 +"84",4,"placebo",12,29,1,21,4,-0.669342411727926,0.047512320800593 +"85",3,"placebo",9,21,0,22,1,-0.957024484179707,-0.275261071462458 +"86",4,"placebo",9,21,0,22,2,-0.957024484179707,-0.275261071462458 +"87",3,"placebo",9,21,0,22,3,-0.957024484179707,-0.275261071462458 +"88",4,"placebo",9,21,1,22,4,-0.957024484179707,-0.275261071462458 +"89",2,"placebo",17,32,0,23,1,-0.321035717459711,0.145952393613845 +"90",3,"placebo",17,32,0,23,2,-0.321035717459711,0.145952393613845 +"91",3,"placebo",17,32,0,23,3,-0.321035717459711,0.145952393613845 +"92",5,"placebo",17,32,1,23,4,-0.321035717459711,0.145952393613845 +"93",8,"placebo",28,25,0,24,1,0.177955448659277,-0.10090768431768 +"94",12,"placebo",28,25,0,24,2,0.177955448659277,-0.10090768431768 +"95",2,"placebo",28,25,0,24,3,0.177955448659277,-0.10090768431768 +"96",8,"placebo",28,25,1,24,4,0.177955448659277,-0.10090768431768 +"97",18,"placebo",55,30,0,25,1,0.853084123716544,0.0814138724762743 +"98",24,"placebo",55,30,0,25,2,0.853084123716544,0.0814138724762743 +"99",76,"placebo",55,30,0,25,3,0.853084123716544,0.0814138724762743 +"100",25,"placebo",55,30,1,25,4,0.853084123716544,0.0814138724762743 +"101",2,"placebo",9,40,0,26,1,-0.957024484179707,0.369095944928055 +"102",1,"placebo",9,40,0,26,2,-0.957024484179707,0.369095944928055 +"103",2,"placebo",9,40,0,26,3,-0.957024484179707,0.369095944928055 +"104",1,"placebo",9,40,1,26,4,-0.957024484179707,0.369095944928055 +"105",3,"placebo",10,19,0,27,1,-0.851663968521881,-0.375344530019441 +"106",1,"placebo",10,19,0,27,2,-0.851663968521881,-0.375344530019441 +"107",4,"placebo",10,19,0,27,3,-0.851663968521881,-0.375344530019441 +"108",2,"placebo",10,19,1,27,4,-0.851663968521881,-0.375344530019441 +"109",13,"placebo",47,22,0,28,1,0.695898540194132,-0.228741055827565 +"110",15,"placebo",47,22,0,28,2,0.695898540194132,-0.228741055827565 +"111",13,"placebo",47,22,0,28,3,0.695898540194132,-0.228741055827565 +"112",12,"placebo",47,22,1,28,4,0.695898540194132,-0.228741055827565 +"113",11,"progabide",76,18,0,29,1,1.1764842787704,-0.429411751289717 +"114",14,"progabide",76,18,0,29,2,1.1764842787704,-0.429411751289717 +"115",9,"progabide",76,18,0,29,3,1.1764842787704,-0.429411751289717 +"116",8,"progabide",76,18,1,29,4,1.1764842787704,-0.429411751289717 +"117",8,"progabide",38,32,0,30,1,0.483337098210459,0.145952393613845 +"118",7,"progabide",38,32,0,30,2,0.483337098210459,0.145952393613845 +"119",9,"progabide",38,32,0,30,3,0.483337098210459,0.145952393613845 +"120",4,"progabide",38,32,1,30,4,0.483337098210459,0.145952393613845 +"121",0,"progabide",19,20,0,31,1,-0.209810082349486,-0.32405123563189 +"122",4,"progabide",19,20,0,31,2,-0.209810082349486,-0.32405123563189 +"123",3,"progabide",19,20,0,31,3,-0.209810082349486,-0.32405123563189 +"124",0,"progabide",19,20,1,31,4,-0.209810082349486,-0.32405123563189 +"125",3,"progabide",10,30,0,32,1,-0.851663968521881,0.0814138724762743 +"126",6,"progabide",10,30,0,32,2,-0.851663968521881,0.0814138724762743 +"127",1,"progabide",10,30,0,32,3,-0.851663968521881,0.0814138724762743 +"128",3,"progabide",10,30,1,32,4,-0.851663968521881,0.0814138724762743 +"129",2,"progabide",19,18,0,33,1,-0.209810082349486,-0.429411751289717 +"130",6,"progabide",19,18,0,33,2,-0.209810082349486,-0.429411751289717 +"131",7,"progabide",19,18,0,33,3,-0.209810082349486,-0.429411751289717 +"132",4,"progabide",19,18,1,33,4,-0.209810082349486,-0.429411751289717 +"133",4,"progabide",24,24,0,34,1,0.0238047688320189,-0.141729678837935 +"134",3,"progabide",24,24,0,34,2,0.0238047688320189,-0.141729678837935 +"135",1,"progabide",24,24,0,34,3,0.0238047688320189,-0.141729678837935 +"136",3,"progabide",24,24,1,34,4,0.0238047688320189,-0.141729678837935 +"137",22,"progabide",31,30,0,35,1,0.279738142969219,0.0814138724762743 +"138",17,"progabide",31,30,0,35,2,0.279738142969219,0.0814138724762743 +"139",19,"progabide",31,30,0,35,3,0.279738142969219,0.0814138724762743 +"140",16,"progabide",31,30,1,35,4,0.279738142969219,0.0814138724762743 +"141",5,"progabide",14,35,0,36,1,-0.515191731900668,0.235564552303532 +"142",4,"progabide",14,35,0,36,2,-0.515191731900668,0.235564552303532 +"143",7,"progabide",14,35,0,36,3,-0.515191731900668,0.235564552303532 +"144",4,"progabide",14,35,1,36,4,-0.515191731900668,0.235564552303532 +"145",2,"progabide",11,27,0,37,1,-0.756353788717556,-0.023946643181552 +"146",4,"progabide",11,27,0,37,2,-0.756353788717556,-0.023946643181552 +"147",0,"progabide",11,27,0,37,3,-0.756353788717556,-0.023946643181552 +"148",4,"progabide",11,27,1,37,4,-0.756353788717556,-0.023946643181552 +"149",3,"progabide",67,20,0,38,1,1.05044355787504,-0.32405123563189 +"150",7,"progabide",67,20,0,38,2,1.05044355787504,-0.32405123563189 +"151",7,"progabide",67,20,0,38,3,1.05044355787504,-0.32405123563189 +"152",7,"progabide",67,20,1,38,4,1.05044355787504,-0.32405123563189 +"153",4,"progabide",41,22,0,39,1,0.559323005188381,-0.228741055827565 +"154",18,"progabide",41,22,0,39,2,0.559323005188381,-0.228741055827565 +"155",2,"progabide",41,22,0,39,3,0.559323005188381,-0.228741055827565 +"156",5,"progabide",41,22,1,39,4,0.559323005188381,-0.228741055827565 +"157",2,"progabide",7,28,0,40,1,-1.20833891246061,0.0124210009893226 +"158",1,"progabide",7,28,0,40,2,-1.20833891246061,0.0124210009893226 +"159",1,"progabide",7,28,0,40,3,-1.20833891246061,0.0124210009893226 +"160",0,"progabide",7,28,1,40,4,-1.20833891246061,0.0124210009893226 +"161",0,"progabide",22,23,0,41,1,-0.0632066081576108,-0.184289293256731 +"162",2,"progabide",22,23,0,41,2,-0.0632066081576108,-0.184289293256731 +"163",4,"progabide",22,23,0,41,3,-0.0632066081576108,-0.184289293256731 +"164",0,"progabide",22,23,1,41,4,-0.0632066081576108,-0.184289293256731 +"165",5,"progabide",13,40,0,42,1,-0.58929970405439,0.369095944928055 +"166",4,"progabide",13,40,0,42,2,-0.58929970405439,0.369095944928055 +"167",0,"progabide",13,40,0,42,3,-0.58929970405439,0.369095944928055 +"168",3,"progabide",13,40,1,42,4,-0.58929970405439,0.369095944928055 +"169",11,"progabide",46,33,0,43,1,0.674392334973168,0.176724052280599 +"170",14,"progabide",46,33,0,43,2,0.674392334973168,0.176724052280599 +"171",25,"progabide",46,33,0,43,3,0.674392334973168,0.176724052280599 +"172",15,"progabide",46,33,1,43,4,0.674392334973168,0.176724052280599 +"173",10,"progabide",36,21,0,44,1,0.429269876940183,-0.275261071462458 +"174",5,"progabide",36,21,0,44,2,0.429269876940183,-0.275261071462458 +"175",3,"progabide",36,21,0,44,3,0.429269876940183,-0.275261071462458 +"176",8,"progabide",36,21,1,44,4,0.429269876940183,-0.275261071462458 +"177",19,"progabide",38,35,0,45,1,0.483337098210459,0.235564552303532 +"178",7,"progabide",38,35,0,45,2,0.483337098210459,0.235564552303532 +"179",6,"progabide",38,35,0,45,3,0.483337098210459,0.235564552303532 +"180",7,"progabide",38,35,1,45,4,0.483337098210459,0.235564552303532 +"181",1,"progabide",7,25,0,46,1,-1.20833891246061,-0.10090768431768 +"182",1,"progabide",7,25,0,46,2,-1.20833891246061,-0.10090768431768 +"183",2,"progabide",7,25,0,46,3,-1.20833891246061,-0.10090768431768 +"184",3,"progabide",7,25,1,46,4,-1.20833891246061,-0.10090768431768 +"185",6,"progabide",36,26,0,47,1,0.429269876940183,-0.061686971164399 +"186",10,"progabide",36,26,0,47,2,0.429269876940183,-0.061686971164399 +"187",8,"progabide",36,26,0,47,3,0.429269876940183,-0.061686971164399 +"188",8,"progabide",36,26,1,47,4,0.429269876940183,-0.061686971164399 +"189",2,"progabide",11,25,0,48,1,-0.756353788717556,-0.10090768431768 +"190",1,"progabide",11,25,0,48,2,-0.756353788717556,-0.10090768431768 +"191",0,"progabide",11,25,0,48,3,-0.756353788717556,-0.10090768431768 +"192",0,"progabide",11,25,1,48,4,-0.756353788717556,-0.10090768431768 +"193",102,"progabide",151,22,0,49,1,1.863030775299,-0.228741055827565 +"194",65,"progabide",151,22,0,49,2,1.863030775299,-0.228741055827565 +"195",72,"progabide",151,22,0,49,3,1.863030775299,-0.228741055827565 +"196",63,"progabide",151,22,1,49,4,1.863030775299,-0.228741055827565 +"197",4,"progabide",22,32,0,50,1,-0.0632066081576108,0.145952393613845 +"198",3,"progabide",22,32,0,50,2,-0.0632066081576108,0.145952393613845 +"199",2,"progabide",22,32,0,50,3,-0.0632066081576108,0.145952393613845 +"200",4,"progabide",22,32,1,50,4,-0.0632066081576108,0.145952393613845 +"201",8,"progabide",41,25,0,51,1,0.559323005188381,-0.10090768431768 +"202",6,"progabide",41,25,0,51,2,0.559323005188381,-0.10090768431768 +"203",5,"progabide",41,25,0,51,3,0.559323005188381,-0.10090768431768 +"204",7,"progabide",41,25,1,51,4,0.559323005188381,-0.10090768431768 +"205",1,"progabide",32,35,0,52,1,0.3114868412838,0.235564552303532 +"206",3,"progabide",32,35,0,52,2,0.3114868412838,0.235564552303532 +"207",1,"progabide",32,35,0,52,3,0.3114868412838,0.235564552303532 +"208",5,"progabide",32,35,1,52,4,0.3114868412838,0.235564552303532 +"209",18,"progabide",56,21,0,53,1,0.871102629219222,-0.275261071462458 +"210",11,"progabide",56,21,0,53,2,0.871102629219222,-0.275261071462458 +"211",28,"progabide",56,21,0,53,3,0.871102629219222,-0.275261071462458 +"212",13,"progabide",56,21,1,53,4,0.871102629219222,-0.275261071462458 +"213",6,"progabide",24,41,0,54,1,0.0238047688320189,0.393788557518427 +"214",3,"progabide",24,41,0,54,2,0.0238047688320189,0.393788557518427 +"215",4,"progabide",24,41,0,54,3,0.0238047688320189,0.393788557518427 +"216",0,"progabide",24,41,1,54,4,0.0238047688320189,0.393788557518427 +"217",3,"progabide",16,32,0,55,1,-0.381660339276146,0.145952393613845 +"218",5,"progabide",16,32,0,55,2,-0.381660339276146,0.145952393613845 +"219",4,"progabide",16,32,0,55,3,-0.381660339276146,0.145952393613845 +"220",3,"progabide",16,32,1,55,4,-0.381660339276146,0.145952393613845 +"221",1,"progabide",22,26,0,56,1,-0.0632066081576108,-0.061686971164399 +"222",23,"progabide",22,26,0,56,2,-0.0632066081576108,-0.061686971164399 +"223",19,"progabide",22,26,0,56,3,-0.0632066081576108,-0.061686971164399 +"224",8,"progabide",22,26,1,56,4,-0.0632066081576108,-0.061686971164399 +"225",2,"progabide",25,21,0,57,1,0.0646267633522741,-0.275261071462458 +"226",3,"progabide",25,21,0,57,2,0.0646267633522741,-0.275261071462458 +"227",0,"progabide",25,21,0,57,3,0.0646267633522741,-0.275261071462458 +"228",1,"progabide",25,21,1,57,4,0.0646267633522741,-0.275261071462458 +"229",0,"progabide",13,36,0,58,1,-0.58929970405439,0.263735429270229 +"230",0,"progabide",13,36,0,58,2,-0.58929970405439,0.263735429270229 +"231",0,"progabide",13,36,0,58,3,-0.58929970405439,0.263735429270229 +"232",0,"progabide",13,36,1,58,4,-0.58929970405439,0.263735429270229 +"233",1,"progabide",12,37,0,59,1,-0.669342411727926,0.291134403458343 +"234",4,"progabide",12,37,0,59,2,-0.669342411727926,0.291134403458343 +"235",3,"progabide",12,37,0,59,3,-0.669342411727926,0.291134403458343 +"236",2,"progabide",12,37,1,59,4,-0.669342411727926,0.291134403458343 diff --git a/statsmodels/genmod/tests/results/gee_generate_tests.py b/statsmodels/genmod/tests/results/gee_generate_tests.py new file mode 100644 index 0000000..b08ef13 --- /dev/null +++ b/statsmodels/genmod/tests/results/gee_generate_tests.py @@ -0,0 +1,239 @@ +from statsmodels.compat.python import range +import numpy as np +from scipy.stats.distributions import norm + +def generate_logistic(): + + # Number of clusters + nclust = 100 + + # Regression coefficients + beta = np.array([1,-2,1], dtype=np.float64) + + ## Covariate correlations + r = 0.4 + + ## Cluster effects of covariates + rx = 0.5 + + ## Within-cluster outcome dependence + re = 0.3 + + p = len(beta) + + OUT = open("gee_logistic_1.csv", "w") + + for i in range(nclust): + + n = np.random.randint(3, 6) # Cluster size + + x = np.random.normal(size=(n,p)) + x = rx*np.random.normal() + np.sqrt(1-rx**2)*x + x[:,2] = r*x[:,1] + np.sqrt(1-r**2)*x[:,2] + pr = 1/(1+np.exp(-np.dot(x, beta))) + z = re*np.random.normal() +\ + np.sqrt(1-re**2)*np.random.normal(size=n) + u = norm.cdf(z) + y = 1*(u < pr) + + for j in range(n): + OUT.write("%d,%d," % (i, y[j])) + OUT.write(",".join(["%.3f" % b for b in x[j,:]]) + "\n") + + OUT.close() + + + + +def generate_linear(): + + # Number of clusters + nclust = 100 + + # Regression coefficients + beta = np.array([1,-2,1], dtype=np.float64) + + ## Within cluster covariate correlations + r = 0.4 + + ## Between cluster covariate effects + rx = 0.5 + + ## Within-cluster outcome dependence + re = 0.3 + + p = len(beta) + + OUT = open("gee_linear_1.csv", "w") + + for i in range(nclust): + + n = np.random.randint(3, 6) # Cluster size + + x = np.random.normal(size=(n,p)) + x = rx*np.random.normal() + np.sqrt(1-rx**2)*x + x[:,2] = r*x[:,1] + np.sqrt(1-r**2)*x[:,2] + e = np.sqrt(1-re**2)*np.random.normal(size=n) +\ + re*np.random.normal() + y = np.dot(x, beta) + np.random.normal(size=n) + + for j in range(n): + OUT.write("%d,%d," % (i, y[j])) + OUT.write(",".join(["%.3f" % b for b in x[j,:]]) + "\n") + + OUT.close() + + + +def generate_nested_linear(): + + # Number of clusters (clusters have 10 values, partitioned into 2 + # subclusters of size 5). + nclust = 200 + + # Regression coefficients + beta = np.array([1,-2,1], dtype=np.float64) + + ## Top level cluster variance component + v1 = 1 + + ## Subcluster variance component + v2 = 0.5 + + ## Error variance component + v3 = 1.5 + + p = len(beta) + + OUT = open("gee_nested_linear_1.csv", "w") + + for i in range(nclust): + + x = np.random.normal(size=(10,p)) + y = np.dot(x, beta) + + y += np.sqrt(v1)*np.random.normal() + y[0:5] += np.sqrt(v2)*np.random.normal() + y[5:10] += np.sqrt(v2)*np.random.normal() + y += np.sqrt(v3)*np.random.normal(size=10) + + for j in range(10): + OUT.write("%d,%.3f," % (i, y[j])) + OUT.write(",".join(["%.3f" % b for b in x[j,:]]) + "\n") + + OUT.close() + + + +def generate_ordinal(): + + ## Regression coefficients + beta = np.zeros(5, dtype=np.float64) + beta[2] = 1 + beta[4] = -1 + + rz = 0.5 + + OUT = open("gee_ordinal_1.csv", "w") + + for i in range(200): + + n = np.random.randint(3, 6) # Cluster size + + x = np.random.normal(size=(n,5)) + for j in range(5): + x[:,j] += np.random.normal() + pr = np.dot(x, beta) + pr = np.array([1,0,-0.5]) + pr[:,None] + pr = 1 / (1 + np.exp(-pr)) + + z = rz*np.random.normal() +\ + np.sqrt(1-rz**2)*np.random.normal(size=n) + u = norm.cdf(z) + + y = (u[:,None] > pr).sum(1) + + for j in range(n): + OUT.write("%d,%d," % (i, y[j])) + OUT.write(",".join(["%.3f" % b for b in x[j,:]]) + "\n") + + OUT.close() + + +def generate_nominal(): + + ## Regression coefficients + beta1 = np.r_[0.5, 0.5] + beta2 = np.r_[-1, -0.5] + p = len(beta1) + + rz = 0.5 + + OUT = open("gee_nominal_1.csv", "w") + + for i in range(200): + + n = np.random.randint(3, 6) # Cluster size + + x = np.random.normal(size=(n,p)) + x[:,0] = 1 + for j in range(1,x.shape[1]): + x[:,j] += np.random.normal() + pr1 = np.exp(np.dot(x, beta1))[:,None] + pr2 = np.exp(np.dot(x, beta2))[:,None] + den = 1 + pr1 + pr2 + pr = np.hstack((pr1/den, pr2/den, 1/den)) + cpr = np.cumsum(pr, 1) + + z = rz*np.random.normal() +\ + np.sqrt(1-rz**2)*np.random.normal(size=n) + u = norm.cdf(z) + + y = (u[:,None] > cpr).sum(1) + + for j in range(n): + OUT.write("%d,%d," % (i, y[j])) + OUT.write(",".join(["%.3f" % b for b in x[j,:]]) + "\n") + + OUT.close() + + +def generate_poisson(): + + ## Regression coefficients + beta = np.zeros(5, dtype=np.float64) + beta[2] = 0.5 + beta[4] = -0.5 + + nclust = 100 + + rz = 0.5 + + OUT = open("gee_poisson_1.csv", "w") + + for i in range(nclust): + + n = np.random.randint(3, 6) # Cluster size + + x = np.random.normal(size=(n,5)) + for j in range(5): + x[:,j] += np.random.normal() + lp = np.dot(x, beta) + E = np.exp(lp) + y = [np.random.poisson(e) for e in E] + y = np.array(y) + + for j in range(n): + OUT.write("%d,%d," % (i, y[j])) + OUT.write(",".join(["%.3f" % b for b in x[j,:]]) + "\n") + + OUT.close() + + +if __name__ == '__main__': + #generate_logistic() + #generate_linear() + #generate_ordinal() + #generate_poisson() + generate_nested_linear() + #generate_nominal() diff --git a/statsmodels/genmod/tests/results/gee_linear_1.csv b/statsmodels/genmod/tests/results/gee_linear_1.csv new file mode 100644 index 0000000..58eafcf --- /dev/null +++ b/statsmodels/genmod/tests/results/gee_linear_1.csv @@ -0,0 +1,413 @@ +0,-3,0.030,2.837,1.190 +0,0,0.214,0.523,-0.125 +0,1,1.084,-0.411,-0.038 +0,2,-0.826,-0.483,1.285 +1,-1,-1.305,1.182,1.151 +1,4,0.216,-3.028,-2.207 +1,0,-1.650,-0.704,0.738 +1,-1,-0.409,-0.934,-1.236 +1,3,-0.230,-2.591,-1.539 +2,0,-0.155,-0.792,-1.291 +2,0,-0.284,-1.262,-1.525 +2,-3,-1.263,0.283,-2.494 +2,0,-0.645,-0.916,-1.378 +3,0,0.350,1.186,2.401 +3,0,1.813,2.413,2.090 +3,-3,0.394,3.115,1.293 +3,0,1.141,1.649,1.440 +3,1,1.542,0.308,0.832 +4,-2,-0.341,0.759,-0.684 +4,-3,-0.751,0.553,0.097 +4,-2,-0.563,1.430,0.164 +4,2,-0.903,-0.629,0.476 +5,0,0.962,1.113,0.563 +5,0,-0.073,0.521,0.169 +5,0,1.054,1.206,1.446 +6,3,1.074,-0.240,0.064 +6,0,-1.210,-1.041,-0.241 +6,0,-0.143,0.085,1.459 +6,2,0.846,0.933,2.384 +6,0,-0.228,0.009,0.451 +7,1,-0.382,-0.383,0.713 +7,3,3.025,0.286,-0.539 +7,0,0.949,0.385,0.780 +7,-3,-0.606,0.406,-0.928 +7,-2,-0.328,1.432,1.849 +8,0,1.428,1.485,0.621 +8,0,-1.557,0.607,1.012 +8,0,-0.210,0.130,0.120 +9,6,2.767,-0.873,1.314 +9,-3,-0.680,1.671,0.937 +9,0,1.614,1.696,1.856 +9,0,-0.510,1.076,1.843 +10,-3,-0.339,1.619,0.494 +10,0,1.844,2.027,1.619 +10,0,-0.430,-0.227,1.028 +10,0,-0.300,0.389,0.958 +10,0,0.339,0.174,1.104 +11,1,0.152,-0.426,-0.498 +11,0,0.207,-1.311,-0.869 +11,1,0.277,0.491,0.444 +11,0,0.913,-0.860,-0.407 +11,-3,-0.470,1.637,0.263 +12,4,0.215,-2.830,-0.807 +12,0,-0.780,-0.573,0.247 +12,3,1.014,0.258,1.297 +13,2,-0.630,-1.532,-0.569 +13,0,-0.253,1.022,-0.149 +13,-1,-1.063,-0.902,0.145 +13,0,-0.564,0.636,1.333 +14,3,-0.382,-0.768,1.064 +14,2,0.096,-0.177,1.600 +14,0,-0.094,0.339,0.846 +15,0,0.431,0.656,1.432 +15,0,-0.219,0.304,0.954 +15,-2,0.425,1.777,1.273 +15,2,1.172,0.220,0.089 +15,0,0.649,0.586,1.072 +16,-3,0.263,1.529,0.457 +16,-1,-2.094,-0.797,-0.536 +16,0,-2.000,-1.162,-0.823 +17,0,0.096,1.306,1.975 +17,0,-0.543,0.060,0.247 +17,-1,0.249,0.388,-0.915 +17,1,1.909,0.022,0.778 +17,2,0.517,-0.845,0.599 +18,0,0.606,0.917,1.788 +18,2,1.910,0.660,1.102 +18,-1,0.285,1.546,1.722 +18,0,0.375,1.632,2.082 +19,-3,-1.261,0.509,0.322 +19,0,-1.008,-0.351,-1.014 +19,0,-0.837,-0.189,0.071 +19,0,-0.440,0.207,-1.393 +19,0,-1.210,0.461,0.325 +20,1,0.840,-0.179,0.627 +20,0,-0.470,-1.252,-1.420 +20,0,0.169,1.262,1.314 +20,-2,-1.128,-0.565,-1.748 +20,1,0.329,-0.674,-1.374 +21,-2,-0.477,1.216,1.407 +21,-3,-0.254,1.130,0.329 +21,-1,-0.471,0.519,-0.116 +21,-2,-0.692,-1.170,-2.637 +21,2,0.321,-1.079,-1.050 +22,-1,-0.808,1.420,1.975 +22,-2,-0.822,0.870,0.565 +22,0,0.039,0.747,1.961 +22,0,1.452,2.245,2.003 +23,1,-0.599,-1.084,-0.906 +23,-4,-1.176,-0.431,-1.107 +23,-5,-1.518,2.511,1.327 +24,0,0.217,-0.565,0.004 +24,0,1.395,-0.311,0.630 +24,4,-0.196,-1.387,0.350 +24,1,0.723,-1.214,-0.273 +24,0,0.377,0.069,0.822 +25,0,0.002,0.114,-0.053 +25,0,0.191,-0.474,-0.655 +25,-1,0.058,-0.215,-0.611 +25,-2,0.309,0.728,-0.642 +25,0,-0.819,0.013,0.800 +26,0,-0.188,-0.908,-0.995 +26,0,0.632,-0.243,-0.651 +26,0,-0.873,-0.270,-0.045 +26,-2,-1.268,-0.505,0.548 +27,-1,0.926,0.719,0.082 +27,0,1.415,-0.095,-0.181 +27,0,-0.424,1.147,1.432 +27,0,0.557,-0.024,-0.682 +28,0,-1.155,-1.115,-1.264 +28,-3,-2.139,0.056,-1.051 +28,-1,-0.892,-1.125,-2.081 +29,2,0.414,-1.407,-0.632 +29,0,-0.365,1.160,1.398 +29,4,1.788,-1.631,-2.412 +30,1,1.283,0.915,1.572 +30,0,0.090,0.321,0.886 +30,5,0.817,-1.633,-0.517 +30,-1,-0.014,0.602,0.363 +31,0,0.865,-0.600,0.306 +31,-1,-0.789,-0.110,-1.439 +31,-3,-2.297,0.289,-0.876 +32,-3,-1.574,0.433,0.236 +32,2,0.664,-1.547,-1.349 +32,0,-0.287,-0.000,-1.621 +33,1,0.281,-0.985,-0.188 +33,-1,-0.458,-0.309,-1.853 +33,-4,-0.953,1.130,-0.849 +33,0,0.725,-0.502,-1.524 +33,1,0.428,-0.217,0.747 +34,0,0.451,0.712,1.303 +34,0,1.121,0.516,-0.490 +34,-2,-1.127,0.490,0.560 +34,2,1.987,0.224,1.993 +34,-1,0.049,0.924,0.595 +35,-3,-0.355,0.617,-0.064 +35,-1,-1.629,-1.847,-1.783 +35,-1,-1.245,0.209,-0.647 +35,0,-0.573,-1.328,-2.419 +35,0,0.896,-0.164,-0.993 +36,-2,-0.356,0.703,0.358 +36,-1,-0.413,1.307,1.805 +36,0,0.811,1.690,0.755 +37,-2,-0.536,0.065,-1.342 +37,0,-0.033,-1.463,-1.764 +37,0,-0.588,-1.120,-1.813 +37,1,0.107,-1.175,-1.241 +38,-4,-2.420,1.307,0.899 +38,0,0.273,1.218,1.753 +38,2,0.605,-0.480,0.806 +39,2,-0.803,-1.301,-0.213 +39,3,0.736,0.496,0.833 +39,0,1.044,1.258,1.102 +39,-1,-1.288,0.081,0.303 +40,2,-0.123,-1.519,0.015 +40,3,-0.487,-1.743,-0.130 +40,-2,-0.777,0.143,-1.143 +41,-1,1.476,1.017,0.325 +41,0,1.358,1.273,1.328 +41,0,1.167,0.155,-0.395 +41,0,-1.567,-0.674,0.715 +41,0,-0.216,1.217,0.784 +42,-1,-0.762,1.428,1.829 +42,0,-0.549,0.364,-0.738 +42,-2,0.164,0.447,-0.534 +42,0,0.338,1.093,1.442 +42,-2,-0.514,1.260,0.291 +43,1,0.942,1.290,1.820 +43,-1,0.774,2.004,1.735 +43,1,1.046,0.652,0.526 +43,0,1.307,1.598,0.872 +43,-1,1.467,0.707,-0.026 +44,-1,1.162,1.313,0.943 +44,-2,0.009,0.918,0.089 +44,1,2.069,0.379,0.519 +44,0,0.863,0.691,0.919 +45,2,-0.155,-1.572,-0.283 +45,0,-0.784,-0.656,0.537 +45,1,-0.559,-1.519,-1.429 +45,-5,0.230,1.115,-2.844 +46,-4,-1.044,0.566,-0.475 +46,1,-0.231,-1.166,-0.224 +46,0,-1.441,-0.631,-1.108 +47,0,1.403,-0.058,-0.875 +47,-4,0.545,1.817,-0.189 +47,0,-0.076,-0.892,-0.671 +47,1,1.715,-0.178,0.088 +48,1,-0.405,0.090,0.226 +48,-2,0.345,1.131,0.465 +48,-1,-0.115,0.348,0.250 +48,-1,-0.126,0.777,1.620 +48,0,0.107,0.498,1.996 +49,1,0.551,-1.173,-0.583 +49,1,0.606,-0.379,0.292 +49,0,0.542,-0.135,-0.542 +50,0,0.550,1.276,2.690 +50,0,0.414,0.782,-0.381 +50,2,-0.905,-1.125,0.441 +51,-2,0.214,1.650,-0.455 +51,3,-0.268,-0.910,0.755 +51,0,-0.392,-0.961,0.343 +52,1,0.528,-0.212,1.034 +52,0,1.091,0.156,1.679 +52,0,-0.280,0.010,0.038 +52,0,1.452,0.047,-2.182 +52,-4,-1.112,1.696,0.724 +53,3,0.395,-1.497,-0.198 +53,0,-0.437,-1.298,-0.868 +53,0,-0.246,0.399,-0.677 +54,0,0.226,0.943,1.278 +54,0,0.346,1.485,2.516 +54,-2,1.086,0.426,-0.997 +54,-1,0.300,1.967,1.165 +55,1,0.316,0.290,1.284 +55,2,1.055,-0.146,1.621 +55,3,2.087,-0.294,0.856 +55,0,1.554,1.749,1.729 +55,-2,-1.472,0.792,0.124 +56,0,-0.678,-0.846,-1.456 +56,3,-0.250,-2.661,-1.876 +56,0,-1.789,-2.278,-2.426 +56,0,-0.890,-1.529,-3.279 +57,1,1.453,-0.338,0.265 +57,-6,0.458,2.942,0.473 +57,0,-0.744,1.249,1.627 +58,-2,-0.457,-1.006,-2.610 +58,3,0.986,0.240,1.001 +58,0,0.727,0.053,-0.660 +58,0,0.675,0.629,1.241 +59,-1,0.725,1.056,0.545 +59,0,-0.430,-1.142,-1.627 +59,-1,-0.288,0.160,-0.374 +59,2,0.259,-1.254,-0.887 +60,1,1.664,0.919,0.558 +60,-1,0.204,0.769,0.434 +60,2,0.428,-1.369,-0.632 +60,2,1.194,-0.175,1.845 +60,-3,-0.381,0.040,-1.164 +61,-1,0.378,0.804,0.288 +61,1,0.674,0.768,-0.066 +61,1,0.271,-0.245,0.306 +61,2,1.339,0.671,0.507 +61,0,-0.856,-0.147,-0.194 +62,-2,1.235,2.274,0.918 +62,1,0.414,0.227,1.627 +62,3,1.485,-0.494,1.073 +63,-1,0.041,1.734,2.183 +63,0,1.383,1.062,0.384 +63,-3,1.128,2.072,1.542 +63,-4,-0.697,2.083,1.369 +63,0,-0.080,0.840,0.486 +64,-1,0.691,1.127,0.366 +64,0,1.849,1.202,1.457 +64,-2,0.182,1.558,0.885 +64,0,0.712,1.050,1.855 +65,0,0.787,0.196,-0.326 +65,0,1.520,0.684,-0.302 +65,0,0.709,1.309,1.767 +65,0,0.619,0.483,-0.051 +65,0,1.224,1.328,0.898 +66,3,-0.928,-0.762,3.085 +66,1,0.339,0.241,1.159 +66,-2,0.405,1.454,-0.272 +67,0,-0.231,1.379,0.341 +67,1,0.316,1.550,2.271 +67,1,0.880,-1.143,-0.809 +67,2,0.445,0.272,1.186 +67,0,0.712,1.258,2.381 +68,1,0.007,-2.005,-2.135 +68,0,1.204,-0.065,-0.255 +68,-1,-0.529,-0.272,-1.790 +69,-2,-0.486,0.640,0.361 +69,-1,-0.549,0.306,-0.522 +69,0,1.355,1.118,0.480 +69,0,0.558,0.571,-0.165 +69,1,0.488,-0.009,1.331 +70,0,0.285,1.218,1.947 +70,-1,1.566,2.147,0.384 +70,-1,-1.698,0.064,0.873 +70,3,1.442,-0.169,1.002 +70,0,-0.196,0.827,1.501 +71,0,-0.046,0.113,1.065 +71,-4,-0.866,1.140,-0.054 +71,2,-0.777,-0.935,-0.167 +71,-1,-1.353,-0.654,-1.548 +72,0,-0.499,-0.748,-0.986 +72,-2,-1.583,-0.584,-2.184 +72,0,-1.698,-1.912,-1.649 +72,0,-2.409,-1.761,-1.848 +72,3,0.015,-2.776,-1.420 +73,0,0.579,0.593,1.584 +73,2,-0.009,-0.164,0.314 +73,0,0.971,-0.488,-0.069 +73,-1,0.782,0.446,-0.328 +74,0,-0.706,-0.964,-0.379 +74,-2,-0.897,2.142,1.693 +74,-3,-1.562,1.000,-0.210 +74,1,0.630,-0.975,-1.183 +74,0,0.445,0.076,-0.676 +75,0,-0.190,-0.239,-0.799 +75,0,-0.198,0.826,1.873 +75,-1,0.900,-0.370,0.194 +75,-1,1.245,1.361,1.360 +76,0,0.253,-0.019,1.097 +76,1,0.076,-1.600,-0.615 +76,-1,0.771,0.042,-1.269 +76,-1,-0.634,-0.580,-0.778 +76,-1,-1.742,-0.000,0.937 +77,1,0.533,0.439,1.512 +77,0,-0.161,-0.331,-0.430 +77,0,-1.033,0.073,-0.141 +77,1,-0.976,-0.934,-0.484 +78,0,0.831,0.385,-0.538 +78,-4,0.176,2.884,0.506 +78,-1,0.980,0.640,0.036 +78,1,0.771,0.702,1.070 +78,0,-0.406,0.138,-0.376 +79,-2,-2.304,-1.307,-1.823 +79,0,-0.500,0.018,0.130 +79,1,-1.185,-1.094,-1.262 +79,4,2.031,-1.344,-0.421 +79,0,-0.329,-0.360,0.900 +80,-1,-0.964,1.187,-0.181 +80,3,0.444,-0.574,-1.109 +80,1,0.357,-0.269,0.200 +81,0,0.441,1.130,1.282 +81,-1,1.443,1.393,0.687 +81,-4,-0.284,2.689,0.848 +81,2,0.093,0.346,1.788 +82,-1,-0.661,0.538,0.535 +82,-2,-0.162,0.776,0.936 +82,-1,-0.274,1.029,-0.684 +82,2,-0.487,-1.635,-1.420 +83,-1,-0.480,-0.213,-0.373 +83,-2,0.600,1.874,0.448 +83,2,2.415,0.998,1.735 +83,1,-0.062,0.268,0.136 +83,-3,-1.188,1.518,0.620 +84,-1,-1.609,-0.534,-0.791 +84,-1,-0.727,0.570,0.091 +84,-2,-1.016,0.001,-1.141 +84,-2,-1.262,0.819,0.160 +85,0,0.101,-0.739,-1.617 +85,0,-1.203,-0.835,-0.877 +85,-1,0.571,0.594,-0.749 +86,-3,-0.481,0.282,-2.499 +86,-4,-1.516,1.115,-0.276 +86,-3,-0.876,0.095,-1.235 +86,2,0.461,-0.927,0.063 +86,0,-1.297,-1.270,-0.653 +87,0,1.213,-0.671,-1.188 +87,-2,-0.086,0.311,-0.830 +87,1,0.273,-0.442,0.548 +88,0,0.106,-0.039,0.054 +88,-1,0.907,1.242,0.707 +88,-1,-0.807,0.906,1.002 +88,0,0.467,0.728,0.776 +88,-5,-0.573,1.302,0.277 +89,-1,-1.312,-0.319,-1.173 +89,1,0.487,0.399,1.021 +89,0,0.690,0.778,-0.113 +89,-1,-1.173,-0.008,-0.070 +90,-1,0.744,0.368,-0.152 +90,0,0.413,1.316,1.720 +90,0,-0.647,-0.065,-0.737 +90,-3,-0.407,1.240,1.091 +91,3,1.682,-0.273,-0.452 +91,0,-0.264,0.326,-0.163 +91,-3,-1.413,0.676,-0.765 +91,3,-1.270,-0.251,0.288 +91,2,0.870,-1.583,-1.714 +92,1,0.212,-1.355,-0.368 +92,-1,-0.498,0.281,-0.969 +92,0,0.473,0.160,1.129 +92,2,-0.427,-1.277,-0.019 +93,-1,-0.301,-0.092,-0.192 +93,1,-0.495,-1.250,-0.373 +93,0,0.476,-0.677,-1.553 +93,1,-1.652,-2.059,-0.781 +94,-3,-1.284,0.975,-0.539 +94,0,0.569,0.942,1.021 +94,0,0.232,0.404,0.093 +94,0,0.406,0.820,-0.875 +94,0,-0.077,0.543,0.087 +95,-1,1.356,1.288,0.912 +95,0,0.672,1.008,1.024 +95,2,1.680,0.458,2.040 +96,0,0.050,0.889,1.225 +96,0,1.119,0.030,-0.337 +96,0,1.899,-0.387,-1.658 +97,0,1.293,0.832,-0.040 +97,1,1.595,0.319,0.473 +97,0,0.103,1.536,1.153 +97,-1,0.777,1.519,1.583 +98,0,0.351,-0.611,-0.273 +98,0,0.973,0.566,0.284 +98,-1,2.024,1.648,0.468 +98,1,-0.721,-0.675,0.101 +99,3,1.259,-0.260,1.210 +99,1,1.138,0.877,0.510 +99,3,1.125,-0.527,0.802 +99,1,1.816,-0.389,-0.458 +99,1,1.702,0.465,0.034 diff --git a/statsmodels/genmod/tests/results/gee_logistic_1.csv b/statsmodels/genmod/tests/results/gee_logistic_1.csv new file mode 100644 index 0000000..6ef8e06 --- /dev/null +++ b/statsmodels/genmod/tests/results/gee_logistic_1.csv @@ -0,0 +1,405 @@ +0,1,1.548,-0.529,-1.202 +0,0,0.084,1.312,0.019 +0,1,-0.796,-1.706,-0.408 +1,0,-0.536,-0.584,-1.022 +1,0,0.548,0.282,-0.690 +1,0,-0.462,0.585,1.156 +1,0,-2.028,-0.104,-0.561 +1,0,-0.080,-0.493,-0.480 +2,1,0.004,1.750,1.630 +2,1,-1.373,0.071,0.546 +2,0,-0.190,0.917,0.506 +2,1,0.404,-0.881,0.791 +3,0,-1.302,-2.123,-1.336 +3,1,0.275,-0.970,-0.268 +3,1,-0.259,-0.495,0.065 +3,0,-0.895,0.427,-0.774 +3,1,0.826,-0.625,-0.789 +4,0,-1.778,-0.547,0.418 +4,0,0.676,-0.173,-0.544 +4,0,-0.729,0.618,-1.447 +4,0,-1.055,-0.485,-0.700 +5,1,1.345,-0.244,1.710 +5,1,1.660,0.891,0.799 +5,1,0.707,0.177,0.956 +5,0,1.400,0.316,-1.201 +5,1,1.514,0.793,-0.114 +6,1,0.871,-0.043,0.990 +6,1,0.497,0.737,0.292 +6,1,0.309,0.976,0.684 +6,1,0.038,-0.959,1.215 +7,0,-0.031,0.269,-0.201 +7,0,-0.338,0.668,1.651 +7,0,1.543,-0.087,-1.226 +7,1,1.150,0.821,0.456 +7,0,0.080,0.955,-0.585 +8,0,-2.154,1.197,1.599 +8,1,0.179,-1.007,0.011 +8,1,0.707,-0.092,-0.073 +9,1,0.060,-0.416,-0.363 +9,0,-0.027,0.273,0.663 +9,1,-0.930,-1.240,-0.947 +9,1,0.526,-0.078,-1.761 +10,1,0.282,-2.120,-2.174 +10,0,-1.283,-1.305,-0.416 +10,1,-0.150,0.681,1.477 +10,1,-0.446,0.312,0.467 +11,1,-1.358,-2.584,-1.192 +11,1,-1.144,-1.840,-1.196 +11,0,-1.756,-1.496,-3.135 +11,0,-1.745,0.107,-0.689 +11,1,0.773,-1.712,-0.566 +12,1,0.996,-0.681,-0.304 +12,0,1.894,0.397,-0.186 +12,0,2.059,1.827,1.490 +12,1,0.502,0.975,1.379 +12,0,0.206,-0.787,0.001 +13,1,0.328,-0.472,-0.703 +13,1,2.125,1.206,0.904 +13,0,0.002,0.592,0.472 +14,1,0.393,-1.771,-1.430 +14,1,0.846,-0.817,0.201 +14,0,0.285,-1.236,-1.672 +14,1,0.627,-1.362,-1.710 +14,1,0.052,-0.083,2.465 +15,0,-0.049,0.936,0.476 +15,1,-0.392,0.497,0.896 +15,0,0.363,0.334,-2.107 +15,0,0.133,-0.544,-1.103 +15,1,-0.675,0.200,0.057 +16,0,0.536,1.171,0.326 +16,1,-0.162,1.383,1.281 +16,0,0.827,-0.565,-0.925 +17,1,-0.438,-1.934,-1.293 +17,0,-0.847,-0.662,-0.179 +17,1,-0.468,-0.796,-0.746 +17,0,-0.302,0.502,-0.842 +17,1,-1.568,-1.071,-0.219 +18,1,-1.696,0.184,-0.086 +18,1,0.396,-0.845,-0.942 +18,1,0.588,-0.931,-1.260 +19,0,1.963,0.652,0.257 +19,1,1.016,0.271,-0.146 +19,1,1.266,0.247,0.274 +20,1,-1.034,-1.098,-1.370 +20,0,-2.120,-1.285,-1.005 +20,1,-1.476,-3.622,-2.686 +20,1,-0.708,-1.223,-1.488 +20,0,-0.111,-1.985,-3.268 +21,1,-0.922,-0.077,1.386 +21,0,-1.296,0.533,1.064 +21,1,-1.402,0.719,0.290 +21,0,-0.704,0.481,0.075 +21,1,-0.092,-0.753,-0.095 +22,0,-0.072,1.679,0.841 +22,0,0.919,0.915,0.836 +22,1,0.656,0.305,-0.128 +22,0,0.073,0.921,0.699 +23,1,-0.273,0.183,-0.506 +23,1,0.196,-0.776,-0.279 +23,0,0.154,0.251,0.407 +23,0,-1.238,0.343,0.204 +24,0,1.212,0.636,0.737 +24,1,-0.693,0.136,2.490 +24,1,-0.018,-0.208,1.494 +25,0,-1.159,-0.273,-1.149 +25,1,0.935,-0.507,-0.146 +25,1,1.750,-0.484,-0.838 +26,0,-0.399,1.233,0.271 +26,0,-0.644,1.642,0.949 +26,1,1.163,-0.348,-1.010 +26,1,1.168,-2.201,-0.559 +27,1,-0.450,-0.739,1.097 +27,0,0.868,0.065,-0.440 +27,0,0.288,1.105,1.994 +27,0,0.358,1.687,0.045 +27,1,1.880,0.636,0.818 +28,0,-0.905,0.613,0.510 +28,0,-0.280,-0.034,0.712 +28,0,-1.111,0.526,0.096 +28,1,2.047,0.258,1.244 +28,1,-0.156,-0.169,-0.174 +29,0,-0.960,-0.745,-0.938 +29,1,-2.192,-2.973,0.025 +29,0,-0.202,0.534,-1.675 +29,1,-0.817,-1.304,-0.451 +29,1,-1.388,-1.915,-2.432 +30,1,0.742,0.211,-0.108 +30,1,0.617,0.611,0.879 +30,0,0.759,-0.121,-0.573 +30,1,-0.760,-0.813,-0.040 +31,1,0.513,0.936,-0.024 +31,1,0.206,0.567,0.555 +31,1,0.380,0.378,0.106 +32,0,-0.249,1.422,1.140 +32,0,0.111,-0.171,-1.012 +32,0,-1.243,-1.328,-0.496 +32,1,0.366,-0.396,-0.616 +33,0,0.524,0.179,-0.348 +33,1,0.101,0.360,1.011 +33,1,0.329,-1.218,-0.952 +34,0,-1.359,-0.920,-1.708 +34,1,-2.244,-0.773,0.222 +34,0,-0.676,-0.451,-1.480 +35,1,1.043,0.850,0.611 +35,1,-0.376,1.303,1.833 +35,0,-0.178,0.520,-0.960 +36,0,0.674,-0.063,-0.193 +36,0,0.185,1.276,-0.165 +36,1,0.740,-0.298,-0.306 +36,1,0.553,0.123,0.410 +36,1,-1.300,0.233,1.447 +37,1,-1.893,-1.619,-0.034 +37,1,-0.955,-0.344,-0.659 +37,0,-0.453,-1.925,-0.566 +37,1,-0.066,-0.048,-1.278 +38,1,0.073,1.901,1.075 +38,1,0.707,-0.534,0.725 +38,1,-0.132,-0.712,0.225 +38,1,1.712,-0.371,0.022 +38,0,-1.594,0.900,1.108 +39,1,1.522,0.600,2.198 +39,1,2.067,0.839,0.428 +39,1,0.903,0.150,1.970 +40,1,0.186,-0.016,1.459 +40,1,0.315,0.415,-0.100 +40,0,-0.162,-0.147,1.305 +40,1,0.800,-0.037,-1.897 +41,1,3.318,-2.128,-1.639 +41,1,0.421,-0.392,0.236 +41,0,-1.503,0.870,-1.712 +41,0,1.225,2.190,0.421 +41,0,-0.247,0.524,1.334 +42,1,0.094,0.634,1.815 +42,0,0.788,2.015,1.196 +42,1,0.007,-0.035,0.198 +43,0,-1.633,-1.032,-1.123 +43,0,-1.261,-0.870,0.647 +43,0,-1.316,0.487,-2.478 +43,1,-0.155,-1.666,-0.578 +44,0,-0.538,1.551,1.148 +44,0,-1.021,0.439,0.229 +44,1,0.521,-0.333,0.872 +44,0,0.820,-0.104,-1.519 +44,1,-0.273,-0.668,1.887 +45,1,1.069,-0.461,0.686 +45,0,-0.450,1.918,0.448 +45,0,-1.357,0.394,1.221 +46,1,0.349,-0.263,-0.243 +46,0,-0.266,1.219,-0.978 +46,1,-0.926,-0.860,-0.041 +46,1,-1.821,-0.773,-1.373 +46,1,-1.232,-0.480,-1.162 +47,1,-1.074,-0.071,0.805 +47,1,1.558,-1.422,-0.596 +47,1,-0.336,-1.018,0.457 +47,1,-0.072,0.028,-0.864 +48,1,0.327,-1.873,-2.254 +48,1,-0.876,-1.410,-0.010 +48,0,0.037,0.613,-0.477 +48,0,-0.951,0.515,-1.375 +48,1,0.358,0.011,0.226 +49,1,-0.630,-1.009,-0.900 +49,1,-0.224,-1.513,-1.778 +49,1,0.339,-0.213,-0.205 +49,0,-0.892,-0.176,-0.229 +49,0,-0.493,-0.625,-1.609 +50,1,0.553,-1.131,-0.299 +50,1,-0.561,-0.657,-0.064 +50,1,0.509,-0.544,-0.511 +50,0,0.084,0.238,0.477 +51,1,0.261,1.333,0.410 +51,0,0.949,2.030,0.562 +51,1,1.240,-0.929,0.418 +52,1,-0.662,-1.578,-0.536 +52,0,-0.729,-0.217,0.023 +52,1,1.456,0.318,0.298 +52,1,0.774,1.178,0.631 +53,0,0.567,0.298,-0.115 +53,1,0.171,-1.003,-1.263 +53,0,-0.455,0.677,-0.505 +53,1,0.040,-1.087,-0.880 +54,0,-0.779,-0.215,-0.318 +54,1,-0.112,0.689,-0.054 +54,0,1.037,-0.298,-1.121 +54,0,-1.304,-1.379,0.065 +54,1,0.162,-0.120,-0.395 +55,0,0.311,0.797,0.030 +55,1,0.806,0.952,0.201 +55,1,1.746,-0.739,0.726 +55,0,-0.549,-0.645,-0.257 +56,0,-0.644,-1.239,-0.655 +56,1,-1.110,-0.353,-0.500 +56,1,0.525,-1.847,-0.641 +57,0,-0.443,0.567,-0.837 +57,0,-1.126,-0.298,0.410 +57,1,-1.115,0.075,-0.067 +58,1,0.788,0.324,1.564 +58,1,0.626,-0.193,1.219 +58,0,0.116,1.274,0.907 +58,1,0.843,0.793,1.189 +59,1,0.394,-1.005,-0.232 +59,1,0.769,-1.460,-0.101 +59,1,0.779,0.378,-0.002 +60,0,-1.374,-1.201,-1.303 +60,0,0.115,-0.593,-0.957 +60,0,-0.567,0.206,-0.422 +61,0,-3.465,-0.162,-1.189 +61,0,-0.894,-1.233,-1.080 +61,1,-1.479,-1.797,-1.108 +61,0,-1.028,-0.698,-1.060 +61,1,0.423,-1.090,-1.960 +62,0,-0.831,-1.068,-0.869 +62,1,-0.479,-1.970,-0.993 +62,0,-1.571,-0.116,0.645 +62,1,-0.330,-1.617,-0.731 +63,0,0.840,1.718,0.948 +63,0,-0.553,1.923,0.587 +63,0,0.447,0.991,-0.490 +63,0,1.054,0.827,0.195 +63,1,0.175,0.159,2.262 +64,1,0.749,-0.018,0.987 +64,1,0.870,1.326,2.189 +64,0,-1.511,-0.550,-0.211 +65,1,0.110,-0.616,0.677 +65,0,0.035,-0.452,-0.834 +65,0,-0.535,-0.946,-2.080 +66,0,-0.244,0.607,-0.180 +66,0,-0.158,-0.592,-0.390 +66,0,-0.831,0.007,-0.742 +66,0,-2.702,-0.173,-0.627 +66,1,0.127,-1.284,-1.134 +67,1,-0.019,-0.011,0.629 +67,1,0.342,0.030,-0.052 +67,1,0.029,-1.448,-1.414 +67,0,-0.908,-0.654,0.621 +67,1,1.046,-0.615,1.091 +68,0,1.226,1.539,1.281 +68,1,0.607,-0.017,0.445 +68,0,0.034,0.540,-0.123 +68,0,-0.472,1.462,0.152 +68,0,0.071,-0.296,0.501 +69,0,0.171,0.077,-0.250 +69,0,-1.505,0.892,0.494 +69,0,-1.323,-0.118,-2.233 +70,0,-0.241,-1.165,-1.026 +70,0,0.049,-0.135,-1.815 +70,1,-1.034,-1.699,-0.633 +70,0,-1.023,-0.640,-1.268 +70,0,-0.526,-0.900,-0.125 +71,1,-1.258,0.278,0.976 +71,0,-0.227,0.418,0.196 +71,1,0.861,-0.645,-0.325 +71,0,0.723,1.198,0.735 +71,1,1.383,0.266,-0.367 +72,1,1.051,0.205,1.127 +72,0,0.189,0.341,1.646 +72,0,0.419,1.143,1.203 +73,1,0.273,0.602,0.232 +73,1,0.026,-1.156,-0.154 +73,0,-0.146,1.330,0.929 +73,1,0.441,-0.742,0.088 +74,1,1.077,0.468,-0.853 +74,1,0.762,-0.734,-0.792 +74,0,0.527,1.874,1.111 +75,0,-1.184,-0.760,-0.354 +75,1,-0.562,-0.668,0.498 +75,1,-1.899,-1.153,-0.412 +76,0,0.299,0.394,-0.508 +76,1,-0.173,-0.463,-1.483 +76,1,0.989,1.104,1.273 +76,0,0.056,0.255,0.541 +76,0,-0.791,1.418,0.620 +77,1,1.378,0.369,1.177 +77,1,0.838,-1.108,0.643 +77,1,0.290,-0.577,-0.108 +77,1,0.232,-0.693,-0.408 +77,1,0.088,-0.056,0.251 +78,1,0.372,-0.891,-0.664 +78,1,0.465,-1.149,-0.877 +78,0,0.006,0.769,-0.335 +78,1,0.099,-1.169,-0.556 +78,0,-1.657,-0.537,-0.883 +79,0,-0.416,1.591,-0.134 +79,0,0.736,1.799,0.627 +79,1,0.861,-0.259,1.117 +80,0,1.034,1.587,0.848 +80,0,-0.073,0.096,1.879 +80,0,0.255,2.103,1.678 +81,0,-0.805,0.800,-0.431 +81,0,0.871,0.838,0.186 +81,1,0.132,-0.404,-0.703 +81,0,-0.538,-1.135,0.052 +81,0,-0.377,-0.380,-0.070 +82,1,0.126,-0.976,-0.559 +82,1,1.340,-0.905,0.349 +82,0,-0.595,0.833,0.392 +82,0,0.250,1.137,0.648 +83,1,0.630,-2.457,-0.912 +83,0,-0.722,-0.160,-0.791 +83,0,-0.792,-1.037,-1.090 +83,1,2.366,0.454,0.712 +83,0,-1.206,0.467,0.636 +84,0,-0.824,0.080,0.236 +84,0,-0.465,1.221,0.450 +84,0,-0.038,-0.846,-1.597 +84,0,0.338,-0.219,-0.462 +84,0,-1.183,0.710,0.367 +85,0,-0.232,1.064,1.111 +85,0,-0.718,-0.957,-0.499 +85,1,0.108,-0.307,0.549 +85,0,1.065,1.185,-0.365 +86,0,-0.152,-0.335,0.460 +86,0,0.136,0.340,0.139 +86,1,0.625,-1.260,-1.055 +86,1,-0.639,-0.283,0.615 +86,0,-1.311,-1.058,-1.331 +87,1,0.722,1.639,2.768 +87,0,1.323,2.400,2.418 +87,0,0.510,1.850,1.053 +87,1,2.412,1.368,1.987 +88,1,1.233,-0.295,-0.576 +88,0,-0.495,-0.028,0.195 +88,1,-1.346,-1.850,-1.998 +88,1,0.262,-0.740,0.519 +88,1,-0.945,-1.215,-0.444 +89,1,0.712,1.025,0.635 +89,0,-0.119,1.420,2.225 +89,1,-0.739,-0.875,0.020 +90,0,-0.138,-0.556,-1.433 +90,0,-0.449,-1.425,-1.333 +90,1,-1.222,-0.166,0.305 +91,0,-0.012,0.647,1.009 +91,0,1.981,1.315,1.321 +91,1,0.161,-0.306,0.903 +91,0,-0.310,-0.933,-0.584 +91,0,-0.537,1.372,0.731 +92,1,1.447,-1.860,-0.807 +92,0,-0.665,0.582,0.603 +92,0,-0.572,-0.251,-0.438 +92,0,-1.938,-0.438,-2.119 +92,0,-1.318,-0.096,-1.238 +93,0,0.144,0.112,-1.106 +93,0,-0.699,-0.236,-1.634 +93,0,-0.646,-0.373,-1.453 +93,0,-1.280,-0.266,-0.613 +93,0,-0.700,-0.774,-0.306 +94,1,0.416,-0.308,-0.984 +94,1,1.229,1.059,0.690 +94,0,0.545,-0.163,-0.516 +95,0,0.581,0.231,0.004 +95,0,0.116,0.108,-0.864 +95,1,0.137,-1.301,-2.356 +96,1,-0.778,-1.520,-0.577 +96,1,0.491,-0.398,0.452 +96,1,-0.217,-0.623,0.954 +97,0,0.805,0.473,-0.568 +97,1,0.241,0.721,0.991 +97,0,-0.278,0.807,-1.064 +98,1,-0.931,-1.886,-1.640 +98,0,-1.223,-1.645,-1.548 +98,0,-2.199,-0.865,-0.425 +98,1,-0.356,-2.400,-0.766 +99,1,0.540,-0.949,-0.317 +99,0,-0.658,-1.097,-2.819 +99,0,-0.823,-0.994,-1.202 diff --git a/statsmodels/genmod/tests/results/gee_nested_linear_1.csv b/statsmodels/genmod/tests/results/gee_nested_linear_1.csv new file mode 100644 index 0000000..33e09b0 --- /dev/null +++ b/statsmodels/genmod/tests/results/gee_nested_linear_1.csv @@ -0,0 +1,2000 @@ +0,3.555,1.199,0.059,1.130 +0,-1.932,-0.209,0.104,0.154 +0,-0.961,1.548,0.720,-1.118 +0,-2.512,-1.410,1.016,1.808 +0,-0.531,-1.475,-1.541,-0.610 +0,-0.197,0.651,-0.448,-0.891 +0,-5.847,0.074,0.085,-1.532 +0,3.189,1.164,-1.529,-0.604 +0,-0.267,-1.741,-0.825,0.212 +0,2.032,0.549,-0.265,-1.050 +1,-1.737,-0.048,-0.201,-0.029 +1,0.119,-0.429,-1.147,-0.249 +1,-2.736,-1.246,0.123,-0.251 +1,4.327,0.498,-2.278,0.012 +1,-4.897,-0.910,0.376,-2.148 +1,0.676,-0.877,0.049,2.119 +1,0.028,-0.415,-1.078,-0.014 +1,-0.137,-0.752,0.038,1.154 +1,-1.310,1.039,-0.009,-0.697 +1,-2.164,0.677,1.009,0.637 +2,-5.710,-0.272,1.629,0.169 +2,-3.091,-1.769,1.115,1.575 +2,-4.943,-0.633,0.554,-1.574 +2,-3.391,0.759,1.065,-0.743 +2,-0.767,0.170,-1.541,0.539 +2,-1.014,-0.059,1.613,1.193 +2,-1.596,0.033,-0.311,-2.007 +2,1.276,-1.096,-1.193,-0.128 +2,-0.325,-1.142,-0.371,-0.252 +2,2.357,0.414,-1.068,-1.283 +3,-2.311,-0.779,-0.278,-0.114 +3,0.103,0.369,0.256,-0.198 +3,1.130,-0.849,-0.856,-0.332 +3,-6.202,-2.862,1.362,-0.363 +3,2.227,-0.227,-1.043,-0.170 +3,4.652,1.414,-1.053,1.268 +3,0.337,-1.221,-1.443,0.955 +3,-0.130,1.232,-0.709,-1.398 +3,-0.366,-0.678,-0.492,0.556 +3,1.204,1.346,-1.010,-1.518 +4,-1.265,0.124,-0.149,-0.300 +4,-1.199,0.228,0.611,-0.079 +4,0.628,0.089,-1.674,0.052 +4,-0.472,1.304,-1.302,0.108 +4,-4.492,0.262,0.930,-1.037 +4,-0.944,0.587,-0.162,-0.763 +4,-3.531,-0.055,0.162,-1.404 +4,-0.909,-0.798,-0.323,0.697 +4,-2.097,0.092,-0.195,-0.398 +4,1.630,0.044,-0.676,-0.509 +5,-4.008,-2.551,0.366,1.321 +5,2.798,0.703,-1.319,1.090 +5,-0.155,-0.367,-0.835,0.488 +5,5.894,2.020,-1.278,0.159 +5,-3.664,-1.118,1.325,0.222 +5,-1.521,0.577,0.522,0.711 +5,-3.070,-0.428,-1.694,-0.495 +5,3.033,0.039,-1.129,2.174 +5,-3.380,-0.767,0.859,0.746 +5,-3.643,-1.269,0.125,0.065 +6,-2.632,0.017,1.234,-0.793 +6,1.026,-0.254,-0.033,0.189 +6,1.701,-0.450,-1.090,-0.367 +6,-1.065,-0.611,0.096,-1.408 +6,3.246,1.448,0.227,1.086 +6,1.493,-0.024,-1.622,-2.181 +6,0.245,0.374,-0.562,-0.555 +6,-0.158,0.593,0.338,-0.102 +6,1.751,0.481,-0.329,-0.473 +6,-2.010,-1.133,-0.816,-2.882 +7,-1.178,1.092,0.069,-2.243 +7,-5.792,0.359,1.630,-0.988 +7,-0.731,-0.440,0.143,0.181 +7,-3.726,0.142,0.064,-0.052 +7,-6.753,-0.060,2.089,-0.986 +7,-1.617,0.062,0.346,1.232 +7,0.059,-0.309,-0.743,-0.258 +7,-0.605,1.117,-0.487,-0.099 +7,7.393,1.259,-2.581,0.606 +7,2.359,1.047,0.059,1.366 +8,0.265,0.668,-0.057,0.031 +8,1.257,-1.058,-0.790,-0.224 +8,-2.505,-1.310,-0.308,-0.736 +8,0.672,-0.451,0.362,0.352 +8,-0.927,-0.123,0.206,-0.747 +8,1.263,-1.698,-1.257,0.832 +8,2.256,-1.313,-1.671,0.457 +8,-2.443,-3.037,0.203,1.980 +8,0.143,-0.061,-0.137,-0.270 +8,-1.598,-3.912,-0.342,0.527 +9,3.314,1.670,-1.302,-0.232 +9,0.278,1.789,0.226,0.079 +9,2.222,-1.317,-1.433,0.947 +9,1.024,0.947,0.574,0.732 +9,1.957,2.011,-1.341,-1.052 +9,1.621,-0.176,-0.060,0.005 +9,-1.451,-1.145,0.911,0.566 +9,-1.400,0.381,1.060,-1.147 +9,0.145,-1.098,0.331,0.389 +9,2.956,0.506,-0.916,-0.035 +10,1.672,0.472,-0.772,-0.045 +10,-8.217,-0.421,2.400,-1.378 +10,-2.216,0.229,-0.028,0.756 +10,0.446,-0.890,-0.700,-0.573 +10,-0.431,-0.881,-0.752,0.104 +10,1.409,1.576,-0.344,0.341 +10,-6.699,-0.596,1.589,0.737 +10,-1.349,-0.593,-0.039,0.999 +10,-1.130,1.110,-0.503,-0.739 +10,-4.945,-0.156,0.660,-0.746 +11,-0.951,-0.458,0.085,-1.109 +11,-4.795,-1.096,2.592,0.336 +11,0.005,0.488,0.215,0.007 +11,-0.827,-0.245,0.514,-0.681 +11,1.102,-1.066,-1.824,-0.570 +11,0.754,-0.464,-0.591,-0.030 +11,-3.030,0.709,1.184,-0.662 +11,0.986,0.245,-0.231,-0.321 +11,0.839,0.327,-0.443,1.164 +11,-2.439,-1.034,0.572,1.674 +12,-0.168,-0.641,-0.495,1.315 +12,2.040,1.640,-0.525,1.323 +12,-4.766,0.669,0.859,-1.509 +12,1.651,1.109,0.229,1.623 +12,1.179,-0.658,-1.131,-0.021 +12,0.415,0.820,-0.628,0.696 +12,-1.392,-0.389,-0.248,0.012 +12,2.935,3.590,-0.669,-0.241 +12,-2.433,-0.334,0.705,-0.432 +12,-3.376,-0.613,1.015,0.974 +13,2.432,1.233,-0.311,-0.117 +13,-3.744,0.764,1.342,-0.388 +13,0.132,0.088,-0.305,-0.629 +13,-0.656,0.690,0.702,0.559 +13,0.616,0.295,-0.582,-1.244 +13,-1.358,0.707,-0.016,0.730 +13,-4.949,-0.977,0.643,-0.197 +13,2.960,-0.884,-1.114,1.671 +13,-5.414,-1.102,1.379,0.518 +13,-4.659,-0.397,1.342,1.261 +14,3.714,0.490,-1.491,-0.164 +14,0.795,-0.852,-0.042,0.501 +14,3.703,2.132,0.303,0.498 +14,-1.788,-0.084,0.919,-2.540 +14,5.794,0.128,-1.358,0.572 +14,1.695,-1.020,0.405,1.464 +14,1.401,1.850,1.280,0.045 +14,1.162,0.392,-0.071,0.057 +14,0.873,-0.862,0.354,-0.106 +14,-2.050,-0.148,0.441,-1.662 +15,-0.460,-0.272,0.439,2.434 +15,-4.777,-1.597,-0.019,-1.777 +15,-4.936,-1.168,1.582,-0.367 +15,-1.082,0.795,-0.240,-0.507 +15,0.683,0.031,-0.807,1.160 +15,-3.935,-1.208,1.608,1.341 +15,1.526,-1.457,-1.986,-0.078 +15,4.144,1.177,-0.853,1.167 +15,-0.746,-0.349,-0.342,-0.318 +15,0.971,0.628,0.705,1.804 +16,2.044,0.977,0.414,0.321 +16,0.899,-0.232,1.518,2.053 +16,2.505,0.248,0.048,0.067 +16,1.524,-0.352,0.149,0.037 +16,1.346,-0.107,-0.211,0.588 +16,0.142,-0.616,0.171,0.323 +16,2.283,1.387,-0.795,-1.118 +16,-4.264,-0.201,2.045,-0.188 +16,1.806,0.695,-1.934,-0.058 +16,-2.731,-0.354,0.161,-1.960 +17,-5.006,-0.683,0.933,-1.915 +17,0.424,-1.500,0.805,2.137 +17,1.074,0.573,0.289,0.370 +17,-3.532,1.905,1.481,-2.909 +17,1.789,0.749,-0.338,-0.325 +17,0.191,-0.099,-0.937,0.012 +17,2.033,-0.122,-1.110,0.723 +17,-0.593,0.416,-0.457,0.103 +17,0.110,-0.461,-0.190,0.422 +17,-2.387,-0.752,0.683,-0.354 +18,-2.443,-1.169,-0.795,0.677 +18,-7.287,-0.814,1.982,-0.053 +18,-2.102,-1.394,-0.967,1.812 +18,-4.473,-1.324,0.432,1.228 +18,-11.366,-0.989,3.247,-0.175 +18,1.544,2.189,-0.789,0.087 +18,-1.751,-0.174,-0.038,0.068 +18,-3.297,-1.105,-1.011,-0.436 +18,-7.069,-0.374,1.392,0.047 +18,-0.054,1.551,-0.946,-0.752 +19,7.029,1.473,-2.048,0.779 +19,4.920,0.154,-1.412,0.808 +19,-0.550,-2.410,-0.520,0.953 +19,3.900,1.355,-0.744,-0.236 +19,-1.422,0.129,0.383,-0.889 +19,0.137,-0.205,-0.584,0.798 +19,1.138,-0.246,-1.437,-0.739 +19,1.463,-1.438,-1.213,1.056 +19,1.116,0.546,0.397,0.995 +19,-1.766,-0.997,0.740,-0.245 +20,-3.186,0.542,0.980,-0.801 +20,-4.199,-1.009,-0.054,-1.156 +20,-4.278,-0.557,1.203,-0.684 +20,5.984,3.221,-1.764,2.410 +20,-4.028,0.807,1.350,-0.660 +20,-6.853,-1.464,2.340,0.781 +20,3.714,0.486,-0.632,-0.260 +20,-5.971,-1.468,0.908,0.518 +20,-0.268,-0.221,-0.785,-1.447 +20,-1.536,0.426,0.205,0.649 +21,2.715,0.236,-0.788,0.055 +21,1.400,-0.120,0.158,0.662 +21,-4.348,-1.281,1.412,-0.503 +21,-2.298,-0.638,0.399,-0.530 +21,1.747,1.113,-1.288,-0.264 +21,-0.403,-0.672,0.125,1.116 +21,-1.100,-0.825,0.711,1.383 +21,1.525,-0.557,-0.184,0.236 +21,0.347,-0.308,-0.802,-0.451 +21,1.814,1.336,-0.638,-0.360 +22,1.508,0.998,-0.830,-1.504 +22,1.484,-0.551,-1.479,-0.659 +22,3.538,-0.114,-0.086,2.646 +22,-2.897,-0.413,-1.033,-2.192 +22,0.858,1.215,0.119,1.151 +22,2.180,1.421,0.100,-0.040 +22,0.172,-1.642,-0.632,-0.535 +22,1.408,-0.757,-1.048,1.292 +22,2.211,-0.330,-1.776,0.409 +22,-1.350,-1.026,0.538,0.722 +23,1.031,-0.951,-0.763,0.171 +23,-1.039,-0.599,-0.154,-0.095 +23,3.548,0.852,-0.927,1.278 +23,-4.160,-0.730,0.834,-0.839 +23,-3.684,-0.283,1.274,-1.198 +23,-1.689,-0.535,-1.462,0.004 +23,-8.015,-0.212,1.294,-1.186 +23,1.572,0.097,-1.187,0.799 +23,-4.676,-0.250,0.071,-1.909 +23,-1.166,1.113,-0.133,-0.002 +24,0.764,-0.910,-1.219,0.499 +24,0.544,0.606,-0.648,-0.352 +24,-4.941,-0.140,2.125,-0.621 +24,-6.073,-0.574,1.828,-0.496 +24,-0.466,1.760,0.662,0.577 +24,-3.807,-1.731,1.423,-1.273 +24,-5.325,-1.466,1.450,-0.033 +24,-0.690,0.558,0.205,-0.157 +24,2.937,0.463,-1.522,0.121 +24,-1.075,1.120,0.665,-0.027 +25,0.586,-1.934,0.487,-0.078 +25,4.579,0.122,-0.277,0.801 +25,5.319,0.346,-0.193,1.011 +25,-1.373,-0.579,0.667,0.203 +25,2.632,0.858,0.686,-0.232 +25,4.598,-1.548,-1.837,-0.674 +25,5.499,-0.534,-0.498,1.739 +25,-2.761,-0.833,1.159,-0.296 +25,1.194,-0.407,0.694,0.223 +25,1.862,0.488,0.699,-0.765 +26,-2.278,1.778,0.548,-1.161 +26,0.870,0.760,-1.173,-0.532 +26,-3.284,-0.174,0.420,-0.480 +26,-6.972,-1.281,2.018,-0.467 +26,3.189,0.225,-1.302,1.663 +26,-2.874,-1.918,-0.219,0.276 +26,0.860,-0.780,-0.033,0.718 +26,1.313,-0.295,-0.902,1.275 +26,1.157,1.364,0.100,0.182 +26,-1.504,0.325,1.028,-0.045 +27,3.006,0.060,-0.121,-0.249 +27,0.183,-0.031,-0.707,-1.023 +27,3.847,1.094,-1.035,-0.390 +27,4.337,0.764,-0.615,0.423 +27,0.152,-0.982,-0.063,-0.033 +27,2.437,0.412,-0.364,-0.368 +27,-2.428,-0.094,1.137,-0.567 +27,0.800,-1.248,-0.388,0.574 +27,3.406,0.146,-1.183,0.331 +27,2.004,-0.677,0.265,1.677 +28,1.218,-1.053,-0.145,1.227 +28,3.904,-0.052,-2.160,-1.443 +28,-2.239,-2.323,0.272,-1.011 +28,3.020,-0.515,-0.376,0.714 +28,5.075,-0.297,-0.631,0.237 +28,2.268,-1.948,-1.254,0.089 +28,-1.514,-0.537,0.633,-1.026 +28,3.999,0.556,-0.521,1.129 +28,-4.332,-0.673,1.321,-0.764 +28,-2.075,-0.152,0.708,-0.501 +29,0.749,1.557,-0.051,-0.443 +29,2.148,-0.326,0.021,0.759 +29,-6.026,-0.897,2.084,0.849 +29,0.460,0.019,-1.251,1.172 +29,-7.443,1.312,2.446,-0.731 +29,0.274,-1.671,-0.836,-0.304 +29,-3.548,0.369,1.813,-0.785 +29,-2.818,1.139,1.711,-1.980 +29,3.842,1.420,-0.526,0.405 +29,4.859,-0.643,-0.606,-0.086 +30,2.421,-0.744,-1.395,-0.906 +30,-0.696,-0.731,-0.376,-0.029 +30,3.166,0.299,-1.012,1.032 +30,4.993,1.226,-1.205,-0.836 +30,3.875,1.269,-0.259,0.762 +30,4.867,1.039,-0.137,-1.045 +30,4.115,-0.624,-0.459,0.869 +30,6.375,-0.349,-1.435,0.347 +30,-0.728,-0.545,-0.010,-0.193 +30,0.927,1.298,-0.089,-1.020 +31,-3.947,-0.332,1.426,-0.562 +31,-2.447,0.092,1.628,-1.118 +31,-2.073,-0.910,0.338,0.841 +31,1.755,0.404,-0.643,0.832 +31,2.661,0.117,-1.310,1.046 +31,0.522,0.829,1.584,0.150 +31,-2.025,-2.689,0.753,-1.073 +31,0.506,-0.310,0.162,0.622 +31,4.054,1.132,-0.580,2.055 +31,2.594,0.300,0.573,-0.240 +32,1.198,0.040,0.300,0.814 +32,4.111,-1.564,-0.946,1.113 +32,-0.007,0.903,0.308,-0.246 +32,6.223,0.437,-1.392,0.446 +32,-1.751,-0.853,0.846,1.091 +32,2.951,0.198,-0.096,-0.556 +32,3.107,1.627,0.439,1.354 +32,4.755,0.683,-1.247,0.132 +32,10.134,3.965,-1.666,0.474 +32,1.898,-0.160,-0.214,-0.242 +33,-0.141,-0.278,-0.155,-0.571 +33,-0.996,-1.091,0.040,0.504 +33,1.504,0.393,0.657,-0.153 +33,3.001,0.390,-0.657,1.333 +33,0.941,0.271,-0.446,-1.725 +33,0.140,-0.442,0.229,0.537 +33,3.236,0.328,-0.038,0.448 +33,6.092,1.119,-0.804,1.873 +33,3.721,-0.717,-0.142,2.595 +33,1.872,0.091,-0.006,0.001 +34,3.583,-0.027,-2.152,-0.173 +34,-2.981,-0.739,1.147,-0.598 +34,2.100,-1.109,-1.017,0.582 +34,2.951,0.373,0.187,1.662 +34,2.882,1.156,-0.985,-0.972 +34,1.156,0.920,0.132,0.126 +34,2.573,-0.382,-1.781,-2.263 +34,1.473,0.621,-1.212,-0.265 +34,5.465,0.662,-1.223,0.489 +34,5.761,0.732,-2.506,0.829 +35,-2.336,-0.206,0.577,0.777 +35,4.871,-0.408,-2.271,1.154 +35,0.054,-0.563,-0.635,-0.173 +35,-0.718,0.040,-0.482,-0.285 +35,1.458,0.690,0.257,2.124 +35,-2.909,-0.156,0.350,-1.078 +35,-5.051,-0.395,1.348,0.297 +35,-2.713,0.172,-0.134,0.072 +35,-4.350,-1.311,0.539,0.095 +35,-2.454,-2.899,-0.426,1.397 +36,-0.158,-1.846,-0.715,0.257 +36,0.411,1.673,-0.356,-0.249 +36,3.991,1.254,-1.384,0.284 +36,1.486,0.416,-0.279,-0.120 +36,4.728,1.904,-0.946,1.852 +36,-2.483,0.276,1.012,0.518 +36,-5.030,1.029,0.715,-1.634 +36,-3.989,-1.963,-0.021,0.161 +36,-3.877,-1.499,0.100,1.274 +36,-3.071,-2.605,-1.029,0.126 +37,-0.481,1.261,-0.041,-1.054 +37,-0.280,0.953,0.995,-1.270 +37,1.312,-0.694,0.187,0.732 +37,2.492,1.729,0.429,0.816 +37,6.964,0.319,-2.145,0.875 +37,-0.598,-0.614,1.727,0.933 +37,2.982,-1.482,-0.915,1.534 +37,1.650,1.285,-0.242,-0.789 +37,2.137,-0.484,-2.203,-0.665 +37,-0.009,-0.363,0.704,-1.062 +38,0.317,0.303,-0.577,-0.749 +38,3.891,0.415,-1.177,-0.152 +38,-4.492,-0.658,1.430,0.433 +38,2.864,-1.204,-2.236,-0.772 +38,4.384,-0.841,-2.680,0.508 +38,0.624,-0.348,-0.111,-0.728 +38,-3.318,-0.742,0.363,-1.583 +38,-3.131,1.271,0.796,-1.355 +38,1.950,1.277,-0.007,-0.700 +38,3.155,0.502,-0.795,0.329 +39,-1.211,-0.979,0.331,-0.469 +39,-4.067,-0.159,1.359,0.535 +39,4.327,0.806,-0.777,-0.669 +39,-3.758,-0.782,1.569,-0.240 +39,7.226,0.050,-1.749,0.073 +39,1.780,1.213,-0.297,-1.216 +39,2.834,-0.541,-1.777,0.554 +39,6.643,1.478,-1.060,2.442 +39,-0.760,-1.351,-0.009,-0.098 +39,3.779,0.365,-0.432,0.830 +40,5.014,1.494,-1.301,-1.205 +40,-2.441,-0.950,0.232,-1.089 +40,-1.263,0.610,-0.081,-2.875 +40,2.074,-1.062,-1.241,-0.316 +40,0.245,0.294,-0.347,-0.554 +40,-4.439,-1.165,0.763,0.160 +40,0.040,0.881,-0.325,0.722 +40,-0.883,-0.369,-0.130,-0.485 +40,-1.842,0.359,0.509,-0.682 +40,4.585,0.431,-2.152,-0.169 +41,1.781,0.638,-0.336,0.027 +41,1.474,2.097,0.598,0.485 +41,-2.119,0.380,1.233,0.304 +41,-0.548,-2.106,-0.974,0.401 +41,3.341,2.235,-0.377,1.456 +41,-4.529,0.323,2.301,-1.094 +41,1.258,1.326,0.378,0.213 +41,2.814,-0.438,-2.110,1.209 +41,0.278,0.155,0.147,-0.006 +41,-4.087,-0.532,0.709,-0.729 +42,-2.211,0.481,1.081,-1.780 +42,-2.757,0.180,1.169,-1.293 +42,-1.046,0.240,0.307,0.498 +42,-2.904,1.120,1.137,-0.470 +42,1.695,0.292,-0.626,-0.327 +42,-2.384,-0.807,0.623,0.557 +42,-4.496,-0.886,1.166,-0.600 +42,0.058,0.616,0.081,-0.806 +42,0.260,-1.820,-1.419,-0.667 +42,3.068,0.870,-1.344,0.798 +43,-2.124,-1.929,0.848,-0.894 +43,0.206,-2.501,0.122,1.085 +43,5.186,-0.080,-0.907,0.700 +43,3.018,0.053,1.252,2.824 +43,1.428,0.397,1.355,0.415 +43,-3.196,-1.850,-0.301,0.822 +43,-1.019,0.158,0.874,-0.286 +43,0.425,1.158,-0.194,-1.587 +43,0.740,0.479,-1.304,-1.844 +43,1.136,0.538,0.120,1.588 +44,3.600,-0.038,-1.212,-0.453 +44,6.946,2.042,-1.447,-0.632 +44,7.595,0.708,-1.386,-0.009 +44,6.710,-0.225,-1.176,0.721 +44,3.273,-0.326,0.045,1.660 +44,-5.731,-0.511,1.708,-1.851 +44,4.389,0.148,-0.908,0.793 +44,2.834,0.343,-1.669,-1.035 +44,-1.799,-0.337,0.228,0.017 +44,1.170,-2.062,-0.767,0.818 +45,0.535,-0.820,-0.120,-0.251 +45,-6.234,-1.400,2.038,-0.128 +45,0.862,0.349,-0.632,-0.677 +45,-0.236,-0.003,0.534,-0.129 +45,3.584,1.475,-1.010,-1.060 +45,4.264,1.444,-1.158,-0.119 +45,0.041,-0.102,0.392,0.673 +45,2.597,1.774,-0.472,0.050 +45,-1.500,-1.223,0.040,0.902 +45,-0.500,-1.243,-0.457,-0.437 +46,-3.335,-0.801,-0.762,-0.712 +46,1.953,2.025,-0.292,0.883 +46,-2.169,1.766,1.335,-0.565 +46,-3.729,-0.686,0.743,-0.804 +46,2.780,0.527,-0.906,1.164 +46,6.556,0.297,-1.815,1.370 +46,-1.609,-0.345,0.981,0.927 +46,-0.479,-0.444,-0.010,0.066 +46,-1.349,0.186,0.305,1.527 +46,0.427,-1.811,-0.997,0.470 +47,0.135,0.513,-0.224,-1.768 +47,2.827,1.184,0.131,0.239 +47,8.605,1.734,-0.725,1.701 +47,-6.415,0.082,1.629,-1.931 +47,5.864,-1.981,-1.910,0.421 +47,-5.495,-0.913,1.293,-0.806 +47,-1.632,0.881,0.510,-1.140 +47,3.177,-0.576,-0.877,-0.745 +47,1.892,0.120,-0.349,1.455 +47,-0.720,-1.703,-0.815,-1.099 +48,-5.151,-1.746,1.280,-0.668 +48,4.809,0.595,-3.003,-1.287 +48,0.397,-0.747,-0.390,-0.737 +48,-2.244,-0.242,0.772,0.183 +48,0.880,-0.328,-0.213,-0.017 +48,0.603,-0.584,-0.656,1.018 +48,-3.848,-0.831,0.209,-0.247 +48,1.590,0.133,-0.661,-0.065 +48,-2.572,-1.216,-0.505,0.419 +48,3.667,0.411,-1.495,-0.365 +49,1.970,-1.740,-0.791,1.613 +49,1.575,1.404,0.656,0.483 +49,1.800,1.813,-0.095,-0.166 +49,1.488,-0.372,-0.366,-0.538 +49,0.458,0.368,0.737,0.692 +49,3.625,0.186,-1.420,-0.338 +49,-1.437,0.089,-0.215,0.272 +49,2.828,-1.598,-1.775,0.039 +49,-2.733,0.038,-0.085,-1.766 +49,-1.147,-0.780,0.020,-0.541 +50,-3.664,-0.473,0.427,-1.311 +50,3.995,2.014,-0.950,0.343 +50,-1.559,-0.777,0.422,0.969 +50,-1.640,1.174,1.295,-2.164 +50,3.898,-1.331,-1.070,0.207 +50,1.047,1.415,0.205,0.343 +50,-2.494,0.313,0.096,0.419 +50,0.679,-0.030,-1.707,-1.256 +50,3.094,0.275,-1.096,0.316 +50,-1.785,2.583,0.174,-0.071 +51,1.880,0.126,0.633,0.501 +51,2.235,2.046,-0.435,-1.561 +51,2.130,-0.518,-0.084,1.507 +51,-0.025,1.209,0.393,-0.868 +51,3.092,0.832,-0.492,-0.361 +51,2.464,0.769,0.285,0.629 +51,-0.887,-0.232,-0.299,-1.320 +51,-2.278,0.595,-0.608,-0.468 +51,2.465,-0.760,-1.043,0.104 +51,1.200,-0.541,-0.786,0.585 +52,-0.585,-0.681,-1.111,0.206 +52,-0.001,0.313,-0.011,-0.330 +52,-2.064,0.172,0.468,-0.206 +52,2.236,0.813,0.343,0.332 +52,-5.225,1.958,3.055,-0.615 +52,-3.143,1.679,1.273,-1.067 +52,-1.666,-0.841,0.036,-0.260 +52,-3.680,-1.081,1.373,0.535 +52,4.455,-0.226,-1.404,1.075 +52,2.333,0.251,-0.597,-1.127 +53,1.574,0.724,-0.656,0.448 +53,-1.908,0.820,0.905,0.435 +53,4.639,2.302,-1.682,1.163 +53,-4.378,-2.057,0.433,-0.252 +53,0.423,-0.429,-0.394,0.559 +53,4.757,0.330,-2.044,0.957 +53,1.930,0.938,-0.258,0.739 +53,-0.164,-0.028,-0.642,-0.852 +53,0.087,2.305,0.669,-0.422 +53,-0.576,-1.828,-0.541,-0.020 +54,-1.900,-1.350,0.123,0.785 +54,1.552,-0.502,-0.884,0.923 +54,-3.983,1.371,1.807,-0.840 +54,4.666,-0.440,-1.302,1.481 +54,-4.322,-1.508,1.918,0.929 +54,-1.038,-1.173,0.327,1.551 +54,-4.185,-0.224,0.993,0.116 +54,1.527,1.558,0.605,0.695 +54,1.338,0.968,0.345,-0.464 +54,5.425,-2.053,-2.113,2.459 +55,-2.041,0.143,0.838,0.899 +55,-5.906,-0.649,0.859,0.636 +55,-0.896,-1.464,-1.813,0.638 +55,-3.709,1.788,0.937,0.156 +55,2.463,2.194,-0.830,1.480 +55,-0.661,0.618,-1.593,-1.310 +55,2.459,0.481,-1.046,1.488 +55,-1.561,1.402,0.546,-0.768 +55,-3.503,0.114,-0.341,-1.008 +55,-6.849,0.283,1.591,-0.483 +56,1.726,-0.215,-0.550,2.576 +56,-2.531,0.206,-0.413,-1.930 +56,-1.994,-2.159,-0.905,-0.459 +56,-0.821,-0.038,-0.598,0.487 +56,-4.719,-0.904,0.487,-0.920 +56,-5.948,-0.669,0.693,-0.097 +56,-1.048,-0.228,-0.459,0.112 +56,-0.620,0.112,-0.292,0.960 +56,-2.081,-0.091,1.384,1.528 +56,-1.761,-1.839,-0.629,-1.320 +57,0.075,0.467,0.845,0.766 +57,-1.729,1.307,0.509,-1.556 +57,-0.937,0.778,1.274,0.821 +57,5.041,-0.089,-1.535,1.051 +57,1.743,-0.828,0.088,0.310 +57,1.353,0.478,0.249,0.758 +57,-0.945,-0.071,0.324,0.404 +57,-2.857,1.384,1.623,-0.149 +57,-0.854,0.076,-0.622,-1.393 +57,-0.190,-0.219,-0.249,-0.150 +58,-3.036,-0.306,1.597,-1.592 +58,7.755,0.893,-1.651,0.322 +58,7.854,-0.447,-1.569,0.130 +58,-0.794,-1.871,-0.461,-0.656 +58,4.460,0.821,-0.762,0.254 +58,5.812,-0.264,-0.898,1.560 +58,-0.897,1.103,0.409,-0.920 +58,-2.883,-0.141,2.812,0.343 +58,0.281,0.397,0.221,-1.115 +58,2.691,0.417,-1.845,-1.678 +59,-2.474,1.756,1.723,1.503 +59,-0.786,0.826,0.857,-0.713 +59,-2.271,1.845,1.499,0.080 +59,-4.252,1.104,1.623,0.665 +59,2.237,0.154,-1.419,0.490 +59,2.842,0.312,-0.154,1.273 +59,-4.701,-0.538,1.046,1.008 +59,-0.690,0.112,-0.376,-0.141 +59,1.104,0.714,-0.717,0.733 +59,-6.472,-0.481,1.267,1.689 +60,-2.874,0.599,1.304,0.255 +60,-2.459,-1.345,0.875,1.478 +60,1.603,0.676,-0.272,1.598 +60,3.231,-0.427,-0.429,2.720 +60,-2.503,-0.052,-0.118,-1.575 +60,-2.147,-0.008,-0.506,-1.255 +60,-2.164,-1.288,0.106,-0.602 +60,-2.965,-1.093,-1.143,-0.555 +60,-0.039,0.664,1.032,1.310 +60,-1.669,-0.476,0.421,0.370 +61,-4.431,-1.143,1.485,-0.066 +61,0.890,-0.286,-0.027,1.377 +61,0.293,-0.333,-1.025,-0.153 +61,1.080,-1.457,-1.168,0.245 +61,3.126,0.463,-1.801,-0.027 +61,2.397,0.551,-0.397,0.453 +61,-2.897,-1.072,-0.260,-2.388 +61,-0.874,0.259,0.219,-0.349 +61,-4.387,-2.514,0.178,0.207 +61,-0.889,-0.206,0.455,-0.464 +62,3.146,0.616,-1.598,1.413 +62,1.374,0.541,-0.696,0.837 +62,-1.677,2.261,1.487,1.797 +62,-9.820,-0.180,1.344,-3.170 +62,-2.031,0.406,-0.900,-1.686 +62,1.744,-0.709,-1.613,0.925 +62,-1.406,-1.508,-1.203,0.778 +62,-4.337,-0.513,0.232,-0.540 +62,-2.969,0.084,-0.774,-1.351 +62,-4.210,0.734,0.801,0.073 +63,-3.706,-1.056,0.179,-0.258 +63,-3.948,-0.141,1.649,-0.450 +63,-5.833,-1.710,1.148,-0.294 +63,-3.023,0.794,1.400,-0.328 +63,-3.104,-0.238,0.374,-0.960 +63,-5.653,-0.413,1.419,-0.177 +63,2.825,0.370,-1.225,0.539 +63,-0.205,0.370,-0.349,0.105 +63,-4.344,0.070,0.558,-1.173 +63,3.806,0.298,-0.934,1.361 +64,-2.995,0.299,1.120,0.222 +64,3.819,3.240,-1.010,0.512 +64,1.129,-0.386,-1.883,-0.942 +64,-5.746,-2.489,1.593,0.456 +64,2.208,0.463,-1.417,-0.243 +64,-0.899,-0.657,0.095,0.155 +64,4.256,0.950,-1.954,-0.644 +64,-2.527,1.123,0.970,0.884 +64,-1.091,1.201,0.390,-1.054 +64,-2.696,0.350,1.312,0.142 +65,0.468,-1.677,0.010,0.463 +65,8.450,0.629,-2.047,1.215 +65,-0.024,1.440,0.163,-1.295 +65,4.694,0.981,-0.400,-0.606 +65,1.320,0.985,0.872,-0.505 +65,-2.195,0.760,0.875,-0.859 +65,-0.134,0.630,1.300,0.950 +65,1.870,-0.784,-1.029,-0.220 +65,-3.341,-0.469,0.546,-1.459 +65,-1.630,0.863,0.907,-0.960 +66,-2.512,-0.266,0.644,-1.435 +66,-1.546,-0.858,-0.451,-1.863 +66,2.164,1.008,0.618,-0.367 +66,-0.657,0.531,0.874,0.896 +66,-7.163,0.755,1.817,-1.287 +66,2.219,0.435,-1.981,0.605 +66,-2.108,1.111,0.165,-1.495 +66,0.637,-1.642,-1.713,0.271 +66,0.571,0.023,-0.271,-0.303 +66,4.315,0.373,-1.033,1.028 +67,-1.577,-1.953,-0.351,0.074 +67,2.137,2.228,0.618,0.713 +67,-0.259,0.507,1.456,0.528 +67,2.180,1.110,1.030,2.691 +67,-1.018,1.019,1.209,0.163 +67,-0.502,-0.677,-1.197,-0.372 +67,-5.064,-0.811,1.649,0.261 +67,-2.345,-0.010,0.925,-0.420 +67,-0.438,-0.711,-0.296,0.060 +67,-6.666,-0.973,1.661,0.378 +68,1.789,-1.080,-0.912,0.662 +68,2.694,0.182,-1.935,0.481 +68,-2.016,-1.505,-0.344,-0.266 +68,-0.087,1.678,0.111,0.310 +68,0.509,-0.203,0.132,1.852 +68,2.158,-0.430,-1.563,0.192 +68,2.538,-0.098,-0.748,0.544 +68,0.443,1.596,0.479,0.305 +68,-1.354,1.501,-0.140,0.651 +68,-4.017,1.332,1.213,-0.111 +69,-1.160,-0.994,-0.320,0.304 +69,-1.066,0.078,-0.369,-0.123 +69,-3.455,-2.185,0.341,-0.378 +69,-7.344,0.058,1.153,-1.763 +69,-0.815,-1.649,-0.564,-0.365 +69,-0.368,0.483,-0.655,-0.495 +69,3.920,0.088,-2.260,0.285 +69,3.544,-0.051,-1.580,-0.127 +69,0.540,1.121,0.378,-0.494 +69,-1.766,-1.680,1.333,-0.677 +70,0.505,-2.132,0.116,-0.128 +70,0.136,-2.086,-0.340,0.302 +70,-3.264,-0.247,0.609,-1.172 +70,0.404,1.904,0.231,-0.945 +70,-1.648,0.425,0.601,-1.868 +70,-2.909,0.399,0.914,-0.530 +70,0.130,0.087,-0.093,0.267 +70,-1.463,0.078,0.993,-1.703 +70,0.322,-0.408,-0.394,0.348 +70,2.110,-0.427,-0.602,0.527 +71,-2.352,-2.310,0.237,0.080 +71,-1.733,-1.087,0.237,-0.841 +71,2.554,-0.567,-0.957,0.912 +71,-3.456,-0.867,2.520,0.552 +71,-0.757,0.504,1.407,0.084 +71,0.515,0.650,0.666,0.628 +71,-1.751,0.336,1.438,0.933 +71,-0.180,0.071,0.393,0.108 +71,-0.238,0.581,-0.718,-0.513 +71,2.051,-1.057,-2.949,-1.085 +72,-6.198,-2.431,0.698,-1.339 +72,-0.762,-1.867,-0.588,1.275 +72,-0.885,-0.434,-0.137,-0.402 +72,-4.173,-0.335,0.993,0.225 +72,0.543,0.209,-0.378,1.474 +72,-3.284,0.274,1.394,0.495 +72,1.142,0.009,0.200,1.215 +72,0.763,1.810,-0.078,-1.112 +72,-6.039,-0.708,1.110,0.094 +72,-2.611,-0.343,-0.092,-1.483 +73,2.261,1.463,-1.092,0.401 +73,-9.199,-0.284,1.951,-1.369 +73,5.924,2.285,-1.207,0.592 +73,-6.053,-0.520,0.388,-0.258 +73,-2.715,-0.584,-1.259,-1.696 +73,-1.393,-0.675,-0.124,0.748 +73,0.016,-0.983,-0.356,0.325 +73,-4.934,-1.859,0.342,0.239 +73,1.975,0.753,-0.368,0.738 +73,2.399,0.910,-1.242,-0.936 +74,-3.831,-0.450,1.332,-0.491 +74,-2.370,-0.220,0.171,-1.711 +74,0.361,-0.590,-0.197,-0.255 +74,-1.935,-1.019,1.140,0.775 +74,6.135,-0.678,-2.944,1.388 +74,2.752,0.982,-0.022,-1.240 +74,-6.363,-2.525,1.626,-1.948 +74,-0.044,0.331,-0.152,0.063 +74,2.534,-0.240,-0.449,0.901 +74,-1.740,-1.053,1.390,0.383 +75,-0.103,-0.550,-0.491,0.431 +75,1.159,-0.587,-0.766,1.055 +75,0.361,-0.417,0.051,-0.314 +75,-1.968,-0.683,-0.043,-0.092 +75,0.302,1.069,1.601,2.402 +75,1.462,0.662,-1.385,-1.588 +75,1.729,-1.630,-0.524,1.932 +75,-2.485,0.685,0.049,-0.733 +75,-2.368,-0.202,-0.353,-0.991 +75,0.861,1.239,0.258,0.003 +76,0.079,-0.262,-0.767,-0.455 +76,3.358,1.165,0.225,2.377 +76,-1.728,-1.453,0.077,-0.715 +76,-0.690,0.951,-0.111,-0.638 +76,-2.702,-0.934,0.940,0.876 +76,1.708,-0.120,-1.204,0.177 +76,1.030,0.136,-1.206,-0.778 +76,3.450,0.616,-0.250,1.930 +76,3.211,-0.881,-0.352,1.963 +76,1.049,0.894,0.276,2.085 +77,-2.008,-0.197,-0.228,0.933 +77,-5.884,-1.617,0.940,-0.698 +77,-5.632,-1.403,0.296,-1.125 +77,-2.229,0.805,-0.627,-1.038 +77,-2.273,1.540,0.873,0.508 +77,-2.848,-0.157,0.717,1.029 +77,-0.702,-1.660,-0.779,0.201 +77,3.758,1.748,-0.580,1.098 +77,-1.856,-1.737,0.173,1.830 +77,4.175,0.855,-0.334,1.928 +78,-6.126,-0.308,1.590,-0.064 +78,2.012,-0.103,-1.603,0.858 +78,-1.806,-0.709,-1.165,1.556 +78,-4.015,-1.540,-0.858,-0.733 +78,-4.064,-0.989,0.492,-0.135 +78,3.969,0.472,-0.202,1.616 +78,-0.202,-0.301,0.843,0.571 +78,-0.988,0.883,0.313,-1.922 +78,-1.037,0.267,0.941,-0.487 +78,0.216,-0.667,0.142,2.078 +79,-5.819,1.749,0.594,-1.080 +79,0.952,1.733,-0.164,-0.208 +79,-4.258,-1.089,-0.363,-0.162 +79,6.662,-0.424,-3.015,3.278 +79,-4.843,-1.898,0.597,1.031 +79,-2.060,0.905,-0.048,-0.121 +79,-7.295,-1.295,1.905,0.156 +79,-2.954,0.402,0.039,-1.023 +79,-5.308,-0.638,0.638,-0.869 +79,-0.916,-0.090,-0.749,-1.479 +80,-2.441,0.520,0.431,-1.029 +80,-1.315,0.129,0.251,-1.574 +80,-3.015,-0.952,0.097,-1.162 +80,1.581,0.990,-1.243,-1.140 +80,1.556,1.765,0.218,0.484 +80,2.332,1.181,-0.604,0.703 +80,-2.282,-0.812,0.855,-0.306 +80,-0.836,-1.404,-0.638,-0.011 +80,-1.535,-0.909,-0.191,-0.527 +80,-5.520,0.723,2.488,-1.129 +81,-1.830,0.155,1.039,-2.495 +81,3.005,0.439,-1.595,0.106 +81,-4.380,-1.220,0.931,1.132 +81,3.925,1.654,-0.826,-0.834 +81,0.490,0.962,0.499,-0.313 +81,2.340,-0.132,-0.427,-0.597 +81,-3.939,-1.169,0.918,-0.972 +81,3.428,0.167,0.482,0.793 +81,2.457,-0.274,-0.548,-1.251 +81,1.670,0.105,0.682,-0.048 +82,4.656,0.341,-1.466,-0.020 +82,2.453,-0.598,-0.879,0.585 +82,4.198,0.292,-0.891,1.523 +82,0.981,-0.564,-0.226,1.833 +82,-1.615,0.363,1.307,0.625 +82,1.657,-2.018,-0.054,-0.468 +82,-2.971,-1.262,1.126,-0.618 +82,1.763,-0.072,-1.046,-0.771 +82,2.067,1.024,0.246,-0.397 +82,5.828,-0.021,-1.961,-0.887 +83,-2.209,-1.498,0.574,0.200 +83,-5.588,-1.989,0.937,-0.774 +83,-1.136,0.674,0.952,0.131 +83,-1.935,-1.700,0.534,0.161 +83,-3.567,-1.518,-0.337,-0.828 +83,2.354,-0.520,-0.168,1.217 +83,-0.032,0.693,-0.320,-0.139 +83,-3.320,-2.033,0.748,-0.153 +83,-0.601,0.828,0.456,-0.816 +83,-1.409,-3.310,-0.285,2.011 +84,-3.929,0.348,-0.531,-2.952 +84,-4.121,-0.257,0.406,-0.594 +84,-1.069,1.365,-0.445,-0.954 +84,-2.144,-0.068,-0.320,0.590 +84,-1.840,-0.736,0.238,0.829 +84,-1.111,0.443,0.412,0.598 +84,0.924,1.686,0.178,0.283 +84,3.254,0.983,-1.199,0.778 +84,1.728,-1.360,-0.046,0.491 +84,-0.374,-0.188,-0.230,-0.066 +85,0.606,-0.259,1.321,0.925 +85,7.176,0.513,-1.508,2.212 +85,-1.193,1.021,0.749,-0.021 +85,1.726,2.851,0.451,-1.272 +85,-5.578,-0.004,3.052,-0.879 +85,1.767,-0.067,-0.259,-0.221 +85,-2.564,-0.843,0.863,0.185 +85,-2.548,-0.796,-0.205,-0.340 +85,-0.434,-0.351,0.041,0.492 +85,0.388,0.030,0.168,-0.014 +86,0.094,-0.866,-0.290,1.217 +86,3.301,1.402,-0.121,-0.416 +86,-3.511,0.149,2.777,-1.295 +86,3.018,-0.431,-0.614,1.391 +86,-0.028,1.299,0.950,-0.386 +86,0.567,-0.528,-0.125,1.022 +86,0.387,0.744,0.265,-0.025 +86,-0.006,0.709,0.084,0.572 +86,3.578,-0.393,-0.486,1.559 +86,-3.285,-0.756,2.053,0.611 +87,4.731,0.532,-0.226,2.548 +87,-0.657,-0.412,0.947,1.211 +87,-4.734,-0.830,1.115,-1.103 +87,1.456,0.442,0.084,-0.528 +87,4.756,0.920,-1.346,-0.972 +87,0.821,-0.853,-1.141,1.121 +87,0.314,0.297,-0.782,-0.805 +87,-2.199,0.050,1.533,0.899 +87,-3.158,0.211,0.749,0.783 +87,0.254,1.471,-0.579,-0.251 +88,-0.865,0.168,1.200,0.642 +88,2.451,1.370,-0.274,-0.242 +88,0.312,-1.181,0.664,-0.112 +88,-5.395,-0.112,2.361,0.185 +88,-3.367,-0.485,0.644,0.024 +88,1.195,1.153,-0.518,-2.101 +88,1.551,0.515,-0.734,-0.886 +88,-2.132,0.275,0.973,-0.666 +88,1.786,0.425,-0.507,1.020 +88,-0.462,1.246,1.628,-0.804 +89,2.312,0.820,-0.371,-0.658 +89,-4.450,-0.863,0.318,0.312 +89,-2.346,-0.474,1.364,1.379 +89,0.152,-0.901,-0.621,-0.187 +89,2.896,1.603,-0.152,0.963 +89,4.602,1.910,-0.469,0.871 +89,-3.902,-0.714,-0.305,-0.776 +89,1.855,-0.269,-0.154,0.196 +89,-2.482,-0.836,0.649,0.176 +89,-3.053,-0.761,1.485,0.608 +90,-6.035,-0.432,0.251,-0.863 +90,1.492,0.832,-1.281,1.144 +90,-3.158,-0.905,-0.441,-1.495 +90,-2.837,1.323,-1.088,-1.365 +90,-5.454,-0.180,-0.516,-2.322 +90,-4.642,0.548,0.757,0.157 +90,-2.400,-0.203,0.221,-0.581 +90,-1.076,-0.006,-0.578,0.602 +90,-1.746,1.691,-0.011,-1.032 +90,-4.686,0.977,0.279,-1.075 +91,-0.134,0.622,0.043,0.840 +91,2.256,-0.572,-0.749,1.375 +91,0.396,1.052,1.615,-0.181 +91,-0.094,-0.544,-1.093,-1.235 +91,-0.559,-0.206,0.458,0.300 +91,-3.244,-0.862,0.963,1.264 +91,1.182,0.731,0.078,-0.166 +91,-0.760,-0.328,0.669,1.268 +91,-5.022,-0.198,1.453,-1.667 +91,-1.189,0.317,0.952,-0.401 +92,0.580,0.888,1.033,1.164 +92,1.151,-0.687,-0.473,0.065 +92,0.638,0.210,0.654,0.130 +92,6.303,0.448,-2.154,0.038 +92,10.819,1.068,-2.702,0.719 +92,1.840,-0.368,-0.862,0.656 +92,0.818,0.313,-1.135,-1.209 +92,1.714,0.479,-1.777,-0.647 +92,-3.757,-1.726,1.294,-0.103 +92,2.867,-0.200,-0.367,1.559 +93,-1.075,0.737,0.683,0.387 +93,-1.809,-0.192,1.225,1.253 +93,-0.162,0.718,-0.864,-1.996 +93,-0.086,0.800,-0.760,0.345 +93,0.277,-0.310,-0.578,0.628 +93,1.038,0.223,-0.851,-0.123 +93,0.096,2.373,1.025,0.263 +93,2.424,0.321,-1.386,-0.968 +93,5.238,1.276,-1.405,-0.091 +93,-0.541,-0.579,0.121,0.774 +94,-1.807,0.770,1.650,0.646 +94,-1.648,0.233,0.561,-1.161 +94,-0.516,-0.139,-0.222,-0.606 +94,-1.644,-0.304,0.246,-0.916 +94,3.475,-0.042,-1.237,1.457 +94,-1.850,-0.391,1.486,0.723 +94,1.006,0.340,-0.705,0.871 +94,-1.020,-0.365,-0.471,0.809 +94,4.580,2.225,-1.202,-0.200 +94,-0.687,-0.569,0.684,0.523 +95,2.804,0.196,-0.594,0.440 +95,-0.051,1.191,0.500,0.752 +95,3.468,0.263,-0.570,0.267 +95,3.511,0.291,-0.645,1.487 +95,0.147,-0.069,-0.055,-0.422 +95,-1.176,0.338,0.728,0.625 +95,-3.518,0.026,0.956,0.229 +95,1.703,0.511,-0.103,0.764 +95,1.575,0.867,-1.132,0.097 +95,3.817,-0.037,-1.496,1.547 +96,-6.757,1.237,2.496,0.803 +96,-0.048,-0.285,0.283,1.723 +96,-2.052,-1.054,0.310,0.081 +96,-0.007,1.248,0.582,0.685 +96,-3.161,0.926,0.366,-1.011 +96,0.632,-0.137,-0.067,-1.231 +96,0.250,-0.482,0.221,-0.671 +96,0.879,0.428,-0.225,-1.159 +96,0.724,-0.468,1.086,2.674 +96,-1.573,-0.328,0.813,0.170 +97,1.169,-0.655,0.056,0.658 +97,3.806,2.158,-0.927,-0.323 +97,-1.313,-2.615,0.139,-0.456 +97,2.646,0.018,-0.956,-0.439 +97,0.050,-1.130,-0.616,-0.887 +97,-2.652,-0.453,0.642,0.385 +97,-3.565,0.654,1.795,-0.327 +97,0.896,1.009,0.958,0.189 +97,-3.316,0.398,1.637,-1.229 +97,2.441,1.499,-0.374,-0.620 +98,-1.405,0.612,0.079,-1.122 +98,-2.941,-1.028,1.913,-0.509 +98,3.193,1.168,-1.521,-2.237 +98,-4.622,-0.978,1.839,-1.000 +98,0.185,0.659,0.991,2.953 +98,-4.008,-1.294,1.003,-0.390 +98,-1.857,-1.240,-0.299,-1.865 +98,-0.406,0.958,0.529,0.067 +98,1.283,-0.802,0.600,1.152 +98,-7.966,-0.242,2.226,-1.481 +99,-2.571,2.002,0.371,-0.166 +99,-2.924,0.065,-0.034,-0.482 +99,0.137,0.299,-0.754,-0.868 +99,-2.847,0.779,-0.981,-0.540 +99,-5.385,-0.866,0.915,-0.089 +99,-0.454,0.435,-1.368,0.557 +99,-5.394,0.128,1.273,-1.093 +99,-6.883,0.039,2.217,-0.760 +99,-1.998,-0.373,-0.110,0.279 +99,-3.484,-0.270,0.246,-0.002 +100,-7.087,-0.600,0.463,-0.620 +100,-1.886,-1.771,-0.796,1.421 +100,-4.757,-0.067,-0.247,0.368 +100,-0.149,1.066,0.341,1.617 +100,-4.014,0.477,0.520,1.457 +100,-1.022,2.134,0.000,-0.885 +100,0.773,0.077,-1.151,0.090 +100,-4.506,0.940,2.135,0.141 +100,3.558,0.064,-2.049,0.733 +100,-1.154,-0.330,0.284,0.868 +101,-3.250,0.475,1.767,-1.083 +101,2.638,0.845,-0.576,1.867 +101,-1.530,0.569,0.612,0.277 +101,-0.874,-0.574,-0.296,0.148 +101,-6.408,-0.515,0.451,-2.040 +101,4.064,1.397,-0.700,0.223 +101,1.426,0.048,0.188,-0.982 +101,1.379,-0.289,0.687,1.812 +101,0.994,0.640,-0.503,-0.723 +101,4.370,0.626,-1.172,-0.831 +102,-4.626,0.884,2.596,0.302 +102,-3.741,-1.861,0.571,-0.545 +102,-0.996,-1.187,-2.024,-1.703 +102,1.295,-0.103,-0.417,0.056 +102,-1.520,-0.189,-1.102,0.365 +102,0.891,0.023,-0.687,0.964 +102,4.007,1.979,0.251,0.490 +102,-3.814,-1.175,0.793,-0.128 +102,0.732,1.256,-0.176,0.183 +102,-4.669,-1.436,0.532,-0.348 +103,-3.578,-1.417,1.690,0.213 +103,2.926,-0.161,-0.811,0.682 +103,5.683,1.922,-0.644,1.270 +103,-5.110,-1.453,1.143,-0.864 +103,-0.669,-0.004,0.248,1.772 +103,3.036,1.107,-1.158,-1.330 +103,-2.228,-0.258,-0.514,-0.905 +103,-3.765,-1.047,1.031,-0.041 +103,-1.167,-0.074,0.733,0.282 +103,3.295,0.101,-2.898,-1.013 +104,0.599,-0.642,0.071,-0.097 +104,2.437,1.440,-0.901,-1.464 +104,-1.320,-0.844,-0.332,0.009 +104,2.702,1.833,1.595,1.750 +104,-0.647,0.637,-0.200,0.371 +104,1.581,0.875,-0.251,-0.822 +104,1.297,-0.538,0.385,-0.135 +104,0.497,0.567,0.714,0.961 +104,5.281,1.114,-1.471,-0.423 +104,0.429,-0.427,0.438,0.235 +105,-0.075,-0.377,0.233,0.032 +105,-0.008,0.870,-0.787,-0.014 +105,-1.805,0.464,0.386,0.087 +105,-1.564,0.990,0.720,-0.553 +105,0.097,0.471,0.092,0.387 +105,1.363,0.286,-0.516,-0.878 +105,2.158,0.008,-0.615,-0.272 +105,-1.390,-1.953,-0.063,1.072 +105,3.214,0.896,-0.728,0.165 +105,0.292,-0.213,0.598,-0.092 +106,-4.407,0.190,1.269,-0.941 +106,0.873,0.207,-1.625,-1.286 +106,-1.247,-0.976,0.347,-0.160 +106,-2.016,-0.461,1.074,-0.123 +106,-2.333,-1.475,-1.130,-1.305 +106,-3.574,0.743,1.230,-1.348 +106,-0.225,-0.374,-0.139,-0.335 +106,0.171,1.254,-0.084,-1.127 +106,-0.640,-0.137,1.057,-0.230 +106,-0.333,0.566,-0.133,-1.560 +107,1.983,-0.735,-1.415,-1.435 +107,1.655,-0.716,-0.074,0.697 +107,1.150,1.343,1.233,0.214 +107,-0.625,0.040,2.119,1.563 +107,-1.128,-0.125,1.087,1.409 +107,1.367,0.237,0.308,0.749 +107,0.387,-0.409,-0.229,-0.092 +107,3.943,0.563,-0.448,0.228 +107,2.859,0.163,0.204,0.562 +107,1.316,0.045,1.054,-0.316 +108,0.678,-0.004,-0.847,-0.998 +108,-2.830,0.509,0.400,-1.209 +108,-3.589,-1.894,0.457,0.408 +108,-4.282,0.952,1.241,-3.157 +108,2.738,-0.358,-1.049,0.665 +108,1.696,1.070,-0.380,0.203 +108,2.566,-0.823,-0.874,-0.366 +108,-3.044,0.501,1.537,-0.908 +108,-0.628,-0.115,-0.454,-1.450 +108,-2.061,-1.412,-0.411,-0.484 +109,3.495,0.895,-0.821,-0.717 +109,1.285,-0.291,0.099,0.157 +109,2.031,-0.467,-0.728,0.661 +109,-0.780,-0.225,-0.022,-0.877 +109,-0.180,-1.162,0.023,0.553 +109,-2.237,-0.848,0.569,-0.918 +109,-0.302,0.180,0.765,0.267 +109,-2.529,1.125,1.416,-2.126 +109,-4.125,0.659,1.906,-0.651 +109,-1.774,-1.177,0.391,0.633 +110,1.277,-0.056,0.048,0.218 +110,2.150,0.729,0.571,2.470 +110,-1.645,0.778,1.537,2.191 +110,1.882,0.661,-0.495,-1.252 +110,0.482,1.266,-0.525,-3.117 +110,-2.728,-0.118,0.105,-0.375 +110,-1.472,-0.664,-0.745,0.104 +110,2.318,0.945,-0.527,0.676 +110,-7.732,0.817,2.809,-1.853 +110,0.921,-0.470,-0.713,0.194 +111,-2.592,0.536,0.702,0.603 +111,-1.206,-0.017,0.274,1.012 +111,-3.046,-0.024,0.037,0.098 +111,1.533,1.257,-1.068,-0.805 +111,-3.113,0.158,0.449,0.280 +111,-3.204,0.226,-0.224,-0.714 +111,-0.276,0.214,-0.171,0.297 +111,-4.681,-0.524,0.228,-1.293 +111,3.001,2.159,-1.117,1.272 +111,-1.571,1.362,0.144,-0.491 +112,-1.363,0.285,0.426,-1.155 +112,-2.094,-0.554,0.785,0.118 +112,3.246,0.698,-1.494,-1.482 +112,5.205,2.803,-0.511,1.702 +112,-1.788,-0.297,0.530,0.079 +112,1.335,0.260,0.375,-0.300 +112,-0.672,-1.587,0.547,-0.792 +112,4.900,-0.525,-1.359,-1.271 +112,0.852,-0.487,-0.397,0.001 +112,2.302,-0.768,-0.476,0.515 +113,3.351,-1.462,-1.301,-0.887 +113,-1.231,-1.532,-0.413,1.017 +113,-2.011,0.595,0.999,-0.051 +113,2.865,0.384,-1.844,-0.147 +113,-0.333,0.062,0.863,-0.939 +113,3.297,0.283,-1.448,-0.819 +113,-0.543,-0.117,1.171,-0.314 +113,4.399,-0.191,-0.712,0.321 +113,5.240,-0.134,-2.415,0.228 +113,-1.111,0.519,0.488,-1.859 +114,0.075,-0.363,-0.713,-1.119 +114,-2.079,-1.178,1.945,1.691 +114,-2.373,-0.955,-0.124,0.097 +114,-3.619,-1.342,0.420,0.365 +114,6.590,0.342,-2.164,1.129 +114,2.757,-0.686,-0.402,0.863 +114,-0.003,-0.628,-0.532,-2.095 +114,3.244,-0.533,-0.078,1.849 +114,7.313,2.968,-1.222,0.080 +114,-0.583,-0.282,-0.892,-1.702 +115,5.231,0.491,-1.422,-0.389 +115,-4.483,-0.102,1.422,-0.254 +115,0.564,0.250,0.239,-0.934 +115,4.562,1.178,-0.736,1.027 +115,1.893,-1.127,-0.878,1.825 +115,4.777,-0.680,-2.024,-0.324 +115,1.793,-1.585,-0.011,1.406 +115,2.135,0.664,-0.726,-0.822 +115,6.124,0.774,-2.213,-0.109 +115,-2.695,-1.536,1.558,0.205 +116,-0.298,-0.044,-0.356,-1.101 +116,-1.415,-2.640,-1.106,-0.943 +116,-2.626,1.732,0.228,0.819 +116,-4.190,-0.441,1.543,0.019 +116,-6.450,-0.150,0.210,-1.701 +116,4.290,-0.118,-0.596,0.090 +116,3.710,0.644,-1.231,-0.524 +116,5.326,0.319,-0.378,1.017 +116,3.552,-0.244,-0.274,0.429 +116,2.409,1.246,0.087,0.554 +117,-3.510,0.025,1.729,-1.137 +117,1.717,0.406,-0.819,-0.803 +117,1.579,0.874,-0.266,-0.287 +117,2.632,0.359,-1.228,-0.446 +117,-0.934,-0.080,0.298,0.647 +117,3.636,-0.869,-1.186,0.892 +117,-0.953,-0.323,-0.398,0.035 +117,1.822,2.503,0.983,0.529 +117,-1.162,-0.262,0.223,-0.824 +117,-4.449,-0.965,1.439,-0.759 +118,1.427,0.362,-1.074,-1.702 +118,2.373,-2.322,-0.920,0.083 +118,3.944,0.569,-0.776,1.586 +118,0.276,-0.157,0.266,-0.840 +118,-4.256,-0.730,0.024,-1.476 +118,-0.823,-0.723,1.088,-0.983 +118,-0.745,-0.724,0.200,-0.328 +118,2.670,-0.535,-1.203,1.679 +118,-1.127,-0.014,0.510,-0.796 +118,3.674,0.795,-0.075,2.215 +119,-0.259,-0.011,-0.335,0.662 +119,-1.087,-0.446,-0.139,0.918 +119,-5.336,-0.902,-1.058,-2.252 +119,-4.049,-1.028,-0.744,0.259 +119,-3.193,0.791,-1.073,-3.004 +119,-5.987,-0.588,0.001,-0.512 +119,-1.798,0.872,1.022,1.686 +119,0.029,1.886,0.296,1.225 +119,-1.642,-0.685,-1.210,0.015 +119,-2.636,-0.967,0.309,1.279 +120,-6.934,-0.910,0.896,-0.738 +120,1.008,0.417,-1.468,-0.314 +120,-3.432,0.406,0.358,-0.908 +120,-6.057,0.571,0.779,-1.208 +120,-1.562,0.216,0.869,0.109 +120,0.412,1.053,0.237,-0.319 +120,-2.766,0.405,0.934,0.600 +120,-3.247,0.530,0.765,-1.679 +120,-0.361,-0.915,0.051,0.875 +120,-2.146,-0.443,0.443,-0.100 +121,2.712,0.381,-1.467,-0.175 +121,0.352,0.608,0.005,-0.996 +121,-1.689,-0.517,0.047,-1.773 +121,0.307,-0.928,-0.287,-0.284 +121,3.261,0.185,-0.388,0.686 +121,3.883,1.578,-0.371,0.992 +121,3.532,0.640,-0.270,0.058 +121,6.680,0.708,-1.467,0.417 +121,3.094,0.565,-1.003,-0.250 +121,0.080,-1.368,0.495,-0.543 +122,0.725,-0.569,0.575,1.394 +122,2.762,0.053,-0.596,0.502 +122,0.922,0.580,0.621,2.422 +122,-0.719,-2.162,0.517,0.978 +122,3.497,1.696,-0.500,-0.041 +122,-1.030,0.302,0.319,-0.044 +122,-1.254,-0.704,1.720,0.812 +122,-0.278,-0.089,0.844,-0.698 +122,0.264,0.619,0.141,-1.561 +122,5.685,0.186,-1.548,0.057 +123,-4.541,-1.413,2.011,-0.991 +123,1.404,-0.508,-0.847,-0.944 +123,-0.029,1.747,1.156,0.494 +123,1.203,-1.308,-1.599,1.339 +123,2.097,0.012,-0.093,0.561 +123,-0.858,0.609,0.975,1.331 +123,2.570,-0.203,0.303,1.016 +123,0.232,-1.063,-0.958,-1.362 +123,1.585,-1.011,-0.622,-0.447 +123,-3.551,-0.594,1.644,-1.392 +124,-6.854,-0.496,1.115,-0.628 +124,0.308,0.160,-0.693,0.019 +124,-4.326,-0.986,-1.466,-1.201 +124,-1.815,1.489,-0.094,-0.319 +124,-2.570,-0.131,0.685,1.315 +124,-1.075,0.180,0.062,-1.575 +124,1.916,0.206,-0.612,0.557 +124,2.195,1.332,-0.426,0.360 +124,-0.644,1.073,-0.245,-0.270 +124,-6.403,-0.604,1.281,-0.524 +125,-0.985,-0.174,-0.396,0.078 +125,-0.234,2.151,0.230,-0.902 +125,4.112,0.569,-2.494,-1.591 +125,-6.095,-1.135,2.036,0.068 +125,-0.841,-0.039,0.866,1.168 +125,-3.203,0.264,0.843,-1.005 +125,5.067,0.018,-0.453,2.571 +125,0.593,0.781,0.366,-0.549 +125,-0.628,1.090,1.318,0.723 +125,0.409,0.602,0.457,0.442 +126,-3.997,0.558,0.573,-1.716 +126,-6.155,1.028,2.677,0.510 +126,-1.013,2.870,1.838,1.560 +126,-1.629,0.042,-0.687,0.470 +126,-5.318,-0.847,1.021,-0.100 +126,-1.303,-1.850,-0.055,1.614 +126,-2.754,-0.707,0.115,-0.385 +126,-2.229,-0.605,-0.067,-0.616 +126,0.867,0.443,-1.431,0.451 +126,-2.450,0.482,-0.494,-0.962 +127,-1.162,1.263,0.671,-0.127 +127,-1.825,0.716,1.137,-0.382 +127,-0.988,0.689,0.250,-0.456 +127,-4.699,0.186,2.471,0.587 +127,-3.415,-0.468,0.444,-0.364 +127,0.245,-1.526,-0.623,0.677 +127,4.078,-0.235,-0.341,1.024 +127,0.937,0.198,-0.338,-0.942 +127,1.464,0.381,-0.331,-0.412 +127,-4.727,-0.842,0.881,-1.915 +128,2.911,-0.856,-0.847,1.222 +128,-0.774,-0.527,0.925,2.185 +128,-0.972,1.745,0.341,-1.917 +128,0.164,1.761,0.912,1.481 +128,-0.067,0.369,-0.703,-0.674 +128,-4.687,-1.288,0.063,-1.934 +128,-1.478,0.740,0.326,-0.543 +128,-3.222,-0.320,0.475,-0.091 +128,3.322,-0.310,-0.523,2.172 +128,5.264,-0.661,-2.300,1.681 +129,-0.125,-1.825,0.591,1.672 +129,-0.389,-0.689,-0.585,-1.214 +129,-7.974,-1.620,0.790,-1.446 +129,-1.346,0.341,0.384,-0.270 +129,1.441,0.243,-1.065,0.914 +129,-2.394,0.567,0.547,-0.762 +129,-0.951,-0.336,-0.426,-1.487 +129,-1.618,0.242,-0.323,0.472 +129,4.307,-1.051,-0.943,2.107 +129,0.851,-0.169,-0.977,0.037 +130,2.739,0.235,-0.880,-0.482 +130,2.367,-2.169,-1.221,1.712 +130,2.442,2.112,1.239,1.282 +130,5.283,1.713,-0.424,-0.027 +130,4.151,0.647,-0.215,0.100 +130,2.635,1.982,-0.513,0.353 +130,1.107,1.123,1.200,1.114 +130,4.129,-1.041,-0.238,1.143 +130,-1.608,-2.053,-0.250,0.531 +130,-0.907,-0.145,0.498,-0.449 +131,-0.388,0.912,-0.254,0.052 +131,-0.802,-0.558,0.250,1.895 +131,-2.246,-1.399,0.032,0.877 +131,-3.274,-0.762,-0.138,-1.180 +131,-0.425,-1.013,-1.242,0.877 +131,-2.816,-0.506,0.722,0.185 +131,-4.351,-1.902,0.260,-1.866 +131,0.516,-0.036,-0.444,-0.195 +131,1.082,1.182,0.930,1.082 +131,-3.906,1.501,1.831,-0.230 +132,0.274,-1.626,-1.339,-1.101 +132,-4.955,-0.749,1.028,-0.039 +132,3.969,0.125,-1.870,-0.526 +132,-1.829,-0.739,0.488,-0.829 +132,1.084,-1.911,0.775,1.332 +132,6.592,3.811,-1.061,-1.174 +132,3.584,0.056,-1.641,-0.462 +132,2.940,1.492,0.089,1.205 +132,1.413,1.316,0.121,1.522 +132,-0.114,-0.249,0.268,-0.638 +133,1.899,1.055,-0.725,-1.330 +133,-3.703,-2.905,-0.922,-0.712 +133,-0.860,-0.511,-0.077,0.151 +133,0.327,-1.544,-1.264,-0.722 +133,5.761,3.218,-0.680,-0.285 +133,-1.664,-0.938,0.329,0.782 +133,1.930,1.231,-1.158,-0.652 +133,-0.578,0.070,-0.800,-0.241 +133,-1.146,-0.791,0.244,-0.069 +133,-1.478,-0.276,-0.389,-1.643 +134,-2.494,-0.186,1.936,-0.492 +134,1.078,-0.358,-0.305,-0.565 +134,0.666,0.974,0.749,0.845 +134,0.626,0.798,1.041,2.016 +134,2.362,0.356,-0.632,-0.257 +134,2.409,-0.057,-2.043,-1.113 +134,1.139,-0.598,-0.577,0.067 +134,-2.084,-2.276,-0.421,0.826 +134,0.292,-0.471,-0.868,-0.964 +134,0.946,2.074,0.984,0.112 +135,2.733,2.076,-0.246,-0.206 +135,-1.765,-0.771,-0.010,-0.459 +135,0.627,0.270,-0.027,-0.416 +135,3.774,0.120,-1.318,-0.196 +135,-1.844,-1.889,-0.320,-0.101 +135,2.669,-1.628,-0.862,-0.599 +135,2.581,-1.485,-0.167,-0.163 +135,0.661,0.124,0.649,-0.566 +135,2.165,-0.595,-0.692,-0.923 +135,5.976,0.191,-1.550,1.345 +136,-5.352,-0.766,0.572,-2.291 +136,3.755,1.172,-1.279,0.674 +136,-2.129,0.418,0.799,-0.947 +136,3.447,1.280,-0.081,-0.068 +136,0.578,0.295,0.713,0.291 +136,-0.068,1.109,0.904,0.806 +136,-0.597,-0.134,-0.013,0.948 +136,-1.216,-0.279,-1.111,-1.234 +136,-1.952,-1.084,-0.115,0.629 +136,-3.021,-0.664,0.568,-0.196 +137,2.406,1.739,0.573,-0.026 +137,-0.370,-0.219,0.016,-1.235 +137,-2.726,0.954,-0.249,-1.565 +137,-0.723,-1.132,-1.130,1.185 +137,-0.411,1.688,-1.085,-0.610 +137,5.469,1.703,-1.896,-0.626 +137,-1.731,0.109,0.335,0.381 +137,0.852,1.048,1.398,0.622 +137,2.496,1.482,-0.284,-1.431 +137,-2.046,0.013,-0.621,0.318 +138,-4.921,-1.797,1.316,-0.519 +138,0.745,-1.130,-1.076,-0.280 +138,1.699,1.118,0.717,0.224 +138,2.059,-0.516,-0.203,0.703 +138,1.134,1.270,-0.042,1.200 +138,3.317,2.072,-0.542,-0.536 +138,1.334,0.686,1.343,1.603 +138,-4.370,1.013,1.893,-2.051 +138,1.889,0.330,1.206,-0.258 +138,1.410,-0.700,-0.508,-0.212 +139,-3.361,-0.674,1.267,0.269 +139,-1.926,0.395,1.746,0.532 +139,-1.947,-0.675,-0.205,0.151 +139,-1.083,0.264,0.102,-0.403 +139,-4.798,-1.189,0.677,-0.459 +139,4.884,1.526,0.057,0.225 +139,0.244,-0.445,0.941,0.234 +139,4.914,1.319,-0.658,-0.372 +139,7.124,0.393,-1.904,0.909 +139,3.093,-0.543,-1.305,1.657 +140,-0.218,-1.051,0.307,2.264 +140,-2.117,-1.581,-0.207,0.390 +140,0.981,0.726,-1.316,-2.256 +140,-3.010,0.340,0.697,0.049 +140,-1.472,-0.167,0.686,0.210 +140,3.525,-0.794,-1.549,1.171 +140,-0.774,1.418,0.926,0.265 +140,-5.441,-1.207,1.208,0.931 +140,-0.656,-1.430,-1.038,-0.442 +140,1.110,-0.532,-0.198,0.727 +141,0.654,0.959,0.593,-0.184 +141,2.037,-0.199,0.233,1.610 +141,4.572,0.544,-0.731,1.858 +141,6.342,1.440,-0.691,0.173 +141,0.016,2.241,0.370,-1.340 +141,-0.807,1.300,2.451,0.116 +141,-0.126,-0.716,0.355,-1.018 +141,5.995,0.050,-0.894,0.350 +141,-0.367,1.823,0.768,-2.099 +141,3.059,0.644,-0.192,-0.403 +142,-1.261,1.762,-0.829,-1.038 +142,-2.910,0.221,0.367,1.027 +142,-1.902,0.295,-0.242,-0.558 +142,-2.997,0.812,-0.270,-1.107 +142,-1.286,0.879,-0.515,0.301 +142,-0.383,0.369,-0.276,-0.456 +142,0.281,0.018,-1.556,-0.542 +142,-4.307,0.685,0.395,-1.393 +142,-0.550,1.428,-0.454,-1.338 +142,-4.425,-0.922,0.605,0.011 +143,2.333,-1.122,0.202,0.801 +143,5.768,0.049,-1.472,0.035 +143,-1.639,-0.188,1.588,0.166 +143,-1.613,-2.460,0.457,-0.162 +143,-2.915,-0.955,0.987,-0.730 +143,1.102,-0.314,0.466,0.906 +143,1.042,-0.731,1.088,1.212 +143,2.297,-0.217,0.464,0.124 +143,0.270,-0.299,0.547,-1.664 +143,1.754,-1.817,-0.493,-0.437 +144,-1.891,1.006,-0.603,-0.978 +144,-0.947,-0.085,0.279,0.835 +144,0.273,0.060,-0.713,1.691 +144,0.602,-1.666,-1.753,0.357 +144,-1.997,-0.936,-0.206,0.773 +144,-1.610,-0.328,0.721,1.489 +144,-8.376,0.917,2.286,0.388 +144,3.774,1.055,-2.377,0.163 +144,-4.136,1.121,0.449,-0.033 +144,-3.827,0.831,0.242,-0.675 +145,1.514,0.467,-1.308,0.104 +145,-4.924,0.455,1.554,-0.127 +145,-3.616,0.116,-0.311,0.068 +145,-5.659,-0.676,1.332,-0.275 +145,-5.011,0.435,2.760,0.395 +145,2.710,0.831,0.279,0.678 +145,0.882,-0.542,0.036,-1.238 +145,-5.060,-2.963,0.952,-0.685 +145,2.120,-1.090,-1.468,-0.107 +145,3.587,1.219,0.555,1.909 +146,-0.261,0.481,-0.080,1.261 +146,3.193,0.243,-0.579,0.809 +146,-1.180,-0.361,0.403,-0.102 +146,-3.197,0.630,-0.139,-1.291 +146,-0.157,0.236,-0.613,-1.696 +146,-7.153,0.403,1.569,-1.854 +146,-4.556,-1.589,0.439,-0.970 +146,-3.393,1.566,1.155,-0.376 +146,-0.564,0.517,-0.524,0.640 +146,1.701,-0.985,-1.345,1.044 +147,1.306,0.322,0.407,0.532 +147,-1.624,1.594,0.600,-1.756 +147,3.121,-0.021,-0.871,-1.696 +147,3.118,-1.305,-2.094,-0.543 +147,1.019,-1.919,0.027,-1.150 +147,4.570,0.527,-1.103,1.339 +147,-1.641,0.272,0.586,0.469 +147,2.160,0.513,0.007,1.394 +147,-2.357,1.087,0.872,-0.269 +147,1.077,-0.056,-0.699,-1.249 +148,-2.165,-0.087,-0.502,-1.127 +148,1.461,-0.249,-1.104,-0.132 +148,-0.649,-0.985,0.364,1.930 +148,1.617,-0.468,-0.606,-0.513 +148,4.846,0.374,-1.062,1.083 +148,0.751,-0.675,0.484,-0.288 +148,0.604,-0.550,-1.202,-1.644 +148,-0.683,-0.615,0.076,-1.053 +148,0.178,1.486,1.516,0.721 +148,-4.154,-1.528,1.284,-0.957 +149,4.227,0.774,-1.145,0.222 +149,-3.530,-1.885,0.289,-1.953 +149,2.327,1.025,-0.752,-1.934 +149,4.669,0.164,-0.765,0.222 +149,4.005,0.532,-0.388,1.622 +149,3.737,0.702,-1.153,1.342 +149,-1.875,1.197,0.854,1.142 +149,-1.795,-0.444,0.792,1.821 +149,2.485,0.527,-0.989,0.809 +149,-1.633,-1.126,-0.292,0.143 +150,-4.899,-2.448,0.362,-0.910 +150,-1.196,0.613,0.548,-0.431 +150,-2.267,2.780,1.331,-0.590 +150,-1.225,-1.078,1.167,2.112 +150,-2.721,0.247,0.978,0.392 +150,1.496,-0.167,0.092,0.217 +150,-0.002,-0.484,-0.746,-0.702 +150,3.028,-0.049,-0.008,0.643 +150,-0.102,0.062,0.370,0.987 +150,2.183,0.544,0.597,0.048 +151,-3.486,-1.023,1.586,0.910 +151,-2.932,0.508,1.014,-0.835 +151,-6.036,0.813,0.429,-0.947 +151,-4.295,1.127,0.553,-1.166 +151,4.498,1.186,-1.461,1.216 +151,-0.105,0.604,0.197,0.551 +151,-0.796,0.067,-0.667,-0.127 +151,-0.813,1.477,-1.182,-2.047 +151,-0.980,0.734,-0.936,-0.605 +151,0.651,-0.214,-0.044,1.402 +152,-2.125,-0.944,0.745,0.820 +152,-5.842,-0.982,0.525,-0.819 +152,-4.763,1.371,0.753,-0.718 +152,0.986,0.933,-0.075,1.251 +152,-4.607,-0.451,-0.039,0.935 +152,-1.417,0.779,-0.519,-0.064 +152,-3.043,0.638,0.747,0.333 +152,-3.335,-0.006,0.861,1.428 +152,-1.122,2.048,-0.721,-1.570 +152,-3.070,-0.876,0.324,1.276 +153,-4.393,-0.662,1.111,-0.162 +153,4.690,-0.176,-2.173,-0.609 +153,-3.521,-0.181,0.624,-0.208 +153,-4.830,0.487,1.445,-0.048 +153,-1.531,0.083,-0.264,0.070 +153,-0.751,0.471,0.682,-0.332 +153,-1.841,0.624,1.527,0.846 +153,-0.765,-0.342,-1.045,-1.501 +153,0.787,-0.745,-0.851,-0.094 +153,6.147,-0.082,-1.666,0.946 +154,-1.962,-0.448,0.868,-0.516 +154,3.544,0.467,-0.207,0.794 +154,1.293,-1.250,0.261,0.594 +154,0.585,-0.024,-0.069,-1.668 +154,1.369,0.336,-1.254,-0.059 +154,1.126,-2.569,-0.758,1.015 +154,3.606,0.877,-0.687,2.202 +154,6.642,1.689,-0.851,1.645 +154,-3.274,-1.415,1.315,0.417 +154,-2.068,-0.866,1.813,1.594 +155,-0.694,0.150,0.539,-0.313 +155,-0.641,1.428,2.077,0.820 +155,4.344,2.349,-0.937,-1.917 +155,1.231,-0.862,-0.334,0.227 +155,4.491,-0.246,-1.249,0.198 +155,1.970,0.338,-0.241,-1.053 +155,6.844,1.231,-0.485,0.826 +155,-1.881,-1.583,-0.510,-1.892 +155,5.599,-0.138,-1.103,1.652 +155,5.117,-0.334,-1.141,1.600 +156,-2.902,1.087,0.656,-0.590 +156,-4.818,-0.963,0.896,1.246 +156,-1.599,-0.275,0.047,0.735 +156,0.153,0.116,-0.327,0.288 +156,-4.536,-1.881,0.615,-0.554 +156,2.506,1.200,-0.665,-0.936 +156,-4.363,-1.229,1.658,-0.279 +156,0.718,-0.709,-0.080,0.214 +156,-1.047,-0.176,-0.118,-0.889 +156,-1.149,0.471,0.587,0.155 +157,-4.610,-1.296,0.455,-1.073 +157,-0.636,0.061,-0.046,1.118 +157,-2.377,-0.141,-0.602,-0.691 +157,-2.597,-1.675,-0.085,0.357 +157,-3.067,0.038,0.028,-1.452 +157,0.661,0.028,-0.784,-0.369 +157,-4.713,-0.919,1.158,1.509 +157,-2.335,-1.361,0.123,0.564 +157,1.649,0.776,-1.521,-0.382 +157,3.241,-0.449,-0.843,0.137 +158,4.691,0.011,-0.598,1.830 +158,4.421,0.243,-0.871,0.671 +158,2.472,-0.054,0.287,1.751 +158,1.049,-0.051,0.641,-0.963 +158,-1.464,0.232,1.478,0.004 +158,0.002,0.637,0.752,0.307 +158,6.876,0.630,-1.205,1.123 +158,1.329,1.451,-0.049,-0.164 +158,-2.077,-2.107,0.701,0.325 +158,3.891,0.172,0.436,1.312 +159,-0.823,-1.313,-1.368,-1.425 +159,1.892,0.360,-0.065,0.839 +159,2.418,0.380,0.221,1.822 +159,-4.392,0.663,2.105,-1.375 +159,1.612,1.377,0.873,0.879 +159,1.218,0.469,-0.714,0.375 +159,-1.501,-1.094,-0.785,-0.553 +159,-4.134,-1.313,0.167,1.113 +159,-1.439,-0.727,1.036,1.639 +159,-4.243,0.374,0.427,-0.486 +160,-1.155,0.347,-0.157,-0.930 +160,-0.223,0.108,-1.602,-1.309 +160,3.973,-1.585,-2.735,1.081 +160,-4.079,-1.054,1.243,1.052 +160,1.326,-0.122,-1.959,-0.817 +160,-0.286,-0.119,-0.735,0.369 +160,2.993,0.257,-1.627,0.720 +160,-4.606,-0.479,0.501,-1.538 +160,-1.562,2.367,1.126,0.694 +160,-4.327,2.165,0.906,-2.263 +161,3.442,1.303,-0.105,0.825 +161,-3.102,-0.700,0.312,-0.652 +161,-0.138,1.818,0.637,-1.572 +161,2.081,1.313,-0.295,-1.348 +161,1.755,-1.173,-1.262,1.592 +161,-1.140,-0.366,0.829,0.925 +161,3.977,-0.069,-0.849,1.285 +161,3.277,-0.014,-0.573,0.554 +161,2.572,0.116,-1.485,0.432 +161,4.253,0.642,-2.236,-1.101 +162,1.790,0.773,-0.960,-0.662 +162,0.224,-0.137,1.245,2.066 +162,2.676,0.813,-0.585,-0.535 +162,2.231,-0.134,-1.209,0.024 +162,2.591,1.326,0.007,1.186 +162,0.516,-1.138,0.560,-0.163 +162,0.748,-1.105,-0.597,-1.558 +162,1.031,0.616,0.073,-0.098 +162,-3.009,-1.572,1.483,-0.361 +162,0.488,-0.549,-0.279,-0.087 +163,-3.447,1.400,2.168,-0.339 +163,-0.238,0.615,-0.008,-0.529 +163,-2.080,0.242,-0.048,-0.264 +163,-3.588,-0.191,1.220,-0.680 +163,-0.862,-1.883,-0.442,-0.098 +163,-0.889,0.983,1.330,1.548 +163,-3.610,-0.310,0.704,0.640 +163,1.401,-0.032,0.051,0.908 +163,4.509,0.949,-1.514,1.843 +163,-1.975,-1.128,0.491,-0.240 +164,-4.913,-1.304,0.815,-1.917 +164,1.494,-0.824,0.804,1.080 +164,-0.234,-0.967,0.136,0.222 +164,0.452,-0.805,-0.197,-0.429 +164,-4.216,-1.183,1.305,0.995 +164,0.003,-0.469,-0.189,-0.502 +164,-0.239,-1.139,-0.958,-1.384 +164,-0.490,0.647,1.715,0.439 +164,-2.632,-0.709,1.119,-1.118 +164,0.556,0.515,0.969,-0.288 +165,2.165,1.045,-0.117,0.344 +165,4.209,1.219,0.449,0.877 +165,0.144,0.746,0.230,-0.682 +165,-1.441,0.413,1.271,-1.168 +165,3.671,0.344,-0.454,2.288 +165,0.727,-1.197,0.068,-0.089 +165,-6.128,-0.722,1.395,-0.484 +165,1.938,-0.486,-2.168,-0.445 +165,-3.016,-1.484,-0.062,-0.778 +165,0.949,1.112,-0.466,0.288 +166,1.599,1.802,-1.059,-1.627 +166,-2.559,0.701,-0.632,-0.986 +166,2.103,-1.183,-0.983,1.625 +166,-4.004,-2.591,-0.458,-0.269 +166,-3.809,-1.109,1.348,-0.066 +166,-1.692,-0.515,0.333,-1.272 +166,-5.378,0.056,1.924,-1.633 +166,-1.398,-1.050,1.351,-0.266 +166,1.036,-0.508,0.594,1.279 +166,-2.741,-0.863,0.647,-1.752 +167,-2.163,0.193,1.295,0.471 +167,-6.664,-1.421,1.538,-0.544 +167,-0.422,0.159,-0.336,-0.337 +167,0.610,1.545,-0.467,-1.398 +167,1.402,-0.224,-0.070,0.672 +167,0.053,-0.443,-1.448,-0.564 +167,-2.997,1.021,0.718,-1.411 +167,6.286,0.971,-2.228,-0.113 +167,0.438,1.787,-0.265,-0.751 +167,-1.507,0.453,0.427,1.754 +168,1.358,-0.105,-0.689,-1.881 +168,-0.109,-1.347,0.094,-0.463 +168,-0.557,-0.379,0.450,1.653 +168,2.018,0.203,-0.291,-0.997 +168,1.444,-0.499,-0.019,-0.532 +168,1.566,-0.735,-1.555,-1.124 +168,2.410,-0.556,-0.103,-0.161 +168,-0.027,-0.449,0.689,-0.514 +168,-3.885,-0.217,1.770,-1.756 +168,7.011,0.426,-1.205,1.099 +169,2.783,-0.504,-1.296,0.618 +169,1.620,0.142,-0.841,-1.197 +169,-1.087,-0.559,0.451,1.174 +169,-1.666,-1.284,1.280,0.978 +169,4.328,0.754,-1.582,-1.431 +169,-3.058,-1.357,0.587,0.418 +169,-0.552,0.178,-0.161,0.377 +169,-7.710,-0.731,2.116,-2.190 +169,-3.435,-0.922,1.795,0.929 +169,0.116,-0.883,-2.308,-2.141 +170,2.403,0.880,-1.289,-0.891 +170,-1.620,1.109,2.211,-0.085 +170,5.376,0.570,-0.323,1.520 +170,-1.338,-1.413,0.067,-0.325 +170,1.890,0.672,0.791,0.741 +170,-2.057,-0.391,0.853,1.227 +170,-1.421,0.221,0.257,-0.794 +170,3.947,0.016,-0.083,2.574 +170,-4.074,-1.177,1.419,-0.332 +170,0.498,-1.793,-0.212,0.307 +171,-2.815,-0.924,0.483,-0.637 +171,-1.376,0.924,0.246,-0.172 +171,3.425,0.461,-1.821,-0.595 +171,-3.246,-1.525,0.149,-0.421 +171,0.802,-0.611,-1.325,-0.244 +171,-0.881,-1.186,-0.245,0.984 +171,0.542,1.068,-0.341,-1.283 +171,2.012,0.081,-0.246,1.149 +171,-1.171,-0.288,0.614,0.155 +171,-1.852,0.159,1.128,-1.331 +172,-1.176,1.405,1.828,-0.519 +172,3.909,-1.161,-1.949,0.635 +172,-0.941,1.007,1.005,-0.336 +172,4.101,0.329,-0.422,1.544 +172,1.370,-0.432,0.196,0.426 +172,-1.030,-1.242,-0.272,0.215 +172,0.631,0.224,-0.655,-0.680 +172,-1.364,-1.210,0.080,-0.292 +172,1.479,-1.464,-0.455,0.347 +172,0.342,-0.351,-0.087,0.698 +173,-2.697,-0.248,1.192,0.527 +173,-1.457,-0.718,-0.627,0.175 +173,-3.896,-0.178,1.532,0.374 +173,-0.907,0.469,0.550,0.750 +173,1.842,-0.331,-0.681,0.376 +173,-0.371,-2.054,-0.887,-1.011 +173,2.207,-0.486,-1.221,0.527 +173,1.107,-0.349,-1.025,-0.429 +173,-1.446,-0.180,1.333,0.688 +173,-0.654,0.553,0.792,0.728 +174,-4.177,0.214,1.307,-1.158 +174,-1.742,0.567,1.247,-1.154 +174,2.309,1.756,-0.765,-0.926 +174,-1.191,-1.288,0.722,1.166 +174,-0.599,-0.275,-0.598,0.561 +174,3.233,-0.826,0.070,0.181 +174,-0.588,-0.440,0.946,0.799 +174,1.364,-0.747,-0.754,0.272 +174,0.459,0.294,0.291,-0.499 +174,1.128,-0.212,-0.220,-0.134 +175,-0.111,-0.280,0.400,0.815 +175,5.323,1.175,-0.462,1.639 +175,3.833,0.536,-0.403,0.484 +175,2.777,1.008,0.140,1.113 +175,2.365,0.645,-0.467,0.465 +175,0.493,-1.682,-0.666,0.379 +175,0.556,-0.419,-0.082,0.150 +175,-3.943,-0.242,1.375,-0.043 +175,-0.066,1.033,0.167,-1.175 +175,3.772,0.805,-0.760,0.357 +176,2.094,0.906,-0.544,1.654 +176,2.441,0.855,-0.268,0.610 +176,1.891,1.973,0.486,0.274 +176,2.294,2.177,-0.067,0.537 +176,1.547,0.801,-0.643,-1.450 +176,-0.493,-1.456,0.459,-0.512 +176,1.480,1.929,1.344,0.716 +176,3.812,0.425,-0.858,-0.041 +176,3.517,-0.123,-2.316,-1.105 +176,0.529,-1.167,-0.270,0.574 +177,1.362,-0.761,-0.312,0.975 +177,1.131,2.493,1.424,0.342 +177,-2.873,0.272,0.646,-0.236 +177,2.895,1.180,-0.102,0.596 +177,1.471,0.921,-0.592,-0.431 +177,1.566,-2.265,-1.322,1.513 +177,-1.444,-0.838,-0.740,-0.803 +177,-1.260,-0.711,-0.338,0.090 +177,-1.429,-0.813,0.274,-0.391 +177,-2.146,-1.030,0.472,0.023 +178,2.898,1.196,-0.648,1.465 +178,-5.403,-1.601,0.792,-0.821 +178,-1.107,-1.133,-0.788,0.012 +178,2.444,-0.357,-0.115,1.246 +178,-0.784,-1.304,0.409,0.968 +178,5.151,-0.900,-1.854,1.062 +178,4.362,1.498,-0.264,1.233 +178,3.985,1.021,-2.187,-1.288 +178,-3.103,0.061,0.945,-1.076 +178,1.846,0.084,-0.829,-0.503 +179,3.057,-0.111,-0.857,1.104 +179,-0.317,-1.762,-0.299,-0.138 +179,1.940,-1.112,-1.109,0.425 +179,-1.385,0.636,-0.053,-0.520 +179,-4.743,-0.403,0.353,-0.559 +179,-4.165,-0.848,0.319,-2.215 +179,-2.446,0.067,1.435,0.136 +179,2.142,0.723,-0.539,-0.343 +179,-1.661,0.875,-0.653,-2.136 +179,0.057,0.927,0.502,-0.208 +180,0.774,-0.189,0.581,-0.749 +180,-0.817,1.860,2.151,-0.475 +180,4.243,-1.070,-1.950,0.987 +180,1.624,1.229,-0.365,-0.386 +180,3.450,1.652,-0.811,-0.473 +180,1.745,1.229,-0.458,0.005 +180,-0.765,0.133,-0.179,-1.017 +180,-0.266,-0.767,-1.076,-0.579 +180,-2.333,0.578,0.291,-1.121 +180,-0.683,-0.044,0.532,-1.083 +181,3.594,-0.236,0.603,0.539 +181,4.216,1.386,0.519,0.379 +181,3.101,-0.686,-0.601,-0.714 +181,1.358,0.309,0.158,-1.823 +181,2.163,0.617,1.239,-0.002 +181,-0.064,-0.702,0.009,0.174 +181,1.410,-0.709,0.101,-0.478 +181,-4.849,-1.062,0.978,-3.014 +181,3.989,-1.290,-0.415,0.075 +181,5.121,-0.804,-1.252,0.834 +182,-2.162,0.800,0.401,-3.176 +182,3.330,0.589,0.089,0.354 +182,-0.749,0.214,0.088,0.287 +182,2.642,0.091,-0.340,0.002 +182,0.585,-1.090,-0.220,0.554 +182,0.056,0.989,1.046,-0.254 +182,-5.317,-0.569,1.062,-1.101 +182,2.021,0.261,-1.718,-0.606 +182,1.088,-0.723,0.793,2.206 +182,0.840,1.249,-0.252,-1.083 +183,0.248,1.138,-0.694,-1.522 +183,-5.273,-0.264,0.933,-0.525 +183,0.848,0.441,0.059,-0.529 +183,1.133,1.741,0.747,0.135 +183,-0.456,-0.838,-1.090,-0.913 +183,-4.527,0.147,1.978,-0.208 +183,4.024,1.118,-0.428,0.136 +183,-2.665,-0.332,0.580,-0.393 +183,-0.661,-0.659,-0.354,-0.674 +183,-2.630,-0.345,0.711,-0.772 +184,-1.726,0.322,-0.109,-0.711 +184,-2.076,-0.481,0.076,1.548 +184,-3.555,-1.704,1.784,-0.369 +184,0.113,0.444,0.586,0.277 +184,-1.048,1.095,1.710,0.571 +184,-4.873,1.086,1.557,-0.709 +184,4.201,-0.615,-1.079,0.885 +184,-0.054,-0.196,0.325,1.293 +184,5.746,-0.307,-2.507,-1.174 +184,2.139,0.619,-1.477,-1.868 +185,0.010,0.040,1.554,0.033 +185,2.072,-0.400,-0.100,0.257 +185,5.120,0.973,0.135,1.873 +185,3.287,-0.317,-1.534,-1.476 +185,-0.666,0.917,1.684,-0.574 +185,0.516,-0.608,0.756,0.420 +185,7.015,0.295,-0.771,0.073 +185,3.908,-1.291,-1.776,0.321 +185,3.274,0.873,0.449,0.138 +185,7.185,-1.016,-1.885,-0.097 +186,-0.370,0.788,0.444,0.225 +186,1.474,-0.301,-0.044,-0.147 +186,2.517,0.703,-0.233,-0.604 +186,-1.856,-0.458,1.015,0.204 +186,2.994,0.247,-0.470,0.231 +186,-1.939,-1.478,0.470,0.033 +186,-3.844,-0.480,1.529,0.571 +186,-0.345,1.173,0.009,-1.928 +186,1.442,-0.673,-1.050,-0.693 +186,4.713,0.278,-1.958,-0.136 +187,0.460,0.958,0.570,0.367 +187,-0.969,0.454,0.476,-0.256 +187,-1.098,0.414,0.148,-1.553 +187,-0.320,0.650,-0.572,-2.317 +187,-0.562,-0.781,-0.560,0.869 +187,-3.497,-0.569,1.577,-0.543 +187,1.485,0.675,-0.446,0.136 +187,1.218,-1.617,-1.288,-0.248 +187,-0.060,-0.634,-0.274,0.320 +187,-2.399,-0.563,0.574,-0.217 +188,1.132,-0.462,-1.335,0.232 +188,-2.232,-0.119,1.351,0.517 +188,-0.268,0.626,-0.065,-0.400 +188,-2.189,0.119,0.404,-0.445 +188,-4.616,-3.220,0.147,-0.422 +188,-2.259,-0.380,-0.422,-0.974 +188,-1.631,0.655,1.417,1.549 +188,-7.691,1.455,2.368,-1.608 +188,-0.863,0.031,0.600,0.796 +188,1.247,-0.262,-0.904,0.094 +189,-2.074,-0.190,-0.681,-1.938 +189,-1.558,-0.469,0.015,-0.442 +189,-2.306,0.847,-0.454,-0.713 +189,-0.311,-0.777,-0.433,0.212 +189,-3.604,-0.001,1.744,-0.140 +189,-0.505,1.685,1.459,1.997 +189,-3.862,-0.098,1.274,1.232 +189,-6.133,-1.599,1.039,-0.070 +189,-5.428,-0.668,0.705,0.179 +189,-10.108,-1.827,1.867,-1.034 +190,-2.216,-1.612,-0.291,-2.102 +190,-0.121,-0.313,-0.242,0.920 +190,-1.297,0.696,0.633,-0.648 +190,-3.471,-0.238,1.038,-0.344 +190,-0.126,0.898,0.868,0.871 +190,-0.403,-0.825,0.492,0.717 +190,-0.968,0.453,-1.394,-1.553 +190,-1.836,-0.490,-0.355,0.403 +190,-1.706,0.899,0.547,-0.316 +190,-3.294,-0.555,0.185,-1.146 +191,1.923,-0.539,-0.313,-1.303 +191,1.876,0.887,2.043,-0.808 +191,-6.460,-0.887,3.611,0.359 +191,3.829,1.079,0.568,1.070 +191,2.523,0.546,1.279,1.002 +191,3.621,0.122,-0.412,-0.051 +191,5.073,1.418,-0.216,-0.108 +191,1.216,-1.009,0.087,-1.733 +191,4.191,-0.423,0.090,2.051 +191,5.695,0.158,-1.961,-0.522 +192,4.234,0.194,-1.917,1.632 +192,0.244,0.197,-0.215,0.017 +192,3.412,-1.520,-2.391,1.215 +192,-2.784,-0.685,0.059,-0.224 +192,-3.575,0.582,1.015,-1.278 +192,1.350,-0.198,0.057,-0.007 +192,-4.012,-1.235,1.263,-0.301 +192,2.695,-1.146,-1.486,1.586 +192,-1.245,-0.805,0.458,-0.309 +192,-0.318,0.756,1.393,0.526 +193,-6.401,0.037,1.231,0.171 +193,-3.466,0.602,0.495,-0.082 +193,-1.311,-1.138,-0.170,0.637 +193,-6.144,-1.061,1.371,-1.065 +193,5.099,0.346,-2.305,-0.249 +193,1.957,1.253,-0.617,-1.721 +193,2.949,-0.218,-0.914,1.161 +193,-2.087,-1.101,0.145,-0.279 +193,-3.257,-0.577,0.153,-0.602 +193,-4.192,0.653,1.203,-2.108 +194,7.707,0.721,-2.373,0.454 +194,-0.392,1.817,1.435,0.333 +194,-1.771,-0.747,-0.334,-0.057 +194,-4.465,-2.117,0.991,0.680 +194,-2.270,-0.711,0.710,-1.604 +194,0.734,0.936,0.822,-0.102 +194,-1.590,0.526,-0.399,-2.103 +194,-0.917,-1.023,-0.218,0.424 +194,-2.136,-0.611,0.075,0.508 +194,2.558,-0.940,-0.860,2.123 +195,-1.189,0.455,1.597,-0.161 +195,-0.535,-0.175,-0.550,-0.398 +195,1.143,-0.152,-1.003,0.027 +195,1.998,1.491,-0.606,-0.730 +195,-1.248,0.209,0.559,-0.504 +195,2.116,1.781,0.274,1.411 +195,-1.032,-1.042,1.067,0.608 +195,-0.329,0.448,0.593,0.465 +195,0.851,-1.805,-0.442,0.387 +195,0.426,0.624,-0.023,-1.418 +196,-4.718,-1.329,0.263,-0.070 +196,-6.072,-2.179,1.522,1.245 +196,-4.162,-0.350,1.294,-0.016 +196,4.827,-0.356,-1.817,2.184 +196,-3.300,-1.104,0.711,0.367 +196,0.704,-0.300,-0.475,1.476 +196,-1.391,0.091,0.621,0.048 +196,-3.298,-0.373,1.340,-0.060 +196,-3.410,-0.387,0.043,-0.383 +196,3.337,1.668,-0.336,2.427 +197,0.946,-0.056,0.278,-0.080 +197,-1.452,-1.240,0.095,-1.081 +197,3.749,-0.461,-1.701,0.388 +197,-0.016,1.277,0.767,-1.105 +197,2.741,1.816,0.196,0.487 +197,2.122,0.421,-0.826,-1.820 +197,-1.790,-1.121,-0.534,-0.571 +197,3.181,0.074,-1.045,-1.721 +197,-3.104,0.195,1.177,2.087 +197,-0.077,-0.869,-0.679,-0.277 +198,-0.327,-0.758,-0.690,0.163 +198,-1.470,1.411,-0.255,-0.789 +198,-3.611,-0.190,0.783,0.832 +198,-2.040,-1.023,0.396,1.395 +198,-10.358,-0.422,3.738,-0.411 +198,-4.440,0.340,0.525,-0.173 +198,-3.695,-1.790,-1.435,-1.710 +198,0.337,-0.123,-1.248,0.964 +198,-7.204,0.233,0.991,-0.893 +198,3.294,-0.284,-2.250,0.397 +199,0.209,-0.338,-0.928,-0.653 +199,-2.233,0.198,2.039,-0.112 +199,0.236,-0.275,0.808,1.848 +199,-0.952,1.062,1.990,0.026 +199,5.404,1.248,-1.654,-0.814 +199,1.144,0.969,-0.805,-0.675 +199,-2.672,0.099,1.367,0.634 +199,-0.238,1.501,-0.038,-1.119 +199,-1.562,-1.780,-0.412,-2.243 +199,1.166,-0.651,-0.727,-0.390 diff --git a/statsmodels/genmod/tests/results/gee_nominal_1.csv b/statsmodels/genmod/tests/results/gee_nominal_1.csv new file mode 100644 index 0000000..61831f2 --- /dev/null +++ b/statsmodels/genmod/tests/results/gee_nominal_1.csv @@ -0,0 +1,796 @@ +0,0,1.000,1.475 +0,0,1.000,0.138 +0,0,1.000,2.927 +0,0,1.000,1.017 +1,0,1.000,0.076 +1,1,1.000,-1.118 +1,1,1.000,-0.269 +1,2,1.000,0.166 +2,2,1.000,-2.091 +2,2,1.000,-1.240 +2,2,1.000,-1.378 +3,0,1.000,-1.000 +3,0,1.000,0.092 +3,1,1.000,-0.193 +3,0,1.000,-1.190 +3,0,1.000,-1.997 +4,2,1.000,-0.713 +4,0,1.000,2.201 +4,0,1.000,0.784 +4,0,1.000,0.897 +5,0,1.000,0.972 +5,0,1.000,-2.645 +5,0,1.000,-0.516 +6,2,1.000,-0.599 +6,2,1.000,-1.253 +6,0,1.000,-0.835 +6,2,1.000,-2.284 +7,0,1.000,0.618 +7,2,1.000,-0.273 +7,2,1.000,-0.710 +7,2,1.000,-1.349 +8,2,1.000,0.501 +8,0,1.000,-0.011 +8,0,1.000,-1.164 +8,0,1.000,0.527 +8,0,1.000,1.335 +9,0,1.000,-0.163 +9,2,1.000,-0.897 +9,0,1.000,-0.952 +9,0,1.000,0.649 +10,2,1.000,-0.851 +10,2,1.000,-1.984 +10,2,1.000,-2.171 +10,0,1.000,-2.171 +10,2,1.000,-0.732 +11,2,1.000,-0.252 +11,2,1.000,0.701 +11,2,1.000,0.089 +11,0,1.000,-0.534 +12,2,1.000,-0.812 +12,2,1.000,0.160 +12,2,1.000,-0.828 +12,2,1.000,-1.652 +12,0,1.000,-0.049 +13,1,1.000,-1.951 +13,2,1.000,-0.891 +13,1,1.000,-0.287 +13,0,1.000,-0.800 +13,0,1.000,-0.866 +14,0,1.000,1.120 +14,0,1.000,-1.670 +14,1,1.000,-1.206 +15,0,1.000,-0.410 +15,1,1.000,0.177 +15,2,1.000,1.369 +16,0,1.000,0.274 +16,0,1.000,0.075 +16,1,1.000,-0.881 +17,0,1.000,1.716 +17,2,1.000,-0.492 +17,2,1.000,-0.588 +17,0,1.000,0.485 +17,0,1.000,-0.238 +18,0,1.000,-1.256 +18,1,1.000,-2.376 +18,2,1.000,-1.734 +18,0,1.000,-0.613 +19,0,1.000,0.133 +19,1,1.000,-1.427 +19,2,1.000,0.361 +19,0,1.000,-0.710 +20,0,1.000,-0.102 +20,2,1.000,-1.338 +20,0,1.000,-0.029 +20,1,1.000,-0.668 +21,0,1.000,0.163 +21,0,1.000,-2.079 +21,0,1.000,-0.763 +21,0,1.000,-0.932 +22,1,1.000,-2.361 +22,0,1.000,-1.655 +22,1,1.000,-1.996 +23,2,1.000,0.182 +23,0,1.000,0.566 +23,1,1.000,0.089 +24,0,1.000,0.829 +24,1,1.000,-0.297 +24,2,1.000,1.072 +24,2,1.000,0.917 +25,0,1.000,-0.551 +25,1,1.000,-2.078 +25,2,1.000,-1.142 +25,0,1.000,0.329 +25,0,1.000,-1.970 +26,0,1.000,1.284 +26,0,1.000,0.646 +26,0,1.000,-0.050 +26,2,1.000,0.718 +26,0,1.000,0.360 +27,2,1.000,1.177 +27,2,1.000,1.286 +27,0,1.000,2.906 +27,0,1.000,2.115 +27,0,1.000,0.201 +28,0,1.000,0.756 +28,2,1.000,-0.524 +28,1,1.000,-0.361 +28,2,1.000,-0.289 +28,2,1.000,0.369 +29,0,1.000,-0.890 +29,2,1.000,2.756 +29,0,1.000,0.437 +29,0,1.000,1.588 +30,0,1.000,0.751 +30,0,1.000,-0.842 +30,2,1.000,-0.315 +30,2,1.000,-1.483 +31,2,1.000,0.519 +31,0,1.000,0.168 +31,0,1.000,2.127 +31,2,1.000,1.832 +32,0,1.000,-0.477 +32,0,1.000,-1.329 +32,0,1.000,0.503 +33,2,1.000,0.433 +33,2,1.000,2.072 +33,0,1.000,0.794 +34,0,1.000,0.677 +34,0,1.000,-0.892 +34,0,1.000,1.389 +34,2,1.000,-1.231 +35,0,1.000,-0.226 +35,2,1.000,0.155 +35,0,1.000,3.580 +35,0,1.000,3.507 +36,2,1.000,-1.247 +36,0,1.000,-2.402 +36,0,1.000,-0.779 +37,1,1.000,-0.609 +37,0,1.000,0.945 +37,0,1.000,-1.659 +37,1,1.000,-0.662 +37,0,1.000,1.728 +38,0,1.000,-0.264 +38,0,1.000,0.904 +38,0,1.000,1.688 +38,0,1.000,1.438 +39,2,1.000,-1.521 +39,1,1.000,-3.016 +39,2,1.000,-1.856 +40,0,1.000,-0.759 +40,0,1.000,0.047 +40,1,1.000,-0.881 +41,2,1.000,-0.321 +41,1,1.000,-1.006 +41,2,1.000,1.627 +42,1,1.000,0.686 +42,1,1.000,-1.251 +42,0,1.000,2.030 +43,1,1.000,-1.102 +43,1,1.000,-0.949 +43,0,1.000,1.679 +44,0,1.000,2.274 +44,0,1.000,1.746 +44,0,1.000,1.715 +44,2,1.000,1.867 +44,1,1.000,2.484 +45,0,1.000,0.651 +45,1,1.000,-3.481 +45,0,1.000,-1.690 +45,2,1.000,-0.186 +46,1,1.000,-0.923 +46,0,1.000,1.899 +46,0,1.000,0.579 +47,2,1.000,-2.307 +47,2,1.000,0.277 +47,0,1.000,-0.436 +47,2,1.000,-0.104 +48,1,1.000,-0.424 +48,0,1.000,0.138 +48,0,1.000,1.778 +49,0,1.000,1.339 +49,0,1.000,1.124 +49,0,1.000,-0.570 +49,0,1.000,1.298 +49,2,1.000,-0.953 +50,0,1.000,1.322 +50,0,1.000,0.586 +50,0,1.000,1.163 +50,1,1.000,-1.802 +50,0,1.000,-0.098 +51,2,1.000,-1.831 +51,0,1.000,1.912 +51,0,1.000,-0.228 +52,0,1.000,-1.884 +52,1,1.000,0.504 +52,0,1.000,0.769 +53,0,1.000,0.129 +53,0,1.000,-2.211 +53,0,1.000,-1.698 +54,0,1.000,3.268 +54,0,1.000,0.242 +54,0,1.000,0.199 +54,0,1.000,-0.574 +55,2,1.000,0.036 +55,0,1.000,1.233 +55,1,1.000,0.685 +56,2,1.000,0.258 +56,2,1.000,-1.485 +56,2,1.000,0.544 +56,1,1.000,-0.616 +57,1,1.000,-0.968 +57,0,1.000,-0.213 +57,0,1.000,-0.375 +57,0,1.000,-0.681 +58,2,1.000,0.020 +58,0,1.000,0.040 +58,2,1.000,-0.325 +59,1,1.000,-1.415 +59,2,1.000,1.128 +59,1,1.000,-0.364 +59,0,1.000,-0.838 +59,1,1.000,-0.650 +60,0,1.000,1.146 +60,0,1.000,0.808 +60,0,1.000,-0.096 +60,0,1.000,0.666 +60,1,1.000,0.641 +61,2,1.000,-1.996 +61,2,1.000,-1.793 +61,1,1.000,-1.670 +61,1,1.000,-2.383 +61,0,1.000,0.346 +62,1,1.000,-3.547 +62,2,1.000,-0.661 +62,1,1.000,-3.652 +62,0,1.000,-3.175 +63,1,1.000,-0.149 +63,2,1.000,0.391 +63,2,1.000,-2.173 +63,1,1.000,-1.390 +63,2,1.000,-0.742 +64,2,1.000,1.240 +64,0,1.000,1.547 +64,0,1.000,0.746 +64,2,1.000,2.389 +65,1,1.000,-1.486 +65,0,1.000,0.881 +65,2,1.000,-1.472 +65,1,1.000,0.139 +65,0,1.000,-1.880 +66,2,1.000,2.194 +66,2,1.000,0.250 +66,2,1.000,0.158 +66,1,1.000,1.800 +66,2,1.000,1.607 +67,2,1.000,-1.633 +67,0,1.000,-0.932 +67,0,1.000,0.619 +67,0,1.000,-1.481 +68,2,1.000,-1.108 +68,0,1.000,-0.467 +68,2,1.000,-0.952 +68,2,1.000,-2.143 +69,2,1.000,0.088 +69,0,1.000,-0.528 +69,2,1.000,-1.250 +70,2,1.000,-0.961 +70,1,1.000,-1.414 +70,2,1.000,1.147 +70,1,1.000,-1.501 +70,0,1.000,-0.164 +71,1,1.000,-2.239 +71,0,1.000,0.597 +71,2,1.000,0.439 +71,1,1.000,-1.114 +72,1,1.000,-0.380 +72,2,1.000,-1.032 +72,2,1.000,0.681 +72,1,1.000,0.106 +72,0,1.000,1.075 +73,0,1.000,-0.231 +73,0,1.000,1.358 +73,0,1.000,-1.241 +73,0,1.000,0.019 +74,0,1.000,1.171 +74,2,1.000,-0.858 +74,2,1.000,0.348 +75,0,1.000,0.938 +75,0,1.000,0.857 +75,2,1.000,1.374 +76,0,1.000,0.114 +76,0,1.000,-0.149 +76,2,1.000,-0.074 +77,2,1.000,0.627 +77,0,1.000,0.530 +77,0,1.000,-0.289 +77,2,1.000,-0.251 +78,0,1.000,1.215 +78,2,1.000,0.119 +78,0,1.000,0.672 +79,2,1.000,-0.432 +79,2,1.000,-1.050 +79,2,1.000,0.396 +80,0,1.000,1.067 +80,2,1.000,0.937 +80,0,1.000,1.224 +80,0,1.000,0.895 +80,0,1.000,0.361 +81,0,1.000,1.445 +81,0,1.000,2.212 +81,2,1.000,1.662 +81,0,1.000,0.963 +82,0,1.000,0.116 +82,2,1.000,0.877 +82,0,1.000,2.621 +83,2,1.000,1.041 +83,1,1.000,0.452 +83,2,1.000,-2.219 +83,2,1.000,0.223 +83,0,1.000,0.337 +84,0,1.000,0.484 +84,2,1.000,1.549 +84,0,1.000,-0.067 +84,2,1.000,1.410 +85,0,1.000,1.664 +85,0,1.000,-1.169 +85,2,1.000,-0.416 +86,2,1.000,-0.266 +86,2,1.000,-0.268 +86,0,1.000,0.191 +86,2,1.000,-0.687 +86,2,1.000,-0.503 +87,0,1.000,0.234 +87,0,1.000,-0.732 +87,1,1.000,0.950 +88,1,1.000,-2.424 +88,2,1.000,-1.490 +88,2,1.000,-2.415 +88,1,1.000,-1.691 +89,0,1.000,0.418 +89,0,1.000,0.061 +89,1,1.000,1.029 +90,0,1.000,3.351 +90,2,1.000,2.027 +90,0,1.000,3.832 +91,0,1.000,0.769 +91,0,1.000,1.305 +91,0,1.000,0.606 +92,2,1.000,-1.040 +92,0,1.000,-0.865 +92,2,1.000,-1.565 +92,1,1.000,-2.138 +93,0,1.000,-0.044 +93,1,1.000,-1.784 +93,1,1.000,-0.543 +93,0,1.000,-1.288 +94,0,1.000,-0.808 +94,1,1.000,-2.140 +94,0,1.000,0.555 +94,0,1.000,-0.398 +95,1,1.000,-0.655 +95,0,1.000,2.253 +95,0,1.000,0.485 +96,2,1.000,1.500 +96,2,1.000,-0.002 +96,0,1.000,-1.496 +96,1,1.000,0.763 +96,2,1.000,0.995 +97,0,1.000,0.411 +97,2,1.000,0.134 +97,0,1.000,-0.768 +98,2,1.000,1.450 +98,2,1.000,1.064 +98,0,1.000,0.215 +99,1,1.000,-1.298 +99,0,1.000,1.668 +99,2,1.000,1.418 +99,0,1.000,2.144 +99,1,1.000,-0.056 +100,0,1.000,0.046 +100,0,1.000,0.904 +100,0,1.000,1.325 +100,0,1.000,-0.110 +100,0,1.000,0.312 +101,2,1.000,-1.413 +101,0,1.000,0.094 +101,0,1.000,1.618 +101,0,1.000,0.455 +102,1,1.000,-1.131 +102,1,1.000,-1.742 +102,2,1.000,-0.478 +102,2,1.000,0.719 +103,0,1.000,1.371 +103,0,1.000,0.670 +103,0,1.000,0.945 +103,0,1.000,2.671 +104,1,1.000,-0.508 +104,2,1.000,-1.130 +104,0,1.000,0.300 +105,2,1.000,-1.782 +105,2,1.000,-0.912 +105,2,1.000,-0.140 +105,0,1.000,-1.002 +105,2,1.000,-1.205 +106,2,1.000,-1.962 +106,1,1.000,0.412 +106,0,1.000,-0.925 +106,1,1.000,-1.270 +106,2,1.000,-2.175 +107,0,1.000,-1.078 +107,2,1.000,-0.286 +107,0,1.000,0.202 +107,0,1.000,0.224 +108,2,1.000,-1.622 +108,1,1.000,-0.395 +108,2,1.000,0.186 +108,0,1.000,-0.125 +109,1,1.000,-2.673 +109,2,1.000,-0.014 +109,0,1.000,-0.221 +109,2,1.000,-2.271 +110,0,1.000,1.149 +110,1,1.000,0.025 +110,0,1.000,-0.759 +110,0,1.000,-1.471 +111,0,1.000,1.515 +111,0,1.000,0.637 +111,0,1.000,0.464 +111,0,1.000,2.839 +111,0,1.000,1.831 +112,0,1.000,-0.611 +112,0,1.000,1.830 +112,0,1.000,1.496 +112,0,1.000,2.519 +113,1,1.000,-1.938 +113,2,1.000,-1.037 +113,2,1.000,0.202 +113,1,1.000,-2.020 +114,0,1.000,2.408 +114,0,1.000,0.597 +114,1,1.000,-0.590 +115,2,1.000,-0.750 +115,0,1.000,0.442 +115,0,1.000,0.422 +116,1,1.000,-0.083 +116,0,1.000,-0.513 +116,0,1.000,0.362 +116,0,1.000,0.524 +117,0,1.000,1.313 +117,2,1.000,0.025 +117,0,1.000,0.205 +117,0,1.000,2.452 +118,1,1.000,0.315 +118,0,1.000,-0.548 +118,1,1.000,0.091 +118,2,1.000,0.310 +118,2,1.000,-1.234 +119,0,1.000,1.466 +119,2,1.000,1.033 +119,0,1.000,1.640 +119,2,1.000,0.300 +119,0,1.000,1.913 +120,2,1.000,-0.539 +120,2,1.000,-0.967 +120,2,1.000,-0.953 +120,0,1.000,-0.024 +121,1,1.000,-2.215 +121,0,1.000,-0.459 +121,0,1.000,0.135 +121,0,1.000,-1.383 +122,0,1.000,1.115 +122,0,1.000,-0.072 +122,2,1.000,0.193 +122,2,1.000,-1.227 +122,0,1.000,0.751 +123,0,1.000,1.748 +123,0,1.000,1.026 +123,0,1.000,-0.267 +123,0,1.000,0.077 +123,0,1.000,1.817 +124,0,1.000,-1.166 +124,0,1.000,-0.614 +124,2,1.000,-0.890 +124,1,1.000,-0.778 +124,0,1.000,1.503 +125,0,1.000,1.116 +125,0,1.000,0.451 +125,0,1.000,1.554 +125,2,1.000,-2.100 +125,0,1.000,1.255 +126,0,1.000,2.423 +126,0,1.000,2.138 +126,0,1.000,2.744 +126,0,1.000,1.293 +127,2,1.000,0.102 +127,0,1.000,2.466 +127,0,1.000,1.744 +128,0,1.000,-0.628 +128,0,1.000,-1.369 +128,2,1.000,-0.322 +128,1,1.000,-0.172 +129,0,1.000,0.312 +129,2,1.000,0.935 +129,1,1.000,0.006 +130,0,1.000,0.380 +130,1,1.000,0.398 +130,0,1.000,0.186 +130,1,1.000,0.364 +130,0,1.000,1.734 +131,2,1.000,1.414 +131,0,1.000,0.393 +131,0,1.000,0.155 +131,0,1.000,-1.011 +132,0,1.000,-2.653 +132,0,1.000,-2.054 +132,0,1.000,-2.296 +132,1,1.000,-2.348 +133,0,1.000,-0.670 +133,2,1.000,-0.888 +133,0,1.000,0.288 +134,2,1.000,-0.258 +134,0,1.000,2.408 +134,0,1.000,-0.046 +134,0,1.000,0.862 +135,0,1.000,-1.022 +135,0,1.000,0.293 +135,2,1.000,2.122 +136,2,1.000,0.112 +136,1,1.000,-1.964 +136,0,1.000,-2.122 +137,2,1.000,0.060 +137,2,1.000,-0.781 +137,1,1.000,-1.149 +137,2,1.000,-0.031 +138,1,1.000,-2.752 +138,2,1.000,-3.268 +138,0,1.000,0.227 +138,0,1.000,0.006 +139,0,1.000,-0.772 +139,2,1.000,0.688 +139,2,1.000,0.256 +139,2,1.000,0.516 +140,0,1.000,2.178 +140,0,1.000,-0.574 +140,1,1.000,-1.224 +140,0,1.000,-0.370 +140,0,1.000,1.367 +141,0,1.000,0.929 +141,0,1.000,1.904 +141,0,1.000,2.914 +141,0,1.000,-0.472 +142,2,1.000,0.430 +142,0,1.000,0.677 +142,0,1.000,1.363 +143,1,1.000,-1.409 +143,2,1.000,-2.559 +143,2,1.000,-1.040 +143,2,1.000,-0.298 +144,2,1.000,-2.056 +144,2,1.000,0.661 +144,2,1.000,0.538 +144,2,1.000,-0.262 +145,0,1.000,-0.453 +145,2,1.000,-1.947 +145,1,1.000,-2.594 +146,2,1.000,-0.236 +146,0,1.000,2.493 +146,0,1.000,2.919 +146,0,1.000,1.433 +146,2,1.000,2.912 +147,0,1.000,0.775 +147,0,1.000,1.890 +147,0,1.000,0.411 +148,0,1.000,-0.481 +148,1,1.000,-0.300 +148,0,1.000,-2.157 +148,1,1.000,-0.464 +148,2,1.000,-1.895 +149,2,1.000,2.008 +149,0,1.000,0.013 +149,0,1.000,1.728 +149,2,1.000,0.901 +149,0,1.000,-0.708 +150,0,1.000,0.066 +150,0,1.000,0.543 +150,0,1.000,1.039 +151,1,1.000,-3.010 +151,2,1.000,-4.037 +151,1,1.000,-2.819 +152,2,1.000,0.358 +152,2,1.000,-0.501 +152,0,1.000,-0.817 +152,0,1.000,0.322 +153,2,1.000,-0.876 +153,2,1.000,-2.604 +153,2,1.000,-1.220 +153,2,1.000,-2.184 +154,1,1.000,-2.603 +154,2,1.000,-1.519 +154,2,1.000,-3.194 +155,0,1.000,-0.657 +155,2,1.000,0.509 +155,0,1.000,0.693 +155,0,1.000,2.184 +155,1,1.000,-1.977 +156,2,1.000,-1.498 +156,1,1.000,-3.052 +156,2,1.000,-0.875 +157,0,1.000,2.820 +157,0,1.000,2.315 +157,0,1.000,2.014 +157,0,1.000,0.644 +158,0,1.000,0.395 +158,0,1.000,1.137 +158,0,1.000,2.056 +158,0,1.000,2.447 +158,0,1.000,0.001 +159,0,1.000,-0.202 +159,2,1.000,-1.140 +159,0,1.000,1.024 +159,0,1.000,0.467 +160,2,1.000,-0.034 +160,2,1.000,0.280 +160,2,1.000,1.478 +160,0,1.000,2.195 +161,1,1.000,-0.438 +161,1,1.000,-1.830 +161,1,1.000,-0.933 +161,2,1.000,-2.017 +161,1,1.000,-2.736 +162,2,1.000,-0.174 +162,2,1.000,0.585 +162,2,1.000,-0.619 +162,1,1.000,-2.374 +162,2,1.000,-1.929 +163,2,1.000,0.110 +163,0,1.000,0.477 +163,0,1.000,0.848 +164,1,1.000,-0.736 +164,0,1.000,2.182 +164,2,1.000,-0.827 +164,0,1.000,0.735 +165,2,1.000,1.160 +165,2,1.000,0.759 +165,0,1.000,1.885 +166,1,1.000,0.197 +166,0,1.000,0.270 +166,2,1.000,-0.397 +166,2,1.000,-0.107 +167,0,1.000,-0.545 +167,2,1.000,-0.263 +167,0,1.000,0.159 +167,0,1.000,-0.977 +168,0,1.000,1.762 +168,2,1.000,1.537 +168,0,1.000,4.402 +169,0,1.000,0.696 +169,0,1.000,4.117 +169,0,1.000,2.790 +169,0,1.000,3.231 +170,0,1.000,0.191 +170,2,1.000,-0.010 +170,2,1.000,-0.455 +170,2,1.000,-1.711 +170,0,1.000,-1.032 +171,2,1.000,-2.764 +171,2,1.000,-0.750 +171,2,1.000,1.077 +171,0,1.000,-2.195 +172,0,1.000,1.970 +172,0,1.000,2.016 +172,2,1.000,0.941 +173,1,1.000,-0.086 +173,2,1.000,0.506 +173,1,1.000,-1.248 +173,2,1.000,-1.694 +174,0,1.000,2.525 +174,2,1.000,-0.173 +174,0,1.000,0.857 +174,0,1.000,1.043 +174,0,1.000,0.390 +175,2,1.000,3.132 +175,2,1.000,0.778 +175,0,1.000,0.923 +175,0,1.000,0.949 +175,0,1.000,-0.923 +176,0,1.000,0.464 +176,2,1.000,-2.819 +176,0,1.000,0.816 +177,0,1.000,-1.937 +177,0,1.000,0.264 +177,1,1.000,0.292 +177,0,1.000,0.761 +178,0,1.000,2.097 +178,0,1.000,3.443 +178,0,1.000,2.385 +178,2,1.000,1.823 +178,0,1.000,1.672 +179,1,1.000,-1.571 +179,2,1.000,0.029 +179,1,1.000,0.151 +179,2,1.000,-2.026 +180,0,1.000,-0.362 +180,2,1.000,-1.020 +180,1,1.000,-1.158 +181,1,1.000,0.928 +181,2,1.000,0.142 +181,1,1.000,-0.782 +181,0,1.000,-0.329 +182,0,1.000,-1.152 +182,0,1.000,-0.944 +182,2,1.000,0.233 +182,0,1.000,-0.030 +183,2,1.000,0.590 +183,1,1.000,-2.246 +183,1,1.000,-0.883 +183,2,1.000,2.296 +183,2,1.000,0.208 +184,0,1.000,0.037 +184,0,1.000,0.944 +184,0,1.000,3.103 +184,0,1.000,0.629 +185,0,1.000,-0.736 +185,1,1.000,0.202 +185,1,1.000,-0.270 +185,0,1.000,-0.437 +185,0,1.000,0.272 +186,0,1.000,0.055 +186,0,1.000,-1.273 +186,1,1.000,-2.153 +186,2,1.000,-2.021 +186,0,1.000,-0.955 +187,0,1.000,-0.647 +187,0,1.000,1.505 +187,2,1.000,0.846 +187,1,1.000,-1.096 +188,0,1.000,0.460 +188,2,1.000,-0.191 +188,1,1.000,-0.325 +188,1,1.000,-2.159 +189,0,1.000,-0.182 +189,1,1.000,-1.364 +189,0,1.000,-0.224 +189,1,1.000,-1.192 +190,0,1.000,1.308 +190,0,1.000,0.817 +190,0,1.000,0.338 +191,2,1.000,1.625 +191,2,1.000,1.292 +191,1,1.000,-0.576 +191,2,1.000,0.126 +191,2,1.000,1.995 +192,2,1.000,0.521 +192,1,1.000,-0.913 +192,2,1.000,-1.091 +192,2,1.000,2.038 +193,1,1.000,-1.040 +193,0,1.000,0.654 +193,1,1.000,-1.634 +193,0,1.000,1.731 +193,1,1.000,-0.665 +194,0,1.000,1.406 +194,1,1.000,1.581 +194,2,1.000,1.349 +194,0,1.000,2.240 +194,1,1.000,2.662 +195,0,1.000,-1.619 +195,0,1.000,-0.780 +195,0,1.000,-1.138 +196,0,1.000,1.138 +196,2,1.000,-0.065 +196,0,1.000,0.823 +196,0,1.000,-2.381 +197,0,1.000,0.076 +197,0,1.000,-0.814 +197,0,1.000,0.424 +197,0,1.000,0.682 +197,0,1.000,-0.220 +198,0,1.000,0.725 +198,0,1.000,1.346 +198,0,1.000,0.202 +198,0,1.000,0.733 +199,0,1.000,1.456 +199,0,1.000,-0.553 +199,2,1.000,-1.150 diff --git a/statsmodels/genmod/tests/results/gee_ordinal_1.csv b/statsmodels/genmod/tests/results/gee_ordinal_1.csv new file mode 100644 index 0000000..e58bf64 --- /dev/null +++ b/statsmodels/genmod/tests/results/gee_ordinal_1.csv @@ -0,0 +1,787 @@ +0,0,2.251,2.041,-1.501,-1.147,-0.433 +0,2,0.215,-1.273,0.135,-0.197,0.417 +0,2,0.136,0.113,0.474,-1.289,-0.377 +1,1,0.966,-2.022,-0.435,-1.223,-0.527 +1,3,-0.117,0.550,1.941,-0.019,-2.657 +1,0,-0.951,-0.527,-1.873,0.473,-2.011 +2,3,0.277,0.925,2.816,-0.899,1.056 +2,3,0.035,-0.229,1.185,-0.311,0.902 +2,3,0.440,0.133,1.756,-0.016,0.500 +3,3,0.868,-0.754,-0.894,-1.028,2.192 +3,0,-1.001,-0.830,-1.543,0.503,1.229 +3,0,2.311,-0.757,1.704,-0.320,3.680 +3,1,4.323,2.032,0.801,-1.132,3.055 +3,0,2.113,-1.076,-1.092,-3.103,2.000 +4,0,0.007,-0.781,-2.066,-0.237,-0.067 +4,0,1.171,0.781,-3.251,-0.986,-2.385 +4,3,2.046,1.256,-0.947,0.026,-2.245 +4,0,2.879,0.094,-0.595,-0.409,0.508 +4,0,0.037,-0.241,-1.553,1.628,0.449 +5,3,-2.871,1.822,0.237,-0.432,0.228 +5,1,-3.868,-0.811,2.130,0.918,1.281 +5,0,-3.912,-1.338,-0.446,-0.521,1.377 +5,3,-0.986,1.656,-0.007,-0.441,1.044 +6,3,-1.514,-2.445,0.379,-0.899,-0.089 +6,3,-0.195,-3.202,1.212,0.481,-0.391 +6,0,-1.059,-2.607,0.959,-2.117,2.108 +7,1,0.485,-0.443,-0.547,-0.075,-0.078 +7,3,-0.420,-1.742,0.164,-0.436,-0.494 +7,3,-1.355,-0.052,-0.056,-1.413,-0.578 +8,0,2.195,1.420,0.041,0.428,3.149 +8,0,2.334,0.435,0.059,0.542,1.388 +8,1,2.071,-2.443,0.851,0.990,-0.027 +8,3,1.700,0.993,1.295,0.194,1.523 +9,3,3.830,-0.952,3.751,1.065,2.321 +9,3,2.278,-0.484,3.006,1.467,1.316 +9,3,0.914,-1.116,3.736,1.996,-2.064 +9,3,0.173,-1.478,3.455,3.475,0.912 +10,0,-0.412,-0.743,-2.259,2.149,-0.589 +10,3,-0.682,0.018,0.843,-1.160,-3.366 +10,0,1.628,0.593,-2.497,0.115,-1.974 +11,0,-3.358,1.123,0.353,1.786,2.011 +11,1,1.395,-0.707,1.023,1.981,2.288 +11,0,-0.968,1.559,1.313,0.341,1.518 +11,1,-0.285,0.464,-0.305,1.510,1.080 +11,1,-0.039,0.610,1.404,2.511,1.965 +12,3,-1.186,1.281,1.578,-0.354,0.061 +12,0,1.555,-0.862,0.080,-1.077,-0.155 +12,0,-1.393,-0.623,0.340,0.015,2.331 +12,1,-1.530,-0.539,0.951,-0.139,1.839 +12,0,-0.221,1.504,-0.063,-1.812,1.352 +13,3,0.007,0.752,2.563,-2.424,-0.878 +13,3,-0.446,1.856,2.794,-1.396,-2.815 +13,3,0.097,0.427,1.011,-1.942,-1.929 +13,3,-1.575,-0.044,2.334,-2.570,-1.812 +14,1,-0.616,2.320,-0.588,1.126,-1.184 +14,1,0.438,0.757,0.493,-0.484,1.062 +14,1,1.052,1.832,-0.387,0.451,-0.147 +15,1,1.355,-0.042,-0.694,-0.122,-0.735 +15,1,0.979,-0.276,0.707,-0.544,-1.354 +15,0,-0.828,0.129,-0.811,-0.151,-1.792 +16,0,-0.762,2.996,-2.671,0.033,4.265 +16,0,-1.407,-1.107,-1.656,-1.021,1.935 +16,0,0.003,-0.350,-2.151,2.217,2.298 +16,0,-1.697,1.506,-1.508,0.331,1.895 +16,0,-1.061,0.614,-1.682,-2.739,3.202 +17,3,-0.041,0.415,-0.623,1.192,0.487 +17,0,-1.134,-0.490,-0.751,3.395,0.532 +17,3,-0.216,2.585,-1.239,1.551,0.157 +17,0,-0.361,0.030,-0.921,0.055,-0.051 +17,3,-1.334,0.433,0.209,0.335,-1.531 +18,3,-1.064,0.526,0.251,-0.739,0.186 +18,3,0.751,1.017,-0.723,0.158,-0.338 +18,3,-0.540,0.199,1.159,-1.966,1.009 +18,3,-1.987,-0.759,0.904,-0.164,1.333 +19,0,-1.388,-0.173,-0.209,-0.410,1.216 +19,0,-0.487,0.022,-0.946,-0.001,-0.105 +19,2,1.981,0.801,-0.005,-0.939,0.462 +19,0,2.236,-0.380,-1.078,-0.525,0.718 +19,1,0.237,-2.356,-1.197,0.334,0.366 +20,0,0.206,0.110,-0.135,-3.120,1.245 +20,3,-0.335,1.583,-0.616,-2.127,-0.185 +20,3,-0.460,-0.118,1.160,-0.501,0.571 +21,3,-1.816,1.851,1.177,1.046,-0.544 +21,3,-0.051,0.682,0.568,2.785,-1.857 +21,3,-2.003,0.229,3.051,1.277,-1.733 +21,3,-0.672,-0.007,1.715,1.304,-1.263 +22,3,-0.719,-0.929,-0.308,1.675,-1.530 +22,0,-1.403,-0.596,0.477,0.158,-0.174 +22,0,-1.809,-3.092,-0.685,0.718,0.203 +23,0,-0.258,0.497,2.166,-0.022,0.318 +23,3,-1.524,-0.616,0.635,1.454,-0.621 +23,3,-1.901,-1.241,0.421,-0.533,-0.385 +23,3,0.062,-1.145,0.150,-0.934,1.036 +24,2,0.082,0.201,0.840,-0.437,0.412 +24,1,0.808,1.065,2.043,-0.201,1.865 +24,1,1.347,1.259,0.170,0.490,0.703 +24,3,-0.360,0.025,1.612,-0.226,-0.520 +24,3,2.326,1.188,2.005,0.691,1.173 +25,2,1.867,-1.150,-0.352,-0.014,-0.639 +25,3,1.692,-0.009,-0.453,-1.126,-1.584 +25,3,0.246,-0.381,-0.367,0.099,-2.630 +25,3,-0.248,-0.529,0.094,0.839,-1.674 +25,3,0.705,0.169,-0.612,0.640,-2.309 +26,3,1.449,-1.531,0.912,-1.060,-0.960 +26,3,2.255,0.372,0.016,-1.293,1.026 +26,0,1.537,-1.534,-1.242,0.715,1.066 +26,3,0.657,-1.286,1.562,-0.697,-0.650 +27,3,-0.729,-1.643,-0.921,-0.637,-1.131 +27,2,0.386,-0.392,-2.481,1.362,-0.647 +27,3,0.072,-2.183,-1.866,0.515,-1.471 +27,3,1.394,-0.480,-1.407,0.222,-0.437 +28,3,-3.082,0.601,-0.484,-1.469,-0.614 +28,3,-0.065,-1.156,-1.371,-0.186,-1.472 +28,3,-0.133,0.694,-1.235,-0.682,-1.340 +28,0,-0.580,1.070,-1.805,-1.613,-0.881 +28,1,-1.100,0.271,0.074,-0.016,0.465 +29,0,-0.150,0.038,-1.087,0.143,0.150 +29,0,-0.406,2.044,-0.909,-2.613,-0.953 +29,0,1.700,0.870,0.181,-1.322,1.200 +29,3,0.837,0.230,-0.523,-0.651,-0.099 +30,3,-0.302,-0.068,1.352,-0.877,-1.532 +30,3,2.098,-0.038,2.812,-0.264,-1.541 +30,3,1.293,0.467,3.059,-1.878,-0.789 +30,3,1.978,2.083,1.659,1.351,-0.944 +31,0,-1.474,3.162,0.592,-0.816,1.686 +31,3,-1.055,0.988,0.686,0.736,0.571 +31,0,-2.143,1.181,-2.153,-1.434,1.488 +31,3,-0.057,2.546,0.876,-0.001,0.376 +31,0,-1.059,1.324,-1.392,-0.251,0.839 +32,3,-0.900,-1.507,0.664,1.247,-2.168 +32,3,-0.094,2.012,-0.947,1.795,-1.806 +32,3,-0.108,0.580,0.692,-0.271,-0.480 +33,2,1.326,-0.722,-2.113,0.139,-2.157 +33,0,-0.248,-1.567,-0.211,1.158,1.699 +33,3,2.077,-0.046,-0.060,1.273,0.143 +33,1,0.843,0.782,-1.146,2.448,-0.281 +33,3,-0.341,-0.230,0.150,-0.490,-2.207 +34,0,1.569,-0.747,-1.638,-1.398,-0.044 +34,1,0.408,2.580,-0.146,-1.555,0.058 +34,3,-0.029,-0.974,-0.061,-2.742,-0.830 +34,3,0.113,0.185,0.286,0.478,-0.479 +34,3,0.552,-0.101,0.500,-1.134,-0.549 +35,0,-1.743,-0.457,-2.536,0.789,2.682 +35,0,-1.085,2.474,-1.689,-1.737,2.080 +35,0,-0.366,0.072,-1.238,-1.033,3.229 +36,0,1.248,-1.394,-1.491,1.885,2.336 +36,0,-0.157,1.507,-0.951,0.606,0.866 +36,0,-0.283,-0.672,-0.947,-0.025,0.316 +36,3,-0.570,-1.851,-0.754,-0.123,-0.408 +37,0,-0.846,-1.049,0.636,1.788,1.890 +37,0,-2.984,0.256,-0.441,0.366,0.618 +37,0,-2.170,0.398,-0.511,-0.884,2.821 +37,0,-0.662,-0.935,-0.507,-0.916,4.329 +38,3,1.164,-0.887,2.169,0.360,-2.447 +38,0,3.868,-0.534,-1.261,-0.491,0.397 +38,3,0.652,-3.315,0.516,-2.345,-2.902 +39,0,-0.902,1.367,-2.265,-1.651,0.581 +39,0,-3.015,2.276,-1.966,-0.874,-1.122 +39,3,-2.882,1.595,-0.661,-1.707,-0.345 +39,1,-1.728,2.322,-0.399,-1.617,0.667 +40,0,0.523,1.321,-2.472,-0.642,4.348 +40,0,0.573,0.792,-2.756,0.078,2.295 +40,0,1.700,0.090,-3.160,-0.632,2.721 +40,0,2.717,0.163,-0.856,0.335,3.012 +40,0,2.382,-1.010,-4.469,-1.540,4.283 +41,0,1.680,3.934,-0.136,-1.003,1.471 +41,2,3.165,1.500,-0.696,-1.964,-0.015 +41,0,2.605,4.024,-0.249,-1.222,-0.345 +41,3,1.659,3.434,-0.334,-1.776,-1.104 +41,0,2.436,1.533,-1.372,-0.610,0.114 +42,3,1.362,0.361,0.076,-0.654,-0.041 +42,0,2.330,-1.323,-0.396,-0.922,-0.552 +42,0,0.612,-0.528,-0.600,-0.452,-1.074 +42,3,2.708,-0.614,1.498,-0.266,-0.578 +42,0,1.069,-0.388,-0.380,-0.622,0.270 +43,0,0.810,0.109,-0.482,-2.034,1.432 +43,1,0.122,0.650,1.135,-2.405,0.557 +43,3,0.303,1.491,-1.125,0.101,0.139 +43,0,1.784,2.107,-1.902,-0.706,-0.781 +43,3,-0.430,2.486,0.279,0.731,-0.992 +44,1,0.274,2.254,0.293,1.302,-1.576 +44,1,-1.536,1.722,0.086,0.147,-0.048 +44,3,-0.660,0.926,-0.263,0.337,-3.024 +45,0,0.638,2.293,-2.727,1.367,-2.838 +45,0,2.333,0.580,-3.676,2.485,-0.867 +45,1,0.311,2.863,-1.394,0.978,0.520 +46,3,-0.536,-1.408,1.718,0.701,-3.082 +46,0,-1.029,-0.307,-1.391,-0.121,-0.977 +46,3,-2.691,-0.206,0.952,-0.595,-2.686 +46,1,-2.416,1.037,-0.615,1.544,-0.424 +46,3,-0.117,0.405,0.485,1.102,-2.027 +47,3,-2.621,0.162,3.709,0.162,1.042 +47,3,-0.904,0.965,2.577,-0.714,1.145 +47,3,-0.134,1.852,1.811,-2.008,0.856 +47,0,-1.074,0.252,0.793,-2.739,1.319 +47,3,-1.217,1.258,2.500,-1.567,-0.240 +48,3,1.264,0.466,-0.383,2.873,-0.572 +48,3,1.706,0.983,0.207,-0.290,0.111 +48,3,3.347,2.453,-1.182,0.768,-1.115 +48,0,0.597,0.741,-1.309,1.814,-0.542 +48,3,2.028,2.015,-1.532,-0.110,-1.585 +49,3,0.937,-0.614,2.181,-0.781,-2.092 +49,3,0.524,1.072,1.598,-0.399,-0.174 +49,3,0.235,2.098,0.766,-2.366,-1.457 +50,3,-0.134,-1.241,1.375,-1.829,-1.689 +50,3,0.708,-0.350,-0.251,-1.099,-1.671 +50,3,0.018,-2.887,1.906,-1.857,-2.891 +51,2,-1.177,-1.744,1.398,-0.839,1.631 +51,3,0.542,-1.437,1.734,-1.895,0.255 +51,3,0.433,-1.856,1.959,-0.549,-0.592 +51,3,0.159,-2.432,3.163,-3.458,-0.617 +52,3,0.917,-2.848,0.975,-1.692,-0.827 +52,3,4.082,-3.611,-0.060,-1.440,-1.777 +52,2,2.874,-3.231,0.349,-4.445,-1.122 +53,1,2.446,2.489,-0.843,-1.022,0.660 +53,0,2.461,0.819,-0.005,0.207,0.972 +53,0,1.862,1.333,-1.341,-0.376,0.360 +54,1,-2.239,0.181,0.263,-3.742,1.403 +54,0,-1.348,0.103,-1.512,-0.530,0.284 +54,3,-2.021,-1.084,-0.257,-2.296,0.641 +54,0,-1.397,-1.509,-0.711,-1.164,1.292 +55,3,-0.840,0.459,1.358,-0.808,-1.591 +55,1,0.090,-1.098,0.741,-1.044,-0.985 +55,3,0.170,-0.810,1.532,-1.118,0.777 +55,1,-1.193,1.133,-1.178,-0.973,-1.207 +56,0,0.673,0.875,-2.663,-0.110,1.675 +56,3,0.483,2.045,0.321,0.930,0.554 +56,1,1.703,2.340,-1.414,0.249,0.451 +56,3,3.148,0.030,-0.673,-2.044,-0.509 +56,0,2.435,0.467,-0.511,-0.481,1.470 +57,3,1.307,0.032,1.965,0.325,-1.044 +57,3,1.477,0.636,1.780,0.519,0.649 +57,0,0.969,1.701,1.562,1.777,2.693 +58,1,-1.991,2.099,-1.235,-3.338,1.691 +58,0,-1.294,0.801,-1.536,-5.260,0.240 +58,0,1.087,-0.616,-1.443,-5.497,0.873 +59,2,1.435,1.120,-1.357,-1.004,-1.109 +59,1,0.406,0.931,-2.413,-0.419,-0.631 +59,3,2.337,1.257,1.181,-2.238,-2.474 +60,3,2.382,0.889,0.114,0.441,-0.651 +60,3,1.435,0.927,-0.078,2.349,-1.099 +60,3,2.689,2.127,0.348,2.717,-2.908 +60,3,2.592,-0.667,0.716,2.757,-0.644 +61,3,-1.896,2.103,0.766,2.309,0.353 +61,3,-0.711,1.214,1.696,2.460,0.872 +61,0,-2.583,2.446,-0.049,0.764,2.278 +62,1,0.697,-0.010,-0.255,-1.363,-2.090 +62,2,1.199,-0.516,1.976,-2.891,-2.246 +62,3,1.119,-0.842,2.215,-3.999,-0.908 +62,3,0.830,-1.216,2.689,-3.101,0.423 +62,3,1.314,-0.168,1.177,-3.017,-1.921 +63,0,-0.592,1.594,-1.223,-0.867,-0.292 +63,1,-0.967,-0.448,-1.087,-1.210,0.317 +63,3,1.202,2.298,0.861,-2.620,-1.530 +63,3,-0.229,0.823,-1.333,-1.424,-2.558 +64,0,0.643,1.244,0.236,0.918,0.851 +64,0,-0.595,-1.311,-1.902,1.609,1.071 +64,0,0.853,1.392,-0.676,0.346,-0.104 +64,0,-1.915,1.581,-0.591,0.913,0.823 +65,0,1.963,1.763,1.028,-0.585,1.013 +65,2,1.843,1.093,1.343,-0.592,0.573 +65,0,0.139,2.607,0.159,-0.646,2.035 +65,0,0.821,0.757,-0.691,-0.318,0.280 +66,0,1.064,-0.505,-1.167,1.672,-0.908 +66,1,1.226,-1.644,-0.140,2.591,0.794 +66,3,-0.164,0.551,-0.315,1.777,-2.656 +66,0,0.849,-1.408,-1.408,0.634,0.660 +67,3,-0.662,-1.006,1.308,-0.556,0.135 +67,1,0.639,1.014,0.839,-1.638,0.315 +67,3,0.933,1.089,0.362,-0.669,0.143 +67,3,-0.462,0.024,-0.239,-1.056,-1.005 +68,3,1.143,-0.711,0.580,0.683,0.685 +68,0,0.674,-0.933,-0.021,-1.275,1.334 +68,1,-0.164,0.793,0.338,-0.225,1.849 +69,3,-0.537,0.429,1.070,-0.019,2.106 +69,1,-1.663,-1.481,1.507,0.683,2.016 +69,0,-1.488,0.185,0.177,2.093,2.428 +70,1,-0.362,0.562,0.055,-0.462,-0.119 +70,0,-0.722,2.063,0.045,-1.391,-0.879 +70,3,1.310,1.719,0.567,-0.888,-2.828 +70,3,-0.945,0.740,-0.488,-1.366,-2.837 +71,3,0.995,-1.828,0.767,-1.817,-3.112 +71,2,0.737,-0.335,-0.360,-0.834,-4.443 +71,3,-0.103,-1.086,1.448,-0.079,-2.440 +72,3,0.538,0.976,0.183,2.886,-1.716 +72,3,0.444,-0.574,0.671,1.650,-2.928 +72,3,-0.587,1.208,0.117,2.337,-0.353 +72,3,4.349,-0.973,1.541,0.487,-0.945 +73,0,-1.062,0.103,2.362,2.154,0.878 +73,0,-0.439,-1.979,1.323,-0.502,1.395 +73,2,-2.308,-0.694,0.266,0.259,-0.640 +73,3,-0.791,-2.199,1.321,-1.164,1.448 +74,0,0.879,-1.555,1.129,0.012,2.553 +74,0,0.218,0.867,-0.409,1.014,2.106 +74,0,0.199,0.272,0.272,1.584,2.345 +75,3,-0.013,0.414,1.868,0.331,-0.086 +75,3,-1.355,0.615,-0.639,0.453,0.185 +75,3,-0.806,-1.941,1.365,0.931,0.293 +75,1,-0.584,1.245,-0.741,-0.263,-0.632 +76,3,-0.526,0.413,1.587,-1.150,-0.281 +76,1,0.573,0.413,-0.631,-0.452,1.212 +76,1,1.605,-1.166,0.777,-1.345,-0.290 +76,2,-1.266,-0.028,1.400,-2.024,-0.383 +77,1,0.127,-1.413,-1.198,-1.972,-0.107 +77,0,-0.635,-0.655,-0.501,-1.203,0.244 +77,3,0.007,-1.308,0.124,-2.593,-1.231 +77,1,-0.609,-1.040,-0.852,-3.274,-0.859 +77,0,-0.290,-1.161,-3.154,-0.613,-0.652 +78,1,1.110,2.754,0.975,-2.438,1.188 +78,0,1.234,0.582,0.171,-1.092,-0.599 +78,0,1.594,4.232,1.503,0.147,1.591 +78,1,1.884,1.577,-0.748,0.134,-0.565 +78,1,0.977,1.992,0.099,0.135,-1.023 +79,0,-1.403,-2.374,-2.155,1.847,-1.464 +79,3,-0.206,-1.880,0.065,0.277,-0.457 +79,3,-0.990,-2.294,0.598,-1.195,-0.518 +80,3,1.087,0.521,0.564,-0.038,-0.975 +80,1,0.889,0.909,1.697,-1.085,1.143 +80,0,1.282,2.200,1.601,-0.200,1.076 +80,3,2.404,0.139,0.293,0.500,-0.628 +80,3,1.546,1.051,1.095,-0.150,0.217 +81,3,-1.272,0.603,-0.448,-1.404,-2.019 +81,3,0.686,0.945,0.015,-2.092,-1.207 +81,3,0.423,1.449,1.720,-1.811,0.516 +81,0,-0.022,-0.989,-0.298,-1.054,0.575 +82,3,-1.921,0.024,-0.859,0.765,-1.773 +82,3,-0.366,1.072,0.287,-0.448,-1.941 +82,3,-0.672,-1.056,1.177,-0.394,-2.765 +82,3,-0.207,-0.650,0.351,-1.827,-2.826 +82,1,-1.789,2.601,-1.320,-3.007,-0.900 +83,1,1.107,1.784,0.073,1.656,1.218 +83,0,1.342,0.822,-1.068,1.410,1.985 +83,1,1.243,1.437,-0.206,1.346,0.313 +83,3,0.367,1.802,3.143,1.343,-1.936 +84,3,0.781,-0.042,-1.759,-0.585,-0.866 +84,0,0.850,1.110,-1.142,-1.219,1.211 +84,3,-0.458,-0.328,-0.535,0.503,0.349 +85,3,1.014,-0.429,1.099,1.782,-0.942 +85,3,0.329,-1.282,0.849,0.540,-2.237 +85,3,-0.235,-0.870,-0.369,2.669,-0.188 +86,0,1.749,0.050,-2.251,0.360,-0.682 +86,1,-0.989,0.511,-1.832,1.180,0.206 +86,1,1.444,-0.076,-1.974,1.442,-0.273 +86,0,-1.160,-1.810,-1.331,0.014,0.728 +87,3,1.877,-0.730,1.391,0.122,2.120 +87,3,2.840,-4.326,1.302,-1.133,1.665 +87,0,0.962,-1.642,-0.160,2.384,0.320 +88,1,-1.733,-2.755,-1.286,-2.354,0.511 +88,0,-2.246,-0.584,0.205,-0.715,1.867 +88,0,-1.193,0.837,-0.198,-1.441,0.397 +89,0,0.912,0.985,-1.922,-1.643,1.184 +89,0,0.625,-0.161,-1.532,-0.513,0.452 +89,1,0.203,0.242,-0.855,-0.826,-1.535 +90,3,0.918,1.002,0.299,0.733,0.110 +90,0,-0.851,-1.035,-0.372,0.158,0.832 +90,3,1.339,-0.708,1.746,3.792,0.355 +90,0,-0.704,-0.329,0.262,2.280,1.084 +91,0,0.978,0.084,-0.483,-1.566,-0.564 +91,0,1.188,-1.111,-1.387,1.617,-0.149 +91,0,0.619,2.850,-0.787,0.831,2.082 +92,2,-1.751,-0.184,-1.363,-1.111,-0.924 +92,0,0.294,-0.699,-3.174,-1.371,-0.993 +92,0,0.354,-0.019,-3.931,0.300,-0.162 +93,3,0.940,3.068,1.535,-0.376,-0.666 +93,3,1.279,-1.337,1.104,0.562,-0.457 +93,3,0.115,0.361,-0.091,-0.541,0.208 +93,3,0.873,1.182,-0.088,-0.053,1.644 +94,2,0.357,-1.433,-1.402,-1.468,-1.386 +94,0,-0.505,-0.870,-1.248,-0.398,-0.800 +94,3,-0.520,1.106,-0.948,-2.593,-2.156 +94,0,-1.532,-0.207,-1.405,-0.458,-0.401 +95,2,2.079,2.104,0.624,-0.017,-0.822 +95,3,0.730,1.668,0.404,-2.631,1.226 +95,3,1.358,0.214,1.500,-0.123,-0.564 +95,1,-1.695,0.853,-0.390,-0.272,-1.579 +96,3,1.335,0.799,-0.339,-0.542,1.759 +96,0,-1.031,-1.822,-0.766,0.197,2.739 +96,3,-0.762,0.187,-0.561,1.706,0.424 +97,3,-2.477,-0.416,-0.104,0.311,-2.010 +97,3,-0.638,-0.571,2.818,1.439,0.713 +97,0,1.272,-1.134,0.186,1.607,-0.148 +97,1,-1.858,-0.507,-0.397,1.692,-0.488 +97,3,-0.981,-0.178,2.324,1.392,-2.775 +98,3,0.478,-1.823,0.392,-1.094,-2.676 +98,3,-0.154,0.281,-0.851,0.944,-0.146 +98,3,1.608,1.479,1.556,-0.139,-1.885 +98,3,-1.709,-1.370,-1.047,-0.523,-2.364 +99,0,-1.458,-0.980,-0.297,0.015,-0.316 +99,0,-1.145,-3.101,-1.887,1.413,-0.757 +99,3,0.602,-1.038,0.196,1.522,-1.907 +100,2,0.479,0.958,0.104,-0.800,0.367 +100,1,0.821,0.309,0.434,-1.932,0.368 +100,1,1.289,1.032,0.105,-1.959,2.166 +100,0,2.362,-0.193,-0.688,-1.034,2.872 +100,0,1.988,0.086,-1.536,-0.621,1.202 +101,0,0.018,0.749,-0.853,0.030,2.573 +101,0,-0.035,-0.933,0.259,1.275,1.451 +101,3,-2.691,-0.977,1.504,0.848,0.177 +102,3,1.010,-0.798,0.717,0.288,-2.515 +102,3,1.186,-1.386,0.350,0.007,-1.755 +102,0,1.097,-2.611,-2.162,0.347,-1.241 +102,3,2.500,-2.032,0.390,-2.236,-2.442 +102,3,-0.548,-1.573,0.837,0.406,-1.828 +103,1,0.796,-1.782,-0.309,-0.518,0.266 +103,0,0.196,-2.643,0.085,-0.996,1.281 +103,0,-0.448,-1.288,0.575,0.821,1.740 +103,0,0.389,-2.551,-0.879,2.172,2.545 +104,0,-0.860,1.209,-2.600,-0.749,0.440 +104,0,1.733,0.111,-2.232,0.591,-0.137 +104,3,1.894,0.445,-1.824,0.677,-0.489 +104,3,3.642,0.815,-0.803,-0.431,0.049 +104,3,1.714,1.343,-0.101,0.672,-1.298 +105,1,1.624,-0.210,0.815,-0.373,0.879 +105,0,0.754,-0.112,-0.763,0.469,0.564 +105,3,0.494,-0.191,1.618,2.098,-0.045 +106,0,-2.917,1.283,-2.260,0.468,1.082 +106,3,-0.394,0.667,-0.358,0.188,3.891 +106,0,-1.205,-0.647,-1.564,-2.192,2.203 +106,0,1.027,1.101,0.156,0.112,0.087 +107,3,-0.879,0.957,1.069,0.071,-1.097 +107,0,-1.430,0.104,-0.661,0.241,-0.095 +107,1,-2.692,-0.628,-0.058,-0.562,0.764 +107,3,-0.427,-1.059,1.650,0.879,-0.814 +108,0,1.525,-0.919,-2.225,-0.587,-0.806 +108,3,-0.082,-2.993,-0.784,0.032,-0.197 +108,1,2.377,-0.322,-1.864,1.237,-0.079 +108,3,2.135,-1.627,-1.077,1.041,-1.385 +109,3,2.137,0.641,0.879,1.114,-1.045 +109,3,0.961,3.464,0.310,0.167,0.987 +109,0,1.214,1.694,-0.045,1.808,1.779 +109,0,-0.980,2.171,0.820,0.258,2.101 +110,2,-1.591,2.216,0.991,1.451,1.197 +110,0,1.419,1.056,-1.398,2.196,1.900 +110,0,-2.192,1.150,-0.196,-0.731,0.743 +111,3,-0.976,1.149,-1.282,1.438,-2.719 +111,3,0.769,0.216,-0.050,-0.646,-0.801 +111,3,1.425,0.310,1.086,-1.287,-0.088 +111,1,0.621,0.048,-1.143,-1.271,0.216 +112,3,-0.679,-2.026,2.182,1.441,0.706 +112,3,0.175,-2.507,2.810,1.000,1.147 +112,3,-0.958,-1.679,0.512,0.769,-0.962 +112,3,0.815,-0.258,2.168,2.437,0.158 +113,0,-0.751,-1.449,0.375,1.580,-0.742 +113,3,-0.730,-1.175,0.933,-0.058,-2.051 +113,0,0.192,-0.658,-2.669,1.393,-2.330 +113,0,-1.715,-0.142,-2.635,-1.051,-0.330 +114,3,-2.977,1.569,0.139,1.659,0.304 +114,2,0.461,0.172,-0.477,1.343,-0.098 +114,3,-0.089,-0.398,0.628,0.905,-0.282 +115,3,2.063,-1.172,0.449,-0.821,-0.701 +115,2,-1.394,-1.784,-1.749,1.523,-1.946 +115,1,-0.045,-1.340,-1.139,-2.747,-0.596 +115,3,1.604,0.685,0.768,-0.386,-1.094 +115,0,-0.727,-0.831,-1.638,0.413,0.487 +116,2,1.870,0.695,0.717,0.771,-0.725 +116,0,2.755,-0.266,-0.668,0.797,1.576 +116,3,1.960,-0.487,-1.025,0.840,-0.985 +116,0,1.326,-1.382,-1.210,-0.749,2.355 +116,0,1.648,-0.218,0.311,-0.662,2.042 +117,3,-0.541,1.532,1.090,-0.235,-0.044 +117,3,2.885,-1.406,0.124,-1.133,-1.126 +117,3,1.877,-2.496,0.605,-1.157,-0.158 +117,3,1.477,-0.897,0.749,-1.848,-0.952 +117,3,1.569,-0.474,1.234,-0.215,0.032 +118,3,1.650,-1.779,0.335,0.181,-3.391 +118,3,0.934,0.707,0.873,-0.598,-3.931 +118,3,1.424,-1.796,0.347,-0.283,-2.928 +119,3,-2.308,1.023,1.075,1.772,-2.165 +119,3,-1.260,-1.134,0.747,1.807,0.293 +119,3,-1.150,0.886,1.163,-0.674,-0.060 +120,0,-1.218,1.036,-0.701,1.572,0.651 +120,0,-1.703,1.353,-0.677,1.327,0.926 +120,0,-0.102,2.153,-0.891,0.653,0.513 +120,0,-1.923,0.789,-0.524,-1.359,1.451 +120,0,-2.063,0.521,-2.434,-0.387,-1.068 +121,3,-0.688,0.337,0.971,-0.428,-1.242 +121,3,-2.271,0.916,-0.007,-0.644,-2.237 +121,3,0.251,0.444,1.371,0.711,-0.579 +122,3,-2.206,-0.861,1.073,0.719,0.125 +122,3,-1.018,1.140,1.154,-0.209,-1.340 +122,3,-1.814,0.488,2.330,1.009,-1.979 +123,0,0.041,1.693,-1.532,-0.021,-0.379 +123,2,-0.603,-0.813,0.452,1.163,-0.924 +123,3,0.598,0.523,1.302,1.195,-0.990 +124,0,-1.151,-4.004,-3.323,-0.229,-0.770 +124,1,0.022,-2.545,-1.300,0.669,-1.020 +124,3,-2.073,-1.885,-0.996,-1.261,-3.913 +124,0,-0.545,-2.511,-1.803,-0.338,-1.205 +125,1,0.204,0.464,-0.692,-1.205,-1.380 +125,2,0.142,1.716,0.919,0.786,0.160 +125,3,-0.091,0.926,1.085,-3.688,-2.203 +125,2,0.274,0.712,0.113,-2.600,-0.118 +125,2,0.299,0.587,-0.455,-1.457,-1.191 +126,0,-1.287,0.015,-0.280,-1.734,0.654 +126,0,-0.583,-1.129,-0.671,-2.156,0.216 +126,0,-1.269,-0.454,-0.602,-1.422,0.314 +127,2,-0.139,-3.498,-2.445,1.517,-3.260 +127,1,-0.768,0.749,-1.964,2.761,-3.214 +127,3,2.213,0.595,0.120,2.225,-0.585 +127,0,-1.313,-0.734,-0.796,1.286,1.186 +128,0,-0.877,-2.435,-2.736,1.304,3.278 +128,0,-1.139,-1.440,0.352,-0.345,1.608 +128,0,-0.034,-1.121,-1.044,0.861,0.567 +128,0,-0.148,-0.300,-1.972,-0.372,1.161 +129,3,0.169,0.205,-0.812,2.300,-0.632 +129,1,-0.013,0.551,-0.672,2.319,-1.758 +129,0,1.082,0.190,-2.296,1.018,-1.720 +129,3,0.494,0.549,-0.984,1.331,-1.341 +129,1,-0.175,-1.767,-1.635,1.066,-0.708 +130,0,2.423,-0.567,-3.457,0.298,-0.092 +130,0,1.717,1.165,-1.767,-1.819,-0.412 +130,0,1.590,-0.665,-0.766,-1.765,0.183 +130,0,1.409,0.263,-0.910,0.176,-0.682 +130,0,0.714,0.899,-2.199,-1.406,0.475 +131,3,-0.135,1.269,-3.417,0.426,-2.367 +131,3,-2.483,0.404,-1.169,-1.649,-1.677 +131,3,-0.247,-0.134,-0.632,-0.225,-0.933 +131,3,-0.562,2.340,-1.399,0.330,-2.975 +132,1,-3.436,1.227,-1.201,1.591,-0.573 +132,0,-3.110,0.954,-0.547,1.299,1.951 +132,0,-2.753,-0.840,-0.798,-0.859,0.841 +132,3,-3.277,0.328,-0.019,0.214,0.877 +132,3,-2.049,-0.578,-0.048,-1.055,0.783 +133,3,0.364,1.604,1.356,-3.778,0.442 +133,3,0.714,1.985,0.767,-0.466,0.352 +133,3,1.147,2.619,0.433,-1.486,-1.106 +133,3,-0.358,2.153,0.134,-0.586,-0.335 +134,3,-0.749,-0.296,-1.767,-0.844,-2.911 +134,3,-2.504,-0.049,-1.790,-1.536,-0.480 +134,3,0.099,-0.721,0.164,0.551,-1.860 +135,3,-0.139,0.346,-0.223,-0.554,-1.636 +135,3,1.264,-0.103,1.693,-1.637,-0.921 +135,3,1.768,0.270,-0.046,-1.000,-0.705 +136,3,-2.460,-0.035,1.531,0.192,1.000 +136,3,1.382,0.495,0.643,2.128,-0.711 +136,3,-2.230,0.670,0.419,1.890,-1.078 +137,1,4.097,0.540,0.212,1.543,1.510 +137,0,2.834,0.620,-0.236,1.142,2.312 +137,0,3.932,-0.854,-1.090,-0.379,3.997 +137,1,2.043,-0.776,-1.181,0.875,0.015 +137,0,1.713,0.108,-1.363,-0.352,1.344 +138,0,-0.382,-0.169,-1.351,-1.039,0.282 +138,0,-1.088,0.502,-1.455,0.776,0.631 +138,0,2.377,2.136,-2.330,0.020,1.260 +138,0,1.584,1.889,-0.128,-0.501,1.124 +138,1,1.993,0.631,-0.592,1.035,3.376 +139,1,-0.505,3.733,0.775,-1.352,1.394 +139,3,-0.424,1.926,-1.021,0.064,-1.690 +139,3,-0.111,-0.387,-0.139,-0.853,-2.159 +140,3,2.160,-0.747,0.977,0.772,-0.298 +140,3,2.785,1.478,2.243,-0.143,-0.749 +140,3,0.269,1.227,1.933,0.497,0.221 +140,3,2.251,-1.694,2.038,0.296,-0.932 +140,3,0.918,-1.366,1.447,1.080,0.370 +141,3,0.408,-2.265,0.317,1.307,-0.828 +141,3,0.447,-0.852,4.245,0.944,-0.691 +141,3,0.535,-0.852,0.365,-1.610,0.303 +141,0,-0.170,0.011,0.473,0.837,0.519 +142,0,1.235,0.909,-0.613,-2.065,2.612 +142,2,0.990,1.254,1.929,-2.441,2.398 +142,0,0.420,-0.034,3.209,-2.292,2.975 +142,0,1.411,2.685,1.345,-2.635,0.019 +142,3,-0.396,1.103,1.605,-3.118,0.484 +143,0,-0.641,-0.535,-1.015,2.459,2.174 +143,0,0.311,1.323,0.159,-0.855,1.079 +143,0,-0.531,1.218,0.247,-1.975,1.363 +143,2,0.231,1.198,1.439,-0.413,2.345 +143,1,1.241,1.689,0.826,-0.983,0.444 +144,0,0.501,-0.212,-0.485,-0.546,0.064 +144,0,0.290,-0.456,1.345,-2.318,2.600 +144,0,2.900,0.701,1.691,-3.227,0.732 +145,3,-0.444,1.498,1.698,2.001,2.299 +145,1,-1.595,-0.710,1.093,0.362,0.635 +145,3,0.906,1.364,1.684,0.420,0.109 +145,3,-1.227,1.780,1.185,1.706,-0.148 +146,0,2.788,0.184,-1.675,-1.623,-1.016 +146,3,0.130,0.865,-0.189,-1.535,-1.029 +146,0,0.841,2.209,-1.351,-0.550,-0.315 +147,0,1.908,-2.269,2.341,-1.251,3.364 +147,1,3.478,0.916,1.636,-1.854,0.853 +147,3,1.198,0.082,0.902,0.099,1.339 +147,3,0.638,-0.829,3.691,-1.567,0.312 +147,0,2.339,-0.025,3.174,0.148,1.504 +148,0,-1.064,-0.379,0.097,0.613,3.423 +148,0,1.415,0.408,0.008,0.965,3.160 +148,0,-0.828,0.407,-0.113,0.781,3.454 +149,3,0.721,3.008,-2.780,-0.790,-2.606 +149,0,2.396,1.752,-1.284,-0.693,1.524 +149,0,0.652,1.451,-4.768,0.439,-1.203 +150,3,-1.186,-1.967,0.903,-1.600,0.926 +150,0,-1.156,-2.979,-0.885,-0.598,0.622 +150,3,-0.730,-1.823,2.007,-0.152,0.822 +150,3,-1.548,-3.785,2.642,-0.052,-0.940 +151,0,-0.807,0.287,-0.822,-1.652,0.408 +151,3,-0.140,-0.690,-0.126,-1.978,0.140 +151,3,-0.507,-0.723,0.521,0.346,-0.376 +151,3,-1.114,-1.242,-0.026,-0.380,-1.418 +151,3,1.376,-0.280,-0.315,-0.364,-1.108 +152,0,1.241,0.150,-1.644,0.725,-0.424 +152,1,0.046,2.573,-0.988,0.467,1.041 +152,0,0.024,1.955,-3.466,1.355,1.664 +152,0,1.310,0.023,-2.217,0.369,2.114 +152,0,0.241,0.408,-1.841,1.459,1.345 +153,3,-1.933,0.491,0.667,-0.253,0.336 +153,0,-1.436,1.425,-0.688,-1.161,0.507 +153,3,-1.920,1.110,-0.242,0.470,-0.122 +153,0,-0.205,-0.497,-1.803,-1.077,1.289 +154,3,1.143,-0.138,0.879,-2.198,0.128 +154,2,0.929,0.869,0.458,0.308,1.032 +154,0,0.390,0.727,-0.666,-0.123,1.833 +154,1,1.365,-0.743,0.496,-1.188,1.604 +154,2,1.848,-0.730,0.275,0.178,0.962 +155,3,-0.047,1.903,0.318,-1.838,0.339 +155,3,-0.062,2.339,0.911,0.371,-2.339 +155,3,-0.039,3.063,0.149,-1.166,-0.810 +155,1,0.550,1.715,-0.840,-0.014,-0.191 +155,0,-0.719,1.124,-0.510,-0.974,0.133 +156,0,1.658,-2.364,-0.305,-1.303,-0.861 +156,3,1.596,-0.641,0.808,0.897,-1.844 +156,0,1.437,-0.151,-1.099,0.391,-0.899 +157,1,-2.398,1.000,0.286,-0.488,-2.161 +157,3,-2.122,2.956,-1.093,0.223,-1.629 +157,3,-3.343,0.350,0.785,1.157,-3.112 +158,2,-1.198,-1.993,1.405,-1.007,-0.373 +158,0,0.522,0.682,0.649,-0.697,2.552 +158,3,-0.508,1.116,0.009,-0.205,0.742 +159,0,2.386,1.557,-0.383,-0.936,0.951 +159,1,2.206,0.401,-0.275,1.492,1.651 +159,0,1.212,1.792,-0.542,-0.426,1.447 +159,0,1.728,1.405,-1.729,-0.654,-0.602 +159,1,1.358,1.629,0.873,0.322,0.406 +160,3,2.099,0.427,2.453,2.109,-0.083 +160,3,-0.230,-1.396,2.938,2.710,0.967 +160,3,-1.292,0.950,1.096,3.372,-1.505 +161,3,0.045,1.270,0.331,-2.133,-2.610 +161,3,-1.333,0.652,1.125,0.465,-2.381 +161,1,-2.065,0.173,-1.495,-1.296,-0.877 +161,3,1.379,0.262,-2.287,0.774,-4.017 +161,3,1.486,-2.368,0.155,1.414,-3.064 +162,3,0.671,0.086,1.934,0.116,-0.992 +162,3,1.527,-0.836,-0.386,1.357,-2.509 +162,3,2.471,-1.969,2.200,-1.062,-0.266 +162,3,0.995,-2.304,1.331,-0.198,-0.337 +163,3,-0.820,1.325,-0.337,-1.330,-1.507 +163,3,0.063,0.126,0.790,-0.235,-2.175 +163,1,-0.124,-1.557,-1.332,0.838,-1.719 +163,3,-1.017,-0.418,-2.084,-0.737,-2.358 +164,3,0.717,-0.559,1.383,0.400,-2.886 +164,3,-0.807,-0.399,3.138,1.258,-2.738 +164,3,-0.275,2.211,1.929,1.974,-2.804 +165,3,-1.783,-0.622,-0.414,-1.466,-0.731 +165,1,0.173,-1.007,-0.228,-0.814,-0.590 +165,1,-0.200,-1.005,-1.177,-1.408,-1.153 +166,1,-0.663,-1.783,-0.769,-0.894,0.046 +166,0,-0.842,0.570,-0.743,2.119,-0.379 +166,3,1.389,0.973,1.166,-0.558,-0.023 +167,3,3.277,0.598,3.551,-0.857,-1.374 +167,3,1.432,0.924,0.965,-1.430,-1.690 +167,3,1.690,0.300,0.809,-2.272,-3.489 +168,0,-1.500,1.650,-0.436,3.251,-0.052 +168,3,-2.573,0.863,-0.234,2.108,-1.353 +168,0,1.189,1.353,-2.623,0.498,-1.145 +168,1,0.637,0.969,0.490,1.850,-0.304 +168,0,-0.943,1.046,0.069,0.898,0.010 +169,0,1.310,2.549,1.505,0.237,0.170 +169,0,0.303,0.262,0.334,-0.371,0.993 +169,3,0.682,3.013,0.238,-0.070,-1.370 +169,3,0.601,0.963,1.419,0.938,-1.700 +170,3,-1.373,-1.059,2.467,-0.352,-2.084 +170,3,-0.842,0.645,0.402,-0.048,-2.521 +170,2,-3.836,1.001,-1.300,-0.248,-1.706 +170,3,-3.580,-0.530,1.538,-0.970,-1.583 +171,3,-1.357,-0.678,1.783,1.263,2.233 +171,0,-1.228,1.193,0.572,1.124,3.645 +171,0,0.100,2.151,0.290,1.067,1.043 +171,2,-0.560,1.164,-0.395,3.820,0.094 +172,3,-1.608,0.227,0.243,1.486,-0.901 +172,1,-1.977,0.554,-1.540,-0.097,0.520 +172,1,-2.802,-0.339,-1.587,0.297,-0.408 +172,0,-1.616,1.836,-0.994,-0.579,1.531 +173,3,-3.676,-0.286,1.189,1.776,-0.382 +173,1,-2.701,0.361,1.374,0.768,1.295 +173,3,-3.954,0.131,2.665,-1.615,0.337 +173,1,-3.597,1.692,1.937,-1.086,2.327 +173,0,-3.324,1.520,0.529,1.440,1.007 +174,3,2.993,1.537,0.353,1.990,-1.645 +174,1,1.412,-0.459,0.035,1.837,0.072 +174,3,1.978,1.074,-1.335,-0.466,-0.572 +175,1,-0.636,1.270,2.992,1.021,1.860 +175,0,1.546,3.505,-0.440,-0.413,1.841 +175,3,0.049,1.288,0.941,-1.389,0.925 +175,0,-1.177,2.804,0.877,-1.363,2.648 +175,3,0.290,0.184,0.849,0.006,0.396 +176,0,-2.478,-3.280,0.118,0.188,1.488 +176,3,-2.952,0.524,3.634,-1.651,1.753 +176,0,-1.595,0.406,0.827,-2.061,2.908 +176,2,-2.377,0.120,1.871,-0.987,1.719 +176,2,-2.156,-1.604,0.185,0.402,-0.503 +177,1,-1.513,0.278,-1.517,-0.447,-2.413 +177,0,-3.137,0.337,-2.083,-0.116,1.925 +177,1,-0.787,-0.227,-2.580,0.576,-0.511 +177,1,0.199,1.018,1.003,3.064,0.447 +177,3,-2.446,2.508,-0.836,-0.384,-1.670 +178,3,-0.089,-0.927,1.137,-0.355,0.346 +178,2,0.188,-2.616,1.135,-0.432,0.960 +178,3,-0.473,0.521,-0.002,-1.395,0.646 +178,3,0.539,0.247,1.026,-1.850,0.989 +179,2,1.672,2.319,0.366,0.325,-0.595 +179,3,1.648,-0.932,1.583,1.283,0.277 +179,3,-1.139,-1.284,1.783,2.048,-1.149 +179,0,0.355,1.615,0.711,2.350,0.652 +180,3,0.340,-0.863,1.285,0.554,-0.018 +180,1,0.272,-1.149,0.691,0.759,0.462 +180,3,-0.401,0.749,2.009,1.034,-1.260 +180,3,1.930,-0.193,1.508,0.361,-1.562 +181,0,-0.362,0.667,0.161,-1.863,1.661 +181,2,-0.022,1.095,-0.542,-1.271,-1.138 +181,3,1.291,0.723,0.729,-0.849,0.543 +182,3,-0.000,2.003,-0.715,0.302,-0.885 +182,3,-2.738,2.221,-1.302,-1.037,-2.133 +182,3,-2.372,2.372,0.840,-1.924,-1.727 +182,3,-0.809,0.643,1.612,-1.019,-2.551 +183,0,0.773,-0.247,0.328,0.766,0.225 +183,1,-0.755,-1.214,-0.106,-1.715,-2.033 +183,3,-2.947,-0.993,0.923,-0.851,-0.133 +183,0,-0.170,0.705,-1.724,-1.688,0.096 +184,0,0.097,0.929,-0.264,-0.029,2.380 +184,3,-1.354,0.381,2.728,0.133,-0.295 +184,1,-0.671,-0.033,-0.333,-0.237,0.098 +184,3,-0.876,0.093,2.407,3.023,0.787 +185,1,-0.810,-0.570,0.863,-0.681,1.083 +185,0,0.084,-3.071,0.701,-0.462,1.017 +185,0,-0.446,-1.983,0.264,0.489,-0.139 +186,3,0.331,-1.387,1.926,-1.607,-0.230 +186,3,-0.255,0.931,2.253,-0.791,0.786 +186,2,0.803,-0.198,1.292,-1.593,-1.678 +186,0,1.352,-0.119,0.645,-2.624,0.748 +187,3,0.002,0.542,-2.521,-2.215,-0.727 +187,3,-1.175,-2.607,-2.168,-2.338,-0.368 +187,3,-2.230,0.586,-0.817,-1.140,-0.625 +188,3,1.147,-0.643,3.065,0.831,-3.503 +188,3,0.824,0.336,1.085,2.934,-2.900 +188,3,-0.657,0.033,1.509,1.177,0.111 +189,3,-0.252,0.091,2.198,0.094,-0.181 +189,0,3.062,-1.644,0.301,0.894,-0.402 +189,0,0.766,-0.451,-1.074,0.758,0.281 +189,3,1.363,-0.380,-1.721,-1.560,-2.595 +189,0,0.264,-0.508,-1.991,0.857,-1.018 +190,2,0.354,2.164,1.315,2.869,1.747 +190,0,-1.349,2.479,0.276,0.947,-0.889 +190,3,-0.246,0.957,0.606,-0.846,-0.890 +190,3,-2.057,1.623,1.668,1.590,-1.383 +190,0,0.060,2.207,0.220,0.229,-0.484 +191,3,0.624,0.229,-1.151,-1.374,-2.259 +191,3,-1.006,-0.705,-1.121,-0.513,-3.793 +191,3,1.960,0.460,0.803,0.568,-1.902 +192,0,-1.287,1.048,-1.946,1.663,0.596 +192,3,-0.487,1.134,0.124,3.091,-2.060 +192,2,-0.376,-0.143,0.695,1.670,-0.849 +192,1,0.957,-0.218,-1.940,0.705,-0.577 +192,1,-0.605,1.937,-0.328,1.379,-0.552 +193,3,0.483,0.290,1.008,-0.760,1.946 +193,3,-0.767,1.951,1.785,2.105,0.866 +193,3,-1.086,1.470,1.237,0.991,0.246 +194,3,0.253,-0.211,3.301,-0.949,-0.763 +194,3,1.383,1.297,3.870,-1.100,-1.919 +194,2,0.663,1.061,2.675,0.168,-1.472 +195,0,1.591,0.232,-2.673,-1.815,-1.724 +195,0,1.441,-1.518,-2.079,-1.319,-0.623 +195,1,-1.504,-2.018,-0.158,-1.826,0.745 +196,0,0.462,0.395,0.286,0.962,0.422 +196,0,2.118,0.222,0.622,2.667,0.125 +196,1,0.257,0.558,0.984,0.828,-0.042 +196,0,0.115,-0.418,0.422,-0.346,-0.198 +196,3,0.371,-1.526,0.772,-0.558,0.114 +197,1,-0.595,0.182,1.660,-1.964,0.587 +197,1,0.717,2.608,0.085,0.584,0.101 +197,3,-0.743,1.002,1.141,0.564,-0.332 +197,1,1.239,2.137,0.282,-1.674,0.447 +197,0,0.718,1.075,0.878,-0.649,1.074 +198,1,-1.111,1.118,-0.746,-0.462,1.093 +198,0,-0.056,1.894,-2.264,-0.204,0.402 +198,0,0.641,0.408,-2.025,-0.978,1.231 +199,0,-1.408,0.725,-3.293,2.348,-0.205 +199,2,0.616,0.482,-0.695,1.251,0.828 +199,1,-0.370,1.067,-1.060,0.632,2.041 +199,3,1.817,-0.130,-1.663,0.543,0.827 diff --git a/statsmodels/genmod/tests/results/gee_poisson_1.csv b/statsmodels/genmod/tests/results/gee_poisson_1.csv new file mode 100644 index 0000000..08fee18 --- /dev/null +++ b/statsmodels/genmod/tests/results/gee_poisson_1.csv @@ -0,0 +1,399 @@ +0,2,0.044,-1.944,2.178,-1.691,1.217 +0,1,0.166,0.108,0.849,-0.728,1.182 +0,1,0.085,1.086,0.915,1.447,2.845 +1,3,0.981,-0.561,-0.956,0.362,-0.527 +1,0,-0.821,0.069,-0.886,-0.552,-0.149 +1,1,0.135,1.290,-0.612,0.355,-0.021 +1,1,-0.186,-0.030,-0.526,0.557,-0.558 +2,1,-0.391,-4.376,-1.124,0.612,-1.324 +2,0,1.173,-3.144,-2.369,-1.176,-0.416 +2,0,-0.913,-3.283,-2.843,-1.422,-1.144 +2,1,0.754,-2.505,-0.984,-0.659,-0.224 +2,0,0.566,-2.923,-1.896,0.604,0.223 +3,1,-2.310,1.610,0.992,-0.426,0.053 +3,6,-1.450,1.220,2.457,-2.203,0.643 +3,8,1.394,-1.082,2.256,-1.345,-1.569 +3,0,-0.902,-0.821,-0.403,-2.099,-0.278 +4,4,-1.836,1.599,-2.260,-0.558,-1.336 +4,7,-0.052,-1.184,1.223,-1.584,-0.635 +4,2,-0.370,0.459,-0.141,-0.047,-1.226 +4,3,-0.280,0.313,1.574,-2.396,-1.382 +4,4,-0.527,0.199,1.486,0.199,-0.545 +5,0,-1.127,-0.596,-0.841,1.963,3.568 +5,2,1.370,0.046,0.586,0.191,1.172 +5,1,-1.389,0.393,1.389,1.202,2.256 +5,1,-1.256,-0.201,-0.475,0.482,1.248 +5,0,0.574,0.050,-1.126,0.537,1.481 +6,7,1.316,2.539,2.540,-1.258,-1.396 +6,4,-1.354,0.528,2.451,2.115,0.114 +6,1,0.810,-0.246,0.063,0.062,0.637 +7,0,-0.630,0.509,1.271,0.595,1.842 +7,3,-1.820,-0.058,2.170,-0.361,1.437 +7,0,-0.160,-1.044,0.680,-0.678,1.511 +8,1,-0.716,0.171,0.213,0.149,-0.432 +8,0,-1.039,-1.262,-0.415,-0.657,0.591 +8,4,0.421,-0.423,0.639,0.146,-0.456 +9,5,-0.546,3.096,-1.098,-1.693,-2.755 +9,1,-0.233,1.780,0.833,-2.080,1.562 +9,1,-0.857,2.404,0.464,-3.263,2.044 +9,2,-0.803,2.465,-1.846,-1.601,-0.821 +10,3,2.027,-0.455,0.189,1.624,-1.011 +10,3,3.125,0.455,-0.386,0.663,-0.456 +10,0,2.443,-1.703,-0.855,0.919,2.322 +10,0,1.292,1.489,-0.982,-0.783,0.620 +10,1,3.769,-0.866,-0.212,1.066,1.504 +11,0,1.046,0.104,-0.014,-0.394,0.538 +11,0,1.647,-0.614,-1.885,-0.166,1.048 +11,0,-0.756,-0.890,-1.294,0.813,2.638 +11,1,0.334,-0.872,-0.362,0.685,1.432 +11,0,-0.647,0.463,-1.356,-0.746,4.072 +12,0,-0.096,0.576,-0.298,-2.021,-1.067 +12,0,0.426,-0.435,-0.562,-0.518,0.158 +12,0,0.363,0.158,-0.078,-0.157,-0.158 +13,1,0.333,0.958,1.453,1.085,0.358 +13,2,0.931,-1.524,-0.777,1.854,-2.560 +13,7,0.172,0.848,1.279,1.234,-0.723 +13,2,0.180,-2.070,0.376,-0.476,-0.466 +14,1,0.127,0.351,-0.398,-0.167,-1.155 +14,1,0.293,0.166,-0.661,0.005,0.008 +14,1,-0.467,0.907,-0.527,-1.192,-0.161 +14,9,-0.812,2.363,2.727,0.786,-0.942 +15,0,-0.347,-1.468,1.359,-0.410,0.607 +15,0,1.100,-1.531,-0.154,-0.295,2.609 +15,1,0.487,-1.657,0.315,0.317,0.104 +15,0,0.302,-3.395,-0.446,1.236,2.714 +15,0,2.029,-1.188,0.396,1.032,2.268 +16,1,1.133,-0.600,1.401,1.871,-0.526 +16,4,1.570,0.151,1.725,0.667,-2.335 +16,0,-0.423,0.371,-0.825,-0.068,-0.671 +16,1,-0.121,0.661,0.343,0.197,-0.523 +17,1,-0.825,2.387,-1.431,0.990,0.266 +17,1,0.233,1.366,0.322,2.735,-1.008 +17,0,-0.357,1.484,-1.161,1.548,0.401 +17,2,-2.097,0.452,-0.963,2.389,-2.222 +17,0,0.573,2.523,-0.315,2.031,-0.828 +18,3,3.245,-0.412,0.910,-0.088,-2.425 +18,0,0.892,2.733,-1.249,1.190,-1.444 +18,0,3.510,2.724,0.616,-0.380,-0.698 +19,2,-1.857,-0.358,0.400,0.743,-2.233 +19,2,-2.196,-1.225,1.317,-2.173,-1.884 +19,0,0.527,-0.456,0.647,0.860,-0.824 +20,0,-0.662,2.372,-0.213,0.912,1.116 +20,0,0.499,1.061,0.190,0.295,2.212 +20,0,-1.777,0.796,-0.807,-0.137,0.420 +20,1,0.276,2.640,-0.874,-0.211,-0.418 +21,4,-0.214,-2.134,0.493,-0.437,-0.997 +21,2,-2.811,-1.921,-0.058,0.363,-1.010 +21,3,-0.558,-2.065,0.145,1.676,-2.602 +21,3,-2.317,-1.860,0.026,-1.201,-3.038 +21,9,-0.762,-0.012,1.612,1.408,-2.572 +22,1,-1.787,2.937,0.022,0.099,0.356 +22,0,-0.817,2.268,1.054,0.916,-0.676 +22,2,-0.621,3.184,-0.472,0.422,-1.300 +23,5,-1.680,-2.801,3.249,-0.434,-0.179 +23,2,-2.770,-3.191,0.935,0.308,-0.496 +23,1,-1.729,-2.063,0.825,0.430,-1.919 +23,4,-2.937,-2.522,-0.449,0.897,-2.168 +23,1,-2.158,-0.575,-0.544,1.067,-1.443 +24,5,0.886,-1.741,2.038,-0.983,-0.645 +24,1,1.723,-0.160,0.215,1.270,0.550 +24,5,-0.331,-0.514,2.155,1.623,0.785 +24,0,0.384,-0.017,-0.431,0.412,2.708 +25,0,1.030,-0.839,-3.573,-0.613,0.049 +25,0,0.641,-1.617,1.163,-1.806,1.842 +25,0,-1.579,-1.314,-1.181,-2.155,-0.260 +26,0,-1.938,0.060,-0.614,-1.926,-0.159 +26,1,-1.951,-0.223,-2.192,0.101,-0.125 +26,0,-1.460,0.832,-0.694,-0.688,0.241 +26,3,-2.055,-0.348,-1.061,-0.772,-1.987 +27,1,-1.249,-0.154,-0.895,1.388,2.826 +27,1,-0.784,-0.230,0.381,0.190,1.018 +27,0,0.626,1.623,-1.462,1.957,0.805 +27,1,-0.003,-0.392,-0.484,3.324,1.867 +28,2,-0.619,0.762,-0.368,2.700,0.089 +28,1,1.826,0.516,0.037,-1.679,-1.007 +28,0,1.249,-2.051,-0.271,2.145,-2.278 +28,1,1.417,0.143,0.497,0.779,0.412 +29,1,-0.445,-2.649,0.413,1.582,-0.897 +29,1,-0.945,-0.918,-1.376,3.543,-0.143 +29,2,-0.504,-1.076,1.309,1.894,-0.330 +29,1,-0.773,0.800,-0.582,3.577,0.957 +30,0,-0.836,-0.502,-0.778,-0.193,2.344 +30,0,-1.141,0.095,-2.593,-1.294,1.384 +30,0,0.125,1.140,0.340,-3.002,0.046 +30,0,-1.908,-1.934,-2.078,-0.816,-0.466 +31,0,-0.436,1.926,0.850,-0.726,2.645 +31,1,0.064,1.243,0.772,-0.727,2.833 +31,2,-1.676,1.738,0.204,-1.005,0.873 +31,2,-0.419,0.134,4.280,1.445,1.868 +31,0,-0.559,-1.266,0.083,-1.109,2.702 +32,0,2.162,2.265,-2.703,0.501,-0.885 +32,0,0.912,3.868,-0.796,0.392,0.563 +32,0,1.701,2.087,-2.191,-1.476,1.852 +32,0,-0.112,2.632,-0.388,0.910,1.455 +32,0,1.618,2.864,0.298,-0.969,0.275 +33,1,0.171,-1.529,-3.034,1.606,-1.257 +33,0,0.822,0.562,-2.300,0.663,0.263 +33,0,-0.304,-0.365,-1.826,-0.307,1.486 +33,0,1.171,-0.542,-2.006,1.748,1.395 +33,0,0.363,0.728,-2.173,-0.356,0.769 +34,0,0.487,1.139,-1.393,-2.261,2.380 +34,0,0.268,-0.748,-0.839,-0.257,-0.132 +34,0,-0.709,0.706,-0.064,-1.308,1.653 +35,3,2.421,0.001,0.005,1.621,-3.110 +35,4,0.163,1.222,1.968,0.924,-1.362 +35,4,0.990,1.669,-0.078,1.851,-1.410 +35,4,-0.465,0.388,1.349,-0.403,-1.136 +35,1,0.159,0.480,1.492,0.355,-0.559 +36,3,-0.280,-1.501,1.350,-1.551,0.289 +36,0,-0.514,-2.882,-1.437,-1.457,1.593 +36,3,-0.683,-0.834,1.597,-0.418,-1.147 +36,1,3.871,-3.209,0.170,-1.187,-0.804 +36,2,0.271,-2.104,-1.342,-2.134,-1.256 +37,3,0.333,0.072,-0.719,0.893,-1.148 +37,0,0.642,-1.669,-0.664,-0.431,1.207 +37,0,0.737,-0.558,-1.023,1.299,0.731 +37,1,1.349,-1.115,-0.406,1.503,-1.293 +38,3,0.604,0.511,1.001,-0.853,-0.241 +38,1,-1.121,0.464,0.652,-1.740,1.256 +38,6,-1.573,-0.342,2.460,-0.315,-0.539 +38,4,0.178,0.169,1.330,0.032,0.077 +38,1,-0.105,-0.299,1.094,-0.565,-0.525 +39,0,1.418,0.441,-1.647,2.784,0.534 +39,0,1.834,-0.916,-1.083,0.794,0.426 +39,0,2.298,-1.713,-2.095,1.675,1.097 +39,1,1.205,-1.920,0.354,3.532,0.392 +40,6,-0.127,1.656,0.633,-0.709,-2.331 +40,1,1.114,0.135,-0.776,0.742,-0.256 +40,0,3.084,-1.765,-0.638,-0.140,-0.197 +40,1,1.458,0.271,-0.903,-0.290,-1.920 +41,1,-0.001,0.564,-0.284,-2.181,-0.791 +41,4,-0.256,0.381,1.362,-0.644,0.019 +41,0,1.442,-0.064,0.059,1.256,-0.329 +41,1,0.689,1.299,0.087,-1.861,0.324 +42,1,2.204,0.587,-0.215,1.798,-1.147 +42,0,2.796,1.675,-0.747,0.348,-0.249 +42,2,1.285,-0.232,-0.893,1.375,-0.344 +42,0,2.522,0.827,-0.236,0.343,-0.117 +43,3,-0.876,0.544,-0.888,2.547,-1.345 +43,1,-0.676,0.459,0.653,0.240,0.684 +43,0,-0.404,0.353,0.314,2.557,0.210 +44,3,2.733,-1.122,0.165,0.805,-2.388 +44,0,-0.511,0.285,-0.216,1.613,-0.602 +44,0,1.453,1.085,-0.850,3.200,-0.743 +45,1,-1.137,-0.205,-0.702,-0.322,-2.291 +45,6,-1.671,-0.337,2.598,2.366,-0.231 +45,1,0.982,-0.628,0.694,0.595,0.409 +45,7,-0.250,-0.388,-0.097,1.313,-3.654 +46,4,1.522,1.144,1.769,-0.153,-1.040 +46,2,1.056,-0.067,0.274,0.454,0.366 +46,4,-0.311,2.907,1.852,-0.730,-1.052 +47,0,-2.385,-0.345,-1.266,-1.990,-2.767 +47,3,-1.898,-0.646,-0.124,-0.477,-3.042 +47,9,-1.911,0.349,0.734,0.066,-3.769 +47,0,-0.925,0.752,-0.416,-1.470,-1.603 +47,2,-1.527,0.409,-0.512,-0.018,-1.016 +48,2,-1.031,-2.579,-0.669,-2.591,-0.823 +48,1,0.555,-3.137,-2.007,-2.526,-1.213 +48,2,-1.764,-2.412,-0.308,-2.230,-1.503 +49,0,-1.319,-0.739,-1.816,-0.781,0.092 +49,4,0.734,-1.690,0.712,-1.185,-1.340 +49,0,-0.594,-0.694,-1.293,0.800,0.076 +50,1,-0.701,-2.689,-0.465,-2.033,1.011 +50,0,-0.273,-0.078,0.052,-1.591,1.250 +50,0,-1.756,-0.379,0.827,-4.061,0.903 +50,0,-0.378,0.318,-0.403,-1.957,0.426 +51,7,0.074,4.902,3.130,1.105,0.402 +51,4,0.067,2.519,0.729,3.211,-2.726 +51,6,-0.375,2.703,0.740,0.453,-1.382 +52,1,-0.828,1.303,0.841,-0.236,0.472 +52,1,0.474,0.085,0.774,0.573,0.740 +52,1,-0.328,-0.194,0.473,1.487,0.136 +52,6,0.296,0.990,2.878,-0.525,0.896 +53,0,0.033,3.132,-1.005,0.051,0.556 +53,0,-2.035,-0.399,-0.302,-0.743,0.522 +53,0,0.528,0.790,-1.577,-1.718,2.279 +54,0,0.558,-2.951,-2.227,-0.484,0.706 +54,0,0.928,-0.937,-2.818,-0.143,-1.996 +54,1,-0.221,-4.696,-0.204,-0.395,-0.106 +55,0,0.385,-0.567,-3.185,-1.866,0.571 +55,1,0.654,0.060,-2.197,-0.628,1.955 +55,0,-1.046,3.095,-2.062,-0.217,0.544 +55,1,-1.024,-0.319,-3.029,-3.055,0.467 +56,0,0.122,0.450,1.586,-1.655,1.394 +56,0,-0.867,1.028,-1.273,-3.739,0.789 +56,2,1.803,-0.453,-0.034,-2.391,-0.881 +56,0,-1.382,1.039,-1.428,-3.204,-0.561 +57,0,0.006,-0.515,-1.096,-0.707,2.174 +57,1,-1.996,-1.880,-0.440,-1.100,-0.014 +57,1,-1.085,-1.100,0.280,-1.343,0.862 +57,0,1.713,-0.004,0.424,-0.942,0.069 +57,1,-0.710,-1.584,-1.317,0.221,0.323 +58,1,1.370,-0.138,-2.298,-0.553,-0.816 +58,3,-1.318,1.857,-0.671,-2.087,-2.159 +58,1,-0.716,0.321,-1.648,-1.533,-1.617 +58,0,-1.417,0.452,-3.960,-2.305,-1.785 +58,0,0.246,-1.079,-2.026,-3.528,-1.026 +59,3,-0.760,0.105,1.095,-1.530,-0.266 +59,0,0.371,0.994,1.455,-1.974,1.809 +59,2,0.430,2.295,2.120,-2.343,0.134 +59,0,0.776,0.976,1.622,-0.927,1.879 +59,1,-1.369,-0.193,1.242,0.839,-0.453 +60,3,4.065,-0.859,0.297,-1.336,-1.015 +60,10,2.758,-0.547,1.568,-2.880,-2.020 +60,1,1.261,-0.010,0.535,-0.527,0.309 +60,3,1.866,-1.058,0.602,-2.418,-1.514 +61,1,-0.620,-0.854,0.456,-1.389,1.419 +61,3,-0.030,1.004,2.976,0.660,0.317 +61,2,-1.403,0.133,0.420,-0.355,0.460 +61,1,0.531,1.596,3.288,-1.686,2.302 +62,8,0.363,-1.551,2.280,0.832,1.509 +62,0,0.350,-1.382,0.019,0.619,2.208 +62,1,-0.174,0.346,2.720,0.495,3.133 +63,2,1.766,0.925,1.092,-0.805,1.298 +63,1,0.639,0.018,1.180,-2.427,1.871 +63,0,3.252,1.088,0.253,-2.307,0.609 +63,0,2.505,0.614,1.469,-1.681,1.020 +64,1,0.950,-0.035,-0.684,-1.169,-1.217 +64,3,0.693,-0.361,0.672,-0.636,0.282 +64,0,1.115,0.797,-2.802,0.401,-1.132 +65,4,0.275,-0.140,1.169,0.162,0.394 +65,3,1.337,0.064,1.713,-0.656,0.213 +65,1,0.957,2.029,-1.271,0.720,0.086 +65,1,0.429,-1.374,-0.203,1.921,-0.092 +65,0,-0.328,0.046,-2.460,-1.046,-0.755 +66,0,1.813,-3.137,-2.012,-1.798,-0.796 +66,0,1.490,-2.010,-1.243,-0.064,-1.215 +66,2,-0.143,-2.665,-2.869,-1.426,-2.205 +66,0,3.464,-1.743,-1.619,-0.035,-0.110 +67,0,0.472,-1.619,-0.239,0.321,1.064 +67,1,-0.197,-0.089,-0.062,-1.040,0.766 +67,0,1.090,-0.313,-0.970,0.336,-0.397 +67,1,0.497,-2.245,-0.887,0.993,-0.922 +67,1,1.224,-0.560,-0.279,0.804,-0.759 +68,0,0.096,-2.668,-1.718,-0.079,-0.381 +68,1,-1.622,-0.081,-0.967,0.685,1.423 +68,3,-0.616,-1.122,-0.168,-0.937,-0.441 +68,2,-1.143,-2.188,-0.676,-0.486,-0.761 +68,0,-1.167,-0.881,0.236,-0.381,-0.694 +69,0,2.240,-0.569,-1.555,-1.292,1.223 +69,0,0.995,1.505,-0.962,-0.046,1.677 +69,0,-0.319,0.823,-0.682,-1.694,3.254 +69,0,1.443,-0.218,-0.709,-3.050,1.033 +69,0,-0.409,0.090,0.452,0.282,2.727 +70,1,-0.545,1.643,1.090,-1.526,0.403 +70,0,0.290,0.654,-0.079,-0.636,1.909 +70,2,-0.760,0.480,3.118,-0.098,0.812 +70,0,1.853,-0.196,-0.085,-0.396,0.643 +70,4,-0.917,1.343,1.352,-0.316,-1.306 +71,1,1.664,-0.290,-0.502,1.287,0.548 +71,5,-0.289,-1.041,1.647,2.385,-1.323 +71,5,0.573,-0.397,2.123,0.868,-2.041 +71,1,-1.083,-2.345,0.670,-1.333,0.767 +72,0,-0.304,0.582,0.215,-1.545,2.028 +72,0,-1.672,-0.218,0.539,-2.073,1.500 +72,1,-2.239,1.413,-0.563,0.115,1.238 +72,1,-1.177,0.263,0.023,-1.034,-0.061 +72,0,-1.400,-0.234,0.741,0.132,0.934 +73,0,1.795,0.869,-2.855,-2.320,-1.499 +73,1,-0.720,-1.265,-1.158,-2.049,0.204 +73,2,1.011,-1.342,-1.009,-0.624,-1.244 +73,2,2.875,-0.647,0.025,-1.655,0.307 +74,0,-0.805,-0.791,-1.965,0.176,0.878 +74,1,1.301,0.508,0.786,0.807,1.104 +74,0,0.409,0.564,-3.757,2.828,1.627 +74,0,-2.083,0.552,-2.713,2.022,1.646 +75,5,-2.130,-1.118,2.457,-0.315,-0.689 +75,0,-0.862,-2.880,-0.299,0.153,0.535 +75,0,-2.799,-0.865,-0.792,0.244,-1.799 +76,0,-0.297,-1.109,-1.249,-0.989,0.795 +76,0,0.102,-1.247,-0.156,-1.167,1.052 +76,0,1.402,-1.539,-1.497,-0.846,0.046 +77,0,-0.635,1.171,-0.413,1.615,0.125 +77,4,0.920,0.322,0.025,-0.333,-2.197 +77,1,-1.162,-0.289,-0.357,1.456,-0.002 +78,2,-0.345,0.014,-1.094,-1.834,-2.501 +78,6,-0.495,2.418,0.089,-0.068,-1.881 +78,1,-1.336,1.229,-1.718,-0.308,-1.524 +79,2,-0.720,-1.228,-0.472,-1.753,-0.911 +79,0,-0.419,-0.208,-0.989,1.293,0.067 +79,3,0.052,2.346,0.659,0.070,-0.334 +80,1,-0.143,0.314,-0.646,1.368,0.235 +80,6,-0.948,2.176,0.446,1.872,-0.700 +80,0,0.306,2.026,-0.030,0.005,0.666 +80,2,0.347,-0.019,1.277,-0.974,0.593 +81,0,0.485,2.376,-0.786,-0.797,0.476 +81,0,2.388,1.743,1.328,1.241,1.797 +81,2,-0.765,2.716,-0.315,0.223,1.256 +82,1,1.734,1.281,1.599,2.638,0.855 +82,1,0.281,2.128,2.063,2.345,-0.135 +82,0,1.012,1.999,0.577,-1.205,0.352 +82,0,2.282,2.483,-0.122,0.812,-1.022 +82,0,4.576,2.810,0.416,1.402,-0.304 +83,0,-1.466,-0.946,-0.817,-1.451,-1.794 +83,2,-0.666,-0.367,0.273,0.115,-0.933 +83,4,-1.288,-1.433,0.074,-2.209,-2.601 +84,3,-2.296,1.037,1.754,-0.952,0.165 +84,2,-2.577,-1.802,0.862,0.355,1.494 +84,0,0.371,1.187,2.288,1.167,0.808 +84,6,-0.700,0.845,0.596,1.881,-1.221 +84,1,-0.122,-0.460,0.356,0.880,-0.438 +85,2,2.119,1.355,0.190,-1.783,-1.432 +85,0,0.858,0.938,-2.647,-0.408,-0.950 +85,1,0.543,2.148,-1.812,0.694,-0.780 +85,0,1.200,1.434,-1.874,0.500,1.473 +86,3,-1.057,1.006,0.567,0.579,-0.096 +86,0,0.761,0.460,-0.315,1.509,-1.302 +86,5,-0.251,0.087,2.529,-1.174,0.358 +87,0,-0.252,-0.925,-1.363,-3.981,1.203 +87,1,-0.582,0.099,-0.398,-2.394,-1.240 +87,4,-0.158,0.117,1.543,-1.683,-0.580 +87,0,-0.375,-1.924,0.416,-3.112,-0.740 +87,2,0.844,0.357,1.652,-3.609,1.473 +88,0,-0.593,3.962,0.536,-1.544,0.623 +88,0,0.773,3.426,1.525,-0.153,3.468 +88,0,0.593,1.069,0.661,0.008,2.123 +88,0,0.908,2.217,0.161,-2.068,1.557 +89,0,-0.602,-0.223,-1.754,-1.102,-1.207 +89,2,-0.787,-0.192,-0.229,0.866,-2.249 +89,0,0.109,-0.323,-0.454,1.320,-0.993 +89,1,-2.041,-2.210,-0.503,-0.843,-3.446 +90,3,-0.353,-1.171,-0.866,1.005,-2.537 +90,1,-0.716,1.455,-1.802,1.374,-1.856 +90,0,-0.976,1.394,-0.957,-0.075,-1.844 +91,0,-1.973,0.291,-1.676,-1.424,-0.792 +91,0,-1.563,0.403,-2.159,-0.764,1.207 +91,0,-1.518,0.731,-1.636,0.353,-0.536 +91,0,-0.101,0.680,-2.370,-0.345,-0.398 +91,0,-1.011,0.409,-2.058,-0.205,0.060 +92,0,-2.415,-1.791,-0.450,-2.636,1.995 +92,0,-2.221,-1.315,-1.120,-0.812,1.386 +92,1,-2.399,-1.551,-0.719,-4.046,3.617 +93,0,1.189,-2.017,-0.395,-0.163,2.380 +93,0,2.021,-1.031,-0.803,-1.713,1.896 +93,0,-0.500,-0.710,-0.627,-1.537,-0.789 +93,0,-1.131,-1.099,-1.683,0.924,1.265 +93,0,2.130,-0.533,-0.556,-0.487,2.657 +94,0,1.500,-0.859,-0.567,1.305,0.439 +94,0,1.064,-1.928,-0.644,-0.538,1.413 +94,0,2.110,-0.218,-1.280,0.017,0.723 +95,2,2.565,-0.540,-0.479,-0.127,-1.485 +95,0,1.740,-0.772,-0.751,1.379,0.509 +95,0,1.319,0.182,-0.057,1.167,0.885 +95,0,1.696,1.284,-1.454,-0.408,0.869 +95,2,1.844,1.291,-0.158,-1.528,0.056 +96,9,-1.655,0.606,1.194,0.852,-2.510 +96,6,-0.768,-0.602,0.695,1.756,-3.062 +96,8,-1.362,-0.026,1.009,-0.130,-1.716 +96,4,-3.110,-2.347,1.142,-1.360,-0.448 +97,3,0.681,-2.470,0.824,1.107,0.139 +97,0,0.709,-0.841,-0.717,2.738,0.550 +97,0,0.108,-1.622,-1.384,0.117,1.169 +97,2,1.373,-0.990,0.173,0.460,1.228 +97,1,1.180,-1.348,-0.681,0.227,-0.573 +98,0,-2.012,0.512,-0.710,-0.376,-0.351 +98,2,-1.044,-1.220,-0.822,-1.828,-0.051 +98,1,0.157,1.521,-1.119,-2.876,0.156 +99,1,-1.166,-1.048,-0.451,1.889,1.145 +99,2,-1.464,-1.031,1.480,2.166,0.059 +99,1,-1.869,-0.900,0.706,0.465,1.603 diff --git a/statsmodels/genmod/tests/results/glm_test_resids.py b/statsmodels/genmod/tests/results/glm_test_resids.py new file mode 100644 index 0000000..ef283da --- /dev/null +++ b/statsmodels/genmod/tests/results/glm_test_resids.py @@ -0,0 +1,37 @@ +''' +This file contains the residuals for testing GLM. + +All residuals were obtained with Stata. + +The residuals are column ordered as + +Pearson, Deviance, Working, Anscombe, and Response Residuals +''' + + +import numpy as np + +lbw =[-.67369007, -.86512534, -.06703079, -.93506245, -.31217507, -.38301082, -.52323205, -.01427243, -.55879206, -.12793027, -.68788286, -.88025592, -.07003063, -.95205459, -.32119762, -.96932399, -1.1510657, -.12098923, -1.2626094, -.48442686, -1.017216, -1.1919416, -.12709645, -1.3106868, -.50853393, -.56992387, -.75002865, -.04537362, -.80685236, -.24517662, -.38236113, -.52240243, -.01419429, -.5578939, -.12755193, -.70541551, -.89874491, -.07371959, -.97286469, -.33226988, -.53129095, -.70516948, -.03779124, -.75734471, -.22013309, -.59687896, -.78068461, -.05087588, -.84082824, -.26268069, -.72944938, -.92372831, -.07872676, -1.0010676, -.34729955, -.48089188, -.64503581, -.02865125, -.6913447, -.18782188, -1.7509231, -1.6748694, -.13984667, -1.9107428, -.75404181, -1.0993874, -1.2588746, -.13558784, -1.3901949, -.54723527, -.73406378, -.9284774, -.0796795, -1.0064397, -.35016393, -.73406378, -.9284774, -.0796795, -1.0064397, -.35016393, -.91970083, -1.1071944, -.11376204, -1.2113902, -.45824406, -.58253395, -.76443611, -.04792993, -.8228052, -.25336683, -.87010277, -1.0617464, -.10565948, -1.1587271, -.43087357, -.55091811, -.72809506, -.04159148, -.78261562, -.23284101, -.50228984, -.67078749, -.03241138, -.71955949, -.20146616, -.56681231, -.74645574, -.04474827, -.80290024, -.24315597, -.16739043, -.23509228, -.00072263, -.24969795, -.02725586, -.53429779, -.70869969, -.03836573, -.76123202, -.22207692, -.81310524, -1.0074762, -.09536044, -1.0963421, -.39800383, -.24319644, -.339003, -.00294417, -.36060255, -.05584178, -.62985338, -.81746346, -.05776093, -.88175202, -.28403447, -.27289888, -.37902784, -.00447115, -.403468, -.06931188, -.73980785, -.9343678, -.08086098, -1.0131078, -.35371946, -.79896487, -.99366645, -.09266053, -1.0805507, -.3896279, -.79896487, -.99366645, -.09266053, -1.0805507, -.3896279, -.95715693, -1.140454, -.11930111, -1.2501848, -.47812002, -1.2258645, -1.3545388, -.14405247, -1.5056478, -.60043853, -.27739012, -.38504179, -.00474005, -.40991694, -.07144772, -.65459114, -.84453257, -.06298676, -.91198968, -.29995988, -.46709275, -.62825848, -.02633193, -.67300059, -.17910031, -.54303849, -.71892471, -.04005189, -.77249964, -.22773411, -.54176628, -.71743989, -.03980502, -.77086265, -.22691015, -.25756493, -.35841857, -.00362961, -.38138453, -.06221253, -.55956791, -.73810992, -.04330137, -.79367479, -.2384528, -.69600671, -.88885063, -.07174285, -.96172188, -.32633864, -.23256318, -.32457262, -.00249768, -.34516994, -.05131047, -.64757466, -.83690034, -.06150185, -.90345369, -.2954536, -.28195528, -.39114407, -.00502406, -.41646289, -.07364416, -1.1570243, -1.3035317, -.14010172, -1.443813, -.57241299, -1.1570243, -1.3035317, -.14010172, -1.443813, -.57241299, -.30030789, -.41556527, -.00627721, -.44268348, -.08272435, -.55114605, -.72835967, -.04163627, -.78290767, -.23298882, -.3806923, -.52027022, -.01399469, -.5555858, -.12658158, -1.1987876, -1.33477, -.1426768, -1.4816055, -.58967487, -.94149929, -1.12666, -.11704805, -1.2340685, -.46989562, -.53813037, -.71318989, -.03910216, -.76617855, -.22455631, -.55398245, -.73164922, -.04219494, -.78653899, -.2348285, -.6479873, -.83735019, -.06158914, -.90395657, -.29571887, -.62689671, -.81419816, -.0571388, -.87811137, -.28212464, -.67810985, -.86985289, -.06796584, -.94036802, -.31499013, -1.4692211, -1.5166623, -.14786328, -1.7067836, -.68340511, -.40499087, -.55113968, -.01705699, -.58904006, -.14090647, -.67731506, -.86900381, -.06779774, -.93941488, -.31448425, -.62489302, -.81198168, -.0567176, -.87564093, -.28082972, -.62489302, -.81198168, -.0567176, -.87564093, -.28082972, -.57609901, -.75709845, -.04662119, -.81467722, -.24918728, -.60844593, -.79367679, -.0532758, -.85526404, -.27018297, -.29839126, -.41302333, -.00613785, -.43995243, -.08175784, -1.3570687, -1.4452542, -.14780947, -1.6172873, -.64808999, -.78708367, -.98195509, -.0903525, -1.0671844, -.38252574, -.5858308, -.76818375, -.04860366, -.82695911, -.25550797, -.31665807, -.43716753, -.00754852, -.46591063, -.09113411, -.82908669, -1.0229172, -.09834616, -1.1140383, -.40736693, -.69616804, -.88902083, -.07177681, -.96191342, -.32644055, -1.0915205, -1.2526359, -.13488154, -1.3827415, -.54367425, -.64853308, -.837945, -.0617046, -.90462156, -.29606968, -.94223393, -1.1273107, -.11715578, -1.2348278, -.47028421, -.816023, -1.0103085, -.09591088, -1.0995849, -.39972155, -.57856847, -.75991792, -.04712242, -.81779956, -.25079125, -.32734654, -.45120803, -.00846067, -.48102477, -.09678472, -.31077092, -.42940642, -.00707363, -.45756203, -.08807264, -.61538501, -.80142385, -.05472422, -.86388252, -.27467837, -1.1456594, -1.2948703, -.13930185, -1.4333765, -.5675742, -.21863111, -.30558898, -.00198616, -.32488425, -.045619, -.34650082, -.47620326, -.01025864, -.50796716, -.10719293, -.22518959, -.31453605, -.00221689, -.33444271, -.04826292, -.56093617, -.73968913, -.04357365, -.79541979, -.23934092, -.56471813, -.74404709, -.04432868, -.80023684, -.24179618, -.5589041, -.73734327, -.04316945, -.79282776, -.23802197, -.98405074, -1.1637857, -.12295866, -1.2775329, -.49196179, -.67623178, -.86784578, -.06756859, -.9381151, -.31379451, -.34443674, -.47352019, -.01005474, -.50507281, -.10605469, -.20538064, -.28745723, -.00157184, -.30552538, -.04047396, -.36261354, -.49705954, -.01193509, -.53048488, -.11620849, -.33216574, -.45751709, -.00889321, -.48782091, -.09937016, -.52834459, -.70170398, -.03723117, -.75353006, -.21822964, -.65107472, -.84071206, -.06224241, -.90771574, -.29770265, -2.2838855, -1.9116213, -.11327561, -2.2332026, -.83912829, -.57856847, -.75991792, -.04712242, -.81779956, -.25079125, -.30573921, -.4227577, -.00668307, -.45041336, -.08548557, -.26475363, -.36809496, -.0040096, -.39174994, -.06550308, -.50724876, -.67670909, -.03330933, -.72605772, -.2046457, -.50724876, -.67670909, -.03330933, -.72605772, -.2046457, -.29708892, -.41129496, -.00604429, -.43809571, -.08110349, -.39538836, -.53898588, -.01580695, -.57585866, -.13519643, -.95811737, -1.141295, -.11943637, -1.2511687, -.47862055, -.79777479, -.99249783, -.09243093, -1.0792158, -.38891913, -.4007824, -.54582043, -.01650278, -.58326946, -.1383964, -.59547213, -.77909775, -.05058538, -.83906658, -.26176764, -.67961214, -.87145655, -.06828352, -.9421685, -.31594589, -.35903387, -.49243968, -.01154966, -.52549403, -.11418612, -.25982794, -.36146745, -.00374651, -.38464992, -.06324112, -.63086237, -.8185763, -.0579734, -.88299313, -.28468594, -.52587777, -.6987977, -.03676448, -.75033205, -.21663702, -.19948442, -.27936589, -.00140862, -.29689136, -.03827107, -.61183026, -.7974596, -.05398148, -.85947135, -.27237604, -.50385167, -.67265442, -.03269316, -.72160779, -.20246694, -.48499858, -.65000311, -.02935791, -.69678155, -.19042999, -.42040434, -.57052211, -.01917023, -.61008878, -.15019447, -.48053382, -.64460216, -.02858999, -.69087017, -.18759474, -.37464721, -.51253189, -.01328506, -.54721232, -.12308435, -.49531764, -.66243224, -.03116534, -.71039719, -.19700616, -.36160926, -.49576422, -.01182621, -.52908537, -.11564002, -.75971278, -.95459728, -.08491171, -1.0360505, -.36595033, -.29016492, -.40209055, -.00556233, -.42821114, -.07765727, -.40546611, -.55173962, -.01712019, -.58969106, -.14119063, -.39648646, -.54037876, -.01594727, -.57736865, -.13584627, -.35179057, -.48306766, -.01079245, -.51537461, -.11012759, -.33522775, -.46151868, -.00917494, -.49213296, -.10102472, -.33337344, -.45909602, -.00900368, -.48952221, -.10002166, -.28349954, -.39320584, -.00512259, -.41867509, -.07439288, -.62237174, -.80918847, -.05618813, -.87252863, -.27919958, -.37781929, -.51659535, -.01365481, -.55160868, -.12491598, -.26957183, -.37456618, -.00427859, -.39868504, -.06774594, .61566918, .80174036, .05478366, .86423481, .27486236, 2.1552118, 1.8605156, .11994504, 2.1616254, .82285014, .6958925, .88873013, .07171881, .96158626, .32626648, .48936001, .65526554, .03011636, .70254431, .19320564, .94341916, 1.1283597, .11732917, 1.2360523, .47091059, 2.317558, 1.9244575, .11155378, 2.2513666, .84304062, 1.0055755, 1.1821359, .12569111, 1.2991214, .50277997, 1.1758629, 1.3177365, .14133315, 1.4609684, .58029986, .77665994, .97159873, .08829985, 1.0553839, .37624776, .92862761, 1.1152029, .11512854, 1.2207114, .46304378, 1.7104194, 1.6537851, .14148619, 1.8830756, .74525762, .51347062, .68411403, .03444926, .73418924, .20864293, 1.7302647, 1.6641798, .14069739, 1.8966961, .7496129, 1.7159282, 1.656683, .14127016, 1.886869, .74647663, 1.4097427, 1.4794559, .14814617, 1.659967, .66525789, 2.0442483, 1.8136166, .12572138, 2.0969416, .80691071, 1.7479484, 1.6733383, .13997094, 1.9087284, .75341056, 1.7094805, 1.6532902, .14152278, 1.8824281, .74504908, 1.4965596, 1.5332827, .14752494, 1.7278315, .69132856, 1.1936562, 1.330981, .14239054, 1.4770087, .58759741, .82652693, 1.0204559, .09787281, 1.1112146, .40587474, 2.2245013, 1.8884508, .11633994, 2.2006058, .83188774, 1.0349547, 1.206727, .12914052, 1.3281647, .51717209, 1.3170894, 1.4184715, .14713645, 1.5840959, .63433244, 3.1267629, 2.1805419, .07637108, 2.631322, .90720675, .57215628, .7525877, .04582366, .809684, .24662647, .86627248, 1.0581685, .10499903, 1.1545978, .42871115, .94218582, 1.1272681, .11714873, 1.2347781, .47025877, 1.1156811, 1.2716852, .13698079, 1.405528, .55451496, .53496988, .70948787, .03849454, .76210013, .22251157, 1.4497097, 1.5046175, .14802749, 1.6915825, .6775918, 1.2233611, 1.3527267, .14393463, 1.5034398, .59945723, 1.545073, 1.5620618, .14664053, 1.7644793, .70477532, 2.020635, 1.803272, .12694042, 2.0827983, .80326447, .59611095, .7798185, .05071725, .83986668, .26218226, .85655928, 1.0490513, .1033029, 1.144086, .42319688, 1.1157473, 1.2717369, .13698625, 1.40559, .55454427, 1.5187563, 1.5465618, .1471632, 1.7447092, .69757645, 1.2580261, 1.3775399, .14540261, 1.5337471, .61279777, 2.2387897, 1.8940894, .11559989, 2.2085158, .83367096, 1.4987735, 1.5346157, .14749226, 1.7295233, .69195908, .87949714, 1.0704799, .10725881, 1.1688167, .43614806, .81628943, 1.0105668, .09596102, 1.0998807, .39987821, 1.0340841, 1.2060057, .12904294, 1.327311, .51675179, 1.7490122, 1.6738861, .13992657, 1.9094491, .75363655, 1.6803635, 1.6378022, .14262258, 1.8622063, .73846784, 1.8051113, 1.7022925, .13748913, 1.9469661, .7651715, 1.5637979, 1.5729326, .14621078, 1.7783904, .70976331, 1.1993095, 1.3351545, .14270545, 1.4820722, .58988546, 1.3197815, 1.4202979, .1471939, 1.5863531, .63527917, .71898726, .91290406, .07655565, .98883657, .34077931, 1.5103554, 1.5415584, .14730892, 1.7383434, .69523097, 3.0022063, 2.1465826, .08091665, 2.5788383, .90013225, .64440768, .83344364, .06083212, .89959036, .29341668, 1.5019795, 1.5365427, .14744358, 1.7319699, .69286925, 1.3305489, 1.4275696, .1474058, 1.5953487, .63903614, .90521582, 1.094089, .11148405, 1.1961638, .45037299, .6236701, .81062745, .05646071, .87413186, .28003914, .71234937, .90599551, .07517106, .9810397, .3366244] + +lbw_resids = np.array(lbw).astype(float).reshape(-1,5) + +cpunish = [.29883413, .29637762, 62.478695, .29638095, 1.7736344, .280627, .27622019, 6.5853375, .27623151, .80342558, 4.0930531, 2.9777878, 6.1503069, 3.0157174, 4.6881034, .16338859, .16114971, 1.1563983, .16115474, .31370176, .63595872, .59618385, 1.9109264, .59656954, .91769973, .9059739, .8066189, .99577089, .80822353, .9349684, .0532905, .0529548, .14244545, .05295515, .07395759, -.26830664, -.2766384, -1.0082872, -.27668319, -.41714051, -.62341484, -.68349824, -1.5652763, -.68459104, -.84732188, -1.1015655, -1.2743561, -5.3400286, -1.279951, -1.8643241, -1.2006618, -1.4021282, -6.6206839, -1.40923, -2.1211989, -1.2797534, -1.505173, -7.8054171, -1.5136295, -2.3382067, -.960585, -1.0954134, -3.8587164, -1.0992211, -1.5269969, .10846917, .10649195, .0921891, .10649783, .1027458, .02088367, .02081086, .02023963, .0208109, .02066675, .63647875, .56713011, .24880139, .56824372, .4653791, -.69597083, -.77000601, -1.9377178, -.77151335, -.97909358] + +cpunish_resids = np.array(cpunish).astype(float).reshape(-1,5) + +scotvote = [.04317472, .04256856, -8338.93, .04256786, 2.4956853, -.01827077, -.01838325, 2762.4019, -.01838319, -.97334528, .05609817, .05508221, -7252.03, .05508069, 2.8365188, -.02280193, -.02297758, 4525.3102, -.02297747, -1.3300374, -.02505649, -.02526888, 8767.023, -.02526873, -1.7656214, -.1421743, -.14953291, 26174.801, -.14950069, -8.0880132, -.01973673, -.01986809, 5888.0406, -.01986801, -1.318784, .06763015, .06616299, -19473.553, .06616036, 4.4658962, .0202078, .02007327, -3928.3996, .02007319, 1.1706255, -.00841611, -.00843983, 2127.7741, -.00843983, -.53216875, -.04429363, -.04496504, 6971.3512, -.04496419, -2.3914787, .01158536, .01154092, -2667.3324, .01154091, .71006619, .05538677, .05439602, -15077.849, .05439455, 3.5896364, .09018494, .08760809, -23064.91, .087602, 5.7245313, .06595122, .06455471, -14747.68, .06455226, 4.0030388, .00220373, .00220212, -923.58004, .00220212, .16491647, .09775671, .09474141, -17697.14, .09473373, 5.5300885, -.0669005, -.06845346, 24989.253, -.06845044, -4.8180428, .05194846, .05107522, -13846.987, .05107401, 3.3432347, .01298505, .01292927, -1828.3796, .01292925, .67554021, .02257874, .02241101, -5988.3279, .02241091, 1.4506691, .01474752, .01467564, -5311.9833, .01467562, 1.0492967, .03640993, .03597719, -3483.054, .03597677, 1.665201, -.06613827, -.06765534, 10963.702, -.06765242, -3.633186, -.05046726, -.05134215, 15165.308, -.05134088, -3.3803129, -.02546479, -.02568421, 3585.6787, -.02568405, -1.3248006, -.08159133, -.08392239, 14470.556, -.08391679, -4.5841388, -.0330796, -.03345156, 6495.2667, -.03345121, -1.9226747, .00327289, .00326933, -1001.1863, .00326933, .22052594, -.02631155, -.02654593, 5824.1466, -.02654575, -1.5916286, .01183737, .01179098, -4763.0477, .01179097, .87390689, -.03325649, -.03363248, 11219.87, -.03363212, -2.3151557] + +scotvote_resids = np.array(scotvote).astype(float).reshape(-1,5) + +star98 = [-1.3375372, -1.3342565, -3674.3805, -1.3343393, -18.732624, .97808463, .99272841, 197.05157, .99291658, 5.7338226, 4.2825696, 4.29447, 7304.117, 4.2983582, 51.167264, .20665475, .20689409, 283.85261, .20689456, 2.2971775, -3.4397844, -3.7418743, -184.10712, -3.7732602, -12.963164, -8.8955127, -8.7070478, -94493.01, -8.7156529, -195.54523, 1.3093612, 1.3040684, 6904.5348, 1.3041169, 22.790356, -2.3354095, -2.3171211, -6891.6853, -2.3175198, -33.497868, -4.9509734, -4.9716533, -7444.4706, -4.9782445, -56.720276, -4.3896461, -4.3936251, -19119.121, -4.3958412, -71.687315, 2.6246727, 2.6002292, 33800.262, 2.6004266, 61.52101, 1.0381778, 1.0655404, 147.40536, 1.0658131, 5.4160865, -5.371452, -5.4255371, -8735.5422, -5.433774, -63.167122, -7.5162302, -7.6600055, -16610.436, -7.6793193, -97.902488, -4.3246609, -4.217551, -1806.9456, -4.2260371, -32.330796, .71999176, .72316703, 1710.1519, .7231808, 9.6064571, .83376421, .83436314, 761.12734, .83440607, 8.0881266, .41765273, .41667589, 28.903009, .41670531, 1.7147122, -.97120884, -.97003594, -4270.4621, -.97005936, -15.911094, -.78556304, -.78233445, -114.9327, -.78245171, -4.1393793, .4683723, .46647357, 82.954347, .46649502, 2.6303115, -3.16957, -3.1551738, -3676.7765, -3.1571205, -33.303456, -.38920026, -.38921763, -264.25346, -.38922293, -3.4207576, -1.0390527, -1.0501682, -142.6529, -1.0504701, -5.3602524, -.49574502, -.50267378, -24.102686, -.50273464, -1.80937, -2.2481933, -2.4896172, -69.551199, -2.5023778, -7.0576042, -1.3995564, -1.4016203, -7695.0826, -1.4016817, -24.701957, -.76201728, -.76276852, -248.87895, -.76283364, -5.2477435, -5.8106439, -5.7357935, -3949.2359, -5.7521318, -51.088192, -1.820624, -1.8167933, -25414.833, -1.816864, -43.837178, -2.7775306, -2.8101272, -5091.1243, -2.8111605, -33.992033, -3.1071576, -3.1348341, -28006.635, -3.1353206, -64.66399, 11.837296, 12.808605, 52779.155, 12.870791, 194.83, -3.9656907, -3.9744174, -4008.7749, -3.9787813, -39.800004, -4.5046818, -4.5023142, -3336.6423, -4.5100703, -40.757978, -.38346895, -.38304692, -125.48142, -.38305507, -2.6424896, 5.6273411, 5.681476, 71231.288, 5.6838456, 131.14722, -1.5145537, -1.5377442, -638.15567, -1.5381844, -11.35443, 2.2753821, 2.2209277, 373.39831, 2.2231916, 12.457389, -4.8882434, -4.9340401, -177334.75, -4.9347866, -161.82036, -1.4349869, -1.4382502, -490.99346, -1.438675, -10.03669, -.96129188, -.96925001, -1132.2858, -.96930259, -10.152092, -.59602753, -.61535222, -10.219633, -.61556693, -1.5369367, -1.6921098, -1.7682293, -209.62528, -1.7697022, -8.4352944, -2.065882, -2.0983974, -2413.6559, -2.0989602, -21.758492, 1.706241, 1.6722477, 619.3497, 1.6727942, 12.171354, -2.2661248, -2.4109784, -229.55882, -2.4155989, -10.563809, 1.813806, 1.7981115, 2640.4014, 1.7984068, 20.556565, 2.8637417, 2.7708527, 953.89903, 2.7734059, 19.851349, -1.8653504, -1.9698798, -174.47052, -1.9724197, -8.4673524, 3.0149566, 2.8208287, 242.43232, 2.82676, 13.013203, .45187706, .45323648, 89.545212, .45325533, 2.6344764, 2.7424901, 2.5741674, 100.25966, 2.5823554, 9.102041, .80475572, .80568002, 162.81099, .8057857, 4.7242981, -1.7931126, -1.8014064, -550.80513, -1.8023078, -12.098672, .41003106, .4090133, 40.285464, .40903525, 1.8920269, -8.1724325, -8.1912034, -1099.8395, -8.3432365, -41.880384, .33393717, .33561525, 16.178174, .33563459, 1.2173618, -4.2543897, -4.4474257, -2759.1931, -4.4560182, -36.825802, -3.0294284, -3.1254693, -2652.9286, -3.1277555, -28.983377, 2.6466251, 2.5383754, 209.60581, 2.5434964, 11.365696, -.53150465, -.53394445, -574.22139, -.53395369, -5.4537827, -4.5786254, -4.9826244, -850.48142, -5.0141021, -26.124321, .6145684, .61269984, 172.28365, .61273633, 4.0221801, -3.0290547, -3.4019779, -93.787279, -3.4386297, -9.5115812, 3.4030858, 3.4990013, 870.1726, 3.5068227, 21.599833, -1.814412, -1.8483025, -1673.4079, -1.8487382, -17.661376, -4.9709195, -5.139411, -1528.4106, -5.1619673, -33.550925, -2.8711722, -2.8576622, -758.19886, -2.8615509, -18.420463, -1.3502232, -1.3640438, -478.67408, -1.3643946, -9.5561658, -4.3706639, -4.4505896, -1448.8143, -4.4640268, -30.248407, -3.367544, -3.3462251, -2374.7355, -3.3494443, -29.974177, -1.8700967, -1.9265107, -533.05459, -1.9276199, -12.307408, -5.8411431, -5.7888752, -6974.89, -5.8005435, -61.969456, -3.0671616, -3.3185696, -465.64228, -3.3281753, -16.362208, .33866907, .33869449, 36.748824, .33870635, 1.6153433, .00332937, .0033292, .68084286, .0033292, .01961509, -2.1948692, -2.3506102, -201.54464, -2.3551288, -9.9021502, 1.2513472, 1.2525696, 331.50739, 1.2529014, 8.0367961, .2431842, .2423829, 57.23407, .24238525, 1.5014416, 2.3344863, 2.3363314, 519.08023, 2.3387547, 14.142919, 2.9247512, 2.9590047, 454.57521, 2.965438, 15.72514, -2.0556046, -2.0645602, -122.36309, -2.0686323, -8.026198, -3.6416917, -3.8107525, -127.30076, -3.8522025, -11.907277, -2.3465563, -2.3399588, -18062.323, -2.3401837, -46.331731, 3.1328605, 3.2237462, 4682.5244, 3.2254621, 35.819599, 2.6706612, 2.6160849, 4114.3045, 2.6168714, 30.844519, 2.3338673, 2.2998076, 5737.2307, 2.300211, 31.498137, 4.7426743, 4.4878081, 2137.1449, 4.4958392, 36.36025, -2.7264016, -2.7602159, -7855.6752, -2.7609288, -38.796069, -.25073542, -.24982419, -109.74435, -.24982577, -1.9037263, -1.8471557, -1.8428066, -5142.1808, -1.8430239, -25.984725, -2.15461, -2.1580564, -8379.8765, -2.1583395, -33.883764, -3.232046, -3.2299069, -4022.416, -3.2319278, -34.76541, 4.3258916, 4.4036403, 5374.9301, 4.4089414, 46.505897, 2.3506664, 2.3436886, 8472.7811, 2.3440641, 36.041483, -3.0103866, -3.0330376, -2827.8239, -3.0350909, -29.48259, 3.8880208, 3.8515615, 20380.935, 3.8528134, 67.539901, .30206136, .30102793, 111.56376, .30103128, 2.1672275, -.47552074, -.47774865, -535.52925, -.47775487, -4.947366, -1.2969297, -1.2873699, -448.58874, -1.2876585, -9.1038917, 5.4016685, 5.4129828, 75706.187, 5.4148884, 130.23541, -3.5207455, -3.4746651, -5392.0206, -3.4767282, -40.582638, 6.437813, 6.0694683, 9426.0253, 6.0779522, 73.102984, 2.9362577, 3.0932929, 995.57798, 3.0975282, 20.474872, 4.2903354, 4.4294349, 8449.8125, 4.4332812, 53.778645, 5.1739607, 5.1278401, 217916.35, 5.1285599, 180.01638, .04642506, .04642284, 27682.162, .04642284, 3.9075241, -4.2469413, -4.4455028, -6600.8666, -4.4499328, -49.194645, 3.5858353, 3.4955032, 2596.2005, 3.4987392, 32.198796, .74407075, .74065699, 3880.9731, .74066495, 12.903961, -4.087085, -4.1499899, -22604.866, -4.1515694, -72.278605, 4.9820244, 5.2840996, 5480.4086, 5.2940433, 51.429016, -1.4564105, -1.474377, -3103.33, -1.4744978, -18.741249, 2.7224042, 2.6837853, 10471.442, 2.6842648, 42.655062, 11.319421, 10.709754, 60422.779, 10.731002, 197.82585, 3.265598, 3.5595753, 597.22517, 3.5699894, 18.53622, -.9650115, -.96312035, -2380.073, -.96315384, -13.038223, 2.164339, 2.2153405, 1004.0559, 2.2165899, 16.754681, -.56780325, -.56618426, -454.15837, -.56619838, -5.2706926, -4.3053348, -4.2507666, -30890.39, -4.252092, -83.038422, -1.0564439, -1.0620748, -1721.3294, -1.0621333, -12.431369, -2.7316132, -2.7880892, -10933.338, -2.7886254, -43.370763, -1.5756134, -1.5805061, -12197.933, -1.5805756, -31.169406, 3.4853323, 3.4765582, 18127.864, 3.4775218, 60.387216, -3.0310116, -2.9837067, -9935.8247, -2.9844447, -45.025621, 5.4190658, 5.3833057, 3745.6544, 5.3969484, 47.913605, .836042, .83757213, 275.67062, .83765787, 5.7758454, 3.1916149, 3.3119053, 1458.2745, 3.3162779, 24.582162, -.13107013, -.13101089, -163.9307, -.13101103, -1.4121774, -.02167956, -.0216849, -4.2146913, -.0216849, -.12559013, 5.7062833, 5.5425845, 17395.771, 5.5473779, 82.74024, 3.9674132, 4.0510658, 5756.4774, 4.0547538, 44.914913, 1.0082364, 1.0081202, 580.6423, 1.0082229, 8.3883747, -.1607903, -.16067812, -7.4258153, -.16068035, -.57688327, -2.1794238, -2.168514, -892.76271, -2.1697763, -16.18601, 2.4158395, 2.3602945, 63.041821, 2.3699707, 7.1656397, .88352525, .8834159, 284.48156, .8835178, 6.0556954, 1.4023926, 1.4004412, 1876.6768, 1.4005975, 15.454071, -2.6481201, -2.6598485, -739.97358, -2.6629483, -17.312662, -.04596256, -.04598842, -1.0216786, -.04598851, -.12923324, -4.8706759, -4.9160841, -1506.657, -4.9347237, -32.940558, -.14989449, -.15037145, -4.8188818, -.15037368, -.47662029, -.70456375, -.70836868, -629.50443, -.70839399, -6.7859886, -2.9238357, -3.0439268, -353.87052, -3.0525781, -14.462724, -1.3816671, -1.416089, -245.24501, -1.4166886, -7.7648965, -2.6389059, -2.6411431, -299.06009, -2.6466421, -12.770329, 1.6796181, 1.6292513, 50.990814, 1.6319631, 5.2396749, -4.6907555, -4.0071153, -50.243176, -4.0598436, -10.340008, -2.4520787, -2.4202063, -255.88275, -2.424463, -11.544362, -.56336474, -.55902069, -125.96524, -.55905011, -3.4193484, -1.5439833, -1.5530797, -3645.9363, -1.5532245, -20.560393, -.35769835, -.35628075, -66.699031, -.3562898, -2.0435462, -5.8985411, -6.0079377, -4913.6259, -6.0258256, -55.500526, 4.7314097, 4.4310616, 685.04579, 4.4478122, 24.844689, -.83919065, -.84650215, -46.818948, -.84679291, -3.2066211, -.03089159, -.03089176, -160.02828, -.03089177, -.53451397, .88361004, .88295033, 130.47124, .8831211, 4.6703062, 2.3335326, 2.3548024, 2642.7267, 2.3556438, 24.323534, 4.4071647, 4.4439502, 69380.031, 4.444919, 110.45474, 3.2787794, 3.2745315, 66934.736, 3.2748563, 89.610449, 1.6362845, 1.6715687, 384.84329, 1.6724119, 10.10029, 6.3093651, 6.3182562, 32186.911, 6.3242009, 108.61343, 3.611326, 3.6092834, 40001.62, 3.6099395, 80.501442, 5.2158338, 5.266765, 49709.38, 5.2690472, 110.58476, 2.1901909, 2.1664396, 22261.835, 2.166564, 47.443309, -.52967183, -.52891298, -6096.2169, -.5289149, -11.958904, 1.7552088, 1.7533111, 7659.1081, 1.7534507, 28.682165, 9.3002312, 9.6458876, 70515.872, 9.6628501, 182.70824, -1.6751411, -1.6596802, -2489.8995, -1.6599057, -19.117372, .15967588, .15973638, 131.71812, .1597367, 1.4975272, -6.7038594, -6.8116189, -2053.7136, -6.8628644, -45.192173, 3.2862183, 3.307876, 3814.1386, 3.3101871, 34.535289, -3.5011058, -3.4842254, -2091.8209, -3.4883111, -29.487977, -5.918473, -6.0585339, -22523.518, -6.065055, -92.402812, -5.6222517, -5.9653862, -3338.7985, -5.9887053, -47.257447, -3.5602535, -3.6713991, -1269.7128, -3.6786167, -25.247736, -.92430902, -.9254755, -10749.074, -.92548614, -20.941212, -5.2384521, -5.3357226, -29922.325, -5.3390592, -93.641227, 3.9600059, 3.9203361, 15722.094, 3.9219252, 62.704786, -6.5203802, -6.6896631, -28737.546, -6.6976513, -106.90512, -6.2106413, -6.3132951, -73040.278, -6.3167014, -141.2359, -.20342402, -.2036375, -744.52393, -.20363773, -3.134929, 3.0717208, 2.997104, 1083.974, 3.0004496, 21.706716, -2.578223, -2.5895842, -34704.883, -2.589796, -61.330595, 2.1154631, 2.0707695, 913.4727, 2.0717072, 15.989522, -4.4212059, -4.6762251, -5267.8305, -4.6824606, -46.871022, -6.0308154, -6.1288048, -22200.014, -6.1357161, -93.118315, 2.0010941, 2.0050502, 8179.9494, 2.0052698, 31.995965, -4.7215135, -4.7224521, -10299.541, -4.7268107, -61.234115, -.61478931, -.61724539, -936.8533, -.61725705, -7.0747006, -1.7242039, -1.7260096, -31850.535, -1.7260607, -45.578987, 4.2597077, 4.2708827, 15752.019, 4.2731622, 65.871661, .13878808, .13874551, 110.47553, .13874572, 1.2862443, .06198083, .0619749, 17.679469, .06197494, .40800109, -.51497256, -.5153046, -11904.695, -.51530576, -14.669956, -5.0832571, -5.0614461, -115983.47, -5.0625443, -144.17615, 4.8631068, 4.9376385, 4604.7975, 4.9466392, 47.754326, .41687368, .41579762, 354.31543, .41580291, 3.9488109, 1.5740145, 1.5668996, 233.56283, 1.5678388, 8.3331091, -1.0156158, -1.0212038, -1092.6454, -1.0212729, -10.406692, 2.7223636, 2.7077122, 1547.9597, 2.7096859, 22.553674, -1.7144195, -1.7151036, -21079.76, -1.7151695, -39.570052, -1.1877669, -1.1941703, -5141.3335, -1.1942127, -19.357357, -9.1433754, -9.5217086, -84411.705, -9.5357864, -191.8103, -2.4873675, -2.4944945, -5322.7872, -2.4951476, -32.053319, -.52446998, -.52526652, -67.958396, -.52530591, -2.6539626, 2.3976154, 2.3905626, 12988.353, 2.3908659, 42.108622, 2.1940034, 2.1651172, 9681.0591, 2.1653379, 35.98591, -6.109209, -6.0299691, -7699.0563, -6.0425009, -65.988636, 3.8079023, 3.7502112, 44419.258, 3.7508204, 86.360332, -1.8819326, -1.8918879, -6906.1083, -1.8920842, -29.027781, -5.8802911, -5.9010268, -11508.862, -5.910263, -73.554629, .3642416, .36357882, 103.13817, .36358642, 2.3918439, -.1875515, -.18754808, -248.0582, -.18754846, -2.0587245, -3.2885067, -3.3249747, -12471.058, -3.3260255, -51.282232, -3.4245938, -3.5766289, -292.02275, -3.5949103, -15.073413, 1.6999336, 1.6998475, 5830.6976, 1.6999974, 25.636662, 2.7145418, 2.692024, 7781.6473, 2.6926642, 38.561584, 2.3688876, 2.4300853, 676.72969, 2.4324331, 15.601561, 8.4394979, 8.3138999, 61224.725, 8.3239664, 163.37541, 4.634536, 4.6071471, 7022.4616, 4.6122045, 53.231327, .9590249, .97735056, 38.64247, .97790484, 3.2878214, -2.041165, -2.0676384, -416.51119, -2.0694518, -12.016951, 7.3712772, 7.5493285, 83124.524, 7.5553493, 165.29951, 1.0943632, 1.095498, 1564.5913, 1.0955701, 12.328435, 15.712534, 15.419989, 1246536, 15.432621, 675.14817, .75482542, .7538249, 6187.394, .75383208, 15.219496, 1.5411183, 1.5461771, 2717.0765, 1.5463534, 18.617639, .05192873, .05191976, 257.80525, .05191977, .88586806, 6.9659606, 6.7887171, 14554.668, 6.8007292, 89.054275, -1.3180532, -1.3173208, -35718.803, -1.3173384, -39.59019, 3.1417625, 3.1357097, 1099.7541, 3.140007, 22.14186, -2.2540263, -2.2575945, -4491.5963, -2.2581012, -28.364354, -3.6364072, -3.6980171, -1193.2561, -3.7057156, -25.08185, -8.9597209, -9.0798549, -92417.588, -9.0911537, -195.03589, 1.3128072, 1.3119967, 6846.1057, 1.3120487, 22.765744, 5.0951244, 5.2515277, 1418.9377, 5.277164, 33.272924, -6.6168923, -6.7651375, -71965.581, -6.7695384, -146.60349, 1.4743967, 1.4749183, 3777.6522, 1.4750374, 20.175155, .88203319, .88612343, 873.71372, .88617114, 8.7925127, 10.232282, 10.227907, 24708.303, 10.269468, 137.27643, 2.4994204, 2.522306, 4996.1112, 2.52301, 31.484991, -.33601015, -.33565892, -94.016495, -.33566501, -2.1977061, 1.2014409, 1.201799, 1306.5399, 1.2019131, 12.354993, -.1917435, -.19167108, -12.795383, -.19167405, -.7777348, -1.1541729, -1.1510202, -841.79482, -1.1511491, -10.389213, -3.3155305, -3.322033, -7755.1242, -3.3234863, -44.011375, 1.638263, 1.6289084, 699.83365, 1.6294247, 12.338263, -2.3074323, -2.3163968, -5852.6398, -2.3168634, -31.468056, -2.9464432, -2.9898088, -4559.9816, -2.9912043, -34.081582, .64340142, .64392566, 1516.8902, .64393612, 8.5632652, 1.8216221, 1.8737544, 1093.3062, 1.8743269, 15.365716, -4.1484683, -4.1550817, -54011.578, -4.1559855, -97.59348, -2.0098146, -2.0067011, -6797.1668, -2.0069487, -30.168008, -3.0886434, -3.0641784, -6766.3444, -3.0653206, -40.114053, 3.1034238, 3.0604395, 12317.888, 3.0611532, 49.136717, -4.2798863, -4.165237, -2660.4643, -4.1713732, -36.526436, -2.7642694, -2.7673322, -601.62921, -2.7714243, -16.627612, -4.1354083, -4.150768, -3169.2294, -4.1567748, -37.843982, 2.085076, 2.110033, 337.53611, 2.1122867, 11.363741, 4.0312289, 4.1372091, 3906.6743, 4.1424073, 39.892756, -.2784614, -.27871515, -124.55464, -.27871771, -2.1295931, .91847241, .91775794, 6536.0012, .91777237, 17.666402, -6.5936505, -6.4164512, -4117.1251, -6.4394331, -56.3571, -3.7873428, -3.7775824, -15933.885, -3.7790071, -61.140686, -3.1255338, -3.1497479, -17261.446, -3.1504428, -55.246977, -.88895885, -.88950053, -146.0698, -.88966377, -4.8690165, 2.8107448, 2.8179615, 2663.2443, 2.8195846, 27.606919, -3.4316528, -3.4093229, -6258.9413, -3.4111217, -41.927843, .32348352, .32327145, 142.66038, .32327548, 2.4622713, 2.4586408, 2.4836465, 1053.3637, 2.4855562, 18.534868, -2.0863466, -2.1097879, -3798.3528, -2.1102179, -25.475501, 1.347211, 1.3375771, 207.73027, 1.3381379, 7.2242097, 1.2748403, 1.2586908, 390.71981, 1.2589676, 8.5952597, 4.663177, 4.6237577, 10949.742, 4.6275274, 61.980617, -1.0236763, -1.0387965, -129.94316, -1.0390997, -5.1446941, .65592571, .64964267, 88.122068, .64970828, 3.3594228, -2.8938186, -2.9083096, -7662.4106, -2.9092097, -40.034648, -.69787881, -.70020831, -245.99605, -.70025591, -4.929801, .91412968, .90636729, 27.986161, .90687785, 2.8596946, -.23737615, -.2370982, -8.2266245, -.23710685, -.77392452, 9.7240867, 8.4710294, 1709.1431, 8.5511321, 54.470164, 5.1143944, 4.797313, 1780.4902, 4.8086774, 35.978469, -1.3933966, -1.4279007, -342.37443, -1.428383, -8.7273744, -6.1643948, -6.2380461, -53226.802, -6.2421242, -126.46502, -1.1072716, -1.133251, -137.57627, -1.1336345, -5.5252331, 2.9131647, 2.6591858, 117.336, 2.6660231, 9.9858979, -.703409, -.69788492, -30.466814, -.69806848, -2.4702882, -1.3796104, -1.4028155, -502.94299, -1.4031774, -9.8554675, 3.4481209, 3.4947658, 2211.4348, 3.4988676, 29.735805, -5.1424068, -5.0932624, -28852.779, -5.0960527, -91.377689, 1.1658373, 1.1641565, 5674.2865, 1.1641943, 19.757366, 7.2585799, 7.4634011, 40841.836, 7.4728428, 129.10296, -.29489292, -.29380271, -90.475766, -.2938062, -1.9889338, 2.1286688, 2.1307039, 3118.6032, 2.1312262, 24.176426, 6.4743187, 6.7041785, 10245.251, 6.7206537, 75.44612, -.18655471, -.1872321, -8.1187575, -.18723562, -.65619663, -1.7840986, -1.807568, -1161.9624, -1.8081095, -15.464763, -3.9600761, -4.0954915, -885.68765, -4.109497, -24.037865, -2.3068248, -2.3243811, -3915.5288, -2.3249968, -27.517346, -7.0204058, -7.1839731, -15774.818, -7.1997808, -91.952371, 3.1544948, 3.0861172, 655.79074, 3.091473, 18.687088] + +star98_resids = np.array(star98).astype(float).reshape(-1,5) + +invgauss = [.21946682, .19838235, -.13116093, .19804544, .2329114, -.68724239, -1.20786, .29727304, -1.1461406, -.6548399, -.02508381, -.02537231, .00493116, -.02537176, -.01837619, .13333854, .12526482, -.06542915, .12518341, .13250661, -.1828634, -.20290189, .11601121, -.20253671, -.19796778, -.18576541, -.20700925, .14184774, -.20660529, -.21392459, -.01680541, -.01694517, .00684574, -.01694497, -.01569578, .01580889, .01566406, -.0337669, .01566384, .02565121, .40499508, .3419356, -.19304143, .3403085, .39859025, .04500324, .04404018, -.01918807, .04403675, .04267593, -.35003226, -.43573938, .19717053, -.43227509, -.36421909, -.44886321, -.59409509, .14983417, -.58638517, -.3923042, .35983219, .3103634, -.12058593, .30923487, .3149021, .61634589, .48829837, -.21846474, .48391242, .54956633, -.19586429, -.21798637, .08445516, -.21757089, -.18643276, -.67768345, -1.0811333, .12589839, -1.0427999, -.4871933, -.43106322, -.55561146, .10528459, -.54969041, -.3394889, .27120489, .24173716, -.08854081, .24120493, .23528243, -.05090118, -.0522168, .02073681, -.05221113, -.04754183, .38145175, .32775094, -.09872406, .32649672, .30627443, -.06122628, -.06313667, .02402832, -.06312674, -.05647762, -.27729954, -.32438509, .10631392, -.3230591, -.25380849, -.17498754, -.19254711, .083475, -.19225397, -.17226626, -.04475333, -.04570496, .01064837, -.04570159, -.03493987, 2.1079261, 1.2436278, -.36382129, 1.1877369, 1.4786871, -.59050542, -.85032246, .09040464, -.83176757, -.3980059, -.27481622, -.32238792, .13093539, -.32102242, -.27043148, -.32072485, -.38688683, .12794677, -.38462801, -.29746887, -.49304951, -.6674332, .11797934, -.65734004, -.38566096, .06418319, .06232442, -.01895976, .06231545, .05385613, -.15233039, -.16429293, .03637778, -.16413654, -.11907294, .14306921, .13431256, -.04142349, .1342233, .11924944, .50771239, .41922154, -.11900574, .41666974, .39440688, -.33686723, -.4055089, .07946929, -.40319374, -.26225008, -.12603683, -.13365709, .01972519, -.13358036, -.08557535, -.28690375, -.33635948, .09007555, -.3349458, -.24568, -.38061163, -.49506721, .36307402, -.48940939, -.47205916, -.61802926, -.99345317, .28705958, -.95710777, -.60303156, .33500504, .29312132, -.0745651, .29225169, .25579345, .09993473, .09567799, -.02142368, .09564778, .0753562, -.77390406, -1.5092293, .24944552, -1.4025957, -.66853885, -.56372333, -.81484888, .13961703, -.79670113, -.4460328, -.58464894, -.89675035, .25143829, -.86997468, -.55601168, -.79699816, -1.5367111, .18308007, -1.4316205, -.61498129, 1.2612303, .8616029, -.25955307, .84110028, .93817023, .16274853, .15026277, -.14167113, .15010333, .19578609, -.43961546, -.5730583, .12125264, -.56640134, -.36054187, .11414296, .10838846, -.03769438, .10834013, .09940349, .234557, .21059654, -.14686052, .21018955, .25281953, -.58416576, -.89122107, .23552975, -.86525941, -.5437292, .25647739, .23192464, -.03632729, .23153369, .1684433, -.45074863, -.58662315, .09520965, -.57989069, -.33821532, .19326576, .17842124, -.03625637, .17823145, .13939313, .56053862, .45568773, -.12652518, .45244681, .43000418, -.19469865, -.21453127, .03993593, -.2141952, -.14466825, -.19716704, -.21788899, .04601467, -.21752674, -.15294373, -.43999815, -.58606522, .20411479, -.57811493, -.42914302, .01566139, .01554434, -.00569429, .01554419, .01408348, -.2383123, -.26955511, .05428065, -.26887452, -.18336762, -.64722983, -.99421314, .113679, -.96432537, -.45667696, -.19029977, -.21185782, .10882145, -.21145172, -.19900944, .52360533, .42760203, -.17110953, .42469226, .45439907, .53511334, .43209168, -.26125299, .42881606, .53087744, .06765918, .06581012, -.00721243, .0658017, .04041926, -.33830509, -.4080903, .08346023, -.40570789, -.26732662, .25358176, .2261832, -.14274032, .2256911, .26379764, .64897923, .50000076, -.52550319, .49437774, .76211817, -.40741312, -.51148167, .07673901, -.50709672, -.2942425, -.36424337, -.45859178, .20539539, -.45456159, -.37914151, .03219191, .03166734, -.02244757, .03166592, .03596645, .09131316, .08775474, -.01880635, .08773163, .06794128, .09544249, .09147182, -.02468448, .0914443, .07661477, -.26565384, -.30975165, .12756023, -.30853737, -.26209526, -.67698377, -1.2354946, .45589181, -1.1640047, -.74762319, -.5849103, -.89192114, .2316015, -.86599792, -.54114872, -.41648676, -.52673306, .08059767, -.52192252, -.30351836, .60186248, .4774551, -.247836, .47321483, .56415222, -.48771891, -.68555533, .27302358, -.67248587, -.5064343, -.23870823, -.27432787, .13922256, -.27344544, -.25128012, -.46352127, -.61110291, .10542772, -.60338992, -.3564851, -.15315845, -.16768992, .15638745, -.16746051, -.19431423, -.11028172, -.11661361, .03746978, -.11655305, -.09695557, -.09766739, -.10260147, .03416514, -.10255995, -.08670367, -.25865969, -.3031103, .20195439, -.30184354, -.30008683, -.29530742, -.35636228, .25145118, -.35427322, -.3526502, -.43655156, -.59436743, .35324208, -.58503774, -.51253616, -.0260924, -.02641737, .00727071, -.0264167, -.02147229, -.68007447, -1.2304932, .41095371, -1.1612362, -.72440028, -.55540409, -.806563, .16968559, -.78815111, -.47130029, .08496324, .08153547, -.0466319, .08151243, .08764458, .25291318, .2275826, -.06526919, .22716071, .20287431, -.3459101, -.43509049, .30138239, -.43129855, -.41625371, -.17190125, -.1890793, .09316763, -.18879372, -.17658387, -.20852324, -.23414686, .09714721, -.23362349, -.20366813, .59134795, .48223124, -.06984852, .47890327, .36555927, -.25589175, -.30711218, .63498647, -.30541476, -.43648469, -.03186028, -.03232117, .005511, -.03232006, -.02236591, -.25594521, -.28948219, .03054559, -.28875201, -.158766, -.51359911, -.70176826, .10370339, -.69049933, -.37962706, .19992662, .18358969, -.05191884, .18336752, .16070599, -.03252799, -.03304344, .01041198, -.03304208, -.02803448, .87784986, .65610395, -.17025957, .64692494, .6402172, .25557659, .22823559, -.12059263, .22774936, .25068651, -.31197284, -.37536793, .1441638, -.37323551, -.30388314, -.49409432, -.69358795, .24006401, -.68046772, -.48939432, .29230454, .26153551, -.03469097, .26099704, .18098358, -.43107557, -.55170049, .08647818, -.54614283, -.31794191, 1.1243036, .79861683, -.16621181, .78325509, .74900784, .94243785, .66779165, -.7453546, .6547638, 1.098077, -.00547659, -.00548998, .0009586, -.00548998, -.00385978, -.48125962, -.64802831, .12750168, -.63856528, -.38943494, .08075752, .07765921, -.04328822, .0776394, .08265236, -.01733649, -.01747477, .003682, -.01747458, -.01303203, .37106276, .31699846, -.18163582, .31569208, .36844733, .08082038, .0777816, -.03548928, .07776256, .0773968, .04414503, .04321061, -.02021886, .04320732, .04287296, .29116544, .25845228, -.07178838, .25784145, .23003183, .28895977, .2544519, -.1475, .25376729, .29095931, -.17460846, -.18979305, .02755812, -.18957327, -.11888764, -.2784603, -.3217463, .05463276, -.32062952, -.20386214, -.48120414, -.65896058, .18281081, -.64823028, -.43910009, .43919416, .36448122, -.28435028, .3623776, .47870238, .29138147, .25700789, -.12079888, .25633418, .27374041, -.62673306, -1.0166031, .28405348, -.9780172, -.6065479, -.38350618, -.48318203, .13895444, -.47891006, -.34446813, -.15554825, -.16871708, .05613268, -.16853152, -.13952714, -.5004515, -.69034345, .15487883, -.67857984, -.42649638, .01693351, .01677943, -.01832247, .0167792, .02190295, -.2479185, -.28563098, .1182882, -.28467869, -.24407863, 2.2482611, 1.2402532, -1.3060192, 1.1700227, 2.3635113, .20602966, .18306043, -1.0509977, .18263483, .44685205, .58486763, .47239982, -.12643067, .46882798, .44224799, -.22978171, -.26822207, .43025548, -.2671554, -.35683089, -.04893299, -.05008781, .01291673, -.05008327, -.03954838, -.31992822, -.38629891, .13558557, -.38402033, -.30277234, .23281539, .21056172, -.07755681, .21020792, .20334075, -.40389696, -.50231576, .06081306, -.49835653, -.27072146, -.4149099, -.53505755, .14485935, -.52933329, -.36809624, -.19484302, -.21478077, .04112692, -.21444139, -.14616452, -.59354453, -.92007961, .2558687, -.89126164, -.56491693, -.22649251, -.25446097, .05203575, -.25388691, -.17477522, .11308923, .10712155, -.06333083, .1070691, .11744356, 2.1570618, 1.2739476, -.29396154, 1.2169135, 1.3985625, -.36661502, -.45229019, .100595, -.44898252, -.30015274, -.13090653, -.14049298, .06964604, -.14037609, -.13364407, 1.034831, .73728361, -.28908361, .72334743, .85230971, .01234337, .01225937, -.01630469, .01225927, .01706357, -.02041978, -.02062125, .00657333, -.02062092, -.01763217, .25698133, .23093649, -.06508868, .23049756, .20485482, -.18856169, -.21000433, .12057066, -.20959888, -.20467251, -.61349066, -.96438489, .23401299, -.93226802, -.56056842, -.13403576, -.14335573, .03787054, -.14324782, -.11081307, -.28087233, -.32981483, .11523373, -.32840075, -.26295161, -.22715035, -.25568596, .0578659, -.25509017, -.18142335, -.10101297, -.10622081, .03092045, -.10617609, -.08577157, -.54132787, -.75073436, .09183236, -.73751806, -.37755669, 2.2315997, 1.2410837, -1.1229495, 1.1726349, 2.236356, -.25446228, -.29017245, .05324106, -.28934008, -.19033026, 1.3392881, .8691534, -.84530931, .84265167, 1.447431, -.14885417, -.16179664, .098637, -.16160935, -.16350484, -.181369, -.19915316, .05233794, -.19886303, -.15100486, -.31967023, -.39613132, .35022326, -.3931111, -.41520234, -.24715716, -.28116998, .05816391, -.28039245, -.19225457, 1.4170507, .91116127, -.71593757, .88220543, 1.421975, -.07102628, -.07327601, .00833581, -.07326414, -.04381323, .09590878, .09172196, -.03769426, .09169151, .08851306, -.39687496, -.49270953, .06599145, -.48888849, -.27496348, .03874853, .03795295, -.04323879, .03795023, .05063739, -.44362887, -.57774381, .11003445, -.57107979, -.35118241, -.37567437, -.4721807, .15220406, -.46809172, -.3502352, -.80446806, -1.7538868, .34012519, -1.5881386, -.76072695, -.31456215, -.37615399, .10474692, -.37415682, -.27470173, 1.4262995, .92384058, -.54235857, .89542537, 1.3019051, -.07533168, -.07813108, .02041389, -.07811374, -.06141913, -.25107743, -.28541588, .04897872, -.28463574, -.18346403, -.23182627, -.25881558, .02763425, -.25829316, -.14374773, -.55699071, -.79988016, .13780416, -.7826818, -.44055089, -.60340691, -.87652356, .08783114, -.85648447, -.39991377, -.59608332, -.88509811, .13627737, -.86245829, -.45922187, .16977873, .1570718, -.0786399, .15691349, .16550578, -.42714799, -.58248304, .4346435, -.57324717, -.54130243, -.07064828, -.07297453, .01213357, -.07296177, -.04947745, -.45992196, -.62723585, .2410807, -.61728428, -.46721873, .63399242, .50020189, -.21266542, .49554878, .55500684, -.5474725, -.83875274, .41875875, -.81384186, -.63082104, -.73538742, -1.3490981, .24474851, -1.269732, -.6420874, -.16915226, -.18683668, .15054797, -.18652915, -.20499983, -.46165077, -.62756406, .21855899, -.61781118, -.45332389, -.2516681, -.29165745, .14377037, -.29060301, -.26309863, 1.1349967, .77223199, -.69151736, .75346989, 1.2122925, -.07717557, -.08009098, .01934847, -.08007263, -.06131199, -.19818136, -.22060833, .07801391, -.22018631, -.18299641, .94335083, .66547504, -.86786046, .65216005, 1.1559582, 1.2301549, .84702958, -.24236003, .82768642, .90185533, -.52846413, -.74437682, .14929506, -.73001422, -.4368867, .00926399, .00922251, -.00363285, .00922248, .00854328, -.2320652, -.26378555, .09157412, -.26306529, -.21445734, -.61930279, -.98844461, .26019757, -.95333125, -.58440389, -.29300103, -.34646666, .11354046, -.34484973, -.26913673, -.63014989, -1.0083751, .23337426, -.97216438, -.57015144, .20438505, .18552944, -.15192759, .18524006, .2332679, .21299143, .19454797, -.0567153, .19428223, .172644, .32055523, .28060605, -.10244481, .27977921, .2761268, .35875689, .30637082, -.24389494, .30510224, .39744566, -.04853752, -.04991749, .06914812, -.04991095, -.06881057, -.01334856, -.01343572, .0050181, -.01343563, -.01213797, -.14104088, -.15198247, .06106202, -.15184115, -.13443027, 1.2296562, .8493208, -.21855297, .83024186, .87106662, -.0963121, -.10139637, .05513227, -.10135166, -.10075483, -.62115306, -.91519607, .08714316, -.89268037, -.40664945, .14955772, .14007855, -.04106003, .1399785, .12246791, .11541852, .10981708, -.02383052, .1097718, .08594847, -.30922027, -.36994709, .12261091, -.36797216, -.28621892, -.22920988, -.26126886, .11985453, -.26052408, -.23265749, -.4513332, -.58769819, .09554269, -.58092621, -.3389019, .47641919, .39138423, -.26324856, .38887407, .4925589, .89197557, .65519863, -.29946105, .64492007, .78107383, 1.8294421, 1.1029936, -.61660499, 1.0572978, 1.6040754, -.05912358, -.06104126, .04432384, -.06103089, -.06767002, .89695457, .66603428, -.18647887, .65629947, .66947368, -.54183869, -.81568954, .35721411, -.79337711, -.5941547, -.51559503, -.75180669, .3284956, -.7342743, -.55897493, .80389009, .6029852, -.29722955, .5947539, .72695095, -.15169744, -.16470762, .07603953, -.16452191, -.15182454, -.03221923, -.03273869, .01307928, -.0327373, -.03005717, .38336443, .32796541, -.12744674, .32663763, .33460117, -.34412063, -.41857653, .10036856, -.41591208, -.28752991, -.42144896, -.54963099, .17197579, -.54322411, -.39384841, -.39443481, -.5054271, .18219352, -.50028514, -.38415321, .55944951, .45919047, -.07643799, .45621914, .36303934, 1.500497, .95328728, -.65308846, .92136018, 1.4327071, -.08420238, -.08775548, .02464356, -.0877305, -.0704359, 1.187384, .80804761, -.4785498, .78843669, 1.1050447, -.00053604, -.00053618, .00021674, -.00053618, -.00049941, .74469897, .5666345, -.30080407, .5596433, .6935723, -.62972476, -1.0104427, .24209007, -.9737469, -.57690306, -.41289899, -.56940561, .71719622, -.55972, -.62534336, -.23785253, -.26611685, .02630208, -.26555848, -.14383962, -.25942357, -.29728791, .0608765, -.29637023, -.20160416, .77751978, .5882403, -.27139008, .58067893, .68973503, .50988209, .41425932, -.27861761, .41129613, .52520158, .47834714, .39842639, -.11605974, .39621571, .37589451, -.31169033, -.36764786, .06178849, -.36598262, -.22897852, -.50561712, -.71680521, .23888637, -.70245612, -.49615987, .07689107, .07409474, -.03850472, .0740778, .07693051, -.68130941, -1.198946, .32210533, -1.1374172, -.66871166, -.37679723, -.48160687, .24461181, -.47680598, -.41106226, -.05865463, -.06050934, .0379785, -.06049957, -.06393286, -.10330301, -.10876277, .0317849, -.1087147, -.08786695, -.02583652, -.02617324, .01174462, -.02617251, -.02502912, -.34649878, -.43728814, .32933222, -.43336602, -.42922916, -.04844241, -.04961063, .01689242, -.04960594, -.04295936, .47898364, .38890618, -.47525159, .38610723, .60191011, -.22712013, -.2526591, .02497461, -.25218155, -.13709239, 1.2311459, .82439862, -.61134541, .80270725, 1.228321, .55495383, .45373311, -.10086472, .45068091, .39606001, .0672676, .06540267, -.00864428, .06539406, .04276846, -.29326405, -.34657704, .1098119, -.34497071, -.26631708, -.64305896, -1.0798608, .33211549, -1.0329773, -.65004023, .95204054, .69087213, -.28404316, .67917358, .80150901, -.01583657, -.01596697, .01008165, -.01596679, -.01716437, -.17308181, -.19085442, .10896987, -.19055084, -.18690163, .23851663, .21641591, -.04621634, .21607525, .17389522, -.24236265, -.27736187, .09702571, -.27652257, -.22505193, -.32758453, -.39962436, .16585724, -.39700471, -.32895543, -.10080331, -.1064483, .06253581, -.10639565, -.10831853, -.57352885, -.8450014, .16488262, -.82421587, -.47691224, -.39773343, -.49071245, .05253993, -.48712159, -.25521208, .91120002, .66483476, -.32773333, .65395074, .81644327, 1.7449753, 1.0830833, -.39014084, 1.0430876, 1.3343712, -.45729182, -.60007962, .10469619, -.59275748, -.35246493, -.29580673, -.35005361, .10891897, -.34840495, -.26712624, -.31002337, -.37474369, .18190652, -.37250797, -.32700599, .18654161, .16983522, -.23194817, .1695863, .25273038, .91688764, .68605732, -.11477754, .67653306, .57788273, -.01737575, -.01751493, .00375574, -.01751474, -.01313825, -.33514683, -.40624829, .1086914, -.40375278, -.29011163, .05586841, .05451575, -.01074254, .05451029, .04062779, -.30097629, -.37288715, .56313912, -.37004973, -.46727236, -.06435532, -.06635487, .01555102, -.06634452, -.05050324, 1.683168, 1.047478, -.48188034, 1.0092125, 1.397681, -.51668519, -.69861335, .07909412, -.68812903, -.3482374, -.3657535, -.45711543, .15771009, -.45334944, -.34814125, -.48537817, -.62511791, .03986077, -.61849789, -.26581452, .00862779, .0085919, -.00329303, .00859188, .00788512, -.09503767, -.09982766, .04167813, -.09978744, -.09097246, .34723869, .2989993, -.18031461, .29788735, .35164602, -.46695991, -.61665162, .10343267, -.60877636, -.35597184, -.6871968, -1.1533617, .19424251, -1.1033873, -.56821432, -.46411708, -.65869919, .4833767, -.64543078, -.59273004, .70606231, .53756757, -.4486713, .53096464, .76480042, -.1556854, -.16978277, .09499918, -.16957033, -.16637263, -.66226392, -1.106026, .24847245, -1.0589874, -.60180641, -.23801501, -.2678183, .03885581, -.26719805, -.16389469, .04557001, .04440477, -.09133413, .04439981, .07238921, -.13911314, -.15088159, .13631851, -.15071588, -.17408996, 1.4387663, .91624473, -.85058109, .88587159, 1.5213953, -.43092071, -.57464196, .247748, -.56678388, -.45145205, .5834262, .47102589, -.13195491, .46744966, .4478602, -.8064445, -1.732115, .31001814, -1.5742397, -.73879173, -.05975525, -.06163017, .03062133, -.06162037, -.060247, .71311673, .54503254, -.35108538, .53852405, .70944924, -.28330589, -.33648226, .18082704, -.33482854, -.30732757, 2.9488587, 1.4905628, -1.324286, 1.3809095, 2.8451592, .34215535, .29829967, -.08280641, .29736632, .2686459, -.71592919, -1.2115151, .15170411, -1.1573919, -.53776083, .26341899, .23734718, -.04160406, .23691803, .17939897, -.05988568, -.06166873, .01917075, -.06165989, -.0516145, .16575998, .15401103, -.05504816, .15387239, .14462523, -.2465342, -.28298038, .10048665, -.28208579, -.23030193, .12586652, .1184744, -.07679535, .11840209, .13450191, .43413164, .3614944, -.25643955, .35948236, .45893653, -.52625753, -.75904535, .23348343, -.74233574, -.50570149, -.14582805, -.15667334, .0332696, -.15653905, -.11226729, -.22907482, -.26222842, .15482408, -.26143162, -.25328399, 1.7668508, 1.06039, -.92693076, 1.0156843, 1.7953909, -.38041178, -.48183652, .17407242, -.47737956, -.36933683, .34341296, .29508741, -.22770138, .29395921, .37729091, -.61407417, -1.0983528, .84764951, -1.0388203, -.8614485, -.2614967, -.30345824, .1135654, -.30234096, -.24949939, .34180776, .30303645, -.02205434, .3023056, .17272796, -.21350013, -.23815688, .05022845, -.23768342, -.16605757, -.59242453, -.9486729, .38552786, -.91450675, -.64682074, .00673239, .00671055, -.00252798, .00671053, .00611947, -.18127834, -.20054203, .09815037, -.20020155, -.18615353, -.34896946, -.42871336, .12887359, -.42570187, -.31544448, .08732154, .08409452, -.01621272, .08407465, .06276385, .6832916, .53295434, -.19975321, .52750902, .57136282, .9849395, .70606212, -.34240244, .6931893, .87256004, .30984234, .27086184, -.14914363, .27004744, .30594175, -.48199152, -.65029366, .1315505, -.64067268, -.39391311, -.02940279, -.0297881, .00438273, -.02978726, -.01964191, 1.2810312, .87739896, -.20992257, .85679861, .88322127, .40334006, .33972436, -.23154519, .3380619, .42234708, .33373729, .29244946, -.06847789, .29160111, .24800662, .85773527, .62214992, -.66591624, .61158506, .99323507, -.27468661, -.32545858, .20809911, -.32390347, -.31549446, 1.098823, .76927863, -.33563801, .75321846, .93236407, -.12836792, -.13758065, .06917673, -.13747056, -.13161367, -.58997764, -.87334667, .14130656, -.85134695, -.46162339, -.25807961, -.29852855, .10648919, -.29747642, -.24207372, -.07161748, -.07431661, .03448991, -.07429966, -.07072724, -.68686562, -1.1449784, .18213472, -1.0966257, -.55597521, 1.0381346, .73468237, -.35969612, .7202469, .91866611, -.35002969, -.43067728, .13277318, -.42760686, -.31923956, -.09843121, -.10336873, .03025306, -.10332747, -.08369284, -.2136089, -.24242867, .16133335, -.24178269, -.24509302, -.14422786, -.15540111, .05049805, -.15525701, -.12807596, -.23448965, -.26958699, .16418619, -.26871486, -.26234412, -.43457455, -.57663471, .20609226, -.56901747, -.42697923, .08298978, .07996368, -.02144022, .0799453, .06659416, -.39977868, -.50144619, .08679864, -.49718097, -.30273367, -.13581469, -.14577451, .05247304, -.1456529, -.12462922, -.64910803, -1.1625603, .54974883, -1.0992702, -.77376561, -.62123103, -1.0200733, .34793076, -.97942937, -.64517327, -.29854263, -.3501201, .06657682, -.34864249, -.22809823, -.47160741, -.64448325, .20578781, -.6341249, -.45068208, .20952869, .1925899, -.03197042, .192362, .14106582, -.23112507, -.27006012, .43147481, -.26897224, -.35855836, .20444175, .18740119, -.05319557, .18716482, .16444281, -.20074735, -.22195347, .04144814, -.22158087, -.14948981, -.24836117, -.2923441, .3454659, -.2910528, -.34930183, .60977539, .48693719, -.16141134, .4828544, .49328882, .03950956, .03876269, -.01720066, .03876034, .03772766, 1.0726371, .75963628, -.26993955, .74477062, .85323247, -.32400804, -.39286452, .14409017, -.39044371, -.31159607, .00748171, .00745607, -.00178383, .00745605, .00584514, -.22912932, -.26145243, .12801995, -.26069511, -.2377696, -.24334288, -.27329276, .02858448, -.27268006, -.15015249, .98857169, .70159971, -.47998489, .68803709, .97894426, -.256986, -.29198901, .0394474, -.29119699, -.17336275, 1.1512684, .79469328, -.37803586, .77678348, 1.0007034, 1.3369505, .9007234, -.258813, .87772621, .9744261, -.03528889, -.03584243, .00496118, -.03584098, -.02311871, -.51846139, -.75303337, .29505226, -.73582911, -.54131982, -.36417282, -.44940308, .10714898, -.44610779, -.30517178, .43107619, .36539202, -.09131403, .36373302, .32376149, -.66455363, -1.036643, .11220702, -1.0032585, -.46277515, -.43139516, -.56290179, .14466203, -.55631411, -.37761134, -.0166183, -.01675004, .00489267, -.01674987, -.01392888, -.20746924, -.23084471, .05229881, -.23040676, -.16512383, .17001751, .15829983, -.03393058, .15816537, .12518036, -.40028781, -.48875604, .03449272, -.48552314, -.22275837, -.28769553, -.33586097, .07163674, -.33452343, -.22803981, .01172257, .01166066, -.00246261, .01166061, .00877992, -.16326594, -.17786135, .05868567, -.1776442, -.14625737, -.13097163, -.14039217, .05998306, -.14027934, -.12719529, -.05808555, -.0596823, .01229087, -.05967498, -.04360968, -.37410184, -.47392831, .20004904, -.46953796, -.38257394, -.34349912, -.42429369, .17668618, -.4211545, -.34675916, -.01492567, -.01503391, .00523041, -.01503377, -.01325799, .29068996, .25753057, -.08563828, .25690199, .24369839, -.332227, -.40395491, .13108667, -.40139353, -.30701019, -.40595735, -.51559944, .11220129, -.51072004, -.33316769, -.61518924, -.9272341, .13160628, -.90172302, -.46356221, .14075706, .13276657, -.0224764, .13269102, .09621269, -.48528515, -.67101151, .20765385, -.65941019, -.46073866, -.05503443, -.05643122, .00948432, -.05642531, -.03858647, 1.750071, 1.0774354, -.48320668, 1.0363146, 1.4357917, 1.4174127, .91338448, -.6681414, .88463772, 1.3898364, -.38540542, -.48559742, .13375997, -.48130239, -.34124314, -.56868899, -.78925933, .06278987, -.77530311, -.34373446, .34710641, .29833116, -.20567282, .29719408, .36731956, .07638697, .07404525, -.00804917, .07403329, .04545761, -.56149623, -.87177074, .40701726, -.84427383, -.63549505, -.24999416, -.28689392, .08886123, -.2859896, -.22311769, -.23430048, -.26493238, .06090427, -.26426693, -.18839731, .78760525, .61138863, -.07971736, .60490119, .46245203, -.29943973, -.35798383, .1537833, -.35608827, -.30212454, 1.5718706, .99354646, -.52506383, .95953593, 1.3741218, -.10596756, -.11224654, .06689919, -.11218458, -.11453342, -.54909035, -.76884924, .09845905, -.75451782, -.39011359, -.32609736, -.39539043, .1367698, -.39295453, -.30754235, -.15012378, -.1619647, .04234255, -.16180922, -.12404197, -.39565971, -.50809383, .18877217, -.50283487, -.38952668, -.57553404, -.86613075, .21942925, -.84247579, -.52580193, .12683929, .1198912, -.03643842, .11982781, .10544655, .02270402, .022484, -.00311723, .02248365, .01475712, -.24123189, -.27379475, .0612082, -.2730645, -.19241386, .21800662, .19905626, -.04898011, .19878217, .16697946, -.60306868, -.92619133, .19955451, -.89837386, -.52554314, .41430026, .35401909, -.07404215, .35256447, .29402199, -.13443697, -.14357866, .03083635, -.14347514, -.10368362, .14783533, .13784002, -.08570558, .1377275, .15530968, -.29406624, -.35009529, .14884304, -.34832685, -.29526793, -.57288525, -.86310269, .23129864, -.83940462, -.53347342, .50213207, .4154233, -.11637213, .41294565, .38860194, .63428636, .49900067, -.24276877, .49424647, .58022689, .08921615, .085661, -.02803146, .08563739, .07641657, -.58928721, -.91068237, .26052254, -.8825479, -.56560049, .04359302, .04262897, -.03360468, .04262541, .05036025, -.19631908, -.21918695, .10491377, -.21874408, -.2007224, .2626382, .23384393, -.12598651, .23331921, .25903391, -.03942293, -.04011796, .00570469, -.04011591, -.02607673, .02482358, .02453316, -.00854861, .02453259, .02192224, .25193872, .22580348, -.09755285, .2253527, .23135911, -.48866528, -.68518697, .25676136, -.67231132, -.49681444, -.37802814, -.47936239, .18933894, -.4748858, -.3782446, -.34102701, -.4160608, .12063284, -.41333092, -.30387224, 1.7724731, 1.034292, -1.968235, .98591764, 2.3125373, -.36586314, -.44618456, .06774468, -.44326864, -.26273273, .12187065, .11574187, -.02178408, .11569052, .08649463, -.31911072, -.37837669, .0648449, -.37655279, -.23637209, -.27682526, -.3188125, .04792746, -.31775533, -.19439061, -.64054568, -1.0224526, .1989004, -.98611584, -.54649805, .03933659, .03869117, -.00481294, .0386894, .02460431, -.33307454, -.40186308, .09530847, -.39951192, -.27653373, .09703165, .0931105, -.01637223, .0930841, .06755459, .8318686, .61155395, -.50656838, .602011, .88836719, -.21584148, -.24218836, .07010333, -.24165377, -.18693021, -.4291746, -.58532861, .4197218, -.57603933, -.53672668, .69636682, .54924672, -.10184715, .54412435, .4622586, -.001548, -.00154914, .00048186, -.00154914, -.00132179, -.08304844, -.08639793, .01876542, -.08637542, -.06373095, -.35078789, -.43258938, .14120095, -.42943789, -.32632644, .06817824, .06586494, -.05215659, .06585186, .07856159, -.13281122, -.14139016, .02233949, -.14129787, -.09236858, -.63619981, -1.0325971, .25367231, -.99330654, -.58997015, -.42647757, -.55722192, .16400666, -.55063623, -.39074607, -.51893985, -.73844766, .2072769, -.72335158, -.48150963, -.16373659, -.17750708, .03532237, -.17731432, -.12372489, .54251637, .43383208, -.38354983, .43023926, .60891849, -.50161375, -.7221246, .33194245, -.70639005, -.55073654, -.15861102, -.17244583, .06087459, -.17224499, -.14522596, -.16836261, -.18502635, .10210102, -.18475196, -.17954933, 1.4866833, .95698828, -.47154365, .92672422, 1.2774079, 1.2911355, .88861684, -.16713676, .86827564, .82290279, -.09839541, -.10358873, .04638835, -.10354307, -.09648568, -.09096955, -.09470469, .01053519, -.09467913, -.05586694, -.49810824, -.67926422, .12716917, -.66849219, -.39812529, 1.6610055, 1.0605991, -.24860647, 1.0258457, 1.1111214, -.16366309, -.17883711, .07673274, -.178603, -.16019073, .6569265, .51131516, -.30129419, .5060029, .63829009, 1.0982562, .76135435, -.47545138, .74458407, 1.0467617, -.51409591, -.71837177, .16042185, -.7051421, -.43933312, -.1187299, -.12597206, .03420609, -.12589849, -.09879869, .45654377, .38446577, -.08691705, .38258035, .33090242, -.28488554, -.33901862, .18828181, -.33731459, -.31265093, .21830474, .19756622, -.1216919, .19723853, .22636329, .33133138, .28878174, -.10937445, .28787446, .28850743, .08039078, .07735885, -.03813546, .07733979, .07899334, -.02966155, -.03009056, .00975126, -.03008952, -.02579246, -.32653548, -.39441319, .11670383, -.39207824, -.2919613, -.33337953, -.4151742, .29501499, -.41186149, -.40325892, -.49720072, -.70191556, .25332848, -.68819645, -.50033302, -.09483072, -.09969709, .04929172, -.09965549, -.09606548, -.2383112, -.26735905, .03140062, -.2667705, -.15278675, .17384791, .16100567, -.0570078, .16084775, .15104317, -.29885783, -.34988492, .06073773, -.34844004, -.22138046, -.48540272, -.66641093, .17968785, -.65538423, -.43912117, -.19823386, -.21968728, .05525572, -.21930114, -.16315021, -.30018563, -.35623518, .10974338, -.35450114, -.27043488, -.56089125, -.85613782, .32826685, -.83114068, -.59111428, -.42403669, -.58488574, .58203682, -.57492417, -.59373927, -.2883768, -.34128525, .13392627, -.33967655, -.28136633, -.51613294, -.7059601, .10185868, -.69454947, -.37860272, .65757961, .50757101, -.43543632, .50194344, .72213286, 1.1870079, .82628202, -.22119967, .80848295, .8542282, .27860199, .24704089, -.11164627, .24644671, .25879004, -.24053122, -.27385251, .07592384, -.27308575, -.20634013, -.16078607, -.17692895, .16496248, -.17665932, -.20431677, -.32128487, -.38526072, .09923591, -.38315146, -.27362754, -.2883748, -.33796112, .08496367, -.33654718, -.24176455, .64638334, .50812646, -.216429, .50325443, .56551212, -.19898496, -.22156649, .07717696, -.22114037, -.18283221, .15496505, .14454288, -.05577738, .14442617, .13888389, .00633671, .0063181, -.00166539, .00631809, .00511397, -.4739938, -.66681795, .34836642, -.65404427, -.53893601, .36246502, .31161843, -.14269332, .31043506, .33469966, -.22925888, -.26072451, .10405145, -.26000712, -.22197811, .4886355, .39530087, -.49041548, .3923561, .61638879, .2447423, .22157177, -.04705109, .22120688, .17796691, .45818104, .37993539, -.21221618, .37772388, .44664338, -.32099268, -.38539684, .10526541, -.3832575, -.27889153, -.12972388, -.1380267, .02500792, -.1379382, -.09441677, -.31683287, -.37357803, .05330802, -.37189334, -.22037433, 1.4682062, .96749296, -.25056919, .94000071, 1.0260706, -.07950166, -.08302061, .05841841, -.08299466, -.09038799, -.06855711, -.07085819, .01818478, -.07084532, -.05549847, -.21092744, -.23694868, .09130626, -.2364151, -.20103217, -.61472947, -.96513955, .22680609, -.93316874, -.55550025, .4952139, .40151315, -.39233881, .39858411, .57733201, .05935325, .05752996, -.06177101, .05752063, .07578232, .28816721, .25615663, -.06903522, .25556563, .22549138, -.06973866, -.07231299, .03575098, -.07229716, -.07032154, .76735159, .58759668, -.17989453, .58067771, .59613632, .0214232, .02120572, -.00758547, .02120535, .01909533, -.59843416, -.92357982, .22634383, -.89521849, -.54526857, .38819962, .32571873, -.39803505, .32405296, .49319709, -.19707937, -.21731471, .03854351, -.21696909, -.14413006, -.40534384, -.51980512, .14965248, -.51448429, -.36637038, .75387704, .56679094, -.45130491, .55917749, .8005105, -.50903893, -.73255746, .29339799, -.71662576, -.53373995, -.4447331, -.59350981, .19587434, -.58535142, -.42631978, -.56118785, -.82137873, .1770618, -.80184537, -.48134573, .05405625, .05269526, -.02015385, .05268955, .04901849, .5064457, .41581461, -.16660501, .41313237, .44048178, -.41284779, -.55286364, .38436762, -.54508282, -.50790861, -.29817206, -.34948804, .06544106, -.34802351, -.226606, .29133822, .25698419, -.12039233, .25631115, .27340592, .11252154, .10660969, -.06318201, .10655795, .11695845, -.13277124, -.14234073, .05467631, -.14222589, -.12445501, -.55454265, -.79811435, .14813201, -.78074838, -.44996936, 1.3072545, .89034916, -.21571659, .86883081, .90339553, 1.0007486, .71681392, -.31062265, .70368218, .8536982, -.16159869, -.17579135, .0553703, -.17558389, -.14247134, -.07081385, -.07343344, .03221049, -.07341729, -.06861535, -.16043381, -.1744756, .05708551, -.17427105, -.14323503, -.51880592, -.72619974, .15403705, -.71269002, -.4360688, -.38869728, -.48193385, .07466007, -.47824067, -.28256202, .0204857, .02029921, -.00401082, .02029892, .01498723, -.67349836, -1.0435125, .0925214, -1.0108993, -.43783966, 1.1593064, .803795, -.30685635, .78610388, .93782224, .39465662, .33338519, -.22956766, .33180876, .41507492, -.35065788, -.42865261, .10374909, -.42578449, -.29439279, -.11717109, -.12449126, .04628912, -.1244151, -.10832199, -.08785581, -.09195866, .04124202, -.09192674, -.08602743, -.58266706, -.93449817, .44822709, -.90062578, -.67265083, .02376894, .02349106, -.01201546, .02349052, .02385595, -.67355988, -1.0792605, .13905122, -1.0402924, -.50155559, .71359203, .53745127, -.6508134, .53032017, .87189093, -.43603228, -.5650238, .11086531, -.55874855, -.34803344, .20930669, .19143418, -.05646736, .19118023, .17039803, -.35727676, -.44590583, .18199924, -.44227724, -.35950343, 1.6753869, 1.0630095, -.2812032, 1.0272074, 1.1643767, .4908936, .40681268, -.12660653, .4044293, .3936893, -.14652734, -.15811187, .05238908, -.1579594, -.13102959, .31785778, .27544281, -.23317764, .27450336, .36118319, -.27537691, -.32558569, .18544645, -.32406848, -.30411267, -.48698873, -.6811047, .25166251, -.66849482, -.49237438, .29298545, .25481961, -.34254518, .25399422, .38887795, .00874662, .0087142, -.00103607, .00871418, .00541211, .78880147, .57458812, -1.1066426, .56508469, 1.1125621, -.2651808, -.31172182, .19198616, -.31036754, -.30000467, -.07367286, -.07638552, .02255351, -.07636888, -.06255851, -.68976582, -1.1810856, .2285198, -1.1260085, -.60133857, -.44284919, -.59496177, .23586881, -.58640379, -.45227655, 1.1574275, .80210806, -.31606556, .78440858, .94608814, -.45541674, -.59502664, .09697116, -.58799469, -.34263378, -.09223334, -.09669847, .03780678, -.09666246, -.08632273, -.0124833, -.01256213, .00636916, -.01256204, -.01256773, 1.4158797, .92342387, -.46411344, .89589567, 1.229992, .97228034, .70692751, -.2229686, .69509957, .74981174, -.34006705, -.42291708, .24050992, -.41958476, -.3817368, -.26819996, -.30448753, .02667655, -.30367188, -.15656416, -.26398234, -.30512656, .08536277, -.30406224, -.22828782, -.55825751, -.82607513, .21860396, -.80530605, -.51457939, -.16766537, -.18511605, .15606077, -.18481393, -.20625453, -.01272429, -.01280849, .00828946, -.0128084, -.01389764, .3518566, .29863266, -.42628281, .29729802, .47259205, .5556532, .45481888, -.09389467, .45179348, .38704327, -.37533789, -.47597869, .20081775, -.47153154, -.38390665, -.2823153, -.33137866, .10855139, -.32996482, -.25864936, -.44365506, -.59286463, .20595612, -.58464003, -.43281123, -.19042374, -.21159373, .09372189, -.21120235, -.18942519, -.46299754, -.59724988, .06074254, -.59084525, -.29641041, -.34330638, -.42155001, .14437466, -.41860282, -.3240621, -.36794163, -.45993492, .15125125, -.45613947, -.34469021, -.25669541, -.29799002, .13410812, -.29688775, -.26047963, .15008009, .14024978, -.05537051, .14014256, .13561828, -.30648333, -.37209994, .23626267, -.36977611, -.35406223, -.05142546, -.05292612, .0545165, -.05291883, -.066065, -.03417275, -.03472592, .00845988, -.03472443, -.02703449, -.11575649, -.1223337, .02332548, -.12227146, -.08550347, .60106468, .48320686, -.12932211, .4793917, .45378319, -.4304812, -.55710014, .1186265, -.55097481, -.35294473, -.08322226, -.08720463, .07806581, -.08717289, -.10264157, -.23064543, -.26357348, .13260161, -.26279277, -.24163296, .21330742, .19475851, -.05853626, .19449012, .17464479, -.57475093, -.93020323, .55395287, -.89521359, -.71529863, .87328648, .66049213, -.10854342, .65198361, .5490969, -.22979168, -.26014119, .07675841, -.25947518, -.20088223, .28003539, .24793189, -.12181976, .24732031, .26733625, -.55613717, -.87231013, .49950373, -.8435344, -.67604799, -.29221015, -.34113387, .06326927, -.3397752, -.22107407, -.23656182, -.27398163, .22836836, -.27299935, -.29456767, -.19604252, -.21782828, .07403688, -.21742568, -.17853618, -.60083484, -.94430253, .27580695, -.91288147, -.58395826, -.00547621, -.00549046, .00166924, -.00549045, -.0046434, -.0213368, -.02153555, .00277666, -.02153524, -.01362293, .12983826, .12254873, -.03846697, .12248057, .10905388, .31152157, .27198549, -.15725302, .27115229, .31251323, -.24926324, -.28712409, .11206531, -.28616946, -.24058722, -.44366991, -.58611229, .15714355, -.57860731, -.39550214, -.27923967, -.3282771, .12752518, -.32684934, -.27093185, .29608578, .26082062, -.11793087, .26012283, .27447168, .23601646, .21220039, -.1228077, .21180075, .23917368, -.08213268, -.08616873, .10838062, -.08613569, -.11350227, .00044752, .00044743, -.0001309, .00044743, .00037429, 1.4203149, .94835746, -.21382878, .92305453, .95196682, -.09720393, -.10232543, .05039981, -.10228048, -.09838801, .06584662, .06388567, -.0200944, .06387594, .0558544, .41548604, .34920225, -.20852496, .34745044, .41600668, 1.0305757, .73735664, -.25589049, .72375941, .81610862, .00590486, .00588968, -.00088055, .00588967, .00394519, -.46055261, -.63089786, .26150477, -.62060224, -.48049555, .10013784, .09518753, -.0887687, .09514677, .12119799, .93052524, .68548374, -.19069824, .67492748, .69121158, .02028512, .02010138, -.00414368, .02010111, .01505187, 1.8098205, 1.0718835, -1.1072545, 1.0243916, 1.9357509, .8189776, .59083974, -1.1819009, .58047062, 1.1660532, -.46953787, -.63012622, .14410389, -.62112897, -.39903928, -.21602006, -.24713774, .23918854, -.24639336, -.28156986, -.03863364, -.0393815, .01520532, -.03937909, -.0356713, -.04683537, -.04784446, .00830017, -.04784083, -.03314527, 1.3220231, .88728977, -.32077514, .8642057, 1.0388901, -.24859345, -.28562577, .09940402, -.28470988, -.23074791, -.29160799, -.34358073, .10003715, -.34204517, -.25719551, -.25501821, -.29229893, .07063503, -.29139397, -.20944219, -.29785083, -.35675225, .17350525, -.3548235, -.31341041, -.0198085, -.02000469, .0086732, -.02000437, -.01895123, .09321496, .08888984, -.08523493, .08885641, .11399162, -.20218426, -.22416563, .04888082, -.22376818, -.15869176, -.73340024, -1.2432168, .12718219, -1.1873251, -.51528337, -.05938582, -.06107651, .0139319, -.06106849, -.04614614, -.27714991, -.32583833, .13577607, -.32442021, -.27527128, 1.819109, 1.1065563, -.50113102, 1.0622646, 1.4913042, .13080335, .1234575, -.03635812, .12338879, .10755313, -.24344208, -.28111843, .15508732, -.28015061, -.26391609, -.02966079, -.03009801, .01152855, -.03009694, -.0272724, -.06254188, -.06450144, .02100664, -.06449121, -.05477421, -.43209991, -.55131104, .07773608, -.54589413, -.30733144, .40490703, .34078423, -.23531005, .33910179, .42572292, -.41954719, -.53913051, .1203157, -.53352059, -.34858175, -.3628394, -.45381439, .17222083, -.4500505, -.35660015, -.38457428, -.49468597, .24817228, -.4894975, -.4187112, .03240107, .03191414, -.01011152, .03191292, .02768992, -.41006257, -.52671335, .1427386, -.52125149, -.36343262, -.67063163, -1.041895, .09911552, -1.0089364, -.4467315, -.12851451, -.13757402, .05927542, -.13746768, -.12510356, -.3719938, -.45990369, .09630487, -.45647218, -.29871009, -.40347027, -.50311655, .0668771, -.49905461, -.27923949, -.19335674, -.21772217, .21485219, -.21721188, -.25232647, .07437463, .07189301, -.02219004, .07187921, .06261512, -.03557874, -.03622088, .01592149, -.03621895, -.03428716, .20918056, .19145159, -.05255341, .19120155, .16629959, .27805743, .2480225, -.06810202, .2474832, .21918947, .18468983, .16511164, -1.4715482, .16476661, .4647615, -.2575353, -.29550811, .06952078, -.29457847, -.20970368, .01467121, .01457715, -.00238058, .01457705, .01008204, -.41285416, -.51797618, .06762362, -.5135607, -.28460373, .35563681, .3062542, -.14814418, .30511644, .33463858, -.25857056, -.2980628, .08700149, -.29706156, -.22658871, 2.3143122, 1.2965813, -.6925129, 1.2267849, 1.9502962, 1.2885501, .83343651, -1.2770734, .8076381, 1.6186371, -.12692213, -.13723212, .20535844, -.13709271, -.18773233, .26923237, .23674265, -.29097175, .23609135, .34810623, -.1644801, -.17959486, .06874828, -.17936372, -.15494332, -.12573299, -.13397529, .03906078, -.13388531, -.10728931, .32052335, .27885662, -.1631772, .27795737, .32245536, 1.2204833, .84285618, -.23326903, .82390706, .88576173, -.24900477, -.28478904, .07541898, -.28393504, -.21068907, -.40704517, -.51038658, .07434913, -.50605829, -.29098037, .21943066, .20003196, -.05533431, .19974663, .17466519, -.45510119, -.58233022, .05571458, -.57647363, -.28471145, -.81117623, -1.520445, .13085642, -1.4248404, -.55635477, -.77218206, -1.5102336, .25867285, -1.4026493, -.67567847, -.5463344, -.74681291, .06381628, -.73478848, -.33648021, -.01488634, -.01499325, .0049014, -.01499312, -.01295115, -.39951562, -.5232236, .29350692, -.51693138, -.45419111, -.59765957, -.94833892, .32290001, -.9154673, -.61329384, -.31116488, -.36913016, .08102167, -.36734095, -.25034415, -.55419425, -.77405012, .08721173, -.7598334, -.37697248, .06660237, .0644445, -.04062329, .06443285, .07116418, .37840857, .32086525, -.25307749, .31941476, .41693513, -.01836144, -.01852658, .00675922, -.01852633, -.01657983, .8405879, .62836978, -.23908668, .61958976, .69649374, -.09265738, -.09706769, .03161807, -.09703272, -.08157839, -.20843404, -.23371337, .08828977, -.23320372, -.19722376, -.22152769, -.24561922, .02358758, -.24518348, -.13228881, -.00989398, -.0099387, .00206509, -.00993866, -.00739441, .34746868, .29703509, -.29418024, .29582103, .41415058, -.48286069, -.64976738, .12240594, -.6403194, -.38502778, -.06895623, -.07133693, .02209925, -.07132323, -.05945452, .16298072, .14999578, -.20560011, .1498236, .22187512, .24080838, .22023406, -.01850433, .21994155, .12898786, -.51551132, -.72856997, .19351423, -.71423974, -.46853256, .21480614, .19587928, -.06340083, .19560181, .18019364, .08752845, .08406782, -.03029766, .08404503, .07743058, .30806368, .27219212, -.06720695, .27149809, .23365499, .94688487, .68427465, -.34730971, .67238853, .85397881, -.43233564, -.569952, .18376994, -.56276164, -.4095581, -.53267009, -.7582047, .16905304, -.7426797, -.4577797, .04102751, .0401968, -.02405138, .040194, .04326202, -.56663295, -.80273476, .09480533, -.78673008, -.39338893, -.37045646, -.48178134, .44890056, -.47628198, -.49760511, -.10084367, -.10569215, .01747511, -.10565331, -.07083518, .04704931, .04606637, -.0107544, .04606295, .0362444, .32137416, .27952841, -.16267221, .27862382, .32269216, -.31983522, -.38614446, .13531918, -.38386942, -.30251528, .17817824, .16448048, -.07009303, .1643052, .16448945, -.1103941, -.11668311, .03483861, -.11662343, -.0946951, -.00013749, -.0001375, .00007475, -.0001375, -.00014138, -.13713359, -.14713003, .04626945, -.1470087, -.12028293, -.47766001, -.68544176, .46513064, -.67076398, -.5965052, -.40203327, -.50607888, .09272902, -.50163829, -.3106394, -.28636274, -.33857538, .13562985, -.33699759, -.2812372, .18113612, .16722005, -.06103794, .16704209, .15881079, .43928596, .36876772, -.14358666, .36689253, .38125269, -.49480076, -.68495104, .18182103, -.67302608, -.44652414, -.34704893, -.41596757, .05255445, -.41370144, -.23306316, -.21356853, -.24021161, .0899185, -.23965917, -.20167459, -.03935419, -.04006861, .00747542, -.04006645, -.02850247, .92015694, .68409902, -.14473168, .6741813, .62580515, .51444621, .42340162, -.12858296, .42073645, .40828597, -.25471088, -.29339574, .09420566, -.29242042, -.2303566, -.13162226, -.14058773, .03703192, -.14048603, -.10866465, 1.5256867, .97351753, -.50109969, .941521, 1.3262588, -.25711545, -.29990523, .16870733, -.29872397, -.28149678, -.57010669, -.84199052, .17948291, -.82102463, -.48863937, -.2481663, -.27941, .02898028, -.27875625, -.15282911, -.39585463, -.49543135, .08761031, -.49129838, -.30168396, .26396598, .23625542, -.07620485, .23577178, .2198043, .20345859, .18405327, -.22285928, .18374541, .26424347, -.63319563, -1.0172999, .23504772, -.98016198, -.57335106, .09770997, .09358417, -.02358854, .09355515, .07665425, .97657256, .70907665, -.22678578, .69711179, .75628407, .62465015, .49899984, -.13068314, .49482956, .46720529, .90636958, .66285383, -.31254602, .65216034, .80078919, .4695421, .39186196, -.11990305, .38973403, .37532121, .40342544, .34071291, -.19540737, .33909737, .3991773, .13367782, .12613466, -.03201812, .12606377, .10459594, -.40380903, -.51029971, .10080706, -.50567009, -.32034971, -.0388306, -.0395016, .00540108, -.03949967, -.02534854, -.66782547, -1.0553002, .12645645, -1.019358, -.48316891, .31847072, .27670872, -.18917586, .27579959, .3372963, .07277888, .07021524, -.04413034, .07020019, .07761149, .46503517, .38825082, -.1265806, .38615148, .37971368, -.42325907, -.5547309, .18842624, -.54802331, -.40718769, .26700903, .23807593, -.09743584, .23755477, .24039949, -.51371982, -.70883681, .12629997, -.69673812, -.40547302, -.11243706, -.11977953, .09256012, -.11969968, -.13276725, -.28640328, -.33759131, .11782752, -.33607475, -.26837635, .27297517, .24431756, -.05828916, .24381737, .20556761, -.82425343, -1.4558008, .07241172, -1.3801574, -.46165774, .23197297, .21044408, -.05870715, .2101117, .18486949, .98806998, .70637739, -.36917964, .6932897, .89663231, .23381589, .21149227, -.07404639, .21113776, .20079858, -.33833613, -.40485254, .06012981, -.40268701, -.2396655, .68204589, .52634513, -.3281514, .52049998, .67335458, 1.5731096, 1.0056366, -.37080283, .97284989, 1.2243258, -.45257303, -.60588142, .18307374, -.59737163, -.42170731, .01959294, .01939979, -.0118505, .01939947, .02087638, .67430133, .52815406, -.18288737, .52293729, .5499298, -.49980304, -.70102851, .21568603, -.68783051, -.47586445, -.03464258, -.035257, .01690984, -.03525518, -.03436608, .80105849, .59930949, -.3399519, .59098201, .75844712, -.10945449, -.11524755, .02024744, -.11519648, -.07857585, .19586527, .18014534, -.05092761, .17993536, .15750683, -.59356161, -.84972679, .07853711, -.83176759, -.38107651, -.26176648, -.30059589, .06376126, -.29963959, -.20597048, -.52670437, -.7444074, .16303326, -.72976361, -.44889698, -.25229583, -.28607887, .04027129, -.28532731, -.17243096, -.54254012, -.79819515, .2514942, -.77870402, -.5290222, -.54033162, -.76807782, .14728081, -.75246839, -.44139998, -.56976056, -.84612526, .1959766, -.824468, -.50296719, .17571897, .1618744, -.10052461, .16169285, .18378634, -.01966618, -.01984563, .0044382, -.01984536, -.01508547, -.46794437, -.64572302, .2668698, -.63469658, -.48892167, .90744845, .66879756, -.22886194, .65852951, .72235247, -.19712819, -.22030293, .10889611, -.21984998, -.20378863, 1.3898858, .91141256, -.45367215, .88491521, 1.2057116, .27466983, .24204683, -.20858318, .24140311, .31572604, -.66945557, -1.0585014, .12489742, -1.0223593, -.48195777, -.0883628, -.09218563, .02068614, -.09215807, -.06861454, .25378339, .22880327, -.05290206, .22839435, .18958748, -.33129648, -.39813119, .08484429, -.39589913, -.26507092, -.6846758, -1.1753391, .24822923, -1.1200304, -.61510741, .51773831, .42045386, -.25244933, .41743344, .51342255, -.36495, -.44294497, .05775645, -.44018761, -.24871334, -.27098725, -.31689904, .12582319, -.31560895, -.26438053, .2238209, .20271648, -.09220094, .20238547, .20982418, -.3300101, -.39369167, .06458042, -.39165629, -.24139509, .23984243, .21485965, -.1510369, .21442699, .25901308, -.58287734, -.86283572, .15567784, -.84110082, -.47293745, .61384652, .48385407, -.28790581, .47931763, .60089696, -.48279673, -.65891216, .1660104, -.6484094, -.42615211, -.29051501, -.34520187, .15087778, -.34349632, -.29421455, -.35458256, -.45526794, .45161194, -.45056198, -.4842579, -.40514188, -.52326343, .18270347, -.51759809, -.39143863, .28227816, .25174487, -.0612721, .25119586, .21373835, -.0049285, -.0049399, .00134475, -.00493989, -.00402749, -.41690016, -.54134562, .16759997, -.53523816, -.38766449, .16950891, .15707999, -.06473905, .15692828, .15495078, -.01036676, -.01041726, .0027779, -.01041722, -.00842062, -.30324818, -.36382787, .16105665, -.3618242, -.30941048, .15392032, .14362663, -.05565588, .14351201, .13815851, -.29522033, -.37007469, .96310443, -.36694351, -.55165213, .05217972, .05099639, -.010079, .05099192, .03800293, -.55561286, -.79246508, .12499179, -.77605455, -.42574742, .0664843, .06432465, -.04222881, .06431296, .0720044, -.46157157, -.62567311, .20595031, -.61612713, -.4443824, -.01948926, -.01968341, .0103965, -.01968309, -.01991449, .04701158, .04605471, -.0084959, .04605146, .03348752, -.33983184, -.42133979, .21858269, -.41811148, -.36959376, -.42373944, -.55543162, .18732468, -.54870924, -.40670008, -.26879735, -.31220996, .0954347, -.31104661, -.23980712, -.16985211, -.18538364, .0511324, -.1851473, -.14342428, -.76538156, -1.4801955, .25816143, -1.3780855, -.6712626, -.20615384, -.23331385, .17956462, -.2327193, -.24805304, -.66010257, -1.0703162, .18677226, -1.0297548, -.54599468, -.46155485, -.6202997, .17067579, -.61135728, -.41739719, -.34629564, -.4234232, .11569795, -.42058323, -.30274936, 1.9389514, 1.1104311, -1.5930197, 1.0549485, 2.2880297, -.21333669, -.242139, .16379957, -.24149298, -.24612626, -.10510642, -.11071165, .02982542, -.11066186, -.08702119, -.6117049, -.89174243, .08338052, -.87097166, -.39663666, .31011561, .27181763, -.120844, .27103209, .28538695, -.36212946, -.46228943, .32447926, -.45772692, -.43986042, .15267489, .14266294, -.04883894, .14255362, .13155594, -.71536372, -1.2602705, .22012304, -1.1953498, -.60848485, -.69349745, -1.2647863, .37401124, -1.1917575, -.71121591, -.20114185, -.22287933, .048648, -.22248863, -.15789437, .00818593, .00815596, -.00158002, .00815594, .00596041, -.27911439, -.31827421, .02536087, -.31736167, -.15809551, -.06383529, -.06626514, .09420362, -.06624972, -.09156716, .29710195, .26185165, -.11004677, .26115681, .26882693, .06272224, .06087881, -.02618575, .06086978, .05906263, .28103164, .25195927, -.03951707, .25145921, .18412315, .32293377, .28161776, -.12886881, .28074006, .29954926, -.04032292, -.04122905, .03967449, -.04122566, -.0505299, .55452718, .45644487, -.07007543, .45357528, .35060153, -.57105625, -.87833166, .31484532, -.85177237, -.58996784, -.47576149, -.66833331, .32920971, -.65563788, -.53018455, -.31204797, -.37164481, .09411346, -.36975933, -.26365832, -.71218064, -1.169247, .11644927, -1.1226855, -.49066193, -.47393724, -.63823842, .14448975, -.62891155, -.40188602, .85134458, .61467274, -.84160252, .60393653, 1.0685198, .2930939, .25736519, -.16470283, .25664173, .30472976, -.28096243, -.32780374, .08403295, -.32650837, -.23673295, .17636294, .16247957, -.09677612, .16229766, .18191602, -.55304167, -.79089422, .13581671, -.77427408, -.43634798, .29560585, .2614625, -.0856697, .2608072, .24646831, .71711943, .55042914, -.27892472, .544061, .65952814, .45420572, .37979882, -.13932181, .37778024, .3859385, -.21270616, -.23893976, .08520051, -.23840197, -.19755018, -.32082581, -.38921207, .15911656, -.38680062, -.31995924, .14448218, .13517863, -.06333295, .13507888, .13828107, -.54260781, -.83635851, .48731543, -.81082247, -.65958496, -.38975271, -.48967674, .11197595, -.4854512, -.32402437, .37023932, .3182899, -.12073292, .31708058, .32107532, -.18500597, -.20527146, .1053769, -.20490228, -.19321861, -.55421986, -.81212618, .19929405, -.79269647, -.49654983, -.67388566, -1.107452, .18308313, -1.0631829, -.54989982, -.55371898, -.78864307, .12530861, -.77244018, -.42513798, -.79523549, -1.5748272, .22103194, -1.4586535, -.65387116, -.03865596, -.03944844, .02498407, -.03944573, -.04210904, .47907012, .39687889, -.15691782, .39454529, .4160704, .27169184, .24131765, -.11841986, .24075329, .25953898, .95433089, .67386839, -.76430692, .66045863, 1.1166025, -.16884494, -.18472779, .06701134, -.18447918, -.15633329, -.58048226, -.90027987, .30768568, -.87201929, -.59188645, .09702386, .09255906, -.05712252, .09252484, .1024546, -.09443758, -.09917476, .04213729, -.09913517, -.09092056, .1002742, .0954982, -.06121954, .0954603, .10717648, .46457249, .38602337, -.16876349, .383825, .41764295, -.52327451, -.73053254, .1368673, -.71715104, -.42162817, -.17938365, -.19985912, .18494243, -.1994705, -.22832007, .0704082, .06802469, -.03945309, .06801125, .07313397, .46637499, .39102241, -.09593579, .38900583, .34686492, 2.2831696, 1.2679097, -.97165757, 1.1976462, 2.1637472, .16763493, .15594166, -.04285017, .15580586, .13404085, .38504135, .33230165, -.06731415, .33110289, .27125872, -.03192792, -.03249649, .03365936, -.03249481, -.04094105, .40354763, .34531342, -.08321158, .34391962, .30037777, -.25298261, -.29074769, .08774405, -.28981173, -.22394584, -.29640711, -.35472974, .17429654, -.35282939, -.31287102, -.25858823, -.29943226, .11084943, -.29836165, -.24565579, 1.6440042, 1.0388676, -.36960944, 1.0032659, 1.2594849, .01411087, .01401799, -.00412915, .01401789, .01180319, -.29628554, -.35629179, .21293068, -.35428001, -.33437185, -.44348277, -.58416217, .14689832, -.57683638, -.38660438, -.49725279, -.69591546, .21562404, -.68298171, -.4741989, .40373151, .34334675, -.12464552, .34184937, .34379322, -.32419631, -.39015905, .10692326, -.38793747, -.28221024, -.2352134, -.26889074, .11577911, -.26808997, -.23398864, .22479707, .2035298, -.09219838, .20319513, .21043188, -.37924183, -.46888179, .0826318, -.46538209, -.28752121, .04450384, .04354595, -.0221385, .04354251, .0444281, -.26490466, -.30975349, .15010926, -.30849416, -.27618848, -.24704163, -.28358762, .09933805, -.28268997, -.22973578, .0313423, .03087196, -.01301685, .03087078, .02946225, .16039389, .14846934, -.11584567, .14832176, .1813128, .39469993, .34213706, -.04033536, .34097517, .23249663, .00097178, .00097136, -.00017334, .00097136, .00068922, -.73712058, -1.3740473, .27048396, -1.2890906, -.66488959, .04697925, .04595206, -.01661782, .04594831, .0418606, 1.0069131, .70432784, -.69585313, .68955374, 1.1216151, -.19507028, -.2158063, .05472894, -.21543967, -.1608952, -.5307784, -.74514525, .1355714, -.73104293, -.42430177, -.38706565, -.4910044, .15845866, -.48640487, -.36210824, .50030571, .40543876, -.37112231, .40246703, .57060993, .45510098, .37989814, -.15183835, .37784045, .39768787, .18191051, .1664679, -.16334546, .16624975, .22111467, .43450774, .36581801, -.13111312, .36401887, .36718962, -.43012689, -.58741161, .42400243, -.57800973, -.5393415, .41487081, .35305325, -.09603176, .35152603, .32093978, -.48219771, -.63422421, .07253155, -.62635458, -.32309909, -.2116386, -.23718223, .07532369, -.23666973, -.18896605, -.20662098, -.23126894, .08351743, -.23078014, -.19247987, .10914574, .10398608, -.02889256, .10394545, .08829644, -.79287517, -1.4584816, .13679515, -1.3719497, -.55612204, -.38544108, -.5007257, .31775297, -.4950568, -.45534986, .85446108, .62898569, -.38836301, .61925316, .82772132, -.23429899, -.26513387, .0639893, -.26445959, -.19152526, -.61137671, -.92184413, .13907551, -.89643443, -.47021825, -.44567629, -.61384907, .37975934, -.60348654, -.53234418, -.33107748, -.40075158, .11352917, -.39832555, -.29196598, -.05769032, -.05933543, .01781526, -.05932762, -.04912954, .48038593, .3914733, -.38220613, .38875341, .56083624, 1.5607517, .97473808, -.79440657, .93964577, 1.57005, -.46211161, -.61760459, .14906972, -.60902956, -.39930467, -.16693896, -.18823996, .7643983, -.18778827, -.34926498, -.02861234, -.02902708, .01326052, -.02902608, -.02789754, -.44776451, -.56447321, .04096984, -.55945726, -.25421307, .71796375, .54719255, -.37553979, .54052169, .72883686, -.3381459, -.41177679, .12047936, -.40912526, -.30203015, .28135613, .24837388, -.14928807, .24773149, .28698285, -.07450749, -.0774421, .03656232, -.07742284, -.07404366, .22981909, .20861652, -.05946391, .20829112, .18450943, .21651875, .19623524, -.11233909, .19591916, .2192051, .35450331, .30766748, -.08719146, .30664031, .27984325, -.28768706, -.33654921, .07936459, -.33517283, -.23595679, -.21308212, -.24374959, .26516187, -.24301661, -.28876532, -.22045538, -.25038035, .13113803, -.24970553, -.23359669, -.35033088, -.42664505, .09100318, -.42389582, -.28163144, .40066749, .33973627, -.16029453, .3382003, .37196804, -.53478631, -.750588, .12707463, -.73640291, -.41733339, 1.5182092, .98331944, -.32964134, .95306749, 1.1496835, .12071306, .11451876, -.0286122, .11446581, .09412318, -.5278798, -.72723082, .0984675, -.71493766, -.38001231, -.15113552, -.1647059, .11267369, -.16450312, -.17266138, .43814029, .3651026, -.22810829, .36308682, .44408471, .22195374, .20053065, -.12584989, .20018673, .23145643, -.08587505, -.09002097, .06542431, -.08998762, -.09881762, -.4150392, -.52973121, .1083907, -.52451128, -.3342464, -.18745209, -.21157255, .32214316, -.21105678, -.28289145, .3139836, .27330586, -.18531653, .27243091, .33183284, -.55439278, -.78393005, .10918544, -.76846502, -.40639025, -.17200928, -.1904243, .15818232, -.1900964, -.21074821, .1193529, .11320535, -.03249434, .11315261, .09746183, .8489274, .63186865, -.26325452, .62277833, .72396179, -.7463687, -1.4410382, .31228717, -1.3421037, -.70333731, .16040263, .1498098, -.03528531, .14969332, .12199695, -.13309942, -.14242628, .04265966, -.14231745, -.11476247, -.33564918, -.41114434, .15851291, -.40833741, -.3293229, -.57516097, -.82379133, .10189629, -.80633307, -.40699498, 1.9283559, 1.0953586, -2.0707035, 1.0390683, 2.487945, -.50510217, -.72836955, .32299386, -.71235445, -.5482697, -.07564846, -.07868182, .03768843, -.07866156, -.07555782, -.45992691, -.63164958, .27849917, -.62117591, -.490242, -.08926896, -.09371519, .06229344, -.0936783, -.0997603, .40149657, .33357001, -.54631879, .33166777, .5605486, .31817766, .28187554, -.0416558, .28118725, .20355493, .0714031, .0690895, -.02329649, .06907701, .06193244, .01487609, .0147739, -.00399054, .01477378, .01208778, -.64250012, -.99031771, .12607992, -.96008254, -.47040737, -.44938868, -.61231852, .28473992, -.60265935, -.48630366, -.02857917, -.02899295, .01324853, -.02899195, -.02786756, -.32723235, -.38792416, .05253607, -.38605889, -.22407841, -.23049008, -.26139683, .08387148, -.2607083, -.20732401, .02034739, .02014464, -.00965928, .02014431, .0199985, .16228071, .15160581, -.03091546, .15148889, .11764672, -.44013133, -.57620864, .1340597, -.56929752, -.37310489, -.67392705, -1.1627933, .29520191, -1.1070738, -.64484942, .12211996, .11635374, -.01163097, .11630838, .07026512, .73267565, .57461918, -.08861483, .56900298, .45651317, .20424855, .18696722, -.06249721, .18672391, .17340816, -.47129773, -.62648378, .11234339, -.61810387, -.36817651, -.29860653, -.35164583, .08079693, -.35008403, -.24333682, -.21556065, -.24278656, .09161459, -.24221506, -.20419473, -.51458917, -.73255356, .22330137, -.71754403, -.4908486, -.10226342, -.10752412, .02751104, -.10747904, -.08317495, -.40297264, -.51423312, .13650671, -.5091737, -.35392538, .14037235, .12878312, -.97673804, .12862389, .33764248, .25369103, .22958608, -.03666321, .22920511, .16773495, -.18176296, -.1998888, .05867076, -.19958808, -.15709203, 2.6324636, 1.4174223, -.68768306, 1.330773, 2.1202205, .58834522, .47112941, -.18710233, .46727544, .50596975, .03624121, .03565592, -.00801153, .03565435, .02760898, -.41267811, -.56402326, .60021257, -.55495088, -.58909587, .19496184, .17785134, -.13216935, .17760148, .21578438, -.41292923, -.5134589, .05065796, -.50941832, -.25850939, -.14911381, -.16095503, .04718856, -.16079849, -.12802678, -.65109408, -1.0373099, .17069642, -1.0007378, -.52502579, -.3148101, -.37004318, .04855218, -.3684365, -.21270548, -.47336597, -.7393653, 1.7208247, -.71541858, -.91703708, -.67644548, -1.0496617, .09109062, -1.0166348, -.43684069, -.08417269, -.08763556, .01993774, -.08761182, -.06561696, .53337724, .44236198, -.06233408, .43979156, .32855507, -.22685081, -.2545495, .04718868, -.25398732, -.16934907, -.44340949, -.56335271, .05592508, -.55800675, -.28016606, -.05488186, -.05637341, .0175327, -.05636666, -.04726926, 2.4118393, 1.3067879, -1.1813467, 1.2284419, 2.3953447, -.27912404, -.32391867, .06743894, -.32272583, -.21903411, -.16399678, -.1790167, .06855064, -.17878778, -.15449131, .3684578, .31069431, -.44509544, .30919378, .49440883, -.20177726, -.22252927, .0323358, -.22217424, -.13808697, -.24144046, -.27291117, .04683885, -.27222954, -.17609706, .08488658, .08138022, -.05886781, .08135609, .09466628, -.41163198, -.53121895, .1574401, -.52550326, -.37646203, -.27044505, -.31588476, .12050904, -.31461843, -.26025708, .54361565, .44949553, -.06363569, .44679912, .33504634, -.07609006, -.07890912, .01836399, -.07889172, -.05968762, -.42941341, -.55344993, .10837757, -.54755483, -.34190612, -.29898625, -.36363006, .30759952, -.36131838, -.38028223, -.5437877, -.77611569, .15019369, -.75998426, -.44618347, .29246074, .25673817, -.17125863, .25601341, .30827564, -.44169266, -.6107842, .44160929, -.60021904, -.55646287, -.31832995, -.38001544, .08867623, -.37803567, -.26193733, -.42639324, -.55165045, .12705299, -.54559852, -.35882153, -.22168002, -.24825043, .04932021, -.24772101, -.16923986, -.6888711, -1.191829, .25390767, -1.1341642, -.62229157, -.25067882, -.29078606, .15589837, -.28972126, -.26958907, 3.265403, 1.5807553, -1.6408632, 1.4501572, 3.2708351, .56486373, .45419056, -.21051909, .45061071, .51215681, -.37352746, -.47202432, .18797241, -.46774257, -.37433152, -.27755529, -.32002637, .05003166, -.31894761, -.19754133, -.49857145, -.67428638, .10578841, -.66415091, -.37466314, .28115665, .24908246, -.11190598, .24847442, .26057136, .1589048, .14792772, -.05963129, .14780147, .14440849, -.47405353, -.64409933, .17490553, -.63412198, -.42838024, -.13721991, -.14771917, .06807197, -.14758543, -.13686031, .6298221, .49558253, -.25459055, .4908683, .58672693, .71120398, .53979997, -.48343931, .53301877, .78786796, .34151436, .29531036, -.15310071, .29427292, .32931262, -.05270446, -.05400628, .01059308, -.05400092, -.03889696, -.40095972, -.51656558, .18547566, -.51108099, -.39069645, -.4825293, -.64925046, .12278168, -.63981687, -.38524497, -.40415788, -.51307116, .11465483, -.50823475, -.3345863, -.51995196, -.73782877, .19427069, -.72297937, -.47183255, -.2727901, -.31298492, .04365442, -.31200154, -.18659721, -.61114354, -.93441405, .16903524, -.90691829, -.50168514, -.05718684, -.05888843, .02756893, -.05887999, -.05649552, .19846387, .18235099, -.05154158, .18213327, .15953289, .27316878, .24263868, -.11302719, .24207159, .25646318, .79524934, .61537976, -.08505513, .60868768, .47560424, -.64619972, -1.1533024, .5537232, -1.0912406, -.77330725, -.06110944, -.06323229, .06123938, -.06322, -.0770476, -.25456872, -.29095935, .06078663, -.29009543, -.19898304, .80642094, .60885258, -.22094136, .60091152, .65989809, -.07770532, -.08078349, .02742688, -.08076317, -.06918882, -.39200663, -.50803439, .26059399, -.50238694, -.43104943, -.41608515, -.54343058, .19780547, -.53702654, -.4091453, .01959221, .01939402, -.01500015, .01939369, .02258209, -.4843194, -.70996538, .58947512, -.69294681, -.65150797, .27704727, .24549705, -.12354784, .24489998, .26668032, -.18512321, -.20297368, .03896519, -.2026873, -.1387425, -.58340675, -.95305195, .54431923, -.91584025, -.71824982, -.05064422, -.0519641, .02320251, -.05195837, -.04918978, -.10498592, -.11048641, .02597161, -.1104384, -.08303547, .03076093, .03037519, -.0029039, .03037439, .01764697, -.27453419, -.320173, .09908578, -.31891446, -.24626994, -.6515159, -1.0879259, .28282864, -1.0416812, -.62153817, 1.1185769, .77445081, -.42916624, .75727466, 1.0240687, -.29643247, -.34584272, .05465022, -.34447659, -.2125647, -.43005446, -.56105373, .14764261, -.55449628, -.37939902, 1.3035537, .86413849, -.53615763, .84026778, 1.2214062, -.00727818, -.00730541, .00444327, -.0073054, -.00777904, .50568017, .42080919, -.07849208, .41845109, .34240169, .13657359, .12810776, -.06811048, .12802037, .13645594, .27213105, .24419565, -.04711691, .24371883, .1910972, -.14401073, -.15511006, .04904375, -.15496764, -.12670714, -.37686308, -.47572429, .16942939, -.47144855, -.36374355, .49380072, .4177612, -.03477605, .41582054, .25692392, -.28516746, -.33369409, .08630964, -.33232458, -.24122913, .97391875, .69658602, -.40726979, .6837152, .91759819, -.21114652, -.23343958, .02756059, -.23304809, -.13494666, -.29165038, -.34397952, .10471634, -.34242316, -.26116993, -.58799905, -.82637479, .06098265, -.81063597, -.34806726, -.35016862, -.43149749, .13948816, -.4283766, -.32461899, -.24855748, -.28638194, .11620649, -.28542645, -.24305507, -.200873, -.22581347, .1416515, -.22529878, -.22526727, -.34760689, -.43057069, .17667238, -.42730057, -.34950909, .27784106, .24623086, -.11950815, .24563322, .26424501, -.46968014, -.63421204, .16478695, -.62477722, -.41736792, -.42899731, -.5617414, .16536614, -.55499416, -.39336457, 1.4741272, .92062396, -1.2549725, .88747771, 1.7602649, -.71867437, -1.3147704, .28797293, -1.238103, -.66754723, -.23630516, -.26771612, .06438934, -.26702239, -.19301755, -.69865357, -1.095912, .08057587, -1.0597512, -.42846917, -.20400243, -.22783466, .07890274, -.22737177, -.18726829, -.43507294, -.57736139, .2047588, -.5697285, -.42638205, .15163145, .14294262, -.01358769, .1428597, .08549054, -.18178759, -.20127684, .10274721, -.20092933, -.18936927, -.03970462, -.04048841, .01449916, -.04048583, -.03575622, .82309233, .62042315, -.20085387, .61223751, .64804093, -.08206623, -.08566274, .04166731, -.08563648, -.08248687, .23351298, .2094973, -.16347416, .20908661, .26123642, .15860602, .14748292, -.07042477, .14735304, .15245146, 1.6272688, 1.0189635, -.52624399, .98267852, 1.4072738, -.22717082, -.25504722, .04845067, -.25447862, -.17100611, .28653685, .25667722, -.036564, .25615987, .18175299, -.06460075, -.06706285, .08656299, -.06704721, -.08973168, -.62309338, -.94821141, .13582043, -.92091239, -.47246227, .80073602, .61230895, -.13591818, .60502432, .55859291, .54252045, .43717936, -.26000679, .43380193, .53491195, .10315753, .09825575, -.04769827, .09821694, .10050281, .24287792, .21804105, -.11237509, .21761873, .23667845, -.60679496, -1.017633, .52159417, -.97366697, -.72691264, -.51011918, -.72644897, .24094299, -.71153491, -.50052894, -.43564899, -.5752175, .17956829, -.56787922, -.40848649, .92055114, .68129428, -.17295236, .67111579, .66427938, -.25796805, -.29608321, .06963428, -.29514817, -.21005272, -.25954779, -.30800237, .3510023, -.30650352, -.3616248, -.59309259, -.91584086, .24492653, -.88764721, -.55646383, -.32028489, -.39380116, .26357164, -.39101263, -.37815269, -.40280123, -.51869574, .17653327, -.51320867, -.38548964, .84240279, .63857918, -.1315783, .63048471, .57159, -.28482944, -.33538536, .11730721, -.33389774, -.26699809, -.26469685, -.29909258, .02193167, -.29834988, -.14538951, -.16829622, -.18504933, .10711601, -.18477188, -.18239421, -.68122663, -1.181775, .28440964, -1.124054, -.64148403, -.04533664, -.04639939, .02243329, -.04639524, -.04517941, .29240118, .25983222, -.06324136, .25922929, .22113788, .46460339, .386555, -.15627043, .3843845, .40709007, -.03342123, -.03395251, .00861708, -.0339511, -.02680063, -.58233764, -.97883278, .74133018, -.93618291, -.79517698, -.3064705, -.37392751, .28431409, -.37147234, -.37658982, -.04459337, -.04551063, .0082021, -.04550749, -.03195203, -.36942726, -.4525769, .07394099, -.44948329, -.27226451, .48085019, .38595972, -.834553, .38286876, .72806111, -.54557937, -.75687435, .0868044, -.74352401, -.37247392, .48304522, .39320996, -.38772464, .39044886, .56560034, -.24937674, -.28868329, .14594659, -.28765513, -.26281205, -.18936532, -.21054859, .10276849, -.21015454, -.19460932, -.39239613, -.49923999, .15489548, -.49444712, -.36266534, .64937485, .51498667, -.13699943, .51040089, .48705713, -.4322005, -.56615195, .15731694, -.55933261, -.38879918, -.20355937, -.22802606, .09965492, -.2275372, -.20213289, -.21615618, -.24310274, .08121952, -.24254441, -.19652082, .07510881, .07273854, -.01211125, .07272608, .05150708, -.71129699, -1.2136775, .17291108, -1.1577944, -.55930871, .6737645, .53227367, -.12282293, .52737612, .48132885, -.29373897, -.34934204, .14356277, -.34759832, -.29151774, -.42744692, -.5608199, .1788832, -.55398534, -.40282955, -.39712056, -.52312548, .35588397, -.51656221, -.48238566, -.23751271, -.27111622, .09811775, -.27032661, -.22286939, -.03277917, -.03329781, .00965973, -.03329644, -.02748297, .26410406, .23514991, -.12046309, .23462228, .25614038, -.03434575, -.03491003, .00925617, -.03490848, -.02795133, .13494873, .12713604, -.0381914, .12706071, .11162918, .13203413, .124881, -.02372015, .12481645, .09386563, -.04551417, -.04654707, .0164027, -.04654316, -.04080809, -.05219991, -.05359129, .02212956, -.05358511, -.04940612, -.30252488, -.36302665, .16540026, -.36102338, -.3116708, -.51426378, -.75157197, .34771465, -.73383667, -.56868916, -.29887443, -.35190646, .0796393, -.35034647, -.24231389, -.09053879, -.09499873, .05072437, -.09496213, -.09403843, -.0300005, -.03044045, .01005493, -.03043937, -.02625561, 1.6115429, 1.0243185, -.36370126, .99008196, 1.2361927, -.156591, -.16938555, .0400831, -.16921153, -.12526843, 1.811829, 1.0941374, -.63649492, 1.0490886, 1.610719, -.49368734, -.6757864, .14772967, -.66480961, -.41603886, -.02370091, -.02395868, .00473214, -.02395822, -.0174531, .04561786, .04461905, -.02129833, .0446154, .04458771, -.26417627, -.30595708, .09429969, -.30486051, -.23610723, -.0931778, -.09753532, .02606962, -.09750137, -.07678267, .28507257, .25241947, -.1046605, .25179795, .25718239, .28034666, .24551492, -.28948403, .24479617, .35701116, .53782825, .44234603, -.09356962, .4395423, .37828346, -.61897765, -.97253054, .21661137, -.94021132, -.54956668, .78421678, .60406353, -.11669902, .5972591, .52358816, -.03882953, -.03957842, .01413856, -.03957601, -.03493439, -.06523687, -.06717864, .00964069, -.06716901, -.04345517, -.21282534, -.23992597, .1078811, -.23935247, -.21379982, .90192707, .66502038, -.23618664, .65483939, .72701392, .38244456, .3281245, -.1068623, .32684464, .31501446, .18015634, .16623594, -.06756239, .1660569, .16368593, -.36356599, -.4638294, .30871312, -.45927525, -.43376103, -.09210566, -.09668124, .04745514, -.09664337, -.0930312, .17131159, .15900884, -.04825369, .15886175, .1414853, .49760355, .41055199, -.14611893, .40803251, .41671053, -.26615826, -.30743391, .07708907, -.3063715, -.22187118, -.3927741, -.49119506, .09098666, -.48712552, -.30392363, -.09436583, -.09907181, .04037083, -.09903271, -.08958647, -.46225941, -.62276812, .17801784, -.61364244, -.42372915, -.68894344, -1.1023655, .11421352, -1.0627932, -.47683876, .54551863, .44161588, -.1962092, .43834684, .4887906, -.45635762, -.61845001, .2243287, -.60902965, -.45377631, .51392807, .42380904, -.11608231, .42119474, .39433643, -.49514556, -.65991554, .08047553, -.6509263, -.3404499, -.4747132, -.64891854, .19645604, -.63846945, -.4457103, -.26195285, -.29994651, .05379271, -.29903144, -.19471522, -.6243963, -.99875786, .24995553, -.96295355, -.57979055, -.40910507, -.53396084, .22267832, -.52769928, -.4208486, -.2342998, -.26726459, .10501295, -.26649427, -.22591179, 2.4407724, 1.317305, -1.1861326, 1.237361, 2.4177196, .48137182, .39179562, -.40147968, .38904091, .57088894, .88347144, .63016669, -.98224625, .61833459, 1.1531305, -.37748634, -.47241194, .12786077, -.46847326, -.33153033, .6029886, .47870953, -.23536225, .4744856, .55521561, .25692875, .2299286, -.09565444, .22945687, .23287356, -.02006736, -.02023643, .00185917, -.02023619, -.01144046, -.10153493, -.10651411, .01952647, -.10647343, -.07384054, 1.0620669, .75307903, -.27944874, .73844545, .85745625, .30155225, .26708188, -.06531001, .2664271, .22816287, .17414172, .16255392, -.01972152, .16242552, .10615131, .04052029, .03973302, -.01811988, .03973047, .03904003, .0995454, .09467985, -.08338736, .09464023, .11822905, -.1098009, -.11547485, .01617159, -.11542601, -.0730575, -.44427463, -.6062158, .32152264, -.59656536, -.50255261, -.33979962, -.40986904, .08038145, -.40747774, -.26477513, -.6619722, -.98266748, .05866829, -.95756575, -.37185274, .04999817, .04877268, -.02928264, .04876768, .05270472, -.1508781, -.16430411, .10638183, -.16410528, -.16919335, .43989814, .37692724, -.0381013, .37543202, .24522121, .33284499, .28780745, -.18836734, .28679605, .34687517, .19602769, .18000773, -.06084173, .17978985, .16722023, -.4337603, -.57396928, .19590909, -.56653304, -.41930309, .00823044, .00819827, -.00273524, .00819824, .00718275, .89286471, .65491122, -.31419723, .64454243, .79420855, -.485029, -.66434467, .17236992, -.6535117, -.43285486, -.19591362, -.22008743, .16508003, -.21959164, -.23314061, .29846968, .2648503, -.06051499, .26422096, .22091802, -.51177164, -.7090097, .14101934, -.69660593, -.4195854, -.08107079, -.08478746, .06715827, -.08475907, -.09592963, -.51330833, -.7044032, .11384153, -.6927808, -.39146756, -.28434784, -.34314381, .3405642, -.34113181, -.38046054, -.22041142, -.25004037, .12217904, -.24937866, -.22812084, -.28288225, -.33456338, .15166649, -.33299857, -.28954118, -.38045734, -.48755831, .24374344, -.48259472, -.41322979, .02184406, .02163048, -.00460415, .02163014, .0163788, .55876591, .45226093, -.16342586, .44890758, .46730833, -.08268958, -.08625577, .03425598, -.08623014, -.07766451, -.24595302, -.28107306, .07941274, -.28024022, -.21258935, -.20771709, -.23236015, .07678811, -.23187411, -.18782618, .07956144, .07648132, -.05316748, .07646146, .08763827, -.11617647, -.12358576, .05869661, -.12350707, -.11658064, .69686488, .5196206, -1.1872426, .51223505, 1.0486298, -.58188967, -.86594781, .17081948, -.84355226, -.48724743, 2.0124807, 1.144415, -1.4286583, 1.0858262, 2.2619028, .59690036, .47855196, -.15696886, .47467906, .4818173, .36272796, .31308576, -.1075188, .31195833, .30471383, .03595038, .03534871, -.01187403, .03534703, .03130966, -.22580188, -.25143769, .02816139, -.25095373, -.14213895, -.38006128, -.47956806, .15642695, -.47527259, -.356191, 1.1166041, .76410384, -.64917324, .74608095, 1.1741665, .20199822, .18591811, -.03661377, .18570506, .14403118, -.32867868, -.4062999, .25813875, -.40327202, -.38206925, .05677936, .0553442, -.01411033, .05533815, .04497619, -.36806787, -.454488, .1005, -.45113609, -.30085043, -.53506292, -.79438171, .32265847, -.77407627, -.56954441, .19071785, .17381953, -.17391407, .17357042, .23301424, -.51589241, -.74151215, .25824814, -.72549233, -.51609362, -.03413597, -.03468197, .00768145, -.03468051, -.02615969, .08910428, .08519312, -.07159331, .08516452, .1043678, .35987379, .30913411, -.16000503, .30794728, .34606262, .18489821, .17040005, -.06371003, .17021083, .16331813, 1.3405019, .88402, -.50635538, .8589904, 1.2208813, -.46237474, -.60429991, .08655541, -.59714239, -.3332505, .4514692, .38508298, -.04198612, .38346423, .25770965, .41235874, .34998624, -.11971637, .34842228, .34401548, -.30686678, -.36928716, .16563904, -.36718543, -.31479717, 1.0163954, .70515236, -.86009015, .68968476, 1.2112481, -.24796447, -.28380914, .0814219, -.28294869, -.21553446, .24538016, .22206756, -.04780098, .22169915, .17921812, -.4291345, -.58654611, .43946985, -.57710826, -.54498178, -.39186361, -.51057574, .30062526, -.5046651, -.45196879, .79404903, .60254896, -.2020656, .59496774, .6339753, -.36717171, -.44859111, .07036081, -.44560604, -.26670618, -.62796841, -.97958516, .17653188, -.94803646, -.51829408, -.40685157, -.52591145, .18066974, -.52018042, -.39107718, .31378064, .2751345, -.1068019, .27434394, .27602839, -.5145653, -.72052957, .16563167, -.70709631, -.44430867, -.44366138, -.57130426, .08146556, -.56526133, -.31771357, -.09743412, -.10210125, .02230239, -.102064, -.0750933, -.67463913, -1.1652336, .2955002, -1.1091912, -.64552085, -.0532977, -.05477754, .02666406, -.0547707, -.05330784, .01125144, .0111872, -.0069488, .01118714, .01207217, 1.0424593, .7658664, -.08546767, .75386482, .57058019, -.23966601, -.27400878, .10024656, -.27319153, -.22582436, -.15102731, -.16293533, .04024455, -.16277902, -.12244734, .10883711, .10360373, -.03484788, .10356181, .09381093, -.63749651, -1.0657947, .34067459, -1.0202847, -.65179114, .21462438, .19252866, -.32449832, .19215043, .31036079, .28543484, .25359926, -.07780585, .25300912, .23317684, .60037273, .47535329, -.27759935, .47106133, .58492043, -.64629577, -1.0650438, .26333326, -1.0220094, -.6036698, -.24043518, -.272045, .05163505, -.27135449, -.18140818, -.43766527, -.5607036, .07881634, -.55500896, -.31139393, -.10886067, -.1144656, .01680504, -.11441753, -.07357617, -.21659505, -.24163923, .04517702, -.24115776, -.16183839, .24558099, .21864978, -.21619087, .21815888, .29654159, .87538756, .6420736, -.36843874, .63190621, .82654279, .03268513, .03214741, -.02171152, .03214594, .03593136, -.33085539, -.39571874, .07053734, -.39361288, -.24902435, -.54252751, -.80913275, .30893409, -.78798062, -.56656071, -.29883582, -.34835188, .04910994, -.34699085, -.20623145, .82533579, .60997673, -.43779671, .60078017, .84175935, -.08115594, -.08467064, .04121902, -.08464528, -.08158108, -.30067698, -.35725161, .11424508, -.35548796, -.27438221, .06741546, .06518607, -.04474214, .06517379, .07408926, 1.003046, .72197825, -.25434616, .70913157, .79989373, -.58070163, -.84229962, .11654776, -.82319219, -.42836436, .75923582, .58481682, -.15124806, .5782288, .55867306, .0059764, .0059584, -.00334034, .00595839, .0062025, -.53090015, -.75600972, .17492552, -.74049255, -.46199395, -.22335222, -.25544049, .17958825, -.25467492, -.26167535, -.22948451, -.25824195, .05233589, -.25764301, -.17664938, .30963181, .27345875, -.06687207, .27275659, .23405719, 1.0611246, .74180213, -.46722051, .72619033, 1.0170951, -.29408863, -.34962585, .13988706, -.34788828, -.28923754, -.25860882, -.30081882, .14020602, -.29967581, -.26568138, -.22592201, -.25446235, .06302462, -.25386314, -.18598836, -.3826994, -.47233224, .07239276, -.4688642, -.27678777, .01947673, .01928047, -.01518198, .01928014, .02258379, -.38497259, -.48883332, .17038615, -.48421616, -.36963631, -.08148694, -.08518986, .05985012, -.08516183, -.09263114, -.04295891, -.04403539, .06160084, -.0440309, -.06103436, -.01471251, -.0148122, .00320525, -.01481209, -.01115378, .71449982, .53710627, -.69745866, .52988413, .89299886, .08013108, .07729919, -.02108105, .07728251, .06469063, .5593455, .44200533, -.53719308, .43794786, .69530214, -.29161723, -.34587494, .13500442, -.34420219, -.28422882, -.3444663, -.41820437, .09269602, -.41559328, -.28019574, .81332359, .62275131, -.11332632, .61541416, .53124621, -.23053501, -.26431372, .16104974, -.2634919, -.25772384, -.61349953, -.9545587, .20593769, -.92416238, -.53719435, .9104401, .6520594, -.66452249, .64010651, 1.032795, -.05516897, -.05661534, .01231837, -.05660902, -.04216878, -.56883995, -.87662871, .33321132, -.84988566, -.59966676, -.36478423, -.45367681, .13740888, -.45010064, -.33192424, -.1586423, -.17112781, .02675512, -.17096423, -.11043115, -.38205142, -.4887402, .22432994, -.48383445, -.40307602, .49535731, .41246085, -.08944291, .41016421, .35275325, -.06313745, -.06522226, .03054947, -.06521079, -.0624505, .34982979, .30320269, -.10692491, .30217114, .29689815, -.67251333, -1.1316017, .2367678, -1.0821006, -.59829882, -.59172716, -.97634716, .54039043, -.93670332, -.72331402, 1.8266434, 1.0903129, -.82764403, 1.0433883, 1.7676396, -.24588016, -.28664541, .23477248, -.28552426, -.3050526, -.5845798, -.88896881, .22408002, -.86346038, -.53502439, .13148771, .12328602, -.09816614, .12320082, .15028675, 2.4346548, 1.3699725, -.41157278, 1.2972916, 1.6960962, .36246503, .31062852, -.17737731, .30939885, .35987645, 1.3994869, .91006275, -.55827647, .88256762, 1.2979929, -.45624974, -.60016264, .1132157, -.59270962, -.36122736, -.25496413, -.29439606, .10658785, -.29338385, -.24019574, -.05767819, -.05933659, .01916141, -.05932864, -.05032999, -.80431809, -1.602386, .2093638, -1.4822075, -.64703695, 1.5617118, 1.0233385, -.18272086, .99348606, .96236533, -.70968552, -1.3600232, .44467442, -1.2686575, -.76512902, .64399969, .50980783, -.15969945, .50519804, .50976292, -.42577082, -.56001156, .19633848, -.55306239, -.4144407, .19852298, .18141046, -.09500672, .18116502, .19564494, -.01755235, -.01770992, .00953801, -.01770969, -.01804622, .71490024, .54777169, -.30852084, .54135133, .68066767, .25055792, .22421576, -.11747822, .22375532, .24524559, .7455487, .56404977, -.37980282, .55679912, .7502052, -.46599585, -.64242384, .27075063, -.63151757, -.48991551, 1.2948213, .83888233, -1.1669167, .81310832, 1.5757834, .37068888, .31372161, -.33695531, .31227059, .45241863, -.40780079, -.51476393, .09005722, -.51013837, -.31056193, .04838708, .04727737, -.02046467, .04727313, .04576124, -.65958483, -1.0877235, .22545378, -1.04365, -.5810448, -.41448109, -.51966116, .06413362, -.51525789, -.28035506, -.53221661, -.77934505, .27260226, -.76076586, -.53651117, .37895608, .32426337, -.13780978, .32295415, .34079714, -.35423027, -.44100622, .17977977, -.4374971, -.35599786, .43251987, .36024553, -.26019905, .35824609, .46002624, -.1780144, -.19759107, .14782681, -.19723303, -.21081321, -.00010377, -.00010378, .00002836, -.00010378, -.00008485, -.15775022, -.17083021, .04249013, -.17064969, -.12835694, -.05827104, -.06000977, .02430356, -.06000112, -.05485318, 1.1849863, .83572134, -.14128063, .818976, .73481794, -.59052793, -.96984829, .52299476, -.93117582, -.71450083, .9399917, .68377155, -.28694805, .67236428, .7974322, -.44002698, -.57087568, .10634001, -.56447783, -.34532533, -.21863606, -.24528179, .0624941, -.24474199, -.1814558, .56326566, .46109889, -.08372362, .45803496, .37592526, -.07591432, -.07896422, .03725001, -.0789438, -.07543992, -.77818641, -1.6795659, .42244103, -1.5246549, -.79981177, -.04399159, -.04503607, .03189906, -.04503194, -.04979462, -.1002894, -.10618355, .09715338, -.10612585, -.12502571, -.46154278, -.65298739, .47775225, -.64006615, -.58823684, .19297036, .17688747, -.08435038, .17666441, .18451545, 1.2567799, .84235571, -.50274465, .82029379, 1.1667164, .23807226, .21413629, -.110251, .2137361, .23206521, -.63972256, -.9226105, .04888754, -.90231089, -.34203496, -.65083021, -1.0839922, .27791095, -1.0383617, -.61748113, .01714389, .01700946, -.00427506, .01700929, .01359556, -.1753322, -.19645065, .33425428, -.1960278, -.2739114, 1.1513607, .79169637, -.43119065, .77348673, 1.0456204, -.48785477, -.68179512, .24456376, -.66922912, -.48827865, .21072881, .19254487, -.05959303, .19228378, .17427073, .35612601, .30303134, -.3278876, .30171888, .43650323, -.27023169, -.3144702, .10075437, -.31326871, -.24505043, .61318693, .48210992, -.3274334, .47749362, .62677681, .41111143, .33301644, -1.8253585, .33056576, .85133226, -.19481353, -.21503613, .04602194, -.21468694, -.15173218, -.03987817, -.04063046, .0094143, -.04062809, -.03105247, -.10009869, -.10514249, .027462, -.10510015, -.08194824, -.11716349, -.12448007, .04615095, -.12440397, -.10820942, -.17640093, -.1928184, .04341165, -.19256414, -.13927698, -.73754475, -1.344323, .22748136, -1.2668483, -.62784271, -.06202451, -.06398783, .02451098, -.06397748, -.05734634, -.21830102, -.24652744, .09873847, -.24592095, -.21112644, -.42028158, -.55096001, .20057009, -.54428635, -.41380172, .27692872, .24786499, -.05178603, .24735786, .19952295, -.16056965, -.17558293, .09551896, -.17534935, -.17014355, -.06538395, -.06758339, .02707714, -.06757106, -.0614033, .40472269, .34596206, -.08711496, .34454716, .30559479, -.01948248, -.01970221, .0312953, -.01970179, -.02874744, -.74044391, -1.4313084, .33547729, -1.332702, -.71651588, -.00959026, -.00963341, .00254421, -.00963338, -.00776392, .58290382, .46866275, -.16430017, .46496644, .48152696, .78990971, .5990838, -.21558183, .59151686, .64555366, -.60878353, -.904121, .11544082, -.88097363, -.44066146, -.19234382, -.2135101, .07997263, -.21312274, -.18087392, .09349877, .08945988, -.04175847, .08943082, .09004552, -.56760591, -.82023065, .13154508, -.80199044, -.43927128, -.18688935, -.20644692, .06830505, -.20610648, -.16835162, .13621984, .12805562, -.04984456, .12797412, .12275603, 1.0490177, .72713028, -.68918444, .71110319, 1.1489744, -.45100013, -.59470485, .13184149, -.58718889, -.37711905, .13526372, .12645504, -.12005451, .12635952, .16377856, -.28818669, -.33167944, .03350251, -.33058978, -.17720872, -.13060375, -.1398183, .0524589, -.13971005, -.12140973, .9378045, .67753716, -.3788192, .66574952, .87343154, .27098326, .24004014, -.15183279, .23945297, .28146658, -.33485349, -.3970462, .04412781, -.39513215, -.21469273, .6194375, .49775346, -.10398783, .49380734, .43052909, -.14296602, -.15368801, .04171745, -.15355413, -.11947338, .43258663, .35935961, -.30280431, .35730782, .48392651, .37175276, .31861271, -.14411522, .31735271, .34151995, -.32665016, -.38884006, .06387642, -.38687864, -.23887944, -.42561232, -.55795914, .18142126, -.55119973, -.40356688, -.35105423, -.42195308, .05378071, -.41958271, -.23666551, -.02320392, -.02345492, .00534224, -.02345447, -.01791811, -.33682582, -.40497783, .0758356, -.4026951, -.25816932, -.12414077, -.13332723, .11586673, -.13321404, -.1528525, 2.3019877, 1.257505, -1.3917948, 1.1840291, 2.4524702, -.17247345, -.18734391, .02840135, -.18713052, -.11910715, .08731105, .08419405, -.01168084, .08417551, .05626188, -.26263879, -.30489683, .11180706, -.30376866, -.24892718, -.2910695, -.35171965, .29755042, -.34962839, -.36942645, -.72868997, -1.3252187, .2462431, -1.2493896, -.63947939, -.12607099, -.13517712, .08419329, -.13506761, -.13883936, -.303988, -.36124323, .1053936, -.35945659, -.269062, -.4509924, -.60030839, .16495918, -.59220241, -.40636377, .34727781, .30690118, -.02535243, .30612116, .18286666, -.64879747, -.98327508, .09287628, -.95550747, -.42761313, .06005547, .05833297, -.02946512, .05832474, .05967803, .11741206, .11047067, -.14296951, .11040233, .15796697, -.08041936, -.08379401, .03396093, -.08377041, -.07601692, 1.7225341, 1.03418, -1.1239065, .99064126, 1.8823424, -.10868496, -.11435385, .01896727, -.11430459, -.07652287, -.31637263, -.37839743, .10091835, -.37638371, -.2723533, -.20938853, -.23213658, .0367331, -.23172556, -.14768321, -.28102192, -.32840365, .09088428, -.32707863, -.24303364, -.13782043, -.14790602, .04587562, -.14778313, -.12034084, .10434784, .09932503, -.04931338, .09928476, .10240486, .45772778, .38254781, -.13504668, .380503, .38392184, -.11546231, -.12233721, .03505027, -.12226903, -.09776887, -.44973591, -.58508369, .09599035, -.57838802, -.33862907, .16888733, .15759416, -.02645707, .15746842, .11470666, .32593828, .28649726, -.06498227, .28570446, .2399009, .27186575, .24233951, -.08641709, .24180647, .23376503, .12746131, .1202375, -.04891426, .12016931, .11670087, -.5525436, -.79779884, .16088526, -.78013652, -.4614165, -.33745452, -.41627007, .19449844, -.41322893, -.353828, -.38523263, -.47686709, .07595916, -.47326717, -.2825002, -.29919216, -.35416709, .10080245, -.35249308, -.26230134, -.32859982, -.39187088, .06583404, -.38985297, -.24225443, 1.2230258, .85610896, -.14322376, .83822182, .7538856, -.59484282, -.91957581, .24273238, -.89112381, -.55588811, .22316516, .20054443, -.20153153, .20016315, .27177443, -.34353237, -.42417631, .17430392, -.42104902, -.34521593, 1.0013204, .70813496, -.49237704, .69416568, .99576753, 1.286023, .85588024, -.52633007, .83267972, 1.2029896, -.14232183, -.15297857, .0427016, -.15284572, -.12004362, -.11923524, -.12690099, .05092533, -.12681891, -.11313345, .07967895, .07688418, -.02053429, .07686785, .06388501, -.5240686, -.76737404, .30816235, -.74908509, -.55317424, -.57784358, -.86110674, .1843253, -.83868528, -.49744512, -.32958216, -.40011504, .13174724, -.39761812, -.30589072, .41448584, .34574843, -.33455967, .343861, .48622915, -.32944976, -.41067335, .33465253, -.40736804, -.41725431, -.09503026, -.09919597, .012917, -.09916555, -.06156092, -.42105309, -.55299201, .20696821, -.54620281, -.41866737, -.07923867, -.08247432, .03034594, -.08245231, -.07249949, -.16577435, -.17985874, .03469311, -.17965957, -.12400407, .19949934, .1827653, -.06902931, .18253172, .17646103, -.43920686, -.57872277, .16003694, -.57144777, -.39524175, -.56513879, -.84885229, .24699657, -.82588278, -.54035235, -.06286303, -.06491442, .02858863, -.06490327, -.06090758, .92549746, .67323857, -.32473992, .6620081, .82244219, -.38988726, -.47979843, .05636151, -.47637231, -.2578083, .09979014, .09573364, -.01384403, .09570617, .06508626, .09280064, .0889795, -.0279896, .08895329, .07841086, -.46107866, -.59994216, .07899674, -.59306763, -.32264856, .83347527, .60020541, -1.0995866, .58955563, 1.1517236, .27905983, .24569371, -.19753739, .24503095, .31334636, -.63810006, -1.0087097, .18285623, -.97429886, -.5300365, -.17291354, -.18879898, .04598416, -.18855612, -.14009805, -.51416831, -.73501209, .24166843, -.71959983, -.50367861, -.11603496, -.12331911, .05205844, -.12324295, -.11191791, .25114639, .22198601, -.33394605, .22142343, .34795258, -.35430121, -.44161092, .18647538, -.43805958, -.36041173, -.4297934, -.56245513, .16054818, -.55572832, -.38998834, -.24832551, -.28509038, .09585265, -.28418665, -.22780274, -.5430595, -.8236341, .38944718, -.80029361, -.61243189, .14951981, .14066735, -.02096909, .14058006, .09787438, -.26030761, -.30529244, .19969441, -.30400333, -.3002317, -.41187027, -.5222738, .09534316, -.51739668, -.31862522, .40355256, .33678618, -.40298382, .33495712, .5082054, -.75255175, -1.3894944, .21360879, -1.3060837, -.62312324, -.35507276, -.43263695, .08326328, -.42983496, -.27587102, -.72634868, -1.3135867, .24178343, -1.2397681, -.63423315, 1.1376892, .77830075, -.56460273, .75991464, 1.1348542, .0124268, .01235574, -.00318039, .01235567, .00994053, -.17977795, -.19706609, .04822297, -.19678947, -.14607826, .13164445, .12436625, -.02962392, .12429923, .10088484, 1.6590308, 1.0177654, -.82102101, .97836656, 1.6533484, .35423886, .30348345, -.21771826, .30227719, .37946561, -.39745053, -.50183363, .1115254, -.49731392, -.327836, .16236895, .15037561, -.09838355, .15022813, .17310893, .6958186, .53635626, -.29431717, .53034734, .6580808, -.46773645, -.6351434, .19230175, -.62534201, -.43819951, .10162678, .09719379, -.0235417, .09716157, .0786372, 1.2254236, .83616209, -.33996754, .81614444, 1.0069625, -.44736095, -.58481213, .11337566, -.57787362, -.35668813, -.53040638, -.77530138, .27230976, -.75698926, -.53510239, -.20596997, -.22932212, .05814066, -.22888187, -.17023123, .52440326, .4238883, -.29085357, .42070618, .54284818, -.27039535, -.31848645, .18037432, -.31706852, -.29766953, -.18413097, -.20127687, .03093094, -.20101119, -.12800461, .2078039, .18889883, -.11508173, .1886127, .21500469, -.55328036, -.78200973, .11006953, -.76662156, -.4069389, -.31123454, -.37880878, .22941672, -.37638232, -.3542231, -.65927093, -.99075659, .0725532, -.96387989, -.39805047, .07618853, .07372323, -.01368779, .07370993, .05416444, -.32168303, -.39510162, .24521041, -.39233234, -.37023295, -.52044113, -.72706987, .1447913, -.71369831, -.42806058, -.19292174, -.21699692, .20331068, -.21649757, -.24735319, -.37437819, -.47321524, .1859494, -.46891375, -.37354989, .58338252, .47340146, -.10114556, .46997579, .40985278, -.31178488, -.3671897, .05737334, -.36555753, -.22343443, -.44979931, -.62005397, .35883752, -.60953178, -.52559974, .29013402, .25421375, -.21161293, .25347515, .32904591, -.0471581, -.04825397, .01517686, -.04824973, -.04071692, -.39545673, -.49608618, .09505087, -.49186199, -.30978568, .54435985, .45148952, -.05282739, .44886723, .31517645, .13502896, .12765483, -.02143779, .12758775, .09212014, -.3240423, -.3860241, .07033396, -.38406021, -.24535759, .0219324, .02171037, -.00612701, .02170999, .01806413, -.13135208, -.1397574, .02259516, -.13966782, -.09203926, .35984601, .3131645, -.06318754, .31215909, .25388182, -.53692255, -.78844182, .26544966, -.76937333, -.53490725, .99283801, .71110543, -.33171189, .69807369, .86799243, -.30811339, -.36535786, .08606506, -.36359554, -.25376166, .35941228, .30921429, -.14533974, .30805106, .33486267, .46119255, .38419514, -.15408706, .38206689, .40319974, .25617752, .22887855, -.11355209, .22839493, .24609477, .3881024, .33229798, -.10916489, .33096708, .32038232, -.01142538, -.01148719, .00325243, -.01148713, -.00946949, -.0663644, -.06831127, .00741754, -.06830176, -.04027665, -.31479598, -.3845116, .23897448, -.38195885, -.36180949, .13188749, .12507852, -.01495072, .12501997, .08042043, .05560787, .05414142, -.02479536, .05413498, .05352512, .030057, .02968142, -.00338286, .02968064, .01828388, -.60764607, -.92798542, .17422059, -.90082532, -.50482821, -.49611384, -.65425635, .06163571, -.64598206, -.31189496, .19595611, .17969821, -.07121758, .17947373, .17618879, -.53300603, -.79124424, .33222942, -.77102963, -.57364618, .21233509, .19291969, -.10206777, .19262435, .20956595, -.12690115, -.1343304, .01431673, -.13425796, -.07725649, -.32844644, -.40427048, .22379228, -.40137809, -.36413974, -.14290203, -.15448587, .07820742, -.15432956, -.14727134, .79360616, .58955236, -.48783917, .58096063, .8501696, -.02949369, -.02992309, .01081226, -.02992205, -.0265951, .27831796, .24559747, -.16801173, .24495834, .29635848, 1.0478477, .76214648, -.12083589, .7494232, .64260005, .06339373, .06158523, -.0181729, .06157663, .05266421, -.5938279, -.89957497, .18744172, -.87422318, -.50941588, .03644298, .03580721, -.01562572, .03580536, .0346231, -.49944896, -.6882761, .15428926, -.67661922, -.42538546, -.68855705, -1.1334562, .15684956, -1.0878507, -.52982329, -.08804256, -.09199457, .02906246, -.09196501, -.07666242, 1.9829382, 1.1470288, -1.0173005, 1.0916852, 2.0000117, .16729735, .15551127, -.04810313, .15537303, .13912136, -.6912127, -1.1040963, .10905673, -1.0647441, -.47058199, -.65126541, -1.1420625, .44827384, -1.0841523, -.72448568, -.18475545, -.20375577, .06541737, -.20343072, -.16467937, -.07713194, -.07963294, .00526849, -.07961942, -.03972479, .01740949, .01725609, -.0109489, .01725586, .01879278, 1.2196292, .85291889, -.15144619, .83500453, .7666221, -.22496394, -.25705245, .16083384, -.25629232, -.25344151, -.36823714, -.46294364, .17993716, -.45892631, -.36542816, 1.2520815, .81943768, -1.1127505, .7953967, 1.5166929, .5370179, .42882249, -.44677811, .42522593, .63635551, -.45893868, -.62841097, .26653623, -.6181842, -.48242728, 2.0020663, 1.154226, -1.0311665, 1.0978758, 2.021957, -.66655028, -1.1886375, .42913662, -1.1248503, -.72515437, -.5154665, -.75240451, .33467992, -.73476249, -.56236746, .11044802, .10446565, -.09872336, .10441168, .13404643, 2.1970641, 1.2481317, -.72708268, 1.1840148, 1.9146957, -.25675981, -.2990706, .15898926, -.29791395, -.27572996, -.25669536, -.29556425, .08661654, -.29458722, -.22515881, .52513525, .4277973, -.19081609, .42481538, .47213092, .15974061, .14921456, -.03568551, .14909907, .12211926, -.52570614, -.79242904, .4633627, -.77061806, -.63505653, .80623824, .58389749, -1.1584851, .57388804, 1.1462581, .03130321, .03083991, -.01157539, .03083876, .02830834, -.10999839, -.11631162, .03812945, -.11625126, -.09735414, -.46938615, -.62540527, .12257532, -.61690292, -.37800528, -.45977529, -.62819148, .25115588, -.61810743, -.47353804, -.24400514, -.29017483, .63139896, -.28872754, -.42206299, -.22238072, -.25076942, .07736622, -.25016715, -.197057, .41225613, .35139209, -.09092106, .34990208, .31381684, .90104234, .65879176, -.33084962, .64814686, .81292475, 1.4268219, .9417433, -.29915977, .91518567, 1.0679664, -.01131892, -.01138296, .0052341, -.0113829, -.01102793, -.26064096, -.29777716, .04913562, -.29689842, -.18829434, -.35225204, -.43891739, .19332433, -.43539782, -.3633634, .27755578, .24944605, -.03488256, .24897266, .17516458, -.05249628, -.05408881, .06457515, -.05408076, -.07086811, .15270366, .14295055, -.03751237, .14284682, .12049466, 1.6640434, 1.0233537, -.74645815, .98412553, 1.6049257, .40173966, .34399464, -.08248412, .34261792, .29860467, -.2012955, -.22591292, .12425093, -.22541249, -.21593975, -.55241944, -.81052705, .20869867, -.79100738, -.50314813, 1.2167787, .81596409, -.64037158, .79464724, 1.2377371, .31859384, .2793104, -.0957355, .2785059, .26885983, .33521642, .29137558, -.12189482, .29042371, .30145462, .35923737, .31063323, -.10219573, .30954184, .29767469, .49244921, .3958823, -.63755836, .39275613, .67622457, 1.0662749, .74466625, -.46536687, .72890881, 1.0190323, .23051376, .20778465, -.11628489, .20741193, .23119707, -.05407944, -.05548359, .01328741, -.05547751, -.04267546, -.62813954, -.98581439, .18994331, -.95321309, -.53119677, -.18373719, -.2011591, .03627741, -.20088423, -.13479904, .18184522, .16675393, -.12985588, .1665455, .20478515, -.31872585, -.37518492, .04704902, -.37352689, -.21222916, .84887233, .62383422, -.43685389, .61407755, .85707136, -.05261579, -.05387151, .00796703, -.05386652, -.03533347, -.50035039, -.71049219, .26736812, -.69613862, -.51155936, -.46632367, -.61629176, .1065549, -.60837729, -.35919155, -.41396762, -.52929026, .11631992, -.52400002, -.34161659, .56533161, .45487973, -.20191777, .45131692, .50536329, -.25961398, -.30166258, .12862217, -.30053261, -.25882168, .14486225, .13424498, -.22657748, .13411544, .21186167, -.56682674, -.86925212, .32130125, -.84331965, -.59103657, .5047258, .41021238, -.29671218, .40728788, .53271157, -.43155757, -.55417099, .09413043, -.5484369, -.32729987, .34146008, .29564578, -.1397251, .29462552, .31939499, .59808647, .48391487, -.09662502, .48031482, .41040803, .2006377, .183359, -.08645239, .18311139, .1909314, .44366264, .36673917, -.32881307, .36453234, .50585757, -.35790142, -.43681098, .08310658, -.43393424, -.27716013, -.49074253, -.68009252, .1985023, -.66817166, -.45726466, .20408678, .18766665, -.03758255, .18744678, .14629023, .92820989, .65798031, -.82939554, .64517405, 1.1264053, -.14206865, -.15283617, .047763, -.15270031, -.12446275, -.17969653, -.19767623, .06598571, -.19737695, -.16212616, -.47137633, -.61977806, .0862388, -.61210679, -.33714968, -.28911174, -.34384457, .16312479, -.34212796, -.30099582, -.00763281, -.00766442, .00752714, -.0076644, -.00957215, .34143269, .29614602, -.12301585, .29514894, .30610265, 2.0719664, 1.2126712, -.52023762, 1.1565606, 1.6468943, -.11800533, -.12555996, .05344356, -.12547942, -.11417636, -.66888109, -1.1786054, .37739535, -1.1178522, -.69637225, .00530837, .0052956, -.00113352, .00529559, .00399755, .15362842, .1433758, -.05533638, .14326187, .13771924, .42707403, .35920849, -.15986646, .35742182, .38779115, -.46487744, -.65646177, .43587838, -.64361114, -.57326763, -.01626688, -.01640278, .00924814, -.01640259, -.01697843, -.027476, -.02784189, .00868304, -.02784108, -.0235796, .19189844, .17681613, -.04846485, .17661883, .15282694, .22330594, .20058569, -.20863098, .2002013, .27504459, .11559231, .10934324, -.06731977, .10928697, .12162145, -.47747168, -.62350706, .06552056, -.61616792, -.31028988, .8575602, .61127476, -1.2773277, .5997524, 1.2339205, -.24769378, -.28838884, .20749059, -.28727965, -.29418433, -.16802838, -.18300456, .04553388, -.18278242, -.13699666, .15586551, .14451023, -.11872882, .14437251, .17934753, -.39223346, -.50201694, .1843519, -.49695755, -.38422796, .80113557, .59491977, -.45929526, .58622787, .83851595, -.24191424, -.27667143, .09486526, -.27584213, -.22309338, .18432121, .16997179, -.0607232, .16978585, .16039042, -.40278614, -.52507026, .24440944, -.51896897, -.42963435, .19255907, .17757771, -.04252925, .17738371, .14664994, -.0972408, -.10219865, .03820438, -.10215654, -.08973187, -.30184289, -.35995233, .12973145, -.35809935, -.28699813, -.80655346, -1.6474722, .23707035, -1.5153139, -.67565426, -.36549402, -.45446948, .13440814, -.45089353, -.32991751, -.35756411, -.45140667, .25876731, -.44734612, -.40446637, .47443587, .39805103, -.0802688, .39601394, .33060589, -.64139492, -1.0346158, .22190249, -.99622053, -.56730211, -.35327017, -.4485241, .33766234, -.4442919, -.43843867, .38580316, .32347057, -.43729991, .32180248, .50681211, -.45169795, -.60091255, .1608026, -.5928297, -.40334168, .99548762, .72054504, -.2191243, .7081499, .75729325, 1.8464371, 1.1114614, -.59910169, 1.0651319, 1.5985756, .39118858, .33428279, -.1169012, .33290991, .32951392, -.26737891, -.31403027, .17241748, -.31268067, -.29104169, -.35472347, -.43250975, .08609581, -.42968906, -.2787815, .20292213, .18425357, -.15632118, .18396786, .2343701, .38315112, .3261751, -.17731209, .3247703, .37339587, -.4203798, -.53885631, .11049479, -.5333593, -.33927498, -.39280184, -.50479736, .20418445, -.49954177, -.39792378, .01409337, .01399707, -.00585487, .01399697, .01324928, -.6652952, -1.0134974, .08156506, -.98417555, -.41640983, .34348687, .29084513, -.60061687, .28950793, .52137387, .09977508, .09541015, -.02804863, .09537833, .08234969, .32918421, .28875075, -.07066353, .28792585, .24833301, -.49353903, -.6871202, .20734724, -.67473867, -.46571878, .77392484, .60155546, -.08642675, .59523764, .46956088, .11597648, .10966911, -.06949822, .10961197, .12319163, -.22418407, -.24900933, .02464014, -.24855216, -.13529889, .0048323, .00481904, -.00792244, .00481903, .00717903, 1.5612954, 1.0050419, -.31845894, .97326169, 1.157936, -.04439821, -.04534558, .0116988, -.04534221, -.03586197, -.18287636, -.20228267, .09051079, -.20194015, -.182256, .79991917, .59627529, -.39894571, .58778217, .79924268, .00045295, .00045286, -.00012532, .00045286, .00037187, -.35045702, -.43580879, .18862591, -.43237702, -.3591702, .48168833, .40506154, -.06181568, .40304207, .30611667, 1.2102909, .82323981, -.41739621, .803211, 1.0693487, -.59017082, -.91634263, .27345193, -.88743255, -.57538096, -.37675981, -.47045792, .12095176, -.46661229, -.32503025, .06803516, .06595983, -.01939384, .06594928, .056414, -.06959904, -.07232338, .05983358, -.07230561, -.08337973, .21772388, .1987227, -.05156152, .19844678, .16971593, 1.6833678, 1.0531665, -.41182571, 1.0155263, 1.3264794, -.34527398, -.42174351, .11413824, -.4189433, -.30078969, -.62314999, -.96597584, .1733497, -.93571986, -.51252229, .6459985, .5037073, -.31753546, .49854781, .64233524, .81444581, .60869635, -.31055794, .60017873, .74410178, -.4908851, -.63379759, .03898724, -.62695296, -.26585044, .62883787, .49981679, -.15887697, .49545104, .5008674, -.47123649, -.64525963, .2157823, -.63475768, -.45762303, -.43045432, -.56726321, .18859397, -.56012565, -.41191156, -.27800518, -.32605338, .11807445, -.32467635, -.2632877, .02531747, .02500971, -.01037265, .02500908, .02369118, .8807169, .65205874, -.24272019, .64234114, .72210916, -.47195945, -.64065297, .1776242, -.63078898, -.42931939, .49944805, .41097781, -.16469959, .40838569, .43474479, 1.5756966, .961067, -1.4644167, .92300166, 1.9373732, -.62905627, -1.0322172, .31250029, -.99119942, -.62770146, -.43233827, -.55683313, .10072474, -.55093416, -.33517466, 1.2574772, .8430771, -.49561225, .82102893, 1.1616022, -.48191348, -.65985959, .18026216, -.64912206, -.43747936, .96451145, .70037123, -.24978434, .68855868, .77458662, .10390185, .09900718, -.04141969, .09896877, .0963447, .17782342, .1633702, -.12549832, .16317469, .199472, .90103943, .64142578, -.9021328, .62924252, 1.1356975, -.31685644, -.37539119, .06613533, -.37359927, -.23680791, -.36576202, -.45473746, .13299164, -.45116409, -.32891512, .3946375, .33626288, -.13179614, .33483111, .34496614, -.05564079, -.05737795, .05191923, -.05736891, -.06850384, .07746079, .07480482, -.0207498, .07478964, .06291235, -.62763543, -.9961985, .21906113, -.96162467, -.55676262, -.67538326, -1.2113217, .40482453, -1.1450707, -.71746238, -.19995235, -.22180501, .05561306, -.22140782, -.16444472, .03704984, .03639979, -.01443181, .03639789, .03409112, -.51650857, -.76312406, .39772971, -.74408523, -.59647333, .98171505, .70792313, -.2820108, .6954651, .81612286, -.2277101, -.25742923, .07554275, -.25678472, -.19860757, -.6677642, -1.1054215, .21255838, -1.0599649, -.57444902, .82422176, .61613989, -.27973166, .60753116, .724358, .25536475, .22807412, -.12009092, .22758927, .25020003, .13012242, .12202695, -.10400311, .12194308, .15214588, .09729097, .0929002, -.04630879, .09286719, .09570754, .05400697, .05259462, -.0289588, .05258847, .05528026, .02411581, .02383889, -.00908, .02383836, .02194016, -.49513117, -.69291152, .22291771, -.68003738, -.4781216, -.46304413, -.61997017, .15285491, -.61125577, -.40319771, -.18833279, -.20618262, .02966943, -.20590112, -.12815347, -.5643813, -.85531534, .28315697, -.83116451, -.56502478, -.08363191, -.08715286, .02552147, -.08712817, -.07094034, -.47398851, -.65328525, .23517562, -.64221102, -.47277297, -.26479649, -.30521694, .07162969, -.30419273, -.21576575, -.19257033, -.21268103, .05290569, -.21233169, -.15772616, -.42206694, -.53104639, .06193518, -.52640571, -.28048524, .27418477, .24533224, -.05768892, .24482746, .20546428, -.32017836, -.38448403, .10816775, -.38234583, -.28095531, -.11235979, -.11823478, .01483804, -.11818361, -.07209018, .0987543, .09404778, -.06959045, .09401042, .11072114, -.01475371, -.0148639, .00745724, -.01486376, -.01480711, -.31418685, -.38182471, .20098822, -.37941624, -.34108205, .11799586, .11146733, -.07163686, .11140716, .12588289, -.30637716, -.3637908, .09558214, -.36200816, -.26180213, -.10448745, -.11077222, .0847169, -.11070926, -.12275602, 1.2126604, .82725729, -.37262864, .8074287, 1.0310068, -.39751424, -.50920053, .1695837, -.50403422, -.37702762, .41730243, .35889083, -.04510874, .35753432, .25045566, -.73638278, -1.3570324, .25051513, -1.2760582, -.6476749, .55540527, .45719388, -.06897275, .45432127, .3491209, -.30721199, -.36229287, .0687354, -.36065586, -.23497893, .10505872, .10057482, -.01463721, .10054293, .06862002, -.45382873, -.60844735, .18506012, -.5998169, -.42400951, .39661504, .33831796, -.11781938, .336897, .33342259, -.69147439, -1.1808634, .21853097, -1.1263227, -.59342395, -.24741436, -.28045005, .04610236, -.27971718, -.17804686, -.36931264, -.45432927, .08596562, -.45109528, -.28622949, 1.3455919, .89213672, -.41397432, .86750981, 1.1444848, -.47951866, -.66313969, .22918427, -.65166375, -.47236235, .71520118, .54505314, -.38833921, .53840534, .73513296, -.25160521, -.28897301, .0883052, -.28805159, -.22360689, -.21586978, -.24025429, .03882649, -.23979626, -.15352553, 1.9366852, 1.1229873, -1.1507855, 1.0692654, 2.0513864, -.54191503, -.81867924, .37498983, -.79590578, -.60390778, -.60797965, -.93124681, .18049629, -.90361689, -.51100536, .35254522, .30358918, -.15896092, .30246118, .34060421, -.24892482, -.28657929, .10995939, -.28563373, -.23885421, -.73517526, -1.2292916, .10907361, -1.176769, -.49035486, -.09636889, -.10089282, .0205596, -.10085744, -.07255035, -.38028061, -.49216014, .32033143, -.4867466, -.45249381, -.18871952, -.20901105, .07789747, -.20864818, -.1770363, -.06614495, -.06841276, .02905101, -.0683998, -.06334732, -.62411409, -.97774934, .19561035, -.94566456, -.53413365, .27120071, .24281427, -.05949607, .24232028, .20607879, .85585921, .61733359, -.8366515, .60648742, 1.0701872, -.16357957, -.17802555, .05246843, -.17781323, -.1410789, -.17076048, -.18878456, .15029066, -.18846812, -.20617955, .52263905, .42910139, -.12966468, .42633288, .41376314, .08575312, .08269529, -.01334224, .08267713, .05811026, -.14597352, -.15759015, .05691445, -.15743625, -.13435904, -.12458284, -.13295752, .05161702, -.13286377, -.11701632, .11494773, .10876673, -.06680556, .10871137, .1208596, -.04256321, -.04346356, .01520077, -.04346039, -.03804709, -.45536737, -.58326447, .0570685, -.57735027, -.28711117, .47626078, .39404241, -.17708947, .39169372, .43149006, -.24311822, -.27871269, .10466917, -.27784737, -.23129235, 1.3476211, .87277805, -.85701703, .8459194, 1.4601082, -.37467502, -.46905263, .13720983, -.4651302, -.33773409, -.07708257, -.08018609, .03357444, -.08016527, -.07361794, -.01385604, -.01394893, .00470857, -.01394883, -.01218239, -.72719396, -1.3517217, .29532086, -1.2688687, -.67848703, .44571038, .37514843, -.10875349, .37329763, .3509077, -.57534299, -.86862449, .23022732, -.84453497, -.53417083, -.0754074, -.07835789, .03140045, -.07833865, -.07094655, .75644486, .57398438, -.29853542, .5667599, .69907988, -.6168851, -.94901454, .17024164, -.92029119, -.50602051, -.46962782, -.64565932, .24080845, -.63488224, -.47359064, .72610874, .56301499, -.16076249, .55698784, .55344273, -.10814219, -.11418864, .03518046, -.11413233, -.09370741, .46426286, .38453431, -.20407356, .38226845, .44474889, -.31314903, -.38903031, .44926615, -.38599444, -.44498491, -.16918239, -.18372589, .03236222, -.1835178, -.1228173, .01922199, .0190669, -.00221987, .01906669, .01179374, .69393246, .54025406, -.19213669, .5346523, .56984696, -.47386179, -.65599758, .2572133, -.64457328, -.48701491, .1456625, .13616929, -.06689435, .13606627, .14159187, -.70347527, -1.3807153, .55747473, -1.2813738, -.82019595, .00383646, .00382933, -.00148007, .00382933, .00351878, -.1768471, -.19414626, .06286135, -.19386472, -.15783495, -.13496417, -.14390135, .02406649, -.1438028, -.09571057, .37122856, .32016044, -.09463934, .31899469, .29657063, .60928212, .48199407, -.25714196, .47761034, .57581097, -.41880282, -.56645291, .42755189, -.55793354, -.53130757, -.42053034, -.55369854, .22244575, -.54677554, -.42849879, -.15715324, -.17157183, .09775847, -.17135169, -.16902218, -.09228049, -.09672915, .03634801, -.09669343, -.08522692, -.08995605, -.09397528, .02353244, -.09394536, -.07248574, -.44885439, -.58736729, .11330178, -.58034539, -.35740385, -.30551624, -.37255546, .28556142, -.37012293, -.37635647, -.03486108, -.03547902, .01599897, -.03547719, -.03387931, -.2946841, -.35200734, .16882458, -.35016057, -.30836118, .13931681, .13093625, -.043177, .1308523, .11878543, -.19643866, -.21786169, .06304702, -.21747313, -.16945309, .97520508, .69987126, -.35556831, .68719635, .87777185, -.17457684, -.19174755, .07274891, -.19146657, -.16428954, -.20695989, -.23150806, .07894116, -.23102399, -.18910454, .09175883, .0878384, -.0436685, .08781049, .09026055, -.6726609, -1.1472366, .26916505, -1.0944988, -.62452094, -.62009308, -.98610435, .24679913, -.95160491, -.57468403, .9143014, .67645561, -.18494444, .66632846, .67621274, -.40823923, -.51398966, .0825203, -.50947217, -.30186082, .49533274, .39542199, -.86503165, .39209712, .75153986, -.41646708, -.57351884, .65089757, -.56384747, -.60893088, -.24832842, -.28228688, .05344114, -.28151545, -.18749348, -.4291716, -.56977636, .23074298, -.56222093, -.43968348, -.52430276, -.75504356, .23433078, -.73856158, -.50505795, -.35502192, -.43176704, .07773553, -.42902312, -.26960004, .73259343, .57037824, -.12427138, .56446619, .51094683, -.17483804, -.19012333, .02844008, -.18990093, -.12024792, -.47873773, -.65338446, .17767818, -.6429686, -.4334641, -.42915684, -.55172088, .10159999, -.54596001, -.33449162, .07254078, .07037383, -.00953335, .07036304, .04646722, .13886356, .1304756, -.04616793, .13039122, .12120364, 1.9186054, 1.103383, -1.5492848, 1.049048, 2.2510105, .81907795, .58317424, -1.9232965, .57210785, 1.3716466, -.44373902, -.58942003, .17882664, -.58157592, -.41295794, .132741, .12487617, -.05473605, .12479856, .12448142, .16258569, .15136781, -.04905618, .15123894, .13739243, .33106334, .28830953, -.11710154, .28739283, .29498839, .12174071, .11518179, -.04300579, .11512293, .10842836, .18150841, .16802615, -.04268629, .16785944, .1411575, -.55181879, -.78094168, .11503991, -.76546234, -.41224668, .31092362, .27182326, -.14438697, .2710067, .30335779, .4898463, .40123648, -.24767545, .39858616, .49167434, .04020691, .03953763, -.00461499, .03953577, .02461883, .69779258, .53039763, -.52893557, .52380457, .80160759, -.41938765, -.528942, .07014561, -.52422331, -.2911302, 1.5500093, .99414196, -.37744285, .96219521, 1.2195041, -.23120537, -.26211582, .08002466, -.26142923, -.20452665, -.5337862, -.75033499, .13270693, -.73602772, -.42288223, -.34890203, -.42568049, .10060014, -.42288671, -.29041019, .09510716, .09097446, -.03856102, .09094454, .0886887, -.42043796, -.53892978, .11036636, -.5334321, -.33917476, -.12595244, -.13532881, .10828799, -.13521259, -.15089487, -.31032226, -.37071943, .11203737, -.36877261, -.27840237, .16780569, .15577563, -.05594822, .15563205, .14660312, -.31007558, -.3713279, .12483464, -.36932432, -.28846962, .78557461, .5899677, -.33984865, .58198177, .74856607, 1.0796956, .75859235, -.34035392, .74306646, .92580842, .27211903, .24110835, -.14370344, .24052108, .27712242, -.52540352, -.73146819, .1256489, -.71828911, -.41088935, -.60747742, -.97426243, .32098258, -.9389528, -.61876239, -.43523416, -.56928385, .14331067, -.56250104, -.3786618, -.66214695, -1.0529658, .14597953, -1.0161294, -.50397645, -.37668723, -.47345942, .14901598, -.46935893, -.34839737, .27174319, .24340092, -.05638588, .24290944, .20269322, .0586777, .05722555, -.00890276, .05721956, .03943062, .27677671, .24694797, -.06897282, .24641357, .21944331, .0637317, .06189966, -.01870783, .06189089, .05336478, 1.0814839, .75717338, -.38058322, .74136982, .96199595, -.65943831, -1.0712433, .19220718, -1.0303401, -.55087024, -.18011189, -.19751596, .0493431, -.19723615, -.14738289, .46231409, .37982102, -.33361411, .3773866, .5224558, -.56942431, -.85763161, .24175842, -.83411749, -.53921405, -.35493969, -.44571691, .2330656, -.44188734, -.38869215, -.37534646, -.48492178, .33926643, -.47965973, -.45724101, -.41212714, -.53947528, .22608188, -.53301102, -.42506244, -.89109482, -1.8088793, .10306442, -1.6661471, -.54701034, .84612011, .63633926, -.17695167, .62780994, .63277537, -.12382645, -.13164325, .03240452, -.13156107, -.0997901, 1.1076252, .76777951, -.44561598, .75085943, 1.0302093, .3311406, .2893973, -.08957051, .28852346, .26981948, .02920011, .02877719, -.01654502, .02877617, .03044309, .07314809, .0706297, -.03411092, .07061526, .0714677, -.35913427, -.43718768, .07348821, -.43438211, -.26663703, -.18609667, -.20641976, .09821248, -.20605065, -.18947764, .50919209, .4142026, -.26402946, .41127427, .51540492, -.26690924, -.30841311, .07685443, -.30734196, -.22206257, .02042216, .02021503, -.01102855, .02021468, .02095321, .7002997, .53833717, -.31546173, .53217977, .67636561, 1.2941374, .88132159, -.23467786, .86000984, .92289924, .00143183, .00143077, -.00093378, .00143077, .00156442, .80324755, .60017028, -.3506458, .59175704, .76771346, -.34282415, -.4202402, .13739525, -.41735056, -.31845507, .17602685, .16229011, -.08993897, .16211168, .17730129, -.18038496, -.19597926, .02026541, -.19575488, -.10966347, -.30741981, -.36447461, .08698474, -.36271998, -.25428003, -.07797062, -.08103614, .02503701, -.08101606, -.06727053, .80370036, .60024571, -.3553498, .59180636, .77142102, .49751879, .41508697, -.07680567, .41282555, .3362643, -.12394241, -.13270282, .08092548, -.13259972, -.13547268, .0907716, .087107, -.0276548, .08708235, .07695441, -.58551063, -.89305963, .23048889, -.8670732, -.54065039, -.4436628, -.58751169, .16649328, -.57985969, -.40319108, -.01064029, -.01069679, .00486865, -.01069674, -.01033035, -.76349743, -1.3671158, .14976747, -1.2927466, -.55892588, -.41942955, -.54623956, .17243998, -.53993799, -.3929422, .07188648, .06969326, -.0125059, .06968211, .05056071, -.45634065, -.62180242, .25193005, -.6119925, -.47166041, .66568185, .5216652, -.19801412, .51653357, .55986914, -.04302486, -.04399902, .02521296, -.04399534, -.04536256, -.59939806, -.92172055, .2130805, -.89387717, -.5349766, -.46198986, -.61219946, .12241772, -.60418739, -.37386349, -.44136021, -.58987474, .21532139, -.58168434, -.43775843, .15531067, .14510439, -.04349201, .14499271, .12802084, -.1605713, -.17470648, .05934997, -.17449939, -.14518735, .45124764, .38064244, -.08599328, .37881183, .327171, -.28769159, -.33737083, .08922817, -.33594827, -.2453553, -.30543375, -.35768158, .05171439, -.35619939, -.21289158, -.00282118, -.00282495, .0008457, -.00282495, -.00237886, .04404652, .04315387, -.01374418, .04315085, .03764067, -.66277922, -1.0501904, .13883223, -1.0140043, -.49592883, .94359123, .67929441, -.41216658, .66721909, .90203527, -.60937317, -.98748869, .35184524, -.95015357, -.63931679, -.35004111, -.42969838, .12236166, -.42670244, -.31067369, -.17253268, -.18766663, .03247046, -.18744569, -.12457199, .56866536, .4582866, -.17765109, .45474887, .48615021, -.64104987, -.98195742, .11824463, -.95281519, -.45976054, .13859401, .13062588, -.0288178, .13054959, .10344907, .13036798, .12305608, -.0368677, .12298778, .10781338, -.22676671, -.25854605, .13248042, -.25780633, -.2388435, .371507, .32034478, -.09523099, .31917562, .29733596, 1.2071602, .81655811, -.51291364, .7961247, 1.1434083, .89070081, .66413745, -.16685752, .65469612, .64211551, -.60394234, -.96084765, .30641235, -.92716896, -.60688873, -.26604872, -.30950626, .11235654, -.30832857, -.25148779, .65899032, .52076457, -.14448362, .51598551, .50065155, -.17951486, -.19802609, .08409235, -.19770856, -.17565578, .68945354, .53699955, -.19838414, .53145064, .57347653, .01497978, .01488627, -.00158129, .01488618, .00891971, -.65161336, -1.0159802, .13055012, -.98332859, -.48039198, .3362121, .29120925, -.15401533, .29020943, .32654287, -.37880467, -.48944216, .31617826, -.48412663, -.44936325, .63868806, .51567573, -.06375307, .51176294, .37328131, .06884034, .06676215, -.01600538, .06675169, .05333276, -.17402133, -.19051874, .05593966, -.1902585, -.15019366, -.1912367, -.21227567, .08358483, -.21189074, -.18285212, -.43253467, -.55538081, .09223564, -.54963788, -.32557936, .1682158, .15649153, -.04134298, .15635548, .13275629, -.6224555, -1.0180922, .32847661, -.97814722, -.63374862, -.53997585, -.76271418, .13218644, -.7477607, -.42558717, -.63427137, -1.0088441, .2064307, -.97352075, -.54969042, .13276369, .12501016, -.04742027, .12493475, .11868182, -.42174769, -.54921003, .16462506, -.5428784, -.38833851, -.24126988, -.27460897, .07270986, -.27384373, -.20380265, .17335348, .16131178, -.03141992, .16117251, .12360425, .4376146, .36594902, -.18691447, .36400544, .41522693, -.59768424, -.90289008, .17116733, -.87777946, -.49636158, -.40429612, -.53254623, .30793577, -.52586762, -.46518935, .43090041, .36636087, -.07523678, .36475822, .30343896, .62725403, .48691579, -.4924925, .48174928, .72907496, -.40588037, -.52052606, .14833886, -.51519516, -.36561753, -.03740417, -.03810963, .01568498, -.03810741, -.03527373, .27306715, .24349892, -.08080338, .2429667, .22926239, -.49496985, -.67615602, .13869254, -.6653144, -.40808146, -.79113899, -1.4054818, .10558115, -1.3310049, -.50937855, -.43097213, -.55555191, .10576207, -.54962668, -.33995344, -.4032534, -.5112142, .11204773, -.50645073, -.33153525, -.33314549, -.40137054, .08986394, -.39905799, -.27120297, .2407433, .2169849, -.08291416, .21659496, .21261262, .24101098, .21640297, -.11760103, .21598518, .23905891, .20000383, .1830665, -.07461323, .18282781, .18140148, -.22538443, -.25428686, .07188698, -.25367093, -.1940183, -.32149179, -.39624663, .27840685, -.39337475, -.38608527, .87040729, .62890561, -.68543035, .6179705, 1.0126968, -.09850354, -.10349707, .03284711, -.1034549, -.08606177, -.13904173, -.15016113, .08736364, -.1500131, -.15004344, 1.8567607, 1.0760962, -1.6345595, 1.0245247, 2.2420615, .25420233, .22854457, -.06799885, .22811392, .20636223, -.42601637, -.55519167, .15490018, -.54875438, -.38309942, -.42006046, -.54070736, .12484348, -.53500515, -.35318845, -.34038517, -.41888298, .1670363, -.4158917, -.33826784, .10732772, .10202788, -.0504268, .10198429, .10512477, 2.4165453, 1.2773864, -2.1690413, 1.1947914, 2.9369456, .58770343, .45938875, -.60368314, .45477576, .74711106, .22404849, .20314341, -.08197069, .20281894, .20189438, .06774159, .06578282, -.01213391, .06577339, .04811131, -.05276523, -.05416643, .01965723, -.05416023, -.04783539, -.05982267, -.06179001, .04541919, -.06177923, -.06875965, -.09655933, -.10173287, .06111632, -.1016867, -.10445403, .29990152, .26387987, -.11665314, .26316113, .27582137, -.28520689, -.33843405, .16472851, -.33678811, -.29925374, -.22646097, -.25959206, .18367603, -.25878722, -.26608664, -.43394393, -.55488155, .0799881, -.54933148, -.31115316, -.13630458, -.14645735, .05782735, -.14633144, -.1290411, -.61471548, -.98815853, .29978608, -.95200201, -.60962568, .27042842, .2433076, -.03873781, .24285529, .17827477, -.3037132, -.3548468, .04833258, -.35341891, -.20736356, 1.3275166, .89183862, -.30062782, .86874653, 1.0194823, -.12083708, -.12842762, .03783723, -.12834821, -.10338319, .17329023, .16132223, -.02974094, .16118461, .12133264, -.55179382, -.87702595, .62383453, -.8464111, -.72424308, -.66512486, -1.1011503, .21960267, -1.0558538, -.5791948, -.30685317, -.36060847, .05895314, -.35904713, -.22308278, -.33302732, -.39716754, .05925522, -.39512139, -.23599644, .23219186, .20987025, -.08413126, .20951333, .20855813, -.35602639, -.43601762, .09821201, -.43304672, -.29200234, -.14141661, -.15399593, .17806271, -.1538097, -.19239832, -.09296937, -.09735512, .02855205, -.09732065, -.07902825, -.4456744, -.58277989, .11773478, -.57585032, -.36029374, 3.1329873, 1.621228, -.46042711, 1.5096314, 2.0830645, -.2042655, -.22627432, .04202093, -.22587992, -.15192477, -.06201938, -.06392066, .01862458, -.06391094, -.05232675, .34632572, .29817015, -.18601059, .29705915, .35468737, .21401773, .19464961, -.08608469, .194358, .19904524, .45136307, .37960871, -.1031863, .3777189, .34772402, .37285458, .31822787, -.18611474, .31690065, .3726461, -.49299048, -.66634587, .11428475, -.65636839, -.381562, -.41513381, -.520888, .06491106, -.51644384, -.2817788, -.37195651, -.46926504, .18495104, -.46506769, -.37127044, -.18813731, -.20902544, .10218763, -.20863978, -.1934013, -.42736786, -.58745043, .51011007, -.57765619, -.57117064, -.49915342, -.6604927, .06368884, -.65193616, -.31660698, 1.3670951, .91160504, -.30307787, .88712478, 1.0424628, -.49474038, -.7113154, .36275486, -.6959238, -.56208153, .7613852, .58098624, -.22289997, .57396562, .63696605, -.17319968, -.19279796, .22909499, -.1924292, -.23954103, .45265479, .378838, -.13576636, .37684438, .38175565, .93930293, .68862464, -.21360169, .67768683, .72235166, .22161701, .20016359, -.13135934, .19981818, .23454835, .15032335, .14023016, -.06996913, .14011732, .14677873, .3406974, .29533657, -.13054502, .29433411, .31177597, -.16307222, -.17810303, .07541958, -.17787248, -.1588881, -.54862673, -.79377698, .17620597, -.77600914, -.47337085, -.32634377, -.3857118, .04692816, -.38392179, -.21541274, -.15373157, -.16730443, .08605123, -.16710499, -.15962629, .9011882, .66456837, -.23643424, .65440352, .72687063, -.34509771, -.42555341, .16069105, -.42245448, -.33700417, -.16367701, -.17758625, .03848037, -.17738952, -.12727649, -.56470257, -.89463205, .4988797, -.86382843, -.68268724, .20397399, .18495038, -.1729023, .18465524, .24321673, -.3193625, -.38720281, .16127484, -.38481872, -.32042138, -.56406387, -.92260115, .72246827, -.88640048, -.77179468, .58923877, .46784371, -.28158811, .46371946, .58041993, -.59126872, -.86740855, .12090897, -.84653375, -.43888707, -.21570205, -.24209371, .07172638, -.24155697, -.18828071, -.52204454, -.74049644, .18677028, -.72562754, -.46692912, -.28620727, -.34438183, .28781731, -.3424245, -.36127347, -.24656188, -.2814314, .07253135, -.28061238, -.20660264, -.67681799, -1.1496091, .24645424, -1.0975441, -.60893372, -.26112484, -.3008458, .07808969, -.2998428, -.22000879, -.27114812, -.31363221, .07156776, -.31252748, -.21913926, .54582258, .45257873, -.05252811, .44994244, .31514343, .48766246, .4031505, -.15344342, .40072711, .41789994, -.24193248, -.280044, .18522885, -.27904766, -.27885322, -.21380309, -.24358292, .20279659, -.24289395, -.26467091, .59744826, .49250182, -.03553001, .48945219, .29381592, -.05153952, -.05300573, .04300642, -.05299877, -.06113379, -.43004264, -.59907074, .6310609, -.5882379, -.61570796, -.26585761, -.31380878, .22782518, -.31237523, -.31815833, .28391941, .25156111, -.10242141, .25094826, .25464607, -.00320243, -.00320713, .00070621, -.00320713, -.00243766, -.63603531, -1.0387713, .27203655, -.99825208, -.60377237, .25766098, .23140991, -.06735573, .23096518, .20757129, -.45820457, -.59541584, .08024045, -.58866089, -.3229838, -.18203541, -.19956372, .04409411, -.19928289, -.14296864, -.02065128, -.02085557, .00614934, -.02085524, -.0173747, .01775183, .01759911, -.00752808, .0175989, .01680352, -.30643849, -.36765483, .1481102, -.36563012, -.30299389, -.081806, -.08524442, .03003035, -.08522034, -.07379953, -.35109893, -.44246114, .28372612, -.43854089, -.41203057, .29228106, .25830425, -.10052206, .25764797, .25800666, -.12973689, -.13987802, .12660355, -.13974606, -.16213158, -.35944159, -.44852369, .17236722, -.44487993, -.35447078, -.19235849, -.21056665, .02480166, -.21027986, -.12243657, .3134934, .27464565, -.11503931, .27384613, .28277718, .24534764, .22013787, -.1090143, .21970717, .2358807, .06643198, .06432928, -.03325946, .06431819, .06646095, .67429179, .50146604, -1.718607, .4942113, 1.1604705, -.56591225, -.83989574, .20500954, -.81846328, -.50827735, -.56831985, -.85025465, .22302449, -.82768488, -.52423105, -.53897792, -.75946483, .12838518, -.74478013, -.42094848, -.37473684, -.46835206, .12996716, -.46449282, -.33172037, -.30393718, -.36528954, .1697736, -.36323935, -.31537162, -.72871779, -1.1633648, .07100675, -1.121995, -.42248969, .73993752, .56423112, -.28858573, .55737846, .68113257, -.63001589, -.92832045, .07789064, -.90547362, -.39543286, -.49481042, -.70976714, .34837384, -.69460179, -.55460579, -.12128416, -.12906781, .04379504, -.12898462, -.10881473, -.23925667, -.26926298, .03771911, -.26863752, -.16284453, -.28141339, -.33034739, .11180667, -.3289365, -.26065281, -.58607202, -.8867257, .20466395, -.86188206, -.51998535, .61486753, .49307432, -.12233617, .48909245, .45225426, .03891069, .03825868, -.00637663, .03825686, .02682788, -.07801938, -.08098829, .01887476, -.08096947, -.06124991, -.26574199, -.30695533, .07809122, -.30589447, -.22259609, .55197529, .44772379, -.16106236, .44447072, .46126918, .08014856, .0772757, -.02407156, .07725855, .0676252, .53949228, .43100368, -.42056321, .42740402, .62557192, .31646791, .27733569, -.10418963, .27653203, .27532012, -.38349065, -.49156583, .23031385, -.48655163, -.40764914, -.11154803, -.11815096, .04400122, -.11808586, -.10307172, -.33397972, -.40069318, .07436371, -.39848681, -.25504124, -.34494433, -.41725684, .07966411, -.41474851, -.26664303, -.04882811, -.05004658, .02132962, -.05004152, -.04667858, -.66432154, -1.0115412, .08200189, -.98233962, -.41674478, .52050265, .43235813, -.06925066, .42988738, .33478546, -.74032013, -1.3684431, .24557522, -1.2860082, -.64568081, 1.2339346, .82646407, -.59570105, .80474385, 1.219591, .19545939, .18091742, -.02399317, .18073731, .12238933, .24345009, .2190794, -.08809054, .21867369, .21857126, -.30556093, -.3698442, .21518371, -.36760659, -.34251401, .87359409, .6485596, -.23214682, .63906773, .70762641, -.24616913, -.27982425, .05720681, -.2790599, -.19068431, .56084516, .4533764, -.16931747, .44997509, .47403009, 1.4051818, .92171756, -.41174286, .89495768, 1.175909, -.37948801, -.48217879, .19474988, -.47760011, -.38279633, -.19345345, -.21595798, .11683694, -.21552271, -.20602553, -.13327704, -.14214321, .02763418, -.14204499, -.09938688, -.19513424, -.2178728, .1104413, -.21743226, -.20336498, -.45336283, -.61008216, .20274556, -.60121035, -.43680847, .19905702, .18149646, -.1180615, .18123871, .21071612, .31701275, .27459232, -.24571319, .27365014, .36689121, .21517695, .19551065, -.09133669, .19521163, .20374592, -.31500546, -.37694124, .10656824, -.37492464, -.27654426, -.23886428, -.27613613, .1915309, -.27517089, -.27959136, -.11233747, -.119213, .05476638, -.11914292, -.11139468, -.65407609, -1.0550305, .18964903, -1.0158838, -.54543842, .23118901, .20950059, -.06747548, .20916214, .1932132, -.1629926, -.1762519, .02808787, -.17607234, -.11427771, .79802628, .60927836, -.14947944, .60194532, .57528354, .07555839, .07326083, -.00813483, .07324919, .04528782, -.29706245, -.35368369, .13760561, -.35189589, -.28959244, -.72628919, -1.1778543, .08714156, -1.1331839, -.45132718, -.59367952, -.92112343, .25838665, -.89215596, -.56684989, -.20404943, -.22927129, .1208015, -.2287531, -.21586937, -.52120876, -.75620574, .27790989, -.73902735, -.53249942, .05033043, .04909361, -.02844995, .04908854, .05243134, -.29237643, -.35807637, .47522164, -.35563591, -.43311541, .33116746, .28590579, -.21937196, .28487922, .36372136, -.41170629, -.5238152, .1055138, -.51878584, -.32948685, -.63828799, -.99745234, .15843317, -.965077, -.50540145, -.10852217, -.1145968, .0345321, -.11454016, -.0933462, -.62646586, -1.0304966, .33150961, -.98915117, -.63842073, .29006217, .2571871, -.08128721, .2565679, .23915427, -.20755921, -.23202555, .07356903, -.23154608, -.18507013, -.45843701, -.61452581, .17006626, -.6058187, -.41502013, -.57597609, -.85161759, .16821868, -.83029147, -.481472, .04791798, .04670435, -.05588205, .04669922, .06354769, 1.1140451, .77362432, -.39965379, .75674035, .99733217, .35442451, .30496469, -.16100425, .30381952, .34327192, -.30706359, -.3659546, .11018847, -.36408372, -.2749208, .01808864, .0179398, -.00431744, .0179396, .01413696, -.60604805, -.9519488, .25558281, -.92035188, -.57260955, -.47452351, -.65396514, .23265321, -.64288539, -.47143104, .03411148, .03356251, -.01259434, .03356103, .03083204, -.07142736, -.07441505, .08533555, -.07439423, -.09549114, -.13154852, -.14018265, .02747933, -.14008828, -.09834132, -.62578576, -.88953038, .04548333, -.87145497, -.32903684, -.54757952, -.84248913, .44234536, -.81697698, -.64253278, .1637329, .15304981, -.02654703, .15293374, .11248793, -.4752366, -.63874586, .13538532, -.62953183, -.39397964, .01884909, .01868321, -.00573015, .01868297, .01596831, -.1200169, -.12775865, .04966883, -.12767549, -.11268504, -.55066135, -.76724507, .087634, -.75335539, -.37597354, -.23388905, -.26350406, .04859864, -.26288086, -.17453852, .16733075, .15538363, -.05492886, .15524162, .14543224, -.24782997, -.28972217, .2529601, -.28854769, -.31438602, -.26174758, -.3045396, .12880019, -.30337895, -.26035781, -.71588996, -1.2542213, .20860676, -1.1908268, -.59797584, 1.1727991, .80654265, -.37037706, .7880042, 1.0062528, -.33457229, -.4067131, .12284605, -.40414026, -.30184945, -.00193528, -.00193703, .00053265, -.00193703, -.00158606, -.12463975, -.13330898, .06790085, -.13320858, -.12825455, -.22502702, -.25179013, .04124696, -.25126096, -.16105112, -.43691789, -.58198797, .21613564, -.57409059, -.4353635, -.32437967, -.38294517, .04671202, -.38119255, -.21421767, .0610175, .05930711, -.02091476, .05929912, .05380185, -.52215097, -.72854958, .13774574, -.71524927, -.42192324, -.18028465, -.19698008, .03506657, -.1967228, -.13160738, -.56020464, -.81533228, .16414995, -.79650289, -.46880049, .07701309, .07456865, -.01046854, .07455572, .04989019, -.4750142, -.65555976, .23728386, -.64435686, -.47486533, -.37174818, -.46250316, .11951458, -.45884551, -.32086045, -.14379597, -.15490357, .05053412, -.15476073, -.12785058, -.33433065, -.40662203, .12589755, -.40403667, -.3041818, .43777177, .36727412, -.15315095, .36539361, .3886408, -.42384435, -.54687488, .12396355, -.54099947, -.35446955, 2.3286877, 1.266299, -1.4264423, 1.1912351, 2.4917372, -.10755589, -.116195, .70570879, -.11607948, -.2536927, -.32505471, -.38866237, .08022933, -.38660108, -.2568968, .6430193, .50937731, -.15644778, .50479796, .50576542, -.02916294, -.02958909, .01222266, -.02958805, -.02749705, -.14202469, -.15306323, .0586341, -.1529204, -.13324042, -.49993967, -.67956219, .11535547, -.66900637, -.38633833, .50595567, .41368356, -.21097591, .41090154, .47624373, -.44157422, -.57764708, .12804833, -.57075842, -.36824522, .1977206, .18065707, -.09933826, .18041203, .19803873, -.56356418, -.83113681, .19258517, -.81059027, -.49641687, 1.0006511, .69854209, -.78505558, .68372653, 1.1627828, 1.2057068, .82210315, -.39678269, .80234749, 1.0487904, .24652153, .22211218, -.07101267, .22171024, .20512811, -.04790089, -.04915003, .03641648, -.0491446, -.05508141, .15522884, .14495182, -.04703418, .14483852, .13135989, .07175052, .06957892, -.01177297, .06956797, .04949052, .54797755, .4387557, -.33223197, .43516301, .58434004, -.30887057, -.3727549, .17603496, -.37056818, -.32264677, -.45451581, -.60069191, .13085035, -.59297729, -.37812404, .77121364, .57993385, -.373342, .57215398, .76294884, -.31715249, -.37584449, .06644612, -.37404464, -.23732598, -.02251018, -.02274116, .00426729, -.02274076, -.01629222, .86506483, .64873029, -.166787, .63986126, .62964607, .27920442, .24757064, -.1098991, .24697501, .25780395, -.16780749, -.18289662, .04934262, -.18267082, -.14059125, -.42845453, -.55207963, .10960382, -.54621033, -.3426797, .02776211, .02740527, -.00827402, .0274045, .02336417, .14395688, .13526741, -.03436767, .13518006, .11251617, .3819375, .32415477, -.22152545, .32270561, .40130947, -.20414445, -.23017274, .1519752, -.22962123, -.23310914, -.42852011, -.57253543, .27074448, -.56460271, -.46328049, -.28122228, -.32706559, .07105758, -.32582573, -.22399928, .77587467, .58943555, -.23157891, .58208049, .65328705, -.21408721, -.24228755, .1325768, -.24167033, -.22991095, -.42270633, -.5491531, .15197741, -.54293455, -.37870018, -.32252737, -.39730027, .26610493, -.3944361, -.38112902, .14527998, .13575976, -.07214054, .13565588, .14494625, -.30306188, -.35596113, .06347804, -.35443015, -.22676292, .78586715, .59766323, -.19976323, .59026271, .62721236, -.40255526, -.51028533, .11332277, -.50553393, -.33240387, -.15995616, -.17365697, .04924995, -.17346164, -.13608573, .02366448, .02340901, -.00600155, .02340855, .01887248, -.55138361, -.81593512, .24152275, -.79541699, -.52759246, .26282695, .23557989, -.06906473, .23511023, .21210067, -.46382619, -.63459868, .24090026, -.62432279, -.46974187, -.27765198, -.32380274, .09043777, -.32253025, -.24069134, -.25639371, -.2954045, .09055007, -.2944192, -.22833781, -.7448588, -1.3224353, .17011573, -1.252506, -.57364181, -.64967696, -1.0348946, .17338872, -.99843094, -.52700563, -.56631178, -.92534445, .69228997, -.88918071, -.76291545, 1.1090896, .74963186, -1.0368868, .73079915, 1.3663591, 1.0910584, .74952844, -.68464578, .73220369, 1.1768758, -.42938471, -.55158796, .09903492, -.54586356, -.33177004, -.61135726, -.92674886, .14990638, -.90054882, -.48211068, -.46009899, -.6280147, .24467719, -.61799632, -.4696511, .30668884, .2693635, -.11258485, .26860894, .27667418, .0195704, .01937981, -.01069719, .0193795, .02016042, -.10546512, -.11103137, .02661959, -.11098243, -.08397494, .81530195, .60637084, -.37528177, .59760197, .7931247, -.189364, -.20871692, .05116993, -.2083879, -.15424575, .77752047, .58711835, -.2940486, .57946865, .70842019, .43963306, .37255515, -.07923969, .37085871, .31288481, 1.1103624, .76321561, -.58380289, .74562605, 1.1291247, -.10208709, -.10731007, .0266489, -.10726556, -.08220224, -.29090748, -.33895313, .05949824, -.33763678, -.21594739, -.45835551, -.60551112, .1210955, -.59775789, -.37055639, -.34599044, -.42026402, .09118512, -.41762664, -.27948643, -.0164071, -.01657064, .04143263, -.01657037, -.02815002, .26081024, .23418477, -.06243106, .23373279, .20402967, -.60770311, -.96990944, .30261078, -.93545769, -.6068748, -.55443466, -.79473823, .13854266, -.77782203, -.43998522, .37219421, .32009456, -.11269455, .31888459, .31488892, -.17241024, -.190336, .12382657, -.19002598, -.19453152, -.12420242, -.13145783, .01669931, -.13138724, -.08016712, -.26109642, -.31959136, 1.1518632, -.31742495, -.53952417, -.24023407, -.27136395, .04665643, -.27069363, -.17528182, -.35782071, -.43620289, .07974605, -.43336357, -.27333173, -.26774043, -.31200026, .11632177, -.31078653, -.25548945, -.04456046, -.04549267, .00956196, -.04548942, -.03361182, .49812955, .41154842, -.13410754, .40905847, .40524961, -.3289724, -.39793901, .11643419, -.39554666, -.29318594, -.0815082, -.08483096, .02386864, -.08480839, -.06819513, -.51891927, -.73602425, .19577587, -.72124959, -.47242142, -.21719685, -.24376479, .06774354, -.24322459, -.18558163, .76571451, .58865994, -.15398813, .58193013, .56521932, .4376258, .37165203, -.0715995, .37000322, .3015657, -.25937774, -.292798, .02421402, -.29208242, -.14824752, .0352206, .0346677, -.00775126, .03466626, .02679159, -.16637039, -.18048157, .03326114, -.18028235, -.12256687, -.59109533, -.89118856, .18194713, -.86663372, -.50284031, -.18898344, -.20749119, .03729979, -.20718963, -.1386313, .02497347, .02466619, -.01292686, .02466556, .0252635, -.38914559, -.49490244, .16359863, -.49016719, -.36729185, -.46840968, -.62844631, .14603499, -.61948898, -.40017155, .4877303, .39793513, -.31740591, .39520248, .53251865, .29130866, .25850627, -.07324233, .25789241, .23165036, .22166568, .20114086, -.08244524, .20082472, .20084645, 2.9151703, 1.4835375, -1.2322409, 1.3764449, 2.7564566, -.70920357, -1.2739795, .27735089, -1.2039408, -.6534321, -.32750475, -.39863738, .15298162, -.39608222, -.3201608, -.14402642, -.15481446, .03892847, -.15467992, -.1173259, .38918005, .33111505, -.16254333, .32967869, .36652204, -.21949453, -.24508302, .04323825, -.24458705, -.16090956, .41702782, .35051293, -.20191108, .3487554, .41257864, -.43528291, -.57853342, .21153592, -.57080205, -.43117389, .36872555, .31084288, -.44941036, .30933727, .49624161, .27868132, .24719459, -.10826872, .24660338, .25620223, -.4355134, -.55827797, .08336106, -.55258096, -.31622686, .26096066, .23215072, -.14285506, .23162207, .2689626, -.62632795, -.99641748, .22888971, -.96149863, -.56418295, -.33556505, -.40664182, .10646655, -.4041511, -.28835813, .30085296, .26298602, -.18970776, .26219454, .3250433, -.54939152, -.84099645, .40271441, -.81611374, -.62411367, .38021192, .32812647, -.07458243, .32694241, .2783381, 1.7252034, 1.0676948, -.46538082, 1.0277966, 1.4044503, -.19943526, -.22237773, .08409164, -.2219389, -.18842082, -.23917223, -.27312948, .09523011, -.27232878, -.22168787, -.05133649, -.05276053, .03569616, -.05275394, -.05730176, -.44571787, -.625897, .55096848, -.61403325, -.60268764, .07902772, .07631622, -.01778952, .07630072, .06056909, -.48695547, -.66943809, .17997538, -.65826864, -.44029173, -.5015471, -.69896654, .18581227, -.68629642, -.4538468, -.36894206, -.46120792, .14823186, -.45740031, -.34300145, 1.1919129, .80877467, -.51160041, .78885357, 1.1327915, -.1832353, -.2018709, .06410404, -.20155561, -.16267141, .17691426, .16462548, -.02669745, .16448336, .11867024, -.35743235, -.45470307, .32569601, -.45034197, -.43659295, -.60044702, -.94377322, .27752394, -.91235823, -.5849157, -.16844988, -.185647, .12942661, -.18535495, -.194386, -.51190636, -.69445151, .09151857, -.68380167, -.3633346, -.3966205, -.49924595, .10322674, -.49486679, -.31904909, -.16643226, -.1838773, .17485578, -.18357315, -.2131711, -.42483516, -.54021187, .08073315, -.53504938, -.30773314, .27024082, .2429945, -.04119511, .24253769, .18188317, -.02732081, -.02770222, .01377701, -.02770133, -.02739832, -.64574301, -1.0066211, .139991, -.97429942, -.48874596, -.15692684, -.17371656, .3280044, -.17341778, -.25279474, -.3044152, -.36912754, .23781199, -.36685174, -.35323642, -.34371398, -.42078217, .12841466, -.41792556, -.3118983, 1.6382384, 1.0091422, -.80651337, .97071305, 1.629791, .32333333, .28196211, -.12773934, .28108315, .29891787, -.6486216, -1.1799054, .62609594, -1.1123358, -.80764015, -.05268509, -.05407984, .01937159, -.05407369, -.04755435, -.65649156, -1.0278427, .12953118, -.99420396, -.48152725, -.49644253, -.67568219, .12540798, -.66509895, -.39539488, -.42369386, -.56064885, .23639241, -.5533852, -.43946331, -.31568126, -.37433512, .07090762, -.3725293, -.24177246, -.03604488, -.0367347, .0239648, -.0367325, -.03963665, 1.7779317, 1.0780795, -.6589181, 1.0343903, 1.609029, -.22416269, -.25456814, .11412351, -.25388299, -.22551595, -.29931665, -.34529826, .02814393, -.34412575, -.17148474, -.4639905, -.62394085, .16580432, -.61491038, -.41484068, 1.0202515, .74670774, -.1177282, .73471942, .6258088, .31428151, .27060095, -.40244129, .26959364, .42998839, .43546456, .36427333, -.19055585, .36234588, .41653609, .0530618, .05177225, -.01680511, .05176703, .04556994, .37512674, .32097724, -.14977056, .31968081, .34801997, -.33165414, -.40802138, .2035771, -.40511567, -.35512119, -.27099835, -.31105942, .04712533, -.31007614, -.19057792, .84549607, .63445801, -.19512218, .62582196, .65341125, .52953109, .42744625, -.28889301, .42419612, .5451508, -.35787252, -.44242206, .13101812, -.43912261, -.32255666, 1.565082, .99618567, -.44049465, .96309072, 1.2922551, .01590784, .01579678, -.002703, .01579666, .0111011, -.19789672, -.22062798, .08844495, -.22019384, -.19063095, -.49807721, -.66188378, .07169645, -.65304871, -.32888218, -.51127417, -.70449968, .12768509, -.69257559, -.4056573, .23609158, .21258804, -.10623156, .21219892, .22793701, -.62344177, -.92780618, .09841196, -.903808, -.42451192, -.00219294, -.00219531, .00092301, -.00219531, -.00207061, -.30067078, -.35935201, .14702875, -.35745532, -.29844999, .8594222, .64902826, -.13141685, .64057786, .579026, .12380921, .11709195, -.0402474, .11703125, .10725674, -.10546415, -.11144036, .04804157, -.11138395, -.10223955, .18980596, .17448034, -.06963094, .17427439, .1711922, .33915942, .29019959, -.33561519, .28902735, .42582039, -.47809611, -.63421765, .0954486, -.62585506, -.35205457, .46050232, .37626187, -.46494908, .37371435, .58205811, -.19188464, -.21328153, .09022851, -.21288476, -.18799721, -.14004254, -.15082998, .06105184, -.15069164, -.13378772, -.63847208, -.94753507, .07803487, -.92336221, -.39920948, .95378281, .66766463, -1.0455829, .65371749, 1.2390699, -.20426911, -.22687891, .05168475, -.22646273, -.16277933, -.31442982, -.37939876, .15159173, -.37717711, -.31063543, .54623381, .44410214, -.1547877, .4409466, .45203757, -.21514947, -.24273071, .10401452, -.24214313, -.21274932, -.35426764, -.44264986, .20194656, -.43901117, -.37009209, .82616424, .61806297, -.26609819, .60947213, .71351247, -.22787564, -.25728937, .06914327, -.25665846, -.19292651, -.44612431, -.58219534, .1109507, -.57537538, -.35347384, -.50342186, -.68985899, .12921207, -.67857699, -.40308726, -.40225981, -.52014785, .19960342, -.51446514, -.40123957, .3748698, .32022487, -.16829833, .31890384, .36165147, -.03682105, -.03745628, .0081431, -.03745445, -.02805459, -.11224373, -.11921681, .06233209, -.11914466, -.11623992, .48933125, .40309301, -.1825126, .4005789, .44378871, .50617895, .41662813, -.14577638, .41400756, .42115482, -.68286009, -1.1935643, .29826066, -1.1337193, -.65277444, .26372656, .23429089, -.14764108, .23374485, .27385141, -.30292479, -.35960796, .10358983, -.35785057, -.26689407, -.47864969, -.70247932, .65971775, -.6855383, -.67113194, -.8591855, -1.828234, .17816862, -1.6653902, -.64073487, .63037315, .4976202, -.21686082, .49301243, .5565047, .31491042, .27564262, -.11882244, .27482942, .28670427, -.05953758, -.0612827, .0175488, -.06127418, -.04992138, -.02611477, -.02646331, .01329718, -.02646253, -.02627367, -.03845548, -.03924331, .02589129, -.03924062, -.04246522, -.54115058, -.88743131, 1.0351439, -.85225139, -.84636104, .43871747, .36637039, -.19874796, .36439484, .42452263, -.32518622, -.39204624, .1120159, -.38977106, -.28720455, .08669957, .08301252, -.0657326, .08298639, .0996051, -.52946363, -.7424546, .13539611, -.72849602, -.42341816, -.35463884, -.44294099, .197771, -.43931257, -.36778025, .05956428, .05767069, -.08298128, .05766066, .08381607, .27637345, .24603888, -.08481906, .24548546, .23487602, .10126586, .0965923, -.04171717, .09655637, .09493441, -.20165523, -.22350769, .04867788, -.22311385, -.15819529, -.59301261, -.9032179, .20418431, -.87710891, -.52367286, 1.0002739, .70795258, -.48261024, .69404949, .9884502, .68971676, .53373595, -.26524847, .52793335, .6319385, .26733013, .2406546, -.04028707, .24021194, .17923817, -.09247594, -.09661992, .01933908, -.09658899, -.0691578, 3.1534746, 1.6498702, -.33316187, 1.5398841, 1.8782554, -.03687639, -.03759705, .02397922, -.03759471, -.04025198, .16865744, .15532297, -.14458957, .15514749, .20186421, -.0629505, -.06490254, .01824187, -.06489246, -.05248469, -.04566691, -.04670114, .01568647, -.04669724, -.04029515, -.30024899, -.35187102, .06147214, -.35039921, -.22295839, .44713673, .37417976, -.15072949, .37220829, .39207545, -.38964399, -.48801251, .10174088, -.48391521, -.31377655, -.20806832, -.23193291, .05856947, -.23147779, -.17180576, -.80197519, -1.728815, .33003233, -1.5698303, -.75157003, -.22493557, -.25485809, .09607418, -.25419673, -.2134278, .61567023, .48534926, -.27956948, .48080332, .59621837, .67565472, .53953802, -.07108595, .53501365, .40187205, -.22402695, -.2529698, .07977056, -.25234843, -.20005883, -.58713112, -.87147522, .15294644, -.84922579, -.47243985, -.2097378, -.2336, .05164782, -.23314857, -.16563235, .19383372, .17561329, -.28216284, .17532839, .27677668, -.30775953, -.37072754, .16836223, -.36859513, -.31712652, -.55845233, -.82821557, .22547442, -.80715832, -.5200357, -.48173993, -.65274949, .14501692, -.64281641, -.4067785, -.20631742, -.23034376, .07037134, -.22987856, -.18162092, .01722956, .01709981, -.00284339, .01709964, .01190706, -.50259861, -.71746511, .28297405, -.70253704, -.52288525, -.43860781, -.58692132, .23285178, -.57870299, -.44745987, -.49294772, -.75400097, .94856672, -.73177275, -.77250246, -.2956642, -.34372594, .04664959, -.34242972, -.20129134, .75824791, .56477418, -.63159017, .55668761, .89886803, -.16455147, -.17953845, .06385487, -.1793113, -.15121999, -.06715729, -.06937811, .01888228, -.06936587, -.05543154, -.25611633, -.29248375, .05512596, -.29162611, -.19338386, -.4484982, -.6017206, .20663079, -.59314527, -.43643088, .49001226, .40718898, -.10974037, .40487174, .37491841, .26582446, .23732234, -.09021163, .23681431, .23361146, .06417361, .06214931, -.0424689, .06213867, .07045924, -.7154646, -1.2402209, .19080603, -1.1798076, -.58022904, 1.0394541, .74139814, -.26787516, .7274744, .83340808, -.39417377, -.51589875, .32166883, -.50972365, -.46409278, -.61776147, -.89675706, .0719622, -.8763298, -.38012405, -.43892263, -.58650386, .22408423, -.57837098, -.44198318, -.54239803, -.80619127, .29432686, -.78546692, -.55739795, -.27040424, -.30848465, .03359927, -.30759395, -.17000523, .57419404, .46268639, -.16543964, .45911074, .47781778, -.68581634, -1.135315, .17172741, -1.0886275, -.54462188, -.34139566, -.42360091, .21612927, -.42033238, -.36933448, .0853953, .0824384, -.01043778, .08242134, .05339517, -.21619342, -.2416878, .05326242, -.24118797, -.17075703, -.44157444, -.56401782, .06743461, -.5584264, -.29737668, -.54566286, -.76580672, .10804706, -.75133917, -.40071037, -.04885488, -.05010196, .0258448, -.05009666, -.04978208, -.52937813, -.72281265, .08020824, -.71125816, -.35557154, -.15359523, -.16708456, .0831097, -.16688739, -.15769299, .281392, .25203696, -.04275163, .25152781, .18917717, .32510889, .28270529, -.15110887, .28178711, .31729206, .20049988, .1832802, -.08451732, .18303411, .18940931, -.36695035, -.45313792, .10320753, -.44979389, -.30291352, .24205785, .21883404, -.0590665, .21846343, .19057672, -.09088204, -.09561142, .07783583, -.09557042, -.10873981, -.25150964, -.28558731, .045075, -.28482024, -.17865904, -.00952394, -.00956779, .00330535, -.00956775, -.00843258, .67717919, .51789168, -.51667663, .511736, .77962425, .17864499, .16455835, -.08882114, .16437347, .17831013, -.51061737, -.70687969, .14149135, -.69456938, -.41942118, -.28657751, -.34044444, .1665885, -.33876688, -.30133743, -.28221276, -.33334084, .14577777, -.33180557, -.28529328, -.42132649, -.54541981, .14204046, -.53940876, -.36945356, .44669922, .37958304, -.05846924, .37791122, .28575638, -.51843687, -.7084093, .09629695, -.69703059, -.37268744, .45617133, .38087787, -.14702021, .37882003, .39405273, .07299621, .07070188, -.0146483, .07068986, .05384424, .58596406, .47540614, -.09861585, .47195975, .40760506, .16315184, .15127378, -.08181999, .15112982, .16331439, -.46449785, -.61387484, .10993518, -.60599177, -.36200233, .19590249, .18100889, -.02932253, .18082041, .13105002, .2810031, .24973033, -.08613577, .24915188, .23871438, -.32960657, -.3937932, .06943555, -.39172308, -.24709722, -.10210757, -.10728008, .02449268, -.10723643, -.07993324, 1.2668389, .83885135, -.6987135, .81555408, 1.3089527, -.6118378, -.89520819, .0882217, -.87395637, -.40422764, .28569954, .24990732, -.2725118, .24916265, .35433289, -.23296601, -.2679531, .1772762, -.26708079, -.26797145, -.49168361, -.67846887, .17956065, -.66688454, -.44279652, -.43464789, -.57365231, .18103311, -.56635612, -.40896648, -.49266584, -.69301951, .25528938, -.67975126, -.49856588, -.24159749, -.27477112, .06863202, -.27401445, -.20010005, .57495002, .46345077, -.16091507, .45988025, .473837, -.18558717, -.20350099, .03850485, -.20321329, -.13842476, -.28784884, -.34272358, .17726758, -.34099062, -.30855275, -.42518782, -.57472746, .37366669, -.56611923, -.51312755, .71594311, .55700096, -.15451504, .55119351, .54106893, -.53498212, -.78679833, .27983439, -.76761996, -.54308759, 1.2211648, .81159155, -.83263031, .78944466, 1.3541816, -.39157239, -.50049687, .1798729, -.49550727, -.38066237, -.25771982, -.29547854, .06597874, -.29455997, -.20617842, .08135206, .07857934, -.01324417, .07856359, .05596682, .33362239, .29226352, -.07023612, .29141197, .2500539, -.13737328, -.14905414, .15702344, -.14888882, -.18096712, -.54291883, -.8808448, .8979184, -.84738204, -.80893239, -.01555449, -.0156845, .01329394, -.01568431, -.01859795, -.38549884, -.49459904, .22669162, -.48951636, -.40691516, -.04629879, -.04735416, .01486959, -.04735015, -.03994748, .47226516, .3981615, -.06173938, .3962348, .30198684, .87022528, .64867769, -.20340832, .63943767, .67538907, -.21432724, -.23950269, .05541127, -.23901104, -.17202608, -.64035317, -.9763625, .11206724, -.94799889, -.45128331, .76228245, .56808727, -.59220036, .55998289, .88289726, -.09002458, -.09426775, .03667102, -.09423443, -.08407981, .25452787, .22714058, -.13257364, .22665071, .25801956, .17830097, .16453833, -.07262131, .16436151, .16652029, -.2825473, -.33145422, .10482735, -.33005048, -.25579711, -.06221518, -.06415457, .02096438, -.0641445, -.05454667, -.56131494, -.82533879, .1898616, -.80524424, -.49275017, -.48135059, -.6330343, .07334239, -.62518623, -.32391871, .09367239, .08847607, -.46591083, .08842806, .20145838, .10862107, .10318687, -.05201347, .10314159, .10706758, .33147718, .28637689, -.20703543, .28535854, .35699378, -.30722738, -.36423445, .08729372, -.36248165, -.2544745, -.4464405, -.58938251, .14713627, -.58187114, -.38853097, -.3595744, -.43830994, .0764879, -.43545891, -.2704374, -.47142656, -.64148963, .18875409, -.63145648, -.43777553, .24541312, .2193413, -.15494364, .21888083, .26525674, -.58105231, -.8517778, .13736909, -.83135845, -.45267151, .30260782, .26488207, -.16305991, .26410097, .31025051, .0110551, .01100583, -.00084519, .01100579, .00591159, .55766006, .44579524, -.31282394, .44209253, .5794594, 1.9648421, 1.1338703, -1.1671211, 1.078703, 2.080976, .63151996, .49431858, -.31861049, .48940976, .63341461, -.00529967, -.00531398, .00302975, -.00531397, -.00554172, 1.5962708, 1.0010143, -.58776838, .9655851, 1.441506, .26608829, .23716281, -.10363647, .23664013, .24483004, -.48514944, -.66757355, .18890618, -.65637103, -.44635021, -.6358893, -.99466112, .16524883, -.96224017, -.51126234, -.2331373, -.26443297, .07716899, -.26373501, -.20318834, -.14935425, -.15984336, .01727818, -.1597207, -.0916898, .54322304, .43989854, -.19956951, .43665203, .49018519, -.0810468, -.08489645, .09067803, -.08486599, -.10600702, -.12204413, -.1296683, .03339678, -.12958898, -.09982886, -.67868636, -1.0744986, .11370098, -1.0376058, -.47138687, .19493357, .1792266, -.05507847, .17901596, .16116165, -.51870631, -.74207038, .22827026, -.72644398, -.49709661, -.23973607, -.27482379, .11680039, -.27397107, -.23767328, -.09872373, -.1036863, .03006509, -.10364474, -.08368453, .02495051, .02466855, -.00597504, .02466801, .01952135, .42384999, .36061221, -.08212641, .3590479, .30901465, -.15758965, -.17049964, .03890342, -.17032359, -.12455402, .59322598, .4858421, -.05397439, .48262808, .33616516, -.2563769, -.2964207, .10952121, -.29538267, -.2432738, -.4295476, -.54556631, .07142896, -.5404029, -.29760643, -.21958413, -.24341005, .02487112, -.24298009, -.1338574, -.04369004, -.04461727, .01269149, -.04461399, -.03645602, -.41874456, -.53823887, .12305241, -.5326267, -.35075685, .08686166, .08333116, -.04195716, .08330726, .08586789, -.36585313, -.44874397, .0834805, -.44563985, -.28167148, .11738607, .11131056, -.03890136, .11125819, .1023472, .35560178, .30706947, -.12216902, .30597027, .3137904, -.5001129, -.68949032, .15398961, -.67778162, -.42548656, -.10989825, -.11711279, .11600216, -.11703392, -.14098055, .4155222, .35125894, -.14542226, .3496118, .36893494, .40291287, .34473955, -.08477213, .34334647, .30192688, .50625566, .40947481, -.3731945, .40641881, .57619348, 1.0466268, .73464619, -.45180424, .71952893, .99660106, .26278628, .23239288, -.2228496, .23180878, .31338803, 1.7372719, 1.0744682, -.44852277, 1.0342114, 1.3937451, .16804624, .15619421, -.04693619, .15605505, .13839863, -.53752217, -.76754263, .1661654, -.75154682, -.45791808, .26624036, .23623799, -.15168422, .23567611, .27808191, -.41351894, -.5389088, .19659927, -.53265997, -.40663139, .34152217, .29540574, -.1498275, .29437223, .32695384, -.21282338, -.2392076, .08820191, -.23866394, -.19991662, -.31649299, -.38506154, .19778463, -.38260458, -.34091824, -.31911672, -.37587714, .04794976, -.37420349, -.21374953, -.63312167, -.96191132, .11690475, -.93442706, -.45423316, .43790732, .36528248, -.21563707, .36328821, .435685, -.52274944, -.78805245, .48544747, -.76635138, -.64256904, .43509123, .36497234, -.16228704, .36310054, .39460098, -.18794604, -.20805059, .0773634, -.20769289, -.17614783, -.23528413, -.26922367, .12199881, -.26841067, -.23815349, -.06893757, -.0714488, .03501924, -.07143356, -.06930261, .63560786, .49760006, -.30028077, .49266523, .62370422, -.62637435, -1.0223308, .30532748, -.98255517, -.6210901, -.30282195, -.36667935, .23495172, -.36445139, -.3505859, .50248074, .41563777, -.11690826, .41315421, .38937794, -.28604093, -.33368086, .07229241, -.33236472, -.22785559, -.22829199, -.25807182, .07373359, -.25742632, -.19734475, -.34891329, -.43526124, .21662708, -.43173433, -.37502417, -.22221942, -.24911494, .05207149, -.24857382, -.17260949, .30981925, .26856423, -.27955636, .26765239, .37720032, -.49456353, -.73670042, .63630577, -.71755689, -.67771434, -.26229629, -.30278254, .08375827, -.30174529, -.2258815, -.71632293, -1.2291807, .17229669, -1.1714199, -.56127394, .34154982, .30050952, -.04139624, .29969031, .2129608, .40727218, .34399589, -.17999362, .3423667, .39085788, .29875967, .26253723, -.13319591, .26180772, .28755545, -.45451117, -.60090033, .13199155, -.59316343, -.37921754, -.15765517, -.17200332, .08940932, -.17178602, -.16441562, -.18737951, -.20661345, .05759028, -.20628502, -.15932153, -.54151616, -.75482553, .10101945, -.74112589, -.38983959, .6651935, .49731305, -1.5474206, .49036965, 1.1104818, -.17299421, -.18933473, .05700241, -.18907791, -.15054353, .16132823, .15041734, -.04274356, .15029447, .13054908, .05094474, .04957028, -.06186615, .0495641, .0684795, 1.1153546, .77050647, -.47416692, .75321395, 1.0566449, .53865389, .44629203, -.06102288, .44367111, .32838308, .62185488, .50062682, -.0916739, .49672481, .41388969, 1.9581085, 1.1624729, -.55199188, 1.11142, 1.6176283, -.58435992, -.85176758, .11996326, -.83194145, -.4343232, -.49004157, -.69481161, .30752332, -.68089287, -.52859692, -.51441607, -.68946586, .06744246, -.67970639, -.32925382, -.38732235, -.49348365, .17910101, -.4886905, -.37736161, .14886954, .13826206, -.13712314, .13813622, .18249494, .09452706, .0902796, -.055915, .09024781, .09997472, -.15180546, -.16290956, .02109803, -.16277432, -.09907153, -.33392116, -.4061755, .12774464, -.40358964, -.30541254, .05084907, .04963439, -.02011871, .04962956, .04703257, .61427892, .47335157, -.8091448, .46803555, .84839055, .24274327, .21785063, -.11626167, .21742618, .23928767, .34508271, .29991148, -.09760403, .29892987, .28539611, -.50345497, -.68080084, .09757147, -.67057633, -.36707773, .39094818, .33256386, -.15846872, .33111825, .36453338, -.47564646, -.65682294, .23756413, -.64555746, -.47547366, -.43167621, -.55455928, .09503768, -.54880177, -.32840821, -.25949473, -.29454994, .03433652, -.2937632, -.16660235, -.42367156, -.54572744, .11877438, -.5399414, -.34935781, 2.0599325, 1.2169396, -.42155479, 1.1625164, 1.5294314, .54481395, .43884998, -.2566489, .435447, .53409923, .10119038, .09684596, -.02091624, .09681488, .07538137, -.1659091, -.18089615, .05603981, -.18067085, -.14557575, -.30496663, -.35659426, .04862747, -.35514469, -.20835572, .0622492, .0606153, -.00962284, .06060815, .04209207, -.41547887, -.54296427, .20320623, -.53653718, -.41243448, -.51611985, -.72804946, .18522928, -.71388374, -.46211165, -.06014845, -.06200558, .02530336, -.06199603, -.05678308, -.34475253, -.42606263, .17467911, -.42289495, -.34628097, -.64888003, -1.1024683, .34623735, -1.0524864, -.66309778, -.32206743, -.37928227, .04416306, -.37759727, -.20924781, 1.3792933, .9000614, -.56238908, .87329777, 1.2886254, -.56508561, -.80608492, .10943776, -.78937982, -.41191591, -.31537858, -.39182458, .4253564, -.38876515, -.43901813, .65138603, .51238252, -.19751333, .50749525, .55135895, -.21618638, -.24094113, .04258046, -.24046981, -.15847678, -.37262516, -.45418704, .0573607, -.4512348, -.25161098, .36262864, .31224063, -.12775718, .31107892, .32268579, .57799027, .46468136, -.17640708, .46101422, .49030052, -.5556686, -.82697831, .24725136, -.80558398, -.53448247, -.16644817, -.18401825, .18451181, -.18370976, -.21703881, -.54039333, -.76743451, .14469157, -.75192128, -.43883144, .44948898, .3741224, -.19910448, .37203039, .43170099, -.14057355, -.15093678, .04156937, -.15080958, -.11799679, -.58037643, -.87051895, .19566406, -.84712209, -.5089247, -.6227822, -.95735035, .15617349, -.92847585, -.49480783, -.57804723, -.82733256, .09670195, -.80986804, -.40129519, .78448866, .58944179, -.33672365, .58149008, .74557668, 1.054146, .74435402, -.34479284, .72954213, .91508885, -.34208617, -.40985682, .05801577, -.40763371, -.23856992, .25856674, .23084893, -.11230974, .23035499, .24671615, -.68810825, -1.1657844, .21064479, -1.113482, -.58429398, .62564676, .50140734, -.10983529, .49733552, .44137741, -.42905605, -.57230462, .25804445, -.56446446, -.45630041, -.02524752, -.02554976, .00666823, -.02554916, -.0204092, -.51515661, -.7777138, .55681303, -.75615134, -.66609982, .37998884, .32840472, -.067694, .32724257, .26938533, -.03708866, -.03776797, .01298699, -.0377659, -.03293621, .15859075, .14863505, -.0233522, .14853098, .10551264, .15149813, .14148303, -.05629751, .14137279, .13722859, -.2374756, -.27021291, .08110957, -.26946325, -.20914461, -.16377675, -.17747129, .03366691, -.17728068, -.12178092, -.40330466, -.50351353, .06974952, -.49940434, -.28310393, -.47998837, -.65494177, .17318064, -.64451623, -.43052356, -.5687609, -.80815922, .09701883, -.79177286, -.39741888, -.5474604, -.80926025, .25159329, -.78901937, -.53228573, .36179061, .311102, -.14281246, .30992376, .33437738, .07301298, .07053646, -.03005509, .07052247, .06843045, -.54009147, -.75365861, .10532974, -.73989159, -.39461345, -.07667632, -.07981353, .0401393, -.07979214, -.07785875, -.52343237, -.73890811, .16773808, -.7244704, -.45129543, -.40856945, -.52653791, .16097394, -.52093341, -.37737441, .52423996, .42917274, -.14830522, .42632233, .43359296, -.36437603, -.45830694, .19866664, -.45431343, -.37504627, .06421078, .06229403, -.02512568, .0622845, .05917268, -.17963938, -.19752144, .06356216, -.19722529, -.16008252, .01168468, .01162184, -.00298217, .01162178, .00933825, .01270297, .01262402, -.00567896, .01262394, .01223779, .12822104, .12126438, -.03041667, .12120151, .10000462, .34992171, .30594363, -.05573344, .30502576, .23898054, -.18220258, -.2012022, .08142686, -.20087264, -.17551015, -.51643924, -.73663542, .22456911, -.72137604, -.49295373, -.13668587, -.14635447, .03722035, -.14624059, -.1116227, -.08592909, -.08959026, .02273354, -.08956428, -.06950123, -.29890749, -.35627346, .13731366, -.3544498, -.2905845, -.14127667, -.15344908, .1393806, -.15327452, -.17719756, -.08596702, -.08951136, .01715288, -.08948702, -.06329124, -.17241445, -.19288784, .34314038, -.19248367, -.27324342, -.10304256, -.10825622, .02254455, -.10821227, -.07822909, .23801067, .21452616, -.09067178, .21414079, .21738605, .00781653, .00778987, -.00120038, .00778985, .00527383, .45498075, .37550619, -.29374233, .37320943, .49544356, -.30898377, -.36656602, .08595257, -.36478792, -.25412852, 1.3919557, .93074907, -.23987551, .90608786, .97593806, .90259427, .66739667, -.20993602, .65736604, .69935986, .86892751, .65294884, -.14804341, .64414622, .60691619, -.27612326, -.32454883, .1382021, -.32314074, -.27621687, -.6634974, -1.1259087, .2863091, -1.0750947, -.63170531, -.13891881, -.14945591, .05751103, -.14932285, -.1304471, .56019835, .45185643, -.19152775, .4483963, .49353177, -.64258415, -1.1112944, .44130738, -1.0576033, -.71429411, -.49223171, -.69701834, .28999517, -.68315682, -.51990019, -.06630194, -.06856965, .02792265, -.06855672, -.06261519, .95455463, .69116295, -.30250445, .67929908, .81995077, -.44260523, -.57963155, .12921138, -.5726631, -.36993147, -.57961396, -.8695938, .19844934, -.84619337, -.51088024, .39122666, .33156949, -.20012735, .3300616, .39421315, .08841621, .08509843, -.01697395, .08507768, .06426269, -.26051347, -.3008352, .09023165, -.29979934, -.23050645, -.18984637, -.21023619, .07363499, -.20987196, -.1744374, -.1977214, -.22011883, .08009159, -.21969695, -.18432097, -.59209368, -.86580004, .11361261, -.84531004, -.43027468, 1.0007412, .72745756, -.17853491, .71526918, .70979383, -.19851116, -.22191649, .10527669, -.2214577, -.20244669, -.2998424, -.34861962, .04191862, -.34730313, -.19606843, -.23239053, -.26236909, .05883541, -.26172644, -.18522597, 1.3247754, .90085441, -.20449846, .8789053, .8953679, -.07615355, -.07884554, .01222015, -.07882968, -.05213895, -.35850781, -.43313761, .05580867, -.43056679, -.24298324, -.16909033, -.18442839, .04974666, -.18419685, -.14169151, .25692835, .23019802, -.08599227, .22973564, .22475248, -.48906897, -.65652377, .1046771, -.64713167, -.36858752, -.10909284, -.11484912, .02026746, -.11479852, -.0784285, .0486299, .04746228, -.03015713, .04745761, .05224872, -.52512392, -.76920343, .30500905, -.75083593, -.5520208, -.02634513, -.02675419, .04700672, -.02675313, -.04025906, -.37580779, -.48457198, .31869806, -.47939288, -.44817435, .45408324, .38201788, -.09643806, .38012303, .34133682, .16371874, .15235593, -.04922592, .15222463, .13818902, .01009116, .01004427, -.00255849, .01004423, .00804696, .74603482, .56862893, -.27543584, .56170049, .67430474, -.22530933, -.25282642, .04992479, -.2522678, -.17177826, -.54387407, -.77710046, .15291264, -.76084916, -.44890733, .5275074, .43433477, -.10276098, .43161257, .38527584, -.05335427, -.05465682, .00867738, -.05465152, -.0366932, -.39039911, -.4915102, .11784698, -.48719165, -.32995549, -.18714887, -.20426998, .02362404, -.20400933, -.11828223, .3187253, .27982556, -.08532863, .27903696, .25881291, .12342615, .11646371, -.06042813, .1163983, .1225635, -.57222779, -.84842244, .18480835, -.82687967, -.49464827, .93255535, .67231233, -.42919888, .66046383, .90715035, .45855083, .37478395, -.47297595, .37225421, .58373358, .3395952, .29600141, -.0894222, .29507223, .27424127, .13959118, .13104366, -.05065634, .13095649, .1254469, .03360636, .03312423, -.0049253, .03312307, .02232383, .00180669, .00180514, -.00057417, .00180514, .00155338, -.32231295, -.38924918, .12868142, -.38694878, -.29902015, -.63662885, -1.04481, .28445515, -1.0032658, -.6132047, -.31414915, -.38190875, .20377712, -.37949137, -.34262502, .20454735, .18679783, -.08010264, .18654155, .18854782, -.3243895, -.38470337, .05731274, -.38284517, -.22933565, -.23104776, -.26402797, .13061165, -.26324615, -.24069763, .10205012, .09755886, -.02480805, .09752593, .08024474, -.07631875, -.07914865, .01805655, -.07913117, -.05947152, .27159428, .24281548, -.06699882, .24230851, .21460811, -.26951922, -.31386735, .1067351, -.31265676, -.24936696, -.01261613, -.01268603, .00182045, -.01268596, -.0083372, -.57893745, -.86150815, .17777217, -.83923332, -.49209885, .24501166, .21950425, -.12662078, .21906274, .2477248, .45667656, .37687392, -.28649241, .37456678, .49255363, -.07951973, -.08237394, .00984906, -.08235687, -.04994111, .06942818, .06716607, -.03072466, .06715379, .06665962, .79464256, .59417293, -.37102405, .58588489, .77670941, -.07309122, -.07630684, .10873895, -.07628327, -.10512722, -.27563222, -.31881566, .06273292, -.31769282, -.21202895, .17641173, .1643809, -.02272453, .1642443, .11225178, -.29277417, -.35056993, .19670598, -.34868067, -.32307575, .69660075, .53600357, -.31559827, .52991679, .67407905, 1.0327953, .74571352, -.17910779, .73269197, .72564519, -.39980428, -.49586405, .06023685, -.49205284, -.26803759, -.59287685, -.91220485, .2342961, -.88457847, -.54816084, .27674917, .24756534, -.0547607, .2470537, .20318449, -.17734954, -.19375534, .03964697, -.1935028, -.1356126, .0558028, .05430399, -.02862857, .05429728, .05628343, -.11720558, -.12416229, .03029124, -.12409352, -.09406207, .51045502, .41547288, -.25090773, .4125521, .50755877, .0747963, .07216217, -.03538748, .07214671, .07343109, -.42009588, -.56549866, .37571022, -.5572574, -.50994885, -.57154547, -.8812774, .32309047, -.85432632, -.59541335, -.26265359, -.30331547, .08464909, -.30227065, -.22688528, 1.8542891, 1.1343047, -.36603667, 1.0898937, 1.3603056, .17316308, .16018471, -.06810967, .16002279, .15985141, -.57386658, -.85162255, .1830963, -.82990081, -.4940571, -.27591827, -.31915467, .06229918, -.31803025, -.21168549, -.52559745, -.7623008, .25837044, -.74501665, -.52262852, -.13829099, -.14848161, .04722347, -.14835658, -.12178446, .0830565, .07987642, -.03392164, .07985613, .07763985, 1.2875637, .85976724, -.46793907, .83683432, 1.1576721, -.69746722, -1.1603542, .15792818, -1.1117194, -.53560639, -.20963124, -.23636886, .12325868, -.23580212, -.22126862, -.16887024, -.18536799, .0900327, -.18509983, -.1725224, .02403166, .02376895, -.00595373, .02376847, .01901643, -.48195017, -.63325837, .07103345, -.62545807, -.32074931, .31232972, .27525572, -.07414351, .2745246, .24365571, .1673552, .155558, -.04825875, .15541955, .13930333, -.62837383, -1.0043814, .23556385, -.96848532, -.57085385, .2660056, .23771925, -.08215224, .23721919, .22653935, -.67000496, -1.1240995, .23703154, -1.0754592, -.5970317, .61591255, .48971449, -.18441502, .48544991, .51914435, .03259064, .03199139, -.06210725, .03198955, .050908, -.50043132, -.72604011, .38463098, -.70954942, -.57754754, .18283235, .16856457, -.06639599, .16837925, .16434606, -.15025921, -.16169425, .03152725, -.16154937, -.11249488, -.31241386, -.3780408, .1783969, -.37575979, -.32655723, 1.303822, .86084416, -.60888903, .83660576, 1.2744855, .69195681, .52797272, -.48035167, .5215896, .77193801, 1.261634, .84300644, -.53901197, .82059233, 1.1971955, -.35212988, -.43131017, .10782961, -.42836703, -.29903677, -.27241679, -.32385492, .25784259, -.3222458, -.33699035, .16284675, .15181856, -.04018553, .15169421, .12869232, -.43131531, -.57213497, .21730541, -.56459337, -.43241102, .5068062, .41628461, -.16187428, .41361066, .43647954, -.41792042, -.55391493, .27432955, -.54665519, -.45761114, -.33688825, -.41594368, .20329602, -.41287909, -.35868251, -.59286939, -.87463123, .12900077, -.85297499, -.44927624, -.26509378, -.30409919, .05431984, -.30314626, -.19690761, .110943, .10576846, -.02226059, .10572826, .08183181, -.40357001, -.52012977, .17796044, -.51459058, -.38701733, .55572376, .45209093, -.130598, .44889726, .43207733, .22159764, .20188713, -.0544899, .20159543, .17491435, .51081102, .40964654, -.53803045, .40633965, .65481576, -.20711017, -.23205584, .08816765, -.23155637, -.19629717, .07329426, .07115667, -.00700367, .07114629, .04221809, .1190697, .11262297, -.05389371, .11256483, .11518348, -.02651643, -.02685975, .00900583, -.02685901, -.02330923, .46224268, .38664271, -.11878693, .38459507, .37026522, -.30832079, -.36700403, .10118452, -.36515374, -.26794762, .59328448, .46800323, -.36463604, .4636433, .6355336, -.65286707, -1.0805997, .25421176, -1.0361892, -.60065494, .150074, .1397441, -.09089028, .13962572, .15997525, -.12434117, -.13281068, .0583834, -.13271461, -.12176331, 1.1347334, .78499853, -.39354633, .76751259, 1.004472, .06335567, .06159726, -.01410533, .06158913, .04837951, .04946144, .04837481, -.01150543, .04837083, .03832558, -.50081414, -.73378689, .44749073, -.7162414, -.60774641, -.06709695, -.06921612, .01282192, -.06920497, -.04869258, -.08395361, -.08776157, .04641813, -.0877328, -.08681581, .00709072, .00706405, -.00633969, .00706404, .00860649, -.01384978, -.01393683, .00266246, -.01393674, -.01007085, -.31333024, -.37345682, .09410699, -.37154563, -.26437405, .3459756, .30014247, -.10917801, .29913459, .29676912, .05033621, .04904892, -.04126522, .04904343, .05935515, .27297642, .23839854, -.44293958, .23767122, .40414907, -.22933082, -.27152466, .85380151, -.27023816, -.44782045, -.35040168, -.41739729, .03751391, -.41527542, -.20962909, .28805578, .25385397, -.14204666, .25317931, .28672886, -.65490533, -1.0599143, .19490193, -1.0200478, -.5508936, -.47018372, -.61418078, .07468916, -.60693471, -.32082947, -.47721825, -.63924909, .12138493, -.63023495, -.38095729, 1.3476126, .88016734, -.65872221, .85410151, 1.3374805, -.40137402, -.50502353, .09267038, -.50060927, -.3102343, -.11566665, -.12280419, .04637906, -.12273083, -.10746228, -.64272384, -1.0352977, .21481796, -.99709771, -.56197432, 1.1198415, .78055866, -.33657388, .76386521, .94509292, -.37840693, -.47789095, .16625793, -.47357901, -.36244616, .35985366, .31101251, -.10441355, .30991237, .30015546, -.51498973, -.74001592, .26070601, -.72405173, -.51712166, -.4990457, -.68787284, .15597986, -.67620687, -.42670368, -.36024144, -.4345239, .05036177, -.4319889, -.23556248, .10090429, .09583676, -.09734933, .09579437, .12562056, .10500037, .1005026, -.01522613, .1004705, .06950249, -.55590106, -.80661548, .16621952, -.78828286, -.46834836, .97445552, .71012257, -.20075028, .69840821, .72510918, .07514112, .07271582, -.01493122, .07270277, .05524507, -.47107749, -.65198934, .26838357, -.64065111, -.49202844, .4069781, .35245994, -.03370757, .35124777, .22351148, -.49908369, -.72063411, .36333215, -.70467725, -.56566615, .79057675, .59611118, -.27347639, .58826455, .69921805, .08300378, .07991925, -.02564544, .07990015, .07069879, 1.3209475, .88013486, -.40927206, .85640889, 1.1261711, 1.1385706, .77137101, -.77741171, .75222023, 1.2631851, -.14866611, -.16067507, .05542297, -.16051359, -.13480767, -.44572032, -.58061113, .1066508, -.5739016, -.34863661, 1.2907402, .84279895, -.93782602, .81780937, 1.4619863, 1.0002664, .6747233, -2.5314396, .65760149, 1.7174192, .16224712, .1507751, -.06376113, .15064005, .14973155, -.58306357, -.88826504, .23450017, -.86256129, -.54225262, -.60546947, -.94470352, .2370439, -.91424776, -.55806026, -.04588784, -.04702499, .03300025, -.04702029, -.05179813, -.12428197, -.13234103, .03921224, -.132254, -.1065997, -.25465265, -.29114693, .06175708, -.29027839, -.20008032, -.22189215, -.24960362, .06676593, -.24902841, -.18733672, -.04215724, -.04303719, .01460919, -.04303412, -.03730784, -.46370116, -.61126413, .10478294, -.60355598, -.35584892, -.1524219, -.16487794, .04980965, -.1647085, -.1322755, 1.0631753, .75853504, -.22129347, .74431333, .79384572, .55206403, .44506498, -.22111313, .44164051, .51271318, -.11179798, -.11844282, .04470382, -.11837704, -.10377215, -.28236901, -.3243892, .03560427, -.32335101, -.17839748, -.62694557, -1.1149174, .68460729, -1.0556368, -.81341166, .01335705, .0132603, -.01529862, .01326018, .01760764, .04115702, .04034471, -.01850457, .04034204, .03972516, .01838351, .01821034, -.01302698, .01821006, .02064953, .26479015, .23667301, -.08394001, .23617666, .22747529, .48889433, .4011329, -.22931042, .39852767, .4785874, .5222803, .43058076, -.10359255, .4279173, .38375608, -.30676865, -.3580404, .04235269, -.35661899, -.19976113, -.34268654, -.41891825, .12481144, -.41611461, -.30833737, -.07302125, -.0755844, .01610214, -.07556941, -.05558241, -.53696253, -.74382336, .0957976, -.73081965, -.38085313, -.42031073, -.54401294, .14415932, -.53802518, -.37068461, -.01591942, -.01604737, .00779645, -.0160472, -.01580983, -.0188094, -.01896496, .0026473, -.01896475, -.0123271, .70188734, .54645815, -.17523172, .54079296, .55683413, -.3441711, -.41329873, .06069805, -.41100009, -.2431744, -.04686378, -.0479702, .01831092, -.04796584, -.04316565, -.56945387, -.80345967, .08467915, -.78780703, -.38010874, .82247946, .62664704, -.128373, .61898959, .55793629, .10768572, .10302446, -.01375552, .10299085, .06832942, -.19258597, -.21414592, .09032336, -.21374456, -.18852102, -.32378256, -.40978659, .61736445, -.4060211, -.50585515, .46677348, .39278085, -.07630821, .39083757, .3215668, .05401344, .05258224, -.03271933, .05257593, .05758102, -.22367683, -.25427639, .12370828, -.253581, -.23132554, -.44651825, -.61106296, .32816171, -.6011534, -.5076902, -.48923259, -.68118483, .22278358, -.66890378, -.47422158, -.39463212, -.51350542, .2746272, -.50761948, -.44060843, .65042399, .51832042, -.10674184, .51389442, .44866197, -.48063527, -.6859908, .40332796, -.67173158, -.57118028, .21558589, .1973213, -.04111851, .19706381, .15635173, 1.2116469, .8244019, -.40966174, .80437457, 1.063496, -.29438491, -.36331022, .58922179, -.36064427, -.46742646, -.20520111, -.22818804, .05463765, -.22775983, -.16632613, .35596893, .30277928, -.33753765, .30146157, .44061452, .08897616, .08515727, -.05836642, .08512997, .09740475, 1.4483664, .95547149, -.26974832, .92846127, 1.0421139, .04825085, .04712187, -.02522913, .04711747, .04897571, -.20903291, -.23002077, .02022173, -.2296702, -.12089988, -.5890277, -.89836948, .21952511, -.87223592, -.53406635, -.29072761, -.34975442, .25196987, -.34777063, -.34923443, .31366216, .27510212, -.10497666, .27431477, .27437782, -.49735208, -.65677986, .06244199, -.64839273, -.31377009, -.00493755, -.00495056, .00428246, -.00495055, -.00593265, -.14535234, -.15625504, .03659025, -.15611888, -.11563247, -.5964309, -.90336615, .18057337, -.87792773, -.50458537, -.00992831, -.00998084, .00820446, -.00998079, -.01173843, -.05324062, -.05451998, .00769293, -.05451486, -.03519946, .74723262, .58871995, -.06104652, .58317891, .40850826, .92386917, .66813996, -.41115462, .65658666, .88869357, .4894384, .40733204, -.10135246, .40505181, .36482685, .59609854, .48339414, -.08819533, .47987366, .3972256, -.23882443, -.26915205, .04202611, -.26851201, -.16861733, .40116282, .33785748, -.24326036, .33620229, .42780668, .0479421, .04685654, -.01956438, .04685244, .0448033, .53941314, .43976727, -.14773511, .43672479, .44135249, 3.8526804, 1.8217191, -.75647537, 1.6619172, 2.8213064, -.12455221, -.13244019, .03175268, -.132357, -.09950336, -.52318843, -.72541264, .12008382, -.71265968, -.40359296, .13619695, .12835979, -.03341989, .12828468, .10742943, -.09062037, -.09500845, .04362382, -.09497306, -.08948189, -.22329489, -.25168974, .0727166, -.25108967, -.19355618, .67370954, .53136698, -.13281006, .52641064, .49400967, -.20243394, -.22276238, .02616932, -.22242277, -.12896238, -.27365042, -.32240267, .16586027, -.32096284, -.29177956, -.05991093, -.06182501, .03502458, -.06181482, -.06311584, .07493902, .07205309, -.08161657, .07203458, .09714224, -.57627448, -.84764461, .15470794, -.82696848, -.46838228, .09873071, .09432918, -.03659185, .09429649, .08935242, .27590214, .24526493, -.09739294, .24469949, .24567212, -.38698872, -.49057608, .15557606, -.4860064, -.35985134, -.06259506, -.06461343, .02669906, -.06460259, -.05936567, -.06550517, -.06768315, .02414352, -.06767108, -.05917349, -.55225301, -.80145349, .17567744, -.7832224, -.47497861, -.00714523, -.00717403, .01000028, -.00717401, -.0100699, 1.2602841, .82671822, -.98172356, .80272251, 1.4610061, 1.043912, .73341473, -.44646877, .71840001, .99094516, -.43132456, -.5662489, .16893532, -.55931775, -.39760601, .39438992, .33470387, -.17201905, .33320649, .37683629, -.50414255, -.67732771, .0836691, -.66758313, -.34906041, 1.8470935, 1.1320365, -.35763665, 1.0880446, 1.3463251, .6694033, .51885462, -.3132809, .51328419, .65480684, -.2755584, -.31846568, .06013792, -.31735681, -.20902677, -.53109785, -.70632029, .04370179, -.69684025, -.29104452, -.38016339, -.48416495, .20549193, -.47947802, -.39017112, -.21644843, -.24806102, .26047917, -.24729436, -.29007076, .22464717, .204938, -.04238525, .20465029, .16233627, .18255798, .16745986, -.12147509, .16725206, .20080427, .18834064, .17271266, -.09791501, .17249686, .19080473, -.35425951, -.4428542, .20514244, -.43919807, -.37202848, .21969688, .1999514, -.0650006, .19965615, .18444422, .122713, .11616948, -.03648803, .11611136, .10319386, -.42723475, -.55833711, .1626259, -.5517272, -.39010748, -.02451718, -.02479725, .00557298, -.02479671, -.0188518, -.04687689, -.04802464, .02506269, -.04801996, -.04793563, .05305057, .05167392, -.03107604, .05166797, .05592577, -.31050077, -.37292577, .13922555, -.37084803, -.29942733, .20887052, .1890275, -.17334826, .18871394, .24730596, .12160078, .11432671, -.12128972, .11425424, .15307663, -.4786629, -.6404824, .11557347, -.63151775, -.37553397, .69538074, .5308133, -.45327777, .52441604, .75964948, .07554328, .07283333, -.03894072, .07281713, .07631476, -.16002451, -.17249543, .02306356, -.17233363, -.10570847, .28745241, .25362713, -.13105163, .25296582, .27874138, -.31900993, -.38422716, .12564022, -.38202034, -.29461557, .15846756, .14444768, -.75377929, .14424131, .33577754, .67802328, .53342129, -.14224838, .52834012, .50760066, .32227808, .27988621, -.17800649, .27896053, .33315203, -.689705, -1.2063613, .27705579, -1.1457302, -.64117216, .50862172, .41457705, -.23910062, .41170299, .4982724, -.55756118, -.81008919, .16580611, -.79154937, -.46889096, .6659468, .51830268, -.27094785, .51291508, .6217249, .54504791, .4418793, -.18302942, .43865311, .47731683, -.23168171, -.26098984, .05206213, -.26037367, -.17746463, 1.5564676, .98481622, -.55095472, .95125094, 1.3872094, -.21817516, -.24439497, .05716511, -.24387114, -.1758965, -.11225338, -.1190164, .04839388, -.11894854, -.10684144, .79514812, .59562841, -.34278122, .58742223, .75679984, -.21647274, -.24183736, .0502126, -.24134324, -.16757776, -.35997872, -.44684088, .14337273, -.44338005, -.33369529, .40854687, .34382458, -.21996117, .34212582, .4187485, -.1530492, -.16604881, .06557914, -.16586503, -.14537374, -.14413865, -.15581035, .07238166, -.15565302, -.14434657, -.09408929, -.09840609, .02053462, -.09837309, -.07137273, -.39301475, -.48727188, .06827468, -.48353887, -.27629252, -.24605572, -.28276665, .10912952, -.28185731, -.23641755, -.74467796, -1.2573597, .10835057, -1.2016485, -.49347603, -.4022203, -.52233619, .22385208, -.5164387, -.4168435, .06682166, .06472335, -.02944639, .06471237, .06406668, .57766322, .46671261, -.13758116, .46319305, .45114152, -.01968855, -.01987486, .00607468, -.01987457, -.01676204, -.72534761, -1.3803908, .35614986, -1.2895402, -.72097197, -.39755281, -.50932555, .17015997, -.50415182, -.37747861, .05541468, .0540372, -.01466541, .05403149, .04482545, -.33090587, -.40446483, .16434529, -.40176137, -.33016579, -.0854305, -.08925077, .03581858, -.08922231, -.08056037, -.20923584, -.23549068, .11068174, -.23494313, -.2132027, -.38497634, -.48980343, .18049086, -.48510088, -.37680596, -.55067069, -.77949325, .11744861, -.76402275, -.41452806, .3514565, .30426126, -.11196786, .30320938, .30242813, -.36442407, -.45596798, .1683269, -.45217357, -.35492169, .55862248, .45711991, -.09137459, .45407064, .38491433, .98757975, .71248778, -.26417743, .69998509, .80172117, -.17833263, -.19639535, .07713576, -.196091, -.16992181, -.01980995, -.02000314, .0075547, -.02000282, -.01809969, .01791458, .01776767, -.00452259, .01776747, .01426517, .12051318, .11439804, -.02599857, .11434635, .09106458, -.57040743, -.83976402, .17023686, -.81918687, -.48026911, -.48418655, -.65617892, .13978045, -.64618233, -.40318153, -.41376686, -.53658243, .17206738, -.53058805, -.3891168, -.39736418, -.52230491, .33561927, -.51585445, -.47324363, .789415, .61140354, -.08671464, .60479997, .47633342, -.45273112, -.61077915, .21682458, -.6017464, -.44627895, .04048982, .0397188, -.01513165, .03971635, .03674537, -.63470698, -.9674859, .11984384, -.93941626, -.45877254, .2618683, .2330883, -.13239143, .23256256, .26283624, .19377173, .17770167, -.07757214, .17747988, .17993081, .58723259, .47367768, -.13114675, .47005153, .44888588, .69307845, .53813346, -.219424, .53243351, .59514982, -.57764781, -.86068256, .18440667, -.83828911, -.49740593, -.26782449, -.31198634, .1139541, -.31077833, -.2537972, -.70868634, -1.1711819, .1297819, -1.1233345, -.50704995, .4606641, .38328251, -.16715777, .38113069, .41397594, -.19014589, -.20787589, .02417353, -.20760079, -.12046142, -.37788839, -.4836057, .24762906, -.478736, -.41354195, -.17801827, -.19425086, .03434979, -.19400454, -.12960679, -.48308859, -.65038326, .12323755, -.64089631, -.38601917, .25848821, .23234614, -.06074086, .23190649, .2009698, .11192558, .10615829, -.05454158, .10610878, .11096997, 2.2103467, 1.2399104, -.96744817, 1.1734462, 2.1144277, .54133925, .44631372, -.07756959, .44355424, .35690572, -.32947276, -.39838731, .11327762, -.39600213, -.29080668, -.06956448, -.07214855, .03847715, -.07213256, -.07194534, .34574032, .29872866, -.1467757, .2976678, .32738698, -.36442537, -.44325897, .06336404, -.44043841, -.25626936, -.52417636, -.76654556, .30147977, -.7483973, -.54922168, -.10294317, -.1082127, .02503518, -.10816776, -.08095778, -.44853287, -.60675929, .24784799, -.59762437, -.46373298, .54811133, .43721149, -.40008915, .43350971, .62178672, -.77339733, -1.4128057, .15830115, -1.3308055, -.57425723, .00311698, .00311258, -.00065575, .00311257, .00233568, .16546273, .15367022, -.05901408, .1535303, .14784115, 1.0782845, .74165035, -.72184466, .72461628, 1.1884479, -.14325199, -.15333407, .02454582, -.15321592, -.10024659, -.54106483, -.74855613, .0879214, -.7355701, -.37199839, -.01554362, -.01565892, .00462261, -.01565877, -.01307195, .23435681, .21389756, -.02870592, .21360038, .14663992, -.21589488, -.24409962, .11654564, -.24348735, -.22148122, -.40602043, -.51951841, .13874424, -.51429434, -.35764068, .01460532, .0145034, -.0053337, .01450328, .01315306, .47378981, .39536301, -.11230566, .39321344, .36943187, .17730636, .1633511, -.09257247, .16316828, .17988164, .58137418, .47440216, -.07731488, .4711487, .37388226, -.43695412, -.55995752, .0805111, -.55425701, -.31327025, .62747558, .50448334, -.09127002, .50050337, .41576756, -.37398313, -.47031284, .16050385, -.46622059, -.35541833, -.38488016, -.48811777, .16465811, -.48355422, -.36538837, .16882954, .15590683, -.10322184, .15574218, .18053697, -.05819763, -.05994739, .02620706, -.05993863, -.05620215, -.00378748, -.00379413, .00093389, -.00379412, -.00299233, -.45740353, -.60989175, .15335998, -.60155781, -.40035663, .96274755, .69683538, -.28652439, .68484684, .80985166, .05958472, .05779674, -.04800426, .0577878, .0698543, -.61316876, -.97866302, .28179435, -.94389586, -.59617547, -.21870465, -.24783391, .12138522, -.24718931, -.22644911, 1.2191264, .82944004, -.39078432, .80928401, 1.0512069, .19790549, .18076257, -.1024348, .18051548, .20020015, -.3915342, -.49898009, .16549726, -.49412317, -.37021448, -.05989271, -.06170904, .02243475, -.06169987, -.05439592, -.60835317, -.9374616, .19454908, -.90887105, -.52415159, .93726962, .66527905, -.73159374, .65242844, 1.0872841, -.77961717, -1.3707204, .10873488, -1.3005904, -.50939407, .51118936, .41853336, -.180392, .41575656, .45513157, .10664256, .10189676, -.01941382, .10186158, .07614956, .54394214, .44253993, -.15439524, .43941602, .45039107, -.04468064, -.04568047, .01682746, -.04567674, -.04065329, .42232032, .35761426, -.11465577, .35597103, .3445376, -.11373807, -.12003518, .0216566, -.1199771, -.08244114, -.24970214, -.28577578, .07665105, -.28491036, -.21222549, .14967316, .13887169, -.14929294, .13874192, .18841655, -.04416694, -.04517034, .02105742, -.04516655, -.04347203, .09550975, .09136204, -.03706601, .09133203, .08777425, -.60345573, -.90964065, .15374561, -.88460156, -.4819935, -.39335361, -.4858555, .05967075, -.48226216, -.26431345, .91188654, .67179381, -.22367346, .66145241, .71918731, .0893321, .08542113, -.06841059, .08539261, .10297287, 1.0542231, .74207457, -.38557647, .72704413, .94987954, -.80140281, -1.4468496, .10861552, -1.3659914, -.51865018, -.65661096, -1.0909152, .25248002, -1.045425, -.60157682, .77179132, .59281922, -.15014697, .58599761, .56344143, -.07764923, -.08065276, .02253154, -.08063341, -.06476868, -.06175517, -.06377033, .03294705, -.06375937, -.06310509, .50650259, .41570612, -.16991997, .41301447, .44341725, -.40926117, -.52588389, .14652362, -.52041418, -.36613921, -.45927482, -.61604101, .17002452, -.60727483, -.41549163, 1.0567886, .74734019, -.3202118, .73259505, .89429581, -.11140128, -.11790377, .03960864, -.11784055, -.09943366, -.30337178, -.36215487, .13026612, -.36026837, -.2883615, -.42253305, -.55498618, .20169408, -.54816798, -.41605253, -.25977024, -.30503888, .21535438, -.30373086, -.3074592, .32950947, .28807868, -.09057868, .28721359, .26993794, -.18003178, -.19723229, .04531631, -.19695886, -.14321691, .09805314, .09330175, -.08653726, .09326339, .1185001, -.49089533, -.70725054, .399791, -.69177447, -.57758194, 1.1664585, .8161681, -.21232685, .79907572, .83289675, -.4644781, -.64735139, .34389256, -.63561204, -.52941278, -.41856481, -.55305757, .25163428, -.54596576, -.44508375, 1.1278749, .7967161, -.19805737, .78089615, .79575792, .34566979, .29986766, -.1102072, .29886025, .29752327, -.37267293, -.46647729, .14254855, -.4625815, -.34083917, .24961853, .22378361, -.10251373, .22333903, .23376988, .53624914, .43791335, -.14162413, .43493246, .43347777, .02897433, .02856922, -.01272993, .02856828, .027752, .08015478, .07737286, -.01771104, .07735678, .06105356, -.50476571, -.70753251, .19691235, -.69426216, -.46468738, -.40522231, -.52445365, .19283833, -.51868373, -.39859944, -.30219412, -.35872948, .10546732, -.35697701, -.26806492, -.35942658, -.45131409, .21023945, -.44743922, -.37872287, .26996379, .24234186, -.04851345, .24187193, .19194099, .4646472, .38552663, -.18330676, .38329676, .42935683, -.3275455, -.38444346, .03295657, -.38280459, -.19194278, -.55860279, -.78929956, .10141245, -.77379405, -.39851299, -.05774895, -.05942333, .02039347, -.05941524, -.05142841, -.08416668, -.08876627, .21614889, -.0887244, -.14521823, -.51076446, -.69909851, .11233086, -.6877496, -.38843958, -.50295582, -.68588962, .11774145, -.67501102, -.39054674, -.15478959, -.16820163, .07018808, -.16800822, -.14982776, .23271758, .20738762, -.3068774, .20692933, .32152723, -.37941033, -.46960824, .08548247, -.46606675, -.29087638, -.25435962, -.29035462, .05680228, -.28950863, -.19443034, .06588453, .06368361, -.05917427, .06367135, .08008969, .01837002, .01819873, -.01193611, .01819846, .02004645, -.40509825, -.51115711, .09388126, -.50657893, -.3135041, .39800708, .33995085, -.1050213, .33854642, .32163477, -.07725479, -.08029924, .02749215, -.08027925, -.06897576, -.20637628, -.22811815, .0325346, -.22773717, -.14046399, .08154315, .07840933, -.04072179, .07838927, .08150995, 1.1910859, .80960517, -.48571352, .78983713, 1.1128384, .26456618, .23553114, -.12012076, .23500149, .25619594, .23971249, .21576538, -.09755645, .21536754, .22381495, .12466272, .11807848, -.02929845, .11802056, .09692801, -.04478352, -.04579575, .01802714, -.04579193, -.04166114, .08461206, .08145068, -.02316046, .081431, .06921718, -.11222889, -.11827756, .01927437, -.11822326, -.0785971, .66826592, .5290729, -.11819708, .52429317, .47261967, -.02497361, -.02526647, .00606328, -.0252659, -.01962908, -.18560142, -.20481407, .06635467, -.20448324, -.16596685, -.42062705, -.55511035, .23495048, -.54805336, -.43644907, .37335652, .32316837, -.06983945, .32204863, .26902507, .44395122, .37075775, -.18027585, .36875953, .41420248, -.10149399, -.10627658, .01402168, -.10623904, -.06610539, 1.6776906, 1.0774226, -.19261374, 1.0429959, 1.0273387, -.03187361, -.03248491, .06531512, -.03248296, -.05100766, .06182835, .06003111, -.02647815, .0600224, .05871706, -.48307609, -.64353785, .09701343, -.63479909, -.35642185, -.81096394, -1.6544539, .22537601, -1.5221645, -.66677645, -.4026664, -.51871387, .17880383, -.51321067, -.38704892, -.06926005, -.07178871, .03438955, -.07177333, -.06909936, -.66360562, -1.0288145, .10497055, -.9965726, -.45217429, -.33803354, -.41156213, .11995102, -.40891704, -.30152119, .22568917, .19695072, -2.1495738, .19634307, .60274637, -.10028386, -.10594532, .06968719, -.10589208, -.1119133, -.33326482, -.40322095, .10587404, -.4007912, -.2865054, .01988369, .0196859, -.01143858, .01968557, .02083525, -.17025897, -.1869918, .08834197, -.1867182, -.17237424, .23507155, .21421042, -.03318566, .2139024, .15421509, -.28474643, -.33233788, .07686481, -.33101849, -.2318594, -.58720124, -.87273312, .15584735, -.85030475, -.47544591, -.61495582, -.98260761, .27888785, -.9475382, -.59527248, -.56243197, -.80025237, .10867358, -.78390244, -.40966732, -.14077564, -.15085131, .03234317, -.15073124, -.10863152, -.18260914, -.20079369, .05591265, -.20049242, -.15507021, -.24439112, -.29069365, .62906119, -.28924033, -.42198587, -.73811111, -1.2279392, .10035927, -1.176477, -.47820082, -.50644645, -.72439785, .27553577, -.70915905, -.52090479, -.17399597, -.19079487, .06462178, -.19052501, -.15757806, -.44498495, -.60721357, .31775135, -.59754437, -.5011134, .07172271, .06957196, -.01082252, .06956122, .04810873, .21509852, .19535678, -.09567971, .19505536, .20687511, .02863796, .02827191, -.00613238, .02827113, .02158645, .25546167, .22796332, -.12927557, .22747127, .25648737, -.34061627, -.41792931, .14965998, -.4150289, -.32625373, .77469004, .57754495, -.51279666, .56932591, .85063591, .39144017, .32691917, -.49215888, .32515813, .53229866, .59615035, .45419211, -1.6874646, .4486407, 1.0624914, -.17837085, -.19626745, .07154096, -.19596873, -.16573371, -.1003708, -.10577087, .04640926, -.10572247, -.09778746, -.09795612, -.1029221, .03435635, -.10288016, -.08703623, .09295039, .08865096, -.08461053, .08861783, .11349732, -.4072643, -.54113581, .3577372, -.53391891, -.49141559, .65382402, .50566575, -.41751741, .5001435, .70937429, -.5575895, -.85145524, .34610208, -.82654647, -.59926805, -.10217966, -.10730779, .02252941, -.10726492, -.07777433, -.06366886, -.06577556, .02907765, -.06576394, -.06177525, -.43525928, -.57286957, .16729571, -.56572687, -.39872208, -.49811105, -.67619761, .11554628, -.6657818, -.38560806, .50090974, .40769452, -.29216005, .4048278, .52729857, .86268364, .61965343, -.9182124, .60848892, 1.1097507, -.62052198, -.92951709, .11244186, -.90469252, -.44240917, -.06257593, -.06445174, .01429789, -.06444237, -.04819909, -.34703233, -.42965766, .176219, -.42640866, -.34882494, -.05892985, -.06083489, .04422308, -.06082463, -.0674709, -.24691258, -.28168847, .06957238, -.28087497, -.20394721, -.36903059, -.45514355, .09453386, -.45182378, -.29528907, -.18309023, -.20412071, .16476016, -.20371905, -.22270887, -.44482225, -.61975687, .4830332, -.60853947, -.57604975, -.08058226, -.08362613, .01368654, -.08360697, -.05622561, .20211563, .18364076, -.15093069, .18335982, .23103039, -.26383763, -.30228513, .05257534, -.30135479, -.19416094, .50169006, .41084605, -.20709964, .4081262, .47064499, .85690669, .62910114, -.42150416, .619198, .85224863, -.67448662, -1.1321169, .2257037, -1.0830488, -.58998158, -.24488697, -.28097606, .10361773, -.28009299, -.23163195, -.39807196, -.49524433, .06909688, -.4913284, -.27977175, -.33216003, -.39639229, .06221035, -.39433499, -.2394395, -.38177713, -.48617498, .19811154, -.48147219, -.38653296, -.08027696, -.08357483, .02877727, -.08355226, -.07184896, -.36011292, -.4494137, .1704529, -.4457589, -.35359322, .22393373, .20272089, -.09636476, .20238664, .21300792, .01812136, .01797578, -.00342167, .01797558, .01309834, 1.0445171, .75843336, -.13225875, .74563807, .66083825, -.22269522, -.25013243, .05856105, -.24957055, -.17975744, -.60386461, -.91304686, .15964353, -.88754515, -.48830011, .10351565, .09820456, -.09771299, .09815917, .12793758, .18780321, .17260011, -.07782076, .17239528, .17640484, .39839468, .33369914, -.35895544, .3319591, .48480363, -.56902707, -.872537, .31107061, -.84651874, -.58620782, .52082414, .42577496, -.16874438, .42290727, .45069269, -.27582253, -.32232201, .10543888, -.32102181, -.25221065, .13055037, .12300944, -.04868599, .12293689, .1183941, -.70347537, -1.2040031, .1943892, -1.1479507, -.57729789, .31150776, .27687318, -.03738351, .27623316, .19358986, -.26786344, -.30662368, .04423454, -.30569231, -.18515671, -.10166485, -.10788655, .12161541, -.10782314, -.13597323, -.28141867, -.32648367, .06218693, -.32528622, -.2143606, .12675404, .11969532, -.04304958, .11962985, .11142283, .00564854, .00563403, -.00124235, .00563403, .00429585, .70315729, .55232744, -.11447213, .54699757, .48373952, -.57315138, -.83876186, .14921006, -.81883073, -.46109342, -.32012522, -.38622687, .13072175, -.38396798, -.29923051, .19846144, .18343456, -.02536435, .18324517, .12595111, .40129512, .33990812, -.16938496, .33835163, .37926625, -.22856924, -.25983375, .10393876, -.25912335, -.22145273, -.01674834, -.01690274, .01757409, -.0169025, -.02144283, .451725, .37640179, -.17925774, .37432235, .41823341, -.5069588, -.73016766, .30740562, -.7142168, -.54062448, .14639697, .13762086, -.02806901, .13753324, .10635889, .54156343, .43020691, -.53963023, .42643087, .68151431, -.00369693, -.00370369, .00164843, -.00370369, -.00355845, -.00518422, -.0051979, .00293264, -.0051979, -.00540197, .52562602, .42180305, -.41413477, .41841804, .61165772, -.34805066, -.41861733, .0591539, -.41624897, -.24290294, .19213086, .17635487, -.07498533, .17613929, .17690231, .59949237, .46575827, -.68085713, .4608489, .78804516, -.269149, -.31443131, .12642314, -.31316769, -.26360119, -.08055403, -.08380109, .02383641, -.08377928, -.06763141, -.52710152, -.74389095, .15786241, -.72937786, -.44432329, .23318428, .21130044, -.06324005, .21095881, .19016923, -.347374, -.41668089, .05385617, -.41439143, -.23511844, .73367753, .56669864, -.17585896, .56044855, .57420678, .17500619, .16226928, -.04652948, .16211496, .14178219, .94605452, .68612388, -.30550686, .67446351, .81776358, .50546688, .41903062, -.09826981, .4165844, .36893103, -.18998405, -.20998685, .06278385, -.20963655, -.16548961, .37311908, .31743209, -.22857165, .31605411, .39925383, -.01912069, -.01932781, .02543713, -.01932743, -.02649527, .31556855, .27535671, -.14827811, .27450587, .30909939, .39197774, .33229297, -.19381106, .33078654, .39052046, -.6211055, -.94356796, .13609918, -.91661946, -.47177916, -.39929942, -.51206168, .16883709, -.50681948, -.37759979, -.50640822, -.68089631, .08212162, -.6710497, -.34793357, -.05687068, -.05829852, .00664011, -.05829255, -.03502091, -.14211899, -.15451163, .14617386, -.15433177, -.1807457, -.20880173, -.23566553, .13577928, -.23509118, -.22791726, -.12352715, -.13063606, .01541625, -.13056792, -.07777581, -.43868933, -.59652185, .33072572, -.58723422, -.50304176, -.29153569, -.3398282, .05973137, -.33850118, -.21654026, .13964675, .13118796, -.04536704, .13110264, .12095134, -.03966402, -.04042777, .01176078, -.04042532, -.0333237, .75850883, .58647238, -.12878309, .58005447, .52917993, .15005071, .14060256, -.03747029, .14050349, .11905046, -.68233406, -1.0671377, .09382966, -1.0323789, -.44373267, -.27654892, -.3235601, .10951834, -.32223473, -.25587052, -.28516153, -.33071434, .05497475, -.32950686, -.2075511, -.26369445, -.30841731, .15767347, -.30715932, -.27989612, .3169408, .27673987, -.13613017, .27589314, .30128688, 1.0952246, .78043927, -.18254339, .76570135, .75939459, .13669411, .12921327, -.01984136, .12914508, .0905108, .330727, .28661029, -.16907958, .28563349, .33318605, -.63230002, -.9027777, .04523618, -.88397517, -.33071515, -.52766834, -.77382029, .29878069, -.75523288, -.55000698, -.05007151, -.05137913, .02586399, -.05137344, -.05061769, -.42531462, -.5499931, .12801344, -.54398146, -.35911653, -.1297289, -.13839983, .03563857, -.13830332, -.10625301, -.21443397, -.24183356, .10423078, -.24125174, -.2124244, .46625586, .38202951, -.3615271, .3795137, .53968434, 1.2041013, .79553721, -1.1263728, .7732085, 1.4836999, -.26296011, -.30456318, .09809341, -.30347089, -.23849715, -.31697151, -.37666494, .07536004, -.37480244, -.24740237, -.22314465, -.2540796, .13911348, -.25336724, -.24017293, -.31576921, -.38059817, .14030666, -.37839529, -.30358662, -.35073082, -.4215313, .05400701, -.4191653, -.23685142, -.09403073, -.09858561, .03256135, -.09854885, -.08319374, -.27935476, -.32542194, .08138768, -.3241617, -.23332805, -.62213469, -.92903391, .1052494, -.90459631, -.43351702, -.14938662, -.16149883, .05493428, -.16133536, -.1348442, -.20664992, -.23418287, .19152947, -.23357339, -.25385089, -.26586532, -.30991069, .12496911, -.30870023, -.26044659, -.25807377, -.29778868, .09331687, -.29677423, -.23164662, -.30314598, -.36319764, .15247232, -.36122789, -.30374435, .24775518, .22381456, -.05283603, .22342979, .18649558, -.24843365, -.28577432, .1066353, -.28484257, -.23611157, -.70001612, -1.1721137, .16366661, -1.1217738, -.5433363, -.16368619, -.1785629, .06550496, -.1783379, -.15197638, -.22438792, -.25222303, .0580311, -.25164911, -.18012055, 1.4120916, .91321611, -.61659021, .88493049, 1.3497421, -.08394263, -.08770191, .04174102, -.08767387, -.08378882, .11246524, .10698612, -.0304348, .10694165, .09165279, .73968257, .56947986, -.19038664, .56304099, .59281486, 1.4090884, .91290803, -.5933184, .88485893, 1.3306528, -.2440235, -.28366336, .21559238, -.28259501, -.29501374, -.24924191, -.28846526, .14492164, -.28744088, -.26210086, -.24698227, -.28058286, .05372172, -.27982347, -.18714167, -.45857664, -.62671937, .25786659, -.61664209, -.47688791, -.61800719, -1.0276645, .41359248, -.98467025, -.68107755, -.39285108, -.49992802, .15444424, -.4951199, -.36259282, -.40121812, -.53012827, .35290152, -.52333129, -.48433762, -.54848998, -.78129082, .13547929, -.76522807, -.43359084, -.42025715, -.56786194, .4070682, -.55937626, -.52389284, .34029902, .29960747, -.04043193, .29879914, .21077801, -.80333773, -1.5357323, .16225583, -1.433301, -.59384834, .35708367, .31125712, -.05966209, .31028061, .24779325, -.5847827, -.85951985, .13601524, -.83863343, -.45310849, -.40549831, -.53574142, .32356278, -.52887632, -.473866, -.40787468, -.51196956, .0756231, -.50758728, -.29303038, .0808268, .07791694, -.02345714, .07789948, .06742257, .11103542, .10540773, -.04950461, .10536021, .10687257, -.15895282, -.17356782, .09076858, -.1733442, -.16615013, -.48207555, -.64863346, .1236818, -.63920946, -.38594196, -.41828669, -.54416709, .17141096, -.53793991, -.39144633, -.25512486, -.2982931, .20198933, -.29708165, -.29736372, -.37029916, -.46148307, .13034527, -.45777687, -.32941516, .47744139, .39992459, -.08417699, .39784011, .33730376, -.00934437, -.00938289, .00143207, -.00938286, -.00630035, -.02772804, -.02810658, .0100532, -.02810572, -.02491098, -.10725828, -.11332995, .04162304, -.1132727, -.09856933, -.59832789, -.92792556, .24138858, -.89880156, -.55702549, -.57759115, -.85775157, .17569523, -.83579705, -.4894147, -.33794661, -.40552683, .06817076, -.40328937, -.24971317, -.62978867, -1.0370275, .32123178, -.99525298, -.6339856, -.68597933, -1.1991312, .28782311, -1.1389871, -.64703221, -.49037436, -.67011574, .15054169, -.65934682, -.41678694, .55890967, .45229089, -.16472336, .44893128, .46862216, .32741952, .28625396, -.09524658, .28539446, .27333558, -.35087844, -.43207793, .13403453, -.42897309, -.32076479, 1.5813168, .97846186, -.93921735, .94187025, 1.6747293, -.44018906, -.55989131, .06126661, -.55452844, -.28741589, .06129037, .05954432, -.02349401, .05953603, .05609497, -.46163541, -.60840753, .10801341, -.60074747, -.35840053, -.29875723, -.36047311, .2278336, -.3583632, -.34389686, 1.4552584, .95668254, -.2900742, .92919281, 1.0710419, .53780487, .43727525, -.17474037, .43416999, .46582655, .41170242, .34757772, -.16990823, .34592261, .38619243, -.12477915, -.13336909, .06188318, -.13327062, -.12444064, -.35026659, -.42755531, .09928534, -.42473541, -.28989286, -.49730549, -.6883825, .17444435, -.67640159, -.44188691, -.20168938, -.22264205, .03508153, -.22227998, -.14184854, -.3716121, -.4675208, .17101449, -.46343851, -.36147717, .10483886, .09985598, -.04200895, .09981653, .09738053, -.31658804, -.37002846, .03532148, -.36853229, -.19202272, -.47864818, -.68117839, .39635932, -.66724558, -.5663053, -.62571462, -1.0136703, .28378283, -.97539099, -.60569814, -.43625711, -.56745388, .1219175, -.56096812, -.35935776, -.3768037, -.50466399, .80072945, -.49755497, -.61035434, 1.0621417, .75963392, -.20403967, .74559242, .77215265, .0328903, .03226835, -.07481728, .03226639, .05449908, -.17185771, -.18674733, .03037659, -.18653262, -.12151663, .0236511, .02340173, -.00486029, .02340129, .01758457, -.43862113, -.57065469, .11743041, -.56412149, -.35617482, .46269548, .38383737, -.19158832, .38161295, .43450674, .18951731, .17559938, -.02694152, .17542923, .12461872, -.32747899, -.41462936, .5704933, -.41080661, -.49645796, .25758844, .23049773, -.09449579, .23002404, .23232632, .31758568, .27759082, -.12377705, .2767544, .2922788, -.34218485, -.42648063, .24580193, -.423053, -.38611109, -.4088183, -.51638855, .09005913, -.51172227, -.3110805, -.80521678, -1.4050351, .07860527, -1.335001, -.46712786, -.8546913, -2.0223329, .29883109, -1.7923761, -.75862086, .69311103, .53298743, -.33765129, .52690642, .6871233, 1.1947123, .81219341, -.47164122, .7923775, 1.1042214, -.40009891, -.49501237, .0551297, -.49129354, -.26036552, -.4081933, -.521855, .12978439, -.5166433, -.35101693, -.45795604, -.64026731, .40870837, -.62843877, -.55551659, .08164061, .07866174, -.02459797, .07864363, .06895735, -.04035683, -.04125175, .03510488, -.04124844, -.04853747, .14532344, .13313101, -.87268265, .13296079, .33280197, -.50026008, -.68636627, .13933804, -.67505498, -.41162063, .57392939, .47021874, -.06886095, .46711995, .35664815, -.73827282, -1.4743277, .4215619, -1.3630265, -.77168792, -.58281782, -.84274163, .1075697, -.82393788, -.41808238, -.00065633, -.00065654, .00029299, -.00065654, -.00063199, .75288704, .57253124, -.28254898, .56543741, .68421794, -.29174285, -.34598048, .13379398, -.34430968, -.28345819, -.01213181, -.01219526, .00148818, -.0121952, -.00759473, 1.1875734, .80992775, -.44442331, .79048795, 1.0782412, -.59310681, -.94491404, .35995501, -.91160125, -.63267598, -.49983984, -.69911699, .2045385, -.68616942, -.46754376, -.43655652, -.55970174, .08213568, -.55398313, -.31517198, .06577544, .06384116, -.01799947, .06383169, .0538029, .65614772, .51896186, -.14355175, .51423367, .49813522, -.73470229, -1.2324181, .11317359, -1.1791277, -.4962105, -.45860398, -.61939807, .20045514, -.61016967, -.43850473, -.35747689, -.4564202, .36142831, -.45190998, -.45204607, .56119242, .44767566, -.33020406, .4438875, .59248679, .63886023, .49972097, -.29988187, .49473085, .6255528, .22006193, .19891531, -.12866661, .19857732, .23184367, -.70226265, -1.2038878, .20010291, -1.1475115, -.58222946, .31365132, .27515623, -.10312727, .27437149, .27275073, -.25744216, -.29712234, .09625626, -.29610719, -.23367169, .2909643, .25914074, -.05412012, .25856219, .20926152, 1.448869, .96127786, -.22405255, .93483027, .97981942, -.63537241, -.98650244, .1514761, -.95538216, -.49637542, .06547446, .06338746, -.03991762, .06337638, .06994868, -.45136775, -.59744329, .14350211, -.58968686, -.38813527, -.18090053, -.19645099, .01893559, -.1962285, -.10741448, -.01422981, -.01433352, .00801671, -.0143334, -.01480726, -.28676242, -.33361277, .06176315, -.33234288, -.2165715, -.03810031, -.0389361, .05062011, -.03893305, -.05277198, -.45690859, -.60877016, .15199966, -.60049491, -.39888137, .49643102, .41044933, -.13213891, .4079852, .40233967, -.52586306, -.76036553, .24477965, -.74340229, -.51347213, -.5924395, -.87061468, .12222478, -.8494784, -.44105467, .28472938, .25311973, -.07550306, .25253648, .23047281, -.80915386, -1.5112437, .13010558, -1.4172483, -.5543653, -.34930171, -.42981181, .13533621, -.42674549, -.32083505, .27165529, .24119811, -.1222478, .24063059, .26228239, -.591751, -.94386109, .3716657, -.91042169, -.63848911, .48929003, .40475457, -.1440689, .40233778, .41012004, -.3686661, -.47023772, .27450567, -.46562852, -.42100046, .0078351, .00780773, -.00146312, .00780771, .00564243, 1.2654177, .83530349, -.77888165, .8117597, 1.356198, .39521216, .3377571, -.10694825, .33637183, .32207333, -.49057537, -.67009995, .14870434, -.65936082, -.4151978, -.19877268, -.22288743, .12935537, -.22240111, -.21702475, -.58216871, -.87924513, .21055823, -.85481939, -.52259668, -.2297186, -.25718772, .03643411, -.25664167, -.15666675, -.31661211, -.37751449, .08802402, -.37557404, -.26035269, -.27206636, -.32236391, .22499123, -.32082303, -.32174744, .16440459, .15357079, -.02835786, .15345192, .11530384, .00103929, .0010388, -.00021298, .0010388, .00077199, -.33083111, -.39558536, .06980408, -.39348639, -.24814632, -.12046646, -.12864033, .07287372, -.12854797, -.12836435, -.43725155, -.55670313, .06651499, -.55132732, -.29408356, -.3054157, -.35349905, .02859342, -.35224275, -.17472684, 1.1598261, .80217503, -.33297464, .78428477, .96399688, -.59378871, -.8659557, .10641497, -.84574523, -.42179251, .05247017, .05130234, -.00809786, .051298, .03546024, .70684525, .55549519, -.1072906, .55015624, .47505816, .31151861, .27466035, -.07308972, .27393582, .24207582, -.6991559, -1.3535436, .53619384, -1.2598869, -.80630612, .03458053, .0339866, -.0205769, .0339849, .03664582, .82682948, .60682106, -.56819092, .59724861, .919289, -.10284804, -.10861681, .0539691, -.10856291, -.10451752, -.3197203, -.38921434, .18637731, -.38671619, -.33650213, .97145615, .70037602, -.30919677, .68803492, .83567443, .0025278, .00252482, -.0006883, .00252482, .00206426, .05788055, .05636685, -.01664403, .05636025, .04813392, -.52883627, -.73940217, .1293742, -.7257381, -.41671588, -.39248162, -.48165016, .04845533, -.47830192, -.24622761, -.3925012, -.51354987, .33019403, -.50741698, -.46683176, -.56031347, -.81448204, .16065483, -.79579414, -.46550959, .22330768, .2037657, -.04331321, .20348115, .1628618, 1.2671633, .85776025, -.33976017, .83637302, 1.029491, -.43456787, -.5717868, .1681824, -.56467313, -.39900217, -.24206258, -.28093407, .21175835, -.27989831, -.29168132, -.42873818, -.5629535, .1780476, -.55605376, -.40301091, -.49242361, -.6598997, .09536759, -.65056734, -.35895184, .13989783, .13073676, -.09689245, .13063687, .1559483, .7407564, .55949554, -.42875698, .55221846, .77779296, -.18645751, -.20665062, .09067891, -.2062869, -.18474187, -.55840691, -.85765763, .36963806, -.8318906, -.61315379, .31715448, .27514663, -.21852665, .27422302, .35293281, -.7165565, -1.2868527, .25484644, -1.2161667, -.63964128, .974585, .69060403, -.56893569, .67713489, 1.0262288, -.32192358, -.38577559, .09508929, -.38367856, -.27011937, -.5998119, -.89087792, .13017601, -.86805931, -.45414761, .43858688, .3659991, -.20787794, .3640099, .43084054, -.15953623, -.17482537, .12207043, -.17458157, -.18384551, -.25385373, -.2911425, .07588293, -.29023302, -.21385221, -.39446492, -.49894205, .12492114, -.49438067, -.33876165, .0306346, .03018139, -.01370242, .03018027, .02951779, 1.4738252, .93933028, -.68459262, .90830075, 1.4380855, -.29050831, -.34106826, .08722709, -.33960921, -.24509409, .59850856, .47340936, -.29846146, .46909894, .59797954, 2.4104501, 1.2709452, -2.3575449, 1.1881433, 3.0145935, -.67469976, -1.0052526, .05320747, -.97910221, -.36453668, -.46940231, -.66813162, .46465258, -.65445295, -.58940833, -.27271976, -.32287399, .2127947, -.32134546, -.3163307, -.35825387, -.45985633, .41275096, -.45511323, -.47318753, .18800499, .17256188, -.08955579, .17235077, .18499251, .15566192, .1440027, -.15870237, .14385733, .19739041, -.39539076, -.49323855, .07964831, -.48924201, -.29202489, .59827041, .48136068, -.12866286, .47758885, .4516057, .00012764, .00012763, -.00005284, .00012763, .00011986, -.60613341, -.91044242, .14108794, -.88580433, -.46977018, .14661279, .13790178, -.02540357, .13781558, .10298078, 1.1334289, .79676324, -.22650754, .78050387, .83489861, -.2907386, -.33234446, .02116708, -.33135568, -.15295562, .37710646, .3241227, -.1058066, .32288766, .31104524, -.02883914, -.02924234, .0090557, -.0292414, -.0246967, -.02005801, -.02024287, .00414231, -.02024259, -.01493767, .23177615, .21016051, -.06218017, .20982518, .1883388, .76446302, .58331524, -.21613315, .57626475, .6321519, -.48101958, -.66892298, .24911215, -.65695167, -.48668744, -.04201194, -.04284543, .00963797, -.04284267, -.03240313, .18774025, .17117493, -.18893547, .17093174, .23703879, .74734106, .56677162, -.33648461, .55961035, .72167938, -.6591305, -1.0723949, .19621188, -1.0311942, -.55449721, -.22167818, -.24704873, .03470137, -.24656593, -.15052461, .04388406, .04306384, -.00668581, .04306129, .02953016, -.22977463, -.26124438, .1006082, -.2605284, -.21983112, -.51127357, -.75846885, .45884498, -.73915675, -.62134702, -.19452091, -.21545657, .06160036, -.21508181, -.16705082, .58082574, .4560683, -.53736887, .45165396, .71306875, .28466945, .2499898, -.2065418, .24928803, .32228485, .14022023, .13136471, -.06636631, .13127158, .13767857, -.39441849, -.54777294, 1.1885606, -.53804669, -.71777547, -.2854344, -.33754261, .14041345, -.33596604, -.28389023, -.10232612, -.10792736, .04591567, -.10787629, -.09870094, -.22298031, -.24819432, .03019943, -.24772022, -.14427373, -.49189513, -.65191499, .07435375, -.64337513, -.33013581, .54129734, .44473221, -.09421088, .44188313, .38077428, -.3141839, -.38136968, .19219353, -.37899305, -.33603064, .52910353, .42971918, -.21126421, .42663465, .49088423, -.62464995, -.97954638, .19663399, -.94726566, -.53536996, .75256547, .56658394, -.4322483, .55904583, .78816526, -.55772974, -.84573248, .31387839, -.82178593, -.58015808, .15164157, .14298332, -.01310932, .14290099, .08447903, .0153214, .01520807, -.00617892, .01520793, .01426198, .47089409, .38773578, -.25429813, .38530659, .48314024, -.05675135, -.0582369, .00969293, -.05823042, -.03967155, .11061595, .10520062, -.03643206, .10515646, .09624609, .01416898, .01406766, -.00848756, .01406754, .01504862, -.24161691, -.27095853, .02734499, -.27036622, -.1472496, .01455121, .0144392, -.0134194, .01443906, .01784516, .46859083, .3934604, -.08443875, .39146497, .33346719, -.22719214, -.25977519, .15469994, -.25899916, -.25182697, .15358846, .14319541, -.06368345, .14307831, .1442972, .3556438, .31156832, -.04197952, .31066111, .21980252, .17859891, .16500587, -.0621345, .16483366, .15826084, -.37956082, -.48827711, .27626347, -.48315254, -.43016864, .3731618, .31932929, -.15510458, .31804123, .35087276, -.18786051, -.208419, .0925445, -.20804484, -.18693209, .81327041, .60721746, -.32707028, .59866332, .75633409, -.16706276, -.18441847, .15832612, -.18411855, -.20675084, .94132863, .70605769, -.08417635, .69641767, .53035606, -.33784023, -.41811617, .21561216, -.41496577, -.366473, -.13640498, -.14617173, .04176048, -.14605529, -.11582935, 1.6127625, 1.014966, -.48695071, .97957604, 1.3631761, -.53208943, -.78188964, .28847348, -.76291209, -.54664039, 1.6146371, 1.0290688, -.32997947, .99507393, 1.1982725, -.77581268, -1.3487554, .10245997, -1.2823816, -.49777452, -.49310456, -.7287983, .57941269, -.71058407, -.65558954, .1963589, .18089863, -.0410606, .18069602, .14684262, -.69517518, -1.2632614, .3566579, -1.1911621, -.7011702, -.03665689, -.03735259, .01946688, -.03735039, -.03740066, -.09244805, -.09707926, .04940959, -.09704061, -.09452476, -.31164636, -.3733888, .12230389, -.37136336, -.28747371, -.1985375, -.22173589, .09819529, -.22128522, -.19781926, -.26318965, -.31195439, .29793548, -.31045717, -.34559168, -.34121537, -.41643027, .12159344, -.41368879, -.30478887, -.30756931, -.37637527, .30765907, -.37383066, -.38755074, -.19443444, -.21632326, .08733718, -.21591349, -.18761109, -.54927006, -.77451596, .11179131, -.75947913, -.40707082, -.13259001, -.14222483, .05905857, -.14210826, -.1275787, .13708588, .12851652, -.07184424, .12842731, .13925233, -.12015573, -.12784866, .04628493, -.12776663, -.11015043, -.36949224, -.44524532, .0395459, -.44267477, -.22102804, .70993199, .54609802, -.27478998, .53988256, .6518607, .77662021, .58105767, -.43460627, .5729868, .80633304, -.54946963, -.91417902, 1.0649076, -.87585537, -.86313045, .02407643, .02380893, -.0068007, .02380844, .01990318, .29569801, .25968919, -.1517248, .25896081, .29825962, -.368871, -.46224996, .16047575, -.45835003, -.35215145, .52276536, .42167726, -.33247035, .41844923, .56641164, -.44749152, -.63940798, .72845226, -.62603375, -.66323419, -.65579296, -1.0719928, .2150347, -1.0300301, -.56975833, -.6022482, -.93903725, .24527004, -.90885475, -.56243868, .4680247, .38561959, -.25765354, .38321946, .48328267, .16268144, .15218796, -.02493842, .15207525, .10969622, .19373071, .17705278, -.11399762, .17681387, .20453811, .19253084, .17717772, -.05471559, .17697395, .15948282, -.47507919, -.64150947, .15042388, -.63196539, -.40796816, .30893445, .26958626, -.17485314, .26875407, .3219675, .95742478, .68410067, -.48450958, .67138558, .96127408, -.00020088, -.0002009, .00004746, -.0002009, -.00015646, -.41655101, -.53772901, .14433722, -.5319297, -.36862227, .69049373, .5340279, -.26978312, .52819607, .63599653, -.19829589, -.2207681, .07851276, -.22034462, -.18345627, -.34670537, -.41593531, .05499794, -.41364655, -.23646445, -.37843404, -.47587802, .14570374, -.47173978, -.34686491, -.08398264, -.08753776, .02584999, -.08751269, -.07144248, .76964305, .57764319, -.41079793, .56979036, .78658498, .03622165, .03556509, -.02337097, .03556311, .03943493, -.26755896, -.31635395, .23388636, -.31487911, -.322323, -.01255189, -.0126362, .01056077, -.01263611, -.01492959, -.30845422, -.36666675, .09509106, -.36484664, -.26253288, 1.338161, .87983412, -.56482266, .85457017, 1.2646964, -.33926235, -.41223079, .10806819, -.40963487, -.29192172, -.15645295, -.16877968, .03016566, -.16861799, -.1138772, -.20904858, -.23396862, .0756621, -.23347476, -.18770144, -.44183262, -.59607991, .26353094, -.58726416, -.46858932, .19758775, .18025388, -.11825369, .18000086, .20979167, -.36086085, -.44873655, .14915824, -.44520369, -.33867691, -.02459151, -.02489064, .00947921, -.02489003, -.02254884, -.70225898, -1.1268567, .10123357, -1.0859291, -.46392707, .16521037, .15188618, -.2088498, .15170734, .22506755, 1.1967308, .81044147, -.5290354, .79027901, 1.1486011, .14631725, .13723089, -.03995947, .13713693, .11960433, -.07734385, -.08035544, .02459876, -.0803359, -.06651684, -.64371163, -1.0402404, .22002504, -1.0013503, -.56705903, 1.5524088, .97495273, -.70290097, .94065939, 1.5019153, -.28060654, -.32433074, .05227474, -.32319997, -.20191681, -.40252318, -.52402258, .23730785, -.51799455, -.42524703, .19208406, .17463573, -.21253742, .17437205, .25031258, -.44132255, -.56914823, .0885403, -.56305679, -.32550755, .84461867, .6380791, -.14874639, .62979241, .59648464, .43705352, .37012395, -.08664179, .36842511, .32107677, -.41079452, -.52282583, .10842605, -.51779244, -.33199966, -.09970087, -.10475503, .02981724, -.10471235, -.08400371, -.30064167, -.3554778, .09212965, -.35382014, -.25537356, -.85525691, -1.8855153, .219699, -1.7025483, -.68498925, 1.1113579, .77408623, -.36683635, .7574659, .96769112, -.44689844, -.59398737, .17145775, -.58604801, -.40913654, .20610637, .18756321, -.10950147, .18728566, .21031856, .55131358, .44116271, -.32611823, .43753094, .58308807, -.17439685, -.19111203, .05991796, -.19084547, -.15389391, -.013729, -.0138198, .00449467, -.0138197, -.01192162, -.63042134, -.99667387, .20170184, -.96265864, -.54325102, -.62553683, -.9774335, .18596994, -.9457211, -.52600859, -.28148494, -.3432292, .54867406, -.34098958, -.44301481, .17822118, .16438191, -.07745754, .16420303, .17008687, -.36264389, -.44273912, .075674, -.43981411, -.27100615, -.08051297, -.08340306, .00892393, -.08338577, -.04872733, -.45501394, -.63376352, .40062633, -.6223134, -.54946449, -.18714207, -.20608581, .05220646, -.20576681, -.15406324, .43589437, .36399211, -.20999187, .36202815, .43052495, -.21860384, -.24612779, .07998934, -.24555183, -.19699683, .63163106, .47671587, -1.5831303, .47048265, 1.0809971, .27460516, .2445488, -.08665917, .24400198, .23555228, .01103839, .01098239, -.00276905, .01098235, .00877117, -.46884904, -.63417799, .17350826, -.6246366, -.42410371, -.60840711, -.91799413, .1460026, -.89260785, -.47635023, .27226217, .24193171, -.11211278, .24137013, .25520347, .56206722, .45804978, -.10865281, .45486822, .40946409, 2.2574775, 1.2763903, -.66359112, 1.2097591, 1.8911493, .45320571, .37170034, -.42998167, .36927644, .56107841, .42725895, .36167879, -.10665048, .36001042, .33894174, .00697976, .00695695, -.00202444, .00695693, .00582111, -.70044707, -1.2553482, .30065116, -1.1868559, -.66570401, -.48982143, -.67466904, .17847675, -.66327803, -.4407873, .15351535, .14273853, -.09234347, .14261257, .16327258, -.43391792, -.57738764, .22288376, -.56960922, -.43783237, -.54102287, -.75076049, .0933284, -.73749592, -.37945332, -.63054991, -.95239523, .11130689, -.92592675, -.44565317, -.04260425, -.04347693, .01139051, -.04347395, -.0345801, .26530286, .23776463, -.06493007, .23728936, .20908357, -.51412507, -.72472348, .18861556, -.71067954, -.46371203, .34446129, .29870085, -.11665038, .29769178, .30250484, -.29797033, -.34568092, .03933844, -.3444133, -.19116032, -.60360127, -.9037539, .139343, -.87967138, -.46652166, .40768739, .34950269, -.06766524, .34812523, .28228213, -.37466846, -.4792952, .26222624, -.47448427, -.41911526, -.46921854, -.64741377, .26058549, -.63636552, -.48593351, -.56433279, -.85554398, .2847436, -.83134645, -.56604572, -.08634594, -.09071815, .09333165, -.09068127, -.11164714, -.02003637, -.02024106, .01041608, -.02024071, -.0202982, .59132009, .47419447, -.16713741, .47036531, .48893333, -.46173172, -.5978794, .06874143, -.59127716, -.30832542, -.58402034, -.85039333, .11854149, -.83070586, -.43243294, -.55914576, -.8353297, .24877737, -.8133109, -.53781178, .44547946, .36764891, -.34860404, .36539922, .51721676, -.26127152, -.30681979, .20622582, -.30550317, -.30421857, -.61504732, -.97835053, .26432744, -.9440826, -.58478528, .08355641, .08052772, -.01918686, .08050943, .06446606, -.40578931, -.53826007, .35378452, -.53116637, -.48841614, -.35961484, -.43178716, .04249367, -.42938916, -.22233602, -.38258441, -.47359501, .08030352, -.47001936, -.28646597, .89314566, .66428211, -.18076181, .65467732, .66068395, .27105607, .24028062, -.14248256, .23969994, .2756153, -.40391258, -.50923, .09366305, -.504702, -.31264946, -.23916345, -.27116805, .06147544, -.27045649, -.1915904, -.33892144, -.41893695, .20154034, -.41581661, -.35908452, .15639155, .1463535, -.03254967, .14624621, .11677084, .29300078, .25715597, -.17167031, .2564276, .30890214, -.05759414, -.05909465, .0082698, -.05908813, -.03799799, .4806042, .39766338, -.16403827, .39529483, .42317185, .81670299, .60790134, -.3583561, .59915753, .78191167, .30851868, .27094305, -.10821653, .27018287, .27413354, .57166398, .45582386, -.29121752, .45195147, .57523202, -.4046238, -.53201139, .29259045, -.52542633, -.45757715, -.24679736, -.2798083, .0476481, -.2790747, -.1797155, .79474976, .59957038, -.25654982, .59170708, .68689049, -.20744948, -.23045703, .04637853, -.23003268, -.15863191, .21771334, .19694262, -.13002563, .19661302, .23099877, .78607735, .60277702, -.13957481, .59575277, .55665896, -.61240994, -.96393736, .24113132, -.9316551, -.56553049, -.34004814, -.42724245, .33384104, -.42355466, -.42581097, -.18712246, -.20885844, .15076754, -.20843865, -.21937976, .15013306, .14052878, -.04365754, .14042647, .12531815, -.06555559, -.06780034, .03087027, -.06778753, -.06425841, -.45532588, -.6032533, .13688155, -.59536894, -.38430249, -.47866281, -.62154923, .05551102, -.61453651, -.29409627, .10379618, .0992905, -.01897395, .09925791, .0742193, .27525161, .24445907, -.10746921, .24388656, .25346885, .44000184, .36911396, -.14780521, .36722222, .38536853, -.08764775, -.09186995, .05454247, -.09183606, -.0942791, .39856408, .34084917, -.09559651, .33946304, .3120011, -.28915418, -.34830523, .27694204, -.34630242, -.35910872, -.54668736, -.81965483, .31385788, -.79766835, -.57246249, -.13214671, -.14110555, .03451977, -.14100441, -.10643151, -.05303343, -.0543188, .00855113, -.05431361, -.03636785, .37518581, .32519639, -.06085479, .32409083, .25779383, -.20416909, -.2255121, .0333895, -.22514098, -.14067167, -.73453935, -1.3261482, .21807897, -1.252033, -.6173877, -.51285193, -.69944573, .1009299, -.68834599, -.37584716, -.34356943, -.41990334, .12127341, -.41709935, -.30592024, -.61185903, -1.0170268, .4461753, -.97454363, -.69387209, -.74680096, -1.3323688, .17349841, -1.2607571, -.57842236, .70162212, .55215776, -.10661961, .54691156, .47172752, .52578771, .42595277, -.25362418, .42282123, .51953384, .05380708, .05250817, -.01411749, .05250294, .04339991, .60789505, .48050614, -.27229875, .47610578, .586018, -.03696114, -.03765362, .01627638, -.03765146, -.03542905, .06786725, .06552571, -.06338565, .06551225, .08358221, -.24636214, -.28486146, .15119768, -.28386295, -.26377949, 1.5507848, .96230871, -1.010033, .9267362, 1.6936469, -.64427637, -1.112392, .42573289, -1.0589588, -.70702896, .40112431, .33692308, -.28696759, .33522086, .45200191, .22752738, .20598175, -.08452806, .20564237, .20607853, -.41029188, -.51805874, .08653263, -.51339204, -.30770313, -.3352269, -.40292353, .07774257, -.4006604, -.25949094, -.09823975, -.10297479, .021997, -.10293677, -.07516044, -.45906155, -.6389501, .36820685, -.62745478, -.53738792, .54875732, .4442739, -.18633969, .44098771, .48235339, -.46390271, -.61090183, .10182795, -.60325493, -.352574, -.13586222, -.14521798, .03140487, -.1451107, -.10505292, 1.5325827, .95475011, -.98943472, .92001987, 1.6688667, -.0180165, -.01817654, .00704904, -.01817631, -.01660225, .1074245, .10219496, -.04359798, .10215255, .10020768, .91324351, .66341484, -.38068255, .65225386, .85951881, -.13804802, -.14753983, .02729999, -.14743116, -.10133302, .09347746, .08949071, -.03700553, .08946238, .08647757, -.50931142, -.72863446, .26424161, -.71329046, -.51562347, -.53793659, -.76080839, .13943669, -.74578287, -.43213862, -.25884982, -.29723551, .06959389, -.2962904, -.21049039, .86831329, .63220778, -.52265542, .62172045, .92370391, -.65285423, -1.0173435, .12767231, -.98472881, -.47744101, -.45934698, -.6418679, .39489684, -.63004719, -.55029867, -.23191228, -.26444189, .11144756, -.26368404, -.22886674, .09519918, .09137385, -.01806198, .09134824, .06892137, 1.6758455, 1.0134619, -1.1410758, .97196346, 1.8575371, -.21193295, -.23870482, .10506008, -.23814276, -.21132695, .16828151, .15522648, -.1214123, .1550579, .19016117, .49347086, .40570005, -.19050999, .40311803, .45271365, -.31551801, -.38082435, .14918844, -.37858735, -.30969759, -.30187324, -.37396933, .54845442, -.37112573, -.46409468, -.46016208, -.61586466, .15922752, -.60723147, -.40702703, -.08661744, -.09036911, .02450479, -.09034204, -.07164137, -.25151268, -.28898407, .09061437, -.28805721, -.22548394, -.04191402, -.04290011, .04338401, -.04289625, -.05341863, .08469815, .08157622, -.02018716, .08155704, .06616338, -.31034085, -.37216383, .1313238, -.37012469, -.29355114, -.45803461, -.62017743, .21375366, -.61078472, -.44762402, .49980632, .4166992, -.07721613, .41441121, .33789402, -.56384813, -.81737021, .1460957, -.79888631, -.4528947, -.48061948, -.6559582, .17221889, -.64550075, -.43010171, .14620871, .13680497, -.05692722, .13670426, .13451338, .26422407, .23781698, -.04497363, .23737809, .18449201, -.43463765, -.59962418, .47955395, -.58939942, -.56585791, -.07744555, -.08062791, .03843585, -.08060612, -.07725379, .54920956, .44158076, -.26428657, .43809866, .54224275, -.58678218, -.89783355, .23639882, -.87132354, -.54602146, -.27075858, -.31760637, .14700409, -.31626226, -.27829664, -.62999685, -1.0615455, .40474533, -1.0148667, -.68490373, -.45134316, -.59439733, .12701407, -.58695388, -.37264776, .05554217, .05405862, -.02821365, .05405202, .05583566, -.58017052, -.89710684, .29732825, -.86932041, -.58495954, -.08213309, -.0853622, .0165121, -.08534104, -.06062097, -.17602733, -.19292472, .05629284, -.19265484, -.15166351, 1.8124182, 1.1240987, -.29446015, 1.0824607, 1.2460184, -.46757378, -.61606444, .09686109, -.60832329, -.34857258, -.70077091, -1.2435629, .27604516, -1.1779104, -.64722321, -.1823987, -.20009761, .04608985, -.19981187, -.14528683, .15408466, .14388699, -.0497265, .14377461, .13316156, -.51644298, -.7288862, .18606273, -.71466167, -.46299686, -.14773155, -.15945679, .05062292, -.15930187, -.13024906, .08229583, .07941547, -.01553589, .07939868, .05948041, .69703697, .52883327, -.57770487, .5221705, .8249277, -.04851095, -.04963147, .01148373, -.04962715, -.0378092, .24278042, .21941664, -.05953089, .21904267, .19145493, .671777, .52784301, -.16253492, .52276247, .52740266, -.15617841, -.17052382, .10367119, -.17030455, -.17164982, 1.5544976, .96906503, -.8655973, .93391329, 1.611296, -.28513785, -.3342719, .09440154, -.33286791, -.24852664, -.46089739, -.60530758, .10034894, -.59787735, -.34934169, 1.3867149, .93965444, -.1596063, .91634674, .84986798, .99046183, .70838601, -.35652627, .69529365, .88769888, -.08002395, -.08323765, .02434802, -.08321615, -.06781273, -.40573327, -.51545943, .11362931, -.51056997, -.33445206, -.40648123, -.52178853, .15049556, -.5164044, -.3677434, .66919291, .51936908, -.29608372, .51384969, .64246439, .39119646, .33692167, -.06846835, .33567223, .27569987, -.44122326, -.59962437, .3120213, -.59032278, -.49527189, -.13558433, -.1446097, .02421351, -.14450965, -.09619864, .0099352, .00988846, -.00324443, .00988842, .00862, -.42082174, -.53340542, .07930414, -.52844146, -.30397701, .96329528, .67781139, -.80426813, .66405317, 1.1428342, -.0708706, -.07339878, .02347869, -.07338375, -.06178438, -.32322952, -.4044075, .4388475, -.40104347, -.45094324, -.05908515, -.06087455, .02471536, -.06086552, -.05567385, -.06013292, -.0621644, .05487635, -.06215297, -.07348747, .47440157, .39775455, -.083663, .3957034, .3351855, -.47880308, -.63947157, .11047014, -.63063467, -.36999534, -.39057774, -.49590363, .15135669, -.49122338, -.35876951, .11513068, .10932827, -.03507222, .10927956, .09760194, -.02055911, -.02077991, .01319937, -.02077952, -.02234587, .27033978, .24057006, -.10481223, .24002518, .24836322, -.43174396, -.5558757, .10088222, -.55000281, -.33504185, -.28981713, -.34109702, .09986907, -.33959278, -.25599788, .49827704, .41348828, -.10395794, .41110027, .37234295, -.66452107, -1.0741235, .17103461, -1.033928, -.53257058, .86372263, .64400865, -.21357962, .63485223, .68303999, -.57246645, -.81588755, .09712925, -.79906265, -.39929453, -.25150833, -.28811492, .07642183, -.28723019, -.21303488, 1.1257878, .77787497, -.43700417, .76043632, 1.0346883, .08991045, .08629892, -.02843603, .08627475, .0771803, -.49263698, -.68520543, .20655261, -.67292912, -.46455617, -.09048578, -.09431884, .01431767, -.09429178, -.06166248, .15430815, .14356173, -.08180471, .14343712, .15734829, .97131033, .70646202, -.22186017, .69466674, .74806921, .18003708, .16590468, -.07972372, .16572004, .17289422, -.29781107, -.3528204, .10849739, -.35113661, -.2679849, -.21547121, -.24222419, .08081257, -.24167209, -.19577736, -.42192978, -.54243744, .11643098, -.53677288, -.34609312, .33540017, .29160407, -.11927025, .29065466, .29938467, -.44351758, -.57901057, .11739654, -.57220895, -.35878614, .16268658, .15236957, -.02106035, .15226062, .10368907, .28590306, .25449007, -.06539078, .25391638, .22028996, .23972163, .21592341, -.09129711, .21553052, .21892759, -.06197495, -.06390928, .02185816, -.06389922, -.05516861, -.6571649, -1.0257757, .12369826, -.99264783, -.47451226, -.07585836, -.07859974, .0152187, -.07858323, -.05595061, -.53839137, -.73995489, .08017422, -.727629, -.35954532, -.39484051, -.49202145, .07777106, -.48807333, -.2894435, .12160171, .11546501, -.02293981, .11541343, .08786847, -.33319858, -.42175107, .49249551, -.41787197, -.47820362, .12191667, .11533611, -.04328711, .11527694, .10876894, -.26129947, -.30723369, .21850026, -.30589492, -.3101604, .08817333, .08467038, -.0299148, .0846472, .07748129, .81469793, .60845971, -.31873043, .59990492, .75072737, .40253592, .34314298, -.10928505, .34168986, .32839763, -.47822963, -.66079171, .23024887, -.64941592, -.47224441, -.48937212, -.65862684, .11032834, -.6490406, -.37525963, .04390026, .04301507, -.01346779, .04301209, .03730384, -.51180504, -.71021291, .14550164, -.69766505, -.42400306, .69894703, .54186216, -.21977156, .53605376, .59882051, -.60590729, -.95447584, .26523247, -.92239875, -.57963733, -.28623331, -.33707983, .11342964, -.33558246, -.26489004, -.43329208, -.55524493, .08603306, -.549594, -.31848254, -.34106626, -.41442309, .10358315, -.41181335, -.28884546, -.34568306, -.42566848, .15087844, -.4226105, -.33037293, -.42486998, -.56263495, .23547429, -.5553061, -.43970547, -.75007176, -1.3815232, .21532873, -1.2992251, -.6234178, -.48305465, -.67351797, .25326371, -.6612743, -.49075548, -.4925107, -.6685222, .12619137, -.65823188, -.39412169, .03483665, .03426099, -.0135819, .0342594, .03206425, -.19559532, -.21772783, .08660362, -.21731139, -.18782828, -.35443248, -.43511509, .11098173, -.43207961, -.30323745, -.38942924, -.47511672, .0417335, -.4719991, -.2330544, -.3169427, -.3911817, .32732977, -.38830899, -.40363827, .87763202, .63066908, -.78726522, .61933602, 1.0664127, -.17403822, -.1918899, .10340688, -.1915853, -.18434141, -.6464664, -1.0192215, .15955964, -.9848451, -.51091461, -.65026946, -1.094346, .31035396, -1.0464465, -.6402624, -.60132335, -.96744638, .36099189, -.93192504, -.63911821, -.2453341, -.27893539, .05957132, -.2781709, -.19283876, -.00191244, -.00191422, .00075416, -.00191422, -.00176694, .36734483, .31925054, -.05931416, .31820521, .25202603, .22426428, .20539334, -.02796272, .20512909, .14115942, -.17674076, -.19368182, .05387904, -.19341163, -.1498676, -.13031518, -.13912861, .03784719, -.13902935, -.10873045, -.44782118, -.60051686, .20683888, -.59198702, -.43613788, -.00159905, -.00160024, .00040897, -.00160024, -.00127884, .41485687, .3471336, -.2760776, .34530268, .45633724, -.18260258, -.20092326, .05929216, -.20061747, -.15812979, -.11701754, -.1239598, .03056328, -.1238912, -.09424189, .1495302, .13983215, -.05168332, .13972741, .13221459, .20380671, .18589445, -.09405106, .18563252, .19843132, -.13218807, -.14162562, .0524459, -.14151343, -.1223795, .41633297, .35056555, -.18295125, .34884422, .39879435, -.40341564, -.51561001, .14153119, -.51047173, -.35847803, -.01089955, -.01096055, .00642133, -.0109605, -.01151218, -.27456939, -.31871107, .07790851, -.31753356, -.22732108, -.23174712, -.2617172, .06128696, -.26107315, -.18741697, .71778654, .56038029, -.12906297, .55469721, .51043536, .09040699, .08684762, -.02246169, .08682428, .07160755, -.42823472, -.57659012, .32392831, -.56817405, -.49160265, -.73344797, -1.2893331, .17694924, -1.2234043, -.57527094, .19918849, .18194076, -.09690683, .18169226, .19738052, -.31398027, -.38360774, .24614757, -.38105488, -.36476242, -.43606549, -.55891246, .08221844, -.55321494, -.31504135, -.07099877, -.07359873, .02893663, -.07358286, -.06632234, -.00646293, -.00648357, .00279196, -.00648356, -.00615553, -.51680267, -.73973336, .23720371, -.72411136, -.50226586, -.51801861, -.73542479, .20179385, -.72058524, -.47666092, -.31510981, -.37479678, .08222015, -.3729238, -.25369429, -.29745244, -.35137603, .09614113, -.34975579, -.25719239, -.7350391, -1.336973, .23001115, -1.2604332, -.62873348, .45611517, .38510575, -.07446771, .38327377, .31408632, .50450701, .41745884, -.11098301, .41497349, .3837134, -.54620251, -.77488586, .13042447, -.75931257, -.42693866, .1362107, .12821241, -.04075766, .12813419, .11478555, -.30235082, -.35349385, .05179581, -.35205906, -.21156751, -.3467653, -.43121179, .20520569, -.42781666, -.36680075, -.09358901, -.09788313, .02144084, -.0978503, -.07215069, -.5109863, -.71815973, .1875663, -.70447986, -.46096481, .23676848, .21228508, -.15500948, .21186412, .25902718, .20057903, .18446754, -.04245899, .18425215, .15061107, -.29042894, -.33880521, .06405475, -.33746858, -.22108216, -.61377622, -.96433791, .23168023, -.93229385, -.55887287, 1.9333925, 1.1448055, -.65698359, 1.0940393, 1.6998406, .62427481, .48959503, -.31924866, .4848092, .62898009, -.2687731, -.31553849, .16220444, -.31418928, -.28616825, .1688125, .15653835, -.06146817, .15638978, .15187857, 1.5577789, 1.0099456, -.2602146, .97901267, 1.0809139, .34211411, .29468124, -.19859652, .29359004, .35956814, -.37676295, -.46575044, .08665975, -.46227877, -.29084477, -.04356825, -.04456409, .02476282, -.0445603, -.04546984, .54015646, .43791248, -.1967464, .43471516, .48602505, -.22783589, -.25506306, .03873162, -.25452215, -.15901814, 1.6325194, 1.0312477, -.39506806, .99585434, 1.2817585, -.3395014, -.41625668, .14967692, -.41338841, -.32555372, -.5985588, -.92194884, .22020632, -.8938893, -.54036989, .78260351, .58753605, -.35527209, .57956426, .75780632, .40960714, .34094308, -.41757968, .33903753, .51939942, -.30710287, -.36661182, .11817014, -.36470194, -.28142877, -.17108852, -.18604524, .03381223, -.18582762, -.12555919, .11350844, .10731254, -.08557291, .10725621, .130159, 1.2408357, .7831263, -3.6426137, .75614678, 2.2385007, -.21783895, -.24568367, .09213761, -.24509219, -.20602156, .35676019, .30760557, -.13237542, .30648176, .32299567, -.47339603, -.65544184, .25993722, -.6440178, -.48840777, .99117112, .71254419, -.29305528, .6997705, .83194052, -.26696039, -.30860822, .07857154, -.30752986, -.2237328, -.51142055, -.74194832, .32302645, -.72510054, -.55285106, -.1879375, -.20968483, .14143173, -.20926642, -.21537795, -.33121455, -.40057121, .10942298, -.39816807, -.28848226, -.05952037, -.06115745, .0101589, -.06114995, -.0415977, .2214726, .20056696, -.10145905, .20023871, .21510654, .82994407, .61060408, -.50085881, .60112256, .88365144, .65665325, .50334461, -.59829855, .49746269, .80205973, .39092314, .33477803, -.10168134, .33344053, .31440155, .04051729, .03977174, -.01095703, .03976946, .0330117, .43090563, .35541749, -.46982053, .3532297, .55878161, .54113558, .44306617, -.11419461, .44012757, .40590954, .32541581, .28493424, -.0890398, .28409788, .26617289, .16749253, .15455772, -.12037301, .15439145, .18902388, -.4913407, -.6389941, .04688347, -.63170005, -.28288185, -.17514395, -.19160083, .04955168, -.19134353, -.1448637, .36564359, .31353362, -.15904747, .31230171, .34905261, -.62117094, -.96637706, .18616163, -.93562098, -.52373806, -.08114134, -.08447644, .02653013, -.0844536, -.07042895, .18348311, .1698388, -.03959452, .1696699, .13866039, -.1807133, -.19767585, .03826057, -.19741091, -.13570231, 1.6634134, 1.0265519, -.67645138, .98775055, 1.5527051, -.07647688, -.07923264, .01391425, -.07921609, -.05459884, .11829654, .11159352, -.08867616, .11153026, .1353922, 1.2923946, .8523698, -.67641718, .82824634, 1.312235, -.24728027, -.28598105, .1483619, -.28497583, -.2627708, -.21988658, -.25062573, .16645027, -.24991198, -.252486, -.2755918, -.31879509, .06308192, -.31767107, -.21240064, -.41555938, -.5461046, .23334534, -.53937065, -.4319483, -.46232233, -.63073909, .23301535, -.62070869, -.46355517, 1.0525976, .74403674, -.33602878, .72931862, .90638017, -.27406865, -.32789422, .32204228, -.32614366, -.36437944, .24627717, .22025092, -.14244988, .21979366, .2585315, -.49882646, -.67117749, .09412654, -.66142541, -.36047932, -.757155, -1.2849575, .09964465, -1.2269459, -.48523396, .01601422, .01588458, -.00985738, .01588441, .01716331, -.04840384, -.04964864, .02969185, -.04964331, -.0518174, .7899999, .60188253, -.17742938, .59452606, .60502019, .05872464, .05722597, -.01179111, .05721959, .04332533, .26990213, .23861572, -.18437104, .23801312, .29948732, -.21574816, -.24002871, .03790984, -.23957432, -.1522505, .08911037, .08538963, -.04426576, .08536375, .088917, -.17054948, -.18884314, .17185955, -.18851678, -.21542767, -.42724009, -.5588158, .16613186, -.55215875, -.39289422, -.53907287, -.73960392, .07661012, -.72741674, -.35443535, -.12371115, -.13191876, .04904969, -.13182807, -.11450593, .26584066, .23718158, -.09554028, .23666799, .2381331, -.07193602, -.07471814, .04147278, -.07470021, -.0754331, -.16794376, -.18242318, .03513074, -.1822154, -.12560733, .51446722, .4240492, -.11827354, .42142039, .39707968, .18001221, .16650009, -.05070766, .16633125, .14867427, -.1651066, -.18166399, .13222778, -.18138776, -.19317927, -.4040671, -.50783038, .08478384, -.50343544, -.30251716, -.35656546, -.43438462, .08002697, -.43157594, -.27301194, -.46168852, -.60815213, .10651153, -.60052466, -.35675899, .75767365, .57522385, -.28807777, .56801151, .6915677, .03096169, .03049283, -.01560224, .03049165, .03104241, -.60133479, -.99043463, .46627864, -.95049615, -.69604298, -.70618049, -1.2061333, .18489381, -1.1503995, -.56919525, .24609655, .22195569, -.06527636, .22156185, .19921972, -.52063409, -.77721393, .43550804, -.75680191, -.61805974, -.58453743, -.85844221, .13471332, -.8376708, -.45153186, .12094395, .11458282, -.03583559, .11452709, .10158688, .02002306, .01982647, -.00959622, .01982615, .01974227, .91966288, .6663239, -.39775707, .654931, .87626421, -.38085913, -.4691169, .070183, -.46573763, -.27306344, .05913795, .05757364, -.0155936, .05756674, .04777892, .25105429, .22456662, -.12004839, .22410201, .24734732, .19938372, .18269231, -.06796318, .18245978, .17548003, .18622686, .17193903, -.04823291, .17175657, .14956135, -.41397735, -.53665434, .16968061, -.53067629, -.3874406, .04709547, .0461403, -.00810289, .04613707, .03300218, -.19518562, -.21806268, .11519254, -.21761688, -.20627662, .29378722, .25870416, -.12913736, .25800816, .28143789, .01902191, .0188538, -.00554078, .01885355, .0158868, -.40164753, -.51436671, .15502383, -.50915843, -.36844518, .64695473, .52158013, -.06206705, .51756806, .37314672, .12682621, .12003312, -.02927752, .11997251, .09802287, -.19410383, -.21635595, .101727, -.21593179, -.19717181, -.67811503, -1.0999621, .15124977, -1.0582101, -.51813606, -.46257479, -.60401555, .08429428, -.59690919, -.33041823, -.3608694, -.46488093, .42992296, -.45994804, -.48199247, -.65122871, -1.0610844, .21954844, -1.0200803, -.5710522, -.67258585, -1.1766601, .33936915, -1.1174798, -.67463044, -.08720266, -.09116938, .0350974, -.09113932, -.08111879, -.00509289, -.00510486, .00119871, -.00510485, -.00396178, .45291532, .38054444, -.1065549, .37862873, .35227283, -.08207081, -.08518451, .01227092, -.08516483, -.05488179, -.24891045, -.29268088, .32299783, -.29140477, -.34206236, -.20663337, -.23348496, .1590604, -.23290514, -.23859664, .57358388, .45987294, -.21555813, .45615226, .52151015, .45636142, .37899664, -.20081928, .37682578, .43733853, -.20636515, -.22662807, .01883135, -.22629705, -.11705629, 1.1532973, .79180972, -.44832937, .77345009, 1.0604819, -.54038446, -.75598549, .110033, -.74196735, -.40054645, .34928336, .29803513, -.31908381, .2967882, .42700227, -.40210016, -.5032936, .07752103, -.49909166, -.29266627, -.25093777, -.30070727, .69736222, -.29907283, -.44450176, -.30426825, -.35877733, .07382058, -.35715861, -.2390967, -.14970123, -.16509879, .35249769, -.16483534, -.25092601, .02307411, .02283149, -.00577354, .02283107, .01831923, -.41932088, -.54145072, .13788425, -.53559902, -.36465252, -.34474458, -.42026974, .10748187, -.41753365, -.29452356, -.55799517, -.82395329, .21253264, -.80345531, -.50961105, .12961953, .12247884, -.03238179, .12241332, .10285465, -.33018576, -.39064385, .04471248, -.38880923, -.21362815, .73731356, .54577692, -1.0140553, .53763244, 1.0330754, -.18154748, -.20014871, .07311945, -.19983167, -.16892001, -.42498663, -.55452806, .16297509, -.54803939, -.38901581, -.00600484, -.0060217, .00158229, -.00602169, -.00485035, .61450549, .49157276, -.13907971, .48751452, .47182589, -.04702735, -.04815478, .02034566, -.04815028, -.04481268, -.16008101, -.17544448, .12013535, -.17519914, -.18328495, -.51264618, -.67570017, .04680861, -.66718712, -.29084644, -.22284727, -.24995451, .05288025, -.2494064, -.17382519, .1777406, .16335742, -.12044423, .16316371, .19669641, -.1437142, -.15404958, .02850149, -.15392582, -.10559232, -.24474757, -.28229458, .13943231, -.28133846, -.25562897, -.78642972, -1.4467791, .14614317, -1.3609128, -.56542644, -.19407858, -.21476424, .05819234, -.21439754, -.16366294, -.64387251, -1.048366, .23861404, -1.0079661, -.58269584, .29829784, .26117414, -.17942885, .26040684, .31725428, 1.4900327, .92632316, -1.3171175, .89233917, 1.8016982, .45972549, .37377608, -.61421176, .37112074, .63794284, -.2861039, -.33632444, .1046803, -.33486287, -.25781855, .14937027, .13895727, -.10718929, .13883641, .16848836, .19463101, .17693388, -.19324726, .17666618, .24463719, .79355468, .60572762, -.15788247, .59842521, .58367695, .31042585, .27243172, -.1086875, .27165932, .27566087, .04135138, .04049242, -.02863879, .04048945, .04609512, -.32145068, -.38395426, .08396824, -.38194144, -.25889554, -.73562767, -1.4450777, .39204252, -1.3408506, -.75143789, -.36532791, -.44937262, .09336057, -.44617764, -.29209205, -.39892618, -.50704603, .1318741, -.50221789, -.34752938, -.32060474, -.38784896, .14354275, -.38551527, -.30901795, -.1765428, -.19355136, .05657903, -.19327871, -.15221654, 2.3394378, 1.3473676, -.30483287, 1.2813555, 1.4943016, -.31096282, -.37087833, .10283438, -.36896617, -.27093291, 1.0859783, .75577531, -.45440743, .739474, 1.0233855, .19720267, .18057479, -.07989068, .18034148, .18384447, -.3246465, -.38443762, .0533124, -.38261275, -.22398893, -.35286254, -.44059746, .20400798, -.43699738, -.37036456, -.11130243, -.11825382, .06964829, -.11818152, -.1199453, -.06994831, -.07243064, .02493993, -.07241596, -.06249231, -.07509116, -.0781089, .04074936, -.0780887, -.07716899, 1.166492, .82525978, -.14316975, .80901539, .730379, -.58856584, -.87216233, .14631541, -.850078, -.46626919, -.15170571, -.16421673, .05562899, -.16404499, -.13680806, -.23642523, -.26953091, .09431982, -.26876095, -.21928396, 1.2246902, .82709598, -.48183993, .80623267, 1.1306506, -.31617484, -.37923159, .11402568, -.37714942, -.28354963, .61648186, .48125335, -.43749454, .47636965, .69281042, -.64138809, -1.0544577, .27300116, -1.0122425, -.60787193, .00472718, .00471616, -.00215465, .00471616, .00458357, -.61747777, -.97556422, .23622717, -.94236336, -.56476464, -.31496282, -.3808278, .16217289, -.37854867, -.31805992, -.37219955, -.47069992, .1978299, -.46640289, -.37986085, -.71138226, -1.2460676, .21902671, -1.1831298, -.6052169, 1.0772525, .76792309, -.20551361, .75345346, .78133124, -.1475719, -.15801087, .02016759, -.15788791, -.0957702, -.0727345, -.07519354, .01205448, -.07517969, -.0503369, -.08809982, -.09235631, .05365101, -.09232205, -.09408477, -.18005295, -.19752633, .05116633, -.19724419, -.1491437, -.38072892, -.48875079, .25433663, -.48370594, -.41933091, -.36413263, -.46052622, .23616567, -.45631989, -.39712021, -.68556971, -1.1161577, .14429661, -1.0731609, -.51380279, -.71979819, -1.214295, .14099908, -1.1606648, -.52669103, .13541721, .12781347, -.02750881, .12774236, .1002959, -.19155512, -.21398675, .13296114, -.21355002, -.21368831, -.02946115, -.02991134, .0167019, -.0299102, -.03072075, .07547686, .07294779, -.02053261, .07293367, .06161701, -.18542571, -.20554424, .09615491, -.2051812, -.18769258, -.180983, -.19856682, .04954349, -.19828258, -.1480576, .20548708, .18394425, -.55711593, .18356875, .36100638, .30564407, .27130693, -.04864899, .27066583, .20869495, -.4335402, -.55447739, .08104884, -.5489223, -.31232867, .00480665, .00479632, -.00090624, .00479632, .00347259, -.47371878, -.64231774, .16830858, -.63250006, -.42272619, .78206513, .5938595, -.22169969, .58642411, .64728216, -.24252746, -.29054001, .90449951, -.28896615, -.47386365, .33614965, .29324886, -.09098586, .29233972, .27396164, -.02459471, -.02489137, .00878931, -.02489077, -.02198988, -.32686367, -.40010855, .19120171, -.3973953, -.34441735, .45452702, .38874174, -.03322338, .38716258, .23944057, -.61526369, -.92187408, .12080582, -.89722331, -.45055396, -.32979795, -.40438668, .18921242, -.40159837, -.34526974, .01276038, .01267508, -.01062279, .01267499, .01512395, .67025524, .53061827, -.11573048, .5258223, .47023982, .01231046, .0122366, -.00530102, .01223653, .0117124, -.53343753, -.76247714, .17972208, -.74649829, -.46766284, .79134069, .60363712, -.16613213, .59632443, .59256619, .1153121, .10893029, -.08634822, .10887146, .13193025, -.16037794, -.17487406, .07385238, -.17465601, -.15603712, .9654928, .69826557, -.28863239, .68619382, .81337542, -.06134382, -.06330359, .02897981, -.06329316, -.06019435, .00244078, .00243787, -.00102986, .00243787, .00230651, 1.5691233, .98842673, -.5897572, .95409789, 1.4267213, .04228714, .0414951, -.00917155, .04149263, .0320108, 1.3228095, .90357051, -.17791923, .88205697, .85391732, -.01503735, -.01515156, .00743688, -.01515142, -.01498262, .5965217, .48228649, -.1026045, .4786732, .41797436, .06534403, .06314579, -.06755126, .06313346, .08324506, -.49513241, -.70830816, .33087258, -.693397, -.54539501, -.4677422, -.65885271, .39645944, -.64613953, -.55771709, -.20531295, -.22935246, .07626127, -.22888449, -.18594688, .33563435, .29252514, -.09882365, .29160579, .28132472, .31064422, .27186077, -.1343201, .27105662, .29595966, -.55097263, -.7914575, .15102473, -.77441451, -.45093372, -.55340313, -.78297871, .11190365, -.76748207, -.40924731, -.29572207, -.35195959, .14044925, -.35018791, -.29069594, 1.0988318, .77682481, -.23706795, .76147012, .83033837, -.28297883, -.33497381, .15739575, -.33339057, -.29320878, -.35137446, -.43606491, .17272374, -.43269435, -.34938759, .12066639, .11377046, -.08228424, .11370482, .1338155, -.44701492, -.58502391, .11740855, -.57802441, -.36068209, -.30824166, -.36985169, .14184369, -.36781286, -.29982941, 1.2625632, .85442377, -.35283047, .83309177, 1.0400019, -.61868489, -.94808588, .15795341, -.9198961, -.49449967, .29443171, .26202895, -.05259633, .26143623, .20892234, -.27616623, -.32253796, .10147059, -.32124646, -.24921286, -.40471255, -.5251753, .20886682, -.51927976, -.40900718, .33381072, .28756209, -.23980506, .28649889, .37667168, -.09207871, -.09583497, .0090507, -.09580943, -.05353982, .56006342, .45844305, -.08799057, .45539449, .38075608, -.58850091, -.85505713, .10766838, -.83548634, -.42092444, -.18128359, -.19814108, .03465984, -.19788023, -.13158039, -.31121101, -.37485349, .15347266, -.3726993, -.30978256, -.45361014, -.59288488, .10104785, -.58585906, -.34645023, -.01900502, -.0191797, .00622152, -.01917943, -.01650268, .52994269, .43020798, -.21359841, .42710669, .49320629, -.21196157, -.24338567, .34360046, -.24261218, -.3137131, -.25544256, -.29826036, .18707452, -.29706989, -.29009732, -.48657066, -.68175257, .26214621, -.66899595, -.49883296, -.42367461, -.53713506, .07560392, -.53212753, -.30052439, .98389218, .71258108, -.23523613, .70036802, .76938376, .47483615, .39254505, -.18996527, .39018529, .44082267, -.1376024, -.14743101, .03818127, -.14731411, -.11307783, .21915281, .19975787, -.05652117, .19947229, .17575664, -.34172702, -.41941311, .14731614, -.41649423, -.32524677, -.49610192, -.67810347, .13786304, -.66718982, -.40788702, -.16061155, -.17489035, .0640399, -.17467908, -.14894002, -.035485, -.03613234, .01785704, -.03613037, -.03556119, -.10011507, -.10571042, .0649818, -.10565833, -.1092128, -.04909337, -.05051213, .07267563, -.0505053, -.07049444, -.54435295, -.76508557, .11316441, -.7505084, -.4062877, -.11677946, -.12383066, .03591921, -.12375975, -.09931844, -.65726608, -1.0940232, .25523702, -1.0480806, -.60416009, -.29905577, -.35263585, .08481753, -.35104457, -.24755593, -.19437406, -.21352226, .03118789, -.21320842, -.13307532, -.27081395, -.31241964, .06270018, -.31135865, -.20951427, .15849984, .14778562, -.04899389, .14766503, .13502366, -.26566333, -.30965233, .12526537, -.30844405, -.26052021, -.68532103, -1.1922166, .27796429, -1.1334119, -.63914938, -.10471729, -.11043262, .03724848, -.11038066, -.09348138, .00803161, .00800338, -.00126996, .00800336, .00547195, -.07886452, -.08222875, .04562021, -.08220484, -.08279108, -.67807343, -1.1186664, .18148905, -1.0732677, -.55056841, -.17595583, -.19625729, .2342868, -.19586783, -.24389059, -.18978248, -.21062799, .08775934, -.21024721, -.18490353, -.23427545, -.27119856, .24041235, -.27023282, -.29772373, .08337657, .07982728, -.09072793, .07980211, .10804874, -.61638855, -.95161513, .17947302, -.92234774, -.51472994, .20711321, .18931154, -.06572243, .18905694, .17798623, -.3158705, -.38265762, .17068702, -.3803213, -.32415263, -.13189491, -.140452, .0244726, -.14035955, -.09478117, -.16764576, -.18354498, .07563673, -.18329408, -.16200035, -.74333211, -1.3062087, .15845589, -1.2395043, -.55945873, -.04221584, -.04305493, .009424, -.04305215, -.03226552, -.72568875, -1.1692499, .08157792, -1.1260602, -.44126669, 1.77338, 1.061003, -.98213706, 1.0157412, 1.8348557, .36294902, .31489956, -.07387521, .31384364, .26899239, -.16160544, -.17445902, .02511073, -.17428883, -.10946294, -.70185702, -1.1708789, .15445141, -1.1212862, -.53387517, .52140835, .42384374, -.22667406, .42082704, .49765602, -.59259514, -.90874925, .2250736, -.88164116, -.54070067, -.40948553, -.52396608, .12972269, -.51869615, -.35170161, .20816448, .18841311, -.17581014, .18810139, .24791095, .20215826, .18342302, -.17387828, .18313418, .24222526, .11115793, .10565635, -.03894939, .10561099, .09873486, -.04123664, -.04213836, .02615007, -.04213508, -.04463647, -.50670895, -.6690676, .05365911, -.66052978, -.30203936, .15720202, .14634125, -.0650782, .14621632, .14761391, -.1834838, -.20188296, .05681243, -.20157602, -.15639502, .44790692, .37157338, -.24828478, .36942029, .46357344, -.49986366, -.69590579, .18716349, -.68336807, -.45392568, .03891738, .03824744, -.00816765, .03824552, .02913878, -.55877496, -.7915482, .10588122, -.77577269, -.40436565, -.39515345, -.48937289, .06294872, -.48566269, -.26988753, .90903762, .66431873, -.31404331, .65355199, .80363915, .23699414, .21462184, -.05905524, .21427054, .1878976, -.22644866, -.25608388, .08060168, -.25543944, -.20219537, -.51409536, -.72513605, .19086976, -.71103345, -.4655341, -.09390425, -.09808598, .01622865, -.09805496, -.06590135, -.18293775, -.20044297, .04035424, -.20016426, -.13926499, .30686752, .26943475, -.11489929, .26867629, .2786654, .25941202, .23225778, -.08495427, .2317852, .22528476, -.29289941, -.33915755, .04087848, -.33794516, -.19141997, -.55640335, -.82344801, .22498141, -.80273028, -.51838453, -.23501333, -.26804386, .10169991, -.2672728, -.22396416, .80660885, .61166026, -.18348059, .60392645, .62036702, .63597057, .50273699, -.1890479, .49813604, .53475965, -.17831489, -.19376152, .02258637, -.19353881, -.11282809, .15788542, .14683688, -.07146351, .14670816, .15273297, .31437664, .27629039, -.08785822, .27552393, .25896295, -.02119928, -.02142054, .00801789, -.02142015, -.01931572, -.213974, -.24075384, .0907402, -.24019679, -.20254301, .57300032, .4618039, -.16673832, .45824071, .4784006, -.69990914, -1.2024454, .20969585, -1.1456999, -.59006663, -.43663688, -.57937163, .19843595, -.5717182, -.42295782, -.6999281, -1.1796357, .17473638, -1.1277224, -.55527322, -.33628019, -.40642213, .0943844, -.40400116, -.27740286, .09676137, .09286071, -.01635389, .09283451, .0674039, 1.8018275, 1.1002365, -.48487958, 1.0568529, 1.4656494, -.1943912, -.21310284, .02600456, -.21280316, -.12525957, -.17430367, -.19142964, .07306846, -.19114968, -.16435806, .26648034, .23882517, -.0625431, .23834798, .20709992, -.08958401, -.0935379, .02193978, -.09350883, -.07061675, -.39875508, -.51947359, .26043558, -.513467, -.43589403, .51016929, .41311266, -.33056636, .4100625, .55621038, -.16540808, -.18191671, .12555404, -.1816426, -.19010405, .50464921, .40235926, -.79250121, .39893887, .739043, -.32848361, -.39668106, .11034615, -.394338, -.28769889, .21190257, .19356919, -.05856727, .19330527, .17390783, .61856884, .48325688, -.4108685, .47838328, .6799907, -.12318035, -.13091587, .03237189, -.13083497, -.09940929, -.16718999, -.18387022, .11490442, -.18359337, -.18589274, -.00552738, -.00554152, .00133074, -.00554152, -.00433233, -.34750055, -.42763568, .14151549, -.42458214, -.32452513, -.34545728, -.4196014, .09219207, -.41696914, -.2802232, -.49934896, -.69915736, .21022035, -.68612969, -.47152459, 1.0062373, .71246557, -.45343421, .6985066, .97195996, -.40626462, -.5176477, .12244208, -.51261747, -.34318337, -.42870959, -.56598503, .20357239, -.55877089, -.42139731, 1.1220376, .80928424, -.09607301, .79506088, .62308708, -.57000283, -.84169848, .17929395, -.82075725, -.48840851, -.57962635, -.9324093, .48360729, -.8981939, -.68750051, -.34757552, -.43013201, .17133745, -.42689337, -.34593424, -.40116626, -.51722287, .18855829, -.5116987, -.39298395, -.1318524, -.14315117, .23189101, -.14299002, -.2005226, .34696024, .30208288, -.08187864, .30111914, .27013862, .68635505, .53431463, -.21049749, .52877116, .5831651, .53415328, .43106998, -.272978, .4277847, .53805889, -.55241711, -.80281608, .17929285, -.78441849, -.47830957, -.15357511, -.16710791, .08543382, -.16690944, -.15913553, -.37272554, -.46913947, .16937978, -.46502656, -.36104108, -.11396473, -.12090322, .04674349, -.12083286, -.10668353, -.16232168, -.17592145, .03673375, -.1757318, -.12462814, .3351197, .29115699, -.12639674, .29019958, .30506233, -.68757701, -1.1034464, .12006062, -1.0633468, -.4841996, .28062883, .24683379, -.20418777, .24615772, .31801048, -.63868948, -1.0709972, .34581798, -1.0247459, -.65587191, -.58877059, -.91706114, .29009841, -.88772079, -.58589868, .81611024, .61280088, -.25217023, .60449659, .69514247, -.05579265, -.05736679, .02123494, -.05735938, -.05094228, .13043956, .12285477, -.05233093, .12278132, .12120923, -.20919899, -.2352261, .10393811, -.2346879, -.20875714, -.56744871, -.81155064, .11068618, -.79449026, -.41462824, -.1940966, -.21434157, .04919301, -.21399033, -.15475917, .44182534, .36408877, -.40500544, .36182622, .54075104, -.01865539, -.01882854, .00787443, -.01882827, -.01763137, -.08065021, -.08465838, .13779541, -.08462519, -.1214764, .43433084, .36925957, -.07083523, .36764328, .29897868, -.33521405, -.41214582, .18289228, -.40922816, -.34510925, -.12262503, -.13071836, .05044404, -.1306294, -.11490335, .23473909, .21374147, -.0364345, .21342897, .15894171, -.33774469, -.41738767, .20562881, -.41428549, -.3606592, -.36903476, -.46565002, .19791216, -.46147956, -.37775684, .06340986, .06144898, -.03875127, .06143887, .0677969, .33058378, .28722357, -.14068763, .28627944, .31329226, -.26984463, -.31387478, .09954822, -.31268285, -.24383555, .18696495, .17099738, -.13956152, .17077045, .21368401, -.52960263, -.7515304, .16771962, -.73640445, -.45481842, -.28316653, -.334515, .14281789, -.33297169, -.28398724, .36771133, .31898127, -.06732474, .3179093, .26307095, -.02603472, -.02636435, .00855866, -.02636365, -.02263848, .12908829, .12155656, -.05880958, .12148337, .12514608, -.24843362, -.28399314, .07459121, -.28314787, -.2095943, .29605613, .25933735, -.18357246, .25858099, .31807427, .53914806, .43730331, -.19476862, .43412486, .48378792, -.40364205, -.51834327, .16088398, -.51297832, -.37426441, -.21349457, -.24323462, .20531619, -.2425465, -.26550678, .51045144, .41854975, -.16824595, .41581371, .44425039, .0641572, .06226, -.02314806, .06225065, .05754555, 1.0415381, .76123549, -.10527893, .74890682, .61128058, .49465947, .41079497, -.1055044, .40844152, .37236691, .39576095, .33863294, -.09758524, .3372652, .31267513, -.30237268, -.37541857, .58287022, -.37250493, -.47412805, .31545764, .27616088, -.11590711, .27534789, .28466936, -.61214837, -1.0049153, .39043097, -.96491339, -.66388963, -.34251752, -.43626109, .4745376, -.43203465, -.48108528, .4715008, .38702078, -.29953, .3845176, .51067555, .46184264, .38043816, -.290303, .37806466, .49845183, .25935317, .23285363, -.06588961, .23240341, .20695537, -.35230193, -.43826698, .18310789, -.43480406, -.35688013, -.32328653, -.38029361, .04067316, -.37862702, -.20409752, -.13313177, -.14309375, .07244864, -.14296964, -.13694343, .33611667, .29069772, -.17158709, .28967912, .3384529, -.30067393, -.35833911, .13036976, -.35650718, -.28672538, -.09645221, -.10094237, .01903377, -.10090755, -.07074999, .06671792, .06454695, -.04173267, .06453518, .07188921, .6182557, .49486798, -.12857452, .49080423, .46150214, .17507007, .16115999, -.11280864, .16097604, .19051627, -.15839997, -.17079417, .02584927, -.17063272, -.10905933, -.25464138, -.30430441, .5528601, -.30270031, -.41543308, .8334476, .61380438, -.46533053, .60433542, .86466799, -.57173845, -.81511966, .0986911, -.79827964, -.401083, .20398599, .18794113, -.02996711, .18773108, .13561004, -.47896225, -.63114888, .08014446, -.62321102, -.33253347, -.08587928, -.09012595, .07993469, -.09009097, -.10564462, -.11145971, -.1181655, .05063144, -.1180983, -.1079515, -.05762836, -.0593631, .02864716, -.0593544, -.0575168, -.39564628, -.50560667, .16467577, -.50057398, -.37218422, -.8186431, -1.5612468, .13726219, -1.4578464, -.56875258, -.4298262, -.56849767, .20837131, -.56115667, -.42541999, -.29717354, -.34824523, .06655057, -.34678971, -.22737045, -.2663489, -.30960182, .10678396, -.30843645, -.24744534, .62238915, .4899456, -.27428963, .48530168, .59674365, -.46663198, -.60878868, .07689304, -.60167196, -.32232106, 1.08491, .75534841, -.45134348, .73909341, 1.0204104, .26931269, .24231221, -.03990889, .24186205, .17955787, .47043431, .39382938, -.09807516, .39176342, .35144902, -.00905558, -.0090941, .00243494, -.00909407, -.00736406, .20377738, .18745498, -.0363535, .18723738, .14453157, .62720037, .50051111, -.133264, .49628922, .47153994, .41297257, .34729489, -.2110996, .34556443, .41602549, -.58715294, -.89322081, .21747192, -.86754487, -.53126584, -.50533386, -.71893342, .25540897, -.70425374, -.50715531, -.14009154, -.1512005, .07686636, -.15105385, -.14449851, -.59694963, -.94176184, .30421971, -.90990987, -.60075525, -.39574995, -.49862122, .10815252, -.49421175, -.3235709, -.02203916, -.0222661, .00521286, -.02226571, -.01717245, -.5643388, -.84952657, .25781957, -.82629313, -.54761487, -.46143087, -.59850049, .0722647, -.59180533, -.31336933, .06867264, .06640179, -.03857597, .06638928, .07139012, 1.4069938, .91911624, -.46391089, .89191944, 1.2246622, .01437706, .01427343, -.00812206, .01427331, .01497427, -.24825838, -.28976038, .23058706, -.28860956, -.30518107, -.45187503, -.58313209, .07457827, -.57685962, -.31229114, .25773194, .23150697, -.06631236, .23106325, .20653183, -.52978301, -.73966925, .12414029, -.72611493, -.41150925, -.58921908, -.91838301, .29081526, -.8889123, -.58667862, .25824659, .23058882, -.11231133, .2300964, .24651362, .40403531, .34235158, -.15679228, .34079063, .37130526, .27361868, .24458212, -.06414271, .24406985, .21256394, -.10496889, -.11072481, .03798771, -.11067224, -.0942464, .09818183, .09312006, -.15636528, .09307659, .14445886, -.52659025, -.77067499, .29419098, -.75235543, -.54643058, -.17248065, -.19014623, .10983932, -.18984525, -.18696323, .65251306, .50119818, -.57530002, .49543065, .78831708, -.23637986, -.27195111, .16012657, -.27106246, -.26156007, -.22305026, -.25038868, .05559303, -.24983171, -.17685551, .4107871, .34630393, -.18930093, .34462669, .39976562, .2216956, .20296372, -.03198751, .20270035, .14650132, -.54044385, -.77070257, .15552789, -.75475731, -.44955187, .15455827, .14435313, -.04740392, .14424093, .13132364, -.2975832, -.34559306, .04196399, -.34430789, -.19515268, -.30919006, -.36357347, .05707774, -.36198757, -.22181076, .1470479, .13773376, -.04671594, .13763552, .12641664, -.27668337, -.32180148, .08112549, -.32058084, -.23158894, -.34043974, -.42537637, .27778143, -.42187937, -.4008094, .98571709, .72132124, -.15599688, .70972918, .67176416, -.53744887, -.77628212, .20199067, -.75906314, -.48866572, .76475491, .58244415, -.23356688, .57530701, .64887633, .4292717, .36394447, -.09307895, .36229654, .32492415, -.20931072, -.23535541, .10360539, -.23481677, -.20860839, -.55941465, -.8232608, .19772633, -.8031278, -.49833424, -.78218099, -1.4146044, .13373406, -1.3351006, -.54696833, -.39557156, -.50125184, .12896442, -.49659865, -.34301782, .55608386, .4539049, -.10853815, .45080137, .40640995, .00168945, .00168803, -.0008074, .00168803, .00166419, -.63501826, -1.036189, .27290696, -.99591278, -.60377113, .74239142, .54687025, -1.1635979, .53844638, 1.086508, -.20609582, -.23159291, .11227057, -.23106861, -.21206944, .38679794, .32601357, -.31028056, .32443082, .45281168, -.15855635, -.17295887, .08414102, -.17274116, -.16173413, -.27333304, -.32138804, .1525336, -.3199873, -.28352624, -.44275803, -.58484206, .15931926, -.57735932, -.39677447, -.02067804, -.02090629, .016071, -.02090587, -.02395321, -.12558298, -.13447685, .07401916, -.13437197, -.1326616, .16734546, .15439342, -.12396971, .15422656, .19077633, -.21300708, -.23931334, .08510621, -.23877333, -.19766348, -.58182647, -.85676257, .14576395, -.83574557, -.46212099, -.18692859, -.20567212, .04893615, -.20535946, -.15066201, -.4993853, -.67374138, .09900201, -.66377543, -.36687251, -.58389203, -.90928901, .30932041, -.88022178, -.59525249, -.18699099, -.20657095, .06832535, -.20622992, -.16842934, -.50695147, -.71397244, .20763442, -.70020786, -.4743374, -.04559305, -.04668013, .02485613, -.04667581, -.04692672, .21231924, .19457061, -.04049855, .19432371, .15398652, -.36578368, -.46398373, .24873611, -.45963919, -.40526506, .33809673, .29409674, -.10778097, .29314608, .29099443, .57700922, .45883265, -.309139, .4548408, .59044996, .00642141, .00640259, -.0014665, .00640258, .00494528, -.69472872, -1.2290276, .28823549, -1.1648157, -.65283383, -.70671288, -1.2777091, .30036925, -1.2059735, -.66945876, .21664136, .19702405, -.07857647, .19672851, .19465628, .02260057, .02233772, -.01714393, .02233721, .02596927, -.4978844, -.6832303, .14528112, -.67195796, -.41606904, .9373839, .69029883, -.18226697, .67964474, .68421247, -.15536107, -.1676527, .03298504, -.16749081, -.11677337, .0753751, .07282344, -.02287026, .07280904, .06381444, -.48360754, -.66005986, .16400979, -.64953463, -.42490838, .17651917, .1645224, -.02184892, .16438664, .1108361, .14902537, .13901636, -.07521762, .13890443, .14949385, -.11372673, -.12063143, .04645204, -.12056161, -.10631306, .38962092, .32846824, -.28859996, .32687783, .44415743, -.13831529, -.14874468, .05677358, -.14861375, -.12951068, .45014415, .37964011, -.08873034, .3778103, .33006676, -.59932926, -.88869049, .12781384, -.8661144, -.45114168, -.07285928, -.07618779, .15321854, -.07616245, -.11760804, .76961802, .57911231, -.36943314, .57137871, .7592278, .66658241, .5152085, -.36793387, .50955464, .68892057, -.62358675, -.97685879, .19677698, -.94481243, -.53489189, -.58088849, -.90231318, .31211268, -.87379199, -.59498906, .10412954, .09960377, -.01871541, .099571, .07403875, -.23137148, -.26715256, .2316752, -.26623412, -.29163729, -.0382953, -.03912356, .04295741, -.03912058, -.05013254, -.54583794, -.7822518, .15643182, -.76562044, -.45341322, -.62053932, -.92182829, .09946152, -.89819597, -.42469248, -.64636966, -.9678868, .08069936, -.94208274, -.40702462, -.24688153, -.28801846, .2355242, -.28688146, -.30620639, -.27727563, -.32345202, .09267822, -.32217641, -.2424434, .23571931, .21441825, -.03915749, .21409801, .16325947, .02579881, .02546094, -.01766667, .0254602, .02865022, .01018719, .01013478, -.00596942, .01013474, .01074048, -.23096241, -.26423235, .14006962, -.26343648, -.24631197, -.71367779, -1.1606493, .10338586, -1.1161336, -.47224261, .31282919, .27725536, -.04603387, .27658309, .20808495, -.05945849, -.06112264, .0119089, -.06111488, -.04383051, .51297607, .4271129, -.06779652, .42473358, .32921317, .00025261, .00025258, -.00020794, .00025258, .00029828, -.3127226, -.37298985, .09843749, -.37106606, -.26802154, -.00170261, -.00170402, .00066826, -.00170402, -.00157061, 1.1611366, .79812769, -.40803169, .77973498, 1.0323577, -.59119608, -.88733313, .1703966, -.8634081, -.49202217, -.02362601, -.023929, .02083461, -.02392835, -.02854514, .05530985, .05393895, -.01449093, .05393329, .04459064, .47259754, .38931982, -.24069738, .38689234, .47551194, -.33479564, -.41306924, .20857697, -.41004602, -.36026216, -.21943083, -.24744835, .08621337, -.24685385, -.20248832, .57101126, .46007865, -.17379503, .45652008, .48393337, -.0316426, -.03215089, .01463176, -.03214953, -.03082882, -.2881194, -.33455702, .05396576, -.33331514, -.20769742, 1.2161216, .816381, -.62139287, .79516325, 1.2249455, .18269367, .16919124, -.03852079, .16902511, .1370011, .14266762, .1341986, -.03132067, .13411488, .10843529, -.00524903, -.00526237, .00190546, -.00526237, -.00471768, .75192761, .57366542, -.24827375, .56672404, .6547934, -.20089528, -.22412975, .0826315, -.22368296, -.18823702, .34601415, .29494433, -.36799881, .29369444, .44499457, -.10867453, -.11453236, .02495986, -.11447976, -.08385119, .28694097, .25478952, -.07838203, .25419079, .23457256, .427035, .3673767, -.03670304, .36599389, .23743951, -.62148672, -.9681708, .1885892, -.93717387, -.52618303, -.00869881, -.00873551, .00312224, -.00873548, -.00778883, .07610759, .07323409, -.05970733, .07321602, .08843778, -.00509814, -.00511164, .00345547, -.00511163, -.00564227, .28586233, .2547403, -.05935707, .25417708, .21327443, 1.6615841, 1.0644756, -.22420563, 1.0300949, 1.0737596, -.11622361, -.12359196, .05572119, -.12351416, -.11460749, -.47749766, -.67181146, .32901169, -.65893501, -.53136703, -.19254828, -.2121792, .04394746, -.21184626, -.14825671, -.04649595, -.04755493, .01426885, -.04755091, -.03951388, -.07931842, -.08260539, .03410218, -.08258269, -.07542583, -.26884138, -.31519171, .15172867, -.31386657, -.27991744, -.24944187, -.2824923, .0407766, -.28176471, -.17184092, -.40601813, -.52475388, .18290599, -.51904222, -.39214763, .45282614, .37853673, -.14522169, .37651843, .39051838, .01715587, .01697844, -.05316215, .01697813, .03151273, .34733492, .30333315, -.06454921, .3024075, .24973108, .02556932, .02523941, -.01655107, .0252387, .0278675, -.1494024, -.16187134, .06915062, -.16169812, -.14560638, -.26773939, -.31135008, .10467388, -.31017154, -.24665937, -.35702969, -.44172636, .13711975, -.43840783, -.32697375, -.01508935, -.01520375, .00711999, -.01520361, -.01480074, -.27394964, -.31595297, .05636073, -.31488397, -.20375863, -.10874203, -.11488613, .03671461, -.11482831, -.09540136, .76481258, .58966962, -.13679373, .58307459, .54291946, -.3530344, -.43827726, .16826872, -.43487874, -.34744746, -.64654178, -1.0535779, .23292136, -1.0128438, -.57962107, -.13580059, -.14604153, .06581002, -.14591295, -.13439253, .35804975, .31001552, -.09546595, .30894596, .29034994, -.18155178, -.19938011, .05251883, -.19908883, -.15128017, -.45439126, -.62707997, .33824226, -.61636569, -.51884695, .15608272, .14581403, -.04227721, .14570154, .12723755, -.46485105, -.63744583, .24797994, -.62697558, -.47499757, -.45553411, -.5845954, .06002834, -.57857639, -.29206267, -.54320935, -.79196175, .21592063, -.77350635, -.50321418, -.48736189, -.67165321, .18788473, -.66027432, -.44689779, -.56800422, -.82241252, .13509182, -.80393212, -.44339153, -.11162201, -.11845271, .05756639, -.11838309, -.11278021, -.04907169, -.05018343, .00885214, -.05017923, -.03493387, -.10962828, -.11590109, .03819445, -.11584131, -.0971908, -.45160058, -.58885072, .0985034, -.58199558, -.34250223, -.1994024, -.22374977, .13241529, -.22325561, -.21918439, -.22905152, -.26273431, .17412391, -.26191188, -.26338129, -.10781419, -.11381191, .03456585, -.11375634, -.09297004, -.30423076, -.36129752, .10179414, -.35952395, -.26610498, -.1425758, -.15224961, .0189258, -.15214031, -.09163442, 1.9216935, 1.1866063, -.20976514, 1.1418559, 1.1571168, -.13575323, -.14470404, .02217588, -.14460576, -.0934983, 1.1687913, .81092704, -.28073579, .79314467, .91537822, .38176342, .32608969, -.14618068, .32474321, .34927664, -.2598243, -.29725508, .05464092, -.2963596, -.19467156, -.5464075, -.77583871, .13201835, -.76017113, -.42877804, -.61671174, -1.0006056, .32406862, -.96258745, -.62701386, -.42496381, -.56190555, .22665969, -.5546644, -.4342129, -.00255548, -.00255854, .00071623, -.00255854, -.00210705, .34223009, .29781075, -.09495459, .29685356, .28122944, -.45673818, -.58402781, .05310595, -.57818627, -.28086822, .12762718, .12045632, -.04446452, .12038922, .11314707, -.32207242, -.39951794, .34140655, -.39644283, -.41374838, .44372967, .37334388, -.1152856, .37149414, .35673632, .19218058, .17660794, -.06536837, .17639793, .16902031, -.14463536, -.15745123, .14423191, -.15726224, -.18205954, -.35681123, -.43234864, .06492199, -.42970297, -.25474144, -.78585143, -1.3684292, .09378862, -1.3007048, -.4874765, -.43056416, -.5679701, .19280781, -.56077272, -.41502742, -.1194873, -.12628985, .0183943, -.12622535, -.08068366, 1.1504472, .78712309, -.51432053, .76854013, 1.1083215, .66994874, .51588221, -.41716434, .51005709, .72078672, -.50174162, -.74091841, .49762731, -.72248226, -.63042219, .0980341, .09337897, -.0712195, .09334215, .11103531, -.30095346, -.36594052, .28942734, -.36361946, -.37427379, -.28916199, -.34238757, .13404999, -.340764, -.28196361, -.31635819, -.39324606, .42212845, -.39016088, -.43881109, .01227257, .01219951, -.00506124, .01219944, .0115094, 2.3768308, 1.3307905, -.56859495, 1.2590067, 1.8589876, -.21238201, -.24031481, .13972587, -.23970439, -.23272734, -.0683085, -.07075601, .032727, -.0707414, -.06734343, -.67175986, -1.0412262, .09493018, -1.0086275, -.44084658, .04463719, .04369266, -.01844834, .04368933, .04189161, -.28367342, -.33030346, .0703631, -.32903186, -.22456259, .20751412, .18880873, -.10576337, .18852821, .20884313, -.39639779, -.53145541, .5463898, -.5239165, -.55581681, -.53396651, -.76610369, .19014519, -.74971475, -.47684928, -.41388794, -.52473636, .0911924, -.51984373, -.3149571, -.0474799, -.04858814, .0149372, -.04858383, -.0406855, .01555976, .01544743, -.00437587, .0154473, .01284399, -.54760283, -.84791733, .48049955, -.82149155, -.6605182, -.20115182, -.22518278, .10467438, -.22470551, -.20384783, -.63784704, -.95934541, .09561186, -.93321814, -.42689881, .90776996, .66918714, -.22617176, .6589283, .71968093, -.06315845, -.06515324, .0208039, -.06514274, -.05495567, -.23762773, -.27339367, .15373728, -.27249999, -.25894119, -.50295249, -.69954311, .17494849, -.68701101, -.44565424, .01552274, .01541147, -.00418046, .01541134, .01262981, 2.1068331, 1.1889219, -1.2133041, 1.1264521, 2.2084453, .47868198, .39622289, -.16575858, .39387229, .42351298, -.02986399, -.03032427, .01615749, -.03032309, -.0306596, -.20453409, -.22636955, .03872599, -.22598184, -.14797487, -.14510921, -.15728345, .09104008, -.15711344, -.15651316, .70931453, .54673599, -.25286811, .54060879, .63367599, -.53000475, -.74513956, .14089154, -.73091807, -.42936319, -.21910342, -.24687749, .0826378, -.24629237, -.19945076, -.41493285, -.52361045, .07768675, -.51891737, -.29907322, 2.6560511, 1.3993556, -1.105995, 1.3079768, 2.498918, -.41589553, -.54146745, .18302736, -.53523562, -.39857021, -.5526323, -.80926377, .20181019, -.78996847, -.49767811, -.13207272, -.14097686, .03313644, -.14087689, -.10495118, .14448753, .13515265, -.06544272, .13505222, .13980328, -.85325759, -1.7623394, .16079813, -1.6167939, -.61634485, .76115922, .57533086, -.33446264, .56788681, .72908173, -.4445706, -.6065932, .31952327, -.59693944, -.50173145, .05289442, .05153665, -.02874207, .05153084, .0543821, -.17820591, -.19853626, .19416859, -.1981506, -.23103852, -.4801718, -.67039242, .27251422, -.65810878, -.50088438, .7304052, .55833536, -.28785848, .55167589, .67470239, -.16887215, -.18469715, .06495133, -.18445039, -.15473125, .35410875, .30570854, -.12846339, .30461071, .31819564, .19684382, .18046651, -.07068492, .18023976, .17627881, -.20643774, -.23348809, .17055485, -.23289913, -.24405671, 1.22551, .8353436, -.35199394, .81523741, 1.0187469, .17923756, .16578231, -.0525377, .16561417, .15000982, .01548457, .01536218, -.01038154, .01536202, .0170751, -.19320256, -.2148948, .0900355, -.21448979, -.18872228, .32956715, .28787909, -.09663489, .28700342, .27585694, -.45938766, -.62492575, .23072715, -.61516994, -.46007551, -.02945698, -.02988319, .01034191, -.02988217, -.02618197, -.67370006, -1.1813745, .34180682, -1.121476, -.67698851, -.02907156, -.02947386, .00775848, -.02947293, -.02358203, -.38428138, -.47793117, .09063364, -.47416337, -.29913877, -.23046223, -.26119584, .08058798, -.26051489, -.20456591, -.12846248, -.13685096, .03186268, -.13675974, -.10169236, -.30992245, -.36335987, .04867032, -.36183198, -.21066874, .22387009, .20364682, -.05894499, .20334289, .18078249, -.17917948, -.19985379, .20268227, -.19945716, -.23521992, -.21841171, -.24833161, .15119244, -.24765074, -.24342806, .4118637, .34607627, -.22690728, .34433546, .42539771, .20921569, .19135775, -.05644292, .1911041, .17032406, -.04141178, -.04225313, .01331006, -.04225028, -.03573984, -.08967166, -.09381787, .032207, -.09378593, -.08030888, -.43040966, -.57519442, .26278401, -.56721212, -.46004218, -.35010686, -.43150226, .14059672, -.42837577, -.32543841, -.45224038, -.61066644, .22306877, -.60158155, -.45019687, -.15280789, -.16560823, .05946739, -.16542975, -.14056163, .22920489, .20747095, -.08083996, .20712815, .20403341, -.02695281, -.02729756, .00709777, -.02729683, -.02176641, -.48806489, -.66592024, .15134011, -.6553242, -.41621053, -.07485465, -.07759823, .01909723, -.07758147, -.05981535, -.55354816, -.81424305, .21356234, -.79437836, -.50771714, -.52719084, -.76911913, .2772692, -.75113379, -.53615346, .05684705, .05526936, -.03355884, .05526206, .06008291, 1.7973129, 1.1092567, -.36345079, 1.06734, 1.329151, -.29913733, -.36026582, .2095762, -.35819823, -.33473752, .84441039, .63750804, -.15314645, .62919077, .60221008, 1.5300133, .9606923, -.79434177, .92687173, 1.5493253, -.35610485, -.467774, .79408433, -.46202371, -.58616174, .82406803, .61953257, -.22184624, .61120781, .67040318, -.33473208, -.42123435, .39786289, -.41754776, -.4467378, -.59704681, -.89013644, .1428792, -.86690615, -.46702334, -.27033676, -.31698804, .1460948, -.31565307, -.27743313, 1.0258857, .7403491, -.19262469, .72738144, .74013901, 1.1604516, .81467254, -.19669616, .79792351, .80914553, .71885488, .54399465, -.50294544, .5370146, .80404022, .05144662, .0500942, -.04484664, .05008827, .06191909, .47392482, .39353593, -.1494817, .39127892, .40645485, .22266008, .20231271, -.06938075, .20200337, .19018864, .25539674, .2288861, -.08805858, .22842855, .22563724, -.19568251, -.2165339, .05437877, -.21616435, -.16088707, .86800737, .63454643, -.44857999, .6242839, .8776181, -.44093685, -.57926714, .14407138, -.572141, -.38263688, -.38796266, -.48874054, .12624104, -.48442371, -.33620446, .54666874, .44328732, -.17675284, .44005735, .47273195, 2.0300788, 1.1682836, -.96824133, 1.1108888, 1.998388, .20015608, .18332403, -.06902249, .18308848, .17684227, .6704618, .53159956, -.10716473, .52685744, .45843382, -.44458745, -.58919121, .16678779, -.58147544, -.40398901, .54446718, .43989513, -.22082431, .436578, .50777747, .33144135, .28713208, -.17030141, .28614888, .33446746, .39694643, .34039606, -.08209858, .33905965, .29576253, -.42074543, -.5470025, .16075656, -.54077417, -.3846619, -.34132884, -.41326123, .08979717, -.41075309, -.2755579, .27126712, .24182145, -.08746021, .24129014, .23435718, .44037707, .37447891, -.06255576, .37284401, .28950022, -.14644983, -.15791575, .04864516, -.1577663, -.12778576, .83887112, .62380912, -.30053485, .61477927, .75065164, -.58971609, -.84195736, .07898515, -.82442391, -.38014896, -.14693144, -.15819566, .04001161, -.15805189, -.11999096, -.35444119, -.4312898, .08034526, -.42853408, -.27228656, .0737336, .07125403, -.02561239, .07124013, .06530358, -.14687879, -.15771931, .02953682, -.1575861, -.10841864, -.14879663, -.16058595, .04713587, -.16043045, -.12779756, .255008, .22848792, -.09093051, .22802936, .22783254, .52932208, .43116877, -.17994595, .42816069, .46544749, -.57678802, -.83528755, .11985366, -.81649906, -.43043204, -.43909753, -.55885675, .06365748, -.55347575, -.29062556, .59572477, .47490671, -.21164208, .47086457, .53158712, 1.3566666, .89996404, -.38104577, .8751849, 1.1193978, .23076888, .20661165, -.21673278, .20619121, .28473205, -.34028239, -.4117036, .08954949, -.40922324, -.27474134, -.37062089, -.45756657, .09456789, -.4541971, -.29617234, .38295285, .32751843, -.13106841, .32618755, .3374993, -.37335462, -.47661172, .25405495, -.47190847, -.41374577, -.15304894, -.16668687, .09593084, -.16648462, -.16502496, .1042071, .09911783, -.05736882, .09907642, .10760526, -.46824434, -.62851306, .14796752, -.61952704, -.40183444, .5037424, .41082186, -.25088311, .4079888, .50308281, .84808535, .63314877, -.23483142, .62422333, .6964476, 1.0502609, .7772032, -.06052008, .76558315, .51110244, -.53151373, -.76676609, .21629309, -.74987, -.49625002, .02620452, .02584242, -.02552688, .02584158, .03272855, .2398854, .21542703, -.12027352, .21501237, .24010574, -.22643811, -.25247045, .03030234, -.25197283, -.1459268, .1166085, .11048453, -.04729675, .11043096, .10875283, 1.3431452, .89781391, -.32261633, .87398692, 1.0519314, -.00187006, -.00187161, .000327, -.00187161, -.00131753, -.15164755, -.16445306, .06738007, -.16427307, -.14579549, .08269046, .07945194, -.04361586, .0794308, .08417732, .08617637, .08305152, -.0150427, .08303264, .06067978, .2798524, .25006393, -.05532456, .24953681, .20540075, -.30467726, -.36042436, .08464232, -.3587339, -.25047586, .30195525, .26443918, -.15980555, .26366505, .30772941, 1.340299, .89487285, -.34074742, .87098951, 1.0697657, -.26049778, -.3020933, .1130195, -.30099117, -.24846419, .0397316, .03898097, -.01635773, .03897861, .03723989, -.34632342, -.41654823, .06160529, -.41419106, -.24539775, -.37410872, -.45578874, .0546393, -.45283957, -.2482239, -.04034842, -.04111172, .0087849, -.04110931, -.03058252, -.12428565, -.13264089, .05264014, -.13254735, -.11759703, -.72785825, -1.2666293, .17219649, -1.2040833, -.56717355, 1.8408131, 1.1261187, -.38746129, 1.0820371, 1.3796192, -.18881786, -.20840084, .05869633, -.20806299, -.16115447, .06242098, .06068176, -.0164772, .06067368, .05044965, .41261605, .34419064, -.34676838, .34231182, .49059213, .60428656, .48029853, -.21858193, .47610295, .54247123, -.30322308, -.36506293, .18549386, -.36297539, -.32431075, .1572132, .1467182, -.04614981, .14660154, .13164144, -.39806354, -.51019956, .1704672, -.50499905, -.37802908, -.2302522, -.26219035, .10869935, -.26145448, -.22588541, -.05024085, -.05158971, .03198843, -.05158368, -.05445599, -.55766118, -.84608885, .31656254, -.82207079, -.58175945, -.24070252, -.2759872, .11441098, -.27512835, -.23667533, -.16040658, -.17378822, .03903075, -.1736024, -.12617125, -.06634171, -.06855248, .02223805, -.06854021, -.05806307, 1.3592493, .8944937, -.48455987, .86891532, 1.2142979, -.28906615, -.34194426, .12870891, -.34034118, -.27810643, -.50352365, -.69691907, .15762218, -.68479707, -.43075371, -.69471901, -1.0704718, .06720278, -1.0378355, -.40180178, .21847797, .19887323, -.06684954, .19858055, .18548747, -.5428572, -.75471105, .0941741, -.74122646, -.3814558, .03577835, .03513084, -.02541775, .03512889, .04022251, .21380327, .19363341, -.13368382, .1933169, .23034521, -.32240633, -.39064823, .14593547, -.3882585, -.31188847, .66465513, .52295291, -.16608129, .5179753, .52744981, -.32430575, -.39326332, .14356266, -.39083764, -.31140597, .05393036, .05264785, -.01205061, .05264277, .04123207, -.0028317, -.00283571, .00140141, -.00283571, -.00282204, -.02135293, -.02156446, .00476595, -.02156411, -.01631917, .10786111, .10313359, -.01531064, .10309907, .07088991, -.47964118, -.64280246, .11783585, -.63370878, -.37848336, -.39842251, -.51601229, .22492566, -.51030478, -.41487657, -.09905477, -.10351316, .01158226, -.10347973, -.06102737, -.24547459, -.27872479, .0546228, -.27797657, -.18741558, .10888075, .10361494, -.03673675, .10357251, .09550168, -.66853058, -1.0972597, .19254359, -1.0536153, -.55624639, -.26737067, -.31576114, .22301942, -.31430952, -.3171028, 1.0645332, .73086408, -.85099415, .71391715, 1.2447773, .22606207, .20453712, -.09427344, .20419621, .21279345, -.43314942, -.58895264, .36564343, -.57978648, -.51576802, -.23247676, -.25948378, .02658345, -.25896213, -.14216744, .48348128, .39798279, -.20933574, .39548186, .4608337, .17081161, .15847915, -.05211926, .15833091, .14488419, -.51725932, -.74111587, .2395372, -.72537996, -.50420429, 1.1637011, .7996095, -.40572604, .78114865, 1.0319261, .517248, .42450814, -.14397092, .42175838, .42550122, .20377275, .18713122, -.04431389, .18690503, .15439055, .37960426, .31476553, -.95803217, .31293262, .65116455, .26374504, .23715653, -.04998972, .2367108, .19087972, .16509569, .15369065, -.04393403, .15355947, .13379324, -.14878344, -.16056319, .04689619, -.16040793, -.12757304, .03112964, .03070085, -.0062502, .03069987, .02296628, -.45146616, -.6190492, .3128399, -.60888544, -.50334703, .01026683, .01021352, -.00610921, .01021347, .01088001, -.03831364, -.0390543, .01605932, -.03905191, -.03612612, .24916831, .2203365, -.34282994, .21978215, .3491656, .20605202, .18741517, -.11593127, .18713473, .21431939, .26738299, .23812242, -.10704603, .23759018, .24828817, -.07107709, -.07356866, .0197543, -.0735541, -.05844091, .23730441, .21182058, -.22739701, .21136564, .29476469, -.27485574, -.31636297, .04916292, -.31532239, -.1951158, -.19505071, -.21275145, .01592398, -.21248413, -.10660859, .70056918, .54467763, -.18947516, .53896875, .57081421, 1.6429994, 1.0053109, -.95644829, .96598995, 1.7284445, -.46441552, -.63262118, .21761309, -.62265912, -.45447446, .14443729, .13599906, -.02424701, .13591696, .10038811, -.52960941, -.79336663, .39957719, -.77217395, -.60745488, -.33390194, -.4038831, .10318464, -.4014562, -.28442056, -.2285471, -.25905302, .0867362, -.25837651, -.20847818, 1.2125627, .7984311, -1.1857801, .77566244, 1.5164014, -.32860078, -.40410853, .21625493, -.40124137, -.36011765, -.21919949, -.24554758, .05514477, -.24502109, -.17434298, .39846564, .33805359, -.16176033, .33653529, .37173027, .14472573, .13684479, -.01196691, .13677331, .07943914, -.62022414, -.92676789, .10887495, -.90231422, -.43754068, -.14261973, -.1536374, .05400271, -.1534957, -.12999748, -.01461438, -.01471576, .0041704, -.01471564, -.01212242, .99225736, .70501776, -.44703681, .69147821, .95838641, -.48755881, -.66838696, .16829922, -.65742882, -.43091212, -.3777599, -.48123749, .2179296, -.47656828, -.3962105, .20800236, .18925086, -.10391383, .18896962, .20794411, -.19079329, -.213611, .16107615, -.21315735, -.22719345, .31904245, .27589917, -.26252013, .2749309, .37667186, .04010878, .0393186, -.02236594, .039316, .04159413, -.02494808, -.02525158, .00845639, -.02525096, -.02191609, .8212072, .60966564, -.38077433, .60074282, .80081903, -.24368044, -.27772481, .07283286, -.2769348, -.2052735, .66968971, .52729017, -.15116308, .5223009, .51373718, -.22175179, -.25047303, .08820703, -.24985487, -.2054735, -.38644071, -.47499015, .05802841, -.47163706, -.25878879, .01919507, .01902635, -.00490186, .01902611, .01534347, -.3713334, -.4571303, .08430312, -.45385478, -.28540871, .14357274, .13569087, -.01381273, .13561879, .08288664, -.13841049, -.1481505, .03228135, -.14803637, -.10734288, .87551684, .66655617, -.08041144, .65836644, .49769004, .91127172, .66035816, -.42523081, .64907921, .89053331, -.30803484, -.37574199, .27045591, -.3732811, -.37162825, -.00678639, -.00681114, .00619686, -.00681113, -.00829519, -.27461572, -.32156385, .12059118, -.32023279, -.26298568, -.27504152, -.31881524, .07147225, -.31765917, -.22113356, .73670468, .57617649, -.09651916, .57041651, .47142231, -.47160338, -.6449074, .20866342, -.63449845, -.45276903, .01841131, .01823494, -.0149963, .01823466, .02166346, -.5864559, -.87238967, .15950373, -.84987263, -.47872986, -.23419911, -.26584045, .07806246, -.26513025, -.20458835, -.06042102, -.06234982, .03249908, -.06233956, -.06190976, -.56688868, -.98333402, 1.2357693, -.93532088, -.92609242, -.64334619, -.99313137, .12726082, -.96260133, -.47228562, -.37870995, -.50850668, .81436117, -.50121973, -.61586685, -.72441698, -1.1832351, .09617001, -1.1370623, -.46560286, -.22634773, -.25477515, .0594121, -.25418177, -.18259368, .42793116, .35498325, -.35874136, .35292514, .50837762, .47199579, .39193388, -.15444486, .38968604, .40978862, 1.1985705, .83253909, -.22061912, .81439502, .85901372, .23502298, .2116479, -.10906943, .21126127, .22925451, -.39761407, -.50587964, .1393689, -.50102296, -.35321552, -.30317936, -.36865385, .27304678, -.36631514, -.36888312, .52891415, .4286696, -.23649281, .42553087, .50957264, .09077196, .08692412, -.04414515, .08689695, .08993709, -.14416059, -.1568803, .14318278, -.15669352, -.18121937, .73647886, .57278216, -.12516194, .56679404, .51397376, -.30020097, -.35901216, .15278503, -.35710415, -.3019801, -.30970783, -.36488812, .0616491, -.36325833, -.22783496, -.13090644, -.14142637, .14714733, -.14128564, -.17148842, 1.7228459, 1.0583109, -.58431917, 1.0175577, 1.5137622, -.22877864, -.25919887, .08362009, -.25852681, -.20609013, -.82510806, -1.6126582, .1515493, -1.4979969, -.59092886, -.64003893, -1.0073362, .1692274, -.97361338, -.51757245, -.13130595, -.14057566, .05050397, -.1404667, -.12031177, -.18244628, -.19973106, .03812658, -.19945858, -.13640887, .02164936, .0214168, -.01169166, .02141638, .02221257, .50690309, .41969105, -.10328319, .41720801, .37581131, 1.0020303, .7351515, -.12375838, .72352927, .62871736] + +invgauss_resids = np.asarray(invgauss).astype(float).reshape(-1,5) + +wfs_resids = [-1.168096,-1.274198,-22.17336,-1.276003,-3.11599,1.11769,1.074522,93.39722,1.074787,4.886437,.7295976,.715076,143.1204,.7151231,4.239254,.6471395,.6355711,124.1729,.6356048,3.732567,.5949094,.5789607,24.55698,.5790298,2.056012,-.8578523,-.8829973,-123.7017,-.8831246,-4.498492,.9996619,.9733517,207.696,.9734635,5.92077,-.3647809,-.3685094,-82.85051,-.3685159,-2.225631,-.5218114,-.5276356,-268.2977,-.5276466,-4.180369,-.9659918,-.9815653,-1084.813,-.981608,-10.04078,.3903325,.3878348,390.8879,.3878375,3.905176,-.1136672,-.1140306,-24.22441,-.1140308,-.6789552,1.404348,1.344308,166.2025,1.344715,6.894916,.6979978,.6888638,444.2878,.6888834,6.004232,-.4536614,-.4585339,-171.4895,-.4585427,-3.280201,-.1426753,-.1432245,-34.60201,-.1432249,-.8897463,4.041986,3.678221,839.28,3.683146,23.93493,-.4076838,-.4104721,-420.7155,-.4104753,-4.119822,1.037925,1.021274,1152.838,1.021318,10.74897,1.002495,.9780589,268.3886,.9781554,6.461147,-1.810334,-1.851575,-4981.573,-1.851736,-25.3685,-1.028229,-1.038076,-6328.413,-1.038092,-18.84335,-.3727405,-.3743742,-1096.784,-.3743754,-5.341272,.5779432,.5697695,164.1083,.5697884,3.798688,1.083387,1.055122,294.6827,1.055241,7.019516,.2389214,.2379634,227.0207,.237964,2.348868,-.6575496,-.6669395,-330.597,-.6669623,-5.228599,-1.223007,-1.27265,-208.9083,-1.273003,-6.785854,.5404838,.534834,319.6869,.5348437,4.536944,-2.227986,-2.295954,-5036.329,-2.296313,-29.24016,.2379562,.2370335,247.2598,.2370341,2.410178,1.05744,1.030792,298.8007,1.030901,6.939011,.3025656,.3017648,2051.827,.3017652,5.726993,-.1662367,-.1664337,-2143.633,-.1664338,-3.898237,.9615754,.9505365,2399.173,.9505573,13.04196,.6036977,.5925143,84.08839,.5925481,3.12938,-.4469533,-.4512659,-221.0249,-.451273,-3.534449,.9504169,.9381722,1602.909,.9381981,11.31303,-1.58407,-1.647805,-602.1467,-1.648254,-11.47494,-.5808498,-.5975259,-27.5484,-.5976085,-2.102526,-.6490194,-.6557381,-799.9641,-.6557499,-6.958708,.6957488,.6903502,2190.347,.6903571,10.19701,.1750624,.174529,150.309,.1745293,1.663886,.1572418,.1562937,12.33672,.1562946,.6731502,-.6408126,-.6436554,-9244.279,-.6436575,-15.59954,1.101677,1.092417,10778.35,1.09243,23.56244,-.4992968,-.5028596,-835.3172,-.5028639,-5.927292,-.9280973,-1.02178,-6.907707,-1.023576,-1.812064,.6339129,.6277187,744.4614,.6277287,6.688065,-.6707486,-.6785607,-647.0199,-.6785761,-6.627439,-1.38237,-1.427934,-602.4287,-1.428195,-10.48056,-1.459774,-1.554047,-125.0777,-1.555148,-6.435521,-1.093153,-1.111322,-1629.418,-1.111374,-12.48719,-.3837357,-.3857544,-717.1755,-.3857562,-4.726757,-.5606073,-.5670648,-326.075,-.5670773,-4.679632,.8169871,.7887753,38.50973,.7889313,2.951211,1.275712,1.265811,24735.07,1.265823,34.27201,.0862263,.0861666,766.7436,.0861666,1.786392,.3344287,.3328024,485.5152,.3328038,3.786779,-1.345582,-1.471176,-36.61779,-1.473379,-4.047349,.4774571,.4752944,2502.141,.475296,8.29329,.349272,.3477617,824.9081,.3477628,4.651336,-.5002936,-.5066125,-158.1673,-.506626,-3.408177,-1.247884,-1.411017,-12.7456,-1.415246,-2.707506,-1.673559,-1.700277,-10051.77,-1.70035,-30.4211,.3986639,.3972206,2398.038,.3972214,7.250311,1.482003,1.444616,1148.828,1.444769,13.61396,.0587717,.0587566,3267.75,.0587566,2.243168,.4706421,.4689196,4507.782,.4689206,9.994969,-1.157463,-1.186371,-642.0396,-1.186495,-9.510254] +#wfs_resids = np.asarray(wfs_resids.split(",")).astype(float).reshape(-1,5) +wfs_resids = np.asarray(wfs_resids).astype(float).reshape(-1,5) + diff --git a/statsmodels/genmod/tests/results/igaussident_resids.csv b/statsmodels/genmod/tests/results/igaussident_resids.csv new file mode 100644 index 0000000..8256b33 --- /dev/null +++ b/statsmodels/genmod/tests/results/igaussident_resids.csv @@ -0,0 +1,3676 @@ +.064289,.0594801,1.152063,.0594202,1.152063 +-.3263345,-.8539706,-5.847937,-.7352132,-5.847937 +.9013395,.4918179,16.15206,.462978,16.15206 +.064289,.0594801,1.152063,.0594202,1.152063 +-.3409358,-.8321366,-4.957226,-.7311729,-4.957226 +-.3263345,-.8539706,-5.847937,-.7352132,-5.847937 +.0084856,.008393,.1520631,.0083928,.1520631 +.7158609,.4269431,11.59742,.4085118,11.59742 +.1200924,.1047548,2.152063,.1044296,2.152063 +.678126,.4071116,12.15206,.3899685,12.15206 +.2875024,.2171855,5.152063,.2143638,5.152063 +-.3263345,-.8539706,-5.847937,-.7352132,-5.847937 +.6223226,.383848,11.15206,.3693074,11.15206 +-.3409358,-.8321366,-4.957226,-.7311729,-4.957226 +.2316991,.1828133,4.152063,.1811134,4.152063 +-.2713876,-.4505308,-3.511871,-.4318017,-3.511871 +.678126,.4071116,12.15206,.3899685,12.15206 +-.3486648,-.8185734,-4.511871,-.7270422,-4.511871 +-.268894,-.4279774,-3.066516,-.4129501,-3.066516 +-.3565811,-.8026257,-4.066515,-.7208934,-4.066515 +.1758957,.1455577,3.152063,.1446918,3.152063 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +.5665193,.3595589,10.15206,.347465,10.15206 +-.3409358,-.8321366,-4.957226,-.7311729,-4.957226 +.5665193,.3595589,10.15206,.347465,10.15206 +.1387993,.1218112,1.37884,.1214658,1.37884 +.5107159,.3341175,9.152063,.324298,9.152063 +.7339293,.4294565,13.15206,.4095696,13.15206 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.3409358,-.8321366,-4.957226,-.7311729,-4.957226 +-.3263345,-.8539706,-5.847937,-.7352132,-5.847937 +.0084856,.008393,.1520631,.0083928,.1520631 +-.3263345,-.8539706,-5.847937,-.7352132,-5.847937 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.678126,.4071116,12.15206,.3899685,12.15206 +1.151295,.6287713,9.824195,.5920053,9.824195 +.3991092,.2791307,7.152063,.2732706,7.152063 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.3645199,-.7836041,-3.62116,-.7120315,-3.62116 +.5107159,.3341175,9.152063,.324298,9.152063 +.064289,.0594801,1.152063,.0594202,1.152063 +6.132267,1.593842,69.93349,1.19723,69.93349 +1.012946,.5301469,18.15206,.4948412,18.15206 +.2316991,.1828133,4.152063,.1811134,4.152063 +.1200924,.1047548,2.152063,.1044296,2.152063 +.5013845,.339805,6.488129,.331384,6.488129 +.2837797,.2165023,4.597418,.2138826,4.597418 +.1603279,.1352277,2.597418,.1345765,2.597418 +.4407907,.3158543,4.378839,.3100816,4.378839 +.5202903,.3531052,5.933485,.3444154,5.933485 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.0084856,.008393,.1520631,.0083928,.1520631 +-.3263345,-.8539706,-5.847937,-.7352132,-5.847937 +1.124553,.5663409,20.15206,.524251,20.15206 +-.1168332,-.1371468,-1.511871,-.1365612,-1.511871 +-.3263345,-.8539706,-5.847937,-.7352132,-5.847937 +.1758957,.1455577,3.152063,.1446918,3.152063 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +-.3263345,-.8539706,-5.847937,-.7352132,-5.847937 +.1758957,.1455577,3.152063,.1446918,3.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.3409358,-.8321366,-4.957226,-.7311729,-4.957226 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +-.1941104,-.2631102,-2.511871,-.259097,-2.511871 +1.626783,.7095096,29.15206,.6341852,29.15206 +.0084856,.008393,.1520631,.0083928,.1520631 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.1346093,-.1642733,-1.957226,-.1631924,-1.957226 +.0084856,.008393,.1520631,.0083928,.1520631 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.3309667,.2556262,2.824195,.2528057,2.824195 +-.2721603,-.4697121,-3.957226,-.4471826,-3.957226 +.1758957,.1455577,3.152063,.1446918,3.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.039556,-.0415314,-.511871,-.041515,-.511871 +-.1941104,-.2631102,-2.511871,-.259097,-2.511871 +.5107159,.3341175,9.152063,.324298,9.152063 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +.0084856,.008393,.1520631,.0083928,.1520631 +.3433058,.2491663,6.152063,.2449511,6.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1812069,-.235488,-2.066516,-.2328148,-2.066516 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +.0084856,.008393,.1520631,.0083928,.1520631 +.0986021,.0882102,1.597418,.0880281,1.597418 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.2875024,.2171855,5.152063,.2143638,5.152063 +.3433058,.2491663,6.152063,.2449511,6.152063 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.1149985,.1020452,1.488129,.1018027,1.488129 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +-.2713876,-.4505308,-3.511871,-.4318017,-3.511871 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.4549125,.3073705,8.152063,.2996354,8.152063 +-.268894,-.4279774,-3.066516,-.4129501,-3.066516 +-.2033848,-.2866024,-2.957226,-.281059,-2.957226 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.5202903,.3531052,5.933485,.3444154,5.933485 +-.3334791,-.843813,-5.402582,-.7337776,-5.402582 +-.0206026,-.0210504,-.1758051,-.0210488,-.1758051 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.039556,-.0415314,-.511871,-.041515,-.511871 +-.1941104,-.2631102,-2.511871,-.259097,-2.511871 +-.0248497,-.0256698,-.4025816,-.0256653,-.4025816 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +-.263856,-.4010768,-2.62116,-.3895907,-2.62116 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.064289,.0594801,1.152063,.0594202,1.152063 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.2717533,-.486225,-4.402582,-.4598424,-4.402582 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +.0717173,.0661602,1.042774,.0660885,1.042774 +.0084856,.008393,.1520631,.0083928,.1520631 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +.1758957,.1455577,3.152063,.1446918,3.152063 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.1346093,-.1642733,-1.957226,-.1631924,-1.957226 +.3433058,.2491663,6.152063,.2449511,6.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +-.2549821,-.3684383,-2.175805,-.3602484,-2.175805 +.064289,.0594801,1.152063,.0594202,1.152063 +.064289,.0594801,1.152063,.0594202,1.152063 +-.2713876,-.4505308,-3.511871,-.4318017,-3.511871 +.1200924,.1047548,2.152063,.1044296,2.152063 +.0717173,.0661602,1.042774,.0660885,1.042774 +-.3645199,-.7836041,-3.62116,-.7120315,-3.62116 +.0717173,.0661602,1.042774,.0660885,1.042774 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +.3433058,.2491663,6.152063,.2449511,6.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.0717173,.0661602,1.042774,.0660885,1.042774 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1631922,-.2025416,-1.62116,-.200975,-1.62116 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.2717533,-.486225,-4.402582,-.4598424,-4.402582 +.7897327,.4509728,14.15206,.4282142,14.15206 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.1168332,-.1371468,-1.511871,-.1365612,-1.511871 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.1631922,-.2025416,-1.62116,-.200975,-1.62116 +-.0058326,-.0058712,-.0665157,-.0058712,-.0665157 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.3433058,.2491663,6.152063,.2449511,6.152063 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.064289,.0594801,1.152063,.0594202,1.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.0248497,-.0256698,-.4025816,-.0256653,-.4025816 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1631922,-.2025416,-1.62116,-.200975,-1.62116 +-.1168332,-.1371468,-1.511871,-.1365612,-1.511871 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.4407907,.3158543,4.378839,.3100816,4.378839 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +-.2033848,-.2866024,-2.957226,-.281059,-2.957226 +.3433058,.2491663,6.152063,.2449511,6.152063 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +.2875024,.2171855,5.152063,.2143638,5.152063 +-.1812069,-.235488,-2.066516,-.2328148,-2.066516 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.0084856,.008393,.1520631,.0083928,.1520631 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.0248497,-.0256698,-.4025816,-.0256653,-.4025816 +.0084856,.008393,.1520631,.0083928,.1520631 +-.2717533,-.486225,-4.402582,-.4598424,-4.402582 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +-.1631922,-.2025416,-1.62116,-.200975,-1.62116 +-.2033848,-.2866024,-2.957226,-.281059,-2.957226 +-.3486648,-.8185734,-4.511871,-.7270422,-4.511871 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +-.0248497,-.0256698,-.4025816,-.0256653,-.4025816 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.064289,.0594801,1.152063,.0594202,1.152063 +.1758957,.1455577,3.152063,.1446918,3.152063 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +.0084856,.008393,.1520631,.0083928,.1520631 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +-.0658337,-.0718597,-.9572263,-.0717679,-.9572263 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.1168332,-.1371468,-1.511871,-.1365612,-1.511871 +-.1346093,-.1642733,-1.957226,-.1631924,-1.957226 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +.2316991,.1828133,4.152063,.1811134,4.152063 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.263856,-.4010768,-2.62116,-.3895907,-2.62116 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.5013845,.339805,6.488129,.331384,6.488129 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +-.0658337,-.0718597,-.9572263,-.0717679,-.9572263 +.0381354,.0366623,.3788396,.0366528,.3788396 +-.263856,-.4010768,-2.62116,-.3895907,-2.62116 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +.5107159,.3341175,9.152063,.324298,9.152063 +.0084856,.008393,.1520631,.0083928,.1520631 +.0084856,.008393,.1520631,.0083928,.1520631 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +-.0625284,-.0672083,-.6211604,-.06715,-.6211604 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.1149985,.1020452,1.488129,.1018027,1.488129 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.039556,-.0415314,-.511871,-.041515,-.511871 +.1758957,.1455577,3.152063,.1446918,3.152063 +-.2033848,-.2866024,-2.957226,-.281059,-2.957226 +.064289,.0594801,1.152063,.0594202,1.152063 +-.1812069,-.235488,-2.066516,-.2328148,-2.066516 +.3401269,.2585065,3.37884,.2552908,3.37884 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +.0029418,.0029313,.0427737,.0029313,.0427737 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.3486648,-.8185734,-4.511871,-.7270422,-4.511871 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.3991092,.2791307,7.152063,.2732706,7.152063 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.0084856,.008393,.1520631,.0083928,.1520631 +.3433058,.2491663,6.152063,.2449511,6.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +.2316991,.1828133,4.152063,.1811134,4.152063 +-.2549821,-.3684383,-2.175805,-.3602484,-2.175805 +-.1812069,-.235488,-2.066516,-.2328148,-2.066516 +.5107159,.3341175,9.152063,.324298,9.152063 +1.794193,.751825,32.15206,.6647726,32.15206 +.0084856,.008393,.1520631,.0083928,.1520631 +-.0935197,-.1052514,-1.066516,-.1050068,-1.066516 +.1758957,.1455577,3.152063,.1446918,3.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.0368762,.0352675,.5974184,.0352558,.5974184 +.6223226,.383848,11.15206,.3693074,11.15206 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.0248497,-.0256698,-.4025816,-.0256653,-.4025816 +.213777,.1783427,1.824195,.1773702,1.824195 +.3433058,.2491663,6.152063,.2449511,6.152063 +.1758957,.1455577,3.152063,.1446918,3.152063 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.4549125,.3073705,8.152063,.2996354,8.152063 +-.1631922,-.2025416,-1.62116,-.200975,-1.62116 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +.2316991,.1828133,4.152063,.1811134,4.152063 +.4241073,.3002126,5.488129,.2943222,5.488129 +.5013845,.339805,6.488129,.331384,6.488129 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.0625284,-.0672083,-.6211604,-.06715,-.6211604 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.3263345,-.8539706,-5.847937,-.7352132,-5.847937 +.1149985,.1020452,1.488129,.1018027,1.488129 +.1603279,.1352277,2.597418,.1345765,2.597418 +.2316991,.1828133,4.152063,.1811134,4.152063 +-.0206026,-.0210504,-.1758051,-.0210488,-.1758051 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +-.1168332,-.1371468,-1.511871,-.1365612,-1.511871 +-.2721603,-.4697121,-3.957226,-.4471826,-3.957226 +.0084856,.008393,.1520631,.0083928,.1520631 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.0625284,-.0672083,-.6211604,-.06715,-.6211604 +.2316991,.1828133,4.152063,.1811134,4.152063 +-.2713876,-.4505308,-3.511871,-.4318017,-3.511871 +.064289,.0594801,1.152063,.0594202,1.152063 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +-.2713876,-.4505308,-3.511871,-.4318017,-3.511871 +-.268894,-.4279774,-3.066516,-.4129501,-3.066516 +.2316991,.1828133,4.152063,.1811134,4.152063 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.268894,-.4279774,-3.066516,-.4129501,-3.066516 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +.0084856,.008393,.1520631,.0083928,.1520631 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +-.0658337,-.0718597,-.9572263,-.0717679,-.9572263 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.2875024,.2171855,5.152063,.2143638,5.152063 +-.1941104,-.2631102,-2.511871,-.259097,-2.511871 +.064289,.0594801,1.152063,.0594202,1.152063 +.0084856,.008393,.1520631,.0083928,.1520631 +.0084856,.008393,.1520631,.0083928,.1520631 +.0084856,.008393,.1520631,.0083928,.1520631 +.5665193,.3595589,10.15206,.347465,10.15206 +.0965872,.0882683,.8241949,.0881491,.8241949 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.064289,.0594801,1.152063,.0594202,1.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.1758957,.1455577,3.152063,.1446918,3.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.3263345,-.8539706,-5.847937,-.7352132,-5.847937 +.3433058,.2491663,6.152063,.2449511,6.152063 +.3433058,.2491663,6.152063,.2449511,6.152063 +.7339293,.4294565,13.15206,.4095696,13.15206 +-.1812069,-.235488,-2.066516,-.2328148,-2.066516 +.3433058,.2491663,6.152063,.2449511,6.152063 +.7897327,.4509728,14.15206,.4282142,14.15206 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.064289,.0594801,1.152063,.0594202,1.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.5306833,.3467107,8.597419,.3364574,8.597419 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.4689574,.317137,7.597418,.309191,7.597418 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.2717533,-.486225,-4.402582,-.4598424,-4.402582 +.064289,.0594801,1.152063,.0594202,1.152063 +-.1941104,-.2631102,-2.511871,-.259097,-2.511871 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +.3991092,.2791307,7.152063,.2732706,7.152063 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.0986021,.0882102,1.597418,.0880281,1.597418 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.0084856,.008393,.1520631,.0083928,.1520631 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +.064289,.0594801,1.152063,.0594202,1.152063 +.213777,.1783427,1.824195,.1773702,1.824195 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.0248497,-.0256698,-.4025816,-.0256653,-.4025816 +-.3263345,-.8539706,-5.847937,-.7352132,-5.847937 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +.2220538,.1776789,3.597418,.1762155,3.597418 +.0717173,.0661602,1.042774,.0660885,1.042774 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.0084856,.008393,.1520631,.0083928,.1520631 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.2721603,-.4697121,-3.957226,-.4471826,-3.957226 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +.064289,.0594801,1.152063,.0594202,1.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.0206026,-.0210504,-.1758051,-.0210488,-.1758051 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.0248497,-.0256698,-.4025816,-.0256653,-.4025816 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +.0818546,.075218,.9334843,.0751285,.9334843 +-.0658337,-.0718597,-.9572263,-.0717679,-.9572263 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +.5665193,.3595589,10.15206,.347465,10.15206 +.1200924,.1047548,2.152063,.1044296,2.152063 +.678126,.4071116,12.15206,.3899685,12.15206 +.5665193,.3595589,10.15206,.347465,10.15206 +.0965872,.0882683,.8241949,.0881491,.8241949 +-.1941104,-.2631102,-2.511871,-.259097,-2.511871 +-.1812069,-.235488,-2.066516,-.2328148,-2.066516 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.064289,.0594801,1.152063,.0594202,1.152063 +.4549125,.3073705,8.152063,.2996354,8.152063 +1.012946,.5301469,18.15206,.4948412,18.15206 +.1758957,.1455577,3.152063,.1446918,3.152063 +-.0058326,-.0058712,-.0665157,-.0058712,-.0665157 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.678126,.4071116,12.15206,.3899685,12.15206 +.0029418,.0029313,.0427737,.0029313,.0427737 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.2033848,-.2866024,-2.957226,-.281059,-2.957226 +.1200924,.1047548,2.152063,.1044296,2.152063 +.064289,.0594801,1.152063,.0594202,1.152063 +.0084856,.008393,.1520631,.0083928,.1520631 +.064289,.0594801,1.152063,.0594202,1.152063 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.5924091,.374748,9.597419,.3619633,9.597419 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.1168332,-.1371468,-1.511871,-.1365612,-1.511871 +-.2721603,-.4697121,-3.957226,-.4471826,-3.957226 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.0717173,.0661602,1.042774,.0660885,1.042774 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +-.1346093,-.1642733,-1.957226,-.1631924,-1.957226 +.0029418,.0029313,.0427737,.0029313,.0427737 +.0084856,.008393,.1520631,.0083928,.1520631 +-.0658337,-.0718597,-.9572263,-.0717679,-.9572263 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +.4326032,.3079246,4.933485,.3020721,4.933485 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.1758957,.1455577,3.152063,.1446918,3.152063 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.5107159,.3341175,9.152063,.324298,9.152063 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.064289,.0594801,1.152063,.0594202,1.152063 +.2875024,.2171855,5.152063,.2143638,5.152063 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.5306833,.3467107,8.597419,.3364574,8.597419 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.1603279,.1352277,2.597418,.1345765,2.597418 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.268894,-.4279774,-3.066516,-.4129501,-3.066516 +.064289,.0594801,1.152063,.0594202,1.152063 +.2316991,.1828133,4.152063,.1811134,4.152063 +.5414546,.3680761,5.378839,.3590935,5.378839 +.0986021,.0882102,1.597418,.0880281,1.597418 +.4481565,.3237836,3.824195,.3181508,3.824195 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.1013791,-.1130495,-.7304498,-.1128261,-.7304498 +.0084856,.008393,.1520631,.0083928,.1520631 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.2721603,-.4697121,-3.957226,-.4471826,-3.957226 +-.1168332,-.1371468,-1.511871,-.1365612,-1.511871 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.1346093,-.1642733,-1.957226,-.1631924,-1.957226 +-.263856,-.4010768,-2.62116,-.3895907,-2.62116 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.1200924,.1047548,2.152063,.1044296,2.152063 +.064289,.0594801,1.152063,.0594202,1.152063 +.5665193,.3595589,10.15206,.347465,10.15206 +-.0658337,-.0718597,-.9572263,-.0717679,-.9572263 +-.0935197,-.1052514,-1.066516,-.1050068,-1.066516 +.064289,.0594801,1.152063,.0594202,1.152063 +-.0248497,-.0256698,-.4025816,-.0256653,-.4025816 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.7332162,.4444633,9.488129,.4264302,9.488129 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.0935197,-.1052514,-1.066516,-.1050068,-1.066516 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.3486648,-.8185734,-4.511871,-.7270422,-4.511871 +-.2713876,-.4505308,-3.511871,-.4318017,-3.511871 +1.309475,.6590779,14.93348,.6100154,14.93348 +1.291963,.6172617,23.15206,.5645132,23.15206 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.0084856,.008393,.1520631,.0083928,.1520631 +.1758957,.1455577,3.152063,.1446918,3.152063 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.064289,.0594801,1.152063,.0594202,1.152063 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.0625284,-.0672083,-.6211604,-.06715,-.6211604 +.4549125,.3073705,8.152063,.2996354,8.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.0084856,.008393,.1520631,.0083928,.1520631 +-.2033848,-.2866024,-2.957226,-.281059,-2.957226 +-.0248497,-.0256698,-.4025816,-.0256653,-.4025816 +-.3263345,-.8539706,-5.847937,-.7352132,-5.847937 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.0658337,-.0718597,-.9572263,-.0717679,-.9572263 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.1603279,.1352277,2.597418,.1345765,2.597418 +-.0935197,-.1052514,-1.066516,-.1050068,-1.066516 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.1758957,.1455577,3.152063,.1446918,3.152063 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.3433058,.2491663,6.152063,.2449511,6.152063 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +4.472755,1.25486,80.15206,.9713796,80.15206 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1812069,-.235488,-2.066516,-.2328148,-2.066516 +-.2033848,-.2866024,-2.957226,-.281059,-2.957226 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.2721603,-.4697121,-3.957226,-.4471826,-3.957226 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.0935197,-.1052514,-1.066516,-.1050068,-1.066516 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.0717173,.0661602,1.042774,.0660885,1.042774 +.0084856,.008393,.1520631,.0083928,.1520631 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.064289,.0594801,1.152063,.0594202,1.152063 +.0084856,.008393,.1520631,.0083928,.1520631 +-.2717533,-.486225,-4.402582,-.4598424,-4.402582 +.0084856,.008393,.1520631,.0083928,.1520631 +.0084856,.008393,.1520631,.0083928,.1520631 +-.2033848,-.2866024,-2.957226,-.281059,-2.957226 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +-.0935197,-.1052514,-1.066516,-.1050068,-1.066516 +.1200924,.1047548,2.152063,.1044296,2.152063 +.0084856,.008393,.1520631,.0083928,.1520631 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.2721603,-.4697121,-3.957226,-.4471826,-3.957226 +.064289,.0594801,1.152063,.0594202,1.152063 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +-.1941104,-.2631102,-2.511871,-.259097,-2.511871 +-.1346093,-.1642733,-1.957226,-.1631924,-1.957226 +-.0935197,-.1052514,-1.066516,-.1050068,-1.066516 +.2875024,.2171855,5.152063,.2143638,5.152063 +.1200924,.1047548,2.152063,.1044296,2.152063 +.0084856,.008393,.1520631,.0083928,.1520631 +.2220538,.1776789,3.597418,.1762155,3.597418 +.4549125,.3073705,8.152063,.2996354,8.152063 +-.3263345,-.8539706,-5.847937,-.7352132,-5.847937 +.0084856,.008393,.1520631,.0083928,.1520631 +.4549125,.3073705,8.152063,.2996354,8.152063 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.0084856,.008393,.1520631,.0083928,.1520631 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.2875024,.2171855,5.152063,.2143638,5.152063 +.0377213,.0361543,.488129,.0361435,.488129 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +.0084856,.008393,.1520631,.0083928,.1520631 +.1758957,.1455577,3.152063,.1446918,3.152063 +-.2033848,-.2866024,-2.957226,-.281059,-2.957226 +.0084856,.008393,.1520631,.0083928,.1520631 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.064289,.0594801,1.152063,.0594202,1.152063 +-.0248497,-.0256698,-.4025816,-.0256653,-.4025816 +.064289,.0594801,1.152063,.0594202,1.152063 +-.1168332,-.1371468,-1.511871,-.1365612,-1.511871 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.3263345,-.8539706,-5.847937,-.7352132,-5.847937 +-.2033848,-.2866024,-2.957226,-.281059,-2.957226 +.0084856,.008393,.1520631,.0083928,.1520631 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +.2316991,.1828133,4.152063,.1811134,4.152063 +.3468194,.2552284,5.042774,.251272,5.042774 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.0248497,-.0256698,-.4025816,-.0256653,-.4025816 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.0818546,.075218,.9334843,.0751285,.9334843 +.1149985,.1020452,1.488129,.1018027,1.488129 +.0084856,.008393,.1520631,.0083928,.1520631 +.3309667,.2556262,2.824195,.2528057,2.824195 +-.2033848,-.2866024,-2.957226,-.281059,-2.957226 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +2.129014,.8305237,38.15206,.7194568,38.15206 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.5665193,.3595589,10.15206,.347465,10.15206 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.3263345,-.8539706,-5.847937,-.7352132,-5.847937 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.0935197,-.1052514,-1.066516,-.1050068,-1.066516 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +.064289,.0594801,1.152063,.0594202,1.152063 +.2394631,.1945652,2.37884,.1931742,2.37884 +.064289,.0594801,1.152063,.0594202,1.152063 +.2875024,.2171855,5.152063,.2143638,5.152063 +-.1346093,-.1642733,-1.957226,-.1631924,-1.957226 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.1200924,.1047548,2.152063,.1044296,2.152063 +.064289,.0594801,1.152063,.0594202,1.152063 +.0818546,.075218,.9334843,.0751285,.9334843 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +-.1377923,-.1625678,-1.175805,-.1618294,-1.175805 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +-.1812069,-.235488,-2.066516,-.2328148,-2.066516 +.2394631,.1945652,2.37884,.1931742,2.37884 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.2875024,.2171855,5.152063,.2143638,5.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.1377923,-.1625678,-1.175805,-.1618294,-1.175805 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.3721718,-.7605252,-3.175805,-.699448,-3.175805 +.064289,.0594801,1.152063,.0594202,1.152063 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.0248497,-.0256698,-.4025816,-.0256653,-.4025816 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.2717533,-.486225,-4.402582,-.4598424,-4.402582 +.0084856,.008393,.1520631,.0083928,.1520631 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.0206026,-.0210504,-.1758051,-.0210488,-.1758051 +.2316991,.1828133,4.152063,.1811134,4.152063 +.1695417,.1442388,1.933484,.1436127,1.933484 +.2695529,.2109465,3.488129,.2088481,3.488129 +-.1941104,-.2631102,-2.511871,-.259097,-2.511871 +.2316991,.1828133,4.152063,.1811134,4.152063 +.064289,.0594801,1.152063,.0594202,1.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.0084856,.008393,.1520631,.0083928,.1520631 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.2875024,.2171855,5.152063,.2143638,5.152063 +.0377213,.0361543,.488129,.0361435,.488129 +.1149985,.1020452,1.488129,.1018027,1.488129 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.064289,.0594801,1.152063,.0594202,1.152063 +-.268894,-.4279774,-3.066516,-.4129501,-3.066516 +.0368762,.0352675,.5974184,.0352558,.5974184 +.4843704,.3278898,7.042774,.3197159,7.042774 +-.2721603,-.4697121,-3.957226,-.4471826,-3.957226 +.0368762,.0352675,.5974184,.0352558,.5974184 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.678126,.4071116,12.15206,.3899685,12.15206 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.0368762,.0352675,.5974184,.0352558,.5974184 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +.0818546,.075218,.9334843,.0751285,.9334843 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.2033848,-.2866024,-2.957226,-.281059,-2.957226 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.2875024,.2171855,5.152063,.2143638,5.152063 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.4326032,.3079246,4.933485,.3020721,4.933485 +.5414546,.3680761,5.378839,.3590935,5.378839 +.064289,.0594801,1.152063,.0594202,1.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.0084856,.008393,.1520631,.0083928,.1520631 +.0084856,.008393,.1520631,.0083928,.1520631 +-.0658337,-.0718597,-.9572263,-.0717679,-.9572263 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.2721603,-.4697121,-3.957226,-.4471826,-3.957226 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.039556,-.0415314,-.511871,-.041515,-.511871 +.0084856,.008393,.1520631,.0083928,.1520631 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.5665193,.3595589,10.15206,.347465,10.15206 +-.2713876,-.4505308,-3.511871,-.4318017,-3.511871 +.0368762,.0352675,.5974184,.0352558,.5974184 +.2316991,.1828133,4.152063,.1811134,4.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.0248497,-.0256698,-.4025816,-.0256653,-.4025816 +.0986021,.0882102,1.597418,.0880281,1.597418 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.1758957,.1455577,3.152063,.1446918,3.152063 +-.2033848,-.2866024,-2.957226,-.281059,-2.957226 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.1168332,-.1371468,-1.511871,-.1365612,-1.511871 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.0084856,.008393,.1520631,.0083928,.1520631 +.064289,.0594801,1.152063,.0594202,1.152063 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.3433058,.2491663,6.152063,.2449511,6.152063 +.0818546,.075218,.9334843,.0751285,.9334843 +-.3263345,-.8539706,-5.847937,-.7352132,-5.847937 +.3433058,.2491663,6.152063,.2449511,6.152063 +.1758957,.1455577,3.152063,.1446918,3.152063 +.0084856,.008393,.1520631,.0083928,.1520631 +.1200924,.1047548,2.152063,.1044296,2.152063 +.064289,.0594801,1.152063,.0594202,1.152063 +-.0625284,-.0672083,-.6211604,-.06715,-.6211604 +.3991092,.2791307,7.152063,.2732706,7.152063 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.0658337,-.0718597,-.9572263,-.0717679,-.9572263 +1.346765,.6823877,13.37884,.6325223,13.37884 +.1404928,.1212359,2.042774,.1207979,2.042774 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.0965872,.0882683,.8241949,.0881491,.8241949 +-.3263345,-.8539706,-5.847937,-.7352132,-5.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.3433058,.2491663,6.152063,.2449511,6.152063 +.0374109,.0361284,.2695502,.0361211,.2695502 +.5665193,.3595589,10.15206,.347465,10.15206 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.2033848,-.2866024,-2.957226,-.281059,-2.957226 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +1.347766,.6334519,24.15206,.5770435,24.15206 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +.7897327,.4509728,14.15206,.4282142,14.15206 +.4843704,.3278898,7.042774,.3197159,7.042774 +-.0658337,-.0718597,-.9572263,-.0717679,-.9572263 +-.1346093,-.1642733,-1.957226,-.1631924,-1.957226 +.064289,.0594801,1.152063,.0594202,1.152063 +.4549125,.3073705,8.152063,.2996354,8.152063 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +.1758957,.1455577,3.152063,.1446918,3.152063 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +.0084856,.008393,.1520631,.0083928,.1520631 +.0084856,.008393,.1520631,.0083928,.1520631 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +.0084856,.008393,.1520631,.0083928,.1520631 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.064289,.0594801,1.152063,.0594202,1.152063 +.1758957,.1455577,3.152063,.1446918,3.152063 +-.1346093,-.1642733,-1.957226,-.1631924,-1.957226 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.263856,-.4010768,-2.62116,-.3895907,-2.62116 +.0368762,.0352675,.5974184,.0352558,.5974184 +-.2721603,-.4697121,-3.957226,-.4471826,-3.957226 +.1200924,.1047548,2.152063,.1044296,2.152063 +.2316991,.1828133,4.152063,.1811134,4.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.0084856,.008393,.1520631,.0083928,.1520631 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.0084856,.008393,.1520631,.0083928,.1520631 +.3991092,.2791307,7.152063,.2732706,7.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +.2695529,.2109465,3.488129,.2088481,3.488129 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.3263345,-.8539706,-5.847937,-.7352132,-5.847937 +1.23616,.600697,22.15206,.5515581,22.15206 +-.0658337,-.0718597,-.9572263,-.0717679,-.9572263 +.2875024,.2171855,5.152063,.2143638,5.152063 +.0084856,.008393,.1520631,.0083928,.1520631 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.3334791,-.843813,-5.402582,-.7337776,-5.402582 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.2780438,.2146028,4.042774,.2122223,4.042774 +.2316991,.1828133,4.152063,.1811134,4.152063 +.4549125,.3073705,8.152063,.2996354,8.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.3455056,.2523725,5.597418,.2482699,5.597418 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +.1758957,.1455577,3.152063,.1446918,3.152063 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +.3991092,.2791307,7.152063,.2732706,7.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +1.23616,.600697,22.15206,.5515581,22.15206 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.3263345,-.8539706,-5.847937,-.7352132,-5.847937 +-.1941104,-.2631102,-2.511871,-.259097,-2.511871 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.4549125,.3073705,8.152063,.2996354,8.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.2316991,.1828133,4.152063,.1811134,4.152063 +.0374109,.0361284,.2695502,.0361211,.2695502 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.0084856,.008393,.1520631,.0083928,.1520631 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1377923,-.1625678,-1.175805,-.1618294,-1.175805 +-.0248497,-.0256698,-.4025816,-.0256653,-.4025816 +-.2033848,-.2866024,-2.957226,-.281059,-2.957226 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.1603279,.1352277,2.597418,.1345765,2.597418 +.0818546,.075218,.9334843,.0751285,.9334843 +.064289,.0594801,1.152063,.0594202,1.152063 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.0658337,-.0718597,-.9572263,-.0717679,-.9572263 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.2549821,-.3684383,-2.175805,-.3602484,-2.175805 +-.1941104,-.2631102,-2.511871,-.259097,-2.511871 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +-.0625284,-.0672083,-.6211604,-.06715,-.6211604 +1.57098,.6948906,28.15206,.6234201,28.15206 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.1758957,.1455577,3.152063,.1446918,3.152063 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +1.40357,.6492903,25.15206,.5891758,25.15206 +.4549125,.3073705,8.152063,.2996354,8.152063 +-.2717533,-.486225,-4.402582,-.4598424,-4.402582 +.0084856,.008393,.1520631,.0083928,.1520631 +.5665193,.3595589,10.15206,.347465,10.15206 +.2875024,.2171855,5.152063,.2143638,5.152063 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +.064289,.0594801,1.152063,.0594202,1.152063 +.0377213,.0361543,.488129,.0361435,.488129 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +.2875024,.2171855,5.152063,.2143638,5.152063 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +.1922757,.1595985,2.488129,.1586793,2.488129 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +.1603279,.1352277,2.597418,.1345765,2.597418 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.268894,-.4279774,-3.066516,-.4129501,-3.066516 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.0084856,.008393,.1520631,.0083928,.1520631 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.0248497,-.0256698,-.4025816,-.0256653,-.4025816 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +1.012946,.5301469,18.15206,.4948412,18.15206 +.3433058,.2491663,6.152063,.2449511,6.152063 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.1758957,.1455577,3.152063,.1446918,3.152063 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +.2875024,.2171855,5.152063,.2143638,5.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.1762009,.1521962,1.26955,.1516534,1.26955 +.2875024,.2171855,5.152063,.2143638,5.152063 +.1922757,.1595985,2.488129,.1586793,2.488129 +-.1941104,-.2631102,-2.511871,-.259097,-2.511871 +.064289,.0594801,1.152063,.0594202,1.152063 +-.0248497,-.0256698,-.4025816,-.0256653,-.4025816 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.2572289,.2047054,2.933484,.2029365,2.933484 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.0084856,.008393,.1520631,.0083928,.1520631 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.268894,-.4279774,-3.066516,-.4129501,-3.066516 +.0084856,.008393,.1520631,.0083928,.1520631 +.0717173,.0661602,1.042774,.0660885,1.042774 +.0084856,.008393,.1520631,.0083928,.1520631 +-.2549821,-.3684383,-2.175805,-.3602484,-2.175805 +.6223226,.383848,11.15206,.3693074,11.15206 +-.1941104,-.2631102,-2.511871,-.259097,-2.511871 +-.0206026,-.0210504,-.1758051,-.0210488,-.1758051 +-.1812069,-.235488,-2.066516,-.2328148,-2.066516 +-.2717533,-.486225,-4.402582,-.4598424,-4.402582 +.1404928,.1212359,2.042774,.1207979,2.042774 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.2717533,-.486225,-4.402582,-.4598424,-4.402582 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1631922,-.2025416,-1.62116,-.200975,-1.62116 +-.2033848,-.2866024,-2.957226,-.281059,-2.957226 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.3263345,-.8539706,-5.847937,-.7352132,-5.847937 +-.039556,-.0415314,-.511871,-.041515,-.511871 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.064289,.0594801,1.152063,.0594202,1.152063 +.1758957,.1455577,3.152063,.1446918,3.152063 +.0084856,.008393,.1520631,.0083928,.1520631 +.1758957,.1455577,3.152063,.1446918,3.152063 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.6421184,.4161926,6.378839,.4034303,6.378839 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.2316991,.1828133,4.152063,.1811134,4.152063 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.0029418,.0029313,.0427737,.0029313,.0427737 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +.064289,.0594801,1.152063,.0594202,1.152063 +.0084856,.008393,.1520631,.0083928,.1520631 +.6223226,.383848,11.15206,.3693074,11.15206 +.0084856,.008393,.1520631,.0083928,.1520631 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.1013791,-.1130495,-.7304498,-.1128261,-.7304498 +-.0935197,-.1052514,-1.066516,-.1050068,-1.066516 +1.180356,.5837326,21.15206,.5381484,21.15206 +.0381354,.0366623,.3788396,.0366528,.3788396 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.0058326,-.0058712,-.0665157,-.0058712,-.0665157 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.039556,-.0415314,-.511871,-.041515,-.511871 +-.0658337,-.0718597,-.9572263,-.0717679,-.9572263 +-.0658337,-.0718597,-.9572263,-.0717679,-.9572263 +-.1377923,-.1625678,-1.175805,-.1618294,-1.175805 +-.0658337,-.0718597,-.9572263,-.0717679,-.9572263 +-.1168332,-.1371468,-1.511871,-.1365612,-1.511871 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.4549125,.3073705,8.152063,.2996354,8.152063 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.1168332,-.1371468,-1.511871,-.1365612,-1.511871 +.0986021,.0882102,1.597418,.0880281,1.597418 +.064289,.0594801,1.152063,.0594202,1.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.064289,.0594801,1.152063,.0594202,1.152063 +.1149985,.1020452,1.488129,.1018027,1.488129 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.1168332,-.1371468,-1.511871,-.1365612,-1.511871 +.5107159,.3341175,9.152063,.324298,9.152063 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +.4072315,.2857901,6.597418,.2799032,6.597418 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.2316991,.1828133,4.152063,.1811134,4.152063 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.0084856,.008393,.1520631,.0083928,.1520631 +.3401269,.2585065,3.37884,.2552908,3.37884 +-.3565811,-.8026257,-4.066515,-.7208934,-4.066515 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +.064289,.0594801,1.152063,.0594202,1.152063 +.2316991,.1828133,4.152063,.1811134,4.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.5107159,.3341175,9.152063,.324298,9.152063 +.0084856,.008393,.1520631,.0083928,.1520631 +-.2717533,-.486225,-4.402582,-.4598424,-4.402582 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.7775868,.4513876,12.59742,.4298794,12.59742 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +.0029418,.0029313,.0427737,.0029313,.0427737 +.0084856,.008393,.1520631,.0083928,.1520631 +-.1346093,-.1642733,-1.957226,-.1631924,-1.957226 +.1603279,.1352277,2.597418,.1345765,2.597418 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.2033848,-.2866024,-2.957226,-.281059,-2.957226 +.1200924,.1047548,2.152063,.1044296,2.152063 +.1200924,.1047548,2.152063,.1044296,2.152063 +.064289,.0594801,1.152063,.0594202,1.152063 +.064289,.0594801,1.152063,.0594202,1.152063 +.064289,.0594801,1.152063,.0594202,1.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.0377213,.0361543,.488129,.0361435,.488129 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.2316991,.1828133,4.152063,.1811134,4.152063 +.0029418,.0029313,.0427737,.0029313,.0427737 +-.2717533,-.486225,-4.402582,-.4598424,-4.402582 +.0717173,.0661602,1.042774,.0660885,1.042774 +.1758957,.1455577,3.152063,.1446918,3.152063 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.0248497,-.0256698,-.4025816,-.0256653,-.4025816 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.268894,-.4279774,-3.066516,-.4129501,-3.066516 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.3433058,.2491663,6.152063,.2449511,6.152063 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +.0717173,.0661602,1.042774,.0660885,1.042774 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +.2572289,.2047054,2.933484,.2029365,2.933484 +.0084856,.008393,.1520631,.0083928,.1520631 +.0084856,.008393,.1520631,.0083928,.1520631 +-.3263345,-.8539706,-5.847937,-.7352132,-5.847937 +.2316991,.1828133,4.152063,.1811134,4.152063 +-.0935197,-.1052514,-1.066516,-.1050068,-1.066516 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.5924091,.374748,9.597419,.3619633,9.597419 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1168332,-.1371468,-1.511871,-.1365612,-1.511871 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.0029418,.0029313,.0427737,.0029313,.0427737 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +-.1346093,-.1642733,-1.957226,-.1631924,-1.957226 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.0084856,.008393,.1520631,.0083928,.1520631 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.1758957,.1455577,3.152063,.1446918,3.152063 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.1812069,-.235488,-2.066516,-.2328148,-2.066516 +.0084856,.008393,.1520631,.0083928,.1520631 +-.1941104,-.2631102,-2.511871,-.259097,-2.511871 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.3433058,.2491663,6.152063,.2449511,6.152063 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.1200924,.1047548,2.152063,.1044296,2.152063 +.1758957,.1455577,3.152063,.1446918,3.152063 +.2316991,.1828133,4.152063,.1811134,4.152063 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.5107159,.3341175,9.152063,.324298,9.152063 +-.1812069,-.235488,-2.066516,-.2328148,-2.066516 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +.1200924,.1047548,2.152063,.1044296,2.152063 +.064289,.0594801,1.152063,.0594202,1.152063 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.2033848,-.2866024,-2.957226,-.281059,-2.957226 +1.274157,.6377655,16.48813,.5895627,16.48813 +.5107159,.3341175,9.152063,.324298,9.152063 +.064289,.0594801,1.152063,.0594202,1.152063 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.1168332,-.1371468,-1.511871,-.1365612,-1.511871 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.8455361,.4717378,15.15206,.4459912,15.15206 +.3433058,.2491663,6.152063,.2449511,6.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.3991092,.2791307,7.152063,.2732706,7.152063 +.0381354,.0366623,.3788396,.0366528,.3788396 +-.3409358,-.8321366,-4.957226,-.7311729,-4.957226 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.9441099,.5424179,9.378839,.5156149,9.378839 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.3455056,.2523725,5.597418,.2482699,5.597418 +.3433058,.2491663,6.152063,.2449511,6.152063 +.4549125,.3073705,8.152063,.2996354,8.152063 +-.1631922,-.2025416,-1.62116,-.200975,-1.62116 +.064289,.0594801,1.152063,.0594202,1.152063 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.4072315,.2857901,6.597418,.2799032,6.597418 +-.2549821,-.3684383,-2.175805,-.3602484,-2.175805 +.0374109,.0361284,.2695502,.0361211,.2695502 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.2875024,.2171855,5.152063,.2143638,5.152063 +.0084856,.008393,.1520631,.0083928,.1520631 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.6223226,.383848,11.15206,.3693074,11.15206 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.2875024,.2171855,5.152063,.2143638,5.152063 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.2316991,.1828133,4.152063,.1811134,4.152063 +.4549125,.3073705,8.152063,.2996354,8.152063 +-.2721603,-.4697121,-3.957226,-.4471826,-3.957226 +.2316991,.1828133,4.152063,.1811134,4.152063 +-.268894,-.4279774,-3.066516,-.4129501,-3.066516 +.0717173,.0661602,1.042774,.0660885,1.042774 +.2875024,.2171855,5.152063,.2143638,5.152063 +.064289,.0594801,1.152063,.0594202,1.152063 +-.2549821,-.3684383,-2.175805,-.3602484,-2.175805 +.6223226,.383848,11.15206,.3693074,11.15206 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +.1387993,.1218112,1.37884,.1214658,1.37884 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.2721603,-.4697121,-3.957226,-.4471826,-3.957226 +-.2721603,-.4697121,-3.957226,-.4471826,-3.957226 +.064289,.0594801,1.152063,.0594202,1.152063 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +-.3409358,-.8321366,-4.957226,-.7311729,-4.957226 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +.3468194,.2552284,5.042774,.251272,5.042774 +.0084856,.008393,.1520631,.0083928,.1520631 +-.2033848,-.2866024,-2.957226,-.281059,-2.957226 +.1758957,.1455577,3.152063,.1446918,3.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.2875024,.2171855,5.152063,.2143638,5.152063 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.3645199,-.7836041,-3.62116,-.7120315,-3.62116 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.1758957,.1455577,3.152063,.1446918,3.152063 +-.0935197,-.1052514,-1.066516,-.1050068,-1.066516 +.2092683,.1702567,3.042774,.1690549,3.042774 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.0658337,-.0718597,-.9572263,-.0717679,-.9572263 +.1387993,.1218112,1.37884,.1214658,1.37884 +.064289,.0594801,1.152063,.0594202,1.152063 +-.1346093,-.1642733,-1.957226,-.1631924,-1.957226 +-.0058326,-.0058712,-.0665157,-.0058712,-.0665157 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.2875024,.2171855,5.152063,.2143638,5.152063 +.0084856,.008393,.1520631,.0083928,.1520631 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +.3433058,.2491663,6.152063,.2449511,6.152063 +.4549125,.3073705,8.152063,.2996354,8.152063 +-.0658337,-.0718597,-.9572263,-.0717679,-.9572263 +.2220538,.1776789,3.597418,.1762155,3.597418 +.0986021,.0882102,1.597418,.0880281,1.597418 +.0084856,.008393,.1520631,.0083928,.1520631 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.2717533,-.486225,-4.402582,-.4598424,-4.402582 +-.1377923,-.1625678,-1.175805,-.1618294,-1.175805 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.0084856,.008393,.1520631,.0083928,.1520631 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1013791,-.1130495,-.7304498,-.1128261,-.7304498 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.0084856,.008393,.1520631,.0083928,.1520631 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.7897327,.4509728,14.15206,.4282142,14.15206 +.2875024,.2171855,5.152063,.2143638,5.152063 +.064289,.0594801,1.152063,.0594202,1.152063 +.3991092,.2791307,7.152063,.2732706,7.152063 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.3433058,.2491663,6.152063,.2449511,6.152063 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.3263345,-.8539706,-5.847937,-.7352132,-5.847937 +.0368762,.0352675,.5974184,.0352558,.5974184 +.3433058,.2491663,6.152063,.2449511,6.152063 +.1758957,.1455577,3.152063,.1446918,3.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.0058326,-.0058712,-.0665157,-.0058712,-.0665157 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +.0818546,.075218,.9334843,.0751285,.9334843 +.4326032,.3079246,4.933485,.3020721,4.933485 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.2092683,.1702567,3.042774,.1690549,3.042774 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +1.580023,.7067504,25.59742,.6358985,25.59742 +-.1631922,-.2025416,-1.62116,-.200975,-1.62116 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1346093,-.1642733,-1.957226,-.1631924,-1.957226 +.064289,.0594801,1.152063,.0594202,1.152063 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +.0818546,.075218,.9334843,.0751285,.9334843 +-.3263345,-.8539706,-5.847937,-.7352132,-5.847937 +.3433058,.2491663,6.152063,.2449511,6.152063 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +-.3486648,-.8185734,-4.511871,-.7270422,-4.511871 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.3433058,.2491663,6.152063,.2449511,6.152063 +.0084856,.008393,.1520631,.0083928,.1520631 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.3433058,.2491663,6.152063,.2449511,6.152063 +.0084856,.008393,.1520631,.0083928,.1520631 +-.1168332,-.1371468,-1.511871,-.1365612,-1.511871 +.4549125,.3073705,8.152063,.2996354,8.152063 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1941104,-.2631102,-2.511871,-.259097,-2.511871 +.3433058,.2491663,6.152063,.2449511,6.152063 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +-.3263345,-.8539706,-5.847937,-.7352132,-5.847937 +.064289,.0594801,1.152063,.0594202,1.152063 +.3433058,.2491663,6.152063,.2449511,6.152063 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +.678126,.4071116,12.15206,.3899685,12.15206 +-.0935197,-.1052514,-1.066516,-.1050068,-1.066516 +-.263856,-.4010768,-2.62116,-.3895907,-2.62116 +.2572289,.2047054,2.933484,.2029365,2.933484 +.0084856,.008393,.1520631,.0083928,.1520631 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.1631922,-.2025416,-1.62116,-.200975,-1.62116 +.678126,.4071116,12.15206,.3899685,12.15206 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.9013395,.4918179,16.15206,.462978,16.15206 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.1758957,.1455577,3.152063,.1446918,3.152063 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.0084856,.008393,.1520631,.0083928,.1520631 +.3991092,.2791307,7.152063,.2732706,7.152063 +.064289,.0594801,1.152063,.0594202,1.152063 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.2717533,-.486225,-4.402582,-.4598424,-4.402582 +-.0625284,-.0672083,-.6211604,-.06715,-.6211604 +-.0625284,-.0672083,-.6211604,-.06715,-.6211604 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.1149985,.1020452,1.488129,.1018027,1.488129 +-.3263345,-.8539706,-5.847937,-.7352132,-5.847937 +.5665193,.3595589,10.15206,.347465,10.15206 +.0084856,.008393,.1520631,.0083928,.1520631 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.2316991,.1828133,4.152063,.1811134,4.152063 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.0084856,.008393,.1520631,.0083928,.1520631 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.0248497,-.0256698,-.4025816,-.0256653,-.4025816 +.1758957,.1455577,3.152063,.1446918,3.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.0029418,.0029313,.0427737,.0029313,.0427737 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.3433058,.2491663,6.152063,.2449511,6.152063 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.064289,.0594801,1.152063,.0594202,1.152063 +-.268894,-.4279774,-3.066516,-.4129501,-3.066516 +.3991092,.2791307,7.152063,.2732706,7.152063 +-.0206026,-.0210504,-.1758051,-.0210488,-.1758051 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1812069,-.235488,-2.066516,-.2328148,-2.066516 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.3991092,.2791307,7.152063,.2732706,7.152063 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.1941104,-.2631102,-2.511871,-.259097,-2.511871 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.1631922,-.2025416,-1.62116,-.200975,-1.62116 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.1200924,.1047548,2.152063,.1044296,2.152063 +1.221787,.6309189,13.93348,.5872274,13.93348 +.0377213,.0361543,.488129,.0361435,.488129 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +.0084856,.008393,.1520631,.0083928,.1520631 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +.064289,.0594801,1.152063,.0594202,1.152063 +.1200924,.1047548,2.152063,.1044296,2.152063 +.0084856,.008393,.1520631,.0083928,.1520631 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +.2875024,.2171855,5.152063,.2143638,5.152063 +.1758957,.1455577,3.152063,.1446918,3.152063 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.0658337,-.0718597,-.9572263,-.0717679,-.9572263 +-.1941104,-.2631102,-2.511871,-.259097,-2.511871 +.678126,.4071116,12.15206,.3899685,12.15206 +.0084856,.008393,.1520631,.0083928,.1520631 +.0965872,.0882683,.8241949,.0881491,.8241949 +.5107159,.3341175,9.152063,.324298,9.152063 +1.012946,.5301469,18.15206,.4948412,18.15206 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.2875024,.2171855,5.152063,.2143638,5.152063 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.0935197,-.1052514,-1.066516,-.1050068,-1.066516 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.5107159,.3341175,9.152063,.324298,9.152063 +-.3263345,-.8539706,-5.847937,-.7352132,-5.847937 +.678126,.4071116,12.15206,.3899685,12.15206 +-.263856,-.4010768,-2.62116,-.3895907,-2.62116 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.3433058,.2491663,6.152063,.2449511,6.152063 +.2780438,.2146028,4.042774,.2122223,4.042774 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.1922757,.1595985,2.488129,.1586793,2.488129 +-.1812069,-.235488,-2.066516,-.2328148,-2.066516 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.0084856,.008393,.1520631,.0083928,.1520631 +.1758957,.1455577,3.152063,.1446918,3.152063 +.0368762,.0352675,.5974184,.0352558,.5974184 +-.1346093,-.1642733,-1.957226,-.1631924,-1.957226 +.2316991,.1828133,4.152063,.1811134,4.152063 +.5531459,.3608259,8.042773,.3500788,8.042773 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.0381354,.0366623,.3788396,.0366528,.3788396 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.064289,.0594801,1.152063,.0594202,1.152063 +.1200924,.1047548,2.152063,.1044296,2.152063 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.0029418,.0029313,.0427737,.0029313,.0427737 +.2316991,.1828133,4.152063,.1811134,4.152063 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +.1200924,.1047548,2.152063,.1044296,2.152063 +.5107159,.3341175,9.152063,.324298,9.152063 +.1200924,.1047548,2.152063,.1044296,2.152063 +.0084856,.008393,.1520631,.0083928,.1520631 +-.0658337,-.0718597,-.9572263,-.0717679,-.9572263 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.3991092,.2791307,7.152063,.2732706,7.152063 +.2875024,.2171855,5.152063,.2143638,5.152063 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.690697,.4214534,10.04277,.4047881,10.04277 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.213777,.1783427,1.824195,.1773702,1.824195 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +.5531459,.3608259,8.042773,.3500788,8.042773 +.0084856,.008393,.1520631,.0083928,.1520631 +.2394631,.1945652,2.37884,.1931742,2.37884 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.2033848,-.2866024,-2.957226,-.281059,-2.957226 +-.1168332,-.1371468,-1.511871,-.1365612,-1.511871 +.0084856,.008393,.1520631,.0083928,.1520631 +.0084856,.008393,.1520631,.0083928,.1520631 +-.3263345,-.8539706,-5.847937,-.7352132,-5.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +.7339293,.4294565,13.15206,.4095696,13.15206 +.064289,.0594801,1.152063,.0594202,1.152063 +.0084856,.008393,.1520631,.0083928,.1520631 +.2875024,.2171855,5.152063,.2143638,5.152063 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.1200924,.1047548,2.152063,.1044296,2.152063 +.7897327,.4509728,14.15206,.4282142,14.15206 +-.2033848,-.2866024,-2.957226,-.281059,-2.957226 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.0374109,.0361284,.2695502,.0361211,.2695502 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.2875024,.2171855,5.152063,.2143638,5.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.1387993,.1218112,1.37884,.1214658,1.37884 +-.0058326,-.0058712,-.0665157,-.0058712,-.0665157 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.2316991,.1828133,4.152063,.1811134,4.152063 +-.0625284,-.0672083,-.6211604,-.06715,-.6211604 +-.2033848,-.2866024,-2.957226,-.281059,-2.957226 +.1758957,.1455577,3.152063,.1446918,3.152063 +.0084856,.008393,.1520631,.0083928,.1520631 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1631922,-.2025416,-1.62116,-.200975,-1.62116 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.0084856,.008393,.1520631,.0083928,.1520631 +-.1168332,-.1371468,-1.511871,-.1365612,-1.511871 +-.2717533,-.486225,-4.402582,-.4598424,-4.402582 +.3433058,.2491663,6.152063,.2449511,6.152063 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.4549125,.3073705,8.152063,.2996354,8.152063 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.0084856,.008393,.1520631,.0083928,.1520631 +-.268894,-.4279774,-3.066516,-.4129501,-3.066516 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +.0377213,.0361543,.488129,.0361435,.488129 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.0368762,.0352675,.5974184,.0352558,.5974184 +.064289,.0594801,1.152063,.0594202,1.152063 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.0377213,.0361543,.488129,.0361435,.488129 +.064289,.0594801,1.152063,.0594202,1.152063 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1941104,-.2631102,-2.511871,-.259097,-2.511871 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.0248497,-.0256698,-.4025816,-.0256653,-.4025816 +.064289,.0594801,1.152063,.0594202,1.152063 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.0029418,.0029313,.0427737,.0029313,.0427737 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.2875024,.2171855,5.152063,.2143638,5.152063 +.0374109,.0361284,.2695502,.0361211,.2695502 +.0084856,.008393,.1520631,.0083928,.1520631 +.2875024,.2171855,5.152063,.2143638,5.152063 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.6223226,.383848,11.15206,.3693074,11.15206 +-.3334791,-.843813,-5.402582,-.7337776,-5.402582 +1.347766,.6334519,24.15206,.5770435,24.15206 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.0658337,-.0718597,-.9572263,-.0717679,-.9572263 +-.3263345,-.8539706,-5.847937,-.7352132,-5.847937 +.0084856,.008393,.1520631,.0083928,.1520631 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.2875024,.2171855,5.152063,.2143638,5.152063 +.1758957,.1455577,3.152063,.1446918,3.152063 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.3334791,-.843813,-5.402582,-.7337776,-5.402582 +.0818546,.075218,.9334843,.0751285,.9334843 +.2316991,.1828133,4.152063,.1811134,4.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.3263345,-.8539706,-5.847937,-.7352132,-5.847937 +.3455056,.2523725,5.597418,.2482699,5.597418 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +-.0935197,-.1052514,-1.066516,-.1050068,-1.066516 +-.2713876,-.4505308,-3.511871,-.4318017,-3.511871 +-.2033848,-.2866024,-2.957226,-.281059,-2.957226 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.039556,-.0415314,-.511871,-.041515,-.511871 +.1695417,.1442388,1.933484,.1436127,1.933484 +-.2033848,-.2866024,-2.957226,-.281059,-2.957226 +.5924091,.374748,9.597419,.3619633,9.597419 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.2721603,-.4697121,-3.957226,-.4471826,-3.957226 +.1149985,.1020452,1.488129,.1018027,1.488129 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.0986021,.0882102,1.597418,.0880281,1.597418 +-.0206026,-.0210504,-.1758051,-.0210488,-.1758051 +-.0248497,-.0256698,-.4025816,-.0256653,-.4025816 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.0717173,.0661602,1.042774,.0660885,1.042774 +.0084856,.008393,.1520631,.0083928,.1520631 +.0084856,.008393,.1520631,.0083928,.1520631 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.0374109,.0361284,.2695502,.0361211,.2695502 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.1149985,.1020452,1.488129,.1018027,1.488129 +.1758957,.1455577,3.152063,.1446918,3.152063 +.2220538,.1776789,3.597418,.1762155,3.597418 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.0368762,.0352675,.5974184,.0352558,.5974184 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.0986021,.0882102,1.597418,.0880281,1.597418 +-.1168332,-.1371468,-1.511871,-.1365612,-1.511871 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +.064289,.0594801,1.152063,.0594202,1.152063 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +.6956646,.4342931,7.933485,.4186322,7.933485 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.2713876,-.4505308,-3.511871,-.4318017,-3.511871 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.1812069,-.235488,-2.066516,-.2328148,-2.066516 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.2394631,.1945652,2.37884,.1931742,2.37884 +.064289,.0594801,1.152063,.0594202,1.152063 +.2316991,.1828133,4.152063,.1811134,4.152063 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +.0084856,.008393,.1520631,.0083928,.1520631 +.064289,.0594801,1.152063,.0594202,1.152063 +.2316991,.1828133,4.152063,.1811134,4.152063 +.0084856,.008393,.1520631,.0083928,.1520631 +.0381354,.0366623,.3788396,.0366528,.3788396 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +.064289,.0594801,1.152063,.0594202,1.152063 +.213777,.1783427,1.824195,.1773702,1.824195 +.678126,.4071116,12.15206,.3899685,12.15206 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.7897327,.4509728,14.15206,.4282142,14.15206 +.1603279,.1352277,2.597418,.1345765,2.597418 +.1200924,.1047548,2.152063,.1044296,2.152063 +.0084856,.008393,.1520631,.0083928,.1520631 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.2717533,-.486225,-4.402582,-.4598424,-4.402582 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.2713876,-.4505308,-3.511871,-.4318017,-3.511871 +.2316991,.1828133,4.152063,.1811134,4.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.0717173,.0661602,1.042774,.0660885,1.042774 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.0058326,-.0058712,-.0665157,-.0058712,-.0665157 +.2316991,.1828133,4.152063,.1811134,4.152063 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.2713876,-.4505308,-3.511871,-.4318017,-3.511871 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.1762009,.1521962,1.26955,.1516534,1.26955 +-.2717533,-.486225,-4.402582,-.4598424,-4.402582 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +.1758957,.1455577,3.152063,.1446918,3.152063 +-.0248497,-.0256698,-.4025816,-.0256653,-.4025816 +.4549125,.3073705,8.152063,.2996354,8.152063 +.4241073,.3002126,5.488129,.2943222,5.488129 +-.2717533,-.486225,-4.402582,-.4598424,-4.402582 +.064289,.0594801,1.152063,.0594202,1.152063 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.1200924,.1047548,2.152063,.1044296,2.152063 +.0029418,.0029313,.0427737,.0029313,.0427737 +-.1631922,-.2025416,-1.62116,-.200975,-1.62116 +.1758957,.1455577,3.152063,.1446918,3.152063 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.1695417,.1442388,1.933484,.1436127,1.933484 +-.1812069,-.235488,-2.066516,-.2328148,-2.066516 +.2875024,.2171855,5.152063,.2143638,5.152063 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +.2780438,.2146028,4.042774,.2122223,4.042774 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1346093,-.1642733,-1.957226,-.1631924,-1.957226 +-.1631922,-.2025416,-1.62116,-.200975,-1.62116 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.3401269,.2585065,3.37884,.2552908,3.37884 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.2875024,.2171855,5.152063,.2143638,5.152063 +.7313609,.4708592,5.26955,.4559795,5.26955 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.0377213,.0361543,.488129,.0361435,.488129 +.0084856,.008393,.1520631,.0083928,.1520631 +.654135,.4014399,10.59742,.3859225,10.59742 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +.064289,.0594801,1.152063,.0594202,1.152063 +.1695417,.1442388,1.933484,.1436127,1.933484 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.4549125,.3073705,8.152063,.2996354,8.152063 +.1695417,.1442388,1.933484,.1436127,1.933484 +.1762009,.1521962,1.26955,.1516534,1.26955 +-.0478814,-.0501049,-.2850945,-.0500877,-.2850945 +-.2549821,-.3684383,-2.175805,-.3602484,-2.175805 +-.1168332,-.1371468,-1.511871,-.1365612,-1.511871 +-.0248497,-.0256698,-.4025816,-.0256653,-.4025816 +.064289,.0594801,1.152063,.0594202,1.152063 +-.1631922,-.2025416,-1.62116,-.200975,-1.62116 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.0248497,-.0256698,-.4025816,-.0256653,-.4025816 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.0986021,.0882102,1.597418,.0880281,1.597418 +.0084856,.008393,.1520631,.0083928,.1520631 +.6223226,.383848,11.15206,.3693074,11.15206 +-.2033848,-.2866024,-2.957226,-.281059,-2.957226 +.9571428,.5112708,17.15206,.4792416,17.15206 +.1758957,.1455577,3.152063,.1446918,3.152063 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.1812069,-.235488,-2.066516,-.2328148,-2.066516 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.2721603,-.4697121,-3.957226,-.4471826,-3.957226 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.4537809,.3312667,3.26955,.3258617,3.26955 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.064289,.0594801,1.152063,.0594202,1.152063 +-.1941104,-.2631102,-2.511871,-.259097,-2.511871 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +1.268485,.6692829,10.82419,.6257678,10.82419 +-.3565811,-.8026257,-4.066515,-.7208934,-4.066515 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.0084856,.008393,.1520631,.0083928,.1520631 +-.0206026,-.0210504,-.1758051,-.0210488,-.1758051 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.1200924,.1047548,2.152063,.1044296,2.152063 +.0084856,.008393,.1520631,.0083928,.1520631 +.2875024,.2171855,5.152063,.2143638,5.152063 +.3991092,.2791307,7.152063,.2732706,7.152063 +1.347766,.6334519,24.15206,.5770435,24.15206 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.2875024,.2171855,5.152063,.2143638,5.152063 +.064289,.0594801,1.152063,.0594202,1.152063 +-.0935197,-.1052514,-1.066516,-.1050068,-1.066516 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.0029418,.0029313,.0427737,.0029313,.0427737 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.3401269,.2585065,3.37884,.2552908,3.37884 +.064289,.0594801,1.152063,.0594202,1.152063 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.1200924,.1047548,2.152063,.1044296,2.152063 +.5202903,.3531052,5.933485,.3444154,5.933485 +-.2717533,-.486225,-4.402582,-.4598424,-4.402582 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.064289,.0594801,1.152063,.0594202,1.152063 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +-.1812069,-.235488,-2.066516,-.2328148,-2.066516 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +2.57544,.9257494,46.15206,.7819858,46.15206 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.1941104,-.2631102,-2.511871,-.259097,-2.511871 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.2033848,-.2866024,-2.957226,-.281059,-2.957226 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.3991092,.2791307,7.152063,.2732706,7.152063 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.1346093,-.1642733,-1.957226,-.1631924,-1.957226 +.0084856,.008393,.1520631,.0083928,.1520631 +.2837797,.2165023,4.597418,.2138826,4.597418 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +.1758957,.1455577,3.152063,.1446918,3.152063 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +.2837797,.2165023,4.597418,.2138826,4.597418 +.1200924,.1047548,2.152063,.1044296,2.152063 +.1922757,.1595985,2.488129,.1586793,2.488129 +1.06875,.5484905,19.15206,.509829,19.15206 +-.2713876,-.4505308,-3.511871,-.4318017,-3.511871 +-.1941104,-.2631102,-2.511871,-.259097,-2.511871 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.0084856,.008393,.1520631,.0083928,.1520631 +.2875024,.2171855,5.152063,.2143638,5.152063 +.9013395,.4918179,16.15206,.462978,16.15206 +.3433058,.2491663,6.152063,.2449511,6.152063 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1812069,-.235488,-2.066516,-.2328148,-2.066516 +.2394631,.1945652,2.37884,.1931742,2.37884 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.2033848,-.2866024,-2.957226,-.281059,-2.957226 +.3991092,.2791307,7.152063,.2732706,7.152063 +.0084856,.008393,.1520631,.0083928,.1520631 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +2.098659,.8771978,23.93349,.7750893,23.93349 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.2033848,-.2866024,-2.957226,-.281059,-2.957226 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.1695417,.1442388,1.933484,.1436127,1.933484 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.1812069,-.235488,-2.066516,-.2328148,-2.066516 +-.1346093,-.1642733,-1.957226,-.1631924,-1.957226 +-.2717533,-.486225,-4.402582,-.4598424,-4.402582 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1631922,-.2025416,-1.62116,-.200975,-1.62116 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.0248497,-.0256698,-.4025816,-.0256653,-.4025816 +-.2721603,-.4697121,-3.957226,-.4471826,-3.957226 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.0625284,-.0672083,-.6211604,-.06715,-.6211604 +-.2713876,-.4505308,-3.511871,-.4318017,-3.511871 +-.1812069,-.235488,-2.066516,-.2328148,-2.066516 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.0248497,-.0256698,-.4025816,-.0256653,-.4025816 +-.3486648,-.8185734,-4.511871,-.7270422,-4.511871 +.2875024,.2171855,5.152063,.2143638,5.152063 +-.2033848,-.2866024,-2.957226,-.281059,-2.957226 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.7897327,.4509728,14.15206,.4282142,14.15206 +-.0248497,-.0256698,-.4025816,-.0256653,-.4025816 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.064289,.0594801,1.152063,.0594202,1.152063 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.1387993,.1218112,1.37884,.1214658,1.37884 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.0368762,.0352675,.5974184,.0352558,.5974184 +-.1168332,-.1371468,-1.511871,-.1365612,-1.511871 +-.0658337,-.0718597,-.9572263,-.0717679,-.9572263 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.064289,.0594801,1.152063,.0594202,1.152063 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +.1200924,.1047548,2.152063,.1044296,2.152063 +.0368762,.0352675,.5974184,.0352558,.5974184 +.1758957,.1455577,3.152063,.1446918,3.152063 +.1200924,.1047548,2.152063,.1044296,2.152063 +.6559389,.4115749,8.488129,.3970432,8.488129 +.0084856,.008393,.1520631,.0083928,.1520631 +.064289,.0594801,1.152063,.0594202,1.152063 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +1.347766,.6334519,24.15206,.5770435,24.15206 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.678126,.4071116,12.15206,.3899685,12.15206 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.1387993,.1218112,1.37884,.1214658,1.37884 +.064289,.0594801,1.152063,.0594202,1.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.3263345,-.8539706,-5.847937,-.7352132,-5.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +.5107159,.3341175,9.152063,.324298,9.152063 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.064289,.0594801,1.152063,.0594202,1.152063 +-.0248497,-.0256698,-.4025816,-.0256653,-.4025816 +.2316991,.1828133,4.152063,.1811134,4.152063 +-.0935197,-.1052514,-1.066516,-.1050068,-1.066516 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +1.012946,.5301469,18.15206,.4948412,18.15206 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.0377213,.0361543,.488129,.0361435,.488129 +.1603279,.1352277,2.597418,.1345765,2.597418 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +.8970235,.5022837,13.04277,.4751971,13.04277 +-.2721603,-.4697121,-3.957226,-.4471826,-3.957226 +.2316991,.1828133,4.152063,.1811134,4.152063 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.0084856,.008393,.1520631,.0083928,.1520631 +-.0625284,-.0672083,-.6211604,-.06715,-.6211604 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.0658337,-.0718597,-.9572263,-.0717679,-.9572263 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.0248497,-.0256698,-.4025816,-.0256653,-.4025816 +.3991092,.2791307,7.152063,.2732706,7.152063 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.1377923,-.1625678,-1.175805,-.1618294,-1.175805 +.2220538,.1776789,3.597418,.1762155,3.597418 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +-.1941104,-.2631102,-2.511871,-.259097,-2.511871 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.2695529,.2109465,3.488129,.2088481,3.488129 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.3433058,.2491663,6.152063,.2449511,6.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.1387993,.1218112,1.37884,.1214658,1.37884 +.1200924,.1047548,2.152063,.1044296,2.152063 +.0965872,.0882683,.8241949,.0881491,.8241949 +.3991092,.2791307,7.152063,.2732706,7.152063 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.1168332,-.1371468,-1.511871,-.1365612,-1.511871 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +-.1812069,-.235488,-2.066516,-.2328148,-2.066516 +.0084856,.008393,.1520631,.0083928,.1520631 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.2092683,.1702567,3.042774,.1690549,3.042774 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +.1758957,.1455577,3.152063,.1446918,3.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1168332,-.1371468,-1.511871,-.1365612,-1.511871 +-.0625284,-.0672083,-.6211604,-.06715,-.6211604 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.0986021,.0882102,1.597418,.0880281,1.597418 +.1758957,.1455577,3.152063,.1446918,3.152063 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.2033848,-.2866024,-2.957226,-.281059,-2.957226 +.4241073,.3002126,5.488129,.2943222,5.488129 +-.2721603,-.4697121,-3.957226,-.4471826,-3.957226 +.064289,.0594801,1.152063,.0594202,1.152063 +.0381354,.0366623,.3788396,.0366528,.3788396 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.1812069,-.235488,-2.066516,-.2328148,-2.066516 +.0986021,.0882102,1.597418,.0880281,1.597418 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.1812069,-.235488,-2.066516,-.2328148,-2.066516 +-.1346093,-.1642733,-1.957226,-.1631924,-1.957226 +-.3263345,-.8539706,-5.847937,-.7352132,-5.847937 +.1758957,.1455577,3.152063,.1446918,3.152063 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +.5924091,.374748,9.597419,.3619633,9.597419 +-.0658337,-.0718597,-.9572263,-.0717679,-.9572263 +.2316991,.1828133,4.152063,.1811134,4.152063 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.2316991,.1828133,4.152063,.1811134,4.152063 +.1695417,.1442388,1.933484,.1436127,1.933484 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.2717533,-.486225,-4.402582,-.4598424,-4.402582 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.0935197,-.1052514,-1.066516,-.1050068,-1.066516 +-.1812069,-.235488,-2.066516,-.2328148,-2.066516 +.1404928,.1212359,2.042774,.1207979,2.042774 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.3991092,.2791307,7.152063,.2732706,7.152063 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.4326032,.3079246,4.933485,.3020721,4.933485 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.2721603,-.4697121,-3.957226,-.4471826,-3.957226 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.0058326,-.0058712,-.0665157,-.0058712,-.0665157 +.064289,.0594801,1.152063,.0594202,1.152063 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +-.3263345,-.8539706,-5.847937,-.7352132,-5.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.3263345,-.8539706,-5.847937,-.7352132,-5.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.064289,.0594801,1.152063,.0594202,1.152063 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.1758957,.1455577,3.152063,.1446918,3.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.3149909,.2483722,2.26955,.2460503,2.26955 +.1603279,.1352277,2.597418,.1345765,2.597418 +-.1941104,-.2631102,-2.511871,-.259097,-2.511871 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.1168332,-.1371468,-1.511871,-.1365612,-1.511871 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.0084856,.008393,.1520631,.0083928,.1520631 +.2316991,.1828133,4.152063,.1811134,4.152063 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.0058326,-.0058712,-.0665157,-.0058712,-.0665157 +.2875024,.2171855,5.152063,.2143638,5.152063 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.2316991,.1828133,4.152063,.1811134,4.152063 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.0368762,.0352675,.5974184,.0352558,.5974184 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.1758957,.1455577,3.152063,.1446918,3.152063 +.0084856,.008393,.1520631,.0083928,.1520631 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +-.0935197,-.1052514,-1.066516,-.1050068,-1.066516 +.064289,.0594801,1.152063,.0594202,1.152063 +.7339293,.4294565,13.15206,.4095696,13.15206 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.2092683,.1702567,3.042774,.1690549,3.042774 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.1200924,.1047548,2.152063,.1044296,2.152063 +.064289,.0594801,1.152063,.0594202,1.152063 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.3486648,-.8185734,-4.511871,-.7270422,-4.511871 +.0818546,.075218,.9334843,.0751285,.9334843 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.678126,.4071116,12.15206,.3899685,12.15206 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.263856,-.4010768,-2.62116,-.3895907,-2.62116 +.5107159,.3341175,9.152063,.324298,9.152063 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.0084856,.008393,.1520631,.0083928,.1520631 +-.1377923,-.1625678,-1.175805,-.1618294,-1.175805 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1168332,-.1371468,-1.511871,-.1365612,-1.511871 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1013791,-.1130495,-.7304498,-.1128261,-.7304498 +.064289,.0594801,1.152063,.0594202,1.152063 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +.3991092,.2791307,7.152063,.2732706,7.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.0818546,.075218,.9334843,.0751285,.9334843 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.263856,-.4010768,-2.62116,-.3895907,-2.62116 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.1941104,-.2631102,-2.511871,-.259097,-2.511871 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.1758957,.1455577,3.152063,.1446918,3.152063 +-.0658337,-.0718597,-.9572263,-.0717679,-.9572263 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.1758957,.1455577,3.152063,.1446918,3.152063 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.2721603,-.4697121,-3.957226,-.4471826,-3.957226 +.0818546,.075218,.9334843,.0751285,.9334843 +.064289,.0594801,1.152063,.0594202,1.152063 +.1695417,.1442388,1.933484,.1436127,1.933484 +.2220538,.1776789,3.597418,.1762155,3.597418 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.3433058,.2491663,6.152063,.2449511,6.152063 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.064289,.0594801,1.152063,.0594202,1.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.2220538,.1776789,3.597418,.1762155,3.597418 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.0084856,.008393,.1520631,.0083928,.1520631 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.2549821,-.3684383,-2.175805,-.3602484,-2.175805 +.0377213,.0361543,.488129,.0361435,.488129 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.4689574,.317137,7.597418,.309191,7.597418 +-.3645199,-.7836041,-3.62116,-.7120315,-3.62116 +.2875024,.2171855,5.152063,.2143638,5.152063 +-.0658337,-.0718597,-.9572263,-.0717679,-.9572263 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.0084856,.008393,.1520631,.0083928,.1520631 +.1200924,.1047548,2.152063,.1044296,2.152063 +.3991092,.2791307,7.152063,.2732706,7.152063 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.2549821,-.3684383,-2.175805,-.3602484,-2.175805 +-.0248497,-.0256698,-.4025816,-.0256653,-.4025816 +.3991092,.2791307,7.152063,.2732706,7.152063 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.2033848,-.2866024,-2.957226,-.281059,-2.957226 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.1941104,-.2631102,-2.511871,-.259097,-2.511871 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.2033848,-.2866024,-2.957226,-.281059,-2.957226 +-.1812069,-.235488,-2.066516,-.2328148,-2.066516 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +1.40357,.6492903,25.15206,.5891758,25.15206 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +.2316991,.1828133,4.152063,.1811134,4.152063 +.0084856,.008393,.1520631,.0083928,.1520631 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +-.1346093,-.1642733,-1.957226,-.1631924,-1.957226 +.4241073,.3002126,5.488129,.2943222,5.488129 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1346093,-.1642733,-1.957226,-.1631924,-1.957226 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +-.0625284,-.0672083,-.6211604,-.06715,-.6211604 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +.344916,.2587896,3.933484,.2552638,3.933484 +.0965872,.0882683,.8241949,.0881491,.8241949 +-.1168332,-.1371468,-1.511871,-.1365612,-1.511871 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +-.2033848,-.2866024,-2.957226,-.281059,-2.957226 +.0084856,.008393,.1520631,.0083928,.1520631 +-.3263345,-.8539706,-5.847937,-.7352132,-5.847937 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +-.0658337,-.0718597,-.9572263,-.0717679,-.9572263 +-.2717533,-.486225,-4.402582,-.4598424,-4.402582 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1346093,-.1642733,-1.957226,-.1631924,-1.957226 +.0084856,.008393,.1520631,.0083928,.1520631 +-.2033848,-.2866024,-2.957226,-.281059,-2.957226 +-.2713876,-.4505308,-3.511871,-.4318017,-3.511871 +-.1377923,-.1625678,-1.175805,-.1618294,-1.175805 +-.0658337,-.0718597,-.9572263,-.0717679,-.9572263 +-.2717533,-.486225,-4.402582,-.4598424,-4.402582 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.2713876,-.4505308,-3.511871,-.4318017,-3.511871 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +-.1168332,-.1371468,-1.511871,-.1365612,-1.511871 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +.064289,.0594801,1.152063,.0594202,1.152063 +-.2717533,-.486225,-4.402582,-.4598424,-4.402582 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.2092683,.1702567,3.042774,.1690549,3.042774 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.0058326,-.0058712,-.0665157,-.0058712,-.0665157 +-.2033848,-.2866024,-2.957226,-.281059,-2.957226 +-.3263345,-.8539706,-5.847937,-.7352132,-5.847937 +.2316991,.1828133,4.152063,.1811134,4.152063 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.0084856,.008393,.1520631,.0083928,.1520631 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.1695417,.1442388,1.933484,.1436127,1.933484 +.2316991,.1828133,4.152063,.1811134,4.152063 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.2717533,-.486225,-4.402582,-.4598424,-4.402582 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.064289,.0594801,1.152063,.0594202,1.152063 +.2875024,.2171855,5.152063,.2143638,5.152063 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.0084856,.008393,.1520631,.0083928,.1520631 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1941104,-.2631102,-2.511871,-.259097,-2.511871 +.3991092,.2791307,7.152063,.2732706,7.152063 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.0084856,.008393,.1520631,.0083928,.1520631 +.2875024,.2171855,5.152063,.2143638,5.152063 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1013791,-.1130495,-.7304498,-.1128261,-.7304498 +-.1377923,-.1625678,-1.175805,-.1618294,-1.175805 +.064289,.0594801,1.152063,.0594202,1.152063 +-.1812069,-.235488,-2.066516,-.2328148,-2.066516 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.2875024,.2171855,5.152063,.2143638,5.152063 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.3433058,.2491663,6.152063,.2449511,6.152063 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.0084856,.008393,.1520631,.0083928,.1520631 +.064289,.0594801,1.152063,.0594202,1.152063 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.1377923,-.1625678,-1.175805,-.1618294,-1.175805 +.0377213,.0361543,.488129,.0361435,.488129 +.1758957,.1455577,3.152063,.1446918,3.152063 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.0029418,.0029313,.0427737,.0029313,.0427737 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.2316991,.1828133,4.152063,.1811134,4.152063 +.5665193,.3595589,10.15206,.347465,10.15206 +-.1631922,-.2025416,-1.62116,-.200975,-1.62116 +.064289,.0594801,1.152063,.0594202,1.152063 +-.1812069,-.235488,-2.066516,-.2328148,-2.066516 +-.268894,-.4279774,-3.066516,-.4129501,-3.066516 +.0084856,.008393,.1520631,.0083928,.1520631 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +-.2721603,-.4697121,-3.957226,-.4471826,-3.957226 +.678126,.4071116,12.15206,.3899685,12.15206 +.2394631,.1945652,2.37884,.1931742,2.37884 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.1200924,.1047548,2.152063,.1044296,2.152063 +.0084856,.008393,.1520631,.0083928,.1520631 +.1404928,.1212359,2.042774,.1207979,2.042774 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.0717173,.0661602,1.042774,.0660885,1.042774 +.1922757,.1595985,2.488129,.1586793,2.488129 +.5107159,.3341175,9.152063,.324298,9.152063 +-.0935197,-.1052514,-1.066516,-.1050068,-1.066516 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1631922,-.2025416,-1.62116,-.200975,-1.62116 +-.2033848,-.2866024,-2.957226,-.281059,-2.957226 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.1758957,.1455577,3.152063,.1446918,3.152063 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.064289,.0594801,1.152063,.0594202,1.152063 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.0625284,-.0672083,-.6211604,-.06715,-.6211604 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +.0084856,.008393,.1520631,.0083928,.1520631 +.0377213,.0361543,.488129,.0361435,.488129 +.2695529,.2109465,3.488129,.2088481,3.488129 +.1758957,.1455577,3.152063,.1446918,3.152063 +-.3263345,-.8539706,-5.847937,-.7352132,-5.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.0717173,.0661602,1.042774,.0660885,1.042774 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +.1758957,.1455577,3.152063,.1446918,3.152063 +.064289,.0594801,1.152063,.0594202,1.152063 +-.1168332,-.1371468,-1.511871,-.1365612,-1.511871 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1346093,-.1642733,-1.957226,-.1631924,-1.957226 +.2695529,.2109465,3.488129,.2088481,3.488129 +.2316991,.1828133,4.152063,.1811134,4.152063 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.3263345,-.8539706,-5.847937,-.7352132,-5.847937 +1.385675,.7078991,11.82419,.6573504,11.82419 +.1758957,.1455577,3.152063,.1446918,3.152063 +.4549125,.3073705,8.152063,.2996354,8.152063 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +.3433058,.2491663,6.152063,.2449511,6.152063 +.064289,.0594801,1.152063,.0594202,1.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +1.012946,.5301469,18.15206,.4948412,18.15206 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.0084856,.008393,.1520631,.0083928,.1520631 +.3991092,.2791307,7.152063,.2732706,7.152063 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +1.291963,.6172617,23.15206,.5645132,23.15206 +1.653554,.7368513,24.04277,.6623362,24.04277 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.2717533,-.486225,-4.402582,-.4598424,-4.402582 +.1758957,.1455577,3.152063,.1446918,3.152063 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +.0368762,.0352675,.5974184,.0352558,.5974184 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.4549125,.3073705,8.152063,.2996354,8.152063 +.2875024,.2171855,5.152063,.2143638,5.152063 +-.1631922,-.2025416,-1.62116,-.200975,-1.62116 +.0084856,.008393,.1520631,.0083928,.1520631 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.5665193,.3595589,10.15206,.347465,10.15206 +.0084856,.008393,.1520631,.0083928,.1520631 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.5925709,.4046466,4.26955,.3949974,4.26955 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.2033848,-.2866024,-2.957226,-.281059,-2.957226 +-.3645199,-.7836041,-3.62116,-.7120315,-3.62116 +-.1941104,-.2631102,-2.511871,-.259097,-2.511871 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.3263345,-.8539706,-5.847937,-.7352132,-5.847937 +.064289,.0594801,1.152063,.0594202,1.152063 +.1758957,.1455577,3.152063,.1446918,3.152063 +.0084856,.008393,.1520631,.0083928,.1520631 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1346093,-.1642733,-1.957226,-.1631924,-1.957226 +.0368762,.0352675,.5974184,.0352558,.5974184 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.039556,-.0415314,-.511871,-.041515,-.511871 +-.1346093,-.1642733,-1.957226,-.1631924,-1.957226 +-.0658337,-.0718597,-.9572263,-.0717679,-.9572263 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +.1200924,.1047548,2.152063,.1044296,2.152063 +.0377213,.0361543,.488129,.0361435,.488129 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1168332,-.1371468,-1.511871,-.1365612,-1.511871 +.1603279,.1352277,2.597418,.1345765,2.597418 +.2875024,.2171855,5.152063,.2143638,5.152063 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.1941104,-.2631102,-2.511871,-.259097,-2.511871 +.4072315,.2857901,6.597418,.2799032,6.597418 +-.1941104,-.2631102,-2.511871,-.259097,-2.511871 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.1758957,.1455577,3.152063,.1446918,3.152063 +.8455361,.4717378,15.15206,.4459912,15.15206 +-.2713876,-.4505308,-3.511871,-.4318017,-3.511871 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.0717173,.0661602,1.042774,.0660885,1.042774 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1812069,-.235488,-2.066516,-.2328148,-2.066516 +.0084856,.008393,.1520631,.0083928,.1520631 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +-.1812069,-.235488,-2.066516,-.2328148,-2.066516 +.0377213,.0361543,.488129,.0361435,.488129 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.064289,.0594801,1.152063,.0594202,1.152063 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +.1758957,.1455577,3.152063,.1446918,3.152063 +.2316991,.1828133,4.152063,.1811134,4.152063 +-.2033848,-.2866024,-2.957226,-.281059,-2.957226 +.2220538,.1776789,3.597418,.1762155,3.597418 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.8455361,.4717378,15.15206,.4459912,15.15206 +-.2717533,-.486225,-4.402582,-.4598424,-4.402582 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.0058326,-.0058712,-.0665157,-.0058712,-.0665157 +-.1377923,-.1625678,-1.175805,-.1618294,-1.175805 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.0084856,.008393,.1520631,.0083928,.1520631 +-.1812069,-.235488,-2.066516,-.2328148,-2.066516 +.5107159,.3341175,9.152063,.324298,9.152063 +.3433058,.2491663,6.152063,.2449511,6.152063 +.0368762,.0352675,.5974184,.0352558,.5974184 +.0084856,.008393,.1520631,.0083928,.1520631 +-.2713876,-.4505308,-3.511871,-.4318017,-3.511871 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.3263345,-.8539706,-5.847937,-.7352132,-5.847937 +-.2549821,-.3684383,-2.175805,-.3602484,-2.175805 +-.0658337,-.0718597,-.9572263,-.0717679,-.9572263 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.3433058,.2491663,6.152063,.2449511,6.152063 +-.1346093,-.1642733,-1.957226,-.1631924,-1.957226 +-.1941104,-.2631102,-2.511871,-.259097,-2.511871 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +.5107159,.3341175,9.152063,.324298,9.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.3263345,-.8539706,-5.847937,-.7352132,-5.847937 +.0084856,.008393,.1520631,.0083928,.1520631 +.0084856,.008393,.1520631,.0083928,.1520631 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.0717173,.0661602,1.042774,.0660885,1.042774 +-.0658337,-.0718597,-.9572263,-.0717679,-.9572263 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1346093,-.1642733,-1.957226,-.1631924,-1.957226 +.0965872,.0882683,.8241949,.0881491,.8241949 +-.2717533,-.486225,-4.402582,-.4598424,-4.402582 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.2316991,.1828133,4.152063,.1811134,4.152063 +-.2100274,-.3068264,-3.402582,-.2996006,-3.402582 +-.1346093,-.1642733,-1.957226,-.1631924,-1.957226 +-.039556,-.0415314,-.511871,-.041515,-.511871 +.0084856,.008393,.1520631,.0083928,.1520631 +-.2713876,-.4505308,-3.511871,-.4318017,-3.511871 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +.2316991,.1828133,4.152063,.1811134,4.152063 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.1941104,-.2631102,-2.511871,-.259097,-2.511871 +-.268894,-.4279774,-3.066516,-.4129501,-3.066516 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.0865756,-.0979688,-1.402582,-.0977197,-1.402582 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.0084856,.008393,.1520631,.0083928,.1520631 +.0084856,.008393,.1520631,.0083928,.1520631 +.0084856,.008393,.1520631,.0083928,.1520631 +.2316991,.1828133,4.152063,.1811134,4.152063 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.2713876,-.4505308,-3.511871,-.4318017,-3.511871 +.0368762,.0352675,.5974184,.0352558,.5974184 +.7897327,.4509728,14.15206,.4282142,14.15206 +.0084856,.008393,.1520631,.0083928,.1520631 +.2880172,.2334572,1.714906,.2317498,1.714906 +.1404928,.1212359,2.042774,.1207979,2.042774 +.1758957,.1455577,3.152063,.1446918,3.152063 +.0374109,.0361284,.2695502,.0361211,.2695502 +.064289,.0594801,1.152063,.0594202,1.152063 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +.5653462,.385091,4.824195,.3757893,4.824195 +.3991092,.2791307,7.152063,.2732706,7.152063 +-.0248497,-.0256698,-.4025816,-.0256653,-.4025816 +-.0248497,-.0256698,-.4025816,-.0256653,-.4025816 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.039556,-.0415314,-.511871,-.041515,-.511871 +.7897327,.4509728,14.15206,.4282142,14.15206 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +.1758957,.1455577,3.152063,.1446918,3.152063 +.2875024,.2171855,5.152063,.2143638,5.152063 +1.459373,.6647973,26.15206,.6009349,26.15206 +-.0625284,-.0672083,-.6211604,-.06715,-.6211604 +-.0248497,-.0256698,-.4025816,-.0256653,-.4025816 +-.2705312,-.50059,-4.847937,-.4703354,-4.847937 +-.2717533,-.486225,-4.402582,-.4598424,-4.402582 +-.1812069,-.235488,-2.066516,-.2328148,-2.066516 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.1589245,-.2079412,-2.847937,-.2054576,-2.847937 +-.1941104,-.2631102,-2.511871,-.259097,-2.511871 +-.1631922,-.2025416,-1.62116,-.200975,-1.62116 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +.1200924,.1047548,2.152063,.1044296,2.152063 +-.268894,-.4279774,-3.066516,-.4129501,-3.066516 +.0029418,.0029313,.0427737,.0029313,.0427737 +-.0248497,-.0256698,-.4025816,-.0256653,-.4025816 +-.1941104,-.2631102,-2.511871,-.259097,-2.511871 +.064289,.0594801,1.152063,.0594202,1.152063 +-.3263345,-.8539706,-5.847937,-.7352132,-5.847937 +.064289,.0594801,1.152063,.0594202,1.152063 +-.1483015,-.187626,-2.402582,-.1859072,-2.402582 +-.0473177,-.0505508,-.8479369,-.050514,-.8479369 +-.1031211,-.120682,-1.847937,-.120186,-1.847937 +-.0206026,-.0210504,-.1758051,-.0210488,-.1758051 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.0058326,-.0058712,-.0665157,-.0058712,-.0665157 +-.2147278,-.3244199,-3.847937,-.3153918,-3.847937 +-.2323671,-.3101193,-1.562363,-.3058547,-1.562363 +-.0828702,-.0917059,-.8984293,-.0915492,-.8984293 +-.1897336,-.2532259,-2.343785,-.2497431,-2.343785 +-.1546315,-.1883941,-1.453074,-.1871749,-1.453074 +.3023081,.2300153,4.21086,.2271767,4.21086 +1.307403,.642112,18.21086,.5910361,18.21086 +.6612704,.4108095,9.21086,.3956947,9.21086 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.1897336,-.2532259,-2.343785,-.2497431,-2.343785 +-.2706854,-.4424603,-3.343785,-.4251429,-3.343785 +.0151382,.0148698,.2108601,.014869,.2108601 +.7330629,.4409489,10.21086,.422518,10.21086 +-.2502402,-.3542343,-2.007719,-.3472027,-2.007719 +.1340736,.1171437,1.656215,.1167887,1.656215 +.0582021,.0549267,.546926,.054896,.546926 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.1340736,.1171437,1.656215,.1167887,1.656215 +-.0836392,-.0911419,-.5623633,-.0910299,-.5623633 +.7621819,.5085961,3.328347,.4949848,3.328347 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +.2959773,.2280665,3.656215,.2255045,3.656215 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.0751906,.0709566,.3283472,.0709169,.3283472 +.3741006,.2713932,5.21086,.2667892,5.21086 +-.1897336,-.2532259,-2.343785,-.2497431,-2.343785 +.0650888,.061425,.4376366,.0613907,.4376366 +-.2673483,-.4183992,-2.898429,-.4047313,-2.898429 +.0869306,.0790553,1.21086,.0789366,1.21086 +-.2029782,-.2533981,-1.117008,-.2513312,-1.117008 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.1751093,-.2237572,-1.898429,-.2215315,-1.898429 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.2323671,-.3101193,-1.562363,-.3058547,-1.562363 +-.0836392,-.0911419,-.5623633,-.0910299,-.5623633 +.2305156,.1848784,3.21086,.1833871,3.21086 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.1016078,.0918079,1.101571,.0916507,1.101571 +.1587231,.1350213,2.21086,.1344345,2.21086 +.0093688,.0092731,.1015707,.009273,.1015707 +.123677,.1107268,.9922814,.1105013,.9922814 +.2305156,.1848784,3.21086,.1833871,3.21086 +-.3810951,-.7192875,-2.562363,-.6731001,-2.562363 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +.232916,.2006459,.7737026,.199904,.7737026 +-.0212622,-.0216729,-.1170081,-.0216716,-.1170081 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.2305156,.1848784,3.21086,.1833871,3.21086 +-.1256011,-.1451715,-1.007719,-.1446654,-1.007719 +.5238857,.3775982,2.882992,.370934,2.882992 +.1587231,.1350213,2.21086,.1344345,2.21086 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +.0151382,.0148698,.2108601,.014869,.2108601 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +.0751906,.0709566,.3283472,.0709169,.3283472 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +-.000962,-.000963,-.0077187,-.000963,-.0077187 +-.0836392,-.0911419,-.5623633,-.0910299,-.5623633 +-.367465,-.775436,-3.453074,-.7077873,-3.453074 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +.6612704,.4108095,9.21086,.3956947,9.21086 +-.1751093,-.2237572,-1.898429,-.2215315,-1.898429 +.0869306,.0790553,1.21086,.0789366,1.21086 +-.0836392,-.0911419,-.5623633,-.0910299,-.5623633 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.1751093,-.2237572,-1.898429,-.2215315,-1.898429 +.991179,.6123406,4.328347,.5892943,4.328347 +-.1897336,-.2532259,-2.343785,-.2497431,-2.343785 +-.1546315,-.1883941,-1.453074,-.1871749,-1.453074 +.0151382,.0148698,.2108601,.014869,.2108601 +-.1546315,-.1883941,-1.453074,-.1871749,-1.453074 +.0151382,.0148698,.2108601,.014869,.2108601 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.2673483,-.4183992,-2.898429,-.4047313,-2.898429 +-.1546315,-.1883941,-1.453074,-.1871749,-1.453074 +.0869306,.0790553,1.21086,.0789366,1.21086 +.2305156,.1848784,3.21086,.1833871,3.21086 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +.0093688,.0092731,.1015707,.009273,.1015707 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.3769291,.2755397,4.656216,.2710823,4.656216 +.1340736,.1171437,1.656215,.1167887,1.656215 +.0869306,.0790553,1.21086,.0789366,1.21086 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.0836392,-.0911419,-.5623633,-.0910299,-.5623633 +.0151382,.0148698,.2108601,.014869,.2108601 +.0650888,.061425,.4376366,.0613907,.4376366 +.2305156,.1848784,3.21086,.1833871,3.21086 +-.1546315,-.1883941,-1.453074,-.1871749,-1.453074 +.0151382,.0148698,.2108601,.014869,.2108601 +.0869306,.0790553,1.21086,.0789366,1.21086 +-.2706854,-.4424603,-3.343785,-.4251429,-3.343785 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +.1604538,.1416409,.882992,.1412745,.882992 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.0212622,-.0216729,-.1170081,-.0216716,-.1170081 +-.1256011,-.1451715,-1.007719,-.1446654,-1.007719 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.1087818,-.1257334,-1.343785,-.125295,-1.343785 +.0650888,.061425,.4376366,.0613907,.4376366 +-.2029782,-.2533981,-1.117008,-.2513312,-1.117008 +.0869306,.0790553,1.21086,.0789366,1.21086 +-.0482147,-.050872,-.4530739,-.0508476,-.4530739 +.1587231,.1350213,2.21086,.1344345,2.21086 +.2305156,.1848784,3.21086,.1833871,3.21086 +.0151382,.0148698,.2108601,.014869,.2108601 +.1604538,.1416409,.882992,.1412745,.882992 +.0151382,.0148698,.2108601,.014869,.2108601 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.3741006,.2713932,5.21086,.2667892,5.21086 +.0582021,.0549267,.546926,.054896,.546926 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.1256011,-.1451715,-1.007719,-.1446654,-1.007719 +.0151382,.0148698,.2108601,.014869,.2108601 +-.1546315,-.1883941,-1.453074,-.1871749,-1.453074 +.1646189,.1418189,1.546926,.1412949,1.546926 +.0151382,.0148698,.2108601,.014869,.2108601 +.1016078,.0918079,1.101571,.0916507,1.101571 +-.000962,-.000963,-.0077187,-.000963,-.0077187 +-.000962,-.000963,-.0077187,-.000963,-.0077187 +-.3595873,-.7958529,-3.898429,-.7179135,-3.898429 +.3729551,.2821995,2.992281,.2785753,2.992281 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +.0151382,.0148698,.2108601,.014869,.2108601 +.0151382,.0148698,.2108601,.014869,.2108601 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.1897336,-.2532259,-2.343785,-.2497431,-2.343785 +-.0836392,-.0911419,-.5623633,-.0910299,-.5623633 +.3023081,.2300153,4.21086,.2271767,4.21086 +-.0836392,-.0911419,-.5623633,-.0910299,-.5623633 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +-.3828036,-.6256999,-1.671653,-.6012149,-1.671653 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.5176855,.3454629,7.21086,.3362196,7.21086 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +.0151382,.0148698,.2108601,.014869,.2108601 +-.0828702,-.0917059,-.8984293,-.0915492,-.8984293 +-.3595873,-.7958529,-3.898429,-.7179135,-3.898429 +.7330629,.4409489,10.21086,.422518,10.21086 +-.3828036,-.6256999,-1.671653,-.6012149,-1.671653 +.3741006,.2713932,5.21086,.2667892,5.21086 +-.2673483,-.4183992,-2.898429,-.4047313,-2.898429 +.0151382,.0148698,.2108601,.014869,.2108601 +-.3438242,-.8272628,-4.78914,-.7298161,-4.78914 +-.1546315,-.1883941,-1.453074,-.1871749,-1.453074 +-.0212622,-.0216729,-.1170081,-.0216716,-.1170081 +.3741006,.2713932,5.21086,.2667892,5.21086 +-.3595873,-.7958529,-3.898429,-.7179135,-3.898429 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +.5331848,.389747,2.328347,.3834404,2.328347 +.5331848,.389747,2.328347,.3834404,2.328347 +.4578809,.3191396,5.656216,.3123125,5.656216 +-.2502402,-.3542343,-2.007719,-.3472027,-2.007719 +.3741006,.2713932,5.21086,.2667892,5.21086 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.1897336,-.2532259,-2.343785,-.2497431,-2.343785 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.123677,.1107268,.9922814,.1105013,.9922814 +.6612704,.4108095,9.21086,.3956947,9.21086 +-.02783,-.0287708,-.3437845,-.0287655,-.3437845 +-.2673483,-.4183992,-2.898429,-.4047313,-2.898429 +.1587231,.1350213,2.21086,.1344345,2.21086 +-.1538065,-.1777664,-.6716527,-.177147,-.6716527 +-.1087818,-.1257334,-1.343785,-.125295,-1.343785 +.3023081,.2300153,4.21086,.2271767,4.21086 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.0482147,-.050872,-.4530739,-.0508476,-.4530739 +-.2706854,-.4424603,-3.343785,-.4251429,-3.343785 +.7330629,.4409489,10.21086,.422518,10.21086 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +.0869306,.0790553,1.21086,.0789366,1.21086 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.1538065,-.1777664,-.6716527,-.177147,-.6716527 +.1587231,.1350213,2.21086,.1344345,2.21086 +-.0836392,-.0911419,-.5623633,-.0910299,-.5623633 +-.3748792,-.7504815,-3.007719,-.6934423,-3.007719 +-.1897336,-.2532259,-2.343785,-.2497431,-2.343785 +.3023081,.2300153,4.21086,.2271767,4.21086 +.1604538,.1416409,.882992,.1412745,.882992 +-.1538065,-.1777664,-.6716527,-.177147,-.6716527 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +.0582021,.0549267,.546926,.054896,.546926 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +.2138168,.1804787,1.437637,.1796173,1.437637 +-.2706854,-.4424603,-3.343785,-.4251429,-3.343785 +-.1751093,-.2237572,-1.898429,-.2215315,-1.898429 +.0869306,.0790553,1.21086,.0789366,1.21086 +-.0836392,-.0911419,-.5623633,-.0910299,-.5623633 +.4975942,.3521915,3.992281,.3452767,3.992281 +.1587231,.1350213,2.21086,.1344345,2.21086 +.5238857,.3775982,2.882992,.370934,2.882992 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.5112727,.364731,3.437637,.3578881,3.437637 +-.2706854,-.4424603,-3.343785,-.4251429,-3.343785 +-.1751093,-.2237572,-1.898429,-.2215315,-1.898429 +-.1751093,-.2237572,-1.898429,-.2215315,-1.898429 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +-.1538065,-.1777664,-.6716527,-.177147,-.6716527 +-.0212622,-.0216729,-.1170081,-.0216716,-.1170081 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +.2305156,.1848784,3.21086,.1833871,3.21086 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +-.1897336,-.2532259,-2.343785,-.2497431,-2.343785 +-.2706854,-.4424603,-3.343785,-.4251429,-3.343785 +.3023081,.2300153,4.21086,.2271767,4.21086 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.0093688,.0092731,.1015707,.009273,.1015707 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +.0582021,.0549267,.546926,.054896,.546926 +.1340736,.1171437,1.656215,.1167887,1.656215 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +.1646189,.1418189,1.546926,.1412949,1.546926 +-.367465,-.775436,-3.453074,-.7077873,-3.453074 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.6600007,.4404215,4.437637,.4286361,4.437637 +-.1751093,-.2237572,-1.898429,-.2215315,-1.898429 +-.2323671,-.3101193,-1.562363,-.3058547,-1.562363 +.2860859,.2238617,3.101571,.221633,3.101571 +.2710357,.216176,2.546926,.2143441,2.546926 +.0151382,.0148698,.2108601,.014869,.2108601 +-.1256011,-.1451715,-1.007719,-.1446654,-1.007719 +-.3438242,-.8272628,-4.78914,-.7298161,-4.78914 +-.0828702,-.0917059,-.8984293,-.0915492,-.8984293 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +.0151382,.0148698,.2108601,.014869,.2108601 +.5176855,.3454629,7.21086,.3362196,7.21086 +-.1546315,-.1883941,-1.453074,-.1871749,-1.453074 +-.000962,-.000963,-.0077187,-.000963,-.0077187 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +-.2673483,-.4183992,-2.898429,-.4047313,-2.898429 +-.1751093,-.2237572,-1.898429,-.2215315,-1.898429 +.0650888,.061425,.4376366,.0613907,.4376366 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +.0869306,.0790553,1.21086,.0789366,1.21086 +-.1897336,-.2532259,-2.343785,-.2497431,-2.343785 +.3625448,.2793542,2.437637,.2762155,2.437637 +-.2029782,-.2533981,-1.117008,-.2513312,-1.117008 +.2138168,.1804787,1.437637,.1796173,1.437637 +-.3748792,-.7504815,-3.007719,-.6934423,-3.007719 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.0482147,-.050872,-.4530739,-.0508476,-.4530739 +-.1751093,-.2237572,-1.898429,-.2215315,-1.898429 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +.0151382,.0148698,.2108601,.014869,.2108601 +.0151382,.0148698,.2108601,.014869,.2108601 +-.2502402,-.3542343,-2.007719,-.3472027,-2.007719 +-.1751093,-.2237572,-1.898429,-.2215315,-1.898429 +-.3828036,-.6256999,-1.671653,-.6012149,-1.671653 +.0151382,.0148698,.2108601,.014869,.2108601 +.0151382,.0148698,.2108601,.014869,.2108601 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.3595873,-.7958529,-3.898429,-.7179135,-3.898429 +-.1087818,-.1257334,-1.343785,-.125295,-1.343785 +.0151382,.0148698,.2108601,.014869,.2108601 +.0151382,.0148698,.2108601,.014869,.2108601 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +.0151382,.0148698,.2108601,.014869,.2108601 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.000962,-.000963,-.0077187,-.000963,-.0077187 +.2150255,.1757395,2.656215,.1745529,2.656215 +-.1751093,-.2237572,-1.898429,-.2215315,-1.898429 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +.0093688,.0092731,.1015707,.009273,.1015707 +-.3748792,-.7504815,-3.007719,-.6934423,-3.007719 +.1587231,.1350213,2.21086,.1344345,2.21086 +.1587231,.1350213,2.21086,.1344345,2.21086 +-.2673483,-.4183992,-2.898429,-.4047313,-2.898429 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +-.2706854,-.4424603,-3.343785,-.4251429,-3.343785 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.1538065,-.1777664,-.6716527,-.177147,-.6716527 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.1087818,-.1257334,-1.343785,-.125295,-1.343785 +-.1256011,-.1451715,-1.007719,-.1446654,-1.007719 +-.1256011,-.1451715,-1.007719,-.1446654,-1.007719 +.0869306,.0790553,1.21086,.0789366,1.21086 +-.1897336,-.2532259,-2.343785,-.2497431,-2.343785 +-.0836392,-.0911419,-.5623633,-.0910299,-.5623633 +1.163818,.5970087,16.21086,.5548727,16.21086 +-.0828702,-.0917059,-.8984293,-.0915492,-.8984293 +-.1897336,-.2532259,-2.343785,-.2497431,-2.343785 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.000962,-.000963,-.0077187,-.000963,-.0077187 +-.1546315,-.1883941,-1.453074,-.1871749,-1.453074 +1.666365,.7445231,23.21086,.6696882,23.21086 +-.1897336,-.2532259,-2.343785,-.2497431,-2.343785 +-.2502402,-.3542343,-2.007719,-.3472027,-2.007719 +.5112727,.364731,3.437637,.3578881,3.437637 +-.1087818,-.1257334,-1.343785,-.125295,-1.343785 +.5331848,.389747,2.328347,.3834404,2.328347 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +.3625448,.2793542,2.437637,.2762155,2.437637 +-.3595873,-.7958529,-3.898429,-.7179135,-3.898429 +-.0482147,-.050872,-.4530739,-.0508476,-.4530739 +.0151382,.0148698,.2108601,.014869,.2108601 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +.9484404,.5235284,13.21086,.4939418,13.21086 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +.3729551,.2821995,2.992281,.2785753,2.992281 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +.1646189,.1418189,1.546926,.1412949,1.546926 +.0869306,.0790553,1.21086,.0789366,1.21086 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +-.02783,-.0287708,-.3437845,-.0287655,-.3437845 +.1587231,.1350213,2.21086,.1344345,2.21086 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.2305156,.1848784,3.21086,.1833871,3.21086 +-.1897336,-.2532259,-2.343785,-.2497431,-2.343785 +-.1087818,-.1257334,-1.343785,-.125295,-1.343785 +.0869306,.0790553,1.21086,.0789366,1.21086 +-.2706854,-.4424603,-3.343785,-.4251429,-3.343785 +.0869306,.0790553,1.21086,.0789366,1.21086 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.5176855,.3454629,7.21086,.3362196,7.21086 +-.1087818,-.1257334,-1.343785,-.125295,-1.343785 +-.0482147,-.050872,-.4530739,-.0508476,-.4530739 +.2305156,.1848784,3.21086,.1833871,3.21086 +-.2706854,-.4424603,-3.343785,-.4251429,-3.343785 +.2305156,.1848784,3.21086,.1833871,3.21086 +-.1897336,-.2532259,-2.343785,-.2497431,-2.343785 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +.0869306,.0790553,1.21086,.0789366,1.21086 +-.3438242,-.8272628,-4.78914,-.7298161,-4.78914 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.0482147,-.050872,-.4530739,-.0508476,-.4530739 +-.1897336,-.2532259,-2.343785,-.2497431,-2.343785 +.5112727,.364731,3.437637,.3578881,3.437637 +.7621819,.5085961,3.328347,.4949848,3.328347 +.3023081,.2300153,4.21086,.2271767,4.21086 +.0151382,.0148698,.2108601,.014869,.2108601 +-.0212622,-.0216729,-.1170081,-.0216716,-.1170081 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.0482147,-.050872,-.4530739,-.0508476,-.4530739 +.6612704,.4108095,9.21086,.3956947,9.21086 +.3741006,.2713932,5.21086,.2667892,5.21086 +.1587231,.1350213,2.21086,.1344345,2.21086 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.000962,-.000963,-.0077187,-.000963,-.0077187 +-.1256011,-.1451715,-1.007719,-.1446654,-1.007719 +-.1256011,-.1451715,-1.007719,-.1446654,-1.007719 +.0869306,.0790553,1.21086,.0789366,1.21086 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +.0869306,.0790553,1.21086,.0789366,1.21086 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.1751093,-.2237572,-1.898429,-.2215315,-1.898429 +.1604538,.1416409,.882992,.1412745,.882992 +.4838693,.3403586,4.546926,.3334374,4.546926 +.2305156,.1848784,3.21086,.1833871,3.21086 +-.1256011,-.1451715,-1.007719,-.1446654,-1.007719 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.3438242,-.8272628,-4.78914,-.7298161,-4.78914 +.1587231,.1350213,2.21086,.1344345,2.21086 +.1587231,.1350213,2.21086,.1344345,2.21086 +.7330629,.4409489,10.21086,.422518,10.21086 +-.1256011,-.1451715,-1.007719,-.1446654,-1.007719 +.1587231,.1350213,2.21086,.1344345,2.21086 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.445893,.3097042,6.21086,.3029525,6.21086 +.3023081,.2300153,4.21086,.2271767,4.21086 +-.1256011,-.1451715,-1.007719,-.1446654,-1.007719 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +.123677,.1107268,.9922814,.1105013,.9922814 +-.0836392,-.0911419,-.5623633,-.0910299,-.5623633 +1.092025,.5733635,15.21086,.5355382,15.21086 +-.3595873,-.7958529,-3.898429,-.7179135,-3.898429 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.0869306,.0790553,1.21086,.0789366,1.21086 +.3023081,.2300153,4.21086,.2271767,4.21086 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +.589478,.3790623,8.21086,.3670201,8.21086 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.1751093,-.2237572,-1.898429,-.2215315,-1.898429 +-.1897336,-.2532259,-2.343785,-.2497431,-2.343785 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.1587231,.1350213,2.21086,.1344345,2.21086 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.0869306,.0790553,1.21086,.0789366,1.21086 +.1587231,.1350213,2.21086,.1344345,2.21086 +.8766479,.4971597,12.21086,.4714706,12.21086 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +-.02783,-.0287708,-.3437845,-.0287655,-.3437845 +-.0836392,-.0911419,-.5623633,-.0910299,-.5623633 +-.1897336,-.2532259,-2.343785,-.2497431,-2.343785 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.3810951,-.7192875,-2.562363,-.6731001,-2.562363 +.445893,.3097042,6.21086,.3029525,6.21086 +-.1256011,-.1451715,-1.007719,-.1446654,-1.007719 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.2502402,-.3542343,-2.007719,-.3472027,-2.007719 +-.0212622,-.0216729,-.1170081,-.0216716,-.1170081 +.3741006,.2713932,5.21086,.2667892,5.21086 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.000962,-.000963,-.0077187,-.000963,-.0077187 +1.881743,.8003727,26.21086,.7106016,26.21086 +.3023081,.2300153,4.21086,.2271767,4.21086 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +.0869306,.0790553,1.21086,.0789366,1.21086 +.0151382,.0148698,.2108601,.014869,.2108601 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.7330629,.4409489,10.21086,.422518,10.21086 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +.0151382,.0148698,.2108601,.014869,.2108601 +.589478,.3790623,8.21086,.3670201,8.21086 +1.881743,.8003727,26.21086,.7106016,26.21086 +1.450988,.6846744,20.21086,.6243032,20.21086 +.0650888,.061425,.4376366,.0613907,.4376366 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +-.0836392,-.0911419,-.5623633,-.0910299,-.5623633 +-.2706854,-.4424603,-3.343785,-.4251429,-3.343785 +-.3748792,-.7504815,-3.007719,-.6934423,-3.007719 +.7330629,.4409489,10.21086,.422518,10.21086 +-.0828702,-.0917059,-.8984293,-.0915492,-.8984293 +-.2673483,-.4183992,-2.898429,-.4047313,-2.898429 +.3729551,.2821995,2.992281,.2785753,2.992281 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +.3023081,.2300153,4.21086,.2271767,4.21086 +.0582021,.0549267,.546926,.054896,.546926 +.0751906,.0709566,.3283472,.0709169,.3283472 +.3741006,.2713932,5.21086,.2667892,5.21086 +.0869306,.0790553,1.21086,.0789366,1.21086 +-.3748792,-.7504815,-3.007719,-.6934423,-3.007719 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +.0650888,.061425,.4376366,.0613907,.4376366 +-.1256011,-.1451715,-1.007719,-.1446654,-1.007719 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +.0093688,.0092731,.1015707,.009273,.1015707 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +-.1546315,-.1883941,-1.453074,-.1871749,-1.453074 +-.02783,-.0287708,-.3437845,-.0287655,-.3437845 +-.1897336,-.2532259,-2.343785,-.2497431,-2.343785 +.1604538,.1416409,.882992,.1412745,.882992 +-.0836392,-.0911419,-.5623633,-.0910299,-.5623633 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.0482147,-.050872,-.4530739,-.0508476,-.4530739 +.3741006,.2713932,5.21086,.2667892,5.21086 +.0093688,.0092731,.1015707,.009273,.1015707 +-.1256011,-.1451715,-1.007719,-.1446654,-1.007719 +-.1751093,-.2237572,-1.898429,-.2215315,-1.898429 +-.0828702,-.0917059,-.8984293,-.0915492,-.8984293 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.1087818,-.1257334,-1.343785,-.125295,-1.343785 +-.1256011,-.1451715,-1.007719,-.1446654,-1.007719 +.0869306,.0790553,1.21086,.0789366,1.21086 +.1587231,.1350213,2.21086,.1344345,2.21086 +.0869306,.0790553,1.21086,.0789366,1.21086 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +.0869306,.0790553,1.21086,.0789366,1.21086 +.5176855,.3454629,7.21086,.3362196,7.21086 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.0836392,-.0911419,-.5623633,-.0910299,-.5623633 +-.1546315,-.1883941,-1.453074,-.1871749,-1.453074 +-.000962,-.000963,-.0077187,-.000963,-.0077187 +.0093688,.0092731,.1015707,.009273,.1015707 +.4838693,.3403586,4.546926,.3334374,4.546926 +-.0836392,-.0911419,-.5623633,-.0910299,-.5623633 +.123677,.1107268,.9922814,.1105013,.9922814 +.1587231,.1350213,2.21086,.1344345,2.21086 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +.0151382,.0148698,.2108601,.014869,.2108601 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.0212622,-.0216729,-.1170081,-.0216716,-.1170081 +.0151382,.0148698,.2108601,.014869,.2108601 +.0869306,.0790553,1.21086,.0789366,1.21086 +1.020233,.5488976,14.21086,.5152602,14.21086 +1.020233,.5488976,14.21086,.5152602,14.21086 +.3023081,.2300153,4.21086,.2271767,4.21086 +-.000962,-.000963,-.0077187,-.000963,-.0077187 +.1938469,.1621579,2.101571,.1613,2.101571 +-.02783,-.0287708,-.3437845,-.0287655,-.3437845 +-.3810951,-.7192875,-2.562363,-.6731001,-2.562363 +.5238857,.3775982,2.882992,.370934,2.882992 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +-.2502402,-.3542343,-2.007719,-.3472027,-2.007719 +.2305156,.1848784,3.21086,.1833871,3.21086 +-.0836392,-.0911419,-.5623633,-.0910299,-.5623633 +.2305156,.1848784,3.21086,.1833871,3.21086 +.1587231,.1350213,2.21086,.1344345,2.21086 +-.1256011,-.1451715,-1.007719,-.1446654,-1.007719 +.0151382,.0148698,.2108601,.014869,.2108601 +-.1256011,-.1451715,-1.007719,-.1446654,-1.007719 +.0151382,.0148698,.2108601,.014869,.2108601 +.1587231,.1350213,2.21086,.1344345,2.21086 +.0869306,.0790553,1.21086,.0789366,1.21086 +.2305156,.1848784,3.21086,.1833871,3.21086 +-.2673483,-.4183992,-2.898429,-.4047313,-2.898429 +-.1256011,-.1451715,-1.007719,-.1446654,-1.007719 +-.2673483,-.4183992,-2.898429,-.4047313,-2.898429 +.1340736,.1171437,1.656215,.1167887,1.656215 +.0751906,.0709566,.3283472,.0709169,.3283472 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +-.1546315,-.1883941,-1.453074,-.1871749,-1.453074 +.0869306,.0790553,1.21086,.0789366,1.21086 +-.0828702,-.0917059,-.8984293,-.0915492,-.8984293 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +-.1087818,-.1257334,-1.343785,-.125295,-1.343785 +.0869306,.0790553,1.21086,.0789366,1.21086 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +.0869306,.0790553,1.21086,.0789366,1.21086 +.0650888,.061425,.4376366,.0613907,.4376366 +-.3828036,-.6256999,-1.671653,-.6012149,-1.671653 +.589478,.3790623,8.21086,.3670201,8.21086 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.2305156,.1848784,3.21086,.1833871,3.21086 +-.000962,-.000963,-.0077187,-.000963,-.0077187 +-.2673483,-.4183992,-2.898429,-.4047313,-2.898429 +.3741006,.2713932,5.21086,.2667892,5.21086 +-.1897336,-.2532259,-2.343785,-.2497431,-2.343785 +-.1751093,-.2237572,-1.898429,-.2215315,-1.898429 +.0531218,.0501328,.6562154,.0501048,.6562154 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +.0151382,.0148698,.2108601,.014869,.2108601 +-.2706854,-.4424603,-3.343785,-.4251429,-3.343785 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +.2305156,.1848784,3.21086,.1833871,3.21086 +.0869306,.0790553,1.21086,.0789366,1.21086 +-.1538065,-.1777664,-.6716527,-.177147,-.6716527 +-.1897336,-.2532259,-2.343785,-.2497431,-2.343785 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +.0869306,.0790553,1.21086,.0789366,1.21086 +.2860859,.2238617,3.101571,.221633,3.101571 +-.2673483,-.4183992,-2.898429,-.4047313,-2.898429 +-.3516372,-.8128667,-4.343784,-.7249908,-4.343784 +.2305156,.1848784,3.21086,.1833871,3.21086 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +.2710357,.216176,2.546926,.2143441,2.546926 +-.0212622,-.0216729,-.1170081,-.0216716,-.1170081 +-.2323671,-.3101193,-1.562363,-.3058547,-1.562363 +.3741006,.2713932,5.21086,.2667892,5.21086 +.1587231,.1350213,2.21086,.1344345,2.21086 +.2305156,.1848784,3.21086,.1833871,3.21086 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.1587231,.1350213,2.21086,.1344345,2.21086 +.5388327,.3595736,6.656216,.3499527,6.656216 +.1587231,.1350213,2.21086,.1344345,2.21086 +.0869306,.0790553,1.21086,.0789366,1.21086 +.2483161,.2029448,1.992281,.2015743,1.992281 +-.1751093,-.2237572,-1.898429,-.2215315,-1.898429 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.2323671,-.3101193,-1.562363,-.3058547,-1.562363 +.3741006,.2713932,5.21086,.2667892,5.21086 +-.02783,-.0287708,-.3437845,-.0287655,-.3437845 +-.1538065,-.1777664,-.6716527,-.177147,-.6716527 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.2706854,-.4424603,-3.343785,-.4251429,-3.343785 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +.0869306,.0790553,1.21086,.0789366,1.21086 +-.2706854,-.4424603,-3.343785,-.4251429,-3.343785 +.1587231,.1350213,2.21086,.1344345,2.21086 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.2305156,.1848784,3.21086,.1833871,3.21086 +.1587231,.1350213,2.21086,.1344345,2.21086 +.0869306,.0790553,1.21086,.0789366,1.21086 +-.1546315,-.1883941,-1.453074,-.1871749,-1.453074 +.3741006,.2713932,5.21086,.2667892,5.21086 +-.0212622,-.0216729,-.1170081,-.0216716,-.1170081 +.0869306,.0790553,1.21086,.0789366,1.21086 +-.2706854,-.4424603,-3.343785,-.4251429,-3.343785 +-.1751093,-.2237572,-1.898429,-.2215315,-1.898429 +-.1897336,-.2532259,-2.343785,-.2497431,-2.343785 +.1587231,.1350213,2.21086,.1344345,2.21086 +-.2673483,-.4183992,-2.898429,-.4047313,-2.898429 +.0151382,.0148698,.2108601,.014869,.2108601 +-.1256011,-.1451715,-1.007719,-.1446654,-1.007719 +.3774525,.2816094,3.546926,.2776222,3.546926 +.8048554,.4696782,11.21086,.4477146,11.21086 +.9484404,.5235284,13.21086,.4939418,13.21086 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +-.02783,-.0287708,-.3437845,-.0287655,-.3437845 +.1587231,.1350213,2.21086,.1344345,2.21086 +-.2502402,-.3542343,-2.007719,-.3472027,-2.007719 +-.2673483,-.4183992,-2.898429,-.4047313,-2.898429 +-.1256011,-.1451715,-1.007719,-.1446654,-1.007719 +.1587231,.1350213,2.21086,.1344345,2.21086 +.3625448,.2793542,2.437637,.2762155,2.437637 +.0869306,.0790553,1.21086,.0789366,1.21086 +.445893,.3097042,6.21086,.3029525,6.21086 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +-.0836392,-.0911419,-.5623633,-.0910299,-.5623633 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.4705639,.329342,5.101571,.3224552,5.101571 +.0869306,.0790553,1.21086,.0789366,1.21086 +.2305156,.1848784,3.21086,.1833871,3.21086 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.2305156,.1848784,3.21086,.1833871,3.21086 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +-.1256011,-.1451715,-1.007719,-.1446654,-1.007719 +-.0681247,-.0718756,-.2262975,-.0718412,-.2262975 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.1587231,.1350213,2.21086,.1344345,2.21086 +-.0828702,-.0917059,-.8984293,-.0915492,-.8984293 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.2323671,-.3101193,-1.562363,-.3058547,-1.562363 +.0869306,.0790553,1.21086,.0789366,1.21086 +.0869306,.0790553,1.21086,.0789366,1.21086 +-.1256011,-.1451715,-1.007719,-.1446654,-1.007719 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.0869306,.0790553,1.21086,.0789366,1.21086 +.2305156,.1848784,3.21086,.1833871,3.21086 +.2305156,.1848784,3.21086,.1833871,3.21086 +.7056017,.4708467,3.882992,.4582465,3.882992 +-.0212622,-.0216729,-.1170081,-.0216716,-.1170081 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +1.881743,.8003727,26.21086,.7106016,26.21086 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +-.000962,-.000963,-.0077187,-.000963,-.0077187 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.4578809,.3191396,5.656216,.3123125,5.656216 +-.2610483,-.3895254,-2.453074,-.3793175,-2.453074 +.0531218,.0501328,.6562154,.0501048,.6562154 +-.0482147,-.050872,-.4530739,-.0508476,-.4530739 +-.0482147,-.050872,-.4530739,-.0508476,-.4530739 +-.0828702,-.0917059,-.8984293,-.0915492,-.8984293 +.0151382,.0148698,.2108601,.014869,.2108601 +-.0828702,-.0917059,-.8984293,-.0915492,-.8984293 +.445893,.3097042,6.21086,.3029525,6.21086 +-.0836392,-.0911419,-.5623633,-.0910299,-.5623633 +.589478,.3790623,8.21086,.3670201,8.21086 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +.1587231,.1350213,2.21086,.1344345,2.21086 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +-.2029782,-.2533981,-1.117008,-.2513312,-1.117008 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.1256011,-.1451715,-1.007719,-.1446654,-1.007719 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +.562803,.3755679,6.101571,.3655188,6.101571 +.1587231,.1350213,2.21086,.1344345,2.21086 +-.1256011,-.1451715,-1.007719,-.1446654,-1.007719 +.3023081,.2300153,4.21086,.2271767,4.21086 +.0151382,.0148698,.2108601,.014869,.2108601 +.3741006,.2713932,5.21086,.2667892,5.21086 +.3023081,.2300153,4.21086,.2271767,4.21086 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +.1340736,.1171437,1.656215,.1167887,1.656215 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.1546315,-.1883941,-1.453074,-.1871749,-1.453074 +-.2706854,-.4424603,-3.343785,-.4251429,-3.343785 +-.2610483,-.3895254,-2.453074,-.3793175,-2.453074 +2.09712,.8528964,29.21086,.7478458,29.21086 +-.3748792,-.7504815,-3.007719,-.6934423,-3.007719 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.3810951,-.7192875,-2.562363,-.6731001,-2.562363 +.1340736,.1171437,1.656215,.1167887,1.656215 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.367465,-.775436,-3.453074,-.7077873,-3.453074 +-.1256011,-.1451715,-1.007719,-.1446654,-1.007719 +-.0836392,-.0911419,-.5623633,-.0910299,-.5623633 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +.2305156,.1848784,3.21086,.1833871,3.21086 +.2305156,.1848784,3.21086,.1833871,3.21086 +-.1546315,-.1883941,-1.453074,-.1871749,-1.453074 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.3438242,-.8272628,-4.78914,-.7298161,-4.78914 +-.2706854,-.4424603,-3.343785,-.4251429,-3.343785 +-.2673483,-.4183992,-2.898429,-.4047313,-2.898429 +-.1546315,-.1883941,-1.453074,-.1871749,-1.453074 +-.2029782,-.2533981,-1.117008,-.2513312,-1.117008 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.3810951,-.7192875,-2.562363,-.6731001,-2.562363 +-.2029782,-.2533981,-1.117008,-.2513312,-1.117008 +.1587231,.1350213,2.21086,.1344345,2.21086 +.1587231,.1350213,2.21086,.1344345,2.21086 +-.0212622,-.0216729,-.1170081,-.0216716,-.1170081 +-.3846942,-.6791795,-2.117008,-.6439368,-2.117008 +.1587231,.1350213,2.21086,.1344345,2.21086 +-.2610483,-.3895254,-2.453074,-.3793175,-2.453074 +-.2610483,-.3895254,-2.453074,-.3793175,-2.453074 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +-.1256011,-.1451715,-1.007719,-.1446654,-1.007719 +-.2502402,-.3542343,-2.007719,-.3472027,-2.007719 +-.2323671,-.3101193,-1.562363,-.3058547,-1.562363 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.123677,.1107268,.9922814,.1105013,.9922814 +-.2323671,-.3101193,-1.562363,-.3058547,-1.562363 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +-.1256011,-.1451715,-1.007719,-.1446654,-1.007719 +.0531218,.0501328,.6562154,.0501048,.6562154 +.2305156,.1848784,3.21086,.1833871,3.21086 +-.3810951,-.7192875,-2.562363,-.6731001,-2.562363 +.0151382,.0148698,.2108601,.014869,.2108601 +-.1897336,-.2532259,-2.343785,-.2497431,-2.343785 +.0151382,.0148698,.2108601,.014869,.2108601 +-.1546315,-.1883941,-1.453074,-.1871749,-1.453074 +.3729551,.2821995,2.992281,.2785753,2.992281 +.3741006,.2713932,5.21086,.2667892,5.21086 +.3741006,.2713932,5.21086,.2667892,5.21086 +.0582021,.0549267,.546926,.054896,.546926 +.3769291,.2755397,4.656216,.2710823,4.656216 +.1587231,.1350213,2.21086,.1344345,2.21086 +.5176855,.3454629,7.21086,.3362196,7.21086 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +.0151382,.0148698,.2108601,.014869,.2108601 +.0151382,.0148698,.2108601,.014869,.2108601 +.0531218,.0501328,.6562154,.0501048,.6562154 +-.0212622,-.0216729,-.1170081,-.0216716,-.1170081 +.7007363,.4329274,8.656216,.4166366,8.656216 +.3041877,.2486003,1.328347,.246921,1.328347 +.2483161,.2029448,1.992281,.2015743,1.992281 +.0151382,.0148698,.2108601,.014869,.2108601 +.2138168,.1804787,1.437637,.1796173,1.437637 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +.0531218,.0501328,.6562154,.0501048,.6562154 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +-.1538065,-.1777664,-.6716527,-.177147,-.6716527 +.3023081,.2300153,4.21086,.2271767,4.21086 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +-.0212622,-.0216729,-.1170081,-.0216716,-.1170081 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +-.1897336,-.2532259,-2.343785,-.2497431,-2.343785 +-.0836392,-.0911419,-.5623633,-.0910299,-.5623633 +-.1546315,-.1883941,-1.453074,-.1871749,-1.453074 +.0093688,.0092731,.1015707,.009273,.1015707 +.123677,.1107268,.9922814,.1105013,.9922814 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.589478,.3790623,8.21086,.3670201,8.21086 +-.1897336,-.2532259,-2.343785,-.2497431,-2.343785 +-.2502402,-.3542343,-2.007719,-.3472027,-2.007719 +.1016078,.0918079,1.101571,.0916507,1.101571 +.0582021,.0549267,.546926,.054896,.546926 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.5176855,.3454629,7.21086,.3362196,7.21086 +1.80995,.7821549,25.21086,.6974062,25.21086 +-.1256011,-.1451715,-1.007719,-.1446654,-1.007719 +.2305156,.1848784,3.21086,.1833871,3.21086 +.3741006,.2713932,5.21086,.2667892,5.21086 +.0151382,.0148698,.2108601,.014869,.2108601 +.0869306,.0790553,1.21086,.0789366,1.21086 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.1587231,.1350213,2.21086,.1344345,2.21086 +.1340736,.1171437,1.656215,.1167887,1.656215 +-.2323671,-.3101193,-1.562363,-.3058547,-1.562363 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.1897336,-.2532259,-2.343785,-.2497431,-2.343785 +.2305156,.1848784,3.21086,.1833871,3.21086 +-.3846942,-.6791795,-2.117008,-.6439368,-2.117008 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +-.1751093,-.2237572,-1.898429,-.2215315,-1.898429 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +-.1751093,-.2237572,-1.898429,-.2215315,-1.898429 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.2706854,-.4424603,-3.343785,-.4251429,-3.343785 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.2305156,.1848784,3.21086,.1833871,3.21086 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +.0869306,.0790553,1.21086,.0789366,1.21086 +-.1897336,-.2532259,-2.343785,-.2497431,-2.343785 +-.1538065,-.1777664,-.6716527,-.177147,-.6716527 +.0869306,.0790553,1.21086,.0789366,1.21086 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +.3041877,.2486003,1.328347,.246921,1.328347 +-.0836392,-.0911419,-.5623633,-.0910299,-.5623633 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.0751906,.0709566,.3283472,.0709169,.3283472 +-.0482147,-.050872,-.4530739,-.0508476,-.4530739 +-.0836392,-.0911419,-.5623633,-.0910299,-.5623633 +.2710357,.216176,2.546926,.2143441,2.546926 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.3438242,-.8272628,-4.78914,-.7298161,-4.78914 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.2305156,.1848784,3.21086,.1833871,3.21086 +.0151382,.0148698,.2108601,.014869,.2108601 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +.1646189,.1418189,1.546926,.1412949,1.546926 +-.1751093,-.2237572,-1.898429,-.2215315,-1.898429 +-.1087818,-.1257334,-1.343785,-.125295,-1.343785 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +.0869306,.0790553,1.21086,.0789366,1.21086 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.2150255,.1757395,2.656215,.1745529,2.656215 +-.3748792,-.7504815,-3.007719,-.6934423,-3.007719 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.1087818,-.1257334,-1.343785,-.125295,-1.343785 +.3023081,.2300153,4.21086,.2271767,4.21086 +.7621819,.5085961,3.328347,.4949848,3.328347 +-.1538065,-.1777664,-.6716527,-.177147,-.6716527 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.0836392,-.0911419,-.5623633,-.0910299,-.5623633 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.2323671,-.3101193,-1.562363,-.3058547,-1.562363 +.1587231,.1350213,2.21086,.1344345,2.21086 +-.1546315,-.1883941,-1.453074,-.1871749,-1.453074 +-.1538065,-.1777664,-.6716527,-.177147,-.6716527 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.7621819,.5085961,3.328347,.4949848,3.328347 +-.1751093,-.2237572,-1.898429,-.2215315,-1.898429 +.0151382,.0148698,.2108601,.014869,.2108601 +.2305156,.1848784,3.21086,.1833871,3.21086 +-.0212622,-.0216729,-.1170081,-.0216716,-.1170081 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.1256011,-.1451715,-1.007719,-.1446654,-1.007719 +1.163818,.5970087,16.21086,.5548727,16.21086 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.2029782,-.2533981,-1.117008,-.2513312,-1.117008 +-.2502402,-.3542343,-2.007719,-.3472027,-2.007719 +-.0828702,-.0917059,-.8984293,-.0915492,-.8984293 +-.0828702,-.0917059,-.8984293,-.0915492,-.8984293 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.123677,.1107268,.9922814,.1105013,.9922814 +-.1546315,-.1883941,-1.453074,-.1871749,-1.453074 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +-.1546315,-.1883941,-1.453074,-.1871749,-1.453074 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.0212622,-.0216729,-.1170081,-.0216716,-.1170081 +.0582021,.0549267,.546926,.054896,.546926 +-.0828702,-.0917059,-.8984293,-.0915492,-.8984293 +-.0836392,-.0911419,-.5623633,-.0910299,-.5623633 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +.2305156,.1848784,3.21086,.1833871,3.21086 +.3625448,.2793542,2.437637,.2762155,2.437637 +-.3810951,-.7192875,-2.562363,-.6731001,-2.562363 +-.0836392,-.0911419,-.5623633,-.0910299,-.5623633 +.3741006,.2713932,5.21086,.2667892,5.21086 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.2502402,-.3542343,-2.007719,-.3472027,-2.007719 +.2483161,.2029448,1.992281,.2015743,1.992281 +-.2029782,-.2533981,-1.117008,-.2513312,-1.117008 +.0151382,.0148698,.2108601,.014869,.2108601 +.0869306,.0790553,1.21086,.0789366,1.21086 +-.1538065,-.1777664,-.6716527,-.177147,-.6716527 +-.000962,-.000963,-.0077187,-.000963,-.0077187 +.1587231,.1350213,2.21086,.1344345,2.21086 +-.3828036,-.6256999,-1.671653,-.6012149,-1.671653 +.0650888,.061425,.4376366,.0613907,.4376366 +-.0836392,-.0911419,-.5623633,-.0910299,-.5623633 +-.367465,-.775436,-3.453074,-.7077873,-3.453074 +.2305156,.1848784,3.21086,.1833871,3.21086 +-.2323671,-.3101193,-1.562363,-.3058547,-1.562363 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +.3741006,.2713932,5.21086,.2667892,5.21086 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +-.02783,-.0287708,-.3437845,-.0287655,-.3437845 +.8048554,.4696782,11.21086,.4477146,11.21086 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.0869306,.0790553,1.21086,.0789366,1.21086 +.8766479,.4971597,12.21086,.4714706,12.21086 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +.0151382,.0148698,.2108601,.014869,.2108601 +.0151382,.0148698,.2108601,.014869,.2108601 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +-.1751093,-.2237572,-1.898429,-.2215315,-1.898429 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.0828702,-.0917059,-.8984293,-.0915492,-.8984293 +.0151382,.0148698,.2108601,.014869,.2108601 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.1751093,-.2237572,-1.898429,-.2215315,-1.898429 +-.1751093,-.2237572,-1.898429,-.2215315,-1.898429 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +-.2706854,-.4424603,-3.343785,-.4251429,-3.343785 +-.2610483,-.3895254,-2.453074,-.3793175,-2.453074 +.3023081,.2300153,4.21086,.2271767,4.21086 +.0093688,.0092731,.1015707,.009273,.1015707 +-.2502402,-.3542343,-2.007719,-.3472027,-2.007719 +-.1546315,-.1883941,-1.453074,-.1871749,-1.453074 +.2305156,.1848784,3.21086,.1833871,3.21086 +.7621819,.5085961,3.328347,.4949848,3.328347 +-.0482147,-.050872,-.4530739,-.0508476,-.4530739 +-.1087818,-.1257334,-1.343785,-.125295,-1.343785 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.7330629,.4409489,10.21086,.422518,10.21086 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.2029782,-.2533981,-1.117008,-.2513312,-1.117008 +-.1897336,-.2532259,-2.343785,-.2497431,-2.343785 +.3741006,.2713932,5.21086,.2667892,5.21086 +-.1751093,-.2237572,-1.898429,-.2215315,-1.898429 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.1546315,-.1883941,-1.453074,-.1871749,-1.453074 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +-.1751093,-.2237572,-1.898429,-.2215315,-1.898429 +-.1546315,-.1883941,-1.453074,-.1871749,-1.453074 +1.163818,.5970087,16.21086,.5548727,16.21086 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +.0869306,.0790553,1.21086,.0789366,1.21086 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.367465,-.775436,-3.453074,-.7077873,-3.453074 +.1646189,.1418189,1.546926,.1412949,1.546926 +-.2029782,-.2533981,-1.117008,-.2513312,-1.117008 +-.2673483,-.4183992,-2.898429,-.4047313,-2.898429 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.2029782,-.2533981,-1.117008,-.2513312,-1.117008 +-.0212622,-.0216729,-.1170081,-.0216716,-.1170081 +1.092025,.5733635,15.21086,.5355382,15.21086 +-.000962,-.000963,-.0077187,-.000963,-.0077187 +-.1897336,-.2532259,-2.343785,-.2497431,-2.343785 +.1604538,.1416409,.882992,.1412745,.882992 +-.0828702,-.0917059,-.8984293,-.0915492,-.8984293 +-.0212622,-.0216729,-.1170081,-.0216716,-.1170081 +-.2323671,-.3101193,-1.562363,-.3058547,-1.562363 +-.2673483,-.4183992,-2.898429,-.4047313,-2.898429 +.0869306,.0790553,1.21086,.0789366,1.21086 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +.3774525,.2816094,3.546926,.2776222,3.546926 +-.1751093,-.2237572,-1.898429,-.2215315,-1.898429 +.1587231,.1350213,2.21086,.1344345,2.21086 +.1646189,.1418189,1.546926,.1412949,1.546926 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +-.2673483,-.4183992,-2.898429,-.4047313,-2.898429 +-.1546315,-.1883941,-1.453074,-.1871749,-1.453074 +.5331848,.389747,2.328347,.3834404,2.328347 +1.163818,.5970087,16.21086,.5548727,16.21086 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.1751093,-.2237572,-1.898429,-.2215315,-1.898429 +.1587231,.1350213,2.21086,.1344345,2.21086 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +.2305156,.1848784,3.21086,.1833871,3.21086 +-.1751093,-.2237572,-1.898429,-.2215315,-1.898429 +.1340736,.1171437,1.656215,.1167887,1.656215 +-.0482147,-.050872,-.4530739,-.0508476,-.4530739 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.1256011,-.1451715,-1.007719,-.1446654,-1.007719 +-.0836392,-.0911419,-.5623633,-.0910299,-.5623633 +-.1751093,-.2237572,-1.898429,-.2215315,-1.898429 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +-.2610483,-.3895254,-2.453074,-.3793175,-2.453074 +.0151382,.0148698,.2108601,.014869,.2108601 +.1587231,.1350213,2.21086,.1344345,2.21086 +-.0212622,-.0216729,-.1170081,-.0216716,-.1170081 +.0869306,.0790553,1.21086,.0789366,1.21086 +.1340736,.1171437,1.656215,.1167887,1.656215 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +.1587231,.1350213,2.21086,.1344345,2.21086 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +-.0836392,-.0911419,-.5623633,-.0910299,-.5623633 +.232916,.2006459,.7737026,.199904,.7737026 +.3741006,.2713932,5.21086,.2667892,5.21086 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +-.2323671,-.3101193,-1.562363,-.3058547,-1.562363 +-.1897336,-.2532259,-2.343785,-.2497431,-2.343785 +-.1256011,-.1451715,-1.007719,-.1446654,-1.007719 +.0869306,.0790553,1.21086,.0789366,1.21086 +-.1538065,-.1777664,-.6716527,-.177147,-.6716527 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.1256011,-.1451715,-1.007719,-.1446654,-1.007719 +.1587231,.1350213,2.21086,.1344345,2.21086 +.2305156,.1848784,3.21086,.1833871,3.21086 +-.3748792,-.7504815,-3.007719,-.6934423,-3.007719 +.0751906,.0709566,.3283472,.0709169,.3283472 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.1016078,.0918079,1.101571,.0916507,1.101571 +.2710357,.216176,2.546926,.2143441,2.546926 +.3023081,.2300153,4.21086,.2271767,4.21086 +-.1897336,-.2532259,-2.343785,-.2497431,-2.343785 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.1546315,-.1883941,-1.453074,-.1871749,-1.453074 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.1587231,.1350213,2.21086,.1344345,2.21086 +-.000962,-.000963,-.0077187,-.000963,-.0077187 +.0093688,.0092731,.1015707,.009273,.1015707 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +-.3595873,-.7958529,-3.898429,-.7179135,-3.898429 +.0151382,.0148698,.2108601,.014869,.2108601 +-.2673483,-.4183992,-2.898429,-.4047313,-2.898429 +-.0836392,-.0911419,-.5623633,-.0910299,-.5623633 +-.1256011,-.1451715,-1.007719,-.1446654,-1.007719 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.3023081,.2300153,4.21086,.2271767,4.21086 +-.2706854,-.4424603,-3.343785,-.4251429,-3.343785 +.2305156,.1848784,3.21086,.1833871,3.21086 +.1587231,.1350213,2.21086,.1344345,2.21086 +-.1087818,-.1257334,-1.343785,-.125295,-1.343785 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +.589478,.3790623,8.21086,.3670201,8.21086 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +.0869306,.0790553,1.21086,.0789366,1.21086 +.589478,.3790623,8.21086,.3670201,8.21086 +.0151382,.0148698,.2108601,.014869,.2108601 +.1587231,.1350213,2.21086,.1344345,2.21086 +.0650888,.061425,.4376366,.0613907,.4376366 +-.2323671,-.3101193,-1.562363,-.3058547,-1.562363 +.123677,.1107268,.9922814,.1105013,.9922814 +.0869306,.0790553,1.21086,.0789366,1.21086 +-.1546315,-.1883941,-1.453074,-.1871749,-1.453074 +-.0836392,-.0911419,-.5623633,-.0910299,-.5623633 +.2305156,.1848784,3.21086,.1833871,3.21086 +-.2673483,-.4183992,-2.898429,-.4047313,-2.898429 +-.1751093,-.2237572,-1.898429,-.2215315,-1.898429 +-.2029782,-.2533981,-1.117008,-.2513312,-1.117008 +.123677,.1107268,.9922814,.1105013,.9922814 +1.23561,.6199043,17.21086,.5733476,17.21086 +-.1897336,-.2532259,-2.343785,-.2497431,-2.343785 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.3023081,.2300153,4.21086,.2271767,4.21086 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.3023081,.2300153,4.21086,.2271767,4.21086 +-.2610483,-.3895254,-2.453074,-.3793175,-2.453074 +-.1897336,-.2532259,-2.343785,-.2497431,-2.343785 +.0582021,.0549267,.546926,.054896,.546926 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.0212622,-.0216729,-.1170081,-.0216716,-.1170081 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +.4838693,.3403586,4.546926,.3334374,4.546926 +.590286,.3939059,5.546926,.3833659,5.546926 +-.2673483,-.4183992,-2.898429,-.4047313,-2.898429 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +-.3595873,-.7958529,-3.898429,-.7179135,-3.898429 +.2710357,.216176,2.546926,.2143441,2.546926 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.2706854,-.4424603,-3.343785,-.4251429,-3.343785 +-.0836392,-.0911419,-.5623633,-.0910299,-.5623633 +-.2323671,-.3101193,-1.562363,-.3058547,-1.562363 +.3769291,.2755397,4.656216,.2710823,4.656216 +.1587231,.1350213,2.21086,.1344345,2.21086 +-.2502402,-.3542343,-2.007719,-.3472027,-2.007719 +1.995965,.8423971,24.65622,.74633,24.65622 +.0582021,.0549267,.546926,.054896,.546926 +-.1546315,-.1883941,-1.453074,-.1871749,-1.453074 +-.2323671,-.3101193,-1.562363,-.3058547,-1.562363 +.6612704,.4108095,9.21086,.3956947,9.21086 +-.1256011,-.1451715,-1.007719,-.1446654,-1.007719 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +.0151382,.0148698,.2108601,.014869,.2108601 +-.1751093,-.2237572,-1.898429,-.2215315,-1.898429 +-.02783,-.0287708,-.3437845,-.0287655,-.3437845 +1.25075,.6982957,6.882992,.6602709,6.882992 +-.2502402,-.3542343,-2.007719,-.3472027,-2.007719 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.2706854,-.4424603,-3.343785,-.4251429,-3.343785 +.445893,.3097042,6.21086,.3029525,6.21086 +.1587231,.1350213,2.21086,.1344345,2.21086 +.0531218,.0501328,.6562154,.0501048,.6562154 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +.0582021,.0549267,.546926,.054896,.546926 +-.2706854,-.4424603,-3.343785,-.4251429,-3.343785 +-.1751093,-.2237572,-1.898429,-.2215315,-1.898429 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +.0869306,.0790553,1.21086,.0789366,1.21086 +-.1897336,-.2532259,-2.343785,-.2497431,-2.343785 +.0650888,.061425,.4376366,.0613907,.4376366 +.2305156,.1848784,3.21086,.1833871,3.21086 +.7330629,.4409489,10.21086,.422518,10.21086 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.1897336,-.2532259,-2.343785,-.2497431,-2.343785 +-.1897336,-.2532259,-2.343785,-.2497431,-2.343785 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.0212622,-.0216729,-.1170081,-.0216716,-.1170081 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.3023081,.2300153,4.21086,.2271767,4.21086 +.0650888,.061425,.4376366,.0613907,.4376366 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +.5176855,.3454629,7.21086,.3362196,7.21086 +.0151382,.0148698,.2108601,.014869,.2108601 +.1646189,.1418189,1.546926,.1412949,1.546926 +.0869306,.0790553,1.21086,.0789366,1.21086 +.3783249,.2791079,4.101571,.2748505,4.101571 +.0869306,.0790553,1.21086,.0789366,1.21086 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +-.000962,-.000963,-.0077187,-.000963,-.0077187 +-.1546315,-.1883941,-1.453074,-.1871749,-1.453074 +-.1897336,-.2532259,-2.343785,-.2497431,-2.343785 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +.0650888,.061425,.4376366,.0613907,.4376366 +-.1256011,-.1451715,-1.007719,-.1446654,-1.007719 +-.2706854,-.4424603,-3.343785,-.4251429,-3.343785 +-.367465,-.775436,-3.453074,-.7077873,-3.453074 +.0869306,.0790553,1.21086,.0789366,1.21086 +.2959773,.2280665,3.656215,.2255045,3.656215 +-.1897336,-.2532259,-2.343785,-.2497431,-2.343785 +.5331848,.389747,2.328347,.3834404,2.328347 +.0869306,.0790553,1.21086,.0789366,1.21086 +.2305156,.1848784,3.21086,.1833871,3.21086 +.3741006,.2713932,5.21086,.2667892,5.21086 +.0869306,.0790553,1.21086,.0789366,1.21086 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +-.1087818,-.1257334,-1.343785,-.125295,-1.343785 +.0151382,.0148698,.2108601,.014869,.2108601 +-.1751093,-.2237572,-1.898429,-.2215315,-1.898429 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.0869306,.0790553,1.21086,.0789366,1.21086 +-.1546315,-.1883941,-1.453074,-.1871749,-1.453074 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.0212622,-.0216729,-.1170081,-.0216716,-.1170081 +.2483161,.2029448,1.992281,.2015743,1.992281 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.3023081,.2300153,4.21086,.2271767,4.21086 +-.3516372,-.8128667,-4.343784,-.7249908,-4.343784 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +2.240705,.8863206,31.21086,.7709416,31.21086 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.3741006,.2713932,5.21086,.2667892,5.21086 +.7330629,.4409489,10.21086,.422518,10.21086 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +-.3691655,-.5508237,-1.226297,-.5363927,-1.226297 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.2502402,-.3542343,-2.007719,-.3472027,-2.007719 +-.2706854,-.4424603,-3.343785,-.4251429,-3.343785 +-.0828702,-.0917059,-.8984293,-.0915492,-.8984293 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.1256011,-.1451715,-1.007719,-.1446654,-1.007719 +.0151382,.0148698,.2108601,.014869,.2108601 +-.0836392,-.0911419,-.5623633,-.0910299,-.5623633 +.991179,.6123406,4.328347,.5892943,4.328347 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +.2138168,.1804787,1.437637,.1796173,1.437637 +.0751906,.0709566,.3283472,.0709169,.3283472 +-.1751093,-.2237572,-1.898429,-.2215315,-1.898429 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +.5176855,.3454629,7.21086,.3362196,7.21086 +.445893,.3097042,6.21086,.3029525,6.21086 +-.2610483,-.3895254,-2.453074,-.3793175,-2.453074 +.445893,.3097042,6.21086,.3029525,6.21086 +.1938469,.1621579,2.101571,.1613,2.101571 +-.3748792,-.7504815,-3.007719,-.6934423,-3.007719 +-.1538065,-.1777664,-.6716527,-.177147,-.6716527 +.1938469,.1621579,2.101571,.1613,2.101571 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.0681247,-.0718756,-.2262975,-.0718412,-.2262975 +-.0836392,-.0911419,-.5623633,-.0910299,-.5623633 +.1646189,.1418189,1.546926,.1412949,1.546926 +-.02783,-.0287708,-.3437845,-.0287655,-.3437845 +-.1087818,-.1257334,-1.343785,-.125295,-1.343785 +-.2029782,-.2533981,-1.117008,-.2513312,-1.117008 +.0582021,.0549267,.546926,.054896,.546926 +-.1546315,-.1883941,-1.453074,-.1871749,-1.453074 +-.2029782,-.2533981,-1.117008,-.2513312,-1.117008 +-.367465,-.775436,-3.453074,-.7077873,-3.453074 +-.1897336,-.2532259,-2.343785,-.2497431,-2.343785 +-.2610483,-.3895254,-2.453074,-.3793175,-2.453074 +-.1897336,-.2532259,-2.343785,-.2497431,-2.343785 +-.3748792,-.7504815,-3.007719,-.6934423,-3.007719 +-.2610483,-.3895254,-2.453074,-.3793175,-2.453074 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.2502402,-.3542343,-2.007719,-.3472027,-2.007719 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +.0151382,.0148698,.2108601,.014869,.2108601 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.0482147,-.050872,-.4530739,-.0508476,-.4530739 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +.3023081,.2300153,4.21086,.2271767,4.21086 +-.1256011,-.1451715,-1.007719,-.1446654,-1.007719 +-.3516372,-.8128667,-4.343784,-.7249908,-4.343784 +-.2502402,-.3542343,-2.007719,-.3472027,-2.007719 +.1646189,.1418189,1.546926,.1412949,1.546926 +.1016078,.0918079,1.101571,.0916507,1.101571 +-.000962,-.000963,-.0077187,-.000963,-.0077187 +.2305156,.1848784,3.21086,.1833871,3.21086 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +.0151382,.0148698,.2108601,.014869,.2108601 +-.1538065,-.1777664,-.6716527,-.177147,-.6716527 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.2720317,-.4628195,-3.78914,-.4417326,-3.78914 +.445893,.3097042,6.21086,.3029525,6.21086 +-.2002393,-.2781606,-2.78914,-.2732145,-2.78914 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.1284468,-.1545255,-1.78914,-.1536491,-1.78914 +-.0566543,-.0609614,-.7891399,-.0609069,-.7891399 +.4975942,.3521915,3.992281,.3452767,3.992281 +.1604538,.1416409,.882992,.1412745,.882992 +-.1087818,-.1257334,-1.343785,-.125295,-1.343785 +.1938469,.1621579,2.101571,.1613,2.101571 +-.1897336,-.2532259,-2.343785,-.2497431,-2.343785 diff --git a/statsmodels/genmod/tests/results/inv_gaussian.csv b/statsmodels/genmod/tests/results/inv_gaussian.csv new file mode 100644 index 0000000..c611b32 --- /dev/null +++ b/statsmodels/genmod/tests/results/inv_gaussian.csv @@ -0,0 +1,25001 @@ +xig,x1,x2 +1.2733455,.49838599,1.3452648 +.3134754,.4823677,.74737328 +.79428208,1.136941,.14203239 +1.1283428,.1553426,.38986253 +.85636687,.48609028,1.4195813 +.8847369,.01187518,.84863965 +.93978618,.59263364,.83107964 +1.4064734,.20782785,2.4136595 +1.3880192,.45899967,.88479622 +1.0078955,.34310947,.46912135 +.66262165,.55882829,1.3560229 +.5218216,.83938895,.87164671 +1.2298233,1.3686679,1.833663 +1.4759632,1.0145688,1.3128653 +.78120167,.95606991,1.5949664 +.31531516,1.2625565,.21471553 +.51332919,.840604,.16322012 +1.1449052,1.3422888,1.7304837 +.90796108,.14451251,.02378754 +1.1701425,.69556794,.04121212 +.89112379,.70804283,.96610346 +.68888678,.28537203,.15814583 +.81733916,1.210205,2.239869 +.81293272,1.4899738,1.2692067 +2.2681783,2.0214993,1.3764563 +.37072985,1.5086601,.10230105 +.71890326,.88390672,1.649674 +.6535868,.2333771,.14298123 +.46327858,1.3480884,1.02747 +.94348579,.66535475,.29169035 +.72949058,.95472274,.31374849 +1.0049225,.60514897,.13809601 +1.2394609,1.1118678,.5508297 +.5840114,1.2164422,.75518542 +.68692879,1.5018362,.15566363 +.65607601,.7520919,.58255358 +.68230522,.66422663,2.3351979 +.38072431,1.1493521,2.0816592 +1.0911888,.93677118,.10547662 +.90381013,1.9432397,1.8229329 +.23850096,1.1184735,1.2997025 +.40942881,.94033327,.37675141 +.41106111,.17151647,.17630774 +.22629062,.98208984,.26666849 +1.7591356,1.1231629,.23875602 +1.3269091,.24311131,1.4521669 +.51562837,.73523005,.26164772 +1.0113478,1.1558606,1.4190539 +1.3040747,.09702838,.69747585 +.40957397,.52268401,.68505095 +.92400471,1.6172428,.06064388 +.48751691,1.1276329,.31490952 +.94364294,1.5692507,.7941354 +1.2680056,1.1867089,.59132319 +.67569624,1.8616588,1.5608065 +.69129427,.84536517,.05981247 +.55434136,.4454891,.8110717 +.94573446,.89643545,1.152246 +.65631943,1.2017119,.64112795 +.3358859,1.6225885,.70712986 +.83127453,.21114306,.75474855 +1.3642193,.52669191,.26292523 +1.5255932,.61268446,1.2048996 +.74973744,2.1856576,.14462351 +.58739059,1.1504032,.74578956 +1.290478,.46526436,1.1862457 +1.8752015,.36522982,1.5703948 +.51072855,1.6269648,.90917244 +.64794364,.83812189,1.8610901 +1.112681,.55187984,1.6856715 +.8890492,1.0396307,.09029044 +.9403497,1.3734125,1.2609945 +.72895431,.01236389,.09329716 +.32078286,.16266402,.93063771 +.40832929,1.0454454,1.5916128 +.50630291,1.8307221,1.3498077 +1.5219328,.17909104,.10683985 +.51898703,.40564437,1.069521 +.78352958,.63637831,1.5537738 +.48293844,.85003058,.00387173 +.9776358,.54665131,2.212449 +.82076994,.34693225,.02162786 +.83698422,.41178172,.19939613 +.8040226,.30773443,1.4142718 +.77293882,.19148093,1.328417 +.60037195,.10739162,1.1047747 +.85669273,.91602619,.61099672 +.3185928,.34594921,1.0886341 +.42501146,.87614455,.74634721 +1.1085747,.3013476,.84815286 +1.0661915,.91270297,.42565466 +.71509525,.38025247,1.7005304 +.84149479,.24775679,.73012968 +.78074882,.38711056,.7136833 +1.0912359,2.2220268,.56337882 +.9911217,.30899654,2.7307592 +.76750841,1.48779,.42095281 +.56857878,2.1489988,.46647397 +.43787452,1.022287,.00675213 +1.0252245,.91895868,.45178267 +.87760819,.85513764,.8102264 +1.4504405,1.9178199,1.5127834 +1.2378898,.3858159,.73454077 +.67875408,.6837785,1.2333427 +.50425401,.5256823,1.0394662 +.90742802,2.0896044,.34075789 +.49838274,2.1549011,2.0304314 +1.5117923,1.7729988,.47294019 +2.2053466,.19530876,1.2303293 +.78809682,1.4490284,.38466545 +.47893276,.86706042,.40545079 +1.098234,.52809011,1.2163333 +.81370465,1.0217578,.13832927 +1.3637428,.17020273,.41227016 +1.0489533,.77792365,1.3082673 +1.023569,.42769367,.75553382 +1.0846368,.83443862,.1750094 +1.2955672,.35876622,.8263157 +.65506481,1.9960225,1.0711334 +.60843612,1.2417011,.32545078 +.50168288,.51061263,.54575751 +1.5378082,.34396953,1.1957299 +1.2329599,.23682276,.22389742 +.37186387,.45079078,.77777492 +.5864635,.48540367,.40449372 +.79057155,.71465153,.80933939 +.47238469,.64078717,.35057822 +1.2090479,.93746557,2.9905007 +.74556892,.01168868,.0805714 +3.3974004,.3275735,.99069555 +2.1223967,.06601037,2.8290068 +1.2722367,1.0925172,.31145217 +.98417697,.22576485,2.3199768 +.82811506,.95206863,.55004348 +.66115085,.47725103,.6993171 +1.117051,.41080917,.09503466 +.49517148,1.8322383,.63519233 +.5551943,.71939428,.74967004 +.67943876,1.5080662,.99859764 +.40266449,.18367801,.20270257 +.66652435,1.5805658,1.3454515 +1.1429506,.74654928,1.684442 +2.1476736,2.0242383,.6732362 +.57500842,1.2130184,1.1106066 +.88024923,.60620609,1.3442089 +1.7309653,1.0865462,.92403325 +1.2580228,.12017206,1.7578231 +.88915041,.6067209,.37480971 +1.0645868,.80648507,.1895511 +.85150611,.33355647,1.157238 +.38106193,.40666125,.36654777 +.77006039,.68019062,.21777937 +.69404689,.63630279,.92359797 +.67941152,.90357391,.37831068 +.81092219,.51245754,.09523559 +.40891155,1.762466,.86043135 +3.2377764,.72910483,1.4684531 +.63366167,1.1129685,.26376055 +2.5005625,.12978538,.76934474 +.90107869,.56289873,1.6267069 +.73401275,.67435395,.25526755 +.77523095,.03247888,1.3753836 +.65354797,.92970928,.23246942 +2.4242904,.27558197,.65833243 +.68082983,2.5508017,1.1341968 +1.0364206,.52430484,.63788752 +.50801089,1.602997,.51542679 +1.2459387,.10210391,1.5237113 +.50455786,.77646231,.08501461 +.60409533,.47097801,.60132047 +.20268789,.37065216,.50270396 +.63892743,.98703286,1.1325025 +2.2428822,.43695212,.41488483 +.81131911,1.8581822,2.2442053 +.6277999,1.2067448,.24704511 +.58340487,2.3580051,.83910508 +.41471028,1.1408222,.73546482 +.36024455,1.900738,.6556919 +.38116075,1.3512178,.91988354 +1.1486561,.94073722,1.7006733 +.62974478,.49816086,2.1205951 +.73914742,1.3484246,.14956174 +.54333032,.02949978,.2793122 +1.4701229,.88218228,.95907734 +.4682588,.04288269,.90702693 +.27143381,.60989336,.45179418 +.93171221,.42808836,1.8160496 +.53461487,.53087572,1.0020171 +.76695603,.46543408,1.2112911 +2.2571937,.04768274,.56455101 +.79647026,.83648473,.21906048 +.76524701,.41708625,.44782961 +2.3010648,.42390977,1.8535923 +1.7149068,2.1113443,1.9036779 +.4439638,.87475556,.56810426 +.95598132,.91152516,1.3312334 +.73429735,.63203466,.8399294 +.37766619,.75635484,1.1856976 +.67579961,1.2432138,1.9053654 +.36532081,.81157698,1.0367854 +1.3253884,.49869194,1.6861679 +1.0419905,.95682712,.57910292 +1.1814503,.65107115,.43908463 +1.4681059,.40043944,1.373784 +1.1931673,.28297666,2.1367039 +.92644857,.2404203,.03778257 +.83407363,.34130841,.4948499 +1.6657213,2.1268988,1.6492326 +.92976577,.80418842,1.8251003 +.34730951,1.9395031,.61161749 +.99773849,.7626706,.30041212 +.9075132,1.2472645,.47100617 +.66355503,.30648361,.26280981 +.77734506,.68187672,1.4506248 +.48723334,1.2555631,.55113438 +1.515018,.10336108,.50282595 +1.6963653,.61420252,.47802072 +2.5201639,1.2263507,1.5893465 +1.026514,.12381971,1.0232694 +1.492301,2.0431551,1.9232595 +.46922007,.01344845,.62863329 +.49635699,.30451574,1.0991715 +1.6620816,.61701982,.68287766 +.84873396,1.4519641,2.764144 +.92469047,1.1474434,1.8240888 +1.2478948,.49752126,.24692614 +.59958841,.72400849,.36881958 +.56200084,.38974203,.46883827 +.59839263,.40762039,.73495668 +1.11258,1.6711768,.04518515 +2.4023568,.43529133,.67423956 +.81735994,.89897082,.69181876 +2.0582631,.36872302,.40684392 +.95340113,.40365592,.47606331 +1.6472625,.14250558,.00355546 +.3663641,.57297509,.68182503 +.69346942,.07288006,1.9692397 +.57128298,2.3558262,.57936526 +.6436618,.94844689,.25915568 +1.6129735,1.4839411,2.1268035 +1.5451327,.18582035,.63248404 +1.2274544,1.0382178,.50309631 +.58518994,1.221582,.31692406 +.49133135,.07595902,.17858512 +1.0772724,.1056644,.33647941 +.31892304,.16727797,.34432341 +.64867923,.17022392,.88691483 +.99519376,.02129352,.61442949 +.80985479,.90858973,.82038768 +.95402732,.85881389,1.5184873 +.72420197,.53371482,2.0951812 +.88008243,.5778829,.49215526 +1.7664132,.07223155,1.320333 +.57713824,2.0894906,.07996295 +2.2267908,.08882198,.2911764 +1.1946725,1.7333555,1.0025163 +.78216673,1.7583705,.00628615 +.67144671,.35687834,.2396875 +.3571843,1.0911754,2.1665649 +1.6931061,.94158459,.81164439 +1.0379784,.28909678,1.0701041 +.86564443,.86724979,2.0942054 +.98394675,1.922512,1.5186624 +.72674586,.27842445,.23102413 +.67383255,.27026213,.65248607 +.94078575,.71259525,1.7918777 +.40736572,.809092,.48953773 +.48873051,1.7567225,.09213346 +1.7458551,.76549427,.89414036 +2.1705996,1.1055048,.42089941 +.48818462,1.1056057,.48089173 +.6671436,1.5346256,2.3279353 +.70918748,.86019963,1.9670217 +1.4771243,.02937029,1.5236795 +1.3129872,2.0623182,.46854043 +.81683244,1.2532965,.60091414 +.61816892,1.445846,1.9028354 +.84929769,1.6110097,.93657788 +.87351077,.25141934,2.3654612 +.80028837,.81342128,.08809462 +2.2811413,.66027244,.21193344 +.42047921,1.6254547,.31242104 +.61949322,.15331835,.14846346 +.40355455,2.711205,.11757394 +.94964264,.8801717,1.2209954 +.88030376,.4827339,.7739176 +1.3600899,.31505601,.7775485 +.47852372,1.2472903,.65268481 +.3127413,.83755425,.50229624 +.58438685,.11687021,1.4634394 +1.8195193,.14444885,.8065795 +.87888334,.06403119,.5964882 +.33636849,.62417278,.725306 +.61588819,1.4669083,.21686289 +1.4338227,.72659158,3.2884557 +.98719028,.01856996,1.2072976 +2.5593249,.10905043,.62591343 +.58006444,.34804353,1.0104039 +1.286234,.92171361,.11886189 +.20446887,.28708442,.16660735 +.94523174,.27361471,.67971828 +1.7060177,.33080656,.71194238 +.74842937,.0624933,.66594527 +3.8215756,.25543,.40870937 +1.1197276,1.4892363,1.3096209 +.28855498,.9855535,.06714827 +.95347195,1.4708355,.12685498 +.85404684,.81956213,.74632213 +1.0577068,.44467318,.14947717 +.72530715,.49368775,.65394765 +1.1797326,1.4291593,3.056179 +1.4966739,.36765457,1.0905295 +.46808544,.58873955,.98669655 +.72772399,.9898856,.26352652 +.81598488,.2429417,1.0809268 +2.8061308,.46522037,1.0659253 +.61115906,.25360895,.44015253 +1.4420216,.06892278,.73756845 +.39170901,.39946075,2.3112368 +.71967556,.21319203,.26987672 +.807163,3.5210011,.56989178 +.67968921,.92371574,.22093463 +.4134919,.52210185,1.5247982 +.94446557,.69186481,.84893509 +.83169596,.76049988,1.6523253 +.61943796,.36240211,.22165284 +.86516606,1.3865894,.4365748 +1.4589355,.64689098,.2350444 +1.7949697,.48172006,.31246078 +1.2975314,.33511407,.67929138 +.48021286,1.1706906,1.0219987 +.74454015,2.4933459,1.7959964 +1.6636619,1.4980798,.28407873 +1.4535214,.58123048,1.4281038 +1.0684319,1.7815979,1.4174201 +2.0959566,.23303941,1.271439 +.78124338,.34278007,1.433311 +1.8286334,.73725046,.4955999 +.88517259,.48943295,1.1558292 +.38749485,1.1915689,.7477608 +.71614055,.28735566,.30585841 +.92096852,.75474191,1.4362996 +.31256334,.64656178,.0102072 +1.8403939,.91365767,1.0838475 +.62122235,.23935802,.05389927 +.81381238,.9885595,.96210051 +.85089987,.42253835,1.5725227 +.79579713,1.2928926,1.7889708 +.81535724,.23269742,1.1168215 +.56133483,.94003074,1.7423881 +.93011804,.67510913,.00008716 +.52806169,1.4879882,1.0352966 +.81968261,.46240246,.49248927 +.35048111,.58136315,2.0234394 +.38035779,.11535889,.54725782 +.60765303,1.0941003,.39383742 +.51951459,.29879262,.43305805 +.9092267,1.7507593,.52844604 +.981556,.17133365,2.2189383 +1.0293381,1.1488649,.87070453 +.67207375,1.2908342,.54949896 +.90599021,.33684785,2.207039 +1.3614911,1.4789219,1.5059683 +1.00743,.259234,.35745676 +1.7117379,.97282983,.4738696 +.66269964,.70233511,1.1957778 +.8541059,1.0755736,.52756033 +.78721445,.30293096,.88120266 +.57463262,2.0011388,.14671762 +1.9724412,.02690049,.13946482 +.59582238,1.4770702,.05325879 +1.9114954,.7994777,.7647385 +1.7843093,1.2593305,.32112892 +.73119218,1.7244772,.23069827 +.48786097,.21433159,.75243797 +.58367021,.93035837,.76027678 +1.1500165,1.0783974,.23358727 +.32287042,1.4305475,.24883131 +.53744221,.68972102,.61162486 +.8750397,.67800435,.30698928 +.69369987,1.4996101,1.4271 +.94056344,1.0377179,.00351876 +.45380391,2.5478128,.01135281 +.62844246,1.4713792,1.3466362 +.83351008,1.0907872,.23429865 +.78302589,.39264366,.2210119 +.85348896,.59580206,1.0583539 +.78244709,1.0080236,.10397535 +.63246731,.24513244,.70234614 +.659558,1.2270269,2.40427 +.91079308,.83945848,.97371267 +1.1327939,.84962519,.6176786 +.64172551,.5258619,.64843599 +.54340577,1.1447008,1.0042627 +.36450616,1.7222703,1.4193507 +.87217644,1.4400728,.10380858 +.50524943,.32885708,.45024582 +.75063775,1.5164292,.46202707 +2.3121677,.93511834,.62427165 +2.3768237,.13991393,.28965167 +.58082724,1.0827053,1.3919461 +.37114393,2.1125741,.1357146 +1.4057744,.16689892,.73389538 +.75295498,2.1433496,.02754916 +.45053928,.79050497,2.1744262 +.70386031,1.363101,1.9467192 +.67630711,.76194672,.17115134 +1.1636469,2.2125711,.0084599 +.70384398,.30081372,.73256804 +2.2883872,.41612735,.11041533 +.93865529,.76709242,1.9181191 +.40610353,1.6862998,.88005716 +.65415502,.22036539,.21654201 +.756492,.6048348,.07803075 +.60011259,.03846438,.12875122 +.41572795,.22241154,.03358283 +.98958252,1.1448352,1.0928862 +.7651105,1.7764356,.25021823 +.66765736,1.0267222,.59065743 +1.0041146,1.2747329,.73818064 +.38680599,.77464991,.73639154 +1.0896494,1.5240689,.57840254 +.73731306,.90419475,.12261914 +1.1887376,.0714482,.52584573 +.70745454,.28851122,.68485162 +.4201204,.40798057,.48103706 +1.2315316,1.0844329,.47321866 +1.5225684,.36660961,.30116147 +.97832558,.8691852,.79521098 +.40741968,.15557375,.19953268 +1.1513433,.06094135,.95096793 +.81417518,.35008046,.89035969 +1.2498639,.59177477,1.1355566 +.73308835,1.636455,.16140684 +.94240056,.38251673,.1140196 +1.1761328,.20617771,.03515998 +.51427246,.32068139,.80815388 +.62213709,.76582686,1.5263639 +.62210754,.55182736,.47485116 +3.5065421,.12903253,1.5661715 +.53918598,1.2919001,.25848207 +.88215308,1.3503495,.2658635 +.58228721,1.7957186,1.4172833 +.59564448,1.9522505,1.2604793 +.35305271,.65169648,.37758011 +.75598413,2.3895694,.98288901 +.60682638,.62304625,.14369539 +.85308132,1.3789609,.15392124 +1.933148,.1593916,.76500126 +.72164955,.53138885,.2582287 +.62404316,.13207094,1.4092182 +1.2232235,2.2565343,1.3114307 +.8987193,.67116754,.41803234 +.77446577,1.6321006,1.3965337 +.62662722,.46691656,.58134331 +1.1776762,.19177405,1.1755278 +.69261335,1.5657501,.4815312 +.36097982,.68184233,.950105 +.55258821,.80743951,1.1049515 +.46980747,1.2210599,1.9251402 +.7058856,1.3895318,.84137404 +1.6889362,.05699417,.81492461 +.51352811,.05731071,.71356363 +.79769204,.57638155,.68464422 +.86427023,.42575777,1.2382449 +2.1812116,.8281849,.74185826 +1.5635041,1.8057533,.11533892 +.89053295,.26881417,.52218081 +.66663535,2.0098354,.11435402 +.4631276,.91175792,.3982789 +1.876002,1.7696546,.50441783 +.82561446,.5322763,.98684075 +1.6192868,.09769015,.16343064 +2.0152538,.49659924,.77457012 +.46120036,.65553982,.39525261 +.78589731,1.0226212,.87911994 +1.1377875,1.1171134,.01961007 +.7513113,.03388577,.6693523 +1.2508238,.83283096,1.8321666 +1.2003705,.94651689,1.0409766 +1.0673708,.25368694,.50616722 +.88523742,.74053381,.66103513 +.63614262,.5827313,.55179666 +.73200465,.04704682,1.1215604 +.5038625,.49585817,1.070101 +.91259624,.08551431,.36562328 +.59073582,1.9749442,.47721318 +1.0615595,.40636849,.05347208 +.59730378,1.2137711,.36901615 +.4962589,.31033379,.13268157 +.71507628,.84963172,.49208211 +.6623508,.45204357,.36265048 +.44449323,.30450673,.96149809 +.65784922,.99165056,3.3719531 +.70236056,1.5298326,2.7670163 +.4347547,1.5779289,.94703626 +1.7865516,.14669029,.87563856 +1.6572861,1.831772,1.2488707 +1.2108016,.72961368,1.0460124 +.69649439,.77982054,.64422527 +.96887874,.05405409,1.3309824 +.62486199,1.3260521,1.5810773 +.64734828,.65541398,.26791975 +1.4802595,.75827999,.73197561 +.76229075,.59336032,.73613708 +1.0684467,.53007204,.47142477 +.87193479,.89396176,.43503831 +.55043637,.02112151,.80873304 +1.2829568,.50665624,.60935691 +.75673633,.12441239,.19223891 +1.7838608,.19270211,1.5523465 +.98660365,1.1397172,.08684117 +1.4297845,.05393945,.10264728 +.63163679,1.0504173,1.2141305 +.7147154,1.1027137,.02762738 +.56465735,1.7070451,.7369551 +1.813588,1.6870213,.74164691 +.99893416,.27078267,1.2582955 +.81309993,.83060033,.34256033 +.76744262,1.0449499,1.7625082 +.37918807,.31469272,.13378892 +1.6850313,.01075843,.90030447 +1.2527077,.33384669,1.8534797 +1.0746528,1.3622358,1.0558532 +.93524277,.79879906,1.6267356 +1.4412221,.87503471,.12449223 +.94527472,.53032091,.43810196 +.39459048,1.2163804,1.8086422 +1.6662302,.25452019,1.6914065 +.66759494,1.7812946,1.289224 +.56845649,.70963541,.84680111 +1.8413354,.10164105,.63312278 +.49835378,.69611752,1.6417994 +.54588411,.17569846,.22872195 +.42140097,.6972514,.49448975 +.98588131,.24148843,.02303894 +1.3516461,.76217921,.70145607 +.64023727,.04542669,1.1876669 +.60618553,1.0517354,.27685582 +1.2319387,.25255355,.24603258 +1.1430764,.19627654,.69740088 +.83333931,.42022672,.54147457 +.41998939,.6343063,.00536485 +1.6850447,1.9362827,1.0939152 +1.7531673,.95904517,.93050675 +.77697514,.58032869,.45989609 +.91057853,.94515,1.6752265 +.7839553,.38150682,.18007846 +.45456682,.58148968,.1519441 +.52591595,1.1304364,.0677229 +.82690818,1.1624624,.17705103 +.31260563,1.7786333,.25591267 +1.8060124,.73533395,.16592615 +1.4492754,.90257235,2.0290496 +.59555058,.71857397,.3911385 +.84067341,.34390329,.32298294 +.90004996,.55844099,1.0362523 +.42782238,.25225374,1.2926515 +1.0262948,1.2137149,2.3497612 +.31998415,1.5146506,.95245827 +2.0147906,.02728995,1.1271572 +.51243489,.76446887,.12306844 +1.0422732,.68231873,.11501199 +.64464716,.92463248,1.8423691 +1.9489838,2.0222925,1.2980066 +1.2568881,.89734657,.39651604 +.79715384,.88614687,1.0993236 +1.4501044,.02340433,.81006214 +.76429746,.11536021,.84542617 +.51498482,.20234007,.56599517 +1.5966311,.41476282,2.1443423 +.73154761,2.1900335,.51529441 +2.3702447,.19447524,1.9601022 +.78573065,.28794456,1.2669848 +.83415268,.52186234,.11237519 +.3112568,.780158,.74890109 +.56186555,.16831349,.55705915 +1.8203171,.69083983,.15856986 +.48457308,1.8496186,1.6367067 +.87048535,1.0112741,1.5975377 +.99193644,.19930479,.53816134 +2.1404305,.96037875,1.0509385 +1.5907688,1.1035004,.48122318 +.69836905,.07796764,.85327519 +.54191871,2.3275275,.15251496 +.67940433,.78487766,.70554839 +.43255559,.39195466,.39216025 +.94182882,1.1555705,3.1877405 +1.04667,.00836496,.60078457 +1.6899374,.20665306,1.8122456 +1.1728284,1.3011446,.01795014 +.63125566,.02201352,.30122399 +.68465388,.42923555,.42315902 +.55082697,.38145557,.69697668 +.80707586,.8316438,1.6138737 +.44639748,1.7208617,.00549008 +.6382093,.94040296,1.5191418 +.61272431,.36142137,.43206267 +.74932441,.08114127,.36660396 +1.0702993,.9279613,1.2387856 +.74692386,.13542931,1.0852083 +1.1156938,.37939691,1.9590539 +.82834486,2.2474708,2.7310757 +.73162865,1.1129772,.16477404 +1.2829046,1.2381496,.56175778 +.52305037,.6107692,.03530093 +1.0474238,.06181541,1.2272852 +.78987886,.52573184,1.3305521 +1.0498296,1.4791295,1.590402 +.441715,.13970897,1.4037383 +1.2830385,1.9419129,.22818089 +.71338147,.75613331,.72306484 +1.2368708,.26340266,.36350074 +.46296953,.4365711,1.8438128 +.60921313,1.332804,.74859289 +.86285936,.69205643,2.4011576 +.7610082,1.1315585,1.6527752 +.39722726,.29322207,.51736003 +.89121078,.51547535,.09137543 +.72784817,1.8023782,.12630026 +.99926351,.964593,.83745871 +1.3146343,.47856014,1.0225461 +.73607161,1.0758067,1.8890476 +.53074292,.30509913,.03292669 +.70913409,.09660344,.15360006 +1.2251932,.54548422,.70227803 +1.248072,.33270222,.81287662 +1.1271756,.29735474,2.0759198 +.88806158,1.2949507,1.4041103 +1.7178422,2.3475126,1.5633698 +.90971653,.53915656,1.1787227 +.95193949,1.4315505,1.7446399 +1.4168419,.0619306,.26160076 +1.6720527,.79693676,.12450043 +.76820091,1.7955074,.5398552 +.54816815,.32559526,.94914245 +1.2569011,.36291511,1.6931273 +1.5114156,1.2782471,.50722052 +.83466451,1.0466255,.08129912 +2.9816168,.15905715,.7719731 +2.4316564,.28847117,2.1609257 +.49817604,1.2478433,1.4261133 +.91167085,.01161021,1.3510021 +.91253368,.42151901,.45545771 +.76099727,1.3277152,.20101299 +1.8904601,1.1836766,.76533388 +.72080307,.35305695,.36322355 +.66249698,1.0395866,1.28997 +.66754917,1.3738191,1.4220618 +.72111953,.32217841,.98559326 +.95198483,1.4149648,2.4507722 +1.2575497,.09647847,1.2553437 +.69219421,1.4153847,1.1740129 +.27503738,1.5369086,.5166783 +.79907116,1.0272001,.40042096 +.72020467,.63143693,1.2448418 +2.3672388,1.166004,1.0350783 +.98523297,.68251627,.18451063 +.79139413,.14913342,.819036 +.91829775,.43486338,.45475699 +.86061013,.51212057,.29504157 +.48946712,1.2802604,.15757655 +1.4597085,.03511491,.4644012 +.53520853,1.17251,1.1387637 +.63190299,.08894676,.2103544 +.63962316,.22787422,.98135066 +.92824074,.9253388,.88160121 +.55924329,.87296559,1.0201622 +.31600588,2.0620303,.99290923 +.85712298,.94008158,1.6917299 +.56521508,.74778378,.13600762 +.50318698,1.9161715,1.0706348 +.94185132,.0961843,1.5077915 +.95421423,1.5123687,1.8401809 +.94136277,.04728567,.02707467 +1.0244826,.77193317,.10780235 +1.0725321,1.0317939,.51446821 +2.3148455,.1414556,3.2202575 +.66228905,.63789875,.03638435 +.78881431,1.6280193,.48947077 +.49575797,1.5452392,.36773253 +1.294878,1.1739927,1.9218132 +.68915258,.98502554,1.1508924 +2.8424761,1.2193955,1.3187905 +2.7828492,.65530596,2.3695235 +1.1104464,.2948855,2.2958314 +1.5349394,.03538956,1.3635351 +.80601895,.46063471,.64289334 +.79235634,.65898173,.39174689 +1.3264698,.21767956,.56741596 +1.6933501,1.1235874,.04193646 +.68389856,1.0335529,1.0108395 +.50851151,1.5112735,.6160837 +1.0335588,1.3389097,1.1384088 +.446761,1.9036099,.10911073 +.22136726,1.4432411,.13942247 +.23916526,.45292365,.18274798 +.38740103,3.0184268,1.9608363 +.89838889,.86014522,.87983577 +.63508148,.18946911,1.1114683 +.40407044,.21175716,.65985706 +.61468601,1.1639144,.89948449 +.39647665,1.6392843,.41965041 +1.1163204,.12435747,.70449546 +1.4837073,.03931019,.69765576 +.91763954,.60050189,.64421492 +1.5786714,.73952197,.33987115 +.83702933,.59275048,.47366333 +.76659133,.44018019,.63155546 +.57684805,2.5155304,.73497909 +.81615302,1.1853726,.38788755 +1.5383113,.17287299,1.2868855 +.47486996,.88706292,.33682612 +.84643285,.73715516,.60025566 +1.4502047,.2992925,2.0270752 +.78854358,2.8087722,.0266328 +.46975159,.86514663,1.1605791 +1.0696579,1.1879996,1.231587 +.99895924,.8786427,1.0187246 +1.0653352,1.161367,.45903177 +1.7874479,1.3750336,2.032522 +.5550028,.76722795,1.2275074 +.44614478,.70933632,.52900591 +1.0792492,.60303202,1.5021444 +.39066669,1.9613341,1.1790497 +.71979061,.11032481,1.6388913 +.71935858,1.3785466,.22926914 +.87659093,1.5986877,1.3653225 +1.3254244,.75753669,1.5300806 +.66104898,1.4565283,2.4607104 +1.1125926,.97570717,1.4531142 +.80809704,.64283834,.39693356 +1.0186428,.87364632,1.8632653 +.79602216,.73884935,.71314845 +.56315362,.03947956,1.2367026 +.53139474,.83285998,.00796039 +.70679441,.39701068,.76156919 +1.0748554,.78800637,.79902527 +1.2911179,1.0548214,1.2150546 +.48732428,1.1078269,1.55475 +.5338072,1.8603326,.70313053 +.76084435,.12092604,.04471485 +.77797885,1.4644525,.63935844 +1.3991707,2.4087774,1.8047836 +1.2654876,1.0947948,.67717481 +.70483826,1.0997262,1.5533075 +.77138256,.656928,.16620941 +2.2370985,1.0422323,1.202669 +.78076161,.13496356,.84018057 +.41366878,.882944,.82433855 +.57101023,2.6096826,1.2234264 +.53265846,.93111166,.08085087 +1.1049039,.91500644,.68984989 +1.4546231,.21013587,1.6952557 +.36260431,1.0928977,1.548408 +.92726641,.85625113,.16294686 +1.5995935,.9416799,.22104 +1.2911801,1.3677161,.72255421 +1.7215396,.43920643,.21895107 +1.2366171,1.3091207,1.1148361 +1.3921448,.07390253,.21985094 +.95371837,.81338343,.06635106 +.53662013,.86940855,.26810884 +.72717342,1.8169784,.36402562 +.32274874,1.1994269,.15322325 +1.3763262,.92386196,2.101982 +1.121403,.28240798,.97974176 +1.2533157,1.275165,1.2039939 +.56733565,.81574901,1.4021037 +1.1728055,.30246385,.08938573 +.448591,.8451706,.18743068 +.98440717,.68165788,2.1641009 +.68920902,.44772822,.58913357 +1.0332957,.97638562,.07053614 +.21781636,2.6110908,.19986511 +1.0444474,1.2235494,.93913869 +1.8339449,.26012495,.06097882 +1.1042908,.55032175,.23780256 +.55497634,1.6497919,.78931472 +1.6648411,.66726893,1.2769681 +2.0704329,1.2860594,.87859942 +.53229254,.255265,.20958523 +1.0640832,.43004094,1.2416632 +1.4228385,.96856269,.64321599 +.49194438,1.4567239,2.498645 +.96030576,.95193035,1.8158416 +1.7226625,.13456028,.08441198 +.72317056,1.502458,.63522812 +1.0222649,.84766923,.32627908 +.36313706,1.9358453,.4201454 +.64633243,.9128723,.28681388 +.45002053,.54795937,.18370896 +.60346492,1.62981,.44454354 +.45429739,.32046757,.58440978 +.43247227,.61496105,.01758193 +.41726661,.38798796,.12137747 +1.2141639,.41111797,1.1157719 +.82287963,1.0760316,.39139814 +.54074513,.32278801,.95142135 +1.58127,1.3757577,1.2051074 +.81861128,.42042502,1.0737118 +2.1152958,1.10718,1.3064247 +1.4130452,.64679002,1.984627 +.32130595,1.146219,.01671888 +.77620599,1.0553832,.44596191 +1.0128992,1.0198987,.08634863 +.59677609,.71446198,.05017285 +.31595184,.42562526,.2980381 +1.5078576,.31697249,.66977186 +.52570769,1.4943697,.17524127 +.71929924,.11616507,.21928961 +1.1676869,.41501083,.53269649 +.57043934,1.4521479,.69775534 +1.3116141,.22669492,.94034519 +.39699265,.69449171,.11346794 +1.5867832,.98448427,1.802363 +.49401538,.40562684,.15248294 +.71425714,.55278212,1.2061309 +.7466897,.40020329,2.2201373 +.58588342,.27772967,.45663827 +1.0444879,1.2450625,.5969241 +.87004236,.87294557,.48481256 +.56502046,.55021279,.72896056 +1.0968422,.59519606,.70876679 +.86214373,.68817216,.1097539 +.70409137,.26925592,.7340514 +1.0686687,1.0987449,1.5055245 +.96544258,.06582449,2.5165484 +.84749048,1.1236316,.0706657 +.41162726,1.0551621,.34578337 +1.1266178,.17023013,.85231867 +.53063388,.14873476,.20443337 +.99457893,.36901676,.92139701 +.831088,1.2010484,.0274627 +.68797117,.19310559,.91351884 +.56630904,1.2070403,2.0941077 +.68693322,.60028497,.56979706 +.74995215,1.3617132,1.5886448 +.24497822,.59855224,.45967644 +.8832234,.36448,1.6717101 +.33515832,.69440851,.24665852 +.51775896,.37948129,.25509816 +.61155504,1.0285044,1.2142835 +3.4047125,.73124274,2.2506362 +.85387944,.69175511,2.081804 +.79469843,.85953316,.55079924 +.35251071,1.7220703,.12943888 +1.2314941,1.0592007,1.5848303 +.69855478,.03696578,1.1204988 +1.0370701,.82762933,.75927848 +.28925101,.58011497,.2286543 +.30574532,.81495971,1.7437329 +.69306625,1.0917775,.59186095 +.81531509,1.3565566,.48838265 +.52648553,2.9190285,.88310451 +1.1803318,.69437951,2.9169244 +1.2043292,.84523309,1.0977238 +1.0197766,.23414155,.23253632 +.93846603,1.6842864,.15887146 +1.2506719,.69273098,.97132615 +1.1118042,.29239508,1.7060701 +1.0872506,1.7999086,.0266031 +.43198997,.1741609,.62666015 +.54469184,.15632447,.96113592 +.63008624,1.0687894,1.0649304 +.28939829,1.8150828,.8489109 +.49400403,1.2611366,1.4354037 +2.2320692,.32658721,1.7738429 +1.3310244,.48497614,1.2189214 +.65535356,1.196928,1.277257 +1.2027985,.20186816,.66854075 +.41750561,1.3134965,1.0286275 +1.1323289,.79834297,.4883699 +1.6052452,.57712425,.71248657 +1.2830443,.97125243,.9265062 +.75436499,.20185129,.09412987 +.67823924,.20622853,.50056099 +1.1094594,.0933406,.07140559 +.4794135,.34863158,1.685249 +.56012509,.80710504,.48447526 +1.2304641,.52191981,.24975511 +.83616081,.69854573,1.6264111 +.432817,.53380899,.47621236 +.32333607,.79100003,.3271804 +.41334387,1.0703667,.38818644 +.22379823,.67078807,.16325393 +1.0165902,.24418087,1.0131872 +1.3263577,.59971676,.39945228 +1.2294919,.12067178,.1099675 +2.2269691,.04190861,.97202684 +.79363464,.16817165,.01538592 +.42116841,.21135917,.62629957 +1.1394304,.30556543,.97320937 +.88409488,.11154805,.13741824 +1.1525549,.08292847,.6313946 +1.3491106,.77172066,.9257103 +.44426974,.76798297,.19671655 +.94614695,.10719186,1.4330014 +1.0987795,.58480183,1.3940079 +1.167752,1.4171718,.76741157 +3.1285656,.18472047,.18015573 +.99552728,1.13308,.79999979 +1.0630017,1.7034943,.8397651 +1.1393586,.27706277,1.7675921 +1.1217033,1.9037206,1.6504542 +.69799183,.32475092,.02481421 +.72382432,.47563001,1.2776478 +.72071878,.12483076,.086021 +2.0967443,1.6164138,1.3555546 +.89956643,.98780127,.85151367 +.74958711,.59760053,1.8138699 +.52595265,.46607032,.18253442 +.49464887,1.589372,2.7467915 +1.2421933,.79070683,.6154383 +.62947124,.80490349,.78388877 +.762537,.06239888,.22794521 +1.1673628,.15709155,.05947729 +.54392809,1.2044977,.53354838 +1.0432931,.11136144,.33495501 +.75201083,.15823929,.6441743 +.72299967,.85158984,1.272487 +.98906177,.64370047,.96049447 +1.2664728,.11712924,.95560023 +.93519089,2.3095783,.21782712 +.79598224,1.640582,.7830539 +.26866703,.29672339,.09033875 +.96783617,1.2873049,1.800089 +2.1961848,.19431086,1.0276145 +.71860239,1.0138511,.8029246 +.43703781,.84218843,.27400132 +.5944304,.1466738,.0371335 +1.6622243,.05602933,.8854199 +1.3117093,.71098724,.63918599 +1.3600695,.17141864,1.365688 +1.261034,.64090037,.29501839 +.62347584,.08901139,1.3420388 +1.1636413,1.3345029,.92078919 +.4426275,1.9494964,.84353022 +.73827489,1.1446355,1.5556903 +.76135663,.48741801,.62640852 +.95650539,1.2225081,1.0440095 +.23330172,2.342008,1.9528988 +.66217743,.05089591,1.029528 +1.8067481,.0511428,.06286733 +.68272768,1.3310168,1.312411 +.36922961,.86416505,.02966884 +.59342318,.0028277,.98947372 +.62763989,.54994064,.40677352 +.84931888,1.0536484,1.0897725 +1.6695783,.44306312,1.6853968 +2.5740178,.06228475,.28703764 +.50789944,.78128395,.69386512 +1.2865401,.26115935,3.1108166 +.95537736,.30100162,.54895866 +.43143113,2.5846038,.30685549 +1.7389078,.32472015,.80758234 +.62543468,.95077227,1.2086005 +1.3002712,.17974618,.5711252 +.92180184,.32263283,.69138324 +1.0483262,1.0101898,.60750469 +1.2274594,.73026811,1.5242579 +1.1339845,.82042713,.14383289 +.64025299,.83597558,.44365296 +.93584716,.02774461,1.5216993 +.8057585,.07416002,.5731885 +.58294184,1.151092,.87074687 +1.3236263,.38640885,.42431405 +.43028799,1.162923,.6765959 +1.980486,1.1026321,.34101044 +.94127559,1.1903035,.71978833 +.42322107,1.2561798,.21439384 +.92016818,.09905152,.97037933 +1.4531093,.3229289,.79624603 +1.2597991,.19143702,.70504569 +.99929005,.25765134,1.288179 +.53135593,1.1491608,.87994086 +1.0327969,.01688066,1.8574328 +1.369381,.89094759,2.0321173 +.40659714,1.1761109,.21750072 +.93425845,.28613205,1.6047954 +.9711056,.69582095,.16055492 +1.6232455,.9827654,.97121702 +.25784734,.21970184,.21074633 +.95521434,1.1280934,.42032234 +.79114219,.94564955,.97613378 +.65807204,.09519053,.21244163 +.38708899,1.5793123,.65344115 +3.6730833,.83584482,2.7977996 +.50792343,.06217231,.66832054 +.9236432,.58120094,1.1842606 +.55323079,.49533755,1.3611905 +.97713015,.36617909,1.3521748 +1.8097169,.22359825,1.9781041 +.9460176,1.7732962,.09325279 +.97142836,.53728132,.27857123 +.88286118,1.2185589,1.0679999 +.34192533,1.2049826,.2597989 +.56773597,.63783275,1.6910029 +.95546318,.61277656,1.1112241 +.55281694,2.3716414,1.7983013 +.72449501,.37321588,.21109669 +1.0085343,.12522467,.27599433 +.92464996,1.1482424,.07749553 +.5226017,.7073747,.43552768 +.32617529,.20941793,.27923148 +.7620463,2.5829025,.45358907 +1.1860172,2.0297991,.29622981 +1.0700253,.6060882,.26310412 +.48004084,1.0660889,.50990243 +.62911011,1.1177344,.90647306 +.76033741,1.570105,2.6739813 +.47815326,.54103948,.85911887 +.78815265,.8195935,.35577788 +.56319025,.6448144,.55209328 +2.1328597,.57765152,3.9339677 +.92668343,1.6480763,.17839861 +.75023916,1.0128793,1.1125409 +2.9858773,.92372051,.474383 +1.4103024,.64990034,.42630992 +.86173511,1.070797,.32958383 +.67870107,.15348228,1.9262913 +1.2857757,.30733171,1.2016604 +.47330419,1.9776923,.24954725 +.77532168,1.0666379,1.1666143 +.34131998,.83061197,.31506577 +.55728734,1.7094062,.48604155 +.63699474,.02359983,2.5218274 +.31028475,2.0216284,.63072062 +.78140876,.85398097,.11209619 +1.0525171,2.5189634,1.0625356 +.65357859,1.0624283,.15749287 +.45616597,1.9750776,.33591757 +.85797686,.51014545,.18431454 +3.3907802,.11383826,.31183721 +.631731,.85019797,.15402046 +.80648457,.49728485,.70905669 +1.7109654,.1025061,1.6210902 +.63849444,1.5547479,.32097352 +.63416973,1.1655473,.15789162 +1.1700683,.50536182,1.5934497 +.56573425,.67849034,.86176506 +.71446847,.37663512,.61259217 +1.0592743,1.9931254,.12059661 +.79087097,1.3535887,1.058421 +.51714864,1.0654672,.6477116 +.79363247,.38312082,1.9274861 +.43025762,.74973389,.29099201 +1.3440085,.07632381,.55122789 +.61001724,.70902965,2.4777567 +.61616797,.8648629,.51810083 +.5325227,1.0145548,.94028586 +.66607603,1.1218628,.43791215 +.31218977,.76636092,.94564232 +.78008973,.23295815,.93156863 +4.2719438,1.0034862,1.9603938 +1.4489409,.8918096,1.1941096 +.62710303,1.0014502,1.9593132 +.59960669,1.3548013,.29739867 +.45189938,1.4221278,.85731028 +1.2111445,.65888467,.90524077 +1.0826266,.45762519,.42561589 +.5063107,.4322677,.34567659 +.86139186,.54484633,1.1111574 +1.540574,.21263565,.1313667 +1.8584982,.25328433,1.1084257 +1.3053496,.28096927,.45147751 +.77777099,1.1880128,.29319369 +.59216541,.33318623,.60348664 +.47536993,1.4094902,1.2871866 +.547081,.82556886,.4889892 +.46547717,.22811835,.00327734 +.58974112,1.5948136,.38902872 +.37503034,.92864184,.61662008 +.935429,.60854784,1.1747375 +1.0240611,.88169493,.38475574 +1.215266,.42928256,.56693005 +1.1854461,2.3598292,.47015598 +.3538648,.76465197,2.3700645 +1.0900322,.25272848,1.6585436 +.64956027,1.0932859,.56316598 +1.5347678,1.3109828,1.2836631 +.85634041,.39388389,.18571985 +.63429271,.27585377,1.1144796 +.57970429,.82416231,1.5380209 +1.1218929,.02300605,.87259733 +.56708475,.16799335,1.7480882 +1.2415758,.67470706,1.1511601 +.68634325,1.1661413,.37513257 +.43043985,.430878,1.8850865 +.93157156,.32733397,.57524444 +.77220534,.99043363,.46421552 +.7080677,2.4504183,.18199816 +.68385933,.27339468,.01452787 +.3475468,.29460482,.41578876 +1.9669177,.85574953,1.18739 +.58857867,2.1623029,1.8148827 +.54044707,.98390335,1.1912066 +2.17894,1.3424358,2.2008672 +1.037588,.94033888,2.17631 +1.1134945,1.7396085,.55963533 +1.1358816,.03333474,.19883813 +.98114036,1.306924,.09777563 +.79149332,.72180533,.70201935 +.61291137,.42584863,.7178343 +.90382104,3.2678106,.49160562 +.65321493,.84602013,.67131888 +1.8786642,.47753029,.67426997 +.60702185,1.8442037,.21138645 +.66788292,.27407548,.00507001 +.35693585,2.2191036,.10759528 +.62612692,.64607294,.88375831 +.74213169,.60738116,1.1170225 +.85413755,.79147393,2.1345243 +.65413577,.11677226,.38267468 +1.2313499,.45157821,.68124273 +.50692845,.58012606,.50889137 +.55046544,.33977373,.26695481 +2.8858078,.40649702,1.7156034 +.28444461,.20931973,.10829606 +.68078988,1.1693871,1.0158451 +.29336671,2.0711035,.21064663 +.75726935,.63353756,.80300042 +.56025607,.49968454,.93503625 +.76796414,2.5669872,.19613133 +.83824512,.35771899,.99932879 +.89679727,.37144383,.2151333 +1.5006879,.79133593,.072242 +.92092728,.10638012,.36212854 +1.3388965,.05226437,.79143057 +1.1264118,.16252216,.22017903 +2.3149818,.72002588,.5888594 +.65650287,1.196534,.46414651 +.91999835,1.8494555,.14762056 +1.1551808,.58393748,2.6099124 +.35906404,1.389756,.86843925 +1.3451629,1.9144261,1.1359204 +1.5255404,.43268025,.8472266 +1.0832719,.40015671,.7233837 +1.2195885,.03198902,.06115462 +.40104685,.55096062,1.989387 +.48689813,.34865715,.66943725 +.5495028,.36742842,.44810437 +1.4687964,1.6018233,.85692261 +.66193076,1.1630913,.98263407 +.88583698,.03717858,1.6351936 +.40192769,.32300216,.37169695 +.73893473,.02576537,.98172997 +.58564911,.29846026,.44067265 +1.3437546,1.9248499,.91202865 +.69081813,.43801488,.5737263 +.5253021,2.662339,.06457805 +.8726997,.30326491,1.0953024 +.31923447,.31957152,.38651596 +.95250719,.02573285,.17121332 +1.0512231,1.4119093,.88832049 +1.3227596,.76350888,.75098931 +.83634026,1.1306463,.81618821 +.43563758,.00088507,1.5000244 +.77064751,.47807705,1.9624811 +.76877684,1.465346,.55258164 +.54364388,1.3460343,.56680284 +2.0466377,.37053892,2.5047793 +.40286566,1.7309359,.61725902 +1.6765164,.55131051,1.8931319 +.77278997,.1295982,.64628554 +.82376816,.33122339,.88278773 +.58616281,.38987789,.40426527 +1.3125683,1.7051695,1.352459 +.54308095,.3741684,.21341528 +.79318984,.72895401,1.4193221 +.74196406,.29415857,.13363479 +.82915677,1.5050363,.24954684 +.29261442,.89893723,.2568095 +1.2804682,1.4514998,.50287133 +.7034346,.34939668,.732389 +.55839772,.18469925,.14805665 +.65606622,.23951958,1.4856851 +.73559442,.16568312,.08887353 +.8616713,.71083748,.36825917 +1.2359356,.02432846,.02107152 +.84372051,.67740207,.1037055 +.99282536,1.2129537,1.1815447 +.89041666,1.2247083,.05357211 +.88901367,.79954672,.95956915 +.91458718,.67367201,1.0538784 +.70838364,.51932357,1.2343606 +.50067595,.06669617,.7639721 +.62716632,.95051975,.56935978 +.93156731,.76456221,1.7176297 +.88869088,1.0012876,1.1719321 +2.0741648,1.2081842,.62962233 +.73648539,1.049765,.65320502 +2.5352789,.46521758,.30449399 +.4761455,.89442403,.73326443 +.79801146,1.1221438,.15684671 +1.0294756,.8212334,1.4998763 +.69174109,.57324351,.53214994 +.80217339,.85572232,.5116344 +1.1908462,.3915568,.26227242 +1.5318842,.65172904,2.4162174 +1.169173,1.7967632,.99409589 +.37420282,.98072394,1.2254166 +1.2874869,2.3242323,1.4862002 +.89701856,.40579221,.27111664 +.71926558,1.8075583,.5340692 +.78925039,1.4254869,2.7361946 +1.5931395,.90958588,.45467033 +1.1937159,.98474367,.74113095 +1.1017688,.91685438,1.2518094 +.69113276,.38648259,1.6759058 +.91365677,.34184598,.8121344 +1.0217563,.88352454,.57713784 +1.3051626,.789205,.50149775 +.66387095,.77773939,.44988473 +.53892144,.88982908,.12142961 +.8763571,.35333798,.49396483 +.51990081,.31698455,.22399249 +.30561495,2.0228178,1.2632575 +1.4182038,.37244283,.18590222 +.54244923,.12192526,.33278855 +1.2324632,.94147539,.15112714 +.438567,1.7584727,.72934194 +.51313286,.28294854,.30361102 +.62585896,1.6077578,1.1063216 +.37199814,.46980057,.57578666 +.59819794,.17982468,.6150238 +.75007661,.19416245,.29464098 +3.4114131,.53445707,1.0556445 +1.6913084,.24760823,1.4004497 +2.3474595,.46207533,2.1678098 +.58556543,.79772913,.82742971 +1.5016744,1.3128748,2.0452426 +1.1694394,.44444019,.38586301 +.67610621,2.896767,.91621922 +.73485725,1.2848205,.34922785 +1.7244981,.99705422,.62350869 +1.0585009,1.6474923,1.3163476 +.82507317,2.075097,.15568921 +1.014535,.56430676,.9573805 +1.2397361,.10657072,1.1524664 +.68909044,1.5470982,.05443284 +.58308949,.44611293,1.5514125 +.58200282,.91414875,.21726214 +.30894926,2.4952076,.02470478 +1.0884753,.03493962,.47692708 +.91017924,.26712434,1.1894779 +.92255685,2.6969875,.30003315 +1.3747829,.38068559,1.0428675 +1.0666783,.44561008,.00521101 +.55835165,1.3804542,2.4465125 +.92040901,.43301356,.12998245 +1.7191181,.31511494,.03754502 +.49408109,1.3070264,1.8452556 +.88983123,.61756838,2.0815128 +1.0391704,1.0492902,.06635251 +.45639846,1.3345446,1.3393613 +1.0228011,.53195216,1.9032228 +.44326043,1.3032302,.75667257 +.83378483,.03299866,1.4855782 +.79506357,.00356654,.32840777 +.72609094,.58828661,1.3251875 +.64340224,.16072646,.84887674 +.84171795,1.2371808,.50673651 +1.3549733,.89009333,.67433056 +.8814002,.33381148,.39726583 +.69479836,.43586994,.07341284 +.74726925,.89198238,1.177998 +1.1542199,.30960868,1.1834633 +.88573735,.25658087,.62411445 +2.3617841,.21543872,2.2063233 +.40114723,.96495217,.81752932 +3.3429089,.03020624,.77290182 +1.3487533,1.0297385,.6811084 +1.1950228,.57792634,.14183454 +.94328533,.91003754,.97642728 +.59235861,2.0181869,.37682137 +.60148707,.45393159,.60115332 +2.2082453,.38049952,1.087433 +.94215936,1.2199476,.06980192 +.72348579,.99272462,2.6571242 +.90108334,.76935711,.07687662 +.57335832,.69189714,.16023379 +.47296942,.16663937,.76215969 +1.375877,.24405406,1.5175541 +.48416638,1.0048422,1.9560838 +.81126719,1.0402995,.31971076 +1.215533,.08963132,1.0626661 +1.3203109,.93797143,1.6199694 +1.0839114,.71953927,.72248607 +2.160469,.47038383,.46180036 +.470617,1.2821737,.27097813 +.94583628,2.4387819,.10517152 +1.2302225,.65417419,.23255882 +.70235819,.11667994,.48695198 +2.3352843,.36960518,1.6406842 +.69525537,.3856538,.01903336 +.99023204,1.1462073,.13422544 +.62773292,.21392274,1.6166791 +.64783617,.80504815,2.2847474 +1.4946057,.98882658,.5293734 +.54135191,1.4718894,.67665749 +.36159035,.88475733,.5748374 +.58290494,1.0864112,1.8851517 +1.194118,.47814764,.26182289 +.46245935,.61508747,.38973 +.48271532,1.5268814,.65880256 +.76551453,.95027841,.20044263 +.32549391,.53573028,.86713736 +.94681895,.46681656,.98553695 +1.060129,.34942192,1.1302202 +1.2397018,3.0589721,.73764369 +.73529256,.34578904,.43733856 +.74703861,.95119914,.57065364 +.9995108,.64927694,.43989346 +.36310226,.29820136,.79684519 +1.5891291,.12947957,1.9254194 +1.1070578,.82290137,.39238027 +1.5676874,.13586861,.24713685 +.35186261,.63477134,.90746997 +.64737177,1.2974524,.6638376 +.4855823,1.6431649,.81430501 +.69657762,2.1856142,1.3469465 +.66158275,1.0899399,.21412105 +1.4304916,.4538419,1.8474065 +1.7889894,.5845976,.87957238 +1.1010931,.30987206,1.1745883 +.57841418,1.2206036,.5065269 +.46275782,.32568167,.95409044 +.57470345,1.8576932,.94036035 +1.8549819,.10368861,.43357035 +.92190821,.15237263,.44559683 +.66643195,.3779761,.30705424 +1.1390424,.231729,1.0324031 +1.6598459,.94024853,.43334547 +.3880429,1.64174,1.106961 +1.3737289,1.1881118,.26970211 +1.0312676,.68071112,1.5625367 +.44948986,.61678217,.44282634 +.84966828,.82421862,2.3873788 +.66327301,1.5218039,1.22108 +1.0638779,1.1958644,.49533318 +1.989238,.37044368,.57911027 +.69973513,.41371488,.79943754 +.75246882,.5421387,1.2611262 +.69239645,1.9982047,2.5635951 +.52894818,1.7444342,1.1325203 +1.126291,.17355306,1.1701021 +.60362594,.58133033,.96881144 +.99658148,.36845655,1.4336214 +1.2027726,.31323812,2.1984738 +.82027179,.99934939,.16355596 +2.053287,.353755,1.8062204 +.9317063,1.1433042,.88672085 +1.8514027,.33274262,1.7468657 +.69880839,.24809942,.45163822 +.59118881,.64756144,.04647427 +1.2840613,1.9991838,.69782886 +.81943184,.58956967,1.7564021 +.37806632,.74708395,.71714361 +2.1204935,.09648623,.93418701 +.79381424,1.0147907,.25409123 +.43614282,.07256752,.54500979 +.60708228,.26426753,.08480095 +.67501258,1.5156612,.39888031 +.63328267,.86787039,1.9820277 +1.1501999,1.3783198,.34447545 +.9302828,.20188176,.44855265 +1.1932953,1.0006321,.97161083 +.32670778,.62546619,.59775453 +.41992468,.48574814,1.9550774 +2.7459874,.42038665,.72244445 +.84955432,.5341694,2.1021005 +.4076315,.5745884,.67891909 +1.2434634,.02786424,.84422425 +2.4819505,1.4840978,.34875661 +1.3551097,.28206127,.61332836 +2.2490407,.50393916,.63044231 +.49459837,1.1699907,.79521293 +.72080592,.3202198,.39022921 +.86282288,.60067482,.43132817 +.21793262,.69075133,.04613067 +1.6865112,2.3246449,.71624853 +.28629805,.03312004,.5834969 +1.3654633,1.0565936,.58928432 +.56773911,.68392307,1.2297566 +1.1859566,.16710599,.36608044 +1.0006247,.24692905,.7331095 +1.6484844,.54958967,.86412071 +1.2310605,.38203012,.71618826 +1.7543647,.53162297,1.1342631 +.54401836,.47825041,1.262528 +2.7156598,.88191488,2.6509212 +1.5944743,.0694574,1.1986272 +.52337544,.89377994,.00801692 +1.0092477,.33029586,.43062321 +.3379068,.48586444,.28459724 +.49019782,1.5987365,.29639369 +.46886108,.03397056,.24706054 +1.272487,.34577111,.16037003 +.64732601,.18841584,.50923861 +1.5019862,.05465162,.5564646 +.90852619,.67330633,2.1613967 +.874314,1.055063,.81690181 +.74320766,1.1222877,.90406759 +.9056512,1.0147402,1.6372362 +1.4620019,2.2476981,.64098972 +.42096708,.18715177,1.3751332 +1.6935804,.97939654,.93058871 +.505485,.94577374,.32682695 +.70169062,1.4345029,1.6034119 +1.13963,1.5072877,.01065067 +.92038968,.48408777,.98218565 +.21862976,.04052945,.35946068 +1.0363188,.49257363,1.6380666 +1.0332969,.34097357,1.7731305 +.58727454,.69649477,2.5000182 +1.1550882,.73646752,1.2249999 +2.1183521,1.1066203,1.7218768 +1.2151723,.52463439,.9505218 +.31671291,3.420407,1.1062649 +.34805973,.23330908,.27411597 +.87035408,1.1051244,.69017436 +1.0724623,.03627517,1.9961652 +1.9834165,.29650187,.13120573 +.51230051,.34622486,.77184213 +1.0553203,.56374659,.01000915 +1.5818118,.12410894,1.3144439 +.69181986,.37901358,.27092228 +1.6414979,.02654505,.30602448 +2.4759818,.12625672,2.8472004 +.6947914,1.2603843,.83781288 +.81534421,.80767223,.02038831 +.79318495,.75036052,.27659616 +.84016939,.48805203,.57697101 +.71497433,1.2472713,.91438491 +.27036129,.80200452,.63363922 +.89171646,.60413055,.79252341 +.76684142,.12054458,.1789123 +.57589308,1.2793882,2.3652677 +1.0032031,1.8921832,1.3672967 +.8692213,.17823549,.76079401 +.89758588,.41293203,.53915281 +1.1347941,1.023798,.17660051 +1.2673469,.22050896,2.1541949 +.26182253,.30829938,.52039055 +.86086406,1.0108168,.66765795 +1.3619319,1.077667,.92853464 +1.5196714,.70682559,.18604748 +.36551129,1.4355367,.58256094 +.77896527,1.6131393,2.7095187 +1.065269,.25287555,.39386977 +.40365695,.95836951,.24604198 +.76437672,.37110477,.21624093 +1.0557274,.59596569,.62381199 +2.2115301,.50323518,1.5057576 +.51044807,.71412319,.35612878 +1.2997929,.21251603,1.4238119 +.54590639,1.9558168,.02995558 +.8310908,1.0776525,1.6776696 +1.8271299,.20574498,.11758352 +1.3070939,.16510593,.63761007 +.52885413,1.9043273,.35043756 +1.2151683,1.6641346,.65316006 +.76773479,.83863795,.57639993 +1.5615595,.07479327,.83185351 +1.2865405,.23267806,.08524491 +.57282377,1.0938974,.05025663 +.56159661,.43964077,.64256683 +.53218252,1.4950038,.07966372 +.823775,1.1959797,.65771973 +.579359,1.0156166,.27661089 +.99593246,.06152482,1.2200386 +3.4955891,.5873078,1.5244299 +.66217946,1.7065921,.67397085 +.80230397,2.1407697,.82464717 +.715958,.53652659,.81467921 +.80282521,.12755696,1.4587633 +.27714028,1.3735502,1.8600945 +.92758887,.05672752,.72678044 +.65279584,.7292609,.75290102 +.52652637,1.0489602,1.4392794 +.83495284,2.9180908,.0124543 +.32973331,1.7927582,.40979201 +1.0554837,.08163678,.2568033 +1.3766826,.18526082,1.7797445 +.88714603,.77116587,1.2221553 +2.9432735,.36141369,1.2393824 +.7149108,1.5301054,.52235789 +.63259235,.49007579,.14491921 +.64467001,1.4535906,.39924841 +.66468403,.64850983,.46009495 +.79321052,.3652756,.01132508 +1.0899525,.15286691,.31763501 +1.273308,.74092545,.42510493 +.7972666,1.2165594,1.3455887 +.4890166,1.4130475,.85621193 +.88737726,1.6224435,.37586785 +1.0551012,1.4547246,.752247 +1.1380043,.78836334,.67480379 +1.0595969,.30002101,.18645252 +.42536722,.74522189,.40322101 +.67826295,.30823766,.94284633 +.53069935,1.0898076,.06513506 +.65370862,.63295584,.51927536 +.57383221,1.3323153,.5446979 +1.4781768,2.1889707,.47482377 +.39996269,.68116969,.9939851 +1.4121681,.70983483,2.3436274 +.65804857,.10795975,.36379354 +1.9920671,.58858877,1.1742812 +2.1594686,.35818666,.41772163 +.77266907,.78269455,.53786214 +.85245249,.21965338,.24990869 +.92693692,.87378113,.35223123 +.48351647,.28689352,.93752447 +.40750211,.43632113,.04807392 +.64559383,.35007185,.35722982 +1.5985264,.30664503,1.4602792 +.75334363,.3212062,1.799503 +.68711778,1.7800525,.22502233 +.57755167,.0626155,.22586404 +.86996547,.42892913,.41463311 +.70003108,1.4148246,.80830049 +1.0979106,.48539352,.30931061 +.53685816,.67293561,.7539381 +.43019029,.17747958,.21747938 +.91824569,.8487827,1.5012343 +1.7467574,.47740869,.32399193 +.50118609,1.9921765,.79928077 +.81717275,1.9837984,.65646883 +.97216242,.92953129,.81407501 +.46555152,1.2993101,.05414942 +2.3923387,.05462974,1.6382837 +1.3936642,.00634863,.72556365 +.35360885,.73847046,.35497975 +.7289999,1.0856874,.80828266 +.48267386,.08532251,.18601184 +.86428592,.66330306,1.1418473 +1.5907359,.03513544,1.6121869 +.65105326,.8526448,1.7696305 +.54727419,.25649964,.05396143 +.71631263,.51472634,.58491236 +.47101324,.2850101,1.2473842 +.85177402,1.6225751,.03943124 +.7995668,.35758363,1.4784083 +.52408799,.84536628,.03955428 +1.6743689,.11218795,1.4006977 +.25865299,.85766838,.54809748 +.56926345,1.0449858,.43137563 +.27932429,.82038171,.83145868 +2.1331923,.6889618,1.371532 +.8716622,.83471444,.265298 +.72468369,.6607476,.06272386 +.93831557,1.0325442,.30578856 +2.6510637,.23540159,.54925238 +1.4263952,.20701352,.86578992 +.55169073,1.1563614,1.0600599 +1.2167336,.32393651,1.0534032 +1.6215891,.35511064,.47553243 +.51924537,1.1379285,1.8315511 +.92147998,.99944731,.31892366 +1.8842691,.78990561,.37361379 +.50315731,1.0910503,.70374151 +.47079134,.3984896,.90798743 +.71045977,.90272584,.61664349 +1.5661616,.3346186,.92590099 +.76849307,.31743892,1.1948175 +.65674753,1.8782124,1.0407772 +1.2379745,.13566558,.56484325 +.40787038,1.5923149,.99441594 +.73585947,.05548193,.8750241 +.31630791,2.1178645,.13388574 +.85072063,1.2952931,.18084258 +.72800879,.00707065,.83745694 +.44979367,.80854936,.4136699 +.9328521,.11701647,1.478742 +.62497459,.6642141,1.3284318 +1.2001364,1.7180759,.84252955 +.57737656,1.3639871,.37121495 +.58380726,.01503305,.91800236 +1.4165692,.13562076,1.0036191 +.86601531,1.1009913,1.2649126 +.53999773,.86021996,.15934581 +1.0098463,2.3555535,.11306172 +.86709054,1.5203202,.2314239 +.58538255,1.3397637,.76743825 +.89672364,1.1268528,.99670904 +.69686463,1.3590793,.17329439 +1.0464013,1.5610509,.59554845 +.4625889,.31529129,.69144818 +1.7822987,.35738857,.00499828 +.62487696,.83430559,.46931344 +1.2887913,.48065836,.61507448 +1.3175066,.74437877,.70233424 +1.2196806,.58418285,.97674865 +1.2003799,1.0777046,.92383936 +.87287317,.56005898,.0184069 +.67654667,2.2667026,.45571923 +.7354277,.32356031,1.4016945 +.79949712,2.4377084,.81241143 +1.0283971,.2150432,.32267507 +.73621347,2.2857036,.51385069 +.37892014,1.1948052,1.1784538 +.42197314,2.3013697,.87441486 +1.1077534,.2626042,.00927381 +.47656021,.2259232,.92252669 +1.2008527,.01533034,.10058467 +.64105521,2.3479026,.63415613 +.70705643,.1547865,.93461342 +.8730099,.16476825,.5971795 +1.8971383,.4977284,1.3899099 +.90676297,.36719265,.21537312 +1.3391178,.00436421,.47147799 +1.3644192,2.6422317,1.2394257 +.93638049,.82811245,.51732809 +.39341815,.48367256,.11058167 +1.0010478,.24944524,.31101066 +.47313441,.92960067,.86703249 +.30988301,1.2706957,.76569132 +.8351943,.58019265,.38081873 +3.0057436,.15285206,.46409749 +1.0234286,.66876735,.23701993 +.30331364,1.4401363,.06848713 +.34912757,.78000177,2.0768352 +.76149898,1.2000131,1.6448309 +.60279266,3.2471069,.32397774 +1.0710855,.31773031,1.102276 +1.5004074,1.8735423,.10182841 +.82926286,.24219728,1.1655895 +.6294799,.12324558,.32452171 +2.6530375,.07765494,1.1825967 +1.7561561,.95246562,2.6670431 +.55140827,1.0322601,2.2601061 +3.0285694,.44933057,1.0052239 +.33263298,.06489555,.68399196 +.49740629,.34407307,1.2003952 +1.2718437,.25480929,1.5096956 +2.8270664,.64144618,.49659444 +.77293786,.13831774,.75405313 +.69116145,.52196754,.3224995 +1.4036552,.32147489,.114957 +.95819553,.92180697,.08781331 +.49920419,.07053763,1.1584169 +2.4106431,.42147067,2.3957833 +.96346362,.25219739,.02573282 +.8244643,.53818792,.40819956 +.48758372,.82495708,.29558399 +.54631946,.30652398,.84943035 +1.0188979,.38101386,2.89662 +.72550698,.63449418,.58931672 +1.1475097,1.1995507,.55563177 +1.7466163,.25355146,.013868 +1.8923421,1.1387883,.31575246 +.97175914,.24500393,.44396005 +.61683021,1.4156368,.53071965 +.65755675,.12247929,.52576976 +.91091526,1.9227937,.2300809 +1.1505983,.14105141,1.7121584 +.97440491,.77416331,.05751173 +2.5810988,.28531018,.4604668 +1.1191475,1.0020533,.0144312 +.83199044,.59307081,1.5683815 +.43646975,.44256922,.41197031 +2.2491874,.54834148,1.2211835 +1.1618754,.78528417,.54592136 +1.2331296,.38836476,.23697415 +1.179888,1.3411653,1.4244052 +1.9116589,.50459418,2.4273188 +1.9892723,.36127794,.54603045 +1.2331723,.35721475,.80273428 +.81127108,.7750552,.05958352 +.36306815,.69392819,.39526291 +.67864277,1.236569,.33317944 +1.2872099,.23894265,1.1579675 +.5503036,1.527676,.02636099 +1.8635002,.6137944,1.3001407 +.7315219,1.733515,.47434882 +.50332025,.12305402,.48113652 +.48109182,.97331597,.23759678 +.53817888,.99486449,.77220147 +1.4333326,.38858176,.20060965 +.73914274,.35653744,.76953028 +1.5003034,.36423251,2.3848993 +.4372386,.13238871,.59814975 +1.5693431,.26369509,.89529896 +.50434529,1.0997774,.34756569 +1.2758373,.32228941,.35270301 +1.1883871,1.4295901,.11917907 +1.1584141,.21972948,.26679576 +1.5972567,.52161036,1.7230452 +.56613234,.92809727,.19633954 +.49672272,.70138268,1.0133442 +.94723082,1.2960408,.25079213 +2.2641173,.12330307,1.2722687 +.79111257,.64778496,.54148415 +.77157723,1.1210931,1.5772345 +.4626293,1.2770877,.19857411 +.72622346,.04906961,.44025891 +1.1533485,.2461503,1.6257162 +1.2358708,1.0430777,1.3978635 +2.5049629,.83738848,.22430461 +.86407335,.22193697,.36401609 +.33084355,.00403308,.35908056 +.83172763,1.5338596,1.075094 +1.0674318,.42852706,.28993387 +1.3254895,.28781884,.11461419 +.57668328,.00755957,1.1289198 +1.0119745,.08198968,.51229974 +.87949134,.47699693,.10111848 +1.0120099,.76124744,.10114049 +1.4240848,.36847,1.7744748 +1.1560984,.41236239,1.147717 +.43997278,1.925335,.51681224 +2.5084456,.01807828,1.7084212 +.82732517,.11072908,1.1599733 +.73574335,.81098647,.35725155 +1.2774181,.11567584,1.0321255 +.60211864,.07639068,.16986849 +1.8693851,.24781954,.82509991 +.72434324,.31491845,.25617566 +1.0718458,.55481597,.33086815 +.61432356,.00342311,.4781966 +.98061002,.92268568,.06041532 +.85810181,.27121191,.18113983 +.67994012,.97385497,1.6208803 +.21298925,.5588791,.08864221 +.60408934,.92267504,1.2226699 +.6811732,.26597736,1.2268048 +1.116605,2.0225496,1.3213876 +.35412133,.55204513,.42914595 +.71643529,.51754647,2.07353 +1.7062768,.13267308,1.5981324 +.52395062,.77188116,.88452619 +1.5906267,1.2331892,.61129721 +2.5069519,.39806742,.01582876 +1.2214322,.75481496,.47870969 +.76711999,.59576523,1.6431032 +.57284536,1.0487631,.52296277 +1.3351873,.17826985,1.1613947 +1.3563493,.02634376,.05134641 +.52756712,.72769905,.13570473 +.61075044,.5389591,1.1827968 +.97291149,.92590066,1.4695655 +.31529803,2.4906057,1.1716307 +1.8421405,.12359678,2.0674046 +.96223603,1.4762533,1.640695 +1.0770323,.95386904,.04359406 +.49633976,.20410116,.19047096 +1.1862466,2.0852739,.12581738 +1.1642478,.0217492,.49079805 +.57885695,2.1063786,.10875709 +1.3091694,.16496519,2.0755548 +1.97728,2.0544549,1.893447 +.8314575,.68164768,.05856218 +.81548122,.48496976,.99913318 +1.7986788,.28705798,.65611362 +.87715377,1.0576695,.84990491 +.65733675,.17931731,.59490258 +1.0452916,2.2737148,.93049394 +1.9901227,.60902496,.52519347 +.4078416,.0605546,.1152506 +.58120192,.95154912,.99027506 +.93902425,.56183034,.02470348 +1.0446092,.08389608,1.1479323 +1.0167048,1.0913105,.53926424 +2.1796076,1.025449,.50028307 +.6113599,.49291369,.22662647 +.36531382,1.0123045,.78060891 +1.6385512,.97988165,1.8786899 +1.6856591,.47611517,.49100152 +.39856292,2.8291156,.19680989 +1.3601237,.85323235,.26781283 +.52302383,.16038677,.27344931 +.55916009,.10618201,.09361617 +.70110028,.81058882,1.3041039 +.9803952,.20662009,.14665887 +1.5981231,1.1949757,1.0882245 +.50950395,.2987773,.14522054 +1.3463974,.98016318,1.0993909 +3.0850699,.14047784,1.3565747 +.37086221,.86517607,1.6908653 +.50873961,1.0427568,.41120639 +2.1101041,.29419249,.22879963 +.50006609,.43296645,.3746812 +1.638576,1.0798714,.73520068 +1.047248,.5903468,.78480356 +1.2790698,.1520551,.98355856 +2.302541,.38482821,1.8953924 +.58674045,1.4723951,.90509558 +.60274354,1.0762136,1.4762697 +1.259189,.46759044,.20270426 +1.0802168,.06091519,1.2186018 +.93341349,1.0533653,.76704283 +.3664642,.63016327,.58823637 +.32365388,.71671021,1.7434947 +.71335536,1.0557511,.85847196 +.98011748,1.1046532,1.6659719 +.50424365,.22942463,1.252973 +1.7002473,1.1474489,1.0974629 +.71426255,1.2161666,1.5374398 +.33007251,.48622908,.13342124 +1.6418581,.87575889,.97221111 +1.2366709,.0224669,.07373399 +1.2620157,.2008089,1.2554587 +1.0848278,.17511585,.37071473 +1.0709367,.07224796,.3955063 +.96085316,.72297848,.91046585 +.49884279,.56990073,.98005383 +.50866708,.80803518,.79146017 +.64548184,1.7474652,.61779215 +.43573518,.94752284,1.8567786 +.82514112,1.1136963,1.1718482 +.52551664,.11688178,.34029471 +.65662997,1.1042888,.88163011 +.71767993,1.1593168,1.0167524 +.4810426,1.6403087,.21120966 +1.0304796,1.0920935,.2407036 +.6356102,.88643541,.9817863 +.6718022,1.871328,.29767223 +1.189957,.08043505,.85220947 +.98760423,.07968786,.30610437 +.71520165,.05132108,.64938024 +1.1699617,.02935154,.52576498 +.63868573,.72122315,.51311138 +.99064709,.54535619,1.8968183 +1.9284664,.46867426,.02479952 +.58831241,.47154337,.70161832 +.96197487,2.3677546,.52169795 +.27031019,.58503128,.45334275 +1.0829201,2.3672832,.99179624 +.6013822,1.1887008,.57262211 +.82141922,1.6450806,.05946218 +.5316923,.29413357,.29521191 +1.2241618,.78388624,.51781773 +.30965554,.51040055,.16140207 +.62499764,1.58077,.79637605 +.5575199,1.2543727,.79033576 +2.0421846,.71677773,.47451358 +.51766344,.27692175,.56161294 +1.7536269,.66271718,1.4809959 +.70075854,.70687564,.73798266 +.64323139,1.2507007,.10365565 +3.0904903,.08369113,.58857745 +.47097132,.20780487,1.0539175 +.37961156,.93338933,.78583212 +1.3178942,.15627718,.23751534 +.73398963,.08273621,.06675783 +.27303502,1.9884357,.87200649 +.75501394,1.1775337,.43068743 +.67040073,.13153169,1.2052727 +.7812538,.40816767,.52424054 +.90825308,.39168736,.61267762 +.36727966,.77866858,.62671434 +1.0387911,1.1549687,.46178137 +2.230847,.16505921,1.4680998 +.76497772,.72878554,.58698905 +.92771361,.28394784,1.5409581 +1.269552,.95543294,.40812555 +.8296091,1.6045009,.32323654 +.81186768,.22039721,.07448953 +.84207247,.15920592,.08285622 +1.1548595,.12656219,.62928625 +.88990319,.48817446,.37987893 +.44817905,1.8491884,.08822218 +1.367795,.56102411,.59340589 +.73601058,.20779751,.24371187 +2.5150086,.37471138,1.2227303 +.59540584,.47012508,.39871038 +.89618838,.13005448,.12559323 +.90557692,1.0624523,1.3112946 +.2763462,.34001933,.36995001 +1.2035367,.93569792,.33214124 +.4175339,.23795984,.15724902 +.88921622,.30403467,.35351807 +1.6478617,.77154579,1.0915721 +.3702588,.83153189,.43646973 +.53202696,.06472034,.30439397 +1.387855,1.1320764,.44393436 +.81519903,.76297049,.67899386 +1.4165274,.12035016,.12529454 +.81896386,.20290608,2.0002231 +.68491898,1.8708533,1.3906969 +.73384633,2.3193151,.6624991 +1.4467684,1.0026893,.75248469 +.53140539,.01421975,.3118922 +1.1228736,.34280702,.60752068 +.2875645,.35679916,1.5242049 +.94752301,.55719405,.66038311 +.76914461,.42767518,.26116162 +.69952221,1.3382188,.23726113 +1.1575469,.91966393,.4090707 +1.5388436,.40142842,.55475053 +.64059347,.01367088,1.2518121 +.58409402,.39301023,.95007631 +.88071415,.29833107,1.0497627 +.8631434,.42065454,.45544601 +.7934416,1.0226576,.65598416 +.50168055,.8967787,.3441192 +.77279352,.25341269,1.5677263 +.94725662,.48665475,.86549383 +.72234606,.34770864,1.0039145 +1.0179512,.9516059,.91377641 +.73672805,.7178585,.56863379 +1.8100034,.5253085,.48921999 +.79602946,.38558908,.50188051 +.75251874,.33160269,.23122992 +1.0793451,.74268744,1.3931456 +.32718011,.49856948,.62681574 +.37588026,.69951704,.97837533 +1.494042,1.1384014,.22076171 +.51584045,1.1868797,.30625025 +2.0719332,.07859879,1.9850289 +.6792936,.04309835,1.8054275 +.64166937,1.0413629,.20774138 +.57657952,.53392852,1.2320351 +.4703195,.54748805,.92606463 +.56275739,1.1676266,.47968637 +1.2974041,1.4112042,.22730172 +.65891407,1.4015397,.08861958 +.50245214,.98412357,1.3520239 +.51243569,1.233968,.79551533 +.78955993,1.7289544,.02561049 +1.0345137,.37334744,.0233454 +3.3634112,.44313989,1.7068328 +2.7818378,.27698311,2.6244595 +.54024521,.46941041,.5881349 +1.0825567,.20433353,.15499836 +1.0312198,1.4470432,1.7474426 +1.2209562,.30029806,.02149235 +1.0341307,1.0519059,1.3731709 +.98683507,1.1096054,.55498272 +.41108303,1.6542934,1.2297413 +1.287069,.11660507,.22034584 +1.4941607,.42827481,.93482804 +.74568934,2.4449615,.86806149 +1.8984822,.29535067,1.348673 +.49286682,1.6170405,.55768677 +2.0717521,.86401896,.19807589 +.71698604,.90586517,1.0676149 +.43330365,1.1804276,.81859783 +.59444508,.92374998,.70279431 +1.0431758,.75945981,1.1225809 +.5274167,1.0215801,.66218873 +.9771125,.1650301,1.2942327 +.6517912,.5176945,.45537641 +1.060487,.79114573,.78218945 +.66452039,.74995106,1.091687 +1.7169074,.20624946,.25005569 +1.8283763,.64537465,.39907273 +1.289343,.02170129,.27814291 +.43794173,.79246292,.02485723 +.3935841,.33785854,.84880443 +.53268921,.5084792,.24627322 +.32964825,.92103604,.0528294 +.60088624,.55239945,.7013664 +1.0251638,1.0272594,.08757574 +.80662788,1.7043866,.42790232 +1.0760771,.95952729,.4262365 +.94174632,1.2600859,1.3491908 +1.8869116,.54947404,.45990549 +.33611575,.69982975,.32373944 +.72747288,.68915096,.16299871 +1.6074022,.57113355,1.7723517 +.42509623,.3047651,.39195343 +.67373902,.42031613,1.3555154 +.68338141,.16684166,1.3664204 +.59575405,.78241758,1.7141564 +.17528433,2.284681,.60521582 +1.4566827,1.169491,.36440423 +.7662062,.9151815,.46316635 +1.9830532,.21293416,.12267309 +1.1422026,.8501994,.42362709 +1.0586239,.29284814,.88659448 +1.0560935,.43299348,.79810623 +.55329101,1.224509,.40639793 +.82259786,.44554177,1.0407587 +1.5235227,.10486949,.3962702 +.66252569,.9552888,.75655069 +1.0382146,.19265108,.62464998 +1.6534492,.31380721,.51960993 +1.721107,1.5934634,.7440996 +1.0623829,.02669837,.63549614 +1.7379996,.82216373,1.376918 +.63357612,.3051668,.28136963 +1.1821222,.25810656,.64660862 +.60797841,2.1888102,.33305211 +.62687759,.6973552,.25202212 +.83900982,.59870348,.35498751 +1.7444629,.79829989,1.3578691 +1.1064241,1.7608583,.58167034 +.92562293,.24793248,1.0359951 +.97270889,.61419417,.26815412 +.40759591,.40701667,.42971194 +.53503017,.22968726,.0149177 +.97015505,.04643011,.06674175 +.25333916,1.7049192,1.1596438 +.56450117,.71074449,1.0617811 +.84144074,1.9736317,1.3126476 +.55059679,.36566204,.97396776 +1.4508736,.58801277,.16785852 +.99053957,.00474356,.42345965 +.39202319,.48209336,.35942193 +.4945377,.7001633,.10512137 +.55679371,.66182605,1.2921235 +1.0071505,.62454907,.09711391 +.78987502,.76930219,.95661428 +1.1342324,1.1341331,.05295369 +.65396042,1.140594,1.2559642 +.57323831,1.7358617,.8069427 +.89015632,.49311475,.0140692 +.93816853,.82362964,.69807764 +.32827314,1.7184407,1.3577723 +1.8724553,.31359255,.46167598 +.39317955,.43414824,1.172667 +.61286895,.52635784,.40438458 +.68024912,1.1938029,.12635161 +1.3869103,.72475171,.52244096 +.34147447,1.1879487,.06058397 +.92630046,1.2076898,.41815275 +.98886458,1.0113723,.81661899 +.79635289,.47073707,1.2580806 +1.1593618,.79256437,.19313477 +2.1078833,.81892291,1.3198947 +1.4461121,1.3413872,.37965789 +.39636103,1.2340055,2.3927344 +.71168415,.43061984,.6085949 +1.333254,1.3911113,.88577684 +.80996085,.43601947,.81182267 +1.4579275,.66583432,.23339169 +.71669708,2.2834213,.2862493 +.33569637,1.6395691,1.0983733 +1.3072769,.31596382,.55452541 +.67124758,.34134098,1.5704343 +1.0723153,2.6004536,.6571892 +.89686301,1.2240067,.73270829 +.75630272,.65057693,.45077318 +.78770068,.46350044,.73295792 +.50190024,1.041246,.18391473 +.98675829,.92237254,.32574933 +.37831033,.37049384,.90540017 +.42766249,.80444291,.10360404 +.35930572,.65041639,.47713156 +1.0466575,.34988007,.1309354 +.55812781,.47759801,.54020186 +.68978635,1.1991924,1.2981698 +.92172248,1.2806854,.17909124 +1.3808237,.59451643,.92548215 +.38716083,.60841405,.11920601 +.63285562,.17524964,1.1393192 +1.0949609,1.5778466,.60980383 +1.834559,.23522033,1.2917344 +.56710538,.84028942,1.0616261 +.92638481,.37600438,.49664467 +1.1192328,1.298819,1.4370062 +.47116794,.93463025,.65726383 +.23625466,1.9151085,.41016301 +.51376272,1.7275568,1.7729751 +.54607384,.80225027,.39942857 +.60064414,.81100387,.34655625 +1.1331114,.34671021,.04970786 +1.2336519,.42387052,.8636751 +1.1183916,.58587212,.64482883 +.71090656,.44395366,.06158654 +.74373378,.02663382,1.0548925 +2.1189078,.02733606,.92142718 +.82785287,.64417005,.5176707 +.90203447,.18097773,.85438679 +3.3760128,.24679603,1.474331 +1.0765917,1.1119121,.86925481 +.5485592,.27689289,.03594817 +.53764488,.89172623,.71319982 +.65758092,.26525183,.58801293 +1.0913939,.30241275,.57650097 +4.0757976,.00068839,1.057489 +1.9206152,.03080365,1.2906101 +1.1348367,.56859558,.57420773 +.84413844,1.580029,.68556216 +.88886566,.24839107,.03390795 +1.0285063,.04991,.90876899 +.94933577,.42051852,1.2977159 +1.2215492,.22278486,.07409274 +.73331678,.01305484,.41442286 +.84740374,.03732605,.9818869 +.48995975,1.3511323,.35273648 +.83510995,.38013446,.52634762 +.38484672,.76848324,1.4836661 +.93573245,2.0066842,.79731347 +.56801273,1.4928883,.18894163 +1.8580919,.90718618,.09587371 +.79784162,.68084161,.44838416 +.90983385,1.3437813,.1391841 +.47453377,.12667712,1.5841472 +.33270611,.97274303,1.0886323 +.58543633,1.1124908,.03600682 +.5588509,1.4623101,.4547495 +1.1394947,.60096126,.61276938 +.58419667,.68552983,.1724324 +1.0354194,.21674978,1.8761353 +.81832131,.98201237,.94858581 +.50751899,1.1844116,.9705315 +2.8448442,1.6435989,.22168309 +.66897293,1.4895652,.8980126 +.84056239,.80262624,.57575472 +1.3707192,.24083447,.70214297 +1.1518444,.4395674,.53063814 +1.1880977,1.3620394,.93926326 +1.3722733,.23034011,.55543761 +.46141888,.95889214,.24768459 +.49056999,1.7283156,.56107616 +.62749952,1.1387774,2.1855276 +.82516578,.14258106,.54429823 +.64215118,.52972395,2.3765251 +.42162177,2.1088046,.6146208 +1.8771195,1.2765965,.70770302 +.52671812,.40529108,1.4974451 +1.5248194,.67719201,.29284385 +1.0017927,.13332332,1.7830826 +1.2744009,.7508774,.47977395 +1.5617382,1.2059465,.64470895 +1.2730795,.14700177,.69858535 +1.1309963,.17839974,.3359337 +1.2543509,.38146081,.33014566 +.82393249,.4328778,.78277738 +.43295221,.4766918,.13558835 +.54269461,1.6676313,.19826792 +.86577588,.40995898,1.0771539 +1.5933557,.75189975,.17493952 +.64729881,.01365504,.03978926 +.71834046,.90685341,.18883828 +.45215288,.3672974,1.6963211 +1.3676813,.12199874,1.1969183 +.6817878,.03223106,.21898969 +.46069227,.73839109,2.8360969 +1.5704172,.35447029,.70111578 +.38092049,1.18028,.32495717 +.72506325,.80593346,.80319052 +.46138638,.36054232,.15353689 +.80671067,.25495268,1.6670823 +.68220263,.74080643,.41830025 +.32302946,.50324974,.44682921 +.67205223,.61339198,.2254788 +.64850641,1.4449589,1.4379811 +1.0085232,2.6436732,.6014626 +1.3200982,.62657163,.36118016 +.82045883,.1476676,1.0972363 +.88823752,.28894049,1.6513968 +.916857,3.5615692,.27740766 +1.0594061,.88907724,2.5570155 +.65459946,.12306585,1.8812772 +.80902911,.03022859,1.0467696 +1.184671,.30547754,.07130493 +.83123533,1.249537,.64543029 +.36211838,.62187142,.97737641 +1.073361,1.1894841,.95490358 +.46905699,1.2933753,.1055405 +.70828033,.76494142,.00665397 +.87383582,1.1003948,1.0934578 +.98086496,.49059806,.72459815 +.68949816,.24160136,.51815775 +.85983939,1.0426092,1.4351803 +.70055466,.1421924,1.1656148 +1.1782164,.32996552,.01657882 +.99807704,.23032693,1.5834055 +.63628833,.11726615,.27994349 +.61750917,2.3515652,1.0859692 +1.2163409,.29653257,.09006456 +1.2099885,.05491574,.02755196 +1.0667516,.95892636,1.8735908 +2.5965908,.09481852,2.3679502 +.42261853,.82181002,1.0103215 +.4233578,.70367528,.9581157 +.42713509,.84561989,.11088405 +.59020797,1.1743536,1.555645 +.7095544,.38934649,1.0364878 +.2728086,3.0939926,1.4586061 +1.6274229,.88709661,1.2764347 +.33764061,2.2230655,.71725898 +.5244164,.10061869,.88722329 +.82141256,.58107666,.56992079 +.61091513,1.4737985,.12680442 +.68954007,.36655337,.37494764 +.40335131,.56569308,.47317825 +1.267085,1.143389,.18579853 +.80727762,1.5728556,.41897238 +.78976134,1.6363172,1.5737393 +.66600102,.66575914,.2807054 +1.3484726,.77349314,.45895923 +.96053698,1.2744277,1.4261622 +1.7292981,.08731516,1.0148198 +1.1866428,.5105043,.24962386 +.63391936,.15469433,.73397395 +.84560537,.67474116,.91615893 +.58042109,.89244569,.02652105 +.57563243,1.2885104,.83223279 +.92375348,.56770886,.91968114 +.31607057,1.963135,.24365483 +1.0799104,1.7271495,.06168754 +.26716806,.60763639,.44068741 +2.2118264,.12887546,.31293939 +.85429987,1.9729244,.24292807 +1.1492263,.47739248,.38732329 +.73656607,.12542537,.93229064 +1.5765793,.76503283,.22872267 +.6527558,1.0490795,.41630378 +1.3679706,1.3305499,1.5387927 +2.0639386,.82191504,.55563254 +.62300717,.95219519,1.90502 +.83684334,.09712483,.63939656 +.72294885,1.3776447,.71701299 +.82456087,.17128417,.66567352 +.53869787,.52108525,.87959595 +1.2493923,.33473879,1.0379068 +1.4692096,.28951472,1.3708051 +1.1680088,.64164536,.998567 +.64030452,.81428846,.85471436 +.83107008,.86480208,2.4565409 +.88300245,.93819432,1.7888635 +.34051652,1.0588354,.95884137 +1.080464,1.1698808,1.1737636 +.67493808,1.4244028,.29606507 +1.3792597,1.5991812,.8438715 +.75617243,2.1825501,.17390619 +.69357233,.23180342,.4233444 +.27687941,2.4432414,1.0145057 +.40279043,.20966966,.26760278 +.82238499,.55647605,1.4344588 +.48189057,.37057321,.92341158 +1.0800694,1.0252058,2.2022682 +.86637832,.13227829,2.0076097 +1.4282257,.55919153,1.6195034 +.5324995,1.435783,1.351679 +.3504792,.73446303,.01112052 +.81110566,.86213855,.81003357 +.37426117,.19979415,.60259831 +1.1184292,1.2323089,1.1939599 +.74132491,.41144025,.22605071 +.52080132,1.2207604,1.7775052 +.4059109,.72880953,.38049113 +1.2706225,.31778979,1.9665308 +1.9262088,.8100058,.96902696 +1.3221825,.17421946,.28365551 +.65401604,.41403785,.25611889 +.86260112,.81963731,.06903688 +.39026052,.35970623,.47811838 +.52421956,.29330403,.63696071 +.96566589,.56028151,.57774378 +1.1180811,.02062172,1.4602753 +.72535422,1.0068365,.06829147 +.32241038,3.0835695,.29223425 +.46996391,.02206326,.94863764 +.89108598,1.5805386,.40164696 +.48850929,.70815715,.28696705 +.91128995,.58848312,.21701918 +.84616178,.92934925,1.4684139 +.3994074,1.912368,.94489472 +.64818566,1.4587902,.86879745 +1.0561629,.48149606,.19111001 +.85746643,.85149834,2.761279 +.73609934,.43217596,.89370626 +.28895872,.61154561,.16406975 +1.9091861,.82112944,.71973079 +.63183532,.6547707,.73677109 +.87417028,1.0053591,.74349161 +.89098785,.04933764,.38137047 +.63906445,2.2893291,2.0278066 +.56226334,.48865354,1.0048848 +.54412898,1.7082972,.2759223 +.9733233,.4192411,.17039629 +.44562088,.74111618,.16846485 +.67913149,1.1278448,.09702405 +.41922937,.69308388,.32349019 +.79857731,1.8395942,.33247241 +.52492572,.07553411,.27779538 +.58566129,1.5491448,2.0702024 +.79678514,.86369254,1.0232835 +.63475859,.47042189,.45564004 +1.3123468,.8196392,.93451057 +.53319394,.54795096,.0577966 +3.5378873,.72265499,1.7895179 +1.518248,.04899357,2.9486486 +.59791036,.75913092,.04189212 +1.3578514,.98249094,.40946702 +.93404848,.20834618,.19352273 +.82508885,.15325943,.06526827 +.45576774,.93508573,.1931247 +1.4367006,.96819146,1.5529311 +.51773142,.77918096,.45517206 +1.1991111,.37721769,.83161199 +.42248422,.81102596,.86999703 +2.2680754,.88363649,2.4590058 +1.9600274,1.0534573,1.2270849 +1.0897959,.54149274,.01183457 +1.0425107,.08608517,.97592179 +1.0260245,.47515685,.0055053 +.8301554,1.9902096,1.1746228 +1.6281031,.22497965,.87606034 +.70687104,.74862496,1.7176619 +.50642829,.59261789,.1026287 +1.7557916,.06860073,.20928136 +.58690975,1.2670104,.54480664 +.78982989,1.4409012,.59145658 +1.4388014,1.1075232,.0366423 +1.2060292,.30883544,.25259921 +.74812808,1.4073417,1.618375 +.51895351,1.6383242,1.7122453 +.91474916,.81075893,.57351852 +.96102239,1.1493964,.66378916 +1.4348434,.50096589,1.3005729 +.85937332,.68342533,2.0212593 +.59009175,.07317069,.66897202 +.63527391,1.1675047,.83432238 +1.5449656,.72869429,.42894686 +.81877622,.0215099,.54370719 +.55063243,1.0069502,1.3284405 +.73660113,.18198454,1.2668994 +1.1434142,.74748774,1.4780324 +.59742672,1.0144711,.08909178 +1.487632,1.0585839,.65243412 +.54775359,.84441757,.50534229 +.76177244,.96484154,.92325277 +.87885191,1.0019556,.54487916 +.44343122,.38532757,.59619963 +1.0788924,.67249522,.03561463 +.53874288,.14017264,.46273838 +.66846755,1.0953896,1.2806701 +.69731256,.55540411,.47798628 +.26654894,1.6348799,1.4284446 +.34277926,1.1891899,1.003121 +.45686184,.11029977,1.6493403 +2.5155676,.16380609,1.4065687 +2.2286482,.42798522,1.2973845 +.51025898,1.0984837,.48652772 +.3714501,.93192188,.3373038 +.5441421,.11036823,.44997719 +1.2103163,.32955307,.15033345 +1.04016,.49967022,1.1985344 +.77509245,.86676143,.28981621 +1.7749073,.1136562,.19883003 +.71794309,.92293468,.55235707 +1.6482576,.49530724,.50910996 +1.1100153,1.4555664,.47869451 +2.1403582,.60900757,1.3288284 +.78331401,1.060311,.71878115 +.60389187,1.2717692,.49027318 +.49727342,.85130633,.37050699 +.5878703,1.405235,1.3628723 +1.4050207,.20534236,2.5591417 +1.053039,.86511896,.15810162 +.39221631,.43880541,.92679504 +.41716803,1.0909366,.66961009 +1.2094126,.92265657,.81029961 +.88927382,.17461623,1.0507192 +.66670135,2.2108858,.96683381 +1.0828088,.21066335,2.9949787 +.63518429,1.5435445,.84200322 +.56230281,.95937561,.14947815 +.71376843,.23319321,.30664374 +.79501999,1.1027417,.31090682 +1.2767218,1.751751,2.0372042 +.63290959,.42553194,.24843766 +.81971306,.86562018,.63300327 +.46691218,.78099141,1.0190503 +.71485738,.58026659,.25858383 +1.3819899,1.5953591,1.0287059 +1.0817299,1.4030682,.10823509 +.54046263,3.0840848,1.282224 +.86009128,1.3798886,.87517422 +.69313483,1.3799881,.62494979 +.39496404,.49225104,.07108421 +.67474534,1.297748,.4424543 +1.0329911,.44019702,.99746905 +.59490985,.80175539,1.2686846 +.500183,.62290169,.33448682 +1.5928381,.84793777,2.1119777 +1.0899779,1.2034335,.88715933 +1.1372085,.61542577,.69198864 +3.719823,.70723045,1.1087629 +.2934292,.20038618,.04439745 +.66483346,.47619228,.87902344 +.75491105,.71802632,.18370439 +1.3273221,.83622478,1.318223 +.65211829,1.0660689,.0198128 +1.4054534,.13371118,.32686661 +.56252291,.07841501,.23391507 +1.7152124,.00468669,1.4554859 +1.2016772,1.011448,1.4928251 +.49162455,2.0185883,1.6586468 +1.2893018,.56971882,1.3273077 +.36852449,.67783617,.76874445 +.61550704,.97549291,1.0079615 +1.3779534,.92749994,2.20526 +.46461876,.22497786,1.1721177 +1.0906035,1.6460738,1.0536138 +2.2763048,.64399963,.04571552 +.77441294,.32300618,.41166313 +.72896241,.65839411,.90507278 +1.0187368,.56222178,1.6999848 +.62011065,.00652051,1.4755608 +.89806185,.89620067,.06094892 +.49475688,.29217107,.09672247 +.48169896,.93750433,1.2644137 +.6095575,.64288842,.89479356 +2.0994438,.57687326,.90302366 +.76103664,.40118525,.18050597 +.8849476,1.5693856,.16836734 +.7060799,.17838058,1.3982003 +.39776492,.57576035,1.0390661 +.90579176,.55152274,1.8301454 +.43235587,1.6481403,.80296898 +.5458954,1.0205235,.6400484 +.96622734,.25954357,1.7316485 +.49882537,1.1200504,.01994264 +.94988288,1.9151026,.82174521 +.97449225,.40256185,.88377553 +.3417719,.95193781,.0655099 +1.1213966,.06783507,2.1411745 +.75101024,.63449721,2.0038887 +.62539865,.69425107,.84309284 +2.6263505,1.1150938,2.1251017 +1.2479209,.47285232,.55541145 +.34976212,.03410496,1.2154468 +.88642017,.34227404,.17651067 +.33179218,1.1601619,.19368581 +.46383237,.88610746,.32668646 +.58519791,.66011991,1.5224411 +.59531728,1.1407828,.49619468 +1.0257378,.12280971,.83891778 +2.5446483,.25888345,.04230184 +.77850463,.3543621,.81375692 +.51832567,2.5691824,.38119692 +.51323095,.29956791,.0412336 +1.3477297,1.9628872,.01745033 +1.662408,.248035,1.952222 +1.3873438,.78594569,1.3162045 +.94907584,.44305549,.04466401 +1.2992468,.83758047,1.2333004 +.69151105,.39060849,1.1945484 +.60022929,1.5988396,.63612392 +1.4955494,1.4869814,1.1880312 +1.5647202,.5127411,1.218853 +.6105224,.90438547,1.1806205 +2.1723729,.63596795,.12926615 +.79785083,1.6866211,.72837538 +.78474014,.68855474,1.1802025 +.42939697,1.7573853,.36314133 +.45138771,.84601242,.22690278 +1.2047758,.97768444,1.7137779 +.34946735,1.7355848,.6023038 +.96038386,.46780043,.66918217 +.69661985,.02346894,.14604062 +1.3475563,1.6399144,.33520499 +1.0160137,.64923904,.47246989 +.87727164,.26323989,.44916479 +1.104696,.26261538,.02836077 +1.5896294,.29600084,1.7200422 +.46339389,1.3143665,.50298216 +1.751081,.33293592,1.812794 +.79845064,.4385911,.82337003 +.83621028,.33892938,.50364657 +.33199575,2.811102,1.7389022 +2.4296654,.96041184,3.0482215 +.69675727,1.0243178,.57961835 +.68130328,.34969092,.70841102 +1.3334868,.65447869,.17815848 +.77979963,.51160164,1.0051438 +.65946922,.33298238,.96902031 +1.620407,.67585313,.50057828 +.70201778,.64074198,.306991 +.50277683,1.2177131,.88660683 +.4591855,1.251792,1.0237038 +.59706886,.15118823,.40226342 +1.3380037,.33906477,.55886374 +.80614859,.88955429,.00405536 +.90735659,.20607425,.69637845 +1.3807368,.42230555,.34968569 +1.3057783,.71799029,.32936075 +.31763335,.07597702,.03340233 +1.2992847,.59243198,1.4061879 +.65214943,.72160287,.71032587 +.58160558,.747947,2.9374826 +.18162318,1.0601392,.14520989 +1.4767722,.55624483,.42490957 +1.2260629,.63770273,.76109462 +.83927349,1.0938892,1.0589527 +.97777854,.52374053,1.1192144 +1.0258927,.09924511,.81604646 +.50102391,.58174488,2.9823643 +1.4028344,.32589769,.55187465 +.63332865,.77194732,.81630781 +1.1965288,.42297506,1.57894 +.43814853,.72894724,.07278106 +.65677347,.64688835,1.4978019 +1.3395403,.65569806,2.7833265 +1.1320877,.84170963,.69424799 +1.0528055,.51705849,.71665534 +.69239948,1.0895403,.58309267 +.39677126,.52931295,.37818663 +1.9805543,.56903519,1.1050052 +1.5752809,.77936706,1.054444 +.94528452,1.5699327,.16525768 +.75474299,1.3515845,.69243098 +2.5861635,2.2872161,.29602615 +1.0198784,.01294096,.60610575 +1.3291548,.57278631,2.0249956 +.83335599,.6154992,.15866957 +.87966177,1.2285543,1.6331861 +.59706866,1.2464612,.44738626 +1.3081965,.66253487,.57372703 +.5517924,1.1015825,.79379757 +.70833982,.71098965,.26477543 +.20607747,.17871599,.10495606 +.7521677,.86934582,1.4206946 +1.5750428,.81621108,1.439748 +1.1091259,2.4977402,.66065096 +.72727971,1.1191048,1.5106617 +.39267603,1.391004,1.3097402 +.68873694,1.167006,.771261 +1.5448181,.08151575,1.7975689 +.70306263,.12263985,.5205755 +.43356092,.26513601,.2236667 +.48658917,1.3959147,1.6501756 +.73689491,.87481924,.98098654 +.79357161,1.6066936,.50027493 +.5038459,.30721603,.90182762 +.56595006,.15997624,.53643278 +.57666545,.06263302,2.0527607 +.57260758,1.487108,.15318364 +2.0189672,.32930049,1.545837 +.79401172,.21540716,.05611827 +.8244871,.76975577,.36801285 +.63580853,1.3490769,.76263407 +.54555034,.3179482,.56862325 +1.2114581,.89265047,.04159258 +1.1510975,.39879104,.11260253 +1.1347354,.03231097,.66859195 +.2894137,1.5077672,1.5754525 +1.696456,1.0552208,.67912369 +.65091541,.14263146,1.1803883 +.34331679,2.1017519,.29978501 +.56266001,1.2255308,2.3884437 +.46095465,.32102428,.86422177 +.56388741,2.3847074,1.0250788 +1.3625308,1.2448911,1.279831 +.31292559,.74874072,.05798449 +.68450527,.2633824,1.0149077 +.78461057,1.9770856,.23626936 +.68370104,1.1010386,.65352727 +.47093126,1.5440416,.15854104 +.41325162,1.1057325,.10511962 +.96283064,.13737739,.48959641 +.41139073,2.1665463,1.2565313 +.86001482,.01529477,.30844528 +.95660578,1.6905973,.40713825 +1.301198,.59727052,1.0881026 +1.1521843,.74824502,1.1773893 +.57706939,.89820362,.60021928 +1.0432195,.97185043,.39746288 +1.0183028,.16835312,1.294854 +.61746409,1.4642566,.47846556 +.91363447,.3721108,.1114696 +1.8780933,.36482398,1.4834718 +1.1770601,.18336943,.46378796 +.45765338,.90660886,.58116431 +.73271044,.06632446,.5210879 +.72197059,.00398984,.20783794 +.54668409,.75817766,.74624093 +1.0281835,2.5499131,1.4919705 +.42978954,1.3795984,.42513132 +1.3010742,.77055844,.67258746 +.87022476,1.2942416,.48040073 +1.1926823,1.4939691,.35375765 +1.1639785,.35978625,.79695489 +.48487097,1.301315,.91616107 +.89593845,1.7432444,.45696839 +1.1356852,.52921945,.12850199 +.5781448,1.1294562,.31124629 +.76946818,1.0057516,.41661703 +2.3309939,.51615227,1.2435278 +.35433794,2.0361286,.87065295 +1.5086752,.22916018,1.5511236 +.82984729,.29521167,1.3541196 +.4897682,.41912104,.30115479 +.5512447,.37911658,.48924661 +.50940209,.54650039,1.1908926 +.68183483,.70559606,.27591815 +1.352858,.62972852,.10517156 +.68402723,1.5743524,1.0731334 +.73884096,.20605013,.86727682 +.62039374,.19737693,1.3829284 +1.3707593,1.0811941,.28688598 +.46698768,.08461868,.37496946 +2.4255408,.22909891,1.0695766 +.60067558,.13077192,.22592236 +.65560261,1.6963106,1.8185749 +.83527293,1.3991455,.08673402 +1.0751774,1.4544078,.89510499 +1.020739,.10054751,1.5505719 +.49559003,.26705406,2.2686328 +1.1079238,.18106904,1.3148642 +.62978667,.16290318,.71418195 +.86636895,.76320888,.65180147 +1.0442104,1.8740877,.27021165 +1.5199187,1.0985891,.51996711 +.69163752,.91788859,.43928886 +.3406461,1.3088265,.13159482 +1.9857804,.10024982,1.0331221 +.87139757,.35232185,.39801239 +1.2671443,.40008827,.93605912 +1.1219725,.17005199,.06934452 +.68004586,.34196152,.19417919 +.86149365,1.2491906,1.6300031 +.42406147,.65679616,.57053981 +.44400195,1.5578386,.1765883 +1.867615,.04484762,2.774825 +1.0975101,.40381758,.79369262 +1.4076759,.0191263,.55316544 +.62750043,.75679045,.36863249 +.52300687,.38319436,.02248597 +.55658764,1.1595864,.39075385 +.51405206,.8225258,1.2117331 +1.3184606,.66981927,1.7429429 +.39399416,1.5155832,1.2995309 +1.3270178,.44398692,1.0737947 +.66472276,2.944901,.25120107 +1.605353,.09220728,.50821889 +3.1200017,.33672142,1.043965 +1.6354137,.00727452,.17235511 +1.0246798,.41932657,1.1294256 +2.3757778,.82425032,1.0479073 +1.1908333,.28914857,.19627086 +.49959679,.64492825,.83683157 +.35339001,1.3669395,1.2606647 +.7092244,.77220506,.7326539 +.63064014,2.3323909,.69193193 +1.4239869,.71064548,.83859901 +1.0899966,.11247675,1.5456786 +.77480474,.6740563,.13315258 +.31289512,1.6091602,.54819976 +1.0420416,.68872837,.23323954 +.47493304,.44845951,.71870633 +.75658217,.71751798,1.3900707 +.81198766,1.0270072,1.0111018 +.86861105,.79490168,.03262196 +1.1190636,1.8666112,1.4178942 +.73028964,1.0031384,.4820428 +1.0209514,2.4716291,.08201905 +.72235667,.83903409,1.3663846 +.48537959,1.4695772,.27520693 +.58508532,2.3061668,.57250879 +.84986525,.73643111,.38208877 +.53783976,.92072321,.74012749 +1.078226,.25119869,.53435891 +.55835066,.84795437,.0081913 +1.0150014,.56375631,.35957726 +1.2337819,.39403443,.12979258 +.47238013,1.5265763,1.9355542 +1.0396453,.76238302,2.6436871 +1.2927188,.67598443,.67644216 +1.1269392,1.0462204,.15800081 +1.6662917,.11884631,.98929874 +1.9644769,.44855516,.6825834 +1.437958,.01490881,1.0045406 +2.2571418,.70417074,.05087887 +1.0170205,1.2192413,1.1627443 +.44073956,.62461625,.31898547 +1.3075176,.18541523,.70219644 +.58223359,.11318257,.257011 +1.2983097,.94808053,1.6131333 +.75923302,.72608477,1.1048829 +.70989152,1.0544821,2.4196829 +.55179492,1.9571035,.85400181 +.34718855,1.5553462,.72550227 +1.4322989,.09904748,.29469447 +.50492599,.22672193,1.5109168 +1.3315556,.65059632,.7611133 +.781552,1.2779433,2.0861634 +.76996027,.22287839,.60888283 +.93422436,.10945367,.3685571 +1.6111796,.03949182,.1127426 +.3732778,.34959497,.72801076 +.75198043,.2611481,1.3211659 +1.2330389,.99319521,.31853773 +.63146326,1.4861134,1.4090072 +.71010643,.41059074,.02853874 +.67426332,.34124933,1.1240026 +.6723874,1.0117281,.36962981 +1.5173865,.17200645,1.3733817 +.55600505,.2271256,1.9200726 +.67927918,.41702242,.01559477 +.28864469,.88942758,.21373244 +.9428054,1.9334976,.12969099 +1.3638054,.09866915,.09636567 +1.2623949,.52182805,.87520033 +.50704536,1.0810308,1.0023653 +.86397136,.14394869,.61979987 +.73817941,1.0086557,.99826525 +.41340846,1.7522609,1.1085237 +2.517746,.20447489,2.4854564 +.76095021,.37490647,.00708752 +.99892739,1.2426611,1.0823866 +1.2864614,.02351211,1.4850494 +2.0212378,.54542637,.82812053 +1.0473584,2.3104782,.58097705 +1.1761975,2.026312,.92082176 +2.4980579,.90436189,.61653923 +.38619535,1.1710822,.31865921 +.5231901,.25939527,.99369729 +.4134418,2.0573619,.60965581 +.60541943,.11948471,.21773235 +1.3279111,.08425962,1.2432091 +1.1380353,.16219667,.72261344 +.65331498,1.6217189,.00964642 +.63682835,.48571386,.51482024 +.99634783,.49451783,.59736268 +2.0885765,.29661401,2.07253 +1.2297746,.35899449,.71328893 +1.1664786,.84522241,.51759301 +.44300916,1.2872284,.37445528 +1.3189663,.35232984,.38846376 +.52428413,.13931143,.39245242 +.50496064,1.6427345,1.3497575 +.57761831,1.7550655,.09452982 +.52999016,1.1518271,1.0497938 +2.3493763,1.0372916,.06928908 +1.5209447,.28964106,.55827321 +.89715057,1.2166124,.41871218 +.77095256,.93882241,1.0757988 +.56735907,1.8486037,.83570241 +.81248275,1.7076427,.48980746 +.58267458,.68249684,1.3338811 +.46684954,.55108514,.50331094 +.90555951,.12706457,.05419879 +.65667248,.29718847,.70231355 +.35145687,.07073427,.38437991 +.54089291,1.9823503,.61724708 +2.2443074,.26822473,.24834468 +.3980428,1.3631747,.50938221 +.80769588,.26164183,2.0365868 +1.4461686,.95771725,.87666065 +.6545251,1.1912478,.24499138 +.5180597,1.5723884,.2335149 +1.2478351,.76626858,.85290814 +1.3864103,1.4047027,1.6965356 +.43993503,.05178672,.024584 +.97650653,.10085799,1.5132496 +.43158116,.90670881,.50170749 +1.4051413,.09879404,.10085371 +.77184145,.71050382,.37540723 +.4072167,.34809714,.00734282 +.36302023,.75247163,.0682533 +.38273675,1.6424133,.60398455 +1.7122293,.60579404,.95513944 +1.8250894,.75807165,.68176423 +.54784808,1.5456734,.46896232 +1.2159233,.39811542,.60337804 +.31241138,1.1375932,1.2218155 +1.2338555,1.2855177,.09839354 +.58559602,.11910893,.67216445 +.84736115,.95650435,.55934111 +.52076163,.44405562,2.1000582 +1.0644493,1.311649,.18670679 +.89095668,.33998496,.07209669 +.86762283,1.7793465,.47224832 +1.0734061,.29819303,.11856421 +.70965005,1.4354019,1.9939858 +.69898251,1.0576902,.11786759 +.50674089,1.4820721,.41017216 +.49953609,1.0154741,1.3510142 +.39001212,1.6757798,.71998043 +.44914897,.27545008,.48743864 +1.283203,.49141201,.58719915 +1.0261379,.2505103,.23486875 +.41660231,2.0404355,1.7485792 +.93239574,.2148611,.6110437 +.45457672,.80860551,.72884113 +.5710536,.57550393,.73501323 +1.3147123,.68753759,.23388532 +.64438206,.57253267,1.3255318 +1.0061557,.28917163,.20552581 +.76595428,.74232264,.8186831 +.87052831,.72228069,.05606967 +.98767344,.75717099,1.304399 +.94731109,1.0862614,.53433149 +1.0145031,1.5001002,.20443807 +.79985032,.1211631,.15771043 +.47649449,.4967694,.78325619 +.76205775,1.2376968,1.1374167 +.79859567,1.7960093,2.0760539 +.69076513,.60020993,1.071916 +.98583408,.59092546,2.24754 +.75205323,1.4921584,.82182141 +1.086063,.50609282,2.8843951 +.75398378,1.0254531,.2215001 +1.1587484,.25384934,.0886307 +.77453668,1.7445832,.53666047 +1.5538865,.18453582,.90398803 +.62370432,.77321075,.34973983 +1.7651577,1.3221394,.11185592 +1.5429641,1.055867,.43071482 +1.3941374,1.333841,.10040267 +.72400913,.01476905,.17176899 +.33609005,.9105944,1.5144386 +.82847261,.26831059,.27792675 +1.4125318,.7499651,.76098616 +.35878409,.02831194,.71889163 +.51723076,.0694928,.54893186 +.89996215,.12309995,.04915421 +1.7235822,.42097591,.00623494 +.51736719,2.2184116,3.0636906 +.40841183,.36607497,.07224123 +1.3992958,.45019583,.99479664 +.87264721,1.4290516,.60439673 +.691149,.3410093,.05123768 +.77069259,.29550709,.19949234 +.76996978,.57603363,.7902586 +.37802097,1.2367268,.25649901 +1.5051109,1.6488185,.79827676 +.81072684,.29816712,.78363155 +.55730405,1.8514129,.44196139 +.67442528,.70454542,.00484978 +1.6655135,1.4722232,.06132172 +.72467096,1.9239783,.99019 +.52860416,1.8383267,.74611205 +.74713437,.84094731,.59898124 +1.1394166,.60714587,.4587748 +.45957139,1.0841979,.27085919 +.72408397,1.4056612,.47264225 +1.1012632,.54662688,1.4921939 +.48184085,.13391119,.64153131 +1.2864493,.13796477,2.1137198 +.6763982,.03402827,1.039007 +1.1680695,1.2663499,.57901109 +1.0313233,1.2779791,1.4350527 +.86797217,1.4831686,1.4113122 +1.6091321,.63860579,.71881538 +.66278516,.97860968,.16947176 +.43100397,.58856835,.0414397 +1.1962907,1.3317288,.46853654 +.74243862,1.4491215,.17385009 +.56396254,.99514476,.93416474 +.61818744,1.8605338,.13226578 +1.129201,.69070414,.11218552 +1.1178986,.32736652,.69578902 +.41279266,1.1184079,1.3038674 +1.8889053,.25342439,.45044978 +1.7583195,.20977282,1.6184304 +1.1414311,1.4224983,1.3919396 +1.0567005,.37948271,.21681186 +.78363955,1.8319943,.55278249 +.90575046,.77823548,.65609907 +.65220165,.75147989,1.0781064 +.362113,.13968141,.19071159 +.7169266,.37879189,1.2614676 +1.1356971,1.2417619,1.9235888 +.56426715,1.6303724,.73777873 +.78695585,.04180994,.43036956 +.93217104,1.2567751,.90164973 +.78733699,1.1865737,.70855452 +1.0693146,.87318026,.24611594 +.70014283,.38386878,.39979313 +.75034977,1.9201604,.66390315 +.40522072,1.7595015,2.349237 +1.2550936,.22190209,.60131947 +1.5442649,.10255585,.71056426 +.68342729,1.8416139,.03587504 +1.0398954,.06725851,.04226024 +1.7616072,.23431019,.44236352 +1.1690602,.01834499,1.7076009 +.62751503,1.4270816,1.0453013 +.85204531,2.0131184,.4731146 +.74478445,.44675718,1.4389826 +1.6524073,.10433057,.15276626 +1.515972,1.7954514,.9826525 +.49796842,1.7337642,.45975508 +.40090355,.25453784,.16259613 +1.0170191,1.2513931,.36570616 +.70059347,1.0457109,.31285019 +1.0620172,.08701885,.345485 +.76953435,.94921571,.49490668 +1.5037726,.02923141,.16566621 +1.0612255,.51072672,.96451608 +.62798966,.34112853,1.6660014 +.43223656,.02829361,.40598785 +.68013149,.62206022,.40495361 +2.1737091,1.5566952,.9094573 +1.1079222,.16952694,.00012995 +.41093365,.42905326,.03544595 +.62637189,1.3752448,.93181006 +.47360214,.56840046,1.1373476 +.79696834,.87932793,.99154828 +1.0336754,.36827447,.43185565 +2.089233,.35447273,.17477785 +.3029803,.86144289,.01313776 +.81540622,.48097614,1.2871345 +.84184414,.10657585,.44752736 +.87453614,.79336968,.11267303 +.4415211,1.7978837,.50853633 +1.0910955,.8753945,.15611095 +1.0241775,.65775409,.22370544 +.36714988,.81435117,1.0663412 +1.1250059,.60937665,.2894246 +.32897241,.86996324,1.0483545 +1.4114481,.6003406,.20468643 +1.3971674,.12181581,2.1499301 +.52271292,.42159997,1.5965286 +1.0957488,1.057003,1.439129 +.71201229,1.0624967,.18015027 +.70340034,.2225733,.77296416 +2.2594285,.54638832,1.0050838 +1.847583,.01825546,.71727464 +2.1628485,.48758465,.73329676 +.59773338,.84249691,.69078864 +.81537201,.71953618,2.4244574 +.9834618,1.0049069,.48428265 +.56928186,.19622504,.5104029 +1.3416867,.42480558,.03011916 +.60474141,.0598109,.70538689 +.68399392,.14146961,.71794956 +.38191881,2.0954465,2.1354485 +.62327139,1.6240589,1.1299881 +.89819144,1.1812556,.27650157 +.5854485,.37560097,.59120458 +1.277619,.94291842,.25283207 +1.0290107,.74367881,.00496318 +1.8348807,.04726368,1.3523714 +.76858677,.52144602,.78749402 +.73450441,2.555583,.41651403 +1.0933046,.42324253,.7256594 +.89433708,.96746746,1.1389727 +1.2327708,1.396346,1.2870746 +.64273014,.74388818,.66336412 +1.6824621,.02612127,.53982686 +.34529218,.68170174,.903096 +1.2034891,.26262048,.94213847 +.86436704,.41187518,.77259107 +1.9263979,.88078524,1.0266299 +.88382344,.98223466,.18806305 +.88194782,1.2893149,.85161097 +.52996089,.09106181,1.2141468 +.75886478,1.3625624,.47208361 +.93578536,.26825904,.80102026 +1.1464713,.07921273,1.1936482 +.7985575,1.3292903,.42831234 +.62854278,.69696823,.38567642 +1.1995496,.78933166,.6607781 +1.1754949,.18852846,1.2695904 +1.7031545,.30356481,2.314481 +1.1144672,.14322101,2.7547779 +.50036857,2.2462319,.26893371 +1.2836555,.53402663,1.0810151 +.34020577,.78946822,.53193716 +.45423491,1.7019582,.56033285 +.47958621,.81260962,.21075545 +2.3324619,.05501746,.20217273 +.53198859,1.0516245,.4046791 +.84467289,.76168383,1.1049427 +.35240846,.38148493,.04921635 +1.8381488,.70492568,.40157214 +.60923313,.33022191,.5026069 +1.1862503,.62189985,.1731173 +.48563627,.05685944,.26771137 +.47415648,.54156452,.19344181 +.51780747,2.1362345,.95514309 +1.2828889,.35209313,1.7877508 +.82902335,1.5644744,.03818181 +.42368481,1.0329409,.98116443 +1.5462688,1.3091653,.57671792 +.8698442,1.4705923,.77198134 +.53740571,.27802127,.86905489 +.89414593,2.6740888,.08423945 +.52140477,.09669304,.93066796 +1.6206128,.31677021,.00490418 +.9692498,.72514049,.49895154 +2.0252806,.46153495,.03008445 +2.3348805,.03130209,.71533912 +.80203876,.62457677,.71317888 +.50029695,.78123263,.00595689 +2.5485862,.30212273,1.2979126 +3.1512803,.13464893,2.4336257 +1.0976207,.5115317,.61469897 +.4105227,.2083281,.11374102 +.3890326,.88840087,1.2863269 +1.0323227,.1978713,1.0945984 +.79614558,1.2204838,1.4373032 +.65139249,1.0457748,.51558888 +.70594269,.75203772,.48896631 +.88445382,.34023154,.05091771 +.48235878,1.0921111,.42365832 +.77754286,.60328204,.40091566 +1.6168855,1.0729839,.17811716 +1.4646103,.32442435,.31483128 +.84777705,.97890858,1.4909489 +.55789064,1.8885373,.17910094 +.37615022,.12527875,1.5384794 +1.2198548,.42322596,2.1345006 +1.016395,.81502859,1.4192376 +1.1012236,.55316273,1.712505 +1.1311697,.64467421,.4100045 +1.4644828,.33156085,.62591596 +1.1980248,1.4125145,.66245234 +.55151571,2.1041023,.85804793 +.62367013,.75327247,.89778953 +.77808356,1.130341,.43055056 +.41446771,1.416542,.37979011 +.5489657,.43297718,.19646903 +.97959541,.25274915,.56190073 +.74216965,2.6033664,1.8178481 +1.4138173,1.3417609,1.1194242 +.5501101,1.5416897,.57289771 +.90350873,.33524871,.28565427 +.38366761,1.6984737,.35643644 +1.3299761,1.7317285,.56187549 +.80674314,1.9178172,.27413898 +.79735754,.41398734,.77430274 +.84056875,.47424544,2.7855216 +1.1015945,1.6026219,.46552448 +1.1011432,.01160799,.49017025 +.79134338,.35190648,.9522524 +.58167386,.3957943,1.4838164 +.50521718,.17611459,.29155631 +.63562608,.49278616,1.5761203 +1.2293577,1.9584131,1.1178447 +.55076509,.51823258,1.896729 +.96356488,1.2734091,.3062207 +1.9802226,.75427108,.74530334 +.89359561,.66130559,3.1695142 +.70300891,.80387139,.30334808 +1.5934424,.15348886,1.4069031 +1.1595999,.1269133,.8252538 +1.8450689,1.2343897,.17084347 +1.058966,.03708303,.2886559 +.57328338,2.3244487,.04542693 +.40271808,.23496641,.01052646 +.78078832,.00762144,1.0217594 +1.1890341,.66914133,.57040466 +.421813,1.8858248,.16010922 +1.1242749,.13330424,1.2492521 +.74292991,1.1051659,.71304774 +.38992013,1.1348385,1.1924344 +1.1063855,.17841595,1.2627164 +.72371924,1.5682286,.03397528 +1.0771036,3.3591984,1.2646074 +1.8631469,.1695775,.23714367 +1.1869291,1.3196594,.60917824 +1.1601464,1.7084494,.35907525 +.6242776,1.3565774,.23311119 +1.4716082,.40756368,1.2053339 +1.0006656,.56734519,.78898612 +1.3161537,2.0241207,2.5678729 +3.6337468,1.7491978,1.2420391 +.76147231,.70857574,.0286968 +.43752512,1.1033795,.4831635 +.96112677,1.2277341,.87208763 +.90212498,1.1724485,2.1882514 +.71555886,.85567548,.84825637 +1.3071681,1.3906213,.60657093 +.611415,1.7901198,.08277079 +.75191279,.03425437,.53189058 +.97223658,.49835848,1.3089737 +1.2860096,.35781754,1.9542056 +.40254263,.99782263,.67207743 +1.0249793,.74810838,.92392508 +1.1712235,.45757887,.30071655 +.59283487,.61170906,.83978421 +.90593707,1.1327451,1.892728 +.87530169,.32891602,.15733643 +.42941463,.93647625,.94335321 +1.2469411,.19356649,1.9557708 +2.5645486,.38145481,1.5437497 +1.9568266,.85760952,1.4020779 +.54957395,.66967849,.89302163 +1.3469395,.81521741,1.362804 +.43358461,1.8827319,1.0140155 +2.1562424,1.6939511,1.1047978 +1.6402167,.62276619,1.146605 +.62272201,.92456058,.0332731 +.37861892,2.6695259,.05029207 +.62730264,.08269405,.42812304 +.9254611,.45929873,2.2594624 +.96760915,1.1370261,.03094783 +1.2663729,.74910801,1.9687444 +1.1995079,.05098097,.30371862 +.66113674,.02672451,.44335808 +1.0743843,.9383061,.7870436 +.99412098,.80360063,.55546121 +.55108505,.50372345,.53726309 +.82045669,1.0396238,.34395449 +.96706529,.26519805,.7381955 +1.0917385,.04017337,.48666038 +.67665361,.70162197,1.2098418 +1.3664989,.47220005,1.7981841 +1.3189419,.46158504,2.0287873 +.47510702,1.0576211,.52617528 +1.8203523,.09095828,.75051542 +1.0831115,.61081001,1.2976391 +.65277975,1.8041983,.45131703 +1.2584351,.86979194,1.5436782 +.65373228,.75235855,1.0529438 +1.9854872,.11337288,2.869525 +1.33209,1.0379045,.13558315 +1.3555213,.30170488,.8595577 +.31134803,.26475535,.2130661 +1.4846608,.2009681,.39469576 +.42205813,1.4304818,1.6853058 +1.5769502,.54329154,.73982156 +1.3926546,.80021223,.81367881 +.65970483,1.0224276,.2840102 +2.3133309,.40943527,.21969306 +.69033626,.88323169,.40849692 +.86075342,.26037231,.34101875 +1.7243838,.30454242,.42051431 +.67551515,1.2346008,.74598362 +.61701639,.34499632,.34092124 +1.435327,.09668949,.44655599 +.82090684,.20734569,.2338767 +.85661489,.04178061,.22629574 +.76038098,1.3492595,.7986198 +.51433789,1.5807355,.60065017 +.73729515,.32200928,.50542587 +.26661401,2.2195604,1.2289484 +.60724942,.4165658,1.0793578 +1.0363883,.22836965,.32465323 +1.2991992,1.1139918,.59413341 +.88151183,.68649347,.42626494 +.27500233,.2011129,.47345237 +.58856859,.10121535,.04057386 +.91298562,.89133756,.44666853 +.66834263,.22210812,.53165849 +.88106442,.31961261,.39472798 +.79939691,.02201829,.28162656 +.6089948,.7248388,1.3337883 +.4129846,1.0014134,.1126043 +1.2071194,.96812,1.003584 +.6276185,.00877845,.01622337 +1.1650386,1.9187229,1.0367389 +1.6719513,1.066595,.78760449 +.79838326,.10126724,.0605665 +.92348335,.34142672,.24854784 +.87337143,.93136785,.40672142 +.92067966,1.4091161,.87672767 +.41139165,.54345215,.09495313 +.48191765,1.3321303,1.4414736 +.57076153,.28622551,.31886389 +.65031922,.48317009,1.8426613 +1.1903974,2.1070423,.10794155 +.54419723,.19602375,.41953862 +.97410125,.59177915,.65901605 +.34663575,1.4886787,.66666876 +1.2652989,.93097798,1.8404771 +1.1317258,.72479526,1.0353279 +1.2849069,1.3328459,.82772348 +1.4985828,.81836828,.72016353 +.40769821,.63095756,.40048326 +.71097408,.46089055,.6773771 +.29290302,1.5430531,.68053652 +1.3452135,.39198123,.23917498 +.61717216,2.0218633,.44614852 +.64840791,.05359007,.69149784 +.6796918,1.2168021,.23571098 +.47508309,.75383463,.11183138 +1.0464953,.90130472,.17763379 +1.1052699,.01888542,.13154355 +3.085284,.56829967,.92444478 +1.1144174,1.6372327,.1325778 +.62933896,.79528196,.85439111 +.95074325,.09091742,.48211461 +1.2916768,.12303096,.06429903 +.53451618,1.4971141,.45247218 +.48238346,.35082468,1.0160593 +.77104436,.92784207,.30991279 +.55873364,.69608611,1.5709319 +1.7095017,.11874733,.97440238 +.2457214,1.1651217,.30011789 +.82733324,1.0730343,.20610813 +1.0755181,.3180478,.07059364 +2.2554482,.07798938,.76885063 +.68797074,1.3436074,.13425103 +.40698435,1.5098164,.28070427 +.87788948,1.0165237,.93952082 +.87819961,2.0939014,.45377999 +.79569542,.45440445,1.0956696 +.56125459,.75039726,.76068848 +.94571383,.98594827,1.3224997 +1.2165925,1.1613545,.66773193 +1.1895413,.07860019,.36090691 +1.1189334,2.380015,1.2366838 +.48777222,1.7522956,1.0745127 +1.1758065,1.6551205,.21093852 +.61120782,.70610895,1.1356664 +.60055752,.59576354,.93081968 +1.2262483,.27182908,.97410302 +.92080658,.17471017,.26832666 +.85162683,1.0634924,.58792991 +.51466566,1.0179381,1.2027242 +1.7009563,.5825718,.15918332 +1.1816855,.1925323,1.2519538 +.3852622,.90920114,1.6294397 +.79702077,.41424258,1.0705419 +1.9571334,.47937848,.13617982 +1.2079151,.48261978,1.0738134 +.59314668,1.0344135,1.6982777 +.88344303,.46225577,.43029703 +.38130456,.82704988,.75761138 +2.1913262,.40918725,1.5966842 +.24358284,2.1584054,.98775852 +1.3806181,.58659091,.53253518 +.87504737,1.5018745,.58986766 +1.3321666,.96942821,.74947287 +.89831495,.90897112,1.246144 +1.2176358,1.3740051,1.3760664 +.72446944,1.373875,.48266391 +.68503151,.85738557,.72299531 +1.3542864,.05047592,1.2880199 +.94601109,1.1553947,2.1400982 +1.0330233,.89577098,1.282251 +.3788625,.72103,.04964312 +.50285502,1.7064736,.43115462 +1.572813,.93234837,.33890438 +1.2023419,.2131126,1.2155057 +1.8827557,.81435847,1.0164059 +.22954651,1.9116135,.45291886 +.34173507,.58186707,.6982727 +1.3742144,1.1440273,.12669396 +.82133645,1.4596759,1.6828502 +.95141514,.34924876,.88598116 +1.3585567,.39697833,.0850164 +.56232208,.64825834,.67343419 +.51989917,.5178321,.50668382 +1.7889641,1.1971479,1.3065247 +.8276,.82166271,.97164161 +.67837488,.6364262,1.0110758 +.57369628,.29131504,.58527182 +.81146002,.14388034,1.2050171 +1.1454538,1.0354952,.79493887 +.71532879,.80516784,.17226164 +1.253088,.15138569,1.3058865 +.53692592,.06905846,1.044935 +1.6317762,1.330378,.28055567 +.5617414,.17192651,1.091436 +.59672024,.62804023,1.588572 +1.5882836,1.4283061,.35645085 +1.2023658,1.0807793,1.2082167 +.60137096,.42158442,.39897023 +1.1909812,.25770987,.24333487 +1.3012388,1.0593096,.74447546 +.99942595,.06216418,.0195388 +.89509515,.95765885,.12455494 +.48165297,.3964937,.3928726 +.5904748,.57399613,1.0890905 +.65514965,.53033556,.40822946 +.65675517,.02955565,.46512549 +.98854314,1.8441604,1.1705888 +1.3780593,.7464939,1.0456895 +.50832922,2.4644288,.44090403 +.39989754,1.3330257,.27798672 +.87420565,1.097072,1.4538707 +1.2933174,.34325862,2.822108 +.44473345,.97437298,.14271713 +.45426924,1.1427879,.603399 +.82868619,.49566556,.8595059 +1.5620147,.06843651,1.6626297 +.54678058,1.1571014,.53330233 +.64157795,1.0247709,.27241976 +1.2191029,.34072667,1.6710845 +1.079996,.37841686,1.2634578 +.52942019,1.3315046,.91835341 +1.1892253,.89894802,.45343363 +.85823984,.61651773,.6038048 +.63329102,2.0188372,1.1088467 +1.0812385,.65429295,1.3201805 +2.0685482,.45046193,.57697754 +1.2349914,.51489186,.89654513 +1.1790985,.56951347,.78760446 +.94248287,.80665541,.00746954 +.91130014,.23076281,.15588064 +.9439077,.78474808,.3332898 +.71002311,1.5452421,.5041376 +1.2664146,1.2886323,.12505042 +.83205622,1.1919396,.78171144 +.76220139,.827139,.99284404 +.58847317,.49975529,1.2354089 +1.0727597,2.282473,2.0714089 +1.3690154,.75627971,1.1198367 +.68528282,1.6766628,.08992509 +1.7484482,2.4937401,.95678568 +1.3171499,.00546639,2.010128 +1.0248816,.17757934,.17921412 +.46009631,1.4613023,.78344922 +.21086907,1.5344781,1.7192827 +.58692422,.85712966,1.4719246 +.92935328,.14409335,.39063441 +.32216365,1.6847564,.51687842 +.62510669,.5444116,.46799026 +2.5276807,.0117145,3.0752948 +.96397477,.2429824,1.123774 +.61762046,.48678844,.13016322 +1.0524902,.54120994,1.3594822 +.83589127,.23656838,.634732 +.90922249,1.8326879,.43860848 +.64012948,1.3222499,1.2694919 +.39326665,.7867516,.26493668 +.38327355,.22820522,.37783375 +.39987747,1.6211877,.96808797 +.7326711,1.0499215,.38930774 +.74167812,1.0922906,1.1406584 +1.0172821,.33168434,2.803212 +.27053001,1.8443096,.3417996 +.49803818,.49260432,1.1778508 +.77848342,.3483241,.20776915 +.58130158,.02846895,.77864693 +.81437227,1.7563292,.50498198 +1.1812226,.40016249,.65172989 +.84983246,1.4843424,.99311468 +1.2591623,.15674593,.44704355 +.64543402,.77558852,1.3052005 +1.914968,.7643266,1.9880039 +1.759719,.19888364,1.8422291 +2.532477,.08598773,2.4400778 +.78645855,.31986396,.30934085 +.8849794,.30158876,.54575222 +.83719151,.34986313,.09328025 +1.2559098,.21327921,1.4596933 +.64198054,.3332182,1.6270197 +1.7652425,.05671193,.65628146 +.44996274,.22954611,.9223297 +.75587079,1.6310824,1.3325653 +.91829742,.26669183,.46014466 +.5445019,.69930323,.90904947 +.45749362,1.0037581,.33013765 +1.5621184,.74708633,1.753335 +2.2925632,.66231695,2.4739404 +.35566753,1.2190315,.06734376 +.79207507,2.0382655,2.156439 +.6546158,.62378882,1.2946734 +1.0269578,.10365802,.98842825 +.6763913,1.5724568,1.8193357 +.56661051,.82254103,.24557864 +.91679261,.14401739,1.3192608 +.6120393,.13908974,1.5563763 +.7304515,1.5880277,.54952772 +1.3242636,.38515342,1.48838 +.62095005,1.4832809,.80238865 +1.4289534,.19246476,.13572457 +1.8486214,.27693569,.61329384 +.32464414,.38994404,.06699184 +.73194972,.80111169,1.2798498 +.51071546,1.8314206,1.0500566 +.5645165,1.3767167,.44269635 +.62175462,1.1489959,2.2790355 +.85687443,.47096126,.356567 +.63430033,.02845115,.09630863 +1.1802106,.88895858,1.4702341 +.8185085,1.3029195,.33197191 +1.3978138,2.237912,.82236303 +.68717247,.68822304,.06564643 +.3796568,.82663748,.32760564 +1.2796076,.72871256,2.4373819 +1.135522,.46504842,.63421978 +1.62462,.24637044,1.5053902 +.43382103,.61682198,1.4098538 +1.3587772,.57044539,.32333676 +.68987225,.29068028,.16187681 +1.0553115,.56757748,.61115818 +.29923332,1.1220686,.96298081 +.92183204,1.9280098,.08682841 +.59662232,1.6455526,.57220715 +1.0779421,.54351726,2.4040272 +.61969443,1.2098592,.57918743 +1.0290683,.74929467,.7458316 +.83748172,.93126305,.06521306 +1.263042,1.3620076,.01975296 +.4039005,.82619755,.29049546 +.65676823,.18323567,.09809257 +.86445124,2.1413877,.67870875 +1.3423267,.54416303,.81219685 +.75768135,.31268133,.5350534 +1.157629,.21031286,1.64135 +1.3681739,.19265127,.05924124 +.50317088,.5947659,1.5426163 +.91451349,1.6260276,.95586217 +1.8471167,.13554102,1.4399552 +.97131061,.70616088,1.2076103 +1.0224062,.39994233,1.0768358 +1.7179955,.21460327,1.2596167 +.54388955,1.5990245,.57123242 +1.1233376,.49563099,.5724042 +1.988037,.48771649,2.2403304 +.72260956,.43342899,.812098 +.82233602,1.0009825,.90029153 +.44802941,1.2013421,1.2881993 +1.0630615,1.7321944,2.019031 +.53577246,1.6579531,.40898507 +1.4234695,.83212588,.10195039 +1.0108337,.65836334,.03770986 +1.7251823,.62895151,.42166351 +1.179584,1.8968015,1.4813459 +.74659627,.40695354,.07106277 +1.445421,.49394789,1.3775224 +1.2164248,.01984896,1.5852097 +1.2953856,.73228315,1.3512399 +1.3880404,.74972327,1.474456 +.36071702,1.6007719,1.2621024 +.58583437,1.3784407,2.3188421 +.4306951,1.9300555,1.0319697 +.68879142,2.1435602,.38293787 +.99309883,.76585728,2.6168051 +.83221997,.77751827,1.9838675 +.65683066,1.975355,.30183231 +.59250599,.01713114,.83930903 +.60361854,1.1041188,.19279968 +1.0295803,.40250627,.02651412 +.85704727,.57233146,.13245336 +1.3157942,1.5949363,.56094711 +.9760791,.8419856,.21943945 +.3068806,1.698351,.11441767 +.69363798,.30947449,.26572774 +.60158715,1.2393513,.27393046 +.7606562,.48079067,1.314396 +1.2680826,.32829501,.45636814 +1.5427813,1.5629069,.45003142 +.85019608,1.7655984,.40358478 +1.3381368,.26486672,.65981021 +.31844811,3.2800969,.58014289 +.47802062,.70549389,1.6290297 +.95664112,.10012033,.38101906 +.53422335,.82410382,.6195008 +.76913985,.73322632,.24880929 +.78131812,.2450873,.5346186 +1.6420957,.08685808,1.0061851 +2.633058,.03121706,1.1684382 +.69847975,.52873616,.5417456 +.60032412,1.3317824,.98224494 +.81007473,.50999463,1.434688 +.67052463,.35395046,.56642177 +.53287202,1.4480516,.01039114 +.83841639,.50474991,.34582542 +.65357044,1.2030945,1.229588 +.3524684,1.3784809,.16059518 +.79915618,.62487252,.68598682 +.89314616,.66933224,2.3058406 +.72591918,.68232504,1.26188 +.69886414,.46863261,.370111 +.69757114,1.1655884,2.2541336 +1.0139877,1.3244494,.69440406 +.73054283,.15216861,.13775326 +.30124304,1.2792019,.84607704 +.79974399,.49421292,.61914418 +.68360518,1.0828311,.73727287 +2.3200851,.79033738,1.3200653 +.91498925,.19961451,.49328537 +.96412494,1.2280369,1.1055335 +1.4556261,1.3353788,1.1810123 +2.2931904,.80917105,1.2850516 +.83984129,.86942354,2.6011993 +.77200482,.26720905,.88348508 +.64398996,1.1063851,.35234685 +.54955844,.79881871,1.785563 +.38585105,.3506956,1.2597781 +.58537625,.69267697,.94185846 +.64939796,.01753711,1.0600422 +.42135959,1.2819501,.98580496 +.63439964,.08643392,1.3143129 +.937402,1.9890658,.16332723 +.22370906,1.0778322,.10765535 +1.0316072,1.3356352,.04758348 +.39049517,.98845121,.30922843 +.63559234,.63040941,2.0271682 +.50912273,2.0690659,1.6625043 +.95355764,.77992573,.45833013 +1.0817196,.89683583,1.5510039 +.86381288,.5428845,1.3501827 +.47625124,.73178509,.08569736 +.56530436,.67073596,.98338885 +.81016962,.12437822,1.1040658 +.59555397,.44055106,.26417259 +1.1305367,2.0170515,1.4286435 +.76261149,1.5324908,.14833207 +.90615656,.31979226,.10741625 +.84666754,.67690132,.88774788 +.39640832,.45643645,.56687952 +.4060277,.79105223,.58337614 +.56761331,1.3286813,.5562974 +.37045217,.1852063,.5122344 +.31474965,.11412267,.0258573 +.4804853,.60936181,.27624168 +1.3577976,.56534045,.10632371 +1.1599356,.83972405,.57140627 +.62116819,.45769443,.46139488 +2.7137332,.11063532,.63641816 +.46521323,1.9553261,.61532338 +.99875357,.42804082,.41487621 +.48631994,1.2467814,.78952486 +.75445086,.08342433,.97567891 +1.8862044,1.2660139,.41164745 +1.3744829,.78247414,.71148132 +1.3444455,.32802844,.37949965 +.87374995,.36966267,.79499484 +.59161435,.97589785,.7580088 +.48236833,.61802109,.5767603 +.64900227,1.5972192,.63390701 +.62025724,.1395839,.24514388 +1.0493724,1.0617066,1.6442391 +.52451449,2.2527647,.42440668 +.55233247,.75623253,2.3068312 +.37285998,.43562605,.75169469 +.51937403,.82413888,.45208875 +.76890072,.10415135,2.2220873 +1.5806535,1.8185433,1.3079895 +1.454777,.01439495,2.1228075 +.67216158,1.409718,.34137743 +.83828909,1.5842257,1.0657989 +.51421896,.80682311,.32149281 +1.3934675,.24850353,.24260701 +.8807948,1.8598885,.50922375 +.82321411,.18608342,2.1762085 +1.1658271,.52344291,.49832457 +1.2384236,.82882275,1.1700595 +.69773513,.07221259,.8664509 +.5223991,1.2422714,.62967593 +.22845462,2.3672237,.15575546 +.16496441,.59816747,.53421206 +1.6813557,.00602488,.10782191 +2.0530662,.16602564,.0010547 +.49058398,1.8185567,.33735498 +.5532739,1.5531913,2.0535274 +.58188936,.52967478,2.002865 +.96250193,.60933744,.23479509 +1.0824039,.2952653,1.5451438 +2.0702033,.3551023,3.4492481 +.46645958,.62933517,.09340047 +1.0848543,2.0277597,.265827 +.25826304,.24580371,.81477559 +.38326231,1.6867018,.96100278 +.97448822,1.3109962,2.2996427 +1.6224489,.29696596,.13624301 +.69751963,.14014745,.23977626 +.72420334,2.0306975,.34474347 +2.015883,.22531163,.00143381 +.41132032,.7436807,1.812359 +.48890329,.31230206,.33474974 +.48959735,1.2501434,.22708133 +.92844014,.8415243,.43496174 +1.3303404,1.3997559,.89586172 +.27357496,1.9890797,.98637099 +.53205956,.2378471,.32644628 +.71733615,.09024173,1.3772683 +1.6293256,.31087192,.98179159 +1.6116175,.03647707,.09560353 +1.2672247,.7544088,1.7705644 +.30030107,.7004221,.27351169 +1.1838084,.4023581,.05195873 +.70378445,.40189092,.31782099 +1.0119859,1.3859827,.44045085 +1.7502697,2.3987235,1.736127 +.35186952,1.3651961,1.0492336 +1.1150018,.14537631,.74164985 +.51614223,.63925457,.40653232 +.59903644,2.1601725,.0342493 +1.0120667,.06609413,.46839431 +.61274324,1.3834618,.82630407 +1.1897857,.05381121,1.6449018 +.51455076,.54006769,.32504122 +1.2716122,.7350324,.1785463 +.47075683,.35195591,.64876531 +.38036597,1.2344376,.44582063 +1.0990164,1.2167728,1.0377496 +.22279383,1.6983838,.58962045 +.62406832,.76822252,1.0491521 +1.2391461,.48012012,.81741427 +.41349617,.32715562,1.117155 +1.2991091,1.1184302,1.1008389 +.67152839,.61084899,1.8907654 +.80907168,1.8879975,1.3558987 +2.4034699,.08127512,.64159545 +1.1945416,.82347237,.37648931 +.47954773,.70374828,.41831228 +.84329062,.19269093,.93124056 +.40796506,.57663402,.56522664 +.6181288,1.6217762,.41124427 +.61736806,1.8672393,2.3197828 +.7965573,.15949045,1.229645 +.90468461,1.381439,.22132248 +.82096702,1.0143801,.03162025 +.57738647,1.6892781,1.3241301 +.91487874,.81305045,1.9320748 +.47355997,1.545163,.14886556 +.51442065,2.4185746,.09368501 +1.8480028,.65022875,.20013858 +.37432642,1.2155425,.03023345 +.80557033,1.5163203,.14016183 +1.2423283,1.8645338,.71776328 +1.0873124,.83106786,.0472587 +.29341851,.10948345,1.030906 +1.0760757,.37545887,1.1166388 +1.9925139,.40911079,1.4060115 +.90627505,.38182388,.91605694 +.69819141,.42852366,1.178398 +1.7401759,.72076724,.55582671 +.87573438,1.2372898,1.1365598 +.93245993,.91020231,.67228564 +.43640887,.78663588,.06991333 +.48661652,1.8898754,.11222915 +.65573696,.47584817,1.8238717 +.41824506,.70136136,.28937463 +.97309565,1.585957,.91494733 +1.9001738,.82636511,.36019941 +.54566414,.30077827,.20460823 +.84068595,.25953702,1.488609 +.55657331,.40973773,.53877164 +.4510106,1.1934337,.20357659 +1.2310423,.49095595,1.5655157 +1.8108534,.26115834,.8650341 +.80911453,.42850971,.86605841 +.45118303,.13446872,.85307444 +1.4267923,.63283148,1.8132305 +.28745327,.63535621,.63653944 +2.061251,.05011399,.49889417 +.61949535,.68471108,.32639997 +.37657233,2.0627688,2.069963 +1.4190309,.20376382,.41466365 +.91531844,.34805531,1.4574322 +.67812438,.80573775,.57112422 +.56472949,.63870098,.39704422 +1.0050639,.16004889,.22937471 +2.4218531,.06286176,.12397601 +.64776485,.90003907,.7509477 +1.5973902,.03388658,.1997127 +4.1753837,.4194819,1.9272169 +.2988302,2.9907571,.45956041 +.57448728,.35382758,1.82468 +.78762036,.5234994,1.8021271 +.7306326,.39442469,2.0898061 +1.1742815,.24530102,.49857354 +1.3689448,.38108456,1.9121482 +.5250507,1.1470009,.22525611 +1.280644,1.0483438,.21857789 +.95904643,.78205808,1.2037266 +.37397534,1.7919835,1.7590222 +.89315503,1.3557004,.18778654 +1.6505282,1.7296899,1.254029 +.49873555,3.006874,.16106613 +1.1905531,.62102988,.095208 +.87709118,.68945995,.47004164 +.80666789,1.0223416,.06629764 +1.05913,.73929798,.20461955 +1.5131534,1.0838288,.94660106 +.52115255,.71979866,1.5021676 +.80862297,1.5793674,1.3396284 +1.4052141,.08031363,1.3533511 +1.6986548,.57623421,.9915606 +.33665517,1.007323,.92509384 +.62201907,1.4560835,.07390431 +.79743252,1.7472415,.51755723 +.75110666,.43598607,.68673454 +.51746992,.17804786,1.3768891 +.73643542,.4440547,.04625199 +1.8596118,.11611523,1.3065811 +1.4085421,.2084962,1.1270735 +1.1255576,.28004858,.54954988 +.7728009,.00941657,2.3527232 +.71249992,.61298038,1.2189634 +.87753891,.69803868,1.2047472 +.60380476,1.7506152,.16056031 +.43642523,1.7567049,.5109283 +1.1717342,1.3726021,.23092087 +.70980466,.64135628,1.64083 +1.442129,.73534081,1.0492377 +.36691737,.58175824,.28139648 +1.8194581,.53617395,1.3477767 +.44647446,1.1672419,2.4508087 +.76152859,3.5727941,1.8708312 +.96761603,.69564534,.99718368 +1.5004034,.69218235,1.5247845 +.74798222,1.2963253,.03986607 +1.0076486,.55338983,.32774156 +1.0560199,.21025332,.82986953 +.57156663,2.8947951,1.6304619 +1.1635714,.00199242,1.0966138 +1.1305551,1.235004,.08058578 +.8192137,.0880287,.81331152 +1.1035496,.15399122,.07493797 +.94537078,2.1370582,.40800963 +1.0808247,.41956385,.20202581 +.65685313,.05096683,.84796734 +1.3106453,.47706854,.66179597 +.80977048,.28277544,.62647382 +1.7090991,.32194719,.31837982 +.94593711,.36687736,1.7906862 +1.2125128,2.8067314,.62018052 +.68925916,.12455863,.77761484 +.78089495,.55707283,.17596705 +2.2571421,.52032193,.07910224 +.47150873,.2813287,.79115632 +2.0179703,1.6351491,1.1430117 +.24612999,1.835473,.23329896 +.55350983,.28420066,1.9151611 +.97072972,1.8398068,1.5719789 +.30457074,.47093065,1.037324 +.97608053,.25592073,.709864 +.92039544,.24553035,.70214007 +.6601241,.22181409,.08991882 +.79976753,.06786092,.24632373 +.85352924,.81443252,2.8250271 +.62271062,.82502777,.98236393 +.77905395,.01501509,1.2278158 +.78885436,.54488509,.93070764 +.41187662,1.1057343,.17816405 +.84706283,.14627536,.1967761 +1.1497605,.64120987,1.381256 +.83353618,.36177113,.30523233 +.48892241,2.6034423,.91155048 +1.5965566,.80819579,1.1192197 +1.8316792,.16780774,.64039975 +.48818008,.34861393,2.5750188 +.90072287,.96945776,.73839161 +1.3040266,.30696633,.74207557 +.61739803,.28674598,.40569439 +1.6213253,.30216758,1.0921011 +.63670009,.60909502,2.8684007 +.34074727,.75861497,.6880827 +.39299331,.45981323,.59128953 +1.5049001,.57625966,1.3486705 +.87865387,1.469728,.03604129 +1.2413911,.15374339,.69875813 +1.0414973,.90768938,.64100165 +.4954875,.93936602,.93843837 +1.3498981,.35865921,1.0033454 +1.9639526,.79181966,1.5914313 +.84637515,1.185403,.70280721 +.55311875,.35046231,.06914274 +1.5826623,.51027813,.60096434 +.76600931,.36111144,.35837416 +.53836037,1.558368,.29748873 +.5967181,.34466434,.27342395 +.82635414,.62744592,.31461087 +1.8012068,1.5242302,3.0039928 +1.0977343,.2516611,1.0239776 +.80985453,.09626639,1.1933643 +1.1076724,.1600216,1.2549614 +.63557532,.50436694,.09626237 +2.2277533,.36484665,.48904924 +.61274198,.47881427,.12159163 +.69528455,1.8226499,1.3253483 +.74300686,.81761726,1.0009118 +.57138609,.51226415,1.3670228 +1.2505554,.00451658,.45767851 +.61990792,.63159251,.92950607 +.92127863,.44504526,.45662276 +.29459509,1.7923695,.43062251 +1.453969,.07524621,1.6258178 +2.1216063,.10845814,.11450417 +.99385155,1.1058063,.90652884 +.83783455,.68685486,.49310143 +.35188969,.92336229,1.0729088 +2.4801121,.3519244,.59779366 +.60108488,1.274171,.24324644 +.61204315,.05217334,.51886123 +1.4433688,.32048532,1.9067078 +.49083036,1.4719937,.80007342 +1.3895197,1.5068329,.50610219 +1.1352488,1.1347069,.16043384 +.5356452,1.3432936,1.2547773 +.80806779,1.1654419,1.2203526 +.64154119,.54005678,.14741054 +.17744258,1.6183663,1.6862233 +1.8795379,.67793534,.55683978 +.53370697,.45906867,.47254586 +1.2238972,1.0579099,2.1557399 +1.6211509,.17201829,.74032739 +.76610758,.87300569,.99296827 +.89826598,.47434659,.17248969 +.36230036,.79172896,.69498822 +.36488664,.50285006,.01316966 +.91001924,.12792896,2.1829183 +1.1394228,.56009777,.89638675 +.55249811,1.2118242,.43493509 +.66676424,2.8606561,1.4970726 +.58452741,.28317196,1.5401 +.72432209,.97386167,.71780532 +1.4222959,.71578037,1.3667082 +.73597306,.46439972,.38672457 +2.511781,.10704709,2.375539 +1.1383402,.76770664,.62189196 +.866667,1.194843,.86623203 +.51121443,1.4243432,2.1394467 +.37313285,.89883505,.2250231 +1.2129844,.1521672,.05832811 +1.2190912,1.4028359,.57587 +2.7798078,.67838909,.30416175 +1.7140505,.36575618,1.7901446 +1.1958926,.80436021,.15065568 +.89184088,.69691346,.30742618 +.30094891,.22880303,.27583015 +.49130916,.76991183,.92864857 +1.2052084,.60106556,1.5408949 +.56817274,.46896611,1.0358537 +.4099431,1.9026574,1.1607759 +.34779462,1.3705679,.26715518 +.83554609,.81885753,.33994077 +1.0622858,1.2724545,.94632003 +.46979957,.30896972,.11196456 +1.2195582,1.1368315,1.4380306 +.55268588,1.8318307,.22560627 +.3756768,1.4155855,1.0601858 +1.0649378,1.4463317,.22782935 +.65848468,.5487052,1.6855997 +.53767634,.21119089,.70569747 +.4359768,.05261301,.25423767 +1.0752246,.34250394,1.9171181 +.98839475,.1579482,.49638676 +1.3698835,.78381409,.40539652 +.45565064,2.5221558,1.8442277 +.38602028,1.3715377,.6499424 +.43658727,.12086051,.14889125 +1.6218801,.06957967,.98841212 +.80256432,.03195471,.93311592 +.38213782,.17619462,.18341746 +.90566923,.9725128,.24849068 +.643097,.39475278,1.7275628 +.50340468,1.9450516,.06562512 +.53810969,1.1042006,.25627192 +1.4786105,1.2002151,.33356379 +1.2867976,1.070243,2.1595483 +.53038799,1.3886117,1.0227628 +.67096294,.83766513,.28096342 +.68019355,.42878965,1.2116591 +.9397978,1.1621178,.33854705 +1.344763,.54103922,1.3895316 +.71986065,2.0761324,.92980509 +1.3418276,.51065791,.3262322 +1.7533063,.7838897,1.31761 +1.1983786,.355384,.10340343 +1.5793887,.43833996,.96615129 +.6278698,.11930799,.96131603 +.62968477,1.2340262,.26827687 +1.5942333,.76684404,.6693262 +.67758472,.87569813,.00664289 +1.2712776,.09013936,.60853283 +1.3511383,1.5986536,.69458402 +.38276248,.20097671,.05887844 +.73595226,.08319695,1.3262086 +.89247253,.4099307,1.6438132 +1.0118447,.54052705,.03143317 +.92250606,.15029452,.30650815 +.50879851,1.186633,1.2700808 +.42862897,2.3196728,.67737108 +.87385158,1.3515091,.33038932 +1.1999889,1.1415769,1.7371516 +1.3007761,.5485127,.3608592 +.9555448,.7161554,1.8032571 +1.1613875,.89119873,.21000528 +.7962876,.10422037,1.3314469 +.45872745,.12495687,.60604358 +.75921898,1.0546375,.7102083 +.74127223,1.4055777,.07016634 +1.036459,1.5033127,.2636248 +.63941783,1.5571868,.38469174 +.2732381,1.03485,.96875748 +.43700741,1.1185393,.11178924 +.61962105,1.1625814,1.5709813 +.39360145,.47402241,1.6130873 +.26496445,.97863579,.28866067 +1.2391926,1.4911082,.04831598 +1.5115885,.01842948,.11244772 +.90989531,1.0129922,.64553684 +1.5618796,.13540411,.1876748 +.93674217,.71566213,1.201416 +1.2325355,.16572848,1.4086916 +.78281401,.08582359,.64507746 +2.7541556,.31852128,1.1592708 +.35689356,.20904514,.98471452 +1.5348666,.27440475,1.2246321 +1.1422011,.26803303,.063684 +.51775046,1.6291003,1.2145712 +.58356338,1.2791543,.8257525 +.76134362,1.4101825,.97366453 +.57334929,.06901676,1.0230312 +1.3999603,.49503669,.2872782 +.48024172,1.2864187,.70007297 +.73738832,.88685147,.11068244 +2.7273041,.59257863,1.6392157 +.93035643,.72523762,.99105832 +1.0549037,.26197052,.2280544 +1.8199049,.30692243,.36073252 +.71239736,1.2608415,.38118938 +1.0359107,.80432102,1.1567051 +.49262176,.17861039,.53013791 +.43202238,.97919027,.55590133 +.66071978,1.400111,1.400415 +1.9657915,.49796241,1.3561797 +.33427167,1.1113247,.08180061 +.57769085,.14240797,1.25337 +.76235912,.50854986,.98883396 +.8751913,1.419262,.55471368 +2.9285688,.36428746,1.3110528 +.78676589,.38500243,.82185225 +1.2750626,.00018656,.74326358 +1.3968645,.31576633,.22673622 +.67796616,.39964425,.763272 +.86795773,.31399652,2.4490545 +.51442971,.5083159,.35068829 +.80948666,1.715195,2.0857548 +.70427526,.93708304,1.2067796 +1.1220805,.80778209,2.7004902 +.91435867,1.1260814,.61771656 +.67004833,.37033825,.5037842 +.53716544,.60256392,1.1050272 +1.1081809,2.2046373,1.3835473 +.41119082,.90922989,.4289048 +.49853647,1.0836564,1.4597534 +1.0804488,.26063521,.14425277 +.97154408,1.4479977,.30333989 +.62644525,.36837246,1.9894579 +.92109485,.02471389,.1746876 +1.533768,.01231696,.09710636 +.40711525,.21592824,.13076566 +.74017863,.41351094,1.0318024 +.37238622,.77950237,1.9683112 +.50744362,.76732063,.36564608 +1.0593553,.525885,1.11888 +.42053592,.00323394,.19264185 +.75609264,1.2446845,.39598059 +.75379246,.55862251,.27392173 +2.0249704,1.6587176,.54849519 +.47359822,.98797277,.01248531 +.30116325,.51789042,.63080927 +.71399641,.95754895,.45612286 +1.040452,.70606627,.55924975 +.46676226,.43145642,.29567431 +.78921385,.87643186,.9936222 +.86485404,1.5324762,.74505987 +1.9437816,.347269,1.5711377 +.80910315,1.3368288,.98066715 +1.0450173,1.4083568,1.1958272 +1.3784325,1.0006028,.42846603 +.89334683,.01122726,.6353613 +2.6355088,.23405906,.75138271 +.66392961,.41529735,.08998737 +.48197043,1.2034629,.52978037 +1.5713788,2.3442478,.69593803 +1.8172757,.29426643,.0466583 +.82767742,.70205374,.4235372 +.5446963,.8099782,.43146394 +.56766858,1.369059,2.0407427 +1.6156563,.40540004,.6511886 +1.0676438,1.3211634,.15405812 +.58481042,.85258151,2.2489273 +.69930035,1.2457669,.07488785 +.91829678,.51900166,.24754885 +.50108323,1.323255,.36327127 +2.2635166,.20409981,1.3235404 +.85080423,.75600585,.70530967 +.79761051,.09929486,1.7516022 +.90545565,.232963,.23414673 +1.069568,.20623032,1.4504274 +1.1284647,1.3120873,.15908531 +.47209667,1.128648,.54172295 +.58617294,.30017211,.20612666 +.99333431,.80565083,.61290054 +1.0347847,.34432396,1.1830741 +1.1934062,.68512099,.90072797 +.50942355,.87700056,.11982948 +.66461041,.64905252,.5956273 +1.1958137,1.5493316,1.0426218 +.33023367,1.0324499,.63506838 +1.538201,1.2779545,.98129104 +.38719971,1.3236419,.07012657 +.68219019,.47080449,.00389731 +1.9799862,.19819066,.02571981 +.98040857,.84760885,.77063871 +.49707268,.53814,.78853573 +.71272874,1.6437446,.44389283 +1.17044,.16480843,.54270096 +1.5882818,1.0894734,.44595309 +1.1462666,.31071823,.48213927 +.66408036,.56936915,.56697723 +.74232194,1.1029121,1.5872314 +.53017133,1.1603051,1.0287205 +1.2264511,.29723277,.02698276 +.50940739,.80436702,.29035998 +.84429554,1.9156868,.31353273 +1.0607504,1.1793422,.61122077 +1.1602293,.51033406,.55021887 +.87020522,.42951148,.24835494 +.33033855,1.9832097,1.5492628 +.76038281,1.2166916,.33997072 +.40447287,1.6346565,.24576808 +.52356434,1.4712571,.74963731 +.8931151,1.1981047,.14060645 +.79414603,.18142717,1.994365 +1.035516,.68381711,.72038351 +.81090739,.00988991,.97576977 +.99491158,1.1726551,1.5064769 +1.6976702,.34290207,.30196698 +1.2014968,.96330047,.63601645 +.51939451,.12353753,.2984478 +.46251733,.94011003,.14392633 +.93443845,.9031648,.80413507 +.45808029,.58040902,.05206506 +1.5008795,.57964485,.27510871 +.39124541,.46674748,.74168503 +.6847601,.62367884,.83322141 +.49597776,2.0712316,1.8522438 +.60628126,.59470948,.22607232 +.63987839,.26215608,.36751866 +.58343959,.73311267,1.6427069 +.26057947,.54113532,.00345989 +.51984445,.9652827,1.965922 +.46781713,.77915984,.16789732 +.97827927,.3222233,.25786299 +.78552019,.64365296,1.0818581 +.59798683,.56964917,.24801721 +.47709953,2.2685714,.31266807 +.77128018,.41962906,1.9982124 +2.2051108,.0211038,1.0934447 +.85474623,.73740726,1.7664138 +.34389273,.74912461,.0238638 +.34945171,.3550006,.69974344 +.40235655,.43185333,1.2327339 +.65886968,1.0918317,.60162251 +.94684755,.81143377,1.161885 +1.0299091,1.6691315,.54919023 +.87561665,2.3829511,1.0332899 +.74600728,.81755432,.63593055 +.77754925,.72024039,.35243817 +.5463928,.62181592,1.1207949 +.86031467,.84930459,.28999115 +1.5219312,.14761034,.88505379 +.75039726,.79826223,.73855589 +.77138089,.75042132,.16169095 +1.0534423,.32042235,.00978194 +1.1807698,.33492346,.60221821 +.8275199,.25552838,.17215926 +1.3705091,.36649148,.56827031 +.56580832,.46465681,.3007225 +1.0256161,.00440828,.43163491 +.65438749,.75845277,.36853074 +.680603,.75126285,.19255466 +1.3071393,1.6321924,.79024223 +.92766825,.88525212,.28512116 +.60476167,.00136505,.81584578 +.27521816,1.5384405,1.3906107 +1.1913202,.12370752,.31750206 +.74034668,.27569314,1.3624496 +.49010945,1.130945,.01812547 +.88927006,.23393336,.18573565 +.96187926,.49753719,.77224314 +.47889287,.34526336,.61090872 +.46937899,.35968315,.32371447 +.61173685,.77529923,.20416265 +.65040599,.47161402,.14006881 +.2723619,.71294398,.50482025 +1.0938859,1.4486346,.18421581 +1.2169337,1.2321304,.60782998 +.42160566,.83538335,.09845654 +1.0069618,.80480882,.57169294 +.57661214,1.7214572,.81449687 +.6713563,.01480615,.45771341 +.76861909,1.0599057,.40015685 +.47265991,.60968309,.65493804 +1.3207577,.06436513,.70945293 +.97673952,1.0231431,.13223341 +.61261669,1.0656468,.31442855 +.38056626,.9566321,1.3365578 +2.6175928,1.0029211,1.2039503 +1.6339986,.02082834,.22060208 +.75652628,.26765743,.94545867 +1.0838328,.48402493,.41209927 +1.8646867,1.3212638,.02100569 +1.3932974,.30894028,.95596626 +.55067059,1.0912221,.46657621 +.98341999,.17381381,.67729862 +1.4180468,.62650999,.66951264 +.62781567,1.6161066,.60268954 +2.1328284,.9259162,.2944042 +.64686667,.61886948,1.0291637 +.39372188,.39872019,.27937006 +1.7365695,.69588825,1.2224137 +1.6909363,.19007459,1.5678745 +.66203034,.54612555,.63526714 +.68805482,1.6203057,1.0271968 +1.2257052,.14897809,1.0768788 +3.7204339,.40467591,3.0439615 +.75747779,.50419695,.74409599 +1.2588614,.6930946,.82711834 +.53262254,.11356961,.51054044 +1.7217474,.59256709,.16253834 +.66517192,1.3717355,1.5563203 +.50045192,.28720386,1.0541726 +.87973403,.02452375,.84998595 +.62354216,.75373833,.69529924 +.74593601,1.3559179,.14528833 +1.1958507,.13800135,.23393488 +1.9263404,.09210331,.62908298 +1.9447111,.01859842,1.110169 +1.1792278,.94350801,.49981458 +.90535016,.75751591,.25608139 +1.7479407,.01739121,1.3421645 +1.2314698,1.0929773,.25002629 +1.1407876,.92737574,.58939174 +1.2729861,.60681242,1.8304895 +.40918529,2.5767703,.4494222 +.7362723,.69768196,.25235892 +1.3185693,.18480898,.22172404 +.36874916,.59512373,.19734452 +.83949696,.38655892,.0115339 +.96832815,1.2228631,.54184813 +.69045879,1.3930051,.79916112 +2.5078279,.31249757,.32300849 +.74419644,1.3278911,.27475781 +1.2295528,.16347262,1.0945787 +2.3224435,.31676138,.79430499 +.7785673,.35784802,1.0984166 +.84405715,.00788304,.82867249 +.62820639,1.7353185,1.6150203 +.59417398,.1880752,.68265457 +.53822179,.24491805,.59881123 +1.8114846,1.0658739,1.1841758 +.84472275,.00998699,1.4210596 +1.2914345,.33488178,.99673978 +.44481366,1.2235906,.18723802 +.25808908,1.7750425,.11313186 +1.064445,.1013922,.67791292 +.99466167,.36896271,1.1544787 +1.4420904,1.021753,.28144562 +.8598093,1.550462,.94360815 +1.3712898,.06158803,.77060599 +.64038663,1.3171013,.15785221 +1.0874698,.26709919,.61308475 +.9530867,.21897168,1.6048986 +.55276739,.89708771,1.288516 +.40168867,1.7376697,.28803378 +.83525164,.90506722,1.341264 +1.1673824,.83229621,1.0128982 +.95671902,.19888941,.74625189 +.69834246,1.1666288,.35985208 +1.2385006,1.3034088,.84765819 +1.0289578,1.136006,1.0322386 +.91718136,.03801559,.96497694 +.52199617,.98842325,.04676256 +.56392919,1.328582,.83257519 +.48531561,1.3048788,.85904626 +1.6325216,.72950298,.9418193 +1.0327797,.0807229,.30262822 +.4063755,1.0754721,2.7876422 +.2968961,1.0632601,.73116058 +1.0678158,1.2052045,1.0175431 +.50309417,.09496855,1.129563 +.39034915,1.8363493,1.8141336 +.99181705,.56482318,.1173331 +1.0103713,.37036289,.7349398 +1.8445516,.24457049,.31863391 +.52799854,2.4087518,2.2577044 +.91523339,.75397501,.19054067 +1.2374792,.00793577,.07779027 +1.0938662,.76342187,.77892171 +1.0135699,1.8457832,2.1155583 +.56935469,.56066996,.78546347 +.82193925,1.4883098,.40669771 +.83125527,.35212897,1.0610869 +1.2532145,.77737793,1.3091971 +.90274613,.56500616,.07934902 +.57565596,.31568948,.2261268 +1.0660466,2.339028,.04102253 +.94021713,.92029125,.16764334 +.81333787,.38290331,.91581693 +.31764713,1.3957865,.93789137 +.46865766,1.3097816,.24651337 +.73081947,.24640854,1.8637326 +.3450871,.86604825,.94063338 +.32739513,.56220341,1.1725088 +.87181157,.45443429,.55863647 +.84187074,.94429462,.25914636 +1.1980217,1.2415956,.7937599 +.7098216,1.8480172,.64246352 +.89400301,.08879554,1.6807445 +.86203649,.20225906,1.2035211 +1.4600309,.24398895,.04357859 +1.4093526,.07807779,.05116856 +.56817775,3.1169757,1.2559975 +2.006083,.61055232,.77162846 +.41848395,1.514876,.91661354 +1.5703233,.14542967,1.3422861 +.51647736,1.3051644,.39260214 +1.0194889,.1515592,2.5430919 +.61245554,1.0332405,.49402868 +1.1601385,.32390013,2.7114815 +.87572854,.84039271,.22138775 +.54642462,.92239487,.9892346 +.6058341,1.000647,1.0151919 +.43171251,.27173573,.12048994 +.95996286,.94839013,.41218081 +.53442666,1.9000519,.42938381 +2.2852163,.289215,2.1084575 +.78415538,.21184007,.12283441 +.5537301,.43595579,.42996944 +.86247297,1.0818885,.77981581 +1.3103277,1.6883825,1.5020784 +.92354011,.07492623,.01352091 +.91115348,.25775655,1.2661624 +.39447978,2.630399,.3815036 +.6735393,.79133162,.00364863 +1.2665882,.19351,.99591352 +.70865265,1.0854511,.07275569 +.77379542,.1063986,.55973126 +.23713347,1.4290601,.51553733 +.72891981,.82175736,.60679402 +.3529138,.64566293,.73915756 +1.3591836,.50587161,1.3693161 +2.936685,.41704472,1.7867627 +1.8820433,.20341325,1.9208747 +.67513552,.30770001,.10420719 +1.2520921,.24438077,1.1751671 +1.4093181,.09978443,1.3708791 +1.3985009,1.8862182,1.5242258 +1.1995322,.48339095,.33028649 +1.1211812,.5532318,1.6776817 +.60675011,.98902574,.59192099 +.26283937,.01482879,.2815233 +.56934707,1.3059711,1.1109477 +.56462005,.67528626,.55524766 +.66674094,.30057934,.48442782 +.75367157,.50889946,.18896251 +2.2359838,1.8164242,.15573693 +.64129256,.51416854,.26572334 +1.9845817,.58327633,.86598655 +1.1381597,.573722,.78631773 +.55681841,1.7214499,.69272318 +.66243468,.39868642,1.1109605 +.93117495,.01660118,.55162537 +.86511939,1.1481676,1.5657609 +.94119411,.09333623,.4540228 +1.4622665,1.8936824,.0996708 +.38990299,.80079218,.13434683 +.79660349,.5787599,.59712722 +.73177774,.38185957,.41059239 +2.0787811,.86196721,1.2484186 +.64641804,.63618485,.66664923 +1.7737367,.46149974,1.5495593 +.35698029,.19053813,.19093913 +.98422636,.13777967,.22421038 +.37748095,.80537342,1.0908697 +.68848486,.1820567,.5230857 +.63381507,.86187628,1.8032455 +.29263632,.68472355,.41844488 +1.5885882,1.1612382,.10476046 +.65380952,1.68499,.07081522 +.73206644,1.519829,.35606772 +.95070649,.08462731,.63035421 +.73285875,.62710669,.13527106 +.64716864,.71908335,1.9207691 +.66239759,.02541515,.62448023 +.31127816,1.3012115,.6184517 +.28532284,1.8397616,1.3988819 +.91889806,1.3692298,.64794922 +.86192952,.30559414,1.2348652 +.9975829,.23675019,.7864108 +.93510686,.6217817,.02530025 +.82044107,.01350366,.23175874 +.7266481,1.2103752,1.1004216 +1.8169802,.13662322,2.4956374 +.98410359,1.4837008,.17293969 +.49129919,1.3727669,.43054081 +.80861689,1.744274,1.1232031 +.50415848,.79986803,.93087754 +1.5288055,1.1770154,1.1205965 +1.089026,.00390467,2.5049975 +1.1464736,.6938321,.14341099 +.90609432,.82835513,.99419728 +.69107187,.29738907,.94782323 +.8917075,3.0130174,.188701 +.36188427,1.3085148,.44792623 +.68576597,.47221481,1.2306568 +1.1350803,.33978001,1.5639099 +1.2598016,1.9092177,1.1752768 +.97905679,.75647872,1.232763 +.44834571,.46607487,.21855264 +1.4171768,1.4295896,.84309762 +1.2258354,.14390368,1.0577613 +.82583637,.28154716,.50212372 +1.7053682,.77126459,.50918785 +.92727419,.01830864,.07451526 +.96528774,.31309991,.39512968 +2.3652654,.23569755,.0288637 +.86261115,1.5393847,1.125197 +1.6008458,1.7109201,.06707842 +.98258956,.47156316,.97365017 +1.2068628,1.442175,.32277629 +1.2584177,.93751792,2.9326619 +.52118442,.11112007,.82578593 +.56672804,.72226215,2.2784428 +.75013759,1.0623337,1.494589 +1.1703095,1.1201885,1.1039587 +1.2641918,.23624388,.30314461 +.4240268,.80186281,.36734486 +.4085195,1.3095011,.52816119 +.69794096,.35161185,.68476285 +1.6599648,1.1099807,.33786471 +.73074892,.17161436,.636968 +.64683913,.14311596,.37098226 +1.2052034,.29465705,1.187894 +.50601707,1.0731439,.75642253 +.68189275,.52498667,.93951007 +1.9187289,.68820193,.20708386 +.36675383,.94477553,.45778196 +1.0044712,2.0002861,1.4352696 +.68461447,.69570527,.81192861 +.59805474,.64369795,1.358972 +1.4605365,.4373075,1.5244434 +.64310555,2.4466932,.32407864 +1.1539227,2.185798,1.3995595 +.37885703,1.6643323,.8964012 +.676067,1.7315915,1.1384116 +.68715512,.73093193,1.4359138 +.48909905,1.2972191,.7570837 +.89367049,.71120826,.59914558 +1.4464409,.68018032,.96821747 +.98501137,.32537487,2.3527589 +.79841572,.43966139,1.5576068 +.51789823,.39317996,.98197015 +.49483765,1.4551583,.45002712 +1.6181674,.86779012,.15997324 +1.3924789,.5888491,.7890788 +.76426155,1.0398432,.82437169 +1.0389534,.7100779,.05904546 +.6423382,.43823895,.66143516 +.46974539,1.0947567,.92678019 +.80200722,.82311556,1.2046443 +.96586975,.69067478,1.3992886 +.9504867,.38848188,1.2799194 +1.2022894,.39787489,2.3860689 +.41652704,1.0208722,.0809956 +.79833556,.67568764,.39996743 +.34122165,.27060877,.15700396 +.63406271,1.2180399,1.195629 +.64371918,1.5126704,.24877916 +.63322853,1.3903967,1.022056 +1.033667,.4954481,.08607621 +.72653142,.27767973,.53842957 +.3154157,.32557568,.34146645 +.8336426,.50141849,.39548732 +.7797432,1.7372215,.61027142 +.95013181,.53510867,1.3576788 +.31977312,.8100018,.32658873 +.99927103,.01666901,1.5804824 +.79788344,.11823023,.21552165 +.87552775,.00702381,1.2465134 +1.296689,.38594663,2.0038144 +.37205147,1.0798858,1.006236 +1.0818835,.6024171,.33605099 +.69325187,.88598038,1.8750656 +.70750511,1.8382527,1.2486515 +.81542197,.58644241,1.0137738 +.26795637,.97404056,.0619074 +.80367518,1.2697691,.71296723 +.27647334,2.0303626,.04965743 +2.8578347,.15395631,.5978705 +1.0879528,1.123781,.21087132 +.6618088,1.5124374,.15339939 +.29941076,.9512785,.10265867 +1.4670512,.17839555,.20910411 +.40003125,.33300624,.22523408 +.5518588,1.4726383,1.9004909 +1.3714618,.06509529,1.0892517 +1.3703366,.02942755,1.0504637 +1.0227662,.48632841,.33719714 +1.0095991,.15510117,.82248745 +.40623792,2.1990779,.14549843 +1.1065274,.13356628,.03507055 +.74258519,.58884995,.25807917 +1.4867577,.21133449,.70279024 +.48382803,.39185937,.30262342 +.85369167,1.3321394,.6666782 +.40167736,1.4275014,.56610702 +.50566525,1.5555359,.30484603 +1.7247661,.46678134,.272483 +1.0445193,1.1745319,.81350679 +.72506343,1.3431965,1.9136622 +.47045734,.45580313,.40075801 +.72381788,1.2648142,.01665561 +.6944656,1.2234853,.59927937 +1.2164176,.79812949,1.0346797 +1.1355357,.55227929,.31358883 +.56166822,1.9444378,.60428153 +.43552722,.51546808,.67764419 +.74444157,.25510289,.33865169 +1.4598086,1.1816779,.60172065 +1.4256298,.85557812,.64847864 +.62420403,1.8167196,.06452987 +1.1308568,.21300551,.3468498 +1.1376986,1.1541196,1.0467368 +.92053706,.93071093,1.2938251 +.76151722,.42476482,.60596031 +1.3650622,1.2257791,1.2677555 +.30236083,.88700568,.72262535 +.5560461,.83743495,1.4795176 +.30170319,1.429853,1.2780745 +.60217258,.68297255,.20761636 +.85322198,1.5698187,.50262399 +2.3370368,1.1007938,.86320198 +.6207703,1.7637997,.14513842 +.7972313,.40540248,.54899772 +1.0523979,.86168708,.1032432 +.78271549,.78983644,.07834412 +.62527149,.13225446,.82801778 +1.6155044,.37964752,1.261282 +.90710598,.12270769,1.0396079 +2.0286382,.07094461,1.8607088 +.62771253,.48497744,.24641304 +1.0504819,.93367938,.6240237 +1.7451387,.04508152,.69736322 +.76740026,.80907143,.28193373 +.8873586,.06664064,.78907429 +.84576301,1.153012,.69098775 +.63089683,.59981721,.84347543 +.58955094,1.2185373,1.0558727 +.49097407,.16138794,.11744311 +1.9491191,.51178316,.87699477 +.55042005,1.2778814,1.4401231 +.56719912,.13286783,.29026716 +1.2986942,2.7504677,.35187813 +.41372498,.78799143,.65134417 +.43301172,.51881097,1.8896643 +.65091522,.13362775,.35890259 +.59337187,.01005524,.05041317 +1.1219404,.0668998,1.9711 +1.1164652,.91703101,.21652337 +1.4802395,.53783906,.14517819 +1.5429275,.58694151,1.2395215 +.43012705,1.2282247,1.5123571 +.86485881,.34567125,.95087876 +.61794905,.17131056,.27908998 +.85025621,.31650724,.34681363 +.71385252,1.5618382,1.2737682 +1.2443366,.24723048,.05667878 +.30733284,1.3149684,.13628429 +1.4049518,.64628842,1.9201966 +.36198371,.3374703,.89010134 +.4108468,.10297645,.30283391 +1.5937085,.91493351,.84111064 +.89022658,.64692713,.79507986 +1.0734591,.7608731,1.1045411 +.78983428,.54508182,1.1142996 +.39662201,1.2870549,.39155406 +.70509669,1.1253859,.76574268 +1.6849402,.37060868,1.7526696 +.94543096,.13523647,.075356 +1.1925102,.37400218,2.4949719 +1.0785928,1.4465582,.17735459 +.67447454,.44690754,1.1003337 +.84266339,.23030085,.19717519 +.93002563,1.4352589,.01106358 +.68407462,.4450028,1.2793245 +.6379383,.03859398,.33515866 +1.1134044,.12942604,.71677845 +1.2781103,1.164475,1.9456032 +.69082841,.46584318,.40591376 +1.3068209,.14285623,1.0511892 +.44867558,1.1974174,1.4038438 +.71794404,.566174,1.1789161 +1.0629861,1.6542122,.88024844 +.88838505,.78933894,.74891166 +1.1046818,.64957232,1.1455174 +.68325754,.48956039,.01121371 +1.3670602,.4344176,1.2898032 +1.4141057,.42020732,.28094147 +.57660619,.16745433,.02247702 +.89094055,.18488151,1.4822187 +1.3558041,.52690643,.28161232 +.98760546,.77122067,.91088877 +1.3122681,2.3927269,.32829065 +1.1998831,1.0441538,.1896693 +1.1672962,1.2021233,.83775775 +.87556621,.13937991,2.1927613 +1.2184964,1.0041144,1.3676579 +.39169435,.18979085,.89415448 +.77309371,.42306019,2.357895 +1.5653257,.06108953,.65590459 +1.5506223,.31517455,1.096834 +1.0672689,1.4111247,1.28636 +.65176461,.44089631,1.0058653 +.53182723,1.852216,.10638827 +.88205379,.0989698,.46895725 +1.3430813,.43612176,.96586642 +.68210312,.94245745,1.5809269 +.74259747,1.2345987,.32823111 +1.1229169,.53244201,1.4804996 +1.2843832,1.0199471,.0802778 +1.2485027,.4151223,1.3164174 +.67066034,1.9024916,1.0006911 +.97041213,.10946218,2.2515413 +1.8894875,.63379995,1.4761873 +.38842749,1.3141273,.10213367 +.89732826,1.9376087,.75035972 +.45153872,1.3509332,.07942329 +1.0424367,.09582492,1.2781409 +.87095344,.09743394,.14524531 +.94119222,.09292514,.30048576 +.58788065,.33993393,.41732409 +.21567439,1.3480326,.0800613 +.56773419,.10016199,.26868854 +.60916161,.94498645,.13579456 +.70466127,.44100012,.52682877 +1.5690815,.60058283,.99549663 +.45908382,1.3794024,.08637439 +1.9803725,.31013132,.36269594 +.94274623,1.7175403,.38025841 +1.1747821,1.2656415,.5294654 +.86386798,.97909778,.64204166 +.93984409,1.3724919,.30028306 +1.2983545,1.5995039,1.180487 +1.4209478,.55452019,1.1815225 +.40422693,1.1210913,1.5947088 +.49524622,.1778583,.48292315 +.87636492,.1985667,.66244898 +.40349032,.38197043,.86527713 +.55080678,.69501661,.16787043 +.82958318,1.1363721,.61740013 +.43252987,.65382835,1.1583485 +.45925177,1.517449,.18581936 +1.0976001,.63288485,1.4848182 +2.1362869,1.0122947,1.156996 +1.0424784,.13522552,.59760053 +.84236232,.12203046,1.3225251 +.46938624,1.3416189,.02284271 +1.0692703,.69077551,.01857791 +.43348623,1.005375,.35816335 +.41044493,.01092559,.14000705 +1.2159907,.30126785,.43122838 +1.3165433,.4079147,.40306342 +1.0576402,1.0412661,.42390407 +.83643873,.39127531,.23244369 +1.4380848,.09969165,1.9274247 +.47853226,.17067129,.64272272 +.86825886,.56057576,1.5598289 +1.9226516,.49658624,1.9265305 +.80825157,.50248479,1.552143 +.67980861,.80820015,.15394015 +1.3817979,.11101308,.19617022 +.90517723,2.0664205,.92725195 +.43492433,.9181223,.68828813 +1.028409,1.4246605,1.7432907 +.5596685,1.9096271,.5737964 +.57956843,1.6860061,.96028371 +1.0305454,.46205698,.08563006 +.65656826,1.1545338,1.156441 +.71416552,.13595004,1.1681575 +1.4461838,1.8517905,.81926529 +.44986785,.66597872,.80409884 +1.5451207,.69973372,.42772082 +1.1554755,1.0060893,.16355335 +.78915339,.04523153,.20695217 +.42748157,.54705182,.46459881 +.24086911,1.6575716,.69380293 +.56632522,.91424185,.95620751 +1.2177745,1.4065124,.60851498 +.99167137,.01651041,.09221667 +.36314934,.92898366,1.5398685 +2.3755488,.35604083,2.3723701 +.80716152,.33084396,.88853942 +1.563577,1.2413979,3.1357452 +.85158296,.2144858,.63394392 +.74118323,.10517412,.52282443 +.53273007,.79656981,.951057 +1.0790319,.4401729,1.6462462 +.90457134,.20254306,.78940819 +1.2820668,.04739933,.86788293 +.75371854,1.0030826,1.5329612 +.39552517,.73462916,.03380393 +.71540605,1.1973276,.97245521 +.44730595,1.288408,.43748769 +.41767677,.0185575,.27792075 +.7642479,.91830209,1.2017508 +.48229993,.4166692,.52454571 +.97248057,.82311421,1.7769042 +.96121333,1.5903868,.87759977 +.66545653,.05885599,.75867257 +1.195815,.52355447,.20389942 +1.6059195,.06595833,.38275 +.84512829,.92141934,.14273355 +.30654824,.11238581,.00113902 +.29508192,.79876788,1.2841605 +1.1258028,.31881196,.10642991 +1.1230205,.00610212,.82853386 +.4711372,.7528971,.42187887 +1.4948916,1.4084126,.6016941 +.70990089,2.0239534,1.9433362 +.95875468,.72517245,.45908391 +.49244111,.63103376,.5296779 +.84409877,1.9454574,.22085605 +1.1515885,.2867891,.67677849 +.84974158,.87939295,1.3530303 +1.5354213,.29069955,1.30613 +.82758843,.49557258,.67092684 +1.1432095,1.5016758,.80645081 +.37635256,1.0392035,.18044028 +1.2584437,.21416892,2.4105628 +1.7502071,.60614081,1.1626668 +1.7111386,.00341145,.32092461 +.3678829,.65986207,.42742112 +.42112893,.34356323,.88790807 +.87066891,1.6447239,.81165975 +.87523186,.11238611,1.4045994 +1.1465606,.22388737,1.7496438 +.43025039,1.1392887,1.0774378 +.35191847,1.4438879,.12171428 +.3276468,2.1591995,.63441363 +.84817796,.36196262,1.7906424 +.67194866,.76566427,.74157797 +.94606788,1.322481,.00719848 +1.1010389,.22053357,1.0608081 +1.0466285,.1566362,.69705856 +.79751731,.17458494,.78571681 +.28710738,1.7219012,.31874361 +.97008606,1.8160183,.53636304 +.77220381,1.6485222,1.1137135 +1.0732368,1.973855,.48496058 +1.1174558,.12062681,1.1530647 +.63425629,.43877853,.02365364 +.94605311,1.1952815,1.8442832 +1.9569804,.47255778,.31835447 +.39275807,.65687061,.22103229 +1.1058415,.27776472,1.5325138 +.91080919,.81561858,.2864884 +1.4796189,.0966807,.35011314 +.68982634,.16190077,.80635098 +.74535136,.45738539,.51666786 +1.3794918,.78855498,.58016469 +.95195159,.17586122,.3193137 +.59627113,1.579985,.80916445 +2.2297768,.01488859,.20842846 +.962406,1.3328,.67996803 +.94127891,1.7194369,1.4807273 +.9266049,.33972647,.14585481 +1.5667038,.74421117,.67693333 +.76930285,.17297084,.09362641 +1.6276019,.22923464,1.6925669 +.75739085,1.5620481,1.3113134 +1.1088644,.7717194,.30505961 +.91361539,2.8992909,.63473499 +.36877635,.49034472,.0361533 +.92119481,.84358021,1.0305902 +1.1937202,.98169773,2.6356452 +1.064302,.09180568,.81299094 +1.0358729,2.1185852,2.0559025 +1.8212228,1.7024192,.06198103 +.87610075,.02207269,.10799433 +.54249604,.60947906,1.7711741 +.69181524,.89874556,.10038361 +.85768706,.61967968,.29404675 +.89158356,.34321615,.48513977 +.7473635,.36569591,1.0112513 +.60817742,1.5896862,.44205796 +.58494584,.31339078,.51894401 +1.296543,.48201255,.14197796 +1.5313662,.05315892,2.4536729 +1.0523008,1.3705425,.41024384 +1.0869244,.20643473,.94757325 +.83738237,.30185802,.54810077 +.70013769,.58016741,.7281337 +.61608562,.99683593,1.4436185 +.97240706,.09316025,.20723273 +.61715384,1.2046918,.38490316 +.82104018,.42291523,.14527071 +1.3386883,1.8053525,1.0874947 +.6419742,.0631837,.17150298 +.35012649,.41367975,.2635273 +.85868305,.58997286,1.1506543 +1.1599487,1.7822438,2.0695073 +.734218,1.3244475,1.4322148 +.5736147,.23293431,1.2093781 +.99988801,.93431153,.57840056 +.53950165,.14860632,.5242768 +.45147578,1.8859141,.31709516 +.44707785,.82729497,1.2060938 +.49695535,.82512503,1.1417439 +.40440289,.90337322,.21117003 +.89412526,.24466703,.63872391 +.76234543,2.0513918,1.554673 +.82566751,.9508176,1.1622972 +.48914525,1.3158522,.73694981 +.84590526,.46680793,1.4569003 +.83419443,.7026478,2.0868266 +.81299491,.94630913,.97796885 +.64849935,.8177072,.83756886 +.65311222,1.9284479,.41711678 +1.8701811,2.2490603,.34191002 +.68639592,1.8304427,.87379889 +1.7650328,.9168858,.25977941 +1.2917089,.39031664,.34474457 +.63025476,1.3238896,.65712044 +.42198887,1.4127121,1.1676557 +.38409197,.37093228,.89884853 +.58024459,.05525137,.35573887 +.87719042,.66050877,.16387962 +1.1585569,.78634579,.36744606 +.44227368,2.1301889,.34472722 +1.036002,.3058152,.00001275 +.76799138,.24597314,1.7185414 +1.2213443,1.0145093,.62506228 +1.0869715,1.0866605,1.3568948 +.98374562,.11726799,1.4080491 +.54406347,1.3160299,.25353547 +.23987135,2.3422449,.81475371 +.56076912,.3656828,.60206292 +.68899462,1.5785777,.24480058 +2.0837588,.32886483,.53263508 +1.7707565,.29561921,1.0464848 +.53397435,.59685288,2.2651266 +1.1976009,.09978637,.9331032 +.78217582,.63386589,2.2912695 +.7013708,.43987276,.79969408 +.80493675,.194773,1.9038448 +.96961049,.18173098,.11450413 +2.7078791,.97445435,.35358044 +.83015811,.43017363,1.3762965 +.92321551,.26048996,.53638132 +.31433076,1.9887864,.72303461 +1.0004534,.29273888,.31870647 +.63118531,.86786302,.24980944 +1.2131082,.2015377,.54030327 +.69694057,.17536044,1.9058014 +.45050299,.68618999,.73071617 +.51855598,.99629033,.18689581 +.86148071,1.42347,1.7967883 +.89280778,.60569428,.07291367 +.47261092,.34101878,1.639613 +.80506759,.69198435,1.4604112 +.33823771,1.6950179,.37448589 +1.5762771,.92011314,.35473767 +.85646886,.4793868,.19462511 +.79999391,.27373548,1.0680269 +.47687623,.46852207,.289906 +.8841666,.75228656,.23701591 +3.2403454,.06991375,.51201868 +1.3451214,.51823681,.37011043 +.98702329,.30843669,.83647843 +.65792579,2.2817843,2.1032983 +.895216,.17513877,.8414763 +1.5612579,1.0978226,1.474745 +.43965733,1.2925842,1.1801559 +.73982048,.40590113,.34256327 +.50482266,1.8080203,1.2189533 +3.4590782,.69477876,1.0575893 +.5734614,.98956175,1.6937525 +.43487774,.99292641,1.3350255 +.75297414,1.0121156,.53734227 +1.1180716,.02035531,.00093825 +.18871668,1.7935203,1.2106768 +1.7007853,.12265442,.12879552 +.58224636,.00429888,.74489896 +1.0730455,.29163237,.81360515 +.95794234,.13288534,1.5494317 +.52766992,.1379024,.61013124 +1.6231913,.4970866,.5942797 +.78863427,.86167183,1.2029711 +1.2493858,.67727463,.75278604 +1.1053569,.30161996,.05495423 +.87401015,.72987837,2.2560883 +1.9028433,1.1171945,1.0426232 +1.0381069,.92107896,.73508706 +1.0844316,.77519675,2.0275076 +.79575765,.85664067,1.5602707 +1.1640213,.77260325,.46830972 +.54092245,.54642786,1.1359257 +.89825247,.30208578,.00927571 +.32626297,.22252469,.5701289 +.84619629,.84823213,.38865884 +.5470792,.996815,.35885981 +.71904489,.90567464,1.0885773 +.75404668,1.1454797,.7499429 +.56242361,1.5899304,.32456555 +1.0479577,.7128804,.113078 +.96370104,.42847818,2.1286389 +.83154227,.17203111,.9900413 +1.4471864,.38635148,1.0077493 +1.0421996,.7510888,.23893547 +.87072814,.56915,.30374348 +.84881204,.45007114,.32287893 +.58534482,.16188638,.77373123 +.62701877,.80709971,1.189752 +.54678844,.39805023,.83646706 +.8052704,.65421419,.85248099 +1.1294095,.97332184,1.2282867 +.84543861,1.6592821,1.8187934 +.48305994,.52156671,.14002336 +.80130249,.7124727,.03749459 +.43629507,.95240696,1.3726053 +.47514847,.19840223,.58947347 +1.0976798,.22671697,.83556712 +2.1469259,1.2877724,.48912513 +.74310634,.14944472,.96771347 +1.400443,1.5163506,.60554215 +2.5577224,.10895062,.40579713 +.80793545,.18266378,2.4079475 +1.5418656,1.0505313,.77353668 +.76545093,.20358307,1.7837764 +.38193583,.78448595,.01215295 +.73999126,.30520442,.82869775 +1.5445467,1.529839,.72553749 +1.5954663,1.3378818,.09294174 +1.8815578,.15195592,.97015986 +1.1933945,.28916813,1.5370988 +1.3091378,.50724444,.15141919 +1.0904352,.93754319,.90026927 +1.146363,.55742031,.43171253 +.71674554,.82305353,.43719213 +1.884986,.22630168,.60924019 +.5271513,1.11547,1.3235237 +.5727505,.88204676,.89407636 +1.3804002,.70790253,.56658961 +2.9879536,.16513129,.35639043 +1.0975989,.83805072,.9377047 +1.2345649,2.0453922,1.1974073 +.53416665,.44611516,.40427261 +1.4623329,.32659893,.34322173 +1.340545,.09080579,.35500191 +1.1176408,1.3797945,.71432204 +.55731411,.58558179,.69224966 +.59145706,.85356218,.36461696 +1.1414549,1.1013662,1.269495 +1.0455484,2.2881434,1.2785505 +.78533678,.44963745,.15885156 +1.6792519,.7982505,.9450939 +.36608307,2.1735169,.88730128 +.75369599,.67874867,.13030811 +.56650621,1.2479414,.71236702 +.9875515,.61538634,.5516746 +.70834533,1.1988077,.31405079 +.77575409,.63608382,.39298241 +1.1554622,.99036397,1.281589 +1.3832878,.43925045,.189163 +.39230094,1.0929163,.20964372 +.46885246,1.8514787,.5545643 +1.4584579,.62173814,.60976066 +1.9991106,.95397377,.69755076 +1.435107,.4919698,2.004016 +.59233306,.83837571,.33797914 +.56497289,.75098501,.10723314 +1.256717,.94338098,1.1117437 +.65713559,.0356594,.71791152 +.88648373,.06152644,.6352431 +1.1292286,.30827903,.86583192 +.50122516,.59416752,.31212906 +1.5022097,.26795088,.61921293 +1.5733796,.79088631,.37095513 +1.1297935,3.8405946,.63526167 +.45901535,.5635985,.77677984 +1.1924855,.26890106,1.6506061 +1.240718,.28222892,.65678926 +.60016173,1.7323141,.08952986 +1.0633209,.6746998,.97059155 +1.9015871,1.0033317,.41556359 +.79046142,1.4809485,.43933065 +.82830956,.1810409,.25479714 +1.096129,.89493557,1.849583 +.8521548,1.7177364,.86112114 +1.0190714,1.1688656,.21457121 +.62709843,1.3112401,1.3161829 +1.3204375,.01734342,.27403566 +1.9302137,.79765598,.18261503 +.72049732,.39678263,.59882433 +.9949812,.45906315,.61097407 +.5494046,1.3032594,.16743669 +.51250604,1.5425443,.02061614 +.80073031,1.0901881,.32567672 +.84619553,.3042209,.3863655 +.2796237,.8891509,.17247116 +2.2047061,1.6548541,1.255776 +.73861832,.63220254,.34488454 +.91811396,.65487805,.01453701 +1.6129111,.90047541,2.5876127 +1.4730558,1.0096261,1.3456746 +.7215312,.32053276,1.0627744 +1.0200289,.63728318,.22701032 +.58812978,.15989605,.1472998 +.76143078,.25724066,.50379247 +1.0007221,.15547108,.82955941 +.44684569,.61637717,1.4726825 +.75213934,.05854409,.15814134 +.72593187,.83957352,.15216062 +.85691126,.51297135,.29230958 +2.1418765,.36639298,.15672626 +.69645495,.44547667,.73522601 +.47041499,.76368659,.59705386 +.29237239,2.9377084,1.1502623 +1.0820996,.7806713,.57763556 +.40892991,1.4127882,.29407099 +1.1214057,.17590552,1.0365595 +1.2812819,.1831349,.85044709 +.66624287,.20238228,.32777149 +1.3845992,.81722592,.17635331 +.66189731,.30487135,.4710061 +.87735076,1.1846272,.56197606 +.9949029,.33701663,.73243319 +.81959267,.87551781,.00215952 +.82681661,1.6580037,.14084015 +.4754426,.92803108,.33497208 +.61246933,.51864808,1.2873384 +.66301867,2.1160652,.33830564 +.64792985,1.0934317,.38708533 +1.0118064,.7031618,.6488381 +.32838827,1.2125698,1.2206879 +.80334304,.11728235,1.1657609 +2.3546887,.4062394,1.6258727 +1.1732706,.8637505,1.3649181 +.60765793,.10697943,1.1640218 +.57829896,2.0665907,.17339905 +1.4293562,.67713298,1.100146 +1.0409414,1.7212538,2.2663564 +.47889823,.55618229,1.0073306 +1.9549326,.31786399,.02326119 +1.3034476,.63376272,.09980212 +.98548376,1.3313872,.75725167 +2.0841434,.16860951,2.4924318 +.99696994,1.2349897,.21993287 +1.0030184,1.2788742,1.1579368 +.77497337,.47869894,.09850172 +.83944417,1.0697878,.07737703 +.57186688,.30902318,1.2384546 +1.0503099,.39827093,1.1577446 +.92543884,.66862053,1.0230798 +1.6014196,.2373346,2.0154319 +1.2408921,.10250007,.53177604 +1.2000936,.53109336,.68638685 +.81921622,.75725848,.31892317 +1.4502908,.07760594,1.2841604 +.60066188,1.7719545,1.0274537 +.56188375,2.8155942,.28232126 +1.4431744,1.0447191,.77386283 +2.7628211,.48157283,1.2717065 +.53120379,.71288787,1.3112337 +.88502485,1.3197762,.03260909 +.48828017,.07007357,.93584314 +.61416899,.63032439,.32852294 +.73208923,.29554638,.15615793 +2.6771549,.070433,1.2980674 +.70284305,.27393013,1.095256 +.68409702,.82779359,.21169963 +1.326484,.32886862,.34912895 +.74982654,2.6589912,.05049999 +.35492388,1.4453695,.38621867 +.81009421,.57625592,.6574152 +.87069868,1.6135866,1.9223405 +1.9354981,.16959305,.25998611 +.49004866,.93199595,1.1090721 +.63609145,.52291141,1.3312035 +1.2077574,.68883098,1.3830918 +.89626015,.57848023,2.0137894 +1.4937318,.20889766,1.3115646 +1.0661328,.15596401,.61307832 +.89532605,.7468163,.73720117 +1.7841984,.1254145,.23343882 +.6866785,1.0210435,.95881417 +1.3517389,1.0549192,.35385124 +.74496887,.23687686,.14359735 +.50664635,1.5646908,.14495787 +.87664608,1.5771192,1.5978349 +.55366892,1.764981,1.6478837 +.77621936,2.698741,.69956538 +.73677446,.97389717,.2898191 +1.1839094,2.6229367,.39013874 +1.8753034,.24722392,.46456718 +.76165704,.55641915,2.0286054 +1.1349125,.13479545,1.3225192 +.70857771,.70052008,1.1688513 +.64351097,.67940777,.02168315 +1.2140044,2.146367,.76782664 +.52042597,.18087982,.24664531 +1.1362029,.25370661,1.3778402 +.39471757,1.0724123,.83679814 +.70923821,.39540698,.0684965 +.95444973,.25797651,.73552137 +.46099669,.01887432,2.0920296 +.34149372,1.0507555,.00335328 +.7670203,.65460805,3.2249667 +.27916,2.2603746,1.0155389 +.68398179,1.4572525,1.4470446 +1.6300732,.03268085,1.0203873 +1.319872,.4013702,.03988896 +1.6598757,1.517952,.64944086 +1.212824,.64743222,1.1756726 +.57088388,1.5103481,2.1830982 +.77082269,.33380251,1.6623414 +1.4850427,.3787326,.62277458 +1.083796,1.0022952,1.9000009 +.98354672,.06184844,1.3029509 +1.3007546,1.7781939,.89389271 +.70196699,.41759536,.92711991 +.58707968,1.518764,.86343486 +1.0257552,.08897266,1.5090962 +2.4311244,.5212023,.33190001 +.72665103,.58609764,.60376929 +.20954947,1.2933451,.23875484 +.35040779,.82397907,.32309988 +.8230591,.73032903,.96635121 +.68735942,1.2756754,.55375856 +1.0394816,.04159205,.35250986 +1.194961,1.3383333,.60022654 +1.3616258,2.3529031,.94787594 +.3457165,1.0072048,1.0204671 +.46635164,.60816441,1.4339773 +1.0823167,.33527612,.62796138 +1.2636759,.00201937,1.0618518 +1.8311993,.20704703,.79667856 +1.7552397,.06024203,.86234602 +.78505214,1.4984435,1.0617315 +1.8346339,.57641005,.49323777 +1.1056089,.66909658,1.016181 +.52864807,.98361442,1.7224784 +1.0936682,.90646043,.57546147 +1.4373978,2.1160715,3.5912197 +1.2973415,.02998114,.40076299 +.43587928,1.4855401,.48226271 +.5328098,.3482175,.35069734 +1.2385171,.65480171,1.0445835 +.62579064,2.2726237,1.6125171 +.37813296,.34449879,.76659507 +.59696492,1.9369736,1.1086651 +.43720226,.69292079,1.4822255 +.99133048,.61228135,2.5600113 +2.7578582,.87987323,.6387946 +.82537516,.76308733,.68605665 +1.2969498,.03123274,.03095156 +.63768065,.49043825,1.7745958 +1.1290194,1.2516489,2.2837208 +.60143822,.9236533,2.0404879 +1.0533971,.32081001,.76366876 +.81698159,1.2031321,.46931375 +.49398969,.86733197,1.7679491 +.82577868,.49939607,.11172275 +2.0296595,.91767023,1.838531 +.83562772,.57649033,.10744026 +1.9166821,.6376192,1.388086 +.62571863,.66714411,.36554068 +1.1224353,1.2366423,.11603413 +.64717811,2.1239761,1.5941806 +.628173,1.9896813,.43507412 +.95912127,.00352317,.86768828 +.9405675,.32093875,.48266624 +.7041777,.46319454,1.1996635 +1.4772669,.79125665,.82604723 +1.0993133,1.5267727,.18595015 +.85955206,.02236547,1.0090421 +.77410982,.88153714,1.180712 +.3687424,.6363626,.41151212 +.5423469,.86779338,.93228016 +.71309482,.04385884,.81936005 +.73120529,.40114338,.90100998 +1.480735,.48756695,1.2195032 +.68572685,.57683953,.32398097 +1.6120602,1.0658345,.87234331 +.99790849,.75741467,.59136993 +.66499246,.858649,1.4562418 +.37886414,.55601763,.3127979 +1.0720918,.08474508,1.8492238 +1.971429,.46517569,1.0052857 +1.1081796,.33022695,1.5540611 +.58382074,.12625249,1.1423497 +1.5740661,.40911917,.75154691 +1.1627342,.12899764,.04772163 +.66519463,.29696728,.52801413 +.43272395,.30803212,.85076752 +.93674524,.0574818,1.6260923 +1.2316083,1.3044285,.26749766 +.66570617,2.143313,1.7532773 +.30454198,.32475911,.11009503 +.72525468,.97801035,.18491169 +.66700494,.14848625,.44302884 +.35781168,1.0504277,.94003548 +.66298637,.25896061,.89081862 +.64881772,.57207609,.29266533 +.59881091,.4969669,.70608813 +.77250297,1.8519176,.88255954 +.27931677,.56435418,.05015162 +.5272954,1.1426903,.04648039 +1.1430794,.0912022,2.0111693 +.6586237,1.2859799,1.4066465 +1.6574489,.10732304,.06416664 +.56132021,.23813398,3.0800891 +.57011295,1.3267054,.83375398 +.74011851,.44975227,.91798278 +.48581214,.39372685,.15275444 +.6844999,1.8406585,.71511943 +.52570624,1.0779819,.23627785 +.70322186,.8328094,.28334673 +.82830367,.05787077,.63020489 +.75659147,.60644717,.9499532 +.44596581,.70395116,.0803273 +1.4991871,.39456733,.74317344 +1.0847804,.77998216,.23482766 +.89654904,.22634532,1.1830134 +.40310521,.94347145,1.0658165 +.44700199,1.3710142,.0451242 +.69228461,.74927823,.72023915 +.54079611,2.4639758,.07896599 +.62173828,.92093337,1.2305823 +1.1907225,.40515516,.96161474 +.40919593,1.8327859,1.4040637 +.51271713,1.0305833,.91473157 +.28878903,.30980619,1.4629106 +.79213961,.29689922,1.5847148 +1.0160991,.29592171,1.1747287 +1.858867,1.0077981,.80270718 +.81246199,.54607214,.17158006 +.6375435,1.7237661,.22096941 +.77193032,.22512937,.57818779 +.59378202,.43725462,1.5918746 +.88460089,.49737881,.01917926 +1.2653674,.31525731,.39248941 +1.1783097,.47465451,1.2321073 +.63689359,.02335781,.28415655 +1.7984721,.11448366,.78055041 +.5890315,.26530359,.78731677 +.97310366,.21969806,.82411825 +1.4716392,1.5427524,.10426221 +.69667122,.57234183,.09323236 +.25361433,1.5336485,.31067059 +.5867862,.21158098,.18946693 +.90123976,.07470156,.12659655 +1.213919,.69455222,1.3095053 +.50269546,.09977476,.48597587 +1.4159391,.83681725,1.2829088 +.29607819,.86634755,1.1326543 +.61913522,.4811996,.12909468 +.90785227,.76235467,2.25177 +.71579448,.35100324,.08492891 +.44332587,1.1113058,1.3667325 +1.5492066,1.1476889,.95368901 +.34544127,2.0432292,.03822727 +.72902886,.21973528,.73867209 +.37304707,.99602816,.20894372 +1.7852121,1.6121873,.87951466 +.47899322,1.1495526,1.4584873 +.65458326,1.7426328,.12490208 +2.3396756,1.0121456,.72588919 +.32255472,2.5494666,.83963014 +.88032819,.11546628,.42057003 +1.0603174,1.7064955,.12546317 +.84013224,.13194311,.11599193 +.43213697,1.0458219,1.2976245 +.59036872,1.3927871,.8729225 +1.1860544,.15606352,.10495783 +1.1727845,.82092904,.57323074 +1.0701285,.51648288,1.0273891 +.6122609,1.9887227,.49236691 +.93889452,.89940127,.16170404 +1.8025361,.9690524,1.0991169 +1.0383275,2.037141,.29967995 +.85410852,.44920143,.75629772 +1.8129381,.45976618,1.8179122 +.88314345,2.1262775,.12813347 +.44889708,.57432372,1.1343946 +.39877331,.30291666,.69059617 +.45210602,.82405715,.79410155 +.67554774,.40543561,.22484804 +1.0830243,.16244204,.55159942 +.62614632,2.4045614,.70585456 +1.5128916,.83121061,1.2606134 +.98548974,.32873951,.05595707 +1.4438305,.25335031,.52159746 +.82528883,.59096001,.36292373 +1.2915456,.09661808,.34423643 +.45861882,.54729486,.24916069 +.6533932,1.0962694,.59872413 +.93843726,1.0727366,.26628028 +2.0250842,.12975417,.30199033 +1.7647664,.84256162,1.158956 +1.6248994,.28332438,1.8386502 +.70759889,.59215274,2.4795218 +.23399236,.44941611,.59015406 +1.2010205,1.5248182,.67655175 +.93512807,.32748667,.42943459 +.82127597,.889559,.64515097 +1.8031774,.0276325,.58292551 +.25942487,1.0830279,.45831341 +.76957649,2.4941852,1.4807373 +.60127388,1.2174706,.32129591 +.50314388,.8967949,1.0065148 +.78636546,.72672883,1.6205729 +.46094191,1.6671581,.52102118 +.43856381,.38297786,.96161868 +.6406516,1.0565932,1.51342 +.96320639,.10109885,.30183822 +2.1998257,.76008859,.58334712 +1.3072564,.85207891,1.5742022 +.37720432,1.4301214,.08347675 +.6901138,.55100695,.60763591 +.70896592,.25694648,.79406204 +2.2466759,.78893125,.98869169 +.76073661,.26639589,.04488728 +.48843141,.19355463,1.3692041 +1.8007265,1.3169392,2.957033 +.88399963,.87469988,.78739078 +.49140662,.59640762,.43070246 +.98803949,1.74397,1.0699548 +.63433764,.77839705,.13465012 +1.8089698,.80752846,1.4802409 +1.1108405,.89280148,.2572391 +.46957833,.91598702,.86725062 +.46754954,2.0483906,.56178032 +1.2309348,.33265893,2.3749953 +.83920503,.62474109,.79857703 +1.0631835,.50445419,.16099222 +.72000253,.42559205,.03478803 +.88877617,1.7901791,.51451442 +1.5297218,3.2245167,.18593642 +.80837648,.18735874,.28564484 +1.2477765,.99057046,.64339576 +1.3668302,.07747581,.55541377 +.32199946,1.3953774,.63074684 +.61476782,1.4733217,1.2566646 +.74908794,1.6650032,.93190363 +1.0258541,.42787237,.07952859 +1.2772053,.49779433,1.5812486 +.88617623,.53854866,1.3771439 +1.2424527,.07791264,.90338674 +.7888844,.12582923,1.964423 +.76487431,.26576746,.20129377 +.56030642,.36981307,.72757852 +.92989167,.20832775,1.2863428 +1.7696083,.34620634,.34724901 +.41783663,.36778677,.02145102 +1.0470969,.0097598,.69159028 +.57915219,.66136524,.56450238 +.40199191,.97675378,2.4715132 +.35045138,.36274283,1.2747534 +.7315745,.68178661,2.64896 +.77906867,.0350941,.17238711 +1.6315424,.6206878,.1770486 +.4466052,.68951923,1.2641274 +1.473791,.44615423,.88236719 +.74827021,.68521319,.69072323 +1.4669998,.0634396,1.8751621 +.85116202,.5402039,.43300823 +.81802523,.31557287,3.2698305 +1.1160581,.34890071,1.0944871 +1.4855828,.5309718,1.3649611 +.35239742,1.3935463,.05659625 +.79315919,.03146981,.80057041 +1.1637823,.46694142,1.7442649 +1.7820326,.83578567,1.4269196 +.44424315,.62919182,.10087186 +.67311605,.19855402,.62751018 +.47893766,.43973946,.4901392 +.48636656,1.4703725,1.4189356 +1.8104106,.51899936,1.4339097 +.763461,.72555837,.38743909 +.41547221,.79143903,.2842058 +1.2328628,.18188521,.85739762 +.48892649,1.881593,.59543306 +.87536904,.36068688,.69524233 +.65776179,.84399777,1.3347259 +1.2641292,1.2519345,2.4412641 +.81383733,.50988001,.64138702 +1.5817637,1.2990176,.16370971 +.85898331,.34487195,1.7049286 +1.2826557,1.3395103,.18780254 +.73667927,1.8120343,.36583434 +.55595405,.83101531,.4461618 +1.40961,.66001697,1.3241975 +.96427142,.24466518,.47941728 +1.3526563,1.2712045,.05536815 +.9088093,.48230091,.7214526 +1.0920463,.2695949,1.1954408 +.62963995,.93061193,.68145727 +1.0909677,.12448801,.37286856 +.8075301,.8093552,.2493866 +1.1291061,.80025484,.30528436 +.51260099,1.9851337,.69988047 +.70362871,.97126592,.22635257 +.37700753,.06427856,.09767112 +.28114916,2.2018104,3.2556476 +.60323042,.06646298,.44122565 +.60225589,1.0503086,1.2606688 +.80533734,.65312774,.48684857 +.93473878,.79523548,.21568511 +.38635901,1.3217476,1.2110371 +.97378782,.39960346,.8039336 +.45670923,.84624468,.56089746 +.38434214,.97559167,.38890107 +.30235153,1.8599213,.91772947 +.8077132,.85317494,.15676439 +.58744469,.09640733,.26314048 +1.6206422,.05635009,.97853104 +1.3178196,.27226967,1.0738221 +1.523082,.24739186,1.0571651 +.7553551,.31599128,.21271465 +.9297138,1.4820465,1.2559724 +.66964134,1.2528443,.36878021 +1.1706587,.03183799,1.0703019 +.99617647,1.2793838,.41711761 +.7211779,.83978311,.16874621 +.36478783,1.0753265,.72925341 +.70594517,1.7221664,.46805098 +1.1166631,1.2528894,2.1653862 +.44327317,1.7735473,.71175487 +.53918695,.92416709,.2410636 +1.390645,1.193502,1.235897 +.72532291,1.068896,.2034934 +.79946261,.54196146,.031077 +.49323925,1.4343642,.54639152 +.23871504,2.9001924,.69302187 +1.4835269,1.3876345,2.731837 +.84017834,.26622942,.3900405 +1.0563005,1.6311697,.41693125 +.87316234,1.0102928,.98122009 +1.2483539,.56642442,.49281068 +.74065707,2.1291513,1.3143344 +.27111968,.38447059,.51744334 +1.0922728,.10286704,.77058599 +.99115159,.70159378,.16621554 +1.0477067,.31643522,.18044827 +.76012355,.07628384,.58520072 +.51965624,.40492571,.27267536 +.76370366,1.0588698,1.1774872 +1.5368793,1.4063808,.2600324 +.75406659,.6717319,.19771348 +1.9807272,1.1848426,.91682205 +.33608388,.49023847,1.1562305 +.32839208,.88563283,.14685789 +1.256007,2.4368508,.17305394 +1.8019758,.25108588,.5250421 +.89174192,.24088518,.91052213 +.36602595,1.5956342,1.1279261 +1.4893881,.57438971,1.2209971 +.92478314,.48225175,1.4638511 +.69288092,3.0224943,.55294141 +1.4057286,.421289,1.5936421 +.82903367,1.3552033,.21037205 +.64178483,.55036521,.43182207 +.62141544,.25747745,.39867425 +1.0304978,1.1300768,.90656122 +.72024141,.28037878,1.0307499 +.55601779,.34274503,.70760791 +2.4424481,.80403513,.48338876 +.89115635,1.030798,.85053543 +.41728398,1.0954909,.24682478 +1.2251779,1.113288,.56748799 +.82184091,.15706325,1.157396 +.5374941,.40346822,.14313791 +2.0534988,.2299217,1.3970283 +1.5624695,1.9254009,1.3792585 +.7511586,.37253223,.80442488 +.73161424,.54615075,1.168475 +.52944183,1.4195547,1.9138365 +1.5662599,.28443902,1.3535587 +1.1852532,.05464379,1.7938741 +.42616604,1.1077749,.32885541 +1.2106941,1.2266127,1.8572068 +1.2386766,.28959475,.79769951 +1.0711973,2.0991176,.09623216 +.53839073,.13634195,.02651907 +.63641799,1.2747478,.04168674 +.5318579,1.0655044,.10108665 +.74801829,.39227091,.21813436 +.33566843,1.5623874,.03954501 +.46771943,1.4332325,.23800662 +.98129845,.96014794,.2308718 +.80287179,.61579982,1.0452334 +.43508581,.1077242,1.4647759 +.97903165,1.4176601,.20775483 +.6128604,.72531789,.72550725 +.52530789,.30424171,.00271389 +.75488791,.6020144,1.4935575 +.62702532,.05277675,.34782598 +.76593663,.13292185,.08301404 +.59416089,1.1840238,.45312528 +1.0105914,1.549377,.00184043 +.32742118,.03463348,.1880149 +1.0139386,.15527406,1.0472592 +.90730798,.9163424,1.4815526 +.90447797,.00461721,.31270703 +.96196063,.70283504,.97626605 +.63458207,.3822731,1.6987606 +.58300473,1.7567531,1.5373377 +.62727872,.31322317,.49416274 +.55923709,.89823154,.57664866 +.81532137,.2020011,.01104724 +.47849121,.09128634,1.1267893 +1.1341365,.21067992,.76981627 +.41020677,1.5051935,1.4709953 +.48737685,1.8829692,1.0298661 +.31999253,1.7529388,.3973853 +.68453079,.76753285,.21219779 +.80710801,1.0538129,1.6679591 +.78544165,1.0938854,.09368917 +.45224997,2.2164069,1.7486372 +.18077848,.91189817,.05595621 +.67169564,.92113207,1.2023412 +.98520725,.33130386,2.1604613 +.69766963,1.7314431,.10150233 +1.1124622,.42494323,.35244739 +.89443268,1.0150412,1.0974305 +1.3882941,.64642449,.50255697 +.52645213,.1821875,.15545475 +.61197634,.33592223,.03577751 +.7716784,1.2766784,.34853895 +.51866747,.49143385,.90891866 +.49569069,1.3213378,.0894532 +1.0641835,.3567736,.1417207 +.75826192,.66515273,1.7499664 +.70091796,.17154147,.30313585 +1.5283647,.20077665,.635107 +.52789613,1.4186256,.66156567 +.98281925,.6837401,.43583712 +.9926735,.65129837,1.6154025 +1.0994445,.047546,1.4996682 +1.1144796,.130324,.19560976 +.68411563,1.4070305,.70714136 +1.0237891,1.7221857,1.5794127 +.50244613,1.6507791,.09250602 +.32975233,1.0046864,.9705241 +.9039583,.1031066,1.2089033 +.40719379,.70496792,.05906443 +.96890634,.24773596,.35647804 +.48400839,1.5350944,2.203147 +1.2311045,.61730741,.37382226 +.73721217,.6897977,.35009723 +.82417406,.56759904,1.753213 +1.7189243,1.3012819,.03599012 +2.6651315,.16551907,.57376613 +.71575125,.68639393,.05177666 +.66811623,1.3916013,.1843009 +.47293826,.21294683,.78839312 +.65739986,.43244152,.63211541 +1.1806673,1.2436317,.75926768 +.8394337,.00219105,.13041585 +.44101397,1.2893551,.11901153 +1.1395034,.17042156,.29942899 +.78670648,.81279628,2.2115773 +.94959648,.66889409,.19170654 +.47056537,.64887605,.75902052 +.79267114,.86989957,1.3511883 +.92199511,.33464083,.52010273 +.95691735,.29625903,.30801739 +1.4508668,.31812846,.75486149 +.47105385,.0280425,.17395409 +.47888699,.78706892,1.1239819 +.80788701,.57781307,.8255841 +.53387875,.34461993,1.948842 +.55100306,1.2804131,.17332555 +.80158525,.04341062,.39988519 +.97613123,.68114109,1.0006099 +.59965769,1.5090765,1.1264402 +.50089461,1.0152305,.29891839 +1.183272,.40441705,.52331341 +.45736049,1.7801833,.67761812 +2.5695526,.26508216,.91234454 +.52189689,2.7835561,.2728737 +1.3625661,.2218102,1.3089509 +.47253543,1.4052875,.95410024 +.54825824,1.5619184,.41394984 +.69199971,1.4278816,.3065205 +.53136166,1.4006261,.04524163 +2.0465688,.64078669,.25854895 +.65840481,.17049479,2.280478 +2.2809193,1.3952679,.32397513 +1.8241214,.32233406,.51588099 +.83985822,.75360695,1.4134095 +.5351459,.30002295,1.7365104 +.60515031,.93695165,.64850823 +.64017854,.40177497,3.1586543 +.34014612,1.9017757,1.2117797 +.20106154,.84991441,.62629069 +.45474903,1.9158164,.53590368 +.89021007,.56983824,.34348732 +.43373219,.32872952,.35279227 +.83323305,.43375545,.35366017 +.40089192,1.0953187,.2358882 +.51461269,1.0311896,1.5672946 +.42845534,1.3244478,.01557732 +.77158908,1.6720455,.99614237 +1.1658466,2.3349393,1.0038348 +1.0869679,.11716319,.01427818 +1.2322216,1.4813042,.14374248 +.79064018,.41128628,.82311879 +.73061031,1.0135823,.74681392 +1.2957948,.76264213,.18536348 +1.3167075,.02094051,1.0854865 +.994708,1.5655978,.50123578 +.29684003,.81297024,.59732822 +.63936943,.07054595,1.0502569 +.38586374,.11333591,.5601748 +.82919466,1.2211026,.96648246 +1.2326709,2.3605554,.3371837 +1.0335382,1.0005524,1.1616234 +1.2811792,.6996358,.09616194 +1.01174,.32972551,.90283127 +.44316188,2.0163788,.08987282 +.29261059,1.3987221,.20244535 +.39919285,.06228964,.31003416 +1.1443809,.19334748,.94451644 +.52139557,.37570353,.12560618 +1.2089288,.00426751,1.7476465 +.79945251,.6445464,.30515563 +.61108474,1.2145883,2.0358478 +.93169899,.28064006,.73819996 +.75672906,.91110917,1.1200009 +.64554348,.8995736,.61450409 +.53975329,.08621706,.36329479 +1.1073035,.07949913,.10988114 +.93560969,.92991244,1.5375865 +.73882093,1.2439275,1.7294121 +1.2709222,.38307069,1.2302966 +1.3427034,.55254479,1.5932379 +1.2835449,2.0985246,.11640822 +.93915087,.58654452,.78091104 +3.2085658,.05828703,1.9281243 +.65892548,2.0698771,1.1895606 +1.0371564,.27465234,1.6977414 +1.0849947,1.3696521,.36318347 +1.2545175,1.202819,1.0050871 +1.107133,.03949311,.72290685 +.62782935,2.5742227,.65771734 +2.0809338,.63233991,.44657413 +1.4792707,1.6678055,.531415 +.89966199,.01220062,.25124548 +.77441595,.90993716,.13209122 +.59178743,.58655921,.40688802 +.50058149,.25073936,1.0305735 +.65284997,.29384907,1.0176309 +1.2295839,1.204687,.44858773 +.75114627,.24682649,.5680501 +1.1443697,.75221974,1.268585 +.77386747,.52085884,.00685676 +1.0180213,.05857326,.31785825 +2.2687322,.29487174,.04678768 +.92369588,.20226014,.47807589 +.75627355,1.1691388,.3854892 +.50271217,1.1801387,.19836274 +1.2283144,.86967772,.37596519 +1.4931868,.42794592,.68933663 +1.0602479,.52345432,1.7103749 +.76323801,.62674874,.13108576 +.42977814,.40756489,.15248575 +.5384932,.96085727,.64385298 +1.0565791,1.5073522,.45445902 +.71889626,.05583179,.42199197 +1.2149837,.87278689,1.9355586 +.49318099,1.8624291,.65468465 +1.7873694,.048871,.96531717 +1.0590873,.39857644,1.5914567 +.74704454,.36706486,.55284149 +.2089998,.57540571,.0219594 +.44073021,.67067058,.20531954 +.64887211,1.2937468,.07379702 +.63412752,.34653522,.38388732 +.94786919,.20023937,.923707 +.92717832,.72541696,.76780796 +1.4475744,.179002,1.7693654 +.94510985,.74780226,.76230028 +.83536813,.68403548,2.3309742 +.55131583,.53414781,.26045137 +3.0584256,1.3336952,.81923019 +.48316621,1.5309505,.29657153 +.67696285,1.8010772,.15552387 +1.2103594,.36424114,1.0747959 +.90468685,.13532591,.84927799 +1.0957487,1.177756,2.1468152 +.70638589,.37272191,.59660841 +.65138461,1.1335796,1.1375748 +.80736678,.13838458,1.4450399 +.36390405,.81718489,.43524199 +.75425401,1.7243328,1.1467056 +1.4799509,.96944148,.74933246 +.57648793,2.4263378,.21593325 +1.0037374,.91105878,.52330591 +.63561345,2.3280425,1.0386155 +.94368211,1.2354352,.7121724 +.55316001,1.1973594,2.4451972 +1.2136054,.98936533,.66206006 +.83075716,1.3221559,2.2559556 +.70513758,1.0730214,.45255972 +.26302014,.67567068,.99993344 +1.128568,.49618764,.60883896 +.54978972,.90504106,.85188611 +.84396276,.51028619,1.2239061 +1.4075259,1.8648591,.18414342 +.46336802,.6446798,.63818814 +.74814894,1.6163098,.33377886 +1.6591547,.01480019,.90703606 +.43196386,1.0372909,1.2755392 +.45025436,1.851044,.23101628 +1.4620246,.85443598,.57754508 +.99999339,1.2847083,.54203282 +1.1823705,2.0546026,.1825292 +.27746544,.49900243,1.8153343 +.4197347,.67548809,1.0533227 +2.0313904,.75395057,.43876873 +.92206085,.92725768,1.4446376 +1.0569454,.11213359,.12587149 +.73757961,.70017773,.64605965 +.55328293,.01390492,.51396202 +.7280525,1.1739082,.11222995 +.61549838,.40087916,.74392772 +.40590657,1.4860542,1.1354177 +.30993817,.60430657,.59314749 +1.7315922,1.1975053,.5622462 +1.1765102,.34842094,.81511774 +.70424032,1.8843376,.283724 +.50202113,1.2391908,1.0372328 +1.0940387,.45882381,1.2299576 +2.5187971,.13188629,1.7176848 +.59019739,1.6365982,.30580547 +.70749578,.54740821,.09843383 +.79688198,2.5301179,.73506062 +.71813788,1.177454,.99670199 +.98700689,.40601559,1.3154899 +3.5794319,1.6131874,.87394056 +1.0376669,.4995235,.15031897 +.33749413,1.56862,.21654613 +1.7023758,1.1615486,.75684479 +.58476525,.83853461,1.133402 +.31331609,.90271949,.12795985 +.36424741,1.3930718,.78367372 +.85809992,.02241004,1.3040134 +.62586025,.29044379,.82865983 +.39173244,1.4998296,1.9949659 +1.1585862,.37703039,.63287809 +1.2044326,1.6285313,.11279758 +.28054367,1.512407,.32569749 +.78828705,1.2431555,.333955 +.66472394,.26799306,1.0169444 +.71704451,1.0512327,.42976852 +.73044399,1.4117022,.39740374 +.38994016,.90427033,1.4729166 +1.5212364,.85508641,.140754 +.86247829,.46445581,.23455967 +.97680736,.30213602,.04893712 +.57164995,.58487646,1.3835422 +.98478303,1.7652552,.10914768 +.66208299,.55900891,.86867955 +.96732715,.36527129,3.0586523 +1.2093875,.5399171,.99842902 +.63375682,.57585048,.77749463 +2.1146474,.81207675,.68158595 +.54040691,2.2359744,1.0730858 +.45037368,1.5500356,.33533797 +.86604952,.20040551,.0535479 +.89355988,.14628694,.07358125 +.54444992,.67029255,.74485083 +.76074774,.56657231,.12828203 +.81922217,1.0708833,.78047076 +2.732898,.4897662,.98629911 +1.065728,.56053564,.83977696 +1.262135,1.19074,.71981806 +.64825149,1.4959703,1.1879139 +1.3948123,.0676109,1.3234693 +1.4348962,1.2513968,.63345617 +.58247501,.13848711,1.4536634 +.9951684,.48624375,.5845425 +.77619923,1.2118714,1.1007843 +1.0987695,1.8292272,.73679363 +.63283513,1.1167912,.29780151 +.78203268,.27941944,.11499318 +2.0972856,1.1880969,2.2339923 +.31905595,1.2112431,.51438709 +.64197845,.56236127,.00980837 +.7655989,1.7956169,.81835923 +.69775063,.21693118,.03164209 +.98675143,.05593448,.31776368 +.90837919,.00017954,.61913259 +1.3331679,.91874401,1.0818383 +.74005282,.84039384,.17422497 +1.6761805,.35396057,1.0344639 +2.016623,.69575695,.48904923 +1.4691185,.86055647,.85660087 +.55457794,.11221198,.77737084 +.50235406,1.3771572,1.2388921 +.39490834,1.4489111,.22612615 +1.3938744,.70637863,.75916036 +.49376282,.24536052,.28390463 +.56576664,.75161813,.19427285 +.5375568,.97869969,2.5723379 +.79662574,.14023036,.74331774 +.39545621,.42671655,.45310897 +.5547333,.33620598,.23703926 +.87559397,.35038429,.5724902 +1.0677031,.13293685,.96589322 +1.8506763,.08314762,.13633752 +.33834681,1.5245195,.58835058 +1.6017979,1.0609566,1.120835 +.93755295,.64358462,1.0151066 +1.1979424,1.1088964,1.0537797 +.43957763,1.6206659,.3569324 +.47873128,.27288342,.58749599 +.8773477,.91440497,.06991581 +.52382951,1.1994776,.33340011 +1.1721012,.79448555,.05481611 +.84076034,.16306381,.92257676 +.44594119,.67860266,.31415485 +.41165957,.20481607,.38780453 +1.0477314,1.0409692,1.3851006 +.74303897,2.5638949,1.1921067 +.51388245,1.3328893,1.2582045 +1.3917875,.25622443,.59932095 +.93819949,.39514519,.66141266 +.96781051,.17499006,.24299821 +.47763912,.56064133,.19449206 +1.8342957,.7012428,.72913859 +.78357854,.57452936,.14407648 +1.0970243,.54358029,2.101638 +.20166411,2.257732,.38825518 +2.3592521,.49562394,.33017264 +.4839253,1.5578739,.85379554 +1.3873118,.43114215,1.0317169 +1.2200142,.74420322,1.1113325 +1.0067729,.01582437,1.2319762 +.73652631,.22136686,.61982876 +.491952,.90495046,.52502306 +.85353915,.92850107,.7520204 +.66270654,1.3327953,1.2957251 +1.4751127,.15114891,.87346469 +.7033495,.87361411,1.3039398 +1.0716326,.19334435,1.0947137 +1.3861921,1.4201254,.81357268 +2.0030622,.34876495,.973482 +.80776851,1.2053112,.01706097 +1.2610268,1.0149313,1.2526348 +1.9739136,.10072938,.22012097 +1.3106899,.60398764,.61547517 +2.2957817,.66545746,2.18647 +.93009454,1.2044605,1.4577861 +1.9954107,.36198164,.90989367 +1.6148702,.1617042,1.2700683 +1.3102228,2.0050669,1.1666854 +.87185486,1.9963774,.14793364 +.55231326,.59119971,1.0144057 +.6490876,.92324661,1.652502 +.7882461,.42507749,.13711647 +.95827431,.58545055,.55611846 +1.1945136,.77620884,.74144607 +.7557536,.07248821,.02364554 +.47480301,1.1736746,1.1683938 +.75311793,1.3713023,.62831815 +.34467194,.60430848,.38776752 +2.0139201,1.0725255,.14841464 +.69699318,.5581268,.42273019 +1.5236857,.09738544,.03582035 +.46394966,.29499147,.29069173 +.8655781,.25039297,1.0027036 +.55290071,1.2253228,.11555189 +.86084686,.2157452,.29650555 +.83461789,.4093832,2.1095895 +.59572693,.53284332,.63539441 +.63772974,.812413,.34042836 +1.0126909,.46255156,1.9887341 +1.4245471,.13339872,1.1728561 +.43175772,.86966033,.87212632 +.9371769,1.0440688,1.5550758 +1.2621402,.10155689,.96389053 +.42223436,1.7760971,1.2710322 +.88991203,.47740799,1.1025974 +.28766287,1.2879927,.22777381 +1.7202667,1.1433678,1.1514136 +.93964001,.16272637,1.1199783 +1.0943611,.0817256,1.949118 +1.1101583,.49265169,1.3011307 +.94083881,.01923797,.41086558 +.60999787,.5554497,1.224066 +.85526352,.71952179,.89719476 +.68132573,1.1461072,.32046377 +1.8515203,.30026043,1.377075 +1.0292356,1.0618739,1.1922516 +2.8973411,.16150016,1.260479 +.77387626,.7524388,.71210104 +.63686771,.67501185,1.0957515 +.58908921,.98429114,.26675828 +2.1584934,1.1187651,1.0012613 +2.254375,.23961766,1.1988327 +.65533727,1.2727589,.49629092 +1.1111117,.84362797,.00310336 +1.2021322,.05108114,.6822877 +1.4902275,.90083375,.45202595 +.99811993,.17532279,.72474461 +1.4155231,.81262799,.20145424 +.59355121,1.7240344,.7126988 +1.0990048,.89662108,1.9530487 +.62249168,1.445815,1.1111897 +1.417191,1.4025207,.89505032 +2.5931796,.40697768,.59609898 +.78487698,.16379306,1.1504563 +1.1580828,1.0393572,1.2207037 +1.9971563,.7227198,1.7010998 +.4139834,1.3959854,.42278764 +1.4931747,.33172916,.00471325 +1.5102183,.24167572,1.7472375 +1.3141477,.07915006,.28054127 +.6866358,1.3187393,.51065932 +.41645629,1.4258502,.52219956 +1.2153688,.32052256,1.8031878 +.86692532,1.4800399,.14772354 +.61217733,.52883305,1.2474203 +.71676763,.79337099,.91043082 +1.3238895,.06006407,.52553453 +1.3116201,.03415325,.69331196 +1.3674432,1.1250287,.14566099 +.48684813,.71316867,.32621134 +3.2328313,.92468915,2.3623191 +1.2577455,.60178333,.75591483 +.53671608,.50672092,.74081816 +1.4436496,.42502793,.610077 +.749007,1.130614,2.1002236 +.82331957,.38288414,1.161361 +1.2494135,.38054119,.47416938 +.66380139,2.2567656,1.4367331 +.82906611,.98917684,.78555482 +1.1869051,.56466077,.26928498 +.56692495,.16072367,.12768461 +.9319639,.0103254,1.6337404 +.52597951,1.0283811,1.1450954 +.53507183,2.5304439,.82317323 +.71313378,1.078339,.838869 +1.0165036,.66122257,1.5340085 +.52929657,.38274242,.86386558 +1.2445794,.85971989,1.3248089 +1.6892224,.73076492,.14992718 +1.6109138,.61548429,1.7821721 +.34508707,.86845837,.99347809 +1.4698531,.81541149,1.5953844 +1.1642522,.85707505,1.3196396 +.64541689,2.3636653,.37452854 +1.1650899,.15003386,1.938528 +1.0204919,.57638858,.53254361 +.56170953,.61472358,1.5724329 +.62404486,1.2534993,.50981481 +1.5018537,.19630614,.22649833 +.30157531,1.7123861,1.1229534 +1.4832511,.22736116,.2199802 +1.0502745,1.9932018,1.2016708 +.7234119,.33955713,.26105969 +.85693611,.36606641,.87877643 +1.6730351,1.4421554,.46548765 +1.918263,.14604857,.39080218 +1.1951945,.29329989,1.6004728 +1.4236448,1.8628743,.72211533 +.83687355,1.2767619,.23340903 +1.3828541,.44554829,.06135653 +.43100705,1.8329244,1.869748 +1.6351823,1.0088464,.2029064 +.48848946,1.0643193,.59626293 +1.3762497,1.9704186,.22997733 +1.0484252,1.9450594,.63673576 +1.141831,.363323,1.6343699 +.58851161,.28378087,.03270094 +.52937072,1.7508344,.60600206 +.74520089,2.1632241,1.0830367 +1.0992081,.62839392,.61290812 +.59366142,.0329857,.48846298 +.8271914,.80153793,.33074343 +.56483439,.24048601,.10732828 +.87247979,.44091345,.15291939 +1.9080878,.55507418,.33040489 +.54576899,.66467437,.30898559 +.59903131,.70192326,.27412554 +.36236402,.87011511,.39124192 +1.2408096,.16345101,.67914673 +.42743818,1.1976732,.65211704 +.75071415,1.0359924,.1957959 +.43604071,1.4747773,.37222019 +1.5003569,1.1445993,.81980914 +1.5820384,1.2363958,.33407734 +.67897159,.01913425,.02428253 +.98349994,.06033667,.52773527 +.55950382,.9074105,.40843642 +.7679609,.56095641,.2478685 +2.0076569,.21800936,1.0258316 +.60701243,.84254819,.36236269 +.73392911,1.5477993,.66635154 +.92036308,1.8698718,.57386183 +.35496888,1.1638682,.33705943 +.68360534,.477099,.18969526 +.68826039,1.1384933,.42598764 +2.2618499,.53346922,1.5113704 +1.2262727,.22611684,1.3441707 +2.0288446,.04827103,1.4610763 +1.0981161,.69284936,1.2918662 +1.292102,.69434987,.75558303 +.88693102,.2393873,.93890839 +2.0246266,.78932386,1.4011172 +1.7002696,.30657686,1.638007 +.58645475,.12190955,.27998574 +1.4824487,.99565915,.22457152 +.70994516,.9625062,.5428062 +.90485191,1.2435517,.28281593 +1.1249835,.36150072,.69526404 +1.2567838,1.4527907,.2737801 +1.8504103,.34767006,.06852605 +.99130219,.16789583,.58062599 +3.7477877,.11657433,1.4795567 +.48730366,.6028223,.3053534 +.51537663,1.0834535,.92619725 +1.646241,.97347654,1.5087793 +.47232387,2.1086549,.03860974 +.33304061,.64520242,.18085327 +.6495146,.47383954,.82501527 +.68382796,.31976528,.04958456 +.45570351,.04355368,.05028091 +1.0125462,.16065158,.15852179 +.86508671,1.0743968,1.3848102 +.78883531,1.473956,.76209409 +.45735883,1.3451029,.46587915 +1.5475999,.40714213,1.3696868 +.81477323,1.707921,1.1808763 +1.1404324,.39999692,2.143845 +2.0239782,.53833281,.60442237 +.51640084,.60380434,.37497526 +.60632754,1.1612158,2.074504 +.71410181,.12808926,.88889866 +.57724332,.14548853,1.2460715 +1.096687,1.242872,.77012534 +.32066033,2.07217,1.0618322 +.84705583,.49900179,.04281564 +2.5696747,.75713199,.66334974 +2.1000864,.81915319,2.7750897 +.7441809,.75766707,1.1051233 +3.1766548,.09041678,.66865959 +.60715652,1.2554411,1.2801468 +1.4852611,1.3024582,.6420957 +.59217806,.1814684,.98682306 +1.1529288,.19535266,1.5337402 +.65195701,.08529821,1.498522 +1.1015891,1.2627556,.39915656 +.80674882,.24473732,.06545664 +.50544826,.76962429,.59542601 +1.1973934,.80498952,1.1123788 +.63476014,.13774475,1.0118022 +.92995472,1.038261,.24008405 +2.8493197,.32115421,.01590974 +.66858665,.33459077,.56312515 +.54451462,1.9123481,1.5388389 +1.2880136,.38961463,2.35802 +1.2443322,.88188557,.11450672 +.7786206,.57090447,.8955719 +.74126385,2.6833067,.56016579 +1.0984424,1.3683227,.76330823 +.50880223,.26266031,1.0636064 +1.5805563,1.5355602,.32422496 +1.6086707,.61464477,.06191674 +.57399679,.4331724,.3688457 +1.052197,.29373676,.80854916 +.98164282,.18492306,.17188773 +.74814955,.48830615,1.7558538 +1.0118932,.55395715,.32727172 +.93436676,.55746278,.98165315 +1.4414049,2.1245298,.74391143 +1.2335732,.04204307,.69385556 +.64883128,2.0181419,1.8726249 +.50855407,1.1962693,1.0017516 +1.1491336,.72669138,.33953615 +.71258075,.8644099,1.3865966 +.39466795,2.1042166,.07244525 +.71391022,.79304028,.64179482 +.9968469,.91628565,.80284329 +.453098,.3542301,.43685524 +.92826748,1.3817668,.6751587 +.45496462,.07398393,.31311247 +.64435948,2.9327965,1.1967768 +.68493383,.33772234,.81005908 +.44664205,.86039892,2.2609597 +1.364882,.80647417,.60116724 +.87402317,1.7867581,.0089775 +.68417567,.88997098,.28796068 +.41366134,.24580971,.07686438 +.4887671,.94337035,.66070668 +1.2282401,.65245504,1.2334848 +.55879188,.31427707,.29715419 +.55347088,.0743199,.51538337 +1.6555717,.20148894,.35885623 +.93543689,.19909878,.94962362 +1.4641518,.09771677,.61659759 +1.4027857,.72994769,.40775201 +1.4391623,.62252183,.63697657 +.43448791,.0733646,.27010757 +1.2770261,.07218323,1.3484195 +.50857188,.99353368,.27034656 +1.6408552,.855818,.16681367 +.3530232,.39036362,.06626969 +1.288962,.52859664,.24345416 +.48797699,1.2396701,.60011768 +1.9151617,1.7368474,.22432471 +1.2750907,.16052729,.45629102 +.89801556,1.721638,.8316167 +1.2564012,.4817716,1.1141407 +1.0905204,1.200235,.41010879 +.91214456,.06919941,.29280008 +1.1415747,.11020198,1.0518177 +.90188131,1.1101246,.57467921 +.98262493,.64434435,.11069846 +.65979629,.43663062,.46573561 +.92504913,.58052717,.98637278 +1.0015203,1.3707084,1.0607115 +1.020854,.31006627,.36709691 +.42754834,.86788298,.91406419 +2.875503,.01139133,1.6208046 +.50847803,.53625513,.10009075 +.66711892,.88123655,1.0003243 +.59402145,1.7804512,1.446642 +.78249432,.96876674,1.6211954 +1.241933,.2793054,.88416185 +1.2094019,2.1236411,1.2449118 +1.0994702,.12341277,.8556591 +.53952967,.9585823,.11292093 +.53167155,.96043173,.34622017 +1.0972262,.17805619,.65496415 +.95656836,.22816763,2.237955 +.69261593,1.1828487,.45533429 +.5765456,1.3401674,.49383932 +.42154531,.73081222,.66649479 +3.0376189,.47392188,1.8138149 +.86175098,1.534417,.43717916 +.60185637,1.4172422,1.3961395 +1.2638911,.46762125,.68356128 +.56723173,.37241596,.06539619 +.79623521,1.0776508,.91935164 +1.0732428,1.2158464,.57118786 +.56894064,.24274707,.86807522 +1.1405007,.72635467,.2428626 +.69687703,1.363622,.92317302 +.81524488,.60027809,.61268364 +.40103936,.51683715,.51618286 +1.0816114,.77203896,.35083906 +.99417357,.23188296,.70717619 +.23735419,.67069097,.77968224 +1.5022321,.80200846,.27114098 +1.3502218,1.0800236,.24379254 +1.2398453,1.4305028,.34164472 +.55762785,2.114325,.03513698 +1.0670967,.93293269,.08566257 +1.0861186,.36280768,.90831712 +1.262089,.08096731,.79965771 +.31353126,1.8356873,.47146736 +1.231892,.5024497,.45193258 +.23185312,1.456825,.52686093 +.57881293,1.0891221,.16652687 +1.5002537,.00559151,.84901114 +.83219464,.5589621,1.3913522 +.42324434,.63273949,.21440376 +1.1882533,.56691661,.1957847 +.95603514,.26165872,.73402502 +1.6914357,.10974,1.4848659 +.50100495,.03027833,.79415972 +.5281053,.05275753,1.1946517 +.49369465,.64516729,.1199573 +1.894435,.14389972,.3127924 +.37651744,1.2791626,.58696881 +.47645386,1.8291817,1.5033759 +.75743255,.05347698,.55452774 +1.0899644,1.1609927,.08860454 +.41837676,1.217346,.73415538 +.33200063,.25026816,.11505617 +.30941934,.27374825,.85654261 +2.44576,.06572853,.38679324 +.91475365,.21915588,.71760913 +.81547115,.77749834,2.360242 +.84702479,.13460489,1.7201158 +.40858753,.6653232,.03546438 +1.336157,.48315606,.77779684 +1.466264,.4992101,2.3583343 +.46683746,2.0908074,.43737361 +.63709978,2.3126232,.487492 +.9063555,.9739524,1.0133394 +1.2562606,.38945052,.60608705 +1.7407828,1.9647194,.15007546 +.83631523,.03176631,1.0273323 +.48438094,1.4630568,.42142212 +1.2944405,.76959444,.36517296 +1.1277419,.54135545,.13751834 +1.2048824,.59755415,.48338631 +.62473978,1.2739486,1.2465462 +.32042824,.23993985,.41564568 +.57230682,.4620507,.26003884 +1.2398805,.07176949,1.2238534 +.58055573,1.1605613,.79381028 +.93880067,.8212894,.86255755 +1.3199251,.56296163,.30762105 +1.1327112,.00664141,.73693457 +.88228959,1.5807954,1.1696808 +.43444233,1.7594357,.26822465 +.6459805,.74214347,1.7020141 +.71645142,1.162038,.41195318 +.80172976,.94726727,2.533639 +.52908898,.15892341,.54067616 +2.2535892,2.1410284,1.1940739 +1.0779554,1.4552458,.90154245 +1.5513235,.21315722,.53538257 +1.2860382,.12681861,1.1301205 +1.3783192,.76051678,.64403278 +.85670943,.89258515,.23365574 +.96691327,.18925283,.80610013 +.87945527,.4312248,3.2291841 +.72408333,1.5614063,2.1362901 +2.0070366,.45869725,.34103316 +.76139365,.66125165,1.5525822 +1.1347922,.54681658,1.345199 +1.2953771,.74356309,.37072028 +2.1639158,.4644686,1.6325162 +.31935099,.69215659,.25939373 +1.1972967,1.290766,.35768656 +.52044148,.28415576,.56090742 +.28062451,1.6755958,.70997539 +1.4856611,1.2600394,1.7883156 +.45519812,.62957547,1.38425 +.47233624,.40475681,.4958209 +.60875134,1.1182139,.41854604 +.70163524,.42026612,.54212117 +.5767758,.10019764,1.3076475 +1.0358151,1.2348366,.60761788 +.70307027,.17654081,.72615161 +1.0060792,.02814562,1.3061058 +.71517572,.85652356,.54380978 +.53958334,1.4414136,1.1004971 +.5192907,1.972156,1.627982 +2.0947258,.30672389,.19095601 +.92721812,.96733535,.49127481 +1.0022068,.99275458,1.4302664 +1.0135131,.15914536,1.2719941 +.96926055,.49233087,.6394799 +1.4681383,.38911182,.33159897 +1.0662562,.11226593,1.295441 +.96171127,.11771933,1.544777 +.54594902,.63670247,.23712332 +.41356534,1.06222,.52937274 +.23049058,1.5926448,.13182125 +.87304064,1.1368286,.69591624 +1.1384159,1.3872401,.57136873 +.65702925,.65534067,.10358615 +.67874191,1.7349624,.03860759 +.58516358,.28989232,.80131363 +.73999936,2.3346479,.10394861 +.69238764,1.6715079,1.3921507 +.77996363,1.3068495,.25961295 +.96690134,.76687189,1.0660454 +.89912364,.01659208,1.2189282 +.9668742,.29834061,.52256431 +.83536684,1.4434689,1.2318399 +1.6878511,.09846218,1.4051768 +1.0911597,.07601739,1.07573 +1.9530961,.09799845,1.5827806 +.78906658,.96164198,.3680261 +.61685232,.56981037,.77351899 +.76293443,1.5322845,1.250211 +2.5873424,.24966514,.9860645 +.9000805,.16080312,.07947537 +1.0324008,.44058081,.82040574 +.27931452,1.1577946,1.2986259 +1.534172,1.4147912,.45422153 +1.4257267,.12371393,.63169063 +.71490303,1.4077477,.80097493 +.812652,1.184716,.02080012 +1.1383337,1.4265211,1.5044706 +1.1186807,.64027615,.83688197 +1.3397436,.56468288,.67090427 +1.4080878,1.3856492,.18429605 +.78498425,1.650888,.15879347 +.52711664,1.7571027,.13953402 +1.1677583,.95034541,.2982378 +.56271249,.51454646,.351981 +1.8595074,.15171626,.4857161 +.43870553,1.1460664,.95865783 +.81676477,.84786052,.79263668 +1.5586041,1.1109073,.35848252 +.64184343,1.5788772,1.0184613 +.61453944,.62450333,.44354066 +1.6701198,1.7777131,.84530182 +1.5176829,1.4325239,1.7428628 +.94012124,.56297282,1.2705963 +.65058597,.26232243,.48409496 +1.7914216,.8484307,.51784311 +.7148464,.63956884,2.0832215 +2.0273863,.7483238,.87049281 +1.0454685,.22418577,1.4274535 +1.0853784,1.8472413,.91663387 +1.1373421,1.6138822,2.7626485 +.70268774,2.3218623,.6206845 +1.4638354,.38498652,.16250991 +1.3840683,1.0777221,1.9042016 +.74801286,1.1345882,.72175623 +1.4114517,.89940929,.67063535 +.36229844,.10034746,.55591852 +.47919559,.25943026,1.1627019 +1.0795177,.09586067,.14750659 +.33442453,.71724511,.12527435 +1.5937037,.1575727,1.0746279 +1.5679463,.07815147,.87482273 +.66779756,1.5797549,1.322209 +1.3833304,.57945378,.78761983 +.8842052,1.4447221,.8820593 +.51534166,.21199516,.33655256 +.70952028,1.1346001,1.2434666 +2.1079305,.22132282,3.4943822 +.50317527,1.0274952,.60431304 +.61037805,1.0390077,.44361424 +1.3853104,.31856208,1.8059237 +.43685152,.7860609,.3041565 +.52497876,1.5137596,.22619682 +.66471062,.64817452,2.0666915 +.87085734,.02574293,1.1388561 +.27490386,1.4997898,.5281436 +.6265126,.98439014,.07613651 +.54059876,1.2158871,.49481956 +.93547785,1.2730883,1.5981827 +.52505724,1.0628474,.85068507 +.90635476,1.4233988,.88057221 +1.5471187,.71619826,2.1448931 +1.4060128,.61842516,2.0574099 +.53948604,1.9555385,.72176103 +1.3414484,1.6142588,.78344217 +.55302179,.41499001,.22202136 +.9631273,.71159569,1.1322477 +.74264419,.71170298,1.1947662 +.46573197,1.2433374,1.0828093 +.49889556,.07309822,.12808295 +.5083689,.91754503,1.4322816 +1.2526669,.02988143,1.4876507 +1.5312513,.18596053,.37154981 +3.991863,.44112696,1.2721842 +.71150802,.39363396,.50326346 +1.3873793,.50480027,.23234094 +1.4434274,.5631677,1.2089595 +.76787025,.67557374,.62927934 +.4557173,1.3254478,.79903985 +.75976052,1.2199489,1.217904 +.87313594,1.2840765,.14017724 +.58103686,1.0632762,.64048378 +.52426083,.03465077,.05857596 +.61060105,1.4651899,.82272706 +.6446072,1.0458616,.56284555 +1.1088088,1.7392168,.51447602 +.86352025,.39863528,.7634151 +.56482655,.10594373,1.0579243 +.78451772,.82663221,.83900828 +.94557071,1.1303931,.40370184 +.47679562,1.1638472,1.0962689 +.48254544,1.1034665,.62454415 +1.4630534,1.3452933,.82947281 +2.8533363,.74682799,2.1282434 +.58921523,1.6119856,1.2922826 +1.4587716,.03736728,1.0160198 +.34995954,.00532628,.31523174 +.89280665,1.6880361,1.49823 +.6938972,2.0199124,.5980802 +1.241906,.60291731,.2126449 +1.0954483,.73517031,2.2937877 +.81732802,.28128586,.85578375 +.83031076,.67634353,.16676756 +.79135343,.03777475,1.6399348 +.62661499,.60488698,.26279088 +1.3743714,1.0578869,.364919 +.833931,.75063529,.8923276 +1.5726636,.21429495,1.196038 +.72391665,.53313258,.25322633 +1.208745,.19760045,.68810807 +.60934744,.10480829,1.1030018 +.58522403,.73725615,1.3246344 +.89016746,.88946636,.43350342 +.48820528,.3805061,.83500141 +.4297658,1.231536,1.2204312 +1.6461633,1.538325,1.4071213 +.83947659,.06124618,.47947919 +.79767673,.56361657,.538122 +.34953817,1.8948246,.43589231 +1.2818349,.64482133,.20255996 +1.3724901,.33621123,2.0690867 +2.4003298,.53268261,.33738389 +1.4816329,.19401285,1.1859429 +.73331442,1.1681777,.35500659 +1.0459517,.20289154,.54856172 +1.0621873,.4661652,.85006601 +.47793599,1.3325274,.4706561 +.87934645,.16877253,1.2360116 +1.6038786,.81991096,.28910882 +.51997347,.21847633,.55884577 +1.9690392,1.092268,2.0568858 +.93440108,2.6703496,1.0266275 +.70377923,.12289433,1.1731465 +.62473004,1.0187202,.56843792 +.72470362,1.6656731,1.049772 +.88394423,.57127984,1.1791527 +.8372978,1.379918,.41153389 +.88204395,.57073581,.46724358 +.43856063,1.5119856,.24138485 +.6549322,.95762571,.92328187 +.47308422,1.8918858,2.0353819 +.6749827,1.007363,1.0497488 +.90136678,1.4345008,.91173919 +.7671215,.97334048,.47734208 +2.2378604,.10840215,.98670314 +.57554118,.43886792,.67595196 +1.002646,.11217649,1.01025 +.25936666,2.9854866,1.3214613 +.98669429,.08847769,.6146437 +1.2468471,.15455297,.96974414 +.71378332,.62552453,.89217018 +.82422516,.4755169,.96783279 +.45212976,1.6167388,.44424829 +.22493069,1.1961572,.07215611 +1.257747,1.2365517,.61650518 +.77910811,.05892446,.56285606 +1.2456662,.022067,.96377862 +.77602589,.11901841,.83798569 +.80400323,1.0575896,.76836702 +2.3619938,.36193607,.95739827 +1.828248,.77379734,1.2590553 +1.1451308,.91895511,.30188878 +1.2226409,.41331188,.69811963 +.97774434,1.0963867,.64615906 +.76147487,.02785045,1.0126195 +1.0661696,.18738818,1.6507769 +1.1850685,.17219447,.18348014 +1.3051773,.12683918,.23577622 +1.0425028,.41216506,.49696956 +.59416761,.37194101,.03234388 +.83825375,.13980548,1.0157595 +2.5042124,1.2759245,1.3024828 +.30421809,.31585088,1.0925389 +1.7283728,.50831297,.96666455 +.84472421,.39778306,.3795518 +.78319825,.0830342,1.3407127 +1.7244531,.63071053,.48131843 +1.857915,.12823773,.09420429 +1.0357407,1.1936068,.52643388 +1.2930085,.94215536,.05412738 +.72332353,.44775876,.50404987 +.9373802,1.7495234,.22272624 +1.4143267,.06885187,1.4332491 +.88335149,.23728397,.48994527 +1.5229995,.43862514,2.5227123 +.70311323,1.6490637,.47463242 +.41256329,1.4864745,.79094142 +1.3356388,.83223185,.91172944 +.33751597,.53247834,.33840722 +.91702848,1.01092,1.1798591 +.36719506,.6790981,.93872949 +.16411107,1.471106,.01614905 +.86400898,.65484942,.53729751 +3.8692761,.1483774,1.2875354 +.68702793,.90851631,.36060848 +.82475069,.97229253,2.345284 +.66178315,.86156584,.18010852 +1.5967634,.77296949,.51400252 +.53847291,.8463113,1.2008568 +2.4766107,.46635484,.09817856 +.36565497,2.3576037,.99140594 +1.0436286,.02987822,.60278547 +.73103795,.13637029,.91806301 +.37191445,1.7763077,.42694942 +1.0847149,.28514119,.41533468 +1.4350686,.13071088,.1165278 +1.9520883,1.1822264,2.8691902 +.96883439,.86375921,.95740741 +1.8901199,.178274,1.3351259 +1.199521,.24819645,.07651402 +.83803661,1.3172398,1.2483295 +.68358601,.5471665,.49777173 +.63269993,1.1597731,.28070915 +.62125609,1.2631877,.29338228 +.71236952,.47694447,.04243221 +1.0580347,.71978184,.56682954 +1.1817816,.34355135,.16432732 +1.106979,2.3909734,.44972189 +.79721994,1.8416681,.47852612 +.34508559,1.7920442,2.323288 +.71572172,.40836947,.78735382 +1.1161241,.68071233,1.1666931 +1.5474756,.65580423,.1338391 +.97362186,1.2186103,2.496491 +1.4267909,.56076372,.12166072 +.89849915,.79797448,1.2576265 +.77437377,.32552722,1.0977182 +.88723787,.53865033,.88109871 +1.0978626,.27276891,1.08078 +.55064337,.49449589,.11528343 +.46867539,.0514478,.05228905 +.7718102,1.6110437,1.4360817 +.57223835,.79548197,.21394492 +.47381942,1.1545643,1.2543106 +.86010118,.58195955,.28640985 +.72847957,.98453732,1.0776584 +.70900053,.71672542,2.069007 +.57984694,1.3735443,.81129756 +1.099648,.75954867,.64702908 +.50666775,.02357712,.61229098 +.4990709,.25835247,.44941247 +.67968413,.86853854,1.1727195 +1.3012817,1.7540138,.78846376 +1.2051711,.08008708,.94406509 +.56981837,2.6743195,1.7097135 +.30699211,1.5582088,.79962891 +.50606779,2.0013878,1.2770982 +.30365369,2.0119867,1.1092574 +.6103746,.32426407,.36594751 +1.6937399,.44714176,1.7625945 +.4717961,.3637162,.54525523 +.82295108,2.5088434,1.2114163 +1.2061253,.08453426,.84097306 +.85579705,.67218438,.70763104 +.36922946,1.3392484,.31830209 +.79829047,1.0066112,1.1111487 +1.4970165,.81751354,1.4169178 +.94354833,.63524102,1.3368165 +.57972527,1.7288352,.8366352 +.80256456,.14890319,.56014495 +2.6913045,.14131887,1.5374151 +.54650627,.40207364,.96811656 +.48871171,2.21822,.42869705 +.71580403,.92019788,.93061494 +.7241809,.96970958,.21876985 +.28895708,1.2737369,1.5768624 +1.1821343,.74723713,.20133356 +1.1543441,.04100734,.21648918 +.83555117,.68427291,1.0627761 +1.5580242,.10172883,.8301032 +.5462862,1.2238103,.78314706 +.92337807,.11665962,1.4048202 +.60895694,1.8854912,1.1447044 +.77575634,.95719666,3.253515 +1.2648751,.52413658,.55520685 +.61030208,2.0799079,.99979933 +1.3519899,.03311364,.27088162 +.72281504,.13399181,1.9903205 +.48107945,.00231679,.87502908 +.6133232,.19911569,.27756964 +.55395102,.57488939,.06023633 +.51275397,.65959267,.84639174 +.60806713,.83913924,.23475728 +1.411252,.50897584,.57364786 +.82355495,.26559894,.16440157 +.90417219,.8924888,.87132943 +1.4789421,.30710395,1.3594976 +.40362932,1.4851975,.00931141 +1.0556665,.17286149,.09574647 +.79639399,.4314305,.24679582 +.72297975,1.7432973,.6366621 +1.6407127,.13214521,1.865481 +2.9736958,.38660369,2.5738052 +1.0218461,.28835531,1.1262981 +.76586796,.23745612,.66924095 +.29332538,2.1765541,1.3568972 +.38065747,.41650995,.72765987 +1.33772,.12933167,.40990835 +1.200581,1.0706377,.10080969 +.57467767,.37448329,.78344972 +1.9335454,.15913557,1.3911014 +.60744744,1.3358146,1.7234583 +.63574331,1.8474407,.24709112 +1.2019811,.46533433,.38414519 +.40948594,1.395549,.20715837 +.8828242,.92842971,1.3671507 +.35397414,1.0398731,1.2952911 +.53901237,.09404883,.09354601 +.76338702,1.3835302,.26502505 +1.5025887,.13213565,.20275981 +1.4214137,.34161868,1.322055 +.32211141,1.0279524,.07566004 +1.4174581,.42796029,.86016124 +1.5562175,.21120711,.6235261 +1.0809112,2.8399442,1.0053982 +.81571307,1.8376957,1.2673237 +.47033158,.01235731,.066119 +.71102385,.8589317,1.6055688 +.43381635,.16620366,1.2512336 +1.2373213,.19977962,.82809133 +1.0362287,.20756707,2.1110637 +.73846489,.62504956,.38328062 +.42528377,.39374858,.20429117 +.45577057,.51244582,.22451509 +.63086047,.98132499,.64555289 +.94690737,.57909859,2.0181844 +1.1986968,.22215104,1.8067702 +.62574078,.93097353,.95330643 +.87479946,.23435874,.71213601 +.47631751,1.1884331,.36599309 +.5317684,1.3417512,.47161722 +1.032148,.23436615,1.7686615 +.54001495,.59231861,.83794824 +.76585836,.58852489,.72692921 +2.3218326,.93147137,.46286153 +.81257999,1.1127,.61725208 +2.2005195,.07697098,1.9778194 +2.2123948,.68718412,.5900238 +1.8824832,.19912412,.64112098 +.58397105,1.8243165,.41045376 +.92239873,.45120117,.53844193 +1.143251,.55093212,.46855741 +.4546048,1.241644,1.7262648 +.41126702,.13981923,.37504477 +.69505715,.10889989,.19020007 +.76885013,1.5745898,.2200689 +.64150465,.58666483,1.521657 +1.5313251,.11064605,.73817619 +1.9141819,.94966692,.23221038 +.81503599,1.1181619,1.0962103 +.39701801,.84148844,.2251991 +1.3343032,.55290669,.82825634 +.79062825,.48566167,.08165331 +.83901592,.56383841,1.0038318 +.92583014,.36982208,1.5350214 +.60478349,.79866432,.22840402 +1.246987,1.1398971,2.6415363 +1.675111,.93402342,.73528956 +.69963073,.1353035,1.0218503 +1.1561243,.82937028,.49544374 +1.141644,1.5970828,.64887419 +.62675276,.87492544,.48423693 +1.3480874,.01480339,1.3109109 +1.5266233,.12508387,.58367129 +.97001965,.64655219,.29505986 +.63503625,.62210336,1.7816182 +.38004649,.61740686,.11793796 +.80325473,.10167532,.18541206 +.69655006,1.0567774,.0020899 +1.3273132,.12526114,1.6044621 +1.1396068,.4064872,1.3745153 +1.0772382,.04218752,.06790903 +1.0490038,.88508851,.20138162 +.48392416,.79703345,1.2382053 +.88368843,.33937302,1.7167114 +2.6757717,1.2491426,.06274491 +.66980076,1.0014727,.21347846 +.73182142,1.3469741,1.4407031 +1.8120535,.17479906,1.3045619 +.94401832,.12286764,.8840116 +1.6664981,.3536808,.58015187 +.67524707,.6800591,.19199291 +2.6649518,.17616225,1.9453187 +.43043872,.28385407,.19684356 +.78978975,.39550233,1.8877091 +.77735852,.21011299,.28776255 +.98713347,1.4689809,.24146622 +2.3488341,.50194693,1.2655873 +.72017138,1.2882626,2.09121 +1.2331547,.7788618,.67753857 +.9156385,1.0079632,.07835778 +.45889208,1.2875685,.36286596 +.49854342,1.7825759,.5820384 +.78121774,.50154669,.48662252 +1.2263558,.26361918,1.6329128 +.64277569,.75626059,.82784375 +.95584508,.51426443,.13760818 +.67812284,.43967828,1.6180945 +3.697284,.16316742,.32513439 +.94043924,.55024803,.58555328 +.77433888,2.1977381,.87626422 +.33575533,.68660874,1.1714152 +.93463782,.57954517,1.2329778 +.8839913,1.6887295,1.4088259 +.40921527,.36279502,1.4929206 +1.1229595,1.4986624,.76558912 +.46673697,.26765876,.45416712 +.91616027,.33864027,.19326037 +1.4034146,.46553501,.59985358 +.76880281,.00998697,1.2806981 +.89576952,.7582023,.60726983 +1.0972649,.00270175,1.2788783 +1.2500836,1.6947561,1.3171168 +1.0405417,.39607641,.03830056 +.50084021,.2744011,.20511774 +.42194322,.24414397,1.0993593 +1.3768829,.5601242,.50299922 +.43380104,.47996529,.00094829 +.80200775,.23892221,.07515895 +1.0109868,.72344494,1.0968509 +1.2307952,.87324129,.7134997 +.90221246,.06352384,.03922664 +.98488534,.60909778,.56058383 +1.1694763,.36725314,.65552214 +.29233752,.16677784,.22614767 +1.5709927,2.0082891,.47922236 +.55766928,.56153902,.61694246 +1.0200869,.10905309,.08134891 +.39989258,1.4076151,.30454091 +.78323542,.73984151,.07425088 +1.2961182,.77060526,.37387801 +.61957996,.48784115,.87791479 +.38184068,.21845065,.26947543 +1.5598244,1.0361115,1.9451475 +.64435305,1.0896978,.43934735 +1.0128108,1.826591,.26123415 +.47546951,1.3110448,.23586893 +.46859816,.06948023,.89266181 +.94905485,.01743385,2.3284186 +1.2001166,.90601275,.06402414 +2.0503951,.11233553,1.8382092 +2.6713827,1.0897656,1.9244021 +1.1891953,1.5191015,1.3389615 +1.7064524,.15869647,1.5999441 +.61318015,.6720144,1.2963997 +.9365814,.87492927,.61442248 +2.1087199,.50561453,.51640743 +.99375963,.08359825,1.5869977 +1.2448373,.82236317,1.1566015 +1.131376,.79741232,.52166839 +1.4190066,1.6766001,1.2399656 +.59827878,1.2260887,1.8142122 +1.0216096,.27102024,.65629694 +.70190593,.2111728,.74169018 +1.5426969,.83569204,2.9320817 +1.287998,.78827526,.17207239 +.96333145,.38422331,1.8627357 +1.1395696,.96470011,.48947963 +1.413978,.5800816,.93206571 +.76902981,1.2566976,1.0887762 +1.6022366,.10434421,1.529735 +.5470279,.94237292,1.3016887 +.40613385,.52536572,1.808781 +.5626446,.4689616,.32783571 +.91116329,.50808369,.77673454 +1.0612852,.3483177,.5014923 +.7401684,.8308754,.55196153 +.35303142,1.9830817,.17284355 +1.2814961,.28264814,.40946421 +1.9736456,.26077976,.40990844 +.72934401,.79877858,.20572232 +1.8243667,.4509157,.2408354 +1.5197542,1.1558309,1.3806517 +1.5662206,1.1089247,.49289279 +.69106222,.18902481,.83290767 +2.3923351,.10841329,1.56547 +.32963875,1.7508059,.06045727 +1.7754053,.16544686,1.3208957 +1.3402619,.41449136,.22890375 +2.0227332,1.290789,1.1962827 +1.2144408,.75118209,.43791028 +1.348857,.31438195,.73785499 +2.7176052,.1704897,.16603807 +.96524251,.10582197,.18315794 +1.5524201,.63968943,1.4007873 +.74969484,.42006208,1.1519813 +.40880512,.66439342,1.0246613 +.52438498,.75566697,.9219823 +1.2433942,.02148316,.49355672 +.63854288,1.0326456,.0186757 +.5470202,1.6380956,.3494303 +1.1831359,1.0191666,.19615074 +.92773337,.97608201,.30631959 +.32509406,.18129007,1.0795031 +.82030148,.40505888,.34289728 +.46740906,1.4579597,1.1174349 +.83153416,1.3247768,.87294564 +.6825184,.35826646,1.212586 +1.4115591,.2702153,.78267597 +1.1440039,1.0144311,.5585576 +.70112483,.96776571,.36673872 +1.7277149,.47006469,.71571482 +1.3688421,.81417867,.06068921 +2.6050471,.32871954,.18025264 +1.1571215,1.0417712,.56741384 +1.4731413,1.3159413,.02916136 +1.0294387,.27961584,.26896733 +.30803912,1.6050111,.96380942 +1.0318074,1.0806002,.4615893 +.91172719,1.9930449,.37831023 +.83986649,.70346412,.79288884 +1.1546596,1.3905615,.63737898 +.65599272,2.6896814,.36091894 +.64516636,1.4121682,2.7941054 +.3281577,1.1297522,.66646264 +1.187864,.34664362,.345717 +1.5300826,.14573323,.93575996 +2.3228875,1.1242056,1.1422706 +.28615666,.0273279,1.8500529 +1.6455929,.03252432,.44170351 +.89813658,.83937169,.4006193 +.74309853,.42036369,.34662973 +.9102813,1.4231938,.1365761 +1.2772442,.61650934,.06230507 +1.8382231,.40422104,.63548559 +.44576158,.20485529,.1672771 +.88064679,.0181571,.04741261 +2.2814776,.77876468,.4209352 +1.3738391,.263225,.31822997 +1.0561898,.5943918,.66648423 +1.0361986,.15781798,.68469652 +.50123714,1.8511531,.76436201 +.45099206,.65579868,.52639668 +.8373764,.87815438,2.2724981 +1.2631656,.5476739,.55900565 +.731065,.70074074,.4657169 +.58987499,2.7028508,.70602676 +.73825218,1.486511,.09440479 +1.772896,.00143713,.47656213 +.37441696,1.96404,.76949835 +1.0132885,.47766721,.72424242 +.59091174,2.2730888,.47424405 +1.3983963,.0239971,.77644509 +.74554343,1.4576334,.08284144 +1.7014476,.15606321,.30508644 +.92694078,1.0914611,2.0129578 +1.0548045,.04289757,.85111173 +.37532256,.87426901,.18980212 +.76458048,.26357262,.62215563 +1.2158368,1.0231791,.46938071 +.55413717,.54843854,.46423851 +.48048888,1.857122,1.7108755 +1.0460874,.15116433,.5580367 +.84776917,.09730698,.20671423 +1.4368599,1.2487184,.22243829 +2.667558,.62727814,2.8716414 +1.0104825,.17269076,1.0531987 +2.1023304,1.0023015,.88264303 +.64299957,.91725318,.10393804 +.6147925,.01508518,1.5375968 +.63481197,1.3717473,.78636863 +.30099764,1.4086303,1.1093039 +1.385428,1.6843038,.3070781 +1.0946001,.18357284,.8489968 +1.0755522,1.032965,1.3832392 +.60853094,.73956302,.15385147 +.72099489,.04357678,1.3128475 +.79234077,.73690382,.58515191 +.54094452,1.853969,.77534125 +.47794458,1.5491252,.08054835 +.4699013,1.0740665,.30499113 +1.1080614,1.016325,1.1928891 +.9177129,.06345584,.13067349 +.63543775,.24274674,.04753913 +.99740769,.32555756,.74797758 +2.0121432,1.0696534,.76848341 +.96541588,.29882399,.6449733 +.99839555,.19931464,.5828055 +.98928293,.4702838,.67504241 +4.2684954,.90844746,.77808105 +1.3049824,.6107222,.24161404 +.93564913,.92941623,.29254847 +.74612267,.85955168,1.1368071 +.87843829,.06363101,.24227943 +.57035721,.70706411,.50375475 +1.1522335,.111196,.51159035 +.68228803,.4342383,1.2490125 +.38473799,.41305048,.73851504 +1.9325742,2.0157954,.02739136 +1.1468985,.36789976,.24481412 +.64003721,.91023536,.53108409 +1.0346143,1.091969,1.4458056 +2.0494722,1.21443,.45222212 +.48278443,.36159585,.13069587 +1.1515167,.43228193,3.0118711 +1.1663828,.65190552,.4284695 +1.1161712,1.4036263,3.0718028 +1.1287815,1.154062,.85540299 +.27633472,1.6485749,.1212831 +.4686736,.72415183,.11090596 +.55079749,.40014515,1.0288833 +.48176857,1.7820934,2.0274145 +1.0225525,.16262483,.42427225 +.38177728,1.0815807,.42577003 +.55075249,1.1367727,.19347034 +.96202118,1.1572893,.86842305 +.46679656,.34741913,1.4057646 +.34631601,.74065669,.63505353 +1.5800749,.0131655,2.4832035 +1.6499544,.82875018,2.7134594 +1.0006091,.13897669,.76459915 +.49554225,.4966632,.46508537 +.73880113,.51393187,.29432838 +.29216022,.99566048,.93616748 +.77475882,.07481701,.62906906 +1.4839783,1.9046225,.41193211 +1.4554182,.23808598,.46952975 +.47161447,.93123809,.43553335 +1.5334173,.82811025,.11414326 +.77468258,1.1015703,.47581991 +1.5863045,1.3806902,.60997757 +.50738518,.1434046,1.2321107 +.83104639,.55942893,1.5733938 +.99125355,1.8116609,.84913691 +.24122683,1.171526,.39322911 +1.0348281,.22366086,1.2596852 +.49310923,.802429,.19937953 +.27963533,1.7430428,.04533236 +.44175147,.63515589,.79466074 +1.3560503,.13742904,.26698906 +.46788091,.90689307,.77523586 +.82254701,1.0246477,.38937709 +.94321689,.20530004,.15844515 +2.1130714,.10791008,.14545463 +.23490117,1.3966736,.51304142 +.64286627,.38121037,.72643612 +1.4194732,.86309382,.28839185 +1.7527164,.00754363,.72899662 +.65648101,1.4242285,.1681135 +.51693529,1.7104839,.22874389 +.8791587,.6276236,1.4886476 +.38700064,1.0403398,1.3365885 +.65002484,.650459,.44382854 +.55182641,.35437526,1.0336384 +.54656084,.99508956,2.0306501 +.77175453,1.5526195,.29240074 +.66579959,.21808421,.18418479 +.65540953,.94179672,.5663313 +.77333125,.34438121,.44811823 +.61802871,.72562256,.53194892 +2.5731545,.04099558,.21935577 +.83155765,.39799804,1.5750437 +1.1298426,.14194962,1.780035 +1.9481598,.31421467,1.4157529 +.41600105,1.9052732,1.0747008 +1.1441707,.43044821,.91255534 +.34527252,.79056546,.58563175 +1.1315604,.23313178,1.7586112 +.48728148,2.5296928,.25758032 +.26553242,1.2372338,.36781089 +1.8451029,1.4901516,.18167343 +1.2918955,.56752413,.06646844 +1.0700675,.18357374,.83787582 +.44287656,.94459598,.52326673 +.6412194,.69513643,1.0487613 +1.2003831,1.3639603,.54501637 +.5302554,1.5996908,1.2745652 +1.1592319,.7612414,1.7572746 +1.1758484,.70512628,.98325812 +1.1678969,.64419382,1.0937888 +.89381936,1.0729671,1.9658902 +.82678212,.67668404,2.4747796 +.66091115,.22998321,.09152326 +1.302825,.41503429,.36250302 +.62282775,.50683742,1.2321152 +1.1096683,.39039751,1.0790251 +.32025473,1.0765437,.49183263 +1.4851489,1.6754629,.64783771 +.92397996,.10593745,1.3405437 +.98034499,.57273076,2.2284692 +1.9186502,.29941755,.11345127 +2.0551503,.18329412,.62774496 +.60312576,1.6125615,.03202652 +1.3406594,.05104203,.48773196 +.71833875,1.1421192,1.0960343 +.28440993,1.1152787,1.2424555 +.91310079,.03210717,1.1209956 +.93736166,.2947042,.93895888 +.74975913,.34873728,.61376618 +.94165811,1.4913541,.24712971 +1.4482877,.49336021,.06725814 +1.6855749,.3314262,1.0108646 +.42480227,1.2422838,1.2932708 +.49165381,2.5336794,.39795157 +.80840262,1.0894668,.38068618 +1.4051628,.56199314,1.0317953 +.78936407,2.7031107,1.2470695 +.66966138,.70404241,.51756194 +.93042774,.95788463,1.4139081 +.9535936,1.1401499,.12378266 +1.1514194,1.3586764,1.7695247 +1.8769864,.82478335,1.0992546 +.57094409,2.2081061,.79723409 +.8394895,.80728615,.2533808 +.90029434,1.0356547,1.0098096 +.30470234,.16470484,1.517095 +.53988068,.98255149,.53673807 +1.0394354,.84378324,.0606004 +.32785863,.39713953,.95641676 +.99166554,1.0354098,.65419778 +.40164434,1.1737021,1.0483689 +.89458537,.09951628,1.5940365 +.70664088,.84873074,1.3228695 +1.2695231,1.2940032,.6172582 +.51395636,2.1605249,1.4049626 +.37043431,.30816807,.16632884 +.5653751,1.1034205,.29964505 +1.0915672,.09719089,.90413785 +.39113803,.43878825,.39368843 +1.5360678,.20351207,.9133419 +1.3348793,.58769682,1.2769874 +1.7493064,.77208668,1.5861919 +2.3026364,1.6732938,.33638425 +.25118756,1.6339482,.85712368 +1.5073743,1.551164,1.4145525 +.81577766,.69543506,1.993518 +1.1655886,.29011204,.10916723 +.52841626,1.5952404,1.4019849 +1.0639323,.22359381,.77419152 +.6361237,2.8762693,1.8205953 +2.0588444,1.0480512,1.4049091 +.73152768,1.0306189,.27223153 +.80165195,.83652972,.0262122 +1.1410278,.59137945,.95020251 +1.1411218,.73193661,.65131945 +.69020534,1.1416788,.93592374 +1.1948842,.25703585,.93322611 +1.1658231,.33188894,1.8492508 +.41882043,.82715248,.48957595 +1.2445536,1.1029534,.971629 +.62280558,.74687111,.46181686 +.36094185,.82453901,1.9396137 +1.6393079,1.804446,.61538996 +.70384695,2.0485617,.57134785 +.6144803,.81256456,2.457808 +.38108687,1.4562794,1.0330831 +.60597231,1.1439085,.30373808 +1.1018746,.6908924,.57748638 +1.3733733,.02493021,1.8245335 +.66148596,.01866683,.37692562 +.41274971,.89302401,1.6258181 +.37092291,.95806233,1.36641 +2.4527087,.00464381,.09103428 +.97792876,.18256436,.58686376 +1.118353,.28114101,.74063313 +.48655517,.32772494,.10710334 +.31352104,.03538909,.97385848 +.44139995,.63652144,1.1859026 +.60096399,2.0601331,.38711355 +1.1709405,.17942007,2.9800261 +1.133251,.12555498,1.2691901 +.32461001,.65279809,.81355465 +.63560458,.44214442,.35428826 +.75907132,1.2691114,.63113908 +.95896384,.63641532,1.739699 +.43913024,1.1825921,.33603564 +.47753785,1.900455,1.2591678 +.54733163,.18376773,1.1562867 +.73471075,.31320265,.555325 +.73223232,.37724272,1.0340287 +.31548525,1.1623471,1.5760565 +.94527821,1.685131,.45928301 +.72782199,.53314428,.01404078 +.85448683,.77896173,1.5908184 +2.0773232,1.806611,.41623104 +.80030849,.78637754,.38521544 +1.1027544,.11260085,2.2927932 +.814757,.80091013,.80814392 +1.1492001,.02490645,.43480028 +.49747459,.79801694,.26147738 +.42585716,1.9355206,2.2955871 +.39396166,1.1081726,.48370995 +.69781235,.39195828,1.4042258 +.81416584,1.4932452,.61480077 +1.1858873,1.2320564,.09066336 +1.0939137,.99616675,1.0710264 +.87952845,.525162,.70645006 +1.4083125,1.569246,.91733567 +.4260746,1.8907691,.71946227 +.77796841,2.2458519,1.7831719 +.42271001,.87838226,.51695771 +.47595217,.50107381,.29586085 +1.2034139,.20562017,1.5699014 +.69123108,.95071898,.21420754 +.9742353,.20756703,1.6374386 +.67743992,.74481143,.52900754 +1.1887155,.53591212,1.0117304 +1.160987,.35636254,1.190403 +1.1876868,2.5343387,.42400608 +.66349157,.54353032,.02869052 +.62773806,.25438109,1.7655725 +1.3958479,.99282856,.37092944 +1.9973294,.03674034,.83849144 +2.4779682,.00968671,1.6542284 +.54071759,.05031198,.06304299 +.78809005,1.4334403,.30146996 +.54471471,.58338468,.24030663 +.69582512,.19786658,1.1922024 +.8427548,.75195348,.42661335 +1.2525729,.55651609,1.3189395 +.66598411,.41370449,1.017655 +.57965225,2.0917003,.40510422 +.35250174,.60635644,.91702696 +.91663453,.70722644,.13524717 +.64571083,1.3331149,.6074359 +1.0791183,.8731136,1.7201865 +.57692039,.52785283,.73545584 +.49311766,.1489901,.69462955 +.49149255,1.4937363,.83861081 +.44601658,1.1461593,.28675457 +.89628248,.03196461,.07070341 +.91418586,.17085515,.5483435 +1.1686121,.0945755,.3713 +1.3400989,.25319657,.31124677 +1.0628071,2.2756982,.25674423 +.70127509,.9475047,1.2135654 +.90651134,1.1937531,1.280549 +.95616064,.71874397,.61577809 +2.513287,.33645092,.66906899 +1.6109115,.07973391,1.1802856 +.49896472,.90201716,.74059539 +1.6764691,.75579035,.71183788 +1.2648259,.30505275,.4066557 +.61085569,.72278289,.72515823 +.67420876,1.1746041,1.9221901 +.63748943,1.6299354,1.8880303 +.65414591,.21890044,.07492033 +.47999419,1.4369853,.89649857 +.54032497,.38646311,.38278687 +.72125331,.27378391,.76183264 +.34254481,.88973292,.86197231 +.87480821,.62868605,.55291873 +1.3190311,.13387257,.13643325 +.9146291,.42186625,.42140863 +1.0552824,.1769788,.8253 +2.5670345,.01384576,.60200849 +.97763971,1.090599,.88784335 +.84082286,1.0513381,.15756629 +.76102828,.09808618,.16572389 +1.7270523,.41341661,.70354103 +.70030203,1.7838191,.35025544 +.60899917,1.7333904,1.1970326 +.91021824,1.1380478,1.4892345 +.70006665,.82706497,.23133312 +.68879878,.87962785,.12540586 +1.0030459,.39888465,.75802408 +1.5605719,.651999,.57965005 +1.2077948,.6666682,1.7181779 +.6507087,.58101158,.75910026 +1.5847015,1.2197307,.1686733 +.76007501,.24906019,.78158182 +.55960028,.30125413,1.1299188 +.51202551,.88447852,.14949999 +.92447256,.48571562,.59975495 +1.3593897,.22424066,.35693399 +.5221643,.70468022,1.7935573 +2.3486925,.23739627,2.4524542 +2.1941061,.42607189,1.0554808 +.48873376,1.8554908,1.381411 +1.9601533,.55279008,.75409275 +.71348939,1.4919342,.73393177 +.83852483,.72592062,2.3363281 +1.180516,.15896773,2.6686378 +1.5959245,1.3166963,.79285574 +1.1204069,.27933002,1.0185248 +1.3706197,.39038595,1.6693513 +1.2956337,1.3667086,.60698302 +1.1509155,1.0366205,.48324581 +.64349254,.72393672,.76646247 +.79756569,.51541618,.00413691 +.94918137,2.4908863,1.1513653 +1.2315998,.17607896,.98537051 +.68351635,.41525989,.48341351 +.88840268,1.3094315,1.7296102 +.91659174,1.1932855,1.0748548 +.25086187,.49190215,.32960215 +1.4523181,1.8482998,1.4533902 +.7417003,.62107455,1.5703586 +.83794475,1.7941783,1.9470397 +.61227975,.20589805,.0291968 +.34665413,.50671912,.85070823 +.50247431,1.2385577,.10244721 +1.8468195,.57817974,1.8497215 +.78149307,1.3543982,1.2262193 +.88963372,1.4157768,.53179743 +.73370551,.02675419,1.9821871 +.47457922,.23352988,.17065922 +.68700842,1.7333675,.44664168 +.89200671,.28836828,.20254799 +.57712788,.74939143,.38891222 +.72337181,2.6669312,.54766048 +.4866047,.25916518,.03168508 +.84567157,.18610317,.05278593 +.77288618,.64599145,1.0984148 +.56214875,.20576275,1.8421855 +.91453779,.83329685,.95129343 +.52896432,.36364999,.04743623 +1.3532147,.27020433,2.0730233 +.6835113,.57324867,.88454689 +.52812078,1.7166537,.68696795 +.45582184,.49951828,1.8710274 +.87799615,.25821709,1.4145091 +.88369625,.78636772,.0612852 +1.643179,.03130279,.10717844 +.56591588,2.4149311,.26594159 +.51519818,1.1290402,.90755014 +1.1494277,.00484117,2.057756 +1.2994819,.63738906,.45036333 +1.1880579,1.6499057,1.9260272 +1.0642523,.68713617,3.820991 +.99484198,.24396638,.22937833 +1.1739004,.61584312,.245694 +2.0586076,1.3064484,1.6419463 +.52844248,1.8071351,.63805101 +2.6884068,.15869519,1.6657713 +.74020506,.31278791,.17305177 +.67033965,.65989377,.0836927 +.75298763,.37991684,.10685877 +1.3323883,.28132067,.78787251 +.60768722,.76720101,.34308443 +.60388797,1.5684108,.8587975 +1.668545,.10109098,.97004306 +.43676003,.59170816,.43587003 +1.8358855,.00681134,3.0397032 +.98662336,.70941221,1.2156197 +.60800267,.88401551,1.4071097 +.84397816,1.2076766,1.2596656 +.96064266,.8345529,.55941406 +.33948965,1.4492392,.44709409 +.96201413,.84249278,.43719408 +.96375976,.12438131,.25935115 +.79549473,1.3992999,1.169028 +1.4998704,1.2063243,.0882401 +.8604101,.3630218,.14828795 +1.2012124,1.3685949,.27422172 +.87995143,1.1145809,.27911609 +.67361348,.1410088,1.4427261 +.94837003,.36744068,.4638126 +.53041497,.3136323,.3076487 +1.5753543,1.2884997,.61472664 +.62358055,.17584715,.44558019 +.778198,1.8218977,.41728523 +.95442488,.40144624,.46080325 +.62272592,.58912782,1.5048754 +.76628286,.15726326,.87410797 +3.3575274,.05270002,2.1490174 +.29228162,2.2220545,2.5880334 +1.5987495,.74929141,.47412163 +1.7741641,1.2078298,1.7799851 +.60070114,1.0250579,.65943635 +.52006342,.47995808,1.0161313 +.47733637,.36299471,.48573145 +.71201131,.38768544,.32302159 +.63534016,.85585785,1.2142065 +.75525451,.73968926,2.0990471 +1.4125189,.7319183,1.1847958 +.35006577,1.9897073,1.0591395 +1.7735512,.77985537,1.1356025 +1.7740371,.29999888,2.4127352 +.49193524,.06687663,.18250145 +.61719551,1.0030238,.23961658 +.48920244,1.2071325,.11913559 +1.0102289,.84225276,.52616019 +1.1322936,.45085592,1.6524379 +1.5190006,.91399867,.94922152 +.42641595,.33193985,.89649251 +.75482875,.5273134,.51581749 +.70985724,.49712005,.83661812 +1.3437725,.72846614,1.2097078 +.36427159,.06914166,.13711422 +1.1982354,.3712425,.56991661 +1.8438349,.344873,.54258159 +1.3246075,.35223731,.45742268 +.92629493,.0641143,.94263029 +1.1394376,.08573734,1.3764644 +.42799282,1.4136762,.7827303 +.48954042,.99103137,.84655718 +.50614987,.13407227,.63942077 +1.194954,1.0464615,1.8143538 +.47616261,1.7736483,2.1571851 +.30700442,2.1298739,.15546494 +.72696166,.27434347,.87767075 +1.5350084,.14038254,.39297515 +1.456795,.00809387,1.7636251 +1.0054051,.58991669,.83001879 +1.0492548,.55007275,.5857449 +.52162556,.37506239,.53335038 +.45122427,.11190141,.86838699 +1.3319587,1.2059718,.62140266 +2.3940932,.56759307,1.6126875 +1.9367686,1.1216856,.99531 +.80250573,1.5144045,.24636444 +.82423257,.66854384,.93153281 +1.1526699,.94559225,1.5296823 +.88685204,.79712025,.36536725 +.46087166,.79352493,.34941154 +.48990054,.80857591,.31155211 +1.5396493,.39382204,.03125675 +.41370831,.79308173,1.3780197 +.992438,1.1386721,1.875978 +.34280175,1.8918075,.53945716 +1.1935115,.0337491,.17670191 +.74830742,.73552748,.31941561 +.66059386,.12314271,1.5479507 +.40292608,1.4259163,.83578856 +.72491451,2.0568767,1.5996037 +.62863179,.54072124,2.3784406 +.32505777,.36372403,.31877537 +.94349891,.24660648,.69632593 +1.6543227,1.1267504,.42976208 +.46149811,.35489715,.9891917 +.58851957,1.293448,.64117617 +1.3064155,.18238765,.00321686 +.90138448,1.4590424,1.1961659 +.4777755,1.1349815,1.7191518 +.79512337,.75783248,.03468261 +1.3139934,.29528575,.56688195 +.5636978,.49321043,1.0147302 +.81439482,.55811862,2.3006877 +1.5005356,1.3253113,1.7681298 +2.0549138,.26436838,.97229313 +1.5180193,.79366875,1.0234371 +1.1260188,.22692683,1.0447367 +.63096563,.58062177,1.1985539 +.67525266,.38983025,.26675001 +.95784593,1.4140834,.33776395 +1.3937772,.6091124,.5222076 +.57627153,1.7161298,.95762825 +.86300345,.19377264,.53720987 +1.0027543,.38116179,.12753994 +1.0722688,.02850552,1.0293963 +.60633853,1.5618782,1.1854483 +.71739293,1.2405596,.00721156 +.6244246,.15620934,.30794767 +.56704173,3.3090222,1.1092502 +.94481311,.08135694,.01373316 +.40548893,1.2282689,.28599779 +.550434,.3024723,1.0065651 +.99698957,.35624428,.88221211 +.8913062,.25341494,1.7333202 +.74751688,.83028466,.42732522 +.87845493,.12158808,1.5026842 +1.8694145,.64424922,1.5024074 +.53919043,1.2633175,.60696186 +1.4431728,1.7525686,.11367903 +1.3140973,.33225499,2.1578483 +.33258012,1.1346497,1.3784516 +.97406587,1.7946386,1.5079277 +.41400326,.84884083,1.1128511 +.72375703,1.8581688,1.1626356 +1.2218151,.21345918,.60856468 +1.2015434,.02503714,1.8376935 +1.0856388,.25809706,.97069041 +1.032256,1.9095888,1.6628914 +2.2337756,.44699747,1.9791753 +.73400203,1.1753744,1.3630934 +.50770308,.23684258,.44282296 +1.0795875,.22612773,.4697697 +.81362916,.66911032,.5168045 +.60069493,.70699378,.54549114 +.67247358,.84850941,.28915285 +.46547208,.9464522,1.1310393 +.50258648,.58489315,.91878704 +1.0687627,.7194567,2.1395889 +.24218562,.86866552,.62744271 +1.2723191,.58009706,1.7754099 +.47696321,1.7833789,.12063002 +.66599045,.69951131,.62838584 +.77534754,.4454217,1.2335499 +.68713896,.89895969,.7430472 +.87311823,.26106038,.31382163 +.80489444,1.4521632,1.8138496 +.32091803,1.0874173,.08440456 +.44919518,1.4181503,.80441259 +.72144006,1.0319338,.94142875 +.93077483,.81279501,.52101697 +.90349427,.73160943,1.0809174 +1.0464422,.30229002,.64887233 +2.174541,.21096003,1.7423175 +.69890221,1.4407369,.70427317 +1.5821873,.38896576,.62151451 +.92318619,.39660065,.99164339 +.83151383,.63845826,.72732532 +.57863785,.44928518,.31348702 +.73125025,.44810145,.0422412 +.6315864,.76586583,.82989243 +1.5323321,.69963089,.02459977 +.93807798,.68491575,.37898765 +1.0849491,1.0202752,1.9570041 +.46481536,1.7427331,.48606527 +1.4904177,.46273606,.98658479 +.91145304,.23179715,1.0938464 +1.5705051,.72957797,.04032056 +.72073388,.323442,1.1225388 +1.2896262,.35635744,.48033501 +.59209858,.42571037,.04626193 +1.9468453,1.0091386,1.3211468 +.65942438,.15617648,.43895863 +.7197266,.14637773,.54124454 +1.2616304,.61638064,2.3092912 +1.7194066,.07910649,.0171561 +1.1728823,.06576158,.27260283 +1.178235,.14722577,1.893873 +1.4946402,1.1196354,.26602198 +.87438761,1.0524734,.6830609 +.68250533,1.4612483,.43362929 +.36292655,1.9966891,.80340552 +.97754112,.22678188,.77891155 +.60362062,.17147792,1.0724193 +.32936889,2.6090021,.29824619 +.36650635,.58195187,.05810484 +.75862493,2.4890647,1.084385 +.31312494,.13418219,.35760294 +.7531402,1.8247386,.29183553 +.65386265,.56197259,.49631972 +1.0209483,.62130162,.88442433 +1.7041699,.20173882,1.2707809 +.72575136,.62150081,.76565343 +.89388989,.90223633,.20314891 +1.2647742,1.0897226,1.0145383 +.59751131,.8722623,2.7083138 +.61716314,.37257637,.19056781 +.59519754,1.0459134,.12575025 +.63981722,.11888664,.77523651 +.41345374,.23986086,.08691214 +.69813676,1.1712556,.03555701 +.78177976,.32193314,.55542183 +.69648512,.06832362,1.6192389 +.81148458,.39929631,.57956036 +1.0467908,.16713058,.41928245 +.45318718,1.0389468,.18069572 +.84032108,.16311076,.1725007 +1.3832104,.06698469,.00280828 +.76492736,.12525025,.31358053 +.48380921,1.442617,1.0712685 +.86849231,1.2312023,.29652772 +1.8269522,.08204003,.31479329 +1.4035466,.57595342,1.36266 +1.0171043,.68316211,1.2607516 +.57899452,.33058147,.30854229 +.35642526,.19507318,.25057413 +.91618242,.32949686,.85998496 +.76468664,.7693867,1.7691811 +.26640587,2.0272446,.02471695 +1.3566355,1.8343287,.26017656 +.52298333,2.0016412,.96382502 +.80027765,.07298509,.34975264 +.65605013,.90712399,.61370039 +.59543099,.05371511,.70051053 +.88211245,1.4050728,.53734049 +1.1828391,.25943541,.55897985 +.5952043,1.188573,.48927583 +.98908829,2.0058474,.23691671 +.49136211,1.3654443,.65359489 +.89499148,.06356465,.6223192 +.8005407,.5884852,.7263254 +1.5007864,1.0164661,.18861743 +1.8425607,.86408449,.67446779 +1.4853624,1.9916371,.60934808 +.65898705,.18673928,.35663711 +1.0321012,.87612583,1.391669 +.6936586,1.3133032,1.5380818 +.71146554,1.0401044,.15888567 +.73186718,.55532489,.20368104 +.73533569,.37358099,.41005806 +1.3549965,1.2568271,.29502828 +.91118319,1.0145647,.48953431 +.54474266,.12517183,1.5560748 +.81168541,.70807056,2.1532505 +.45803125,1.2001805,.06508532 +1.4269073,1.512059,2.0351078 +.33497963,.75293831,.79614444 +.56933346,.5201233,.57159944 +1.0272657,.99390728,.04066449 +1.439546,.96044022,.83302988 +2.3302515,.42067336,.48693694 +1.1587385,1.9582104,.70641621 +1.4762173,1.4705082,.55338626 +1.2025729,1.1639676,1.2485232 +.54076325,.85489809,.67494229 +1.6252266,1.0205334,.50929596 +1.2509275,1.0047716,1.9474395 +.36984292,.87128256,.39287949 +.94039739,.75144456,.72905874 +.38685074,.93054577,.50986579 +.87317241,.43580583,.02265537 +.7096091,1.4138902,.7705054 +.72627927,.51280071,.39773993 +.24170949,.88923323,2.4745543 +.75285388,1.0495725,1.1584143 +1.3218669,.93270937,1.0433342 +.85006625,.77579222,.59714777 +1.3160272,.33010145,1.2798555 +.83174933,.25832792,.49992366 +.49907556,1.2944199,.58335573 +2.3478062,.69544466,.45468554 +1.4777074,.34826434,1.0914386 +1.0007031,1.2520578,.55110437 +.49253568,1.5411757,.58908952 +.80997997,.96701726,.63465745 +1.0613258,1.0024787,2.1378798 +.28815223,.04347451,.83594626 +1.925715,.50596209,1.118761 +.51606925,.89523548,1.2792245 +.99696046,1.0470794,.29138534 +.44768791,1.365467,.13126814 +.65282159,.94493765,2.5607962 +.6275961,.79185208,.90060857 +1.5936973,1.1587643,1.3504793 +1.2719152,.29095273,1.3727177 +1.0399944,1.2466256,.24295412 +1.3706366,.61672684,.91859071 +1.9170133,.49854702,2.6856529 +1.0952387,.15668048,1.2308649 +.48331887,1.1545546,.34019656 +.90145925,.32118297,2.4325944 +.76534113,.51727165,.19086518 +.62378288,1.2151993,.1645496 +.60079451,1.420214,.39835077 +.96840636,.56327342,.45878013 +.84413569,.95572414,.92900891 +.70337643,.47169665,.32630521 +.47401446,.77416171,.10711903 +1.1920274,1.6270101,.85645251 +.78019572,.8553203,.9963774 +1.0615187,.61328627,.35068808 +.43304008,1.3454206,.02152946 +1.3213921,1.246889,1.5686561 +.48361906,.02109737,.08373967 +.996764,.16946663,.71111438 +.52946165,.23775675,.44872824 +.81417623,.51601968,.4091413 +.34753042,2.7580799,.04345602 +1.4599607,1.3814174,1.5028087 +.92300984,1.274834,1.0505859 +.3481651,.12732682,.3005627 +.83422352,.82425824,.24685912 +.6108001,1.4967859,2.5773395 +1.9339821,.18948945,.66331034 +.60316841,.58647182,1.6843102 +.69067965,.69755722,.82333125 +.59100321,1.1671546,.22917028 +.96929465,.09243601,.92970369 +.91654415,.34543981,.19879246 +.7484514,1.2641729,.16754047 +1.7344668,1.0753456,1.8321519 +.4121837,1.3602971,1.4610675 +.37019066,.86337307,.29000083 +.53769082,1.0074698,.12534388 +.94731916,1.0292334,2.9782591 +.83162581,1.2225065,.83767197 +1.3312695,.54163182,.41044437 +.76735665,.95863885,1.5723519 +1.6011103,1.2287313,1.3270942 +1.3052657,.03681421,.59111048 +.49197784,1.3232634,1.1437594 +.5953639,1.0475841,.67567214 +1.1737809,1.5649122,.55840628 +1.3131203,.23329632,.20478058 +.74782729,2.5926104,2.0491921 +.38216215,1.5324399,.47211606 +.40125806,.87341626,.26051452 +.39987115,.36087647,.14011668 +.5666623,.94822857,.44977501 +1.4797849,.50961553,.06406053 +.99611968,.63999166,1.428446 +1.0551408,1.3082819,.08705169 +.71227826,.5185779,.10907808 +.82261546,1.1072654,.57310855 +.99842503,.91123745,1.0799516 +.87809696,.23906039,.88172693 +.50288779,1.3617175,.3418556 +.95295269,1.562058,.78629255 +2.7234312,.29414712,.67455478 +.7370645,.93632718,.47354659 +1.0500325,1.409717,.40062195 +.66486241,.87381693,2.2794127 +2.3569356,.83426258,1.6234417 +.5076716,.89190532,.13925222 +.7572057,.39724112,1.9143931 +.56144757,1.7821917,.26955255 +1.5247189,.09292487,.46469418 +.29346818,.67144854,.21088867 +.78803458,1.488415,.24005871 +.50993577,1.1054069,.50104449 +1.1607318,.76251818,.30176278 +.56555874,.52610993,.37261657 +1.1788194,.42819043,2.0228921 +.53884741,.17662576,.22517526 +1.0084448,2.4428615,.12215864 +1.3838012,1.7195361,1.2829942 +1.1390503,1.4477992,.33903222 +1.6437505,.35125,1.8270376 +.47254994,.11145411,.43188625 +.66578155,.25418665,.63631236 +.91543214,.28352532,1.6741926 +.76191339,.96797864,1.3065976 +1.4397189,1.1397028,.13548688 +.74271116,.10228858,.25891571 +.70096581,.00922687,.11733908 +1.5308516,.30461089,1.1467442 +.99722743,.57739022,1.0003411 +1.3857732,1.6270209,.65392729 +.73096967,.23018536,1.2535306 +1.1807986,1.4453475,.23849508 +.9288914,.97537931,1.0930596 +.57524511,.30649483,1.8652369 +.61649469,.19950321,.58707618 +1.9384988,.71492442,.32818767 +.56958827,.28960964,.51429393 +1.2609641,.40900811,.39077396 +1.0902713,.03413539,.55848464 +1.3282264,.70398145,.88625385 +1.0777222,.32643441,.71334208 +1.5152068,.07746257,.23761335 +1.333914,.21752729,1.250436 +1.2054456,.22449181,.06649003 +.50607228,.76098679,.70745847 +.63287197,.21559857,.13804756 +1.151726,1.5255851,1.7797627 +.54912816,.95858698,.5213518 +.41638165,1.4450781,.3301497 +.53322704,.40568235,.98018824 +1.1656267,.04915933,.39515761 +.32730152,.34099731,1.1241121 +1.4824366,.02899979,.75326052 +1.1761408,.13205002,2.5224223 +.61238089,.1248016,.10122473 +.80558,.39447685,2.030183 +.33612248,1.2833863,.93289872 +.57377796,1.5005703,1.1597261 +.89691781,.27918236,.32119672 +.42406013,.40518992,.73881294 +.69908572,.53532555,.68003402 +.50907845,.93594389,.49087836 +.91075036,.1618465,1.0613433 +.87877582,.82534857,.40100624 +.35316794,1.4833912,1.1948392 +.34201298,2.0002356,.3514595 +.74608171,.80514207,.56864264 +1.0666116,.18519163,.36467248 +.35761865,.23583789,.13307658 +.82356057,1.7176375,.31859025 +.70998715,.18310472,.22416639 +.4049266,.76859745,.28128464 +.53091517,.81663986,.66548068 +.60661893,.10855219,.08716701 +.38130467,1.1432594,.12249326 +.47021226,.42645246,.0358781 +.5682597,.34387567,.90672491 +1.0115689,.64175633,.41885019 +.93382417,.61671907,.17184531 +.44697052,.44817268,.13610301 +.54749776,.83212801,1.0582359 +.45018394,.04708739,.9672099 +1.6704199,.15389464,.6033005 +.94302598,.02680699,.00596875 +.44553419,.52067718,.41090073 +.95104516,.32681562,1.4683092 +.92932238,.22148255,1.0349492 +.81992408,1.5109927,.13850779 +2.1652022,.06080515,.73744494 +.78353579,.57096296,.77844561 +.5766616,1.1846505,2.2072838 +.48161936,1.6219832,.01567498 +1.8139541,.62499975,1.4236573 +1.4169455,.90838388,.040389 +.47722683,.45645381,.47367793 +2.3268179,.15322852,.6138919 +1.0967729,.75158955,.46198051 +.40426057,1.5630693,.14708341 +.79708205,.33346501,1.717926 +.6688259,.20926545,.45116842 +.49344096,1.1736691,.39384726 +.73397819,1.5839963,.42058026 +.72164962,1.2707351,.18170068 +1.1212844,.04277549,.45888092 +.65226569,1.7219201,.01890313 +.39052213,1.616405,1.010399 +.22831954,1.5845612,.5989449 +1.17753,.15118406,1.6108055 +.96413934,.09792494,.12587253 +.83405378,.16309604,.66722202 +.55308401,.15218253,.48865893 +.61694132,.22543639,.50891999 +1.0180483,1.4716337,.70243345 +.5474672,1.13608,.71151493 +.74886504,1.7517921,.45184771 +.60231214,1.3558504,.67622213 +1.3146302,1.2137649,.94755048 +.44292557,.71318586,.00125453 +1.5887135,.76111978,.82361729 +.79135091,.57805689,.14729086 +.43546287,.20100052,1.1642505 +.60815742,1.267193,.26968618 +.46412245,1.1964605,.17939091 +.57137631,2.2623435,.44842613 +.6746796,.42623551,.08183317 +.86421522,1.5927322,.02017026 +.92582717,.53568664,1.1852625 +.68473181,.64104595,.01155374 +.80459039,.70370441,1.0902991 +1.5563472,.58591625,.02559106 +.90287228,.13797156,.37999121 +.76973029,1.0354144,1.259413 +.85849763,.27733681,.29356458 +.48665581,1.18118,.79293015 +.52896145,.50151229,1.1066243 +1.3797251,.33726531,.79880266 +.49974151,.59188436,.96240417 +.40862128,.68972712,.27742723 +.27597992,2.0554937,.30688072 +.84658353,.50644931,.49762098 +.2465515,3.6294092,.50281686 +1.093036,1.0949896,2.2228644 +.36623697,.44587089,.46415853 +.71527837,.71672591,.27244201 +.91632296,.29103608,.3899763 +.22901005,.28744153,.68611947 +.56994836,.28292389,.05776507 +.32411292,1.7881385,.45328866 +1.1813585,.9091251,2.5298489 +.62093967,2.5782191,1.2127795 +1.2367249,2.6668257,.58699881 +.64851933,2.1374025,.12771474 +.66727009,.82575776,.82454734 +1.9739602,.44502578,.87310846 +1.8986133,1.1169237,.72210354 +.59880781,.03200074,1.0928259 +2.0429301,.22038936,.36398205 +1.4227005,.2392401,.73797804 +.73893887,.40258377,2.2419508 +.49429371,1.7572818,.22008603 +.89290196,2.2280942,.78384464 +1.0317804,.15543394,1.2007221 +.8741028,.28665448,.79667821 +1.0083693,.43877198,.60736598 +1.1034507,.3980893,1.0366433 +.87158733,.34679143,1.05624 +.33096866,.78064587,.19704639 +.66106164,.39785953,1.3060465 +.91426737,.65115515,2.0154522 +.66939867,.69115511,.35276522 +.23731434,.82115149,2.1117091 +.70437334,.74486154,1.409602 +1.6664866,.74937851,1.6918887 +1.509374,.67411542,.46620709 +.63681825,.37496371,.76752706 +.78501578,1.024477,1.205464 +.81606537,.39769414,.8171546 +1.6776551,1.4298343,.68074572 +1.4740908,.24774614,.17068221 +.88776043,.05346017,.34344941 +1.0541531,.33508827,.85437667 +1.1788589,.64953454,2.2794818 +.4642392,.54426794,.41450005 +.45474626,1.4616574,1.2242135 +.34326236,2.1146454,1.0524387 +1.0686726,.82637955,.33274132 +.21985313,1.1722897,.55197883 +.7146992,.48420572,.51229472 +.9742243,1.0545114,.80876112 +1.3415618,.71646499,1.2004665 +.9523609,.97769846,.21746273 +.4235158,2.053867,.5270754 +.3972109,.94339106,.18920987 +1.2141952,.7290572,.12639837 +1.994209,.26744415,.54818721 +.31662555,1.0924341,.16088876 +2.7809302,.17944202,2.1304768 +.68981607,.65971482,.31983225 +.97449329,1.043995,.30055395 +.31136716,1.6512172,.16590523 +.34712295,.77094584,.18218004 +.48839542,.03111353,.6607621 +.65073564,1.2715952,1.9663469 +2.6870986,.0712153,1.4723979 +1.4986897,.55163848,1.1106101 +.37753623,1.7185798,1.6504301 +.75511128,1.1103104,1.7058573 +1.500355,.39772063,.02468331 +.68483996,.27909345,.30719381 +.60113717,.41560862,.86943522 +.77452025,.46543792,1.1526178 +1.0023063,.61275579,1.5512075 +.61086156,1.3335049,.42869742 +.46982904,1.3169615,.44954638 +.36774841,.77641378,1.6149459 +.79703807,.21893835,.6622374 +.52271329,.66279697,.92049409 +.60099745,.5863937,.91642953 +.72689302,.85518451,.09642927 +.59494936,1.2459103,.28499225 +1.2193555,.14502946,.10199781 +1.2636798,.73312596,.58183411 +.71169972,.41702912,.59990592 +.6945673,1.5484684,.61398631 +.6146325,1.0755874,.74205697 +.55090365,.21210159,.45974674 +.66250448,1.1555945,.90858954 +1.3530147,1.7443343,.36875516 +1.0045123,.94087852,.61004387 +.71151352,1.4292465,1.4913664 +.6764422,.12745389,.40978631 +.64508453,.30104672,1.4754233 +.49235587,1.2810451,.210461 +.80848375,.14490472,1.0830214 +.69512119,.58558161,.59037334 +.6510954,.96498712,.27273169 +.69616315,.3568606,.92330748 +1.6424548,1.4387972,.40385817 +1.8838581,.79964421,2.344548 +1.1010684,.45312472,.22896644 +.46432453,1.1693966,.19144049 +.83759869,1.7228843,.35311659 +1.0429425,.08179988,.87543799 +.70493809,.89025999,.95513024 +1.1038924,.48719214,.14042126 +.61433186,.1992471,.49505826 +2.1793198,.19577399,.31367739 +.98894806,.5075279,.04774063 +.8983129,.39984356,.34471796 +1.0198604,.33607377,.68048344 +.89897168,.179649,.50551588 +1.0016348,.90060345,.24960821 +.99801541,.7581776,1.0719196 +.41775411,.17362045,.2386407 +1.516276,.69706939,.8113852 +.74322159,1.3811929,.54680115 +1.8801552,.36053575,1.0471624 +1.1614453,.955207,1.8072038 +.36713229,1.1480934,.09973226 +.50365914,1.1646292,.97443572 +.35248869,.23842138,.12194658 +1.2058752,.09606468,.05767478 +.49901118,.55646298,.06311112 +.68368548,.08836608,1.0920387 +.75393894,.73559891,.62498544 +.9043051,.4267446,.81050201 +.83068932,1.0083528,.7488963 +.62228579,.06090245,.35286654 +.84460453,.00631533,.02344778 +1.9422508,.21861475,1.5543727 +1.020251,.29242152,.411764 +.50066469,1.4811047,.1015206 +.55386914,1.0385377,1.0775436 +1.4847189,.02523402,1.2544018 +1.6121417,1.6940002,2.8204137 +.47791639,.29924637,1.0801058 +.59532666,.92552721,.76680598 +.7338038,.69133452,.78227353 +.49769888,2.4139438,.84398949 +.27720122,1.1075788,.12773035 +.83739916,1.2056778,.2616499 +.34265909,.51581809,.68535611 +1.2426147,1.6386774,.66776046 +1.1601619,.6118126,.19800579 +.37986851,.72632087,.62364054 +1.1168643,.65521318,1.9338018 +1.1324477,.08568002,.25239803 +1.665331,.69677453,1.9099513 +1.0938122,.28224098,1.3921985 +1.1787508,.57126699,2.3341625 +.77712083,1.5766444,.81271617 +1.3385724,.49768623,.09581706 +1.0909396,.80497918,.23984337 +.4975206,.72505698,.30262301 +1.4546536,.38128559,.12521944 +1.763723,.55545299,.46688673 +1.0459978,1.1119121,.28121279 +1.3216824,1.0044958,1.2881041 +1.7132933,.06460332,.06671447 +1.2373217,.58620511,.86366835 +.30477458,1.7192658,1.7686258 +.60695189,1.1338563,.53821291 +.6095188,1.3118132,.75573509 +.56318701,.66974093,.36142797 +.91785185,1.194921,.50038957 +.69268709,.37966593,1.0576621 +.41467275,.89891442,.94232691 +.59744045,1.8307795,.48670079 +.43208985,1.1118214,.57264666 +.69040422,.53206995,1.5609728 +.98673745,.5955588,1.9956538 +.30718701,1.9071751,.28874462 +.59625757,.87482406,.18909594 +.47209199,.9431848,.59530778 +1.3588161,.05529573,1.0368887 +.35003827,.53043478,.83678462 +.41908689,1.0717814,.44467031 +1.0438953,.9057514,.30748781 +.61599922,1.0517022,1.0346321 +.9008054,.57797928,.06812855 +.83485683,.15162833,.23683651 +.60933154,1.4327487,.85619552 +1.0042315,.76097658,1.2958673 +1.5031428,.25274951,.40840199 +.39181703,1.1700558,.2443398 +1.1166246,.26190507,1.282746 +.46781367,1.5652514,.86035634 +.90525072,.70637336,.80445538 +1.4932382,1.3882279,.87792001 +.33746424,.0914564,.65990125 +.43042816,.86381736,1.10946 +.64242149,.93986487,.56649151 +.49084033,.88239091,.22042885 +1.5991264,.37464352,1.4242254 +2.0338175,.29870588,.60689252 +1.262518,.7564373,.27079349 +.67663858,.06848397,.77320403 +1.1023091,.27877728,.23000383 +1.4404735,1.4367686,.5504325 +.98998309,.74249251,.21587615 +.98071088,.27599804,1.3083772 +.83435202,.36254031,.4404729 +.68048331,.36537535,.17125069 +.68098803,2.1545921,.87434974 +1.7230325,.59371016,1.5182979 +.4633443,.65203584,.40307805 +.58439559,.6823969,1.744284 +.48137261,.86068266,.54651992 +1.366736,.26270175,1.0327361 +.61684297,.58245916,.18607809 +.45072112,.54477643,1.0102752 +1.0691128,.4910122,.32836758 +.44551374,1.2783563,1.092447 +.73669306,.78390617,.68752237 +.57996348,.3425126,.65665146 +.40829786,.45889164,1.0453969 +.55117647,.36173265,1.1726939 +1.0714506,.77556259,.72689854 +.7710091,.92949083,.87559647 +.5722894,.76945356,.22547375 +1.0461694,.68948146,1.4880737 +.56477617,.38463283,.220192 +.97714151,.04468837,1.6189745 +.79543338,1.6044331,1.6178551 +.43704311,.19891184,.64185482 +1.2934375,1.0185952,.01717497 +.32752241,1.2671958,.81107901 +.40741731,.86355288,.18152984 +.52974372,.78401619,.0378881 +.86889003,1.4039592,1.3687557 +.58610483,.41244994,.16443819 +.84518431,.05876231,.75462313 +2.3973374,1.6755464,.60508286 +.44056261,1.4885468,.77853519 +.61183919,.22365944,.11981967 +1.4368216,1.5814475,2.4717874 +.52518811,.76522136,1.563375 +.48786105,.10337291,.61442046 +.54491768,.59085895,.54837274 +.57868176,.58294331,.910661 +1.0025826,.39939892,.20375552 +1.5828817,.51986543,1.433052 +.43667342,.91593896,.54880399 +.29560664,1.8011603,1.1486133 +.55430568,1.5818626,.28964817 +.80178779,1.1004332,.24085092 +.3412901,2.029976,.26646609 +.5097357,.30199289,1.1461807 +.52667813,1.6705548,.01400578 +1.0593781,1.6700893,1.2707615 +.80548958,1.2151755,.98408684 +.76084998,.40822202,1.5623304 +.39879335,.38255031,.83446815 +2.0844791,.12306372,1.0539027 +.77471608,2.2922551,.48596968 +.91620165,.20480224,.24980567 +1.25641,.44152545,.24213496 +.92566188,1.7215438,.9552688 +.63771357,.90443554,1.2658854 +.69484439,1.4827739,1.8316781 +1.0892095,1.4690356,.49805623 +.60755285,.06540974,1.3303945 +.65630409,.31761006,1.8219823 +.86954347,.36187032,.02828005 +.68640519,.85966134,.72847086 +.36972901,1.015876,.3528067 +.8373073,.59531949,.10387099 +1.37764,.10170539,2.3812053 +.62981338,.17015974,.26966672 +.57355327,.84926518,.09947854 +1.5528826,.2916892,.95044624 +.85232963,.41960678,.98616417 +.66845705,1.5280216,.93121064 +.21684173,1.5466048,1.0653042 +.37215606,1.063691,.74675357 +.78904431,1.5283888,1.1847648 +.83116496,.29384888,.0332037 +.39540558,.50257647,.1981677 +1.1425609,.74896696,.99753016 +1.9737938,.64172552,.03971633 +1.3919211,.55921064,1.0552501 +.97341938,.60206366,.90022326 +1.8630603,.07459763,.61529859 +.71529378,.32822591,1.4289977 +3.3039519,.36527897,.42617365 +.55315676,2.2962724,.84189394 +1.543902,.37803805,.4754829 +.62568771,.44460102,.02491273 +.46862326,.89939988,.6456861 +1.2118851,1.114404,.00419241 +.43166878,.20571355,.54774516 +1.2785951,1.3830337,.44865096 +.61343048,1.0137319,.10318846 +.47163607,1.0008242,2.2689081 +1.7729663,.10461232,.25056403 +.6058101,1.0000608,.40187288 +1.1985779,.94045694,.49288565 +.74590781,.49318724,.00580824 +1.4695109,.21306516,.82287644 +.7546281,.75029885,.8974657 +.8729319,.38405142,.29676111 +.87016514,.03322109,1.5988169 +.78339972,.57149833,1.3212966 +.39926513,1.4808269,.6283576 +.48059832,.37284663,1.3133046 +1.5771729,2.1780175,.57107241 +.59492365,.65874407,.0697789 +1.1992473,.16006303,1.8828331 +1.0885973,.36218333,.09306302 +1.1719505,.58131401,.73495637 +1.0218963,.96613423,.17997271 +.64937624,.76283609,2.6660427 +.44558628,2.3392038,1.4337458 +.42672332,.43075918,1.7601147 +.68061082,1.6575787,.7803033 +1.0915244,1.0247472,.66328912 +.51594159,.99522938,.41080823 +.62520355,.83150132,.34466714 +.93192196,.38439561,2.3222062 +.40119228,1.8767467,1.6199658 +.32558445,.97076549,.51193992 +.60196711,.64298613,.29166551 +1.7378492,.11894237,2.2859589 +1.148306,1.4962075,1.3481578 +1.7369564,.15424723,.00225356 +.65337962,.14565855,.56324451 +.47386477,2.0010944,1.5416159 +.86836716,.37519943,.24787968 +.77730677,.79268762,.04035137 +.79385911,.44272527,1.3184245 +.53410914,.11999727,.41489042 +1.0516504,.07102453,.72126615 +.90144178,.06846733,.50149092 +1.1073897,2.2388288,.80062401 +2.8677827,.28382372,1.2517967 +.32914768,1.0854038,.57360059 +.78090665,2.4090153,1.2475039 +.85710677,.46228034,1.5178951 +.64045156,.95607611,.48889715 +.35362015,.68110968,.89231922 +.6699256,1.1253349,1.0060939 +.37236004,1.5818696,.50304638 +1.1037581,.50848318,1.862858 +1.6888885,.60821165,.12564143 +3.0947714,.2495025,.46880957 +.61701215,.51537978,1.1622258 +.49255046,1.1769418,1.177887 +.32331658,2.3746054,.95185497 +.42935529,.18966837,1.4651399 +.62011365,.9367204,.90074189 +1.0779892,.53363829,1.878068 +.74086086,.74911629,.67181507 +.80685749,.7122127,.67863845 +1.492923,.23235537,2.0810342 +.92143617,2.5980825,1.8643866 +.99517464,.05476165,.13471261 +2.3754143,.38340041,2.1916347 +.66199139,.91115886,.78987929 +.51429785,.25841097,.23553122 +.79392455,2.297331,1.4287279 +.55972857,1.1837858,2.2227015 +.79069459,.27854609,.348872 +.88592958,.68600178,1.4141256 +1.432539,.27257606,.47140777 +1.1416646,.42770422,.37864945 +1.0055697,2.0354305,.12311004 +.47405457,1.8380599,.08637304 +.79097732,.63114539,.17644017 +3.0880118,.14993271,1.2315698 +1.1348585,.61814027,.60169705 +.93633998,.44682476,.06646238 +.60108713,.51559263,.27624062 +.82967741,.65948889,.02279373 +.93152419,.28307229,.66751614 +.38189397,1.7593135,.24905269 +1.1800577,.51692232,.15618059 +.79355604,.27014742,.47802595 +.93314955,.91240605,.95819121 +.74578264,.33708627,.01492556 +1.0589735,.65678828,1.4779964 +.71619448,2.4525288,.71502904 +1.0121306,.08414361,.75614767 +.70803282,.99220661,1.4874135 +.8463686,.17729329,2.5231789 +1.2330491,.96378341,2.3485482 +.50500279,1.3016886,1.3204252 +.97988963,1.3759258,.47633637 +.92763484,1.2461101,.65670437 +.51651047,2.1118294,.730455 +1.2425458,2.4029187,.49139612 +.52164298,1.2998587,1.2340987 +.63245372,.68648292,1.0803851 +.81812364,.43872504,.38595507 +.53696606,.30310912,.44743762 +.52408111,1.3973493,.93490685 +.50686225,2.679769,1.2315121 +1.029732,.65017264,1.0994037 +1.0792463,.62631835,.30491874 +.56021228,1.0535366,.69418855 +.80032531,1.178276,.88253179 +.84924478,.55160378,.88993404 +.3230677,1.0178202,.52911257 +3.0545094,.97726363,.94970102 +.71362742,.56173976,.66373013 +1.637258,.55502621,1.2805935 +1.0087711,1.8156165,.38338275 +.72378369,.77740394,.90122803 +1.6592971,.11377586,.1323437 +1.8451839,1.2256073,.28393673 +1.0578961,.91283333,.39254253 +3.4137546,.0979821,.4666527 +.54949071,.56517456,1.0740707 +.74343709,1.2895147,.81719494 +1.0659496,.92949102,1.0384238 +.45334537,1.0152837,.85732885 +1.2339685,1.2898286,.81483249 +.78852938,.87848726,1.6544941 +.33888392,2.0209657,.4317044 +.93616394,.52853911,.21726293 +.24509336,1.1311479,.74417358 +.84776752,.83739106,.86217196 +.87775537,.40289474,.32745082 +1.0129552,.95355862,.26578497 +.51563883,.30940408,.12107653 +.71049812,.83891487,.31170495 +.5476571,.65122113,1.2110637 +.85807682,.6526269,.84450094 +.7534039,.17572909,.09641328 +.9848399,1.5797772,.48588866 +.74437362,1.6984527,1.3972172 +.56542107,.08479883,.47424765 +1.1462353,1.2979326,.81814031 +1.0812326,.06856416,.21087014 +.76408391,1.1737361,.77691864 +1.0905298,.18552068,.37270973 +.46087568,.83311596,.70288729 +2.3152625,1.2205784,3.0580621 +.71137516,1.1417329,.75787052 +.39855156,1.161248,1.5343857 +.58287897,2.2014719,.53760488 +.84198026,.29595779,1.3680338 +1.9800677,.83779102,.46208112 +1.5757374,.54407164,1.1803012 +.79481047,.87339522,.94081921 +.43707662,4.2382645,1.930213 +.44450145,2.0311528,.14077596 +1.3174095,.48641613,.50666833 +1.1095172,.68295226,.86950323 +.72456205,1.6195586,.14478282 +1.3906425,.10180552,.36781552 +.65891903,.09534541,.20996941 +.74952263,.94037745,1.7344072 +.97529279,.41666602,1.1423323 +.93154593,.19322449,.5708362 +.84152173,.91434144,1.9155584 +.54782173,.28077264,.95517037 +1.2582251,.26982,.38535711 +.55603458,1.2751381,.44932749 +.39058392,1.4853726,2.0418703 +.8209047,.59998206,.75285469 +.71140227,2.9517996,.60756952 +1.7337156,1.2449757,1.0271681 +.86539433,.19526988,.23682833 +.78554102,1.229386,.25137463 +.3722285,.65127449,.37344711 +.88051099,.4211681,1.4354427 +1.7167516,.64106203,1.5274572 +1.1475339,1.4580054,.32295934 +.78528515,1.5022793,1.2995818 +.78726802,.17995582,.81203913 +.50551282,1.4054162,.61656599 +.68913298,.66334315,.24023894 +.98556724,.8048981,1.2288629 +1.8796399,.92870819,1.523849 +.3530473,1.7417003,.44588528 +.40651318,.67845857,.88456889 +1.3349107,.63222018,.57679297 +1.4860846,.42777965,.29728475 +1.0439466,.47445492,1.2083068 +.76195747,.14011275,1.0851506 +.48695417,.13273522,.78092116 +.89368533,.90078764,.31897519 +1.2811351,1.3221387,.50397684 +.27902832,1.4070221,.31616766 +1.619172,.01330933,.49083663 +.57171714,.9039683,.42293135 +1.3998741,.36651513,1.1793952 +1.2033841,.19713823,.22171936 +1.2426077,.64149944,1.0349723 +.22374688,1.1791478,.11390566 +.74048484,.0634742,.54696954 +.64765332,1.3297013,.42173055 +.5090881,.7638163,.35454744 +1.1154199,1.8214053,.41348183 +.48924137,.4404148,.5125996 +1.554408,1.2558259,.77744974 +1.0407054,.94506819,.46710262 +.36332783,2.0379076,.32630747 +.48650492,1.5772282,1.3289676 +.91150133,2.2987966,.2065885 +.63602955,.65746389,1.0516631 +.9228703,.01092664,.63818689 +.32571355,1.4412881,.34258568 +.6860875,2.9223176,.98824587 +.30792762,.00089477,.04660273 +1.307688,.39841579,.14297401 +.58727198,.87639622,1.4576581 +.76412865,.97894415,.01591119 +.94402248,2.6478931,1.573401 +.81061629,.78517297,1.9215566 +1.5766793,.59976412,.4687693 +.80173886,.85681005,1.815692 +.51263423,1.4860041,1.1750118 +1.1852828,2.2181323,1.5031855 +.58198349,.86212303,.62562566 +1.2784295,.92989896,.59587975 +1.9498144,2.1079554,1.2860332 +.76084734,.32822833,.43711188 +1.0178636,.67923446,.18085636 +.41468467,.81096592,.8102295 +.68647449,1.1529841,1.1936212 +1.8105368,.64062072,.05760508 +1.0111726,1.6636787,1.0617848 +1.2681394,1.3513611,2.1447328 +.9048257,1.6077764,.14380327 +.95608022,1.3496181,1.7556882 +.72001689,.03370695,.31530804 +.38878556,1.5092445,.7328423 +.57749629,.80918378,.187291 +.63647271,1.7497073,1.3336464 +1.1452547,.04759004,.42669415 +.82315073,.45976571,1.7350115 +.46950176,1.5284744,.93355641 +1.434708,.62870604,1.1971057 +.90626147,.80128501,.81794729 +.73219455,.08784127,.97258148 +.57161331,1.8279928,.29658014 +.73189831,.11034822,.14846513 +.31292786,1.1652343,.09428489 +.4078804,.85492864,1.5208486 +.38342031,.04675065,.41837558 +.89079483,1.45195,.43646457 +.88721627,.8290196,.63961801 +.34368193,1.0712034,.91214897 +.60491203,1.0301781,.31280446 +1.3998601,.47402655,.00822837 +.50444292,1.4644551,.99070713 +.24442241,1.1770864,.06582938 +1.0547544,.61443016,.54006281 +1.3372194,.05031153,.05281284 +.40611354,.79663916,1.4225326 +1.0642764,.22484156,.18493103 +.42946783,1.6973673,.82465837 +.63592775,.23194346,.19101439 +1.1010363,.27765187,1.0372425 +.80586876,1.4433963,1.6702349 +.66398371,.0861059,.01896047 +1.0270693,.07024151,.97241318 +.57586897,.6257696,2.202477 +1.182937,.30732302,1.5909713 +.65618997,.7968501,1.7030779 +1.1324254,.24546548,.57183629 +.61410327,1.1336115,.80930813 +.56810625,.24012448,.02593037 +1.222234,2.2563156,.66473119 +.78906262,1.6133722,.60660084 +1.346299,1.0260026,.37847179 +.31366726,.88026017,1.1676008 +.3392868,.35485187,.42481135 +.89816956,2.6674515,2.1483932 +.54886308,1.1920035,.57547773 +1.435604,.02076337,2.2094601 +1.0380837,.41177906,.8509581 +.77603189,.54119966,.44939384 +.70950703,.22478439,.78432259 +.38487272,.64784425,1.8008135 +.56282775,.20198444,.39104999 +.42093981,.39656603,.39351775 +.47377551,1.543974,.01048895 +1.237522,.21339737,.80194078 +.66026647,1.0123013,.00055033 +1.2139393,.76162477,.20661405 +2.1967816,.15491988,.22362865 +.68753563,.06937633,.56441572 +.9191929,2.4124032,2.4670428 +.5247958,1.5943706,.70976929 +1.0525568,1.7384391,2.0517052 +.82219802,.41614677,1.5634262 +1.3206938,.87785044,2.0348745 +.76455435,.50521345,.44342291 +1.0667892,.64189258,.64396326 +.99892094,.99643732,.12554053 +.64641191,.97442879,1.513806 +.55061778,.83490149,1.5121586 +1.0625226,.53071421,.2104862 +.55152029,.60958757,.10784124 +.83095249,2.265831,.950081 +1.4047518,.59353033,.25469594 +.59424468,1.887298,.97001469 +.81501998,.93832357,1.2981051 +.83227887,1.0811065,.50739881 +.96271991,.46367056,.70787498 +.67051808,.30738757,.35891455 +.39217566,.65260641,.15548959 +.40837442,.5230915,1.7644349 +.44384168,.65555033,.74036458 +.61182041,.42052676,.03131675 +.70146669,.46718772,.98969561 +.54135833,.03370597,.35436951 +.28330985,1.5633577,1.5072733 +.46422654,.31492926,1.1580452 +1.6910224,.83327925,.00552254 +.41601304,.99109094,.01770766 +1.6077513,1.0718745,1.0583053 +1.150673,.28929919,.54259502 +1.7645961,.10061031,1.1169543 +.92436415,.10144376,.58958714 +1.200294,1.2355125,.59646297 +1.9166769,1.0788165,2.6456182 +.57632206,2.1790634,2.0956332 +.85336532,1.5369299,.85125887 +.76189425,1.3853917,.23983132 +.93617704,.20991546,.28524197 +.89925074,1.3458431,.67162398 +1.4905067,.56774374,1.5831353 +.57296156,.36516611,.21915198 +.75608301,2.5649839,.30770213 +.72667175,1.3817154,.33159202 +.49780955,1.1525237,.81731984 +1.2092746,.64575571,.54117682 +.46485108,1.2275039,1.3277043 +.76903671,3.1981611,.57327044 +.94787923,.36630889,.93720197 +.78943535,.06409933,.91220321 +.43783681,1.9473397,.42694401 +.92301394,.54664097,.20335867 +1.3343744,.92685491,1.224195 +.59965976,1.3537983,.14510764 +1.4916574,.12017602,1.2710762 +.21377682,2.1964068,.59464588 +1.1156842,.061106,1.1916411 +.36390569,.71342062,.55002841 +.8356404,.8892776,.95188715 +.66086717,1.3532083,.08404355 +1.0873299,1.5549363,.65575817 +1.0311179,.74795006,1.0450419 +1.9860201,.27181898,1.2103206 +1.6757816,.40940515,1.6118392 +.43433002,.28256825,.0218635 +.94789402,.27700072,1.2926865 +.76788958,.79799698,1.1409331 +.58851126,.3883141,.33132416 +.50356873,1.5909819,.35578299 +.59383992,.45401439,1.0811002 +.89801333,.07706473,.70701137 +1.0316365,.65993353,.35118446 +.69380681,.01874989,.68309066 +1.026464,.93863408,1.1969586 +1.0115185,.0984216,1.6406096 +.31649757,1.3824332,.62669038 +1.3395877,1.2017974,1.2173037 +.78128556,1.2156125,.67832326 +.74310772,.23784519,.48091043 +1.5273557,1.1515534,1.4321703 +1.1940163,.07416823,.3471668 +.71031033,.20646311,.68608953 +.26322809,.36179535,1.3320231 +.99634727,.39441663,.72049522 +1.5798333,1.7824207,.95512463 +.70998887,.39691984,1.334818 +.54733104,.10249634,.06720413 +1.0537985,.17754575,.2704223 +.81297739,.22909335,.6724675 +.4168107,.7396332,1.1586893 +1.9487723,.20120319,.17523794 +1.0987273,.49345308,.77994546 +2.5767929,.11423134,1.6456794 +.98640787,.76175965,.25840892 +.89566088,.35781504,.89849337 +2.3101717,.67287186,.89245637 +1.6783383,.23706121,1.5655167 +1.3635236,.03343896,1.9587413 +.84051379,.0332763,2.1848652 +.98073798,1.7082846,.76550653 +.50200966,1.3146668,2.8411018 +1.5661109,.08085809,2.3414214 +.67363397,.24656099,.580864 +.69643996,1.3909136,.93853761 +1.890635,.16658969,1.666377 +1.958649,.26874677,.59916704 +1.9538852,.84266535,.79266083 +.44687568,1.0419633,.0880803 +1.170297,1.2713832,1.0759638 +.58558882,.38400174,.49190419 +1.1525039,1.114765,1.300936 +.75440307,.63955295,.43773293 +.46780684,.85125902,.23681736 +.84730396,1.4078483,.07453653 +.7386751,.01347094,.07085614 +.98431024,.01681272,.69133651 +2.9600769,1.4315209,1.3533899 +.68219469,.26663391,.62642901 +.72115865,.26943644,.40473745 +2.0861161,.13192889,.78606624 +1.1502972,.09123577,1.4995319 +1.1251038,.01073414,.37790273 +.77861104,1.1769734,.5907576 +.44337079,.62069513,.75965439 +1.1365797,1.4931628,.0854456 +2.0023245,.03914616,2.0049396 +1.0547572,.01705092,.20552541 +.84789405,.30330061,.28896901 +.48087408,.02609732,1.1724326 +.43880677,.65524287,.10479275 +1.8079863,.86378719,1.7324068 +.57588409,.15404932,.61901658 +.35345359,.30246707,.77457987 +.50358606,2.0816042,.79852377 +.8677936,.11591488,.30742442 +1.012235,.14836346,1.2765422 +.96227902,1.1820051,.81518316 +.7960209,.28691076,1.9120457 +2.7832321,1.1417945,.42938142 +1.6668184,.4844674,.99178251 +.75216736,.65930527,.97527178 +1.1764233,.87058692,.1152763 +.5354055,.03173866,.27725869 +.83669166,.15684018,.28738958 +1.0157329,.68348386,2.3542979 +.92560357,1.0102635,.2014457 +1.0915019,.12164865,.87700126 +.32367708,1.5074895,.65147122 +.4448944,.5767429,.1447255 +.34046889,.94609722,.08128725 +.490812,.85083578,.31516667 +.25551491,1.7729762,.81281841 +.53259686,.85199177,1.2921967 +.6763498,.4429648,.15219952 +1.3046012,.65319517,.08203373 +.53819841,.18007781,.40167382 +1.3070159,1.0066161,.53402186 +.95064717,.41880509,.38876976 +.78270171,.12554599,1.1429237 +1.2077823,1.3753412,1.2152278 +.33307056,1.5158048,.74898715 +2.2972647,.52684132,1.7447576 +1.9889076,.40278722,.62346095 +1.9003394,.07534532,.59326143 +.34588476,.5997774,.39352158 +1.3848391,.19341777,.65338248 +.4866094,1.4769768,.17689952 +.72677696,.56944265,1.0796162 +.97312029,.15803085,.26357945 +1.6770397,.32598195,.73019003 +3.0828438,.33148027,.50958167 +.53978217,.18858981,.06856689 +1.8359513,.24949013,.6270244 +.55139061,.21901532,.66594662 +.53120757,1.1132875,1.2073776 +1.3604415,.86499452,.44762316 +1.4100932,.28476938,.21105136 +.5317353,1.41746,.10591902 +.35807332,1.7052541,.44198972 +.44591303,.00083606,.62313331 +1.5236728,.76468648,.04255063 +.72440922,.42656059,.02414543 +.73692786,.1969044,.38403794 +.67085897,.31547314,1.0618144 +2.1289201,.00727525,.92214303 +.83484051,.9365747,.27943891 +1.4582086,.42770235,.14894348 +.60423985,2.632713,.1815459 +1.3231255,.8059688,.60831076 +.74067333,1.004399,.99278036 +.7335507,.11964148,.69886876 +.61472818,.41714821,.57707312 +1.137233,.18288462,.26872759 +.55577561,.71466678,.82123976 +.34499519,2.0482713,.07691842 +1.1857159,.3515483,.2531631 +1.3126346,.86186097,.78023273 +.70496784,1.3466144,.02746819 +.80611587,.24862795,.03480795 +1.0419786,1.1803205,.22367077 +.43638112,.7663279,1.2585562 +1.4064567,.36692107,1.4663623 +1.6750222,1.0388907,1.4213236 +.38554069,.62712483,.33980381 +.38007966,.05931829,.33031338 +.85701212,.23845349,.33613195 +1.4786104,.56168204,1.2830694 +1.0748568,2.2040816,1.0451015 +.48763681,1.994629,1.7134518 +1.1708599,.33579193,.53622808 +1.4442291,1.3583403,.42435972 +.46502917,.55244661,.13023506 +1.8339693,.19512302,1.1384803 +.9468369,.13267278,.15396403 +.73327736,.30412774,2.0869615 +1.2589682,.10342949,1.9796736 +.32950329,1.6539137,1.4017712 +.99450094,1.5020955,1.3541543 +.42167515,.11025273,.07469132 +.49379249,1.2870401,2.0007292 +.63858807,.77247546,1.7410305 +1.1319762,.10916838,.94319496 +.61506713,1.7278862,1.9149115 +.45596362,1.7422465,1.9031208 +.55977068,.15454113,.28271189 +1.0455512,.41456556,1.8043565 +1.146696,.79334514,.34850078 +.52537046,1.6682201,.07005638 +.60348809,.85753284,.14614927 +1.7364425,.63701359,.08930606 +1.8354809,.48358341,.88929074 +.71854178,.36415234,.32665028 +.92896808,.71965305,.00076818 +2.1495859,.03222462,1.1051794 +.55947426,.65330578,1.0013556 +.4323414,1.9958776,.04603591 +1.1176813,1.4419434,1.3932616 +.99414408,.95404676,1.0417476 +1.0499161,1.4753687,.17971689 +.48588429,.51113135,1.5547702 +.84550192,1.2094298,.21257662 +.65263457,.63949305,.30934035 +.79290738,.33640342,1.2574682 +.54673202,1.8489152,.57730258 +1.0233927,.97820741,.6789448 +.33906101,1.2299204,.12771359 +.63224042,2.8438105,1.705091 +.52886074,.75885043,.60977697 +.71331299,.47041217,.23006475 +1.1036448,.0083311,1.0368225 +1.7023252,.22409734,1.0066049 +.45684042,.7471557,.24228845 +.50728536,1.203658,.89912382 +.52542282,2.5508588,.71432776 +.67558243,1.9095825,.3053206 +1.0786687,.12323818,1.1259563 +1.5754653,.36698878,1.2005333 +1.2139596,.15071803,.35595134 +.40790358,.32594184,1.9646264 +.53203962,.71076602,.12283687 +.47787359,.48266772,.89799438 +.58515266,1.1860984,1.1913127 +1.3560085,.75163581,.46297806 +.53281318,.82110722,1.4960469 +1.0548592,.15171306,1.5743854 +.81411684,1.7223677,1.4484671 +1.1938087,.30310589,.19097463 +1.192741,.21129405,.17451559 +.75899672,1.2419331,.82784879 +.6374576,1.8619317,.91451349 +.44619783,.4919511,.01682262 +.48676596,1.016314,.40128148 +1.0262709,.14499535,.27350617 +1.1861885,.16331249,1.2325801 +2.2942538,.38247592,.48889353 +.85355646,.61764498,1.6375257 +.50980799,1.278777,.29614012 +1.1398388,1.9680992,.3960092 +1.9046205,.8304337,1.2445858 +.87173536,.32872371,.66490222 +2.0480913,.98587448,1.0592145 +.77299797,1.1990445,.27866106 +.37258799,.92391239,1.0006353 +.45918285,1.5978562,.71282981 +2.3619335,.05039088,.24353454 +.39396251,.26278374,.08104844 +1.8585588,.51678988,.32269789 +.48543293,1.3091433,.96542171 +1.5687305,.42162177,.62088816 +.50056857,.20667432,.79511053 +.60993877,1.0747486,.56051621 +1.5955571,1.1066353,1.1917326 +.72446861,2.5016278,.91472237 +.65059142,.02257329,.8548867 +.73070276,.18703439,.82622486 +1.1264166,.67277123,.13468606 +1.2113956,.52728027,1.5949436 +.78712526,.28106918,.0968602 +.94145997,.66741615,1.6472806 +1.0954378,1.8365617,.02243568 +.44531892,.46709231,.83176536 +.82590238,.59641505,.26896118 +.60970799,2.3779952,1.3423091 +1.0839253,.57236835,.29045551 +1.08553,.05119174,.98016221 +.35995648,.56951999,.17797189 +.80942276,.79188416,.739691 +.86087265,.63038067,1.275026 +.53404867,.866855,.53209025 +.62392452,.42424381,.38531759 +.89884572,.56616936,.27225837 +.87199319,1.2087332,1.1686478 +.85784963,2.8609857,.73594506 +1.3131563,1.275769,1.9422994 +.68350256,.09357748,1.4982703 +1.1943808,1.1793543,.26941153 +2.1922287,.29989653,1.116309 +1.3082946,1.178197,1.3840065 +1.1113702,.50065059,1.9818397 +1.3383851,2.2420446,2.3648687 +.85174954,1.9054286,.39733451 +1.129548,.43810268,2.5157195 +1.441278,1.509342,.66813457 +.7255826,.81301011,.23648842 +1.0450212,.0038373,2.3080157 +1.1054451,1.0574794,1.2490296 +.45652571,1.2939899,.89678706 +1.1320308,.04545738,1.0351427 +1.0045427,.48358449,1.6361806 +.73067428,.03111618,.85563651 +.9075105,.43921892,.95644906 +.45477493,.35751494,.77993388 +.79356556,2.8708533,.22020986 +.46057191,2.0228225,1.2274254 +.54476132,.96381363,1.0407849 +1.0445949,.08157871,.04754359 +.51373178,1.0181191,.39457112 +.2243129,1.4619459,.77278401 +.54747435,.13058052,1.0562786 +1.0083437,.70440173,1.1334688 +.88595883,.74651968,1.1561514 +.5197623,.20360818,.18498941 +.50207686,.92640805,1.0854036 +.99810029,.0455252,3.4521324 +1.1951986,.18817193,.68836072 +1.8554518,.91690063,2.0925599 +1.7851735,.09115076,.29708702 +.44102123,.95727975,1.2543157 +.86045738,1.3314396,.35523279 +.76553783,1.6424116,.94004993 +1.0169114,.45977034,.93161177 +1.2856241,.55383372,1.4754196 +.83504826,1.6660218,.07642833 +1.6337218,1.699747,.05984007 +.98855504,.25684297,.16606373 +.74471199,1.3923451,1.5143552 +.59190466,1.1416195,1.3069012 +.51123432,2.5162145,1.0903823 +.4287568,.68421925,.88664074 +1.0621152,.78039116,.75343923 +.71162825,.94351661,.63121965 +.64934633,.11045863,.04400389 +.6590141,.76228929,1.1274099 +1.947319,1.5154784,1.2109174 +1.3182594,.06418468,.18862662 +.4448112,.39947473,.44120012 +1.5931178,1.9578012,1.0670696 +.92577296,.02509758,.81107075 +.37191726,1.3854178,.98019231 +1.3395129,.27117458,.29291725 +.82135854,.34848711,.33452343 +.56298594,.9481405,.20094716 +.64649229,.20195604,.10571592 +.53218878,.74410616,.72534453 +.59017107,.93688963,.8805462 +.88269337,1.3244887,.81594257 +.44544463,1.034225,.41986385 +1.0834509,1.2170397,.64858084 +.49270929,.56024573,.38228127 +.43753896,.44702784,.46987415 +1.0577981,1.2249352,.49261012 +1.1129117,1.0615008,.64650688 +.42530777,.03538565,.07824858 +.45932319,.74515031,1.1323152 +2.4337966,1.6465091,.77930235 +2.0973645,.20452708,1.4372669 +1.9009487,.17209676,.21357099 +2.0278298,1.1185096,.26905762 +.85528289,1.0189744,.7570553 +1.0350345,.29261478,.39094093 +2.6422247,.07033411,.30420029 +.5140029,1.066023,.07795963 +1.3934558,.17803739,.31633266 +1.4523115,.17894269,1.1052272 +.67948211,1.463158,.48501001 +.65778312,.91792615,.68402465 +.99563847,.29704757,2.0359843 +.6086198,1.1123892,.97031487 +.97176865,.1031163,.68594548 +3.172715,.07331014,.54312566 +.66290605,1.6013314,.30082313 +.52191917,1.6711335,1.4397747 +1.4082474,.11296385,.45664121 +.70603199,.51632009,.95465464 +.90887164,.24682122,.46270406 +.48803218,.87589175,2.0652667 +1.4091699,.65454137,.24426516 +1.0313178,.1335253,.35719454 +1.3822809,.55087071,.57031661 +.46318477,1.2562246,.10602722 +.84124991,.72300082,.24744611 +.72005416,1.157234,1.0185656 +1.1581306,.32385789,3.4205553 +1.1062855,1.4217344,2.5219381 +1.2628957,.37980036,1.3896668 +.54907046,1.4532248,2.2864334 +.47013967,1.2530119,1.2287858 +1.5702758,.04819764,1.0995112 +.71714987,.5576588,.05748551 +.88696413,.39828477,.86230246 +.56942363,.43028907,.32020357 +1.194354,2.0997082,.26225915 +.49712269,.66819234,.67758129 +.54577257,.75752552,.47854348 +.55554812,1.0136775,.99391563 +1.2356904,.27607987,.13491326 +.64654905,1.1353353,.20603382 +.68977894,.98343752,.82935937 +.4185756,1.440873,.15235404 +.51801703,.16443431,.39994747 +.6789779,.5482287,1.0365555 +.59075355,2.5261331,2.4092286 +.28745651,1.5833844,.17520858 +.56223016,.67544825,.39073222 +1.1292924,1.40262,.41181671 +.7952998,.07094655,1.5683521 +.58899793,.63165059,.55742037 +.41000838,.77660809,.52923036 +.4143729,1.0843637,.09216096 +.60813212,1.0751661,.65359106 +.4638498,.89542929,.23079008 +.87237547,.78703007,.39552888 +.90016571,.3193321,.68314355 +.8557197,.84700131,1.3836115 +1.5359344,.27196633,1.7061837 +1.1998291,.28060531,.21234199 +.72729596,.57600911,.45360463 +.53358145,1.0184684,2.0419656 +1.1495088,.96618169,2.5000018 +1.3144638,1.196933,.42830172 +1.4898759,.75460823,1.1911906 +.45499791,.63338397,.90683149 +1.0808516,.15370296,.00132095 +.60608328,.89410116,.45706944 +.83524618,.86106646,.44413656 +.72323731,1.9581175,.95039689 +1.9249132,.07822717,.75027004 +.9666377,.83028074,3.2435743 +.43641777,.36480394,.39645667 +.4195825,.09094996,1.7874976 +.74472813,.28079986,.20860033 +.61020936,.09517121,.692579 +.77131368,1.8274923,.21127301 +1.6067464,.140329,.6828836 +1.7686029,.42627639,.32541021 +1.8905737,.13478385,.29612997 +1.405894,.87703519,.70319283 +.44415226,1.8298393,.47193776 +.33506658,.43027816,.07489457 +.52297481,.26344526,.01190135 +1.1373273,.42360934,1.5305132 +1.3312783,.91587062,1.7751241 +1.0410896,1.5157656,.26608781 +1.4480413,.29716426,.32438721 +.3719933,1.7984758,1.090611 +1.138133,.61494499,1.2161427 +1.4537901,.30528947,.69439308 +.46470688,2.4677522,1.04113 +.43600904,2.1068578,.99017465 +1.1794371,1.0822301,1.443628 +2.2879771,.44622975,.64715892 +.83039767,.98064963,.84536739 +.80287262,1.6696984,.2133798 +.97500494,.40712243,1.9619799 +.45550386,.14264939,.10375282 +.57711838,1.948537,.60913161 +1.1469246,.77060927,1.6292497 +1.7211792,.75091236,.42999725 +.41171325,.5355055,.53850641 +.97286873,.19363805,.30972112 +.80297553,.77145153,.28321563 +.4470903,1.1346274,1.6393474 +1.3915772,.02676164,.71137971 +.79863347,1.2380587,.1271012 +.96938515,1.1903338,.11833457 +1.4998255,1.6174386,2.3163467 +.93455349,.12541608,1.4459555 +1.2592145,1.0184489,.95519548 +.93858633,1.2308372,.28543483 +.71921677,.5691937,1.5062947 +.41445547,.91731958,.26125513 +1.5565691,.50849537,1.0546989 +.99581961,.91298561,.20558919 +.33116335,2.0528966,.14246533 +.44532875,.84073702,.34597492 +2.178776,.6245389,.6367874 +.40246591,.49722636,.71098424 +.49144091,.80917368,.80381215 +1.6976921,.10409301,.78340753 +.79345409,1.2703867,.8570724 +.41725463,1.2149675,.44892438 +1.5577132,.06371071,.01689731 +1.6395686,.97946324,1.5638839 +.63510756,.09946512,.16027211 +1.2465467,.17283226,.82421806 +1.2058207,.12364465,.61848685 +.8580398,.19404364,.27610869 +1.1860249,.78878315,1.0646518 +1.8869189,.43344444,1.5333035 +1.5164096,.83481771,1.8775071 +1.0210204,.00817693,.70060562 +.78599051,3.0671883,.73489247 +.66606637,1.8540357,.96150092 +2.2154842,.387052,2.0575265 +1.3110835,.25252997,.79290264 +.42777353,1.2550294,1.08497 +1.285393,1.3965969,.46368365 +.5779004,.77327605,.51096566 +.31410008,.16418786,.73116663 +.29362502,.486411,.18165235 +.44781519,1.0621907,.61616385 +.81570713,1.7720709,.22935628 +.59243164,.75166245,1.201463 +.89008825,.90819466,.00383853 +.61042509,.87018344,.74502498 +.68542041,.11851487,.46183337 +.62196437,.56574473,.47507702 +.69915077,1.8529885,.56907348 +.67639402,.17003627,.59265654 +.25468788,.32811503,.00806405 +.55493659,.68883828,.44839887 +.46509854,.42844871,1.226036 +.48938923,.31170844,1.9425815 +.58742341,.68117102,.64632858 +.48078963,.36609365,.35615747 +.99847946,.66102065,.69760276 +1.0008061,1.5179612,.50270715 +1.0075243,.09201058,.85246543 +.2997118,1.3684951,1.0862403 +.63055664,1.2513718,.07777136 +.81411511,.00110458,.81288927 +.7188372,1.6483634,.62184891 +1.5254035,1.1670693,.03789131 +.32919365,1.4790054,.55892829 +1.1354069,.01240865,.45208981 +.71755354,.95055425,.14109303 +.85828707,.93274769,.47963545 +.90117582,.82883926,1.5602064 +.79543345,.51479295,.00853717 +.44277444,.10064441,.7223666 +1.5533009,.83904651,1.0956512 +1.0516832,.39254037,.73614743 +.83413822,.53294412,.49227185 +1.311248,.34137294,1.1917579 +.4472634,.63094487,1.1172535 +.79598029,.13955788,1.6756552 +.85278306,.95822841,1.4779065 +.53503889,1.8908573,1.6820477 +.40528885,.35509936,1.2386648 +1.2302055,.4699998,.95502637 +.90665352,.25526423,.98295582 +.8933742,.53657744,.40843186 +.88336246,.92286642,.79963482 +1.1934658,.52589761,1.0757349 +.66024306,.2945835,.37364994 +.88793134,.72892803,.99760052 +.63694776,1.2191697,.15707383 +.45074691,1.6273883,.19775074 +.7478886,.11638513,.2639001 +1.1322892,1.1037174,1.24257 +.97533903,.70015986,1.1724642 +.87905209,.6875471,1.4924227 +.90051655,.81640222,.66861579 +.5715155,.21941017,1.6759306 +.49803959,.91187296,.05597247 +.95425798,.00877936,1.1285039 +1.0449452,1.3604589,.4031856 +.96943637,.5169045,1.0316444 +.74505481,.18109863,.21499581 +2.029191,1.0373536,1.2887685 +2.0803405,.49113489,.1224396 +.92581304,.57418305,.22577945 +.52268271,1.1539178,1.2170588 +.88146398,1.6731484,.14875807 +.70119565,1.1189563,1.3061319 +.53667123,1.4140252,.56635202 +.53918906,.10023102,1.1932109 +1.2416183,1.3158041,1.2257141 +.71844221,.28280901,1.0166155 +1.2633984,.26736844,.68146958 +.64212965,.49498106,.67120087 +.50876971,1.2929585,.73936455 +.5153741,1.3677384,.13027526 +1.590537,.04241349,1.1383407 +.84274107,.71393456,.3435733 +.87589766,.82758876,.01156766 +2.5485831,.91112008,.88693687 +.68665051,.03636391,.06359425 +1.3115506,1.4292172,1.3927249 +.53123713,1.1623145,.49397772 +1.2749996,.2880957,1.7349968 +1.5821817,.60813204,.99806396 +.77961083,.40573461,.04682958 +1.1253822,.493243,.12783069 +1.1617137,.67012005,1.2278179 +1.4407162,.09785644,.37732689 +.73208454,.40211109,.294804 +.98996376,1.2799636,1.70835 +.41709561,.69740298,.59902625 +1.5674667,.82379952,1.39266 +.48734714,.19860886,1.0059565 +.44122071,.46521419,.90971615 +.64129819,.43527289,.30811124 +.62684988,.78355022,.0886955 +.64693441,1.32782,.01955892 +.59535593,.22846696,.14243455 +1.003355,1.5832926,.5036809 +.41708387,1.916637,.61838487 +.47198095,1.4032447,.8860187 +.36695231,1.8396545,.66243155 +2.0197288,.03342543,.52782062 +.6857154,.77340596,.17992294 +1.1014658,.12579619,1.0564055 +1.4897692,.37416542,1.150924 +.70505925,.50815912,.08519581 +.52437886,.15260392,.47863794 +.63711772,1.7391216,.37263023 +.39009541,.97890267,.31607648 +.76228922,.82694162,.16498162 +.93322403,1.1470418,.30293864 +.73818755,.28606764,.21854605 +1.0592089,.35754192,.9970944 +.83616422,.02424062,1.0902317 +1.4585976,.62453454,.26452784 +2.0376153,.06358049,1.1983505 +1.5411847,1.3243034,1.4826743 +.21932204,.52220882,.55785855 +.69185743,.17433654,.45314218 +.3780741,1.6827594,.08398614 +1.7761566,1.4056782,1.3291274 +1.5543689,.26499576,1.1540939 +1.673615,1.3318156,.5275339 +.7341938,.75754616,3.1506801 +.58052904,.88314435,.34331058 +.87775515,.00252876,.00516015 +.80354046,.02788932,1.0881081 +2.3949123,.01258092,.28800127 +.76474772,.06939227,.31738194 +1.1314524,.36862816,.95874247 +1.3788215,.08812908,1.5877548 +.61360377,.1534862,.52910049 +1.2307136,.63708635,.65662031 +1.9903735,.67037612,1.3477985 +2.0096389,.03289394,1.9792096 +1.040194,.6135904,.31365322 +.94575111,.6617426,.18715261 +1.0971047,.82583779,1.1743394 +.68202379,.26623853,1.0538408 +1.2879852,.63325062,1.685548 +.69363514,.67187259,.29572143 +.74637649,1.9256652,.06470406 +2.0689228,.00484618,.05532187 +.47353155,1.0455835,.76397617 +.61642346,1.0243964,.73810954 +.60041542,1.4147594,.22046679 +1.3842959,.65123705,.35822698 +.97943689,.49159814,.8781569 +1.4057824,.07480399,.96075046 +1.2138391,.25178537,.71053274 +2.6587948,.27063062,1.476548 +.50959393,.03183325,1.3939196 +.64663692,1.6086559,.65785988 +1.0743679,.1341597,.33454857 +.81192227,.09773149,1.045698 +1.2302544,.82312374,.2105131 +.88739758,.2659361,2.2846935 +.68895635,.08815154,1.2772002 +.84950428,1.1474463,1.8056507 +.41220986,.8478738,.76609451 +1.2276828,.40024823,.43805885 +.34167876,.64919517,.29571262 +1.1937412,.27507342,1.0269908 +.98609512,1.2530711,.82601653 +1.4439961,.16409666,1.4331202 +1.4265894,.04381174,.27709529 +.85009812,.55047444,.3726663 +1.1624827,.19830447,.4358019 +.88141298,.70701924,1.1359254 +1.8030605,.51920598,.48907303 +2.1573244,.31023215,.40930709 +.833057,.78093293,.11070589 +.63503715,.30256119,.58159407 +1.2380999,.64769778,.82570019 +.7658421,.80438033,.16798972 +.64264602,2.1437461,.32152262 +.37862201,1.1448052,1.141654 +2.0792637,.36862075,1.1311526 +1.9519424,.77188615,1.2701457 +.59793348,1.1805795,2.4882939 +1.1675253,.81796117,1.2396377 +.50431666,.25278977,.03380942 +1.5139807,.60488044,.5267795 +2.3399944,.40620232,.2204944 +.27648724,.20527542,.79293252 +.55608204,1.6139484,.93417146 +.56749681,.06509037,1.7841532 +2.3413846,.91336464,1.286842 +.49111822,2.2151159,1.7859369 +.72358246,.56969836,.23126384 +.84318183,1.5361691,.42507869 +1.8994018,.28242409,.27188294 +.49800349,.64461452,.99979275 +.59864477,.40088225,.09159054 +1.3934944,.46484016,.71819031 +.3137853,.35843625,.33567419 +.72278588,.82471827,.20287081 +1.0217327,.5720939,2.3912526 +.84989276,.72915217,.70686407 +.52732151,.92456388,1.0263906 +.74394476,.77844053,.47204001 +.97316503,.79557138,1.0082777 +1.4777421,1.4571258,.08589688 +.9117526,1.1104077,1.4341505 +.75034753,.36538482,.05614059 +.3692494,2.2273148,.02049272 +1.3181264,1.4982689,.17268853 +.64683387,.00390602,.00857527 +1.4117443,.30774686,.67000899 +.9687094,.30975126,1.6156004 +1.3661317,.6906521,1.7988582 +1.0792307,.14330194,1.5863228 +.86294942,1.117256,.74933646 +.45469822,.8678105,.66272447 +.92207057,.42677188,.81956864 +1.5343704,.10284736,.52164318 +2.3147197,.00185909,1.6650827 +1.9995592,.56850582,1.4210345 +.66158865,.68097305,.03002234 +1.3830422,.58870233,1.2679267 +1.2399708,.7211963,.96204453 +.82086802,.21155405,1.5897708 +1.6355763,.51971018,.69259745 +1.3668172,2.6859784,.53778645 +1.3695124,1.0492045,.07146216 +1.6760915,.19971802,1.1496996 +.52911349,.71456527,1.6257171 +1.3468999,.05604873,.61183922 +2.2320058,.32336758,1.1358515 +1.748909,.39328579,.2252482 +.75771534,.6511483,1.495584 +.82190682,.74159356,.45393588 +1.2941314,.30127099,.46060893 +.54890744,1.5083552,.07189582 +.6478812,.22402693,1.1682029 +.46827767,.8885195,1.0815723 +1.2773805,.76850519,1.0884808 +1.3726962,.32875787,.30092467 +.98850252,.56410389,1.1312203 +1.214699,.32322698,1.9109611 +.76261039,1.9128813,.35562053 +.92968057,.10295891,.9771309 +.51699526,.30719446,.78335297 +.72300943,1.2017861,1.2593576 +.77478367,.21124569,.95107564 +.40953404,2.2929885,.49302995 +.89407617,1.7795643,1.5784293 +.82267604,.29049601,.16973788 +.64245082,.11481887,.53305173 +.68481198,1.5914503,.39863198 +.38048066,.09241025,.49242327 +.68099678,.38627829,.30041128 +.69177847,2.9609587,.96070824 +1.0678442,.10629742,.33408386 +.60844084,.88455007,.5093307 +.99170581,.96715901,.22421027 +.95530592,.39545272,.77674333 +.7682911,.10082377,2.1181905 +.55338774,2.6073628,.52504416 +1.5007194,.30410078,.25305956 +.56190117,1.9715174,.53606786 +.49172138,.50580188,1.742671 +.95873533,1.2522487,.60386831 +.87526909,1.476059,.54836623 +.99324973,.35423473,.51678105 +.30072066,.30904113,.91513104 +.73339835,1.6516462,.17733246 +.42303792,.03161671,.15355585 +.63190292,2.6331919,.19272248 +.6352079,1.2856041,1.3483734 +.39498192,1.3724164,1.1292564 +1.846939,.55804161,.04003223 +.70733467,.21990442,.18754316 +.55086894,.88514622,.49360472 +2.0548052,1.3997755,1.7297464 +.59234712,1.1371243,.18086451 +.64121043,.39883673,1.0177353 +.52468016,.40250097,1.0249419 +.54059989,1.8182452,.65633535 +.60432403,.65052602,.0636631 +1.5688343,2.0483084,.39600792 +.562801,.34585794,.30369899 +.58190637,.74998177,1.173662 +1.1593814,.89930537,.38980566 +.46597558,1.719502,.83164276 +2.7064815,1.2566238,1.1095902 +.8454331,.34277456,1.1117058 +1.2600591,1.7453384,.68334767 +.30694843,.80553608,1.236518 +1.344167,.15437308,.68551113 +.950337,.36864119,1.1233126 +.6210797,.59990392,.32165523 +.65517759,1.3693878,.99479282 +.49923444,.62451216,.24422314 +1.3483409,.59158454,.82851365 +1.0928142,.76863239,1.3683272 +.64833327,.69276838,.25198577 +.48687855,.08762486,.55534079 +.86665341,.65956061,.41217809 +.65167732,.61093683,1.3167546 +.48349905,1.3165076,1.16885 +.93645938,.587195,.07747726 +.32506366,1.4037592,.44467072 +1.7438092,.93137583,1.2519418 +.71685969,.20947999,.79092869 +.99875719,1.7157947,.45992894 +.39151686,.87870144,.60629643 +.39351973,.71349625,.57063608 +.62257364,.74272939,1.4383636 +1.2190784,2.1363669,.5539528 +.90081433,.00460817,3.0562839 +.38376962,1.142702,.17662614 +.57285959,1.7641261,1.6215876 +.64901767,.51405817,1.2711688 +1.1400823,.10387318,.07082271 +.93270793,1.5073708,.08153339 +.40655959,.44399878,.35167226 +1.9875291,.91862892,.71083915 +2.0393635,.86787424,.3043433 +1.8569063,.03554428,.86464565 +1.7623787,.50807988,1.537282 +1.1267215,.81914616,.04151408 +1.0393748,.49968469,.00851272 +.68633399,.97156066,.66021609 +.82344535,.85859163,.51311225 +.45935116,.74427853,1.5053981 +.73821694,.25534783,.91831912 +1.0216252,.61240207,.49580075 +1.2085485,.99259879,1.2260246 +1.516003,.81595439,.75248317 +1.1266969,.68990708,.71989962 +1.3138244,.01026354,1.31494 +2.2510802,.30263447,.17212534 +1.3592968,1.6584683,.33789702 +1.2217107,.54238021,.19009802 +2.7134437,.19271907,1.2948621 +1.0160346,.30702549,.20456083 +1.0705668,.18244817,.31017885 +1.0436983,.1292583,.8564444 +.85749304,1.1091098,.82024733 +.9202215,.51678741,.58403393 +.84451859,.67789275,.24441685 +.40300075,2.0025383,.8905814 +1.4546027,.1368294,.10668461 +1.0138851,1.1817147,1.7061326 +.65364349,1.0067274,1.2022762 +.92506612,.13907515,1.2272555 +.47062764,1.2741266,.18743773 +.48431374,.97216022,.77450598 +.89555687,1.8941321,1.3592442 +.48385894,.59341957,.12764881 +.40187201,1.5376405,.28665143 +1.0804875,.31012146,1.0046177 +.85381294,.87592176,.86460383 +1.3938853,.80895287,1.2462153 +.54420174,1.3670841,1.5425068 +.46110301,1.2753861,.79958355 +1.285604,1.4020325,.72311691 +.75067689,.52611748,.89972014 +1.5883703,1.2809138,1.5180174 +1.120083,1.2839816,.15408031 +.43599287,1.4497001,1.9728611 +2.3607584,.00179689,1.0052755 +.57821915,.38653261,.16324203 +.43339712,.11306418,.46396703 +.80389746,2.160963,.36711591 +.2826242,1.7691503,1.042522 +1.0010205,.02189996,.07022599 +.70439423,.35765219,1.3451255 +1.0889644,1.4449901,.31443333 +.87119872,.38701871,.91384518 +.56127298,1.1385375,.11133737 +.39423553,.97020546,1.3471023 +1.1679586,.10533124,.06641273 +.82039289,.06757421,.24293142 +.68506978,.04043844,.38376434 +1.0246225,1.2492029,1.9889724 +.57469644,.39407662,1.1020974 +1.0590677,.6075984,1.3106826 +.56809222,.91512245,1.0749058 +1.6153384,.55633294,1.9644559 +1.3442991,.55182875,1.0598835 +.65283634,.34334532,1.5589305 +.42730591,.90148239,.21746758 +1.0855758,.02982246,2.282134 +.50435565,.81095325,.28824378 +.44523495,.05207989,.73298672 +.55143777,.28323044,.79817607 +.7387473,.4622329,.02762745 +.90180727,.49072315,.84782827 +.95396874,.76613409,.49923466 +.60093148,.73417061,.16847923 +1.1493699,1.5940341,.6256235 +.76694136,.8548142,.5620482 +.89412755,.54278167,.88975964 +.47414106,.42766491,1.1065302 +.20307596,.94437007,.029097 +.41623506,1.6632204,2.0426244 +1.4102151,.30332034,1.4475864 +1.0100245,.51130558,.78468786 +.70461204,.028436,.49202164 +.60529308,1.2090909,.10538388 +.49198111,3.1035713,.01622831 +.30085982,1.2212211,.6604873 +1.1409819,1.6156706,.24321025 +.81539199,1.332482,.3429855 +.61227193,.03246685,1.2805247 +1.8357838,.57370849,1.3878231 +.53771767,.58811943,.33753937 +.69687454,.85277405,.07419995 +1.4013865,.93645306,.55223528 +.81252391,.59534859,.78418357 +.8086831,.06067919,1.4125986 +.59896992,.3988686,.40412208 +.55284227,.49595926,.81592482 +.50929179,.54276557,.4345099 +.71707459,.68294439,.49354324 +1.4629514,.44288633,2.2228466 +.71840802,.10376125,.29179242 +.32693142,.95897218,.0259875 +.9013057,.8795036,1.144873 +.51222818,2.4524496,1.0816049 +2.1406668,.70600863,.68073335 +.47289677,1.9842243,.48218482 +1.5640021,.97482472,.27848825 +.42762651,.08379042,.684777 +.77650432,2.535576,.88879638 +1.1454141,.86717782,1.7233643 +2.2186178,.20586605,.42674318 +.76658627,.59757349,1.5542298 +.36194505,2.3483218,1.7992443 +.54619954,.84221323,.15197689 +2.3861606,.35700537,.14873727 +.98186254,.58242152,1.2038135 +1.1956807,1.502439,.97992637 +1.4382057,1.564624,1.081083 +.62339753,1.916611,1.1263087 +1.8170537,.04199381,.6788282 +2.3254662,1.1796021,.04049916 +1.3606141,.09808365,1.864327 +.55617381,1.9035699,.6910411 +.51327593,.66983671,.53394106 +1.0401817,2.6733457,.9120506 +1.0958425,1.0912092,.48636056 +.85465632,.0470197,.07321444 +1.38999,.99559567,.44470931 +.90990065,1.6653157,2.0345446 +.68829942,1.141201,1.0995515 +.74295127,1.9340505,.49119004 +1.3922157,1.0497973,1.2084639 +.49485652,.38761986,.10893134 +.39746496,1.1200243,.03100065 +.66944874,.51888088,1.3992022 +1.0522701,.05549937,1.1324259 +1.4110166,1.961611,.99060791 +.65828375,1.0784351,1.5779913 +.75841222,.57612726,.68317393 +.92854943,.64552288,1.0134719 +1.6155181,.59212703,1.4072525 +1.0074144,.54359785,.04024842 +1.4618234,.0811577,.31010507 +1.8466397,.26423662,.93618696 +.5373117,.51450927,.62101183 +.49114659,2.3287809,.70208884 +.27317587,.03580597,1.6000059 +.92133399,2.1122602,2.7765222 +.80412706,.52812616,1.8657008 +.71076351,.66406651,.48405545 +.8036214,.63647145,.30162506 +1.1390704,1.4635237,1.6374403 +.24124973,1.6133636,.41009214 +1.5737169,1.2385161,1.1690148 +2.366065,.13369554,.04384226 +1.4083302,1.7223985,1.2947046 +2.1064722,.08183587,1.996157 +.86317013,.64932099,.85457242 +.70356477,.53512009,1.9505461 +.97337006,.31523418,.08351452 +.90467962,.50072073,.71991013 +.60070091,.6741358,.23024367 +.50225618,.83214875,.42062706 +.88799322,.23306631,1.5579528 +1.2559667,1.1666567,.7584229 +.85093446,.68121449,.56691685 +1.1366896,.2741995,1.179697 +1.2829736,.42635261,.96186636 +.9329628,1.2047545,.06684419 +1.3902978,.75980812,1.5576641 +1.6886265,.53978954,2.3449862 +.70000569,.2715711,.24927771 +.7200526,1.3751039,.11620263 +.68479271,1.2882025,.169566 +.28482059,1.2270733,.13245547 +.98095411,.22296276,1.0933974 +1.1432139,.69682643,1.6413278 +.5951192,1.2492011,.20436357 +1.4283328,.08386008,.80557023 +1.3532335,2.1888235,1.1433764 +1.0440218,.0253253,.22439692 +.58435498,.49895425,.41673453 +1.5271364,.86704893,.28005903 +.71000591,1.1472851,2.7980093 +.15239206,1.6916666,.22499613 +.45733126,1.424048,1.2954698 +.53119861,.91763481,1.0982312 +.8433712,.03288397,.35014774 +.72297228,1.5006263,.47334487 +.75842406,.33862516,1.4850888 +.79216023,.84727743,.02804734 +1.188678,.8670646,.03134457 +.79174044,.1499512,1.0043355 +1.7292017,.58430734,1.0091648 +.6247605,.51492754,1.3150294 +1.1384411,.72216072,.00794403 +1.0841548,.9946691,.11407215 +1.9180279,.41507537,1.357478 +1.3106292,.73653575,1.2087327 +.7485907,.45673826,.77896784 +1.1728327,.32382826,.47379213 +.58269693,1.9398911,.93882251 +.74828108,.21939534,.35614074 +2.0892581,.37763643,.737758 +.58920584,1.2377256,.9365423 +.60412296,.3774581,1.1193776 +.60616194,.08006534,.8359197 +.76597599,.36646062,.39358258 +1.0592587,.84768193,.52613967 +.38510147,.50655404,1.4931697 +.99030829,1.1922023,1.0849993 +1.3954745,.12024869,.28862423 +1.158878,.27465799,.67766524 +.61472884,.83186149,.01873247 +.67739861,1.7195582,1.0650347 +.93370987,1.1005034,.5114228 +.57566466,1.6169886,.65872024 +1.8529439,1.2962203,.10972976 +.72020926,.95294985,.73686315 +.70252494,.01758465,.38395839 +1.1101584,.75189069,.93916066 +.74354628,1.3988908,1.345107 +.39769139,3.2713628,1.2325037 +.4817079,.76496558,.67600269 +.64138909,.56870501,.10258211 +.75407978,.86162545,1.9793769 +.40067205,1.1895564,.67284841 +.51198113,.39348141,.76138466 +.75918823,.22022349,.10064274 +1.3544241,.70328631,1.0897122 +.78336577,.22422764,.73484173 +.26687401,.58675398,2.2454247 +.82782179,.78692512,.31807554 +.52390329,.48071843,.69781714 +.67616016,.57853642,.44206918 +.80387956,.89888446,.58105432 +.57794184,1.1487179,.76667631 +.97361233,.05757012,.06810214 +.89409534,.05302409,.79167156 +.75569766,.10528715,.76082646 +1.7145451,.50372566,.55855176 +.90890775,1.5121721,.77568938 +.7403956,.88226679,.54975083 +.67313255,1.1370385,.3089207 +.39546414,.46176542,1.3206292 +.46894597,1.1084044,1.2126839 +1.16989,.72078281,.75294093 +.44463203,1.3951953,.28191242 +.55966932,2.0055103,.66277613 +.56202432,.6297669,.62075099 +.39439102,.91542901,.01638563 +1.0939705,.20611659,.43981011 +.5568887,1.0318563,.78307752 +.63366786,1.9085454,1.8790047 +.3782294,.291046,1.6411389 +.96452373,1.6984234,.81996993 +.28065512,.92131981,.59000719 +.33127409,1.3598437,.20430235 +.22293971,1.2563412,.69491858 +.90160942,.19743594,.6254257 +.32384229,.89320575,.10230177 +.65086879,.32422403,.9999379 +.34850167,1.0982032,.40147956 +.66038346,1.9568176,1.4259727 +.37488948,2.5467024,.49087362 +.58406134,.33344548,1.6281223 +.57953688,.17089081,1.1374645 +.6046859,.38394027,.62225685 +.70125552,.13105367,1.4147242 +1.8109933,.01075264,.64663027 +1.2302054,.7908917,.87925755 +.79721827,.83617039,1.4503088 +1.8283059,.36570564,.59963293 +1.0507948,1.268339,.71810266 +2.0090423,.06740209,1.4180546 +1.0495246,.0911778,1.2016743 +.74838395,.63976481,.85140833 +2.2586572,.17210436,1.3526361 +.95920135,.47521853,.76160972 +.55423241,.93321892,.59239649 +1.3939524,1.1208041,.90792415 +.88916166,.71977866,.21515861 +2.82606,.01249201,1.3037606 +1.4219849,.58988709,1.7026135 +1.1951103,1.31716,1.5083945 +1.3276806,.56284988,.48131432 +1.6603902,.2499731,.59904558 +.91407154,1.2329018,.43744859 +.57003966,1.0592323,.98408519 +1.4381675,1.283266,.71396815 +.73176592,1.7599606,1.5510085 +1.6600823,.23675605,2.5758005 +.6021889,.03837003,.67218936 +1.21027,1.6903297,.18330881 +.31947039,1.4009486,.26188075 +.76272105,1.264808,1.7071129 +.91644266,1.5057675,1.4228272 +2.025495,.974943,1.468394 +.89289351,.41912367,1.3320199 +.39808021,.06178862,.90035122 +1.0637556,2.3838348,1.3881689 +.17580462,.60286429,.93540741 +.34366641,1.9790815,1.530713 +.66783227,.3173791,.49227668 +1.3982142,.39526586,2.1725626 +.23509579,1.408854,.38454029 +.68056654,.13072693,.51176356 +.64598908,.34772408,.79344036 +2.0089726,.23053515,2.4741618 +1.0643908,.4519429,1.3325977 +1.0289534,.21956902,2.075271 +.68067729,.4759908,.55112653 +.94836939,.59563112,.38645606 +1.3842924,.35793446,1.0334875 +.87553658,.06894943,.82120562 +1.0726344,.36124168,.01066063 +1.1861731,.0052043,2.1089196 +1.2249803,2.2051079,1.6756195 +.57994703,1.2175436,.58671105 +.38903849,.33162,.39333309 +1.0003138,.171083,.32162819 +.60666293,2.6205176,1.4852225 +1.2992296,.79668659,.8993249 +.64013401,1.2057048,1.3537457 +.73262633,.30453092,.34159925 +1.0538098,.20464068,.36470044 +1.4245334,1.4900701,.96275377 +1.3908898,.36638002,.34142565 +.48954096,1.8345617,.97425889 +.65323602,.17287392,1.5905157 +.49207002,1.4217401,1.1449072 +.60403117,.44014521,.84050887 +1.4299627,.64887436,.26786705 +1.4146173,.15169646,.83169415 +.50057001,1.3121853,.4684147 +.86707015,.99388135,1.6536113 +.96271661,1.4034922,1.1430164 +1.2474666,.15642866,2.551381 +.49963993,1.4449441,.93367677 +1.2099657,1.9586684,.10009044 +.66155189,.34800546,1.4764844 +1.4872473,1.3205784,1.2191981 +.83719791,.33820149,.51062833 +.9629063,.9760502,.11949972 +.92475621,.43346835,.3519256 +.39813217,.60086301,.83541855 +.62768382,1.0500079,.24887646 +.5681254,.2116341,2.0916693 +1.0847746,.58339466,.37533737 +.85227863,.97697922,1.332934 +1.2717235,.53623978,2.3900774 +2.3413978,.10325407,.71494447 +.26934799,1.9704575,.6048852 +.99571809,.46271328,.05536665 +1.3529047,.13147278,.44724056 +.25050415,.54688263,.17528086 +1.238899,.61157172,.16133131 +.61268979,1.5320154,.46328588 +1.5618278,.13931745,1.0675461 +.90500617,1.3597396,.07978987 +.38774784,.98000731,.3081501 +.43998721,1.2114324,.33567752 +1.3365999,.86985361,.89091249 +1.6663776,.82702168,.60418611 +.60485727,.21271634,.44575716 +1.3889134,.56122994,.70172949 +.65816044,2.0420318,1.0810807 +.52190134,2.0013453,1.7832705 +.49693871,.11028703,.96945793 +.43059941,.99945461,.31964251 +.61498537,2.1295717,.29670495 +.77846575,.35697989,.7417125 +.66526515,.09587004,.06772414 +.6427482,1.2947706,.31548696 +.92873711,.14258377,.86442916 +.70613863,.03740884,.37779763 +.72398415,.78749129,.38483035 +1.1997943,.50191939,1.2923428 +1.6733687,.61526872,.20408219 +.77463616,.30705736,.08494393 +.45396938,.97506541,.06652191 +.43053456,1.1059428,1.5698093 +2.2331152,.6115271,1.222229 +.74504106,2.8545788,.57122864 +.4119466,.93183175,.60338706 +.53843786,1.6952149,.86504677 +1.2835694,.90246274,.16972201 +.56061512,1.6532551,.78234102 +.75585853,.60621669,.97792802 +.8011542,.34094347,.12573751 +1.4321521,.27490979,2.1604921 +.3016044,.3550662,.63578991 +.65006417,.46404923,1.2594376 +1.0479451,.55017309,1.1562771 +.69347852,.39546815,.06711659 +.99795163,1.5147693,2.6140741 +.60796899,.01694168,.44549443 +1.9092592,1.034501,.38596947 +.63572387,.40730437,.02106332 +.23734411,1.2058876,1.0685014 +.70603023,.8665414,1.83758 +1.8562174,.61055697,1.5109528 +1.2811798,1.2117273,.79832701 +1.1182022,2.0728089,1.4388238 +.76537781,1.6431946,.1914692 +.92561473,1.6616981,1.1372606 +2.0104825,1.1005634,.71802946 +1.1603113,1.0720361,.81459224 +2.1427387,.57646773,.50003495 +1.6559673,.63316064,.38409943 +.85986022,.47273381,1.2625765 +1.1807283,1.0148214,2.0584845 +.64210669,.4920773,1.3849367 +1.1382467,.54530332,.60800001 +.78845604,1.5864476,.13423782 +1.6751428,.74004544,.87166486 +1.3094919,.11775726,.18277926 +2.197135,.37716097,.66520613 +1.7801067,.11524299,.60900821 +.55245718,1.0491735,1.1803693 +.91229041,.42852574,.76004737 +1.1461515,.91438168,.02209308 +.90798273,.3302759,1.9812365 +.73091386,.57105323,.67961458 +.90568623,.69058258,2.0776796 +.5831343,1.3444736,.61546883 +.33933927,1.6739858,1.5453548 +.4808136,.72779652,.67687343 +.79871009,.39620501,.88459467 +1.1866528,1.4055474,1.0845702 +.27934487,.68982903,.25779352 +.82896161,.89474659,1.0828071 +.94489597,.26632218,.31463189 +.68184486,1.9619549,.47718381 +.4267381,1.5433804,.30095997 +.51206171,1.2496923,.84924266 +.9979615,1.6480125,1.775423 +1.2638306,.59667019,1.3162343 +.62447983,.85017105,.94466415 +1.2678445,.69289049,.30156918 +1.1696169,1.2479942,.12669288 +.51370846,.54121159,.78333054 +.67534936,.02653352,.43539603 +.86388572,.39990732,.20247496 +.30808211,1.0415767,1.218024 +1.6332771,.24992537,.37431037 +.88151286,1.1647282,.94478616 +1.0593849,.70064994,.51221555 +.66139648,.59259237,.82904991 +1.0666651,.38624583,1.0643519 +1.7135704,.16854722,2.2347043 +.68231624,.6537369,.63322019 +1.7354479,.55374764,.92110054 +.62254302,.14138772,.21177962 +.8311213,.0806079,1.8679088 +.3500302,1.2373886,1.1115859 +.5890803,1.7935778,.18330079 +.78890798,1.2823008,2.1054196 +.73300227,.28230582,.46606635 +.49378434,1.4710274,.49148941 +.74916907,.15319233,.24606587 +.98169857,1.8960899,.15662613 +1.4675528,.43152903,.71053336 +1.1601229,1.1954499,1.9828227 +.83888434,.24598243,1.6219235 +.70961757,.55227556,.30954326 +.42593485,1.8056342,.43876675 +.71355751,2.0289865,.35196648 +1.4386885,.03130686,.35650879 +.57134821,.97650275,.16551811 +.55574789,2.2456273,1.0608184 +1.1582548,.83268069,1.1376341 +.85245352,.5263931,.83493287 +1.1568794,1.2580266,.49268258 +1.1028524,1.7294978,.64212295 +.76054616,.88306466,1.5594187 +.91042949,.10655994,.46303418 +.48107339,.20290157,.61593204 +1.8059419,1.1023664,1.0684658 +1.5410838,.30217035,1.5508731 +.57033373,.1925254,.76529246 +.27780957,1.2753701,.89433635 +3.00549,.57834152,1.0075457 +.96263326,1.2834901,.42905661 +1.2893501,.62132896,.33329561 +1.3056393,.399479,.69087378 +.74267738,.69608245,.05409343 +.60099038,.69411209,1.326682 +.41554384,.30613809,.42039685 +.51294812,.61423539,.04331359 +1.2739299,1.1569301,.10768129 +2.1039857,.63824096,1.3555502 +1.6164357,.45291566,.85822916 +.35704304,1.1241036,.02880513 +.70927532,.39520085,1.2990059 +.95874669,.41903156,.1433098 +.83452518,.87364861,1.3044679 +1.8134325,.59907779,.19300289 +.69323709,.04027587,.31140583 +1.1985215,.98132978,1.9074503 +.33950099,.45349055,.83104716 +.97301665,.56161643,1.5081789 +2.4724856,.02895582,1.3547371 +.77025771,1.9364464,.05244906 +.52854583,1.9107057,1.552277 +.32222159,1.5264816,1.2943688 +.61280953,.41943708,.7115298 +1.3534586,.17838,1.2504005 +.97340629,.47278549,.13423334 +.58709661,.96318619,.31321372 +.38889159,.56808927,.49577218 +.58593453,.75368551,1.5765644 +.55796916,1.7814586,.19536447 +1.180546,1.358843,.8010922 +.73551946,1.3538087,.0027829 +1.0462647,.0763364,.00247126 +1.3424061,.63864659,.77387302 +1.6658926,.83469303,2.2431393 +.41383584,2.1336378,.48885902 +.77291981,1.5668634,1.0791143 +1.2644127,1.7801156,.44604267 +1.130296,1.6610216,.12423289 +1.5782184,1.0755201,.37349891 +.69045351,.81915138,.79680224 +1.3234326,.91476975,.06664601 +1.1811957,1.4062487,.80700548 +2.0083996,.17680456,.98709018 +.46261696,.23175221,.01067474 +3.2127678,.03815668,1.6442301 +.36154689,.43831572,.7997916 +.77318022,.65490862,.25826721 +.49402372,.87702055,.71763448 +.85890614,.84044133,.26689859 +.32058587,.55139731,.45398535 +.34571254,.99026385,1.0475011 +.74678232,.22115203,2.3098165 +1.0151751,.06341864,.32729785 +.61651794,2.3787309,1.475657 +.49562917,.93974816,1.4108631 +1.3356005,.20363679,.27830766 +.59396752,.70846675,.16877866 +.3812696,1.2311064,.98706525 +.7961259,.39139488,.28677761 +.49446456,1.4522729,.51819267 +.74246561,1.0921163,.31163861 +2.2165121,.04991997,.72154991 +.69703427,.48505247,1.1704594 +.95819057,1.5374716,2.108645 +.89084883,1.0631979,.03026477 +2.1420193,.54686213,.97881125 +.80636384,1.2734467,.19942664 +.43715564,1.9879804,1.2810791 +.81918925,1.7718449,1.0727397 +2.3881572,.58062353,1.0314589 +1.2802522,.19724566,.34145129 +2.5635817,.3001366,1.1462 +1.4698295,.25279748,1.65112 +.53638941,2.2411653,1.2576299 +.71792896,.43117922,.58988346 +1.5124346,.11807219,1.7203358 +.99940132,.18038483,.20770982 +.73272069,.12592947,.71174084 +.79907607,.79184634,.73311728 +.47673262,.17241095,.91580285 +1.1176774,1.186681,.33853762 +1.1905432,.39687587,.56938473 +.49489934,1.7603571,.05701126 +.29948069,.10145817,1.8926449 +.39503618,1.2624655,.5627933 +1.018491,.7014736,1.4214349 +.37996467,1.3340885,.44796948 +.85819812,.11754899,.87865455 +.48786722,1.2759038,.14412977 +.57256297,1.1735409,1.1233535 +.64181066,.9533652,.17521673 +.47876689,1.7447083,.34667789 +.78947241,.2690254,1.6149697 +1.2981901,1.8389263,1.1241515 +1.1684545,.56963495,.74975836 +.8162634,.26228191,.07541883 +.76050214,.35250969,.43034019 +1.2110207,.12144527,.38828691 +.8189342,.64371878,.19242193 +2.1392407,.57068978,1.6196776 +1.0438889,.61687955,2.0027391 +.37194142,1.2001685,.99395018 +.69397534,1.4709095,1.0747343 +.8251957,.37037295,.60370076 +.95597102,.32521025,1.0606158 +.43414411,.73389616,.40278764 +.6366567,.70933273,.01029542 +.94071067,.97799153,.44085062 +.45655949,1.4993825,.14420609 +1.3108294,.14982335,.37299666 +1.5126028,.4728019,.02205374 +1.0156078,.01802836,.81549886 +1.3933891,.35135716,1.8881986 +.7815482,1.9677501,1.6335496 +1.0835647,2.5644846,.39357417 +.69450173,1.5198883,.6581693 +1.2579033,1.1070315,.65697463 +.83083758,.11554653,.70688125 +.88515456,.21003025,.73531701 +1.0626662,.66339281,2.2121608 +.5955884,1.3007144,.74706035 +1.2891866,2.0588024,.64517473 +.98950012,.36487508,.71802113 +.75328972,.70824441,.64873948 +2.4073954,.12081852,.5980511 +.65482921,1.0175917,.20561216 +.33938064,1.5448029,.3564181 +.38120751,.9242529,1.5141572 +1.3786898,1.0823727,.5589945 +.83199067,.16296849,1.468476 +.45540209,1.232065,.13812347 +.52911894,1.926251,1.5537233 +.75613914,.82682701,.40303162 +2.2900812,.63267629,.31011785 +1.4381623,.81561091,1.2540186 +.48639651,1.3149319,.13599555 +1.4930993,.7244617,.42779243 +2.5564394,.77089142,2.2402364 +.51471031,1.5849225,1.1812324 +.68840302,.36735317,.16775796 +1.2112467,.45749895,.97937825 +3.093497,.00167555,.12422739 +.36455829,1.1310177,1.0520602 +.89080254,.0478734,.12692745 +2.1345939,1.3486337,1.1158652 +.68424933,.69113573,.08128289 +.3444974,1.8328554,2.4480017 +.98530841,.21024307,1.0141664 +.60594588,.11365192,.07844584 +1.0503623,.39532085,1.5881183 +1.2574289,.33663949,.24943238 +1.0250117,.43227627,1.9741216 +.99835203,1.0598147,1.7250955 +.74527216,1.339417,1.0991679 +.9293462,.40476479,.49120653 +.69841573,.75592423,.37743795 +.36510873,.39280777,.97821077 +.44366857,.07253968,.98614253 +1.0140254,.36188721,.24835741 +.80207481,.3323373,.57627752 +.42384584,.25347371,.82307185 +.68005568,.86277359,.54093145 +.55733933,1.2176327,.68112211 +1.0668569,.49934117,1.774552 +1.5273058,.11670191,.68777555 +.67735302,1.5431223,.33949922 +.45983512,.12933299,.19174818 +1.194703,.14471314,.12103141 +1.2380064,.73060994,1.4852383 +1.9082972,.3147343,2.3101635 +1.7013115,.3672357,.08910496 +1.2064599,.56047586,.08725885 +.81492724,1.2551853,3.342375 +.33696963,.40031732,.7770036 +.978779,2.0050065,.77576939 +.29988189,1.2521116,.70388504 +2.6541147,.85876396,.52726388 +.42948635,1.1639745,1.0606523 +.36737023,1.195938,.78064257 +.63907693,.40777424,.2333809 +1.5705094,1.2726781,2.166634 +.68032425,2.4346416,.42562326 +1.4068582,.14662321,.26243696 +.3832098,.61228082,.41282049 +.62023221,1.9301583,.41630128 +.39161208,1.2714891,1.0599786 +.82674274,.81849343,2.1796064 +.68455867,.20140821,1.0918722 +1.4201948,.23525843,.71716593 +.62924938,1.1478951,.56995566 +3.7666209,1.023402,.05327859 +.38735614,.80528845,.15496094 +.694191,.75072351,.11974751 +1.2404519,.56700926,.96671616 +.47319969,.80427614,1.5252726 +1.0244073,.24746335,.12835618 +.52412434,1.2490967,1.3491557 +.96733608,.40441173,.94624853 +1.3504313,.54704514,1.2142914 +1.3468585,.6781862,1.6206108 +.46011646,1.3640501,.46605905 +.96080783,.65544316,.23797222 +1.7202995,1.8721278,1.60322 +.49663613,.47382675,1.1867186 +.64474784,.81620632,1.1602948 +1.2339543,.9546428,.34535347 +.73317039,1.585891,.1038887 +1.2919615,.68811641,.42310298 +.74289697,.87563,1.2097565 +.83833716,.98315263,.56542511 +1.3175078,.43323469,.11761065 +.37181947,2.619053,1.6941129 +.38330274,1.9940938,1.7180173 +.77474871,.81677571,1.321452 +1.3745048,1.5334579,1.4893726 +1.219878,.37593676,.17239525 +1.0700791,.79336807,1.4077117 +.69827342,.26392401,.44766809 +.67546681,.65406576,1.9547489 +.6101231,2.3645181,.7348111 +.781957,.1587776,.92271154 +.99028741,.2356846,.43690867 +.73402518,.64325458,.15586901 +1.2975698,1.2649624,1.0643282 +1.171914,.80567897,1.7637011 +1.4630466,.25343971,.7117168 +1.7584593,.52234447,.81678962 +.54941745,1.0813781,1.2718772 +1.1107892,.62933604,1.2113907 +.30102643,.06900357,.85700606 +.48598092,.00417844,.63727894 +.44130764,2.126473,.29117924 +.55649343,.83675304,.31744708 +.48131816,.21814687,.25175648 +1.0762867,.37917795,.39916798 +.75751723,.4462959,.30511094 +.50794848,1.0241652,.27108676 +.74003336,.32191847,.21035948 +.87504492,.91869379,.27930598 +.82299784,1.3285826,.00174876 +.34293683,1.8250234,.48024091 +1.2111867,.56693703,2.6452309 +.54095333,.96703249,.51053853 +.35425437,1.1562738,.15181915 +2.2054174,2.4194657,.55386291 +.58840214,.20347204,.86849588 +.63454735,.14438209,1.2514916 +.9974041,1.9328,.00130595 +2.2633729,1.3083448,1.9501358 +.41604741,.05239068,1.0080957 +.66391552,.71228832,.43419517 +1.0693274,.33808625,.91086995 +1.8286338,.15055492,.31296067 +1.3507736,.26002034,.72699618 +.25546296,.7533647,.98594529 +1.3214354,.47438409,.45680154 +1.7078424,.19654409,1.6879829 +.71778508,.90014271,.24713409 +.79896017,.28677101,1.6037703 +.5847365,.66449751,.00570305 +.96144013,.27792171,.30957834 +.98982153,.33233564,.99922298 +.46204776,.14122517,.9786252 +.74785596,1.0031145,1.7654507 +.7074285,1.5166983,.46604165 +.67458619,.12400287,.76781333 +.5570223,.58325812,.62245047 +.57269008,1.1034938,1.8212712 +.65330079,.45373154,.76476799 +1.538727,1.7529423,1.2482968 +.31893807,.74067182,.78710032 +.53799682,1.8191372,.50332313 +.73579327,2.0017378,1.1408823 +.77688976,1.1122507,1.7156779 +1.0254536,1.0373544,.78018318 +.68311867,1.4747345,.8559661 +.37760099,.35317324,.90174863 +.59838329,1.5986858,1.1839831 +.41396633,1.4733892,.12530042 +1.1558811,.905064,.07773478 +.63338732,.61614938,.81351859 +1.026439,1.0768889,.26858402 +1.0354928,.98059488,1.6124313 +.92397358,2.7238216,.08905121 +1.25976,.78338228,.52640134 +.70366278,.8087035,.86707281 +1.0236727,1.032258,.6490859 +1.5016506,.46184111,.7402015 +1.1195069,.59035465,.8734875 +.70519669,1.813898,1.0107834 +.98019345,1.1836724,.68809336 +.78457608,.51938406,.46827106 +.82738393,.05763534,.70903228 +.50455224,2.5044478,.97920884 +1.3707304,.65686433,1.7436064 +.36250152,2.1056687,.36745433 +.54810078,1.3326658,.15521582 +.68831061,1.2878422,1.4529434 +1.0225745,.63431867,2.6201798 +1.4756278,1.9113832,1.3255579 +.54304028,.89349197,.95732903 +.64204417,1.605874,.3967655 +.7813832,.25824743,.55560182 +.65283411,1.2851354,.17682915 +1.3007181,.57681789,.9623603 +.76358628,1.158044,1.2201108 +.60886814,.0597319,.89617841 +.65407636,.30477503,.89398757 +.40772798,.06635954,.09943991 +.90935849,1.3936873,.81836675 +.50699571,2.4818856,.91378366 +.77275873,.03695101,1.4314854 +.50105958,1.3315607,1.2282288 +.21801177,1.5469055,.38181296 +1.043242,.86172019,.02351863 +.66486826,.33305454,.08261585 +1.0511477,.63662428,1.8049792 +.60165387,.74994765,1.4458668 +.84699945,1.2253476,1.4965752 +1.1652405,.7618516,1.8164161 +1.0305469,1.2543857,.28629338 +.79735615,.93265862,.09332711 +.9474132,1.9667846,.30829694 +.42905205,1.3481153,.59196835 +1.2183792,.48046258,.32459306 +1.4773409,.42361824,.45406042 +1.6839233,1.9361379,1.3010687 +.61801819,.22553938,.90718554 +.72372456,.02777275,.25294719 +.55625776,2.0818246,2.3739018 +.24173936,1.1140782,.40532661 +.7347087,.64510251,.57747095 +.44476684,1.1396368,1.4487642 +.37931497,1.1499338,.38806108 +.43758422,.78837656,.04344433 +.8686045,1.1500525,.50834788 +1.0151438,.10318273,.11290218 +.62303436,1.2031838,1.4010875 +.63687277,.62859365,.39890127 +.68230157,.4720012,2.9759523 +.93885541,.11754361,.61210185 +.4035043,1.1931506,.77444887 +.26778037,.67132149,.94498792 +1.5630203,.26832744,1.2388924 +1.4938619,.84553302,1.3328568 +1.9662839,.27865598,1.8107599 +1.233251,.10124417,1.8035441 +.98801519,.84715356,1.995069 +1.2406369,1.2327624,.321283 +1.5778294,.13526311,.87456697 +.46936298,2.4311216,1.4487833 +2.2888687,.43076704,.65043946 +.42584462,1.0002415,.59289745 +1.0635758,.68799861,1.0704024 +1.2282721,.56515642,2.1677972 +2.1761717,.6135596,.85288758 +1.2369625,.06609289,1.9912364 +1.767918,.77924352,1.2232675 +.81072912,.52947824,.90185857 +.44587921,1.4200654,.11656903 +.92621341,.53974637,.34927581 +.87937718,.10672611,.67034471 +1.5061959,.98839163,.95690334 +.56568835,.10921941,.7001167 +2.2161617,.54729396,.25325258 +.34257318,2.4041074,.44974632 +.97864692,.31618541,1.8839904 +.41704678,1.8952982,.21013848 +1.0092527,.79789652,.6989297 +.84095588,.66785923,.29763465 +.88500333,.3198325,.36478328 +.55781435,.86182031,1.1915245 +.54163184,.20903029,1.8827593 +.69228345,1.0996187,1.5023013 +1.0756414,1.077243,1.2189259 +.86233088,.98318606,.30530457 +.71930964,.37381028,.59830437 +.78235125,.82101766,.46581179 +2.2280707,.23501917,1.094858 +.84313188,2.4937483,.98358293 +2.7096177,.66301178,1.0692146 +.38339912,.78711211,.7468994 +.4147965,.98093473,.61844971 +.66248153,.73294586,.71249528 +.77941307,.15112884,.88486214 +1.4578992,.03904736,.9045132 +.51279247,.90575972,.68012245 +1.6178154,.13993742,1.1069297 +.29774949,.62280026,1.1734022 +.82936568,.5637234,.75627205 +.71870626,.6061096,1.0593767 +1.2716006,1.3805406,1.9924243 +1.5719628,.39783918,.83313117 +.32517049,1.855143,.3952861 +.7966082,.5086156,.67151867 +.67042332,.42131535,.71811373 +.64881366,.93377583,.19169152 +.53227332,.18580785,1.6656729 +.82958782,.21811516,.84647948 +1.2850814,.16381164,1.1565101 +1.2243556,1.1877342,.76799764 +.48349298,.74168259,1.2703553 +.66826902,.28607691,.00409892 +.23545973,2.7399197,.06727716 +1.2718906,.47818021,1.7289223 +.63342648,.32687598,.06689434 +.62889059,.92604479,.32218124 +1.0243076,.28275078,.92380612 +.48901014,.8517228,1.4960422 +.58614574,.14816397,.49528926 +.45609656,.87336167,.61679147 +1.4175559,.6233222,.91127648 +.82121089,1.1330002,.42019859 +.86042867,.15105451,1.4459891 +.61888764,1.59138,.6375023 +1.7556422,.70127805,.52284859 +1.4596161,.76330493,.67110239 +.65889316,.24441142,.50646518 +.68181689,.07993999,1.6328186 +.47951369,1.3714385,.29317359 +.54353482,1.0432557,1.5849423 +.66821115,.18761334,.05120767 +.60368702,.89449145,1.2555936 +.80567208,.04223844,1.2819486 +.89696315,.34148311,1.1690345 +.45102497,1.8229985,1.3368334 +1.5223754,.22954415,.60016175 +.8544923,1.0088829,.28518732 +.83197785,.73083851,2.037483 +.42199343,.63389294,.08158522 +.6152638,1.5246324,.1275581 +.93801798,.58911772,.1989823 +.59140238,.46088927,.40370557 +.33142606,.92740329,.03897414 +1.1345851,.42105176,.50546653 +.77786018,1.2429577,2.430391 +.52429336,.5344636,.30943299 +1.4357454,.69273493,.39357802 +.80804463,.48915583,.36943353 +.68054387,.31520876,.06630518 +1.9169559,.10136141,1.9505434 +3.8610636,.76516713,.53531987 +.64253949,.66006484,.53684195 +.42450286,1.182226,.34339686 +.29439616,3.2273624,.5934392 +.5506331,.4259656,.81502406 +.90281563,.51837412,.7907685 +.87932158,.26559919,.31391779 +.32644504,.13103162,1.4317312 +.69018634,.03099103,.28722878 +.37599715,1.6566751,2.1852224 +1.0098049,.45264027,.40352908 +.57829356,1.1863987,.81224019 +.48680095,.08839295,.7808921 +1.3036278,.52404188,.73462228 +1.385822,1.0904147,1.3794324 +1.2386538,.23318011,1.0200551 +.35000521,1.7440257,.15356722 +.73549369,1.2364204,1.5411783 +1.6375666,.38276859,1.6589189 +.83072129,.71700241,1.1975249 +.95848348,.0806073,.02537189 +.48875182,.40688114,1.0713895 +.74432909,1.6443026,1.3423111 +.64733079,1.0097302,.01825946 +.50192046,.39329228,.92515337 +.91063702,.27500043,1.4909678 +1.0011197,1.2503028,1.6966664 +.99922894,.86903283,1.9322742 +2.0309416,.06355228,.00157301 +.57579256,.01778202,1.261375 +1.3871256,.27905769,1.8980699 +1.1846307,.29710072,.93516683 +.95709855,.10728335,1.3277105 +.4649247,.27979088,.10438188 +.71543948,.44909976,.32658887 +.63273193,.30934241,.86050064 +1.3112708,.59330482,.31105988 +1.3116177,.72011368,1.8783231 +.9907457,.51205559,.13910438 +1.6153489,.08180544,1.722554 +2.5581846,.60372243,1.7459223 +.81094503,.06403252,1.3194317 +.39223342,.44335239,.56318179 +1.8115398,.06368804,1.5948336 +.84912231,1.0469901,.38289827 +2.5044433,.21226339,1.0493598 +.60872576,.67831247,.07001068 +1.6408518,.722929,1.4263374 +1.0578403,.79178672,1.9209884 +.5086083,.08513257,1.4577053 +.70846477,.29442263,1.7070103 +1.5628934,.82584503,.48592844 +.66945903,1.621634,1.7653471 +.63066324,.60843353,.88777979 +.62123442,1.7575374,.13972529 +.31808096,.93186356,.68659961 +.90756846,1.8455304,.14149975 +.67359456,1.6715071,1.1239559 +2.522977,.80842325,1.3458785 +.96089056,.57968812,.38890893 +1.1873107,.54945496,.37868396 +1.3710821,.79266115,1.3556089 +.36155436,1.2333884,.72051541 +1.3294262,.58813492,1.9977796 +1.0114785,2.4485575,.32771384 +.73921108,1.3524743,.10995234 +.9061136,.18365021,.94690945 +.92653854,.64041533,1.4992863 +.90660288,.15551039,.10531115 +.55165726,.0869307,.19780354 +.66443445,.69938794,.17745881 +1.0634704,.56275905,.95418415 +.92780654,1.8553094,.17792834 +.36648191,1.32186,.03001133 +2.2628237,.08833893,.95588998 +1.1106059,1.1684443,.81929824 +.63446536,1.7031845,1.3108775 +.88579895,.5938326,.67456975 +1.1441725,.46227286,.55133913 +.54974288,1.3633892,2.1712565 +.75482127,.30821608,.20985662 +1.2775646,1.2115791,.78301956 +1.1040264,1.0730996,.98575548 +.82923068,1.2828263,.72672687 +2.0927695,.37518147,.49642762 +2.6051185,.64171208,1.426251 +.61984682,1.7720788,.25627384 +1.0296135,.38395853,1.6902303 +.78989593,.13820763,.22816013 +1.5075036,.09986541,.09798964 +.90535348,1.2283432,.73997922 +.53107603,.42197799,1.4823721 +.77887599,1.4241427,1.919072 +.38788405,.3064243,.12763502 +.603255,2.3476245,.76890617 +.42374425,.65015357,.67829511 +.39865718,1.2138495,.98442047 +.58004165,.16427551,.2437419 +1.2417827,1.6504899,1.9466456 +.78587017,.8247822,.14165307 +1.5990264,.11183881,.21160243 +.71518856,.96274403,.1654606 +.83005649,.66611264,1.0993605 +.2631693,.20797549,.67370383 +1.3046901,.7182308,.35681015 +1.1694328,1.3818258,1.4649878 +1.0871418,.96881709,1.7877819 +.85711955,.05381153,.33208548 +2.6588527,1.8691846,1.241471 +.64334153,1.5150067,.51749225 +2.3331172,.03584578,.45264862 +1.891885,.09364824,1.1079094 +.41206058,1.7237208,1.294721 +1.5505433,.15588402,.11726472 +.70291194,.840475,.01782527 +1.5176942,1.3571608,.51626391 +.91732207,1.2104334,2.1441608 +.64952512,1.284958,.71218729 +2.2629885,.72500028,1.4609486 +.9157605,.30932628,.82437077 +.42659509,3.62711,.34489407 +2.0764755,.15101091,2.8723142 +1.3016695,.45245111,.26527673 +.73228014,.38905305,1.0062065 +1.8104388,.04965546,1.9658288 +2.1597487,.11941019,.0438434 +1.3602359,.31765156,.18086776 +1.1526828,.20610366,.53801615 +1.1446085,.78712348,1.0478643 +1.7892861,1.113422,1.8890161 +.89447168,1.5463098,.58722494 +.31093341,.63689319,.54514238 +.77941323,1.1282991,2.8614504 +.79640438,1.6730395,.25745985 +.32701671,.55850307,1.5366344 +.34515359,.38434313,.18938805 +1.348458,1.4584413,1.4294355 +1.0905667,.60303939,.70401555 +.93704124,.73716836,.39567315 +.16441476,1.1937163,.10683238 +.475927,1.4441055,.88729662 +.7651832,.42235408,.76788111 +.6894845,.45317178,2.8297377 +1.2351651,1.6089556,1.2413227 +.84835168,.70851448,.27811613 +.89940289,.44428295,2.4247329 +.96178859,1.0449725,.31588391 +1.2814485,1.1655641,.62871059 +.7617804,.52542321,.03601487 +.88510048,.12399567,1.5454181 +.34647345,.58188941,.25753543 +.601931,.23917071,.02561574 +1.3099906,.33098984,.78007269 +1.7877125,.69414048,.07475105 +.78434197,1.4858103,.27676414 +1.5522448,.35830109,.8594794 +.33304555,1.0935314,.44672576 +.74439264,1.0274393,.21105813 +.41817729,1.9297668,1.1019955 +.70597211,.50249371,.10137685 +.85355822,.82435645,.7317289 +2.1294905,.48890443,.50359521 +.93826229,.12161951,1.6666311 +.51362107,1.0266688,.91872671 +.47078014,.01019258,.27413788 +.99946085,.25520054,.24637888 +1.1406285,.26509427,1.3718277 +1.0967533,.07955355,1.2418306 +1.4516193,.53782447,.62880351 +1.0675218,.1640191,.51726017 +3.3984601,.21669371,1.0858314 +.20776629,.26667433,.18053947 +.61275634,.49342965,.02913908 +.64626648,.78270399,.88737416 +.5698873,.87089255,.30883112 +.79545704,2.5411042,1.8924827 +.60097818,1.203726,1.5439994 +.54330713,.35953407,.64405151 +1.0886077,1.1309199,.39126885 +1.0401689,.52777349,1.1962336 +1.3446956,.82825933,2.1382708 +.74767928,.79674031,.15419788 +1.399706,1.808304,1.4536863 +.93580309,.02434302,.32605549 +.55762287,1.5464124,.1224391 +2.1720563,.0226294,.2114568 +.58552398,.82992321,.16372588 +.68810364,.16273658,.25461524 +.8540284,.01551845,1.0006076 +1.1472292,.5160431,.93496191 +1.0829149,.96310349,.98044295 +.5497749,1.3898502,1.6496492 +.24809771,1.2718039,1.3998769 +.70208747,.88883613,.68580062 +.74206365,.72519082,1.3936745 +.74232983,.23650249,1.0362136 +.44367146,.45517319,.23677404 +.57742154,1.2334023,.30518551 +.71334728,.40510708,.24449846 +.64509024,.4383839,.39374422 +.75390466,1.153156,.38959557 +1.0619402,.54908328,.08771917 +.46457882,.96503668,.62503782 +.54510997,1.5224948,.34789243 +.63761992,1.4815031,.16245628 +.4637462,.68436127,.52632719 +.63280481,.39089519,.89740023 +1.0003331,.72538412,.83774561 +.92852432,.67514223,.7711365 +.61353504,1.4128919,.1163385 +.91263099,1.599555,.57927497 +.64483665,1.1517766,.16593396 +1.0060819,.93299005,.65674679 +.33437551,2.8958794,1.0125029 +.76084932,.03923219,.22505402 +.91797836,.43469082,.24437117 +.93099058,1.5425545,2.5218066 +.74628902,1.1717242,.75510993 +.54144751,.26141485,.27837178 +1.1014037,.14826661,.86058018 +.76596451,.51059799,.40464319 +.44998355,1.206497,.76489737 +1.3319932,.18545043,.18849285 +.19623323,1.4048233,1.1573945 +.43530611,1.023779,.5618468 +.47899564,.89717652,.54763584 +.79589283,.21612351,.06731587 +1.3690923,.38072876,2.4385097 +1.8751674,.11951431,.50307921 +.67311405,.35219047,.1404408 +.29038624,.30834977,.81946326 +1.6903334,.18322243,1.8186254 +1.0006251,.80901478,.87189095 +.70889606,3.0322088,.24251527 +.76534078,1.3525924,.42748598 +1.3139578,.66531835,1.770909 +1.3066409,.97693569,.75421191 +.47020199,1.4366467,.25191306 +.67840851,.5495026,.48954075 +.84551385,.56606566,2.0022296 +.72128152,1.2943845,.1180128 +.97468306,1.3785292,1.3960396 +.65112255,.25663731,1.6449302 +.89250181,1.8894021,.56746237 +.87186121,1.9889687,2.0730947 +.2400691,.79323616,.24644319 +.44278193,2.2165399,.72840239 +1.0108206,.96063834,.99916097 +2.2963271,.22084116,.83177486 +.62954369,.24526235,.36962036 +1.5978657,.73367411,.28810368 +1.4499996,.19836214,1.5976853 +.47437632,.50695717,1.1909022 +2.616464,.00247365,.04619271 +.53105723,.51308612,.41735082 +1.2420191,1.1000079,1.0602995 +.42030675,1.8191787,.93525367 +1.1546232,.32635063,1.5712419 +1.1905206,.24983316,.35832782 +.97157747,.35409823,1.1717312 +.94961839,1.539662,.69534626 +1.153049,.21818076,.02789383 +1.4668402,1.4523606,1.5134148 +.43657942,.79932067,1.0009928 +.66273658,.32828365,.43009538 +1.9344779,1.3629388,.45431366 +1.9232056,.47933632,.29800557 +.81773732,.67339899,1.2860089 +.85376875,.21894908,.06090688 +.56180696,.99449079,1.1068924 +2.0144901,.70048611,.93474163 +1.2249708,.05332547,1.0381058 +.68696308,1.2198019,1.0236655 +1.2321931,1.0554017,.88038591 +.21517653,1.4237157,1.1899101 +.64187123,.70595609,.60827687 +.82134109,.83540843,.78665574 +1.1677143,.39683344,.46173573 +.60256583,.49853791,.76988427 +1.2693216,1.0843831,.01422755 +1.0444811,1.897266,.01272557 +.76388237,.68611656,.61002416 +1.3782752,.18044388,1.3340659 +.84175626,.18744026,.0920904 +.52442927,.77657934,1.244083 +.84217605,.96648198,.40084882 +.88144964,.16898368,1.9633876 +.40942893,.5672466,.47083798 +.72087888,.88718443,2.518046 +.91823247,.69862683,.24753601 +.4781963,.8499386,1.8157084 +.66441049,.91837913,1.3929587 +1.107066,.1786,.25533124 +.31361151,1.7907387,.10015043 +.42364308,1.8733277,.3395968 +1.0049339,1.1515179,1.2027589 +1.8473577,.0286493,.30837974 +1.7422834,.9587606,.56252499 +.64731959,.07820098,1.0510952 +1.5726601,.85185437,.7875751 +.78003784,.08342727,2.0295397 +1.4381264,.77646806,1.6462879 +2.1050477,.01573889,.01098816 +.53619237,.8042114,1.3854905 +.57351764,1.7496842,.15600107 +.44147608,1.0327533,.07880477 +1.4026976,.27807421,1.2040018 +.36069062,.9072154,.34055209 +.9005711,.69995247,.11124845 +.53659638,.25757575,.27294875 +.75609559,.39948646,1.9458451 +.57440904,1.3815245,1.3271949 +.73330745,.77372286,2.3050657 +1.0702935,.70208764,.65113967 +1.0252027,.25418293,1.0768209 +1.6616641,.64192365,.001771 +.54801111,1.5752397,.26886432 +1.7645184,1.4543728,1.9010433 +.86644227,.77608463,2.5494013 +.40367817,2.3510783,.42954891 +.52439664,.50416357,.60089518 +.9256525,.20448644,1.5425992 +.58546142,.65194381,1.3214459 +1.3209585,.12579793,.20477867 +.28118447,2.0613296,1.2705591 +.60367707,1.1551538,.99746559 +1.2419605,.14593523,1.0210785 +.34696913,1.0303375,.83558292 +.95938615,1.340276,1.5415343 +.40177246,.0795647,.28086765 +.37661562,.68524786,.75071641 +.6599319,1.6086752,.06785454 +.39431616,1.6784585,.43942966 +.77526437,.39733328,.5537349 +1.5515281,.02043422,1.3198711 +1.0029717,1.0294522,2.8075654 +.88310492,.71300237,.03916898 +1.5507376,1.6171855,.43934439 +.53088345,.28911991,.13207295 +1.5200003,1.4794626,.31004392 +1.5507931,.32311716,.32357994 +1.1606919,.33596486,1.2837432 +1.1005206,.14390817,1.0113076 +1.2815505,.01146508,1.1564907 +.67231279,.38838,.88414975 +.54359915,.66211696,.32986298 +.71970927,.79059803,1.1683487 +.81541277,.2190525,.2692622 +.61008182,.008451,.86745742 +.69470727,1.4049818,1.6707381 +.76677177,.37682989,1.0554074 +1.0290005,1.1252405,2.0697156 +.48681882,1.2293661,1.8066232 +.72850586,.24452266,.61663782 +1.3343909,.89532223,1.0022759 +.42538517,.37847769,.92223457 +1.6501571,.19022516,.87041601 +.51917296,.90982849,.57413805 +1.110452,1.2219295,.68526706 +1.2321867,.11228213,.30551885 +.39549815,.87361309,.19939504 +.60156189,.09589385,.12695387 +2.2462819,1.026048,.81324722 +1.3663175,1.1698616,.4215164 +.66812254,2.828459,.78054853 +.65469833,.63293153,.17076424 +.82884179,1.6848422,1.7363887 +.7089417,.98429561,1.5709842 +.54815873,2.0619316,1.8711067 +.50850329,1.7812351,.17714984 +.49598577,.66280535,.21153356 +.97751387,1.8120499,.4751842 +1.3500784,.52695562,.71125219 +.34586156,1.0195165,2.268315 +1.2140486,1.2774299,.82745019 +.94073359,.32311325,.18484708 +.52878216,.72212807,1.2298133 +.38163987,.36150851,.31273559 +1.6372935,.69275447,.45561202 +1.5138226,1.0896287,1.1516429 +.84064308,.89844368,.30461119 +1.2734647,.08562101,1.9626604 +.67231753,1.1473201,.19233192 +1.0335842,.47778375,1.2478813 +.43057214,.60987051,1.2161317 +1.9370227,.15662768,.70738128 +1.6396145,.07313038,.7427246 +1.6489494,1.7388826,.2849679 +1.9527705,.25102613,2.7709555 +.568653,1.0591647,.08839932 +1.1208939,.45198618,.35989825 +.35294523,2.1245776,.7089477 +.56573468,1.447058,.23420311 +1.5597514,.0338727,1.3744448 +1.0690719,1.1248482,.64701592 +.84731927,.80908996,.32350985 +.62596095,1.9756762,.52395621 +1.3341534,.46477146,.69643942 +.48491365,.30855352,.8581085 +.20269215,.91219728,1.2055196 +.89521592,.13758817,1.7270014 +.81035665,.15375413,.22806042 +.98203752,.61105695,1.8141107 +.67282048,.03964925,.02640102 +2.0804651,.4979232,1.7697417 +1.1076682,.98490488,.43902677 +.42478274,1.9389885,.11299541 +1.7530077,.28971378,1.6189251 +1.2072087,.09229927,.41652256 +.83161251,2.0199352,.51345812 +.77395826,1.6561871,.45893051 +1.5538005,.44756561,.89905751 +.67016551,1.9710714,.19655014 +.40805494,1.3786466,.06610338 +1.2122267,.87866693,.24432564 +.29843724,3.0104981,.29465878 +.7689856,.99980014,.21250591 +.72929313,.89281324,.43400069 +.73017093,1.5332923,.75319611 +1.1687427,.19950787,.89751576 +.59577123,1.4418487,1.0862644 +.82363904,.41205193,.09042025 +.69847202,.60554364,.01618492 +.93809042,.46887085,.01683668 +.95802012,.25710795,.18574147 +.56401733,.41857026,1.5943409 +.68183107,1.4449189,1.3439383 +.93353832,.38151897,.00366689 +.46136494,1.1881765,1.4627369 +.81817871,1.5310226,.69804021 +1.3458947,.39217147,.80411131 +1.7374522,1.5034201,.07360819 +1.0220231,.37181047,.10992399 +.94431546,.18039911,1.937377 +.88167959,.48016848,.42106166 +.80313137,.67894715,1.2067335 +.81947507,1.0475692,.2135946 +.83443178,1.4835095,.96566419 +.69787212,1.1359754,.92924154 +.7177048,.0967349,.21462257 +.94027712,.55895428,.3574262 +1.0033145,.09680927,.74714515 +.59768344,1.0672805,1.4374594 +2.0298435,1.0187378,1.680222 +.72763941,.03965192,.28961487 +1.3173073,1.6327696,1.1615729 +.72066137,3.6543574,.39957596 +.58604322,.07422554,.7008324 +.67364591,1.336066,.24752363 +.45976755,3.0070512,1.226892 +3.4982363,1.3945628,1.4503451 +1.4397447,.44079068,.32615763 +1.3056158,.439929,.47311035 +1.7352652,1.1350725,.01775016 +.35697227,.63151563,.67463507 +1.4971325,.68931501,.15120243 +1.611563,.46702792,2.3767627 +.33357016,.71421109,.06171243 +1.0351073,.24040421,.15118399 +.7853469,.1606033,.23170987 +1.0463517,.50375896,.50550809 +.23020098,.59625719,1.1217749 +.7489565,.98490968,1.4903771 +1.1157311,.21727625,.64135362 +.60553062,1.4970212,.22506381 +1.3913737,.75822373,.04505568 +.99077079,1.0984972,1.1082628 +.60663137,.14042255,.64949719 +.70022834,.33058327,1.0735846 +.92239603,2.1994026,.70445564 +1.8931649,.12652984,1.6736874 +1.5404815,.1395824,1.3905349 +.62839403,2.2084588,.66971134 +1.872742,1.4250861,1.4091621 +1.0988468,.84469127,.46779106 +.78931685,.30845287,.71161178 +.71567838,.28244947,.18378469 +2.7190396,.99111998,.1319563 +1.2956921,.10037478,1.0086807 +1.5316824,.55688196,.05833246 +.75337749,.60281256,.43378391 +.7667402,.81984524,.17321663 +1.2933254,.041337,1.9816536 +1.6686382,.46128373,.61608864 +1.0611584,.11802609,1.8663115 +.80334513,.09954507,1.0470412 +.42610697,1.8103881,1.552786 +.6782551,.84190331,1.6401894 +.44251206,.08007062,1.115 +1.6127387,.12149951,.21378853 +.30009521,1.7935894,.85897428 +1.051626,.31670626,.72660459 +.41320332,.81348308,.49310519 +.5570305,1.6463242,.35962147 +.70051463,1.2400692,.73432293 +1.1845574,.29910927,.4947109 +.41074705,.5621073,.23808142 +.88426487,.47480273,.31978839 +.85414616,.07885426,.99208589 +.80767983,.09446571,1.0844186 +1.676779,.04630037,1.1536825 +1.0914018,.2587968,1.0656743 +1.2354634,1.7350878,.37242879 +.76812661,.39412199,.50015562 +1.5185428,.09295644,.92913511 +1.4259451,1.0672672,.02361289 +1.1412621,1.0639473,.52674529 +1.696365,.7184527,.27575576 +.90136968,.77038538,.81806728 +1.6119533,.60132548,1.2632056 +.72134181,1.3610941,.20675716 +.57797598,1.4022782,.9685275 +.93429058,.68922981,.81543 +1.7668151,.42682553,2.5478858 +1.5000654,.39381475,1.1003217 +1.058048,.30394993,1.1231413 +.56972876,1.2365664,1.4198511 +1.3114347,.16599104,.05111532 +.62714399,.08379614,.82035723 +.34155377,.73145903,1.3758703 +.52095115,.39392192,1.199054 +1.0909694,1.318087,.78744842 +.47974012,1.0199776,.14142302 +1.3874983,.34611784,1.1906072 +1.7449964,.69935816,1.1559621 +1.2968712,.31132208,.67111544 +.36198606,.84210781,.68726673 +1.9217677,.4410834,1.8976807 +.82856634,1.6778526,.6275148 +1.1606893,.19361576,.55599266 +.38432081,1.3147367,.25867545 +.93821455,.02132254,1.6057964 +1.233722,.01134774,.40709447 +.93823661,.09329964,.69777594 +1.2193558,.36393779,.39176101 +.3945901,.10587629,.56277012 +.65139836,.04818524,.1837579 +.58395254,.70017932,.28770666 +.91637748,1.5388654,.76868827 +.84797784,.27691984,.37419389 +2.1688176,.01313496,.5820366 +1.0642835,.17103597,.20227758 +.79797886,.59319919,.71913682 +.57074379,.58251342,.68342629 +.62405473,.45539657,.37585996 +.69646647,1.4866641,.28870595 +.78184201,.20208397,.44526127 +.56078713,.62154206,.4883465 +1.2777397,1.1897417,1.3434373 +.26471844,.83216494,.49580066 +.49090766,1.2462343,.29478485 +1.1367906,.06740099,.24442406 +.39434489,2.2406034,.3771851 +.86373301,.93811841,.29048372 +.61473675,.39345877,.02783632 +.52130281,.2968733,.11337209 +.86216742,.42572747,.42471005 +1.1661795,.56315584,.82249383 +.34061149,.78995311,.58362392 +1.0498209,.20783583,.8765877 +.61820881,2.8886621,.28806178 +1.0732232,1.4218239,1.0622593 +.71098753,.96137919,.74017423 +.56320043,.73782404,1.8362171 +.54700888,1.1671831,.70950054 +.99447719,1.4302942,.45089979 +2.6891118,.84345224,1.6427603 +.30632406,.68241457,.67447639 +.75569761,.45031065,.72847016 +.76953024,1.3465777,1.5444058 +1.0233903,.2218821,.49873288 +.93649177,1.0476655,.94060055 +1.0636419,.46325819,1.5674602 +1.1901595,.04578641,.51713864 +.58165293,.68120748,.04691732 +.49899289,.93504313,.2020687 +.5993902,.51232462,.5066996 +1.7106295,.39254524,.29370738 +.90301982,1.0506118,.33025054 +2.7478653,1.3769532,2.3580823 +1.0230546,1.1848891,.65872731 +.65556729,.9383686,.40286226 +1.6271326,.26856128,1.0307632 +.7105551,.06674286,.27451817 +.75505123,.52272059,1.2762257 +.70360245,2.2828981,1.0787213 +.59771215,.04480356,1.4893714 +1.0671874,.21663916,.15493562 +.7678517,1.5890053,.56869076 +.79748951,.22500215,.96286365 +1.7431267,1.7238303,1.7546394 +.61792742,.11475136,.96768871 +.83669526,.74640119,.08745171 +.23783359,1.1659904,.85212214 +1.379506,.78378412,2.0034167 +.82945898,.14478982,.17832748 +1.1450608,.60418838,2.1747198 +1.4734951,.82726309,1.1642912 +.3391946,.13650776,.5829049 +1.1605315,.07163791,.34078355 +.52979732,.93176003,.63381633 +.81735068,1.5598311,.61552837 +.46508839,1.4229878,.35795236 +.50702012,.30577914,.94811494 +.7293124,.06627109,.40455973 +.38747295,.24851776,.52171133 +.71970568,1.2435105,.15229159 +.72396816,1.8532939,1.0665332 +.46853071,1.1876743,.79761578 +.92213866,1.1255236,.19036355 +.59837951,.88452319,1.0777529 +2.1333769,.7720038,.48539698 +.72751072,.77603183,.36815165 +1.6284775,.42704577,.65604823 +1.0524197,1.5271969,.5220787 +.49874399,.68427449,.08515265 +.9816623,.7900656,.06453209 +.35079072,.82597887,.56050905 +.55431698,.78366237,.15009645 +1.3360066,.0250514,1.3159859 +.5478337,.17183928,.80285937 +.50597476,.66461905,.27695158 +.94076271,1.917618,.7930953 +.31235601,1.235658,.28708279 +.43555818,.00428879,.29795487 +.74705518,1.1477876,.89958804 +.49821129,.94362025,.19647159 +.48152496,1.3623507,.04603256 +.65527771,2.1697884,.28464441 +.3581618,1.6746362,.04868723 +.39661033,.166658,.18745322 +.38703927,1.8767987,1.2085146 +1.151916,.03487397,1.7697891 +.89646463,.19631908,.2388549 +1.1607856,1.0952342,.42305172 +.48084197,.49655741,.19963065 +.50534463,.34897969,.671622 +.42924926,.88962308,1.0135226 +.63189224,1.5515447,1.7224925 +.93486973,1.0786193,.76037103 +1.6915538,1.0960982,.95812457 +.43548707,.19406788,1.6889205 +.56027408,.28030391,.22440052 +.53704976,.58844191,.96295989 +1.2932559,1.5340191,.44833665 +1.9226928,.07111082,.69686603 +.4558846,.08059312,.30145118 +.49335849,.9823473,.02213232 +1.9734345,.05099915,3.553424 +1.8709459,.28539716,.58967462 +.70801216,.49037449,.18387129 +.93976329,1.1177277,.04560194 +.53122196,.56188506,.3392187 +.92782689,.60080906,.79010894 +1.3049375,.18900802,1.1182434 +.34166714,.73527498,1.4229663 +.76448809,.42955268,.1009084 +1.6671902,.62848743,.95257631 +1.7286207,.60412349,.81562803 +.56273232,.28806938,.66104476 +1.4600054,.62289323,.65229496 +1.0338479,1.3189927,.58738887 +.4036041,1.42983,.77837772 +.43725594,.04955654,.10198601 +.94624122,.17227175,1.1102339 +1.2019348,1.3856511,1.5877091 +1.2428512,1.1265018,.28748393 +.62646318,1.8845647,.5416184 +.69208349,1.5013516,1.0723697 +1.2120579,.57667647,.50397207 +.57163182,1.4233013,.87860209 +.58177884,2.1811042,.18662537 +.8732239,.58740452,2.3265186 +.52244615,.74732659,.96042961 +.75092518,.22182359,.16207741 +.79435161,.41195265,2.4329806 +1.2524346,.3449198,1.2904956 +1.0980687,2.0001621,2.2131029 +.87763671,.97684027,1.0814993 +.86409831,1.9411405,1.6618383 +.80149845,.05920637,1.2191713 +.44267525,.43267266,1.3349293 +.71095582,1.1376534,.09969233 +1.098302,.35345422,.66642755 +.42439338,1.2832107,1.2958824 +.70837202,1.3689923,1.2286181 +.85277151,.54717614,.21690648 +.66598191,.53225871,.37832206 +.78718397,.18781805,.14815368 +1.1100806,1.0834357,1.8922526 +.23444942,1.3702448,1.283954 +1.4737939,.14346084,1.3686324 +.87709727,.48330804,1.9134317 +.89837149,.0931184,.85892821 +1.5302699,.04439298,1.2242649 +1.1170139,1.3710913,.02005849 +.8536132,1.3842251,.81716382 +.8056937,.56658346,.28081821 +.8807705,.11788983,1.4776014 +1.0676078,.48804575,.28147628 +.36959064,.99743526,.17031666 +3.1300536,.51490522,.31450847 +.56569605,1.8518713,1.0163875 +1.1784806,.86763508,.21390007 +.66457796,1.5461023,.13571864 +2.1690371,.50547559,.87679264 +.70330908,1.1776696,1.0497549 +1.7738387,.26625589,1.4395009 +.4386385,2.2440703,.91315316 +.50629389,2.2421697,1.6058332 +.47248234,.53630764,.68310241 +1.7679153,.41137863,1.4775969 +.26538789,2.657673,2.4163415 +.65433256,1.1991292,.55145963 +1.179223,.20224828,1.3082526 +.52668774,.97993152,.28116182 +.64039281,.59158706,.43157043 +1.3028647,2.475879,1.6922319 +1.593247,.14118265,2.8096723 +.72653643,1.0948164,.32372963 +.70091665,.27489623,.68467821 +1.4047064,.00444072,1.2449077 +1.685729,.49422212,2.453068 +1.1947896,.12606807,1.2061826 +.84220472,2.099698,.69929842 +1.2552845,.65837571,.50030636 +.96631504,.71484965,.27404619 +1.0448484,.47846321,.67220927 +2.0900764,.01522692,.35452014 +1.7087578,.01911842,.76358368 +1.0093806,2.482688,.96628646 +1.3246375,.58613513,.17476781 +.53623877,.63604205,1.1638508 +.99384154,.92788373,2.0639858 +1.6667356,.01951675,2.2318411 +.91519422,.04629148,1.3708472 +.63602883,.44689112,.32995735 +1.4727404,.30731517,1.0255925 +.3897319,.97718836,.27071304 +.43009462,2.134988,.4339229 +.59490529,.78145897,1.9628712 +.88137067,.03958492,.40414666 +1.4031746,.04855357,1.0424055 +.78508346,1.0799425,.77979648 +1.0773998,.00780161,.47168196 +.83966251,.49997362,.99151966 +1.3771413,.75416947,.49358397 +.76910204,1.6958299,.05272054 +1.0678621,.44889272,1.4523691 +1.537202,.42838221,.47141861 +.64727731,.3381639,.09567055 +2.3802888,.17377196,1.056166 +1.7724145,1.5085779,.98556567 +1.5849892,.16873599,1.9249123 +1.8470427,.6020813,.93971539 +.69433313,1.2075829,.1245664 +1.6714983,.94229135,.82157194 +.74920665,.44048704,.60850598 +.74214645,.35738444,.01491706 +.61303676,.94387645,2.3105217 +.85545385,.75880986,1.0349341 +1.6765711,.11222827,.03078876 +1.0191012,.73154198,.38317446 +.86044867,.01076728,.29651273 +.64645727,.59985647,1.926398 +.76214805,.94609282,1.5209389 +.50080115,.99639635,.51537219 +2.1815972,1.0153933,.45386985 +.97497284,1.4339451,.16951626 +.59910637,.37565017,1.3252119 +1.1711041,2.051048,.57677887 +1.0383066,.2363873,.49250843 +.66509632,.14206166,1.7205799 +.54511772,.44907644,1.2393263 +.76165835,.39629967,.76876512 +.41860847,.69360964,.16109703 +.58332523,.67069906,1.653511 +.95096683,1.0201365,1.3316881 +.60465233,2.3726876,.57415579 +.78082582,1.2168244,1.0598832 +.58069179,.94725091,.45822616 +2.193116,.71135819,.22874445 +.48067472,2.1070761,.25564216 +.64845104,.30062909,.31942327 +.57533848,.00491983,1.2666597 +3.6530129,.58290071,.79239151 +.62604035,.18367527,.33086798 +1.1344012,.90636593,1.7350676 +.46046242,1.4401776,.24492958 +1.3865946,.42071336,.31339186 +.80901464,.81824964,.81105869 +2.3014711,.18917255,2.6612336 +1.1996206,.44975134,1.2387685 +1.5262824,.02182704,1.8274456 +.55325028,.64978826,.20300197 +1.2725778,.15196087,1.3657249 +.44461757,.9491823,.44752392 +.8093274,.2020172,.56570359 +1.3499731,1.1416917,1.1348319 +.35824005,.29681086,.10248612 +1.3804861,.10780394,.35887111 +1.1759258,.10884923,1.2132582 +.74348562,.82368158,.62201658 +1.0345678,1.5517738,.5964722 +1.8230982,.74416035,.06125212 +1.2695891,.86445411,1.1583208 +1.5218803,.66411604,1.1713213 +.48318843,.46508657,.83646309 +.55876699,.5010651,1.2028006 +1.2881826,2.0670119,.28284293 +.73148802,.81804787,.32193554 +.55517252,.26485811,.06502197 +1.8482524,.86224434,.54115894 +.78418133,.1819163,.91157202 +.68052445,1.3608777,1.228635 +.98313305,.09488521,.12376494 +.48943273,.89230859,1.820415 +1.058841,.3081019,.56618633 +.59990517,.30203621,.69802133 +1.7850662,.03561615,.45364372 +1.1776154,1.1572635,.87533599 +2.1622262,.58239483,.09790119 +.78149683,.93247274,1.9557374 +.67922984,.73225343,.69279493 +.80688387,.78552983,.08807436 +.73792253,1.4511445,.59997294 +.77033465,1.7318435,1.4397273 +.91865166,1.4866547,.81382803 +.89071266,1.9470342,1.7555691 +1.0872424,.77173164,1.1283609 +1.4404953,.4660857,1.5664108 +.9245377,.56036278,.26780834 +1.0575043,1.6516391,.05068378 +.92661,.57685849,1.0308772 +1.0056194,.36095106,1.0769535 +.75905503,1.2126881,.05760164 +1.6328516,2.1183632,.63446345 +2.5387381,1.3313537,1.0969228 +.78997149,.33538559,1.296788 +.45337604,1.2564058,.70663327 +1.4044519,.85137821,.99516858 +.27049033,2.2951489,.19494872 +.70499075,.07668617,.43196078 +.42638139,1.6470129,1.2082898 +1.4237315,.42583719,.65621884 +.9870676,.24844236,.447066 +.32802541,.80642664,.03432616 +1.157716,1.3644238,1.2123595 +.58731527,2.8605326,.41324186 +.68615861,1.5874529,.12764769 +2.2887238,.46344196,.49330873 +1.1768177,1.0287012,.27257803 +.68147366,.85072686,1.6828809 +1.4846339,.91148605,.09810022 +.49425685,.23817419,.25760414 +.56686426,.66044626,.81326124 +.38461882,2.0033689,.4254664 +3.0202153,.00868909,1.4736475 +1.0821338,.13243736,.54771565 +.74208037,.61645115,.06618945 +.59782263,1.2642064,.58019797 +.41317806,.63159137,.04463856 +.50167148,.59099635,.05716364 +.56728395,.90751747,1.2069458 +.4588818,1.0839951,.55266875 +.30607828,1.0917474,.92927985 +1.6398885,.10895882,2.3517632 +1.2120938,1.6823694,.87627807 +.47789541,.6378351,1.2951561 +1.0365786,1.0357111,1.2585806 +.64102742,.79450355,1.153355 +.5505499,.70518795,.25606523 +.95442335,1.5148844,.86952687 +1.3247417,.88271106,1.7258381 +1.2984909,1.7451747,.81457396 +.51768834,.15785864,.82998573 +.81297242,1.4313905,.75987872 +.66321212,.70566047,.10936672 +.32445962,.89013277,.82591897 +.84122614,.94047612,1.8771333 +.49813938,.72622352,1.4080602 +1.4569933,.88016216,1.1078869 +.92955098,.10077977,1.0756463 +1.1369436,1.059448,.45869738 +.82818073,.63537566,.80732423 +.45244877,1.0972204,.15255778 +1.7230337,.21104887,.31897083 +.98907117,.75732367,2.2864685 +1.1077555,.33314914,.69090197 +.49017796,1.1525177,.61440843 +1.123922,.93335842,.44375923 +1.7406087,.19518466,.91870876 +.52420349,.71380989,.75162192 +1.2166396,.78034245,.69375701 +3.0644962,.15263463,.44391507 +.75613558,1.0848027,.3318899 +.42576159,1.258374,.71029744 +.56752127,.09013566,.13642441 +1.3965554,.23209907,1.0728463 +1.2773155,.02528587,.21541061 +.55505699,.07158268,.60658726 +.71181659,.20236903,.50011313 +.641897,.52172583,.58591718 +.89285781,.12947088,.17288782 +1.4936875,.46803883,1.0798989 +.37438083,1.7184691,.42827735 +.65399329,1.1763962,1.4184433 +1.1617218,1.2809702,.69195055 +.73447291,.75779678,.43387677 +.54811016,1.4257687,.75337386 +.82052915,.19909568,1.1604012 +.6659465,.49982116,.88894998 +1.0613628,1.1266974,1.9435193 +.58721366,.80609398,1.9134095 +1.1816898,.25537249,.7787632 +.72205037,.19377983,1.6052215 +1.0510103,.93665028,.7773807 +1.887208,.71742203,1.3782719 +1.8372676,.01598212,.6790649 +1.2434782,.32348893,1.2935571 +1.6589074,.99578875,.56353703 +1.4149387,.4080596,.74322179 +1.6383921,.07732674,.20114388 +.46840103,.96395267,.82129876 +.35208778,1.1018166,.90088787 +1.1555319,1.7133168,.75274268 +1.6992042,.30045162,1.6326688 +1.5703486,.43835372,.0628372 +.38810477,1.0832579,1.5236108 +.68346723,1.1737086,1.3175729 +.86848469,1.1494328,.53007554 +1.4462788,.00588767,.44342819 +.876837,1.6559324,.71236968 +1.0506553,2.3973397,.5941117 +1.0532612,1.95153,1.0875918 +1.1804699,.39875384,.93551584 +1.0266889,.28076683,.37054673 +.37468492,1.1438997,.75561326 +.92608334,1.1921811,1.175221 +1.717445,.35600309,.49126256 +.82652586,.46980083,.62096918 +.4992515,1.0101233,.06713158 +.7459197,.19818101,1.287709 +.61395128,1.2663138,.66078234 +.56576929,.62536539,.07387577 +1.4151427,1.2668826,1.1810103 +1.388912,.36242468,1.0052446 +.49897673,.83249276,1.1598206 +.43655656,1.0241199,.60953271 +.45019516,.80396412,.63113564 +.32325078,.70701481,.16019928 +.84902819,.4545794,.41479859 +.74185041,.42247381,.89698633 +1.1345327,.94709691,.06923735 +1.8759763,1.0142647,.29275344 +.6260093,.44025053,.23427754 +.82535991,.49191021,.32751499 +1.1052778,.28704581,.32773262 +.48505417,.73488087,1.0433174 +1.2075581,2.5337094,1.2416788 +.44874852,1.0101712,.10064435 +.68167325,.19278948,1.4787171 +.87465294,2.3941008,.61482209 +.96875288,.08446492,.08891738 +.51304435,.58641576,.79733887 +.42318136,.65461768,.80202282 +1.1875467,.56790901,.16843338 +1.2605085,.28384185,.72447973 +.78755104,.42364364,.54426915 +.50009694,.93131797,.09682983 +.18313957,1.5461565,1.4888511 +1.1757475,.01885718,.12556135 +.55649186,.75917841,.10702222 +.56061206,1.1838876,.257095 +.62359614,1.3127315,1.4523013 +1.1001441,.12491662,1.3439011 +.88840634,.15329167,1.5455686 +.85142021,.35975216,.41572979 +1.0448601,.32655856,.25309597 +.96268697,.41184989,.03300915 +.7391465,1.84273,.0941544 +.95065582,.96164093,1.7930903 +1.286033,.84953963,1.0529479 +.98698288,.58225804,.29117062 +.81809259,1.8573494,.33353763 +2.9178948,.69521362,1.4628453 +.50109814,1.0064761,.09049712 +.34685442,.36228482,.01116192 +.91798036,1.6877317,.35639442 +1.0763208,.95897893,1.299885 +.88166928,.34360215,.14786951 +.45506013,.97930164,.08177995 +1.3203121,.72218669,.54354507 +1.2996014,.60393633,.64097879 +1.2045573,.59887704,.19153031 +1.0597452,.10174782,.87195638 +.76950086,1.2521815,.44706291 +.81679656,1.0187966,.96718424 +.80427478,1.6986969,2.308694 +.80976911,.26788927,2.0012774 +.61920239,.27044639,.25185749 +.99118106,.18737047,.73497224 +.60898461,.24328079,1.3437602 +.63122649,.3323818,.08869966 +1.3940808,1.135294,1.5647686 +.77300599,.39104749,1.9807093 +.6505492,.28364265,.4376026 +.41536898,.76798564,.35596121 +1.0238829,1.4957841,.09781043 +1.0355686,.77324203,1.3659654 +.49166767,.59199503,.09774144 +2.1865792,1.17585,2.1541968 +.8665546,1.4239176,1.9732285 +1.7624301,1.4260561,1.1543903 +1.1383298,2.2252769,1.643092 +.83424463,.05260564,.3610144 +1.0310754,1.0786515,.05842027 +.72462385,.07710364,.8429467 +.7726199,.66416949,1.8026406 +.76221936,1.1316261,.51645188 +.59160158,.67230966,1.4815116 +1.0908499,.77819908,1.4156276 +.58845392,1.4166633,1.3868491 +1.7404215,.56303714,.03910467 +1.2478776,.21448941,.2383128 +1.1596424,1.6161201,.1309506 +.58765671,.97184292,.93933528 +.62921124,.22495691,.25450106 +.73838898,.71402367,.61081842 +1.1670627,.84749744,1.1949042 +.38578837,1.965864,1.3727777 +1.4940518,.09888349,.01348843 +.74034924,.73264153,.90313957 +.92455447,.38000968,.87012508 +1.0803148,.52588598,.96376517 +.33914552,.42858783,.6358393 +.58402266,.3570332,.29908575 +.84644092,.98851272,.73116032 +1.4578563,.45311914,.11195293 +.56947777,.19434498,.93014372 +1.1991807,.32941651,1.8896242 +.72467764,.45318137,1.5525625 +.56719781,.23075779,.71245124 +.55129199,.76306399,1.0397143 +1.7486876,.14033141,1.7881403 +1.5380433,1.7934491,1.8704672 +1.3979879,1.7961749,1.1776681 +1.222397,.60014519,.63504996 +1.5590917,1.7010312,1.9474879 +.75998895,.27348766,.04611329 +.41889068,1.7439261,.25079177 +.58143401,1.4653618,1.5910487 +.90569344,.86303817,1.1308753 +.50495544,.49074788,.63580192 +.94329549,.32184728,1.1457615 +.53969324,1.340419,.0549393 +.66515402,1.6132708,.9303425 +.98681862,.3263688,.12891175 +1.4521025,1.1759188,.23689039 +.66853651,.35264592,1.4570496 +1.1041655,1.9544158,.73494386 +.38352197,.91462519,.69326898 +.48179131,1.5576837,.4679146 +.70815789,.78339135,.64060965 +.564069,.46440181,.62219003 +1.0031687,.736947,.55563215 +.98438779,.31932687,.10137554 +.68251855,1.6688476,.35863942 +1.279803,1.3950068,.60090324 +.43669833,1.1657152,1.1883003 +.34357314,1.1535878,.39881005 +.56271861,.96601693,.85626518 +.29466551,.108646,.85861954 +2.0577507,.6922341,1.1230178 +1.0751062,1.1040317,.41951979 +2.1492148,.20334843,.15610507 +.62386042,1.0714603,2.0453792 +.61557984,.56138596,.65644565 +.78705955,1.1301483,.80487393 +.83652649,.63586225,1.0942314 +.91109267,.20123109,1.4414767 +.96833443,.54019946,1.9311067 +1.530064,.83896768,.50614799 +.41811039,.04133404,.71047601 +1.2345655,.10275081,1.1615216 +.55557644,1.2338597,.1761354 +.75449103,.38264726,.39336192 +.93495395,.13453639,1.8190567 +.23087009,2.3071311,.84909525 +.36042811,1.2531387,1.1210884 +1.3701209,.50190449,1.3939172 +.52943686,1.4331174,.02893314 +.35591206,1.1745622,.39606423 +.4699244,1.0088812,.33795207 +1.069966,.89957312,.02788136 +.66505507,2.8879523,.89576376 +.57787179,1.5785645,.9530842 +.5742972,.24282935,1.4035767 +.76761245,.20512431,1.7882901 +.4529961,.72301388,.43306252 +.48437004,.75105686,.1811374 +1.3739249,.82709578,.18434901 +.32772305,.43058339,.47287801 +.35064825,.20431902,.46998361 +.41478316,1.1234814,.9843774 +1.5266553,.07959825,.67583786 +1.2209175,1.2564377,.30348806 +.4110275,1.1029012,.82832405 +.58296838,2.3260971,1.196581 +1.6924914,.7126843,.29892252 +.5406597,.20964588,.68336478 +.52329819,.02558273,.42093264 +1.1374961,.26861893,.75313602 +1.8669263,.23204347,.88054328 +.37059146,1.2065251,.45450213 +.48547169,2.9985661,.4597332 +.97699752,.31258918,.63348517 +.66457742,.13334075,1.6510229 +1.5905418,.18135682,.45199489 +1.4217408,1.1166363,1.7114131 +.93014281,.09810532,.41661834 +.92135019,1.0061443,1.0408966 +2.6647494,.04998093,.74427154 +.54541977,1.1564776,1.0398472 +1.8290662,.22296004,.3855953 +1.0844284,.36723069,.67013571 +.64611196,.51718132,.73650088 +.26551742,1.6762869,1.0137773 +.49558576,.67420778,.13587118 +.80105995,1.2689861,.61642831 +.74680858,1.1225425,.52529376 +.99934145,.54447858,.39289441 +.73293814,.2219169,.06714253 +.66041851,.5770746,.184839 +.56004999,.7057682,1.4629072 +1.1929171,.54241897,.86014809 +.65463149,.90363403,.63586614 +1.2281173,1.2648183,.45144101 +1.7118879,.5275955,.07732219 +1.4301252,.41896986,1.0181581 +.65391525,.37824583,.44912189 +1.1803024,2.1515874,.58217352 +1.5062316,1.1557525,1.8247195 +1.9904949,.49848386,.58165127 +.92617783,.69797102,2.30449 +.40520297,.00964093,.28239104 +.8624022,.11517497,1.3430567 +1.2324572,1.5674372,.31534546 +1.8097889,.4923839,.89437294 +1.2467099,.29130742,.84453309 +.83785385,.67235542,.28401846 +.46521062,.87105324,.48040653 +.80698983,.71538118,1.5985575 +.6859619,.31893289,1.1041177 +.7417155,1.2925051,.14793701 +1.3572149,.07195627,1.4317534 +.53339824,.54774011,.93036911 +.62106516,1.9706735,.20181027 +.66364408,.22575662,.51160106 +1.0778829,1.4971599,.24787813 +.6660879,.9208419,2.1185154 +1.0895934,1.1707552,.14083292 +.59796898,1.3006107,.58651684 +1.1664579,.83761119,.44494336 +.74198629,.58983207,.92716638 +.89997488,.83740661,.5143744 +2.0838984,1.6527472,.38041852 +.49959689,.92299604,1.0408874 +1.3048694,.07695443,.76032998 +.87945907,1.2460734,.1959422 +.63316919,.41959358,1.174078 +.29359634,2.5062037,2.3736615 +.38695276,1.2989649,.06784384 +.93637606,.26705571,.28860813 +.82449497,.61383091,.10474827 +1.0360863,.39059678,.32817346 +.2713014,1.0198394,1.7035674 +1.387389,.1691336,1.2249552 +2.697961,.05064941,.33566536 +.5520078,.44135582,.15118749 +1.0071522,.88218704,1.6515318 +.27420808,1.6828252,.40246668 +.95587238,1.0410607,.32213831 +.96356908,.06461815,1.0790448 +.89572203,.88133507,1.0507819 +.78724913,.91934115,1.5346235 +.78328469,1.2189163,.03262934 +.32828997,1.6162163,.73296768 +.68138321,1.31088,1.0908564 +.84999982,.06956197,.93427636 +1.2932822,.11684052,.42544032 +.47119393,1.9385788,1.395719 +1.7100829,1.3427195,1.8390746 +1.4852881,.0933114,.76216966 +.67489634,1.3744471,.37891308 +1.9430378,1.4472657,.77862681 +1.811625,.02314532,.15408085 +1.1994526,.71854611,.23527781 +.44024367,.90811933,.99250774 +.84239323,.11030162,1.2657569 +2.4803743,1.0479733,1.447358 +1.7213995,.36381892,.40961404 +.79200892,.41886262,1.444594 +.42728364,2.0970775,1.4647291 +.86271253,.81460514,1.6433546 +1.2074385,.01625138,.87164748 +.54091397,.26181309,.47081718 +.90574897,.86163466,1.7109457 +1.2988509,1.4122822,.98874569 +.88873192,.39003724,.35603441 +1.1883335,1.1543308,.92858465 +.37079689,.49278329,.42233479 +1.0674104,.26808439,.21546431 +3.2169141,.13433931,1.4215665 +.56149401,.40767049,1.9470472 +.50698276,1.2748154,1.2092585 +.60374013,.31220425,.70093384 +1.2072548,.23932258,.44763415 +.63848476,.67557247,.97949154 +.73183512,.72563762,1.3352249 +.6124797,1.3464974,.06801321 +.69651295,.00512422,.96199014 +1.1155657,1.7561363,.40310026 +.59295095,.17265544,1.8081494 +.84789062,1.7731101,.48636185 +.56210388,1.1488324,1.8920509 +3.5013114,.38272548,.34370809 +1.4248237,.59848403,.46673754 +.56155015,2.8156346,1.6575612 +1.0209263,.37509833,.29628634 +.68028413,1.3194494,.92124457 +.53841824,.72186516,.29472317 +.91848956,1.1995462,.05460215 +.70463113,.62560574,.03149215 +1.0121304,.44007269,.41115826 +1.8712743,.1054988,.746928 +2.4302268,1.1304076,1.9379315 +.77121877,.5356773,1.4005933 +1.2025795,1.4736574,.03411384 +1.4483047,.10690187,.08343797 +.24407279,2.2531709,.20431854 +.81932705,.31077566,.23851657 +.52989568,2.4868342,1.4333622 +1.0853165,1.2344268,.80081227 +.63882616,.6582156,.84605195 +.98618007,1.7871888,1.1282762 +1.3733888,.69755216,1.5787382 +.82474356,.7094603,.124091 +1.6776797,1.3987394,1.7785767 +.54599672,.94852881,.13296641 +.59303836,1.8512439,.34504329 +.62144175,.48286763,.48021861 +.55132748,2.6498406,2.3569241 +.31996672,1.927119,.45486767 +1.4247494,1.156359,.65685209 +.59466435,1.5490174,1.9509241 +.86162719,1.0197678,.44515485 +.50150964,1.6759807,.1931879 +.52455468,.50339713,.6369269 +1.9963974,.40514244,1.4401798 +1.1486961,.20254443,1.0328869 +1.066191,.19835172,.15901208 +.63807121,.67763035,.27007995 +.72574481,.42106109,.69898624 +1.7291162,.58813769,1.6459327 +1.2283289,.46700606,.3960281 +1.5470934,.74136204,1.6846113 +.20053755,1.2428524,.93102481 +1.2761117,.31103737,2.2050939 +.80101764,.95656184,.04369141 +.49063697,1.8305256,1.212899 +1.4180794,.94969304,.76805861 +.84748107,.40566801,.95461581 +1.4290161,.88533379,.77973653 +1.2824939,.16666595,1.1850466 +1.2894409,.07349802,2.3149833 +1.8363994,.72529481,.3466731 +.89669367,1.3484312,.03255016 +.88845468,.57486773,.37250832 +1.863765,.16123178,1.11692 +1.1813497,.62894669,.1284394 +.44415179,.74540757,.12106062 +.43381145,.94785281,1.4332046 +.57129762,.05947879,.94447718 +1.4400784,.7622106,.21361708 +1.5466372,1.1671416,1.2778287 +1.8363494,.56809357,.52469365 +.65801657,1.2758549,.90453316 +1.6405633,.23170725,.0249921 +.62017439,1.1807342,.21690417 +.4183164,.65501771,.14771412 +.5699254,1.09822,.16532058 +.87548708,.6479397,.4372399 +.37474594,.95361548,.49754566 +.81167055,.08828657,.53362249 +.76419821,.15868645,.87610233 +.4355767,.35120233,2.2776896 +1.2436567,.5192457,.88020457 +.77829312,.60429935,1.2426985 +1.5103822,.99348962,.50173359 +.29773647,.21715774,.37695779 +.9557133,1.4358815,.42083892 +.56413019,1.9704286,1.1541065 +.60694593,1.283036,1.3891821 +1.2427183,.05557631,.03531687 +.50728036,.70004255,.64560538 +.51273906,.08260371,.57712555 +.83676689,1.4973394,.87373947 +.96463594,.37588916,.20155466 +1.0328054,1.2560414,.20951441 +.56438284,2.3704681,.91125834 +1.1626814,1.0920031,.67812247 +.80250347,.90901818,.5419189 +.46060196,.16433701,.94713618 +.75068185,1.697094,1.0943189 +.96821552,1.5048423,2.5797112 +.29137249,1.0006036,.76440082 +1.070837,.71267288,.61794279 +1.4751486,.26759633,.41122307 +.72563611,2.5672455,.0317846 +1.1884258,1.0761028,.49019671 +1.3039449,.11738925,.37375949 +.4430902,.00291969,.46704986 +.46359302,1.2302087,1.4999876 +.81742259,.88970973,.18480348 +1.8511472,.22454696,.426751 +1.2467174,1.7151232,.5899309 +1.1138099,.4869271,.51634339 +1.6176575,1.4748744,2.8380062 +.40545349,1.9146876,.02830466 +.35602561,.22259126,.55008596 +.88753258,.79172779,.50875046 +.97898961,1.9385938,.00217148 +.75473484,.90217569,.46814496 +.84818628,.22483195,1.0222785 +1.5835519,1.2675936,2.2027416 +.83866423,1.3680922,.1383349 +2.1021824,.0272111,.21165468 +.59858301,1.5814523,.69943794 +.38689416,1.973862,.95088144 +.49306955,1.0717426,.65115288 +.97954368,.44297158,1.3281716 +.69707297,.17995111,.34024777 +.57364759,.62427944,.15261971 +.72154078,.32001979,1.3980788 +.89610895,1.3403219,.80109569 +.46855227,1.4199855,.25864218 +1.3320368,.36341365,.34637526 +1.6262976,.0529079,1.5963598 +.4739832,1.4041498,.97847102 +1.3633236,.49140143,1.1980901 +.97018285,.44046848,1.6356821 +.78727751,.87560162,1.6501463 +.52793219,.00790139,.04925299 +.61681267,.02300431,.10094044 +.79583642,.97775766,.00614595 +1.4966644,.39684201,.92378755 +.50993457,.29402225,.83255893 +1.4937792,.34453236,.67700708 +1.2357384,.31950985,.66678407 +1.0471319,1.0837754,1.2453486 +.32835631,1.0466721,.06632876 +.6747582,1.1331206,.29666881 +2.612328,.11505851,.84732799 +1.1739774,.74697196,1.3538474 +.58892334,.90003381,.53618028 +1.8942306,.11243024,1.4244559 +1.9017081,.40569394,.36441939 +1.4021412,.1511631,.36583957 +.65628095,.01353282,.06871886 +.94452586,.44140843,1.3862023 +2.1509001,.11317691,1.8986991 +.37424507,.69827458,.13184962 +.905832,1.9793554,.19360433 +.58730423,.94073624,.73380945 +.54409465,.04247703,.58637723 +.46659869,1.2431432,.65153072 +.53339782,.37149815,1.1820012 +.76744401,.5930494,1.5968421 +.49894764,.73695209,.49986295 +1.2298045,1.464182,2.8546411 +.36177514,2.4455666,1.131382 +.71224156,1.4149677,.12630198 +.84504676,1.8091788,1.5431653 +.74075157,.81097278,.82314301 +.59608041,1.2741827,.77215908 +.49688104,.03362882,1.0969486 +.45069965,.73574519,2.2981596 +.70081553,1.3724244,2.0848919 +1.4380449,.10583943,1.2976993 +.76330909,.76705141,.05607469 +1.166279,.00814619,.47251256 +.64081036,1.3055146,.58155995 +.61192898,2.0057226,1.2626327 +.38946325,.07339392,.83098338 +.40533271,2.6096828,.59172375 +.97401224,1.7951466,1.1277286 +.81018337,.83560941,1.0956466 +1.0579757,.1145715,1.0880635 +.37157242,1.8469109,.12473577 +.55158551,1.0055225,1.8019954 +.8709751,.49158507,.47095198 +.54292225,.47213761,.04072861 +.82165543,1.6001604,.23559357 +.26283969,.09276636,.28300349 +1.4143782,.30936501,2.2027291 +.71116807,.23885308,.82446243 +1.6801788,.48295349,.34554774 +1.1795857,1.503214,.92884264 +.80113208,.79155736,1.4473115 +.88346505,.40678302,.6462539 +1.4989767,.64119641,.42186502 +.33369316,.31514991,.30112315 +.2951056,.99658261,1.0413293 +.71700566,1.4331378,1.0265072 +.78941715,.84761065,1.3777412 +1.3946977,.82946047,.41410941 +.62215202,.26068107,1.4623028 +.66059302,2.497806,.42424382 +.54375668,.86946195,1.5515216 +.94559286,.35787319,.37684385 +1.1946866,.0076111,1.0451901 +1.0309796,.18252081,1.2468424 +.41373097,1.662513,.09659558 +.54927469,.37619236,.62399101 +.6664931,.69304698,2.7766385 +1.8203026,.35970547,1.2231118 +.60413611,.06049444,1.0649328 +.66757837,.17477355,1.0033179 +.60840711,.96103251,.41084776 +.69813807,1.2822596,1.5608283 +.73076608,1.6515383,.18616508 +.65147009,.20348323,.03242864 +1.0321535,.28218991,.75624788 +.64287425,1.7477303,.49711454 +1.1971802,.53659147,.36726421 +1.5362259,.76264939,.17590677 +.82035756,1.1257343,2.1730506 +.97461522,.3145653,1.3972416 +1.1853336,.09153142,.48403952 +.3946104,.90267299,.8029833 +.94158357,1.2035492,1.1136075 +.42700666,.93369586,.85055626 +1.226344,.78661688,.68771475 +1.0250871,1.4515143,.60342116 +.72314684,1.3208742,3.1438388 +1.0712979,1.1617861,.14047571 +2.2662195,.22275039,.41121734 +1.3634019,.51501027,.97491043 +.79895642,.12597093,.39532032 +1.0161778,.23156995,.70845504 +.4855003,1.1712177,.85471291 +1.3547708,.33496371,.81083036 +.65569684,.16549494,.47949263 +1.5434579,.54588554,.02367622 +.50638476,.99258252,.43657021 +1.2581786,.70625783,1.0980204 +.93748255,1.3518644,.79765002 +.53753656,2.0564248,.80148625 +.63313767,.47345859,.14179139 +1.2527113,.84813985,.69989637 +.90505597,.55001506,.54673201 +.50185464,.68267839,.56740738 +.7098842,.35065727,.44388669 +1.4966464,1.3831129,1.0147489 +1.692873,1.2058292,.61165986 +.83121867,.01023779,.90610586 +1.8610189,.66442634,.48139217 +2.2037686,.66658405,1.8485542 +.90710851,.96210498,.80205184 +.59109148,.39950866,.23023398 +.29004763,1.1430691,.02253718 +.2845921,.91515101,.04747073 +1.2060099,.27260856,1.590148 +1.4249714,1.1791012,1.0392792 +.30520902,1.5485261,.35063339 +.79190506,.48691759,1.0429617 +.94573953,1.3074748,1.0100172 +.54018857,.32181081,.0080463 +1.2295285,1.4283493,1.2987085 +.73549057,.85543976,1.154928 +.92487687,.25097597,1.9849671 +.44525823,.21372882,1.3097697 +1.7064484,.72156021,.2803742 +.92836647,1.2656994,1.6161684 +.75680708,1.3633231,1.6865209 +.63579429,.87200973,1.0694736 +1.6901227,.89174807,1.4838333 +.90146286,2.2015375,.30134166 +.56800209,.21414326,1.3229449 +1.5011475,1.8860816,.56093593 +1.0468022,.74262038,1.5970392 +1.085098,1.0042725,.84872034 +.72216018,.4043211,.92075716 +.68034177,.14563673,1.0906452 +1.3339543,.90032569,.93473052 +1.6821751,1.1964202,1.5357165 +.74933943,.32268573,1.5667811 +.77155823,.94878848,1.0269213 +.72125968,.53549275,1.8315648 +1.7085313,.31030967,.74554005 +.64529902,.93348962,.15323146 +.99737116,1.0784516,.48440968 +1.6742074,.1791657,.08417598 +1.3299881,.91721539,1.6634387 +1.115538,.46326598,1.4805332 +.69508082,1.7436354,.09099146 +.64149535,.49474113,.07876614 +.54134951,1.5690052,1.5141873 +.51100513,1.4299772,.64995245 +.50233566,.34927914,.13345541 +.46490736,1.0171482,.04276468 +.54376402,2.0470352,.63528922 +.84729732,.44864576,.10642895 +.33507677,1.4915054,.04568153 +.81751203,.91734589,1.8792938 +.5387949,1.6105599,.66381461 +.46594623,2.2996921,.1681 +.96009995,.57340585,.75373446 +1.9820593,.47007547,2.2621213 +.77649443,.53983144,.77696305 +.83797696,.57672679,.02341118 +.78117607,.8556978,.14456436 +.78637441,1.1780258,1.0464415 +1.7294122,.75217428,.17375891 +1.2970793,.12632885,.67353251 +1.1221893,.41254696,.91070178 +.52513169,1.8100182,1.1469256 +.47215848,1.2596846,.60519572 +.31483754,1.3045834,.29811622 +.92517371,1.51078,.8939391 +1.7562602,.69216817,.3508837 +1.5069645,.01054671,.39763265 +1.8703303,.69247129,.31106733 +1.1076349,.62367284,.5481049 +.79126009,.19251031,.40403044 +.59500887,1.3907846,.09835587 +1.5383781,.09809704,.14217765 +.49067995,.95742144,2.2312466 +.83948389,.26919329,.29138026 +1.6448238,.54630985,.39055208 +1.8386606,.93427532,.55497379 +.56146272,.72047393,.4604568 +.77805326,1.6772329,.10519775 +.4293231,1.8453142,.42101812 +.63788475,.25612441,.92673004 +.69877864,.31487498,.61097761 +1.0097881,1.8128169,1.2804439 +.83295201,1.0672311,.19279095 +1.4459975,.81778135,.25829579 +.60579182,.37962292,.45923057 +.96892229,.38866151,1.3204609 +.76687674,.30200516,.90520888 +.88761188,.32358038,.17352252 +.66281519,.3961194,.22101884 +.48987007,.72097019,.10343307 +.55966921,2.0550804,1.0563144 +.62629644,.42568337,.55120802 +.91044658,1.1609593,.71291362 +1.0090496,1.6622035,2.3498442 +1.6192091,.35071094,.62624021 +1.1771422,.323044,.66993807 +1.2976559,.6197806,1.2533191 +.75012028,.69733022,2.0343625 +.17202137,2.1996763,.45797032 +.71855171,.38275209,.69120028 +1.321747,2.6637385,.53855923 +2.1870852,.5165464,1.2109991 +1.4442881,.22510635,3.1972439 +1.1020248,1.1515684,.43559828 +.56209616,.28266598,.87713165 +.91575573,1.2336268,.52091829 +.34022368,2.1813842,1.1506931 +.88439819,1.5642623,.24992215 +.53348566,.35050121,1.4184018 +2.3636023,1.002569,.79673723 +.67558524,.22824203,1.1985922 +1.2890069,.1937499,1.1668701 +.35303697,.26329148,1.34158 +.89895535,.35087689,1.350633 +1.3052766,.43285384,.16973264 +.84647625,.4823673,.01914587 +1.2926733,.43042449,2.2754214 +1.0711611,1.4872391,1.4305994 +1.7179882,.07367833,1.7477017 +.70547967,.17267015,.25178736 +.62838155,1.5302232,.39913377 +1.1827679,1.0619042,.96493056 +.61951591,.12937762,1.1216429 +.40274006,.32205558,.58367355 +.84789325,1.4098223,.85394177 +.70874727,1.1279738,1.0161514 +.57798397,1.5244173,2.8955914 +.84820378,1.3396698,1.4459026 +2.0780586,.15567099,.53376155 +1.6934113,.54439138,1.0870995 +.3860652,1.1268229,2.0432041 +.52190111,1.422769,.05842026 +1.2607506,.3175874,1.5467882 +.55508803,.62754171,1.4855131 +.30394397,.6682217,.75977524 +.81063273,2.0096679,1.4714372 +.69329942,.73422148,.19928996 +.62248347,.40828891,.30236436 +.62285712,.85495016,.53527418 +.50046005,.57275229,1.0995266 +1.4247081,.07915918,.9386829 +.50569024,1.3171573,.71561184 +1.5342815,.58646112,.18389578 +2.9849744,.22356445,1.8324802 +.59787979,.54169511,.37675027 +.83812763,.18589314,.2457337 +.80363292,.82376951,.75584943 +.89308012,.60525415,.83387387 +.89792559,.62282829,1.5585419 +.90355659,1.8029153,1.0401757 +.71648529,.41080799,2.0728297 +1.6175599,.66171361,.17524702 +1.1514028,.66772345,.45362552 +.95194926,1.4701303,.56866801 +1.0309911,.72134292,.17397337 +1.0088199,.64535498,.59706757 +.88489113,.18228245,.04804188 +.99805753,1.5092573,1.024318 +.4495615,1.6672146,.04513042 +.83934311,.24433471,.50403542 +.775148,1.2027304,.30069859 +.34590216,1.325089,1.4546273 +1.5671814,.20863885,.43268482 +.59487064,.84731523,.72802674 +.51486903,.18909521,.69780784 +1.1486617,2.0541171,.90506031 +1.2326434,.14749881,.51944717 +1.4734592,.22776892,.05427564 +1.3724314,1.485968,.23851212 +.60594591,.30626009,1.100466 +1.0177427,.01089816,.93674677 +1.0748736,1.1291242,.44432236 +2.1763667,.61077242,.75942554 +1.04694,.75274127,.85994457 +.54435055,1.2223312,.0529533 +.68887486,.6437491,1.6163284 +.76398932,.31155926,.24128533 +.55765173,1.0734988,.40305666 +.58151667,1.5416907,.76834457 +3.4961746,.39054279,1.1912151 +1.3601018,.36269086,1.6501228 +1.6331536,.00186102,.85122717 +1.4679129,1.4077664,.3262045 +2.0952237,.01920198,1.4495495 +.76247805,1.8183303,.6653931 +1.0835266,1.2293038,.71635336 +.57098537,.56415535,.39407197 +2.8112962,.03753856,1.9407753 +2.0477855,.83991846,1.2359166 +.73176759,1.2150821,.45303238 +.68959164,.30174528,.38148113 +.29248441,.80835378,1.21478 +.86117805,.38110415,.51911983 +.86864386,1.3335763,.46600466 +1.3066228,.28266722,.3485374 +.59526826,.12075965,.02454444 +.61152913,.0761209,1.1930953 +.39128503,.53529583,.03849507 +.69828672,1.1139744,.22169088 +.45975336,1.03262,.08771847 +1.5195502,.48337838,.58230818 +.83607506,.7449357,.26811286 +.72867635,1.4690286,1.2569657 +.91847726,.87336916,.02640235 +1.4816112,.47941589,2.4146202 +1.2477684,.39808064,1.7998162 +.8233562,.85385395,.1596222 +1.95292,.13489389,1.5353828 +1.060953,.74797227,.0647875 +.71589541,.56792386,1.3232026 +1.6440004,.39128402,2.2509375 +2.2867154,1.2323415,1.3841355 +.51737102,.75932441,2.1336602 +.95311637,1.6600599,.6192644 +.42014166,1.8481411,.71328473 +1.2342352,.31288956,.39077512 +.61281509,.53850376,.42960545 +2.1891015,.86711535,.32143735 +1.3959208,1.4191138,.92111006 +.63980214,1.3216659,.48202458 +1.7707636,.03697202,1.5744275 +1.893032,.79124569,.04137864 +.45308427,1.1731158,.24926409 +1.3510987,.05119289,.66953894 +1.0139791,.35306302,.07324506 +.8321646,.4277198,1.5678828 +.63660657,1.0183155,.15465725 +.64548816,.92834994,.27165415 +1.6289649,.10779583,.21951766 +.80801497,.67414525,1.9012246 +.49495115,.16813406,2.0748611 +.89291097,.0825659,1.8223512 +.64060235,.9288303,2.3457131 +.49232496,.44927256,1.3520756 +1.332715,.24351871,.87846174 +.99593337,.07193834,.34723737 +.4674483,.15786319,.27763463 +1.6186431,.34917346,.60685992 +1.3146198,.60922919,.86110713 +1.5280097,.02211415,.68992194 +.66804532,3.0896606,.15723377 +.67014969,.62375897,1.3810606 +1.453679,.28161699,.15283779 +1.8207323,.95585944,.24761806 +.76063218,.56760622,2.5547504 +.39081419,.53577004,.7145848 +.35075472,.14834085,.20079366 +.47245755,.95128073,.17186846 +.366712,1.1118106,1.0992076 +.79456633,.22833958,.10414097 +.49883188,.48492131,.55309663 +.59287626,4.1494509,.11734863 +.6606289,.40254297,1.6903054 +.65074859,.43241596,.01726744 +1.0454813,1.3518695,1.6197566 +.68487616,.80521136,.40801452 +.66715397,.14125483,1.4962679 +1.1580791,1.4694549,.02984496 +.62469925,2.4056148,.18799914 +.60197574,.19688164,1.5887371 +.7605649,.74465244,.66723991 +.49344508,1.2322221,1.9368042 +.1805198,2.132174,.33150947 +.99137779,.01551643,.72138391 +2.1732025,.37447078,.14438653 +.48580858,.93734053,.26588501 +.59050102,1.5105289,.89769682 +.7336753,.58531934,1.168276 +.93141739,.33119914,.68554489 +.81753209,.85843921,.10462345 +.87156676,1.3384375,.95826278 +.7566716,1.3744495,.16991967 +.77812364,1.5840422,.72108378 +.50013575,1.629951,1.0098988 +.63315966,.44073381,.43679823 +.89411889,1.0614006,.34060754 +.4883398,.9937063,.15411802 +.94102126,1.0811747,.90990322 +.97552361,.03692465,3.4676642 +1.9508697,.79985319,.67452429 +1.1264546,1.0706641,.22986476 +.47395672,.17346224,.42688513 +1.5192556,.30710849,1.5706204 +.93653292,.26082745,1.7172757 +1.0916235,.46681285,2.0528548 +.87679113,1.4525054,.36691208 +1.3359639,1.456739,.75431948 +1.0858734,1.0898177,.60776313 +.72553506,1.0054889,.53681145 +.96407399,.47402052,.24616667 +.81885686,.39104866,.34867988 +.42704708,1.4052958,.06775651 +1.4192091,.29365419,.1539882 +.42187899,.31172884,.57101104 +1.1579757,.87833445,.13992124 +1.0939767,.58227119,.65647482 +.91279955,.30106658,.14967328 +.7077287,1.7656452,1.1598806 +.81003433,.78112551,1.5042536 +.24619674,2.2210687,1.0077879 +.3278779,.36203034,.45516157 +1.7170068,1.0398123,1.1731725 +.70835046,1.0185208,.52277329 +.43968804,1.171675,.34198382 +.73874368,.41355172,.04973661 +.68968169,.44858764,1.1499926 +.34636039,.98835505,1.6654426 +.94398392,.34069307,1.343558 +.89523299,1.4810556,1.2778157 +.34185966,.78116538,1.2519391 +.57266486,1.629792,1.8960846 +1.4967201,1.3749158,1.0111092 +.70662025,2.152434,.08475457 +.67959995,.2726176,.26884675 +.72773484,.33409121,.58614946 +.63928385,1.5297103,.14920366 +.82895706,1.5906739,.11089778 +1.9957515,.24147107,.45267911 +.43233647,1.6026351,1.2466297 +1.4198906,.27957794,.35128615 +.72527949,2.0473212,.80024293 +1.1811841,.49585915,.25914517 +.75212417,1.8650906,.56940619 +.72495158,.35444481,1.1412891 +.5845378,.90411534,.07600784 +1.0625505,.28263853,1.8277002 +1.0503082,.9101302,.13834717 +.51923456,.55030616,.46337641 +.32322788,.72905175,.97994134 +.53126425,2.316039,.32048611 +1.0714283,1.2651087,.20906049 +.8803214,.67154784,.42121141 +.5634775,2.1562737,.01446258 +.75032559,.3585927,.11967334 +.65823206,.35689957,.14887599 +.78947529,1.0980785,1.8506993 +2.0661392,.00347333,.44446598 +1.3366587,.62909163,.53752817 +.57786978,.00006124,1.5164464 +1.8834927,.01392435,.91302971 +2.5353176,.12125181,3.7388521 +1.0137704,.03350611,1.2795924 +.47808728,.68672856,.29224749 +.32258794,.86381095,.14843674 +1.6300281,.05234446,.94496349 +.72056583,.16068029,.67014345 +.60994461,1.2064198,.19965204 +.67047994,1.2994406,2.3641023 +.72929179,1.2741169,.56791503 +.49916738,.23190382,.50402832 +1.147239,.4773831,.42686696 +1.5827858,.7315835,.8120357 +.52729563,.52097411,.96598494 +1.9030736,.51845768,.2682819 +1.2822804,1.5073648,1.9647555 +.34389347,.70633593,1.2498352 +1.6487475,.39309726,.37766939 +1.4695303,1.1838474,1.1465708 +.44666596,1.2523885,1.4717379 +.69084537,.10881886,1.4439069 +.67837363,.2685604,.51174429 +.86391771,.62405791,2.2956359 +.66749263,1.3986903,.8392532 +2.2176533,.84575791,.08513043 +.97627637,.40850759,1.716698 +1.8587587,.32708115,1.4879948 +.73222786,.84797207,.48097789 +.41324724,.48259405,1.2050388 +1.4818187,1.0538896,.68422239 +.74352065,.26190083,1.8807265 +1.9905568,.93154695,1.4422804 +1.166028,.8621426,1.2868026 +1.9330419,.34356749,1.0403084 +2.133562,1.1681518,.24351482 +.46558772,.03004991,.79477302 +.63528306,2.4691763,.24946435 +.77684336,1.1003051,.24198919 +1.3985506,.20748919,.07594403 +.72799763,.19212728,.80410153 +.76297935,2.296282,.96166091 +1.2278514,.13646589,.4346428 +.68595227,.1460991,.44553071 +.4237773,.20244273,1.571961 +1.4140774,.18873605,1.3378497 +1.1850247,1.2584251,1.1948218 +.38226021,1.5887377,.39176179 +1.0886661,1.0782707,.1515784 +1.1668741,1.4932969,1.2897223 +1.5236547,.75877776,1.9242889 +.71911684,.04338027,.34485749 +.8441969,.14616165,.43443694 +1.2431747,.05589997,.42106861 +.77865516,.49705894,.36506043 +.98555189,.0632246,1.1374413 +.7006016,.57177848,.90329372 +.85590196,2.0395046,.38347085 +.45071928,1.8083169,.23475993 +.90545772,1.3850184,.19658915 +1.2920303,.0945257,.92848277 +1.0384056,.32220671,.21719019 +1.1469153,.14145994,1.0539555 +1.4439253,1.127915,.08214001 +2.0966379,.15806396,.30294893 +.88092088,.89472599,1.3914811 +.62291612,.34696242,1.0417238 +1.1298077,1.3211628,.74430708 +.68850146,1.6841386,.34759039 +1.026385,1.3538616,1.5080086 +.72155069,.3070015,.18662991 +.56107711,1.4620629,.1743992 +.47577269,.34420003,.01360533 +.55138449,1.9343525,.83375529 +1.8622484,1.3867754,.28250618 +.5485965,.94521381,.15531043 +1.4384468,1.2605892,.62750457 +.44282923,.9620535,1.0068726 +.4521528,.72281636,.98206693 +2.3960903,.10553254,.17723469 +.49616961,1.3568966,.64241341 +.59565856,.79441734,1.1689427 +.61110534,1.3545408,1.5237309 +1.4081628,.53471861,.06568183 +.50888563,2.5271781,1.210989 +1.031774,.49431391,.52971383 +2.4927828,1.0098248,1.4915236 +.21948614,1.1249445,.7293293 +.98526939,.98231565,1.5530159 +.23985376,.68037138,.40890669 +1.0252412,.33552402,.60929246 +.71057796,.67791158,.57529819 +.87720953,.13281773,.40587277 +.45796697,.63398405,.060066 +1.0049344,.35453333,.36912182 +1.5175608,1.4619657,1.4386946 +.7773288,.2481216,.53788366 +.62353126,1.3274752,1.2200924 +1.3555773,.17593152,.9543626 +1.0471654,.33643649,.22993735 +.61071488,.19071055,.35834882 +.80639051,.52979835,.49419522 +.93536588,1.4088388,.40671021 +.3511766,.92451289,.69147302 +.81781572,.71681353,2.2499729 +1.1603253,.65915493,.9860813 +1.0692094,.65615435,.28878107 +.67811036,.83840542,.24887704 +.59895786,.53029715,.1168628 +.7533907,.54799391,.36752268 +.64829144,.68606552,.78325311 +.524439,.6439376,.96188557 +.98777199,1.7633355,.01586165 +1.6679532,2.1231785,.6541238 +.77094311,.46225711,.26434024 +.77171354,.21390836,.91240146 +1.5615329,.08230899,1.0955077 +.83118328,1.0221301,.30693531 +1.2101106,.99280231,2.3536457 +1.0243941,.85442984,.80002289 +1.234925,.09997335,.07551142 +.92743076,.11472764,.04591595 +1.3352906,.96413804,1.4819697 +.73397262,1.0151427,.64341946 +2.2162118,.83676238,.37827055 +.76630878,.07043391,.64389479 +.80785194,2.2067715,.38465638 +1.8567283,.87920026,1.5871439 +.77193408,1.7485391,.86149422 +.44350304,.56332899,1.810377 +.43766945,2.0993853,.04264104 +2.6867142,.2870147,2.0051544 +2.4102359,.01175369,.00644734 +.70760768,.9938054,.48407774 +1.1159916,1.0917528,.43294204 +.5395669,.71588993,.43499098 +1.3163558,.08715471,.81989086 +1.0823628,.58188923,1.0557277 +.89476305,.75956177,.79608781 +.4899581,.25048642,.4415825 +.57234389,.9999851,.85517867 +1.0041383,1.1968296,.30433838 +.96150969,.62001891,1.0466522 +.30775804,1.6185271,.62666505 +1.0606435,1.4150487,.51829473 +1.5057275,.88318576,1.0065265 +.51444666,.14890238,1.3638894 +.34184539,1.0293743,.05899636 +1.0344991,.18470133,.10188388 +.95134503,.52953994,.52601686 +.56047609,1.5958435,.05735513 +.54369679,.76264594,.74743161 +.73979228,.91435121,.86459663 +.44634576,.33096463,.07840725 +.67256164,.04667405,.49363016 +2.0515823,.26137649,.91275001 +.63080903,.82351942,.8877114 +.82955613,.38837045,.80134507 +.45022419,1.1921343,.74455915 +.87578632,.60680703,.51731941 +.53328688,.71072688,.6423988 +.89004603,.41036142,.30272844 +.60259158,.90549959,1.4650929 +.35532878,1.242213,.17629603 +.68694494,.45224218,.39945125 +1.0729625,.41973961,.54698157 +2.1871175,.20485801,1.4463957 +.81843895,.23038665,.43834462 +.66659896,.26270504,.41397443 +.76961156,1.763859,1.0900707 +.6476236,.17100287,1.7419517 +1.9685395,.20343824,.25861482 +.40107887,2.566999,.78216049 +1.7021401,.0840367,2.8515528 +1.3935053,1.1684531,.13115404 +1.1872489,.65508523,.50535327 +3.1550748,1.2013978,.8199179 +.40884976,.56122017,.91325009 +1.0409332,.05546329,.42977391 +.32359319,1.2866046,.8731601 +2.2143065,1.9005034,.31402875 +.5975009,1.4260741,.39505895 +1.1479373,.23153172,.6792223 +1.7457184,1.3996501,.87028759 +.35255322,.36502446,.78641272 +1.011931,.1517299,1.1391505 +.37829718,.33699482,.58843183 +.65950353,1.901117,1.8604787 +2.2213712,1.9581612,.91560901 +.87173628,1.2771194,.18774768 +.99646877,.64922264,.29796774 +1.0390675,1.5829849,.9437992 +.25023156,.40433881,.60715627 +.43021268,1.9010212,.96761768 +1.3194343,.53664083,.97337973 +2.0677334,.53392375,.22132862 +.82058589,.65411529,.33957133 +.65077505,.66118027,.72201611 +.73394745,.50172465,.22061222 +.80486009,1.2973098,.36592778 +.41846216,.79745564,.38045687 +1.5321275,.83503916,1.199219 +1.8002567,.06224643,.05524702 +2.6606428,.79871165,.23550199 +.43555446,2.5050171,.80656633 +.53862024,.75334345,.75238896 +.95741599,.90268186,2.2473564 +.38554557,.66419,.4156198 +1.1970585,1.896528,2.160683 +.85245294,.67601955,1.2635132 +1.0968129,.84249116,.90709906 +1.1917221,.16211253,.33417756 +.35177705,1.4704289,1.7621317 +.58534811,.04051656,.37768436 +.85199723,1.1069297,.7092074 +1.6483545,.91128026,.02382789 +1.7233094,1.2147229,1.8626775 +.82290495,.49950279,1.3519762 +.59945109,.57330952,.26852843 +.88374479,.45209281,.56319443 +.89301879,.95966419,.3476811 +.50467409,.74895386,.29334352 +1.267682,.86203718,1.591459 +1.1775471,.22212898,.17824318 +.54963533,1.868618,1.5395328 +1.1627498,.96884167,.4810368 +.87798373,.25949373,.75833967 +.22276331,2.0028762,.69063497 +.79811267,1.5514246,.92935298 +1.3542225,.37924657,.55357836 +1.3064044,.12720257,1.3645142 +.68892432,.66982988,1.0068133 +1.2754401,2.6050876,1.6979937 +.60684018,.2128129,.93236567 +.35358327,1.3560866,.84023537 +.98190125,.61897329,3.2317775 +1.8318515,.31578828,.63733173 +.6102019,.60457606,2.0686185 +.49115028,1.040155,1.1340313 +.38318432,1.5807271,.82801216 +1.1152053,2.0882357,2.0255523 +1.4478641,.82715501,1.1825735 +.41900061,1.0063241,1.1263268 +1.4879969,.74285729,.30204631 +.79091666,.98234279,.60961036 +.8199944,.1141751,1.2457266 +.79793752,1.7023133,.84002213 +.60568664,.23417556,.01960776 +.89784194,.62870049,1.3377963 +.4025684,.42070144,.66402941 +.74933363,.81139605,1.174714 +.74879191,1.5895492,.96168649 +.91733391,2.0871372,.28215596 +.36770588,1.6224595,1.2858147 +1.3289014,1.0527232,1.4419602 +.57038167,2.0596029,.22799829 +2.4037855,.13671946,.0143353 +.49002941,.83962387,.91530966 +2.1504835,.47063147,.60236735 +.36152846,.86464381,1.150657 +1.342776,1.6315537,.47565248 +1.1238394,1.3807521,.69177942 +.83276659,.63363426,.91523892 +.73876949,.09484836,.17186587 +.74162983,.85579483,.83933862 +1.0694964,.14954309,1.495666 +1.031868,.60724938,.2187139 +.93446907,.63491507,.62951547 +.60121525,1.6988623,.0680659 +.42769195,.87583944,.37706131 +1.3714509,.29619455,1.027135 +.72759294,1.1568919,.36295301 +1.8232244,1.7743688,.7340745 +.56261185,.71871348,.71457567 +.77192696,.42240641,.64440958 +.65613982,1.0893799,1.1704669 +1.2532624,.15928316,.15637814 +.59780678,.29428338,1.0780932 +.68966905,.87306927,1.2175329 +1.4218345,.45328079,1.2867179 +.48563774,.48998076,.31735386 +.81818441,.27765465,.92272639 +1.7985819,.51053281,.32832047 +1.3044246,.00301696,1.3102807 +1.52717,1.7489348,.24507608 +.59176447,1.5582389,1.467528 +.55856544,.28012919,.03387946 +.40616858,1.2434465,1.2283639 +.50973805,.68239749,.07001709 +.94344253,.09422855,1.5073237 +.85594551,1.0824126,.71143481 +1.8813053,.40349095,.00076101 +.30406555,2.2043059,1.3769167 +.68655186,.15602483,.78275609 +.99600325,.39043163,.82529502 +1.131655,.92056422,1.0037906 +.98230189,.730083,.19840035 +.40105168,1.7275188,.76770835 +1.9925055,.20417242,1.1236828 +3.9487823,.17031599,2.5170356 +.60211351,.36905113,.30674851 +.27953634,.96749332,.34780306 +.45109375,.94318583,.83156323 +.98382934,.21561946,1.0248668 +.61895715,1.7845877,.1014958 +.70321586,.48559418,.05437712 +.37576763,1.3092063,1.0009052 +.87218587,.73008815,.62707558 +.3412386,2.0024505,.06455187 +1.0174112,1.1487906,1.8407112 +.29656505,1.7046633,.06080655 +2.099567,.26623623,.78561109 +.68773763,.67556478,.00846925 +.67303732,.26600109,.92407333 +.37010704,.17024638,1.3998214 +.62400454,.73512881,.79580308 +.78311678,.77339734,1.019958 +.94156636,.15636619,.80100883 +1.4052843,.28601971,2.2480786 +.80106804,.60071081,1.5187141 +3.2094635,.11864579,.49183146 +.70528227,1.1210891,.6206822 +.5656899,.0853096,.79810297 +1.8464543,1.0412936,.5484019 +.45677824,.81194627,.18369638 +1.1660281,.35754683,.60657508 +.94100127,2.1418765,.77509215 +.62008181,.63422693,1.3767919 +.8792246,.95377997,.78114283 +1.0199736,.27366715,.81138722 +1.15083,2.9164968,2.4146145 +.44562764,.12880033,1.7453199 +1.1066829,.18806926,.57038219 +.66997516,1.5266908,.72691967 +.41452911,.51752446,.50423832 +.87599611,1.2841007,.25117859 +1.1161805,.51705538,.61169846 +.72857272,1.5585937,1.7385186 +.51638783,.97349909,.24727832 +.3597163,1.1359234,.83219981 +.55332663,1.2937915,.56071034 +1.6892074,.35317153,1.0261024 +.43652653,1.6738256,.44534849 +.34108134,.82976975,.8082213 +.31499385,.24722122,.7265285 +1.0409273,.52251095,.39807361 +.63737794,.47427225,1.7501134 +.71511348,.10057317,.14295066 +1.7176377,.21869079,.62977869 +.89612655,1.2342886,.67816782 +.4083277,.64254237,.68832052 +.65482241,.44865823,.65611858 +1.2213805,1.0437696,.08334233 +1.7344654,.38106505,.71434586 +1.7404623,.30538825,.64344155 +.64357056,1.7617838,.29248181 +.72799853,.72324381,.4618438 +.68870298,.12578235,.25390817 +1.1898025,1.1556296,1.1503859 +.19485439,1.1385267,.31528415 +.42861736,1.0792657,.62200833 +.50305301,.04482157,1.279447 +.37428119,1.4872596,.10919678 +.39461265,.47220307,2.6748846 +1.5803604,.56924821,.24851566 +.88797406,1.9196056,.19264187 +.37350541,1.2702805,.29409607 +.78297563,.6730679,2.1605412 +1.4535094,.0392464,1.2631023 +.54070778,.71252534,.03190349 +.63780198,.48982193,.3901627 +.39785118,.28269171,.28265708 +.72324397,.23737323,2.3531758 +.63425227,1.7512662,.42519097 +1.4367308,.87290644,.71477161 +.93157825,1.1898624,.0283456 +1.0790722,.46130833,1.6046673 +1.3908426,.36594802,.18324625 +.6774559,2.0456657,.19333799 +1.0467277,.53511085,.94694807 +1.2848728,.83126469,1.3174767 +.45871072,.12754144,.06471055 +.76704234,.48299778,.37737882 +.41791065,2.0723566,.32617273 +.73383692,.68673911,.0959079 +1.0036399,.03511235,.89237278 +1.0022463,.83151513,.4922388 +.76871835,1.8318852,.36908184 +.44470829,.50816184,.66059062 +.55677312,1.8684448,.40972647 +1.4774998,.10067063,.71112942 +.38529211,.72098165,.46418573 +.71349888,.16721224,.42385014 +.78257413,.22075402,.88033218 +.85759175,.88217839,.2688015 +.54319035,1.0197314,.68888811 +.61998329,.99552634,.21579474 +1.2877171,.82322574,.1334078 +.93427681,.04950981,1.1240935 +.81866286,2.0645431,1.5335133 +.98765557,.01907718,.6394695 +.40431758,1.8194135,.29106368 +.50166516,.72634238,.36418858 +1.0739744,.25299679,.10633605 +.59803717,.47059539,.27084545 +.3193459,1.2871708,.19536569 +.65999298,1.8172312,1.4100747 +.56488354,.26417882,.59540884 +.88347083,1.0363119,.14152188 +.61900937,.6747657,.76614826 +1.4171062,.42493726,.89243912 +.40543036,1.7183143,.4403199 +.88581052,1.4229279,.07922596 +.93125781,1.719096,.5265313 +.7822679,1.5148595,.85765241 +.88235919,.31880549,.72239037 +.29886754,.88521207,.40621306 +.87562555,.73467193,1.0972148 +.53125455,.96832993,.87422038 +.65686202,.69889431,1.599758 +.6555532,.44059042,1.020389 +.59376258,.64514758,.63564344 +1.1124123,.12933546,1.1860975 +1.6370469,.41846465,1.2158382 +1.3134654,1.5183669,1.6996631 +.57730418,.83500081,.50248163 +.74052499,2.0238355,.21470469 +1.2047591,.8142618,.96621465 +.54787494,.68313469,1.7507749 +.58170822,.48136743,.0826014 +.80633466,.67715583,.04395539 +.84361403,.12916094,.11699058 +1.0963248,.49538863,.02390392 +1.3757116,.68202427,1.7820873 +.49901266,1.2561467,.623474 +1.1202345,.67799218,1.5110762 +.57968881,.0412838,.85766051 +.53047494,.11668809,.16379696 +1.4094038,.43672776,1.4919757 +2.0174881,2.0149366,.66791722 +.4860579,.9640454,.51853194 +.41383944,1.2314982,.48658183 +.57244867,.79402905,.99834121 +1.1366934,.14530446,.02448609 +.36384219,.58427679,1.4437478 +1.4749195,.76334541,.7681346 +1.9407642,.44764564,2.4435214 +1.845285,.18800248,.70691813 +.33936705,1.6564696,.48195892 +.57096246,.46427068,1.8171318 +2.5481977,.28793657,.18632963 +.90206467,.42772804,.68881421 +.97255187,.46364037,1.1417196 +.5528657,.58184854,1.702856 +.79836446,.13704105,1.4751349 +.32138374,.84352527,.83893106 +.91719331,1.0425478,1.2283653 +1.5522605,.23998997,1.0794323 +.65345196,1.3573301,.55345159 +.25911886,.52902638,.59622775 +1.1988775,1.2690592,1.0660839 +1.9069733,.73961815,1.4031271 +.51885571,.29316255,.95845261 +.98063883,2.0838591,.33255898 +.76641408,1.845881,.04293692 +.71426175,.2488911,1.0538783 +.745625,.80818305,1.1502794 +1.9664922,1.2591623,1.2933399 +2.0664423,.18986134,.68240394 +1.2067399,.75990409,1.9638759 +.91490146,.97185003,.32171231 +.54031688,.06391923,1.0294785 +1.2784021,.15940159,2.5339582 +.35252447,.73309695,.05272984 +.3495274,1.8795889,.84199755 +1.0412644,1.6030538,.21034207 +1.6614266,.20078693,.59614303 +1.1189933,2.354827,.37856331 +.53583202,1.3099148,.26393667 +1.0896859,.42140854,.7286331 +1.0683453,.88322674,.55447957 +2.2870458,.13056607,2.1529464 +.85814907,.48866977,.63128093 +.2959182,1.1598586,2.3839394 +.4608716,.95950294,.93351186 +.70722908,1.1395654,1.4882446 +.92401229,.10044197,1.682903 +.54080029,2.0071354,1.0381114 +.92467557,1.1544468,1.1214408 +.50309289,1.1222556,.30508034 +.92275573,.22757536,.47168423 +1.058096,1.2816022,1.0261598 +.66441371,1.1162602,1.2545663 +1.6359538,.86847799,.26327483 +1.4047181,.13784168,.44017002 +1.3867963,.55085157,.56153175 +1.7625205,.25006051,.23692598 +.68139243,1.8610375,1.0383195 +1.2457247,.1852824,1.5217693 +.41552737,.44734927,.5928543 +.88224158,.59035546,1.6712479 +.31266825,.77996489,1.624085 +.78584031,.29451844,.15716236 +.56583407,.15462426,.0408452 +.47352005,2.0568463,1.0990468 +1.0023245,.1188393,.29365796 +.59987119,.17745536,.7483279 +1.4041746,.2818232,.10229992 +.66694824,.82314626,.43884987 +.34276679,1.2485424,.03222105 +.50849015,.36009,1.0204627 +.95780583,.29773834,.42199879 +1.9781055,.69984505,.30672021 +.7078102,.0948919,.72775618 +1.2830902,.04835945,.52611437 +.30266993,1.2319891,.04768086 +1.3658256,.55600873,.96585451 +.55233192,1.8264275,1.0358439 +1.2279379,.10825665,.12214418 +.97025033,1.1242498,.62014527 +1.2920684,.42763523,.59364328 +.53136461,1.1754662,.71256314 +1.4571547,.5550211,2.1093393 +1.0392132,.48850604,1.3599819 +.96625305,.1085932,.04946048 +1.0375095,.03066367,.41373296 +.75632941,.08367933,2.4343497 +1.0073592,1.5130108,1.5173153 +1.1641083,.06331489,1.0523239 +.81032563,.01237446,.85356277 +1.4140399,1.3075908,.59949045 +.49019399,.1126783,.85339631 +1.0319226,1.1924448,2.3547758 +1.3638862,.77660813,.54753543 +2.6206226,.0556123,1.6855314 +.79664527,.67206945,.46233784 +.91644913,.40988731,2.0552357 +1.1368527,.8357686,.03305028 +.91078961,.12405718,.81449698 +1.2903848,.29168649,.13592297 +2.1777383,.2274177,.33797868 +.48846232,1.1729828,.34624795 +.6990559,1.4810987,.00599616 +1.3213214,.08300458,.56264163 +.38764606,.039476,.19758665 +.87637242,1.710778,1.2247864 +1.0056431,1.2755336,.98608044 +.36305478,.73723249,.07214843 +1.1734251,.72991638,1.237867 +.37901383,1.3582445,1.1447357 +.60563149,.89816046,.79477645 +1.065772,2.1653039,1.0486871 +.69172116,1.324682,.46604217 +1.201167,1.5554428,.14457063 +.84382073,.21947993,1.0544119 +.28346358,1.9252723,1.3776275 +1.3146442,.10920777,1.5736402 +.84212848,.7785259,.91423292 +.92543155,.63178082,.26483645 +1.7586257,.5552665,.78151461 +1.3730175,.04217641,1.8260368 +1.8382729,.80109468,.72318675 +.39119282,2.7853339,.22604808 +.65838972,2.3866301,1.1138947 +.6346702,.7756207,1.7489441 +.87351863,.74337752,.3781408 +1.2718459,.94214008,.56149304 +.97688466,1.5809952,.45672864 +.26399979,2.2847961,2.1897283 +.81417472,1.6082445,.55223054 +.82659105,.10755564,.4687716 +1.0468008,1.450995,.78152179 +.99157255,1.1204179,1.4558384 +.33067571,1.6110775,1.1061995 +.76197712,.02810894,.10276848 +.3754378,1.2982509,.1335997 +.43615149,.56112154,.26346348 +1.1514528,.16792314,1.1530113 +1.0691108,.74087927,.73186903 +1.0673424,.88307512,.09042487 +1.1923262,.19232613,.61797465 +.82718771,.02016715,.92374887 +1.3491313,1.3297119,.78522403 +2.2059081,.07413535,1.1108567 +.84461173,.25077849,1.4113791 +.60667198,1.3752051,.45953904 +.62814323,.5519119,1.4819636 +.71037435,1.4965342,.87595873 +1.582828,1.5305677,.06092637 +.54342041,.25002825,.66265497 +.82911009,.93939523,1.0730251 +.95681538,.30423116,.24762323 +.39514832,.17963638,.1318746 +.62634998,.59943837,.52313702 +.59012189,.73105069,.95706283 +.44786634,1.4011621,.49593052 +.5809049,1.1727238,.13523013 +.49681071,.05501089,.74372137 +.73079557,.79444667,2.1428094 +.52276551,.0147381,.29319631 +.49365206,1.499228,1.9426543 +.85532389,.00130521,.91016309 +1.0169415,.20452823,.25360035 +1.0861218,1.5797085,.62623268 +.50541588,1.0285649,.70080142 +.56892536,.92373875,.37276728 +1.0361092,1.440664,.11947407 +1.2988301,.40307952,.08788489 +1.0882596,1.6008634,.4327278 +.57390111,.14284075,.01198651 +1.5836116,.05909476,2.46105 +.576742,.09260495,.42957313 +1.8040115,1.5326873,.06448772 +.88369737,.41327335,.13812723 +.91006727,.87007405,.16811374 +1.1301755,.06223908,1.119797 +1.6464297,.15879908,.45815364 +.28457094,1.1819262,.6459483 +.58147291,.28273275,.51117416 +1.0172363,.02154501,.88391576 +.50214317,.4316008,.00099794 +.75192039,.31113041,1.0305258 +.959246,.37632558,.58412708 +.47702076,.59413186,.7304123 +.34884249,2.3758278,.61827579 +1.9792506,.55767654,1.511709 +.44145588,.57525725,.81501913 +1.0906868,.93554441,.01635919 +1.0446717,.79829841,1.0371143 +.57550543,1.5795586,.04548866 +1.7557353,1.0970454,.27693794 +.75477739,.29296709,.79210464 +.89051934,.07012988,1.6872779 +.5443755,2.5497794,.86603258 +1.5189359,.90641042,1.6781485 +.50129434,.05550634,1.7639105 +.51046784,.59526583,.48205407 +1.5328363,.1569162,.11268312 +.53943806,.21716616,.18516682 +.37685338,.4245329,.13651443 +.5758154,1.4949212,.72610005 +.55946922,.03501244,.1159969 +.45106454,1.3803073,1.275674 +.57623384,.09346612,.21764439 +1.3813421,1.5820462,1.601123 +.71246651,1.4568015,.25979218 +.71684574,.36767363,.21653671 +1.2507128,.12550744,1.7896044 +.63265869,.44499951,.0368387 +1.4027972,.38275016,1.4035667 +.51395029,.09727438,1.2057079 +1.2273895,.25751749,.52565376 +.42437971,.25268536,.07212152 +3.3706361,.71530259,1.6169232 +.40883846,.32031333,.91366276 +.49147056,.9847926,.79668165 +.7077288,1.1353233,.27970508 +.70428154,1.9445682,.23017872 +1.2582847,.57931931,1.6345085 +1.304015,.33889474,.0587618 +.63930526,2.0031273,1.2184543 +.59058104,2.1692573,.0526779 +.68166816,.18243927,.19109432 +.56396851,.57300533,.25440853 +.97573968,1.2631326,.50515579 +1.7377629,.78453437,1.048208 +2.2272355,.22092447,.6197963 +1.2974182,1.0575545,.67733498 +.8927474,.97194042,1.6976897 +1.7745011,.48908502,.0693782 +2.053185,.32964169,1.5505138 +1.4715501,.09000777,1.7411573 +2.6065664,.06153549,2.5981025 +.42894124,.90507448,1.9407336 +.86524813,.42430143,.75438687 +1.3670435,.26703731,1.4572756 +.62424934,1.2943167,1.1107937 +.8903861,1.7449893,.84278128 +.60061025,1.2245964,.66944579 +1.1321869,.81763631,.8426488 +1.0300847,1.1771673,.19189402 +.63025919,.68890786,.13719868 +2.5535819,.37204929,.42058156 +.48928969,2.4354819,1.8284429 +.68952514,1.6723081,.06284019 +1.1595976,1.5607558,1.1818198 +.89355436,1.7596228,.73914936 +.83607978,.89005879,.51274414 +.52601805,.52540454,.30357707 +1.3431758,.22667367,.25686457 +.34588438,1.0137621,1.1662453 +1.3410071,.55379243,.05014309 +.40804827,.56629412,.60076118 +.75323342,1.8688775,1.0880387 +.46160897,.30788848,.52326275 +1.10397,.8172133,.54997169 +.75032525,.56014282,1.101294 +.63426965,.51138008,1.4166297 +.70594074,1.1457407,.84329886 +.71984147,1.5112067,.87931305 +.86373546,.26742992,.07152611 +.81014829,1.6324874,1.4348112 +1.0835306,.44707789,2.2032515 +.75890294,.61465726,.09902048 +1.087857,.94955482,1.2030534 +.42739287,.04251507,.17079537 +.79101933,1.1049964,1.6517398 +.69061136,1.3202765,.3987273 +1.1184162,1.2751501,1.7977691 +.48046798,.87375023,.56017036 +.38207214,.66677565,1.221868 +1.007228,.64493384,.45925381 +.55804746,.67282289,.08954716 +.43093515,2.3054773,.77313886 +1.1320544,.33312144,1.2692771 +.89533834,.37337798,1.3147905 +1.2848079,.92774587,.47566772 +.66435217,.25313016,.58251473 +.38561387,.92024627,2.5096483 +.45899049,.28173816,.6883375 +2.0361814,.24123565,2.255068 +1.5368191,.14258259,.88427305 +1.474393,1.1728147,.35652675 +.98287963,.25968524,1.3770389 +.68442421,.36317477,.84125204 +.50985925,.16860558,.24221257 +.88413737,.55012035,2.2759596 +.35342762,3.0022152,2.0417021 +1.1816146,.33703981,.50716317 +.94224741,1.9354289,.2035143 +.65105747,.1822826,1.5406068 +.73614406,1.3311724,.43285556 +.76621157,.23308418,.46086243 +.22386006,1.3267483,.54288916 +1.5021323,.29336773,.06769733 +.7234625,.08751568,.88423143 +.98897067,.58058954,.18123966 +.60716241,1.220261,.10920042 +.73890009,.45033229,.52430549 +.56032983,.22360977,.32458022 +1.1156581,.13851721,1.0400132 +.94293876,.31668534,.47652591 +.55291449,1.226791,.18285591 +.96985929,.7632397,1.8726235 +.50377008,.24768195,.43715796 +.49801683,.84055257,1.1636586 +1.4836014,.44992394,.05084087 +1.7959398,.87427108,.76028873 +2.8116755,.13007961,1.2300906 +.92070486,.28100724,.69412848 +.75132763,1.6745439,1.8858938 +.57158772,.61002466,.48435573 +.64597415,1.1804648,.03305067 +1.0632675,1.5148268,.76944417 +.39819953,.28186793,.29725835 +1.8040953,.28960387,.95307818 +.76708132,.39806929,1.1741463 +.95109338,.68420095,.04182906 +.94470433,1.161524,.07547799 +.61426813,1.8739572,.50603481 +.62307306,.48461581,.62992071 +.51843628,.97369357,.57511703 +.61521374,.65296529,1.0402199 +.68543407,.30028412,.67198265 +1.3870078,.95302276,1.4096224 +1.8220928,.11334181,.99271902 +.32417824,1.2620236,1.249087 +.78333581,.42263339,.67343092 +.3294099,.60767419,.71720433 +1.3457958,.91626035,.07627471 +.99605956,.83270035,1.0472131 +1.2710996,.54214941,.30387806 +2.1304626,1.4737437,1.8356285 +.42024781,.67225695,.9258389 +2.7736086,.45374611,.36272004 +.82656801,.35860192,.8633007 +.7919344,.76850648,.04392013 +1.4998562,.72393681,.01520049 +.5419134,1.4906995,.83824219 +.71741601,.76537186,.87691839 +1.6545715,.64172456,.11626334 +.85649571,.98134331,.86373654 +1.921063,.49734899,1.8490488 +.45108953,.04027736,.55926085 +.70238636,.29396149,.69717358 +.27534245,1.8133395,1.2602939 +1.2857576,1.5967807,.18634327 +.31222316,2.0182426,.41717096 +.98390317,1.124212,.29851234 +.70718331,.05285827,.3876808 +2.4432306,.88906718,.4983109 +.78982383,.57830236,.94024489 +2.5439947,.21993663,.86037239 +1.2031107,.77677713,.60188414 +.28322466,.72096394,1.2914541 +2.184696,.26172898,.56302573 +.98242285,1.0669575,1.1971599 +.79636359,.96210393,.72655479 +1.0189845,.24653034,.47413102 +.6887319,.09120711,.4069959 +.91365224,1.483647,1.0886118 +.71861683,.43450833,1.7897019 +1.1115189,.35727163,1.437573 +.79482116,2.1299245,1.8659762 +1.079646,.05344968,.08790166 +.83965778,.71770596,.72497149 +.53369363,.9360111,.33685652 +.75036214,1.1948985,.70342291 +.82327094,1.5987974,1.7176659 +1.6445671,.28038616,.54874397 +1.183866,1.5754477,.83386358 +.95374915,.21473912,1.7867403 +.99352486,.96278027,.62324653 +.62389505,2.0142652,.66849127 +1.5903447,1.5978777,1.180342 +.80746377,.72250525,.03149864 +.53615505,.35741483,.48469898 +2.9460115,1.2491448,2.3619801 +1.3615822,.90575215,.10969373 +.65677631,1.598192,.08391988 +.73044861,2.074488,1.6235118 +.81872009,1.0483287,1.0286877 +1.4274233,.5995414,1.6630422 +.60814725,1.1351781,.26117719 +.38831173,.85866133,.5076884 +.40202244,1.3348321,1.4663566 +.41853664,.93305884,.70255817 +.81786904,.50044015,.90637504 +.88067628,1.9888465,1.2341502 +.97992319,.91997906,.63094817 +.56977992,.86323727,.92453321 +1.0683404,1.2838572,.9655004 +1.5534323,.71629507,2.6998987 +.64496712,.57153547,1.0449211 +1.0707815,.60073568,.34977453 +.53520871,1.2508475,.14068386 +.31781615,1.0329266,.02874874 +2.0644844,.55335338,.29669887 +.7956131,.21052032,1.0500635 +1.1165325,1.0483615,.71533523 +1.4821175,.60007618,.64805036 +.42749923,1.0045743,.06797304 +.66659313,.54503784,2.1158756 +1.0800773,.29682325,.43291572 +2.0465517,.39896326,.96834151 +.48200397,1.3954888,1.7365116 +.5449676,.80393512,.47079979 +.96881541,.28892968,.48299213 +.39433329,1.6586628,1.0256705 +.3189166,.63824963,.26759151 +1.6054892,.34655548,1.2133882 +.82923733,.49179438,.8350322 +.62658731,.87147688,.41805835 +.63488112,.80183348,.68794465 +.91115453,.92546989,.48564645 +.57916647,1.2736757,.29442121 +1.2770621,1.0309571,.9374258 +.70100828,1.7987944,1.0399594 +1.1243007,1.0154632,1.051891 +1.9731627,1.8055605,.47375682 +.45915145,.71243391,.6408544 +.88921393,.72010267,.99453158 +.67662287,.39010382,.01217366 +.59103598,.49535286,.91063729 +.36053773,.55675639,1.7947881 +.48438342,.92754556,.45469485 +1.7575011,1.2991946,.25017364 +1.8533969,1.5776038,1.5689702 +.51545758,.69495509,.45203036 +.52608282,.36123898,.07945695 +.93275186,1.4047427,1.0286544 +.77380317,.47379886,2.6229045 +.516193,1.4466363,1.1974135 +.94352467,2.5566899,.41192465 +1.1808276,.94748514,.06695664 +.99548902,.02019769,1.2429049 +.40110998,1.5003954,1.8028935 +.90528805,.62108315,.55047735 +1.0290432,.87770343,.02291273 +.37900663,.41804501,.15201033 +.87991858,1.0786858,2.0528412 +.98027204,.22562658,.54326625 +.55784764,.25594318,.02444893 +.57208824,2.7745417,.72602446 +.45421174,2.4191017,.83384052 +.68156162,.11861565,.99986894 +.52728565,.37181589,1.1298286 +.86936593,1.1940568,1.0193906 +.5587176,.18740793,.97354603 +1.2125275,.13037293,.12949626 +.64553937,.65272144,1.3374063 +1.2327116,.446829,1.1003614 +1.3363242,1.6931524,1.9297922 +.29965812,2.8720089,1.100303 +.40316746,.29399836,.49644744 +2.9089638,.75214777,.91412768 +.80115854,.21830246,.28606422 +1.1845208,.40700522,.73120696 +1.0411074,.68059614,1.692789 +.97113639,.10743922,.83974606 +.7218936,.97145677,.51053052 +.4532843,.32862109,.88607524 +.84990436,.24777675,.68798938 +.75753506,.04893793,.34126497 +.5682636,.8632103,.36219194 +.46669139,1.5387083,1.0274235 +2.5220781,.52220699,1.2354143 +1.460348,.31652128,1.8477767 +.36733144,.53033398,.00537356 +.67022784,.63289201,.26234946 +.85942886,.23321995,.20081661 +.81191019,.12998132,.96645222 +.29334584,.91707894,.04384294 +.77315726,.3185105,.29666518 +.51415721,1.5762345,1.6190233 +1.343318,2.6798111,.64268503 +1.5088576,.11158908,.34016004 +.65421279,.33785176,1.0178245 +2.5732806,.20020692,.11079067 +1.2671569,.18081391,.48271943 +.35233975,1.5596307,.56159715 +.86045711,.59993869,.08814893 +.76499847,.06598557,.88815444 +1.0276731,.43961952,.93557697 +.5606942,1.2079946,.2131611 +.434345,1.6671376,.66452286 +.36841483,.54991188,.34886446 +1.9790323,.7590713,1.5948618 +.99263331,2.2041536,.4442665 +.83543335,.54887372,.21034461 +.81031082,.61552447,.1677088 +1.8611765,1.0762093,1.6639013 +.98140878,1.2012975,1.4534461 +1.6507424,.7892825,.59237956 +.86610194,.49187757,.0131424 +.75269544,.19900375,1.0085707 +.89839142,.35895369,.80704147 +.79264958,.79054406,.37189428 +.81034222,.57577243,1.2118112 +.4418511,.18656451,.18262831 +1.6442339,1.8439109,1.9461314 +1.0505877,.1156707,.16096433 +.85794853,.71071521,.19940059 +.91160194,.1282971,.98504332 +.76910247,.3157645,.45560763 +1.35945,.53422307,.52940855 +.53837061,.16669305,1.6609492 +.49301366,.61249367,.37415392 +1.0368232,.01381875,1.141641 +.72094179,1.4804274,.36723558 +.53326996,.17303914,1.3557818 +.49542635,1.5631729,1.6032247 +1.1089525,1.6980193,.75088641 +1.8316753,.04645468,.34233689 +1.0454007,.23305526,1.9398331 +.68480322,.6115119,.4203949 +.61432033,1.0167531,.76140844 +.42025899,1.1402026,.61476977 +.98465344,.32926825,1.7286948 +2.0025349,.7870923,.21488353 +1.0938791,.37582045,.20798634 +.86620984,.53663075,.44837302 +1.2853157,.63839553,.63911233 +1.1714325,3.1828122,.54130096 +.39245354,.49868331,.87298655 +.71686338,.14240288,.4461955 +.46034836,1.3006408,.60361294 +.78509819,.5663309,1.0267118 +.67841681,.06562691,.06491693 +2.225359,.15988042,.42506806 +.45871212,.06709143,.9388224 +.6427446,.72893791,.23888645 +.87470557,.90419444,.06611811 +.58889672,.08343203,.12400773 +1.5639653,.19833157,.09019969 +.55067446,.89658432,1.0095488 +1.5234345,.67698403,.51981415 +.89800814,.8673559,.06336596 +.6186514,.54408366,.88005522 +1.1324949,.15010469,.14303226 +2.5467199,.18684918,.27136326 +.99552735,2.0346479,.3443633 +.54964415,2.209168,1.9691509 +1.3302966,.64276507,.37086058 +.72891921,1.1331964,.71188997 +.67186175,.57079445,.808507 +1.5601813,.75526474,.79951933 +.52860328,2.2304037,.08628313 +.93358157,.95323878,.42544061 +1.1054027,.76603766,.63502534 +2.0806098,.64117204,1.8010209 +.67712685,.62246247,2.3469963 +.67762241,.99786142,.32916826 +.68682496,.7005754,1.7224138 +.55902745,1.0139306,.45130134 +.97015138,.81661212,.91668893 +.59483512,1.249026,.98521702 +.85206451,.51495804,.12248633 +.46000263,.7882856,1.5087763 +.69900396,2.4359719,.89392821 +.81768311,.05295102,.42850947 +1.9773047,.37131782,1.4137061 +.70208758,.54777353,.07058266 +.53537735,.46206921,.17363935 +.99968426,.12067868,.61244904 +.51498649,2.6546828,.30536969 +.63949572,1.2842358,.64243391 +.68938088,.69122851,2.3700564 +1.495745,.33513504,.30588222 +1.1908422,.74810615,1.06967 +.85899964,1.9055721,.18304237 +1.4299093,.77558868,.12212982 +.93077663,.27558673,.2159817 +.32641798,.8242972,.67574112 +1.2718143,1.0420975,.33265932 +.75532885,1.1483804,1.6185673 +2.2940178,1.0621303,.85002525 +.78633985,.58842239,.38500375 +.66323677,.67594015,1.8604099 +.85543574,.12637622,.27847495 +1.4105513,.02960514,1.5950941 +.50257691,.76609473,.5302211 +1.2457472,.13949019,.62331033 +.87727041,1.5868345,.08812576 +1.1773896,.19640615,.68115844 +1.2850259,.83710275,.62204882 +1.2811391,.26683095,1.4653347 +1.9171977,.11432956,1.371465 +.86352491,.6681308,.37925296 +1.1325548,.66849968,.63896307 +.85218223,.16806379,.99531568 +.59883971,1.3311972,1.3708935 +.20865568,1.3468521,.26561302 +1.9325844,.10021121,.30507479 +.67054648,.60615436,1.7650389 +.65033756,1.0312473,.50225087 +.74573065,1.616657,1.305647 +1.2190857,.33092904,.2363711 +.68373636,.95045102,.02034308 +.90101919,.7215412,2.2447426 +1.551085,.41291269,.41707569 +.72344897,1.5179976,.07213553 +1.8054063,.63558859,.81584789 +.92779131,.45692088,.00490989 +.52153789,1.1276999,.34006993 +.46603782,.40046945,1.5362545 +.38143307,1.9528254,.24919505 +1.2770395,1.8131271,.75924804 +.86705207,1.0299191,.53892393 +1.6653325,.28882923,.65023317 +1.1576304,.61958274,.40186969 +1.6244236,1.2786171,.05799821 +.43187031,.60013831,1.8562952 +.79058316,.004982,.18087673 +.65503043,.91879276,1.6495569 +1.4996204,1.0705176,.9799086 +.40351956,.50278302,1.723463 +1.0151284,.92165899,.89525086 +.73725513,.15265573,.32460672 +1.1172611,.12742536,.61992489 +.9265818,1.2868354,1.7970629 +2.3595982,.23873993,.64658924 +1.1250998,.12805185,2.4037186 +.60074711,.61654484,1.4902171 +1.1734092,.10161922,.27947522 +2.3374146,1.6379073,.62617522 +.63711352,.53863422,.27774309 +.62116113,.4455201,.17195581 +.45739679,.54990169,.61240181 +.6384417,.33995248,.73854666 +1.1186341,.77177517,.46932066 +.65544062,.15341348,1.7284019 +.43718437,.51374023,.74777312 +.82874477,.37484982,.44268314 +.19207988,.49388289,1.7800488 +.60097172,.35005776,.33385451 +.84948343,.54267949,1.1283531 +.69962199,.6077271,.23664038 +.32682311,1.2071026,.27738686 +.53556713,1.2448638,1.1602998 +1.176895,3.3227667,.48960095 +.68806363,.08180514,1.0815731 +1.6344175,.00918171,.62316401 +2.2817318,.71241237,.9845723 +.73065812,.25793034,.84703056 +1.1895054,.76124302,1.7611014 +.80925227,1.850282,.12890267 +1.1531163,1.0320809,.92572422 +.80552771,1.5549351,.29500543 +.312058,1.3034168,.67454877 +1.0089354,.21145717,.58752136 +.88776025,1.345223,.1440899 +1.202749,.1688953,.65381568 +.64063865,.25252668,1.1122229 +1.2777083,1.2561101,.96236532 +.26818945,.42782559,.23955527 +.58684585,.88719847,.00665889 +.48921985,1.2134959,1.0259753 +1.6998455,.64579388,.39762939 +.65591466,.34297671,.23551733 +.68718646,2.1793387,.1335016 +2.2874579,.82705953,.84650053 +1.5165692,.13736335,.59743878 +.52743622,.46748233,.85707173 +1.1955572,.78372675,1.8496937 +1.1121824,.44335872,.40031095 +.71991824,.92620059,.14040101 +2.2260789,.52088294,1.6851521 +.6784984,.26602865,.24190048 +.56651476,.1724855,1.1947693 +.29824369,2.0813895,1.2017027 +1.2961339,.75875134,.02449637 +.64506605,1.5720721,.9369608 +2.0691472,1.8228278,.89313013 +.75839255,.65125668,.64246491 +1.5552082,.86355707,2.2211513 +.49100076,1.3924389,.1182661 +2.1978845,.7909552,.36095583 +.53285477,2.2750944,1.191433 +.54801411,1.564132,.79950007 +.39451305,.44429952,.21483353 +.30168773,2.2433998,2.4274467 +.24164109,.57838499,.14971497 +.72334478,1.4959275,.59459086 +2.1466599,1.0742765,1.3099609 +.48138532,3.2336577,1.0866456 +1.3957164,.01162968,1.4214264 +.50351964,.82255756,1.3566534 +.65330376,2.2759965,.16406209 +1.1445623,.32657192,.73623814 +.32886276,2.1813133,1.6656051 +2.0050269,.20548118,1.0136616 +.60805845,1.573584,.32203061 +2.9067075,.0679384,.15696885 +1.032433,.29181014,.3179578 +1.4620317,.41010473,.10291105 +1.2657448,1.2535376,1.3825685 +.97514043,.29952225,.7841907 +1.2315803,1.3074001,.06696728 +.53060129,1.3232514,1.7931214 +1.4959286,.25778389,.31076575 +.49785276,.17450935,.12609145 +.7566351,1.2533337,.658595 +1.5046216,.7953195,.78907451 +.69617176,.6581717,1.4481152 +1.866587,.37806551,.38020627 +.70448102,.92645566,1.0707052 +1.3134866,.27842488,.93839767 +.80236597,1.7164837,.71578827 +1.0426784,1.5228946,1.7651326 +1.9184071,.94636885,.3274162 +.46965155,.54651623,.18811571 +1.1205732,1.695837,.7613242 +2.395802,.23347365,1.3893491 +.37232942,.92065108,1.4226031 +.73438218,.47187595,1.1460196 +1.0859447,.46026078,.09436076 +.68115011,1.6627619,.8974104 +.82348737,1.3811734,.82646595 +.26624957,1.0681138,.76456888 +.60009635,.67337063,.19067298 +.91763981,.87552263,.60822014 +.98553991,.18749033,.22014804 +.58014533,.80630346,2.0733992 +1.2707977,.39907554,1.365907 +.72392948,.27304917,1.1791418 +1.5631177,.71072169,.02614843 +.59409654,1.4849126,.82232827 +.38609158,.37093485,1.7456074 +.49260306,.30184307,.1454539 +1.076223,.18701561,.84723645 +.5756002,.50607303,.45296966 +.31440227,1.6348389,.77208605 +2.4052555,.47927957,.09316545 +.56661119,1.6652072,.11661896 +1.4036513,.80689389,.20562454 +.6044527,.5907506,2.1322984 +.80777379,.54309754,.20928524 +.70828767,.49045624,.19313368 +.79681078,.03082282,.23075301 +.88323252,1.2496947,.4778509 +1.1740127,.06650652,1.2193178 +.606928,.86163618,1.5105514 +1.1537488,.14500734,.98468603 +.57864831,.61669003,.27660344 +.95367608,1.4365585,2.2741432 +1.8789284,1.214139,.8384333 +4.0629569,.58732367,.90689441 +.88564362,.34450271,.64167332 +.71006414,1.7630727,.16283938 +.89512261,2.082847,.02843222 +1.3745913,.56427863,1.7058214 +.75698002,1.2026674,.50492546 +1.3827877,.12261,.65962453 +.68951748,.91335246,2.9934958 +.55242007,1.6782441,1.0139728 +.68532059,.76569436,1.9947336 +.66770663,.84366439,.82451925 +1.0336625,1.6735441,.83991362 +.59833586,.81450437,.02771747 +1.5312513,.11025665,1.3597597 +2.28544,.14276974,.43461939 +.82440848,.25392828,1.6450405 +.64890504,1.4047078,1.0739051 +1.4173602,1.1145188,.35061567 +.72044526,1.2290823,.8332443 +1.1112488,1.6812895,.27223289 +.54264886,.3033626,.8595157 +.61258347,.60107814,1.5288864 +.38635989,.51834304,.04647753 +.94460873,1.4771725,.14303071 +.82802639,.97826531,.82307715 +2.7151024,.2034325,2.2499815 +1.3827723,.87810785,.69178646 +2.9160892,.29219745,.97775425 +.83610342,1.4417035,.29956096 +.59002239,1.6813049,.21387344 +1.2687143,1.0177733,1.0298337 +.84394585,.90907829,.36864278 +1.6526476,.78304346,.55945004 +.78728106,.85094723,.31103702 +1.2634621,.53245761,.92604474 +1.0362452,.86131037,2.16362 +.87473932,.24161848,.13477465 +.4322059,.85938762,.12236469 +.77714774,.16348342,.12492878 +.6591063,1.1025802,.79122712 +.75264904,.47382879,.32525931 +.94644631,.00332262,.41107217 +1.5479141,.92341016,1.1179277 +1.573565,.81571409,.14164873 +.90613588,.76187738,1.5590174 +.43065389,1.4492331,.32574527 +.7012341,1.1859591,1.8233899 +1.5660229,.34646827,.56239592 +1.1529417,1.4685309,1.4210761 +.26295841,.16806002,.38358431 +1.1030746,1.5793698,.62152607 +.70983796,1.4529437,.42189729 +1.0391512,2.157849,.31378752 +.41975913,.29967369,1.37154 +1.7443665,2.0203596,.08103331 +.4940619,.65742789,.18708558 +.70961997,2.129687,.90455044 +.2369576,.40648197,.48482908 +.67906938,1.6976669,.62732029 +.98218241,.614621,1.6988752 +.96140732,.97664411,.43213407 +.39233423,.53551612,.29090743 +.45423696,1.316551,.06968595 +1.4532461,1.5173695,.38525589 +1.0637427,2.8328355,.01789198 +.57655249,.19522701,.16735978 +1.4106369,.09978327,.35317149 +1.3737213,1.8299447,1.3661001 +2.6711183,.3512074,.4197959 +.97235373,3.148859,.68239125 +1.244935,.45893933,1.1240971 +.63486054,.29492543,.3083778 +.79258746,.18650863,.08740898 +1.0157312,.19022383,1.9918227 +1.5343191,.29155517,.41151152 +1.025592,.35961201,.31537952 +1.1684532,.40806893,.75198636 +.76105916,.26801706,.10289547 +.74075875,.34720006,.2432103 +1.2942345,.13014721,.35951778 +1.3056702,.43621673,.21109035 +1.7767621,.29765103,1.4830197 +.87962082,.6078662,.41980361 +1.0295016,1.5615928,.48314406 +.33957855,.64419875,.12276936 +.63106731,1.0680407,.84385319 +.78161831,.59479035,.22753922 +1.0509929,.10549661,.1313548 +.94346145,.82976731,.75846254 +.775147,.1932759,.58377119 +1.1256444,.13155106,.47401225 +.68966716,1.3765245,2.0264176 +1.2641472,.36845662,.16932286 +.56198031,2.569495,.22742437 +.68739935,1.0054963,.48769799 +.80252528,.33820865,.00558465 +.4323586,1.5212569,1.3857745 +.51509618,1.2501939,.07683628 +.94346309,.25537485,2.472656 +.53521969,1.7531788,.78458049 +.52082378,.93228005,.03611288 +.71304294,.35006448,.17290241 +1.5424031,.39285354,1.6754149 +.34566337,.63140731,.72281482 +1.132237,.26580242,1.0194689 +.99794405,.8671809,2.0902577 +.66915506,.77405847,1.3091522 +.60938431,.03644586,.32766565 +.89436896,1.4724719,.04605924 +.52419165,1.0080321,1.9616802 +.49467508,1.2333601,.47188904 +.83991089,.51076555,.70977516 +1.3767067,.84683389,.66627155 +.99897023,.80049841,.93240896 +.66233908,.9485818,.50501453 +1.8426445,.30833392,.96198567 +.60905203,1.5349116,1.1632868 +.28270345,1.7139024,.8653856 +.910349,.28292207,1.3945727 +.76620156,.03887566,.83155371 +.95756199,.56060224,1.2537317 +1.1842398,1.2784964,1.7075356 +.85985115,1.0656567,.24970163 +.88179984,.76920482,.53603169 +.56382635,.52647476,.4158639 +.63704743,1.8186095,.15145471 +1.7132317,1.1974637,2.0221085 +.87056191,.75390137,1.3158464 +1.2026521,.13246197,1.820903 +.47268779,.34277523,1.0682332 +1.0153925,1.7077313,.98809796 +1.2979014,.26121525,1.0751264 +2.8518685,.47190394,2.3172395 +.68003257,1.5109288,.90974581 +1.3537931,.42613126,2.2128337 +1.1342791,.32608438,.19022563 +.5672836,.60267206,.54683726 +1.1003768,.67406828,.81682871 +1.8498284,.12747214,.44120627 +.75970559,.674505,.58055125 +.53126965,.72405178,.47190279 +.48504962,.39714806,.43374208 +.68164672,.28670436,.2498745 +.8470106,1.1408553,1.1794657 +1.3882321,1.1156142,.25793576 +.33687902,1.4210923,1.6408517 +.64415291,.56027039,.90989503 +.50303176,1.2039412,.22655204 +1.052083,.62803669,.77619332 +.58600189,.11267041,.70695945 +.7637117,.17030897,.78862517 +.89366198,.25678366,.77154435 +.78424195,.30269172,.79864573 +.58436049,1.0225665,1.0310853 +1.5921978,1.8355506,.80192233 +.80347914,.9756956,1.4058465 +.63394262,1.1442282,.63298222 +.4519256,.61501915,.96899042 +.70694115,.75969006,.35122375 +.21455507,1.9279052,.52735915 +1.418932,.82390047,1.5453705 +.50558634,.04661053,.3061204 +1.1195476,.73448297,.25302501 +.52887096,1.0404738,.64272427 +.80551104,1.8774913,1.4904541 +1.3668807,.02036904,.42408015 +1.6177965,.86314473,.10328043 +.90296033,.50990139,2.0040967 +.88492115,1.174669,1.2274341 +.87712748,.03810415,2.8634717 +.63717701,.14328253,.45566542 +.5653738,1.6616952,.11887876 +.60135506,1.3261662,.21178304 +1.4609752,.32578661,.90210081 +1.3773375,1.8084901,.10922559 +.99547381,.40640257,.49740995 +.91139382,1.2232329,.60366701 +1.6274484,.12631329,1.6628101 +1.1766731,.41451549,.49749438 +2.3099494,.03896919,.35523247 +2.6995081,.4357574,1.0652327 +2.3209407,.30177774,.47675242 +.72144341,1.3635386,1.3902269 +1.1542823,.46235746,1.0797604 +1.0944289,1.0029786,.84364072 +.80056048,1.7706292,1.0294366 +1.3721104,.35539197,.40512907 +1.0990021,.42624025,.06768244 +1.2355492,.67167466,.17413572 +.86493889,1.1637688,.58763463 +.45280729,1.2728459,2.4269231 +.55389859,1.7376832,.10281309 +.96667033,.44627829,1.2695047 +.61715163,1.2984481,1.5861107 +.61039434,.46947988,1.819251 +.21334308,.32904265,1.1590462 +1.8167862,.45236111,.29363669 +1.1275714,.99691414,2.4620596 +.95995158,.20401661,.81026527 +1.7271887,.22498043,.49138461 +.5697459,.69808194,.22837669 +.69472122,.5159994,.03843385 +2.5008729,.90782526,.61336564 +.51693371,.46449333,.08358606 +1.8201157,.77273949,3.3014626 +1.4637708,.18941622,.54165787 +1.694011,1.2084369,.75147246 +.33479616,1.8571362,.71695271 +1.1703379,.60793555,.06790378 +.66850886,.48927949,.05539428 +1.2854579,1.4625626,2.8303086 +.83900546,.43882102,.54485278 +1.0673463,.44586261,.59759042 +.38675684,1.601288,.24141112 +.45354016,.1698127,1.8630783 +.36220752,1.0337187,2.9389991 +.65174529,.38867664,.30860174 +.59348272,.41289577,1.1265716 +1.0684223,.0876304,.96474254 +.51152121,.46135927,.43650549 +.99672878,1.6891933,.72421228 +.8033996,1.4235482,.44583791 +1.0036662,.27668993,1.1863698 +.62253647,.84422053,.35403868 +1.0176347,.10564683,.81093684 +1.3061016,.36066517,1.0767003 +1.1380706,.39678991,.0658234 +.44774432,.62922854,.9980822 +.37974434,.58460078,.08776581 +.62824338,2.5077995,.55271595 +.46954577,.26269939,.2400223 +.70890066,.1836649,1.303102 +1.1548211,.15194742,1.2683167 +.59375215,.44526601,.50668958 +2.3615171,.09491867,.11471864 +.49468805,.49754715,1.1620099 +.51728635,.49508086,.17464982 +.80538472,.0270599,.05255551 +.73854889,.632773,.28183662 +.67547476,.02965404,1.1486718 +.63862797,.84125777,.61204485 +1.6228728,.31313608,1.6734006 +1.2992767,.14818571,1.5298641 +.58923358,1.4317775,.19210998 +.7415323,1.5005156,.78058781 +1.0836658,.70729889,.19062821 +.2812049,1.2437254,.46210723 +.75677214,.76846317,.67658372 +2.4423283,.11393099,1.6017115 +.83638367,1.0262468,1.8705154 +1.2656575,.65659622,.14217709 +.73399843,.45104752,.64336563 +1.1145715,.26988825,.36672098 +1.4227656,.31434908,.53885299 +.65496958,.99101842,.89446828 +1.2843996,.54715491,1.082802 +.46389891,1.4110836,.56853986 +1.3613109,.62189415,.29900478 +.65985633,1.3766859,.20332301 +.51988591,.07634666,.47228428 +1.9348729,.0006284,.21201953 +.30694964,1.3170177,.81630182 +1.4879715,.66930905,.83101178 +1.5516883,2.3244088,.14515883 +1.1752212,.96566622,1.5488705 +1.1434342,.10449424,.14346972 +.52665484,.60103468,1.289782 +1.5484582,.28886487,.31824142 +1.627579,.57545771,1.7281604 +.76779442,.8331616,.92350893 +.93167454,.73184631,.66489212 +.92406766,.6912142,.7368336 +1.0023242,.28909158,.71102562 +1.079046,.58941164,.9340024 +.62105937,.47422028,.58945443 +.9965843,.41435158,.12725563 +.72335998,.16920474,.67797795 +1.0124541,.11475609,.58626883 +.83786096,.58481536,1.8933475 +.96289208,.83677385,.67828495 +1.2471321,.09510108,.81502882 +.94416336,.13942561,1.5424414 +1.8668774,.26790572,1.2616743 +.60104529,2.7170669,.41505968 +.58063738,.93583486,.21324908 +.70070414,.33862164,.56083171 +.45694509,.40944025,.37538508 +.57353705,.68858023,.22691908 +1.0250306,.70518698,.93086475 +.72784744,1.2101291,.02406186 +.9376688,.29265232,.10290646 +1.0308232,.27709118,.12243752 +.53324753,1.8051397,.08529712 +.64231614,.44850204,1.0576026 +.7363299,.03116176,1.4659916 +1.6431337,1.1261632,2.4186886 +1.0078178,.26286703,.07334587 +1.4311691,1.014552,.54818257 +1.1307471,.76675611,.49684559 +1.6331264,1.0506272,1.0380674 +.65245499,.65516797,.58798391 +.58010597,1.5241662,.48146682 +.90287983,.58492194,.00093196 +1.4945286,.06120294,.26013876 +1.2140932,.9709087,.41161582 +1.2232582,.91420629,.68804288 +1.4647666,.08377346,.20485418 +.70308689,.3809623,.51841997 +1.1101694,.30559046,.82146926 +.85084523,.34689949,.72580893 +.63861245,.63310211,.0572841 +.32329646,.94010499,1.1213051 +1.0320979,.63432866,1.7631134 +.81193092,.02919458,.4187553 +.64302929,1.7153392,.38185071 +.90757643,.56567291,2.0771475 +1.3047023,2.6164774,.5710374 +.98755531,1.6335353,.09066412 +.53004953,1.0210117,1.1742756 +.3533842,.51203423,.25063937 +2.8708816,.32696526,.31849501 +.6474287,.02567053,.67580967 +1.4758816,.63961247,.59113695 +1.188339,.07254446,2.2127358 +2.1393302,.18937005,.08704343 +.49104125,.298937,.21356356 +1.8170768,.2063982,1.4634242 +.80632747,.54183801,.24999816 +.87771234,1.8544583,.77537835 +.42803098,2.717514,.5584106 +1.0782359,.09562903,2.1876322 +1.076131,2.1051595,1.7753388 +.95156066,1.2200714,1.5819505 +.8443667,.22085222,.66139644 +.77670312,2.0920167,.10549796 +.57079001,1.1844775,1.8666862 +.80646496,1.9347701,.40048676 +.87459354,.84172872,1.8174795 +1.0685919,1.4761156,.51501031 +1.0399709,.09809884,.22938266 +.70861386,.89712552,.6114924 +.41177254,1.3707346,1.0600305 +.69420198,.68588841,.42571569 +.25017774,1.4965281,.61905325 +.86611378,.85733822,1.0612408 +1.0109269,1.7630278,1.3544298 +1.6413894,2.0582118,1.4206175 +1.008524,.11449639,1.0025337 +1.19358,.61632444,1.6660992 +2.207323,.32575814,1.4862254 +1.3083144,.0218083,.25885949 +.84028264,.73260321,.14135466 +1.9906681,.23098097,.09499807 +.67294991,.79001443,.06663948 +.90432981,.12178395,.33652505 +1.0772835,.46350142,.47598333 +.96209037,.43493944,.89439671 +.81239604,1.4974419,1.0818464 +.67267368,1.4168365,.32863514 +.34185151,.81612753,1.5659774 +.89701638,.64237863,1.1270285 +.44691346,1.0275005,.26109248 +1.0828848,.14291088,.83740072 +.82853897,.56472965,.79116661 +1.1063066,.94053938,.45369344 +.54250562,1.3227136,.31427209 +1.1615492,.70560324,1.1368401 +1.2034276,.62666169,.81381078 +.57215345,1.2539701,.5338944 +1.8461105,.35752764,.72351755 +.71527742,2.6247858,1.5046078 +.84721901,1.2743654,.08252761 +1.6619257,1.3031654,.15811648 +.47192301,1.8810465,.12396007 +.2566828,1.3689046,.0012861 +.75990834,1.0967559,.74991905 +1.0416572,.05534795,.86314374 +2.1079233,.24574708,.25084338 +.61763906,1.0537696,.22939691 +.86219141,.77555021,1.6373817 +1.1260653,.00862485,.02254158 +.67911114,1.2364123,.33488209 +.45255695,.221422,1.4414034 +.60029223,.85604934,.85833272 +.3610577,.6586306,.26958125 +1.45046,.35551948,.55143861 +.59529241,1.736243,.00066267 +.98103515,.75568103,.50557787 +.86079165,.51251188,.49665666 +.5970946,.38452809,.85491453 +.28537543,.21197397,.56343113 +.56814372,.53216841,.06877552 +1.3974991,.37988288,1.3338408 +.56001436,1.9724713,.17340716 +1.3079678,.29982196,.1146371 +.59130013,.49514531,.81533908 +.95592619,.67134306,.91753341 +1.1274753,.78161067,.04513379 +1.0665947,.57316609,1.2281656 +2.9211074,.11958639,1.6348684 +.78974941,1.3639519,.5166523 +.66707306,.19573817,.61240557 +1.6963949,1.5882397,2.2766401 +.64863823,.77982751,.00524581 +1.45018,.41999688,.65797997 +.7341409,.90408625,.59328478 +1.4094057,.99758345,1.480014 +1.8818646,.37274731,.20453348 +.71211174,.96502803,.60063229 +.58143141,1.4229301,1.2307308 +.72903925,.1958996,1.7745536 +.76491182,1.6517333,.84989124 +.51863894,.71903263,.27024628 +.92904339,.24858288,1.5091532 +.62371593,.67007846,.19675642 +1.8921706,.78794478,1.5048432 +1.2023837,1.7175331,.12882541 +1.3336665,.66584495,1.5233064 +.54402809,.96521884,1.0098553 +.40409922,.72894665,1.0651483 +.85492429,.52034475,1.623513 +.92953942,1.4621394,1.7645394 +1.4997323,.19602982,1.166385 +1.4015286,.99779176,.87332368 +.74690248,.29343417,.45580151 +.70843062,1.2730429,.5319026 +.33787195,1.8407728,1.8198604 +1.2695403,.79097611,.89856343 +.85621486,.87410163,1.2202585 +1.31333,.61352532,1.0787987 +.41667826,1.5744298,2.0369486 +1.1281897,1.4081831,.56422018 +.58263663,1.1211508,.19754563 +2.5605187,.00701612,.1003685 +.82899539,1.4249838,1.2625092 +.60127219,.68654913,.15642332 +1.2936353,.35686978,.48601785 +1.5752524,.7206398,2.2044305 +.78845437,.71791807,.66892487 +.78055351,.66415604,1.4036753 +.96971724,.83080172,.5558375 +.68687145,1.0539066,.39485909 +1.3592137,.5575199,.72486637 +1.2419162,.0184474,.47891492 +1.2121232,.98762144,.88562408 +.42281335,1.310898,.87126205 +.39508363,.46634919,1.1354365 +.52321533,.95846213,1.4798919 +.42551237,1.4184881,2.1612287 +.47097579,2.1639775,.58433731 +1.951521,.24714652,.48596177 +.78735924,.74867383,.48464651 +.96395941,.6842208,2.096698 +.93176606,1.5772658,.16213401 +1.7045778,.45844827,1.1495771 +.3061159,1.7262838,.53745235 +1.221738,.51482063,.48671965 +.59580177,2.4483995,.50936586 +.77980344,.76560273,.93120296 +.63182934,.51427897,.41901708 +2.2995508,.05253583,2.6158726 +.6053609,2.2977727,.20050072 +.55005491,.02913454,.35027128 +1.79225,.28637278,.31190607 +1.069638,1.9304529,.20558155 +.8815719,.69643336,.91262649 +.75954792,.67527384,1.4621693 +1.2514374,1.4348843,.21246584 +3.9367899,.87441362,.44756494 +.211719,.51032238,.08884389 +1.4101003,.41582612,1.2674645 +.72069152,.57833302,.18064456 +1.5367677,1.5573656,.41416848 +.47104765,.73974419,.94392313 +1.4987468,.39032121,.02298889 +1.2314538,.96760001,.59353817 +.86445623,1.2386796,.67043392 +.8599801,1.5143736,1.1452364 +.34724689,1.9737596,.15355313 +.38104488,.6976273,.41355846 +.69110839,1.4140497,1.2602666 +.89121673,.90959807,.14095713 +.61260529,.1940004,1.0143909 +.84237553,.00432488,1.0497946 +.53288641,.25323323,.48416447 +.83503756,1.198834,1.421741 +.8153351,1.215659,.43953008 +1.4027966,.50480973,1.037173 +.49776777,1.9586672,2.3312824 +.75247677,1.2519652,1.0887985 +.65242614,.92564179,.54619896 +1.1778643,.11870339,1.4574711 +1.2238977,.66361556,1.5064766 +.63087335,1.4078999,.25333668 +.63496022,1.8905412,1.0260102 +.67830435,.49617914,.54096746 +1.5466905,1.6615686,.31611176 +.99401237,.51995851,.8155686 +1.5337015,.69591597,.34136097 +.3224026,.57040352,1.1223569 +1.3578283,1.6203079,.22007578 +.73292803,1.4913522,.60616817 +1.1910825,1.2286367,.37003181 +.5712908,1.2771475,1.3811968 +.78870773,1.0176044,.14595107 +1.6438337,1.0269793,.5687319 +1.9164542,.63415096,1.4328159 +.57281675,1.1938387,.09316812 +1.1816731,1.4456642,.47364531 +1.2315577,.5335499,1.5713031 +1.8034864,.15363984,.09170845 +1.0383953,.31090193,1.1657006 +.85960605,.28156875,.16420803 +1.1352181,.04442058,1.0616103 +.57999415,.62070434,.37983587 +.75384267,.13660453,1.3750155 +.97692512,.47829137,.64062832 +.41275676,.83767437,.64581101 +1.7976612,.66501029,1.0458949 +.69362094,.19503799,.55741811 +.58934058,.06744331,.01496132 +1.0671868,.80631991,.12296536 +1.3038482,.37082556,1.0828354 +.64196212,.42371217,.23068004 +.51961642,2.1377702,.12581222 +.2039104,1.0475906,.82352728 +.51097697,.99244465,.21832784 +.79878317,1.5744447,.36966269 +.96019973,1.0122115,1.6448203 +1.1239147,.03436582,.93655556 +1.1037251,.22601704,.20456568 +.4584703,2.0970793,.66944989 +.68693739,1.8920726,1.3065799 +.52300283,.531875,.62559647 +1.2645829,.17004495,1.2809841 +.91975585,1.9609543,1.6753246 +.89731839,.61881731,.7447973 +.93672808,1.8883576,1.6317033 +.91536071,.25944436,.31890759 +1.619524,.16926847,1.2563647 +1.1387743,.16808367,.12821388 +1.9590183,1.5348865,.31848428 +.67516063,.57638978,.0527485 +.28457188,1.056732,.09248539 +1.7344659,.36570214,1.8481598 +2.4643173,.41280776,.90024422 +.57738,1.7363737,.4838897 +1.1960477,.77213093,1.2620033 +2.1458138,1.1850132,1.2210415 +.46212814,1.0562359,.57660371 +.6727371,.95882254,2.612541 +1.9221188,.22699867,.50624933 +1.7773594,1.3721233,.67383997 +1.2155257,1.1275755,.27572471 +.52806559,.000316,.12213649 +.58980614,.03428233,.60401444 +1.6687987,.46494053,.39905415 +.68612429,.60609065,1.9037429 +1.0580754,.18522415,.80205598 +.91124416,.57485174,1.2541113 +.60805752,1.1815131,1.1758583 +.56145314,1.0879822,.38172552 +.23389344,.23001418,.00743249 +1.2160819,.2854182,.25358099 +1.282807,.15621996,1.111578 +.98063419,.17289914,.52920468 +1.2479574,.99601502,.06460268 +.46900349,1.6203878,.16579688 +1.0507117,.19008939,.44795373 +.77115587,.96315605,1.1257284 +.56622327,.78068332,.61690625 +.79852902,1.2848047,.52191731 +.82604021,.39053369,.34492431 +.44466691,1.3899671,.69824707 +.6648594,1.5777018,.37945761 +.98752233,.23989463,1.4791496 +.72111971,.70569176,.3666662 +.77470779,.58946874,1.1569176 +.73921224,.28394744,.62128359 +1.0018712,.92042938,1.8216469 +.87711753,.63814745,1.041015 +.91001066,.3056013,1.0833135 +.59137442,.58909842,.24185951 +.62087802,.26261277,1.8071662 +1.2952932,.31862141,.87387264 +.81833817,.93585364,.40064798 +.49948275,.84035214,.35140615 +1.1613789,1.0084652,.57591528 +1.1356878,.72429475,.22833581 +.80581011,1.6597023,1.0940065 +.3126256,.20265627,.29684312 +1.0393393,.11205438,.58316987 +.73908487,.23548874,.9645012 +.62388679,.41749362,.26287695 +1.6478922,1.4113174,.38250312 +.64899414,.54166055,.3475209 +.81786044,.74014313,.01924885 +.71003028,.69110508,.65088755 +.25644642,.40824993,.75732869 +.46366418,2.1396611,.19124508 +1.0168374,.19363975,1.0307555 +.34105952,1.0276888,.22030641 +1.1252895,1.2179976,.56019493 +.396859,2.3266075,.64956023 +2.1070023,.05068393,.95541941 +.68858715,.26178763,.30014372 +1.4949011,.54168536,.63388591 +1.1515183,.36288487,.14213279 +.31997758,2.4041145,1.1080466 +.46278498,.53824394,.29177655 +.74901169,.23246888,.1966816 +.55654494,.53811448,.59687625 +.67269989,.41898086,.89646479 +.49561864,.75308858,1.259312 +.33073978,2.3105209,1.011736 +.7019585,.27847196,1.5378628 +.63131283,.3285222,.40851379 +.71856094,.84869086,1.5412943 +.55521274,2.0609061,.78908502 +.75973185,1.7350883,.07889182 +.58288818,1.0464571,.10851275 +.49226638,1.2397448,.65403544 +.86353737,.47915239,.31502651 +.33416234,.41900766,.63540615 +.71257588,.14874774,.17660843 +.45148613,1.5603327,1.5947532 +.67200077,2.1594598,1.1037974 +.55932196,2.2231633,.6949712 +.63131672,.9120876,.29154395 +.91172423,.58480306,.64189901 +.72929304,.46636076,.33991066 +1.3337019,.5310136,.83924332 +.56774041,.03426249,.09957781 +1.4741662,.04091742,.26971903 +.77604332,.91506086,.24996322 +.50601165,.62197838,1.1172312 +.29204815,2.6167276,.55330645 +.51830361,.10425449,.3872918 +1.1497427,.96630248,.21090619 +.78561333,1.3065424,1.2677326 +.80465138,.69199452,.64012454 +.68589844,.11545591,1.1480302 +1.4611733,1.77258,.12378346 +1.1757714,1.4114205,1.2173476 +1.4090959,.57392708,3.1390553 +1.0366758,1.5894321,.55406559 +1.015102,.04314143,.85752552 +.59850135,.95636657,.20249914 +1.5244646,.20438352,1.7571695 +1.1181625,.68214021,1.612448 +.39189316,2.2319968,1.1313526 +1.2981328,1.1741009,1.2211871 +.86393007,.22721213,.96094988 +.8595857,.28267266,1.2009944 +.63822406,.41215422,.34435866 +.82400922,.36914797,.15035265 +.56654041,1.4973275,.19139001 +.85446225,1.3026638,.45894496 +.82098717,.42047436,1.8030017 +.68534764,.36149766,.99234533 +.6485685,.37648226,.53494144 +1.0896674,.19382768,.42623811 +.76936945,.72496156,.80792751 +1.2312967,1.8614049,.23359686 +.56901264,.15802707,.37104734 +1.0946502,.58125277,.06467885 +.86074153,.15729104,.14713746 +1.5219042,.06688718,1.9860704 +.72426085,.57890629,1.0516613 +1.7945178,.52965239,.25597486 +.89677789,.94418441,.07405474 +.67465328,.41723573,1.1999351 +1.4804108,.21357871,2.1344939 +1.8028154,.09195302,.43733112 +.36100122,.59048921,.73435344 +.82008147,1.7071543,1.2033015 +.70228,1.6206088,.24366695 +1.0166692,1.6956841,2.793467 +.34278213,.44344656,.23871417 +.41477053,1.7584001,.17257406 +2.1281769,1.5772045,.77956224 +.88255689,1.7336467,1.9575493 +1.2607291,.49540788,1.385409 +.86558384,.42841245,1.3408205 +.55296179,.63127563,.12445594 +.34405573,1.6372843,.60125994 +.84489155,.33608641,1.2161689 +.81637028,.7352798,1.3798525 +.79007822,1.4873062,1.0025675 +.39405873,.62059124,.40481461 +.96203334,.17829738,.31774992 +.61895136,1.7081805,.31776789 +.99659835,.30829482,.23006173 +.48590586,.98163109,.52344659 +1.2156605,.29352715,.05571565 +1.1987855,.30266128,.49983157 +.89090707,2.6710425,1.2589849 +.78986038,1.2247027,3.501305 +.50266707,1.0095153,1.2128329 +1.0351276,.11484139,.55694663 +.6579876,1.3798303,.63850298 +.66847618,1.6144452,.01182304 +.9569592,.88334014,2.2183717 +.57932266,.22673638,1.2688294 +1.1032976,.77167817,.0377215 +.78851948,2.0819616,.9336587 +.66885699,.51503731,.80367533 +.97604515,.80790899,2.5563828 +1.0305669,.63897502,.64383228 +1.1163488,.32623155,1.2061795 +1.2545465,.12641611,.13407417 +.67239666,.99069911,1.63808 +1.8848284,.18271378,1.0930993 +.74374297,1.901273,.36764489 +.34411696,1.384496,.75665558 +.76981803,1.4207342,.72802979 +1.7431321,.61230195,.16054822 +.9712808,1.3522269,.38288187 +1.0361019,.12028376,1.3241499 +.59804742,.38951147,1.0317362 +.64314593,.84200703,1.1373098 +.60393532,.66442432,.32023697 +1.1107835,.27272552,.57607334 +1.3059166,.94117079,.62711496 +.87522741,.6380991,1.4884052 +.79702617,.27996263,.53241618 +.24332283,1.1691115,.39436121 +1.7258052,.25768964,.35121562 +1.1131605,.07119268,.59297037 +1.1305583,.38798438,.22781775 +1.757869,.27019914,.13448807 +1.9043441,.17986089,1.3062067 +.92475209,1.3352544,1.5189181 +1.132885,2.9406618,.50000428 +.74400038,.69752724,.39040557 +2.0545792,.35014688,.66169693 +.60004367,.23091323,.56919104 +.43610343,.51074048,.70615506 +.50239867,.13374199,1.3024927 +.90777575,1.0774005,.13516922 +.90609611,1.1062866,.96273943 +.6613964,1.5843048,.18156739 +.52982715,.07460898,.12655671 +.42121906,1.8499202,.45942425 +.43475867,.84722726,.74116861 +2.0661627,1.9389317,.51531494 +.55067604,.3163674,.32190663 +.63436371,.75343708,1.3924828 +.25661292,1.4527872,.50472634 +1.0761924,.60876924,2.5118682 +1.6077498,.64933841,.19769397 +.72656381,1.6430675,.91830437 +.43786444,.42745187,1.6104958 +.75815068,1.7144402,.19679024 +1.0417276,.43823522,.24695154 +.50312256,1.1246282,.55989382 +.48535759,.17079719,1.393463 +.84624127,.28591281,.15284464 +.91980985,.4698842,.50887824 +1.3738475,.77396408,.39491769 +.49152389,.80948962,.12487485 +.85942225,.03171735,1.1700357 +1.1087333,.01437154,.84575348 +1.0612518,.81220461,2.5381512 +1.1587764,1.2159486,.49182024 +1.0583854,.31395397,1.4089129 +1.7364896,.8402639,.57671546 +.85381549,1.4582301,.23065255 +.85239726,.64438862,.11942231 +.69163489,1.8693019,1.4018679 +.42813657,.84800571,.51435586 +.64529592,.7556119,.22754097 +.7724272,.75750159,.79880536 +1.3159422,.78935762,.22069638 +1.4247487,1.2147832,2.0618801 +.37255597,2.6953806,.94500464 +1.0269804,.11196792,.57454407 +1.0685575,.62002596,1.8239117 +.6963247,1.0266518,.04294118 +.75877051,.87932256,.57920017 +.47016339,1.3444634,.02154567 +1.0433367,.36913636,2.1783587 +.93909831,.47939786,.01880368 +1.2731438,.93711982,1.0860763 +.65853693,.67111141,.48477038 +.43213513,1.3031011,1.0459331 +1.0554395,.49083318,1.2190599 +.42374179,.18321522,.25692415 +1.4178222,.23082363,.37549655 +1.6718964,.22889499,.58343343 +1.0351964,1.0598722,.61837736 +.55189041,1.1462839,1.7056125 +.7897839,1.3631954,.60391583 +1.3315034,.08434729,.62455121 +.96355984,1.1129326,.52933334 +.84733348,.22092674,.7030581 +3.940675,.24841353,.726574 +.69300777,.28976262,2.0420919 +.6920546,.10655147,1.1408026 +.54973821,1.4149727,.66393296 +.96969023,1.0743945,2.5424236 +.77415025,.40885485,2.1721024 +1.0002074,.25374066,.92153167 +1.1242167,.14189999,.94996864 +.68030745,.58753817,.99322082 +1.0702377,1.1563455,1.4898189 +.52356304,.24216915,.32007143 +.73291627,.60505904,.98739711 +.9845341,.68362292,1.4986217 +.43315851,1.5271104,.14243872 +.59797265,1.5183168,2.0238399 +.6080639,.64967146,.01644356 +.89114013,.43644748,.63897752 +.49511832,.50561625,1.1586803 +.40824051,1.043562,.09962417 +.91151613,.32614307,.03643809 +.59927797,.02547064,.09286301 +1.1905214,.3478192,.08168206 +.70213932,.38254805,.2340721 +.78319793,.33607489,.62400611 +1.3526115,.37862237,.2495702 +1.0009587,.40600261,1.7001796 +.75509664,1.138346,.38649631 +.43556963,1.0733533,.11406692 +2.2026947,.12033764,.64663688 +.90523248,.10122571,.44406381 +.52723443,.98605861,.51934542 +.18470539,2.8728683,.28148394 +.69968101,1.1939552,1.4020706 +.78619277,.26942372,1.4109062 +1.0189009,1.7372565,.8086125 +.72446224,.30859276,.18259258 +.81331245,.28955094,.79468135 +.39150266,1.7790749,.23353346 +1.5407503,.62491416,.57134139 +.67587033,.67045816,.3163746 +.97174581,.27555917,1.056593 +.65580357,.06983326,.4298223 +.57982163,.54198504,.8553047 +1.1558443,.14336275,1.489307 +.33889704,.03058265,.46623352 +.85031853,.9872702,.34394217 +.31013908,1.2831545,1.0807464 +1.0549256,.34466386,.1732432 +.70824458,.21522959,1.4939575 +1.173071,.0718568,1.4154588 +1.6650833,1.0715202,1.1836686 +.38216205,.53657135,.58442076 +.39455108,.23838319,1.4057375 +1.4062246,.33942849,1.4297713 +1.8123666,.53396539,1.9106627 +.97388142,1.027487,.0479915 +1.0563731,.27083187,.29648318 +1.1183947,.23361831,.26045733 +.33850559,.49775532,.02157393 +.65375638,1.5500035,.5067051 +.4532881,.51695978,.05032442 +.65994993,.74943241,.74461359 +.50206157,.92473071,.45773041 +1.0992675,.8579895,.56130789 +.64873058,.15779212,.21638336 +.98093833,1.0691062,1.3059204 +.41381208,.87247229,2.2379534 +.49036869,.45271404,.04923774 +1.1937057,.11658574,1.5967387 +.49391258,1.1819823,.24614012 +1.0480673,.24215239,1.9802068 +1.2620462,1.0418425,1.3795234 +.4148692,.41317357,.4062949 +.43645647,1.4744755,.24025016 +1.0627619,.27186952,2.2325796 +.85428549,.8724717,1.247116 +1.0360025,.3651035,.43781115 +2.48411,.04395127,1.4248165 +1.0340586,.62808452,.86707355 +1.2950018,.91610843,.66176703 +.92985532,.66995887,.10709273 +.66379246,.66243209,1.2738145 +.74876822,1.1398032,.23537077 +.53289666,.65316598,.64426175 +.51212349,1.1114388,1.1330826 +1.185999,.57988244,.07865084 +1.2988064,.21247836,.50906183 +1.510594,.09001699,1.9754561 +1.3768017,.54535449,.06425628 +.60867865,.44011231,.084356 +1.0406038,1.4994762,1.2848567 +.87264521,.96196352,.97943995 +.54420552,.98804717,.60889367 +.71503159,.29455396,.58213231 +.68245392,.24899576,1.4289536 +.66356122,1.2653913,.214325 +.81342006,.66753884,1.6393798 +.34079047,.45414744,.97958635 +1.3825962,.64638831,1.4777583 +.57186748,1.6809524,.12746621 +1.0297379,.45650296,2.0153209 +.88635876,.50243531,.06193619 +.79898667,1.4248438,.51664756 +2.2606933,.86456828,.16985159 +.86771085,.81611068,1.024116 +.96776214,1.1716037,1.2033389 +.34235861,.34924025,.4580597 +1.0893704,.89905334,1.0972601 +1.562277,.86557172,1.1831662 +.54635025,.87237435,.41288405 +.99586272,.08026135,.14276216 +1.5350562,.72725794,1.2088492 +.74088067,.55936448,.04749011 +.87838218,.39606829,.2117662 +.90994214,1.0552076,1.1265224 +.7403412,1.9041082,1.1939679 +1.9083397,.88076789,.12308544 +.90729163,.71580925,2.1265539 +1.4764838,1.1312923,1.1481043 +1.1683456,.28117678,.21125114 +.43646972,1.4583402,.75153978 +.8804897,.20669457,1.1154662 +1.7518874,.4569365,2.1406372 +1.8743872,.10288655,1.1792828 +1.3714746,.37710106,1.5418489 +.33315311,1.5318169,.56891202 +.63409892,.27480967,.18250933 +.95586228,.00514129,.4667862 +.30980413,.26382347,.86644758 +.79970223,1.8377254,1.5045908 +.60531972,.71247787,1.1541624 +.84741929,.3622091,.25409968 +.8625321,.05932419,1.4589674 +.80138276,1.017384,.56222223 +.85721134,.82007641,.22916933 +.55395198,.10404866,.08300534 +2.0120725,.28071808,.65155456 +.89662933,1.4308532,.0724797 +.41513673,.38867425,2.5855743 +1.7020886,.4387407,.92582657 +.94483663,.56853085,2.0272631 +.61759117,.02134972,.03757381 +.94692828,1.9333427,.40752742 +.35168483,.49770131,.87343242 +.62278896,.14497656,.51868906 +1.2065213,.51945934,1.0138995 +.67673716,.69329952,.57925913 +1.1741703,2.2086748,.02427143 +.44422409,.24121781,.36796916 +.97565192,1.0053527,.86830374 +.38622285,1.3576382,.64415287 +1.88205,.80159563,.63944375 +1.3290193,.42685322,.99463868 +1.4589581,1.3851508,.18694754 +1.1404774,.05216458,.71510979 +1.4052422,.23614331,.56251517 +.59191566,.75537731,.25221832 +.44058791,.58404588,.46781494 +1.5770541,.3661282,.9858527 +3.019581,.03805103,1.7810972 +1.8082837,1.6073367,.68974392 +1.6336849,.12374711,.35229115 +.83974506,1.0236013,.49512609 +1.7181738,.18183248,1.1097233 +1.0017041,.68499786,.21861989 +.25115728,2.4335216,.47390555 +1.0666566,.0566445,.67864243 +.89039911,1.7163137,.75107722 +1.460486,.99276654,1.0892385 +.63888838,1.8339892,.95182361 +.37302098,1.214726,.39531614 +.47809391,.7874591,1.3054122 +.94671994,.16539615,1.2595609 +.55498117,.42897517,1.7470177 +.24396891,1.5083189,.38767952 +.63187592,1.1962759,.06448172 +.48159775,.82037429,.83155041 +.45014447,.02177137,1.0068542 +.76878987,.37549366,1.9280476 +.70087264,.02227787,.03631717 +.31381302,2.0645538,.20502153 +1.9248354,.65392514,.53226104 +.6881115,1.0725234,1.2786943 +3.1200615,.29606019,.77812835 +.46698765,1.0113774,1.1313157 +2.6516904,1.5099516,.3564411 +.97390524,.56964613,.45182667 +.56738534,.8815288,1.699658 +.8488667,.78679541,1.4442644 +1.799683,.77346602,.69657275 +.33832706,1.058012,.75750675 +.64170919,.74123796,.15694376 +1.2795988,.40149831,.00517179 +.56672051,.10864321,.31177028 +1.6466173,.72734782,.90792635 +.58345672,1.1429989,.49628259 +.67702171,.66056351,.68925563 +.77590619,1.7640325,1.5870529 +.49985276,.91813056,.13321913 +.69775211,.64495439,.62493273 +1.9241443,.01568132,1.4607253 +1.0906817,.56698658,.49405162 +1.0502282,.946906,.23559565 +1.4850973,.34077563,3.1291022 +1.4261142,1.1511755,1.452489 +2.96691,.34535685,1.9332867 +.74404663,.49340318,.34140538 +1.0639031,.73400279,1.8350588 +.91553317,.07581686,.12656214 +.66289642,.25375186,.01452841 +.69253039,1.2543211,1.9897621 +1.2495756,1.2339575,2.0478066 +.9351502,.70253317,.02757635 +.76195907,.56402244,.23488715 +1.7718019,.70668066,1.0002526 +1.1107158,.99233273,1.0724085 +.71396182,.01894938,.90854587 +.80084454,.19416519,.8602728 +.66486974,.27990294,.26203606 +.85047821,.27260296,.60177832 +1.5625569,.02449836,.0303236 +.7859457,.01452969,1.0440388 +.57173256,.29318656,.62718505 +1.1521025,1.2430706,2.0013361 +.55639145,.50487931,.86609645 +.51184392,.6953489,.00282614 +.91548725,.39900466,.68066696 +.79614708,.4320659,.79348151 +.4278016,.03027697,.50914186 +1.4944862,.10801029,.3465578 +1.1781214,.5153491,1.4359362 +2.8895423,.11570312,1.9491397 +1.0590323,.79143501,.85546376 +1.1102706,.11837153,.39962253 +.84443305,.87503247,1.7036282 +.81736564,2.7576653,.75144415 +1.0501459,.53277317,.10284776 +.51012034,.93628723,2.2481425 +.88611677,.24729606,.27880941 +.79345739,.57525973,.22838766 +.70113168,.10601297,.38170031 +.66621219,.04930181,.1661406 +.35506637,.11480878,.48224301 +1.1429957,.33854629,.65539623 +.59596525,.65288678,.41667909 +.68147702,.60306468,.18956899 +.9486359,.17805711,.72475902 +.55633968,1.2023416,.18561711 +.47628177,1.3682428,.6178712 +.87221007,.75508717,.3206406 +.51290749,3.1057914,.80642807 +.68208955,.16181505,.1412738 +1.3587845,.12349037,.72576391 +.36141938,.25251908,.31715351 +1.4600535,.3956411,2.2285541 +.68376583,.55470785,.91238071 +.53347843,2.1886144,1.6966378 +.89706297,.15653994,.44182699 +1.0398134,.64055125,2.0086989 +1.153312,.81406667,1.2041368 +.42810495,1.6192717,.28428026 +.39183925,1.3802749,.31925248 +.84095674,.19403792,.11244493 +2.251663,.36623711,.18575504 +1.6299928,.70383443,.70427876 +.87552984,.91364986,.95656883 +2.1508695,.91916825,.45919986 +.78489611,.3921209,.13922965 +.3874989,1.0929243,.56322097 +.68150451,.23882246,1.2132519 +.83185748,1.4544751,.95800912 +1.6969621,.24589139,1.7125191 +1.1411599,.58308771,.94373852 +1.4320368,.58328503,.96694398 +1.0863434,.8661011,1.7890871 +.59307,1.2418168,.05748578 +1.0789506,1.1699554,.58003401 +1.1072291,.99087108,.59205864 +.46702203,.91769113,1.1348047 +1.1097075,.26248082,.72424073 +.80956456,.0130495,.55368845 +.92782112,.64512335,.69470881 +1.2871861,.03220946,.3800861 +.67653306,2.2962739,.74688435 +.59414578,1.1778529,.60754533 +.45712507,.03330319,.21016775 +.72621798,1.570215,1.5353952 +1.0379241,1.2050114,.76841642 +.52087793,1.4499271,.84223722 +.71955841,.1255328,1.1178777 +.47242087,1.1063922,.13353176 +1.0658743,.10059599,1.3584531 +1.3368476,1.0181006,.26920709 +.57559841,2.6739364,.99057007 +.58337281,.03243486,.37826035 +1.1506908,1.1916358,.20606847 +.49409404,.449683,.67799309 +.6136202,.839041,1.0902051 +1.2727863,.57028244,.06924428 +.62410135,.44042105,.50205483 +.22897115,1.8541277,.90040699 +1.401757,1.1477268,.89193296 +.78510326,1.0087833,.69321355 +1.0620893,1.0024785,2.2179094 +.50645154,.08473104,.05647374 +1.8320239,.72418657,.33551665 +1.2810006,1.16567,.32449861 +.61014783,.52446586,.71034789 +.93254399,.18602293,.62575936 +1.0693456,.69343297,1.5853064 +.71432352,.53906837,.72819308 +.6706632,.29789517,1.1970036 +.62847094,.90050505,.99309925 +.70934402,.18892494,1.4462592 +.81812061,.18455057,.519312 +1.005021,.83245412,.8554338 +1.0056875,.38878182,1.1834583 +.7594141,.20644128,.72751989 +.66457246,1.6048007,2.5901946 +1.2660153,1.3092308,.05251865 +1.3457554,.05532735,1.1949445 +.64379784,.39662169,.19339788 +.97966006,.06155303,.84177294 +1.617784,.32318207,1.8333137 +1.6749471,.82064488,.65454126 +.99515336,1.6525206,.28095357 +.9261027,.83703967,.83885302 +1.026564,.64366167,1.0325767 +.47712479,1.4499388,2.4692985 +.9942599,.841638,.18892337 +.69201677,.8895709,.49063753 +1.8017075,.26344398,.44026095 +1.4395951,.06341426,.10029099 +1.3185121,1.3173895,.6207001 +1.1525105,.62810192,.68995427 +.61055146,.59163512,.08449193 +.67565234,1.3117186,.51539814 +.69921981,.88198229,.53464402 +.84877036,.13392621,1.0806854 +1.3285509,2.1587912,.16813625 +.92286665,.7056214,.84679901 +.68762839,.16840906,.57989995 +.80633433,.08531782,1.8955886 +.51215188,.02024307,.65791398 +.40475573,.38893344,2.102553 +1.4520193,.72277058,.85795786 +.43240979,1.4832585,.37270017 +.67156793,.19177481,.92909045 +.4797921,.44736865,.20048438 +.61266768,.77526265,.0687286 +.54899286,1.0804318,.28177747 +.56952843,.44285401,1.3139777 +.79427033,1.0867075,.80560885 +1.2146729,.9464751,.48026723 +.55830329,1.330316,.37704251 +.81363295,.50309575,1.255956 +1.0661378,.41878626,.63758831 +1.2346528,.34760665,1.5874509 +.86738657,.50737731,1.6252463 +.28514835,.30196093,.14630119 +.67915231,.31403983,.46363997 +1.121502,1.168451,.84334642 +.98762509,.15884537,.11355992 +.2844775,2.2600445,.74525218 +.51963302,.97373806,.99564316 +.78107681,1.1444521,1.4184275 +1.233763,.27918296,2.1884102 +.40289313,.93896145,1.7759209 +.70456432,.77799995,.69584397 +1.047631,1.2313403,.69616976 +1.0701536,.89219988,.88201572 +.27659365,.1311116,.21316798 +.52962686,2.5812186,.76379508 +.93842357,.0407834,.0194785 +.38154823,1.1924804,.39512425 +1.346536,.7740664,.33672967 +1.6663368,.09164917,.78759862 +.87192788,.29674765,.60118426 +.64547601,.91809741,.12849142 +.85895064,1.3065131,.75687173 +.43735584,.36927236,1.2990257 +.66324899,1.0807699,.27596367 +.91069525,.83432939,.51516132 +1.4737288,1.0131467,.38810798 +.55137658,.58509003,.79433705 +.82993107,.06012819,.04305357 +1.3866163,.11019101,1.7766841 +.9410409,.44821078,.38372443 +.66875649,2.3290413,.31575975 +.66644882,.62799218,1.3176896 +.54195368,1.0599333,.69811137 +.54670934,1.0609131,.6750673 +.74329295,.29727109,.01235352 +1.3794872,.49573702,.62512774 +.76974707,.72022463,1.0939266 +.95312463,.66340815,.27972558 +.49349046,.38239252,.27981443 +1.7242412,.0885923,.64184912 +.95967327,1.3170984,.2975991 +.6710051,.3893688,.33187144 +1.0446518,.16690714,.17035215 +.58610473,.04794899,.5889363 +1.7485654,.24325034,.09137509 +2.5035992,.28285846,.31086546 +.65651235,.89105893,.88538891 +1.5015261,.37265528,.58139381 +2.6596525,.09584778,1.2675128 +1.1351941,1.1504507,.9711201 +.5953943,.42743399,.58837138 +.97627198,.981637,.18123341 +1.0801103,.6502684,.32606116 +.69886747,.73387113,1.6625625 +1.119307,.6202463,.88620059 +.95209791,1.097869,.61916172 +1.326846,.11573222,.76836622 +.47301199,1.2241585,1.4318559 +.20725101,.70558766,.04795302 +.49991749,.51359978,.48893182 +.83075589,.34630015,1.381004 +.77784311,2.0259211,1.4635867 +.8645445,1.4403623,3.3230674 +1.3941999,2.0284267,.81029561 +.51418028,1.349582,1.2821641 +.52644688,.78793451,1.6918441 +.67930155,.11140253,.06121688 +.49164362,1.2658532,1.5883189 +1.6357374,2.4018959,.74534525 +1.6522379,.36654153,1.5248106 +.54574783,.12111528,.78021917 +.51902508,.55120143,.23885036 +.93649464,.35201221,.01930676 +.86703004,1.4858655,2.1462974 +.9816584,.14575397,.29442709 +.75915898,.76809429,1.0790037 +.60758941,.47803261,1.5270238 +.65955049,.22850934,1.192058 +.96010719,.7674266,.92860803 +1.254777,.16424118,.03606246 +1.1278016,.26951594,.1452045 +1.2275157,.57844863,2.5369563 +1.2674928,1.776059,.12953543 +.99862338,.82221273,.40136182 +.4817809,.68917331,1.6135971 +.63102085,.36878425,.1044793 +1.7740495,.81425756,.52192261 +.67691771,2.0470289,.14224322 +.72765699,.04909007,.15754217 +1.5054283,1.247955,1.3984543 +.7686928,.45007594,.3910942 +.53564851,.16747011,.96784306 +.93839653,.60394929,.27223991 +.78722066,.3870393,.7784209 +.98153129,.54251053,.02624966 +1.833833,1.2817697,.05254279 +1.206608,.08070588,1.3147384 +1.0094874,1.2430162,.44071409 +1.4346378,.01499386,.77113373 +.86027895,.12560267,1.9549182 +1.1737461,.51411438,1.1486874 +.78109593,1.0850979,.02347572 +1.2673948,1.3173969,.49226067 +1.2816138,.14149219,.50359769 +.96417713,.28379952,.21753657 +.90905032,1.6995432,1.3818603 +.92989993,.21934444,.37731236 +.91592562,.1344235,.24393754 +.63998747,.05403126,.38021171 +.67568433,.38279187,.57307427 +.63636644,2.0441057,.15282332 +.75816491,1.4493777,3.1708012 +.77516265,.42504958,.24830077 +1.0937104,1.3402887,.85898808 +.43181643,.63169549,.24056601 +1.2284368,.96432727,.23804939 +.86020705,.01182862,.54611758 +.52666641,.56275415,1.4507065 +.57229733,.81162797,.44473971 +.39488286,1.6866627,.87448532 +.54800575,1.7420321,.095878 +.98466975,.89071179,1.1891824 +1.0514907,.1941208,.50311706 +.9751235,1.6895938,.60104537 +.59074672,.01904624,.13028166 +1.5072659,.04484019,.62736337 +1.4979047,.01737793,.14782777 +.82775196,.51707868,2.5563715 +.57697112,1.3352475,2.9826965 +1.0396428,.07962736,.31370441 +.73858482,.65191809,1.0379236 +1.1626701,.06398846,.72497413 +.6765998,1.8630852,.94376744 +.45176699,1.3901287,.73664411 +.60528166,1.8385418,.06862471 +.63952526,.85153092,1.3308163 +.87641221,2.4786734,.46111242 +1.8997157,.6129336,1.7267733 +1.5196682,.24553946,1.0021827 +1.2149788,.29477042,1.0928937 +.77413601,.94666694,1.3209641 +.94011971,.93077615,.14562404 +.55704743,2.0915395,.38323946 +1.5827311,.10740674,.72677264 +.42370614,.80270032,.95904213 +1.0103052,.36509648,.39367362 +1.1632638,1.3057966,.50632072 +.451898,.51286429,.31322973 +.85299274,1.020104,.03482744 +1.0992449,.1627845,1.4902665 +.32880676,.36884508,.33902852 +2.0875344,.09664018,.36848859 +.9395099,.23530726,.71416894 +.29229947,1.9871317,.5264436 +1.7336423,1.6968325,2.0535234 +.52277771,.56454053,.0952771 +.98706791,2.8553628,.61365391 +1.6304904,.50041887,1.5864856 +.84967156,.16891236,1.9593484 +.99372657,1.5126688,.57363877 +1.0401976,1.4525276,.87370866 +.80142552,.2778611,.46699211 +.66463112,1.2681401,.81098292 +1.939546,.17022882,.12638642 +1.8014195,.71294829,.17838154 +2.0700043,.86435291,1.5486931 +1.4976843,.93706147,.79677159 +.34863033,.79568339,.02046246 +.64688442,1.001862,1.1825142 +1.2971141,.37336064,.58855048 +1.7362405,.25079065,1.7587134 +1.2782014,.15343408,.64194246 +.20366073,2.357963,1.2702181 +1.5125412,.74793391,.05741217 +1.043366,.85905772,.51484175 +1.605326,.06899926,.33885859 +1.4155493,.29158637,.48777994 +.5171976,1.122479,.51679795 +1.311225,.53267138,2.4061487 +.93085756,.35590866,.98746114 +1.2801738,.58257769,.5549738 +1.6037345,.03260327,1.1566192 +.63617586,1.4704876,.18703518 +.85239137,.6191843,.07900991 +.88658793,.38554049,1.4388718 +.57472141,1.1399135,.07637849 +.80074693,.18635376,.96812432 +.81597411,.19392575,2.9451462 +.72420354,.11061614,1.1099079 +2.0475078,.88147905,1.6073296 +.55360483,1.293039,1.0583899 +.75455297,.71746634,.3990303 +.56531511,1.5341852,1.4746819 +.36124371,.69396459,.932751 +.80863678,1.4310093,2.2393249 +.59187381,1.7733301,2.2544337 +.71437597,.26479398,.23280392 +.81279426,.15736711,1.6407589 +.53530051,.95933763,.37468825 +.5439668,.11596184,.11462143 +.53768639,.19066791,1.0171537 +.45213685,.37675997,.11063997 +.71283702,.74218079,.2642277 +.73121983,.70981203,1.9277331 +.81638203,1.611354,.35205386 +.56991342,.06997971,1.1394352 +.40806193,.72137444,.34230205 +.56094157,.90824124,.71230031 +1.2181022,.06035427,.78300536 +1.4489293,.39965953,.09131111 +.72828615,.94674651,2.0400371 +.94267786,.11993989,.57343349 +.50593898,2.1095382,1.4141209 +.63003569,1.0499789,.53698829 +.55046242,.48798948,.37308674 +1.4204737,.59001436,.09817123 +.82730183,1.1870435,.56755415 +.85530137,.60969521,1.0760261 +.84438643,.22475264,.93724506 +.41532525,1.2257903,1.1211192 +.86972575,.48347038,.15899592 +.54860156,.222674,1.5974229 +.4810192,.37018359,.16227092 +.34252359,.32281615,1.5278378 +.90327722,.28490072,1.9390781 +.88460503,1.2913569,1.5495946 +1.1953281,.71437367,.13567783 +.76881838,1.6011127,.51559625 +1.1224449,.88563796,.28283116 +.89682876,1.3938541,1.3791295 +.80908329,1.7950366,.31407035 +.36499102,1.4750795,.45935485 +1.8323435,1.2360366,.88368404 +1.2230384,.89162616,1.8011619 +.66499727,.44318586,.24845198 +1.0737316,.16150273,1.4469025 +.36819143,1.1802487,.27459708 +.57691221,.77125664,.23491927 +.25560418,.55527698,.20166462 +.50559777,.93626347,1.1305947 +.96445355,.37967623,.84078046 +1.2315691,1.4174227,.92339482 +.88823527,1.0748601,.51250661 +1.2067018,.2996554,1.4117199 +.23854504,1.1266148,.64965431 +.41712721,1.3126727,.4173789 +.77927457,.71994599,.0716453 +.47346046,.30881223,1.184772 +1.2250218,.00942896,1.2255519 +.35905645,.52669198,.11584667 +.81511576,.20594122,.7202078 +.70035536,.60806842,1.6890373 +.52315175,.81504518,.69298588 +.65633916,.15378359,.32085573 +2.1442003,1.0609722,.01162541 +2.6115164,.10398171,.17160532 +.46815028,.97494639,.06822844 +.29236411,2.1538425,.83310787 +.90090617,1.0080093,.62978909 +.87405432,.83043438,.06685859 +2.3767181,.22482682,.22198368 +.67559221,.04502803,.94081961 +1.3076304,.29174659,.0427403 +.82543831,.97347863,.6029332 +1.2587685,.16952785,1.8045825 +.56543499,.73732562,.124808 +1.3150182,1.3758958,1.8768251 +.37713225,1.0416995,1.2239562 +.94055961,1.5046051,2.1940843 +.47877632,.58076166,1.2397316 +.98282644,.93152582,.61728411 +.52155719,.50488671,.85720034 +.72048657,.03505271,.07305668 +.86353986,.88712305,.60165053 +.70198698,.48807604,.68999129 +2.0418997,1.7005425,.61176591 +1.2633185,1.4880481,.79926141 +.96601543,.26668802,.56820727 +.6318795,.95620824,.06221201 +.84831071,.41736227,1.3603065 +.81498812,.39821352,.39607983 +.59795308,.80316265,.07942405 +1.1388548,.90574881,1.41005 +.42160839,.88188776,1.5622447 +.54135937,1.9506335,.73971192 +1.4697658,1.1441417,1.1220197 +.75589795,.61759244,.69311577 +.63480294,.72771076,.10317989 +.4231925,.41116028,.52426748 +.48638534,.25883364,.99415041 +.64285659,.61746025,1.0810822 +.38225453,1.2559892,.53378181 +1.183552,.32218497,1.587788 +1.0305681,.58288459,.81568984 +.97178814,1.2855251,.33564625 +.61155038,1.1230311,.1068652 +.47171059,.50140041,1.3083748 +1.0937949,.99159891,.20443538 +2.0353176,.26566557,.85360781 +.78343442,1.5508049,.91402168 +.39073216,1.4221852,1.1654479 +1.1141763,.68285942,1.5964016 +.61752919,.41077738,.33763532 +1.2630462,.19814705,.78578798 +1.5027477,.47139431,2.8829039 +.69946434,.64034014,.10414926 +.43113547,3.0138248,1.1045052 +1.098498,1.2482997,.60120047 +.63154873,.68483565,.5963534 +.82529657,1.1135614,.52890737 +.4061237,.71513257,1.863046 +.85629529,1.3222367,.96004761 +1.4872717,.94525288,.37534852 +.73895147,.09313978,1.6564224 +1.0195362,.27651072,1.4609707 +.9769997,.89258753,.38266965 +.76189249,1.8946091,.31843536 +.70764155,.13558051,1.0933236 +.54447565,.7766234,1.3061492 +.86198923,1.9700784,1.0708796 +.29645262,2.1548841,1.0465686 +.59782677,1.6998404,1.2070461 +.71290036,2.6302827,.50540323 +.91669996,1.0824076,.84870973 +.59700728,.41539694,.96499639 +.46190324,.75967654,.3913 +1.006316,2.0754647,.14751431 +1.4612138,2.6331853,.11065573 +.49854442,.1127357,.99175779 +3.0167568,.91253699,1.9075327 +.55726618,.43414668,.0863152 +.41493853,2.1220888,.25165274 +1.7707266,.10901555,1.6988668 +.6156771,.74372179,.51784721 +.55431951,2.1176794,2.7121474 +1.5813295,.49999822,1.3436113 +.80310993,.38121551,.60052995 +.56923325,.14989413,.23390132 +.50922205,.68362172,.35826792 +.665837,1.3401767,1.3650046 +2.5730025,.63604239,.84999339 +.81479698,1.1287579,.47767265 +.78935017,.83206822,1.3779042 +.37688088,.21448146,.59888295 +.65841903,.49111509,.11343839 +.97475823,.67327848,1.0733182 +1.1797752,.36266183,.5591126 +.92587899,1.4834513,.46738492 +.43270699,1.384005,1.4334797 +.96762083,.69756837,.56430691 +.36574113,.4946613,.56891161 +.95622708,.68518005,.11382054 +.89767894,.73768155,.88263345 +1.2788914,.01063103,.27091361 +1.0166404,.71825719,.47308104 +.51144024,.25673023,.76027689 +1.2307996,1.2509029,.79985491 +1.1050616,.4762846,.20541868 +1.2752788,.25945229,.37844138 +1.4479981,.03665398,.17959624 +.43687097,1.3682436,.18817909 +.27619777,2.5243843,.85475943 +1.662457,.55497429,1.664706 +1.4938538,1.1570484,.41329649 +.43019939,1.4206788,.04972949 +.57302521,1.641452,.12109994 +.41294735,.61488346,.05044906 +.5329417,.81275737,.18992186 +.66122766,1.9746791,.27217761 +.39208773,.84052529,.15032814 +.64214088,.16974587,.0600876 +.61485747,.99588847,1.4415797 +1.7456347,.96197618,1.8703536 +.67246589,.83020358,.34980187 +.82221671,.92876976,1.5233035 +1.7570979,.78013067,.36520649 +1.469584,.16022513,1.1603135 +.66755953,2.392712,.44078313 +2.2104815,.21151214,1.2328962 +.57543968,.0930113,1.0996451 +.63403864,.37856446,.16171112 +.69386321,1.7330387,.01645102 +.8261594,.02396206,.62103895 +.857365,.62355268,.67784104 +.58749187,.89532009,.30836608 +.64052837,.92380426,.04501025 +.64054671,.36147621,1.2377982 +.69648316,.58033446,1.100883 +.65030218,.13875435,1.391054 +1.2340083,.22338007,.240732 +1.1475827,.67172312,.174914 +1.1187266,1.0121587,.99183281 +.50464272,.0843854,1.7313876 +.64615021,.9097746,.32142837 +.35447515,.30460406,.35894592 +.70464903,.74735041,.64408744 +1.1172798,.29033229,1.6362564 +1.2418496,2.3228354,1.3307313 +.78608413,.42329703,1.2893567 +.67360251,1.1590319,.66231336 +.64839469,.25893702,.62638448 +3.122648,.11138323,1.6592529 +.95810089,.05454999,.80372072 +1.7266722,.03904166,.13493363 +.85048302,.10744026,.9984767 +1.1267361,.43984617,.07588138 +.90890439,.31500437,.13868595 +1.7048394,.89117428,.89371174 +1.8362976,1.3844256,1.4545847 +.48924738,1.3571265,.97130374 +.81660403,.68890361,.63573828 +.92365445,.74881691,1.4100886 +1.0578278,.25622631,1.3197149 +.52394897,.09072225,.1796846 +.34616118,.87600675,.02528098 +.65981301,1.6623766,.32393082 +.61743849,1.8348371,.18395765 +.91162794,.1556583,.36773629 +.6666597,2.3053863,.22819923 +3.1002179,.30974632,1.194021 +.72426489,.66965024,.73509974 +.86772844,.77432167,1.1864058 +1.1039515,.902255,.35055296 +.61628493,.38508968,.5590721 +.45597154,.19350812,.25623184 +1.6771984,1.5919691,1.1397933 +.73714513,.96705256,.91014505 +.43993417,1.8454118,.98241691 +.75989018,1.0574261,.4358314 +2.0362158,.1650229,1.6038584 +.82347425,.02671522,.21179167 +1.0080182,.40776434,.36299682 +.41445364,1.7436665,.60911955 +.51379765,.14019204,.72019276 +.54188116,.61973099,1.6906688 +1.7100909,.13452294,.40449339 +2.4936044,1.0984627,1.3554088 +1.1547169,.64019887,1.569425 +.58513738,.43664048,1.1754741 +.85194739,.78217808,.07277717 +.85829466,.61506396,.86609537 +1.8594239,1.4098688,.5753042 +.94163116,.29808686,3.4037398 +1.8209556,.76595711,2.1739569 +.85412659,.62711228,2.0701818 +1.6154419,1.1391553,1.379797 +.56146834,.03584471,2.0651315 +1.2543124,.47174677,.72716924 +.36354841,2.7544838,1.3285512 +.2985053,.24589666,.23217589 +.53010271,.73075646,.09016612 +1.4043407,.31309696,1.4168802 +.59323322,2.3957213,1.004379 +.60658409,2.0935029,.66093389 +1.2005926,.43452114,1.152961 +.43581032,.77107412,1.7989662 +1.0448013,.20392694,.37845861 +.4825104,1.6443463,.67257884 +1.0264309,.30152348,.50977758 +.58307828,1.3269693,.55326576 +1.0915256,.89218002,.39728762 +.96160699,.05220384,.9545024 +.75933917,1.1558852,2.0889078 +.56961287,1.4505085,1.1035443 +1.2732065,.45435066,2.5305086 +.75359829,.80214175,.18571181 +1.058064,1.6034183,1.6459097 +.20507328,2.3128324,.16125503 +.73452964,1.4796968,1.3750226 +.9894431,.12963521,.91491745 +.83955929,.54153293,.65202101 +1.3119773,1.415437,.5166712 +.70887761,.67073271,1.2742897 +1.1816178,.8565744,.84505178 +.34221144,1.0965269,.91749139 +2.1557226,.25669252,1.9788659 +1.0017483,.28630528,.40274605 +.47842702,.82909787,.67040723 +.79020006,.26084566,.58961796 +.61820307,.47328049,1.27365 +1.8904546,1.3629758,.10485699 +1.3215769,1.6193745,.63155789 +.49893827,1.5939146,.42034495 +3.251853,.16653218,.11680531 +.6441832,1.5448895,.52976826 +1.1184343,.69293596,.30398619 +.67362107,.39056686,.11942411 +.54960527,.33163107,.04106752 +.53577537,.2801989,1.1049256 +.33066138,1.4634454,.47282199 +1.677171,1.4679268,.73243814 +.68959236,.30244604,.32748067 +.67274751,1.3531965,.99619004 +.84666693,.15660444,.09968516 +1.0277622,1.083173,.68303715 +1.006382,1.5018993,.9066143 +1.0327148,.65188772,.88747883 +2.7254732,1.2483079,.24289411 +.72110403,.10401356,.45771334 +1.1073935,.20755464,.8083237 +.9863111,.53462222,.6593619 +1.1659603,1.0573005,.18531279 +.8893383,.06606468,.6703231 +.48076527,1.2210536,.67776283 +.86631563,1.1273671,1.7876797 +.84265854,.58133565,2.1725806 +1.1198642,.42787587,.8909135 +.97726225,1.5740237,.79455368 +.44469288,.5021658,.76386026 +.96448037,.4697697,1.342164 +.71861242,1.4200574,.07789438 +.75161391,1.3346512,1.4396573 +.64486538,.12161867,.07212057 +.22948383,1.177242,.26907509 +.77623334,1.0408952,.17898693 +1.6367609,.08011389,.4094459 +.91354926,.22693056,.80879178 +.57870445,2.005538,1.2267103 +.29941403,.67705966,1.0549783 +.95474201,1.0881033,.67062739 +.65396574,.22120301,.26762567 +.90033048,1.7618283,.68090377 +1.6711193,1.0098827,.72702332 +.84514003,.82059043,.78207349 +.54903127,.4693144,1.3584307 +.6716608,2.3389905,.7320898 +.45928336,1.9035133,.76241819 +.60934815,.30041644,.33267352 +.63442008,.8904721,.17556324 +1.1914224,.26499097,.03655823 +1.7750759,.19124052,.67345219 +.81385645,.34030555,.64501856 +.45148004,.94643525,1.0637538 +.57589605,.24339578,.22858865 +.87425985,.04640327,.9782846 +.58603469,.93029672,.7564828 +.49681628,1.633963,1.4634451 +1.0240889,.14967965,.5394279 +.8746134,1.9612273,1.1600546 +.60135336,1.3122494,.01381144 +1.0597184,.02731007,1.8404404 +.27886789,1.6491523,.39421944 +1.2758264,.15046826,.52027311 +1.3638938,.97924131,.48662249 +.56910958,.32944423,.62089159 +.73311421,1.748205,.13513112 +.58801642,2.0313914,.0015705 +.85728075,.04941793,.17939947 +.64960108,1.991448,.15453951 +1.0296852,.08290634,.73222334 +1.3753288,.3043487,.47834422 +.84719866,.76242279,.12267416 +.63817022,1.7133463,1.44849 +.53350665,.01168172,.36070342 +.61975886,.66274937,2.3357736 +.6156881,.94866029,.0537824 +1.7256945,.30186925,2.597971 +.63805868,.9122608,1.0773338 +1.9504661,.22990476,.63321848 +1.0053709,.11043583,.20248243 +3.6145297,1.0332207,.25441896 +.46072311,1.3081463,.60930769 +.62979019,1.3242727,.90790155 +.47816249,.67207755,.00553014 +.70653489,.83507148,.35786257 +1.3141253,.2973185,.54744771 +1.5111024,.04895937,.69842522 +.86685633,2.3944381,.88905172 +.62341599,1.9944594,.57846163 +.48957323,1.7945739,.31263871 +.87259314,.96020973,.68060599 +.5003209,.25345014,.09330371 +1.8723642,.09149203,.01692176 +1.3734095,.14817864,.95914323 +.80220488,.94024188,.36226715 +.78295834,.01032299,.41249816 +.34513761,.63406374,.20240263 +.54029367,2.5177996,.22003388 +1.3715942,.20553618,.11342934 +1.1518305,.52954045,.78892288 +.79975104,2.4490043,.51672327 +1.3161432,.01770931,1.1160486 +.60659135,1.556555,.13871896 +.68823819,1.2543895,1.1388845 +1.4367939,1.289123,.07585599 +2.9333811,.1457709,.50938745 +2.770015,.07191134,1.8095351 +.66682188,2.0818331,.22990047 +.89538728,.70819007,.48352589 +.73684476,.89333434,1.913451 +1.0685461,.65049199,.48520202 +1.8877807,.85062906,1.3752822 +2.5038638,.30935377,.42441963 +.68920037,1.7474428,1.5350567 +.56100638,1.7851781,.78404401 +.5140029,3.3895253,.37498642 +.45490919,.56198062,.78884037 +.91265234,.95760048,.06536271 +.74837082,.07497909,1.0589331 +.80052025,.7078068,.87994041 +.37603533,1.5235522,.1624813 +.86438356,1.7873928,1.2037256 +1.6069362,.95388792,1.3342416 +.29213295,.06090982,.21000381 +1.6264388,.01205015,1.1797172 +1.304966,.37887657,.88910707 +.65767732,2.3730759,1.0315029 +1.287161,.06878931,2.1156029 +.53560998,1.2572284,.48037886 +.56312395,1.0070788,.88201207 +1.1356393,.618958,1.9433211 +.50295776,2.1858999,1.0373787 +.67301807,.13943707,.17569732 +.4776105,.41685592,.22201526 +.7551266,1.0316266,1.2265707 +.83413641,.42477028,.9475876 +1.5025309,.69926678,.7987228 +.80324795,.63528004,.64061507 +.76242991,.04356381,.15539837 +.55958066,.08639176,.53655797 +.95958403,.36174208,1.3145453 +.51463197,.89417121,1.0561606 +1.0694838,.6071004,1.4234262 +.3541381,2.3706105,.13625996 +1.2342723,1.0596746,.53054136 +.68493183,.4031924,1.2062291 +.62035695,.94685006,1.583018 +1.3716096,.72501031,1.4998927 +2.0801895,.37636343,1.1608432 +.7974959,.73911141,1.3930643 +.51694827,.98359286,.76158815 +.50816172,2.064495,.48655896 +.54578918,.10566086,.46570473 +1.0262388,2.0506284,2.3183087 +1.6294538,.66932625,.26627173 +1.7436964,.51190093,.21933728 +.57924557,.82353398,.55061266 +.35999668,1.1081218,.5893733 +1.2517465,.89081302,.32681352 +.32240216,1.0725584,.26979393 +1.2144597,1.6943156,.93067382 +.83036074,1.2065182,.80596636 +.95826679,.84285973,1.7921856 +.53683323,1.1887898,.25180534 +.53660305,.74657774,.66826379 +.57135413,1.8782864,.12724358 +.54277552,.05059952,.50620305 +.65358091,.51828213,.16524911 +.38392252,.49332937,.21152305 +.65165828,1.7383228,.85387183 +.84543812,.6936818,.03538192 +.89872458,.63179409,1.3945008 +1.66662,1.1435418,.13624928 +.57131713,.41470981,1.1584021 +1.3144799,1.526714,.4001115 +.75857125,.52085627,.95155828 +.67419345,.96923321,.69027048 +.47701209,1.3156222,.76946801 +.33918176,.57422012,.35217706 +.76645247,.76235734,.1848086 +.65268961,.94281264,.61164341 +1.3184539,.37852824,2.4125661 +.69328323,.52251852,.05077652 +.96195651,1.1540144,.62564793 +1.0820779,1.4689322,.72186397 +.2890452,1.88005,1.6397755 +.46052197,.10039028,.31041137 +1.1499768,.75544034,.35048167 +.30373433,.669236,1.1845008 +.34555115,.13221411,.52792202 +.67877001,1.1341777,.20983126 +.54947793,.25650721,1.1829172 +.57752431,1.9218555,.23115445 +.34861404,.26527475,.49539145 +.42897727,1.3509913,.45377045 +1.7366164,.20457348,.79679363 +2.4021746,.48846686,.2701644 +1.984239,.01506683,2.0861078 +.61440819,.58353711,.0800624 +.46810932,.55796873,.73364526 +.37032707,.97154551,1.5734639 +.78055408,.16375031,2.2739312 +1.3354112,.40061621,.70298093 +.42701479,.67288627,1.1499532 +.98787891,.12133443,.16827221 +.84091605,.8784914,.03226123 +.72420039,1.5931286,1.6383234 +.64385158,1.0334832,.96039487 +.69999914,.12374438,.34899323 +.33968257,1.0920588,.03861119 +2.0117486,.7927572,.2026475 +.28536576,1.1370616,.05553585 +.68591663,.46251243,1.7021124 +1.3078359,.6851205,.75309101 +.98789502,.81005113,.04673625 +1.6836422,1.2109744,1.4261797 +1.690844,.17449015,.28583334 +.71073466,.42379773,1.0489933 +1.3482024,1.3410115,.7495899 +.92446573,.55773396,.8569662 +.77571311,2.720596,.57579864 +1.2322974,1.1771456,1.1154743 +.66197954,1.6740623,.02633569 +.57216612,1.0861723,.24306046 +.43251982,1.195322,.42259637 +.67457544,2.1594666,.92861493 +1.2109117,.03878258,1.3329813 +.52439519,1.9964545,.19649465 +1.1662406,1.0448648,.46434813 +.71461998,.48003231,.57117772 +.84848068,.21766949,2.1340325 +.86518402,.98383594,1.2228681 +.97813509,.15174398,.60441884 +.27613525,1.183517,1.2822227 +.91395704,.74526139,.09786913 +.52487125,.30241262,2.8115547 +.96095486,.56803474,.24850367 +2.1716918,.94704351,.70817286 +1.8834407,1.3962836,1.4602795 +1.883369,.57039025,.18619218 +1.5854829,.34201118,.53941703 +.37254136,.30514855,.19875078 +.69478598,1.0099888,.74058018 +.72755727,.93973825,.07593149 +.27536216,1.8450519,.83063316 +1.33474,.21037527,1.1095784 +.7277091,1.0090729,.33635873 +.6118252,.96313483,.12530236 +1.2737602,.56220308,1.4461439 +.87501479,.82329502,.31310973 +.79275783,.44376764,.5323533 +2.4961442,.74536724,.99783661 +.46210417,.46018205,.70973342 +1.6151703,.46387014,1.7111957 +.49305787,1.263676,.24181746 +1.2023343,1.1610908,1.1133544 +1.2520484,.88258131,1.2202653 +1.578313,.6695274,.37278392 +.5874542,.53370713,.11326599 +1.0094705,2.0480798,1.4901804 +1.0651742,.1761889,1.0703102 +.56852253,.7988519,.20172215 +2.4684245,.43704111,1.5668698 +.36879976,.30707422,.47009728 +2.515616,.55042397,2.5041678 +.72080479,.11970362,.17957488 +.46936803,1.3215942,.31851406 +1.3448153,1.1505365,.23889958 +.37772053,1.1198769,.41074872 +.68733508,.79859065,1.1690102 +.4083549,1.4520415,.49751971 +1.0143462,1.2135112,.50795438 +1.8119578,1.8736386,.84020163 +1.007869,.42269209,1.8964873 +.95240834,.5220148,.9818133 +1.8139867,.55712668,.1319839 +.5911489,.28258879,.53776372 +1.0041364,.4822198,.00310172 +.84327125,.28273,1.5128939 +.40277522,.546917,.19599592 +.89018057,.27046562,.03559761 +.78111213,.71665484,.8220266 +.77143709,.44114965,1.3780941 +.86438121,.18381772,1.0234903 +1.3568935,.62878397,.02591378 +.84927271,.72403561,.40154523 +.76626866,.17879825,1.4984012 +.86219442,1.8044234,1.5351922 +1.580957,.01665018,.65791639 +.6158479,.76843734,.58317498 +.79498687,1.8899292,.66298197 +1.019828,1.9582913,.21079377 +1.2642363,.25253311,.0234314 +.86674865,.15056828,.08034997 +.72085111,1.6393185,.79426077 +2.954259,.40142701,.42148565 +.90648529,2.8876414,.91619442 +.99828769,.21975051,1.0599111 +.69420381,.58182784,.38925606 +1.4622326,1.1180472,.32466453 +.79325132,.6687,.91162805 +1.2041562,.59075396,3.0471661 +.6929656,.63672277,.214804 +1.1541647,1.3200553,1.0779663 +.91746248,1.9440561,1.4914643 +.66979211,1.0677113,.60368449 +1.1312636,1.290328,1.9776847 +1.009304,.10994757,.63044178 +1.6708442,.51852099,.56674906 +1.022251,.34545967,.11740745 +1.3995731,1.1331559,.16024704 +.73277145,1.7295411,.09249914 +1.6797537,.49549676,.9871787 +.86483818,.15281954,.79701625 +.70205862,1.7384395,1.7848019 +.99973758,.65200171,.27014239 +.82519936,1.7525586,1.7452847 +.89377975,.34612111,1.8066107 +2.1448633,1.030884,.16490094 +.79822102,.9973564,.34523073 +1.4673509,.10039356,.50767507 +.42812041,.39496383,1.5373697 +.38531832,.21628522,.00799584 +1.3458945,1.4998616,.78510879 +.7340553,.05664858,1.01814 +.62303809,1.250136,.98576574 +.89440457,1.2672919,1.7569779 +.33917338,1.368854,.21225104 +.898813,.19535183,.05909451 +1.1166632,.67984685,1.3264719 +1.2191654,1.6337539,.76420965 +.17434518,.96187798,.88691354 +1.0191903,1.0860551,.0601272 +.66445378,.59176254,.42071511 +1.3387126,.63060233,1.1523138 +.99212936,1.4719021,.22711941 +.51681689,.74242608,.20428703 +1.6924491,.13257524,.37000275 +1.08845,1.0370916,1.3752507 +1.0207363,.56955458,.21130477 +.30813041,.5561348,.30682367 +.86990342,.6282587,.33372563 +.96479582,.47844878,.46851778 +.61553962,1.0632563,.22293762 +.9702072,1.6192283,.89133276 +.31607952,2.5395419,1.4192451 +.77636172,1.2057537,.58139281 +2.0369127,.08195125,1.4323244 +.94687133,.97889247,.26278422 +1.1109894,1.4741503,.38504643 +.77489104,.03333475,.29791226 +1.0721888,.85187637,.41720833 +.36955451,1.0549854,.09247677 +.75458159,1.0536951,1.197972 +.81025955,1.5015451,2.3347145 +.91735094,.86253665,2.5711544 +.66910796,.24572307,.64206548 +.40631709,2.0337525,.61698011 +.96977706,.45089012,2.1703157 +.68471702,.47291706,1.5516884 +.80577034,.3455434,.6365844 +1.4789259,.97354571,1.9696114 +1.01653,.03630937,.32568159 +.89115473,.03761801,.27802711 +.89479112,.62094906,1.0743098 +.65908283,.2456001,1.3439856 +1.0332631,1.2181552,1.3543988 +.64082997,.93336182,1.0547339 +.73716986,1.5934214,1.7567075 +.63243936,.02379171,1.1503286 +.81263344,1.0196273,1.1756418 +1.2147862,.18661298,.03376803 +.60660104,2.2986275,.06855566 +1.9251679,.49768055,1.3673644 +.43928878,1.4311035,.63257844 +.75406659,.3590676,2.0179125 +.31227041,.95970561,1.1747946 +1.5150783,.03514664,.34167936 +1.5421739,.37208762,.74176779 +1.1309395,.67828333,.38318476 +.70740659,1.1797269,.18017194 +1.3442741,.55050622,.72073184 +.71951483,2.9929212,.4826058 +1.1995485,1.0850205,.51117419 +.47839696,.41848698,.37969161 +.33815806,.39872293,.90655409 +.65460246,.09036702,.35185456 +.7107055,.73310328,1.806594 +1.628126,.94235803,.48475641 +.72508525,.31898443,.9510967 +1.8561953,.44690946,1.4152546 +.88066732,1.5801221,.4352176 +1.0875948,1.2718021,.14178709 +.91893301,.13287055,1.0721172 +1.6486029,1.0804926,.70791572 +.76279872,2.4010781,.55095818 +1.9697651,1.2269173,1.2063658 +.83089456,.37794732,1.6718659 +.58749519,.76279778,.14891477 +1.6294921,1.0598532,2.0748904 +.83354505,.94937408,.71904646 +1.0479998,1.8857473,1.3995609 +.47891803,.20952578,.3875137 +.42633685,3.1608639,2.0001476 +.44576445,2.423124,1.9455319 +.4016369,2.0910722,1.3919928 +1.0880561,.289602,.37127375 +1.7165721,.59866498,1.1930577 +.71246283,.27440848,.45219948 +.32685938,2.1086385,.40164929 +.80218334,1.1914667,1.3992804 +.79036955,1.4450435,.76894195 +1.9565656,.85198327,.79880319 +.70064659,.9173449,.07459069 +1.8884916,.39802595,.01786838 +.3701519,.83047888,1.9333545 +.7708975,.63684879,.70823237 +.65057518,.34057755,1.372086 +.56932542,.84510622,1.0338644 +.85814052,.883993,.05504499 +1.477825,.34920033,.08050049 +.41722414,2.3255136,.32096336 +.96804462,.83769648,.70770259 +.75405665,.64258866,1.5432076 +.9776321,.35305023,.76123824 +1.1704814,.37464305,1.1458144 +.75863492,.35608812,.59979603 +1.1103594,.19329061,.64244399 +.57869435,.63874246,.64045622 +.52450598,.16804732,1.0342395 +.84748981,.94981965,.35721732 +.35109306,.79282384,.40371814 +1.3519669,.03740257,3.0128762 +2.8663408,.09753065,2.2409058 +1.0353273,.02820692,.25483154 +.85752834,.10985207,.64279398 +1.0957469,.4666198,2.1931976 +.62487699,1.2671667,.10880294 +.87566274,.59618618,1.4003216 +.59958883,.32277273,.07302209 +.8137104,.20339308,.34287222 +.74311418,.5986863,1.7542974 +1.2158329,.58798942,.58960013 +.35798584,.09069303,1.3358983 +.38962521,.16329252,.00185209 +.90205271,.00051597,.74748462 +.64674633,.03780225,.99093541 +.66666148,1.0554837,1.6126896 +.81641536,.038771,.17060603 +.36468261,1.0365435,1.1205004 +1.1889942,.80211134,.00288096 +.71242874,.96153443,1.6531545 +.88529682,.10343501,1.239489 +.71548365,1.2078407,.29252174 +1.8406198,.52411222,.57563053 +.75870672,.75423295,2.1598801 +.94619657,1.4545873,.31617924 +.66722114,.1039533,1.5721347 +.59835909,.2206186,.26224959 +1.2333617,.42445814,1.1530833 +1.9426829,.20457365,1.7788992 +.34204043,1.7846301,.4823693 +2.231502,.0229712,1.6503553 +.45259414,.00893685,1.2029318 +1.7822339,1.0820131,1.5664239 +1.4063349,.64490754,.7701901 +2.0952982,.14454346,.7616634 +.51749541,1.7506577,.31419702 +.89576291,.64629466,1.055871 +1.2100355,.06842352,.40088705 +.87114643,.27355826,.42356834 +.97373808,.94154492,1.7713135 +.63034181,.7726554,1.0645623 +.8998269,.03574713,.49318993 +.70839196,.87111558,1.3514142 +1.2486808,.56182603,.93213463 +.87779144,.49072511,1.0234621 +.86401249,1.4275029,.70770683 +1.793188,.85328941,2.9855153 +.92489545,1.3615158,1.0159905 +.55938423,1.9501618,.13156487 +.49192325,.62915673,.59747437 +.41493998,.42557319,.12997633 +.81835034,.16211518,.39400984 +.60186457,.15858224,.66374289 +.91376022,.86318158,2.7486962 +.59132117,.12452741,.19221368 +1.2882183,.34986422,.74046457 +1.0588245,1.3827125,.79185995 +.4019573,1.4303399,.26653554 +1.3108684,.43383074,2.0842512 +.55596795,1.1682188,.79269465 +.36598821,.53162684,.08831131 +.91900996,1.7620071,.39608174 +1.4036663,.19705221,1.1958357 +.46711913,2.2725826,.30729098 +.29266219,.19080516,1.1110469 +.68301942,.32312329,.88480925 +.93922671,.56443891,.2253681 +.64275527,1.0082781,1.1318243 +.45349233,1.2037265,.33211802 +1.7092314,.2286876,.7586384 +1.8137313,.42095571,1.6587219 +1.6748077,.43521178,1.9427466 +.78771501,.08003887,.23238096 +1.5103049,.11908722,.22385627 +.58808779,2.0324994,1.0420271 +1.3121961,.64803548,.29505939 +1.0261456,.15575078,.0760356 +1.073094,.262155,1.0684155 +.86222442,.20680173,.01835687 +.37556776,.90841947,.42532735 +.94681093,1.6016751,1.1083484 +.55071954,.69417165,1.1509006 +1.0441349,.28993787,.50560936 +.8012333,.20957126,.87561097 +.77797941,.13377995,.80814522 +.56962415,1.2709865,.43331361 +2.0897181,.504481,1.611326 +1.4948691,.63084106,.50227883 +.79499622,.14895164,.35444764 +.54011991,1.2545317,.76101251 +1.2710996,.40320765,.42075729 +.24308141,1.4830962,.32677334 +.8324113,.21100466,1.0117429 +1.5024275,.05887867,1.4870574 +1.3332392,.36234956,.79436832 +.74860157,.09241164,.73022492 +.63632505,.46444931,.83727743 +1.5895114,.74428042,2.0463712 +.65015187,.38270996,.38759027 +.66410786,1.5209937,1.9983838 +.92377971,1.113734,1.554988 +.66778336,.62115877,1.7821548 +.58866577,1.3276197,.50835957 +.92741394,.34426041,1.9052286 +1.1043934,1.0717477,.67367466 +.93714101,.61238594,1.2014253 +.49487584,1.16734,.07404772 +.80843503,1.2365982,.18095098 +1.0850963,.23045086,.35843572 +.60177085,1.7249398,.91520056 +1.0411277,.62460838,2.1348851 +1.1694302,.53876839,.90887004 +1.2610939,.22828903,1.5205828 +1.1854338,.18597801,.93530245 +.42941872,1.0625891,1.1165699 +.89311479,.35697344,.10688557 +1.4414165,.05271619,1.1767982 +.92411573,1.7893595,.38459493 +1.0652334,.41892222,.1633237 +1.2561776,.38558899,.69398873 +.52219329,1.2933775,1.3439748 +1.196923,.16023563,.17556945 +.46663111,1.4536421,.68000681 +.38916653,1.7724012,.53767839 +.71676041,1.3368388,.21912631 +1.0133378,1.6049181,.32600056 +.76721622,.37614036,2.290418 +1.4402554,1.0266152,1.3261669 +.69969412,.45883017,.49797764 +.45822368,2.4782275,.06662754 +.40277899,.39026098,.08965946 +.92211173,.0418733,.18098352 +1.7778556,.17709266,.8795744 +.8926175,.51119636,.40618734 +1.8834683,1.4041722,1.3359245 +1.5774299,.28661974,.92163592 +.31128914,.05026245,.40393453 +1.1188451,.05115022,.27099182 +.86236997,.47302399,1.3928455 +.74140222,.567965,.16041684 +.47227989,.92868923,.43163846 +.68659556,.26200657,1.0673738 +.8838291,.95093904,1.3036574 +.51075176,.47286788,.72261377 +.33083763,.72262523,.39848001 +.99645495,1.4603777,.51032896 +1.106317,.04189146,.85573642 +1.5749444,.59135779,.12542662 +.49691667,1.8782009,.85296039 +.44186224,.41646225,.56537242 +.531937,.59692256,.51463557 +.86681782,1.2906055,.1993066 +.41980504,1.8483228,.58570378 +.22978708,1.7461002,.74748992 +.97567474,.8748718,.28859748 +1.0917634,.05811333,.91292856 +1.1056548,1.5677659,1.2817418 +.92740056,.26948194,.50119563 +.30624481,1.1446256,.0043983 +.6303977,1.0384719,.15058501 +1.6957685,1.9758493,.90488383 +1.0494608,.23155331,1.8523407 +.40926821,2.0856925,1.790525 +.44220919,.5117504,.27429849 +1.1803448,.29875525,.85914077 +1.325118,.18700733,.64576191 +1.3775103,.52925915,.2428068 +.72069667,.13883512,1.3416866 +.73592016,1.7049163,.84168267 +.56166927,1.7420036,.57159887 +1.436071,.41990247,3.1387265 +.7912776,.00011434,.51755055 +.89339528,.40760508,1.2240011 +.87363972,1.0342534,.52100132 +1.246469,.19968703,.22590082 +1.1095681,.65058577,1.7571916 +1.0943911,.74913367,.82610915 +.74943542,.6698886,.02819217 +1.4076097,.93171744,.98975122 +1.046045,.13633531,.43249913 +.78136074,.05706488,.30469606 +.80923095,1.5764088,.02440632 +1.2914823,1.4123903,.2729806 +.92337458,.83283871,1.1961482 +.51003273,.82137084,1.8196356 +.83452799,2.2821565,.77369909 +.87362699,.6029984,.17042212 +1.5784425,.62568582,3.5399049 +.74011638,.69784459,.25327393 +1.0972456,.59077076,1.9415131 +.69102499,1.7187783,.79634393 +1.3603635,.54525096,.33079729 +.62895457,.53125825,1.8608721 +.68912347,1.2294469,.74124465 +.81917642,.06615174,2.7576603 +1.0562512,1.3667078,2.4529454 +.58124524,.10752239,1.9204693 +1.4214986,.07821968,.51799838 +1.6912615,1.743126,.88891273 +.63623058,1.723565,.94234567 +.9038409,.08771991,.85047686 +.71046488,.36768737,2.1643736 +1.5654734,.8507767,1.3260691 +3.7965359,1.0120906,.6809885 +.79256212,1.2279045,.3795283 +.66689454,.23275771,1.397225 +.68423586,.53012353,1.0757003 +.84403764,.45493227,1.2456833 +.50392679,.78199616,.11763852 +.77801281,1.1057938,1.0972582 +1.2404177,.61032903,.80907904 +.80947451,2.0182251,.73013288 +.9396684,1.5913961,.06380743 +1.0685699,.8315762,.14779351 +.2271514,.67004635,1.1205632 +1.8593236,.02690185,.0598872 +1.0301704,.7239375,.77217042 +.79212825,.30575072,.86512852 +1.2474157,.67985204,.19238677 +1.2888588,2.3273512,.05315377 +.55020665,.70947129,.76369305 +.8840425,.18654447,1.6128003 +.33643756,.00597783,.02585056 +.41506643,.40761966,1.0624963 +.68747559,.66468197,.66402316 +1.0503955,.93709242,.73428823 +.69784739,1.0945559,.74635197 +.90581999,.15186331,.4500938 +.58592416,1.0417343,1.4585051 +.92332204,.08310296,.29888614 +1.7673923,.04306728,2.2473248 +1.0406517,.9288512,2.3352325 +.41623713,.84805526,.28520611 +.74639735,1.5175478,1.2191722 +.88594593,.81235102,.80509221 +1.0112903,1.1212934,.43422477 +1.8185558,.26856173,1.6817942 +.74472508,2.5026679,.21187861 +.54923457,.87220106,1.2171127 +1.2033862,.30757784,2.3051457 +.37245279,.38133314,1.4500379 +1.1639281,.90167248,.03115497 +.40214689,.86584096,.92895124 +1.365934,.25126606,1.6444809 +.99086114,.10110164,.01258747 +.85265842,.31626565,.50059851 +.89308043,.45763263,.22395584 +.51095823,1.5446991,.87820738 +.48530288,.19653335,.68819715 +.7182471,1.7096712,.90102836 +.53216258,2.3917463,1.7324302 +1.1279598,1.0981152,.9006354 +.66227386,.97234758,1.4456781 +.52728665,.713487,1.4533946 +1.3955504,1.2291648,.78567253 +1.0046182,1.9564224,.83917287 +1.7933432,.07829223,.49170475 +3.3063573,.05107946,2.3871806 +.66401178,2.0389596,1.783839 +.92160796,.41368203,.32681883 +1.2889597,.30052795,.50763221 +.39393397,.30463504,1.0848811 +1.3323431,1.2787974,.92655404 +.32809217,2.759115,1.1426172 +.82437162,2.9717311,1.006095 +.7947938,.51016094,.36886489 +1.0519166,.14440207,.94155343 +1.2868324,.58202715,2.5371331 +1.0455547,2.3028767,.22694512 +1.0096027,1.1617566,.29071787 +.42431975,.17952501,1.2683735 +.86441796,.54458433,.0214322 +2.2889741,.48144867,.2014486 +1.0640863,.22443051,.22360851 +1.0828075,2.7256146,.83912612 +.17127053,3.3398891,1.1293152 +.43786313,2.2799941,.44662901 +1.5716406,.68292132,.4267532 +1.1045895,.11628903,.78193565 +.50737864,1.7320803,1.2030772 +1.2880628,1.9678334,.52365016 +.91978384,.11069045,.33133012 +1.9396503,.40302242,1.2644444 +1.0141178,.18297064,.91923127 +1.1641985,.03681655,.04858422 +1.0318415,.78366758,1.9403977 +.48706421,.75784131,.36208187 +1.1311171,1.0698992,.78729303 +.76067255,1.9208652,1.0035935 +1.2944209,1.1614962,.27638883 +.88416846,.14343364,.06151789 +.77217114,2.9802104,.74111642 +.49913375,3.418653,.5161069 +.64160308,1.4275878,.45328057 +.62846396,.98844396,.12781413 +.84682492,1.1967582,.37998834 +1.0244703,.99862908,1.3306393 +.46288088,.47845683,.38000952 +2.8926874,.39475589,2.1362016 +.62869432,.2228058,2.5039326 +1.3254777,.53321143,1.4126914 +1.2007064,.32430628,1.7044541 +1.2296312,1.4946903,1.3399793 +.4650776,.32079141,.04524033 +1.1752114,.19426389,1.6246354 +.68779171,.78148632,1.4350293 +1.0812988,1.3956398,.65827536 +.49470549,1.0460122,.09118747 +.81846425,.69959997,.75885426 +.69702493,.15007664,.81540591 +.31823218,.90919365,1.2022226 +.97809756,1.2175515,.38488591 +1.4998884,1.7163535,.35841494 +.44812046,1.6981024,.84082212 +3.605084,.52113586,.62406304 +2.1249271,.85431572,1.2278101 +1.7112284,.94208766,.61065231 +1.0390657,.86722134,.23465074 +1.8568897,.6405998,.53155381 +1.3261131,.61350355,.11100153 +.41816273,.50712527,.10069545 +.24707299,1.3945791,2.1666272 +.87600008,.15162015,.11964682 +.91803529,.10433368,.35480248 +.58916307,1.4612228,.38542456 +1.3180248,.06788388,.84234114 +1.6310163,.27926213,.09931422 +.6969045,.44449572,.10648061 +.3557379,2.0209351,.17929311 +.52475225,1.6803944,1.0518606 +1.0324389,.42702504,.25296624 +.3227849,.31964212,.28203642 +.84553282,.70368386,1.3784854 +1.0120064,1.8293458,.52889941 +1.0673525,1.0927239,2.2721626 +.7204934,.64341101,.2934247 +1.2669845,.09536922,2.074025 +1.0257668,.20782005,1.1848086 +1.5761011,.73299017,.16855866 +.82300381,.2609789,1.6060271 +.52571968,1.6387981,2.0679902 +.6455519,.55109759,1.5771896 +1.3537787,1.548566,1.6304702 +1.333239,.35115036,.8765357 +.76242455,.11799719,.16258044 +.72341942,.37097462,.93145667 +.94931241,.27350523,.76732048 +.87874509,2.0129323,2.1083305 +1.0803867,1.1464166,.83782105 +.46743655,2.171198,1.568917 +.61067977,.97090985,.24559223 +.62485506,.69636255,.85098283 +1.4519012,1.2134615,.77322889 +1.4309764,.35360172,1.1038316 +1.3218406,1.1964178,.45357131 +1.153945,.2001064,1.8332279 +1.0386777,.89418028,.51328827 +.27149654,1.3836039,.15887313 +.7351663,1.1831493,1.3355108 +1.5696628,.66480558,.23183053 +.48875378,.66300171,.47058388 +.72789289,.67873489,.45628672 +.45549662,1.2485465,.70281367 +.63576262,.38313561,.12790284 +.73432093,1.0144291,.68976943 +1.2708761,.56466927,.01268245 +.61956569,.41835992,.12923919 +1.2633956,2.1254961,1.2493988 +2.6021187,.21878399,.33475274 +1.4092689,.87409081,.20567862 +1.53146,1.4788262,.09808047 +.65718269,.23796467,.20447001 +.57474488,.15151916,.52008448 +.63675504,1.9405663,.17065843 +.60010032,.68719665,.7908691 +1.3284749,1.6240765,.34414256 +.34133238,.54293957,.14889671 +.78178112,.48688178,.07200507 +.69916671,.21947246,.53329563 +2.3834332,.61844822,.34750264 +.56955898,.32707431,.58911474 +.51356758,.41458937,1.3943424 +.80693697,1.4964084,2.5899135 +1.1603398,.26040873,.91692389 +1.8846288,.07847959,.3588643 +.85332201,.92564584,.18607871 +.63360124,1.3959247,.10135504 +.96777148,1.3067367,1.6338947 +.48724588,1.0334869,.99907398 +.64640214,.71435212,1.0247709 +1.2918048,.74340515,.77023843 +.53853653,2.0301206,1.9574565 +.27315673,1.1206216,.37141356 +.66982872,1.184013,1.2296103 +.91303508,.61430905,1.3391224 +.72312522,.46382536,.60879103 +1.0213645,.65779745,1.3563346 +1.4363268,.08897405,3.7161077 +.91544197,.72610415,1.4098735 +.49543267,.37791597,1.2802645 +.40138397,2.5236264,.07248765 +.70837167,.47939869,2.5095315 +1.5055938,.18394474,.35019361 +1.0179076,2.3879922,1.4793665 +1.1074088,1.1386802,.12635951 +.59819296,.77689275,.00898752 +1.9283255,.55717259,1.1217189 +1.5003045,.03958007,.80497559 +1.2397227,.78629514,.48434686 +.45205794,1.3576844,.38084665 +.89636204,1.1211293,.23591425 +1.262693,.49093593,.78210195 +.44138997,.84563286,.89801006 +1.1966945,1.2096631,1.1265475 +.65448779,.53399386,.31124666 +.51239631,.12736035,.48130653 +.65565024,.0771076,.02996917 +1.5321304,.73981877,.55676135 +2.2831209,.30216843,.13168481 +2.8762291,.02048691,.26569887 +1.0194855,.33571551,.84488902 +.30096924,2.4465236,1.4118336 +.43146251,1.0723743,.53243612 +.65686456,1.0736894,.9251606 +.71201194,.09337195,1.7999169 +.67955372,.14518116,.14045068 +.63915281,.28272794,.0940917 +.51178508,1.9456089,.8337955 +.74350487,.37292906,.75052911 +.93379932,.60360046,.7886144 +2.0335617,.08900592,.22502483 +.81087595,.26354324,.89819121 +1.5131697,.35186277,.42853499 +1.2775122,.27907334,1.3362991 +.62627065,1.7403439,1.3376243 +1.2396169,.40955266,.70101173 +1.6459821,2.438541,.68928523 +.47052528,1.0966675,.70885442 +.34761722,1.5455516,.30586832 +.74065362,.14152238,.66207025 +.33063305,.56269731,.35358995 +.68115189,.00489659,.09649939 +.95260517,.34102141,1.0752747 +.63013227,.06853022,.23933756 +.65248252,.31832085,.02863219 +.17923736,.90237992,.35977725 +2.3202971,.28808092,.07674997 +.94165826,.18313065,.92473496 +.66060292,1.0762999,.43898567 +2.3474964,.04735654,.67045234 +.83761782,.69864591,.81203533 +.84656229,.4321799,1.6335017 +.62918366,1.8567262,.42661341 +.55735884,1.040104,.48060119 +.70408115,1.6607763,.92939631 +.45112212,.39558863,.00493536 +.60841509,1.4109101,.25304072 +.65613351,.27753009,.38304506 +.60769545,1.366066,2.6134938 +1.1796802,.56478647,.78602422 +.75306623,.62308452,.07527537 +.61803639,.44736537,2.3891786 +1.4137806,.09953154,.44983717 +.62378161,.06006071,.59883464 +.54464239,.32046338,.20203753 +1.5870651,.04306057,.61564504 +.57685425,.27082869,.07822687 +.42954023,.52809829,.45380419 +.76497894,1.429499,.55561054 +1.9754077,.0413468,.92167491 +.79892357,1.7323171,1.1778308 +.43515472,1.4900383,.0731339 +.67087208,.82386604,.93112251 +1.3303762,.12821935,.10408534 +1.001706,1.0315254,1.2313261 +.40702135,1.3697939,.54781878 +.74268991,.41556744,.7746616 +.61209233,.0096191,.60817478 +.66561086,2.122728,.03276559 +.81907566,.74036426,1.9346057 +1.3986062,.16989615,.50843075 +1.2757036,1.4175817,1.2545786 +.7047076,.84817104,.19388748 +.45491768,.32052549,1.737635 +2.2929252,.01866836,1.4761333 +.80099041,1.4744652,.60092773 +.69807386,.34430611,.45167451 +.78776101,.69217848,.33804037 +1.1103828,.17744185,.55930112 +.65942029,.01908756,.29515712 +.41304879,.73423572,.0910442 +.62525975,.13806152,.96601325 +1.6111228,.70407871,.852883 +.81709451,1.8691181,2.2492377 +2.0028662,.21559061,.41351037 +.56330989,.2453174,.35098527 +.74939847,.16674888,.1703804 +.83136215,.71363565,1.6050648 +1.3702717,.16557287,.96578775 +2.6189475,.03876216,1.1687396 +1.3351782,1.1734171,.43902858 +.48276353,1.7229483,.0179263 +.89239746,1.2669463,1.0564068 +.7930674,.31440251,.46054483 +.43337748,1.2911071,.97999614 +.76058327,.36471902,.07367196 +.81699166,2.4830308,1.5552037 +1.4654638,1.1010431,1.3758188 +.36317156,.44641628,.79850781 +1.1111474,.64119649,.39235032 +.4388182,.75346364,.60039155 +.52360447,.30031271,1.0637302 +.37042307,2.7537086,2.3589037 +.51153028,.54549597,.0389424 +.38179547,.31246855,1.667244 +.926342,.25735959,.83899025 +1.210005,.14242782,1.498192 +1.6047687,.32752001,.24230448 +.97322581,.19146861,.50120126 +.4577993,.1534005,.24331986 +.57127027,.80161436,.31662627 +1.5390177,.98590249,.3224138 +.34694897,1.0285509,.13796576 +.72845445,.44062771,.2830237 +.7719433,.24047768,.76400018 +.47512298,.10686323,.23217409 +.95511088,.70620636,.17047137 +.81978345,.69026066,.14484676 +1.8225462,1.3063396,1.8553786 +1.107185,.74237309,1.5517271 +.65701805,.19948421,.07954907 +1.1934046,.40638667,.40098307 +.81038037,.01058289,1.0150382 +1.4037186,.81140475,.20733296 +.91403927,1.9542251,.30674159 +.62065035,.63541193,.39072908 +.43573395,.07280392,.1299618 +.76653608,2.2634039,.92090898 +.90542391,1.7308593,.01629875 +.76738295,.47457634,.77714735 +1.0122974,.68026146,1.0222641 +1.1558339,3.6780904,.75778525 +.61876918,1.1556371,.41766603 +.54111428,.82004714,.86648845 +1.6361592,.6569797,.70869823 +.6926279,.54770407,.61984733 +.56071661,1.4401608,.93145735 +.62455211,.87171366,.65315442 +.89379864,.19577749,1.1537545 +.85636484,.21311871,.46359555 +3.6443024,.39387495,1.8149932 +1.5064957,1.0248737,1.6610553 +1.1970401,1.4717075,1.2781069 +.86084855,.47024744,.45400589 +.67487242,.67486331,1.1429249 +.61451658,.79515348,.01118728 +.31447554,1.2133925,1.1410166 +1.0898051,.30537812,.88148717 +.93035868,.51196092,.17149231 +.94590243,.12507708,.07400029 +.84092639,.01870104,.22762841 +.33915152,1.4104087,.03822321 +1.2042841,.27777519,1.8320062 +.42278489,.16098823,2.6387043 +1.7528975,1.356865,2.5937371 +.42229341,1.5384822,2.1571509 +1.7457645,.25554016,.49348631 +.72752282,1.4191031,1.8475856 +1.6604179,.02912039,1.3009384 +1.37985,.44458875,.75155025 +.68374522,2.0875669,.6394413 +.95499483,.1367494,.70255622 +2.130543,.15724683,.57227445 +1.259283,.08282529,.47739176 +.81275241,.25330571,.48142827 +.65309364,.46988466,2.6867387 +.67899325,.57966767,.34706824 +.77211018,2.9374637,.24221938 +.77494646,.55149863,1.1413135 +.64065369,3.7262673,.87552258 +.6469659,1.5553524,.16146566 +.42216529,1.5136209,.93767561 +1.3970904,1.0030723,.48209698 +.4762144,.15776324,.66062786 +.92223961,1.0395097,1.4251901 +3.0691355,.4085328,1.6616831 +.65406836,1.0526303,.09130826 +1.0716512,.33951742,.66275095 +1.4249488,.12587007,.14476611 +1.1111817,.4618835,.11174883 +1.1801759,.58376135,.83649182 +1.3845463,1.0052043,.20814274 +1.1849438,.14471505,.43052522 +1.4848031,.25072297,.03577348 +1.2768588,.01755326,.15025586 +.66163624,1.8051793,.14702917 +.63016216,.71250785,1.3274434 +1.5386621,1.4250618,.55700092 +1.5943949,.2105474,.36529542 +1.3729784,.09416454,.77897372 +.80092445,2.141493,1.7215692 +.42646593,1.2248798,.36206815 +.69761693,.99201253,.07863904 +.78391827,.75653169,.04311452 +.44525931,2.0921021,.49438243 +.90475911,1.3979637,1.8852006 +.39502337,.3288527,.08654215 +1.1817766,1.0565854,.75448563 +1.5750572,1.5118221,1.1026314 +.74359609,.31129487,.03705513 +2.0348648,.42194556,1.1841614 +2.2165308,.8242757,.56071766 +.35721833,1.8210245,.03490385 +.61344349,1.0466921,1.364642 +1.1508457,.36661016,.36827505 +.84919447,.09107053,1.27691 +.73607949,.27801529,1.6287162 +.64081793,.73195707,1.2882473 +.44529649,.5465249,.21962795 +1.6160097,.98526387,1.7525919 +.5871893,.11258386,.57790069 +.6973857,1.2690158,.86084634 +.58355111,.65986606,.95144351 +.70878201,.12862931,.25220556 +.72550334,1.4691361,1.1738092 +.58215682,.93848882,.18248405 +.54393361,.60476364,.37531401 +1.0589838,.90770239,1.4216664 +1.2249925,.3950228,.49008735 +.77274728,.9263427,.20368943 +1.5197105,.96045005,1.5629784 +.76204663,.49284863,.77783094 +.76453013,.55124945,.68035884 +.56714084,.17867411,.07850167 +2.2095503,.71888847,.45762801 +.85814528,.17959518,.62916825 +.5656892,.18053815,.08873125 +1.183514,.44479385,.5724076 +1.2880253,1.3050574,.73901755 +.7273503,.50552287,.0394313 +.5088412,.92661787,1.0500069 +.68092552,1.4388457,.50066458 +.58963001,.24783062,.30359237 +.91051916,.91880573,.5729915 +.58522855,.99883882,.28524601 +1.1613176,.42744229,1.2423792 +.76900597,1.8127938,.3156053 +1.842545,.23316444,.84931233 +.80082545,1.1193988,.21917966 +.50726505,.82795763,.97871095 +.51359963,1.4799816,.14321228 +.64620962,2.0223283,1.0124755 +1.2951992,.50520604,1.6087842 +.50061412,1.295451,.33519581 +1.0034436,.50909602,.06799873 +.7282832,.11614677,.54154654 +.76798169,.91327647,.02736157 +.44025657,.5846933,.83660941 +1.009882,.90093484,1.3080283 +1.352686,.7160772,.20491016 +.670047,1.2876395,.99759606 +.88564351,.749848,.20123374 +1.3762134,.01125687,.67308013 +1.431113,1.3384449,1.2111028 +1.229983,.12189108,.61766075 +1.0324484,.38116445,.34226064 +.85512042,.01910673,.60658403 +.81375867,1.1558688,1.0633919 +1.0386149,.87431607,.38838719 +1.0972269,.3146854,.41708237 +.63421769,2.1041839,.13462073 +.65606647,.45242163,1.0567586 +.34276038,1.0247338,.09491474 +1.6919582,.57963924,1.3555293 +.96707971,.45826044,1.8786982 +2.0915158,.32174826,1.8367202 +1.440006,.42970362,.3855716 +.95146837,1.6178764,1.3071849 +.52900038,.98719214,.50279427 +.8903668,1.8019287,1.8555532 +.84643484,1.3362851,.97575513 +1.2164796,2.0121049,1.8454654 +.60981496,.62615145,1.5376619 +.86682012,.58674419,.779582 +.65571844,.29928132,.22351552 +1.6910547,.0294446,.936701 +1.4942694,.03134352,.26853605 +.48987491,.59951673,.67711092 +1.6268099,.99686719,2.1507558 +.64557985,.60538189,1.1026716 +1.2177641,.29873991,.56026926 +.58808382,.81359892,.56574174 +1.213487,.49285434,.65564512 +.84484443,1.5407825,1.6451526 +.73441248,.57161254,1.0858907 +.93094427,1.4118538,.58894476 +.67129619,.24076169,.173521 +.13834633,.71715869,.13712692 +1.4444865,.40658769,.77738076 +.46117749,1.6546768,1.637466 +.67568453,.2716154,.19132708 +1.0390308,.37970055,.27394641 +.48555237,.20824828,.23098999 +1.4286249,.76867038,.60449856 +.46949417,.85452483,.12282065 +.45294181,.48082786,.48973587 +.63158833,1.2428948,.54700791 +1.0243582,1.0981236,.71700965 +.42023395,.19136095,1.2852016 +1.0945844,.43696691,.34558766 +1.4092839,1.0288632,.73231997 +.68808225,1.2937574,.91458583 +1.727632,.44436301,1.1072884 +.61511328,.77351542,1.3154051 +.88666744,.12925848,.81217676 +.49565531,1.0004711,.55566722 +1.45939,.22431889,1.6863096 +.81497016,1.3885635,.38395433 +.87706781,1.4605157,1.3498499 +1.2305663,.67639062,1.0233093 +.69831821,.86194531,.42741446 +.3616668,.70436619,.51592507 +.79646623,.38309704,.78836868 +.43911601,.66466817,.63656487 +2.4526714,1.3652998,1.8437062 +1.4100221,.94699208,.51516223 +.27409328,.58999107,.72615207 +.59335868,.96026957,1.4933794 +.41929575,1.0656217,.00495025 +1.3827816,1.0213542,1.6291542 +.75649009,1.8714128,2.4690105 +1.3570023,.27817315,.12996075 +1.0226855,.32847234,.78343849 +.57686341,.78156627,.76314573 +2.4187362,.14225758,.7694209 +.37713702,.56498653,.39816519 +1.2125077,1.2969757,.91599755 +.45175238,.63353059,.21014441 +1.2656125,.44453551,1.693123 +.91771354,1.3340015,.90537929 +.67421468,.54632499,.45828168 +.44680231,1.9137792,.58883319 +1.3488148,.06330262,2.0921734 +1.3991036,1.619176,1.930652 +1.2731708,1.4625183,.23646225 +.78588494,.02134642,1.0182468 +1.6678575,1.0964235,.54910572 +.87464977,.10533925,.0794707 +1.2992086,1.4467367,.45230532 +1.3345553,.21931349,2.2058468 +1.3303857,.67945966,1.7960405 +.63840177,.02717123,.46151196 +1.286991,.52013522,.24555917 +1.2343171,.36372628,.10671483 +1.0357436,.84050883,.42894994 +.41445901,1.7286338,1.0812286 +1.2434678,.20870063,.25148006 +.92874472,.21652146,1.2742483 +.53277626,1.3566193,.70811449 +.73085813,1.3825421,.77679744 +.53072699,1.05686,.18125067 +.35261359,1.0104059,.48527932 +1.4609388,.53663777,.82911966 +.79731847,1.7984051,.14391824 +.79728379,.75274767,.22646179 +.81673103,.92826792,1.1845657 +.68719078,.09611485,.08595838 +1.2183319,.36470692,1.4319674 +1.350887,1.3746064,1.1171957 +.68286443,.53834506,.51964427 +.60733781,.92919943,1.6105554 +1.0963002,1.7637616,.94506644 +.69892321,.14244967,.93974654 +.77663459,.0912567,1.1667803 +.66956127,.62089397,.71820799 +.31037962,1.4216507,1.4919029 +.55581474,1.3171278,.43731633 +2.1331258,.1632715,1.1168675 +1.4803613,.62369972,.60426208 +.6384886,.6103835,.92932992 +.48394094,1.6361801,2.1492122 +.51001943,.02648705,1.2110233 +.42758374,.7016143,1.1247873 +1.4477999,.54336229,2.2822434 +.5851292,.6873959,.43821074 +.372839,2.3102056,.57880335 +1.015904,.59822746,.60810281 +.57516268,.99986615,.74241412 +1.2965708,.68979882,.83279306 +.63010131,1.0556096,1.1059935 +1.657917,.25595122,.30582766 +1.8976931,.15173632,1.2570431 +1.2585669,.85922755,.11009827 +1.5346626,.09530747,1.5103673 +.66436209,.61878649,.72484343 +.53501112,.31226984,.22255878 +.61479876,1.0078629,1.71126 +.74030014,1.2452426,1.2882837 +1.2389017,.85099449,.10201695 +.69490795,.78365593,.4182962 +.56386031,.23717165,.18975149 +.88997786,.33915887,.75312336 +.71810222,.31148851,.91608643 +.63946027,.83417608,1.9454827 +.68253483,.45122594,1.4546773 +.58515868,.11497961,.26649986 +.47680929,.44296536,.64078066 +1.0597474,.4893005,.71815424 +.55115835,.72883814,.15934667 +.16755257,.98062952,.05614635 +.59469913,2.7524111,.39173134 +.49988565,.66380167,.086118 +.8121679,1.1326158,.29260513 +.7555985,.32171947,.61306099 +.9774956,.81560636,.26989235 +.60991256,1.2381464,1.4994703 +1.4000185,1.2731576,1.627355 +1.7437287,.93878507,.19031737 +1.1116071,1.0558434,2.712357 +.46374082,1.3994409,.54812289 +.7926253,.42105902,.00506476 +.85324268,1.7613498,.87771591 +1.7949702,1.0980762,1.2253986 +.61133012,1.5985317,1.2254376 +.19279502,1.1031912,1.1717684 +1.4905826,.36312439,.71035725 +.8789224,.5924317,1.5987977 +.41703046,1.0936776,.06179015 +1.3379761,.08460016,.67578673 +1.3373281,.41401338,.23188605 +.5021149,.18759714,.50239851 +.7245425,2.1894896,.66452742 +.50802509,.80904211,.89076186 +1.1085966,1.1350516,1.4411723 +1.2750324,.95255694,.04624847 +.72342645,.68854035,.76872458 +.56779785,.42996064,.48032286 +1.0648345,2.5320453,.00907242 +.48929157,.73059633,.38142377 +1.2505882,.24055982,1.0965235 +1.9712446,.6800408,2.3142451 +1.0695738,2.0004574,.46186756 +2.0140202,.6565543,.97263791 +.52376218,.4786655,.4535579 +.73312143,.45476489,1.1912939 +1.1564072,.21681963,1.386913 +.66689839,.2415439,.96360253 +1.0195865,1.2422952,.32369475 +1.2104736,1.0638797,1.59992 +1.050789,.68573129,1.6204183 +1.2958556,.07958434,.23063102 +.37635867,1.2677602,1.3322071 +.77182925,.28592244,.51352056 +.54002667,.15969417,.70650598 +1.8465569,.52093602,.61572065 +1.749213,.10189185,.38332585 +.53355804,.24741989,1.2038703 +.42080788,.62620885,.09981719 +1.6314113,.91973987,2.068803 +.90537032,1.0900617,1.2854895 +.85356087,.71433574,.5159739 +.33710689,.19228079,.99221738 +1.1547017,1.5951803,.10383739 +1.492225,.83872647,.8936173 +.65782411,.23895992,1.2060125 +.37745952,.5148242,.32689245 +.22608495,1.8226778,.80631975 +2.2645504,1.3101533,1.279618 +.69694411,.34319764,.97181706 +.96330899,.46181197,.94803025 +1.9779576,.29681836,.16567222 +1.3281912,.17703521,1.2858725 +.93461198,.6338592,.70138694 +.73535905,.40135573,.41376873 +1.2050931,.74529903,.86833858 +.50666793,.09458852,.46808026 +1.1740788,.75505783,.3858552 +1.6587023,.56405615,.62163767 +.92405737,.27305178,.471852 +.66461289,.8831881,.02107793 +.67990396,.064903,.51494123 +1.3678796,.24315359,.38522982 +.31391874,.636723,.88694743 +.61427609,.82849145,2.5031143 +2.2607554,.23839347,.68144355 +.95622792,1.0805661,1.1442949 +.68366325,.748309,.17140617 +1.579133,.26205388,2.1024167 +.78830602,1.0954325,.35682023 +1.4304074,.0802189,1.4261492 +1.3154581,.99421544,.51831242 +.79143509,1.0090244,1.6658002 +1.1944662,.45870835,.78815074 +1.3274169,.98289382,.74528202 +.80558477,.01681796,2.2270131 +.8290251,.01566042,.69123896 +.53924662,1.3342485,.02121824 +.32785306,.63441102,.79767057 +.71710511,.6125285,.21876191 +1.7653455,.72768373,1.8284572 +1.6787354,.68960647,.02072108 +.9121553,1.4838353,.24875599 +.46541669,1.5750917,1.443297 +1.1603684,.19072424,.39200619 +2.1838286,.38572949,2.2929475 +.5144976,.42472758,.48177091 +1.6778322,.35594955,.97838538 +1.0720405,1.5563507,.04090553 +.52275289,.28544863,.51015754 +.79699213,1.9684276,.83129005 +1.936568,.75695522,.25401853 +.40330561,.77470661,.1101458 +.31109818,.67124657,1.6281653 +1.8195545,.91295824,.97788245 +.90232754,.89630833,.58634978 +.66421953,.93891918,.02569861 +.87398809,.73935196,.0848318 +1.2741075,1.458493,.09950267 +.67788143,.90291551,2.0739868 +.6061636,1.5263878,.39953287 +1.0672865,.53947475,1.0268236 +.45351842,2.3225777,.20530159 +1.3236972,.54054475,1.8928406 +.90692668,.7171701,.95014821 +1.3271634,.39516297,.29623117 +.25978919,.06170374,.11208982 +1.2270224,1.7414301,.45091493 +.56701718,.92605337,.59890612 +.25397991,.39557547,1.0722127 +1.8177901,.9103834,1.119097 +.99994307,1.6584608,.55719209 +1.1812031,1.90359,.94799386 +1.6328385,.0780611,.56185777 +1.0073744,.60099016,.03296777 +1.1366622,.06854639,1.836674 +1.26004,.62078128,1.1695166 +.66121822,.42328311,.82991025 +.62203166,.25163356,.06427661 +.60490434,1.7196437,.25168438 +2.51483,1.0405612,.84574437 +1.0642259,.37282946,.64619264 +1.216324,.31884788,.4182969 +1.5417571,1.3908049,3.511586 +.51727752,.37959194,.06517874 +.87803608,.09275774,.77808556 +1.1470058,.05466513,.35247293 +.61227881,.04183857,1.7319608 +.75561675,.81757819,.34243224 +.84503049,.21636949,.19856508 +.69833266,1.2388252,.97448716 +1.035121,.68203654,.13795286 +.81466032,.49139034,.10623116 +.65604782,1.0841585,.27910952 +.62676157,.59614064,.22744695 +1.0641388,.17441743,1.0341412 +.47649613,.49443796,.40777664 +.65298365,.08923896,.83163978 +.79201495,.2638603,1.7284984 +.61727808,.84030595,.00382963 +1.2297954,.52203997,.23763475 +.44333697,.0639676,.03534269 +1.4755893,.61245752,.99339327 +.76337747,.94024874,.02976213 +.51409367,1.2504194,1.240037 +.38977635,1.144335,.96894879 +1.2149623,.2492316,.66552248 +.95801259,.44873944,.68817689 +.50555153,1.4554749,.02160205 +1.3334835,.96640626,.72456436 +2.992013,.12917795,1.6387437 +1.0212468,3.1990188,.19107351 +1.4633779,.9029231,.30436825 +.61370035,.3254869,.19197354 +.3981083,.86131379,.40047585 +1.09151,.49984144,.67417803 +.63279654,.81325912,.40911314 +.38398186,.14052475,.15783281 +.63509761,1.1832077,1.9893392 +.47396039,1.0983903,.1174228 +1.0506916,.74564329,1.2685577 +.6086158,1.3850491,1.2134865 +.86182331,.44362271,1.475156 +.40185756,1.3716916,.24426889 +1.1246871,.93491452,2.546432 +1.3492946,1.2373854,.76562096 +.85610142,.48734649,.39136954 +1.7046869,.40873869,.9716072 +.8788281,1.8478974,1.3676967 +1.4679177,.0229869,.73163571 +.62865669,.15919098,1.1973031 +.80187408,2.0207824,.41215913 +.36849458,1.6358024,.95957618 +.8487972,.41074803,1.4132877 +.69707605,.78172158,1.6991114 +.58040733,2.7741378,.34740382 +.86419687,.76366817,.41807986 +.87237457,1.1444961,1.8086269 +.39168892,1.404824,.21748112 +1.3091318,.60492785,.74638637 +.40895647,.65150123,.27662383 +1.0475368,.07262088,.01378417 +1.0576789,.83750463,.39638499 +1.1877783,1.4671217,.29085389 +.38457361,.51446884,.60121322 +2.0413666,.32670035,.81275056 +1.086672,1.399385,.74159687 +1.5998493,.23655577,1.6089816 +.92533473,.30708026,.08699317 +.56073828,1.5920788,.46994715 +.6610896,1.684147,1.6428877 +.6156305,.06185666,1.061928 +.80925642,.64879235,1.3648795 +1.3430885,.754331,.81898441 +1.5058287,.65047516,.13479383 +.5593614,1.0229721,.22821617 +1.340007,1.3913881,1.3268439 +.42862977,1.4582726,.53247532 +.44920881,.01054844,1.0004048 +.92590449,.33487771,.37193172 +.9574811,.50250222,.99220883 +1.0762137,.47238792,.54697667 +.65484661,.01070811,.707232 +.85845686,.50641868,.22187236 +1.820634,.70435037,.69659951 +.97397495,1.6924954,.04375542 +.26053266,.35616304,.85605261 +1.6925184,.45338154,1.0996559 +.43952675,.63270879,.78813971 +1.5511277,.37481768,.4889931 +1.1234715,1.6326095,1.6097538 +1.3390575,.86948732,1.6985391 +.95279681,1.1398902,.48225951 +.61452681,1.4328088,.43398644 +1.1477915,1.0982031,.90081718 +.31622166,1.6032439,.53216389 +1.285186,.30295152,2.1491364 +.96614206,1.119392,.10252739 +.96200566,1.1153113,.32905354 +.6153228,.53943674,.07989092 +.39886367,.85990304,.94955823 +1.1287626,.26495713,.11821977 +1.0607809,.51373507,.37729865 +.73634159,.87828715,.22869819 +1.3276832,.86221396,.88986034 +1.7169815,.08380125,.01083445 +.21484776,.87617875,1.8502074 +.69917829,.4121393,.9890236 +.82594382,.00859191,.75122494 +1.9394474,.95030429,1.0440116 +2.0227855,.28298769,2.2915283 +.49594458,.5118941,.83738795 +1.2828124,.68121588,.99728602 +.74197738,.79903027,1.3893461 +2.7728243,.25334695,1.2930223 +1.1795617,.29012387,1.3629175 +1.2901386,.91280712,1.4827044 +1.3195389,1.2451134,.31945839 +.54943947,1.2221143,1.7312673 +.58723388,.11326826,.99399511 +.94119784,.34298783,1.0033407 +.91045296,2.5105944,.47545276 +.28216888,2.2359611,.48192185 +.37818762,.56563168,.79584685 +.49319141,1.5085395,1.6811602 +.29748687,.48379702,.12348011 +.63462534,.20522603,1.0936289 +.6640248,.38576871,.01127277 +.89448419,.67237697,.86698813 +.6196514,1.5391433,.1202412 +.47633505,1.792387,.22976014 +1.5719675,.91272066,.59748783 +1.3756886,.29045622,.75688256 +1.9112927,.18950591,1.7840379 +.64472821,1.1895465,.68181557 +.85676212,1.2420267,.14862508 +.68155063,.03103501,.28438581 +.77852058,1.2451532,1.2616572 +1.1687201,.26255176,.17581714 +1.1191875,.91211735,.18685355 +.78200727,.98857122,1.2606789 +1.5055613,.78873659,1.3182626 +.9131078,.4050332,1.9026842 +2.0513696,.35075807,.39741255 +1.3101578,.02565922,.81412836 +.5406914,.28363748,.28754312 +.83302487,.21250079,.30431189 +1.3616295,.98766318,.15091712 +1.1713212,.65692456,1.7236967 +.5998365,.07583609,.13219578 +.5488922,.52138759,.7128528 +.3697227,.94586773,1.5342095 +.7314799,.01257007,1.6445769 +.51583817,1.0662839,.5384893 +.65668904,.51431873,1.0662594 +.87079338,.27461714,.7939308 +.45199128,1.5273433,.7941132 +1.0378428,.95200351,.80019874 +.73969178,1.540505,1.868111 +.74403034,.76884655,1.2123942 +.91296781,.58874467,.05235964 +1.6241826,.47070907,.38458454 +1.4725432,.52319011,.80706374 +.73577145,.45558795,.37881104 +.5174315,.87568981,.86667673 +.88107602,.18233595,.8151249 +1.5378242,.32631625,.36825068 +.71553272,.27867022,.7645827 +.44478663,.47349036,.63157683 +1.4000188,.23650827,.80545648 +.42545176,.66962699,1.6309488 +.7292928,.30155626,.38965385 +.51296406,1.145427,.99373696 +.90800894,1.3071181,.00263658 +.9406007,1.1482376,.4335813 +.55172217,.65440827,.66342748 +.32200959,1.3104365,.0882224 +.44180743,1.4451504,.2944354 +1.035972,1.8156345,.54690659 +1.3149949,.88659951,.09366339 +1.4945709,.13316781,.01579108 +.33535078,.97861396,.2963224 +.77948932,.17720024,2.0840771 +.80321768,.42459585,.58838373 +.81380768,.49116353,2.088016 +.78439806,.4341781,.87297504 +.44480324,1.416256,.13742581 +1.8225068,.0425273,1.8756451 +.53189488,1.8107426,.10470828 +.92865193,.22004499,.16448244 +.94819148,1.8541902,.44917315 +1.1982275,.07416088,.44365878 +.4159434,.55086251,.19737572 +.97331128,.01711353,.61501428 +1.8582288,1.4900848,1.3007418 +.7400676,1.6136018,.19993127 +1.1011664,2.1688661,.98639213 +1.0976099,.49186808,.91329728 +.64273494,.60793752,1.641071 +.56510926,.32416504,.88165715 +.35512886,.65700615,1.2089218 +.68785473,.74156585,.84194585 +.65622299,1.2450544,.04799773 +.65817986,1.4243223,.07849187 +2.9886852,.12398593,.34622997 +1.0256803,.60157007,.08965928 +1.6991751,.11190857,1.667671 +.89302619,.31037662,.21986439 +.65155032,1.3228253,.83793096 +1.0627817,1.3375963,.96846791 +.42263473,.82858174,2.3523248 +1.0205158,.41590859,2.1822911 +.82087399,.39793457,.13316584 +.53878535,1.4445381,.55352497 +1.0007479,.99696389,.9082501 +1.4737195,.81590005,1.1734515 +.79337239,.6148135,.75188195 +.88708724,.68740217,.1300576 +.7215146,.83343083,1.1374906 +1.9712642,.28244934,.33130874 +.54417119,.03065378,.33044607 +.50175061,.37620933,.68176926 +.85186299,1.2487619,1.9930393 +.7435018,.14224251,.94561152 +.40615814,.33478764,.36142599 +.93517057,.85153358,.91182046 +1.1123306,.19120241,.42577176 +.51751419,1.2623219,.2489011 +1.9268369,.2861739,.77654433 +.81650804,.59650145,1.0952676 +.22788398,1.7384512,1.1388817 +.44498948,.56921059,.84204079 +.60667325,.71170866,2.0581575 +.81107858,1.3491779,2.1406844 +1.0486268,.62336563,1.5384283 +.45195518,.99325711,.47701073 +1.8367185,.18168535,.00077557 +.84242922,.18958623,.52851921 +.33285572,.74243129,.50365053 +.75518173,.6783754,1.0678479 +.55498908,.46286059,.97265498 +.42670807,1.2025836,.30222344 +.50843004,.32147284,.11075256 +.80035377,.90495147,.30607074 +1.339909,1.0563721,1.8533862 +.97604603,.49930146,1.34867 +1.5137959,.06570949,.65244623 +.80324355,.20939052,1.6682465 +1.8352921,.15300026,.34592949 +1.1524637,.11433398,.64529077 +1.0889833,1.8231745,1.5412452 +.76426216,.00357709,.59904461 +1.0121641,1.6028694,.5506431 +.90618173,.54419891,.69742467 +.60605528,1.4899357,1.1814022 +.37484365,2.1769593,1.2277737 +.57207516,1.2818617,1.3812857 +1.8023888,.39211322,.01283563 +.47723551,.13592427,.10510118 +.66935302,.56956457,.76439392 +1.4528044,.87661468,3.7478175 +.89340355,2.0614924,1.5449686 +.86937054,.29155141,.40991434 +.99979539,.64027861,.68757576 +.55138796,.47218687,.61519518 +.83833259,.54820407,1.0193079 +1.3238688,.0646147,.28730838 +.69370317,.01703267,.09212433 +.94252886,.56976352,.47073802 +.62127625,.50368035,.43523048 +.51909717,.97450686,.93567089 +.74521538,1.3014465,.20164346 +.66383842,.88399435,.66712291 +1.2904562,.62106854,.44876605 +1.3951696,.77346815,2.4248265 +.25368284,.64624575,.04134322 +1.1909742,.4387559,.5467819 +.8935414,.82318768,.43982312 +1.2388944,.41106153,1.677264 +.43037906,.64619983,.05624185 +1.0358489,.56962515,1.1797704 +.73858428,.31589477,.47145204 +.33500698,1.9853124,.83542561 +.59643048,1.8120222,.90788594 +1.2514343,2.8807035,.91335527 +.99468097,.98479266,1.283087 +.5747947,.88943818,1.3960794 +.6594801,.13366046,.42781398 +1.3153333,.91204212,.72440021 +1.2635406,.16962635,1.5196205 +.32110588,.63182443,.12074597 +1.2340532,.57780803,1.0118556 +.81795655,.95570855,1.1336126 +.92076079,.22212162,.25547613 +.40512476,.94193846,.29720694 +.30517033,.37224204,.76756658 +.63146964,.54464768,.54584767 +1.6447364,.30273635,.82356785 +.84259186,1.334788,1.2259492 +.83780112,1.1402242,.09194308 +.60847752,.12637464,.74843737 +1.4126278,.65003869,1.6373134 +1.3860253,.31754441,.71706824 +.81484965,.18027054,1.8029685 +.51863261,.7386288,2.0732122 +.77227889,.94547523,.7028977 +1.2529926,1.0371832,2.067672 +.63587102,1.7314688,2.55633 +.62412753,.24998514,.25186538 +.63965615,.32595245,.74078277 +1.0383146,1.2644294,.69307544 +.75733462,.30208964,1.0954786 +1.0324746,.65174033,.09757847 +.74779131,.44164017,.24413636 +1.7845322,1.9908741,1.8052401 +.54421754,.5002698,.78237395 +.70072489,1.1108223,.3321127 +.93187262,.74911891,1.9599852 +2.4496138,.73546656,1.3632234 +.51367353,1.2857315,.0097027 +.968625,.73428336,1.8911642 +.4103123,.92227025,1.4429856 +1.3791411,.93642454,1.2239387 +1.7859763,.09362319,1.2969549 +.36561911,.73299688,.58262611 +.33691009,.60890585,.1194619 +.93820263,1.9514156,.2137393 +1.778266,.22003282,.07939295 +2.6241847,.0054296,1.7717669 +1.080692,1.0112047,.50951251 +1.0977671,.03486325,1.8939707 +.80777483,.18051975,.43650064 +1.4006323,1.3810735,1.0376402 +.57806839,.23277554,.79286639 +.5526068,.81043119,1.6080759 +.7386486,.49218586,.1157681 +.82109219,1.2974091,2.1677742 +.74599839,1.722914,.81937176 +1.2081925,.93566767,.75488764 +.74455036,.00389045,.57712701 +.84241505,.29558916,.70745047 +1.2600114,.31320107,.15409233 +.81071489,2.444755,.39184607 +.89517572,.2512339,.65503451 +1.2740605,.82796461,.6684505 +.37572709,1.393457,.07399946 +.3483328,.66293278,1.7290735 +1.0540888,.61552518,.25675201 +.92125081,.10662909,.1906698 +.85913318,1.5603884,.49212254 +1.1240675,.18045985,.9160165 +1.2982918,.4752623,.16719025 +.44276304,1.0233769,.49812258 +1.6252943,1.1307804,1.7635024 +.74886986,1.3909238,.73058699 +.91626648,.3799616,.24074411 +.40904488,1.4707564,.58556941 +.57677517,1.753289,.0000382 +.98044482,.52356381,.96469864 +.79744126,1.6523909,1.8021762 +.37917144,1.3604142,.6528129 +.76730195,1.6414002,1.1711442 +.33742349,1.9540012,.3508126 +.57848999,.6815009,1.068007 +1.4571178,.45453218,.06999632 +1.3631603,.53806247,.18500461 +1.5088898,.37366693,.54458396 +1.005339,1.0335673,.80485501 +1.3088912,.34221831,.35246623 +1.5890248,1.4553374,.54879606 +.57280964,2.3286599,1.103969 +.75638159,.35209578,.37828786 +1.3995721,.29475238,2.8111748 +.54331982,2.4077506,.06994226 +.63613311,.15935194,.4018136 +.56339764,.37169225,.12809619 +.80713954,.19482149,.14549072 +.67885947,1.078193,.40911142 +.79231745,.69603821,2.1111511 +.83260774,.56023356,.62096716 +.42322266,.43706853,.20031754 +.35743849,2.3853523,.18903894 +.60233841,.2842864,1.1781855 +1.4619883,.60823877,.73996187 +.72309974,.07896719,.03914938 +.93945978,1.3759911,.19431722 +.56714193,.23791247,1.4501087 +.85762614,.75136065,.88982109 +.79832363,.81799582,1.1521641 +.87437075,1.9158098,.40248569 +.31326555,.56326251,.89838209 +1.3512362,1.7445778,.17337115 +.64015753,.83816892,.25651913 +.41745427,.16099283,.70378443 +.66665824,.94739756,.55411147 +1.1100079,.74516833,1.1792152 +.76004599,.81103689,.14059353 +.92861793,.09428428,.55639101 +1.2540919,.12613867,.14181544 +.62838596,1.5843677,.9471698 +.63477676,.20082085,.22841776 +.39422685,.58072821,.30027756 +1.2064121,.93384373,1.5331543 +.39534941,1.6853165,.06518469 +.84645835,1.2422076,.18017462 +.59325427,.57812911,1.5798131 +.60086101,.42481608,.07754402 +1.0433831,.59358687,1.0434061 +.32163027,1.7409245,.45777467 +1.2129282,.36181742,.73259942 +.56655137,2.7666555,.82046625 +.78771766,.77952216,.10378938 +.53260997,.49646884,1.6535898 +1.3967735,.25894511,.97730247 +1.3977687,.83542683,.79127023 +.83808008,1.8558617,.29125057 +1.2320504,.19057996,.42966721 +.56501131,1.9956998,.20498548 +.87374861,.19537187,.3771533 +1.7955835,1.3697112,1.1243497 +1.2146609,.50968194,1.0745701 +.91939623,1.1420411,.18983679 +1.1916294,.62435633,.73845934 +1.1868149,1.0611382,1.1878905 +1.2639055,.51096206,.28237159 +2.0066542,.10606033,2.6535067 +1.1700477,.20119798,.68834855 +1.9325776,1.3252935,.63951903 +1.0930079,1.2344739,1.8604517 +.80797355,.82889549,1.4570444 +.69691025,1.6672777,.02365125 +.43094331,1.1743864,.16745578 +1.3840606,2.0584566,.19214831 +1.027648,.9143264,.03306817 +.97042263,.01422706,.54346516 +.84142116,.50717279,.10233717 +.44817191,1.877795,1.6645582 +.56377935,1.1247912,.37012196 +1.0184071,.15379492,.20392159 +2.3183882,.91510282,2.3341694 +1.102399,.03918096,.87013957 +.76574829,.87970216,.0436095 +.57658917,.70356978,.65569207 +1.1909786,.05970278,.68605026 +.5629038,2.1866383,1.4621554 +.71769052,.90601774,.89058952 +1.0246048,.47248044,.716832 +1.0357721,1.6383169,.40172392 +.96639099,1.9216954,1.0119531 +.76916862,1.5041582,.22194318 +.74143151,.00580472,.31578884 +.57886525,.46681907,1.6402384 +.92721085,.35225519,.90118201 +.57002192,1.8676534,.72298668 +.44539904,1.2754225,.59495269 +.86821487,.68745038,.66961187 +.86999859,1.136468,1.1741329 +1.9936699,.79740096,.96503947 +.55839482,.32732413,.15359511 +1.2198198,1.1292109,.09053808 +1.3763558,.08332394,.19183254 +.38015154,1.2295605,.66764555 +1.2146106,.65152545,.11871188 +.87626355,1.1358527,.85857441 +.71015502,.95801388,.15986665 +.70820744,1.7343456,.33480197 +.19387222,1.3385604,.25055242 +.85290874,1.4364184,.82274332 +1.0735334,.60509038,.63248686 +2.3708595,.38708892,1.9820899 +1.143433,.02781132,1.1134854 +.73665807,.52365762,1.1885837 +.71106811,1.1645377,1.182186 +1.1621833,.17182026,.19602229 +.17842604,1.4495738,.20612674 +1.9619911,.10714888,2.561591 +.95469407,.72440145,.20054274 +1.0140997,1.2043619,.02502504 +1.1606224,.79833165,2.120208 +.43770643,1.3196587,.63231279 +.69303297,.74753857,.4417584 +1.234353,.10868588,1.6534577 +.42623601,1.4077468,2.2450664 +.81408026,1.4529682,1.7357342 +.99687125,.70813848,1.2512464 +1.4826955,.47252075,.08774273 +1.1461527,.12132082,.77708653 +.71033934,1.084599,.44297536 +1.1045427,1.891063,.50998684 +1.9319603,.93962353,1.0084205 +1.1090536,.74049245,1.5163329 +.76577107,.06576143,.04214434 +1.374702,.39528663,1.7656048 +.6759703,2.6083226,.46774217 +.56244299,.15629067,.19124597 +.70245965,1.2120902,.74692361 +.63382649,.56907092,.51332465 +1.0768588,.33230686,1.0928782 +.94999143,.17988874,1.4560346 +.90550181,.28990957,.08655958 +.47555671,1.5409506,1.3222284 +.4468297,.52170832,.90100958 +.8184975,.54890297,1.3667273 +.51041057,1.5219253,.07589772 +2.168447,2.2464225,1.0226121 +.60734261,1.4665871,.26919916 +.71563237,1.4880499,1.3887097 +.63431269,1.1589787,.38058814 +.90129452,1.5682212,.20109119 +1.907528,.88585188,1.4277242 +.80920877,.42708069,.75537977 +.66825333,.33162579,1.5225769 +1.4685191,.15808009,1.0399489 +1.4256229,.7527181,.01822099 +.51827559,3.119791,.89576242 +.765881,.93557674,1.5028843 +.88508981,.1654815,1.6426027 +1.415065,.61840437,.48878163 +.52806831,1.0236248,1.6197949 +.70076508,.48633268,1.4568417 +1.3424494,.73844082,.2420217 +.85925569,.33909526,.29180813 +.92869511,.29877653,1.7013245 +.68045947,.37707384,.01888087 +.72256704,.3667023,.84052406 +2.2058423,.37293067,1.3704005 +.49062052,2.6213863,1.7951673 +2.183499,.94602508,2.3327524 +.69511279,1.1595187,.75169414 +.70274589,1.5911558,.71130606 +.6777028,.93733429,.18218264 +1.0281431,.26154559,.50716076 +1.0936668,.84215556,.04285925 +1.280388,1.3568595,.95880998 +1.2974131,.74981122,.03819153 +1.4843558,.59468157,2.0851232 +.55473031,.93435621,.21586015 +.84248075,.01072542,.43700218 +.87851928,.70545625,.77879941 +.65309902,.40171523,1.5189749 +.57644559,.46366704,.75029879 +1.3409931,.13062072,1.3455687 +.57664275,1.0276692,.68552115 +.78671953,1.0306845,.21355878 +.64156889,1.4858713,.48463474 +.3101362,1.5388871,.2059554 +.35920708,2.002099,.89308845 +.50143531,.42590513,.72794356 +.51618421,1.0606877,.58839362 +.64195082,.40450952,.3337621 +1.2084796,.07342278,1.2890573 +.89881539,.06142364,.20882513 +.8001337,1.1528069,.79249512 +1.8107122,.37608896,.65469871 +.72707638,1.593189,.49086389 +1.0824653,.88778314,1.1002026 +.5333127,.29688435,.99285941 +.96699819,1.0149841,.83988864 +.61969324,1.3957371,.49194285 +1.2773881,1.0955775,.00906312 +.42459997,1.1225785,.61749471 +.67753816,.46566453,.29716794 +.42424643,.34211045,1.3605798 +1.5908744,.56972125,2.0993988 +1.0253624,.86951059,1.3811829 +1.0681412,1.3624388,.4182447 +.82859841,.33643688,.76396442 +.49237672,.3245545,1.5600074 +.6575905,.476556,.37706967 +1.9262869,.19176039,.74906881 +1.7667199,1.2791372,1.8863923 +.20214901,2.7634509,.18370978 +.53286841,.95539663,2.2371947 +.8362861,.09272047,1.3324705 +.60198478,1.8730427,.21068619 +1.0555296,.55846981,1.8320224 +.47647683,1.2057006,1.4787514 +1.2471572,.19617785,1.3877957 +.78458864,.6952136,.6701822 +1.0478313,.46000261,.11334006 +1.3883951,.06172826,.8259357 +.76455377,.42286629,.18413966 +1.0230116,.54664613,1.3148019 +.7290598,1.7369355,.72423022 +.48906717,.27157048,.07792522 +1.2845004,.07856191,.34150228 +1.5889264,.23833085,.73015901 +.93238477,.88297517,.01269701 +.52037411,.63232572,.44724286 +2.1055516,.1895008,.20127048 +.77975616,.62429008,.12259622 +.28051056,1.097903,1.2673406 +1.7653281,.17554946,1.1722123 +2.2209128,.78243044,.92269198 +1.3885199,.15877687,.7263115 +1.9509104,1.6715992,.01294765 +.89879492,.23331647,.69275234 +1.0886632,.06245351,1.120341 +.7816594,.28742819,.39081216 +1.0884032,.19088944,.19153091 +.49619826,.03750677,1.9612525 +1.380513,.21583234,.92881005 +.62958661,.24587448,1.1335671 +.6159412,1.3110574,.68082947 +2.4193285,.14076565,2.4255001 +1.6525019,.27123844,.21423584 +1.3042856,.07692115,1.4664754 +.95189073,.40139136,1.0547211 +.44123378,.9001054,.97061856 +2.1105865,.25373463,1.1316731 +.5668875,.81159467,.52599443 +.74091284,.63887306,.52841393 +.81789448,.5926335,.93480937 +1.7440215,.1187642,.84983379 +3.5619197,.16655939,.80046675 +.74608841,.26135109,1.3438816 +.4538615,.45572447,.38887708 +1.3526574,.8958224,1.7914204 +.71112549,.4870828,.71073241 +2.382755,.32995611,1.3220042 +.98126631,.81846256,.68793839 +.90969399,.95500347,2.0782284 +.76835402,.15502788,.36226311 +1.0240559,1.633479,.38447854 +.51903876,1.3561998,.85811566 +1.6492228,.06746788,.85275388 +.96559411,.74283853,1.0885836 +.77385021,.99889086,1.7065947 +1.2514382,.06565369,.28539951 +.17734268,1.7852737,.12480367 +.3913499,1.3172726,.69463533 +.53435672,.27050235,.97183121 +.5065393,.88572638,.90182124 +1.1553311,.95726743,.72687849 +1.3369388,.03823137,.85213493 +.69842096,.87055585,1.0596505 +.74126017,.85740805,.98279065 +.79426483,.96730916,.19550863 +.61639075,.99558048,.72971687 +.63475179,1.859435,.72010546 +.52227292,.25708916,.77671027 +.68498466,2.595429,1.1392599 +.89485062,.79868659,.18659906 +.46650905,1.1914276,.61866637 +1.2069322,.41690237,1.9657853 +1.0052447,.68451988,.51857533 +1.1134645,.88995304,.82885523 +1.0722335,.9661135,.22233409 +.67359885,.25329679,1.3661839 +1.2153644,1.2023641,.07485303 +1.8597302,.48962387,1.0376825 +1.1437527,2.0639092,1.4464747 +2.0770281,1.0327698,1.1236018 +.83420871,.73970163,.95940615 +.94927811,.8255318,.89800524 +.39907321,.79640849,.05606944 +1.4546062,1.666266,1.1862012 +1.8837131,.53903858,1.9490628 +.5195613,.14289565,.2149874 +.8983924,.03254976,1.3743065 +.8551912,.15398248,.11047296 +2.0915293,.35085904,.63274605 +1.0477613,.12801667,1.467096 +1.0524767,.30466018,.25030688 +.7726164,1.5157824,.52314648 +1.0829486,.28936518,.06175214 +.42628137,.80822311,1.068811 +.89685251,.77634207,.70447005 +.89827622,.42662418,.86199427 +.37193242,1.4388173,.75952137 +.51199185,.49875956,.34198392 +1.4910183,.898196,.44455801 +.94697943,.22934427,.25632544 +.24312518,1.2079194,.84618156 +.69366966,.74049938,.28831271 +.81573147,.2539257,.34036255 +2.2478011,1.4339923,.99710722 +.79347986,.28634373,1.310821 +.61003179,.82784152,.96256096 +.72759336,.27426304,1.1726432 +.61582659,.09066903,.23313844 +.85843569,.17590196,.65769799 +1.5316913,.12022718,.84719148 +.36327505,.88617978,1.5361273 +.58983277,.69159856,.27481469 +1.9411009,.09941127,1.6288929 +.86604133,.79265515,.53246988 +1.7586621,.35983727,2.0370542 +.78588053,.59774937,.56058039 +1.2787904,.07760599,.23890235 +.53702533,1.2904248,.33111804 +.91263692,.94350955,2.2991774 +2.2891147,.57490593,.07599132 +.51884865,1.0839699,.52700533 +.71569637,2.6406,.6432822 +1.3627996,.46894252,.98372624 +.25800468,.62869477,.05019518 +.29657539,2.0359909,.07594305 +1.4404164,.73314953,1.3670979 +.3106386,1.5720257,1.5555415 +.63541381,.55086781,.07726358 +.68961323,1.8807533,.59469761 +.74881356,.54220487,.01085302 +.9973646,.17925629,.77930903 +.64381701,.01826327,.73964091 +.66808633,.09640193,1.5296326 +.96106636,.30668718,.25938816 +.72292399,1.2851882,2.2085228 +.78865175,1.2604068,.57514814 +1.1582045,.4857994,.88555072 +1.4066981,.35415727,.99489379 +.64351694,.54034939,1.6771117 +.99097127,.09516022,.59880619 +.7644635,1.0440205,1.0964996 +.35682216,.9643439,1.5109815 +.66848862,.30789547,.41614924 +1.3850969,.65681773,.04395607 +.56685548,.68324611,1.584658 +.74706034,.90512494,.31379714 +1.1549362,.6914984,.67531427 +.77526073,.91738357,1.2207955 +1.0335294,.38974905,.84063965 +.65492656,1.2931086,.54435801 +1.6072197,.70881757,.32722391 +2.7910759,.04960538,.34979498 +1.180399,1.0700756,.03272428 +.33357727,.69269601,1.1633913 +.83565224,.63871895,1.2746182 +.25524206,.74971962,1.2279695 +.41023619,.97349953,.68979904 +1.1807322,.37702703,.22202047 +.53304297,1.350728,.0913188 +.73369887,2.0850958,.16970366 +.48972789,.84398055,1.1430584 +.88096984,.58922944,.33414754 +1.9924075,.29692101,1.7701439 +.43576421,1.8768387,.00230379 +.80253213,.16289507,.66755569 +.38859394,1.5845183,1.1505282 +1.1687375,1.0173729,1.7276617 +3.9667645,.98586637,.27674366 +.58850744,.14783543,.04063834 +.54315803,.03651551,.82363016 +.57777274,.02477896,1.0036998 +.6709763,1.8907155,.91548697 +.57698357,.71279493,.11928878 +2.3380293,.65328914,1.1940761 +1.7573208,.44966107,.59738713 +1.0436517,.55950663,1.1236023 +1.4288964,1.6694258,.91191911 +.47758693,1.0238217,.33662824 +1.6532446,.71171958,1.4135434 +1.2205573,.99543877,.60808459 +.80672495,.15233094,.185388 +.37626163,2.4259051,1.9572989 +.51728205,1.1736834,.35655472 +.50442482,.17087482,1.7249557 +1.0908256,.90886603,1.2587565 +.82669079,1.5010878,.26221513 +1.2722907,1.1441171,.69092343 +1.1308095,.97717881,.45136812 +.51483073,.40643947,.3205554 +.61622519,1.3153282,1.767963 +1.2136643,.69165458,.46950703 +1.0759239,.86569058,1.9588674 +1.1125289,.17820819,.09607314 +.70441083,.94185397,1.7200636 +.49450989,.5784437,1.0905836 +2.5786222,.37839553,2.0397694 +.72950614,.43122812,.02128773 +.55353706,.70923487,1.7001062 +.82642889,.51993898,.08691439 +.99724645,1.4688026,1.7974192 +.89082478,.05057403,1.118117 +1.130527,.43418948,.83188579 +.74935145,.01032988,.73958344 +.42809225,2.0001845,.09789531 +.58437171,.15291389,.77206381 +1.0545624,1.2824409,1.0224429 +.64589299,.51796963,.27047497 +1.2465817,.18936543,.02881629 +1.6196712,.8857149,.32648611 +.86536411,.30238164,.14372941 +.9420447,1.0229504,.20707646 +.47701755,1.8392095,1.8590809 +1.1589787,.95148743,.15702656 +.87224284,.11472561,.560455 +.46414255,1.9675638,.7400013 +.65751989,2.0095532,1.0171505 +.39588196,1.5921515,.15236675 +.82656999,.84438171,1.5581889 +.96168855,.98403462,2.0122591 +.53625148,.41206504,.40206166 +4.1288139,.32349393,.51928878 +.47679076,1.2864434,1.2725922 +1.0291114,.44431932,.25500107 +.6157849,.60592507,1.0016722 +1.516945,.09735492,.02067488 +.59324424,.57312797,.19203543 +.68944487,1.3493383,.8902446 +2.0179827,.1113851,1.703904 +.42980663,.03306957,.57570827 +1.0222703,.48517305,.02365144 +.94383631,1.6154377,1.6266694 +.32002718,1.7177143,1.0084513 +1.49908,.21248294,1.2144191 +1.3158414,.9737821,.02227344 +.82814254,.1195624,.46763507 +.676072,.02515369,.28776891 +.37282289,.68830347,.11895617 +.95463772,.15457585,.31873081 +.44534708,3.2196397,1.902875 +.65001065,.18887488,.35591498 +.80378439,2.4737064,1.2006768 +.97184345,.02892476,.55576375 +.5823292,.19776008,.00124209 +1.1081173,.140854,.67800438 +1.1047898,.37499784,.40482782 +.57297008,.43947802,1.4006888 +.48293623,1.6686517,1.7161377 +1.1446472,2.6026965,.48117633 +.8278597,.05405743,.73900033 +.482427,1.3786594,1.2209957 +1.2642145,.0493528,2.3833525 +1.3399337,.79232274,1.1121277 +1.1207631,.1535729,2.6046614 +.6666295,1.0859953,1.4925418 +1.2980876,.00145775,.40524308 +.87986536,.43977012,1.254077 +.76495392,.48708531,.76999434 +.22819188,1.4512319,1.5559066 +.29798017,2.2539215,.5195594 +1.3279845,.01138959,.52542843 +.55204144,.6481368,.4711147 +.7371133,.13344627,2.5217731 +.97721621,.7278153,.00623685 +.71864568,.36413202,.14922142 +.32531696,.93266678,.40972811 +1.3275944,.8489246,.8918725 +2.1051261,1.8318485,.46489329 +.56928496,.74741243,.49478537 +.55132374,.15612873,1.7678138 +.64968761,.72797413,.60331527 +.7593706,1.1857406,.16551784 +.49452553,.65688524,.05986132 +.96591007,1.5824132,.95557957 +1.3949041,.20959835,.15273517 +.771495,.62332057,.90622162 +.99939771,.21866531,.05581684 +.5794509,2.9343428,.81273465 +.65157422,.96315393,.85563162 +1.469735,.44554454,.22227611 +1.4194225,.24906027,.39311674 +.69578976,1.0823032,.30349019 +.53261193,1.0459475,.36097992 +1.2294385,.96887116,1.3764715 +1.1397207,1.9087721,.16810686 +.93723419,.03274611,.50538168 +.744357,.18586873,1.74743 +.63142371,.21072381,.79897729 +.24490046,1.5476428,.55420046 +.55500339,1.1142922,2.1502788 +.71890506,.18451822,.28961782 +.67832252,1.7927293,.9086118 +.90010092,.84949688,1.5537602 +.74141497,1.2130596,.12005033 +.33788184,2.3243392,.53401343 +1.12519,.2849701,.17433451 +1.2978261,.09179766,1.7197854 +.43539528,1.0530077,.44601979 +.93269848,.8269831,.87451665 +1.1407599,.36045434,.37429256 +.4904154,.49419718,.53300175 +1.1086902,.20903444,1.0252599 +.77485998,.22771891,1.1736722 +.59170368,1.6182319,.67307908 +.69911185,.30343967,1.0096926 +2.0748857,.31309908,2.2554577 +1.1718546,.63879554,.76160627 +.76021426,.50391873,1.8420283 +.80867225,1.0876699,.84895786 +.94502427,.61050312,1.039107 +1.0197147,.91889116,.27442023 +1.1222663,.58553058,1.6130752 +.69646383,1.1204853,1.3299155 +.96995097,.62124856,1.8813118 +2.0781588,1.0724831,.20557193 +.71376152,.47507119,.59306322 +.38780766,.59484607,1.540234 +.78018546,.19297933,.04441155 +.49488493,.9383246,.35981646 +.81993491,.91146144,.15742901 +1.6409895,.07655831,.174844 +.95750074,.27538899,.09962275 +2.671581,1.4314923,.19386197 +.72482079,.99488215,1.4961601 +.66439213,.21772165,.05031616 +1.4083316,.14383248,.11707053 +.93901368,.00108382,1.6638083 +.55645854,1.1663232,.14825299 +.49092389,.61197272,.66494208 +1.6620335,.22147975,1.1746149 +.53694343,1.5457999,1.0795882 +1.4740634,1.8033045,.23203832 +.44418613,.78118419,1.4152151 +.56527168,.6130185,.05143242 +.78004981,.83141726,1.2084253 +.784224,.86593962,2.7871943 +.37118992,.93603896,1.1061737 +.65027047,.40953357,.13819415 +1.8283961,.97179607,1.7308579 +1.2547597,.84515128,.64643875 +.55125658,.52896634,1.2728169 +1.1026871,.75085224,1.0895521 +1.3176639,1.3245293,.39460165 +1.6092845,.07305507,.20821872 +1.3498074,1.2962391,2.5376956 +1.0898575,.3482617,.86617832 +.56443276,1.447313,1.3797939 +.81058692,1.3992742,1.0132947 +1.344237,.68173681,.03171533 +1.0134045,.92878013,.25329334 +.60913045,1.3042856,.77964609 +1.6918336,1.3337921,1.3585901 +.48226296,1.2043178,.70425779 +.46943917,.38255269,1.8487694 +.68953778,1.1761427,1.6464388 +.58068272,.70909574,1.1138139 +.77890427,.3023003,.10989342 +1.3740884,.06611765,.86001367 +.9509233,.00566387,.52901323 +1.0402988,.34143704,.79323268 +.65702095,1.1696074,.0114046 +.96432359,.10326313,1.1830203 +.78878974,.48110169,.26063642 +.67730725,.82501575,1.0848043 +.88866184,.12903113,.31825127 +.84618598,.15492781,.15544693 +1.809165,.82383309,1.1069443 +1.5203357,.51612582,.18592445 +.38461613,.87761155,.67545672 +.41291166,.23331388,1.3521676 +.51146583,1.4470852,1.1211672 +.42032847,1.7099413,.91006925 +.4016812,1.6904252,2.5114364 +.8164876,.72371464,1.3896437 +2.7799824,.50499772,1.2775239 +.52502963,.75305658,1.1445525 +1.5781647,1.2941917,1.6949047 +.76867788,1.9708254,.42430338 +.76073908,.83814111,.45904102 +.66934632,.99665682,.25761243 +.47825968,1.5392217,.06209625 +.86738539,.3352703,.33842238 +.94007139,1.0726489,.57971966 +1.175814,.4741234,.89016182 +.25107382,.92984292,.24896981 +.84407323,2.810707,1.2503852 +.7581791,.81512639,.89860743 +.8875908,1.0272188,1.2876028 +2.3220484,2.9098063,1.1184672 +.94560284,.35029326,2.1800349 +1.0421436,1.0400936,.98758531 +.23496687,1.1797267,.23123053 +.62881894,2.2680792,.21390008 +.85414627,.6153196,.21985398 +.63791366,.93413346,.63897616 +.46992222,.59292629,1.0160193 +2.6273277,.36385775,.72546364 +1.3078592,.07616026,.08150852 +.49760243,.85242973,.06011294 +1.0603984,2.2594832,1.3287771 +.53647769,.98958145,.66615012 +.97018446,1.512814,.56125373 +.7361764,2.5284592,.85512047 +1.6600147,.01953594,1.1152014 +.94424842,.38197704,.34803017 +1.1233221,.40862132,.77812411 +.66834728,1.0435399,.19416285 +1.3722267,.35536309,1.8651174 +.94521774,1.0802134,1.1383894 +.88351731,.81027594,1.1818225 +.49396972,1.4750849,1.5208801 +.45229517,.18721471,.48623949 +.49271268,.94788612,.07884541 +.77490828,2.0511487,.32597598 +.51403222,.94936357,1.7191345 +1.2569988,.4628264,1.6226211 +.74265347,.18674009,.0994149 +.89276572,.34794053,.41616194 +.6486795,1.5081175,.01014206 +1.0191174,1.1944339,.78802725 +.71765361,.05817345,1.2399538 +1.1896502,.30862727,.23064327 +.39291993,1.6322251,.44315625 +.88567258,.4688017,1.2261407 +.38079557,1.1488663,1.1520807 +.49539343,.92197544,.54683224 +1.3512849,.75440475,2.236985 +.46050919,.22148303,1.7585038 +.45053745,.12095487,1.1619706 +.71066914,.71907346,1.0273638 +1.0520831,2.0812438,.97853707 +.74813127,.29349885,.10268707 +1.2668858,.94128637,2.1783754 +1.5621342,.5975813,.08376246 +1.7886578,.09552403,1.7315426 +2.2071013,1.0476109,.64795361 +.2759569,.55475697,.21270487 +.5617469,2.10086,.51435619 +1.0495419,.65126881,.79803187 +.8805055,.4225427,.09032212 +.82262437,.68413998,2.6069787 +.27949825,.8358399,.70780717 +.61844594,.1104375,1.5891248 +.84250265,.81890748,.58174074 +.96070136,1.0109154,.54798975 +.37557323,2.0405529,1.0185012 +1.0665261,1.310698,1.4396197 +1.4548599,1.4275678,1.4564888 +1.0984206,.46020748,1.8970606 +2.0090235,.58936972,1.1733994 +1.180496,.48654099,.8007528 +.82729314,.0540416,.59689138 +.70210232,1.5777402,.24625933 +.91065354,.36212826,2.7640054 +.19261024,1.6331447,.30616558 +.62864354,.17533613,.58056779 +.59039703,1.3361525,.0142799 +1.3238679,1.2170283,.13774106 +.5055108,1.3075364,.33158388 +.56427649,1.1630815,.16505875 +1.2097313,.14200269,.36952264 +.73667058,1.3402346,.88359277 +.73566055,.47721992,1.0860224 +1.1772874,.43731096,.33398213 +.52427002,1.1451906,.06803354 +.68322523,1.5349151,.37949732 +1.0617098,.57799847,1.071875 +1.6393962,.46938371,.90760438 +1.5868001,.60728609,.46123991 +.75313669,1.1308536,.39901802 +.37723905,2.2796224,.4375233 +.44872503,.93168842,.70967406 +.65454996,.67376371,.0216667 +.79456586,1.6115254,1.5667079 +.76220588,.59346483,1.8716497 +1.2253062,.4005129,1.3399258 +.57308671,2.2815485,.59255966 +1.1024032,.94481159,1.8459874 +.92436152,.30788542,2.9489171 +1.6312356,.1550641,.22431102 +1.3484329,1.2280912,.84812333 +.98167438,.13841609,.37243831 +.80993377,2.9406417,.50365786 +.47553115,.98575941,.44319245 +.67418539,1.0088342,1.1218373 +.47252572,.85114171,.24710085 +.97494214,.84370384,.98611008 +.84494252,.27993594,.98132966 +.73970132,1.2049771,1.5910602 +.81316506,.69283406,.29294423 +1.1258105,.5788941,.35654635 +.81215688,.99476232,1.9246066 +.67551087,.82349729,.78059803 +.43043058,.90848636,.93711547 +.74603755,1.0018132,2.5479965 +.44238802,.79167592,1.524348 +.53651289,1.0136932,.30867067 +.77830291,2.1680794,1.4349684 +2.0776702,.13748039,.71890545 +.49274231,.04139223,.50599131 +.75551525,1.2492341,.58594102 +.75463442,.42065786,1.243372 +.62945022,.03820227,.75054979 +.93801336,.11680201,.1292666 +.99377918,1.5611648,.09578711 +.88487421,1.2265687,1.1389773 +1.2908061,.8335692,.85756423 +.69740017,.49317637,.01215532 +.9825529,.15717098,.86978185 +.5031974,.52029617,1.4301387 +.5539264,.16828526,.80194109 +.55128779,.83788984,1.0637777 +1.99464,.31226605,.36984273 +.33379504,.62488986,.85116847 +.67795761,.41012133,1.2540771 +.63347853,1.4830081,1.1251207 +.84235554,1.3422675,.77768847 +.61700389,.75467884,1.2036146 +1.4349908,.35157576,.64343495 +1.4557014,.47283113,.25378466 +.82013099,1.6236654,.27436396 +.55200766,1.6747491,1.1742265 +1.3428124,.09033944,1.1197457 +.58221535,.09167764,.89252533 +.47133973,1.0666412,1.343479 +.87430842,1.2601824,.60075162 +1.0138795,.36788063,.01734848 +.94909782,.58911439,.27317964 +1.7330816,.92815988,.45920227 +1.0485168,.56079789,.9905131 +1.9303157,1.0389638,.07149811 +1.2849883,.64038493,.02852005 +.48550939,1.0647538,1.0052538 +1.6478268,.03714115,1.8858721 +.74539657,.18833328,.25839211 +.39250203,.59118735,.9905733 +.32973748,.50453024,.06828272 +.74538954,.22964436,.70668959 +.84891798,.44211747,.60522108 +.78512855,.85296478,.89756544 +.80749224,1.8700642,.0516534 +.95569265,.66803997,.09145039 +.53091642,.55750224,.33151418 +1.2204452,.48491412,2.3282944 +.95284961,1.2402816,.28377765 +1.1297674,.16120008,.05228336 +1.4930831,.91837009,.75056659 +.89837628,.6838341,.750801 +1.4953086,1.1025404,.81854774 +1.4176819,.87450614,.03475535 +.60893086,1.0224308,1.1910041 +1.0556715,1.4413302,.93195112 +.64673459,.00758075,.07651614 +1.0165418,1.2565755,.37249415 +.47752033,.1110764,.04873648 +1.1805196,.83450118,1.6703819 +.44352195,.12530364,.86488878 +1.0092977,.29240275,.33783686 +.96012428,1.4447624,2.5836042 +.79740198,2.4174997,.0054102 +1.1983498,.61190537,.27204144 +.84325003,.33226732,.29902058 +.53082986,.00890833,1.126963 +1.1308429,1.4257851,.70733166 +.62096815,1.2985932,.19611687 +.34791679,.75738621,.94261502 +1.0272812,.45851981,.14403771 +.62086159,.02428954,.56357674 +.93509093,.47692001,.76107081 +.30578973,2.1883482,.76590459 +.60193391,.13464577,.62025857 +.70259357,.16760158,.82341864 +.31992411,1.4047281,.39567715 +1.005698,.2812801,.20445979 +1.6220866,1.3254766,.75520094 +1.1501382,1.156972,.5111568 +.32654117,1.2504938,.60826124 +.58839275,1.1451529,.48439607 +.79207607,.73864971,.70651802 +.72214836,1.3562067,1.9536765 +1.1081999,.0864607,1.2227699 +.71001324,2.011997,.69546526 +.54899863,.98023256,.31554369 +.48989502,.88305497,.07272846 +.74349524,.15198802,.82061497 +.76124311,.68270507,.90303937 +1.178987,.16099257,.58671679 +1.0670602,.8328814,1.8679403 +.84328135,1.4071717,.1524713 +.99304294,1.6935236,.7348236 +.93431503,.60453712,2.732466 +.64044322,1.0117352,.25843157 +1.0917489,.95239606,.00033641 +.71230533,1.1241965,.06125251 +.76030334,1.5999053,1.0419823 +1.1475806,.0752097,1.4090268 +.58816623,.02744202,.7958024 +1.5049361,.04583078,.8822531 +.24723661,3.3738754,.18239171 +.6502062,.13257751,.39080806 +1.6267181,.71711674,1.2071543 +.70522267,1.4590499,.0799123 +1.1164756,.99022107,1.1280521 +1.4909196,.75178287,.0231576 +.58226373,.22467919,.78380764 +1.096686,1.1888077,2.0384383 +.97499605,.26075199,.40471976 +.69476185,.42534346,2.4579581 +.57840918,.49746832,.30555207 +1.0573601,1.14179,.44053734 +1.0274485,.17631578,.36813281 +.48317383,.90616015,.8460259 +.95108102,.58273062,1.2968199 +.2776714,.9709864,.31511676 +1.7692316,.28384949,.42524256 +.58374506,.74679834,.10802609 +2.3154516,.64974284,.91841864 +.67366893,.80485619,.13949707 +.93121315,.61309769,.83192116 +1.1117299,1.6330773,.34104686 +.51105024,1.13214,.73406544 +1.1880026,.10853136,.64364846 +.60905141,.39027004,.24155961 +1.1393838,.83768519,1.0317463 +.58432018,.16611814,.39533679 +.65346827,.99889547,.55902969 +1.0324008,.28640313,1.7640387 +.70278681,1.1791009,2.0060864 +1.3863837,.88593459,.1519296 +.6336809,.2772944,.75884939 +1.695952,.15061104,.92298723 +1.1718239,.21867204,.60837174 +1.0233083,.38451302,.73441135 +.87583111,.26534119,.31443716 +1.6466356,1.0640574,.71510077 +1.4080411,.45934273,.4026914 +1.0254751,.23358951,1.6154411 +1.3704222,.22623877,.84460519 +2.0145764,.78565146,2.6001944 +.65497544,.06735831,1.3974807 +1.0652127,.59777301,.34959255 +1.7639162,.05471022,.81621829 +.35844086,1.7736775,.21274905 +.70781656,.62968996,.01928049 +1.5608161,.71977979,.80333722 +.48210822,1.3214877,.52229392 +1.1160185,3.5967288,1.5435621 +.58561584,.38763365,.22860716 +.58057286,1.1520282,.35002761 +.71355013,.29200808,.9066272 +.97669182,.04223278,1.2803858 +.46535054,1.3000139,2.0604953 +.67910754,.36996085,.24068549 +1.129874,1.426386,1.1406872 +1.9913046,.85040814,.49172433 +.86721454,.28271961,.69436009 +1.765594,.15194388,.28563153 +.72187661,.70840815,.0454045 +.79030511,1.3295729,1.5642462 +.87614709,.84364274,.52138132 +.74609933,.42218949,.02120465 +.96520269,.08320164,1.4734171 +.83738489,1.547088,.26833451 +.84721267,.0084985,.82489118 +1.2310048,.23185338,.012669 +1.0340949,1.4598249,.06024909 +.56033661,.2465643,1.7091092 +1.3284931,.06485312,.17230044 +.55887485,1.3440964,1.585257 +1.0075576,.19458988,.79471272 +.90157298,.19423824,.50753425 +.88703613,.33277225,1.2234686 +.76196006,.37968148,.4755336 +.55837908,.56034827,.09478308 +1.0989029,.42749798,1.0048461 +.93696945,1.1248134,.55428828 +.95538074,1.5735579,.38848475 +.52201488,.86831825,.12085349 +.66887308,1.2525563,.39579717 +.93145599,.54879631,1.227828 +.73994471,1.8995369,.54586693 +1.0200073,.54688435,.72888832 +1.551675,.04873997,1.497348 +1.2911426,.48731973,.04387723 +.76877269,1.6370992,.46970001 +.95879788,.97540508,.01874695 +1.1309209,.7208439,1.8229426 +.88646443,.34748832,.0646255 +1.5449524,.39244777,.74969829 +.90645958,1.0033903,.09452769 +.55548634,.84648376,1.0006422 +.94586432,.28538764,.02393608 +.88062844,1.4702961,.35910596 +.3481455,.75887317,.98462965 +.82538631,.15032367,.23715209 +.81096649,.47510525,.57188983 +1.3968986,1.0552867,1.3741806 +.94817538,.25337682,2.1240913 +.63777939,1.360561,.89165381 +1.2613359,.13247599,1.3619908 +1.3174063,.68470791,.52568901 +.30523171,1.6967665,1.2691249 +1.7998593,.67450301,.40874405 +.42928959,2.0338698,.76485569 +1.2282405,.04012815,2.3270713 +.67210634,.19836579,.83172544 +1.2056768,.61745859,.02280731 +.67401507,.22249517,.3739376 +1.2005446,.51257495,.09186179 +.88553786,.73514421,.21102994 +1.0198532,.35517344,.25156247 +.61883809,.0693184,.41815179 +1.2799957,1.1811674,1.4391196 +.90718935,.10981424,1.2260451 +1.1343493,.07090129,1.092624 +1.8413132,.72945825,.39984219 +.78627999,1.1775208,.32587575 +.78818327,1.002466,1.2386831 +.75361499,1.5711888,.60438929 +.36380039,.92829735,1.0145408 +.78222288,1.9211768,.17484635 +.52854195,.8339808,.4983977 +1.2143397,1.1126547,1.1899927 +1.0113013,.59596285,.68715747 +.65446984,.57756077,.45405306 +.70145602,.66618219,1.8750415 +.78705549,1.4625099,.27252264 +1.3298608,.63096496,.38760305 +.67302498,1.7291378,.32239957 +1.1658359,.67577252,1.0604743 +.61400761,2.4694158,1.4689151 +1.2187939,.17054996,.95881827 +.35846368,1.8737021,.14937487 +.71127933,1.8343777,1.3905664 +.81451374,.48292711,1.59062 +.93317369,.03539598,.18196962 +.47678888,2.4509237,1.1912874 +.96118104,.33653937,.11574838 +.66837751,.51852349,1.1475576 +.66806502,1.1947178,.33219559 +.71961651,.13701868,1.3368661 +2.0049026,2.1750426,1.3403514 +.35688843,1.0671462,.01265189 +.34789357,2.3839491,.08530386 +.58205639,.77289921,.01775995 +1.1162092,.94268362,.74151678 +2.0388856,1.6172636,.06426775 +.58168682,.22720302,.85035926 +.58991429,1.178111,1.0721191 +1.2588686,.04161301,1.3035437 +.78267064,1.077661,1.1316805 +.66752156,.12863945,.08149763 +.33850287,2.033099,.65799429 +.37939368,.80320107,.49403518 +1.0043566,.74718155,.71639858 +.81635895,.77031824,.3377564 +1.2491298,.48381359,.01623284 +.63371036,1.3838508,.19724142 +.66463484,.4310978,.15254235 +.8154093,1.4677782,.35762941 +1.6373557,1.9159779,.04728846 +2.2993976,.62301271,.48151816 +.74935259,.57392194,.67526085 +.32601624,1.3625812,1.1211654 +.64519417,.12149722,.11123044 +1.1664558,.87811239,.3186702 +1.4756326,.44429205,.02165789 +.80044521,.9970048,.94615221 +1.19112,.31247604,.48757139 +.67767213,1.4017921,1.7150152 +.74163305,.19304096,.58208858 +.53946601,1.2041163,.80121633 +.58140532,.92919995,1.094177 +1.1662262,.98188353,.19675474 +.34492947,2.6251945,.42200182 +.67658482,.29915068,1.0908009 +1.0073369,1.153445,.3403381 +1.2901462,1.0125907,1.2398767 +.50632874,.85744703,.10583556 +.58778351,.67401056,.32535486 +.33927657,.03039109,1.125767 +1.2331673,.48622533,.05773593 +.38925466,.12897853,.64085285 +1.1101056,.46800878,.28430467 +.60495246,.14183275,1.0241412 +.85236166,1.089181,1.1909652 +1.9241594,.03278176,1.426042 +1.8545845,1.2225805,.31227555 +1.0404112,.52822024,.64666519 +.66686101,1.4696137,1.8444407 +.38786681,.41802315,.19617809 +.88791697,.87905758,1.9133345 +.82108162,.66410959,.56553392 +.35735262,.37845378,.03891047 +1.1327907,.99184787,1.905329 +.86734555,.27855141,.75312452 +.87253657,.95780636,.14590111 +.23430247,.84947072,.14940253 +.88737161,.54514991,.92747792 +.90290721,.84225901,.32142148 +.60056118,.29083983,.14846001 +1.1833374,.75881347,.01437122 +1.0179825,.45237351,1.600481 +.53423968,.19198555,1.5629509 +1.1722717,.41479424,1.5120805 +.58579216,.0250075,.1540132 +.92220619,.88668257,1.2449523 +.63740068,.31828997,1.2334218 +.47207925,.72999188,1.0641855 +.5492456,3.5638421,1.5148965 +.64547599,1.205139,1.2666653 +2.3102327,.09134375,.80604613 +.7867422,1.000546,.05074673 +.41919462,2.0125849,.13394201 +.50105136,.05118157,.52401623 +.89828337,.40928911,1.4100376 +.47965681,.33939251,.71503332 +.41243636,1.1252191,.51064739 +.59706992,.00337369,.45442231 +.99642608,2.0819917,.97068304 +.74659683,1.1284789,1.0651606 +.71412857,.07108617,.56581218 +.79068289,.38908819,1.4235479 +.67578635,.28583828,.66337401 +.61508011,.89471845,.26631586 +1.0777135,.73005453,.10090293 +2.4932225,.45247669,1.6920118 +3.3436338,.41466522,.46325692 +.63377046,.14587873,.53804359 +.51563952,.46784724,.39161398 +1.5351739,.00941681,1.0292205 +.5887544,.17880537,.11619461 +.61931206,2.3854339,1.2523942 +.49186034,.5564204,.12925932 +.96920222,.23808574,.24889175 +1.4380347,.43413202,.894439 +1.3390236,.30702521,.22905514 +.27802921,.98557421,.97267739 +.72440823,.87812146,.47089947 +.66821144,1.3521546,1.2439222 +.51504099,1.3400987,1.2425848 +3.2384933,.1541957,.55163512 +.93656249,.33315628,1.6686267 +.23660296,.94974947,.87682721 +.45678948,.16716628,.17068622 +2.0891764,.57801447,.3121727 +.91853363,.09565183,.90108725 +1.8883104,1.1116091,.00612944 +.98601118,.00115947,.88719259 +.67816272,.20860469,.31960975 +.84011415,.42964497,.06967795 +.44576748,.16412709,.95289238 +.43113156,.95161022,.44743571 +2.5214901,.74169891,.47233815 +.48215088,1.6872974,1.0378552 +.29996952,1.1513935,.41968067 +.71070799,.45708144,1.4809702 +2.3007179,.70283681,1.3983638 +.46939348,1.1137777,.64198064 +1.3713094,1.0484329,2.2191602 +1.046034,.76229571,1.3095758 +.74340131,1.2847741,1.0250733 +.46378364,.42923942,1.6273341 +2.8717092,.33111718,1.0317766 +1.5414913,.04960656,.31190094 +.31501075,.49973229,.62322507 +.82370917,.89094609,1.2819835 +.6570569,1.0938974,.08728457 +1.6069214,.2647501,.44311321 +.55457056,.5367949,.57002721 +1.4803683,.12679448,.24272737 +.79916807,.7813076,.58498752 +.72075651,.22767698,1.4164879 +1.5570938,.25056228,1.0850277 +.92698483,.55227555,.3699904 +.69866029,.78442056,.76890314 +1.3539297,.46116899,.57226109 +.89785762,1.3530996,.4417163 +.79204672,.51992028,1.2090441 +.38574959,1.8968928,.16733964 +.45926315,.98568922,.86634656 +.63910641,.52258625,.04854367 +.67027254,2.4834203,.78701548 +.74273892,.92875288,1.0889456 +.83360291,.67135067,1.0664808 +.75442725,.57938881,.32307605 +1.2100198,.33407303,.75779022 +.55369699,2.1045942,.77292241 +.36733311,.28829875,.63902053 +.75174685,.37525992,.97991177 +.64481993,.01774048,.55567123 +1.422755,1.4039239,1.4626366 +2.4298418,.15682443,2.3798009 +.38818769,1.6381839,1.1877699 +.52051309,1.3476926,.51170589 +.9896811,.04170698,.87406464 +.86099702,1.7750314,.34231166 +.48801294,1.5179109,.29306171 +.67579414,.28281088,.86162458 +1.72306,.54253874,.99998557 +1.0087633,.31463723,.996401 +.38814839,1.7257837,.78371954 +2.6091528,.35035126,.94172763 +.4426963,.76656562,1.4177592 +.98357048,.82076726,1.5381439 +1.1578395,.70720233,.62521962 +.56650235,1.2669914,1.4889197 +.80281285,.61014837,1.156319 +.55745622,.72028049,.70291388 +.88942703,.17861944,2.2515943 +.96199844,.57996485,.27369929 +2.5891214,.15461972,.68667241 +1.62138,.41897535,.63560177 +.71837689,.43780919,.99507807 +1.5061847,.89094154,.84096787 +.24463157,.9218323,.87705629 +1.0623662,.58827946,2.9681087 +.47452144,.84399802,.1313448 +.86401649,.9381413,1.2260434 +.53673491,1.6284425,.66157562 +.93469312,.69715946,1.6991552 +1.3045011,.41995488,.56085272 +.76638608,2.2031877,.71095925 +.46542928,.44554426,.46064617 +.80049369,.18808411,.77562448 +.51116046,1.3148983,1.0477356 +1.0787974,.24171599,.09426749 +.9361193,1.2005872,.90044092 +.78552602,1.2132787,.51237415 +.68170657,.36580226,.0683691 +.8906534,.64371007,.45469373 +1.3959664,.8946776,1.1337475 +.96392275,1.5853062,.8180301 +.53905476,.21851794,.11451744 +1.2475511,.76006634,.44635776 +1.680232,.06096911,.17284009 +.79089179,.59645652,.21678535 +2.8054621,.69025436,1.0882838 +.90568263,.74631026,.27789914 +.78907484,.3368811,.82148199 +.59800707,.69889139,.16956023 +.48919693,1.5474899,.37127602 +.68058455,.14481336,.420751 +.92980674,.44128384,.06975473 +.61944281,.33235708,.3988858 +1.2105996,1.3813112,.94097987 +.6439047,.6461417,2.0538751 +.95948702,1.2210429,.45502751 +.46444063,.77727098,.27250762 +1.5474533,.33931348,1.3163316 +1.4652315,.17721372,.79641131 +.62813653,1.7422696,.10943165 +.65362271,.98562354,.7315098 +.74515268,.25824582,.24908241 +2.3203081,.1131823,.10014359 +1.7668248,1.3238677,.55692889 +2.2358288,.16364376,2.2303102 +1.117462,.56711446,.07439058 +1.1402491,.52244189,.19455647 +.78624011,1.0656974,.84713209 +.46862652,1.5773716,1.6287885 +.50161071,.07859679,.93888839 +1.8440903,.30543009,2.0274433 +1.1473915,.35376206,1.8530995 +.50899138,1.0550296,.43403464 +1.8648383,.87937297,2.145814 +2.8192626,.23229579,.62069712 +.25063029,.36662465,.42552869 +.66531234,.66266276,.25105609 +1.5006631,1.3485747,.3746575 +2.2067247,.17023857,.96047477 +.53063097,.33025445,.25002529 +.76132079,1.2053237,.46718572 +.60167285,1.2310006,2.183956 +.90367757,.90733918,1.5171983 +.63630015,.4259389,1.1423768 +1.9057135,1.4621465,.1783783 +3.6161902,.06153246,2.4213922 +2.3765265,.70399822,1.8795535 +.39188689,1.5543792,.68361097 +.53431714,1.4337308,.16484082 +.57229564,.10925307,.19313187 +.65431877,.05998213,.01797897 +.59672892,.6401043,.1680151 +.71552371,1.8392966,2.2881461 +1.8957714,1.1845929,2.9341771 +.43393556,1.3300553,.16446469 +.68798485,1.1852012,.06431372 +.89595944,.24068855,.50148188 +1.0411243,.56617351,.55793893 +.64380687,.64958303,1.6786269 +.84837263,1.1490532,1.4064107 +.56788742,.45952337,1.9716948 +1.7531739,.04254806,.84527429 +.72606551,.04982175,1.6519872 +.70865053,.46219709,.34010064 +.6267348,.48190935,.24681032 +1.1836206,.2566915,.89256019 +.8712299,.58410514,.09165297 +.50314455,1.5032993,.74449478 +.83941196,.63868741,2.170131 +1.21462,1.2377964,.76362123 +.8732652,.66071545,.15177305 +.35835869,1.5492572,1.2591971 +.99076987,.29103337,.09069936 +1.1552782,.75157045,.16521191 +.6823169,1.5137784,.35812834 +.72336105,.08383388,.25300347 +.69091597,.33703172,.52106386 +1.1763493,.11881231,.46267249 +1.1795284,.8986258,.68905165 +.66010155,.81149567,1.8521438 +.7129799,.58930687,.12079049 +.72199364,.85196019,.34881387 +.44114788,1.0713618,1.0830559 +.76618409,.54872055,.09837042 +1.0158674,.39602302,.31659356 +.77499155,.57674974,.30752813 +1.2899333,1.1199979,.63939683 +1.8901591,.20404949,1.43325 +1.0759158,.41207863,.00805226 +.38410553,.81951226,1.0507818 +.74330316,.48447018,1.9948977 +1.4645376,.7440207,2.1957415 +.48792093,.35906488,.93457074 +1.9060025,.9762767,1.2570162 +.54625923,.5304958,.04700051 +.75256691,.13723193,.05818395 +1.2855878,.51550938,.25490982 +.46406122,1.8510372,.72836216 +.67863897,1.8485687,1.7574206 +.35797485,1.0754989,.62168253 +.67204037,.69801183,.25707157 +.56715585,1.139981,.48090919 +.48461258,.17631069,1.4833326 +1.2497185,.1748074,.5153138 +1.0914641,.199153,.05917995 +.86952667,.19427216,1.243466 +.50380174,.69858655,.12940963 +1.7631257,1.0508868,.53859376 +1.0756711,2.278069,.04673339 +.85784385,.42748524,1.5923391 +.89717883,.07981338,1.8672671 +2.729953,.83183738,.92769227 +.94492125,1.1387296,1.0067562 +.54418773,1.0192334,1.2763899 +.67851704,.94813866,.32631103 +.8371747,.49678106,1.0356605 +.82876048,.32409167,.36215083 +.42341303,1.3641205,1.3319783 +.5919063,.78348957,.92912121 +1.0931705,.58075201,1.9101282 +1.5427434,.11219013,.42484558 +.48280378,.2790494,.16182141 +.95033345,1.7183534,.29206984 +.38595789,2.601318,1.0885295 +1.0049549,.13221975,.17103873 +.73251597,2.4235888,.84011016 +1.7331439,.83880891,.9835884 +1.1746875,.50870002,.4836311 +.45641509,.91537348,.32016308 +1.6439773,.87580414,1.6623042 +1.3472257,.49301814,.56626484 +.96868471,1.3826491,.41242445 +.95291441,.10603883,.5380112 +1.2563275,.11865252,.1789125 +1.2934705,1.6485052,1.5291678 +1.4715603,1.9668442,.22688212 +.58365943,1.433692,.52819037 +1.6352705,1.1236807,.51993746 +1.1422625,.02276463,.07860799 +1.8223244,.71970146,.43959973 +1.0306169,.13753393,.05379221 +1.3476073,.57384176,.4203764 +1.6739832,.54928324,.93352506 +.3517705,.90967015,1.2472653 +.4643638,.53937657,.86073699 +.81875079,1.6469027,1.6305783 +.54040263,.75785583,1.0870085 +.79604579,1.2365098,.61635268 +1.2205639,.16176317,1.8919639 +.78156685,.05897935,.05677553 +.93018111,.23346777,.15564831 +.20140339,.30813155,.74528851 +1.2933262,1.1859071,.31472133 +1.2745744,.82174189,.71800583 +.39928579,.65118319,.11297831 +.91076827,1.1016984,.99979454 +1.0192728,.6654978,1.0091444 +.34231662,1.0870133,.64318098 +.59927365,.30957265,.48042603 +1.2867746,.67816993,.03590382 +.90139529,1.5958519,.96093217 +.98195509,.50623509,.99698627 +1.0925978,.48038937,.0585571 +1.0005689,1.1888089,1.6367685 +.90040683,.52209724,1.4838872 +.69705543,.80826042,.30578652 +.70092642,.0689236,.21569622 +.36960693,.33840555,.41032365 +.5253244,1.4579312,.54929244 +1.8286692,.29677027,.4389546 +.9172035,.51268235,.49216501 +.9992297,.24376249,.60245999 +1.2506918,.27381917,1.7608973 +.6612035,.89514464,1.7317256 +1.7410381,.73497519,1.2426202 +1.9745035,.24406578,.77798682 +.84592079,1.4505062,.17813292 +.94700655,.61846033,1.2305953 +.6743805,.35942866,1.0380199 +1.0358574,.22463157,.67294126 +1.3237223,.10830843,.9596969 +.86283734,1.2223348,.94203228 +.63384493,.02180131,.77332922 +1.142438,.1064199,.60369916 +.61193669,.68164233,2.5007876 +.69576744,1.5506048,.63524233 +1.0247209,.03263334,2.2871894 +.31087033,1.5882184,.40540811 +.97011828,.22962789,1.4967269 +2.0810061,1.0658375,.57118076 +.92828433,2.8477796,.69338907 +1.4214726,.67255358,.54434124 +.87290032,.55033889,.0794906 +1.9166083,.84357072,1.5534735 +.86395895,.63781755,.25978749 +.50320068,1.1298642,1.4000598 +1.5941149,.04896295,1.5269697 +.50933201,1.3200645,2.0855617 +1.2327457,.14226144,1.3897216 +2.3288236,1.2586999,.03269549 +.95206347,.03274811,.94016149 +.74005264,.98438292,.3264493 +.70882486,.89483281,1.3856549 +.51617391,1.5509926,.06597904 +.49489842,1.4794708,.65020653 +.44238368,1.4854794,.74548169 +.37643777,.43935179,.07795041 +.75378987,1.7531986,1.6838754 +.69538549,.87876652,.82046522 +.68956286,.31886785,.63843931 +.43258617,.62197117,.8352753 +.91175007,.33625406,.54894954 +.37411024,.84203449,1.0918415 +2.1684376,.07619129,.42598076 +1.9246454,.48929483,.41076851 +1.7117807,.21028159,1.4977526 +.42314447,.55911665,.08938605 +1.2135197,1.0038878,.27141062 +1.9932693,.43047207,.53475832 +.88909123,2.1768637,.30482159 +1.5017604,.22738782,.70243459 +.24068214,.60580469,.10696729 +.85000282,1.4384307,.38082931 +.38044866,.09088261,.3821031 +.7697348,.48844892,.63253707 +.65730722,.66293059,.60735829 +.67508102,.67449368,.81923673 +.37660326,.13501322,.20266077 +1.0688779,.84834962,1.6914417 +1.1859387,1.5413296,.7287391 +1.731357,.83158364,.89877985 +.95363913,.21875963,.26110981 +1.0131975,.54915232,2.1734871 +.58401556,.05371556,.15906208 +1.4799809,1.0098739,2.004313 +.85264585,.06377564,.10560077 +1.0803096,.71767429,1.2481746 +1.2553048,.76089577,1.5049252 +.72950672,1.1211592,.38312382 +1.1305501,.89899456,.05717001 +.60163166,.86580182,1.6446771 +1.0245626,1.0303686,.49062316 +.69388128,.07710422,2.6674354 +.86536695,.24067627,.48016555 +.88113938,.63387341,2.5681028 +.69143513,1.8906732,.65004181 +.57835384,1.257493,.17901534 +.72563649,.09094027,1.2233064 +1.1561485,.8863465,1.01814 +1.0588516,1.220783,1.5419722 +1.7544362,.94358695,.89685109 +1.0051426,1.1574569,.74754422 +.66501052,.68979778,1.2464103 +1.327936,.70160396,1.3188661 +.30486625,1.3874573,.58968771 +.99128596,1.612382,.81979302 +1.747792,.98444736,.31313521 +1.3073967,.13056734,.69700727 +.35787159,3.0589404,.77889123 +1.0646399,.29755041,1.1667204 +.80098635,.06393564,.05804501 +.55088771,1.4183134,1.2789654 +1.6208952,.00005995,2.3208355 +1.4092806,.67751768,.68135596 +.94547096,.87251656,.85988483 +.80875995,1.5437118,.17206358 +.75540748,.61203013,.39284106 +.52567229,1.2441364,.40457827 +.42282625,.51454214,.04501229 +1.5232908,.64141112,.1324341 +1.1933019,.38366088,.25559246 +1.635387,1.0758569,1.9383787 +2.0021352,.07866777,.67877126 +2.9815101,.01594576,1.81776 +.5402046,1.4747557,.9899708 +.66660812,1.0719577,.41084676 +.91706931,1.2744367,.32086561 +.27043961,.06299113,1.0104523 +1.3138801,.02827668,.69574916 +.44662551,.8445575,.55262057 +.7064771,1.1926282,.42762629 +.50384841,.66834728,.34994528 +.95619166,1.0764414,.26833428 +1.7838204,.0897513,.37041605 +.49795506,1.0670242,.46047288 +2.2429888,1.0872105,1.2830892 +1.6234555,.54378053,1.1448573 +2.1641896,.23951493,.23361942 +1.71312,.02372137,.40852403 +1.1450373,.11274603,1.6262045 +.29951323,2.3075943,.70142274 +.60503263,1.5688568,.63514101 +.68834929,.77431121,1.3606887 +1.4039525,.65054022,.29240854 +2.3607128,2.4197382,.58432388 +.58440947,.6627664,2.7135 +1.0800038,.32016076,1.3739984 +2.1012846,.7919633,.20637629 +.67282261,.12390646,.21262395 +.51558608,2.2197819,.74304841 +1.91903,.52806731,1.2769137 +.9931944,1.7063757,.32995628 +.67160435,2.4508911,.79895861 +1.0001083,.55453218,.02428445 +.53382556,1.3124188,.46915506 +.36823395,1.2308149,.56803602 +.38804452,.24524141,.3305414 +.30224753,1.4751305,1.5752972 +1.9460619,.68349917,.03470597 +.74507546,.1682105,.0736601 +1.2316489,.73406505,2.083524 +1.1734155,.25098795,2.0225229 +.40231039,1.0380633,1.0067582 +1.1806551,1.8096595,.31956792 +.92955228,.10213592,.6782538 +1.3366894,.21140222,1.1287943 +.57777299,.89339302,.28400756 +.33960901,1.1406563,1.4664154 +.57950495,1.5200819,.34554529 +.33019046,1.3073602,.38213446 +.44205818,1.5620879,.71842592 +1.427786,.19850098,.53911183 +1.2101025,2.400413,.93765038 +1.8704099,.52115475,2.2084273 +.58028049,1.1767034,1.0257178 +.92331261,1.4998969,.30641693 +.73792361,.65365685,1.4093228 +.96909326,1.7463968,.71414656 +.97802153,.42842053,1.321406 +.32459432,.68672973,.37577109 +.51738248,1.1574616,.06644444 +1.1388259,1.4775425,1.3561246 +.40641248,.9103601,.79473371 +.33835113,1.1203038,.80210904 +.98307246,.5769485,1.6192223 +.94309169,1.0004966,1.2111166 +1.1370742,.23903409,.73524753 +.37644514,2.9477059,.49448598 +.83451314,.5585442,.70538338 +.64484861,.46811181,.57449708 +1.0544128,2.0967931,.01094779 +.88515629,.58534896,.35736172 +.23594503,.42079718,.54173572 +.71667185,.07673013,.74003398 +.77440361,.12752931,1.3267774 +1.0154763,.54351645,1.0876055 +1.1493377,.70279097,.61401835 +1.8515369,.32283636,.52941126 +.92182724,.70311368,.27915335 +.65945726,.33159858,.41201792 +.5806412,1.6530997,.29341425 +.54773502,.65476483,.46074611 +2.3975932,.65019487,.35745211 +.98750551,.02935614,.83891579 +.61701522,1.9800345,1.3613699 +.48271144,.26962329,.45219281 +2.1792786,.6182303,.84343882 +1.6453393,.05875621,2.6646773 +.4735627,.50200591,.15096375 +.73745318,.60795269,.29809596 +.33072064,.22082341,.62590724 +1.0880671,.27259589,1.2973013 +1.014389,.70546446,.19700482 +.57929793,1.6596097,.6950678 +.72574992,.22285074,2.2713243 +.66650343,.77055209,.19984922 +.93887358,1.2013807,.34946822 +.70186258,.65498214,2.7036281 +1.329146,.11798914,.78672702 +.78192774,.05063926,1.4669768 +.80031199,1.9332165,1.3686008 +1.689676,.57552705,.20405541 +.55016153,1.6396954,.14742806 +.78200998,1.9569652,.63348591 +1.4143737,1.10233,1.1991567 +.96549782,.43889387,.94740259 +1.277739,.29393202,1.35441 +1.5564686,1.5572771,.48263848 +2.4433041,1.7739054,1.4838967 +1.4961907,.20086012,1.7852626 +.82973154,.65896295,.83746125 +1.1585267,.20492895,.95889146 +1.5675113,1.3527987,1.0761865 +.49911638,.29999767,.03800171 +1.9889033,.14976339,.05680387 +1.673711,.34763774,1.8589598 +.82213635,1.4618803,1.198137 +.83283672,1.1809219,.96375063 +.32107164,.94477172,1.043493 +.57317396,.82279384,.2703509 +.81393575,.08999854,1.8324794 +1.034292,1.6502336,.77749249 +.91105405,.74391585,1.6636699 +1.2004793,1.648129,.412366 +2.1959385,1.8844134,.19694783 +1.3200154,.414729,.54632218 +.42569009,.9548823,.6522489 +.6607221,1.3086982,1.1041789 +.55376729,.5636984,.753735 +1.0888866,1.2028841,1.2953725 +.42192496,.62829609,.67469707 +1.2173745,1.0367626,1.206822 +1.0221017,.36852425,.0146644 +.86033987,1.221696,.78912217 +1.4265021,.65127625,1.5558361 +.78144742,1.6736307,.55045428 +.70747127,.92016739,.12127705 +.28340137,.10137177,.16304576 +.51957666,1.2596026,.22652892 +.87780792,.08191362,1.7346886 +.77069699,1.6047938,.82345428 +.78436925,1.0162146,1.9065367 +.46684483,.02569708,1.1185948 +.62867898,2.0511319,.93557032 +.63142941,.09905411,.36625162 +1.0393781,.8401058,.26313629 +.60807523,1.3147165,.47603037 +.68558754,.06863672,.05900604 +.84294771,.36551373,.23260504 +.5844084,.95162224,.49558401 +.52901131,1.3181088,.73260187 +2.1180249,.8691828,1.8643216 +.76199377,.08587304,1.5451079 +.40906477,.82242719,.39327887 +1.3214605,.24740784,.26195167 +1.5735077,.46964578,1.0998192 +1.4930352,.47339242,1.0245189 +1.2036354,.19885734,.02073592 +1.3503524,.31751605,.01782783 +.36040283,.28359987,.17904049 +.79829774,.50630179,.23769244 +.95458874,.95324164,1.4534739 +.57417194,2.2895944,.10150974 +.56672114,.43340719,.36661417 +1.8351765,1.0822562,.68203706 +.5090869,1.7394813,.04097531 +.4618306,.6457766,1.3273623 +1.1061404,.31352615,2.0181314 +.87950637,1.1331143,.46249425 +1.2013948,.48217857,.15281191 +1.0745049,1.5986157,.98589841 +2.1272001,1.1822098,1.0315967 +.83033424,.62498278,.73741508 +.65644754,.5166994,.57248551 +.82556126,.03375756,1.3084407 +.68111577,.69336754,.17995471 +.45252454,1.3905157,.42885777 +.4585364,.38239892,.53330252 +1.0931996,.0525135,.21232734 +.89267187,.6216813,.71839502 +.43566136,.4895749,.53775451 +.18707091,.83772453,.5389828 +.87081259,.76523503,1.2938004 +.63698763,1.3463152,.96749784 +1.4162469,.36756475,1.8868449 +.66189739,.92317797,.1990266 +1.4032905,1.3072493,.97166175 +.74476142,3.1903631,1.2629692 +2.2386314,.64544632,1.6241107 +.63338201,.16510191,.13992188 +.72887949,1.3070154,.42705921 +1.3527553,1.4515861,.7967056 +1.3083615,1.7020024,.54834132 +.88428588,.62772995,.11226288 +.76377484,1.5715772,1.5247945 +.66570761,2.6458114,1.0967753 +.30231232,1.1705047,.17602671 +.7857638,.65795568,.20781 +1.5007833,.70072359,1.6844385 +.48749498,.73930011,.63921145 +.46702792,2.3895426,.49198153 +1.8394307,.58875916,.28661104 +.77690936,.58286402,.53077765 +.64924689,3.085492,2.2180714 +.93272823,1.0010107,1.1720065 +1.114429,.46547478,1.0762919 +.38358883,1.5498286,.7529471 +1.2124156,.04200627,1.1464329 +.617624,1.4704107,.3082889 +.72838008,.72034467,.77497158 +.68511069,.02774243,.57507377 +1.5768551,1.2088814,.49711094 +1.090043,.54566251,1.7871683 +.71515481,.6912216,.33043291 +.78331943,.74805084,.49338546 +1.0628514,.34675467,.41546283 +.6491405,.40634615,1.7197625 +1.0211247,2.4004806,1.1522046 +.29623037,1.2862998,.35684277 +.685593,.61037275,.11593869 +.9417792,.68887538,.51086002 +.26791434,.81370502,1.8319985 +.46602321,.12942232,.38878943 +1.2265309,1.0121362,.57244293 +.91093298,.76705203,1.3237008 +.45848677,.32705151,.17721788 +.89316122,1.7294477,3.6672258 +.66632801,1.0562079,2.0384104 +.84547173,2.2421483,.08653162 +.65051684,.59040892,.95303009 +.6129284,1.3848773,.01730898 +.38488407,1.2413954,2.5041415 +.45100723,.1879054,.71575165 +.65178489,.74837848,.42875586 +.58950027,.80768445,1.0911664 +.6187754,.68949867,2.0789156 +.98337584,.07952279,1.0544055 +.43517807,.76653555,.90814469 +1.2556527,.60118785,.64780918 +.5179949,2.5370661,.41206845 +1.0286988,1.7585724,.57453275 +.94097598,.03414804,.59082885 +1.3332649,.59574993,.0268577 +1.1391587,.07156824,.57565754 +.4656365,1.795352,.41945927 +1.106907,.41118224,.13047912 +.44775909,.40187428,1.1985354 +.5063035,1.4614863,.19145351 +.62858753,.610244,.25505612 +2.6010863,.00783679,.84312728 +1.2305188,2.4273301,.57876991 +1.1060251,.37554791,.26638603 +.60233071,.43361959,.32493373 +.71229761,.12757896,1.2261348 +1.0497981,.01197852,.83760235 +.65487055,.26058249,1.1376457 +1.1647417,.14552456,2.1613319 +1.1321355,.269842,1.5849737 +.47138082,.94972705,1.0147494 +.3731219,.14446508,.5097614 +1.0793715,.32494172,.45624868 +1.2025246,.44904855,1.1773516 +1.330472,.60310007,.18165797 +.97162274,.1515434,1.0972445 +3.7943028,.8284244,.89235239 +2.6752484,.95443823,.48283677 +.61132366,1.1571533,1.0980194 +1.0290768,.75826613,.23568659 +1.5305563,.20028764,.16584027 +.74309255,1.0164721,.50950043 +.6077203,1.056824,.56350638 +.72824995,.29430733,1.3466487 +.81656752,.32490257,1.0584081 +1.2075928,.67438686,.00076187 +1.3021912,.37731986,.64625304 +.34064626,.21942392,1.7230584 +1.5004741,.65885695,.45517042 +1.6554884,.75058211,.04722094 +1.3787881,.41487742,.65785317 +.73161135,1.4108058,.10006721 +1.0577191,.19417544,.77884935 +1.8792674,.69346806,1.2187042 +.49232657,1.8467481,.36595124 +.64144417,.02089125,1.0533914 +.42871601,.05503265,1.2431244 +.49798066,.65728614,.21028646 +.71111184,.00170156,.89606963 +1.082147,1.1748482,1.2734521 +.41394333,1.2417764,1.934517 +2.4631178,.49040095,.74835 +.67337673,.49495233,1.0433913 +.80146576,1.5771561,2.0095024 +2.4199709,.87879049,1.3973449 +1.2511776,.23304925,.71527 +1.4745749,.32102694,1.6653571 +1.3678503,.0262918,.36239981 +1.513652,.15841232,.54507411 +.66045685,.02750147,.58834612 +.92129745,.67898131,.17961002 +1.1810473,.40222729,.49348431 +.72539497,.139456,.33722235 +.53033252,.20027735,.97636887 +.933973,.59086829,1.3211794 +.62752189,.34058126,.69841881 +1.8095774,.64292773,2.0239612 +1.3478675,.37103706,.61947333 +1.3704938,.69069649,1.2816725 +.63540116,1.3205338,.99866746 +.76299155,.66283224,.64670082 +3.5260563,.18764466,.52905725 +.8398252,.87427508,.15787079 +.67773539,.98772483,.83560501 +.47105455,.47789476,.71118322 +1.5528198,.43992875,1.268415 +1.6517295,.00020571,.85726698 +.79138591,1.5831449,1.9948943 +.7374455,.44464872,1.4142927 +1.9053493,1.894786,2.3781248 +.76387536,.03287392,.12389782 +.98114137,.81549216,.67110954 +2.3403521,.80389035,1.6940529 +.73469478,.95204264,1.565537 +.39301604,.93549583,.82151104 +.89951319,.27306008,.5844993 +1.5253077,1.1555668,2.2083113 +.48019464,.76321938,.16114625 +1.2863474,.48978265,.12586623 +.62075936,.13700595,.40568808 +1.0856598,.53725109,.32087264 +.87676953,1.6651376,.87192029 +.54778039,.30962186,1.5616293 +.60722861,.04366938,.89874467 +.99706196,1.1087632,.15954306 +.58715404,1.2324202,.71690633 +.81567344,1.4804013,.30135296 +1.2623709,.11182957,.95177016 +1.030246,.06161032,.02424394 +1.7446658,1.4621419,1.4257077 +.36583836,1.4501681,1.6228377 +2.2462959,1.8659649,1.1972319 +1.6283245,.66741272,.37407705 +1.5910691,1.0232878,.53153669 +1.1351791,.60100541,.01565681 +.49590856,1.2358581,.74705529 +1.3618515,1.1421905,1.6453634 +.67148582,.10421449,1.3794179 +.47192192,1.3320658,.41298756 +.91465984,.11902566,.50787004 +.68669333,.70189465,1.1704196 +.39121212,2.4660791,1.0523737 +1.2087117,.13979532,1.4111145 +.7297334,.64652523,1.397902 +1.2505452,.23212128,1.8776807 +.65790167,.50744898,1.124479 +.93372368,.49250561,1.2571786 +.45100405,1.0015836,.77485739 +1.3971697,.2984355,2.3263953 +.58242374,1.1561346,1.0092273 +.36838935,1.7107713,.52714744 +.34509063,1.1381152,1.2580413 +.96887215,.26064828,.37926006 +1.3400239,.4773693,.67472147 +.88832809,.32017422,1.032573 +.85409399,.72425997,1.8377564 +2.7323918,.46160749,1.7508095 +.34849226,1.3002879,.21281283 +1.7524314,.66855439,.58389793 +.91807176,1.2665228,1.5308572 +.36649002,.80810784,.07416611 +.68459515,.52397851,.3750835 +1.3109374,1.8138844,.39675987 +1.0337927,1.9879862,2.3908099 +1.7588789,.11007711,.59015482 +.69785259,1.0989532,.35112747 +.91622118,1.4316853,.23028931 +.6062643,.96560104,.32832749 +.82536587,.4189563,.98128036 +1.7076691,1.1697355,1.7124169 +.87076774,2.0284141,.41293648 +1.2830348,.82713936,.20678632 +.98993021,.89330394,.27521678 +.77135082,.41804488,1.9123901 +1.8836578,.84032747,.70501606 +1.4437957,.50710227,.00540264 +1.7292485,.08181167,.86056307 +.39341411,.54823334,.40389821 +.58127326,.85924998,.24265174 +.45324121,.61792288,.34670832 +.6110792,.63802747,.94667937 +1.5119466,.43351074,.9332992 +.87822268,.10476011,1.0222966 +.8606249,.60351359,.19373499 +.44257611,.84665418,.35280957 +1.1544723,.29992014,1.7153999 +1.3442582,1.7507053,.32554856 +1.2319973,1.6662415,.20940043 +.72350971,1.0344942,.71802031 +.86794207,1.0333528,1.368585 +.90558486,1.3926522,.43424309 +1.1800305,.11316355,.59412847 +.91780862,.87645627,.10839267 +2.1320703,.19578538,2.2540562 +.85272562,1.1169482,1.0544527 +.73356208,1.0781871,1.1055609 +.36617593,.44964853,.43416787 +.81673956,.51912713,.21364703 +1.5707892,.54631222,2.5779874 +.59289636,.12765822,.39733439 +.97519565,1.7768083,.86821926 +.61868374,1.1651282,.93782792 +1.0442296,1.0387168,.22883834 +1.0940432,.00912961,.22999429 +.37873338,.85616918,.79514433 +.97591028,1.532191,.39297061 +.70793287,.63935215,.5227534 +.99635196,.96662845,1.3442286 +.78748835,.65685852,.00470976 +1.7873869,1.2464337,.92263924 +.37329191,1.2876028,.39550161 +.94013644,.9609786,1.4541845 +1.1908151,.08903309,.53864047 +.48090902,.75682522,.16323607 +1.4744246,1.7498358,2.0993851 +.39737655,.94076607,1.0649819 +.46014346,.95252848,.75822917 +.79356739,.92649133,.73610387 +1.975169,.31050107,.22780533 +.693276,.32860375,.15532707 +.68953702,.6946258,2.537526 +3.2327278,.65548898,.36571595 +1.4972264,.05482178,3.2967515 +1.2381065,1.6038127,.47640381 +1.7488026,.65812491,.15143669 +1.6954116,.65592903,.69903914 +1.4580967,1.5302739,.26452043 +1.0101356,2.7281861,1.9636773 +1.3163027,.59830632,.55106539 +.67624046,.28317257,.23152203 +.39633293,.70366609,.52668174 +.57317739,.31033219,.14377433 +1.5416304,.55522521,2.0417772 +1.4113041,.43245235,.67880857 +.8832939,.63911841,.39169722 +.81014978,.07430955,.8333789 +.36344574,.57186274,.48434644 +.41183825,.89287086,.60013314 +1.0251126,.89313979,.79078933 +.76098139,.87213187,.25055997 +.44975027,1.0329419,.76245619 +.71981055,.28638947,1.2080143 +.8261367,.29826452,.15222027 +.78801329,.35856612,.51428184 +.66585595,.40454774,.52332661 +.37796804,1.016796,.50873651 +.9008758,.07670841,.60010432 +1.3137684,.03308961,1.1469818 +.37187968,.86403377,.41091963 +2.7996141,.04471326,.84350944 +1.1523963,.24787189,.95252994 +2.0714009,.29829901,.32427136 +1.9943146,1.1167328,.01379812 +1.3066656,.56365024,.22565786 +.91367051,.61084108,.83141238 +.38865449,1.3585316,.11999276 +.62661314,.67461457,1.1994739 +.88632983,.3576933,1.1506408 +.6925663,.92056471,.822059 +.51222625,1.2003227,.15491587 +.69122624,.49444533,1.2937427 +1.2569566,1.1215088,.68131531 +2.4703685,.2075025,.7769208 +1.2300793,.11441974,.26418227 +.52464783,1.8932431,.66871212 +.93473993,.07179703,.03150713 +.47339987,.11866091,.45257097 +.72996644,.22608711,.85336258 +.74755864,.13482087,.95670386 +.41098129,3.1516165,1.0445483 +.72592781,2.4930206,.44407074 +.34513513,.03662477,1.4731107 +.37231079,.73462315,.17298364 +.38592801,1.3485008,1.1253315 +.6930768,1.2522585,1.6944768 +.36796998,.83301945,.47808478 +.88206094,.84225022,.07974696 +.42577972,.29317741,1.5621281 +.75374136,.11642107,1.0795925 +.97880258,.38399721,.96355996 +1.0842646,.13906421,1.2946254 +1.0499715,1.7408952,1.1627931 +.81172018,1.1666884,1.1374971 +.49669981,2.1766027,1.3692229 +.51219137,.92841965,1.1863596 +.73839053,.16221208,.44048359 +1.8106967,1.9431789,.14382249 +1.4708173,.00247639,.63613376 +.5888165,.25845188,.81815033 +.68907071,1.0048944,.29756082 +.38237801,.6579251,.85238888 +1.3150694,.36029374,.25903524 +1.0366189,.0429171,1.5305991 +1.1271222,1.7834155,1.9433178 +.98443815,.43002299,1.4257597 +.86880715,.26453674,2.0773368 +1.0472217,.82269053,.08613521 +1.237871,.67571363,.5118681 +.72379841,2.1141058,.40867529 +.6121985,.59458603,.23718224 +.70967199,.38512445,.26308366 +.44824609,.12859946,.40386019 +1.6852312,2.1080875,1.4665409 +1.4962028,.55666907,.474915 +1.175985,.46288026,1.6632042 +1.1462624,1.5364363,.78097846 +1.0288718,.73649469,.77012947 +1.8450247,1.0596898,.63739202 +1.0406078,.58140415,1.522135 +.53212828,1.2242434,1.3865675 +.9526179,1.7016386,1.501717 +.89927895,1.1326033,2.4947102 +1.4594142,.49316221,.37297232 +1.100949,.81894448,.78492589 +1.3258174,.83342687,1.0430553 +1.0320861,1.7489368,1.1769513 +1.2208224,.22695077,1.2705914 +1.2854167,.9867434,.88499884 +.87389794,1.060514,.22973264 +.82555711,.81510461,.1787248 +.46483728,.99054308,.27053876 +.79523774,.20233869,.83284861 +.70926384,1.6581063,1.4508391 +.61351049,.06443571,.57299215 +1.7567902,.47851361,.84387915 +.96142486,.21568911,.66015241 +1.9423801,.15796987,.20537699 +.64230739,2.2439384,1.2074926 +.64271847,.08816713,.68333747 +1.460682,.8804935,.18247844 +.63095708,2.1129668,.14583806 +.72354096,.65249525,1.0307003 +1.5042787,.44328769,.39789931 +2.0334423,.32367831,1.8659098 +1.2784643,.02870346,.08120958 +1.4935961,.29637179,1.0417658 +.68141264,.94275189,.42081174 +.71723657,.69782087,.35854851 +.3822816,1.4829868,.93614625 +1.0100379,.38094424,.40277367 +.42021188,.90458846,.88220432 +.78156751,1.0689121,.89123297 +1.4857916,1.7277094,2.65016 +1.9930055,1.0489457,1.1986927 +.9258146,.92804585,.70686088 +1.0921369,1.0386462,.52535299 +.98841894,.437171,.92237188 +1.5343681,.09505394,1.9738632 +.94132934,1.1830639,1.1337483 +.57239947,1.9179478,.14555954 +.33599827,1.0969344,.54641361 +2.2618901,.1581225,.53834592 +1.0077504,.91452358,.1497171 +.34847348,1.981801,.07419814 +1.6494215,1.1247648,1.7974972 +.99010268,.19828796,.91759723 +1.9557857,.38931956,1.0507761 +.690759,.14463461,.23687936 +.43124594,.19992241,.70582834 +.21663166,1.9085038,.31901924 +1.9707101,1.0901251,.67718112 +.64428757,1.1401693,.6184758 +.52636951,.16067195,.32855672 +1.4746079,.39898137,2.0194284 +.46043983,2.5844728,1.7671145 +.70000809,.60877237,1.5645245 +1.0070584,.75170219,.53403675 +.6559599,.42831596,.68689665 +1.3133678,.90641136,.13801005 +.94345066,.51311245,.74692026 +1.1912579,.8676179,.68913335 +1.144279,.57906764,.58130702 +.71436581,.56416794,.44530337 +.45185628,2.235582,.55234982 +.49508097,1.3991201,.8798062 +.74706263,.1919328,3.0206413 +1.254847,.25432922,.552419 +1.1383126,1.0653123,1.620626 +.45337382,.13671155,.52746411 +1.4158899,.7315249,.03199935 +.42587904,.41076809,1.6431615 +.3096321,2.1013,.88115078 +.95100566,.45623982,1.0079585 +.71054088,1.5475777,1.2340377 +1.2215339,.6480187,.80714428 +.96580508,.75164519,1.4373949 +.62353854,1.0133656,1.2177473 +.5394945,.6591339,1.0368973 +.85869052,.46904082,.93972305 +1.1804838,.57850756,.07196729 +.27463074,.01695206,.00991583 +.48258708,.44606465,.36940446 +.85565644,.70973753,1.0513742 +.97374429,.32325518,1.2179184 +1.1799501,.35897406,.22519616 +1.6018232,.0424748,.27932707 +1.2882426,.24889114,.34641763 +.42940383,2.4529782,.24802627 +.54626355,.24834993,.01728355 +2.4432114,.13820471,.12362266 +1.2593132,.87850504,1.6094136 +.5980748,1.3984861,.74010026 +.73849013,.04101999,2.1952279 +.57729241,.59196788,.49613025 +.93057913,.36351934,.22210041 +.96363423,1.1475447,1.6161089 +1.0032688,1.5625099,.07905612 +2.2942352,1.1450396,2.3374455 +.4278056,1.1375706,.54764248 +.80299519,2.3354321,1.1405582 +.84726281,1.9430553,.65901063 +.77598392,1.1216514,.41476573 +.46111806,1.2559712,.28157034 +1.1820744,1.1223,.14362164 +.6591749,.99569196,.09820887 +.93723291,.66532075,1.0790797 +.57988102,.21779712,.55870214 +.77866526,1.1428869,.21797393 +1.4070801,.00268674,.60134664 +.62535236,1.0398349,.70655959 +.66904686,.30328469,.43092384 +1.2193737,1.0132111,.03325464 +.54863354,.40612223,.92475787 +1.1227872,.02600779,.83189948 +.81830185,1.7705573,1.2176276 +1.1576814,.76644026,1.7040787 +.72221164,1.7474794,1.4323876 +.66709215,1.0141832,.08673839 +.72743321,.02854266,.67058315 +.94031895,.31196934,.86409207 +1.2720349,.85431151,.66880137 +.47451926,.82196606,.60557929 +.78189803,1.1357259,.44158567 +1.1679364,.97765074,1.0539748 +1.9090214,.34580596,2.3418967 +1.5145896,1.1893749,.42405532 +.64586963,1.228161,.14942572 +1.2759907,.77841462,.01340862 +1.440483,1.1302561,.4554524 +.52520107,.30736255,1.0538684 +.68890813,.36994009,.67642598 +.72070421,.76345291,.35022906 +.55899166,.78861959,.14736327 +.31915139,.92573108,.07078673 +.40306248,.66176104,.5764665 +1.0969416,.33032517,.71203769 +1.4474265,.04471573,.56138284 +1.8772466,.36618122,1.1911089 +.47150063,.26171256,.55890261 +1.0792693,2.0647339,1.180678 +1.7081376,.50157792,.47728302 +.25178342,.47978661,.36284871 +.53303579,.45762839,.05908901 +1.1399753,.29909126,.31971406 +.69259704,1.9768285,.87636162 +.97744595,1.2310339,.07930985 +.56637884,.43603025,1.5092806 +1.4688544,.62551646,1.9329858 +.52310482,.20153244,.97331337 +.65206755,.05280156,.05737723 +.98924046,1.2586913,.95661083 +.80829764,.59289797,1.5211538 +.9066605,.84551731,.51450579 +.71431437,.29676169,1.68285 +3.1376911,.30649154,.8767727 +.71526231,.33569767,1.0481192 +.92745836,.0509181,.93170755 +1.4862269,.52390399,.58814037 +1.1786664,.00605344,.6039461 +.59770466,1.7631437,1.0936021 +.69584508,1.3091676,.25011867 +.62799034,.49917374,.01800815 +.90750932,1.6354976,1.5270332 +.63197782,.4388288,.81977428 +.64471174,.01679974,.0625956 +1.6361791,.74146237,1.753593 +.30238744,1.2427435,.45298137 +.68448288,.97368738,1.709672 +.43221091,1.2191241,1.4014963 +1.2087901,.32758868,.97609435 +.88541498,1.1845361,1.0884168 +2.3676494,.41840327,.31871943 +2.9700691,.20642749,.16686301 +.6133051,.36383306,2.6034485 +.41127668,1.1903134,1.9105657 +.61359609,.17848071,.64244791 +.46126878,.48369217,.02129141 +.39745139,1.1949016,.58640372 +.87393482,.51632872,1.6531431 +1.9658449,.33986923,1.1206342 +1.3955036,.18569445,.01980114 +3.0108037,.38126986,2.4218936 +1.1234792,1.394435,.38672262 +.78026406,1.6778261,1.7472701 +.61176901,.09476369,1.467976 +1.498978,.20019217,2.424504 +1.2163131,.04167845,.31090221 +1.4802513,.66007786,.27779117 +1.0162451,1.0063419,1.5661164 +.48851654,.77587021,1.2594215 +.51467441,1.6094173,.91694147 +1.4033332,.00893666,1.047598 +.39944902,.15801405,.00992279 +1.3097669,.02570572,1.7531966 +1.2921097,.15844881,1.574396 +1.0242988,.11951664,2.0033017 +.95101362,.16160206,1.7917937 +.69129159,.35173507,.21913396 +.65974313,1.3725651,.31284213 +.64787538,.01540228,1.3686336 +1.0132751,.07357747,.0524137 +.52647672,.44432278,.76885933 +.80264745,.01925687,.94096716 +2.7935387,2.1015933,1.9454054 +.83128323,1.8944502,1.8069841 +.99330793,.17670416,.9613811 +.69411011,.43724061,.37446886 +.69484183,1.0938796,.68515204 +1.5108027,.53463736,.00685565 +.69583854,.0080659,.36322885 +1.2554889,2.0129263,1.0600911 +.2888135,.83561313,1.4521743 +.52464037,1.2711805,1.4283965 +.71442188,2.2321921,.82960726 +.61812259,.62753213,.49159859 +2.2393706,.01261771,1.9020894 +.90664407,.10976038,1.0863617 +1.7408599,.16368463,1.1138671 +.41760038,.60920457,.07513467 +.38684119,.3179231,1.5524216 +1.406735,.34216866,1.2238847 +1.5554925,.82430313,.97686918 +.72883985,2.1225505,.21713523 +.34426393,1.5117186,.35336851 +.4493669,.82168354,.99897467 +.31491168,1.2238283,1.1458669 +.98451991,1.3556026,.92618463 +2.1859891,1.702059,.22453854 +1.4468966,.44881603,.656042 +.77748219,1.637002,.90541096 +.9631776,.84566499,.06051826 +2.7620615,.37050551,1.8333164 +1.3780376,.02483247,.13473013 +.57409805,1.7131516,.36161337 +.97576509,2.432023,.10535847 +.63651241,1.9936398,.19960778 +1.033266,.11329405,.63221056 +.52111469,.05852699,1.4337365 +.38194784,1.0685639,1.2299173 +.5461234,1.6875778,1.5358807 +.83214223,.77309964,.09108367 +1.6364464,.14623469,.87104036 +.94761584,1.1781176,.37083478 +1.1794806,2.5583933,.89649376 +1.1547657,1.1399983,1.1761256 +1.5459505,.1088393,.38066184 +.57088292,1.8512132,.23320998 +.68344583,.01169273,.36435014 +1.4824199,.66043011,1.0241862 +1.1800708,.41782613,1.3972714 +.97623409,2.0857464,1.1088924 +.30702908,2.9579657,.08997645 +.58987598,.96839959,.63815997 +.98876764,1.7234982,1.1369089 +.44386683,.38373058,1.9831167 +1.7059818,.3931135,.53875354 +1.5370273,.94283678,1.1965903 +1.1505651,1.5287805,.09993868 +.65261252,.72356982,.70490967 +.78497942,1.5195623,1.122353 +1.0731786,.28739417,.55851347 +.58117844,.82578845,.71594802 +1.1514182,.83635129,.04838387 +1.640356,.61308471,1.419973 +1.6098419,1.5857762,.58628555 +.81343992,2.4542111,1.2077096 +2.5991066,.52851468,.26510209 +.83849856,.58311178,2.2189647 +1.0721738,.46360422,.53989373 +1.8254741,.14590184,.67243473 +.69243656,.5137724,.90607761 +1.4589337,.14958405,.24721466 +.43275478,1.91217,.32959606 +.64825062,.28810814,.57823288 +1.3636573,.01190749,.47235386 +.52352426,.39910056,1.0480818 +.24873178,.6724504,1.0311486 +.7082417,.67321188,.78716429 +1.1209867,1.1113956,.4614766 +.90977744,.77291674,1.2711308 +.80520215,.37820871,.52280206 +.45836798,.75726691,.29978939 +2.119928,.28276899,1.1444829 +.25428931,1.7389136,1.8553612 +.8811124,1.4407645,.41502617 +2.4169643,.44180499,.68856398 +2.6640536,.10828067,1.8661675 +.67302652,1.0250183,.28035719 +1.0506082,.03283056,.87040659 +.86115969,1.0477808,.96388795 +.4475166,1.3371418,.47512233 +.40594509,.20072151,.79253783 +.6855629,.96160958,.69414316 +.53197746,1.7758383,1.5778385 +.67465033,.38939495,1.5882548 +.90609562,.12175881,.03825603 +.79655604,.58469386,.03675833 +1.2138407,.51579317,1.0987083 +1.1777638,.99835186,.79727017 +.54013393,1.2489217,.58202172 +.67513193,.59301697,.62521485 +.78805795,.37087033,.52926828 +.86159604,1.800839,.04544283 +.39335485,.90761492,.46554633 +.57776598,1.6433473,1.3781394 +1.8350442,.80208312,.85834443 +1.6178941,1.009166,1.4393574 +.96548362,.08634478,1.356927 +.87737078,.98823592,.79459473 +1.0675338,1.4452764,.21134304 +.58305227,.72233248,.39120507 +.30277622,1.5465993,2.4510322 +.76109502,2.6140644,1.306849 +.27108088,1.7057162,.86663665 +.39208585,.75821253,1.0707496 +.5417965,.02682774,.6247181 +1.078911,1.2462052,.72560458 +1.2192755,.67606195,1.2509455 +.75762678,1.1468804,1.3823863 +1.1001229,.72708227,.05275742 +1.4263606,.86045385,.27396698 +1.0141403,1.5133104,1.3633797 +.24415969,3.1415918,.5245134 +.85028683,.29057984,2.7414778 +.4437474,1.634071,.6736587 +.82831974,.49811622,1.0998351 +.60348278,.08598594,.39276023 +.91282719,1.3011373,.9178853 +1.2819827,1.7577081,1.1041175 +.73404939,.4565636,.05838956 +.76040113,.58920636,.52053141 +1.1075264,1.1293061,.19200404 +.55054632,.91519049,1.0328867 +.64248495,.52541303,.48623829 +2.6309558,.06997318,1.2811134 +1.5048739,.65237117,.50026856 +.51459784,.20824844,.52246955 +1.654083,.21695185,.88574826 +.6561742,.66467455,1.3497118 +.65924916,.83652961,1.8304243 +.50383831,.01035559,.42296245 +.49294678,1.9445647,.43744909 +.30400889,1.7758564,1.6708859 +.76215091,1.6907993,1.2445195 +.54625722,1.4195467,1.4327666 +.62620861,.55412852,1.4631973 +.3347501,.57810349,.33249097 +.74222896,1.6172705,.1266633 +.45099691,.98283387,.54817054 +1.1946814,.58737688,1.0784751 +.72372155,.26687953,.99659593 +.86377169,.51314433,.15408729 +.84338015,1.970709,.61881528 +1.1929644,1.7756624,1.430688 +.80274767,1.5174371,.16370495 +.43572362,2.2279448,1.2636298 +.67450789,1.1655987,2.2142157 +.35358466,.82031779,.15405984 +.35886482,1.6738973,.3360616 +.69891559,1.4164243,.99266449 +.92588953,1.4922645,2.980643 +.64343859,.76528127,.8369767 +.61968926,1.3945568,1.5925383 +.29149337,1.3332911,.71541592 +1.7657506,.84550749,.38731708 +.90643751,.44066347,1.0156565 +.74616159,.34590752,.47179391 +1.3586173,.40149579,.45244128 +.23191257,2.7306109,.91036249 +1.2174894,.07636014,2.3569904 +.62317455,.29415574,.07597301 +.81983653,.06145171,1.292522 +1.1606098,.32215464,.46271081 +.81523928,.24589765,.70484902 +1.1132441,.1006368,.13442271 +.53307089,1.0132791,.71531311 +.73561579,.21705316,.44651419 +.64036863,.77535029,.94833187 +.95978445,.57331812,.08837822 +.82822445,.07117653,.37351606 +1.0873772,.18449347,.12676954 +.46844082,.65195983,.36683553 +.95615713,.94750602,1.8025891 +1.6885971,1.6446589,1.7172395 +.68369729,.59612778,.68661729 +.4254586,1.4694833,.84061499 +.5181774,.56733064,.79673154 +1.1377528,1.7576942,.08245816 +.41503931,2.1240975,.7779817 +.71276743,1.8682201,1.880869 +.53061026,.13958707,.26327976 +1.3087803,.25091046,.90314457 +.79452006,1.2415094,.33267157 +1.0781145,.35348067,1.5637959 +.80886111,.07252081,.04062126 +.87192445,1.2615668,.72759771 +.33587533,.71062472,1.3560181 +2.3071822,.05933115,.5446648 +.55665357,.40952529,.49345389 +1.1539785,.63456264,1.7252353 +1.3073918,.25193687,.56004811 +.89018877,1.3894565,.15152214 +.98548138,.49009232,.3204609 +.92409096,.7369447,1.4235094 +1.9167219,.62577107,.36076264 +1.1674933,.03081256,.68466527 +1.3003053,.6815236,.61409678 +.59848605,.4610011,.01395164 +.56880521,1.0924224,.65463167 +.76662826,1.3150643,.23654104 +1.1057677,.42233254,.32126781 +.41984372,.63798835,.5242811 +.5816772,.4012437,.35411605 +1.9087333,.29171851,.20605594 +.26845363,.96682676,.35611788 +.396603,1.4199567,.10405635 +1.0642715,.41447786,.50664116 +.78191166,.9335732,1.1245812 +1.5548552,.00550938,.34297645 +.52691442,.85512003,.67652999 +.77007165,.0880496,.9499868 +.788849,.08125472,.19348377 +.48280253,.58129187,.66410795 +1.483978,.06103914,1.1336569 +.8410125,.15287415,.46003396 +.65531184,.13929991,1.1261642 +.65197462,.09933938,.71185962 +1.038511,.05772909,.52106037 +.85322259,.6583389,.05052164 +1.2556685,.88322527,.41948151 +.38457075,.77977969,.5969995 +.4942295,2.1479019,.90034733 +1.5517515,.61558975,.20331881 +1.915669,.42711651,.77430238 +.96317014,.55327527,.48375528 +1.1772272,.5331,.39698151 +1.0052769,.72293611,.75589209 +.31672273,1.449798,.74817096 +.83250684,.45113568,.7504734 +.81763196,2.2221353,2.0638539 +.51355034,1.966807,.26108682 +.70544249,.38594361,.8323719 +.58049969,.99098958,.65676261 +.64486394,.20471004,1.4168108 +.85638588,.65809922,1.6348756 +1.2460246,.14974034,1.8599427 +.77558875,.06375199,.93268408 +1.3067032,.16962684,1.3969634 +.24610249,3.7163562,.68424981 +.90301796,1.7743651,1.1418445 +.37821705,1.9495766,.67629408 +.88898714,1.0082653,.79368137 +.50266164,.18412746,.67444193 +.66383353,1.8038754,1.2117255 +.8903209,1.2378179,.49799119 +1.0537767,.51151381,.82706502 +.69103091,.1345013,.3552259 +.60900709,1.4359886,.3792731 +.8217763,.59003001,1.3800029 +.82051424,1.0575865,.5068282 +.56022153,.02327964,1.191661 +.89745004,1.6320278,.76473808 +.59275223,.78169172,.20038095 +.8759664,.40706695,.21248746 +.44010865,.14071265,.4662772 +.98318565,.59101841,.75143476 +.28154945,.02583411,.38170448 +.28831782,2.1596583,.37492657 +1.0111253,.85188396,.34584515 +.35364645,1.7702985,.43757695 +2.3480101,.53918875,1.7056941 +1.1388167,.92411626,.28030717 +.25289442,.82167365,.02786653 +.83078996,.05124412,2.073802 +1.0131705,.63233388,1.0009814 +.83113944,1.5013647,.80937227 +.49186806,.34021635,.30065369 +1.52645,.33854451,.4992976 +.69499484,.35734011,.42235662 +1.8244644,.46802456,2.250913 +.68962537,.67856264,.77489848 +1.0067906,.1002143,.9565095 +.57008139,1.1046697,1.1212131 +2.0960904,.61868139,.07492074 +.75262028,.15232858,.26640549 +1.9457916,.56693138,.0001319 +1.2715409,.50017452,1.5990405 +1.7013087,.51667136,1.3525449 +.6313736,.2441359,1.3548627 +.38584807,.76043802,.25360902 +.67019545,.48820563,.09193021 +.7731535,2.2880494,.85166618 +1.1967949,.30042575,1.4211892 +1.0267387,1.8479873,1.7843686 +.57067258,2.497039,.48933681 +1.0945258,1.4248211,1.8445478 +1.1880034,2.5779886,.51865531 +.64129089,.73126091,.90555249 +.74262391,.30291403,1.2316514 +.60354903,.94469281,.97767639 +.68124748,.45181178,.28554981 +1.2312646,.54842336,1.402752 +.83880461,.34056498,1.612424 +.52779723,1.0253195,.3896174 +.70760687,1.1888567,.88141388 +.55881944,1.905708,.36473639 +.55676057,1.063397,.21697316 +.53119217,1.2004848,1.4485817 +.62965132,1.2066944,.53529221 +.72453044,.08700803,.03074238 +.51746006,1.8975533,1.8695335 +2.508296,.52971679,.38219335 +.52521207,2.4578292,.34122538 +.64260922,.47109575,.75992802 +.80904768,.17545157,.67240547 +.66070558,1.9970734,.6335812 +.87942213,.16657745,.36847355 +1.3825288,.00581919,2.2159113 +.95123924,.38841291,.38083305 +1.3721973,.22394591,.40003253 +.51545059,.30415101,.11644008 +1.434169,2.0818804,.57857253 +.32375464,.95130402,.21471624 +.4190883,.30990687,.03505805 +2.1833974,.18409256,.8329671 +.35695414,.30852906,.98113632 +.91061973,.64885899,.74455013 +.95684672,.263071,1.0983846 +.71757783,.72593215,1.220605 +.95925775,.05130437,.60746354 +.44033019,1.0042176,1.3823681 +.68256656,1.9402162,.76989105 +1.094444,.82500427,.6160468 +.98266884,.27739295,.27017194 +.93241676,.8285968,2.2272443 +1.2410155,.44476369,.28116476 +.95514286,1.7658976,.36094517 +.40155862,.95373491,.32395954 +.78561123,2.3539206,.35017023 +.3280834,.78980023,.6985961 +.69112979,.94516511,.72699773 +.70035023,.93354749,1.2685785 +.84843538,.78623507,1.7445972 +.61548782,.80297476,1.378123 +2.1564187,.09097009,.24215309 +.57075851,.38078689,.70957241 +.40211313,.10287168,.25963247 +.62951697,1.7654188,.27172263 +1.3073206,.11791457,.06307336 +.30026034,2.7653171,.15945314 +.97926441,1.1748922,1.4592793 +.29973042,1.4695144,.37300164 +1.099044,.8867354,.87330165 +.46641916,.93647749,.33294028 +.34268861,1.102947,.23641725 +.4522669,1.4988448,1.1371413 +1.7255483,1.0124063,.62310654 +1.1147565,1.8218409,.20438838 +.94575915,.07980934,.34773422 +.60979032,.29736533,1.6524373 +1.6295238,1.2181966,.0673337 +.66755411,.21536259,.21332999 +.62715895,.3040418,1.1094554 +.39229851,.65204308,1.0564545 +.34332948,.98034485,.19471918 +.37257944,1.4883142,.29251815 +1.1435924,.45882937,1.5374017 +.52048161,.70478956,.04385062 +.95634966,1.5636021,.28340395 +.66559598,1.090974,.64049017 +.26861017,1.9922132,.82615412 +.81730226,.11521207,.22119217 +.90121804,.37925825,.91204955 +.34435157,1.0336982,1.4069601 +.68157529,.58728522,.50276011 +.22582338,.94351775,.3414724 +.87557902,.52001239,.46462459 +1.29547,.12736967,1.7051712 +.95641584,.17259279,.98726911 +.78718626,.32321888,1.1881555 +1.0501799,.50237799,.49439808 +1.87035,1.0464399,3.6502294 +1.2422687,.00057643,.48466346 +.80499345,1.5432168,1.1453395 +.84798264,.48826661,.63060471 +.68796919,.22635972,.66817688 +1.1350823,1.1114681,1.523387 +.87868605,.02383619,.52219986 +.67567694,.52473442,.39025496 +.80726699,1.2111918,1.7909537 +.56667898,.72928427,.59037364 +1.5550561,.27404669,1.1897191 +.43401903,.66781664,.63993805 +.7428692,.61048992,1.678872 +.60420931,1.9564332,.00314182 +.71848591,.18803694,.46021006 +.99286146,.07465914,.30327728 +.83419569,.39168283,.80296672 +.90175538,.7804202,1.1212465 +.90785939,.56875821,.10905583 +.83241273,.70650716,.60344821 +2.0392868,.02837674,.20500842 +.97356433,1.8925582,1.1385825 +1.0494216,.95605198,.99396951 +.60920568,.18069852,.73544359 +.57721336,.76596839,.13694787 +.61958521,1.0618997,.49325158 +1.2734094,1.6534046,.87334049 +1.0477725,.24742443,.04724551 +.52058779,.33360585,.8737555 +.85476885,1.2530655,.36864908 +.46444448,1.5972456,.09334621 +1.3303714,.99836897,1.335067 +1.6154058,.13226755,.40056048 +.32056978,1.1209046,.0951068 +.67821517,1.431806,.13309557 +1.1522226,.04857179,1.4302721 +.3395744,1.6968339,2.311486 +.18320204,1.3289019,.0592508 +.72188153,1.0539267,1.5769564 +1.2399296,.26193714,.60197068 +1.7430735,.06627759,.77930194 +.74547359,.01044596,.89943225 +1.6310563,.44253999,.26130267 +.51633389,.58295862,.22233711 +.32381481,1.2315048,1.0418303 +.67768786,.24301387,.22899321 +.88837815,.12756246,.27813729 +.76776827,.56724497,.63097145 +.34111453,1.1262329,.89337527 +1.2617316,.1848179,1.7020223 +.69433756,.09865442,.82365207 +.95177165,.93981359,.37251891 +1.6786143,.8344637,.07036972 +.42075377,.60682853,1.0017819 +1.1661097,.13438828,.92706971 +.74496607,1.6389944,.01060576 +.23509238,1.5647595,.87397131 +1.5739433,.90223275,1.3893836 +.36192157,.37906796,1.0895296 +.80436688,.74365692,.40403336 +.6515306,.13632523,.14522617 +1.5860151,.22779242,1.7581673 +2.4578167,1.0625782,2.5006107 +.73757711,.12076793,.44108552 +1.1286623,1.3975841,1.1054347 +2.3051173,.05271431,1.5612224 +1.1253199,.17703618,.5123354 +.58553635,.89370181,.12435589 +.49030995,1.6627901,.42168299 +.44302162,.05119511,.37268295 +.29215443,.81532384,.52492612 +.7878564,.53634904,1.8628844 +1.0602122,.56004824,1.6318725 +1.3366917,.3633967,.43713967 +1.1082785,.21846614,1.6402996 +.863278,.6178733,.4703624 +.43178647,1.4202453,.2925454 +.34124749,1.5947011,.19070433 +.59975561,.95866819,2.122641 +.5738171,.00513054,1.9424178 +1.3230414,.52085315,2.1708241 +.30179636,2.1712617,.84452856 +3.5085785,.64223821,.6407037 +.4983225,2.6495246,1.1934993 +1.1841436,.98205381,.07324039 +.45127185,1.4671814,.70849088 +.9796598,.40825122,.05426616 +.49545422,.24154766,.14801989 +1.1584592,1.0544983,1.8743992 +.51403333,2.3363078,1.1761001 +.92376418,.09521745,1.2796414 +.75985062,.65394224,.63543993 +1.6982226,.78918578,.99377109 +.47900568,.60842037,.22992265 +.58172319,.84819534,.0827429 +1.0310327,.82256503,1.9438497 +.90680572,1.6279375,.50658796 +1.3487136,.16462952,.0092605 +.84934829,.92145627,.47062629 +.66576951,.54907523,.24991337 +.78773708,.53843203,1.1795437 +2.0099855,.33668574,.71646156 +.41557929,1.304855,.83478995 +.74167304,.32244183,1.3563795 +.63903366,1.1190302,.86371226 +.56861025,1.1104327,.01236755 +1.9947837,1.2406415,.20726722 +.88398015,.19213172,.73523609 +.61312231,.98629106,.96510763 +.5830617,1.8719593,.53443205 +.8797348,.13440896,.58698965 +1.2138075,1.3241719,.81594298 +.9242462,.40478497,1.8348986 +.54037757,.35222644,.23093197 +.88445691,2.673704,1.4921323 +.81565125,.60437048,.78469862 +.91402127,.66667468,.16068967 +.38811665,1.4033955,.9915936 +1.0534171,.99060085,.10006074 +.53533251,.18305195,.80751181 +.59734737,1.3746407,.50072178 +.57880543,1.1789207,.0387137 +.4799563,1.0264905,.50791741 +.76220357,2.7526834,.78708379 +1.5086528,.54083498,1.7711833 +3.0137054,1.5488337,1.2822558 +1.0217759,.02362908,1.1001703 +.51628301,.16187711,.12751342 +1.1577823,.21172295,.76154606 +.35368677,1.1097174,.94419982 +.47268996,1.2590908,.86108342 +.86474278,.26632129,.24277915 +.93524406,.11119364,.5078176 +.29706331,3.2464486,.41653539 +1.1082729,.66622129,.98235245 +.61166779,.52042873,.55055619 +1.6223927,.78829216,.97113186 +1.3154217,.28745336,.86883713 +.45547853,.5861399,.30492337 +.84520515,1.0696194,1.2484405 +.75972107,1.8763844,.61302002 +.3842719,.09537379,.70746682 +1.9356822,.37505783,1.5185673 +.49070922,.42116794,.83823937 +.99145714,.62830475,.79802518 +.51391158,.12699163,.21034558 +1.1139396,.17355676,1.4661525 +.61240002,1.3257004,.85061547 +.39855126,1.9597787,.91251036 +.85238835,2.7233094,.25152992 +.90132513,1.7370649,.47563508 +.62632664,1.1413234,1.4316302 +.56199713,.3117894,.73502955 +1.0815936,1.4107158,.10966527 +.69806581,.29097881,2.2339088 +1.3438207,.15252829,1.006245 +.56690153,.39953017,.10067909 +.56547992,1.7658202,.19155416 +.68344968,1.8219464,.27159179 +1.4035686,.06157098,.85708415 +.52307572,.19959925,.82483501 +.79419233,.19609559,.96901149 +.84250791,1.0653753,.05262471 +.45683943,1.6790844,.40448508 +.62086451,.89747749,.63029592 +1.4735731,.48673645,1.8104091 +.63480736,2.037874,.98255837 +.90316614,1.5105382,.23788273 +.34669645,1.8277242,.53312912 +.57918589,.75400989,.37941318 +1.0455758,1.1346229,1.6132767 +.80334555,.29166828,.65271267 +.76828972,.31645268,.34540614 +1.2637002,.19283063,.13343485 +.79458279,1.4161005,1.7589962 +.56796283,1.1341587,.67568954 +1.0229743,.64129447,1.5380253 +3.698682,.24707718,1.0417465 +.9227755,.16291429,1.5250129 +.68999334,.13550402,.00495775 +.7499128,.78288685,.88690563 +.87759577,.57623448,.67459176 +.83361036,.79341306,1.2317473 +.64751973,.06733138,.12594145 +.5480827,1.2743039,1.3796548 +.72535538,.25517493,.77693663 +.44165032,.55870667,.02077415 +.7611779,.47005853,.2195845 +.44908638,1.0654483,.70374993 +.84855028,1.2324767,.1981778 +.78380584,1.4384594,.80564435 +.38077349,.04198388,.80219101 +.6330877,2.0744067,1.8474038 +.72893875,1.2160752,1.2341736 +1.3851455,.25781665,1.3778962 +2.1731492,.27086821,.11940463 +1.2028446,1.1770014,.73475519 +1.3458462,.68610492,1.3680227 +.72541656,.22338721,.60973386 +1.8658365,.59150671,.63902574 +.49853192,1.0476598,.10228135 +.76466903,.14525754,.62005309 +.7286568,1.0975813,1.0431635 +1.1600613,.61909735,1.1604169 +.77922952,.06773858,.43765891 +3.1779015,.54853863,1.4063103 +1.3994719,.82367436,.24713171 +.84347076,.74980524,.37484917 +.9885705,.83564952,.79750558 +1.094166,.10613467,.30137934 +.50833965,1.080637,1.5027859 +1.507001,.24818473,.11938016 +1.3193316,.67974532,1.8947444 +.65165589,1.8885484,2.2414401 +1.8028786,.85835384,.33599743 +.76725709,.19549787,.85915953 +.79371333,1.5218807,1.0571558 +.46041925,.63749635,.07888957 +.79687606,.51840602,1.3935086 +1.0850969,.81921398,.46964643 +1.6477681,.93498898,1.019327 +.93503432,.18048629,1.2078888 +1.0784074,.01368612,.06884694 +.71226814,.58439319,1.7149301 +1.0226802,.07733398,.35767821 +.54421141,.67234584,.29522753 +.48221374,.90203244,1.3889486 +.35269315,.87503494,1.1531702 +.56679781,.13678487,.05751889 +.51538104,.06438175,.35431473 +1.1786115,.04364438,.46554648 +.76988916,.12357809,.59015744 +.40017143,.51051612,.21629624 +1.2637686,.1693691,.35523207 +.67212365,1.1824114,1.598927 +1.787884,1.0073328,1.8509792 +.85429706,.57549933,.78880127 +.87313071,.61033439,.58148274 +.28965576,1.4616683,.56513718 +.26472163,2.5653906,.30507279 +.55495753,1.4463418,1.1892643 +.92532736,.46177333,1.8062619 +1.4389244,1.5691537,2.9232531 +.68262312,1.9542251,.81574958 +.96813116,.12848186,.93177356 +.58767641,.43982681,1.3181866 +.49415994,.8428145,.58768866 +.92724634,1.2416561,1.2411851 +.98929839,.02996665,1.5787835 +1.058924,1.0675726,1.4319344 +.39079355,.48803329,.24915618 +.52865394,3.3187101,1.9698507 +.27972076,1.4192613,.34069724 +2.0898167,1.6665335,.59194681 +.61742986,.11250173,1.2695394 +1.8145875,.87831915,1.0724565 +.82537865,.14399027,.23437595 +2.5580507,.11301886,1.1563137 +.60622407,.02495952,1.0242726 +1.0510522,.55900682,.54401161 +.79483899,.72925141,1.9468267 +.64301659,.57925695,.12191245 +.75329736,2.2114742,1.2020132 +.71938976,1.3386075,.14667932 +1.5120322,.29396219,1.1469359 +1.723681,.350369,.00341944 +.34556297,1.6420458,.1868469 +.83713291,.96822048,.3171316 +.80116569,1.2897989,.59240184 +.59939783,1.616765,1.696494 +.5022148,1.4650262,1.0792238 +1.5003945,.57061559,.14319934 +.9210346,.41391827,.17045568 +.40728601,.98763058,.92975341 +.38200975,.44343392,1.1609753 +.62771765,.58562524,.39617322 +1.0833413,.26034688,.13060607 +.21546179,1.3771465,.08054496 +.56947635,1.1339584,1.2903218 +.87841072,.41533904,.29547381 +1.2459924,.48635118,.11121413 +1.0465451,.22069822,.15817575 +.98029864,1.3658066,1.5883975 +2.4294353,.10945585,.49298926 +.99028071,.06339361,.8755753 +1.4697184,.15732214,.25839515 +2.0080241,1.1899321,.85524685 +1.1714706,.86756766,.08852005 +1.9506391,3.3279187,.21823936 +1.0519317,.05032597,.22755646 +1.9033566,.27659145,1.6624021 +1.4304386,.60038051,.5378714 +.87267791,1.7256796,.91641606 +.67221001,.33195419,.6874997 +.56827303,.51177403,.29337421 +.61994859,.20286937,1.1073874 +.92711843,.55903581,1.6754399 +.67493611,.3000298,1.2689314 +.7251425,1.0010494,.57227383 +.91168957,.71200079,1.1250697 +1.097685,1.1231359,.17201639 +.62592759,.09499514,.1126922 +.56168258,1.7996535,.5900848 +.90965192,.22610221,.05975048 +.77900053,.32076432,.52214969 +.47511778,.47219389,.65007132 +.6490888,.30218621,2.076051 +.92006102,.88005949,.19505658 +.60906787,.10593218,.20936706 +1.1668918,.64167217,.84113948 +.63043016,.6407228,.47705542 +1.6863642,.50591553,1.4984866 +2.0911876,.18586619,.77134123 +1.6860627,.92133176,1.4161757 +.5419759,.04587364,.24510969 +.48325787,.85396966,.72330307 +.97495594,.86015476,2.2119086 +.40198974,.25624204,1.9783503 +1.2932071,1.2848317,.8896058 +.62712251,.2565875,1.0654328 +.47830039,1.3405646,.68934772 +.90183812,2.4572446,.968554 +.94789886,1.0815228,.89766284 +.74776316,.59711331,1.3770685 +.46664825,.91682581,.05297144 +2.1273956,.57061687,.7913005 +.84264327,1.3163596,.55277323 +1.786301,.09330254,1.1651955 +1.1827467,.3820706,.79339962 +.71421183,.67305901,.05974999 +1.545118,.1481252,3.7643939 +1.2669712,1.4170284,1.0696889 +1.2312735,.57276764,.02668456 +1.2909269,1.8980685,.16122854 +.5947659,1.1116788,.27097028 +.81599362,.21684817,.54613919 +.45976658,1.2449445,1.578032 +1.1478206,1.0007944,.50199637 +.84141573,1.046691,.54475845 +.98665227,.3195075,1.6240104 +.93376813,.3758811,1.1554622 +.52467407,.84582578,.96437427 +.63173045,1.2573573,.49332201 +.80741936,1.3215764,1.3565537 +.51427889,.72902709,.26179099 +2.1741592,1.3153854,1.5106472 +.91735876,1.1785004,.95266954 +.81610569,1.0071868,.77464827 +.4495255,.81021256,1.000369 +1.3336409,1.0474497,.41280833 +.22012453,1.2226252,1.2363053 +.57215852,1.5692364,1.9297912 +.77434302,.03390481,1.2752771 +1.0399351,3.4961237,.50837427 +.66783654,.39458931,.89423716 +1.9482736,.04083091,1.0078269 +2.6525279,.14540941,1.1855976 +.46354753,.56064645,1.5392056 +.58752941,.37306884,.48767765 +1.5727003,.91604521,.43960598 +.57415533,.27005578,.59356095 +1.1024508,.05914817,1.4414522 +1.2084988,.46427256,1.0268797 +.93827446,.44465654,.2503626 +.57324939,.72983067,.26296444 +4.1074601,.09570053,1.9662907 +1.4839621,.86708821,.66712164 +1.296767,.08143433,1.4901282 +1.1847731,.50788748,1.1193813 +1.1037664,.41381997,1.6427144 +1.1031934,.78872047,.18888939 +5.2937859,.00062067,2.383483 +1.2690925,.73195569,1.9329431 +.99924168,.15603714,.44384891 +.60000547,1.2269548,.0091658 +.60574891,.70757338,1.729087 +.70081782,.51896735,.75604559 +1.7220869,1.5152374,.23983644 +1.0390615,1.5338018,.21694527 +.56274385,.2848936,.95192475 +1.8212665,.41815254,.85963678 +1.2824202,.0605674,.97460241 +1.235245,1.5427953,.39226794 +.87156795,.72170282,.82696581 +.83384448,1.5055432,.11577349 +2.0659212,.80726625,.28565878 +.69945458,2.5076921,1.4308453 +.84984842,.412905,1.5173468 +.6576174,1.1309689,.40498487 +.68493301,1.0917795,1.1292878 +.46897558,.83899306,.42519669 +.74455696,.95140278,.73172081 +1.0772947,.99212358,.09530725 +.22978046,1.1224835,1.2509675 +.79191512,2.4853208,1.5613866 +.55338681,1.1659694,1.8516979 +1.5900642,.88118047,.26219386 +.95273794,1.0267149,1.3422637 +1.0214479,.84814434,.54153906 +.7501017,2.2074709,1.8086128 +.48829187,.39046416,.27331467 +.54933282,2.7798373,1.0034273 +1.1744691,.44605865,1.3289163 +.94509264,.17763773,1.6165896 +.25748729,1.5912177,1.2809662 +1.2456598,1.2401956,1.481741 +1.0261527,.03888703,.15454377 +1.468585,.45022924,1.3529683 +.36886464,.22432018,1.6527716 +2.9642655,.86858364,.89769853 +1.2080447,.07295123,1.8467069 +.80899252,1.4334703,1.8571556 +.75755347,1.7384248,2.0631602 +.8839973,.50052618,1.7733583 +.7193455,.91553211,.20901232 +.52973511,.71478207,.10435724 +.89271649,1.4342838,.73799548 +.97274871,.13746097,.94423369 +.81612165,.37382974,1.2346673 +.44249329,.09860919,.39585328 +1.4302578,.10035116,1.102343 +.56669169,1.434264,.9414116 +.83610537,.00343914,.13575713 +.40929155,1.1284588,.10858486 +.85789015,1.5515425,1.3022215 +.49764897,.29482196,.41805554 +.9805539,1.9469844,.18661206 +1.2117855,.96671631,.62565906 +.71919866,1.9375889,1.3414128 +.43345841,.74179987,2.3576745 +.79768742,2.2539381,.29910183 +.78444536,.0569455,1.0856682 +.78035701,.1994302,.91159126 +.36925969,1.3880274,1.0899399 +1.5525173,.16471901,.00668795 +1.4171993,1.1690147,2.7232829 +1.7995804,1.1622547,1.4532552 +2.1682503,.49112513,1.50865 +1.3819604,.26232031,.73586803 +.75486749,2.8347712,.09206699 +.82447926,1.2230865,.17819 +.59934882,.93572584,1.5429935 +1.3359149,.19806037,1.159334 +.59323523,.87931713,1.5187613 +.38692679,1.8360492,.50899597 +.64631557,.52115115,.11487488 +2.2431971,.06372587,.64949678 +.85193598,.08911596,.06091346 +1.6883793,2.6028006,.02490605 +2.0249451,.33335423,.34914606 +.49690921,2.8191514,.26259131 +.90656675,.8115889,.78818975 +.56475116,.45061177,1.5067853 +1.901131,.46214687,1.1959821 +.50648554,.51788544,1.2647077 +1.116204,1.2365641,1.0006916 +.77438539,.51732141,1.1417086 +.6448646,.52357124,.60827435 +.61128263,1.120359,.21726727 +1.1271149,.69826852,1.2150374 +1.3757083,.7994353,1.4130074 +1.0742968,.95159688,1.0462208 +.60003855,.69583125,.53078637 +1.3082286,.02795807,.95841572 +.63631028,.83871865,.65459017 +.58796915,.22496195,2.1648972 +.37596632,.21655705,.25366852 +.87916496,1.0746595,1.7534094 +.59637523,.82807738,1.1409547 +.86101065,1.9944121,.41411662 +1.0181256,1.4149331,.44199951 +.65961456,.6398217,.26849124 +1.1526127,1.3602385,.22912295 +1.2431957,.02936314,.02147996 +.5922831,.90060805,.64811763 +.68786262,1.0323553,.02429192 +.88154386,1.1996114,.39943843 +.67801548,.14901656,.7460817 +2.3378835,.78628843,.03004696 +1.2049146,1.0953815,.78304275 +.54622219,.52830705,1.0934585 +1.7348698,.04984277,.09249026 +1.5204501,.06883973,.75710067 +.54029012,1.1957863,.39029629 +.88391414,1.4979764,.22466434 +.72145355,.04025706,.20912754 +1.0976731,1.2547146,.15943529 +1.4134276,.45886951,.74445624 +1.1499668,.64320799,1.2602838 +.91575072,1.4711346,.39514342 +.41408889,1.2582378,.90848392 +.8032346,1.697734,.49760027 +.56941176,1.5722727,1.8352363 +1.2446257,.79599785,.00456142 +.36435346,.17657655,.43351054 +.6562519,1.0422128,.29795829 +1.7160836,1.6736442,1.2730485 +1.1704063,1.081397,1.7787724 +.55770413,1.0644482,.39739245 +.82706576,.48103217,.57087302 +.92025323,.82937085,.10195007 +.32877422,1.6595536,.47795956 +.58393498,.5764314,.4287689 +.89651891,1.1975262,.0093744 +1.4087048,.0198082,.46299322 +1.7271826,.32544053,1.0975564 +.46555987,1.3813452,1.3856775 +1.475549,1.4678934,1.7136715 +.67803532,2.2775314,.3949105 +1.2249949,.0226527,.31692739 +1.3583525,.16836413,.96236383 +1.2337121,.02178226,.09351609 +1.0687104,.56002003,1.141184 +.88764448,.02427446,.2152693 +1.2671923,.10210439,2.3775582 +.50865536,1.2605454,1.1317804 +.73926105,.35624511,.14050539 +.20778116,.35196533,.51390291 +.6231306,.99031929,1.1543224 +1.0720368,.36582855,1.6164095 +.47289127,.21686091,.01480683 +3.2875012,.4243632,.11353148 +.33534904,1.051564,.02195934 +.69852726,.99998893,.04653557 +.31498594,1.0986922,.55760218 +.95500418,.11128919,.34490715 +.88751789,1.2839757,2.2087844 +1.4832925,.08722828,.92788595 +.62619527,.09389479,1.0946121 +1.26599,1.304735,1.3723211 +1.4529236,.73372855,1.7709391 +1.0803785,.60094602,1.7144146 +.52503451,1.00901,.9782161 +.53894323,.63712994,.17501952 +.92958587,1.3564978,1.3881614 +1.7558708,.62599338,.95154126 +.91494682,.5186946,.85907032 +1.1519263,.46565686,2.3104093 +1.5485942,.25808458,1.5751733 +.65440323,.42745421,.98917763 +.87800311,1.9945531,.30573016 +.84551571,.485695,.14006905 +.7536421,1.1960284,.23644494 +.92910231,1.3142485,.5416675 +1.9897221,1.034802,1.3806833 +1.9874908,.81549464,.52166776 +.99324761,.42970128,.81170321 +.69495023,.9826748,.54536775 +.70577906,.32732451,.57283224 +.79600954,.55242124,.32932187 +1.2284426,.48104685,.76244328 +1.5043035,1.2255196,.46509244 +.97683994,.64178385,.04473616 +.60531001,.11678244,.55374664 +.61205547,.28888875,.53948246 +1.0328839,.49339823,.3025489 +.61339596,.79119929,.61862465 +.72269796,1.0995023,.50398962 +1.5513804,.04477903,1.1666327 +1.1484327,1.4268913,.7511989 +.69266973,.23822061,.40065322 +.43384235,.12391547,.21191611 +.86181123,.55520994,1.095343 +.38657498,.53153687,.10411614 +1.5998742,.85237783,1.0636835 +.52478516,2.7659902,.1005913 +.90544111,.41808826,.12372913 +.90311295,.18852072,1.2775356 +1.1280616,.04218938,.02324999 +.64733915,.24515823,1.0088524 +.60551401,.28244284,.25559448 +.69996655,2.7280774,1.2834788 +.51914038,.45713064,.30777609 +1.4943617,.04912,.49135961 +2.6009483,.19723788,.29462412 +1.3951901,.58301257,.076511 +.77268072,1.0726735,.66372061 +.62419106,.78533927,.85779325 +2.2409775,.54437987,1.6409547 +.63246253,1.2139375,.05678201 +.69834597,1.667185,1.5110901 +.63607008,.73685309,.86733634 +.62826286,1.8868945,1.0091795 +.45397286,.71039677,.13456077 +.64740241,1.1434826,.55281274 +.9549038,.67202945,.45484444 +.89888099,.54591775,.45472894 +.7218947,1.3051151,1.876731 +1.1733204,.37845274,.31516188 +1.0000855,.71782034,.76596856 +1.2535653,.41667603,.63382264 +.98820952,.6759027,.69301701 +.82214144,1.8240924,.84374418 +1.3930681,.21890882,.18481906 +.43900794,1.4221055,.47740778 +.52241064,1.7073072,.72721129 +1.0675839,.12529573,.15707606 +2.7422681,.7507303,2.3880456 +.83561925,.87808498,.38234277 +1.6322846,.98141433,1.6095158 +1.1169696,.4557741,1.6414292 +.27436475,1.6044757,.43809491 +.67796649,.80061054,.35585854 +.79999574,.15767654,.08280298 +1.20798,1.6293572,1.4684576 +.78139989,2.0045514,1.646916 +.49327168,1.7356464,.29677834 +.74540004,.64897428,.27381852 +.60604672,.51806672,1.2763236 +.63220435,.46914091,1.6408235 +.52015668,.42839737,1.0996729 +1.1088797,.42512275,1.0960992 +3.3431871,.79908672,1.7574568 +1.3414536,.4513536,.26904653 +2.4348905,1.1328221,.83463853 +.66103622,.12603379,.75409096 +1.1806016,.74977532,1.0452195 +.41046807,1.0948945,.1616528 +.94066832,1.9235133,.09957133 +1.3847587,1.2568369,1.9533778 +.69899924,1.1436208,.24826038 +1.1487811,1.6830248,1.8208558 +1.452436,.41208364,1.0011391 +2.4330998,.22673598,.74437224 +.82639902,1.0036633,.18522006 +1.1368791,.95516226,.02783349 +.77978521,1.334469,1.3024281 +.60403311,1.0696058,.70772129 +.42297739,.23000118,.53538657 +.90286024,1.3223431,.80594406 +.36684262,1.1563869,1.2823482 +.38872805,.83260929,1.0333585 +.41100704,.68606236,.42990764 +.53156339,1.0329871,.32959302 +.31737697,3.0648307,1.0210704 +.65967073,1.4515032,.79264107 +.74363602,1.3234245,.53774749 +.75287342,.30523359,1.0480726 +.83090525,.10680109,.05269172 +1.7258158,.42818775,.10732903 +1.0686704,.00764738,1.4885954 +.6852894,.15593904,.18526319 +.58380761,1.6334056,1.2766748 +.65525612,.60880881,.48374617 +.62788432,.06412401,.72334935 +1.3856585,.00959683,1.1812758 +2.2033095,.3764512,.60373817 +.63344124,1.4368035,1.9450389 +1.3606529,.00330537,.93908158 +.70625752,.58808361,.30615822 +1.02622,.84930301,2.1536017 +.53703598,.79938391,.33316372 +1.6526636,.14211911,1.6388472 +.53001795,.95871533,.29478227 +.55510478,.27295275,.13781054 +.42721528,1.8210597,.20845382 +1.191132,.10256888,.24071128 +.6388624,.75189189,.30566648 +.25110748,1.0625379,.3709595 +.80590755,.45379701,1.577063 +.47817618,.25653956,.47249181 +.40331465,1.1053216,.51781833 +.62577496,.37438486,1.4618586 +1.7082726,.21365289,1.2208346 +.66728322,1.2230744,.42920191 +.55291202,.60808129,.3220481 +.62006398,.25085265,.09428648 +1.0642409,.09587883,.60390965 +.3834435,.5229522,.42882702 +.98587931,.29854024,.9542967 +.88710723,.87106162,.62538251 +.15274678,3.2496892,.00840203 +1.3988452,.59921774,1.2115666 +.59647296,1.5263181,.22761921 +.56821031,1.9223257,.35095822 +1.3312769,1.2612708,.65620878 +1.0103525,.99150809,.1920621 +1.4555286,1.0199814,.15748328 +.43506632,1.9098794,.41568963 +.92011096,.31119968,.25676163 +.32791084,.69362751,.21538523 +1.6574824,.09959967,1.5142048 +.72882832,.68766504,.98220849 +.30880878,1.6289028,.0883926 +.84431761,.63916174,.1983979 +.78940342,.11791719,1.4600421 +1.1754787,.614023,.8767286 +2.6720654,.08035548,.5541238 +.89046956,.88989471,.52560636 +.81507264,.93410046,.41465093 +1.37227,.00992463,1.6705409 +.44498689,.74405015,1.2975166 +1.0292935,.22352832,.05805577 +.65339065,1.4972458,.79896111 +.7532077,.28797242,.04328426 +.28608869,3.4685093,.58406669 +.61598535,1.7300725,1.0915151 +1.0029577,.2512542,.61577182 +.83533961,1.6497034,.22521464 +.30627421,.59073821,1.3876529 +.20546066,1.1732519,.6475078 +.56533151,1.871579,1.6389485 +1.1329146,2.0465438,.71353727 +1.2043579,.94729023,.59733612 +.74461204,.19996634,.34876438 +1.7509487,.60145435,.68965444 +.55345683,.03667904,.1208657 +.43707592,1.0904453,.04641653 +.2404108,1.4987314,.0370137 +1.7109143,1.8912484,.44964816 +2.113726,.65302905,.82993861 +1.1875906,.30811476,.18746499 +1.8696541,.04531634,2.6889863 +.87395163,.08682255,.40915031 +.72177635,1.4664844,.10391538 +1.4905576,.74921065,.22880408 +.66639652,.80163733,.52383553 +.80494555,.34226465,.82561896 +.62241167,.08764277,.042611 +.88747004,.53712455,.34074197 +1.0774565,.43692566,.73153353 +1.5127079,.19225405,1.5643813 +1.1705262,1.3545172,.40314371 +1.6749106,.64750848,1.1694763 +1.5255141,.65711505,.76494344 +1.1148371,.54784065,1.3949324 +1.180817,.99744778,.25095781 +.68188014,.57017943,1.2138759 +1.5221374,.07565366,.69670498 +.95989147,.83194342,.40058859 +.48555521,1.5155558,1.2948859 +.37706996,1.3668022,1.276228 +.5241732,.80830457,2.3292969 +.38689969,.53859563,.05137318 +1.97785,.50748815,.33101288 +.86119424,1.0442176,1.3888769 +1.0341546,.21865017,.43970775 +.35991846,.17531703,.21145121 +.43424565,1.270354,1.1088202 +1.3454723,.35382413,.57007121 +1.1489952,.76793293,1.8934582 +.53175493,1.2597701,2.302436 +.42476951,.6148813,.39417396 +.64160481,.24285405,1.006807 +.42325509,1.3896161,.46741456 +1.3288649,.6791418,.35819037 +1.7796925,.69333888,.92016852 +.4307488,.19109075,.56735897 +.78058578,1.2690488,.70897846 +1.4644201,.13142845,.07972586 +.77678294,1.3125337,1.0323953 +.42307836,.79438468,1.6334334 +.78403419,.18935332,.38866613 +1.9963091,1.212833,1.0329848 +1.1731049,1.5116544,.58421825 +1.4534055,.8470056,.25752252 +.76836193,.61306635,.18595197 +.60272963,.56929364,1.2581783 +.57823672,.59595285,.40607763 +.65833172,.27082787,.00041944 +1.3549753,1.5500083,.03214567 +.87612115,1.5353071,.48461161 +.79742717,2.7597359,1.3130972 +.4593025,.66388144,.72526814 +.688197,.52860882,.58941975 +1.1387729,.13495959,.61238774 +1.2849178,1.4507154,.83135525 +.87357206,.1911325,.74878241 +1.1736969,.05784474,1.5594785 +.78213129,.48375648,.39101099 +1.0868843,.41785289,.2080371 +2.284796,.30815642,1.1453666 +.31017743,1.2599307,.68975906 +.93251705,.24638801,.918654 +.41190081,1.3177849,.64990701 +1.045526,.12826196,.5172904 +2.0640812,.4250843,.56155567 +.59208187,.38355878,.13414793 +.9359357,1.8169296,2.4045689 +1.0930056,1.3296864,1.7892725 +1.4337568,.41695428,1.7965437 +.53047925,.06891652,.39885938 +.74139836,.03619079,.07214683 +1.0236707,.74477092,1.7973108 +.82098134,.08516704,.70485627 +.88390137,1.1709756,1.7602286 +.99439193,.33497709,.35127674 +.75539717,.51635986,.96292044 +.67532607,.19285828,.26179657 +.60696083,.00851439,.3844747 +2.1906453,.63000663,.46617479 +.8590994,.86073238,.18496872 +1.0590154,.29248031,.63446612 +.96239041,.05340728,.46721371 +.43996931,.38116864,.32263741 +.97892616,2.1806708,1.2669936 +.49936864,.98010994,.16310538 +2.4746928,.36783275,.76582692 +1.08668,.78787523,.38587701 +1.8122476,1.5300511,.60600147 +1.1821434,.76179889,.13130139 +.8053629,.02457304,.02798797 +.97457283,.19746395,1.5980908 +1.3003592,1.1271754,.71357178 +.77686682,.29350169,.23616402 +1.932847,.04072306,1.5925384 +.87282871,1.3226823,1.2921429 +1.1481834,.66338973,1.2803765 +1.1124545,1.545843,.05183484 +.25272627,.80030121,.28599714 +.3449566,.1929034,1.0647311 +.74373233,1.086003,.70689921 +.33420678,.95908881,1.1607027 +.87407532,1.5036233,1.6888891 +.62150389,.10180932,.70578979 +.50573242,2.2623962,.86855124 +1.2331574,1.099731,.25602633 +.91879006,1.3979151,.34990641 +1.0060589,.07122868,2.0555299 +2.1106996,.42351972,.69183557 +.81815913,.6152294,.10541422 +.49367356,2.4731444,1.0755261 +.41811778,1.0723082,.32613822 +1.3097044,1.4960713,.73377053 +.84967545,.38442709,1.1000752 +1.1381608,.66024563,.33179513 +1.0422762,.94222262,.10324154 +.63302117,1.1437396,2.3970321 +.74521907,.52890436,.34487625 +1.8557676,1.2984726,.70853592 +.87079021,.14839972,.50706333 +1.2546913,.32236429,.59540827 +.62351051,.11706843,1.1958687 +.65811115,.13038244,.71520952 +1.2887125,.70138444,.44671545 +.73461517,.58986365,.56580514 +.80233068,1.3535062,1.2320245 +1.511553,1.3871134,1.4405751 +2.0701882,.39724283,.19939954 +.55264646,1.2717213,.12264019 +.66412829,.39212202,1.5682746 +2.0366759,.33422769,.22156463 +.20482097,2.3735559,.48959333 +1.751484,.49219095,1.4710163 +.93876552,1.2037959,.86863906 +.62448011,2.5003086,.41232644 +.78039706,.87303271,.91734974 +.94624657,.12310544,1.4789148 +.54403759,.54056639,1.0678794 +1.7378135,.37041229,.1329185 +1.2910338,.2131687,.68959918 +1.3461443,2.0666213,.603784 +1.276504,.30815482,.6036426 +.96568472,1.3919063,.01657842 +.41688605,3.111589,1.0039012 +.66565301,.14163693,.25310861 +.76927016,.30722138,1.1034274 +.87351004,.79631447,.56826936 +1.8561632,1.3712494,.75592162 +.45865716,.53153732,1.3357851 +1.2113457,1.74264,.6237258 +2.4059103,.06315394,.2463039 +.64462493,1.5904848,.03334317 +1.1736276,.24215817,.64078246 +.92852304,.98814712,1.3111085 +.53174894,.22017061,.66233781 +1.0163669,1.9176929,.34651539 +1.598703,3.0314315,.6269411 +.41798292,1.000268,.86872351 +1.1775791,1.1247115,1.3680476 +.43349689,.13901417,.44783736 +.60510116,.04362722,.62136242 +.66073142,1.385544,1.5442257 +.94432441,.21731131,1.1394399 +.43494372,1.1566264,1.0611739 +.96039301,.49945697,.41010645 +1.4497041,.48300714,.44270815 +.75310535,.72711652,.35710005 +.75674519,.90398286,.63034697 +.82249972,.8548754,.86111402 +.59663352,.21125835,.18794078 +.53394971,.62454061,.64180813 +1.4232464,.91811241,.25368302 +1.2014892,.62435058,.7913029 +1.4818934,1.8238365,.29644297 +1.0291486,.82842616,.01337088 +2.3993371,.49965725,1.6510978 +.96584885,1.2482494,.6304713 +1.5951654,.06432495,1.9112032 +.35893778,.72633409,.58579074 +1.0225442,.00687065,.14765384 +1.4889737,.46247672,.16321644 +.83538301,.71642031,.05261124 +2.0808562,2.0320316,1.2024758 +.53697962,1.2013748,.20104523 +.88935258,.7545384,1.4180838 +1.315407,.66772792,1.0847478 +1.3020443,2.0023983,1.0497116 +.8295312,.30014029,1.0990197 +.68570978,1.3501318,.77626746 +.56006528,.1584136,.21150832 +1.2841789,.42511502,.25106098 +.50841446,1.479519,1.2954068 +.79849282,.31896974,1.3179978 +.52334185,.25593986,.05944482 +.9272863,1.459308,2.1428513 +.56743439,.4733457,.91484845 +1.3299967,.83218568,.2337069 +1.5848416,1.2551735,.29222634 +2.0786918,.16843119,.27740374 +.56719723,.88145609,1.9195833 +.71484712,.43978315,.89615151 +.95110095,1.104626,.88936757 +.78023702,1.1219615,.1057307 +1.5710697,1.5118203,.07961547 +1.1005255,.48007989,.30045878 +2.2369971,.50562905,2.2337259 +.35792822,1.3605267,.25647323 +.82512032,.13947486,1.5155314 +.6332554,.29396186,.11434355 +1.1421116,.11693207,.4374214 +1.9268466,.98432608,1.0701871 +.88291392,.79308146,.53963271 +1.3522537,.37357584,.65160082 +.74446216,.55771987,.32641769 +.9746851,2.5581687,1.4855992 +.35941353,.94581325,.97934059 +2.1187065,1.0973598,2.0296035 +.85957968,.79593684,1.3290052 +1.3707419,1.4071562,1.8924002 +.79174036,.77204749,1.0007964 +.72833585,1.192857,.19675059 +.77401314,1.2968651,.8391816 +.86828386,1.1076417,.31974353 +1.5851893,.11944681,.13455481 +.53618387,2.0660035,1.235565 +.79555251,.2462921,.10390787 +.26619327,.86374045,.38106526 +.81662218,.19151821,.92193317 +1.4288039,.37829478,1.2124569 +3.3491501,.1651447,1.5012298 +1.1979246,1.9451705,.46346869 +.35819645,.85005074,.1379037 +1.4757494,.24075027,.08707512 +.44854759,1.77867,1.393757 +1.2278932,.97916996,.55179955 +1.451157,.02346054,.56888637 +.64222535,.85132701,1.7784532 +.78133351,.13910885,.14674386 +.63830614,1.0275142,2.2090251 +1.949977,2.7376774,.52836465 +.86143744,1.560393,.92350423 +.80713087,.7917853,.43877606 +.40508094,.73795471,.75638591 +1.0894778,1.1190988,2.4733285 +1.1020459,.56148926,1.2657084 +2.5329915,1.7549707,.51731981 +.82613653,1.0046992,.24334361 +.81767607,1.021623,1.3992394 +1.4952829,.61680929,1.2400345 +1.0012771,1.5352089,.70705391 +.78848963,.11809337,.25391225 +1.1199135,.84882308,.00075761 +.43662978,2.0054699,1.8576462 +1.8939157,.18870409,.66768226 +.76911019,.08001199,.35756488 +1.6606265,.79322744,.10709211 +.37938836,.89610792,1.7855959 +1.4984777,.71175862,1.3152431 +.62663029,.04834246,.37358346 +1.8703661,1.0187444,.9040434 +2.032519,1.4757542,1.7602629 +.87394411,1.4075671,2.4184037 +1.4095095,.98829487,.29897017 +.86277128,.44177213,.44092824 +.47351499,1.8708144,.63702904 +2.0903448,1.750653,1.2974381 +1.8216614,1.0851115,.82940594 +.30029587,.24887814,.06944153 +2.722738,.12198085,.79409727 +.39037244,.88854625,.62457789 +.39454677,.09441166,.13920057 +.57669408,1.1729657,.40412922 +.75020556,1.0719278,1.2174531 +.81808051,1.473228,1.9104187 +2.2325197,.39940714,2.0458124 +1.0964639,.80780174,.39095708 +.51716396,2.0397612,1.0695205 +.39655101,.59396934,.39778943 +1.018954,.6615434,.57072871 +1.144148,.78979415,.28385748 +.53181291,.18743641,1.3491063 +.48885117,.75778583,.4956728 +1.4405207,.21633645,2.271479 +.86765903,1.1899947,1.1226779 +.81077598,.63871491,.35045462 +1.2595958,.30806559,1.028441 +.89447852,1.4289778,.34135718 +.80476546,.12504786,.60303093 +.89110143,.48184567,.46608267 +.61245863,1.5978038,.78189112 +1.1542459,.60421183,.358456 +.50490938,.99383255,.04686322 +.50445798,.51774629,.29611661 +2.0284966,.6548245,.3082185 +.44127983,1.2624066,1.8682048 +.58188411,.30213325,.39620255 +1.0032333,.93902743,.39749514 +1.35632,.24438673,.6753961 +.77234228,1.2015443,.66579452 +.38098616,.91007284,.31098774 +.63316641,1.4257298,.22700649 +.77845041,.80917753,.49700536 +1.2339534,.2524507,.41593714 +.41173456,.6792154,1.3572294 +1.0225122,.38562924,1.990865 +1.5132906,.87644623,1.1487552 +1.0560405,.12324414,.84831368 +.57935874,.56351948,.06275627 +.30703016,2.0486786,.68397663 +.71305313,.04920143,1.0591628 +1.1350411,1.27892,.9932844 +.41983169,.29500528,1.3910968 +.58240215,1.23946,.31731077 +.71417601,3.0228077,1.1059642 +.93216601,1.1656622,1.6625487 +.43910619,1.9338025,.63286156 +.86093652,.24416467,.55735999 +1.6527451,.37338802,.97431574 +.4794781,1.0158472,.60142167 +2.32712,.8827112,.56205425 +.71072377,1.1876836,.29245911 +.33471244,1.2226479,.10025467 +1.420746,.29362119,2.2297027 +.49104215,.20416343,1.5844677 +.92113724,1.1699459,.13813502 +.70861962,1.2795625,.07575047 +.68281927,1.2208496,.06279807 +.98386869,.06049286,.02554891 +.68175632,1.0685573,1.6643718 +.64804673,.47260079,.45045453 +.53947657,.14603664,.55035395 +.51773589,1.671656,1.9692283 +1.6841643,.12185644,.56615428 +1.5102798,.02590061,2.8774446 +.66916671,.24079868,.16544443 +.98641947,.08685581,1.4015826 +.43341883,.21898462,.53112248 +.29601059,.82312439,1.4967103 +1.1517183,.20733403,.47138844 +1.5163074,.49555802,.82823515 +1.8309968,.11379855,1.2358553 +.99348306,.00298411,.96206612 +1.1449235,.76631928,.4051059 +1.173236,.10946222,.15800715 +1.7271844,1.1808001,1.5521889 +1.0569225,1.5106174,.80946215 +.84501933,.84938509,.12634493 +.79906996,.33692548,.41114123 +.7191224,1.1577592,.34292744 +.65058675,.21890089,1.2058911 +2.0499221,1.5559571,1.2053669 +1.830455,.41058911,1.6862141 +1.2011479,.15602653,.12630228 +.64832391,.43547178,.10598575 +1.0765895,.96511763,1.1115688 +.61022303,.00277252,.02660187 +.68050571,.60921227,2.2937178 +1.3863746,1.2167066,1.2977561 +1.3658069,2.5562864,.28115515 +.41779103,.50276683,.09400144 +.55917726,.62466746,1.8705924 +.57105825,.56506908,1.2927289 +1.6851998,.91633616,.78137462 +1.4269802,.72455186,.45356392 +1.2542049,.17724025,1.2981954 +.78261817,3.6027683,1.1913024 +.46703153,.97457517,1.333896 +1.3391696,.67059684,.25070076 +1.5437835,.29530963,.99887971 +1.0471413,.11380099,.2022584 +.77826005,.12742791,.68110685 +.43897511,.02536988,.23296861 +.50603782,.55803588,.29868197 +1.1171318,.35259067,1.0207155 +.84394278,1.1373945,.79875247 +.73252689,.11108391,.47718569 +.89118608,.09462573,.05059182 +.35807318,1.003394,1.0054661 +1.0390076,.60932577,.27922984 +.67495519,1.0077939,.71981703 +.68556081,1.335663,1.5880321 +.34965605,.63846513,.43380854 +.47256314,1.189845,.64609642 +2.860155,.21983484,.80786285 +.27071828,.15489338,.31257827 +.61319214,.69757333,.49857506 +1.2360944,.64112553,.55493228 +.9058525,.31868129,.32459882 +.82337242,.19095759,2.1162063 +1.1074906,1.2299928,.59965309 +.77701709,.90805707,.46043908 +.83344672,1.8843504,1.8834016 +.70557712,1.6185449,.24615853 +.2027122,.34035874,1.4076576 +.55064705,.58489565,2.1305737 +1.3773764,.26125038,.41605239 +.73262946,.01507395,.52986266 +.41980087,2.9637788,1.6128218 +1.4650529,.93964152,1.91097 +.95963387,.51844656,.22757681 +.27094997,1.2764645,.55862417 +.68479157,1.7527082,1.662766 +1.0357888,.0754663,.29405731 +1.1068106,.4245171,.41417436 +.68503752,1.0854828,1.9182457 +2.0760847,.21586306,.72394653 +.50362246,1.5097928,.12634896 +.88403916,.28863822,.94115568 +.62733492,1.9893745,.07548765 +.41637844,1.1343726,.66088716 +1.2392533,.10437078,.40418566 +1.2608582,.73521879,1.4655299 +.83162567,.18342237,.3585311 +.24445889,2.5793509,.21639856 +.61585362,.84848828,.81934408 +.47346635,.65755879,.42079285 +.74153858,.58478234,.46335693 +1.0960336,1.571453,.87142369 +.72221706,1.3158498,1.168738 +.75122166,.12187807,2.4443176 +.62500575,1.896704,.25724021 +1.6038247,1.3216291,2.9122197 +.60766916,2.4531489,1.005269 +.50327082,1.5947127,.56795542 +1.020242,3.5384084,.12878161 +.95803542,1.1741646,.48660206 +1.5690141,.91522675,1.588693 +.63241743,1.0496646,1.8884596 +1.2213734,.04857353,.58123629 +1.5320457,.20104826,.12158432 +1.0486388,.83854664,.07226749 +.79768339,1.3549721,1.2833789 +.84544171,.58913552,1.3084286 +.69547731,.9858683,.28598082 +.34806621,.58628108,1.0053574 +1.329393,.03007412,1.1233235 +.79785678,1.2648845,.8428409 +.75645909,.29213895,.56652493 +3.2972951,.56221248,.85857433 +.40031378,.81282951,.15986665 +1.9615221,.55012428,1.077331 +.79990717,.27067979,1.74082 +.45064954,1.02062,1.4930172 +.6544664,.39019053,.55933808 +.66861131,1.5701937,.3214915 +.80168129,1.6719752,1.6746014 +1.256835,1.3058255,.21320157 +.6728437,1.0942854,.35958631 +1.3378071,1.1618013,2.4451646 +.8067909,.37025085,2.1687164 +.86087483,.62045408,.96361775 +3.6380375,.34014093,1.81578 +.62698512,.42956997,.3657188 +1.8831151,.26577091,2.8515559 +1.3813113,.135454,.39254522 +.59025932,1.0363784,1.5621066 +.71303181,.36563361,.45973366 +.61305233,.04619311,.3210833 +.99127111,.76952897,2.6539461 +.47675925,2.1574775,.94683786 +.9257998,2.2321332,.0983587 +.5877063,1.6386034,.21781464 +1.3392107,.1927467,1.0958519 +.85610363,.35003942,1.3154168 +3.011256,.50775655,1.4158738 +.75248005,.03559309,.20370951 +1.2922519,.35231377,.32034502 +1.9555445,1.328537,.54732443 +2.072036,.94817836,.36933384 +1.0447335,.08610455,.97022383 +.66866396,.78110059,1.5317917 +2.0723839,.03941223,1.0487217 +.8650179,.62656765,.96612419 +1.7791237,.3808383,.77804222 +.57232327,.03293031,.50822503 +1.2136075,.58662242,.73177268 +2.0105336,.04440257,1.4575826 +1.1374846,.5557985,.77513558 +.68537019,.36970521,.89437993 +.71976583,.12390228,.73275429 +.92199169,.33610161,.3762692 +1.5203274,.26829208,2.2170828 +1.2877252,.54938091,.75339056 +.7190436,1.4604649,1.6953467 +1.1881131,.62842695,2.0699223 +.68210458,.67123347,1.6024738 +1.3125456,.15144212,1.3987232 +.95014392,.4721854,.34844094 +.97903676,.523149,.40671261 +.71672875,.47282902,.7631572 +.28082604,1.3263812,.07392879 +1.2886582,.4692841,1.234446 +.85432448,.61621326,1.0319474 +.97735727,.87456775,.31130245 +.60130953,.46127701,1.8396725 +.58991397,.14510114,.07385787 +1.3067862,.31198356,.47700188 +.84925063,.85670727,.48627346 +1.0101019,.08122759,1.3144652 +1.5589626,.55587632,.46636621 +1.0827051,1.2627393,.74635799 +.67817241,1.1119488,.73368447 +.82516574,1.5808609,1.5048769 +.90981552,.55908739,.49208478 +.80020854,1.1952484,1.4501879 +.62653565,1.2037438,2.4939611 +.51466052,1.3716549,.06775853 +1.0297518,.11349917,1.8881219 +1.3880368,1.3066166,1.9468799 +1.5102672,.01313056,1.9973501 +.4854047,.98645926,.12486434 +.3669144,.45935009,1.1210539 +.54581591,.27379353,.50243432 +1.0250893,.18863476,.06400754 +.34811126,.17312222,.05654557 +1.0198997,.25228169,.17996071 +.59447261,.83489906,.80395899 +1.0284271,.36234226,.63670201 +.59383631,1.3739657,.17055883 +1.7230442,.69609128,.79786595 +1.3934357,1.3306012,2.5151109 +.68733446,.24984225,.57455263 +.8102799,.54036168,1.3961581 +.47512176,.59097752,.38018696 +1.5063661,.01022239,.54732901 +1.048204,.61932063,1.7012611 +.664135,.2125422,1.3799711 +1.0601601,.26888417,1.4935162 +.98033031,.00227086,.26373925 +.50977384,1.4885943,1.2911647 +.83925579,.60526151,.75971161 +.38727233,1.3666433,.18252019 +1.0908152,1.2388566,.08470714 +1.1127091,.51503578,.22374665 +1.0897615,.01653429,.59301125 +1.5973172,.69272245,1.5530242 +.75340512,1.4518561,.33208944 +2.9032134,.19792874,.42589904 +1.2440569,.89260994,1.0117427 +.81673912,.95046491,1.9416862 +.59606792,1.2446778,.15737009 +.7888164,1.5459092,.62990366 +1.4820201,.01408672,1.2629237 +1.2419807,.2496859,.09231419 +1.2257528,.66707212,.38552728 +.74612633,.44249101,.35025223 +1.2310248,1.0098712,.38516867 +.68592726,.04654393,1.1900248 +.36910705,.49538114,1.4733028 +1.5731075,.3783348,.16173231 +.54702133,2.2606936,1.5198394 +.82888341,.30265908,1.0697934 +.8176352,.23513371,.57991953 +1.1601575,.71424002,1.0744703 +.56656867,1.3947659,1.8351586 +.93628416,1.5031513,1.0685544 +.67988911,.50010388,.40427364 +1.3158555,.45904206,.53908054 +1.5597753,.45710051,.6186336 +.64065942,.70836205,.08459075 +1.8355514,.15979558,1.4391227 +1.0864086,.99187657,.84719709 +.36399778,.5269296,.45071985 +1.6402798,.3179296,.00903172 +.54144878,1.0363637,.23024301 +1.2377686,.07023625,.88341146 +1.4266899,1.7131121,1.6138555 +1.4703192,.22102658,2.6767891 +.55420693,1.2615502,.08254038 +.65698805,.92909479,.66264043 +1.0673108,.40647656,1.2736646 +.822554,1.0474176,2.0423497 +.83577852,.26649412,.90728786 +.58879764,.86524346,.17376088 +.77058725,.89318084,.25083352 +.58709674,1.5996831,.37757584 +.7931375,1.4890213,.02175528 +2.3149057,.05883018,.9829915 +1.7575777,.95658883,.73225795 +.65434841,.19607219,.10450854 +1.7726789,.30624937,2.7586439 +1.5445518,1.9065874,.86119862 +.39194736,1.4332452,1.9613281 +.64816623,.05713623,1.3261349 +1.9291581,.0789211,.94486622 +.97197716,.72910161,.04208343 +2.0354359,1.6261703,1.6803156 +.35634266,1.7866666,1.7063305 +.44647176,.28226245,.34121976 +.49764534,1.0486012,.45107702 +.5648395,.74011477,.53317752 +1.2969658,.05430353,1.4582652 +.50627342,.52779835,.79086656 +.77409412,.2491613,.0595327 +.50307567,1.1172966,.11264853 +.63751605,.42762927,1.2769783 +.88444083,1.3013657,1.0549623 +1.4395935,1.1348719,.6808413 +.89062323,.42468349,.65917709 +.72441959,.11854098,.9998198 +2.5137391,.3864395,.80222381 +.70584688,.71713378,.00875679 +.45659533,.54453316,.42604093 +.59374044,1.0112032,.22095903 +.5418419,.53659066,.82266444 +.91405133,.30579963,.44097017 +.23195276,1.4219846,.12477326 +.84221586,1.8107594,1.0319441 +.4876829,.22610677,.82609202 +1.8430088,.54169028,1.0488444 +.94916294,.39739424,1.569473 +.66151771,.53558575,1.91597 +.37900758,.71103198,.0068149 +.5169371,.92572729,.56715387 +.82326026,.61670244,.36003857 +.5629003,.99535527,.67928543 +1.5268452,.3974041,.73477537 +1.1573337,.53915851,1.5666163 +.44611242,.47706479,.54376579 +.93965417,.54858019,1.2277719 +.34892576,.97000891,.18955992 +.53533426,.68619401,.01663312 +.97502034,.17692702,.63951977 +1.98473,.35092259,1.9697886 +.26395051,3.120188,.56261216 +2.5213005,.63946232,1.5497452 +1.2236949,1.7035447,.49092709 +.66515587,.25105896,.2003702 +1.1722175,.18821868,.23827667 +.6279815,1.1719411,.41618862 +.66595206,.47429111,.86505164 +.91022007,.00376309,.30143111 +.36773053,1.8082687,.55931351 +.55415196,1.4768018,.26140497 +.75497571,.08453438,.57603489 +.24436308,.08454495,1.4743257 +1.068429,.39137044,.80730342 +.22825819,2.0045729,.71622598 +.66825933,2.0612526,.92372636 +.70018907,.04167637,.59514277 +1.0968982,.66917739,.05300466 +1.201614,1.1311676,.13711208 +.89799882,1.0402821,1.0674403 +.60784244,.0767515,2.1685798 +.51335739,1.392744,2.4668662 +1.4859077,.01494371,.9663734 +1.2116007,1.8299923,.56958269 +.74337908,1.3206302,.21596767 +1.0936545,.35000058,1.1970176 +.54130436,.48631819,1.2237258 +.48584895,.86329098,.94214108 +1.5566538,.03924041,.67910632 +.35816494,.82623656,1.0404943 +.86752601,.69292644,1.5088288 +.48826297,1.0188536,1.1787966 +1.6986611,.00778247,.47214401 +.99406639,1.5948535,.63680562 +.43120285,1.9510645,.04850276 +2.9394242,.44442228,.21213955 +1.2534021,.85502442,2.5079392 +.58405335,.97687576,1.027571 +1.4136361,.05280492,.3001784 +.50446685,1.0012984,.75956078 +2.0589275,.40936877,1.5589509 +.52675134,.08823164,.18038201 +.84957798,.92960952,.11424217 +.7750332,.2595473,.04737035 +.95703691,.73590531,1.4456736 +.60481823,1.2551338,2.1798495 +1.940342,.81593849,1.4625626 +.5026768,.10146775,.86871536 +1.0609623,.88238303,.23413053 +.62810925,.32314501,1.3005493 +.48562135,2.2054576,.89587589 +1.7436308,1.5138065,1.0787865 +.36912857,1.253424,.20668915 +.95650024,.45029451,1.7696224 +.88770704,1.6000432,1.5451581 +.27246572,1.4083255,.82719191 +.46791865,.18564505,.62446669 +1.7607959,.06447852,.60329058 +1.7445793,1.198827,.15457633 +.87481132,.76286055,.32583093 +1.4642323,.21318395,1.0427555 +.65039572,1.3468823,.93483726 +.7004117,.04839358,1.4946359 +.88337907,1.0578752,1.7024616 +.79620886,.71585732,.7049118 +.64448184,1.5907438,.69791794 +.87176507,.56764007,1.1528988 +.47876633,.64026407,.92228296 +.98588644,1.5097654,.87786422 +.55733149,.08679057,.20982147 +1.0653865,.63789321,1.875437 +.85628054,.44166514,.70752941 +.66340496,2.7324997,.21043908 +1.0066862,.59090939,.51613248 +.69822742,.861542,1.0305541 +1.3425977,.59642981,.65323953 +.83854031,.09549994,.31957227 +1.2501082,.74145642,1.3055558 +1.7866509,.08571514,.65019536 +.92940275,.34330691,1.2223947 +.35122232,.07969544,.33583097 +.49915043,.91894093,.55333421 +1.0080755,.5503408,1.4983035 +1.3648578,.094729,.07087453 +1.0786697,.10056676,.93304787 +1.7756264,.07878033,.32184355 +.7820221,.10496233,1.974914 +1.0566491,.45200861,.59068048 +.76947707,1.5657879,2.6902052 +1.0307198,.847173,.90392094 +.51456674,.73384932,.06385537 +.40390574,.59534839,.0074933 +1.2954193,.69144352,1.6849185 +1.0562071,.83558446,1.1831711 +2.0635074,.05150261,2.1350168 +.53196065,.48148281,.64640073 +.88722082,.01820145,1.2054086 +.5363434,1.2887311,.92780865 +.22567979,1.5816967,1.2624195 +.95731785,.86730508,.39222607 +.58778307,.42315007,1.9302844 +1.0822366,.70743525,.49929194 +1.5562119,.5347366,.86824841 +.99314275,.08141036,1.6110516 +.64373376,.94258747,1.2762199 +.58148213,1.2400424,.07155007 +.53213176,.94343358,2.0497796 +.69518853,.50403131,1.611893 +.36701391,1.3042372,.65942818 +.7484169,1.6176893,.51197501 +.60375163,.74588121,.10299018 +.65296064,.40771933,.71038632 +.60937449,1.3345781,1.4720434 +1.1358241,.07229332,2.1360759 +.88143054,1.144103,.56834148 +.52011907,.02927351,.11774541 +.60567984,1.0535672,.30073095 +.71827738,.2241662,.84163583 +1.3020352,.60560896,.54323919 +.67606139,1.27352,1.7282164 +.66432668,.99466005,.28897373 +.93374035,1.5350044,.77418288 +2.0482335,.08967627,1.5828007 +.62467798,1.6280676,1.4644373 +2.0418183,.21299408,1.1867063 +1.4688887,.79979242,1.6733666 +.696424,1.0294542,.82757596 +.88830046,.19105851,1.5210553 +.5140782,.38143324,.67243549 +.92100277,2.0675736,.25863432 +.99388714,2.0604307,.75663736 +1.7653786,.10125714,.60079861 +1.0653456,.87778213,.32883088 +.55051823,1.2630497,.71228798 +1.0693116,.12148403,1.2373446 +.9115027,.93431227,2.9321928 +.66902351,.64418231,.87934766 +.79013027,.00078729,.81187726 +.72232173,1.2694714,.44167198 +.42840406,.93125104,.45812144 +.97417868,.19917405,2.5940637 +1.3167909,1.5475663,.38780872 +2.3445324,.02496742,.21232982 +1.8811647,.13161486,.17574686 +1.0528392,1.1257191,.89307741 +.45829346,.77910928,.67514231 +.82705439,1.7935787,.77789628 +.91701621,.35510339,.15200505 +.65460052,1.352481,.21428443 +.88591703,1.5408417,1.022438 +.59023624,1.8110102,.15698585 +.62275319,1.6857184,.64622634 +.78368419,1.8454998,.70271428 +.56091963,.24933211,1.240561 +.75878781,1.7894181,.38890141 +.52055897,.20054217,.93752577 +1.9793298,.47587986,.05970595 +.70055211,1.2449791,.31489 +.72977173,.61500017,.31902336 +.63791363,.36017983,.47814891 +.50212723,.27521328,.23371461 +.47034141,.15446641,.50003279 +.47115312,.62481509,.72567301 +.7505599,.95631432,.57293146 +.83563034,1.9626688,1.0728365 +.9718883,1.2233948,.41429668 +.56962258,1.8791619,.21988698 +3.4069237,.58797128,.06414246 +.69142992,1.7328551,2.8358515 +.55575509,.15506681,.43524556 +.57973866,.3196882,1.934347 +1.1918096,.50571144,.25239482 +1.5050098,.00229124,.15136709 +.76749114,.79247332,2.0297033 +.83542569,1.2159559,.30772296 +.59715927,.19512707,1.1901913 +.37293518,.06539284,.33348462 +.72132924,.42892819,1.2375282 +.67229635,.74198474,.19106263 +2.0196881,.98787232,.44842769 +1.0187017,.21665846,.55355563 +.4003043,.73521489,1.6633138 +.58613857,.62123279,.02455876 +1.0228878,.56335843,.96380382 +.98546108,.0682875,.24549958 +.76107642,.97273206,.58060091 +1.2302543,2.6282937,.27272109 +.78792891,.46068253,1.0255688 +.8950877,.16304439,.2715107 +.80729411,.70669584,1.2365974 +1.0118296,.68410698,1.600582 +.88667989,1.4567473,.93974738 +.42951974,1.0672925,.02032128 +1.5739979,.94223287,1.293422 +.97039008,.31809424,1.0653499 +.52521609,.58019398,1.7980929 +.39539621,.34080777,1.4191287 +.86414428,.79066659,.39610817 +.60379569,.61147666,1.9166882 +.49196993,1.0338584,.33018162 +.68613605,.63104418,.19891225 +1.6564794,1.1926036,1.0303178 +1.1382232,1.1332895,1.0008625 +.36550223,.44830129,.33855505 +1.224784,.51512818,.00455027 +.80604646,1.6899373,.28664707 +.32342051,1.8412957,.92796246 +.42290937,.60747767,1.3107157 +.70738537,.33064811,.44867966 +.58628115,1.5032799,.8740251 +.47622807,1.3694589,.78148216 +.58678371,.36339052,1.4561116 +1.4444091,.63865954,.34712881 +1.007107,1.0544636,.13757942 +.86624373,.42084982,.98378623 +.67801558,1.7360667,.98867815 +.82958744,1.3620046,1.069652 +.75955032,.29233506,1.0661944 +.90391242,.50634705,.57371009 +.67431915,.32959412,.28260779 +.71633165,.77690006,.57480439 +1.9267639,.03879741,1.307277 +.9078139,.68378893,1.4531031 +.51022936,.04206884,.15443972 +.92594655,1.028807,1.7720866 +1.6577473,.45042737,.58091765 +1.0793338,.69454214,1.6487501 +.64105322,1.0273229,1.0067145 +.65125225,1.0045108,1.5621753 +1.7208992,.53579457,1.534227 +.82505905,1.4825018,1.285393 +.61905613,1.0389039,.78861704 +.7737114,1.1847922,.22847066 +.85291092,.4334247,1.2785177 +.6792101,1.2387105,1.3153627 +.54488218,1.127391,.78040404 +1.3193205,.12057473,.62851432 +.51320445,.65950651,.56226116 +1.7858867,.16665023,1.1904428 +.40958688,.88357827,.23289535 +1.2729015,.3846333,1.4389343 +.80036248,.94816775,1.6960817 +1.8549288,1.1775874,1.833209 +.33764158,1.1229604,.38198793 +.45655707,1.2195776,.31812099 +1.2681807,.77683184,.52115455 +.9053633,1.1285585,1.3391021 +.9814572,.58649401,.44948733 +.58534515,1.1148733,.32407437 +.83805117,.01411756,1.2839695 +1.9456976,.32881048,.4884362 +1.1277699,.44453552,.16917798 +.67127409,1.083608,2.8880172 +2.2834431,.05777445,.71824335 +1.8747078,.06378061,.91680413 +.99357156,.04208248,.56529366 +1.0458132,.71135473,.75328395 +.5295776,1.0687294,.54126644 +1.469491,.98346791,.0684596 +1.6262592,.15723041,2.7124097 +.61747326,.86122842,1.0230346 +1.5754041,.45193324,.39366667 +1.8362457,.68729985,.87913298 +.69072661,.45628152,1.744087 +.47149941,.41450928,.28148245 +.9403795,1.0344709,.81658067 +.44416507,.37691037,2.211068 +1.1390276,.00226365,1.2421881 +.64912109,.37161671,.36744233 +.71611848,.01964228,.00801887 +.78977787,.02939994,.30386374 +.58722855,.41113608,.94018455 +1.3943716,.77401217,1.1462675 +1.2044522,.72156112,.33582168 +.52345543,.43979686,1.7694894 +.4840477,1.221761,1.2187347 +.90946049,1.048837,1.6596111 +.30515242,1.0506886,.59817268 +.86787962,.06164412,.15889454 +.96751719,1.9150714,.94064262 +1.1227459,.16486234,2.2186157 +.78848372,1.1509496,1.7983923 +1.2299528,1.0818732,.9039585 +1.1028635,.3894591,.44228859 +1.0052622,.94170636,.27532494 +.43873277,.6228643,.22733864 +.78344199,.16165197,.78691963 +1.598104,.30186912,.27638201 +.24359975,.40526432,1.2620641 +.86223258,.05739694,.75228368 +.26715028,1.4230215,.7708665 +1.6040857,.9618501,.8456442 +1.2921364,1.1123443,.49875826 +1.0598244,.7733425,.87567365 +.23655592,1.5821403,.43890308 +.62911259,.37901697,.49962065 +1.459403,.33606756,.86922409 +.77575165,1.2404741,1.1703926 +.82450036,.49952901,.68616495 +1.0329177,1.055233,.57868322 +.92720481,1.7034833,1.1085259 +.62038157,1.5254483,.61498051 +.71783921,1.269575,.0797011 +1.3316803,.81728306,.29010447 +.4834448,1.0742654,.30546644 +.64113665,.54930742,.60525977 +.76350411,.87479889,1.9190688 +.75981413,1.1971473,.27434061 +.39485096,1.7941382,.23205953 +1.3684459,.04903115,.03962947 +.92004905,.46275051,.23329262 +.62964541,.58059967,1.0468288 +.61757861,1.0060242,.73825852 +1.9198893,.13647956,.27575614 +1.4984188,.20699437,.53673807 +.57409562,2.1985294,1.883981 +.96642803,1.1618532,.32001991 +.92669558,1.5177373,1.0862102 +.3310918,.8271787,.5471827 +.85072241,.775414,1.0755375 +.80654095,.20556464,.59208053 +.93036535,.19828319,.05534181 +.66327559,.79827274,.16482305 +.50950429,1.119152,.43768485 +1.4471495,1.4866974,1.4117121 +1.178149,.23004793,.59531922 +.36253609,.6638743,.33865414 +.30900157,.51537624,.18876062 +.60959248,.70811306,.53426233 +.81733383,.2541687,.48135319 +1.1260078,.62483262,2.1998546 +1.7904137,.47413428,.78601795 +.55086074,.3908552,.86510984 +2.0763241,.57536504,1.1950945 +.3408746,2.4754206,.06358544 +1.182241,.09934394,.26800456 +.80076293,.14042316,1.3390137 +.62861066,1.0893554,.74720682 +1.7051697,.00947346,.76145396 +.3325968,.85000621,.0047087 +1.5541838,.80450032,.62185923 +.58634524,.70958,1.4266841 +.79534676,1.6368838,.43609865 +.49078293,2.0676664,.73829071 +.35533961,.29691968,.5628279 +.61445066,.55389951,.87534923 +.79179974,1.0798099,.00801101 +.48076625,.30926837,.57766706 +1.929725,.88861791,.93578945 +.74310349,1.1584928,.05125311 +1.005341,.82694848,.05409511 +1.2546766,.11134713,.71187934 +1.8195832,.72901928,.82159137 +.41485624,.64800705,.43825221 +.83104004,1.8799344,1.4103131 +.34226385,.13124788,.81181869 +.79625958,.40343207,.43614645 +.84062398,.00641361,.29944795 +.67046298,.7409926,.38299473 +.76966298,.03740412,.08046314 +1.3718431,.36730094,1.2447362 +.39668698,.45569234,.6290225 +1.4478444,.1612669,.90872107 +.86841138,1.5475393,.26685141 +.95049906,2.2353264,1.0188154 +.49798983,.73910759,.11184484 +.75043745,1.4399448,.91105125 +.74680395,1.8092722,.37842824 +.65734492,.73219927,.56008259 +1.0369117,.21454689,2.8793477 +.53585764,.11269936,1.4659905 +1.749991,.32408493,1.8496383 +1.8594366,.20078314,1.1529558 +.71646233,.85893288,1.1617698 +1.2358258,.43667898,.10126268 +1.2395208,3.3742657,.65364431 +1.16275,.3828679,.45227718 +.55855029,2.7200099,.36046623 +.36722113,1.3427827,.4562729 +.56176312,1.5073691,.03854089 +.73947231,.96080457,1.9713425 +.35553026,1.0833231,.08009513 +.46149351,1.3854139,.8179916 +2.7041342,1.689585,.94658421 +.80978237,1.0484488,.22202631 +.46148001,1.7318572,.17756315 +2.3758374,1.8727278,.34656185 +1.1616683,1.8937734,1.0182231 +.88553057,.65297021,.47756399 +1.788224,.00443,2.2619203 +.63533544,.32091135,.02617795 +.40756204,1.1805866,1.4344716 +.65872973,.09920448,.3823025 +1.0481967,.06290496,.49506089 +1.3473812,1.5322288,.23285919 +.58884624,1.1787467,.70597086 +.24559182,.93733121,1.0477966 +.90873852,.35652328,.88852552 +.74532674,2.1283872,.17534907 +.55298424,.18487124,1.120972 +1.4860279,1.1008955,2.3695482 +.42194452,.46324881,.37077317 +1.4303686,.9828818,.24001793 +.78705789,.7037009,.10231134 +.34368306,.9351082,1.8556588 +.65897767,1.6363513,.27092446 +.47942171,.43689083,1.027346 +.74706112,1.5372383,.23179013 +.66351337,2.4481041,.08881345 +.8862047,.53011252,.54722099 +1.2556769,.54290155,1.0240661 +.58929942,.86354087,.22874562 +1.0216906,.06585798,.20324495 +.7392068,.82673331,.75255855 +.42233481,.13147766,.34890343 +1.0125135,1.2081367,.88563498 +.82627088,.16696732,.65954499 +1.4193048,.94103512,.34899261 +1.170404,1.9384555,.74014521 +.87372152,.11980608,.13509583 +.73565888,1.2831849,1.1399369 +.70954031,1.0787363,1.5233007 +.86263121,.57643678,.08513889 +.96394303,.87057396,.08159676 +.53941814,.73178976,.85002852 +1.4236889,.23533234,.7872978 +1.268951,.07997893,1.578276 +.81543784,1.5318693,1.0199814 +2.9329088,.01682396,.83976684 +1.0479069,.51194971,1.2929189 +.46068035,.22850447,.42945472 +.82565526,.97508971,.14020283 +1.150851,.88195177,1.0483947 +.31361806,1.3522202,.20823538 +1.0778154,.13814231,.8960352 +.71230329,.3263309,.77099559 +.70147187,1.0866877,1.1184273 +1.2023733,1.1616098,1.0555658 +.93274952,1.1212835,.96712955 +.99443108,.39285469,.10329852 +.81122017,.55062322,.83961584 +.39533806,1.1677749,1.1355721 +1.5723996,.28485821,.15057894 +.88255515,.83117571,1.2083352 +.22835067,.33629925,.0882464 +1.9437876,.08772717,.29846702 +.66428251,.0331925,.24323721 +.46994414,.00981375,.15671102 +1.0056277,.52747453,.35730569 +1.1040252,.74268401,.44812005 +1.0978149,.04865948,2.0481387 +1.2202202,.87341884,.3183164 +1.2741913,1.9488047,.19096098 +1.4562798,1.4611596,1.2687782 +1.6208108,.87608117,1.3400669 +.2158181,2.7550746,.69578347 +.7133362,.90426174,.24648707 +.7116576,.21451072,.84187671 +1.1660383,.68109859,2.2277559 +1.4873077,1.5279818,2.330564 +.49336658,.09141487,.5447532 +.37877791,.10412415,.3657548 +1.1161835,1.4031288,1.7447909 +.5698184,1.9659218,1.0879529 +.84595651,.74553275,1.867317 +1.7412746,.34883727,.98303905 +.38025464,1.1588223,.65494546 +1.4062248,.1515469,.70920102 +.36556047,.09797518,.2481517 +.77420082,.65858066,1.1513291 +1.1851319,.45470402,.56942653 +.82683558,.71485005,1.1007515 +.40298021,.81370659,1.9736737 +.67229806,.65021211,1.9644585 +1.088811,1.1271001,.14243884 +.91075494,.7956432,.69806081 +2.0694452,.49605834,1.1857324 +.65678381,.9062056,.24377595 +1.1652405,2.0440832,1.3092156 +.8876609,.27041874,1.2487489 +2.0878504,.58809815,1.6983181 +.9672343,1.4113367,.1476558 +.47109513,1.0174238,.50713623 +1.7443741,.40651122,.78219038 +.84268657,1.8332687,1.1260952 +.30217383,.63175072,1.6379898 +1.3148013,.11107686,1.4617203 +2.3798998,1.1379046,.69646132 +1.2342001,.04217445,1.1246963 +.45679373,.66534012,1.6789538 +.61668667,.06082284,.51604133 +.77772095,.18233891,1.4669234 +.38267931,.47683439,.042248 +.82053155,1.0581467,.84519887 +1.2109144,.00183556,1.6891346 +.72642622,.93586769,.33316296 +.47129728,1.2006681,.06280491 +1.2069229,.11388987,.53938168 +1.2281388,1.1503985,1.8115594 +.55625162,.01537746,.23551781 +1.5214932,1.403797,.6383624 +.33379397,2.4630969,1.1872199 +1.9160679,.9095147,.12687709 +.7747291,.46451382,1.2107463 +.4441976,.1705739,1.9476557 +1.4027694,1.8255365,.93264151 +.66954163,.13419395,.82145392 +.55968243,1.4611927,.09457531 +.58883055,.34615609,.28478854 +1.0075961,.80325224,1.5762879 +1.1324813,.4408306,.76623136 +.3971986,.5436516,.20256876 +.88911539,1.0344339,2.0957494 +.51416025,.64557362,1.214335 +1.0315437,.62038327,.55715647 +.79706268,.19016711,.47282549 +1.0946883,.48345847,2.3072034 +.93132644,1.5161817,1.1423882 +1.8620647,.89727793,1.0095937 +4.2514966,.24972581,1.3821803 +.40872441,.42915969,.92420601 +.54224614,.07933594,.20538198 +.94623577,1.1058403,1.5829575 +.90815367,.78593123,.31363657 +.49931679,.87708847,.31763783 +.86093053,.03374021,.58762682 +.61758329,.02610407,.72009105 +.55378781,2.0483317,.8102269 +.5587175,.14107577,1.1661567 +.47528691,1.1040854,.82555968 +.36349723,.85035905,.53232367 +1.5444309,1.9763833,.18298941 +.68344253,.49108439,.00787101 +.84873259,.33538647,.68030439 +.92333377,.82386372,.61236905 +.93633165,.21133775,.33819938 +.47188262,.30152812,.71439803 +1.0934711,.91835458,2.1737553 +.56508772,.37572955,.92726384 +.75442022,.68631959,1.5743906 +1.196935,1.1986044,.78675737 +2.2652372,.63902165,.22473774 +.69978218,.67173745,.68055348 +1.65672,1.1470989,2.0139287 +1.8092749,.33187992,.9226792 +1.0605953,1.0327865,.39702543 +1.0248819,.08041959,.43653882 +.28693511,.04940658,1.102803 +.45756144,1.5599237,.05053173 +1.2762801,2.0400893,.83122845 +1.6753127,1.3779274,.4550641 +.63128208,1.0884598,.64143994 +.78574028,1.0159009,.79330785 +.5019598,.34109781,.36314384 +.74576886,1.3135898,.6825163 +.59201174,.94352273,.52317306 +.7424886,1.5780968,.70461449 +.53890126,.72630291,.16203072 +1.2962474,1.3184667,1.9045588 +.67900178,.97194907,.26546355 +2.1096753,.3061128,1.5442255 +.70568819,.0664522,2.2012806 +1.6255472,.49667556,.48027413 +.77252316,.97938845,.43248817 +.88509609,.11403981,1.3473646 +.38147808,.67651443,.09923087 +.49938817,.25716469,.76592719 +1.584282,.99971834,.49769467 +.45076556,1.5412105,1.6285101 +1.0088042,1.5183436,.51013754 +.25278156,.38542501,.26736243 +.45101141,.23879098,1.4248955 +.29885,1.4674139,1.2341312 +1.134118,.51033106,.78746686 +.41156046,.89699444,.04258411 +.33966143,.28486758,.50418333 +.92458117,.84017635,.2694375 +1.1568125,.06116898,.91982495 +.93919523,.6967858,.09130064 +.45326296,.31668118,.25171339 +1.1588417,.34726593,1.28042 +1.0122385,.52094025,.959462 +1.4193014,.59810381,1.8811035 +1.4263091,.00813592,.59057656 +1.3026964,.51724274,1.4861003 +1.3084425,.67840236,1.3982762 +.81249301,.06080568,.30054976 +2.4293838,.57982354,.52260136 +.65322487,1.1806214,1.435957 +1.4534135,1.0620212,1.4306227 +1.4304534,.45144644,.5487009 +.30481317,.34698458,.00073768 +.25699999,.72862882,.36472396 +.59156167,.28733218,.17051157 +.66787331,.22312072,.21745928 +.95554616,.25209307,1.5296223 +.5933899,.61928612,.32863383 +.60491564,.5131077,.17075153 +.44935079,1.2711224,.0369848 +.34567811,1.3632393,.43002189 +.93606321,.32411974,.51634377 +.50208063,.14213095,.49285836 +1.2333472,.74349241,2.1221634 +1.0652743,.09728823,.31398623 +.70975261,.44540635,2.1342039 +.78172337,.08520383,1.0567699 +.97197996,.25263187,.22072878 +.23543946,.75815414,.61539111 +.32584849,.74535583,.02556689 +1.4499259,.48247317,1.8651577 +1.03697,.02623855,1.7344366 +.25729567,.68178175,.13578278 +.79063568,.37944494,.33987802 +1.0391516,1.1175881,.06702534 +.50428659,1.3630664,.47993523 +.58197718,1.9425103,.00641299 +.96365012,.5755307,.83547217 +1.7867447,.21978608,1.3268114 +.61434597,.19116207,.34621941 +.8884805,2.2668877,.60687392 +.5778285,.29388718,.92820838 +.48164735,.74623096,.27036429 +.41954764,.56676892,1.9282016 +1.0217403,.0097891,.29975166 +1.2512688,1.4371677,1.4046293 +.72652872,.25699923,1.0099126 +1.1489382,.34542872,.28141762 +1.0316094,1.0348743,.29493058 +.25853153,.04966486,1.2949823 +.25814369,.95122627,.89541847 +.68045528,.6653619,1.0333934 +.87703915,1.3084502,1.2102629 +1.2890366,1.3447548,1.5827814 +1.4220306,.15605834,.4831405 +.92609575,.51676736,.0190107 +.57951282,.31573163,1.5399811 +1.1192719,.24491327,.46220447 +.88436128,.67397409,.89388206 +.98463568,.62530343,.6247191 +.82574719,.50133754,1.0034368 +.40739953,.1896408,1.2660707 +1.1218234,.63689133,.32450292 +1.2425053,1.0832831,.98851593 +.39237456,.83540825,.42651189 +1.6423465,.10989439,.65962765 +.89251887,.51038348,1.8427915 +.42900972,2.0041961,1.5395004 +.97589949,.14780039,.63493158 +1.5524476,.33022003,.55009581 +.5040096,1.4190765,.73878584 +2.4771355,.14509106,2.1614869 +1.1531032,.5902969,.09629835 +1.0474375,2.0513236,1.9101308 +1.5412121,.00769504,2.3150564 +1.4538805,.18215725,.96368489 +.95741557,.04199733,1.5132461 +1.2502062,.04480667,1.7428467 +.7546351,.13986842,.06715894 +1.8123226,.9414088,.49864388 +.98420502,2.5029556,.18688927 +.68748261,2.0413254,.71558616 +.87765635,1.2221315,.98985832 +.85775586,1.3398676,.43112694 +1.5812913,.85023866,.03005894 +2.1975286,1.0536471,.69357479 +1.6242635,.31361399,.36099165 +1.0041989,.57382612,.79646853 +.90919529,.26960195,.53265513 +.80974898,.54138227,.41194234 +.83329259,2.1853314,1.4382865 +.69708154,.20091534,.99154922 +.50549266,.99700134,.75742178 +.5248457,1.1124544,.50865522 +.71717308,1.0978589,.02253357 +.57548238,1.3667036,.37832501 +.62869744,2.181521,.24914899 +3.0974017,.33489449,1.7989703 +.45582373,.01393257,1.0957383 +.49154696,1.3596049,.78930237 +1.0059624,1.2898471,1.3414343 +1.6136949,.08467057,.36185318 +.93570921,.33816982,1.2097383 +1.3914336,.32828664,1.6038981 +1.0974306,1.0874415,.75652111 +.98886002,1.0810864,1.7766572 +.65482435,.44592409,.0427286 +.6042002,.38964938,.2986051 +.629065,.37757748,.030661 +.61673162,1.2849954,.04857719 +1.0092839,.12384084,.09886842 +.90361139,2.2534037,.59955406 +.71390385,.14532687,1.7795904 +.48087863,1.2448153,.65923472 +.91658969,.18424878,1.537565 +.69847161,.50398219,.23714837 +.45049659,1.1646959,.19264308 +.83406933,.46011384,.60689629 +1.028363,.77525883,1.9716261 +.42902813,2.0505582,1.3925743 +.48154664,.73769317,.15119119 +.86443322,2.2524765,.09184969 +1.3953776,1.1066659,.39048931 +1.3793841,.41659205,1.1677721 +1.0161129,2.0019828,.90458407 +.49815781,1.4395627,.9391406 +1.1123259,1.203925,1.7989487 +2.0668354,.48231199,.09586709 +.84209949,.44410179,1.6067336 +.71749163,1.6469168,.83301625 +1.2708942,.14593116,.31423098 +.77350314,.9018464,1.8755491 +.95587675,.84848229,2.588311 +.89373557,.67498121,.99322987 +.46918518,.90577531,.91514371 +3.237066,.51827592,1.3842365 +.71398453,1.6249664,.03902821 +.68668369,1.1042946,.37116756 +1.9210936,.62677713,.82040623 +.49335598,1.4903962,1.9141254 +.74812578,.65181604,.9384073 +.96281098,.45380783,1.2158294 +.86002088,2.0699179,.17094146 +.68139233,.68746779,.67990517 +1.0329741,.08822572,1.3357824 +.99500591,.41894272,2.408023 +2.0269955,.19618323,.18245609 +3.8543317,.23800076,1.304316 +.33991623,2.1369433,1.4882112 +.88152768,.40435973,2.5378037 +1.1032462,.48652408,.85437611 +1.9244637,.02207619,.62314621 +.93198965,.64700442,1.8463504 +1.1425105,.92523513,.29854877 +1.7498692,.03260935,1.0363707 +.97930522,.17291859,.25822783 +1.7348803,.55493378,1.0738143 +1.1814564,.69347276,.21773496 +2.0652843,1.9424198,2.3272882 +.67199465,1.3387634,.93847941 +.99119888,1.9440292,.26527675 +1.4582682,.24401009,.72192327 +.59817928,1.4102453,.02685653 +.39893082,1.125165,1.680838 +.53281096,1.0149237,.74561701 +.41821171,1.8464336,1.5539045 +.91298542,1.022394,.68527585 +.84518405,.0917021,.63822204 +.83048458,.97669215,.88801814 +1.5777122,.50698804,2.0503746 +.87911438,.47043424,.30159678 +.65994997,.02337443,2.472942 +.9800584,.10476273,.46230523 +.60630474,.1292547,.79232575 +2.8275762,.25128196,3.605297 +.89221557,.67173691,.32336846 +1.0397,1.9151173,1.9576504 +.51315176,2.8084638,.03140523 +.38490369,.9315119,.30673727 +.54070331,.80087387,.3085028 +.6571111,.35651163,.49956854 +1.5120733,.3524768,1.7407135 +.98117069,.71151889,1.0613536 +.63854141,.86142994,.13591826 +2.3920861,.05201678,.92188079 +.54378187,.02173961,.94830682 +1.0778331,.29121887,.8997326 +1.1465504,.39460192,1.6963837 +.74285012,.06731866,1.3665079 +1.8319238,.14278813,1.0251294 +.58120502,1.0329276,.09352369 +.5625901,2.1845014,.70214809 +.82287526,2.1841416,.5276158 +.32510198,.85857751,1.1486787 +1.9178112,.02434896,.11412217 +1.2351024,.37472175,1.5454035 +2.3356299,.39011695,2.1351644 +.65975026,.73709695,.90366074 +1.2531471,.24039753,.33505883 +.89357812,.26981112,1.1204277 +1.0680124,2.3391212,1.638372 +1.7405837,.01495418,.95681092 +.66527705,.32405816,.6620629 +1.1425394,1.9841039,1.971553 +.77643331,.16866995,.74997728 +.70022994,.62785563,1.1583507 +.64843396,.19336273,.3698342 +1.3994799,.13854385,.09491977 +.64021902,.50344482,.02420992 +1.5397697,1.6835802,.93407901 +.51878896,1.6272146,.87079487 +1.1432122,.28973648,.61731358 +.51549904,.89845746,.30829618 +1.1735476,1.2766895,1.1791691 +.23278611,1.6983298,.0132108 +.28023806,.66744885,.85162402 +.96122404,.21864881,2.0440499 +1.184748,.75789236,1.0787314 +.79738336,.81035491,.78906008 +.80180069,.71009337,.61737862 +.81663401,1.3385712,.20146322 +1.1975651,.82707806,.81789856 +.47441522,1.7394403,.49335733 +.30786104,.01643819,.03000791 +1.1460328,1.1998028,1.3301878 +1.0098863,1.6385159,1.6896204 +1.045301,.67192206,1.9046242 +.66329067,.59245152,1.2293275 +.66446896,.60248252,.00906841 +.53334341,.33419492,.11300593 +1.0370303,.17865081,.39733284 +.94885125,.76974593,.08645945 +.76789531,.65154979,.81380077 +.91630892,.15694687,1.0040095 +.81850452,1.1482518,1.3942359 +.99835194,.30527392,.8668255 +1.138369,1.1112295,1.4205638 +.75972742,.90113496,.66318613 +.70238555,.08153155,.35253799 +.51151848,2.1424532,.86759535 +1.9862757,.36588693,.53897987 +.97325277,1.0161998,.53589793 +1.9381077,.802596,1.7247239 +.51163748,.4737081,.75092273 +1.6494503,.88933148,.57931681 +.32830306,1.4543466,.33077853 +1.0343984,.18298075,.41578107 +.84494727,.53447309,1.8214331 +.85659837,.59774737,.21183624 +2.2699398,.44417858,.43991307 +.66199583,1.0320934,.68129416 +.53431672,.33479427,.29925745 +1.2177735,1.4600964,.3433132 +.94753176,.22645774,1.5477629 +1.7718797,.39999381,.32027143 +.72497455,1.5047492,2.2359135 +1.1534321,2.2408652,1.0960668 +.31952745,.97013436,.29604428 +.87590485,.51163595,.0719164 +1.2926663,.28621325,.24911543 +.82892861,1.7513881,.48412502 +.34331418,.66181332,.49552635 +.79784889,.52979561,1.0197989 +.76344685,1.3647536,1.368421 +1.006558,.50312106,1.8732206 +.53337356,.55165671,.65233033 +.80691181,.88213359,.88667349 +.54766382,.36746081,.24469738 +1.1966182,.53394427,.29477685 +.94182881,1.7666008,.03105936 +.79712205,.31493551,1.9967645 +1.7277355,1.5342185,.01263002 +1.0242648,.04940796,.80390879 +1.1076711,.3412647,.88695377 +.57608704,1.268772,.04482927 +2.1854818,.49461828,1.1337886 +.39015856,2.7013044,.79813252 +.51742171,.73465419,1.2290919 +1.257336,1.0066004,.85879763 +.28798239,.84095683,.25506655 +.58691163,2.1704429,1.3581022 +1.4400516,1.1492838,.97239021 +1.157618,.02274203,.93959939 +1.0425572,2.0185739,.86055975 +.89022697,.16027193,1.0609741 +.84583843,.95080963,.41361862 +.61761591,.33665503,.47639948 +1.2083042,.87075445,1.1673134 +.8274236,.38438363,1.0498633 +1.2712023,.5092277,.07004974 +.99205115,2.2217293,1.4701803 +.76522622,.67953546,.35763406 +.89638904,1.2710439,.12620613 +1.4698939,.15578354,1.1174813 +.27586453,.57646718,.5657664 +.54391029,.35740453,.51959394 +.68310684,.70292562,1.3168105 +1.6686406,.27258987,2.1482757 +.28980268,1.7918933,.72165313 +.92867207,1.3946324,.13345123 +.81747758,.25678829,.05541331 +1.4526015,.01691931,1.7512182 +.70334058,.33247706,.32294708 +1.4163819,.20546733,1.0542125 +2.0386701,.33889034,.40917461 +.73774604,.88796244,1.7371559 +1.0279144,1.4079121,.20398293 +.42852488,.74573366,.60004135 +.66711809,1.1529155,.72118045 +1.0452837,.88659744,.14494404 +1.0772717,.3594229,.18077517 +.92431671,1.6809564,.74727597 +.38058636,1.2052227,.10404435 +.90649638,.62769436,.99986851 +.71018714,1.6780532,.45490344 +.79122117,.29457193,.14112075 +.88707274,1.3159452,.31320695 +.8196924,1.1261314,.64840061 +.57830687,1.5035317,.29530082 +.74806615,2.8742505,.29018741 +.56357441,.35626374,.78738486 +.73184409,1.3610251,.02520292 +1.3354498,.10754511,.89782035 +2.2748409,1.2561872,.18961342 +1.3411737,.09310805,1.3844137 +2.9436483,.27726348,.18673989 +.850131,1.0335529,.03327821 +.53381899,.8852169,1.787831 +.84295983,1.6377724,.86375355 +.7763305,1.5921502,.27280982 +.47611494,.74983818,.86565081 +.71573741,1.0380348,.16479487 +.91376909,1.1720571,.76385502 +1.1376342,1.0337033,.93357793 +.46058191,.29038846,.26685378 +1.806238,.91986215,1.4643437 +.43270411,.42733341,.64803474 +.70671024,.2206294,.5332344 +.56302331,1.073828,.64126123 +1.4352064,.0554529,.75922859 +.61476897,.93609741,.42506788 +1.1026167,1.309828,1.8749357 +1.1230472,.42209819,.33537871 +.91057059,.30922425,.6285717 +2.9395117,.37827516,.32444304 +1.4830564,.5789428,.26479622 +.53407053,.23252401,.25424503 +.34008807,1.3415014,.02351157 +1.7797338,.88576547,.87266492 +.46936312,1.0705313,2.2533081 +.51360976,.19150757,.51903591 +.88987755,1.1052084,1.4965798 +1.1277614,1.5505791,1.1160451 +.6535701,1.8700108,1.3852619 +1.4549844,.50618691,.47735131 +.85838328,.07196287,.92111462 +.57496637,.25764767,1.3840625 +.71348287,.45458286,.31294559 +.41844609,1.821658,.51345025 +1.3286012,.69052083,.95743462 +1.242641,.70247281,.37571109 +.63973835,1.6131764,1.5469386 +.82471814,1.8728342,1.2565144 +1.6739859,.22907572,.64424239 +.45809701,.84857095,.33570734 +.70216714,.65215861,.73659484 +.48457766,1.0157218,.04694975 +.87115566,.80270427,.29349265 +.75065529,.13444417,.10312973 +.55125066,.42666691,.67649119 +.79085152,1.7861033,.05557819 +.36371975,1.2416177,.90411287 +.88494671,.20129213,.91725774 +.65017602,.65103846,.60308924 +.97856949,1.0145115,2.1678948 +.50379683,1.9496347,1.2786929 +.39823346,1.8850621,.22509208 +.84324212,.48431544,2.2900591 +.44478634,.9197607,.0568881 +.6000216,.13196732,.03603963 +1.0036877,.56372014,.09593408 +.49380396,.51633039,.36000133 +1.8516688,1.0694663,.91150613 +.61868801,.63814303,1.7566551 +.6345054,.39845569,.38399091 +1.3181722,1.2969793,.8330601 +.64863688,.40466915,1.164677 +.93360525,1.096774,1.734693 +.76943627,.42115449,.08587356 +.41985967,1.6635539,.01976088 +2.056563,1.3065459,.18495356 +1.0009044,.95508393,.17639255 +.61779357,.80739468,.01610261 +.42928901,.2667561,1.1089579 +1.3519972,.42202021,1.6120574 +1.0052752,.95916842,1.9449567 +1.0269684,.45736244,.58809255 +1.2491913,.00289324,.01827993 +.61254493,.99918659,.48386324 +.92242043,.45027626,.43173639 +.68382653,1.8583592,.35767485 +1.5295776,.00617739,.6429007 +.94194437,1.3411328,2.6892416 +1.3518914,.88106228,.52070059 +.80481345,2.2296477,.6736089 +1.1614137,.5521635,.3509553 +.80132111,.87527549,3.5327242 +.89749322,.66374692,.74170272 +.8372396,1.4706749,.12575375 +1.3675784,1.1610325,1.6897732 +.40583478,.79475788,.08005244 +.7515585,.39508128,.56562156 +.69977465,.6211053,.32048103 +3.8612692,.43921709,2.6967116 +1.683355,.99453648,.56420667 +.96694034,.08720046,1.4800844 +1.9150035,.52025179,.76698101 +1.5534457,.05524009,2.2747149 +1.3891862,1.6724332,1.2632951 +.59562567,.04880347,.73284 +.7837759,1.1744235,.13766317 +1.1007485,.9815997,1.0357148 +.72691329,1.3550641,.34998919 +.30029978,.0945729,.49144631 +1.0110427,.62272057,1.0103391 +.66185207,.07075245,.07027109 +.98915609,1.3791455,1.5737993 +1.2515883,1.020735,.29281462 +.71803862,1.5043652,.52104658 +1.7634366,.49867015,.89310257 +.36167169,2.2517288,.09876483 +.51405703,.64699282,.8349744 +1.0906833,.58534455,1.2115729 +.67051786,.31677289,1.2512317 +.37151334,1.4994292,.21379855 +1.7210525,1.1467378,1.5601651 +.21146114,1.2361002,.38146713 +.657427,1.3474813,1.0638619 +.6321338,1.6663955,1.0250232 +.36169992,1.495966,.06608497 +1.7343317,.98258328,1.4350906 +.72516174,.4190473,2.619457 +.85867578,.23658208,.33016494 +.61724608,.37418682,.16409785 +.55606716,1.7137164,1.1086552 +.7109021,.59232338,.10042714 +1.8060828,.01359627,.37763022 +1.3748144,.34463479,1.9387517 +2.4445397,1.1293817,.8543036 +.65665653,1.2830217,.60143115 +.96999708,.99240981,2.2441493 +.72239652,.11522013,.40013394 +.41380084,1.2666949,.68763439 +.79031067,.0299053,1.2914343 +.50382229,1.5535933,.45249866 +.74883299,2.0591593,.8926443 +.41866451,.84279827,.46667332 +1.0131767,.41964834,.56384563 +.64260829,.91036171,.56599318 +.95080322,.45283219,.82163086 +.8326562,.8140955,1.6570383 +.54972648,.36270693,1.4717213 +1.3682586,.32017597,.80406282 +1.1608999,.60883663,.10991253 +.96757864,1.0359348,1.1496763 +1.1157544,1.4223737,1.4284294 +.51076867,.99954653,.4617003 +.79650559,.16755752,.65621758 +.46087439,.85378906,.5164061 +.94493839,1.0542039,.50774796 +1.2701761,1.5687511,1.0062379 +.68584737,.21662659,.43881156 +.88865133,.1198649,.64201826 +.59002874,1.3810103,.72932694 +2.140814,.14790689,.66820445 +1.1468312,.47581916,1.1420064 +.73454436,.36804665,.29849541 +.40705367,.9804978,1.1604101 +1.211607,.17242833,.4316821 +.99892713,.20286933,1.9378252 +1.003844,.75010173,.89056836 +.3230555,1.3978866,1.0467815 +2.279349,.53856046,.37552712 +.45260504,2.2808994,.755071 +1.0514415,.0479299,.43086797 +.85212271,1.398481,1.2055918 +1.137416,.40771806,.41776914 +.76015949,1.2763576,1.6384868 +1.2012632,1.3393502,1.202671 +.43223384,2.3972317,.76612685 +.24866551,.37215633,.378587 +1.1194324,1.6635407,1.596691 +2.4609605,.33098315,.34580547 +.90980418,.71502578,2.1297623 +.7505094,.82733585,.10495601 +2.1108574,1.9360592,.00538293 +.7537439,.47445743,.10541552 +1.5095787,.56466043,.31271367 +.95916256,.19612679,.13291025 +1.0093769,.69734004,.07407861 +1.1743677,.53265349,1.1607162 +.46902457,1.8625502,.87868071 +.53043354,1.3951512,.23304308 +1.1283112,.61197189,.11106505 +.75573757,.34533939,.37386731 +1.5247857,1.2491021,.6294929 +1.0011896,.62692841,1.1452116 +2.1446981,.60199721,.51101034 +1.2146605,1.7363796,.68562495 +.75158869,.66134579,.5641969 +1.5234346,.36129582,.21569861 +1.0730998,1.4165611,.30761591 +1.260747,.59965736,2.7940657 +.4111881,.78715319,.17473871 +.97214029,.75130821,.99507198 +.34922801,.27622185,.98655513 +1.3993495,.47465049,.50527465 +1.6825065,.92129856,.82251089 +1.1082405,.27401443,.34278236 +.84660304,.69748108,1.204355 +.504893,1.8498264,1.2615266 +.39109027,.78214587,1.524117 +.49570315,1.0331719,.70146036 +1.0698898,1.324837,1.4009371 +.48208488,.79335967,.69613632 +1.4322304,.24079474,.52405083 +.98036955,1.5250164,1.2436737 +.61717251,2.380277,.7112296 +.80475762,1.3809198,1.6914776 +.70350193,1.2663026,.91154843 +.47197766,1.7266162,.64443607 +1.081255,.55626947,.98621607 +.99240106,1.3330063,1.1163342 +2.3560618,.76228308,.4640043 +.58381855,.79006898,1.1465757 +1.1931729,1.0244351,1.2548812 +1.4388181,.92269987,.9682689 +2.3894312,.18819694,.08632469 +1.2428454,.27443906,1.2984849 +2.6581556,.03937451,2.9169412 +.54372599,.91867799,.41358712 +.51967153,1.5997562,.1156273 +.2454119,1.5887386,1.9161883 +1.0673035,.86315742,.58606906 +.78170966,.23804783,1.4142981 +.70627347,.61116293,.98229192 +1.7438231,.64981113,.28433647 +.76017059,.21564464,.23653714 +.34084643,.80779215,.1470733 +1.5209847,.27622967,.37629474 +1.7999979,.17187567,.72901129 +1.2656862,.19265862,.52039305 +.74428519,1.4810955,.28601676 +.60773737,.65121488,.58168664 +1.2757264,.09762913,.0755984 +.57722391,.26079391,1.1229892 +.294211,.39975253,.49542248 +.58264963,.74408229,.9655736 +.63553504,1.3616214,.93357311 +.99022969,.42107268,.03938398 +.56447266,.25545594,.38876146 +.32537928,1.3861539,1.959317 +1.3375609,3.4505543,2.5399279 +.76826425,.41812134,1.0034346 +.341369,1.2208407,.249982 +.2534029,1.2286357,.74660874 +.88396443,.0611366,.02326218 +1.8049417,1.0190341,.61845119 +.61528359,.04162779,1.4442826 +.51267393,.99599957,.79193868 +.7328387,1.1330089,.12505342 +.52132329,1.8319001,.79166755 +.77387653,1.5361433,.69341974 +1.1410053,.4889815,.89000195 +.73951465,.18311916,1.0144149 +.68370722,.65338644,1.9171182 +.79570595,1.6635741,1.2504051 +1.6380877,.12564491,.28153375 +.62741852,.1383938,.55179206 +1.1496048,.51588,.56573959 +.77914195,.75506845,1.4343908 +.38959483,1.1289781,.12677681 +.44394525,1.3024535,1.3418575 +.7506595,.30331062,.11680581 +.83579579,.26794467,1.0836801 +1.3765829,.39268382,1.4407833 +.69005712,.58745601,1.3458903 +.75375695,.4759585,1.2881235 +1.2593951,.57479449,2.5969172 +.56968959,1.2192412,.95716896 +.64048023,.53433558,1.4400331 +.65809142,1.3699416,.00215759 +.40419443,.54748962,.70680889 +.73517446,1.9702168,.42868976 +.87201748,1.9974799,.32082944 +.551655,1.587772,.21353597 +.5346005,1.1669322,.47036186 +1.579357,.53502794,1.1459036 +.71594092,.60387922,1.0273613 +.3088599,1.0314866,.4957908 +.96772115,.18344852,.46039355 +1.3309959,1.7458215,.19107811 +2.2565574,.53142206,2.0249958 +.50602053,.7715328,.28502085 +.89653617,.75689872,.700782 +.56376852,.90747261,.46998247 +.79136374,.33469753,1.6972846 +2.9802743,.86200326,.94247576 +1.7639984,.16751284,.85954519 +.67230785,.35128599,.36419167 +1.1757045,.09494118,.43859542 +.98651933,1.4886163,1.0256599 +.95817462,.92879805,.62640626 +.57734025,.2977826,1.008751 +.60408903,1.8382158,1.5879039 +1.2895257,.25252247,.90453826 +1.1730264,1.1413346,.07920942 +.55693917,.61050222,.4021869 +1.2767835,2.1086872,.09777634 +.99904755,1.8851797,.91615154 +.72858815,.49478014,.74355 +1.4174416,.3171881,.48606227 +.72633888,2.9565212,.46772148 +1.1472929,.43993105,1.556815 +1.7102931,.61802745,.70957858 +.49096349,.9261732,1.5997687 +1.0860813,.05952443,.86168729 +.37877165,1.3363298,.03360755 +.81562565,.49253685,.38370216 +.64540606,.04320847,.39056016 +1.2859094,.86899032,.87929611 +1.5549128,.2753672,.30264594 +.89268912,.00857028,.51414243 +.32301921,2.9894963,.126393 +1.6960788,1.0610038,1.0139548 +.66497594,.51362741,.17628108 +.67335669,1.4637958,.94685909 +.49452054,.68942395,.67701541 +.96965667,.27336162,.07988311 +.6460602,.79389188,.28578402 +1.0952182,.62377598,1.6780965 +1.0811279,1.3825632,.56570724 +.50254273,.10668498,.59496073 +1.1584338,.79800623,.42679921 +.46733813,.20704319,.26344221 +2.1653941,.62327112,.69706654 +2.1213264,1.177559,1.2045835 +1.3958926,.76635521,.30352198 +.47731292,.82364266,1.0446458 +1.1937042,1.1978972,.2967232 +.6697209,1.8806006,2.2258698 +1.481525,.32776387,.95335842 +.76871022,.09352338,.40415217 +1.7031365,1.205512,.79949222 +.46360416,1.0014711,.37347746 +.83752183,.87089208,.34064991 +.72348482,1.0863294,.86747517 +1.880795,.39701566,1.0626412 +.29971728,1.1753352,.96086118 +1.0542886,.62727815,.83786093 +.99999212,1.0344991,.71421457 +1.073182,1.0249634,.25227645 +.90508584,.36563192,1.1310504 +.5545815,.26418631,.24857294 +1.0795784,.6757179,2.7125857 +.3356386,1.0273191,.29078078 +.91992421,.97189047,1.8507092 +1.850879,.58871176,1.1149149 +1.1311402,.17483811,.92345778 +.9221055,.75227148,.071068 +.8387141,1.8462389,.24335833 +1.9445926,.55661953,1.8715441 +2.4239046,.05605995,1.8879381 +.70667505,.85355133,1.0982084 +.2984815,1.1007689,.8382904 +.65841921,1.5350167,.35630673 +1.0889769,.01579271,.18793756 +.63797256,1.0021881,3.0841111 +.28064504,1.9334401,.77867102 +.4123002,.76911936,.34286394 +1.0679185,.39635715,.53113668 +1.0665659,.03137289,.29694997 +.4778217,.07650267,.92594974 +1.1904829,.94968668,.04569035 +.74876548,.14176106,.02068871 +1.0758501,.2997165,1.0008704 +1.0459665,.58795876,.10563085 +1.4144844,.44520456,.29617318 +.90182407,.90994574,2.4705838 +1.4685463,.18179108,.35956567 +1.0402522,1.2197828,.78321954 +1.274161,1.0454062,.2426948 +.33673853,.58736458,.20758136 +.9805352,.59952631,1.3173737 +.8204386,.62240609,.76933675 +.80112957,2.1047413,.66455204 +.85150965,.82066012,.28705353 +.51737538,.48384208,.42126236 +.44164118,1.3007999,1.4128468 +1.100313,.93524888,.60267371 +.79547821,.78843821,.01391279 +.66399811,2.9562415,.35172165 +.80397315,.26508382,.55345537 +.73700572,2.015043,.53797706 +.46353032,.41801331,.68283191 +.7106795,1.6182747,1.352688 +1.2972999,.50921805,.87615474 +.64190113,1.7149111,.23836146 +1.190358,.08812753,.12776276 +1.4229511,.03313561,.89975269 +.92745217,.10968805,.69941062 +1.3279616,2.0667919,.01566966 +.32299109,1.2321182,.36547789 +.8177627,.25077477,1.4886581 +1.0409007,.26599843,.87310691 +.68996234,.01247271,.23986765 +1.4404797,.03216535,2.1873132 +.52952047,.21041413,.1025193 +1.1541462,.19119114,1.3458813 +1.4282617,.84979069,.00774843 +.46855795,.83455696,1.0251371 +.2155313,1.5827496,.21772033 +.60805884,1.4083281,.09262593 +.6054703,.28413593,.97518925 +.7871481,.42588719,1.3412141 +.70256854,1.4771014,.23389481 +1.0161555,.69772399,1.829215 +.61696536,.2752298,.55397186 +1.4660377,1.0472005,.72011881 +.6311237,.11997638,.35573224 +.56364502,1.6252635,1.1387235 +.79700018,1.1070177,1.6786058 +.66963712,.39690119,.07698428 +.51790377,.94778651,1.0758125 +.39154203,.3230179,.15668665 +1.2017909,.20599759,.82216793 +.94905243,.47663558,1.8187289 +.53471044,.47443313,.08789604 +.63882704,.80184144,.72268707 +1.755853,.12865792,1.6086874 +2.5845727,.35908781,.2655599 +1.1714629,.6280663,1.4304675 +1.0317356,.46998311,.35036009 +1.1922412,.70974437,1.3204282 +.641276,2.2007299,.31705982 +.74827382,1.0326172,.98687069 +.7272804,1.4184312,.81326698 +.45506363,.23353038,.27452419 +1.2686848,.41000017,.27836158 +.87096775,.78973294,.07606283 +2.2129782,.77526736,2.0511335 +1.2740197,.27738899,.09949579 +.90390917,.71700214,1.9286841 +.65708246,1.3723792,1.0728429 +.43724451,1.4459452,.58909104 +.59815403,.29479251,1.5760396 +1.045212,.9320486,1.0480758 +.82130967,.35742976,.96449173 +.68640007,.10516102,1.1725288 +1.0603457,.13955647,.15987175 +.88701845,1.4644431,.76875773 +1.7117634,.23946109,.40448412 +.85911258,.77468677,.73292788 +.69986248,.64752796,1.0894273 +.69985465,.84369996,.38937055 +.7454938,.66403663,.43553825 +1.3949147,1.7101482,1.4855226 +.52681967,.53464861,1.60624 +1.0699687,1.9722205,.71052693 +.82008938,.54302814,.05064995 +2.4907422,.1156249,.31772322 +1.5478425,1.0632836,.10159438 +.96976699,.33488078,1.2403578 +1.164841,.29947108,.59649999 +.52882539,.15870494,1.3606344 +.25899853,1.8690266,.11030614 +1.1744088,.23568812,.98066378 +1.3865832,.9022365,1.4884158 +.48920009,1.6756023,1.6219493 +.80643065,1.0316541,.12880359 +1.4905863,.01379394,1.0376542 +.9821439,.3427752,1.0207326 +.511289,1.2083944,1.9324896 +2.3720218,1.2069202,1.0975525 +.68773925,.43044384,.35587117 +.7847506,1.1048931,2.8979351 +1.9440447,.13857067,1.5050616 +.44293619,1.8804112,.40086871 +.80554303,.92506318,1.5373136 +.73634968,.85098648,.56831903 +1.3778185,.4659565,.96453171 +.59977537,.67312004,.18006616 +.94281164,1.2948901,.66664127 +1.4624759,.12255063,.8338771 +.57720093,1.0761614,.49185458 +1.8904343,.1676701,1.1636951 +.93954462,2.1426951,2.3371858 +.48651071,.66995238,.32814218 +1.3737674,.90392018,.17504725 +1.2007835,.84632914,.73347954 +1.5665297,1.3608182,1.5764686 +.6699501,.84150812,1.8023458 +.82466776,1.2049156,.42415934 +1.2101392,.00376289,.11607048 +.32329943,.944626,.63240153 +1.0751014,.66439496,.51883388 +1.1431588,1.1336342,.35831627 +.43885844,.54012904,1.6441192 +.76529523,.01898198,1.2698219 +.38991388,1.4044875,.09152085 +.8011662,.81551689,.26713589 +.77002349,1.1086508,.28078188 +.6078782,.93494426,1.1331066 +.5500737,1.9561205,.8198744 +1.7234448,.01404995,1.1368962 +1.3764158,.11025231,.15448629 +1.5179455,1.6208317,.73258542 +2.2917066,.65989406,1.2092868 +.52138948,.84889826,1.0862497 +1.4782516,.77784038,2.3520386 +1.0302612,.03596586,1.2354273 +1.5277013,.17318611,2.5836427 +.35382149,1.5211208,.18078771 +1.3853009,.38318695,.28725566 +1.0304598,.42440037,1.2984801 +.43989152,1.2349505,1.3706805 +.61537969,.83122263,.37729679 +.60602029,.3897508,1.4532127 +.49113148,1.7287253,.81169672 +1.5956586,1.089833,1.3368785 +.48573812,.42408888,1.5770412 +.4728521,.81354889,.65250519 +.78758148,.04866899,.06548823 +.89835279,.51514742,1.1720255 +.71081451,.06354228,.65330186 +.87574201,.37076907,.47067214 +2.5657248,.31115354,.78898916 +.62497093,.51734045,.78561174 +1.5272874,.62607297,1.2709494 +.73423386,.3459351,.15440847 +.63644132,.06489324,1.6602738 +.52546862,.00324421,1.8847122 +.93758031,.37767061,.3039469 +1.5312276,.649624,1.7111675 +.89520463,.55669122,.64368087 +.5432024,.13825704,1.1269034 +.80009155,.75355863,.4260827 +.892308,2.405771,1.1721852 +.8057735,1.3674782,.68326701 +1.0790204,.34949035,.68920505 +.60839582,.68192234,1.539223 +1.387514,.66440428,.40610925 +.48374823,1.8088855,.41081886 +1.5241458,1.7493578,.0690786 +.45620219,.32378896,1.4949885 +.989533,1.4045841,1.5802833 +.95825801,.78840391,.06365899 +.42176272,1.3429657,1.3752332 +.67131991,.69752961,.71150558 +1.4094008,1.1038204,1.776774 +.40780649,1.8421167,.39125824 +.56564603,.97118399,1.4085407 +.68461121,2.2171935,1.1621613 +.58492624,.26205182,.8457872 +.61193384,.40046772,.37210877 +.7181795,2.495527,.33143809 +.58122589,2.7092935,.34560016 +.80604466,1.2526783,.5288156 +1.6568962,.67176767,2.4549713 +.54675697,2.4886301,.00135286 +1.1326221,1.5538809,1.0856787 +2.7966947,.20528721,.2700297 +1.0740939,.08148919,1.301275 +.59496402,.56969206,.95069107 +.5502181,1.1371734,1.7848372 +1.0207004,.08238928,.16680653 +.80158183,1.0662623,2.3007266 +.8476431,.96202152,.50830481 +2.0040826,.11448967,1.7034614 +.68901557,.79517865,.60259666 +1.6754618,.77180543,1.3821321 +.42285826,.54181869,.27028404 +1.0301684,.56767,.47260856 +.68703673,.43908821,.02554759 +1.2906834,1.5320878,1.2629509 +.69115566,1.4673091,1.1781198 +.73399844,.05423342,1.4808245 +.6379787,.64830079,.12768723 +.31968394,2.3686876,.52084046 +2.6218271,.12052284,.63759165 +.84207914,.97150714,1.6668521 +1.0556714,.71157655,.19730626 +1.0248231,1.3411618,1.3818498 +1.6802844,.76983026,.49999005 +.81928536,.15261692,.05798912 +.76888602,.97298694,.96798158 +.79146184,.46111772,1.0454408 +1.0120684,.96277085,.3433203 +.93996698,2.2436156,1.261481 +.43002318,.13681401,1.3818642 +.46863441,2.4035607,.24023597 +.75544858,.50305008,.53708025 +.53792644,1.0496871,.66928628 +.78457301,1.5162856,.34971363 +.29284021,.50592443,1.5766076 +1.0064186,.99141701,.31726868 +.30343024,1.8312391,.5689771 +.61682106,.68393385,2.5491877 +.31741099,1.7944744,.5957181 +.39657725,.72168092,.56590164 +.99652524,2.182144,2.2194541 +1.1098488,1.636562,1.8283081 +.86127273,.98647252,.97290901 +.90627155,.23527134,.97115 +.46852082,2.0303105,.60126367 +.70168412,1.8709146,1.286154 +.81791074,1.0725352,.39184028 +.67978968,2.0662519,1.2815359 +.50706106,.73831836,.04114588 +.26284938,.40002314,.33620673 +.28228419,.3684073,.60331416 +1.0245653,.9196898,.25747886 +.68603572,1.8065214,.1045295 +.75316556,1.5611793,1.785953 +.5732342,.70458956,.1199523 +.73438127,1.6352566,1.5164681 +.98019843,.33914598,1.3515618 +.46987627,.6611661,.1488964 +.44091239,.8221693,.24891041 +.54199298,.71953243,1.1307823 +1.1961004,.34053786,.51283116 +.3529863,1.719374,.54492829 +.99202998,1.2930323,.86558959 +1.2262024,1.340853,.37333314 +1.7498736,.40714006,1.6375585 +.92073792,2.1842282,.73863433 +1.1114244,.73598836,.13468304 +.55895217,1.1367176,.4883239 +.71548639,.97192324,.10534762 +1.0254742,.7871825,1.1281103 +.71074228,1.0711343,1.0535819 +.46979995,1.1142266,.80479818 +1.1007972,.56736962,.07787769 +.67678199,1.8251798,.99155184 +1.5754684,1.0551164,.26714414 +1.9899424,.85344689,1.6308766 +1.691636,.10790867,2.8449326 +.73311677,.4687263,.26092205 +1.423267,1.5701612,1.2499772 +.85533021,1.3304458,.01875169 +1.7004815,.11271902,.1297552 +.89470596,.26721631,.54347976 +.48946112,2.8376515,.14156029 +.69175369,2.5173918,1.4175256 +.6568788,.92550353,1.8299516 +2.0381619,1.7264101,1.6124126 +1.0946311,.88830855,1.621799 +1.9740235,.55440402,.0503428 +.46972959,1.9430539,.38817507 +.78035143,.28573912,1.5202393 +1.2602277,1.377517,.5984185 +2.3643502,.07349329,1.11451 +.40125273,.25066329,1.2828228 +.91178752,.04696589,1.4123513 +1.0862337,.64552562,2.2500101 +1.4709859,.72245713,1.0861154 +1.5542753,.63253862,1.6233693 +1.1353034,.39007677,1.5586195 +.95430344,.52154,1.1031938 +1.0428882,.46666079,1.7868502 +.65117162,.65966167,.96701746 +.84685375,1.2743207,1.1234658 +1.1621632,.17679951,.76884636 +.98191682,1.1610831,.73914054 +.73845059,.39466257,.75669522 +.62827515,.09093031,.57277374 +.72539756,.47537619,.49259283 +1.6848686,.81782103,1.3729511 +.86544122,1.3477547,.30493218 +.73481519,1.2360775,1.2928828 +.60925245,.24737012,.90055192 +.99820261,.13736152,.43431188 +1.6705078,.25253844,.43446226 +.42822625,1.8477336,.77853985 +1.1277918,.53964224,.28243815 +1.2897066,.06048806,1.1189281 +1.6344319,.06935833,.71146327 +.57652083,.55615951,.12204357 +1.1658591,.98283092,.47286043 +.7391346,.21558555,.6136926 +.41890561,.68231617,1.0597653 +1.3910817,.24546365,.41983524 +.54791426,2.0063684,.03275667 +.63704814,1.6620307,.05536938 +.69839693,.04652865,1.0944907 +.44557227,.28312227,.44834887 +2.1071899,1.1867673,1.0305468 +.63607733,.98138998,.15859779 +1.2515705,.20409451,.3549423 +.60509605,1.3705927,1.5443346 +.66277312,.55982358,.15757925 +1.1312492,1.6307832,.359275 +.30551346,.17013804,1.9970312 +.63546053,.70280098,1.1916681 +.47073699,.71215598,.95712486 +.97974438,.78630876,.36910812 +.72573604,.77152233,2.087028 +1.0767165,.76625498,1.8125896 +.89025567,.19901534,.57824766 +.69214192,1.7208873,.85841763 +.87594935,.23912813,.33186255 +.49001765,.43073439,1.3007571 +.67783091,.51355471,1.3665486 +.49596505,1.0163832,.28786615 +1.3737318,.40099884,1.1681101 +.36888474,1.4738983,1.5998317 +.72909191,.05674401,.01908648 +1.0801888,.66051598,.98309355 +.49215344,.85915145,.09928457 +1.0653597,.06349701,.23086159 +.62202697,.57539261,.27716136 +1.6945299,.47960587,1.7085087 +1.1800752,.39563335,.86527473 +1.3051541,1.3242409,.68986307 +.99756735,.17969678,1.3448787 +.53884797,1.2913767,.02144505 +1.0519235,1.2266852,.81479638 +.59335169,.47458662,.63963323 +.87180269,.34749879,.41437328 +1.8524289,.81286978,1.0320681 +1.0474137,.07789185,1.1893338 +1.145159,.63631009,.7933669 +.87307506,.88265292,.45401588 +.64256583,.30932317,.80045675 +.75764515,.26028617,1.6920241 +1.3392983,.09173893,.26281915 +2.389493,.01655967,.33794507 +.47840351,1.0984928,.87653382 +.28309748,.29309336,.46081878 +1.6927498,.02502303,1.6178668 +.62079182,.49872266,2.40335 +.9115411,.1927299,.76267873 +.40825077,1.2228202,.39169087 +1.4388549,.94242572,2.3495221 +2.2743517,1.1480887,.9021052 +.51516903,1.3444207,.32159303 +2.1165007,.75041339,1.1454733 +.53351735,.60067861,.44107962 +.33530645,.55512979,.13537312 +.40743896,.84718587,1.4250781 +.65059327,.10954351,.31912284 +.31709605,.61418894,1.0683603 +.65780787,2.099307,.2366118 +1.5212206,1.282327,1.012725 +.87450061,2.2007675,.60970883 +1.0799732,.57724147,2.5944183 +.94413887,1.3756552,1.8656791 +1.7365473,.20577655,2.2533824 +.55029785,1.185433,.87610681 +1.011878,.13908229,1.01692 +1.0084511,1.1453671,.4373408 +.45564655,1.6474765,.92482456 +1.1840859,2.2929181,.09220066 +1.0201075,.73954043,.39548316 +1.8282521,.09945121,.58005907 +.9943383,.75198539,1.0881266 +.73260989,.48065225,.82917129 +.74358214,.91312148,2.0023067 +.99152868,1.7400195,1.7613443 +1.1036359,.28594568,.61951033 +.82016892,.11275873,.79572369 +.61756002,.24458409,1.365856 +.66452035,.49292859,.56821754 +.26770627,1.347178,.64008789 +.90963297,.18036549,1.4434721 +1.2378269,.01452719,2.0135832 +2.4514809,1.0889443,1.6033611 +.71210265,3.0960524,.71044344 +.63046342,.41210754,.71512462 +.59359393,1.5684231,.61166492 +.717434,1.2722121,1.0652174 +.85438668,.47774161,.71435629 +.36278251,2.8237636,.08000486 +1.5193325,.95810776,1.0983787 +.74651604,1.1627567,.6004484 +.75726547,.43600975,1.5408649 +.50408871,3.9074395,1.5177831 +.56625585,1.082451,.90134688 +.40145945,.41157417,.33803008 +.38273386,1.4776745,.87096823 +.78504657,.3771612,1.9051846 +.59665682,1.1852006,2.1403582 +1.3224756,.19048438,2.204121 +1.0433785,.02374107,1.3060626 +1.4312443,.65877574,1.6407733 +1.5829985,.46402247,.83839133 +.68718165,1.4750065,.25083794 +.39304378,.11236949,.15582904 +.41088263,.762074,2.7919812 +.75390571,.16960763,1.1395617 +1.0381094,.23361115,.89496869 +.55853888,.46594298,.03929856 +1.094113,1.3695998,2.354086 +.54119978,.88987496,.23161028 +.68081688,1.4578224,1.0363442 +.7761126,.14366911,1.5393136 +.62834159,.70438714,.23352584 +.33700098,.87159865,.70550665 +1.4982525,.12707278,2.1641879 +.73339681,.42636757,1.5224366 +.26623258,1.4082577,.14752251 +.9633237,.73576502,.3829062 +1.7371878,.01573596,.71388248 +.54287514,.23360768,1.0600341 +.67708148,.08078811,.73156039 +.36279195,1.1169635,.62309178 +.37461526,1.5766097,1.0665521 +1.9183065,.47219541,.36960737 +.59009435,.64252473,.77136532 +.86493671,.43550938,.35764769 +.79516927,.20856808,.32538873 +1.2475443,.80132768,1.8450558 +1.8660311,.45804356,.37272752 +1.1704848,1.2795998,.27018715 +2.191488,.42899396,.43720209 +.6856812,.97775534,.03215836 +.53953988,.67320266,.78908604 +.82101524,.4515384,.79658045 +1.8729467,.15865673,.0156477 +.41089259,.14573355,.93500356 +1.1902067,1.6799266,.86295938 +.51088859,.04741115,1.2115141 +.46044334,.01697541,1.4513885 +.94497994,.0465958,.72782335 +.95426173,.08576343,.44832035 +.53431261,.32750722,1.6359562 +.89179074,.45544218,.16792722 +.78525737,.54588599,1.3178325 +.8176419,1.6688939,1.6880475 +.68375947,.11231432,.55051297 +1.234975,.47969716,1.8832152 +.8741358,1.1494193,.48588358 +.79847389,.13063425,.85869956 +.17684966,1.9544564,.33041243 +.70784992,1.9278106,1.3106408 +.84211007,1.9918981,.32008946 +.79415617,.61387132,.89069898 +.93890214,2.3720596,.79540913 +.59431689,.92929209,.28359537 +1.0313982,1.320247,.93787366 +2.1736195,.06175835,.43872613 +1.5248522,.47890819,1.5286595 +1.2790994,.67091532,1.5713676 +1.1078723,.54047399,2.0748221 +1.0735287,.7965993,1.7137847 +1.9139763,1.3862515,1.2060726 +1.0717639,1.8518727,1.1442408 +.55931209,.81947681,1.6298637 +.71218644,.49022192,.52738802 +.97643231,.91092679,.1576837 +.760056,.77133951,1.3759526 +1.0255595,.25310678,1.6020035 +1.1789741,.03793684,1.2525538 +1.8373167,1.7735682,1.212536 +.49862352,3.183861,.53050466 +.77695877,.8383058,.15184067 +.65079833,.38666912,.00738511 +1.028228,.8175014,.30066449 +.45142128,1.999164,.40890666 +1.382093,.69590408,.48315307 +.43406247,2.0120365,.30493702 +.88592249,1.3240961,1.8229244 +1.4017569,.90519305,.13440987 +.93036832,.11311971,1.1296779 +1.4998794,.68436801,.4845666 +1.8495839,1.0301779,.98630955 +.47135722,1.9007718,.07597082 +1.36119,.94391867,.3411666 +1.2726783,.33379609,.97719302 +1.4552615,.28197161,.66272185 +1.7789666,.27222589,.32858692 +.7047542,.09787513,.5302369 +.81813668,1.120855,.16134092 +.52730183,.57534108,1.9446869 +1.0352745,.55399404,1.4223773 +.65887407,.38928787,.11770774 +.91050161,.86307863,.16240567 +.58052361,.09133119,.09169118 +.51080522,.29491516,2.0923918 +.77110427,.83394328,.36303702 +1.0942698,.45321885,.67933546 +2.0458806,.0100524,2.1424301 +.75954232,.3058072,.94536328 +1.097533,1.2197923,1.005456 +.77072435,1.4712381,2.4133118 +.99809,1.9624234,.48723452 +1.9443342,.11592663,.08020532 +1.1065046,1.9983129,.49757851 +.44289806,.08992334,.98297948 +.43367959,1.016142,.86363246 +1.7394464,.28128481,.58542214 +1.039854,.33110616,1.7401253 +1.6744262,.11586323,.15143227 +1.6420491,.14093105,1.1409539 +.77217172,.29278592,1.973422 +.54360349,.41084842,.04285688 +1.3812963,.48245004,.50099176 +.80379242,1.3792779,.44307637 +1.2585226,.544979,.91650153 +.82401265,.58241529,.94811316 +1.1273318,.20419836,.82175665 +1.4701579,.45376229,1.7832048 +2.3482358,.06276887,3.0869728 +.73878489,.21607824,.52228736 +.63187102,1.5354828,.62421021 +1.3233169,.30804965,1.2682667 +.77454055,.83509351,1.0647361 +.68037396,1.6820788,.55447179 +1.5860191,.43523541,1.823908 +1.1482081,.01783032,1.4301662 +1.3895932,1.9437183,1.0701296 +.5413939,1.9692661,.4219836 +.87981187,1.7619975,1.0063278 +1.0273483,.62918815,2.096531 +.8033694,.79547511,.15196158 +1.5488215,.60713881,1.1447265 +1.0591065,1.764276,1.5240668 +.45834325,.8662343,1.6685728 +1.7010706,.5563087,1.3601928 +1.019727,.13330042,.34026553 +.68698864,1.9603751,.50300679 +1.4135308,.82399621,.66611932 +.59100861,2.1838842,.59357202 +1.0742518,.0218821,.1062736 +.78735906,.86571564,.75694134 +.9710071,1.1144243,.7946435 +1.1484294,1.1839502,.05840251 +.45816524,1.5086169,.67557386 +1.1983797,.4826159,1.2167327 +.59792768,.98925141,.97656329 +.75197277,.78583098,.89866397 +.96671397,1.2917225,.08924862 +2.5108524,.03478235,1.7602568 +1.5187068,.06502577,.31469456 +1.1872203,.78953834,.09602183 +.59740415,2.286946,.52265312 +.63178234,.27555936,.20475854 +1.1557705,1.1545463,1.2510105 +.47188295,.68654399,1.7695837 +.70950029,1.5071188,1.6775958 +.4235061,1.0722132,.74049538 +.34841534,.39185631,.26515107 +.88360763,.83555569,1.4968759 +2.0386213,.02481221,.72910886 +.87403656,.69381817,.99651063 +1.1167521,.44353485,.00126197 +.38571745,1.7267019,.95367775 +.93583424,.29313829,.05286692 +.79934872,1.1509966,.54173961 +1.1493251,1.3097416,.33309489 +.43005081,.94315551,.11413794 +.80759909,.56937509,.28179157 +.98561533,1.2053753,.0603198 +.82081468,2.1011066,2.3791904 +.86205322,1.0256311,.35429131 +.4892764,1.6827485,1.0140344 +.23545278,.08964238,.58577933 +1.8221486,.27642458,.28413962 +.91428521,1.0036514,.22545372 +1.2035419,.19042845,.8849769 +.89551078,.04346521,1.3678007 +.5790526,.38059918,2.6241926 +.75467272,.15187527,.6086501 +1.8312269,.60790561,.91928158 +.99623889,.94963413,1.0619191 +.72941978,.06163065,.10478876 +.5604464,2.5324887,.0294161 +2.3358032,1.7661579,.59238141 +1.1398303,.13846687,1.041109 +.98754213,.18657635,.09054038 +1.1736881,.12723443,1.0616905 +.55437195,.05589629,1.4266457 +1.0011109,1.1942835,.20267647 +.49341057,.41991689,.77742241 +.98035402,.10314097,.87210427 +.95394486,2.0988299,2.5119299 +.58274057,1.0083003,.85524571 +1.5213445,.14762319,1.3355354 +1.0698814,.40915004,.61682281 +.64308084,.65953447,.03213595 +.49176545,.56117512,.15531043 +.92749169,1.1116951,.83918469 +2.3355536,1.4473503,.45568771 +1.1210497,.4311301,1.3478889 +.72275207,.50277652,.71630301 +.69072569,1.5816351,2.3720443 +.57706827,.15233937,.67792287 +1.0251218,.88062511,.0589186 +.3606851,.36362588,.27831406 +1.4567952,.31925057,.21268825 +1.2556676,.46240284,.22620279 +1.6173642,.47679374,1.1116724 +.67758563,.13490735,.72609758 +.52804851,.9301583,.49254006 +1.1224549,.49948054,1.233004 +.77600105,.51058049,1.0061864 +.61185169,.26458561,.26053772 +.87611829,.48416321,.92352689 +.77045494,1.1788475,.04963148 +.68984673,.01945841,1.126364 +.88812596,.69472347,.96285227 +.57395513,1.4182448,.66106921 +2.2142112,.13473365,.75683935 +.84508793,.84921189,.77873825 +.70543005,.83948315,.20687013 +1.4454522,.89816798,1.4435143 +.23115105,1.4051468,.99495838 +1.2741663,.12348929,.00589696 +.85187529,.33361721,1.0819021 +.65696986,.07723375,.46344831 +1.3416359,1.4244147,.40423882 +.7763617,1.182493,2.5101812 +.27082378,.06301406,.67483008 +1.0875698,.25954449,.83829696 +1.6085887,.21756044,1.6817482 +1.0253152,1.1409416,.10308671 +.80711709,.2282618,.48220484 +.86005033,.12615052,.37147972 +.74248515,.1618625,.28498351 +.88949599,2.1543739,1.323689 +1.0563595,1.1807439,.83649262 +.34773926,.45980665,.21679183 +.91975204,1.5353613,2.0569126 +1.0955245,.10088474,.05082142 +.53165827,1.5596384,.03284912 +.71434469,.93301288,.93325753 +.96574693,.71692671,1.7311976 +.59347938,.64801,1.1619106 +.26233039,.23681362,.86478647 +.90638619,.91647341,1.888586 +.7616435,.74498314,.60644819 +.37970344,1.000236,.91867357 +.68928446,1.2666808,.64397755 +.56066172,2.7230076,1.2627411 +1.3143567,.02065778,.36268218 +.9654757,.18592371,1.2748074 +.71689428,2.0337737,.6126679 +.72417056,.19474242,.68503416 +1.1476066,.70524949,2.2443925 +.56695143,.61668417,.49714628 +1.3671749,.08262835,1.4128275 +.50962459,.00170506,.8405396 +.70457774,1.4601974,1.6699616 +.67128105,.58673065,.34308082 +.82664287,.24139634,.49931196 +.8104469,.51005852,.29403796 +.36153647,.56660721,1.306865 +.76396314,1.005191,1.469739 +1.3587396,1.4751965,.18120859 +.73133824,.35769565,1.1879091 +.96733194,1.0971265,.36480915 +.96304426,.52778453,1.214405 +.57672824,1.0624169,2.5352235 +1.6765757,.70211178,1.8034147 +1.1270399,.27059946,.85422813 +.58797285,.59110906,.55487211 +.57546793,2.4944443,.09081701 +.72930654,1.064254,2.3927571 +1.4536942,.69590949,2.1047952 +.53737999,1.0488126,2.1274452 +1.8382455,.61400918,1.6646288 +.70419368,.21963262,.73911776 +.6484968,1.6733437,2.1314309 +.24527925,1.7830322,.469209 +.7064284,.87360755,.07305234 +2.5912262,.20715094,.97382898 +.40988365,.8219723,1.2927951 +.64964524,.72048761,.45705502 +.29055343,1.9369928,.3001834 +.90909449,.461862,.27690785 +.52074845,1.1344981,1.5228795 +1.1227747,.18026728,.39307398 +.4814742,2.1746228,.40654541 +.51639401,.24161561,.76195035 +.63112513,.06653668,1.6708561 +.82570093,.24267414,1.4267004 +.73860601,1.2539007,.13913022 +1.545225,.45435372,.76504118 +.49808557,2.2730421,1.095458 +.65976766,.23916754,.75820967 +.64304559,.14084352,1.792861 +1.215111,.76705175,.91381009 +.71103343,.29008828,.61320305 +1.1103609,.08388096,.65419725 +.42699817,1.7984129,.30967585 +1.2703262,.21680324,2.3427812 +.52302109,.81757663,.75250684 +.94528772,.50087478,1.0588005 +1.3554885,.72727404,1.0684679 +2.4318249,.16950264,.58793708 +.43325683,.70352992,.47423972 +.56019182,.35226009,.10330763 +1.393364,.14001145,.86140078 +.74004381,1.656956,.5108713 +.65525022,1.3398892,.86205722 +.59728873,.16532253,1.3692373 +1.0053161,1.2283574,2.9015054 +.45800133,.46925924,.84386855 +1.2899571,.77499441,.71216936 +.82881542,1.1997426,.54705682 +2.8239935,.48642115,.7184576 +1.513378,1.6873919,1.3630771 +.55224575,.1227289,.05258752 +.41609444,.17417682,1.1205945 +.50622445,.28572542,.86351736 +.67574536,.28787441,1.0065476 +1.1626195,2.264564,1.3314788 +.4715342,1.2073902,.66055593 +.95470734,3.0247883,.67563624 +.65992668,1.6367446,.73959253 +1.2793163,.01087424,.51483606 +2.5784257,.00581467,.01083961 +1.6189568,1.0321783,.68868241 +.89707796,1.0850309,.92301688 +.36502727,.51138322,.7036179 +.36997398,2.3487908,.16495375 +.41689644,.6585227,.88957132 +2.7539506,.06521226,1.7059317 +.55573746,.54907224,.13982561 +.18061739,.84781652,.93611241 +1.6641777,.499431,1.3092734 +.35278751,.57651815,1.0119272 +.59807236,.88973043,.4350639 +.63565976,.31878024,1.3253507 +1.4117456,.33280599,2.0118877 +.81646367,.01228718,.44656631 +.90303739,.37409603,.36304282 +.81444977,.09512215,.30539456 +.5251853,2.6059488,.10417278 +.77204809,1.1420603,.42185075 +.51204033,2.0120207,.39024692 +.37638067,.75815657,.15008602 +.74007747,.045499,.26249203 +1.0814558,1.2164959,.56017876 +.61026468,2.344435,.31413798 +.62534415,.40545678,2.1869832 +.55064866,.44533908,1.4029645 +1.7203311,1.1993202,.62260683 +.84309656,.27026306,.06286714 +1.0772294,.32459536,1.394755 +.91038397,1.3090766,.64131183 +1.0642038,.05709412,.11101748 +1.2421132,.00821117,.07517735 +.83959237,.41461895,1.3254976 +1.7728028,.32652503,.26905768 +1.5030977,.84641326,.84250672 +.62443163,.57636287,.19252195 +1.4436235,.33821712,2.3702268 +1.1430192,.53883942,.49917802 +.73017003,.78237052,1.1692052 +1.344664,.76040407,.63926436 +.73339671,.54497274,.79262936 +.72705709,.37191143,.41216697 +.53735249,.55446697,1.0258147 +1.7463525,1.700656,.90108205 +.83494284,.80668944,.23233376 +1.5290495,1.0912702,.09644223 +.99281497,1.5591578,.76541621 +1.0535373,.53477214,.08660568 +1.4620768,1.3479926,1.2819263 +.58994768,1.4038182,.06315733 +.35311487,.24857519,1.1155284 +.39066202,.77402916,.89794701 +.46964926,1.3495861,.34954425 +.94365044,.23648416,.22759951 +.64196271,.03469216,1.0385891 +.39661288,.51162683,.28044278 +.72553298,.44136943,.58267424 +.96583767,.54776875,1.3961668 +.67828152,.45221403,.56761279 +.59606836,1.1059617,.64033674 +.81864072,1.372014,.39977879 +.73581855,1.5486431,.44956128 +.83989363,.03051059,.56944737 +1.0025109,.01675999,.42654578 +1.2593511,.04937931,.93416827 +3.4958043,.13176856,1.0593421 +.98116644,1.3072536,1.4564044 +.64846019,.80825264,1.0871915 +1.4024321,.88179462,.01852286 +1.2275377,.04732896,1.1609788 +.3595613,.94923272,.06668363 +.46892822,.27622347,1.1219413 +.50729076,1.9992382,.5458649 +1.4999746,.47285567,.02060174 +.64892799,.66761759,.4864606 +1.1263432,1.0815918,.14643384 +1.219739,2.0836788,.93997999 +.63716777,.25592879,.34916946 +.29804402,.55762621,.22130605 +.27710978,1.8336306,1.7133213 +1.4769027,.36207272,.46661507 +1.3158693,.4464497,.10638109 +.66994994,1.1366482,.48925341 +.89906595,.21101949,.89920665 +.62550996,1.6115016,1.0809287 +.46942898,.96736808,.87606501 +2.5656195,1.1956998,.20493489 +.80736015,.52009746,.42895518 +.60708135,.95885522,.61705769 +.93372025,.78224704,1.3185454 +.8383143,.42047029,.58452121 +.92223428,.38803263,.20129255 +1.1222316,.507757,.69448532 +.64498403,1.7150512,.47480682 +.98116592,1.0171323,.68324309 +.51282077,1.0428071,.99185336 +.54999632,.93829113,.58604408 +.45747035,.40469396,.03900327 +2.0267434,.20740262,.53048531 +1.3354163,1.7624826,1.0004481 +.80416896,.19764555,.22374304 +.36893274,1.1464227,.30045822 +2.4138902,.64674746,.70125968 +.70327724,.54752948,1.9706348 +1.7576317,2.8825147,1.474502 +1.6674026,.02732678,1.1930742 +.90843916,1.3806752,.30858234 +1.279131,.671862,.02546716 +.7761549,1.0496359,.08131854 +2.8790826,.21025638,.95195214 +.5824352,.26685338,1.3707871 +.4935384,.43639264,.38086591 +.57030776,1.4143432,.32625267 +.74607684,.19215271,.72848272 +.89354691,.86134435,1.4210157 +1.3649649,.42968782,.03600328 +.64824166,.43114237,.53490206 +1.5989928,1.1485486,.30238267 +.90005089,1.0057829,.67994909 +.456397,1.6718462,1.6414764 +.98288681,.80939758,1.294801 +.50468241,.93864089,1.3154712 +1.9990662,.10439718,1.0737276 +1.2669723,.34730073,.20753127 +.78197495,.65406821,2.2152157 +.49559487,.06654148,.32844566 +1.9798367,.72389361,.62671162 +1.1459788,.17247828,.96600658 +.37466449,.26641212,.57763142 +.43509411,1.8015642,.2120065 +3.2398836,.17086248,2.8685466 +.85862353,1.4823041,.36598423 +.63379358,.07882451,1.335847 +.87805914,.30966551,1.5405354 +1.8713204,.98343079,1.5054611 +.86895578,.67675521,1.9508119 +1.094392,1.2892271,.87825919 +.79191239,.22440972,.1369869 +1.2470746,.73362038,.23661868 +1.3119906,1.230764,.19084529 +.58399684,.10745158,.45966534 +1.3343151,1.4881376,.80330193 +.83403412,1.9983426,.12372391 +.30600406,.64854233,1.5714518 +.65505509,.7025437,.02934561 +.58160047,.14193853,.99121375 +1.2011906,2.2023727,.06500649 +.81265882,.26048351,.15813488 +1.3384936,.73869643,.77342049 +.42310455,2.2737388,.18123885 +.98530661,1.9125604,2.1156012 +.68797364,.25507074,.75560514 +.94193203,.03669186,1.0983138 +.63477883,1.285463,.58312792 +1.4960767,.54245096,.10329333 +.74476911,.91207555,1.766486 +.8098164,.39531056,.74773812 +.46092023,.81748075,.64509433 +.92733139,.09151197,.9345227 +.65377655,.26345472,.44197043 +.69453993,.1336625,1.0746929 +1.1601978,.88471185,1.235838 +.73502017,1.2476439,.05453179 +.48161502,1.5826541,.63802303 +1.64479,.20960467,.26160066 +1.2233733,.32945333,1.542933 +.59015595,.72625343,.29699278 +.66133737,.16270576,.52592673 +.42663267,1.1058772,.65036374 +.67286729,.14235616,.37566508 +.8280353,.17517072,.65098221 +.610291,.45536976,1.4524045 +.51246787,.62508519,.64885631 +1.110299,.80130038,.93350293 +1.2598047,.44717734,.46318254 +.52527844,1.3182964,.98816939 +1.3170878,.29295408,1.1409488 +.59886539,1.4034396,.24602785 +1.3096824,.1029524,.87116834 +1.0742662,1.2246572,2.5132872 +.54587541,.75883995,1.4929834 +.32411094,1.5932248,1.1509558 +.58207041,2.2374796,1.1412954 +.82646795,1.2923571,.65824841 +1.3969509,1.0962041,1.6240213 +1.1950676,.81679793,1.75696 +1.2117038,.74266788,.14947476 +.74951761,.3056412,1.9081061 +.3815647,1.4840809,.28695085 +1.7985347,.58036955,.01275122 +1.2508774,.98480185,2.9870219 +.68417264,1.3458628,.01950065 +.6597072,.15278334,1.612328 +1.2221245,1.3168778,1.7353783 +1.001011,.06032347,.12809883 +2.1420901,.16817689,1.7884619 +1.2389385,.51556678,.45119934 +.96176632,.09064157,.10018164 +1.1348713,.36129467,.20316719 +.83441196,1.0992644,.54757303 +.93267649,.95454375,.46300386 +.77078974,1.6179943,.37911394 +1.1128242,1.4010952,.80151364 +.56068446,1.2163256,.13919673 +.26897972,1.2383158,.19045223 +.76884428,.53572258,.40661111 +1.0041175,.17931081,2.0912314 +.59391292,.84937653,1.0074187 +1.7221708,.07343316,.9115745 +1.5143282,.19223214,.25393218 +.35357931,.59291934,.01282394 +.75958037,.214069,.44544894 +.39090979,.73245079,.66858694 +.5026805,1.6822675,.20874505 +.31896652,1.9115295,1.0859778 +.53599253,.66214803,1.6160918 +.80140216,.62293134,1.2492768 +.39348732,.42617522,.38851735 +2.1593273,.56806405,2.1464822 +.55947109,1.0859484,.16556623 +.63742582,1.33873,.34679981 +.59032908,.06312213,.68705046 +.74517297,1.9875185,.00332085 +.42361574,2.5224975,.70741737 +.99299124,.20018002,.67418878 +.458443,1.3070984,.27607243 +.9860351,.26072717,2.2716331 +1.2541498,.26552463,.2924726 +.54225273,.16770613,1.4660571 +.56422161,1.7780589,1.0159864 +1.3530072,1.0946024,1.124013 +.94566275,1.4726896,.47542468 +1.2368618,.50440727,1.5744463 +1.2111245,.30547233,.71244234 +.60083616,1.4984649,1.7783506 +1.1012918,.13130562,.90073099 +.79734986,1.2611662,1.9196574 +.66545881,.47048212,1.0995655 +.76907128,.60708688,.63595577 +1.0037091,1.7641145,.29692962 +.83076334,1.2852101,.8784542 +1.6097491,1.2915433,1.5040879 +1.2550993,.85616003,.43958622 +1.4656746,.6138953,.90553208 +.60053081,.32585133,.58237208 +1.0852995,1.4978361,.38984939 +1.1411494,.38727493,.51843858 +.71672177,.20805375,1.4506061 +1.8926013,.05871985,.29160878 +.82075028,.22355189,.3777171 +1.4811764,1.7091625,.81460893 +2.1104137,.76594269,2.6815656 +1.3689939,1.1177835,1.4022721 +.93925332,.73473595,.77620858 +1.8540243,.32991506,1.6440733 +.41744695,.81176824,.72076741 +1.0566408,.19565031,.99667984 +.81694093,.37048833,.88333974 +.31184563,.25326182,1.8787557 +1.4204189,.08343609,1.4709844 +.57592912,.70017395,1.1943197 +.66494757,.17694721,.27261418 +.51356669,1.8007978,1.245002 +.86872776,.45119351,.17581102 +.53610627,.18261016,1.0356878 +.52391556,1.5063021,1.1445692 +.79212353,.32033684,1.166105 +.56324207,.97135966,.19647746 +1.6650311,.59188726,.36960333 +1.4655017,.88011655,.86061587 +.65860423,.88950643,.85092356 +.93246498,.73152121,.3112409 +1.5936414,.38481048,1.8680891 +.59458007,2.0509137,1.8256121 +1.2930177,1.5431976,1.9899946 +.46958194,1.3572171,2.0816552 +.5848394,.18838276,.57673487 +.34502269,1.9138784,.48160466 +1.2440505,.00364908,.23436195 +1.1076447,.310529,.50120539 +1.1456412,.0363895,.00753203 +.76416997,.83114547,1.6300672 +.93957207,1.9639054,.75466265 +.91377319,.29845256,1.5315575 +.65750003,1.0415112,.53907885 +1.0514144,.6041622,.34113087 +1.0477843,.00876135,1.3678537 +1.3623551,.42339652,.48773309 +1.8140417,1.2202117,1.2485779 +.55993061,.17788152,1.7187185 +1.6005543,1.1928594,.28333118 +.57378723,.54392049,.03767954 +.92989784,.15554217,.62942483 +.51626552,.95259563,1.6568065 +.74578726,1.4251771,.95145435 +.32669479,1.9129023,1.9829131 +1.3452257,1.0162313,1.1938675 +.48151308,1.9031697,.43532992 +.58903959,1.6278141,1.0855526 +.87253786,.06456974,.10096787 +1.0682631,.12407726,2.4669878 +.73238298,.68159633,.76540842 +1.1021369,1.5821852,1.1653346 +.48894509,1.335285,.7533569 +.98463305,.43349568,2.1224996 +1.1143399,.02988768,1.2657578 +.76431265,.61057087,.32396442 +.74277336,1.461508,1.3563629 +.73355491,.70144162,.61831702 +1.5342156,3.1249903,.24711755 +.42293355,.75905602,.01950412 +1.3104457,.70577525,.0002263 +.49971031,1.9972798,.46297493 +1.3688063,.72088886,.37885758 +1.5184376,.87028992,.93031772 +.49746406,.08253417,.10830526 +.54869677,2.0690389,.24153687 +.81262419,.10733031,.41876122 +.46373294,.47301149,.81096903 +.24763614,1.2482717,1.3514701 +.80276358,.82849492,.1177264 +.83075343,.43140062,.98095463 +2.296558,.1834261,1.5384931 +1.1626005,.51838353,1.3228342 +1.787205,.22057475,1.7472692 +.92106937,.00372581,.54771756 +.92249576,.22878895,.52025502 +.52672032,.63354398,1.0139729 +1.0451274,1.7578383,1.8347557 +.67744137,1.2244403,.83636236 +.60376932,.13186044,.37287214 +1.9441958,.46605706,.01654511 +.41661282,1.2431768,.32864437 +.99635467,.76831279,.61675207 +.71935359,.39711463,.20677664 +.46388735,2.1431608,.43356217 +1.7565025,1.6185272,.90536757 +1.0427044,.60020634,1.1057876 +1.0624657,1.7753939,.42925051 +.63379398,1.4989031,.23205591 +.50927866,.38424088,.06589911 +1.1378958,.43663759,.3927621 +1.0205408,.23904504,.3971942 +.19537937,.33636415,.15359368 +.489385,1.2253187,.35409263 +.8639452,.00898304,1.4170171 +1.1016575,.34028268,2.421332 +.53402728,1.2386121,.09540179 +1.0025116,1.0781369,.03356563 +1.583734,.0450583,.07833013 +.63263264,.11960774,.40052138 +1.2174356,1.1022769,.36234227 +.68243602,.80017556,1.3084544 +.71569327,.12021411,.3012327 +2.0298905,.70298416,2.4360897 +.31800226,.59552842,.35762967 +.89913513,.48714456,.14489822 +.68854511,.62673783,.06859655 +.81633111,1.9807548,1.9936032 +.98111427,.17153292,.22840942 +1.2708788,1.8171087,.3615658 +.98322936,.97842936,1.8253055 +.79831294,.67110776,.5411116 +1.4602641,.14153634,2.0845241 +1.3425285,.79410783,.56125154 +1.052965,1.0817798,1.0682995 +1.804407,1.1161157,2.6107024 +.54962016,1.8523353,.49490548 +1.0492214,.17996045,1.1374429 +1.5503105,1.6577982,2.3177995 +2.0910127,.52714917,.75515206 +2.2635059,.78704591,1.3500011 +1.3890783,.47372732,2.0797019 +1.1610026,1.3224189,1.2073957 +.91803147,1.0484525,.8723979 +1.9827664,.96482284,1.0000006 +1.3307215,.37322821,.27079916 +.99449811,.46794597,.14664153 +.74684641,.4805025,1.4138008 +.55945367,.46631077,.41872557 +1.5967415,.63220853,1.6475711 +1.1833829,.27417743,.16630114 +.8937789,.46191896,.72689022 +1.8046963,.30128452,.56692556 +.38038524,.19828854,.07200768 +.99918473,.90216524,.09698675 +.63532145,.8484269,.39683803 +.64788598,.76420117,1.1312125 +.94027151,1.0086864,.35759573 +1.0920109,.15136809,.22020807 +.6800344,.08846542,.16532426 +.75198818,.54838225,.15574316 +.55146416,.15328807,.58116672 +.69352589,.23276937,.35749237 +.6951792,.93810654,1.7293432 +.26161037,1.597815,1.0300468 +.41379409,.39687655,.49975705 +.40431839,.66476388,.20230636 +.61173424,.88621793,.54883969 +.90971831,.34250936,.80367904 +.56408823,.18983422,1.2261381 +1.0329707,.37501839,1.1171379 +.79810272,1.4048329,.46671934 +.50157181,1.1793511,1.3851933 +1.2798594,.43887131,.95358544 +1.4880858,.2585804,.10738798 +.74257912,.74503969,.26425311 +3.9986607,.03603427,1.6592708 +.85565398,.54309272,.35690496 +1.0549578,1.5147828,.58429285 +.96181175,.69749502,.87831152 +1.4501329,2.19826,.25603587 +.9261832,1.6832923,.37126674 +1.3276619,.57765052,.68486532 +.37420084,.25648433,.07510996 +.70510762,.42449241,1.1349386 +.51153433,.81046266,.28439064 +1.2671305,.5973786,1.4793553 +.64345604,1.1701469,1.9238029 +.74992077,.07857721,.0136137 +.71015311,.21236401,.07316321 +.75788919,1.9090836,.98071235 +.30185817,1.5173074,.13904485 +1.5488582,.13042907,.13318858 +.38271732,1.7544739,.04238311 +.74689489,.63386084,.38826918 +1.5542573,.66350565,1.8414737 +.75248465,1.4020145,.282352 +.28557554,1.3763644,.34698597 +.95950907,.90998449,.84035339 +1.7227137,1.0858355,1.6314018 +1.1530856,.44155068,.9439467 +1.462445,1.1981925,.40072794 +.38854704,1.0505491,.86756309 +.3168568,.47564213,.16826999 +.6088783,1.0292785,.09300577 +1.8487006,.35660577,1.0092455 +2.2374449,.12489157,2.1842515 +.90753801,.59530658,.72919519 +.54568312,.11617841,.62691097 +1.109227,.05513408,.16628238 +.95134986,.69713183,1.0270921 +2.2368921,.69907812,.78761712 +.90286508,.13008882,1.4274733 +.77561525,1.4568803,.50649163 +1.8023654,.37048826,1.1515994 +1.3491406,2.4030923,.37252103 +1.1166927,.1095541,2.1863433 +1.4410181,.52829315,.60170137 +.6325816,1.9472601,1.0241222 +.9021938,.5364375,2.9860231 +.95512059,.53862919,.60479999 +.83717792,.59024965,.50751797 +.38319787,.79125615,.53448059 +.63238726,.28197407,2.2369676 +.72292013,.02621015,.63903996 +2.5191784,.04674631,.20253521 +.33201516,.89975373,.28579115 +.8042737,.64354354,2.1132185 +.44156672,.01554397,.78340108 +.4789885,2.5684093,.00357527 +.50777105,1.5030451,.02466863 +.46903137,.50942101,.29529995 +.93809897,.52643607,.04411137 +1.3547893,1.2766806,1.888115 +1.0261491,1.2032952,.13324676 +.85166214,1.2723142,.21943478 +1.2950874,.59784804,2.2379904 +.59468973,.72168262,.59739883 +1.5362652,.11879524,1.2915649 +.80822995,1.3613275,.88294014 +2.6691472,.64780201,1.2940826 +1.3042522,1.3623633,.41796089 +1.4396539,.49318823,1.0951222 +.72375657,.60586671,.64106571 +1.1652461,.32901803,.1714425 +1.5356141,.27794057,1.4184096 +.63581543,1.2184284,.13929298 +.95753863,1.1817838,.74912466 +.77214247,.73999512,.002398 +1.0184344,.93239911,.606403 +.59239461,.54458441,1.6249764 +.47546554,1.4492288,1.0946039 +.55148488,1.1393485,.26860531 +.72631796,.36647794,1.1895297 +.4001053,1.7447614,.12346476 +2.140851,.04032776,1.3940424 +.64722633,1.2287155,.26865315 +2.2380715,.09763233,.29253289 +.6404729,.20169868,1.0763423 +1.4267187,1.0152764,2.7092706 +.784669,.74184415,2.1026116 +.62999426,.9669279,1.9952419 +1.2181432,.80494712,1.3198743 +.92288033,.55037896,.28518526 +.48360364,1.2049007,.44182882 +1.4549717,.57664848,.99945222 +1.0965007,.93004196,2.1995239 +.87542508,.5081142,.02368834 +.52632783,2.0752735,.92240883 +.40276618,2.0335044,.11509733 +.32717798,.67759931,.24053149 +.65737768,.42686169,1.1619671 +.69538388,.56387804,.79734517 +.85767953,.29338661,1.4385014 +1.3220005,.39732894,1.6330407 +.39178637,.20294422,.64803941 +.47049905,1.1258958,.31599045 +.78877065,.27917956,1.3353008 +2.0061291,.09822792,1.050817 +.80625758,.40138876,1.0823648 +1.3768147,.82242418,.5244455 +.71560222,2.2139381,1.3014376 +.7539811,.98032094,1.2908627 +1.4737934,.83136296,2.0042762 +.925306,.5833758,1.1835223 +.52326006,1.7217322,.25668487 +1.0150543,.29132715,.49944728 +1.3575969,.8814103,1.5799528 +.80151581,.22503984,.52322282 +.79858666,.55811799,.69217982 +1.2162792,.91475085,.07420068 +2.2958627,.26818643,.37402163 +.79441913,.1444569,1.1711592 +1.5798826,.90900826,.15828086 +.54087903,.68140907,1.5597648 +.82505196,.12518507,.5161439 +.58931369,1.2981088,.5714202 +.96180903,.21066198,.00595342 +1.123696,1.4769279,.75574653 +.56838836,.6386693,1.3238423 +.90669017,.70298278,2.2449799 +.84887451,.32574312,.21767976 +1.5630489,.07775615,1.107803 +.58601637,.24913679,.61264751 +.29041163,2.1471822,.45791757 +.68345331,1.1558114,.44793635 +.42831226,.59553346,.7067905 +1.6259933,.73756109,1.8887364 +2.0259678,.16737519,.97919078 +.48937052,.35684802,.06641625 +.72831633,.50498794,.44576538 +1.9218344,.42325121,1.1159769 +.73670956,1.2156204,.65879327 +1.8991322,.09974941,.7207959 +.71169562,1.1134192,1.920988 +.88198922,.19203549,.2846151 +.63389794,.56286403,1.7680898 +.81656022,1.4071404,.48266344 +1.1586242,.57556494,.28166724 +.9847077,1.1742313,.8633733 +.94675307,.98208739,1.0879273 +1.0908559,.73408224,.13634308 +1.0496163,.7171714,.20970955 +2.3038042,1.4778683,.5123316 +.56523119,.76721902,.30706862 +.75975816,.78917072,.88969108 +.70700939,.62814311,.60195333 +.61909798,.05409055,.8182851 +.70284301,.81222636,.21536025 +.42451404,.19708128,1.0402306 +1.9338921,1.1594442,.64727783 +1.0960791,.0579815,.02915473 +.83235981,.67609631,1.1478557 +.2982037,1.9928084,.45580891 +1.5989932,.39240484,.77825024 +.4838787,.57724742,.76395339 +.92021991,.48970721,1.3984136 +.63603813,.18753426,.2462641 +1.0231435,.14461617,.46205995 +.4678192,.37519199,.60639159 +1.1852883,.31199118,.75988309 +.92077585,.24202127,1.1371746 +.3937555,2.4782771,.10706466 +.49350559,.60264437,.20388018 +.49430013,1.7213759,.36637217 +2.685083,.38080658,2.1720328 +.67232012,.7785405,1.8123802 +.41331295,1.3035764,.03970415 +.66569412,2.0998075,1.3630631 +.90399755,.52214477,.48201485 +2.0541913,.58992872,.4429014 +.93647426,.32355438,.04460409 +.92593293,1.2897212,1.7846262 +.62134333,1.7373439,.45449645 +.60660669,1.9766513,.02080713 +.94586454,.94994969,.12704785 +.54477804,.03438963,.84328057 +2.0558834,.58109781,1.3277336 +.27280029,.9691874,.63371097 +.5796599,2.224924,1.1676708 +.34384947,1.7667801,.90010257 +1.087972,1.3142489,.26718278 +.96200422,.24401685,1.0363619 +.33514596,1.4670437,.83599092 +1.3646771,.19022008,.94937605 +1.016129,.41896094,3.5123283 +1.132367,1.0515597,2.0754755 +.27148211,1.8777469,.1247024 +1.5710536,1.0564122,1.0975556 +1.0562888,.32947867,.57602521 +.36592855,.40220347,1.3495425 +.79937409,1.2494332,.84230189 +.7449873,.68814196,.03250438 +.8007497,1.3520108,.38940603 +.7238244,.49254242,1.0982233 +.72569725,.25460129,1.0227809 +.5059654,2.9425303,.8924649 +.95905198,1.6937621,1.7118508 +1.0386422,.42519668,1.3763511 +.74356325,.35570447,.54323835 +1.7621065,1.1802796,.05672815 +1.4290439,.48729115,.56642153 +.59580332,1.6335423,.19504977 +1.62032,.05145587,.05505265 +.84223485,.44594387,.80966555 +1.1002078,1.1411236,.6861441 +1.0668829,.56715925,1.1824324 +.5466867,.95467049,1.9759948 +.8262092,.35649578,1.0603225 +.7233776,.01475469,1.0861943 +.58611647,1.1310883,1.548111 +.85374151,.50520318,.68483738 +1.3842757,.1004451,.99225933 +.868603,.06881575,.17522551 +.54179558,.56235687,.50881698 +1.0003113,.44795042,.9789422 +1.9955633,.52613088,.22924974 +.95141506,.9284424,2.8626514 +1.5189673,.33447931,.44002103 +.91553989,.11064095,.92171988 +.61302979,.41116767,1.7801427 +1.6581768,1.0445033,.20358584 +.98532543,.25124881,.28761507 +.78560596,.53634072,1.5593055 +.54207082,1.6143496,.45304172 +1.4284734,.87308502,.54440114 +.5318752,1.568972,.68134018 +.35713559,.21288785,1.251447 +1.523858,1.201532,1.6714824 +1.6073299,1.8079028,.23258898 +.86095805,.52139593,.55357847 +1.0011523,.980647,.08048348 +1.0927603,1.0609031,1.5435432 +.56112971,.31212326,.89035426 +1.4707607,.55526556,.43878836 +.65041484,.67407058,.12314874 +.55519864,1.6004775,1.0746642 +1.009162,.91897256,1.481234 +.47780571,.29366762,.02575353 +.86407612,1.0333402,.2947585 +.71698696,1.2642905,.38724453 +1.3484813,.43831806,.96918395 +.57144404,.72634007,.59935574 +1.0038484,1.2486228,.74518209 +.89167152,1.260276,1.1266412 +.62942854,2.2697483,2.4005101 +1.3055154,.42816253,1.1549644 +.55454885,.75833677,.73748695 +.53406361,.57717727,.23371731 +.61410935,.93609268,1.0710484 +.77339424,1.469473,.88807411 +.69793959,1.9537474,.08168566 +1.3608811,.00172221,.21128191 +.32984013,1.4584781,.15390472 +.82345982,1.1354082,1.5607559 +.26243252,.90201057,1.3523424 +.76674158,.36155717,.30728165 +.98660531,.25811249,.80727499 +.89210389,.94006019,.14103671 +.66311578,.62924087,.32767935 +1.0020185,.50272836,.62917575 +.75716727,.01571572,.29425813 +.82046578,.94955052,.21813826 +.37161564,2.5555797,.99915436 +.76252585,1.1778122,1.0167331 +1.1114003,.05246131,.77353996 +.56039856,1.0794448,.48911859 +1.2029235,1.2334308,.41567598 +.33450592,.85789476,.82901084 +1.4845661,.34344892,.21302226 +.33291452,2.023685,1.0124414 +.47995763,1.6235894,1.2258477 +.32948303,.83212576,1.0423016 +1.6070581,.01543011,.2983218 +.20087837,.62997333,.2820715 +.90457295,.1223539,.75720676 +1.064245,.54678998,.52311684 +.61798555,.33995938,.07081282 +1.7418432,.16061103,1.2255896 +.78501419,.14103104,.33995339 +.57554562,1.5775726,1.4322372 +.71384953,.0786898,1.1557401 +.91876368,.41353856,.63450039 +.64226714,1.0738739,1.0380593 +.77486662,.68754103,1.1705141 +1.097164,.78676931,.35154659 +.71184683,.00350671,.13527318 +.7688974,1.1398561,.48617607 +1.6582173,.47212353,.55116485 +1.0024303,1.7803977,.88493162 +.93830933,1.320643,.45378799 +.40398897,.69906708,.02032839 +.71972722,.91150101,.68885512 +1.1368656,1.3525211,.19037729 +.75279557,.37543529,.8647139 +.51830944,1.5806756,1.4747212 +.66056783,.54246735,.65982041 +3.5734887,.06056354,1.4546866 +.57535762,1.4020288,.29388051 +.76773426,.56641943,.29080257 +1.5546747,.5521293,.64788768 +.67138868,.19204903,1.9949916 +1.376377,.49826664,.10370926 +.7295906,.07294641,1.0578065 +.6834783,.02366408,.94581165 +.85952917,1.2383808,.08598484 +1.2227814,.71011603,.62070776 +.33632105,.64919035,.80285624 +2.5308447,1.2803957,.30706017 +.64913392,1.049801,1.1715313 +2.0514787,.1399035,2.1842527 +.71930628,.92192955,1.9402155 +1.3049644,.03516973,.34514034 +1.2259528,.42617342,1.1261932 +.35823134,1.5703332,.9538068 +.61632838,.60231319,1.9178376 +.97724822,.99519613,.2507355 +.9237506,.6323579,.69262837 +.63881689,3.2683319,2.395281 +.61133954,.37170229,.1175938 +.83725655,1.2967729,1.2595073 +.45329288,2.0606931,.74088684 +1.640272,.37796164,.42958567 +1.0629115,.22778677,.85053498 +1.4809599,.11384427,2.0899556 +.98142165,.63561781,.93124233 +.64924465,.32063665,.58245648 +.67110166,1.6955971,.46439842 +1.5142303,.0412434,1.1391194 +.80527852,1.8941945,.49784124 +.88293837,.72216445,.64803487 +.84022363,.88196786,.36266557 +.9069376,.0294121,.29562335 +.83044608,1.2630937,.36255994 +.39206554,.35557191,1.5253905 +1.0867431,.39532098,1.1362874 +.56287558,.18569215,.06669859 +.57763553,.82321689,.56937484 +1.5904805,2.3049359,.51249377 +2.8772199,.03830335,.40203723 +.69106248,.29124117,.91047212 +.80622661,.93577676,.73342899 +.57046628,.96077097,1.4710608 +.66332878,.79373915,.37598856 +.93875471,1.0762463,.74837259 +1.5875087,.7193543,.40390013 +1.3245143,.30751547,.3848864 +2.1569713,.04573602,1.3104742 +1.52536,.17717863,.7021938 +.51535201,.94507615,.69990728 +2.3845463,1.3089046,1.702817 +.67443077,.3929961,.09203278 +.60939595,.63538385,.57612567 +.63469217,.36830374,.33088502 +.6724504,.35814635,.1375726 +.91831477,.74201982,.75556462 +.9027765,1.1845388,3.4576258 +1.0468416,.76347982,1.6553259 +.28745016,1.9287677,1.2643796 +1.2203174,1.4558198,.34868503 +.72142087,.35820294,.70440216 +.68985553,.09871565,.30708528 +.51549713,1.0981749,.21722969 +.4644785,.85546125,.11454018 +.60006813,.00140088,.15133141 +.72568845,.45242625,.07935522 +.50508897,.95822767,.25392335 +.47727861,1.1647129,.11636062 +.67760857,2.3995211,1.7170776 +1.0057219,.04946626,.68401252 +1.4484117,.23523756,2.5830179 +.88128899,.802208,.60444199 +.69683584,2.5648962,.28683924 +1.06561,.41315145,.2044611 +.57584041,.20085167,.14061208 +.9435554,1.090929,1.1030998 +.88203026,.93936625,.35519893 +1.1271193,.22183983,.50199017 +.66036949,.09844351,.13007565 +.575272,1.1834435,.18401349 +.69656773,.95610126,.70714932 +1.3420778,.0908619,2.0325897 +.63187931,.81412686,.70567224 +1.0787192,1.8943428,.76220867 +1.0728922,2.1607768,.85453251 +.50368564,.57950848,1.7209755 +1.8254278,.18350506,.86947072 +.96712785,.48028936,1.0891257 +1.4228196,.0603218,1.0522965 +.25755114,.25025343,.53204469 +.5151619,.66896436,.93773122 +.50136275,.77113414,1.5027736 +1.7525248,1.3867865,1.0840701 +.86828806,1.5295202,2.2229596 +.75917944,1.7393222,.1350729 +1.1002191,1.6096466,1.9999075 +.229056,2.5535483,.93264338 +1.3693334,1.3336862,.22908764 +.78461327,1.018972,.31056104 +.55732583,3.7058837,.45075997 +1.0219698,1.4389009,1.0004363 +1.2175811,.27658875,1.7888664 +.61873299,1.5965727,.76181519 +.51456733,.78118679,.2087546 +.44958061,.8352795,.58979967 +.92870404,1.1010318,.16065201 +1.7317073,.79568363,.52531337 +1.2519079,1.1710661,.51958391 +.39315117,.75741472,.24447577 +.49656551,2.5165676,.20302189 +.57871277,.62352951,1.3098541 +1.0443922,.36795773,.41726424 +1.7736063,.12995095,.5018244 +1.3182636,.34059361,.45268832 +1.3408278,.44007653,1.8923629 +.81794276,2.0413592,.32327963 +.61575219,.40131803,.53240671 +.52394207,1.1583275,.47841277 +.73619389,.25658234,1.1424387 +1.1343932,.80362172,1.1916695 +.26877964,1.0687756,.38745736 +.49529071,.19398668,.86872343 +1.1253485,.06198675,.57291156 +1.7832497,1.2293809,.85395172 +1.0669685,1.5208343,.35651972 +.61163635,1.8878412,.7354279 +.81065698,.2952614,.19337336 +.68687377,.97732555,.16184261 +.55268673,.84405059,.76119011 +1.4937764,.51275353,.89625004 +1.4223273,.62037001,.73899353 +1.9735044,.99129763,.06198076 +1.7089727,1.3920793,.26726306 +1.4782273,.21373493,.59907415 +.86288201,.76259931,.90584802 +.70989257,.55664737,.90441232 +.76991898,.30618172,1.4246803 +.53880874,1.0753368,1.5722511 +.94684642,.03694038,.55335873 +1.5834193,.04260117,.64751107 +.55836404,1.2660956,.84234629 +.95544078,.15439925,.21763776 +1.089424,.53992145,.44391855 +.50861911,.20490062,2.2705518 +1.4591059,.49978233,1.0537308 +1.0343263,1.1245334,2.038758 +.38054377,.93101655,.03900564 +.59608276,.69311675,1.2185883 +.8669984,1.1384887,.73123043 +.6518677,1.2283866,.33913146 +.39294786,1.0658194,.4530377 +.60585163,1.0053731,.19114972 +.27756601,.14991487,.04140283 +.64085837,.20407529,.03877341 +1.1367845,.27375972,.87840947 +1.3597192,2.3547834,2.1558136 +.67523,1.5342532,.79098798 +.84521071,1.4082381,1.087044 +.70388053,.42122611,1.4144227 +.89932067,1.5063146,.49872029 +.93467455,.30170463,.10721941 +.59422117,.95265281,.75118205 +.9189371,1.0988059,.93591028 +.893457,.30835542,.95722283 +.73045739,1.0386272,.26387613 +1.1369733,.08942444,.10133989 +1.008201,.54505942,.87799209 +.66429702,.55353075,2.1620162 +1.5903169,.79404774,.35840569 +.63325846,.27527599,.84235839 +.33071545,2.576386,.42884773 +1.2735033,.20942585,1.9834233 +.74667651,1.9538103,.54992063 +.951852,1.3435194,1.3397855 +1.4239015,.39833392,.11958316 +.5247817,1.9090789,.5291191 +.91761252,.58578042,1.1360626 +.59718246,.82627341,.84709337 +.70184994,1.9354554,.15554921 +.61636433,.51156806,.28728822 +1.1629085,2.4358509,1.3532112 +.67795413,2.4524616,.05155405 +1.0414902,.29389609,1.6658115 +.71645893,.81464155,.371492 +1.0382044,1.4774884,1.0063664 +.70543488,.65103229,.60317547 +.57226456,.93419845,1.1263369 +.69524175,.41895909,1.0063672 +.6837145,1.002253,.96139436 +1.4897435,.38234074,.8622629 +.41902246,.47603539,.68311933 +.5158577,.9618899,.58655786 +.69364979,.62972853,.80004758 +.35493308,.69228109,.08457458 +.62046031,.06017234,.55322688 +1.153889,.42615341,1.5890869 +.70849265,.84720923,.41636334 +.68630382,1.1832883,.42424147 +.95137478,1.045479,1.0818447 +1.0447267,.93628497,1.8712036 +.43234559,.88809372,.02824804 +1.7468872,1.0919874,.28068319 +.45105574,.94586894,.95649918 +.50360418,.01129948,.28772975 +.66796707,1.2525573,.62715932 +.59102603,.76645449,2.4411517 +.55429793,1.4362549,1.8519583 +.6822185,2.3916556,.62752051 +.67848811,.18883784,.40310134 +2.0452971,.7955603,.49564255 +.39229813,.6153164,.06737944 +1.497548,.16445776,.38918663 +.36290332,.84000359,.17939696 +1.2229307,.81436095,.49880041 +.875607,.36563027,.20466429 +.89712937,.64376464,.3988171 +1.1030703,1.1330481,.95951737 +.5042245,1.4626328,.3138774 +.81483607,.10290034,.94337301 +1.7460749,.49422707,2.1349629 +.47201147,.56239884,.6024463 +.88809922,1.1243458,.61885308 +.333986,1.9814829,.24114105 +1.5140912,1.1204797,.65238774 +.91746029,.04863687,.11987251 +.53154781,.33179443,.97337321 +.31643974,1.0680351,.67446646 +.65277872,.55168936,1.0467241 +.82504886,.46348183,.55359175 +1.8180262,.45352598,1.7074452 +1.4093359,.18730027,2.270479 +1.6751185,.8591219,.15696459 +.8242954,.30863728,2.2473274 +.78494307,.56572308,.10306254 +1.0046884,1.0081315,1.5298332 +2.0637819,.23050127,.65309705 +.83762307,.65771859,.57150673 +.47893039,.17848423,.4186376 +.32592014,.90345676,.35008521 +1.71176,.02034252,.67094195 +.61411786,1.0763916,1.0063148 +.68161143,.79344504,.42837425 +1.1630079,.31995012,.33222295 +.55887032,1.0643429,.87299881 +.4478608,.23559216,.55265839 +.96173478,.33862118,1.7311233 +.60555887,.88839096,.05004166 +.3956547,.03967719,.5691849 +.53862223,1.1335241,1.1424578 +1.1288963,.71817911,.36769487 +1.1041099,.64731594,1.6915911 +1.3663544,1.2367286,3.2357662 +1.5918459,.52405363,1.2450381 +1.1523505,.79728809,.76368135 +1.2665266,.06296581,.4726912 +1.4229969,1.0228907,.85273662 +1.3666873,.37938628,.80216986 +.81612782,.15178866,.12388163 +1.0279693,.44194038,.11745034 +1.2046929,.77266949,1.344815 +.65058394,.45850867,.7599974 +.57690397,.35559359,1.558769 +.9117866,.17949849,.3374793 +.53742516,.48117544,1.8423542 +.38435,1.2742242,2.2718523 +.54936799,.66026011,.75992842 +1.2274396,.65365302,1.2567505 +.85023267,.75863096,.42037414 +1.2918119,.0883598,.77199239 +1.6769244,.3993352,.12082004 +1.185178,.26776108,1.9116793 +.86294447,.11436163,1.0769743 +.55916506,1.6453619,.96654098 +.39867592,1.6447722,.75295586 +.50922374,.45341559,1.288752 +.79957533,1.2947189,.51944892 +.45484686,.62141717,1.4554974 +1.1485157,1.1688963,.29872297 +.30883222,1.8702957,1.4332391 +.62971138,1.4084315,.67892322 +.74615579,.92283162,.47738381 +1.2072419,.15210796,.57653221 +.32871733,.63581001,.57074747 +.89102892,1.2448101,.36440594 +.76232726,.58934136,.96010176 +.68378777,.96413044,.26017324 +1.1337346,1.1785255,.92230981 +.90776782,1.6344818,.88258702 +2.0182942,.06625374,1.0143804 +.83022869,1.6636112,.39423522 +.54447905,1.0967518,.33353205 +1.1371563,.36430131,.81332046 +1.5414773,.07320302,.5302207 +1.9672404,.177065,1.3577704 +.70001658,1.009277,.68685838 +2.3635256,.20958313,1.9878656 +.63779021,.75400985,.64577644 +.99021019,.85208953,1.6032634 +2.7839807,.18968121,1.4859552 +.57554877,.29655984,1.0258846 +.53549,.76269899,.46892812 +.6852823,.92537345,.56738002 +1.7783756,.13395046,.44348377 +.92802325,1.6579305,1.0938795 +.36333622,1.2272073,1.4272961 +.41460221,1.8054598,.02335763 +.61699384,.50234198,.99692867 +.60099734,.68343842,.00298001 +.95002027,.09757998,.9435455 +.41386216,.94799671,1.4996055 +.65038114,1.0589957,.11813468 +.81036843,.1689983,1.248216 +.66633012,1.7249769,.40395455 +1.071855,.32533584,1.1936184 +1.1125162,.17663135,.91931344 +1.3135206,.02384607,1.1432806 +.37946996,1.8063866,.32064766 +.85791747,1.0618583,1.1620933 +.58309295,.42754381,.25577484 +1.9367829,.61284787,.3488198 +.79116234,.78799556,.15775569 +.54019964,.66027663,.17791565 +1.5402519,.54491889,.31988566 +1.732065,.71057421,.66113484 +1.0136349,.90039585,.60792958 +2.9561684,.28315092,1.2184784 +.71314771,.92479208,.76762739 +.62769023,.53553973,.01882558 +.97007412,.33913434,.24976694 +2.3396174,.60165733,2.4959813 +2.6493553,.18841099,.37552048 +.44804067,.3864972,.61814769 +1.1558653,1.0118386,.10267861 +1.0753648,.17409383,.76969688 +1.6625771,1.1480557,.5457896 +1.9129483,.48548911,2.0165793 +1.0504665,.31638756,.22609714 +1.5411612,1.107047,1.6080012 +1.2691106,1.1880852,1.2770538 +2.2516994,.78555365,.3728826 +.42203819,.1123738,.08946536 +1.2917725,.72569883,.80592371 +1.3952029,.02679487,.4198039 +1.2673574,1.4482183,.77132433 +.60750667,.13719017,.76723359 +.56292759,.18709389,.12968146 +1.075742,.50384033,.90258275 +.85276601,.11419178,.62214436 +.74176812,.66615555,.78706885 +1.750474,.33494191,2.1002348 +.34103181,.8628175,1.3832838 +.649788,.7092009,.24217432 +1.1185684,.54732383,.34362619 +1.694297,.81573013,.18301255 +1.4128546,.0634542,.90057663 +.55071551,.29364872,1.2320653 +.40450443,.84094222,1.0311622 +1.6176521,.1091557,.99529356 +.5751966,.6572608,1.0114806 +1.1031729,.01516509,.85229467 +.50021585,.11893176,.00333646 +.98669073,.35131639,.13137947 +.73774209,.53867432,.52955088 +.66629007,.22317224,2.2593094 +.9193988,.70345745,.57359977 +1.6701089,.5031281,.56046971 +1.0689379,1.1553675,.31813286 +1.2738988,.56885889,.49135274 +.38895068,.89868591,.72970303 +.47218438,.11147264,.72836692 +.58167568,.60776692,1.6862147 +1.2845799,.47944586,.13293809 +.62383907,.00851635,.95027183 +1.4463233,.49239714,.89290561 +.76852702,.28969712,1.4864871 +1.0906392,.29255462,1.939804 +.2928245,.64473093,1.0114772 +1.1425614,1.5958665,1.489617 +.41119711,.47216607,.47560687 +.69399848,.39939039,.33852547 +.96696967,2.3204898,1.9800508 +.55322485,.51123672,.43903276 +2.3541016,.65046576,1.435093 +1.3397421,.7781778,.3706208 +1.2500165,.92629506,.49521631 +.96287573,1.0748054,.89396798 +.95263162,.89818388,1.4182177 +.67825645,1.458391,1.209154 +.92692332,.09970824,.00635723 +.74555426,.83203125,.47455831 +.54452685,.45959003,.029256 +1.7085794,.35990772,2.2486766 +.3289802,.71370752,.71748851 +1.4323712,.20960974,.78704957 +1.2298297,.46007234,1.9960273 +.99455739,1.9805664,1.3059657 +.53614568,.84712274,.92152107 +.74567929,1.3175541,.27434666 +.61836162,.07915087,.02924388 +1.3387086,.49905972,.55528932 +1.5078676,1.8809209,2.7542891 +.81715293,1.0341693,.57307503 +1.126264,.51339055,.40828006 +.6375848,1.3790533,1.2628298 +1.6018267,.45718955,1.0328666 +1.6215336,.43904365,1.8283674 +1.4552374,1.2514342,.35171093 +.42667792,.62157329,.58786762 +.58974267,1.3161049,1.1014376 +.87240039,.87475743,.09117062 +.54657768,.80317902,1.7394645 +.59861329,.99484949,.6167254 +1.6638724,.06705222,.31330232 +.64221117,.65194524,.54854339 +1.9322986,.091035,.62215644 +1.3528389,1.2229191,.19097975 +1.2556165,1.5457609,.54649997 +1.4237792,.6765075,1.9754417 +.83688956,.115692,.61165736 +.61375748,.91316604,1.8066442 +.71397816,.79986935,1.6790012 +.77453449,.39376464,.2908562 +.65955085,1.3856819,.03359866 +.34367415,.43890706,.67490316 +1.3625226,1.2341526,.28302125 +.97162716,.44598295,1.9852536 +2.4680412,1.2416612,.61166281 +.56638638,.94367251,.83607503 +.53426394,.04164651,.80311905 +.52929177,1.1031198,.32777277 +1.4169516,.08877043,1.2450717 +.55887275,.15742308,.5142009 +.43997425,.1006623,1.0903736 +1.6336251,1.2868521,1.4898083 +.97850365,.12652921,.42700462 +1.1579656,.88114,.49571305 +.75376591,.0557829,1.8626103 +.97694904,.53756797,.09165291 +.63887204,.17199106,.8326417 +1.0288456,.06457855,1.9565274 +.62876494,.20921194,.11111305 +.5996113,.71557592,.57840173 +.99283146,.56674964,.4991693 +.74371314,1.8044446,.71565243 +.53421332,1.3297864,.84390347 +.61946146,1.0592952,.42107491 +.829902,.6272501,.56042563 +1.0456942,.40773496,.35069199 +1.9222883,.22707647,1.2938997 +1.2212634,.61864864,.15192223 +.46878876,1.9013738,.91301355 +.62649521,.30009219,1.5276096 +1.3164456,.0831818,1.3170089 +1.3873073,1.1902047,1.0438122 +.92371356,.17433154,.02066471 +.5614122,.7730442,1.0101632 +.92223164,.42405399,.44669345 +.64768733,.2702444,.9064153 +.7475311,.16710119,.14044444 +.79685829,.04485048,1.5867454 +.35913102,1.0562776,.11086502 +1.0739383,.50294763,.27215399 +.51794427,.95714578,.38813221 +.61954084,.91220713,1.7237569 +.791453,1.4344015,.47012971 +.93335523,.27794082,1.2300809 +1.2423641,.33972221,2.0903753 +.99466426,.87175231,.05402196 +1.4975818,.12146423,.20721861 +.88534951,2.1602323,.87548503 +1.1640179,1.0818862,1.6026545 +.68879077,.54635533,.52148027 +.93810605,.60053477,.13966571 +1.0224748,.82053892,.23876446 +.30446812,1.1797508,.32535074 +.54768234,.05652382,.73176893 +.76376992,.16586051,1.4787177 +1.0538931,1.0295658,.17721838 +.65722323,.654378,1.6924623 +1.3894187,.9337013,.61073634 +.93056047,1.0857948,2.2568351 +.44767854,.90506237,.19267337 +.33134992,.79262992,1.4262861 +.38873712,.79919297,.68548203 +1.1405468,.43636757,.79246594 +1.8474332,1.4789687,.76980014 +1.1420875,.59218107,1.4109595 +.50350624,.18202769,1.5118949 +1.8494582,.35510589,.65455441 +.79861408,.83226105,.59625467 +.57816309,1.7858007,.71109474 +1.0656735,1.6275151,.71831259 +.61473101,.72032723,.07738731 +1.5896957,.08159854,1.8243821 +.7485325,.99608297,.30075085 +.32069016,1.5394546,.34261411 +.47605694,1.1300943,.05446452 +.71717774,1.2995646,.8931885 +.42349756,1.1443649,.00035793 +.75845939,.29437471,.86181854 +.92870594,.04193262,1.3998646 +3.0285819,.48315869,2.4587025 +.9691578,.6087959,.10813066 +1.370195,1.0650199,.21602132 +.42970374,.55369961,2.0852818 +.83666566,1.3220012,.43821663 +.57609846,1.106672,1.3361662 +.83190828,.75921345,2.1196068 +.34797603,1.4624997,1.5115744 +.98629352,.73985338,.42121524 +1.2663052,.49505336,.35062748 +.29537393,1.601769,1.3488425 +.66592447,.50445341,.19537848 +1.3334817,.76807218,.1450736 +1.3795647,.46074082,.43548842 +.44316852,1.1686417,.0487711 +.57972257,.22523178,.77445186 +.56567677,1.9476631,.43756152 +.47987114,1.5713379,1.4133197 +1.1816466,.30738951,1.9847293 +1.4616358,.04342972,.41018658 +.65790344,.54882354,.52815928 +.86705334,.49831598,.55314773 +.97068438,.71753837,1.6539479 +1.3606253,.32105468,.26623979 +.74119665,.43590609,1.5435123 +1.8350802,.68378011,1.9485187 +.46087636,1.3651252,.24209397 +.77586385,1.6369332,1.5584012 +.92557428,.90811058,1.0651854 +.77553545,.61692859,.22563568 +2.3559527,.67331326,.61058205 +1.533557,.1594466,1.242968 +.56081132,1.361708,.34589418 +1.4234376,1.0922609,1.8151851 +.69191265,.14143161,.1940292 +.86150841,1.5069458,.05809793 +1.0072419,.52683789,1.6051878 +1.3032639,1.3268041,2.2093874 +1.9726648,.42579246,.43330912 +.35632305,1.8548816,1.6989986 +1.5440735,.68617109,.6235323 +.94220006,.01600238,.71189487 +.91571363,1.2490722,2.7071635 +1.6755221,.51133538,2.3080726 +.72973037,.33844424,.35298842 +.91509353,.222463,.24184973 +.52184158,.68253156,1.3398569 +.33495014,1.0269265,.41485064 +.82915956,.20504136,.34774875 +.4955137,.197391,.5769308 +.35560009,.88063157,.28598357 +.51427722,1.6838424,.14696577 +1.9629583,.94447477,.67399004 +.54594598,1.9753169,.85282731 +.51632566,.48200767,.87821129 +.85137391,.36724233,.54025252 +1.2940666,.33455342,.32563588 +2.0599725,.35029741,.65199064 +.59517685,2.288478,1.0258535 +.97885377,.94989951,.24807916 +1.2692854,.24864817,.15726647 +.6621058,.97702078,.72030741 +1.0017177,.09402649,.14028971 +1.1189075,.77422079,1.4746798 +.80014485,.00352815,1.007536 +1.3660463,.30956827,.63461641 +.95887722,.95805221,.67808518 +1.1282001,.78588015,1.4580675 +1.1382768,.05397583,.74567348 +1.6056318,.86720015,.72598552 +.61344845,1.5903224,.34928313 +1.8915999,.73729312,.4820619 +.51038785,1.6358233,.0175445 +2.4584224,.02868024,.33781832 +.99790672,.30034441,.36063 +1.0349589,.3086924,.25192124 +1.0203885,1.3169301,1.1020425 +.83354492,.98319236,.13800631 +.94105164,.58681298,.23594601 +.97099717,.69117829,1.0218628 +.43032834,.31165255,.27559447 +1.0813596,.161862,.26815178 +.52433248,1.6314825,.60917894 +1.2911347,.31689092,1.230879 +.43471127,.43280337,.44863911 +1.0880369,.30068479,.56523568 +.57236035,.52946627,1.0486344 +1.3653829,.30479248,.77075576 +.66956376,.33860071,.68099411 +.53295124,1.6681086,.07426842 +3.7234647,.54907808,.4182605 +1.2439815,.768297,.41175044 +.94461633,.73390457,.65019327 +1.2512365,1.045564,.97967795 +.90757029,.78929569,.92823698 +.78641622,.10437222,1.0382075 +.61698922,1.3828506,.11036538 +1.4578169,.01757956,.51627516 +.88885106,.31487575,.51802612 +.85835415,.80174068,1.3996179 +1.0760281,.04444569,.06670415 +.91240138,1.3559683,1.4655766 +1.7611674,.14629181,1.0702985 +.23123631,.21502106,.13420706 +1.3687605,.27400524,2.0660024 +.81408448,.62707315,1.2612546 +.83820157,.54414074,2.0003802 +1.2800197,.45234592,.30167979 +.9494134,.46169951,1.2746144 +.42223614,.92106541,.20931335 +.69132383,.16696949,.46819959 +1.7250342,.10768678,.33151925 +.60348274,1.16095,.29583065 +1.0004777,1.4086154,1.0424819 +1.8954856,.84051552,.29391594 +.46233233,1.1044692,.31310165 +.87763586,.73623029,.72512113 +.74779302,1.8344297,1.3895838 +1.8735891,.58113815,1.0063442 +.61616163,.26279363,.65206902 +.83930409,.58121299,.46445388 +1.6649673,1.6635235,.78665881 +.91859213,.19206109,1.4619052 +.73238545,.47000451,.59422724 +.37422217,.15781647,.26662795 +.77312061,.61281195,.52946105 +1.0986912,.46251211,.08244686 +.70361678,.00521995,.55825994 +1.3556752,.05770111,.67096743 +.70284549,.94856683,.32332698 +.35909922,.0189422,.19645042 +1.0367554,2.6296752,1.2619585 +1.5423911,.0778769,1.0779661 +.28620187,1.4028721,.24542367 +.69045517,.17580192,.2467365 +.5095218,1.3690472,.00141397 +.69734502,.12337244,.70891728 +.87239164,1.2988797,1.1232165 +.96145938,1.2414301,.06043973 +.93645432,.8890533,1.0201508 +.60472889,.09726498,.23358652 +.50385028,1.9715672,1.4173581 +.64025638,.01341213,.18320615 +.61739069,.61865956,.43697596 +1.4880261,.2671106,.40005412 +1.1468949,1.8048744,.46158212 +.3629181,1.7530333,1.1569013 +1.4365009,.67608835,.94337614 +.44052903,.20291314,.33991058 +.51279771,.12676285,.72911251 +.84263761,.60080494,1.0780488 +.52323492,.40407247,2.1930158 +1.1625302,.39878552,.18750069 +1.0649743,.26525901,.21905166 +1.0018899,1.5992361,.30206106 +.68311034,1.9109545,.62671208 +.59415219,.76500593,1.0247561 +1.6733325,.14539183,.1883792 +1.0272908,1.3585683,.21774263 +.51945738,.43234228,.95184442 +1.1951357,.692735,.46297884 +.87845455,.72218678,1.2794743 +1.4289297,.43993881,.30355932 +.92613533,.89310456,.63722723 +1.8913443,1.0671697,.39887847 +1.3826017,.57289258,1.189578 +.98971374,1.1050974,2.0356522 +.38767888,1.0986386,.83823303 +1.9789502,.23451471,.13806241 +.71326233,.61238378,.17070926 +.52286509,.78138363,.95976932 +1.1240117,.12251816,.41381639 +.49255286,.6396058,.08219767 +.72785548,.59646646,.05486899 +1.2327067,.0222927,.80911672 +1.5361726,.22647529,1.8403524 +.80471005,.1929731,.25810925 +.87921577,.46834382,1.4034503 +1.7771784,.26525598,.50148105 +.72398178,.95362918,3.0964237 +.9394818,.36697392,.58581114 +.54411931,1.2547299,.53891162 +.89935845,2.0859025,.40616435 +.50279777,1.2400582,.15974611 +1.4892091,1.0199823,.80626439 +.84574928,1.0728358,.58794464 +.67482064,1.315759,.30633782 +.7070303,.41439274,.6615569 +1.0579511,1.0746859,.46001401 +1.7281229,.15800319,.86746627 +1.2578014,1.0445396,.81158354 +.8950673,.29426924,.35005655 +.14370143,1.5116621,.14155645 +.62773323,.17434803,1.1243499 +.36453224,1.316106,1.2811899 +.91968927,.04834591,.61558915 +2.5848017,.3009304,.01728542 +.6058308,.40823374,.64903035 +.64634998,1.6749047,1.1915472 +.60722347,.20952991,.92824934 +.63244023,1.5134139,1.0445992 +1.0897895,2.2552682,2.1634963 +.53904951,.29687146,1.2572573 +.82823144,1.1253736,1.7945595 +1.4425978,.36647511,1.4778808 +.45197127,.20008588,.94036877 +.7267292,.5751171,.32524229 +.41549607,1.4146009,.48113257 +1.2097728,.00278837,.13820105 +.8298993,1.1192043,.08235263 +.56433864,.81287739,.73776068 +1.5115021,.31882804,.10799839 +.48113918,1.8484408,.9439595 +.72137993,.41897826,1.4469675 +1.853952,.89128659,.39877472 +.80390209,.17201894,.57729608 +1.0669638,.12172709,.5863845 +.76350434,.52489291,1.5740128 +.55752945,.30578383,1.457788 +.48696782,1.0576166,.47108689 +.75822457,.28747333,.83592555 +2.3448613,.92216016,.05349141 +.21381787,.06525467,.57413982 +.89696636,.38414593,.0463001 +.30582881,1.0753009,.00508851 +.7105266,1.1602293,.47952796 +3.1132102,.26819615,1.4405612 +1.351475,.12048987,.39235537 +.28543299,1.9959483,1.7431456 +1.7953611,.57429929,1.2447227 +.58044962,1.3652985,1.8456334 +.75239992,.8096771,.40017698 +.54222858,1.004988,.288379 +.62640908,1.295027,.47380377 +.32051229,.90207373,1.1907026 +1.0425069,.372248,.65852469 +.6021585,1.0822581,.08198831 +.98815823,1.0779777,1.0902206 +.53730582,2.2694625,.35662884 +.54307534,.7383042,.62339921 +.41470533,1.5432171,1.5666641 +.97488312,.96537827,.4100672 +1.8553797,.71405455,1.1423409 +.56072411,2.5670682,.07048981 +.68402382,.83700893,.231118 +1.5229728,.74949686,.21726547 +.41910077,1.1827462,.87113345 +.64758709,1.9702204,.20508066 +.65482547,1.1342849,.79801412 +1.1741923,.55130561,.38124038 +.91670263,.74280974,.74820262 +.58328085,1.4367509,.06455467 +.28816673,1.0819977,.82114152 +1.0407263,.52098847,.53039667 +.8686089,.87973304,.63800095 +.93487702,.43033632,.86608479 +2.6424482,.0081984,2.997462 +1.2224952,.12358195,.80030239 +.77102798,.77740131,.43947774 +2.2982262,.10547402,.73621615 +.49924707,2.0463775,.64406167 +.34097361,.90390134,.35460356 +.54359502,.32475422,.64177609 +1.1538894,.83111084,1.8792411 +.68240907,1.9907478,1.0255833 +1.2528865,.42211222,.46544056 +.90523,.16726918,.47796805 +1.444307,1.7358999,.07882832 +1.0361784,1.3449441,1.4074068 +.33591471,2.2964748,.07253514 +.91160494,.10744102,.83859998 +1.5370639,.58557197,.0762728 +.81592108,.09986008,.49834942 +.79428566,.72409251,.62408368 +.88761091,.02658059,.61247037 +.43798781,.16480261,.08351476 +.17278098,1.3852441,.6405435 +1.096142,.30494356,.64287583 +1.5336347,1.6672983,.44496996 +.31480903,1.2317793,.0042782 +.66475979,2.0132047,1.8092656 +.87582264,.90500824,.57221758 +.64283868,1.0868743,1.3331081 +.7573388,1.7515177,2.7617962 +1.0045577,1.0418655,1.1727082 +.86775164,1.4869841,1.7469276 +.53785152,.7059774,.34291224 +.77370104,.53600241,.8857854 +.6136746,1.0076561,1.1546051 +1.8879233,.93844529,.7172341 +1.452637,.25199459,.88966532 +.68985852,.80078755,1.7627798 +.49609111,.79900507,.62361435 +.45862898,1.6224208,.37558803 +1.3828426,.92914397,1.4741377 +1.3505755,.46343107,.37193337 +1.2931308,.85314165,.29151142 +.6879732,.34075658,.61663243 +.93774691,.84396719,2.3646488 +.69342858,1.498051,.49583713 +.91451194,.25307159,.99382847 +.6523744,.32999886,.18381153 +.64577565,.98410697,1.7907964 +1.2601702,.62951295,.25343665 +.48992655,.19313292,.27209089 +1.1983083,1.1814615,.99423189 +.60103603,.45061185,.06243036 +.8125517,.64327769,3.5081535 +.49924812,1.8592098,.31587648 +1.5157634,1.1009984,.61204817 +.6169937,.53968474,.04094677 +.5069729,.89662193,.50727985 +.81850155,1.0918431,.23366324 +.70589672,.45898371,.58952619 +.50033361,.46890492,.28026622 +.35681534,.82840878,1.4641545 +1.1142156,.32707547,.03190551 +1.2236171,.49308964,.66571375 +1.0737957,.61231524,1.5716903 +1.5181532,.73646789,.19715144 +1.2050594,.24040606,2.513091 +.9509335,.04248996,1.2884633 +.67197976,.36131637,.28836733 +.40792932,.37386895,.48591483 +1.5418518,.68799811,.03858285 +.41966569,.04037764,.21817948 +1.0152161,.87167247,1.1615779 +.57994472,.64924548,.51311388 +.83314097,1.5314109,.21004345 +.58779045,1.3003313,.1592612 +.37510459,.34684505,.4527919 +.5372598,1.6791256,1.0846101 +.28528237,2.0741048,.84313619 +.61693225,.72808713,.08908494 +1.7994493,.35116683,.88540365 +.54785579,.17638452,1.9141408 +1.0472336,.00271785,.62922591 +.63875108,1.9858331,.28463958 +1.400274,.72621017,.64808386 +.66633234,1.6048571,2.7353272 +.42132417,.03254361,1.2696874 +.6983008,.67249279,.42366564 +1.185625,1.0436107,.72627347 +.94154802,.51862785,1.2951404 +1.1733774,1.1186427,.87253098 +1.042562,1.1856113,1.6014185 +.57878733,1.0316011,.05867536 +.27752603,.56663141,.1996966 +.54357816,.37075953,.27050615 +.54874068,.27620376,1.0958867 +.43038196,.49604027,1.5988428 +.75383552,.24048882,.9156488 +.62091794,.87699965,1.3293712 +.43222191,.42747292,.76202825 +1.1874139,.92677759,.13137011 +.74716209,1.6763891,.14066208 +.91489166,.43131107,1.347046 +1.0049308,.7663503,.76449471 +1.2915884,.93063557,.67809398 +.46506081,.47331881,1.6166852 +.71656487,.61439812,1.1847002 +.6192585,1.5724235,.14272188 +.49320696,1.7269538,.20838752 +.70477457,2.3279095,.20087782 +.34764889,2.3780574,.94641026 +1.1964493,.06658168,1.4665176 +1.1612058,.05628704,.11913373 +1.2047355,.3937105,1.458182 +.56080449,1.2970779,.45410059 +.77259846,.06709445,.06350539 +.53997456,.72128632,.27591326 +1.0057889,.498694,.41892685 +1.0884453,.17858744,.86136739 +2.7119557,.69841541,1.473465 +.7054217,1.4102155,.9213348 +.6573578,1.709695,1.4055321 +.63950698,.79328959,2.5964235 +.820477,1.3567268,.56091997 +.46817011,.2023678,.1167779 +.50441127,.3263047,.71938098 +1.0244962,1.2966765,1.8892064 +.52880778,.43263532,.64635432 +.5680027,3.1755941,.21080044 +.79991272,2.2387902,.73725361 +.93038841,.51577052,1.0550981 +.56204721,.54391843,2.4442828 +1.6739464,1.1966999,.68999556 +.77721017,.56888841,.61270467 +.97250197,1.0304753,.20153674 +2.085593,.36685672,.16111609 +.86000303,1.9286876,.61599162 +.63691232,.14267351,.44690849 +.54585278,.82972774,.62941405 +.67836786,.72349484,1.1951738 +.99188467,.7552039,.51759963 +.89283532,.78574286,.09321115 +.93010354,1.0460706,1.1719786 +.45549655,.84378014,.84659712 +.90979091,.48104111,.52088113 +.89457222,.18148865,.37945857 +.9523494,1.5073938,1.4960278 +.84356159,1.0693037,1.2374649 +.33673558,.51451333,.73409218 +.74646557,.24515807,.10641223 +.93305191,.72244123,.34683846 +1.1588396,.31628113,.44488578 +1.4803688,.45584114,.82168311 +.81007786,.17925688,.09330761 +.63797107,1.5034945,2.5589226 +1.0958715,.59831951,1.7810305 +.93016484,.60161381,.39580149 +1.6668489,.02920365,.15386246 +.61808281,.12036536,.34262849 +.62713892,.57045875,.17896551 +.55337812,.72181814,.19602995 +1.8087252,.30714603,.38303537 +.39845967,.83644331,.54114343 +1.3914987,.21766005,.95970685 +1.0660254,.0407103,.82790033 +.76903045,.72388325,.85643742 +.67928119,1.7369053,1.1435812 +1.5538702,1.0314416,2.0013128 +.73753719,.57562088,.01727812 +.58929157,.93088261,1.5375628 +1.5519599,.01829348,.26807229 +.91468244,.58047572,.14551378 +.88808138,.88015967,.38961917 +1.0524604,1.8810725,.16563724 +4.0892221,.08707611,1.9307244 +1.3756921,1.8657719,1.734311 +.46275551,1.6522425,.88270944 +.53702336,.25754223,.59333144 +.51584866,.3086278,.39810266 +.31514016,1.9253958,1.0035009 +1.0678556,.05160498,.81134336 +.3563933,1.5772784,.47259076 +1.5498661,1.24846,1.890608 +1.1957198,.62890487,.67380179 +.45106107,.66159668,.27189763 +1.8210394,.48742138,1.1558568 +.96529212,.29539212,1.2359932 +.28418313,1.8792053,1.2795254 +.99952989,1.1920933,.78706266 +.40174007,.10589396,.72744804 +.41052621,2.0238404,1.5429333 +.60425764,.67182511,.94387649 +.55482115,.59385053,.21819288 +.70888211,1.4286143,.76942781 +1.1568846,.76809954,.29318383 +1.0392232,.9227626,.33419266 +1.2753864,.72047767,2.5427855 +1.8469338,.464484,.52437545 +1.035677,.42528471,.72384415 +.40123948,.05263051,.23355298 +.58687577,.54383507,.59465524 +1.2087887,.83539387,1.1141123 +.62835061,.29873186,.27449308 +1.6065419,.35413601,.16012108 +.58827588,.36729113,.61954989 +.65221776,.37816465,.61238969 +1.0912099,1.1611825,1.9642359 +.76904185,.58909222,1.5928328 +.36619748,1.3352878,1.2624404 +1.0353451,.69588566,.31914574 +.42366235,.22657311,1.0882715 +.4396694,.95015888,1.4422181 +.64743563,.29401648,.15485198 +2.7775147,.15482928,2.1474819 +1.9009747,.07948036,.2096234 +1.0375082,1.0197104,1.3727374 +1.5258815,.95297168,.13531882 +.58043184,.63293313,.29386051 +.58169553,1.300779,.29216366 +.36157918,.33334326,.05274053 +1.9446239,.0353972,.71919477 +1.3717372,2.0176191,.73430441 +.88450048,1.4306007,.63429561 +.47431916,1.4083031,.4087202 +.52365289,.80997475,.27891144 +.57165025,.31052336,1.0220026 +1.1269969,.68367532,.38865039 +.40816066,.62596731,.66375428 +1.0222541,.96619607,1.2478592 +1.077942,.39162261,1.2790021 +.6172391,2.1571375,.45849004 +1.0995279,.21571706,.37701187 +1.0582162,.94213476,.56862616 +.33062958,1.7311542,1.2644533 +.72193308,1.0832487,.18479105 +1.2737484,1.3211672,.11855154 +.47794648,.50599073,.19940198 +1.4685321,.98066172,.25184949 +.87100143,.9579761,1.6436309 +.44259138,1.2347196,2.1729507 +1.7117556,.38745621,1.174949 +.71968204,.50153313,1.7568959 +.61422926,.12879407,.69506114 +.30933527,1.1821221,.36455415 +.59376123,1.444551,.87391058 +1.1286789,.97657847,1.1219354 +.91670656,1.3537443,.53350728 +.7294909,2.0874169,.52259347 +.98718884,.00959563,.10716393 +1.0898559,.770819,.29841965 +.45961859,1.309925,.0345745 +1.896021,.73602147,1.0389216 +.52161555,1.2201429,.77000314 +1.2191796,.67311709,.34075419 +1.0251318,1.5681493,.90804129 +2.3145641,.03113552,2.2683437 +.94374967,.63597133,.11439962 +.58449312,1.4976101,.02054088 +.91162717,.48342868,1.9547507 +.61885396,1.6879931,2.213988 +1.3463568,1.1140377,.95705142 +.63008094,.08093569,1.4537045 +.48709569,.00659722,1.0721949 +.62726834,1.195152,.46647227 +.45832777,1.3027616,.24195799 +1.1409479,.96999176,.26834068 +.58603554,.89160554,.03665615 +1.1587645,.57010683,.21817207 +1.0378898,.41340056,.35863131 +.8775868,.5340662,2.2890228 +2.6639574,.08522518,.59445309 +1.2379106,.0255353,2.1662403 +.36034907,.6819151,.34865549 +.71639952,1.1200343,1.9363063 +.99579738,.93631582,.43911105 +1.3583186,.41949193,.95791125 +.73530136,.89918461,.72514494 +.4847262,.3194926,.45079726 +1.0231628,1.286112,1.2267065 +1.619146,1.2895734,.92049969 +1.1822425,.04670243,1.3684008 +1.1233675,.21822196,.38537587 +.98298535,.44265478,.24238677 +1.3584656,1.693378,.25453441 +1.2526883,.07867729,1.6557961 +.71075143,.11800273,1.4943883 +1.1609716,1.5393269,1.2763983 +1.4543608,.44450555,.8340469 +.38525798,2.3979437,.89826534 +.68207944,2.0423459,.45258103 +.62269426,.97445683,1.1244725 +.38867269,1.0476131,.38453966 +.76850699,.19488777,1.5863388 +.85805301,1.5659923,1.2107204 +1.2584954,.32294451,.65070773 +1.6750441,.57115847,1.102494 +1.1366812,.95003921,.34925924 +.43623234,1.0117462,.14071118 +.40987339,.60701661,.11141299 +2.4766343,.40806367,1.8311574 +.95410387,.72076896,1.1787464 +.4806925,.74213075,.71612082 +.83312756,.0672284,.75079239 +.62904872,1.751354,.65881874 +1.0462696,1.2318057,1.4826888 +1.5043164,.41881384,1.6176844 +.67156683,1.1432317,.14119141 +.38923332,1.0298543,1.00627 +.96280225,.17778729,.35842782 +.51702541,.60149159,.55637267 +.52786256,.69727173,.9582841 +2.2140476,1.0461354,.13123228 +.99471142,.41216452,.34098401 +.34017586,.52412899,1.3307969 +.26229961,1.5318296,.55645688 +.50876877,.85281719,2.4948286 +.68782839,.87208541,.4138834 +.55610711,.82872636,1.5581586 +.51912791,1.4647109,.17463653 +.45354823,1.0624657,.70135675 +.43508909,.53223739,.96142909 +.75169789,.23300957,1.2435447 +.79205139,.45944174,.35431842 +.73513469,.15350497,.69292283 +.77799849,1.043026,.03809909 +.81442578,1.6142595,1.8275636 +.79391315,.15635796,2.3431941 +2.8691671,.30132074,1.1871142 +.56152797,.55135565,1.0844367 +.70714429,1.62176,.80432906 +.41446238,.50929135,.50910366 +.56854594,.02766477,2.1444519 +.80926161,1.397187,1.1326073 +.73743027,.40327223,.28869704 +.95903121,.99341542,.65526632 +.95601317,.00546764,.15789922 +.56646162,.69929979,.19350045 +.33162301,1.8322529,.72445938 +.58021821,.98992093,.14855391 +.55414174,1.0877638,.44450136 +.47682158,.56473811,1.198959 +1.2878091,1.1667707,.33687157 +.50192034,1.6135453,.46088669 +.90208147,2.8450309,.42408397 +.99476117,.71652579,.76601914 +1.1584664,1.2092206,1.7428022 +.84446076,.10155365,.20891568 +.92899652,.06215136,1.3274461 +.83663228,.42505662,1.1259892 +.67624147,1.1500422,.98160243 +.37363791,1.351148,1.8647597 +1.5393109,.06408811,.52101709 +.70808885,.10494683,1.2048411 +.51231639,.18811581,.49267148 +1.2591318,1.0587424,1.1731242 +1.7297707,1.4620379,.87445105 +.71150702,.04305345,.01487408 +1.1359007,.69238518,1.5702618 +.70945295,2.5311646,1.273353 +.38705458,.99132977,.52415048 +.36973613,1.060829,.45528567 +.91410976,.97879526,1.2429495 +.92631376,.52529014,.35076778 +.68608485,.27112429,.82372228 +.59831207,.72991402,.08244038 +1.5538966,1.3507107,.53534392 +.91241582,.58309885,.64700509 +.7587324,.83476315,.61210133 +1.0436549,.19622481,.44671224 +1.0960001,.20305548,.4462104 +.97608485,1.6869675,1.2212309 +.59017299,2.8619844,.29777601 +.62289492,.5898393,.23089002 +.61478599,.30428709,.50458687 +.99396665,.57593287,.71593617 +.56276413,.43874428,.8821252 +.80720541,.66010826,.01172729 +.49844727,1.2789714,.78342144 +2.0139231,.06181922,1.7965086 +.55098437,.0482348,1.569783 +.99857921,.35486548,2.0681784 +.56450206,.0527091,1.8509099 +.77122571,.51360041,.0478114 +.48379445,2.5789779,1.573472 +.57059513,.87702861,1.4659406 +1.2848086,1.2711359,1.6534754 +.82670919,.88285792,1.2065429 +1.2991917,.17469052,.6385102 +1.4843332,.40699378,1.0963154 +1.1712783,.01137292,.53080284 +1.1822966,.47497857,1.7168454 +1.0478597,1.1186134,1.4539033 +.82884825,1.8302436,.10968283 +.69163014,1.2555623,.56794633 +1.0657378,.92492582,.67987903 +.61682064,1.6534809,.02050991 +.43585098,1.082953,.81364365 +.45159099,.39572638,1.5775455 +3.2151771,.32775041,.79359243 +.87293631,2.9159642,1.1689441 +2.4587644,1.2114198,.62429081 +.398155,.13147814,.42328863 +.70887305,.94727921,1.2825474 +.33770093,1.8048114,.5983297 +.66100603,.57050791,.35534704 +2.8823354,.6723837,1.5727898 +1.454009,.95292876,.75751536 +.43269985,.88481063,.94300753 +1.6260189,.12679206,.98095887 +.47199246,.31351323,1.2232386 +.98222335,.02995274,.46328003 +.83805449,.1757271,.8012897 +.60275721,.88370085,.15854773 +.30210013,1.1090001,.95478152 +1.4887824,.98673059,.02576824 +.74298547,.08340643,.76493747 +.77773753,1.9823519,.01010352 +.64316267,.93005948,1.127825 +1.0494526,.93141535,.09453837 +1.0824268,1.1637894,.25707813 +1.5583713,.22960952,.14035345 +.65660845,.23961944,.25236996 +1.1103024,.87552625,.7170788 +.95652725,.92706161,1.1260935 +.74673911,.036043,.84005497 +.56765739,3.3149375,.80625826 +.7117273,.43085001,.73484048 +.95462163,1.3045646,1.888103 +.78492079,1.8268296,1.7239218 +.4862252,1.1080653,.66860428 +.62425798,.73079014,.43204084 +2.1599657,.39108835,.0645588 +.6903995,1.1419961,.0257504 +.81043529,1.1480737,.12632945 +1.0296099,.58419572,.97921965 +.78114337,1.1134601,.51783167 +1.8464624,.09613032,.21373068 +.93849511,1.5685288,2.0012348 +1.1953359,.21126934,.27252193 +1.1053713,.47439406,.06621322 +.99226297,.24447207,.34987283 +2.4993115,.27115658,.99496265 +.62884486,1.3840862,1.3053778 +.58225505,1.2169298,.43956444 +.62975341,.10309701,.02390385 +1.077984,.70083215,.26600225 +.92499232,.33515532,.90877602 +1.2753837,.26325858,.98897733 +.40608176,.40756515,.37026787 +1.3034743,.86292606,.97639647 +.68819632,1.9272746,.09613374 +.38529913,1.9048467,.827747 +.65806916,2.4065332,.09522342 +.58125057,1.1801152,.50992232 +.59532115,1.3520957,1.1623754 +1.3427084,.68468889,1.2205645 +.49895402,.26418453,1.7413985 +.95124467,.52839696,.01710196 +1.4475349,1.1782565,.06365007 +1.2658271,1.2632146,.07526522 +.93052896,.40174925,.4071238 +.97638421,.55940847,.63374869 +1.3248691,.62032956,.97362019 +1.0598124,.44392539,.87922677 +.78020908,1.0096737,1.0640146 +.37403988,.35560645,.04761817 +1.1877197,.88206512,.14599969 +.78391979,2.3017586,.409218 +1.1562517,.55363133,1.1772443 +.52382579,1.2604763,.00007781 +1.2611862,1.8701495,1.0991474 +.75713742,.01624671,.63193878 +.66290642,.44604121,.00722056 +.58324866,.38756076,.4801589 +.76577216,1.5221804,.55055008 +.76277295,.10721756,1.4952998 +.84719596,.58653848,.76350198 +.61349587,1.229557,.44228711 +.60003981,1.3107236,.83145964 +.5283621,1.4831695,.82375259 +1.1341987,.5374454,1.5757192 +.5123022,.48509227,1.2922365 +1.2208885,1.1073333,1.583154 +1.4148414,.00926754,.53583998 +.3998012,.78817248,.06732402 +1.1150553,1.1307379,1.7634486 +.90672614,1.514614,.67754293 +1.163474,.43965608,.79636375 +.73504828,.24186094,2.0890058 +.67670457,1.2456408,.06993743 +.38579173,.53653428,.69296156 +.57033486,1.0968523,.00474959 +.75241647,.3315026,.44392977 +2.4172566,1.5249137,1.9816204 +1.44588,.62442755,.57597001 +.52701546,.30159195,1.1419634 +1.815438,2.4351751,.71380307 +1.100746,.38274417,.64359912 +2.672366,.52151585,1.3250965 +.94139616,1.4354724,.25010398 +1.0665302,.3510811,.3767446 +.86228281,.22452574,.86902798 +.51530052,.49376516,1.5131569 +1.1503989,.76514028,.10953283 +.82680907,1.2763612,.89107445 +.94477521,1.4397668,.12764462 +.96192282,.51008045,.39281058 +.80478138,.6604937,.16309531 +.61522384,.83530466,.43115644 +.4704162,2.3477615,.61045848 +1.1675622,.01189077,.16082248 +.46618781,1.2133969,.16553938 +.67285634,.82017592,.9014764 +1.1561265,.74029046,.45078951 +.900604,.52008814,.30349507 +.43441802,.06331171,.52863287 +.82529193,.9684317,1.1003101 +.58045738,.42171145,.07946469 +1.5746162,.61418287,1.9743587 +.58531679,.63758784,.2013919 +.66330805,.48303354,.4773263 +.68649867,.16755188,.40745175 +.98601674,.08719737,1.7912935 +1.008441,.5456624,.43381241 +1.0167429,.79821516,.56035852 +.74714868,2.1092316,.25582091 +.72625964,.28629633,.23273765 +.91339318,.77274068,.19517486 +1.8086075,.08354735,.62322941 +.5365093,.06217764,.26917754 +3.2423871,.01700816,.82507665 +.86896822,1.6628311,.30402855 +.53377572,2.4361052,2.5942684 +.48717764,.10513679,.67367152 +1.0892003,1.2029045,.02256002 +.42358305,1.665394,.79489062 +.77729325,1.9201339,1.3125795 +.95928595,.26609724,1.5159041 +1.0670771,.50079749,.58500492 +.37430895,1.2795255,.59241235 +1.1260645,.82528035,1.4356316 +.35971717,.94220102,2.0384077 +1.244661,1.0174068,.70953701 +.87532797,1.0431368,.24636004 +1.0555526,.47895987,1.9789711 +.739585,.24846335,.12668035 +.66327779,.36905919,1.2821606 +1.2946893,.6740252,1.3579806 +.64043424,1.438477,.04138178 +1.5071044,.84566318,.20011155 +.62686425,.84864083,.04257025 +1.0740314,.82066843,.31127719 +.78266573,.34231534,.29907761 +.28091508,.72459046,.4443624 +.74286005,.46889681,.53592716 +.9871206,.81058566,1.0126937 +.5380088,2.0947625,.15733139 +1.2283676,.24831199,.5776134 +.52985269,2.1113585,.59114684 +2.8688458,.9521854,.49139946 +1.4811269,.31023055,.18426152 +1.2596015,.89588859,.75093724 +.78769988,.29039744,1.3436735 +.59186998,1.2984401,.14305027 +.44232428,.9870848,.4825764 +.8859172,.29572705,.43617949 +2.3354328,.14458796,.99599981 +2.1022423,.52071801,2.1968315 +1.0166309,.68397099,.09662806 +.81451751,.11486692,.237027 +1.069744,.97338656,.41764041 +.50322518,.53138854,1.1941218 +1.219315,.20889502,1.2145737 +.81651531,.86909333,1.181007 +1.2461111,1.2615773,.04090023 +.7867591,.51675046,.60531306 +.48255451,1.5061198,1.9834087 +.63750553,.51133344,.98084581 +.93531728,1.8698809,.19503854 +.37159228,.03680177,.78299759 +.3490457,1.0367845,1.9341835 +.73158823,.53651604,.62858521 +1.1876409,.21537441,.12835291 +.84311056,.37190667,.78054651 +.70232095,.03066532,1.6930192 +.63485232,1.3076156,1.3460201 +2.6213192,.36300975,2.2734296 +1.0466684,.86440299,.50610758 +1.1949082,.92729179,1.1121783 +1.1997259,1.5131667,.79960768 +1.4912411,.18991754,3.0127683 +.70131107,.10549469,1.3255834 +1.3331466,.14273257,1.6514719 +1.3728906,1.2395013,1.0383353 +.47525762,1.0947843,.97233351 +.88147101,.67951001,.6221678 +2.159428,.20581914,.82928383 +.35759161,.09078604,.5452956 +1.4237984,1.6675258,.37976405 +1.8253866,.8475057,.61199321 +1.0766244,.96361584,1.2798582 +.57842725,.86548463,1.0389707 +.50013368,1.3480368,.80830809 +.51795836,1.2413182,.00462004 +1.3600737,.80973238,.16587305 +.70779356,.03521013,.17114019 +1.4369772,.61493521,.79113887 +.99486522,.80563288,.57606506 +.61591664,.2676468,1.0239012 +.77037215,.39763665,.15755658 +.54982064,.41990043,.18053989 +1.646002,.35777806,2.214543 +.56045242,.34891944,.25501392 +1.2849441,.78186737,1.2957175 +.67711813,.34131899,.68646578 +1.9531813,.23552967,2.3423402 +1.0629246,.6582746,.4348972 +1.3935521,.49930563,1.3704676 +.35595145,.71372754,1.4148205 +.51972062,.48306014,1.348101 +.44184067,.83909909,1.543084 +.53997559,.53482122,.10503643 +.8231803,2.0304582,.13600223 +.73512318,1.4527893,1.3657815 +1.0244988,.86034919,1.6098263 +.49035483,.31464149,.71406136 +2.2554747,.17963854,.14667943 +.89075747,2.2476326,.73480043 +.82376053,1.0855515,.44145449 +2.4964323,.31691974,1.1513456 +1.3070232,.76391477,.12909394 +.20697807,1.4104117,.26936433 +.89015891,.54647368,1.137254 +.6136409,.21097015,.98376748 +1.0140566,.43847748,1.3854676 +1.4699552,1.815735,.63384785 +.99003368,1.2945515,1.3415731 +1.7324531,.53494907,.09063591 +1.3418386,1.1792209,.12433153 +.83194433,.12598079,1.4309803 +.29033029,1.4649447,.39268192 +.96069751,.23819178,.02519885 +1.7248027,1.6845643,.91038267 +.99575129,1.0560579,.61332561 +1.3449841,.72686116,.46791496 +.53565554,.1884419,.52203599 +1.1279085,.99429857,.08005703 +1.2543423,.28129612,.88981001 +1.3055444,.96294881,.35116075 +2.1821926,.38386236,1.0215497 +.73650288,.0105463,.18555795 +1.093097,1.1870467,1.6773768 +.76710484,.60294537,1.2330747 +.8680829,.59374387,1.5710586 +1.0784459,1.6638816,.79555959 +1.9218632,.64555165,.21540618 +.78915511,1.7593397,.37548327 +.52502295,1.9504146,1.3862236 +.6062724,.52596011,2.0226481 +1.0226858,1.9325475,1.8338844 +1.4892115,.56512568,.95448768 +.97701131,.79270288,.39182331 +2.9951066,.68830174,2.3738698 +.62879447,.90782985,.48050477 +1.0911385,.57122145,1.8982176 +1.0033072,1.0126981,.12054218 +1.4514709,.57084796,.13204996 +.78497035,.78114431,.55808238 +.376453,.35544064,.54696743 +.97034206,.97146508,1.1621196 +.44820705,2.1743334,.2990424 +1.0008183,.86912589,.41258577 +.64733419,.84834476,1.3529723 +1.1899501,1.0198258,1.0680239 +.94690363,.57308106,1.1254757 +.76191619,1.369067,2.3012253 +.59477975,.51927027,.601631 +.57185685,.34304849,1.9509658 +.57902368,.67786761,.10683783 +.55938152,1.0589726,.31584831 +.77766393,.54423195,1.9177941 +.97470147,.79343434,1.9299464 +.94583736,.32733985,1.1663169 +2.0171866,2.1579897,1.7369797 +.59957437,.68988504,1.4789196 +.52626056,1.0579517,1.0463346 +1.2176907,.33447094,.6181712 +.86218791,.46805045,.30584438 +1.6393891,.03433824,1.6517552 +.31129453,1.2284843,.87471903 +.54418473,1.4788718,.38964542 +1.0174777,1.3050759,.60460037 +.4525949,.21373431,.09477761 +1.0845023,.77002033,.54802217 +.73152622,.94256292,.62257743 +.81250721,1.7306666,.0628948 +.98622735,.08785505,.56740421 +.76235855,.2063292,.14562394 +1.0513833,1.4797218,1.2321968 +1.3052498,.79235896,2.2090931 +.32338686,2.0018398,.08243745 +1.5579577,.07320935,.70830273 +.70129951,.11829152,.81727641 +2.1301245,.43661194,.68193289 +.40615049,2.9349195,2.313991 +1.5909483,.10892327,1.1793165 +.69990004,.50036206,.46040671 +3.2237544,.17855616,1.9256314 +.32049227,1.2378038,.78340635 +.56768974,1.0308897,.38283555 +1.9289912,.16120033,1.0192725 +1.1605854,.49901209,.49662792 +1.5459786,.81033095,.16498506 +.65124747,.23786604,.7468391 +2.3565215,1.4070438,.10736968 +1.3407914,.19876315,1.3501468 +.54963884,.65619901,.27852745 +.80284473,.50508765,.25654477 +1.3084396,2.0235926,.09097533 +1.0132789,.41955644,1.1256226 +.54047414,.95022178,1.2427998 +.62498509,.35604766,.60713155 +.5034584,.7266575,1.1082762 +1.1920276,.40459635,1.317584 +.83795211,1.2745199,1.6990265 +1.4467308,.08291918,.11111062 +.47281346,2.0642612,.05729529 +.49717673,.26342167,.19184471 +.99095564,.30085783,1.4120491 +.3344058,1.4899116,2.9008107 +.62558271,.50312602,.86323943 +1.1317918,.3759559,1.9935577 +.80051552,.25928617,1.6121761 +.69671986,.74154496,.01948758 +1.2092226,.64752322,.15212328 +.5075563,1.5986325,1.1568041 +1.4151556,.68430531,.51135262 +.48242035,.21484488,.73558197 +1.5075618,.00374144,.7381274 +1.2979533,.32277515,.20136243 +.9126078,.32460325,1.1534808 +1.7260222,.3360501,1.9117939 +.54135576,2.4771195,3.005033 +.28472869,.24597425,.05335163 +.68513461,.59385596,2.4520858 +.67073331,.54201937,3.132323 +1.2093181,1.1365014,1.3264519 +1.1195643,.72804784,.28447407 +.92967461,.07090618,.75693232 +.53701701,.15599666,1.0991241 +1.2552051,.45638779,.72322845 +.65163162,1.4662531,1.0961697 +.92707913,.02511498,.58659275 +1.0300214,2.137288,.13592172 +.9325449,.10863633,1.87492 +.39131691,.73538275,.26667703 +.62543045,.14672588,2.5429004 +.60306697,1.6858792,.1873098 +.69758272,1.1748954,2.4999717 +.89401691,2.0440987,1.5106586 +.60772676,1.5296616,.23821434 +.15296804,1.9649963,.30400309 +.72415119,.72085281,.16328498 +.58380734,.8506181,.1327753 +.54715112,.7372381,.44191445 +.93292693,1.1739763,.41317613 +.81949672,.47573921,.26120052 +4.6120819,1.2122677,.99143912 +.52275597,.27855417,.65743102 +1.184728,.04377501,.13235617 +.81326741,1.6505471,.5021927 +.85847069,.51527156,.91485028 +1.2864687,.28925976,.70812634 +.41903252,.41459283,.15508692 +1.3922879,.47823454,.07425339 +.69167233,.45333638,1.07451 +2.4239704,.03142451,1.2658914 +1.062957,1.5174404,1.1647198 +.52218862,.81385021,1.2308736 +.8887096,.2892052,.27160736 +.41215226,.62863189,.24845003 +1.3389923,.23468054,1.3639118 +.80566927,.87733761,1.3663898 +.24461872,.95132415,.12287282 +1.0724494,.4023513,1.2038162 +.80758207,.64135958,.34327471 +.62340742,.02425402,.2107429 +.91232009,.14140656,.11666671 +.65132773,1.5607565,.07639353 +1.295372,1.2409938,.53272464 +1.4039994,.40408359,.41464915 +2.0396392,.02680293,.13056803 +1.2928071,.55798676,.87098515 +.50325413,.13631316,1.1118271 +.98944061,.79813728,.39735693 +.53825194,1.1460785,.90829523 +.86038552,.44939287,1.16445 +1.4331554,.12473062,2.1892605 +1.3074281,.138482,.65972077 +1.178585,.17756257,1.6454959 +.42287502,1.1007657,.18431588 +.28482119,.40147687,.36357834 +1.5282367,1.74298,.86731691 +.62352121,.27593877,.21506882 +.42833259,1.5353704,1.8361018 +1.5157908,.80200466,.59503393 +.68299416,.62800155,2.5121614 +.74072861,.93070751,.09698161 +.50792494,.65938919,.81958045 +1.0371708,.00753843,.90143509 +1.2932735,.12583838,1.1389062 +.84978253,.30736948,.72194522 +.95008412,.66275911,.05243049 +.49223222,1.2578061,.94138183 +1.0550057,.09101276,.61210977 +1.1849056,.86616938,1.4969236 +.93505617,1.2294447,.25097959 +.64042401,.43420053,.53209825 +1.0713511,.68150557,1.0746687 +.50935238,.85591418,.25883229 +.71456385,.96166345,1.3498794 +.68661042,.68392464,.97518472 +1.099242,.62868177,1.4507819 +.77722317,.97449654,.32846709 +.88944017,1.1073423,.91241906 +1.0551605,.72628194,.1905888 +2.1294732,.21447527,1.9066152 +.76337035,.20686916,.34780263 +1.1124885,.02783302,.26603717 +.93094936,.48979601,2.4429061 +.57317359,.39697844,1.3645952 +1.5905572,.20864353,.19501775 +.79363135,.68056502,2.2404343 +.72191655,1.1944686,.24192954 +.6078632,1.269344,1.3538558 +1.1882644,.2856146,.43355748 +1.5597111,.4779106,.78970566 +.59396586,.88761712,.73129809 +1.6826013,.13534202,1.035732 +.31463641,1.6084762,.65359614 +.71623879,1.2348744,.89120273 +.57691584,1.3010529,.8644534 +.67951569,.97256948,1.7279186 +.64077483,.43905019,1.0782348 +.76608348,.26790037,.31622198 +.96228748,.28532678,.22145759 +.55143215,.15825869,1.4259819 +.7124899,.41925366,.07881345 +.96604306,.0309532,.6737096 +1.3044427,1.0219398,.98277225 +.77016449,.34178456,.45794888 +.64476897,.25582939,.41928843 +.30370322,.35902111,.50172371 +.72869962,2.121169,.82977333 +.8779484,1.1436907,1.5889608 +.64485723,1.0735181,.47759815 +.41315578,.77963449,.58475887 +.51876014,.50930623,.14423058 +.74038317,.80125955,1.3274059 +.80714226,.92095033,.44830748 +.86542171,.27179913,1.5665399 +.94964853,.14655875,.1931052 +.84257547,2.5746237,1.9559064 +1.3253685,.28664006,.82070766 +.4919865,1.1190812,1.2016691 +.67988525,.40277092,1.4438627 +.7784383,.17568431,1.4484551 +1.0543374,.11352337,.98239068 +1.0721499,.08179788,.59085836 +.6470335,2.0399327,.94850736 +.4896941,1.1827498,.54433445 +1.5351251,1.1157271,1.4610127 +.9319995,.71953469,.51309998 +1.0491254,1.9612391,.01012645 +.36792276,.46947473,.39252425 +.32677638,1.3645812,.53819829 +.58258362,.67690285,.84588604 +.68867605,2.539904,.99704438 +.65243922,.57115224,2.0455113 +1.2874139,.51331556,.25258742 +1.6333519,.36416588,2.4237794 +.69090469,1.0470363,.84529159 +.86375582,.03560261,.97587424 +1.4044691,.06857649,.65688466 +.57830465,.44495005,.71164996 +.67978139,.64429918,.61055019 +.45550372,2.8636299,.9228639 +1.4299099,.40944242,.62873064 +.5813051,.22128944,.87245036 +.9261769,.86549741,1.1476426 +.40440402,.02107845,.00239596 +.6604035,.00155076,.86795595 +.68024223,1.7500067,2.4763484 +.49782893,.96243907,.73781349 +.62010846,.0206026,.25783965 +.77330574,.56707736,.20621442 +.78407289,.30275935,.36230274 +.32649876,1.5529527,.24312599 +.63722938,1.1841267,.00757615 +.74996151,.51857881,1.1397444 +.54306117,1.7834904,1.2297458 +2.8442831,1.9233474,1.0908258 +.6398441,1.6392878,.15424505 +.89378189,.48993595,.91968984 +1.462916,.82285526,1.8715102 +.63246698,.30161253,1.1676815 +.73744328,.88859662,.89368746 +.610368,.30092152,.7591123 +2.5905319,.39825341,1.4545553 +1.0712907,.27659499,1.0803684 +1.0825161,1.5799016,.39589847 +.81065616,.32898588,1.3390549 +.48058968,1.5273866,1.6491953 +.75616228,.68905692,.13295999 +.413386,.77607549,.50295592 +.88531222,.48451783,1.5324234 +.5072411,.6511584,.50190294 +.66976978,1.4492686,.92683791 +.40516913,1.0753,.79336736 +.78624959,.2875428,.83699112 +.42972784,.4763214,.69862826 +.87162866,.73515335,1.1697338 +.56139363,.25843605,.06635607 +1.2477086,1.9277721,.13867677 +.67709605,.77996461,.68633719 +.87174012,.54735712,1.3240836 +1.2211814,.55385832,1.3974319 +.64034606,.49164018,.40758012 +.65981705,1.2604899,.24206755 +.82632949,.46370525,.77645355 +1.4025171,.47270886,.50970768 +.92367775,2.1739885,.7714909 +.73195408,1.0354318,.15219296 +.34316139,.43979103,.32425374 +.37554164,.75177073,.78501072 +.67906488,1.1735004,.0804604 +.51962289,.03321507,.39444863 +.74153967,.09912807,.67456441 +1.1057165,.71794334,.44966465 +.66239099,.64432526,.85087684 +1.1338054,.22206064,.62145245 +.53126128,1.5968228,.68127648 +1.367562,.34686201,.73296808 +1.0362477,1.1827918,.17591939 +.76740018,1.6133825,1.2450923 +.88139836,.36609675,.00659358 +.51888454,1.0078093,1.7862396 +.40032203,.17580701,.78121662 +.93220351,.95429728,.62709029 +1.4245613,1.5112767,.17431408 +1.3247577,.4538707,.15944298 +.33777975,1.2784101,1.3069447 +2.3015332,.45399332,.28674395 +.64811655,2.3045856,.07548781 +2.131691,.21811155,.86985013 +.84300769,.46459537,.11909594 +1.2555272,.95968814,.97727485 +1.0932162,1.0746487,.62313604 +.5662928,.21537959,1.8438413 +.7183384,.82016977,.00245923 +.24345761,1.5847226,1.3726332 +.61357936,.45322552,.57541627 +.43825635,.71334697,.1786393 +1.8415397,.25930537,.42842531 +1.0846105,.68655152,.83367123 +.73371562,.35689506,.75389785 +.44519113,.39383168,.23185127 +.48472624,1.1758516,1.1534174 +.90645744,.59324764,.24863818 +1.1146474,.77025962,.14345153 +.72812607,.38055231,1.5993959 +1.0628037,.81283737,2.5150245 +.65876508,.08212777,1.2915346 +.32891519,.9405178,.53376312 +.92916013,.20993851,.41313696 +.91173164,.35128491,.0461125 +.39370738,1.3677216,.43293659 +.55358825,1.598744,.04925342 +.70666986,.29740809,.99354431 +1.3485425,.80585614,.91033795 +.4568809,1.2231573,.4788834 +.44812777,.74562056,.27546119 +1.8168499,1.1870203,.37059891 +.28015084,2.3343245,1.8741043 +2.571738,.44249945,2.6086615 +.68703777,1.9773628,.17942696 +.76529213,.33173631,.12264761 +.37860053,.35705986,2.0078595 +2.4808248,.37170135,.42437833 +.6360392,.7123772,1.4579801 +.29487735,.60965531,1.1054069 +1.5161381,.24422719,.21712067 +.81842365,2.5372959,.41224182 +.57248057,.14265412,.91538287 +.57338182,.32547192,.36382549 +1.1075603,.99588337,.71792851 +.65971904,1.0560243,.03212465 +.68321622,2.2534114,.50884255 +1.1748687,.93252178,.67244658 +.92347261,.14050322,1.3666705 +1.0424962,.73381136,.09276123 +1.5172877,1.0541049,.40654094 +.51294371,1.29971,.05412451 +1.6326976,.36414816,1.6175221 +1.5167495,.19900559,1.28986 +.85429282,.81987768,.96763726 +1.4327045,.93891628,2.0968062 +.38102167,.73993387,.34238792 +.89707329,1.4257216,.23908655 +.79807829,.56000166,.69948855 +.64855285,.99343271,.0403098 +1.3089401,1.2816912,.86710349 +1.0230231,.46010813,.26569087 +.33179999,2.0636804,1.8876811 +1.2800209,.44657603,1.0810347 +.83509561,.3974757,.75273479 +1.3018,.75185757,.20937935 +.80927267,2.056732,.29315752 +1.7285675,.10237531,.62886455 +.94557364,.20417868,.85909297 +.70924684,.2156802,.7593879 +.56801835,.14199698,.62258861 +1.1329404,.42155481,2.2855953 +.53493071,1.4412974,.89957633 +.71220953,.62295291,.28082282 +.87563799,1.0675566,1.6693933 +.74723485,.33744353,1.8193307 +1.4829611,.28474539,.0735901 +.47127541,1.7227148,.01808619 +1.0990041,1.3627132,.57778433 +1.3206745,.7601775,1.002929 +1.7822459,.21596079,1.6946402 +.57935618,.48846274,.08578555 +.60830702,.24858378,.50400363 +.60238983,.49342141,.82952157 +1.5975996,.13264652,.04981007 +.7561089,1.2849779,.04752101 +1.0112236,.67832021,1.4864473 +.75745538,2.6588741,.74060338 +.88158386,.34919488,1.5380533 +1.2223211,.17337392,1.9610357 +1.7784736,1.0638753,.54321327 +1.180366,.18529709,.18817773 +.76823562,.67345118,.78757404 +.80796352,.10343009,.59297844 +.3368785,2.6532335,2.4301017 +.6197941,.79891961,.56420318 +.57534226,.2358301,.06175416 +.62319052,.95588826,2.6466718 +1.0762407,.20533321,.70796352 +.92835366,1.2241697,.51527022 +.56958804,2.4832352,.21731236 +.81014961,1.9885072,1.0959845 +1.1618556,2.2557235,.07837453 +.64137404,.05595449,.56003697 +.85534558,.83516407,.61306773 +1.4289795,.02705728,2.7569743 +.92680466,.10020655,.2896521 +1.6039057,.04322754,1.4543302 +.73333074,.99200881,.47003657 +.99756451,.3750477,.91561551 +1.6596643,1.3562829,1.1505652 +.74351804,.34895162,.64283804 +1.4461777,1.0576037,.68111407 +1.937445,.00332439,2.2187295 +.86782385,.4085835,1.8016827 +2.2461614,.45789896,.48679289 +1.1508536,.6478378,.45804053 +1.0277627,.84506538,1.3396213 +.31002555,1.5184425,.03519688 +.44034991,1.1537746,1.3951833 +.42687829,1.2647285,1.8984017 +1.8693239,1.0012759,1.1145123 +1.2246877,1.3126089,.67236891 +.65313045,.11785498,1.2394504 +2.0677441,.34668019,2.0796638 +2.9060223,.91636242,.22861586 +.55507901,.72212059,.07492644 +1.2116879,.58545109,1.771824 +.60718879,.96013381,.70601008 +.4101653,1.2940113,.78338896 +1.0094925,.47233992,1.1167822 +.35964838,.61422426,1.0757687 +.65674653,1.6695802,.53408777 +1.118313,.64064203,1.1978721 +.40645899,.70308648,.23887004 +1.6135196,.04510506,.29386437 +.49933913,.15525938,1.0902229 +.61432253,.88311269,.73146771 +.89919489,.63103718,.02874329 +1.1999731,.17803525,.87496341 +1.4755227,2.1306955,.68317767 +1.4057168,.11691024,2.3278573 +1.3056559,.68316443,1.2492737 +.86389848,.79722183,1.4401973 +1.2191948,2.4122954,1.569665 +.74898867,.53834085,.92338954 +1.5284241,.20341062,.95970462 +.93259835,1.3847695,.1983589 +.34148931,1.3463013,.95882594 +.89742024,.02949545,.42625357 +.88026887,1.7410233,.52811808 +.3907246,.28195824,.31188594 +.85362555,1.479275,.05728872 +.59144525,.28003159,.08360017 +.43325421,1.1323534,1.4652906 +1.4603989,.60258855,.29680736 +.60387387,.71252199,.08592454 +.96803892,.33663581,.87976618 +.40338442,1.1341441,1.0010958 +.47308676,1.1710883,2.1556667 +1.4916729,.41862618,1.4234216 +1.513186,.63044089,.84905519 +.54684015,2.094903,.84112693 +1.6869807,1.1679383,.43407913 +1.0927412,.32819406,.30854372 +.54537554,1.2006196,1.5911716 +1.3478603,.49946001,.35062038 +.69660512,.85312163,.50215879 +.65116663,.09483406,1.5508372 +.49264743,1.7134856,.6537365 +1.8105975,.17070025,1.2378558 +1.6187841,1.3440077,1.0022457 +.89961083,.74999471,.17146243 +.36934665,1.3174972,.18883253 +.91455262,.37517699,.92925231 +.87012978,.85825286,1.1622748 +.67554324,.81528683,.64497602 +.72796689,.40324516,.71616468 +.92622408,.02326537,.18716862 +.69507876,.38288233,.9949658 +1.7801891,.66406708,1.694306 +1.050626,.71311357,.11100239 +.72784732,.76596064,1.323159 +.92806654,2.1463577,1.9646934 +1.3265114,1.8116503,.40718082 +.64709218,1.8993195,.40637787 +.62578714,1.5720057,.71613123 +.62354381,1.8363208,.60927455 +1.2442403,.12972083,.02953719 +.75683582,.51435273,.60637426 +1.371667,.37025892,.06724865 +1.0496795,1.1741682,1.0400597 +.36755265,1.7305243,.37984384 +1.2349227,.0233649,.59565865 +1.1291509,.43857023,1.2979517 +.64122269,.02096425,.02423482 +.54768254,.0834145,.03953611 +.77624136,1.0455675,.26394261 +.5487801,.06310734,1.6026148 +1.0630092,.44235134,.29042431 +.7865688,1.2659969,.48613163 +1.2670376,1.3032969,2.0027184 +.48676194,2.4164841,1.0422733 +.55722041,.24562642,.60701589 +.96732587,.4302962,1.9156838 +1.3483375,.34181957,2.3689846 +.73585046,1.7866444,.57338157 +.5310269,.81501017,.94680294 +1.194438,.10255767,1.2465274 +.86222938,.55079123,.02575186 +.58526372,.67547841,.10989397 +.86484816,1.0997578,.19264847 +.28256251,2.3354607,.26399282 +.72158714,.1991819,.37559408 +1.0375405,2.6489738,.90627963 +.59852862,1.4209114,2.0845085 +.4214695,1.4529017,1.2960356 +.48038075,1.2491836,.5256133 +.35603157,1.3773532,.46951224 +.59545749,1.5872916,.00137937 +.95537794,.94361046,.050532 +.44422476,1.335396,.50008404 +1.5312502,.26275714,.02446314 +2.5796793,.02073198,1.3807399 +.67978943,.69295969,.9605533 +2.1766547,.60263326,.64608273 +.86942762,.49844549,.24501389 +.37627572,1.0095631,.43452719 +.59421776,.06120066,1.2852596 +.49870003,.70104922,.30069658 +.67229949,.99040309,.11597539 +1.1513851,.69270538,.69692452 +1.3706784,1.0801064,1.6963887 +1.3418344,.03380247,.4294621 +.96474682,.57555621,.2431176 +1.4181839,.43784316,1.2239075 +.70934178,1.1257657,1.6296146 +1.6366922,.58690283,1.0280791 +1.5357647,.2432297,1.5229078 +.31553622,1.3562669,1.0538903 +.68792225,.69901349,.90320203 +.46338499,.56478778,.34123736 +1.5961558,.30198952,1.4851412 +.21825078,2.2007007,.54889341 +.97455105,.88532706,.3931441 +.37379635,1.8014973,.83353215 +1.0930836,1.0496075,.55740309 +.92252344,.3072259,.37227214 +.54884691,.6920049,.40740044 +.41165387,.78371258,1.5732706 +.27949511,.68540599,.0020217 +1.2013635,2.9696326,.40882887 +1.0236737,1.4948122,.23675647 +.81631944,.2565994,.41990892 +1.0226723,1.4691166,1.0734861 +.57907138,.46017182,.06917628 +.38400212,1.8010814,1.02687 +1.4531813,.64981772,.5967013 +.87660758,.57594836,1.1804396 +.63455007,1.0070724,1.3189317 +1.37078,.54335726,.66230682 +.93842385,.4648699,.56985403 +1.6858023,.65719334,2.8226439 +1.5163872,.22455743,.20086926 +1.0521868,.56518326,1.435956 +.35700339,1.9982776,.89242741 +.532948,1.4198226,.06614405 +1.3396797,.87098207,.61807739 +.24856325,1.1068683,.49526634 +1.9248222,.50326823,.57585772 +.4437494,.43165845,.53558639 +.54152456,1.3918489,1.663235 +.6822504,1.0403388,.46237295 +2.3417701,.06907957,.04352109 +1.3968699,.14938179,.21039623 +.31369161,1.6712671,1.123252 +.63424768,1.8600642,.73863534 +1.023145,.66170807,.95085331 +.92719282,.3361549,.37553339 +.35701271,.61784299,.01618807 +.52665299,2.0564578,.85481663 +.86079285,.72639691,1.1661351 +.44142021,1.6135103,.41365952 +1.9766222,.19656573,.31610363 +.58600217,1.2606614,.60464849 +.77925666,.97655765,1.6996924 +1.940305,.27658401,.98321773 +.72453846,1.8083733,.40110246 +.3083862,.80334794,.05336384 +.32323647,.67202487,.26537271 +1.1171796,.84279191,.48975742 +2.3804169,.18885457,2.7377433 +.60433537,.65566794,.64597969 +1.0846475,.13472601,.53613207 +.59049038,.77689132,.05901135 +.73214938,2.262433,.62799638 +.44193709,2.1866581,.85793815 +1.5179435,1.3466036,.23200599 +1.0789435,.95930144,2.3171139 +2.7934764,.53173757,1.6578806 +.60381913,2.0445519,1.5378756 +2.2553769,.00098954,2.22739 +.67758482,.57360939,.40692675 +.54818582,.65133854,.79222146 +1.193282,1.1672386,.54468373 +1.2349248,.41722014,.03329499 +.57373599,.37334115,.83803934 +.34593633,.41700349,.44317427 +.9343236,.73129198,1.4385106 +.56629598,.23550206,.22585155 +.8882889,.65057351,.32272838 +.92747917,1.9847132,1.0325563 +.87599786,.50248093,.58063694 +.76864339,2.2014173,.64263308 +1.5462566,1.2729829,.1266775 +.45310563,1.0772297,.44635759 +.97736831,1.593362,1.6279788 +1.1744745,.55118058,.41984215 +.40746484,1.4835553,1.1584996 +.64445241,.04522721,.06498349 +.5659927,1.0221971,.03574795 +.32215627,.29593885,.06637473 +.64667144,1.4961229,.76846605 +.60146617,1.3170128,.17597975 +.67497106,1.0559617,1.1463464 +.9231131,1.663892,.1053914 +1.5763347,1.085907,.44208155 +1.034483,.06841212,.17427601 +2.5875062,.3216096,1.5276183 +2.2162338,.16007739,1.3579277 +.62322642,.32315125,.1222767 +1.1817858,.79870244,1.2796465 +1.8807073,1.0614842,.23570774 +1.0181515,.28907054,.06678156 +1.1045564,.49899931,.22726116 +1.7308379,.57241084,.79261422 +.70231334,1.7681389,1.3977755 +1.3237468,.30865835,.31687235 +1.299911,.26019521,.15339346 +.91158076,.10572036,.02128941 +1.3119979,1.5565935,.44680504 +1.1817192,1.4361554,1.363731 +.6973528,.12741736,.07433224 +1.6256335,.06648485,.18206091 +.47725114,1.0775329,.54892661 +1.9113322,.39397266,.40675203 +.96551876,.56660029,.84442113 +1.2840565,.34854888,.40895123 +.66169338,1.819464,.20644197 +.84999359,.48816377,.59361468 +.44563542,.34454284,.99730413 +.7620354,.24929127,1.3314471 +2.0275687,1.1621508,1.5928085 +.63340269,.18851793,.04836198 +.72580403,1.1340934,.21138117 +1.379978,.73626715,1.0161079 +.4276442,.50703011,.39708737 +.3582363,.77776751,.44152059 +2.0296286,.68519421,.75224632 +.33855176,1.2085536,.20189092 +.66705853,.83012965,1.5996954 +.63167483,.31857322,.35844685 +1.0339932,.90647644,.6249356 +.70048733,1.3485348,.45190451 +.39190471,.06855184,.76261058 +.48061026,.36195734,1.4214984 +.70435157,1.411528,.15732353 +.66191766,.08987892,.81149487 +2.3585965,.50808299,.53086298 +.70900034,1.7146681,1.7463657 +1.5159426,.53577436,1.4978532 +.47869193,.29726645,.04817281 +.21015999,.61049705,.93786114 +.90429683,.42236519,1.2543597 +.69309461,1.41039,.64685322 +.40774025,.21420631,.03562601 +.77643377,1.233487,.38702381 +.39275267,1.0095542,.12478784 +1.3951036,.8443644,1.1558097 +.39115113,1.6440449,.33227879 +1.3304053,.7407143,1.5899865 +.94679491,.14654569,1.8782694 +1.9761037,.01434133,.17385053 +1.1358052,.35487923,.76262824 +.20808584,.97809447,1.4088293 +.69672276,.54602364,1.3171499 +.84641761,1.1241663,.42966577 +.55918357,1.2165002,1.606226 +.54323881,.40968798,1.1052551 +.56696759,.39070029,1.1961091 +1.002651,.31277129,.68314357 +.69324165,1.2885334,.05613407 +1.3511187,.69884884,.76162282 +.2495769,.71204484,1.1258853 +.99345225,.32057716,.4298666 +1.6130161,.05593041,1.5131863 +.31271087,2.0070846,.96963653 +.76223436,1.872424,.98168851 +.52015039,1.3160899,.46523211 +.45200872,2.5051161,.51703237 +.27628432,1.8069414,.68201762 +1.1171153,.03466919,1.0173693 +.97671402,1.1049906,.25770952 +1.401379,1.3877424,2.2170977 +.43773007,1.5287901,.17213944 +.99943371,.25687776,1.8837968 +.96582434,1.2851354,1.6309034 +1.9159568,.93583274,.09265329 +.22886692,3.2399328,.64523532 +.65602388,.54407088,.71142059 +.47234655,.92851725,.68231093 +.76053417,.9935189,.29903559 +1.6624051,.41345006,.32768835 +1.2750937,1.3940707,.25055705 +.77830006,.52702923,.21210824 +.82110495,.16100896,.57621835 +1.2194688,.38460931,.81317667 +.65921435,.60156966,.48963607 +.91882228,2.0309657,.32422162 +1.4259483,.13155093,1.2290654 +1.3851449,.15434496,1.2598837 +1.5062064,1.1630516,2.7125824 +.86052609,.20529867,.91409136 +.81563901,1.6759871,.98042586 +.96410576,.80401628,1.3586639 +.79527086,.77138036,.51699284 +1.5959448,.35250562,.70652834 +.73457845,.49466517,1.0828609 +.91588219,.07036845,.58594754 +.66229489,.23618128,1.3485052 +.40466549,.29136395,1.4963158 +1.268009,.04734291,.87753955 +.4492601,.35189613,1.3911144 +.3582487,.64467325,.12409709 +.74106828,1.4336888,1.1769495 +.45833805,.05930228,.52344453 +.54381949,1.1157084,.42483335 +.8047712,.80950617,.06727486 +.40386786,1.9347674,.04553126 +.64952883,.58577328,.45229018 +.52694452,1.0308727,1.4969249 +.70766604,.94594666,.61023174 +.71631054,.90717335,.92649328 +1.0369068,.96841703,.28045394 +.98162832,.05923147,1.2469348 +.3722195,.15741403,.52790514 +.96355892,.52449163,.2369279 +1.7297467,.6038351,1.3506531 +.58434889,.87600647,.14492429 +.87686813,1.8352809,.70102615 +.68451718,.00724502,1.1013835 +.4924203,.16091017,.05501368 +1.3556745,.55503092,.29344854 +.60941014,1.6973828,1.0878894 +1.0058056,.60196458,.97388934 +.84639996,.26038673,.37620264 +1.575636,.05546497,1.0073885 diff --git a/statsmodels/genmod/tests/results/iris.csv b/statsmodels/genmod/tests/results/iris.csv new file mode 100644 index 0000000..93fca4d --- /dev/null +++ b/statsmodels/genmod/tests/results/iris.csv @@ -0,0 +1,151 @@ +150,4,setosa,versicolor,virginica +5.1,3.5,1.4,0.2,0 +4.9,3.0,1.4,0.2,0 +4.7,3.2,1.3,0.2,0 +4.6,3.1,1.5,0.2,0 +5.0,3.6,1.4,0.2,0 +5.4,3.9,1.7,0.4,0 +4.6,3.4,1.4,0.3,0 +5.0,3.4,1.5,0.2,0 +4.4,2.9,1.4,0.2,0 +4.9,3.1,1.5,0.1,0 +5.4,3.7,1.5,0.2,0 +4.8,3.4,1.6,0.2,0 +4.8,3.0,1.4,0.1,0 +4.3,3.0,1.1,0.1,0 +5.8,4.0,1.2,0.2,0 +5.7,4.4,1.5,0.4,0 +5.4,3.9,1.3,0.4,0 +5.1,3.5,1.4,0.3,0 +5.7,3.8,1.7,0.3,0 +5.1,3.8,1.5,0.3,0 +5.4,3.4,1.7,0.2,0 +5.1,3.7,1.5,0.4,0 +4.6,3.6,1.0,0.2,0 +5.1,3.3,1.7,0.5,0 +4.8,3.4,1.9,0.2,0 +5.0,3.0,1.6,0.2,0 +5.0,3.4,1.6,0.4,0 +5.2,3.5,1.5,0.2,0 +5.2,3.4,1.4,0.2,0 +4.7,3.2,1.6,0.2,0 +4.8,3.1,1.6,0.2,0 +5.4,3.4,1.5,0.4,0 +5.2,4.1,1.5,0.1,0 +5.5,4.2,1.4,0.2,0 +4.9,3.1,1.5,0.1,0 +5.0,3.2,1.2,0.2,0 +5.5,3.5,1.3,0.2,0 +4.9,3.1,1.5,0.1,0 +4.4,3.0,1.3,0.2,0 +5.1,3.4,1.5,0.2,0 +5.0,3.5,1.3,0.3,0 +4.5,2.3,1.3,0.3,0 +4.4,3.2,1.3,0.2,0 +5.0,3.5,1.6,0.6,0 +5.1,3.8,1.9,0.4,0 +4.8,3.0,1.4,0.3,0 +5.1,3.8,1.6,0.2,0 +4.6,3.2,1.4,0.2,0 +5.3,3.7,1.5,0.2,0 +5.0,3.3,1.4,0.2,0 +7.0,3.2,4.7,1.4,1 +6.4,3.2,4.5,1.5,1 +6.9,3.1,4.9,1.5,1 +5.5,2.3,4.0,1.3,1 +6.5,2.8,4.6,1.5,1 +5.7,2.8,4.5,1.3,1 +6.3,3.3,4.7,1.6,1 +4.9,2.4,3.3,1.0,1 +6.6,2.9,4.6,1.3,1 +5.2,2.7,3.9,1.4,1 +5.0,2.0,3.5,1.0,1 +5.9,3.0,4.2,1.5,1 +6.0,2.2,4.0,1.0,1 +6.1,2.9,4.7,1.4,1 +5.6,2.9,3.6,1.3,1 +6.7,3.1,4.4,1.4,1 +5.6,3.0,4.5,1.5,1 +5.8,2.7,4.1,1.0,1 +6.2,2.2,4.5,1.5,1 +5.6,2.5,3.9,1.1,1 +5.9,3.2,4.8,1.8,1 +6.1,2.8,4.0,1.3,1 +6.3,2.5,4.9,1.5,1 +6.1,2.8,4.7,1.2,1 +6.4,2.9,4.3,1.3,1 +6.6,3.0,4.4,1.4,1 +6.8,2.8,4.8,1.4,1 +6.7,3.0,5.0,1.7,1 +6.0,2.9,4.5,1.5,1 +5.7,2.6,3.5,1.0,1 +5.5,2.4,3.8,1.1,1 +5.5,2.4,3.7,1.0,1 +5.8,2.7,3.9,1.2,1 +6.0,2.7,5.1,1.6,1 +5.4,3.0,4.5,1.5,1 +6.0,3.4,4.5,1.6,1 +6.7,3.1,4.7,1.5,1 +6.3,2.3,4.4,1.3,1 +5.6,3.0,4.1,1.3,1 +5.5,2.5,4.0,1.3,1 +5.5,2.6,4.4,1.2,1 +6.1,3.0,4.6,1.4,1 +5.8,2.6,4.0,1.2,1 +5.0,2.3,3.3,1.0,1 +5.6,2.7,4.2,1.3,1 +5.7,3.0,4.2,1.2,1 +5.7,2.9,4.2,1.3,1 +6.2,2.9,4.3,1.3,1 +5.1,2.5,3.0,1.1,1 +5.7,2.8,4.1,1.3,1 +6.3,3.3,6.0,2.5,2 +5.8,2.7,5.1,1.9,2 +7.1,3.0,5.9,2.1,2 +6.3,2.9,5.6,1.8,2 +6.5,3.0,5.8,2.2,2 +7.6,3.0,6.6,2.1,2 +4.9,2.5,4.5,1.7,2 +7.3,2.9,6.3,1.8,2 +6.7,2.5,5.8,1.8,2 +7.2,3.6,6.1,2.5,2 +6.5,3.2,5.1,2.0,2 +6.4,2.7,5.3,1.9,2 +6.8,3.0,5.5,2.1,2 +5.7,2.5,5.0,2.0,2 +5.8,2.8,5.1,2.4,2 +6.4,3.2,5.3,2.3,2 +6.5,3.0,5.5,1.8,2 +7.7,3.8,6.7,2.2,2 +7.7,2.6,6.9,2.3,2 +6.0,2.2,5.0,1.5,2 +6.9,3.2,5.7,2.3,2 +5.6,2.8,4.9,2.0,2 +7.7,2.8,6.7,2.0,2 +6.3,2.7,4.9,1.8,2 +6.7,3.3,5.7,2.1,2 +7.2,3.2,6.0,1.8,2 +6.2,2.8,4.8,1.8,2 +6.1,3.0,4.9,1.8,2 +6.4,2.8,5.6,2.1,2 +7.2,3.0,5.8,1.6,2 +7.4,2.8,6.1,1.9,2 +7.9,3.8,6.4,2.0,2 +6.4,2.8,5.6,2.2,2 +6.3,2.8,5.1,1.5,2 +6.1,2.6,5.6,1.4,2 +7.7,3.0,6.1,2.3,2 +6.3,3.4,5.6,2.4,2 +6.4,3.1,5.5,1.8,2 +6.0,3.0,4.8,1.8,2 +6.9,3.1,5.4,2.1,2 +6.7,3.1,5.6,2.4,2 +6.9,3.1,5.1,2.3,2 +5.8,2.7,5.1,1.9,2 +6.8,3.2,5.9,2.3,2 +6.7,3.3,5.7,2.5,2 +6.7,3.0,5.2,2.3,2 +6.3,2.5,5.0,1.9,2 +6.5,3.0,5.2,2.0,2 +6.2,3.4,5.4,2.3,2 +5.9,3.0,5.1,1.8,2 diff --git a/statsmodels/genmod/tests/results/medparlogresids.csv b/statsmodels/genmod/tests/results/medparlogresids.csv new file mode 100644 index 0000000..68b608a --- /dev/null +++ b/statsmodels/genmod/tests/results/medparlogresids.csv @@ -0,0 +1,3676 @@ +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-3.234632000000000063e-01,-8.578107000000000371e-01,-4.242853999999999814e+01,-7.355306999999999817e-01,-6.032880999999999716e+00 +8.561043000000000402e-01,4.734012000000000220e-01,1.122947999999999951e+02,4.468011000000000066e-01,1.596711999999999954e+01 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-3.442172000000000009e-01,-8.265827000000000035e-01,-2.748534000000000077e+01,-7.296150999999999609e-01,-4.766435999999999673e+00 +-3.234632000000000063e-01,-8.578107000000000371e-01,-4.242853999999999814e+01,-7.355306999999999817e-01,-6.032880999999999716e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +7.237930000000000197e-01,4.305149999999999810e-01,7.407390999999999792e+01,4.117415999999999854e-01,1.163175000000000026e+01 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +6.416374000000000244e-01,3.903728000000000198e-01,8.416331999999999880e+01,3.747579999999999800e-01,1.196711999999999954e+01 +2.663205000000000156e-01,2.038828000000000029e-01,3.493316000000000088e+01,2.014776000000000067e-01,4.967119000000000284e+00 +-3.234632000000000063e-01,-8.578107000000000371e-01,-4.242853999999999814e+01,-7.355306999999999817e-01,-6.032880999999999716e+00 +5.880206999999999518e-01,3.675555999999999823e-01,7.713043999999999301e+01,3.543703999999999743e-01,1.096711999999999954e+01 +-3.442172000000000009e-01,-8.265827000000000035e-01,-2.748534000000000077e+01,-7.296150999999999609e-01,-4.766435999999999673e+00 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +-2.700007999999999853e-01,-4.362619999999999831e-01,-1.682097999999999871e+01,-4.199611999999999790e-01,-3.221490999999999882e+00 +6.416374000000000244e-01,3.903728000000000198e-01,8.416331999999999880e+01,3.747579999999999800e-01,1.196711999999999954e+01 +-3.538131999999999944e-01,-8.084837999999999747e-01,-2.204247000000000156e+01,-7.233001999999999487e-01,-4.221491000000000327e+00 +-2.653560999999999837e-01,-4.079950999999999994e-01,-1.289832000000000001e+01,-3.956779000000000268e-01,-2.728044999999999831e+00 +-3.626257999999999981e-01,-7.884961000000000331e-01,-1.762635999999999825e+01,-7.144532000000000105e-01,-3.728044999999999831e+00 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +5.344039999999999901e-01,3.437256000000000200e-01,7.009756000000000142e+01,3.328170999999999768e-01,9.967119000000000284e+00 +-3.442172000000000009e-01,-8.265827000000000035e-01,-2.748534000000000077e+01,-7.296150999999999609e-01,-4.766435999999999673e+00 +5.344039999999999901e-01,3.437256000000000200e-01,7.009756000000000142e+01,3.328170999999999768e-01,9.967119000000000284e+00 +1.940280000000000060e-01,1.638978000000000101e-01,7.358446999999999960e+00,1.631224000000000007e-01,1.718768999999999991e+00 +4.807872999999999730e-01,3.187570000000000126e-01,6.306468000000000274e+01,3.099567999999999768e-01,8.967119000000000284e+00 +6.952540999999999860e-01,4.122828000000000048e-01,9.119620999999999356e+01,3.940996999999999972e-01,1.296711999999999954e+01 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-3.442172000000000009e-01,-8.265827000000000035e-01,-2.748534000000000077e+01,-7.296150999999999609e-01,-4.766435999999999673e+00 +-3.234632000000000063e-01,-8.578107000000000371e-01,-4.242853999999999814e+01,-7.355306999999999817e-01,-6.032880999999999716e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-3.234632000000000063e-01,-8.578107000000000371e-01,-4.242853999999999814e+01,-7.355306999999999817e-01,-6.032880999999999716e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +6.416374000000000244e-01,3.903728000000000198e-01,8.416331999999999880e+01,3.747579999999999800e-01,1.196711999999999954e+01 +1.326297000000000059e+00,6.979185999999999446e-01,3.924463999999999686e+01,6.521791000000000116e-01,1.012335999999999991e+01 +3.735538999999999943e-01,2.647622000000000031e-01,4.899891999999999825e+01,2.596048000000000244e-01,6.967119000000000284e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-3.704108999999999874e-01,-7.664223000000000008e-01,-1.404771000000000036e+01,-7.028326000000000295e-01,-3.281231000000000009e+00 +4.807872999999999730e-01,3.187570000000000126e-01,6.306468000000000274e+01,3.099567999999999768e-01,8.967119000000000284e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +6.835332000000000185e+00,1.716207999999999956e+00,3.322490000000000236e+02,1.271139999999999937e+00,7.027196000000000708e+01 +9.633376999999999635e-01,5.109462000000000170e-01,1.263606000000000051e+02,4.782426000000000177e-01,1.796712000000000131e+01 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +5.681230000000000446e-01,3.747563999999999895e-01,3.539392000000000138e+01,3.641587000000000018e-01,6.778508999999999673e+00 +2.882135000000000113e-01,2.192947000000000091e-01,2.949614000000000047e+01,2.165885999999999922e-01,4.631745999999999697e+00 +1.637620999999999938e-01,1.377533999999999981e-01,1.675963000000000136e+01,1.370690999999999993e-01,2.631746000000000141e+00 +5.326914000000000371e-01,3.673996999999999957e-01,2.020213999999999999e+01,3.590831999999999913e-01,4.718768999999999991e+00 +6.100712000000000357e-01,3.999677999999999845e-01,2.965409000000000006e+01,3.883282000000000123e-01,6.271955000000000169e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-3.234632000000000063e-01,-8.578107000000000371e-01,-4.242853999999999814e+01,-7.355306999999999817e-01,-6.032880999999999716e+00 +1.070570999999999939e+00,5.463869000000000087e-01,1.404264000000000010e+02,5.072630999999999668e-01,1.996712000000000131e+01 +-1.023760999999999977e-01,-1.169676000000000049e-01,-6.378002999999999645e+00,-1.166221999999999953e-01,-1.221491000000000104e+00 +-3.234632000000000063e-01,-8.578107000000000371e-01,-4.242853999999999814e+01,-7.355306999999999817e-01,-6.032880999999999716e+00 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-3.234632000000000063e-01,-8.578107000000000371e-01,-4.242853999999999814e+01,-7.355306999999999817e-01,-6.032880999999999716e+00 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-3.442172000000000009e-01,-8.265827000000000035e-01,-2.748534000000000077e+01,-7.296150999999999609e-01,-4.766435999999999673e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +-1.861885000000000068e-01,-2.456345000000000056e-01,-1.159948999999999941e+01,-2.425192999999999932e-01,-2.221490999999999882e+00 +1.553120999999999974e+00,6.864687999999999901e-01,2.037222999999999900e+02,6.157422000000000173e-01,2.896712000000000131e+01 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.275664999999999993e-01,-1.531653000000000042e-01,-1.018604000000000021e+01,-1.523148000000000002e-01,-1.766435999999999895e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +4.092022000000000159e-01,3.045207999999999804e-01,1.210814000000000057e+01,3.001345000000000263e-01,3.123356999999999939e+00 +-2.720002999999999727e-01,-4.618575999999999793e-01,-2.171891000000000105e+01,-4.409649999999999959e-01,-3.766434999999999977e+00 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.856369999999999895e-02,-1.897039999999999837e-02,-1.156511999999999984e+00,-1.896890000000000034e-02,-2.214907999999999877e-01 +-1.861885000000000068e-01,-2.456345000000000056e-01,-1.159948999999999941e+01,-2.425192999999999932e-01,-2.221490999999999882e+00 +4.807872999999999730e-01,3.187570000000000126e-01,6.306468000000000274e+01,3.099567999999999768e-01,8.967119000000000284e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +3.199371999999999772e-01,2.353204999999999880e-01,4.196603999999999957e+01,2.316601000000000077e-01,5.967119000000000284e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.680863999999999969e-01,-2.110146999999999995e-01,-8.170275000000000176e+00,-2.092063000000000117e-01,-1.728045000000000053e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +1.015365000000000018e-01,9.059150000000000535e-02,1.039137000000000022e+01,9.039529999999999788e-02,1.631745999999999919e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +2.663205000000000156e-01,2.038828000000000029e-01,3.493316000000000088e+01,2.014776000000000067e-01,4.967119000000000284e+00 +3.199371999999999772e-01,2.353204999999999880e-01,4.196603999999999957e+01,2.316601000000000077e-01,5.967119000000000284e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +1.490611000000000019e-01,1.287397000000000125e-01,9.286469000000000307e+00,1.282800000000000051e-01,1.778508999999999896e+00 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +-2.700007999999999853e-01,-4.362619999999999831e-01,-1.682097999999999871e+01,-4.199611999999999790e-01,-3.221490999999999882e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +4.271706000000000114e-01,2.924977000000000271e-01,5.603179999999999694e+01,2.856206000000000023e-01,7.967119000000000284e+00 +-2.653560999999999837e-01,-4.079950999999999994e-01,-1.289832000000000001e+01,-3.956779000000000268e-01,-2.728044999999999831e+00 +-1.997833999999999999e-01,-2.769826000000000232e-01,-1.595246999999999993e+01,-2.721155000000000102e-01,-2.766434999999999977e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +6.100712000000000357e-01,3.999677999999999845e-01,2.965409000000000006e+01,3.883282000000000123e-01,6.271955000000000169e+00 +-3.340430999999999817e-01,-8.429710999999999732e-01,-3.418639999999999901e+01,-7.336224000000000078e-01,-5.368254000000000303e+00 +1.616149999999999878e-02,1.591029999999999875e-02,4.782123999999999819e-01,1.590969999999999884e-02,1.233574000000000059e-01 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-1.856369999999999895e-02,-1.897039999999999837e-02,-1.156511999999999984e+00,-1.896890000000000034e-02,-2.214907999999999877e-01 +-1.861885000000000068e-01,-2.456345000000000056e-01,-1.159948999999999941e+01,-2.425192999999999932e-01,-2.221490999999999882e+00 +-2.291479999999999906e-02,-2.360759999999999942e-02,-2.345133000000000134e+00,-2.360409999999999939e-02,-3.682536000000000143e-01 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-2.575231000000000048e-01,-3.767781000000000047e-01,-9.766479000000000354e+00,-3.678354999999999819e-01,-2.281231000000000009e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-2.718173999999999868e-01,-4.850342999999999738e-01,-2.781814999999999927e+01,-4.589498000000000189e-01,-4.368254000000000303e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +8.908420000000000227e-02,8.085470000000000157e-02,7.113269999999999982e+00,8.072830000000000283e-02,1.233564000000000105e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-1.275664999999999993e-01,-1.531653000000000042e-01,-1.018604000000000021e+01,-1.523148000000000002e-01,-1.766435999999999895e+00 +3.199371999999999772e-01,2.353204999999999880e-01,4.196603999999999957e+01,2.316601000000000077e-01,5.967119000000000284e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +-2.458656999999999926e-01,-3.423031000000000268e-01,-7.275072999999999901e+00,-3.361348000000000114e-01,-1.876643000000000061e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-2.700007999999999853e-01,-4.362619999999999831e-01,-1.682097999999999871e+01,-4.199611999999999790e-01,-3.221490999999999882e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +8.908420000000000227e-02,8.085470000000000157e-02,7.113269999999999982e+00,8.072830000000000283e-02,1.233564000000000105e+00 +-3.704108999999999874e-01,-7.664223000000000008e-01,-1.404771000000000036e+01,-7.028326000000000295e-01,-3.281231000000000009e+00 +8.908420000000000227e-02,8.085470000000000157e-02,7.113269999999999982e+00,8.072830000000000283e-02,1.233564000000000105e+00 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +3.199371999999999772e-01,2.353204999999999880e-01,4.196603999999999957e+01,2.316601000000000077e-01,5.967119000000000284e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +8.908420000000000227e-02,8.085470000000000157e-02,7.113269999999999982e+00,8.072830000000000283e-02,1.233564000000000105e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.446353999999999973e-01,-1.727818999999999883e-01,-5.485247000000000206e+00,-1.718746999999999914e-01,-1.281231000000000009e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-2.718173999999999868e-01,-4.850342999999999738e-01,-2.781814999999999927e+01,-4.589498000000000189e-01,-4.368254000000000303e+00 +7.488707999999999476e-01,4.333751000000000131e-01,9.822908999999999935e+01,4.124975000000000169e-01,1.396711999999999954e+01 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.023760999999999977e-01,-1.169676000000000049e-01,-6.378002999999999645e+00,-1.166221999999999953e-01,-1.221491000000000104e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-1.446353999999999973e-01,-1.727818999999999883e-01,-5.485247000000000206e+00,-1.718746999999999914e-01,-1.281231000000000009e+00 +2.645300000000000082e-02,2.572349999999999984e-02,1.285814999999999930e+00,2.572019999999999862e-02,2.719550000000000023e-01 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +3.199371999999999772e-01,2.353204999999999880e-01,4.196603999999999957e+01,2.316601000000000077e-01,5.967119000000000284e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-2.291479999999999906e-02,-2.360759999999999942e-02,-2.345133000000000134e+00,-2.360409999999999939e-02,-3.682536000000000143e-01 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.446353999999999973e-01,-1.727818999999999883e-01,-5.485247000000000206e+00,-1.718746999999999914e-01,-1.281231000000000009e+00 +-1.023760999999999977e-01,-1.169676000000000049e-01,-6.378002999999999645e+00,-1.166221999999999953e-01,-1.221491000000000104e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +5.326914000000000371e-01,3.673996999999999957e-01,2.020213999999999999e+01,3.590831999999999913e-01,4.718768999999999991e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +-1.997833999999999999e-01,-2.769826000000000232e-01,-1.595246999999999993e+01,-2.721155000000000102e-01,-2.766434999999999977e+00 +3.199371999999999772e-01,2.353204999999999880e-01,4.196603999999999957e+01,2.316601000000000077e-01,5.967119000000000284e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +2.663205000000000156e-01,2.038828000000000029e-01,3.493316000000000088e+01,2.014776000000000067e-01,4.967119000000000284e+00 +-1.680863999999999969e-01,-2.110146999999999995e-01,-8.170275000000000176e+00,-2.092063000000000117e-01,-1.728045000000000053e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-2.291479999999999906e-02,-2.360759999999999942e-02,-2.345133000000000134e+00,-2.360409999999999939e-02,-3.682536000000000143e-01 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-2.718173999999999868e-01,-4.850342999999999738e-01,-2.781814999999999927e+01,-4.589498000000000189e-01,-4.368254000000000303e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-1.446353999999999973e-01,-1.727818999999999883e-01,-5.485247000000000206e+00,-1.718746999999999914e-01,-1.281231000000000009e+00 +-1.997833999999999999e-01,-2.769826000000000232e-01,-1.595246999999999993e+01,-2.721155000000000102e-01,-2.766434999999999977e+00 +-3.538131999999999944e-01,-8.084837999999999747e-01,-2.204247000000000156e+01,-7.233001999999999487e-01,-4.221491000000000327e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-2.291479999999999906e-02,-2.360759999999999942e-02,-2.345133000000000134e+00,-2.360409999999999939e-02,-3.682536000000000143e-01 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +-5.534959999999999880e-02,-5.944060000000000316e-02,-4.419599999999999973e+00,-5.939030000000000004e-02,-7.664353999999999889e-01 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.023760999999999977e-01,-1.169676000000000049e-01,-6.378002999999999645e+00,-1.166221999999999953e-01,-1.221491000000000104e+00 +-1.275664999999999993e-01,-1.531653000000000042e-01,-1.018604000000000021e+01,-1.523148000000000002e-01,-1.766435999999999895e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-2.575231000000000048e-01,-3.767781000000000047e-01,-9.766479000000000354e+00,-3.678354999999999819e-01,-2.281231000000000009e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +5.681230000000000446e-01,3.747563999999999895e-01,3.539392000000000138e+01,3.641587000000000018e-01,6.778508999999999673e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-5.534959999999999880e-02,-5.944060000000000316e-02,-4.419599999999999973e+00,-5.939030000000000004e-02,-7.664353999999999889e-01 +8.114019999999999566e-02,7.508189999999999309e-02,3.077214999999999812e+00,7.500660000000000660e-02,7.187687999999999855e-01 +-2.575231000000000048e-01,-3.767781000000000047e-01,-9.766479000000000354e+00,-3.678354999999999819e-01,-2.281231000000000009e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +4.807872999999999730e-01,3.187570000000000126e-01,6.306468000000000274e+01,3.099567999999999768e-01,8.967119000000000284e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-3.174760000000000082e-02,-3.284469999999999751e-02,-1.204015999999999975e+00,-3.283839999999999676e-02,-2.812312000000000145e-01 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +1.490611000000000019e-01,1.287397000000000125e-01,9.286469000000000307e+00,1.282800000000000051e-01,1.778508999999999896e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.856369999999999895e-02,-1.897039999999999837e-02,-1.156511999999999984e+00,-1.896890000000000034e-02,-2.214907999999999877e-01 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-1.997833999999999999e-01,-2.769826000000000232e-01,-1.595246999999999993e+01,-2.721155000000000102e-01,-2.766434999999999977e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-1.680863999999999969e-01,-2.110146999999999995e-01,-8.170275000000000176e+00,-2.092063000000000117e-01,-1.728045000000000053e+00 +4.198035999999999990e-01,3.071039999999999881e-01,1.592090999999999923e+01,3.021588000000000052e-01,3.718768999999999991e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +1.686729999999999827e-02,1.653570000000000040e-02,1.346835000000000004e+00,1.653469999999999940e-02,2.335645000000000082e-01 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-3.538131999999999944e-01,-8.084837999999999747e-01,-2.204247000000000156e+01,-7.233001999999999487e-01,-4.221491000000000327e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +3.735538999999999943e-01,2.647622000000000031e-01,4.899891999999999825e+01,2.596048000000000244e-01,6.967119000000000284e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +3.199371999999999772e-01,2.353204999999999880e-01,4.196603999999999957e+01,2.316601000000000077e-01,5.967119000000000284e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +-2.458656999999999926e-01,-3.423031000000000268e-01,-7.275072999999999901e+00,-3.361348000000000114e-01,-1.876643000000000061e+00 +-1.680863999999999969e-01,-2.110146999999999995e-01,-8.170275000000000176e+00,-2.092063000000000117e-01,-1.728045000000000053e+00 +4.807872999999999730e-01,3.187570000000000126e-01,6.306468000000000274e+01,3.099567999999999768e-01,8.967119000000000284e+00 +1.713970999999999911e+00,7.278432999999999709e-01,2.248208999999999946e+02,6.459247000000000183e-01,3.196712000000000131e+01 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-7.081669999999999632e-02,-7.699219999999999675e-02,-3.442229999999999901e+00,-7.690260000000000151e-02,-7.280450000000000532e-01 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +3.931079999999999991e-02,3.749500000000000055e-02,4.023120999999999725e+00,3.748100000000000043e-02,6.317464000000000413e-01 +5.880206999999999518e-01,3.675555999999999823e-01,7.713043999999999301e+01,3.543703999999999743e-01,1.096711999999999954e+01 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-2.291479999999999906e-02,-2.360759999999999942e-02,-2.345133000000000134e+00,-2.360409999999999939e-02,-3.682536000000000143e-01 +2.781887000000000110e-01,2.236103000000000118e-01,8.231498000000000204e+00,2.218424999999999980e-01,2.123356999999999939e+00 +3.199371999999999772e-01,2.353204999999999880e-01,4.196603999999999957e+01,2.316601000000000077e-01,5.967119000000000284e+00 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +4.271706000000000114e-01,2.924977000000000271e-01,5.603179999999999694e+01,2.856206000000000023e-01,7.967119000000000284e+00 +-1.446353999999999973e-01,-1.727818999999999883e-01,-5.485247000000000206e+00,-1.718746999999999914e-01,-1.281231000000000009e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +4.843106999999999829e-01,3.336759999999999726e-01,3.017242999999999853e+01,3.260801999999999867e-01,5.778508999999999673e+00 +5.681230000000000446e-01,3.747563999999999895e-01,3.539392000000000138e+01,3.641587000000000018e-01,6.778508999999999673e+00 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-3.174760000000000082e-02,-3.284469999999999751e-02,-1.204015999999999975e+00,-3.283839999999999676e-02,-2.812312000000000145e-01 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-3.234632000000000063e-01,-8.578107000000000371e-01,-4.242853999999999814e+01,-7.355306999999999817e-01,-6.032880999999999716e+00 +1.490611000000000019e-01,1.287397000000000125e-01,9.286469000000000307e+00,1.282800000000000051e-01,1.778508999999999896e+00 +1.637620999999999938e-01,1.377533999999999981e-01,1.675963000000000136e+01,1.370690999999999993e-01,2.631746000000000141e+00 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +1.616149999999999878e-02,1.591029999999999875e-02,4.782123999999999819e-01,1.590969999999999884e-02,1.233574000000000059e-01 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +-1.023760999999999977e-01,-1.169676000000000049e-01,-6.378002999999999645e+00,-1.166221999999999953e-01,-1.221491000000000104e+00 +-2.720002999999999727e-01,-4.618575999999999793e-01,-2.171891000000000105e+01,-4.409649999999999959e-01,-3.766434999999999977e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-3.174760000000000082e-02,-3.284469999999999751e-02,-1.204015999999999975e+00,-3.283839999999999676e-02,-2.812312000000000145e-01 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +-2.700007999999999853e-01,-4.362619999999999831e-01,-1.682097999999999871e+01,-4.199611999999999790e-01,-3.221490999999999882e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +-2.700007999999999853e-01,-4.362619999999999831e-01,-1.682097999999999871e+01,-4.199611999999999790e-01,-3.221490999999999882e+00 +-2.653560999999999837e-01,-4.079950999999999994e-01,-1.289832000000000001e+01,-3.956779000000000268e-01,-2.728044999999999831e+00 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-2.653560999999999837e-01,-4.079950999999999994e-01,-1.289832000000000001e+01,-3.956779000000000268e-01,-2.728044999999999831e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-5.534959999999999880e-02,-5.944060000000000316e-02,-4.419599999999999973e+00,-5.939030000000000004e-02,-7.664353999999999889e-01 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +2.663205000000000156e-01,2.038828000000000029e-01,3.493316000000000088e+01,2.014776000000000067e-01,4.967119000000000284e+00 +-1.861885000000000068e-01,-2.456345000000000056e-01,-1.159948999999999941e+01,-2.425192999999999932e-01,-2.221490999999999882e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +5.344039999999999901e-01,3.437256000000000200e-01,7.009756000000000142e+01,3.328170999999999768e-01,9.967119000000000284e+00 +1.471751000000000031e-01,1.295917000000000041e-01,4.354854999999999698e+00,1.292426999999999881e-01,1.123356999999999939e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-3.234632000000000063e-01,-8.578107000000000371e-01,-4.242853999999999814e+01,-7.355306999999999817e-01,-6.032880999999999716e+00 +3.199371999999999772e-01,2.353204999999999880e-01,4.196603999999999957e+01,2.316601000000000077e-01,5.967119000000000284e+00 +3.199371999999999772e-01,2.353204999999999880e-01,4.196603999999999957e+01,2.316601000000000077e-01,5.967119000000000284e+00 +6.952540999999999860e-01,4.122828000000000048e-01,9.119620999999999356e+01,3.940996999999999972e-01,1.296711999999999954e+01 +-1.680863999999999969e-01,-2.110146999999999995e-01,-8.170275000000000176e+00,-2.092063000000000117e-01,-1.728045000000000053e+00 +3.199371999999999772e-01,2.353204999999999880e-01,4.196603999999999957e+01,2.316601000000000077e-01,5.967119000000000284e+00 +7.488707999999999476e-01,4.333751000000000131e-01,9.822908999999999935e+01,4.124975000000000169e-01,1.396711999999999954e+01 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +5.371160999999999852e-01,3.499714999999999909e-01,5.496914999999999907e+01,3.394932999999999979e-01,8.631745999999999697e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +4.748903999999999903e-01,3.202871999999999941e-01,4.860088999999999970e+01,3.121535999999999755e-01,7.631745999999999697e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-2.718173999999999868e-01,-4.850342999999999738e-01,-2.781814999999999927e+01,-4.589498000000000189e-01,-4.368254000000000303e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-1.861885000000000068e-01,-2.456345000000000056e-01,-1.159948999999999941e+01,-2.425192999999999932e-01,-2.221490999999999882e+00 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +3.735538999999999943e-01,2.647622000000000031e-01,4.899891999999999825e+01,2.596048000000000244e-01,6.967119000000000284e+00 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +1.015365000000000018e-01,9.059150000000000535e-02,1.039137000000000022e+01,9.039529999999999788e-02,1.631745999999999919e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +2.781887000000000110e-01,2.236103000000000118e-01,8.231498000000000204e+00,2.218424999999999980e-01,2.123356999999999939e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-2.291479999999999906e-02,-2.360759999999999942e-02,-2.345133000000000134e+00,-2.360409999999999939e-02,-3.682536000000000143e-01 +-3.234632000000000063e-01,-8.578107000000000371e-01,-4.242853999999999814e+01,-7.355306999999999817e-01,-6.032880999999999716e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +2.259877999999999887e-01,1.803413000000000099e-01,2.312788000000000110e+01,1.788202000000000125e-01,3.631746000000000141e+00 +8.908420000000000227e-02,8.085470000000000157e-02,7.113269999999999982e+00,8.072830000000000283e-02,1.233564000000000105e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-2.720002999999999727e-01,-4.618575999999999793e-01,-2.171891000000000105e+01,-4.409649999999999959e-01,-3.766434999999999977e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +1.616149999999999878e-02,1.591029999999999875e-02,4.782123999999999819e-01,1.590969999999999884e-02,1.233574000000000059e-01 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-2.291479999999999906e-02,-2.360759999999999942e-02,-2.345133000000000134e+00,-2.360409999999999939e-02,-3.682536000000000143e-01 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +1.237227000000000049e-01,1.098284000000000066e-01,6.013860000000000205e+00,1.095689999999999997e-01,1.271954999999999947e+00 +-5.534959999999999880e-02,-5.944060000000000316e-02,-4.419599999999999973e+00,-5.939030000000000004e-02,-7.664353999999999889e-01 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +5.344039999999999901e-01,3.437256000000000200e-01,7.009756000000000142e+01,3.328170999999999768e-01,9.967119000000000284e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +6.416374000000000244e-01,3.903728000000000198e-01,8.416331999999999880e+01,3.747579999999999800e-01,1.196711999999999954e+01 +5.344039999999999901e-01,3.437256000000000200e-01,7.009756000000000142e+01,3.328170999999999768e-01,9.967119000000000284e+00 +1.471751000000000031e-01,1.295917000000000041e-01,4.354854999999999698e+00,1.292426999999999881e-01,1.123356999999999939e+00 +-1.861885000000000068e-01,-2.456345000000000056e-01,-1.159948999999999941e+01,-2.425192999999999932e-01,-2.221490999999999882e+00 +-1.680863999999999969e-01,-2.110146999999999995e-01,-8.170275000000000176e+00,-2.092063000000000117e-01,-1.728045000000000053e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +4.271706000000000114e-01,2.924977000000000271e-01,5.603179999999999694e+01,2.856206000000000023e-01,7.967119000000000284e+00 +9.633376999999999635e-01,5.109462000000000170e-01,1.263606000000000051e+02,4.782426000000000177e-01,1.796712000000000131e+01 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +2.645300000000000082e-02,2.572349999999999984e-02,1.285814999999999930e+00,2.572019999999999862e-02,2.719550000000000023e-01 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +6.416374000000000244e-01,3.903728000000000198e-01,8.416331999999999880e+01,3.747579999999999800e-01,1.196711999999999954e+01 +1.686729999999999827e-02,1.653570000000000040e-02,1.346835000000000004e+00,1.653469999999999940e-02,2.335645000000000082e-01 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.997833999999999999e-01,-2.769826000000000232e-01,-1.595246999999999993e+01,-2.721155000000000102e-01,-2.766434999999999977e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +5.993416999999999772e-01,3.781156999999999990e-01,6.133740000000000236e+01,3.650679000000000007e-01,9.631745999999999697e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-1.023760999999999977e-01,-1.169676000000000049e-01,-6.378002999999999645e+00,-1.166221999999999953e-01,-1.221491000000000104e+00 +-2.720002999999999727e-01,-4.618575999999999793e-01,-2.171891000000000105e+01,-4.409649999999999959e-01,-3.766434999999999977e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +8.908420000000000227e-02,8.085470000000000157e-02,7.113269999999999982e+00,8.072830000000000283e-02,1.233564000000000105e+00 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +-1.275664999999999993e-01,-1.531653000000000042e-01,-1.018604000000000021e+01,-1.523148000000000002e-01,-1.766435999999999895e+00 +1.686729999999999827e-02,1.653570000000000040e-02,1.346835000000000004e+00,1.653469999999999940e-02,2.335645000000000082e-01 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-5.534959999999999880e-02,-5.944060000000000316e-02,-4.419599999999999973e+00,-5.939030000000000004e-02,-7.664353999999999889e-01 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +5.128015000000000212e-01,3.526062999999999836e-01,2.492604000000000042e+01,3.444955000000000100e-01,5.271955000000000169e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +4.807872999999999730e-01,3.187570000000000126e-01,6.306468000000000274e+01,3.099567999999999768e-01,8.967119000000000284e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +2.663205000000000156e-01,2.038828000000000029e-01,3.493316000000000088e+01,2.014776000000000067e-01,4.967119000000000284e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +5.371160999999999852e-01,3.499714999999999909e-01,5.496914999999999907e+01,3.394932999999999979e-01,8.631745999999999697e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +1.637620999999999938e-01,1.377533999999999981e-01,1.675963000000000136e+01,1.370690999999999993e-01,2.631746000000000141e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-2.653560999999999837e-01,-4.079950999999999994e-01,-1.289832000000000001e+01,-3.956779000000000268e-01,-2.728044999999999831e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +6.455792000000000197e-01,4.224096999999999991e-01,2.448337000000000074e+01,4.100037999999999738e-01,5.718768999999999991e+00 +1.015365000000000018e-01,9.059150000000000535e-02,1.039137000000000022e+01,9.039529999999999788e-02,1.631745999999999919e+00 +5.402158000000000238e-01,3.760539999999999994e-01,1.598478000000000065e+01,3.679542000000000090e-01,4.123357000000000383e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-7.758929999999999993e-02,-8.392910000000000648e-02,-1.791260999999999992e+00,-8.384289999999999798e-02,-5.102887999999999868e-01 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-2.720002999999999727e-01,-4.618575999999999793e-01,-2.171891000000000105e+01,-4.409649999999999959e-01,-3.766434999999999977e+00 +-1.023760999999999977e-01,-1.169676000000000049e-01,-6.378002999999999645e+00,-1.166221999999999953e-01,-1.221491000000000104e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.275664999999999993e-01,-1.531653000000000042e-01,-1.018604000000000021e+01,-1.523148000000000002e-01,-1.766435999999999895e+00 +-2.575231000000000048e-01,-3.767781000000000047e-01,-9.766479000000000354e+00,-3.678354999999999819e-01,-2.281231000000000009e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +5.344039999999999901e-01,3.437256000000000200e-01,7.009756000000000142e+01,3.328170999999999768e-01,9.967119000000000284e+00 +-5.534959999999999880e-02,-5.944060000000000316e-02,-4.419599999999999973e+00,-5.939030000000000004e-02,-7.664353999999999889e-01 +-7.081669999999999632e-02,-7.699219999999999675e-02,-3.442229999999999901e+00,-7.690260000000000151e-02,-7.280450000000000532e-01 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-2.291479999999999906e-02,-2.360759999999999942e-02,-2.345133000000000134e+00,-2.360409999999999939e-02,-3.682536000000000143e-01 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +8.195601999999999610e-01,4.835400999999999727e-01,5.105839999999999890e+01,4.618120000000000003e-01,9.778508999999999673e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-7.081669999999999632e-02,-7.699219999999999675e-02,-3.442229999999999901e+00,-7.690260000000000151e-02,-7.280450000000000532e-01 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-3.538131999999999944e-01,-8.084837999999999747e-01,-2.204247000000000156e+01,-7.233001999999999487e-01,-4.221491000000000327e+00 +-2.700007999999999853e-01,-4.362619999999999831e-01,-1.682097999999999871e+01,-4.199611999999999790e-01,-3.221490999999999882e+00 +1.485498999999999903e+00,7.222674000000000039e-01,7.220649000000000228e+01,6.632708000000000492e-01,1.527195000000000036e+01 +1.231421000000000099e+00,5.962283999999999917e-01,1.615250000000000057e+02,5.469924000000000452e-01,2.296712000000000131e+01 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-3.174760000000000082e-02,-3.284469999999999751e-02,-1.204015999999999975e+00,-3.283839999999999676e-02,-2.812312000000000145e-01 +4.271706000000000114e-01,2.924977000000000271e-01,5.603179999999999694e+01,2.856206000000000023e-01,7.967119000000000284e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-1.997833999999999999e-01,-2.769826000000000232e-01,-1.595246999999999993e+01,-2.721155000000000102e-01,-2.766434999999999977e+00 +-2.291479999999999906e-02,-2.360759999999999942e-02,-2.345133000000000134e+00,-2.360409999999999939e-02,-3.682536000000000143e-01 +-3.234632000000000063e-01,-8.578107000000000371e-01,-4.242853999999999814e+01,-7.355306999999999817e-01,-6.032880999999999716e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-5.534959999999999880e-02,-5.944060000000000316e-02,-4.419599999999999973e+00,-5.939030000000000004e-02,-7.664353999999999889e-01 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +1.637620999999999938e-01,1.377533999999999981e-01,1.675963000000000136e+01,1.370690999999999993e-01,2.631746000000000141e+00 +-7.081669999999999632e-02,-7.699219999999999675e-02,-3.442229999999999901e+00,-7.690260000000000151e-02,-7.280450000000000532e-01 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +3.199371999999999772e-01,2.353204999999999880e-01,4.196603999999999957e+01,2.316601000000000077e-01,5.967119000000000284e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +4.287573000000000079e+00,1.219041999999999959e+00,5.623991999999999507e+02,9.484734999999999694e-01,7.996711999999999421e+01 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.680863999999999969e-01,-2.110146999999999995e-01,-8.170275000000000176e+00,-2.092063000000000117e-01,-1.728045000000000053e+00 +-1.997833999999999999e-01,-2.769826000000000232e-01,-1.595246999999999993e+01,-2.721155000000000102e-01,-2.766434999999999977e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-2.720002999999999727e-01,-4.618575999999999793e-01,-2.171891000000000105e+01,-4.409649999999999959e-01,-3.766434999999999977e+00 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-7.081669999999999632e-02,-7.699219999999999675e-02,-3.442229999999999901e+00,-7.690260000000000151e-02,-7.280450000000000532e-01 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +8.908420000000000227e-02,8.085470000000000157e-02,7.113269999999999982e+00,8.072830000000000283e-02,1.233564000000000105e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-2.718173999999999868e-01,-4.850342999999999738e-01,-2.781814999999999927e+01,-4.589498000000000189e-01,-4.368254000000000303e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-1.997833999999999999e-01,-2.769826000000000232e-01,-1.595246999999999993e+01,-2.721155000000000102e-01,-2.766434999999999977e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-7.081669999999999632e-02,-7.699219999999999675e-02,-3.442229999999999901e+00,-7.690260000000000151e-02,-7.280450000000000532e-01 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-2.720002999999999727e-01,-4.618575999999999793e-01,-2.171891000000000105e+01,-4.409649999999999959e-01,-3.766434999999999977e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-1.861885000000000068e-01,-2.456345000000000056e-01,-1.159948999999999941e+01,-2.425192999999999932e-01,-2.221490999999999882e+00 +-1.275664999999999993e-01,-1.531653000000000042e-01,-1.018604000000000021e+01,-1.523148000000000002e-01,-1.766435999999999895e+00 +-7.081669999999999632e-02,-7.699219999999999675e-02,-3.442229999999999901e+00,-7.690260000000000151e-02,-7.280450000000000532e-01 +2.663205000000000156e-01,2.038828000000000029e-01,3.493316000000000088e+01,2.014776000000000067e-01,4.967119000000000284e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +2.259877999999999887e-01,1.803413000000000099e-01,2.312788000000000110e+01,1.788202000000000125e-01,3.631746000000000141e+00 +4.271706000000000114e-01,2.924977000000000271e-01,5.603179999999999694e+01,2.856206000000000023e-01,7.967119000000000284e+00 +-3.234632000000000063e-01,-8.578107000000000371e-01,-4.242853999999999814e+01,-7.355306999999999817e-01,-6.032880999999999716e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +4.271706000000000114e-01,2.924977000000000271e-01,5.603179999999999694e+01,2.856206000000000023e-01,7.967119000000000284e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +2.663205000000000156e-01,2.038828000000000029e-01,3.493316000000000088e+01,2.014776000000000067e-01,4.967119000000000284e+00 +6.524870000000000669e-02,6.086860000000000187e-02,4.064979000000000120e+00,6.081969999999999738e-02,7.785092000000000123e-01 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-1.997833999999999999e-01,-2.769826000000000232e-01,-1.595246999999999993e+01,-2.721155000000000102e-01,-2.766434999999999977e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-2.291479999999999906e-02,-2.360759999999999942e-02,-2.345133000000000134e+00,-2.360409999999999939e-02,-3.682536000000000143e-01 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-1.023760999999999977e-01,-1.169676000000000049e-01,-6.378002999999999645e+00,-1.166221999999999953e-01,-1.221491000000000104e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-3.234632000000000063e-01,-8.578107000000000371e-01,-4.242853999999999814e+01,-7.355306999999999817e-01,-6.032880999999999716e+00 +-1.997833999999999999e-01,-2.769826000000000232e-01,-1.595246999999999993e+01,-2.721155000000000102e-01,-2.766434999999999977e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +3.779518000000000044e-01,2.736488999999999727e-01,3.017901000000000167e+01,2.689502999999999755e-01,5.233564000000000327e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-2.291479999999999906e-02,-2.360759999999999942e-02,-2.345133000000000134e+00,-2.360409999999999939e-02,-3.682536000000000143e-01 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +1.237227000000000049e-01,1.098284000000000066e-01,6.013860000000000205e+00,1.095689999999999997e-01,1.271954999999999947e+00 +1.490611000000000019e-01,1.287397000000000125e-01,9.286469000000000307e+00,1.282800000000000051e-01,1.778508999999999896e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +4.092022000000000159e-01,3.045207999999999804e-01,1.210814000000000057e+01,3.001345000000000263e-01,3.123356999999999939e+00 +-1.997833999999999999e-01,-2.769826000000000232e-01,-1.595246999999999993e+01,-2.721155000000000102e-01,-2.766434999999999977e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +2.035671999999999926e+00,8.047632000000000119e-01,2.670181999999999789e+02,6.998851999999999851e-01,3.796712000000000131e+01 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +5.344039999999999901e-01,3.437256000000000200e-01,7.009756000000000142e+01,3.328170999999999768e-01,9.967119000000000284e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-3.234632000000000063e-01,-8.578107000000000371e-01,-4.242853999999999814e+01,-7.355306999999999817e-01,-6.032880999999999716e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-7.081669999999999632e-02,-7.699219999999999675e-02,-3.442229999999999901e+00,-7.690260000000000151e-02,-7.280450000000000532e-01 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +3.069158000000000164e-01,2.400239000000000122e-01,1.163968000000000025e+01,2.376232000000000066e-01,2.718768999999999991e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +2.663205000000000156e-01,2.038828000000000029e-01,3.493316000000000088e+01,2.014776000000000067e-01,4.967119000000000284e+00 +-1.275664999999999993e-01,-1.531653000000000042e-01,-1.018604000000000021e+01,-1.523148000000000002e-01,-1.766435999999999895e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +1.237227000000000049e-01,1.098284000000000066e-01,6.013860000000000205e+00,1.095689999999999997e-01,1.271954999999999947e+00 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +-1.148520999999999986e-01,-1.305588000000000026e-01,-3.398429999999999840e+00,-1.302020000000000122e-01,-8.766426000000000496e-01 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +-1.680863999999999969e-01,-2.110146999999999995e-01,-8.170275000000000176e+00,-2.092063000000000117e-01,-1.728045000000000053e+00 +3.069158000000000164e-01,2.400239000000000122e-01,1.163968000000000025e+01,2.376232000000000066e-01,2.718768999999999991e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +2.663205000000000156e-01,2.038828000000000029e-01,3.493316000000000088e+01,2.014776000000000067e-01,4.967119000000000284e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.148520999999999986e-01,-1.305588000000000026e-01,-3.398429999999999840e+00,-1.302020000000000122e-01,-8.766426000000000496e-01 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-3.768792999999999727e-01,-7.420447999999999489e-01,-1.115171999999999919e+01,-6.881793000000000493e-01,-2.876643000000000061e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-2.291479999999999906e-02,-2.360759999999999942e-02,-2.345133000000000134e+00,-2.360409999999999939e-02,-3.682536000000000143e-01 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-2.718173999999999868e-01,-4.850342999999999738e-01,-2.781814999999999927e+01,-4.589498000000000189e-01,-4.368254000000000303e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +1.616149999999999878e-02,1.591029999999999875e-02,4.782123999999999819e-01,1.590969999999999884e-02,1.233574000000000059e-01 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +2.209924000000000055e-01,1.816222999999999865e-01,1.074191000000000074e+01,1.804622999999999922e-01,2.271955000000000169e+00 +3.166859000000000202e-01,2.412151999999999907e-01,1.972944999999999993e+01,2.382615999999999901e-01,3.778509000000000118e+00 +-1.861885000000000068e-01,-2.456345000000000056e-01,-1.159948999999999941e+01,-2.425192999999999932e-01,-2.221490999999999882e+00 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +2.663205000000000156e-01,2.038828000000000029e-01,3.493316000000000088e+01,2.014776000000000067e-01,4.967119000000000284e+00 +6.524870000000000669e-02,6.086860000000000187e-02,4.064979000000000120e+00,6.081969999999999738e-02,7.785092000000000123e-01 +1.490611000000000019e-01,1.287397000000000125e-01,9.286469000000000307e+00,1.282800000000000051e-01,1.778508999999999896e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-2.653560999999999837e-01,-4.079950999999999994e-01,-1.289832000000000001e+01,-3.956779000000000268e-01,-2.728044999999999831e+00 +3.931079999999999991e-02,3.749500000000000055e-02,4.023120999999999725e+00,3.748100000000000043e-02,6.317464000000000413e-01 +5.223856000000000055e-01,3.479150999999999772e-01,4.171188000000000073e+01,3.385173000000000210e-01,7.233564000000000327e+00 +-2.720002999999999727e-01,-4.618575999999999793e-01,-2.171891000000000105e+01,-4.409649999999999959e-01,-3.766434999999999977e+00 +3.931079999999999991e-02,3.749500000000000055e-02,4.023120999999999725e+00,3.748100000000000043e-02,6.317464000000000413e-01 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +6.416374000000000244e-01,3.903728000000000198e-01,8.416331999999999880e+01,3.747579999999999800e-01,1.196711999999999954e+01 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +3.931079999999999991e-02,3.749500000000000055e-02,4.023120999999999725e+00,3.748100000000000043e-02,6.317464000000000413e-01 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +1.237227000000000049e-01,1.098284000000000066e-01,6.013860000000000205e+00,1.095689999999999997e-01,1.271954999999999947e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.997833999999999999e-01,-2.769826000000000232e-01,-1.595246999999999993e+01,-2.721155000000000102e-01,-2.766434999999999977e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +2.663205000000000156e-01,2.038828000000000029e-01,3.493316000000000088e+01,2.014776000000000067e-01,4.967119000000000284e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +5.128015000000000212e-01,3.526062999999999836e-01,2.492604000000000042e+01,3.444955000000000100e-01,5.271955000000000169e+00 +6.455792000000000197e-01,4.224096999999999991e-01,2.448337000000000074e+01,4.100037999999999738e-01,5.718768999999999991e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-5.534959999999999880e-02,-5.944060000000000316e-02,-4.419599999999999973e+00,-5.939030000000000004e-02,-7.664353999999999889e-01 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-2.720002999999999727e-01,-4.618575999999999793e-01,-2.171891000000000105e+01,-4.409649999999999959e-01,-3.766434999999999977e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.856369999999999895e-02,-1.897039999999999837e-02,-1.156511999999999984e+00,-1.896890000000000034e-02,-2.214907999999999877e-01 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +5.344039999999999901e-01,3.437256000000000200e-01,7.009756000000000142e+01,3.328170999999999768e-01,9.967119000000000284e+00 +-2.700007999999999853e-01,-4.362619999999999831e-01,-1.682097999999999871e+01,-4.199611999999999790e-01,-3.221490999999999882e+00 +3.931079999999999991e-02,3.749500000000000055e-02,4.023120999999999725e+00,3.748100000000000043e-02,6.317464000000000413e-01 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-2.291479999999999906e-02,-2.360759999999999942e-02,-2.345133000000000134e+00,-2.360409999999999939e-02,-3.682536000000000143e-01 +1.015365000000000018e-01,9.059150000000000535e-02,1.039137000000000022e+01,9.039529999999999788e-02,1.631745999999999919e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-1.997833999999999999e-01,-2.769826000000000232e-01,-1.595246999999999993e+01,-2.721155000000000102e-01,-2.766434999999999977e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-1.023760999999999977e-01,-1.169676000000000049e-01,-6.378002999999999645e+00,-1.166221999999999953e-01,-1.221491000000000104e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +3.199371999999999772e-01,2.353204999999999880e-01,4.196603999999999957e+01,2.316601000000000077e-01,5.967119000000000284e+00 +1.237227000000000049e-01,1.098284000000000066e-01,6.013860000000000205e+00,1.095689999999999997e-01,1.271954999999999947e+00 +-3.234632000000000063e-01,-8.578107000000000371e-01,-4.242853999999999814e+01,-7.355306999999999817e-01,-6.032880999999999716e+00 +3.199371999999999772e-01,2.353204999999999880e-01,4.196603999999999957e+01,2.316601000000000077e-01,5.967119000000000284e+00 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-3.174760000000000082e-02,-3.284469999999999751e-02,-1.204015999999999975e+00,-3.283839999999999676e-02,-2.812312000000000145e-01 +3.735538999999999943e-01,2.647622000000000031e-01,4.899891999999999825e+01,2.596048000000000244e-01,6.967119000000000284e+00 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-5.534959999999999880e-02,-5.944060000000000316e-02,-4.419599999999999973e+00,-5.939030000000000004e-02,-7.664353999999999889e-01 +1.548680999999999974e+00,7.552837999999999496e-01,5.873322000000000287e+01,6.940804000000000418e-01,1.371876999999999924e+01 +1.613011000000000028e-01,1.369450000000000112e-01,1.287970999999999933e+01,1.363352999999999926e-01,2.233565000000000023e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +1.471751000000000031e-01,1.295917000000000041e-01,4.354854999999999698e+00,1.292426999999999881e-01,1.123356999999999939e+00 +-3.234632000000000063e-01,-8.578107000000000371e-01,-4.242853999999999814e+01,-7.355306999999999817e-01,-6.032880999999999716e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +3.199371999999999772e-01,2.353204999999999880e-01,4.196603999999999957e+01,2.316601000000000077e-01,5.967119000000000284e+00 +7.446049999999999891e-02,6.975370000000000181e-02,1.719028000000000000e+00,6.970410000000000494e-02,4.897112000000000132e-01 +5.344039999999999901e-01,3.437256000000000200e-01,7.009756000000000142e+01,3.328170999999999768e-01,9.967119000000000284e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.997833999999999999e-01,-2.769826000000000232e-01,-1.595246999999999993e+01,-2.721155000000000102e-01,-2.766434999999999977e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +1.285037999999999903e+00,6.120708999999999733e-01,1.685578999999999894e+02,5.593567999999999873e-01,2.396712000000000131e+01 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +7.488707999999999476e-01,4.333751000000000131e-01,9.822908999999999935e+01,4.124975000000000169e-01,1.396711999999999954e+01 +5.223856000000000055e-01,3.479150999999999772e-01,4.171188000000000073e+01,3.385173000000000210e-01,7.233564000000000327e+00 +-5.534959999999999880e-02,-5.944060000000000316e-02,-4.419599999999999973e+00,-5.939030000000000004e-02,-7.664353999999999889e-01 +-1.275664999999999993e-01,-1.531653000000000042e-01,-1.018604000000000021e+01,-1.523148000000000002e-01,-1.766435999999999895e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +4.271706000000000114e-01,2.924977000000000271e-01,5.603179999999999694e+01,2.856206000000000023e-01,7.967119000000000284e+00 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-1.275664999999999993e-01,-1.531653000000000042e-01,-1.018604000000000021e+01,-1.523148000000000002e-01,-1.766435999999999895e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-2.575231000000000048e-01,-3.767781000000000047e-01,-9.766479000000000354e+00,-3.678354999999999819e-01,-2.281231000000000009e+00 +3.931079999999999991e-02,3.749500000000000055e-02,4.023120999999999725e+00,3.748100000000000043e-02,6.317464000000000413e-01 +-2.720002999999999727e-01,-4.618575999999999793e-01,-2.171891000000000105e+01,-4.409649999999999959e-01,-3.766434999999999977e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +3.735538999999999943e-01,2.647622000000000031e-01,4.899891999999999825e+01,2.596048000000000244e-01,6.967119000000000284e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +3.166859000000000202e-01,2.412151999999999907e-01,1.972944999999999993e+01,2.382615999999999901e-01,3.778509000000000118e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-3.234632000000000063e-01,-8.578107000000000371e-01,-4.242853999999999814e+01,-7.355306999999999817e-01,-6.032880999999999716e+00 +1.177804000000000073e+00,5.800170999999999522e-01,1.544920999999999935e+02,5.342088000000000392e-01,2.196712000000000131e+01 +-5.534959999999999880e-02,-5.944060000000000316e-02,-4.419599999999999973e+00,-5.939030000000000004e-02,-7.664353999999999889e-01 +2.663205000000000156e-01,2.038828000000000029e-01,3.493316000000000088e+01,2.014776000000000067e-01,4.967119000000000284e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-3.340430999999999817e-01,-8.429710999999999732e-01,-3.418639999999999901e+01,-7.336224000000000078e-01,-5.368254000000000303e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +3.057348999999999761e-01,2.321660999999999864e-01,2.441257999999999839e+01,2.292598999999999887e-01,4.233564000000000327e+00 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +4.271706000000000114e-01,2.924977000000000271e-01,5.603179999999999694e+01,2.856206000000000023e-01,7.967119000000000284e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +3.504391000000000034e-01,2.552889999999999882e-01,3.586439000000000021e+01,2.510684999999999722e-01,5.631745999999999697e+00 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +3.735538999999999943e-01,2.647622000000000031e-01,4.899891999999999825e+01,2.596048000000000244e-01,6.967119000000000284e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +1.177804000000000073e+00,5.800170999999999522e-01,1.544920999999999935e+02,5.342088000000000392e-01,2.196712000000000131e+01 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-3.234632000000000063e-01,-8.578107000000000371e-01,-4.242853999999999814e+01,-7.355306999999999817e-01,-6.032880999999999716e+00 +-1.861885000000000068e-01,-2.456345000000000056e-01,-1.159948999999999941e+01,-2.425192999999999932e-01,-2.221490999999999882e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +4.271706000000000114e-01,2.924977000000000271e-01,5.603179999999999694e+01,2.856206000000000023e-01,7.967119000000000284e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +7.446049999999999891e-02,6.975370000000000181e-02,1.719028000000000000e+00,6.970410000000000494e-02,4.897112000000000132e-01 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.148520999999999986e-01,-1.305588000000000026e-01,-3.398429999999999840e+00,-1.302020000000000122e-01,-8.766426000000000496e-01 +-2.291479999999999906e-02,-2.360759999999999942e-02,-2.345133000000000134e+00,-2.360409999999999939e-02,-3.682536000000000143e-01 +-1.997833999999999999e-01,-2.769826000000000232e-01,-1.595246999999999993e+01,-2.721155000000000102e-01,-2.766434999999999977e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +1.637620999999999938e-01,1.377533999999999981e-01,1.675963000000000136e+01,1.370690999999999993e-01,2.631746000000000141e+00 +1.237227000000000049e-01,1.098284000000000066e-01,6.013860000000000205e+00,1.095689999999999997e-01,1.271954999999999947e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-5.534959999999999880e-02,-5.944060000000000316e-02,-4.419599999999999973e+00,-5.939030000000000004e-02,-7.664353999999999889e-01 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-2.458656999999999926e-01,-3.423031000000000268e-01,-7.275072999999999901e+00,-3.361348000000000114e-01,-1.876643000000000061e+00 +-1.861885000000000068e-01,-2.456345000000000056e-01,-1.159948999999999941e+01,-2.425192999999999932e-01,-2.221490999999999882e+00 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +-3.174760000000000082e-02,-3.284469999999999751e-02,-1.204015999999999975e+00,-3.283839999999999676e-02,-2.812312000000000145e-01 +1.499505000000000088e+00,6.721719999999999917e-01,1.966894000000000062e+02,6.051195999999999797e-01,2.796712000000000131e+01 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +1.338654999999999928e+00,6.275671000000000443e-01,1.755908000000000015e+02,5.713285999999999643e-01,2.496712000000000131e+01 +4.271706000000000114e-01,2.924977000000000271e-01,5.603179999999999694e+01,2.856206000000000023e-01,7.967119000000000284e+00 +-2.718173999999999868e-01,-4.850342999999999738e-01,-2.781814999999999927e+01,-4.589498000000000189e-01,-4.368254000000000303e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +5.344039999999999901e-01,3.437256000000000200e-01,7.009756000000000142e+01,3.328170999999999768e-01,9.967119000000000284e+00 +2.663205000000000156e-01,2.038828000000000029e-01,3.493316000000000088e+01,2.014776000000000067e-01,4.967119000000000284e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +6.524870000000000669e-02,6.086860000000000187e-02,4.064979000000000120e+00,6.081969999999999738e-02,7.785092000000000123e-01 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +2.663205000000000156e-01,2.038828000000000029e-01,3.493316000000000088e+01,2.014776000000000067e-01,4.967119000000000284e+00 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +2.328735000000000110e-01,1.881362000000000034e-01,1.450796000000000063e+01,1.867167000000000132e-01,2.778509000000000118e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +1.637620999999999938e-01,1.377533999999999981e-01,1.675963000000000136e+01,1.370690999999999993e-01,2.631746000000000141e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-2.653560999999999837e-01,-4.079950999999999994e-01,-1.289832000000000001e+01,-3.956779000000000268e-01,-2.728044999999999831e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-2.291479999999999906e-02,-2.360759999999999942e-02,-2.345133000000000134e+00,-2.360409999999999939e-02,-3.682536000000000143e-01 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +9.633376999999999635e-01,5.109462000000000170e-01,1.263606000000000051e+02,4.782426000000000177e-01,1.796712000000000131e+01 +3.199371999999999772e-01,2.353204999999999880e-01,4.196603999999999957e+01,2.316601000000000077e-01,5.967119000000000284e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +2.663205000000000156e-01,2.038828000000000029e-01,3.493316000000000088e+01,2.014776000000000067e-01,4.967119000000000284e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +2.265101999999999949e-01,1.897903999999999980e-01,5.229316999999999993e+00,1.888044999999999862e-01,1.489711000000000007e+00 +2.663205000000000156e-01,2.038828000000000029e-01,3.493316000000000088e+01,2.014776000000000067e-01,4.967119000000000284e+00 +2.328735000000000110e-01,1.881362000000000034e-01,1.450796000000000063e+01,1.867167000000000132e-01,2.778509000000000118e+00 +-1.861885000000000068e-01,-2.456345000000000056e-01,-1.159948999999999941e+01,-2.425192999999999932e-01,-2.221490999999999882e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-2.291479999999999906e-02,-2.360759999999999942e-02,-2.345133000000000134e+00,-2.360409999999999939e-02,-3.682536000000000143e-01 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +3.182620999999999922e-01,2.446699999999999986e-01,1.546995000000000076e+01,2.418726999999999960e-01,3.271955000000000169e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-2.653560999999999837e-01,-4.079950999999999994e-01,-1.289832000000000001e+01,-3.956779000000000268e-01,-2.728044999999999831e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +8.908420000000000227e-02,8.085470000000000157e-02,7.113269999999999982e+00,8.072830000000000283e-02,1.233564000000000105e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-2.458656999999999926e-01,-3.423031000000000268e-01,-7.275072999999999901e+00,-3.361348000000000114e-01,-1.876643000000000061e+00 +5.880206999999999518e-01,3.675555999999999823e-01,7.713043999999999301e+01,3.543703999999999743e-01,1.096711999999999954e+01 +-1.861885000000000068e-01,-2.456345000000000056e-01,-1.159948999999999941e+01,-2.425192999999999932e-01,-2.221490999999999882e+00 +1.616149999999999878e-02,1.591029999999999875e-02,4.782123999999999819e-01,1.590969999999999884e-02,1.233574000000000059e-01 +-1.680863999999999969e-01,-2.110146999999999995e-01,-8.170275000000000176e+00,-2.092063000000000117e-01,-1.728045000000000053e+00 +-2.718173999999999868e-01,-4.850342999999999738e-01,-2.781814999999999927e+01,-4.589498000000000189e-01,-4.368254000000000303e+00 +1.613011000000000028e-01,1.369450000000000112e-01,1.287970999999999933e+01,1.363352999999999926e-01,2.233565000000000023e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-2.718173999999999868e-01,-4.850342999999999738e-01,-2.781814999999999927e+01,-4.589498000000000189e-01,-4.368254000000000303e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.446353999999999973e-01,-1.727818999999999883e-01,-5.485247000000000206e+00,-1.718746999999999914e-01,-1.281231000000000009e+00 +-1.997833999999999999e-01,-2.769826000000000232e-01,-1.595246999999999993e+01,-2.721155000000000102e-01,-2.766434999999999977e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-3.234632000000000063e-01,-8.578107000000000371e-01,-4.242853999999999814e+01,-7.355306999999999817e-01,-6.032880999999999716e+00 +-1.856369999999999895e-02,-1.897039999999999837e-02,-1.156511999999999984e+00,-1.896890000000000034e-02,-2.214907999999999877e-01 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +7.584670000000000023e-01,4.731780999999999904e-01,2.876460000000000150e+01,4.560671000000000030e-01,6.718768999999999991e+00 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +1.686729999999999827e-02,1.653570000000000040e-02,1.346835000000000004e+00,1.653469999999999940e-02,2.335645000000000082e-01 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +5.880206999999999518e-01,3.675555999999999823e-01,7.713043999999999301e+01,3.543703999999999743e-01,1.096711999999999954e+01 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-7.758929999999999993e-02,-8.392910000000000648e-02,-1.791260999999999992e+00,-8.384289999999999798e-02,-5.102887999999999868e-01 +-7.081669999999999632e-02,-7.699219999999999675e-02,-3.442229999999999901e+00,-7.690260000000000151e-02,-7.280450000000000532e-01 +1.124187999999999965e+00,5.634124999999999828e-01,1.474593000000000131e+02,5.209766000000000119e-01,2.096712000000000131e+01 +8.114019999999999566e-02,7.508189999999999309e-02,3.077214999999999812e+00,7.500660000000000660e-02,7.187687999999999855e-01 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +2.645300000000000082e-02,2.572349999999999984e-02,1.285814999999999930e+00,2.572019999999999862e-02,2.719550000000000023e-01 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-1.856369999999999895e-02,-1.897039999999999837e-02,-1.156511999999999984e+00,-1.896890000000000034e-02,-2.214907999999999877e-01 +-5.534959999999999880e-02,-5.944060000000000316e-02,-4.419599999999999973e+00,-5.939030000000000004e-02,-7.664353999999999889e-01 +-5.534959999999999880e-02,-5.944060000000000316e-02,-4.419599999999999973e+00,-5.939030000000000004e-02,-7.664353999999999889e-01 +-1.148520999999999986e-01,-1.305588000000000026e-01,-3.398429999999999840e+00,-1.302020000000000122e-01,-8.766426000000000496e-01 +-5.534959999999999880e-02,-5.944060000000000316e-02,-4.419599999999999973e+00,-5.939030000000000004e-02,-7.664353999999999889e-01 +-1.023760999999999977e-01,-1.169676000000000049e-01,-6.378002999999999645e+00,-1.166221999999999953e-01,-1.221491000000000104e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +4.271706000000000114e-01,2.924977000000000271e-01,5.603179999999999694e+01,2.856206000000000023e-01,7.967119000000000284e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.023760999999999977e-01,-1.169676000000000049e-01,-6.378002999999999645e+00,-1.166221999999999953e-01,-1.221491000000000104e+00 +1.015365000000000018e-01,9.059150000000000535e-02,1.039137000000000022e+01,9.039529999999999788e-02,1.631745999999999919e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +1.490611000000000019e-01,1.287397000000000125e-01,9.286469000000000307e+00,1.282800000000000051e-01,1.778508999999999896e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.023760999999999977e-01,-1.169676000000000049e-01,-6.378002999999999645e+00,-1.166221999999999953e-01,-1.221491000000000104e+00 +4.807872999999999730e-01,3.187570000000000126e-01,6.306468000000000274e+01,3.099567999999999768e-01,8.967119000000000284e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +4.126646999999999954e-01,2.888257000000000185e-01,4.223264000000000351e+01,2.827869000000000077e-01,6.631745999999999697e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +4.198035999999999990e-01,3.071039999999999881e-01,1.592090999999999923e+01,3.021588000000000052e-01,3.718768999999999991e+00 +-3.626257999999999981e-01,-7.884961000000000331e-01,-1.762635999999999825e+01,-7.144532000000000105e-01,-3.728044999999999831e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +4.807872999999999730e-01,3.187570000000000126e-01,6.306468000000000274e+01,3.099567999999999768e-01,8.967119000000000284e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-2.718173999999999868e-01,-4.850342999999999738e-01,-2.781814999999999927e+01,-4.589498000000000189e-01,-4.368254000000000303e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +7.860186999999999591e-01,4.550575000000000037e-01,8.044216000000000122e+01,4.331668000000000185e-01,1.263175000000000026e+01 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +1.686729999999999827e-02,1.653570000000000040e-02,1.346835000000000004e+00,1.653469999999999940e-02,2.335645000000000082e-01 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-1.275664999999999993e-01,-1.531653000000000042e-01,-1.018604000000000021e+01,-1.523148000000000002e-01,-1.766435999999999895e+00 +1.637620999999999938e-01,1.377533999999999981e-01,1.675963000000000136e+01,1.370690999999999993e-01,2.631746000000000141e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.997833999999999999e-01,-2.769826000000000232e-01,-1.595246999999999993e+01,-2.721155000000000102e-01,-2.766434999999999977e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +6.524870000000000669e-02,6.086860000000000187e-02,4.064979000000000120e+00,6.081969999999999738e-02,7.785092000000000123e-01 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +1.686729999999999827e-02,1.653570000000000040e-02,1.346835000000000004e+00,1.653469999999999940e-02,2.335645000000000082e-01 +-2.718173999999999868e-01,-4.850342999999999738e-01,-2.781814999999999927e+01,-4.589498000000000189e-01,-4.368254000000000303e+00 +8.908420000000000227e-02,8.085470000000000157e-02,7.113269999999999982e+00,8.072830000000000283e-02,1.233564000000000105e+00 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-2.291479999999999906e-02,-2.360759999999999942e-02,-2.345133000000000134e+00,-2.360409999999999939e-02,-3.682536000000000143e-01 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-2.653560999999999837e-01,-4.079950999999999994e-01,-1.289832000000000001e+01,-3.956779000000000268e-01,-2.728044999999999831e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +3.199371999999999772e-01,2.353204999999999880e-01,4.196603999999999957e+01,2.316601000000000077e-01,5.967119000000000284e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +8.908420000000000227e-02,8.085470000000000157e-02,7.113269999999999982e+00,8.072830000000000283e-02,1.233564000000000105e+00 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +3.182620999999999922e-01,2.446699999999999986e-01,1.546995000000000076e+01,2.418726999999999960e-01,3.271955000000000169e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-3.234632000000000063e-01,-8.578107000000000371e-01,-4.242853999999999814e+01,-7.355306999999999817e-01,-6.032880999999999716e+00 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +-7.081669999999999632e-02,-7.699219999999999675e-02,-3.442229999999999901e+00,-7.690260000000000151e-02,-7.280450000000000532e-01 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +5.993416999999999772e-01,3.781156999999999990e-01,6.133740000000000236e+01,3.650679000000000007e-01,9.631745999999999697e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.023760999999999977e-01,-1.169676000000000049e-01,-6.378002999999999645e+00,-1.166221999999999953e-01,-1.221491000000000104e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +1.686729999999999827e-02,1.653570000000000040e-02,1.346835000000000004e+00,1.653469999999999940e-02,2.335645000000000082e-01 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +-1.275664999999999993e-01,-1.531653000000000042e-01,-1.018604000000000021e+01,-1.523148000000000002e-01,-1.766435999999999895e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.680863999999999969e-01,-2.110146999999999995e-01,-8.170275000000000176e+00,-2.092063000000000117e-01,-1.728045000000000053e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-1.861885000000000068e-01,-2.456345000000000056e-01,-1.159948999999999941e+01,-2.425192999999999932e-01,-2.221490999999999882e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +3.199371999999999772e-01,2.353204999999999880e-01,4.196603999999999957e+01,2.316601000000000077e-01,5.967119000000000284e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +4.807872999999999730e-01,3.187570000000000126e-01,6.306468000000000274e+01,3.099567999999999768e-01,8.967119000000000284e+00 +-1.680863999999999969e-01,-2.110146999999999995e-01,-8.170275000000000176e+00,-2.092063000000000117e-01,-1.728045000000000053e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-1.997833999999999999e-01,-2.769826000000000232e-01,-1.595246999999999993e+01,-2.721155000000000102e-01,-2.766434999999999977e+00 +1.406247000000000025e+00,6.850897999999999710e-01,8.760882999999999754e+01,6.294191999999999565e-01,1.677851000000000070e+01 +4.807872999999999730e-01,3.187570000000000126e-01,6.306468000000000274e+01,3.099567999999999768e-01,8.967119000000000284e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-1.023760999999999977e-01,-1.169676000000000049e-01,-6.378002999999999645e+00,-1.166221999999999953e-01,-1.221491000000000104e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +8.024875999999999676e-01,4.537259000000000153e-01,1.052620000000000005e+02,4.300393000000000132e-01,1.496711999999999954e+01 +3.199371999999999772e-01,2.353204999999999880e-01,4.196603999999999957e+01,2.316601000000000077e-01,5.967119000000000284e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +3.735538999999999943e-01,2.647622000000000031e-01,4.899891999999999825e+01,2.596048000000000244e-01,6.967119000000000284e+00 +8.114019999999999566e-02,7.508189999999999309e-02,3.077214999999999812e+00,7.500660000000000660e-02,7.187687999999999855e-01 +-3.442172000000000009e-01,-8.265827000000000035e-01,-2.748534000000000077e+01,-7.296150999999999609e-01,-4.766435999999999673e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +1.097129999999999939e+00,6.067063999999999790e-01,4.160829999999999984e+01,5.726204000000000294e-01,9.718768999999999991e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +3.504391000000000034e-01,2.552889999999999882e-01,3.586439000000000021e+01,2.510684999999999722e-01,5.631745999999999697e+00 +3.199371999999999772e-01,2.353204999999999880e-01,4.196603999999999957e+01,2.316601000000000077e-01,5.967119000000000284e+00 +4.271706000000000114e-01,2.924977000000000271e-01,5.603179999999999694e+01,2.856206000000000023e-01,7.967119000000000284e+00 +-1.446353999999999973e-01,-1.727818999999999883e-01,-5.485247000000000206e+00,-1.718746999999999914e-01,-1.281231000000000009e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +4.126646999999999954e-01,2.888257000000000185e-01,4.223264000000000351e+01,2.827869000000000077e-01,6.631745999999999697e+00 +-2.458656999999999926e-01,-3.423031000000000268e-01,-7.275072999999999901e+00,-3.361348000000000114e-01,-1.876643000000000061e+00 +7.446049999999999891e-02,6.975370000000000181e-02,1.719028000000000000e+00,6.970410000000000494e-02,4.897112000000000132e-01 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +2.663205000000000156e-01,2.038828000000000029e-01,3.493316000000000088e+01,2.014776000000000067e-01,4.967119000000000284e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +5.880206999999999518e-01,3.675555999999999823e-01,7.713043999999999301e+01,3.543703999999999743e-01,1.096711999999999954e+01 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +2.663205000000000156e-01,2.038828000000000029e-01,3.493316000000000088e+01,2.014776000000000067e-01,4.967119000000000284e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +4.271706000000000114e-01,2.924977000000000271e-01,5.603179999999999694e+01,2.856206000000000023e-01,7.967119000000000284e+00 +-2.720002999999999727e-01,-4.618575999999999793e-01,-2.171891000000000105e+01,-4.409649999999999959e-01,-3.766434999999999977e+00 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +-2.653560999999999837e-01,-4.079950999999999994e-01,-1.289832000000000001e+01,-3.956779000000000268e-01,-2.728044999999999831e+00 +8.908420000000000227e-02,8.085470000000000157e-02,7.113269999999999982e+00,8.072830000000000283e-02,1.233564000000000105e+00 +2.663205000000000156e-01,2.038828000000000029e-01,3.493316000000000088e+01,2.014776000000000067e-01,4.967119000000000284e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-2.458656999999999926e-01,-3.423031000000000268e-01,-7.275072999999999901e+00,-3.361348000000000114e-01,-1.876643000000000061e+00 +5.880206999999999518e-01,3.675555999999999823e-01,7.713043999999999301e+01,3.543703999999999743e-01,1.096711999999999954e+01 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +1.940280000000000060e-01,1.638978000000000101e-01,7.358446999999999960e+00,1.631224000000000007e-01,1.718768999999999991e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-2.720002999999999727e-01,-4.618575999999999793e-01,-2.171891000000000105e+01,-4.409649999999999959e-01,-3.766434999999999977e+00 +-2.720002999999999727e-01,-4.618575999999999793e-01,-2.171891000000000105e+01,-4.409649999999999959e-01,-3.766434999999999977e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-3.442172000000000009e-01,-8.265827000000000035e-01,-2.748534000000000077e+01,-7.296150999999999609e-01,-4.766435999999999673e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +3.779518000000000044e-01,2.736488999999999727e-01,3.017901000000000167e+01,2.689502999999999755e-01,5.233564000000000327e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-1.997833999999999999e-01,-2.769826000000000232e-01,-1.595246999999999993e+01,-2.721155000000000102e-01,-2.766434999999999977e+00 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +2.663205000000000156e-01,2.038828000000000029e-01,3.493316000000000088e+01,2.014776000000000067e-01,4.967119000000000284e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-3.704108999999999874e-01,-7.664223000000000008e-01,-1.404771000000000036e+01,-7.028326000000000295e-01,-3.281231000000000009e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-7.081669999999999632e-02,-7.699219999999999675e-02,-3.442229999999999901e+00,-7.690260000000000151e-02,-7.280450000000000532e-01 +2.335180000000000033e-01,1.869186999999999932e-01,1.864613999999999905e+01,1.853841999999999990e-01,3.233565000000000023e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-5.534959999999999880e-02,-5.944060000000000316e-02,-4.419599999999999973e+00,-5.939030000000000004e-02,-7.664353999999999889e-01 +1.940280000000000060e-01,1.638978000000000101e-01,7.358446999999999960e+00,1.631224000000000007e-01,1.718768999999999991e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-1.275664999999999993e-01,-1.531653000000000042e-01,-1.018604000000000021e+01,-1.523148000000000002e-01,-1.766435999999999895e+00 +2.645300000000000082e-02,2.572349999999999984e-02,1.285814999999999930e+00,2.572019999999999862e-02,2.719550000000000023e-01 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +2.663205000000000156e-01,2.038828000000000029e-01,3.493316000000000088e+01,2.014776000000000067e-01,4.967119000000000284e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +3.199371999999999772e-01,2.353204999999999880e-01,4.196603999999999957e+01,2.316601000000000077e-01,5.967119000000000284e+00 +4.271706000000000114e-01,2.924977000000000271e-01,5.603179999999999694e+01,2.856206000000000023e-01,7.967119000000000284e+00 +-5.534959999999999880e-02,-5.944060000000000316e-02,-4.419599999999999973e+00,-5.939030000000000004e-02,-7.664353999999999889e-01 +2.259877999999999887e-01,1.803413000000000099e-01,2.312788000000000110e+01,1.788202000000000125e-01,3.631746000000000141e+00 +1.015365000000000018e-01,9.059150000000000535e-02,1.039137000000000022e+01,9.039529999999999788e-02,1.631745999999999919e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-2.718173999999999868e-01,-4.850342999999999738e-01,-2.781814999999999927e+01,-4.589498000000000189e-01,-4.368254000000000303e+00 +-1.148520999999999986e-01,-1.305588000000000026e-01,-3.398429999999999840e+00,-1.302020000000000122e-01,-8.766426000000000496e-01 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-7.758929999999999993e-02,-8.392910000000000648e-02,-1.791260999999999992e+00,-8.384289999999999798e-02,-5.102887999999999868e-01 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +7.488707999999999476e-01,4.333751000000000131e-01,9.822908999999999935e+01,4.124975000000000169e-01,1.396711999999999954e+01 +2.663205000000000156e-01,2.038828000000000029e-01,3.493316000000000088e+01,2.014776000000000067e-01,4.967119000000000284e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +3.735538999999999943e-01,2.647622000000000031e-01,4.899891999999999825e+01,2.596048000000000244e-01,6.967119000000000284e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +3.199371999999999772e-01,2.353204999999999880e-01,4.196603999999999957e+01,2.316601000000000077e-01,5.967119000000000284e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-3.234632000000000063e-01,-8.578107000000000371e-01,-4.242853999999999814e+01,-7.355306999999999817e-01,-6.032880999999999716e+00 +3.931079999999999991e-02,3.749500000000000055e-02,4.023120999999999725e+00,3.748100000000000043e-02,6.317464000000000413e-01 +3.199371999999999772e-01,2.353204999999999880e-01,4.196603999999999957e+01,2.316601000000000077e-01,5.967119000000000284e+00 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +2.645300000000000082e-02,2.572349999999999984e-02,1.285814999999999930e+00,2.572019999999999862e-02,2.719550000000000023e-01 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +1.237227000000000049e-01,1.098284000000000066e-01,6.013860000000000205e+00,1.095689999999999997e-01,1.271954999999999947e+00 +5.128015000000000212e-01,3.526062999999999836e-01,2.492604000000000042e+01,3.444955000000000100e-01,5.271955000000000169e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +2.335180000000000033e-01,1.869186999999999932e-01,1.864613999999999905e+01,1.853841999999999990e-01,3.233565000000000023e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +1.594951999999999925e+00,7.115129999999999511e-01,1.632295000000000016e+02,6.397405000000000452e-01,2.563175000000000026e+01 +-1.446353999999999973e-01,-1.727818999999999883e-01,-5.485247000000000206e+00,-1.718746999999999914e-01,-1.281231000000000009e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.275664999999999993e-01,-1.531653000000000042e-01,-1.018604000000000021e+01,-1.523148000000000002e-01,-1.766435999999999895e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +1.237227000000000049e-01,1.098284000000000066e-01,6.013860000000000205e+00,1.095689999999999997e-01,1.271954999999999947e+00 +-3.234632000000000063e-01,-8.578107000000000371e-01,-4.242853999999999814e+01,-7.355306999999999817e-01,-6.032880999999999716e+00 +3.199371999999999772e-01,2.353204999999999880e-01,4.196603999999999957e+01,2.316601000000000077e-01,5.967119000000000284e+00 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +-3.538131999999999944e-01,-8.084837999999999747e-01,-2.204247000000000156e+01,-7.233001999999999487e-01,-4.221491000000000327e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +3.199371999999999772e-01,2.353204999999999880e-01,4.196603999999999957e+01,2.316601000000000077e-01,5.967119000000000284e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +3.199371999999999772e-01,2.353204999999999880e-01,4.196603999999999957e+01,2.316601000000000077e-01,5.967119000000000284e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-1.023760999999999977e-01,-1.169676000000000049e-01,-6.378002999999999645e+00,-1.166221999999999953e-01,-1.221491000000000104e+00 +4.271706000000000114e-01,2.924977000000000271e-01,5.603179999999999694e+01,2.856206000000000023e-01,7.967119000000000284e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.861885000000000068e-01,-2.456345000000000056e-01,-1.159948999999999941e+01,-2.425192999999999932e-01,-2.221490999999999882e+00 +3.199371999999999772e-01,2.353204999999999880e-01,4.196603999999999957e+01,2.316601000000000077e-01,5.967119000000000284e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +-3.234632000000000063e-01,-8.578107000000000371e-01,-4.242853999999999814e+01,-7.355306999999999817e-01,-6.032880999999999716e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +3.199371999999999772e-01,2.353204999999999880e-01,4.196603999999999957e+01,2.316601000000000077e-01,5.967119000000000284e+00 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +6.416374000000000244e-01,3.903728000000000198e-01,8.416331999999999880e+01,3.747579999999999800e-01,1.196711999999999954e+01 +-7.081669999999999632e-02,-7.699219999999999675e-02,-3.442229999999999901e+00,-7.690260000000000151e-02,-7.280450000000000532e-01 +-2.575231000000000048e-01,-3.767781000000000047e-01,-9.766479000000000354e+00,-3.678354999999999819e-01,-2.281231000000000009e+00 +3.182620999999999922e-01,2.446699999999999986e-01,1.546995000000000076e+01,2.418726999999999960e-01,3.271955000000000169e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.446353999999999973e-01,-1.727818999999999883e-01,-5.485247000000000206e+00,-1.718746999999999914e-01,-1.281231000000000009e+00 +6.416374000000000244e-01,3.903728000000000198e-01,8.416331999999999880e+01,3.747579999999999800e-01,1.196711999999999954e+01 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +8.561043000000000402e-01,4.734012000000000220e-01,1.122947999999999951e+02,4.468011000000000066e-01,1.596711999999999954e+01 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +3.735538999999999943e-01,2.647622000000000031e-01,4.899891999999999825e+01,2.596048000000000244e-01,6.967119000000000284e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-2.718173999999999868e-01,-4.850342999999999738e-01,-2.781814999999999927e+01,-4.589498000000000189e-01,-4.368254000000000303e+00 +-3.174760000000000082e-02,-3.284469999999999751e-02,-1.204015999999999975e+00,-3.283839999999999676e-02,-2.812312000000000145e-01 +-3.174760000000000082e-02,-3.284469999999999751e-02,-1.204015999999999975e+00,-3.283839999999999676e-02,-2.812312000000000145e-01 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +1.490611000000000019e-01,1.287397000000000125e-01,9.286469000000000307e+00,1.282800000000000051e-01,1.778508999999999896e+00 +-3.234632000000000063e-01,-8.578107000000000371e-01,-4.242853999999999814e+01,-7.355306999999999817e-01,-6.032880999999999716e+00 +5.344039999999999901e-01,3.437256000000000200e-01,7.009756000000000142e+01,3.328170999999999768e-01,9.967119000000000284e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-2.291479999999999906e-02,-2.360759999999999942e-02,-2.345133000000000134e+00,-2.360409999999999939e-02,-3.682536000000000143e-01 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +1.686729999999999827e-02,1.653570000000000040e-02,1.346835000000000004e+00,1.653469999999999940e-02,2.335645000000000082e-01 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +3.199371999999999772e-01,2.353204999999999880e-01,4.196603999999999957e+01,2.316601000000000077e-01,5.967119000000000284e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-2.653560999999999837e-01,-4.079950999999999994e-01,-1.289832000000000001e+01,-3.956779000000000268e-01,-2.728044999999999831e+00 +3.735538999999999943e-01,2.647622000000000031e-01,4.899891999999999825e+01,2.596048000000000244e-01,6.967119000000000284e+00 +1.616149999999999878e-02,1.591029999999999875e-02,4.782123999999999819e-01,1.590969999999999884e-02,1.233574000000000059e-01 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.680863999999999969e-01,-2.110146999999999995e-01,-8.170275000000000176e+00,-2.092063000000000117e-01,-1.728045000000000053e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +3.735538999999999943e-01,2.647622000000000031e-01,4.899891999999999825e+01,2.596048000000000244e-01,6.967119000000000284e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.861885000000000068e-01,-2.456345000000000056e-01,-1.159948999999999941e+01,-2.425192999999999932e-01,-2.221490999999999882e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.446353999999999973e-01,-1.727818999999999883e-01,-5.485247000000000206e+00,-1.718746999999999914e-01,-1.281231000000000009e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +1.388228999999999935e+00,6.925084999999999713e-01,6.747844999999999516e+01,6.396811999999999498e-01,1.427195000000000036e+01 +6.524870000000000669e-02,6.086860000000000187e-02,4.064979000000000120e+00,6.081969999999999738e-02,7.785092000000000123e-01 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +2.663205000000000156e-01,2.038828000000000029e-01,3.493316000000000088e+01,2.014776000000000067e-01,4.967119000000000284e+00 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-5.534959999999999880e-02,-5.944060000000000316e-02,-4.419599999999999973e+00,-5.939030000000000004e-02,-7.664353999999999889e-01 +-1.861885000000000068e-01,-2.456345000000000056e-01,-1.159948999999999941e+01,-2.425192999999999932e-01,-2.221490999999999882e+00 +6.416374000000000244e-01,3.903728000000000198e-01,8.416331999999999880e+01,3.747579999999999800e-01,1.196711999999999954e+01 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +1.471751000000000031e-01,1.295917000000000041e-01,4.354854999999999698e+00,1.292426999999999881e-01,1.123356999999999939e+00 +4.807872999999999730e-01,3.187570000000000126e-01,6.306468000000000274e+01,3.099567999999999768e-01,8.967119000000000284e+00 +9.633376999999999635e-01,5.109462000000000170e-01,1.263606000000000051e+02,4.782426000000000177e-01,1.796712000000000131e+01 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +2.663205000000000156e-01,2.038828000000000029e-01,3.493316000000000088e+01,2.014776000000000067e-01,4.967119000000000284e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-7.081669999999999632e-02,-7.699219999999999675e-02,-3.442229999999999901e+00,-7.690260000000000151e-02,-7.280450000000000532e-01 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +4.807872999999999730e-01,3.187570000000000126e-01,6.306468000000000274e+01,3.099567999999999768e-01,8.967119000000000284e+00 +-3.234632000000000063e-01,-8.578107000000000371e-01,-4.242853999999999814e+01,-7.355306999999999817e-01,-6.032880999999999716e+00 +6.416374000000000244e-01,3.903728000000000198e-01,8.416331999999999880e+01,3.747579999999999800e-01,1.196711999999999954e+01 +-2.575231000000000048e-01,-3.767781000000000047e-01,-9.766479000000000354e+00,-3.678354999999999819e-01,-2.281231000000000009e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +3.199371999999999772e-01,2.353204999999999880e-01,4.196603999999999957e+01,2.316601000000000077e-01,5.967119000000000284e+00 +3.057348999999999761e-01,2.321660999999999864e-01,2.441257999999999839e+01,2.292598999999999887e-01,4.233564000000000327e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +2.328735000000000110e-01,1.881362000000000034e-01,1.450796000000000063e+01,1.867167000000000132e-01,2.778509000000000118e+00 +-1.680863999999999969e-01,-2.110146999999999995e-01,-8.170275000000000176e+00,-2.092063000000000117e-01,-1.728045000000000053e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +3.931079999999999991e-02,3.749500000000000055e-02,4.023120999999999725e+00,3.748100000000000043e-02,6.317464000000000413e-01 +-1.275664999999999993e-01,-1.531653000000000042e-01,-1.018604000000000021e+01,-1.523148000000000002e-01,-1.766435999999999895e+00 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +5.946025000000000338e-01,3.816070999999999769e-01,4.747831999999999653e+01,3.693783999999999956e-01,8.233563999999999439e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +8.114019999999999566e-02,7.508189999999999309e-02,3.077214999999999812e+00,7.500660000000000660e-02,7.187687999999999855e-01 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +1.686729999999999827e-02,1.653570000000000040e-02,1.346835000000000004e+00,1.653469999999999940e-02,2.335645000000000082e-01 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +4.807872999999999730e-01,3.187570000000000126e-01,6.306468000000000274e+01,3.099567999999999768e-01,8.967119000000000284e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-5.534959999999999880e-02,-5.944060000000000316e-02,-4.419599999999999973e+00,-5.939030000000000004e-02,-7.664353999999999889e-01 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +3.735538999999999943e-01,2.647622000000000031e-01,4.899891999999999825e+01,2.596048000000000244e-01,6.967119000000000284e+00 +2.663205000000000156e-01,2.038828000000000029e-01,3.493316000000000088e+01,2.014776000000000067e-01,4.967119000000000284e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +7.390362999999999793e-01,4.436693999999999916e-01,5.901118999999999915e+01,4.249854000000000132e-01,1.023356000000000066e+01 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +2.781887000000000110e-01,2.236103000000000118e-01,8.231498000000000204e+00,2.218424999999999980e-01,2.123356999999999939e+00 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +5.946025000000000338e-01,3.816070999999999769e-01,4.747831999999999653e+01,3.693783999999999956e-01,8.233563999999999439e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +3.069158000000000164e-01,2.400239000000000122e-01,1.163968000000000025e+01,2.376232000000000066e-01,2.718768999999999991e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.997833999999999999e-01,-2.769826000000000232e-01,-1.595246999999999993e+01,-2.721155000000000102e-01,-2.766434999999999977e+00 +-1.023760999999999977e-01,-1.169676000000000049e-01,-6.378002999999999645e+00,-1.166221999999999953e-01,-1.221491000000000104e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-3.234632000000000063e-01,-8.578107000000000371e-01,-4.242853999999999814e+01,-7.355306999999999817e-01,-6.032880999999999716e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +6.952540999999999860e-01,4.122828000000000048e-01,9.119620999999999356e+01,3.940996999999999972e-01,1.296711999999999954e+01 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +2.663205000000000156e-01,2.038828000000000029e-01,3.493316000000000088e+01,2.014776000000000067e-01,4.967119000000000284e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +7.488707999999999476e-01,4.333751000000000131e-01,9.822908999999999935e+01,4.124975000000000169e-01,1.396711999999999954e+01 +-1.997833999999999999e-01,-2.769826000000000232e-01,-1.595246999999999993e+01,-2.721155000000000102e-01,-2.766434999999999977e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +7.446049999999999891e-02,6.975370000000000181e-02,1.719028000000000000e+00,6.970410000000000494e-02,4.897112000000000132e-01 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +2.663205000000000156e-01,2.038828000000000029e-01,3.493316000000000088e+01,2.014776000000000067e-01,4.967119000000000284e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +1.940280000000000060e-01,1.638978000000000101e-01,7.358446999999999960e+00,1.631224000000000007e-01,1.718768999999999991e+00 +2.645300000000000082e-02,2.572349999999999984e-02,1.285814999999999930e+00,2.572019999999999862e-02,2.719550000000000023e-01 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +-3.174760000000000082e-02,-3.284469999999999751e-02,-1.204015999999999975e+00,-3.283839999999999676e-02,-2.812312000000000145e-01 +-1.997833999999999999e-01,-2.769826000000000232e-01,-1.595246999999999993e+01,-2.721155000000000102e-01,-2.766434999999999977e+00 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.446353999999999973e-01,-1.727818999999999883e-01,-5.485247000000000206e+00,-1.718746999999999914e-01,-1.281231000000000009e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-1.023760999999999977e-01,-1.169676000000000049e-01,-6.378002999999999645e+00,-1.166221999999999953e-01,-1.221491000000000104e+00 +-2.718173999999999868e-01,-4.850342999999999738e-01,-2.781814999999999927e+01,-4.589498000000000189e-01,-4.368254000000000303e+00 +3.199371999999999772e-01,2.353204999999999880e-01,4.196603999999999957e+01,2.316601000000000077e-01,5.967119000000000284e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +4.271706000000000114e-01,2.924977000000000271e-01,5.603179999999999694e+01,2.856206000000000023e-01,7.967119000000000284e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-2.653560999999999837e-01,-4.079950999999999994e-01,-1.289832000000000001e+01,-3.956779000000000268e-01,-2.728044999999999831e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +6.524870000000000669e-02,6.086860000000000187e-02,4.064979000000000120e+00,6.081969999999999738e-02,7.785092000000000123e-01 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +3.931079999999999991e-02,3.749500000000000055e-02,4.023120999999999725e+00,3.748100000000000043e-02,6.317464000000000413e-01 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +6.524870000000000669e-02,6.086860000000000187e-02,4.064979000000000120e+00,6.081969999999999738e-02,7.785092000000000123e-01 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.861885000000000068e-01,-2.456345000000000056e-01,-1.159948999999999941e+01,-2.425192999999999932e-01,-2.221490999999999882e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-2.291479999999999906e-02,-2.360759999999999942e-02,-2.345133000000000134e+00,-2.360409999999999939e-02,-3.682536000000000143e-01 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +1.686729999999999827e-02,1.653570000000000040e-02,1.346835000000000004e+00,1.653469999999999940e-02,2.335645000000000082e-01 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +2.663205000000000156e-01,2.038828000000000029e-01,3.493316000000000088e+01,2.014776000000000067e-01,4.967119000000000284e+00 +7.446049999999999891e-02,6.975370000000000181e-02,1.719028000000000000e+00,6.970410000000000494e-02,4.897112000000000132e-01 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +2.663205000000000156e-01,2.038828000000000029e-01,3.493316000000000088e+01,2.014776000000000067e-01,4.967119000000000284e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +5.880206999999999518e-01,3.675555999999999823e-01,7.713043999999999301e+01,3.543703999999999743e-01,1.096711999999999954e+01 +-3.340430999999999817e-01,-8.429710999999999732e-01,-3.418639999999999901e+01,-7.336224000000000078e-01,-5.368254000000000303e+00 +1.285037999999999903e+00,6.120708999999999733e-01,1.685578999999999894e+02,5.593567999999999873e-01,2.396712000000000131e+01 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-5.534959999999999880e-02,-5.944060000000000316e-02,-4.419599999999999973e+00,-5.939030000000000004e-02,-7.664353999999999889e-01 +-3.234632000000000063e-01,-8.578107000000000371e-01,-4.242853999999999814e+01,-7.355306999999999817e-01,-6.032880999999999716e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +2.663205000000000156e-01,2.038828000000000029e-01,3.493316000000000088e+01,2.014776000000000067e-01,4.967119000000000284e+00 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-3.340430999999999817e-01,-8.429710999999999732e-01,-3.418639999999999901e+01,-7.336224000000000078e-01,-5.368254000000000303e+00 +1.237227000000000049e-01,1.098284000000000066e-01,6.013860000000000205e+00,1.095689999999999997e-01,1.271954999999999947e+00 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-3.234632000000000063e-01,-8.578107000000000371e-01,-4.242853999999999814e+01,-7.355306999999999817e-01,-6.032880999999999716e+00 +3.504391000000000034e-01,2.552889999999999882e-01,3.586439000000000021e+01,2.510684999999999722e-01,5.631745999999999697e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +-7.081669999999999632e-02,-7.699219999999999675e-02,-3.442229999999999901e+00,-7.690260000000000151e-02,-7.280450000000000532e-01 +-2.700007999999999853e-01,-4.362619999999999831e-01,-1.682097999999999871e+01,-4.199611999999999790e-01,-3.221490999999999882e+00 +-1.997833999999999999e-01,-2.769826000000000232e-01,-1.595246999999999993e+01,-2.721155000000000102e-01,-2.766434999999999977e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.856369999999999895e-02,-1.897039999999999837e-02,-1.156511999999999984e+00,-1.896890000000000034e-02,-2.214907999999999877e-01 +2.209924000000000055e-01,1.816222999999999865e-01,1.074191000000000074e+01,1.804622999999999922e-01,2.271955000000000169e+00 +-1.997833999999999999e-01,-2.769826000000000232e-01,-1.595246999999999993e+01,-2.721155000000000102e-01,-2.766434999999999977e+00 +5.993416999999999772e-01,3.781156999999999990e-01,6.133740000000000236e+01,3.650679000000000007e-01,9.631745999999999697e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-2.720002999999999727e-01,-4.618575999999999793e-01,-2.171891000000000105e+01,-4.409649999999999959e-01,-3.766434999999999977e+00 +1.490611000000000019e-01,1.287397000000000125e-01,9.286469000000000307e+00,1.282800000000000051e-01,1.778508999999999896e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +1.015365000000000018e-01,9.059150000000000535e-02,1.039137000000000022e+01,9.039529999999999788e-02,1.631745999999999919e+00 +1.616149999999999878e-02,1.591029999999999875e-02,4.782123999999999819e-01,1.590969999999999884e-02,1.233574000000000059e-01 +-2.291479999999999906e-02,-2.360759999999999942e-02,-2.345133000000000134e+00,-2.360409999999999939e-02,-3.682536000000000143e-01 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +8.908420000000000227e-02,8.085470000000000157e-02,7.113269999999999982e+00,8.072830000000000283e-02,1.233564000000000105e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +7.446049999999999891e-02,6.975370000000000181e-02,1.719028000000000000e+00,6.970410000000000494e-02,4.897112000000000132e-01 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +1.490611000000000019e-01,1.287397000000000125e-01,9.286469000000000307e+00,1.282800000000000051e-01,1.778508999999999896e+00 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +2.259877999999999887e-01,1.803413000000000099e-01,2.312788000000000110e+01,1.788202000000000125e-01,3.631746000000000141e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +3.931079999999999991e-02,3.749500000000000055e-02,4.023120999999999725e+00,3.748100000000000043e-02,6.317464000000000413e-01 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +1.015365000000000018e-01,9.059150000000000535e-02,1.039137000000000022e+01,9.039529999999999788e-02,1.631745999999999919e+00 +-1.023760999999999977e-01,-1.169676000000000049e-01,-6.378002999999999645e+00,-1.166221999999999953e-01,-1.221491000000000104e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +8.046105999999999536e-01,4.852381000000000055e-01,3.911017999999999972e+01,4.651556000000000024e-01,8.271955000000000169e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-2.700007999999999853e-01,-4.362619999999999831e-01,-1.682097999999999871e+01,-4.199611999999999790e-01,-3.221490999999999882e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.680863999999999969e-01,-2.110146999999999995e-01,-8.170275000000000176e+00,-2.092063000000000117e-01,-1.728045000000000053e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +3.069158000000000164e-01,2.400239000000000122e-01,1.163968000000000025e+01,2.376232000000000066e-01,2.718768999999999991e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +8.114019999999999566e-02,7.508189999999999309e-02,3.077214999999999812e+00,7.500660000000000660e-02,7.187687999999999855e-01 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +2.781887000000000110e-01,2.236103000000000118e-01,8.231498000000000204e+00,2.218424999999999980e-01,2.123356999999999939e+00 +6.416374000000000244e-01,3.903728000000000198e-01,8.416331999999999880e+01,3.747579999999999800e-01,1.196711999999999954e+01 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +7.488707999999999476e-01,4.333751000000000131e-01,9.822908999999999935e+01,4.124975000000000169e-01,1.396711999999999954e+01 +1.637620999999999938e-01,1.377533999999999981e-01,1.675963000000000136e+01,1.370690999999999993e-01,2.631746000000000141e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-2.718173999999999868e-01,-4.850342999999999738e-01,-2.781814999999999927e+01,-4.589498000000000189e-01,-4.368254000000000303e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-2.700007999999999853e-01,-4.362619999999999831e-01,-1.682097999999999871e+01,-4.199611999999999790e-01,-3.221490999999999882e+00 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +8.908420000000000227e-02,8.085470000000000157e-02,7.113269999999999982e+00,8.072830000000000283e-02,1.233564000000000105e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +2.645300000000000082e-02,2.572349999999999984e-02,1.285814999999999930e+00,2.572019999999999862e-02,2.719550000000000023e-01 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-2.700007999999999853e-01,-4.362619999999999831e-01,-1.682097999999999871e+01,-4.199611999999999790e-01,-3.221490999999999882e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +2.265101999999999949e-01,1.897903999999999980e-01,5.229316999999999993e+00,1.888044999999999862e-01,1.489711000000000007e+00 +-2.718173999999999868e-01,-4.850342999999999738e-01,-2.781814999999999927e+01,-4.589498000000000189e-01,-4.368254000000000303e+00 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-2.291479999999999906e-02,-2.360759999999999942e-02,-2.345133000000000134e+00,-2.360409999999999939e-02,-3.682536000000000143e-01 +4.271706000000000114e-01,2.924977000000000271e-01,5.603179999999999694e+01,2.856206000000000023e-01,7.967119000000000284e+00 +4.843106999999999829e-01,3.336759999999999726e-01,3.017242999999999853e+01,3.260801999999999867e-01,5.778508999999999673e+00 +-2.718173999999999868e-01,-4.850342999999999738e-01,-2.781814999999999927e+01,-4.589498000000000189e-01,-4.368254000000000303e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +1.686729999999999827e-02,1.653570000000000040e-02,1.346835000000000004e+00,1.653469999999999940e-02,2.335645000000000082e-01 +-1.446353999999999973e-01,-1.727818999999999883e-01,-5.485247000000000206e+00,-1.718746999999999914e-01,-1.281231000000000009e+00 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +2.209924000000000055e-01,1.816222999999999865e-01,1.074191000000000074e+01,1.804622999999999922e-01,2.271955000000000169e+00 +-1.680863999999999969e-01,-2.110146999999999995e-01,-8.170275000000000176e+00,-2.092063000000000117e-01,-1.728045000000000053e+00 +2.663205000000000156e-01,2.038828000000000029e-01,3.493316000000000088e+01,2.014776000000000067e-01,4.967119000000000284e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +3.057348999999999761e-01,2.321660999999999864e-01,2.441257999999999839e+01,2.292598999999999887e-01,4.233564000000000327e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.275664999999999993e-01,-1.531653000000000042e-01,-1.018604000000000021e+01,-1.523148000000000002e-01,-1.766435999999999895e+00 +-1.446353999999999973e-01,-1.727818999999999883e-01,-5.485247000000000206e+00,-1.718746999999999914e-01,-1.281231000000000009e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +4.198035999999999990e-01,3.071039999999999881e-01,1.592090999999999923e+01,3.021588000000000052e-01,3.718768999999999991e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +2.663205000000000156e-01,2.038828000000000029e-01,3.493316000000000088e+01,2.014776000000000067e-01,4.967119000000000284e+00 +8.347092000000000400e-01,5.212972000000000161e-01,1.927046999999999954e+01,5.025287999999999977e-01,5.489710999999999785e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +6.524870000000000669e-02,6.086860000000000187e-02,4.064979000000000120e+00,6.081969999999999738e-02,7.785092000000000123e-01 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +6.615674000000000277e-01,4.049112000000000267e-01,6.770565999999999462e+01,3.890915999999999819e-01,1.063175000000000026e+01 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +2.209924000000000055e-01,1.816222999999999865e-01,1.074191000000000074e+01,1.804622999999999922e-01,2.271955000000000169e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +4.271706000000000114e-01,2.924977000000000271e-01,5.603179999999999694e+01,2.856206000000000023e-01,7.967119000000000284e+00 +2.209924000000000055e-01,1.816222999999999865e-01,1.074191000000000074e+01,1.804622999999999922e-01,2.271955000000000169e+00 +2.265101999999999949e-01,1.897903999999999980e-01,5.229316999999999993e+00,1.888044999999999862e-01,1.489711000000000007e+00 +-3.150870000000000060e-02,-3.243279999999999774e-02,-5.675518999999999981e-01,-3.242830000000000018e-02,-1.785565000000000069e-01 +-2.458656999999999926e-01,-3.423031000000000268e-01,-7.275072999999999901e+00,-3.361348000000000114e-01,-1.876643000000000061e+00 +-1.023760999999999977e-01,-1.169676000000000049e-01,-6.378002999999999645e+00,-1.166221999999999953e-01,-1.221491000000000104e+00 +-2.291479999999999906e-02,-2.360759999999999942e-02,-2.345133000000000134e+00,-2.360409999999999939e-02,-3.682536000000000143e-01 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-1.446353999999999973e-01,-1.727818999999999883e-01,-5.485247000000000206e+00,-1.718746999999999914e-01,-1.281231000000000009e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-2.291479999999999906e-02,-2.360759999999999942e-02,-2.345133000000000134e+00,-2.360409999999999939e-02,-3.682536000000000143e-01 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +1.015365000000000018e-01,9.059150000000000535e-02,1.039137000000000022e+01,9.039529999999999788e-02,1.631745999999999919e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +5.880206999999999518e-01,3.675555999999999823e-01,7.713043999999999301e+01,3.543703999999999743e-01,1.096711999999999954e+01 +-1.997833999999999999e-01,-2.769826000000000232e-01,-1.595246999999999993e+01,-2.721155000000000102e-01,-2.766434999999999977e+00 +9.097210000000000019e-01,4.924580000000000068e-01,1.193276999999999930e+02,4.628495000000000248e-01,1.696712000000000131e+01 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.680863999999999969e-01,-2.110146999999999995e-01,-8.170275000000000176e+00,-2.092063000000000117e-01,-1.728045000000000053e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-2.720002999999999727e-01,-4.618575999999999793e-01,-2.171891000000000105e+01,-4.409649999999999959e-01,-3.766434999999999977e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +5.306096999999999619e-01,3.757487999999999939e-01,1.224989000000000061e+01,3.683927000000000174e-01,3.489710999999999785e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-1.861885000000000068e-01,-2.456345000000000056e-01,-1.159948999999999941e+01,-2.425192999999999932e-01,-2.221490999999999882e+00 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +1.457311000000000023e+00,7.408571999999999935e-01,4.312127999999999872e+01,6.872200000000000530e-01,1.112335999999999991e+01 +-3.626257999999999981e-01,-7.884961000000000331e-01,-1.762635999999999825e+01,-7.144532000000000105e-01,-3.728044999999999831e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +1.616149999999999878e-02,1.591029999999999875e-02,4.782123999999999819e-01,1.590969999999999884e-02,1.233574000000000059e-01 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +2.663205000000000156e-01,2.038828000000000029e-01,3.493316000000000088e+01,2.014776000000000067e-01,4.967119000000000284e+00 +3.735538999999999943e-01,2.647622000000000031e-01,4.899891999999999825e+01,2.596048000000000244e-01,6.967119000000000284e+00 +1.285037999999999903e+00,6.120708999999999733e-01,1.685578999999999894e+02,5.593567999999999873e-01,2.396712000000000131e+01 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +2.663205000000000156e-01,2.038828000000000029e-01,3.493316000000000088e+01,2.014776000000000067e-01,4.967119000000000284e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-7.081669999999999632e-02,-7.699219999999999675e-02,-3.442229999999999901e+00,-7.690260000000000151e-02,-7.280450000000000532e-01 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +1.686729999999999827e-02,1.653570000000000040e-02,1.346835000000000004e+00,1.653469999999999940e-02,2.335645000000000082e-01 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +4.198035999999999990e-01,3.071039999999999881e-01,1.592090999999999923e+01,3.021588000000000052e-01,3.718768999999999991e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +6.100712000000000357e-01,3.999677999999999845e-01,2.965409000000000006e+01,3.883282000000000123e-01,6.271955000000000169e+00 +-2.718173999999999868e-01,-4.850342999999999738e-01,-2.781814999999999927e+01,-4.589498000000000189e-01,-4.368254000000000303e+00 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-1.680863999999999969e-01,-2.110146999999999995e-01,-8.170275000000000176e+00,-2.092063000000000117e-01,-1.728045000000000053e+00 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +2.464605000000000157e+00,8.977926999999999991e-01,3.232812999999999874e+02,7.615865000000000551e-01,4.596712000000000131e+01 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-1.861885000000000068e-01,-2.456345000000000056e-01,-1.159948999999999941e+01,-2.425192999999999932e-01,-2.221490999999999882e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.997833999999999999e-01,-2.769826000000000232e-01,-1.595246999999999993e+01,-2.721155000000000102e-01,-2.766434999999999977e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +3.735538999999999943e-01,2.647622000000000031e-01,4.899891999999999825e+01,2.596048000000000244e-01,6.967119000000000284e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.275664999999999993e-01,-1.531653000000000042e-01,-1.018604000000000021e+01,-1.523148000000000002e-01,-1.766435999999999895e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +2.882135000000000113e-01,2.192947000000000091e-01,2.949614000000000047e+01,2.165885999999999922e-01,4.631745999999999697e+00 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +2.882135000000000113e-01,2.192947000000000091e-01,2.949614000000000047e+01,2.165885999999999922e-01,4.631745999999999697e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +2.328735000000000110e-01,1.881362000000000034e-01,1.450796000000000063e+01,1.867167000000000132e-01,2.778509000000000118e+00 +1.016953999999999914e+00,5.289095999999999798e-01,1.333934999999999889e+02,4.930320000000000258e-01,1.896712000000000131e+01 +-2.700007999999999853e-01,-4.362619999999999831e-01,-1.682097999999999871e+01,-4.199611999999999790e-01,-3.221490999999999882e+00 +-1.861885000000000068e-01,-2.456345000000000056e-01,-1.159948999999999941e+01,-2.425192999999999932e-01,-2.221490999999999882e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +2.663205000000000156e-01,2.038828000000000029e-01,3.493316000000000088e+01,2.014776000000000067e-01,4.967119000000000284e+00 +8.561043000000000402e-01,4.734012000000000220e-01,1.122947999999999951e+02,4.468011000000000066e-01,1.596711999999999954e+01 +3.199371999999999772e-01,2.353204999999999880e-01,4.196603999999999957e+01,2.316601000000000077e-01,5.967119000000000284e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.680863999999999969e-01,-2.110146999999999995e-01,-8.170275000000000176e+00,-2.092063000000000117e-01,-1.728045000000000053e+00 +3.069158000000000164e-01,2.400239000000000122e-01,1.163968000000000025e+01,2.376232000000000066e-01,2.718768999999999991e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.997833999999999999e-01,-2.769826000000000232e-01,-1.595246999999999993e+01,-2.721155000000000102e-01,-2.766434999999999977e+00 +3.735538999999999943e-01,2.647622000000000031e-01,4.899891999999999825e+01,2.596048000000000244e-01,6.967119000000000284e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +2.360926000000000080e+00,9.532880999999999716e-01,1.147588999999999970e+02,8.341511999999999816e-01,2.427195999999999998e+01 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.997833999999999999e-01,-2.769826000000000232e-01,-1.595246999999999993e+01,-2.721155000000000102e-01,-2.766434999999999977e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +2.209924000000000055e-01,1.816222999999999865e-01,1.074191000000000074e+01,1.804622999999999922e-01,2.271955000000000169e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.680863999999999969e-01,-2.110146999999999995e-01,-8.170275000000000176e+00,-2.092063000000000117e-01,-1.728045000000000053e+00 +-1.275664999999999993e-01,-1.531653000000000042e-01,-1.018604000000000021e+01,-1.523148000000000002e-01,-1.766435999999999895e+00 +-2.718173999999999868e-01,-4.850342999999999738e-01,-2.781814999999999927e+01,-4.589498000000000189e-01,-4.368254000000000303e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.446353999999999973e-01,-1.727818999999999883e-01,-5.485247000000000206e+00,-1.718746999999999914e-01,-1.281231000000000009e+00 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-2.291479999999999906e-02,-2.360759999999999942e-02,-2.345133000000000134e+00,-2.360409999999999939e-02,-3.682536000000000143e-01 +-2.720002999999999727e-01,-4.618575999999999793e-01,-2.171891000000000105e+01,-4.409649999999999959e-01,-3.766434999999999977e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-3.174760000000000082e-02,-3.284469999999999751e-02,-1.204015999999999975e+00,-3.283839999999999676e-02,-2.812312000000000145e-01 +-2.700007999999999853e-01,-4.362619999999999831e-01,-1.682097999999999871e+01,-4.199611999999999790e-01,-3.221490999999999882e+00 +-1.680863999999999969e-01,-2.110146999999999995e-01,-8.170275000000000176e+00,-2.092063000000000117e-01,-1.728045000000000053e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-2.291479999999999906e-02,-2.360759999999999942e-02,-2.345133000000000134e+00,-2.360409999999999939e-02,-3.682536000000000143e-01 +-3.538131999999999944e-01,-8.084837999999999747e-01,-2.204247000000000156e+01,-7.233001999999999487e-01,-4.221491000000000327e+00 +2.663205000000000156e-01,2.038828000000000029e-01,3.493316000000000088e+01,2.014776000000000067e-01,4.967119000000000284e+00 +-1.997833999999999999e-01,-2.769826000000000232e-01,-1.595246999999999993e+01,-2.721155000000000102e-01,-2.766434999999999977e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +7.488707999999999476e-01,4.333751000000000131e-01,9.822908999999999935e+01,4.124975000000000169e-01,1.396711999999999954e+01 +-2.291479999999999906e-02,-2.360759999999999942e-02,-2.345133000000000134e+00,-2.360409999999999939e-02,-3.682536000000000143e-01 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +1.940280000000000060e-01,1.638978000000000101e-01,7.358446999999999960e+00,1.631224000000000007e-01,1.718768999999999991e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +3.931079999999999991e-02,3.749500000000000055e-02,4.023120999999999725e+00,3.748100000000000043e-02,6.317464000000000413e-01 +-1.023760999999999977e-01,-1.169676000000000049e-01,-6.378002999999999645e+00,-1.166221999999999953e-01,-1.221491000000000104e+00 +-5.534959999999999880e-02,-5.944060000000000316e-02,-4.419599999999999973e+00,-5.939030000000000004e-02,-7.664353999999999889e-01 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +3.931079999999999991e-02,3.749500000000000055e-02,4.023120999999999725e+00,3.748100000000000043e-02,6.317464000000000413e-01 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +7.357477999999999518e-01,4.493267000000000233e-01,4.583691000000000315e+01,4.316189000000000275e-01,8.778508999999999673e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +1.285037999999999903e+00,6.120708999999999733e-01,1.685578999999999894e+02,5.593567999999999873e-01,2.396712000000000131e+01 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +6.416374000000000244e-01,3.903728000000000198e-01,8.416331999999999880e+01,3.747579999999999800e-01,1.196711999999999954e+01 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +1.940280000000000060e-01,1.638978000000000101e-01,7.358446999999999960e+00,1.631224000000000007e-01,1.718768999999999991e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-3.234632000000000063e-01,-8.578107000000000371e-01,-4.242853999999999814e+01,-7.355306999999999817e-01,-6.032880999999999716e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +4.807872999999999730e-01,3.187570000000000126e-01,6.306468000000000274e+01,3.099567999999999768e-01,8.967119000000000284e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-2.291479999999999906e-02,-2.360759999999999942e-02,-2.345133000000000134e+00,-2.360409999999999939e-02,-3.682536000000000143e-01 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +-7.081669999999999632e-02,-7.699219999999999675e-02,-3.442229999999999901e+00,-7.690260000000000151e-02,-7.280450000000000532e-01 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +9.633376999999999635e-01,5.109462000000000170e-01,1.263606000000000051e+02,4.782426000000000177e-01,1.796712000000000131e+01 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +6.524870000000000669e-02,6.086860000000000187e-02,4.064979000000000120e+00,6.081969999999999738e-02,7.785092000000000123e-01 +1.637620999999999938e-01,1.377533999999999981e-01,1.675963000000000136e+01,1.370690999999999993e-01,2.631746000000000141e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +9.556869999999999532e-01,5.264929999999999888e-01,7.631049000000000149e+01,4.965496999999999828e-01,1.323356000000000066e+01 +-2.720002999999999727e-01,-4.618575999999999793e-01,-2.171891000000000105e+01,-4.409649999999999959e-01,-3.766434999999999977e+00 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-3.174760000000000082e-02,-3.284469999999999751e-02,-1.204015999999999975e+00,-3.283839999999999676e-02,-2.812312000000000145e-01 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-5.534959999999999880e-02,-5.944060000000000316e-02,-4.419599999999999973e+00,-5.939030000000000004e-02,-7.664353999999999889e-01 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-2.291479999999999906e-02,-2.360759999999999942e-02,-2.345133000000000134e+00,-2.360409999999999939e-02,-3.682536000000000143e-01 +3.735538999999999943e-01,2.647622000000000031e-01,4.899891999999999825e+01,2.596048000000000244e-01,6.967119000000000284e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.148520999999999986e-01,-1.305588000000000026e-01,-3.398429999999999840e+00,-1.302020000000000122e-01,-8.766426000000000496e-01 +2.259877999999999887e-01,1.803413000000000099e-01,2.312788000000000110e+01,1.788202000000000125e-01,3.631746000000000141e+00 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +-1.861885000000000068e-01,-2.456345000000000056e-01,-1.159948999999999941e+01,-2.425192999999999932e-01,-2.221490999999999882e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +3.166859000000000202e-01,2.412151999999999907e-01,1.972944999999999993e+01,2.382615999999999901e-01,3.778509000000000118e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +3.199371999999999772e-01,2.353204999999999880e-01,4.196603999999999957e+01,2.316601000000000077e-01,5.967119000000000284e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +1.940280000000000060e-01,1.638978000000000101e-01,7.358446999999999960e+00,1.631224000000000007e-01,1.718768999999999991e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +1.471751000000000031e-01,1.295917000000000041e-01,4.354854999999999698e+00,1.292426999999999881e-01,1.123356999999999939e+00 +3.735538999999999943e-01,2.647622000000000031e-01,4.899891999999999825e+01,2.596048000000000244e-01,6.967119000000000284e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-1.023760999999999977e-01,-1.169676000000000049e-01,-6.378002999999999645e+00,-1.166221999999999953e-01,-1.221491000000000104e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-1.680863999999999969e-01,-2.110146999999999995e-01,-8.170275000000000176e+00,-2.092063000000000117e-01,-1.728045000000000053e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +2.335180000000000033e-01,1.869186999999999932e-01,1.864613999999999905e+01,1.853841999999999990e-01,3.233565000000000023e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.023760999999999977e-01,-1.169676000000000049e-01,-6.378002999999999645e+00,-1.166221999999999953e-01,-1.221491000000000104e+00 +-3.174760000000000082e-02,-3.284469999999999751e-02,-1.204015999999999975e+00,-3.283839999999999676e-02,-2.812312000000000145e-01 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +1.015365000000000018e-01,9.059150000000000535e-02,1.039137000000000022e+01,9.039529999999999788e-02,1.631745999999999919e+00 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.997833999999999999e-01,-2.769826000000000232e-01,-1.595246999999999993e+01,-2.721155000000000102e-01,-2.766434999999999977e+00 +4.843106999999999829e-01,3.336759999999999726e-01,3.017242999999999853e+01,3.260801999999999867e-01,5.778508999999999673e+00 +-2.720002999999999727e-01,-4.618575999999999793e-01,-2.171891000000000105e+01,-4.409649999999999959e-01,-3.766434999999999977e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +8.114019999999999566e-02,7.508189999999999309e-02,3.077214999999999812e+00,7.500660000000000660e-02,7.187687999999999855e-01 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-1.680863999999999969e-01,-2.110146999999999995e-01,-8.170275000000000176e+00,-2.092063000000000117e-01,-1.728045000000000053e+00 +1.015365000000000018e-01,9.059150000000000535e-02,1.039137000000000022e+01,9.039529999999999788e-02,1.631745999999999919e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.680863999999999969e-01,-2.110146999999999995e-01,-8.170275000000000176e+00,-2.092063000000000117e-01,-1.728045000000000053e+00 +-1.275664999999999993e-01,-1.531653000000000042e-01,-1.018604000000000021e+01,-1.523148000000000002e-01,-1.766435999999999895e+00 +-3.234632000000000063e-01,-8.578107000000000371e-01,-4.242853999999999814e+01,-7.355306999999999817e-01,-6.032880999999999716e+00 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +5.993416999999999772e-01,3.781156999999999990e-01,6.133740000000000236e+01,3.650679000000000007e-01,9.631745999999999697e+00 +-5.534959999999999880e-02,-5.944060000000000316e-02,-4.419599999999999973e+00,-5.939030000000000004e-02,-7.664353999999999889e-01 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +2.209924000000000055e-01,1.816222999999999865e-01,1.074191000000000074e+01,1.804622999999999922e-01,2.271955000000000169e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-2.718173999999999868e-01,-4.850342999999999738e-01,-2.781814999999999927e+01,-4.589498000000000189e-01,-4.368254000000000303e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-7.081669999999999632e-02,-7.699219999999999675e-02,-3.442229999999999901e+00,-7.690260000000000151e-02,-7.280450000000000532e-01 +-1.680863999999999969e-01,-2.110146999999999995e-01,-8.170275000000000176e+00,-2.092063000000000117e-01,-1.728045000000000053e+00 +1.613011000000000028e-01,1.369450000000000112e-01,1.287970999999999933e+01,1.363352999999999926e-01,2.233565000000000023e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +3.735538999999999943e-01,2.647622000000000031e-01,4.899891999999999825e+01,2.596048000000000244e-01,6.967119000000000284e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +5.128015000000000212e-01,3.526062999999999836e-01,2.492604000000000042e+01,3.444955000000000100e-01,5.271955000000000169e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-2.720002999999999727e-01,-4.618575999999999793e-01,-2.171891000000000105e+01,-4.409649999999999959e-01,-3.766434999999999977e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +2.645300000000000082e-02,2.572349999999999984e-02,1.285814999999999930e+00,2.572019999999999862e-02,2.719550000000000023e-01 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +-3.234632000000000063e-01,-8.578107000000000371e-01,-4.242853999999999814e+01,-7.355306999999999817e-01,-6.032880999999999716e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-3.234632000000000063e-01,-8.578107000000000371e-01,-4.242853999999999814e+01,-7.355306999999999817e-01,-6.032880999999999716e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +3.785600000000000076e-01,2.895545999999999953e-01,8.739604999999999180e+00,2.861164999999999958e-01,2.489710999999999785e+00 +1.637620999999999938e-01,1.377533999999999981e-01,1.675963000000000136e+01,1.370690999999999993e-01,2.631746000000000141e+00 +-1.861885000000000068e-01,-2.456345000000000056e-01,-1.159948999999999941e+01,-2.425192999999999932e-01,-2.221490999999999882e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-1.023760999999999977e-01,-1.169676000000000049e-01,-6.378002999999999645e+00,-1.166221999999999953e-01,-1.221491000000000104e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +2.645300000000000082e-02,2.572349999999999984e-02,1.285814999999999930e+00,2.572019999999999862e-02,2.719550000000000023e-01 +2.663205000000000156e-01,2.038828000000000029e-01,3.493316000000000088e+01,2.014776000000000067e-01,4.967119000000000284e+00 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +3.931079999999999991e-02,3.749500000000000055e-02,4.023120999999999725e+00,3.748100000000000043e-02,6.317464000000000413e-01 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +-7.081669999999999632e-02,-7.699219999999999675e-02,-3.442229999999999901e+00,-7.690260000000000151e-02,-7.280450000000000532e-01 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +6.952540999999999860e-01,4.122828000000000048e-01,9.119620999999999356e+01,3.940996999999999972e-01,1.296711999999999954e+01 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +2.335180000000000033e-01,1.869186999999999932e-01,1.864613999999999905e+01,1.853841999999999990e-01,3.233565000000000023e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-3.538131999999999944e-01,-8.084837999999999747e-01,-2.204247000000000156e+01,-7.233001999999999487e-01,-4.221491000000000327e+00 +1.237227000000000049e-01,1.098284000000000066e-01,6.013860000000000205e+00,1.095689999999999997e-01,1.271954999999999947e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +6.416374000000000244e-01,3.903728000000000198e-01,8.416331999999999880e+01,3.747579999999999800e-01,1.196711999999999954e+01 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-2.575231000000000048e-01,-3.767781000000000047e-01,-9.766479000000000354e+00,-3.678354999999999819e-01,-2.281231000000000009e+00 +4.807872999999999730e-01,3.187570000000000126e-01,6.306468000000000274e+01,3.099567999999999768e-01,8.967119000000000284e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-1.148520999999999986e-01,-1.305588000000000026e-01,-3.398429999999999840e+00,-1.302020000000000122e-01,-8.766426000000000496e-01 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.023760999999999977e-01,-1.169676000000000049e-01,-6.378002999999999645e+00,-1.166221999999999953e-01,-1.221491000000000104e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-7.758929999999999993e-02,-8.392910000000000648e-02,-1.791260999999999992e+00,-8.384289999999999798e-02,-5.102887999999999868e-01 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +3.735538999999999943e-01,2.647622000000000031e-01,4.899891999999999825e+01,2.596048000000000244e-01,6.967119000000000284e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +1.237227000000000049e-01,1.098284000000000066e-01,6.013860000000000205e+00,1.095689999999999997e-01,1.271954999999999947e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-2.575231000000000048e-01,-3.767781000000000047e-01,-9.766479000000000354e+00,-3.678354999999999819e-01,-2.281231000000000009e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-1.861885000000000068e-01,-2.456345000000000056e-01,-1.159948999999999941e+01,-2.425192999999999932e-01,-2.221490999999999882e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-5.534959999999999880e-02,-5.944060000000000316e-02,-4.419599999999999973e+00,-5.939030000000000004e-02,-7.664353999999999889e-01 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-2.720002999999999727e-01,-4.618575999999999793e-01,-2.171891000000000105e+01,-4.409649999999999959e-01,-3.766434999999999977e+00 +1.237227000000000049e-01,1.098284000000000066e-01,6.013860000000000205e+00,1.095689999999999997e-01,1.271954999999999947e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +2.209924000000000055e-01,1.816222999999999865e-01,1.074191000000000074e+01,1.804622999999999922e-01,2.271955000000000169e+00 +2.259877999999999887e-01,1.803413000000000099e-01,2.312788000000000110e+01,1.788202000000000125e-01,3.631746000000000141e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +3.199371999999999772e-01,2.353204999999999880e-01,4.196603999999999957e+01,2.316601000000000077e-01,5.967119000000000284e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +2.259877999999999887e-01,1.803413000000000099e-01,2.312788000000000110e+01,1.788202000000000125e-01,3.631746000000000141e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-2.458656999999999926e-01,-3.423031000000000268e-01,-7.275072999999999901e+00,-3.361348000000000114e-01,-1.876643000000000061e+00 +6.524870000000000669e-02,6.086860000000000187e-02,4.064979000000000120e+00,6.081969999999999738e-02,7.785092000000000123e-01 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +4.748903999999999903e-01,3.202871999999999941e-01,4.860088999999999970e+01,3.121535999999999755e-01,7.631745999999999697e+00 +-3.704108999999999874e-01,-7.664223000000000008e-01,-1.404771000000000036e+01,-7.028326000000000295e-01,-3.281231000000000009e+00 +2.663205000000000156e-01,2.038828000000000029e-01,3.493316000000000088e+01,2.014776000000000067e-01,4.967119000000000284e+00 +-5.534959999999999880e-02,-5.944060000000000316e-02,-4.419599999999999973e+00,-5.939030000000000004e-02,-7.664353999999999889e-01 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +3.735538999999999943e-01,2.647622000000000031e-01,4.899891999999999825e+01,2.596048000000000244e-01,6.967119000000000284e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-2.458656999999999926e-01,-3.423031000000000268e-01,-7.275072999999999901e+00,-3.361348000000000114e-01,-1.876643000000000061e+00 +-2.291479999999999906e-02,-2.360759999999999942e-02,-2.345133000000000134e+00,-2.360409999999999939e-02,-3.682536000000000143e-01 +3.735538999999999943e-01,2.647622000000000031e-01,4.899891999999999825e+01,2.596048000000000244e-01,6.967119000000000284e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-1.997833999999999999e-01,-2.769826000000000232e-01,-1.595246999999999993e+01,-2.721155000000000102e-01,-2.766434999999999977e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-1.861885000000000068e-01,-2.456345000000000056e-01,-1.159948999999999941e+01,-2.425192999999999932e-01,-2.221490999999999882e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.997833999999999999e-01,-2.769826000000000232e-01,-1.595246999999999993e+01,-2.721155000000000102e-01,-2.766434999999999977e+00 +-1.680863999999999969e-01,-2.110146999999999995e-01,-8.170275000000000176e+00,-2.092063000000000117e-01,-1.728045000000000053e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +1.338654999999999928e+00,6.275671000000000443e-01,1.755908000000000015e+02,5.713285999999999643e-01,2.496712000000000131e+01 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-1.275664999999999993e-01,-1.531653000000000042e-01,-1.018604000000000021e+01,-1.523148000000000002e-01,-1.766435999999999895e+00 +4.843106999999999829e-01,3.336759999999999726e-01,3.017242999999999853e+01,3.260801999999999867e-01,5.778508999999999673e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.275664999999999993e-01,-1.531653000000000042e-01,-1.018604000000000021e+01,-1.523148000000000002e-01,-1.766435999999999895e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-3.174760000000000082e-02,-3.284469999999999751e-02,-1.204015999999999975e+00,-3.283839999999999676e-02,-2.812312000000000145e-01 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +4.155318000000000067e-01,3.011784000000000128e-01,2.019800000000000040e+01,2.960405999999999871e-01,4.271955000000000169e+00 +1.471751000000000031e-01,1.295917000000000041e-01,4.354854999999999698e+00,1.292426999999999881e-01,1.123356999999999939e+00 +-1.023760999999999977e-01,-1.169676000000000049e-01,-6.378002999999999645e+00,-1.166221999999999953e-01,-1.221491000000000104e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +-1.997833999999999999e-01,-2.769826000000000232e-01,-1.595246999999999993e+01,-2.721155000000000102e-01,-2.766434999999999977e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-3.234632000000000063e-01,-8.578107000000000371e-01,-4.242853999999999814e+01,-7.355306999999999817e-01,-6.032880999999999716e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-5.534959999999999880e-02,-5.944060000000000316e-02,-4.419599999999999973e+00,-5.939030000000000004e-02,-7.664353999999999889e-01 +-2.718173999999999868e-01,-4.850342999999999738e-01,-2.781814999999999927e+01,-4.589498000000000189e-01,-4.368254000000000303e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.275664999999999993e-01,-1.531653000000000042e-01,-1.018604000000000021e+01,-1.523148000000000002e-01,-1.766435999999999895e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-1.997833999999999999e-01,-2.769826000000000232e-01,-1.595246999999999993e+01,-2.721155000000000102e-01,-2.766434999999999977e+00 +-2.700007999999999853e-01,-4.362619999999999831e-01,-1.682097999999999871e+01,-4.199611999999999790e-01,-3.221490999999999882e+00 +-1.148520999999999986e-01,-1.305588000000000026e-01,-3.398429999999999840e+00,-1.302020000000000122e-01,-8.766426000000000496e-01 +-5.534959999999999880e-02,-5.944060000000000316e-02,-4.419599999999999973e+00,-5.939030000000000004e-02,-7.664353999999999889e-01 +-2.718173999999999868e-01,-4.850342999999999738e-01,-2.781814999999999927e+01,-4.589498000000000189e-01,-4.368254000000000303e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-2.700007999999999853e-01,-4.362619999999999831e-01,-1.682097999999999871e+01,-4.199611999999999790e-01,-3.221490999999999882e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-1.023760999999999977e-01,-1.169676000000000049e-01,-6.378002999999999645e+00,-1.166221999999999953e-01,-1.221491000000000104e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-2.718173999999999868e-01,-4.850342999999999738e-01,-2.781814999999999927e+01,-4.589498000000000189e-01,-4.368254000000000303e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +2.335180000000000033e-01,1.869186999999999932e-01,1.864613999999999905e+01,1.853841999999999990e-01,3.233565000000000023e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +2.645300000000000082e-02,2.572349999999999984e-02,1.285814999999999930e+00,2.572019999999999862e-02,2.719550000000000023e-01 +-1.997833999999999999e-01,-2.769826000000000232e-01,-1.595246999999999993e+01,-2.721155000000000102e-01,-2.766434999999999977e+00 +-3.234632000000000063e-01,-8.578107000000000371e-01,-4.242853999999999814e+01,-7.355306999999999817e-01,-6.032880999999999716e+00 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +2.209924000000000055e-01,1.816222999999999865e-01,1.074191000000000074e+01,1.804622999999999922e-01,2.271955000000000169e+00 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-2.718173999999999868e-01,-4.850342999999999738e-01,-2.781814999999999927e+01,-4.589498000000000189e-01,-4.368254000000000303e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +2.663205000000000156e-01,2.038828000000000029e-01,3.493316000000000088e+01,2.014776000000000067e-01,4.967119000000000284e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.861885000000000068e-01,-2.456345000000000056e-01,-1.159948999999999941e+01,-2.425192999999999932e-01,-2.221490999999999882e+00 +3.735538999999999943e-01,2.647622000000000031e-01,4.899891999999999825e+01,2.596048000000000244e-01,6.967119000000000284e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +2.663205000000000156e-01,2.038828000000000029e-01,3.493316000000000088e+01,2.014776000000000067e-01,4.967119000000000284e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-7.758929999999999993e-02,-8.392910000000000648e-02,-1.791260999999999992e+00,-8.384289999999999798e-02,-5.102887999999999868e-01 +-1.148520999999999986e-01,-1.305588000000000026e-01,-3.398429999999999840e+00,-1.302020000000000122e-01,-8.766426000000000496e-01 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-1.680863999999999969e-01,-2.110146999999999995e-01,-8.170275000000000176e+00,-2.092063000000000117e-01,-1.728045000000000053e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +2.663205000000000156e-01,2.038828000000000029e-01,3.493316000000000088e+01,2.014776000000000067e-01,4.967119000000000284e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +3.199371999999999772e-01,2.353204999999999880e-01,4.196603999999999957e+01,2.316601000000000077e-01,5.967119000000000284e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.148520999999999986e-01,-1.305588000000000026e-01,-3.398429999999999840e+00,-1.302020000000000122e-01,-8.766426000000000496e-01 +6.524870000000000669e-02,6.086860000000000187e-02,4.064979000000000120e+00,6.081969999999999738e-02,7.785092000000000123e-01 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +1.686729999999999827e-02,1.653570000000000040e-02,1.346835000000000004e+00,1.653469999999999940e-02,2.335645000000000082e-01 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +5.344039999999999901e-01,3.437256000000000200e-01,7.009756000000000142e+01,3.328170999999999768e-01,9.967119000000000284e+00 +-1.446353999999999973e-01,-1.727818999999999883e-01,-5.485247000000000206e+00,-1.718746999999999914e-01,-1.281231000000000009e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-1.680863999999999969e-01,-2.110146999999999995e-01,-8.170275000000000176e+00,-2.092063000000000117e-01,-1.728045000000000053e+00 +-2.653560999999999837e-01,-4.079950999999999994e-01,-1.289832000000000001e+01,-3.956779000000000268e-01,-2.728044999999999831e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-2.720002999999999727e-01,-4.618575999999999793e-01,-2.171891000000000105e+01,-4.409649999999999959e-01,-3.766434999999999977e+00 +6.416374000000000244e-01,3.903728000000000198e-01,8.416331999999999880e+01,3.747579999999999800e-01,1.196711999999999954e+01 +3.069158000000000164e-01,2.400239000000000122e-01,1.163968000000000025e+01,2.376232000000000066e-01,2.718768999999999991e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +1.613011000000000028e-01,1.369450000000000112e-01,1.287970999999999933e+01,1.363352999999999926e-01,2.233565000000000023e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +8.908420000000000227e-02,8.085470000000000157e-02,7.113269999999999982e+00,8.072830000000000283e-02,1.233564000000000105e+00 +2.328735000000000110e-01,1.881362000000000034e-01,1.450796000000000063e+01,1.867167000000000132e-01,2.778509000000000118e+00 +4.807872999999999730e-01,3.187570000000000126e-01,6.306468000000000274e+01,3.099567999999999768e-01,8.967119000000000284e+00 +-7.081669999999999632e-02,-7.699219999999999675e-02,-3.442229999999999901e+00,-7.690260000000000151e-02,-7.280450000000000532e-01 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.446353999999999973e-01,-1.727818999999999883e-01,-5.485247000000000206e+00,-1.718746999999999914e-01,-1.281231000000000009e+00 +-1.997833999999999999e-01,-2.769826000000000232e-01,-1.595246999999999993e+01,-2.721155000000000102e-01,-2.766434999999999977e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-3.174760000000000082e-02,-3.284469999999999751e-02,-1.204015999999999975e+00,-3.283839999999999676e-02,-2.812312000000000145e-01 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +6.524870000000000669e-02,6.086860000000000187e-02,4.064979000000000120e+00,6.081969999999999738e-02,7.785092000000000123e-01 +3.166859000000000202e-01,2.412151999999999907e-01,1.972944999999999993e+01,2.382615999999999901e-01,3.778509000000000118e+00 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-3.234632000000000063e-01,-8.578107000000000371e-01,-4.242853999999999814e+01,-7.355306999999999817e-01,-6.032880999999999716e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +8.908420000000000227e-02,8.085470000000000157e-02,7.113269999999999982e+00,8.072830000000000283e-02,1.233564000000000105e+00 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-1.023760999999999977e-01,-1.169676000000000049e-01,-6.378002999999999645e+00,-1.166221999999999953e-01,-1.221491000000000104e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.275664999999999993e-01,-1.531653000000000042e-01,-1.018604000000000021e+01,-1.523148000000000002e-01,-1.766435999999999895e+00 +3.166859000000000202e-01,2.412151999999999907e-01,1.972944999999999993e+01,2.382615999999999901e-01,3.778509000000000118e+00 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-3.234632000000000063e-01,-8.578107000000000371e-01,-4.242853999999999814e+01,-7.355306999999999817e-01,-6.032880999999999716e+00 +1.588324999999999987e+00,7.818207000000000351e-01,4.699792000000000058e+01,7.199986999999999915e-01,1.212335999999999991e+01 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +4.271706000000000114e-01,2.924977000000000271e-01,5.603179999999999694e+01,2.856206000000000023e-01,7.967119000000000284e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +3.199371999999999772e-01,2.353204999999999880e-01,4.196603999999999957e+01,2.316601000000000077e-01,5.967119000000000284e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +9.633376999999999635e-01,5.109462000000000170e-01,1.263606000000000051e+02,4.782426000000000177e-01,1.796712000000000131e+01 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +3.735538999999999943e-01,2.647622000000000031e-01,4.899891999999999825e+01,2.596048000000000244e-01,6.967119000000000284e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +1.231421000000000099e+00,5.962283999999999917e-01,1.615250000000000057e+02,5.469924000000000452e-01,2.296712000000000131e+01 +1.750072999999999990e+00,7.672717999999999483e-01,1.397412999999999954e+02,6.867594999999999672e-01,2.423356000000000066e+01 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-2.718173999999999868e-01,-4.850342999999999738e-01,-2.781814999999999927e+01,-4.589498000000000189e-01,-4.368254000000000303e+00 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +3.931079999999999991e-02,3.749500000000000055e-02,4.023120999999999725e+00,3.748100000000000043e-02,6.317464000000000413e-01 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +4.271706000000000114e-01,2.924977000000000271e-01,5.603179999999999694e+01,2.856206000000000023e-01,7.967119000000000284e+00 +2.663205000000000156e-01,2.038828000000000029e-01,3.493316000000000088e+01,2.014776000000000067e-01,4.967119000000000284e+00 +-1.446353999999999973e-01,-1.727818999999999883e-01,-5.485247000000000206e+00,-1.718746999999999914e-01,-1.281231000000000009e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +5.344039999999999901e-01,3.437256000000000200e-01,7.009756000000000142e+01,3.328170999999999768e-01,9.967119000000000284e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +6.826594999999999747e-01,4.521999999999999909e-01,1.576018000000000008e+01,4.396634999999999849e-01,4.489710999999999785e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.997833999999999999e-01,-2.769826000000000232e-01,-1.595246999999999993e+01,-2.721155000000000102e-01,-2.766434999999999977e+00 +-3.704108999999999874e-01,-7.664223000000000008e-01,-1.404771000000000036e+01,-7.028326000000000295e-01,-3.281231000000000009e+00 +-1.861885000000000068e-01,-2.456345000000000056e-01,-1.159948999999999941e+01,-2.425192999999999932e-01,-2.221490999999999882e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-3.234632000000000063e-01,-8.578107000000000371e-01,-4.242853999999999814e+01,-7.355306999999999817e-01,-6.032880999999999716e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.275664999999999993e-01,-1.531653000000000042e-01,-1.018604000000000021e+01,-1.523148000000000002e-01,-1.766435999999999895e+00 +3.931079999999999991e-02,3.749500000000000055e-02,4.023120999999999725e+00,3.748100000000000043e-02,6.317464000000000413e-01 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.856369999999999895e-02,-1.897039999999999837e-02,-1.156511999999999984e+00,-1.896890000000000034e-02,-2.214907999999999877e-01 +-1.275664999999999993e-01,-1.531653000000000042e-01,-1.018604000000000021e+01,-1.523148000000000002e-01,-1.766435999999999895e+00 +-5.534959999999999880e-02,-5.944060000000000316e-02,-4.419599999999999973e+00,-5.939030000000000004e-02,-7.664353999999999889e-01 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +6.524870000000000669e-02,6.086860000000000187e-02,4.064979000000000120e+00,6.081969999999999738e-02,7.785092000000000123e-01 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.023760999999999977e-01,-1.169676000000000049e-01,-6.378002999999999645e+00,-1.166221999999999953e-01,-1.221491000000000104e+00 +1.637620999999999938e-01,1.377533999999999981e-01,1.675963000000000136e+01,1.370690999999999993e-01,2.631746000000000141e+00 +2.663205000000000156e-01,2.038828000000000029e-01,3.493316000000000088e+01,2.014776000000000067e-01,4.967119000000000284e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.861885000000000068e-01,-2.456345000000000056e-01,-1.159948999999999941e+01,-2.425192999999999932e-01,-2.221490999999999882e+00 +4.126646999999999954e-01,2.888257000000000185e-01,4.223264000000000351e+01,2.827869000000000077e-01,6.631745999999999697e+00 +-1.861885000000000068e-01,-2.456345000000000056e-01,-1.159948999999999941e+01,-2.425192999999999932e-01,-2.221490999999999882e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +8.024875999999999676e-01,4.537259000000000153e-01,1.052620000000000005e+02,4.300393000000000132e-01,1.496711999999999954e+01 +-2.700007999999999853e-01,-4.362619999999999831e-01,-1.682097999999999871e+01,-4.199611999999999790e-01,-3.221490999999999882e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +8.908420000000000227e-02,8.085470000000000157e-02,7.113269999999999982e+00,8.072830000000000283e-02,1.233564000000000105e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.680863999999999969e-01,-2.110146999999999995e-01,-8.170275000000000176e+00,-2.092063000000000117e-01,-1.728045000000000053e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-1.680863999999999969e-01,-2.110146999999999995e-01,-8.170275000000000176e+00,-2.092063000000000117e-01,-1.728045000000000053e+00 +6.524870000000000669e-02,6.086860000000000187e-02,4.064979000000000120e+00,6.081969999999999738e-02,7.785092000000000123e-01 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +-1.997833999999999999e-01,-2.769826000000000232e-01,-1.595246999999999993e+01,-2.721155000000000102e-01,-2.766434999999999977e+00 +2.259877999999999887e-01,1.803413000000000099e-01,2.312788000000000110e+01,1.788202000000000125e-01,3.631746000000000141e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +8.024875999999999676e-01,4.537259000000000153e-01,1.052620000000000005e+02,4.300393000000000132e-01,1.496711999999999954e+01 +-2.718173999999999868e-01,-4.850342999999999738e-01,-2.781814999999999927e+01,-4.589498000000000189e-01,-4.368254000000000303e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +2.645300000000000082e-02,2.572349999999999984e-02,1.285814999999999930e+00,2.572019999999999862e-02,2.719550000000000023e-01 +-1.148520999999999986e-01,-1.305588000000000026e-01,-3.398429999999999840e+00,-1.302020000000000122e-01,-8.766426000000000496e-01 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-1.680863999999999969e-01,-2.110146999999999995e-01,-8.170275000000000176e+00,-2.092063000000000117e-01,-1.728045000000000053e+00 +4.807872999999999730e-01,3.187570000000000126e-01,6.306468000000000274e+01,3.099567999999999768e-01,8.967119000000000284e+00 +3.199371999999999772e-01,2.353204999999999880e-01,4.196603999999999957e+01,2.316601000000000077e-01,5.967119000000000284e+00 +3.931079999999999991e-02,3.749500000000000055e-02,4.023120999999999725e+00,3.748100000000000043e-02,6.317464000000000413e-01 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-2.700007999999999853e-01,-4.362619999999999831e-01,-1.682097999999999871e+01,-4.199611999999999790e-01,-3.221490999999999882e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-3.234632000000000063e-01,-8.578107000000000371e-01,-4.242853999999999814e+01,-7.355306999999999817e-01,-6.032880999999999716e+00 +-2.458656999999999926e-01,-3.423031000000000268e-01,-7.275072999999999901e+00,-3.361348000000000114e-01,-1.876643000000000061e+00 +-5.534959999999999880e-02,-5.944060000000000316e-02,-4.419599999999999973e+00,-5.939030000000000004e-02,-7.664353999999999889e-01 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +3.199371999999999772e-01,2.353204999999999880e-01,4.196603999999999957e+01,2.316601000000000077e-01,5.967119000000000284e+00 +-1.275664999999999993e-01,-1.531653000000000042e-01,-1.018604000000000021e+01,-1.523148000000000002e-01,-1.766435999999999895e+00 +-1.861885000000000068e-01,-2.456345000000000056e-01,-1.159948999999999941e+01,-2.425192999999999932e-01,-2.221490999999999882e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +4.807872999999999730e-01,3.187570000000000126e-01,6.306468000000000274e+01,3.099567999999999768e-01,8.967119000000000284e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-3.234632000000000063e-01,-8.578107000000000371e-01,-4.242853999999999814e+01,-7.355306999999999817e-01,-6.032880999999999716e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +8.908420000000000227e-02,8.085470000000000157e-02,7.113269999999999982e+00,8.072830000000000283e-02,1.233564000000000105e+00 +-5.534959999999999880e-02,-5.944060000000000316e-02,-4.419599999999999973e+00,-5.939030000000000004e-02,-7.664353999999999889e-01 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.275664999999999993e-01,-1.531653000000000042e-01,-1.018604000000000021e+01,-1.523148000000000002e-01,-1.766435999999999895e+00 +1.471751000000000031e-01,1.295917000000000041e-01,4.354854999999999698e+00,1.292426999999999881e-01,1.123356999999999939e+00 +-2.718173999999999868e-01,-4.850342999999999738e-01,-2.781814999999999927e+01,-4.589498000000000189e-01,-4.368254000000000303e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +-2.095917999999999948e-01,-3.053681999999999785e-01,-2.144988999999999990e+01,-2.982766000000000028e-01,-3.368253999999999859e+00 +-1.275664999999999993e-01,-1.531653000000000042e-01,-1.018604000000000021e+01,-1.523148000000000002e-01,-1.766435999999999895e+00 +-1.856369999999999895e-02,-1.897039999999999837e-02,-1.156511999999999984e+00,-1.896890000000000034e-02,-2.214907999999999877e-01 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-2.700007999999999853e-01,-4.362619999999999831e-01,-1.682097999999999871e+01,-4.199611999999999790e-01,-3.221490999999999882e+00 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.861885000000000068e-01,-2.456345000000000056e-01,-1.159948999999999941e+01,-2.425192999999999932e-01,-2.221490999999999882e+00 +-2.653560999999999837e-01,-4.079950999999999994e-01,-1.289832000000000001e+01,-3.956779000000000268e-01,-2.728044999999999831e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-8.514049999999999396e-02,-9.608629999999999949e-02,-8.713387000000000882e+00,-9.585240000000000427e-02,-1.368254000000000081e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +2.127037999999999984e-01,1.700770000000000060e-01,2.790027999999999864e+01,1.686673999999999951e-01,3.967118999999999840e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-2.700007999999999853e-01,-4.362619999999999831e-01,-1.682097999999999871e+01,-4.199611999999999790e-01,-3.221490999999999882e+00 +3.931079999999999991e-02,3.749500000000000055e-02,4.023120999999999725e+00,3.748100000000000043e-02,6.317464000000000413e-01 +7.488707999999999476e-01,4.333751000000000131e-01,9.822908999999999935e+01,4.124975000000000169e-01,1.396711999999999954e+01 +-1.763000000000000027e-03,-1.767099999999999964e-03,-2.312481999999999871e-01,-1.767099999999999964e-03,-3.288100000000000050e-02 +3.214184999999999959e-01,2.562717999999999940e-01,5.789560999999999957e+00,2.540935000000000277e-01,1.821444000000000063e+00 +1.613011000000000028e-01,1.369450000000000112e-01,1.287970999999999933e+01,1.363352999999999926e-01,2.233565000000000023e+00 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +7.446049999999999891e-02,6.975370000000000181e-02,1.719028000000000000e+00,6.970410000000000494e-02,4.897112000000000132e-01 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +6.712293999999999761e-01,4.405321999999999849e-01,1.986142999999999859e+01,4.277753999999999723e-01,5.123357000000000383e+00 +3.735538999999999943e-01,2.647622000000000031e-01,4.899891999999999825e+01,2.596048000000000244e-01,6.967119000000000284e+00 +-2.291479999999999906e-02,-2.360759999999999942e-02,-2.345133000000000134e+00,-2.360409999999999939e-02,-3.682536000000000143e-01 +-2.291479999999999906e-02,-2.360759999999999942e-02,-2.345133000000000134e+00,-2.360409999999999939e-02,-3.682536000000000143e-01 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.856369999999999895e-02,-1.897039999999999837e-02,-1.156511999999999984e+00,-1.896890000000000034e-02,-2.214907999999999877e-01 +7.488707999999999476e-01,4.333751000000000131e-01,9.822908999999999935e+01,4.124975000000000169e-01,1.396711999999999954e+01 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +1.590871000000000091e-01,1.334141000000000077e-01,2.086739999999999995e+01,1.327278000000000069e-01,2.967118999999999840e+00 +2.663205000000000156e-01,2.038828000000000029e-01,3.493316000000000088e+01,2.014776000000000067e-01,4.967119000000000284e+00 +1.392271000000000036e+00,6.427372999999999559e-01,1.826237000000000137e+02,5.829320000000000057e-01,2.596712000000000131e+01 +-3.174760000000000082e-02,-3.284469999999999751e-02,-1.204015999999999975e+00,-3.283839999999999676e-02,-2.812312000000000145e-01 +-2.291479999999999906e-02,-2.360759999999999942e-02,-2.345133000000000134e+00,-2.360409999999999939e-02,-3.682536000000000143e-01 +-2.698464999999999892e-01,-5.060208000000000483e-01,-3.539565000000000339e+01,-4.741587999999999914e-01,-5.032880999999999716e+00 +-2.718173999999999868e-01,-4.850342999999999738e-01,-2.781814999999999927e+01,-4.589498000000000189e-01,-4.368254000000000303e+00 +-1.680863999999999969e-01,-2.110146999999999995e-01,-8.170275000000000176e+00,-2.092063000000000117e-01,-1.728045000000000053e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +-1.626131000000000104e-01,-2.156214999999999937e-01,-2.132988999999999891e+01,-2.127870000000000039e-01,-3.032881000000000160e+00 +-1.861885000000000068e-01,-2.456345000000000056e-01,-1.159948999999999941e+01,-2.425192999999999932e-01,-2.221490999999999882e+00 +-1.446353999999999973e-01,-1.727818999999999883e-01,-5.485247000000000206e+00,-1.718746999999999914e-01,-1.281231000000000009e+00 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +1.054704000000000058e-01,9.323439999999999506e-02,1.383450999999999986e+01,9.299849999999999783e-02,1.967119000000000062e+00 +-2.653560999999999837e-01,-4.079950999999999994e-01,-1.289832000000000001e+01,-3.956779000000000268e-01,-2.728044999999999831e+00 +1.686729999999999827e-02,1.653570000000000040e-02,1.346835000000000004e+00,1.653469999999999940e-02,2.335645000000000082e-01 +-2.291479999999999906e-02,-2.360759999999999942e-02,-2.345133000000000134e+00,-2.360409999999999939e-02,-3.682536000000000143e-01 +-1.861885000000000068e-01,-2.456345000000000056e-01,-1.159948999999999941e+01,-2.425192999999999932e-01,-2.221490999999999882e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-3.234632000000000063e-01,-8.578107000000000371e-01,-4.242853999999999814e+01,-7.355306999999999817e-01,-6.032880999999999716e+00 +5.185370000000000257e-02,4.861850000000000199e-02,6.801632999999999818e+00,4.858490000000000031e-02,9.671189999999999509e-01 +-1.473660999999999999e-01,-1.859422000000000019e-01,-1.508164000000000016e+01,-1.842772000000000021e-01,-2.368253999999999859e+00 +-5.537969999999999698e-02,-5.995720000000000216e-02,-7.264128999999999614e+00,-5.989420000000000160e-02,-1.032880999999999938e+00 +-1.089963999999999933e-01,-1.292687999999999893e-01,-1.429701000000000022e+01,-1.286440000000000083e-01,-2.032881000000000160e+00 +1.616149999999999878e-02,1.591029999999999875e-02,4.782123999999999819e-01,1.590969999999999884e-02,1.233574000000000059e-01 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +2.645300000000000082e-02,2.572349999999999984e-02,1.285814999999999930e+00,2.572019999999999862e-02,2.719550000000000023e-01 +-2.162297999999999998e-01,-3.310713000000000128e-01,-2.836277000000000115e+01,-3.212660999999999989e-01,-4.032880999999999716e+00 +-2.309354999999999880e-01,-3.070077999999999974e-01,-5.424498999999999960e+00,-3.028983000000000092e-01,-1.534659999999999913e+00 +-7.324550000000000505e-02,-7.990869999999999918e-02,-3.622403999999999957e+00,-7.980790000000000106e-02,-7.608702000000000520e-01 +-1.872730999999999979e-01,-2.479215999999999920e-01,-1.187062000000000062e+01,-2.446991000000000027e-01,-2.257741999999999916e+00 +-1.464628000000000041e-01,-1.755713000000000135e-01,-5.651463999999999821e+00,-1.746134000000000019e-01,-1.310953999999999953e+00 +2.997171000000000141e-01,2.283850000000000047e-01,2.434960999999999842e+01,2.255968999999999891e-01,4.193529999999999980e+00 +1.300315000000000110e+00,6.395863000000000520e-01,1.056401999999999930e+02,5.889130000000000198e-01,1.819352999999999909e+01 +6.570736000000000354e-01,4.088127999999999762e-01,5.338195000000000334e+01,3.938633999999999746e-01,9.193530000000000868e+00 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-1.872730999999999979e-01,-2.479215999999999920e-01,-1.187062000000000062e+01,-2.446991000000000027e-01,-2.257741999999999916e+00 +-2.702202000000000215e-01,-4.381294000000000022e-01,-1.712836000000000070e+01,-4.215282000000000195e-01,-3.257741999999999916e+00 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +7.285449999999999982e-01,4.388867000000000185e-01,5.918842999999999677e+01,4.206465999999999816e-01,1.019353000000000087e+01 +-2.468170000000000086e-01,-3.448183000000000220e-01,-7.430641999999999747e+00,-3.384757999999999933e-01,-1.903556999999999944e+00 +1.445152000000000103e-01,1.252460999999999991e-01,9.160344000000000264e+00,1.248196000000000028e-01,1.742258000000000084e+00 +7.698180000000000300e-02,7.148079999999999712e-02,2.970444000000000084e+00,7.141540000000000388e-02,6.890456999999999832e-01 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +1.445152000000000103e-01,1.252460999999999991e-01,9.160344000000000264e+00,1.248196000000000028e-01,1.742258000000000084e+00 +-8.045549999999999924e-02,-8.733109999999999484e-02,-1.889839000000000047e+00,-8.723329999999999973e-02,-5.346594999999999542e-01 +6.286910999999999472e-01,4.369408000000000181e-01,8.989627999999999730e+00,4.274471000000000243e-01,3.101843999999999824e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +3.104094000000000020e-01,2.372537999999999869e-01,1.967583000000000126e+01,2.344215000000000049e-01,3.742258000000000084e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +2.064210000000000003e-02,2.028869999999999979e-02,2.951598999999999751e-01,2.028759999999999938e-02,1.018440000000000040e-01 +3.711883999999999739e-01,2.696834000000000175e-01,3.015607999999999933e+01,2.651503000000000054e-01,5.193529999999999980e+00 +-1.872730999999999979e-01,-2.479215999999999920e-01,-1.187062000000000062e+01,-2.446991000000000027e-01,-2.257741999999999916e+00 +7.002440000000000053e-02,6.582540000000000613e-02,1.644819999999999949e+00,6.578340000000000576e-02,4.653404999999999903e-01 +-2.657764000000000237e-01,-4.100574000000000163e-01,-1.314414000000000016e+01,-3.974823000000000106e-01,-2.760870000000000157e+00 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +-2.096791000000000071e-01,-2.652512000000000203e-01,-3.842745999999999995e+00,-2.628233999999999848e-01,-1.200623999999999914e+00 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-1.695109999999999950e-01,-2.135405999999999971e-01,-8.383274000000000115e+00,-2.116547000000000012e-01,-1.760869999999999935e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-2.309354999999999880e-01,-3.070077999999999974e-01,-5.424498999999999960e+00,-3.028983000000000092e-01,-1.534659999999999913e+00 +-8.045549999999999924e-02,-8.733109999999999484e-02,-1.889839000000000047e+00,-8.723329999999999973e-02,-5.346594999999999542e-01 +2.282457999999999987e-01,1.833316999999999863e-01,1.854314000000000107e+01,1.818726999999999983e-01,3.193529999999999980e+00 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +1.192853999999999998e-01,1.062562999999999980e-01,5.899335999999999913e+00,1.060197999999999974e-01,1.239130000000000065e+00 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +2.301989999999999939e-02,2.246269999999999864e-02,1.138465999999999978e+00,2.246050000000000130e-02,2.391298000000000035e-01 +1.421659000000000117e-01,1.256146999999999958e-01,4.280027999999999722e+00,1.252946000000000060e-01,1.096443000000000056e+00 +2.282457999999999987e-01,1.833316999999999863e-01,1.854314000000000107e+01,1.818726999999999983e-01,3.193529999999999980e+00 +-3.814154000000000155e-01,-7.170872999999999831e-01,-8.959158999999999651e+00,-6.715801000000000132e-01,-2.534660000000000135e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +8.838129999999999598e-02,8.266170000000000462e-02,9.860126000000000168e-01,8.260000000000000675e-02,3.757281000000000093e-01 +-3.503730000000000039e-02,-3.618989999999999707e-02,-6.421223000000000347e-01,-3.618360000000000326e-02,-2.006240999999999997e-01 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +2.282457999999999987e-01,1.833316999999999863e-01,1.854314000000000107e+01,1.818726999999999983e-01,3.193529999999999980e+00 +-1.171559999999999963e-01,-1.336393999999999915e-01,-3.527085000000000026e+00,-1.332541999999999893e-01,-9.035568000000000488e-01 +4.888877999999999835e-01,3.570679999999999965e-01,8.959749999999999659e+00,3.512596000000000052e-01,2.799376000000000086e+00 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +2.064210000000000003e-02,2.028869999999999979e-02,2.951598999999999751e-01,2.028759999999999938e-02,1.018440000000000040e-01 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +1.250489999999999935e-02,1.235319999999999994e-02,3.764715000000000145e-01,1.235289999999999999e-02,9.644320000000000670e-02 +-8.045549999999999924e-02,-8.733109999999999484e-02,-1.889839000000000047e+00,-8.723329999999999973e-02,-5.346594999999999542e-01 +-3.699073999999999973e-01,-7.680327999999999600e-01,-1.427336999999999989e+01,-7.037377000000000216e-01,-3.310954000000000175e+00 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +6.570736000000000354e-01,4.088127999999999762e-01,5.338195000000000334e+01,3.938633999999999746e-01,9.193530000000000868e+00 +-1.695109999999999950e-01,-2.135405999999999971e-01,-8.383274000000000115e+00,-2.116547000000000012e-01,-1.760869999999999935e+00 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +-8.045549999999999924e-02,-8.733109999999999484e-02,-1.889839000000000047e+00,-8.723329999999999973e-02,-5.346594999999999542e-01 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-1.695109999999999950e-01,-2.135405999999999971e-01,-8.383274000000000115e+00,-2.116547000000000012e-01,-1.760869999999999935e+00 +8.313741999999999521e-01,5.349441000000000335e-01,1.188777999999999935e+01,5.179964000000000235e-01,4.101843999999999824e+00 +-1.872730999999999979e-01,-2.479215999999999920e-01,-1.187062000000000062e+01,-2.446991000000000027e-01,-2.257741999999999916e+00 +-1.464628000000000041e-01,-1.755713000000000135e-01,-5.651463999999999821e+00,-1.746134000000000019e-01,-1.310953999999999953e+00 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +-1.464628000000000041e-01,-1.755713000000000135e-01,-5.651463999999999821e+00,-1.746134000000000019e-01,-1.310953999999999953e+00 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-2.657764000000000237e-01,-4.100574000000000163e-01,-1.314414000000000016e+01,-3.974823000000000106e-01,-2.760870000000000157e+00 +-1.464628000000000041e-01,-1.755713000000000135e-01,-5.651463999999999821e+00,-1.746134000000000019e-01,-1.310953999999999953e+00 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +2.282457999999999987e-01,1.833316999999999863e-01,1.854314000000000107e+01,1.818726999999999983e-01,3.193529999999999980e+00 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +2.301989999999999939e-02,2.246269999999999864e-02,1.138465999999999978e+00,2.246050000000000130e-02,2.391298000000000035e-01 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +3.933564999999999978e-01,2.852238999999999747e-01,2.493356999999999957e+01,2.803706999999999727e-01,4.742257999999999640e+00 +1.445152000000000103e-01,1.252460999999999991e-01,9.160344000000000264e+00,1.248196000000000028e-01,1.742258000000000084e+00 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-8.045549999999999924e-02,-8.733109999999999484e-02,-1.889839000000000047e+00,-8.723329999999999973e-02,-5.346594999999999542e-01 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +7.002440000000000053e-02,6.582540000000000613e-02,1.644819999999999949e+00,6.578340000000000576e-02,4.653404999999999903e-01 +2.282457999999999987e-01,1.833316999999999863e-01,1.854314000000000107e+01,1.818726999999999983e-01,3.193529999999999980e+00 +-1.464628000000000041e-01,-1.755713000000000135e-01,-5.651463999999999821e+00,-1.746134000000000019e-01,-1.310953999999999953e+00 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +-2.702202000000000215e-01,-4.381294000000000022e-01,-1.712836000000000070e+01,-4.215282000000000195e-01,-3.257741999999999916e+00 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +1.396043999999999896e-01,1.248781000000000058e-01,2.558501999999999832e+00,1.246199000000000057e-01,7.993759000000000281e-01 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-3.503730000000000039e-02,-3.618989999999999707e-02,-6.421223000000000347e-01,-3.618360000000000326e-02,-2.006240999999999997e-01 +-1.171559999999999963e-01,-1.336393999999999915e-01,-3.527085000000000026e+00,-1.332541999999999893e-01,-9.035568000000000488e-01 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-1.043260000000000021e-01,-1.196085999999999955e-01,-6.612881999999999927e+00,-1.192368000000000039e-01,-1.257741999999999916e+00 +7.002440000000000053e-02,6.582540000000000613e-02,1.644819999999999949e+00,6.578340000000000576e-02,4.653404999999999903e-01 +-2.096791000000000071e-01,-2.652512000000000203e-01,-3.842745999999999995e+00,-2.628233999999999848e-01,-1.200623999999999914e+00 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +-3.474050000000000055e-02,-3.606560000000000321e-02,-1.340510000000000090e+00,-3.605719999999999759e-02,-3.109543000000000168e-01 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +2.282457999999999987e-01,1.833316999999999863e-01,1.854314000000000107e+01,1.818726999999999983e-01,3.193529999999999980e+00 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +1.396043999999999896e-01,1.248781000000000058e-01,2.558501999999999832e+00,1.246199000000000057e-01,7.993759000000000281e-01 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +3.711883999999999739e-01,2.696834000000000175e-01,3.015607999999999933e+01,2.651503000000000054e-01,5.193529999999999980e+00 +7.698180000000000300e-02,7.148079999999999712e-02,2.970444000000000084e+00,7.141540000000000388e-02,6.890456999999999832e-01 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-1.171559999999999963e-01,-1.336393999999999915e-01,-3.527085000000000026e+00,-1.332541999999999893e-01,-9.035568000000000488e-01 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +-1.464628000000000041e-01,-1.755713000000000135e-01,-5.651463999999999821e+00,-1.746134000000000019e-01,-1.310953999999999953e+00 +1.887041000000000135e-01,1.599530000000000118e-01,7.281399000000000399e+00,1.592269000000000045e-01,1.689046000000000047e+00 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +1.192853999999999998e-01,1.062562999999999980e-01,5.899335999999999913e+00,1.060197999999999974e-01,1.239130000000000065e+00 +1.250489999999999935e-02,1.235319999999999994e-02,3.764715000000000145e-01,1.235289999999999999e-02,9.644320000000000670e-02 +1.250489999999999935e-02,1.235319999999999994e-02,3.764715000000000145e-01,1.235289999999999999e-02,9.644320000000000670e-02 +-3.620419000000000276e-01,-7.899543999999999455e-01,-1.790501000000000076e+01,-7.151566999999999785e-01,-3.760870000000000157e+00 +4.014878000000000058e-01,2.998151000000000010e-01,1.208713999999999977e+01,2.955962999999999785e-01,3.096442999999999834e+00 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-1.872730999999999979e-01,-2.479215999999999920e-01,-1.187062000000000062e+01,-2.446991000000000027e-01,-2.257741999999999916e+00 +-8.045549999999999924e-02,-8.733109999999999484e-02,-1.889839000000000047e+00,-8.723329999999999973e-02,-5.346594999999999542e-01 +2.997171000000000141e-01,2.283850000000000047e-01,2.434960999999999842e+01,2.255968999999999891e-01,4.193529999999999980e+00 +-8.045549999999999924e-02,-8.733109999999999484e-02,-1.889839000000000047e+00,-8.723329999999999973e-02,-5.346594999999999542e-01 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +-3.847240000000000104e-01,-6.549530000000000074e-01,-5.501152000000000264e+00,-6.250449000000000144e-01,-1.898155999999999954e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +5.141310000000000047e-01,3.436040000000000205e-01,4.176901999999999759e+01,3.344771000000000272e-01,7.193529999999999980e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +-7.324550000000000505e-02,-7.990869999999999918e-02,-3.622403999999999957e+00,-7.980790000000000106e-02,-7.608702000000000520e-01 +-3.620419000000000276e-01,-7.899543999999999455e-01,-1.790501000000000076e+01,-7.151566999999999785e-01,-3.760870000000000157e+00 +7.285449999999999982e-01,4.388867000000000185e-01,5.918842999999999677e+01,4.206465999999999816e-01,1.019353000000000087e+01 +-3.847240000000000104e-01,-6.549530000000000074e-01,-5.501152000000000264e+00,-6.250449000000000144e-01,-1.898155999999999954e+00 +3.711883999999999739e-01,2.696834000000000175e-01,3.015607999999999933e+01,2.651503000000000054e-01,5.193529999999999980e+00 +-2.657764000000000237e-01,-4.100574000000000163e-01,-1.314414000000000016e+01,-3.974823000000000106e-01,-2.760870000000000157e+00 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +-3.435247000000000162e-01,-8.277782999999999669e-01,-2.790861999999999910e+01,-7.299666999999999684e-01,-4.806470000000000020e+00 +-1.464628000000000041e-01,-1.755713000000000135e-01,-5.651463999999999821e+00,-1.746134000000000019e-01,-1.310953999999999953e+00 +-3.503730000000000039e-02,-3.618989999999999707e-02,-6.421223000000000347e-01,-3.618360000000000326e-02,-2.006240999999999997e-01 +3.711883999999999739e-01,2.696834000000000175e-01,3.015607999999999933e+01,2.651503000000000054e-01,5.193529999999999980e+00 +-3.620419000000000276e-01,-7.899543999999999455e-01,-1.790501000000000076e+01,-7.151566999999999785e-01,-3.760870000000000157e+00 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +4.260081000000000007e-01,3.243348999999999815e-01,6.091472000000000442e+00,3.203501999999999739e-01,2.101843999999999824e+00 +4.260081000000000007e-01,3.243348999999999815e-01,6.091472000000000442e+00,3.203501999999999739e-01,2.101843999999999824e+00 +4.763035999999999937e-01,3.292964999999999920e-01,3.019131000000000142e+01,3.219368000000000229e-01,5.742257999999999640e+00 +-2.468170000000000086e-01,-3.448183000000000220e-01,-7.430641999999999747e+00,-3.384757999999999933e-01,-1.903556999999999944e+00 +3.711883999999999739e-01,2.696834000000000175e-01,3.015607999999999933e+01,2.651503000000000054e-01,5.193529999999999980e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-1.872730999999999979e-01,-2.479215999999999920e-01,-1.187062000000000062e+01,-2.446991000000000027e-01,-2.257741999999999916e+00 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +1.421659000000000117e-01,1.256146999999999958e-01,4.280027999999999722e+00,1.252946000000000060e-01,1.096443000000000056e+00 +6.570736000000000354e-01,4.088127999999999762e-01,5.338195000000000334e+01,3.938633999999999746e-01,9.193530000000000868e+00 +-2.137889999999999929e-02,-2.192300000000000151e-02,-1.355140000000000011e+00,-2.192070000000000130e-02,-2.577418000000000209e-01 +-2.657764000000000237e-01,-4.100574000000000163e-01,-1.314414000000000016e+01,-3.974823000000000106e-01,-2.760870000000000157e+00 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +-1.820410000000000084e-01,-2.191365999999999870e-01,-2.602996000000000087e+00,-2.178854000000000068e-01,-8.981559999999999544e-01 +-1.043260000000000021e-01,-1.196085999999999955e-01,-6.612881999999999927e+00,-1.192368000000000039e-01,-1.257741999999999916e+00 +2.997171000000000141e-01,2.283850000000000047e-01,2.434960999999999842e+01,2.255968999999999891e-01,4.193529999999999980e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-3.474050000000000055e-02,-3.606560000000000321e-02,-1.340510000000000090e+00,-3.605719999999999759e-02,-3.109543000000000168e-01 +-2.702202000000000215e-01,-4.381294000000000022e-01,-1.712836000000000070e+01,-4.215282000000000195e-01,-3.257741999999999916e+00 +7.285449999999999982e-01,4.388867000000000185e-01,5.918842999999999677e+01,4.206465999999999816e-01,1.019353000000000087e+01 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-1.820410000000000084e-01,-2.191365999999999870e-01,-2.602996000000000087e+00,-2.178854000000000068e-01,-8.981559999999999544e-01 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +-8.045549999999999924e-02,-8.733109999999999484e-02,-1.889839000000000047e+00,-8.723329999999999973e-02,-5.346594999999999542e-01 +-3.764779999999999793e-01,-7.438232999999999651e-01,-1.133419999999999916e+01,-6.893046000000000451e-01,-2.903557000000000166e+00 +-1.872730999999999979e-01,-2.479215999999999920e-01,-1.187062000000000062e+01,-2.446991000000000027e-01,-2.257741999999999916e+00 +2.997171000000000141e-01,2.283850000000000047e-01,2.434960999999999842e+01,2.255968999999999891e-01,4.193529999999999980e+00 +1.396043999999999896e-01,1.248781000000000058e-01,2.558501999999999832e+00,1.246199000000000057e-01,7.993759000000000281e-01 +-1.820410000000000084e-01,-2.191365999999999870e-01,-2.602996000000000087e+00,-2.178854000000000068e-01,-8.981559999999999544e-01 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +7.698180000000000300e-02,7.148079999999999712e-02,2.970444000000000084e+00,7.141540000000000388e-02,6.890456999999999832e-01 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +2.205042999999999864e-01,1.853983999999999910e-01,5.179479999999999862e+00,1.844724000000000086e-01,1.465340000000000087e+00 +-2.702202000000000215e-01,-4.381294000000000022e-01,-1.712836000000000070e+01,-4.215282000000000195e-01,-3.257741999999999916e+00 +-1.695109999999999950e-01,-2.135405999999999971e-01,-8.383274000000000115e+00,-2.116547000000000012e-01,-1.760869999999999935e+00 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +-8.045549999999999924e-02,-8.733109999999999484e-02,-1.889839000000000047e+00,-8.723329999999999973e-02,-5.346594999999999542e-01 +5.311487999999999765e-01,3.710235000000000061e-01,1.599070000000000036e+01,3.631816999999999962e-01,4.096442999999999834e+00 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +4.888877999999999835e-01,3.570679999999999965e-01,8.959749999999999659e+00,3.512596000000000052e-01,2.799376000000000086e+00 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +5.214642000000000444e-01,3.705520999999999954e-01,1.224879999999999924e+01,3.634404999999999997e-01,3.465339999999999865e+00 +-2.702202000000000215e-01,-4.381294000000000022e-01,-1.712836000000000070e+01,-4.215282000000000195e-01,-3.257741999999999916e+00 +-1.695109999999999950e-01,-2.135405999999999971e-01,-8.383274000000000115e+00,-2.116547000000000012e-01,-1.760869999999999935e+00 +-1.695109999999999950e-01,-2.135405999999999971e-01,-8.383274000000000115e+00,-2.116547000000000012e-01,-1.760869999999999935e+00 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +-1.820410000000000084e-01,-2.191365999999999870e-01,-2.602996000000000087e+00,-2.178854000000000068e-01,-8.981559999999999544e-01 +-3.503730000000000039e-02,-3.618989999999999707e-02,-6.421223000000000347e-01,-3.618360000000000326e-02,-2.006240999999999997e-01 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +2.282457999999999987e-01,1.833316999999999863e-01,1.854314000000000107e+01,1.818726999999999983e-01,3.193529999999999980e+00 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +-1.872730999999999979e-01,-2.479215999999999920e-01,-1.187062000000000062e+01,-2.446991000000000027e-01,-2.257741999999999916e+00 +-2.702202000000000215e-01,-4.381294000000000022e-01,-1.712836000000000070e+01,-4.215282000000000195e-01,-3.257741999999999916e+00 +2.997171000000000141e-01,2.283850000000000047e-01,2.434960999999999842e+01,2.255968999999999891e-01,4.193529999999999980e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +2.301989999999999939e-02,2.246269999999999864e-02,1.138465999999999978e+00,2.246050000000000130e-02,2.391298000000000035e-01 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +7.698180000000000300e-02,7.148079999999999712e-02,2.970444000000000084e+00,7.141540000000000388e-02,6.890456999999999832e-01 +1.445152000000000103e-01,1.252460999999999991e-01,9.160344000000000264e+00,1.248196000000000028e-01,1.742258000000000084e+00 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +1.887041000000000135e-01,1.599530000000000118e-01,7.281399000000000399e+00,1.592269000000000045e-01,1.689046000000000047e+00 +-3.699073999999999973e-01,-7.680327999999999600e-01,-1.427336999999999989e+01,-7.037377000000000216e-01,-3.310954000000000175e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +6.719441999999999915e-01,4.466444999999999999e-01,1.578345999999999982e+01,4.344651999999999958e-01,4.465340999999999561e+00 +-1.695109999999999950e-01,-2.135405999999999971e-01,-8.383274000000000115e+00,-2.116547000000000012e-01,-1.760869999999999935e+00 +-2.309354999999999880e-01,-3.070077999999999974e-01,-5.424498999999999960e+00,-3.028983000000000092e-01,-1.534659999999999913e+00 +3.118162999999999907e-01,2.405453999999999926e-01,1.542107999999999990e+01,2.378666000000000114e-01,3.239129999999999843e+00 +3.004263999999999823e-01,2.357630000000000003e-01,1.159234999999999971e+01,2.334703999999999946e-01,2.689045999999999825e+00 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +-1.171559999999999963e-01,-1.336393999999999915e-01,-3.527085000000000026e+00,-1.332541999999999893e-01,-9.035568000000000488e-01 +-3.435247000000000162e-01,-8.277782999999999669e-01,-2.790861999999999910e+01,-7.299666999999999684e-01,-4.806470000000000020e+00 +-7.324550000000000505e-02,-7.990869999999999918e-02,-3.622403999999999957e+00,-7.980790000000000106e-02,-7.608702000000000520e-01 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +5.141310000000000047e-01,3.436040000000000205e-01,4.176901999999999759e+01,3.344771000000000272e-01,7.193529999999999980e+00 +-1.464628000000000041e-01,-1.755713000000000135e-01,-5.651463999999999821e+00,-1.746134000000000019e-01,-1.310953999999999953e+00 +1.250489999999999935e-02,1.235319999999999994e-02,3.764715000000000145e-01,1.235289999999999999e-02,9.644320000000000670e-02 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +-2.657764000000000237e-01,-4.100574000000000163e-01,-1.314414000000000016e+01,-3.974823000000000106e-01,-2.760870000000000157e+00 +-1.695109999999999950e-01,-2.135405999999999971e-01,-8.383274000000000115e+00,-2.116547000000000012e-01,-1.760869999999999935e+00 +7.002440000000000053e-02,6.582540000000000613e-02,1.644819999999999949e+00,6.578340000000000576e-02,4.653404999999999903e-01 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +-1.872730999999999979e-01,-2.479215999999999920e-01,-1.187062000000000062e+01,-2.446991000000000027e-01,-2.257741999999999916e+00 +3.709842999999999891e-01,2.847433999999999799e-01,8.714138999999999413e+00,2.814483999999999875e-01,2.465339999999999865e+00 +-2.096791000000000071e-01,-2.652512000000000203e-01,-3.842745999999999995e+00,-2.628233999999999848e-01,-1.200623999999999914e+00 +2.205042999999999864e-01,1.853983999999999910e-01,5.179479999999999862e+00,1.844724000000000086e-01,1.465340000000000087e+00 +-3.764779999999999793e-01,-7.438232999999999651e-01,-1.133419999999999916e+01,-6.893046000000000451e-01,-2.903557000000000166e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-3.474050000000000055e-02,-3.606560000000000321e-02,-1.340510000000000090e+00,-3.605719999999999759e-02,-3.109543000000000168e-01 +-1.695109999999999950e-01,-2.135405999999999971e-01,-8.383274000000000115e+00,-2.116547000000000012e-01,-1.760869999999999935e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +-2.468170000000000086e-01,-3.448183000000000220e-01,-7.430641999999999747e+00,-3.384757999999999933e-01,-1.903556999999999944e+00 +-1.695109999999999950e-01,-2.135405999999999971e-01,-8.383274000000000115e+00,-2.116547000000000012e-01,-1.760869999999999935e+00 +-3.847240000000000104e-01,-6.549530000000000074e-01,-5.501152000000000264e+00,-6.250449000000000144e-01,-1.898155999999999954e+00 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-3.620419000000000276e-01,-7.899543999999999455e-01,-1.790501000000000076e+01,-7.151566999999999785e-01,-3.760870000000000157e+00 +-1.043260000000000021e-01,-1.196085999999999955e-01,-6.612881999999999927e+00,-1.192368000000000039e-01,-1.257741999999999916e+00 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +1.250489999999999935e-02,1.235319999999999994e-02,3.764715000000000145e-01,1.235289999999999999e-02,9.644320000000000670e-02 +2.274623000000000062e-01,1.844012999999999902e-01,1.441808999999999941e+01,1.830546000000000118e-01,2.742258000000000084e+00 +-1.695109999999999950e-01,-2.135405999999999971e-01,-8.383274000000000115e+00,-2.116547000000000012e-01,-1.760869999999999935e+00 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +2.301989999999999939e-02,2.246269999999999864e-02,1.138465999999999978e+00,2.246050000000000130e-02,2.391298000000000035e-01 +-3.764779999999999793e-01,-7.438232999999999651e-01,-1.133419999999999916e+01,-6.893046000000000451e-01,-2.903557000000000166e+00 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +-2.657764000000000237e-01,-4.100574000000000163e-01,-1.314414000000000016e+01,-3.974823000000000106e-01,-2.760870000000000157e+00 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +-2.702202000000000215e-01,-4.381294000000000022e-01,-1.712836000000000070e+01,-4.215282000000000195e-01,-3.257741999999999916e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-1.820410000000000084e-01,-2.191365999999999870e-01,-2.602996000000000087e+00,-2.178854000000000068e-01,-8.981559999999999544e-01 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-1.043260000000000021e-01,-1.196085999999999955e-01,-6.612881999999999927e+00,-1.192368000000000039e-01,-1.257741999999999916e+00 +-1.171559999999999963e-01,-1.336393999999999915e-01,-3.527085000000000026e+00,-1.332541999999999893e-01,-9.035568000000000488e-01 +-1.171559999999999963e-01,-1.336393999999999915e-01,-3.527085000000000026e+00,-1.332541999999999893e-01,-9.035568000000000488e-01 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +-1.872730999999999979e-01,-2.479215999999999920e-01,-1.187062000000000062e+01,-2.446991000000000027e-01,-2.257741999999999916e+00 +-8.045549999999999924e-02,-8.733109999999999484e-02,-1.889839000000000047e+00,-8.723329999999999973e-02,-5.346594999999999542e-01 +1.157372999999999985e+00,5.945905999999999691e-01,9.402724000000000615e+01,5.528035999999999506e-01,1.619352999999999909e+01 +-7.324550000000000505e-02,-7.990869999999999918e-02,-3.622403999999999957e+00,-7.980790000000000106e-02,-7.608702000000000520e-01 +-1.872730999999999979e-01,-2.479215999999999920e-01,-1.187062000000000062e+01,-2.446991000000000027e-01,-2.257741999999999916e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +1.250489999999999935e-02,1.235319999999999994e-02,3.764715000000000145e-01,1.235289999999999999e-02,9.644320000000000670e-02 +-1.464628000000000041e-01,-1.755713000000000135e-01,-5.651463999999999821e+00,-1.746134000000000019e-01,-1.310953999999999953e+00 +1.657672000000000034e+00,7.417468000000000394e-01,1.346725000000000136e+02,6.674476000000000298e-01,2.319352999999999909e+01 +-1.872730999999999979e-01,-2.479215999999999920e-01,-1.187062000000000062e+01,-2.446991000000000027e-01,-2.257741999999999916e+00 +-2.468170000000000086e-01,-3.448183000000000220e-01,-7.430641999999999747e+00,-3.384757999999999933e-01,-1.903556999999999944e+00 +5.214642000000000444e-01,3.705520999999999954e-01,1.224879999999999924e+01,3.634404999999999997e-01,3.465339999999999865e+00 +-1.043260000000000021e-01,-1.196085999999999955e-01,-6.612881999999999927e+00,-1.192368000000000039e-01,-1.257741999999999916e+00 +4.260081000000000007e-01,3.243348999999999815e-01,6.091472000000000442e+00,3.203501999999999739e-01,2.101843999999999824e+00 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +3.709842999999999891e-01,2.847433999999999799e-01,8.714138999999999413e+00,2.814483999999999875e-01,2.465339999999999865e+00 +-3.620419000000000276e-01,-7.899543999999999455e-01,-1.790501000000000076e+01,-7.151566999999999785e-01,-3.760870000000000157e+00 +-3.474050000000000055e-02,-3.606560000000000321e-02,-1.340510000000000090e+00,-3.605719999999999759e-02,-3.109543000000000168e-01 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +9.429589000000000443e-01,5.212812000000000001e-01,7.660783000000000698e+01,4.919637000000000038e-01,1.319353000000000087e+01 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +4.014878000000000058e-01,2.998151000000000010e-01,1.208713999999999977e+01,2.955962999999999785e-01,3.096442999999999834e+00 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +1.887041000000000135e-01,1.599530000000000118e-01,7.281399000000000399e+00,1.592269000000000045e-01,1.689046000000000047e+00 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +-2.137889999999999929e-02,-2.192300000000000151e-02,-1.355140000000000011e+00,-2.192070000000000130e-02,-2.577418000000000209e-01 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +2.282457999999999987e-01,1.833316999999999863e-01,1.854314000000000107e+01,1.818726999999999983e-01,3.193529999999999980e+00 +-1.872730999999999979e-01,-2.479215999999999920e-01,-1.187062000000000062e+01,-2.446991000000000027e-01,-2.257741999999999916e+00 +-1.043260000000000021e-01,-1.196085999999999955e-01,-6.612881999999999927e+00,-1.192368000000000039e-01,-1.257741999999999916e+00 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +-2.702202000000000215e-01,-4.381294000000000022e-01,-1.712836000000000070e+01,-4.215282000000000195e-01,-3.257741999999999916e+00 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +5.141310000000000047e-01,3.436040000000000205e-01,4.176901999999999759e+01,3.344771000000000272e-01,7.193529999999999980e+00 +-1.043260000000000021e-01,-1.196085999999999955e-01,-6.612881999999999927e+00,-1.192368000000000039e-01,-1.257741999999999916e+00 +-3.474050000000000055e-02,-3.606560000000000321e-02,-1.340510000000000090e+00,-3.605719999999999759e-02,-3.109543000000000168e-01 +2.282457999999999987e-01,1.833316999999999863e-01,1.854314000000000107e+01,1.818726999999999983e-01,3.193529999999999980e+00 +-2.702202000000000215e-01,-4.381294000000000022e-01,-1.712836000000000070e+01,-4.215282000000000195e-01,-3.257741999999999916e+00 +2.282457999999999987e-01,1.833316999999999863e-01,1.854314000000000107e+01,1.818726999999999983e-01,3.193529999999999980e+00 +-1.872730999999999979e-01,-2.479215999999999920e-01,-1.187062000000000062e+01,-2.446991000000000027e-01,-2.257741999999999916e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +-3.435247000000000162e-01,-8.277782999999999669e-01,-2.790861999999999910e+01,-7.299666999999999684e-01,-4.806470000000000020e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-3.474050000000000055e-02,-3.606560000000000321e-02,-1.340510000000000090e+00,-3.605719999999999759e-02,-3.109543000000000168e-01 +-1.872730999999999979e-01,-2.479215999999999920e-01,-1.187062000000000062e+01,-2.446991000000000027e-01,-2.257741999999999916e+00 +5.214642000000000444e-01,3.705520999999999954e-01,1.224879999999999924e+01,3.634404999999999997e-01,3.465339999999999865e+00 +6.286910999999999472e-01,4.369408000000000181e-01,8.989627999999999730e+00,4.274471000000000243e-01,3.101843999999999824e+00 +2.997171000000000141e-01,2.283850000000000047e-01,2.434960999999999842e+01,2.255968999999999891e-01,4.193529999999999980e+00 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +-3.503730000000000039e-02,-3.618989999999999707e-02,-6.421223000000000347e-01,-3.618360000000000326e-02,-2.006240999999999997e-01 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-3.474050000000000055e-02,-3.606560000000000321e-02,-1.340510000000000090e+00,-3.605719999999999759e-02,-3.109543000000000168e-01 +6.570736000000000354e-01,4.088127999999999762e-01,5.338195000000000334e+01,3.938633999999999746e-01,9.193530000000000868e+00 +3.711883999999999739e-01,2.696834000000000175e-01,3.015607999999999933e+01,2.651503000000000054e-01,5.193529999999999980e+00 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +1.250489999999999935e-02,1.235319999999999994e-02,3.764715000000000145e-01,1.235289999999999999e-02,9.644320000000000670e-02 +-1.171559999999999963e-01,-1.336393999999999915e-01,-3.527085000000000026e+00,-1.332541999999999893e-01,-9.035568000000000488e-01 +-1.171559999999999963e-01,-1.336393999999999915e-01,-3.527085000000000026e+00,-1.332541999999999893e-01,-9.035568000000000488e-01 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-1.695109999999999950e-01,-2.135405999999999971e-01,-8.383274000000000115e+00,-2.116547000000000012e-01,-1.760869999999999935e+00 +1.396043999999999896e-01,1.248781000000000058e-01,2.558501999999999832e+00,1.246199000000000057e-01,7.993759000000000281e-01 +5.238709000000000282e-01,3.625683000000000100e-01,2.021425999999999945e+01,3.545109000000000177e-01,4.689046000000000269e+00 +2.282457999999999987e-01,1.833316999999999863e-01,1.854314000000000107e+01,1.818726999999999983e-01,3.193529999999999980e+00 +-1.171559999999999963e-01,-1.336393999999999915e-01,-3.527085000000000026e+00,-1.332541999999999893e-01,-9.035568000000000488e-01 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-3.435247000000000162e-01,-8.277782999999999669e-01,-2.790861999999999910e+01,-7.299666999999999684e-01,-4.806470000000000020e+00 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +7.285449999999999982e-01,4.388867000000000185e-01,5.918842999999999677e+01,4.206465999999999816e-01,1.019353000000000087e+01 +-1.171559999999999963e-01,-1.336393999999999915e-01,-3.527085000000000026e+00,-1.332541999999999893e-01,-9.035568000000000488e-01 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +4.426596999999999893e-01,3.079182999999999781e-01,3.596255000000000024e+01,3.012597000000000191e-01,6.193529999999999980e+00 +2.997171000000000141e-01,2.283850000000000047e-01,2.434960999999999842e+01,2.255968999999999891e-01,4.193529999999999980e+00 +-1.171559999999999963e-01,-1.336393999999999915e-01,-3.527085000000000026e+00,-1.332541999999999893e-01,-9.035568000000000488e-01 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +1.421659000000000117e-01,1.256146999999999958e-01,4.280027999999999722e+00,1.252946000000000060e-01,1.096443000000000056e+00 +-8.045549999999999924e-02,-8.733109999999999484e-02,-1.889839000000000047e+00,-8.723329999999999973e-02,-5.346594999999999542e-01 +1.085901000000000005e+00,5.710009999999999808e-01,8.822077000000000169e+01,5.334980000000000278e-01,1.519353000000000087e+01 +-3.620419000000000276e-01,-7.899543999999999455e-01,-1.790501000000000076e+01,-7.151566999999999785e-01,-3.760870000000000157e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +2.997171000000000141e-01,2.283850000000000047e-01,2.434960999999999842e+01,2.255968999999999891e-01,4.193529999999999980e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +5.856023000000000200e-01,3.771333000000000046e-01,4.757549000000000206e+01,3.652315999999999896e-01,8.193530000000000868e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-1.695109999999999950e-01,-2.135405999999999971e-01,-8.383274000000000115e+00,-2.116547000000000012e-01,-1.760869999999999935e+00 +-1.872730999999999979e-01,-2.479215999999999920e-01,-1.187062000000000062e+01,-2.446991000000000027e-01,-2.257741999999999916e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +8.714876000000000289e-01,4.949724999999999819e-01,7.080136000000000251e+01,4.695261000000000018e-01,1.219353000000000087e+01 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +-2.137889999999999929e-02,-2.192300000000000151e-02,-1.355140000000000011e+00,-2.192070000000000130e-02,-2.577418000000000209e-01 +-8.045549999999999924e-02,-8.733109999999999484e-02,-1.889839000000000047e+00,-8.723329999999999973e-02,-5.346594999999999542e-01 +-1.872730999999999979e-01,-2.479215999999999920e-01,-1.187062000000000062e+01,-2.446991000000000027e-01,-2.257741999999999916e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-3.814154000000000155e-01,-7.170872999999999831e-01,-8.959158999999999651e+00,-6.715801000000000132e-01,-2.534660000000000135e+00 +4.426596999999999893e-01,3.079182999999999781e-01,3.596255000000000024e+01,3.012597000000000191e-01,6.193529999999999980e+00 +-1.171559999999999963e-01,-1.336393999999999915e-01,-3.527085000000000026e+00,-1.332541999999999893e-01,-9.035568000000000488e-01 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-2.468170000000000086e-01,-3.448183000000000220e-01,-7.430641999999999747e+00,-3.384757999999999933e-01,-1.903556999999999944e+00 +-3.503730000000000039e-02,-3.618989999999999707e-02,-6.421223000000000347e-01,-3.618360000000000326e-02,-2.006240999999999997e-01 +3.711883999999999739e-01,2.696834000000000175e-01,3.015607999999999933e+01,2.651503000000000054e-01,5.193529999999999980e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +1.250489999999999935e-02,1.235319999999999994e-02,3.764715000000000145e-01,1.235289999999999999e-02,9.644320000000000670e-02 +1.872085999999999917e+00,7.974563000000000068e-01,1.520919000000000096e+02,7.082998999999999823e-01,2.619352999999999909e+01 +2.997171000000000141e-01,2.283850000000000047e-01,2.434960999999999842e+01,2.255968999999999891e-01,4.193529999999999980e+00 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +7.285449999999999982e-01,4.388867000000000185e-01,5.918842999999999677e+01,4.206465999999999816e-01,1.019353000000000087e+01 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +5.856023000000000200e-01,3.771333000000000046e-01,4.757549000000000206e+01,3.652315999999999896e-01,8.193530000000000868e+00 +1.872085999999999917e+00,7.974563000000000068e-01,1.520919000000000096e+02,7.082998999999999823e-01,2.619352999999999909e+01 +1.443257999999999930e+00,6.820456000000000296e-01,1.172531000000000034e+02,6.221303999999999723e-01,2.019352999999999909e+01 +7.002440000000000053e-02,6.582540000000000613e-02,1.644819999999999949e+00,6.578340000000000576e-02,4.653404999999999903e-01 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +-8.045549999999999924e-02,-8.733109999999999484e-02,-1.889839000000000047e+00,-8.723329999999999973e-02,-5.346594999999999542e-01 +-2.702202000000000215e-01,-4.381294000000000022e-01,-1.712836000000000070e+01,-4.215282000000000195e-01,-3.257741999999999916e+00 +-3.764779999999999793e-01,-7.438232999999999651e-01,-1.133419999999999916e+01,-6.893046000000000451e-01,-2.903557000000000166e+00 +7.285449999999999982e-01,4.388867000000000185e-01,5.918842999999999677e+01,4.206465999999999816e-01,1.019353000000000087e+01 +-7.324550000000000505e-02,-7.990869999999999918e-02,-3.622403999999999957e+00,-7.980790000000000106e-02,-7.608702000000000520e-01 +-2.657764000000000237e-01,-4.100574000000000163e-01,-1.314414000000000016e+01,-3.974823000000000106e-01,-2.760870000000000157e+00 +4.014878000000000058e-01,2.998151000000000010e-01,1.208713999999999977e+01,2.955962999999999785e-01,3.096442999999999834e+00 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +2.997171000000000141e-01,2.283850000000000047e-01,2.434960999999999842e+01,2.255968999999999891e-01,4.193529999999999980e+00 +7.698180000000000300e-02,7.148079999999999712e-02,2.970444000000000084e+00,7.141540000000000388e-02,6.890456999999999832e-01 +2.064210000000000003e-02,2.028869999999999979e-02,2.951598999999999751e-01,2.028759999999999938e-02,1.018440000000000040e-01 +3.711883999999999739e-01,2.696834000000000175e-01,3.015607999999999933e+01,2.651503000000000054e-01,5.193529999999999980e+00 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +-3.764779999999999793e-01,-7.438232999999999651e-01,-1.133419999999999916e+01,-6.893046000000000451e-01,-2.903557000000000166e+00 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +7.002440000000000053e-02,6.582540000000000613e-02,1.644819999999999949e+00,6.578340000000000576e-02,4.653404999999999903e-01 +-1.171559999999999963e-01,-1.336393999999999915e-01,-3.527085000000000026e+00,-1.332541999999999893e-01,-9.035568000000000488e-01 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +2.301989999999999939e-02,2.246269999999999864e-02,1.138465999999999978e+00,2.246050000000000130e-02,2.391298000000000035e-01 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +-1.464628000000000041e-01,-1.755713000000000135e-01,-5.651463999999999821e+00,-1.746134000000000019e-01,-1.310953999999999953e+00 +-2.137889999999999929e-02,-2.192300000000000151e-02,-1.355140000000000011e+00,-2.192070000000000130e-02,-2.577418000000000209e-01 +-1.872730999999999979e-01,-2.479215999999999920e-01,-1.187062000000000062e+01,-2.446991000000000027e-01,-2.257741999999999916e+00 +1.396043999999999896e-01,1.248781000000000058e-01,2.558501999999999832e+00,1.246199000000000057e-01,7.993759000000000281e-01 +-8.045549999999999924e-02,-8.733109999999999484e-02,-1.889839000000000047e+00,-8.723329999999999973e-02,-5.346594999999999542e-01 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-3.474050000000000055e-02,-3.606560000000000321e-02,-1.340510000000000090e+00,-3.605719999999999759e-02,-3.109543000000000168e-01 +3.711883999999999739e-01,2.696834000000000175e-01,3.015607999999999933e+01,2.651503000000000054e-01,5.193529999999999980e+00 +2.301989999999999939e-02,2.246269999999999864e-02,1.138465999999999978e+00,2.246050000000000130e-02,2.391298000000000035e-01 +-1.171559999999999963e-01,-1.336393999999999915e-01,-3.527085000000000026e+00,-1.332541999999999893e-01,-9.035568000000000488e-01 +-1.695109999999999950e-01,-2.135405999999999971e-01,-8.383274000000000115e+00,-2.116547000000000012e-01,-1.760869999999999935e+00 +-7.324550000000000505e-02,-7.990869999999999918e-02,-3.622403999999999957e+00,-7.980790000000000106e-02,-7.608702000000000520e-01 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-1.043260000000000021e-01,-1.196085999999999955e-01,-6.612881999999999927e+00,-1.192368000000000039e-01,-1.257741999999999916e+00 +-1.171559999999999963e-01,-1.336393999999999915e-01,-3.527085000000000026e+00,-1.332541999999999893e-01,-9.035568000000000488e-01 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +5.141310000000000047e-01,3.436040000000000205e-01,4.176901999999999759e+01,3.344771000000000272e-01,7.193529999999999980e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-8.045549999999999924e-02,-8.733109999999999484e-02,-1.889839000000000047e+00,-8.723329999999999973e-02,-5.346594999999999542e-01 +-1.464628000000000041e-01,-1.755713000000000135e-01,-5.651463999999999821e+00,-1.746134000000000019e-01,-1.310953999999999953e+00 +1.250489999999999935e-02,1.235319999999999994e-02,3.764715000000000145e-01,1.235289999999999999e-02,9.644320000000000670e-02 +2.301989999999999939e-02,2.246269999999999864e-02,1.138465999999999978e+00,2.246050000000000130e-02,2.391298000000000035e-01 +5.238709000000000282e-01,3.625683000000000100e-01,2.021425999999999945e+01,3.545109000000000177e-01,4.689046000000000269e+00 +-8.045549999999999924e-02,-8.733109999999999484e-02,-1.889839000000000047e+00,-8.723329999999999973e-02,-5.346594999999999542e-01 +1.421659000000000117e-01,1.256146999999999958e-01,4.280027999999999722e+00,1.252946000000000060e-01,1.096443000000000056e+00 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-3.503730000000000039e-02,-3.618989999999999707e-02,-6.421223000000000347e-01,-3.618360000000000326e-02,-2.006240999999999997e-01 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +1.014429999999999943e+00,5.465919999999999668e-01,8.241431000000000040e+01,5.132501999999999898e-01,1.419353000000000087e+01 +1.014429999999999943e+00,5.465919999999999668e-01,8.241431000000000040e+01,5.132501999999999898e-01,1.419353000000000087e+01 +2.997171000000000141e-01,2.283850000000000047e-01,2.434960999999999842e+01,2.255968999999999891e-01,4.193529999999999980e+00 +1.250489999999999935e-02,1.235319999999999994e-02,3.764715000000000145e-01,1.235289999999999999e-02,9.644320000000000670e-02 +2.155508999999999897e-01,1.777640000000000053e-01,1.066020999999999930e+01,1.766681999999999975e-01,2.239129999999999843e+00 +-2.137889999999999929e-02,-2.192300000000000151e-02,-1.355140000000000011e+00,-2.192070000000000130e-02,-2.577418000000000209e-01 +-3.814154000000000155e-01,-7.170872999999999831e-01,-8.959158999999999651e+00,-6.715801000000000132e-01,-2.534660000000000135e+00 +4.888877999999999835e-01,3.570679999999999965e-01,8.959749999999999659e+00,3.512596000000000052e-01,2.799376000000000086e+00 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +-2.468170000000000086e-01,-3.448183000000000220e-01,-7.430641999999999747e+00,-3.384757999999999933e-01,-1.903556999999999944e+00 +2.282457999999999987e-01,1.833316999999999863e-01,1.854314000000000107e+01,1.818726999999999983e-01,3.193529999999999980e+00 +-8.045549999999999924e-02,-8.733109999999999484e-02,-1.889839000000000047e+00,-8.723329999999999973e-02,-5.346594999999999542e-01 +2.282457999999999987e-01,1.833316999999999863e-01,1.854314000000000107e+01,1.818726999999999983e-01,3.193529999999999980e+00 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +-1.171559999999999963e-01,-1.336393999999999915e-01,-3.527085000000000026e+00,-1.332541999999999893e-01,-9.035568000000000488e-01 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +-1.171559999999999963e-01,-1.336393999999999915e-01,-3.527085000000000026e+00,-1.332541999999999893e-01,-9.035568000000000488e-01 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +2.282457999999999987e-01,1.833316999999999863e-01,1.854314000000000107e+01,1.818726999999999983e-01,3.193529999999999980e+00 +-2.657764000000000237e-01,-4.100574000000000163e-01,-1.314414000000000016e+01,-3.974823000000000106e-01,-2.760870000000000157e+00 +-1.171559999999999963e-01,-1.336393999999999915e-01,-3.527085000000000026e+00,-1.332541999999999893e-01,-9.035568000000000488e-01 +-2.657764000000000237e-01,-4.100574000000000163e-01,-1.314414000000000016e+01,-3.974823000000000106e-01,-2.760870000000000157e+00 +1.445152000000000103e-01,1.252460999999999991e-01,9.160344000000000264e+00,1.248196000000000028e-01,1.742258000000000084e+00 +2.064210000000000003e-02,2.028869999999999979e-02,2.951598999999999751e-01,2.028759999999999938e-02,1.018440000000000040e-01 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +-1.464628000000000041e-01,-1.755713000000000135e-01,-5.651463999999999821e+00,-1.746134000000000019e-01,-1.310953999999999953e+00 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +-7.324550000000000505e-02,-7.990869999999999918e-02,-3.622403999999999957e+00,-7.980790000000000106e-02,-7.608702000000000520e-01 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +-1.043260000000000021e-01,-1.196085999999999955e-01,-6.612881999999999927e+00,-1.192368000000000039e-01,-1.257741999999999916e+00 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +7.002440000000000053e-02,6.582540000000000613e-02,1.644819999999999949e+00,6.578340000000000576e-02,4.653404999999999903e-01 +-3.847240000000000104e-01,-6.549530000000000074e-01,-5.501152000000000264e+00,-6.250449000000000144e-01,-1.898155999999999954e+00 +5.856023000000000200e-01,3.771333000000000046e-01,4.757549000000000206e+01,3.652315999999999896e-01,8.193530000000000868e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +2.282457999999999987e-01,1.833316999999999863e-01,1.854314000000000107e+01,1.818726999999999983e-01,3.193529999999999980e+00 +1.250489999999999935e-02,1.235319999999999994e-02,3.764715000000000145e-01,1.235289999999999999e-02,9.644320000000000670e-02 +-2.657764000000000237e-01,-4.100574000000000163e-01,-1.314414000000000016e+01,-3.974823000000000106e-01,-2.760870000000000157e+00 +3.711883999999999739e-01,2.696834000000000175e-01,3.015607999999999933e+01,2.651503000000000054e-01,5.193529999999999980e+00 +-1.872730999999999979e-01,-2.479215999999999920e-01,-1.187062000000000062e+01,-2.446991000000000027e-01,-2.257741999999999916e+00 +-1.695109999999999950e-01,-2.135405999999999971e-01,-8.383274000000000115e+00,-2.116547000000000012e-01,-1.760869999999999935e+00 +6.156819999999999654e-02,5.763419999999999654e-02,3.902601999999999904e+00,5.759229999999999905e-02,7.422581999999999791e-01 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +-2.702202000000000215e-01,-4.381294000000000022e-01,-1.712836000000000070e+01,-4.215282000000000195e-01,-3.257741999999999916e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +2.282457999999999987e-01,1.833316999999999863e-01,1.854314000000000107e+01,1.818726999999999983e-01,3.193529999999999980e+00 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +-1.820410000000000084e-01,-2.191365999999999870e-01,-2.602996000000000087e+00,-2.178854000000000068e-01,-8.981559999999999544e-01 +-1.872730999999999979e-01,-2.479215999999999920e-01,-1.187062000000000062e+01,-2.446991000000000027e-01,-2.257741999999999916e+00 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +3.118162999999999907e-01,2.405453999999999926e-01,1.542107999999999990e+01,2.378666000000000114e-01,3.239129999999999843e+00 +-2.657764000000000237e-01,-4.100574000000000163e-01,-1.314414000000000016e+01,-3.974823000000000106e-01,-2.760870000000000157e+00 +-3.531673000000000173e-01,-8.098043000000000324e-01,-2.238610999999999862e+01,-7.238196999999999548e-01,-4.257742000000000360e+00 +2.282457999999999987e-01,1.833316999999999863e-01,1.854314000000000107e+01,1.818726999999999983e-01,3.193529999999999980e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +3.004263999999999823e-01,2.357630000000000003e-01,1.159234999999999971e+01,2.334703999999999946e-01,2.689045999999999825e+00 +-3.503730000000000039e-02,-3.618989999999999707e-02,-6.421223000000000347e-01,-3.618360000000000326e-02,-2.006240999999999997e-01 +-2.309354999999999880e-01,-3.070077999999999974e-01,-5.424498999999999960e+00,-3.028983000000000092e-01,-1.534659999999999913e+00 +3.711883999999999739e-01,2.696834000000000175e-01,3.015607999999999933e+01,2.651503000000000054e-01,5.193529999999999980e+00 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +2.282457999999999987e-01,1.833316999999999863e-01,1.854314000000000107e+01,1.818726999999999983e-01,3.193529999999999980e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +5.592506999999999895e-01,3.701822000000000168e-01,3.544904999999999973e+01,3.598837999999999759e-01,6.742257999999999640e+00 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +2.718267999999999796e-01,2.192536999999999958e-01,8.183585000000000775e+00,2.175746000000000069e-01,2.096442999999999834e+00 +-1.695109999999999950e-01,-2.135405999999999971e-01,-8.383274000000000115e+00,-2.116547000000000012e-01,-1.760869999999999935e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-2.309354999999999880e-01,-3.070077999999999974e-01,-5.424498999999999960e+00,-3.028983000000000092e-01,-1.534659999999999913e+00 +3.711883999999999739e-01,2.696834000000000175e-01,3.015607999999999933e+01,2.651503000000000054e-01,5.193529999999999980e+00 +-2.137889999999999929e-02,-2.192300000000000151e-02,-1.355140000000000011e+00,-2.192070000000000130e-02,-2.577418000000000209e-01 +-1.820410000000000084e-01,-2.191365999999999870e-01,-2.602996000000000087e+00,-2.178854000000000068e-01,-8.981559999999999544e-01 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-2.702202000000000215e-01,-4.381294000000000022e-01,-1.712836000000000070e+01,-4.215282000000000195e-01,-3.257741999999999916e+00 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +-2.702202000000000215e-01,-4.381294000000000022e-01,-1.712836000000000070e+01,-4.215282000000000195e-01,-3.257741999999999916e+00 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +2.282457999999999987e-01,1.833316999999999863e-01,1.854314000000000107e+01,1.818726999999999983e-01,3.193529999999999980e+00 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +-1.464628000000000041e-01,-1.755713000000000135e-01,-5.651463999999999821e+00,-1.746134000000000019e-01,-1.310953999999999953e+00 +3.711883999999999739e-01,2.696834000000000175e-01,3.015607999999999933e+01,2.651503000000000054e-01,5.193529999999999980e+00 +-3.503730000000000039e-02,-3.618989999999999707e-02,-6.421223000000000347e-01,-3.618360000000000326e-02,-2.006240999999999997e-01 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +-2.702202000000000215e-01,-4.381294000000000022e-01,-1.712836000000000070e+01,-4.215282000000000195e-01,-3.257741999999999916e+00 +-1.695109999999999950e-01,-2.135405999999999971e-01,-8.383274000000000115e+00,-2.116547000000000012e-01,-1.760869999999999935e+00 +-1.872730999999999979e-01,-2.479215999999999920e-01,-1.187062000000000062e+01,-2.446991000000000027e-01,-2.257741999999999916e+00 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +-2.657764000000000237e-01,-4.100574000000000163e-01,-1.314414000000000016e+01,-3.974823000000000106e-01,-2.760870000000000157e+00 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +-1.171559999999999963e-01,-1.336393999999999915e-01,-3.527085000000000026e+00,-1.332541999999999893e-01,-9.035568000000000488e-01 +4.121486999999999790e-01,3.025489000000000095e-01,1.590330999999999939e+01,2.977831000000000228e-01,3.689045999999999825e+00 +8.000163000000000135e-01,4.675525999999999849e-01,6.499490000000000123e+01,4.458055000000000212e-01,1.119353000000000087e+01 +9.429589000000000443e-01,5.212812000000000001e-01,7.660783000000000698e+01,4.919637000000000038e-01,1.319353000000000087e+01 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +-2.137889999999999929e-02,-2.192300000000000151e-02,-1.355140000000000011e+00,-2.192070000000000130e-02,-2.577418000000000209e-01 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +-2.468170000000000086e-01,-3.448183000000000220e-01,-7.430641999999999747e+00,-3.384757999999999933e-01,-1.903556999999999944e+00 +-2.657764000000000237e-01,-4.100574000000000163e-01,-1.314414000000000016e+01,-3.974823000000000106e-01,-2.760870000000000157e+00 +-1.171559999999999963e-01,-1.336393999999999915e-01,-3.527085000000000026e+00,-1.332541999999999893e-01,-9.035568000000000488e-01 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +3.709842999999999891e-01,2.847433999999999799e-01,8.714138999999999413e+00,2.814483999999999875e-01,2.465339999999999865e+00 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +4.426596999999999893e-01,3.079182999999999781e-01,3.596255000000000024e+01,3.012597000000000191e-01,6.193529999999999980e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +-8.045549999999999924e-02,-8.733109999999999484e-02,-1.889839000000000047e+00,-8.723329999999999973e-02,-5.346594999999999542e-01 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +5.043473000000000539e-01,3.479948999999999959e-01,2.494282000000000110e+01,3.401349000000000178e-01,5.239130000000000287e+00 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +2.282457999999999987e-01,1.833316999999999863e-01,1.854314000000000107e+01,1.818726999999999983e-01,3.193529999999999980e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +2.282457999999999987e-01,1.833316999999999863e-01,1.854314000000000107e+01,1.818726999999999983e-01,3.193529999999999980e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +-1.171559999999999963e-01,-1.336393999999999915e-01,-3.527085000000000026e+00,-1.332541999999999893e-01,-9.035568000000000488e-01 +-1.468454999999999899e-01,-1.682093000000000060e-01,-1.638258999999999910e+00,-1.676931999999999867e-01,-6.242718999999999907e-01 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +-7.324550000000000505e-02,-7.990869999999999918e-02,-3.622403999999999957e+00,-7.980790000000000106e-02,-7.608702000000000520e-01 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-2.309354999999999880e-01,-3.070077999999999974e-01,-5.424498999999999960e+00,-3.028983000000000092e-01,-1.534659999999999913e+00 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +-1.171559999999999963e-01,-1.336393999999999915e-01,-3.527085000000000026e+00,-1.332541999999999893e-01,-9.035568000000000488e-01 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +2.282457999999999987e-01,1.833316999999999863e-01,1.854314000000000107e+01,1.818726999999999983e-01,3.193529999999999980e+00 +2.282457999999999987e-01,1.833316999999999863e-01,1.854314000000000107e+01,1.818726999999999983e-01,3.193529999999999980e+00 +6.635294999999999943e-01,4.486716000000000037e-01,1.216037000000000035e+01,4.374240999999999824e-01,3.799376000000000086e+00 +-3.503730000000000039e-02,-3.618989999999999707e-02,-6.421223000000000347e-01,-3.618360000000000326e-02,-2.006240999999999997e-01 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +1.872085999999999917e+00,7.974563000000000068e-01,1.520919000000000096e+02,7.082998999999999823e-01,2.619352999999999909e+01 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +1.250489999999999935e-02,1.235319999999999994e-02,3.764715000000000145e-01,1.235289999999999999e-02,9.644320000000000670e-02 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +4.763035999999999937e-01,3.292964999999999920e-01,3.019131000000000142e+01,3.219368000000000229e-01,5.742257999999999640e+00 +-2.581851000000000007e-01,-3.790555999999999925e-01,-9.962419000000000580e+00,-3.698974999999999902e-01,-2.310954000000000175e+00 +6.156819999999999654e-02,5.763419999999999654e-02,3.902601999999999904e+00,5.759229999999999905e-02,7.422581999999999791e-01 +-3.474050000000000055e-02,-3.606560000000000321e-02,-1.340510000000000090e+00,-3.605719999999999759e-02,-3.109543000000000168e-01 +-3.474050000000000055e-02,-3.606560000000000321e-02,-1.340510000000000090e+00,-3.605719999999999759e-02,-3.109543000000000168e-01 +-7.324550000000000505e-02,-7.990869999999999918e-02,-3.622403999999999957e+00,-7.980790000000000106e-02,-7.608702000000000520e-01 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +-7.324550000000000505e-02,-7.990869999999999918e-02,-3.622403999999999957e+00,-7.980790000000000106e-02,-7.608702000000000520e-01 +4.426596999999999893e-01,3.079182999999999781e-01,3.596255000000000024e+01,3.012597000000000191e-01,6.193529999999999980e+00 +-8.045549999999999924e-02,-8.733109999999999484e-02,-1.889839000000000047e+00,-8.723329999999999973e-02,-5.346594999999999542e-01 +5.856023000000000200e-01,3.771333000000000046e-01,4.757549000000000206e+01,3.652315999999999896e-01,8.193530000000000868e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +-2.096791000000000071e-01,-2.652512000000000203e-01,-3.842745999999999995e+00,-2.628233999999999848e-01,-1.200623999999999914e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-1.171559999999999963e-01,-1.336393999999999915e-01,-3.527085000000000026e+00,-1.332541999999999893e-01,-9.035568000000000488e-01 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +6.006126999999999994e-01,3.951312000000000157e-01,2.970369000000000170e+01,3.838162999999999991e-01,6.239130000000000287e+00 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +-1.171559999999999963e-01,-1.336393999999999915e-01,-3.527085000000000026e+00,-1.332541999999999893e-01,-9.035568000000000488e-01 +2.997171000000000141e-01,2.283850000000000047e-01,2.434960999999999842e+01,2.255968999999999891e-01,4.193529999999999980e+00 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +3.711883999999999739e-01,2.696834000000000175e-01,3.015607999999999933e+01,2.651503000000000054e-01,5.193529999999999980e+00 +2.997171000000000141e-01,2.283850000000000047e-01,2.434960999999999842e+01,2.255968999999999891e-01,4.193529999999999980e+00 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +1.445152000000000103e-01,1.252460999999999991e-01,9.160344000000000264e+00,1.248196000000000028e-01,1.742258000000000084e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-1.464628000000000041e-01,-1.755713000000000135e-01,-5.651463999999999821e+00,-1.746134000000000019e-01,-1.310953999999999953e+00 +-2.702202000000000215e-01,-4.381294000000000022e-01,-1.712836000000000070e+01,-4.215282000000000195e-01,-3.257741999999999916e+00 +-2.581851000000000007e-01,-3.790555999999999925e-01,-9.962419000000000580e+00,-3.698974999999999902e-01,-2.310954000000000175e+00 +2.086500000000000021e+00,8.498464000000000018e-01,1.695114000000000090e+02,7.454885999999999457e-01,2.919352999999999909e+01 +-3.764779999999999793e-01,-7.438232999999999651e-01,-1.133419999999999916e+01,-6.893046000000000451e-01,-2.903557000000000166e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-3.814154000000000155e-01,-7.170872999999999831e-01,-8.959158999999999651e+00,-6.715801000000000132e-01,-2.534660000000000135e+00 +1.445152000000000103e-01,1.252460999999999991e-01,9.160344000000000264e+00,1.248196000000000028e-01,1.742258000000000084e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-3.699073999999999973e-01,-7.680327999999999600e-01,-1.427336999999999989e+01,-7.037377000000000216e-01,-3.310954000000000175e+00 +-1.171559999999999963e-01,-1.336393999999999915e-01,-3.527085000000000026e+00,-1.332541999999999893e-01,-9.035568000000000488e-01 +-8.045549999999999924e-02,-8.733109999999999484e-02,-1.889839000000000047e+00,-8.723329999999999973e-02,-5.346594999999999542e-01 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +2.282457999999999987e-01,1.833316999999999863e-01,1.854314000000000107e+01,1.818726999999999983e-01,3.193529999999999980e+00 +2.282457999999999987e-01,1.833316999999999863e-01,1.854314000000000107e+01,1.818726999999999983e-01,3.193529999999999980e+00 +-1.464628000000000041e-01,-1.755713000000000135e-01,-5.651463999999999821e+00,-1.746134000000000019e-01,-1.310953999999999953e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-3.435247000000000162e-01,-8.277782999999999669e-01,-2.790861999999999910e+01,-7.299666999999999684e-01,-4.806470000000000020e+00 +-2.702202000000000215e-01,-4.381294000000000022e-01,-1.712836000000000070e+01,-4.215282000000000195e-01,-3.257741999999999916e+00 +-2.657764000000000237e-01,-4.100574000000000163e-01,-1.314414000000000016e+01,-3.974823000000000106e-01,-2.760870000000000157e+00 +-1.464628000000000041e-01,-1.755713000000000135e-01,-5.651463999999999821e+00,-1.746134000000000019e-01,-1.310953999999999953e+00 +-2.096791000000000071e-01,-2.652512000000000203e-01,-3.842745999999999995e+00,-2.628233999999999848e-01,-1.200623999999999914e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-3.814154000000000155e-01,-7.170872999999999831e-01,-8.959158999999999651e+00,-6.715801000000000132e-01,-2.534660000000000135e+00 +-2.096791000000000071e-01,-2.652512000000000203e-01,-3.842745999999999995e+00,-2.628233999999999848e-01,-1.200623999999999914e+00 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +-3.503730000000000039e-02,-3.618989999999999707e-02,-6.421223000000000347e-01,-3.618360000000000326e-02,-2.006240999999999997e-01 +-3.843208000000000180e-01,-6.875609000000000304e-01,-7.043370999999999604e+00,-6.502666000000000279e-01,-2.200623999999999914e+00 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +-2.581851000000000007e-01,-3.790555999999999925e-01,-9.962419000000000580e+00,-3.698974999999999902e-01,-2.310954000000000175e+00 +-2.581851000000000007e-01,-3.790555999999999925e-01,-9.962419000000000580e+00,-3.698974999999999902e-01,-2.310954000000000175e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +-1.171559999999999963e-01,-1.336393999999999915e-01,-3.527085000000000026e+00,-1.332541999999999893e-01,-9.035568000000000488e-01 +-2.468170000000000086e-01,-3.448183000000000220e-01,-7.430641999999999747e+00,-3.384757999999999933e-01,-1.903556999999999944e+00 +-2.309354999999999880e-01,-3.070077999999999974e-01,-5.424498999999999960e+00,-3.028983000000000092e-01,-1.534659999999999913e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +1.421659000000000117e-01,1.256146999999999958e-01,4.280027999999999722e+00,1.252946000000000060e-01,1.096443000000000056e+00 +-2.309354999999999880e-01,-3.070077999999999974e-01,-5.424498999999999960e+00,-3.028983000000000092e-01,-1.534659999999999913e+00 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +-1.171559999999999963e-01,-1.336393999999999915e-01,-3.527085000000000026e+00,-1.332541999999999893e-01,-9.035568000000000488e-01 +6.156819999999999654e-02,5.763419999999999654e-02,3.902601999999999904e+00,5.759229999999999905e-02,7.422581999999999791e-01 +2.282457999999999987e-01,1.833316999999999863e-01,1.854314000000000107e+01,1.818726999999999983e-01,3.193529999999999980e+00 +-3.814154000000000155e-01,-7.170872999999999831e-01,-8.959158999999999651e+00,-6.715801000000000132e-01,-2.534660000000000135e+00 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +-1.872730999999999979e-01,-2.479215999999999920e-01,-1.187062000000000062e+01,-2.446991000000000027e-01,-2.257741999999999916e+00 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +-1.464628000000000041e-01,-1.755713000000000135e-01,-5.651463999999999821e+00,-1.746134000000000019e-01,-1.310953999999999953e+00 +4.014878000000000058e-01,2.998151000000000010e-01,1.208713999999999977e+01,2.955962999999999785e-01,3.096442999999999834e+00 +3.711883999999999739e-01,2.696834000000000175e-01,3.015607999999999933e+01,2.651503000000000054e-01,5.193529999999999980e+00 +3.711883999999999739e-01,2.696834000000000175e-01,3.015607999999999933e+01,2.651503000000000054e-01,5.193529999999999980e+00 +7.698180000000000300e-02,7.148079999999999712e-02,2.970444000000000084e+00,7.141540000000000388e-02,6.890456999999999832e-01 +3.933564999999999978e-01,2.852238999999999747e-01,2.493356999999999957e+01,2.803706999999999727e-01,4.742257999999999640e+00 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +5.141310000000000047e-01,3.436040000000000205e-01,4.176901999999999759e+01,3.344771000000000272e-01,7.193529999999999980e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +6.156819999999999654e-02,5.763419999999999654e-02,3.902601999999999904e+00,5.759229999999999905e-02,7.422581999999999791e-01 +-3.503730000000000039e-02,-3.618989999999999707e-02,-6.421223000000000347e-01,-3.618360000000000326e-02,-2.006240999999999997e-01 +7.251448000000000338e-01,4.443860000000000032e-01,4.596453000000000344e+01,4.271111000000000213e-01,8.742257999999999640e+00 +2.233250999999999986e-01,1.900940000000000130e-01,3.193315999999999821e+00,1.892741000000000007e-01,1.101844000000000046e+00 +2.718267999999999796e-01,2.192536999999999958e-01,8.183585000000000775e+00,2.175746000000000069e-01,2.096442999999999834e+00 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +2.205042999999999864e-01,1.853983999999999910e-01,5.179479999999999862e+00,1.844724000000000086e-01,1.465340000000000087e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +6.156819999999999654e-02,5.763419999999999654e-02,3.902601999999999904e+00,5.759229999999999905e-02,7.422581999999999791e-01 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +-1.820410000000000084e-01,-2.191365999999999870e-01,-2.602996000000000087e+00,-2.178854000000000068e-01,-8.981559999999999544e-01 +2.997171000000000141e-01,2.283850000000000047e-01,2.434960999999999842e+01,2.255968999999999891e-01,4.193529999999999980e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +-3.503730000000000039e-02,-3.618989999999999707e-02,-6.421223000000000347e-01,-3.618360000000000326e-02,-2.006240999999999997e-01 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +-1.872730999999999979e-01,-2.479215999999999920e-01,-1.187062000000000062e+01,-2.446991000000000027e-01,-2.257741999999999916e+00 +-8.045549999999999924e-02,-8.733109999999999484e-02,-1.889839000000000047e+00,-8.723329999999999973e-02,-5.346594999999999542e-01 +-1.464628000000000041e-01,-1.755713000000000135e-01,-5.651463999999999821e+00,-1.746134000000000019e-01,-1.310953999999999953e+00 +2.301989999999999939e-02,2.246269999999999864e-02,1.138465999999999978e+00,2.246050000000000130e-02,2.391298000000000035e-01 +1.421659000000000117e-01,1.256146999999999958e-01,4.280027999999999722e+00,1.252946000000000060e-01,1.096443000000000056e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +5.856023000000000200e-01,3.771333000000000046e-01,4.757549000000000206e+01,3.652315999999999896e-01,8.193530000000000868e+00 +-1.872730999999999979e-01,-2.479215999999999920e-01,-1.187062000000000062e+01,-2.446991000000000027e-01,-2.257741999999999916e+00 +-2.468170000000000086e-01,-3.448183000000000220e-01,-7.430641999999999747e+00,-3.384757999999999933e-01,-1.903556999999999944e+00 +1.192853999999999998e-01,1.062562999999999980e-01,5.899335999999999913e+00,1.060197999999999974e-01,1.239130000000000065e+00 +7.698180000000000300e-02,7.148079999999999712e-02,2.970444000000000084e+00,7.141540000000000388e-02,6.890456999999999832e-01 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +5.141310000000000047e-01,3.436040000000000205e-01,4.176901999999999759e+01,3.344771000000000272e-01,7.193529999999999980e+00 +1.800615000000000077e+00,7.792843999999999882e-01,1.462855000000000132e+02,6.951243000000000283e-01,2.519352999999999909e+01 +-1.171559999999999963e-01,-1.336393999999999915e-01,-3.527085000000000026e+00,-1.332541999999999893e-01,-9.035568000000000488e-01 +2.282457999999999987e-01,1.833316999999999863e-01,1.854314000000000107e+01,1.818726999999999983e-01,3.193529999999999980e+00 +3.711883999999999739e-01,2.696834000000000175e-01,3.015607999999999933e+01,2.651503000000000054e-01,5.193529999999999980e+00 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +1.445152000000000103e-01,1.252460999999999991e-01,9.160344000000000264e+00,1.248196000000000028e-01,1.742258000000000084e+00 +-2.309354999999999880e-01,-3.070077999999999974e-01,-5.424498999999999960e+00,-3.028983000000000092e-01,-1.534659999999999913e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-1.872730999999999979e-01,-2.479215999999999920e-01,-1.187062000000000062e+01,-2.446991000000000027e-01,-2.257741999999999916e+00 +2.282457999999999987e-01,1.833316999999999863e-01,1.854314000000000107e+01,1.818726999999999983e-01,3.193529999999999980e+00 +-3.843208000000000180e-01,-6.875609000000000304e-01,-7.043370999999999604e+00,-6.502666000000000279e-01,-2.200623999999999914e+00 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +-1.695109999999999950e-01,-2.135405999999999971e-01,-8.383274000000000115e+00,-2.116547000000000012e-01,-1.760869999999999935e+00 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +-1.695109999999999950e-01,-2.135405999999999971e-01,-8.383274000000000115e+00,-2.116547000000000012e-01,-1.760869999999999935e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-2.702202000000000215e-01,-4.381294000000000022e-01,-1.712836000000000070e+01,-4.215282000000000195e-01,-3.257741999999999916e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +2.282457999999999987e-01,1.833316999999999863e-01,1.854314000000000107e+01,1.818726999999999983e-01,3.193529999999999980e+00 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +-1.872730999999999979e-01,-2.479215999999999920e-01,-1.187062000000000062e+01,-2.446991000000000027e-01,-2.257741999999999916e+00 +-1.820410000000000084e-01,-2.191365999999999870e-01,-2.602996000000000087e+00,-2.178854000000000068e-01,-8.981559999999999544e-01 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +2.233250999999999986e-01,1.900940000000000130e-01,3.193315999999999821e+00,1.892741000000000007e-01,1.101844000000000046e+00 +-8.045549999999999924e-02,-8.733109999999999484e-02,-1.889839000000000047e+00,-8.723329999999999973e-02,-5.346594999999999542e-01 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +2.064210000000000003e-02,2.028869999999999979e-02,2.951598999999999751e-01,2.028759999999999938e-02,1.018440000000000040e-01 +-3.474050000000000055e-02,-3.606560000000000321e-02,-1.340510000000000090e+00,-3.605719999999999759e-02,-3.109543000000000168e-01 +-8.045549999999999924e-02,-8.733109999999999484e-02,-1.889839000000000047e+00,-8.723329999999999973e-02,-5.346594999999999542e-01 +3.004263999999999823e-01,2.357630000000000003e-01,1.159234999999999971e+01,2.334703999999999946e-01,2.689045999999999825e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-3.435247000000000162e-01,-8.277782999999999669e-01,-2.790861999999999910e+01,-7.299666999999999684e-01,-4.806470000000000020e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +2.282457999999999987e-01,1.833316999999999863e-01,1.854314000000000107e+01,1.818726999999999983e-01,3.193529999999999980e+00 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +1.887041000000000135e-01,1.599530000000000118e-01,7.281399000000000399e+00,1.592269000000000045e-01,1.689046000000000047e+00 +-1.695109999999999950e-01,-2.135405999999999971e-01,-8.383274000000000115e+00,-2.116547000000000012e-01,-1.760869999999999935e+00 +-1.043260000000000021e-01,-1.196085999999999955e-01,-6.612881999999999927e+00,-1.192368000000000039e-01,-1.257741999999999916e+00 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +2.274623000000000062e-01,1.844012999999999902e-01,1.441808999999999941e+01,1.830546000000000118e-01,2.742258000000000084e+00 +-3.764779999999999793e-01,-7.438232999999999651e-01,-1.133419999999999916e+01,-6.893046000000000451e-01,-2.903557000000000166e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-1.043260000000000021e-01,-1.196085999999999955e-01,-6.612881999999999927e+00,-1.192368000000000039e-01,-1.257741999999999916e+00 +2.997171000000000141e-01,2.283850000000000047e-01,2.434960999999999842e+01,2.255968999999999891e-01,4.193529999999999980e+00 +6.286910999999999472e-01,4.369408000000000181e-01,8.989627999999999730e+00,4.274471000000000243e-01,3.101843999999999824e+00 +-1.820410000000000084e-01,-2.191365999999999870e-01,-2.602996000000000087e+00,-2.178854000000000068e-01,-8.981559999999999544e-01 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-8.045549999999999924e-02,-8.733109999999999484e-02,-1.889839000000000047e+00,-8.723329999999999973e-02,-5.346594999999999542e-01 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-2.309354999999999880e-01,-3.070077999999999974e-01,-5.424498999999999960e+00,-3.028983000000000092e-01,-1.534659999999999913e+00 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +-1.464628000000000041e-01,-1.755713000000000135e-01,-5.651463999999999821e+00,-1.746134000000000019e-01,-1.310953999999999953e+00 +-1.820410000000000084e-01,-2.191365999999999870e-01,-2.602996000000000087e+00,-2.178854000000000068e-01,-8.981559999999999544e-01 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +6.286910999999999472e-01,4.369408000000000181e-01,8.989627999999999730e+00,4.274471000000000243e-01,3.101843999999999824e+00 +-1.695109999999999950e-01,-2.135405999999999971e-01,-8.383274000000000115e+00,-2.116547000000000012e-01,-1.760869999999999935e+00 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +2.282457999999999987e-01,1.833316999999999863e-01,1.854314000000000107e+01,1.818726999999999983e-01,3.193529999999999980e+00 +-3.503730000000000039e-02,-3.618989999999999707e-02,-6.421223000000000347e-01,-3.618360000000000326e-02,-2.006240999999999997e-01 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-1.171559999999999963e-01,-1.336393999999999915e-01,-3.527085000000000026e+00,-1.332541999999999893e-01,-9.035568000000000488e-01 +1.157372999999999985e+00,5.945905999999999691e-01,9.402724000000000615e+01,5.528035999999999506e-01,1.619352999999999909e+01 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-2.096791000000000071e-01,-2.652512000000000203e-01,-3.842745999999999995e+00,-2.628233999999999848e-01,-1.200623999999999914e+00 +-2.468170000000000086e-01,-3.448183000000000220e-01,-7.430641999999999747e+00,-3.384757999999999933e-01,-1.903556999999999944e+00 +-7.324550000000000505e-02,-7.990869999999999918e-02,-3.622403999999999957e+00,-7.980790000000000106e-02,-7.608702000000000520e-01 +-7.324550000000000505e-02,-7.990869999999999918e-02,-3.622403999999999957e+00,-7.980790000000000106e-02,-7.608702000000000520e-01 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +1.421659000000000117e-01,1.256146999999999958e-01,4.280027999999999722e+00,1.252946000000000060e-01,1.096443000000000056e+00 +-1.464628000000000041e-01,-1.755713000000000135e-01,-5.651463999999999821e+00,-1.746134000000000019e-01,-1.310953999999999953e+00 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +-1.464628000000000041e-01,-1.755713000000000135e-01,-5.651463999999999821e+00,-1.746134000000000019e-01,-1.310953999999999953e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-3.503730000000000039e-02,-3.618989999999999707e-02,-6.421223000000000347e-01,-3.618360000000000326e-02,-2.006240999999999997e-01 +7.698180000000000300e-02,7.148079999999999712e-02,2.970444000000000084e+00,7.141540000000000388e-02,6.890456999999999832e-01 +-7.324550000000000505e-02,-7.990869999999999918e-02,-3.622403999999999957e+00,-7.980790000000000106e-02,-7.608702000000000520e-01 +-8.045549999999999924e-02,-8.733109999999999484e-02,-1.889839000000000047e+00,-8.723329999999999973e-02,-5.346594999999999542e-01 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +2.282457999999999987e-01,1.833316999999999863e-01,1.854314000000000107e+01,1.818726999999999983e-01,3.193529999999999980e+00 +3.709842999999999891e-01,2.847433999999999799e-01,8.714138999999999413e+00,2.814483999999999875e-01,2.465339999999999865e+00 +-3.814154000000000155e-01,-7.170872999999999831e-01,-8.959158999999999651e+00,-6.715801000000000132e-01,-2.534660000000000135e+00 +-8.045549999999999924e-02,-8.733109999999999484e-02,-1.889839000000000047e+00,-8.723329999999999973e-02,-5.346594999999999542e-01 +3.711883999999999739e-01,2.696834000000000175e-01,3.015607999999999933e+01,2.651503000000000054e-01,5.193529999999999980e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-2.468170000000000086e-01,-3.448183000000000220e-01,-7.430641999999999747e+00,-3.384757999999999933e-01,-1.903556999999999944e+00 +2.718267999999999796e-01,2.192536999999999958e-01,8.183585000000000775e+00,2.175746000000000069e-01,2.096442999999999834e+00 +-2.096791000000000071e-01,-2.652512000000000203e-01,-3.842745999999999995e+00,-2.628233999999999848e-01,-1.200623999999999914e+00 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +-1.820410000000000084e-01,-2.191365999999999870e-01,-2.602996000000000087e+00,-2.178854000000000068e-01,-8.981559999999999544e-01 +1.250489999999999935e-02,1.235319999999999994e-02,3.764715000000000145e-01,1.235289999999999999e-02,9.644320000000000670e-02 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +-3.847240000000000104e-01,-6.549530000000000074e-01,-5.501152000000000264e+00,-6.250449000000000144e-01,-1.898155999999999954e+00 +7.002440000000000053e-02,6.582540000000000613e-02,1.644819999999999949e+00,6.578340000000000576e-02,4.653404999999999903e-01 +-8.045549999999999924e-02,-8.733109999999999484e-02,-1.889839000000000047e+00,-8.723329999999999973e-02,-5.346594999999999542e-01 +-3.699073999999999973e-01,-7.680327999999999600e-01,-1.427336999999999989e+01,-7.037377000000000216e-01,-3.310954000000000175e+00 +2.282457999999999987e-01,1.833316999999999863e-01,1.854314000000000107e+01,1.818726999999999983e-01,3.193529999999999980e+00 +-2.309354999999999880e-01,-3.070077999999999974e-01,-5.424498999999999960e+00,-3.028983000000000092e-01,-1.534659999999999913e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +3.711883999999999739e-01,2.696834000000000175e-01,3.015607999999999933e+01,2.651503000000000054e-01,5.193529999999999980e+00 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +-2.137889999999999929e-02,-2.192300000000000151e-02,-1.355140000000000011e+00,-2.192070000000000130e-02,-2.577418000000000209e-01 +8.000163000000000135e-01,4.675525999999999849e-01,6.499490000000000123e+01,4.458055000000000212e-01,1.119353000000000087e+01 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +8.714876000000000289e-01,4.949724999999999819e-01,7.080136000000000251e+01,4.695261000000000018e-01,1.219353000000000087e+01 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +-1.695109999999999950e-01,-2.135405999999999971e-01,-8.383274000000000115e+00,-2.116547000000000012e-01,-1.760869999999999935e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-7.324550000000000505e-02,-7.990869999999999918e-02,-3.622403999999999957e+00,-7.980790000000000106e-02,-7.608702000000000520e-01 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-1.695109999999999950e-01,-2.135405999999999971e-01,-8.383274000000000115e+00,-2.116547000000000012e-01,-1.760869999999999935e+00 +-1.695109999999999950e-01,-2.135405999999999971e-01,-8.383274000000000115e+00,-2.116547000000000012e-01,-1.760869999999999935e+00 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +-2.702202000000000215e-01,-4.381294000000000022e-01,-1.712836000000000070e+01,-4.215282000000000195e-01,-3.257741999999999916e+00 +-2.581851000000000007e-01,-3.790555999999999925e-01,-9.962419000000000580e+00,-3.698974999999999902e-01,-2.310954000000000175e+00 +2.997171000000000141e-01,2.283850000000000047e-01,2.434960999999999842e+01,2.255968999999999891e-01,4.193529999999999980e+00 +2.301989999999999939e-02,2.246269999999999864e-02,1.138465999999999978e+00,2.246050000000000130e-02,2.391298000000000035e-01 +-2.468170000000000086e-01,-3.448183000000000220e-01,-7.430641999999999747e+00,-3.384757999999999933e-01,-1.903556999999999944e+00 +-1.464628000000000041e-01,-1.755713000000000135e-01,-5.651463999999999821e+00,-1.746134000000000019e-01,-1.310953999999999953e+00 +2.282457999999999987e-01,1.833316999999999863e-01,1.854314000000000107e+01,1.818726999999999983e-01,3.193529999999999980e+00 +6.286910999999999472e-01,4.369408000000000181e-01,8.989627999999999730e+00,4.274471000000000243e-01,3.101843999999999824e+00 +-3.474050000000000055e-02,-3.606560000000000321e-02,-1.340510000000000090e+00,-3.605719999999999759e-02,-3.109543000000000168e-01 +-1.043260000000000021e-01,-1.196085999999999955e-01,-6.612881999999999927e+00,-1.192368000000000039e-01,-1.257741999999999916e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +7.285449999999999982e-01,4.388867000000000185e-01,5.918842999999999677e+01,4.206465999999999816e-01,1.019353000000000087e+01 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-2.096791000000000071e-01,-2.652512000000000203e-01,-3.842745999999999995e+00,-2.628233999999999848e-01,-1.200623999999999914e+00 +-1.872730999999999979e-01,-2.479215999999999920e-01,-1.187062000000000062e+01,-2.446991000000000027e-01,-2.257741999999999916e+00 +3.711883999999999739e-01,2.696834000000000175e-01,3.015607999999999933e+01,2.651503000000000054e-01,5.193529999999999980e+00 +-1.695109999999999950e-01,-2.135405999999999971e-01,-8.383274000000000115e+00,-2.116547000000000012e-01,-1.760869999999999935e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-1.464628000000000041e-01,-1.755713000000000135e-01,-5.651463999999999821e+00,-1.746134000000000019e-01,-1.310953999999999953e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +-1.695109999999999950e-01,-2.135405999999999971e-01,-8.383274000000000115e+00,-2.116547000000000012e-01,-1.760869999999999935e+00 +-1.464628000000000041e-01,-1.755713000000000135e-01,-5.651463999999999821e+00,-1.746134000000000019e-01,-1.310953999999999953e+00 +1.157372999999999985e+00,5.945905999999999691e-01,9.402724000000000615e+01,5.528035999999999506e-01,1.619352999999999909e+01 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-3.699073999999999973e-01,-7.680327999999999600e-01,-1.427336999999999989e+01,-7.037377000000000216e-01,-3.310954000000000175e+00 +1.887041000000000135e-01,1.599530000000000118e-01,7.281399000000000399e+00,1.592269000000000045e-01,1.689046000000000047e+00 +-2.096791000000000071e-01,-2.652512000000000203e-01,-3.842745999999999995e+00,-2.628233999999999848e-01,-1.200623999999999914e+00 +-2.657764000000000237e-01,-4.100574000000000163e-01,-1.314414000000000016e+01,-3.974823000000000106e-01,-2.760870000000000157e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-2.096791000000000071e-01,-2.652512000000000203e-01,-3.842745999999999995e+00,-2.628233999999999848e-01,-1.200623999999999914e+00 +-3.503730000000000039e-02,-3.618989999999999707e-02,-6.421223000000000347e-01,-3.618360000000000326e-02,-2.006240999999999997e-01 +1.085901000000000005e+00,5.710009999999999808e-01,8.822077000000000169e+01,5.334980000000000278e-01,1.519353000000000087e+01 +1.250489999999999935e-02,1.235319999999999994e-02,3.764715000000000145e-01,1.235289999999999999e-02,9.644320000000000670e-02 +-1.872730999999999979e-01,-2.479215999999999920e-01,-1.187062000000000062e+01,-2.446991000000000027e-01,-2.257741999999999916e+00 +1.396043999999999896e-01,1.248781000000000058e-01,2.558501999999999832e+00,1.246199000000000057e-01,7.993759000000000281e-01 +-7.324550000000000505e-02,-7.990869999999999918e-02,-3.622403999999999957e+00,-7.980790000000000106e-02,-7.608702000000000520e-01 +-3.503730000000000039e-02,-3.618989999999999707e-02,-6.421223000000000347e-01,-3.618360000000000326e-02,-2.006240999999999997e-01 +-2.309354999999999880e-01,-3.070077999999999974e-01,-5.424498999999999960e+00,-3.028983000000000092e-01,-1.534659999999999913e+00 +-2.657764000000000237e-01,-4.100574000000000163e-01,-1.314414000000000016e+01,-3.974823000000000106e-01,-2.760870000000000157e+00 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +4.121486999999999790e-01,3.025489000000000095e-01,1.590330999999999939e+01,2.977831000000000228e-01,3.689045999999999825e+00 +-1.695109999999999950e-01,-2.135405999999999971e-01,-8.383274000000000115e+00,-2.116547000000000012e-01,-1.760869999999999935e+00 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +1.887041000000000135e-01,1.599530000000000118e-01,7.281399000000000399e+00,1.592269000000000045e-01,1.689046000000000047e+00 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +-2.657764000000000237e-01,-4.100574000000000163e-01,-1.314414000000000016e+01,-3.974823000000000106e-01,-2.760870000000000157e+00 +-1.464628000000000041e-01,-1.755713000000000135e-01,-5.651463999999999821e+00,-1.746134000000000019e-01,-1.310953999999999953e+00 +4.260081000000000007e-01,3.243348999999999815e-01,6.091472000000000442e+00,3.203501999999999739e-01,2.101843999999999824e+00 +1.157372999999999985e+00,5.945905999999999691e-01,9.402724000000000615e+01,5.528035999999999506e-01,1.619352999999999909e+01 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-1.695109999999999950e-01,-2.135405999999999971e-01,-8.383274000000000115e+00,-2.116547000000000012e-01,-1.760869999999999935e+00 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +2.282457999999999987e-01,1.833316999999999863e-01,1.854314000000000107e+01,1.818726999999999983e-01,3.193529999999999980e+00 +-1.695109999999999950e-01,-2.135405999999999971e-01,-8.383274000000000115e+00,-2.116547000000000012e-01,-1.760869999999999935e+00 +1.445152000000000103e-01,1.252460999999999991e-01,9.160344000000000264e+00,1.248196000000000028e-01,1.742258000000000084e+00 +-3.474050000000000055e-02,-3.606560000000000321e-02,-1.340510000000000090e+00,-3.605719999999999759e-02,-3.109543000000000168e-01 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-1.171559999999999963e-01,-1.336393999999999915e-01,-3.527085000000000026e+00,-1.332541999999999893e-01,-9.035568000000000488e-01 +-8.045549999999999924e-02,-8.733109999999999484e-02,-1.889839000000000047e+00,-8.723329999999999973e-02,-5.346594999999999542e-01 +-1.695109999999999950e-01,-2.135405999999999971e-01,-8.383274000000000115e+00,-2.116547000000000012e-01,-1.760869999999999935e+00 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +-2.581851000000000007e-01,-3.790555999999999925e-01,-9.962419000000000580e+00,-3.698974999999999902e-01,-2.310954000000000175e+00 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +-3.503730000000000039e-02,-3.618989999999999707e-02,-6.421223000000000347e-01,-3.618360000000000326e-02,-2.006240999999999997e-01 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +1.445152000000000103e-01,1.252460999999999991e-01,9.160344000000000264e+00,1.248196000000000028e-01,1.742258000000000084e+00 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +-8.045549999999999924e-02,-8.733109999999999484e-02,-1.889839000000000047e+00,-8.723329999999999973e-02,-5.346594999999999542e-01 +8.838129999999999598e-02,8.266170000000000462e-02,9.860126000000000168e-01,8.260000000000000675e-02,3.757281000000000093e-01 +3.711883999999999739e-01,2.696834000000000175e-01,3.015607999999999933e+01,2.651503000000000054e-01,5.193529999999999980e+00 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +-2.309354999999999880e-01,-3.070077999999999974e-01,-5.424498999999999960e+00,-3.028983000000000092e-01,-1.534659999999999913e+00 +-1.872730999999999979e-01,-2.479215999999999920e-01,-1.187062000000000062e+01,-2.446991000000000027e-01,-2.257741999999999916e+00 +-1.171559999999999963e-01,-1.336393999999999915e-01,-3.527085000000000026e+00,-1.332541999999999893e-01,-9.035568000000000488e-01 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +-1.820410000000000084e-01,-2.191365999999999870e-01,-2.602996000000000087e+00,-2.178854000000000068e-01,-8.981559999999999544e-01 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-1.171559999999999963e-01,-1.336393999999999915e-01,-3.527085000000000026e+00,-1.332541999999999893e-01,-9.035568000000000488e-01 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +2.282457999999999987e-01,1.833316999999999863e-01,1.854314000000000107e+01,1.818726999999999983e-01,3.193529999999999980e+00 +-3.764779999999999793e-01,-7.438232999999999651e-01,-1.133419999999999916e+01,-6.893046000000000451e-01,-2.903557000000000166e+00 +2.064210000000000003e-02,2.028869999999999979e-02,2.951598999999999751e-01,2.028759999999999938e-02,1.018440000000000040e-01 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +1.192853999999999998e-01,1.062562999999999980e-01,5.899335999999999913e+00,1.060197999999999974e-01,1.239130000000000065e+00 +3.004263999999999823e-01,2.357630000000000003e-01,1.159234999999999971e+01,2.334703999999999946e-01,2.689045999999999825e+00 +2.997171000000000141e-01,2.283850000000000047e-01,2.434960999999999842e+01,2.255968999999999891e-01,4.193529999999999980e+00 +-1.872730999999999979e-01,-2.479215999999999920e-01,-1.187062000000000062e+01,-2.446991000000000027e-01,-2.257741999999999916e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-1.464628000000000041e-01,-1.755713000000000135e-01,-5.651463999999999821e+00,-1.746134000000000019e-01,-1.310953999999999953e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +1.250489999999999935e-02,1.235319999999999994e-02,3.764715000000000145e-01,1.235289999999999999e-02,9.644320000000000670e-02 +2.301989999999999939e-02,2.246269999999999864e-02,1.138465999999999978e+00,2.246050000000000130e-02,2.391298000000000035e-01 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +-3.620419000000000276e-01,-7.899543999999999455e-01,-1.790501000000000076e+01,-7.151566999999999785e-01,-3.760870000000000157e+00 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +-2.657764000000000237e-01,-4.100574000000000163e-01,-1.314414000000000016e+01,-3.974823000000000106e-01,-2.760870000000000157e+00 +-8.045549999999999924e-02,-8.733109999999999484e-02,-1.889839000000000047e+00,-8.723329999999999973e-02,-5.346594999999999542e-01 +-1.171559999999999963e-01,-1.336393999999999915e-01,-3.527085000000000026e+00,-1.332541999999999893e-01,-9.035568000000000488e-01 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +2.997171000000000141e-01,2.283850000000000047e-01,2.434960999999999842e+01,2.255968999999999891e-01,4.193529999999999980e+00 +-2.702202000000000215e-01,-4.381294000000000022e-01,-1.712836000000000070e+01,-4.215282000000000195e-01,-3.257741999999999916e+00 +2.282457999999999987e-01,1.833316999999999863e-01,1.854314000000000107e+01,1.818726999999999983e-01,3.193529999999999980e+00 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +-1.043260000000000021e-01,-1.196085999999999955e-01,-6.612881999999999927e+00,-1.192368000000000039e-01,-1.257741999999999916e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +5.856023000000000200e-01,3.771333000000000046e-01,4.757549000000000206e+01,3.652315999999999896e-01,8.193530000000000868e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +5.856023000000000200e-01,3.771333000000000046e-01,4.757549000000000206e+01,3.652315999999999896e-01,8.193530000000000868e+00 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +7.002440000000000053e-02,6.582540000000000613e-02,1.644819999999999949e+00,6.578340000000000576e-02,4.653404999999999903e-01 +-2.309354999999999880e-01,-3.070077999999999974e-01,-5.424498999999999960e+00,-3.028983000000000092e-01,-1.534659999999999913e+00 +1.421659000000000117e-01,1.256146999999999958e-01,4.280027999999999722e+00,1.252946000000000060e-01,1.096443000000000056e+00 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +-1.464628000000000041e-01,-1.755713000000000135e-01,-5.651463999999999821e+00,-1.746134000000000019e-01,-1.310953999999999953e+00 +-8.045549999999999924e-02,-8.733109999999999484e-02,-1.889839000000000047e+00,-8.723329999999999973e-02,-5.346594999999999542e-01 +2.282457999999999987e-01,1.833316999999999863e-01,1.854314000000000107e+01,1.818726999999999983e-01,3.193529999999999980e+00 +-2.657764000000000237e-01,-4.100574000000000163e-01,-1.314414000000000016e+01,-3.974823000000000106e-01,-2.760870000000000157e+00 +-1.695109999999999950e-01,-2.135405999999999971e-01,-8.383274000000000115e+00,-2.116547000000000012e-01,-1.760869999999999935e+00 +-2.096791000000000071e-01,-2.652512000000000203e-01,-3.842745999999999995e+00,-2.628233999999999848e-01,-1.200623999999999914e+00 +1.421659000000000117e-01,1.256146999999999958e-01,4.280027999999999722e+00,1.252946000000000060e-01,1.096443000000000056e+00 +1.228844000000000047e+00,6.174317999999999751e-01,9.983371999999999957e+01,5.712509000000000059e-01,1.719352999999999909e+01 +-1.872730999999999979e-01,-2.479215999999999920e-01,-1.187062000000000062e+01,-2.446991000000000027e-01,-2.257741999999999916e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +2.997171000000000141e-01,2.283850000000000047e-01,2.434960999999999842e+01,2.255968999999999891e-01,4.193529999999999980e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +2.997171000000000141e-01,2.283850000000000047e-01,2.434960999999999842e+01,2.255968999999999891e-01,4.193529999999999980e+00 +-2.581851000000000007e-01,-3.790555999999999925e-01,-9.962419000000000580e+00,-3.698974999999999902e-01,-2.310954000000000175e+00 +-1.872730999999999979e-01,-2.479215999999999920e-01,-1.187062000000000062e+01,-2.446991000000000027e-01,-2.257741999999999916e+00 +7.698180000000000300e-02,7.148079999999999712e-02,2.970444000000000084e+00,7.141540000000000388e-02,6.890456999999999832e-01 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-3.503730000000000039e-02,-3.618989999999999707e-02,-6.421223000000000347e-01,-3.618360000000000326e-02,-2.006240999999999997e-01 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +5.238709000000000282e-01,3.625683000000000100e-01,2.021425999999999945e+01,3.545109000000000177e-01,4.689046000000000269e+00 +6.355933000000000277e-01,4.173168999999999906e-01,2.452522000000000091e+01,4.052556999999999965e-01,5.689046000000000269e+00 +-2.657764000000000237e-01,-4.100574000000000163e-01,-1.314414000000000016e+01,-3.974823000000000106e-01,-2.760870000000000157e+00 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +-3.620419000000000276e-01,-7.899543999999999455e-01,-1.790501000000000076e+01,-7.151566999999999785e-01,-3.760870000000000157e+00 +3.004263999999999823e-01,2.357630000000000003e-01,1.159234999999999971e+01,2.334703999999999946e-01,2.689045999999999825e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-2.702202000000000215e-01,-4.381294000000000022e-01,-1.712836000000000070e+01,-4.215282000000000195e-01,-3.257741999999999916e+00 +-8.045549999999999924e-02,-8.733109999999999484e-02,-1.889839000000000047e+00,-8.723329999999999973e-02,-5.346594999999999542e-01 +-2.309354999999999880e-01,-3.070077999999999974e-01,-5.424498999999999960e+00,-3.028983000000000092e-01,-1.534659999999999913e+00 +3.933564999999999978e-01,2.852238999999999747e-01,2.493356999999999957e+01,2.803706999999999727e-01,4.742257999999999640e+00 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +-2.468170000000000086e-01,-3.448183000000000220e-01,-7.430641999999999747e+00,-3.384757999999999933e-01,-1.903556999999999944e+00 +2.052297999999999956e+00,8.591706999999999539e-01,1.300884000000000071e+02,7.594912999999999803e-01,2.474226000000000170e+01 +7.698180000000000300e-02,7.148079999999999712e-02,2.970444000000000084e+00,7.141540000000000388e-02,6.890456999999999832e-01 +-1.464628000000000041e-01,-1.755713000000000135e-01,-5.651463999999999821e+00,-1.746134000000000019e-01,-1.310953999999999953e+00 +-2.309354999999999880e-01,-3.070077999999999974e-01,-5.424498999999999960e+00,-3.028983000000000092e-01,-1.534659999999999913e+00 +6.570736000000000354e-01,4.088127999999999762e-01,5.338195000000000334e+01,3.938633999999999746e-01,9.193530000000000868e+00 +-1.171559999999999963e-01,-1.336393999999999915e-01,-3.527085000000000026e+00,-1.332541999999999893e-01,-9.035568000000000488e-01 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +-1.695109999999999950e-01,-2.135405999999999971e-01,-8.383274000000000115e+00,-2.116547000000000012e-01,-1.760869999999999935e+00 +-2.137889999999999929e-02,-2.192300000000000151e-02,-1.355140000000000011e+00,-2.192070000000000130e-02,-2.577418000000000209e-01 +1.187454999999999927e+00,6.717912999999999801e-01,2.176225000000000165e+01,6.367920000000000247e-01,6.799375999999999642e+00 +-2.468170000000000086e-01,-3.448183000000000220e-01,-7.430641999999999747e+00,-3.384757999999999933e-01,-1.903556999999999944e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-2.702202000000000215e-01,-4.381294000000000022e-01,-1.712836000000000070e+01,-4.215282000000000195e-01,-3.257741999999999916e+00 +4.426596999999999893e-01,3.079182999999999781e-01,3.596255000000000024e+01,3.012597000000000191e-01,6.193529999999999980e+00 +1.567745000000000111e-01,1.335630999999999902e-01,1.273667000000000016e+01,1.329933000000000087e-01,2.193529999999999980e+00 +6.156819999999999654e-02,5.763419999999999654e-02,3.902601999999999904e+00,5.759229999999999905e-02,7.422581999999999791e-01 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +7.698180000000000300e-02,7.148079999999999712e-02,2.970444000000000084e+00,7.141540000000000388e-02,6.890456999999999832e-01 +-2.702202000000000215e-01,-4.381294000000000022e-01,-1.712836000000000070e+01,-4.215282000000000195e-01,-3.257741999999999916e+00 +-1.695109999999999950e-01,-2.135405999999999971e-01,-8.383274000000000115e+00,-2.116547000000000012e-01,-1.760869999999999935e+00 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +-1.872730999999999979e-01,-2.479215999999999920e-01,-1.187062000000000062e+01,-2.446991000000000027e-01,-2.257741999999999916e+00 +7.002440000000000053e-02,6.582540000000000613e-02,1.644819999999999949e+00,6.578340000000000576e-02,4.653404999999999903e-01 +2.282457999999999987e-01,1.833316999999999863e-01,1.854314000000000107e+01,1.818726999999999983e-01,3.193529999999999980e+00 +7.285449999999999982e-01,4.388867000000000185e-01,5.918842999999999677e+01,4.206465999999999816e-01,1.019353000000000087e+01 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-1.872730999999999979e-01,-2.479215999999999920e-01,-1.187062000000000062e+01,-2.446991000000000027e-01,-2.257741999999999916e+00 +-1.872730999999999979e-01,-2.479215999999999920e-01,-1.187062000000000062e+01,-2.446991000000000027e-01,-2.257741999999999916e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-3.503730000000000039e-02,-3.618989999999999707e-02,-6.421223000000000347e-01,-3.618360000000000326e-02,-2.006240999999999997e-01 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +2.997171000000000141e-01,2.283850000000000047e-01,2.434960999999999842e+01,2.255968999999999891e-01,4.193529999999999980e+00 +7.002440000000000053e-02,6.582540000000000613e-02,1.644819999999999949e+00,6.578340000000000576e-02,4.653404999999999903e-01 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +5.141310000000000047e-01,3.436040000000000205e-01,4.176901999999999759e+01,3.344771000000000272e-01,7.193529999999999980e+00 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +1.887041000000000135e-01,1.599530000000000118e-01,7.281399000000000399e+00,1.592269000000000045e-01,1.689046000000000047e+00 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +4.080817999999999945e-01,2.968036000000000008e-01,2.018195000000000050e+01,2.918473999999999791e-01,4.239130000000000287e+00 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +1.250489999999999935e-02,1.235319999999999994e-02,3.764715000000000145e-01,1.235289999999999999e-02,9.644320000000000670e-02 +-1.464628000000000041e-01,-1.755713000000000135e-01,-5.651463999999999821e+00,-1.746134000000000019e-01,-1.310953999999999953e+00 +-1.872730999999999979e-01,-2.479215999999999920e-01,-1.187062000000000062e+01,-2.446991000000000027e-01,-2.257741999999999916e+00 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +7.002440000000000053e-02,6.582540000000000613e-02,1.644819999999999949e+00,6.578340000000000576e-02,4.653404999999999903e-01 +-1.171559999999999963e-01,-1.336393999999999915e-01,-3.527085000000000026e+00,-1.332541999999999893e-01,-9.035568000000000488e-01 +-2.702202000000000215e-01,-4.381294000000000022e-01,-1.712836000000000070e+01,-4.215282000000000195e-01,-3.257741999999999916e+00 +-3.699073999999999973e-01,-7.680327999999999600e-01,-1.427336999999999989e+01,-7.037377000000000216e-01,-3.310954000000000175e+00 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +3.104094000000000020e-01,2.372537999999999869e-01,1.967583000000000126e+01,2.344215000000000049e-01,3.742258000000000084e+00 +-1.872730999999999979e-01,-2.479215999999999920e-01,-1.187062000000000062e+01,-2.446991000000000027e-01,-2.257741999999999916e+00 +4.260081000000000007e-01,3.243348999999999815e-01,6.091472000000000442e+00,3.203501999999999739e-01,2.101843999999999824e+00 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +2.282457999999999987e-01,1.833316999999999863e-01,1.854314000000000107e+01,1.818726999999999983e-01,3.193529999999999980e+00 +3.711883999999999739e-01,2.696834000000000175e-01,3.015607999999999933e+01,2.651503000000000054e-01,5.193529999999999980e+00 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +-1.043260000000000021e-01,-1.196085999999999955e-01,-6.612881999999999927e+00,-1.192368000000000039e-01,-1.257741999999999916e+00 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +-1.695109999999999950e-01,-2.135405999999999971e-01,-8.383274000000000115e+00,-2.116547000000000012e-01,-1.760869999999999935e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +8.530319999999999570e-02,7.769130000000000480e-02,6.930196999999999719e+00,7.757830000000000281e-02,1.193529999999999980e+00 +-1.464628000000000041e-01,-1.755713000000000135e-01,-5.651463999999999821e+00,-1.746134000000000019e-01,-1.310953999999999953e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-3.503730000000000039e-02,-3.618989999999999707e-02,-6.421223000000000347e-01,-3.618360000000000326e-02,-2.006240999999999997e-01 +2.718267999999999796e-01,2.192536999999999958e-01,8.183585000000000775e+00,2.175746000000000069e-01,2.096442999999999834e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +2.997171000000000141e-01,2.283850000000000047e-01,2.434960999999999842e+01,2.255968999999999891e-01,4.193529999999999980e+00 +-3.531673000000000173e-01,-8.098043000000000324e-01,-2.238610999999999862e+01,-7.238196999999999548e-01,-4.257742000000000360e+00 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +2.229442000000000146e+00,8.831845999999999863e-01,1.811243000000000052e+02,7.685497999999999497e-01,3.119352999999999909e+01 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +3.711883999999999739e-01,2.696834000000000175e-01,3.015607999999999933e+01,2.651503000000000054e-01,5.193529999999999980e+00 +7.285449999999999982e-01,4.388867000000000185e-01,5.918842999999999677e+01,4.206465999999999816e-01,1.019353000000000087e+01 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +-3.820721999999999730e-01,-6.189419000000000448e-01,-4.262531000000000070e+00,-5.955721999999999960e-01,-1.624271999999999938e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-2.468170000000000086e-01,-3.448183000000000220e-01,-7.430641999999999747e+00,-3.384757999999999933e-01,-1.903556999999999944e+00 +-2.702202000000000215e-01,-4.381294000000000022e-01,-1.712836000000000070e+01,-4.215282000000000195e-01,-3.257741999999999916e+00 +-7.324550000000000505e-02,-7.990869999999999918e-02,-3.622403999999999957e+00,-7.980790000000000106e-02,-7.608702000000000520e-01 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-1.171559999999999963e-01,-1.336393999999999915e-01,-3.527085000000000026e+00,-1.332541999999999893e-01,-9.035568000000000488e-01 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +-8.045549999999999924e-02,-8.733109999999999484e-02,-1.889839000000000047e+00,-8.723329999999999973e-02,-5.346594999999999542e-01 +8.313741999999999521e-01,5.349441000000000335e-01,1.188777999999999935e+01,5.179964000000000235e-01,4.101843999999999824e+00 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +2.205042999999999864e-01,1.853983999999999910e-01,5.179479999999999862e+00,1.844724000000000086e-01,1.465340000000000087e+00 +2.064210000000000003e-02,2.028869999999999979e-02,2.951598999999999751e-01,2.028759999999999938e-02,1.018440000000000040e-01 +-1.695109999999999950e-01,-2.135405999999999971e-01,-8.383274000000000115e+00,-2.116547000000000012e-01,-1.760869999999999935e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +5.141310000000000047e-01,3.436040000000000205e-01,4.176901999999999759e+01,3.344771000000000272e-01,7.193529999999999980e+00 +4.426596999999999893e-01,3.079182999999999781e-01,3.596255000000000024e+01,3.012597000000000191e-01,6.193529999999999980e+00 +-2.581851000000000007e-01,-3.790555999999999925e-01,-9.962419000000000580e+00,-3.698974999999999902e-01,-2.310954000000000175e+00 +4.426596999999999893e-01,3.079182999999999781e-01,3.596255000000000024e+01,3.012597000000000191e-01,6.193529999999999980e+00 +2.155508999999999897e-01,1.777640000000000053e-01,1.066020999999999930e+01,1.766681999999999975e-01,2.239129999999999843e+00 +-3.764779999999999793e-01,-7.438232999999999651e-01,-1.133419999999999916e+01,-6.893046000000000451e-01,-2.903557000000000166e+00 +-1.820410000000000084e-01,-2.191365999999999870e-01,-2.602996000000000087e+00,-2.178854000000000068e-01,-8.981559999999999544e-01 +2.155508999999999897e-01,1.777640000000000053e-01,1.066020999999999930e+01,1.766681999999999975e-01,2.239129999999999843e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-1.468454999999999899e-01,-1.682093000000000060e-01,-1.638258999999999910e+00,-1.676931999999999867e-01,-6.242718999999999907e-01 +-8.045549999999999924e-02,-8.733109999999999484e-02,-1.889839000000000047e+00,-8.723329999999999973e-02,-5.346594999999999542e-01 +1.887041000000000135e-01,1.599530000000000118e-01,7.281399000000000399e+00,1.592269000000000045e-01,1.689046000000000047e+00 +-2.137889999999999929e-02,-2.192300000000000151e-02,-1.355140000000000011e+00,-2.192070000000000130e-02,-2.577418000000000209e-01 +-1.043260000000000021e-01,-1.196085999999999955e-01,-6.612881999999999927e+00,-1.192368000000000039e-01,-1.257741999999999916e+00 +-2.096791000000000071e-01,-2.652512000000000203e-01,-3.842745999999999995e+00,-2.628233999999999848e-01,-1.200623999999999914e+00 +7.698180000000000300e-02,7.148079999999999712e-02,2.970444000000000084e+00,7.141540000000000388e-02,6.890456999999999832e-01 +-1.464628000000000041e-01,-1.755713000000000135e-01,-5.651463999999999821e+00,-1.746134000000000019e-01,-1.310953999999999953e+00 +-2.096791000000000071e-01,-2.652512000000000203e-01,-3.842745999999999995e+00,-2.628233999999999848e-01,-1.200623999999999914e+00 +-3.699073999999999973e-01,-7.680327999999999600e-01,-1.427336999999999989e+01,-7.037377000000000216e-01,-3.310954000000000175e+00 +-1.872730999999999979e-01,-2.479215999999999920e-01,-1.187062000000000062e+01,-2.446991000000000027e-01,-2.257741999999999916e+00 +-2.581851000000000007e-01,-3.790555999999999925e-01,-9.962419000000000580e+00,-3.698974999999999902e-01,-2.310954000000000175e+00 +-1.872730999999999979e-01,-2.479215999999999920e-01,-1.187062000000000062e+01,-2.446991000000000027e-01,-2.257741999999999916e+00 +-3.764779999999999793e-01,-7.438232999999999651e-01,-1.133419999999999916e+01,-6.893046000000000451e-01,-2.903557000000000166e+00 +-2.581851000000000007e-01,-3.790555999999999925e-01,-9.962419000000000580e+00,-3.698974999999999902e-01,-2.310954000000000175e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-2.468170000000000086e-01,-3.448183000000000220e-01,-7.430641999999999747e+00,-3.384757999999999933e-01,-1.903556999999999944e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-3.474050000000000055e-02,-3.606560000000000321e-02,-1.340510000000000090e+00,-3.605719999999999759e-02,-3.109543000000000168e-01 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +2.997171000000000141e-01,2.283850000000000047e-01,2.434960999999999842e+01,2.255968999999999891e-01,4.193529999999999980e+00 +-1.171559999999999963e-01,-1.336393999999999915e-01,-3.527085000000000026e+00,-1.332541999999999893e-01,-9.035568000000000488e-01 +-3.531673000000000173e-01,-8.098043000000000324e-01,-2.238610999999999862e+01,-7.238196999999999548e-01,-4.257742000000000360e+00 +-2.468170000000000086e-01,-3.448183000000000220e-01,-7.430641999999999747e+00,-3.384757999999999933e-01,-1.903556999999999944e+00 +1.887041000000000135e-01,1.599530000000000118e-01,7.281399000000000399e+00,1.592269000000000045e-01,1.689046000000000047e+00 +1.192853999999999998e-01,1.062562999999999980e-01,5.899335999999999913e+00,1.060197999999999974e-01,1.239130000000000065e+00 +1.250489999999999935e-02,1.235319999999999994e-02,3.764715000000000145e-01,1.235289999999999999e-02,9.644320000000000670e-02 +2.282457999999999987e-01,1.833316999999999863e-01,1.854314000000000107e+01,1.818726999999999983e-01,3.193529999999999980e+00 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +1.383189999999999940e-02,1.360699999999999930e-02,1.123726999999999920e+00,1.360629999999999999e-02,1.935302000000000133e-01 +-1.820410000000000084e-01,-2.191365999999999870e-01,-2.602996000000000087e+00,-2.178854000000000068e-01,-8.981559999999999544e-01 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-2.720534000000000008e-01,-4.635484999999999745e-01,-2.210215000000000174e+01,-4.423134000000000232e-01,-3.806470000000000020e+00 +4.426596999999999893e-01,3.079182999999999781e-01,3.596255000000000024e+01,3.012597000000000191e-01,6.193529999999999980e+00 +-2.005821000000000132e-01,-2.790536000000000127e-01,-1.629568000000000083e+01,-2.740469999999999851e-01,-2.806470000000000020e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-1.291107999999999978e-01,-1.555565999999999893e-01,-1.048920999999999992e+01,-1.546600999999999948e-01,-1.806470000000000020e+00 +-5.763950000000000323e-02,-6.211420000000000136e-02,-4.682743000000000322e+00,-6.205639999999999767e-02,-8.064698000000000144e-01 +5.311487999999999765e-01,3.710235000000000061e-01,1.599070000000000036e+01,3.631816999999999962e-01,4.096442999999999834e+00 +1.396043999999999896e-01,1.248781000000000058e-01,2.558501999999999832e+00,1.246199000000000057e-01,7.993759000000000281e-01 +-1.043260000000000021e-01,-1.196085999999999955e-01,-6.612881999999999927e+00,-1.192368000000000039e-01,-1.257741999999999916e+00 +2.155508999999999897e-01,1.777640000000000053e-01,1.066020999999999930e+01,1.766681999999999975e-01,2.239129999999999843e+00 +-1.872730999999999979e-01,-2.479215999999999920e-01,-1.187062000000000062e+01,-2.446991000000000027e-01,-2.257741999999999916e+00 diff --git a/statsmodels/genmod/tests/results/poisson_weights_v2.do b/statsmodels/genmod/tests/results/poisson_weights_v2.do new file mode 100644 index 0000000..31cc0a0 --- /dev/null +++ b/statsmodels/genmod/tests/results/poisson_weights_v2.do @@ -0,0 +1,447 @@ +clear +tempname filename +local filename = "M:\josef_new\stata_work\results_glm_poisson_weights.py" + +insheet using M:\josef_new\eclipse_ws\statsmodels\statsmodels_py34_pr\statsmodels\datasets\cpunish\cpunish.csv +generate LN_VC100k96 = log(vc100k96) +generate var10 = 1 in 1 +replace var10 = 1 in 2 +replace var10 = 1 in 3 +replace var10 = 2 in 4 +replace var10 = 2 in 5 +replace var10 = 2 in 6 +replace var10 = 3 in 7 +replace var10 = 3 in 8 +replace var10 = 3 in 9 +replace var10 = 1 in 10 +replace var10 = 1 in 11 +replace var10 = 1 in 12 +replace var10 = 2 in 13 +replace var10 = 2 in 14 +replace var10 = 2 in 15 +replace var10 = 3 in 16 +replace var10 = 3 in 17 +label variable var10 "fweight" +rename var10 fweight +label variable LN_VC100k96 "LN_VC100k96" + +/* for checkin Poisson produces the same, poisson doesn't allow aweights */ +/*poisson executions income perpoverty perblack LN_VC100k96 south degree */ + + +glm executions income perpoverty perblack LN_VC100k96 south degree, family(poisson) + +/* copied from glm_logit_constrained.do */ +/*glm grade gpa tuce psi, family(binomial) constraints(2) */ + +/* boiler plate, add matrices if needed */ +tempname cov +tempname params_table +matrix cov = e(V) +matrix params_table = r(table)' +estat ic +matrix infocrit = r(S) +predict predict_mu, mu +predict predict_linpred_std, stdp +predict predict_hat, hat + +predict score_factor, score +predict resid_anscombe, anscombe +predict resid_deviance, deviance +predict resid_response, response +predict resid_pearson, pearson +predict resid_working, working + +local pred predict_mu predict_linpred_std predict_hat +local res score_factor resid_response resid_anscombe resid_deviance resid_pearson resid_working +mkmat `res', matrix(resids) +mkmat `pred', matrix(predicted) +estmat2nparray params_table cov infocrit predicted resids, saving(`filename') format("%16.0g") resname("poisson_none_nonrobust") replace +/*------------------*/ + +drop `pred' `res' + + +glm executions income perpoverty perblack LN_VC100k96 south degree [fweight=fweight], family(poisson) + +/* boiler plate, add matrices if needed */ +tempname cov +tempname params_table +matrix cov = e(V) +matrix params_table = r(table)' +estat ic +matrix infocrit = r(S) +predict predict_mu, mu +predict predict_linpred_std, stdp +predict predict_hat, hat + +predict score_factor, score +predict resid_anscombe, anscombe +predict resid_deviance, deviance +predict resid_response, response +predict resid_pearson, pearson +predict resid_working, working + +local pred predict_mu predict_linpred_std predict_hat +local res score_factor resid_response resid_anscombe resid_deviance resid_pearson resid_working +mkmat `res', matrix(resids) +mkmat `pred', matrix(predicted) +estmat2nparray params_table cov infocrit predicted resids, saving(`filename') format("%16.0g") resname("poisson_fweight_nonrobust") append + +/*------------------*/ + +drop `pred' `res' + +glm executions income perpoverty perblack LN_VC100k96 south degree [aweight=fweight], family(poisson) + +/* boiler plate, add matrices if needed */ +tempname cov +tempname params_table +matrix cov = e(V) +matrix params_table = r(table)' +estat ic +matrix infocrit = r(S) +predict predict_mu, mu +predict predict_linpred_std, stdp +predict predict_hat, hat + +predict score_factor, score +predict resid_anscombe, anscombe +predict resid_deviance, deviance +predict resid_response, response +predict resid_pearson, pearson +predict resid_working, working + +local pred predict_mu predict_linpred_std predict_hat +local res score_factor resid_response resid_anscombe resid_deviance resid_pearson resid_working +mkmat `res', matrix(resids) +mkmat `pred', matrix(predicted) +estmat2nparray params_table cov infocrit predicted resids, saving(`filename') format("%16.0g") resname("poisson_aweight_nonrobust") append +/*------------------*/ + + +drop `pred' `res' + +glm executions income perpoverty perblack LN_VC100k96 south degree [pweight=fweight], family(poisson) + +/* boiler plate, add matrices if needed */ +tempname cov +tempname params_table +matrix cov = e(V) +matrix params_table = r(table)' +estat ic +matrix infocrit = r(S) + +predict predict_mu, mu +predict predict_linpred_std, stdp +//predict predict_hat, hat not allowed after robust, pweights implies HC1 + +predict score_factor, score +predict resid_anscombe, anscombe +predict resid_deviance, deviance +predict resid_response, response +predict resid_pearson, pearson +predict resid_working, working + +local pred predict_mu predict_linpred_std //predict_hat +local res score_factor resid_response resid_anscombe resid_deviance resid_pearson resid_working +mkmat `res', matrix(resids) +mkmat `pred', matrix(predicted) +estmat2nparray params_table cov infocrit predicted resids, saving(`filename') format("%16.0g") resname("poisson_pweight_nonrobust") append +/*------------------*/ + +/*******************************************************************/ +/*********** next with robust = HC1, don't save resid and similar */ + +drop `pred' `res' +glm executions income perpoverty perblack LN_VC100k96 south degree, family(poisson) vce(robust) + +/* boiler plate, add matrices if needed */ +tempname cov +tempname params_table +matrix cov = e(V) +matrix params_table = r(table)' +estat ic +matrix infocrit = r(S) +predict predict_mu, mu +predict predict_linpred_std, stdp +//predict predict_hat, hat + +local pred predict_mu predict_linpred_std //predict_hat +mkmat `pred', matrix(predicted) +estmat2nparray params_table cov infocrit predicted, saving(`filename') format("%16.0g") resname("poisson_none_hc1") append +/*------------------*/ + +drop `pred' + +glm executions income perpoverty perblack LN_VC100k96 south degree [fweight=fweight], family(poisson) vce(robust) + +/* boiler plate, add matrices if needed */ +tempname cov +tempname params_table +matrix cov = e(V) +matrix params_table = r(table)' +estat ic +matrix infocrit = r(S) +predict predict_mu, mu +predict predict_linpred_std, stdp +//predict predict_hat, hat + +local pred predict_mu predict_linpred_std //predict_hat +mkmat `pred', matrix(predicted) +estmat2nparray params_table cov infocrit predicted, saving(`filename') format("%16.0g") resname("poisson_fweight_hc1") append +/*------------------*/ + +drop `pred' + +glm executions income perpoverty perblack LN_VC100k96 south degree [aweight=fweight], family(poisson) vce(robust) + +/* boiler plate, add matrices if needed */ +tempname cov +tempname params_table +matrix cov = e(V) +matrix params_table = r(table)' +estat ic +matrix infocrit = r(S) +predict predict_mu, mu +predict predict_linpred_std, stdp +//predict predict_hat, hat + +local pred predict_mu predict_linpred_std //predict_hat +mkmat `pred', matrix(predicted) +estmat2nparray params_table cov infocrit predicted, saving(`filename') format("%16.0g") resname("poisson_aweight_hc1") append +/*------------------*/ + + +drop `pred' + +glm executions income perpoverty perblack LN_VC100k96 south degree [pweight=fweight], family(poisson) vce(robust) + +/* boiler plate, add matrices if needed */ +tempname cov +tempname params_table +matrix cov = e(V) +matrix params_table = r(table)' +estat ic +matrix infocrit = r(S) +predict predict_mu, mu +predict predict_linpred_std, stdp +//predict predict_hat, hat + +local pred predict_mu predict_linpred_std //predict_hat +mkmat `pred', matrix(predicted) +estmat2nparray params_table cov infocrit predicted, saving(`filename') format("%16.0g") resname("poisson_pweight_hc1") append +/*------------------*/ + + + + +/*****************************************************************/ +/*************************** with cluster robust standard errors */ +gen id = (_n - mod(_n, 2)) / 2 + +drop `pred' +glm executions income perpoverty perblack LN_VC100k96 south degree, family(poisson) vce(cluster id) + +/* boiler plate, add matrices if needed */ +tempname cov +tempname params_table +matrix cov = e(V) +matrix params_table = r(table)' +estat ic +matrix infocrit = r(S) +predict predict_mu, mu +predict predict_linpred_std, stdp +//predict predict_hat, hat + +local pred predict_mu predict_linpred_std //predict_hat +mkmat `pred', matrix(predicted) +estmat2nparray params_table cov infocrit predicted, saving(`filename') format("%16.0g") resname("poisson_none_clu1") append +/*------------------*/ + +drop `pred' + +glm executions income perpoverty perblack LN_VC100k96 south degree [fweight=fweight], family(poisson) vce(cluster id) + +/* boiler plate, add matrices if needed */ +tempname cov +tempname params_table +matrix cov = e(V) +matrix params_table = r(table)' +estat ic +matrix infocrit = r(S) +predict predict_mu, mu +predict predict_linpred_std, stdp +//predict predict_hat, hat + +local pred predict_mu predict_linpred_std //predict_hat +mkmat `pred', matrix(predicted) +estmat2nparray params_table cov infocrit predicted, saving(`filename') format("%16.0g") resname("poisson_fweight_clu1") append +/*------------------*/ + +drop `pred' + +glm executions income perpoverty perblack LN_VC100k96 south degree [aweight=fweight], family(poisson) vce(cluster id) + +/* boiler plate, add matrices if needed */ +tempname cov +tempname params_table +matrix cov = e(V) +matrix params_table = r(table)' +estat ic +matrix infocrit = r(S) +predict predict_mu, mu +predict predict_linpred_std, stdp +//predict predict_hat, hat + +local pred predict_mu predict_linpred_std //predict_hat +mkmat `pred', matrix(predicted) +estmat2nparray params_table cov infocrit predicted, saving(`filename') format("%16.0g") resname("poisson_aweight_clu1") append +/*------------------*/ + + +drop `pred' + +glm executions income perpoverty perblack LN_VC100k96 south degree [pweight=fweight], family(poisson) vce(cluster id) + +/* boiler plate, add matrices if needed */ +tempname cov +tempname params_table +matrix cov = e(V) +matrix params_table = r(table)' +estat ic +matrix infocrit = r(S) +predict predict_mu, mu +predict predict_linpred_std, stdp +//predict predict_hat, hat + +local pred predict_mu predict_linpred_std //predict_hat +mkmat `pred', matrix(predicted) +estmat2nparray params_table cov infocrit predicted, saving(`filename') format("%16.0g") resname("poisson_pweight_clu1") append +/*------------------*/ + + + +/*****************************************************************/ +/* +gen idn = _n +glm executions income perpoverty perblack LN_VC100k96 south degree, family(poisson) vce(cluster idn) +*/ + +/* +glm grade gpa tuce psi, family(binomial) constraints(2) vce(robust) +/* boiler plate, add matrices if needed */ +tempname cov +tempname params_table +matrix cov = e(V) +matrix params_table = r(table)' +estat ic +matrix infocrit = r(S) +estmat2nparray params_table cov infocrit, saving(`filename') format("%16.0g") resname("constraint2_robust") append +/*------------------*/ + + +capture drop fittedvalues fittedvalues_se +predict fittedvalues, xb +predict fittedvalues_se, stdp +outsheet fittedvalues fittedvalues_se using theil_predict.csv, comma replace +/*------------------*/ + +glm executions income perpoverty perblack LN_VC100k96 south degree [aweight=fweight], family(poisson) +predict resid_deviance_aw, deviance + + +*/ + +/*------------------*/ + +drop `pred' + +regress executions income perpoverty perblack LN_VC100k96 south degree [aweight=fweight], vce(robust) + +/* boiler plate, add matrices if needed */ +tempname cov +tempname params_table +matrix cov = e(V) +matrix params_table = r(table)' +estat ic +matrix infocrit = r(S) +predict predict_mu, xb +predict predict_std, stdp +//predict predict_stf, stdf +//predict predict_str, stdr +//predict predict_hat, hat + +local pred predict_mu predict_std //predict_stf predict_str predict_hat +mkmat `pred', matrix(predicted) +estmat2nparray params_table cov infocrit predicted, saving(`filename') format("%16.0g") resname("wls_aweight_robust") append +/*------------------*/ + +drop `pred' + +regress executions income perpoverty perblack LN_VC100k96 south degree [aweight=fweight], vce(cluster id) + +/* boiler plate, add matrices if needed */ +tempname cov +tempname params_table +matrix cov = e(V) +matrix params_table = r(table)' +estat ic +matrix infocrit = r(S) +predict predict_mu, xb +predict predict_std, stdp +//predict predict_stf, stdf +//predict predict_str, stdr +//predict predict_hat, hat + +local pred predict_mu predict_std //predict_stf predict_str predict_hat +mkmat `pred', matrix(predicted) +estmat2nparray params_table cov infocrit predicted, saving(`filename') format("%16.0g") resname("wls_aweight_clu1") append +/*------------------*/ + + +drop `pred' + +regress executions income perpoverty perblack LN_VC100k96 south degree [fweight=fweight], vce(cluster id) + +/* boiler plate, add matrices if needed */ +tempname cov +tempname params_table +matrix cov = e(V) +matrix params_table = r(table)' +estat ic +matrix infocrit = r(S) +predict predict_mu, xb +predict predict_std, stdp +//predict predict_stf, stdf +//predict predict_str, stdr +//predict predict_hat, hat + +local pred predict_mu predict_std //predict_stf predict_str predict_hat +mkmat `pred', matrix(predicted) +estmat2nparray params_table cov infocrit predicted, saving(`filename') format("%16.0g") resname("wls_fweight_clu1") append +/*------------------*/ + +drop `pred' + +regress executions income perpoverty perblack LN_VC100k96 south degree [pweight=fweight], vce(cluster id) + +/* boiler plate, add matrices if needed */ +tempname cov +tempname params_table +matrix cov = e(V) +matrix params_table = r(table)' +estat ic +matrix infocrit = r(S) +predict predict_mu, xb +predict predict_std, stdp +//predict predict_stf, stdf +//predict predict_str, stdr +//predict predict_hat, hat + +local pred predict_mu predict_std //predict_stf predict_str predict_hat +mkmat `pred', matrix(predicted) +estmat2nparray params_table cov infocrit predicted, saving(`filename') format("%16.0g") resname("wls_pweight_clu1") append +/*------------------*/ + +drop `pred' diff --git a/statsmodels/genmod/tests/results/results_glm.py b/statsmodels/genmod/tests/results/results_glm.py new file mode 100644 index 0000000..6103f8d --- /dev/null +++ b/statsmodels/genmod/tests/results/results_glm.py @@ -0,0 +1,4114 @@ +""" +Results for test_glm.py. + +Hard-coded from R or Stata. Note that some of the remaining discrepancy vs. +Stata may be because Stata uses ML by default unless you specifically ask for +IRLS. +""" +import numpy as np +from statsmodels.compat.python import asbytes +from . import glm_test_resids +import os +from statsmodels.api import add_constant, categorical + +# Test Precisions +DECIMAL_4 = 4 +DECIMAL_3 = 3 +DECIMAL_2 = 2 +DECIMAL_1 = 1 +DECIMAL_0 = 0 + + +class Longley(object): + """ + Longley used for TestGlmGaussian + + Results are from Stata and R. + """ + def __init__(self): + + self.resids = np.array([[ 267.34002976, 267.34002976, 267.34002976, + 267.34002976, 267.34002976], + [ -94.0139424 , -94.0139424 , -94.0139424 , -94.0139424 , + -94.0139424 ], + [ 46.28716776, 46.28716776, 46.28716776, 46.28716776, + 46.28716776], + [-410.11462193, -410.11462193, -410.11462193, -410.11462193, + -410.11462193], + [ 309.71459076, 309.71459076, 309.71459076, 309.71459076, + 309.71459076], + [-249.31121533, -249.31121533, -249.31121533, -249.31121533, + -249.31121533], + [-164.0489564 , -164.0489564 , -164.0489564 , -164.0489564 , + -164.0489564 ], + [ -13.18035687, -13.18035687, -13.18035687, -13.18035687, + -13.18035687], + [ 14.3047726 , 14.3047726 , 14.3047726 , 14.3047726 , + 14.3047726 ], + [ 455.39409455, 455.39409455, 455.39409455, 455.39409455, + 455.39409455], + [ -17.26892711, -17.26892711, -17.26892711, -17.26892711, + -17.26892711], + [ -39.05504252, -39.05504252, -39.05504252, -39.05504252, + -39.05504252], + [-155.5499736 , -155.5499736 , -155.5499736 , -155.5499736 , + -155.5499736 ], + [ -85.67130804, -85.67130804, -85.67130804, -85.67130804, + -85.67130804], + [ 341.93151396, 341.93151396, 341.93151396, 341.93151396, + 341.93151396], + [-206.75782519, -206.75782519, -206.75782519, -206.75782519, + -206.75782519]]) + self.null_deviance = 185008826 # taken from R. + self.params = np.array([ 1.50618723e+01, -3.58191793e-02, + -2.02022980e+00, -1.03322687e+00, -5.11041057e-02, + 1.82915146e+03, -3.48225863e+06]) + self.bse = np.array([8.49149258e+01, 3.34910078e-02, 4.88399682e-01, + 2.14274163e-01, 2.26073200e-01, 4.55478499e+02, 8.90420384e+05]) + self.aic_R = 235.23486961695903 # R adds 2 for dof to AIC + self.aic_Stata = 14.57717943930524 # stata divides by nobs + self.deviance = 836424.0555058046 # from R + self.scale = 92936.006167311629 + self.llf = -109.61743480847952 + self.null_deviance = 185008826 # taken from R. Rpy bug + + self.bic_Stata = 836399.1760177979 # no bic in R? + self.df_model = 6 + self.df_resid = 9 + self.chi2 = 1981.711859508729 #TODO: taken from Stata not available + # in sm yet +# self.pearson_chi2 = 836424.1293162981 # from Stata (?) + self.fittedvalues = np.array([60055.659970240202, 61216.013942398131, + 60124.71283224225, 61597.114621930756, 62911.285409240052, + 63888.31121532945, 65153.048956395127, 63774.180356866214, + 66004.695227399934, 67401.605905447621, + 68186.268927114084, 66552.055042522494, + 68810.549973595422, 69649.67130804155, 68989.068486039061, + 70757.757825193927]) + +class GaussianLog(object): + """ + Uses generated data. These results are from R and Stata. + """ + def __init__(self): +# self.resids = np.genfromtxt('./glm_gaussian_log_resid.csv', ',') + self.resids = np.array([[3.20800000e-04, 3.20800000e-04, + 8.72100000e-04, 3.20800000e-04, 3.20800000e-04], + [ 8.12100000e-04, 8.12100000e-04, 2.16350000e-03, + 8.12100000e-04, 8.12100000e-04], + [ -2.94800000e-04, -2.94800000e-04, -7.69700000e-04, + -2.94800000e-04, -2.94800000e-04], + [ 1.40190000e-03, 1.40190000e-03, 3.58560000e-03, + 1.40190000e-03, 1.40190000e-03], + [ -2.30910000e-03, -2.30910000e-03, -5.78490000e-03, + -2.30910000e-03, -2.30910000e-03], + [ 1.10380000e-03, 1.10380000e-03, 2.70820000e-03, + 1.10380000e-03, 1.10380000e-03], + [ -5.14000000e-06, -5.14000000e-06, -1.23000000e-05, + -5.14000000e-06, -5.14000000e-06], + [ -1.65500000e-04, -1.65500000e-04, -3.89200000e-04, + -1.65500000e-04, -1.65500000e-04], + [ -7.55400000e-04, -7.55400000e-04, -1.73870000e-03, + -7.55400000e-04, -7.55400000e-04], + [ -1.39800000e-04, -1.39800000e-04, -3.14800000e-04, + -1.39800000e-04, -1.39800000e-04], + [ -7.17000000e-04, -7.17000000e-04, -1.58000000e-03, + -7.17000000e-04, -7.17000000e-04], + [ -1.12200000e-04, -1.12200000e-04, -2.41900000e-04, + -1.12200000e-04, -1.12200000e-04], + [ 3.22100000e-04, 3.22100000e-04, 6.79000000e-04, + 3.22100000e-04, 3.22100000e-04], + [ -3.78000000e-05, -3.78000000e-05, -7.79000000e-05, + -3.78000000e-05, -3.78000000e-05], + [ 5.54500000e-04, 5.54500000e-04, 1.11730000e-03, + 5.54500000e-04, 5.54500000e-04], + [ 3.38400000e-04, 3.38400000e-04, 6.66300000e-04, + 3.38400000e-04, 3.38400000e-04], + [ 9.72000000e-05, 9.72000000e-05, 1.87000000e-04, + 9.72000000e-05, 9.72000000e-05], + [ -7.92900000e-04, -7.92900000e-04, -1.49070000e-03, + -7.92900000e-04, -7.92900000e-04], + [ 3.33000000e-04, 3.33000000e-04, 6.11500000e-04, + 3.33000000e-04, 3.33000000e-04], + [ -8.35300000e-04, -8.35300000e-04, -1.49790000e-03, + -8.35300000e-04, -8.35300000e-04], + [ -3.99700000e-04, -3.99700000e-04, -6.99800000e-04, + -3.99700000e-04, -3.99700000e-04], + [ 1.41300000e-04, 1.41300000e-04, 2.41500000e-04, + 1.41300000e-04, 1.41300000e-04], + [ -8.50700000e-04, -8.50700000e-04, -1.41920000e-03, + -8.50700000e-04, -8.50700000e-04], + [ 1.43000000e-06, 1.43000000e-06, 2.33000000e-06, + 1.43000000e-06, 1.43000000e-06], + [ -9.12000000e-05, -9.12000000e-05, -1.44900000e-04, + -9.12000000e-05, -9.12000000e-05], + [ 6.75500000e-04, 6.75500000e-04, 1.04650000e-03, + 6.75500000e-04, 6.75500000e-04], + [ 3.97900000e-04, 3.97900000e-04, 6.01100000e-04, + 3.97900000e-04, 3.97900000e-04], + [ 1.07000000e-05, 1.07000000e-05, 1.57000000e-05, + 1.07000000e-05, 1.07000000e-05], + [ -8.15200000e-04, -8.15200000e-04, -1.17060000e-03, + -8.15200000e-04, -8.15200000e-04], + [ -8.46400000e-04, -8.46400000e-04, -1.18460000e-03, + -8.46400000e-04, -8.46400000e-04], + [ 9.91200000e-04, 9.91200000e-04, 1.35180000e-03, + 9.91200000e-04, 9.91200000e-04], + [ -5.07400000e-04, -5.07400000e-04, -6.74200000e-04, + -5.07400000e-04, -5.07400000e-04], + [ 1.08520000e-03, 1.08520000e-03, 1.40450000e-03, + 1.08520000e-03, 1.08520000e-03], + [ 9.56100000e-04, 9.56100000e-04, 1.20500000e-03, + 9.56100000e-04, 9.56100000e-04], + [ 1.87500000e-03, 1.87500000e-03, 2.30090000e-03, + 1.87500000e-03, 1.87500000e-03], + [ -1.93920000e-03, -1.93920000e-03, -2.31650000e-03, + -1.93920000e-03, -1.93920000e-03], + [ 8.16000000e-04, 8.16000000e-04, 9.48700000e-04, + 8.16000000e-04, 8.16000000e-04], + [ 1.01520000e-03, 1.01520000e-03, 1.14860000e-03, + 1.01520000e-03, 1.01520000e-03], + [ 1.04150000e-03, 1.04150000e-03, 1.14640000e-03, + 1.04150000e-03, 1.04150000e-03], + [ -3.88200000e-04, -3.88200000e-04, -4.15600000e-04, + -3.88200000e-04, -3.88200000e-04], + [ 9.95900000e-04, 9.95900000e-04, 1.03690000e-03, + 9.95900000e-04, 9.95900000e-04], + [ -6.82800000e-04, -6.82800000e-04, -6.91200000e-04, + -6.82800000e-04, -6.82800000e-04], + [ -8.11400000e-04, -8.11400000e-04, -7.98500000e-04, + -8.11400000e-04, -8.11400000e-04], + [ -1.79050000e-03, -1.79050000e-03, -1.71250000e-03, + -1.79050000e-03, -1.79050000e-03], + [ 6.10000000e-04, 6.10000000e-04, 5.66900000e-04, + 6.10000000e-04, 6.10000000e-04], + [ 2.52600000e-04, 2.52600000e-04, 2.28100000e-04, + 2.52600000e-04, 2.52600000e-04], + [ -8.62500000e-04, -8.62500000e-04, -7.56400000e-04, + -8.62500000e-04, -8.62500000e-04], + [ -3.47300000e-04, -3.47300000e-04, -2.95800000e-04, + -3.47300000e-04, -3.47300000e-04], + [ -7.79000000e-05, -7.79000000e-05, -6.44000000e-05, + -7.79000000e-05, -7.79000000e-05], + [ 6.72000000e-04, 6.72000000e-04, 5.39400000e-04, + 6.72000000e-04, 6.72000000e-04], + [ -3.72100000e-04, -3.72100000e-04, -2.89900000e-04, + -3.72100000e-04, -3.72100000e-04], + [ -1.22900000e-04, -1.22900000e-04, -9.29000000e-05, + -1.22900000e-04, -1.22900000e-04], + [ -1.63470000e-03, -1.63470000e-03, -1.19900000e-03, + -1.63470000e-03, -1.63470000e-03], + [ 2.64400000e-04, 2.64400000e-04, 1.88100000e-04, + 2.64400000e-04, 2.64400000e-04], + [ 1.79230000e-03, 1.79230000e-03, 1.23650000e-03, + 1.79230000e-03, 1.79230000e-03], + [ -1.40500000e-04, -1.40500000e-04, -9.40000000e-05, + -1.40500000e-04, -1.40500000e-04], + [ -2.98500000e-04, -2.98500000e-04, -1.93600000e-04, + -2.98500000e-04, -2.98500000e-04], + [ -9.33100000e-04, -9.33100000e-04, -5.86400000e-04, + -9.33100000e-04, -9.33100000e-04], + [ 9.11200000e-04, 9.11200000e-04, 5.54900000e-04, + 9.11200000e-04, 9.11200000e-04], + [ -1.31840000e-03, -1.31840000e-03, -7.77900000e-04, + -1.31840000e-03, -1.31840000e-03], + [ -1.30200000e-04, -1.30200000e-04, -7.44000000e-05, + -1.30200000e-04, -1.30200000e-04], + [ 9.09300000e-04, 9.09300000e-04, 5.03200000e-04, + 9.09300000e-04, 9.09300000e-04], + [ -2.39500000e-04, -2.39500000e-04, -1.28300000e-04, + -2.39500000e-04, -2.39500000e-04], + [ 7.15300000e-04, 7.15300000e-04, 3.71000000e-04, + 7.15300000e-04, 7.15300000e-04], + [ 5.45000000e-05, 5.45000000e-05, 2.73000000e-05, + 5.45000000e-05, 5.45000000e-05], + [ 2.85310000e-03, 2.85310000e-03, 1.38600000e-03, + 2.85310000e-03, 2.85310000e-03], + [ 4.63400000e-04, 4.63400000e-04, 2.17800000e-04, + 4.63400000e-04, 4.63400000e-04], + [ 2.80900000e-04, 2.80900000e-04, 1.27700000e-04, + 2.80900000e-04, 2.80900000e-04], + [ 5.42000000e-05, 5.42000000e-05, 2.38000000e-05, + 5.42000000e-05, 5.42000000e-05], + [ -3.62300000e-04, -3.62300000e-04, -1.54000000e-04, + -3.62300000e-04, -3.62300000e-04], + [ -1.11900000e-03, -1.11900000e-03, -4.59800000e-04, + -1.11900000e-03, -1.11900000e-03], + [ 1.28900000e-03, 1.28900000e-03, 5.11900000e-04, + 1.28900000e-03, 1.28900000e-03], + [ -1.40820000e-03, -1.40820000e-03, -5.40400000e-04, + -1.40820000e-03, -1.40820000e-03], + [ -1.69300000e-04, -1.69300000e-04, -6.28000000e-05, + -1.69300000e-04, -1.69300000e-04], + [ -1.03620000e-03, -1.03620000e-03, -3.71000000e-04, + -1.03620000e-03, -1.03620000e-03], + [ 1.49150000e-03, 1.49150000e-03, 5.15800000e-04, + 1.49150000e-03, 1.49150000e-03], + [ -7.22000000e-05, -7.22000000e-05, -2.41000000e-05, + -7.22000000e-05, -7.22000000e-05], + [ 5.49000000e-04, 5.49000000e-04, 1.76900000e-04, + 5.49000000e-04, 5.49000000e-04], + [ -2.12320000e-03, -2.12320000e-03, -6.60400000e-04, + -2.12320000e-03, -2.12320000e-03], + [ 7.84000000e-06, 7.84000000e-06, 2.35000000e-06, + 7.84000000e-06, 7.84000000e-06], + [ 1.15580000e-03, 1.15580000e-03, 3.34700000e-04, + 1.15580000e-03, 1.15580000e-03], + [ 4.83400000e-04, 4.83400000e-04, 1.35000000e-04, + 4.83400000e-04, 4.83400000e-04], + [ -5.26100000e-04, -5.26100000e-04, -1.41700000e-04, + -5.26100000e-04, -5.26100000e-04], + [ -1.75100000e-04, -1.75100000e-04, -4.55000000e-05, + -1.75100000e-04, -1.75100000e-04], + [ -1.84600000e-03, -1.84600000e-03, -4.62100000e-04, + -1.84600000e-03, -1.84600000e-03], + [ 2.07200000e-04, 2.07200000e-04, 5.00000000e-05, + 2.07200000e-04, 2.07200000e-04], + [ -8.54700000e-04, -8.54700000e-04, -1.98700000e-04, + -8.54700000e-04, -8.54700000e-04], + [ -9.20000000e-05, -9.20000000e-05, -2.06000000e-05, + -9.20000000e-05, -9.20000000e-05], + [ 5.35700000e-04, 5.35700000e-04, 1.15600000e-04, + 5.35700000e-04, 5.35700000e-04], + [ -7.67300000e-04, -7.67300000e-04, -1.59400000e-04, + -7.67300000e-04, -7.67300000e-04], + [ -1.79710000e-03, -1.79710000e-03, -3.59500000e-04, + -1.79710000e-03, -1.79710000e-03], + [ 1.10910000e-03, 1.10910000e-03, 2.13500000e-04, + 1.10910000e-03, 1.10910000e-03], + [ -5.53800000e-04, -5.53800000e-04, -1.02600000e-04, + -5.53800000e-04, -5.53800000e-04], + [ 7.48000000e-04, 7.48000000e-04, 1.33400000e-04, + 7.48000000e-04, 7.48000000e-04], + [ 4.23000000e-04, 4.23000000e-04, 7.26000000e-05, + 4.23000000e-04, 4.23000000e-04], + [ -3.16400000e-04, -3.16400000e-04, -5.22000000e-05, + -3.16400000e-04, -3.16400000e-04], + [ -6.63200000e-04, -6.63200000e-04, -1.05200000e-04, + -6.63200000e-04, -6.63200000e-04], + [ 1.33540000e-03, 1.33540000e-03, 2.03700000e-04, + 1.33540000e-03, 1.33540000e-03], + [ -7.81200000e-04, -7.81200000e-04, -1.14600000e-04, + -7.81200000e-04, -7.81200000e-04], + [ 1.67880000e-03, 1.67880000e-03, 2.36600000e-04, + 1.67880000e-03, 1.67880000e-03]]) + + self.null_deviance = 56.691617808182208 + self.params = np.array([9.99964386e-01,-1.99896965e-02, + -1.00027232e-04]) + self.bse = np.array([1.42119293e-04, 1.20276468e-05, 1.87347682e-07]) + self.aic_R = -1103.8187213072656 # adds 2 for dof for scale + + self.aic_Stata = -11.05818072104212 # divides by nobs for e(aic) + self.deviance = 8.68876986288542e-05 + self.scale = 8.9574946938163984e-07 # from R but e(phi) in Stata + self.llf = 555.9093606536328 + self.bic_Stata = -446.7014211525822 + self.df_model = 2 + self.df_resid = 97 + self.chi2 = 33207648.86501769 # from Stata not in sm + self.fittedvalues = np.array([2.7181850213327747, 2.664122305869506, + 2.6106125414084405, 2.5576658143523567, 2.5052916730829535, + 2.4534991313100165, 2.4022966718815781, 2.3516922510411282, + 2.3016933031175575, 2.2523067456332542, 2.2035389848154616, + 2.1553959214958001, 2.107882957382607, 2.0610050016905817, + 2.0147664781120667, 1.969171332114154, 1.9242230385457144, + 1.8799246095383746, 1.8362786026854092, 1.7932871294825108, + 1.7509518640143886, 1.7092740518711942, 1.6682545192788105, + 1.6278936824271399, 1.5881915569806042, 1.5491477677552221, + 1.5107615585467538, 1.4730318020945796, 1.4359570101661721, + 1.3995353437472129, 1.3637646233226499, 1.3286423392342188, + 1.2941656621002184, 1.2603314532836074, 1.2271362753947765, + 1.1945764028156565, 1.162647832232141, 1.1313462931621328, + 1.1006672584668622, 1.0706059548334832, 1.0411573732173065, + 1.0123162792324054, 0.98407722347970683, 0.95643455180206194, + 0.92938241545618494, 0.90291478119174029, 0.87702544122826565, + 0.85170802312101246, 0.82695599950720078, 0.80276269772458597, + 0.77912130929465073, 0.75602489926313921, 0.73346641539106316, + 0.71143869718971686, 0.68993448479364294, 0.66894642766589496, + 0.64846709313034534, 0.62848897472617915, 0.60900450038011367, + 0.5900060403922629, 0.57148591523195513, 0.55343640314018494, + 0.5358497475357491, 0.51871816422248385, 0.50203384839536769, + 0.48578898144361343, 0.46997573754920047, 0.45458629007964013, + 0.4396128177740814, 0.42504751072218311, 0.41088257613548018, + 0.39711024391126759, 0.38372277198930843, 0.37071245150195081, + 0.35807161171849949, 0.34579262478494655, 0.33386791026040569, + 0.32228993945183393, 0.31105123954884056, 0.30014439756060574, + 0.28956206405712448, 0.27929695671718968, 0.26934186368570684, + 0.25968964674310463, 0.25033324428976694, 0.24126567414856051, + 0.23248003618867552, 0.22396951477412205, 0.21572738104035141, + 0.20774699500257574, 0.20002180749946474, 0.19254536197598673, + 0.18531129610924435, 0.17831334328122878, 0.17154533390247831, + 0.16500119659068577, 0.15867495920834204, 0.15256074976354628, + 0.14665279717814039, 0.14094543192735109]) + +class GaussianInverse(object): + """ + This test uses generated data. Results are from R and Stata. + """ + def __init__(self): + self.resids = np.array([[-5.15300000e-04, -5.15300000e-04, + 5.14800000e-04, -5.15300000e-04, -5.15300000e-04], + [ -2.12500000e-04, -2.12500000e-04, 2.03700000e-04, + -2.12500000e-04, -2.12500000e-04], + [ -1.71400000e-04, -1.71400000e-04, 1.57200000e-04, + -1.71400000e-04, -1.71400000e-04], + [ 1.94020000e-03, 1.94020000e-03, -1.69710000e-03, + 1.94020000e-03, 1.94020000e-03], + [ -6.81100000e-04, -6.81100000e-04, 5.66900000e-04, + -6.81100000e-04, -6.81100000e-04], + [ 1.21370000e-03, 1.21370000e-03, -9.58800000e-04, + 1.21370000e-03, 1.21370000e-03], + [ -1.51090000e-03, -1.51090000e-03, 1.13070000e-03, + -1.51090000e-03, -1.51090000e-03], + [ 3.21500000e-04, 3.21500000e-04, -2.27400000e-04, + 3.21500000e-04, 3.21500000e-04], + [ -3.18500000e-04, -3.18500000e-04, 2.12600000e-04, + -3.18500000e-04, -3.18500000e-04], + [ 3.75600000e-04, 3.75600000e-04, -2.36300000e-04, + 3.75600000e-04, 3.75600000e-04], + [ 4.82300000e-04, 4.82300000e-04, -2.85500000e-04, + 4.82300000e-04, 4.82300000e-04], + [ -1.41870000e-03, -1.41870000e-03, 7.89300000e-04, + -1.41870000e-03, -1.41870000e-03], + [ 6.75000000e-05, 6.75000000e-05, -3.52000000e-05, + 6.75000000e-05, 6.75000000e-05], + [ 4.06300000e-04, 4.06300000e-04, -1.99100000e-04, + 4.06300000e-04, 4.06300000e-04], + [ -3.61500000e-04, -3.61500000e-04, 1.66000000e-04, + -3.61500000e-04, -3.61500000e-04], + [ -2.97400000e-04, -2.97400000e-04, 1.28000000e-04, + -2.97400000e-04, -2.97400000e-04], + [ -9.32700000e-04, -9.32700000e-04, 3.75800000e-04, + -9.32700000e-04, -9.32700000e-04], + [ 1.16270000e-03, 1.16270000e-03, -4.38500000e-04, + 1.16270000e-03, 1.16270000e-03], + [ 6.77900000e-04, 6.77900000e-04, -2.39200000e-04, + 6.77900000e-04, 6.77900000e-04], + [ -1.29330000e-03, -1.29330000e-03, 4.27000000e-04, + -1.29330000e-03, -1.29330000e-03], + [ 2.24500000e-04, 2.24500000e-04, -6.94000000e-05, + 2.24500000e-04, 2.24500000e-04], + [ 1.05510000e-03, 1.05510000e-03, -3.04900000e-04, + 1.05510000e-03, 1.05510000e-03], + [ 2.50400000e-04, 2.50400000e-04, -6.77000000e-05, + 2.50400000e-04, 2.50400000e-04], + [ 4.08600000e-04, 4.08600000e-04, -1.03400000e-04, + 4.08600000e-04, 4.08600000e-04], + [ -1.67610000e-03, -1.67610000e-03, 3.96800000e-04, + -1.67610000e-03, -1.67610000e-03], + [ 7.47600000e-04, 7.47600000e-04, -1.65700000e-04, + 7.47600000e-04, 7.47600000e-04], + [ 2.08200000e-04, 2.08200000e-04, -4.32000000e-05, + 2.08200000e-04, 2.08200000e-04], + [ -8.00800000e-04, -8.00800000e-04, 1.55700000e-04, + -8.00800000e-04, -8.00800000e-04], + [ 5.81200000e-04, 5.81200000e-04, -1.05900000e-04, + 5.81200000e-04, 5.81200000e-04], + [ 1.00980000e-03, 1.00980000e-03, -1.72400000e-04, + 1.00980000e-03, 1.00980000e-03], + [ 2.77400000e-04, 2.77400000e-04, -4.44000000e-05, + 2.77400000e-04, 2.77400000e-04], + [ -5.02800000e-04, -5.02800000e-04, 7.55000000e-05, + -5.02800000e-04, -5.02800000e-04], + [ 2.69800000e-04, 2.69800000e-04, -3.80000000e-05, + 2.69800000e-04, 2.69800000e-04], + [ 2.01300000e-04, 2.01300000e-04, -2.67000000e-05, + 2.01300000e-04, 2.01300000e-04], + [ -1.19690000e-03, -1.19690000e-03, 1.48900000e-04, + -1.19690000e-03, -1.19690000e-03], + [ -6.94200000e-04, -6.94200000e-04, 8.12000000e-05, + -6.94200000e-04, -6.94200000e-04], + [ 5.65500000e-04, 5.65500000e-04, -6.22000000e-05, + 5.65500000e-04, 5.65500000e-04], + [ 4.93100000e-04, 4.93100000e-04, -5.10000000e-05, + 4.93100000e-04, 4.93100000e-04], + [ 3.25000000e-04, 3.25000000e-04, -3.17000000e-05, + 3.25000000e-04, 3.25000000e-04], + [ -7.70200000e-04, -7.70200000e-04, 7.07000000e-05, + -7.70200000e-04, -7.70200000e-04], + [ 2.58000000e-05, 2.58000000e-05, -2.23000000e-06, + 2.58000000e-05, 2.58000000e-05], + [ -1.52800000e-04, -1.52800000e-04, 1.25000000e-05, + -1.52800000e-04, -1.52800000e-04], + [ 4.52000000e-05, 4.52000000e-05, -3.48000000e-06, + 4.52000000e-05, 4.52000000e-05], + [ -6.83900000e-04, -6.83900000e-04, 4.97000000e-05, + -6.83900000e-04, -6.83900000e-04], + [ -7.77600000e-04, -7.77600000e-04, 5.34000000e-05, + -7.77600000e-04, -7.77600000e-04], + [ 1.03170000e-03, 1.03170000e-03, -6.70000000e-05, + 1.03170000e-03, 1.03170000e-03], + [ 1.20000000e-03, 1.20000000e-03, -7.37000000e-05, + 1.20000000e-03, 1.20000000e-03], + [ -7.71600000e-04, -7.71600000e-04, 4.48000000e-05, + -7.71600000e-04, -7.71600000e-04], + [ -3.37000000e-04, -3.37000000e-04, 1.85000000e-05, + -3.37000000e-04, -3.37000000e-04], + [ 1.19880000e-03, 1.19880000e-03, -6.25000000e-05, + 1.19880000e-03, 1.19880000e-03], + [ -1.54610000e-03, -1.54610000e-03, 7.64000000e-05, + -1.54610000e-03, -1.54610000e-03], + [ 9.11600000e-04, 9.11600000e-04, -4.27000000e-05, + 9.11600000e-04, 9.11600000e-04], + [ -4.70800000e-04, -4.70800000e-04, 2.09000000e-05, + -4.70800000e-04, -4.70800000e-04], + [ -1.21550000e-03, -1.21550000e-03, 5.13000000e-05, + -1.21550000e-03, -1.21550000e-03], + [ 1.09160000e-03, 1.09160000e-03, -4.37000000e-05, + 1.09160000e-03, 1.09160000e-03], + [ -2.72000000e-04, -2.72000000e-04, 1.04000000e-05, + -2.72000000e-04, -2.72000000e-04], + [ -7.84500000e-04, -7.84500000e-04, 2.84000000e-05, + -7.84500000e-04, -7.84500000e-04], + [ 1.53330000e-03, 1.53330000e-03, -5.28000000e-05, + 1.53330000e-03, 1.53330000e-03], + [ -1.84450000e-03, -1.84450000e-03, 6.05000000e-05, + -1.84450000e-03, -1.84450000e-03], + [ 1.68550000e-03, 1.68550000e-03, -5.26000000e-05, + 1.68550000e-03, 1.68550000e-03], + [ -3.06100000e-04, -3.06100000e-04, 9.10000000e-06, + -3.06100000e-04, -3.06100000e-04], + [ 1.00950000e-03, 1.00950000e-03, -2.86000000e-05, + 1.00950000e-03, 1.00950000e-03], + [ 5.22000000e-04, 5.22000000e-04, -1.41000000e-05, + 5.22000000e-04, 5.22000000e-04], + [ -2.18000000e-05, -2.18000000e-05, 5.62000000e-07, + -2.18000000e-05, -2.18000000e-05], + [ -7.80600000e-04, -7.80600000e-04, 1.92000000e-05, + -7.80600000e-04, -7.80600000e-04], + [ 6.81400000e-04, 6.81400000e-04, -1.60000000e-05, + 6.81400000e-04, 6.81400000e-04], + [ -1.43800000e-04, -1.43800000e-04, 3.23000000e-06, + -1.43800000e-04, -1.43800000e-04], + [ 7.76000000e-04, 7.76000000e-04, -1.66000000e-05, + 7.76000000e-04, 7.76000000e-04], + [ 2.54900000e-04, 2.54900000e-04, -5.22000000e-06, + 2.54900000e-04, 2.54900000e-04], + [ 5.77500000e-04, 5.77500000e-04, -1.13000000e-05, + 5.77500000e-04, 5.77500000e-04], + [ 7.58100000e-04, 7.58100000e-04, -1.42000000e-05, + 7.58100000e-04, 7.58100000e-04], + [ -8.31000000e-04, -8.31000000e-04, 1.49000000e-05, + -8.31000000e-04, -8.31000000e-04], + [ -2.10340000e-03, -2.10340000e-03, 3.62000000e-05, + -2.10340000e-03, -2.10340000e-03], + [ -8.89900000e-04, -8.89900000e-04, 1.47000000e-05, + -8.89900000e-04, -8.89900000e-04], + [ 1.08570000e-03, 1.08570000e-03, -1.71000000e-05, + 1.08570000e-03, 1.08570000e-03], + [ -1.88600000e-04, -1.88600000e-04, 2.86000000e-06, + -1.88600000e-04, -1.88600000e-04], + [ 9.10000000e-05, 9.10000000e-05, -1.32000000e-06, + 9.10000000e-05, 9.10000000e-05], + [ 1.07700000e-03, 1.07700000e-03, -1.50000000e-05, + 1.07700000e-03, 1.07700000e-03], + [ 9.04100000e-04, 9.04100000e-04, -1.21000000e-05, + 9.04100000e-04, 9.04100000e-04], + [ -2.20000000e-04, -2.20000000e-04, 2.83000000e-06, + -2.20000000e-04, -2.20000000e-04], + [ -1.64030000e-03, -1.64030000e-03, 2.02000000e-05, + -1.64030000e-03, -1.64030000e-03], + [ 2.20600000e-04, 2.20600000e-04, -2.62000000e-06, + 2.20600000e-04, 2.20600000e-04], + [ -2.78300000e-04, -2.78300000e-04, 3.17000000e-06, + -2.78300000e-04, -2.78300000e-04], + [ -4.93000000e-04, -4.93000000e-04, 5.40000000e-06, + -4.93000000e-04, -4.93000000e-04], + [ -1.85000000e-04, -1.85000000e-04, 1.95000000e-06, + -1.85000000e-04, -1.85000000e-04], + [ -7.64000000e-04, -7.64000000e-04, 7.75000000e-06, + -7.64000000e-04, -7.64000000e-04], + [ 7.79600000e-04, 7.79600000e-04, -7.61000000e-06, + 7.79600000e-04, 7.79600000e-04], + [ 2.88400000e-04, 2.88400000e-04, -2.71000000e-06, + 2.88400000e-04, 2.88400000e-04], + [ 1.09370000e-03, 1.09370000e-03, -9.91000000e-06, + 1.09370000e-03, 1.09370000e-03], + [ 3.07000000e-04, 3.07000000e-04, -2.68000000e-06, + 3.07000000e-04, 3.07000000e-04], + [ -8.76000000e-04, -8.76000000e-04, 7.37000000e-06, + -8.76000000e-04, -8.76000000e-04], + [ -1.85300000e-04, -1.85300000e-04, 1.50000000e-06, + -1.85300000e-04, -1.85300000e-04], + [ 3.24700000e-04, 3.24700000e-04, -2.54000000e-06, + 3.24700000e-04, 3.24700000e-04], + [ 4.59600000e-04, 4.59600000e-04, -3.47000000e-06, + 4.59600000e-04, 4.59600000e-04], + [ -2.73300000e-04, -2.73300000e-04, 1.99000000e-06, + -2.73300000e-04, -2.73300000e-04], + [ 1.32180000e-03, 1.32180000e-03, -9.29000000e-06, + 1.32180000e-03, 1.32180000e-03], + [ -1.32620000e-03, -1.32620000e-03, 9.00000000e-06, + -1.32620000e-03, -1.32620000e-03], + [ 9.62000000e-05, 9.62000000e-05, -6.31000000e-07, + 9.62000000e-05, 9.62000000e-05], + [ -6.04400000e-04, -6.04400000e-04, 3.83000000e-06, + -6.04400000e-04, -6.04400000e-04], + [ -6.66300000e-04, -6.66300000e-04, 4.08000000e-06, + -6.66300000e-04, -6.66300000e-04]]) + self.null_deviance = 6.8088354977561 # from R, Rpy bug + self.params = np.array([ 1.00045997, 0.01991666, 0.00100126]) + self.bse = np.array([ 4.55214070e-04, 7.00529313e-05, 1.84478509e-06]) + self.aic_R = -1123.1528237643774 + self.aic_Stata = -11.25152876811373 + self.deviance = 7.1612915365488368e-05 + self.scale = 7.3827747608449547e-07 + self.llf = 565.57641188218872 + self.bic_Stata = -446.7014364279675 + self.df_model = 2 + self.df_resid = 97 + self.chi2 = 2704006.698904491 + self.fittedvalues = np.array([ 0.99954024, 0.97906956, 0.95758077, + 0.93526008, 0.91228657, + 0.88882978, 0.8650479 , 0.84108646, 0.81707757, 0.79313958, + 0.76937709, 0.74588129, 0.72273051, 0.69999099, 0.67771773, + 0.65595543, 0.63473944, 0.61409675, 0.59404691, 0.57460297, + 0.55577231, 0.53755742, 0.51995663, 0.50296478, 0.48657379, + 0.47077316, 0.4555505 , 0.44089187, 0.42678213, 0.41320529, + 0.40014475, 0.38758348, 0.37550428, 0.36388987, 0.35272306, + 0.34198684, 0.33166446, 0.32173953, 0.31219604, 0.30301842, + 0.29419156, 0.28570085, 0.27753216, 0.26967189, 0.26210695, + 0.25482476, 0.24781324, 0.2410608 , 0.23455636, 0.22828931, + 0.22224947, 0.21642715, 0.21081306, 0.20539835, 0.20017455, + 0.19513359, 0.19026777, 0.18556972, 0.18103243, 0.17664922, + 0.1724137 , 0.16831977, 0.16436164, 0.16053377, 0.15683086, + 0.15324789, 0.14978003, 0.1464227 , 0.14317153, 0.14002232, + 0.13697109, 0.13401403, 0.1311475 , 0.12836802, 0.12567228, + 0.1230571 , 0.12051944, 0.11805642, 0.11566526, 0.1133433 , + 0.11108802, 0.10889699, 0.10676788, 0.10469847, 0.10268664, + 0.10073034, 0.09882763, 0.09697663, 0.09517555, 0.09342267, + 0.09171634, 0.09005498, 0.08843707, 0.08686116, 0.08532585, + 0.08382979, 0.0823717 , 0.08095035, 0.07956453, 0.07821311]) + +class Star98(object): + """ + Star98 class used with TestGlmBinomial + """ + def __init__(self): + self.params = (-0.0168150366, 0.0099254766, -0.0187242148, + -0.0142385609, 0.2544871730, 0.2406936644, 0.0804086739, + -1.9521605027, -0.3340864748, -0.1690221685, 0.0049167021, + -0.0035799644, -0.0140765648, -0.0040049918, -0.0039063958, + 0.0917143006, 0.0489898381, 0.0080407389, 0.0002220095, + -0.0022492486, 2.9588779262) + self.bse = (4.339467e-04, 6.013714e-04, 7.435499e-04, 4.338655e-04, + 2.994576e-02, 5.713824e-02, 1.392359e-02, 3.168109e-01, + 6.126411e-02, 3.270139e-02, 1.253877e-03, 2.254633e-04, + 1.904573e-03, 4.739838e-04, 9.623650e-04, 1.450923e-02, + 7.451666e-03, 1.499497e-03, 2.988794e-05, 3.489838e-04, + 1.546712e+00) + self.null_deviance = 34345.3688931 + self.df_null = 302 + self.deviance = 4078.76541772 + self.df_resid = 282 + self.df_model = 20 + self.aic_R = 6039.22511799 + self.aic_Stata = 19.93143846737438 + self.bic_Stata = 2467.493504191302 + self.llf = -2998.61255899391 # from R + self.llf_Stata = -2998.612927807218 + self.scale = 1. + self.pearson_chi2 = 4051.921614 + self.resids = glm_test_resids.star98_resids + self.fittedvalues = np.array([ 0.5833118 , 0.75144661, 0.50058272, + 0.68534524, 0.32251021, + 0.68693601, 0.33299827, 0.65624766, 0.49851481, 0.506736, + 0.23954874, 0.86631452, 0.46432936, 0.44171873, 0.66797935, + 0.73988491, 0.51966014, 0.42442446, 0.5649369 , 0.59251634, + 0.34798337, 0.56415024, 0.49974355, 0.3565539 , 0.20752309, + 0.18269097, 0.44932642, 0.48025128, 0.59965277, 0.58848671, + 0.36264203, 0.33333196, 0.74253352, 0.5081886 , 0.53421878, + 0.56291445, 0.60205239, 0.29174423, 0.2954348 , 0.32220414, + 0.47977903, 0.23687535, 0.11776464, 0.1557423 , 0.27854799, + 0.22699533, 0.1819439 , 0.32554433, 0.22681989, 0.15785389, + 0.15268609, 0.61094772, 0.20743222, 0.51649059, 0.46502006, + 0.41031788, 0.59523288, 0.65733285, 0.27835336, 0.2371213 , + 0.25137045, 0.23953942, 0.27854519, 0.39652413, 0.27023163, + 0.61411863, 0.2212025 , 0.42005842, 0.55940397, 0.35413774, + 0.45724563, 0.57399437, 0.2168918 , 0.58308738, 0.17181104, + 0.49873249, 0.22832683, 0.14846056, 0.5028073 , 0.24513863, + 0.48202096, 0.52823155, 0.5086262 , 0.46295993, 0.57869402, + 0.78363217, 0.21144435, 0.2298366 , 0.17954825, 0.32232586, + 0.8343015 , 0.56217006, 0.47367315, 0.52535649, 0.60350746, + 0.43210701, 0.44712008, 0.35858239, 0.2521347 , 0.19787004, + 0.63256553, 0.51386532, 0.64997027, 0.13402072, 0.81756174, + 0.74543642, 0.30825852, 0.23988707, 0.17273125, 0.27880599, + 0.17395893, 0.32052828, 0.80467697, 0.18726218, 0.23842081, + 0.19020381, 0.85835388, 0.58703615, 0.72415106, 0.64433695, + 0.68766653, 0.32923663, 0.16352185, 0.38868816, 0.44980444, + 0.74810044, 0.42973792, 0.53762581, 0.72714996, 0.61229484, + 0.30267667, 0.24713253, 0.65086008, 0.48957265, 0.54955545, + 0.5697156 , 0.36406211, 0.48906545, 0.45919413, 0.4930565 , + 0.39785555, 0.5078719 , 0.30159626, 0.28524393, 0.34687707, + 0.22522042, 0.52947159, 0.29277287, 0.8585002 , 0.60800389, + 0.75830521, 0.35648175, 0.69508796, 0.45518355, 0.21567675, + 0.39682985, 0.49042948, 0.47615798, 0.60588234, 0.62910299, + 0.46005639, 0.71755165, 0.48852156, 0.47940661, 0.60128813, + 0.16589699, 0.68512861, 0.46305199, 0.68832227, 0.7006721 , + 0.56564937, 0.51753941, 0.54261733, 0.56072214, 0.34545715, + 0.30226104, 0.3572956 , 0.40996287, 0.33517519, 0.36248407, + 0.33937041, 0.34140691, 0.2627528 , 0.29955161, 0.38581683, + 0.24840026, 0.15414272, 0.40415991, 0.53936252, 0.52111887, + 0.28060168, 0.45600958, 0.51110589, 0.43757523, 0.46891953, + 0.39425249, 0.5834369 , 0.55817308, 0.32051259, 0.43567448, + 0.34134195, 0.43016545, 0.4885413 , 0.28478325, 0.2650776 , + 0.46784606, 0.46265983, 0.42655938, 0.18972234, 0.60448491, + 0.211896 , 0.37886032, 0.50727577, 0.39782309, 0.50427121, + 0.35882898, 0.39596807, 0.49160806, 0.35618002, 0.6819922 , + 0.36871093, 0.43079679, 0.67985516, 0.41270595, 0.68952767, + 0.52587734, 0.32042126, 0.39120123, 0.56870985, 0.32962349, + 0.32168989, 0.54076251, 0.4592907 , 0.48480182, 0.4408386 , + 0.431178 , 0.47078232, 0.55911605, 0.30331618, 0.50310393, + 0.65036038, 0.45078895, 0.62354291, 0.56435463, 0.50034281, + 0.52693538, 0.57217285, 0.49221472, 0.40707122, 0.44226533, + 0.3475959 , 0.54746396, 0.86385832, 0.48402233, 0.54313657, + 0.61586824, 0.27097185, 0.69717808, 0.52156974, 0.50401189, + 0.56724181, 0.6577178 , 0.42732047, 0.44808396, 0.65435634, + 0.54766225, 0.38160648, 0.49890847, 0.50879037, 0.5875452 , + 0.45101593, 0.5709704 , 0.3175516 , 0.39813159, 0.28305688, + 0.40521062, 0.30120578, 0.26400428, 0.44205496, 0.40545798, + 0.39366599, 0.55288196, 0.14104184, 0.17550155, 0.1949095 , + 0.40255144, 0.21016822, 0.09712017, 0.63151487, 0.25885514, + 0.57323748, 0.61836898, 0.43268601, 0.67008878, 0.75801989, + 0.50353406, 0.64222315, 0.29925757, 0.32592036, 0.39634977, + 0.39582747, 0.41037006, 0.34174944]) + +class Lbw(object): + ''' + The LBW data can be found here + + http://www.stata-press.com/data/r9/rmain.html + ''' + def __init__(self): + # data set up for data not in datasets + filename = os.path.join(os.path.dirname(os.path.abspath(__file__)), + "stata_lbw_glm.csv") + data=np.recfromcsv(open(filename, 'rb'), converters={4: lambda s: s.strip(asbytes("\""))}) + data = categorical(data, col='race', drop=True) + self.endog = data.low + design = np.column_stack((data['age'], data['lwt'], + data['race_black'], data['race_other'], data['smoke'], + data['ptl'], data['ht'], data['ui'])) + self.exog = add_constant(design, prepend=False) + # Results for Canonical Logit Link + self.params = (-.02710031, -.01515082, 1.26264728, + .86207916, .92334482, .54183656, 1.83251780, + .75851348, .46122388) + self.bse = (0.036449917, 0.006925765, 0.526405169, + 0.439146744, 0.400820976, 0.346246857, 0.691623875, + 0.459373871, 1.204574885) + self.aic_R = 219.447991133 + self.aic_Stata = 1.161100482182551 + self.deviance = 201.4479911325021 + self.scale = 1 + self.llf = -100.7239955662511 + self.chi2 = 25.65329337867037 # from Stata not used by sm + self.null_deviance = 234.671996193219 + self.bic_Stata = -742.0664715782335 + self.df_resid = 180 + self.df_model = 8 + self.df_null = 188 + self.pearson_chi2 = 182.023342493558 + self.resids = glm_test_resids.lbw_resids + self.fittedvalues = np.array([ 0.31217507, 0.12793027, 0.32119762, + 0.48442686, 0.50853393, + 0.24517662, 0.12755193, 0.33226988, 0.22013309, 0.26268069, + 0.34729955, 0.18782188, 0.75404181, 0.54723527, 0.35016393, + 0.35016393, 0.45824406, 0.25336683, 0.43087357, 0.23284101, + 0.20146616, 0.24315597, 0.02725586, 0.22207692, 0.39800383, + 0.05584178, 0.28403447, 0.06931188, 0.35371946, 0.3896279 , + 0.3896279 , 0.47812002, 0.60043853, 0.07144772, 0.29995988, + 0.17910031, 0.22773411, 0.22691015, 0.06221253, 0.2384528 , + 0.32633864, 0.05131047, 0.2954536 , 0.07364416, 0.57241299, + 0.57241299, 0.08272435, 0.23298882, 0.12658158, 0.58967487, + 0.46989562, 0.22455631, 0.2348285 , 0.29571887, 0.28212464, + 0.31499013, 0.68340511, 0.14090647, 0.31448425, 0.28082972, + 0.28082972, 0.24918728, 0.27018297, 0.08175784, 0.64808999, + 0.38252574, 0.25550797, 0.09113411, 0.40736693, 0.32644055, + 0.54367425, 0.29606968, 0.47028421, 0.39972155, 0.25079125, + 0.09678472, 0.08807264, 0.27467837, 0.5675742 , 0.045619 , + 0.10719293, 0.04826292, 0.23934092, 0.24179618, 0.23802197, + 0.49196179, 0.31379451, 0.10605469, 0.04047396, 0.11620849, + 0.09937016, 0.21822964, 0.29770265, 0.83912829, 0.25079125, + 0.08548557, 0.06550308, 0.2046457 , 0.2046457 , 0.08110349, + 0.13519643, 0.47862055, 0.38891913, 0.1383964 , 0.26176764, + 0.31594589, 0.11418612, 0.06324112, 0.28468594, 0.21663702, + 0.03827107, 0.27237604, 0.20246694, 0.19042999, 0.15019447, + 0.18759474, 0.12308435, 0.19700616, 0.11564002, 0.36595033, + 0.07765727, 0.14119063, 0.13584627, 0.11012759, 0.10102472, + 0.10002166, 0.07439288, 0.27919958, 0.12491598, 0.06774594, + 0.72513764, 0.17714986, 0.67373352, 0.80679436, 0.52908941, + 0.15695938, 0.49722003, 0.41970014, 0.62375224, 0.53695622, + 0.25474238, 0.79135707, 0.2503871 , 0.25352337, 0.33474211, + 0.19308929, 0.24658944, 0.25495092, 0.30867144, 0.41240259, + 0.59412526, 0.16811226, 0.48282791, 0.36566756, 0.09279325, + 0.75337353, 0.57128885, 0.52974123, 0.44548504, 0.77748843, + 0.3224082 , 0.40054277, 0.29522468, 0.19673553, 0.73781774, + 0.57680312, 0.44545573, 0.30242355, 0.38720223, 0.16632904, + 0.30804092, 0.56385194, 0.60012179, 0.48324821, 0.24636345, + 0.26153216, 0.2348285 , 0.29023669, 0.41011454, 0.36472083, + 0.65922069, 0.30476903, 0.09986775, 0.70658332, 0.30713075, + 0.36096386, 0.54962701, 0.71996086, 0.6633756 ]) + +class Scotvote(object): + """ + Scotvot class is used with TestGlmGamma. + """ + def __init__(self): + self.params = (4.961768e-05, 2.034423e-03, -7.181429e-05, 1.118520e-04, + -1.467515e-07, -5.186831e-04, -2.42717498e-06, -1.776527e-02) + self.bse = (1.621577e-05, 5.320802e-04, 2.711664e-05, 4.057691e-05, + 1.236569e-07, 2.402534e-04, 7.460253e-07, 1.147922e-02) + self.null_deviance = 0.536072 + self.df_null = 31 + self.deviance = 0.087388516417 + self.df_resid = 24 + self.df_model = 7 + self.aic_R = 182.947045954721 + self.aic_Stata = 10.72212 + self.bic_Stata = -83.09027 + self.llf = -163.5539382 # from Stata, same as ours with scale = 1 +# self.llf = -82.47352 # Very close to ours as is + self.scale = 0.003584283 + self.pearson_chi2 = .0860228056 + self.resids = glm_test_resids.scotvote_resids + self.fittedvalues = np.array([57.80431482, 53.2733447, 50.56347993, + 58.33003783, + 70.46562169, 56.88801284, 66.81878401, 66.03410393, + 57.92937473, 63.23216907, 53.9914785 , 61.28993391, + 64.81036393, 63.47546816, 60.69696114, 74.83508176, + 56.56991106, 72.01804172, 64.35676519, 52.02445881, + 64.24933079, 71.15070332, 45.73479688, 54.93318588, + 66.98031261, 52.02479973, 56.18413736, 58.12267471, + 67.37947398, 60.49162862, 73.82609217, 69.61515621]) + +class Cancer(object): + ''' + The Cancer data can be found here + + http://www.stata-press.com/data/r10/rmain.html + ''' + def __init__(self): + filename = os.path.join(os.path.dirname(os.path.abspath(__file__)), + "stata_cancer_glm.csv") + data = np.recfromcsv(open(filename, 'rb')) + self.endog = data.studytime + design = np.column_stack((data.age,data.drug)) + design = categorical(design, col=1, drop=True) + design = np.delete(design, 1, axis=1) # drop first dummy + self.exog = add_constant(design, prepend=False) + +class CancerLog(Cancer): + """ + CancerLog is used TestGlmGammaLog + """ + def __init__(self): + super(CancerLog, self).__init__() + + self.resids = np.array([[-8.52598100e-01,-1.45739100e+00, + -3.92408100e+01, + -1.41526900e+00, -5.78417200e+00], + [ -8.23683800e-01, -1.35040200e+00, -2.64957500e+01, + -1.31777000e+00, -4.67162900e+00], + [ -7.30450400e-01, -1.07754600e+00, -4.02136400e+01, + -1.06208800e+00, -5.41978500e+00], + [ -7.04471600e-01, -1.01441500e+00, -7.25951500e+01, + -1.00172900e+00, -7.15130900e+00], + [ -5.28668000e-01, -6.68617300e-01, -3.80758100e+01, + -6.65304600e-01, -4.48658700e+00], + [ -2.28658500e-01, -2.48859700e-01, -6.14913600e+00, + -2.48707200e-01, -1.18577100e+00], + [ -1.93939400e-01, -2.08119900e-01, -7.46226500e+00, + -2.08031700e-01, -1.20300800e+00], + [ -3.55635700e-01, -4.09525000e-01, -2.14132500e+01, + -4.08815100e-01, -2.75958600e+00], + [ -5.73360000e-02, -5.84700000e-02, -4.12946200e+00, + -5.84681000e-02, -4.86586900e-01], + [ 3.09828000e-02, 3.06685000e-02, 1.86551100e+00, + 3.06682000e-02, 2.40413800e-01], + [ -2.11924300e-01, -2.29071300e-01, -2.18386100e+01, + -2.28953000e-01, -2.15130900e+00], + [ -3.10989000e-01, -3.50739300e-01, -4.19249500e+01, + -3.50300400e-01, -3.61084500e+00], + [ -9.22250000e-03, -9.25100000e-03, -1.13679700e+00, + -9.25100000e-03, -1.02392100e-01], + [ 2.39402500e-01, 2.22589700e-01, 1.88577300e+01, + 2.22493500e-01, 2.12475600e+00], + [ 3.35166000e-02, 3.31493000e-02, 4.51842400e+00, + 3.31489000e-02, 3.89155400e-01], + [ 8.49829400e-01, 6.85180200e-01, 3.57627500e+01, + 6.82689900e-01, 5.51291500e+00], + [ 4.12934200e-01, 3.66785200e-01, 4.65392600e+01, + 3.66370400e-01, 4.38379500e+00], + [ 4.64148400e-01, 4.07123200e-01, 6.25726500e+01, + 4.06561900e-01, 5.38915500e+00], + [ 1.71104600e+00, 1.19474800e+00, 1.12676500e+02, + 1.18311900e+00, 1.38850500e+01], + [ 1.26571800e+00, 9.46389000e-01, 1.30431000e+02, + 9.40244600e-01, 1.28486900e+01], + [ -3.48532600e-01, -3.99988300e-01, -2.95638100e+01, + -3.99328600e-01, -3.20997700e+00], + [ -4.04340300e-01, -4.76960100e-01, -4.10254300e+01, + -4.75818000e-01, -4.07286500e+00], + [ -4.92057900e-01, -6.08818300e-01, -9.34509600e+01, + -6.06357200e-01, -6.78109700e+00], + [ -4.02876400e-01, -4.74878400e-01, -9.15226200e+01, + -4.73751900e-01, -6.07225700e+00], + [ -5.15056700e-01, -6.46013300e-01, -2.19014600e+02, + -6.43043500e-01, -1.06209700e+01], + [ -8.70423000e-02, -8.97043000e-02, -1.26361400e+01, + -8.96975000e-02, -1.04875100e+00], + [ 1.28362300e-01, 1.23247800e-01, 1.70383300e+01, + 1.23231000e-01, 1.47887800e+00], + [ -2.39271900e-01, -2.61562100e-01, -9.30283300e+01, + -2.61384400e-01, -4.71795100e+00], + [ 7.37246500e-01, 6.08186000e-01, 6.25359600e+01, + 6.06409700e-01, 6.79002300e+00], + [ -3.64110000e-02, -3.68626000e-02, -1.41565300e+01, + -3.68621000e-02, -7.17951200e-01], + [ 2.68833000e-01, 2.47933100e-01, 6.67934100e+01, + 2.47801000e-01, 4.23748400e+00], + [ 5.96389600e-01, 5.07237700e-01, 1.13265500e+02, + 5.06180100e-01, 8.21890300e+00], + [ 1.98218000e-02, 1.96923000e-02, 1.00820900e+01, + 1.96923000e-02, 4.47040700e-01], + [ 7.74936000e-01, 6.34305300e-01, 2.51883900e+02, + 6.32303700e-01, 1.39711800e+01], + [ -7.63925100e-01, -1.16591700e+00, -4.93461700e+02, + -1.14588000e+00, -1.94156600e+01], + [ -6.23771700e-01, -8.41174800e-01, -4.40679600e+02, + -8.34266300e-01, -1.65796100e+01], + [ -1.63272900e-01, -1.73115100e-01, -6.73975900e+01, + -1.73064800e-01, -3.31725800e+00], + [ -4.28562500e-01, -5.11932900e-01, -4.73787800e+02, + -5.10507400e-01, -1.42494800e+01], + [ 8.00693000e-02, 7.80269000e-02, 3.95353400e+01, + 7.80226000e-02, 1.77920500e+00], + [ -2.13674400e-01, -2.31127400e-01, -2.15987000e+02, + -2.31005700e-01, -6.79344600e+00], + [ -1.63544000e-02, -1.64444000e-02, -1.05642100e+01, + -1.64444000e-02, -4.15657600e-01], + [ 2.04900500e-01, 1.92372100e-01, 1.10651300e+02, + 1.92309400e-01, 4.76156600e+00], + [ -1.94758900e-01, -2.09067700e-01, -2.35484100e+02, + -2.08978200e-01, -6.77219400e+00], + [ 3.16727400e-01, 2.88367800e-01, 1.87065600e+02, + 2.88162100e-01, 7.69732400e+00], + [ 6.24234900e-01, 5.27632500e-01, 2.57678500e+02, + 5.26448400e-01, 1.26827400e+01], + [ 8.30241100e-01, 6.72002100e-01, 2.86513700e+02, + 6.69644800e-01, 1.54232100e+01], + [ 6.55140000e-03, 6.53710000e-03, 7.92130700e+00, + 6.53710000e-03, 2.27805800e-01], + [ 3.41595200e-01, 3.08985000e-01, 2.88667600e+02, + 3.08733300e-01, 9.93012900e+00]]) + self.null_deviance = 27.92207137420696 # From R (bug in rpy) + self.params = np.array([-0.04477778, 0.57437126, 1.05210726, + 4.64604002]) + self.bse = np.array([ 0.0147328 , 0.19694727, 0.19772507, + 0.83534671]) + + self.aic_R = 331.89022395372069 + + self.aic_Stata = 7.403608467857651 + self.deviance = 16.174635536991005 + self.scale = 0.31805268736385695 + +# self.llf = -160.94511197686035 # From R + self.llf = -173.6866032285836 # from Staa + self.bic_Stata = -154.1582089453923 # from Stata + self.df_model = 3 + self.df_resid = 44 + self.chi2 = 36.77821448266359 # from Stata not in sm + + self.fittedvalues = np.array([ 6.78419193, 5.67167253, 7.41979002, + 10.15123371, + 8.48656317, 5.18582263, 6.20304079, 7.75958258, + 8.48656317, 7.75958258, 10.15123371, 11.61071755, + 11.10228357, 8.87520908, 11.61071755, 6.48711178, + 10.61611394, 11.61071755, 8.11493609, 10.15123371, + 9.21009116, 10.07296716, 13.78112366, 15.07225103, + 20.62079147, 12.04881666, 11.5211983 , 19.71780584, + 9.21009116, 19.71780584, 15.76249142, 13.78112366, + 22.55271436, 18.02872842, 25.41575239, 26.579678 , + 20.31745227, 33.24937131, 22.22095589, 31.79337946, + 25.41575239, 23.23857437, 34.77204095, 24.30279515, + 20.31745227, 18.57700761, 34.77204095, 29.06987768]) + +class CancerIdentity(Cancer): + """ + CancerIdentity is used with TestGlmGammaIdentity + """ + def __init__(self): + super(CancerIdentity, self).__init__() + + self.resids = np.array([[ -8.52598100e-01, -1.45739100e+00, + -3.92408100e+01, + -1.41526900e+00, -5.78417200e+00], + [ -8.23683800e-01, -1.35040200e+00, -2.64957500e+01, + -1.31777000e+00, -4.67162900e+00], + [ -7.30450400e-01, -1.07754600e+00, -4.02136400e+01, + -1.06208800e+00, -5.41978500e+00], + [ -7.04471600e-01, -1.01441500e+00, -7.25951500e+01, + -1.00172900e+00, -7.15130900e+00], + [ -5.28668000e-01, -6.68617300e-01, -3.80758100e+01, + -6.65304600e-01, -4.48658700e+00], + [ -2.28658500e-01, -2.48859700e-01, -6.14913600e+00, + -2.48707200e-01, -1.18577100e+00], + [ -1.93939400e-01, -2.08119900e-01, -7.46226500e+00, + -2.08031700e-01, -1.20300800e+00], + [ -3.55635700e-01, -4.09525000e-01, -2.14132500e+01, + -4.08815100e-01, -2.75958600e+00], + [ -5.73360000e-02, -5.84700000e-02, -4.12946200e+00, + -5.84681000e-02, -4.86586900e-01], + [ 3.09828000e-02, 3.06685000e-02, 1.86551100e+00, + 3.06682000e-02, 2.40413800e-01], + [ -2.11924300e-01, -2.29071300e-01, -2.18386100e+01, + -2.28953000e-01, -2.15130900e+00], + [ -3.10989000e-01, -3.50739300e-01, -4.19249500e+01, + -3.50300400e-01, -3.61084500e+00], + [ -9.22250000e-03, -9.25100000e-03, -1.13679700e+00, + -9.25100000e-03, -1.02392100e-01], + [ 2.39402500e-01, 2.22589700e-01, 1.88577300e+01, + 2.22493500e-01, 2.12475600e+00], + [ 3.35166000e-02, 3.31493000e-02, 4.51842400e+00, + 3.31489000e-02, 3.89155400e-01], + [ 8.49829400e-01, 6.85180200e-01, 3.57627500e+01, + 6.82689900e-01, 5.51291500e+00], + [ 4.12934200e-01, 3.66785200e-01, 4.65392600e+01, + 3.66370400e-01, 4.38379500e+00], + [ 4.64148400e-01, 4.07123200e-01, 6.25726500e+01, + 4.06561900e-01, 5.38915500e+00], + [ 1.71104600e+00, 1.19474800e+00, 1.12676500e+02, + 1.18311900e+00, 1.38850500e+01], + [ 1.26571800e+00, 9.46389000e-01, 1.30431000e+02, + 9.40244600e-01, 1.28486900e+01], + [ -3.48532600e-01, -3.99988300e-01, -2.95638100e+01, + -3.99328600e-01, -3.20997700e+00], + [ -4.04340300e-01, -4.76960100e-01, -4.10254300e+01, + -4.75818000e-01, -4.07286500e+00], + [ -4.92057900e-01, -6.08818300e-01, -9.34509600e+01, + -6.06357200e-01, -6.78109700e+00], + [ -4.02876400e-01, -4.74878400e-01, -9.15226200e+01, + -4.73751900e-01, -6.07225700e+00], + [ -5.15056700e-01, -6.46013300e-01, -2.19014600e+02, + -6.43043500e-01, -1.06209700e+01], + [ -8.70423000e-02, -8.97043000e-02, -1.26361400e+01, + -8.96975000e-02, -1.04875100e+00], + [ 1.28362300e-01, 1.23247800e-01, 1.70383300e+01, + 1.23231000e-01, 1.47887800e+00], + [ -2.39271900e-01, -2.61562100e-01, -9.30283300e+01, + -2.61384400e-01, -4.71795100e+00], + [ 7.37246500e-01, 6.08186000e-01, 6.25359600e+01, + 6.06409700e-01, 6.79002300e+00], + [ -3.64110000e-02, -3.68626000e-02, -1.41565300e+01, + -3.68621000e-02, -7.17951200e-01], + [ 2.68833000e-01, 2.47933100e-01, 6.67934100e+01, + 2.47801000e-01, 4.23748400e+00], + [ 5.96389600e-01, 5.07237700e-01, 1.13265500e+02, + 5.06180100e-01, 8.21890300e+00], + [ 1.98218000e-02, 1.96923000e-02, 1.00820900e+01, + 1.96923000e-02, 4.47040700e-01], + [ 7.74936000e-01, 6.34305300e-01, 2.51883900e+02, + 6.32303700e-01, 1.39711800e+01], + [ -7.63925100e-01, -1.16591700e+00, -4.93461700e+02, + -1.14588000e+00, -1.94156600e+01], + [ -6.23771700e-01, -8.41174800e-01, -4.40679600e+02, + -8.34266300e-01, -1.65796100e+01], + [ -1.63272900e-01, -1.73115100e-01, -6.73975900e+01, + -1.73064800e-01, -3.31725800e+00], + [ -4.28562500e-01, -5.11932900e-01, -4.73787800e+02, + -5.10507400e-01, -1.42494800e+01], + [ 8.00693000e-02, 7.80269000e-02, 3.95353400e+01, + 7.80226000e-02, 1.77920500e+00], + [ -2.13674400e-01, -2.31127400e-01, -2.15987000e+02, + -2.31005700e-01, -6.79344600e+00], + [ -1.63544000e-02, -1.64444000e-02, -1.05642100e+01, + -1.64444000e-02, -4.15657600e-01], + [ 2.04900500e-01, 1.92372100e-01, 1.10651300e+02, + 1.92309400e-01, 4.76156600e+00], + [ -1.94758900e-01, -2.09067700e-01, -2.35484100e+02, + -2.08978200e-01, -6.77219400e+00], + [ 3.16727400e-01, 2.88367800e-01, 1.87065600e+02, + 2.88162100e-01, 7.69732400e+00], + [ 6.24234900e-01, 5.27632500e-01, 2.57678500e+02, + 5.26448400e-01, 1.26827400e+01], + [ 8.30241100e-01, 6.72002100e-01, 2.86513700e+02, + 6.69644800e-01, 1.54232100e+01], + [ 6.55140000e-03, 6.53710000e-03, 7.92130700e+00, + 6.53710000e-03, 2.27805800e-01], + [ 3.41595200e-01, 3.08985000e-01, 2.88667600e+02, + 3.08733300e-01, 9.93012900e+00]]) + + self.params = np.array([ -0.5369833, 6.47296332, 16.20336802, + 38.96617431]) + self.bse = np.array([ 0.13341238, 2.1349966 , 3.87411875, 8.19235553]) + + self.aic_R = 328.39209118952965 + +#TODO: the below will fail + self.aic_Stata = 7.381090276021671 + self.deviance = 15.093762327607557 + self.scale = 0.29512089119443752 + self.null_deviance = 27.92207137420696 # from R bug in RPy +#NOTE: our scale is Stata's dispers_p (pearson?) +#NOTE: if scale is analagous to Stata's dispersion, then this might be +#where the discrepancies come from? +# self.llf = -159.19604559476483 # From R + self.llf = -173.1461666245201 # From Stata + self.bic_Stata = -155.2390821535193 + self.df_model = 3 + self.df_resid = 44 + self.chi2 = 51.56632068622578 + self.fittedvalues = np.array([ 6.21019277, 4.06225956, + 7.28415938, 11.04304251, + 8.89510929, 2.98829295, 5.13622616, 7.82114268, + 8.89510929, 7.82114268, 11.04304251, 12.65399242, + 12.11700911, 9.43209259, 12.65399242, 5.67320947, + 11.58002581, 12.65399242, 8.35812599, 11.04304251, + 9.46125627, 10.53522287, 14.294106 , 15.36807261, + 19.12695574, 12.68315609, 12.14617279, 18.58997243, + 9.46125627, 18.58997243, 15.90505591, 14.294106 , + 20.20092234, 17.51600582, 25.63546061, 26.17244391, + 22.95054409, 28.85736043, 24.0245107 , 28.32037713, + 25.63546061, 24.561494 , 29.39434374, 25.09847731, + 22.95054409, 21.87657748, 29.39434374, 27.24641052]) + +class Cpunish(object): + ''' + The following are from the R script in models.datasets.cpunish + Slightly different than published results, but should be correct + Probably due to rounding in cleaning? + ''' + def __init__(self): + self.params = (2.611017e-04, 7.781801e-02, -9.493111e-02, 2.969349e-01, + 2.301183e+00, -1.872207e+01, -6.801480e+00) + self.bse = (5.187132e-05, 7.940193e-02, 2.291926e-02, 4.375164e-01, + 4.283826e-01, 4.283961e+00, 4.146850e+00) + self.null_deviance = 136.57281747225 + self.df_null = 16 + self.deviance = 18.591641759528944 + self.df_resid = 10 + self.df_model = 6 + self.aic_R = 77.8546573896503 # same as Stata + self.aic_Stata = 4.579685683305706 + self.bic_Stata = -9.740492454486446 + self.chi2 = 128.8021169250578 # from Stata not in sm + self.llf = -31.92732869482515 + self.scale = 1 + self.pearson_chi2 = 24.75374835 + self.resids = glm_test_resids.cpunish_resids + self.fittedvalues = np.array([35.2263655, 8.1965744, 1.3118966, + 3.6862982, 2.0823003, 1.0650316, 1.9260424, 2.4171405, + 1.8473219, 2.8643241, 3.1211989, 3.3382067, 2.5269969, + 0.8972542, 0.9793332, 0.5346209, 1.9790936]) + + +class Cpunish_offset(Cpunish): + ''' + Same model as Cpunish but with offset of 100. Many things do not change. + ''' + def __init__(self): + super(Cpunish_offset, self).__init__() + + self.params = (-1.140665e+01, 2.611017e-04, 7.781801e-02, + -9.493111e-02, 2.969349e-01, 2.301183e+00, + -1.872207e+01) + self.bse = (4.147e+00, 5.187e-05, 7.940e-02, 2.292e-02, + 4.375e-01, 4.284e-01, 4.284e+00) + + + +class InvGauss(object): + ''' + Usef + + Data was generated by Hardin and Hilbe using Stata. + Note only the first 5000 observations are used because + the models code currently uses np.eye. + ''' +# np.random.seed(54321) +# x1 = np.abs(stats.norm.ppf((np.random.random(5000)))) +# x2 = np.abs(stats.norm.ppf((np.random.random(5000)))) +# X = np.column_stack((x1,x2)) +# X = add_constant(X) +# params = np.array([.5, -.25, 1]) +# eta = np.dot(X, params) +# mu = 1/np.sqrt(eta) +# sigma = .5 +# This isn't correct. Errors need to be normally distributed +# But Y needs to be Inverse Gaussian, so we could build it up +# by throwing out data? +# Refs: Lai (2009) Generating inverse Gaussian random variates by +# approximation +# Atkinson (1982) The simulation of generalized inverse gaussian and +# hyperbolic random variables seems to be the canonical ref +# Y = np.dot(X,params) + np.random.wald(mu, sigma, 1000) +# model = GLM(Y, X, family=models.family.InverseGaussian(link=\ +# models.family.links.identity)) + + def __init__(self): + # set up data # + filename = os.path.join(os.path.dirname(os.path.abspath(__file__)), + "inv_gaussian.csv") + data=np.genfromtxt(open(filename, 'rb'), delimiter=",", dtype=float)[1:] + self.endog = data[:5000,0] + self.exog = data[:5000,1:] + self.exog = add_constant(self.exog, prepend=False) + +#class InvGaussDefault(InvGauss) +# def __init__(self): +# super(InvGaussDefault, self).__init__() + # Results +#NOTE: loglikelihood difference in R vs. Stata vs. Models +# is the same situation as gamma + self.params = (0.4519770, -0.2508288, 1.0359574) + self.bse = (0.03148291, 0.02237211, 0.03429943) + self.null_deviance = 1520.673165475461 + self.df_null = 4999 + self.deviance = 1423.943980407997 + self.df_resid = 4997 + self.df_model = 2 + self.aic_R = 5059.41911646446 + self.aic_Stata = 1.552280060977946 + self.bic_Stata = -41136.47039418921 + self.llf = -3877.700354 # Stata is same as ours with scale set to 1 +# self.llf = -2525.70955823223 # from R, close to ours + self.scale = 0.2867266359127567 + self.pearson_chi2 = 1432.771536 + self.resids = glm_test_resids.invgauss_resids + self.fittedvalues = np.array([ 1.0404339 , 0.96831526, + 0.81265833, 0.9958362 , 1.05433442, + 1.09866137, 0.95548191, 1.38082105, 0.98942888, 0.96521958, + 1.02684056, 0.91412576, 0.91492102, 0.92639676, 0.96763425, + 0.80250852, 0.85281816, 0.90962261, 0.95550299, 0.86386815, + 0.94760134, 0.94269533, 0.98960509, 0.84787252, 0.78949111, + 0.76873582, 0.98933453, 0.95105574, 0.8489395 , 0.88962971, + 0.84856357, 0.88567313, 0.84505405, 0.84626147, 0.77250421, + 0.90175601, 1.15436378, 0.98375558, 0.83539542, 0.82845381, + 0.90703971, 0.85546165, 0.96707286, 0.84127197, 0.82096543, + 1.1311227 , 0.87617029, 0.91194419, 1.05125511, 0.95330314, + 0.75556148, 0.82573228, 0.80424982, 0.83800144, 0.8203644 , + 0.84423807, 0.98348433, 0.93165089, 0.83968706, 0.79256287, + 1.0302839 , 0.90982028, 0.99471562, 0.70931825, 0.85471721, + 1.02668021, 1.11308301, 0.80497105, 1.02708486, 1.07671424, + 0.821108 , 0.86373486, 0.99104964, 1.06840593, 0.94947784, + 0.80982122, 0.95778065, 1.0254212 , 1.03480946, 0.83942363, + 1.17194944, 0.91772559, 0.92368795, 1.10410916, 1.12558875, + 1.11290791, 0.87816503, 1.04299294, 0.89631173, 1.02093004, + 0.86331723, 1.13134858, 1.01807861, 0.98441692, 0.72567667, + 1.42760495, 0.78987436, 0.72734482, 0.81750166, 0.86451854, + 0.90564264, 0.81022323, 0.98720325, 0.98263709, 0.99364823, + 0.7264445 , 0.81632452, 0.7627845 , 1.10726938, 0.79195664, + 0.86836774, 1.01558149, 0.82673675, 0.99529548, 0.97155636, + 0.980696 , 0.85460503, 1.00460782, 0.77395244, 0.81229831, + 0.94078297, 1.05910564, 0.95921954, 0.97841172, 0.93093166, + 0.93009865, 0.89888111, 1.18714408, 0.98964763, 1.03388898, + 1.67554215, 0.82998876, 1.34100687, 0.86766346, 0.96392316, + 0.91371033, 0.76589296, 0.92329051, 0.82560326, 0.96758148, + 0.8412995 , 1.02550678, 0.74911108, 0.8751611 , 1.01389312, + 0.87865556, 1.24095868, 0.90678261, 0.85973204, 1.05617845, + 0.94163038, 0.88087351, 0.95699844, 0.86083491, 0.89669384, + 0.78646825, 1.0014202 , 0.82399199, 1.05313139, 1.06458324, + 0.88501766, 1.19043294, 0.8458026 , 1.00231535, 0.72464305, + 0.94790753, 0.7829744 , 1.1953009 , 0.85574035, 0.95433052, + 0.96341484, 0.91362908, 0.94097713, 0.87273804, 0.81126399, + 0.72715262, 0.85526116, 0.76015834, 0.8403826 , 0.9831501 , + 1.17104665, 0.78862494, 1.01054909, 0.91511601, 1.0990797 , + 0.91352124, 1.13671162, 0.98793866, 1.0300545 , 1.04490115, + 0.85778231, 0.94824343, 1.14510618, 0.81305136, 0.88085051, + 0.94743792, 0.94875465, 0.96206997, 0.94493612, 0.93547218, + 1.09212018, 0.86934651, 0.90532353, 1.07066001, 1.26197714, + 0.93858662, 0.9685039 , 0.7946546 , 1.03052031, 0.75395899, + 0.87527062, 0.82156476, 0.949774 , 1.01000235, 0.82613526, + 1.0224591 , 0.91529149, 0.91608832, 1.09418385, 0.8228272 , + 1.06337472, 1.05533176, 0.93513063, 1.00055806, 0.95474743, + 0.91329368, 0.88711836, 0.95584926, 0.9825458 , 0.74954073, + 0.96964967, 0.88779583, 0.95321846, 0.95390055, 0.95369029, + 0.94326714, 1.31881201, 0.71512263, 0.84526602, 0.92323824, + 1.01993108, 0.85155992, 0.81416851, 0.98749128, 1.00034192, + 0.98763473, 1.05974138, 1.05912658, 0.89772172, 0.97905626, + 1.1534306 , 0.92304181, 1.16450278, 0.7142307 , 0.99846981, + 0.79861247, 0.73939835, 0.93776385, 1.0072242 , 0.89159707, + 1.05514263, 1.05254569, 0.81005146, 0.95179784, 1.00278795, + 1.04910398, 0.88427798, 0.74394266, 0.92941178, 0.83622845, + 0.84064958, 0.93426956, 1.03619314, 1.22439347, 0.73510451, + 0.82997071, 0.90828036, 0.80866989, 1.34078212, 0.85079169, + 0.88346039, 0.76871666, 0.96763454, 0.66936914, 0.94175741, + 0.97127617, 1.00844382, 0.83449557, 0.88095564, 1.17711652, + 1.0547188 , 1.04525593, 0.93817487, 0.77978294, 1.36143199, + 1.16127997, 1.03792952, 1.03151637, 0.83837387, 0.94326066, + 1.0054787 , 0.99656841, 1.05575689, 0.97641643, 0.85108163, + 0.82631589, 0.77407305, 0.90566132, 0.91308164, 0.95560906, + 1.04523011, 1.03773723, 0.97378685, 0.83999133, 1.06926871, + 1.01073982, 0.9804959 , 1.06473061, 1.25315673, 0.969175 , + 0.63443508, 0.84574684, 1.06031239, 0.93834605, 1.01784925, + 0.93488249, 0.80240225, 0.88757274, 0.9224097 , 0.99158962, + 0.87412592, 0.76418199, 0.78044069, 1.03117412, 0.82042521, + 1.10272129, 1.09673757, 0.89626935, 1.01678612, 0.84911824, + 0.95821431, 0.99169558, 0.86853864, 0.92172772, 0.94046199, + 0.89750517, 1.09599258, 0.92387291, 1.07770118, 0.98831383, + 0.86352396, 0.83079533, 0.94431185, 1.12424626, 1.02553104, + 0.8357513 , 0.97019669, 0.76816092, 1.34011343, 0.86489527, + 0.82156358, 1.25529129, 0.86820218, 0.96970237, 0.85850546, + 0.97429559, 0.84826078, 1.02498396, 0.72478517, 0.993497 , + 0.76918521, 0.91079198, 0.80988325, 0.75431095, 1.02918073, + 0.88884197, 0.82625507, 0.78564563, 0.91505355, 0.88896863, + 0.85882361, 0.81538316, 0.67656235, 0.8564822 , 0.82473022, + 0.92928331, 0.98068415, 0.82605685, 1.0150412 , 1.00631678, + 0.92405101, 0.88909552, 0.94873568, 0.87657342, 0.8280683 , + 0.77596382, 0.96598811, 0.78922426, 0.87637606, 0.98698735, + 0.92207026, 0.71487846, 1.03845478, 0.70749745, 1.08603388, + 0.92697779, 0.86470448, 0.70119494, 1.00596847, 0.91426549, + 1.05318838, 0.79621712, 0.96169742, 0.88053405, 0.98963934, + 0.94152997, 0.88413591, 0.75035344, 0.86007123, 0.83713514, + 0.91234911, 0.79562744, 0.84099675, 1.0334279 , 1.00272243, + 0.95359383, 0.84292969, 0.94234155, 0.90190899, 0.97302022, + 1.1009829 , 1.0148975 , 0.99082987, 0.75916515, 0.9204784 , + 0.94477378, 1.01108683, 1.00038149, 0.9259798 , 1.19400436, + 0.80191877, 0.79565851, 0.81865924, 0.79003506, 0.8995508 , + 0.73137983, 0.88336018, 0.7855268 , 1.04478073, 0.90857981, + 1.16076951, 0.76096486, 0.90004113, 0.83819665, 0.95295365, + 1.09911441, 0.78498197, 0.95094991, 0.94333419, 0.95131688, + 0.82961049, 1.08001761, 1.06426458, 0.94291798, 1.04381938, + 0.90380364, 0.74060138, 0.98701862, 0.72250236, 0.86125293, + 0.76488061, 0.9858051 , 0.98099677, 0.96849209, 0.90053351, + 0.88469597, 0.80688516, 1.06396217, 1.02446023, 0.911863 , + 0.98837746, 0.91102987, 0.92810392, 1.13526335, 1.00419541, + 1.00866175, 0.74352261, 0.91051641, 0.81868428, 0.93538014, + 0.87822651, 0.93278572, 1.0356074 , 1.25158731, 0.98372647, + 0.81335741, 1.06441863, 0.80305786, 0.95201148, 0.90283451, + 1.17319519, 0.8984894 , 0.88911288, 0.91474736, 0.94512294, + 0.92956283, 0.86682085, 1.08937227, 0.94825713, 0.9787145 , + 1.16747163, 0.80863682, 0.98314119, 0.91052823, 0.80913225, + 0.78503169, 0.78751737, 1.08932193, 0.86859845, 0.96847458, + 0.93468839, 1.10769915, 1.1769249 , 0.84916138, 1.00556408, + 0.84508585, 0.92617942, 0.93985886, 1.17303268, 0.81172495, + 0.93482682, 1.04082486, 1.03209348, 0.97220394, 0.90274672, + 0.93686291, 0.91116431, 1.14814563, 0.83279158, 0.95853283, + 1.0261179 , 0.95779432, 0.86995883, 0.78164915, 0.89946906, + 0.9194465 , 0.97919367, 0.92719039, 0.89063569, 0.80847805, + 0.81192101, 0.75044535, 0.86819023, 1.03420014, 0.8899434 , + 0.94899544, 0.9860773 , 1.10047297, 1.00243849, 0.82153972, + 1.14289945, 0.8604684 , 0.87187524, 1.00415032, 0.78460709, + 0.86319884, 0.92818335, 1.08892111, 1.06841003, 1.00735918, + 1.20775251, 0.72613554, 1.25768191, 1.08573511, 0.89671127, + 0.91259535, 1.01414208, 0.87422903, 0.82720677, 0.9568079 , + 1.00450416, 0.91043845, 0.84095709, 1.08010574, 0.69848293, + 0.90769214, 0.94713501, 1.14808251, 1.0605676 , 1.21734482, + 0.78578521, 1.01516235, 0.94330326, 0.98363817, 0.99650084, + 0.74280796, 0.96227123, 0.95741454, 1.00980406, 0.93468092, + 1.10098591, 1.18175828, 0.8553791 , 0.81713219, 0.82912143, + 0.87599518, 1.15006511, 1.03151163, 0.8751847 , 1.15701331, + 0.73394166, 0.91426368, 0.96953458, 1.13901709, 0.83028721, + 1.15742641, 0.9395442 , 0.98118552, 0.89585426, 0.74147117, + 0.8902096 , 1.00212097, 0.97665858, 0.92624514, 0.98006601, + 0.9507215 , 1.00889825, 1.2406772 , 0.88768719, 0.76587533, + 1.0081044 , 0.89608494, 1.00083526, 0.85594415, 0.76425576, + 1.0286636 , 1.13570272, 0.82020405, 0.81961271, 1.04586579, + 1.26560245, 0.89721521, 1.19324037, 0.948205 , 0.79414261, + 0.85157002, 0.95155101, 0.91969239, 0.87699126, 1.03452982, + 0.97093572, 1.14355781, 0.85088592, 0.79032079, 0.84521733, + 0.99547581, 0.87593455, 0.8776799 , 1.05531013, 0.94557017, + 0.91538439, 0.79679863, 1.03398557, 0.88379021, 0.98850319, + 1.05833423, 0.90055078, 0.92267584, 0.76273738, 0.98222632, + 0.86392524, 0.78242646, 1.19417739, 0.89159895, 0.97565002, + 0.85818308, 0.85334266, 1.85008011, 0.87199282, 0.77873231, + 0.78036174, 0.96023918, 0.91574121, 0.89217979, 1.16421151, + 1.29817786, 1.18683283, 0.96096225, 0.89964569, 1.00401442, + 0.80758845, 0.89458758, 0.7994919 , 0.85889356, 0.73147252, + 0.7777221 , 0.9148438 , 0.72388117, 0.91134001, 1.0892724 , + 1.01736424, 0.86503014, 0.77344917, 1.04515616, 1.06677211, + 0.93421936, 0.8821777 , 0.91860774, 0.96381507, 0.70913689, + 0.82354748, 1.12416046, 0.85989778, 0.90588737, 1.22832895, + 0.65955579, 0.93828405, 0.88946418, 0.92152859, 0.83168025, + 0.93346887, 0.96456078, 0.9039245 , 1.03598695, 0.78405559, + 1.21739525, 0.79019383, 0.84034646, 1.00273203, 0.96356393, + 0.948103 , 0.90279217, 1.0187839 , 0.91630508, 1.15965854, + 0.84203423, 0.98803156, 0.91604459, 0.90986512, 0.93384826, + 0.76687038, 0.96251902, 0.80648134, 0.77336547, 0.85720164, + 0.9351947 , 0.88004728, 0.91083961, 1.06225829, 0.90230812, + 0.72383932, 0.8343425 , 0.8850996 , 1.19037918, 0.93595522, + 0.85061223, 0.84330949, 0.82397482, 0.92075047, 0.86129584, + 0.99296756, 0.84912251, 0.8569699 , 0.75252201, 0.80591772, + 1.03902954, 1.04379139, 0.87360195, 0.97452318, 0.93240609, + 0.85406409, 1.11717394, 0.95758536, 0.82772817, 0.67947416, + 0.85957788, 0.93731268, 0.90349227, 0.79464185, 0.99148637, + 0.8461071 , 0.95399991, 1.04320664, 0.87290871, 0.96780849, + 0.99467159, 0.96421545, 0.80174643, 0.86475812, 0.74421362, + 0.85230296, 0.89891758, 0.77589592, 0.98331957, 0.87387233, + 0.92023388, 1.03037742, 0.83796515, 1.0296667 , 0.85891747, + 1.02239978, 0.90958406, 1.09731875, 0.8032638 , 0.84482057, + 0.8233118 , 0.86184709, 0.93105929, 0.99443502, 0.77442109, + 0.98367982, 0.95786272, 0.81183444, 1.0526009 , 0.86993018, + 0.985886 , 0.92016756, 1.00847155, 1.2309469 , 0.97732206, + 0.83074957, 0.87406987, 0.95268492, 0.94189139, 0.87056443, + 1.0135018 , 0.93051004, 1.5170931 , 0.80948763, 0.83737473, + 1.05461331, 0.97501633, 1.01449333, 0.79760056, 1.05756482, + 0.97300884, 0.92674035, 0.8933763 , 0.91624084, 1.13127607, + 0.88115305, 0.9351562 , 0.91430431, 1.11668229, 1.10000526, + 0.88171963, 0.74914744, 0.94610698, 1.13841497, 0.90551414, + 0.89773592, 1.01696097, 0.85096063, 0.80935471, 0.68458106, + 1.2718979 , 0.93550219, 0.96071403, 0.75434294, 0.95112257, + 1.16233368, 0.73664915, 1.02195777, 1.07487625, 0.8937445 , + 0.78006023, 0.89588994, 1.16354892, 1.02629448, 0.89208642, + 1.02088244, 0.85385355, 0.88586061, 0.94571704, 0.89710576, + 0.95191525, 0.99819848, 0.97117841, 1.13899808, 0.88414949, + 0.90938883, 1.02937917, 0.92936684, 0.87323594, 0.8384819 , + 0.87766945, 1.05869911, 0.91028734, 0.969953 , 1.11036647, + 0.94996802, 1.01305483, 1.03697568, 0.9750155 , 1.04537837, + 0.9314676 , 0.86589798, 1.17446667, 1.02564533, 0.82088708, + 0.96481845, 0.86148642, 0.79174298, 1.18029919, 0.82132544, + 0.92193776, 1.03669516, 0.96637464, 0.83725933, 0.88776321, + 1.08395861, 0.91255709, 0.96884738, 0.89840008, 0.91168146, + 0.99652569, 0.95693101, 0.83144932, 0.99886503, 1.02819927, + 0.95273533, 0.95959945, 1.08515986, 0.70269432, 0.79529303, + 0.93355669, 0.92597539, 1.0745695 , 0.87949758, 0.86133964, + 0.95653873, 1.09161425, 0.91402143, 1.13895454, 0.89384443, + 1.16281703, 0.8427015 , 0.7657266 , 0.92724079, 0.95383649, + 0.86820891, 0.78942366, 1.11752711, 0.97902686, 0.87425286, + 0.83944794, 1.12576718, 0.9196059 , 0.89844835, 1.10874172, + 1.00396783, 0.9072041 , 1.63580253, 0.98327489, 0.68564426, + 1.01007087, 0.92746473, 1.01328833, 0.99584546, 0.86381679, + 1.0082541 , 0.85414132, 0.87620981, 1.22461203, 1.03935516, + 0.86457326, 0.95165828, 0.84762138, 0.83080254, 0.84715241, + 0.80323344, 1.09282941, 1.00902453, 1.02834261, 1.09810743, + 0.86560231, 1.31568763, 1.03754782, 0.81298745, 1.14500629, + 0.87364384, 0.89928367, 0.96118471, 0.83321743, 0.90590461, + 0.98739499, 0.79408399, 1.18513754, 1.05619307, 0.99920088, + 1.04347259, 1.07689022, 1.24916765, 0.74246274, 0.90949597, + 0.87077335, 0.81233276, 1.05403934, 0.98333063, 0.77689527, + 0.93181907, 0.98853585, 0.80700332, 0.89570662, 0.97102475, + 0.69178123, 0.72950409, 0.89661719, 0.84821737, 0.8724469 , + 0.96453177, 0.9690018 , 0.87132764, 0.91711564, 1.79521288, + 0.75894855, 0.90733112, 0.86565687, 0.90433268, 0.83412618, + 1.26779628, 1.06999114, 0.73181364, 0.90334838, 0.86634581, + 0.76999285, 1.55403008, 0.74712547, 0.84702579, 0.72396203, + 0.82292773, 0.73633208, 0.90524618, 0.9954355 , 0.85076517, + 0.96097585, 1.21655611, 0.77658146, 0.81026686, 1.07540173, + 0.94219623, 0.97472554, 0.72422803, 0.85055855, 0.85905477, + 1.17391419, 0.87644114, 1.03573284, 1.16647944, 0.87810532, + 0.89134419, 0.83531593, 0.93448128, 1.04967869, 1.00110843, + 0.936784 , 1.00143426, 0.79714807, 0.82656251, 0.95057309, + 0.93821813, 0.93469098, 0.99825205, 0.95384714, 1.07063008, + 0.97603699, 0.816668 , 0.98286184, 0.86061483, 0.88166732, + 0.93730982, 0.77633837, 0.87671549, 0.99192439, 0.86452825, + 0.95880282, 0.7098419 , 1.12717149, 1.16707939, 0.84854333, + 0.87486963, 0.9255293 , 1.06534197, 0.9888494 , 1.09931069, + 1.21859221, 0.97489537, 0.82508579, 1.14868922, 0.98076133, + 0.85524084, 0.69042079, 0.93012936, 0.96908499, 0.94284892, + 0.80114327, 0.919846 , 0.95753354, 1.04536666, 0.77109284, + 0.99942571, 0.79004323, 0.91820045, 0.97665489, 0.64689716, + 0.89444405, 0.96106598, 0.74196857, 0.92905294, 0.70500318, + 0.95074586, 0.98518665, 1.0794044 , 1.00364488, 0.96710486, + 0.92429638, 0.94383006, 1.12554253, 0.95199191, 0.87380738, + 0.72183594, 0.94453761, 0.98663804, 0.68247366, 1.02761427, + 0.93255355, 0.85264705, 1.00341417, 1.07765999, 0.97396039, + 0.90770805, 0.82750901, 0.73824542, 1.24491161, 0.83152629, + 0.78656996, 0.99062838, 0.98276905, 0.98291014, 1.12795903, + 0.98742704, 0.9579893 , 0.80451701, 0.87198344, 1.24746127, + 0.95839155, 1.11708725, 0.97113877, 0.7721646 , 0.95781621, + 0.67069168, 1.05509376, 0.96071852, 0.99768666, 0.83008521, + 0.9156695 , 0.86314088, 1.23081412, 1.14723685, 0.8007289 , + 0.81590842, 1.31857558, 0.7753396 , 1.11091566, 1.03560198, + 1.01837739, 0.94882818, 0.82551111, 0.93188019, 0.99532255, + 0.93848495, 0.77764975, 0.85192319, 0.79913938, 0.99495229, + 0.96122733, 1.13845155, 0.95846389, 0.8891543 , 0.97979531, + 0.87167192, 0.88119611, 0.79655111, 0.9298217 , 0.96399321, + 1.02005428, 1.06936503, 0.86948022, 1.02560548, 0.9149464 , + 0.83797207, 0.86175383, 0.92455994, 0.89218435, 0.81546463, + 0.98488771, 0.92784833, 0.87895608, 0.93366386, 1.17487238, + 0.79088952, 0.9237694 , 0.76389869, 0.931953 , 0.76272078, + 1.00304977, 0.86612561, 0.87870143, 0.93808276, 1.12489343, + 1.00668791, 0.88027101, 0.88845209, 0.88574216, 0.84284514, + 0.96594357, 0.94363002, 0.78245367, 0.92941326, 0.99622557, + 0.83812683, 0.77901691, 0.9588432 , 0.82057415, 0.95178868, + 1.01904651, 0.97598844, 0.99369336, 1.12041918, 1.19432836, + 0.91709572, 0.94645855, 0.93656587, 0.68754669, 0.80869784, + 0.86704186, 0.83033797, 0.71892193, 0.97549489, 1.12150683, + 0.76214802, 1.08564181, 0.84677802, 0.68080207, 1.03577057, + 1.07937239, 0.6773357 , 1.0279076 , 0.89945816, 0.97765439, + 0.91322633, 0.92490964, 0.92693575, 1.12297137, 0.81825246, + 0.87598377, 1.11873032, 0.83472799, 1.21424495, 1.02318444, + 1.01563195, 1.05663193, 0.82533918, 0.88766496, 0.95906474, + 0.90738779, 0.93509534, 1.06658145, 1.00231797, 1.3131534 , + 0.88839464, 1.081006 , 0.866936 , 0.89030904, 0.91197562, + 0.73449761, 0.95767806, 1.03407868, 0.79812826, 1.10555445, + 0.85610722, 0.87420881, 1.04251375, 1.14286242, 1.00025972, + 0.83742693, 1.11116502, 0.97424809, 0.92059325, 0.93958773, + 0.80386755, 0.6881267 , 0.88620708, 1.01715536, 1.12403581, + 0.91078992, 0.81101399, 1.17271429, 1.09980447, 0.86063042, + 0.80805811, 0.87988444, 0.97398188, 0.91808966, 0.90676805, + 0.80042891, 0.84060789, 0.9710147 , 1.00012669, 1.04805667, + 0.66912164, 0.96111694, 0.86948596, 0.9056999 , 1.01489333, + 1.27876763, 0.873881 , 0.98276702, 0.95553234, 0.82877996, + 0.79697623, 0.77015376, 0.8234212 , 1.13394959, 0.96244655, + 1.06516156, 0.82743856, 1.02931842, 0.78093489, 1.01322256, + 1.00348929, 0.9408142 , 1.06495299, 0.8599522 , 0.81640723, + 0.81505589, 1.02506487, 0.91148383, 1.11134309, 0.83992234, + 0.82982074, 0.9721429 , 0.98897262, 1.01815004, 0.87838456, + 0.80573592, 1.103707 , 0.97326218, 1.08921236, 1.2638062 , + 0.83142563, 1.16028769, 0.86701564, 1.15610014, 0.98303722, + 0.87138463, 0.75281511, 1.07715535, 0.91526065, 1.08769832, + 0.83598308, 1.03580956, 0.9390066 , 0.78544378, 1.03635836, + 0.7974467 , 0.99273331, 0.89639711, 0.9250066 , 1.14323824, + 0.9783478 , 1.15460639, 0.94265587, 1.09317654, 0.78585439, + 0.99523323, 0.95104776, 0.85582572, 0.96100168, 0.9131529 , + 0.86496966, 0.72414589, 1.05142704, 0.85570039, 0.98217968, + 0.99031168, 1.01867086, 0.96781667, 0.98581487, 1.00415938, + 1.0339337 , 1.13987579, 1.14205543, 0.83393745, 0.96348647, + 0.91895164, 0.77055293, 1.0053723 , 0.93168993, 1.00332386, + 1.04195993, 1.11933891, 0.87439883, 0.87156457, 0.96050419, + 0.72718399, 1.13546762, 0.89614816, 0.85081037, 0.8831463 , + 0.76370482, 0.99582951, 1.01844155, 1.08611311, 1.15832217, + 1.17551069, 0.97057262, 0.95163548, 0.98310701, 0.65874788, + 0.9655409 , 0.85675853, 1.34637286, 0.93779619, 1.0005791 , + 0.88104966, 1.14530829, 0.93687034, 1.01472112, 1.62464726, + 0.84652357, 0.84639676, 0.87513324, 0.94837881, 0.85425129, + 0.89820401, 0.94906277, 0.97796792, 0.98969445, 0.8036801 , + 1.03936478, 0.95898918, 0.82919938, 1.29609354, 0.97833841, + 0.86862799, 0.88040491, 0.8741178 , 0.80617278, 0.95983882, + 0.9752235 , 0.84292828, 0.9327284 , 0.93297136, 1.06255543, + 0.88756716, 1.13601403, 0.72311518, 0.95250034, 0.95369843, + 1.02562728, 0.74354691, 0.78463923, 0.88720818, 1.07763289, + 0.94502062, 0.81170329, 0.96516347, 0.76884811, 0.84169312, + 0.83752837, 1.1487847 , 1.04311868, 0.78128663, 0.74604211, + 0.96488513, 1.1722513 , 0.91661948, 1.06642815, 0.92185781, + 0.93289001, 0.65208625, 0.75734648, 0.99580571, 1.21871511, + 0.96316283, 1.06093093, 0.7914337 , 0.90494572, 0.79235327, + 0.90771769, 0.91355145, 0.98754767, 0.88938619, 0.89503537, + 0.82764566, 0.77267065, 0.81520031, 0.90423926, 0.94289609, + 0.88678376, 1.03209085, 0.81319963, 0.91600997, 0.81608666, + 0.72429125, 0.95585073, 1.14039309, 1.00326452, 0.99629944, + 0.95647901, 0.8927127 , 0.96558599, 0.86305195, 1.0366906 , + 0.90494731, 0.95148458, 1.11229696, 1.17059748, 0.74867876, + 0.99621909, 0.94246499, 0.82403515, 0.92144961, 0.93209989, + 0.9705427 , 0.97915309, 0.92431525, 0.7589944 , 0.75208652, + 0.89375154, 0.78820016, 1.24061454, 1.08031776, 0.88364539, + 0.86909794, 0.98635253, 0.97620372, 1.24278282, 1.01146474, + 0.93726261, 0.94411536, 1.08344492, 0.75389972, 1.09979822, + 0.84271329, 1.16616317, 0.88177625, 0.8451345 , 0.91355741, + 0.99833789, 0.86172172, 0.87076203, 0.83743078, 0.99771528, + 1.0469295 , 0.87952668, 1.04362453, 0.96350831, 0.95744466, + 0.84284283, 0.8773066 , 0.85984544, 1.00589365, 0.88069101, + 1.02331332, 1.06616241, 0.78475212, 1.02296979, 0.81480926, + 1.09008244, 0.71435844, 0.79655626, 1.09824162, 0.87785428, + 1.18020492, 0.99852432, 0.79028362, 0.80081103, 1.10940685, + 1.08752313, 0.90673214, 0.84978348, 0.69466992, 0.77497046, + 0.83074014, 0.87865947, 0.78890395, 0.7925195 , 0.99749611, + 0.91430636, 0.87863864, 0.95392862, 0.91430684, 0.97358575, + 0.87999755, 0.88234274, 0.71682337, 1.09723693, 0.71907671, + 0.97487202, 0.71792963, 0.88374828, 0.73386811, 0.9315647 , + 1.05020628, 0.99128682, 0.71831173, 1.07119604, 1.02028122, + 1.04696848, 0.93335813, 1.04275931, 0.72181913, 0.8837163 , + 0.90283411, 0.96642474, 0.89851984, 0.8397063 , 0.91185676, + 1.00573193, 0.88430729, 0.7738957 , 1.07361285, 0.92617819, + 0.64251751, 1.05229257, 0.73378537, 1.08270418, 0.99490809, + 1.13634433, 1.11979997, 1.03383516, 1.00661234, 1.05778729, + 1.05977357, 1.13779694, 0.91237075, 1.04866775, 0.9163203 , + 0.93152436, 0.83607634, 1.13426049, 1.26438419, 0.93515536, + 0.92181847, 0.86558905, 1.01985742, 1.44095931, 0.92256398, + 0.83369288, 0.93369164, 0.8243758 , 0.98278708, 0.80512458, + 1.02092014, 0.73575074, 1.2214659 , 0.85391033, 0.97617313, + 0.82054292, 1.04792993, 0.93961791, 1.01145014, 0.89301558, + 0.93167504, 0.88221321, 1.23543354, 0.97023998, 1.00197517, + 0.85394662, 0.89426495, 0.81344186, 1.08242456, 0.76253284, + 1.00642867, 0.76685541, 1.01487961, 0.84028343, 0.87979545, + 0.92796937, 0.99796437, 1.28844084, 1.02827514, 1.03663144, + 0.83164521, 0.95644234, 0.77797914, 0.96748275, 1.09139879, + 0.84329253, 0.9539873 , 0.80094065, 1.13771172, 0.91557533, + 0.93370323, 0.79977904, 1.02721929, 1.16292026, 0.92976802, + 0.85806865, 0.97824974, 1.02721582, 0.82773004, 0.9297126 , + 0.93769842, 1.14995068, 1.02895292, 0.90307101, 0.85918303, + 1.14903979, 1.0344768 , 0.7502627 , 1.27452448, 1.12150928, + 0.87274005, 1.09807041, 0.98634666, 1.03086907, 0.94743667, + 0.91145542, 1.04395791, 0.83396016, 0.94783374, 0.96693806, + 0.88864359, 0.93400675, 1.08563936, 0.78599906, 0.92142347, + 1.15487344, 1.19946426, 0.92729226, 0.83333347, 0.90837637, + 0.89191831, 1.0581614 , 0.85162688, 1.10081699, 0.98295351, + 0.86684217, 1.00867408, 0.95966205, 0.73170785, 1.3207658 , + 0.87988622, 0.82869937, 0.9620586 , 0.71668579, 1.04105616, + 0.71415591, 1.30198958, 0.81934393, 0.86731955, 0.99773712, + 0.99943609, 0.87678188, 1.01650692, 0.73917494, 0.92077402, + 0.98322263, 0.90623212, 0.88261034, 1.12798871, 0.84698889, + 0.85312827, 0.91214965, 0.8778361 , 0.99621569, 0.94155734, + 0.66441342, 0.85925635, 0.98064691, 0.97107172, 0.96438785, + 0.95670408, 0.87601389, 0.9388234 , 0.91165254, 1.14769638, + 0.99856344, 0.84391431, 0.94850194, 0.93754548, 0.86398937, + 0.95090327, 1.07959765, 1.16684297, 0.82354834, 0.93165852, + 0.91422292, 1.14872038, 0.87050113, 0.92322683, 1.04111597, + 0.87780005, 0.94602618, 1.10071675, 0.88412438, 0.91286998, + 0.9045216 , 0.91750005, 0.98647095, 1.10986959, 0.98912028, + 1.01565645, 0.93891294, 0.97696431, 0.91186476, 0.77363533, + 1.00075969, 0.89608139, 0.99828964, 0.87239569, 0.87540604, + 0.76152791, 0.82501538, 0.91656546, 0.74389243, 1.07923575, + 1.00241137, 1.05628365, 1.04407879, 0.90048788, 1.1134027 , + 0.89745966, 0.96534 , 0.71151925, 0.91798511, 0.7337992 , + 0.83636115, 0.75279928, 0.95570185, 0.89073922, 0.90307955, + 0.8030445 , 0.84374939, 0.89769981, 0.99002578, 1.01849373, + 0.92436541, 0.79675699, 1.03910383, 1.07487895, 0.8906169 , + 0.97729004, 0.97284392, 0.76338988, 0.82756432, 1.12289431, + 0.9582901 , 0.97160038, 0.90141331, 0.83271234, 1.16065947, + 0.90605662, 1.13389282, 0.8557889 , 0.77149889, 0.9462268 , + 0.95908887, 1.03399986, 0.92795031, 0.73529029, 0.93630494, + 0.96730298, 1.05490026, 0.93313995, 0.96980639, 0.9177592 , + 0.95483326, 0.85262905, 0.95170479, 0.9601628 , 0.94878173, + 0.87627934, 1.00561764, 0.83441231, 0.90890643, 0.97177858, + 1.26394809, 0.80773622, 0.72205262, 0.87692143, 1.01842034, + 0.98128171, 1.10776014, 0.94400422, 0.92697961, 0.79523284, + 0.8609763 , 0.96303262, 1.17190075, 1.01259271, 1.04973619, + 0.94837034, 0.86592734, 0.85908444, 1.14914962, 0.98113587, + 1.03070712, 0.89916573, 0.90618114, 0.93223156, 0.96031901, + 0.94162334, 0.98908438, 0.95170104, 0.95056422, 0.81782932, + 0.81770133, 1.32039255, 1.28822384, 0.82916292, 1.01626284, + 0.97537737, 0.83235746, 0.78645733, 0.77916206, 0.93591612, + 0.8469273 , 0.74309279, 0.91331015, 1.11240033, 1.41018987, + 0.95320314, 0.95807535, 0.89382722, 0.9259679 , 0.92570222, + 0.84567759, 0.82332966, 0.98371126, 1.00248628, 0.72107053, + 1.09687436, 0.78399705, 0.85224803, 0.92151262, 0.85618586, + 0.88485527, 0.954487 , 0.86659146, 1.12800711, 0.93019359, + 0.91388385, 0.95298992, 0.96834137, 0.90256791, 1.01222062, + 0.84883116, 1.01234642, 0.91135106, 0.83362478, 0.94928359, + 0.82247066, 0.7671973 , 0.85663382, 0.88838144, 0.92491567, + 0.88698604, 0.87485584, 1.08494606, 0.96431031, 1.06243095, + 1.14062212, 1.02081623, 0.72229471, 0.82390737, 0.86599633, + 0.95284398, 0.87238315, 1.02818071, 0.98462575, 0.81992808, + 1.01207538, 1.0081178 , 0.88458825, 1.01726135, 0.97708359, + 0.79820777, 1.06081843, 0.97028599, 0.95203124, 1.00482088, + 0.71764193, 0.88115767, 0.90628038, 0.97304174, 0.77015983, + 1.06109546, 0.89575454, 0.94824633, 0.93822134, 0.98048549, + 0.812265 , 0.95744328, 0.79087999, 1.0222571 , 0.89100453, + 1.03590214, 0.92699983, 0.86840126, 0.99455198, 0.87912973, + 0.93506231, 0.80706147, 0.89931563, 0.7861299 , 0.89253527, + 0.90052785, 0.82420191, 0.97042004, 1.03249619, 0.92354267, + 0.80482118, 0.9007601 , 0.80123508, 0.82285143, 0.88105118, + 1.03519622, 0.8620259 , 0.96447485, 0.80399664, 1.00324939, + 0.96317193, 0.83260244, 0.98561657, 0.88445103, 0.70777743, + 0.81608832, 0.98073402, 1.1206105 , 0.69903403, 0.84353026, + 0.9064964 , 0.97055276, 0.82747966, 0.85400205, 1.01205886, + 0.85324973, 0.90899616, 0.92797575, 0.94646632, 0.89358892, + 0.7981183 , 0.96559671, 0.88352248, 1.09804477, 0.79152196, + 1.1054838 , 0.93272283, 0.96165854, 0.8899703 , 0.8792494 , + 0.74563326, 0.85371604, 0.87760912, 0.87184716, 0.92049887, + 0.99459292, 0.93699011, 0.90492494, 1.12981885, 1.10621082, + 0.91391466, 1.05207781, 1.13395097, 0.87022945, 0.93165871, + 0.89083332, 0.99584874, 0.98626911, 1.13885184, 1.17350384, + 0.93294232, 0.79602714, 0.93670114, 1.09726582, 1.05378961, + 0.9457279 , 1.03257053, 1.11349021, 0.80111296, 0.96415105, + 0.99447221, 0.75745769, 0.77537636, 0.83860967, 0.90122484, + 0.78850128, 1.19877642, 0.91190085, 0.80851919, 0.79484738, + 0.93093657, 0.87619908, 1.22781715, 0.89734952, 0.8678127 , + 0.76177975, 0.82089769, 0.89288915, 1.01603179, 0.95279916, + 0.84037366, 0.99962719, 0.84298093, 0.77234882, 0.99876963, + 1.01856707, 1.2133211 , 0.73822878, 0.83465671, 1.08879938, + 0.8878534 , 1.24133317, 0.89264527, 0.83938655, 1.03853109, + 0.9842176 , 0.94257497, 0.98282054, 0.90632313, 0.75810741, + 1.02540204, 0.86648513, 0.98430307, 0.84561701, 1.13483974, + 1.12446434, 1.00220923, 1.23248603, 0.98999724, 0.81980761, + 0.91334393, 0.92831557, 1.16798373, 0.8888053 , 0.9319632 , + 0.89206108, 0.86764558, 0.69337981, 0.9021983 , 1.09931186, + 1.15290804, 0.62304114, 1.1205393 , 1.27030677, 1.12718725, + 0.93002501, 0.83367301, 0.96589068, 0.86578968, 0.79204086, + 0.85124905, 0.89121046, 0.96406141, 0.99249204, 0.93363878, + 1.11258502, 0.92020983, 1.16020824, 0.99075915, 0.73994574, + 0.9335638 , 0.97410789, 1.00029038, 1.43611904, 0.93089581, + 0.94758878, 0.84808364, 0.92192819, 1.0249259 , 0.69529827, + 0.94629021, 0.7330735 , 1.07902207, 0.93022729, 0.77375973, + 0.95019291, 0.92333668, 0.81483081, 0.78044978, 0.85101115, + 0.88859716, 0.88720344, 0.89291167, 1.10372601, 0.91132273, + 1.04156844, 0.94867703, 0.83546241, 0.84227545, 0.97043199, + 0.73281541, 0.74512501, 0.9128489 , 0.99223543, 0.7319106 , + 0.93065507, 1.07907995, 0.86895295, 0.84344015, 0.89394039, + 0.88802964, 1.00580322, 1.04286883, 0.82233574, 1.0279258 , + 0.97550628, 1.03867605, 1.10231813, 0.9642628 , 0.91684874, + 1.11066089, 0.99439688, 0.88595489, 0.88725073, 0.78921585, + 0.80397616, 0.71088468, 0.98316478, 0.72820659, 0.96964036, + 1.03825415, 1.01438989, 1.02763769, 1.29949298, 1.06450406, + 0.86198627, 0.85588074, 0.90445183, 1.01268187, 0.87927487, + 0.9263951 , 0.93582126, 0.88738294, 1.20707424, 0.92887657, + 0.97891062, 0.92893689, 0.84846424, 0.96287008, 0.99565057, + 0.93483385, 1.21357183, 0.82369562, 0.65144728, 1.11249654, + 0.7785981 , 0.88248898, 0.8953217 , 0.95884666, 0.77538093, + 0.82272417, 0.91073072, 1.17185169, 0.99645708, 0.88693463, + 0.90293325, 0.93368474, 0.87575633, 1.01924242, 0.80011545, + 0.99762674, 0.75834671, 0.91952152, 0.86754419, 0.81073894, + 0.8880299 , 0.74868718, 0.99979109, 0.90652154, 0.92463566, + 0.93894041, 0.92370595, 0.88766357, 1.04614978, 1.77193759, + 0.85480724, 0.85208602, 0.96154559, 0.95832935, 0.84210613, + 0.9604567 , 0.88597666, 1.0010723 , 0.91890105, 1.10529207, + 0.91123688, 0.88466788, 1.09759195, 0.8946647 , 0.78066485, + 1.04376296, 1.02951755, 0.88455241, 0.99284282, 0.82423576, + 0.80612213, 0.80915541, 0.9482253 , 0.8887192 , 0.86163309, + 0.891385 , 0.84850622, 1.03353375, 1.09248204, 1.05337218, + 0.85927317, 0.89167858, 1.04868715, 0.92933249, 1.1177299 , + 0.99846776, 0.82418972, 0.86041965, 0.88015748, 0.89785813, + 0.85997945, 0.97102367, 0.86679181, 1.00848475, 0.9091588 , + 0.92565039, 0.84019067, 0.86978485, 1.21977681, 1.14920817, + 1.05177219, 0.84202905, 0.85356083, 1.01379321, 0.93364219, + 1.01999942, 0.85906744, 0.98178266, 0.87218886, 0.93983742, + 0.79713053, 1.01123331, 0.86551625, 0.81983929, 0.86782985, + 0.86735664, 1.43316935, 0.8490094 , 0.99909103, 0.85715326, + 0.89452366, 1.08380518, 0.74686847, 1.62233058, 0.81046611, + 0.83563461, 0.96925792, 0.82863186, 0.87147202, 0.92609558, + 0.8879082 , 0.93933353, 0.90043906, 0.81677055, 0.78016427, + 0.68871014, 0.83329967, 0.81570171, 0.89780443, 0.81337668, + 1.00772749, 0.96220158, 0.90035459, 1.06031906, 0.85832752, + 0.93636203, 0.96336629, 0.94686138, 0.98499419, 0.87223701, + 0.96079992, 0.81302793, 0.99287479, 0.99369685, 1.21897038, + 0.94547481, 0.80785132, 1.02033902, 0.93270741, 0.90386512, + 1.05290969, 1.08873223, 0.81226537, 0.87185463, 0.96283379, + 0.95065022, 1.07603824, 1.22279786, 0.83749284, 0.93504869, + 0.93554565, 0.95255889, 0.96665227, 0.92370811, 0.76627742, + 1.14267254, 0.98268052, 1.10017739, 0.79569048, 0.86494449, + 1.17939799, 0.80655859, 0.76799971, 1.0018905 , 0.83051793, + 1.37419036, 1.10424623, 0.93729691, 0.99655914, 0.94900303, + 1.157402 , 0.93397459, 0.8133195 , 0.8592273 , 1.024661 , + 0.83708977, 1.06537435, 0.93561942, 1.00402051, 0.68981047, + 0.92807172, 0.72192097, 1.232419 , 0.97080757, 0.90350598, + 0.95122672, 1.04663207, 0.79080723, 0.8421381 , 1.01956925, + 0.93307897, 0.88011784, 0.78674974, 0.97537097, 0.7582792 , + 0.85704507, 0.97683858, 0.7739793 , 0.96245444, 0.99506991, + 0.76853035, 0.90875698, 0.97951121, 0.93350388, 1.16380858, + 0.8154485 , 1.16902243, 0.98644779, 0.969998 , 0.73120517, + 1.19059456, 0.85953661, 0.99193867, 0.88144929, 0.99254885, + 1.02956121, 0.90689455, 0.89494433, 0.85625065, 0.86227273, + 0.99830845, 0.97635222, 0.83420327, 1.02359646, 0.93694813, + 0.88462353, 0.97040788, 1.02543309, 0.91904348, 1.2527365 , + 0.82235812, 0.92026753, 0.93935859, 0.88919482, 1.00405208, + 1.06835782, 1.34738363, 0.97831176, 0.92053317, 1.09692339, + 0.86156677, 1.02455351, 1.25572326, 0.89721167, 0.95787106, + 0.85059479, 0.92044416, 0.99210399, 0.94334232, 0.76604642, + 0.8239008 , 0.70790815, 1.06013034, 1.12729012, 0.88584074, + 0.91995677, 0.82002708, 0.91612106, 0.86556894, 0.88014564, + 0.95764757, 0.96559535, 0.97882426, 0.70725389, 0.9273384 , + 0.86511581, 0.85436928, 1.26804081, 1.02018914, 0.95359667, + 0.89336753, 0.91851577, 0.78166458, 1.02673106, 1.01340992, + 1.34916703, 0.77389899, 1.12009884, 0.94523179, 0.87991868, + 0.82919239, 0.98198121, 0.83653977, 0.91748611, 1.0642761 , + 0.86964263, 0.86304793, 1.11500797, 0.7234409 , 1.00464282, + 1.01835251, 0.73389264, 0.88471293, 0.85754755, 1.05383962, + 0.73121546, 0.85445808, 0.768308 , 0.81396206, 1.01261272, + 0.76696225, 1.01770784, 0.76742866, 0.98390583, 0.96277488, + 0.87998292, 0.85264282, 1.12704234, 0.79612317, 0.92206712, + 1.09846877, 0.99874997, 0.87707457, 1.03404785, 1.00726392, + 0.91613763, 0.74242708, 0.80247702, 0.90702146, 0.81638055, + 0.78507729, 1.00066404, 0.84687328, 0.76488847, 0.89697089, + 0.82524207, 0.84940145, 1.022041 , 0.75856559, 1.15434195, + 1.09781849, 0.93256477, 0.96021119, 1.00796782, 0.88193493, + 0.87902107, 0.82245196, 1.04739362, 1.133521 , 0.82969043, + 1.01007529, 1.07135903, 0.981338 , 0.86178089, 0.77930618, + 0.82512349, 1.2017057 , 1.30452154, 1.12652148, 1.03670177, + 0.90631643, 0.74222362, 0.84452965, 0.86366363, 0.79192948, + 1.10288297, 0.9554774 , 1.00912465, 0.95545229, 0.93584303, + 0.91604017, 0.91681165, 0.76792072, 1.66615421, 0.99044246, + 1.05068209, 0.88197497, 0.91153792, 0.82702508, 0.95182748, + 1.05320356, 0.8466656 , 1.01676717, 0.65881123, 1.02589358, + 1.03902555, 1.00199915, 1.03022137, 0.93427176, 0.94600332, + 0.94594696, 0.86465228, 0.91241272, 0.72232997, 0.93380167, + 1.1960032 , 0.87463367, 0.78428202, 0.88088 , 0.97202961, + 0.99425528, 0.89567214, 0.84908979, 0.81004889, 0.85484368, + 0.68478631, 0.96563032, 0.78298607, 0.71894276, 0.88632131, + 0.8885966 , 0.99235811, 0.84002222, 0.91265424, 0.91999157, + 0.89786651, 1.18062511, 0.92378385, 0.82501238, 1.09009807, + 0.96787582, 1.12456979, 0.86339677, 0.8786218 , 0.89865768, + 1.02943564, 0.98886502, 0.97135566, 0.95914954, 1.05080931, + 0.76554446, 0.80142172, 0.99661393, 1.14749469, 0.93695459, + 0.95769957, 1.00811373, 1.00352699, 0.98747546, 0.99436785, + 1.10256609, 0.84366101, 0.85931876, 0.90745126, 1.04928733, + 0.84499693, 1.14018589, 1.2337188 , 0.90516077, 0.84991869, + 0.72984467, 0.9729476 , 0.97483938, 0.88626286, 1.02838695, + 0.89750089, 0.80324802, 1.40726294, 0.91149383, 0.86837826, + 1.21798148, 0.96459285, 0.71897535, 0.76230781, 0.88042964, + 0.8205186 , 1.0517869 , 0.74269565, 0.98278109, 1.1454159 , + 1.03806052, 0.75238659, 0.94224089, 0.94931526, 1.24018529, + 0.99048689, 0.88108251, 0.81008694, 0.95443294, 0.99975781, + 0.83336879, 0.74422074, 0.87934792, 0.81994499, 0.98684546, + 0.82176924, 0.91652824, 0.77571479, 0.77039071, 0.9951089 , + 0.92896121, 0.96234268, 1.00295341, 1.01455466, 0.75014075, + 0.95568202, 0.80995874, 1.24671334, 0.89480962, 0.81300194, + 0.76967074, 0.92514927, 0.89610963, 0.97441759, 1.19354494, + 0.87041262, 0.97344039, 0.88983828, 0.91614149, 0.85782814, + 0.78403196, 0.96665254, 0.91000054, 0.78641804, 0.96920714, + 0.89670528, 0.79247817, 1.04189638, 0.86777037, 1.18686087, + 0.79506403, 0.92389297, 0.76211023, 0.93617759, 0.91879446, + 0.8207635 , 0.78984486, 0.93005953, 0.78743101, 0.9814347 , + 0.94882561, 0.9577075 , 0.81121566, 1.01025446, 0.90587214, + 0.94842798, 0.8811194 , 1.01942816, 0.94698308, 0.92603676, + 0.86119014, 0.97543551, 0.84730649, 0.77552262, 0.97536054, + 0.96944817, 0.8736804 , 0.86809673, 0.98134953, 1.16303105, + 0.81534447, 1.35930512, 0.83221293, 0.94136243, 0.76926289, + 1.05844282, 0.87783288, 0.78921971, 0.84360428, 0.78722128, + 1.00022607, 0.96779519, 0.95891975, 0.91900001, 1.07307813, + 1.03713093, 0.96257742, 0.90363152, 0.88729834, 0.91929215, + 1.00508255, 0.80838454, 0.92165553, 0.94513005, 0.95429071, + 0.80829571, 0.79531708, 1.01317347, 0.75337253, 0.85965134, + 0.77014567, 0.77680991, 0.77158741, 0.88882588, 0.91466414, + 0.82815897, 0.80251251, 1.04901425, 1.03386161, 1.3267075 , + 1.12457236, 0.8267327 , 0.89313417, 0.85992512, 0.93482733, + 0.83456348, 0.87991138, 0.8110149 , 0.77913188, 0.89391799, + 0.73646974, 0.87038816, 0.99533506, 0.90744083, 0.98175496, + 1.17458551, 0.86718975, 0.93125366, 0.76131575, 0.90419708, + 0.95122171, 0.97531776, 1.05955142, 0.94714906, 0.79360281, + 1.02765349, 0.85192628, 0.84680852, 0.85470655, 0.94950982, + 0.75868699, 0.89731933, 1.00736877, 1.05171121, 0.73336848, + 0.97323586, 0.9848978 , 1.27418684, 0.83954394, 0.73979357, + 1.06785996, 0.97832832, 0.7903268 , 0.76600605, 0.94906446, + 0.81383465, 0.83620612, 1.00573379, 0.86359645, 0.9962139 , + 0.98779432, 1.13793814, 1.02764992, 0.9070168 , 0.81340349, + 0.94807089, 0.90499083, 0.83805736, 0.99623054, 0.91875275, + 0.95603557, 0.93156095, 0.83858677, 1.03667466, 1.01436655, + 0.85551979, 0.76227045, 0.84743986, 0.88487423, 0.93800365, + 0.8984666 , 0.92600404, 0.89230381, 1.34625848, 1.10026015, + 0.9314026 , 0.82450724, 1.0299575 , 0.98494286, 1.07564492, + 0.96565301, 0.89677015, 1.15236174, 0.85476951, 1.00169288, + 0.90520725, 1.06235248, 1.04267637, 0.8311949 , 0.82017897, + 0.81635968, 0.97246582, 0.84554172, 0.85409644, 1.18006461, + 0.96488389, 0.69228637, 0.97812108, 0.91764623, 0.86250551, + 0.91067775, 1.04692847, 0.94594707, 1.04351374, 0.9861303 , + 0.92192581, 0.835444 , 0.84362223, 1.13770705, 0.8075574 , + 1.02260109, 1.13786456, 0.80862839, 0.89291687, 0.90278047, + 1.11613951, 1.29900454, 1.5622857 , 0.70999772, 0.99692653, + 0.89109939, 0.77506441, 0.86054356, 0.99498141, 0.84222293, + 0.95213508, 0.91438286, 0.89305591, 0.9716793 , 0.88609491, + 1.00275797, 0.90086022, 0.75336995, 1.1572679 , 0.75952094, + 0.89203313, 0.82115965, 0.81459913, 1.02943406, 0.67063452, + 1.08707079, 0.92139483, 0.89855103, 0.89910955, 1.07169531, + 0.93684641, 0.84893365, 1.08659966, 1.43385982, 0.94788914, + 0.95277539, 0.94709274, 1.08412066, 0.90274516, 0.85147284, + 0.89327944, 0.92176174, 0.83820774, 0.90981839, 0.82303984, + 0.95189716, 0.95154905, 0.73628819, 1.18956148, 1.20224654, + 0.97666968, 1.08057375, 0.90369444, 0.98589538, 0.81426873, + 0.75127684, 0.93200745, 0.833666 , 0.79532088, 0.91965037, + 0.99540522, 0.75449668, 0.85698312, 0.79328453, 0.94667443, + 0.7637764 , 0.77203985, 0.73841377, 0.98587851, 1.34642268, + 0.78002774, 1.04356217, 1.02266882, 1.08936378, 0.9794388 , + 1.07623423, 0.78069571, 1.12194495, 0.8072132 , 0.91672662, + 1.36102062, 0.86933509, 1.15282756, 1.06219505, 0.80295502, + 1.00999033, 0.69418333, 0.93678452, 1.13002256, 0.91465628, + 0.73558316, 1.1302073 , 0.85856238, 0.89450543, 1.11812369, + 0.75891878, 0.66859534, 0.97445338, 0.82210227, 0.76292085, + 0.79289499, 1.04380135, 0.95586226, 0.87480096, 0.81244036, + 0.86097575, 0.84111811, 0.85369732, 0.99160655, 0.90911501, + 0.81315845, 0.74037745, 1.04369233, 1.03535223, 1.18886682, + 0.87092491, 0.93562683, 0.92555142, 0.95268616, 0.9653025 , + 0.93447525, 0.9043932 , 1.25701034, 1.10354218, 0.96588129, + 0.94717991, 0.97010307, 0.78264501, 0.80991731, 0.98540974, + 0.83174886, 0.66966351, 1.01747376, 1.21553117, 0.80527296, + 1.06556826, 1.00870321, 1.03316522, 0.88994006, 0.89092714, + 0.94119254, 0.83930854, 1.01500087, 1.03581272, 0.97608081, + 1.11919255, 1.16586474, 0.85064102, 1.06070274, 1.00679658, + 0.75848826, 0.97969353, 0.94834777, 1.64970724, 0.82448941, + 1.02236919, 0.95252025, 0.98638842, 0.89094895, 0.95522527, + 0.91533774, 0.83716951, 0.92612154, 0.8662328 , 0.9675949 , + 0.96758398, 0.84309291, 0.95071171, 1.0165785 , 0.96628063, + 1.00096151, 0.83175371, 0.79063043, 0.97371271, 0.76009001, + 1.02409279, 0.97232166, 0.8480577 , 0.8982739 , 0.9959743 , + 0.96604729, 0.8681602 , 0.99850841, 0.96162481, 1.01259965, + 0.98580061, 0.82751273, 0.90469122, 0.98254028, 0.78012425, + 0.87023012, 0.96830515, 0.9415831 , 0.8591063 , 0.82961507, + 0.89166083, 0.88509907, 0.95987837, 1.12356244, 0.71406404, + 0.99047619, 0.93735587, 0.80540831, 1.0024624 , 0.95179491, + 0.83602101, 0.90343297, 0.90510417, 0.96477126, 0.79995299, + 0.93123762, 0.73763362, 1.0619498 , 0.80929865, 0.86110233, + 0.84552556, 0.9943 , 0.97085623, 0.75751174, 0.9201456 , + 1.02268858, 0.9642899 , 0.79078558, 1.03160502, 0.85200219, + 1.02246639, 1.08771483, 0.81997868, 0.82499763, 0.92767703, + 1.06700018, 0.7882174 , 0.7789828 , 0.89096139, 0.73155973, + 1.01717651, 0.91889525, 0.93256065, 0.84716063, 1.00965969, + 0.74505112, 0.80104245, 0.76003901, 0.96662605, 0.96594583, + 1.04571121, 0.97700878, 0.85461917, 0.9150222 , 0.89110471, + 1.11183096, 0.98143747, 1.02346975, 0.9059266 , 1.00771483, + 0.96336096, 0.93783898, 0.90545613, 1.10404183, 0.75297691, + 0.92548654, 0.79889783, 0.88177552, 0.93896814, 0.87309811, + 0.80691061, 0.89725699, 1.16586955, 0.98948281, 0.94524894, + 0.86085608, 0.76716851, 0.85362573, 1.09936882, 0.9328761 , + 0.74819673, 0.94331186, 0.81077304, 0.88610499, 1.01452015, + 0.91513953, 0.92846128, 0.93539081, 0.8946682 , 0.9270336 , + 0.96673629, 0.9897488 , 1.11891899, 0.87551585, 0.85854576, + 1.13458763, 1.11450768, 0.79887951, 1.091154 , 1.04180374, + 0.79252573, 0.90484245, 0.94221016, 0.95721137, 0.86776103, + 0.97167404, 0.83404166, 0.94634038, 0.98907413, 0.92321459, + 1.03547804, 0.79660212, 0.94870239, 0.70027204, 0.79841059, + 0.92563393, 1.4385341 , 0.8331731 , 0.844816 , 0.97851389, + 1.24048695, 0.83765698, 0.83600835, 1.13901283, 1.05994936, + 0.84292427, 0.86759056, 0.9272156 , 0.77375499, 0.99972839, + 0.95570976, 0.97879539, 0.95528351, 0.84555495, 0.95296134, + 0.87469056, 0.78862024, 0.793795 , 0.8516853 , 0.92816818, + 1.02492208, 0.8037345 , 0.95481283, 0.75138828, 0.72110948, + 1.36815666, 0.9661646 , 0.81651816, 0.87764538, 0.97397297, + 0.99845266, 0.77433798, 0.9266279 , 1.92493013, 1.07588789, + 0.90412593, 1.03165475, 1.00826548, 0.75500744, 0.87198881, + 0.86871262, 0.97854606, 0.80954477, 0.84130266, 0.89674826, + 1.43926644, 0.74873088, 1.01894282, 0.93606154, 1.08241489, + 0.76626357, 0.97434747, 0.82824599, 1.00267494, 0.97168761, + 1.06433173, 1.22741978, 1.46998419, 0.9521923 , 0.98276685, + 0.92422781, 1.14241216, 1.13339577, 1.05586816, 1.04923068, + 0.83364505, 0.98007268, 0.94322393, 0.84310173, 1.03481955, + 1.18281181, 0.79807678, 0.840274 , 1.00344058, 1.09442855, + 0.88033836, 0.86189964, 1.1395012 , 1.18808865, 0.78667714, + 1.09323293, 0.81511099, 0.95830848, 0.99637275, 0.9146258 , + 0.96358155, 0.79048719, 0.80395604, 1.00828722, 0.92872342, + 0.98789363, 0.96720252, 0.80541021, 0.73697557, 0.86692999, + 0.86795696, 1.1516694 , 0.95911714, 1.13981603, 1.02002866, + 0.90808456, 0.94208296, 0.93691739, 0.87653118, 0.72824225, + 0.78177906, 1.2139146 , 0.83405505, 0.91764545, 0.83318595, + 0.77930256, 0.86499397, 0.95599882, 0.73850016, 0.9630604 , + 0.97913407, 1.1790714 , 0.94994057, 1.04379512, 0.80815459, + 1.16560205, 0.97486893, 1.02780804, 1.10633754, 0.78679252, + 0.94643528, 1.19999119, 0.98621069, 0.8899674 , 0.89235261, + 0.8728921 , 0.77089094, 0.8492628 , 0.86905159, 0.90741875, + 0.81065291, 0.91208596, 1.04616696, 1.24291958, 0.98628605, + 0.99751975, 0.83249612, 0.96343385, 0.77862866, 0.72381238, + 1.17384381, 1.06013687, 0.73460652, 1.09554763, 0.82015886, + 0.90862905, 0.89037104, 0.7866143 , 0.8570287 , 0.75061334, + 0.94950855, 0.8091383 , 1.04055212, 0.96679573, 0.78338675, + 0.75968533, 1.00495071, 0.6491633 , 1.02802735, 1.00725883, + 0.89333988, 0.87539291, 0.99374251, 1.10241119, 1.14935785, + 0.9369769 , 0.84772646, 1.05024743, 0.97411124, 0.76972352, + 0.92161017, 0.88689841, 0.78598549, 0.93400036, 1.14699647, + 0.98636563, 0.93051079, 1.00131515, 0.82749213, 0.96665447, + 0.84457933, 0.95172036, 0.86372572, 0.97034285, 0.99877807, + 0.8724721 , 0.86281118, 0.96253742, 1.13485439, 1.03410559, + 0.83113167, 1.02644607, 1.0669284 , 0.947969 , 1.13373538, + 0.85495039, 1.15829218, 0.72662405, 0.81755747, 0.78381403, + 0.84360371, 1.10945791, 0.80215303, 0.8861351 , 0.97484684, + 1.02996282, 0.86219328, 0.95675062, 1.10753315, 0.92496918, + 0.79323289, 0.76891191, 0.93106762, 0.94523682, 0.9534338 , + 0.8954424 , 0.81732651, 1.00443776, 0.96178195, 0.89727229, + 0.88917552, 0.88660003, 0.941933 , 1.03900381, 0.75262915, + 0.94265862, 0.84472046, 1.09834757, 0.81516259, 0.90865634, + 0.9582531 , 0.99819053, 0.8815072 , 0.92425525, 0.79085083, + 0.98173446, 0.95199169, 0.71653726, 1.11863725, 0.97855807, + 0.87873181, 1.37925403, 0.8085008 , 1.40027689, 0.79367826, + 0.82070449, 0.87039383, 0.95896081, 0.75617612, 1.3196712 , + 0.9335008 , 0.9461447 , 1.0838461 , 0.83347962, 0.69558254, + 0.92358528, 0.99423247, 0.94884494, 0.75094955, 0.90429063, + 1.13740548, 0.89354463, 1.13094104, 1.7373979 , 0.87808028, + 0.72820621, 1.02995089, 0.80134468, 0.97511989, 0.93823103, + 0.98097787, 0.73179813, 0.93764192, 1.04399599, 0.95644709, + 0.80476939, 0.87463727, 0.83220517, 0.76978546, 0.97056432, + 1.1693819 , 1.0368387 , 0.98606478, 1.03538075, 0.88253058, + 0.91105775, 0.93745618, 0.80272442, 0.77045021, 0.8482449 , + 1.04505306, 0.90427753, 0.706451 , 1.02687396, 0.82931474, + 1.24255717, 0.91343217, 0.8692726 , 0.98422894, 0.82142068, + 0.86854354, 0.77715916, 0.94490329, 0.97686366, 1.05198512, + 0.888989 , 1.09252847, 0.8034292 , 1.04727187, 0.87246831, + 0.89474556, 1.06031526, 0.93056174, 0.7747956 , 0.87772054, + 1.1183045 , 0.78938083, 0.82019511, 0.82553273, 1.04324276, + 0.7676436 , 0.68914756, 0.88400598, 0.79611901, 0.77011016, + 0.76727015, 0.84523666, 1.09972447, 1.03942974, 1.07322466, + 1.01079248, 1.03469338, 0.90450148, 0.87367007, 0.88432601, + 0.85312482, 0.7328442 , 1.12256832, 0.8837547 , 0.81023384, + 0.87068285, 0.94466637, 1.13236695, 0.95958423, 0.8099625 , + 1.07509372, 1.03306035, 0.99385633, 1.06433672, 1.07385915, + 0.92709455, 1.03502217, 0.88961476, 0.8307198 , 0.98819038, + 1.09916368, 0.8919766 , 0.90349117, 0.97554616, 0.98376763, + 0.89285893, 0.99941071, 1.16078972, 0.66336693, 1.16389515, + 1.10395069, 1.20381952, 0.98928899, 1.17155389, 0.81707565, + 0.82903836, 0.95892646, 0.8437454 , 0.79017432, 0.81562954, + 0.65169124, 0.87950793, 0.9017879 , 0.82160564, 0.87079127, + 0.88100146, 1.00783979, 0.84102603, 1.16817499, 0.97697533, + 0.89115235, 0.77254376, 0.7679024 , 0.97093775, 1.13881665, + 0.90348632, 1.14654277, 1.08625707, 0.98787902, 1.49057495, + 0.99639001, 0.97623973, 0.74807856, 0.76656108, 0.79095998, + 1.04583503, 0.95124469, 0.90228738, 1.03129265, 1.02663212, + 0.67704952, 0.95335397, 1.01726294, 0.78765385, 0.91140255, + 1.04097119, 0.71881619, 1.14572601, 0.79708798, 1.07104057, + 0.95925248, 0.72556831, 0.92256392, 1.08702165, 0.95977251, + 0.99670254, 0.95276505, 1.15268752, 0.68215678, 1.05573208, + 0.89672437, 0.89396611, 1.01814905, 0.81969778, 0.74390457, + 1.20909881, 0.82388701, 1.00574083, 1.01348114, 1.01492015, + 0.94759788, 0.99758684, 1.19912008, 0.92749943, 1.16660441, + 0.97646538, 0.8189475 , 0.97464158, 1.01050799, 0.94368665, + 0.70995047, 0.94469581, 1.02534612, 1.3513094 , 0.88081968, + 1.00576693, 0.9695495 , 1.0549135 , 1.29993316, 0.91050559, + 0.95543198, 1.02161725, 0.76895773, 1.03685293, 0.88201449, + 0.90345561, 1.02793048, 1.00267831, 0.84653161, 0.9217411 , + 0.94666576, 0.94946561, 0.77482488, 0.94358305, 0.89779666, + 1.01462131, 1.05829923, 1.13217729, 1.12260175, 0.89810828, + 0.96305689, 0.90466377, 0.8091617 , 0.93070824, 1.03997521, + 1.04076373, 0.95858477, 0.94382748, 0.7585222 , 1.22890096, + 0.97300529, 0.87424719, 0.90435141, 0.91894865, 0.97819677, + 0.80300175, 1.03729016, 1.19305569, 0.81633791, 0.7930351 , + 0.8141721 , 0.86764479, 0.89207142, 0.89691482, 0.86243171, + 0.91184679, 0.94284352, 1.01357831, 1.03806277, 0.92000143, + 0.91018767, 0.90555137, 0.89089532, 1.3530331 , 0.96933587, + 0.82350429, 0.71549154, 1.13399156, 0.87838533, 0.99177078, + 0.93296992, 1.43078263, 0.90278792, 0.85789581, 0.93531789, + 0.84948314, 0.95778101, 0.80962713, 0.88865859, 1.15297165, + 0.85695093, 0.88601982, 0.96665296, 0.9320964 , 1.04193558, + 1.006005 , 0.78939639, 0.79344784, 0.87012624, 0.8532022 , + 0.93351167, 0.91705323, 0.74384626, 0.84219843, 0.78265573, + 1.07759963, 1.0236098 , 1.00202257, 1.18687122, 1.00869294, + 0.8809502 , 0.76397598, 0.81845324, 0.97439912, 1.10466318, + 1.10678275, 0.96692316, 0.84120323, 1.13151276, 0.72574077, + 0.82457571, 0.8179266 , 1.01118196, 0.84303742, 0.86255339, + 1.03927791, 0.82302701, 1.03586066, 0.75785864, 0.9186558 , + 0.97139449, 0.92424514, 1.00415659, 1.08544681, 0.80940032, + 0.9073428 , 0.83621672, 1.04027879, 0.79447936, 0.94829305, + 1.16176292, 1.11185195, 0.88652664, 0.98676451, 0.89310091, + 0.72272527, 0.79963233, 0.94651986, 0.91540761, 1.0498236 , + 0.84938647, 1.15539602, 1.03118991, 0.86565049, 0.77764016, + 0.77866522, 0.78008955, 0.89062575, 0.81285464, 0.92554114, + 1.08747324, 0.84338687, 0.76746516, 0.99205474, 0.86649541, + 0.97586166, 0.9721711 , 1.14895298, 1.04659345, 1.0605085 , + 1.06392238, 1.08286448, 0.93612266, 0.82545354, 0.84305431, + 0.83650404, 1.11073704, 0.91760695, 0.83281572, 0.84244131, + 1.05843708, 0.94695861, 0.95469608, 0.96038612, 0.81373042, + 0.94943303, 1.00824522, 0.86416102, 0.87121008, 1.04208739, + 0.81171276, 1.12798927, 0.99122576, 0.80626996, 1.07103151, + 0.99809277, 1.08490135, 0.9441509 , 0.98766371, 1.33205139, + 0.92145678, 0.88112784, 0.9297591 , 1.17549838, 0.8481953 , + 0.96359948, 0.98478935, 0.77028684, 0.86408555, 0.92863805, + 0.94593549, 0.78705212, 1.1923026 , 0.9983487 , 0.99152533, + 0.95313678, 1.01847515, 1.05728959, 0.88009142, 1.00351951, + 1.00549552, 0.81671365, 0.90545602, 0.77895202, 0.82217088, + 0.94838645, 0.85928327, 0.90729044, 0.92975916, 0.91946285, + 0.80537364, 1.11885357, 0.84691232, 0.85356231, 0.85102988, + 1.06499659, 1.0242127 , 0.91245632, 0.83131215, 0.72151085, + 0.9295769 , 0.89549018, 0.87914839, 0.93541175, 0.97319188, + 0.791944 , 1.08008186, 0.79549907, 0.90967683, 0.80506028, + 1.1206821 , 0.91258859, 1.24855319, 0.96112955, 1.14305514, + 0.79327927, 0.84209204, 0.94494251, 0.89573237, 1.0571304 , + 0.94504292, 0.84446547, 0.92060829, 0.82347072, 0.86280426, + 0.85516098, 0.78649432, 0.89522516, 0.94529795, 0.90322825, + 0.9616288 , 0.77439126, 1.0130917 , 0.84021262, 0.97337238, + 0.93206526, 0.93809914, 0.87626441, 0.92706652, 0.86819358, + 0.74060652, 0.84046045, 0.94130171, 0.92537388, 0.80485074, + 0.81633347, 0.76401825, 0.81300784, 0.8052467 , 1.27234895, + 0.92674704, 1.12106762, 0.91743016, 0.94694287, 0.87309918, + 0.99163895, 0.83777703, 0.89713459, 0.88208343, 0.90205904, + 0.9708827 , 0.94965009, 0.81446019, 0.89512677, 0.97025135, + 1.02314481, 0.88399736, 1.01059963, 0.86193889, 0.94621507, + 0.97334837, 0.90122433, 0.71015398, 1.17491792, 1.13869784, + 1.03908735, 0.85480742, 0.98971408, 1.04147459, 0.85170846, + 0.94861439, 0.7778831 , 0.73445723, 0.89587488, 0.88627975, + 0.98253057, 0.86159356, 1.06559385, 0.90852704, 0.86562284, + 0.92122779, 0.98233847, 0.94989946, 0.97171474, 0.92428639, + 1.03712828, 0.88170861, 0.86802004, 0.79670394, 0.85606075, + 1.09636421, 0.85048902, 0.99393971, 1.10510884, 0.80515088, + 0.95559246, 0.96803475, 0.98115871, 0.94603995, 0.8654312 , + 0.90759845, 0.9010954 , 0.77979965, 0.83322032, 0.8485444 , + 0.89217626, 0.78817966, 1.03815705, 0.84076982, 0.93362471, + 1.06173045, 0.82612852, 0.8336989 , 0.93943901, 0.91775212, + 1.00501856, 1.04269442, 0.93195426, 0.78377288, 1.03372915, + 0.8415154 , 1.02888978, 0.93202174, 0.78683383, 0.85106996, + 0.9724203 , 0.93409182, 0.97876305, 1.17153649, 0.9434591 , + 0.81361398, 1.09554602, 1.48193137, 0.96349931, 0.93586569, + 1.0210303 , 0.88980694, 0.88890459, 1.05330284, 1.09511186, + 0.91202441, 0.78753378, 0.98074421, 1.04268892, 1.14265114, + 0.86482628, 0.87233851, 1.18915875, 0.82556032, 0.87461473, + 1.08396187, 0.69206719, 0.88113605, 0.96951674, 0.89248729, + 0.909926 , 0.82966779, 0.8261611 , 0.9551228 , 0.79879533, + 1.09416042, 1.01020839, 1.04133795, 1.09654304, 0.84060693, + 1.02612223, 1.00177693, 0.90510435, 1.2091018 , 1.03290288, + 0.80529305, 0.74332311, 1.04728164, 1.04647891, 0.83707027, + 0.81648396, 1.07180239, 0.7926372 , 0.99855278, 1.16851397, + 0.94566149, 0.75612408, 0.94975744, 0.92924923, 1.03215206, + 0.82394984, 0.84142091, 0.88028348, 1.11036047, 0.82451341, + 0.83694112, 0.84207459, 0.94095384, 1.00173733, 1.10241786, + 0.86609134, 0.86859604, 1.1211537 , 0.84188088, 0.89023025, + 0.99062899, 0.96828743, 0.80106184, 0.86745454, 0.99013196, + 0.91838615, 0.86400837, 0.95679525, 0.78893711, 1.03753175, + 0.97177648, 0.88685941, 0.9441012 , 0.69289996, 0.84219432, + 1.01050959, 0.83578317, 0.79907595, 1.21281139, 0.91613925, + 1.00202544, 0.95293036, 0.84583258, 0.84574886, 0.76470341, + 1.23606485, 1.10063291, 0.93852084, 0.97201415, 0.68523403, + 0.94560108, 0.81903039, 1.14332074, 0.80914367, 1.46398921, + 0.85155227, 1.41106313, 0.85740937, 0.91107708, 0.9003576 , + 0.94132363, 0.85710825, 0.74805485, 1.2521402 , 0.95307547, + 0.94274593, 0.86732331, 0.83850172, 0.96835288, 1.09443821, + 0.68532627, 0.84736457, 1.06989165, 0.81424504, 1.02942437, + 0.80255995, 0.89258275, 0.93560962, 1.04192911, 1.13498644, + 1.24409985, 0.93295415, 1.08360355, 1.16468059, 0.81482388, + 0.92387137, 1.07508578, 0.86564567, 1.0142773 , 0.86143907, + 0.91214944, 0.9757589 , 0.90588817, 0.74168224, 0.91222552, + 0.96119617, 0.95431519, 0.78080736, 1.0327991 , 1.05112022, + 0.92761155, 1.0183631 , 0.73188757, 0.85617225, 0.93341155, + 0.95106173, 0.9481304 , 0.92996766, 1.08092599, 0.96485228, + 0.97964284, 0.94224551, 1.00654477, 1.01367565, 0.89785325, + 0.80725703, 0.7495798 , 0.78240339, 1.04479122, 0.88200252, + 1.0664992 , 1.05951775, 0.82508097, 0.81201381, 0.81860218, + 1.07561763, 1.02830358, 0.87348993, 1.0081337 , 0.87470565, + 1.45597242, 0.77540871, 0.8036279 , 0.80514427, 0.92688461, + 0.88152328, 1.56288788, 0.87251203, 0.92808414, 1.03548911, + 0.65226699, 0.81243827, 1.03103554, 1.11995602, 0.78956176, + 0.96734427, 0.91600861, 0.8246106 , 1.09390498, 0.98187349, + 0.8919928 , 0.98746862, 0.96298125, 0.93854424, 0.83060031, + 0.74692856, 0.99757209, 0.78888849, 1.17517182, 1.06657933, + 1.1244446 , 0.93608433, 0.88898472, 0.96823218, 0.87496056, + 0.81776683, 0.98863687, 0.82962648, 1.02395766, 0.99622674, + 1.07138771, 0.86669915, 0.98172208, 0.8787271 , 0.86125353, + 0.79554881, 0.93382729, 1.00706175, 1.08386454, 0.69664542, + 0.77316657, 0.79978147, 0.80764736, 0.9969375 , 0.83554928, + 0.91017317, 0.95323454, 1.29872357, 1.08851275, 1.01673108, + 0.79536208, 0.84878371, 0.95165619, 0.87733936, 0.86319684, + 0.96758495, 0.87763237, 0.95094713, 1.00143077, 1.0596993 , + 1.27278299, 0.82281481, 0.89765404, 0.94538181, 0.88161857, + 0.77679456, 0.84274277, 0.89864342, 0.98705162, 0.95456512, + 0.92712401, 0.77427128, 1.03292269, 0.87034158, 1.24316113, + 0.98278702, 1.17325118, 1.18863971, 0.88678137, 0.90389731, + 1.01740421, 0.80228624, 0.97742223, 0.82741518, 0.8359407 , + 0.7177401 , 1.02297899, 0.81896048, 0.77127181, 0.83328601, + 0.96939523, 0.94073198, 0.90356023, 1.12355064, 1.12811114, + 0.92403138, 1.05423548, 0.70827734, 0.95891358, 0.89898027, + 1.02318421, 0.93775375, 0.8245529 , 0.80604304, 0.77555283, + 0.92112699, 0.85662169, 0.92725859, 0.93599147, 0.78971931, + 0.8337306 , 0.93775212, 0.91025099, 0.75308822, 0.95391173, + 0.96840576, 0.8394416 , 0.89087015, 0.73703219, 0.97812386, + 0.8787356 , 0.93985266, 0.96406021, 0.88666152, 0.89242745, + 0.97900374, 0.85697634, 0.8795755 , 0.78581812, 0.87138735, + 0.74602994, 0.96158936, 0.84529806, 0.85333232, 1.06116542, + 1.05929382, 1.09720986, 1.28959453, 0.91541148, 0.87657407, + 1.06514793, 0.8668096 , 1.07325125, 0.85009534, 0.95542191, + 0.86977409, 0.96249874, 0.97715908, 0.89360331, 0.98859647, + 0.67560717, 0.90213348, 1.12051182, 0.99684949, 0.9863559 , + 1.32246221, 0.84632664, 0.89707447, 1.00486846, 0.90843649, + 1.02399424, 0.97899017, 0.95693977, 0.8384806 , 0.93927435, + 0.79153251, 1.08694094, 1.01785553, 0.99674552, 0.898566 , + 0.94116882, 0.95224977, 0.99859129, 0.81125029, 0.85985586, + 1.14418875, 0.96306241, 1.31398561, 0.77961419, 1.01958366, + 0.9575668 , 0.771084 , 1.04473363, 1.01569517, 1.04560744, + 0.9648178 , 0.93466398, 1.09313672, 0.90349389, 1.00193114, + 0.79991514, 0.91102351, 0.9795356 , 0.89285193, 1.04898573, + 0.93031782, 0.95087069, 1.15644699, 0.91155375, 0.93005986, + 0.70098757, 0.82751625, 0.85462106, 1.34969332, 0.93382692, + 1.05558387, 1.25417819, 1.0546501 , 1.05217032, 0.86031346, + 1.00864463, 0.73592482, 1.01899722, 1.00462831, 0.96882832, + 0.81334751, 1.05102745, 0.82288113, 1.05798623, 0.77971966, + 1.38584414, 1.0248193 , 0.78951056, 0.76171823, 0.78407227, + 1.14808104, 0.97890501, 0.99870905, 0.96006489, 0.78442704, + 0.99315422, 0.83653213, 0.95210661, 0.97233777, 0.78140495, + 0.95996216, 0.76318841, 0.82333311, 0.87123204, 0.79531258, + 0.82681452, 1.00492217, 0.93549261, 1.00240153, 1.02086339, + 1.00424549, 0.87437775, 0.84675564, 0.98014462, 0.77262117, + 1.02620976, 0.91162462, 1.0275041 , 1.1475431 , 0.78167746, + 0.86273856, 0.84499552, 0.99712362, 0.9694771 , 0.94523806, + 0.8450763 , 0.93068519, 1.29362523, 1.0249628 , 1.05522183, + 1.13433408, 1.06981137, 0.85666419, 0.98203234, 0.75867592, + 0.8844762 , 0.89708521, 0.75482121, 0.80137918, 0.90412883, + 0.88815714, 1.11497471, 0.77441965, 0.93853353, 0.8962444 , + 0.83055142, 0.99776183, 0.92581583, 0.78783745, 0.90934299, + 0.81136457, 0.99000726, 0.9669203 , 1.2890399 , 1.01923088, + 1.11076459, 1.01331706, 1.02470946, 0.92950448, 1.10298478, + 1.03723287, 1.09129035, 0.95138186, 0.85764624, 0.86606803, + 0.8141785 , 1.0129293 , 0.93267714, 0.95663734, 1.01940702, + 0.8072268 , 1.0707215 , 0.90482063, 1.01546955, 0.84018308, + 0.95938216, 0.96454054, 0.93114659, 1.09705112, 0.88720628, + 0.81067916, 0.82667413, 0.89494027, 0.9173495 , 0.73326273, + 1.00209461, 0.9560545 , 1.09126364, 0.95709908, 0.81314274, + 0.8274943 , 1.37605062, 0.99097917, 1.02221806, 0.90277482, + 1.01611791, 0.79663017, 1.16686882, 1.19669266, 0.88366356, + 0.77661102, 0.73467145, 1.15438391, 0.91439204, 0.78280849, + 1.07238853, 1.03588797, 1.0438292 , 0.75935005, 0.76200114, + 0.81603429, 0.74402367, 1.1171573 , 0.90227791, 0.94762351, + 0.92462278, 0.8847803 , 1.1343863 , 0.8662186 , 1.00410699, + 1.05008842, 0.94783969, 0.89555844, 0.98278045, 0.80396855, + 1.00483139, 0.82540491, 0.83284354, 0.93132265, 0.91191039, + 0.95753995, 1.18260689, 0.84124197, 0.87429189, 0.67617592, + 0.89495946, 0.92898357, 1.10528183, 1.06994417, 0.82259834, + 0.74746328, 0.99070832, 1.07386274, 0.84007203, 0.89720099, + 0.9670094 , 1.02728082, 0.78001838, 0.97709347, 0.90602469, + 1.49985196, 0.80256976, 1.05905677, 0.98298874, 0.94679703, + 0.94305923, 0.98720786, 0.82091251, 0.91644161, 0.79576881, + 0.98942172, 0.92974761, 0.99307545, 0.86959859, 0.88549807, + 1.09246144, 0.87265047, 1.01449921, 0.74353851, 0.95029192, + 0.94385304, 0.84779449, 1.00690543, 0.79727923, 0.92285822, + 0.83164749, 1.06508941, 1.09757529, 0.9059649 , 0.9146043 , + 0.74474669, 0.71306438, 0.77989422, 0.84965464, 0.9424323 , + 0.82492634, 0.85076686, 1.01110574, 1.01445751, 0.87929754, + 0.8773275 , 0.72314196, 0.92285502, 1.18173931, 0.86460799, + 0.91795108, 1.16580482, 0.79880497, 0.72734786, 0.97579653, + 0.76967834, 0.97543732, 1.04996964, 1.16439594, 1.08656546, + 1.15644902, 0.98333436, 1.24374723, 0.95810117, 0.8488915 , + 1.06288523, 0.99055893, 0.75517736, 0.95856183, 0.85574796, + 1.00426506, 1.25275675, 0.92735225, 0.83351314, 0.90216604, + 0.87996386, 1.13312875, 1.00891523, 0.76513657, 0.85659621, + 0.91142459, 1.05893495, 0.92253051, 0.87153684, 1.03190013, + 0.92160845, 1.01768282, 0.80590054, 1.05172907, 0.92758177, + 0.86902046, 0.93927127, 0.80389584, 0.96016014, 0.9720314 , + 0.93255573, 0.85792534, 0.97826842, 0.80506149, 0.97170364, + 1.08397772, 1.01866333, 1.18898045, 1.02855427, 0.94848891, + 0.94336541, 0.93119013, 0.92907817, 1.11806635, 0.88409637, + 0.88809707, 1.06735612, 0.98447974, 0.88816438, 1.00099784, + 0.92443453, 1.00325146, 0.86977836, 0.84621801, 0.92361073, + 0.85573903, 0.77309241, 0.86717528, 1.19892035, 1.07497019, + 1.02178857, 0.8718756 , 0.90646803, 0.92912096, 1.04538692, + 0.95245707, 0.99698525, 0.94583199, 0.92537599, 0.86720487, + 0.89927054, 0.86111792, 0.94401208, 1.01130191, 1.03759681, + 0.8177749 , 1.07784373, 0.79823294, 1.00839713, 1.39409602, + 0.87146241, 1.21218822, 0.84895926, 1.01742432, 0.8044077 , + 0.78632084, 1.07751744, 1.13147508, 0.90268302, 0.90024653, + 0.92072578, 0.87763264, 1.00736787, 0.90978808, 0.90895492, + 0.90766826, 0.98956566, 0.92075658, 0.77613105, 0.93815569, + 0.95455546, 1.00607757, 0.82187828, 0.94197599, 0.867015 , + 0.90709762, 0.75604815, 0.91312261, 0.9286002 , 0.74623204, + 0.87368702, 0.83879278, 0.92224793, 0.81676402, 0.90355168, + 0.92762955, 0.91784037, 0.82273304, 0.75947806, 0.92687078, + 0.87971276, 1.15037445, 0.86707445, 0.8611453 , 0.91921763, + 1.07088129, 1.05150864, 1.02162325, 0.90305964, 0.99912687, + 0.87693204, 0.6186911 , 0.95526533, 1.15975655, 1.00061222, + 0.74608861, 0.954568 , 0.84965574, 0.79177899, 0.9741051 , + 1.0119514 , 0.79147502, 0.81367071, 0.87757421, 1.01270813, + 0.86044808, 0.9689615 , 0.9577413 , 0.79480242, 0.76073002, + 0.83131288, 0.96379259, 0.84679732, 0.82508685, 0.89977283, + 0.86766439, 1.12231836, 0.93058445, 1.04584181, 0.88838751, + 0.96615893, 0.98731619, 1.05517799, 1.02860493, 0.98881473, + 0.85210319, 0.91497438, 0.9275787 , 0.97456134, 0.9011687 , + 0.69417417, 0.89661214, 0.79038577, 1.08118303, 1.0509366 , + 0.97813138, 0.85714945, 0.97330329, 0.83611871, 0.99772489, + 0.83591193, 0.75592677, 0.85392601, 1.02734573, 0.72404609, + 0.83534547, 0.91630472, 0.88463459, 1.12044562, 1.10991104, + 0.96047701, 1.12342573, 0.72046647, 0.96852239, 0.89605698, + 0.98310243, 0.92300659, 0.87794646, 0.83109321, 1.43297752, + 0.80609029, 0.8692251 , 0.90254649, 0.81647796, 1.07521371, + 1.03942973, 0.96156488, 1.25225334, 1.0265727 , 0.9518054 , + 0.87765718, 1.15552582, 0.79577766, 0.66849239, 0.87236017, + 1.03437641, 0.98567811, 0.78463682, 1.09573491, 0.89858959, + 0.94056747, 1.16075317, 1.06296054, 0.85844006, 0.95475376, + 0.67038747, 0.7924646 , 0.94009167, 0.88282093, 0.97711174, + 0.9209607 , 1.03230176, 0.99981312, 1.12345314, 1.11705968, + 1.02453864, 0.91724212, 0.98337942, 0.89195196, 0.83800177, + 0.95044243, 0.76543521, 0.8613025 , 0.83907753, 0.69333275, + 0.84411739, 0.68621941, 0.9847701 , 1.13328481, 1.1432074 , + 0.97156328, 0.86464461, 0.74258211, 0.97319505, 1.11453917, + 0.87344741, 0.91382664, 1.01635943, 1.38708812, 0.81377942, + 1.3828856 , 0.74476285, 0.86657537, 1.1216954 , 0.91008346, + 0.800862 , 0.98356936, 0.92409916, 1.13970543, 0.97547004, + 0.99385865, 1.16476579, 0.78678084, 1.003947 , 0.81491463, + 1.19724322, 0.9173622 , 0.93274116, 0.80047839, 0.86798029, + 0.9433708 , 0.82376832, 1.01726905, 0.81914971, 0.73290844]) + + + +class Medpar1(object): + ''' + The medpar1 data can be found here. + + http://www.stata-press.com/data/hh2/medpar1 + ''' + def __init__(self): + filename = os.path.join(os.path.dirname(os.path.abspath(__file__)), + "stata_medpar1_glm.csv") + data = np.recfromcsv(open(filename, 'rb'), converters ={1: lambda s: s.strip(asbytes("\""))}) + self.endog = data.los + design = np.column_stack((data.admitype, data.codes)) + design = categorical(design, col=0, drop=True) + design = np.delete(design, 1, axis=1) # drop first dummy + self.exog = add_constant(design, prepend=False) + +class InvGaussLog(Medpar1): + """ + InvGaussLog is used with TestGlmInvgaussLog + """ + def __init__(self): + super(InvGaussLog, self).__init__() + filename = os.path.join(os.path.dirname(os.path.abspath(__file__)), + "medparlogresids.csv") + self.resids = np.genfromtxt(open(filename, 'rb'), delimiter=",") + self.null_deviance = 335.1539777981053 # from R, Rpy bug + self.params = np.array([ 0.09927544, -0.19161722, 1.05712336]) + self.bse = np.array([ 0.00600728, 0.02632126, 0.04915765]) + self.aic_R = 18545.836421595981 + self.aic_Stata = 6.619000588187141 + self.deviance = 304.27188306012789 + self.scale = 0.10240599519220173 +# self.llf = -9268.9182107979905 # from R + self.llf = -12162.72308108797 # from Stata, big rounding diff with R + self.bic_Stata = -29849.51723280784 + self.chi2 = 398.5465213008323 # from Stata not in sm + self.df_model = 2 + self.df_resid = 3673 + self.fittedvalues = np.array([ 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 5.76642001, + 7.03292237, 7.03292237, 6.36826384, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 5.76642001, 7.03292237, + 5.22145448, 7.03292237, 5.22145448, 4.72799187, 4.72799187, + 7.03292237, 7.03292237, 6.36826384, 7.03292237, 5.76642001, + 7.03292237, 4.28116479, 7.03292237, 7.03292237, 7.03292237, + 5.76642001, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 3.87656588, 7.03292237, 7.03292237, 4.28116479, + 7.03292237, 7.03292237, 4.72799187, 7.03292237, 7.03292237, + 7.03292237, 5.22145448, 6.36826384, 6.36826384, 4.28116479, + 4.72799187, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 5.22145448, 7.03292237, 7.03292237, 6.36826384, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 5.76642001, 6.36826384, + 6.36826384, 5.22145448, 7.03292237, 7.03292237, 7.03292237, + 5.76642001, 7.03292237, 7.03292237, 3.87656588, 5.76642001, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 5.22145448, 5.22145448, 7.03292237, 6.36826384, 7.03292237, + 7.03292237, 7.03292237, 4.72799187, 7.03292237, 6.36826384, + 7.03292237, 6.36826384, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 5.22145448, 6.36826384, 5.22145448, + 7.03292237, 7.03292237, 4.72799187, 5.76642001, 7.03292237, + 4.72799187, 6.36826384, 3.87656588, 7.03292237, 7.03292237, + 5.22145448, 5.22145448, 6.36826384, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 6.36826384, 4.28116479, + 7.03292237, 6.36826384, 6.36826384, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 6.36826384, 7.03292237, + 6.36826384, 7.03292237, 7.03292237, 6.36826384, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 5.76642001, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 5.76642001, + 7.03292237, 7.03292237, 6.36826384, 3.87656588, 7.03292237, + 7.03292237, 5.22145448, 7.03292237, 5.76642001, 4.28116479, + 5.76642001, 6.36826384, 6.36826384, 7.03292237, 7.03292237, + 5.76642001, 7.03292237, 7.03292237, 4.28116479, 7.03292237, + 6.36826384, 7.03292237, 6.36826384, 7.03292237, 5.22145448, + 7.03292237, 4.28116479, 4.72799187, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 6.36826384, + 7.03292237, 4.28116479, 5.22145448, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 4.28116479, 7.03292237, 7.03292237, + 7.03292237, 6.36826384, 5.76642001, 7.03292237, 7.03292237, + 7.03292237, 4.72799187, 7.03292237, 6.36826384, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 6.36826384, 7.03292237, + 6.36826384, 7.03292237, 6.36826384, 4.28116479, 5.76642001, + 5.22145448, 6.36826384, 6.36826384, 7.03292237, 7.03292237, + 7.03292237, 6.36826384, 7.03292237, 7.03292237, 6.36826384, + 5.76642001, 7.03292237, 5.22145448, 5.76642001, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 6.36826384, 7.03292237, + 4.28116479, 7.03292237, 5.22145448, 7.03292237, 6.36826384, + 5.76642001, 4.28116479, 4.28116479, 7.03292237, 6.36826384, + 7.03292237, 7.03292237, 7.03292237, 6.36826384, 4.28116479, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 5.22145448, + 7.03292237, 7.03292237, 7.03292237, 5.22145448, 7.03292237, + 5.76642001, 7.03292237, 4.72799187, 4.28116479, 6.36826384, + 5.76642001, 7.03292237, 7.03292237, 7.03292237, 5.22145448, + 7.03292237, 7.03292237, 7.03292237, 6.36826384, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 6.36826384, 7.03292237, + 3.87656588, 4.72799187, 7.03292237, 7.03292237, 7.03292237, + 4.72799187, 7.03292237, 7.03292237, 6.36826384, 7.03292237, + 7.03292237, 6.36826384, 3.87656588, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 4.28116479, 7.03292237, 6.36826384, + 7.03292237, 5.22145448, 5.22145448, 6.36826384, 7.03292237, + 6.36826384, 6.36826384, 7.03292237, 4.28116479, 7.03292237, + 7.03292237, 7.03292237, 5.22145448, 6.36826384, 7.03292237, + 3.87656588, 6.36826384, 5.22145448, 5.76642001, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 4.28116479, 7.03292237, + 5.22145448, 7.03292237, 6.36826384, 5.22145448, 4.72799187, + 7.03292237, 7.03292237, 7.03292237, 4.72799187, 6.36826384, + 7.03292237, 6.36826384, 5.76642001, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 5.22145448, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 3.87656588, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 4.72799187, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 6.36826384, 7.03292237, 7.03292237, + 6.36826384, 7.03292237, 6.36826384, 7.03292237, 5.22145448, + 6.36826384, 7.03292237, 6.36826384, 7.03292237, 6.36826384, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 3.87656588, + 7.03292237, 7.03292237, 7.03292237, 6.36826384, 7.03292237, + 7.03292237, 6.36826384, 7.03292237, 7.03292237, 6.36826384, + 5.76642001, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 5.76642001, 7.03292237, 6.36826384, 7.03292237, 7.03292237, + 7.03292237, 3.87656588, 7.03292237, 6.36826384, 6.36826384, + 4.72799187, 5.76642001, 6.36826384, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 3.87656588, 5.22145448, 4.72799187, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 4.72799187, 6.36826384, + 7.03292237, 7.03292237, 5.76642001, 7.03292237, 6.36826384, + 7.03292237, 7.03292237, 7.03292237, 5.76642001, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 6.36826384, + 7.03292237, 5.22145448, 5.76642001, 7.03292237, 5.76642001, + 6.36826384, 5.76642001, 5.76642001, 7.03292237, 5.76642001, + 7.03292237, 7.03292237, 7.03292237, 4.72799187, 6.36826384, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 6.36826384, 7.03292237, 6.36826384, 7.03292237, 4.72799187, + 7.03292237, 7.03292237, 4.28116479, 6.36826384, 3.87656588, + 7.03292237, 3.5102043 , 7.03292237, 7.03292237, 5.76642001, + 5.22145448, 7.03292237, 5.76642001, 4.28116479, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 5.76642001, 4.72799187, + 7.03292237, 6.36826384, 7.03292237, 5.22145448, 7.03292237, + 4.72799187, 7.03292237, 7.03292237, 7.03292237, 5.22145448, + 5.22145448, 4.72799187, 7.03292237, 6.36826384, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 4.28116479, 7.03292237, 7.03292237, 7.03292237, 5.76642001, + 6.36826384, 7.03292237, 7.03292237, 5.76642001, 7.03292237, + 7.03292237, 6.36826384, 4.72799187, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 4.72799187, 5.76642001, 7.03292237, 5.76642001, + 6.36826384, 7.03292237, 7.03292237, 7.03292237, 4.72799187, + 7.03292237, 7.03292237, 7.03292237, 5.76642001, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 6.36826384, 7.03292237, 7.03292237, 5.76642001, 6.36826384, + 4.72799187, 7.03292237, 7.03292237, 7.03292237, 5.76642001, + 7.03292237, 6.36826384, 5.22145448, 5.76642001, 4.72799187, + 7.03292237, 7.03292237, 7.03292237, 6.36826384, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 5.22145448, 7.03292237, 7.03292237, + 6.36826384, 7.03292237, 7.03292237, 5.76642001, 7.03292237, + 7.03292237, 7.03292237, 6.36826384, 7.03292237, 5.22145448, + 7.03292237, 7.03292237, 7.03292237, 5.76642001, 7.03292237, + 6.36826384, 6.36826384, 7.03292237, 5.76642001, 7.03292237, + 6.36826384, 7.03292237, 7.03292237, 7.03292237, 4.72799187, + 5.22145448, 7.03292237, 3.87656588, 5.76642001, 6.36826384, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 6.36826384, 7.03292237, 7.03292237, + 4.72799187, 7.03292237, 6.36826384, 7.03292237, 4.28116479, + 7.03292237, 7.03292237, 5.76642001, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 4.72799187, 6.36826384, 3.87656588, 7.03292237, 7.03292237, + 6.36826384, 4.72799187, 4.28116479, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 3.87656588, 7.03292237, 7.03292237, 7.03292237, + 3.87656588, 7.03292237, 7.03292237, 6.36826384, 7.03292237, + 7.03292237, 6.36826384, 7.03292237, 7.03292237, 3.87656588, + 7.03292237, 4.72799187, 5.22145448, 5.22145448, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 6.36826384, 7.03292237, + 7.03292237, 6.36826384, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 5.22145448, 5.22145448, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 4.72799187, 6.36826384, 5.76642001, + 5.76642001, 6.36826384, 7.03292237, 7.03292237, 7.03292237, + 6.36826384, 7.03292237, 7.03292237, 6.36826384, 7.03292237, + 7.03292237, 4.72799187, 7.03292237, 5.76642001, 7.03292237, + 7.03292237, 7.03292237, 4.72799187, 4.28116479, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 5.76642001, + 7.03292237, 5.76642001, 7.03292237, 7.03292237, 7.03292237, + 5.22145448, 7.03292237, 7.03292237, 7.03292237, 5.22145448, + 6.36826384, 7.03292237, 7.03292237, 6.36826384, 6.36826384, + 7.03292237, 7.03292237, 5.76642001, 7.03292237, 5.22145448, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 4.72799187, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 4.28116479, + 7.03292237, 6.36826384, 7.03292237, 5.76642001, 4.28116479, + 5.76642001, 7.03292237, 3.87656588, 7.03292237, 7.03292237, + 7.03292237, 3.5102043 , 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 5.76642001, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 5.76642001, 5.76642001, 5.76642001, 7.03292237, + 7.03292237, 6.36826384, 7.03292237, 6.36826384, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 5.76642001, 7.03292237, 4.28116479, 6.36826384, + 5.76642001, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 6.36826384, 5.22145448, + 7.03292237, 7.03292237, 7.03292237, 5.76642001, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 6.36826384, 7.03292237, + 7.03292237, 5.76642001, 7.03292237, 7.03292237, 7.03292237, + 6.36826384, 6.36826384, 7.03292237, 7.03292237, 6.36826384, + 7.03292237, 7.03292237, 7.03292237, 6.36826384, 7.03292237, + 7.03292237, 7.03292237, 5.22145448, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 3.5102043 , 7.03292237, 7.03292237, + 7.03292237, 3.87656588, 6.36826384, 5.76642001, 7.03292237, + 7.03292237, 6.36826384, 4.72799187, 7.03292237, 7.03292237, + 5.76642001, 7.03292237, 3.87656588, 5.22145448, 6.36826384, + 4.28116479, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 6.36826384, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 6.36826384, + 7.03292237, 5.22145448, 6.36826384, 6.36826384, 7.03292237, + 6.36826384, 7.03292237, 7.03292237, 7.03292237, 5.22145448, + 7.03292237, 6.36826384, 7.03292237, 7.03292237, 4.72799187, + 7.03292237, 7.03292237, 7.03292237, 6.36826384, 6.36826384, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 6.36826384, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 3.5102043 , 7.03292237, 5.22145448, + 5.22145448, 7.03292237, 6.36826384, 7.03292237, 4.72799187, + 7.03292237, 7.03292237, 7.03292237, 4.72799187, 7.03292237, + 5.76642001, 7.03292237, 3.87656588, 7.03292237, 5.22145448, + 3.87656588, 4.72799187, 6.36826384, 5.76642001, 7.03292237, + 6.36826384, 7.03292237, 4.28116479, 5.76642001, 7.03292237, + 7.03292237, 7.03292237, 5.22145448, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 4.28116479, 6.36826384, 7.03292237, 7.03292237, + 7.03292237, 5.76642001, 6.36826384, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 3.5102043 , 4.72799187, 7.03292237, 4.28116479, 7.03292237, + 4.72799187, 7.03292237, 5.22145448, 5.76642001, 5.76642001, + 3.87656588, 5.76642001, 5.22145448, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 5.22145448, 6.36826384, + 7.03292237, 7.03292237, 7.03292237, 5.22145448, 7.03292237, + 7.03292237, 7.03292237, 5.22145448, 7.03292237, 7.03292237, + 6.36826384, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 4.28116479, + 4.72799187, 7.03292237, 7.03292237, 6.36826384, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 6.36826384, 7.03292237, 7.03292237, 6.36826384, + 6.36826384, 5.76642001, 7.03292237, 5.76642001, 6.36826384, + 7.03292237, 7.03292237, 7.03292237, 5.76642001, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 5.22145448, 7.03292237, 7.03292237, 5.76642001, 6.36826384, + 5.76642001, 7.03292237, 7.03292237, 6.36826384, 7.03292237, + 4.72799187, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 6.36826384, 5.76642001, 6.36826384, 4.72799187, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 4.72799187, + 7.03292237, 6.36826384, 7.03292237, 5.22145448, 7.03292237, + 7.03292237, 6.36826384, 7.03292237, 5.76642001, 6.36826384, + 5.76642001, 7.03292237, 7.03292237, 7.03292237, 6.36826384, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 4.72799187, 7.03292237, 5.22145448, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 4.72799187, 6.36826384, 7.03292237, + 7.03292237, 6.36826384, 7.03292237, 5.76642001, 5.22145448, + 7.03292237, 7.03292237, 7.03292237, 5.22145448, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 4.28116479, + 5.76642001, 7.03292237, 4.28116479, 7.03292237, 6.36826384, + 7.03292237, 7.03292237, 4.28116479, 7.03292237, 7.03292237, + 6.36826384, 3.87656588, 3.5102043 , 6.36826384, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 5.76642001, + 7.03292237, 4.72799187, 5.76642001, 7.03292237, 7.03292237, + 3.87656588, 7.03292237, 7.03292237, 7.03292237, 4.28116479, + 7.03292237, 7.03292237, 7.03292237, 5.76642001, 5.76642001, + 7.03292237, 6.36826384, 5.76642001, 7.03292237, 6.36826384, + 5.76642001, 7.03292237, 5.76642001, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 4.28116479, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 4.72799187, 5.76642001, 6.36826384, 6.36826384, + 7.03292237, 7.03292237, 7.03292237, 5.76642001, 4.28116479, + 7.03292237, 5.76642001, 4.72799187, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 5.76642001, + 6.36826384, 6.36826384, 7.03292237, 7.03292237, 6.36826384, + 3.87656588, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 3.5102043 , 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 6.36826384, 7.03292237, 7.03292237, + 7.03292237, 4.72799187, 7.03292237, 6.36826384, 4.72799187, + 4.72799187, 7.03292237, 5.76642001, 7.03292237, 7.03292237, + 7.03292237, 6.36826384, 4.28116479, 7.03292237, 7.03292237, + 7.03292237, 5.76642001, 7.03292237, 7.03292237, 7.03292237, + 4.72799187, 7.03292237, 7.03292237, 6.36826384, 5.22145448, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 5.22145448, 7.03292237, 7.03292237, 6.36826384, + 7.03292237, 7.03292237, 5.22145448, 7.03292237, 6.36826384, + 6.36826384, 7.03292237, 6.36826384, 7.03292237, 7.03292237, + 7.03292237, 6.36826384, 6.36826384, 7.03292237, 4.72799187, + 4.28116479, 4.72799187, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 4.28116479, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 6.36826384, 4.28116479, 4.28116479, 7.03292237, 5.22145448, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 6.36826384, 7.03292237, 7.03292237, 7.03292237, + 5.76642001, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 4.72799187, 7.03292237, + 3.87656588, 7.03292237, 4.72799187, 7.03292237, 7.03292237, + 7.03292237, 5.22145448, 7.03292237, 4.28116479, 7.03292237, + 7.03292237, 4.72799187, 5.22145448, 7.03292237, 7.03292237, + 7.03292237, 6.36826384, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 6.36826384, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 5.76642001, 5.22145448, + 7.03292237, 7.03292237, 3.87656588, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 4.72799187, 6.36826384, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 4.28116479, 7.03292237, 7.03292237, 7.03292237, 5.76642001, + 7.03292237, 5.22145448, 4.72799187, 7.03292237, 7.03292237, + 7.03292237, 6.36826384, 5.76642001, 7.03292237, 5.76642001, + 7.03292237, 4.28116479, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 5.76642001, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 5.76642001, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 5.76642001, 7.03292237, 3.87656588, + 6.36826384, 5.76642001, 7.03292237, 4.28116479, 7.03292237, + 5.76642001, 5.22145448, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 6.36826384, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 5.76642001, 7.03292237, 7.03292237, 7.03292237, 3.5102043 , + 7.03292237, 7.03292237, 7.03292237, 6.36826384, 7.03292237, + 7.03292237, 4.28116479, 4.72799187, 6.36826384, 7.03292237, + 7.03292237, 4.28116479, 5.76642001, 7.03292237, 7.03292237, + 7.03292237, 4.28116479, 7.03292237, 7.03292237, 5.22145448, + 6.36826384, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 4.72799187, + 7.03292237, 5.22145448, 6.36826384, 7.03292237, 6.36826384, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 5.22145448, + 7.03292237, 7.03292237, 5.22145448, 7.03292237, 6.36826384, + 7.03292237, 7.03292237, 5.76642001, 7.03292237, 7.03292237, + 3.5102043 , 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 6.36826384, 7.03292237, + 7.03292237, 5.76642001, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 6.36826384, + 4.72799187, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 6.36826384, 7.03292237, 6.36826384, 4.72799187, 5.22145448, + 5.76642001, 7.03292237, 6.36826384, 6.36826384, 7.03292237, + 6.36826384, 7.03292237, 5.22145448, 4.72799187, 5.76642001, + 6.36826384, 7.03292237, 7.03292237, 5.76642001, 5.22145448, + 7.03292237, 6.36826384, 3.87656588, 6.36826384, 7.03292237, + 5.76642001, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 3.5102043 , 7.03292237, 7.03292237, 7.03292237, + 5.22145448, 7.03292237, 6.36826384, 7.03292237, 6.36826384, + 7.03292237, 6.36826384, 5.22145448, 7.03292237, 7.03292237, + 7.03292237, 6.36826384, 6.36826384, 7.03292237, 7.03292237, + 6.36826384, 4.72799187, 7.03292237, 5.22145448, 7.03292237, + 4.72799187, 7.03292237, 4.28116479, 7.03292237, 7.03292237, + 6.36826384, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 4.28116479, 6.36826384, 7.03292237, 3.87656588, 7.03292237, + 7.03292237, 7.03292237, 6.36826384, 7.03292237, 7.03292237, + 7.03292237, 6.36826384, 7.03292237, 5.22145448, 7.03292237, + 7.03292237, 5.76642001, 6.36826384, 7.03292237, 4.72799187, + 7.03292237, 7.03292237, 5.22145448, 7.03292237, 3.5102043 , + 6.36826384, 6.36826384, 7.03292237, 6.36826384, 7.03292237, + 5.22145448, 6.36826384, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 5.76642001, 4.28116479, 7.03292237, 7.03292237, + 4.72799187, 4.72799187, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 5.76642001, 7.03292237, 5.76642001, + 4.28116479, 7.03292237, 4.28116479, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 3.5102043 , 7.03292237, 5.22145448, + 7.03292237, 6.36826384, 7.03292237, 6.36826384, 7.03292237, + 4.72799187, 7.03292237, 7.03292237, 4.72799187, 3.5102043 , + 3.17846635, 3.87656588, 5.22145448, 6.36826384, 7.03292237, + 4.28116479, 7.03292237, 7.03292237, 6.36826384, 7.03292237, + 6.36826384, 7.03292237, 7.03292237, 5.76642001, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 4.72799187, 7.03292237, + 7.03292237, 7.03292237, 5.76642001, 7.03292237, 3.5102043 , + 7.03292237, 7.03292237, 5.22145448, 6.36826384, 3.87656588, + 4.72799187, 7.03292237, 7.03292237, 3.87656588, 7.03292237, + 6.36826384, 7.03292237, 6.36826384, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 4.72799187, 7.03292237, + 7.03292237, 6.36826384, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 5.76642001, 7.03292237, 4.28116479, 7.03292237, + 7.03292237, 7.03292237, 4.72799187, 6.36826384, 6.36826384, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 6.36826384, 4.72799187, 6.36826384, 7.03292237, 7.03292237, + 5.22145448, 7.03292237, 5.76642001, 7.03292237, 7.03292237, + 7.03292237, 5.76642001, 7.03292237, 6.36826384, 6.36826384, + 7.03292237, 7.03292237, 6.36826384, 7.03292237, 5.22145448, + 7.03292237, 5.22145448, 5.22145448, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 4.72799187, 4.28116479, 7.03292237, 6.36826384, 7.03292237, + 5.76642001, 7.03292237, 7.03292237, 7.03292237, 4.72799187, + 7.03292237, 5.76642001, 7.03292237, 4.72799187, 7.03292237, + 7.03292237, 4.72799187, 5.76642001, 6.36826384, 7.03292237, + 4.28116479, 6.36826384, 7.03292237, 6.36826384, 5.76642001, + 7.03292237, 4.28116479, 5.22145448, 4.72799187, 7.03292237, + 7.03292237, 6.36826384, 5.22145448, 7.03292237, 5.76642001, + 7.03292237, 7.03292237, 7.03292237, 6.36826384, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 4.28116479, 7.03292237, + 6.36826384, 5.22145448, 5.76642001, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 6.36826384, 7.03292237, 7.03292237, + 5.22145448, 7.03292237, 7.03292237, 6.36826384, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 4.28116479, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 6.36826384, 7.03292237, 7.03292237, 7.03292237, + 6.36826384, 7.03292237, 4.72799187, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 5.22145448, 6.36826384, 7.03292237, + 5.76642001, 5.76642001, 7.03292237, 7.03292237, 7.03292237, + 4.28116479, 7.03292237, 5.76642001, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 6.36826384, 7.03292237, + 7.03292237, 7.03292237, 3.87656588, 6.36826384, 6.36826384, + 5.22145448, 7.03292237, 5.22145448, 7.03292237, 7.03292237, + 7.03292237, 4.28116479, 7.03292237, 3.87656588, 7.03292237, + 7.03292237, 5.22145448, 6.36826384, 4.72799187, 7.03292237, + 7.03292237, 7.03292237, 6.36826384, 7.03292237, 5.76642001, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 5.22145448, + 4.28116479, 7.03292237, 6.36826384, 7.03292237, 7.03292237, + 5.76642001, 5.22145448, 5.76642001, 7.03292237, 4.28116479, + 7.03292237, 7.03292237, 4.72799187, 6.36826384, 7.03292237, + 4.72799187, 5.76642001, 7.03292237, 7.03292237, 6.36826384, + 6.36826384, 5.76642001, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 4.72799187, 7.03292237, 6.36826384, + 7.03292237, 4.72799187, 4.72799187, 5.76642001, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 4.72799187, + 7.03292237, 7.03292237, 7.03292237, 6.36826384, 7.03292237, + 5.76642001, 7.03292237, 4.72799187, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 6.36826384, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 6.36826384, 7.03292237, + 3.5102043 , 6.36826384, 5.22145448, 7.03292237, 5.22145448, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 4.72799187, 7.03292237, 6.36826384, 7.03292237, 7.03292237, + 7.03292237, 6.36826384, 7.03292237, 7.03292237, 7.03292237, + 6.36826384, 4.72799187, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 6.36826384, 7.03292237, 5.76642001, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 5.22145448, 4.72799187, + 7.03292237, 7.03292237, 7.03292237, 4.28116479, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 3.87656588, 7.03292237, + 5.22145448, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 3.5102043 , 7.03292237, 6.36826384, 7.03292237, 7.03292237, + 7.03292237, 4.72799187, 7.03292237, 7.03292237, 4.28116479, + 6.36826384, 7.03292237, 5.22145448, 7.03292237, 7.03292237, + 5.76642001, 7.03292237, 7.03292237, 7.03292237, 5.76642001, + 4.72799187, 7.03292237, 4.72799187, 6.36826384, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 6.36826384, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 3.87656588, 5.22145448, 7.03292237, 7.03292237, + 6.36826384, 4.28116479, 7.03292237, 5.76642001, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 3.87656588, 6.36826384, 7.03292237, + 7.03292237, 5.76642001, 7.03292237, 5.22145448, 7.03292237, + 5.76642001, 4.72799187, 7.03292237, 7.03292237, 6.36826384, + 7.03292237, 7.03292237, 7.03292237, 6.36826384, 5.76642001, + 5.22145448, 7.03292237, 5.76642001, 6.36826384, 4.28116479, + 7.03292237, 4.72799187, 3.87656588, 5.22145448, 7.03292237, + 6.36826384, 5.76642001, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 6.36826384, 5.76642001, 6.36826384, 7.03292237, + 5.76642001, 7.03292237, 5.76642001, 5.22145448, 3.87656588, + 5.76642001, 6.36826384, 7.03292237, 5.22145448, 6.36826384, + 5.22145448, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 6.36826384, 7.03292237, 5.76642001, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 4.72799187, 5.76642001, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 4.72799187, + 7.03292237, 7.03292237, 7.03292237, 6.36826384, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 5.22145448, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 3.5102043 , + 3.87656588, 7.03292237, 4.72799187, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 3.87656588, + 5.22145448, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 5.76642001, 7.03292237, 7.03292237, 7.03292237, + 4.28116479, 7.03292237, 4.72799187, 4.72799187, 7.03292237, + 6.36826384, 5.76642001, 7.03292237, 4.28116479, 7.03292237, + 7.03292237, 7.03292237, 5.76642001, 7.03292237, 7.03292237, + 5.76642001, 5.22145448, 7.03292237, 4.72799187, 7.03292237, + 4.28116479, 5.76642001, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 4.28116479, 7.03292237, + 7.03292237, 7.03292237, 5.22145448, 5.22145448, 7.03292237, + 7.03292237, 7.03292237, 5.76642001, 6.36826384, 7.03292237, + 7.03292237, 5.22145448, 7.03292237, 7.03292237, 5.76642001, + 5.22145448, 7.03292237, 7.03292237, 7.03292237, 3.87656588, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 5.76642001, 7.03292237, 6.36826384, + 7.03292237, 7.03292237, 7.03292237, 6.36826384, 6.36826384, + 7.03292237, 7.03292237, 7.03292237, 4.28116479, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 3.5102043 , + 7.03292237, 7.03292237, 7.03292237, 5.76642001, 4.28116479, + 5.22145448, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 6.36826384, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 5.76642001, 6.36826384, 7.03292237, + 5.22145448, 5.76642001, 5.76642001, 7.03292237, 7.03292237, + 5.22145448, 7.03292237, 7.03292237, 5.22145448, 6.36826384, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 5.22145448, + 6.36826384, 5.22145448, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 5.22145448, 7.03292237, 5.76642001, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 4.72799187, 7.03292237, + 7.03292237, 7.03292237, 6.36826384, 4.72799187, 5.22145448, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 6.36826384, 7.03292237, 7.03292237, 5.76642001, 6.36826384, + 7.03292237, 7.03292237, 7.03292237, 6.36826384, 7.03292237, + 4.72799187, 3.87656588, 7.03292237, 7.03292237, 4.72799187, + 7.03292237, 7.03292237, 6.36826384, 7.03292237, 5.22145448, + 7.03292237, 7.03292237, 7.03292237, 3.87656588, 5.76642001, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 5.76642001, + 5.22145448, 7.03292237, 6.36826384, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 5.76642001, + 5.76642001, 7.03292237, 5.76642001, 3.87656588, 6.36826384, + 7.03292237, 7.03292237, 7.03292237, 6.36826384, 5.76642001, + 5.22145448, 7.03292237, 5.22145448, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 5.22145448, 4.72799187, + 7.03292237, 6.36826384, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 7.03292237, 7.03292237, 5.22145448, 6.36826384, + 7.03292237, 7.03292237, 3.17846635, 5.76642001, 7.03292237, + 3.5102043 , 7.03292237, 7.03292237, 7.03292237, 3.87656588, + 7.03292237, 6.36826384, 6.36826384, 7.03292237, 5.22145448, + 7.03292237, 7.03292237, 7.03292237, 7.03292237, 7.03292237, + 7.03292237, 4.28116479, 6.36826384, 7.03292237, 6.36826384, + 4.72799187, 7.03292237, 7.03292237, 5.22145448, 4.28116479, + 7.03292237, 6.36826384, 7.03292237, 4.72799187, 5.76642001, + 6.36826384, 5.22145448, 7.03292237, 7.03292237, 7.03292237, + 6.36826384, 7.03292237, 7.03292237, 3.87656588, 7.03292237, + 4.72799187, 7.03292237, 3.53462742, 4.76088805, 5.25778406, + 4.31095206, 5.80654132, 5.80654132, 5.80654132, 5.80654132, + 5.80654132, 5.25778406, 5.25778406, 5.80654132, 5.80654132, + 3.90353806, 5.25778406, 4.31095206, 5.80654132, 5.25778406, + 3.53462742, 2.89810483, 5.80654132, 5.25778406, 5.80654132, + 2.89810483, 5.80654132, 5.25778406, 3.53462742, 4.76088805, + 5.80654132, 3.20058132, 5.80654132, 5.80654132, 4.76088805, + 5.80654132, 3.53462742, 3.53462742, 5.80654132, 5.80654132, + 5.80654132, 4.76088805, 5.80654132, 4.76088805, 3.90353806, + 5.80654132, 3.53462742, 5.80654132, 2.6242144 , 3.20058132, + 5.80654132, 5.80654132, 3.90353806, 3.20058132, 5.80654132, + 5.80654132, 5.80654132, 5.80654132, 5.80654132, 5.80654132, + 2.89810483, 5.80654132, 5.80654132, 3.90353806, 3.53462742, + 4.31095206, 5.80654132, 5.80654132, 4.76088805, 5.80654132, + 3.53462742, 5.80654132, 4.76088805, 2.89810483, 5.25778406, + 4.31095206, 5.80654132, 4.31095206, 5.80654132, 5.80654132, + 4.76088805, 4.31095206, 5.80654132, 5.80654132, 5.80654132, + 5.80654132, 5.80654132, 4.76088805, 5.80654132, 5.25778406, + 5.25778406, 5.80654132, 5.80654132, 3.53462742, 5.80654132, + 3.53462742, 5.80654132, 4.31095206, 5.80654132, 5.80654132, + 5.25778406, 5.80654132, 3.20058132, 5.80654132, 5.80654132, + 3.20058132, 3.90353806, 5.80654132, 5.80654132, 5.25778406, + 3.53462742, 3.20058132, 5.80654132, 4.31095206, 5.80654132, + 5.80654132, 5.80654132, 3.20058132, 5.80654132, 5.80654132, + 5.80654132, 5.80654132, 4.31095206, 5.80654132, 3.90353806, + 5.80654132, 4.31095206, 4.31095206, 5.80654132, 4.76088805, + 3.90353806, 3.90353806, 4.76088805, 3.90353806, 5.80654132, + 5.80654132, 5.80654132, 5.80654132, 5.80654132, 5.80654132, + 5.80654132, 5.25778406, 3.53462742, 5.80654132, 3.53462742, + 5.80654132, 5.80654132, 5.80654132, 2.89810483, 5.80654132, + 5.80654132, 5.80654132, 5.80654132, 4.76088805, 4.76088805, + 5.80654132, 2.89810483, 5.80654132, 4.76088805, 5.80654132, + 5.80654132, 4.31095206, 3.20058132, 5.80654132, 4.76088805, + 5.80654132, 2.89810483, 2.89810483, 5.25778406, 3.90353806, + 5.80654132, 5.80654132, 5.25778406, 5.80654132, 5.80654132, + 3.90353806, 5.80654132, 5.25778406, 4.76088805, 5.80654132, + 2.89810483, 5.25778406, 5.80654132, 5.80654132, 4.31095206, + 5.25778406, 5.80654132, 5.80654132, 5.80654132, 5.80654132, + 2.89810483, 5.80654132, 3.53462742, 3.90353806, 5.25778406, + 5.80654132, 3.20058132, 2.89810483, 5.80654132, 4.31095206, + 5.80654132, 3.53462742, 5.25778406, 4.76088805, 5.80654132, + 3.53462742, 3.90353806, 5.80654132, 3.20058132, 5.80654132, + 5.80654132, 3.53462742, 5.25778406, 4.76088805, 4.76088805, + 5.80654132, 5.80654132, 2.89810483, 3.20058132, 5.80654132, + 5.80654132, 5.80654132, 5.80654132, 5.25778406, 5.25778406, + 5.80654132, 5.80654132, 4.76088805, 5.80654132, 4.31095206, + 5.25778406, 5.80654132, 4.31095206, 4.31095206, 5.80654132, + 5.80654132, 3.53462742, 4.76088805, 3.53462742, 4.76088805, + 4.31095206, 5.80654132, 3.90353806, 5.80654132, 4.76088805, + 5.80654132, 5.80654132, 5.80654132, 4.31095206, 3.90353806, + 5.80654132, 4.76088805, 4.76088805, 3.53462742, 5.80654132, + 5.80654132, 5.25778406, 3.53462742, 3.20058132, 3.53462742, + 3.90353806, 5.80654132, 4.31095206, 4.76088805, 5.80654132, + 5.80654132, 5.80654132, 3.90353806, 4.76088805, 2.89810483, + 5.80654132, 5.80654132, 5.80654132, 4.76088805, 5.25778406, + 5.80654132, 5.80654132, 5.80654132, 5.80654132, 5.80654132, + 5.80654132, 5.80654132, 3.90353806, 5.25778406, 4.76088805, + 5.80654132, 4.76088805, 3.90353806, 5.80654132, 5.80654132, + 4.76088805, 5.80654132, 5.25778406, 5.80654132, 2.89810483, + 5.80654132, 5.25778406, 3.90353806, 3.90353806, 5.80654132, + 5.25778406, 3.53462742, 5.80654132, 4.76088805, 5.25778406, + 5.80654132, 3.90353806, 4.31095206, 5.80654132, 5.25778406, + 3.90353806, 3.53462742, 5.25778406, 2.89810483, 5.80654132, + 3.53462742, 4.76088805, 4.31095206, 5.80654132, 5.80654132, + 5.80654132, 5.80654132, 5.80654132, 3.90353806, 5.80654132, + 4.31095206, 5.80654132, 5.80654132, 5.25778406, 5.80654132, + 5.80654132, 5.80654132, 5.80654132, 5.25778406, 5.25778406, + 5.80654132, 5.25778406, 5.80654132, 5.80654132, 5.80654132, + 5.80654132, 5.25778406, 4.31095206, 5.80654132, 5.25778406, + 5.80654132, 5.25778406, 5.80654132, 5.80654132, 5.80654132, + 5.80654132, 4.31095206, 5.25778406, 3.53462742, 2.89810483, + 5.80654132, 5.80654132, 3.20058132, 5.80654132, 4.31095206, + 5.80654132, 5.80654132, 5.80654132, 5.80654132, 3.90353806, + 3.90353806, 3.90353806, 5.80654132, 5.80654132, 5.80654132, + 5.80654132, 4.76088805, 3.20058132, 4.31095206, 5.80654132, + 3.90353806, 5.80654132, 5.80654132, 5.80654132, 5.80654132, + 5.80654132, 3.90353806, 5.80654132, 5.80654132, 5.80654132, + 5.80654132, 3.90353806, 5.80654132, 3.90353806, 3.53462742, + 5.80654132, 4.76088805, 5.80654132, 5.80654132, 5.80654132, + 5.80654132, 5.80654132, 5.80654132, 5.80654132, 5.80654132, + 4.76088805, 5.25778406, 5.80654132, 5.80654132, 5.80654132, + 5.80654132, 5.80654132, 5.80654132, 5.80654132, 5.25778406, + 3.53462742, 5.25778406, 5.80654132, 3.53462742, 5.80654132, + 3.90353806, 5.80654132, 5.80654132, 5.80654132, 3.90353806, + 3.20058132, 5.80654132, 5.80654132, 3.90353806, 5.80654132, + 5.80654132, 5.80654132, 5.80654132, 5.80654132, 5.80654132, + 5.80654132, 5.80654132, 5.80654132, 5.80654132, 5.80654132, + 5.80654132, 5.80654132, 3.53462742, 5.80654132, 5.80654132, + 5.80654132, 5.80654132, 3.53462742, 5.25778406, 3.90353806, + 5.80654132, 4.76088805, 4.76088805, 3.90353806, 5.80654132, + 5.80654132, 4.31095206, 2.89810483, 5.80654132, 5.80654132, + 3.90353806, 5.80654132, 3.53462742, 3.90353806, 5.80654132, + 5.80654132, 4.76088805, 5.80654132, 4.31095206, 5.25778406, + 5.25778406, 3.20058132, 3.53462742, 5.80654132, 4.31095206, + 5.80654132, 4.76088805, 3.90353806, 4.76088805, 4.76088805, + 5.80654132, 5.80654132, 5.25778406, 3.90353806, 5.80654132, + 5.80654132, 5.80654132, 5.80654132, 5.80654132, 5.80654132, + 5.80654132, 3.53462742, 4.31095206, 3.90353806, 4.76088805, + 4.31095206, 3.53462742, 3.90353806, 5.80654132, 5.80654132, + 5.80654132, 5.80654132, 3.20058132, 5.80654132, 5.80654132, + 5.80654132, 5.80654132, 5.80654132, 3.90353806, 4.76088805, + 5.25778406, 3.53462742, 3.20058132, 5.80654132, 3.90353806, + 5.80654132, 3.53462742, 5.80654132, 5.80654132, 3.90353806, + 5.80654132, 3.90353806, 5.80654132, 5.80654132, 5.80654132, + 5.80654132, 4.76088805, 3.90353806, 4.76088805, 5.25778406, + 2.89810483, 5.80654132, 4.31095206, 5.80654132, 4.76088805, + 5.80654132, 5.25778406, 5.80654132, 5.80654132, 5.80654132, + 3.53462742, 2.89810483, 5.80654132, 5.80654132, 5.80654132, + 3.90353806, 4.76088805, 5.80654132, 5.25778406, 4.76088805, + 5.25778406, 5.80654132, 5.80654132, 5.25778406, 5.80654132, + 5.80654132, 5.80654132, 2.89810483, 5.25778406, 5.80654132, + 5.80654132, 4.76088805, 4.76088805, 5.25778406, 5.80654132, + 5.80654132, 4.31095206, 3.20058132, 3.53462742, 5.80654132, + 5.80654132, 5.80654132, 5.80654132, 5.80654132, 5.25778406, + 5.80654132, 5.80654132, 3.90353806, 4.76088805, 5.80654132, + 3.53462742, 5.80654132, 5.25778406, 2.89810483, 5.80654132, + 5.25778406, 5.80654132, 5.80654132, 5.80654132, 5.25778406, + 5.80654132, 5.80654132, 5.80654132, 5.80654132, 5.80654132, + 5.80654132, 4.31095206, 5.80654132, 3.20058132, 5.80654132, + 5.25778406, 4.76088805, 5.25778406, 5.80654132, 4.76088805, + 5.80654132, 3.90353806, 4.31095206, 5.80654132, 5.80654132, + 5.80654132, 5.80654132, 5.25778406, 5.80654132, 3.90353806, + 4.76088805, 3.90353806, 5.80654132, 3.53462742, 5.80654132, + 5.80654132, 5.80654132, 5.80654132, 3.53462742, 5.80654132, + 4.76088805, 5.80654132, 5.80654132, 5.80654132, 5.80654132, + 5.80654132, 5.80654132, 5.80654132, 5.80654132, 3.90353806, + 2.6242144 , 5.80654132, 5.80654132, 5.80654132, 5.80654132, + 4.76088805, 5.80654132, 3.53462742, 5.80654132, 5.80654132, + 3.90353806, 5.80654132, 5.80654132, 5.80654132, 5.80654132, + 5.80654132, 5.80654132, 3.20058132, 3.20058132, 5.80654132, + 5.80654132, 5.80654132, 3.90353806, 5.80654132, 5.25778406, + 4.31095206, 5.25778406, 4.31095206, 4.31095206, 4.76088805, + 5.80654132, 4.76088805, 5.80654132, 3.53462742, 5.80654132, + 5.80654132, 5.80654132, 5.80654132, 5.80654132, 3.20058132, + 5.80654132, 3.90353806, 5.80654132, 4.76088805, 5.80654132, + 3.90353806, 5.80654132, 5.80654132, 5.80654132, 5.80654132, + 5.80654132, 5.25778406, 5.80654132, 4.31095206, 5.25778406, + 4.31095206, 5.80654132, 3.90353806, 5.80654132, 3.53462742, + 5.25778406, 5.80654132, 5.80654132, 4.31095206, 3.90353806, + 3.53462742, 5.80654132, 5.80654132, 5.80654132, 4.31095206, + 5.80654132, 5.80654132, 5.25778406, 4.76088805, 4.31095206, + 3.20058132, 5.80654132, 3.53462742, 3.20058132, 5.80654132, + 5.80654132, 3.20058132, 3.20058132, 5.80654132, 4.31095206, + 4.31095206, 5.80654132, 5.80654132, 3.90353806, 3.90353806, + 3.53462742, 5.80654132, 3.90353806, 3.53462742, 5.80654132, + 3.90353806, 5.25778406, 5.80654132, 3.53462742, 5.80654132, + 5.25778406, 5.80654132, 4.31095206, 3.90353806, 5.80654132, + 5.80654132, 4.31095206, 5.25778406, 5.80654132, 5.80654132, + 5.80654132, 5.80654132, 5.80654132, 5.80654132, 5.25778406, + 3.20058132, 5.25778406, 2.89810483, 3.90353806, 5.80654132, + 3.53462742, 5.80654132, 5.25778406, 5.80654132, 2.89810483, + 5.80654132, 5.80654132, 5.80654132, 5.80654132, 3.20058132, + 5.80654132, 5.25778406, 3.53462742, 4.31095206, 4.76088805, + 3.90353806, 5.80654132, 5.80654132, 5.25778406, 3.90353806, + 4.76088805, 4.31095206, 5.80654132, 5.80654132, 5.80654132, + 5.80654132, 5.80654132, 3.90353806, 5.80654132, 5.80654132, + 5.80654132, 5.80654132, 5.80654132, 5.80654132, 5.25778406, + 3.53462742, 5.80654132, 5.80654132, 5.25778406, 5.80654132, + 3.20058132, 5.80654132, 4.76088805, 5.80654132, 4.76088805, + 5.80654132, 5.25778406, 5.80654132, 5.80654132, 5.80654132, + 5.80654132, 5.25778406, 2.89810483, 5.80654132, 5.80654132, + 2.89810483, 3.53462742, 5.80654132, 5.80654132, 2.89810483, + 4.31095206, 3.53462742, 4.31095206, 5.80654132, 5.80654132, + 5.80654132, 5.80654132, 5.80654132, 5.80654132, 4.31095206, + 4.76088805, 5.25778406, 5.80654132, 5.80654132, 5.80654132, + 5.80654132, 5.25778406, 3.90353806, 5.80654132, 5.25778406, + 5.80654132, 2.89810483, 2.89810483, 5.80654132, 3.53462742, + 5.80654132, 3.53462742, 5.80654132, 4.31095206, 2.89810483, + 5.80654132, 5.80654132, 2.89810483, 4.76088805, 5.80654132, + 5.80654132, 3.20058132, 5.80654132, 3.90353806, 5.80654132, + 5.80654132, 3.20058132, 3.90353806, 4.76088805, 4.76088805, + 5.80654132, 3.90353806, 4.31095206, 5.80654132, 4.31095206, + 5.80654132, 3.20058132, 4.31095206, 4.76088805, 3.53462742, + 5.80654132, 5.80654132, 3.53462742, 3.53462742, 3.53462742, + 5.80654132, 5.80654132, 3.90353806, 3.90353806, 3.20058132, + 5.80654132, 5.80654132, 2.89810483, 3.90353806, 5.80654132, + 2.89810483, 3.53462742, 3.53462742, 4.31095206, 5.80654132, + 3.53462742, 5.80654132, 5.80654132, 5.80654132, 5.80654132, + 5.80654132, 5.80654132, 5.25778406, 5.80654132, 5.80654132, + 5.80654132, 5.80654132, 5.80654132, 5.80654132, 5.80654132, + 5.80654132, 4.76088805, 5.80654132, 5.80654132, 4.76088805, + 5.80654132, 5.80654132, 4.76088805, 4.76088805, 5.80654132, + 5.25778406, 4.31095206, 5.80654132, 4.76088805, 3.90353806, + 4.31095206, 5.80654132, 2.89810483, 4.31095206, 5.25778406, + 5.80654132, 5.80654132, 5.80654132, 5.80654132, 3.20058132, + 5.25778406, 5.80654132, 4.76088805, 5.80654132, 4.31095206, + 5.80654132, 5.80654132, 4.76088805, 4.31095206, 5.80654132, + 5.80654132, 5.80654132, 5.80654132, 5.80654132, 4.31095206, + 4.31095206, 3.20058132, 4.76088805, 5.80654132, 3.20058132, + 3.20058132, 5.80654132, 3.90353806, 5.25778406, 3.20058132, + 4.76088805, 3.20058132, 3.53462742, 4.76088805, 5.80654132, + 5.80654132, 4.31095206, 4.76088805, 5.80654132, 4.31095206, + 5.80654132, 4.76088805, 4.31095206, 2.89810483, 5.80654132, + 5.80654132, 5.80654132, 4.76088805, 5.80654132, 5.80654132, + 5.80654132, 5.80654132, 4.76088805, 5.25778406, 4.31095206, + 5.80654132, 3.90353806, 3.53462742, 4.76088805, 5.80654132, + 4.31095206, 5.80654132, 5.80654132, 3.20058132, 5.80654132, + 5.25778406, 5.80654132, 5.80654132, 5.80654132, 3.53462742, + 2.6242144 , 5.80654132, 5.80654132, 3.53462742, 5.25778406, + 3.90353806, 5.80654132, 2.89810483, 5.80654132, 3.90353806, + 5.80654132, 5.80654132, 3.90353806, 2.89810483, 5.80654132, + 4.76088805, 4.31095206, 5.80654132, 5.25778406, 5.80654132, + 5.80654132, 4.31095206, 5.80654132, 5.80654132, 5.80654132, + 3.90353806, 4.76088805, 5.80654132, 4.76088805, 5.80654132, + 4.76088805, 3.53462742, 3.90353806, 5.80654132, 5.80654132, + 5.80654132, 5.25778406, 5.80654132, 5.80654132, 5.25778406, + 5.80654132, 5.80654132, 5.80654132, 5.80654132, 5.80654132, + 5.80654132, 5.80654132, 5.80654132, 5.80654132, 5.80654132, + 3.53462742, 3.53462742, 3.90353806, 5.80654132, 4.31095206, + 3.53462742, 5.80654132, 4.76088805, 4.76088805, 3.20058132, + 3.90353806, 5.80654132, 5.25778406, 5.80654132, 5.80654132, + 5.80654132, 5.80654132, 4.31095206, 5.25778406, 4.31095206, + 5.80654132, 3.20058132, 5.80654132, 4.31095206, 4.31095206, + 4.76088805, 5.80654132, 4.76088805, 4.31095206, 5.80654132, + 5.25778406, 3.53462742, 3.53462742, 5.25778406, 5.80654132, + 3.90353806, 5.25778406, 4.31095206, 4.31095206, 3.53462742, + 5.80654132, 3.90353806, 5.80654132, 5.80654132, 4.76088805, + 5.25778406, 3.20058132, 3.90353806, 5.80654132, 5.25778406, + 5.80654132, 5.80654132, 5.25778406, 5.80654132, 4.31095206, + 5.25778406, 4.76088805, 5.80654132, 5.80654132, 5.25778406, + 3.53462742, 5.80654132, 5.80654132, 5.80654132, 5.25778406, + 5.25778406, 5.80654132, 3.20058132, 5.80654132, 5.80654132, + 3.53462742, 5.80654132, 5.80654132, 5.80654132, 4.31095206, + 5.80654132, 4.76088805, 5.80654132, 5.80654132, 5.80654132, + 3.90353806, 4.31095206, 5.25778406, 5.80654132, 3.53462742, + 3.90353806, 5.25778406, 4.31095206, 5.80654132, 5.25778406, + 5.25778406, 2.89810483, 5.80654132, 5.80654132, 5.80654132, + 5.80654132, 5.80654132, 5.25778406, 5.80654132, 4.76088805, + 5.80654132, 5.80654132, 5.80654132, 4.31095206, 5.80654132, + 3.20058132, 3.90353806, 5.80654132, 5.80654132, 5.25778406, + 5.80654132, 5.80654132, 5.80654132, 5.80654132, 5.80654132, + 5.80654132, 5.80654132, 2.6242144 , 5.80654132, 3.90353806, + 5.25778406, 4.76088805, 5.80654132, 5.80654132, 3.90353806, + 5.80654132, 3.53462742, 2.89810483, 5.80654132, 3.53462742, + 2.89810483, 4.76088805, 5.80654132, 5.80654132, 5.80654132, + 4.31095206, 5.80654132, 4.76088805, 3.90353806, 2.89810483, + 4.76088805, 5.80654132, 2.6242144 , 3.53462742, 4.31095206, + 5.25778406, 5.25778406, 3.20058132, 4.31095206, 4.31095206, + 3.20058132, 4.31095206, 5.25778406, 4.31095206, 5.25778406, + 3.90353806, 4.31095206, 5.80654132, 5.80654132, 5.80654132, + 5.80654132, 3.90353806, 5.80654132, 5.80654132, 5.80654132, + 4.31095206, 5.80654132, 5.80654132, 5.80654132, 3.90353806, + 5.25778406, 3.90353806, 4.31095206, 4.76088805, 3.90353806, + 5.80654132, 5.80654132, 5.80654132, 2.89810483, 5.80654132, + 5.80654132, 5.80654132, 5.80654132, 5.80654132, 5.80654132, + 5.80654132, 3.90353806, 3.20058132, 5.25778406, 4.76088805, + 5.25778406]) + + +class InvGaussIdentity(Medpar1): + """ + Accuracy is different for R vs Stata ML vs Stata IRLS, we are close. + """ + def __init__(self): + super(InvGaussIdentity, self).__init__() + self.params = np.array([ 0.44538838, -1.05872706, 2.83947966]) + self.bse = np.array([ 0.02586783, 0.13830023, 0.20834864]) + filename = os.path.join(os.path.dirname(os.path.abspath(__file__)), + "igaussident_resids.csv") + self.resids = np.genfromtxt(open(filename, 'rb'), delimiter=",") + self.null_deviance = 335.1539777981053 # from R, Rpy bug + self.df_null = 3675 + self.deviance = 305.33661191013988 + self.df_resid = 3673 + self.df_model = 2 + self.aic_R = 18558.677276882016 + self.aic_Stata = 6.619290231464371 + self.bic_Stata = -29848.45250412075 + self.llf_stata = -12163.25544543151 + self.chi2 = 567.1229375785638 # in Stata not sm +# self.llf = -9275.3386384410078 # from R + self.llf = -12163.25545 # from Stata, big diff with R + self.scale = 0.10115387793455666 + self.pearson_chi2 = 371.5346609292967 # deviance_p in Stata + self.fittedvalues = np.array([ 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 5.9571983 , + 6.84797506, 6.84797506, 6.40258668, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 5.9571983 , 6.84797506, + 5.51180993, 6.84797506, 5.51180993, 5.06642155, 5.06642155, + 6.84797506, 6.84797506, 6.40258668, 6.84797506, 5.9571983 , + 6.84797506, 4.62103317, 6.84797506, 6.84797506, 6.84797506, + 5.9571983 , 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 4.17564479, 6.84797506, 6.84797506, 4.62103317, + 6.84797506, 6.84797506, 5.06642155, 6.84797506, 6.84797506, + 6.84797506, 5.51180993, 6.40258668, 6.40258668, 4.62103317, + 5.06642155, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 5.51180993, 6.84797506, 6.84797506, 6.40258668, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 5.9571983 , 6.40258668, + 6.40258668, 5.51180993, 6.84797506, 6.84797506, 6.84797506, + 5.9571983 , 6.84797506, 6.84797506, 4.17564479, 5.9571983 , + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 5.51180993, 5.51180993, 6.84797506, 6.40258668, 6.84797506, + 6.84797506, 6.84797506, 5.06642155, 6.84797506, 6.40258668, + 6.84797506, 6.40258668, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 5.51180993, 6.40258668, 5.51180993, + 6.84797506, 6.84797506, 5.06642155, 5.9571983 , 6.84797506, + 5.06642155, 6.40258668, 4.17564479, 6.84797506, 6.84797506, + 5.51180993, 5.51180993, 6.40258668, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.40258668, 4.62103317, + 6.84797506, 6.40258668, 6.40258668, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.40258668, 6.84797506, + 6.40258668, 6.84797506, 6.84797506, 6.40258668, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 5.9571983 , + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 5.9571983 , + 6.84797506, 6.84797506, 6.40258668, 4.17564479, 6.84797506, + 6.84797506, 5.51180993, 6.84797506, 5.9571983 , 4.62103317, + 5.9571983 , 6.40258668, 6.40258668, 6.84797506, 6.84797506, + 5.9571983 , 6.84797506, 6.84797506, 4.62103317, 6.84797506, + 6.40258668, 6.84797506, 6.40258668, 6.84797506, 5.51180993, + 6.84797506, 4.62103317, 5.06642155, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.40258668, + 6.84797506, 4.62103317, 5.51180993, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 4.62103317, 6.84797506, 6.84797506, + 6.84797506, 6.40258668, 5.9571983 , 6.84797506, 6.84797506, + 6.84797506, 5.06642155, 6.84797506, 6.40258668, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.40258668, 6.84797506, + 6.40258668, 6.84797506, 6.40258668, 4.62103317, 5.9571983 , + 5.51180993, 6.40258668, 6.40258668, 6.84797506, 6.84797506, + 6.84797506, 6.40258668, 6.84797506, 6.84797506, 6.40258668, + 5.9571983 , 6.84797506, 5.51180993, 5.9571983 , 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.40258668, 6.84797506, + 4.62103317, 6.84797506, 5.51180993, 6.84797506, 6.40258668, + 5.9571983 , 4.62103317, 4.62103317, 6.84797506, 6.40258668, + 6.84797506, 6.84797506, 6.84797506, 6.40258668, 4.62103317, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 5.51180993, + 6.84797506, 6.84797506, 6.84797506, 5.51180993, 6.84797506, + 5.9571983 , 6.84797506, 5.06642155, 4.62103317, 6.40258668, + 5.9571983 , 6.84797506, 6.84797506, 6.84797506, 5.51180993, + 6.84797506, 6.84797506, 6.84797506, 6.40258668, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.40258668, 6.84797506, + 4.17564479, 5.06642155, 6.84797506, 6.84797506, 6.84797506, + 5.06642155, 6.84797506, 6.84797506, 6.40258668, 6.84797506, + 6.84797506, 6.40258668, 4.17564479, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 4.62103317, 6.84797506, 6.40258668, + 6.84797506, 5.51180993, 5.51180993, 6.40258668, 6.84797506, + 6.40258668, 6.40258668, 6.84797506, 4.62103317, 6.84797506, + 6.84797506, 6.84797506, 5.51180993, 6.40258668, 6.84797506, + 4.17564479, 6.40258668, 5.51180993, 5.9571983 , 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 4.62103317, 6.84797506, + 5.51180993, 6.84797506, 6.40258668, 5.51180993, 5.06642155, + 6.84797506, 6.84797506, 6.84797506, 5.06642155, 6.40258668, + 6.84797506, 6.40258668, 5.9571983 , 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 5.51180993, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 4.17564479, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 5.06642155, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.40258668, 6.84797506, 6.84797506, + 6.40258668, 6.84797506, 6.40258668, 6.84797506, 5.51180993, + 6.40258668, 6.84797506, 6.40258668, 6.84797506, 6.40258668, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 4.17564479, + 6.84797506, 6.84797506, 6.84797506, 6.40258668, 6.84797506, + 6.84797506, 6.40258668, 6.84797506, 6.84797506, 6.40258668, + 5.9571983 , 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 5.9571983 , 6.84797506, 6.40258668, 6.84797506, 6.84797506, + 6.84797506, 4.17564479, 6.84797506, 6.40258668, 6.40258668, + 5.06642155, 5.9571983 , 6.40258668, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 4.17564479, 5.51180993, 5.06642155, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 5.06642155, 6.40258668, + 6.84797506, 6.84797506, 5.9571983 , 6.84797506, 6.40258668, + 6.84797506, 6.84797506, 6.84797506, 5.9571983 , 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.40258668, + 6.84797506, 5.51180993, 5.9571983 , 6.84797506, 5.9571983 , + 6.40258668, 5.9571983 , 5.9571983 , 6.84797506, 5.9571983 , + 6.84797506, 6.84797506, 6.84797506, 5.06642155, 6.40258668, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.40258668, 6.84797506, 6.40258668, 6.84797506, 5.06642155, + 6.84797506, 6.84797506, 4.62103317, 6.40258668, 4.17564479, + 6.84797506, 3.73025641, 6.84797506, 6.84797506, 5.9571983 , + 5.51180993, 6.84797506, 5.9571983 , 4.62103317, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 5.9571983 , 5.06642155, + 6.84797506, 6.40258668, 6.84797506, 5.51180993, 6.84797506, + 5.06642155, 6.84797506, 6.84797506, 6.84797506, 5.51180993, + 5.51180993, 5.06642155, 6.84797506, 6.40258668, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 4.62103317, 6.84797506, 6.84797506, 6.84797506, 5.9571983 , + 6.40258668, 6.84797506, 6.84797506, 5.9571983 , 6.84797506, + 6.84797506, 6.40258668, 5.06642155, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 5.06642155, 5.9571983 , 6.84797506, 5.9571983 , + 6.40258668, 6.84797506, 6.84797506, 6.84797506, 5.06642155, + 6.84797506, 6.84797506, 6.84797506, 5.9571983 , 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.40258668, 6.84797506, 6.84797506, 5.9571983 , 6.40258668, + 5.06642155, 6.84797506, 6.84797506, 6.84797506, 5.9571983 , + 6.84797506, 6.40258668, 5.51180993, 5.9571983 , 5.06642155, + 6.84797506, 6.84797506, 6.84797506, 6.40258668, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 5.51180993, 6.84797506, 6.84797506, + 6.40258668, 6.84797506, 6.84797506, 5.9571983 , 6.84797506, + 6.84797506, 6.84797506, 6.40258668, 6.84797506, 5.51180993, + 6.84797506, 6.84797506, 6.84797506, 5.9571983 , 6.84797506, + 6.40258668, 6.40258668, 6.84797506, 5.9571983 , 6.84797506, + 6.40258668, 6.84797506, 6.84797506, 6.84797506, 5.06642155, + 5.51180993, 6.84797506, 4.17564479, 5.9571983 , 6.40258668, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.40258668, 6.84797506, 6.84797506, + 5.06642155, 6.84797506, 6.40258668, 6.84797506, 4.62103317, + 6.84797506, 6.84797506, 5.9571983 , 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 5.06642155, 6.40258668, 4.17564479, 6.84797506, 6.84797506, + 6.40258668, 5.06642155, 4.62103317, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 4.17564479, 6.84797506, 6.84797506, 6.84797506, + 4.17564479, 6.84797506, 6.84797506, 6.40258668, 6.84797506, + 6.84797506, 6.40258668, 6.84797506, 6.84797506, 4.17564479, + 6.84797506, 5.06642155, 5.51180993, 5.51180993, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.40258668, 6.84797506, + 6.84797506, 6.40258668, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 5.51180993, 5.51180993, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 5.06642155, 6.40258668, 5.9571983 , + 5.9571983 , 6.40258668, 6.84797506, 6.84797506, 6.84797506, + 6.40258668, 6.84797506, 6.84797506, 6.40258668, 6.84797506, + 6.84797506, 5.06642155, 6.84797506, 5.9571983 , 6.84797506, + 6.84797506, 6.84797506, 5.06642155, 4.62103317, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 5.9571983 , + 6.84797506, 5.9571983 , 6.84797506, 6.84797506, 6.84797506, + 5.51180993, 6.84797506, 6.84797506, 6.84797506, 5.51180993, + 6.40258668, 6.84797506, 6.84797506, 6.40258668, 6.40258668, + 6.84797506, 6.84797506, 5.9571983 , 6.84797506, 5.51180993, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 5.06642155, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 4.62103317, + 6.84797506, 6.40258668, 6.84797506, 5.9571983 , 4.62103317, + 5.9571983 , 6.84797506, 4.17564479, 6.84797506, 6.84797506, + 6.84797506, 3.73025641, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 5.9571983 , 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 5.9571983 , 5.9571983 , 5.9571983 , 6.84797506, + 6.84797506, 6.40258668, 6.84797506, 6.40258668, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 5.9571983 , 6.84797506, 4.62103317, 6.40258668, + 5.9571983 , 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.40258668, 5.51180993, + 6.84797506, 6.84797506, 6.84797506, 5.9571983 , 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.40258668, 6.84797506, + 6.84797506, 5.9571983 , 6.84797506, 6.84797506, 6.84797506, + 6.40258668, 6.40258668, 6.84797506, 6.84797506, 6.40258668, + 6.84797506, 6.84797506, 6.84797506, 6.40258668, 6.84797506, + 6.84797506, 6.84797506, 5.51180993, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 3.73025641, 6.84797506, 6.84797506, + 6.84797506, 4.17564479, 6.40258668, 5.9571983 , 6.84797506, + 6.84797506, 6.40258668, 5.06642155, 6.84797506, 6.84797506, + 5.9571983 , 6.84797506, 4.17564479, 5.51180993, 6.40258668, + 4.62103317, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.40258668, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.40258668, + 6.84797506, 5.51180993, 6.40258668, 6.40258668, 6.84797506, + 6.40258668, 6.84797506, 6.84797506, 6.84797506, 5.51180993, + 6.84797506, 6.40258668, 6.84797506, 6.84797506, 5.06642155, + 6.84797506, 6.84797506, 6.84797506, 6.40258668, 6.40258668, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.40258668, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 3.73025641, 6.84797506, 5.51180993, + 5.51180993, 6.84797506, 6.40258668, 6.84797506, 5.06642155, + 6.84797506, 6.84797506, 6.84797506, 5.06642155, 6.84797506, + 5.9571983 , 6.84797506, 4.17564479, 6.84797506, 5.51180993, + 4.17564479, 5.06642155, 6.40258668, 5.9571983 , 6.84797506, + 6.40258668, 6.84797506, 4.62103317, 5.9571983 , 6.84797506, + 6.84797506, 6.84797506, 5.51180993, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 4.62103317, 6.40258668, 6.84797506, 6.84797506, + 6.84797506, 5.9571983 , 6.40258668, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 3.73025641, 5.06642155, 6.84797506, 4.62103317, 6.84797506, + 5.06642155, 6.84797506, 5.51180993, 5.9571983 , 5.9571983 , + 4.17564479, 5.9571983 , 5.51180993, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 5.51180993, 6.40258668, + 6.84797506, 6.84797506, 6.84797506, 5.51180993, 6.84797506, + 6.84797506, 6.84797506, 5.51180993, 6.84797506, 6.84797506, + 6.40258668, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 4.62103317, + 5.06642155, 6.84797506, 6.84797506, 6.40258668, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.40258668, 6.84797506, 6.84797506, 6.40258668, + 6.40258668, 5.9571983 , 6.84797506, 5.9571983 , 6.40258668, + 6.84797506, 6.84797506, 6.84797506, 5.9571983 , 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 5.51180993, 6.84797506, 6.84797506, 5.9571983 , 6.40258668, + 5.9571983 , 6.84797506, 6.84797506, 6.40258668, 6.84797506, + 5.06642155, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.40258668, 5.9571983 , 6.40258668, 5.06642155, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 5.06642155, + 6.84797506, 6.40258668, 6.84797506, 5.51180993, 6.84797506, + 6.84797506, 6.40258668, 6.84797506, 5.9571983 , 6.40258668, + 5.9571983 , 6.84797506, 6.84797506, 6.84797506, 6.40258668, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 5.06642155, 6.84797506, 5.51180993, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 5.06642155, 6.40258668, 6.84797506, + 6.84797506, 6.40258668, 6.84797506, 5.9571983 , 5.51180993, + 6.84797506, 6.84797506, 6.84797506, 5.51180993, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 4.62103317, + 5.9571983 , 6.84797506, 4.62103317, 6.84797506, 6.40258668, + 6.84797506, 6.84797506, 4.62103317, 6.84797506, 6.84797506, + 6.40258668, 4.17564479, 3.73025641, 6.40258668, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 5.9571983 , + 6.84797506, 5.06642155, 5.9571983 , 6.84797506, 6.84797506, + 4.17564479, 6.84797506, 6.84797506, 6.84797506, 4.62103317, + 6.84797506, 6.84797506, 6.84797506, 5.9571983 , 5.9571983 , + 6.84797506, 6.40258668, 5.9571983 , 6.84797506, 6.40258668, + 5.9571983 , 6.84797506, 5.9571983 , 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 4.62103317, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 5.06642155, 5.9571983 , 6.40258668, 6.40258668, + 6.84797506, 6.84797506, 6.84797506, 5.9571983 , 4.62103317, + 6.84797506, 5.9571983 , 5.06642155, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 5.9571983 , + 6.40258668, 6.40258668, 6.84797506, 6.84797506, 6.40258668, + 4.17564479, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 3.73025641, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.40258668, 6.84797506, 6.84797506, + 6.84797506, 5.06642155, 6.84797506, 6.40258668, 5.06642155, + 5.06642155, 6.84797506, 5.9571983 , 6.84797506, 6.84797506, + 6.84797506, 6.40258668, 4.62103317, 6.84797506, 6.84797506, + 6.84797506, 5.9571983 , 6.84797506, 6.84797506, 6.84797506, + 5.06642155, 6.84797506, 6.84797506, 6.40258668, 5.51180993, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 5.51180993, 6.84797506, 6.84797506, 6.40258668, + 6.84797506, 6.84797506, 5.51180993, 6.84797506, 6.40258668, + 6.40258668, 6.84797506, 6.40258668, 6.84797506, 6.84797506, + 6.84797506, 6.40258668, 6.40258668, 6.84797506, 5.06642155, + 4.62103317, 5.06642155, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 4.62103317, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.40258668, 4.62103317, 4.62103317, 6.84797506, 5.51180993, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.40258668, 6.84797506, 6.84797506, 6.84797506, + 5.9571983 , 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 5.06642155, 6.84797506, + 4.17564479, 6.84797506, 5.06642155, 6.84797506, 6.84797506, + 6.84797506, 5.51180993, 6.84797506, 4.62103317, 6.84797506, + 6.84797506, 5.06642155, 5.51180993, 6.84797506, 6.84797506, + 6.84797506, 6.40258668, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.40258668, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 5.9571983 , 5.51180993, + 6.84797506, 6.84797506, 4.17564479, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 5.06642155, 6.40258668, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 4.62103317, 6.84797506, 6.84797506, 6.84797506, 5.9571983 , + 6.84797506, 5.51180993, 5.06642155, 6.84797506, 6.84797506, + 6.84797506, 6.40258668, 5.9571983 , 6.84797506, 5.9571983 , + 6.84797506, 4.62103317, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 5.9571983 , 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 5.9571983 , + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 5.9571983 , 6.84797506, 4.17564479, + 6.40258668, 5.9571983 , 6.84797506, 4.62103317, 6.84797506, + 5.9571983 , 5.51180993, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.40258668, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 5.9571983 , 6.84797506, 6.84797506, 6.84797506, 3.73025641, + 6.84797506, 6.84797506, 6.84797506, 6.40258668, 6.84797506, + 6.84797506, 4.62103317, 5.06642155, 6.40258668, 6.84797506, + 6.84797506, 4.62103317, 5.9571983 , 6.84797506, 6.84797506, + 6.84797506, 4.62103317, 6.84797506, 6.84797506, 5.51180993, + 6.40258668, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 5.06642155, + 6.84797506, 5.51180993, 6.40258668, 6.84797506, 6.40258668, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 5.51180993, + 6.84797506, 6.84797506, 5.51180993, 6.84797506, 6.40258668, + 6.84797506, 6.84797506, 5.9571983 , 6.84797506, 6.84797506, + 3.73025641, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.40258668, 6.84797506, + 6.84797506, 5.9571983 , 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.40258668, + 5.06642155, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.40258668, 6.84797506, 6.40258668, 5.06642155, 5.51180993, + 5.9571983 , 6.84797506, 6.40258668, 6.40258668, 6.84797506, + 6.40258668, 6.84797506, 5.51180993, 5.06642155, 5.9571983 , + 6.40258668, 6.84797506, 6.84797506, 5.9571983 , 5.51180993, + 6.84797506, 6.40258668, 4.17564479, 6.40258668, 6.84797506, + 5.9571983 , 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 3.73025641, 6.84797506, 6.84797506, 6.84797506, + 5.51180993, 6.84797506, 6.40258668, 6.84797506, 6.40258668, + 6.84797506, 6.40258668, 5.51180993, 6.84797506, 6.84797506, + 6.84797506, 6.40258668, 6.40258668, 6.84797506, 6.84797506, + 6.40258668, 5.06642155, 6.84797506, 5.51180993, 6.84797506, + 5.06642155, 6.84797506, 4.62103317, 6.84797506, 6.84797506, + 6.40258668, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 4.62103317, 6.40258668, 6.84797506, 4.17564479, 6.84797506, + 6.84797506, 6.84797506, 6.40258668, 6.84797506, 6.84797506, + 6.84797506, 6.40258668, 6.84797506, 5.51180993, 6.84797506, + 6.84797506, 5.9571983 , 6.40258668, 6.84797506, 5.06642155, + 6.84797506, 6.84797506, 5.51180993, 6.84797506, 3.73025641, + 6.40258668, 6.40258668, 6.84797506, 6.40258668, 6.84797506, + 5.51180993, 6.40258668, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 5.9571983 , 4.62103317, 6.84797506, 6.84797506, + 5.06642155, 5.06642155, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 5.9571983 , 6.84797506, 5.9571983 , + 4.62103317, 6.84797506, 4.62103317, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 3.73025641, 6.84797506, 5.51180993, + 6.84797506, 6.40258668, 6.84797506, 6.40258668, 6.84797506, + 5.06642155, 6.84797506, 6.84797506, 5.06642155, 3.73025641, + 3.28486804, 4.17564479, 5.51180993, 6.40258668, 6.84797506, + 4.62103317, 6.84797506, 6.84797506, 6.40258668, 6.84797506, + 6.40258668, 6.84797506, 6.84797506, 5.9571983 , 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 5.06642155, 6.84797506, + 6.84797506, 6.84797506, 5.9571983 , 6.84797506, 3.73025641, + 6.84797506, 6.84797506, 5.51180993, 6.40258668, 4.17564479, + 5.06642155, 6.84797506, 6.84797506, 4.17564479, 6.84797506, + 6.40258668, 6.84797506, 6.40258668, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 5.06642155, 6.84797506, + 6.84797506, 6.40258668, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 5.9571983 , 6.84797506, 4.62103317, 6.84797506, + 6.84797506, 6.84797506, 5.06642155, 6.40258668, 6.40258668, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.40258668, 5.06642155, 6.40258668, 6.84797506, 6.84797506, + 5.51180993, 6.84797506, 5.9571983 , 6.84797506, 6.84797506, + 6.84797506, 5.9571983 , 6.84797506, 6.40258668, 6.40258668, + 6.84797506, 6.84797506, 6.40258668, 6.84797506, 5.51180993, + 6.84797506, 5.51180993, 5.51180993, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 5.06642155, 4.62103317, 6.84797506, 6.40258668, 6.84797506, + 5.9571983 , 6.84797506, 6.84797506, 6.84797506, 5.06642155, + 6.84797506, 5.9571983 , 6.84797506, 5.06642155, 6.84797506, + 6.84797506, 5.06642155, 5.9571983 , 6.40258668, 6.84797506, + 4.62103317, 6.40258668, 6.84797506, 6.40258668, 5.9571983 , + 6.84797506, 4.62103317, 5.51180993, 5.06642155, 6.84797506, + 6.84797506, 6.40258668, 5.51180993, 6.84797506, 5.9571983 , + 6.84797506, 6.84797506, 6.84797506, 6.40258668, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 4.62103317, 6.84797506, + 6.40258668, 5.51180993, 5.9571983 , 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.40258668, 6.84797506, 6.84797506, + 5.51180993, 6.84797506, 6.84797506, 6.40258668, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 4.62103317, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.40258668, 6.84797506, 6.84797506, 6.84797506, + 6.40258668, 6.84797506, 5.06642155, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 5.51180993, 6.40258668, 6.84797506, + 5.9571983 , 5.9571983 , 6.84797506, 6.84797506, 6.84797506, + 4.62103317, 6.84797506, 5.9571983 , 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.40258668, 6.84797506, + 6.84797506, 6.84797506, 4.17564479, 6.40258668, 6.40258668, + 5.51180993, 6.84797506, 5.51180993, 6.84797506, 6.84797506, + 6.84797506, 4.62103317, 6.84797506, 4.17564479, 6.84797506, + 6.84797506, 5.51180993, 6.40258668, 5.06642155, 6.84797506, + 6.84797506, 6.84797506, 6.40258668, 6.84797506, 5.9571983 , + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 5.51180993, + 4.62103317, 6.84797506, 6.40258668, 6.84797506, 6.84797506, + 5.9571983 , 5.51180993, 5.9571983 , 6.84797506, 4.62103317, + 6.84797506, 6.84797506, 5.06642155, 6.40258668, 6.84797506, + 5.06642155, 5.9571983 , 6.84797506, 6.84797506, 6.40258668, + 6.40258668, 5.9571983 , 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 5.06642155, 6.84797506, 6.40258668, + 6.84797506, 5.06642155, 5.06642155, 5.9571983 , 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 5.06642155, + 6.84797506, 6.84797506, 6.84797506, 6.40258668, 6.84797506, + 5.9571983 , 6.84797506, 5.06642155, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.40258668, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.40258668, 6.84797506, + 3.73025641, 6.40258668, 5.51180993, 6.84797506, 5.51180993, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 5.06642155, 6.84797506, 6.40258668, 6.84797506, 6.84797506, + 6.84797506, 6.40258668, 6.84797506, 6.84797506, 6.84797506, + 6.40258668, 5.06642155, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.40258668, 6.84797506, 5.9571983 , 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 5.51180993, 5.06642155, + 6.84797506, 6.84797506, 6.84797506, 4.62103317, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 4.17564479, 6.84797506, + 5.51180993, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 3.73025641, 6.84797506, 6.40258668, 6.84797506, 6.84797506, + 6.84797506, 5.06642155, 6.84797506, 6.84797506, 4.62103317, + 6.40258668, 6.84797506, 5.51180993, 6.84797506, 6.84797506, + 5.9571983 , 6.84797506, 6.84797506, 6.84797506, 5.9571983 , + 5.06642155, 6.84797506, 5.06642155, 6.40258668, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.40258668, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 4.17564479, 5.51180993, 6.84797506, 6.84797506, + 6.40258668, 4.62103317, 6.84797506, 5.9571983 , 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 4.17564479, 6.40258668, 6.84797506, + 6.84797506, 5.9571983 , 6.84797506, 5.51180993, 6.84797506, + 5.9571983 , 5.06642155, 6.84797506, 6.84797506, 6.40258668, + 6.84797506, 6.84797506, 6.84797506, 6.40258668, 5.9571983 , + 5.51180993, 6.84797506, 5.9571983 , 6.40258668, 4.62103317, + 6.84797506, 5.06642155, 4.17564479, 5.51180993, 6.84797506, + 6.40258668, 5.9571983 , 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.40258668, 5.9571983 , 6.40258668, 6.84797506, + 5.9571983 , 6.84797506, 5.9571983 , 5.51180993, 4.17564479, + 5.9571983 , 6.40258668, 6.84797506, 5.51180993, 6.40258668, + 5.51180993, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.40258668, 6.84797506, 5.9571983 , 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 5.06642155, 5.9571983 , 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 5.06642155, + 6.84797506, 6.84797506, 6.84797506, 6.40258668, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 5.51180993, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 3.73025641, + 4.17564479, 6.84797506, 5.06642155, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 4.17564479, + 5.51180993, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 5.9571983 , 6.84797506, 6.84797506, 6.84797506, + 4.62103317, 6.84797506, 5.06642155, 5.06642155, 6.84797506, + 6.40258668, 5.9571983 , 6.84797506, 4.62103317, 6.84797506, + 6.84797506, 6.84797506, 5.9571983 , 6.84797506, 6.84797506, + 5.9571983 , 5.51180993, 6.84797506, 5.06642155, 6.84797506, + 4.62103317, 5.9571983 , 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 4.62103317, 6.84797506, + 6.84797506, 6.84797506, 5.51180993, 5.51180993, 6.84797506, + 6.84797506, 6.84797506, 5.9571983 , 6.40258668, 6.84797506, + 6.84797506, 5.51180993, 6.84797506, 6.84797506, 5.9571983 , + 5.51180993, 6.84797506, 6.84797506, 6.84797506, 4.17564479, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 5.9571983 , 6.84797506, 6.40258668, + 6.84797506, 6.84797506, 6.84797506, 6.40258668, 6.40258668, + 6.84797506, 6.84797506, 6.84797506, 4.62103317, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 3.73025641, + 6.84797506, 6.84797506, 6.84797506, 5.9571983 , 4.62103317, + 5.51180993, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.40258668, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 5.9571983 , 6.40258668, 6.84797506, + 5.51180993, 5.9571983 , 5.9571983 , 6.84797506, 6.84797506, + 5.51180993, 6.84797506, 6.84797506, 5.51180993, 6.40258668, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 5.51180993, + 6.40258668, 5.51180993, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 5.51180993, 6.84797506, 5.9571983 , 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 5.06642155, 6.84797506, + 6.84797506, 6.84797506, 6.40258668, 5.06642155, 5.51180993, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.40258668, 6.84797506, 6.84797506, 5.9571983 , 6.40258668, + 6.84797506, 6.84797506, 6.84797506, 6.40258668, 6.84797506, + 5.06642155, 4.17564479, 6.84797506, 6.84797506, 5.06642155, + 6.84797506, 6.84797506, 6.40258668, 6.84797506, 5.51180993, + 6.84797506, 6.84797506, 6.84797506, 4.17564479, 5.9571983 , + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 5.9571983 , + 5.51180993, 6.84797506, 6.40258668, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 5.9571983 , + 5.9571983 , 6.84797506, 5.9571983 , 4.17564479, 6.40258668, + 6.84797506, 6.84797506, 6.84797506, 6.40258668, 5.9571983 , + 5.51180993, 6.84797506, 5.51180993, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 5.51180993, 5.06642155, + 6.84797506, 6.40258668, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 6.84797506, 6.84797506, 5.51180993, 6.40258668, + 6.84797506, 6.84797506, 3.28486804, 5.9571983 , 6.84797506, + 3.73025641, 6.84797506, 6.84797506, 6.84797506, 4.17564479, + 6.84797506, 6.40258668, 6.40258668, 6.84797506, 5.51180993, + 6.84797506, 6.84797506, 6.84797506, 6.84797506, 6.84797506, + 6.84797506, 4.62103317, 6.40258668, 6.84797506, 6.40258668, + 5.06642155, 6.84797506, 6.84797506, 5.51180993, 4.62103317, + 6.84797506, 6.40258668, 6.84797506, 5.06642155, 5.9571983 , + 6.40258668, 5.51180993, 6.84797506, 6.84797506, 6.84797506, + 6.40258668, 6.84797506, 6.84797506, 4.17564479, 6.84797506, + 5.06642155, 6.84797506, 3.56230611, 4.89847125, 5.34385962, + 4.45308287, 5.789248 , 5.789248 , 5.789248 , 5.789248 , + 5.789248 , 5.34385962, 5.34385962, 5.789248 , 5.789248 , + 4.00769449, 5.34385962, 4.45308287, 5.789248 , 5.34385962, + 3.56230611, 2.67152936, 5.789248 , 5.34385962, 5.789248 , + 2.67152936, 5.789248 , 5.34385962, 3.56230611, 4.89847125, + 5.789248 , 3.11691773, 5.789248 , 5.789248 , 4.89847125, + 5.789248 , 3.56230611, 3.56230611, 5.789248 , 5.789248 , + 5.789248 , 4.89847125, 5.789248 , 4.89847125, 4.00769449, + 5.789248 , 3.56230611, 5.789248 , 2.22614098, 3.11691773, + 5.789248 , 5.789248 , 4.00769449, 3.11691773, 5.789248 , + 5.789248 , 5.789248 , 5.789248 , 5.789248 , 5.789248 , + 2.67152936, 5.789248 , 5.789248 , 4.00769449, 3.56230611, + 4.45308287, 5.789248 , 5.789248 , 4.89847125, 5.789248 , + 3.56230611, 5.789248 , 4.89847125, 2.67152936, 5.34385962, + 4.45308287, 5.789248 , 4.45308287, 5.789248 , 5.789248 , + 4.89847125, 4.45308287, 5.789248 , 5.789248 , 5.789248 , + 5.789248 , 5.789248 , 4.89847125, 5.789248 , 5.34385962, + 5.34385962, 5.789248 , 5.789248 , 3.56230611, 5.789248 , + 3.56230611, 5.789248 , 4.45308287, 5.789248 , 5.789248 , + 5.34385962, 5.789248 , 3.11691773, 5.789248 , 5.789248 , + 3.11691773, 4.00769449, 5.789248 , 5.789248 , 5.34385962, + 3.56230611, 3.11691773, 5.789248 , 4.45308287, 5.789248 , + 5.789248 , 5.789248 , 3.11691773, 5.789248 , 5.789248 , + 5.789248 , 5.789248 , 4.45308287, 5.789248 , 4.00769449, + 5.789248 , 4.45308287, 4.45308287, 5.789248 , 4.89847125, + 4.00769449, 4.00769449, 4.89847125, 4.00769449, 5.789248 , + 5.789248 , 5.789248 , 5.789248 , 5.789248 , 5.789248 , + 5.789248 , 5.34385962, 3.56230611, 5.789248 , 3.56230611, + 5.789248 , 5.789248 , 5.789248 , 2.67152936, 5.789248 , + 5.789248 , 5.789248 , 5.789248 , 4.89847125, 4.89847125, + 5.789248 , 2.67152936, 5.789248 , 4.89847125, 5.789248 , + 5.789248 , 4.45308287, 3.11691773, 5.789248 , 4.89847125, + 5.789248 , 2.67152936, 2.67152936, 5.34385962, 4.00769449, + 5.789248 , 5.789248 , 5.34385962, 5.789248 , 5.789248 , + 4.00769449, 5.789248 , 5.34385962, 4.89847125, 5.789248 , + 2.67152936, 5.34385962, 5.789248 , 5.789248 , 4.45308287, + 5.34385962, 5.789248 , 5.789248 , 5.789248 , 5.789248 , + 2.67152936, 5.789248 , 3.56230611, 4.00769449, 5.34385962, + 5.789248 , 3.11691773, 2.67152936, 5.789248 , 4.45308287, + 5.789248 , 3.56230611, 5.34385962, 4.89847125, 5.789248 , + 3.56230611, 4.00769449, 5.789248 , 3.11691773, 5.789248 , + 5.789248 , 3.56230611, 5.34385962, 4.89847125, 4.89847125, + 5.789248 , 5.789248 , 2.67152936, 3.11691773, 5.789248 , + 5.789248 , 5.789248 , 5.789248 , 5.34385962, 5.34385962, + 5.789248 , 5.789248 , 4.89847125, 5.789248 , 4.45308287, + 5.34385962, 5.789248 , 4.45308287, 4.45308287, 5.789248 , + 5.789248 , 3.56230611, 4.89847125, 3.56230611, 4.89847125, + 4.45308287, 5.789248 , 4.00769449, 5.789248 , 4.89847125, + 5.789248 , 5.789248 , 5.789248 , 4.45308287, 4.00769449, + 5.789248 , 4.89847125, 4.89847125, 3.56230611, 5.789248 , + 5.789248 , 5.34385962, 3.56230611, 3.11691773, 3.56230611, + 4.00769449, 5.789248 , 4.45308287, 4.89847125, 5.789248 , + 5.789248 , 5.789248 , 4.00769449, 4.89847125, 2.67152936, + 5.789248 , 5.789248 , 5.789248 , 4.89847125, 5.34385962, + 5.789248 , 5.789248 , 5.789248 , 5.789248 , 5.789248 , + 5.789248 , 5.789248 , 4.00769449, 5.34385962, 4.89847125, + 5.789248 , 4.89847125, 4.00769449, 5.789248 , 5.789248 , + 4.89847125, 5.789248 , 5.34385962, 5.789248 , 2.67152936, + 5.789248 , 5.34385962, 4.00769449, 4.00769449, 5.789248 , + 5.34385962, 3.56230611, 5.789248 , 4.89847125, 5.34385962, + 5.789248 , 4.00769449, 4.45308287, 5.789248 , 5.34385962, + 4.00769449, 3.56230611, 5.34385962, 2.67152936, 5.789248 , + 3.56230611, 4.89847125, 4.45308287, 5.789248 , 5.789248 , + 5.789248 , 5.789248 , 5.789248 , 4.00769449, 5.789248 , + 4.45308287, 5.789248 , 5.789248 , 5.34385962, 5.789248 , + 5.789248 , 5.789248 , 5.789248 , 5.34385962, 5.34385962, + 5.789248 , 5.34385962, 5.789248 , 5.789248 , 5.789248 , + 5.789248 , 5.34385962, 4.45308287, 5.789248 , 5.34385962, + 5.789248 , 5.34385962, 5.789248 , 5.789248 , 5.789248 , + 5.789248 , 4.45308287, 5.34385962, 3.56230611, 2.67152936, + 5.789248 , 5.789248 , 3.11691773, 5.789248 , 4.45308287, + 5.789248 , 5.789248 , 5.789248 , 5.789248 , 4.00769449, + 4.00769449, 4.00769449, 5.789248 , 5.789248 , 5.789248 , + 5.789248 , 4.89847125, 3.11691773, 4.45308287, 5.789248 , + 4.00769449, 5.789248 , 5.789248 , 5.789248 , 5.789248 , + 5.789248 , 4.00769449, 5.789248 , 5.789248 , 5.789248 , + 5.789248 , 4.00769449, 5.789248 , 4.00769449, 3.56230611, + 5.789248 , 4.89847125, 5.789248 , 5.789248 , 5.789248 , + 5.789248 , 5.789248 , 5.789248 , 5.789248 , 5.789248 , + 4.89847125, 5.34385962, 5.789248 , 5.789248 , 5.789248 , + 5.789248 , 5.789248 , 5.789248 , 5.789248 , 5.34385962, + 3.56230611, 5.34385962, 5.789248 , 3.56230611, 5.789248 , + 4.00769449, 5.789248 , 5.789248 , 5.789248 , 4.00769449, + 3.11691773, 5.789248 , 5.789248 , 4.00769449, 5.789248 , + 5.789248 , 5.789248 , 5.789248 , 5.789248 , 5.789248 , + 5.789248 , 5.789248 , 5.789248 , 5.789248 , 5.789248 , + 5.789248 , 5.789248 , 3.56230611, 5.789248 , 5.789248 , + 5.789248 , 5.789248 , 3.56230611, 5.34385962, 4.00769449, + 5.789248 , 4.89847125, 4.89847125, 4.00769449, 5.789248 , + 5.789248 , 4.45308287, 2.67152936, 5.789248 , 5.789248 , + 4.00769449, 5.789248 , 3.56230611, 4.00769449, 5.789248 , + 5.789248 , 4.89847125, 5.789248 , 4.45308287, 5.34385962, + 5.34385962, 3.11691773, 3.56230611, 5.789248 , 4.45308287, + 5.789248 , 4.89847125, 4.00769449, 4.89847125, 4.89847125, + 5.789248 , 5.789248 , 5.34385962, 4.00769449, 5.789248 , + 5.789248 , 5.789248 , 5.789248 , 5.789248 , 5.789248 , + 5.789248 , 3.56230611, 4.45308287, 4.00769449, 4.89847125, + 4.45308287, 3.56230611, 4.00769449, 5.789248 , 5.789248 , + 5.789248 , 5.789248 , 3.11691773, 5.789248 , 5.789248 , + 5.789248 , 5.789248 , 5.789248 , 4.00769449, 4.89847125, + 5.34385962, 3.56230611, 3.11691773, 5.789248 , 4.00769449, + 5.789248 , 3.56230611, 5.789248 , 5.789248 , 4.00769449, + 5.789248 , 4.00769449, 5.789248 , 5.789248 , 5.789248 , + 5.789248 , 4.89847125, 4.00769449, 4.89847125, 5.34385962, + 2.67152936, 5.789248 , 4.45308287, 5.789248 , 4.89847125, + 5.789248 , 5.34385962, 5.789248 , 5.789248 , 5.789248 , + 3.56230611, 2.67152936, 5.789248 , 5.789248 , 5.789248 , + 4.00769449, 4.89847125, 5.789248 , 5.34385962, 4.89847125, + 5.34385962, 5.789248 , 5.789248 , 5.34385962, 5.789248 , + 5.789248 , 5.789248 , 2.67152936, 5.34385962, 5.789248 , + 5.789248 , 4.89847125, 4.89847125, 5.34385962, 5.789248 , + 5.789248 , 4.45308287, 3.11691773, 3.56230611, 5.789248 , + 5.789248 , 5.789248 , 5.789248 , 5.789248 , 5.34385962, + 5.789248 , 5.789248 , 4.00769449, 4.89847125, 5.789248 , + 3.56230611, 5.789248 , 5.34385962, 2.67152936, 5.789248 , + 5.34385962, 5.789248 , 5.789248 , 5.789248 , 5.34385962, + 5.789248 , 5.789248 , 5.789248 , 5.789248 , 5.789248 , + 5.789248 , 4.45308287, 5.789248 , 3.11691773, 5.789248 , + 5.34385962, 4.89847125, 5.34385962, 5.789248 , 4.89847125, + 5.789248 , 4.00769449, 4.45308287, 5.789248 , 5.789248 , + 5.789248 , 5.789248 , 5.34385962, 5.789248 , 4.00769449, + 4.89847125, 4.00769449, 5.789248 , 3.56230611, 5.789248 , + 5.789248 , 5.789248 , 5.789248 , 3.56230611, 5.789248 , + 4.89847125, 5.789248 , 5.789248 , 5.789248 , 5.789248 , + 5.789248 , 5.789248 , 5.789248 , 5.789248 , 4.00769449, + 2.22614098, 5.789248 , 5.789248 , 5.789248 , 5.789248 , + 4.89847125, 5.789248 , 3.56230611, 5.789248 , 5.789248 , + 4.00769449, 5.789248 , 5.789248 , 5.789248 , 5.789248 , + 5.789248 , 5.789248 , 3.11691773, 3.11691773, 5.789248 , + 5.789248 , 5.789248 , 4.00769449, 5.789248 , 5.34385962, + 4.45308287, 5.34385962, 4.45308287, 4.45308287, 4.89847125, + 5.789248 , 4.89847125, 5.789248 , 3.56230611, 5.789248 , + 5.789248 , 5.789248 , 5.789248 , 5.789248 , 3.11691773, + 5.789248 , 4.00769449, 5.789248 , 4.89847125, 5.789248 , + 4.00769449, 5.789248 , 5.789248 , 5.789248 , 5.789248 , + 5.789248 , 5.34385962, 5.789248 , 4.45308287, 5.34385962, + 4.45308287, 5.789248 , 4.00769449, 5.789248 , 3.56230611, + 5.34385962, 5.789248 , 5.789248 , 4.45308287, 4.00769449, + 3.56230611, 5.789248 , 5.789248 , 5.789248 , 4.45308287, + 5.789248 , 5.789248 , 5.34385962, 4.89847125, 4.45308287, + 3.11691773, 5.789248 , 3.56230611, 3.11691773, 5.789248 , + 5.789248 , 3.11691773, 3.11691773, 5.789248 , 4.45308287, + 4.45308287, 5.789248 , 5.789248 , 4.00769449, 4.00769449, + 3.56230611, 5.789248 , 4.00769449, 3.56230611, 5.789248 , + 4.00769449, 5.34385962, 5.789248 , 3.56230611, 5.789248 , + 5.34385962, 5.789248 , 4.45308287, 4.00769449, 5.789248 , + 5.789248 , 4.45308287, 5.34385962, 5.789248 , 5.789248 , + 5.789248 , 5.789248 , 5.789248 , 5.789248 , 5.34385962, + 3.11691773, 5.34385962, 2.67152936, 4.00769449, 5.789248 , + 3.56230611, 5.789248 , 5.34385962, 5.789248 , 2.67152936, + 5.789248 , 5.789248 , 5.789248 , 5.789248 , 3.11691773, + 5.789248 , 5.34385962, 3.56230611, 4.45308287, 4.89847125, + 4.00769449, 5.789248 , 5.789248 , 5.34385962, 4.00769449, + 4.89847125, 4.45308287, 5.789248 , 5.789248 , 5.789248 , + 5.789248 , 5.789248 , 4.00769449, 5.789248 , 5.789248 , + 5.789248 , 5.789248 , 5.789248 , 5.789248 , 5.34385962, + 3.56230611, 5.789248 , 5.789248 , 5.34385962, 5.789248 , + 3.11691773, 5.789248 , 4.89847125, 5.789248 , 4.89847125, + 5.789248 , 5.34385962, 5.789248 , 5.789248 , 5.789248 , + 5.789248 , 5.34385962, 2.67152936, 5.789248 , 5.789248 , + 2.67152936, 3.56230611, 5.789248 , 5.789248 , 2.67152936, + 4.45308287, 3.56230611, 4.45308287, 5.789248 , 5.789248 , + 5.789248 , 5.789248 , 5.789248 , 5.789248 , 4.45308287, + 4.89847125, 5.34385962, 5.789248 , 5.789248 , 5.789248 , + 5.789248 , 5.34385962, 4.00769449, 5.789248 , 5.34385962, + 5.789248 , 2.67152936, 2.67152936, 5.789248 , 3.56230611, + 5.789248 , 3.56230611, 5.789248 , 4.45308287, 2.67152936, + 5.789248 , 5.789248 , 2.67152936, 4.89847125, 5.789248 , + 5.789248 , 3.11691773, 5.789248 , 4.00769449, 5.789248 , + 5.789248 , 3.11691773, 4.00769449, 4.89847125, 4.89847125, + 5.789248 , 4.00769449, 4.45308287, 5.789248 , 4.45308287, + 5.789248 , 3.11691773, 4.45308287, 4.89847125, 3.56230611, + 5.789248 , 5.789248 , 3.56230611, 3.56230611, 3.56230611, + 5.789248 , 5.789248 , 4.00769449, 4.00769449, 3.11691773, + 5.789248 , 5.789248 , 2.67152936, 4.00769449, 5.789248 , + 2.67152936, 3.56230611, 3.56230611, 4.45308287, 5.789248 , + 3.56230611, 5.789248 , 5.789248 , 5.789248 , 5.789248 , + 5.789248 , 5.789248 , 5.34385962, 5.789248 , 5.789248 , + 5.789248 , 5.789248 , 5.789248 , 5.789248 , 5.789248 , + 5.789248 , 4.89847125, 5.789248 , 5.789248 , 4.89847125, + 5.789248 , 5.789248 , 4.89847125, 4.89847125, 5.789248 , + 5.34385962, 4.45308287, 5.789248 , 4.89847125, 4.00769449, + 4.45308287, 5.789248 , 2.67152936, 4.45308287, 5.34385962, + 5.789248 , 5.789248 , 5.789248 , 5.789248 , 3.11691773, + 5.34385962, 5.789248 , 4.89847125, 5.789248 , 4.45308287, + 5.789248 , 5.789248 , 4.89847125, 4.45308287, 5.789248 , + 5.789248 , 5.789248 , 5.789248 , 5.789248 , 4.45308287, + 4.45308287, 3.11691773, 4.89847125, 5.789248 , 3.11691773, + 3.11691773, 5.789248 , 4.00769449, 5.34385962, 3.11691773, + 4.89847125, 3.11691773, 3.56230611, 4.89847125, 5.789248 , + 5.789248 , 4.45308287, 4.89847125, 5.789248 , 4.45308287, + 5.789248 , 4.89847125, 4.45308287, 2.67152936, 5.789248 , + 5.789248 , 5.789248 , 4.89847125, 5.789248 , 5.789248 , + 5.789248 , 5.789248 , 4.89847125, 5.34385962, 4.45308287, + 5.789248 , 4.00769449, 3.56230611, 4.89847125, 5.789248 , + 4.45308287, 5.789248 , 5.789248 , 3.11691773, 5.789248 , + 5.34385962, 5.789248 , 5.789248 , 5.789248 , 3.56230611, + 2.22614098, 5.789248 , 5.789248 , 3.56230611, 5.34385962, + 4.00769449, 5.789248 , 2.67152936, 5.789248 , 4.00769449, + 5.789248 , 5.789248 , 4.00769449, 2.67152936, 5.789248 , + 4.89847125, 4.45308287, 5.789248 , 5.34385962, 5.789248 , + 5.789248 , 4.45308287, 5.789248 , 5.789248 , 5.789248 , + 4.00769449, 4.89847125, 5.789248 , 4.89847125, 5.789248 , + 4.89847125, 3.56230611, 4.00769449, 5.789248 , 5.789248 , + 5.789248 , 5.34385962, 5.789248 , 5.789248 , 5.34385962, + 5.789248 , 5.789248 , 5.789248 , 5.789248 , 5.789248 , + 5.789248 , 5.789248 , 5.789248 , 5.789248 , 5.789248 , + 3.56230611, 3.56230611, 4.00769449, 5.789248 , 4.45308287, + 3.56230611, 5.789248 , 4.89847125, 4.89847125, 3.11691773, + 4.00769449, 5.789248 , 5.34385962, 5.789248 , 5.789248 , + 5.789248 , 5.789248 , 4.45308287, 5.34385962, 4.45308287, + 5.789248 , 3.11691773, 5.789248 , 4.45308287, 4.45308287, + 4.89847125, 5.789248 , 4.89847125, 4.45308287, 5.789248 , + 5.34385962, 3.56230611, 3.56230611, 5.34385962, 5.789248 , + 4.00769449, 5.34385962, 4.45308287, 4.45308287, 3.56230611, + 5.789248 , 4.00769449, 5.789248 , 5.789248 , 4.89847125, + 5.34385962, 3.11691773, 4.00769449, 5.789248 , 5.34385962, + 5.789248 , 5.789248 , 5.34385962, 5.789248 , 4.45308287, + 5.34385962, 4.89847125, 5.789248 , 5.789248 , 5.34385962, + 3.56230611, 5.789248 , 5.789248 , 5.789248 , 5.34385962, + 5.34385962, 5.789248 , 3.11691773, 5.789248 , 5.789248 , + 3.56230611, 5.789248 , 5.789248 , 5.789248 , 4.45308287, + 5.789248 , 4.89847125, 5.789248 , 5.789248 , 5.789248 , + 4.00769449, 4.45308287, 5.34385962, 5.789248 , 3.56230611, + 4.00769449, 5.34385962, 4.45308287, 5.789248 , 5.34385962, + 5.34385962, 2.67152936, 5.789248 , 5.789248 , 5.789248 , + 5.789248 , 5.789248 , 5.34385962, 5.789248 , 4.89847125, + 5.789248 , 5.789248 , 5.789248 , 4.45308287, 5.789248 , + 3.11691773, 4.00769449, 5.789248 , 5.789248 , 5.34385962, + 5.789248 , 5.789248 , 5.789248 , 5.789248 , 5.789248 , + 5.789248 , 5.789248 , 2.22614098, 5.789248 , 4.00769449, + 5.34385962, 4.89847125, 5.789248 , 5.789248 , 4.00769449, + 5.789248 , 3.56230611, 2.67152936, 5.789248 , 3.56230611, + 2.67152936, 4.89847125, 5.789248 , 5.789248 , 5.789248 , + 4.45308287, 5.789248 , 4.89847125, 4.00769449, 2.67152936, + 4.89847125, 5.789248 , 2.22614098, 3.56230611, 4.45308287, + 5.34385962, 5.34385962, 3.11691773, 4.45308287, 4.45308287, + 3.11691773, 4.45308287, 5.34385962, 4.45308287, 5.34385962, + 4.00769449, 4.45308287, 5.789248 , 5.789248 , 5.789248 , + 5.789248 , 4.00769449, 5.789248 , 5.789248 , 5.789248 , + 4.45308287, 5.789248 , 5.789248 , 5.789248 , 4.00769449, + 5.34385962, 4.00769449, 4.45308287, 4.89847125, 4.00769449, + 5.789248 , 5.789248 , 5.789248 , 2.67152936, 5.789248 , + 5.789248 , 5.789248 , 5.789248 , 5.789248 , 5.789248 , + 5.789248 , 4.00769449, 3.11691773, 5.34385962, 4.89847125, + 5.34385962]) + + +class Committee(object): + def __init__(self): + self.resids = np.array([[ -5.04950800e-01, -6.29721800e-01, + -8.35499100e+01, + -1.30628500e+00, -6.62028600e+00], + [ -2.34152200e-01, -2.55423500e-01, -2.16830700e+02, + -7.58866000e-01, -7.18370200e+00], + [ 1.02423700e+00, 7.98775800e-01, 4.83736300e+02, + 2.50351500e+00, 2.25135300e+01], + [ -2.85061700e-01, -3.17796600e-01, -7.04115100e+04, + -2.37991800e+00, -1.41745600e+02], + [ 2.09902500e-01, 1.96787700e-01, 2.24751400e+03, + 9.51945500e-01, 2.17724200e+01], + [ -4.03483500e-01, -4.75741500e-01, -1.95633600e+04, + -2.63502600e+00, -8.89461400e+01], + [ -1.64413400e-01, -1.74401100e-01, -1.73310300e+04, + -1.16235500e+00, -5.34213500e+01], + [ -4.29607700e-01, -5.13466700e-01, -5.30037000e+03, + -2.24496200e+00, -4.78260300e+01], + [ 3.23713000e-01, 2.94184600e-01, 4.11079400e+03, + 1.48684400e+00, 3.65598400e+01], + [ 1.50367200e-01, 1.43429400e-01, 7.28532100e+03, + 8.85542900e-01, 3.31355000e+01], + [ 4.21288600e-01, 3.73428000e-01, 1.37315700e+03, + 1.52133200e+00, 2.41570200e+01], + [ 4.50658700e-01, 3.96586700e-01, 1.70146900e+03, + 1.66177900e+00, 2.78032600e+01], + [ 2.43537500e-01, 2.26174000e-01, 3.18402300e+03, + 1.13656200e+00, 2.79073400e+01], + [ 1.05182900e+00, 8.16205400e-01, 6.00135200e+03, + 3.89079700e+00, 7.97131300e+01], + [ -5.54450300e-01, -7.12749000e-01, -2.09485200e+03, + -2.45496500e+00, -3.42189900e+01], + [ -6.05750600e-01, -8.06411100e-01, -2.74738200e+02, + -1.90774400e+00, -1.30510500e+01], + [ -3.41215700e-01, -3.90244600e-01, -6.31138000e+02, + -1.27022900e+00, -1.47600100e+01], + [ 2.21898500e-01, 2.07328700e-01, 6.91135800e+02, + 8.16876400e-01, 1.24392900e+01], + [ 2.45592500e-01, 2.26639200e-01, 1.99250600e-01, + 2.57948300e-01, 2.74723700e-01], + [ -7.58952600e-01, -1.15300800e+00, -2.56739000e+02, + -2.40716600e+00, -1.41474200e+01]]) + self.null_deviance = 27.81104693643434 # from R, Rpy bug + self.params = np.array([-0.0268147 , 1.25103364, 2.91070663, + -0.34799563, 0.00659808, -0.31303026, -6.44847076]) + self.bse = np.array([ 1.99956263e-02, 4.76820254e-01, + 6.48362654e-01, 4.17956107e-01, 1.41512690e-03, 1.07770186e-01, + 1.99557656e+00]) + self.aic_R = 216.66573352377935 + self.aic_Stata = 10.83328660860436 + self.deviance = 5.615520158267981 + self.scale = 0.38528595746569905 + self.llf = -101.33286676188968 # from R + self.llf_Stata = -101.3328660860436 # same as R + self.bic_Stata = -33.32900074962649 + self.chi2 = 5.008550263545408 + self.df_model = 6 + self.df_resid = 13 + self.fittedvalues = np.array([12.62019383, 30.18289514, 21.48377849, + 496.74068604, + 103.23024673, 219.94693494, 324.4301163 , 110.82526477, + 112.44244488, 219.86056381, 56.84399998, 61.19840382, + 114.09290269, 75.29071944, 61.21994387, 21.05130889, + 42.75939828, 55.56133536, 0.72532053, 18.14664665]) + +class Wfs(object): + """ + Wfs used for TestGlmPoissonOffset + + Results are from Stata and R. + """ + def __init__(self): + + self.resids = glm_test_resids.wfs_resids + self.null_deviance = 3731.85161919 # from R + self.params = [.9969348, 1.3693953, 1.6137574, 1.7849111, 1.9764051, + .11241858, .15166023, .02297282, -.10127377, -.31014953, + -.11709716] + self.bse = [.0527437, .0510688, .0511949, .0512138, .0500341, + .0324963, .0283292, .0226563, .0309871, .0552107, .0549118] + self.aic_R = 522.14215776 # R adds 2 for dof to AIC + self.aic_Stata = 7.459173652869477 # stata divides by nobs +# self.deviance = 70.6652992116034 # from Stata + self.deviance = 70.665301270867 # from R + self.scale = 1.0 + self.llf = -250.0710778504317 # from Stata, ours with scale=1 + self.bic_Stata = -179.9959200693088 # no bic in R? + self.df_model = 10 + self.df_resid = 59 + self.chi2 = 2699.138063147485 #TODO: taken from Stata not available + # in sm yet + self.fittedvalues = [7.11599,19.11356,33.76075,33.26743,11.94399, + 27.49849,35.07923,37.22563,64.18037,108.0408,100.0948,35.67896, + 24.10508,73.99577,52.2802,38.88975,35.06507,102.1198,107.251, + 41.53885,196.3685,335.8434,205.3413,43.20131,41.98048,96.65113, + 63.2286,30.78585,70.46306,172.2402,102.5898,43.06099,358.273, + 549.8983,183.958,26.87062,62.53445,141.687,52.47494,13.10253, + 114.9587,214.803,90.33611,18.32685,592.5995,457.4376,140.9273, + 3.812064,111.3119,97.62744,57.48056,19.43552,130.4872, + 151.7268,69.67963,13.04879,721.728,429.2136,128.2132,9.04735, + 301.7067,177.3487,46.40818,4.707507,330.4211,330.7497,84.38604, + 1456.757,451.005,67.51025] + +class CpunishTweediePower15(object): + """ + # From R + setwd('c:/workspace') + data <- read.csv('cpunish.csv', sep=",") + + library(statmod) + library(tweedie) + + summary(glm(EXECUTIONS ~ INCOME + SOUTH - 1, + family=tweedie(var.power=1.5, link.power=1), + data=data)) + """ + def __init__(self): + + resid_resp = [28.90498242, 0.5714367394, 4.3135711827, -3.7417822942, + -4.9544111888, 0.4666602184, 0.0747051827, -6.114236142, + -1.0048540116, -6.9747602544, -0.7626907093, + -0.5688093336, -6.9845579527, -1.1594503855, + -0.6365453438, -0.3994222036, -0.732355528] + resid_dev = [3.83881147757395, 0.113622743768915, 2.01981988071128, + -0.938107751845672, -1.29607304923555, 0.316205676540778, + 0.045273675744568, -1.69968893354602, -0.699080227540624, + -2.1707839733642, -0.568738719015137, -0.451266938413727, + -2.17218106358745, -0.774613533242944, -0.493831656345955, + -0.336453094366771, -0.551210030548659] + resid_pear = [6.02294407053171, 0.115516970886608, 2.9148208139849, + -0.806210703943481, -1.04601155367613, 0.338668788938945, + 0.045708693925888, -1.27176471794657, -0.5964031365026, + -1.46974255264233, -0.498557360800493, + -0.405777068096011, -1.47045242302365, -0.65086941662954, + -0.439928270112046, -0.310433407220704, + -0.485001313250992] + resid_work = [28.9049727916181, 0.571427719513967, 4.31357425907762, + -3.74179256698823, -4.9544210736226, 0.466663015515745, + 0.0747086948013966, -6.114245735344, -1.00485035431368, + -6.97477010217068, -0.76268749374494, -0.568806471745149, + -6.98456778258272, -1.15944644619981, -0.636542358439925, + -0.399419650775458, -0.732352367853816] + self.resid_response = resid_resp + self.resid_deviance = resid_dev + self.resid_pearson = resid_pear + self.resid_working = resid_work + # self.null_deviance = 3731.85161919 # N/A + self.params = [0.0000471043, 6.4721324886] + self.bse = [0.0000246888, 3.5288126173] + # self.aic_R = 522.14215776 # R adds 2 for dof to AIC + # self.aic_Stata = 7.459173652869477 # stata divides by nobs +# self.deviance = 70.6652992116034 # from Stata + self.deviance = 36.087307138233 # from R + # self.scale = 1.0 + # self.llf = -250.0710778504317 # from Stata, ours with scale=1 + # self.bic_Stata = -179.9959200693088 # no bic in R? + self.df_model = 1 + self.df_resid = 15 + # self.chi2 = 2699.138063147485 #TODO: taken from Stata not available + # in sm yet + self.fittedvalues = [8.09501758000751, 8.42856326056927, + 1.68642881732415, 7.74178229423817, + 7.95441118875248, 1.53333978161934, + 1.92529481734232, 8.11423614202829, + 2.00485401159015, 7.97476025442155, + 1.76269070926448, 1.56880933358418, + 7.98455795270665, 2.15945038549266, + 1.63654534384372, 1.39942220361664, + 1.73235552803559] + +class CpunishTweediePower2(object): + """ + # From R + setwd('c:/workspace') + data <- read.csv('cpunish.csv', sep=",") + + library(statmod) + library(tweedie) + + summary(glm(EXECUTIONS ~ INCOME + SOUTH - 1, + family=tweedie(var.power=2, link.power=1), + data=data)) + """ + def __init__(self): + resid_resp = [28.9397568116168, 0.605199215492085, 4.30845487128123, + -3.7059362524505, -4.91921022348665, 0.46200835064931, + 0.068864196242604, -6.07952005594693, -1.01093636580438, + -6.9396210244365, -0.768038385056284, -0.573568809339664, + -6.94944844711606, -1.16600175635393, -0.641510318056987, + -0.403667790321936, -0.737611172529194] + resid_dev = [2.03295746713119, 0.0704291140028282, 1.60058476017728, + -0.591230836989137, -0.836067997150736, 0.274690511542166, + 0.0352446721149477, -1.13465831620614, -0.625909330466303, + -1.5477830210949, -0.520517540529698, -0.421531194473357, + -1.54848147513823, -0.684927882583903, -0.45784673829438, + -0.320960880764019, -0.505992145923248] + resid_pear = [3.59043221590711, 0.0720921473930558, 2.54705286789752, + -0.480919661289957, -0.621174344999372, + 0.300397177607798, 0.0356599448410699, + -0.752460543924524, -0.502719222246499, + -0.874049404005278, -0.434401419984914, + -0.364501892726482, -0.874205109115113, + -0.538319857282425, -0.390804925805356, + -0.287580717535275, -0.424497254731367] + resid_work = [28.9397568116168, 0.605199215492085, 4.30845487128123, + -3.7059362524505, -4.91921022348665, 0.46200835064931, + 0.068864196242604, -6.07952005594693, -1.01093636580438, + -6.9396210244365, -0.768038385056284, -0.573568809339664, + -6.94944844711606, -1.16600175635393, -0.641510318056987, + -0.403667790321936, -0.737611172529194] + self.resid_response = resid_resp + self.resid_deviance = resid_dev + self.resid_pearson = resid_pear + self.resid_working = resid_work + # self.null_deviance = 3731.85161919 # N/A + self.params = [4.72472244209477e-05, 6.43243456540827] + self.bse = [1.86839521185429e-05, 3.83231672422612] + # self.aic_R = 522.14215776 # R adds 2 for dof to AIC + # self.aic_Stata = 7.459173652869477 # stata divides by nobs +# self.deviance = 70.6652992116034 # from Stata + self.deviance = 15.7840685407599 # from R + # self.scale = 1.0 + # self.llf = -250.0710778504317 # from Stata, ours with scale=1 + # self.bic_Stata = -179.9959200693088 # no bic in R? + self.df_model = 1 + self.df_resid = 15 + # self.chi2 = 2699.138063147485 #TODO: taken from Stata not available + # in sm yet + self.fittedvalues = [8.06024318838318, 8.39480078450791, + 1.69154512871877, 7.7059362524505, + 7.91921022348665, 1.53799164935069, + 1.9311358037574, 8.07952005594693, + 2.01093636580438,7.9396210244365, + 1.76803838505628, 1.57356880933966, + 7.94944844711606, 2.16600175635393, + 1.64151031805699, 1.40366779032194, + 1.73761117252919] + +class CpunishTweedieLog1(object): + """ + # From R + setwd('c:/workspace') + data <- read.csv('cpunish.csv', sep=",") + + library(statmod) + library(tweedie) + + summary(glm(EXECUTIONS ~ INCOME + SOUTH - 1, + family=tweedie(var.power=1, link.power=0), + data=data)) + """ + def __init__(self): + resid_resp = [28.7231009386298, -0.307318358456484, 4.19015460156576, + -3.30975297068573, -4.87746969906705, 0.285041779927669, + 0.0315071085472043, -6.33304532673002, -1.02436294926752, + -6.9340610414309, -0.859055122126197, -0.736490247380883, + -6.96145354225969, -1.13750232106315, -0.778363801217565, + -0.636042191521576, -0.839322392162821] + resid_dev = [7.30513948467594, -0.101296157943519, 2.44987904003561, + -1.34021826264378, -1.99062116973315, 0.212014827300475, + 0.0223969676885324, -2.63775728156667, -0.798884085657077, + -3.11862021596631, -0.691356293575324, -0.607658243497501, + -3.12628915913493, -0.869326536299756, -0.636663290048755, + -0.536212950673418, -0.67812263418512] + resid_pear = [9.98383729954486, -0.100734032611758, 3.11465040934513, + -1.22417704160631, -1.73780566805242, 0.217661565866984, + 0.0224564769560215, -2.19386916576256, + -0.719962160947025, -2.46172701579962, + -0.630049829146329, -0.558895774299477, + -2.4671965358931, -0.778034748813176, + -0.583676657782738, -0.497265896656757, + -0.61887064145702] + resid_work = [3.47027319357873, -0.0330190014589175, 2.31520029566659, + -0.452785885372436, -0.619167053050639, + 0.166209168591668, 0.0160057009522403, + -0.759991705123147, -0.506017436072008, + -0.873961141113221, -0.46209233491888, + -0.424125760851072, -0.874394795536774, + -0.532164250702372, -0.437685360377137, + -0.388768819543728, -0.456321521305397] + self.resid_response = resid_resp + self.resid_deviance = resid_dev + self.resid_working = resid_work + self.resid_pearson = resid_pear + # self.null_deviance = 3731.85161919 # N/A + self.params = [1.65700638623525e-05, 1.54257997850499] + self.bse = [1.81044999017907e-05, 0.725739640176733] + # self.aic_R = 522.14215776 # R adds 2 for dof to AIC + # self.aic_Stata = 7.459173652869477 # stata divides by nobs +# self.deviance = 70.6652992116034 # from Stata + self.deviance = 95.0325613464258 # from R + # self.scale = 1.0 + # self.llf = -250.0710778504317 # from Stata, ours with scale=1 + # self.bic_Stata = -179.9959200693088 # no bic in R? + self.df_model = 1 + self.df_resid = 15 + # self.chi2 = 2699.138063147485 #TODO: taken from Stata not available + # in sm yet + self.fittedvalues = [8.27689906137016, 9.30731835845648, + 1.80984539843424, 7.30975297068573, + 7.87746969906705, 1.71495822007233, + 1.9684928914528, 8.33304532673002, + 2.02436294926752, 7.9340610414309, + 1.8590551221262, 1.73649024738088, + 7.96145354225969, 2.13750232106315, + 1.77836380121756, 1.63604219152158, + 1.83932239216282] + + +class FairTweedieLog15(object): + """ + # From R + setwd('c:/workspace') + data <- read.csv('fair.csv', sep=",") + + library(statmod) + library(tweedie) + + model <- glm(affairs ~ rate_marriage + age + yrs_married -1, data=data, + family=tweedie(var.power=1.5, link.power = 0)) + r <- resid(model, type='response') + paste(as.character(r[1:17]), collapse=",") + r <- resid(model, type='deviance') + paste(as.character(r[1:17]), collapse=",") + r <- resid(model, type='pearson') + paste(as.character(r[1:17]), collapse=",") + r <- resid(model, type='working') + paste(as.character(r[1:17]), collapse=",") + paste(as.character(model$coefficients[1:17]), collapse=",") + s <- summary(model) + paste(as.character(sqrt(diag(s$cov.scaled))), collapse=",") + s$deviance + paste(as.character(model$fitted.values[1:17]), collapse=",") + """ + def __init__(self): + resid_resp = [-0.997868449815039, 2.69283106662728, 0.677397439981157, + 0.220024942629269, 4.30244966465517, 4.12917275616972, + 0.669303122309246, 1.64321562230925, 3.73361710426128, + 0.271937359562684, 1.70030700747884, 1.55430573164611, + -0.263723852468304, 1.51263973164611, 2.75223392654071, + 0.310487741565721, 1.28077676333896 , -0.722602160018842] + resid_dev = [-1.40274708439925, 2.48476334070913, 0.722690630291423, + 0.333179337353702, 4.00781035212304, 3.33344591331998, + 1.51543361886727, 2.82502498800952, 2.2795411865605, + 0.245239170945663, 0.993721205729013, 1.74920359743562, + -0.363141475997386, 1.71412357710318, 2.57445879456298, + 0.279858474280908, 1.22953362433333, -1.84397406923697] + resid_pear = [-0.923380371255914, 4.28706294677515, 0.864309147553743, + 0.366063826152319, 9.17690493704408, 6.57783985712941, + 2.39340023647571, 5.87607098775551, 3.55791152198837, + 0.260052421285998, 1.21439278430259, 2.66470328868695, + -0.327698246542009, 2.59327105694137, 4.53096038849505, + 0.299198418236691, 1.6399313081981, -0.921987034618483] + resid_work = [-0.899807800767353, 5.00583784559752, 0.937441759049674, + 0.433762277766879, 11.8128959278604, 7.6822784352496, + 3.65998654763585, 8.98568506862295, 3.50120010377224, + 0.256207345500911, 1.08551656668241, 3.18923357641756, + -0.352302468597673, 3.10374035363038, 5.35005901385941, + 0.29552727652976, 1.78077778644209, -1] + self.resid_response = resid_resp + self.resid_deviance = resid_dev + self.resid_working = resid_work + self.resid_pearson = resid_pear + # self.null_deviance = 3731.85161919 # N/A + self.params = [-0.389168171340452, 0.0670222370664611, + -0.0970852004566712] + self.bse = [0.0323435784513691, 0.0063805300018014, + 0.00893580175352525] + # self.aic_R = 522.14215776 # R adds 2 for dof to AIC + # self.aic_Stata = 7.459173652869477 # stata divides by nobs +# self.deviance = 70.6652992116034 # from Stata + self.deviance = 20741.82 # from R + # self.scale = 1.0 + # self.llf = -250.0710778504317 # from Stata, ours with scale=1 + # self.bic_Stata = -179.9959200693088 # no bic in R? + self.df_model = 2 + self.df_resid = 6363 + # self.chi2 = 2699.138063147485 #TODO: taken from Stata not available + # in sm yet + self.fittedvalues = [1.10897954981504, 0.537938133372725, + 0.722602160018842, 0.507247757370731, + 0.364216335344828, 0.537493243830281, + 0.182870377690754, 0.182870377690754, + 1.06638209573872, 1.06139564043732, + 1.56635749252116, 0.487360268353893, + 0.748572252468304, 0.487360268353893, + 0.514430573459285, 1.05062295843428, + 0.71922323666104, 0.722602160018842] diff --git a/statsmodels/genmod/tests/results/results_glm_poisson_weights.py b/statsmodels/genmod/tests/results/results_glm_poisson_weights.py new file mode 100644 index 0000000..4ba40b1 --- /dev/null +++ b/statsmodels/genmod/tests/results/results_glm_poisson_weights.py @@ -0,0 +1,2345 @@ +import numpy as np + +est = dict( + deviance = 18.59164098607571, + dispers = 1.859164098607571, + deviance_s = 18.59164098607571, + dispers_s = 1.859164098607571, + deviance_p = 24.75374834715614, + dispers_p = 2.475374834715614, + deviance_ps = 24.75374834715614, + dispers_ps = 2.475374834715614, + bic = -9.740492454486454, + nbml = 0, + N = 17, + ic = 3, + k = 7, + k_eq = 1, + k_dv = 1, + converged = 1, + k_autoCns = 0, + ll = -31.92732830809848, + chi2 = 128.8021169250575, + p = 2.29729497374e-25, + rc = 0, + aic = 4.579685683305704, + rank = 7, + canonical = 1, + power = 0, + df_m = 6, + df = 10, + vf = 1, + phi = 1, + k_eq_model = 0, + properties = "b V", + depvar = "executions", + which = "max", + technique = "nr", + singularHmethod = "m-marquardt", + ml_method = "e2", + crittype = "log likelihood", + user = "glim_lf", + title = "Generalized linear models", + opt = "moptimize", + chi2type = "Wald", + link = "glim_l03", + varfunc = "glim_v3", + m = "1", + a = "1", + oim = "oim", + opt1 = "ML", + varfuncf = "u", + varfunct = "Poisson", + linkf = "ln(u)", + linkt = "Log", + vce = "oim", + vcetype = "OIM", + hac_lag = "15", + marginsok = "default", + marginsnotok = "stdp Anscombe Cooksd Deviance Hat Likelihood Pearson Response Score Working ADJusted STAndardized STUdentized MODified", + predict = "glim_p", + cmd = "glm", + cmdline = "glm executions income perpoverty perblack LN_VC100k96 south degree, family(poisson)", + ) + +params_table = np.array([ + .00026110166569, .00005187148786, 5.0336259178483, 4.812884279e-07, + .00015943541766, .00036276791372, np.nan, 1.9599639845401, + 0, .07781804809828, .07940260798777, .98004398180811, + .32706440886796, -.0778082038363, .23344430003287, np.nan, + 1.9599639845401, 0, -.09493110013466, .02291930335216, + -4.1419714498302, .00003443332141, -.13985210925565, -.05001009101367, + np.nan, 1.9599639845401, 0, .29693462055586, + .43751760764129, .67868038993144, .49734039404176, -.5605841330232, + 1.1544533741349, np.nan, 1.9599639845401, 0, + 2.3011832004524, .42838381728481, 5.3717790159251, 7.796361708e-08, + 1.4615663470144, 3.1408000538904, np.nan, 1.9599639845401, + 0, -18.722067603077, 4.2839791307242, -4.3702518223781, + .00001241033322, -27.118512409818, -10.325622796337, np.nan, + 1.9599639845401, 0, -6.8014789919532, 4.146873025502, + -1.6401464308471, .10097472438129, -14.929200770398, 1.3262427864914, + np.nan, 1.9599639845401, 0]).reshape(7,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +cov = np.array([ + 2.690651253e-09, 1.942168909e-06, 9.445812833e-08, 4.703695025e-06, + -6.082922480e-06, -.00008108248895, -.00013492774575, 1.942168909e-06, + .00630477415526, .00017467012687, .00328093520848, -.01768604570302, + .11117887243846, -.19441636422025, 9.445812833e-08, .00017467012687, + .00052529446615, -.00313545508833, -.00516707569472, -.03253594627601, + .01688876616272, 4.703695025e-06, .00328093520848, -.00313545508833, + .19142165699616, -.00179497953339, .30391667530759, -1.4489146451821, + -6.082922480e-06, -.01768604570302, -.00516707569472, -.00179497953339, + .18351269491151, .3016848477378, .36484063612427, -.00008108248895, + .11117887243846, -.03253594627601, .30391667530759, .3016848477378, + 18.352477192481, -4.0741043266703, -.00013492774575, -.19441636422025, + .01688876616272, -1.4489146451821, .36484063612427, -4.0741043266703, + 17.196555889636]).reshape(7,7) + +cov_colnames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +cov_rownames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +infocrit = np.array([ + 17, np.nan, -31.927328308098, 7, + 77.854656616197, 83.68715002459]) + +infocrit_colnames = 'N ll0 ll df AIC BIC'.split() + +infocrit_rownames = '.'.split() + +predicted = np.array([ + 35.226364135742, .16681243479252, .98022246360779, 8.1965742111206, + .33106967806816, .89840310811996, 1.3118965625763, .29945519566536, + .11764223873615, 3.6862981319427, .35516858100891, .46500706672668, + 2.0823004245758, .3434439599514, .24561515450478, 1.0650315284729, + .62310123443604, .41350400447845, 1.9260421991348, .40797635912895, + .32057955861092, 2.4171404838562, .36215576529503, .31702440977097, + 1.8473218679428, .3869916498661, .27665960788727, 2.8643238544464, + .43869277834892, .55124300718307, 3.1211984157562, .44224792718887, + .61045408248901, 3.338207244873, .42789322137833, .61120104789734, + 2.5269968509674, .42458593845367, .45554983615875, .89725440740585, + .59187793731689, .31432569026947, .97933322191238, .37813624739647, + .14003194868565, .53462094068527, .38791963458061, .08045063912868, + 1.9790935516357, .31954729557037, .20208616554737]).reshape(17,3) + +predicted_colnames = 'predict_mu predict_linpred_std predict_hat'.split() + +predicted_rownames = 'r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17'.split() + +resids = np.array([ + 1.773634314537, 1.773634314537, .29638093709946, .29637759923935, + .2988341152668, .05034962296486, .80342543125153, .80342543125153, + .27623143792152, .27622014284134, .28062695264816, .09801965206861, + 4.6881031990051, 4.6881031990051, 3.0157172679901, 2.977787733078, + 4.0930528640747, 3.5735311508179, .31370183825493, .31370183825493, + .1611547768116, .16114975512028, .16338862478733, .08509942144156, + .91769951581955, .91769951581955, .59656941890717, .59618371725082, + .63595855236053, .44071426987648, .9349684715271, .9349684715271, + .80822360515594, .80661898851395, .90597397089005, .87787866592407, + .07395775616169, .07395775616169, .05295527353883, .05295492336154, + .05329062789679, .03839882463217, -.41714036464691, -.41714036464691, + -.27668312191963, -.27663832902908, -.2683065533638, -.17257598042488, + -.84732186794281, -.84732186794281, -.68459099531174, -.68349820375443, + -.6234148144722, -.458675801754, -1.8643238544464, -1.8643238544464, + -1.2799508571625, -1.274356007576, -1.1015654802322, -.65087747573853, + -2.1211984157562, -2.1211984157562, -1.4092296361923, -1.4021278619766, + -1.2006615400314, -.67961025238037, -2.338207244873, -2.338207244873, + -1.5136297941208, -1.5051733255386, -1.2797535657883, -.70043802261353, + -1.5269968509674, -1.5269968509674, -1.0992211103439, -1.0954134464264, + -.9605849981308, -.60427337884903, .10274560004473, .10274560004473, + .10649761557579, .1064917370677, .10846894979477, .11451110988855, + .02066676132381, .02066676132381, .02081091701984, .02081087417901, + .02088368684053, .02110289037228, .46537905931473, .46537905931473, + .56824368238449, .56713002920151, .63647866249084, .87048417329788, + -.97909361124039, -.97909361124039, -.77151334285736, -.77000600099564, + -.69597083330154, -.49471819400787]).reshape(17,6) + +resids_colnames = 'score_factor resid_response resid_anscombe resid_deviance resid_pearson resid_working'.split() + +resids_rownames = 'r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17'.split() + +class Bunch(dict): + def __init__(self, **kw): + dict.__init__(self, kw) + self.__dict__ = self + + for i,att in enumerate(['params', 'bse', 'tvalues', 'pvalues']): + self[att] = self.params_table[:,i] + + +results_poisson_none_nonrobust = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + infocrit=infocrit, + infocrit_colnames=infocrit_colnames, + infocrit_rownames=infocrit_rownames, + predicted=predicted, + predicted_colnames=predicted_colnames, + predicted_rownames=predicted_rownames, + resids=resids, + resids_colnames=resids_colnames, + resids_rownames=resids_rownames, + **est + ) + +est = dict( + deviance = 23.34969514421719, + dispers = .8980651978545075, + deviance_s = 23.34969514421719, + dispers_s = .8980651978545075, + deviance_p = 30.06164170990202, + dispers_p = 1.156216988842385, + deviance_ps = 30.06164170990202, + dispers_ps = 1.156216988842385, + bic = -67.5595014539113, + nbml = 0, + N = 33, + ic = 3, + k = 7, + k_eq = 1, + k_dv = 1, + converged = 1, + k_autoCns = 0, + ll = -52.96941847346162, + chi2 = 183.6836771894393, + p = 5.59891844113e-37, + rc = 0, + aic = 3.634510210512826, + rank = 7, + canonical = 1, + power = 0, + df_m = 6, + df = 26, + vf = 1, + phi = 1, + k_eq_model = 0, + properties = "b V", + depvar = "executions", + which = "max", + technique = "nr", + singularHmethod = "m-marquardt", + ml_method = "e2", + crittype = "log likelihood", + user = "glim_lf", + title = "Generalized linear models", + opt = "moptimize", + chi2type = "Wald", + wtype = "fweight", + wexp = "= fweight", + link = "glim_l03", + varfunc = "glim_v3", + m = "1", + a = "1", + oim = "oim", + opt1 = "ML", + varfuncf = "u", + varfunct = "Poisson", + linkf = "ln(u)", + linkt = "Log", + vce = "oim", + vcetype = "OIM", + hac_lag = "15", + marginsok = "default", + marginsnotok = "stdp Anscombe Cooksd Deviance Hat Likelihood Pearson Response Score Working ADJusted STAndardized STUdentized MODified", + predict = "glim_p", + cmd = "glm", + cmdline = "glm executions income perpoverty perblack LN_VC100k96 south degree [fweight=fweight], family(poisson)", + ) + +params_table = np.array([ + .00025343868829, .00004015414514, 6.3116444744157, 2.760858933e-10, + .00017473800999, .00033213936659, np.nan, 1.9599639845401, + 0, .09081422305585, .06472607217881, 1.4030547505642, + .16060051303473, -.03604654727537, .21767499338706, np.nan, + 1.9599639845401, 0, -.09416451429381, .01795769655821, + -5.2436855689475, 1.574003474e-07, -.12936095279319, -.05896807579442, + np.nan, 1.9599639845401, 0, .27652273809506, + .38626128010796, .7158955669017, .47405583598111, -.48053545953887, + 1.033580935729, np.nan, 1.9599639845401, 0, + 2.239890838384, .36339399714255, 6.1638080320445, 7.101602988e-10, + 1.5276516917866, 2.9521299849815, np.nan, 1.9599639845401, + 0, -18.842583191417, 3.736940161486, -5.0422491067996, + 4.600917913e-07, -26.16685132031, -11.518315062523, np.nan, + 1.9599639845401, 0, -6.5630017977416, 3.2352486362722, + -2.0285927097411, .04249979172538, -12.903972605867, -.22203098961573, + np.nan, 1.9599639845401, 0]).reshape(7,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +cov = np.array([ + 1.612355372e-09, 1.270985149e-06, 8.789752394e-08, -1.636449642e-07, + -3.213686689e-06, -.00005643188411, -.00006199883309, 1.270985149e-06, + .0041894644197, .00016567874308, -.00066453618021, -.00943379587945, + .07218307550995, -.11262571631082, 8.789752394e-08, .00016567874308, + .00032247886568, -.00355795369216, -.00391377556228, -.01880905186772, + .01900717143416, -1.636449642e-07, -.00066453618021, -.00355795369216, + .14919777651064, .02481983169552, .26952997380446, -.95915288407306, + -3.213686689e-06, -.00943379587945, -.00391377556228, .02481983169552, + .13205519715924, .44364186152042, -.0298149336078, -.00005643188411, + .07218307550995, -.01880905186772, .26952997380446, .44364186152042, + 13.964721770527, -3.6510403528048, -.00006199883309, -.11262571631082, + .01900717143416, -.95915288407306, -.0298149336078, -3.6510403528048, + 10.466833738501]).reshape(7,7) + +cov_colnames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +cov_rownames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +infocrit = np.array([ + 33, np.nan, -52.969418473462, 7, + 119.93883694692, 130.41438987719]) + +infocrit_colnames = 'N ll0 ll df AIC BIC'.split() + +infocrit_rownames = '.'.split() + +predicted = np.array([ + 34.815238952637, .16658315062523, .96612107753754, 7.3026847839355, + .32757967710495, .78363972902298, 1.2540435791016, .26076200604439, + .08527097851038, 3.9734709262848, .24942673742771, .24720433354378, + 2.0739872455597, .24682784080505, .12635557353497, 1.1471545696259, + .45427960157394, .23673823475838, 1.7763512134552, .27608770132065, + .13540133833885, 2.2698366641998, .25641229748726, .1492355465889, + 1.6349502801895, .27634221315384, .12485299259424, 2.7504913806915, + .39550569653511, .43024495244026, 2.862185716629, .39729079604149, + .45176732540131, 3.5617923736572, .39150056242943, .54592549800873, + 2.6135795116425, .29556328058243, .22831618785858, .775799036026, + .40655690431595, .12823067605495, .93375068902969, .29390665888786, + .08065843582153, .56681954860687, .28863781690598, .04722274839878, + 1.8914022445679, .21889741718769, .09062857925892]).reshape(17,3) + +predicted_colnames = 'predict_mu predict_linpred_std predict_hat'.split() + +predicted_rownames = 'r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17'.split() + +resids = np.array([ + 2.1847612857819, 2.1847612857819, .36650228500366, .36649596691132, + .3702706694603, .06275302171707, 1.6973150968552, 1.6973150968552, + .60597640275955, .60585051774979, .62808901071548, .23242343962193, + 4.7459564208984, 4.7459564208984, 3.0897438526154, 3.0483965873718, + 4.2380628585815, 3.7845225334167, .02652905881405, .02652905881405, + .01329397037625, .01329396758229, .01330873556435, .00667654490098, + .92601269483566, .92601269483566, .60273587703705, .60233747959137, + .64300429821014, .44648909568787, .8528453707695, .8528453707695, + .72065913677216, .71955502033234, .7962681055069, .7434441447258, + .22364875674248, .22364875674248, .16446639597416, .16445553302765, + .16780391335487, .12590345740318, -.26983660459518, -.26983660459518, + -.1828535348177, -.18284019827843, -.1791032999754, -.11887931078672, + -.63495022058487, -.63495022058487, -.53598040342331, -.53542107343674, + -.49657794833183, -.38836058974266, -1.7504912614822, -1.7504912614822, + -1.2204585075378, -1.2154930830002, -1.0554916858673, -.63642859458923, + -1.862185716629, -1.862185716629, -1.2788465023041, -1.2732635736465, + -1.1007128953934, -.65061664581299, -2.5617923736572, -2.5617923736572, + -1.617108464241, -1.6071890592575, -1.3574055433273, -.71924245357513, + -1.6135795116425, -1.6135795116425, -1.1469231843948, -1.1426799297333, + -.99809640645981, -.61738300323486, .22420094907284, .22420094907284, + .24363535642624, .24356025457382, .25454398989677, .28899359703064, + .06624934077263, .06624934077263, .06777309626341, .06777160614729, + .06855925172567, .07094971090555, .43318045139313, .43318045139313, + .51954871416092, .51871728897095, .57536894083023, .76422989368439, + -.89140218496323, -.89140218496323, -.7140833735466, -.7128586769104, + -.64815932512283, -.47129172086716]).reshape(17,6) + +resids_colnames = 'score_factor resid_response resid_anscombe resid_deviance resid_pearson resid_working'.split() + +resids_rownames = 'r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17'.split() + + +results_poisson_fweight_nonrobust = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + infocrit=infocrit, + infocrit_colnames=infocrit_colnames, + infocrit_rownames=infocrit_rownames, + predicted=predicted, + predicted_colnames=predicted_colnames, + predicted_rownames=predicted_rownames, + resids=resids, + resids_colnames=resids_colnames, + resids_rownames=resids_rownames, + **est + ) + +est = dict( + deviance = 12.02863083186947, + dispers = 1.202863083186947, + deviance_s = 12.02863083186947, + dispers_s = 1.202863083186947, + deviance_p = 15.48630027479802, + dispers_p = 1.548630027479802, + deviance_ps = 15.48630027479802, + dispers_ps = 1.548630027479802, + bic = -16.30350260869269, + nbml = 0, + N = 17, + ic = 3, + k = 7, + k_eq = 1, + k_dv = 1, + converged = 1, + k_autoCns = 0, + ll = -27.28727618329841, + chi2 = 94.62492461274286, + p = 3.30927661191e-18, + rc = 0, + aic = 4.033797198035106, + rank = 7, + canonical = 1, + power = 0, + df_m = 6, + df = 10, + vf = 1, + phi = 1, + k_eq_model = 0, + properties = "b V", + depvar = "executions", + which = "max", + technique = "nr", + singularHmethod = "m-marquardt", + ml_method = "e2", + crittype = "log likelihood", + user = "glim_lf", + title = "Generalized linear models", + opt = "moptimize", + chi2type = "Wald", + wtype = "aweight", + wexp = "= fweight", + link = "glim_l03", + varfunc = "glim_v3", + m = "1", + a = "1", + oim = "oim", + opt1 = "ML", + varfuncf = "u", + varfunct = "Poisson", + linkf = "ln(u)", + linkt = "Log", + vce = "oim", + vcetype = "OIM", + hac_lag = "15", + marginsok = "default", + marginsnotok = "stdp Anscombe Cooksd Deviance Hat Likelihood Pearson Response Score Working ADJusted STAndardized STUdentized MODified", + predict = "glim_p", + cmd = "glm", + cmdline = "glm executions income perpoverty perblack LN_VC100k96 south degree [aweight=fweight], family(poisson)", + ) + +params_table = np.array([ + .00025343868829, .00005594520811, 4.5301232557793, 5.894928560e-06, + .00014378809529, .00036308928129, np.nan, 1.9599639845401, + 0, .09081422305585, .09018031800722, 1.0070293059798, + .31392069129295, -.08593595235267, .26756439846436, np.nan, + 1.9599639845401, 0, -.09416451429381, .02501975991718, + -3.7636058301716, .00016748080115, -.14320234263332, -.04512668595429, + np.nan, 1.9599639845401, 0, .27652273809507, + .53816281293549, .51382728692594, .60737274844619, -.77825699307725, + 1.3313024692674, np.nan, 1.9599639845401, 0, + 2.239890838384, .50630271729905, 4.424015044464, 9.688326910e-06, + 1.2475557472031, 3.2322259295649, np.nan, 1.9599639845401, + 0, -18.842583191417, 5.2065333302747, -3.6190267105084, + .00029571311817, -29.047201003062, -8.6379653797707, np.nan, + 1.9599639845401, 0, -6.5630017977417, 4.5075460479893, + -1.4560032727052, .14539171490364, -15.397629710457, 2.2716261149733, + np.nan, 1.9599639845401, 0]).reshape(7,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +cov = np.array([ + 3.129866310e-09, 2.467206465e-06, 1.706246053e-07, -3.176637541e-07, + -6.238332985e-06, -.00010954424563, -.000120350676, 2.467206465e-06, + .00813248975588, .00032161167774, -.00128998199687, -.01831266258952, + .14012008775466, -.21862639048575, 1.706246053e-07, .00032161167774, + .00062598838631, -.00690661599067, -.00759732903266, -.03651168891971, + .03689627396044, -3.176637541e-07, -.00128998199687, -.00690661599067, + .28961921322663, .04817967329131, .52320524326798, -1.8618850102603, + -6.238332985e-06, -.01831266258952, -.00759732903266, .04817967329131, + .2563424415444, .86118714295143, -.05787604759173, -.00010954424563, + .14012008775466, -.03651168891971, .52320524326798, .86118714295143, + 27.107989319261, -7.0873136260377, -.000120350676, -.21862639048575, + .03689627396044, -1.8618850102603, -.05787604759173, -7.0873136260377, + 20.317971374744]).reshape(7,7) + +cov_colnames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +cov_rownames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +infocrit = np.array([ + 17, np.nan, -27.287276183298, 7, + 68.574552366597, 74.40704577499]) + +infocrit_colnames = 'N ll0 ll df AIC BIC'.split() + +infocrit_rownames = '.'.split() + +predicted = np.array([ + 34.815238952637, .23209382593632, 1.8754115104675, 7.3026847839355, + .45640400052071, 1.521183013916, 1.2540435791016, .36330956220627, + .16552601754665, 3.9734709262848, .34751656651497, .47986721992493, + 2.0739872455597, .34389564394951, .2452784627676, 1.1471545696259, + .63293009996414, .45955070853233, 1.7763512134552, .38466224074364, + .2628378868103, 2.2698366641998, .35724925994873, .28969252109528, + 1.6349502801895, .38501682877541, .24236169457436, 2.7504913806915, + .55104273557663, .83518141508102, 2.862185716629, .55352979898453, + .87696009874344, 3.5617923736572, .54546248912811, 1.0597376823425, + 2.6135795116425, .41179683804512, .44320201873779, .775799036026, + .5664399266243, .24891836941242, .93375068902969, .40948873758316, + .15657225251198, .56681954860687, .40214782953262, .09166768193245, + 1.8914022445679, .30498126149178, .17592607438564]).reshape(17,3) + +predicted_colnames = 'predict_mu predict_linpred_std predict_hat'.split() + +predicted_rownames = 'r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17'.split() + +resids = np.array([ + 2.1847612857819, 2.1847612857819, .36650228500366, .36649596691132, + .3702706694603, .06275302171707, 1.6973150968552, 1.6973150968552, + .60597640275955, .60585051774979, .62808901071548, .23242343962193, + 4.7459564208984, 4.7459564208984, 3.0897438526154, 3.0483965873718, + 4.2380628585815, 3.7845225334167, .02652905881405, .02652905881405, + .01329397037625, .01329396758229, .01330873556435, .00667654490098, + .92601269483566, .92601269483566, .60273587703705, .60233747959137, + .64300429821014, .44648909568787, .8528453707695, .8528453707695, + .72065913677216, .71955502033234, .7962681055069, .7434441447258, + .22364875674248, .22364875674248, .16446639597416, .16445553302765, + .16780391335487, .12590345740318, -.26983660459518, -.26983660459518, + -.1828535348177, -.18284019827843, -.1791032999754, -.11887931078672, + -.63495022058487, -.63495022058487, -.53598040342331, -.53542107343674, + -.49657794833183, -.38836058974266, -1.7504912614822, -1.7504912614822, + -1.2204585075378, -1.2154930830002, -1.0554916858673, -.63642859458923, + -1.862185716629, -1.862185716629, -1.2788465023041, -1.2732635736465, + -1.1007128953934, -.65061664581299, -2.5617923736572, -2.5617923736572, + -1.617108464241, -1.6071890592575, -1.3574055433273, -.71924245357513, + -1.6135795116425, -1.6135795116425, -1.1469231843948, -1.1426799297333, + -.99809640645981, -.61738300323486, .22420094907284, .22420094907284, + .24363535642624, .24356025457382, .25454398989677, .28899359703064, + .06624934077263, .06624934077263, .06777309626341, .06777160614729, + .06855925172567, .07094971090555, .43318045139313, .43318045139313, + .51954871416092, .51871728897095, .57536894083023, .76422989368439, + -.89140218496323, -.89140218496323, -.7140833735466, -.7128586769104, + -.64815932512283, -.47129172086716]).reshape(17,6) + +resids_colnames = 'score_factor resid_response resid_anscombe resid_deviance resid_pearson resid_working'.split() + +resids_rownames = 'r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17'.split() + + +results_poisson_aweight_nonrobust = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + infocrit=infocrit, + infocrit_colnames=infocrit_colnames, + infocrit_rownames=infocrit_rownames, + predicted=predicted, + predicted_colnames=predicted_colnames, + predicted_rownames=predicted_rownames, + resids=resids, + resids_colnames=resids_colnames, + resids_rownames=resids_rownames, + **est + ) + +est = dict( + deviance = 23.34969514421719, + dispers = 2.33496951442172, + deviance_s = 23.34969514421719, + dispers_s = 2.33496951442172, + deviance_p = 30.06164170990202, + dispers_p = 3.006164170990202, + deviance_ps = 30.06164170990202, + dispers_ps = 3.006164170990202, + bic = -4.982438296344967, + nbml = 0, + N = 17, + ic = 3, + k = 7, + k_eq = 1, + k_dv = 1, + converged = 1, + k_autoCns = 0, + ll = -52.96941847346162, + chi2 = 356.6637749656061, + p = 5.72458312679e-74, + rc = 0, + aic = 7.055225702760191, + rank = 7, + canonical = 1, + power = 0, + df_m = 6, + df = 10, + vf = 1, + phi = 1, + k_eq_model = 0, + properties = "b V", + depvar = "executions", + which = "max", + technique = "nr", + singularHmethod = "m-marquardt", + ml_method = "e2", + crittype = "log pseudolikelihood", + user = "glim_lf", + title = "Generalized linear models", + opt = "moptimize", + chi2type = "Wald", + wtype = "pweight", + wexp = "= fweight", + link = "glim_l03", + varfunc = "glim_v3", + m = "1", + a = "1", + oim = "oim", + opt1 = "ML", + varfuncf = "u", + varfunct = "Poisson", + linkf = "ln(u)", + linkt = "Log", + vcetype = "Robust", + hac_lag = "15", + marginsok = "default", + marginsnotok = "stdp Anscombe Cooksd Deviance Hat Likelihood Pearson Response Score Working ADJusted STAndardized STUdentized MODified", + predict = "glim_p", + cmd = "glm", + cmdline = "glm executions income perpoverty perblack LN_VC100k96 south degree [pweight=fweight], family(poisson)", + ) + +params_table = np.array([ + .00025343868829, .0000298866597, 8.4799937786829, 2.252059827e-17, + .00019486191167, .00031201546491, np.nan, 1.9599639845401, + 0, .09081422305585, .08414617969117, 1.0792435662456, + .28047916301946, -.07410925857549, .25573770468718, np.nan, + 1.9599639845401, 0, -.09416451429381, .01946961498728, + -4.8364856909253, 1.321547815e-06, -.13232425846174, -.05600477012587, + np.nan, 1.9599639845401, 0, .27652273809506, + .36112179485191, .76573261995571, .44383541350407, -.43126297384714, + .98430845003726, np.nan, 1.9599639845401, 0, + 2.239890838384, .43098853454849, 5.1971007551989, 2.024206636e-07, + 1.3951688329193, 3.0846128438487, np.nan, 1.9599639845401, + 0, -18.842583191417, 4.5147658917489, -4.1735460139479, + .00002998950578, -27.691361737874, -9.9938046449589, np.nan, + 1.9599639845401, 0, -6.5630017977416, 3.3999612612355, + -1.930316639948, .0535676165153, -13.226803418595, .10079982311137, + np.nan, 1.9599639845401, 0]).reshape(7,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +cov = np.array([ + 8.932124278e-10, 1.512127962e-06, 1.877263788e-07, -4.562869239e-06, + -2.023379829e-06, -.00001228516761, -.00002423071544, 1.512127962e-06, + .00708057955662, .00028427703202, -.0019549511748, -.00596332288528, + .20022061835302, -.18678265108673, 1.877263788e-07, .00028427703202, + .00037906590775, -.00453407701816, -.00623061980467, -.04659404972535, + .02694184589715, -4.562869239e-06, -.0019549511748, -.00453407701816, + .13040895071706, .0836259691825, .89260578257395, -.82275604425197, + -2.023379829e-06, -.00596332288528, -.00623061980467, .0836259691825, + .18575111691225, 1.0698498854979, -.64859219982217, -.00001228516761, + .20022061835302, -.04659404972535, .89260578257395, 1.0698498854979, + 20.383111057299, -12.482192460755, -.00002423071544, -.18678265108673, + .02694184589715, -.82275604425197, -.64859219982217, -12.482192460755, + 11.559736577902]).reshape(7,7) + +cov_colnames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +cov_rownames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +infocrit = np.array([ + 17, np.nan, -52.969418473462, 7, + 119.93883694692, 125.77133035532]) + +infocrit_colnames = 'N ll0 ll df AIC BIC'.split() + +infocrit_rownames = '.'.split() + +predicted = np.array([ + 34.815238952637, .06858423352242, 7.3026847839355, .25687274336815, + 1.2540435791016, .41320022940636, 3.9734709262848, .16020278632641, + 2.0739872455597, .22170753777027, 1.1471545696259, .51121062040329, + 1.7763512134552, .2167394310236, 2.2698366641998, .2456086575985, + 1.6349502801895, .25546172261238, 2.7504913806915, .4417819082737, + 2.862185716629, .61734634637833, 3.5617923736572, .51518148183823, + 2.6135795116425, .34006628394127, .775799036026, .292076587677, + .93375068902969, .39795544743538, .56681954860687, .31529840826988, + 1.8914022445679, .26116076111794]).reshape(17,2) + +predicted_colnames = 'predict_mu predict_linpred_std'.split() + +predicted_rownames = 'r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17'.split() + +resids = np.array([ + 2.1847612857819, 2.1847612857819, .36650228500366, .36649596691132, + .3702706694603, .06275302171707, 1.6973150968552, 1.6973150968552, + .60597640275955, .60585051774979, .62808901071548, .23242343962193, + 4.7459564208984, 4.7459564208984, 3.0897438526154, 3.0483965873718, + 4.2380628585815, 3.7845225334167, .02652905881405, .02652905881405, + .01329397037625, .01329396758229, .01330873556435, .00667654490098, + .92601269483566, .92601269483566, .60273587703705, .60233747959137, + .64300429821014, .44648909568787, .8528453707695, .8528453707695, + .72065913677216, .71955502033234, .7962681055069, .7434441447258, + .22364875674248, .22364875674248, .16446639597416, .16445553302765, + .16780391335487, .12590345740318, -.26983660459518, -.26983660459518, + -.1828535348177, -.18284019827843, -.1791032999754, -.11887931078672, + -.63495022058487, -.63495022058487, -.53598040342331, -.53542107343674, + -.49657794833183, -.38836058974266, -1.7504912614822, -1.7504912614822, + -1.2204585075378, -1.2154930830002, -1.0554916858673, -.63642859458923, + -1.862185716629, -1.862185716629, -1.2788465023041, -1.2732635736465, + -1.1007128953934, -.65061664581299, -2.5617923736572, -2.5617923736572, + -1.617108464241, -1.6071890592575, -1.3574055433273, -.71924245357513, + -1.6135795116425, -1.6135795116425, -1.1469231843948, -1.1426799297333, + -.99809640645981, -.61738300323486, .22420094907284, .22420094907284, + .24363535642624, .24356025457382, .25454398989677, .28899359703064, + .06624934077263, .06624934077263, .06777309626341, .06777160614729, + .06855925172567, .07094971090555, .43318045139313, .43318045139313, + .51954871416092, .51871728897095, .57536894083023, .76422989368439, + -.89140218496323, -.89140218496323, -.7140833735466, -.7128586769104, + -.64815932512283, -.47129172086716]).reshape(17,6) + +resids_colnames = 'score_factor resid_response resid_anscombe resid_deviance resid_pearson resid_working'.split() + +resids_rownames = 'r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17'.split() + + +results_poisson_pweight_nonrobust = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + infocrit=infocrit, + infocrit_colnames=infocrit_colnames, + infocrit_rownames=infocrit_rownames, + predicted=predicted, + predicted_colnames=predicted_colnames, + predicted_rownames=predicted_rownames, + resids=resids, + resids_colnames=resids_colnames, + resids_rownames=resids_rownames, + **est + ) + +est = dict( + k_eq_model = 0, + phi = 1, + vf = 1, + df = 10, + df_m = 6, + power = 0, + canonical = 1, + rank = 7, + aic = 4.579685683305704, + rc = 0, + p = 5.09268495340e-76, + chi2 = 366.2131475852884, + ll = -31.92732830809848, + k_autoCns = 0, + converged = 1, + k_dv = 1, + k_eq = 1, + k = 7, + ic = 3, + N = 17, + nbml = 0, + bic = -9.740492454486454, + dispers_ps = 2.475374834715614, + deviance_ps = 24.75374834715614, + dispers_p = 2.475374834715614, + deviance_p = 24.75374834715614, + dispers_s = 1.859164098607571, + deviance_s = 18.59164098607571, + dispers = 1.859164098607571, + deviance = 18.59164098607571, + cmdline = "glm executions income perpoverty perblack LN_VC100k96 south degree, family(poisson) vce(robust)", + cmd = "glm", + predict = "glim_p", + marginsnotok = "stdp Anscombe Cooksd Deviance Hat Likelihood Pearson Response Score Working ADJusted STAndardized STUdentized MODified", + marginsok = "default", + hac_lag = "15", + vcetype = "Robust", + vce = "robust", + linkt = "Log", + linkf = "ln(u)", + varfunct = "Poisson", + varfuncf = "u", + opt1 = "ML", + oim = "oim", + a = "1", + m = "1", + varfunc = "glim_v3", + link = "glim_l03", + chi2type = "Wald", + opt = "moptimize", + title = "Generalized linear models", + user = "glim_lf", + crittype = "log pseudolikelihood", + ml_method = "e2", + singularHmethod = "m-marquardt", + technique = "nr", + which = "max", + depvar = "executions", + properties = "b V", + ) + +params_table = np.array([ + .00026110166569, .00003534474167, 7.3872845963787, 1.498576223e-13, + .00019182724497, .0003303760864, np.nan, 1.9599639845401, + 0, .07781804809828, .09819599835909, .79247677500784, + .42808272865983, -.11464257211148, .27027866830805, np.nan, + 1.9599639845401, 0, -.09493110013466, .01944446025221, + -4.8821668950083, 1.049263903e-06, -.13304154192782, -.0568206583415, + np.nan, 1.9599639845401, 0, .29693462055586, + .34917491559373, .85038932436186, .39510866948496, -.38743563831266, + .98130487942439, np.nan, 1.9599639845401, 0, + 2.3011832004524, .45717041903387, 5.0335347709405, 4.815174289e-07, + 1.405145644349, 3.1972207565559, np.nan, 1.9599639845401, + 0, -18.722067603077, 4.5006120067298, -4.1598937155841, + .00003183957242, -27.543105044656, -9.9010301614985, np.nan, + 1.9599639845401, 0, -6.8014789919532, 3.48445447794, + -1.9519494471841, .05094420680386, -13.630884274485, .02792629057847, + np.nan, 1.9599639845401, 0]).reshape(7,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +cov = np.array([ + 1.249250764e-09, 2.158351725e-06, 1.068227835e-07, -5.170410321e-06, + -5.047866044e-07, -.00001662944527, -.00004339679838, 2.158351725e-06, + .00964245409374, .00008635335196, -.00640596402935, -.00524426268669, + .23390140895418, -.22653903184676, 1.068227835e-07, .00008635335196, + .0003780870345, -.00382751790532, -.0064534643179, -.05137117620883, + .02948709519544, -5.170410321e-06, -.00640596402935, -.00382751790532, + .12192312167989, .0907733380116, .89729289134262, -.69004336039169, + -5.047866044e-07, -.00524426268669, -.0064534643179, .0907733380116, + .20900479203961, .93952111535021, -.75843860743141, -.00001662944527, + .23390140895418, -.05137117620883, .89729289134262, .93952111535021, + 20.25550843512, -12.691830440798, -.00004339679838, -.22653903184676, + .02948709519544, -.69004336039169, -.75843860743141, -12.691830440798, + 12.141423008836]).reshape(7,7) + +cov_colnames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +cov_rownames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +infocrit = np.array([ + 17, np.nan, -31.927328308098, 7, + 77.854656616197, 83.68715002459]) + +infocrit_colnames = 'N ll0 ll df AIC BIC'.split() + +infocrit_rownames = '.'.split() + +predicted = np.array([ + 35.226364135742, .05631958693266, 8.1965742111206, .14089094102383, + 1.3118965625763, .51714926958084, 3.6862981319427, .20286601781845, + 2.0823004245758, .27275583148003, 1.0650315284729, .58616667985916, + 1.9260421991348, .30098018050194, 2.4171404838562, .34251752495766, + 1.8473218679428, .29685723781586, 2.8643238544464, .47364214062691, + 3.1211984157562, .72507524490356, 3.338207244873, .54493451118469, + 2.5269968509674, .34425318241119, .89725440740585, .37162157893181, + .97933322191238, .50227928161621, .53462094068527, .40906101465225, + 1.9790935516357, .33805811405182]).reshape(17,2) + +predicted_colnames = 'predict_mu predict_linpred_std'.split() + +predicted_rownames = 'r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17'.split() + + +results_poisson_none_hc1 = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + infocrit=infocrit, + infocrit_colnames=infocrit_colnames, + infocrit_rownames=infocrit_rownames, + predicted=predicted, + predicted_colnames=predicted_colnames, + predicted_rownames=predicted_rownames, + **est + ) + +est = dict( + k_eq_model = 0, + phi = 1, + vf = 1, + df = 26, + df_m = 6, + power = 0, + canonical = 1, + rank = 7, + aic = 3.634510210512826, + rc = 0, + p = 1.5690245831e-115, + chi2 = 549.7874580263729, + ll = -52.96941847346162, + k_autoCns = 0, + converged = 1, + k_dv = 1, + k_eq = 1, + k = 7, + ic = 3, + N = 33, + nbml = 0, + bic = -67.5595014539113, + dispers_ps = 1.156216988842385, + deviance_ps = 30.06164170990202, + dispers_p = 1.156216988842385, + deviance_p = 30.06164170990202, + dispers_s = .8980651978545075, + deviance_s = 23.34969514421719, + dispers = .8980651978545075, + deviance = 23.34969514421719, + cmdline = "glm executions income perpoverty perblack LN_VC100k96 south degree [fweight=fweight], family(poisson) vce(robust)", + cmd = "glm", + predict = "glim_p", + marginsnotok = "stdp Anscombe Cooksd Deviance Hat Likelihood Pearson Response Score Working ADJusted STAndardized STUdentized MODified", + marginsok = "default", + hac_lag = "15", + vcetype = "Robust", + vce = "robust", + linkt = "Log", + linkf = "ln(u)", + varfunct = "Poisson", + varfuncf = "u", + opt1 = "ML", + oim = "oim", + a = "1", + m = "1", + varfunc = "glim_v3", + link = "glim_l03", + wexp = "= fweight", + wtype = "fweight", + chi2type = "Wald", + opt = "moptimize", + title = "Generalized linear models", + user = "glim_lf", + crittype = "log pseudolikelihood", + ml_method = "e2", + singularHmethod = "m-marquardt", + technique = "nr", + which = "max", + depvar = "executions", + properties = "b V", + ) + +params_table = np.array([ + .00025343868829, .0000263369674, 9.6229259983619, 6.398464168e-22, + .00020181918073, .00030505819585, np.nan, 1.9599639845401, + 0, .09081422305585, .07431850776812, 1.2219597215163, + .22172285914198, -.05484737555444, .23647582166613, np.nan, + 1.9599639845401, 0, -.09416451429381, .01609416304158, + -5.8508487860178, 4.890707145e-09, -.12570849421662, -.06262053437099, + np.nan, 1.9599639845401, 0, .27652273809506, + .34481886883624, .80193621372381, .42258985672342, -.3993098260138, + .95235530220392, np.nan, 1.9599639845401, 0, + 2.239890838384, .39682271484988, 5.6445630619491, 1.656012749e-08, + 1.4621326090308, 3.0176490677372, np.nan, 1.9599639845401, + 0, -18.842583191417, 4.1473740870735, -4.5432562377589, + 5.539185130e-06, -26.971287032495, -10.713879350338, np.nan, + 1.9599639845401, 0, -6.5630017977416, 3.0810023455152, + -2.1301515097173, .03315910688542, -12.601655431235, -.52434816424841, + np.nan, 1.9599639845401, 0]).reshape(7,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +cov = np.array([ + 6.936358517e-10, 1.301395377e-06, 1.497821854e-07, -4.758016826e-06, + -1.852598001e-06, -6.904571080e-06, -.00001327109619, 1.301395377e-06, + .00552324059688, .00014714335792, -.00376147485446, -.00118957690573, + .15979100738539, -.13853266210904, 1.497821854e-07, .00014714335792, + .00025902208401, -.00418693954572, -.00513741847691, -.03987504442994, + .02761179707845, -4.758016826e-06, -.00376147485446, -.00418693954572, + .1189000523055, .08682729933237, .80541854027627, -.70545315416752, + -1.852598001e-06, -.00118957690573, -.00513741847691, .08682729933237, + .15746826702083, 1.1366624064282, -.75098089879076, -6.904571080e-06, + .15979100738539, -.03987504442994, .80541854027627, 1.1366624064282, + 17.200711818129, -11.062121016981, -.00001327109619, -.13853266210904, + .02761179707845, -.70545315416752, -.75098089879076, -11.062121016981, + 9.49257545307]).reshape(7,7) + +cov_colnames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +cov_rownames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +infocrit = np.array([ + 33, np.nan, -52.969418473462, 7, + 119.93883694692, 130.41438987719]) + +infocrit_colnames = 'N ll0 ll df AIC BIC'.split() + +infocrit_rownames = '.'.split() + +predicted = np.array([ + 34.815238952637, .06608480215073, 7.3026847839355, .23366995155811, + 1.2540435791016, .39606991410255, 3.9734709262848, .12350843846798, + 2.0739872455597, .18263976275921, 1.1471545696259, .39735752344131, + 1.7763512134552, .17952646315098, 2.2698366641998, .21028706431389, + 1.6349502801895, .17675416171551, 2.7504913806915, .42150634527206, + 2.862185716629, .58209121227264, 3.5617923736572, .49835306406021, + 2.6135795116425, .2456089258194, .775799036026, .23251366615295, + .93375068902969, .35320028662682, .56681954860687, .26245352625847, + 1.8914022445679, .20374123752117]).reshape(17,2) + +predicted_colnames = 'predict_mu predict_linpred_std'.split() + +predicted_rownames = 'r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17'.split() + + +results_poisson_fweight_hc1 = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + infocrit=infocrit, + infocrit_colnames=infocrit_colnames, + infocrit_rownames=infocrit_rownames, + predicted=predicted, + predicted_colnames=predicted_colnames, + predicted_rownames=predicted_rownames, + **est + ) + +est = dict( + k_eq_model = 0, + phi = 1, + vf = 1, + df = 10, + df_m = 6, + power = 0, + canonical = 1, + rank = 7, + aic = 4.033797198035106, + rc = 0, + p = 5.72458312675e-74, + chi2 = 356.663774965618, + ll = -27.28727618329841, + k_autoCns = 0, + converged = 1, + k_dv = 1, + k_eq = 1, + k = 7, + ic = 3, + N = 17, + nbml = 0, + bic = -16.30350260869269, + dispers_ps = 1.548630027479802, + deviance_ps = 15.48630027479802, + dispers_p = 1.548630027479802, + deviance_p = 15.48630027479802, + dispers_s = 1.202863083186947, + deviance_s = 12.02863083186947, + dispers = 1.202863083186947, + deviance = 12.02863083186947, + cmdline = "glm executions income perpoverty perblack LN_VC100k96 south degree [aweight=fweight], family(poisson) vce(robust)", + cmd = "glm", + predict = "glim_p", + marginsnotok = "stdp Anscombe Cooksd Deviance Hat Likelihood Pearson Response Score Working ADJusted STAndardized STUdentized MODified", + marginsok = "default", + hac_lag = "15", + vcetype = "Robust", + vce = "robust", + linkt = "Log", + linkf = "ln(u)", + varfunct = "Poisson", + varfuncf = "u", + opt1 = "ML", + oim = "oim", + a = "1", + m = "1", + varfunc = "glim_v3", + link = "glim_l03", + wexp = "= fweight", + wtype = "aweight", + chi2type = "Wald", + opt = "moptimize", + title = "Generalized linear models", + user = "glim_lf", + crittype = "log pseudolikelihood", + ml_method = "e2", + singularHmethod = "m-marquardt", + technique = "nr", + which = "max", + depvar = "executions", + properties = "b V", + ) + +params_table = np.array([ + .00025343868829, .0000298866597, 8.4799937786833, 2.252059827e-17, + .00019486191167, .00031201546491, np.nan, 1.9599639845401, + 0, .09081422305585, .08414617969118, 1.0792435662455, + .28047916301948, -.0741092585755, .25573770468719, np.nan, + 1.9599639845401, 0, -.09416451429381, .01946961498728, + -4.8364856909248, 1.321547815e-06, -.13232425846174, -.05600477012587, + np.nan, 1.9599639845401, 0, .27652273809507, + .36112179485206, .76573261995541, .44383541350425, -.43126297384744, + .98430845003758, np.nan, 1.9599639845401, 0, + 2.239890838384, .4309885345485, 5.1971007551988, 2.024206636e-07, + 1.3951688329193, 3.0846128438488, np.nan, 1.9599639845401, + 0, -18.842583191417, 4.5147658917496, -4.1735460139472, + .00002998950578, -27.691361737876, -9.9938046449574, np.nan, + 1.9599639845401, 0, -6.5630017977417, 3.3999612612367, + -1.9303166399474, .05356761651539, -13.226803418597, .10079982311369, + np.nan, 1.9599639845401, 0]).reshape(7,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +cov = np.array([ + 8.932124278e-10, 1.512127962e-06, 1.877263788e-07, -4.562869239e-06, + -2.023379829e-06, -.00001228516761, -.00002423071544, 1.512127962e-06, + .00708057955662, .00028427703202, -.00195495117479, -.00596332288528, + .2002206183531, -.1867826510868, 1.877263788e-07, .00028427703202, + .00037906590775, -.00453407701816, -.00623061980468, -.04659404972537, + .02694184589718, -4.562869239e-06, -.00195495117479, -.00453407701816, + .13040895071718, .08362596918255, .89260578257483, -.82275604425296, + -2.023379829e-06, -.00596332288528, -.00623061980468, .08362596918255, + .18575111691226, 1.0698498854982, -.64859219982256, -.00001228516761, + .2002206183531, -.04659404972537, .89260578257483, 1.0698498854982, + 20.383111057306, -12.482192460764, -.00002423071544, -.1867826510868, + .02694184589718, -.82275604425296, -.64859219982256, -12.482192460764, + 11.55973657791]).reshape(7,7) + +cov_colnames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +cov_rownames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +infocrit = np.array([ + 17, np.nan, -27.287276183298, 7, + 68.574552366597, 74.40704577499]) + +infocrit_colnames = 'N ll0 ll df AIC BIC'.split() + +infocrit_rownames = '.'.split() + +predicted = np.array([ + 34.815238952637, .06858423352242, 7.3026847839355, .25687274336815, + 1.2540435791016, .41320022940636, 3.9734709262848, .16020278632641, + 2.0739872455597, .22170753777027, 1.1471545696259, .51121062040329, + 1.7763512134552, .2167394310236, 2.2698366641998, .2456086575985, + 1.6349502801895, .25546172261238, 2.7504913806915, .4417819082737, + 2.862185716629, .61734634637833, 3.5617923736572, .51518148183823, + 2.6135795116425, .34006628394127, .775799036026, .292076587677, + .93375068902969, .39795544743538, .56681954860687, .31529840826988, + 1.8914022445679, .26116076111794]).reshape(17,2) + +predicted_colnames = 'predict_mu predict_linpred_std'.split() + +predicted_rownames = 'r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17'.split() + + +results_poisson_aweight_hc1 = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + infocrit=infocrit, + infocrit_colnames=infocrit_colnames, + infocrit_rownames=infocrit_rownames, + predicted=predicted, + predicted_colnames=predicted_colnames, + predicted_rownames=predicted_rownames, + **est + ) + +est = dict( + k_eq_model = 0, + phi = 1, + vf = 1, + df = 10, + df_m = 6, + power = 0, + canonical = 1, + rank = 7, + aic = 7.055225702760191, + rc = 0, + p = 5.72458312679e-74, + chi2 = 356.6637749656061, + ll = -52.96941847346162, + k_autoCns = 0, + converged = 1, + k_dv = 1, + k_eq = 1, + k = 7, + ic = 3, + N = 17, + nbml = 0, + bic = -4.982438296344967, + dispers_ps = 3.006164170990202, + deviance_ps = 30.06164170990202, + dispers_p = 3.006164170990202, + deviance_p = 30.06164170990202, + dispers_s = 2.33496951442172, + deviance_s = 23.34969514421719, + dispers = 2.33496951442172, + deviance = 23.34969514421719, + cmdline = "glm executions income perpoverty perblack LN_VC100k96 south degree [pweight=fweight], family(poisson) vce(robust)", + cmd = "glm", + predict = "glim_p", + marginsnotok = "stdp Anscombe Cooksd Deviance Hat Likelihood Pearson Response Score Working ADJusted STAndardized STUdentized MODified", + marginsok = "default", + hac_lag = "15", + vcetype = "Robust", + vce = "robust", + linkt = "Log", + linkf = "ln(u)", + varfunct = "Poisson", + varfuncf = "u", + opt1 = "ML", + oim = "oim", + a = "1", + m = "1", + varfunc = "glim_v3", + link = "glim_l03", + wexp = "= fweight", + wtype = "pweight", + chi2type = "Wald", + opt = "moptimize", + title = "Generalized linear models", + user = "glim_lf", + crittype = "log pseudolikelihood", + ml_method = "e2", + singularHmethod = "m-marquardt", + technique = "nr", + which = "max", + depvar = "executions", + properties = "b V", + ) + +params_table = np.array([ + .00025343868829, .0000298866597, 8.4799937786829, 2.252059827e-17, + .00019486191167, .00031201546491, np.nan, 1.9599639845401, + 0, .09081422305585, .08414617969117, 1.0792435662456, + .28047916301946, -.07410925857549, .25573770468718, np.nan, + 1.9599639845401, 0, -.09416451429381, .01946961498728, + -4.8364856909253, 1.321547815e-06, -.13232425846174, -.05600477012587, + np.nan, 1.9599639845401, 0, .27652273809506, + .36112179485191, .76573261995571, .44383541350407, -.43126297384714, + .98430845003726, np.nan, 1.9599639845401, 0, + 2.239890838384, .43098853454849, 5.1971007551989, 2.024206636e-07, + 1.3951688329193, 3.0846128438487, np.nan, 1.9599639845401, + 0, -18.842583191417, 4.5147658917489, -4.1735460139479, + .00002998950578, -27.691361737874, -9.9938046449589, np.nan, + 1.9599639845401, 0, -6.5630017977416, 3.3999612612355, + -1.930316639948, .0535676165153, -13.226803418595, .10079982311137, + np.nan, 1.9599639845401, 0]).reshape(7,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +cov = np.array([ + 8.932124278e-10, 1.512127962e-06, 1.877263788e-07, -4.562869239e-06, + -2.023379829e-06, -.00001228516761, -.00002423071544, 1.512127962e-06, + .00708057955662, .00028427703202, -.0019549511748, -.00596332288528, + .20022061835302, -.18678265108673, 1.877263788e-07, .00028427703202, + .00037906590775, -.00453407701816, -.00623061980467, -.04659404972535, + .02694184589715, -4.562869239e-06, -.0019549511748, -.00453407701816, + .13040895071706, .0836259691825, .89260578257395, -.82275604425197, + -2.023379829e-06, -.00596332288528, -.00623061980467, .0836259691825, + .18575111691225, 1.0698498854979, -.64859219982217, -.00001228516761, + .20022061835302, -.04659404972535, .89260578257395, 1.0698498854979, + 20.383111057299, -12.482192460755, -.00002423071544, -.18678265108673, + .02694184589715, -.82275604425197, -.64859219982217, -12.482192460755, + 11.559736577902]).reshape(7,7) + +cov_colnames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +cov_rownames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +infocrit = np.array([ + 17, np.nan, -52.969418473462, 7, + 119.93883694692, 125.77133035532]) + +infocrit_colnames = 'N ll0 ll df AIC BIC'.split() + +infocrit_rownames = '.'.split() + +predicted = np.array([ + 34.815238952637, .06858423352242, 7.3026847839355, .25687274336815, + 1.2540435791016, .41320022940636, 3.9734709262848, .16020278632641, + 2.0739872455597, .22170753777027, 1.1471545696259, .51121062040329, + 1.7763512134552, .2167394310236, 2.2698366641998, .2456086575985, + 1.6349502801895, .25546172261238, 2.7504913806915, .4417819082737, + 2.862185716629, .61734634637833, 3.5617923736572, .51518148183823, + 2.6135795116425, .34006628394127, .775799036026, .292076587677, + .93375068902969, .39795544743538, .56681954860687, .31529840826988, + 1.8914022445679, .26116076111794]).reshape(17,2) + +predicted_colnames = 'predict_mu predict_linpred_std'.split() + +predicted_rownames = 'r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17'.split() + + +results_poisson_pweight_hc1 = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + infocrit=infocrit, + infocrit_colnames=infocrit_colnames, + infocrit_rownames=infocrit_rownames, + predicted=predicted, + predicted_colnames=predicted_colnames, + predicted_rownames=predicted_rownames, + **est + ) + +est = dict( + k_eq_model = 0, + vf = 1, + df = 10, + df_m = 6, + power = 0, + canonical = 1, + rank = 7, + aic = 4.579685683305704, + rc = 0, + p = 4.1950730971e-123, + chi2 = 584.908728768987, + ll = -31.92732830809848, + N_clust = 9, + k_autoCns = 0, + converged = 1, + k_dv = 1, + k_eq = 1, + k = 7, + ic = 3, + N = 17, + nbml = 0, + bic = -9.740492454486454, + dispers_ps = 2.475374834715614, + deviance_ps = 24.75374834715614, + dispers_p = 2.475374834715614, + deviance_p = 24.75374834715614, + dispers_s = 1.859164098607571, + deviance_s = 18.59164098607571, + dispers = 1.859164098607571, + deviance = 18.59164098607571, + phi = 1, + cmdline = "glm executions income perpoverty perblack LN_VC100k96 south degree, family(poisson) vce(cluster id)", + cmd = "glm", + predict = "glim_p", + marginsnotok = "stdp Anscombe Cooksd Deviance Hat Likelihood Pearson Response Score Working ADJusted STAndardized STUdentized MODified", + marginsok = "default", + hac_lag = "15", + vcetype = "Robust", + vce = "cluster", + linkt = "Log", + linkf = "ln(u)", + varfunct = "Poisson", + varfuncf = "u", + opt1 = "ML", + clustvar = "id", + oim = "oim", + a = "1", + m = "1", + varfunc = "glim_v3", + link = "glim_l03", + chi2type = "Wald", + opt = "moptimize", + title = "Generalized linear models", + user = "glim_lf", + crittype = "log pseudolikelihood", + ml_method = "e2", + singularHmethod = "m-marquardt", + technique = "nr", + which = "max", + depvar = "executions", + properties = "b V", + ) + +params_table = np.array([ + .00026110166569, .00004098448535, 6.3707440379489, 1.881133617e-10, + .00018077355048, .0003414297809, np.nan, 1.9599639845401, + 0, .07781804809828, .11602998752167, .67067186475175, + .50242959011024, -.14959654857083, .3052326447674, np.nan, + 1.9599639845401, 0, -.09493110013466, .02432927475974, + -3.9019288931601, .00009542919351, -.14261560243373, -.04724659783559, + np.nan, 1.9599639845401, 0, .29693462055586, + .31774950884716, .93449277587615, .35004976070702, -.32584297288986, + .91971221400158, np.nan, 1.9599639845401, 0, + 2.3011832004524, .54874508731474, 4.1935376801516, .00002746374324, + 1.2256625926223, 3.3767038082826, np.nan, 1.9599639845401, + 0, -18.722067603077, 2.8106198749749, -6.6611880780372, + 2.716227723e-11, -24.230781332261, -13.213353873894, np.nan, + 1.9599639845401, 0, -6.8014789919532, 3.1571598785659, + -2.1543029981246, .03121641791743, -12.989398647377, -.61355933652912, + np.nan, 1.9599639845401, 0]).reshape(7,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +cov = np.array([ + 1.679728039e-09, 4.034336761e-06, 1.735749447e-07, -5.093610363e-06, + -4.552211884e-06, .00001563785418, -.00009230028034, 4.034336761e-06, + .01346295800428, .00110922683659, -.01950093608551, -.02957572460439, + .08545644123676, -.23518641056668, 1.735749447e-07, .00110922683659, + .00059191361033, -.00720622811203, -.01195031391163, -.04317371228367, + .03351736744645, -5.093610363e-06, -.01950093608551, -.00720622811203, + .10096475037261, .13375578883899, .49763538443989, -.27357574414228, + -4.552211884e-06, -.02957572460439, -.01195031391163, .13375578883899, + .30112117085206, .65342245458316, -.47102547759356, .00001563785418, + .08545644123676, -.04317371228367, .49763538443989, .65342245458316, + 7.8995840816039, -6.5824964755966, -.00009230028034, -.23518641056668, + .03351736744645, -.27357574414228, -.47102547759356, -6.5824964755966, + 9.9676584988266]).reshape(7,7) + +cov_colnames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +cov_rownames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +infocrit = np.array([ + 17, np.nan, -31.927328308098, 7, + 77.854656616197, 83.68715002459]) + +infocrit_colnames = 'N ll0 ll df AIC BIC'.split() + +infocrit_rownames = '.'.split() + +predicted = np.array([ + 35.226364135742, .05941947177052, 8.1965742111206, .09018591046333, + 1.3118965625763, .53127920627594, 3.6862981319427, .23996050655842, + 2.0823004245758, .33554902672768, 1.0650315284729, .53513532876968, + 1.9260421991348, .32360115647316, 2.4171404838562, .33078169822693, + 1.8473218679428, .32581362128258, 2.8643238544464, .46489810943604, + 3.1211984157562, .71297109127045, 3.338207244873, .58515930175781, + 2.5269968509674, .42410242557526, .89725440740585, .40493285655975, + .97933322191238, .5560839176178, .53462094068527, .419488966465, + 1.9790935516357, .3438538312912]).reshape(17,2) + +predicted_colnames = 'predict_mu predict_linpred_std'.split() + +predicted_rownames = 'r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17'.split() + + +results_poisson_none_clu1 = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + infocrit=infocrit, + infocrit_colnames=infocrit_colnames, + infocrit_rownames=infocrit_rownames, + predicted=predicted, + predicted_colnames=predicted_colnames, + predicted_rownames=predicted_rownames, + **est + ) + +est = dict( + k_eq_model = 0, + vf = 1, + df = 26, + df_m = 6, + power = 0, + canonical = 1, + rank = 7, + aic = 3.634510210512826, + rc = 0, + p = 6.87057569032e-91, + chi2 = 435.380362705941, + ll = -52.96941847346162, + N_clust = 9, + k_autoCns = 0, + converged = 1, + k_dv = 1, + k_eq = 1, + k = 7, + ic = 3, + N = 33, + nbml = 0, + bic = -67.5595014539113, + dispers_ps = 1.156216988842385, + deviance_ps = 30.06164170990202, + dispers_p = 1.156216988842385, + deviance_p = 30.06164170990202, + dispers_s = .8980651978545075, + deviance_s = 23.34969514421719, + dispers = .8980651978545075, + deviance = 23.34969514421719, + phi = 1, + cmdline = "glm executions income perpoverty perblack LN_VC100k96 south degree [fweight=fweight], family(poisson) vce(cluster id)", + cmd = "glm", + predict = "glim_p", + marginsnotok = "stdp Anscombe Cooksd Deviance Hat Likelihood Pearson Response Score Working ADJusted STAndardized STUdentized MODified", + marginsok = "default", + hac_lag = "15", + vcetype = "Robust", + vce = "cluster", + linkt = "Log", + linkf = "ln(u)", + varfunct = "Poisson", + varfuncf = "u", + opt1 = "ML", + clustvar = "id", + oim = "oim", + a = "1", + m = "1", + varfunc = "glim_v3", + link = "glim_l03", + wexp = "= fweight", + wtype = "fweight", + chi2type = "Wald", + opt = "moptimize", + title = "Generalized linear models", + user = "glim_lf", + crittype = "log pseudolikelihood", + ml_method = "e2", + singularHmethod = "m-marquardt", + technique = "nr", + which = "max", + depvar = "executions", + properties = "b V", + ) + +params_table = np.array([ + .00025343868829, .0000293670276, 8.6300422274613, 6.132932700e-18, + .00019588037186, .00031099700472, np.nan, 1.9599639845401, + 0, .09081422305585, .09800194027664, .92665739881773, + .35410444288802, -.10126605030142, .28289449641311, np.nan, + 1.9599639845401, 0, -.09416451429381, .02511206083893, + -3.7497724658197, .00017699509401, -.14338324911569, -.04494577947193, + np.nan, 1.9599639845401, 0, .27652273809506, + .36749499886987, .75245306451906, .45177864537662, -.44375422418847, + .99679970037859, np.nan, 1.9599639845401, 0, + 2.239890838384, .51564197481271, 4.343887712395, .00001399830855, + 1.229251138834, 3.250530537934, np.nan, 1.9599639845401, + 0, -18.842583191417, 3.2292740757113, -5.8349284543976, + 5.381365332e-09, -25.17184407602, -12.513322306813, np.nan, + 1.9599639845401, 0, -6.5630017977416, 3.1938260811459, + -2.0549026875586, .03988840483712, -12.822785889672, -.30321770581092, + np.nan, 1.9599639845401, 0]).reshape(7,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +cov = np.array([ + 8.624223101e-10, 2.413510691e-06, 3.123995891e-07, -4.358439015e-06, + -8.084672085e-06, -4.785328653e-06, -.00003652286809, 2.413510691e-06, + .00960438029799, .00106422375754, -.00911884619892, -.03121758372723, + .06803953530989, -.17715756048416, 3.123995891e-07, .00106422375754, + .00063061559958, -.00844230553011, -.01177586448603, -.05361546061036, + .03844868195577, -4.358439015e-06, -.00911884619892, -.00844230553011, + .13505257419436, .14058853110927, .86184257188631, -.74146699290106, + -8.084672085e-06, -.03121758372723, -.01177586448603, .14058853110927, + .26588664618875, .75712244813913, -.35118919402718, -4.785328653e-06, + .06803953530989, -.05361546061036, .86184257188631, .75712244813913, + 10.428211056061, -8.3518020608948, -.00003652286809, -.17715756048416, + .03844868195577, -.74146699290106, -.35118919402718, -8.3518020608948, + 10.200525036608]).reshape(7,7) + +cov_colnames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +cov_rownames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +infocrit = np.array([ + 33, np.nan, -52.969418473462, 7, + 119.93883694692, 130.41438987719]) + +infocrit_colnames = 'N ll0 ll df AIC BIC'.split() + +infocrit_rownames = '.'.split() + +predicted = np.array([ + 34.815238952637, .07249507308006, 7.3026847839355, .17909966409206, + 1.2540435791016, .36725598573685, 3.9734709262848, .1719862818718, + 2.0739872455597, .27532628178596, 1.1471545696259, .51580721139908, + 1.7763512134552, .23559851944447, 2.2698366641998, .21655206382275, + 1.6349502801895, .27835717797279, 2.7504913806915, .44458091259003, + 2.862185716629, .54439353942871, 3.5617923736572, .57089400291443, + 2.6135795116425, .41426089406013, .775799036026, .35101860761642, + .93375068902969, .39217269420624, .56681954860687, .27232182025909, + 1.8914022445679, .24083258211613]).reshape(17,2) + +predicted_colnames = 'predict_mu predict_linpred_std'.split() + +predicted_rownames = 'r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17'.split() + + +results_poisson_fweight_clu1 = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + infocrit=infocrit, + infocrit_colnames=infocrit_colnames, + infocrit_rownames=infocrit_rownames, + predicted=predicted, + predicted_colnames=predicted_colnames, + predicted_rownames=predicted_rownames, + **est + ) + +est = dict( + k_eq_model = 0, + vf = 1, + df = 10, + df_m = 6, + power = 0, + canonical = 1, + rank = 7, + aic = 4.033797198035106, + rc = 0, + p = 6.87057569091e-91, + chi2 = 435.3803627057688, + ll = -27.28727618329841, + N_clust = 9, + k_autoCns = 0, + converged = 1, + k_dv = 1, + k_eq = 1, + k = 7, + ic = 3, + N = 17, + nbml = 0, + bic = -16.30350260869269, + dispers_ps = 1.548630027479802, + deviance_ps = 15.48630027479802, + dispers_p = 1.548630027479802, + deviance_p = 15.48630027479802, + dispers_s = 1.202863083186947, + deviance_s = 12.02863083186947, + dispers = 1.202863083186947, + deviance = 12.02863083186947, + phi = 1, + cmdline = "glm executions income perpoverty perblack LN_VC100k96 south degree [aweight=fweight], family(poisson) vce(cluster id)", + cmd = "glm", + predict = "glim_p", + marginsnotok = "stdp Anscombe Cooksd Deviance Hat Likelihood Pearson Response Score Working ADJusted STAndardized STUdentized MODified", + marginsok = "default", + hac_lag = "15", + vcetype = "Robust", + vce = "cluster", + linkt = "Log", + linkf = "ln(u)", + varfunct = "Poisson", + varfuncf = "u", + opt1 = "ML", + clustvar = "id", + oim = "oim", + a = "1", + m = "1", + varfunc = "glim_v3", + link = "glim_l03", + wexp = "= fweight", + wtype = "aweight", + chi2type = "Wald", + opt = "moptimize", + title = "Generalized linear models", + user = "glim_lf", + crittype = "log pseudolikelihood", + ml_method = "e2", + singularHmethod = "m-marquardt", + technique = "nr", + which = "max", + depvar = "executions", + properties = "b V", + ) + +params_table = np.array([ + .00025343868829, .0000293670276, 8.6300422274633, 6.132932700e-18, + .00019588037186, .00031099700472, np.nan, 1.9599639845401, + 0, .09081422305585, .09800194027665, .92665739881771, + .35410444288803, -.10126605030143, .28289449641312, np.nan, + 1.9599639845401, 0, -.09416451429381, .02511206083893, + -3.7497724658192, .00017699509401, -.14338324911569, -.04494577947192, + np.nan, 1.9599639845401, 0, .27652273809507, + .36749499887001, .75245306451881, .45177864537677, -.44375422418873, + .99679970037887, np.nan, 1.9599639845401, 0, + 2.239890838384, .51564197481271, 4.343887712395, .00001399830855, + 1.229251138834, 3.250530537934, np.nan, 1.9599639845401, + 0, -18.842583191417, 3.2292740757119, -5.8349284543965, + 5.381365332e-09, -25.171844076021, -12.513322306812, np.nan, + 1.9599639845401, 0, -6.5630017977417, 3.193826081147, + -2.054902687558, .03988840483718, -12.822785889674, -.30321770580895, + np.nan, 1.9599639845401, 0]).reshape(7,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +cov = np.array([ + 8.624223101e-10, 2.413510691e-06, 3.123995891e-07, -4.358439015e-06, + -8.084672085e-06, -4.785328653e-06, -.00003652286809, 2.413510691e-06, + .00960438029799, .00106422375754, -.00911884619892, -.03121758372723, + .06803953530995, -.1771575604842, 3.123995891e-07, .00106422375754, + .00063061559958, -.00844230553012, -.01177586448603, -.05361546061038, + .03844868195581, -4.358439015e-06, -.00911884619892, -.00844230553012, + .13505257419447, .1405885311093, .86184257188684, -.74146699290197, + -8.084672085e-06, -.03121758372723, -.01177586448603, .1405885311093, + .26588664618875, .75712244813928, -.35118919402768, -4.785328653e-06, + .06803953530995, -.05361546061038, .86184257188684, .75712244813928, + 10.428211056065, -8.3518020609031, -.00003652286809, -.1771575604842, + .03844868195581, -.74146699290197, -.35118919402768, -8.3518020609031, + 10.200525036615]).reshape(7,7) + +cov_colnames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +cov_rownames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +infocrit = np.array([ + 17, np.nan, -27.287276183298, 7, + 68.574552366597, 74.40704577499]) + +infocrit_colnames = 'N ll0 ll df AIC BIC'.split() + +infocrit_rownames = '.'.split() + +predicted = np.array([ + 34.815238952637, .07249507308006, 7.3026847839355, .17909966409206, + 1.2540435791016, .36725598573685, 3.9734709262848, .1719862818718, + 2.0739872455597, .27532628178596, 1.1471545696259, .51580721139908, + 1.7763512134552, .23559851944447, 2.2698366641998, .21655206382275, + 1.6349502801895, .27835714817047, 2.7504913806915, .44458091259003, + 2.862185716629, .54439353942871, 3.5617923736572, .57089400291443, + 2.6135795116425, .41426089406013, .775799036026, .35101860761642, + .93375068902969, .39217269420624, .56681954860687, .27232182025909, + 1.8914022445679, .24083258211613]).reshape(17,2) + +predicted_colnames = 'predict_mu predict_linpred_std'.split() + +predicted_rownames = 'r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17'.split() + + +results_poisson_aweight_clu1 = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + infocrit=infocrit, + infocrit_colnames=infocrit_colnames, + infocrit_rownames=infocrit_rownames, + predicted=predicted, + predicted_colnames=predicted_colnames, + predicted_rownames=predicted_rownames, + **est + ) + +est = dict( + k_eq_model = 0, + vf = 1, + df = 10, + df_m = 6, + power = 0, + canonical = 1, + rank = 7, + aic = 7.055225702760191, + rc = 0, + p = 6.87057569032e-91, + chi2 = 435.380362705941, + ll = -52.96941847346162, + N_clust = 9, + k_autoCns = 0, + converged = 1, + k_dv = 1, + k_eq = 1, + k = 7, + ic = 3, + N = 17, + nbml = 0, + bic = -4.982438296344967, + dispers_ps = 3.006164170990202, + deviance_ps = 30.06164170990202, + dispers_p = 3.006164170990202, + deviance_p = 30.06164170990202, + dispers_s = 2.33496951442172, + deviance_s = 23.34969514421719, + dispers = 2.33496951442172, + deviance = 23.34969514421719, + phi = 1, + cmdline = "glm executions income perpoverty perblack LN_VC100k96 south degree [pweight=fweight], family(poisson) vce(cluster id)", + cmd = "glm", + predict = "glim_p", + marginsnotok = "stdp Anscombe Cooksd Deviance Hat Likelihood Pearson Response Score Working ADJusted STAndardized STUdentized MODified", + marginsok = "default", + hac_lag = "15", + vcetype = "Robust", + vce = "cluster", + linkt = "Log", + linkf = "ln(u)", + varfunct = "Poisson", + varfuncf = "u", + opt1 = "ML", + clustvar = "id", + oim = "oim", + a = "1", + m = "1", + varfunc = "glim_v3", + link = "glim_l03", + wexp = "= fweight", + wtype = "pweight", + chi2type = "Wald", + opt = "moptimize", + title = "Generalized linear models", + user = "glim_lf", + crittype = "log pseudolikelihood", + ml_method = "e2", + singularHmethod = "m-marquardt", + technique = "nr", + which = "max", + depvar = "executions", + properties = "b V", + ) + +params_table = np.array([ + .00025343868829, .0000293670276, 8.6300422274613, 6.132932700e-18, + .00019588037186, .00031099700472, np.nan, 1.9599639845401, + 0, .09081422305585, .09800194027664, .92665739881773, + .35410444288802, -.10126605030142, .28289449641311, np.nan, + 1.9599639845401, 0, -.09416451429381, .02511206083893, + -3.7497724658197, .00017699509401, -.14338324911569, -.04494577947193, + np.nan, 1.9599639845401, 0, .27652273809506, + .36749499886987, .75245306451906, .45177864537662, -.44375422418847, + .99679970037859, np.nan, 1.9599639845401, 0, + 2.239890838384, .51564197481271, 4.343887712395, .00001399830855, + 1.229251138834, 3.250530537934, np.nan, 1.9599639845401, + 0, -18.842583191417, 3.2292740757113, -5.8349284543976, + 5.381365332e-09, -25.17184407602, -12.513322306813, np.nan, + 1.9599639845401, 0, -6.5630017977416, 3.1938260811459, + -2.0549026875586, .03988840483712, -12.822785889672, -.30321770581092, + np.nan, 1.9599639845401, 0]).reshape(7,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +cov = np.array([ + 8.624223101e-10, 2.413510691e-06, 3.123995891e-07, -4.358439015e-06, + -8.084672085e-06, -4.785328653e-06, -.00003652286809, 2.413510691e-06, + .00960438029799, .00106422375754, -.00911884619892, -.03121758372723, + .06803953530989, -.17715756048416, 3.123995891e-07, .00106422375754, + .00063061559958, -.00844230553011, -.01177586448603, -.05361546061036, + .03844868195577, -4.358439015e-06, -.00911884619892, -.00844230553011, + .13505257419436, .14058853110927, .86184257188631, -.74146699290106, + -8.084672085e-06, -.03121758372723, -.01177586448603, .14058853110927, + .26588664618875, .75712244813913, -.35118919402718, -4.785328653e-06, + .06803953530989, -.05361546061036, .86184257188631, .75712244813913, + 10.428211056061, -8.3518020608948, -.00003652286809, -.17715756048416, + .03844868195577, -.74146699290106, -.35118919402718, -8.3518020608948, + 10.200525036608]).reshape(7,7) + +cov_colnames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +cov_rownames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +infocrit = np.array([ + 17, np.nan, -52.969418473462, 7, + 119.93883694692, 125.77133035532]) + +infocrit_colnames = 'N ll0 ll df AIC BIC'.split() + +infocrit_rownames = '.'.split() + +predicted = np.array([ + 34.815238952637, .07249507308006, 7.3026847839355, .17909966409206, + 1.2540435791016, .36725598573685, 3.9734709262848, .1719862818718, + 2.0739872455597, .27532628178596, 1.1471545696259, .51580721139908, + 1.7763512134552, .23559851944447, 2.2698366641998, .21655206382275, + 1.6349502801895, .27835717797279, 2.7504913806915, .44458091259003, + 2.862185716629, .54439353942871, 3.5617923736572, .57089400291443, + 2.6135795116425, .41426089406013, .775799036026, .35101860761642, + .93375068902969, .39217269420624, .56681954860687, .27232182025909, + 1.8914022445679, .24083258211613]).reshape(17,2) + +predicted_colnames = 'predict_mu predict_linpred_std'.split() + +predicted_rownames = 'r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17'.split() + + +results_poisson_pweight_clu1 = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + infocrit=infocrit, + infocrit_colnames=infocrit_colnames, + infocrit_rownames=infocrit_rownames, + predicted=predicted, + predicted_colnames=predicted_colnames, + predicted_rownames=predicted_rownames, + **est + ) + +est = dict( + rank = 7, + ll_0 = -55.23556912834824, + ll = -47.54122045581504, + r2_a = .3528737432046668, + rss = 267.3132086911238, + mss = 393.6105745962962, + rmse = 5.17023412130557, + r2 = .5955460895029168, + F = .7279778160729128, + df_r = 10, + df_m = 6, + N = 17, + cmdline = "regress executions income perpoverty perblack LN_VC100k96 south degree [aweight=fweight], vce(robust)", + title = "Linear regression", + marginsok = "XB default", + vce = "robust", + depvar = "executions", + cmd = "regress", + properties = "b V", + predict = "regres_p", + model = "ols", + estat_cmd = "regress_estat", + wexp = "= fweight", + wtype = "aweight", + vcetype = "Robust", + ) + +params_table = np.array([ + .00177624355887, .00100571734546, 1.7661458926668, .10782432028789, + -.00046463433267, .0040171214504, 10, 2.2281388519863, + 0, .70240571372092, .54986275700055, 1.2774200557835, + .23031379083217, -.5227648584123, 1.9275762858541, 10, + 2.2281388519863, 0, -.76566360596606, .46482124106144, + -1.6472216377583, .13053265392051, -1.8013498724035, .27002266047141, + 10, 2.2281388519863, 0, 5.7915855647065, + 5.8518623033717, .98969956305525, .34566324660643, -7.2471761899099, + 18.830347319323, 10, 2.2281388519863, 0, + 13.018291494864, 7.3741002410906, 1.7654074489417, .10795348742173, + -3.412227750751, 29.44881074048, 10, 2.2281388519863, + 0, -140.99921608421, 84.973820309491, -1.6593253730463, + .12803894207791, -330.33268651749, 48.334254349065, 10, + 2.2281388519863, 0, -68.484290889814, 50.764306481463, + -1.3490638528633, .20706938025917, -181.5942144553, 44.625632675673, + 10, 2.2281388519863, 0]).reshape(7,9) + +params_table_colnames = 'b se t pvalue ll ul df crit eform'.split() + +params_table_rownames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +cov = np.array([ + 1.011467379e-06, .00038778854684, -.00038909911416, .00356508765632, + .0056952104088, -.07926157334067, -.04218673068644, .00038778854684, + .30234905153625, -.10112236243026, .59175926747871, 1.4744074711876, + -25.6203584288, -14.793319880623, -.00038909911416, -.10112236243026, + .21605878614189, -2.3405630815795, -3.2257627901142, 31.66920792546, + 20.934058595259, .00356508765632, .59175926747871, -2.3405630815795, + 34.244292417623, 34.810403897967, -270.34292245471, -270.19382562804, + .0056952104088, 1.4744074711876, -3.2257627901142, 34.810403897967, + 54.377354365652, -414.2817137548, -324.24739845086, -.07926157334067, + -25.6203584288, 31.66920792546, -270.34292245471, -414.2817137548, + 7220.5501379896, 2907.4556071681, -.04218673068644, -14.793319880623, + 20.934058595259, -270.19382562804, -324.24739845086, 2907.4556071681, + 2577.0148125439]).reshape(7,7) + +cov_colnames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +cov_rownames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +infocrit = np.array([ + 17, -55.235569128348, -47.541220455815, 7, + 109.08244091163, 114.91493432002]) + +infocrit_colnames = 'N ll0 ll df AIC BIC'.split() + +infocrit_rownames = '.'.split() + +predicted = np.array([ + 23.018356323242, 11.030969619751, 7.6487560272217, 3.2376720905304, + 1.3298480510712, 2.4579885005951, 6.7120413780212, 2.8951823711395, + .90416890382767, 2.1985862255096, 1.9608836174011, 2.5452246665955, + 4.6054129600525, 2.8738057613373, 2.9902882575989, 1.8505314588547, + 1.4887162446976, 1.47836124897, 5.9044842720032, 4.8891386985779, + 7.0818486213684, 4.6786789894104, 7.5460968017578, 5.5129766464233, + 4.1125593185425, 2.3989260196686, -2.7979807853699, 3.8943622112274, + -1.4647831916809, 2.8729522228241, -3.5234127044678, 3.7701880931854, + 3.9779393672943, 1.9573417901993]).reshape(17,2) + +predicted_colnames = 'predict_mu predict_std'.split() + +predicted_rownames = 'r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17'.split() + + +results_wls_aweight_robust = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + infocrit=infocrit, + infocrit_colnames=infocrit_colnames, + infocrit_rownames=infocrit_rownames, + predicted=predicted, + predicted_colnames=predicted_colnames, + predicted_rownames=predicted_rownames, + **est + ) + +est = dict( + rank = 7, + ll_0 = -55.23556912834824, + ll = -47.54122045581504, + r2_a = .3528737432046668, + rss = 267.3132086911238, + mss = 393.6105745962962, + rmse = 5.17023412130557, + r2 = .5955460895029168, + F = 1.412187242235973, + df_r = 8, + df_m = 6, + N = 17, + N_clust = 9, + cmdline = "regress executions income perpoverty perblack LN_VC100k96 south degree [aweight=fweight], vce(cluster id)", + title = "Linear regression", + marginsok = "XB default", + vce = "cluster", + depvar = "executions", + cmd = "regress", + properties = "b V", + predict = "regres_p", + model = "ols", + estat_cmd = "regress_estat", + wexp = "= fweight", + wtype = "aweight", + vcetype = "Robust", + clustvar = "id", + ) + +params_table = np.array([ + .00177624355887, .00103574504038, 1.7149428571794, .12469817836724, + -.00061218878728, .00416467590501, 8, 2.3060041352042, + 0, .70240571372092, .64463869959516, 1.0896114585768, + .30761438040884, -.78413379325815, 2.1889452207, 8, + 2.3060041352042, 0, -.76566360596606, .50850811868177, + -1.5057057652313, .17056206446331, -1.9382854304311, .40695821849901, + 8, 2.3060041352042, 0, 5.7915855647065, + 6.2948340440059, .92005373362009, .3844480847801, -8.7243277711951, + 20.307498900608, 8, 2.3060041352042, 0, + 13.018291494864, 7.9526248350517, 1.6369804642972, .14027059672576, + -5.3204942604922, 31.357077250221, 8, 2.3060041352042, + 0, -140.99921608421, 84.897180497105, -1.6608233071889, + .13532738016362, -336.77246537771, 54.774033209288, 8, + 2.3060041352042, 0, -68.484290889814, 50.203382265366, + -1.3641369923608, .2096627597382, -184.25349799498, 47.284916215355, + 8, 2.3060041352042, 0]).reshape(7,9) + +params_table_colnames = 'b se t pvalue ll ul df crit eform'.split() + +params_table_rownames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +cov = np.array([ + 1.072767789e-06, .00042569049255, -.00044272344175, .00386796354086, + .00653558563917, -.08376884119522, -.04513384476642, .00042569049255, + .41555905301573, -.07730648264729, -.34087330734824, .82631440946934, + -31.768811666606, -10.324414524804, -.00044272344175, -.07730648264729, + .25858050676528, -2.8727606144729, -3.9481543148554, 35.836754991381, + 24.653552354067, .00386796354086, -.34087330734824, -2.8727606144729, + 39.624935641576, 42.351437415382, -335.98208369348, -283.16728769825, + .00653558563917, .82631440946934, -3.9481543148554, 42.351437415382, + 63.24424176708, -502.21726015398, -366.49477518415, -.08376884119522, + -31.768811666606, 35.836754991381, -335.98208369348, -502.21726015398, + 7207.531256358, 3532.1379707168, -.04513384476642, -10.324414524804, + 24.653552354067, -283.16728769825, -366.49477518415, 3532.1379707168, + 2520.3795908825]).reshape(7,7) + +cov_colnames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +cov_rownames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +infocrit = np.array([ + 17, -55.235569128348, -47.541220455815, 7, + 109.08244091163, 114.91493432002]) + +infocrit_colnames = 'N ll0 ll df AIC BIC'.split() + +infocrit_rownames = '.'.split() + +predicted = np.array([ + 23.018356323242, 11.727355003357, 7.6487560272217, 3.4638004302979, + 1.3298480510712, 2.1195623874664, 6.7120413780212, 2.8227334022522, + .90416890382767, 2.2036759853363, 1.9608836174011, 2.0707910060883, + 4.6054129600525, 2.9022018909454, 2.9902882575989, 1.6939970254898, + 1.4887162446976, 1.8477793931961, 5.9044842720032, 4.8752007484436, + 7.0818486213684, 4.4365234375, 7.5460968017578, 5.6850047111511, + 4.1125593185425, 2.7407164573669, -2.7979807853699, 3.9614858627319, + -1.4647831916809, 2.4376966953278, -3.5234127044678, 3.5529434680939, + 3.9779393672943, 1.7075037956238]).reshape(17,2) + +predicted_colnames = 'predict_mu predict_std'.split() + +predicted_rownames = 'r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17'.split() + + +results_wls_aweight_clu1 = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + infocrit=infocrit, + infocrit_colnames=infocrit_colnames, + infocrit_rownames=infocrit_rownames, + predicted=predicted, + predicted_colnames=predicted_colnames, + predicted_rownames=predicted_rownames, + **est + ) + +est = dict( + rank = 7, + ll_0 = -107.2219871314995, + ll = -92.28589853187629, + r2_a = .5022105716958969, + rss = 518.9021109886529, + mss = 764.067585981045, + rmse = 4.467412394167744, + r2 = .5955460895029162, + F = 1.835843414931295, + df_r = 8, + df_m = 6, + N = 33, + N_clust = 9, + cmdline = "regress executions income perpoverty perblack LN_VC100k96 south degree [fweight=fweight], vce(cluster id)", + title = "Linear regression", + marginsok = "XB default", + vce = "cluster", + depvar = "executions", + cmd = "regress", + properties = "b V", + predict = "regres_p", + model = "ols", + estat_cmd = "regress_estat", + wexp = "= fweight", + wtype = "fweight", + vcetype = "Robust", + clustvar = "id", + ) + +params_table = np.array([ + .00177624355887, .00090840849363, 1.9553357012053, .08627786102497, + -.00031855018389, .00387103730162, 8, 2.3060041352042, + 0, .70240571372091, .56538554103558, 1.2423482079757, + .24928937729829, -.60137568189177, 2.0061871093336, 8, + 2.3060041352042, 0, -.76566360596606, .44599112337258, + -1.7167687109468, .12435346910262, -1.7941209807276, .26279376879547, + 8, 2.3060041352042, 0, 5.7915855647065, + 5.5209346785031, 1.0490226568442, .32482245151877, -6.9397126341137, + 18.522883763527, 8, 2.3060041352042, 0, + 13.018291494864, 6.9749133861223, 1.866444896759, .09894610636006, + -3.0658876162246, 29.102470605953, 8, 2.3060041352042, + 0, -140.99921608421, 74.459752971542, -1.8936299202886, + .09489418422765, -312.70371434287, 30.705282174445, 8, + 2.3060041352042, 0, -68.484290889814, 44.031279012175, + -1.5553554751584, .15847103736706, -170.02060237022, 33.05202059059, + 8, 2.3060041352042, 0]).reshape(7,9) + +params_table_colnames = 'b se t pvalue ll ul df crit eform'.split() + +params_table_rownames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +cov = np.array([ + 8.252059913e-07, .00032745422504, -.00034055649365, .00297535656989, + .0050273735686, -.06443757015017, -.03471834212801, .00032745422504, + .31966081001209, -.05946652511329, -.26221023642171, .63562646882257, + -24.437547435849, -7.9418573267692, -.00034055649365, -.05946652511329, + .19890808212714, -2.2098158572872, -3.037041780658, 27.566734608754, + 18.96427104159, .00297535656989, -.26221023642171, -2.2098158572872, + 30.480719724298, 32.578028781062, -258.44775668729, -217.82099053713, + .0050273735686, .63562646882257, -3.037041780658, 32.578028781062, + 48.649416743908, -386.32096934921, -281.91905783396, -.06443757015017, + -24.437547435849, 27.566734608754, -258.44775668729, -386.32096934921, + 5544.254812583, 2717.0292082435, -.03471834212801, -7.9418573267692, + 18.96427104159, -217.82099053713, -281.91905783396, 2717.0292082435, + 1938.753531448]).reshape(7,7) + +cov_colnames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +cov_rownames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +infocrit = np.array([ + 33, -107.2219871315, -92.285898531876, 7, + 198.57179706375, 209.04734999402]) + +infocrit_colnames = 'N ll0 ll df AIC BIC'.split() + +infocrit_rownames = '.'.split() + +predicted = np.array([ + 23.018356323242, 10.285571098328, 7.6487560272217, 3.0379540920258, + 1.3298480510712, 1.8589791059494, 6.7120413780212, 2.4757008552551, + .90416890382767, 1.9327516555786, 1.9608836174011, 1.8162038326263, + 4.6054129600525, 2.5453994274139, 2.9902882575989, 1.485733628273, + 1.4887162446976, 1.6206097602844, 5.9044842720032, 4.2758340835571, + 7.0818486213684, 3.8910882472992, 7.5460968017578, 4.9860787391663, + 4.1125593185425, 2.4037673473358, -2.7979807853699, 3.4744529724121, + -1.4647831916809, 2.1380014419556, -3.5234127044678, 3.1161375045776, + 3.9779393672943, 1.4975799322128]).reshape(17,2) + +predicted_colnames = 'predict_mu predict_std'.split() + +predicted_rownames = 'r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17'.split() + + +results_wls_fweight_clu1 = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + infocrit=infocrit, + infocrit_colnames=infocrit_colnames, + infocrit_rownames=infocrit_rownames, + predicted=predicted, + predicted_colnames=predicted_colnames, + predicted_rownames=predicted_rownames, + **est + ) + +est = dict( + rank = 7, + ll_0 = -55.23556912834824, + ll = -47.54122045581504, + r2_a = .3528737432046668, + rss = 267.3132086911238, + mss = 393.6105745962962, + rmse = 5.17023412130557, + r2 = .5955460895029168, + F = 1.412187242235973, + df_r = 8, + df_m = 6, + N = 17, + N_clust = 9, + cmdline = "regress executions income perpoverty perblack LN_VC100k96 south degree [pweight=fweight], vce(cluster id)", + title = "Linear regression", + marginsok = "XB default", + vce = "cluster", + depvar = "executions", + cmd = "regress", + properties = "b V", + predict = "regres_p", + model = "ols", + estat_cmd = "regress_estat", + wexp = "= fweight", + wtype = "pweight", + vcetype = "Robust", + clustvar = "id", + ) + +params_table = np.array([ + .00177624355887, .00103574504038, 1.7149428571794, .12469817836724, + -.00061218878728, .00416467590501, 8, 2.3060041352042, + 0, .70240571372092, .64463869959516, 1.0896114585768, + .30761438040884, -.78413379325815, 2.1889452207, 8, + 2.3060041352042, 0, -.76566360596606, .50850811868177, + -1.5057057652313, .17056206446331, -1.9382854304311, .40695821849901, + 8, 2.3060041352042, 0, 5.7915855647065, + 6.2948340440059, .92005373362009, .3844480847801, -8.7243277711951, + 20.307498900608, 8, 2.3060041352042, 0, + 13.018291494864, 7.9526248350517, 1.6369804642972, .14027059672576, + -5.3204942604922, 31.357077250221, 8, 2.3060041352042, + 0, -140.99921608421, 84.897180497105, -1.6608233071889, + .13532738016362, -336.77246537771, 54.774033209288, 8, + 2.3060041352042, 0, -68.484290889814, 50.203382265366, + -1.3641369923608, .2096627597382, -184.25349799498, 47.284916215355, + 8, 2.3060041352042, 0]).reshape(7,9) + +params_table_colnames = 'b se t pvalue ll ul df crit eform'.split() + +params_table_rownames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +cov = np.array([ + 1.072767789e-06, .00042569049255, -.00044272344175, .00386796354086, + .00653558563917, -.08376884119522, -.04513384476642, .00042569049255, + .41555905301573, -.07730648264729, -.34087330734824, .82631440946934, + -31.768811666606, -10.324414524804, -.00044272344175, -.07730648264729, + .25858050676528, -2.8727606144729, -3.9481543148554, 35.836754991381, + 24.653552354067, .00386796354086, -.34087330734824, -2.8727606144729, + 39.624935641576, 42.351437415382, -335.98208369348, -283.16728769825, + .00653558563917, .82631440946934, -3.9481543148554, 42.351437415382, + 63.24424176708, -502.21726015398, -366.49477518415, -.08376884119522, + -31.768811666606, 35.836754991381, -335.98208369348, -502.21726015398, + 7207.531256358, 3532.1379707168, -.04513384476642, -10.324414524804, + 24.653552354067, -283.16728769825, -366.49477518415, 3532.1379707168, + 2520.3795908825]).reshape(7,7) + +cov_colnames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +cov_rownames = 'income perpoverty perblack LN_VC100k96 south degree _cons'.split() + +infocrit = np.array([ + 17, -55.235569128348, -47.541220455815, 7, + 109.08244091163, 114.91493432002]) + +infocrit_colnames = 'N ll0 ll df AIC BIC'.split() + +infocrit_rownames = '.'.split() + +predicted = np.array([ + 23.018356323242, 11.727355003357, 7.6487560272217, 3.4638004302979, + 1.3298480510712, 2.1195623874664, 6.7120413780212, 2.8227334022522, + .90416890382767, 2.2036759853363, 1.9608836174011, 2.0707910060883, + 4.6054129600525, 2.9022018909454, 2.9902882575989, 1.6939970254898, + 1.4887162446976, 1.8477793931961, 5.9044842720032, 4.8752007484436, + 7.0818486213684, 4.4365234375, 7.5460968017578, 5.6850047111511, + 4.1125593185425, 2.7407164573669, -2.7979807853699, 3.9614858627319, + -1.4647831916809, 2.4376966953278, -3.5234127044678, 3.5529434680939, + 3.9779393672943, 1.7075037956238]).reshape(17,2) + +predicted_colnames = 'predict_mu predict_std'.split() + +predicted_rownames = 'r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17'.split() + + +results_wls_pweight_clu1 = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + infocrit=infocrit, + infocrit_colnames=infocrit_colnames, + infocrit_rownames=infocrit_rownames, + predicted=predicted, + predicted_colnames=predicted_colnames, + predicted_rownames=predicted_rownames, + **est + ) + diff --git a/statsmodels/genmod/tests/results/stata_cancer_glm.csv b/statsmodels/genmod/tests/results/stata_cancer_glm.csv new file mode 100644 index 0000000..e6f92e6 --- /dev/null +++ b/statsmodels/genmod/tests/results/stata_cancer_glm.csv @@ -0,0 +1,49 @@ +studytime,age,drug +1,61,1 +1,65,1 +2,59,1 +3,52,1 +4,56,1 +4,67,1 +5,63,1 +5,58,1 +8,56,1 +8,58,1 +8,52,1 +8,49,1 +11,50,1 +11,55,1 +12,49,1 +12,62,1 +15,51,1 +17,49,1 +22,57,1 +23,52,1 +6,67,2 +6,65,2 +7,58,2 +9,56,2 +10,49,2 +11,61,2 +13,62,2 +15,50,2 +16,67,2 +19,50,2 +20,55,2 +22,58,2 +23,47,2 +32,52,2 +6,55,3 +10,54,3 +17,60,3 +19,49,3 +24,58,3 +25,50,3 +25,55,3 +28,57,3 +28,48,3 +32,56,3 +33,60,3 +34,62,3 +35,48,3 +39,52,3 diff --git a/statsmodels/genmod/tests/results/stata_lbw_glm.csv b/statsmodels/genmod/tests/results/stata_lbw_glm.csv new file mode 100644 index 0000000..e083b5b --- /dev/null +++ b/statsmodels/genmod/tests/results/stata_lbw_glm.csv @@ -0,0 +1,191 @@ +id,low,age,lwt,race,smoke,ptl,ht,ui,ftv,bwt +85,0,19,182,"black",0,0,0,1,0,2523 +86,0,33,155,"other",0,0,0,0,3,2551 +87,0,20,105,"white",1,0,0,0,1,2557 +88,0,21,108,"white",1,0,0,1,2,2594 +89,0,18,107,"white",1,0,0,1,0,2600 +91,0,21,124,"other",0,0,0,0,0,2622 +92,0,22,118,"white",0,0,0,0,1,2637 +93,0,17,103,"other",0,0,0,0,1,2637 +94,0,29,123,"white",1,0,0,0,1,2663 +95,0,26,113,"white",1,0,0,0,0,2665 +96,0,19,95,"other",0,0,0,0,0,2722 +97,0,19,150,"other",0,0,0,0,1,2733 +98,0,22,95,"other",0,0,1,0,0,2750 +99,0,30,107,"other",0,1,0,1,2,2750 +100,0,18,100,"white",1,0,0,0,0,2769 +101,0,18,100,"white",1,0,0,0,0,2769 +102,0,15,98,"black",0,0,0,0,0,2778 +103,0,25,118,"white",1,0,0,0,3,2782 +104,0,20,120,"other",0,0,0,1,0,2807 +105,0,28,120,"white",1,0,0,0,1,2821 +106,0,32,121,"other",0,0,0,0,2,2835 +107,0,31,100,"white",0,0,0,1,3,2835 +108,0,36,202,"white",0,0,0,0,1,2836 +109,0,28,120,"other",0,0,0,0,0,2863 +111,0,25,120,"other",0,0,0,1,2,2877 +112,0,28,167,"white",0,0,0,0,0,2877 +113,0,17,122,"white",1,0,0,0,0,2906 +114,0,29,150,"white",0,0,0,0,2,2920 +115,0,26,168,"black",1,0,0,0,0,2920 +116,0,17,113,"black",0,0,0,0,1,2920 +117,0,17,113,"black",0,0,0,0,1,2920 +118,0,24,90,"white",1,1,0,0,1,2948 +119,0,35,121,"black",1,1,0,0,1,2948 +120,0,25,155,"white",0,0,0,0,1,2977 +121,0,25,125,"black",0,0,0,0,0,2977 +123,0,29,140,"white",1,0,0,0,2,2977 +124,0,19,138,"white",1,0,0,0,2,2977 +125,0,27,124,"white",1,0,0,0,0,2922 +126,0,31,215,"white",1,0,0,0,2,3005 +127,0,33,109,"white",1,0,0,0,1,3033 +128,0,21,185,"black",1,0,0,0,2,3042 +129,0,19,189,"white",0,0,0,0,2,3062 +130,0,23,130,"black",0,0,0,0,1,3062 +131,0,21,160,"white",0,0,0,0,0,3062 +132,0,18,90,"white",1,0,0,1,0,3076 +133,0,18,90,"white",1,0,0,1,0,3076 +134,0,32,132,"white",0,0,0,0,4,3080 +135,0,19,132,"other",0,0,0,0,0,3090 +136,0,24,115,"white",0,0,0,0,2,3090 +137,0,22,85,"other",1,0,0,0,0,3090 +138,0,22,120,"white",0,0,1,0,1,3100 +139,0,23,128,"other",0,0,0,0,0,3104 +140,0,22,130,"white",1,0,0,0,0,3132 +141,0,30,95,"white",1,0,0,0,2,3147 +142,0,19,115,"other",0,0,0,0,0,3175 +143,0,16,110,"other",0,0,0,0,0,3175 +144,0,21,110,"other",1,0,0,1,0,3203 +145,0,30,153,"other",0,0,0,0,0,3203 +146,0,20,103,"other",0,0,0,0,0,3203 +147,0,17,119,"other",0,0,0,0,0,3225 +148,0,17,119,"other",0,0,0,0,0,3225 +149,0,23,119,"other",0,0,0,0,2,3232 +150,0,24,110,"other",0,0,0,0,0,3232 +151,0,28,140,"white",0,0,0,0,0,3234 +154,0,26,133,"other",1,2,0,0,0,3260 +155,0,20,169,"other",0,1,0,1,1,3274 +156,0,24,115,"other",0,0,0,0,2,3274 +159,0,28,250,"other",1,0,0,0,6,3303 +160,0,20,141,"white",0,2,0,1,1,3317 +161,0,22,158,"black",0,1,0,0,2,3317 +162,0,22,112,"white",1,2,0,0,0,3317 +163,0,31,150,"other",1,0,0,0,2,3321 +164,0,23,115,"other",1,0,0,0,1,3331 +166,0,16,112,"black",0,0,0,0,0,3374 +167,0,16,135,"white",1,0,0,0,0,3374 +168,0,18,229,"black",0,0,0,0,0,3402 +169,0,25,140,"white",0,0,0,0,1,3416 +170,0,32,134,"white",1,1,0,0,4,3430 +172,0,20,121,"black",1,0,0,0,0,3444 +173,0,23,190,"white",0,0,0,0,0,3459 +174,0,22,131,"white",0,0,0,0,1,3460 +175,0,32,170,"white",0,0,0,0,0,3473 +176,0,30,110,"other",0,0,0,0,0,3475 +177,0,20,127,"other",0,0,0,0,0,3487 +179,0,23,123,"other",0,0,0,0,0,3544 +180,0,17,120,"other",1,0,0,0,0,3572 +181,0,19,105,"other",0,0,0,0,0,3572 +182,0,23,130,"white",0,0,0,0,0,3586 +183,0,36,175,"white",0,0,0,0,0,3600 +184,0,22,125,"white",0,0,0,0,1,3614 +185,0,24,133,"white",0,0,0,0,0,3614 +186,0,21,134,"other",0,0,0,0,2,3629 +187,0,19,235,"white",1,0,1,0,0,3629 +188,0,25,95,"white",1,3,0,1,0,3637 +189,0,16,135,"white",1,0,0,0,0,3643 +190,0,29,135,"white",0,0,0,0,1,3651 +191,0,29,154,"white",0,0,0,0,1,3651 +192,0,19,147,"white",1,0,0,0,0,3651 +193,0,19,147,"white",1,0,0,0,0,3651 +195,0,30,137,"white",0,0,0,0,1,3699 +196,0,24,110,"white",0,0,0,0,1,3728 +197,0,19,184,"white",1,0,1,0,0,3756 +199,0,24,110,"other",0,1,0,0,0,3770 +200,0,23,110,"white",0,0,0,0,1,3770 +201,0,20,120,"other",0,0,0,0,0,3770 +202,0,25,241,"black",0,0,1,0,0,3790 +203,0,30,112,"white",0,0,0,0,1,3799 +204,0,22,169,"white",0,0,0,0,0,3827 +205,0,18,120,"white",1,0,0,0,2,3856 +206,0,16,170,"black",0,0,0,0,4,3860 +207,0,32,186,"white",0,0,0,0,2,3860 +208,0,18,120,"other",0,0,0,0,1,3884 +209,0,29,130,"white",1,0,0,0,2,3884 +210,0,33,117,"white",0,0,0,1,1,3912 +211,0,20,170,"white",1,0,0,0,0,3940 +212,0,28,134,"other",0,0,0,0,1,3941 +213,0,14,135,"white",0,0,0,0,0,3941 +214,0,28,130,"other",0,0,0,0,0,3969 +215,0,25,120,"white",0,0,0,0,2,3983 +216,0,16,95,"other",0,0,0,0,1,3997 +217,0,20,158,"white",0,0,0,0,1,3997 +218,0,26,160,"other",0,0,0,0,0,4054 +219,0,21,115,"white",0,0,0,0,1,4054 +220,0,22,129,"white",0,0,0,0,0,4111 +221,0,25,130,"white",0,0,0,0,2,4153 +222,0,31,120,"white",0,0,0,0,2,4167 +223,0,35,170,"white",0,1,0,0,1,4174 +224,0,19,120,"white",1,0,0,0,0,4238 +225,0,24,116,"white",0,0,0,0,1,4593 +226,0,45,123,"white",0,0,0,0,1,4990 +4,1,28,120,"other",1,1,0,1,0,709 +10,1,29,130,"white",0,0,0,1,2,1021 +11,1,34,187,"black",1,0,1,0,0,1135 +13,1,25,105,"other",0,1,1,0,0,1330 +15,1,25,85,"other",0,0,0,1,0,1474 +16,1,27,150,"other",0,0,0,0,0,1588 +17,1,23,97,"other",0,0,0,1,1,1588 +18,1,24,128,"black",0,1,0,0,1,1701 +19,1,24,132,"other",0,0,1,0,0,1729 +20,1,21,165,"white",1,0,1,0,1,1790 +22,1,32,105,"white",1,0,0,0,0,1818 +23,1,19,91,"white",1,2,0,1,0,1885 +24,1,25,115,"other",0,0,0,0,0,1893 +25,1,16,130,"other",0,0,0,0,1,1899 +26,1,25,92,"white",1,0,0,0,0,1928 +27,1,20,150,"white",1,0,0,0,2,1928 +28,1,21,200,"black",0,0,0,1,2,1928 +29,1,24,155,"white",1,1,0,0,0,1936 +30,1,21,103,"other",0,0,0,0,0,1970 +31,1,20,125,"other",0,0,0,1,0,2055 +32,1,25,89,"other",0,2,0,0,1,2055 +33,1,19,102,"white",0,0,0,0,2,2082 +34,1,19,112,"white",1,0,0,1,0,2084 +35,1,26,117,"white",1,1,0,0,0,2084 +36,1,24,138,"white",0,0,0,0,0,2100 +37,1,17,130,"other",1,1,0,1,0,2125 +40,1,20,120,"black",1,0,0,0,3,2126 +42,1,22,130,"white",1,1,0,1,1,2187 +43,1,27,130,"black",0,0,0,1,0,2187 +44,1,20,80,"other",1,0,0,1,0,2211 +45,1,17,110,"white",1,0,0,0,0,2225 +46,1,25,105,"other",0,1,0,0,1,2240 +47,1,20,109,"other",0,0,0,0,0,2240 +49,1,18,148,"other",0,0,0,0,0,2282 +50,1,18,110,"black",1,1,0,0,0,2296 +51,1,20,121,"white",1,1,0,1,0,2296 +52,1,21,100,"other",0,1,0,0,4,2301 +54,1,26,96,"other",0,0,0,0,0,2325 +56,1,31,102,"white",1,1,0,0,1,2353 +57,1,15,110,"white",0,0,0,0,0,2353 +59,1,23,187,"black",1,0,0,0,1,2367 +60,1,20,122,"black",1,0,0,0,0,2381 +61,1,24,105,"black",1,0,0,0,0,2381 +62,1,15,115,"other",0,0,0,1,0,2381 +63,1,23,120,"other",0,0,0,0,0,2395 +65,1,30,142,"white",1,1,0,0,0,2410 +67,1,22,130,"white",1,0,0,0,1,2410 +68,1,17,120,"white",1,0,0,0,3,2414 +69,1,23,110,"white",1,1,0,0,0,2424 +71,1,17,120,"black",0,0,0,0,2,2438 +75,1,26,154,"other",0,1,1,0,1,2442 +76,1,20,106,"other",0,0,0,0,3,2450 +77,1,26,190,"white",1,0,0,0,0,2466 +78,1,14,101,"other",1,1,0,0,0,2466 +79,1,28,95,"white",1,0,0,0,2,2466 +81,1,14,100,"other",0,0,0,0,2,2495 +82,1,23,94,"other",1,0,0,0,0,2495 +83,1,17,142,"black",0,0,1,0,0,2495 +84,1,21,130,"white",1,0,1,0,3,2495 + diff --git a/statsmodels/genmod/tests/results/stata_medpar1_glm.csv b/statsmodels/genmod/tests/results/stata_medpar1_glm.csv new file mode 100644 index 0000000..05ae405 --- /dev/null +++ b/statsmodels/genmod/tests/results/stata_medpar1_glm.csv @@ -0,0 +1,3677 @@ +los,admitype,codes +8,"type1|2",9 +1,"type1|2",9 +23,"type1|2",9 +8,"type1|2",9 +1,"type1|2",7 +1,"type1|2",9 +7,"type1|2",9 +18,"type1|2",8 +9,"type1|2",9 +19,"type1|2",9 +12,"type1|2",9 +1,"type1|2",9 +18,"type1|2",9 +1,"type1|2",7 +11,"type1|2",9 +2,"type1|2",6 +19,"type1|2",9 +1,"type1|2",6 +2,"type1|2",5 +1,"type1|2",5 +10,"type1|2",9 +3,"type1|2",9 +5,"type1|2",8 +17,"type1|2",9 +1,"type1|2",7 +17,"type1|2",9 +6,"type1|2",4 +16,"type1|2",9 +20,"type1|2",9 +9,"type1|2",9 +1,"type1|2",7 +1,"type1|2",9 +7,"type1|2",9 +1,"type1|2",9 +6,"type1|2",9 +19,"type1|2",9 +14,"type1|2",3 +14,"type1|2",9 +5,"type1|2",9 +1,"type1|2",4 +16,"type1|2",9 +8,"type1|2",9 +75,"type1|2",5 +25,"type1|2",9 +11,"type1|2",9 +9,"type1|2",9 +12,"type1|2",6 +11,"type1|2",8 +9,"type1|2",8 +9,"type1|2",4 +11,"type1|2",5 +3,"type1|2",9 +7,"type1|2",9 +1,"type1|2",9 +27,"type1|2",9 +4,"type1|2",6 +1,"type1|2",9 +10,"type1|2",9 +3,"type1|2",8 +1,"type1|2",9 +10,"type1|2",9 +4,"type1|2",9 +6,"type1|2",9 +1,"type1|2",7 +3,"type1|2",8 +4,"type1|2",8 +3,"type1|2",6 +36,"type1|2",9 +7,"type1|2",9 +5,"type1|2",9 +4,"type1|2",7 +7,"type1|2",9 +3,"type1|2",9 +7,"type1|2",3 +2,"type1|2",7 +10,"type1|2",9 +4,"type1|2",9 +6,"type1|2",9 +9,"type1|2",9 +6,"type1|2",9 +5,"type1|2",6 +3,"type1|2",6 +16,"type1|2",9 +3,"type1|2",8 +7,"type1|2",9 +13,"type1|2",9 +4,"type1|2",9 +3,"type1|2",5 +4,"type1|2",9 +5,"type1|2",8 +7,"type1|2",9 +8,"type1|2",8 +4,"type1|2",9 +3,"type1|2",9 +2,"type1|2",9 +2,"type1|2",9 +2,"type1|2",9 +2,"type1|2",9 +3,"type1|2",9 +12,"type1|2",9 +13,"type1|2",9 +6,"type1|2",9 +7,"type1|2",6 +4,"type1|2",8 +2,"type1|2",6 +3,"type1|2",9 +15,"type1|2",9 +2,"type1|2",5 +3,"type1|2",7 +6,"type1|2",9 +11,"type1|2",5 +1,"type1|2",8 +4,"type1|2",3 +5,"type1|2",9 +9,"type1|2",9 +5,"type1|2",6 +3,"type1|2",6 +6,"type1|2",8 +5,"type1|2",9 +4,"type1|2",9 +3,"type1|2",9 +3,"type1|2",9 +4,"type1|2",9 +3,"type1|2",8 +2,"type1|2",4 +2,"type1|2",9 +5,"type1|2",8 +4,"type1|2",8 +6,"type1|2",9 +3,"type1|2",9 +8,"type1|2",9 +9,"type1|2",9 +3,"type1|2",9 +2,"type1|2",8 +4,"type1|2",9 +3,"type1|2",8 +2,"type1|2",9 +5,"type1|2",9 +5,"type1|2",8 +9,"type1|2",9 +6,"type1|2",9 +9,"type1|2",9 +3,"type1|2",9 +2,"type1|2",9 +7,"type1|2",7 +7,"type1|2",9 +5,"type1|2",9 +2,"type1|2",9 +10,"type1|2",9 +6,"type1|2",9 +3,"type1|2",9 +9,"type1|2",9 +6,"type1|2",9 +9,"type1|2",9 +4,"type1|2",7 +13,"type1|2",9 +4,"type1|2",9 +5,"type1|2",8 +2,"type1|2",3 +8,"type1|2",9 +8,"type1|2",9 +2,"type1|2",6 +9,"type1|2",9 +7,"type1|2",7 +1,"type1|2",4 +7,"type1|2",7 +5,"type1|2",8 +5,"type1|2",8 +13,"type1|2",9 +4,"type1|2",9 +7,"type1|2",7 +3,"type1|2",9 +6,"type1|2",9 +3,"type1|2",4 +4,"type1|2",9 +2,"type1|2",8 +21,"type1|2",9 +5,"type1|2",8 +5,"type1|2",9 +4,"type1|2",6 +9,"type1|2",9 +3,"type1|2",4 +5,"type1|2",5 +4,"type1|2",9 +13,"type1|2",9 +5,"type1|2",9 +5,"type1|2",9 +8,"type1|2",9 +4,"type1|2",9 +6,"type1|2",8 +4,"type1|2",9 +3,"type1|2",4 +4,"type1|2",6 +2,"type1|2",9 +6,"type1|2",9 +5,"type1|2",9 +4,"type1|2",9 +9,"type1|2",4 +6,"type1|2",9 +5,"type1|2",9 +4,"type1|2",9 +4,"type1|2",8 +3,"type1|2",7 +13,"type1|2",9 +2,"type1|2",9 +12,"type1|2",9 +3,"type1|2",5 +5,"type1|2",9 +4,"type1|2",8 +6,"type1|2",9 +7,"type1|2",9 +2,"type1|2",9 +3,"type1|2",9 +6,"type1|2",8 +7,"type1|2",9 +2,"type1|2",8 +6,"type1|2",9 +3,"type1|2",8 +3,"type1|2",4 +3,"type1|2",7 +1,"type1|2",6 +3,"type1|2",8 +6,"type1|2",8 +5,"type1|2",9 +8,"type1|2",9 +10,"type1|2",9 +3,"type1|2",8 +7,"type1|2",9 +6,"type1|2",9 +4,"type1|2",8 +5,"type1|2",7 +3,"type1|2",9 +4,"type1|2",6 +4,"type1|2",7 +6,"type1|2",9 +2,"type1|2",9 +11,"type1|2",9 +2,"type1|2",9 +5,"type1|2",8 +5,"type1|2",9 +2,"type1|2",4 +6,"type1|2",9 +12,"type1|2",6 +5,"type1|2",9 +3,"type1|2",8 +5,"type1|2",7 +5,"type1|2",4 +2,"type1|2",4 +6,"type1|2",9 +4,"type1|2",8 +16,"type1|2",9 +7,"type1|2",9 +7,"type1|2",9 +3,"type1|2",8 +4,"type1|2",4 +6,"type1|2",9 +2,"type1|2",9 +6,"type1|2",9 +5,"type1|2",9 +7,"type1|2",6 +6,"type1|2",9 +6,"type1|2",9 +4,"type1|2",9 +5,"type1|2",6 +10,"type1|2",9 +3,"type1|2",7 +8,"type1|2",9 +3,"type1|2",5 +8,"type1|2",4 +3,"type1|2",8 +6,"type1|2",7 +6,"type1|2",9 +5,"type1|2",9 +5,"type1|2",9 +1,"type1|2",6 +5,"type1|2",9 +5,"type1|2",9 +14,"type1|2",9 +3,"type1|2",8 +3,"type1|2",9 +7,"type1|2",9 +13,"type1|2",9 +4,"type1|2",9 +3,"type1|2",8 +11,"type1|2",9 +2,"type1|2",3 +3,"type1|2",5 +16,"type1|2",9 +39,"type1|2",9 +7,"type1|2",9 +4,"type1|2",5 +10,"type1|2",9 +4,"type1|2",9 +7,"type1|2",8 +18,"type1|2",9 +3,"type1|2",9 +6,"type1|2",8 +6,"type1|2",3 +13,"type1|2",9 +10,"type1|2",9 +6,"type1|2",9 +15,"type1|2",9 +3,"type1|2",4 +5,"type1|2",9 +4,"type1|2",8 +11,"type1|2",9 +11,"type1|2",6 +12,"type1|2",6 +5,"type1|2",8 +2,"type1|2",9 +5,"type1|2",8 +3,"type1|2",8 +2,"type1|2",9 +4,"type1|2",4 +2,"type1|2",9 +3,"type1|2",9 +1,"type1|2",9 +7,"type1|2",6 +9,"type1|2",8 +11,"type1|2",9 +4,"type1|2",3 +5,"type1|2",8 +4,"type1|2",6 +2,"type1|2",7 +7,"type1|2",9 +2,"type1|2",9 +6,"type1|2",9 +5,"type1|2",9 +4,"type1|2",4 +11,"type1|2",9 +2,"type1|2",6 +8,"type1|2",9 +4,"type1|2",8 +2,"type1|2",6 +2,"type1|2",5 +11,"type1|2",9 +6,"type1|2",9 +5,"type1|2",9 +2,"type1|2",5 +3,"type1|2",8 +7,"type1|2",9 +3,"type1|2",8 +5,"type1|2",7 +9,"type1|2",9 +4,"type1|2",9 +4,"type1|2",9 +12,"type1|2",9 +3,"type1|2",6 +8,"type1|2",9 +7,"type1|2",9 +7,"type1|2",9 +7,"type1|2",9 +17,"type1|2",9 +5,"type1|2",3 +3,"type1|2",9 +8,"type1|2",9 +4,"type1|2",9 +10,"type1|2",9 +4,"type1|2",9 +1,"type1|2",9 +13,"type1|2",9 +13,"type1|2",9 +20,"type1|2",9 +3,"type1|2",5 +13,"type1|2",9 +21,"type1|2",9 +4,"type1|2",9 +4,"type1|2",9 +8,"type1|2",9 +4,"type1|2",9 +4,"type1|2",9 +4,"type1|2",9 +15,"type1|2",8 +5,"type1|2",9 +4,"type1|2",9 +14,"type1|2",8 +3,"type1|2",9 +2,"type1|2",8 +8,"type1|2",9 +3,"type1|2",6 +4,"type1|2",8 +14,"type1|2",9 +4,"type1|2",8 +5,"type1|2",9 +8,"type1|2",8 +3,"type1|2",9 +7,"type1|2",9 +4,"type1|2",9 +4,"type1|2",9 +2,"type1|2",9 +4,"type1|2",9 +3,"type1|2",9 +2,"type1|2",9 +8,"type1|2",9 +6,"type1|2",3 +4,"type1|2",9 +3,"type1|2",9 +4,"type1|2",9 +4,"type1|2",8 +6,"type1|2",9 +4,"type1|2",9 +6,"type1|2",8 +1,"type1|2",9 +2,"type1|2",9 +10,"type1|2",8 +7,"type1|2",7 +5,"type1|2",9 +7,"type1|2",9 +4,"type1|2",9 +3,"type1|2",9 +2,"type1|2",7 +5,"type1|2",9 +3,"type1|2",8 +8,"type1|2",9 +4,"type1|2",9 +3,"type1|2",9 +4,"type1|2",3 +2,"type1|2",9 +6,"type1|2",8 +5,"type1|2",8 +6,"type1|2",5 +5,"type1|2",7 +5,"type1|2",8 +17,"type1|2",9 +9,"type1|2",9 +19,"type1|2",9 +17,"type1|2",9 +5,"type1|2",3 +3,"type1|2",6 +3,"type1|2",5 +6,"type1|2",9 +9,"type1|2",9 +4,"type1|2",9 +4,"type1|2",9 +8,"type1|2",9 +15,"type1|2",9 +25,"type1|2",9 +10,"type1|2",9 +5,"type1|2",5 +4,"type1|2",8 +4,"type1|2",9 +19,"type1|2",9 +6,"type1|2",7 +9,"type1|2",9 +3,"type1|2",8 +5,"type1|2",9 +3,"type1|2",9 +3,"type1|2",9 +3,"type1|2",7 +9,"type1|2",9 +8,"type1|2",9 +7,"type1|2",9 +8,"type1|2",9 +6,"type1|2",9 +16,"type1|2",8 +2,"type1|2",9 +4,"type1|2",6 +2,"type1|2",7 +5,"type1|2",9 +7,"type1|2",7 +5,"type1|2",8 +4,"type1|2",7 +6,"type1|2",7 +7,"type1|2",9 +5,"type1|2",7 +9,"type1|2",9 +4,"type1|2",9 +2,"type1|2",9 +10,"type1|2",5 +3,"type1|2",8 +3,"type1|2",9 +10,"type1|2",9 +6,"type1|2",9 +4,"type1|2",9 +6,"type1|2",9 +16,"type1|2",9 +6,"type1|2",9 +8,"type1|2",9 +12,"type1|2",9 +5,"type1|2",9 +15,"type1|2",8 +3,"type1|2",9 +9,"type1|2",8 +5,"type1|2",9 +2,"type1|2",5 +8,"type1|2",9 +11,"type1|2",9 +10,"type1|2",4 +8,"type1|2",8 +8,"type1|2",3 +3,"type1|2",9 +3,"type1|2",2 +7,"type1|2",9 +2,"type1|2",9 +2,"type1|2",7 +4,"type1|2",6 +3,"type1|2",9 +4,"type1|2",7 +2,"type1|2",4 +5,"type1|2",9 +9,"type1|2",9 +8,"type1|2",9 +17,"type1|2",9 +5,"type1|2",7 +4,"type1|2",5 +8,"type1|2",9 +6,"type1|2",8 +3,"type1|2",9 +15,"type1|2",6 +2,"type1|2",9 +4,"type1|2",5 +3,"type1|2",9 +6,"type1|2",9 +4,"type1|2",9 +1,"type1|2",6 +2,"type1|2",6 +20,"type1|2",5 +30,"type1|2",9 +3,"type1|2",8 +6,"type1|2",9 +3,"type1|2",9 +3,"type1|2",9 +3,"type1|2",9 +3,"type1|2",9 +7,"type1|2",9 +10,"type1|2",9 +5,"type1|2",9 +8,"type1|2",9 +6,"type1|2",9 +5,"type1|2",9 +4,"type1|2",4 +15,"type1|2",9 +4,"type1|2",9 +7,"type1|2",9 +3,"type1|2",7 +6,"type1|2",8 +1,"type1|2",9 +5,"type1|2",9 +5,"type1|2",7 +4,"type1|2",9 +6,"type1|2",9 +9,"type1|2",8 +4,"type1|2",5 +6,"type1|2",9 +10,"type1|2",9 +2,"type1|2",9 +6,"type1|2",9 +13,"type1|2",9 +6,"type1|2",9 +87,"type1|2",9 +6,"type1|2",9 +3,"type1|2",5 +3,"type1|2",7 +6,"type1|2",9 +2,"type1|2",7 +5,"type1|2",8 +4,"type1|2",9 +6,"type1|2",9 +6,"type1|2",9 +4,"type1|2",5 +6,"type1|2",9 +3,"type1|2",9 +5,"type1|2",9 +7,"type1|2",7 +7,"type1|2",9 +4,"type1|2",9 +3,"type1|2",9 +4,"type1|2",9 +8,"type1|2",9 +7,"type1|2",9 +2,"type1|2",8 +7,"type1|2",9 +7,"type1|2",9 +3,"type1|2",7 +3,"type1|2",8 +4,"type1|2",5 +9,"type1|2",9 +7,"type1|2",9 +2,"type1|2",9 +2,"type1|2",7 +8,"type1|2",9 +3,"type1|2",8 +3,"type1|2",6 +4,"type1|2",7 +4,"type1|2",5 +12,"type1|2",9 +9,"type1|2",9 +7,"type1|2",9 +10,"type1|2",8 +15,"type1|2",9 +1,"type1|2",9 +7,"type1|2",9 +15,"type1|2",9 +6,"type1|2",9 +7,"type1|2",9 +4,"type1|2",9 +12,"type1|2",9 +6,"type1|2",6 +2,"type1|2",9 +6,"type1|2",9 +4,"type1|2",8 +7,"type1|2",9 +10,"type1|2",9 +3,"type1|2",7 +7,"type1|2",9 +3,"type1|2",9 +8,"type1|2",9 +6,"type1|2",8 +8,"type1|2",9 +4,"type1|2",6 +2,"type1|2",9 +3,"type1|2",9 +1,"type1|2",9 +3,"type1|2",7 +7,"type1|2",9 +5,"type1|2",8 +3,"type1|2",8 +11,"type1|2",9 +11,"type1|2",7 +4,"type1|2",9 +6,"type1|2",8 +5,"type1|2",9 +4,"type1|2",9 +5,"type1|2",9 +6,"type1|2",5 +7,"type1|2",6 +7,"type1|2",9 +7,"type1|2",3 +3,"type1|2",7 +3,"type1|2",8 +4,"type1|2",9 +45,"type1|2",9 +6,"type1|2",9 +17,"type1|2",9 +6,"type1|2",9 +1,"type1|2",9 +9,"type1|2",9 +5,"type1|2",8 +3,"type1|2",9 +9,"type1|2",9 +4,"type1|2",5 +4,"type1|2",9 +4,"type1|2",8 +8,"type1|2",9 +7,"type1|2",4 +8,"type1|2",9 +12,"type1|2",9 +4,"type1|2",7 +2,"type1|2",9 +5,"type1|2",9 +5,"type1|2",9 +9,"type1|2",9 +6,"type1|2",9 +9,"type1|2",9 +8,"type1|2",9 +6,"type1|2",5 +4,"type1|2",8 +3,"type1|2",3 +6,"type1|2",9 +4,"type1|2",9 +5,"type1|2",8 +3,"type1|2",5 +7,"type1|2",4 +5,"type1|2",9 +3,"type1|2",9 +12,"type1|2",9 +4,"type1|2",9 +5,"type1|2",9 +4,"type1|2",9 +4,"type1|2",9 +3,"type1|2",9 +3,"type1|2",3 +4,"type1|2",9 +3,"type1|2",9 +3,"type1|2",9 +1,"type1|2",3 +8,"type1|2",9 +2,"type1|2",9 +6,"type1|2",8 +3,"type1|2",9 +3,"type1|2",9 +2,"type1|2",8 +7,"type1|2",9 +5,"type1|2",9 +4,"type1|2",3 +11,"type1|2",9 +7,"type1|2",5 +9,"type1|2",6 +3,"type1|2",6 +11,"type1|2",9 +8,"type1|2",9 +4,"type1|2",9 +7,"type1|2",9 +3,"type1|2",8 +5,"type1|2",9 +3,"type1|2",9 +3,"type1|2",8 +4,"type1|2",9 +6,"type1|2",9 +5,"type1|2",9 +12,"type1|2",9 +6,"type1|2",6 +7,"type1|2",6 +6,"type1|2",9 +9,"type1|2",9 +4,"type1|2",9 +8,"type1|2",9 +2,"type1|2",5 +7,"type1|2",8 +13,"type1|2",7 +2,"type1|2",7 +7,"type1|2",8 +5,"type1|2",9 +3,"type1|2",9 +19,"type1|2",9 +4,"type1|2",8 +5,"type1|2",9 +6,"type1|2",9 +7,"type1|2",8 +3,"type1|2",9 +2,"type1|2",9 +6,"type1|2",5 +6,"type1|2",9 +3,"type1|2",7 +3,"type1|2",9 +12,"type1|2",9 +3,"type1|2",9 +10,"type1|2",5 +10,"type1|2",4 +8,"type1|2",9 +4,"type1|2",9 +3,"type1|2",9 +7,"type1|2",9 +7,"type1|2",9 +5,"type1|2",7 +6,"type1|2",9 +2,"type1|2",7 +9,"type1|2",9 +6,"type1|2",9 +3,"type1|2",9 +5,"type1|2",6 +7,"type1|2",9 +4,"type1|2",9 +17,"type1|2",9 +2,"type1|2",6 +7,"type1|2",8 +11,"type1|2",9 +4,"type1|2",9 +6,"type1|2",8 +8,"type1|2",8 +3,"type1|2",9 +10,"type1|2",9 +3,"type1|2",7 +2,"type1|2",9 +4,"type1|2",6 +5,"type1|2",9 +5,"type1|2",9 +3,"type1|2",9 +7,"type1|2",9 +8,"type1|2",9 +6,"type1|2",9 +13,"type1|2",9 +6,"type1|2",5 +1,"type1|2",9 +13,"type1|2",9 +10,"type1|2",9 +7,"type1|2",9 +9,"type1|2",9 +8,"type1|2",9 +4,"type1|2",4 +14,"type1|2",9 +4,"type1|2",8 +3,"type1|2",9 +5,"type1|2",7 +18,"type1|2",4 +8,"type1|2",7 +6,"type1|2",9 +5,"type1|2",3 +1,"type1|2",9 +4,"type1|2",9 +13,"type1|2",9 +4,"type1|2",2 +17,"type1|2",9 +2,"type1|2",9 +4,"type1|2",9 +3,"type1|2",9 +3,"type1|2",7 +2,"type1|2",9 +31,"type1|2",9 +2,"type1|2",9 +21,"type1|2",9 +13,"type1|2",7 +5,"type1|2",7 +4,"type1|2",7 +8,"type1|2",9 +15,"type1|2",9 +5,"type1|2",8 +10,"type1|2",9 +4,"type1|2",8 +7,"type1|2",9 +7,"type1|2",9 +2,"type1|2",9 +7,"type1|2",9 +4,"type1|2",9 +8,"type1|2",9 +10,"type1|2",9 +4,"type1|2",7 +5,"type1|2",9 +2,"type1|2",4 +7,"type1|2",8 +2,"type1|2",7 +9,"type1|2",9 +11,"type1|2",9 +4,"type1|2",9 +7,"type1|2",9 +2,"type1|2",9 +2,"type1|2",9 +2,"type1|2",9 +6,"type1|2",9 +3,"type1|2",9 +7,"type1|2",9 +14,"type1|2",9 +4,"type1|2",9 +4,"type1|2",8 +9,"type1|2",6 +5,"type1|2",9 +1,"type1|2",9 +29,"type1|2",9 +5,"type1|2",7 +12,"type1|2",9 +7,"type1|2",9 +2,"type1|2",9 +3,"type1|2",9 +1,"type1|2",8 +5,"type1|2",9 +5,"type1|2",9 +10,"type1|2",7 +11,"type1|2",9 +15,"type1|2",9 +4,"type1|2",9 +12,"type1|2",8 +4,"type1|2",8 +10,"type1|2",9 +2,"type1|2",9 +4,"type1|2",8 +14,"type1|2",9 +4,"type1|2",9 +29,"type1|2",9 +4,"type1|2",8 +6,"type1|2",9 +3,"type1|2",9 +1,"type1|2",9 +3,"type1|2",6 +5,"type1|2",9 +15,"type1|2",9 +4,"type1|2",9 +11,"type1|2",9 +4,"type1|2",2 +3,"type1|2",9 +7,"type1|2",9 +6,"type1|2",9 +3,"type1|2",3 +6,"type1|2",8 +3,"type1|2",7 +6,"type1|2",9 +3,"type1|2",9 +9,"type1|2",8 +6,"type1|2",5 +8,"type1|2",9 +3,"type1|2",9 +5,"type1|2",7 +6,"type1|2",9 +2,"type1|2",3 +3,"type1|2",6 +5,"type1|2",8 +4,"type1|2",4 +35,"type1|2",9 +2,"type1|2",9 +5,"type1|2",9 +10,"type1|2",9 +5,"type1|2",9 +3,"type1|2",9 +32,"type1|2",9 +15,"type1|2",9 +2,"type1|2",8 +7,"type1|2",9 +17,"type1|2",9 +12,"type1|2",9 +9,"type1|2",9 +3,"type1|2",8 +8,"type1|2",9 +6,"type1|2",6 +4,"type1|2",8 +3,"type1|2",8 +12,"type1|2",9 +5,"type1|2",8 +9,"type1|2",9 +2,"type1|2",9 +2,"type1|2",9 +8,"type1|2",6 +2,"type1|2",9 +9,"type1|2",8 +2,"type1|2",9 +3,"type1|2",9 +2,"type1|2",5 +5,"type1|2",9 +7,"type1|2",9 +6,"type1|2",9 +6,"type1|2",8 +3,"type1|2",8 +5,"type1|2",9 +25,"type1|2",9 +13,"type1|2",9 +9,"type1|2",9 +2,"type1|2",9 +4,"type1|2",8 +3,"type1|2",9 +10,"type1|2",9 +2,"type1|2",9 +12,"type1|2",9 +4,"type1|2",9 +5,"type1|2",9 +5,"type1|2",2 +12,"type1|2",9 +8,"type1|2",6 +3,"type1|2",6 +8,"type1|2",9 +6,"type1|2",8 +4,"type1|2",9 +8,"type1|2",5 +5,"type1|2",9 +7,"type1|2",9 +2,"type1|2",9 +2,"type1|2",5 +7,"type1|2",9 +7,"type1|2",7 +7,"type1|2",9 +2,"type1|2",3 +18,"type1|2",9 +3,"type1|2",6 +4,"type1|2",3 +3,"type1|2",5 +2,"type1|2",8 +8,"type1|2",7 +9,"type1|2",9 +2,"type1|2",8 +6,"type1|2",9 +3,"type1|2",4 +3,"type1|2",7 +5,"type1|2",9 +3,"type1|2",9 +1,"type1|2",9 +5,"type1|2",6 +3,"type1|2",9 +3,"type1|2",9 +8,"type1|2",9 +10,"type1|2",9 +7,"type1|2",9 +10,"type1|2",9 +6,"type1|2",9 +4,"type1|2",9 +11,"type1|2",4 +4,"type1|2",8 +6,"type1|2",9 +11,"type1|2",9 +3,"type1|2",9 +6,"type1|2",7 +3,"type1|2",8 +8,"type1|2",9 +7,"type1|2",9 +18,"type1|2",9 +7,"type1|2",9 +9,"type1|2",9 +3,"type1|2",9 +3,"type1|2",9 +3,"type1|2",2 +4,"type1|2",5 +28,"type1|2",9 +5,"type1|2",4 +3,"type1|2",9 +5,"type1|2",5 +2,"type1|2",9 +5,"type1|2",6 +5,"type1|2",7 +5,"type1|2",7 +3,"type1|2",3 +5,"type1|2",7 +4,"type1|2",6 +4,"type1|2",9 +4,"type1|2",9 +15,"type1|2",9 +3,"type1|2",9 +3,"type1|2",9 +4,"type1|2",6 +8,"type1|2",8 +8,"type1|2",9 +4,"type1|2",9 +8,"type1|2",9 +7,"type1|2",6 +3,"type1|2",9 +4,"type1|2",9 +5,"type1|2",9 +4,"type1|2",6 +16,"type1|2",9 +2,"type1|2",9 +13,"type1|2",8 +9,"type1|2",9 +4,"type1|2",9 +11,"type1|2",9 +6,"type1|2",9 +5,"type1|2",9 +3,"type1|2",9 +4,"type1|2",9 +7,"type1|2",9 +8,"type1|2",4 +1,"type1|2",5 +5,"type1|2",9 +2,"type1|2",9 +4,"type1|2",8 +8,"type1|2",9 +11,"type1|2",9 +4,"type1|2",9 +9,"type1|2",9 +4,"type1|2",9 +16,"type1|2",9 +7,"type1|2",9 +2,"type1|2",8 +3,"type1|2",9 +6,"type1|2",9 +19,"type1|2",8 +5,"type1|2",8 +6,"type1|2",7 +7,"type1|2",9 +4,"type1|2",7 +9,"type1|2",8 +9,"type1|2",9 +5,"type1|2",9 +4,"type1|2",9 +3,"type1|2",7 +9,"type1|2",9 +9,"type1|2",9 +8,"type1|2",9 +8,"type1|2",9 +8,"type1|2",9 +4,"type1|2",9 +6,"type1|2",6 +4,"type1|2",9 +11,"type1|2",9 +6,"type1|2",7 +2,"type1|2",8 +7,"type1|2",7 +10,"type1|2",9 +5,"type1|2",9 +6,"type1|2",8 +5,"type1|2",9 +2,"type1|2",5 +4,"type1|2",9 +13,"type1|2",9 +5,"type1|2",9 +4,"type1|2",9 +4,"type1|2",9 +3,"type1|2",8 +7,"type1|2",7 +4,"type1|2",8 +8,"type1|2",5 +7,"type1|2",9 +7,"type1|2",9 +1,"type1|2",9 +11,"type1|2",9 +4,"type1|2",5 +6,"type1|2",9 +16,"type1|2",8 +6,"type1|2",9 +4,"type1|2",6 +2,"type1|2",9 +6,"type1|2",9 +5,"type1|2",8 +6,"type1|2",9 +6,"type1|2",7 +4,"type1|2",8 +4,"type1|2",7 +5,"type1|2",9 +3,"type1|2",9 +7,"type1|2",9 +3,"type1|2",8 +6,"type1|2",9 +4,"type1|2",9 +3,"type1|2",9 +10,"type1|2",9 +3,"type1|2",9 +3,"type1|2",5 +7,"type1|2",9 +3,"type1|2",6 +4,"type1|2",9 +13,"type1|2",9 +6,"type1|2",9 +4,"type1|2",9 +9,"type1|2",9 +10,"type1|2",9 +11,"type1|2",9 +5,"type1|2",9 +16,"type1|2",9 +3,"type1|2",5 +3,"type1|2",8 +9,"type1|2",9 +8,"type1|2",9 +5,"type1|2",8 +2,"type1|2",9 +3,"type1|2",7 +22,"type1|2",6 +16,"type1|2",9 +8,"type1|2",9 +9,"type1|2",9 +4,"type1|2",6 +6,"type1|2",9 +22,"type1|2",9 +13,"type1|2",9 +4,"type1|2",9 +14,"type1|2",9 +5,"type1|2",4 +1,"type1|2",7 +5,"type1|2",9 +14,"type1|2",4 +5,"type1|2",9 +12,"type1|2",8 +13,"type1|2",9 +15,"type1|2",9 +3,"type1|2",4 +8,"type1|2",9 +6,"type1|2",9 +13,"type1|2",8 +2,"type1|2",3 +4,"type1|2",2 +3,"type1|2",8 +3,"type1|2",9 +12,"type1|2",9 +7,"type1|2",9 +4,"type1|2",9 +18,"type1|2",9 +4,"type1|2",9 +12,"type1|2",9 +6,"type1|2",9 +11,"type1|2",9 +15,"type1|2",9 +2,"type1|2",7 +11,"type1|2",9 +2,"type1|2",5 +7,"type1|2",7 +12,"type1|2",9 +8,"type1|2",9 +2,"type1|2",3 +18,"type1|2",9 +6,"type1|2",9 +2,"type1|2",9 +6,"type1|2",4 +2,"type1|2",9 +6,"type1|2",9 +2,"type1|2",9 +2,"type1|2",7 +2,"type1|2",7 +8,"type1|2",9 +3,"type1|2",8 +1,"type1|2",7 +6,"type1|2",9 +3,"type1|2",8 +11,"type1|2",7 +7,"type1|2",9 +3,"type1|2",7 +10,"type1|2",9 +4,"type1|2",9 +12,"type1|2",9 +5,"type1|2",9 +6,"type1|2",9 +2,"type1|2",9 +3,"type1|2",9 +1,"type1|2",4 +2,"type1|2",9 +3,"type1|2",9 +5,"type1|2",9 +6,"type1|2",9 +2,"type1|2",9 +3,"type1|2",9 +4,"type1|2",9 +9,"type1|2",9 +4,"type1|2",9 +10,"type1|2",9 +4,"type1|2",5 +9,"type1|2",7 +3,"type1|2",8 +3,"type1|2",8 +4,"type1|2",9 +4,"type1|2",9 +3,"type1|2",9 +5,"type1|2",7 +6,"type1|2",4 +8,"type1|2",9 +4,"type1|2",7 +5,"type1|2",5 +4,"type1|2",9 +12,"type1|2",9 +7,"type1|2",9 +2,"type1|2",9 +13,"type1|2",9 +15,"type1|2",9 +5,"type1|2",7 +10,"type1|2",8 +8,"type1|2",8 +7,"type1|2",9 +4,"type1|2",9 +2,"type1|2",8 +3,"type1|2",3 +6,"type1|2",9 +4,"type1|2",9 +7,"type1|2",9 +6,"type1|2",9 +3,"type1|2",2 +3,"type1|2",9 +7,"type1|2",9 +5,"type1|2",9 +21,"type1|2",9 +12,"type1|2",9 +8,"type1|2",9 +14,"type1|2",9 +5,"type1|2",9 +13,"type1|2",9 +3,"type1|2",9 +1,"type1|2",9 +7,"type1|2",8 +13,"type1|2",9 +10,"type1|2",9 +4,"type1|2",9 +5,"type1|2",5 +2,"type1|2",9 +3,"type1|2",8 +6,"type1|2",5 +10,"type1|2",5 +5,"type1|2",9 +9,"type1|2",7 +6,"type1|2",9 +3,"type1|2",9 +6,"type1|2",9 +32,"type1|2",8 +3,"type1|2",4 +2,"type1|2",9 +5,"type1|2",9 +6,"type1|2",9 +4,"type1|2",7 +8,"type1|2",9 +6,"type1|2",9 +2,"type1|2",9 +6,"type1|2",5 +1,"type1|2",9 +13,"type1|2",9 +5,"type1|2",8 +1,"type1|2",6 +3,"type1|2",9 +13,"type1|2",9 +7,"type1|2",9 +5,"type1|2",9 +13,"type1|2",9 +7,"type1|2",9 +4,"type1|2",6 +15,"type1|2",9 +2,"type1|2",9 +5,"type1|2",8 +2,"type1|2",9 +6,"type1|2",9 +3,"type1|2",6 +13,"type1|2",9 +3,"type1|2",8 +5,"type1|2",8 +6,"type1|2",9 +4,"type1|2",8 +1,"type1|2",9 +8,"type1|2",9 +13,"type1|2",9 +5,"type1|2",8 +3,"type1|2",8 +19,"type1|2",9 +4,"type1|2",5 +2,"type1|2",4 +8,"type1|2",5 +7,"type1|2",9 +4,"type1|2",9 +5,"type1|2",9 +6,"type1|2",9 +3,"type1|2",9 +6,"type1|2",9 +3,"type1|2",9 +3,"type1|2",4 +19,"type1|2",9 +4,"type1|2",9 +23,"type1|2",9 +3,"type1|2",9 +10,"type1|2",9 +5,"type1|2",9 +7,"type1|2",9 +14,"type1|2",9 +8,"type1|2",9 +6,"type1|2",9 +2,"type1|2",8 +4,"type1|2",4 +4,"type1|2",4 +4,"type1|2",9 +7,"type1|2",6 +1,"type1|2",9 +17,"type1|2",9 +7,"type1|2",9 +4,"type1|2",9 +11,"type1|2",9 +6,"type1|2",9 +5,"type1|2",9 +7,"type1|2",9 +3,"type1|2",9 +9,"type1|2",9 +3,"type1|2",9 +6,"type1|2",8 +10,"type1|2",9 +4,"type1|2",9 +6,"type1|2",9 +6,"type1|2",7 +6,"type1|2",9 +6,"type1|2",9 +3,"type1|2",9 +13,"type1|2",9 +3,"type1|2",9 +4,"type1|2",9 +8,"type1|2",9 +2,"type1|2",5 +14,"type1|2",9 +4,"type1|2",3 +4,"type1|2",9 +3,"type1|2",5 +5,"type1|2",9 +14,"type1|2",9 +5,"type1|2",9 +3,"type1|2",6 +5,"type1|2",9 +3,"type1|2",4 +3,"type1|2",9 +9,"type1|2",9 +19,"type1|2",5 +6,"type1|2",6 +3,"type1|2",9 +2,"type1|2",9 +7,"type1|2",9 +4,"type1|2",8 +8,"type1|2",9 +9,"type1|2",9 +7,"type1|2",9 +9,"type1|2",9 +3,"type1|2",8 +2,"type1|2",9 +12,"type1|2",9 +10,"type1|2",9 +3,"type1|2",9 +3,"type1|2",9 +2,"type1|2",9 +5,"type1|2",7 +3,"type1|2",6 +19,"type1|2",9 +7,"type1|2",9 +5,"type1|2",3 +16,"type1|2",9 +25,"type1|2",9 +4,"type1|2",9 +12,"type1|2",9 +3,"type1|2",9 +4,"type1|2",5 +3,"type1|2",8 +5,"type1|2",9 +4,"type1|2",9 +16,"type1|2",9 +1,"type1|2",9 +19,"type1|2",9 +2,"type1|2",4 +9,"type1|2",9 +6,"type1|2",9 +13,"type1|2",9 +10,"type1|2",7 +3,"type1|2",9 +8,"type1|2",6 +3,"type1|2",5 +5,"type1|2",9 +7,"type1|2",9 +10,"type1|2",9 +7,"type1|2",8 +4,"type1|2",7 +11,"type1|2",9 +14,"type1|2",7 +5,"type1|2",9 +5,"type1|2",4 +6,"type1|2",9 +8,"type1|2",9 +9,"type1|2",9 +9,"type1|2",9 +4,"type1|2",9 +6,"type1|2",7 +11,"type1|2",9 +2,"type1|2",9 +9,"type1|2",9 +16,"type1|2",9 +9,"type1|2",9 +7,"type1|2",9 +5,"type1|2",7 +2,"type1|2",9 +3,"type1|2",9 +14,"type1|2",9 +12,"type1|2",9 +2,"type1|2",9 +5,"type1|2",9 +5,"type1|2",9 +16,"type1|2",7 +4,"type1|2",9 +6,"type1|2",3 +5,"type1|2",8 +14,"type1|2",7 +7,"type1|2",9 +7,"type1|2",4 +6,"type1|2",9 +3,"type1|2",7 +4,"type1|2",6 +7,"type1|2",9 +7,"type1|2",9 +1,"type1|2",9 +3,"type1|2",9 +4,"type1|2",9 +4,"type1|2",8 +20,"type1|2",9 +8,"type1|2",9 +7,"type1|2",9 +12,"type1|2",9 +3,"type1|2",9 +9,"type1|2",9 +21,"type1|2",9 +3,"type1|2",7 +4,"type1|2",9 +2,"type1|2",9 +4,"type1|2",9 +4,"type1|2",2 +3,"type1|2",9 +12,"type1|2",9 +4,"type1|2",9 +5,"type1|2",8 +6,"type1|2",9 +3,"type1|2",9 +6,"type1|2",4 +5,"type1|2",5 +5,"type1|2",8 +6,"type1|2",9 +11,"type1|2",9 +4,"type1|2",4 +3,"type1|2",7 +10,"type1|2",9 +7,"type1|2",9 +4,"type1|2",9 +3,"type1|2",4 +5,"type1|2",9 +7,"type1|2",9 +4,"type1|2",6 +2,"type1|2",8 +13,"type1|2",9 +3,"type1|2",9 +6,"type1|2",9 +5,"type1|2",9 +15,"type1|2",9 +3,"type1|2",9 +5,"type1|2",9 +7,"type1|2",9 +2,"type1|2",5 +2,"type1|2",9 +6,"type1|2",6 +5,"type1|2",8 +6,"type1|2",9 +7,"type1|2",8 +8,"type1|2",9 +3,"type1|2",9 +6,"type1|2",9 +6,"type1|2",9 +6,"type1|2",6 +8,"type1|2",9 +6,"type1|2",9 +3,"type1|2",6 +3,"type1|2",9 +6,"type1|2",8 +8,"type1|2",9 +3,"type1|2",9 +6,"type1|2",7 +3,"type1|2",9 +12,"type1|2",9 +4,"type1|2",2 +7,"type1|2",9 +12,"type1|2",9 +5,"type1|2",9 +4,"type1|2",9 +4,"type1|2",9 +3,"type1|2",9 +18,"type1|2",9 +1,"type1|2",8 +31,"type1|2",9 +4,"type1|2",9 +5,"type1|2",7 +1,"type1|2",9 +7,"type1|2",9 +3,"type1|2",9 +12,"type1|2",9 +10,"type1|2",9 +2,"type1|2",9 +4,"type1|2",9 +1,"type1|2",8 +6,"type1|2",5 +11,"type1|2",9 +4,"type1|2",9 +3,"type1|2",9 +3,"type1|2",9 +9,"type1|2",9 +2,"type1|2",9 +4,"type1|2",9 +4,"type1|2",9 +1,"type1|2",9 +12,"type1|2",8 +4,"type1|2",9 +5,"type1|2",8 +4,"type1|2",5 +2,"type1|2",6 +3,"type1|2",7 +2,"type1|2",9 +4,"type1|2",8 +4,"type1|2",8 +4,"type1|2",9 +5,"type1|2",8 +6,"type1|2",9 +5,"type1|2",6 +7,"type1|2",5 +3,"type1|2",7 +16,"type1|2",8 +4,"type1|2",9 +5,"type1|2",9 +2,"type1|2",7 +7,"type1|2",6 +5,"type1|2",9 +8,"type1|2",8 +4,"type1|2",3 +6,"type1|2",8 +5,"type1|2",9 +7,"type1|2",7 +7,"type1|2",9 +7,"type1|2",9 +3,"type1|2",9 +9,"type1|2",9 +6,"type1|2",9 +4,"type1|2",2 +5,"type1|2",9 +2,"type1|2",9 +4,"type1|2",9 +7,"type1|2",6 +10,"type1|2",9 +10,"type1|2",8 +3,"type1|2",9 +7,"type1|2",8 +6,"type1|2",9 +8,"type1|2",8 +4,"type1|2",6 +4,"type1|2",9 +5,"type1|2",9 +6,"type1|2",9 +5,"type1|2",8 +4,"type1|2",8 +8,"type1|2",9 +2,"type1|2",9 +4,"type1|2",8 +13,"type1|2",5 +4,"type1|2",9 +2,"type1|2",6 +5,"type1|2",9 +3,"type1|2",5 +5,"type1|2",9 +7,"type1|2",4 +8,"type1|2",9 +11,"type1|2",9 +5,"type1|2",8 +7,"type1|2",9 +8,"type1|2",9 +11,"type1|2",9 +7,"type1|2",9 +5,"type1|2",4 +4,"type1|2",8 +8,"type1|2",9 +6,"type1|2",3 +19,"type1|2",9 +4,"type1|2",9 +21,"type1|2",9 +9,"type1|2",8 +9,"type1|2",9 +7,"type1|2",9 +4,"type1|2",9 +2,"type1|2",8 +9,"type1|2",9 +2,"type1|2",6 +11,"type1|2",9 +4,"type1|2",9 +7,"type1|2",7 +3,"type1|2",8 +4,"type1|2",9 +5,"type1|2",5 +11,"type1|2",9 +3,"type1|2",9 +2,"type1|2",6 +4,"type1|2",9 +5,"type1|2",2 +2,"type1|2",8 +4,"type1|2",8 +10,"type1|2",9 +6,"type1|2",8 +15,"type1|2",9 +11,"type1|2",6 +2,"type1|2",8 +8,"type1|2",9 +6,"type1|2",9 +5,"type1|2",9 +9,"type1|2",9 +6,"type1|2",7 +3,"type1|2",4 +10,"type1|2",9 +3,"type1|2",9 +7,"type1|2",5 +3,"type1|2",5 +12,"type1|2",9 +3,"type1|2",9 +5,"type1|2",9 +5,"type1|2",9 +2,"type1|2",9 +10,"type1|2",7 +4,"type1|2",9 +4,"type1|2",7 +3,"type1|2",4 +5,"type1|2",9 +8,"type1|2",4 +3,"type1|2",9 +3,"type1|2",9 +4,"type1|2",9 +12,"type1|2",9 +9,"type1|2",2 +5,"type1|2",9 +6,"type1|2",6 +7,"type1|2",9 +17,"type1|2",8 +5,"type1|2",9 +5,"type1|2",8 +8,"type1|2",9 +7,"type1|2",5 +4,"type1|2",9 +15,"type1|2",9 +7,"type1|2",5 +5,"type1|2",2 +3,"type1|2",1 +2,"type1|2",3 +4,"type1|2",6 +6,"type1|2",8 +8,"type1|2",9 +3,"type1|2",4 +9,"type1|2",9 +3,"type1|2",9 +6,"type1|2",8 +3,"type1|2",9 +8,"type1|2",8 +7,"type1|2",9 +18,"type1|2",9 +3,"type1|2",7 +24,"type1|2",9 +10,"type1|2",9 +6,"type1|2",9 +5,"type1|2",9 +3,"type1|2",5 +5,"type1|2",9 +3,"type1|2",9 +3,"type1|2",9 +2,"type1|2",7 +6,"type1|2",9 +7,"type1|2",2 +6,"type1|2",9 +8,"type1|2",9 +3,"type1|2",6 +4,"type1|2",8 +15,"type1|2",3 +1,"type1|2",5 +3,"type1|2",9 +7,"type1|2",9 +4,"type1|2",3 +2,"type1|2",9 +5,"type1|2",8 +6,"type1|2",9 +3,"type1|2",8 +4,"type1|2",9 +9,"type1|2",9 +7,"type1|2",9 +12,"type1|2",9 +14,"type1|2",9 +31,"type1|2",9 +6,"type1|2",9 +6,"type1|2",9 +12,"type1|2",9 +8,"type1|2",9 +4,"type1|2",5 +6,"type1|2",9 +4,"type1|2",9 +5,"type1|2",8 +3,"type1|2",9 +2,"type1|2",9 +3,"type1|2",9 +4,"type1|2",9 +6,"type1|2",7 +5,"type1|2",9 +8,"type1|2",4 +8,"type1|2",9 +5,"type1|2",9 +9,"type1|2",9 +11,"type1|2",5 +2,"type1|2",8 +4,"type1|2",8 +4,"type1|2",9 +3,"type1|2",9 +9,"type1|2",9 +6,"type1|2",9 +8,"type1|2",9 +3,"type1|2",8 +3,"type1|2",5 +5,"type1|2",8 +53,"type1|2",9 +2,"type1|2",9 +3,"type1|2",6 +5,"type1|2",9 +3,"type1|2",7 +3,"type1|2",9 +14,"type1|2",9 +3,"type1|2",9 +4,"type1|2",7 +7,"type1|2",9 +11,"type1|2",8 +4,"type1|2",8 +10,"type1|2",9 +2,"type1|2",9 +11,"type1|2",8 +9,"type1|2",9 +8,"type1|2",6 +26,"type1|2",9 +2,"type1|2",6 +3,"type1|2",6 +6,"type1|2",9 +7,"type1|2",9 +12,"type1|2",9 +23,"type1|2",9 +13,"type1|2",9 +3,"type1|2",9 +4,"type1|2",9 +3,"type1|2",5 +7,"type1|2",4 +3,"type1|2",9 +4,"type1|2",8 +4,"type1|2",9 +3,"type1|2",7 +14,"type1|2",9 +7,"type1|2",9 +6,"type1|2",9 +29,"type1|2",5 +3,"type1|2",9 +3,"type1|2",7 +4,"type1|2",9 +7,"type1|2",5 +4,"type1|2",9 +5,"type1|2",9 +3,"type1|2",5 +4,"type1|2",7 +2,"type1|2",8 +4,"type1|2",9 +3,"type1|2",4 +5,"type1|2",8 +4,"type1|2",9 +6,"type1|2",8 +2,"type1|2",7 +3,"type1|2",9 +4,"type1|2",4 +2,"type1|2",6 +3,"type1|2",5 +6,"type1|2",9 +3,"type1|2",9 +6,"type1|2",8 +1,"type1|2",6 +12,"type1|2",9 +3,"type1|2",7 +9,"type1|2",9 +5,"type1|2",9 +21,"type1|2",9 +6,"type1|2",8 +5,"type1|2",9 +8,"type1|2",9 +6,"type1|2",9 +4,"type1|2",9 +6,"type1|2",4 +3,"type1|2",9 +7,"type1|2",8 +4,"type1|2",6 +5,"type1|2",7 +4,"type1|2",9 +8,"type1|2",9 +2,"type1|2",9 +9,"type1|2",9 +7,"type1|2",8 +10,"type1|2",9 +9,"type1|2",9 +14,"type1|2",6 +7,"type1|2",9 +8,"type1|2",9 +5,"type1|2",8 +2,"type1|2",9 +31,"type1|2",9 +6,"type1|2",9 +2,"type1|2",9 +6,"type1|2",9 +5,"type1|2",9 +19,"type1|2",9 +3,"type1|2",9 +4,"type1|2",9 +6,"type1|2",9 +6,"type1|2",4 +8,"type1|2",9 +4,"type1|2",9 +1,"type1|2",9 +3,"type1|2",9 +2,"type1|2",9 +16,"type1|2",9 +3,"type1|2",8 +5,"type1|2",9 +5,"type1|2",9 +8,"type1|2",9 +6,"type1|2",8 +11,"type1|2",9 +4,"type1|2",5 +3,"type1|2",9 +6,"type1|2",9 +25,"type1|2",9 +4,"type1|2",9 +6,"type1|2",6 +9,"type1|2",8 +2,"type1|2",9 +19,"type1|2",7 +2,"type1|2",7 +11,"type1|2",9 +5,"type1|2",9 +7,"type1|2",9 +4,"type1|2",4 +3,"type1|2",9 +5,"type1|2",7 +5,"type1|2",9 +3,"type1|2",9 +6,"type1|2",9 +4,"type1|2",9 +5,"type1|2",9 +6,"type1|2",8 +14,"type1|2",9 +5,"type1|2",9 +5,"type1|2",9 +3,"type1|2",3 +10,"type1|2",8 +5,"type1|2",8 +3,"type1|2",6 +5,"type1|2",9 +9,"type1|2",6 +3,"type1|2",9 +13,"type1|2",9 +4,"type1|2",9 +6,"type1|2",4 +9,"type1|2",9 +5,"type1|2",3 +14,"type1|2",9 +2,"type1|2",9 +4,"type1|2",6 +3,"type1|2",8 +3,"type1|2",5 +7,"type1|2",9 +3,"type1|2",9 +9,"type1|2",9 +3,"type1|2",8 +5,"type1|2",9 +9,"type1|2",7 +4,"type1|2",9 +2,"type1|2",9 +10,"type1|2",9 +4,"type1|2",9 +4,"type1|2",6 +4,"type1|2",4 +3,"type1|2",9 +8,"type1|2",8 +10,"type1|2",9 +5,"type1|2",9 +3,"type1|2",7 +11,"type1|2",6 +2,"type1|2",7 +8,"type1|2",9 +5,"type1|2",4 +4,"type1|2",9 +2,"type1|2",9 +3,"type1|2",5 +8,"type1|2",8 +5,"type1|2",9 +3,"type1|2",5 +4,"type1|2",7 +1,"type1|2",9 +10,"type1|2",9 +4,"type1|2",8 +16,"type1|2",8 +5,"type1|2",7 +11,"type1|2",9 +3,"type1|2",9 +2,"type1|2",9 +6,"type1|2",9 +11,"type1|2",9 +7,"type1|2",5 +4,"type1|2",9 +2,"type1|2",8 +6,"type1|2",9 +4,"type1|2",5 +3,"type1|2",5 +8,"type1|2",7 +3,"type1|2",9 +5,"type1|2",9 +6,"type1|2",9 +14,"type1|2",9 +6,"type1|2",9 +10,"type1|2",5 +6,"type1|2",9 +5,"type1|2",9 +2,"type1|2",9 +5,"type1|2",8 +3,"type1|2",9 +2,"type1|2",7 +6,"type1|2",9 +5,"type1|2",5 +8,"type1|2",9 +3,"type1|2",9 +4,"type1|2",9 +4,"type1|2",9 +3,"type1|2",9 +6,"type1|2",9 +6,"type1|2",9 +5,"type1|2",8 +1,"type1|2",9 +4,"type1|2",9 +9,"type1|2",9 +3,"type1|2",9 +1,"type1|2",9 +4,"type1|2",9 +5,"type1|2",9 +5,"type1|2",9 +8,"type1|2",9 +3,"type1|2",9 +10,"type1|2",9 +4,"type1|2",9 +4,"type1|2",8 +4,"type1|2",9 +6,"type1|2",2 +9,"type1|2",8 +3,"type1|2",6 +2,"type1|2",9 +4,"type1|2",6 +6,"type1|2",9 +7,"type1|2",9 +11,"type1|2",9 +9,"type1|2",9 +3,"type1|2",9 +5,"type1|2",5 +12,"type1|2",9 +5,"type1|2",8 +4,"type1|2",9 +11,"type1|2",9 +6,"type1|2",9 +7,"type1|2",8 +5,"type1|2",9 +10,"type1|2",9 +7,"type1|2",9 +4,"type1|2",8 +4,"type1|2",5 +8,"type1|2",9 +20,"type1|2",9 +3,"type1|2",9 +6,"type1|2",9 +3,"type1|2",8 +4,"type1|2",9 +9,"type1|2",7 +5,"type1|2",9 +9,"type1|2",9 +8,"type1|2",9 +5,"type1|2",9 +1,"type1|2",6 +6,"type1|2",5 +5,"type1|2",9 +19,"type1|2",9 +3,"type1|2",9 +2,"type1|2",4 +16,"type1|2",9 +2,"type1|2",9 +5,"type1|2",9 +7,"type1|2",9 +3,"type1|2",3 +4,"type1|2",9 +4,"type1|2",6 +3,"type1|2",9 +5,"type1|2",9 +5,"type1|2",9 +6,"type1|2",9 +3,"type1|2",2 +8,"type1|2",9 +4,"type1|2",8 +14,"type1|2",9 +4,"type1|2",9 +4,"type1|2",9 +6,"type1|2",5 +5,"type1|2",9 +9,"type1|2",9 +2,"type1|2",4 +3,"type1|2",8 +2,"type1|2",9 +3,"type1|2",6 +3,"type1|2",9 +10,"type1|2",9 +5,"type1|2",7 +5,"type1|2",9 +10,"type1|2",9 +2,"type1|2",9 +2,"type1|2",7 +6,"type1|2",5 +8,"type1|2",9 +7,"type1|2",5 +10,"type1|2",8 +4,"type1|2",9 +13,"type1|2",9 +5,"type1|2",9 +8,"type1|2",9 +4,"type1|2",9 +4,"type1|2",9 +4,"type1|2",9 +10,"type1|2",8 +2,"type1|2",9 +4,"type1|2",9 +7,"type1|2",9 +6,"type1|2",9 +3,"type1|2",9 +4,"type1|2",9 +3,"type1|2",9 +4,"type1|2",9 +9,"type1|2",9 +2,"type1|2",3 +6,"type1|2",6 +6,"type1|2",9 +6,"type1|2",9 +14,"type1|2",8 +1,"type1|2",4 +12,"type1|2",9 +5,"type1|2",7 +5,"type1|2",9 +5,"type1|2",9 +3,"type1|2",9 +4,"type1|2",9 +7,"type1|2",9 +9,"type1|2",9 +14,"type1|2",9 +2,"type1|2",9 +2,"type1|2",3 +6,"type1|2",8 +14,"type1|2",9 +2,"type1|2",9 +3,"type1|2",7 +9,"type1|2",9 +3,"type1|2",6 +4,"type1|2",9 +3,"type1|2",7 +3,"type1|2",5 +5,"type1|2",9 +32,"type1|2",9 +3,"type1|2",8 +11,"type1|2",9 +7,"type1|2",9 +2,"type1|2",9 +3,"type1|2",8 +4,"type1|2",7 +11,"type1|2",6 +4,"type1|2",9 +4,"type1|2",7 +3,"type1|2",8 +4,"type1|2",4 +2,"type1|2",9 +9,"type1|2",5 +5,"type1|2",3 +4,"type1|2",6 +3,"type1|2",9 +5,"type1|2",8 +3,"type1|2",7 +7,"type1|2",9 +1,"type1|2",9 +5,"type1|2",9 +2,"type1|2",9 +3,"type1|2",8 +5,"type1|2",7 +2,"type1|2",8 +6,"type1|2",9 +4,"type1|2",7 +7,"type1|2",9 +3,"type1|2",7 +2,"type1|2",6 +3,"type1|2",3 +5,"type1|2",7 +2,"type1|2",8 +2,"type1|2",9 +2,"type1|2",6 +3,"type1|2",8 +4,"type1|2",6 +6,"type1|2",9 +4,"type1|2",9 +2,"type1|2",9 +8,"type1|2",9 +2,"type1|2",8 +4,"type1|2",9 +9,"type1|2",7 +9,"type1|2",9 +5,"type1|2",9 +5,"type1|2",9 +5,"type1|2",9 +5,"type1|2",5 +3,"type1|2",7 +1,"type1|2",9 +11,"type1|2",9 +5,"type1|2",9 +7,"type1|2",9 +6,"type1|2",9 +7,"type1|2",5 +11,"type1|2",9 +6,"type1|2",9 +2,"type1|2",9 +2,"type1|2",8 +2,"type1|2",9 +2,"type1|2",9 +3,"type1|2",9 +5,"type1|2",9 +8,"type1|2",9 +12,"type1|2",9 +5,"type1|2",9 +7,"type1|2",9 +4,"type1|2",9 +3,"type1|2",6 +14,"type1|2",9 +6,"type1|2",9 +7,"type1|2",9 +12,"type1|2",9 +6,"type1|2",9 +3,"type1|2",2 +3,"type1|2",3 +8,"type1|2",9 +3,"type1|2",5 +6,"type1|2",9 +12,"type1|2",9 +5,"type1|2",9 +13,"type1|2",9 +6,"type1|2",9 +9,"type1|2",9 +3,"type1|2",9 +5,"type1|2",9 +7,"type1|2",9 +8,"type1|2",9 +3,"type1|2",9 +3,"type1|2",3 +6,"type1|2",6 +10,"type1|2",9 +6,"type1|2",9 +9,"type1|2",9 +6,"type1|2",9 +3,"type1|2",9 +6,"type1|2",7 +3,"type1|2",9 +11,"type1|2",9 +17,"type1|2",9 +3,"type1|2",4 +8,"type1|2",9 +3,"type1|2",5 +2,"type1|2",5 +7,"type1|2",9 +3,"type1|2",8 +2,"type1|2",7 +19,"type1|2",9 +7,"type1|2",4 +5,"type1|2",9 +9,"type1|2",9 +7,"type1|2",9 +8,"type1|2",7 +9,"type1|2",9 +4,"type1|2",9 +7,"type1|2",7 +8,"type1|2",6 +16,"type1|2",9 +4,"type1|2",5 +6,"type1|2",9 +3,"type1|2",4 +3,"type1|2",7 +3,"type1|2",9 +3,"type1|2",9 +10,"type1|2",9 +6,"type1|2",9 +8,"type1|2",9 +3,"type1|2",9 +4,"type1|2",4 +2,"type1|2",9 +2,"type1|2",9 +7,"type1|2",9 +6,"type1|2",6 +9,"type1|2",6 +10,"type1|2",9 +1,"type1|2",9 +4,"type1|2",9 +7,"type1|2",7 +5,"type1|2",8 +10,"type1|2",9 +8,"type1|2",9 +4,"type1|2",6 +6,"type1|2",9 +6,"type1|2",9 +4,"type1|2",7 +9,"type1|2",6 +11,"type1|2",9 +5,"type1|2",9 +1,"type1|2",9 +16,"type1|2",3 +10,"type1|2",9 +15,"type1|2",9 +2,"type1|2",9 +13,"type1|2",9 +8,"type1|2",9 +4,"type1|2",9 +6,"type1|2",9 +4,"type1|2",9 +25,"type1|2",9 +4,"type1|2",9 +5,"type1|2",9 +9,"type1|2",9 +4,"type1|2",9 +7,"type1|2",9 +14,"type1|2",9 +3,"type1|2",9 +30,"type1|2",9 +30,"type1|2",7 +2,"type1|2",9 +2,"type1|2",8 +10,"type1|2",9 +9,"type1|2",9 +4,"type1|2",9 +3,"type1|2",8 +7,"type1|2",8 +6,"type1|2",9 +15,"type1|2",9 +12,"type1|2",9 +3,"type1|2",4 +7,"type1|2",9 +6,"type1|2",9 +17,"type1|2",9 +7,"type1|2",9 +3,"type1|2",9 +8,"type1|2",2 +3,"type1|2",9 +4,"type1|2",9 +6,"type1|2",9 +3,"type1|2",7 +1,"type1|2",4 +3,"type1|2",6 +6,"type1|2",9 +4,"type1|2",9 +4,"type1|2",9 +3,"type1|2",9 +6,"type1|2",9 +9,"type1|2",9 +5,"type1|2",9 +5,"type1|2",8 +5,"type1|2",9 +4,"type1|2",9 +3,"type1|2",9 +1,"type1|2",9 +8,"type1|2",9 +10,"type1|2",9 +7,"type1|2",9 +6,"type1|2",9 +4,"type1|2",7 +7,"type1|2",8 +6,"type1|2",9 +5,"type1|2",6 +4,"type1|2",7 +5,"type1|2",7 +2,"type1|2",9 +9,"type1|2",9 +6,"type1|2",6 +3,"type1|2",9 +4,"type1|2",9 +4,"type1|2",6 +9,"type1|2",8 +12,"type1|2",9 +3,"type1|2",9 +3,"type1|2",9 +5,"type1|2",9 +3,"type1|2",6 +13,"type1|2",8 +3,"type1|2",6 +4,"type1|2",9 +4,"type1|2",9 +10,"type1|2",9 +22,"type1|2",9 +2,"type1|2",6 +6,"type1|2",9 +7,"type1|2",7 +4,"type1|2",9 +2,"type1|2",9 +3,"type1|2",9 +4,"type1|2",9 +3,"type1|2",5 +7,"type1|2",9 +4,"type1|2",9 +5,"type1|2",9 +3,"type1|2",8 +3,"type1|2",5 +6,"type1|2",6 +4,"type1|2",9 +2,"type1|2",9 +3,"type1|2",9 +3,"type1|2",9 +8,"type1|2",9 +3,"type1|2",8 +10,"type1|2",9 +11,"type1|2",9 +3,"type1|2",7 +10,"type1|2",8 +6,"type1|2",9 +3,"type1|2",9 +22,"type1|2",9 +2,"type1|2",8 +6,"type1|2",9 +5,"type1|2",5 +3,"type1|2",3 +3,"type1|2",9 +7,"type1|2",9 +3,"type1|2",5 +16,"type1|2",9 +13,"type1|2",9 +7,"type1|2",8 +7,"type1|2",9 +2,"type1|2",6 +5,"type1|2",9 +9,"type1|2",9 +1,"type1|2",9 +2,"type1|2",3 +5,"type1|2",7 +9,"type1|2",9 +6,"type1|2",9 +4,"type1|2",9 +13,"type1|2",9 +4,"type1|2",7 +3,"type1|2",6 +6,"type1|2",9 +4,"type1|2",8 +16,"type1|2",9 +4,"type1|2",9 +1,"type1|2",9 +7,"type1|2",9 +7,"type1|2",9 +3,"type1|2",9 +7,"type1|2",7 +5,"type1|2",7 +4,"type1|2",9 +4,"type1|2",7 +5,"type1|2",3 +2,"type1|2",8 +2,"type1|2",9 +3,"type1|2",9 +11,"type1|2",9 +3,"type1|2",8 +4,"type1|2",7 +5,"type1|2",6 +7,"type1|2",9 +2,"type1|2",6 +2,"type1|2",9 +5,"type1|2",9 +6,"type1|2",9 +11,"type1|2",9 +3,"type1|2",9 +3,"type1|2",6 +2,"type1|2",5 +3,"type1|2",9 +5,"type1|2",8 +4,"type1|2",9 +7,"type1|2",9 +7,"type1|2",9 +7,"type1|2",9 +11,"type1|2",9 +5,"type1|2",9 +2,"type1|2",6 +7,"type1|2",8 +21,"type1|2",9 +7,"type1|2",9 +5,"type1|2",1 +8,"type1|2",7 +10,"type1|2",9 +4,"type1|2",2 +8,"type1|2",9 +2,"type1|2",9 +3,"type1|2",9 +9,"type1|2",3 +14,"type1|2",9 +6,"type1|2",8 +6,"type1|2",8 +3,"type1|2",9 +5,"type1|2",6 +21,"type1|2",9 +9,"type1|2",9 +4,"type1|2",9 +10,"type1|2",9 +12,"type1|2",9 +33,"type1|2",9 +4,"type1|2",4 +6,"type1|2",8 +2,"type1|2",9 +2,"type1|2",8 +3,"type1|2",5 +5,"type1|2",9 +4,"type1|2",9 +3,"type1|2",6 +3,"type1|2",4 +3,"type1|2",9 +4,"type1|2",8 +9,"type1|2",9 +2,"type1|2",5 +6,"type1|2",7 +6,"type1|2",8 +3,"type1|2",6 +8,"type1|2",9 +1,"type1|2",9 +8,"type1|2",9 +4,"type1|2",8 +6,"type1|2",9 +5,"type1|2",9 +4,"type1|2",3 +3,"type1|2",9 +5,"type1|2",5 +3,"type1|2",9 +2,"type3",4 +4,"type3",7 +3,"type3",8 +3,"type3",6 +10,"type3",9 +24,"type3",9 +15,"type3",9 +5,"type3",9 +4,"type3",9 +3,"type3",8 +2,"type3",8 +6,"type3",9 +16,"type3",9 +2,"type3",5 +7,"type3",8 +5,"type3",6 +3,"type3",9 +7,"type3",8 +3,"type3",4 +6,"type3",2 +4,"type3",9 +9,"type3",8 +3,"type3",9 +3,"type3",2 +11,"type3",9 +3,"type3",8 +4,"type3",4 +2,"type3",7 +7,"type3",9 +2,"type3",3 +5,"type3",9 +3,"type3",9 +3,"type3",7 +3,"type3",9 +2,"type3",4 +3,"type3",4 +9,"type3",9 +2,"type3",9 +3,"type3",9 +6,"type3",7 +8,"type3",9 +5,"type3",7 +5,"type3",5 +9,"type3",9 +1,"type3",4 +4,"type3",9 +3,"type3",1 +3,"type3",3 +3,"type3",9 +9,"type3",9 +3,"type3",5 +6,"type3",3 +8,"type3",9 +2,"type3",9 +5,"type3",9 +6,"type3",9 +5,"type3",9 +4,"type3",9 +3,"type3",2 +3,"type3",9 +2,"type3",9 +4,"type3",5 +3,"type3",4 +1,"type3",6 +2,"type3",9 +15,"type3",9 +3,"type3",7 +7,"type3",9 +3,"type3",4 +4,"type3",9 +3,"type3",7 +7,"type3",2 +3,"type3",8 +3,"type3",6 +6,"type3",9 +3,"type3",6 +6,"type3",9 +3,"type3",9 +2,"type3",7 +3,"type3",6 +7,"type3",9 +9,"type3",9 +5,"type3",9 +5,"type3",9 +4,"type3",9 +5,"type3",7 +3,"type3",9 +10,"type3",8 +7,"type3",8 +7,"type3",9 +4,"type3",9 +3,"type3",4 +6,"type3",9 +4,"type3",4 +9,"type3",9 +3,"type3",6 +6,"type3",9 +7,"type3",9 +2,"type3",8 +2,"type3",9 +4,"type3",3 +3,"type3",9 +4,"type3",9 +3,"type3",3 +3,"type3",5 +3,"type3",9 +3,"type3",9 +4,"type3",8 +4,"type3",4 +2,"type3",3 +7,"type3",9 +4,"type3",6 +8,"type3",9 +9,"type3",9 +6,"type3",9 +4,"type3",3 +6,"type3",9 +3,"type3",9 +3,"type3",9 +11,"type3",9 +5,"type3",6 +4,"type3",9 +3,"type3",5 +6,"type3",9 +3,"type3",6 +6,"type3",6 +6,"type3",9 +6,"type3",7 +4,"type3",5 +4,"type3",5 +1,"type3",7 +7,"type3",5 +5,"type3",9 +6,"type3",9 +6,"type3",9 +3,"type3",9 +3,"type3",9 +2,"type3",9 +4,"type3",9 +3,"type3",8 +3,"type3",4 +10,"type3",9 +3,"type3",4 +4,"type3",9 +4,"type3",9 +2,"type3",9 +1,"type3",2 +3,"type3",9 +13,"type3",9 +4,"type3",9 +6,"type3",9 +4,"type3",7 +1,"type3",7 +16,"type3",9 +1,"type3",2 +11,"type3",9 +2,"type3",7 +6,"type3",9 +1,"type3",9 +3,"type3",6 +3,"type3",3 +11,"type3",9 +1,"type3",7 +2,"type3",9 +5,"type3",2 +5,"type3",2 +11,"type3",8 +2,"type3",5 +11,"type3",9 +4,"type3",9 +3,"type3",8 +2,"type3",9 +3,"type3",9 +5,"type3",5 +15,"type3",9 +5,"type3",8 +2,"type3",7 +8,"type3",9 +2,"type3",2 +4,"type3",8 +10,"type3",9 +3,"type3",9 +4,"type3",6 +2,"type3",8 +16,"type3",9 +5,"type3",9 +7,"type3",9 +3,"type3",9 +2,"type3",2 +8,"type3",9 +3,"type3",4 +1,"type3",5 +3,"type3",8 +10,"type3",9 +4,"type3",3 +2,"type3",2 +5,"type3",9 +5,"type3",6 +5,"type3",9 +5,"type3",4 +2,"type3",8 +3,"type3",7 +7,"type3",9 +3,"type3",4 +8,"type3",5 +8,"type3",9 +6,"type3",3 +5,"type3",9 +3,"type3",9 +7,"type3",4 +2,"type3",8 +3,"type3",7 +3,"type3",7 +2,"type3",9 +5,"type3",9 +2,"type3",2 +3,"type3",3 +3,"type3",9 +4,"type3",9 +9,"type3",9 +5,"type3",9 +3,"type3",8 +2,"type3",8 +10,"type3",9 +3,"type3",9 +5,"type3",7 +2,"type3",9 +5,"type3",6 +7,"type3",8 +5,"type3",9 +6,"type3",6 +1,"type3",6 +3,"type3",9 +3,"type3",9 +8,"type3",4 +3,"type3",7 +2,"type3",4 +8,"type3",7 +7,"type3",6 +6,"type3",9 +3,"type3",5 +1,"type3",9 +4,"type3",7 +2,"type3",9 +6,"type3",9 +13,"type3",9 +3,"type3",6 +4,"type3",5 +2,"type3",9 +2,"type3",7 +3,"type3",7 +4,"type3",4 +4,"type3",9 +7,"type3",9 +3,"type3",8 +6,"type3",4 +2,"type3",3 +5,"type3",4 +1,"type3",5 +3,"type3",9 +4,"type3",6 +3,"type3",7 +4,"type3",9 +6,"type3",9 +6,"type3",9 +2,"type3",5 +3,"type3",7 +1,"type3",2 +6,"type3",9 +6,"type3",9 +3,"type3",9 +1,"type3",7 +4,"type3",8 +6,"type3",9 +6,"type3",9 +4,"type3",9 +4,"type3",9 +6,"type3",9 +3,"type3",9 +3,"type3",9 +4,"type3",5 +8,"type3",8 +3,"type3",7 +2,"type3",9 +5,"type3",7 +1,"type3",5 +8,"type3",9 +8,"type3",9 +2,"type3",7 +5,"type3",9 +2,"type3",8 +3,"type3",9 +2,"type3",2 +4,"type3",9 +4,"type3",8 +3,"type3",5 +3,"type3",5 +7,"type3",9 +3,"type3",8 +3,"type3",4 +22,"type3",9 +4,"type3",7 +3,"type3",8 +4,"type3",9 +4,"type3",5 +3,"type3",6 +29,"type3",9 +3,"type3",8 +2,"type3",5 +7,"type3",4 +4,"type3",8 +5,"type3",2 +2,"type3",9 +6,"type3",4 +1,"type3",7 +4,"type3",6 +6,"type3",9 +2,"type3",9 +19,"type3",9 +2,"type3",9 +2,"type3",9 +7,"type3",5 +5,"type3",9 +6,"type3",6 +7,"type3",9 +2,"type3",9 +5,"type3",8 +8,"type3",9 +3,"type3",9 +3,"type3",9 +9,"type3",9 +3,"type3",8 +4,"type3",8 +7,"type3",9 +2,"type3",8 +7,"type3",9 +4,"type3",9 +3,"type3",9 +13,"type3",9 +4,"type3",8 +4,"type3",6 +9,"type3",9 +2,"type3",8 +9,"type3",9 +3,"type3",8 +4,"type3",9 +7,"type3",9 +1,"type3",9 +4,"type3",9 +4,"type3",6 +3,"type3",8 +7,"type3",4 +6,"type3",2 +10,"type3",9 +6,"type3",9 +3,"type3",3 +4,"type3",9 +4,"type3",6 +15,"type3",9 +11,"type3",9 +8,"type3",9 +3,"type3",9 +4,"type3",5 +3,"type3",5 +3,"type3",5 +7,"type3",9 +5,"type3",9 +7,"type3",9 +3,"type3",9 +3,"type3",7 +4,"type3",3 +9,"type3",6 +9,"type3",9 +3,"type3",5 +4,"type3",9 +1,"type3",9 +8,"type3",9 +8,"type3",9 +16,"type3",9 +3,"type3",5 +8,"type3",9 +3,"type3",9 +12,"type3",9 +10,"type3",9 +3,"type3",5 +2,"type3",9 +5,"type3",5 +3,"type3",4 +21,"type3",9 +1,"type3",7 +3,"type3",9 +7,"type3",9 +10,"type3",9 +3,"type3",9 +3,"type3",9 +4,"type3",9 +14,"type3",9 +3,"type3",9 +3,"type3",7 +3,"type3",8 +3,"type3",9 +8,"type3",9 +3,"type3",9 +7,"type3",9 +8,"type3",9 +18,"type3",9 +5,"type3",9 +5,"type3",8 +3,"type3",4 +3,"type3",8 +3,"type3",9 +1,"type3",4 +12,"type3",9 +3,"type3",5 +3,"type3",9 +5,"type3",9 +4,"type3",9 +2,"type3",5 +3,"type3",3 +11,"type3",9 +4,"type3",9 +4,"type3",5 +32,"type3",9 +10,"type3",9 +5,"type3",9 +7,"type3",9 +6,"type3",9 +3,"type3",9 +16,"type3",9 +2,"type3",9 +2,"type3",9 +6,"type3",9 +14,"type3",9 +32,"type3",9 +26,"type3",9 +4,"type3",4 +4,"type3",9 +3,"type3",9 +3,"type3",9 +5,"type3",9 +3,"type3",4 +2,"type3",8 +1,"type3",5 +16,"type3",9 +4,"type3",7 +2,"type3",7 +7,"type3",5 +5,"type3",9 +10,"type3",9 +5,"type3",6 +3,"type3",2 +11,"type3",9 +7,"type3",9 +1,"type3",5 +5,"type3",9 +4,"type3",4 +3,"type3",5 +2,"type3",9 +2,"type3",9 +5,"type3",7 +2,"type3",9 +3,"type3",6 +5,"type3",8 +3,"type3",8 +4,"type3",3 +3,"type3",4 +4,"type3",9 +4,"type3",6 +11,"type3",9 +5,"type3",7 +3,"type3",5 +3,"type3",7 +4,"type3",7 +3,"type3",9 +4,"type3",9 +4,"type3",8 +3,"type3",5 +7,"type3",9 +8,"type3",9 +7,"type3",9 +4,"type3",9 +7,"type3",9 +13,"type3",9 +3,"type3",9 +3,"type3",4 +3,"type3",6 +4,"type3",5 +5,"type3",7 +9,"type3",6 +3,"type3",4 +5,"type3",5 +8,"type3",9 +5,"type3",9 +6,"type3",9 +4,"type3",9 +3,"type3",3 +6,"type3",9 +7,"type3",9 +20,"type3",9 +20,"type3",9 +10,"type3",9 +4,"type3",5 +7,"type3",7 +5,"type3",8 +1,"type3",4 +6,"type3",3 +5,"type3",9 +2,"type3",5 +9,"type3",9 +3,"type3",4 +9,"type3",9 +8,"type3",9 +3,"type3",5 +6,"type3",9 +3,"type3",5 +6,"type3",9 +8,"type3",9 +7,"type3",9 +9,"type3",9 +2,"type3",7 +3,"type3",5 +2,"type3",7 +7,"type3",8 +3,"type3",2 +5,"type3",9 +3,"type3",6 +7,"type3",9 +4,"type3",7 +5,"type3",9 +4,"type3",8 +7,"type3",9 +2,"type3",9 +7,"type3",9 +4,"type3",4 +1,"type3",2 +14,"type3",9 +3,"type3",9 +9,"type3",9 +4,"type3",5 +2,"type3",7 +11,"type3",9 +3,"type3",8 +3,"type3",7 +6,"type3",8 +5,"type3",9 +6,"type3",9 +2,"type3",8 +4,"type3",9 +9,"type3",9 +7,"type3",9 +2,"type3",2 +3,"type3",8 +2,"type3",9 +7,"type3",9 +8,"type3",7 +2,"type3",7 +1,"type3",8 +9,"type3",9 +4,"type3",9 +7,"type3",6 +3,"type3",3 +2,"type3",4 +11,"type3",9 +8,"type3",9 +9,"type3",9 +3,"type3",9 +8,"type3",9 +12,"type3",8 +8,"type3",9 +7,"type3",9 +6,"type3",5 +3,"type3",7 +3,"type3",9 +2,"type3",4 +11,"type3",9 +5,"type3",8 +2,"type3",2 +4,"type3",9 +2,"type3",8 +2,"type3",9 +5,"type3",9 +7,"type3",9 +2,"type3",8 +8,"type3",9 +2,"type3",9 +3,"type3",9 +9,"type3",9 +8,"type3",9 +7,"type3",9 +3,"type3",6 +11,"type3",9 +3,"type3",3 +7,"type3",9 +2,"type3",8 +3,"type3",7 +3,"type3",8 +8,"type3",9 +2,"type3",7 +6,"type3",9 +3,"type3",5 +8,"type3",6 +17,"type3",9 +19,"type3",9 +2,"type3",9 +5,"type3",9 +5,"type3",8 +8,"type3",9 +2,"type3",5 +2,"type3",7 +3,"type3",5 +8,"type3",9 +6,"type3",4 +7,"type3",9 +12,"type3",9 +3,"type3",9 +5,"type3",9 +3,"type3",4 +3,"type3",9 +10,"type3",7 +7,"type3",9 +9,"type3",9 +4,"type3",9 +3,"type3",9 +9,"type3",9 +3,"type3",9 +3,"type3",9 +5,"type3",9 +3,"type3",5 +2,"type3",1 +4,"type3",9 +4,"type3",9 +3,"type3",9 +8,"type3",9 +4,"type3",7 +3,"type3",9 +2,"type3",4 +7,"type3",9 +7,"type3",9 +3,"type3",5 +3,"type3",9 +3,"type3",9 +3,"type3",9 +7,"type3",9 +9,"type3",9 +9,"type3",9 +7,"type3",3 +3,"type3",3 +3,"type3",9 +32,"type3",9 +5,"type3",9 +4,"type3",5 +3,"type3",9 +11,"type3",8 +2,"type3",6 +6,"type3",8 +4,"type3",6 +4,"type3",6 +4,"type3",7 +6,"type3",9 +4,"type3",7 +12,"type3",9 +3,"type3",4 +14,"type3",9 +3,"type3",9 +4,"type3",9 +8,"type3",9 +5,"type3",9 +2,"type3",3 +3,"type3",9 +3,"type3",5 +4,"type3",9 +11,"type3",7 +8,"type3",9 +3,"type3",5 +10,"type3",9 +6,"type3",9 +11,"type3",9 +10,"type3",9 +2,"type3",9 +7,"type3",8 +3,"type3",9 +3,"type3",6 +2,"type3",8 +2,"type3",6 +35,"type3",9 +1,"type3",5 +4,"type3",9 +1,"type3",4 +7,"type3",8 +3,"type3",9 +4,"type3",9 +1,"type3",6 +3,"type3",5 +3,"type3",4 +2,"type3",9 +9,"type3",9 +9,"type3",9 +3,"type3",6 +4,"type3",9 +1,"type3",9 +2,"type3",8 +2,"type3",7 +3,"type3",6 +2,"type3",3 +4,"type3",9 +1,"type3",4 +2,"type3",3 +8,"type3",9 +8,"type3",9 +3,"type3",3 +1,"type3",3 +8,"type3",9 +2,"type3",6 +2,"type3",6 +4,"type3",9 +5,"type3",9 +3,"type3",5 +2,"type3",5 +2,"type3",4 +3,"type3",9 +5,"type3",5 +2,"type3",4 +2,"type3",9 +3,"type3",5 +6,"type3",8 +9,"type3",9 +1,"type3",4 +6,"type3",9 +3,"type3",8 +6,"type3",9 +3,"type3",6 +7,"type3",5 +11,"type3",9 +11,"type3",9 +5,"type3",6 +10,"type3",8 +8,"type3",9 +13,"type3",9 +4,"type3",9 +4,"type3",9 +6,"type3",9 +6,"type3",9 +6,"type3",8 +3,"type3",3 +14,"type3",8 +4,"type3",2 +6,"type3",5 +6,"type3",9 +5,"type3",4 +4,"type3",9 +6,"type3",8 +2,"type3",9 +2,"type3",2 +10,"type3",9 +4,"type3",9 +4,"type3",9 +5,"type3",9 +3,"type3",3 +2,"type3",9 +3,"type3",8 +3,"type3",4 +3,"type3",6 +5,"type3",7 +5,"type3",5 +3,"type3",9 +14,"type3",9 +3,"type3",8 +2,"type3",5 +6,"type3",7 +5,"type3",6 +4,"type3",9 +3,"type3",9 +3,"type3",9 +13,"type3",9 +31,"type3",9 +3,"type3",5 +9,"type3",9 +11,"type3",9 +6,"type3",9 +7,"type3",9 +3,"type3",9 +8,"type3",9 +7,"type3",8 +2,"type3",4 +3,"type3",9 +3,"type3",9 +3,"type3",8 +9,"type3",9 +1,"type3",3 +5,"type3",9 +3,"type3",7 +5,"type3",9 +3,"type3",7 +3,"type3",9 +2,"type3",8 +3,"type3",9 +9,"type3",9 +5,"type3",9 +7,"type3",9 +3,"type3",8 +2,"type3",2 +7,"type3",9 +2,"type3",9 +4,"type3",2 +3,"type3",4 +2,"type3",9 +3,"type3",9 +3,"type3",2 +4,"type3",6 +3,"type3",4 +7,"type3",6 +3,"type3",9 +1,"type3",9 +3,"type3",9 +9,"type3",9 +6,"type3",9 +2,"type3",9 +6,"type3",6 +3,"type3",7 +4,"type3",8 +5,"type3",9 +7,"type3",9 +3,"type3",9 +3,"type3",9 +8,"type3",8 +1,"type3",5 +3,"type3",9 +4,"type3",8 +10,"type3",9 +6,"type3",2 +2,"type3",2 +3,"type3",9 +3,"type3",4 +3,"type3",9 +2,"type3",4 +8,"type3",9 +3,"type3",6 +2,"type3",2 +4,"type3",9 +3,"type3",9 +6,"type3",2 +3,"type3",7 +6,"type3",9 +9,"type3",9 +3,"type3",3 +3,"type3",9 +3,"type3",5 +22,"type3",9 +4,"type3",9 +2,"type3",3 +2,"type3",5 +4,"type3",7 +4,"type3",7 +3,"type3",9 +5,"type3",5 +3,"type3",6 +2,"type3",9 +3,"type3",6 +3,"type3",9 +3,"type3",3 +5,"type3",6 +4,"type3",7 +3,"type3",4 +4,"type3",9 +9,"type3",9 +6,"type3",4 +1,"type3",4 +3,"type3",4 +11,"type3",9 +3,"type3",9 +2,"type3",5 +6,"type3",5 +2,"type3",3 +6,"type3",9 +7,"type3",9 +2,"type3",2 +4,"type3",5 +8,"type3",9 +1,"type3",2 +4,"type3",4 +3,"type3",4 +1,"type3",6 +9,"type3",9 +2,"type3",4 +3,"type3",9 +3,"type3",9 +4,"type3",9 +11,"type3",9 +2,"type3",9 +5,"type3",9 +5,"type3",8 +17,"type3",9 +3,"type3",9 +7,"type3",9 +18,"type3",9 +2,"type3",9 +6,"type3",9 +6,"type3",9 +2,"type3",9 +3,"type3",7 +3,"type3",9 +3,"type3",9 +4,"type3",7 +6,"type3",9 +3,"type3",9 +3,"type3",7 +3,"type3",7 +2,"type3",9 +2,"type3",8 +2,"type3",6 +10,"type3",9 +5,"type3",7 +2,"type3",5 +3,"type3",6 +9,"type3",9 +6,"type3",2 +4,"type3",6 +4,"type3",8 +3,"type3",9 +16,"type3",9 +3,"type3",9 +3,"type3",9 +2,"type3",3 +3,"type3",8 +11,"type3",9 +3,"type3",7 +3,"type3",9 +3,"type3",6 +3,"type3",9 +2,"type3",9 +3,"type3",7 +3,"type3",6 +22,"type3",9 +4,"type3",9 +7,"type3",9 +3,"type3",9 +4,"type3",9 +1,"type3",6 +6,"type3",6 +2,"type3",3 +2,"type3",7 +3,"type3",9 +2,"type3",3 +3,"type3",3 +21,"type3",9 +4,"type3",5 +3,"type3",8 +4,"type3",3 +4,"type3",7 +3,"type3",3 +2,"type3",4 +2,"type3",7 +7,"type3",9 +4,"type3",9 +8,"type3",6 +3,"type3",7 +8,"type3",9 +6,"type3",6 +2,"type3",9 +2,"type3",7 +3,"type3",6 +5,"type3",2 +22,"type3",9 +5,"type3",9 +4,"type3",9 +3,"type3",7 +8,"type3",9 +3,"type3",9 +4,"type3",9 +9,"type3",9 +3,"type3",7 +7,"type3",8 +4,"type3",6 +4,"type3",9 +3,"type3",5 +3,"type3",4 +3,"type3",7 +5,"type3",9 +2,"type3",6 +6,"type3",9 +8,"type3",9 +3,"type3",3 +7,"type3",9 +7,"type3",8 +5,"type3",9 +8,"type3",9 +5,"type3",9 +3,"type3",4 +3,"type3",1 +11,"type3",9 +5,"type3",9 +2,"type3",4 +3,"type3",8 +3,"type3",5 +7,"type3",9 +2,"type3",2 +4,"type3",9 +3,"type3",5 +8,"type3",9 +9,"type3",9 +1,"type3",5 +3,"type3",2 +3,"type3",9 +6,"type3",7 +7,"type3",6 +10,"type3",9 +3,"type3",8 +3,"type3",9 +3,"type3",9 +3,"type3",6 +3,"type3",9 +3,"type3",9 +8,"type3",9 +4,"type3",5 +5,"type3",7 +5,"type3",9 +1,"type3",7 +6,"type3",9 +2,"type3",7 +3,"type3",4 +3,"type3",5 +5,"type3",9 +3,"type3",9 +10,"type3",9 +2,"type3",8 +9,"type3",9 +8,"type3",9 +4,"type3",8 +3,"type3",9 +3,"type3",9 +4,"type3",9 +4,"type3",9 +14,"type3",9 +4,"type3",9 +7,"type3",9 +14,"type3",9 +6,"type3",9 +8,"type3",9 +4,"type3",4 +2,"type3",4 +5,"type3",5 +7,"type3",9 +3,"type3",6 +3,"type3",4 +9,"type3",9 +2,"type3",7 +3,"type3",7 +2,"type3",3 +5,"type3",5 +23,"type3",9 +3,"type3",8 +3,"type3",9 +10,"type3",9 +3,"type3",9 +10,"type3",9 +2,"type3",6 +3,"type3",8 +5,"type3",6 +4,"type3",9 +3,"type3",3 +4,"type3",9 +9,"type3",6 +10,"type3",6 +2,"type3",7 +5,"type3",9 +1,"type3",7 +7,"type3",6 +4,"type3",9 +2,"type3",8 +3,"type3",4 +2,"type3",4 +10,"type3",8 +8,"type3",9 +2,"type3",5 +30,"type3",8 +5,"type3",6 +3,"type3",6 +2,"type3",4 +15,"type3",9 +3,"type3",5 +5,"type3",9 +6,"type3",9 +3,"type3",7 +5,"type3",8 +10,"type3",3 +2,"type3",5 +4,"type3",9 +2,"type3",8 +12,"type3",9 +8,"type3",9 +6,"type3",8 +4,"type3",9 +5,"type3",6 +2,"type3",8 +3,"type3",7 +5,"type3",9 +7,"type3",9 +3,"type3",8 +4,"type3",4 +9,"type3",9 +16,"type3",9 +4,"type3",9 +3,"type3",8 +3,"type3",8 +3,"type3",9 +3,"type3",3 +3,"type3",9 +10,"type3",9 +4,"type3",4 +5,"type3",9 +13,"type3",9 +6,"type3",9 +6,"type3",6 +7,"type3",9 +9,"type3",7 +7,"type3",9 +3,"type3",9 +5,"type3",9 +4,"type3",5 +3,"type3",6 +3,"type3",8 +5,"type3",9 +4,"type3",4 +3,"type3",5 +2,"type3",8 +1,"type3",6 +7,"type3",9 +9,"type3",8 +3,"type3",8 +5,"type3",2 +7,"type3",9 +9,"type3",9 +11,"type3",9 +7,"type3",9 +2,"type3",9 +4,"type3",8 +6,"type3",9 +3,"type3",7 +4,"type3",9 +3,"type3",9 +7,"type3",9 +3,"type3",6 +3,"type3",9 +3,"type3",3 +6,"type3",5 +3,"type3",9 +10,"type3",9 +1,"type3",8 +2,"type3",9 +37,"type3",9 +3,"type3",9 +11,"type3",9 +16,"type3",9 +4,"type3",9 +5,"type3",9 +1,"type3",1 +3,"type3",9 +2,"type3",5 +2,"type3",8 +4,"type3",7 +4,"type3",9 +4,"type3",9 +3,"type3",5 +6,"type3",9 +3,"type3",4 +7,"type3",2 +5,"type3",9 +5,"type3",4 +3,"type3",2 +3,"type3",7 +4,"type3",9 +13,"type3",9 +12,"type3",9 +2,"type3",6 +12,"type3",9 +7,"type3",7 +1,"type3",5 +2,"type3",2 +7,"type3",7 +3,"type3",9 +2,"type3",1 +3,"type3",4 +6,"type3",6 +5,"type3",8 +4,"type3",8 +2,"type3",3 +5,"type3",6 +3,"type3",6 +2,"type3",3 +1,"type3",6 +3,"type3",8 +2,"type3",6 +3,"type3",8 +1,"type3",5 +2,"type3",6 +3,"type3",9 +2,"type3",9 +3,"type3",9 +4,"type3",9 +2,"type3",5 +3,"type3",9 +6,"type3",9 +3,"type3",9 +4,"type3",6 +3,"type3",9 +5,"type3",9 +10,"type3",9 +3,"type3",5 +1,"type3",8 +2,"type3",5 +6,"type3",6 +6,"type3",7 +4,"type3",5 +9,"type3",9 +5,"type3",9 +6,"type3",9 +2,"type3",2 +3,"type3",9 +2,"type3",9 +12,"type3",9 +3,"type3",9 +4,"type3",9 +4,"type3",9 +5,"type3",9 +8,"type3",5 +4,"type3",3 +4,"type3",8 +7,"type3",7 +3,"type3",8 diff --git a/statsmodels/genmod/tests/test_gee.py b/statsmodels/genmod/tests/test_gee.py new file mode 100644 index 0000000..a22f4ea --- /dev/null +++ b/statsmodels/genmod/tests/test_gee.py @@ -0,0 +1,1667 @@ +""" +Test functions for GEE + +External comparisons are to R and Stata. The statmodels GEE +implementation should generally agree with the R GEE implementation +for the independence and exchangeable correlation structures. For +other correlation structures, the details of the correlation +estimation differ among implementations and the results will not agree +exactly. +""" + +from statsmodels.compat import lrange +import numpy as np +import os + +from numpy.testing import (assert_almost_equal, assert_equal, assert_allclose, + assert_array_less, assert_raises, assert_, dec) +from statsmodels.genmod.generalized_estimating_equations import ( + GEE, OrdinalGEE, NominalGEE, NominalGEEResults, OrdinalGEEResults, + NominalGEEResultsWrapper, OrdinalGEEResultsWrapper) +from statsmodels.genmod.families import Gaussian, Binomial, Poisson +from statsmodels.genmod.cov_struct import (Exchangeable, Independence, + GlobalOddsRatio, Autoregressive, + Nested, Stationary) +import pandas as pd +import statsmodels.formula.api as smf +import statsmodels.api as sm +from scipy.stats.distributions import norm +import warnings + +try: + import matplotlib.pyplot as plt # makes plt available for test functions + have_matplotlib = True +except: + have_matplotlib = False + +pdf_output = False + +if pdf_output: + from matplotlib.backends.backend_pdf import PdfPages + pdf = PdfPages("test_glm.pdf") +else: + pdf = None + + +def close_or_save(pdf, fig): + if pdf_output: + pdf.savefig(fig) + plt.close(fig) + + +def teardown_module(): + if have_matplotlib: + plt.close('all') + if pdf_output: + pdf.close() + + +def load_data(fname, icept=True): + """ + Load a data set from the results directory. The data set should + be a CSV file with the following format: + + Column 0: Group indicator + Column 1: endog variable + Columns 2-end: exog variables + + If `icept` is True, an intercept is prepended to the exog + variables. + """ + + cur_dir = os.path.dirname(os.path.abspath(__file__)) + Z = np.genfromtxt(os.path.join(cur_dir, 'results', fname), + delimiter=",") + + group = Z[:, 0] + endog = Z[:, 1] + exog = Z[:, 2:] + + if icept: + exog = np.concatenate((np.ones((exog.shape[0], 1)), exog), + axis=1) + + return endog, exog, group + + +def check_wrapper(results): + # check wrapper + assert_(isinstance(results.params, pd.Series)) + assert_(isinstance(results.fittedvalues, pd.Series)) + assert_(isinstance(results.resid, pd.Series)) + assert_(isinstance(results.centered_resid, pd.Series)) + + assert_(isinstance(results._results.params, np.ndarray)) + assert_(isinstance(results._results.fittedvalues, np.ndarray)) + assert_(isinstance(results._results.resid, np.ndarray)) + assert_(isinstance(results._results.centered_resid, np.ndarray)) + + +class TestGEE(object): + + def test_margins_gaussian(self): + """ + Check marginal effects for a Gaussian GEE fit. Marginal + effects and ordinary effects should be equal. + """ + + n = 40 + np.random.seed(34234) + exog = np.random.normal(size=(n, 3)) + exog[:, 0] = 1 + + groups = np.kron(np.arange(n / 4), np.r_[1, 1, 1, 1]) + endog = exog[:, 1] + np.random.normal(size=n) + + model = sm.GEE(endog, exog, groups) + result = model.fit( + start_params=[-4.88085602e-04, 1.18501903, 4.78820100e-02]) + + marg = result.get_margeff() + + assert_allclose(marg.margeff, result.params[1:]) + assert_allclose(marg.margeff_se, result.bse[1:]) + + # smoke test + marg.summary() + + def test_margins_logistic(self): + """ + Check marginal effects for a binomial GEE fit. Comparison + comes from Stata. + """ + + np.random.seed(34234) + endog = np.r_[0, 0, 0, 0, 1, 1, 1, 1] + exog = np.ones((8, 2)) + exog[:, 1] = np.r_[1, 2, 1, 1, 2, 1, 2, 2] + + groups = np.arange(8) + + model = sm.GEE(endog, exog, groups, family=sm.families.Binomial()) + result = model.fit( + cov_type='naive', start_params=[-3.29583687, 2.19722458]) + + marg = result.get_margeff() + + assert_allclose(marg.margeff, np.r_[0.4119796]) + assert_allclose(marg.margeff_se, np.r_[0.1379962], rtol=1e-6) + + def test_margins_multinomial(self): + """ + Check marginal effects for a 2-class multinomial GEE fit, + which should be equivalent to logistic regression. Comparison + comes from Stata. + """ + + np.random.seed(34234) + endog = np.r_[0, 0, 0, 0, 1, 1, 1, 1] + exog = np.ones((8, 2)) + exog[:, 1] = np.r_[1, 2, 1, 1, 2, 1, 2, 2] + + groups = np.arange(8) + + model = sm.NominalGEE(endog, exog, groups) + result = model.fit(cov_type='naive', start_params=[ + 3.295837, -2.197225]) + + marg = result.get_margeff() + + assert_allclose(marg.margeff, np.r_[-0.41197961], rtol=1e-5) + assert_allclose(marg.margeff_se, np.r_[0.1379962], rtol=1e-6) + + @dec.skipif(not have_matplotlib) + def test_nominal_plot(self): + np.random.seed(34234) + endog = np.r_[0, 0, 0, 0, 1, 1, 1, 1] + exog = np.ones((8, 2)) + exog[:, 1] = np.r_[1, 2, 1, 1, 2, 1, 2, 2] + + groups = np.arange(8) + + model = sm.NominalGEE(endog, exog, groups) + result = model.fit(cov_type='naive', + start_params=[3.295837, -2.197225]) + + # Smoke test for figure + fig = result.plot_distribution() + assert_equal(isinstance(fig, plt.Figure), True) + plt.close(fig) + + def test_margins_poisson(self): + """ + Check marginal effects for a Poisson GEE fit. + """ + + np.random.seed(34234) + endog = np.r_[10, 15, 12, 13, 20, 18, 26, 29] + exog = np.ones((8, 2)) + exog[:, 1] = np.r_[0, 0, 0, 0, 1, 1, 1, 1] + + groups = np.arange(8) + + model = sm.GEE(endog, exog, groups, family=sm.families.Poisson()) + result = model.fit(cov_type='naive', start_params=[ + 2.52572864, 0.62057649]) + + marg = result.get_margeff() + + assert_allclose(marg.margeff, np.r_[11.0928], rtol=1e-6) + assert_allclose(marg.margeff_se, np.r_[3.269015], rtol=1e-6) + + def test_multinomial(self): + """ + Check the 2-class multinomial (nominal) GEE fit against + logistic regression. + """ + + np.random.seed(34234) + endog = np.r_[0, 0, 0, 0, 1, 1, 1, 1] + exog = np.ones((8, 2)) + exog[:, 1] = np.r_[1, 2, 1, 1, 2, 1, 2, 2] + + groups = np.arange(8) + + model = sm.NominalGEE(endog, exog, groups) + results = model.fit(cov_type='naive', start_params=[ + 3.295837, -2.197225]) + + logit_model = sm.GEE(endog, exog, groups, + family=sm.families.Binomial()) + logit_results = logit_model.fit(cov_type='naive') + + assert_allclose(results.params, -logit_results.params, rtol=1e-5) + assert_allclose(results.bse, logit_results.bse, rtol=1e-5) + + def test_weighted(self): + + # Simple check where the answer can be computed by hand. + exog = np.ones(20) + weights = np.ones(20) + weights[0:10] = 2 + endog = np.zeros(20) + endog[0:10] += 1 + groups = np.kron(np.arange(10), np.r_[1, 1]) + model = GEE(endog, exog, groups, weights=weights) + result = model.fit() + assert_allclose(result.params, np.r_[2 / 3.]) + + # Comparison against stata using groups with different sizes. + weights = np.ones(20) + weights[10:] = 2 + endog = np.r_[1, 2, 3, 2, 3, 4, 3, 4, 5, 4, 5, 6, 5, 6, 7, 6, + 7, 8, 7, 8] + exog1 = np.r_[1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, + 3, 3, 3, 3] + groups = np.r_[1, 1, 2, 2, 2, 2, 4, 4, 5, 5, 6, 6, 6, 6, + 8, 8, 9, 9, 10, 10] + exog = np.column_stack((np.ones(20), exog1)) + + # Comparison using independence model + model = GEE(endog, exog, groups, weights=weights, + cov_struct=sm.cov_struct.Independence()) + g = np.mean([2, 4, 2, 2, 4, 2, 2, 2]) + fac = 20 / float(20 - g) + result = model.fit(ddof_scale=0, scaling_factor=fac) + + assert_allclose(result.params, np.r_[1.247573, 1.436893], atol=1e-6) + assert_allclose(result.scale, 1.808576) + + # Stata multiples robust SE by sqrt(N / (N - g)), where N is + # the total sample size and g is the average group size. + assert_allclose(result.bse, np.r_[0.895366, 0.3425498], atol=1e-5) + + # Comparison using exchangeable model + # Smoke test for now + model = GEE(endog, exog, groups, weights=weights, + cov_struct=sm.cov_struct.Exchangeable()) + result = model.fit(ddof_scale=0) + + # This is in the release announcement for version 0.6. + def test_poisson_epil(self): + + cur_dir = os.path.dirname(os.path.abspath(__file__)) + fname = os.path.join(cur_dir, "results", "epil.csv") + data = pd.read_csv(fname) + + fam = Poisson() + ind = Independence() + mod1 = GEE.from_formula("y ~ age + trt + base", data["subject"], + data, cov_struct=ind, family=fam) + rslt1 = mod1.fit(cov_type='naive') + + # Coefficients should agree with GLM + from statsmodels.genmod.generalized_linear_model import GLM + from statsmodels.genmod import families + + mod2 = GLM.from_formula("y ~ age + trt + base", data, + family=families.Poisson()) + rslt2 = mod2.fit() + + # don't use wrapper, asserts_xxx don't work + rslt1 = rslt1._results + rslt2 = rslt2._results + + assert_allclose(rslt1.params, rslt2.params, rtol=1e-6, atol=1e-6) + assert_allclose(rslt1.bse, rslt2.bse, rtol=1e-6, atol=1e-6) + + def test_missing(self): + # Test missing data handling for calling from the api. Missing + # data handling does not currently work for formulas. + + endog = np.random.normal(size=100) + exog = np.random.normal(size=(100, 3)) + exog[:, 0] = 1 + groups = np.kron(lrange(20), np.ones(5)) + + endog[0] = np.nan + endog[5:7] = np.nan + exog[10:12, 1] = np.nan + + mod1 = GEE(endog, exog, groups, missing='drop') + rslt1 = mod1.fit() + + assert_almost_equal(len(mod1.endog), 95) + assert_almost_equal(np.asarray(mod1.exog.shape), np.r_[95, 3]) + + ii = np.isfinite(endog) & np.isfinite(exog).all(1) + + mod2 = GEE(endog[ii], exog[ii, :], groups[ii], missing='none') + rslt2 = mod2.fit() + + assert_almost_equal(rslt1.params, rslt2.params) + assert_almost_equal(rslt1.bse, rslt2.bse) + + def test_missing_formula(self): + # Test missing data handling for formulas. + + endog = np.random.normal(size=100) + exog1 = np.random.normal(size=100) + exog2 = np.random.normal(size=100) + exog3 = np.random.normal(size=100) + groups = np.kron(lrange(20), np.ones(5)) + + endog[0] = np.nan + endog[5:7] = np.nan + exog2[10:12] = np.nan + + data = pd.DataFrame({"endog": endog, "exog1": exog1, "exog2": exog2, + "exog3": exog3, "groups": groups}) + + mod1 = GEE.from_formula("endog ~ exog1 + exog2 + exog3", + groups, data, missing='drop') + rslt1 = mod1.fit() + + assert_almost_equal(len(mod1.endog), 95) + assert_almost_equal(np.asarray(mod1.exog.shape), np.r_[95, 4]) + + data = data.dropna() + groups = groups[data.index.values] + + mod2 = GEE.from_formula("endog ~ exog1 + exog2 + exog3", + groups, data, missing='none') + rslt2 = mod2.fit() + + assert_almost_equal(rslt1.params.values, rslt2.params.values) + assert_almost_equal(rslt1.bse.values, rslt2.bse.values) + + def test_default_time(self): + # Check that the time defaults work correctly. + + endog, exog, group = load_data("gee_logistic_1.csv") + + # Time values for the autoregressive model + T = np.zeros(len(endog)) + idx = set(group) + for ii in idx: + jj = np.flatnonzero(group == ii) + T[jj] = lrange(len(jj)) + + family = Binomial() + va = Autoregressive() + + md1 = GEE(endog, exog, group, family=family, cov_struct=va) + mdf1 = md1.fit() + + md2 = GEE(endog, exog, group, time=T, family=family, + cov_struct=va) + mdf2 = md2.fit() + + assert_almost_equal(mdf1.params, mdf2.params, decimal=6) + assert_almost_equal(mdf1.standard_errors(), + mdf2.standard_errors(), decimal=6) + + def test_logistic(self): + # R code for comparing results: + + # library(gee) + # Z = read.csv("results/gee_logistic_1.csv", header=FALSE) + # Y = Z[,2] + # Id = Z[,1] + # X1 = Z[,3] + # X2 = Z[,4] + # X3 = Z[,5] + + # mi = gee(Y ~ X1 + X2 + X3, id=Id, family=binomial, + # corstr="independence") + # smi = summary(mi) + # u = coefficients(smi) + # cfi = paste(u[,1], collapse=",") + # sei = paste(u[,4], collapse=",") + + # me = gee(Y ~ X1 + X2 + X3, id=Id, family=binomial, + # corstr="exchangeable") + # sme = summary(me) + # u = coefficients(sme) + # cfe = paste(u[,1], collapse=",") + # see = paste(u[,4], collapse=",") + + # ma = gee(Y ~ X1 + X2 + X3, id=Id, family=binomial, + # corstr="AR-M") + # sma = summary(ma) + # u = coefficients(sma) + # cfa = paste(u[,1], collapse=",") + # sea = paste(u[,4], collapse=",") + + # sprintf("cf = [[%s],[%s],[%s]]", cfi, cfe, cfa) + # sprintf("se = [[%s],[%s],[%s]]", sei, see, sea) + + endog, exog, group = load_data("gee_logistic_1.csv") + + # Time values for the autoregressive model + T = np.zeros(len(endog)) + idx = set(group) + for ii in idx: + jj = np.flatnonzero(group == ii) + T[jj] = lrange(len(jj)) + + family = Binomial() + ve = Exchangeable() + vi = Independence() + va = Autoregressive() + + # From R gee + cf = [[0.0167272965285882, 1.13038654425893, + -1.86896345082962, 1.09397608331333], + [0.0178982283915449, 1.13118798191788, + -1.86133518416017, 1.08944256230299], + [0.0109621937947958, 1.13226505028438, + -1.88278757333046, 1.09954623769449]] + se = [[0.127291720283049, 0.166725808326067, + 0.192430061340865, 0.173141068839597], + [0.127045031730155, 0.165470678232842, + 0.192052750030501, 0.173174779369249], + [0.127240302296444, 0.170554083928117, + 0.191045527104503, 0.169776150974586]] + + for j, v in enumerate((vi, ve, va)): + md = GEE(endog, exog, group, T, family, v) + mdf = md.fit() + if id(v) != id(va): + assert_almost_equal(mdf.params, cf[j], decimal=6) + assert_almost_equal(mdf.standard_errors(), se[j], + decimal=6) + + # Test with formulas + D = np.concatenate((endog[:, None], group[:, None], exog[:, 1:]), + axis=1) + D = pd.DataFrame(D) + D.columns = ["Y", "Id", ] + ["X%d" % (k + 1) + for k in range(exog.shape[1] - 1)] + for j, v in enumerate((vi, ve)): + md = GEE.from_formula("Y ~ X1 + X2 + X3", "Id", D, + family=family, cov_struct=v) + mdf = md.fit() + assert_almost_equal(mdf.params, cf[j], decimal=6) + assert_almost_equal(mdf.standard_errors(), se[j], + decimal=6) + + # Check for run-time exceptions in summary + # print(mdf.summary()) + + def test_autoregressive(self): + + dep_params_true = [0, 0.589208623896, 0.559823804948] + + params_true = [[1.08043787, 1.12709319, 0.90133927], + [0.9613677, 1.05826987, 0.90832055], + [1.05370439, 0.96084864, 0.93923374]] + + np.random.seed(342837482) + + num_group = 100 + ar_param = 0.5 + k = 3 + + ga = Gaussian() + + for gsize in 1, 2, 3: + + ix = np.arange(gsize)[:, None] - np.arange(gsize)[None, :] + ix = np.abs(ix) + cmat = ar_param ** ix + cmat_r = np.linalg.cholesky(cmat) + + endog = [] + exog = [] + groups = [] + for i in range(num_group): + x = np.random.normal(size=(gsize, k)) + exog.append(x) + expval = x.sum(1) + errors = np.dot(cmat_r, np.random.normal(size=gsize)) + endog.append(expval + errors) + groups.append(i * np.ones(gsize)) + + endog = np.concatenate(endog) + groups = np.concatenate(groups) + exog = np.concatenate(exog, axis=0) + + ar = Autoregressive() + md = GEE(endog, exog, groups, family=ga, cov_struct=ar) + mdf = md.fit() + assert_almost_equal(ar.dep_params, dep_params_true[gsize - 1]) + assert_almost_equal(mdf.params, params_true[gsize - 1]) + + def test_post_estimation(self): + + family = Gaussian() + endog, exog, group = load_data("gee_linear_1.csv") + + ve = Exchangeable() + + md = GEE(endog, exog, group, None, family, ve) + mdf = md.fit() + + assert_almost_equal(np.dot(exog, mdf.params), + mdf.fittedvalues) + assert_almost_equal(endog - np.dot(exog, mdf.params), + mdf.resid) + + def test_scoretest(self): + # Regression tests + + np.random.seed(6432) + n = 200 # Must be divisible by 4 + exog = np.random.normal(size=(n, 4)) + endog = exog[:, 0] + exog[:, 1] + exog[:, 2] + endog += 3 * np.random.normal(size=n) + group = np.kron(np.arange(n / 4), np.ones(4)) + + # Test under the null. + L = np.array([[1., -1, 0, 0]]) + R = np.array([0., ]) + family = Gaussian() + va = Independence() + mod1 = GEE(endog, exog, group, family=family, + cov_struct=va, constraint=(L, R)) + mod1.fit() + assert_almost_equal(mod1.score_test_results["statistic"], + 1.08126334) + assert_almost_equal(mod1.score_test_results["p-value"], + 0.2984151086) + + # Test under the alternative. + L = np.array([[1., -1, 0, 0]]) + R = np.array([1.0, ]) + family = Gaussian() + va = Independence() + mod2 = GEE(endog, exog, group, family=family, + cov_struct=va, constraint=(L, R)) + mod2.fit() + assert_almost_equal(mod2.score_test_results["statistic"], + 3.491110965) + assert_almost_equal(mod2.score_test_results["p-value"], + 0.0616991659) + + # Compare to Wald tests + exog = np.random.normal(size=(n, 2)) + L = np.array([[1, -1]]) + R = np.array([0.]) + f = np.r_[1, -1] + for i in range(10): + endog = exog[:, 0] + (0.5 + i / 10.) * exog[:, 1] +\ + np.random.normal(size=n) + family = Gaussian() + va = Independence() + mod0 = GEE(endog, exog, group, family=family, + cov_struct=va) + rslt0 = mod0.fit() + family = Gaussian() + va = Independence() + mod1 = GEE(endog, exog, group, family=family, + cov_struct=va, constraint=(L, R)) + mod1.fit() + se = np.sqrt(np.dot(f, np.dot(rslt0.cov_params(), f))) + wald_z = np.dot(f, rslt0.params) / se + wald_p = 2 * norm.cdf(-np.abs(wald_z)) + score_p = mod1.score_test_results["p-value"] + assert_array_less(np.abs(wald_p - score_p), 0.02) + + def test_constraint_covtype(self): + # Test constraints with different cov types + np.random.seed(6432) + n = 200 + exog = np.random.normal(size=(n, 4)) + endog = exog[:, 0] + exog[:, 1] + exog[:, 2] + endog += 3 * np.random.normal(size=n) + group = np.kron(np.arange(n / 4), np.ones(4)) + L = np.array([[1., -1, 0, 0]]) + R = np.array([0., ]) + family = Gaussian() + va = Independence() + for cov_type in "robust", "naive", "bias_reduced": + model = GEE(endog, exog, group, family=family, + cov_struct=va, constraint=(L, R)) + result = model.fit(cov_type=cov_type) + result.standard_errors(cov_type=cov_type) + assert_allclose(result.cov_robust.shape, np.r_[4, 4]) + assert_allclose(result.cov_naive.shape, np.r_[4, 4]) + if cov_type == "bias_reduced": + assert_allclose(result.cov_robust_bc.shape, np.r_[4, 4]) + + def test_linear(self): + # library(gee) + + # Z = read.csv("results/gee_linear_1.csv", header=FALSE) + # Y = Z[,2] + # Id = Z[,1] + # X1 = Z[,3] + # X2 = Z[,4] + # X3 = Z[,5] + # mi = gee(Y ~ X1 + X2 + X3, id=Id, family=gaussian, + # corstr="independence", tol=1e-8, maxit=100) + # smi = summary(mi) + # u = coefficients(smi) + + # cfi = paste(u[,1], collapse=",") + # sei = paste(u[,4], collapse=",") + + # me = gee(Y ~ X1 + X2 + X3, id=Id, family=gaussian, + # corstr="exchangeable", tol=1e-8, maxit=100) + # sme = summary(me) + # u = coefficients(sme) + + # cfe = paste(u[,1], collapse=",") + # see = paste(u[,4], collapse=",") + + # sprintf("cf = [[%s],[%s]]", cfi, cfe) + # sprintf("se = [[%s],[%s]]", sei, see) + + family = Gaussian() + + endog, exog, group = load_data("gee_linear_1.csv") + + vi = Independence() + ve = Exchangeable() + + # From R gee + cf = [[-0.01850226507491, 0.81436304278962, + -1.56167635393184, 0.794239361055003], + [-0.0182920577154767, 0.814898414022467, + -1.56194040106201, 0.793499517527478]] + se = [[0.0440733554189401, 0.0479993639119261, + 0.0496045952071308, 0.0479467597161284], + [0.0440369906460754, 0.0480069787567662, + 0.049519758758187, 0.0479760443027526]] + + for j, v in enumerate((vi, ve)): + md = GEE(endog, exog, group, None, family, v) + mdf = md.fit() + assert_almost_equal(mdf.params, cf[j], decimal=10) + assert_almost_equal(mdf.standard_errors(), se[j], + decimal=10) + + # Test with formulas + D = np.concatenate((endog[:, None], group[:, None], exog[:, 1:]), + axis=1) + D = pd.DataFrame(D) + D.columns = ["Y", "Id", ] + ["X%d" % (k + 1) + for k in range(exog.shape[1] - 1)] + for j, v in enumerate((vi, ve)): + md = GEE.from_formula("Y ~ X1 + X2 + X3", "Id", D, + family=family, cov_struct=v) + mdf = md.fit() + assert_almost_equal(mdf.params, cf[j], decimal=10) + assert_almost_equal(mdf.standard_errors(), se[j], + decimal=10) + + def test_linear_constrained(self): + + family = Gaussian() + + exog = np.random.normal(size=(300, 4)) + exog[:, 0] = 1 + endog = np.dot(exog, np.r_[1, 1, 0, 0.2]) +\ + np.random.normal(size=300) + group = np.kron(np.arange(100), np.r_[1, 1, 1]) + + vi = Independence() + ve = Exchangeable() + + L = np.r_[[[0, 0, 0, 1]]] + R = np.r_[0, ] + + for j, v in enumerate((vi, ve)): + md = GEE(endog, exog, group, None, family, v, + constraint=(L, R)) + mdf = md.fit() + assert_almost_equal(mdf.params[3], 0, decimal=10) + + def test_nested_linear(self): + + family = Gaussian() + + endog, exog, group = load_data("gee_nested_linear_1.csv") + + group_n = [] + for i in range(endog.shape[0] // 10): + group_n.extend([0, ] * 5) + group_n.extend([1, ] * 5) + group_n = np.array(group_n)[:, None] + + dp = Independence() + md = GEE(endog, exog, group, None, family, dp) + mdf1 = md.fit() + + # From statsmodels.GEE (not an independent test) + cf = np.r_[-0.1671073, 1.00467426, -2.01723004, 0.97297106] + se = np.r_[0.08629606, 0.04058653, 0.04067038, 0.03777989] + assert_almost_equal(mdf1.params, cf, decimal=6) + assert_almost_equal(mdf1.standard_errors(), se, + decimal=6) + + ne = Nested() + md = GEE(endog, exog, group, None, family, ne, + dep_data=group_n) + mdf2 = md.fit(start_params=mdf1.params) + + # From statsmodels.GEE (not an independent test) + cf = np.r_[-0.16655319, 1.02183688, -2.00858719, 1.00101969] + se = np.r_[0.08632616, 0.02913582, 0.03114428, 0.02893991] + assert_almost_equal(mdf2.params, cf, decimal=6) + assert_almost_equal(mdf2.standard_errors(), se, + decimal=6) + + def test_ordinal(self): + + family = Binomial() + + endog, exog, groups = load_data("gee_ordinal_1.csv", + icept=False) + + va = GlobalOddsRatio("ordinal") + + mod = OrdinalGEE(endog, exog, groups, None, family, va) + rslt = mod.fit() + + # Regression test + cf = np.r_[1.09250002, 0.0217443, -0.39851092, -0.01812116, + 0.03023969, 1.18258516, 0.01803453, -1.10203381] + assert_almost_equal(rslt.params, cf, decimal=5) + + # Regression test + se = np.r_[0.10883461, 0.10330197, 0.11177088, 0.05486569, + 0.05997153, 0.09168148, 0.05953324, 0.0853862] + assert_almost_equal(rslt.bse, se, decimal=5) + + # Check that we get the correct results type + assert_equal(type(rslt), OrdinalGEEResultsWrapper) + assert_equal(type(rslt._results), OrdinalGEEResults) + + + def test_ordinal_formula(self): + + np.random.seed(434) + n = 40 + y = np.random.randint(0, 3, n) + groups = np.arange(n) + x1 = np.random.normal(size=n) + x2 = np.random.normal(size=n) + + df = pd.DataFrame({"y": y, "groups": groups, "x1": x1, "x2": x2}) + + # smoke test + model = OrdinalGEE.from_formula("y ~ 0 + x1 + x2", groups, data=df) + model.fit() + + # smoke test + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + model = NominalGEE.from_formula("y ~ 0 + x1 + x2", groups, data=df) + model.fit() + + def test_ordinal_independence(self): + + np.random.seed(434) + n = 40 + y = np.random.randint(0, 3, n) + groups = np.kron(np.arange(n / 2), np.r_[1, 1]) + x = np.random.normal(size=(n, 1)) + + # smoke test + odi = sm.cov_struct.OrdinalIndependence() + model1 = OrdinalGEE(y, x, groups, cov_struct=odi) + model1.fit() + + def test_nominal_independence(self): + + np.random.seed(434) + n = 40 + y = np.random.randint(0, 3, n) + groups = np.kron(np.arange(n / 2), np.r_[1, 1]) + x = np.random.normal(size=(n, 1)) + + # smoke test + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + nmi = sm.cov_struct.NominalIndependence() + model1 = NominalGEE(y, x, groups, cov_struct=nmi) + model1.fit() + + @dec.skipif(not have_matplotlib) + def test_ordinal_plot(self): + family = Binomial() + + endog, exog, groups = load_data("gee_ordinal_1.csv", + icept=False) + + va = GlobalOddsRatio("ordinal") + + mod = OrdinalGEE(endog, exog, groups, None, family, va) + rslt = mod.fit() + + # Smoke test for figure + fig = rslt.plot_distribution() + assert_equal(isinstance(fig, plt.Figure), True) + plt.close(fig) + + def test_nominal(self): + + endog, exog, groups = load_data("gee_nominal_1.csv", + icept=False) + + # Test with independence correlation + va = Independence() + mod1 = NominalGEE(endog, exog, groups, cov_struct=va) + rslt1 = mod1.fit() + + # Regression test + cf1 = np.r_[0.450009, 0.451959, -0.918825, -0.468266] + se1 = np.r_[0.08915936, 0.07005046, 0.12198139, 0.08281258] + assert_allclose(rslt1.params, cf1, rtol=1e-5, atol=1e-5) + assert_allclose(rslt1.standard_errors(), se1, rtol=1e-5, atol=1e-5) + + # Test with global odds ratio dependence + va = GlobalOddsRatio("nominal") + mod2 = NominalGEE(endog, exog, groups, cov_struct=va) + rslt2 = mod2.fit(start_params=rslt1.params) + + # Regression test + cf2 = np.r_[0.455365, 0.415334, -0.916589, -0.502116] + se2 = np.r_[0.08803614, 0.06628179, 0.12259726, 0.08411064] + assert_allclose(rslt2.params, cf2, rtol=1e-5, atol=1e-5) + assert_allclose(rslt2.standard_errors(), se2, rtol=1e-5, atol=1e-5) + + # Make sure we get the correct results type + assert_equal(type(rslt1), NominalGEEResultsWrapper) + assert_equal(type(rslt1._results), NominalGEEResults) + + def test_poisson(self): + # library(gee) + # Z = read.csv("results/gee_poisson_1.csv", header=FALSE) + # Y = Z[,2] + # Id = Z[,1] + # X1 = Z[,3] + # X2 = Z[,4] + # X3 = Z[,5] + # X4 = Z[,6] + # X5 = Z[,7] + + # mi = gee(Y ~ X1 + X2 + X3 + X4 + X5, id=Id, family=poisson, + # corstr="independence", scale.fix=TRUE) + # smi = summary(mi) + # u = coefficients(smi) + # cfi = paste(u[,1], collapse=",") + # sei = paste(u[,4], collapse=",") + + # me = gee(Y ~ X1 + X2 + X3 + X4 + X5, id=Id, family=poisson, + # corstr="exchangeable", scale.fix=TRUE) + # sme = summary(me) + + # u = coefficients(sme) + # cfe = paste(u[,1], collapse=",") + # see = paste(u[,4], collapse=",") + + # sprintf("cf = [[%s],[%s]]", cfi, cfe) + # sprintf("se = [[%s],[%s]]", sei, see) + + family = Poisson() + + endog, exog, group_n = load_data("gee_poisson_1.csv") + + vi = Independence() + ve = Exchangeable() + + # From R gee + cf = [[-0.0364450410793481, -0.0543209391301178, + 0.0156642711741052, 0.57628591338724, + -0.00465659951186211, -0.477093153099256], + [-0.0315615554826533, -0.0562589480840004, + 0.0178419412298561, 0.571512795340481, + -0.00363255566297332, -0.475971696727736]] + se = [[0.0611309237214186, 0.0390680524493108, + 0.0334234174505518, 0.0366860768962715, + 0.0304758505008105, 0.0316348058881079], + [0.0610840153582275, 0.0376887268649102, + 0.0325168379415177, 0.0369786751362213, + 0.0296141014225009, 0.0306115470200955]] + + for j, v in enumerate((vi, ve)): + md = GEE(endog, exog, group_n, None, family, v) + mdf = md.fit() + assert_almost_equal(mdf.params, cf[j], decimal=5) + assert_almost_equal(mdf.standard_errors(), se[j], + decimal=6) + + # Test with formulas + D = np.concatenate((endog[:, None], group_n[:, None], + exog[:, 1:]), axis=1) + D = pd.DataFrame(D) + D.columns = ["Y", "Id", ] + ["X%d" % (k + 1) + for k in range(exog.shape[1] - 1)] + for j, v in enumerate((vi, ve)): + md = GEE.from_formula("Y ~ X1 + X2 + X3 + X4 + X5", "Id", + D, family=family, cov_struct=v) + mdf = md.fit() + assert_almost_equal(mdf.params, cf[j], decimal=5) + assert_almost_equal(mdf.standard_errors(), se[j], + decimal=6) + # print(mdf.params) + + def test_groups(self): + # Test various group structures (nonconsecutive, different + # group sizes, not ordered, string labels) + + n = 40 + x = np.random.normal(size=(n, 2)) + y = np.random.normal(size=n) + + # groups with unequal group sizes + groups = np.kron(np.arange(n / 4), np.ones(4)) + groups[8:12] = 3 + groups[34:36] = 9 + + model1 = GEE(y, x, groups=groups) + result1 = model1.fit() + + # Unordered groups + ix = np.random.permutation(n) + y1 = y[ix] + x1 = x[ix, :] + groups1 = groups[ix] + + model2 = GEE(y1, x1, groups=groups1) + result2 = model2.fit() + + assert_allclose(result1.params, result2.params) + assert_allclose(result1.tvalues, result2.tvalues) + + # group labels are strings + mp = {} + import string + for j, g in enumerate(set(groups)): + mp[g] = string.ascii_letters[j:j + 4] + groups2 = [mp[g] for g in groups] + + model3 = GEE(y, x, groups=groups2) + result3 = model3.fit() + + assert_allclose(result1.params, result3.params) + assert_allclose(result1.tvalues, result3.tvalues) + + def test_compare_OLS(self): + # Gaussian GEE with independence correlation should agree + # exactly with OLS for parameter estimates and standard errors + # derived from the naive covariance estimate. + + vs = Independence() + family = Gaussian() + + Y = np.random.normal(size=100) + X1 = np.random.normal(size=100) + X2 = np.random.normal(size=100) + X3 = np.random.normal(size=100) + groups = np.kron(lrange(20), np.ones(5)) + + D = pd.DataFrame({"Y": Y, "X1": X1, "X2": X2, "X3": X3}) + + md = GEE.from_formula("Y ~ X1 + X2 + X3", groups, D, + family=family, cov_struct=vs) + mdf = md.fit() + + ols = smf.ols("Y ~ X1 + X2 + X3", data=D).fit() + + # don't use wrapper, asserts_xxx don't work + ols = ols._results + + assert_almost_equal(ols.params, mdf.params, decimal=10) + + se = mdf.standard_errors(cov_type="naive") + assert_almost_equal(ols.bse, se, decimal=10) + + naive_tvalues = mdf.params / \ + np.sqrt(np.diag(mdf.cov_naive)) + assert_almost_equal(naive_tvalues, ols.tvalues, decimal=10) + + def test_formulas(self): + # Check formulas, especially passing groups and time as either + # variable names or arrays. + + n = 100 + Y = np.random.normal(size=n) + X1 = np.random.normal(size=n) + mat = np.concatenate((np.ones((n, 1)), X1[:, None]), axis=1) + Time = np.random.uniform(size=n) + groups = np.kron(lrange(20), np.ones(5)) + + data = pd.DataFrame({"Y": Y, "X1": X1, "Time": Time, "groups": groups}) + + va = Autoregressive() + family = Gaussian() + + mod1 = GEE(Y, mat, groups, time=Time, family=family, + cov_struct=va) + rslt1 = mod1.fit() + + mod2 = GEE.from_formula("Y ~ X1", groups, data, time=Time, + family=family, cov_struct=va) + rslt2 = mod2.fit() + + mod3 = GEE.from_formula("Y ~ X1", groups, data, time="Time", + family=family, cov_struct=va) + rslt3 = mod3.fit() + + mod4 = GEE.from_formula("Y ~ X1", "groups", data, time=Time, + family=family, cov_struct=va) + rslt4 = mod4.fit() + + mod5 = GEE.from_formula("Y ~ X1", "groups", data, time="Time", + family=family, cov_struct=va) + rslt5 = mod5.fit() + + assert_almost_equal(rslt1.params, rslt2.params, decimal=8) + assert_almost_equal(rslt1.params, rslt3.params, decimal=8) + assert_almost_equal(rslt1.params, rslt4.params, decimal=8) + assert_almost_equal(rslt1.params, rslt5.params, decimal=8) + + check_wrapper(rslt2) + + def test_compare_logit(self): + + vs = Independence() + family = Binomial() + + Y = 1 * (np.random.normal(size=100) < 0) + X1 = np.random.normal(size=100) + X2 = np.random.normal(size=100) + X3 = np.random.normal(size=100) + groups = np.random.randint(0, 4, size=100) + + D = pd.DataFrame({"Y": Y, "X1": X1, "X2": X2, "X3": X3}) + + mod1 = GEE.from_formula("Y ~ X1 + X2 + X3", groups, D, + family=family, cov_struct=vs) + rslt1 = mod1.fit() + + mod2 = smf.logit("Y ~ X1 + X2 + X3", data=D) + rslt2 = mod2.fit(disp=False) + + assert_almost_equal(rslt1.params.values, rslt2.params.values, + decimal=10) + + def test_compare_poisson(self): + + vs = Independence() + family = Poisson() + + Y = np.ceil(-np.log(np.random.uniform(size=100))) + X1 = np.random.normal(size=100) + X2 = np.random.normal(size=100) + X3 = np.random.normal(size=100) + groups = np.random.randint(0, 4, size=100) + + D = pd.DataFrame({"Y": Y, "X1": X1, "X2": X2, "X3": X3}) + + mod1 = GEE.from_formula("Y ~ X1 + X2 + X3", groups, D, + family=family, cov_struct=vs) + rslt1 = mod1.fit() + + mod2 = smf.poisson("Y ~ X1 + X2 + X3", data=D) + rslt2 = mod2.fit(disp=False) + + assert_almost_equal(rslt1.params.values, rslt2.params.values, + decimal=10) + + def test_predict(self): + + n = 50 + np.random.seed(4324) + X1 = np.random.normal(size=n) + X2 = np.random.normal(size=n) + groups = np.kron(np.arange(n / 2), np.r_[1, 1]) + offset = np.random.uniform(1, 2, size=n) + Y = np.random.normal(0.1 * (X1 + X2) + offset, size=n) + data = pd.DataFrame({"Y": Y, "X1": X1, "X2": X2, "groups": groups, + "offset": offset}) + + fml = "Y ~ X1 + X2" + model = GEE.from_formula(fml, groups, data, family=Gaussian(), + offset="offset") + result = model.fit(start_params=[0, 0.1, 0.1]) + assert_equal(result.converged, True) + + pred1 = result.predict() + pred2 = result.predict(offset=data.offset) + pred3 = result.predict(exog=data[["X1", "X2"]], offset=data.offset) + pred4 = result.predict(exog=data[["X1", "X2"]], offset=0 * data.offset) + pred5 = result.predict(offset=0 * data.offset) + + assert_allclose(pred1, pred2) + assert_allclose(pred1, pred3) + assert_allclose(pred1, pred4 + data.offset) + assert_allclose(pred1, pred5 + data.offset) + + x1_new = np.random.normal(size=10) + x2_new = np.random.normal(size=10) + new_exog = pd.DataFrame({"X1": x1_new, "X2": x2_new}) + pred6 = result.predict(exog=new_exog) + params = result.params + pred6_correct = params[0] + params[1] * x1_new + params[2] * x2_new + assert_allclose(pred6, pred6_correct) + + def test_stationary_grid(self): + + endog = np.r_[4, 2, 3, 1, 4, 5, 6, 7, 8, 3, 2, 4.] + exog = np.r_[2, 3, 1, 4, 3, 2, 5, 4, 5, 6, 3, 2] + group = np.r_[0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3] + exog = sm.add_constant(exog) + + cs = Stationary(max_lag=2, grid=True) + model = sm.GEE(endog, exog, group, cov_struct=cs) + result = model.fit() + se = result.bse * np.sqrt(12 / 9.) # Stata adjustment + + assert_allclose(cs.covariance_matrix(np.r_[1, 1, 1], 0)[0].sum(), + 6.4633538285149452) + + # Obtained from Stata using: + # xtgee y x, i(g) vce(robust) corr(Stationary2) + assert_allclose(result.params, np.r_[ + 4.463968, -0.0386674], rtol=1e-5, atol=1e-5) + assert_allclose(se, np.r_[0.5217202, 0.2800333], rtol=1e-5, atol=1e-5) + + def test_stationary_nogrid(self): + + # First test special case where the data follow a grid but we + # fit using nogrid + endog = np.r_[4, 2, 3, 1, 4, 5, 6, 7, 8, 3, 2, 4.] + exog = np.r_[2, 3, 1, 4, 3, 2, 5, 4, 5, 6, 3, 2] + time = np.r_[0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2] + group = np.r_[0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3] + + exog = sm.add_constant(exog) + + model = sm.GEE(endog, exog, group, + cov_struct=Stationary(max_lag=2, grid=False)) + result = model.fit() + se = result.bse * np.sqrt(12 / 9.) # Stata adjustment + + # Obtained from Stata using: + # xtgee y x, i(g) vce(robust) corr(Stationary2) + assert_allclose(result.params, np.r_[ + 4.463968, -0.0386674], rtol=1e-5, atol=1e-5) + assert_allclose(se, np.r_[0.5217202, 0.2800333], rtol=1e-5, atol=1e-5) + + # Smoke test for no grid + time = np.r_[0, 1, 3, 0, 2, 3, 0, 2, 3, 0, 1, 2][:, None] + model = sm.GEE(endog, exog, group, time=time, + cov_struct=Stationary(max_lag=4, grid=False)) + result = model.fit() + + def test_predict_exposure(self): + + n = 50 + X1 = np.random.normal(size=n) + X2 = np.random.normal(size=n) + groups = np.kron(np.arange(25), np.r_[1, 1]) + offset = np.random.uniform(1, 2, size=n) + exposure = np.random.uniform(1, 2, size=n) + Y = np.random.poisson(0.1 * (X1 + X2) + offset + + np.log(exposure), size=n) + data = pd.DataFrame({"Y": Y, "X1": X1, "X2": X2, "groups": groups, + "offset": offset, "exposure": exposure}) + + fml = "Y ~ X1 + X2" + model = GEE.from_formula(fml, groups, data, family=Poisson(), + offset="offset", exposure="exposure") + result = model.fit() + assert_equal(result.converged, True) + + pred1 = result.predict() + pred2 = result.predict(offset=data["offset"]) + pred3 = result.predict(exposure=data["exposure"]) + pred4 = result.predict( + offset=data["offset"], exposure=data["exposure"]) + pred5 = result.predict(exog=data[-10:], + offset=data["offset"][-10:], + exposure=data["exposure"][-10:]) + # without patsy + pred6 = result.predict(exog=result.model.exog[-10:], + offset=data["offset"][-10:], + exposure=data["exposure"][-10:], + transform=False) + assert_allclose(pred1, pred2) + assert_allclose(pred1, pred3) + assert_allclose(pred1, pred4) + assert_allclose(pred1[-10:], pred5) + assert_allclose(pred1[-10:], pred6) + + def test_offset_formula(self): + # Test various ways of passing offset and exposure to `from_formula`. + + n = 50 + X1 = np.random.normal(size=n) + X2 = np.random.normal(size=n) + groups = np.kron(np.arange(25), np.r_[1, 1]) + offset = np.random.uniform(1, 2, size=n) + exposure = np.exp(offset) + Y = np.random.poisson(0.1 * (X1 + X2) + 2 * offset, size=n) + data = pd.DataFrame({"Y": Y, "X1": X1, "X2": X2, "groups": groups, + "offset": offset, "exposure": exposure}) + + fml = "Y ~ X1 + X2" + model1 = GEE.from_formula(fml, groups, data, family=Poisson(), + offset="offset") + result1 = model1.fit() + assert_equal(result1.converged, True) + + model2 = GEE.from_formula(fml, groups, data, family=Poisson(), + offset=offset) + result2 = model2.fit(start_params=result1.params) + assert_allclose(result1.params, result2.params) + assert_equal(result2.converged, True) + + model3 = GEE.from_formula(fml, groups, data, family=Poisson(), + exposure=exposure) + result3 = model3.fit(start_params=result1.params) + assert_allclose(result1.params, result3.params) + assert_equal(result3.converged, True) + + model4 = GEE.from_formula(fml, groups, data, family=Poisson(), + exposure="exposure") + result4 = model4.fit(start_params=result1.params) + assert_allclose(result1.params, result4.params) + assert_equal(result4.converged, True) + + model5 = GEE.from_formula(fml, groups, data, family=Poisson(), + exposure="exposure", offset="offset") + result5 = model5.fit() + assert_equal(result5.converged, True) + + model6 = GEE.from_formula(fml, groups, data, family=Poisson(), + offset=2 * offset) + result6 = model6.fit(start_params=result5.params) + assert_allclose(result5.params, result6.params) + assert_equal(result6.converged, True) + + def test_sensitivity(self): + + va = Exchangeable() + family = Gaussian() + + np.random.seed(34234) + n = 100 + Y = np.random.normal(size=n) + X1 = np.random.normal(size=n) + X2 = np.random.normal(size=n) + groups = np.kron(np.arange(50), np.r_[1, 1]) + + D = pd.DataFrame({"Y": Y, "X1": X1, "X2": X2}) + + mod = GEE.from_formula("Y ~ X1 + X2", groups, D, + family=family, cov_struct=va) + rslt = mod.fit() + ps = rslt.params_sensitivity(0, 0.5, 2) + assert_almost_equal(len(ps), 2) + assert_almost_equal([x.cov_struct.dep_params for x in ps], + [0.0, 0.5]) + + # Regression test + assert_almost_equal([x.params[0] for x in ps], + [0.1696214707458818, 0.17836097387799127]) + + def test_equivalence(self): + """ + The Equivalence covariance structure can represent an + exchangeable covariance structure. Here we check that the + results are identical using the two approaches. + """ + + np.random.seed(3424) + endog = np.random.normal(size=20) + exog = np.random.normal(size=(20, 2)) + exog[:, 0] = 1 + groups = np.kron(np.arange(5), np.ones(4)) + groups[12:] = 3 # Create unequal size groups + + # Set up an Equivalence covariance structure to mimic an + # Exchangeable covariance structure. + pairs = {} + start = [0, 4, 8, 12] + for k in range(4): + pairs[k] = {} + + # Diagonal values (variance parameters) + if k < 3: + pairs[k][0] = (start[k] + np.r_[0, 1, 2, 3], + start[k] + np.r_[0, 1, 2, 3]) + else: + pairs[k][0] = (start[k] + np.r_[0, 1, 2, 3, 4, 5, 6, 7], + start[k] + np.r_[0, 1, 2, 3, 4, 5, 6, 7]) + + # Off-diagonal pairs (covariance parameters) + if k < 3: + a, b = np.tril_indices(4, -1) + pairs[k][1] = (start[k] + a, start[k] + b) + else: + a, b = np.tril_indices(8, -1) + pairs[k][1] = (start[k] + a, start[k] + b) + + ex = sm.cov_struct.Exchangeable() + model1 = sm.GEE(endog, exog, groups, cov_struct=ex) + result1 = model1.fit() + + for return_cov in False, True: + + ec = sm.cov_struct.Equivalence(pairs, return_cov=return_cov) + model2 = sm.GEE(endog, exog, groups, cov_struct=ec) + result2 = model2.fit() + + # Use large atol/rtol for the correlation case since there + # are some small differences in the results due to degree + # of freedom differences. + if return_cov is True: + atol, rtol = 1e-6, 1e-6 + else: + atol, rtol = 1e-3, 1e-3 + assert_allclose(result1.params, result2.params, + atol=atol, rtol=rtol) + assert_allclose(result1.bse, result2.bse, atol=atol, rtol=rtol) + assert_allclose(result1.scale, result2.scale, atol=atol, rtol=rtol) + + def test_equivalence_from_pairs(self): + + np.random.seed(3424) + endog = np.random.normal(size=50) + exog = np.random.normal(size=(50, 2)) + exog[:, 0] = 1 + groups = np.kron(np.arange(5), np.ones(10)) + groups[30:] = 3 # Create unequal size groups + + # Set up labels. + labels = np.kron(np.arange(5), np.ones(10)).astype(np.int32) + labels = labels[np.random.permutation(len(labels))] + + eq = sm.cov_struct.Equivalence(labels=labels, return_cov=True) + model1 = sm.GEE(endog, exog, groups, cov_struct=eq) + + # Call this directly instead of letting init do it to get the + # result before reindexing. + eq._pairs_from_labels() + + # Make sure the size is correct to hold every element. + for g in model1.group_labels: + p = eq.pairs[g] + vl = [len(x[0]) for x in p.values()] + m = sum(groups == g) + assert_allclose(sum(vl), m * (m + 1) / 2) + + # Check for duplicates. + ixs = set([]) + for g in model1.group_labels: + for v in eq.pairs[g].values(): + for a, b in zip(v[0], v[1]): + ky = (a, b) + assert(ky not in ixs) + ixs.add(ky) + + # Smoke test + eq = sm.cov_struct.Equivalence(labels=labels, return_cov=True) + model1 = sm.GEE(endog, exog, groups, cov_struct=eq) + with warnings.catch_warnings(): + warnings.simplefilter('ignore') + model1.fit(maxiter=2) + + +class CheckConsistency(object): + + start_params = None + + def test_cov_type(self): + mod = self.mod + res_robust = mod.fit(start_params=self.start_params) + res_naive = mod.fit(start_params=self.start_params, + cov_type='naive') + res_robust_bc = mod.fit(start_params=self.start_params, + cov_type='bias_reduced') + + # call summary to make sure it doesn't change cov_type + res_naive.summary() + res_robust_bc.summary() + + # check cov_type + assert_equal(res_robust.cov_type, 'robust') + assert_equal(res_naive.cov_type, 'naive') + assert_equal(res_robust_bc.cov_type, 'bias_reduced') + + # check bse and cov_params + # we are comparing different runs of the optimization + # bse in ordinal and multinomial have an atol around 5e-10 for two + # consecutive calls to fit. + rtol = 1e-8 + for (res, cov_type, cov) in [ + (res_robust, 'robust', res_robust.cov_robust), + (res_naive, 'naive', res_robust.cov_naive), + (res_robust_bc, 'bias_reduced', res_robust_bc.cov_robust_bc) + ]: + bse = np.sqrt(np.diag(cov)) + assert_allclose(res.bse, bse, rtol=rtol) + if cov_type != 'bias_reduced': + # cov_type=naive shortcuts calculation of bias reduced + # covariance for efficiency + bse = res_naive.standard_errors(cov_type=cov_type) + assert_allclose(res.bse, bse, rtol=rtol) + assert_allclose(res.cov_params(), cov, rtol=rtol, atol=1e-10) + assert_allclose(res.cov_params_default, cov, rtol=rtol, atol=1e-10) + + # assert that we don't have a copy + assert_(res_robust.cov_params_default is res_robust.cov_robust) + assert_(res_naive.cov_params_default is res_naive.cov_naive) + assert_(res_robust_bc.cov_params_default is + res_robust_bc.cov_robust_bc) + + # check exception for misspelled cov_type + assert_raises(ValueError, mod.fit, cov_type='robust_bc') + + +class TestGEEPoissonCovType(CheckConsistency): + + @classmethod + def setup_class(cls): + + endog, exog, group_n = load_data("gee_poisson_1.csv") + + family = Poisson() + vi = Independence() + + cls.mod = GEE(endog, exog, group_n, None, family, vi) + + cls.start_params = np.array([-0.03644504, -0.05432094, 0.01566427, + 0.57628591, -0.0046566, -0.47709315]) + + def test_wrapper(self): + + endog, exog, group_n = load_data("gee_poisson_1.csv", + icept=False) + endog = pd.Series(endog) + exog = pd.DataFrame(exog) + group_n = pd.Series(group_n) + + family = Poisson() + vi = Independence() + + mod = GEE(endog, exog, group_n, None, family, vi) + rslt2 = mod.fit() + + check_wrapper(rslt2) + + +class TestGEEPoissonFormulaCovType(CheckConsistency): + + @classmethod + def setup_class(cls): + + endog, exog, group_n = load_data("gee_poisson_1.csv") + + family = Poisson() + vi = Independence() + # Test with formulas + D = np.concatenate((endog[:, None], group_n[:, None], + exog[:, 1:]), axis=1) + D = pd.DataFrame(D) + D.columns = ["Y", "Id", ] + ["X%d" % (k + 1) + for k in range(exog.shape[1] - 1)] + + cls.mod = GEE.from_formula("Y ~ X1 + X2 + X3 + X4 + X5", "Id", + D, family=family, cov_struct=vi) + + cls.start_params = np.array([-0.03644504, -0.05432094, 0.01566427, + 0.57628591, -0.0046566, -0.47709315]) + + +class TestGEEOrdinalCovType(CheckConsistency): + + @classmethod + def setup_class(cls): + + family = Binomial() + + endog, exog, groups = load_data("gee_ordinal_1.csv", + icept=False) + + va = GlobalOddsRatio("ordinal") + + cls.mod = OrdinalGEE(endog, exog, groups, None, family, va) + cls.start_params = np.array([1.09250002, 0.0217443, -0.39851092, + -0.01812116, 0.03023969, 1.18258516, + 0.01803453, -1.10203381]) + + def test_wrapper(self): + + endog, exog, groups = load_data("gee_ordinal_1.csv", + icept=False) + + endog = pd.Series(endog, name='yendog') + exog = pd.DataFrame(exog) + groups = pd.Series(groups, name='the_group') + + family = Binomial() + va = GlobalOddsRatio("ordinal") + mod = OrdinalGEE(endog, exog, groups, None, family, va) + rslt2 = mod.fit() + + check_wrapper(rslt2) + + +class TestGEEMultinomialCovType(CheckConsistency): + + @classmethod + def setup_class(cls): + + endog, exog, groups = load_data("gee_nominal_1.csv", + icept=False) + + # Test with independence correlation + va = Independence() + cls.mod = NominalGEE(endog, exog, groups, cov_struct=va) + cls.start_params = np.array([0.44944752, 0.45569985, -0.92007064, + -0.46766728]) + + def test_wrapper(self): + + endog, exog, groups = load_data("gee_nominal_1.csv", + icept=False) + endog = pd.Series(endog, name='yendog') + exog = pd.DataFrame(exog) + groups = pd.Series(groups, name='the_group') + + va = Independence() + mod = NominalGEE(endog, exog, groups, cov_struct=va) + rslt2 = mod.fit() + + check_wrapper(rslt2) + + +@dec.skipif(not have_matplotlib) +def test_plots(): + + np.random.seed(378) + exog = np.random.normal(size=100) + endog = np.random.normal(size=(100, 2)) + groups = np.kron(np.arange(50), np.r_[1, 1]) + + model = sm.GEE(exog, endog, groups) + result = model.fit() + + # Smoke tests + fig = result.plot_added_variable(1) + assert_equal(isinstance(fig, plt.Figure), True) + plt.close(fig) + fig = result.plot_partial_residuals(1) + assert_equal(isinstance(fig, plt.Figure), True) + plt.close(fig) + fig = result.plot_ceres_residuals(1) + assert_equal(isinstance(fig, plt.Figure), True) + plt.close(fig) + fig = result.plot_isotropic_dependence() + assert_equal(isinstance(fig, plt.Figure), True) + plt.close(fig) + + + +def test_missing(): + # gh-1877 + data = [['id', 'al', 'status', 'fake', 'grps'], + ['4A', 'A', 1, 1, 0], + ['5A', 'A', 1, 2.0, 1], + ['6A', 'A', 1, 3, 2], + ['7A', 'A', 1, 2.0, 3], + ['8A', 'A', 1, 1, 4], + ['9A', 'A', 1, 2.0, 5], + ['11A', 'A', 1, 1, 6], + ['12A', 'A', 1, 2.0, 7], + ['13A', 'A', 1, 1, 8], + ['14A', 'A', 1, 1, 9], + ['15A', 'A', 1, 1, 10], + ['16A', 'A', 1, 2.0, 11], + ['17A', 'A', 1, 3.0, 12], + ['18A', 'A', 1, 3.0, 13], + ['19A', 'A', 1, 2.0, 14], + ['20A', 'A', 1, 2.0, 15], + ['2C', 'C', 0, 3.0, 0], + ['3C', 'C', 0, 1, 1], + ['4C', 'C', 0, 1, 2], + ['5C', 'C', 0, 2.0, 3], + ['6C', 'C', 0, 1, 4], + ['9C', 'C', 0, 1, 5], + ['10C', 'C', 0, 3, 6], + ['12C', 'C', 0, 3, 7], + ['14C', 'C', 0, 2.5, 8], + ['15C', 'C', 0, 1, 9], + ['17C', 'C', 0, 1, 10], + ['22C', 'C', 0, 1, 11], + ['23C', 'C', 0, 1, 12], + ['24C', 'C', 0, 1, 13], + ['32C', 'C', 0, 2.0, 14], + ['35C', 'C', 0, 1, 15]] + + df = pd.DataFrame(data[1:], columns=data[0]) + df.ix[df.fake == 1, 'fake'] = np.nan + mod = smf.gee('status ~ fake', data=df, groups='grps', + cov_struct=sm.cov_struct.Independence(), + family=sm.families.Binomial()) + + df = df.dropna().copy() + df['constant'] = 1 + + mod2 = GEE(df.status, df[['constant', 'fake']], groups=df.grps, + cov_struct=sm.cov_struct.Independence(), + family=sm.families.Binomial()) + + assert_equal(mod.endog, mod2.endog) + assert_equal(mod.exog, mod2.exog) + assert_equal(mod.groups, mod2.groups) + + res = mod.fit() + res2 = mod2.fit() + + assert_almost_equal(res.params.values, res2.params.values) + + +if __name__ == "__main__": + + import nose + + nose.runmodule(argv=[__file__, '-vvs', '-x', '--pdb', '--pdb-failure'], + exit=False) diff --git a/statsmodels/genmod/tests/test_glm.py b/statsmodels/genmod/tests/test_glm.py new file mode 100644 index 0000000..b23126c --- /dev/null +++ b/statsmodels/genmod/tests/test_glm.py @@ -0,0 +1,1818 @@ +""" +Test functions for models.GLM +""" +from __future__ import division +from statsmodels.compat import range + +import os +import numpy as np +from numpy.testing import (assert_almost_equal, assert_equal, assert_raises, + assert_allclose, assert_, assert_array_less, dec) +from scipy import stats +import statsmodels.api as sm +from statsmodels.genmod.generalized_linear_model import GLM +from statsmodels.tools.tools import add_constant +from statsmodels.tools.sm_exceptions import PerfectSeparationError +from statsmodels.discrete import discrete_model as discrete +from nose import SkipTest +import warnings + +# Test Precisions +DECIMAL_4 = 4 +DECIMAL_3 = 3 +DECIMAL_2 = 2 +DECIMAL_1 = 1 +DECIMAL_0 = 0 + +try: + import matplotlib.pyplot as plt #makes plt available for test functions + have_matplotlib = True +except: + have_matplotlib = False + +pdf_output = False + +if pdf_output: + from matplotlib.backends.backend_pdf import PdfPages + pdf = PdfPages("test_glm.pdf") +else: + pdf = None + +def close_or_save(pdf, fig): + if pdf_output: + pdf.savefig(fig) + plt.close(fig) + +def teardown_module(): + if have_matplotlib: + plt.close('all') + if pdf_output: + pdf.close() + +class CheckModelResultsMixin(object): + ''' + res2 should be either the results from RModelWrap + or the results as defined in model_results_data + ''' + + decimal_params = DECIMAL_4 + def test_params(self): + assert_almost_equal(self.res1.params, self.res2.params, + self.decimal_params) + + decimal_bse = DECIMAL_4 + def test_standard_errors(self): + assert_almost_equal(self.res1.bse, self.res2.bse, self.decimal_bse) + + decimal_resids = DECIMAL_4 + def test_residuals(self): + # fix incorrect numbers in resid_working results + # residuals for Poisson are also tested in test_glm_weights.py + import copy + # new numpy would have copy method + resid2 = copy.copy(self.res2.resids) + resid2[:, 2] *= self.res1.family.link.deriv(self.res1.mu)**2 + + atol = 10**(-self.decimal_resids) + resids = np.column_stack((self.res1.resid_pearson, + self.res1.resid_deviance, self.res1.resid_working, + self.res1.resid_anscombe, self.res1.resid_response)) + assert_allclose(resids, resid2, rtol=1e-6, atol=atol) + + + decimal_aic_R = DECIMAL_4 + def test_aic_R(self): + # R includes the estimation of the scale as a lost dof + # Doesn't with Gamma though + if self.res1.scale != 1: + dof = 2 + else: + dof = 0 + assert_almost_equal(self.res1.aic+dof, self.res2.aic_R, + self.decimal_aic_R) + + decimal_aic_Stata = DECIMAL_4 + def test_aic_Stata(self): + # Stata uses the below llf for aic definition for these families + if isinstance(self.res1.model.family, (sm.families.Gamma, + sm.families.InverseGaussian)): + llf = self.res1.model.family.loglike(self.res1.model.endog, + self.res1.mu, self.res1.model.freq_weights, scale=1) + aic = (-2*llf+2*(self.res1.df_model+1))/self.res1.nobs + else: + aic = self.res1.aic/self.res1.nobs + assert_almost_equal(aic, self.res2.aic_Stata, self.decimal_aic_Stata) + + decimal_deviance = DECIMAL_4 + def test_deviance(self): + assert_almost_equal(self.res1.deviance, self.res2.deviance, + self.decimal_deviance) + + decimal_scale = DECIMAL_4 + def test_scale(self): + assert_almost_equal(self.res1.scale, self.res2.scale, + self.decimal_scale) + + decimal_loglike = DECIMAL_4 + def test_loglike(self): + # Stata uses the below llf for these families + # We differ with R for them + if isinstance(self.res1.model.family, (sm.families.Gamma, + sm.families.InverseGaussian)): + llf = self.res1.model.family.loglike(self.res1.model.endog, + self.res1.mu, self.res1.model.freq_weights, scale=1) + else: + llf = self.res1.llf + assert_almost_equal(llf, self.res2.llf, self.decimal_loglike) + + decimal_null_deviance = DECIMAL_4 + def test_null_deviance(self): + assert_almost_equal(self.res1.null_deviance, self.res2.null_deviance, + self.decimal_null_deviance) + + decimal_bic = DECIMAL_4 + def test_bic(self): + assert_almost_equal(self.res1.bic, self.res2.bic_Stata, + self.decimal_bic) + + def test_degrees(self): + assert_equal(self.res1.model.df_resid,self.res2.df_resid) + + decimal_fittedvalues = DECIMAL_4 + def test_fittedvalues(self): + assert_almost_equal(self.res1.fittedvalues, self.res2.fittedvalues, + self.decimal_fittedvalues) + + def test_tpvalues(self): + # test comparing tvalues and pvalues with normal implementation + # make sure they use normal distribution (inherited in results class) + params = self.res1.params + tvalues = params / self.res1.bse + pvalues = stats.norm.sf(np.abs(tvalues)) * 2 + half_width = stats.norm.isf(0.025) * self.res1.bse + conf_int = np.column_stack((params - half_width, params + half_width)) + + assert_almost_equal(self.res1.tvalues, tvalues) + assert_almost_equal(self.res1.pvalues, pvalues) + assert_almost_equal(self.res1.conf_int(), conf_int) + + def test_summary(self): + #SMOKE test + self.res1.summary() + self.res1.summary2() + + +class CheckComparisonMixin(object): + + def test_compare_discrete(self): + res1 = self.res1 + resd = self.resd + + assert_allclose(res1.llf, resd.llf, rtol=1e-10) + score_obs1 = res1.model.score_obs(res1.params) + score_obsd = resd.model.score_obs(resd.params) + assert_allclose(score_obs1, score_obsd, rtol=1e-10) + + # score + score1 = res1.model.score(res1.params) + assert_allclose(score1, score_obs1.sum(0), atol=1e-20) + assert_allclose(score1, np.zeros(score_obs1.shape[1]), atol=1e-7) + + hessian1 = res1.model.hessian(res1.params, observed=False) + hessiand = resd.model.hessian(resd.params) + assert_allclose(hessian1, hessiand, rtol=1e-10) + + hessian1 = res1.model.hessian(res1.params, observed=True) + hessiand = resd.model.hessian(resd.params) + assert_allclose(hessian1, hessiand, rtol=1e-9) + + def test_score_test(self): + res1 = self.res1 + # fake example, should be zero, k_constraint should be 0 + st, pv, df = res1.model.score_test(res1.params, k_constraints=1) + assert_allclose(st, 0, atol=1e-20) + assert_allclose(pv, 1, atol=1e-10) + assert_equal(df, 1) + + st, pv, df = res1.model.score_test(res1.params, k_constraints=0) + assert_allclose(st, 0, atol=1e-20) + assert_(np.isnan(pv), msg=repr(pv)) + assert_equal(df, 0) + + # TODO: no verified numbers largely SMOKE test + exog_extra = res1.model.exog[:,1]**2 + st, pv, df = res1.model.score_test(res1.params, exog_extra=exog_extra) + assert_array_less(0.1, st) + assert_array_less(0.1, pv) + assert_equal(df, 1) + + +class TestGlmGaussian(CheckModelResultsMixin): + def __init__(self): + ''' + Test Gaussian family with canonical identity link + ''' + # Test Precisions + self.decimal_resids = DECIMAL_3 + self.decimal_params = DECIMAL_2 + self.decimal_bic = DECIMAL_0 + self.decimal_bse = DECIMAL_3 + + from statsmodels.datasets.longley import load + self.data = load() + self.data.exog = add_constant(self.data.exog, prepend=False) + self.res1 = GLM(self.data.endog, self.data.exog, + family=sm.families.Gaussian()).fit() + from .results.results_glm import Longley + self.res2 = Longley() + + + def test_compare_OLS(self): + res1 = self.res1 + # OLS doesn't define score_obs + from statsmodels.regression.linear_model import OLS + resd = OLS(self.data.endog, self.data.exog).fit() + self.resd = resd # attach to access from the outside + + assert_allclose(res1.llf, resd.llf, rtol=1e-10) + score_obs1 = res1.model.score_obs(res1.params, scale=None) + score_obsd = resd.resid[:, None] / resd.scale * resd.model.exog + # low precision because of badly scaled exog + assert_allclose(score_obs1, score_obsd, rtol=1e-8) + + score_obs1 = res1.model.score_obs(res1.params, scale=1) + score_obsd = resd.resid[:, None] * resd.model.exog + assert_allclose(score_obs1, score_obsd, rtol=1e-8) + + hess_obs1 = res1.model.hessian(res1.params, scale=None) + hess_obsd = -1. / resd.scale * resd.model.exog.T.dot(resd.model.exog) + # low precision because of badly scaled exog + assert_allclose(hess_obs1, hess_obsd, rtol=1e-8) + +# def setup(self): +# if skipR: +# raise SkipTest, "Rpy not installed." +# Gauss = r.gaussian +# self.res2 = RModel(self.data.endog, self.data.exog, r.glm, family=Gauss) +# self.res2.resids = np.array(self.res2.resid)[:,None]*np.ones((1,5)) +# self.res2.null_deviance = 185008826 # taken from R. Rpy bug? + +class TestGaussianLog(CheckModelResultsMixin): + def __init__(self): + # Test Precision + self.decimal_aic_R = DECIMAL_0 + self.decimal_aic_Stata = DECIMAL_2 + self.decimal_loglike = DECIMAL_0 + self.decimal_null_deviance = DECIMAL_1 + + nobs = 100 + x = np.arange(nobs) + np.random.seed(54321) +# y = 1.0 - .02*x - .001*x**2 + 0.001 * np.random.randn(nobs) + self.X = np.c_[np.ones((nobs,1)),x,x**2] + self.lny = np.exp(-(-1.0 + 0.02*x + 0.0001*x**2)) +\ + 0.001 * np.random.randn(nobs) + + GaussLog_Model = GLM(self.lny, self.X, \ + family=sm.families.Gaussian(sm.families.links.log)) + self.res1 = GaussLog_Model.fit() + from .results.results_glm import GaussianLog + self.res2 = GaussianLog() + +# def setup(self): +# if skipR: +# raise SkipTest, "Rpy not installed" +# GaussLogLink = r.gaussian(link = "log") +# GaussLog_Res_R = RModel(self.lny, self.X, r.glm, family=GaussLogLink) +# self.res2 = GaussLog_Res_R + +class TestGaussianInverse(CheckModelResultsMixin): + def __init__(self): + # Test Precisions + self.decimal_bic = DECIMAL_1 + self.decimal_aic_R = DECIMAL_1 + self.decimal_aic_Stata = DECIMAL_3 + self.decimal_loglike = DECIMAL_1 + self.decimal_resids = DECIMAL_3 + + nobs = 100 + x = np.arange(nobs) + np.random.seed(54321) + y = 1.0 + 2.0 * x + x**2 + 0.1 * np.random.randn(nobs) + self.X = np.c_[np.ones((nobs,1)),x,x**2] + self.y_inv = (1. + .02*x + .001*x**2)**-1 + .001 * np.random.randn(nobs) + InverseLink_Model = GLM(self.y_inv, self.X, + family=sm.families.Gaussian(sm.families.links.inverse_power)) + InverseLink_Res = InverseLink_Model.fit() + self.res1 = InverseLink_Res + from .results.results_glm import GaussianInverse + self.res2 = GaussianInverse() + +# def setup(self): +# if skipR: +# raise SkipTest, "Rpy not installed." +# InverseLink = r.gaussian(link = "inverse") +# InverseLink_Res_R = RModel(self.y_inv, self.X, r.glm, family=InverseLink) +# self.res2 = InverseLink_Res_R + +class TestGlmBinomial(CheckModelResultsMixin): + def __init__(self): + ''' + Test Binomial family with canonical logit link using star98 dataset. + ''' + self.decimal_resids = DECIMAL_1 + self.decimal_bic = DECIMAL_2 + + from statsmodels.datasets.star98 import load + from .results.results_glm import Star98 + data = load() + data.exog = add_constant(data.exog, prepend=False) + self.res1 = GLM(data.endog, data.exog, \ + family=sm.families.Binomial()).fit() + #NOTE: if you want to replicate with RModel + #res2 = RModel(data.endog[:,0]/trials, data.exog, r.glm, + # family=r.binomial, weights=trials) + + self.res2 = Star98() + +#TODO: +#Non-Canonical Links for the Binomial family require the algorithm to be +#slightly changed +#class TestGlmBinomialLog(CheckModelResultsMixin): +# pass + +#class TestGlmBinomialLogit(CheckModelResultsMixin): +# pass + +#class TestGlmBinomialProbit(CheckModelResultsMixin): +# pass + +#class TestGlmBinomialCloglog(CheckModelResultsMixin): +# pass + +#class TestGlmBinomialPower(CheckModelResultsMixin): +# pass + +#class TestGlmBinomialLoglog(CheckModelResultsMixin): +# pass + +#class TestGlmBinomialLogc(CheckModelResultsMixin): +#TODO: need include logc link +# pass + +class TestGlmBernoulli(CheckModelResultsMixin, CheckComparisonMixin): + def __init__(self): + from .results.results_glm import Lbw + self.res2 = Lbw() + self.res1 = GLM(self.res2.endog, self.res2.exog, + family=sm.families.Binomial()).fit() + + modd = discrete.Logit(self.res2.endog, self.res2.exog) + self.resd = modd.fit(start_params=self.res1.params * 0.9, disp=False) + + + def score_test_r(self): + res1 = self.res1 + res2 = self.res2 + st, pv, df = res1.model.score_test(res1.params, + exog_extra=res1.model.exog[:, 1]**2) + st_res = 0.2837680293459376 # (-0.5326988167303712)**2 + assert_allclose(st, st_res, rtol=1e-4) + + st, pv, df = res1.model.score_test(res1.params, + exog_extra=res1.model.exog[:, 0]**2) + st_res = 0.6713492821514992 # (-0.8193590679009413)**2 + assert_allclose(st, st_res, rtol=1e-4) + + select = list(range(9)) + select.pop(7) + + res1b = GLM(res2.endog, res2.exog[:, select], + family=sm.families.Binomial()).fit() + tres = res1b.model.score_test(res1b.params, + exog_extra=res1.model.exog[:, -2]) + tres = np.asarray(tres[:2]).ravel() + tres_r = (2.7864148487452, 0.0950667) + assert_allclose(tres, tres_r, rtol=1e-4) + + cmd_r = """\ + data = read.csv("...statsmodels\\statsmodels\\genmod\\tests\\results\\stata_lbw_glm.csv") + + data["race_black"] = data["race"] == "black" + data["race_other"] = data["race"] == "other" + mod = glm(low ~ age + lwt + race_black + race_other + smoke + ptl + ht + ui, family=binomial, data=data) + options(digits=16) + anova(mod, test="Rao") + + library(statmod) + s = glm.scoretest(mod, data["age"]**2) + s**2 + s = glm.scoretest(mod, data["lwt"]**2) + s**2 + """ + +#class TestGlmBernoulliIdentity(CheckModelResultsMixin): +# pass + +#class TestGlmBernoulliLog(CheckModelResultsMixin): +# pass + +#class TestGlmBernoulliProbit(CheckModelResultsMixin): +# pass + +#class TestGlmBernoulliCloglog(CheckModelResultsMixin): +# pass + +#class TestGlmBernoulliPower(CheckModelResultsMixin): +# pass + +#class TestGlmBernoulliLoglog(CheckModelResultsMixin): +# pass + +#class test_glm_bernoulli_logc(CheckModelResultsMixin): +# pass + +class TestGlmGamma(CheckModelResultsMixin): + + def __init__(self): + ''' + Tests Gamma family with canonical inverse link (power -1) + ''' + # Test Precisions + self.decimal_aic_R = -1 #TODO: off by about 1, we are right with Stata + self.decimal_resids = DECIMAL_2 + + from statsmodels.datasets.scotland import load + from .results.results_glm import Scotvote + data = load() + data.exog = add_constant(data.exog, prepend=False) + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + res1 = GLM(data.endog, data.exog, + family=sm.families.Gamma()).fit() + self.res1 = res1 +# res2 = RModel(data.endog, data.exog, r.glm, family=r.Gamma) + res2 = Scotvote() + res2.aic_R += 2 # R doesn't count degree of freedom for scale with gamma + self.res2 = res2 + +class TestGlmGammaLog(CheckModelResultsMixin): + def __init__(self): + # Test Precisions + self.decimal_resids = DECIMAL_3 + self.decimal_aic_R = DECIMAL_0 + self.decimal_fittedvalues = DECIMAL_3 + + from .results.results_glm import CancerLog + res2 = CancerLog() + self.res1 = GLM(res2.endog, res2.exog, + family=sm.families.Gamma(link=sm.families.links.log)).fit() + self.res2 = res2 + +# def setup(self): +# if skipR: +# raise SkipTest, "Rpy not installed." +# self.res2 = RModel(self.data.endog, self.data.exog, r.glm, +# family=r.Gamma(link="log")) +# self.res2.null_deviance = 27.92207137420696 # From R (bug in rpy) +# self.res2.bic = -154.1582089453923 # from Stata + +class TestGlmGammaIdentity(CheckModelResultsMixin): + def __init__(self): + # Test Precisions + self.decimal_resids = -100 #TODO Very off from Stata? + self.decimal_params = DECIMAL_2 + self.decimal_aic_R = DECIMAL_0 + self.decimal_loglike = DECIMAL_1 + + from .results.results_glm import CancerIdentity + res2 = CancerIdentity() + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + self.res1 = GLM(res2.endog, res2.exog, + family=sm.families.Gamma(link=sm.families.links.identity)).fit() + self.res2 = res2 + +# def setup(self): +# if skipR: +# raise SkipTest, "Rpy not installed." +# self.res2 = RModel(self.data.endog, self.data.exog, r.glm, +# family=r.Gamma(link="identity")) +# self.res2.null_deviance = 27.92207137420696 # from R, Rpy bug + +class TestGlmPoisson(CheckModelResultsMixin, CheckComparisonMixin): + def __init__(self): + ''' + Tests Poisson family with canonical log link. + + Test results were obtained by R. + ''' + from .results.results_glm import Cpunish + from statsmodels.datasets.cpunish import load + self.data = load() + self.data.exog[:,3] = np.log(self.data.exog[:,3]) + self.data.exog = add_constant(self.data.exog, prepend=False) + self.res1 = GLM(self.data.endog, self.data.exog, + family=sm.families.Poisson()).fit() + self.res2 = Cpunish() + # compare with discrete, start close to save time + modd = discrete.Poisson(self.data.endog, self.data.exog) + self.resd = modd.fit(start_params=self.res1.params * 0.9, disp=False) + +#class TestGlmPoissonIdentity(CheckModelResultsMixin): +# pass + +#class TestGlmPoissonPower(CheckModelResultsMixin): +# pass + +class TestGlmInvgauss(CheckModelResultsMixin): + def __init__(self): + ''' + Tests the Inverse Gaussian family in GLM. + + Notes + ----- + Used the rndivgx.ado file provided by Hardin and Hilbe to + generate the data. Results are read from model_results, which + were obtained by running R_ig.s + ''' + # Test Precisions + self.decimal_aic_R = DECIMAL_0 + self.decimal_loglike = DECIMAL_0 + + from .results.results_glm import InvGauss + res2 = InvGauss() + res1 = GLM(res2.endog, res2.exog, \ + family=sm.families.InverseGaussian()).fit() + self.res1 = res1 + self.res2 = res2 + +class TestGlmInvgaussLog(CheckModelResultsMixin): + def __init__(self): + # Test Precisions + self.decimal_aic_R = -10 # Big difference vs R. + self.decimal_resids = DECIMAL_3 + + from .results.results_glm import InvGaussLog + res2 = InvGaussLog() + self.res1 = GLM(res2.endog, res2.exog, + family=sm.families.InverseGaussian(link=\ + sm.families.links.log)).fit() + self.res2 = res2 + +# def setup(self): +# if skipR: +# raise SkipTest, "Rpy not installed." +# self.res2 = RModel(self.data.endog, self.data.exog, r.glm, +# family=r.inverse_gaussian(link="log")) +# self.res2.null_deviance = 335.1539777981053 # from R, Rpy bug +# self.res2.llf = -12162.72308 # from Stata, R's has big rounding diff + +class TestGlmInvgaussIdentity(CheckModelResultsMixin): + def __init__(self): + # Test Precisions + self.decimal_aic_R = -10 #TODO: Big difference vs R + self.decimal_fittedvalues = DECIMAL_3 + self.decimal_params = DECIMAL_3 + + from .results.results_glm import Medpar1 + data = Medpar1() + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + self.res1 = GLM(data.endog, data.exog, + family=sm.families.InverseGaussian( + link=sm.families.links.identity)).fit() + from .results.results_glm import InvGaussIdentity + self.res2 = InvGaussIdentity() + +# def setup(self): +# if skipR: +# raise SkipTest, "Rpy not installed." +# self.res2 = RModel(self.data.endog, self.data.exog, r.glm, +# family=r.inverse_gaussian(link="identity")) +# self.res2.null_deviance = 335.1539777981053 # from R, Rpy bug +# self.res2.llf = -12163.25545 # from Stata, big diff with R + +class TestGlmNegbinomial(CheckModelResultsMixin): + def __init__(self): + ''' + Test Negative Binomial family with canonical log link + ''' + # Test Precision + self.decimal_resid = DECIMAL_1 + self.decimal_params = DECIMAL_3 + self.decimal_resids = -1 # 1 % mismatch at 0 + self.decimal_fittedvalues = DECIMAL_1 + + from statsmodels.datasets.committee import load + self.data = load() + self.data.exog[:,2] = np.log(self.data.exog[:,2]) + interaction = self.data.exog[:,2]*self.data.exog[:,1] + self.data.exog = np.column_stack((self.data.exog,interaction)) + self.data.exog = add_constant(self.data.exog, prepend=False) + self.res1 = GLM(self.data.endog, self.data.exog, + family=sm.families.NegativeBinomial()).fit() + from .results.results_glm import Committee + res2 = Committee() + res2.aic_R += 2 # They don't count a degree of freedom for the scale + self.res2 = res2 + +# def setup(self): +# if skipR: +# raise SkipTest, "Rpy not installed" +# r.library('MASS') # this doesn't work when done in rmodelwrap? +# self.res2 = RModel(self.data.endog, self.data.exog, r.glm, +# family=r.negative_binomial(1)) +# self.res2.null_deviance = 27.8110469364343 + +#class TestGlmNegbinomial_log(CheckModelResultsMixin): +# pass + +#class TestGlmNegbinomial_power(CheckModelResultsMixin): +# pass + +#class TestGlmNegbinomial_nbinom(CheckModelResultsMixin): +# pass + + +class TestGlmPoissonOffset(CheckModelResultsMixin): + @classmethod + def setupClass(cls): + from .results.results_glm import Cpunish_offset + from statsmodels.datasets.cpunish import load + cls.decimal_params = DECIMAL_4 + cls.decimal_bse = DECIMAL_4 + cls.decimal_aic_R = 3 + data = load() + data.exog[:,3] = np.log(data.exog[:,3]) + data.exog = add_constant(data.exog, prepend=True) + exposure = [100] * len(data.endog) + cls.data = data + cls.exposure = exposure + cls.res1 = GLM(data.endog, data.exog, family=sm.families.Poisson(), + exposure=exposure).fit() + cls.res2 = Cpunish_offset() + + def test_missing(self): + # make sure offset is dropped correctly + endog = self.data.endog.copy() + endog[[2,4,6,8]] = np.nan + mod = GLM(endog, self.data.exog, family=sm.families.Poisson(), + exposure=self.exposure, missing='drop') + assert_equal(mod.exposure.shape[0], 13) + + def test_offset_exposure(self): + # exposure=x and offset=log(x) should have the same effect + np.random.seed(382304) + endog = np.random.randint(0, 10, 100) + exog = np.random.normal(size=(100,3)) + exposure = np.random.uniform(1, 2, 100) + offset = np.random.uniform(1, 2, 100) + mod1 = GLM(endog, exog, family=sm.families.Poisson(), + offset=offset, exposure=exposure).fit() + offset2 = offset + np.log(exposure) + mod2 = GLM(endog, exog, family=sm.families.Poisson(), + offset=offset2).fit() + assert_almost_equal(mod1.params, mod2.params) + + # test recreating model + mod1_ = mod1.model + kwds = mod1_._get_init_kwds() + assert_allclose(kwds['exposure'], exposure, rtol=1e-14) + assert_allclose(kwds['offset'], mod1_.offset, rtol=1e-14) + mod3 = mod1_.__class__(mod1_.endog, mod1_.exog, **kwds) + assert_allclose(mod3.exposure, mod1_.exposure, rtol=1e-14) + assert_allclose(mod3.offset, mod1_.offset, rtol=1e-14) + + + def test_predict(self): + np.random.seed(382304) + endog = np.random.randint(0, 10, 100) + exog = np.random.normal(size=(100,3)) + exposure = np.random.uniform(1, 2, 100) + mod1 = GLM(endog, exog, family=sm.families.Poisson(), + exposure=exposure).fit() + exog1 = np.random.normal(size=(10,3)) + exposure1 = np.random.uniform(1, 2, 10) + + # Doubling exposure time should double expected response + pred1 = mod1.predict(exog=exog1, exposure=exposure1) + pred2 = mod1.predict(exog=exog1, exposure=2*exposure1) + assert_almost_equal(pred2, 2*pred1) + + # Check exposure defaults + pred3 = mod1.predict() + pred4 = mod1.predict(exposure=exposure) + pred5 = mod1.predict(exog=exog, exposure=exposure) + assert_almost_equal(pred3, pred4) + assert_almost_equal(pred4, pred5) + + # Check offset defaults + offset = np.random.uniform(1, 2, 100) + mod2 = GLM(endog, exog, offset=offset, family=sm.families.Poisson()).fit() + pred1 = mod2.predict() + pred2 = mod2.predict(offset=offset) + pred3 = mod2.predict(exog=exog, offset=offset) + assert_almost_equal(pred1, pred2) + assert_almost_equal(pred2, pred3) + + # Check that offset shifts the linear predictor + mod3 = GLM(endog, exog, family=sm.families.Poisson()).fit() + offset = np.random.uniform(1, 2, 10) + pred1 = mod3.predict(exog=exog1, offset=offset, linear=True) + pred2 = mod3.predict(exog=exog1, offset=2*offset, linear=True) + assert_almost_equal(pred2, pred1+offset) + + +def test_perfect_pred(): + cur_dir = os.path.dirname(os.path.abspath(__file__)) + iris = np.genfromtxt(os.path.join(cur_dir, 'results', 'iris.csv'), + delimiter=",", skip_header=1) + y = iris[:, -1] + X = iris[:, :-1] + X = X[y != 2] + y = y[y != 2] + X = add_constant(X, prepend=True) + glm = GLM(y, X, family=sm.families.Binomial()) + assert_raises(PerfectSeparationError, glm.fit) + + +def test_score_test_OLS(): + # nicer example than Longley + from statsmodels.regression.linear_model import OLS + np.random.seed(5) + nobs = 100 + sige = 0.5 + x = np.random.uniform(0, 1, size=(nobs, 5)) + x[:, 0] = 1 + beta = 1. / np.arange(1., x.shape[1] + 1) + y = x.dot(beta) + sige * np.random.randn(nobs) + + res_ols = OLS(y, x).fit() + res_olsc = OLS(y, x[:, :-2]).fit() + co = res_ols.compare_lm_test(res_olsc, demean=False) + + res_glm = GLM(y, x[:, :-2], family=sm.families.Gaussian()).fit() + co2 = res_glm.model.score_test(res_glm.params, exog_extra=x[:, -2:]) + # difference in df_resid versus nobs in scale see #1786 + assert_allclose(co[0] * 97 / 100., co2[0], rtol=1e-13) + + +def test_attribute_writable_resettable(): + # Regression test for mutables and class constructors. + data = sm.datasets.longley.load() + endog, exog = data.endog, data.exog + glm_model = sm.GLM(endog, exog) + assert_equal(glm_model.family.link.power, 1.0) + glm_model.family.link.power = 2. + assert_equal(glm_model.family.link.power, 2.0) + glm_model2 = sm.GLM(endog, exog) + assert_equal(glm_model2.family.link.power, 1.0) + + +class Test_start_params(CheckModelResultsMixin): + def __init__(self): + ''' + Test Gaussian family with canonical identity link + ''' + # Test Precisions + self.decimal_resids = DECIMAL_3 + self.decimal_params = DECIMAL_2 + self.decimal_bic = DECIMAL_0 + self.decimal_bse = DECIMAL_3 + + from statsmodels.datasets.longley import load + self.data = load() + self.data.exog = add_constant(self.data.exog, prepend=False) + params = sm.OLS(self.data.endog, self.data.exog).fit().params + self.res1 = GLM(self.data.endog, self.data.exog, + family=sm.families.Gaussian()).fit(start_params=params) + from .results.results_glm import Longley + self.res2 = Longley() + + +def test_glm_start_params(): + # see 1604 + y2 = np.array('0 1 0 0 0 1'.split(), int) + wt = np.array([50,1,50,1,5,10]) + y2 = np.repeat(y2, wt) + x2 = np.repeat([0,0,0.001,100,-1,-1], wt) + mod = sm.GLM(y2, sm.add_constant(x2), family=sm.families.Binomial()) + res = mod.fit(start_params=[-4, -5]) + np.testing.assert_almost_equal(res.params, [-4.60305022, -5.29634545], 6) + + +def test_loglike_no_opt(): + # see 1728 + + y = np.asarray([0, 1, 0, 0, 1, 1, 0, 1, 1, 1]) + x = np.arange(10, dtype=np.float64) + + def llf(params): + lin_pred = params[0] + params[1]*x + pr = 1 / (1 + np.exp(-lin_pred)) + return np.sum(y*np.log(pr) + (1-y)*np.log(1-pr)) + + for params in [0,0], [0,1], [0.5,0.5]: + mod = sm.GLM(y, sm.add_constant(x), family=sm.families.Binomial()) + res = mod.fit(start_params=params, maxiter=0) + like = llf(params) + assert_almost_equal(like, res.llf) + + +def test_formula_missing_exposure(): + # see 2083 + import statsmodels.formula.api as smf + import pandas as pd + + d = {'Foo': [1, 2, 10, 149], 'Bar': [1, 2, 3, np.nan], + 'constant': [1] * 4, 'exposure' : np.random.uniform(size=4), + 'x': [1, 3, 2, 1.5]} + df = pd.DataFrame(d) + + family = sm.families.Gaussian(link=sm.families.links.log) + + mod = smf.glm("Foo ~ Bar", data=df, exposure=df.exposure, + family=family) + assert_(type(mod.exposure) is np.ndarray, msg='Exposure is not ndarray') + + exposure = pd.Series(np.random.uniform(size=5)) + assert_raises(ValueError, smf.glm, "Foo ~ Bar", data=df, + exposure=exposure, family=family) + assert_raises(ValueError, GLM, df.Foo, df[['constant', 'Bar']], + exposure=exposure, family=family) + + +@dec.skipif(not have_matplotlib) +def test_plots(): + + np.random.seed(378) + n = 200 + exog = np.random.normal(size=(n, 2)) + lin_pred = exog[:, 0] + exog[:, 1]**2 + prob = 1 / (1 + np.exp(-lin_pred)) + endog = 1 * (np.random.uniform(size=n) < prob) + + model = sm.GLM(endog, exog, family=sm.families.Binomial()) + result = model.fit() + + import matplotlib.pyplot as plt + import pandas as pd + from statsmodels.graphics.regressionplots import add_lowess + + # array interface + for j in 0,1: + fig = result.plot_added_variable(j) + add_lowess(fig.axes[0], frac=0.5) + close_or_save(pdf, fig) + fig = result.plot_partial_residuals(j) + add_lowess(fig.axes[0], frac=0.5) + close_or_save(pdf, fig) + fig = result.plot_ceres_residuals(j) + add_lowess(fig.axes[0], frac=0.5) + close_or_save(pdf, fig) + + # formula interface + data = pd.DataFrame({"y": endog, "x1": exog[:, 0], "x2": exog[:, 1]}) + model = sm.GLM.from_formula("y ~ x1 + x2", data, family=sm.families.Binomial()) + result = model.fit() + for j in 0,1: + xname = ["x1", "x2"][j] + fig = result.plot_added_variable(xname) + add_lowess(fig.axes[0], frac=0.5) + close_or_save(pdf, fig) + fig = result.plot_partial_residuals(xname) + add_lowess(fig.axes[0], frac=0.5) + close_or_save(pdf, fig) + fig = result.plot_ceres_residuals(xname) + add_lowess(fig.axes[0], frac=0.5) + close_or_save(pdf, fig) + +def gen_endog(lin_pred, family_class, link, binom_version=0): + + np.random.seed(872) + + fam = sm.families + + mu = link().inverse(lin_pred) + + if family_class == fam.Binomial: + if binom_version == 0: + endog = 1*(np.random.uniform(size=len(lin_pred)) < mu) + else: + endog = np.empty((len(lin_pred), 2)) + n = 10 + endog[:, 0] = (np.random.uniform(size=(len(lin_pred), n)) < mu[:, None]).sum(1) + endog[:, 1] = n - endog[:, 0] + elif family_class == fam.Poisson: + endog = np.random.poisson(mu) + elif family_class == fam.Gamma: + endog = np.random.gamma(2, mu) + elif family_class == fam.Gaussian: + endog = mu + np.random.normal(size=len(lin_pred)) + elif family_class == fam.NegativeBinomial: + from scipy.stats.distributions import nbinom + endog = nbinom.rvs(mu, 0.5) + elif family_class == fam.InverseGaussian: + from scipy.stats.distributions import invgauss + endog = invgauss.rvs(mu) + else: + raise ValueError + + return endog + + +def test_summary(): + """ + Smoke test for summary. + """ + + np.random.seed(4323) + + n = 100 + exog = np.random.normal(size=(n, 2)) + exog[:, 0] = 1 + endog = np.random.normal(size=n) + + for method in "irls", "cg": + fa = sm.families.Gaussian() + model = sm.GLM(endog, exog, family=fa) + rslt = model.fit(method=method) + s = rslt.summary() + +def test_gradient_irls(): + # Compare the results when using gradient optimization and IRLS. + + # TODO: Find working examples for inverse_squared link + + np.random.seed(87342) + + fam = sm.families + lnk = sm.families.links + families = [(fam.Binomial, [lnk.logit, lnk.probit, lnk.cloglog, lnk.log, lnk.cauchy]), + (fam.Poisson, [lnk.log, lnk.identity, lnk.sqrt]), + (fam.Gamma, [lnk.log, lnk.identity, lnk.inverse_power]), + (fam.Gaussian, [lnk.identity, lnk.log, lnk.inverse_power]), + (fam.InverseGaussian, [lnk.log, lnk.identity, lnk.inverse_power, lnk.inverse_squared]), + (fam.NegativeBinomial, [lnk.log, lnk.inverse_power, lnk.inverse_squared, lnk.identity])] + + n = 100 + p = 3 + exog = np.random.normal(size=(n, p)) + exog[:, 0] = 1 + + skip_one = False + for family_class, family_links in families: + for link in family_links: + for binom_version in 0,1: + + if family_class != fam.Binomial and binom_version == 1: + continue + + if (family_class, link) == (fam.Poisson, lnk.identity): + lin_pred = 20 + exog.sum(1) + elif (family_class, link) == (fam.Binomial, lnk.log): + lin_pred = -1 + exog.sum(1) / 8 + elif (family_class, link) == (fam.Poisson, lnk.sqrt): + lin_pred = 2 + exog.sum(1) + elif (family_class, link) == (fam.InverseGaussian, lnk.log): + #skip_zero = True + lin_pred = -1 + exog.sum(1) + elif (family_class, link) == (fam.InverseGaussian, lnk.identity): + lin_pred = 20 + 5*exog.sum(1) + lin_pred = np.clip(lin_pred, 1e-4, np.inf) + elif (family_class, link) == (fam.InverseGaussian, lnk.inverse_squared): + lin_pred = 0.5 + exog.sum(1) / 5 + continue # skip due to non-convergence + elif (family_class, link) == (fam.InverseGaussian, lnk.inverse_power): + lin_pred = 1 + exog.sum(1) / 5 + elif (family_class, link) == (fam.NegativeBinomial, lnk.identity): + lin_pred = 20 + 5*exog.sum(1) + lin_pred = np.clip(lin_pred, 1e-4, np.inf) + elif (family_class, link) == (fam.NegativeBinomial, lnk.inverse_squared): + lin_pred = 0.1 + np.random.uniform(size=exog.shape[0]) + continue # skip due to non-convergence + elif (family_class, link) == (fam.NegativeBinomial, lnk.inverse_power): + lin_pred = 1 + exog.sum(1) / 5 + + elif (family_class, link) == (fam.Gaussian, lnk.inverse_power): + # adding skip because of convergence failure + skip_one = True + else: + lin_pred = np.random.uniform(size=exog.shape[0]) + + endog = gen_endog(lin_pred, family_class, link, binom_version) + + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + mod_irls = sm.GLM(endog, exog, family=family_class(link=link)) + rslt_irls = mod_irls.fit(method="IRLS") + + # Try with and without starting values. + for max_start_irls, start_params in (0, rslt_irls.params), (3, None): + # TODO: skip convergence failures for now + if max_start_irls > 0 and skip_one: + continue + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + mod_gradient = sm.GLM(endog, exog, family=family_class(link=link)) + rslt_gradient = mod_gradient.fit(max_start_irls=max_start_irls, + start_params=start_params, + method="newton") + + assert_allclose(rslt_gradient.params, + rslt_irls.params, rtol=1e-6, atol=5e-5) + + assert_allclose(rslt_gradient.llf, rslt_irls.llf, + rtol=1e-6, atol=1e-6) + + assert_allclose(rslt_gradient.scale, rslt_irls.scale, + rtol=1e-6, atol=1e-6) + + # Get the standard errors using expected information. + gradient_bse = rslt_gradient.bse + ehess = mod_gradient.hessian(rslt_gradient.params, observed=False) + gradient_bse = np.sqrt(-np.diag(np.linalg.inv(ehess))) + + assert_allclose(gradient_bse, rslt_irls.bse, rtol=1e-6, atol=5e-5) + + +class CheckWtdDuplicationMixin(object): + decimal_params = DECIMAL_4 + + def __init__(self): + from statsmodels.datasets.cpunish import load + self.data = load() + self.endog = self.data.endog + self.exog = self.data.exog + np.random.seed(1234) + self.weight = np.random.randint(5, 100, len(self.endog)) + self.endog_big = np.repeat(self.endog, self.weight) + self.exog_big = np.repeat(self.exog, self.weight, axis=0) + + def test_params(self): + assert_allclose(self.res1.params, self.res2.params, atol=1e-6, + rtol=1e-6) + + decimal_bse = DECIMAL_4 + + def test_standard_errors(self): + assert_allclose(self.res1.bse, self.res2.bse, rtol=1e-5, atol=1e-6) + + decimal_resids = DECIMAL_4 + + # TODO: This doesn't work... Arrays are of different shape. + # Perhaps we use self.res1.model.family.resid_XXX()? + """ + def test_residuals(self): + resids1 = np.column_stack((self.res1.resid_pearson, + self.res1.resid_deviance, + self.res1.resid_working, + self.res1.resid_anscombe, + self.res1.resid_response)) + resids2 = np.column_stack((self.res1.resid_pearson, + self.res2.resid_deviance, + self.res2.resid_working, + self.res2.resid_anscombe, + self.res2.resid_response)) + assert_allclose(resids1, resids2, self.decimal_resids) + """ + + def test_aic(self): + # R includes the estimation of the scale as a lost dof + # Doesn't with Gamma though + assert_allclose(self.res1.aic, self.res2.aic, atol=1e-6, rtol=1e-6) + + def test_deviance(self): + assert_allclose(self.res1.deviance, self.res2.deviance, atol=1e-6, + rtol=1e-6) + + def test_scale(self): + assert_allclose(self.res1.scale, self.res2.scale, atol=1e-6, rtol=1e-6) + + def test_loglike(self): + # Stata uses the below llf for these families + # We differ with R for them + assert_allclose(self.res1.llf, self.res2.llf, 1e-6) + + decimal_null_deviance = DECIMAL_4 + + def test_null_deviance(self): + assert_allclose(self.res1.null_deviance, self.res2.null_deviance, + atol=1e-6, rtol=1e-6) + + decimal_bic = DECIMAL_4 + + def test_bic(self): + assert_allclose(self.res1.bic, self.res2.bic, atol=1e-6, rtol=1e-6) + + decimal_fittedvalues = DECIMAL_4 + + def test_fittedvalues(self): + res2_fitted = self.res2.predict(self.res1.model.exog) + assert_allclose(self.res1.fittedvalues, res2_fitted, atol=1e-5, + rtol=1e-5) + + decimal_tpvalues = DECIMAL_4 + + def test_tpvalues(self): + # test comparing tvalues and pvalues with normal implementation + # make sure they use normal distribution (inherited in results class) + assert_allclose(self.res1.tvalues, self.res2.tvalues, atol=1e-6, + rtol=2e-4) + assert_allclose(self.res1.pvalues, self.res2.pvalues, atol=1e-6, + rtol=1e-6) + assert_allclose(self.res1.conf_int(), self.res2.conf_int(), atol=1e-6, + rtol=1e-6) + + +class TestWtdGlmPoisson(CheckWtdDuplicationMixin): + def __init__(self): + ''' + Tests Poisson family with canonical log link. + ''' + super(TestWtdGlmPoisson, self).__init__() + self.res1 = GLM(self.endog, self.exog, + freq_weights=self.weight, + family=sm.families.Poisson()).fit() + self.res2 = GLM(self.endog_big, self.exog_big, + family=sm.families.Poisson()).fit() + + +class TestWtdGlmPoissonNewton(CheckWtdDuplicationMixin): + def __init__(self): + ''' + Tests Poisson family with canonical log link. + ''' + super(TestWtdGlmPoissonNewton, self).__init__() + + start_params = np.array([1.82794424e-04, -4.76785037e-02, + -9.48249717e-02, -2.92293226e-04, + 2.63728909e+00, -2.05934384e+01]) + + fit_kwds = dict(method='newton') + self.res1 = GLM(self.endog, self.exog, + freq_weights=self.weight, + family=sm.families.Poisson()).fit(**fit_kwds) + fit_kwds = dict(method='newton', start_params=start_params) + self.res2 = GLM(self.endog_big, self.exog_big, + family=sm.families.Poisson()).fit(**fit_kwds) + + +class TestWtdGlmPoissonHC0(CheckWtdDuplicationMixin): + def __init__(self): + ''' + Tests Poisson family with canonical log link. + ''' + super(TestWtdGlmPoissonHC0, self).__init__() + + start_params = np.array([1.82794424e-04, -4.76785037e-02, + -9.48249717e-02, -2.92293226e-04, + 2.63728909e+00, -2.05934384e+01]) + + fit_kwds = dict(cov_type='HC0') + self.res1 = GLM(self.endog, self.exog, + freq_weights=self.weight, + family=sm.families.Poisson()).fit(**fit_kwds) + fit_kwds = dict(cov_type='HC0', start_params=start_params) + self.res2 = GLM(self.endog_big, self.exog_big, + family=sm.families.Poisson()).fit(**fit_kwds) + + +class TestWtdGlmPoissonClu(CheckWtdDuplicationMixin): + def __init__(self): + ''' + Tests Poisson family with canonical log link. + ''' + super(TestWtdGlmPoissonClu, self).__init__() + + start_params = np.array([1.82794424e-04, -4.76785037e-02, + -9.48249717e-02, -2.92293226e-04, + 2.63728909e+00, -2.05934384e+01]) + + gid = np.arange(1, len(self.endog) + 1) // 2 + fit_kwds = dict(cov_type='cluster', cov_kwds={'groups': gid, 'use_correction':False}) + + import warnings + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + self.res1 = GLM(self.endog, self.exog, + freq_weights=self.weight, + family=sm.families.Poisson()).fit(**fit_kwds) + gidr = np.repeat(gid, self.weight) + fit_kwds = dict(cov_type='cluster', cov_kwds={'groups': gidr, 'use_correction':False}) + self.res2 = GLM(self.endog_big, self.exog_big, + family=sm.families.Poisson()).fit(start_params=start_params, + **fit_kwds) + + +class TestWtdGlmBinomial(CheckWtdDuplicationMixin): + def __init__(self): + ''' + Tests Binomial family with canonical logit link. + ''' + super(TestWtdGlmBinomial, self).__init__() + self.endog = self.endog / 100 + self.endog_big = self.endog_big / 100 + self.res1 = GLM(self.endog, self.exog, + freq_weights=self.weight, + family=sm.families.Binomial()).fit() + self.res2 = GLM(self.endog_big, self.exog_big, + family=sm.families.Binomial()).fit() + + +class TestWtdGlmNegativeBinomial(CheckWtdDuplicationMixin): + def __init__(self): + ''' + Tests Negative Binomial family with canonical link + g(u) = log(u/k * (1 - u/k)) + ''' + super(TestWtdGlmNegativeBinomial, self).__init__() + family_link = sm.families.NegativeBinomial() + self.res1 = GLM(self.endog, self.exog, + freq_weights=self.weight, + family=family_link).fit() + self.res2 = GLM(self.endog_big, self.exog_big, + family=family_link).fit() + + +class TestWtdGlmGamma(CheckWtdDuplicationMixin): + def __init__(self): + ''' + Tests Gamma family with log link. + ''' + super(TestWtdGlmGamma, self).__init__() + family_link = sm.families.Gamma(sm.families.links.log) + self.res1 = GLM(self.endog, self.exog, + freq_weights=self.weight, + family=family_link).fit() + self.res2 = GLM(self.endog_big, self.exog_big, + family=family_link).fit() + + +class TestWtdGlmGaussian(CheckWtdDuplicationMixin): + def __init__(self): + ''' + Tests Gaussian family with canonical identity link. + ''' + super(TestWtdGlmGaussian, self).__init__() + family_link = sm.families.Gaussian(sm.families.links.log) + self.res1 = GLM(self.endog, self.exog, + freq_weights=self.weight, + family=family_link).fit() + self.res2 = GLM(self.endog_big, self.exog_big, + family=family_link).fit() + + +class TestWtdGlmInverseGaussian(CheckWtdDuplicationMixin): + def __init__(self): + ''' + Tests InverseGuassian family with log link. + ''' + super(TestWtdGlmInverseGaussian, self).__init__() + family_link = sm.families.InverseGaussian(sm.families.links.log) + self.res1 = GLM(self.endog, self.exog, + freq_weights=self.weight, + family=family_link).fit() + self.res2 = GLM(self.endog_big, self.exog_big, + family=family_link).fit() + + +class TestWtdGlmGammaNewton(CheckWtdDuplicationMixin): + def __init__(self): + ''' + Tests Gamma family with log link. + ''' + super(TestWtdGlmGammaNewton, self).__init__() + family_link = sm.families.Gamma(sm.families.links.log) + self.res1 = GLM(self.endog, self.exog, + freq_weights=self.weight, + family=family_link, + method='newton').fit() + self.res2 = GLM(self.endog_big, self.exog_big, + family=family_link, + method='newton').fit() + + +class TestWtdGlmGammaScale_X2(CheckWtdDuplicationMixin): + def __init__(self): + ''' + Tests Gamma family with log link. + ''' + super(TestWtdGlmGammaScale_X2, self).__init__() + family_link = sm.families.Gamma(sm.families.links.log) + self.res1 = GLM(self.endog, self.exog, + freq_weights=self.weight, + family=family_link, + scale='X2').fit() + self.res2 = GLM(self.endog_big, self.exog_big, + family=family_link, + scale='X2').fit() + + +class TestWtdGlmGammaScale_dev(CheckWtdDuplicationMixin): + def __init__(self): + ''' + Tests Gamma family with log link. + ''' + super(TestWtdGlmGammaScale_dev, self).__init__() + family_link = sm.families.Gamma(sm.families.links.log) + self.res1 = GLM(self.endog, self.exog, + freq_weights=self.weight, + family=family_link, + scale='dev').fit() + self.res2 = GLM(self.endog_big, self.exog_big, + family=family_link, + scale='dev').fit() + + def test_missing(self): + endog = self.data.endog.copy() + exog = self.data.exog.copy() + exog[0, 0] = np.nan + endog[[2, 4, 6, 8]] = np.nan + freq_weights = self.weight + mod_misisng = GLM(endog, exog, family=self.res1.model.family, + freq_weights=freq_weights, missing='drop') + assert_equal(mod_misisng.freq_weights.shape[0], + mod_misisng.endog.shape[0]) + assert_equal(mod_misisng.freq_weights.shape[0], + mod_misisng.exog.shape[0]) + keep_idx = np.array([1, 3, 5, 7, 9, 10, 11, 12, 13, 14, 15, 16]) + assert_equal(mod_misisng.freq_weights, self.weight[keep_idx]) + + +class TestWtdTweedieLog(CheckWtdDuplicationMixin): + def __init__(self): + ''' + Tests Gamma family with log link. + ''' + super(TestWtdTweedieLog, self).__init__() + family_link = sm.families.Tweedie(var_power=1, link_power=0) + self.res1 = GLM(self.endog, self.exog, + freq_weights=self.weight, + family=family_link).fit() + self.res2 = GLM(self.endog_big, self.exog_big, + family=family_link).fit() + + +class TestWtdTweediePower2(CheckWtdDuplicationMixin): + def __init__(self): + ''' + Tests Gamma family with log link. + ''' + from statsmodels.datasets.cpunish import load_pandas + self.data = load_pandas() + self.endog = self.data.endog + self.exog = self.data.exog[['INCOME', 'SOUTH']] + np.random.seed(1234) + self.weight = np.random.randint(5, 100, len(self.endog)) + self.endog_big = np.repeat(self.endog.values, self.weight) + self.exog_big = np.repeat(self.exog.values, self.weight, axis=0) + link = sm.families.links.Power + family_link = sm.families.Tweedie(var_power=2, link_power=1, link=link) + self.res1 = GLM(self.endog, self.exog, + freq_weights=self.weight, + family=family_link).fit() + self.res2 = GLM(self.endog_big, self.exog_big, + family=family_link).fit() + + +class TestWtdTweediePower15(CheckWtdDuplicationMixin): + def __init__(self): + ''' + Tests Gamma family with log link. + ''' + super(TestWtdTweediePower15, self).__init__() + family_link = sm.families.Tweedie(var_power=1.5, link_power=0.5) + self.res1 = GLM(self.endog, self.exog, + freq_weights=self.weight, + family=family_link).fit() + self.res2 = GLM(self.endog_big, self.exog_big, + family=family_link).fit() + + +def test_wtd_patsy_missing(): + from statsmodels.datasets.cpunish import load + import pandas as pd + data = load() + data.exog[0, 0] = np.nan + data.endog[[2, 4, 6, 8]] = np.nan + data.pandas = pd.DataFrame(data.exog, columns=data.exog_name) + data.pandas['EXECUTIONS'] = data.endog + weights = np.arange(1, len(data.endog)+1) + formula = """EXECUTIONS ~ INCOME + PERPOVERTY + PERBLACK + VC100k96 + + SOUTH + DEGREE""" + mod_misisng = GLM.from_formula(formula, data=data.pandas, + freq_weights=weights) + assert_equal(mod_misisng.freq_weights.shape[0], + mod_misisng.endog.shape[0]) + assert_equal(mod_misisng.freq_weights.shape[0], + mod_misisng.exog.shape[0]) + assert_equal(mod_misisng.freq_weights.shape[0], 12) + keep_weights = np.array([2, 4, 6, 8, 10, 11, 12, 13, 14, 15, 16, 17]) + assert_equal(mod_misisng.freq_weights, keep_weights) + + +class CheckTweedie(object): + def test_resid(self): + l = len(self.res1.resid_response) - 1 + l2 = len(self.res2.resid_response) - 1 + assert_allclose(np.concatenate((self.res1.resid_response[:17], + [self.res1.resid_response[l]])), + np.concatenate((self.res2.resid_response[:17], + [self.res2.resid_response[l2]])), + rtol=1e-5, atol=1e-5) + assert_allclose(np.concatenate((self.res1.resid_pearson[:17], + [self.res1.resid_pearson[l]])), + np.concatenate((self.res2.resid_pearson[:17], + [self.res2.resid_pearson[l2]])), + rtol=1e-5, atol=1e-5) + assert_allclose(np.concatenate((self.res1.resid_deviance[:17], + [self.res1.resid_deviance[l]])), + np.concatenate((self.res2.resid_deviance[:17], + [self.res2.resid_deviance[l2]])), + rtol=1e-5, atol=1e-5) + + assert_allclose(np.concatenate((self.res1.resid_working[:17], + [self.res1.resid_working[l]])), + np.concatenate((self.res2.resid_working[:17], + [self.res2.resid_working[l2]])), + rtol=1e-5, atol=1e-5) + + + def test_bse(self): + assert_allclose(self.res1.bse, self.res2.bse, atol=1e-6, rtol=1e6) + + def test_params(self): + assert_allclose(self.res1.params, self.res2.params, atol=1e-5, + rtol=1e-5) + + def test_deviance(self): + assert_allclose(self.res1.deviance, self.res2.deviance, atol=1e-6, + rtol=1e-6) + + def test_df(self): + assert_equal(self.res1.df_model, self.res2.df_model) + assert_equal(self.res1.df_resid, self.res2.df_resid) + + def test_fittedvalues(self): + l = len(self.res1.fittedvalues) - 1 + l2 = len(self.res2.resid_response) - 1 + assert_allclose(np.concatenate((self.res1.fittedvalues[:17], + [self.res1.fittedvalues[l]])), + np.concatenate((self.res2.fittedvalues[:17], + [self.res2.fittedvalues[l2]])), + atol=1e-4, rtol=1e-4) + + def test_summary(self): + self.res1.summary() + self.res1.summary2() + + +class TestTweediePower15(CheckTweedie): + @classmethod + def setupClass(self): + from .results.results_glm import CpunishTweediePower15 + from statsmodels.datasets.cpunish import load_pandas + self.data = load_pandas() + self.exog = self.data.exog[['INCOME', 'SOUTH']] + self.endog = self.data.endog + family_link = sm.families.Tweedie(var_power=1.5, link_power=1.) + self.res1 = sm.GLM(endog=self.data.endog, + exog=self.data.exog[['INCOME', 'SOUTH']], + family=family_link).fit() + self.res2 = CpunishTweediePower15() + + +class TestTweediePower2(CheckTweedie): + @classmethod + def setupClass(self): + from .results.results_glm import CpunishTweediePower2 + from statsmodels.datasets.cpunish import load_pandas + self.data = load_pandas() + self.exog = self.data.exog[['INCOME', 'SOUTH']] + self.endog = self.data.endog + family_link = sm.families.Tweedie(var_power=2., link_power=1.) + self.res1 = sm.GLM(endog=self.data.endog, + exog=self.data.exog[['INCOME', 'SOUTH']], + family=family_link).fit() + self.res2 = CpunishTweediePower2() + + +class TestTweedieLog1(CheckTweedie): + @classmethod + def setupClass(self): + from .results.results_glm import CpunishTweedieLog1 + from statsmodels.datasets.cpunish import load_pandas + self.data = load_pandas() + self.exog = self.data.exog[['INCOME', 'SOUTH']] + self.endog = self.data.endog + family_link = sm.families.Tweedie(var_power=1., link_power=0.) + self.res1 = sm.GLM(endog=self.data.endog, + exog=self.data.exog[['INCOME', 'SOUTH']], + family=family_link).fit() + self.res2 = CpunishTweedieLog1() + + +class TestTweedieLog15Fair(CheckTweedie): + @classmethod + def setupClass(self): + from .results.results_glm import FairTweedieLog15 + from statsmodels.datasets.fair import load_pandas + data = load_pandas() + family_link = sm.families.Tweedie(var_power=1.5, link_power=0.) + self.res1 = sm.GLM(endog=data.endog, + exog=data.exog[['rate_marriage', 'age', + 'yrs_married']], + family=family_link).fit() + self.res2 = FairTweedieLog15() + + +class CheckTweedieSpecial(object): + def test_mu(self): + assert_allclose(self.res1.mu, self.res2.mu, rtol=1e-5, atol=1e-5) + + def test_resid(self): + assert_allclose(self.res1.resid_response, self.res2.resid_response, + rtol=1e-5, atol=1e-5) + assert_allclose(self.res1.resid_pearson, self.res2.resid_pearson, + rtol=1e-5, atol=1e-5) + assert_allclose(self.res1.resid_deviance, self.res2.resid_deviance, + rtol=1e-5, atol=1e-5) + assert_allclose(self.res1.resid_working, self.res2.resid_working, + rtol=1e-5, atol=1e-5) + assert_allclose(self.res1.resid_anscombe, self.res2.resid_anscombe, + rtol=1e-5, atol=1e-5) + + +class TestTweedieSpecialLog0(CheckTweedieSpecial): + @classmethod + def setupClass(self): + from statsmodels.datasets.cpunish import load_pandas + self.data = load_pandas() + self.exog = self.data.exog[['INCOME', 'SOUTH']] + self.endog = self.data.endog + family1 = sm.families.Gaussian(link=sm.families.links.log) + self.res1 = sm.GLM(endog=self.data.endog, + exog=self.data.exog[['INCOME', 'SOUTH']], + family=family1).fit() + family2 = sm.families.Tweedie(var_power=0, link_power=0) + self.res2 = sm.GLM(endog=self.data.endog, + exog=self.data.exog[['INCOME', 'SOUTH']], + family=family2).fit() + + +class TestTweedieSpecialLog1(CheckTweedieSpecial): + @classmethod + def setupClass(self): + from statsmodels.datasets.cpunish import load_pandas + self.data = load_pandas() + self.exog = self.data.exog[['INCOME', 'SOUTH']] + self.endog = self.data.endog + family1 = sm.families.Poisson(link=sm.families.links.log) + self.res1 = sm.GLM(endog=self.data.endog, + exog=self.data.exog[['INCOME', 'SOUTH']], + family=family1).fit() + family2 = sm.families.Tweedie(var_power=1, link_power=0) + self.res2 = sm.GLM(endog=self.data.endog, + exog=self.data.exog[['INCOME', 'SOUTH']], + family=family2).fit() + + +class TestTweedieSpecialLog2(CheckTweedieSpecial): + @classmethod + def setupClass(self): + from statsmodels.datasets.cpunish import load_pandas + self.data = load_pandas() + self.exog = self.data.exog[['INCOME', 'SOUTH']] + self.endog = self.data.endog + family1 = sm.families.Gamma(link=sm.families.links.log) + self.res1 = sm.GLM(endog=self.data.endog, + exog=self.data.exog[['INCOME', 'SOUTH']], + family=family1).fit() + family2 = sm.families.Tweedie(var_power=2, link_power=0) + self.res2 = sm.GLM(endog=self.data.endog, + exog=self.data.exog[['INCOME', 'SOUTH']], + family=family2).fit() + + +class TestTweedieSpecialLog3(CheckTweedieSpecial): + @classmethod + def setupClass(self): + from statsmodels.datasets.cpunish import load_pandas + self.data = load_pandas() + self.exog = self.data.exog[['INCOME', 'SOUTH']] + self.endog = self.data.endog + family1 = sm.families.InverseGaussian(link=sm.families.links.log) + self.res1 = sm.GLM(endog=self.data.endog, + exog=self.data.exog[['INCOME', 'SOUTH']], + family=family1).fit() + family2 = sm.families.Tweedie(var_power=3, link_power=0) + self.res2 = sm.GLM(endog=self.data.endog, + exog=self.data.exog[['INCOME', 'SOUTH']], + family=family2).fit() + + +def testTweediePowerEstimate(): + """ + Test the Pearson estimate of the Tweedie variance and scale parameters. + + Ideally, this would match the following R code, but I can't make it work... + + setwd('c:/workspace') + data <- read.csv('cpunish.csv', sep=",") + + library(tweedie) + + y <- c(1.00113835e+05, 6.89668315e+03, 6.15726842e+03, + 1.41718806e+03, 5.11776456e+02, 2.55369154e+02, + 1.07147443e+01, 3.56874698e+00, 4.06797842e-02, + 7.06996731e-05, 2.10165106e-07, 4.34276938e-08, + 1.56354040e-09, 0.00000000e+00, 0.00000000e+00, + 0.00000000e+00, 0.00000000e+00) + + data$NewY <- y + + out <- tweedie.profile( NewY ~ INCOME + SOUTH - 1, + p.vec=c(1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, + 1.9), link.power=0, + data=data,do.plot = TRUE) + """ + data = sm.datasets.cpunish.load_pandas() + y = [1.00113835e+05, 6.89668315e+03, 6.15726842e+03, + 1.41718806e+03, 5.11776456e+02, 2.55369154e+02, + 1.07147443e+01, 3.56874698e+00, 4.06797842e-02, + 7.06996731e-05, 2.10165106e-07, 4.34276938e-08, + 1.56354040e-09, 0.00000000e+00, 0.00000000e+00, + 0.00000000e+00, 0.00000000e+00] + model1 = sm.GLM(y, data.exog[['INCOME', 'SOUTH']], + family=sm.families.Tweedie(var_power=1.5, link_power=0)) + res1 = model1.fit() + model2 = sm.GLM((y - res1.mu) ** 2, + np.column_stack((np.ones(len(res1.mu)), np.log(res1.mu))), + family=sm.families.Gamma(sm.families.links.log)) + res2 = model2.fit() + # Sample may be too small for this... + # assert_allclose(res1.scale, np.exp(res2.params[0]), rtol=0.25) + p = model1.estimate_tweedie_power(res1.mu) + assert_allclose(p, res2.params[1], rtol=0.25) + +class TestRegularized(object): + + def test_regularized(self): + + import os + from . import glmnet_r_results + + for dtype in "binomial", "poisson": + + cur_dir = os.path.dirname(os.path.abspath(__file__)) + data = np.loadtxt(os.path.join(cur_dir, "results", "enet_%s.csv" % dtype), + delimiter=",") + + endog = data[:, 0] + exog = data[:, 1:] + + fam = {"binomial" : sm.families.Binomial, + "poisson" : sm.families.Poisson}[dtype] + + for j in range(9): + + vn = "rslt_%s_%d" % (dtype, j) + r_result = getattr(glmnet_r_results, vn) + L1_wt = r_result[0] + alpha = r_result[1] + params = r_result[2:] + + model = GLM(endog, exog, family=fam()) + sm_result = model.fit_regularized(L1_wt=L1_wt, alpha=alpha) + + # Agreement is OK, see below for further check + assert_allclose(params, sm_result.params, atol=1e-2, rtol=0.3) + + # The penalized log-likelihood that we are maximizing. + def plf(params): + llf = model.loglike(params) / len(endog) + llf = llf - alpha * ((1 - L1_wt)*np.sum(params**2) / 2 + L1_wt*np.sum(np.abs(params))) + return llf + + # Confirm that we are doing better than glmnet. + from numpy.testing import assert_equal + llf_r = plf(params) + llf_sm = plf(sm_result.params) + assert_equal(np.sign(llf_sm - llf_r), 1) + + +class TestConvergence(object): + def __init__(self): + ''' + Test Binomial family with canonical logit link using star98 dataset. + ''' + from statsmodels.datasets.star98 import load + data = load() + data.exog = add_constant(data.exog, prepend=False) + self.model = GLM(data.endog, data.exog, + family=sm.families.Binomial()) + + def _when_converged(self, atol=1e-8, rtol=0, tol_criterion='deviance'): + for i, dev in enumerate(self.res.fit_history[tol_criterion]): + orig = self.res.fit_history[tol_criterion][i] + new = self.res.fit_history[tol_criterion][i + 1] + if np.allclose(orig, new, atol=atol, rtol=rtol): + return i + raise ValueError('CONVERGENCE CHECK: It seems this doens\'t converge!') + + def test_convergence_atol_only(self): + atol = 1e-8 + rtol = 0 + self.res = self.model.fit(atol=atol, rtol=rtol) + expected_iterations = self._when_converged(atol=atol, rtol=rtol) + actual_iterations = self.res.fit_history['iteration'] + # Note the first value is the list is np.inf. The second value + # is the initial guess based off of start_params or the + # estimate thereof. The third value (index = 2) is the actual "first + # iteration" + assert_equal(expected_iterations, actual_iterations) + assert_equal(len(self.res.fit_history['deviance']) - 2, + actual_iterations) + + def test_convergence_rtol_only(self): + atol = 0 + rtol = 1e-8 + self.res = self.model.fit(atol=atol, rtol=rtol) + expected_iterations = self._when_converged(atol=atol, rtol=rtol) + actual_iterations = self.res.fit_history['iteration'] + # Note the first value is the list is np.inf. The second value + # is the initial guess based off of start_params or the + # estimate thereof. The third value (index = 2) is the actual "first + # iteration" + assert_equal(expected_iterations, actual_iterations) + assert_equal(len(self.res.fit_history['deviance']) - 2, + actual_iterations) + + def test_convergence_atol_rtol(self): + atol = 1e-8 + rtol = 1e-8 + self.res = self.model.fit(atol=atol, rtol=rtol) + expected_iterations = self._when_converged(atol=atol, rtol=rtol) + actual_iterations = self.res.fit_history['iteration'] + # Note the first value is the list is np.inf. The second value + # is the initial guess based off of start_params or the + # estimate thereof. The third value (index = 2) is the actual "first + # iteration" + assert_equal(expected_iterations, actual_iterations) + assert_equal(len(self.res.fit_history['deviance']) - 2, + actual_iterations) + + def test_convergence_atol_only_params(self): + atol = 1e-8 + rtol = 0 + self.res = self.model.fit(atol=atol, rtol=rtol, tol_criterion='params') + expected_iterations = self._when_converged(atol=atol, rtol=rtol, + tol_criterion='params') + actual_iterations = self.res.fit_history['iteration'] + # Note the first value is the list is np.inf. The second value + # is the initial guess based off of start_params or the + # estimate thereof. The third value (index = 2) is the actual "first + # iteration" + assert_equal(expected_iterations, actual_iterations) + assert_equal(len(self.res.fit_history['deviance']) - 2, + actual_iterations) + + def test_convergence_rtol_only_params(self): + atol = 0 + rtol = 1e-8 + self.res = self.model.fit(atol=atol, rtol=rtol, tol_criterion='params') + expected_iterations = self._when_converged(atol=atol, rtol=rtol, + tol_criterion='params') + actual_iterations = self.res.fit_history['iteration'] + # Note the first value is the list is np.inf. The second value + # is the initial guess based off of start_params or the + # estimate thereof. The third value (index = 2) is the actual "first + # iteration" + assert_equal(expected_iterations, actual_iterations) + assert_equal(len(self.res.fit_history['deviance']) - 2, + actual_iterations) + + def test_convergence_atol_rtol_params(self): + atol = 1e-8 + rtol = 1e-8 + self.res = self.model.fit(atol=atol, rtol=rtol, tol_criterion='params') + expected_iterations = self._when_converged(atol=atol, rtol=rtol, + tol_criterion='params') + actual_iterations = self.res.fit_history['iteration'] + # Note the first value is the list is np.inf. The second value + # is the initial guess based off of start_params or the + # estimate thereof. The third value (index = 2) is the actual "first + # iteration" + assert_equal(expected_iterations, actual_iterations) + assert_equal(len(self.res.fit_history['deviance']) - 2, + actual_iterations) + + +if __name__ == "__main__": + # run_module_suite() + # taken from Fernando Perez: + import nose + nose.runmodule(argv=[__file__, '-vvs', '-x', '--pdb'], + exit=False) diff --git a/statsmodels/genmod/tests/test_glm_weights.py b/statsmodels/genmod/tests/test_glm_weights.py new file mode 100644 index 0000000..96eadb8 --- /dev/null +++ b/statsmodels/genmod/tests/test_glm_weights.py @@ -0,0 +1,184 @@ +"""Test for weights in GLM, Poisson and OLS/WLS, continuous test_glm.py + +""" +from __future__ import division + +from statsmodels.compat import range + +import os +import numpy as np +from numpy.testing import (assert_almost_equal, assert_equal, assert_raises, + assert_allclose, assert_, assert_array_less, dec) +from scipy import stats +import statsmodels.api as sm +from statsmodels.genmod.generalized_linear_model import GLM +from statsmodels.tools.tools import add_constant +from statsmodels.tools.sm_exceptions import PerfectSeparationError +from statsmodels.discrete import discrete_model as discrete +from nose import SkipTest +import warnings + +from .results import results_glm_poisson_weights as res_stata + +# load data into module namespace +from statsmodels.datasets.cpunish import load +cpunish_data = load() +cpunish_data.exog[:,3] = np.log(cpunish_data.exog[:,3]) +cpunish_data.exog = add_constant(cpunish_data.exog, prepend=False) + + +class CheckWeight(object): + + def test_basic(self): + res1 = self.res1 + res2 = self.res2 + + assert_allclose(res1.params, res2.params, atol= 1e-6, rtol=2e-6) + corr_fact = getattr(self, 'corr_fact', 1) + assert_allclose(res1.bse, corr_fact * res2.bse, atol= 1e-6, rtol=2e-6) + assert_allclose(res1.llf, res2.ll, atol= 1e-6, rtol=1e-7) + assert_allclose(res1.deviance, res2.deviance, atol= 1e-6, rtol=1e-7) + + def test_residuals(self): + res1 = self.res1 + res2 = self.res2 + if not hasattr(res2, 'resids'): + return None # use SkipError instead + resid_all = dict(zip(res2.resids_colnames, res2.resids.T)) + + assert_allclose(res1.resid_response, resid_all['resid_response'], atol= 1e-6, rtol=2e-6) + assert_allclose(res1.resid_pearson, resid_all['resid_pearson'], atol= 1e-6, rtol=2e-6) + assert_allclose(res1.resid_deviance, resid_all['resid_deviance'], atol= 1e-6, rtol=2e-6) + assert_allclose(res1.resid_anscombe, resid_all['resid_anscombe'], atol= 1e-6, rtol=2e-6) + assert_allclose(res1.resid_working, resid_all['resid_working'], atol= 1e-6, rtol=2e-6) + + +class TestGlmPoissonPlain(CheckWeight): + @classmethod + def setupClass(cls): + self = cls # alias + + self.res1 = GLM(cpunish_data.endog, cpunish_data.exog, + family=sm.families.Poisson()).fit() + # compare with discrete, start close to save time + modd = discrete.Poisson(cpunish_data.endog, cpunish_data.exog) + self.res2 = res_stata.results_poisson_none_nonrobust + + +class TestGlmPoissonFwNr(CheckWeight): + @classmethod + def setupClass(cls): + self = cls # alias + + fweights = [1, 1, 1, 2, 2, 2, 3, 3, 3, 1, 1, 1, 2, 2, 2, 3, 3] + fweights = np.array(fweights) + + self.res1 = GLM(cpunish_data.endog, cpunish_data.exog, + family=sm.families.Poisson(), freq_weights=fweights).fit() + # compare with discrete, start close to save time + modd = discrete.Poisson(cpunish_data.endog, cpunish_data.exog) + self.res2 = res_stata.results_poisson_fweight_nonrobust + + +class TestGlmPoissonAwNr(CheckWeight): + @classmethod + def setupClass(cls): + self = cls # alias + + fweights = [1, 1, 1, 2, 2, 2, 3, 3, 3, 1, 1, 1, 2, 2, 2, 3, 3] + # faking aweights by using normalized freq_weights + fweights = np.array(fweights) + wsum = fweights.sum() + nobs = len(cpunish_data.endog) + aweights = fweights / wsum * nobs + + self.res1 = GLM(cpunish_data.endog, cpunish_data.exog, + family=sm.families.Poisson(), freq_weights=aweights).fit() + # compare with discrete, start close to save time + modd = discrete.Poisson(cpunish_data.endog, cpunish_data.exog) + self.res2 = res_stata.results_poisson_aweight_nonrobust + +# prob_weights fail with HC, not properly implemented yet +class T_estGlmPoissonPwNr(CheckWeight): + @classmethod + def setupClass(cls): + self = cls # alias + + fweights = [1, 1, 1, 2, 2, 2, 3, 3, 3, 1, 1, 1, 2, 2, 2, 3, 3] + # faking aweights by using normalized freq_weights + fweights = np.array(fweights) + wsum = fweights.sum() + nobs = len(cpunish_data.endog) + aweights = fweights / wsum * nobs + + self.res1 = GLM(cpunish_data.endog, cpunish_data.exog, + family=sm.families.Poisson(), freq_weights=fweights).fit(cov_type='HC1') + # compare with discrete, start close to save time + #modd = discrete.Poisson(cpunish_data.endog, cpunish_data.exog) + self.res2 = res_stata.results_poisson_pweight_nonrobust + + +class TestGlmPoissonFwHC(CheckWeight): + @classmethod + def setupClass(cls): + self = cls # alias + + fweights = [1, 1, 1, 2, 2, 2, 3, 3, 3, 1, 1, 1, 2, 2, 2, 3, 3] + # faking aweights by using normalized freq_weights + fweights = np.array(fweights) + wsum = fweights.sum() + nobs = len(cpunish_data.endog) + aweights = fweights / wsum * nobs + self.corr_fact = np.sqrt((wsum - 1.) / wsum) + self.res1 = GLM(cpunish_data.endog, cpunish_data.exog, + family=sm.families.Poisson(), freq_weights=fweights + ).fit(cov_type='HC0') #, cov_kwds={'use_correction':False}) + # compare with discrete, start close to save time + #modd = discrete.Poisson(cpunish_data.endog, cpunish_data.exog) + self.res2 = res_stata.results_poisson_fweight_hc1 + +# var_weights (aweights fail with HC, not properly implemented yet +class T_estGlmPoissonAwHC(CheckWeight): + @classmethod + def setupClass(cls): + self = cls # alias + + fweights = [1, 1, 1, 2, 2, 2, 3, 3, 3, 1, 1, 1, 2, 2, 2, 3, 3] + # faking aweights by using normalized freq_weights + fweights = np.array(fweights) + wsum = fweights.sum() + nobs = len(cpunish_data.endog) + aweights = fweights / wsum * nobs + self.corr_fact = np.sqrt((wsum - 1.) / wsum) + self.res1 = GLM(cpunish_data.endog, cpunish_data.exog, + family=sm.families.Poisson(), freq_weights=aweights + ).fit(cov_type='HC0') #, cov_kwds={'use_correction':False}) + # compare with discrete, start close to save time + #modd = discrete.Poisson(cpunish_data.endog, cpunish_data.exog) + self.res2 = res_stata.results_poisson_aweight_hc1 + + +class TestGlmPoissonFwClu(CheckWeight): + @classmethod + def setupClass(cls): + self = cls # alias + + fweights = [1, 1, 1, 2, 2, 2, 3, 3, 3, 1, 1, 1, 2, 2, 2, 3, 3] + # faking aweights by using normalized freq_weights + fweights = np.array(fweights) + wsum = fweights.sum() + nobs = len(cpunish_data.endog) + aweights = fweights / wsum * nobs + + gid = np.arange(1, 17 + 1) // 2 + n_groups = len(np.unique(gid)) + + # no wnobs yet in sandwich covariance calcualtion + self.corr_fact = 1 / np.sqrt(n_groups / (n_groups - 1)) #np.sqrt((wsum - 1.) / wsum) + cov_kwds = {'groups': gid, 'use_correction':False} + self.res1 = GLM(cpunish_data.endog, cpunish_data.exog, + family=sm.families.Poisson(), freq_weights=fweights + ).fit(cov_type='cluster', cov_kwds=cov_kwds) + # compare with discrete, start close to save time + #modd = discrete.Poisson(cpunish_data.endog, cpunish_data.exog) + self.res2 = res_stata.results_poisson_fweight_clu1 diff --git a/statsmodels/graphics/__init__.py b/statsmodels/graphics/__init__.py new file mode 100644 index 0000000..0123ce8 --- /dev/null +++ b/statsmodels/graphics/__init__.py @@ -0,0 +1,2 @@ +from statsmodels import NoseWrapper as Tester +test = Tester().test diff --git a/statsmodels/graphics/_regressionplots_doc.py b/statsmodels/graphics/_regressionplots_doc.py new file mode 100644 index 0000000..8ad9685 --- /dev/null +++ b/statsmodels/graphics/_regressionplots_doc.py @@ -0,0 +1,102 @@ +_plot_added_variable_doc = """\ + Create an added variable plot for a fitted regression model. + + Parameters + ---------- + %(extra_params_doc)sfocus_exog : int or string + The column index of exog, or a variable name, indicating the + variable whose role in the regression is to be assessed. + resid_type : string + The type of residuals to use for the dependent variable. If + None, uses `resid_deviance` for GLM/GEE and `resid` otherwise. + use_glm_weights : bool + Only used if the model is a GLM or GEE. If True, the + residuals for the focus predictor are computed using WLS, with + the weights obtained from the IRLS calculations for fitting + the GLM. If False, unweighted regression is used. + fit_kwargs : dict, optional + Keyword arguments to be passed to fit when refitting the + model. + ax : Axes instance + Matplotlib Axes instance + + Returns + ------- + fig : matplotlib Figure + A matplotlib figure instance. +""" + +_plot_partial_residuals_doc = """\ + Create a partial residual, or 'component plus residual' plot for a + fited regression model. + + Parameters + ---------- + %(extra_params_doc)sfocus_exog : int or string + The column index of exog, or variable name, indicating the + variable whose role in the regression is to be assessed. + ax : Axes instance + Matplotlib Axes instance + + Returns + ------- + fig : matplotlib Figure + A matplotlib figure instance. +""" + +_plot_ceres_residuals_doc = """\ + Produces a CERES (Conditional Expectation Partial Residuals) + plot for a fitted regression model. + + Parameters + ---------- + %(extra_params_doc)sfocus_exog : integer or string + The column index of results.model.exog, or the variable name, + indicating the variable whose role in the regression is to be + assessed. + frac : float + Lowess tuning parameter for the adjusted model used in the + CERES analysis. Not used if `cond_means` is provided. + cond_means : array-like, optional + If provided, the columns of this array span the space of the + conditional means E[exog | focus exog], where exog ranges over + some or all of the columns of exog (other than the focus exog). + ax : matplotlib.Axes instance, optional + The axes on which to draw the plot. If not provided, a new + axes instance is created. + + Returns + ------- + fig : matplotlib.Figure instance + The figure on which the partial residual plot is drawn. + + References + ---------- + RD Cook and R Croos-Dabrera (1998). Partial residual plots in + generalized linear models. Journal of the American + Statistical Association, 93:442. + + RD Cook (1993). Partial residual plots. Technometrics 35:4. + + Notes + ----- + `cond_means` is intended to capture the behavior of E[x1 | + x2], where x2 is the focus exog and x1 are all the other exog + variables. If all the conditional mean relationships are + linear, it is sufficient to set cond_means equal to the focus + exog. Alternatively, cond_means may consist of one or more + columns containing functional transformations of the focus + exog (e.g. x2^2) that are thought to capture E[x1 | x2]. + + If nothing is known or suspected about the form of E[x1 | x2], + set `cond_means` to None, and it will be estimated by + smoothing each non-focus exog against the focus exog. The + values of `frac` control these lowess smooths. + + If cond_means contains only the focus exog, the results are + equivalent to a partial residual plot. + + If the focus variable is believed to be independent of the + other exog variables, `cond_means` can be set to an (empty) + nx0 array. +""" diff --git a/statsmodels/graphics/api.py b/statsmodels/graphics/api.py new file mode 100644 index 0000000..d97885b --- /dev/null +++ b/statsmodels/graphics/api.py @@ -0,0 +1,11 @@ +from .functional import fboxplot, rainbowplot +from .correlation import plot_corr, plot_corr_grid +from .gofplots import qqplot +from .boxplots import violinplot, beanplot +from .regressionplots import (abline_plot, plot_regress_exog, plot_fit, + plot_partregress, plot_partregress_grid, + plot_ccpr, plot_ccpr_grid, influence_plot, + plot_leverage_resid2) +from .factorplots import interaction_plot +from .plottools import rainbow +from . import tsaplots as tsa diff --git a/statsmodels/graphics/boxplots.py b/statsmodels/graphics/boxplots.py new file mode 100644 index 0000000..d9f0f4b --- /dev/null +++ b/statsmodels/graphics/boxplots.py @@ -0,0 +1,412 @@ +"""Variations on boxplots.""" + +# Author: Ralf Gommers +# Based on code by Flavio Coelho and Teemu Ikonen. + +from statsmodels.compat.python import zip +import numpy as np +from scipy.stats import gaussian_kde + +from . import utils + + +__all__ = ['violinplot', 'beanplot'] + + +def violinplot(data, ax=None, labels=None, positions=None, side='both', + show_boxplot=True, plot_opts={}): + """Make a violin plot of each dataset in the `data` sequence. + + A violin plot is a boxplot combined with a kernel density estimate of the + probability density function per point. + + Parameters + ---------- + data : sequence of ndarrays + Data arrays, one array per value in `positions`. + ax : Matplotlib AxesSubplot instance, optional + If given, this subplot is used to plot in instead of a new figure being + created. + labels : list of str, optional + Tick labels for the horizontal axis. If not given, integers + ``1..len(data)`` are used. + positions : array_like, optional + Position array, used as the horizontal axis of the plot. If not given, + spacing of the violins will be equidistant. + side : {'both', 'left', 'right'}, optional + How to plot the violin. Default is 'both'. The 'left', 'right' + options can be used to create asymmetric violin plots. + show_boxplot : bool, optional + Whether or not to show normal box plots on top of the violins. + Default is True. + plot_opts : dict, optional + A dictionary with plotting options. Any of the following can be + provided, if not present in `plot_opts` the defaults will be used:: + + - 'violin_fc', MPL color. Fill color for violins. Default is 'y'. + - 'violin_ec', MPL color. Edge color for violins. Default is 'k'. + - 'violin_lw', scalar. Edge linewidth for violins. Default is 1. + - 'violin_alpha', float. Transparancy of violins. Default is 0.5. + - 'cutoff', bool. If True, limit violin range to data range. + Default is False. + - 'cutoff_val', scalar. Where to cut off violins if `cutoff` is + True. Default is 1.5 standard deviations. + - 'cutoff_type', {'std', 'abs'}. Whether cutoff value is absolute, + or in standard deviations. Default is 'std'. + - 'violin_width' : float. Relative width of violins. Max available + space is 1, default is 0.8. + - 'label_fontsize', MPL fontsize. Adjusts fontsize only if given. + - 'label_rotation', scalar. Adjusts label rotation only if given. + Specify in degrees. + + Returns + ------- + fig : Matplotlib figure instance + If `ax` is None, the created figure. Otherwise the figure to which + `ax` is connected. + + See Also + -------- + beanplot : Bean plot, builds on `violinplot`. + matplotlib.pyplot.boxplot : Standard boxplot. + + Notes + ----- + The appearance of violins can be customized with `plot_opts`. If + customization of boxplot elements is required, set `show_boxplot` to False + and plot it on top of the violins by calling the Matplotlib `boxplot` + function directly. For example:: + + violinplot(data, ax=ax, show_boxplot=False) + ax.boxplot(data, sym='cv', whis=2.5) + + It can happen that the axis labels or tick labels fall outside the plot + area, especially with rotated labels on the horizontal axis. With + Matplotlib 1.1 or higher, this can easily be fixed by calling + ``ax.tight_layout()``. With older Matplotlib one has to use ``plt.rc`` or + ``plt.rcParams`` to fix this, for example:: + + plt.rc('figure.subplot', bottom=0.25) + violinplot(data, ax=ax) + + References + ---------- + J.L. Hintze and R.D. Nelson, "Violin Plots: A Box Plot-Density Trace + Synergism", The American Statistician, Vol. 52, pp.181-84, 1998. + + Examples + -------- + We use the American National Election Survey 1996 dataset, which has Party + Identification of respondents as independent variable and (among other + data) age as dependent variable. + + >>> data = sm.datasets.anes96.load_pandas() + >>> party_ID = np.arange(7) + >>> labels = ["Strong Democrat", "Weak Democrat", "Independent-Democrat", + ... "Independent-Indpendent", "Independent-Republican", + ... "Weak Republican", "Strong Republican"] + + Group age by party ID, and create a violin plot with it: + + >>> plt.rcParams['figure.subplot.bottom'] = 0.23 # keep labels visible + >>> age = [data.exog['age'][data.endog == id] for id in party_ID] + >>> fig = plt.figure() + >>> ax = fig.add_subplot(111) + >>> sm.graphics.violinplot(age, ax=ax, labels=labels, + ... plot_opts={'cutoff_val':5, 'cutoff_type':'abs', + ... 'label_fontsize':'small', + ... 'label_rotation':30}) + >>> ax.set_xlabel("Party identification of respondent.") + >>> ax.set_ylabel("Age") + >>> plt.show() + + .. plot:: plots/graphics_boxplot_violinplot.py + + """ + fig, ax = utils.create_mpl_ax(ax) + + if positions is None: + positions = np.arange(len(data)) + 1 + + # Determine available horizontal space for each individual violin. + pos_span = np.max(positions) - np.min(positions) + width = np.min([0.15 * np.max([pos_span, 1.]), + plot_opts.get('violin_width', 0.8) / 2.]) + + # Plot violins. + for pos_data, pos in zip(data, positions): + xvals, violin = _single_violin(ax, pos, pos_data, width, side, + plot_opts) + + if show_boxplot: + ax.boxplot(data, notch=1, positions=positions, vert=1) + + # Set ticks and tick labels of horizontal axis. + _set_ticks_labels(ax, data, labels, positions, plot_opts) + + return fig + + +def _single_violin(ax, pos, pos_data, width, side, plot_opts): + """""" + + def _violin_range(pos_data, plot_opts): + """Return array with correct range, with which violins can be plotted.""" + cutoff = plot_opts.get('cutoff', False) + cutoff_type = plot_opts.get('cutoff_type', 'std') + cutoff_val = plot_opts.get('cutoff_val', 1.5) + + s = 0.0 + if not cutoff: + if cutoff_type == 'std': + s = cutoff_val * np.std(pos_data) + else: + s = cutoff_val + + x_lower = kde.dataset.min() - s + x_upper = kde.dataset.max() + s + return np.linspace(x_lower, x_upper, 100) + + pos_data = np.asarray(pos_data) + # Kernel density estimate for data at this position. + kde = gaussian_kde(pos_data) + + # Create violin for pos, scaled to the available space. + xvals = _violin_range(pos_data, plot_opts) + violin = kde.evaluate(xvals) + violin = width * violin / violin.max() + + if side == 'both': + envelope_l, envelope_r = (-violin + pos, violin + pos) + elif side == 'right': + envelope_l, envelope_r = (pos, violin + pos) + elif side == 'left': + envelope_l, envelope_r = (-violin + pos, pos) + else: + msg = "`side` parameter should be one of {'left', 'right', 'both'}." + raise ValueError(msg) + + # Draw the violin. + ax.fill_betweenx(xvals, envelope_l, envelope_r, + facecolor=plot_opts.get('violin_fc', '#66c2a5'), + edgecolor=plot_opts.get('violin_ec', 'k'), + lw=plot_opts.get('violin_lw', 1), + alpha=plot_opts.get('violin_alpha', 0.5)) + + return xvals, violin + + +def _set_ticks_labels(ax, data, labels, positions, plot_opts): + """Set ticks and labels on horizontal axis.""" + + # Set xticks and limits. + ax.set_xlim([np.min(positions) - 0.5, np.max(positions) + 0.5]) + ax.set_xticks(positions) + + label_fontsize = plot_opts.get('label_fontsize') + label_rotation = plot_opts.get('label_rotation') + if label_fontsize or label_rotation: + from matplotlib.artist import setp + + if labels is not None: + if not len(labels) == len(data): + msg = "Length of `labels` should equal length of `data`." + raise ValueError(msg) + + xticknames = ax.set_xticklabels(labels) + if label_fontsize: + setp(xticknames, fontsize=label_fontsize) + + if label_rotation: + setp(xticknames, rotation=label_rotation) + + return + + +def beanplot(data, ax=None, labels=None, positions=None, side='both', + jitter=False, plot_opts={}): + """Make a bean plot of each dataset in the `data` sequence. + + A bean plot is a combination of a `violinplot` (kernel density estimate of + the probability density function per point) with a line-scatter plot of all + individual data points. + + Parameters + ---------- + data : sequence of ndarrays + Data arrays, one array per value in `positions`. + ax : Matplotlib AxesSubplot instance, optional + If given, this subplot is used to plot in instead of a new figure being + created. + labels : list of str, optional + Tick labels for the horizontal axis. If not given, integers + ``1..len(data)`` are used. + positions : array_like, optional + Position array, used as the horizontal axis of the plot. If not given, + spacing of the violins will be equidistant. + side : {'both', 'left', 'right'}, optional + How to plot the violin. Default is 'both'. The 'left', 'right' + options can be used to create asymmetric violin plots. + jitter : bool, optional + If True, jitter markers within violin instead of plotting regular lines + around the center. This can be useful if the data is very dense. + plot_opts : dict, optional + A dictionary with plotting options. All the options for `violinplot` + can be specified, they will simply be passed to `violinplot`. Options + specific to `beanplot` are: + + - 'violin_width' : float. Relative width of violins. Max available + space is 1, default is 0.8. + - 'bean_color', MPL color. Color of bean plot lines. Default is 'k'. + Also used for jitter marker edge color if `jitter` is True. + - 'bean_size', scalar. Line length as a fraction of maximum length. + Default is 0.5. + - 'bean_lw', scalar. Linewidth, default is 0.5. + - 'bean_show_mean', bool. If True (default), show mean as a line. + - 'bean_show_median', bool. If True (default), show median as a + marker. + - 'bean_mean_color', MPL color. Color of mean line. Default is 'b'. + - 'bean_mean_lw', scalar. Linewidth of mean line, default is 2. + - 'bean_mean_size', scalar. Line length as a fraction of maximum length. + Default is 0.5. + - 'bean_median_color', MPL color. Color of median marker. Default + is 'r'. + - 'bean_median_marker', MPL marker. Marker type, default is '+'. + - 'jitter_marker', MPL marker. Marker type for ``jitter=True``. + Default is 'o'. + - 'jitter_marker_size', int. Marker size. Default is 4. + - 'jitter_fc', MPL color. Jitter marker face color. Default is None. + - 'bean_legend_text', str. If given, add a legend with given text. + + Returns + ------- + fig : Matplotlib figure instance + If `ax` is None, the created figure. Otherwise the figure to which + `ax` is connected. + + See Also + -------- + violinplot : Violin plot, also used internally in `beanplot`. + matplotlib.pyplot.boxplot : Standard boxplot. + + References + ---------- + P. Kampstra, "Beanplot: A Boxplot Alternative for Visual Comparison of + Distributions", J. Stat. Soft., Vol. 28, pp. 1-9, 2008. + + Examples + -------- + We use the American National Election Survey 1996 dataset, which has Party + Identification of respondents as independent variable and (among other + data) age as dependent variable. + + >>> data = sm.datasets.anes96.load_pandas() + >>> party_ID = np.arange(7) + >>> labels = ["Strong Democrat", "Weak Democrat", "Independent-Democrat", + ... "Independent-Indpendent", "Independent-Republican", + ... "Weak Republican", "Strong Republican"] + + Group age by party ID, and create a violin plot with it: + + >>> plt.rcParams['figure.subplot.bottom'] = 0.23 # keep labels visible + >>> age = [data.exog['age'][data.endog == id] for id in party_ID] + >>> fig = plt.figure() + >>> ax = fig.add_subplot(111) + >>> sm.graphics.beanplot(age, ax=ax, labels=labels, + ... plot_opts={'cutoff_val':5, 'cutoff_type':'abs', + ... 'label_fontsize':'small', + ... 'label_rotation':30}) + >>> ax.set_xlabel("Party identification of respondent.") + >>> ax.set_ylabel("Age") + >>> plt.show() + + .. plot:: plots/graphics_boxplot_beanplot.py + + """ + fig, ax = utils.create_mpl_ax(ax) + + if positions is None: + positions = np.arange(len(data)) + 1 + + # Determine available horizontal space for each individual violin. + pos_span = np.max(positions) - np.min(positions) + violin_width = np.min([0.15 * np.max([pos_span, 1.]), + plot_opts.get('violin_width', 0.8) / 2.]) + bean_width = np.min([0.15 * np.max([pos_span, 1.]), + plot_opts.get('bean_size', 0.5) / 2.]) + bean_mean_width = np.min([0.15 * np.max([pos_span, 1.]), + plot_opts.get('bean_mean_size', 0.5) / 2.]) + + legend_txt = plot_opts.get('bean_legend_text', None) + for pos_data, pos in zip(data, positions): + # Draw violins. + xvals, violin = _single_violin(ax, pos, pos_data, violin_width, side, plot_opts) + + if jitter: + # Draw data points at random coordinates within violin envelope. + jitter_coord = pos + _jitter_envelope(pos_data, xvals, violin, side) + ax.plot(jitter_coord, pos_data, ls='', + marker=plot_opts.get('jitter_marker', 'o'), + ms=plot_opts.get('jitter_marker_size', 4), + mec=plot_opts.get('bean_color', 'k'), + mew=1, mfc=plot_opts.get('jitter_fc', 'none'), + label=legend_txt) + else: + # Draw bean lines. + ax.hlines(pos_data, pos - bean_width, pos + bean_width, + lw=plot_opts.get('bean_lw', 0.5), + color=plot_opts.get('bean_color', 'k'), + label=legend_txt) + + # Show legend if required. + if legend_txt is not None: + _show_legend(ax) + legend_txt = None # ensure we get one entry per call to beanplot + + # Draw mean line. + if plot_opts.get('bean_show_mean', True): + ax.hlines(np.mean(pos_data), pos - bean_mean_width, pos + bean_mean_width, + lw=plot_opts.get('bean_mean_lw', 2.), + color=plot_opts.get('bean_mean_color', 'b')) + + # Draw median marker. + if plot_opts.get('bean_show_median', True): + ax.plot(pos, np.median(pos_data), + marker=plot_opts.get('bean_median_marker', '+'), + color=plot_opts.get('bean_median_color', 'r')) + + # Set ticks and tick labels of horizontal axis. + _set_ticks_labels(ax, data, labels, positions, plot_opts) + + return fig + + +def _jitter_envelope(pos_data, xvals, violin, side): + """Determine envelope for jitter markers.""" + if side == 'both': + low, high = (-1., 1.) + elif side == 'right': + low, high = (0, 1.) + elif side == 'left': + low, high = (-1., 0) + else: + raise ValueError("`side` input incorrect: %s" % side) + + jitter_envelope = np.interp(pos_data, xvals, violin) + jitter_coord = jitter_envelope * np.random.uniform(low=low, high=high, + size=pos_data.size) + + return jitter_coord + + +def _show_legend(ax): + """Utility function to show legend.""" + leg = ax.legend(loc=1, shadow=True, fancybox=True, labelspacing=0.2, + borderpad=0.15) + ltext = leg.get_texts() + llines = leg.get_lines() + frame = leg.get_frame() + + from matplotlib.artist import setp + setp(ltext, fontsize='small') + setp(llines, linewidth=1) diff --git a/statsmodels/graphics/correlation.py b/statsmodels/graphics/correlation.py new file mode 100644 index 0000000..6e9a176 --- /dev/null +++ b/statsmodels/graphics/correlation.py @@ -0,0 +1,219 @@ +'''correlation plots + +Author: Josef Perktold +License: BSD-3 + +example for usage with different options in +statsmodels\sandbox\examples\thirdparty\ex_ratereturn.py + +''' +import numpy as np + +from . import utils + + +def plot_corr(dcorr, xnames=None, ynames=None, title=None, normcolor=False, + ax=None, cmap='RdYlBu_r'): + """Plot correlation of many variables in a tight color grid. + + Parameters + ---------- + dcorr : ndarray + Correlation matrix, square 2-D array. + xnames : list of str, optional + Labels for the horizontal axis. If not given (None), then the + matplotlib defaults (integers) are used. If it is an empty list, [], + then no ticks and labels are added. + ynames : list of str, optional + Labels for the vertical axis. Works the same way as `xnames`. + If not given, the same names as for `xnames` are re-used. + title : str, optional + The figure title. If None, the default ('Correlation Matrix') is used. + If ``title=''``, then no title is added. + normcolor : bool or tuple of scalars, optional + If False (default), then the color coding range corresponds to the + range of `dcorr`. If True, then the color range is normalized to + (-1, 1). If this is a tuple of two numbers, then they define the range + for the color bar. + ax : Matplotlib AxesSubplot instance, optional + If `ax` is None, then a figure is created. If an axis instance is + given, then only the main plot but not the colorbar is created. + cmap : str or Matplotlib Colormap instance, optional + The colormap for the plot. Can be any valid Matplotlib Colormap + instance or name. + + Returns + ------- + fig : Matplotlib figure instance + If `ax` is None, the created figure. Otherwise the figure to which + `ax` is connected. + + Examples + -------- + >>> import numpy as np + >>> import matplotlib.pyplot as plt + >>> import statsmodels.graphics.api as smg + + >>> hie_data = sm.datasets.randhie.load_pandas() + >>> corr_matrix = np.corrcoef(hie_data.data.T) + >>> smg.plot_corr(corr_matrix, xnames=hie_data.names) + >>> plt.show() + + """ + if ax is None: + create_colorbar = True + else: + create_colorbar = False + + fig, ax = utils.create_mpl_ax(ax) + import matplotlib as mpl + from matplotlib import cm + + nvars = dcorr.shape[0] + + if ynames is None: + ynames = xnames + if title is None: + title = 'Correlation Matrix' + if isinstance(normcolor, tuple): + vmin, vmax = normcolor + elif normcolor: + vmin, vmax = -1.0, 1.0 + else: + vmin, vmax = None, None + + axim = ax.imshow(dcorr, cmap=cmap, interpolation='nearest', + extent=(0,nvars,0,nvars), vmin=vmin, vmax=vmax) + + # create list of label positions + labelPos = np.arange(0, nvars) + 0.5 + + if not ynames is None: + ax.set_yticks(labelPos) + ax.set_yticks(labelPos[:-1]+0.5, minor=True) + ax.set_yticklabels(ynames[::-1], fontsize='small', + horizontalalignment='right') + elif ynames == []: + ax.set_yticks([]) + + if not xnames is None: + ax.set_xticks(labelPos) + ax.set_xticks(labelPos[:-1]+0.5, minor=True) + ax.set_xticklabels(xnames, fontsize='small', rotation=45, + horizontalalignment='right') + elif xnames == []: + ax.set_xticks([]) + + if not title == '': + ax.set_title(title) + + if create_colorbar: + fig.colorbar(axim, use_gridspec=True) + fig.tight_layout() + + ax.tick_params(which='minor', length=0) + ax.tick_params(direction='out', top=False, right=False) + try: + ax.grid(True, which='minor', linestyle='-', color='w', lw=1) + except AttributeError: + # Seems to fail for axes created with AxesGrid. MPL bug? + pass + + return fig + + +def plot_corr_grid(dcorrs, titles=None, ncols=None, normcolor=False, xnames=None, + ynames=None, fig=None, cmap='RdYlBu_r'): + """Create a grid of correlation plots. + + The individual correlation plots are assumed to all have the same + variables, axis labels can be specified only once. + + Parameters + ---------- + dcorrs : list or iterable of ndarrays + List of correlation matrices. + titles : list of str, optional + List of titles for the subplots. By default no title are shown. + ncols : int, optional + Number of columns in the subplot grid. If not given, the number of + columns is determined automatically. + normcolor : bool or tuple, optional + If False (default), then the color coding range corresponds to the + range of `dcorr`. If True, then the color range is normalized to + (-1, 1). If this is a tuple of two numbers, then they define the range + for the color bar. + xnames : list of str, optional + Labels for the horizontal axis. If not given (None), then the + matplotlib defaults (integers) are used. If it is an empty list, [], + then no ticks and labels are added. + ynames : list of str, optional + Labels for the vertical axis. Works the same way as `xnames`. + If not given, the same names as for `xnames` are re-used. + fig : Matplotlib figure instance, optional + If given, this figure is simply returned. Otherwise a new figure is + created. + cmap : str or Matplotlib Colormap instance, optional + The colormap for the plot. Can be any valid Matplotlib Colormap + instance or name. + + Returns + ------- + fig : Matplotlib figure instance + If `ax` is None, the created figure. Otherwise the figure to which + `ax` is connected. + + Examples + -------- + >>> import numpy as np + >>> import matplotlib.pyplot as plt + >>> import statsmodels.api as sm + + In this example we just reuse the same correlation matrix several times. + Of course in reality one would show a different correlation (measuring a + another type of correlation, for example Pearson (linear) and Spearman, + Kendall (nonlinear) correlations) for the same variables. + + >>> hie_data = sm.datasets.randhie.load_pandas() + >>> corr_matrix = np.corrcoef(hie_data.data.T) + >>> sm.graphics.plot_corr_grid([corr_matrix] * 8, xnames=hie_data.names) + >>> plt.show() + + """ + if ynames is None: + ynames = xnames + + if not titles: + titles = ['']*len(dcorrs) + + n_plots = len(dcorrs) + if ncols is not None: + nrows = int(np.ceil(n_plots / float(ncols))) + else: + # Determine number of rows and columns, square if possible, otherwise + # prefer a wide (more columns) over a high layout. + if n_plots < 4: + nrows, ncols = 1, n_plots + else: + nrows = int(np.sqrt(n_plots)) + ncols = int(np.ceil(n_plots / float(nrows))) + + # Create a figure with the correct size + aspect = min(ncols / float(nrows), 1.8) + vsize = np.sqrt(nrows) * 5 + fig = utils.create_mpl_fig(fig, figsize=(vsize * aspect + 1, vsize)) + + for i, c in enumerate(dcorrs): + ax = fig.add_subplot(nrows, ncols, i+1) + # Ensure to only plot labels on bottom row and left column + _xnames = xnames if nrows * ncols - (i+1) < ncols else [] + _ynames = ynames if (i+1) % ncols == 1 else [] + plot_corr(c, xnames=_xnames, ynames=_ynames, title=titles[i], + normcolor=normcolor, ax=ax, cmap=cmap) + + # Adjust figure margins and add a colorbar + fig.subplots_adjust(bottom=0.1, left=0.09, right=0.9, top=0.9) + cax = fig.add_axes([0.92, 0.1, 0.025, 0.8]) + fig.colorbar(fig.axes[0].images[0], cax=cax) + + return fig diff --git a/statsmodels/graphics/dotplots.py b/statsmodels/graphics/dotplots.py new file mode 100644 index 0000000..019bf12 --- /dev/null +++ b/statsmodels/graphics/dotplots.py @@ -0,0 +1,492 @@ +import numpy as np +from statsmodels.compat import range +from . import utils + + +def dot_plot(points, intervals=None, lines=None, sections=None, + styles=None, marker_props=None, line_props=None, + split_names=None, section_order=None, line_order=None, + stacked=False, styles_order=None, striped=False, + horizontal=True, show_names="both", + fmt_left_name=None, fmt_right_name=None, + show_section_titles=None, ax=None): + """ + Produce a dotplot similar in style to those in Cleveland's + "Visualizing Data" book. These are also known as "forest plots". + + Parameters + ---------- + points : array_like + The quantitative values to be plotted as markers. + intervals : array_like + The intervals to be plotted around the points. The elements + of `intervals` are either scalars or sequences of length 2. A + scalar indicates the half width of a symmetric interval. A + sequence of length 2 contains the left and right half-widths + (respectively) of a nonsymmetric interval. If None, no + intervals are drawn. + lines : array_like + A grouping variable indicating which points/intervals are + drawn on a common line. If None, each point/interval appears + on its own line. + sections : array_like + A grouping variable indicating which lines are grouped into + sections. If None, everything is drawn in a single section. + styles : array_like + A grouping label defining the plotting style of the markers + and intervals. + marker_props : dict + A dictionary mapping style codes (the values in `styles`) to + dictionaries defining key/value pairs to be passed as keyword + arguments to `plot` when plotting markers. Useful keyword + arguments are "color", "marker", and "ms" (marker size). + line_props : dict + A dictionary mapping style codes (the values in `styles`) to + dictionaries defining key/value pairs to be passed as keyword + arguments to `plot` when plotting interval lines. Useful + keyword arguments are "color", "linestyle", "solid_capstyle", + and "linewidth". + split_names : string + If not None, this is used to split the values of `lines` into + substrings that are drawn in the left and right margins, + respectively. If None, the values of `lines` are drawn in the + left margin. + section_order : array_like + The section labels in the order in which they appear in the + dotplot. + line_order : array_like + The line labels in the order in which they appear in the + dotplot. + stacked : boolean + If True, when multiple points or intervals are drawn on the + same line, they are offset from each other. + styles_order : array_like + If stacked=True, this is the order in which the point styles + on a given line are drawn from top to bottom (if horizontal + is True) or from left to right (if horiontal is False). If + None (default), the order is lexical. + striped : boolean + If True, every other line is enclosed in a shaded box. + horizontal : boolean + If True (default), the lines are drawn horizontally, otherwise + they are drawn vertically. + show_names : string + Determines whether labels (names) are shown in the left and/or + right margins (top/bottom margins if `horizontal` is True). + If `both`, labels are drawn in both margins, if 'left', labels + are drawn in the left or top margin. If `right`, labels are + drawn in the right or bottom margin. + fmt_left_name : function + The left/top margin names are passed through this function + before drawing on the plot. + fmt_right_name : function + The right/bottom marginnames are passed through this function + before drawing on the plot. + show_section_titles : bool or None + If None, section titles are drawn only if there is more than + one section. If False/True, section titles are never/always + drawn, respectively. + ax : matplotlib.axes + The axes on which the dotplot is drawn. If None, a new axes + is created. + + Returns + ------- + fig : Figure + The figure given by `ax.figure` or a new instance. + + Notes + ----- + `points`, `intervals`, `lines`, `sections`, `styles` must all have + the same length whenever present. + + Examples + -------- + This is a simple dotplot with one point per line: + >>> dot_plot(points=point_values) + + This dotplot has labels on the lines (if elements in + `label_values` are repeated, the corresponding points appear on + the same line): + >>> dot_plot(points=point_values, lines=label_values) + + References + ---------- + * Cleveland, William S. (1993). "Visualizing Data". Hobart + Press. + * Jacoby, William G. (2006) "The Dot Plot: A Graphical Display + for Labeled Quantitative Values." The Political Methodologist + 14(1): 6-14. + """ + + import matplotlib.transforms as transforms + + fig, ax = utils.create_mpl_ax(ax) + + # Convert to numpy arrays if that is not what we are given. + points = np.asarray(points) + asarray_or_none = lambda x : None if x is None else np.asarray(x) + intervals = asarray_or_none(intervals) + lines = asarray_or_none(lines) + sections = asarray_or_none(sections) + styles = asarray_or_none(styles) + + # Total number of points + npoint = len(points) + + # Set default line values if needed + if lines is None: + lines = np.arange(npoint) + + # Set default section values if needed + if sections is None: + sections = np.zeros(npoint) + + # Set default style values if needed + if styles is None: + styles = np.zeros(npoint) + + # The vertical space (in inches) for a section title + section_title_space = 0.5 + + # The number of sections + nsect = len(set(sections)) + if section_order is not None: + nsect = len(set(section_order)) + + # The number of section titles + if show_section_titles == False: + draw_section_titles = False + nsect_title = 0 + elif show_section_titles == True: + draw_section_titles = True + nsect_title = nsect + else: + draw_section_titles = nsect > 1 + nsect_title = nsect if nsect > 1 else 0 + + # The total vertical space devoted to section titles. + section_space_total = section_title_space * nsect_title + + # Add a bit of room so that points that fall at the axis limits + # are not cut in half. + ax.set_xmargin(0.02) + ax.set_ymargin(0.02) + + if section_order is None: + lines0 = list(set(sections)) + lines0.sort() + else: + lines0 = section_order + + if line_order is None: + lines1 = list(set(lines)) + lines1.sort() + else: + lines1 = line_order + + # A map from (section,line) codes to index positions. + lines_map = {} + for i in range(npoint): + if section_order is not None and sections[i] not in section_order: + continue + if line_order is not None and lines[i] not in line_order: + continue + ky = (sections[i], lines[i]) + if ky not in lines_map: + lines_map[ky] = [] + lines_map[ky].append(i) + + # Get the size of the axes on the parent figure in inches + bbox = ax.get_window_extent().transformed( + fig.dpi_scale_trans.inverted()) + awidth, aheight = bbox.width, bbox.height + + # The number of lines in the plot. + nrows = len(lines_map) + + # The positions of the lowest and highest guideline in axes + # coordinates (for horizontal dotplots), or the leftmost and + # rightmost guidelines (for vertical dotplots). + bottom, top = 0, 1 + + if horizontal: + # x coordinate is data, y coordinate is axes + trans = transforms.blended_transform_factory(ax.transData, + ax.transAxes) + else: + # x coordinate is axes, y coordinate is data + trans = transforms.blended_transform_factory(ax.transAxes, + ax.transData) + + # Space used for a section title, in axes coordinates + title_space_axes = section_title_space / aheight + + # Space between lines + if horizontal: + dpos = (top - bottom - nsect_title*title_space_axes) /\ + float(nrows) + else: + dpos = (top - bottom) / float(nrows) + + # Determine the spacing for stacked points + if styles_order is not None: + style_codes = styles_order + else: + style_codes = list(set(styles)) + style_codes.sort() + # Order is top to bottom for horizontal plots, so need to + # flip. + if horizontal: + style_codes = style_codes[::-1] + # nval is the maximum number of points on one line. + nval = len(style_codes) + if nval > 1: + stackd = dpos / (2.5*(float(nval)-1)) + else: + stackd = 0. + + # Map from style code to its integer position + #style_codes_map = {x: style_codes.index(x) for x in style_codes} + # python 2.6 compat version: + style_codes_map = dict((x, style_codes.index(x)) for x in style_codes) + + # Setup default marker styles + colors = ["r", "g", "b", "y", "k", "purple", "orange"] + if marker_props is None: + #marker_props = {x: {} for x in style_codes} + # python 2.6 compat version: + marker_props = dict((x, {}) for x in style_codes) + for j in range(nval): + sc = style_codes[j] + if "color" not in marker_props[sc]: + marker_props[sc]["color"] = colors[j % len(colors)] + if "marker" not in marker_props[sc]: + marker_props[sc]["marker"] = "o" + if "ms" not in marker_props[sc]: + marker_props[sc]["ms"] = 10 if stackd == 0 else 6 + + # Setup default line styles + if line_props is None: + #line_props = {x: {} for x in style_codes} + # python 2.6 compat version: + line_props = dict((x, {}) for x in style_codes) + for j in range(nval): + sc = style_codes[j] + if "color" not in line_props[sc]: + line_props[sc]["color"] = "grey" + if "linewidth" not in line_props[sc]: + line_props[sc]["linewidth"] = 2 if stackd > 0 else 8 + + if horizontal: + # The vertical position of the first line. + pos = top - dpos/2 if nsect == 1 else top + else: + # The horizontal position of the first line. + pos = bottom + dpos/2 + + # Points that have already been labeled + labeled = set() + + # Positions of the y axis grid lines + ticks = [] + + # Loop through the sections + for k0 in lines0: + + # Draw a section title + if draw_section_titles: + + if horizontal: + + y0 = pos + dpos/2 if k0 == lines0[0] else pos + + ax.fill_between((0, 1), (y0,y0), + (pos-0.7*title_space_axes, + pos-0.7*title_space_axes), + color='darkgrey', + transform=ax.transAxes, + zorder=1) + + txt = ax.text(0.5, pos - 0.35*title_space_axes, k0, + horizontalalignment='center', + verticalalignment='center', + transform=ax.transAxes) + txt.set_fontweight("bold") + pos -= title_space_axes + + else: + + m = len([k for k in lines_map if k[0] == k0]) + + ax.fill_between((pos-dpos/2+0.01, + pos+(m-1)*dpos+dpos/2-0.01), + (1.01,1.01), (1.06,1.06), + color='darkgrey', + transform=ax.transAxes, + zorder=1, clip_on=False) + + txt = ax.text(pos + (m-1)*dpos/2, 1.02, k0, + horizontalalignment='center', + verticalalignment='bottom', + transform=ax.transAxes) + txt.set_fontweight("bold") + + jrow = 0 + for k1 in lines1: + + # No data to plot + if (k0, k1) not in lines_map: + continue + + # Draw the guideline + if horizontal: + ax.axhline(pos, color='grey') + else: + ax.axvline(pos, color='grey') + + # Set up the labels + if split_names is not None: + us = k1.split(split_names) + if len(us) >= 2: + left_label, right_label = us[0], us[1] + else: + left_label, right_label = k1, None + else: + left_label, right_label = k1, None + + if fmt_left_name is not None: + left_label = fmt_left_name(left_label) + + if fmt_right_name is not None: + right_label = fmt_right_name(right_label) + + # Draw the stripe + if striped and jrow % 2 == 0: + if horizontal: + ax.fill_between((0, 1), (pos-dpos/2, pos-dpos/2), + (pos+dpos/2, pos+dpos/2), + color='lightgrey', + transform=ax.transAxes, + zorder=0) + else: + ax.fill_between((pos-dpos/2, pos+dpos/2), + (0, 0), (1, 1), + color='lightgrey', + transform=ax.transAxes, + zorder=0) + + jrow += 1 + + # Draw the left margin label + if show_names.lower() in ("left", "both"): + if horizontal: + ax.text(-0.1/awidth, pos, left_label, + horizontalalignment="right", + verticalalignment='center', + transform=ax.transAxes, + family='monospace') + else: + ax.text(pos, -0.1/aheight, left_label, + horizontalalignment="center", + verticalalignment='top', + transform=ax.transAxes, + family='monospace') + + # Draw the right margin label + if show_names.lower() in ("right", "both"): + if right_label is not None: + if horizontal: + ax.text(1 + 0.1/awidth, pos, right_label, + horizontalalignment="left", + verticalalignment='center', + transform=ax.transAxes, + family='monospace') + else: + ax.text(pos, 1 + 0.1/aheight, right_label, + horizontalalignment="center", + verticalalignment='bottom', + transform=ax.transAxes, + family='monospace') + + # Save the vertical position so that we can place the + # tick marks + ticks.append(pos) + + # Loop over the points in one line + for ji,jp in enumerate(lines_map[(k0,k1)]): + + # Calculate the vertical offset + yo = 0 + if stacked: + yo = -dpos/5 + style_codes_map[styles[jp]]*stackd + + pt = points[jp] + + # Plot the interval + if intervals is not None: + + # Symmetric interval + if np.isscalar(intervals[jp]): + lcb, ucb = pt - intervals[jp],\ + pt + intervals[jp] + + # Nonsymmetric interval + else: + lcb, ucb = pt - intervals[jp][0],\ + pt + intervals[jp][1] + + # Draw the interval + if horizontal: + ax.plot([lcb, ucb], [pos+yo, pos+yo], '-', + transform=trans, + **line_props[styles[jp]]) + else: + ax.plot([pos+yo, pos+yo], [lcb, ucb], '-', + transform=trans, + **line_props[styles[jp]]) + + + # Plot the point + sl = styles[jp] + sll = sl if sl not in labeled else None + labeled.add(sl) + if horizontal: + ax.plot([pt,], [pos+yo,], ls='None', + transform=trans, label=sll, + **marker_props[sl]) + else: + ax.plot([pos+yo,], [pt,], ls='None', + transform=trans, label=sll, + **marker_props[sl]) + + if horizontal: + pos -= dpos + else: + pos += dpos + + # Set up the axis + if horizontal: + ax.xaxis.set_ticks_position("bottom") + ax.yaxis.set_ticks_position("none") + ax.set_yticklabels([]) + ax.spines['left'].set_color('none') + ax.spines['right'].set_color('none') + ax.spines['top'].set_color('none') + ax.spines['bottom'].set_position(('axes', -0.1/aheight)) + ax.set_ylim(0, 1) + ax.yaxis.set_ticks(ticks) + ax.autoscale_view(scaley=False, tight=True) + else: + ax.yaxis.set_ticks_position("left") + ax.xaxis.set_ticks_position("none") + ax.set_xticklabels([]) + ax.spines['bottom'].set_color('none') + ax.spines['right'].set_color('none') + ax.spines['top'].set_color('none') + ax.spines['left'].set_position(('axes', -0.1/awidth)) + ax.set_xlim(0, 1) + ax.xaxis.set_ticks(ticks) + ax.autoscale_view(scalex=False, tight=True) + + return fig diff --git a/statsmodels/graphics/factorplots.py b/statsmodels/graphics/factorplots.py new file mode 100644 index 0000000..c5a31be --- /dev/null +++ b/statsmodels/graphics/factorplots.py @@ -0,0 +1,200 @@ +# -*- coding: utf-8 -*- +""" +Authors: Josef Perktold, Skipper Seabold, Denis A. Engemann +""" +from statsmodels.compat.python import get_function_name, iterkeys, lrange, zip, iteritems +import numpy as np + +from statsmodels.graphics.plottools import rainbow +import statsmodels.graphics.utils as utils + + +def interaction_plot(x, trace, response, func=np.mean, ax=None, plottype='b', + xlabel=None, ylabel=None, colors=None, markers=None, + linestyles=None, legendloc='best', legendtitle=None, + **kwargs): + """ + Interaction plot for factor level statistics. + + Note. If categorial factors are supplied levels will be internally + recoded to integers. This ensures matplotlib compatiblity. + + uses pandas.DataFrame to calculate an `aggregate` statistic for each + level of the factor or group given by `trace`. + + Parameters + ---------- + x : array-like + The `x` factor levels constitute the x-axis. If a `pandas.Series` is + given its name will be used in `xlabel` if `xlabel` is None. + trace : array-like + The `trace` factor levels will be drawn as lines in the plot. + If `trace` is a `pandas.Series` its name will be used as the + `legendtitle` if `legendtitle` is None. + response : array-like + The reponse or dependent variable. If a `pandas.Series` is given + its name will be used in `ylabel` if `ylabel` is None. + func : function + Anything accepted by `pandas.DataFrame.aggregate`. This is applied to + the response variable grouped by the trace levels. + plottype : str {'line', 'scatter', 'both'}, optional + The type of plot to return. Can be 'l', 's', or 'b' + ax : axes, optional + Matplotlib axes instance + xlabel : str, optional + Label to use for `x`. Default is 'X'. If `x` is a `pandas.Series` it + will use the series names. + ylabel : str, optional + Label to use for `response`. Default is 'func of response'. If + `response` is a `pandas.Series` it will use the series names. + colors : list, optional + If given, must have length == number of levels in trace. + linestyles : list, optional + If given, must have length == number of levels in trace. + markers : list, optional + If given, must have length == number of lovels in trace + kwargs + These will be passed to the plot command used either plot or scatter. + If you want to control the overall plotting options, use kwargs. + + Returns + ------- + fig : Figure + The figure given by `ax.figure` or a new instance. + + Examples + -------- + >>> import numpy as np + >>> np.random.seed(12345) + >>> weight = np.random.randint(1,4,size=60) + >>> duration = np.random.randint(1,3,size=60) + >>> days = np.log(np.random.randint(1,30, size=60)) + >>> fig = interaction_plot(weight, duration, days, + ... colors=['red','blue'], markers=['D','^'], ms=10) + >>> import matplotlib.pyplot as plt + >>> plt.show() + + .. plot:: + + import numpy as np + from statsmodels.graphics.factorplots import interaction_plot + np.random.seed(12345) + weight = np.random.randint(1,4,size=60) + duration = np.random.randint(1,3,size=60) + days = np.log(np.random.randint(1,30, size=60)) + fig = interaction_plot(weight, duration, days, + colors=['red','blue'], markers=['D','^'], ms=10) + import matplotlib.pyplot as plt + #plt.show() + """ + + from pandas import DataFrame + fig, ax = utils.create_mpl_ax(ax) + + response_name = ylabel or getattr(response, 'name', 'response') + ylabel = '%s of %s' % (get_function_name(func), response_name) + xlabel = xlabel or getattr(x, 'name', 'X') + legendtitle = legendtitle or getattr(trace, 'name', 'Trace') + + ax.set_ylabel(ylabel) + ax.set_xlabel(xlabel) + + x_values = x_levels = None + if isinstance(x[0], str): + x_levels = [l for l in np.unique(x)] + x_values = lrange(len(x_levels)) + x = _recode(x, dict(zip(x_levels, x_values))) + + data = DataFrame(dict(x=x, trace=trace, response=response)) + plot_data = data.groupby(['trace', 'x']).aggregate(func).reset_index() + + # return data + # check plot args + n_trace = len(plot_data['trace'].unique()) + + linestyles = ['-'] * n_trace if linestyles is None else linestyles + markers = ['.'] * n_trace if markers is None else markers + colors = rainbow(n_trace) if colors is None else colors + + if len(linestyles) != n_trace: + raise ValueError("Must be a linestyle for each trace level") + if len(markers) != n_trace: + raise ValueError("Must be a marker for each trace level") + if len(colors) != n_trace: + raise ValueError("Must be a color for each trace level") + + if plottype == 'both' or plottype == 'b': + for i, (values, group) in enumerate(plot_data.groupby(['trace'])): + # trace label + label = str(group['trace'].values[0]) + ax.plot(group['x'], group['response'], color=colors[i], + marker=markers[i], label=label, + linestyle=linestyles[i], **kwargs) + elif plottype == 'line' or plottype == 'l': + for i, (values, group) in enumerate(plot_data.groupby(['trace'])): + # trace label + label = str(group['trace'].values[0]) + ax.plot(group['x'], group['response'], color=colors[i], + label=label, linestyle=linestyles[i], **kwargs) + elif plottype == 'scatter' or plottype == 's': + for i, (values, group) in enumerate(plot_data.groupby(['trace'])): + # trace label + label = str(group['trace'].values[0]) + ax.scatter(group['x'], group['response'], color=colors[i], + label=label, marker=markers[i], **kwargs) + + else: + raise ValueError("Plot type %s not understood" % plottype) + ax.legend(loc=legendloc, title=legendtitle) + ax.margins(.1) + + if all([x_levels, x_values]): + ax.set_xticks(x_values) + ax.set_xticklabels(x_levels) + return fig + + +def _recode(x, levels): + """ Recode categorial data to int factor. + + Parameters + ---------- + x : array-like + array like object supporting with numpy array methods of categorially + coded data. + levels : dict + mapping of labels to integer-codings + + Returns + ------- + out : instance numpy.ndarray + + """ + from pandas import Series + name = None + + if isinstance(x, Series): + name = x.name + x = x.values + + if x.dtype.type not in [np.str_, np.object_]: + raise ValueError('This is not a categorial factor.' + ' Array of str type required.') + + elif not isinstance(levels, dict): + raise ValueError('This is not a valid value for levels.' + ' Dict required.') + + elif not (np.unique(x) == np.unique(list(iterkeys(levels)))).all(): + raise ValueError('The levels do not match the array values.') + + else: + out = np.empty(x.shape[0], dtype=np.int) + for level, coding in iteritems(levels): + out[x == level] = coding + + if name: + out = Series(out) + out.name = name + + return out diff --git a/statsmodels/graphics/functional.py b/statsmodels/graphics/functional.py new file mode 100644 index 0000000..1fe01e2 --- /dev/null +++ b/statsmodels/graphics/functional.py @@ -0,0 +1,395 @@ +"""Module for functional boxplots.""" + +from statsmodels.compat.python import combinations, range +import numpy as np +from scipy import stats +from scipy.misc import factorial + +from . import utils + + +__all__ = ['fboxplot', 'rainbowplot', 'banddepth'] + + +def fboxplot(data, xdata=None, labels=None, depth=None, method='MBD', + wfactor=1.5, ax=None, plot_opts={}): + """Plot functional boxplot. + + A functional boxplot is the analog of a boxplot for functional data. + Functional data is any type of data that varies over a continuum, i.e. + curves, probabillity distributions, seasonal data, etc. + + The data is first ordered, the order statistic used here is `banddepth`. + Plotted are then the median curve, the envelope of the 50% central region, + the maximum non-outlying envelope and the outlier curves. + + Parameters + ---------- + data : sequence of ndarrays or 2-D ndarray + The vectors of functions to create a functional boxplot from. If a + sequence of 1-D arrays, these should all be the same size. + The first axis is the function index, the second axis the one along + which the function is defined. So ``data[0, :]`` is the first + functional curve. + xdata : ndarray, optional + The independent variable for the data. If not given, it is assumed to + be an array of integers 0..N with N the length of the vectors in + `data`. + labels : sequence of scalar or str, optional + The labels or identifiers of the curves in `data`. If given, outliers + are labeled in the plot. + depth : ndarray, optional + A 1-D array of band depths for `data`, or equivalent order statistic. + If not given, it will be calculated through `banddepth`. + method : {'MBD', 'BD2'}, optional + The method to use to calculate the band depth. Default is 'MBD'. + wfactor : float, optional + Factor by which the central 50% region is multiplied to find the outer + region (analog of "whiskers" of a classical boxplot). + ax : Matplotlib AxesSubplot instance, optional + If given, this subplot is used to plot in instead of a new figure being + created. + plot_opts : dict, optional + A dictionary with plotting options. Any of the following can be + provided, if not present in `plot_opts` the defaults will be used:: + + - 'cmap_outliers', a Matplotlib LinearSegmentedColormap instance. + - 'c_inner', valid MPL color. Color of the central 50% region + - 'c_outer', valid MPL color. Color of the non-outlying region + - 'c_median', valid MPL color. Color of the median. + - 'lw_outliers', scalar. Linewidth for drawing outlier curves. + - 'lw_median', scalar. Linewidth for drawing the median curve. + - 'draw_nonout', bool. If True, also draw non-outlying curves. + + Returns + ------- + fig : Matplotlib figure instance + If `ax` is None, the created figure. Otherwise the figure to which + `ax` is connected. + depth : ndarray + 1-D array containing the calculated band depths of the curves. + ix_depth : ndarray + 1-D array of indices needed to order curves (or `depth`) from most to + least central curve. + ix_outliers : ndarray + 1-D array of indices of outlying curves in `data`. + + See Also + -------- + banddepth, rainbowplot + + Notes + ----- + The median curve is the curve with the highest band depth. + + Outliers are defined as curves that fall outside the band created by + multiplying the central region by `wfactor`. Note that the range over + which they fall outside this band doesn't matter, a single data point + outside the band is enough. If the data is noisy, smoothing may therefore + be required. + + The non-outlying region is defined as the band made up of all the + non-outlying curves. + + References + ---------- + [1] Y. Sun and M.G. Genton, "Functional Boxplots", Journal of Computational + and Graphical Statistics, vol. 20, pp. 1-19, 2011. + [2] R.J. Hyndman and H.L. Shang, "Rainbow Plots, Bagplots, and Boxplots for + Functional Data", vol. 19, pp. 29-25, 2010. + + Examples + -------- + Load the El Nino dataset. Consists of 60 years worth of Pacific Ocean sea + surface temperature data. + + >>> import matplotlib.pyplot as plt + >>> import statsmodels.api as sm + >>> data = sm.datasets.elnino.load() + + Create a functional boxplot. We see that the years 1982-83 and 1997-98 are + outliers; these are the years where El Nino (a climate pattern + characterized by warming up of the sea surface and higher air pressures) + occurred with unusual intensity. + + >>> fig = plt.figure() + >>> ax = fig.add_subplot(111) + >>> res = sm.graphics.fboxplot(data.raw_data[:, 1:], wfactor=2.58, + ... labels=data.raw_data[:, 0].astype(int), + ... ax=ax) + + >>> ax.set_xlabel("Month of the year") + >>> ax.set_ylabel("Sea surface temperature (C)") + >>> ax.set_xticks(np.arange(13, step=3) - 1) + >>> ax.set_xticklabels(["", "Mar", "Jun", "Sep", "Dec"]) + >>> ax.set_xlim([-0.2, 11.2]) + + >>> plt.show() + + .. plot:: plots/graphics_functional_fboxplot.py + + """ + fig, ax = utils.create_mpl_ax(ax) + + if plot_opts.get('cmap_outliers') is None: + from matplotlib.cm import rainbow_r + plot_opts['cmap_outliers'] = rainbow_r + + data = np.asarray(data) + if xdata is None: + xdata = np.arange(data.shape[1]) + + # Calculate band depth if required. + if depth is None: + if method not in ['MBD', 'BD2']: + raise ValueError("Unknown value for parameter `method`.") + + depth = banddepth(data, method=method) + else: + if depth.size != data.shape[0]: + raise ValueError("Provided `depth` array is not of correct size.") + + # Inner area is 25%-75% region of band-depth ordered curves. + ix_depth = np.argsort(depth)[::-1] + median_curve = data[ix_depth[0], :] + ix_IQR = data.shape[0] // 2 + lower = data[ix_depth[0:ix_IQR], :].min(axis=0) + upper = data[ix_depth[0:ix_IQR], :].max(axis=0) + + # Determine region for outlier detection + inner_median = np.median(data[ix_depth[0:ix_IQR], :], axis=0) + lower_fence = inner_median - (inner_median - lower) * wfactor + upper_fence = inner_median + (upper - inner_median) * wfactor + + # Find outliers. + ix_outliers = [] + ix_nonout = [] + for ii in range(data.shape[0]): + if np.any(data[ii, :] > upper_fence) or np.any(data[ii, :] < lower_fence): + ix_outliers.append(ii) + else: + ix_nonout.append(ii) + + ix_outliers = np.asarray(ix_outliers) + + # Plot envelope of all non-outlying data + lower_nonout = data[ix_nonout, :].min(axis=0) + upper_nonout = data[ix_nonout, :].max(axis=0) + ax.fill_between(xdata, lower_nonout, upper_nonout, + color=plot_opts.get('c_outer', (0.75,0.75,0.75))) + + # Plot central 50% region + ax.fill_between(xdata, lower, upper, + color=plot_opts.get('c_inner', (0.5,0.5,0.5))) + + # Plot median curve + ax.plot(xdata, median_curve, color=plot_opts.get('c_median', 'k'), + lw=plot_opts.get('lw_median', 2)) + + # Plot outliers + cmap = plot_opts.get('cmap_outliers') + for ii, ix in enumerate(ix_outliers): + label = str(labels[ix]) if labels is not None else None + ax.plot(xdata, data[ix, :], + color=cmap(float(ii) / (len(ix_outliers)-1)), label=label, + lw=plot_opts.get('lw_outliers', 1)) + + if plot_opts.get('draw_nonout', False): + for ix in ix_nonout: + ax.plot(xdata, data[ix, :], 'k-', lw=0.5) + + if labels is not None: + ax.legend() + + return fig, depth, ix_depth, ix_outliers + + +def rainbowplot(data, xdata=None, depth=None, method='MBD', ax=None, + cmap=None): + """Create a rainbow plot for a set of curves. + + A rainbow plot contains line plots of all curves in the dataset, colored in + order of functional depth. The median curve is shown in black. + + Parameters + ---------- + data : sequence of ndarrays or 2-D ndarray + The vectors of functions to create a functional boxplot from. If a + sequence of 1-D arrays, these should all be the same size. + The first axis is the function index, the second axis the one along + which the function is defined. So ``data[0, :]`` is the first + functional curve. + xdata : ndarray, optional + The independent variable for the data. If not given, it is assumed to + be an array of integers 0..N with N the length of the vectors in + `data`. + depth : ndarray, optional + A 1-D array of band depths for `data`, or equivalent order statistic. + If not given, it will be calculated through `banddepth`. + method : {'MBD', 'BD2'}, optional + The method to use to calculate the band depth. Default is 'MBD'. + ax : Matplotlib AxesSubplot instance, optional + If given, this subplot is used to plot in instead of a new figure being + created. + cmap : Matplotlib LinearSegmentedColormap instance, optional + The colormap used to color curves with. Default is a rainbow colormap, + with red used for the most central and purple for the least central + curves. + + Returns + ------- + fig : Matplotlib figure instance + If `ax` is None, the created figure. Otherwise the figure to which + `ax` is connected. + + See Also + -------- + banddepth, fboxplot + + References + ---------- + [1] R.J. Hyndman and H.L. Shang, "Rainbow Plots, Bagplots, and Boxplots for + Functional Data", vol. 19, pp. 29-25, 2010. + + Examples + -------- + Load the El Nino dataset. Consists of 60 years worth of Pacific Ocean sea + surface temperature data. + + >>> import matplotlib.pyplot as plt + >>> import statsmodels.api as sm + >>> data = sm.datasets.elnino.load() + + Create a rainbow plot: + + >>> fig = plt.figure() + >>> ax = fig.add_subplot(111) + >>> res = sm.graphics.rainbowplot(data.raw_data[:, 1:], ax=ax) + + >>> ax.set_xlabel("Month of the year") + >>> ax.set_ylabel("Sea surface temperature (C)") + >>> ax.set_xticks(np.arange(13, step=3) - 1) + >>> ax.set_xticklabels(["", "Mar", "Jun", "Sep", "Dec"]) + >>> ax.set_xlim([-0.2, 11.2]) + >>> plt.show() + + .. plot:: plots/graphics_functional_rainbowplot.py + + """ + fig, ax = utils.create_mpl_ax(ax) + + if cmap is None: + from matplotlib.cm import rainbow_r + cmap = rainbow_r + + data = np.asarray(data) + if xdata is None: + xdata = np.arange(data.shape[1]) + + # Calculate band depth if required. + if depth is None: + if method not in ['MBD', 'BD2']: + raise ValueError("Unknown value for parameter `method`.") + + depth = banddepth(data, method=method) + else: + if depth.size != data.shape[0]: + raise ValueError("Provided `depth` array is not of correct size.") + + ix_depth = np.argsort(depth)[::-1] + + # Plot all curves, colored by depth + num_curves = data.shape[0] + for ii in range(num_curves): + ax.plot(xdata, data[ix_depth[ii], :], c=cmap(ii / (num_curves - 1.))) + + # Plot the median curve + median_curve = data[ix_depth[0], :] + ax.plot(xdata, median_curve, 'k-', lw=2) + + return fig + + +def banddepth(data, method='MBD'): + """Calculate the band depth for a set of functional curves. + + Band depth is an order statistic for functional data (see `fboxplot`), with + a higher band depth indicating larger "centrality". In analog to scalar + data, the functional curve with highest band depth is called the median + curve, and the band made up from the first N/2 of N curves is the 50% + central region. + + Parameters + ---------- + data : ndarray + The vectors of functions to create a functional boxplot from. + The first axis is the function index, the second axis the one along + which the function is defined. So ``data[0, :]`` is the first + functional curve. + method : {'MBD', 'BD2'}, optional + Whether to use the original band depth (with J=2) of [1]_ or the + modified band depth. See Notes for details. + + Returns + ------- + depth : ndarray + Depth values for functional curves. + + Notes + ----- + Functional band depth as an order statistic for functional data was + proposed in [1]_ and applied to functional boxplots and bagplots in [2]_. + + The method 'BD2' checks for each curve whether it lies completely inside + bands constructed from two curves. All permutations of two curves in the + set of curves are used, and the band depth is normalized to one. Due to + the complete curve having to fall within the band, this method yields a lot + of ties. + + The method 'MBD' is similar to 'BD2', but checks the fraction of the curve + falling within the bands. It therefore generates very few ties. + + References + ---------- + .. [1] S. Lopez-Pintado and J. Romo, "On the Concept of Depth for + Functional Data", Journal of the American Statistical Association, + vol. 104, pp. 718-734, 2009. + .. [2] Y. Sun and M.G. Genton, "Functional Boxplots", Journal of + Computational and Graphical Statistics, vol. 20, pp. 1-19, 2011. + + """ + def _band2(x1, x2, curve): + xb = np.vstack([x1, x2]) + if np.any(curve < xb.min(axis=0)) or np.any(curve > xb.max(axis=0)): + res = 0 + else: + res = 1 + + return res + + def _band_mod(x1, x2, curve): + xb = np.vstack([x1, x2]) + res = np.logical_and(curve >= xb.min(axis=0), + curve <= xb.max(axis=0)) + return np.sum(res) / float(res.size) + + if method == 'BD2': + band = _band2 + elif method == 'MBD': + band = _band_mod + else: + raise ValueError("Unknown input value for parameter `method`.") + + num = data.shape[0] + ix = np.arange(num) + depth = [] + for ii in range(num): + res = 0 + for ix1, ix2 in combinations(ix, 2): + res += band(data[ix1, :], data[ix2, :], data[ii, :]) + + # Normalize by number of combinations to get band depth + normfactor = factorial(num) / 2. / factorial(num - 2) + depth.append(float(res) / normfactor) + + return np.asarray(depth) diff --git a/statsmodels/graphics/gofplots.py b/statsmodels/graphics/gofplots.py new file mode 100644 index 0000000..d81a789 --- /dev/null +++ b/statsmodels/graphics/gofplots.py @@ -0,0 +1,743 @@ +from statsmodels.compat.python import lzip, string_types +import numpy as np +from scipy import stats +from statsmodels.regression.linear_model import OLS +from statsmodels.tools.tools import add_constant +from statsmodels.tools.decorators import (resettable_cache, + cache_readonly, + cache_writable) + +from . import utils + +__all__ = ['qqplot', 'qqplot_2samples', 'qqline', 'ProbPlot'] + +class ProbPlot(object): + """ + Class for convenient construction of Q-Q, P-P, and probability plots. + + Can take arguments specifying the parameters for dist or fit them + automatically. (See fit under kwargs.) + + Parameters + ---------- + data : array-like + 1d data array + dist : A scipy.stats or statsmodels distribution + Compare x against dist. The default is + scipy.stats.distributions.norm (a standard normal). + distargs : tuple + A tuple of arguments passed to dist to specify it fully + so dist.ppf may be called. + loc : float + Location parameter for dist + a : float + Offset for the plotting position of an expected order + statistic, for example. The plotting positions are given + by (i - a)/(nobs - 2*a + 1) for i in range(0,nobs+1) + scale : float + Scale parameter for dist + fit : boolean + If fit is false, loc, scale, and distargs are passed to the + distribution. If fit is True then the parameters for dist + are fit automatically using dist.fit. The quantiles are formed + from the standardized data, after subtracting the fitted loc + and dividing by the fitted scale. + + See Also + -------- + scipy.stats.probplot + + Notes + ----- + 1) Depends on matplotlib. + 2) If `fit` is True then the parameters are fit using the + distribution's `fit()` method. + 3) The call signatures for the `qqplot`, `ppplot`, and `probplot` + methods are similar, so examples 1 through 4 apply to all + three methods. + 4) The three plotting methods are summarized below: + ppplot : Probability-Probability plot + Compares the sample and theoretical probabilities (percentiles). + qqplot : Quantile-Quantile plot + Compares the sample and theoretical quantiles + probplot : Probability plot + Same as a Q-Q plot, however probabilities are shown in the scale of + the theoretical distribution (x-axis) and the y-axis contains + unscaled quantiles of the sample data. + + Examples + -------- + >>> import statsmodels.api as sm + >>> from matplotlib import pyplot as plt + + >>> # example 1 + >>> data = sm.datasets.longley.load() + >>> data.exog = sm.add_constant(data.exog) + >>> model = sm.OLS(data.endog, data.exog) + >>> mod_fit = model.fit() + >>> res = mod_fit.resid # residuals + >>> probplot = sm.ProbPlot(res) + >>> probplot.qqplot() + >>> plt.show() + + qqplot of the residuals against quantiles of t-distribution with 4 + degrees of freedom: + + >>> # example 2 + >>> import scipy.stats as stats + >>> probplot = sm.ProbPlot(res, stats.t, distargs=(4,)) + >>> fig = probplot.qqplot() + >>> plt.show() + + qqplot against same as above, but with mean 3 and std 10: + + >>> # example 3 + >>> probplot = sm.ProbPlot(res, stats.t, distargs=(4,), loc=3, scale=10) + >>> fig = probplot.qqplot() + >>> plt.show() + + Automatically determine parameters for t distribution including the + loc and scale: + + >>> # example 4 + >>> probplot = sm.ProbPlot(res, stats.t, fit=True) + >>> fig = probplot.qqplot(line='45') + >>> plt.show() + + A second `ProbPlot` object can be used to compare two seperate sample + sets by using the `other` kwarg in the `qqplot` and `ppplot` methods. + + >>> # example 5 + >>> import numpy as np + >>> x = np.random.normal(loc=8.25, scale=2.75, size=37) + >>> y = np.random.normal(loc=8.75, scale=3.25, size=37) + >>> pp_x = sm.ProbPlot(x, fit=True) + >>> pp_y = sm.ProbPlot(y, fit=True) + >>> fig = pp_x.qqplot(line='45', other=pp_y) + >>> plt.show() + + The following plot displays some options, follow the link to see the + code. + + .. plot:: plots/graphics_gofplots_qqplot.py + """ + + def __init__(self, data, dist=stats.norm, fit=False, + distargs=(), a=0, loc=0, scale=1): + + self.data = data + self.a = a + self.nobs = data.shape[0] + self.distargs = distargs + self.fit = fit + + if isinstance(dist, string_types): + dist = getattr(stats, dist) + + self.fit_params = dist.fit(data) + if fit: + self.loc = self.fit_params[-2] + self.scale = self.fit_params[-1] + if len(self.fit_params) > 2: + self.dist = dist(*self.fit_params[:-2], + **dict(loc = 0, scale = 1)) + else: + self.dist = dist(loc=0, scale=1) + elif distargs or loc == 0 or scale == 1: + self.dist = dist(*distargs, **dict(loc=loc, scale=scale)) + self.loc = loc + self.scale = scale + else: + self.dist = dist + self.loc = loc + self.scale = scale + + # propertes + self._cache = resettable_cache() + + @cache_readonly + def theoretical_percentiles(self): + return plotting_pos(self.nobs, self.a) + + @cache_readonly + def theoretical_quantiles(self): + try: + return self.dist.ppf(self.theoretical_percentiles) + except TypeError: + msg = '%s requires more parameters to ' \ + 'compute ppf'.format(self.dist.name,) + raise TypeError(msg) + except: + msg = 'failed to compute the ppf of {0}'.format(self.dist.name,) + raise + + @cache_readonly + def sorted_data(self): + sorted_data = np.array(self.data, copy=True) + sorted_data.sort() + return sorted_data + + @cache_readonly + def sample_quantiles(self): + if self.fit and self.loc != 0 and self.scale != 1: + return (self.sorted_data-self.loc)/self.scale + else: + return self.sorted_data + + @cache_readonly + def sample_percentiles(self): + quantiles = \ + (self.sorted_data - self.fit_params[-2])/self.fit_params[-1] + return self.dist.cdf(quantiles) + + def ppplot(self, xlabel=None, ylabel=None, line=None, other=None, + ax=None, **plotkwargs): + """ + P-P plot of the percentiles (probabilities) of x versus the + probabilities (percetiles) of a distribution. + + Parameters + ---------- + xlabel, ylabel : str or None, optional + User-provided lables for the x-axis and y-axis. If None (default), + other values are used depending on the status of the kwarg `other`. + line : str {'45', 's', 'r', q'} or None, optional + Options for the reference line to which the data is compared: + + - '45' - 45-degree line + - 's' - standardized line, the expected order statistics are scaled + by the standard deviation of the given sample and have the mean + added to them + - 'r' - A regression line is fit + - 'q' - A line is fit through the quartiles. + - None - by default no reference line is added to the plot. + + other : `ProbPlot` instance, array-like, or None, optional + If provided, the sample quantiles of this `ProbPlot` instance are + plotted against the sample quantiles of the `other` `ProbPlot` + instance. If an array-like object is provided, it will be turned + into a `ProbPlot` instance using default parameters. If not provided + (default), the theoretical quantiles are used. + ax : Matplotlib AxesSubplot instance, optional + If given, this subplot is used to plot in instead of a new figure + being created. + **plotkwargs : additional matplotlib arguments to be passed to the + `plot` command. + + Returns + ------- + fig : Matplotlib figure instance + If `ax` is None, the created figure. Otherwise the figure to which + `ax` is connected. + """ + if other is not None: + check_other = isinstance(other, ProbPlot) + if not check_other: + other = ProbPlot(other) + + fig, ax = _do_plot(other.sample_percentiles, + self.sample_percentiles, + self.dist, ax=ax, line=line, + **plotkwargs) + + if xlabel is None: + xlabel = 'Probabilities of 2nd Sample' + if ylabel is None: + ylabel = 'Probabilities of 1st Sample' + + else: + fig, ax = _do_plot(self.theoretical_percentiles, + self.sample_percentiles, + self.dist, ax=ax, line=line, + **plotkwargs) + if xlabel is None: + xlabel = "Theoretical Probabilities" + if ylabel is None: + ylabel = "Sample Probabilities" + + ax.set_xlabel(xlabel) + ax.set_ylabel(ylabel) + + ax.set_xlim([0.0, 1.0]) + ax.set_ylim([0.0, 1.0]) + + return fig + + def qqplot(self, xlabel=None, ylabel=None, line=None, other=None, + ax=None, **plotkwargs): + """ + Q-Q plot of the quantiles of x versus the quantiles/ppf of a + distribution or the quantiles of another `ProbPlot` instance. + + Parameters + ---------- + xlabel, ylabel : str or None, optional + User-provided lables for the x-axis and y-axis. If None (default), + other values are used depending on the status of the kwarg `other`. + line : str {'45', 's', 'r', q'} or None, optional + Options for the reference line to which the data is compared: + + - '45' - 45-degree line + - 's' - standardized line, the expected order statistics are scaled + by the standard deviation of the given sample and have the mean + added to them + - 'r' - A regression line is fit + - 'q' - A line is fit through the quartiles. + - None - by default no reference line is added to the plot. + + other : `ProbPlot` instance, array-like, or None, optional + If provided, the sample quantiles of this `ProbPlot` instance are + plotted against the sample quantiles of the `other` `ProbPlot` + instance. If an array-like object is provided, it will be turned + into a `ProbPlot` instance using default parameters. If not + provided (default), the theoretical quantiles are used. + ax : Matplotlib AxesSubplot instance, optional + If given, this subplot is used to plot in instead of a new figure + being created. + **plotkwargs : additional matplotlib arguments to be passed to the + `plot` command. + + Returns + ------- + fig : Matplotlib figure instance + If `ax` is None, the created figure. Otherwise the figure to which + `ax` is connected. + """ + if other is not None: + check_other = isinstance(other, ProbPlot) + if not check_other: + other = ProbPlot(other) + + fig, ax = _do_plot(other.sample_quantiles, + self.sample_quantiles, + self.dist, ax=ax, line=line, + **plotkwargs) + + if xlabel is None: + xlabel = 'Quantiles of 2nd Sample' + if ylabel is None: + ylabel = 'Quantiles of 1st Sample' + + else: + fig, ax = _do_plot(self.theoretical_quantiles, + self.sample_quantiles, + self.dist, ax=ax, line=line, + **plotkwargs) + if xlabel is None: + xlabel = "Theoretical Quantiles" + if ylabel is None: + ylabel = "Sample Quantiles" + + ax.set_xlabel(xlabel) + ax.set_ylabel(ylabel) + + return fig + + def probplot(self, xlabel=None, ylabel=None, line=None, + exceed=False, ax=None, **plotkwargs): + """ + Probability plot of the unscaled quantiles of x versus the + probabilities of a distibution (not to be confused with a P-P plot). + + The x-axis is scaled linearly with the quantiles, but the probabilities + are used to label the axis. + + Parameters + ---------- + xlabel, ylabel : str or None, optional + User-provided lables for the x-axis and y-axis. If None (default), + other values are used depending on the status of the kwarg `other`. + line : str {'45', 's', 'r', q'} or None, optional + Options for the reference line to which the data is compared: + + - '45' - 45-degree line + - 's' - standardized line, the expected order statistics are scaled + by the standard deviation of the given sample and have the mean + added to them + - 'r' - A regression line is fit + - 'q' - A line is fit through the quartiles. + - None - by default no reference line is added to the plot. + + exceed : boolean, optional + + - If False (default) the raw sample quantiles are plotted against + the theoretical quantiles, show the probability that a sample + will not exceed a given value + - If True, the theoretical quantiles are flipped such that the + figure displays the probability that a sample will exceed a + given value. + ax : Matplotlib AxesSubplot instance, optional + If given, this subplot is used to plot in instead of a new figure + being created. + **plotkwargs : additional matplotlib arguments to be passed to the + `plot` command. + + Returns + ------- + fig : Matplotlib figure instance + If `ax` is None, the created figure. Otherwise the figure to which + `ax` is connected. + """ + if exceed: + fig, ax = _do_plot(self.theoretical_quantiles[::-1], + self.sorted_data, + self.dist, ax=ax, line=line, + **plotkwargs) + if xlabel is None: + xlabel = 'Probability of Exceedance (%)' + + else: + fig, ax = _do_plot(self.theoretical_quantiles, + self.sorted_data, + self.dist, ax=ax, line=line, + **plotkwargs) + if xlabel is None: + xlabel = 'Non-exceedance Probability (%)' + + if ylabel is None: + ylabel = "Sample Quantiles" + + ax.set_xlabel(xlabel) + ax.set_ylabel(ylabel) + _fmt_probplot_axis(ax, self.dist, self.nobs) + + return fig + +def qqplot(data, dist=stats.norm, distargs=(), a=0, loc=0, scale=1, fit=False, + line=None, ax=None): + """ + Q-Q plot of the quantiles of x versus the quantiles/ppf of a distribution. + + Can take arguments specifying the parameters for dist or fit them + automatically. (See fit under Parameters.) + + Parameters + ---------- + data : array-like + 1d data array + dist : A scipy.stats or statsmodels distribution + Compare x against dist. The default + is scipy.stats.distributions.norm (a standard normal). + distargs : tuple + A tuple of arguments passed to dist to specify it fully + so dist.ppf may be called. + loc : float + Location parameter for dist + a : float + Offset for the plotting position of an expected order statistic, for + example. The plotting positions are given by (i - a)/(nobs - 2*a + 1) + for i in range(0,nobs+1) + scale : float + Scale parameter for dist + fit : boolean + If fit is false, loc, scale, and distargs are passed to the + distribution. If fit is True then the parameters for dist + are fit automatically using dist.fit. The quantiles are formed + from the standardized data, after subtracting the fitted loc + and dividing by the fitted scale. + line : str {'45', 's', 'r', q'} or None + Options for the reference line to which the data is compared: + + - '45' - 45-degree line + - 's' - standardized line, the expected order statistics are scaled + by the standard deviation of the given sample and have the mean + added to them + - 'r' - A regression line is fit + - 'q' - A line is fit through the quartiles. + - None - by default no reference line is added to the plot. + + ax : Matplotlib AxesSubplot instance, optional + If given, this subplot is used to plot in instead of a new figure being + created. + + Returns + ------- + fig : Matplotlib figure instance + If `ax` is None, the created figure. Otherwise the figure to which + `ax` is connected. + + See Also + -------- + scipy.stats.probplot + + Examples + -------- + >>> import statsmodels.api as sm + >>> from matplotlib import pyplot as plt + >>> data = sm.datasets.longley.load() + >>> data.exog = sm.add_constant(data.exog) + >>> mod_fit = sm.OLS(data.endog, data.exog).fit() + >>> res = mod_fit.resid # residuals + >>> fig = sm.qqplot(res) + >>> plt.show() + + qqplot of the residuals against quantiles of t-distribution with 4 degrees + of freedom: + + >>> import scipy.stats as stats + >>> fig = sm.qqplot(res, stats.t, distargs=(4,)) + >>> plt.show() + + qqplot against same as above, but with mean 3 and std 10: + + >>> fig = sm.qqplot(res, stats.t, distargs=(4,), loc=3, scale=10) + >>> plt.show() + + Automatically determine parameters for t distribution including the + loc and scale: + + >>> fig = sm.qqplot(res, stats.t, fit=True, line='45') + >>> plt.show() + + The following plot displays some options, follow the link to see the code. + + .. plot:: plots/graphics_gofplots_qqplot.py + + Notes + ----- + Depends on matplotlib. If `fit` is True then the parameters are fit using + the distribution's fit() method. + + """ + probplot = ProbPlot(data, dist=dist, distargs=distargs, + fit=fit, a=a, loc=loc, scale=scale) + fig = probplot.qqplot(ax=ax, line=line) + return fig + +def qqplot_2samples(data1, data2, xlabel=None, ylabel=None, line=None, ax=None): + """ + Q-Q Plot of two samples' quantiles. + + Can take either two `ProbPlot` instances or two array-like objects. In the + case of the latter, both inputs will be converted to `ProbPlot` instances + using only the default values - so use `ProbPlot` instances if + finer-grained control of the quantile computations is required. + + Parameters + ---------- + data1, data2 : array-like (1d) or `ProbPlot` instances + xlabel, ylabel : str or None + User-provided labels for the x-axis and y-axis. If None (default), + other values are used. + line : str {'45', 's', 'r', q'} or None + Options for the reference line to which the data is compared: + + - '45' - 45-degree line + - 's' - standardized line, the expected order statistics are scaled + by the standard deviation of the given sample and have the mean + added to them + - 'r' - A regression line is fit + - 'q' - A line is fit through the quartiles. + - None - by default no reference line is added to the plot. + + ax : Matplotlib AxesSubplot instance, optional + If given, this subplot is used to plot in instead of a new figure being + created. + + Returns + ------- + fig : Matplotlib figure instance + If `ax` is None, the created figure. Otherwise the figure to which + `ax` is connected. + + See Also + -------- + scipy.stats.probplot + + Examples + -------- + >>> x = np.random.normal(loc=8.5, scale=2.5, size=37) + >>> y = np.random.normal(loc=8.0, scale=3.0, size=37) + >>> pp_x = sm.ProbPlot(x) + >>> pp_y = sm.ProbPlot(y) + >>> qqplot_2samples(data1, data2, xlabel=None, ylabel=None, line=None, ax=None): + + Notes + ----- + 1) Depends on matplotlib. + 2) If `data1` and `data2` are not `ProbPlot` instances, instances will be + created using the default parameters. Therefore, it is recommended to use + `ProbPlot` instance if fine-grained control is needed in the computation + of the quantiles. + + """ + check_data1 = isinstance(data1, ProbPlot) + check_data2 = isinstance(data2, ProbPlot) + + if not check_data1 and not check_data2: + data1 = ProbPlot(data1) + data2 = ProbPlot(data2) + + fig = data1.qqplot(xlabel=xlabel, ylabel=ylabel, + line=line, other=data2, ax=ax) + + return fig + +def qqline(ax, line, x=None, y=None, dist=None, fmt='r-'): + """ + Plot a reference line for a qqplot. + + Parameters + ---------- + ax : matplotlib axes instance + The axes on which to plot the line + line : str {'45','r','s','q'} + Options for the reference line to which the data is compared.: + + - '45' - 45-degree line + - 's' - standardized line, the expected order statistics are scaled by + the standard deviation of the given sample and have the mean + added to them + - 'r' - A regression line is fit + - 'q' - A line is fit through the quartiles. + - None - By default no reference line is added to the plot. + + x : array + X data for plot. Not needed if line is '45'. + y : array + Y data for plot. Not needed if line is '45'. + dist : scipy.stats.distribution + A scipy.stats distribution, needed if line is 'q'. + + Notes + ----- + There is no return value. The line is plotted on the given `ax`. + """ + if line == '45': + end_pts = lzip(ax.get_xlim(), ax.get_ylim()) + end_pts[0] = min(end_pts[0]) + end_pts[1] = max(end_pts[1]) + ax.plot(end_pts, end_pts, fmt) + ax.set_xlim(end_pts) + ax.set_ylim(end_pts) + return # does this have any side effects? + if x is None and y is None: + raise ValueError("If line is not 45, x and y cannot be None.") + elif line == 'r': + # could use ax.lines[0].get_xdata(), get_ydata(), + # but don't know axes are 'clean' + y = OLS(y, add_constant(x)).fit().fittedvalues + ax.plot(x,y,fmt) + elif line == 's': + m,b = y.std(), y.mean() + ref_line = x*m + b + ax.plot(x, ref_line, fmt) + elif line == 'q': + _check_for_ppf(dist) + q25 = stats.scoreatpercentile(y, 25) + q75 = stats.scoreatpercentile(y, 75) + theoretical_quartiles = dist.ppf([0.25, 0.75]) + m = (q75 - q25) / np.diff(theoretical_quartiles) + b = q25 - m*theoretical_quartiles[0] + ax.plot(x, m*x + b, fmt) + + +#about 10x faster than plotting_position in sandbox and mstats +def plotting_pos(nobs, a): + """ + Generates sequence of plotting positions + + Parameters + ---------- + nobs : int + Number of probability points to plot + a : float + Offset for the plotting position of an expected order statistic, for + example. + + Returns + ------- + plotting_positions : array + The plotting positions + + Notes + ----- + The plotting positions are given by (i - a)/(nobs - 2*a + 1) for i in + range(0,nobs+1) + + See also + -------- + scipy.stats.mstats.plotting_positions + """ + return (np.arange(1.,nobs+1) - a)/(nobs- 2*a + 1) + +def _fmt_probplot_axis(ax, dist, nobs): + """ + Formats a theoretical quantile axis to display the corresponding + probabilities on the quantiles' scale. + + Parameteters + ------------ + ax : Matplotlib AxesSubplot instance, optional + The axis to be formatted + nobs : scalar + Numbero of observations in the sample + dist : scipy.stats.distribution + A scipy.stats distribution sufficiently specified to impletment its + ppf() method. + + Returns + ------- + There is no return value. This operates on `ax` in place + """ + _check_for_ppf(dist) + if nobs < 50: + axis_probs = np.array([1,2,5,10,20,30,40,50,60, + 70,80,90,95,98,99,])/100.0 + elif nobs < 500: + axis_probs = np.array([0.1,0.2,0.5,1,2,5,10,20,30,40,50,60,70, + 80,90,95,98,99,99.5,99.8,99.9])/100.0 + else: + axis_probs = np.array([0.01,0.02,0.05,0.1,0.2,0.5,1,2,5,10, + 20,30,40,50,60,70,80,90,95,98,99,99.5, + 99.8,99.9,99.95,99.98,99.99])/100.0 + axis_qntls = dist.ppf(axis_probs) + ax.set_xticks(axis_qntls) + ax.set_xticklabels(axis_probs*100, rotation=45, + rotation_mode='anchor', + horizontalalignment='right', + verticalalignment='center') + ax.set_xlim([axis_qntls.min(), axis_qntls.max()]) + +def _do_plot(x, y, dist=None, line=False, ax=None, fmt='bo', **kwargs): + """ + Boiler plate plotting function for the `ppplot`, `qqplot`, and + `probplot` methods of the `ProbPlot` class + + Parameteters + ------------ + x, y : array-like + Data to be plotted + dist : scipy.stats.distribution + A scipy.stats distribution, needed if `line` is 'q'. + line : str {'45', 's', 'r', q'} or None + Options for the reference line to which the data is compared. + ax : Matplotlib AxesSubplot instance, optional + If given, this subplot is used to plot in instead of a new figure being + created. + fmt : str, optional + matplotlib-compatible formatting string for the data markers + kwargs : keywords + These are passed to matplotlib.plot + + Returns + ------- + fig : Matplotlib Figure instance + ax : Matplotlib AxesSubplot instance (see Parameters) + + """ + fig, ax = utils.create_mpl_ax(ax) + ax.set_xmargin(0.02) + ax.plot(x, y, fmt, **kwargs) + if line: + if line not in ['r','q','45','s']: + msg = "%s option for line not understood" % line + raise ValueError(msg) + + qqline(ax, line, x=x, y=y, dist=dist) + + return fig, ax + +def _check_for_ppf(dist): + if not hasattr(dist, 'ppf'): + raise ValueError("distribution must have a ppf method") diff --git a/statsmodels/graphics/mosaicplot.py b/statsmodels/graphics/mosaicplot.py new file mode 100644 index 0000000..ab99fdb --- /dev/null +++ b/statsmodels/graphics/mosaicplot.py @@ -0,0 +1,658 @@ +"""Create a mosaic plot from a contingency table. + +It allows to visualize multivariate categorical data in a rigorous +and informative way. + +see the docstring of the mosaic function for more informations. +""" +# Author: Enrico Giampieri - 21 Jan 2013 + +from __future__ import division +from statsmodels.compat.python import (iteritems, iterkeys, lrange, string_types, lzip, + itervalues, zip, range) +import numpy as np +from statsmodels.compat.collections import OrderedDict +from itertools import product + +from numpy import iterable, r_, cumsum, array +from statsmodels.graphics import utils +from pandas import DataFrame + +__all__ = ["mosaic"] + + +def _normalize_split(proportion): + """ + return a list of proportions of the available space given the division + if only a number is given, it will assume a split in two pieces + """ + if not iterable(proportion): + if proportion == 0: + proportion = array([0.0, 1.0]) + elif proportion >= 1: + proportion = array([1.0, 0.0]) + elif proportion < 0: + raise ValueError("proportions should be positive," + "given value: {}".format(proportion)) + else: + proportion = array([proportion, 1.0 - proportion]) + proportion = np.asarray(proportion, dtype=float) + if np.any(proportion < 0): + raise ValueError("proportions should be positive," + "given value: {}".format(proportion)) + if np.allclose(proportion, 0): + raise ValueError("at least one proportion should be " + "greater than zero".format(proportion)) + # ok, data are meaningful, so go on + if len(proportion) < 2: + return array([0.0, 1.0]) + left = r_[0, cumsum(proportion)] + left /= left[-1] * 1.0 + return left + + +def _split_rect(x, y, width, height, proportion, horizontal=True, gap=0.05): + """ + Split the given rectangle in n segments whose proportion is specified + along the given axis if a gap is inserted, they will be separated by a + certain amount of space, retaining the relative proportion between them + a gap of 1 correspond to a plot that is half void and the remaining half + space is proportionally divided among the pieces. + """ + x, y, w, h = float(x), float(y), float(width), float(height) + if (w < 0) or (h < 0): + raise ValueError("dimension of the square less than" + "zero w={} h=()".format(w, h)) + proportions = _normalize_split(proportion) + + # extract the starting point and the dimension of each subdivision + # in respect to the unit square + starting = proportions[:-1] + amplitude = proportions[1:] - starting + + # how much each extrema is going to be displaced due to gaps + starting += gap * np.arange(len(proportions) - 1) + + # how much the squares plus the gaps are extended + extension = starting[-1] + amplitude[-1] - starting[0] + + # normalize everything for fit again in the original dimension + starting /= extension + amplitude /= extension + + # bring everything to the original square + starting = (x if horizontal else y) + starting * (w if horizontal else h) + amplitude = amplitude * (w if horizontal else h) + + # create each 4-tuple for each new block + results = [(s, y, a, h) if horizontal else (x, s, w, a) + for s, a in zip(starting, amplitude)] + return results + + +def _reduce_dict(count_dict, partial_key): + """ + Make partial sum on a counter dict. + Given a match for the beginning of the category, it will sum each value. + """ + L = len(partial_key) + count = sum(v for k, v in iteritems(count_dict) if k[:L] == partial_key) + return count + + +def _key_splitting(rect_dict, keys, values, key_subset, horizontal, gap): + """ + Given a dictionary where each entry is a rectangle, a list of key and + value (count of elements in each category) it split each rect accordingly, + as long as the key start with the tuple key_subset. The other keys are + returned without modification. + """ + result = OrderedDict() + L = len(key_subset) + for name, (x, y, w, h) in iteritems(rect_dict): + if key_subset == name[:L]: + # split base on the values given + divisions = _split_rect(x, y, w, h, values, horizontal, gap) + for key, rect in zip(keys, divisions): + result[name + (key,)] = rect + else: + result[name] = (x, y, w, h) + return result + + +def _tuplify(obj): + """convert an object in a tuple of strings (even if it is not iterable, + like a single integer number, but keep the string healthy) + """ + if np.iterable(obj) and not isinstance(obj, string_types): + res = tuple(str(o) for o in obj) + else: + res = (str(obj),) + return res + + +def _categories_level(keys): + """use the Ordered dict to implement a simple ordered set + return each level of each category + [[key_1_level_1,key_2_level_1],[key_1_level_2,key_2_level_2]] + """ + res = [] + for i in zip(*(keys)): + tuplefied = _tuplify(i) + res.append(list(OrderedDict([(j, None) for j in tuplefied]))) + return res + + +def _hierarchical_split(count_dict, horizontal=True, gap=0.05): + """ + Split a square in a hierarchical way given a contingency table. + + Hierarchically split the unit square in alternate directions + in proportion to the subdivision contained in the contingency table + count_dict. This is the function that actually perform the tiling + for the creation of the mosaic plot. If the gap array has been specified + it will insert a corresponding amount of space (proportional to the + unit lenght), while retaining the proportionality of the tiles. + + Parameters + ---------- + count_dict : dict + Dictionary containing the contingency table. + Each category should contain a non-negative number + with a tuple as index. It expects that all the combination + of keys to be representes; if that is not true, will + automatically consider the missing values as 0 + horizontal : bool + The starting direction of the split (by default along + the horizontal axis) + gap : float or array of floats + The list of gaps to be applied on each subdivision. + If the lenght of the given array is less of the number + of subcategories (or if it's a single number) it will extend + it with exponentially decreasing gaps + + Returns + ---------- + base_rect : dict + A dictionary containing the result of the split. + To each key is associated a 4-tuple of coordinates + that are required to create the corresponding rectangle: + + 0 - x position of the lower left corner + 1 - y position of the lower left corner + 2 - width of the rectangle + 3 - height of the rectangle + """ + # this is the unit square that we are going to divide + base_rect = OrderedDict([(tuple(), (0, 0, 1, 1))]) + # get the list of each possible value for each level + categories_levels = _categories_level(list(iterkeys(count_dict))) + L = len(categories_levels) + + # recreate the gaps vector starting from an int + if not np.iterable(gap): + gap = [gap / 1.5 ** idx for idx in range(L)] + # extend if it's too short + if len(gap) < L: + last = gap[-1] + gap = list(*gap) + [last / 1.5 ** idx for idx in range(L)] + # trim if it's too long + gap = gap[:L] + # put the count dictionay in order for the keys + # this will allow some code simplification + count_ordered = OrderedDict([(k, count_dict[k]) + for k in list(product(*categories_levels))]) + for cat_idx, cat_enum in enumerate(categories_levels): + # get the partial key up to the actual level + base_keys = list(product(*categories_levels[:cat_idx])) + for key in base_keys: + # for each partial and each value calculate how many + # observation we have in the counting dictionary + part_count = [_reduce_dict(count_ordered, key + (partial,)) + for partial in cat_enum] + # reduce the gap for subsequents levels + new_gap = gap[cat_idx] + # split the given subkeys in the rectangle dictionary + base_rect = _key_splitting(base_rect, cat_enum, part_count, key, + horizontal, new_gap) + horizontal = not horizontal + return base_rect + + +def _single_hsv_to_rgb(hsv): + """Transform a color from the hsv space to the rgb.""" + from matplotlib.colors import hsv_to_rgb + return hsv_to_rgb(array(hsv).reshape(1, 1, 3)).reshape(3) + + +def _create_default_properties(data): + """"Create the default properties of the mosaic given the data + first it will varies the color hue (first category) then the color + saturation (second category) and then the color value + (third category). If a fourth category is found, it will put + decoration on the rectangle. Doesn't manage more than four + level of categories + """ + categories_levels = _categories_level(list(iterkeys(data))) + Nlevels = len(categories_levels) + # first level, the hue + L = len(categories_levels[0]) + # hue = np.linspace(1.0, 0.0, L+1)[:-1] + hue = np.linspace(0.0, 1.0, L + 2)[:-2] + # second level, the saturation + L = len(categories_levels[1]) if Nlevels > 1 else 1 + saturation = np.linspace(0.5, 1.0, L + 1)[:-1] + # third level, the value + L = len(categories_levels[2]) if Nlevels > 2 else 1 + value = np.linspace(0.5, 1.0, L + 1)[:-1] + # fourth level, the hatch + L = len(categories_levels[3]) if Nlevels > 3 else 1 + hatch = ['', '/', '-', '|', '+'][:L + 1] + # convert in list and merge with the levels + hue = lzip(list(hue), categories_levels[0]) + saturation = lzip(list(saturation), + categories_levels[1] if Nlevels > 1 else ['']) + value = lzip(list(value), + categories_levels[2] if Nlevels > 2 else ['']) + hatch = lzip(list(hatch), + categories_levels[3] if Nlevels > 3 else ['']) + # create the properties dictionary + properties = {} + for h, s, v, t in product(hue, saturation, value, hatch): + hv, hn = h + sv, sn = s + vv, vn = v + tv, tn = t + level = (hn,) + ((sn,) if sn else tuple()) + level = level + ((vn,) if vn else tuple()) + level = level + ((tn,) if tn else tuple()) + hsv = array([hv, sv, vv]) + prop = {'color': _single_hsv_to_rgb(hsv), 'hatch': tv, 'lw': 0} + properties[level] = prop + return properties + + +def _normalize_data(data, index): + """normalize the data to a dict with tuples of strings as keys + right now it works with: + + 0 - dictionary (or equivalent mappable) + 1 - pandas.Series with simple or hierarchical indexes + 2 - numpy.ndarrays + 3 - everything that can be converted to a numpy array + 4 - pandas.DataFrame (via the _normalize_dataframe function) + """ + # if data is a dataframe we need to take a completely new road + # before coming back here. Use the hasattr to avoid importing + # pandas explicitly + if hasattr(data, 'pivot') and hasattr(data, 'groupby'): + data = _normalize_dataframe(data, index) + index = None + # can it be used as a dictionary? + try: + items = list(iteritems(data)) + except AttributeError: + # ok, I cannot use the data as a dictionary + # Try to convert it to a numpy array, or die trying + data = np.asarray(data) + temp = OrderedDict() + for idx in np.ndindex(data.shape): + name = tuple(i for i in idx) + temp[name] = data[idx] + data = temp + items = list(iteritems(data)) + # make all the keys a tuple, even if simple numbers + data = OrderedDict([_tuplify(k), v] for k, v in items) + categories_levels = _categories_level(list(iterkeys(data))) + # fill the void in the counting dictionary + indexes = product(*categories_levels) + contingency = OrderedDict([(k, data.get(k, 0)) for k in indexes]) + data = contingency + # reorder the keys order according to the one specified by the user + # or if the index is None convert it into a simple list + # right now it doesn't do any check, but can be modified in the future + index = lrange(len(categories_levels)) if index is None else index + contingency = OrderedDict() + for key, value in iteritems(data): + new_key = tuple(key[i] for i in index) + contingency[new_key] = value + data = contingency + return data + + +def _normalize_dataframe(dataframe, index): + """Take a pandas DataFrame and count the element present in the + given columns, return a hierarchical index on those columns + """ + #groupby the given keys, extract the same columns and count the element + # then collapse them with a mean + data = dataframe[index].dropna() + grouped = data.groupby(index, sort=False) + counted = grouped[index].count() + averaged = counted.mean(axis=1) + return averaged + + +def _statistical_coloring(data): + """evaluate colors from the indipendence properties of the matrix + It will encounter problem if one category has all zeros + """ + data = _normalize_data(data, None) + categories_levels = _categories_level(list(iterkeys(data))) + Nlevels = len(categories_levels) + total = 1.0 * sum(v for v in itervalues(data)) + # count the proportion of observation + # for each level that has the given name + # at each level + levels_count = [] + for level_idx in range(Nlevels): + proportion = {} + for level in categories_levels[level_idx]: + proportion[level] = 0.0 + for key, value in iteritems(data): + if level == key[level_idx]: + proportion[level] += value + proportion[level] /= total + levels_count.append(proportion) + # for each key I obtain the expected value + # and it's standard deviation from a binomial distribution + # under the hipothesys of independence + expected = {} + for key, value in iteritems(data): + base = 1.0 + for i, k in enumerate(key): + base *= levels_count[i][k] + expected[key] = base * total, np.sqrt(total * base * (1.0 - base)) + # now we have the standard deviation of distance from the + # expected value for each tile. We create the colors from this + sigmas = dict((k, (data[k] - m) / s) for k, (m, s) in iteritems(expected)) + props = {} + for key, dev in iteritems(sigmas): + red = 0.0 if dev < 0 else (dev / (1 + dev)) + blue = 0.0 if dev > 0 else (dev / (-1 + dev)) + green = (1.0 - red - blue) / 2.0 + hatch = 'x' if dev > 2 else 'o' if dev < -2 else '' + props[key] = {'color': [red, green, blue], 'hatch': hatch} + return props + + +def _get_position(x, w, h, W): + if W == 0: + return x + return (x + w / 2.0) * w * h / W + + +def _create_labels(rects, horizontal, ax, rotation): + """find the position of the label for each value of each category + + right now it supports only up to the four categories + + ax: the axis on which the label should be applied + rotation: the rotation list for each side + """ + categories = _categories_level(list(iterkeys(rects))) + if len(categories) > 4: + msg = ("maximum of 4 level supported for axes labeling..and 4" + "is alreay a lot of level, are you sure you need them all?") + raise NotImplementedError(msg) + labels = {} + #keep it fixed as will be used a lot of times + items = list(iteritems(rects)) + vertical = not horizontal + + #get the axis ticks and labels locator to put the correct values! + ax2 = ax.twinx() + ax3 = ax.twiny() + #this is the order of execution for horizontal disposition + ticks_pos = [ax.set_xticks, ax.set_yticks, ax3.set_xticks, ax2.set_yticks] + ticks_lab = [ax.set_xticklabels, ax.set_yticklabels, + ax3.set_xticklabels, ax2.set_yticklabels] + #for the vertical one, rotate it by one + if vertical: + ticks_pos = ticks_pos[1:] + ticks_pos[:1] + ticks_lab = ticks_lab[1:] + ticks_lab[:1] + #clean them + for pos, lab in zip(ticks_pos, ticks_lab): + pos([]) + lab([]) + #for each level, for each value in the level, take the mean of all + #the sublevel that correspond to that partial key + for level_idx, level in enumerate(categories): + #this dictionary keep the labels only for this level + level_ticks = dict() + for value in level: + #to which level it should refer to get the preceding + #values of labels? it's rather a tricky question... + #this is dependent on the side. It's a very crude management + #but I couldn't think a more general way... + if horizontal: + if level_idx == 3: + index_select = [-1, -1, -1] + else: + index_select = [+0, -1, -1] + else: + if level_idx == 3: + index_select = [+0, -1, +0] + else: + index_select = [-1, -1, -1] + #now I create the base key name and append the current value + #It will search on all the rects to find the corresponding one + #and use them to evaluate the mean position + basekey = tuple(categories[i][index_select[i]] + for i in range(level_idx)) + basekey = basekey + (value,) + subset = dict((k, v) for k, v in items + if basekey == k[:level_idx + 1]) + #now I extract the center of all the tiles and make a weighted + #mean of all these center on the area of the tile + #this should give me the (more or less) correct position + #of the center of the category + + vals = list(itervalues(subset)) + W = sum(w * h for (x, y, w, h) in vals) + x_lab = sum(_get_position(x, w, h, W) for (x, y, w, h) in vals) + y_lab = sum(_get_position(y, h, w, W) for (x, y, w, h) in vals) + #now base on the ordering, select which position to keep + #needs to be written in a more general form of 4 level are enough? + #should give also the horizontal and vertical alignment + side = (level_idx + vertical) % 4 + level_ticks[value] = y_lab if side % 2 else x_lab + #now we add the labels of this level to the correct axis + + ticks_pos[level_idx](list(itervalues(level_ticks))) + ticks_lab[level_idx](list(iterkeys(level_ticks)), + rotation=rotation[level_idx]) + return labels + + +def mosaic(data, index=None, ax=None, horizontal=True, gap=0.005, + properties=lambda key: None, labelizer=None, + title='', statistic=False, axes_label=True, + label_rotation=0.0): + """Create a mosaic plot from a contingency table. + + It allows to visualize multivariate categorical data in a rigorous + and informative way. + + Parameters + ---------- + data : dict, pandas.Series, np.ndarray, pandas.DataFrame + The contingency table that contains the data. + Each category should contain a non-negative number + with a tuple as index. It expects that all the combination + of keys to be representes; if that is not true, will + automatically consider the missing values as 0. The order + of the keys will be the same as the one of insertion. + If a dict of a Series (or any other dict like object) + is used, it will take the keys as labels. If a + np.ndarray is provided, it will generate a simple + numerical labels. + index: list, optional + Gives the preferred order for the category ordering. If not specified + will default to the given order. It doesn't support named indexes + for hierarchical Series. If a DataFrame is provided, it expects + a list with the name of the columns. + ax : matplotlib.Axes, optional + The graph where display the mosaic. If not given, will + create a new figure + horizontal : bool, optional (default True) + The starting direction of the split (by default along + the horizontal axis) + gap : float or array of floats + The list of gaps to be applied on each subdivision. + If the lenght of the given array is less of the number + of subcategories (or if it's a single number) it will extend + it with exponentially decreasing gaps + labelizer : function (key) -> string, optional + A function that generate the text to display at the center of + each tile base on the key of that tile + properties : function (key) -> dict, optional + A function that for each tile in the mosaic take the key + of the tile and returns the dictionary of properties + of the generated Rectangle, like color, hatch or similar. + A default properties set will be provided fot the keys whose + color has not been defined, and will use color variation to help + visually separates the various categories. It should return None + to indicate that it should use the default property for the tile. + A dictionary of the properties for each key can be passed, + and it will be internally converted to the correct function + statistic: bool, optional (default False) + if true will use a crude statistical model to give colors to the plot. + If the tile has a containt that is more than 2 standard deviation + from the expected value under independence hipotesys, it will + go from green to red (for positive deviations, blue otherwise) and + will acquire an hatching when crosses the 3 sigma. + title: string, optional + The title of the axis + axes_label: boolean, optional + Show the name of each value of each category + on the axis (default) or hide them. + label_rotation: float or list of float + the rotation of the axis label (if present). If a list is given + each axis can have a different rotation + + Returns + ---------- + fig : matplotlib.Figure + The generate figure + rects : dict + A dictionary that has the same keys of the original + dataset, that holds a reference to the coordinates of the + tile and the Rectangle that represent it + + See Also + ---------- + A Brief History of the Mosaic Display + Michael Friendly, York University, Psychology Department + Journal of Computational and Graphical Statistics, 2001 + + Mosaic Displays for Loglinear Models. + Michael Friendly, York University, Psychology Department + Proceedings of the Statistical Graphics Section, 1992, 61-68. + + Mosaic displays for multi-way contingecy tables. + Michael Friendly, York University, Psychology Department + Journal of the american statistical association + March 1994, Vol. 89, No. 425, Theory and Methods + + Examples + ---------- + The most simple use case is to take a dictionary and plot the result + + >>> data = {'a': 10, 'b': 15, 'c': 16} + >>> mosaic(data, title='basic dictionary') + >>> pylab.show() + + A more useful example is given by a dictionary with multiple indices. + In this case we use a wider gap to a better visual separation of the + resulting plot + + >>> data = {('a', 'b'): 1, ('a', 'c'): 2, ('d', 'b'): 3, ('d', 'c'): 4} + >>> mosaic(data, gap=0.05, title='complete dictionary') + >>> pylab.show() + + The same data can be given as a simple or hierarchical indexed Series + + >>> rand = np.random.random + >>> from itertools import product + >>> + >>> tuples = list(product(['bar', 'baz', 'foo', 'qux'], ['one', 'two'])) + >>> index = pd.MultiIndex.from_tuples(tuples, names=['first', 'second']) + >>> data = pd.Series(rand(8), index=index) + >>> mosaic(data, title='hierarchical index series') + >>> pylab.show() + + The third accepted data structureis the np array, for which a + very simple index will be created. + + >>> rand = np.random.random + >>> data = 1+rand((2,2)) + >>> mosaic(data, title='random non-labeled array') + >>> pylab.show() + + If you need to modify the labeling and the coloring you can give + a function tocreate the labels and one with the graphical properties + starting from the key tuple + + >>> data = {'a': 10, 'b': 15, 'c': 16} + >>> props = lambda key: {'color': 'r' if 'a' in key else 'gray'} + >>> labelizer = lambda k: {('a',): 'first', ('b',): 'second', + ('c',): 'third'}[k] + >>> mosaic(data, title='colored dictionary', + properties=props, labelizer=labelizer) + >>> pylab.show() + + Using a DataFrame as source, specifying the name of the columns of interest + >>> gender = ['male', 'male', 'male', 'female', 'female', 'female'] + >>> pet = ['cat', 'dog', 'dog', 'cat', 'dog', 'cat'] + >>> data = pandas.DataFrame({'gender': gender, 'pet': pet}) + >>> mosaic(data, ['pet', 'gender']) + >>> pylab.show() + """ + if isinstance(data, DataFrame) and index is None: + raise ValueError("You must pass an index if data is a DataFrame." + " See examples.") + + from matplotlib.patches import Rectangle + #from pylab import Rectangle + fig, ax = utils.create_mpl_ax(ax) + # normalize the data to a dict with tuple of strings as keys + data = _normalize_data(data, index) + # split the graph into different areas + rects = _hierarchical_split(data, horizontal=horizontal, gap=gap) + # if there is no specified way to create the labels + # create a default one + if labelizer is None: + labelizer = lambda k: "\n".join(k) + if statistic: + default_props = _statistical_coloring(data) + else: + default_props = _create_default_properties(data) + if isinstance(properties, dict): + color_dict = properties + properties = lambda key: color_dict.get(key, None) + for k, v in iteritems(rects): + # create each rectangle and put a label on it + x, y, w, h = v + conf = properties(k) + props = conf if conf else default_props[k] + text = labelizer(k) + Rect = Rectangle((x, y), w, h, label=text, **props) + ax.add_patch(Rect) + ax.text(x + w / 2, y + h / 2, text, ha='center', + va='center', size='smaller') + #creating the labels on the axis + #o clearing it + if axes_label: + if np.iterable(label_rotation): + rotation = label_rotation + else: + rotation = [label_rotation] * 4 + labels = _create_labels(rects, horizontal, ax, rotation) + else: + ax.set_xticks([]) + ax.set_xticklabels([]) + ax.set_yticks([]) + ax.set_yticklabels([]) + ax.set_title(title) + return fig, rects diff --git a/statsmodels/graphics/plot_grids.py b/statsmodels/graphics/plot_grids.py new file mode 100644 index 0000000..c8e3310 --- /dev/null +++ b/statsmodels/graphics/plot_grids.py @@ -0,0 +1,167 @@ +'''create scatterplot with confidence ellipsis + +Author: Josef Perktold +License: BSD-3 + +TODO: update script to use sharex, sharey, and visible=False + see http://www.scipy.org/Cookbook/Matplotlib/Multiple_Subplots_with_One_Axis_Label + for sharex I need to have the ax of the last_row when editing the earlier + rows. Or you axes_grid1, imagegrid + http://matplotlib.sourceforge.net/mpl_toolkits/axes_grid/users/overview.html +''' + + +from statsmodels.compat.python import range +import numpy as np +from scipy import stats + +from . import utils + + +__all__ = ['scatter_ellipse'] + + +def _make_ellipse(mean, cov, ax, level=0.95, color=None): + """Support function for scatter_ellipse.""" + from matplotlib.patches import Ellipse + + v, w = np.linalg.eigh(cov) + u = w[0] / np.linalg.norm(w[0]) + angle = np.arctan(u[1]/u[0]) + angle = 180 * angle / np.pi # convert to degrees + v = 2 * np.sqrt(v * stats.chi2.ppf(level, 2)) #get size corresponding to level + ell = Ellipse(mean[:2], v[0], v[1], 180 + angle, facecolor='none', + edgecolor=color, + #ls='dashed', #for debugging + lw=1.5) + ell.set_clip_box(ax.bbox) + ell.set_alpha(0.5) + ax.add_artist(ell) + + +def scatter_ellipse(data, level=0.9, varnames=None, ell_kwds=None, + plot_kwds=None, add_titles=False, keep_ticks=False, + fig=None): + """Create a grid of scatter plots with confidence ellipses. + + ell_kwds, plot_kdes not used yet + + looks ok with 5 or 6 variables, too crowded with 8, too empty with 1 + + Parameters + ---------- + data : array_like + Input data. + level : scalar, optional + Default is 0.9. + varnames : list of str, optional + Variable names. Used for y-axis labels, and if `add_titles` is True + also for titles. If not given, integers 1..data.shape[1] are used. + ell_kwds : dict, optional + UNUSED + plot_kwds : dict, optional + UNUSED + add_titles : bool, optional + Whether or not to add titles to each subplot. Default is False. + Titles are constructed from `varnames`. + keep_ticks : bool, optional + If False (default), remove all axis ticks. + fig : Matplotlib figure instance, optional + If given, this figure is simply returned. Otherwise a new figure is + created. + + Returns + ------- + fig : Matplotlib figure instance + If `fig` is None, the created figure. Otherwise `fig` itself. + + """ + fig = utils.create_mpl_fig(fig) + import matplotlib.ticker as mticker + + data = np.asanyarray(data) #needs mean and cov + nvars = data.shape[1] + if varnames is None: + #assuming single digit, nvars<=10 else use 'var%2d' + varnames = ['var%d' % i for i in range(nvars)] + + plot_kwds_ = dict(ls='none', marker='.', color='k', alpha=0.5) + if plot_kwds: + plot_kwds_.update(plot_kwds) + + ell_kwds_= dict(color='k') + if ell_kwds: + ell_kwds_.update(ell_kwds) + + dmean = data.mean(0) + dcov = np.cov(data, rowvar=0) + + for i in range(1, nvars): + #print '---' + ax_last=None + for j in range(i): + #print i,j, i*(nvars-1)+j+1 + ax = fig.add_subplot(nvars-1, nvars-1, (i-1)*(nvars-1)+j+1) +## #sharey=ax_last) #sharey doesn't allow empty ticks? +## if j == 0: +## print 'new ax_last', j +## ax_last = ax +## ax.set_ylabel(varnames[i]) + #TODO: make sure we have same xlim and ylim + + formatter = mticker.FormatStrFormatter('% 3.1f') + ax.yaxis.set_major_formatter(formatter) + ax.xaxis.set_major_formatter(formatter) + + idx = np.array([j,i]) + ax.plot(*data[:,idx].T, **plot_kwds_) + + if np.isscalar(level): + level = [level] + for alpha in level: + _make_ellipse(dmean[idx], dcov[idx[:,None], idx], ax, level=alpha, + **ell_kwds_) + + if add_titles: + ax.set_title('%s-%s' % (varnames[i], varnames[j])) + if not ax.is_first_col(): + if not keep_ticks: + ax.set_yticks([]) + else: + ax.yaxis.set_major_locator(mticker.MaxNLocator(3)) + else: + ax.set_ylabel(varnames[i]) + if ax.is_last_row(): + ax.set_xlabel(varnames[j]) + else: + if not keep_ticks: + ax.set_xticks([]) + else: + ax.xaxis.set_major_locator(mticker.MaxNLocator(3)) + + dcorr = np.corrcoef(data, rowvar=0) + dc = dcorr[idx[:,None], idx] + xlim = ax.get_xlim() + ylim = ax.get_ylim() +## xt = xlim[0] + 0.1 * (xlim[1] - xlim[0]) +## yt = ylim[0] + 0.1 * (ylim[1] - ylim[0]) +## if dc[1,0] < 0 : +## yt = ylim[0] + 0.1 * (ylim[1] - ylim[0]) +## else: +## yt = ylim[1] - 0.2 * (ylim[1] - ylim[0]) + yrangeq = ylim[0] + 0.4 * (ylim[1] - ylim[0]) + if dc[1,0] < -0.25 or (dc[1,0] < 0.25 and dmean[idx][1] > yrangeq): + yt = ylim[0] + 0.1 * (ylim[1] - ylim[0]) + else: + yt = ylim[1] - 0.2 * (ylim[1] - ylim[0]) + xt = xlim[0] + 0.1 * (xlim[1] - xlim[0]) + ax.text(xt, yt, '$\\rho=%0.2f$'% dc[1,0]) + + for ax in fig.axes: + if ax.is_last_row(): # or ax.is_first_col(): + ax.xaxis.set_major_locator(mticker.MaxNLocator(3)) + if ax.is_first_col(): + ax.yaxis.set_major_locator(mticker.MaxNLocator(3)) + + return fig + diff --git a/statsmodels/graphics/plottools.py b/statsmodels/graphics/plottools.py new file mode 100644 index 0000000..e35dcb0 --- /dev/null +++ b/statsmodels/graphics/plottools.py @@ -0,0 +1,26 @@ +import numpy as np + +def rainbow(n): + """ + Returns a list of colors sampled at equal intervals over the spectrum. + + Parameters + ---------- + n : int + The number of colors to return + + Returns + ------- + R : (n,3) array + An of rows of RGB color values + + Notes + ----- + Converts from HSV coordinates (0, 1, 1) to (1, 1, 1) to RGB. Based on + the Sage function of the same name. + """ + from matplotlib import colors + R = np.ones((1,n,3)) + R[0,:,0] = np.linspace(0, 1, n, endpoint=False) + #Note: could iterate and use colorsys.hsv_to_rgb + return colors.hsv_to_rgb(R).squeeze() diff --git a/statsmodels/graphics/regressionplots.py b/statsmodels/graphics/regressionplots.py new file mode 100644 index 0000000..f3d57de --- /dev/null +++ b/statsmodels/graphics/regressionplots.py @@ -0,0 +1,1171 @@ +'''Partial Regression plot and residual plots to find misspecification + + +Author: Josef Perktold +License: BSD-3 +Created: 2011-01-23 + +update +2011-06-05 : start to convert example to usable functions +2011-10-27 : docstrings + +''' +from statsmodels.compat.python import lrange, string_types, lzip, range +import numpy as np +import pandas as pd +from patsy import dmatrix + +from statsmodels.regression.linear_model import OLS, GLS, WLS +from statsmodels.genmod.generalized_linear_model import GLM +from statsmodels.genmod.generalized_estimating_equations import GEE +from statsmodels.sandbox.regression.predstd import wls_prediction_std +from statsmodels.graphics import utils +from statsmodels.nonparametric.smoothers_lowess import lowess +from statsmodels.tools.tools import maybe_unwrap_results +from statsmodels.base import model + +from ._regressionplots_doc import ( + _plot_added_variable_doc, + _plot_partial_residuals_doc, + _plot_ceres_residuals_doc) + +__all__ = ['plot_fit', 'plot_regress_exog', 'plot_partregress', 'plot_ccpr', + 'plot_regress_exog', 'plot_partregress_grid', 'plot_ccpr_grid', + 'add_lowess', 'abline_plot', 'influence_plot', + 'plot_leverage_resid2', 'added_variable_resids', + 'partial_resids', 'ceres_resids', 'plot_added_variable', + 'plot_partial_residuals', 'plot_ceres_residuals'] + +#TODO: consider moving to influence module +def _high_leverage(results): + #TODO: replace 1 with k_constant + return 2. * (results.df_model + 1)/results.nobs + + +def add_lowess(ax, lines_idx=0, frac=.2, **lowess_kwargs): + """ + Add Lowess line to a plot. + + Parameters + ---------- + ax : matplotlib Axes instance + The Axes to which to add the plot + lines_idx : int + This is the line on the existing plot to which you want to add + a smoothed lowess line. + frac : float + The fraction of the points to use when doing the lowess fit. + lowess_kwargs + Additional keyword arguments are passes to lowess. + + Returns + ------- + fig : matplotlib Figure instance + The figure that holds the instance. + """ + y0 = ax.get_lines()[lines_idx]._y + x0 = ax.get_lines()[lines_idx]._x + lres = lowess(y0, x0, frac=frac, **lowess_kwargs) + ax.plot(lres[:, 0], lres[:, 1], 'r', lw=1.5) + return ax.figure + + +def plot_fit(results, exog_idx, y_true=None, ax=None, **kwargs): + """Plot fit against one regressor. + + This creates one graph with the scatterplot of observed values compared to + fitted values. + + Parameters + ---------- + results : result instance + result instance with resid, model.endog and model.exog as attributes + x_var : int or str + Name or index of regressor in exog matrix. + y_true : array_like + (optional) If this is not None, then the array is added to the plot + ax : Matplotlib AxesSubplot instance, optional + If given, this subplot is used to plot in instead of a new figure being + created. + kwargs + The keyword arguments are passed to the plot command for the fitted + values points. + + Returns + ------- + fig : Matplotlib figure instance + If `ax` is None, the created figure. Otherwise the figure to which + `ax` is connected. + + Examples + -------- + Load the Statewide Crime data set and perform linear regression with + `poverty` and `hs_grad` as variables and `murder` as the response + + >>> import statsmodels.api as sm + >>> import matplotlib.pyplot as plt + + >>> data = sm.datasets.statecrime.load_pandas().data + >>> murder = data['murder'] + >>> X = data[['poverty', 'hs_grad']] + + >>> X["constant"] = 1 + >>> y = murder + >>> model = sm.OLS(y, X) + >>> results = model.fit() + + Create a plot just for the variable 'Poverty': + + >>> fig, ax = plt.subplots() + >>> fig = sm.graphics.plot_fit(results, 0, ax=ax) + >>> ax.set_ylabel("Murder Rate") + >>> ax.set_xlabel("Poverty Level") + >>> ax.set_title("Linear Regression") + + >>> plt.show() + + .. plot:: plots/graphics_plot_fit_ex.py + + """ + + fig, ax = utils.create_mpl_ax(ax) + + exog_name, exog_idx = utils.maybe_name_or_idx(exog_idx, results.model) + results = maybe_unwrap_results(results) + + #maybe add option for wendog, wexog + y = results.model.endog + x1 = results.model.exog[:, exog_idx] + x1_argsort = np.argsort(x1) + y = y[x1_argsort] + x1 = x1[x1_argsort] + + ax.plot(x1, y, 'bo', label=results.model.endog_names) + if not y_true is None: + ax.plot(x1, y_true[x1_argsort], 'b-', label='True values') + title = 'Fitted values versus %s' % exog_name + + prstd, iv_l, iv_u = wls_prediction_std(results) + ax.plot(x1, results.fittedvalues[x1_argsort], 'D', color='r', + label='fitted', **kwargs) + ax.vlines(x1, iv_l[x1_argsort], iv_u[x1_argsort], linewidth=1, color='k', + alpha=.7) + #ax.fill_between(x1, iv_l[x1_argsort], iv_u[x1_argsort], alpha=0.1, + # color='k') + ax.set_title(title) + ax.set_xlabel(exog_name) + ax.set_ylabel(results.model.endog_names) + ax.legend(loc='best', numpoints=1) + + return fig + + +def plot_regress_exog(results, exog_idx, fig=None): + """Plot regression results against one regressor. + + This plots four graphs in a 2 by 2 figure: 'endog versus exog', + 'residuals versus exog', 'fitted versus exog' and + 'fitted plus residual versus exog' + + Parameters + ---------- + results : result instance + result instance with resid, model.endog and model.exog as attributes + exog_idx : int + index of regressor in exog matrix + fig : Matplotlib figure instance, optional + If given, this figure is simply returned. Otherwise a new figure is + created. + + Returns + ------- + fig : matplotlib figure instance + """ + + fig = utils.create_mpl_fig(fig) + + exog_name, exog_idx = utils.maybe_name_or_idx(exog_idx, results.model) + results = maybe_unwrap_results(results) + + #maybe add option for wendog, wexog + y_name = results.model.endog_names + x1 = results.model.exog[:, exog_idx] + prstd, iv_l, iv_u = wls_prediction_std(results) + + ax = fig.add_subplot(2, 2, 1) + ax.plot(x1, results.model.endog, 'o', color='b', alpha=0.9, label=y_name) + ax.plot(x1, results.fittedvalues, 'D', color='r', label='fitted', + alpha=.5) + ax.vlines(x1, iv_l, iv_u, linewidth=1, color='k', alpha=.7) + ax.set_title('Y and Fitted vs. X', fontsize='large') + ax.set_xlabel(exog_name) + ax.set_ylabel(y_name) + ax.legend(loc='best') + + ax = fig.add_subplot(2, 2, 2) + ax.plot(x1, results.resid, 'o') + ax.axhline(y=0, color='black') + ax.set_title('Residuals versus %s' % exog_name, fontsize='large') + ax.set_xlabel(exog_name) + ax.set_ylabel("resid") + + ax = fig.add_subplot(2, 2, 3) + exog_noti = np.ones(results.model.exog.shape[1], bool) + exog_noti[exog_idx] = False + exog_others = results.model.exog[:, exog_noti] + from pandas import Series + fig = plot_partregress(results.model.data.orig_endog, + Series(x1, name=exog_name, + index=results.model.data.row_labels), + exog_others, obs_labels=False, ax=ax) + ax.set_title('Partial regression plot', fontsize='large') + #ax.set_ylabel("Fitted values") + #ax.set_xlabel(exog_name) + + ax = fig.add_subplot(2, 2, 4) + fig = plot_ccpr(results, exog_idx, ax=ax) + ax.set_title('CCPR Plot', fontsize='large') + #ax.set_xlabel(exog_name) + #ax.set_ylabel("Fitted values + resids") + + fig.suptitle('Regression Plots for %s' % exog_name, fontsize="large") + + fig.tight_layout() + + fig.subplots_adjust(top=.90) + return fig + + +def _partial_regression(endog, exog_i, exog_others): + """Partial regression. + + regress endog on exog_i conditional on exog_others + + uses OLS + + Parameters + ---------- + endog : array_like + exog : array_like + exog_others : array_like + + Returns + ------- + res1c : OLS results instance + + (res1a, res1b) : tuple of OLS results instances + results from regression of endog on exog_others and of exog_i on + exog_others + + """ + #FIXME: This function doesn't appear to be used. + res1a = OLS(endog, exog_others).fit() + res1b = OLS(exog_i, exog_others).fit() + res1c = OLS(res1a.resid, res1b.resid).fit() + + return res1c, (res1a, res1b) + + +def plot_partregress(endog, exog_i, exog_others, data=None, + title_kwargs={}, obs_labels=True, label_kwargs={}, + ax=None, ret_coords=False, **kwargs): + """Plot partial regression for a single regressor. + + Parameters + ---------- + endog : ndarray or string + endogenous or response variable. If string is given, you can use a + arbitrary translations as with a formula. + exog_i : ndarray or string + exogenous, explanatory variable. If string is given, you can use a + arbitrary translations as with a formula. + exog_others : ndarray or list of strings + other exogenous, explanatory variables. If a list of strings is given, + each item is a term in formula. You can use a arbitrary translations + as with a formula. The effect of these variables will be removed by + OLS regression. + data : DataFrame, dict, or recarray + Some kind of data structure with names if the other variables are + given as strings. + title_kwargs : dict + Keyword arguments to pass on for the title. The key to control the + fonts is fontdict. + obs_labels : bool or array-like + Whether or not to annotate the plot points with their observation + labels. If obs_labels is a boolean, the point labels will try to do + the right thing. First it will try to use the index of data, then + fall back to the index of exog_i. Alternatively, you may give an + array-like object corresponding to the obseveration numbers. + labels_kwargs : dict + Keyword arguments that control annotate for the observation labels. + ax : Matplotlib AxesSubplot instance, optional + If given, this subplot is used to plot in instead of a new figure being + created. + ret_coords : bool + If True will return the coordinates of the points in the plot. You + can use this to add your own annotations. + kwargs + The keyword arguments passed to plot for the points. + + Returns + ------- + fig : Matplotlib figure instance + If `ax` is None, the created figure. Otherwise the figure to which + `ax` is connected. + coords : list, optional + If ret_coords is True, return a tuple of arrays (x_coords, y_coords). + + Notes + ----- + The slope of the fitted line is the that of `exog_i` in the full + multiple regression. The individual points can be used to assess the + influence of points on the estimated coefficient. + + See Also + -------- + plot_partregress_grid : Plot partial regression for a set of regressors. + """ + #NOTE: there is no interaction between possible missing data and + #obs_labels yet, so this will need to be tweaked a bit for this case + fig, ax = utils.create_mpl_ax(ax) + + # strings, use patsy to transform to data + if isinstance(endog, string_types): + endog = dmatrix(endog + "-1", data) + + if isinstance(exog_others, string_types): + RHS = dmatrix(exog_others, data) + elif isinstance(exog_others, list): + RHS = "+".join(exog_others) + RHS = dmatrix(RHS, data) + else: + RHS = exog_others + RHS_isemtpy = False + if isinstance(RHS, np.ndarray) and RHS.size==0: + RHS_isemtpy = True + elif isinstance(RHS, pd.DataFrame) and RHS.empty: + RHS_isemtpy = True + if isinstance(exog_i, string_types): + exog_i = dmatrix(exog_i + "-1", data) + + # all arrays or pandas-like + + if RHS_isemtpy: + ax.plot(endog, exog_i, 'o', **kwargs) + fitted_line = OLS(endog, exog_i).fit() + x_axis_endog_name = 'x' if isinstance(exog_i, np.ndarray) else exog_i.name + y_axis_endog_name = 'y' if isinstance(endog, np.ndarray) else endog.design_info.column_names[0] + else: + res_yaxis = OLS(endog, RHS).fit() + res_xaxis = OLS(exog_i, RHS).fit() + xaxis_resid = res_xaxis.resid + yaxis_resid = res_yaxis.resid + x_axis_endog_name = res_xaxis.model.endog_names + y_axis_endog_name = res_yaxis.model.endog_names + ax.plot(xaxis_resid, yaxis_resid, 'o', **kwargs) + fitted_line = OLS(yaxis_resid, xaxis_resid).fit() + + fig = abline_plot(0, fitted_line.params[0], color='k', ax=ax) + + if x_axis_endog_name == 'y': # for no names regression will just get a y + x_axis_endog_name = 'x' # this is misleading, so use x + ax.set_xlabel("e(%s | X)" % x_axis_endog_name) + ax.set_ylabel("e(%s | X)" % y_axis_endog_name) + ax.set_title('Partial Regression Plot', **title_kwargs) + + #NOTE: if we want to get super fancy, we could annotate if a point is + #clicked using this widget + #http://stackoverflow.com/questions/4652439/ + #is-there-a-matplotlib-equivalent-of-matlabs-datacursormode/ + #4674445#4674445 + if obs_labels is True: + if data is not None: + obs_labels = data.index + elif hasattr(exog_i, "index"): + obs_labels = exog_i.index + else: + obs_labels = res_xaxis.model.data.row_labels + #NOTE: row_labels can be None. + #Maybe we should fix this to never be the case. + if obs_labels is None: + obs_labels = lrange(len(exog_i)) + + if obs_labels is not False: # could be array-like + if len(obs_labels) != len(exog_i): + raise ValueError("obs_labels does not match length of exog_i") + label_kwargs.update(dict(ha="center", va="bottom")) + ax = utils.annotate_axes(lrange(len(obs_labels)), obs_labels, + lzip(res_xaxis.resid, res_yaxis.resid), + [(0, 5)] * len(obs_labels), "x-large", ax=ax, + **label_kwargs) + + if ret_coords: + return fig, (res_xaxis.resid, res_yaxis.resid) + else: + return fig + + +def plot_partregress_grid(results, exog_idx=None, grid=None, fig=None): + """Plot partial regression for a set of regressors. + + Parameters + ---------- + results : results instance + A regression model results instance + exog_idx : None, list of ints, list of strings + (column) indices of the exog used in the plot, default is all. + grid : None or tuple of int (nrows, ncols) + If grid is given, then it is used for the arrangement of the subplots. + If grid is None, then ncol is one, if there are only 2 subplots, and + the number of columns is two otherwise. + fig : Matplotlib figure instance, optional + If given, this figure is simply returned. Otherwise a new figure is + created. + + Returns + ------- + fig : Matplotlib figure instance + If `fig` is None, the created figure. Otherwise `fig` itself. + + Notes + ----- + A subplot is created for each explanatory variable given by exog_idx. + The partial regression plot shows the relationship between the response + and the given explanatory variable after removing the effect of all other + explanatory variables in exog. + + See Also + -------- + plot_partregress : Plot partial regression for a single regressor. + plot_ccpr + + References + ---------- + See http://www.itl.nist.gov/div898/software/dataplot/refman1/auxillar/partregr.htm + + """ + import pandas + fig = utils.create_mpl_fig(fig) + + exog_name, exog_idx = utils.maybe_name_or_idx(exog_idx, results.model) + + #maybe add option for using wendog, wexog instead + y = pandas.Series(results.model.endog, name=results.model.endog_names) + exog = results.model.exog + + k_vars = exog.shape[1] + #this function doesn't make sense if k_vars=1 + + if not grid is None: + nrows, ncols = grid + else: + if len(exog_idx) > 2: + nrows = int(np.ceil(len(exog_idx)/2.)) + ncols = 2 + title_kwargs = {"fontdict" : {"fontsize" : 'small'}} + else: + nrows = len(exog_idx) + ncols = 1 + title_kwargs = {} + + # for indexing purposes + other_names = np.array(results.model.exog_names) + for i, idx in enumerate(exog_idx): + others = lrange(k_vars) + others.pop(idx) + exog_others = pandas.DataFrame(exog[:, others], + columns=other_names[others]) + ax = fig.add_subplot(nrows, ncols, i+1) + plot_partregress(y, pandas.Series(exog[:, idx], + name=other_names[idx]), + exog_others, ax=ax, title_kwargs=title_kwargs, + obs_labels=False) + ax.set_title("") + + fig.suptitle("Partial Regression Plot", fontsize="large") + + fig.tight_layout() + + fig.subplots_adjust(top=.95) + return fig + + +def plot_ccpr(results, exog_idx, ax=None): + """Plot CCPR against one regressor. + + Generates a CCPR (component and component-plus-residual) plot. + + Parameters + ---------- + results : result instance + A regression results instance. + exog_idx : int or string + Exogenous, explanatory variable. If string is given, it should + be the variable name that you want to use, and you can use arbitrary + translations as with a formula. + ax : Matplotlib AxesSubplot instance, optional + If given, it is used to plot in instead of a new figure being + created. + + Returns + ------- + fig : Matplotlib figure instance + If `ax` is None, the created figure. Otherwise the figure to which + `ax` is connected. + + See Also + -------- + plot_ccpr_grid : Creates CCPR plot for multiple regressors in a plot grid. + + Notes + ----- + The CCPR plot provides a way to judge the effect of one regressor on the + response variable by taking into account the effects of the other + independent variables. The partial residuals plot is defined as + Residuals + B_i*X_i versus X_i. The component adds the B_i*X_i versus + X_i to show where the fitted line would lie. Care should be taken if X_i + is highly correlated with any of the other independent variables. If this + is the case, the variance evident in the plot will be an underestimate of + the true variance. + + References + ---------- + http://www.itl.nist.gov/div898/software/dataplot/refman1/auxillar/ccpr.htm + """ + fig, ax = utils.create_mpl_ax(ax) + + exog_name, exog_idx = utils.maybe_name_or_idx(exog_idx, results.model) + results = maybe_unwrap_results(results) + + x1 = results.model.exog[:, exog_idx] + #namestr = ' for %s' % self.name if self.name else '' + x1beta = x1*results.params[exog_idx] + ax.plot(x1, x1beta + results.resid, 'o') + from statsmodels.tools.tools import add_constant + mod = OLS(x1beta, add_constant(x1)).fit() + params = mod.params + fig = abline_plot(*params, **dict(ax=ax)) + #ax.plot(x1, x1beta, '-') + ax.set_title('Component and component plus residual plot') + ax.set_ylabel("Residual + %s*beta_%d" % (exog_name, exog_idx)) + ax.set_xlabel("%s" % exog_name) + + return fig + + +def plot_ccpr_grid(results, exog_idx=None, grid=None, fig=None): + """Generate CCPR plots against a set of regressors, plot in a grid. + + Generates a grid of CCPR (component and component-plus-residual) plots. + + Parameters + ---------- + results : result instance + uses exog and params of the result instance + exog_idx : None or list of int + (column) indices of the exog used in the plot + grid : None or tuple of int (nrows, ncols) + If grid is given, then it is used for the arrangement of the subplots. + If grid is None, then ncol is one, if there are only 2 subplots, and + the number of columns is two otherwise. + fig : Matplotlib figure instance, optional + If given, this figure is simply returned. Otherwise a new figure is + created. + + Returns + ------- + fig : Matplotlib figure instance + If `ax` is None, the created figure. Otherwise the figure to which + `ax` is connected. + + Notes + ----- + Partial residual plots are formed as:: + + Res + Betahat(i)*Xi versus Xi + + and CCPR adds:: + + Betahat(i)*Xi versus Xi + + See Also + -------- + plot_ccpr : Creates CCPR plot for a single regressor. + + References + ---------- + See http://www.itl.nist.gov/div898/software/dataplot/refman1/auxillar/ccpr.htm + """ + fig = utils.create_mpl_fig(fig) + + exog_name, exog_idx = utils.maybe_name_or_idx(exog_idx, results.model) + + if grid is not None: + nrows, ncols = grid + else: + if len(exog_idx) > 2: + nrows = int(np.ceil(len(exog_idx)/2.)) + ncols = 2 + else: + nrows = len(exog_idx) + ncols = 1 + + seen_constant = 0 + for i, idx in enumerate(exog_idx): + if results.model.exog[:, idx].var() == 0: + seen_constant = 1 + continue + + ax = fig.add_subplot(nrows, ncols, i+1-seen_constant) + fig = plot_ccpr(results, exog_idx=idx, ax=ax) + ax.set_title("") + + fig.suptitle("Component-Component Plus Residual Plot", fontsize="large") + + fig.tight_layout() + + fig.subplots_adjust(top=.95) + return fig + + +def abline_plot(intercept=None, slope=None, horiz=None, vert=None, + model_results=None, ax=None, **kwargs): + """ + Plots a line given an intercept and slope. + + intercept : float + The intercept of the line + slope : float + The slope of the line + horiz : float or array-like + Data for horizontal lines on the y-axis + vert : array-like + Data for verterical lines on the x-axis + model_results : statsmodels results instance + Any object that has a two-value `params` attribute. Assumed that it + is (intercept, slope) + ax : axes, optional + Matplotlib axes instance + kwargs + Options passed to matplotlib.pyplot.plt + + Returns + ------- + fig : Figure + The figure given by `ax.figure` or a new instance. + + Examples + -------- + >>> import numpy as np + >>> import statsmodels.api as sm + >>> np.random.seed(12345) + >>> X = sm.add_constant(np.random.normal(0, 20, size=30)) + >>> y = np.dot(X, [25, 3.5]) + np.random.normal(0, 30, size=30) + >>> mod = sm.OLS(y,X).fit() + >>> fig = sm.graphics.abline_plot(model_results=mod) + >>> ax = fig.axes[0] + >>> ax.scatter(X[:,1], y) + >>> ax.margins(.1) + >>> import matplotlib.pyplot as plt + >>> plt.show() + """ + if ax is not None: # get axis limits first thing, don't change these + x = ax.get_xlim() + else: + x = None + + fig, ax = utils.create_mpl_ax(ax) + + if model_results: + intercept, slope = model_results.params + if x is None: + x = [model_results.model.exog[:, 1].min(), + model_results.model.exog[:, 1].max()] + else: + if not (intercept is not None and slope is not None): + raise ValueError("specify slope and intercepty or model_results") + if x is None: + x = ax.get_xlim() + + data_y = [x[0]*slope+intercept, x[1]*slope+intercept] + ax.set_xlim(x) + #ax.set_ylim(y) + + from matplotlib.lines import Line2D + + class ABLine2D(Line2D): + + def update_datalim(self, ax): + ax.set_autoscale_on(False) + + children = ax.get_children() + abline = [children[i] for i in range(len(children)) + if isinstance(children[i], ABLine2D)][0] + x = ax.get_xlim() + y = [x[0]*slope+intercept, x[1]*slope+intercept] + abline.set_data(x, y) + ax.figure.canvas.draw() + #TODO: how to intercept something like a margins call and adjust? + + line = ABLine2D(x, data_y, **kwargs) + ax.add_line(line) + ax.callbacks.connect('xlim_changed', line.update_datalim) + ax.callbacks.connect('ylim_changed', line.update_datalim) + + if horiz: + ax.hline(horiz) + if vert: + ax.vline(vert) + return fig + + +def influence_plot(results, external=True, alpha=.05, criterion="cooks", + size=48, plot_alpha=.75, ax=None, **kwargs): + """ + Plot of influence in regression. Plots studentized resids vs. leverage. + + Parameters + ---------- + results : results instance + A fitted model. + external : bool + Whether to use externally or internally studentized residuals. It is + recommended to leave external as True. + alpha : float + The alpha value to identify large studentized residuals. Large means + abs(resid_studentized) > t.ppf(1-alpha/2, dof=results.df_resid) + criterion : str {'DFFITS', 'Cooks'} + Which criterion to base the size of the points on. Options are + DFFITS or Cook's D. + size : float + The range of `criterion` is mapped to 10**2 - size**2 in points. + plot_alpha : float + The `alpha` of the plotted points. + ax : matplotlib Axes instance + An instance of a matplotlib Axes. + + Returns + ------- + fig : matplotlib figure + The matplotlib figure that contains the Axes. + + Notes + ----- + Row labels for the observations in which the leverage, measured by the + diagonal of the hat matrix, is high or the residuals are large, as the + combination of large residuals and a high influence value indicates an + influence point. The value of large residuals can be controlled using the + `alpha` parameter. Large leverage points are identified as + hat_i > 2 * (df_model + 1)/nobs. + """ + fig, ax = utils.create_mpl_ax(ax) + + infl = results.get_influence() + + if criterion.lower().startswith('coo'): + psize = infl.cooks_distance[0] + elif criterion.lower().startswith('dff'): + psize = np.abs(infl.dffits[0]) + else: + raise ValueError("Criterion %s not understood" % criterion) + + # scale the variables + #TODO: what is the correct scaling and the assumption here? + #we want plots to be comparable across different plots + #so we would need to use the expected distribution of criterion probably + old_range = np.ptp(psize) + new_range = size**2 - 8**2 + + psize = (psize - psize.min()) * new_range/old_range + 8**2 + + leverage = infl.hat_matrix_diag + if external: + resids = infl.resid_studentized_external + else: + resids = infl.resid_studentized_internal + + from scipy import stats + + cutoff = stats.t.ppf(1.-alpha/2, results.df_resid) + large_resid = np.abs(resids) > cutoff + large_leverage = leverage > _high_leverage(results) + large_points = np.logical_or(large_resid, large_leverage) + + ax.scatter(leverage, resids, s=psize, alpha=plot_alpha) + + # add point labels + labels = results.model.data.row_labels + if labels is None: + labels = lrange(len(resids)) + ax = utils.annotate_axes(np.where(large_points)[0], labels, + lzip(leverage, resids), + lzip(-(psize/2)**.5, (psize/2)**.5), "x-large", + ax) + + #TODO: make configurable or let people do it ex-post? + font = {"fontsize" : 16, "color" : "black"} + ax.set_ylabel("Studentized Residuals", **font) + ax.set_xlabel("H Leverage", **font) + ax.set_title("Influence Plot", **font) + return fig + + +def plot_leverage_resid2(results, alpha=.05, ax=None, + **kwargs): + """ + Plots leverage statistics vs. normalized residuals squared + + Parameters + ---------- + results : results instance + A regression results instance + alpha : float + Specifies the cut-off for large-standardized residuals. Residuals + are assumed to be distributed N(0, 1) with alpha=alpha. + ax : Axes instance + Matplotlib Axes instance + + Returns + ------- + fig : matplotlib Figure + A matplotlib figure instance. + """ + from scipy.stats import zscore, norm + fig, ax = utils.create_mpl_ax(ax) + + infl = results.get_influence() + leverage = infl.hat_matrix_diag + resid = zscore(results.resid) + ax.plot(resid**2, leverage, 'o', **kwargs) + ax.set_xlabel("Normalized residuals**2") + ax.set_ylabel("Leverage") + ax.set_title("Leverage vs. Normalized residuals squared") + + large_leverage = leverage > _high_leverage(results) + #norm or t here if standardized? + cutoff = norm.ppf(1.-alpha/2) + large_resid = np.abs(resid) > cutoff + labels = results.model.data.row_labels + if labels is None: + labels = lrange(int(results.nobs)) + index = np.where(np.logical_or(large_leverage, large_resid))[0] + ax = utils.annotate_axes(index, labels, lzip(resid**2, leverage), + [(0, 5)]*int(results.nobs), "large", + ax=ax, ha="center", va="bottom") + ax.margins(.075, .075) + return fig + +def plot_added_variable(results, focus_exog, resid_type=None, + use_glm_weights=True, fit_kwargs=None, ax=None): + # Docstring attached below + + model = results.model + + fig, ax = utils.create_mpl_ax(ax) + + endog_resid, focus_exog_resid =\ + added_variable_resids(results, focus_exog, + resid_type=resid_type, + use_glm_weights=use_glm_weights, + fit_kwargs=fit_kwargs) + + ax.plot(focus_exog_resid, endog_resid, 'o', alpha=0.6) + + ax.set_title('Added variable plot', fontsize='large') + + if type(focus_exog) is str: + xname = focus_exog + else: + xname = model.exog_names[focus_exog] + ax.set_xlabel(xname, size=15) + ax.set_ylabel(model.endog_names + " residuals", size=15) + + return fig + +plot_added_variable.__doc__ = _plot_added_variable_doc % { + 'extra_params_doc' : "results: object\n\tResults for a fitted regression model"} + +def plot_partial_residuals(results, focus_exog, ax=None): + # Docstring attached below + + model = results.model + + focus_exog, focus_col = utils.maybe_name_or_idx(focus_exog, model) + + pr = partial_resids(results, focus_exog) + focus_exog_vals = results.model.exog[:, focus_col] + + fig, ax = utils.create_mpl_ax(ax) + ax.plot(focus_exog_vals, pr, 'o', alpha=0.6) + + ax.set_title('Partial residuals plot', fontsize='large') + + if type(focus_exog) is str: + xname = focus_exog + else: + xname = model.exog_names[focus_exog] + ax.set_xlabel(xname, size=15) + ax.set_ylabel("Component plus residual", size=15) + + return fig + +plot_partial_residuals.__doc__ = _plot_partial_residuals_doc % { + 'extra_params_doc' : "results: object\n\tResults for a fitted regression model"} + +def plot_ceres_residuals(results, focus_exog, frac=0.66, cond_means=None, + ax=None): + # Docstring attached below + + model = results.model + + focus_exog, focus_col = utils.maybe_name_or_idx(focus_exog, model) + + presid = ceres_resids(results, focus_exog, frac=frac, + cond_means=cond_means) + + focus_exog_vals = model.exog[:, focus_col] + + fig, ax = utils.create_mpl_ax(ax) + ax.plot(focus_exog_vals, presid, 'o', alpha=0.6) + + ax.set_title('CERES residuals plot', fontsize='large') + + ax.set_xlabel(focus_exog, size=15) + ax.set_ylabel("Component plus residual", size=15) + + return fig + +plot_ceres_residuals.__doc__ = _plot_ceres_residuals_doc % { + 'extra_params_doc' : "results: object\n\tResults for a fitted regression model"} + +def ceres_resids(results, focus_exog, frac=0.66, cond_means=None): + """ + Calculate the CERES residuals (Conditional Expectation Partial + Residuals) for a fitted model. + + Parameters + ---------- + results : model results instance + The fitted model for which the CERES residuals are calculated. + focus_exog : int + The column of results.model.exog used as the 'focus variable'. + frac : float, optional + Lowess smoothing parameter for estimating the conditional + means. Not used if `cond_means` is provided. + cond_means : array-like, optional + If provided, the columns of this array are the conditional + means E[exog | focus exog], where exog ranges over some + or all of the columns of exog other than focus exog. If + this is an empty nx0 array, the conditional means are + treated as being zero. If None, the conditional means are + estimated. + + Returns + ------- + An array containing the CERES residuals. + + Notes + ----- + If `cond_means` is not provided, it is obtained by smoothing each + column of exog (except the focus column) against the focus column. + + Currently only supports GLM, GEE, and OLS models. + """ + + model = results.model + + if not isinstance(model, (GLM, GEE, OLS)): + raise ValueError("ceres residuals not available for %s" % + model.__class__.__name__) + + focus_exog, focus_col = utils.maybe_name_or_idx(focus_exog, model) + + # Indices of non-focus columns + ix_nf = range(len(results.params)) + ix_nf = list(ix_nf) + ix_nf.pop(focus_col) + nnf = len(ix_nf) + + # Estimate the conditional means if not provided. + if cond_means is None: + + # Below we calculate E[x | focus] where x is each column other + # than the focus column. We don't want the intercept when we do + # this so we remove it here. + pexog = model.exog[:, ix_nf] + pexog -= pexog.mean(0) + u, s, vt = np.linalg.svd(pexog, 0) + ii = np.flatnonzero(s > 1e-6) + pexog = u[:, ii] + + fcol = model.exog[:, focus_col] + cond_means = np.empty((len(fcol), pexog.shape[1])) + for j in range(pexog.shape[1]): + + # Get the fitted values for column i given the other + # columns (skip the intercept). + y0 = pexog[:, j] + + cf = lowess(y0, fcol, frac=frac, return_sorted=False) + + cond_means[:, j] = cf + + new_exog = np.concatenate((model.exog[:, ix_nf], cond_means), axis=1) + + # Refit the model using the adjusted exog values + klass = model.__class__ + init_kwargs = model._get_init_kwds() + new_model = klass(model.endog, new_exog, **init_kwargs) + new_result = new_model.fit() + + # The partial residual, with respect to l(x2) (notation of Cook 1998) + presid = model.endog - new_result.fittedvalues + if isinstance(model, (GLM, GEE)): + presid *= model.family.link.deriv(new_result.fittedvalues) + if new_exog.shape[1] > nnf: + presid += np.dot(new_exog[:, nnf:], new_result.params[nnf:]) + + return presid + +def partial_resids(results, focus_exog): + """ + Returns partial residuals for a fitted model with respect to a + 'focus predictor'. + + Parameters + ---------- + results : results instance + A fitted regression model. + focus col : int + The column index of model.exog with respect to which the + partial residuals are calculated. + + Returns + ------- + An array of partial residuals. + + References + ---------- + RD Cook and R Croos-Dabrera (1998). Partial residual plots in + generalized linear models. Journal of the American Statistical + Association, 93:442. + """ + + # TODO: could be a method of results + # TODO: see Cook et al (1998) for a more general definition + + # The calculation follows equation (8) from Cook's paper. + model = results.model + resid = model.endog - results.predict() + + if isinstance(model, (GLM, GEE)): + resid *= model.family.link.deriv(results.fittedvalues) + elif isinstance(model, (OLS, GLS, WLS)): + pass # No need to do anything + else: + raise ValueError("Partial residuals for '%s' not implemented." + % type(model)) + + if type(focus_exog) is str: + focus_col = model.exog_names.index(focus_exog) + else: + focus_col = focus_exog + + focus_val = results.params[focus_col] * model.exog[:, focus_col] + + return focus_val + resid + +def added_variable_resids(results, focus_exog, resid_type=None, + use_glm_weights=True, fit_kwargs=None): + """ + Residualize the endog variable and a 'focus' exog variable in a + regression model with respect to the other exog variables. + + Parameters + ---------- + results : regression results instance + A fitted model including the focus exog and all other + predictors of interest. + focus_exog : integer or string + The column of results.model.exog or a variable name that is + to be residualized against the other predictors. + resid_type : string + The type of residuals to use for the dependent variable. If + None, uses `resid_deviance` for GLM/GEE and `resid` otherwise. + use_glm_weights : bool + Only used if the model is a GLM or GEE. If True, the + residuals for the focus predictor are computed using WLS, with + the weights obtained from the IRLS calculations for fitting + the GLM. If False, unweighted regression is used. + fit_kwargs : dict, optional + Keyword arguments to be passed to fit when refitting the + model. + + Returns + ------- + endog_resid : array-like + The residuals for the original exog + focus_exog_resid : array-like + The residuals for the focus predictor + + Notes + ----- + The 'focus variable' residuals are always obtained using linear + regression. + + Currently only GLM, GEE, and OLS models are supported. + """ + + model = results.model + if not isinstance(model, (GEE, GLM, OLS)): + raise ValueError("model type %s not supported for added variable residuals" % + model.__class__.__name__) + + exog = model.exog + endog = model.endog + + focus_exog, focus_col = utils.maybe_name_or_idx(focus_exog, model) + + focus_exog_vals = exog[:, focus_col] + + # Default residuals + if resid_type is None: + if isinstance(model, (GEE, GLM)): + resid_type = "resid_deviance" + else: + resid_type = "resid" + + ii = range(exog.shape[1]) + ii = list(ii) + ii.pop(focus_col) + reduced_exog = exog[:, ii] + start_params = results.params[ii] + + klass = model.__class__ + + kwargs = model._get_init_kwds() + new_model = klass(endog, reduced_exog, **kwargs) + args = {"start_params": start_params} + if fit_kwargs is not None: + args.update(fit_kwargs) + new_result = new_model.fit(**args) + if not new_result.converged: + raise ValueError("fit did not converge when calculating added variable residuals") + + try: + endog_resid = getattr(new_result, resid_type) + except AttributeError: + raise ValueError("'%s' residual type not available" % resid_type) + + import statsmodels.regression.linear_model as lm + + if isinstance(model, (GLM, GEE)) and use_glm_weights: + weights = model.family.weights(results.fittedvalues) + if hasattr(model, "data_weights"): + weights = weights * model.data_weights + lm_results = lm.WLS(focus_exog_vals, reduced_exog, weights).fit() + else: + lm_results = lm.OLS(focus_exog_vals, reduced_exog).fit() + focus_exog_resid = lm_results.resid + + return endog_resid, focus_exog_resid diff --git a/statsmodels/graphics/tests/__init__.py b/statsmodels/graphics/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/graphics/tests/test_boxplots.py b/statsmodels/graphics/tests/test_boxplots.py new file mode 100644 index 0000000..503c5cc --- /dev/null +++ b/statsmodels/graphics/tests/test_boxplots.py @@ -0,0 +1,77 @@ +import numpy as np +from numpy.testing import dec + +from statsmodels.graphics.boxplots import violinplot, beanplot +from statsmodels.datasets import anes96 + + +try: + import matplotlib.pyplot as plt + have_matplotlib = True +except: + have_matplotlib = False + + +@dec.skipif(not have_matplotlib) +def test_violinplot_beanplot(): + # Test violinplot and beanplot with the same dataset. + data = anes96.load_pandas() + party_ID = np.arange(7) + labels = ["Strong Democrat", "Weak Democrat", "Independent-Democrat", + "Independent-Independent", "Independent-Republican", + "Weak Republican", "Strong Republican"] + + age = [data.exog['age'][data.endog == id] for id in party_ID] + + fig = plt.figure() + ax = fig.add_subplot(111) + violinplot(age, ax=ax, labels=labels, + plot_opts={'cutoff_val':5, 'cutoff_type':'abs', + 'label_fontsize':'small', + 'label_rotation':30}) + + plt.close(fig) + + + fig = plt.figure() + ax = fig.add_subplot(111) + beanplot(age, ax=ax, labels=labels, + plot_opts={'cutoff_val':5, 'cutoff_type':'abs', + 'label_fontsize':'small', + 'label_rotation':30}) + + plt.close(fig) + + fig = plt.figure() + ax = fig.add_subplot(111) + beanplot(age, ax=ax, labels=labels, jitter=True, + plot_opts={'cutoff_val': 5, 'cutoff_type': 'abs', + 'label_fontsize': 'small', + 'label_rotation': 30}) + + plt.close(fig) + + fig = plt.figure() + ax = fig.add_subplot(111) + beanplot(age, ax=ax, labels=labels, jitter=True, side='right', + plot_opts={'cutoff_val': 5, 'cutoff_type': 'abs', + 'label_fontsize': 'small', + 'label_rotation': 30}) + + plt.close(fig) + + fig = plt.figure() + ax = fig.add_subplot(111) + beanplot(age, ax=ax, labels=labels, jitter=True, side='left', + plot_opts={'cutoff_val': 5, 'cutoff_type': 'abs', + 'label_fontsize': 'small', + 'label_rotation': 30}) + + plt.close(fig) + + fig = plt.figure() + ax = fig.add_subplot(111) + beanplot(age, ax=ax, labels=labels, + plot_opts={'bean_legend_text': 'text'}) + + plt.close(fig) diff --git a/statsmodels/graphics/tests/test_correlation.py b/statsmodels/graphics/tests/test_correlation.py new file mode 100644 index 0000000..7a354df --- /dev/null +++ b/statsmodels/graphics/tests/test_correlation.py @@ -0,0 +1,43 @@ +import numpy as np +from numpy.testing import dec + +from statsmodels.graphics.correlation import plot_corr, plot_corr_grid +from statsmodels.datasets import randhie + + +try: + import matplotlib.pyplot as plt + have_matplotlib = True +except: + have_matplotlib = False + + +@dec.skipif(not have_matplotlib) +def test_plot_corr(): + hie_data = randhie.load_pandas() + corr_matrix = np.corrcoef(hie_data.data.values.T) + + fig = plot_corr(corr_matrix, xnames=hie_data.names) + plt.close(fig) + + fig = plot_corr(corr_matrix, xnames=[], ynames=hie_data.names) + plt.close(fig) + + fig = plot_corr(corr_matrix, normcolor=True, title='', cmap='jet') + plt.close(fig) + + +@dec.skipif(not have_matplotlib) +def test_plot_corr_grid(): + hie_data = randhie.load_pandas() + corr_matrix = np.corrcoef(hie_data.data.values.T) + + fig = plot_corr_grid([corr_matrix] * 2, xnames=hie_data.names) + plt.close(fig) + + fig = plot_corr_grid([corr_matrix] * 5, xnames=[], ynames=hie_data.names) + plt.close(fig) + + fig = plot_corr_grid([corr_matrix] * 3, normcolor=True, titles='', cmap='jet') + plt.close(fig) + diff --git a/statsmodels/graphics/tests/test_dotplot.py b/statsmodels/graphics/tests/test_dotplot.py new file mode 100644 index 0000000..477d283 --- /dev/null +++ b/statsmodels/graphics/tests/test_dotplot.py @@ -0,0 +1,421 @@ +import numpy as np +from statsmodels.graphics.dotplots import dot_plot +import pandas as pd +from numpy.testing import dec + +# If true, the output is written to a multi-page pdf file. +pdf_output = False + +try: + import matplotlib.pyplot as plt + import matplotlib + have_matplotlib = True +except ImportError: + have_matplotlib = False + + +def close_or_save(pdf, fig): + if pdf_output: + pdf.savefig(fig) + else: + plt.close(fig) + +@dec.skipif(not have_matplotlib) +def test_all(): + + if pdf_output: + from matplotlib.backends.backend_pdf import PdfPages + pdf = PdfPages("test_dotplot.pdf") + else: + pdf = None + + # Basic dotplot with points only + plt.clf() + points = range(20) + ax = plt.axes() + fig = dot_plot(points, ax=ax) + ax.set_title("Basic horizontal dotplot") + close_or_save(pdf, fig) + + # Basic vertical dotplot + plt.clf() + points = range(20) + ax = plt.axes() + fig = dot_plot(points, ax=ax, horizontal=False) + ax.set_title("Basic vertical dotplot") + close_or_save(pdf, fig) + + # Tall and skinny + plt.figure(figsize=(4,12)) + ax = plt.axes() + vals = np.arange(40) + fig = dot_plot(points, ax=ax) + ax.set_title("Tall and skinny dotplot") + ax.set_xlabel("x axis label") + close_or_save(pdf, fig) + + # Short and wide + plt.figure(figsize=(12,4)) + ax = plt.axes() + vals = np.arange(40) + fig = dot_plot(points, ax=ax, horizontal=False) + ax.set_title("Short and wide dotplot") + ax.set_ylabel("y axis label") + close_or_save(pdf, fig) + + # Tall and skinny striped dotplot + plt.figure(figsize=(4,12)) + ax = plt.axes() + points = np.arange(40) + fig = dot_plot(points, ax=ax, striped=True) + ax.set_title("Tall and skinny striped dotplot") + ax.set_xlim(-10, 50) + close_or_save(pdf, fig) + + # Short and wide striped + plt.figure(figsize=(12,4)) + ax = plt.axes() + points = np.arange(40) + fig = dot_plot(points, ax=ax, striped=True, horizontal=False) + ax.set_title("Short and wide striped dotplot") + ax.set_ylim(-10, 50) + close_or_save(pdf, fig) + + # Basic dotplot with few points + plt.figure() + ax = plt.axes() + points = np.arange(4) + fig = dot_plot(points, ax=ax) + ax.set_title("Basic horizontal dotplot with few lines") + close_or_save(pdf, fig) + + # Basic dotplot with few points + plt.figure() + ax = plt.axes() + points = np.arange(4) + fig = dot_plot(points, ax=ax, horizontal=False) + ax.set_title("Basic vertical dotplot with few lines") + close_or_save(pdf, fig) + + # Manually set the x axis limits + plt.figure() + ax = plt.axes() + points = np.arange(20) + fig = dot_plot(points, ax=ax) + ax.set_xlim(-10, 30) + ax.set_title("Dotplot with adjusted horizontal range") + close_or_save(pdf, fig) + + # Left row labels + plt.clf() + ax = plt.axes() + lines = ["ABCDEFGH"[np.random.randint(0, 8)] for k in range(20)] + points = np.random.normal(size=20) + fig = dot_plot(points, lines=lines, ax=ax) + ax.set_title("Dotplot with user-supplied labels in the left margin") + close_or_save(pdf, fig) + + # Left and right row labels + plt.clf() + ax = plt.axes() + points = np.random.normal(size=20) + lines = ["ABCDEFGH"[np.random.randint(0, 8)] + "::" + str(k+1) + for k in range(20)] + fig = dot_plot(points, lines=lines, ax=ax, split_names="::") + ax.set_title("Dotplot with user-supplied labels in both margins") + close_or_save(pdf, fig) + + # Both sides row labels + plt.clf() + ax = plt.axes([0.1, 0.1, 0.88, 0.8]) + points = np.random.normal(size=20) + lines = ["ABCDEFGH"[np.random.randint(0, 8)] + "::" + str(k+1) + for k in range(20)] + fig = dot_plot(points, lines=lines, ax=ax, split_names="::", + horizontal=False) + txt = ax.set_title("Vertical dotplot with user-supplied labels in both margins") + txt.set_position((0.5, 1.06)) + close_or_save(pdf, fig) + + # Custom colors and symbols + plt.clf() + ax = plt.axes([0.1, 0.07, 0.78, 0.85]) + points = np.random.normal(size=20) + lines = np.kron(range(5), np.ones(4)).astype(np.int32) + styles = np.kron(np.ones(5), range(4)).astype(np.int32) + #marker_props = {k: {"color": "rgbc"[k], "marker": "osvp"[k], + # "ms": 7, "alpha": 0.6} for k in range(4)} + # python 2.6 compat, can be removed later + marker_props = dict((k, {"color": "rgbc"[k], "marker": "osvp"[k], + "ms": 7, "alpha": 0.6}) for k in range(4)) + fig = dot_plot(points, lines=lines, styles=styles, ax=ax, + marker_props=marker_props) + ax.set_title("Dotplot with custom colors and symbols") + close_or_save(pdf, fig) + + # Basic dotplot with symmetric intervals + plt.clf() + ax = plt.axes() + points = range(20) + fig = dot_plot(points, intervals=np.ones(20), ax=ax) + ax.set_title("Dotplot with symmetric intervals") + close_or_save(pdf, fig) + + # Basic dotplot with symmetric intervals, pandas inputs. + plt.clf() + ax = plt.axes() + points = pd.Series(range(20)) + intervals = pd.Series(np.ones(20)) + fig = dot_plot(points, intervals=intervals, ax=ax) + ax.set_title("Dotplot with symmetric intervals (Pandas inputs)") + close_or_save(pdf, fig) + + # Basic dotplot with nonsymmetric intervals + plt.clf() + ax = plt.axes() + points = np.arange(20) + intervals = [(1, 3) for i in range(20)] + fig = dot_plot(points, intervals=intervals, ax=ax) + ax.set_title("Dotplot with nonsymmetric intervals") + close_or_save(pdf, fig) + + # Vertical dotplot with nonsymmetric intervals + plt.clf() + ax = plt.axes() + points = np.arange(20) + intervals = [(1, 3) for i in range(20)] + fig = dot_plot(points, intervals=intervals, ax=ax, horizontal=False) + ax.set_title("Vertical dotplot with nonsymmetric intervals") + close_or_save(pdf, fig) + + # Dotplot with nonsymmetric intervals, adjust line properties + plt.clf() + ax = plt.axes() + points = np.arange(20) + intervals = [(1, 3) for x in range(20)] + line_props = {0: {"color": "lightgrey", + "solid_capstyle": "round"}} + fig = dot_plot(points, intervals=intervals, line_props=line_props, ax=ax) + ax.set_title("Dotplot with custom line properties") + close_or_save(pdf, fig) + + # Dotplot with two points per line and a legend + plt.clf() + ax = plt.axes([0.1, 0.1, 0.75, 0.8]) + points = 5*np.random.normal(size=40) + lines = np.kron(range(20), (1,1)) + intervals = [(1,3) for k in range(40)] + styles = np.kron(np.ones(20), (0,1)).astype(np.int32) + styles = [["Cat", "Dog"][i] for i in styles] + fig = dot_plot(points, intervals=intervals, lines=lines, styles=styles, + ax=ax, stacked=True) + handles, labels = ax.get_legend_handles_labels() + leg = plt.figlegend(handles, labels, "center right", numpoints=1, + handletextpad=0.0001) + leg.draw_frame(False) + ax.set_title("Dotplot with two points per line") + close_or_save(pdf, fig) + + # Dotplot with two points per line and a legend + plt.clf() + ax = plt.axes([0.1, 0.1, 0.75, 0.8]) + fig = dot_plot(points, intervals=intervals, lines=lines, + styles=styles, ax=ax, stacked=True, + styles_order=["Dog", "Cat"]) + handles, labels = ax.get_legend_handles_labels() + leg = plt.figlegend(handles, labels, "center right", numpoints=1, + handletextpad=0.0001) + leg.draw_frame(False) + ax.set_title("Dotplot with two points per line (reverse order)") + close_or_save(pdf, fig) + + # Vertical dotplot with two points per line and a legend + plt.clf() + ax = plt.axes([0.1, 0.1, 0.75, 0.8]) + points = 5*np.random.normal(size=40) + lines = np.kron(range(20), (1,1)) + intervals = [(1,3) for k in range(40)] + styles = np.kron(np.ones(20), (0,1)).astype(np.int32) + styles = [["Cat", "Dog"][i] for i in styles] + fig = dot_plot(points, intervals=intervals, lines=lines, styles=styles, + ax=ax, stacked=True, horizontal=False) + handles, labels = ax.get_legend_handles_labels() + leg = plt.figlegend(handles, labels, "center right", numpoints=1, + handletextpad=0.0001) + leg.draw_frame(False) + ax.set_title("Vertical dotplot with two points per line") + close_or_save(pdf, fig) + + # Vertical dotplot with two points per line and a legend + plt.clf() + ax = plt.axes([0.1, 0.1, 0.75, 0.8]) + styles_order = ["Dog", "Cat"] + fig = dot_plot(points, intervals=intervals, lines=lines, + styles=styles, ax=ax, stacked=True, + horizontal=False, styles_order=styles_order) + handles, labels = ax.get_legend_handles_labels() + lh = dict(zip(labels, handles)) + handles = [lh[l] for l in styles_order] + leg = plt.figlegend(handles, styles_order, "center right", numpoints=1, + handletextpad=0.0001) + leg.draw_frame(False) + ax.set_title("Vertical dotplot with two points per line (reverse order)") + close_or_save(pdf, fig) + + # Vertical dotplot with two points per line and a legend + plt.clf() + ax = plt.axes([0.1, 0.1, 0.75, 0.8]) + points = 5*np.random.normal(size=40) + lines = np.kron(range(20), (1,1)) + intervals = [(1,3) for k in range(40)] + styles = np.kron(np.ones(20), (0,1)).astype(np.int32) + styles = [["Cat", "Dog"][i] for i in styles] + fig = dot_plot(points, intervals=intervals, lines=lines, styles=styles, + ax=ax, stacked=True, striped=True, horizontal=False) + handles, labels = ax.get_legend_handles_labels() + leg = plt.figlegend(handles, labels, "center right", numpoints=1, + handletextpad=0.0001) + leg.draw_frame(False) + plt.ylim(-20, 20) + ax.set_title("Vertical dotplot with two points per line") + close_or_save(pdf, fig) + + # Dotplot with color-matched points and intervals + plt.clf() + ax = plt.axes([0.1, 0.1, 0.75, 0.8]) + points = 5*np.random.normal(size=40) + lines = np.kron(range(20), (1,1)) + intervals = [(1,3) for k in range(40)] + styles = np.kron(np.ones(20), (0,1)).astype(np.int32) + styles = [["Cat", "Dog"][i] for i in styles] + marker_props = {"Cat": {"color": "orange"}, + "Dog": {"color": "purple"}} + line_props = {"Cat": {"color": "orange"}, + "Dog": {"color": "purple"}} + fig = dot_plot(points, intervals=intervals, lines=lines, styles=styles, + ax=ax, stacked=True, marker_props=marker_props, + line_props=line_props) + handles, labels = ax.get_legend_handles_labels() + leg = plt.figlegend(handles, labels, "center right", numpoints=1, + handletextpad=0.0001) + leg.draw_frame(False) + ax.set_title("Dotplot with color-matched points and intervals") + close_or_save(pdf, fig) + + # Dotplot with color-matched points and intervals + plt.clf() + ax = plt.axes([0.1, 0.1, 0.75, 0.8]) + points = 5*np.random.normal(size=40) + lines = np.kron(range(20), (1,1)) + intervals = [(1,3) for k in range(40)] + styles = np.kron(np.ones(20), (0,1)).astype(np.int32) + styles = [["Cat", "Dog"][i] for i in styles] + marker_props = {"Cat": {"color": "orange"}, + "Dog": {"color": "purple"}} + line_props = {"Cat": {"color": "orange"}, + "Dog": {"color": "purple"}} + fig = dot_plot(points, intervals=intervals, lines=lines, styles=styles, + ax=ax, stacked=True, marker_props=marker_props, + line_props=line_props, horizontal=False) + handles, labels = ax.get_legend_handles_labels() + leg = plt.figlegend(handles, labels, "center right", numpoints=1, + handletextpad=0.0001) + leg.draw_frame(False) + ax.set_title("Dotplot with color-matched points and intervals") + close_or_save(pdf, fig) + + # Dotplot with sections + plt.clf() + ax = plt.axes() + points = range(30) + lines = np.kron(range(15), (1,1)).astype(np.int32) + styles = np.kron(np.ones(15), (0,1)).astype(np.int32) + sections = np.kron((0,1,2), np.ones(10)).astype(np.int32) + sections = [["Axx", "Byy", "Czz"][k] for k in sections] + fig = dot_plot(points, lines=lines, styles=styles, sections=sections, ax=ax) + ax.set_title("Dotplot with sections") + close_or_save(pdf, fig) + + # Vertical dotplot with sections + plt.clf() + ax = plt.axes([0.1,0.1,0.9,0.75]) + points = range(30) + lines = np.kron(range(15), (1,1)).astype(np.int32) + styles = np.kron(np.ones(15), (0,1)).astype(np.int32) + sections = np.kron((0,1,2), np.ones(10)).astype(np.int32) + sections = [["Axx", "Byy", "Czz"][k] for k in sections] + fig = dot_plot(points, lines=lines, styles=styles, + sections=sections, ax=ax, horizontal=False) + txt = ax.set_title("Vertical dotplot with sections") + txt.set_position((0.5, 1.08)) + close_or_save(pdf, fig) + + # Reorder sections + plt.clf() + ax = plt.axes() + points = range(30) + lines = np.kron(range(15), (1,1)).astype(np.int32) + styles = np.kron(np.ones(15), (0,1)).astype(np.int32) + sections = np.kron((0,1,2), np.ones(10)).astype(np.int32) + sections = [["Axx", "Byy", "Czz"][k] for k in sections] + fig = dot_plot(points, lines=lines, styles=styles, sections=sections, ax=ax, + section_order=["Byy", "Axx", "Czz"]) + ax.set_title("Dotplot with sections in specified order") + close_or_save(pdf, fig) + + # Reorder the lines. + plt.figure() + ax = plt.axes() + points = np.arange(4) + lines = ["A", "B", "C", "D"] + line_order = ["B", "C", "A", "D"] + fig = dot_plot(points, lines=lines, line_order=line_order, ax=ax) + ax.set_title("Dotplot with reordered lines") + close_or_save(pdf, fig) + + # Format labels + plt.clf() + points = range(20) + lines = ["%d::%d" % (i, 100+i) for i in range(20)] + fmt_left = lambda x : "lft_" + x + fmt_right = lambda x : "rgt_" + x + ax = plt.axes() + fig = dot_plot(points, lines=lines, ax=ax, split_names="::", + fmt_left_name=fmt_left, fmt_right_name=fmt_right) + ax.set_title("Horizontal dotplot with name formatting") + close_or_save(pdf, fig) + + # Right names only + plt.clf() + points = range(20) + lines = ["%d::%d" % (i, 100+i) for i in range(20)] + ax = plt.axes() + fig = dot_plot(points, lines=lines, ax=ax, split_names="::", + show_names="right") + ax.set_title("Show right names only") + close_or_save(pdf, fig) + + # Dotplot with different numbers of points per line + plt.clf() + ax = plt.axes([0.1, 0.1, 0.75, 0.8]) + points = 5*np.random.normal(size=40) + lines = [] + ii = 0 + while len(lines) < 40: + for k in range(np.random.randint(1, 4)): + lines.append(ii) + ii += 1 + styles = np.kron(np.ones(20), (0,1)).astype(np.int32) + styles = [["Cat", "Dog"][i] for i in styles] + fig = dot_plot(points, lines=lines, styles=styles, + ax=ax, stacked=True) + handles, labels = ax.get_legend_handles_labels() + leg = plt.figlegend(handles, labels, "center right", numpoints=1, + handletextpad=0.0001) + leg.draw_frame(False) + ax.set_title("Dotplot with different numbers of points per line") + close_or_save(pdf, fig) + + if pdf_output: + pdf.close() + plt.close('all') diff --git a/statsmodels/graphics/tests/test_factorplots.py b/statsmodels/graphics/tests/test_factorplots.py new file mode 100644 index 0000000..395d870 --- /dev/null +++ b/statsmodels/graphics/tests/test_factorplots.py @@ -0,0 +1,88 @@ +from nose import SkipTest +from nose.tools import assert_raises, assert_equal +import numpy as np +from pandas import Series + +from statsmodels.graphics.factorplots import interaction_plot + +try: + import matplotlib.pyplot as plt + import matplotlib + have_matplotlib = True +except ImportError: + have_matplotlib = False + + +class TestInteractionPlot(object): + + @classmethod + def setupClass(cls): + if not have_matplotlib: + raise SkipTest('matplotlib not available') + np.random.seed(12345) + cls.weight = np.random.randint(1,4,size=60) + cls.duration = np.random.randint(1,3,size=60) + cls.days = np.log(np.random.randint(1,30, size=60)) + + + def test_plot_both(self): + fig = interaction_plot(self.weight, self.duration, self.days, + colors=['red','blue'], markers=['D','^'], ms=10) + plt.close(fig) + + def test_plot_rainbow(self): + fig = interaction_plot(self.weight, self.duration, self.days, + markers=['D','^'], ms=10) + plt.close(fig) + + def test_plot_pandas(self): + weight = Series(self.weight, name='Weight') + duration = Series(self.duration, name='Duration') + days = Series(self.days, name='Days') + fig = interaction_plot(weight, duration, days, + markers=['D','^'], ms=10) + ax = fig.axes[0] + trace = ax.get_legend().get_title().get_text() + assert_equal(trace, 'Duration') + assert_equal(ax.get_ylabel(), 'mean of Days') + assert_equal(ax.get_xlabel(), 'Weight') + plt.close(fig) + + + def test_plot_string_data(self): + weight = Series(self.weight, name='Weight').astype('str') + duration = Series(self.duration, name='Duration') + days = Series(self.days, name='Days') + fig = interaction_plot(weight, duration, days, + markers=['D', '^'], ms=10) + ax = fig.axes[0] + trace = ax.get_legend().get_title().get_text() + assert_equal(trace, 'Duration') + assert_equal(ax.get_ylabel(), 'mean of Days') + assert_equal(ax.get_xlabel(), 'Weight') + plt.close(fig) + + def test_formatting(self): + fig = interaction_plot(self.weight, self.duration, self.days, colors=['r','g'], linestyles=['--','-.']) + assert_equal(isinstance(fig, plt.Figure), True) + plt.close(fig) + + def test_formatting_errors(self): + #plt.close('all') + assert_raises(ValueError, interaction_plot, self.weight, self.duration, self.days, markers=['D']) + plt.close('all') + assert_raises(ValueError, interaction_plot, self.weight, self.duration, self.days, colors=['b','r','g']) + plt.close('all') + assert_raises(ValueError, interaction_plot, self.weight, self.duration, self.days, linestyles=['--','-.',':']) + plt.close('all') + + + def test_plottype(self): + fig = interaction_plot(self.weight, self.duration, self.days, plottype='line') + assert_equal(isinstance(fig, plt.Figure), True) + plt.close(fig) + fig = interaction_plot(self.weight, self.duration, self.days, plottype='scatter') + assert_equal(isinstance(fig, plt.Figure), True) + plt.close(fig) + assert_raises(ValueError, interaction_plot, self.weight, self.duration, self.days, plottype='unknown') + plt.close('all') \ No newline at end of file diff --git a/statsmodels/graphics/tests/test_functional.py b/statsmodels/graphics/tests/test_functional.py new file mode 100644 index 0000000..3fa48aa --- /dev/null +++ b/statsmodels/graphics/tests/test_functional.py @@ -0,0 +1,92 @@ +from statsmodels.compat.python import range +import numpy as np +from numpy.testing import dec, assert_equal, assert_almost_equal + +from statsmodels.graphics.functional import \ + banddepth, fboxplot, rainbowplot + + +try: + import matplotlib.pyplot as plt + import matplotlib + have_matplotlib = True +except ImportError: + have_matplotlib = False + + +def test_banddepth_BD2(): + xx = np.arange(500) / 150. + y1 = 1 + 0.5 * np.sin(xx) + y2 = 0.3 + np.sin(xx + np.pi/6) + y3 = -0.5 + np.sin(xx + np.pi/6) + y4 = -1 + 0.3 * np.cos(xx + np.pi/6) + + data = np.asarray([y1, y2, y3, y4]) + depth = banddepth(data, method='BD2') + expected_depth = [0.5, 5./6, 5./6, 0.5] + assert_almost_equal(depth, expected_depth) + + ## Plot to visualize why we expect this output + #fig = plt.figure() + #ax = fig.add_subplot(111) + #for ii, yy in enumerate([y1, y2, y3, y4]): + # ax.plot(xx, yy, label="y%s" % ii) + + #ax.legend() + #plt.show() + + +def test_banddepth_MBD(): + xx = np.arange(5001) / 5000. + y1 = np.zeros(xx.shape) + y2 = 2 * xx - 1 + y3 = np.ones(xx.shape) * 0.5 + y4 = np.ones(xx.shape) * -0.25 + + data = np.asarray([y1, y2, y3, y4]) + depth = banddepth(data, method='MBD') + expected_depth = [5./6, (2*(0.75-3./8)+3)/6, 3.5/6, (2*3./8+3)/6] + assert_almost_equal(depth, expected_depth, decimal=4) + + +@dec.skipif(not have_matplotlib) +def test_fboxplot_rainbowplot(): + # Test fboxplot and rainbowplot together, is much faster. + def harmfunc(t): + """Test function, combination of a few harmonic terms.""" + # Constant, 0 with p=0.9, 1 with p=1 - for creating outliers + ci = int(np.random.random() > 0.9) + a1i = np.random.random() * 0.05 + a2i = np.random.random() * 0.05 + b1i = (0.15 - 0.1) * np.random.random() + 0.1 + b2i = (0.15 - 0.1) * np.random.random() + 0.1 + + func = (1 - ci) * (a1i * np.sin(t) + a2i * np.cos(t)) + \ + ci * (b1i * np.sin(t) + b2i * np.cos(t)) + + return func + + np.random.seed(1234567) + # Some basic test data, Model 6 from Sun and Genton. + t = np.linspace(0, 2 * np.pi, 250) + data = [] + for ii in range(20): + data.append(harmfunc(t)) + + # fboxplot test + fig = plt.figure() + ax = fig.add_subplot(111) + _, depth, ix_depth, ix_outliers = fboxplot(data, wfactor=2, ax=ax) + + ix_expected = np.array([13, 4, 15, 19, 8, 6, 3, 16, 9, 7, 1, 5, 2, + 12, 17, 11, 14, 10, 0, 18]) + assert_equal(ix_depth, ix_expected) + ix_expected2 = np.array([2, 11, 17, 18]) + assert_equal(ix_outliers, ix_expected2) + + plt.close(fig) + + # rainbowplot test (re-uses depth variable) + xdata = np.arange(data[0].size) + fig = rainbowplot(data, xdata=xdata, depth=depth, cmap=plt.cm.rainbow) + plt.close(fig) diff --git a/statsmodels/graphics/tests/test_gofplots.py b/statsmodels/graphics/tests/test_gofplots.py new file mode 100644 index 0000000..f4aacd4 --- /dev/null +++ b/statsmodels/graphics/tests/test_gofplots.py @@ -0,0 +1,181 @@ +import numpy as np +from numpy.testing import dec + +import statsmodels.api as sm +from statsmodels.graphics.gofplots import qqplot, qqline, ProbPlot +from scipy import stats + + +try: + import matplotlib.pyplot as plt + import matplotlib + have_matplotlib = True +except ImportError: + have_matplotlib = False + + +class BaseProbplotMixin(object): + def base_setup(self): + if have_matplotlib: + self.fig, self.ax = plt.subplots() + self.other_array = np.random.normal(size=self.prbplt.data.shape) + self.other_prbplot = sm.ProbPlot(self.other_array) + + def teardown(self): + if have_matplotlib: + plt.close('all') + + @dec.skipif(not have_matplotlib) + def test_qqplot(self): + self.fig = self.prbplt.qqplot(ax=self.ax, line=self.line) + + @dec.skipif(not have_matplotlib) + def test_ppplot(self): + plt.close('all') + self.fig = self.prbplt.ppplot(ax=self.ax, line=self.line) + + @dec.skipif(not have_matplotlib) + def test_probplot(self): + self.fig = self.prbplt.probplot(ax=self.ax, line=self.line) + + @dec.skipif(not have_matplotlib) + def test_qqplot_other_array(self): + self.fig = self.prbplt.qqplot(ax=self.ax, line=self.line, + other=self.other_array) + @dec.skipif(not have_matplotlib) + def test_ppplot_other_array(self): + self.fig = self.prbplt.ppplot(ax=self.ax, line=self.line, + other=self.other_array) + @dec.skipif(not have_matplotlib) + def t_est_probplot_other_array(self): + self.fig = self.prbplt.probplot(ax=self.ax, line=self.line, + other=self.other_array) + + @dec.skipif(not have_matplotlib) + def test_qqplot_other_prbplt(self): + self.fig = self.prbplt.qqplot(ax=self.ax, line=self.line, + other=self.other_prbplot) + @dec.skipif(not have_matplotlib) + def test_ppplot_other_prbplt(self): + self.fig = self.prbplt.ppplot(ax=self.ax, line=self.line, + other=self.other_prbplot) + @dec.skipif(not have_matplotlib) + def t_est_probplot_other_prbplt(self): + self.fig = self.prbplt.probplot(ax=self.ax, line=self.line, + other=self.other_prbplot) + + @dec.skipif(not have_matplotlib) + def test_qqplot_custom_labels(self): + self.fig = self.prbplt.qqplot(ax=self.ax, line=self.line, + xlabel='Custom X-Label', + ylabel='Custom Y-Label') + + @dec.skipif(not have_matplotlib) + def test_ppplot_custom_labels(self): + self.fig = self.prbplt.ppplot(ax=self.ax, line=self.line, + xlabel='Custom X-Label', + ylabel='Custom Y-Label') + + @dec.skipif(not have_matplotlib) + def test_probplot_custom_labels(self): + self.fig = self.prbplt.probplot(ax=self.ax, line=self.line, + xlabel='Custom X-Label', + ylabel='Custom Y-Label') + + @dec.skipif(not have_matplotlib) + def test_qqplot_pltkwargs(self): + self.fig = self.prbplt.qqplot(ax=self.ax, line=self.line, + marker='d', + markerfacecolor='cornflowerblue', + markeredgecolor='white', + alpha=0.5) + + @dec.skipif(not have_matplotlib) + def test_ppplot_pltkwargs(self): + self.fig = self.prbplt.ppplot(ax=self.ax, line=self.line, + marker='d', + markerfacecolor='cornflowerblue', + markeredgecolor='white', + alpha=0.5) + + @dec.skipif(not have_matplotlib) + def test_probplot_pltkwargs(self): + self.fig = self.prbplt.probplot(ax=self.ax, line=self.line, + marker='d', + markerfacecolor='cornflowerblue', + markeredgecolor='white', + alpha=0.5) + + +class TestProbPlotLongely(BaseProbplotMixin): + def setup(self): + np.random.seed(5) + self.data = sm.datasets.longley.load() + self.data.exog = sm.add_constant(self.data.exog, prepend=False) + self.mod_fit = sm.OLS(self.data.endog, self.data.exog).fit() + self.prbplt = sm.ProbPlot(self.mod_fit.resid, stats.t, distargs=(4,)) + self.line = 'r' + self.base_setup() + + +class TestProbPlotRandomNormalMinimal(BaseProbplotMixin): + def setup(self): + np.random.seed(5) + self.data = np.random.normal(loc=8.25, scale=3.25, size=37) + self.prbplt = sm.ProbPlot(self.data) + self.line = None + self.base_setup() + + +class TestProbPlotRandomNormalWithFit(BaseProbplotMixin): + def setup(self): + np.random.seed(5) + self.data = np.random.normal(loc=8.25, scale=3.25, size=37) + self.prbplt = sm.ProbPlot(self.data, fit=True) + self.line = 'q' + self.base_setup() + + +class TestProbPlotRandomNormalLocScale(BaseProbplotMixin): + def setup(self): + np.random.seed(5) + self.data = np.random.normal(loc=8.25, scale=3.25, size=37) + self.prbplt = sm.ProbPlot(self.data, loc=8.25, scale=3.25) + self.line = '45' + self.base_setup() + + +class TestTopLevel(object): + def setup(self): + self.data = sm.datasets.longley.load() + self.data.exog = sm.add_constant(self.data.exog, prepend=False) + self.mod_fit = sm.OLS(self.data.endog, self.data.exog).fit() + self.res = self.mod_fit.resid + self.prbplt = sm.ProbPlot(self.mod_fit.resid, stats.t, distargs=(4,)) + self.other_array = np.random.normal(size=self.prbplt.data.shape) + self.other_prbplot = sm.ProbPlot(self.other_array) + + def teardown(self): + if have_matplotlib: + plt.close('all') + + @dec.skipif(not have_matplotlib) + def test_qqplot(self): + fig = sm.qqplot(self.res, line='r') + + @dec.skipif(not have_matplotlib) + def test_qqplot_2samples_ProbPlotObjects(self): + # also tests all values for line + for line in ['r', 'q', '45', 's']: + # test with `ProbPlot` instances + fig = sm.qqplot_2samples(self.prbplt, self.other_prbplot, + line=line) + plt.close('all') + + @dec.skipif(not have_matplotlib) + def test_qqplot_2samples_arrays(self): + # also tests all values for line + for line in ['r', 'q', '45', 's']: + # test with arrays + fig = sm.qqplot_2samples(self.res, self.other_array, line=line) + plt.close('all') diff --git a/statsmodels/graphics/tests/test_mosaicplot.py b/statsmodels/graphics/tests/test_mosaicplot.py new file mode 100644 index 0000000..4d97a8a --- /dev/null +++ b/statsmodels/graphics/tests/test_mosaicplot.py @@ -0,0 +1,446 @@ +from __future__ import division +from statsmodels.compat.python import iterkeys, zip, lrange, iteritems, range + +from numpy.testing import assert_, assert_raises, dec +from numpy.testing import run_module_suite + +# utilities for the tests + +from statsmodels.compat.pandas import sort_values +from statsmodels.compat.collections import OrderedDict +from statsmodels.api import datasets + +import numpy as np +from itertools import product +try: + import matplotlib.pyplot as pylab + have_matplotlib = True +except: + have_matplotlib = False + +from statsmodels.compat.pandas import version as pandas_version +pandas_old = pandas_version < '0.9' + +# the main drawing function +from statsmodels.graphics.mosaicplot import mosaic +# other functions to be tested for accuracy +from statsmodels.graphics.mosaicplot import _hierarchical_split +from statsmodels.graphics.mosaicplot import _reduce_dict +from statsmodels.graphics.mosaicplot import _key_splitting +from statsmodels.graphics.mosaicplot import _normalize_split +from statsmodels.graphics.mosaicplot import _split_rect + + +@dec.skipif(not have_matplotlib or pandas_old) +def test_data_conversion(): + # It will not reorder the elements + # so the dictionary will look odd + # as it key order has the c and b + # keys swapped + import pandas + fig, ax = pylab.subplots(4, 4) + data = {'ax': 1, 'bx': 2, 'cx': 3} + mosaic(data, ax=ax[0, 0], title='basic dict', axes_label=False) + data = pandas.Series(data) + mosaic(data, ax=ax[0, 1], title='basic series', axes_label=False) + data = [1, 2, 3] + mosaic(data, ax=ax[0, 2], title='basic list', axes_label=False) + data = np.asarray(data) + mosaic(data, ax=ax[0, 3], title='basic array', axes_label=False) + + data = {('ax', 'cx'): 1, ('bx', 'cx'): 2, ('ax', 'dx'): 3, ('bx', 'dx'): 4} + mosaic(data, ax=ax[1, 0], title='compound dict', axes_label=False) + mosaic(data, ax=ax[2, 0], title='inverted keys dict', index=[1, 0], axes_label=False) + data = pandas.Series(data) + mosaic(data, ax=ax[1, 1], title='compound series', axes_label=False) + mosaic(data, ax=ax[2, 1], title='inverted keys series', index=[1, 0]) + data = [[1, 2], [3, 4]] + mosaic(data, ax=ax[1, 2], title='compound list', axes_label=False) + mosaic(data, ax=ax[2, 2], title='inverted keys list', index=[1, 0]) + data = np.array([[1, 2], [3, 4]]) + mosaic(data, ax=ax[1, 3], title='compound array', axes_label=False) + mosaic(data, ax=ax[2, 3], title='inverted keys array', index=[1, 0], axes_label=False) + + gender = ['male', 'male', 'male', 'female', 'female', 'female'] + pet = ['cat', 'dog', 'dog', 'cat', 'dog', 'cat'] + data = pandas.DataFrame({'gender': gender, 'pet': pet}) + mosaic(data, ['gender'], ax=ax[3, 0], title='dataframe by key 1', axes_label=False) + mosaic(data, ['pet'], ax=ax[3, 1], title='dataframe by key 2', axes_label=False) + mosaic(data, ['gender', 'pet'], ax=ax[3, 2], title='both keys', axes_label=False) + mosaic(data, ['pet', 'gender'], ax=ax[3, 3], title='keys inverted', axes_label=False) + + pylab.suptitle('testing data conversion (plot 1 of 4)') + #pylab.show() + pylab.close('all') + +@dec.skipif(not have_matplotlib) +def test_mosaic_simple(): + # display a simple plot of 4 categories of data, splitted in four + # levels with increasing size for each group + # creation of the levels + key_set = (['male', 'female'], ['old', 'adult', 'young'], + ['worker', 'unemployed'], ['healty', 'ill']) + # the cartesian product of all the categories is + # the complete set of categories + keys = list(product(*key_set)) + data = OrderedDict(zip(keys, range(1, 1 + len(keys)))) + # which colours should I use for the various categories? + # put it into a dict + props = {} + #males and females in blue and red + props[('male',)] = {'color': 'b'} + props[('female',)] = {'color': 'r'} + # all the groups corresponding to ill groups have a different color + for key in keys: + if 'ill' in key: + if 'male' in key: + props[key] = {'color': 'BlueViolet' , 'hatch': '+'} + else: + props[key] = {'color': 'Crimson' , 'hatch': '+'} + # mosaic of the data, with given gaps and colors + mosaic(data, gap=0.05, properties=props, axes_label=False) + pylab.suptitle('syntetic data, 4 categories (plot 2 of 4)') + #pylab.show() + pylab.close('all') + + +@dec.skipif(not have_matplotlib or pandas_old) +def test_mosaic(): + # make the same analysis on a known dataset + + # load the data and clean it a bit + affairs = datasets.fair.load_pandas() + datas = affairs.exog + # any time greater than 0 is cheating + datas['cheated'] = affairs.endog > 0 + # sort by the marriage quality and give meaningful name + # [rate_marriage, age, yrs_married, children, + # religious, educ, occupation, occupation_husb] + datas = sort_values(datas, ['rate_marriage', 'religious']) + + num_to_desc = {1: 'awful', 2: 'bad', 3: 'intermediate', + 4: 'good', 5: 'wonderful'} + datas['rate_marriage'] = datas['rate_marriage'].map(num_to_desc) + num_to_faith = {1: 'non religious', 2: 'poorly religious', 3: 'religious', + 4: 'very religious'} + datas['religious'] = datas['religious'].map(num_to_faith) + num_to_cheat = {False: 'faithful', True: 'cheated'} + datas['cheated'] = datas['cheated'].map(num_to_cheat) + # finished cleaning + fig, ax = pylab.subplots(2, 2) + mosaic(datas, ['rate_marriage', 'cheated'], ax=ax[0, 0], + title='by marriage happiness') + mosaic(datas, ['religious', 'cheated'], ax=ax[0, 1], + title='by religiosity') + mosaic(datas, ['rate_marriage', 'religious', 'cheated'], ax=ax[1, 0], + title='by both', labelizer=lambda k:'') + ax[1, 0].set_xlabel('marriage rating') + ax[1, 0].set_ylabel('religion status') + mosaic(datas, ['religious', 'rate_marriage'], ax=ax[1, 1], + title='inter-dependence', axes_label=False) + pylab.suptitle("extramarital affairs (plot 3 of 4)") + #pylab.show() + pylab.close('all') + +@dec.skipif(not have_matplotlib) +def test_mosaic_very_complex(): + # make a scattermatrix of mosaic plots to show the correlations between + # each pair of variable in a dataset. Could be easily converted into a + # new function that does this automatically based on the type of data + key_name = ['gender', 'age', 'health', 'work'] + key_base = (['male', 'female'], ['old', 'young'], + ['healty', 'ill'], ['work', 'unemployed']) + keys = list(product(*key_base)) + data = OrderedDict(zip(keys, range(1, 1 + len(keys)))) + props = {} + props[('male', 'old')] = {'color': 'r'} + props[('female',)] = {'color': 'pink'} + L = len(key_base) + fig, axes = pylab.subplots(L, L) + for i in range(L): + for j in range(L): + m = set(range(L)).difference(set((i, j))) + if i == j: + axes[i, i].text(0.5, 0.5, key_name[i], + ha='center', va='center') + axes[i, i].set_xticks([]) + axes[i, i].set_xticklabels([]) + axes[i, i].set_yticks([]) + axes[i, i].set_yticklabels([]) + else: + ji = max(i, j) + ij = min(i, j) + temp_data = OrderedDict([((k[ij], k[ji]) + tuple(k[r] for r in m), v) + for k, v in iteritems(data)]) + + keys = list(iterkeys(temp_data)) + for k in keys: + value = _reduce_dict(temp_data, k[:2]) + temp_data[k[:2]] = value + del temp_data[k] + mosaic(temp_data, ax=axes[i, j], axes_label=False, + properties=props, gap=0.05, horizontal=i > j) + pylab.suptitle('old males should look bright red, (plot 4 of 4)') + #pylab.show() + pylab.close('all') + +@dec.skipif(not have_matplotlib) +def test_axes_labeling(): + from numpy.random import rand + key_set = (['male', 'female'], ['old', 'adult', 'young'], + ['worker', 'unemployed'], ['yes', 'no']) + # the cartesian product of all the categories is + # the complete set of categories + keys = list(product(*key_set)) + data = OrderedDict(zip(keys, rand(len(keys)))) + lab = lambda k: ''.join(s[0] for s in k) + fig, (ax1, ax2) = pylab.subplots(1, 2, figsize=(16, 8)) + mosaic(data, ax=ax1, labelizer=lab, horizontal=True, label_rotation=45) + mosaic(data, ax=ax2, labelizer=lab, horizontal=False, + label_rotation=[0, 45, 90, 0]) + #fig.tight_layout() + fig.suptitle("correct alignment of the axes labels") + #pylab.show() + pylab.close('all') + +@dec.skipif(not have_matplotlib or pandas_old) +def test_mosaic_empty_cells(): + # SMOKE test see #2286 + import pandas as pd + mydata = pd.DataFrame({'id2': {64: 'Angelica', + 65: 'DXW_UID', 66: 'casuid01', + 67: 'casuid01', 68: 'EC93_uid', + 69: 'EC93_uid', 70: 'EC93_uid', + 60: 'DXW_UID', 61: 'AtmosFox', + 62: 'DXW_UID', 63: 'DXW_UID'}, + 'id1': {64: 'TGP', + 65: 'Retention01', 66: 'default', + 67: 'default', 68: 'Musa_EC_9_3', + 69: 'Musa_EC_9_3', 70: 'Musa_EC_9_3', + 60: 'default', 61: 'default', + 62: 'default', 63: 'default'}}) + + ct = pd.crosstab(mydata.id1, mydata.id2) + fig, vals = mosaic(ct.T.unstack()) + pylab.close('all') + fig, vals = mosaic(mydata, ['id1','id2']) + pylab.close('all') + + +eq = lambda x, y: assert_(np.allclose(x, y)) + + +def test_recursive_split(): + keys = list(product('mf')) + data = OrderedDict(zip(keys, [1] * len(keys))) + res = _hierarchical_split(data, gap=0) + assert_(list(iterkeys(res)) == keys) + res[('m',)] = (0.0, 0.0, 0.5, 1.0) + res[('f',)] = (0.5, 0.0, 0.5, 1.0) + keys = list(product('mf', 'yao')) + data = OrderedDict(zip(keys, [1] * len(keys))) + res = _hierarchical_split(data, gap=0) + assert_(list(iterkeys(res)) == keys) + res[('m', 'y')] = (0.0, 0.0, 0.5, 1 / 3) + res[('m', 'a')] = (0.0, 1 / 3, 0.5, 1 / 3) + res[('m', 'o')] = (0.0, 2 / 3, 0.5, 1 / 3) + res[('f', 'y')] = (0.5, 0.0, 0.5, 1 / 3) + res[('f', 'a')] = (0.5, 1 / 3, 0.5, 1 / 3) + res[('f', 'o')] = (0.5, 2 / 3, 0.5, 1 / 3) + + +def test__reduce_dict(): + data = OrderedDict(zip(list(product('mf', 'oy', 'wn')), [1] * 8)) + eq(_reduce_dict(data, ('m',)), 4) + eq(_reduce_dict(data, ('m', 'o')), 2) + eq(_reduce_dict(data, ('m', 'o', 'w')), 1) + data = OrderedDict(zip(list(product('mf', 'oy', 'wn')), lrange(8))) + eq(_reduce_dict(data, ('m',)), 6) + eq(_reduce_dict(data, ('m', 'o')), 1) + eq(_reduce_dict(data, ('m', 'o', 'w')), 0) + + +def test__key_splitting(): + # subdivide starting with an empty tuple + base_rect = {tuple(): (0, 0, 1, 1)} + res = _key_splitting(base_rect, ['a', 'b'], [1, 1], tuple(), True, 0) + assert_(list(iterkeys(res)) == [('a',), ('b',)]) + eq(res[('a',)], (0, 0, 0.5, 1)) + eq(res[('b',)], (0.5, 0, 0.5, 1)) + # subdivide a in two sublevel + res_bis = _key_splitting(res, ['c', 'd'], [1, 1], ('a',), False, 0) + assert_(list(iterkeys(res_bis)) == [('a', 'c'), ('a', 'd'), ('b',)]) + eq(res_bis[('a', 'c')], (0.0, 0.0, 0.5, 0.5)) + eq(res_bis[('a', 'd')], (0.0, 0.5, 0.5, 0.5)) + eq(res_bis[('b',)], (0.5, 0, 0.5, 1)) + # starting with a non empty tuple and uneven distribution + base_rect = {('total',): (0, 0, 1, 1)} + res = _key_splitting(base_rect, ['a', 'b'], [1, 2], ('total',), True, 0) + assert_(list(iterkeys(res)) == [('total',) + (e,) for e in ['a', 'b']]) + eq(res[('total', 'a')], (0, 0, 1 / 3, 1)) + eq(res[('total', 'b')], (1 / 3, 0, 2 / 3, 1)) + + +def test_proportion_normalization(): + # extremes should give the whole set, as well + # as if 0 is inserted + eq(_normalize_split(0.), [0.0, 0.0, 1.0]) + eq(_normalize_split(1.), [0.0, 1.0, 1.0]) + eq(_normalize_split(2.), [0.0, 1.0, 1.0]) + # negative values should raise ValueError + assert_raises(ValueError, _normalize_split, -1) + assert_raises(ValueError, _normalize_split, [1., -1]) + assert_raises(ValueError, _normalize_split, [1., -1, 0.]) + # if everything is zero it will complain + assert_raises(ValueError, _normalize_split, [0.]) + assert_raises(ValueError, _normalize_split, [0., 0.]) + # one-element array should return the whole interval + eq(_normalize_split([0.5]), [0.0, 1.0]) + eq(_normalize_split([1.]), [0.0, 1.0]) + eq(_normalize_split([2.]), [0.0, 1.0]) + # simple division should give two pieces + for x in [0.3, 0.5, 0.9]: + eq(_normalize_split(x), [0., x, 1.0]) + # multiple division should split as the sum of the components + for x, y in [(0.25, 0.5), (0.1, 0.8), (10., 30.)]: + eq(_normalize_split([x, y]), [0., x / (x + y), 1.0]) + for x, y, z in [(1., 1., 1.), (0.1, 0.5, 0.7), (10., 30., 40)]: + eq(_normalize_split( + [x, y, z]), [0., x / (x + y + z), (x + y) / (x + y + z), 1.0]) + + +def test_false_split(): + # if you ask it to be divided in only one piece, just return the original + # one + pure_square = [0., 0., 1., 1.] + conf_h = dict(proportion=[1], gap=0.0, horizontal=True) + conf_v = dict(proportion=[1], gap=0.0, horizontal=False) + eq(_split_rect(*pure_square, **conf_h), pure_square) + eq(_split_rect(*pure_square, **conf_v), pure_square) + conf_h = dict(proportion=[1], gap=0.5, horizontal=True) + conf_v = dict(proportion=[1], gap=0.5, horizontal=False) + eq(_split_rect(*pure_square, **conf_h), pure_square) + eq(_split_rect(*pure_square, **conf_v), pure_square) + + # identity on a void rectangle should not give anything strange + null_square = [0., 0., 0., 0.] + conf = dict(proportion=[1], gap=0.0, horizontal=True) + eq(_split_rect(*null_square, **conf), null_square) + conf = dict(proportion=[1], gap=1.0, horizontal=True) + eq(_split_rect(*null_square, **conf), null_square) + + # splitting a negative rectangle should raise error + neg_square = [0., 0., -1., 0.] + conf = dict(proportion=[1], gap=0.0, horizontal=True) + assert_raises(ValueError, _split_rect, *neg_square, **conf) + conf = dict(proportion=[1, 1], gap=0.0, horizontal=True) + assert_raises(ValueError, _split_rect, *neg_square, **conf) + conf = dict(proportion=[1], gap=0.5, horizontal=True) + assert_raises(ValueError, _split_rect, *neg_square, **conf) + conf = dict(proportion=[1, 1], gap=0.5, horizontal=True) + assert_raises(ValueError, _split_rect, *neg_square, **conf) + + +def test_rect_pure_split(): + pure_square = [0., 0., 1., 1.] + # division in two equal pieces from the perfect square + h_2split = [(0.0, 0.0, 0.5, 1.0), (0.5, 0.0, 0.5, 1.0)] + conf_h = dict(proportion=[1, 1], gap=0.0, horizontal=True) + eq(_split_rect(*pure_square, **conf_h), h_2split) + + v_2split = [(0.0, 0.0, 1.0, 0.5), (0.0, 0.5, 1.0, 0.5)] + conf_v = dict(proportion=[1, 1], gap=0.0, horizontal=False) + eq(_split_rect(*pure_square, **conf_v), v_2split) + + # division in two non-equal pieces from the perfect square + h_2split = [(0.0, 0.0, 1 / 3, 1.0), (1 / 3, 0.0, 2 / 3, 1.0)] + conf_h = dict(proportion=[1, 2], gap=0.0, horizontal=True) + eq(_split_rect(*pure_square, **conf_h), h_2split) + + v_2split = [(0.0, 0.0, 1.0, 1 / 3), (0.0, 1 / 3, 1.0, 2 / 3)] + conf_v = dict(proportion=[1, 2], gap=0.0, horizontal=False) + eq(_split_rect(*pure_square, **conf_v), v_2split) + + # division in three equal pieces from the perfect square + h_2split = [(0.0, 0.0, 1 / 3, 1.0), (1 / 3, 0.0, 1 / 3, 1.0), (2 / 3, 0.0, + 1 / 3, 1.0)] + conf_h = dict(proportion=[1, 1, 1], gap=0.0, horizontal=True) + eq(_split_rect(*pure_square, **conf_h), h_2split) + + v_2split = [(0.0, 0.0, 1.0, 1 / 3), (0.0, 1 / 3, 1.0, 1 / 3), (0.0, 2 / 3, + 1.0, 1 / 3)] + conf_v = dict(proportion=[1, 1, 1], gap=0.0, horizontal=False) + eq(_split_rect(*pure_square, **conf_v), v_2split) + + # division in three non-equal pieces from the perfect square + h_2split = [(0.0, 0.0, 1 / 4, 1.0), (1 / 4, 0.0, 1 / 2, 1.0), (3 / 4, 0.0, + 1 / 4, 1.0)] + conf_h = dict(proportion=[1, 2, 1], gap=0.0, horizontal=True) + eq(_split_rect(*pure_square, **conf_h), h_2split) + + v_2split = [(0.0, 0.0, 1.0, 1 / 4), (0.0, 1 / 4, 1.0, 1 / 2), (0.0, 3 / 4, + 1.0, 1 / 4)] + conf_v = dict(proportion=[1, 2, 1], gap=0.0, horizontal=False) + eq(_split_rect(*pure_square, **conf_v), v_2split) + + # splitting on a void rectangle should give multiple void + null_square = [0., 0., 0., 0.] + conf = dict(proportion=[1, 1], gap=0.0, horizontal=True) + eq(_split_rect(*null_square, **conf), [null_square, null_square]) + conf = dict(proportion=[1, 2], gap=1.0, horizontal=True) + eq(_split_rect(*null_square, **conf), [null_square, null_square]) + + +def test_rect_deformed_split(): + non_pure_square = [1., -1., 1., 0.5] + # division in two equal pieces from the perfect square + h_2split = [(1.0, -1.0, 0.5, 0.5), (1.5, -1.0, 0.5, 0.5)] + conf_h = dict(proportion=[1, 1], gap=0.0, horizontal=True) + eq(_split_rect(*non_pure_square, **conf_h), h_2split) + + v_2split = [(1.0, -1.0, 1.0, 0.25), (1.0, -0.75, 1.0, 0.25)] + conf_v = dict(proportion=[1, 1], gap=0.0, horizontal=False) + eq(_split_rect(*non_pure_square, **conf_v), v_2split) + + # division in two non-equal pieces from the perfect square + h_2split = [(1.0, -1.0, 1 / 3, 0.5), (1 + 1 / 3, -1.0, 2 / 3, 0.5)] + conf_h = dict(proportion=[1, 2], gap=0.0, horizontal=True) + eq(_split_rect(*non_pure_square, **conf_h), h_2split) + + v_2split = [(1.0, -1.0, 1.0, 1 / 6), (1.0, 1 / 6 - 1, 1.0, 2 / 6)] + conf_v = dict(proportion=[1, 2], gap=0.0, horizontal=False) + eq(_split_rect(*non_pure_square, **conf_v), v_2split) + + +def test_gap_split(): + pure_square = [0., 0., 1., 1.] + + # null split + conf_h = dict(proportion=[1], gap=1.0, horizontal=True) + eq(_split_rect(*pure_square, **conf_h), pure_square) + + # equal split + h_2split = [(0.0, 0.0, 0.25, 1.0), (0.75, 0.0, 0.25, 1.0)] + conf_h = dict(proportion=[1, 1], gap=1.0, horizontal=True) + eq(_split_rect(*pure_square, **conf_h), h_2split) + + # disequal split + h_2split = [(0.0, 0.0, 1 / 6, 1.0), (0.5 + 1 / 6, 0.0, 1 / 3, 1.0)] + conf_h = dict(proportion=[1, 2], gap=1.0, horizontal=True) + eq(_split_rect(*pure_square, **conf_h), h_2split) + + +@dec.skipif(not have_matplotlib or pandas_old) +def test_default_arg_index(): + # 2116 + import pandas as pd + df = pd.DataFrame({'size' : ['small', 'large', 'large', 'small', 'large', + 'small'], + 'length' : ['long', 'short', 'short', 'long', 'long', + 'short']}) + assert_raises(ValueError, mosaic, data=df, title='foobar') + pylab.close('all') + + +if __name__ == '__main__': + run_module_suite() diff --git a/statsmodels/graphics/tests/test_regressionplots.py b/statsmodels/graphics/tests/test_regressionplots.py new file mode 100644 index 0000000..3f859e6 --- /dev/null +++ b/statsmodels/graphics/tests/test_regressionplots.py @@ -0,0 +1,346 @@ +import numpy as np + +import statsmodels.api as sm +from numpy.testing import dec, assert_equal, assert_raises +from statsmodels.graphics.regressionplots import (plot_fit, plot_ccpr, + plot_partregress, plot_regress_exog, abline_plot, + plot_partregress_grid, plot_ccpr_grid, add_lowess, + plot_added_variable, plot_partial_residuals, + plot_ceres_residuals, influence_plot, plot_leverage_resid2) +from pandas import Series, DataFrame +from numpy.testing.utils import assert_array_less + +try: + import matplotlib.pyplot as plt #makes plt available for test functions + have_matplotlib = True +except: + have_matplotlib = False + +pdf_output = False + +if pdf_output: + from matplotlib.backends.backend_pdf import PdfPages + pdf = PdfPages("test_regressionplots.pdf") +else: + pdf = None + +def close_or_save(pdf, fig): + if pdf_output: + pdf.savefig(fig) + plt.close(fig) + +@dec.skipif(not have_matplotlib) +def teardown_module(): + plt.close('all') + if pdf_output: + pdf.close() + +class TestPlot(object): + + def __init__(self): + self.setup() #temp: for testing without nose + + def setup(self): + nsample = 100 + sig = 0.5 + x1 = np.linspace(0, 20, nsample) + x2 = 5 + 3* np.random.randn(nsample) + X = np.c_[x1, x2, np.sin(0.5*x1), (x2-5)**2, np.ones(nsample)] + beta = [0.5, 0.5, 1, -0.04, 5.] + y_true = np.dot(X, beta) + y = y_true + sig * np.random.normal(size=nsample) + exog0 = sm.add_constant(np.c_[x1, x2], prepend=False) + res = sm.OLS(y, exog0).fit() + + self.res = res + + @dec.skipif(not have_matplotlib) + def test_plot_fit(self): + res = self.res + + fig = plot_fit(res, 0, y_true=None) + + x0 = res.model.exog[:, 0] + yf = res.fittedvalues + y = res.model.endog + + px1, px2 = fig.axes[0].get_lines()[0].get_data() + np.testing.assert_equal(x0, px1) + np.testing.assert_equal(y, px2) + + px1, px2 = fig.axes[0].get_lines()[1].get_data() + np.testing.assert_equal(x0, px1) + np.testing.assert_equal(yf, px2) + + close_or_save(pdf, fig) + + @dec.skipif(not have_matplotlib) + def test_plot_oth(self): + #just test that they run + res = self.res + plt.close('all') + plot_fit(res, 0, y_true=None) + plt.close('all') + plot_partregress_grid(res, exog_idx=[0,1]) + plt.close('all') + plot_regress_exog(res, exog_idx=0) + plt.close('all') + plot_ccpr(res, exog_idx=0) + plt.close('all') + plot_ccpr_grid(res, exog_idx=[0]) + plt.close('all') + fig = plot_ccpr_grid(res, exog_idx=[0,1]) + for ax in fig.axes: + add_lowess(ax) + + close_or_save(pdf, fig) + plt.close('all') + + @dec.skipif(not have_matplotlib) + def test_plot_influence(self): + infl = self.res.get_influence() + fig = influence_plot(self.res) + assert_equal(isinstance(fig, plt.Figure), True) + # test that we have the correct criterion for sizes #3103 + try: + sizes = fig.axes[0].get_children()[0]._sizes + ex = sm.add_constant(infl.cooks_distance[0]) + ssr = sm.OLS(sizes, ex).fit().ssr + assert_array_less(ssr, 1e-12) + except AttributeError: + import warnings + warnings.warn('test not compatible with matplotlib version') + plt.close(fig) + + fig = influence_plot(self.res, criterion='DFFITS') + assert_equal(isinstance(fig, plt.Figure), True) + try: + sizes = fig.axes[0].get_children()[0]._sizes + ex = sm.add_constant(np.abs(infl.dffits[0])) + ssr = sm.OLS(sizes, ex).fit().ssr + assert_array_less(ssr, 1e-12) + except AttributeError: + pass + plt.close(fig) + + assert_raises(ValueError, influence_plot, self.res, criterion='unknown') + + @dec.skipif(not have_matplotlib) + def test_plot_leverage_resid2(self): + fig = plot_leverage_resid2(self.res) + assert_equal(isinstance(fig, plt.Figure), True) + plt.close(fig) + + +class TestPlotPandas(TestPlot): + def setup(self): + nsample = 100 + sig = 0.5 + x1 = np.linspace(0, 20, nsample) + x2 = 5 + 3* np.random.randn(nsample) + X = np.c_[x1, x2, np.sin(0.5*x1), (x2-5)**2, np.ones(nsample)] + beta = [0.5, 0.5, 1, -0.04, 5.] + y_true = np.dot(X, beta) + y = y_true + sig * np.random.normal(size=nsample) + exog0 = sm.add_constant(np.c_[x1, x2], prepend=False) + exog0 = DataFrame(exog0, columns=["const", "var1", "var2"]) + y = Series(y, name="outcome") + res = sm.OLS(y, exog0).fit() + self.res = res + data = DataFrame(exog0, columns=["const", "var1", "var2"]) + data['y'] = y + self.data = data + +class TestPlotFormula(TestPlotPandas): + @dec.skipif(not have_matplotlib) + def test_one_column_exog(self): + from statsmodels.formula.api import ols + res = ols("y~var1-1", data=self.data).fit() + plot_regress_exog(res, "var1") + plt.close('all') + res = ols("y~var1", data=self.data).fit() + plot_regress_exog(res, "var1") + plt.close('all') + + +class TestABLine(object): + + @classmethod + def setupClass(cls): + np.random.seed(12345) + X = sm.add_constant(np.random.normal(0, 20, size=30)) + y = np.dot(X, [25, 3.5]) + np.random.normal(0, 30, size=30) + mod = sm.OLS(y,X).fit() + cls.X = X + cls.y = y + cls.mod = mod + + @dec.skipif(not have_matplotlib) + def test_abline_model(self): + fig = abline_plot(model_results=self.mod) + ax = fig.axes[0] + ax.scatter(self.X[:,1], self.y) + close_or_save(pdf, fig) + + @dec.skipif(not have_matplotlib) + def test_abline_model_ax(self): + fig = plt.figure() + ax = fig.add_subplot(111) + ax.scatter(self.X[:,1], self.y) + fig = abline_plot(model_results=self.mod, ax=ax) + close_or_save(pdf, fig) + + @dec.skipif(not have_matplotlib) + def test_abline_ab(self): + mod = self.mod + intercept, slope = mod.params + fig = abline_plot(intercept=intercept, slope=slope) + close_or_save(pdf, fig) + + @dec.skipif(not have_matplotlib) + def test_abline_ab_ax(self): + mod = self.mod + intercept, slope = mod.params + fig = plt.figure() + ax = fig.add_subplot(111) + ax.scatter(self.X[:,1], self.y) + fig = abline_plot(intercept=intercept, slope=slope, ax=ax) + close_or_save(pdf, fig) + +class TestABLinePandas(TestABLine): + @classmethod + def setupClass(cls): + np.random.seed(12345) + X = sm.add_constant(np.random.normal(0, 20, size=30)) + y = np.dot(X, [25, 3.5]) + np.random.normal(0, 30, size=30) + cls.X = X + cls.y = y + X = DataFrame(X, columns=["const", "someX"]) + y = Series(y, name="outcome") + mod = sm.OLS(y,X).fit() + cls.mod = mod + +class TestAddedVariablePlot(object): + + @dec.skipif(not have_matplotlib) + def test_added_variable_poisson(self): + + np.random.seed(3446) + + n = 100 + p = 3 + exog = np.random.normal(size=(n, p)) + lin_pred = 4 + exog[:, 0] + 0.2*exog[:, 1]**2 + expval = np.exp(lin_pred) + endog = np.random.poisson(expval) + + model = sm.GLM(endog, exog, family=sm.families.Poisson()) + results = model.fit() + + for focus_col in 0, 1, 2: + for use_glm_weights in False, True: + for resid_type in "resid_deviance", "resid_response": + weight_str = ["Unweighted", "Weighted"][use_glm_weights] + + # Run directly and called as a results method. + for j in 0,1: + + if j == 0: + fig = plot_added_variable(results, focus_col, + use_glm_weights=use_glm_weights, + resid_type=resid_type) + ti = "Added variable plot" + else: + fig = results.plot_added_variable(focus_col, + use_glm_weights=use_glm_weights, + resid_type=resid_type) + ti = "Added variable plot (called as method)" + ax = fig.get_axes()[0] + + add_lowess(ax) + ax.set_position([0.1, 0.1, 0.8, 0.7]) + effect_str = ["Linear effect, slope=1", + "Quadratic effect", "No effect"][focus_col] + ti += "\nPoisson regression\n" + ti += effect_str + "\n" + ti += weight_str + "\n" + ti += "Using '%s' residuals" % resid_type + ax.set_title(ti) + close_or_save(pdf, fig) + + +class TestPartialResidualPlot(object): + + @dec.skipif(not have_matplotlib) + def test_partial_residual_poisson(self): + + np.random.seed(3446) + + n = 100 + p = 3 + exog = np.random.normal(size=(n, p)) + exog[:, 0] = 1 + lin_pred = 4 + exog[:, 1] + 0.2*exog[:, 2]**2 + expval = np.exp(lin_pred) + endog = np.random.poisson(expval) + + model = sm.GLM(endog, exog, family=sm.families.Poisson()) + results = model.fit() + + for focus_col in 1, 2: + for j in 0,1: + if j == 0: + fig = plot_partial_residuals(results, focus_col) + else: + fig = results.plot_partial_residuals(focus_col) + ax = fig.get_axes()[0] + add_lowess(ax) + ax.set_position([0.1, 0.1, 0.8, 0.77]) + effect_str = ["Intercept", "Linear effect, slope=1", + "Quadratic effect"][focus_col] + ti = "Partial residual plot" + if j == 1: + ti += " (called as method)" + ax.set_title(ti + "\nPoisson regression\n" + + effect_str) + close_or_save(pdf, fig) + +class TestCERESPlot(object): + + @dec.skipif(not have_matplotlib) + def test_ceres_poisson(self): + + np.random.seed(3446) + + n = 100 + p = 3 + exog = np.random.normal(size=(n, p)) + exog[:, 0] = 1 + lin_pred = 4 + exog[:, 1] + 0.2*exog[:, 2]**2 + expval = np.exp(lin_pred) + endog = np.random.poisson(expval) + + model = sm.GLM(endog, exog, family=sm.families.Poisson()) + results = model.fit() + + for focus_col in 1, 2: + for j in 0, 1: + if j == 0: + fig = plot_ceres_residuals(results, focus_col) + else: + fig = results.plot_ceres_residuals(focus_col) + ax = fig.get_axes()[0] + add_lowess(ax) + ax.set_position([0.1, 0.1, 0.8, 0.77]) + effect_str = ["Intercept", "Linear effect, slope=1", + "Quadratic effect"][focus_col] + ti = "CERES plot" + if j == 1: + ti += " (called as method)" + ax.set_title(ti + "\nPoisson regression\n" + + effect_str) + close_or_save(pdf, fig) + +if __name__ == "__main__": + import nose + nose.runmodule(argv=[__file__, '-vvs', '-x', '--pdb'], exit=False) diff --git a/statsmodels/graphics/tests/test_tsaplots.py b/statsmodels/graphics/tests/test_tsaplots.py new file mode 100644 index 0000000..7ffb943 --- /dev/null +++ b/statsmodels/graphics/tests/test_tsaplots.py @@ -0,0 +1,160 @@ +from statsmodels.compat.python import lmap, map +import numpy as np +import pandas as pd +from numpy.testing import dec, assert_equal + +import statsmodels.api as sm +from statsmodels.graphics.tsaplots import (plot_acf, plot_pacf, month_plot, + quarter_plot, seasonal_plot) +import statsmodels.tsa.arima_process as tsp + + +try: + import matplotlib.pyplot as plt + have_matplotlib = True +except: + have_matplotlib = False + + +@dec.skipif(not have_matplotlib) +def test_plot_acf(): + # Just test that it runs. + fig = plt.figure() + ax = fig.add_subplot(111) + + ar = np.r_[1., -0.9] + ma = np.r_[1., 0.9] + armaprocess = tsp.ArmaProcess(ar, ma) + rs = np.random.RandomState(1234) + acf = armaprocess.generate_sample(100, distrvs=rs.standard_normal) + plot_acf(acf, ax=ax, lags=10) + plot_acf(acf, ax=ax) + plot_acf(acf, ax=ax, alpha=None) + + plt.close(fig) + + +@dec.skipif(not have_matplotlib) +def test_plot_acf_irregular(): + # Just test that it runs. + fig = plt.figure() + ax = fig.add_subplot(111) + + ar = np.r_[1., -0.9] + ma = np.r_[1., 0.9] + armaprocess = tsp.ArmaProcess(ar, ma) + rs = np.random.RandomState(1234) + acf = armaprocess.generate_sample(100, distrvs=rs.standard_normal) + plot_acf(acf, ax=ax, lags=np.arange(1, 11)) + plot_acf(acf, ax=ax, lags=10, zero=False) + plot_acf(acf, ax=ax, alpha=None, zero=False) + + plt.close(fig) + + +@dec.skipif(not have_matplotlib) +def test_plot_pacf(): + # Just test that it runs. + fig = plt.figure() + ax = fig.add_subplot(111) + + ar = np.r_[1., -0.9] + ma = np.r_[1., 0.9] + armaprocess = tsp.ArmaProcess(ar, ma) + rs = np.random.RandomState(1234) + pacf = armaprocess.generate_sample(100, distrvs=rs.standard_normal) + plot_pacf(pacf, ax=ax) + plot_pacf(pacf, ax=ax, alpha=None) + + plt.close(fig) + + +@dec.skipif(not have_matplotlib) +def test_plot_pacf_irregular(): + # Just test that it runs. + fig = plt.figure() + ax = fig.add_subplot(111) + + ar = np.r_[1., -0.9] + ma = np.r_[1., 0.9] + armaprocess = tsp.ArmaProcess(ar, ma) + rs = np.random.RandomState(1234) + pacf = armaprocess.generate_sample(100, distrvs=rs.standard_normal) + plot_pacf(pacf, ax=ax, lags=np.arange(1, 11)) + plot_pacf(pacf, ax=ax, lags=10, zero=False) + plot_pacf(pacf, ax=ax, alpha=None, zero=False) + + plt.close(fig) + +@dec.skipif(not have_matplotlib) +def test_plot_month(): + dta = sm.datasets.elnino.load_pandas().data + dta['YEAR'] = dta.YEAR.astype(int).apply(str) + dta = dta.set_index('YEAR').T.unstack() + dates = lmap(lambda x : pd.datetools.parse_time_string('1 '+' '.join(x))[0], + dta.index.values) + + # test dates argument + fig = month_plot(dta.values, dates=dates, ylabel='el nino') + plt.close(fig) + + # test with a TimeSeries DatetimeIndex with no freq + dta.index = pd.DatetimeIndex(dates) + fig = month_plot(dta) + plt.close(fig) + + # w freq + dta.index = pd.DatetimeIndex(dates, freq='M') + fig = month_plot(dta) + plt.close(fig) + + # test with a TimeSeries PeriodIndex + dta.index = pd.PeriodIndex(dates, freq='M') + fig = month_plot(dta) + plt.close(fig) + +@dec.skipif(not have_matplotlib) +def test_plot_quarter(): + dta = sm.datasets.macrodata.load_pandas().data + dates = lmap('Q'.join, zip(dta.year.astype(int).apply(str), + dta.quarter.astype(int).apply(str))) + # test dates argument + quarter_plot(dta.unemp.values, dates) + plt.close('all') + + # test with a DatetimeIndex with no freq + parser = pd.datetools.parse_time_string + dta.set_index(pd.DatetimeIndex((x[0] for x in map(parser, dates))), + inplace=True) + quarter_plot(dta.unemp) + plt.close('all') + + # w freq + # see pandas #6631 + dta.index = pd.DatetimeIndex((x[0] for x in map(parser, dates)), + freq='QS-Oct') + quarter_plot(dta.unemp) + plt.close('all') + + # w PeriodIndex + dta.index = pd.PeriodIndex((x[0] for x in map(parser, dates)), + freq='Q') + quarter_plot(dta.unemp) + plt.close('all') + +@dec.skipif(not have_matplotlib) +def test_seasonal_plot(): + rs = np.random.RandomState(1234) + data = rs.randn(20,12) + data += 6*np.sin(np.arange(12.0)/11*np.pi)[None,:] + data = data.ravel() + months = np.tile(np.arange(1,13),(20,1)) + months = months.ravel() + df = pd.DataFrame([data,months],index=['data','months']).T + grouped = df.groupby('months')['data'] + labels = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'] + fig = seasonal_plot(grouped, labels) + ax = fig.get_axes()[0] + output = [tl.get_text() for tl in ax.get_xticklabels()] + assert_equal(labels, output) + plt.close('all') diff --git a/statsmodels/graphics/tsaplots.py b/statsmodels/graphics/tsaplots.py new file mode 100644 index 0000000..8278877 --- /dev/null +++ b/statsmodels/graphics/tsaplots.py @@ -0,0 +1,326 @@ +"""Correlation plot functions.""" + + +import numpy as np + +from statsmodels.compat.pandas import sort_values +from statsmodels.graphics import utils +from statsmodels.tsa.stattools import acf, pacf + + +def _prepare_data_corr_plot(x, lags, zero): + zero = bool(zero) + irregular = False if zero else True + if lags is None: + lags = np.arange(not zero, len(x)) + elif np.isscalar(lags): + lags = np.arange(not zero, int(lags) + 1) # +1 for zero lag + else: + irregular = True + lags = np.asanyarray(lags).astype(np.int) + nlags = lags.max(0) + + return lags, nlags, irregular + + +def _plot_corr(ax, title, acf_x, confint, lags, irregular, use_vlines, **kwargs): + if irregular: + acf_x = acf_x[lags] + if confint is not None: + confint = confint[lags] + + if use_vlines: + ax.vlines(lags, [0], acf_x, **kwargs) + ax.axhline(**kwargs) + + kwargs.setdefault('marker', 'o') + kwargs.setdefault('markersize', 5) + kwargs.setdefault('linestyle', 'None') + ax.margins(.05) + ax.plot(lags, acf_x, **kwargs) + ax.set_title(title) + + if confint is not None: + if lags[0] == 0: + lags = lags[1:] + confint = confint[1:] + acf_x = acf_x[1:] + ax.fill_between(lags, confint[:, 0] - acf_x, confint[:, 1] - acf_x, alpha=.25) + + +def plot_acf(x, ax=None, lags=None, alpha=.05, use_vlines=True, unbiased=False, + fft=False, title='Autocorrelation', zero=True, **kwargs): + """Plot the autocorrelation function + + Plots lags on the horizontal and the correlations on vertical axis. + + Parameters + ---------- + x : array_like + Array of time-series values + ax : Matplotlib AxesSubplot instance, optional + If given, this subplot is used to plot in instead of a new figure being + created. + lags : int or array_like, optional + int or Array of lag values, used on horizontal axis. Uses + np.arange(lags) when lags is an int. If not provided, + ``lags=np.arange(len(corr))`` is used. + alpha : scalar, optional + If a number is given, the confidence intervals for the given level are + returned. For instance if alpha=.05, 95 % confidence intervals are + returned where the standard deviation is computed according to + Bartlett's formula. If None, no confidence intervals are plotted. + use_vlines : bool, optional + If True, vertical lines and markers are plotted. + If False, only markers are plotted. The default marker is 'o'; it can + be overridden with a ``marker`` kwarg. + unbiased : bool + If True, then denominators for autocovariance are n-k, otherwise n + fft : bool, optional + If True, computes the ACF via FFT. + title : str, optional + Title to place on plot. Default is 'Autocorrelation' + zero : bool, optional + Flag indicating whether to include the 0-lag autocorrelation. + Default is True. + **kwargs : kwargs, optional + Optional keyword arguments that are directly passed on to the + Matplotlib ``plot`` and ``axhline`` functions. + + Returns + ------- + fig : Matplotlib figure instance + If `ax` is None, the created figure. Otherwise the figure to which + `ax` is connected. + + See Also + -------- + matplotlib.pyplot.xcorr + matplotlib.pyplot.acorr + mpl_examples/pylab_examples/xcorr_demo.py + + Notes + ----- + Adapted from matplotlib's `xcorr`. + + Data are plotted as ``plot(lags, corr, **kwargs)`` + + """ + fig, ax = utils.create_mpl_ax(ax) + + lags, nlags, irregular = _prepare_data_corr_plot(x, lags, zero) + + confint = None + # acf has different return type based on alpha + if alpha is None: + acf_x = acf(x, nlags=nlags, alpha=alpha, fft=fft, + unbiased=unbiased) + else: + acf_x, confint = acf(x, nlags=nlags, alpha=alpha, fft=fft, + unbiased=unbiased) + + _plot_corr(ax, title, acf_x, confint, lags, irregular, use_vlines, **kwargs) + + return fig + + +def plot_pacf(x, ax=None, lags=None, alpha=.05, method='ywm', use_vlines=True, + title='Partial Autocorrelation', zero=True, **kwargs): + """Plot the partial autocorrelation function + + Plots lags on the horizontal and the correlations on vertical axis. + + Parameters + ---------- + x : array_like + Array of time-series values + ax : Matplotlib AxesSubplot instance, optional + If given, this subplot is used to plot in instead of a new figure being + created. + lags : int or array_like, optional + int or Array of lag values, used on horizontal axis. Uses + np.arange(lags) when lags is an int. If not provided, + ``lags=np.arange(len(corr))`` is used. + alpha : scalar, optional + If a number is given, the confidence intervals for the given level are + returned. For instance if alpha=.05, 95 % confidence intervals are + returned where the standard deviation is computed according to + 1/sqrt(len(x)) + method : 'ywunbiased' (default) or 'ywmle' or 'ols' + specifies which method for the calculations to use: + + - yw or ywunbiased : yule walker with bias correction in denominator + for acovf + - ywm or ywmle : yule walker without bias correction + - ols - regression of time series on lags of it and on constant + - ld or ldunbiased : Levinson-Durbin recursion with bias correction + - ldb or ldbiased : Levinson-Durbin recursion without bias correction + use_vlines : bool, optional + If True, vertical lines and markers are plotted. + If False, only markers are plotted. The default marker is 'o'; it can + be overridden with a ``marker`` kwarg. + title : str, optional + Title to place on plot. Default is 'Partial Autocorrelation' + zero : bool, optional + Flag indicating whether to include the 0-lag autocorrelation. + Default is True. + **kwargs : kwargs, optional + Optional keyword arguments that are directly passed on to the + Matplotlib ``plot`` and ``axhline`` functions. + + Returns + ------- + fig : Matplotlib figure instance + If `ax` is None, the created figure. Otherwise the figure to which + `ax` is connected. + + See Also + -------- + matplotlib.pyplot.xcorr + matplotlib.pyplot.acorr + mpl_examples/pylab_examples/xcorr_demo.py + + Notes + ----- + Adapted from matplotlib's `xcorr`. + + Data are plotted as ``plot(lags, corr, **kwargs)`` + + """ + fig, ax = utils.create_mpl_ax(ax) + + lags, nlags, irregular = _prepare_data_corr_plot(x, lags, zero) + + confint = None + if alpha is None: + acf_x = pacf(x, nlags=nlags, alpha=alpha, method=method) + else: + acf_x, confint = pacf(x, nlags=nlags, alpha=alpha, method=method) + + _plot_corr(ax, title, acf_x, confint, lags, irregular, use_vlines, **kwargs) + + return fig + + +def seasonal_plot(grouped_x, xticklabels, ylabel=None, ax=None): + """ + Consider using one of month_plot or quarter_plot unless you need + irregular plotting. + + Parameters + ---------- + grouped_x : iterable of DataFrames + Should be a GroupBy object (or similar pair of group_names and groups + as DataFrames) with a DatetimeIndex or PeriodIndex + xticklabels : list of str + List of season labels, one for each group. + ylabel : str + Lable for y axis + ax : Matplotlib AxesSubplot instance, optional + If given, this subplot is used to plot in instead of a new figure being + created. + """ + fig, ax = utils.create_mpl_ax(ax) + start = 0 + ticks = [] + for season, df in grouped_x: + df = df.copy() # or sort balks for series. may be better way + df.sort_index() + nobs = len(df) + x_plot = np.arange(start, start + nobs) + ticks.append(x_plot.mean()) + ax.plot(x_plot, df.values, 'k') + ax.hlines(df.values.mean(), x_plot[0], x_plot[-1], colors='r', + linewidth=3) + start += nobs + + ax.set_xticks(ticks) + ax.set_xticklabels(xticklabels) + ax.set_ylabel(ylabel) + ax.margins(.1, .05) + return fig + + +def month_plot(x, dates=None, ylabel=None, ax=None): + """ + Seasonal plot of monthly data + + Parameters + ---------- + x : array-like + Seasonal data to plot. If dates is None, x must be a pandas object + with a PeriodIndex or DatetimeIndex with a monthly frequency. + dates : array-like, optional + If `x` is not a pandas object, then dates must be supplied. + ylabel : str, optional + The label for the y-axis. Will attempt to use the `name` attribute + of the Series. + ax : matplotlib.axes, optional + Existing axes instance. + + Returns + ------- + matplotlib.Figure + + Examples + -------- + >>> import statsmodels.api as sm + >>> import pandas as pd + + >>> dta = sm.datasets.elnino.load_pandas().data + >>> dta['YEAR'] = dta.YEAR.astype(int).astype(str) + >>> dta = dta.set_index('YEAR').T.unstack() + >>> dates = pd.to_datetime(list(map(lambda x : '-'.join(x) + '-1', + ... dta.index.values))) + + >>> dta.index = pd.DatetimeIndex(dates, freq='M') + >>> fig = sm.graphics.tsa.month_plot(dta) + + .. plot:: plots/graphics_month_plot.py + """ + from pandas import DataFrame + + if dates is None: + from statsmodels.tools.data import _check_period_index + _check_period_index(x, freq="M") + else: + from pandas import Series, PeriodIndex + x = Series(x, index=PeriodIndex(dates, freq="M")) + + xticklabels = ['j','f','m','a','m','j','j','a','s','o','n','d'] + return seasonal_plot(x.groupby(lambda y : y.month), xticklabels, + ylabel=ylabel, ax=ax) + +def quarter_plot(x, dates=None, ylabel=None, ax=None): + """ + Seasonal plot of quarterly data + + Parameters + ---------- + x : array-like + Seasonal data to plot. If dates is None, x must be a pandas object + with a PeriodIndex or DatetimeIndex with a monthly frequency. + dates : array-like, optional + If `x` is not a pandas object, then dates must be supplied. + ylabel : str, optional + The label for the y-axis. Will attempt to use the `name` attribute + of the Series. + ax : matplotlib.axes, optional + Existing axes instance. + + Returns + ------- + matplotlib.Figure + """ + from pandas import DataFrame + + if dates is None: + from statsmodels.tools.data import _check_period_index + _check_period_index(x, freq="Q") + else: + from pandas import Series, PeriodIndex + x = Series(x, index=PeriodIndex(dates, freq="Q")) + + xticklabels = ['q1', 'q2', 'q3', 'q4'] + return seasonal_plot(x.groupby(lambda y : y.quarter), xticklabels, + ylabel=ylabel, ax=ax) diff --git a/statsmodels/graphics/tukeyplot.py b/statsmodels/graphics/tukeyplot.py new file mode 100644 index 0000000..93ecebd --- /dev/null +++ b/statsmodels/graphics/tukeyplot.py @@ -0,0 +1,78 @@ +from statsmodels.compat.python import range +import numpy as np +import matplotlib.pyplot as plt +import matplotlib.ticker as mticker +import matplotlib.lines as lines + + +def tukeyplot(results, dim=None, yticklabels=None): + npairs = len(results) + + fig = plt.figure() + fsp = fig.add_subplot(111) + fsp.axis([-50,50,0.5,10.5]) + fsp.set_title('95 % family-wise confidence level') + fsp.title.set_y(1.025) + fsp.set_yticks(np.arange(1,11)) + fsp.set_yticklabels(['V-T','V-S','T-S','V-P','T-P','S-P','V-M', + 'T-M','S-M','P-M']) + #fsp.yaxis.set_major_locator(mticker.MaxNLocator(npairs)) + fsp.yaxis.grid(True, linestyle='-', color='gray') + fsp.set_xlabel('Differences in mean levels of Var', labelpad=8) + fsp.xaxis.tick_bottom() + fsp.yaxis.tick_left() + + xticklines = fsp.get_xticklines() + for xtickline in xticklines: + xtickline.set_marker(lines.TICKDOWN) + xtickline.set_markersize(10) + + xlabels = fsp.get_xticklabels() + for xlabel in xlabels: + xlabel.set_y(-.04) + + yticklines = fsp.get_yticklines() + for ytickline in yticklines: + ytickline.set_marker(lines.TICKLEFT) + ytickline.set_markersize(10) + + ylabels = fsp.get_yticklabels() + for ylabel in ylabels: + ylabel.set_x(-.04) + + for pair in range(npairs): + data = .5+results[pair]/100. + #fsp.axhline(y=npairs-pair, xmin=data[0], xmax=data[1], linewidth=1.25, + fsp.axhline(y=npairs-pair, xmin=data.mean(), xmax=data[1], linewidth=1.25, + color='blue', marker="|", markevery=1) + + fsp.axhline(y=npairs-pair, xmin=data[0], xmax=data.mean(), linewidth=1.25, + color='blue', marker="|", markevery=1) + + #for pair in range(npairs): + # data = .5+results[pair]/100. + # data = results[pair] + # data = np.r_[data[0],data.mean(),data[1]] + # l = plt.plot(data, [npairs-pair]*len(data), color='black', + # linewidth=.5, marker="|", markevery=1) + + fsp.axvline(x=0, linestyle="--", color='black') + + fig.subplots_adjust(bottom=.125) + + + +results = np.array([[-10.04391794, 26.34391794], + [-21.45225794, 14.93557794], + [ 5.61441206, 42.00224794], + [-13.40225794, 22.98557794], + [-29.60225794, 6.78557794], + [ -2.53558794, 33.85224794], + [-21.55225794, 14.83557794], + [ 8.87275206, 45.26058794], + [-10.14391794, 26.24391794], + [-37.21058794, -0.82275206]]) + + +#plt.show() + diff --git a/statsmodels/graphics/utils.py b/statsmodels/graphics/utils.py new file mode 100644 index 0000000..938f37f --- /dev/null +++ b/statsmodels/graphics/utils.py @@ -0,0 +1,149 @@ +"""Helper functions for graphics with Matplotlib.""" +from statsmodels.compat.python import lrange, range, long + +__all__ = ['create_mpl_ax', 'create_mpl_fig'] + + +def _import_mpl(): + """This function is not needed outside this utils module.""" + try: + import matplotlib.pyplot as plt + except: + raise ImportError("Matplotlib is not found.") + + return plt + + +def create_mpl_ax(ax=None): + """Helper function for when a single plot axis is needed. + + Parameters + ---------- + ax : Matplotlib AxesSubplot instance, optional + If given, this subplot is used to plot in instead of a new figure being + created. + + Returns + ------- + fig : Matplotlib figure instance + If `ax` is None, the created figure. Otherwise the figure to which + `ax` is connected. + ax : Matplotlib AxesSubplot instance + The created axis if `ax` is None, otherwise the axis that was passed + in. + + Notes + ----- + This function imports `matplotlib.pyplot`, which should only be done to + create (a) figure(s) with ``plt.figure``. All other functionality exposed + by the pyplot module can and should be imported directly from its + Matplotlib module. + + See Also + -------- + create_mpl_fig + + Examples + -------- + A plotting function has a keyword ``ax=None``. Then calls: + + >>> from statsmodels.graphics import utils + >>> fig, ax = utils.create_mpl_ax(ax) + + """ + if ax is None: + plt = _import_mpl() + fig = plt.figure() + ax = fig.add_subplot(111) + else: + fig = ax.figure + + return fig, ax + + +def create_mpl_fig(fig=None, figsize=None): + """Helper function for when multiple plot axes are needed. + + Those axes should be created in the functions they are used in, with + ``fig.add_subplot()``. + + Parameters + ---------- + fig : Matplotlib figure instance, optional + If given, this figure is simply returned. Otherwise a new figure is + created. + + Returns + ------- + fig : Matplotlib figure instance + If `fig` is None, the created figure. Otherwise the input `fig` is + returned. + + See Also + -------- + create_mpl_ax + + """ + if fig is None: + plt = _import_mpl() + fig = plt.figure(figsize=figsize) + + return fig + + +def maybe_name_or_idx(idx, model): + """ + Give a name or an integer and return the name and integer location of the + column in a design matrix. + """ + if idx is None: + idx = lrange(model.exog.shape[1]) + if isinstance(idx, (int, long)): + exog_name = model.exog_names[idx] + exog_idx = idx + # anticipate index as list and recurse + elif isinstance(idx, (tuple, list)): + exog_name = [] + exog_idx = [] + for item in idx: + exog_name_item, exog_idx_item = maybe_name_or_idx(item, model) + exog_name.append(exog_name_item) + exog_idx.append(exog_idx_item) + else: # assume we've got a string variable + exog_name = idx + exog_idx = model.exog_names.index(idx) + + return exog_name, exog_idx + + +def get_data_names(series_or_dataframe): + """ + Input can be an array or pandas-like. Will handle 1d array-like but not + 2d. Returns a str for 1d data or a list of strings for 2d data. + """ + names = getattr(series_or_dataframe, 'name', None) + if not names: + names = getattr(series_or_dataframe, 'columns', None) + if not names: + shape = getattr(series_or_dataframe, 'shape', [1]) + nvars = 1 if len(shape) == 1 else series.shape[1] + names = ["X%d" for names in range(nvars)] + if nvars == 1: + names = names[0] + else: + names = names.tolist() + return names + + +def annotate_axes(index, labels, points, offset_points, size, ax, **kwargs): + """ + Annotate Axes with labels, points, offset_points according to the + given index. + """ + for i in index: + label = labels[i] + point = points[i] + offset = offset_points[i] + ax.annotate(label, point, xytext=offset, textcoords="offset points", + size=size, **kwargs) + return ax diff --git a/statsmodels/imputation/__init__.py b/statsmodels/imputation/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/imputation/mice.py b/statsmodels/imputation/mice.py new file mode 100644 index 0000000..44aad46 --- /dev/null +++ b/statsmodels/imputation/mice.py @@ -0,0 +1,1335 @@ +""" +Overview +-------- + +This module implements the Multiple Imputation through Chained +Equations (MICE) approach to handling missing data in statistical data +analyses. The approach has the following steps: + +0. Impute each missing value with the mean of the observed values of +the same variable. + +1. For each variable in the data set with missing values (termed the +'focus variable'), do the following: + +1a. Fit an 'imputation model', which is a regression model for the +focus variable, regressed on the observed and (current) imputed values +of some or all of the other variables. + +1b. Impute the missing values for the focus variable. Currently this +imputation must use the 'predictive mean matching' (pmm) procedure. + +2. Once all variables have been imputed, fit the 'analysis model' to +the data set. + +3. Repeat steps 1-2 multiple times and combine the results using a +'combining rule' to produce point estimates of all parameters in the +analysis model and standard errors for them. + +The imputations for each variable are based on an imputation model +that is specified via a model class and a formula for the regression +relationship. The default model is OLS, with a formula specifying +main effects for all other variables. + +The MICE procedure can be used in one of two ways: + +* If the goal is only to produce imputed data sets, the MICEData class +can be used to wrap a data frame, providing facilities for doing the +imputation. Summary plots are available for assessing the performance +of the imputation. + +* If the imputed data sets are to be used to fit an additional +'analysis model', a MICE instance can be used. After specifying the +MICE instance and running it, the results are combined using the +`combine` method. Results and various summary plots are then +available. + +Terminology +----------- + +The primary goal of the analysis is usually to fit and perform +inference using an 'analysis model'. If an analysis model is not +specified, then imputed datasets are produced for later use. + +The MICE procedure involves a family of imputation models. There is +one imputation model for each variable with missing values. An +imputation model may be conditioned on all or a subset of the +remaining variables, using main effects, transformations, +interactions, etc. as desired. + +A 'perturbation method' is a method for setting the parameter estimate +in an imputation model. The 'gaussian' perturbation method first fits +the model (usually using maximum likelihood, but it could use any +statsmodels fit procedure), then sets the parameter vector equal to a +draw from the Gaussian approximation to the sampling distribution for +the fit. The 'bootstrap' perturbation method sets the parameter +vector equal to a fitted parameter vector obtained when fitting the +conditional model to a bootstrapped version of the data set. + +Class structure +--------------- + +There are two main classes in the module: + +* 'MICEData' wraps a Pandas dataframe, incorporating information about + the imputation model for each variable with missing values. It can + be used to produce multiply imputed data sets that are to be further + processed or distributed to other researchers. A number of plotting + procedures are provided to visualize the imputation results and + missing data patterns. The `history_func` hook allows any features + of interest of the imputed data sets to be saved for further + analysis. + +* 'MICE' takes both a 'MICEData' object and an analysis model + specification. It runs the multiple imputation, fits the analysis + models, and combines the results to produce a `MICEResults` object. + The summary method of this results object can be used to see the key + estimands and inferential quantities.. + +Notes +----- + +By default, to conserve memory 'MICEData' saves very little +information from one iteration to the next. The data set passed by +the user is copied on entry, but then is over-written each time new +imputations are produced. If using 'MICE', the fitted +analysis models and results are saved. MICEData includes a +`history_callback` hook that allows arbitrary information from the +intermediate datasets to be saved for future use. + +References +---------- + +JL Schafer: 'Multiple Imputation: A Primer', Stat Methods Med Res, +1999. + +TE Raghunathan et al.: 'A Multivariate Technique for Multiply +Imputing Missing Values Using a Sequence of Regression Models', Survey +Methodology, 2001. + +SAS Institute: 'Predictive Mean Matching Method for Monotone Missing +Data', SAS 9.2 User's Guide, 2014. + +A Gelman et al.: 'Multiple Imputation with Diagnostics (mi) in R: +Opening Windows into the Black Box', Journal of Statistical Software, +2009. +""" + +import pandas as pd +import numpy as np +import patsy +import statsmodels +from statsmodels.base.model import LikelihoodModelResults +from statsmodels.regression.linear_model import OLS +from collections import defaultdict + + +_mice_data_example_1 = """ + >>> imp = mice.MICEData(data) + >>> imp.set_imputer('x1', formula='x2 + np.square(x2) + x3') + >>> for j in range(20): + imp.update_all() + imp.data.to_csv('data%02d.csv' % j)""" + +_mice_data_example_2 = """ + >>> imp = mice.MICEData(data) + >>> j = 0 + >>> for data in imp: + imp.data.to_csv('data%02d.csv' % j) + j += 1""" + + +class PatsyFormula(object): + """ + A simple wrapper for a string to be interpreted as a Patsy formula. + """ + def __init__(self, formula): + self.formula = "0 + " + formula + + +class MICEData(object): + + __doc__ = """\ + Wrap a data set to allow missing data handling with MICE. + + Parameters + ---------- + data : Pandas data frame + The data set, whch is copied internally. + perturbation_method : string + The default perturbation method + k_pmm : int + The number of nearest neighbors to use during predictive mean + matching. Can also be specified in `fit`. + history_callback : function + A function that is called after each complete imputation + cycle. The return value is appended to `history`. The + MICEData object is passed as the sole argument to + `history_callback`. + + Examples + -------- + Draw 20 imputations from a data set called `data` and save them in + separate files with filename pattern `dataXX.csv`. The variables + other than `x1` are imputed using linear models fit with OLS, with + mean structures containing main effects of all other variables in + `data`. The variable named `x1` has a condtional mean structure + that includes an additional term for x2^2. + %(_mice_data_example_1)s + + Impute using default models, using the MICEData object as an + iterator. + %(_mice_data_example_2)s + + Notes + ----- + Allowed perturbation methods are 'gaussian' (the model parameters + are set to a draw from the Gaussian approximation to the posterior + distribution), and 'boot' (the model parameters are set to the + estimated values obtained when fitting a bootstrapped version of + the data set). + + `history_callback` can be implemented to have side effects such as + saving the current imputed data set to disk. + """ % {'_mice_data_example_1': _mice_data_example_1, + '_mice_data_example_2': _mice_data_example_2} + + def __init__(self, data, perturbation_method='gaussian', + k_pmm=20, history_callback=None): + + # Drop observations where all variables are missing. This + # also has the effect of copying the data frame. + self.data = data.dropna(how='all').reset_index(drop=True) + + self.history_callback = history_callback + self.history = [] + self.predict_kwds = {} + + # Assign the same perturbation method for all variables. + # Can be overriden when calling 'set_imputer'. + self.perturbation_method = defaultdict(lambda : + perturbation_method) + + # Map from variable name to indices of observed/missing + # values. + self.ix_obs = {} + self.ix_miss = {} + for col in self.data.columns: + ix_obs, ix_miss = self._split_indices(self.data[col]) + self.ix_obs[col] = ix_obs + self.ix_miss[col] = ix_miss + + # Most recent model instance and results instance for each variable. + self.models = {} + self.results = {} + + # Map from variable names to the conditional formula. + self.conditional_formula = {} + + # Map from variable names to init/fit args of the conditional + # models. + self.init_kwds = defaultdict(lambda : dict()) + self.fit_kwds = defaultdict(lambda : dict()) + + # Map from variable names to the model class. + self.model_class = {} + + # Map from variable names to most recent params update. + self.params = {} + + # Set default imputers. + for vname in data.columns: + self.set_imputer(vname) + + # The order in which variables are imputed in each cycle. + # Impute variables with the fewest missing values first. + vnames =list(data.columns) + nmiss = [len(self.ix_miss[v]) for v in vnames] + nmiss = np.asarray(nmiss) + ii = np.argsort(nmiss) + ii = ii[sum(nmiss == 0):] + self._cycle_order = [vnames[i] for i in ii] + + self._initial_imputation() + + self.k_pmm = k_pmm + + + def next_sample(self): + """ + Returns the next imputed dataset in the imputation process. + + Returns + ------- + data : array-like + An imputed dataset from the MICE chain. + + Notes + ----- + `MICEData` does not have a `skip` parameter. Consecutive + values returned by `next_sample` are immediately consecutive + in the imputation chain. + + The returned value is a reference to the data attribute of + the class and should be copied before making any changes. + """ + + self.update_all(1) + return self.data + + + def _initial_imputation(self): + """ + Use a PMM-like procedure for initial imputed values. + + For each variable, missing values are imputed as the observed + value that is closest to the mean over all observed values. + """ + + for col in self.data.columns: + di = self.data[col] - self.data[col].mean() + di = np.abs(di) + ix = di.idxmin() + imp = di.loc[ix] + self.data[col].fillna(imp, inplace=True) + + + def _split_indices(self, vec): + null = pd.isnull(vec) + ix_obs = np.flatnonzero(~null) + ix_miss = np.flatnonzero(null) + if len(ix_obs) == 0: + raise ValueError("variable to be imputed has no observed values") + return ix_obs, ix_miss + + + def set_imputer(self, endog_name, formula=None, model_class=None, + init_kwds=None, fit_kwds=None, predict_kwds=None, + k_pmm=20, perturbation_method=None): + """ + Specify the imputation process for a single variable. + + Parameters + ---------- + endog_name : string + Name of the variable to be imputed. + formula : string + Conditional formula for imputation. Defaults to a formula + with main effects for all other variables in dataset. The + formula should only include an expression for the mean + structure, e.g. use 'x1 + x2' not 'x4 ~ x1 + x2'. + model_class : statsmodels model + Conditional model for imputation. Defaults to OLS. See below + for more information. + init_kwds : dit-like + Keyword arguments passed to the model init method. + fit_kwds : dict-like + Keyword arguments passed to the model fit method. + predict_kwds : dict-like + Keyword arguments passed to the model predict method. + k_pmm : int + Determines number of neighboring observations from which + to randomly sample when using predictive mean matching. + perturbation_method : string + Either 'gaussian' or 'bootstrap'. Determines the method + for perturbing parameters in the imputation model. If + None, uses the default specified at class initialization. + + Notes + ----- + The model class must meet the following conditions: + * A model must have a 'fit' method that returns an object. + * The object returned from `fit` must have a `params` attribute + that is an array-like object. + * The object returned from `fit` must have a cov_params method + that returns a square array-like object. + * The model must have a `predict` method. + """ + + if formula is None: + main_effects = [x for x in self.data.columns + if x != endog_name] + fml = endog_name + " ~ " + " + ".join(main_effects) + self.conditional_formula[endog_name] = fml + else: + fml = endog_name + " ~ " + formula + self.conditional_formula[endog_name] = fml + + if model_class is None: + self.model_class[endog_name] = OLS + else: + self.model_class[endog_name] = model_class + + if init_kwds is not None: + self.init_kwds[endog_name] = init_kwds + + if fit_kwds is not None: + self.fit_kwds[endog_name] = fit_kwds + + if predict_kwds is not None: + self.predict_kwds[endog_name] = predict_kwds + + if perturbation_method is not None: + self.perturbation_method[endog_name] = perturbation_method + + self.k_pmm = k_pmm + + + def _store_changes(self, col, vals): + """ + Fill in dataset with imputed values. + + Parameters + ---------- + col : string + Name of variable to be filled in. + vals : array + Array of imputed values to use for filling-in missing values. + """ + + ix = self.ix_miss[col] + if len(ix) > 0: + self.data[col].iloc[ix] = vals + + + def update_all(self, n_iter=1): + """ + Perform a specified number of MICE iterations. + + Parameters + ---------- + n_iter : int + The number of updates to perform. Only the result of the + final update will be available. + + Notes + ----- + The imputed values are stored in the class attribute `self.data`. + """ + + for k in range(n_iter): + for vname in self._cycle_order: + self.update(vname) + + if self.history_callback is not None: + hv = self.history_callback(self) + self.history.append(hv) + + + def get_split_data(self, vname): + """ + Return endog and exog for imputation of a given variable. + + Parameters + ---------- + vname : string + The variable for which the split data is returned. + + Returns + ------- + endog_obs : DataFrame + Observed values of the variable to be imputed. + exog_obs : DataFrame + Current values of the predictors where the variable to be + imputed is observed. + exog_miss : DataFrame + Current values of the predictors where the variable to be + Imputed is missing. + init_kwds : dict-like + The init keyword arguments for `vname`, processed through Patsy + as required. + fit_kwds : dict-like + The fit keyword arguments for `vname`, processed through Patsy + as required. + """ + + formula = self.conditional_formula[vname] + endog, exog = patsy.dmatrices(formula, self.data, + return_type="dataframe") + + # Rows with observed endog + ixo = self.ix_obs[vname] + endog_obs = np.asarray(endog.iloc[ixo]) + exog_obs = np.asarray(exog.iloc[ixo, :]) + + # Rows with missing endog + ixm = self.ix_miss[vname] + exog_miss = np.asarray(exog.iloc[ixm, :]) + + predict_obs_kwds = {} + if vname in self.predict_kwds: + kwds = self.predict_kwds[vname] + predict_obs_kwds = self._process_kwds(kwds, ixo) + + predict_miss_kwds = {} + if vname in self.predict_kwds: + kwds = self.predict_kwds[vname] + predict_miss_kwds = self._process_kwds(kwds, ixo) + + return endog_obs, exog_obs, exog_miss, predict_obs_kwds, predict_miss_kwds + + + def _process_kwds(self, kwds, ix): + kwds = kwds.copy() + for k in kwds: + v = kwds[k] + if isinstance(v, PatsyFormula): + mat = patsy.dmatrix(v.formula, self.data, + return_type="dataframe") + mat = np.asarray(mat)[ix, :] + if mat.shape[1] == 1: + mat = mat[:, 0] + kwds[k] = mat + return kwds + + + def get_fitting_data(self, vname): + """ + Return the data needed to fit a model for imputation. + + The data is used to impute variable `vname`, and therefore + only includes cases for which `vname` is observed. + + Values of type `PatsyFormula` in `init_kwds` or `fit_kwds` are + processed through Patsy and subset to align with the model's + endog and exog. + + Parameters + ---------- + vname : string + The variable for which the fitting data is returned. + + Returns + ------- + endog : DataFrame + Observed values of `vname`. + exog : DataFrame + Regression design matrix for imputing `vname`. + init_kwds : dict-like + The init keyword arguments for `vname`, processed through Patsy + as required. + fit_kwds : dict-like + The fit keyword arguments for `vname`, processed through Patsy + as required. + """ + + # Rows with observed endog + ix = self.ix_obs[vname] + + formula = self.conditional_formula[vname] + endog, exog = patsy.dmatrices(formula, self.data, + return_type="dataframe") + + endog = np.asarray(endog.iloc[ix, 0]) + exog = np.asarray(exog.iloc[ix, :]) + + init_kwds = self._process_kwds(self.init_kwds[vname], ix) + fit_kwds = self._process_kwds(self.fit_kwds[vname], ix) + + return endog, exog, init_kwds, fit_kwds + + + def plot_missing_pattern(self, ax=None, row_order="pattern", + column_order="pattern", + hide_complete_rows=False, + hide_complete_columns=False, + color_row_patterns=True): + """ + Generate an image showing the missing data pattern. + + Parameters + ---------- + ax : matplotlib axes + Axes on which to draw the plot. + row_order : string + The method for ordering the rows. Must be one of 'pattern', + 'proportion', or 'raw'. + column_order : string + The method for ordering the columns. Must be one of 'pattern', + 'proportion', or 'raw'. + hide_complete_rows : boolean + If True, rows with no missing values are not drawn. + hide_complete_columns : boolean + If True, columns with no missing values are not drawn. + color_row_patterns : boolean + If True, color the unique row patterns, otherwise use grey + and white as colors. + + Returns + ------- + A figure containing a plot of the missing data pattern. + """ + + # Create an indicator matrix for missing values. + miss = np.zeros(self.data.shape) + cols = self.data.columns + for j, col in enumerate(cols): + ix = self.ix_miss[col] + miss[ix, j] = 1 + + # Order the columns as requested + if column_order == "proportion": + ix = np.argsort(miss.mean(0)) + elif column_order == "pattern": + cv = np.cov(miss.T) + u, s, vt = np.linalg.svd(cv, 0) + ix = np.argsort(cv[:, 0]) + elif column_order == "raw": + ix = np.arange(len(cols)) + else: + raise ValueError(column_order + " is not an allowed value for `column_order`.") + miss = miss[:, ix] + cols = [cols[i] for i in ix] + + # Order the rows as requested + if row_order == "proportion": + ix = np.argsort(miss.mean(1)) + elif row_order == "pattern": + x = 2**np.arange(miss.shape[1]) + rky = np.dot(miss, x) + ix = np.argsort(rky) + elif row_order == "raw": + ix = np.arange(miss.shape[0]) + else: + raise ValueError(row_order + " is not an allowed value for `row_order`.") + miss = miss[ix, :] + + if hide_complete_rows: + ix = np.flatnonzero((miss == 1).any(1)) + miss = miss[ix, :] + + if hide_complete_columns: + ix = np.flatnonzero((miss == 1).any(0)) + miss = miss[:, ix] + cols = [cols[i] for i in ix] + + from statsmodels.graphics import utils as gutils + from matplotlib.colors import LinearSegmentedColormap + + if ax is None: + fig, ax = gutils.create_mpl_ax(ax) + else: + fig = ax.get_figure() + + if color_row_patterns: + x = 2**np.arange(miss.shape[1]) + rky = np.dot(miss, x) + _, rcol = np.unique(rky, return_inverse=True) + miss *= 1 + rcol[:, None] + ax.imshow(miss, aspect="auto", interpolation="nearest", + cmap='gist_ncar_r') + else: + cmap = LinearSegmentedColormap.from_list("_", + ["white", "darkgrey"]) + ax.imshow(miss, aspect="auto", interpolation="nearest", + cmap=cmap) + + ax.set_ylabel("Cases") + ax.set_xticks(range(len(cols))) + ax.set_xticklabels(cols, rotation=90) + + return fig + + + def plot_bivariate(self, col1_name, col2_name, + lowess_args=None, lowess_min_n=40, + jitter=None, plot_points=True, ax=None): + """ + Plot observed and imputed values for two variables. + + Displays a scatterplot of one variable against another. The + points are colored according to whether the values are + observed or imputed. + + Parameters + ---------- + col1_name : string + The variable to be plotted on the horizontal axis. + col2_name : string + The variable to be plotted on the vertical axis. + lowess_args : dictionary + A dictionary of dictionaries, keys are 'ii', 'io', 'oi' + and 'oo', where 'o' denotes 'observed' and 'i' denotes + imputed. See Notes for details. + lowess_min_n : integer + Minimum sample size to plot a lowess fit + jitter : float or tuple + Standard deviation for jittering points in the plot. + Either a single scalar applied to both axes, or a tuple + containing x-axis jitter and y-axis jitter, respectively. + plot_points : bool + If True, the data points are plotted. + ax : matplotlib axes object + Axes on which to plot, created if not provided. + + Returns + ------- + The matplotlib figure on which the plot id drawn. + """ + + from statsmodels.graphics import utils as gutils + from statsmodels.nonparametric.smoothers_lowess import lowess + + if lowess_args is None: + lowess_args = {} + + if ax is None: + fig, ax = gutils.create_mpl_ax(ax) + else: + fig = ax.get_figure() + + ax.set_position([0.1, 0.1, 0.7, 0.8]) + + ix1i = self.ix_miss[col1_name] + ix1o = self.ix_obs[col1_name] + ix2i = self.ix_miss[col2_name] + ix2o = self.ix_obs[col2_name] + + ix_ii = np.intersect1d(ix1i, ix2i) + ix_io = np.intersect1d(ix1i, ix2o) + ix_oi = np.intersect1d(ix1o, ix2i) + ix_oo = np.intersect1d(ix1o, ix2o) + + vec1 = np.asarray(self.data[col1_name]) + vec2 = np.asarray(self.data[col2_name]) + + if jitter is not None: + if np.isscalar(jitter): + jitter = (jitter, jitter) + vec1 += jitter[0] * np.random.normal(size=len(vec1)) + vec2 += jitter[1] * np.random.normal(size=len(vec2)) + + # Plot the points + keys = ['oo', 'io', 'oi', 'ii'] + lak = {'i': 'imp', 'o': 'obs'} + ixs = {'ii': ix_ii, 'io': ix_io, 'oi': ix_oi, 'oo': ix_oo} + color = {'oo': 'grey', 'ii': 'red', 'io': 'orange', + 'oi': 'lime'} + if plot_points: + for ky in keys: + ix = ixs[ky] + lab = lak[ky[0]] + "/" + lak[ky[1]] + ax.plot(vec1[ix], vec2[ix], 'o', color=color[ky], + label=lab, alpha=0.6) + + # Plot the lowess fits + for ky in keys: + ix = ixs[ky] + if len(ix) < lowess_min_n: + continue + if ky in lowess_args: + la = lowess_args[ky] + else: + la = {} + ix = ixs[ky] + lfit = lowess(vec2[ix], vec1[ix], **la) + if plot_points: + ax.plot(lfit[:, 0], lfit[:, 1], '-', color=color[ky], + alpha=0.6, lw=4) + else: + lab = lak[ky[0]] + "/" + lak[ky[1]] + ax.plot(lfit[:, 0], lfit[:, 1], '-', color=color[ky], + alpha=0.6, lw=4, label=lab) + + ha, la = ax.get_legend_handles_labels() + pad = 0.0001 if plot_points else 0.5 + leg = fig.legend(ha, la, 'center right', numpoints=1, + handletextpad=pad) + leg.draw_frame(False) + + ax.set_xlabel(col1_name) + ax.set_ylabel(col2_name) + + return fig + + + def plot_fit_obs(self, col_name, lowess_args=None, + lowess_min_n=40, jitter=None, + plot_points=True, ax=None): + """ + Plot fitted versus imputed or observed values as a scatterplot. + + Parameters + ---------- + col_name : string + The variable to be plotted on the horizontal axis. + lowess_args : dict-like + Keyword arguments passed to lowess fit. A dictionary of + dictionaries, keys are 'o' and 'i' denoting 'observed' and + 'imputed', respectively. + lowess_min_n : integer + Minimum sample size to plot a lowess fit + jitter : float or tuple + Standard deviation for jittering points in the plot. + Either a single scalar applied to both axes, or a tuple + containing x-axis jitter and y-axis jitter, respectively. + plot_points : bool + If True, the data points are plotted. + ax : matplotlib axes object + Axes on which to plot, created if not provided. + + Returns + ------- + The matplotlib figure on which the plot is drawn. + """ + + from statsmodels.graphics import utils as gutils + from statsmodels.nonparametric.smoothers_lowess import lowess + import pandas as pd + + if lowess_args is None: + lowess_args = {} + + if ax is None: + fig, ax = gutils.create_mpl_ax(ax) + else: + fig = ax.get_figure() + + ax.set_position([0.1, 0.1, 0.7, 0.8]) + + ixi = self.ix_miss[col_name] + ixo = self.ix_obs[col_name] + + vec1 = np.asarray(self.data[col_name]) + + # Fitted values + formula = self.conditional_formula[col_name] + endog, exog = patsy.dmatrices(formula, self.data, + return_type="dataframe") + results = self.results[col_name] + vec2 = results.predict(exog=exog) + vec2 = self._get_predicted(vec2) + + if jitter is not None: + if np.isscalar(jitter): + jitter = (jitter, jitter) + vec1 += jitter[0] * np.random.normal(size=len(vec1)) + vec2 += jitter[1] * np.random.normal(size=len(vec2)) + + # Plot the points + keys = ['o', 'i'] + ixs = {'o': ixo, 'i': ixi} + lak = {'o': 'obs', 'i': 'imp'} + color = {'o': 'orange', 'i': 'lime'} + if plot_points: + for ky in keys: + ix = ixs[ky] + ax.plot(vec1[ix], vec2[ix], 'o', color=color[ky], + label=lak[ky], alpha=0.6) + + # Plot the lowess fits + for ky in keys: + ix = ixs[ky] + if len(ix) < lowess_min_n: + continue + if ky in lowess_args: + la = lowess_args[ky] + else: + la = {} + ix = ixs[ky] + lfit = lowess(vec2[ix], vec1[ix], **la) + ax.plot(lfit[:, 0], lfit[:, 1], '-', color=color[ky], + alpha=0.6, lw=4, label=lak[ky]) + + ha, la = ax.get_legend_handles_labels() + leg = fig.legend(ha, la, 'center right', numpoints=1) + leg.draw_frame(False) + + ax.set_xlabel(col_name + " observed or imputed") + ax.set_ylabel(col_name + " fitted") + + return fig + + + def plot_imputed_hist(self, col_name, ax=None, imp_hist_args=None, + obs_hist_args=None, all_hist_args=None): + """ + Display imputed values for one variable as a histogram. + + Parameters + ---------- + col_name : string + The name of the variable to be plotted. + ax : matplotlib axes + An axes on which to draw the histograms. If not provided, + one is created. + imp_hist_args : dict + Keyword arguments to be passed to pyplot.hist when + creating the histogram for imputed values. + obs_hist_args : dict + Keyword arguments to be passed to pyplot.hist when + creating the histogram for observed values. + all_hist_args : dict + Keyword arguments to be passed to pyplot.hist when + creating the histogram for all values. + + Returns + ------- + The matplotlib figure on which the histograms were drawn + """ + + from statsmodels.graphics import utils as gutils + from matplotlib.colors import LinearSegmentedColormap + + if imp_hist_args is None: + imp_hist_args = {} + if obs_hist_args is None: + obs_hist_args = {} + if all_hist_args is None: + all_hist_args = {} + + if ax is None: + fig, ax = gutils.create_mpl_ax(ax) + else: + fig = ax.get_figure() + + ax.set_position([0.1, 0.1, 0.7, 0.8]) + + ixm = self.ix_miss[col_name] + ixo = self.ix_obs[col_name] + + imp = self.data[col_name].iloc[ixm] + obs = self.data[col_name].iloc[ixo] + + for di in imp_hist_args, obs_hist_args, all_hist_args: + if 'histtype' not in di: + di['histtype'] = 'step' + + ha, la = [], [] + if len(imp) > 0: + h = ax.hist(np.asarray(imp), **imp_hist_args) + ha.append(h[-1][0]) + la.append("Imp") + h1 = ax.hist(np.asarray(obs), **obs_hist_args) + h2 = ax.hist(np.asarray(self.data[col_name]), **all_hist_args) + ha.extend([h1[-1][0], h2[-1][0]]) + la.extend(["Obs", "All"]) + + leg = fig.legend(ha, la, 'center right', numpoints=1) + leg.draw_frame(False) + + ax.set_xlabel(col_name) + ax.set_ylabel("Frequency") + + return fig + + + def _boot_kwds(self, kwds, rix): + + for k in kwds: + v = kwds[k] + if not isinstance(v, np.ndarray): + continue + if (v.ndim == 1) and (v.shape[0] == len(rix)): + kwds[k] = v[rix] + if (v.ndim == 2) and (v.shape[0] == len(rix)): + kwds[k] = v[rix, :] + + return kwds + + + def _perturb_bootstrap(self, vname): + """ + Perturbs the model's parameters using a bootstrap. + """ + + endog, exog, init_kwds, fit_kwds = self.get_fitting_data(vname) + + m = len(endog) + rix = np.random.randint(0, m, m) + endog = endog[rix] + exog = exog[rix, :] + + init_kwds = self._boot_kwds(init_kwds, rix) + fit_kwds = self._boot_kwds(fit_kwds, rix) + + klass = self.model_class[vname] + self.models[vname] = klass(endog, exog, **init_kwds) + self.results[vname] = self.models[vname].fit(**fit_kwds) + self.params[vname] = self.results[vname].params + + + def _perturb_gaussian(self, vname): + """ + Gaussian perturbation of model parameters. + + The normal approximation to the sampling distribution of the + parameter estimates is used to define the mean and covariance + structure of the perturbation distribution. + """ + + endog, exog, init_kwds, fit_kwds = self.get_fitting_data(vname) + + klass = self.model_class[vname] + self.models[vname] = klass(endog, exog, **init_kwds) + self.results[vname] = self.models[vname].fit(**fit_kwds) + + cov = self.results[vname].cov_params() + mu = self.results[vname].params + self.params[vname] = np.random.multivariate_normal(mean=mu, cov=cov) + + + def perturb_params(self, vname): + + if self.perturbation_method[vname] == "gaussian": + self._perturb_gaussian(vname) + elif self.perturbation_method[vname] == "boot": + self._perturb_bootstrap(vname) + else: + raise ValueError("unknown perturbation method") + + + def impute(self, vname): + # Wrap this in case we later add additional imputation + # methods. + self.impute_pmm(vname) + + + def update(self, vname): + """ + Impute missing values for a single variable. + + This is a two-step process in which first the parameters are + perturbed, then the missing values are re-imputed. + + Parameters + ---------- + vname : string + The name of the variable to be updated. + """ + + self.perturb_params(vname) + self.impute(vname) + + + # work-around for inconsistent predict return values + def _get_predicted(self, obj): + + if isinstance(obj, np.ndarray): + return obj + elif isinstance(obj, pd.Series): + return obj.values + elif hasattr(obj, 'predicted_values'): + return obj.predicted_values + else: + raise ValueError("cannot obtain predicted values from %s" % obj.__class__) + + + def impute_pmm(self, vname): + """ + Use predictive mean matching to impute missing values. + + Notes + ----- + The `perturb_params` method must be called first to define the + model. + """ + + k_pmm = self.k_pmm + + endog_obs, exog_obs, exog_miss, predict_obs_kwds, predict_miss_kwds =\ + self.get_split_data(vname) + + # Predict imputed variable for both missing and non-missing + # observations + model = self.models[vname] + pendog_obs = model.predict(self.params[vname], exog_obs, **predict_obs_kwds) + pendog_miss = model.predict(self.params[vname], exog_miss, **predict_miss_kwds) + + pendog_obs = self._get_predicted(pendog_obs) + pendog_miss = self._get_predicted(pendog_miss) + + # Jointly sort the observed and predicted endog values for the + # cases with observed values. + ii = np.argsort(pendog_obs) + endog_obs = endog_obs[ii] + pendog_obs = pendog_obs[ii] + + # Find the closest match to the predicted endog values for + # cases with missing endog values. + ix = np.searchsorted(pendog_obs, pendog_miss) + + # Get the indices for the closest k_pmm values on + # either side of the closest index. + ixm = ix[:, None] + np.arange(-k_pmm, k_pmm)[None, :] + + # Account for boundary effects + msk = np.nonzero((ixm < 0) | (ixm > len(endog_obs) - 1)) + ixm = np.clip(ixm, 0, len(endog_obs) - 1) + + # Get the distances + dx = pendog_miss[:, None] - pendog_obs[ixm] + dx = np.abs(dx) + dx[msk] = np.inf + + # Closest positions in ix, row-wise. + dxi = np.argsort(dx, 1)[:, 0:k_pmm] + + # Choose a column for each row. + ir = np.random.randint(0, k_pmm, len(pendog_miss)) + + # Unwind the indices + jj = np.arange(dxi.shape[0]) + ix = dxi[[jj, ir]] + iz = ixm[[jj, ix]] + + imputed_miss = np.array(endog_obs[iz]) + self._store_changes(vname, imputed_miss) + + +_mice_example_1 = """ + >>> imp = mice.MICEData(data) + >>> fml = 'y ~ x1 + x2 + x3 + x4' + >>> mice = mice.MICE(fml, sm.OLS, imp) + >>> results = mice.fit(10, 10) + >>> print(results.summary()) + + Results: MICE + ================================================================= + Method: MICE Sample size: 1000 + Model: OLS Scale 1.00 + Dependent variable: y Num. imputations 10 + ----------------------------------------------------------------- + Coef. Std.Err. t P>|t| [0.025 0.975] FMI + ----------------------------------------------------------------- + Intercept -0.0234 0.0318 -0.7345 0.4626 -0.0858 0.0390 0.0128 + x1 1.0305 0.0578 17.8342 0.0000 0.9172 1.1437 0.0309 + x2 -0.0134 0.0162 -0.8282 0.4076 -0.0451 0.0183 0.0236 + x3 -1.0260 0.0328 -31.2706 0.0000 -1.0903 -0.9617 0.0169 + x4 -0.0253 0.0336 -0.7520 0.4521 -0.0911 0.0406 0.0269 + ================================================================= +""" + +_mice_example_2 = """ + >>> imp = mice.MICEData(data) + >>> fml = 'y ~ x1 + x2 + x3 + x4' + >>> mice = mice.MICE(fml, sm.OLS, imp) + >>> results = [] + >>> for k in range(10): + >>> x = mice.next_sample() + >>> results.append(x) +""" + +class MICE(object): + + __doc__ = """\ + Multiple Imputation with Chained Equations. + + This class can be used to fit most Statsmodels models to data sets + with missing values using the 'multiple imputation with chained + equations' (MICE) approach.. + + Parameters + ---------- + model_formula : string + The model formula to be fit to the imputed data sets. This + formula is for the 'analysis model'. + model_class : statsmodels model + The model to be fit to the imputed data sets. This model + class if for the 'analysis model'. + data : MICEData instance + MICEData object containing the data set for which + missing values will be imputed + n_skip : int + The number of imputed datasets to skip between consecutive + imputed datasets that are used for analysis. + init_kwds : dict-like + Dictionary of keyword arguments passed to the init method + of the analysis model. + fit_kwds : dict-like + Dictionary of keyword arguments passed to the fit method + of the analysis model. + + Examples + -------- + Run all MICE steps and obtain results: + %(mice_example_1)s + + Obtain a sequence of fitted analysis models without combining + to obtain summary: + %(mice_example_2)s + """ % {'mice_example_1' : _mice_example_1, + 'mice_example_2' : _mice_example_2} + + + def __init__(self, model_formula, model_class, data, n_skip=3, + init_kwds=None, fit_kwds=None): + + self.model_formula = model_formula + self.model_class = model_class + self.n_skip = n_skip + self.data = data + self.results_list = [] + + self.init_kwds = init_kwds if init_kwds is not None else {} + self.fit_kwds = fit_kwds if fit_kwds is not None else {} + + + def next_sample(self): + """ + Perform one complete MICE iteration. + + A single MICE iteration updates all missing values using their + respective imputation models, then fits the analysis model to + the imputed data. + + Returns + ------- + params : array-like + The model parameters for the analysis model. + + Notes + ----- + This function fits the analysis model and returns its + parameter estimate. The parameter vector is not stored by the + class and is not used in any subsequent calls to `combine`. + Use `fit` to run all MICE steps together and obtain summary + results. + + The complete cycle of missing value imputation followed by + fitting the analysis model is repeated `n_skip + 1` times and + the analysis model parameters from the final fit are returned. + """ + + # Impute missing values + self.data.update_all(self.n_skip + 1) + start_params = None + if len(self.results_list) > 0: + start_params = self.results_list[-1].params + + # Fit the analysis model. + model = self.model_class.from_formula(self.model_formula, + self.data.data, + **self.init_kwds) + self.fit_kwds.update({"start_params": start_params}) + result = model.fit(**self.fit_kwds) + + return result + + + def fit(self, n_burnin=10, n_imputations=10): + """ + Fit a model using MICE. + + Parameters + ---------- + n_burnin : int + The number of burn-in cycles to skip. + n_imputations : int + The number of data sets to impute + """ + + # Run without fitting the analysis model + self.data.update_all(n_burnin) + + for j in range(n_imputations): + result = self.next_sample() + self.results_list.append(result) + + self.endog_names = result.model.endog_names + self.exog_names = result.model.exog_names + + return self.combine() + + + def combine(self): + """ + Pools MICE imputation results. + + This method can only be used after the `run` method has been + called. Returns estimates and standard errors of the analysis + model parameters. + + Returns a MICEResults instance. + """ + + # Extract a few things from the models that were fit to + # imputed data sets. + params_list = [] + cov_within = 0. + scale_list = [] + for results in self.results_list: + results_uw = results._results + params_list.append(results_uw.params) + cov_within += results_uw.cov_params() + scale_list.append(results.scale) + params_list = np.asarray(params_list) + scale_list = np.asarray(scale_list) + + # The estimated parameters for the MICE analysis + params = params_list.mean(0) + + # The average of the within-imputation covariances + cov_within /= len(self.results_list) + + # The between-imputation covariance + cov_between = np.cov(params_list.T) + + # The estimated covariance matrix for the MICE analysis + f = 1 + 1 / float(len(self.results_list)) + cov_params = cov_within + f * cov_between + + # Fraction of missing information + fmi = f * np.diag(cov_between) / np.diag(cov_params) + + # Set up a results instance + scale = np.mean(scale_list) + results = MICEResults(self, params, cov_params / scale) + results.scale = scale + results.frac_miss_info = fmi + results.exog_names = self.exog_names + results.endog_names = self.endog_names + results.model_class = self.model_class + + return results + + +class MICEResults(LikelihoodModelResults): + + def __init__(self, model, params, normalized_cov_params): + + super(MICEResults, self).__init__(model, params, + normalized_cov_params) + + def summary(self, title=None, alpha=.05): + """ + Summarize the results of running MICE. + + Parameters + ----------- + title : string, optional + Title for the top table. If not None, then this replaces + the default title + alpha : float + Significance level for the confidence intervals + + Returns + ------- + smry : Summary instance + This holds the summary tables and text, which can be + printed or converted to various output formats. + """ + + from statsmodels.iolib import summary2 + from statsmodels.compat.collections import OrderedDict + + smry = summary2.Summary() + float_format = "%8.3f" + + info = OrderedDict() + info["Method:"] = "MICE" + info["Model:"] = self.model_class.__name__ + info["Dependent variable:"] = self.endog_names + info["Sample size:"] = "%d" % self.model.data.data.shape[0] + info["Scale"] = "%.2f" % self.scale + info["Num. imputations"] = "%d" % len(self.model.results_list) + + smry.add_dict(info, align='l', float_format=float_format) + + param = summary2.summary_params(self, alpha=alpha) + param["FMI"] = self.frac_miss_info + + smry.add_df(param, float_format=float_format) + smry.add_title(title=title, results=self) + + return smry diff --git a/statsmodels/imputation/ros.py b/statsmodels/imputation/ros.py new file mode 100644 index 0000000..a2ad3a5 --- /dev/null +++ b/statsmodels/imputation/ros.py @@ -0,0 +1,592 @@ +""" +Implementation of Regression on Order Statistics for imputing left- +censored (non-detect data) + +Method described in *Nondetects and Data Analysis* by Dennis R. +Helsel (John Wiley, 2005) to estimate the left-censored (non-detect) +values of a dataset. + +Author: Paul M. Hobson +Company: Geosyntec Consultants (Portland, OR) +Date: 2016-06-14 + +""" + +from __future__ import division +import warnings + +import numpy +from scipy import stats +import pandas + +from statsmodels.compat.pandas import sort_values + + +def _ros_sort(df, observations, censorship, warn=False): + """ + This function prepares a dataframe for ROS. + + It sorts ascending with + left-censored observations first. Censored observations larger than + the maximum uncensored observations are removed from the dataframe. + + Parameters + ---------- + df : pandas.DataFrame + + observations : str + Name of the column in the dataframe that contains observed + values. Censored values should be set to the detection (upper) + limit. + + censorship : str + Name of the column in the dataframe that indicates that a + observation is left-censored. (i.e., True -> censored, + False -> uncensored) + + Returns + ------ + sorted_df : pandas.DataFrame + The sorted dataframe with all columns dropped except the + observation and censorship columns. + + """ + + # separate uncensored data from censored data + censored = sort_values(df[df[censorship]], observations, axis=0) + uncensored = sort_values(df[~df[censorship]], observations, axis=0) + + if censored[observations].max() > uncensored[observations].max(): + censored = censored[censored[observations] <= uncensored[observations].max()] + + if warn: + msg = ("Dropping censored observations greater than " + "the max uncensored observation.") + warnings.warn(msg) + + return censored.append(uncensored)[[observations, censorship]].reset_index(drop=True) + + +def cohn_numbers(df, observations, censorship): + """ + Computes the Cohn numbers for the detection limits in the dataset. + + The Cohn Numbers are: + + - :math:`A_j =` the number of uncensored obs above the jth + threshold. + - :math:`B_j =` the number of observations (cen & uncen) below + the jth threshold. + - :math:`C_j =` the number of censored observations at the jth + threshold. + - :math:`\mathrm{PE}_j =` the probability of exceeding the jth + threshold + - :math:`\mathrm{DL}_j =` the unique, sorted detection limits + - :math:`\mathrm{DL}_{j+1} = \mathrm{DL}_j` shifted down a + single index (row) + + Parameters + ---------- + dataframe : pandas.DataFrame + + observations : str + Name of the column in the dataframe that contains observed + values. Censored values should be set to the detection (upper) + limit. + + censorship : str + Name of the column in the dataframe that indicates that a + observation is left-censored. (i.e., True -> censored, + False -> uncensored) + + Returns + ------- + cohn : pandas.DataFrame + + """ + + def nuncen_above(row): + """ A, the number of uncensored obs above the given threshold. + """ + + # index of observations above the lower_dl DL + above = df[observations] >= row['lower_dl'] + + # index of observations below the upper_dl DL + below = df[observations] < row['upper_dl'] + + # index of non-detect observations + detect = df[censorship] == False + + # return the number of observations where all conditions are True + return df[above & below & detect].shape[0] + + def nobs_below(row): + """ B, the number of observations (cen & uncen) below the given + threshold + """ + + # index of data less than the lower_dl DL + less_than = df[observations] < row['lower_dl'] + + # index of data less than or equal to the lower_dl DL + less_thanequal = df[observations] <= row['lower_dl'] + + # index of detects, non-detects + uncensored = df[censorship] == False + censored = df[censorship] == True + + # number observations less than or equal to lower_dl DL and non-detect + LTE_censored = df[less_thanequal & censored].shape[0] + + # number of observations less than lower_dl DL and detected + LT_uncensored = df[less_than & uncensored].shape[0] + + # return the sum + return LTE_censored + LT_uncensored + + def ncen_equal(row): + """ C, the number of censored observations at the given + threshold. + """ + + censored_index = df[censorship] + censored_data = df[observations][censored_index] + censored_below = censored_data == row['lower_dl'] + return censored_below.sum() + + def set_upper_limit(cohn): + """ Sets the upper_dl DL for each row of the Cohn dataframe. """ + if cohn.shape[0] > 1: + return cohn['lower_dl'].shift(-1).fillna(value=numpy.inf) + else: + return [numpy.inf] + + def compute_PE(A, B): + """ Computes the probability of excedance for each row of the + Cohn dataframe. """ + N = len(A) + PE = numpy.empty(N, dtype='float64') + PE[-1] = 0.0 + for j in range(N-2, -1, -1): + PE[j] = PE[j+1] + (1 - PE[j+1]) * A[j] / (A[j] + B[j]) + + return PE + + # unique, sorted detection limts + censored_data = df[censorship] + DLs = pandas.unique(df.loc[censored_data, observations]) + DLs.sort() + + # if there is a observations smaller than the minimum detection limit, + # add that value to the array + if DLs.shape[0] > 0: + if df[observations].min() < DLs.min(): + DLs = numpy.hstack([df[observations].min(), DLs]) + + # create a dataframe + # (editted for pandas 0.14 compatibility; see commit 63f162e + # when `pipe` and `assign` are available) + cohn = pandas.DataFrame(DLs, columns=['lower_dl']) + cohn.loc[:, 'upper_dl'] = set_upper_limit(cohn) + cohn.loc[:, 'nuncen_above'] = cohn.apply(nuncen_above, axis=1) + cohn.loc[:, 'nobs_below'] = cohn.apply(nobs_below, axis=1) + cohn.loc[:, 'ncen_equal'] = cohn.apply(ncen_equal, axis=1) + cohn = cohn.reindex(range(DLs.shape[0] + 1)) + cohn.loc[:, 'prob_exceedance'] = compute_PE(cohn['nuncen_above'], cohn['nobs_below']) + + else: + dl_cols = ['lower_dl', 'upper_dl', 'nuncen_above', + 'nobs_below', 'ncen_equal', 'prob_exceedance'] + cohn = pandas.DataFrame(numpy.empty((0, len(dl_cols))), columns=dl_cols) + + return cohn + + +def _detection_limit_index(obs, cohn): + """ + Locates the corresponding detection limit for each observation. + + Basically, creates an array of indices for the detection limits + (Cohn numbers) corresponding to each data point. + + Parameters + ---------- + obs : float + A single observation from the larger dataset. + + cohn : pandas.DataFrame + Dataframe of Cohn numbers. + + Returns + ------- + det_limit_index : int + The index of the corresponding detection limit in `cohn` + + See also + -------- + cohn_numbers + + """ + + if cohn.shape[0] > 0: + index, = numpy.where(cohn['lower_dl'] <= obs) + det_limit_index = index[-1] + else: + det_limit_index = 0 + + return det_limit_index + + +def _ros_group_rank(df, dl_idx, censorship): + """ + Ranks each observation within the data groups. + + In this case, the groups are defined by the record's detection + limit index and censorship status. + + Parameters + ---------- + df : pandas.DataFrame + + dl_idx : str + Name of the column in the dataframe the index of the + observations' corresponding detection limit in the `cohn` + dataframe. + + censorship : str + Name of the column in the dataframe that indicates that a + observation is left-censored. (i.e., True -> censored, + False -> uncensored) + + Returns + ------- + ranks : numpy.array + Array of ranks for the dataset. + + """ + + # (editted for pandas 0.14 compatibility; see commit 63f162e + # when `pipe` and `assign` are available) + ranks = df.copy() + ranks.loc[:, 'rank'] = 1 + ranks = ( + ranks.groupby(by=[dl_idx, censorship])['rank'] + .transform(lambda g: g.cumsum()) + ) + return ranks + + +def _ros_plot_pos(row, censorship, cohn): + """ + ROS-specific plotting positions. + + Computes the plotting position for an observation based on its rank, + censorship status, and detection limit index. + + Parameters + ---------- + row : pandas.Series or dict-like + Full observation (row) from a censored dataset. Requires a + 'rank', 'detection_limit', and `censorship` column. + + censorship : str + Name of the column in the dataframe that indicates that a + observation is left-censored. (i.e., True -> censored, + False -> uncensored) + + cohn : pandas.DataFrame + Dataframe of Cohn numbers. + + Returns + ------- + plotting_position : float + + See also + -------- + cohn_numbers + + """ + + DL_index = row['det_limit_index'] + rank = row['rank'] + censored = row[censorship] + + dl_1 = cohn.iloc[DL_index] + dl_2 = cohn.iloc[DL_index + 1] + if censored: + return (1 - dl_1['prob_exceedance']) * rank / (dl_1['ncen_equal']+1) + else: + return (1 - dl_1['prob_exceedance']) + (dl_1['prob_exceedance'] - dl_2['prob_exceedance']) * \ + rank / (dl_1['nuncen_above']+1) + + +def _norm_plot_pos(observations): + """ + Computes standard normal (Gaussian) plotting positions using scipy. + + Parameters + ---------- + observations : array-like + Sequence of observed quantities. + + Returns + ------- + plotting_position : array of floats + + """ + ppos, sorted_res = stats.probplot(observations, fit=False) + return stats.norm.cdf(ppos) + + +def plotting_positions(df, censorship, cohn): + """ + Compute the plotting positions for the observations. + + The ROS-specific plotting postions are based on the observations' + rank, censorship status, and corresponding detection limit. + + Parameters + ---------- + df : pandas.DataFrame + + censorship : str + Name of the column in the dataframe that indicates that a + observation is left-censored. (i.e., True -> censored, + False -> uncensored) + + cohn : pandas.DataFrame + Dataframe of Cohn numbers. + + Returns + ------- + plotting_position : array of float + + See also + -------- + cohn_numbers + + """ + + plot_pos = df.apply(lambda r: _ros_plot_pos(r, censorship, cohn), axis=1) + + # correctly sort the plotting positions of the ND data: + ND_plotpos = plot_pos[df[censorship]] + ND_plotpos.values.sort() + plot_pos[df[censorship]] = ND_plotpos + + return plot_pos + + +def _impute(df, observations, censorship, transform_in, transform_out): + """ + Executes the basic regression on order stat (ROS) proceedure. + + Uses ROS to impute censored from the best-fit line of a + probability plot of the uncensored values. + + Parameters + ---------- + df : pandas.DataFrame + observations : str + Name of the column in the dataframe that contains observed + values. Censored values should be set to the detection (upper) + limit. + censorship : str + Name of the column in the dataframe that indicates that a + observation is left-censored. (i.e., True -> censored, + False -> uncensored) + transform_in, transform_out : callable + Transformations to be applied to the data prior to fitting + the line and after estimated values from that line. Typically, + `numpy.log` and `numpy.exp` are used, respectively. + + Returns + ------- + estimated : pandas.DataFrame + A new dataframe with two new columns: "estimated" and "final". + The "estimated" column contains of the values inferred from the + best-fit line. The "final" column contains the estimated values + only where the original observations were censored, and the original + observations everwhere else. + + """ + + # detect/non-detect selectors + uncensored_mask = df[censorship] == False + censored_mask = df[censorship] == True + + # fit a line to the logs of the detected data + fit_params = stats.linregress( + df['Zprelim'][uncensored_mask], + transform_in(df[observations][uncensored_mask]) + ) + + # pull out the slope and intercept for use later + slope, intercept = fit_params[:2] + + # model the data based on the best-fit curve + # (editted for pandas 0.14 compatibility; see commit 63f162e + # when `pipe` and `assign` are available) + df.loc[:, 'estimated'] = transform_out(slope * df['Zprelim'][censored_mask] + intercept) + df.loc[:, 'final'] = numpy.where(df[censorship], df['estimated'], df[observations]) + + return df + + +def _do_ros(df, observations, censorship, transform_in, transform_out): + """ + Dataframe-centric function to impute censored valies with ROS. + + Prepares a dataframe for, and then esimates the values of a censored + dataset using Regression on Order Statistics + + Parameters + ---------- + df : pandas.DataFrame + + observations : str + Name of the column in the dataframe that contains observed + values. Censored values should be set to the detection (upper) + limit. + + censorship : str + Name of the column in the dataframe that indicates that a + observation is left-censored. (i.e., True -> censored, + False -> uncensored) + + transform_in, transform_out : callable + Transformations to be applied to the data prior to fitting + the line and after estimated values from that line. Typically, + `numpy.log` and `numpy.exp` are used, respectively. + + Returns + ------- + estimated : pandas.DataFrame + A new dataframe with two new columns: "estimated" and "final". + The "estimated" column contains of the values inferred from the + best-fit line. The "final" column contains the estimated values + only where the original observations were censored, and the original + observations everwhere else. + + """ + + # compute the Cohn numbers + cohn = cohn_numbers(df, observations=observations, censorship=censorship) + + # (editted for pandas 0.14 compatibility; see commit 63f162e + # when `pipe` and `assign` are available) + modeled = _ros_sort(df, observations=observations, censorship=censorship) + modeled.loc[:, 'det_limit_index'] = modeled[observations].apply(_detection_limit_index, args=(cohn,)) + modeled.loc[:, 'rank'] = _ros_group_rank(modeled, 'det_limit_index', censorship) + modeled.loc[:, 'plot_pos'] = plotting_positions(modeled, censorship, cohn) + modeled.loc[:, 'Zprelim'] = stats.norm.ppf(modeled['plot_pos']) + + return _impute(modeled, observations, censorship, transform_in, transform_out) + + +def impute_ros(observations, censorship, df=None, min_uncensored=2, + max_fraction_censored=0.8, substitution_fraction=0.5, + transform_in=numpy.log, transform_out=numpy.exp, + as_array=True): + """ + Impute censored dataset using Regression on Order Statistics (ROS). + + Method described in *Nondetects and Data Analysis* by Dennis R. + Helsel (John Wiley, 2005) to estimate the left-censored (non-detect) + values of a dataset. When there is insufficient non-censorded data, + simple substitution is used. + + Parameters + ---------- + observations : str or array-like + Label of the column or the float array of censored observations + + censorship : str + Label of the column or the bool array of the censorship + status of the observations. + + * True if censored, + * False if uncensored + + df : pandas.DataFrame, optional + If `observations` and `censorship` are labels, this is the + DataFrame that contains those columns. + + min_uncensored : int (default is 2) + The minimum number of uncensored values required before ROS + can be used to impute the censored observations. When this + criterion is not met, simple substituion is used instead. + + max_fraction_censored : float (default is 0.8) + The maximum fraction of censored data below which ROS can be + used to impute the censored observations. When this fraction is + exceeded, simple substituion is used instead. + + substitution_fraction : float (default is 0.5) + The fraction of the detection limit to be used during simple + substitution of the censored values. + + transform_in : callable (default is numpy.log) + Transformation to be applied to the values prior to fitting a + line to the plotting positions vs. uncensored values. + + transform_out : callable (default is numpy.exp) + Transformation to be applied to the imputed censored values + estimated from the previously computed best-fit line. + + as_array : bool (default is True) + When True, a numpy array of the imputed observations is + returned. Otherwise, a modified copy of the original dataframe + with all of the intermediate calculations is returned. + + Returns + ------- + imputed : numpy.array (default) or pandas.DataFrame + The final observations where the censored values have either been + imputed through ROS or substituted as a fraction of the + detection limit. + + Notes + ----- + This function requires pandas 0.14 or more recent. + """ + + # process arrays into a dataframe, if necessary + if df is None: + df = pandas.DataFrame({'obs': observations, 'cen': censorship}) + observations = 'obs' + censorship = 'cen' + + # basic counts/metrics of the dataset + N_observations = df.shape[0] + N_censored = df[censorship].astype(int).sum() + N_uncensored = N_observations - N_censored + fraction_censored = N_censored / N_observations + + # add plotting positions if there are no censored values + # (editted for pandas 0.14 compatibility; see commit 63f162e + # when `pipe` and `assign` are available) + if N_censored == 0: + output = df[[observations, censorship]].copy() + output.loc[:, 'final'] = df[observations] + + # substitute w/ fraction of the DLs if there's insufficient + # uncensored data + # (editted for pandas 0.14 compatibility; see commit 63f162e + # when `pipe` and `assign` are available) + elif (N_uncensored < min_uncensored) or (fraction_censored > max_fraction_censored): + output = df[[observations, censorship]].copy() + output.loc[:, 'final'] = df[observations] + output.loc[df[censorship], 'final'] *= substitution_fraction + + + # normal ROS stuff + else: + output = _do_ros(df, observations, censorship, transform_in, transform_out) + + # convert to an array if necessary + if as_array: + output = output['final'].values + + return output diff --git a/statsmodels/imputation/tests/__init__.py b/statsmodels/imputation/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/imputation/tests/test_mice.py b/statsmodels/imputation/tests/test_mice.py new file mode 100644 index 0000000..42efb89 --- /dev/null +++ b/statsmodels/imputation/tests/test_mice.py @@ -0,0 +1,351 @@ +import numpy as np +import pandas as pd +from statsmodels.imputation import mice +import statsmodels.api as sm +from numpy.testing import assert_equal, assert_allclose, dec + +try: + import matplotlib.pyplot as plt #makes plt available for test functions + have_matplotlib = True +except: + have_matplotlib = False + +pdf_output = False + + +if pdf_output: + from matplotlib.backends.backend_pdf import PdfPages + pdf = PdfPages("test_mice.pdf") +else: + pdf = None + + +def close_or_save(pdf, fig): + if not have_matplotlib: + return + if pdf_output: + pdf.savefig(fig) + plt.close(fig) + + +def teardown_module(): + if not have_matplotlib: + return + plt.close('all') + if pdf_output: + pdf.close() + + +def gendat(): + """ + Create a data set with missing values. + """ + + np.random.seed(34243) + + n = 200 + p = 5 + + exog = np.random.normal(size=(n, p)) + exog[:, 0] = exog[:, 1] - exog[:, 2] + 2*exog[:, 4] + exog[:, 0] += np.random.normal(size=n) + exog[:, 2] = 1*(exog[:, 2] > 0) + + endog = exog.sum(1) + np.random.normal(size=n) + + df = pd.DataFrame(exog) + df.columns = ["x%d" % k for k in range(1, p+1)] + + df["y"] = endog + + df.x1[0:60] = np.nan + df.x2[0:40] = np.nan + df.x3[10:30:2] = np.nan + df.x4[20:50:3] = np.nan + df.x5[40:45] = np.nan + df.y[30:100:2] = np.nan + + return df + + +class TestMICEData(object): + + def test_default(self): + """ + Test with all defaults. + """ + + df = gendat() + orig = df.copy() + mx = pd.notnull(df) + imp_data = mice.MICEData(df) + nrow, ncol = df.shape + + assert_allclose(imp_data.ix_miss['x1'], np.arange(60)) + assert_allclose(imp_data.ix_obs['x1'], np.arange(60, 200)) + assert_allclose(imp_data.ix_miss['x2'], np.arange(40)) + assert_allclose(imp_data.ix_miss['x3'], np.arange(10, 30, 2)) + assert_allclose(imp_data.ix_obs['x3'], + np.concatenate((np.arange(10), + np.arange(11, 30, 2), + np.arange(30, 200)))) + + for k in range(3): + imp_data.update_all() + assert_equal(imp_data.data.shape[0], nrow) + assert_equal(imp_data.data.shape[1], ncol) + assert_allclose(orig[mx], imp_data.data[mx]) + + fml = 'x1 ~ x2 + x3 + x4 + x5 + y' + assert_equal(imp_data.conditional_formula['x1'], fml) + + assert_equal(imp_data._cycle_order, ['x5', 'x3', 'x4', 'y', 'x2', 'x1']) + + # Should make a copy + assert(not (df is imp_data.data)) + + (endog_obs, exog_obs, exog_miss, + predict_obs_kwds, predict_miss_kwds) = imp_data.get_split_data('x3') + assert_equal(len(endog_obs), 190) + assert_equal(exog_obs.shape, [190, 6]) + assert_equal(exog_miss.shape, [10, 6]) + + + def test_next_sample(self): + + df = gendat() + imp_data = mice.MICEData(df) + + all_x = [] + for j in range(2): + x = imp_data.next_sample() + assert(isinstance(x, pd.DataFrame)) + assert_equal(df.shape, x.shape) + all_x.append(x) + + # The returned dataframes are all the same object + assert(all_x[0] is all_x[1]) + + + def test_pertmeth(self): + """ + Test with specified perturbation method. + """ + + df = gendat() + orig = df.copy() + mx = pd.notnull(df) + nrow, ncol = df.shape + + for pert_meth in "gaussian", "boot": + + imp_data = mice.MICEData(df, perturbation_method=pert_meth) + + for k in range(2): + imp_data.update_all() + assert_equal(imp_data.data.shape[0], nrow) + assert_equal(imp_data.data.shape[1], ncol) + assert_allclose(orig[mx], imp_data.data[mx]) + + assert_equal(imp_data._cycle_order, ['x5', 'x3', 'x4', 'y', 'x2', 'x1']) + + + def test_phreg(self): + + np.random.seed(8742) + n = 300 + x1 = np.random.normal(size=n) + x2 = np.random.normal(size=n) + event_time = np.random.exponential(size=n) * np.exp(x1) + obs_time = np.random.exponential(size=n) + time = np.where(event_time < obs_time, event_time, obs_time) + status = np.where(time == event_time, 1, 0) + df = pd.DataFrame({"time": time, "status": status, "x1": x1, "x2": x2}) + df.loc[10:40, 'time'] = np.nan + df.loc[10:40, 'status'] = np.nan + df.loc[30:50, 'x1'] = np.nan + df.loc[40:60, 'x2'] = np.nan + + from statsmodels.duration.hazard_regression import PHReg + + idata = mice.MICEData(df) + idata.set_imputer("time", "0 + x1 + x2", model_class=PHReg, + init_kwds={"status": mice.PatsyFormula("status")}, + predict_kwds={"pred_type": "hr"}) + + x = idata.next_sample() + assert(isinstance(x, pd.DataFrame)) + + + def test_set_imputer(self): + """ + Test with specified perturbation method. + """ + + from statsmodels.regression.linear_model import RegressionResultsWrapper + from statsmodels.genmod.generalized_linear_model import GLMResultsWrapper + + df = gendat() + orig = df.copy() + mx = pd.notnull(df) + nrow, ncol = df.shape + + imp_data = mice.MICEData(df) + imp_data.set_imputer('x1', 'x3 + x4 + x3*x4') + imp_data.set_imputer('x2', 'x4 + I(x5**2)') + imp_data.set_imputer('x3', model_class=sm.GLM, + init_kwds={"family": sm.families.Binomial()}) + + imp_data.update_all() + assert_equal(imp_data.data.shape[0], nrow) + assert_equal(imp_data.data.shape[1], ncol) + assert_allclose(orig[mx], imp_data.data[mx]) + for j in range(1, 6): + if j == 3: + assert_equal(isinstance(imp_data.models['x3'], sm.GLM), True) + assert_equal(isinstance(imp_data.models['x3'].family, sm.families.Binomial), True) + assert_equal(isinstance(imp_data.results['x3'], GLMResultsWrapper), True) + else: + assert_equal(isinstance(imp_data.models['x%d' % j], sm.OLS), True) + assert_equal(isinstance(imp_data.results['x%d' % j], RegressionResultsWrapper), True) + + fml = 'x1 ~ x3 + x4 + x3*x4' + assert_equal(imp_data.conditional_formula['x1'], fml) + + fml = 'x4 ~ x1 + x2 + x3 + x5 + y' + assert_equal(imp_data.conditional_formula['x4'], fml) + + assert_equal(imp_data._cycle_order, ['x5', 'x3', 'x4', 'y', 'x2', 'x1']) + + + @dec.skipif(not have_matplotlib) + def test_plot_missing_pattern(self): + + df = gendat() + imp_data = mice.MICEData(df) + + for row_order in "pattern", "raw": + for hide_complete_rows in False, True: + for color_row_patterns in False, True: + plt.clf() + fig = imp_data.plot_missing_pattern(row_order=row_order, + hide_complete_rows=hide_complete_rows, + color_row_patterns=color_row_patterns) + close_or_save(pdf, fig) + + + @dec.skipif(not have_matplotlib) + def test_plot_bivariate(self): + + df = gendat() + imp_data = mice.MICEData(df) + imp_data.update_all() + + plt.clf() + for plot_points in False, True: + fig = imp_data.plot_bivariate('x2', 'x4', plot_points=plot_points) + fig.get_axes()[0].set_title('plot_bivariate') + close_or_save(pdf, fig) + + + @dec.skipif(not have_matplotlib) + def test_fit_obs(self): + + df = gendat() + imp_data = mice.MICEData(df) + imp_data.update_all() + + plt.clf() + for plot_points in False, True: + fig = imp_data.plot_fit_obs('x4', plot_points=plot_points) + fig.get_axes()[0].set_title('plot_fit_scatterplot') + close_or_save(pdf, fig) + + + @dec.skipif(not have_matplotlib) + def test_plot_imputed_hist(self): + + df = gendat() + imp_data = mice.MICEData(df) + imp_data.update_all() + + plt.clf() + for plot_points in False, True: + fig = imp_data.plot_imputed_hist('x4') + fig.get_axes()[0].set_title('plot_imputed_hist') + close_or_save(pdf, fig) + + + +class TestMICE(object): + + def test_MICE(self): + + df = gendat() + imp_data = mice.MICEData(df) + mi = mice.MICE("y ~ x1 + x2 + x1:x2", sm.OLS, imp_data) + result = mi.fit(1, 3) + + assert(issubclass(result.__class__, mice.MICEResults)) + + # Smoke test for results + smr = result.summary() + + + def test_MICE1(self): + + df = gendat() + imp_data = mice.MICEData(df) + mi = mice.MICE("y ~ x1 + x2 + x1:x2", sm.OLS, imp_data) + + from statsmodels.regression.linear_model import RegressionResultsWrapper + + for j in range(3): + x = mi.next_sample() + assert(issubclass(x.__class__, RegressionResultsWrapper)) + + + def test_MICE2(self): + + from statsmodels.genmod.generalized_linear_model import GLMResultsWrapper + + df = gendat() + imp_data = mice.MICEData(df) + mi = mice.MICE("x3 ~ x1 + x2", sm.GLM, imp_data, + init_kwds={"family": sm.families.Binomial()}) + + for j in range(3): + x = mi.next_sample() + assert(isinstance(x, GLMResultsWrapper)) + assert(isinstance(x.family, sm.families.Binomial)) + + + def test_combine(self): + + np.random.seed(3897) + x1 = np.random.normal(size=300) + x2 = np.random.normal(size=300) + y = x1 + x2 + np.random.normal(size=300) + x1[0:100] = np.nan + x2[250:] = np.nan + df = pd.DataFrame({"x1": x1, "x2": x2, "y": y}) + idata = mice.MICEData(df) + mi = mice.MICE("y ~ x1 + x2", sm.OLS, idata, n_skip=20) + result = mi.fit(10, 20) + + fmi = np.asarray([ 0.1920533 , 0.1587287 , 0.33174032]) + assert_allclose(result.frac_miss_info, fmi, atol=1e-5) + + params = np.asarray([-0.05397474, 0.97273307, 1.01652293]) + assert_allclose(result.params, params, atol=1e-5) + + tvalues = np.asarray([ -0.84781698, 15.10491582, 13.59998039]) + assert_allclose(result.tvalues, tvalues, atol=1e-5) + + +if __name__=="__main__": + + import nose + + nose.runmodule(argv=[__file__,'-vvs','-x','--pdb', '--pdb-failure'], + exit=False) diff --git a/statsmodels/imputation/tests/test_ros.py b/statsmodels/imputation/tests/test_ros.py new file mode 100644 index 0000000..a9d0cd2 --- /dev/null +++ b/statsmodels/imputation/tests/test_ros.py @@ -0,0 +1,662 @@ +from __future__ import division + +import sys +from textwrap import dedent + +import nose.tools as ntools +import numpy.testing as npt +import pandas.util.testing as pdtest + +import numpy +import pandas + +from statsmodels.imputation import ros +from statsmodels.compat.python import StringIO + +if pandas.__version__.split('.')[1] < '14': + __test__ = False + + +@ntools.nottest +def load_basic_data(): + raw_csv = StringIO( + "res,qual\n2.00,=\n4.20,=\n4.62,=\n5.00,ND\n5.00,ND\n5.50,ND\n" + "5.57,=\n5.66,=\n5.75,ND\n5.86,=\n6.65,=\n6.78,=\n6.79,=\n7.50,=\n" + "7.50,=\n7.50,=\n8.63,=\n8.71,=\n8.99,=\n9.50,ND\n9.50,ND\n9.85,=\n" + "10.82,=\n11.00,ND\n11.25,=\n11.25,=\n12.20,=\n14.92,=\n16.77,=\n" + "17.81,=\n19.16,=\n19.19,=\n19.64,=\n20.18,=\n22.97,=\n" + ) + df = pandas.read_csv(raw_csv) + df.loc[:, 'conc'] = df['res'] + df.loc[:, 'censored'] = df['qual'] == 'ND' + + return df + + +@ntools.nottest +def load_intermediate_data(): + df = pandas.DataFrame([ + {'censored': True, 'conc': 5.0, 'det_limit_index': 1, 'rank': 1}, + {'censored': True, 'conc': 5.0, 'det_limit_index': 1, 'rank': 2}, + {'censored': True, 'conc': 5.5, 'det_limit_index': 2, 'rank': 1}, + {'censored': True, 'conc': 5.75, 'det_limit_index': 3, 'rank': 1}, + {'censored': True, 'conc': 9.5, 'det_limit_index': 4, 'rank': 1}, + {'censored': True, 'conc': 9.5, 'det_limit_index': 4, 'rank': 2}, + {'censored': True, 'conc': 11.0, 'det_limit_index': 5, 'rank': 1}, + {'censored': False, 'conc': 2.0, 'det_limit_index': 0, 'rank': 1}, + {'censored': False, 'conc': 4.2, 'det_limit_index': 0, 'rank': 2}, + {'censored': False, 'conc': 4.62, 'det_limit_index': 0, 'rank': 3}, + {'censored': False, 'conc': 5.57, 'det_limit_index': 2, 'rank': 1}, + {'censored': False, 'conc': 5.66, 'det_limit_index': 2, 'rank': 2}, + {'censored': False, 'conc': 5.86, 'det_limit_index': 3, 'rank': 1}, + {'censored': False, 'conc': 6.65, 'det_limit_index': 3, 'rank': 2}, + {'censored': False, 'conc': 6.78, 'det_limit_index': 3, 'rank': 3}, + {'censored': False, 'conc': 6.79, 'det_limit_index': 3, 'rank': 4}, + {'censored': False, 'conc': 7.5, 'det_limit_index': 3, 'rank': 5}, + {'censored': False, 'conc': 7.5, 'det_limit_index': 3, 'rank': 6}, + {'censored': False, 'conc': 7.5, 'det_limit_index': 3, 'rank': 7}, + {'censored': False, 'conc': 8.63, 'det_limit_index': 3, 'rank': 8}, + {'censored': False, 'conc': 8.71, 'det_limit_index': 3, 'rank': 9}, + {'censored': False, 'conc': 8.99, 'det_limit_index': 3, 'rank': 10}, + {'censored': False, 'conc': 9.85, 'det_limit_index': 4, 'rank': 1}, + {'censored': False, 'conc': 10.82, 'det_limit_index': 4, 'rank': 2}, + {'censored': False, 'conc': 11.25, 'det_limit_index': 5, 'rank': 1}, + {'censored': False, 'conc': 11.25, 'det_limit_index': 5, 'rank': 2}, + {'censored': False, 'conc': 12.2, 'det_limit_index': 5, 'rank': 3}, + {'censored': False, 'conc': 14.92, 'det_limit_index': 5, 'rank': 4}, + {'censored': False, 'conc': 16.77, 'det_limit_index': 5, 'rank': 5}, + {'censored': False, 'conc': 17.81, 'det_limit_index': 5, 'rank': 6}, + {'censored': False, 'conc': 19.16, 'det_limit_index': 5, 'rank': 7}, + {'censored': False, 'conc': 19.19, 'det_limit_index': 5, 'rank': 8}, + {'censored': False, 'conc': 19.64, 'det_limit_index': 5, 'rank': 9}, + {'censored': False, 'conc': 20.18, 'det_limit_index': 5, 'rank': 10}, + {'censored': False, 'conc': 22.97, 'det_limit_index': 5, 'rank': 11} + ]) + + return df + + +@ntools.nottest +def load_advanced_data(): + df = pandas.DataFrame([ + {'Zprelim': -1.4456202174142005, 'censored': True, 'conc': 5.0, + 'det_limit_index': 1, 'plot_pos': 0.07414187643020594, 'rank': 1}, + {'Zprelim': -1.2201035333697587, 'censored': True, 'conc': 5.0, + 'det_limit_index': 1, 'plot_pos': 0.11121281464530891, 'rank': 2}, + {'Zprelim': -1.043822530159519, 'censored': True, 'conc': 5.5, + 'det_limit_index': 2, 'plot_pos': 0.14828375286041187, 'rank': 1}, + {'Zprelim': -1.0438225301595188, 'censored': True, 'conc': 5.75, + 'det_limit_index': 3, 'plot_pos': 0.1482837528604119, 'rank': 1}, + {'Zprelim': -0.8109553641377003, 'censored': True, 'conc': 9.5, + 'det_limit_index': 4, 'plot_pos': 0.20869565217391303, 'rank': 1}, + {'Zprelim': -0.4046779045300476, 'censored': True, 'conc': 9.5, + 'det_limit_index': 4, 'plot_pos': 0.34285714285714286, 'rank': 2}, + {'Zprelim': -0.20857169501420522, 'censored': True, 'conc': 11.0, + 'det_limit_index': 5, 'plot_pos': 0.41739130434782606, 'rank': 1}, + {'Zprelim': -1.5927654676048002, 'censored': False, 'conc': 2.0, + 'det_limit_index': 0, 'plot_pos': 0.055606407322654455, 'rank': 1}, + {'Zprelim': -1.2201035333697587, 'censored': False, 'conc': 4.2, + 'det_limit_index': 0, 'plot_pos': 0.11121281464530891, 'rank': 2}, + {'Zprelim': -0.9668111610681008, 'censored': False, 'conc': 4.62, + 'det_limit_index': 0, 'plot_pos': 0.16681922196796337, 'rank': 3}, + {'Zprelim': -0.6835186393930371, 'censored': False, 'conc': 5.57, + 'det_limit_index': 2, 'plot_pos': 0.24713958810068648, 'rank': 1}, + {'Zprelim': -0.6072167256926887, 'censored': False, 'conc': 5.66, + 'det_limit_index': 2, 'plot_pos': 0.27185354691075514, 'rank': 2}, + {'Zprelim': -0.44953240276543616, 'censored': False, 'conc': 5.86, + 'det_limit_index': 3, 'plot_pos': 0.3265238194299979, 'rank': 1}, + {'Zprelim': -0.36788328223414807, 'censored': False, 'conc': 6.65, + 'det_limit_index': 3, 'plot_pos': 0.35648013313917204, 'rank': 2}, + {'Zprelim': -0.28861907892223937, 'censored': False, 'conc': 6.78, + 'det_limit_index': 3, 'plot_pos': 0.38643644684834616, 'rank': 3}, + {'Zprelim': -0.21113039741112186, 'censored': False, 'conc': 6.79, + 'det_limit_index': 3, 'plot_pos': 0.4163927605575203, 'rank': 4}, + {'Zprelim': -0.1348908823006299, 'censored': False, 'conc': 7.5, + 'det_limit_index': 3, 'plot_pos': 0.4463490742666944, 'rank': 5}, + {'Zprelim': -0.05942854708257491, 'censored': False, 'conc': 7.5, + 'det_limit_index': 3, 'plot_pos': 0.4763053879758685, 'rank': 6}, + {'Zprelim': 0.015696403006170083, 'censored': False, 'conc': 7.5, + 'det_limit_index': 3, 'plot_pos': 0.5062617016850427, 'rank': 7}, + {'Zprelim': 0.09091016994359362, 'censored': False, 'conc': 8.63, + 'det_limit_index': 3, 'plot_pos': 0.5362180153942168, 'rank': 8}, + {'Zprelim': 0.16664251178856201, 'censored': False, 'conc': 8.71, + 'det_limit_index': 3, 'plot_pos': 0.5661743291033909, 'rank': 9}, + {'Zprelim': 0.24334426739770573, 'censored': False, 'conc': 8.99, + 'det_limit_index': 3, 'plot_pos': 0.596130642812565, 'rank': 10}, + {'Zprelim': 0.3744432988606558, 'censored': False, 'conc': 9.85, + 'det_limit_index': 4, 'plot_pos': 0.6459627329192545, 'rank': 1}, + {'Zprelim': 0.4284507519609981, 'censored': False, 'conc': 10.82, + 'det_limit_index': 4, 'plot_pos': 0.6658385093167701, 'rank': 2}, + {'Zprelim': 0.5589578655042562, 'censored': False, 'conc': 11.25, + 'det_limit_index': 5, 'plot_pos': 0.7119047619047619, 'rank': 1}, + {'Zprelim': 0.6374841609623771, 'censored': False, 'conc': 11.25, + 'det_limit_index': 5, 'plot_pos': 0.7380952380952381, 'rank': 2}, + {'Zprelim': 0.7201566171385521, 'censored': False, 'conc': 12.2, + 'det_limit_index': 5, 'plot_pos': 0.7642857142857142, 'rank': 3}, + {'Zprelim': 0.8080746339118065, 'censored': False, 'conc': 14.92, + 'det_limit_index': 5, 'plot_pos': 0.7904761904761904, 'rank': 4}, + {'Zprelim': 0.9027347916438648, 'censored': False, 'conc': 16.77, + 'det_limit_index': 5, 'plot_pos': 0.8166666666666667, 'rank': 5}, + {'Zprelim': 1.0062699858608395, 'censored': False, 'conc': 17.81, + 'det_limit_index': 5, 'plot_pos': 0.8428571428571429, 'rank': 6}, + {'Zprelim': 1.1219004674623523, 'censored': False, 'conc': 19.16, + 'det_limit_index': 5, 'plot_pos': 0.8690476190476191, 'rank': 7}, + {'Zprelim': 1.2548759122271174, 'censored': False, 'conc': 19.19, + 'det_limit_index': 5, 'plot_pos': 0.8952380952380953, 'rank': 8}, + {'Zprelim': 1.414746425534976, 'censored': False, 'conc': 19.64, + 'det_limit_index': 5, 'plot_pos': 0.9214285714285714, 'rank': 9}, + {'Zprelim': 1.622193585315426, 'censored': False, 'conc': 20.18, + 'det_limit_index': 5, 'plot_pos': 0.9476190476190476, 'rank': 10}, + {'Zprelim': 1.9399896117517081, 'censored': False, 'conc': 22.97, + 'det_limit_index': 5, 'plot_pos': 0.9738095238095239, 'rank': 11} + ]) + + return df + + +@ntools.nottest +def load_basic_cohn(): + cohn = pandas.DataFrame([ + {'lower_dl': 2.0, 'ncen_equal': 0.0, 'nobs_below': 0.0, + 'nuncen_above': 3.0, 'prob_exceedance': 1.0, 'upper_dl': 5.0}, + {'lower_dl': 5.0, 'ncen_equal': 2.0, 'nobs_below': 5.0, + 'nuncen_above': 0.0, 'prob_exceedance': 0.77757437070938218, 'upper_dl': 5.5}, + {'lower_dl': 5.5, 'ncen_equal': 1.0, 'nobs_below': 6.0, + 'nuncen_above': 2.0, 'prob_exceedance': 0.77757437070938218, 'upper_dl': 5.75}, + {'lower_dl': 5.75, 'ncen_equal': 1.0, 'nobs_below': 9.0, + 'nuncen_above': 10.0, 'prob_exceedance': 0.7034324942791762, 'upper_dl': 9.5}, + {'lower_dl': 9.5, 'ncen_equal': 2.0, 'nobs_below': 21.0, + 'nuncen_above': 2.0, 'prob_exceedance': 0.37391304347826088, 'upper_dl': 11.0}, + {'lower_dl': 11.0, 'ncen_equal': 1.0, 'nobs_below': 24.0, + 'nuncen_above': 11.0, 'prob_exceedance': 0.31428571428571428, 'upper_dl': numpy.inf}, + {'lower_dl': numpy.nan, 'ncen_equal': numpy.nan, 'nobs_below': numpy.nan, + 'nuncen_above': numpy.nan, 'prob_exceedance': 0.0, 'upper_dl': numpy.nan} + ]) + return cohn + + +class Test__ros_sort(object): + def setup(self): + self.df = load_basic_data() + + self.expected_baseline = pandas.DataFrame([ + {'censored': True, 'conc': 5.0}, {'censored': True, 'conc': 5.0}, + {'censored': True, 'conc': 5.5}, {'censored': True, 'conc': 5.75}, + {'censored': True, 'conc': 9.5}, {'censored': True, 'conc': 9.5}, + {'censored': True, 'conc': 11.0}, {'censored': False, 'conc': 2.0}, + {'censored': False, 'conc': 4.2}, {'censored': False, 'conc': 4.62}, + {'censored': False, 'conc': 5.57}, {'censored': False, 'conc': 5.66}, + {'censored': False, 'conc': 5.86}, {'censored': False, 'conc': 6.65}, + {'censored': False, 'conc': 6.78}, {'censored': False, 'conc': 6.79}, + {'censored': False, 'conc': 7.5}, {'censored': False, 'conc': 7.5}, + {'censored': False, 'conc': 7.5}, {'censored': False, 'conc': 8.63}, + {'censored': False, 'conc': 8.71}, {'censored': False, 'conc': 8.99}, + {'censored': False, 'conc': 9.85}, {'censored': False, 'conc': 10.82}, + {'censored': False, 'conc': 11.25}, {'censored': False, 'conc': 11.25}, + {'censored': False, 'conc': 12.2}, {'censored': False, 'conc': 14.92}, + {'censored': False, 'conc': 16.77}, {'censored': False, 'conc': 17.81}, + {'censored': False, 'conc': 19.16}, {'censored': False, 'conc': 19.19}, + {'censored': False, 'conc': 19.64}, {'censored': False, 'conc': 20.18}, + {'censored': False, 'conc': 22.97}, + ])[['conc', 'censored']] + + self.expected_with_warning = self.expected_baseline.iloc[:-1] + + def test_baseline(self): + result = ros._ros_sort(self.df, 'conc', 'censored') + pdtest.assert_frame_equal(result, self.expected_baseline) + + def test_censored_greater_than_max(self): + df = self.df.copy() + max_row = df['conc'].argmax() + df.loc[max_row, 'censored'] = True + result = ros._ros_sort(df, 'conc', 'censored') + pdtest.assert_frame_equal(result, self.expected_with_warning) + + +class Test_cohn_numbers(object): + def setup(self): + self.df = load_basic_data() + self.final_cols = ['lower_dl', 'upper_dl', 'nuncen_above', 'nobs_below', + 'ncen_equal', 'prob_exceedance'] + + self.expected_baseline = pandas.DataFrame([ + {'lower_dl': 2.0, 'ncen_equal': 0.0, 'nobs_below': 0.0, + 'nuncen_above': 3.0, 'prob_exceedance': 1.0, 'upper_dl': 5.0}, + {'lower_dl': 5.0, 'ncen_equal': 2.0, 'nobs_below': 5.0, + 'nuncen_above': 0.0, 'prob_exceedance': 0.77757437070938218, 'upper_dl': 5.5}, + {'lower_dl': 5.5, 'ncen_equal': 1.0, 'nobs_below': 6.0, + 'nuncen_above': 2.0, 'prob_exceedance': 0.77757437070938218, 'upper_dl': 5.75}, + {'lower_dl': 5.75, 'ncen_equal': 1.0, 'nobs_below': 9.0, + 'nuncen_above': 10.0, 'prob_exceedance': 0.7034324942791762, 'upper_dl': 9.5}, + {'lower_dl': 9.5, 'ncen_equal': 2.0, 'nobs_below': 21.0, + 'nuncen_above': 2.0, 'prob_exceedance': 0.37391304347826088, 'upper_dl': 11.0}, + {'lower_dl': 11.0, 'ncen_equal': 1.0, 'nobs_below': 24.0, + 'nuncen_above': 11.0, 'prob_exceedance': 0.31428571428571428, 'upper_dl': numpy.inf}, + {'lower_dl': numpy.nan, 'ncen_equal': numpy.nan, 'nobs_below': numpy.nan, + 'nuncen_above': numpy.nan, 'prob_exceedance': 0.0, 'upper_dl': numpy.nan} + ])[self.final_cols] + + + def test_baseline(self): + result = ros.cohn_numbers(self.df, observations='conc', censorship='censored') + pdtest.assert_frame_equal(result, self.expected_baseline) + + def test_no_NDs(self): + _df = self.df.copy() + _df['qual'] = False + result = ros.cohn_numbers(_df, observations='conc', censorship='qual') + ntools.assert_tuple_equal(result.shape, (0, 6)) + + +class Test__detection_limit_index(object): + def setup(self): + self.cohn = load_basic_cohn() + self.empty_cohn = pandas.DataFrame(numpy.empty((0, 7))) + + def test_empty(self): + ntools.assert_equal(ros._detection_limit_index(None, self.empty_cohn), 0) + + def test_populated(self): + ntools.assert_equal(ros._detection_limit_index(3.5, self.cohn), 0) + ntools.assert_equal(ros._detection_limit_index(6.0, self.cohn), 3) + ntools.assert_equal(ros._detection_limit_index(12.0, self.cohn), 5) + + @ntools.raises(IndexError) + def test_out_of_bounds(self): + ros._detection_limit_index(0, self.cohn) + + +def test__ros_group_rank(): + df = pandas.DataFrame({ + 'dl_idx': [1] * 12, + 'params': list('AABCCCDE') + list('DCBA'), + 'values': list(range(12)) + }) + + result = ros._ros_group_rank(df, 'dl_idx', 'params') + expected = pandas.Series([1, 2, 1, 1, 2, 3, 1, 1, 2, 4, 2, 3], name='rank') + pdtest.assert_series_equal(result.astype(int), expected.astype(int)) + + +class Test__ros_plot_pos(object): + def setup(self): + self.cohn = load_basic_cohn() + + def test_uncensored_1(self): + row = {'censored': False, 'det_limit_index': 2, 'rank': 1} + result = ros._ros_plot_pos(row, 'censored', self.cohn) + ntools.assert_equal(result, 0.24713958810068648) + + def test_uncensored_2(self): + row = {'censored': False, 'det_limit_index': 2, 'rank': 12} + result = ros._ros_plot_pos(row, 'censored', self.cohn) + ntools.assert_equal(result, 0.51899313501144173) + + def test_censored_1(self): + row = {'censored': True, 'det_limit_index': 5, 'rank': 4} + result = ros._ros_plot_pos(row, 'censored', self.cohn) + ntools.assert_equal(result, 1.3714285714285714) + + def test_censored_2(self): + row = {'censored': True, 'det_limit_index': 4, 'rank': 2} + result = ros._ros_plot_pos(row, 'censored', self.cohn) + ntools.assert_equal(result, 0.41739130434782606) + + +def test__norm_plot_pos(): + result = ros._norm_plot_pos([1, 2, 3, 4]) + expected = numpy.array([ 0.159104, 0.385452, 0.614548, 0.840896]) + npt.assert_array_almost_equal(result, expected) + + +def test_plotting_positions(): + df = load_intermediate_data() + cohn = load_basic_cohn() + + results = ros.plotting_positions(df, 'censored', cohn) + expected = numpy.array([ + 0.07414188, 0.11121281, 0.14828375, 0.14828375, 0.20869565, + 0.34285714, 0.4173913 , 0.05560641, 0.11121281, 0.16681922, + 0.24713959, 0.27185355, 0.32652382, 0.35648013, 0.38643645, + 0.41639276, 0.44634907, 0.47630539, 0.5062617 , 0.53621802, + 0.56617433, 0.59613064, 0.64596273, 0.66583851, 0.71190476, + 0.73809524, 0.76428571, 0.79047619, 0.81666667, 0.84285714, + 0.86904762, 0.8952381 , 0.92142857, 0.94761905, 0.97380952 + ]) + npt.assert_array_almost_equal(results, expected) + + +def test__impute(): + expected = numpy.array([ + 3.11279729, 3.60634338, 4.04602788, 4.04602788, + 4.71008116, 6.14010906, 6.97841457, 2. , + 4.2 , 4.62 , 5.57 , 5.66 , + 5.86 , 6.65 , 6.78 , 6.79 , + 7.5 , 7.5 , 7.5 , 8.63 , + 8.71 , 8.99 , 9.85 , 10.82 , + 11.25 , 11.25 , 12.2 , 14.92 , + 16.77 , 17.81 , 19.16 , 19.19 , + 19.64 , 20.18 , 22.97 + ]) + df = load_advanced_data() + df = ros._impute(df, 'conc', 'censored', numpy.log, numpy.exp) + result = df['final'].values + npt.assert_array_almost_equal(result, expected) + + +def test__do_ros(): + expected = numpy.array([ + 3.11279729, 3.60634338, 4.04602788, 4.04602788, + 4.71008116, 6.14010906, 6.97841457, 2. , + 4.2 , 4.62 , 5.57 , 5.66 , + 5.86 , 6.65 , 6.78 , 6.79 , + 7.5 , 7.5 , 7.5 , 8.63 , + 8.71 , 8.99 , 9.85 , 10.82 , + 11.25 , 11.25 , 12.2 , 14.92 , + 16.77 , 17.81 , 19.16 , 19.19 , + 19.64 , 20.18 , 22.97 + ]) + + df = load_basic_data() + df = ros._do_ros(df, 'conc', 'censored', numpy.log, numpy.exp) + result = df['final'].values + npt.assert_array_almost_equal(result, expected) + + +class CheckROSMixin(object): + def test_ros_df(self): + result = ros.impute_ros(self.rescol, self.cencol, df=self.df) + npt.assert_array_almost_equal( + sorted(result), + sorted(self.expected_final), + decimal=self.decimal + ) + + def test_ros_arrays(self): + result = ros.impute_ros(self.df[self.rescol], self.df[self.cencol], df=None) + npt.assert_array_almost_equal( + sorted(result), + sorted(self.expected_final), + decimal=self.decimal + ) + + def test_cohn(self): + cols = [ + 'nuncen_above', 'nobs_below', + 'ncen_equal', 'prob_exceedance' + ] + cohn = ros.cohn_numbers(self.df, self.rescol, self.cencol) + pdtest.assert_frame_equal( + cohn[cols], + self.expected_cohn[cols], + check_less_precise=True, + ) + + +class Test_ROS_HelselAppendixB(CheckROSMixin): + """ + Appendix B dataset from "Estimation of Descriptive Statists for + Multiply Censored Water Quality Data", Water Resources Research, + Vol 24, No 12, pp 1997 - 2004. December 1988. + """ + decimal = 2 + res = numpy.array([ + 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 10., 10., 10., + 3.0, 7.0, 9.0, 12., 15., 20., 27., 33., 50. + ]) + cen = numpy.array([ + True, True, True, True, True, True, True, True, True, + False, False, False, False, False, False, False, + False, False + ]) + rescol = 'obs' + cencol = 'cen' + df = pandas.DataFrame({rescol: res, cencol: cen}) + expected_final = numpy.array([ + 0.47, 0.85, 1.11, 1.27, 1.76, 2.34, 2.50, 3.00, 3.03, + 4.80, 7.00, 9.00, 12.0, 15.0, 20.0, 27.0, 33.0, 50.0 + ]) + + expected_cohn = pandas.DataFrame({ + 'nuncen_above': numpy.array([3.0, 6.0, numpy.nan]), + 'nobs_below': numpy.array([6.0, 12.0, numpy.nan]), + 'ncen_equal': numpy.array([6.0, 3.0, numpy.nan]), + 'prob_exceedance': numpy.array([0.55556, 0.33333, 0.0]), + }) + + +class Test_ROS_HelselArsenic(CheckROSMixin): + """ + Oahu arsenic data from Nondetects and Data Analysis by + Dennis R. Helsel (John Wiley, 2005) + + Plotting positions are fudged since relative to source data since + modeled data is what matters and (source data plot positions are + not uniformly spaced, which seems weird) + """ + decimal = 2 + res = numpy.array([ + 3.2, 2.8, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, + 2.0, 2.0, 1.7, 1.5, 1.0, 1.0, 1.0, 1.0, + 0.9, 0.9, 0.7, 0.7, 0.6, 0.5, 0.5, 0.5 + ]) + + cen = numpy.array([ + False, False, True, True, True, True, True, + True, True, True, False, False, True, True, + True, True, False, True, False, False, False, + False, False, False + ]) + rescol = 'obs' + cencol = 'cen' + df = pandas.DataFrame({rescol: res, cencol: cen}) + expected_final = numpy.array([ + 3.20, 2.80, 1.42, 1.14, 0.95, 0.81, 0.68, 0.57, + 0.46, 0.35, 1.70, 1.50, 0.98, 0.76, 0.58, 0.41, + 0.90, 0.61, 0.70, 0.70, 0.60, 0.50, 0.50, 0.50 + ]) + + expected_cohn = pandas.DataFrame({ + 'nuncen_above': numpy.array([6.0, 1.0, 2.0, 2.0, numpy.nan]), + 'nobs_below': numpy.array([0.0, 7.0, 12.0, 22.0, numpy.nan]), + 'ncen_equal': numpy.array([0.0, 1.0, 4.0, 8.0, numpy.nan]), + 'prob_exceedance': numpy.array([1.0, 0.3125, 0.21429, 0.0833, 0.0]), + }) + + +class Test_ROS_RNADAdata(CheckROSMixin): + decimal = 3 + datastring = StringIO(dedent("""\ + res cen + 0.090 True + 0.090 True + 0.090 True + 0.101 False + 0.136 False + 0.340 False + 0.457 False + 0.514 False + 0.629 False + 0.638 False + 0.774 False + 0.788 False + 0.900 True + 0.900 True + 0.900 True + 1.000 True + 1.000 True + 1.000 True + 1.000 True + 1.000 True + 1.000 False + 1.000 True + 1.000 True + 1.000 True + 1.000 True + 1.000 True + 1.000 True + 1.000 True + 1.000 True + 1.000 True + 1.000 True + 1.000 True + 1.000 True + 1.100 False + 2.000 False + 2.000 False + 2.404 False + 2.860 False + 3.000 False + 3.000 False + 3.705 False + 4.000 False + 5.000 False + 5.960 False + 6.000 False + 7.214 False + 16.000 False + 17.716 False + 25.000 False + 51.000 False""" + )) + rescol = 'res' + cencol = 'cen' + df = pandas.read_csv(datastring, sep='\s+') + expected_final = numpy.array([ + 0.01907990, 0.03826254, 0.06080717, 0.10100000, 0.13600000, + 0.34000000, 0.45700000, 0.51400000, 0.62900000, 0.63800000, + 0.77400000, 0.78800000, 0.08745914, 0.25257575, 0.58544205, + 0.01711153, 0.03373885, 0.05287083, 0.07506079, 0.10081573, + 1.00000000, 0.13070334, 0.16539309, 0.20569039, 0.25257575, + 0.30725491, 0.37122555, 0.44636843, 0.53507405, 0.64042242, + 0.76644378, 0.91850581, 1.10390531, 1.10000000, 2.00000000, + 2.00000000, 2.40400000, 2.86000000, 3.00000000, 3.00000000, + 3.70500000, 4.00000000, 5.00000000, 5.96000000, 6.00000000, + 7.21400000, 16.00000000, 17.71600000, 25.00000000, 51.00000000 + ]) + + expected_cohn = pandas.DataFrame({ + 'nuncen_above': numpy.array([9., 0.0, 18., numpy.nan]), + 'nobs_below': numpy.array([3., 15., 32., numpy.nan]), + 'ncen_equal': numpy.array([3., 3., 17., numpy.nan]), + 'prob_exceedance': numpy.array([0.84, 0.36, 0.36, 0]), + }) + + +class Test_NoOp_ZeroND(CheckROSMixin): + decimal = 2 + numpy.random.seed(0) + N = 20 + res = numpy.random.lognormal(size=N) + cen = [False] * N + rescol = 'obs' + cencol = 'cen' + df = pandas.DataFrame({rescol: res, cencol: cen}) + expected_final = numpy.array([ + 0.38, 0.43, 0.81, 0.86, 0.90, 1.13, 1.15, 1.37, 1.40, + 1.49, 1.51, 1.56, 2.14, 2.59, 2.66, 4.28, 4.46, 5.84, + 6.47, 9.4 + ]) + + expected_cohn = pandas.DataFrame({ + 'nuncen_above': numpy.array([]), + 'nobs_below': numpy.array([]), + 'ncen_equal': numpy.array([]), + 'prob_exceedance': numpy.array([]), + }) + + +class Test_ROS_OneND(CheckROSMixin): + decimal = 3 + res = numpy.array([ + 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 10., 10., 10., + 3.0, 7.0, 9.0, 12., 15., 20., 27., 33., 50. + ]) + cen = numpy.array([ + True, False, False, False, False, False, False, False, False, + False, False, False, False, False, False, False, + False, False + ]) + rescol = 'conc' + cencol = 'cen' + df = pandas.DataFrame({rescol: res, cencol: cen}) + expected_final = numpy.array([ + 0.24, 1.0, 1.0, 1.0, 1.0, 1.0, 10., 10., 10., + 3.0 , 7.0, 9.0, 12., 15., 20., 27., 33., 50. + ]) + + expected_cohn = pandas.DataFrame({ + 'nuncen_above': numpy.array([17.0, numpy.nan]), + 'nobs_below': numpy.array([1.0, numpy.nan]), + 'ncen_equal': numpy.array([1.0, numpy.nan]), + 'prob_exceedance': numpy.array([0.94444, 0.0]), + }) + + +class Test_HalfDLs_80pctNDs(CheckROSMixin): + decimal = 3 + res = numpy.array([ + 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 10., 10., 10., + 3.0, 7.0, 9.0, 12., 15., 20., 27., 33., 50. + ]) + cen = numpy.array([ + True, True, True, True, True, True, True, True, + True, True, True, True, True, True, True, False, + False, False + ]) + rescol = 'value' + cencol = 'qual' + df = pandas.DataFrame({rescol: res, cencol: cen}) + expected_final = numpy.array([ + 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 5.0, 5.0, 5.0, + 1.5, 3.5, 4.5, 6.0, 7.5, 10., 27., 33., 50. + ]) + + expected_cohn = pandas.DataFrame({ + 'nuncen_above': numpy.array([0., 0., 0., 0., 0., 0., 0., 3., numpy.nan]), + 'nobs_below': numpy.array([6., 7., 8., 9., 12., 13., 14., 15., numpy.nan]), + 'ncen_equal': numpy.array([6., 1., 1., 1., 3., 1., 1., 1., numpy.nan]), + 'prob_exceedance': numpy.array([0.16667] * 8 + [0.]), + }) + + +class Test_HaflDLs_OneUncensored(CheckROSMixin): + decimal = 3 + res = numpy.array([1.0, 1.0, 12., 15., ]) + cen = numpy.array([True, True, True, False ]) + rescol = 'value' + cencol = 'qual' + df = pandas.DataFrame({rescol: res, cencol: cen}) + expected_final = numpy.array([0.5, 0.5, 6. , 15.]) + + expected_cohn = pandas.DataFrame({ + 'nuncen_above': numpy.array([0., 1., numpy.nan]), + 'nobs_below': numpy.array([2., 3., numpy.nan]), + 'ncen_equal': numpy.array([2., 1., numpy.nan]), + 'prob_exceedance': numpy.array([0.25, 0.25, 0.]), + }) + + +class Test_ROS_MaxCen_GT_MaxUncen(Test_ROS_HelselAppendixB): + res = numpy.array([ + 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 10., 10., 10., + 3.0, 7.0, 9.0, 12., 15., 20., 27., 33., 50., + 60, 70 + ]) + cen = numpy.array([ + True, True, True, True, True, True, True, True, True, + False, False, False, False, False, False, False, + False, False, True, True + ]) + + +class Test_ROS_OnlyDL_GT_MaxUncen(Test_NoOp_ZeroND): + numpy.random.seed(0) + N = 20 + res = [ + 0.38, 0.43, 0.81, 0.86, 0.90, 1.13, 1.15, 1.37, 1.40, + 1.49, 1.51, 1.56, 2.14, 2.59, 2.66, 4.28, 4.46, 5.84, + 6.47, 9.40, 10.0, 10.0 + ] + cen = ([False] * N) + [True, True] \ No newline at end of file diff --git a/statsmodels/info.py b/statsmodels/info.py new file mode 100644 index 0000000..c686b3b --- /dev/null +++ b/statsmodels/info.py @@ -0,0 +1,26 @@ +""" +Statistical models + + - standard `regression` models + + - `GLS` (generalized least squares regression) + - `OLS` (ordinary least square regression) + - `WLS` (weighted least square regression) + - `GLASAR` (GLS with autoregressive errors model) + + - `GLM` (generalized linear models) + - robust statistical models + + - `RLM` (robust linear models using M estimators) + - `robust.norms` estimates + - `robust.scale` estimates (MAD, Huber's proposal 2). + - sandbox models + - `mixed` effects models + - `gam` (generalized additive models) +""" +__docformat__ = 'restructuredtext en' + +depends = ['numpy', + 'scipy'] + +postpone_import = True diff --git a/statsmodels/interface/__init__.py b/statsmodels/interface/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/iolib/__init__.py b/statsmodels/iolib/__init__.py new file mode 100644 index 0000000..723105d --- /dev/null +++ b/statsmodels/iolib/__init__.py @@ -0,0 +1,6 @@ +from .foreign import StataReader, genfromdta, savetxt +from .table import SimpleTable, csv2st +from .smpickle import save_pickle, load_pickle + +from statsmodels import NoseWrapper as Tester +test = Tester().test diff --git a/statsmodels/iolib/api.py b/statsmodels/iolib/api.py new file mode 100644 index 0000000..9a8d381 --- /dev/null +++ b/statsmodels/iolib/api.py @@ -0,0 +1,4 @@ +from .foreign import StataReader, genfromdta, savetxt, StataWriter +from .table import SimpleTable, csv2st +from .smpickle import save_pickle, load_pickle + diff --git a/statsmodels/iolib/foreign.py b/statsmodels/iolib/foreign.py new file mode 100644 index 0000000..bdb6a23 --- /dev/null +++ b/statsmodels/iolib/foreign.py @@ -0,0 +1,1188 @@ +""" +Input/Output tools for working with binary data. + +The Stata input tools were originally written by Joe Presbrey as part of PyDTA. + +You can find more information here http://presbrey.mit.edu/PyDTA + +See also +--------- +numpy.lib.io +""" +from statsmodels.compat.python import (zip, lzip, lmap, lrange, string_types, long, lfilter, + asbytes, asstr, range, PY3) +from struct import unpack, calcsize, pack +from struct import error as struct_error +import datetime +import sys +import numpy as np +from numpy.lib._iotools import _is_string_like, easy_dtype +import statsmodels.tools.data as data_util +from pandas import isnull +from statsmodels.iolib.openfile import get_file_obj + +_date_formats = ["%tc", "%tC", "%td", "%tw", "%tm", "%tq", "%th", "%ty"] + +def _datetime_to_stata_elapsed(date, fmt): + """ + Convert from datetime to SIF. http://www.stata.com/help.cgi?datetime + + Parameters + ---------- + date : datetime.datetime + The date to convert to the Stata Internal Format given by fmt + fmt : str + The format to convert to. Can be, tc, td, tw, tm, tq, th, ty + """ + if not isinstance(date, datetime.datetime): + raise ValueError("date should be datetime.datetime format") + stata_epoch = datetime.datetime(1960, 1, 1) + if fmt in ["%tc", "tc"]: + delta = date - stata_epoch + return (delta.days * 86400000 + delta.seconds*1000 + + delta.microseconds/1000) + elif fmt in ["%tC", "tC"]: + from warnings import warn + warn("Stata Internal Format tC not supported.", UserWarning) + return date + elif fmt in ["%td", "td"]: + return (date- stata_epoch).days + elif fmt in ["%tw", "tw"]: + return (52*(date.year-stata_epoch.year) + + (date - datetime.datetime(date.year, 1, 1)).days / 7) + elif fmt in ["%tm", "tm"]: + return (12 * (date.year - stata_epoch.year) + date.month - 1) + elif fmt in ["%tq", "tq"]: + return 4*(date.year-stata_epoch.year) + int((date.month - 1)/3) + elif fmt in ["%th", "th"]: + return 2 * (date.year - stata_epoch.year) + int(date.month > 6) + elif fmt in ["%ty", "ty"]: + return date.year + else: + raise ValueError("fmt %s not understood" % fmt) + +def _stata_elapsed_date_to_datetime(date, fmt): + """ + Convert from SIF to datetime. http://www.stata.com/help.cgi?datetime + + Parameters + ---------- + date : int + The Stata Internal Format date to convert to datetime according to fmt + fmt : str + The format to convert to. Can be, tc, td, tw, tm, tq, th, ty + + Examples + -------- + >>> _stata_elapsed_date_to_datetime(52, "%tw") datetime.datetime(1961, 1, 1, 0, 0) + + Notes + ----- + datetime/c - tc + milliseconds since 01jan1960 00:00:00.000, assuming 86,400 s/day + datetime/C - tC - NOT IMPLEMENTED + milliseconds since 01jan1960 00:00:00.000, adjusted for leap seconds + date - td + days since 01jan1960 (01jan1960 = 0) + weekly date - tw + weeks since 1960w1 + This assumes 52 weeks in a year, then adds 7 * remainder of the weeks. + The datetime value is the start of the week in terms of days in the + year, not ISO calendar weeks. + monthly date - tm + months since 1960m1 + quarterly date - tq + quarters since 1960q1 + half-yearly date - th + half-years since 1960h1 yearly + date - ty + years since 0000 + + If you don't have pandas with datetime support, then you can't do + milliseconds accurately. + """ + #NOTE: we could run into overflow / loss of precision situations here + # casting to int, but I'm not sure what to do. datetime won't deal with + # numpy types and numpy datetime isn't mature enough / we can't rely on + # pandas version > 0.7.1 + #TODO: IIRC relative delta doesn't play well with np.datetime? + date = int(date) + stata_epoch = datetime.datetime(1960, 1, 1) + if fmt in ["%tc", "tc"]: + from dateutil.relativedelta import relativedelta + return stata_epoch + relativedelta(microseconds=date*1000) + elif fmt in ["%tC", "tC"]: + from warnings import warn + warn("Encountered %tC format. Leaving in Stata Internal Format.", + UserWarning) + return date + elif fmt in ["%td", "td"]: + return stata_epoch + datetime.timedelta(int(date)) + elif fmt in ["%tw", "tw"]: # does not count leap days - 7 days is a week + year = datetime.datetime(stata_epoch.year + date // 52, 1, 1) + day_delta = (date % 52 ) * 7 + return year + datetime.timedelta(int(day_delta)) + elif fmt in ["%tm", "tm"]: + year = stata_epoch.year + date // 12 + month_delta = (date % 12 ) + 1 + return datetime.datetime(year, month_delta, 1) + elif fmt in ["%tq", "tq"]: + year = stata_epoch.year + date // 4 + month_delta = (date % 4) * 3 + 1 + return datetime.datetime(year, month_delta, 1) + elif fmt in ["%th", "th"]: + year = stata_epoch.year + date // 2 + month_delta = (date % 2) * 6 + 1 + return datetime.datetime(year, month_delta, 1) + elif fmt in ["%ty", "ty"]: + if date > 0: + return datetime.datetime(date, 1, 1) + else: # don't do negative years bc can't mix dtypes in column + raise ValueError("Year 0 and before not implemented") + else: + raise ValueError("Date fmt %s not understood" % fmt) + +### Helper classes for StataReader ### + +class _StataMissingValue(object): + """ + An observation's missing value. + + Parameters + ----------- + offset + value + + Attributes + ---------- + string + value + + Notes + ----- + More information: + """ + + def __init__(self, offset, value): + self._value = value + if isinstance(value, (int, long)): + self._str = value-offset is 1 and \ + '.' or ('.' + chr(value-offset+96)) + else: + self._str = '.' + string = property(lambda self: self._str, doc="The Stata representation of \ +the missing value: '.', '.a'..'.z'") + value = property(lambda self: self._value, doc='The binary representation \ +of the missing value.') + def __str__(self): return self._str + __str__.__doc__ = string.__doc__ + +class _StataVariable(object): + """ + A dataset variable. Not intended for public use. + + Parameters + ---------- + variable_data + + Attributes + ----------- + format : str + Stata variable format. See notes for more information. + index : int + Zero-index column index of variable. + label : str + Data Label + name : str + Variable name + type : str + Stata data type. See notes for more information. + value_format : str + Value format. + + Notes + ----- + More information: http://www.stata.com/help.cgi?format + """ + def __init__(self, variable_data): + self._data = variable_data + + def __int__(self): + return self.index + + def __str__(self): + return self.name + index = property(lambda self: self._data[0], doc='the variable\'s index \ +within an observation') + type = property(lambda self: self._data[1], doc='the data type of \ +variable\n\nPossible types are:\n{1..244:string, b:byte, h:int, l:long, \ +f:float, d:double)') + name = property(lambda self: self._data[2], doc='the name of the variable') + format = property(lambda self: self._data[4], doc='the variable\'s Stata \ +format') + value_format = property(lambda self: self._data[5], doc='the variable\'s \ +value format') + label = property(lambda self: self._data[6], doc='the variable\'s label') + __int__.__doc__ = index.__doc__ + __str__.__doc__ = name.__doc__ + +class StataReader(object): + """ + Stata .dta file reader. + + Provides methods to return the metadata of a Stata .dta file and + a generator for the data itself. + + Parameters + ---------- + file : file-like + A file-like object representing a Stata .dta file. + missing_values : bool + If missing_values is True, parse missing_values and return a + Missing Values object instead of None. + encoding : string, optional + Used for Python 3 only. Encoding to use when reading the .dta file. + Defaults to `locale.getpreferredencoding` + + See also + -------- + statsmodels.iolib.foreign.genfromdta + pandas.read_stata + pandas.io.stata.StataReader + + Notes + ----- + This is known only to work on file formats 113 (Stata 8/9), 114 + (Stata 10/11), and 115 (Stata 12). Needs to be tested on older versions. + Known not to work on format 104, 108. If you have the documentation for + older formats, please contact the developers. + + For more information about the .dta format see + http://www.stata.com/help.cgi?dta + http://www.stata.com/help.cgi?dta_113 + """ + + _header = {} + _data_location = 0 + _col_sizes = () + _has_string_data = False + _missing_values = False + #type code + #-------------------- + #str1 1 = 0x01 + #str2 2 = 0x02 + #... + #str244 244 = 0xf4 + #byte 251 = 0xfb (sic) + #int 252 = 0xfc + #long 253 = 0xfd + #float 254 = 0xfe + #double 255 = 0xff + #-------------------- + #NOTE: the byte type seems to be reserved for categorical variables + # with a label, but the underlying variable is -127 to 100 + # we're going to drop the label and cast to int + DTYPE_MAP = dict(lzip(lrange(1,245), ['a' + str(i) for i in range(1,245)]) + \ + [(251, np.int16),(252, np.int32),(253, int), + (254, np.float32), (255, np.float64)]) + TYPE_MAP = lrange(251)+list('bhlfd') + #NOTE: technically, some of these are wrong. there are more numbers + # that can be represented. it's the 27 ABOVE and BELOW the max listed + # numeric data type in [U] 12.2.2 of the 11.2 manual + MISSING_VALUES = { 'b': (-127,100), 'h': (-32767, 32740), 'l': + (-2147483647, 2147483620), 'f': (-1.701e+38, +1.701e+38), 'd': + (-1.798e+308, +8.988e+307) } + + def __init__(self, fname, missing_values=False, encoding=None): + if encoding == None: + import locale + self._encoding = locale.getpreferredencoding() + else: + self._encoding = encoding + self._missing_values = missing_values + self._parse_header(fname) + + def file_headers(self): + """ + Returns all .dta file headers. + + out: dict + Has keys typlist, data_label, lbllist, varlist, nvar, filetype, + ds_format, nobs, fmtlist, vlblist, time_stamp, srtlist, byteorder + """ + return self._header + + def file_format(self): + """ + Returns the file format. + + Returns + ------- + out : int + + Notes + ----- + Format 113: Stata 8/9 + Format 114: Stata 10/11 + Format 115: Stata 12 + """ + return self._header['ds_format'] + + def file_label(self): + """ + Returns the dataset's label. + + Returns + ------- + out: string + """ + return self._header['data_label'] + + def file_timestamp(self): + """ + Returns the date and time Stata recorded on last file save. + + Returns + ------- + out : str + """ + return self._header['time_stamp'] + + def variables(self): + """ + Returns a list of the dataset's StataVariables objects. + """ + return lmap(_StataVariable, zip(lrange(self._header['nvar']), + self._header['typlist'], self._header['varlist'], + self._header['srtlist'], + self._header['fmtlist'], self._header['lbllist'], + self._header['vlblist'])) + + def dataset(self, as_dict=False): + """ + Returns a Python generator object for iterating over the dataset. + + + Parameters + ---------- + as_dict : bool, optional + If as_dict is True, yield each row of observations as a dict. + If False, yields each row of observations as a list. + + Returns + ------- + Generator object for iterating over the dataset. Yields each row of + observations as a list by default. + + Notes + ----- + If missing_values is True during instantiation of StataReader then + observations with _StataMissingValue(s) are not filtered and should + be handled by your applcation. + """ + + try: + self._file.seek(self._data_location) + except Exception: + pass + + if as_dict: + vars = lmap(str, self.variables()) + for i in range(len(self)): + yield dict(zip(vars, self._next())) + else: + for i in range(self._header['nobs']): + yield self._next() + + ### Python special methods + + def __len__(self): + """ + Return the number of observations in the dataset. + + This value is taken directly from the header and includes observations + with missing values. + """ + return self._header['nobs'] + + def __getitem__(self, k): + """ + Seek to an observation indexed k in the file and return it, ordered + by Stata's output to the .dta file. + + k is zero-indexed. Prefer using R.data() for performance. + """ + if not (isinstance(k, (int, long))) or k < 0 or k > len(self)-1: + raise IndexError(k) + loc = self._data_location + sum(self._col_size()) * k + if self._file.tell() != loc: + self._file.seek(loc) + return self._next() + + ### Private methods + + def _null_terminate(self, s, encoding): + if PY3: # have bytes not strings, so must decode + null_byte = asbytes('\x00') + try: + s = s.lstrip(null_byte)[:s.index(null_byte)] + except: + pass + return s.decode(encoding) + else: + null_byte = asbytes('\x00') + try: + return s.lstrip(null_byte)[:s.index(null_byte)] + except: + return s + + def _parse_header(self, file_object): + self._file = file_object + encoding = self._encoding + + # parse headers + self._header['ds_format'] = unpack('b', self._file.read(1))[0] + + if self._header['ds_format'] not in [113, 114, 115]: + raise ValueError("Only file formats >= 113 (Stata >= 9)" + " are supported. Got format %s. Please report " + "if you think this error is incorrect." % + self._header['ds_format']) + byteorder = self._header['byteorder'] = unpack('b', + self._file.read(1))[0]==0x1 and '>' or '<' + self._header['filetype'] = unpack('b', self._file.read(1))[0] + self._file.read(1) + nvar = self._header['nvar'] = unpack(byteorder+'h', + self._file.read(2))[0] + self._header['nobs'] = unpack(byteorder+'i', self._file.read(4))[0] + self._header['data_label'] = self._null_terminate(self._file.read(81), + encoding) + self._header['time_stamp'] = self._null_terminate(self._file.read(18), + encoding) + + # parse descriptors + typlist =[ord(self._file.read(1)) for i in range(nvar)] + self._header['typlist'] = [self.TYPE_MAP[typ] for typ in typlist] + self._header['dtyplist'] = [self.DTYPE_MAP[typ] for typ in typlist] + self._header['varlist'] = [self._null_terminate(self._file.read(33), + encoding) for i in range(nvar)] + self._header['srtlist'] = unpack(byteorder+('h'*(nvar+1)), + self._file.read(2*(nvar+1)))[:-1] + if self._header['ds_format'] <= 113: + self._header['fmtlist'] = \ + [self._null_terminate(self._file.read(12), encoding) \ + for i in range(nvar)] + else: + self._header['fmtlist'] = \ + [self._null_terminate(self._file.read(49), encoding) \ + for i in range(nvar)] + self._header['lbllist'] = [self._null_terminate(self._file.read(33), + encoding) for i in range(nvar)] + self._header['vlblist'] = [self._null_terminate(self._file.read(81), + encoding) for i in range(nvar)] + + # ignore expansion fields + # When reading, read five bytes; the last four bytes now tell you the + # size of the next read, which you discard. You then continue like + # this until you read 5 bytes of zeros. + + while True: + data_type = unpack(byteorder+'b', self._file.read(1))[0] + data_len = unpack(byteorder+'i', self._file.read(4))[0] + if data_type == 0: + break + self._file.read(data_len) + + # other state vars + self._data_location = self._file.tell() + self._has_string_data = len(lfilter(lambda x: isinstance(x, int), + self._header['typlist'])) > 0 + self._col_size() + + def _calcsize(self, fmt): + return isinstance(fmt, int) and fmt or \ + calcsize(self._header['byteorder']+fmt) + + def _col_size(self, k = None): + """Calculate size of a data record.""" + if len(self._col_sizes) == 0: + self._col_sizes = lmap(lambda x: self._calcsize(x), + self._header['typlist']) + if k == None: + return self._col_sizes + else: + return self._col_sizes[k] + + def _unpack(self, fmt, byt): + d = unpack(self._header['byteorder']+fmt, byt)[0] + if fmt[-1] in self.MISSING_VALUES: + nmin, nmax = self.MISSING_VALUES[fmt[-1]] + if d < nmin or d > nmax: + if self._missing_values: + return _StataMissingValue(nmax, d) + else: + return None + return d + + def _next(self): + typlist = self._header['typlist'] + if self._has_string_data: + data = [None]*self._header['nvar'] + for i in range(len(data)): + if isinstance(typlist[i], int): + data[i] = self._null_terminate(self._file.read(typlist[i]), + self._encoding) + else: + data[i] = self._unpack(typlist[i], + self._file.read(self._col_size(i))) + return data + else: + return lmap(lambda i: self._unpack(typlist[i], + self._file.read(self._col_size(i))), + lrange(self._header['nvar'])) + +def _set_endianness(endianness): + if endianness.lower() in ["<", "little"]: + return "<" + elif endianness.lower() in [">", "big"]: + return ">" + else: # pragma : no cover + raise ValueError("Endianness %s not understood" % endianness) + +def _dtype_to_stata_type(dtype): + """ + Converts dtype types to stata types. Returns the byte of the given ordinal. + See TYPE_MAP and comments for an explanation. This is also explained in + the dta spec. + 1 - 244 are strings of this length + 251 - chr(251) - for int8 and int16, byte + 252 - chr(252) - for int32, int + 253 - chr(253) - for int64, long + 254 - chr(254) - for float32, float + 255 - chr(255) - double, double + + If there are dates to convert, then dtype will already have the correct + type inserted. + """ + #TODO: expand to handle datetime to integer conversion + if dtype.type == np.string_: + return chr(dtype.itemsize) + elif dtype.type == np.object_: # try to coerce it to the biggest string + # not memory efficient, what else could we do? + return chr(244) + elif dtype == np.float64: + return chr(255) + elif dtype == np.float32: + return chr(254) + elif dtype == np.int64: + return chr(253) + elif dtype == np.int32: + return chr(252) + elif dtype == np.int8 or dtype == np.int16: # ok to assume bytes? + return chr(251) + else: # pragma : no cover + raise ValueError("Data type %s not currently understood. " + "Please report an error to the developers." % dtype) + +def _dtype_to_default_stata_fmt(dtype): + """ + Maps numpy dtype to stata's default format for this type. Not terribly + important since users can change this in Stata. Semantics are + + string -> "%DDs" where DD is the length of the string + float64 -> "%10.0g" + float32 -> "%9.0g" + int64 -> "%9.0g" + int32 -> "%9.0g" + int16 -> "%9.0g" + int8 -> "%8.0g" + """ + #TODO: expand this to handle a default datetime format? + if dtype.type == np.string_: + return "%" + str(dtype.itemsize) + "s" + elif dtype.type == np.object_: + return "%244s" + elif dtype == np.float64: + return "%10.0g" + elif dtype == np.float32: + return "%9.0g" + elif dtype == np.int64: + return "%9.0g" + elif dtype == np.int32: + return "%8.0g" + elif dtype == np.int8 or dtype == np.int16: # ok to assume bytes? + return "%8.0g" + else: # pragma : no cover + raise ValueError("Data type %s not currently understood. " + "Please report an error to the developers." % dtype) + +def _pad_bytes(name, length): + """ + Takes a char string and pads it wih null bytes until it's length chars + """ + return name + "\x00" * (length - len(name)) + +def _default_names(nvar): + """ + Returns default Stata names v1, v2, ... vnvar + """ + return ["v%d" % i for i in range(1,nvar+1)] + +def _convert_datetime_to_stata_type(fmt): + """ + Converts from one of the stata date formats to a type in TYPE_MAP + """ + if fmt in ["tc", "%tc", "td", "%td", "tw", "%tw", "tm", "%tm", "tq", + "%tq", "th", "%th", "ty", "%ty"]: + return np.float64 # Stata expects doubles for SIFs + else: + raise ValueError("fmt %s not understood" % fmt) + +def _maybe_convert_to_int_keys(convert_dates, varlist): + new_dict = {} + for key in convert_dates: + if not convert_dates[key].startswith("%"): # make sure proper fmts + convert_dates[key] = "%" + convert_dates[key] + if key in varlist: + new_dict.update({varlist.index(key) : convert_dates[key]}) + else: + if not isinstance(key, int): + raise ValueError("convery_dates key is not in varlist " + "and is not an int") + new_dict.update({key : convert_dates[key]}) + return new_dict + +_type_converters = {253 : np.long, 252 : int} + +class StataWriter(object): + """ + A class for writing Stata binary dta files from array-like objects + + Parameters + ---------- + fname : file path or buffer + Where to save the dta file. + data : array-like + Array-like input to save. Pandas objects are also accepted. + convert_dates : dict + Dictionary mapping column of datetime types to the stata internal + format that you want to use for the dates. Options are + 'tc', 'td', 'tm', 'tw', 'th', 'tq', 'ty'. Column can be either a + number or a name. + encoding : str + Default is latin-1. Note that Stata does not support unicode. + byteorder : str + Can be ">", "<", "little", or "big". The default is None which uses + `sys.byteorder` + + Returns + ------- + writer : StataWriter instance + The StataWriter instance has a write_file method, which will + write the file to the given `fname`. + + Examples + -------- + >>> writer = StataWriter('./data_file.dta', data) + >>> writer.write_file() + + Or with dates + + >>> writer = StataWriter('./date_data_file.dta', date, {2 : 'tw'}) + >>> writer.write_file() + """ + #type code + #-------------------- + #str1 1 = 0x01 + #str2 2 = 0x02 + #... + #str244 244 = 0xf4 + #byte 251 = 0xfb (sic) + #int 252 = 0xfc + #long 253 = 0xfd + #float 254 = 0xfe + #double 255 = 0xff + #-------------------- + #NOTE: the byte type seems to be reserved for categorical variables + # with a label, but the underlying variable is -127 to 100 + # we're going to drop the label and cast to int + DTYPE_MAP = dict(lzip(lrange(1,245), ['a' + str(i) for i in range(1,245)]) + \ + [(251, np.int16),(252, np.int32),(253, int), + (254, np.float32), (255, np.float64)]) + TYPE_MAP = lrange(251)+list('bhlfd') + MISSING_VALUES = { 'b': 101, + 'h': 32741, + 'l' : 2147483621, + 'f': 1.7014118346046923e+38, + 'd': 8.98846567431158e+307} + def __init__(self, fname, data, convert_dates=None, encoding="latin-1", + byteorder=None): + + self._convert_dates = convert_dates + # attach nobs, nvars, data, varlist, typlist + if data_util._is_using_pandas(data, None): + self._prepare_pandas(data) + + elif data_util._is_array_like(data, None): + data = np.asarray(data) + if data_util._is_structured_ndarray(data): + self._prepare_structured_array(data) + else: + if convert_dates is not None: + raise ValueError("Not able to convert dates in a plain" + " ndarray.") + self._prepare_ndarray(data) + + else: # pragma : no cover + raise ValueError("Type %s for data not understood" % type(data)) + + + if byteorder is None: + byteorder = sys.byteorder + self._byteorder = _set_endianness(byteorder) + self._encoding = encoding + self._file = get_file_obj(fname, 'wb', encoding) + + def _write(self, to_write): + """ + Helper to call asbytes before writing to file for Python 3 compat. + """ + self._file.write(asbytes(to_write)) + + def _prepare_structured_array(self, data): + self.nobs = len(data) + self.nvar = len(data.dtype) + self.data = data + self.datarows = iter(data) + dtype = data.dtype + descr = dtype.descr + if dtype.names is None: + varlist = _default_names(nvar) + else: + varlist = dtype.names + + # check for datetime and change the type + convert_dates = self._convert_dates + if convert_dates is not None: + convert_dates = _maybe_convert_to_int_keys(convert_dates, + varlist) + self._convert_dates = convert_dates + for key in convert_dates: + descr[key] = ( + descr[key][0], + _convert_datetime_to_stata_type(convert_dates[key]) + ) + dtype = np.dtype(descr) + + self.varlist = varlist + self.typlist = [_dtype_to_stata_type(dtype[i]) + for i in range(self.nvar)] + self.fmtlist = [_dtype_to_default_stata_fmt(dtype[i]) + for i in range(self.nvar)] + # set the given format for the datetime cols + if convert_dates is not None: + for key in convert_dates: + self.fmtlist[key] = convert_dates[key] + + + def _prepare_ndarray(self, data): + if data.ndim == 1: + data = data[:,None] + self.nobs, self.nvar = data.shape + self.data = data + self.datarows = iter(data) + #TODO: this should be user settable + dtype = data.dtype + self.varlist = _default_names(self.nvar) + self.typlist = [_dtype_to_stata_type(dtype) for i in range(self.nvar)] + self.fmtlist = [_dtype_to_default_stata_fmt(dtype) + for i in range(self.nvar)] + + def _prepare_pandas(self, data): + #NOTE: we might need a different API / class for pandas objects so + # we can set different semantics - handle this with a PR to pandas.io + class DataFrameRowIter(object): + def __init__(self, data): + self.data = data + + def __iter__(self): + for i, row in data.iterrows(): + yield row + + data = data.reset_index() + self.datarows = DataFrameRowIter(data) + self.nobs, self.nvar = data.shape + self.data = data + self.varlist = data.columns.tolist() + dtypes = data.dtypes + convert_dates = self._convert_dates + if convert_dates is not None: + convert_dates = _maybe_convert_to_int_keys(convert_dates, + self.varlist) + self._convert_dates = convert_dates + for key in convert_dates: + new_type = _convert_datetime_to_stata_type(convert_dates[key]) + dtypes[key] = np.dtype(new_type) + self.typlist = [_dtype_to_stata_type(dt) for dt in dtypes] + self.fmtlist = [_dtype_to_default_stata_fmt(dt) for dt in dtypes] + # set the given format for the datetime cols + if convert_dates is not None: + for key in convert_dates: + self.fmtlist[key] = convert_dates[key] + + def write_file(self): + self._write_header() + self._write_descriptors() + self._write_variable_labels() + # write 5 zeros for expansion fields + self._write(_pad_bytes("", 5)) + if self._convert_dates is None: + self._write_data_nodates() + else: + self._write_data_dates() + #self._write_value_labels() + + def _write_header(self, data_label=None, time_stamp=None): + byteorder = self._byteorder + # ds_format - just use 114 + self._write(pack("b", 114)) + # byteorder + self._write(byteorder == ">" and "\x01" or "\x02") + # filetype + self._write("\x01") + # unused + self._write("\x00") + # number of vars, 2 bytes + self._write(pack(byteorder+"h", self.nvar)[:2]) + # number of obs, 4 bytes + self._write(pack(byteorder+"i", self.nobs)[:4]) + # data label 81 bytes, char, null terminated + if data_label is None: + self._write(self._null_terminate(_pad_bytes("", 80), + self._encoding)) + else: + self._write(self._null_terminate(_pad_bytes(data_label[:80], + 80), self._encoding)) + # time stamp, 18 bytes, char, null terminated + # format dd Mon yyyy hh:mm + if time_stamp is None: + time_stamp = datetime.datetime.now() + elif not isinstance(time_stamp, datetime): + raise ValueError("time_stamp should be datetime type") + self._write(self._null_terminate( + time_stamp.strftime("%d %b %Y %H:%M"), + self._encoding)) + + def _write_descriptors(self, typlist=None, varlist=None, srtlist=None, + fmtlist=None, lbllist=None): + nvar = self.nvar + # typlist, length nvar, format byte array + for typ in self.typlist: + self._write(typ) + + # varlist, length 33*nvar, char array, null terminated + for name in self.varlist: + name = self._null_terminate(name, self._encoding) + name = _pad_bytes(asstr(name[:32]), 33) + self._write(name) + + # srtlist, 2*(nvar+1), int array, encoded by byteorder + srtlist = _pad_bytes("", (2*(nvar+1))) + self._write(srtlist) + + # fmtlist, 49*nvar, char array + for fmt in self.fmtlist: + self._write(_pad_bytes(fmt, 49)) + + # lbllist, 33*nvar, char array + #NOTE: this is where you could get fancy with pandas categorical type + for i in range(nvar): + self._write(_pad_bytes("", 33)) + + def _write_variable_labels(self, labels=None): + nvar = self.nvar + if labels is None: + for i in range(nvar): + self._write(_pad_bytes("", 81)) + + def _write_data_nodates(self): + data = self.datarows + byteorder = self._byteorder + TYPE_MAP = self.TYPE_MAP + typlist = self.typlist + for row in data: + #row = row.squeeze().tolist() # needed for structured arrays + for i,var in enumerate(row): + typ = ord(typlist[i]) + if typ <= 244: # we've got a string + if len(var) < typ: + var = _pad_bytes(asstr(var), len(var) + 1) + self._write(var) + else: + try: + self._write(pack(byteorder+TYPE_MAP[typ], var)) + except struct_error: + # have to be strict about type pack won't do any + # kind of casting + self._write(pack(byteorder+TYPE_MAP[typ], + _type_converters[typ](var))) + + def _write_data_dates(self): + convert_dates = self._convert_dates + data = self.datarows + byteorder = self._byteorder + TYPE_MAP = self.TYPE_MAP + MISSING_VALUES = self.MISSING_VALUES + typlist = self.typlist + for row in data: + #row = row.squeeze().tolist() # needed for structured arrays + for i,var in enumerate(row): + typ = ord(typlist[i]) + #NOTE: If anyone finds this terribly slow, there is + # a vectorized way to convert dates, see genfromdta for going + # from int to datetime and reverse it. will copy data though + if i in convert_dates: + var = _datetime_to_stata_elapsed(var, self.fmtlist[i]) + if typ <= 244: # we've got a string + if isnull(var): + var = "" # missing string + if len(var) < typ: + var = _pad_bytes(var, len(var) + 1) + self._write(var) + else: + if isnull(var): # this only matters for floats + var = MISSING_VALUES[typ] + self._write(pack(byteorder+TYPE_MAP[typ], var)) + + + def _null_terminate(self, s, encoding): + null_byte = '\x00' + if PY3: + s += null_byte + return s.encode(encoding) + else: + s += null_byte + return s + +def genfromdta(fname, missing_flt=-999., encoding=None, pandas=False, + convert_dates=True): + """ + Returns an ndarray or DataFrame from a Stata .dta file. + + Parameters + ---------- + fname : str or filehandle + Stata .dta file. + missing_flt : numeric + The numeric value to replace missing values with. Will be used for + any numeric value. + encoding : string, optional + Used for Python 3 only. Encoding to use when reading the .dta file. + Defaults to `locale.getpreferredencoding` + pandas : bool + Optionally return a DataFrame instead of an ndarray + convert_dates : bool + If convert_dates is True, then Stata formatted dates will be converted + to datetime types according to the variable's format. + """ + if isinstance(fname, string_types): + fhd = StataReader(open(fname, 'rb'), missing_values=False, + encoding=encoding) + elif not hasattr(fname, 'read'): + raise TypeError("The input should be a string or a filehandle. "\ + "(got %s instead)" % type(fname)) + else: + fhd = StataReader(fname, missing_values=False, encoding=encoding) +# validate_names = np.lib._iotools.NameValidator(excludelist=excludelist, +# deletechars=deletechars, +# case_sensitive=case_sensitive) + + #TODO: This needs to handle the byteorder? + header = fhd.file_headers() + types = header['dtyplist'] + nobs = header['nobs'] + numvars = header['nvar'] + varnames = header['varlist'] + fmtlist = header['fmtlist'] + dataname = header['data_label'] + labels = header['vlblist'] # labels are thrown away unless DataArray + # type is used + data = np.zeros((nobs,numvars)) + stata_dta = fhd.dataset() + + dt = np.dtype(lzip(varnames, types)) + data = np.zeros((nobs), dtype=dt) # init final array + + for rownum,line in enumerate(stata_dta): + # doesn't handle missing value objects, just casts + # None will only work without missing value object. + if None in line: + for i,val in enumerate(line): + #NOTE: This will only be scalar types because missing strings + # are empty not None in Stata + if val is None: + line[i] = missing_flt + data[rownum] = tuple(line) + + if pandas: + from pandas import DataFrame + data = DataFrame.from_records(data) + if convert_dates: + cols = np.where(lmap(lambda x : x in _date_formats, fmtlist))[0] + for col in cols: + i = col + col = data.columns[col] + data[col] = data[col].apply(_stata_elapsed_date_to_datetime, + args=(fmtlist[i],)) + elif convert_dates: + #date_cols = np.where(map(lambda x : x in _date_formats, + # fmtlist))[0] + # make the dtype for the datetime types + cols = np.where(lmap(lambda x : x in _date_formats, fmtlist))[0] + dtype = data.dtype.descr + dtype = [(dt[0], object) if i in cols else dt for i,dt in + enumerate(dtype)] + data = data.astype(dtype) # have to copy + for col in cols: + def convert(x): + return _stata_elapsed_date_to_datetime(x, fmtlist[col]) + data[data.dtype.names[col]] = lmap(convert, + data[data.dtype.names[col]]) + return data + +def savetxt(fname, X, names=None, fmt='%.18e', delimiter=' '): + """ + Save an array to a text file. + + This is just a copy of numpy.savetxt patched to support structured arrays + or a header of names. Does not include py3 support now in savetxt. + + Parameters + ---------- + fname : filename or file handle + If the filename ends in ``.gz``, the file is automatically saved in + compressed gzip format. `loadtxt` understands gzipped files + transparently. + X : array_like + Data to be saved to a text file. + names : list, optional + If given names will be the column header in the text file. If None and + X is a structured or recarray then the names are taken from + X.dtype.names. + fmt : str or sequence of strs + A single format (%10.5f), a sequence of formats, or a + multi-format string, e.g. 'Iteration %d -- %10.5f', in which + case `delimiter` is ignored. + delimiter : str + Character separating columns. + + See Also + -------- + save : Save an array to a binary file in NumPy ``.npy`` format + savez : Save several arrays into a ``.npz`` compressed archive + + Notes + ----- + Further explanation of the `fmt` parameter + (``%[flag]width[.precision]specifier``): + + flags: + ``-`` : left justify + + ``+`` : Forces to preceed result with + or -. + + ``0`` : Left pad the number with zeros instead of space (see width). + + width: + Minimum number of characters to be printed. The value is not truncated + if it has more characters. + + precision: + - For integer specifiers (eg. ``d,i,o,x``), the minimum number of + digits. + - For ``e, E`` and ``f`` specifiers, the number of digits to print + after the decimal point. + - For ``g`` and ``G``, the maximum number of significant digits. + - For ``s``, the maximum number of characters. + + specifiers: + ``c`` : character + + ``d`` or ``i`` : signed decimal integer + + ``e`` or ``E`` : scientific notation with ``e`` or ``E``. + + ``f`` : decimal floating point + + ``g,G`` : use the shorter of ``e,E`` or ``f`` + + ``o`` : signed octal + + ``s`` : string of characters + + ``u`` : unsigned decimal integer + + ``x,X`` : unsigned hexadecimal integer + + This explanation of ``fmt`` is not complete, for an exhaustive + specification see [1]_. + + References + ---------- + .. [1] `Format Specification Mini-Language + `_, Python Documentation. + + Examples + -------- + >>> savetxt('test.out', x, delimiter=',') # x is an array + >>> savetxt('test.out', (x,y,z)) # x,y,z equal sized 1D arrays + >>> savetxt('test.out', x, fmt='%1.4e') # use exponential notation + + """ + + with get_file_obj(fname, 'w') as fh: + X = np.asarray(X) + + # Handle 1-dimensional arrays + if X.ndim == 1: + # Common case -- 1d array of numbers + if X.dtype.names is None: + X = np.atleast_2d(X).T + ncol = 1 + + # Complex dtype -- each field indicates a separate column + else: + ncol = len(X.dtype.descr) + else: + ncol = X.shape[1] + + # `fmt` can be a string with multiple insertion points or a list of formats. + # E.g. '%10.5f\t%10d' or ('%10.5f', '$10d') + if isinstance(fmt, (list, tuple)): + if len(fmt) != ncol: + raise AttributeError('fmt has wrong shape. %s' % str(fmt)) + format = delimiter.join(fmt) + elif isinstance(fmt, string_types): + if fmt.count('%') == 1: + fmt = [fmt, ]*ncol + format = delimiter.join(fmt) + elif fmt.count('%') != ncol: + raise AttributeError('fmt has wrong number of %% formats. %s' + % fmt) + else: + format = fmt + + # handle names + if names is None and X.dtype.names: + names = X.dtype.names + if names is not None: + fh.write(delimiter.join(names) + '\n') + + for row in X: + fh.write(format % tuple(row) + '\n') + +if __name__ == "__main__": + import os + curdir = os.path.dirname(os.path.abspath(__file__)) + res1 = genfromdta(curdir+'/../../datasets/macrodata/macrodata.dta') diff --git a/statsmodels/iolib/notes_table_update.txt b/statsmodels/iolib/notes_table_update.txt new file mode 100644 index 0000000..3c8dca7 --- /dev/null +++ b/statsmodels/iolib/notes_table_update.txt @@ -0,0 +1,12 @@ +updating table.py from econpy +============================= + +table.py : + reformat tabs to 4 spaces + adjust import path in docstrings + currently insufficient tests for backwards compatibility, might break silently + +test_table.py : + renamed to test_table_econpy.py in parallel to test_table.py + change import paths in test_table_econpy.py + currently too many differences to maintain merge \ No newline at end of file diff --git a/statsmodels/iolib/openfile.py b/statsmodels/iolib/openfile.py new file mode 100644 index 0000000..2f5899e --- /dev/null +++ b/statsmodels/iolib/openfile.py @@ -0,0 +1,71 @@ +""" +Handle file opening for read/write +""" +from numpy.lib._iotools import _is_string_like +from statsmodels.compat.python import PY3 + +class EmptyContextManager(object): + """ + This class is needed to allow file-like object to be used as + context manager, but without getting closed. + """ + def __init__(self, obj): + self._obj = obj + + def __enter__(self): + '''When entering, return the embedded object''' + return self._obj + + def __exit__(self, *args): + '''Don't hide anything''' + return False + + def __getattr__(self, name): + return getattr(self._obj, name) + +if PY3: + def _open(fname, mode, encoding): + if fname.endswith('.gz'): + import gzip + return gzip.open(fname, mode, encoding=encoding) + else: + return open(fname, mode, encoding=encoding) +else: + def _open(fname, mode, encoding): + if fname.endswith('.gz'): + import gzip + return gzip.open(fname, mode) + else: + return open(fname, mode) + +def get_file_obj(fname, mode='r', encoding=None): + """ + Light wrapper to handle strings and let files (anything else) pass through. + + It also handle '.gz' files. + + Parameters + ========== + fname: string or file-like object + File to open / forward + mode: string + Argument passed to the 'open' or 'gzip.open' function + encoding: string + For Python 3 only, specify the encoding of the file + + Returns + ======= + A file-like object that is always a context-manager. If the `fname` was already a file-like object, + the returned context manager *will not close the file*. + """ + if _is_string_like(fname): + return _open(fname, mode, encoding) + try: + # Make sure the object has the write methods + if 'r' in mode: + fname.read + if 'w' in mode or 'a' in mode: + fname.write + except AttributeError: + raise ValueError('fname must be a string or a file-like object') + return EmptyContextManager(fname) diff --git a/statsmodels/iolib/smpickle.py b/statsmodels/iolib/smpickle.py new file mode 100644 index 0000000..ac91188 --- /dev/null +++ b/statsmodels/iolib/smpickle.py @@ -0,0 +1,33 @@ +'''Helper files for pickling''' +from statsmodels.compat.python import cPickle +from statsmodels.iolib.openfile import get_file_obj + +def save_pickle(obj, fname): + """ + Save the object to file via pickling. + + Parameters + ---------- + fname : str + Filename to pickle to + """ + with get_file_obj(fname, 'wb') as fout: + cPickle.dump(obj, fout, protocol=-1) + + +def load_pickle(fname): + """ + Load a previously saved object from file + + Parameters + ---------- + fname : str + Filename to unpickle + + Notes + ----- + This method can be used to load *both* models and results. + """ + with get_file_obj(fname, 'rb') as fin: + return cPickle.load(fin) + diff --git a/statsmodels/iolib/stata_summary_examples.py b/statsmodels/iolib/stata_summary_examples.py new file mode 100644 index 0000000..b4f24c7 --- /dev/null +++ b/statsmodels/iolib/stata_summary_examples.py @@ -0,0 +1,84 @@ + +""". regress totemp gnpdefl gnp unemp armed pop year + + Source | SS df MS Number of obs = 16 +-------------+------------------------------ F( 6, 9) = 330.29 + Model | 184172402 6 30695400.3 Prob > F = 0.0000 + Residual | 836424.129 9 92936.0144 R-squared = 0.9955 +-------------+------------------------------ Adj R-squared = 0.9925 + Total | 185008826 15 12333921.7 Root MSE = 304.85 + +------------------------------------------------------------------------------ + totemp | Coef. Std. Err. t P>|t| [95% Conf. Interval] +-------------+---------------------------------------------------------------- + gnpdefl | 15.06167 84.91486 0.18 0.863 -177.0291 207.1524 + gnp | -.0358191 .033491 -1.07 0.313 -.111581 .0399428 + unemp | -2.020229 .4883995 -4.14 0.003 -3.125065 -.9153928 + armed | -1.033227 .2142741 -4.82 0.001 -1.517948 -.5485049 + pop | -.0511045 .2260731 -0.23 0.826 -.5625173 .4603083 + year | 1829.151 455.4785 4.02 0.003 798.7873 2859.515 + _cons | -3482258 890420.3 -3.91 0.004 -5496529 -1467987 +------------------------------------------------------------------------------ +""" + + +#From Stata using Longley dataset as in the test and example for GLM +""" +. glm totemp gnpdefl gnp unemp armed pop year + +Iteration 0: log likelihood = -109.61744 + +Generalized linear models No. of obs = 16 +Optimization : ML Residual df = 9 + Scale parameter = 92936.01 +Deviance = 836424.1293 (1/df) Deviance = 92936.01 +Pearson = 836424.1293 (1/df) Pearson = 92936.01 + +Variance function: V(u) = 1 [Gaussian] +Link function : g(u) = u [Identity] + + AIC = 14.57718 +Log likelihood = -109.6174355 BIC = 836399.2 + +------------------------------------------------------------------------------ + | OIM + totemp | Coef. Std. Err. z P>|z| [95% Conf. Interval] +-------------+---------------------------------------------------------------- + gnpdefl | 15.06167 84.91486 0.18 0.859 -151.3684 181.4917 + gnp | -.0358191 .033491 -1.07 0.285 -.1014603 .029822 + unemp | -2.020229 .4883995 -4.14 0.000 -2.977475 -1.062984 + armed | -1.033227 .2142741 -4.82 0.000 -1.453196 -.6132571 + pop | -.0511045 .2260731 -0.23 0.821 -.4941996 .3919906 + year | 1829.151 455.4785 4.02 0.000 936.4298 2721.873 + _cons | -3482258 890420.3 -3.91 0.000 -5227450 -1737066 +------------------------------------------------------------------------------ +""" + +#RLM Example + +""" +. rreg stackloss airflow watertemp acidconc + + Huber iteration 1: maximum difference in weights = .48402478 + Huber iteration 2: maximum difference in weights = .07083248 + Huber iteration 3: maximum difference in weights = .03630349 +Biweight iteration 4: maximum difference in weights = .2114744 +Biweight iteration 5: maximum difference in weights = .04709559 +Biweight iteration 6: maximum difference in weights = .01648123 +Biweight iteration 7: maximum difference in weights = .01050023 +Biweight iteration 8: maximum difference in weights = .0027233 + +Robust regression Number of obs = 21 + F( 3, 17) = 74.15 + Prob > F = 0.0000 + +------------------------------------------------------------------------------ + stackloss | Coef. Std. Err. t P>|t| [95% Conf. Interval] +-------------+---------------------------------------------------------------- + airflow | .8526511 .1223835 6.97 0.000 .5944446 1.110858 + watertemp | .8733594 .3339811 2.61 0.018 .1687209 1.577998 + acidconc | -.1224349 .1418364 -0.86 0.400 -.4216836 .1768139 + _cons | -41.6703 10.79559 -3.86 0.001 -64.447 -18.89361 +------------------------------------------------------------------------------ + +""" \ No newline at end of file diff --git a/statsmodels/iolib/summary.py b/statsmodels/iolib/summary.py new file mode 100644 index 0000000..58c2cce --- /dev/null +++ b/statsmodels/iolib/summary.py @@ -0,0 +1,943 @@ +from statsmodels.compat.python import range, lrange, lmap, lzip, zip_longest +import numpy as np +from statsmodels.iolib.table import SimpleTable +from statsmodels.iolib.tableformatting import (gen_fmt, fmt_2, + fmt_params, fmt_base, fmt_2cols) +#from statsmodels.iolib.summary2d import summary_params_2dflat +#from summary2d import summary_params_2dflat + +def forg(x, prec=3): + if prec == 3: + #for 3 decimals + if (abs(x) >= 1e4) or (abs(x) < 1e-4): + return '%9.3g' % x + else: + return '%9.3f' % x + elif prec == 4: + if (abs(x) >= 1e4) or (abs(x) < 1e-4): + return '%10.4g' % x + else: + return '%10.4f' % x + else: + raise NotImplementedError + + +def summary(self, yname=None, xname=None, title=0, alpha=.05, + returns='text', model_info=None): + """ + Parameters + ----------- + yname : string + optional, Default is `Y` + xname : list of strings + optional, Default is `X.#` for # in p the number of regressors + Confidance interval : (0,1) not implimented + title : string + optional, Defualt is 'Generalized linear model' + returns : string + 'text', 'table', 'csv', 'latex', 'html' + + Returns + ------- + Default : + returns='print' + Prints the summarirized results + + Option : + returns='text' + Prints the summarirized results + + Option : + returns='table' + SimpleTable instance : summarizing the fit of a linear model. + + Option : + returns='csv' + returns a string of csv of the results, to import into a spreadsheet + + Option : + returns='latex' + Not implimented yet + + Option : + returns='HTML' + Not implimented yet + + + Examples (needs updating) + -------- + >>> import statsmodels as sm + >>> data = sm.datasets.longley.load() + >>> data.exog = sm.add_constant(data.exog) + >>> ols_results = sm.OLS(data.endog, data.exog).results + >>> print ols_results.summary() + ... + + Notes + ----- + conf_int calculated from normal dist. + """ + import time as time + + + + #TODO Make sure all self.model.__class__.__name__ are listed + model_types = {'OLS' : 'Ordinary least squares', + 'GLS' : 'Generalized least squares', + 'GLSAR' : 'Generalized least squares with AR(p)', + 'WLS' : 'Weigthed least squares', + 'RLM' : 'Robust linear model', + 'GLM' : 'Generalized linear model' + } + model_methods = {'OLS' : 'Least Squares', + 'GLS' : 'Least Squares', + 'GLSAR' : 'Least Squares', + 'WLS' : 'Least Squares', + 'RLM' : '?', + 'GLM' : '?' + } + if title==0: + title = model_types[self.model.__class__.__name__] + if yname is None: + try: + yname = self.model.endog_names + except AttributeError: + yname = 'y' + if xname is None: + try: + xname = self.model.exog_names + except AttributeError: + xname = ['var_%d' % i for i in range(len(self.params))] + time_now = time.localtime() + time_of_day = [time.strftime("%H:%M:%S", time_now)] + date = time.strftime("%a, %d %b %Y", time_now) + modeltype = self.model.__class__.__name__ + #dist_family = self.model.family.__class__.__name__ + nobs = self.nobs + df_model = self.df_model + df_resid = self.df_resid + + #General part of the summary table, Applicable to all? models + #------------------------------------------------------------ + #TODO: define this generically, overwrite in model classes + #replace definition of stubs data by single list + #e.g. + gen_left = [('Model type:', [modeltype]), + ('Date:', [date]), + ('Dependent Variable:', yname), #What happens with multiple names? + ('df model', [df_model]) + ] + gen_stubs_left, gen_data_left = zip_longest(*gen_left) #transpose row col + + gen_title = title + gen_header = None +## gen_stubs_left = ('Model type:', +## 'Date:', +## 'Dependent Variable:', +## 'df model' +## ) +## gen_data_left = [[modeltype], +## [date], +## yname, #What happens with multiple names? +## [df_model] +## ] + gen_table_left = SimpleTable(gen_data_left, + gen_header, + gen_stubs_left, + title = gen_title, + txt_fmt = gen_fmt + ) + + gen_stubs_right = ('Method:', + 'Time:', + 'Number of Obs:', + 'df resid' + ) + gen_data_right = ([modeltype], #was dist family need to look at more + time_of_day, + [nobs], + [df_resid] + ) + gen_table_right = SimpleTable(gen_data_right, + gen_header, + gen_stubs_right, + title = gen_title, + txt_fmt = gen_fmt + ) + gen_table_left.extend_right(gen_table_right) + general_table = gen_table_left + + #Parameters part of the summary table + #------------------------------------ + #Note: this is not necessary since we standardized names, only t versus normal + tstats = {'OLS' : self.t(), + 'GLS' : self.t(), + 'GLSAR' : self.t(), + 'WLS' : self.t(), + 'RLM' : self.t(), + 'GLM' : self.t() + } + prob_stats = {'OLS' : self.pvalues, + 'GLS' : self.pvalues, + 'GLSAR' : self.pvalues, + 'WLS' : self.pvalues, + 'RLM' : self.pvalues, + 'GLM' : self.pvalues + } + #Dictionary to store the header names for the parameter part of the + #summary table. look up by modeltype + alp = str((1-alpha)*100)+'%' + param_header = { + 'OLS' : ['coef', 'std err', 't', 'P>|t|', alp + ' Conf. Interval'], + 'GLS' : ['coef', 'std err', 't', 'P>|t|', alp + ' Conf. Interval'], + 'GLSAR' : ['coef', 'std err', 't', 'P>|t|', alp + ' Conf. Interval'], + 'WLS' : ['coef', 'std err', 't', 'P>|t|', alp + ' Conf. Interval'], + 'GLM' : ['coef', 'std err', 't', 'P>|t|', alp + ' Conf. Interval'], #glm uses t-distribution + 'RLM' : ['coef', 'std err', 'z', 'P>|z|', alp + ' Conf. Interval'] #checke z + } + params_stubs = xname + params = self.params + conf_int = self.conf_int(alpha) + std_err = self.bse + exog_len = lrange(len(xname)) + tstat = tstats[modeltype] + prob_stat = prob_stats[modeltype] + + # Simpletable should be able to handle the formating + params_data = lzip(["%#6.4g" % (params[i]) for i in exog_len], + ["%#6.4f" % (std_err[i]) for i in exog_len], + ["%#6.4f" % (tstat[i]) for i in exog_len], + ["%#6.4f" % (prob_stat[i]) for i in exog_len], + ["(%#5g, %#5g)" % tuple(conf_int[i]) for i in \ + exog_len] + ) + parameter_table = SimpleTable(params_data, + param_header[modeltype], + params_stubs, + title = None, + txt_fmt = fmt_2, #gen_fmt, + ) + + #special table + #------------- + #TODO: exists in linear_model, what about other models + #residual diagnostics + + + #output options + #-------------- + #TODO: JP the rest needs to be fixed, similar to summary in linear_model + + def ols_printer(): + """ + print summary table for ols models + """ + table = str(general_table)+'\n'+str(parameter_table) + return table + + def ols_to_csv(): + """ + exports ols summary data to csv + """ + pass + def glm_printer(): + table = str(general_table)+'\n'+str(parameter_table) + return table + pass + + printers = {'OLS': ols_printer, + 'GLM' : glm_printer + } + + if returns=='print': + try: + return printers[modeltype]() + except KeyError: + return printers['OLS']() + +def _getnames(self, yname=None, xname=None): + '''extract names from model or construct names + ''' + if yname is None: + if hasattr(self.model, 'endog_names') and ( + not self.model.endog_names is None): + yname = self.model.endog_names + else: + yname = 'y' + + if xname is None: + if hasattr(self.model, 'exog_names') and ( + not self.model.exog_names is None): + xname = self.model.exog_names + else: + xname = ['var_%d' % i for i in range(len(self.params))] + + return yname, xname + + + +def summary_top(results, title=None, gleft=None, gright=None, yname=None, xname=None): + '''generate top table(s) + + + TODO: this still uses predefined model_methods + ? allow gleft, gright to be 1 element tuples instead of filling with None? + + ''' + #change of names ? + gen_left, gen_right = gleft, gright + + #time and names are always included + import time + time_now = time.localtime() + time_of_day = [time.strftime("%H:%M:%S", time_now)] + date = time.strftime("%a, %d %b %Y", time_now) + + yname, xname = _getnames(results, yname=yname, xname=xname) + + #create dictionary with default + #use lambdas because some values raise exception if they are not available + #alternate spellings are commented out to force unique labels + default_items = dict([ + ('Dependent Variable:', lambda: [yname]), + ('Dep. Variable:', lambda: [yname]), + ('Model:', lambda: [results.model.__class__.__name__]), + #('Model type:', lambda: [results.model.__class__.__name__]), + ('Date:', lambda: [date]), + ('Time:', lambda: time_of_day), + ('Number of Obs:', lambda: [results.nobs]), + #('No. of Observations:', lambda: ["%#6d" % results.nobs]), + ('No. Observations:', lambda: ["%#6d" % results.nobs]), + #('Df model:', lambda: [results.df_model]), + ('Df Model:', lambda: ["%#6d" % results.df_model]), + #TODO: check when we have non-integer df + ('Df Residuals:', lambda: ["%#6d" % results.df_resid]), + #('Df resid:', lambda: [results.df_resid]), + #('df resid:', lambda: [results.df_resid]), #check capitalization + ('Log-Likelihood:', lambda: ["%#8.5g" % results.llf]) #doesn't exist for RLM - exception + #('Method:', lambda: [???]), #no default for this + ]) + + if title is None: + title = results.model.__class__.__name__ + 'Regression Results' + + if gen_left is None: + #default: General part of the summary table, Applicable to all? models + gen_left = [('Dep. Variable:', None), + ('Model type:', None), + ('Date:', None), + ('No. Observations:', None), + ('Df model:', None), + ('Df resid:', None)] + + try: + llf = results.llf + gen_left.append(('Log-Likelihood', None)) + except: #AttributeError, NotImplementedError + pass + + gen_right = [] + + + gen_title = title + gen_header = None + + #needed_values = [k for k,v in gleft + gright if v is None] #not used anymore + #replace missing (None) values with default values + gen_left_ = [] + for item, value in gen_left: + if value is None: + value = default_items[item]() #let KeyErrors raise exception + gen_left_.append((item, value)) + gen_left = gen_left_ + + if gen_right: + gen_right_ = [] + for item, value in gen_right: + if value is None: + value = default_items[item]() #let KeyErrors raise exception + gen_right_.append((item, value)) + gen_right = gen_right_ + + #check + missing_values = [k for k,v in gen_left + gen_right if v is None] + assert missing_values == [], missing_values + + #pad both tables to equal number of rows + if gen_right: + if len(gen_right) < len(gen_left): + #fill up with blank lines to same length + gen_right += [(' ', ' ')] * (len(gen_left) - len(gen_right)) + elif len(gen_right) > len(gen_left): + #fill up with blank lines to same length, just to keep it symmetric + gen_left += [(' ', ' ')] * (len(gen_right) - len(gen_left)) + + #padding in SimpleTable doesn't work like I want + #force extra spacing and exact string length in right table + gen_right = [('%-21s' % (' '+k), v) for k,v in gen_right] + gen_stubs_right, gen_data_right = zip_longest(*gen_right) #transpose row col + gen_table_right = SimpleTable(gen_data_right, + gen_header, + gen_stubs_right, + title = gen_title, + txt_fmt = fmt_2cols #gen_fmt + ) + else: + gen_table_right = [] #because .extend_right seems works with [] + + + #moved below so that we can pad if needed to match length of gen_right + #transpose rows and columns, `unzip` + gen_stubs_left, gen_data_left = zip_longest(*gen_left) #transpose row col + + gen_table_left = SimpleTable(gen_data_left, + gen_header, + gen_stubs_left, + title = gen_title, + txt_fmt = fmt_2cols + ) + + gen_table_left.extend_right(gen_table_right) + general_table = gen_table_left + + return general_table #, gen_table_left, gen_table_right + + + +def summary_params(results, yname=None, xname=None, alpha=.05, use_t=True, + skip_header=False, title=None): + '''create a summary table for the parameters + + Parameters + ---------- + res : results instance + some required information is directly taken from the result + instance + yname : string or None + optional name for the endogenous variable, default is "y" + xname : list of strings or None + optional names for the exogenous variables, default is "var_xx" + alpha : float + significance level for the confidence intervals + use_t : bool + indicator whether the p-values are based on the Student-t + distribution (if True) or on the normal distribution (if False) + skip_headers : bool + If false (default), then the header row is added. If true, then no + header row is added. + + Returns + ------- + params_table : SimpleTable instance + ''' + + #Parameters part of the summary table + #------------------------------------ + #Note: this is not necessary since we standardized names, only t versus normal + + if isinstance(results, tuple): + #for multivariate endog + #TODO: check whether I don't want to refactor this + #we need to give parameter alpha to conf_int + results, params, std_err, tvalues, pvalues, conf_int = results + else: + params = results.params + std_err = results.bse + tvalues = results.tvalues #is this sometimes called zvalues + pvalues = results.pvalues + conf_int = results.conf_int(alpha) + + + #Dictionary to store the header names for the parameter part of the + #summary table. look up by modeltype + if use_t: + param_header = ['coef', 'std err', 't', 'P>|t|', + '[' + str(alpha/2), str(1-alpha/2) + ']'] + else: + param_header = ['coef', 'std err', 'z', 'P>|z|', + '[' + str(alpha/2), str(1-alpha/2) + ']'] + + if skip_header: + param_header = None + + + _, xname = _getnames(results, yname=yname, xname=xname) + + params_stubs = xname + + exog_idx = lrange(len(xname)) + + params_data = lzip([forg(params[i], prec=4) for i in exog_idx], + [forg(std_err[i]) for i in exog_idx], + [forg(tvalues[i]) for i in exog_idx], + ["%#6.3f" % (pvalues[i]) for i in exog_idx], + [forg(conf_int[i,0]) for i in exog_idx], + [forg(conf_int[i,1]) for i in exog_idx] + ) + parameter_table = SimpleTable(params_data, + param_header, + params_stubs, + title = title, + txt_fmt = fmt_params #gen_fmt #fmt_2, #gen_fmt, + ) + + return parameter_table + + +def summary_params_frame(results, yname=None, xname=None, alpha=.05, + use_t=True): + '''create a summary table for the parameters + + Parameters + ---------- + res : results instance + some required information is directly taken from the result + instance + yname : string or None + optional name for the endogenous variable, default is "y" + xname : list of strings or None + optional names for the exogenous variables, default is "var_xx" + alpha : float + significance level for the confidence intervals + use_t : bool + indicator whether the p-values are based on the Student-t + distribution (if True) or on the normal distribution (if False) + skip_headers : bool + If false (default), then the header row is added. If true, then no + header row is added. + + Returns + ------- + params_table : SimpleTable instance + ''' + + #Parameters part of the summary table + #------------------------------------ + #Note: this is not necessary since we standardized names, only t versus normal + + if isinstance(results, tuple): + #for multivariate endog + #TODO: check whether I don't want to refactor this + #we need to give parameter alpha to conf_int + results, params, std_err, tvalues, pvalues, conf_int = results + else: + params = results.params + std_err = results.bse + tvalues = results.tvalues #is this sometimes called zvalues + pvalues = results.pvalues + conf_int = results.conf_int(alpha) + + + #Dictionary to store the header names for the parameter part of the + #summary table. look up by modeltype + alp = str((1-alpha)*100)+'%' + if use_t: + param_header = ['coef', 'std err', 't', 'P>|t|', + 'Conf. Int. Low', 'Conf. Int. Upp.'] + else: + param_header = ['coef', 'std err', 'z', 'P>|z|', + 'Conf. Int. Low', 'Conf. Int. Upp.'] + + _, xname = _getnames(results, yname=yname, xname=xname) + + + #------------------ + + from pandas import DataFrame + table = np.column_stack((params, std_err, tvalues, pvalues, conf_int)) + return DataFrame(table, columns=param_header, index=xname) + + +def summary_params_2d(result, extras=None, endog_names=None, exog_names=None, + title=None): + '''create summary table of regression parameters with several equations + + This allows interleaving of parameters with bse and/or tvalues + + Parameters + ---------- + result : result instance + the result instance with params and attributes in extras + extras : list of strings + additional attributes to add below a parameter row, e.g. bse or tvalues + endog_names : None or list of strings + names for rows of the parameter array (multivariate endog) + exog_names : None or list of strings + names for columns of the parameter array (exog) + alpha : float + level for confidence intervals, default 0.95 + title : None or string + + Returns + ------- + tables : list of SimpleTable + this contains a list of all seperate Subtables + table_all : SimpleTable + the merged table with results concatenated for each row of the parameter + array + + ''' + if endog_names is None: + #TODO: note the [1:] is specific to current MNLogit + endog_names = ['endog_%d' % i for i in + np.unique(result.model.endog)[1:]] + if exog_names is None: + exog_names = ['var%d' %i for i in range(len(result.params))] + + #TODO: check formatting options with different values + #res_params = [['%10.4f'%item for item in row] for row in result.params] + res_params = [[forg(item, prec=4) for item in row] for row in result.params] + if extras: #not None or non-empty + #maybe this should be a simple triple loop instead of list comprehension? + #below_list = [[['%10s' % ('('+('%10.3f'%v).strip()+')') + extras_list = [[['%10s' % ('(' + forg(v, prec=3).strip() + ')') + for v in col] + for col in getattr(result, what)] + for what in extras + ] + data = lzip(res_params, *extras_list) + data = [i for j in data for i in j] #flatten + stubs = lzip(endog_names, *[['']*len(endog_names)]*len(extras)) + stubs = [i for j in stubs for i in j] #flatten + #return SimpleTable(data, headers=exog_names, stubs=stubs) + else: + data = res_params + stubs = endog_names +# return SimpleTable(data, headers=exog_names, stubs=stubs, +# data_fmts=['%10.4f']) + + import copy + txt_fmt = copy.deepcopy(fmt_params) + txt_fmt.update(dict(data_fmts = ["%s"]*result.params.shape[1])) + return SimpleTable(data, headers=exog_names, + stubs=stubs, + title=title, +# data_fmts = ["%s"]), + txt_fmt = txt_fmt) + + +def summary_params_2dflat(result, endog_names=None, exog_names=None, alpha=0.05, + use_t=True, keep_headers=True, endog_cols=False): + #skip_headers2=True): + '''summary table for parameters that are 2d, e.g. multi-equation models + + Parameters + ---------- + result : result instance + the result instance with params, bse, tvalues and conf_int + endog_names : None or list of strings + names for rows of the parameter array (multivariate endog) + exog_names : None or list of strings + names for columns of the parameter array (exog) + alpha : float + level for confidence intervals, default 0.95 + use_t : bool + indicator whether the p-values are based on the Student-t + distribution (if True) or on the normal distribution (if False) + keep_headers : bool + If true (default), then sub-tables keep their headers. If false, then + only the first headers are kept, the other headerse are blanked out + endog_cols : bool + If false (default) then params and other result statistics have + equations by rows. If true, then equations are assumed to be in columns. + Not implemented yet. + + Returns + ------- + tables : list of SimpleTable + this contains a list of all seperate Subtables + table_all : SimpleTable + the merged table with results concatenated for each row of the parameter + array + + ''' + + res = result + params = res.params + if params.ndim == 2: # we've got multiple equations + n_equ = params.shape[1] + if not len(endog_names) == params.shape[1]: + raise ValueError('endog_names has wrong length') + else: + if not len(endog_names) == len(params): + raise ValueError('endog_names has wrong length') + n_equ = 1 + + #VAR doesn't have conf_int + #params = res.params.T # this is a convention for multi-eq models + + if not isinstance(endog_names, list): + #this might be specific to multinomial logit type, move? + if endog_names is None: + endog_basename = 'endog' + else: + endog_basename = endog_names + #TODO: note, the [1:] is specific to current MNLogit + endog_names = res.model.endog_names[1:] + + #check if we have the right length of names + + tables = [] + for eq in range(n_equ): + restup = (res, res.params[:,eq], res.bse[:,eq], res.tvalues[:,eq], + res.pvalues[:,eq], res.conf_int(alpha)[eq]) + + #not used anymore in current version +# if skip_headers2: +# skiph = (row != 0) +# else: +# skiph = False + skiph = False + tble = summary_params(restup, yname=endog_names[eq], + xname=exog_names, alpha=alpha, use_t=use_t, + skip_header=skiph) + + tables.append(tble) + + #add titles, they will be moved to header lines in table_extend + for i in range(len(endog_names)): + tables[i].title = endog_names[i] + + table_all = table_extend(tables, keep_headers=keep_headers) + + return tables, table_all + + +def table_extend(tables, keep_headers=True): + '''extend a list of SimpleTables, adding titles to header of subtables + + This function returns the merged table as a deepcopy, in contrast to the + SimpleTable extend method. + + Parameters + ---------- + tables : list of SimpleTable instances + keep_headers : bool + If true, then all headers are kept. If falls, then the headers of + subtables are blanked out. + + Returns + ------- + table_all : SimpleTable + merged tables as a single SimpleTable instance + + ''' + from copy import deepcopy + for ii, t in enumerate(tables[:]): #[1:]: + t = deepcopy(t) + + #move title to first cell of header + #TODO: check if we have multiline headers + if t[0].datatype == 'header': + t[0][0].data = t.title + t[0][0]._datatype = None + t[0][0].row = t[0][1].row + if not keep_headers and (ii > 0): + for c in t[0][1:]: + c.data = '' + + #add separating line and extend tables + if ii == 0: + table_all = t + else: + r1 = table_all[-1] + r1.add_format('txt', row_dec_below='-') + table_all.extend(t) + + table_all.title = None + return table_all + + +def summary_return(tables, return_fmt='text'): + ######## Return Summary Tables ######## + # join table parts then print + if return_fmt == 'text': + strdrop = lambda x: str(x).rsplit('\n',1)[0] + #convert to string drop last line + return '\n'.join(lmap(strdrop, tables[:-1]) + [str(tables[-1])]) + elif return_fmt == 'tables': + return tables + elif return_fmt == 'csv': + return '\n'.join(map(lambda x: x.as_csv(), tables)) + elif return_fmt == 'latex': + #TODO: insert \hline after updating SimpleTable + import copy + table = copy.deepcopy(tables[0]) + del table[-1] + for part in tables[1:]: + table.extend(part) + return table.as_latex_tabular() + elif return_fmt == 'html': + return "\n".join(table.as_html() for table in tables) + else: + raise ValueError('available output formats are text, csv, latex, html') + + +class Summary(object): + '''class to hold tables for result summary presentation + + Construction does not take any parameters. Tables and text can be added + with the `add_` methods. + + Attributes + ---------- + tables : list of tables + Contains the list of SimpleTable instances, horizontally concatenated tables are not saved separately. + extra_txt : string + extra lines that are added to the text output, used for warnings and explanations. + ''' + def __init__(self): + self.tables = [] + self.extra_txt = None + + def __str__(self): + return self.as_text() + + def __repr__(self): + #return '<' + str(type(self)) + '>\n"""\n' + self.__str__() + '\n"""' + return str(type(self)) + '\n"""\n' + self.__str__() + '\n"""' + + def _repr_html_(self): + '''Display as HTML in IPython notebook.''' + return self.as_html() + + def add_table_2cols(self, res, title=None, gleft=None, gright=None, + yname=None, xname=None): + '''add a double table, 2 tables with one column merged horizontally + + Parameters + ---------- + res : results instance + some required information is directly taken from the result + instance + title : string or None + if None, then a default title is used. + gleft : list of tuples + elements for the left table, tuples are (name, value) pairs + If gleft is None, then a default table is created + gright : list of tuples or None + elements for the right table, tuples are (name, value) pairs + yname : string or None + optional name for the endogenous variable, default is "y" + xname : list of strings or None + optional names for the exogenous variables, default is "var_xx" + + Returns + ------- + None : tables are attached + + ''' + + table = summary_top(res, title=title, gleft=gleft, gright=gright, + yname=yname, xname=xname) + self.tables.append(table) + + def add_table_params(self, res, yname=None, xname=None, alpha=.05, + use_t=True): + '''create and add a table for the parameter estimates + + Parameters + ---------- + res : results instance + some required information is directly taken from the result + instance + yname : string or None + optional name for the endogenous variable, default is "y" + xname : list of strings or None + optional names for the exogenous variables, default is "var_xx" + alpha : float + significance level for the confidence intervals + use_t : bool + indicator whether the p-values are based on the Student-t + distribution (if True) or on the normal distribution (if False) + + Returns + ------- + None : table is attached + + ''' + if res.params.ndim == 1: + table = summary_params(res, yname=yname, xname=xname, alpha=alpha, + use_t=use_t) + elif res.params.ndim == 2: +# _, table = summary_params_2dflat(res, yname=yname, xname=xname, +# alpha=alpha, use_t=use_t) + _, table = summary_params_2dflat(res, endog_names=yname, + exog_names=xname, + alpha=alpha, use_t=use_t) + else: + raise ValueError('params has to be 1d or 2d') + self.tables.append(table) + + def add_extra_txt(self, etext): + '''add additional text that will be added at the end in text format + + Parameters + ---------- + etext : string + string with lines that are added to the text output. + + ''' + self.extra_txt = '\n'.join(etext) + + def as_text(self): + '''return tables as string + + Returns + ------- + txt : string + summary tables and extra text as one string + + ''' + txt = summary_return(self.tables, return_fmt='text') + if not self.extra_txt is None: + txt = txt + '\n\n' + self.extra_txt + return txt + + def as_latex(self): + '''return tables as string + + Returns + ------- + latex : string + summary tables and extra text as string of Latex + + Notes + ----- + This currently merges tables with different number of columns. + It is recommended to use `as_latex_tabular` directly on the individual + tables. + + ''' + return summary_return(self.tables, return_fmt='latex') + + def as_csv(self): + '''return tables as string + + Returns + ------- + csv : string + concatenated summary tables in comma delimited format + + ''' + return summary_return(self.tables, return_fmt='csv') + + def as_html(self): + '''return tables as string + + Returns + ------- + html : string + concatenated summary tables in HTML format + + ''' + return summary_return(self.tables, return_fmt='html') + + +if __name__ == "__main__": + import statsmodels.api as sm + data = sm.datasets.longley.load() + data.exog = sm.add_constant(data.exog) + res = sm.OLS(data.endog, data.exog).fit() + #summary( + diff --git a/statsmodels/iolib/summary2.py b/statsmodels/iolib/summary2.py new file mode 100644 index 0000000..e92adf1 --- /dev/null +++ b/statsmodels/iolib/summary2.py @@ -0,0 +1,558 @@ +from statsmodels.compat.python import (lrange, iterkeys, iteritems, lzip, + reduce, itervalues, zip, string_types, + range) +from statsmodels.compat.collections import OrderedDict +import numpy as np +import pandas as pd +import datetime +import textwrap +from .table import SimpleTable +from .tableformatting import fmt_latex, fmt_txt + + +class Summary(object): + def __init__(self): + self.tables = [] + self.settings = [] + self.extra_txt = [] + self.title = None + + def __str__(self): + return self.as_text() + + def __repr__(self): + return str(type(self)) + '\n"""\n' + self.__str__() + '\n"""' + + def _repr_html_(self): + '''Display as HTML in IPython notebook.''' + return self.as_html() + + def add_df(self, df, index=True, header=True, float_format='%.4f', + align='r'): + '''Add the contents of a DataFrame to summary table + + Parameters + ---------- + df : DataFrame + header: bool + Reproduce the DataFrame column labels in summary table + index: bool + Reproduce the DataFrame row labels in summary table + float_format: string + Formatting to float data columns + align : string + Data alignment (l/c/r) + ''' + + settings = {'index': index, 'header': header, + 'float_format': float_format, 'align': align} + self.tables.append(df) + self.settings.append(settings) + + def add_array(self, array, align='r', float_format="%.4f"): + '''Add the contents of a Numpy array to summary table + + Parameters + ---------- + array : numpy array (2D) + float_format: string + Formatting to array if type is float + align : string + Data alignment (l/c/r) + ''' + + table = pd.DataFrame(array) + self.add_df(table, index=False, header=False, + float_format=float_format, align=align) + + def add_dict(self, d, ncols=2, align='l', float_format="%.4f"): + '''Add the contents of a Dict to summary table + + Parameters + ---------- + d : dict + Keys and values are automatically coerced to strings with str(). + Users are encouraged to format them before using add_dict. + ncols: int + Number of columns of the output table + align : string + Data alignment (l/c/r) + ''' + + keys = [_formatter(x, float_format) for x in iterkeys(d)] + vals = [_formatter(x, float_format) for x in itervalues(d)] + data = np.array(lzip(keys, vals)) + + if data.shape[0] % ncols != 0: + pad = ncols - (data.shape[0] % ncols) + data = np.vstack([data, np.array(pad * [['', '']])]) + + data = np.split(data, ncols) + data = reduce(lambda x, y: np.hstack([x, y]), data) + self.add_array(data, align=align) + + def add_text(self, string): + '''Append a note to the bottom of the summary table. In ASCII tables, + the note will be wrapped to table width. Notes are not indendented. + ''' + self.extra_txt.append(string) + + def add_title(self, title=None, results=None): + '''Insert a title on top of the summary table. If a string is provided + in the title argument, that string is printed. If no title string is + provided but a results instance is provided, statsmodels attempts + to construct a useful title automatically. + ''' + if isinstance(title, string_types): + self.title = title + else: + try: + model = results.model.__class__.__name__ + if model in _model_types: + model = _model_types[model] + self.title = 'Results: ' + model + except: + self.title = '' + + def add_base(self, results, alpha=0.05, float_format="%.4f", title=None, + xname=None, yname=None): + '''Try to construct a basic summary instance. + + Parameters + ---------- + results : Model results instance + alpha : float + significance level for the confidence intervals (optional) + float_formatting: string + Float formatting for summary of parameters (optional) + title : string + Title of the summary table (optional) + xname : List of strings of length equal to the number of parameters + Names of the independent variables (optional) + yname : string + Name of the dependent variable (optional) + ''' + + param = summary_params(results, alpha=alpha, use_t=results.use_t) + info = summary_model(results) + if xname is not None: + param.index = xname + if yname is not None: + info['Dependent Variable:'] = yname + self.add_dict(info, align='l') + self.add_df(param, float_format=float_format) + self.add_title(title=title, results=results) + + def as_text(self): + '''Generate ASCII Summary Table + ''' + + tables = self.tables + settings = self.settings + title = self.title + extra_txt = self.extra_txt + + pad_col, pad_index, widest = _measure_tables(tables, settings) + + rule_equal = widest * '=' + #TODO: this isn't used anywhere? + rule_dash = widest * '-' + + simple_tables = _simple_tables(tables, settings, pad_col, pad_index) + tab = [x.as_text() for x in simple_tables] + + tab = '\n'.join(tab) + tab = tab.split('\n') + tab[0] = rule_equal + tab.append(rule_equal) + tab = '\n'.join(tab) + + if title is not None: + title = title + if len(title) < widest: + title = ' ' * int(widest/2 - len(title)/2) + title + else: + title = '' + + txt = [textwrap.wrap(x, widest) for x in extra_txt] + txt = ['\n'.join(x) for x in txt] + txt = '\n'.join(txt) + + out = '\n'.join([title, tab, txt]) + + return out + + def as_html(self): + '''Generate HTML Summary Table + ''' + + tables = self.tables + settings = self.settings + #TODO: this isn't used anywhere + title = self.title + + simple_tables = _simple_tables(tables, settings) + tab = [x.as_html() for x in simple_tables] + tab = '\n'.join(tab) + + return tab + + def as_latex(self): + '''Generate LaTeX Summary Table + ''' + tables = self.tables + settings = self.settings + title = self.title + if title is not None: + title = '\\caption{' + title + '} \\\\' + else: + title = '\\caption{}' + + simple_tables = _simple_tables(tables, settings) + tab = [x.as_latex_tabular() for x in simple_tables] + tab = '\n\\hline\n'.join(tab) + + out = '\\begin{table}', title, tab, '\\end{table}' + out = '\n'.join(out) + return out + + +def _measure_tables(tables, settings): + '''Compare width of ascii tables in a list and calculate padding values. + We add space to each col_sep to get us as close as possible to the + width of the largest table. Then, we add a few spaces to the first + column to pad the rest. + ''' + + simple_tables = _simple_tables(tables, settings) + tab = [x.as_text() for x in simple_tables] + + length = [len(x.splitlines()[0]) for x in tab] + len_max = max(length) + pad_sep = [] + pad_index = [] + + for i in range(len(tab)): + nsep = tables[i].shape[1] - 1 + pad = int((len_max - length[i]) / nsep) + pad_sep.append(pad) + len_new = length[i] + nsep * pad + pad_index.append(len_max - len_new) + + return pad_sep, pad_index, max(length) + + +# Useful stuff +_model_types = {'OLS' : 'Ordinary least squares', + 'GLS' : 'Generalized least squares', + 'GLSAR' : 'Generalized least squares with AR(p)', + 'WLS' : 'Weigthed least squares', + 'RLM' : 'Robust linear model', + 'NBin': 'Negative binomial model', + 'GLM' : 'Generalized linear model' + } + + +def summary_model(results): + '''Create a dict with information about the model + ''' + def time_now(*args, **kwds): + now = datetime.datetime.now() + return now.strftime('%Y-%m-%d %H:%M') + info = OrderedDict() + info['Model:'] = lambda x: x.model.__class__.__name__ + info['Model Family:'] = lambda x: x.family.__class.__name__ + info['Link Function:'] = lambda x: x.family.link.__class__.__name__ + info['Dependent Variable:'] = lambda x: x.model.endog_names + info['Date:'] = time_now + info['No. Observations:'] = lambda x: "%#6d" % x.nobs + info['Df Model:'] = lambda x: "%#6d" % x.df_model + info['Df Residuals:'] = lambda x: "%#6d" % x.df_resid + info['Converged:'] = lambda x: x.mle_retvals['converged'] + info['No. Iterations:'] = lambda x: x.mle_retvals['iterations'] + info['Method:'] = lambda x: x.method + info['Norm:'] = lambda x: x.fit_options['norm'] + info['Scale Est.:'] = lambda x: x.fit_options['scale_est'] + info['Cov. Type:'] = lambda x: x.fit_options['cov'] + info['R-squared:'] = lambda x: "%#8.3f" % x.rsquared + info['Adj. R-squared:'] = lambda x: "%#8.3f" % x.rsquared_adj + info['Pseudo R-squared:'] = lambda x: "%#8.3f" % x.prsquared + info['AIC:'] = lambda x: "%8.4f" % x.aic + info['BIC:'] = lambda x: "%8.4f" % x.bic + info['Log-Likelihood:'] = lambda x: "%#8.5g" % x.llf + info['LL-Null:'] = lambda x: "%#8.5g" % x.llnull + info['LLR p-value:'] = lambda x: "%#8.5g" % x.llr_pvalue + info['Deviance:'] = lambda x: "%#8.5g" % x.deviance + info['Pearson chi2:'] = lambda x: "%#6.3g" % x.pearson_chi2 + info['F-statistic:'] = lambda x: "%#8.4g" % x.fvalue + info['Prob (F-statistic):'] = lambda x: "%#6.3g" % x.f_pvalue + info['Scale:'] = lambda x: "%#8.5g" % x.scale + out = OrderedDict() + for key, func in iteritems(info): + try: + out[key] = func(results) + # NOTE: some models don't have loglike defined (RLM), so that's NIE + except (AttributeError, KeyError, NotImplementedError): + pass + return out + + +def summary_params(results, yname=None, xname=None, alpha=.05, use_t=True, + skip_header=False, float_format="%.4f"): + '''create a summary table of parameters from results instance + + Parameters + ---------- + res : results instance + some required information is directly taken from the result + instance + yname : string or None + optional name for the endogenous variable, default is "y" + xname : list of strings or None + optional names for the exogenous variables, default is "var_xx" + alpha : float + significance level for the confidence intervals + use_t : bool + indicator whether the p-values are based on the Student-t + distribution (if True) or on the normal distribution (if False) + skip_headers : bool + If false (default), then the header row is added. If true, then no + header row is added. + float_format : string + float formatting options (e.g. ".3g") + + Returns + ------- + params_table : SimpleTable instance + ''' + + if isinstance(results, tuple): + results, params, std_err, tvalues, pvalues, conf_int = results + else: + params = results.params + bse = results.bse + tvalues = results.tvalues + pvalues = results.pvalues + conf_int = results.conf_int(alpha) + + data = np.array([params, bse, tvalues, pvalues]).T + data = np.hstack([data, conf_int]) + data = pd.DataFrame(data) + + if use_t: + data.columns = ['Coef.', 'Std.Err.', 't', 'P>|t|', + '[' + str(alpha/2), str(1-alpha/2) + ']'] + else: + data.columns = ['Coef.', 'Std.Err.', 'z', 'P>|z|', + '[' + str(alpha/2), str(1-alpha/2) + ']'] + + if not xname: + data.index = results.model.exog_names + else: + data.index = xname + + return data + + +# Vertical summary instance for multiple models +def _col_params(result, float_format='%.4f', stars=True): + '''Stack coefficients and standard errors in single column + ''' + + # Extract parameters + res = summary_params(result) + # Format float + for col in res.columns[:2]: + res[col] = res[col].apply(lambda x: float_format % x) + # Std.Errors in parentheses + res.ix[:, 1] = '(' + res.ix[:, 1] + ')' + # Significance stars + if stars: + idx = res.ix[:, 3] < .1 + res.ix[idx, 0] = res.ix[idx, 0] + '*' + idx = res.ix[:, 3] < .05 + res.ix[idx, 0] = res.ix[idx, 0] + '*' + idx = res.ix[:, 3] < .01 + res.ix[idx, 0] = res.ix[idx, 0] + '*' + # Stack Coefs and Std.Errors + res = res.ix[:, :2] + res = res.stack() + res = pd.DataFrame(res) + res.columns = [str(result.model.endog_names)] + return res + + +def _col_info(result, info_dict=None): + '''Stack model info in a column + ''' + + if info_dict is None: + info_dict = {} + out = [] + index = [] + for i in info_dict: + if isinstance(info_dict[i], dict): + # this is a specific model info_dict, but not for this result... + continue + try: + out.append(info_dict[i](result)) + except: + out.append('') + index.append(i) + out = pd.DataFrame({str(result.model.endog_names): out}, index=index) + return out + + +def _make_unique(list_of_names): + if len(set(list_of_names)) == len(list_of_names): + return list_of_names + # pandas does not like it if multiple columns have the same names + from collections import defaultdict + name_counter = defaultdict(str) + header = [] + for _name in list_of_names: + name_counter[_name] += "I" + header.append(_name+" " + name_counter[_name]) + return header + + +def summary_col(results, float_format='%.4f', model_names=[], stars=False, + info_dict=None, regressor_order=[]): + """ + Summarize multiple results instances side-by-side (coefs and SEs) + + Parameters + ---------- + results : statsmodels results instance or list of result instances + float_format : string + float format for coefficients and standard errors + Default : '%.4f' + model_names : list of strings of length len(results) if the names are not + unique, a roman number will be appended to all model names + stars : bool + print significance stars + info_dict : dict + dict of lambda functions to be applied to results instances to retrieve + model info. To use specific information for different models, add a + (nested) info_dict with model name as the key. + Example: `info_dict = {"N":..., "R2": ..., "OLS":{"R2":...}}` would + only show `R2` for OLS regression models, but additionally `N` for + all other results. + Default : None (use the info_dict specified in + result.default_model_infos, if this property exists) + regressor_order : list of strings + list of names of the regressors in the desired order. All regressors + not specified will be appended to the end of the list. + """ + + if not isinstance(results, list): + results = [results] + + cols = [_col_params(x, stars=stars, float_format=float_format) for x in + results] + + # Unique column names (pandas has problems merging otherwise) + if model_names: + colnames = _make_unique(model_names) + else: + colnames = _make_unique([x.columns[0] for x in cols]) + for i in range(len(cols)): + cols[i].columns = [colnames[i]] + + merg = lambda x, y: x.merge(y, how='outer', right_index=True, + left_index=True) + summ = reduce(merg, cols) + + if regressor_order: + varnames = summ.index.get_level_values(0).tolist() + ordered = [x for x in regressor_order if x in varnames] + unordered = [x for x in varnames if x not in regressor_order + ['']] + order = ordered + list(np.unique(unordered)) + + f = lambda idx: sum([[x + 'coef', x + 'stde'] for x in idx], []) + summ.index = f(np.unique(varnames)) + summ = summ.reindex(f(order)) + summ.index = [x[:-4] for x in summ.index] + + idx = pd.Series(lrange(summ.shape[0])) % 2 == 1 + summ.index = np.where(idx, '', summ.index.get_level_values(0)) + + # add infos about the models. + if info_dict: + cols = [_col_info(x, info_dict.get(x.model.__class__.__name__, + info_dict)) for x in results] + else: + cols = [_col_info(x, getattr(x, "default_model_infos", None)) for x in + results] + # use unique column names, otherwise the merge will not succeed + for df , name in zip(cols, _make_unique([df.columns[0] for df in cols])): + df.columns = [name] + merg = lambda x, y: x.merge(y, how='outer', right_index=True, + left_index=True) + info = reduce(merg, cols) + dat = pd.DataFrame(np.vstack([summ, info])) # pd.concat better, but error + dat.columns = summ.columns + dat.index = pd.Index(summ.index.tolist() + info.index.tolist()) + summ = dat + + summ = summ.fillna('') + + smry = Summary() + smry.add_df(summ, header=True, align='l') + smry.add_text('Standard errors in parentheses.') + if stars: + smry.add_text('* p<.1, ** p<.05, ***p<.01') + + return smry + + +def _formatter(element, float_format='%.4f'): + try: + out = float_format % element + except: + out = str(element) + return out.strip() + + +def _df_to_simpletable(df, align='r', float_format="%.4f", header=True, + index=True, table_dec_above='-', table_dec_below=None, + header_dec_below='-', pad_col=0, pad_index=0): + dat = df.copy() + dat = dat.applymap(lambda x: _formatter(x, float_format)) + if header: + headers = [str(x) for x in dat.columns.tolist()] + else: + headers = None + if index: + stubs = [str(x) + int(pad_index) * ' ' for x in dat.index.tolist()] + else: + dat.ix[:, 0] = [str(x) + int(pad_index) * ' ' for x in dat.ix[:, 0]] + stubs = None + st = SimpleTable(np.array(dat), headers=headers, stubs=stubs, + ltx_fmt=fmt_latex, txt_fmt=fmt_txt) + st.output_formats['latex']['data_aligns'] = align + st.output_formats['txt']['data_aligns'] = align + st.output_formats['txt']['table_dec_above'] = table_dec_above + st.output_formats['txt']['table_dec_below'] = table_dec_below + st.output_formats['txt']['header_dec_below'] = header_dec_below + st.output_formats['txt']['colsep'] = ' ' * int(pad_col + 1) + return st + + +def _simple_tables(tables, settings, pad_col=None, pad_index=None): + simple_tables = [] + float_format = '%.4f' + if pad_col is None: + pad_col = [0] * len(tables) + if pad_index is None: + pad_index = [0] * len(tables) + for i, v in enumerate(tables): + index = settings[i]['index'] + header = settings[i]['header'] + align = settings[i]['align'] + simple_tables.append(_df_to_simpletable(v, align=align, + float_format=float_format, + header=header, index=index, + pad_col=pad_col[i], + pad_index=pad_index[i])) + return simple_tables diff --git a/statsmodels/iolib/table.py b/statsmodels/iolib/table.py new file mode 100644 index 0000000..99c387b --- /dev/null +++ b/statsmodels/iolib/table.py @@ -0,0 +1,904 @@ +""" +Provides a simple table class. A SimpleTable is essentially +a list of lists plus some formatting functionality. + +Dependencies: the Python 2.5+ standard library. + +Installation: just copy this module into your working directory (or + anywhere in your pythonpath). + +Basic use:: + + mydata = [[11,12],[21,22]] # data MUST be 2-dimensional + myheaders = [ "Column 1", "Column 2" ] + mystubs = [ "Row 1", "Row 2" ] + tbl = SimpleTable(mydata, myheaders, mystubs, title="Title") + print( tbl ) + print( tbl.as_csv() ) + +A SimpleTable is inherently (but not rigidly) rectangular. +You should create it from a *rectangular* (2d!) iterable of data. +Each item in your rectangular iterable will become the data +of a single Cell. In principle, items can be any object, +not just numbers and strings. However, default conversion +during table production is by simple string interpolation. +(So you cannot have a tuple as a data item *and* rely on +the default conversion.) + +A SimpleTable allows only one column (the first) of stubs at +initilization, concatenation of tables allows you to produce tables +with interior stubs. (You can also assign the datatype 'stub' to the +cells in any column, or use ``insert_stubs``.) A SimpleTable can be +concatenated with another SimpleTable or extended by another +SimpleTable. :: + + table1.extend_right(table2) + table1.extend(table2) + + +A SimpleTable can be initialized with `datatypes`: a list of ints that +provide indexes into `data_fmts` and `data_aligns`. Each data cell is +assigned a datatype, which will control formatting. If you do not +specify the `datatypes` list, it will be set to ``range(ncols)`` where +`ncols` is the number of columns in the data. (I.e., cells in a +column have their own datatype.) This means that you can just specify +`data_fmts` without bothering to provide a `datatypes` list. If +``len(datatypes)'] + if self.title: + title = '%s' % self.title + formatted_rows.append(title) + formatted_rows.extend(row.as_string('html', **fmt) for row in self) + formatted_rows.append('') + return '\n'.join(formatted_rows) + + def as_latex_tabular(self, center=True, **fmt_dict): + '''Return string, the table as a LaTeX tabular environment. + Note: will require the booktabs package.''' + # fetch the text format, override with fmt_dict + fmt = self._get_fmt('latex', **fmt_dict) + + formatted_rows = [] + if center: + formatted_rows.append( r'\begin{center}' ) + + table_dec_above = fmt['table_dec_above'] or '' + table_dec_below = fmt['table_dec_below'] or '' + + prev_aligns = None + last = None + for row in self + [last]: + if row == last: + aligns = None + else: + aligns = row.get_aligns('latex', **fmt) + + if aligns != prev_aligns: + # When the number/type of columns changes... + if prev_aligns: + # ... if there is a tabular to close, close it... + formatted_rows.append(table_dec_below) + formatted_rows.append(r'\end{tabular}') + if aligns: + # ... and if there are more lines, open a new one: + formatted_rows.append(r'\begin{tabular}{%s}' % aligns) + if not prev_aligns: + # (with a nice line if it's the top of the whole table) + formatted_rows.append(table_dec_above) + if row != last: + formatted_rows.append( + row.as_string(output_format='latex', **fmt)) + prev_aligns = aligns + # tabular does not support caption, but make it available for + # figure environment + if self.title: + title = r'%%\caption{%s}' % self.title + formatted_rows.append(title) + if center: + formatted_rows.append( r'\end{center}' ) + + return '\n'.join(formatted_rows) + + + def extend_right(self, table): + """Return None. + Extend each row of `self` with corresponding row of `table`. + Does **not** import formatting from ``table``. + This generally makes sense only if the two tables have + the same number of rows, but that is not enforced. + :note: To extend append a table below, just use `extend`, + which is the ordinary list method. This generally makes sense + only if the two tables have the same number of columns, + but that is not enforced. + """ + for row1, row2 in zip(self, table): + row1.extend(row2) + + def label_cells(self, func): + """Return None. Labels cells based on `func`. + If ``func(cell) is None`` then its datatype is + not changed; otherwise it is set to ``func(cell)``. + """ + for row in self: + for cell in row: + label = func(cell) + if label is not None: + cell.datatype = label + + @property + def data(self): + return [row.data for row in self] + + +def pad(s, width, align): + """Return string padded with spaces, + based on alignment parameter.""" + if align == 'l': + s = s.ljust(width) + elif align == 'r': + s = s.rjust(width) + else: + s = s.center(width) + return s + + +class Row(list): + """Provides a table row as a list of cells. + A row can belong to a SimpleTable, but does not have to. + """ + def __init__(self, seq, datatype='data', table=None, celltype=None, + dec_below='row_dec_below', **fmt_dict): + """ + Parameters + ---------- + seq : sequence of data or cells + table : SimpleTable + datatype : str ('data' or 'header') + dec_below : str + (e.g., 'header_dec_below' or 'row_dec_below') + decoration tag, identifies the decoration to go below the row. + (Decoration is repeated as needed for text formats.) + """ + self.datatype = datatype + self.table = table + if celltype is None: + if table is None: + celltype = Cell + else: + celltype = table._Cell + self._Cell = celltype + self._fmt = fmt_dict + self.special_fmts = dict() # special formatting for any output format + self.dec_below = dec_below + list.__init__(self, (celltype(cell, row=self) for cell in seq)) + + def add_format(self, output_format, **fmt_dict): + """ + Return None. Adds row-instance specific formatting + for the specified output format. + Example: myrow.add_format('txt', row_dec_below='+-') + """ + output_format = get_output_format(output_format) + if output_format not in self.special_fmts: + self.special_fmts[output_format] = dict() + self.special_fmts[output_format].update(fmt_dict) + + def insert_stub(self, loc, stub): + """Return None. Inserts a stub cell + in the row at `loc`. + """ + _Cell = self._Cell + if not isinstance(stub, _Cell): + stub = stub + stub = _Cell(stub, datatype='stub', row=self) + self.insert(loc, stub) + + def _get_fmt(self, output_format, **fmt_dict): + """Return dict, the formatting options. + """ + output_format = get_output_format(output_format) + # first get the default formatting + try: + fmt = default_fmts[output_format].copy() + except KeyError: + raise ValueError('Unknown format: %s' % output_format) + # second get table specific formatting (if possible) + try: + fmt.update(self.table.output_formats[output_format]) + except AttributeError: + pass + # finally, add formatting for this row and this call + fmt.update(self._fmt) + fmt.update(fmt_dict) + special_fmt = self.special_fmts.get(output_format, None) + if special_fmt is not None: + fmt.update(special_fmt) + return fmt + + def get_aligns(self, output_format, **fmt_dict): + """Return string, sequence of column alignments. + Ensure comformable data_aligns in `fmt_dict`.""" + fmt = self._get_fmt(output_format, **fmt_dict) + return ''.join(cell.alignment(output_format, **fmt) for cell in self) + + def as_string(self, output_format='txt', **fmt_dict): + """Return string: the formatted row. + This is the default formatter for rows. + Override this to get different formatting. + A row formatter must accept as arguments + a row (self) and an output format, + one of ('html', 'txt', 'csv', 'latex'). + """ + fmt = self._get_fmt(output_format, **fmt_dict) + + # get column widths + try: + colwidths = self.table.get_colwidths(output_format, **fmt) + except AttributeError: + colwidths = fmt.get('colwidths') + if colwidths is None: + colwidths = (0,) * len(self) + + colsep = fmt['colsep'] + row_pre = fmt.get('row_pre', '') + row_post = fmt.get('row_post', '') + formatted_cells = [] + for cell, width in zip(self, colwidths): + content = cell.format(width, output_format=output_format, **fmt) + formatted_cells.append(content) + formatted_row = row_pre + colsep.join(formatted_cells) + row_post + formatted_row = self._decorate_below(formatted_row, output_format, + **fmt) + return formatted_row + + def _decorate_below(self, row_as_string, output_format, **fmt_dict): + """This really only makes sense for the text and latex output formats. + """ + dec_below = fmt_dict.get(self.dec_below, None) + if dec_below is None: + result = row_as_string + else: + output_format = get_output_format(output_format) + if output_format == 'txt': + row0len = len(row_as_string) + dec_len = len(dec_below) + repeat, addon = divmod(row0len, dec_len) + result = row_as_string + "\n" + (dec_below * repeat + + dec_below[:addon]) + elif output_format == 'latex': + result = row_as_string + "\n" + dec_below + else: + raise ValueError("I can't decorate a %s header." % + output_format) + return result + + @property + def data(self): + return [cell.data for cell in self] + + +class Cell(object): + """Provides a table cell. + A cell can belong to a Row, but does not have to. + """ + def __init__(self, data='', datatype=None, row=None, **fmt_dict): + try: # might have passed a Cell instance + self.data = data.data + self._datatype = data.datatype + self._fmt = data._fmt + except (AttributeError, TypeError): # passed ordinary data + self.data = data + self._datatype = datatype + self._fmt = dict() + self._fmt.update(fmt_dict) + self.row = row + + def __str__(self): + return '%s' % self.data + + def _get_fmt(self, output_format, **fmt_dict): + """Return dict, the formatting options. + """ + output_format = get_output_format(output_format) + # first get the default formatting + try: + fmt = default_fmts[output_format].copy() + except KeyError: + raise ValueError('Unknown format: %s' % output_format) + # then get any table specific formtting + try: + fmt.update(self.row.table.output_formats[output_format]) + except AttributeError: + pass + # then get any row specific formtting + try: + fmt.update(self.row._fmt) + except AttributeError: + pass + # finally add formatting for this instance and call + fmt.update(self._fmt) + fmt.update(fmt_dict) + return fmt + + def alignment(self, output_format, **fmt_dict): + fmt = self._get_fmt(output_format, **fmt_dict) + datatype = self.datatype + data_aligns = fmt.get('data_aligns', 'c') + if isinstance(datatype, (int, long)): + align = data_aligns[datatype % len(data_aligns)] + elif datatype == 'stub': + # still support deprecated `stubs_align` + align = fmt.get('stubs_align') or fmt.get('stub_align', 'l') + elif datatype in fmt: + label_align = '%s_align' % datatype + align = fmt.get(label_align, 'c') + else: + raise ValueError('Unknown cell datatype: %s' % datatype) + return align + + def format(self, width, output_format='txt', **fmt_dict): + """Return string. + This is the default formatter for cells. + Override this to get different formating. + A cell formatter must accept as arguments + a cell (self) and an output format, + one of ('html', 'txt', 'csv', 'latex'). + It will generally respond to the datatype, + one of (int, 'header', 'stub'). + """ + fmt = self._get_fmt(output_format, **fmt_dict) + + data = self.data + datatype = self.datatype + data_fmts = fmt.get('data_fmts') + if data_fmts is None: + # chk allow for deprecated use of data_fmt + data_fmt = fmt.get('data_fmt') + if data_fmt is None: + data_fmt = '%s' + data_fmts = [data_fmt] + if isinstance(datatype, (int, long)): + datatype = datatype % len(data_fmts) # constrain to indexes + content = data_fmts[datatype] % (data,) + elif datatype in fmt: + if "replacements" in fmt: + if isinstance(data, str): + for repl in sorted(fmt["replacements"]): + data = data.replace(repl, fmt["replacements"][repl]) + + dfmt = fmt.get(datatype) + try: + content = dfmt % (data,) + except TypeError: # dfmt is not a substitution string + content = dfmt + else: + raise ValueError('Unknown cell datatype: %s' % datatype) + align = self.alignment(output_format, **fmt) + return pad(content, width, align) + + def get_datatype(self): + if self._datatype is None: + dtype = self.row.datatype + else: + dtype = self._datatype + return dtype + + def set_datatype(self, val): + # TODO: add checking + self._datatype = val + datatype = property(get_datatype, set_datatype) + + +# begin: default formats for SimpleTable +""" Some formatting suggestions: + +- if you want rows to have no extra spacing, + set colwidths=0 and colsep=''. + (Naturally the columns will not align.) +- if you want rows to have minimal extra spacing, + set colwidths=1. The columns will align. +- to get consistent formatting, you should leave + all field width handling to SimpleTable: + use 0 as the field width in data_fmts. E.g., :: + + data_fmts = ["%#0.6g","%#0.6g","%#0.4g","%#0.4g"], + colwidths = 14, + data_aligns = "r", +""" +default_txt_fmt = dict( + fmt='txt', + # basic table formatting + table_dec_above='=', + table_dec_below='-', + title_align='c', + # basic row formatting + row_pre='', + row_post='', + header_dec_below='-', + row_dec_below=None, + colwidths=None, + colsep=' ', + data_aligns="c", + # data formats + # data_fmt="%s", #deprecated; use data_fmts + data_fmts=["%s"], + # labeled alignments + # stubs_align='l', #deprecated; use data_fmts + stub_align='l', + header_align='c', + # labeled formats + header_fmt='%s', # deprecated; just use 'header' + stub_fmt='%s', # deprecated; just use 'stub' + header='%s', + stub='%s', + empty_cell='', # deprecated; just use 'empty' + empty='', + missing='--', +) + +default_csv_fmt = dict( + fmt='csv', + table_dec_above=None, # '', + table_dec_below=None, # '', + # basic row formatting + row_pre='', + row_post='', + header_dec_below=None, # '', + row_dec_below=None, + title_align='', + data_aligns="l", + colwidths=None, + colsep=',', + # data formats + data_fmt='%s', # deprecated; use data_fmts + data_fmts=['%s'], + # labeled alignments + # stubs_align='l', # deprecated; use data_fmts + stub_align="l", + header_align='c', + # labeled formats + header_fmt='"%s"', # deprecated; just use 'header' + stub_fmt='"%s"', # deprecated; just use 'stub' + empty_cell='', # deprecated; just use 'empty' + header='%s', + stub='%s', + empty='', + missing='--', +) + +default_html_fmt = dict( + # basic table formatting + table_dec_above=None, + table_dec_below=None, + header_dec_below=None, + row_dec_below=None, + title_align='c', + # basic row formatting + colwidths=None, + colsep=' ', + row_pre='\n ', + row_post='\n', + data_aligns="c", + # data formats + data_fmts=['%s'], + data_fmt="%s", # deprecated; use data_fmts + # labeled alignments + # stubs_align='l', #deprecated; use data_fmts + stub_align='l', + header_align='c', + # labeled formats + header_fmt='%s', # deprecated; just use `header` + stub_fmt='%s', # deprecated; just use `stub` + empty_cell='', # deprecated; just use `empty` + header='%s', + stub='%s', + empty='', + missing='--', +) + +default_latex_fmt = dict( + fmt='ltx', + # basic table formatting + table_dec_above=r'\toprule', + table_dec_below=r'\bottomrule', + header_dec_below=r'\midrule', + row_dec_below=None, + strip_backslash=True, # NotImplemented + # row formatting + row_post=r' \\', + data_aligns='c', + colwidths=None, + colsep=' & ', + # data formats + data_fmts=['%s'], + data_fmt='%s', # deprecated; use data_fmts + # labeled alignments + # stubs_align='l', # deprecated; use data_fmts + stub_align='l', + header_align='c', + empty_align='l', + # labeled formats + header_fmt=r'\textbf{%s}', # deprecated; just use 'header' + stub_fmt=r'\textbf{%s}', # deprecated; just use 'stub' + empty_cell='', # deprecated; just use 'empty' + header=r'\textbf{%s}', + stub=r'\textbf{%s}', + empty='', + missing='--', + #replacements will be processed in lexicographical order + replacements={"#" : "\#", "$" : "\$", "%" : "\%", "&" : "\&", ">" : "$>$", "_" : "\_", "|" : "$|$"} +) + +default_fmts = dict( + html=default_html_fmt, + txt=default_txt_fmt, + latex=default_latex_fmt, + csv=default_csv_fmt +) +output_format_translations = dict( + htm='html', + text='txt', + ltx='latex' +) + + +def get_output_format(output_format): + if output_format not in ('html', 'txt', 'latex', 'csv'): + try: + output_format = output_format_translations[output_format] + except KeyError: + raise ValueError('unknown output format %s' % output_format) + return output_format diff --git a/statsmodels/iolib/tableformatting.py b/statsmodels/iolib/tableformatting.py new file mode 100644 index 0000000..735e235 --- /dev/null +++ b/statsmodels/iolib/tableformatting.py @@ -0,0 +1,149 @@ +""" +Summary Table formating +This is here to help keep the formating consistent across the different models +""" + +gen_fmt = dict( + data_fmts = ["%s", "%s", "%s", "%s", "%s"], + empty_cell = '', + colwidths = 7, #17, + colsep=' ', + row_pre = ' ', + row_post = ' ', + table_dec_above='=', + table_dec_below=None, + header_dec_below=None, + header_fmt = '%s', + stub_fmt = '%s', + title_align='c', + header_align = 'r', + data_aligns = "r", + stubs_align = "l", + fmt = 'txt' + ) + # Note table_1l_fmt over rides the below formating unless it is not + # appended to table_1l +fmt_1_right = dict( + data_fmts = ["%s", "%s", "%s", "%s", "%s"], + empty_cell = '', + colwidths = 16, + colsep=' ', + row_pre = '', + row_post = '', + table_dec_above='=', + table_dec_below=None, + header_dec_below=None, + header_fmt = '%s', + stub_fmt = '%s', + title_align='c', + header_align = 'r', + data_aligns = "r", + stubs_align = "l", + fmt = 'txt' + ) + +fmt_2 = dict( + data_fmts = ["%s", "%s", "%s", "%s"], + empty_cell = '', + colwidths = 10, + colsep=' ', + row_pre = ' ', + row_post = ' ', + table_dec_above='=', + table_dec_below='=', + header_dec_below='-', + header_fmt = '%s', + stub_fmt = '%s', + title_align='c', + header_align = 'r', + data_aligns = 'r', + stubs_align = 'l', + fmt = 'txt' + ) + + +# new version +fmt_base = dict( + data_fmts = ["%s", "%s", "%s", "%s", "%s"], + empty_cell = '', + colwidths = 10, + colsep=' ', + row_pre = '', + row_post = '', + table_dec_above='=', + table_dec_below='=', #TODO need '=' at the last subtable + header_dec_below='-', + header_fmt = '%s', + stub_fmt = '%s', + title_align='c', + header_align = 'r', + data_aligns = 'r', + stubs_align = 'l', + fmt = 'txt' + ) + +import copy +fmt_2cols = copy.deepcopy(fmt_base) + +fmt2 = dict( + data_fmts = ["%18s", "-%19s", "%18s", "%19s"], #TODO: + colsep=' ', + colwidths = 18, + stub_fmt = '-%21s', + ) +fmt_2cols.update(fmt2) + +fmt_params = copy.deepcopy(fmt_base) + +fmt3 = dict( + data_fmts = ["%s", "%s", "%8s", "%s", "%11s", "%11s"], + ) +fmt_params.update(fmt3) + +""" +Summary Table formating +This is here to help keep the formating consistent across the different models +""" +fmt_latex = {'colsep': ' & ', + 'colwidths': None, + 'data_aligns': 'r', + 'data_fmt': '%s', + 'data_fmts': ['%s'], + 'empty': '', + 'empty_cell': '', + 'fmt': 'ltx', + 'header': '%s', + 'header_align': 'c', + 'header_dec_below': '\\hline', + 'header_fmt': '%s', + 'missing': '--', + 'row_dec_below': None, + 'row_post': ' \\\\', + 'strip_backslash': True, + 'stub': '%s', + 'stub_align': 'l', + 'stub_fmt': '%s', + 'table_dec_above': '\\hline', + 'table_dec_below': '\\hline'} + +fmt_txt = {'colsep': ' ', + 'colwidths': None, + 'data_aligns': 'r', + 'data_fmts': ['%s'], + 'empty': '', + 'empty_cell': '', + 'fmt': 'txt', + 'header': '%s', + 'header_align': 'c', + 'header_dec_below': '-', + 'header_fmt': '%s', + 'missing': '--', + 'row_dec_below': None, + 'row_post': '', + 'row_pre': '', + 'stub': '%s', + 'stub_align': 'l', + 'stub_fmt': '%s', + 'table_dec_above': '-', + 'table_dec_below': None, + 'title_align': 'c'} diff --git a/statsmodels/iolib/tests/__init__.py b/statsmodels/iolib/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/iolib/tests/gen_dates.do b/statsmodels/iolib/tests/gen_dates.do new file mode 100644 index 0000000..2256ec1 --- /dev/null +++ b/statsmodels/iolib/tests/gen_dates.do @@ -0,0 +1,9 @@ +insheet using "/home/skipper/statsmodels/statsmodels-skipper/statsmodels/iolib/tests/stata_dates.csv" +format datetime_c %tc +format datetime_big_c %tC +format date %td +format weekly_date %tw +format monthly_date %tm +format quarterly_date %tq +format half_yearly_date %th +format yearly_date %ty diff --git a/statsmodels/iolib/tests/results/__init__.py b/statsmodels/iolib/tests/results/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/iolib/tests/results/data_missing.dta b/statsmodels/iolib/tests/results/data_missing.dta new file mode 100644 index 0000000000000000000000000000000000000000..7df75d0d0cdede36e72cdb3145fa7e9322b5cc27 GIT binary patch literal 1130 zcmXS7Vq{=tU}S&*;f7nB_v;xL1fcXq-jfa>ndct7U>d{*0flEL9KZ}H!49QO7KDPu zGb=e97!)iO{F6%*j0_Bo6bucm42&55{r~;vZ(2@%Vo7{%W^pmH2}tae{L-YHR6Ht@ zDodc!IE={5!)pNpLr#8PIvxv<90O#kTIw03qYB~YsTvxPrbE?&H1!OmYcMn-(F*)t z93--J&H|w1s&JOo8RQ~#8tlpk^{G$mpZ@<3RL8)^0#*kW$3ieNj2cLJ7(xRU6y87p G4}Jh1&UZfm literal 0 HcmV?d00001 diff --git a/statsmodels/iolib/tests/results/macrodata.py b/statsmodels/iolib/tests/results/macrodata.py new file mode 100644 index 0000000..6cc558f --- /dev/null +++ b/statsmodels/iolib/tests/results/macrodata.py @@ -0,0 +1,210 @@ +from numpy import array + +macrodata_result = array( + [ (1959.0, 1.0, 2710.349, 1707.4, 286.898, 470.045, 1886.9, 28.98, 139.7, 2.82, 5.8, 177.146, 0.0, 0.0), + (1959.0, 2.0, 2778.801, 1733.7, 310.859, 481.301, 1919.7, 29.15, 141.7, 3.08, 5.1, 177.83, 2.34, 0.74), + (1959.0, 3.0, 2775.488, 1751.8, 289.226, 491.26, 1916.4, 29.35, 140.5, 3.82, 5.3, 178.657, 2.74, 1.09), + (1959.0, 4.0, 2785.204, 1753.7, 299.356, 484.052, 1931.3, 29.37, 140.0, 4.33, 5.6, 179.386, 0.27, 4.06), + (1960.0, 1.0, 2847.699, 1770.5, 331.722, 462.199, 1955.5, 29.54, 139.6, 3.5, 5.2, 180.007, 2.31, 1.19), + (1960.0, 2.0, 2834.39, 1792.9, 298.152, 460.4, 1966.1, 29.55, 140.2, 2.68, 5.2, 180.671, 0.14, 2.55), + (1960.0, 3.0, 2839.022, 1785.8, 296.375, 474.676, 1967.8, 29.75, 140.9, 2.36, 5.6, 181.528, 2.7, -0.34), + (1960.0, 4.0, 2802.616, 1788.2, 259.764, 476.434, 1966.6, 29.84, 141.1, 2.29, 6.3, 182.287, 1.21, 1.08), + (1961.0, 1.0, 2819.264, 1787.7, 266.405, 475.854, 1984.5, 29.81, 142.1, 2.37, 6.8, 182.992, -0.4, 2.77), + (1961.0, 2.0, 2872.005, 1814.3, 286.246, 480.328, 2014.4, 29.92, 142.9, 2.29, 7.0, 183.691, 1.47, 0.81), + (1961.0, 3.0, 2918.419, 1823.1, 310.227, 493.828, 2041.9, 29.98, 144.1, 2.32, 6.8, 184.524, 0.8, 1.52), + (1961.0, 4.0, 2977.83, 1859.6, 315.463, 502.521, 2082.0, 30.04, 145.2, 2.6, 6.2, 185.242, 0.8, 1.8), + (1962.0, 1.0, 3031.241, 1879.4, 334.271, 520.96, 2101.7, 30.21, 146.4, 2.73, 5.6, 185.874, 2.26, 0.47), + (1962.0, 2.0, 3064.709, 1902.5, 331.039, 523.066, 2125.2, 30.22, 146.5, 2.78, 5.5, 186.538, 0.13, 2.65), + (1962.0, 3.0, 3093.047, 1917.9, 336.962, 538.838, 2137.0, 30.38, 146.7, 2.78, 5.6, 187.323, 2.11, 0.67), + (1962.0, 4.0, 3100.563, 1945.1, 325.65, 535.912, 2154.6, 30.44, 148.3, 2.87, 5.5, 188.013, 0.79, 2.08), + (1963.0, 1.0, 3141.087, 1958.2, 343.721, 522.917, 2172.5, 30.48, 149.7, 2.9, 5.8, 188.58, 0.53, 2.38), + (1963.0, 2.0, 3180.447, 1976.9, 348.73, 518.108, 2193.1, 30.69, 151.3, 3.03, 5.7, 189.242, 2.75, 0.29), + (1963.0, 3.0, 3240.332, 2003.8, 360.102, 546.893, 2217.9, 30.75, 152.6, 3.38, 5.5, 190.028, 0.78, 2.6), + (1963.0, 4.0, 3264.967, 2020.6, 364.534, 532.383, 2254.6, 30.94, 153.7, 3.52, 5.6, 190.668, 2.46, 1.06), + (1964.0, 1.0, 3338.246, 2060.5, 379.523, 529.686, 2299.6, 30.95, 154.8, 3.51, 5.5, 191.245, 0.13, 3.38), + (1964.0, 2.0, 3376.587, 2096.7, 377.778, 526.175, 2362.1, 31.02, 156.8, 3.47, 5.2, 191.889, 0.9, 2.57), + (1964.0, 3.0, 3422.469, 2135.2, 386.754, 522.008, 2392.7, 31.12, 159.2, 3.53, 5.0, 192.631, 1.29, 2.25), + (1964.0, 4.0, 3431.957, 2141.2, 389.91, 514.603, 2420.4, 31.28, 160.7, 3.76, 5.0, 193.223, 2.05, 1.71), + (1965.0, 1.0, 3516.251, 2188.8, 429.145, 508.006, 2447.4, 31.38, 162.0, 3.93, 4.9, 193.709, 1.28, 2.65), + (1965.0, 2.0, 3563.96, 2213.0, 429.119, 508.931, 2474.5, 31.58, 163.1, 3.84, 4.7, 194.303, 2.54, 1.3), + (1965.0, 3.0, 3636.285, 2251.0, 444.444, 529.446, 2542.6, 31.65, 166.0, 3.93, 4.4, 194.997, 0.89, 3.04), + (1965.0, 4.0, 3724.014, 2314.3, 446.493, 544.121, 2594.1, 31.88, 169.1, 4.35, 4.1, 195.539, 2.9, 1.46), + (1966.0, 1.0, 3815.423, 2348.5, 484.244, 556.593, 2618.4, 32.28, 171.8, 4.62, 3.9, 195.999, 4.99, -0.37), + (1966.0, 2.0, 3828.124, 2354.5, 475.408, 571.371, 2624.7, 32.45, 170.3, 4.65, 3.8, 196.56, 2.1, 2.55), + (1966.0, 3.0, 3853.301, 2381.5, 470.697, 594.514, 2657.8, 32.85, 171.2, 5.23, 3.8, 197.207, 4.9, 0.33), + (1966.0, 4.0, 3884.52, 2391.4, 472.957, 599.528, 2688.2, 32.9, 171.9, 5.0, 3.7, 197.736, 0.61, 4.39), + (1967.0, 1.0, 3918.74, 2405.3, 460.007, 640.682, 2728.4, 33.1, 174.2, 4.22, 3.8, 198.206, 2.42, 1.8), + (1967.0, 2.0, 3919.556, 2438.1, 440.393, 631.43, 2750.8, 33.4, 178.1, 3.78, 3.8, 198.712, 3.61, 0.17), + (1967.0, 3.0, 3950.826, 2450.6, 453.033, 641.504, 2777.1, 33.7, 181.6, 4.42, 3.8, 199.311, 3.58, 0.84), + (1967.0, 4.0, 3980.97, 2465.7, 462.834, 640.234, 2797.4, 34.1, 184.3, 4.9, 3.9, 199.808, 4.72, 0.18), + (1968.0, 1.0, 4063.013, 2524.6, 472.907, 651.378, 2846.2, 34.4, 186.6, 5.18, 3.7, 200.208, 3.5, 1.67), + (1968.0, 2.0, 4131.998, 2563.3, 492.026, 646.145, 2893.5, 34.9, 190.5, 5.5, 3.5, 200.706, 5.77, -0.28), + (1968.0, 3.0, 4160.267, 2611.5, 476.053, 640.615, 2899.3, 35.3, 194.0, 5.21, 3.5, 201.29, 4.56, 0.65), + (1968.0, 4.0, 4178.293, 2623.5, 480.998, 636.729, 2918.4, 35.7, 198.7, 5.85, 3.4, 201.76, 4.51, 1.34), + (1969.0, 1.0, 4244.1, 2652.9, 512.686, 633.224, 2923.4, 36.3, 200.7, 6.08, 3.4, 202.161, 6.67, -0.58), + (1969.0, 2.0, 4256.46, 2669.8, 508.601, 623.16, 2952.9, 36.8, 201.7, 6.49, 3.4, 202.677, 5.47, 1.02), + (1969.0, 3.0, 4283.378, 2682.7, 520.36, 623.613, 3012.9, 37.3, 202.9, 7.02, 3.6, 203.302, 5.4, 1.63), + (1969.0, 4.0, 4263.261, 2704.1, 492.334, 606.9, 3034.9, 37.9, 206.2, 7.64, 3.6, 203.849, 6.38, 1.26), + (1970.0, 1.0, 4256.573, 2720.7, 476.925, 594.888, 3050.1, 38.5, 206.7, 6.76, 4.2, 204.401, 6.28, 0.47), + (1970.0, 2.0, 4264.289, 2733.2, 478.419, 576.257, 3103.5, 38.9, 208.0, 6.66, 4.8, 205.052, 4.13, 2.52), + (1970.0, 3.0, 4302.259, 2757.1, 486.594, 567.743, 3145.4, 39.4, 212.9, 6.15, 5.2, 205.788, 5.11, 1.04), + (1970.0, 4.0, 4256.637, 2749.6, 458.406, 564.666, 3135.1, 39.9, 215.5, 4.86, 5.8, 206.466, 5.04, -0.18), + (1971.0, 1.0, 4374.016, 2802.2, 517.935, 542.709, 3197.3, 40.1, 220.0, 3.65, 5.9, 207.065, 2.0, 1.65), + (1971.0, 2.0, 4398.829, 2827.9, 533.986, 534.905, 3245.3, 40.6, 224.9, 4.76, 5.9, 207.661, 4.96, -0.19), + (1971.0, 3.0, 4433.943, 2850.4, 541.01, 532.646, 3259.7, 40.9, 227.2, 4.7, 6.0, 208.345, 2.94, 1.75), + (1971.0, 4.0, 4446.264, 2897.8, 524.085, 516.14, 3294.2, 41.2, 230.1, 3.87, 6.0, 208.917, 2.92, 0.95), + (1972.0, 1.0, 4525.769, 2936.5, 561.147, 518.192, 3314.9, 41.5, 235.6, 3.55, 5.8, 209.386, 2.9, 0.64), + (1972.0, 2.0, 4633.101, 2992.6, 595.495, 526.473, 3346.1, 41.8, 238.8, 3.86, 5.7, 209.896, 2.88, 0.98), + (1972.0, 3.0, 4677.503, 3038.8, 603.97, 498.116, 3414.6, 42.2, 245.0, 4.47, 5.6, 210.479, 3.81, 0.66), + (1972.0, 4.0, 4754.546, 3110.1, 607.104, 496.54, 3550.5, 42.7, 251.5, 5.09, 5.3, 210.985, 4.71, 0.38), + (1973.0, 1.0, 4876.166, 3167.0, 645.654, 504.838, 3590.7, 43.7, 252.7, 5.98, 5.0, 211.42, 9.26, -3.28), + (1973.0, 2.0, 4932.571, 3165.4, 675.837, 497.033, 3626.2, 44.2, 257.5, 7.19, 4.9, 211.909, 4.55, 2.64), + (1973.0, 3.0, 4906.252, 3176.7, 649.412, 475.897, 3644.4, 45.6, 259.0, 8.06, 4.8, 212.475, 12.47, -4.41), + (1973.0, 4.0, 4953.05, 3167.4, 674.253, 476.174, 3688.9, 46.8, 263.8, 7.68, 4.8, 212.932, 10.39, -2.71), + (1974.0, 1.0, 4909.617, 3139.7, 631.23, 491.043, 3632.3, 48.1, 267.2, 7.8, 5.1, 213.361, 10.96, -3.16), + (1974.0, 2.0, 4922.188, 3150.6, 628.102, 490.177, 3601.1, 49.3, 269.3, 7.89, 5.2, 213.854, 9.86, -1.96), + (1974.0, 3.0, 4873.52, 3163.6, 592.672, 492.586, 3612.4, 51.0, 272.3, 8.16, 5.6, 214.451, 13.56, -5.4), + (1974.0, 4.0, 4854.34, 3117.3, 598.306, 496.176, 3596.0, 52.3, 273.9, 6.96, 6.6, 214.931, 10.07, -3.11), + (1975.0, 1.0, 4795.295, 3143.4, 493.212, 490.603, 3581.9, 53.0, 276.2, 5.53, 8.2, 215.353, 5.32, 0.22), + (1975.0, 2.0, 4831.942, 3195.8, 476.085, 486.679, 3749.3, 54.0, 283.7, 5.57, 8.9, 215.973, 7.48, -1.91), + (1975.0, 3.0, 4913.328, 3241.4, 516.402, 498.836, 3698.6, 54.9, 285.4, 6.27, 8.5, 216.587, 6.61, -0.34), + (1975.0, 4.0, 4977.511, 3275.7, 530.596, 500.141, 3736.0, 55.8, 288.4, 5.26, 8.3, 217.095, 6.5, -1.24), + (1976.0, 1.0, 5090.663, 3341.2, 585.541, 495.568, 3791.0, 56.1, 294.7, 4.91, 7.7, 217.528, 2.14, 2.77), + (1976.0, 2.0, 5128.947, 3371.8, 610.513, 494.532, 3822.2, 57.0, 297.2, 5.28, 7.6, 218.035, 6.37, -1.09), + (1976.0, 3.0, 5154.072, 3407.5, 611.646, 493.141, 3856.7, 57.9, 302.0, 5.05, 7.7, 218.644, 6.27, -1.22), + (1976.0, 4.0, 5191.499, 3451.8, 615.898, 494.415, 3884.4, 58.7, 308.3, 4.57, 7.8, 219.179, 5.49, -0.92), + (1977.0, 1.0, 5251.762, 3491.3, 646.198, 498.509, 3887.5, 60.0, 316.0, 4.6, 7.5, 219.684, 8.76, -4.16), + (1977.0, 2.0, 5356.131, 3510.6, 696.141, 506.695, 3931.8, 60.8, 320.2, 5.06, 7.1, 220.239, 5.3, -0.24), + (1977.0, 3.0, 5451.921, 3544.1, 734.078, 509.605, 3990.8, 61.6, 326.4, 5.82, 6.9, 220.904, 5.23, 0.59), + (1977.0, 4.0, 5450.793, 3597.5, 713.356, 504.584, 4071.2, 62.7, 334.4, 6.2, 6.6, 221.477, 7.08, -0.88), + (1978.0, 1.0, 5469.405, 3618.5, 727.504, 506.314, 4096.4, 63.9, 339.9, 6.34, 6.3, 221.991, 7.58, -1.24), + (1978.0, 2.0, 5684.569, 3695.9, 777.454, 518.366, 4143.4, 65.5, 347.6, 6.72, 6.0, 222.585, 9.89, -3.18), + (1978.0, 3.0, 5740.3, 3711.4, 801.452, 520.199, 4177.1, 67.1, 353.3, 7.64, 6.0, 223.271, 9.65, -2.01), + (1978.0, 4.0, 5816.222, 3741.3, 819.689, 524.782, 4209.8, 68.5, 358.6, 9.02, 5.9, 223.865, 8.26, 0.76), + (1979.0, 1.0, 5825.949, 3760.2, 819.556, 525.524, 4255.9, 70.6, 368.0, 9.42, 5.9, 224.438, 12.08, -2.66), + (1979.0, 2.0, 5831.418, 3758.0, 817.66, 532.04, 4226.1, 73.0, 377.2, 9.3, 5.7, 225.055, 13.37, -4.07), + (1979.0, 3.0, 5873.335, 3794.9, 801.742, 531.232, 4250.3, 75.2, 380.8, 10.49, 5.9, 225.801, 11.88, -1.38), + (1979.0, 4.0, 5889.495, 3805.0, 786.817, 531.126, 4284.3, 78.0, 385.8, 11.94, 5.9, 226.451, 14.62, -2.68), + (1980.0, 1.0, 5908.467, 3798.4, 781.114, 548.115, 4296.2, 80.9, 383.8, 13.75, 6.3, 227.061, 14.6, -0.85), + (1980.0, 2.0, 5787.373, 3712.2, 710.64, 561.895, 4236.1, 82.6, 394.0, 7.9, 7.3, 227.726, 8.32, -0.42), + (1980.0, 3.0, 5776.617, 3752.0, 656.477, 554.292, 4279.7, 84.7, 409.0, 10.34, 7.7, 228.417, 10.04, 0.3), + (1980.0, 4.0, 5883.46, 3802.0, 723.22, 556.13, 4368.1, 87.2, 411.3, 14.75, 7.4, 228.937, 11.64, 3.11), + (1981.0, 1.0, 6005.717, 3822.8, 795.091, 567.618, 4358.1, 89.1, 427.4, 13.95, 7.4, 229.403, 8.62, 5.32), + (1981.0, 2.0, 5957.795, 3822.8, 757.24, 584.54, 4358.6, 91.5, 426.9, 15.33, 7.4, 229.966, 10.63, 4.69), + (1981.0, 3.0, 6030.184, 3838.3, 804.242, 583.89, 4455.4, 93.4, 428.4, 14.58, 7.4, 230.641, 8.22, 6.36), + (1981.0, 4.0, 5955.062, 3809.3, 773.053, 590.125, 4464.4, 94.4, 442.7, 11.33, 8.2, 231.157, 4.26, 7.07), + (1982.0, 1.0, 5857.333, 3833.9, 692.514, 591.043, 4469.6, 95.0, 447.1, 12.95, 8.8, 231.645, 2.53, 10.42), + (1982.0, 2.0, 5889.074, 3847.7, 691.9, 596.403, 4500.8, 97.5, 448.0, 11.97, 9.4, 232.188, 10.39, 1.58), + (1982.0, 3.0, 5866.37, 3877.2, 683.825, 605.37, 4520.6, 98.1, 464.5, 8.1, 9.9, 232.816, 2.45, 5.65), + (1982.0, 4.0, 5871.001, 3947.9, 622.93, 623.307, 4536.4, 97.9, 477.2, 7.96, 10.7, 233.322, -0.82, 8.77), + (1983.0, 1.0, 5944.02, 3986.6, 645.11, 630.873, 4572.2, 98.8, 493.2, 8.22, 10.4, 233.781, 3.66, 4.56), + (1983.0, 2.0, 6077.619, 4065.7, 707.372, 644.322, 4605.5, 99.8, 507.8, 8.69, 10.1, 234.307, 4.03, 4.66), + (1983.0, 3.0, 6197.468, 4137.6, 754.937, 662.412, 4674.7, 100.8, 517.2, 8.99, 9.4, 234.907, 3.99, 5.01), + (1983.0, 4.0, 6325.574, 4203.2, 834.427, 639.197, 4771.1, 102.1, 525.1, 8.89, 8.5, 235.385, 5.13, 3.76), + (1984.0, 1.0, 6448.264, 4239.2, 921.763, 644.635, 4875.4, 103.3, 535.0, 9.43, 7.9, 235.839, 4.67, 4.76), + (1984.0, 2.0, 6559.594, 4299.9, 952.841, 664.839, 4959.4, 104.1, 540.9, 9.94, 7.5, 236.348, 3.09, 6.85), + (1984.0, 3.0, 6623.343, 4333.0, 974.989, 662.294, 5036.6, 105.1, 543.7, 10.19, 7.4, 236.976, 3.82, 6.37), + (1984.0, 4.0, 6677.264, 4390.1, 958.993, 684.282, 5084.5, 105.7, 557.0, 8.14, 7.3, 237.468, 2.28, 5.87), + (1985.0, 1.0, 6740.275, 4464.6, 927.375, 691.613, 5072.0, 107.0, 570.4, 8.25, 7.3, 237.9, 4.89, 3.36), + (1985.0, 2.0, 6797.344, 4505.2, 943.383, 708.524, 5172.7, 107.7, 589.1, 7.17, 7.3, 238.466, 2.61, 4.56), + (1985.0, 3.0, 6903.523, 4590.8, 932.959, 732.305, 5140.7, 108.5, 607.8, 7.13, 7.2, 239.113, 2.96, 4.17), + (1985.0, 4.0, 6955.918, 4600.9, 969.434, 732.026, 5193.9, 109.9, 621.4, 7.14, 7.0, 239.638, 5.13, 2.01), + (1986.0, 1.0, 7022.757, 4639.3, 967.442, 728.125, 5255.8, 108.7, 641.0, 6.56, 7.0, 240.094, -4.39, 10.95), + (1986.0, 2.0, 7050.969, 4688.7, 945.972, 751.334, 5315.5, 109.5, 670.3, 6.06, 7.2, 240.651, 2.93, 3.13), + (1986.0, 3.0, 7118.95, 4770.7, 916.315, 779.77, 5343.3, 110.2, 694.9, 5.31, 7.0, 241.274, 2.55, 2.76), + (1986.0, 4.0, 7153.359, 4799.4, 917.736, 767.671, 5346.5, 111.4, 730.2, 5.44, 6.8, 241.784, 4.33, 1.1), + (1987.0, 1.0, 7193.019, 4792.1, 945.776, 772.247, 5379.4, 112.7, 743.9, 5.61, 6.6, 242.252, 4.64, 0.97), + (1987.0, 2.0, 7269.51, 4856.3, 947.1, 782.962, 5321.0, 113.8, 743.0, 5.67, 6.3, 242.804, 3.89, 1.79), + (1987.0, 3.0, 7332.558, 4910.4, 948.055, 783.804, 5416.2, 115.0, 756.2, 6.19, 6.0, 243.446, 4.2, 1.99), + (1987.0, 4.0, 7458.022, 4922.2, 1021.98, 795.467, 5493.1, 116.0, 756.2, 5.76, 5.9, 243.981, 3.46, 2.29), + (1988.0, 1.0, 7496.6, 5004.4, 964.398, 773.851, 5562.1, 117.2, 768.1, 5.76, 5.7, 244.445, 4.12, 1.64), + (1988.0, 2.0, 7592.881, 5040.8, 987.858, 765.98, 5614.3, 118.5, 781.4, 6.48, 5.5, 245.021, 4.41, 2.07), + (1988.0, 3.0, 7632.082, 5080.6, 994.204, 760.245, 5657.5, 119.9, 783.3, 7.22, 5.5, 245.693, 4.7, 2.52), + (1988.0, 4.0, 7733.991, 5140.4, 1007.371, 783.065, 5708.5, 121.2, 785.7, 8.03, 5.3, 246.224, 4.31, 3.72), + (1989.0, 1.0, 7806.603, 5159.3, 1045.975, 767.024, 5773.4, 123.1, 779.2, 8.67, 5.2, 246.721, 6.22, 2.44), + (1989.0, 2.0, 7865.016, 5182.4, 1033.753, 784.275, 5749.8, 124.5, 777.8, 8.15, 5.2, 247.342, 4.52, 3.63), + (1989.0, 3.0, 7927.393, 5236.1, 1021.604, 791.819, 5787.0, 125.4, 786.6, 7.76, 5.3, 248.067, 2.88, 4.88), + (1989.0, 4.0, 7944.697, 5261.7, 1011.119, 787.844, 5831.3, 127.5, 795.4, 7.65, 5.4, 248.659, 6.64, 1.01), + (1990.0, 1.0, 8027.693, 5303.3, 1021.07, 799.681, 5875.1, 128.9, 806.2, 7.8, 5.3, 249.306, 4.37, 3.44), + (1990.0, 2.0, 8059.598, 5320.8, 1021.36, 800.639, 5913.9, 130.5, 810.1, 7.7, 5.3, 250.132, 4.93, 2.76), + (1990.0, 3.0, 8059.476, 5341.0, 997.319, 793.513, 5918.1, 133.4, 819.8, 7.33, 5.7, 251.057, 8.79, -1.46), + (1990.0, 4.0, 7988.864, 5299.5, 934.248, 800.525, 5878.2, 134.7, 827.2, 6.67, 6.1, 251.889, 3.88, 2.79), + (1991.0, 1.0, 7950.164, 5284.4, 896.21, 806.775, 5896.3, 135.1, 843.2, 5.83, 6.6, 252.643, 1.19, 4.65), + (1991.0, 2.0, 8003.822, 5324.7, 891.704, 809.081, 5941.1, 136.2, 861.5, 5.54, 6.8, 253.493, 3.24, 2.29), + (1991.0, 3.0, 8037.538, 5345.0, 913.904, 793.987, 5953.6, 137.2, 878.0, 5.18, 6.9, 254.435, 2.93, 2.25), + (1991.0, 4.0, 8069.046, 5342.6, 948.891, 778.378, 5992.4, 138.3, 910.4, 4.14, 7.1, 255.214, 3.19, 0.95), + (1992.0, 1.0, 8157.616, 5434.5, 927.796, 778.568, 6082.9, 139.4, 943.8, 3.88, 7.4, 255.992, 3.17, 0.71), + (1992.0, 2.0, 8244.294, 5466.7, 988.912, 777.762, 6129.5, 140.5, 963.2, 3.5, 7.6, 256.894, 3.14, 0.36), + (1992.0, 3.0, 8329.361, 5527.1, 999.135, 786.639, 6160.6, 141.7, 1003.8, 2.97, 7.6, 257.861, 3.4, -0.44), + (1992.0, 4.0, 8417.016, 5594.6, 1030.758, 787.064, 6248.2, 142.8, 1030.4, 3.12, 7.4, 258.679, 3.09, 0.02), + (1993.0, 1.0, 8432.485, 5617.2, 1054.979, 762.901, 6156.5, 143.8, 1047.6, 2.92, 7.2, 259.414, 2.79, 0.13), + (1993.0, 2.0, 8486.435, 5671.1, 1063.263, 752.158, 6252.3, 144.5, 1084.5, 3.02, 7.1, 260.255, 1.94, 1.08), + (1993.0, 3.0, 8531.108, 5732.7, 1062.514, 744.227, 6265.7, 145.6, 1113.0, 3.0, 6.8, 261.163, 3.03, -0.04), + (1993.0, 4.0, 8643.769, 5783.7, 1118.583, 748.102, 6358.1, 146.3, 1131.6, 3.05, 6.6, 261.919, 1.92, 1.13), + (1994.0, 1.0, 8727.919, 5848.1, 1166.845, 721.288, 6332.6, 147.2, 1141.1, 3.48, 6.6, 262.631, 2.45, 1.02), + (1994.0, 2.0, 8847.303, 5891.5, 1234.855, 717.197, 6440.6, 148.4, 1150.5, 4.2, 6.2, 263.436, 3.25, 0.96), + (1994.0, 3.0, 8904.289, 5938.7, 1212.655, 736.89, 6487.9, 149.4, 1150.1, 4.68, 6.0, 264.301, 2.69, 2.0), + (1994.0, 4.0, 9003.18, 5997.3, 1269.19, 716.702, 6574.0, 150.5, 1151.4, 5.53, 5.6, 265.044, 2.93, 2.6), + (1995.0, 1.0, 9025.267, 6004.3, 1282.09, 715.326, 6616.6, 151.8, 1149.3, 5.72, 5.5, 265.755, 3.44, 2.28), + (1995.0, 2.0, 9044.668, 6053.5, 1247.61, 712.492, 6617.2, 152.6, 1145.4, 5.52, 5.7, 266.557, 2.1, 3.42), + (1995.0, 3.0, 9120.684, 6107.6, 1235.601, 707.649, 6666.8, 153.5, 1137.3, 5.32, 5.7, 267.456, 2.35, 2.97), + (1995.0, 4.0, 9184.275, 6150.6, 1270.392, 681.081, 6706.2, 154.7, 1123.5, 5.17, 5.6, 268.151, 3.11, 2.05), + (1996.0, 1.0, 9247.188, 6206.9, 1287.128, 695.265, 6777.7, 156.1, 1124.8, 4.91, 5.5, 268.853, 3.6, 1.31), + (1996.0, 2.0, 9407.052, 6277.1, 1353.795, 705.172, 6850.6, 157.0, 1112.4, 5.09, 5.5, 269.667, 2.3, 2.79), + (1996.0, 3.0, 9488.879, 6314.6, 1422.059, 692.741, 6908.9, 158.2, 1086.1, 5.04, 5.3, 270.581, 3.05, 2.0), + (1996.0, 4.0, 9592.458, 6366.1, 1418.193, 690.744, 6946.8, 159.4, 1081.5, 4.99, 5.3, 271.36, 3.02, 1.97), + (1997.0, 1.0, 9666.235, 6430.2, 1451.304, 681.445, 7008.9, 159.9, 1063.8, 5.1, 5.2, 272.083, 1.25, 3.85), + (1997.0, 2.0, 9809.551, 6456.2, 1543.976, 693.525, 7061.5, 160.4, 1066.2, 5.01, 5.0, 272.912, 1.25, 3.76), + (1997.0, 3.0, 9932.672, 6566.0, 1571.426, 691.261, 7142.4, 161.5, 1065.5, 5.02, 4.9, 273.852, 2.73, 2.29), + (1997.0, 4.0, 10008.874, 6641.1, 1596.523, 690.311, 7241.5, 162.0, 1074.4, 5.11, 4.7, 274.626, 1.24, 3.88), + (1998.0, 1.0, 10103.425, 6707.2, 1672.732, 668.783, 7406.2, 162.2, 1076.1, 5.02, 4.6, 275.304, 0.49, 4.53), + (1998.0, 2.0, 10194.277, 6822.6, 1652.716, 687.184, 7512.0, 163.2, 1075.0, 4.98, 4.4, 276.115, 2.46, 2.52), + (1998.0, 3.0, 10328.787, 6913.1, 1700.071, 681.472, 7591.0, 163.9, 1086.0, 4.49, 4.5, 277.003, 1.71, 2.78), + (1998.0, 4.0, 10507.575, 7019.1, 1754.743, 688.147, 7646.5, 164.7, 1097.8, 4.38, 4.4, 277.79, 1.95, 2.43), + (1999.0, 1.0, 10601.179, 7088.3, 1809.993, 683.601, 7698.4, 165.9, 1101.9, 4.39, 4.3, 278.451, 2.9, 1.49), + (1999.0, 2.0, 10684.049, 7199.9, 1803.674, 683.594, 7716.0, 166.7, 1098.7, 4.54, 4.3, 279.295, 1.92, 2.62), + (1999.0, 3.0, 10819.914, 7286.4, 1848.949, 697.936, 7765.9, 168.1, 1102.3, 4.75, 4.2, 280.203, 3.35, 1.41), + (1999.0, 4.0, 11014.254, 7389.2, 1914.567, 713.445, 7887.7, 169.3, 1121.9, 5.2, 4.1, 280.976, 2.85, 2.35), + (2000.0, 1.0, 11043.044, 7501.3, 1887.836, 685.216, 8053.4, 170.9, 1113.5, 5.63, 4.0, 281.653, 3.76, 1.87), + (2000.0, 2.0, 11258.454, 7571.8, 2018.529, 712.641, 8135.9, 172.7, 1103.0, 5.81, 3.9, 282.385, 4.19, 1.62), + (2000.0, 3.0, 11267.867, 7645.9, 1986.956, 698.827, 8222.3, 173.9, 1098.7, 6.07, 4.0, 283.19, 2.77, 3.3), + (2000.0, 4.0, 11334.544, 7713.5, 1987.845, 695.597, 8234.6, 175.6, 1097.7, 5.7, 3.9, 283.9, 3.89, 1.81), + (2001.0, 1.0, 11297.171, 7744.3, 1882.691, 710.403, 8296.5, 176.4, 1114.9, 4.39, 4.2, 284.55, 1.82, 2.57), + (2001.0, 2.0, 11371.251, 7773.5, 1876.65, 725.623, 8273.7, 177.4, 1139.7, 3.54, 4.4, 285.267, 2.26, 1.28), + (2001.0, 3.0, 11340.075, 7807.7, 1837.074, 730.493, 8484.5, 177.6, 1166.0, 2.72, 4.8, 286.047, 0.45, 2.27), + (2001.0, 4.0, 11380.128, 7930.0, 1731.189, 739.318, 8385.5, 177.7, 1190.9, 1.74, 5.5, 286.728, 0.23, 1.51), + (2002.0, 1.0, 11477.868, 7957.3, 1789.327, 756.915, 8611.6, 179.3, 1185.9, 1.75, 5.7, 287.328, 3.59, -1.84), + (2002.0, 2.0, 11538.77, 7997.8, 1810.779, 774.408, 8658.9, 180.0, 1199.5, 1.7, 5.8, 288.028, 1.56, 0.14), + (2002.0, 3.0, 11596.43, 8052.0, 1814.531, 786.673, 8629.2, 181.2, 1204.0, 1.61, 5.7, 288.783, 2.66, -1.05), + (2002.0, 4.0, 11598.824, 8080.6, 1813.219, 799.967, 8649.6, 182.6, 1226.8, 1.2, 5.8, 289.421, 3.08, -1.88), + (2003.0, 1.0, 11645.819, 8122.3, 1813.141, 800.196, 8681.3, 183.2, 1248.4, 1.14, 5.9, 290.019, 1.31, -0.17), + (2003.0, 2.0, 11738.706, 8197.8, 1823.698, 838.775, 8812.5, 183.7, 1287.9, 0.96, 6.2, 290.704, 1.09, -0.13), + (2003.0, 3.0, 11935.461, 8312.1, 1889.883, 839.598, 8935.4, 184.9, 1297.3, 0.94, 6.1, 291.449, 2.6, -1.67), + (2003.0, 4.0, 12042.817, 8358.0, 1959.783, 845.722, 8986.4, 186.3, 1306.1, 0.9, 5.8, 292.057, 3.02, -2.11), + (2004.0, 1.0, 12127.623, 8437.6, 1970.015, 856.57, 9025.9, 187.4, 1332.1, 0.94, 5.7, 292.635, 2.35, -1.42), + (2004.0, 2.0, 12213.818, 8483.2, 2055.58, 861.44, 9115.0, 189.1, 1340.5, 1.21, 5.6, 293.31, 3.61, -2.41), + (2004.0, 3.0, 12303.533, 8555.8, 2082.231, 876.385, 9175.9, 190.8, 1361.0, 1.63, 5.4, 294.066, 3.58, -1.95), + (2004.0, 4.0, 12410.282, 8654.2, 2125.152, 865.596, 9303.4, 191.8, 1366.6, 2.2, 5.4, 294.741, 2.09, 0.11), + (2005.0, 1.0, 12534.113, 8719.0, 2170.299, 869.204, 9189.6, 193.8, 1357.8, 2.69, 5.3, 295.308, 4.15, -1.46), + (2005.0, 2.0, 12587.535, 8802.9, 2131.468, 870.044, 9253.0, 194.7, 1366.6, 3.01, 5.1, 295.994, 1.85, 1.16), + (2005.0, 3.0, 12683.153, 8865.6, 2154.949, 890.394, 9308.0, 199.2, 1375.0, 3.52, 5.0, 296.77, 9.14, -5.62), + (2005.0, 4.0, 12748.699, 8888.5, 2232.193, 875.557, 9358.7, 199.4, 1380.6, 4.0, 4.9, 297.435, 0.4, 3.6), + (2006.0, 1.0, 12915.938, 8986.6, 2264.721, 900.511, 9533.8, 200.7, 1380.5, 4.51, 4.7, 298.061, 2.6, 1.91), + (2006.0, 2.0, 12962.462, 9035.0, 2261.247, 892.839, 9617.3, 202.7, 1369.2, 4.82, 4.7, 298.766, 3.97, 0.85), + (2006.0, 3.0, 12965.916, 9090.7, 2229.636, 892.002, 9662.5, 201.9, 1369.4, 4.9, 4.7, 299.593, -1.58, 6.48), + (2006.0, 4.0, 13060.679, 9181.6, 2165.966, 894.404, 9788.8, 203.574, 1373.6, 4.92, 4.4, 300.32, 3.3, 1.62), + (2007.0, 1.0, 13099.901, 9265.1, 2132.609, 882.766, 9830.2, 205.92, 1379.7, 4.95, 4.5, 300.977, 4.58, 0.36), + (2007.0, 2.0, 13203.977, 9291.5, 2162.214, 898.713, 9842.7, 207.338, 1370.0, 4.72, 4.5, 301.714, 2.75, 1.97), + (2007.0, 3.0, 13321.109, 9335.6, 2166.491, 918.983, 9883.9, 209.133, 1379.2, 4.0, 4.7, 302.509, 3.45, 0.55), + (2007.0, 4.0, 13391.249, 9363.6, 2123.426, 925.11, 9886.2, 212.495, 1377.4, 3.01, 4.8, 303.204, 6.38, -3.37), + (2008.0, 1.0, 13366.865, 9349.6, 2082.886, 943.372, 9826.8, 213.997, 1384.0, 1.56, 4.9, 303.803, 2.82, -1.26), + (2008.0, 2.0, 13415.266, 9351.0, 2026.518, 961.28, 10059.0, 218.61, 1409.3, 1.74, 5.4, 304.483, 8.53, -6.79), + (2008.0, 3.0, 13324.6, 9267.7, 1990.693, 991.551, 9838.3, 216.889, 1474.7, 1.17, 6.0, 305.27, -3.16, 4.33), + (2008.0, 4.0, 13141.92, 9195.3, 1857.661, 1007.273, 9920.4, 212.174, 1576.5, 0.12, 6.9, 305.952, -8.79, 8.91), + (2009.0, 1.0, 12925.41, 9209.2, 1558.494, 996.287, 9926.4, 212.671, 1592.8, 0.22, 8.1, 306.547, 0.94, -0.71), + (2009.0, 2.0, 12901.504, 9189.0, 1456.678, 1023.528, 10077.5, 214.469, 1653.6, 0.18, 9.2, 307.226, 3.37, -3.19), + (2009.0, 3.0, 12990.341, 9256.0, 1486.398, 1044.088, 10040.6, 216.385, 1673.9, 0.12, 9.6, 308.013, 3.56, -3.44)], + dtype=[('year', 'i4'), ('quarter', 'i2'), ('realgdp', 'f4'), + ('realcons', 'f4'), ('realinv', 'f4'), ('realgovt', 'f4'), + ('realdpi', 'f4'), ('cpi', 'f4'), ('m1', 'f4'), ('tbilrate', 'f4'), + ('unemp', 'f4'), ('pop', 'f4'), ('infl', 'f4'), ('realint', 'f4')]) diff --git a/statsmodels/iolib/tests/results/time_series_examples.dta b/statsmodels/iolib/tests/results/time_series_examples.dta new file mode 100644 index 0000000000000000000000000000000000000000..19a45a189c722fb0754ff1855aca053c01eef0bf GIT binary patch literal 1760 zcmXS7Vr1Z8U}69QqeoA9K{OCJZ#H!R(Fw9A!Sr(vUN8+30|A9+Cmg^GD8UY;O%{ZL z#WO2892gWV6#SD*6pRcEjT8(mtc*<<{{R2;=g;roe^L@lQcE&(Q{$774MAeV6(nV* zV^suFfTSLiS)Q7jol_Z)TU~B`UP%T%6@{gVMJ1_4xRqoi=A^|}rY7Q4f=>?9#b6QD zl4J&hbR3e{gjGwNN!5_TK#BznswL&5YRDy3Lm{aeGDy`>Nty<1K|LbH?4>|pe07!r|efawPa zG;Y3aFLh#QSorD 2510.2491 (stata) -> 2710.34912109375 + # (dta/ndarray) + from .results.macrodata import macrodata_result as res2 + res1 = genfromdta(curdir+'/../../datasets/macrodata/macrodata.dta') + assert_array_equal(res1 == res2, True) + +def test_genfromdta_pandas(): + from pandas.util.testing import assert_frame_equal + dta = macrodata.load_pandas().data + curdir = os.path.dirname(os.path.abspath(__file__)) + res1 = sm.iolib.genfromdta(curdir+'/../../datasets/macrodata/macrodata.dta', + pandas=True) + res1 = res1.astype(float) + assert_frame_equal(res1, dta) + +def test_stata_writer_structured(): + buf = BytesIO() + dta = macrodata.load().data + dtype = dta.dtype + dta = dta.astype(np.dtype([('year', int), + ('quarter', int)] + dtype.descr[2:])) + writer = StataWriter(buf, dta) + writer.write_file() + buf.seek(0) + dta2 = genfromdta(buf) + assert_array_equal(dta, dta2) + +def test_stata_writer_array(): + buf = BytesIO() + dta = macrodata.load().data + dta = DataFrame.from_records(dta) + dta.columns = ["v%d" % i for i in range(1,15)] + writer = StataWriter(buf, dta.values) + writer.write_file() + buf.seek(0) + dta2 = genfromdta(buf) + dta = dta.to_records(index=False) + assert_array_equal(dta, dta2) + +def test_missing_roundtrip(): + buf = BytesIO() + dta = np.array([(np.nan, np.inf, "")], + dtype=[("double_miss", float), ("float_miss", np.float32), + ("string_miss", "a1")]) + writer = StataWriter(buf, dta) + writer.write_file() + buf.seek(0) + dta = genfromdta(buf, missing_flt=np.nan) + assert_(isnull(dta[0][0])) + assert_(isnull(dta[0][1])) + assert_(dta[0][2] == asbytes("")) + + dta = genfromdta(os.path.join(curdir, "results/data_missing.dta"), + missing_flt=-999) + assert_(np.all([dta[0][i] == -999 for i in range(5)])) + +def test_stata_writer_pandas(): + buf = BytesIO() + dta = macrodata.load().data + dtype = dta.dtype + #as of 0.9.0 pandas only supports i8 and f8 + dta = dta.astype(np.dtype([('year', 'i8'), + ('quarter', 'i8')] + dtype.descr[2:])) + dta4 = dta.astype(np.dtype([('year', 'i4'), + ('quarter', 'i4')] + dtype.descr[2:])) + dta = DataFrame.from_records(dta) + dta4 = DataFrame.from_records(dta4) + # dta is int64 'i8' given to Stata writer + writer = StataWriter(buf, dta) + writer.write_file() + buf.seek(0) + dta2 = genfromdta(buf) + dta5 = DataFrame.from_records(dta2) + # dta2 is int32 'i4' returned from Stata reader + + if dta5.dtypes[1] is np.dtype('int64'): + ptesting.assert_frame_equal(dta.reset_index(), dta5) + else: + # don't check index because it has different size, int32 versus int64 + ptesting.assert_frame_equal(dta4, dta5[dta5.columns[1:]]) + +def test_stata_writer_unicode(): + # make sure to test with characters outside the latin-1 encoding + pass + +@dec.skipif(pandas_old) +def test_genfromdta_datetime(): + results = [(datetime(2006, 11, 19, 23, 13, 20), 1479596223000, + datetime(2010, 1, 20), datetime(2010, 1, 8), datetime(2010, 1, 1), + datetime(1974, 7, 1), datetime(2010, 1, 1), datetime(2010, 1, 1)), + (datetime(1959, 12, 31, 20, 3, 20), -1479590, datetime(1953, 10, 2), + datetime(1948, 6, 10), datetime(1955, 1, 1), datetime(1955, 7, 1), + datetime(1955, 1, 1), datetime(2, 1, 1))] + with warnings.catch_warnings(record=True) as w: + dta = genfromdta(os.path.join(curdir, "results/time_series_examples.dta")) + assert_(len(w) == 1) # should get a warning for that format. + + assert_array_equal(dta[0].tolist(), results[0]) + assert_array_equal(dta[1].tolist(), results[1]) + + with warnings.catch_warnings(record=True): + dta = genfromdta(os.path.join(curdir, "results/time_series_examples.dta"), + pandas=True) + + assert_array_equal(dta.iloc[0].tolist(), results[0]) + assert_array_equal(dta.iloc[1].tolist(), results[1]) + +def test_date_converters(): + ms = [-1479597200000, -1e6, -1e5, -100, 1e5, 1e6, 1479597200000] + days = [-1e5, -1200, -800, -365, -50, 0, 50, 365, 800, 1200, 1e5] + weeks = [-1e4, -1e2, -53, -52, -51, 0, 51, 52, 53, 1e2, 1e4] + months = [-1e4, -1e3, -100, -13, -12, -11, 0, 11, 12, 13, 100, 1e3, 1e4] + quarter = [-100, -50, -5, -4, -3, 0, 3, 4, 5, 50, 100] + half = [-50, 40, 30, 10, 3, 2, 1, 0, 1, 2, 3, 10, 30, 40, 50] + year = [1, 50, 500, 1000, 1500, 1975, 2075] + for i in ms: + assert_equal(_datetime_to_stata_elapsed( + _stata_elapsed_date_to_datetime(i, "tc"), "tc"), i) + for i in days: + assert_equal(_datetime_to_stata_elapsed( + _stata_elapsed_date_to_datetime(i, "td"), "td"), i) + for i in weeks: + assert_equal(_datetime_to_stata_elapsed( + _stata_elapsed_date_to_datetime(i, "tw"), "tw"), i) + for i in months: + assert_equal(_datetime_to_stata_elapsed( + _stata_elapsed_date_to_datetime(i, "tm"), "tm"), i) + for i in quarter: + assert_equal(_datetime_to_stata_elapsed( + _stata_elapsed_date_to_datetime(i, "tq"), "tq"), i) + for i in half: + assert_equal(_datetime_to_stata_elapsed( + _stata_elapsed_date_to_datetime(i, "th"), "th"), i) + for i in year: + assert_equal(_datetime_to_stata_elapsed( + _stata_elapsed_date_to_datetime(i, "ty"), "ty"), i) + +@dec.skipif(pandas_old) +def test_datetime_roundtrip(): + dta = np.array([(1, datetime(2010, 1, 1), 2), + (2, datetime(2010, 2, 1), 3), + (4, datetime(2010, 3, 1), 5)], + dtype=[('var1', float), ('var2', object), ('var3', float)]) + buf = BytesIO() + writer = StataWriter(buf, dta, {"var2" : "tm"}) + writer.write_file() + buf.seek(0) + dta2 = genfromdta(buf) + assert_equal(dta, dta2) + + dta = DataFrame.from_records(dta) + buf = BytesIO() + writer = StataWriter(buf, dta, {"var2" : "tm"}) + writer.write_file() + buf.seek(0) + dta2 = genfromdta(buf, pandas=True) + ptesting.assert_frame_equal(dta, dta2.drop('index', axis=1)) + + +if __name__ == "__main__": + import nose + nose.runmodule(argv=[__file__,'-vvs','-x','--pdb'], + exit=False) diff --git a/statsmodels/iolib/tests/test_pickle.py b/statsmodels/iolib/tests/test_pickle.py new file mode 100644 index 0000000..4e1732c --- /dev/null +++ b/statsmodels/iolib/tests/test_pickle.py @@ -0,0 +1,28 @@ +from statsmodels.compat.python import lrange, BytesIO +from statsmodels.iolib.smpickle import save_pickle, load_pickle + +def test_pickle(): + import tempfile + from numpy.testing import assert_equal + tmpdir = tempfile.mkdtemp(prefix='pickle') + a = lrange(10) + save_pickle(a, tmpdir+'/res.pkl') + b = load_pickle(tmpdir+'/res.pkl') + assert_equal(a, b) + + #cleanup, tested on Windows + try: + import os + os.remove(tmpdir+'/res.pkl') + os.rmdir(tmpdir) + except (OSError, IOError): + pass + assert not os.path.exists(tmpdir) + + #test with file handle + fh = BytesIO() + save_pickle(a, fh) + fh.seek(0,0) + c = load_pickle(fh) + fh.close() + assert_equal(a,b) diff --git a/statsmodels/iolib/tests/test_summary.py b/statsmodels/iolib/tests/test_summary.py new file mode 100644 index 0000000..5e24277 --- /dev/null +++ b/statsmodels/iolib/tests/test_summary.py @@ -0,0 +1,65 @@ +'''examples to check summary, not converted to tests yet + + +''' +from __future__ import print_function +if __name__ == '__main__': + + from statsmodels.regression.tests.test_regression import TestOLS + + #def mytest(): + aregression = TestOLS() + TestOLS.setupClass() + results = aregression.res1 + r_summary = str(results.summary_old()) + print(r_summary) + olsres = results + + print('\n\n') + + r_summary = str(results.summary()) + print(r_summary) + print('\n\n') + + + from statsmodels.discrete.tests.test_discrete import TestProbitNewton + + aregression = TestProbitNewton() + TestProbitNewton.setupClass() + results = aregression.res1 + r_summary = str(results.summary()) + print(r_summary) + print('\n\n') + + probres = results + + from statsmodels.robust.tests.test_rlm import TestHampel + + aregression = TestHampel() + #TestHampel.setupClass() + results = aregression.res1 + r_summary = str(results.summary()) + print(r_summary) + rlmres = results + + print('\n\n') + + from statsmodels.genmod.tests.test_glm import TestGlmBinomial + + aregression = TestGlmBinomial() + #TestGlmBinomial.setupClass() + results = aregression.res1 + r_summary = str(results.summary()) + print(r_summary) + + #print(results.summary2(return_fmt='latex')) + #print(results.summary2(return_fmt='csv')) + + smry = olsres.summary() + print(smry.as_csv()) + +# import matplotlib.pyplot as plt +# plt.plot(rlmres.model.endog,'o') +# plt.plot(rlmres.fittedvalues,'-') +# +# plt.show() \ No newline at end of file diff --git a/statsmodels/iolib/tests/test_summary_old.py b/statsmodels/iolib/tests/test_summary_old.py new file mode 100644 index 0000000..984dc1f --- /dev/null +++ b/statsmodels/iolib/tests/test_summary_old.py @@ -0,0 +1,80 @@ +from statsmodels.compat.python import zip +import warnings + +def _est_regression_summary(): + #little luck getting this test to pass (It should?), can be used for + #visual testing of the regression.summary table + #fixed, might fail at minute changes + from statsmodels.regression.tests.test_regression import TestOLS + #from test_regression import TestOLS + import time + from string import Template + t = time.localtime() + desired = Template( +''' Summary of Regression Results +======================================= +| Dependent Variable: y| +| Model: OLS| +| Method: Least Squares| +| Date: $XXcurrentXdateXX| +| Time: $XXtimeXXX| +| # obs: 16.0| +| Df residuals: 9.0| +| Df model: 6.0| +============================================================================== +| coefficient std. error t-statistic prob. | +------------------------------------------------------------------------------ +| x1 15.06 84.91 0.1774 0.8631 | +| x2 -0.03582 0.03349 -1.0695 0.3127 | +| x3 -2.020 0.4884 -4.1364 0.0025 | +| x4 -1.033 0.2143 -4.8220 0.0009 | +| x5 -0.05110 0.2261 -0.2261 0.8262 | +| x6 1829. 455.5 4.0159 0.0030 | +| const -3.482e+06 8.904e+05 -3.9108 0.0036 | +============================================================================== +| Models stats Residual stats | +------------------------------------------------------------------------------ +| R-squared: 0.9955 Durbin-Watson: 2.559 | +| Adjusted R-squared: 0.9925 Omnibus: 0.7486 | +| F-statistic: 330.3 Prob(Omnibus): 0.6878 | +| Prob (F-statistic): 4.984e-10 JB: 0.6841 | +| Log likelihood: -109.6 Prob(JB): 0.7103 | +| AIC criterion: 233.2 Skew: 0.4200 | +| BIC criterion: 238.6 Kurtosis: 2.434 | +------------------------------------------------------------------------------''' +).substitute(XXcurrentXdateXX = str(time.strftime("%a, %d %b %Y",t)), + XXtimeXXX = str(time.strftime("%H:%M:%S",t))) + desired = str(desired) + aregression = TestOLS() + TestOLS.setupClass() + results = aregression.res1 + # be quiet! + original_filters = warnings.filters[:] # copy original + warnings.simplefilter("ignore") + try: + r_summary = str(results.summary_old()) + finally: + warnings.filters = original_filters # restore filters + +## print('###') +## print(r_summary) +## print('###') +## print(desired) +## print('###') + actual = r_summary + import numpy as np + actual = '\n'.join((line.rstrip() for line in actual.split('\n'))) +# print len(actual), len(desired) +# print repr(actual) +# print repr(desired) +# counter = 0 +# for c1,c2 in zip(actual, desired): +# if not c1==c2 and counter<20: +# print c1,c2 +# counter += 1 + np.testing.assert_(actual == desired) + + +if __name__ == '__main__': + test_regression_summary() + diff --git a/statsmodels/iolib/tests/test_table.py b/statsmodels/iolib/tests/test_table.py new file mode 100644 index 0000000..93fde36 --- /dev/null +++ b/statsmodels/iolib/tests/test_table.py @@ -0,0 +1,226 @@ +import numpy as np +import unittest +from statsmodels.iolib.table import SimpleTable, default_txt_fmt +from statsmodels.iolib.table import default_latex_fmt +from statsmodels.iolib.table import default_html_fmt +import pandas +from statsmodels.regression.linear_model import OLS + +ltx_fmt1 = default_latex_fmt.copy() +html_fmt1 = default_html_fmt.copy() + +class TestSimpleTable(unittest.TestCase): + def test_SimpleTable_1(self): + # Basic test, test_SimpleTable_1 + desired = ''' +===================== + header1 header2 +--------------------- +stub1 1.30312 2.73999 +stub2 1.95038 2.65765 +--------------------- +''' + test1data = [[1.30312, 2.73999],[1.95038, 2.65765]] + test1stubs = ('stub1', 'stub2') + test1header = ('header1', 'header2') + actual = SimpleTable(test1data, test1header, test1stubs, + txt_fmt=default_txt_fmt) + actual = '\n%s\n' % actual.as_text() + self.assertEqual(desired, str(actual)) + + def test_SimpleTable_2(self): + # Test SimpleTable.extend_right() + desired = ''' +============================================================= + header s1 header d1 header s2 header d2 +------------------------------------------------------------- +stub R1 C1 10.30312 10.73999 stub R1 C2 50.95038 50.65765 +stub R2 C1 90.30312 90.73999 stub R2 C2 40.95038 40.65765 +------------------------------------------------------------- +''' + data1 = [[10.30312, 10.73999], [90.30312, 90.73999]] + data2 = [[50.95038, 50.65765], [40.95038, 40.65765]] + stubs1 = ['stub R1 C1', 'stub R2 C1'] + stubs2 = ['stub R1 C2', 'stub R2 C2'] + header1 = ['header s1', 'header d1'] + header2 = ['header s2', 'header d2'] + actual1 = SimpleTable(data1, header1, stubs1, txt_fmt=default_txt_fmt) + actual2 = SimpleTable(data2, header2, stubs2, txt_fmt=default_txt_fmt) + actual1.extend_right(actual2) + actual = '\n%s\n' % actual1.as_text() + self.assertEqual(desired, str(actual)) + + def test_SimpleTable_3(self): + # Test SimpleTable.extend() as in extend down + desired = ''' +============================== + header s1 header d1 +------------------------------ +stub R1 C1 10.30312 10.73999 +stub R2 C1 90.30312 90.73999 + header s2 header d2 +------------------------------ +stub R1 C2 50.95038 50.65765 +stub R2 C2 40.95038 40.65765 +------------------------------ +''' + data1 = [[10.30312, 10.73999], [90.30312, 90.73999]] + data2 = [[50.95038, 50.65765], [40.95038, 40.65765]] + stubs1 = ['stub R1 C1', 'stub R2 C1'] + stubs2 = ['stub R1 C2', 'stub R2 C2'] + header1 = ['header s1', 'header d1'] + header2 = ['header s2', 'header d2'] + actual1 = SimpleTable(data1, header1, stubs1, txt_fmt=default_txt_fmt) + actual2 = SimpleTable(data2, header2, stubs2, txt_fmt=default_txt_fmt) + actual1.extend(actual2) + actual = '\n%s\n' % actual1.as_text() + self.assertEqual(desired, str(actual)) + + def test_SimpleTable_4(self): + # Basic test, test_SimpleTable_4 test uses custom txt_fmt + txt_fmt1 = dict(data_fmts = ['%3.2f', '%d'], + empty_cell = ' ', + colwidths = 1, + colsep=' * ', + row_pre = '* ', + row_post = ' *', + table_dec_above='*', + table_dec_below='*', + header_dec_below='*', + header_fmt = '%s', + stub_fmt = '%s', + title_align='r', + header_align = 'r', + data_aligns = "r", + stubs_align = "l", + fmt = 'txt' + ) + ltx_fmt1 = default_latex_fmt.copy() + html_fmt1 = default_html_fmt.copy() + cell0data = 0.0000 + cell1data = 1 + row0data = [cell0data, cell1data] + row1data = [2, 3.333] + table1data = [ row0data, row1data ] + test1stubs = ('stub1', 'stub2') + test1header = ('header1', 'header2') + tbl = SimpleTable(table1data, test1header, test1stubs,txt_fmt=txt_fmt1, + ltx_fmt=ltx_fmt1, html_fmt=html_fmt1) + def test_txt_fmt1(self): + # Limited test of custom txt_fmt + desired = """ +***************************** +* * header1 * header2 * +***************************** +* stub1 * 0.00 * 1 * +* stub2 * 2.00 * 3 * +***************************** +""" + actual = '\n%s\n' % tbl.as_text() + #print(actual) + #print(desired) + self.assertEqual(actual, desired) + def test_ltx_fmt1(self): + # Limited test of custom ltx_fmt + desired = r""" +\begin{tabular}{lcc} +\toprule + & \textbf{header1} & \textbf{header2} \\ +\midrule +\textbf{stub1} & 0.0 & 1 \\ +\textbf{stub2} & 2 & 3.333 \\ +\bottomrule +\end{tabular} +""" + actual = '\n%s\n' % tbl.as_latex_tabular(center=False) + #print(actual) + #print(desired) + self.assertEqual(actual, desired) + # Test "center=True" (the default): + desired_centered = r""" +\begin{center} +%s +\end{center} +""" % desired[1:-1] + actual_centered = '\n%s\n' % tbl.as_latex_tabular() + self.assertEqual(actual_centered, desired_centered) + def test_html_fmt1(self): + # Limited test of custom html_fmt + desired = """ + + + + + + + + + + +
    header1 header2
    stub1 0.0 1
    stub2 2 3.333
    +""" + actual = '\n%s\n' % tbl.as_html() + self.assertEqual(actual, desired) + test_txt_fmt1(self) + test_ltx_fmt1(self) + test_html_fmt1(self) + def test_SimpleTable_special_chars(self): + # Simple table with characters: (%, >, |, _, $, &, #) + cell0c_data = 22 + cell1c_data = 1053 + row0c_data = [cell0c_data, cell1c_data] + row1c_data = [23, 6250.4] + table1c_data = [ row0c_data, row1c_data ] + test1c_stubs = ('>stub1%', 'stub_2') + test1c_header = ('#header1$', 'header&|') + tbl_c = SimpleTable(table1c_data, test1c_header, test1c_stubs, ltx_fmt=ltx_fmt1) + def test_ltx_special_chars(self): + # Test for special characters (latex) in headers and stubs + desired = r""" +\begin{tabular}{lcc} +\toprule + & \textbf{\#header1\$} & \textbf{header\&$|$} \\ +\midrule +\textbf{$>$stub1\%} & 22 & 1053 \\ +\textbf{stub\_2} & 23 & 6250.4 \\ +\bottomrule +\end{tabular} +""" + actual = '\n%s\n' % tbl_c.as_latex_tabular(center=False) + self.assertEqual(actual, desired) + test_ltx_special_chars(self) + def test_regression_with_tuples(self): + i = pandas.Series( [1,2,3,4]*10 , name="i") + y = pandas.Series( [1,2,3,4,5]*8, name="y") + x = pandas.Series( [1,2,3,4,5,6,7,8]*5, name="x") + + df = pandas.DataFrame( index=i.index ) + df = df.join( i ) + endo = df.join( y ) + exo = df.join( x ) + endo_groups = endo.groupby( ("i",) ) + exo_groups = exo.groupby( ("i",) ) + exo_Df = exo_groups.agg( [np.sum, np.max] ) + endo_Df = endo_groups.agg( [np.sum, np.max] ) + reg = OLS(exo_Df[[("x", "sum")]],endo_Df).fit() + interesting_lines = [] + import warnings + with warnings.catch_warnings(): + # Catch ominormal warning, not interesting here + warnings.simplefilter("ignore") + for line in str( reg.summary() ).splitlines(): + if "('" in line: + interesting_lines.append( line[:38] ) + + desired = ["Dep. Variable: ('x', 'sum') ", + "('y', 'sum') 1.4595 0.209 ", + "('y', 'amax') 0.2432 0.035 "] + + self.assertEqual(sorted(desired), sorted(interesting_lines) ) + + +if __name__ == "__main__": + #unittest.main() + pass + + diff --git a/statsmodels/iolib/tests/test_table_econpy.py b/statsmodels/iolib/tests/test_table_econpy.py new file mode 100644 index 0000000..9ca364e --- /dev/null +++ b/statsmodels/iolib/tests/test_table_econpy.py @@ -0,0 +1,143 @@ +''' +Unit tests table.py. + +:see: http://docs.python.org/lib/minimal-example.html for an intro to unittest +:see: http://agiletesting.blogspot.com/2005/01/python-unit-testing-part-1-unittest.html +:see: http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/305292 +''' +from __future__ import absolute_import +from statsmodels.compat.python import zip +import unittest + +import numpy as np + +__docformat__ = "restructuredtext en" + +from statsmodels.iolib.table import Cell, Row, SimpleTable +from statsmodels.iolib.table import default_latex_fmt +from statsmodels.iolib.table import default_html_fmt + +ltx_fmt1 = default_latex_fmt.copy() +html_fmt1 = default_html_fmt.copy() + +txt_fmt1 = dict( + data_fmts = ['%0.2f', '%d'], + empty_cell = ' ', + colwidths = 1, + colsep=' * ', + row_pre = '* ', + row_post = ' *', + table_dec_above='*', + table_dec_below='*', + header_dec_below='*', + header_fmt = '%s', + stub_fmt = '%s', + title_align='r', + header_align = 'r', + data_aligns = "r", + stubs_align = "l", + fmt = 'txt' +) +cell0data = 0.0000 +cell1data = 1 +row0data = [cell0data, cell1data] +row1data = [2, 3.333] +table1data = [ row0data, row1data ] +test1stubs = ('stub1', 'stub2') +test1header = ('header1', 'header2') +#test1header = ('header1\nheader1a', 'header2\nheader2a') +tbl = SimpleTable(table1data, test1header, test1stubs, + txt_fmt=txt_fmt1, ltx_fmt=ltx_fmt1, html_fmt=html_fmt1) + + +def custom_labeller(cell): + if cell.data is np.nan: + return 'missing' + + + +class test_Cell(unittest.TestCase): + def test_celldata(self): + celldata = cell0data, cell1data, row1data[0], row1data[1] + cells = [Cell(datum, datatype=i%2) for i, datum in enumerate(celldata)] + for cell, datum in zip(cells, celldata): + self.assertEqual(cell.data, datum) + +class test_SimpleTable(unittest.TestCase): + def test_txt_fmt1(self): + # Limited test of custom txt_fmt + desired = """ +***************************** +* * header1 * header2 * +***************************** +* stub1 * 0.00 * 1 * +* stub2 * 2.00 * 3 * +***************************** +""" + actual = '\n%s\n' % tbl.as_text() + #print('actual') + #print(actual) + #print('desired') + #print(desired) + self.assertEqual(actual, desired) + def test_ltx_fmt1(self): + """Limited test of custom ltx_fmt""" + desired = r""" +\begin{center} +\begin{tabular}{lcc} +\toprule + & \textbf{header1} & \textbf{header2} \\ +\midrule +\textbf{stub1} & 0.0 & 1 \\ +\textbf{stub2} & 2 & 3.333 \\ +\bottomrule +\end{tabular} +\end{center} +""" + actual = '\n%s\n' % tbl.as_latex_tabular() + #print(actual) + #print(desired) + self.assertEqual(actual, desired) + def test_html_fmt1(self): + # Limited test of custom html_fmt + desired = """ + + + + + + + + + + +
    header1 header2
    stub1 0.0 1
    stub2 2 3.333
    +""" + #the previous has significant trailing whitespace that got removed + #desired = '''\n\n\n \n\n\n \n\n\n \n\n
    header1 header2
    stub1 0.0 1
    stub2 2 3.333
    \n''' + actual = '\n%s\n' % tbl.as_html() + actual = '\n'.join((line.rstrip() for line in actual.split('\n'))) + #print(actual) + #print(desired) + #print len(actual), len(desired) + self.assertEqual(actual, desired) + def test_customlabel(self): + # Limited test of custom custom labeling + tbl = SimpleTable(table1data, test1header, test1stubs, txt_fmt=txt_fmt1) + tbl[1][1].data = np.nan + tbl.label_cells(custom_labeller) + #print([[c.datatype for c in row] for row in tbl]) + desired = """ +***************************** +* * header1 * header2 * +***************************** +* stub1 * -- * 1 * +* stub2 * 2.00 * 3 * +***************************** +""" + actual = '\n%s\n' % tbl.as_text(missing='--') + self.assertEqual(actual, desired) + +if __name__=="__main__": + unittest.main() + diff --git a/statsmodels/miscmodels/__init__.py b/statsmodels/miscmodels/__init__.py new file mode 100644 index 0000000..e5f37ff --- /dev/null +++ b/statsmodels/miscmodels/__init__.py @@ -0,0 +1,3 @@ + +from statsmodels import NoseWrapper as Tester +test = Tester().test diff --git a/statsmodels/miscmodels/api.py b/statsmodels/miscmodels/api.py new file mode 100644 index 0000000..309bf48 --- /dev/null +++ b/statsmodels/miscmodels/api.py @@ -0,0 +1,4 @@ +from .tmodel import TLinearModel +from .count import (PoissonGMLE, PoissonOffsetGMLE, PoissonZiGMLE, + #NonlinearDeltaCov + ) diff --git a/statsmodels/miscmodels/count.py b/statsmodels/miscmodels/count.py new file mode 100644 index 0000000..a1c04e6 --- /dev/null +++ b/statsmodels/miscmodels/count.py @@ -0,0 +1,338 @@ +# -*- coding: utf-8 -*- +""" +Created on Mon Jul 26 08:34:59 2010 + +Author: josef-pktd + +changes: +added offset and zero-inflated version of Poisson + - kind of ok, need better test cases, + - a nan in ZIP bse, need to check hessian calculations + - found error in ZIP loglike + - all tests pass with + +Issues +------ +* If true model is not zero-inflated then numerical Hessian for ZIP has zeros + for the inflation probability and is not invertible. + -> hessian inverts and bse look ok if row and column are dropped, pinv also works +* GenericMLE: still get somewhere (where?) + "CacheWriteWarning: The attribute 'bse' cannot be overwritten" +* bfgs is too fragile, doesn't come back +* `nm` is slow but seems to work +* need good start_params and their use in genericmle needs to be checked for + consistency, set as attribute or method (called as attribute) +* numerical hessian needs better scaling + +* check taking parts out of the loop, e.g. factorial(endog) could be precalculated + + +""" +from __future__ import print_function +import numpy as np +from scipy import stats +from scipy.misc import factorial +import statsmodels.api as sm +from statsmodels.base.model import GenericLikelihoodModel + +def maxabs(arr1, arr2): + return np.max(np.abs(arr1 - arr2)) + +def maxabsrel(arr1, arr2): + return np.max(np.abs(arr2 / arr1 - 1)) + +class NonlinearDeltaCov(object): + '''Asymptotic covariance by Deltamethod + + the function is designed for 2d array, with rows equal to + the number of equations and columns equal to the number + of parameters. 1d params work by chance ? + + fun: R^{m*k) -> R^{m} where m is number of equations and k is + the number of parameters. + + equations follow Greene + + ''' + def __init__(self, fun, params, cov_params): + self.fun = fun + self.params = params + self.cov_params = cov_params + + def grad(self, params=None, **kwds): + if params is None: + params = self.params + kwds.setdefault('epsilon', 1e-4) + from statsmodels.tools.numdiff import approx_fprime + return approx_fprime(params, self.fun, **kwds) + + def cov(self): + g = self.grad() + covar = np.dot(np.dot(g, self.cov_params), g.T) + return covar + + def expected(self): + # rename: misnomer, this is the MLE of the fun + return self.fun(self.params) + + def wald(self, value): + m = self.expected() + v = self.cov() + df = np.size(m) + diff = m - value + lmstat = np.dot(np.dot(diff.T, np.linalg.inv(v)), diff) + return lmstat, stats.chi2.sf(lmstat, df) + + + + +class PoissonGMLE(GenericLikelihoodModel): + '''Maximum Likelihood Estimation of Poisson Model + + This is an example for generic MLE which has the same + statistical model as discretemod.Poisson. + + Except for defining the negative log-likelihood method, all + methods and results are generic. Gradients and Hessian + and all resulting statistics are based on numerical + differentiation. + + ''' + + # copied from discretemod.Poisson + def nloglikeobs(self, params): + """ + Loglikelihood of Poisson model + + Parameters + ---------- + params : array-like + The parameters of the model. + + Returns + ------- + The log likelihood of the model evaluated at `params` + + Notes + -------- + .. math :: \\ln L=\\sum_{i=1}^{n}\\left[-\\lambda_{i}+y_{i}x_{i}^{\\prime}\\beta-\\ln y_{i}!\\right] + """ + XB = np.dot(self.exog, params) + endog = self.endog + return np.exp(XB) - endog*XB + np.log(factorial(endog)) + + def predict_distribution(self, exog): + '''return frozen scipy.stats distribution with mu at estimated prediction + ''' + if not hasattr(self, result): + raise ValueError + else: + mu = np.exp(np.dot(exog, params)) + return stats.poisson(mu, loc=0) + + + +class PoissonOffsetGMLE(GenericLikelihoodModel): + '''Maximum Likelihood Estimation of Poisson Model + + This is an example for generic MLE which has the same + statistical model as discretemod.Poisson but adds offset + + Except for defining the negative log-likelihood method, all + methods and results are generic. Gradients and Hessian + and all resulting statistics are based on numerical + differentiation. + + ''' + + def __init__(self, endog, exog=None, offset=None, missing='none', **kwds): + # let them be none in case user wants to use inheritance + if not offset is None: + if offset.ndim == 1: + offset = offset[:,None] #need column + self.offset = offset.ravel() + else: + self.offset = 0. + super(PoissonOffsetGMLE, self).__init__(endog, exog, missing=missing, + **kwds) + +#this was added temporarily for bug-hunting, but shouldn't be needed +# def loglike(self, params): +# return -self.nloglikeobs(params).sum(0) + + # original copied from discretemod.Poisson + def nloglikeobs(self, params): + """ + Loglikelihood of Poisson model + + Parameters + ---------- + params : array-like + The parameters of the model. + + Returns + ------- + The log likelihood of the model evaluated at `params` + + Notes + -------- + .. math :: \\ln L=\\sum_{i=1}^{n}\\left[-\\lambda_{i}+y_{i}x_{i}^{\\prime}\\beta-\\ln y_{i}!\\right] + """ + + XB = self.offset + np.dot(self.exog, params) + endog = self.endog + nloglik = np.exp(XB) - endog*XB + np.log(factorial(endog)) + return nloglik + +class PoissonZiGMLE(GenericLikelihoodModel): + '''Maximum Likelihood Estimation of Poisson Model + + This is an example for generic MLE which has the same statistical model + as discretemod.Poisson but adds offset and zero-inflation. + + Except for defining the negative log-likelihood method, all + methods and results are generic. Gradients and Hessian + and all resulting statistics are based on numerical + differentiation. + + There are numerical problems if there is no zero-inflation. + + ''' + + def __init__(self, endog, exog=None, offset=None, missing='none', **kwds): + # let them be none in case user wants to use inheritance + + super(PoissonZiGMLE, self).__init__(endog, exog, missing=missing, + **kwds) + if not offset is None: + if offset.ndim == 1: + offset = offset[:,None] #need column + self.offset = offset.ravel() #which way? + else: + self.offset = 0. + + #TODO: it's not standard pattern to use default exog + if exog is None: + self.exog = np.ones((self.nobs,1)) + self.nparams = self.exog.shape[1] + #what's the shape in regression for exog if only constant + self.start_params = np.hstack((np.ones(self.nparams), 0)) + self.cloneattr = ['start_params'] + #needed for t_test and summary + self.exog_names.append('zi') + + + # original copied from discretemod.Poisson + def nloglikeobs(self, params): + """ + Loglikelihood of Poisson model + + Parameters + ---------- + params : array-like + The parameters of the model. + + Returns + ------- + The log likelihood of the model evaluated at `params` + + Notes + -------- + .. math :: \\ln L=\\sum_{i=1}^{n}\\left[-\\lambda_{i}+y_{i}x_{i}^{\\prime}\\beta-\\ln y_{i}!\\right] + """ + beta = params[:-1] + gamm = 1 / (1 + np.exp(params[-1])) #check this + # replace with np.dot(self.exogZ, gamma) + #print(np.shape(self.offset), self.exog.shape, beta.shape + XB = self.offset + np.dot(self.exog, beta) + endog = self.endog + nloglik = -np.log(1-gamm) + np.exp(XB) - endog*XB + np.log(factorial(endog)) + nloglik[endog==0] = - np.log(gamm + np.exp(-nloglik[endog==0])) + + return nloglik + + + +if __name__ == '__main__': + + #Example: + np.random.seed(98765678) + nobs = 1000 + rvs = np.random.randn(nobs,6) + data_exog = rvs + data_exog = sm.add_constant(data_exog, prepend=False) + xbeta = 1 + 0.1*rvs.sum(1) + data_endog = np.random.poisson(np.exp(xbeta)) + #print(data_endog + + modp = MyPoisson(data_endog, data_exog) + resp = modp.fit() + print(resp.params) + print(resp.bse) + + from statsmodels.discretemod import Poisson + resdp = Poisson(data_endog, data_exog).fit() + print('\ncompare with discretemod') + print('compare params') + print(resdp.params - resp.params) + print('compare bse') + print(resdp.bse - resp.bse) + + gmlp = sm.GLM(data_endog, data_exog, family=sm.families.Poisson()) + resgp = gmlp.fit() + ''' this creates a warning, bug bse is double defined ??? + c:\josef\eclipsegworkspace\statsmodels-josef-experimental-gsoc\scikits\statsmodels\decorators.py:105: CacheWriteWarning: The attribute 'bse' cannot be overwritten + warnings.warn(errmsg, CacheWriteWarning) + ''' + print('\ncompare with GLM') + print('compare params') + print(resgp.params - resp.params) + print('compare bse') + print(resgp.bse - resp.bse) + + lam = np.exp(np.dot(data_exog, resp.params)) + '''mean of Poisson distribution''' + predmean = stats.poisson.stats(lam,moments='m') + print(np.max(np.abs(predmean - lam))) + + fun = lambda params: np.exp(np.dot(data_exog.mean(0), params)) + + lamcov = NonlinearDeltaCov(fun, resp.params, resdp.cov_params()) + print(lamcov.cov().shape) + print(lamcov.cov()) + + print('analytical') + xm = data_exog.mean(0) + print(np.dot(np.dot(xm, resdp.cov_params()), xm.T) * \ + np.exp(2*np.dot(data_exog.mean(0), resp.params))) + + ''' cov of linear transformation of params + >>> np.dot(np.dot(xm, resdp.cov_params()), xm.T) + 0.00038904130127582825 + >>> resp.cov_params(xm) + 0.00038902428119179394 + >>> np.dot(np.dot(xm, resp.cov_params()), xm.T) + 0.00038902428119179394 + ''' + + print(lamcov.wald(1.)) + print(lamcov.wald(2.)) + print(lamcov.wald(2.6)) + + do_bootstrap = False + if do_bootstrap: + m,s,r = resp.bootstrap(method='newton') + print(m) + print(s) + print(resp.bse) + + + print('\ncomparison maxabs, masabsrel') + print('discr params', maxabs(resdp.params, resp.params), maxabsrel(resdp.params, resp.params)) + print('discr bse ', maxabs(resdp.bse, resp.bse), maxabsrel(resdp.bse, resp.bse)) + print('discr bsejac', maxabs(resdp.bse, resp.bsejac), maxabsrel(resdp.bse, resp.bsejac)) + print('discr bsejhj', maxabs(resdp.bse, resp.bsejhj), maxabsrel(resdp.bse, resp.bsejhj)) + print('') + print('glm params ', maxabs(resdp.params, resp.params), maxabsrel(resdp.params, resp.params)) + print('glm bse ', maxabs(resdp.bse, resp.bse), maxabsrel(resdp.bse, resp.bse)) + diff --git a/statsmodels/miscmodels/nonlinls.py b/statsmodels/miscmodels/nonlinls.py new file mode 100644 index 0000000..8719c91 --- /dev/null +++ b/statsmodels/miscmodels/nonlinls.py @@ -0,0 +1,309 @@ +'''Non-linear least squares + + + +Author: Josef Perktold based on scipy.optimize.curve_fit + +''' +import numpy as np +from scipy import optimize + +from statsmodels.base.model import Model + + +class Results(object): + '''just a dummy placeholder for now + most results from RegressionResults can be used here + ''' + pass + + +##def getjaccov(retval, n): +## '''calculate something and raw covariance matrix from return of optimize.leastsq +## +## I cannot figure out how to recover the Jacobian, or whether it is even +## possible +## +## this is a partial copy of scipy.optimize.leastsq +## ''' +## info = retval[-1] +## #n = len(x0) #nparams, where do I get this +## cov_x = None +## if info in [1,2,3,4]: +## from numpy.dual import inv +## from numpy.linalg import LinAlgError +## perm = np.take(np.eye(n), retval[1]['ipvt']-1,0) +## r = np.triu(np.transpose(retval[1]['fjac'])[:n,:]) +## R = np.dot(r, perm) +## try: +## cov_x = inv(np.dot(np.transpose(R),R)) +## except LinAlgError: +## print 'cov_x not available' +## pass +## return r, R, cov_x +## +##def _general_function(params, xdata, ydata, function): +## return function(xdata, *params) - ydata +## +##def _weighted_general_function(params, xdata, ydata, function, weights): +## return weights * (function(xdata, *params) - ydata) +## + + + +class NonlinearLS(Model): #or subclass a model + '''Base class for estimation of a non-linear model with least squares + + This class is supposed to be subclassed, and the subclass has to provide a method + `_predict` that defines the non-linear function `f(params) that is predicting the endogenous + variable. The model is assumed to be + + :math: y = f(params) + error + + and the estimator minimizes the sum of squares of the estimated error. + + :math: min_parmas \sum (y - f(params))**2 + + f has to return the prediction for each observation. Exogenous or explanatory variables + should be accessed as attributes of the class instance, and can be given as arguments + when the instance is created. + + Warning: + Weights are not correctly handled yet in the results statistics, + but included when estimating the parameters. + + similar to scipy.optimize.curve_fit + API difference: params are array_like not split up, need n_params information + + includes now weights similar to curve_fit + no general sigma yet (OLS and WLS, but no GLS) + + This is currently holding on to intermediate results that are not necessary + but useful for testing. + + Fit returns and instance of RegressionResult, in contrast to the linear + model, results in this case are based on a local approximation, essentially + y = f(X, params) is replaced by y = grad * params where grad is the Gradient + or Jacobian with the shape (nobs, nparams). See for example Greene + + Examples + -------- + + class Myfunc(NonlinearLS): + + def _predict(self, params): + x = self.exog + a, b, c = params + return a*np.exp(-b*x) + c + + Ff we have data (y, x), we can create an instance and fit it with + + mymod = Myfunc(y, x) + myres = mymod.fit(nparams=3) + + and use the non-linear regression results, for example + + myres.params + myres.bse + myres.tvalues + + + ''' + #NOTE: This needs to call super for data checking + def __init__(self, endog=None, exog=None, weights=None, sigma=None, + missing='none'): + self.endog = endog + self.exog = exog + if not sigma is None: + sigma = np.asarray(sigma) + if sigma.ndim < 2: + self.sigma = sigma + self.weights = 1./sigma + else: + raise ValueError('correlated errors are not handled yet') + else: + self.weights = None + + def predict(self, exog, params=None): + #copied from GLS, Model has different signature + return self._predict(params) + + + def _predict(self, params): + pass + + def start_value(self): + return None + + def geterrors(self, params, weights=None): + if weights is None: + if self.weights is None: + return self.endog - self._predict(params) + else: + weights = self.weights + return weights * (self.endog - self._predict(params)) + + def errorsumsquares(self, params): + return (self.geterrors(params)**2).sum() + + + def fit(self, start_value=None, nparams=None, **kw): + #if hasattr(self, 'start_value'): + #I added start_value even if it's empty, not sure about it + #but it makes a visible placeholder + + if not start_value is None: + p0 = start_value + else: + #nesting so that start_value is only calculated if it is needed + p0 = self.start_value() + if not p0 is None: + pass + elif not nparams is None: + p0 = 0.1 * np.ones(nparams) + else: + raise ValueError('need information about start values for' + + 'optimization') + + func = self.geterrors + res = optimize.leastsq(func, p0, full_output=1, **kw) + (popt, pcov, infodict, errmsg, ier) = res + + if ier not in [1,2,3,4]: + msg = "Optimal parameters not found: " + errmsg + raise RuntimeError(msg) + + err = infodict['fvec'] + + ydata = self.endog + if (len(ydata) > len(p0)) and pcov is not None: + #this can use the returned errors instead of recalculating + + s_sq = (err**2).sum()/(len(ydata)-len(p0)) + pcov = pcov * s_sq + else: + pcov = None + + self.df_resid = len(ydata)-len(p0) + self.df_model = len(p0) + fitres = Results() + fitres.params = popt + fitres.pcov = pcov + fitres.rawres = res + self.wendog = self.endog #add weights + self.wexog = self.jac_predict(popt) + pinv_wexog = np.linalg.pinv(self.wexog) + self.normalized_cov_params = np.dot(pinv_wexog, + np.transpose(pinv_wexog)) + + #TODO: check effect of `weights` on result statistics + #I think they are correctly included in cov_params + #maybe not anymore, I'm not using pcov of leastsq + #direct calculation with jac_predict misses the weights + +## if not weights is None +## fitres.wexogw = self.weights * self.jacpredict(popt) + from statsmodels.regression import RegressionResults + results = RegressionResults + + beta = popt + lfit = RegressionResults(self, beta, + normalized_cov_params=self.normalized_cov_params) + + lfit.fitres = fitres #mainly for testing + self._results = lfit + return lfit + + def fit_minimal(self, start_value): + '''minimal fitting with no extra calculations''' + func = self.geterrors + res = optimize.leastsq(func, start_value, full_output=0, **kw) + return res + + def fit_random(self, ntries=10, rvs_generator=None, nparams=None): + '''fit with random starting values + + this could be replaced with a global fitter + + ''' + + if nparams is None: + nparams = self.nparams + if rvs_generator is None: + rvs = np.random.uniform(low=-10, high=10, size=(ntries, nparams)) + else: + rvs = rvs_generator(size=(ntries, nparams)) + + results = np.array([np.r_[self.fit_minimal(rv), rv] for rv in rvs]) + #selct best results and check how many solutions are within 1e-6 of best + #not sure what leastsq returns + return results + + def jac_predict(self, params): + '''jacobian of prediction function using complex step derivative + + This assumes that the predict function does not use complex variable + but is designed to do so. + + ''' + from statsmodels.tools.numdiff import approx_fprime_cs + + jaccs_err = approx_fprime_cs(params, self._predict) + return jaccs_err + + +class Myfunc(NonlinearLS): + + #predict model.Model has a different signature +## def predict(self, params, exog=None): +## if not exog is None: +## x = exog +## else: +## x = self.exog +## a, b, c = params +## return a*np.exp(-b*x) + c + + def _predict(self, params): + x = self.exog + a, b, c = params + return a*np.exp(-b*x) + c + + + + + +if __name__ == '__main__': + def func0(x, a, b, c): + return a*np.exp(-b*x) + c + + def func(params, x): + a, b, c = params + return a*np.exp(-b*x) + c + + def error(params, x, y): + return y - func(params, x) + + def error2(params, x, y): + return (y - func(params, x))**2 + + + + + x = np.linspace(0,4,50) + params = np.array([2.5, 1.3, 0.5]) + y0 = func(params, x) + y = y0 + 0.2*np.random.normal(size=len(x)) + + res = optimize.leastsq(error, params, args=(x, y), full_output=True) +## r, R, c = getjaccov(res[1:], 3) + + mod = Myfunc(y, x) + resmy = mod.fit(nparams=3) + + cf_params, cf_pcov = optimize.curve_fit(func0, x, y) + cf_bse = np.sqrt(np.diag(cf_pcov)) + print(res[0]) + print(cf_params) + print(resmy.params) + print(cf_bse) + print(resmy.bse) diff --git a/statsmodels/miscmodels/tests/__init__.py b/statsmodels/miscmodels/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/miscmodels/tests/results_tmodel.py b/statsmodels/miscmodels/tests/results_tmodel.py new file mode 100644 index 0000000..8b8ad7f --- /dev/null +++ b/statsmodels/miscmodels/tests/results_tmodel.py @@ -0,0 +1,177 @@ +# -*- coding: utf-8 -*- +""" + +Created on Sun Jun 30 23:14:36 2013 + +Author: Josef Perktold +""" + +import numpy as np + +class Holder(): + pass + +res_t_dfest = Holder() +#> tfit3 <- tlm(m.marietta ~ CRSP, data = mm, start = list(dof = 3),estDof = TRUE) +#> cat_items(tfit3, "res_t_dfest.") +res_t_dfest.random = np.array([ + 0.6242843, 1.349205, 1.224172, 1.272655, 1.323455, 1.091313, 1.227218, + 0.0316284, 0.7202973, 1.038392, 1.091907, 0.7966355, 0.784222, + 0.5042926, 0.1964543, 1.172123, 1.017338, 0.8799186, 0.7849335, + 0.790158, 0.8121724, 1.286998, 0.7286052, 1.330104, 1.054037, + 1.299656, 1.285306, 1.271166, 1.106877, 1.303909, 0.4250416, 1.277096, + 1.160106, 0.1871806, 1.074168, 1.197795, 1.046638, 1.104423, 1.301670, + 1.333217, 0.8156778, 1.309934, 1.142454, 1.347481, 0.6605017, + 1.035725, 1.172666, 1.281746, 0.8796436, 0.9597098, 0.6221453, + 1.149490, 1.291864, 1.207619, 1.239625, 1.351065, 1.248711, 0.3532520, + 0.6067273, 0.8180234 + ]) +res_t_dfest.dof = 2.837183 +res_t_dfest.dofse = 1.175296 +res_t_dfest.iter = 7 +res_t_dfest.logLik = 71.81292 +res_t_dfest.endTime = 0.01 + +loc_fit = Holder() +#> cat_items(tfit3$loc.fit, "loc_fit.") +loc_fit.coefficients = np.array([-0.007248461, 1.263751]) +loc_fit.residuals = np.array([ + -0.09133902, 0.004151492, -0.02737765, 0.02117769, 0.01251936, + -0.0413709, -0.02701702, 0.5465314, -0.07922967, -0.04651135, + -0.04131256, 0.07064283, -0.07199043, -0.1096804, 0.2051536, + 0.0331728, 0.04853971, 0.06197657, 0.07191273, -0.07134392, + 0.06897908, -0.01907315, -0.0782573, -0.01096341, 0.04500034, + -0.01704652, -0.01933079, 0.02138696, 0.03983612, -0.01631880, + 0.1249257, -0.02054422, -0.03443716, 0.2110156, -0.04304691, + 0.03038995, 0.04571555, 0.04007908, -0.01670529, 0.01015959, + 0.06860706, -0.01523742, 0.03625959, 0.005138716, -0.08656302, + -0.04676856, -0.03311507, -0.01986418, -0.06200429, 0.05410242, + 0.09163019, 0.03553772, 0.01831594, -0.02928904, 0.02551524, + 0.002713425, 0.02437713, -0.1422379, 0.09376145, -0.06835877 + ]) +loc_fit.fitted_values = np.array([ + -0.04516098, -0.0810515, -0.03012235, 0.03142231, -0.05741936, + -0.0445291, -0.04718298, 0.1413686, 0.002229668, 0.1315113, + 0.04431256, 0.004757169, 0.03079043, 0.02068043, 0.02674643, + 0.0755272, -0.01103971, 0.03382343, -0.05451273, -0.001056083, + 0.00602092, -0.03972685, 0.0162573, -0.02683659, -0.02810034, + -0.06285348, 0.004630794, -0.01078696, -0.08193612, 0.01271880, + -0.03732572, 0.1230442, -0.01546284, -0.01571559, -0.02835309, + 0.01651005, 0.08538445, 0.00602092, -0.01609471, -0.01975959, + 0.05859294, 0.00753742, -0.01975959, -0.02013872, -0.06133698, + 0.04026856, 0.07211507, 0.04216418, -0.006995711, 0.07969758, + 0.05416981, -0.02923772, 0.05088406, 0.005389044, -0.08231524, + 0.07868658, -0.1132771, 0.05353794, 0.009938546, -0.04794123 + ]) +loc_fit.effects = np.array([ + -0.4809681, 6.645774, -0.6803134, 0.8423367, 0.5333795, -0.9748358, + -0.6818408, 0.6716256, -1.239349, -0.9454051, -0.919986, 1.546571, + -1.206974, -1.185012, 1.167586, 1.162168, 1.367571, 1.521386, + 1.514811, -1.224234, 1.541103, -0.4658513, -1.229607, -0.2132594, + 1.309335, -0.4211133, -0.4462804, 0.8224875, 1.194665, -0.3537337, + 1.443046, -0.4086050, -0.8295162, 1.122057, -0.9918254, 1.065403, + 1.388378, 1.252209, -0.3826760, 0.4819511, 1.571469, -0.3244968, + 1.166818, 0.3190928, -1.280510, -1.004244, -0.7489287, -0.4386115, + -1.182836, 1.485040, 1.594513, 1.146952, 0.773323, -0.7043392, + 0.888233, 0.2990213, 0.8402323, -1.040679, 1.564756, -1.241512 + ]) +loc_fit.weights = np.array([ + 260.7666, 260.7666, 260.7666, 260.7666, 260.7666, 260.7666, 260.7666, + 260.7666, 260.7666, 260.7666, 260.7666, 260.7666, 260.7666, 260.7666, + 260.7666, 260.7666, 260.7666, 260.7666, 260.7666, 260.7666, 260.7666, + 260.7666, 260.7666, 260.7666, 260.7666, 260.7666, 260.7666, 260.7666, + 260.7666, 260.7666, 260.7666, 260.7666, 260.7666, 260.7666, 260.7666, + 260.7666, 260.7666, 260.7666, 260.7666, 260.7666, 260.7666, 260.7666, + 260.7666, 260.7666, 260.7666, 260.7666, 260.7666, 260.7666, 260.7666, + 260.7666, 260.7666, 260.7666, 260.7666, 260.7666, 260.7666, 260.7666, + 260.7666, 260.7666, 260.7666, 260.7666 + ]) +loc_fit.qr = '''structure(list(qr = structure(c(-125.083961390618, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, 0.129099444873581, -1.09802870774065, 5.25877087979451, 0.068920957251135, -0.0806236351850806, 0.135248743629416, 0.103927288950783, 0.110375823737560, -0.34777721920871, -0.00968975253053064, -0.323825518572109, -0.111945089863713, -0.0158312142322233, -0.0790882697596574, -0.0545224229528869, -0.0692619310369492, -0.187792141879617, 0.0225529214033557, -0.0864580238016886, 0.128186062672469, -0.00170585231833022, -0.0189019450830696, 0.092258511717567, -0.0437748649749248, 0.0609370570389346, 0.064007787889781, 0.148452886288055, -0.0155241411471386, 0.0219387752331864, 0.194820922135834, -0.0351768185925551, 0.0864241231009591, -0.303251621871439, 0.0333004793813178, 0.0339146255514870, 0.0646219340599502, -0.044389011145094, -0.211743842516218, -0.0189019450830696, 0.0348358448067410, 0.0437409642741953, -0.146644348478276, -0.0225868221040852, 0.0437409642741953, 0.0446621835294492, 0.144768009267039, -0.102118751141005, -0.179501168582332, -0.106724847417274, 0.0127265826806475, -0.19792555368741, -0.135896790500314, 0.0667714456555426, -0.127912890288114, -0.0173665796576464, 0.195742141391088, -0.195468969006733, 0.270975047236823, -0.134361425074891, -0.0284212107206932, 0.112218262248068), assign = 0:1, .Dim = c(60L, 2L), .Dimnames = list(c("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "60"), c("(Intercept)", "CRSP"))), qraux = c(1.12909944487358, 1.19267141054024), pivot = 1:2, tol = 1e-07, rank = 2L), .Names = c("qr", "qraux", "pivot", "tol", "rank"), class = "qr")''' +loc_fit.method = 'maximum likelihood' +loc_fit.formula = '''m.marietta ~ CRSP''' +loc_fit.terms = '''m.marietta ~ CRSP''' +loc_fit.iter = 7 +loc_fit.call = '''tlm(lform = m.marietta ~ CRSP, data = mm, start = list(dof = 3), estDof = TRUE)''' + +#> s = summary(tfit3) +#> cat_items(s$loc.summary, prefix="loc_fit.") +# renamed coefficient -> table +loc_fit.table = np.array([ + -0.007248461, 1.263751, 0.008167043, 0.1901585, -0.8875258, 6.645774, + 0.3784616, 1.150536e-08 + ]).reshape(2,4, order='F') +loc_fit.table_rownames = ['(Intercept)', 'CRSP', ] +loc_fit.table_colnames = ['Estimate', 'Std. Error', 't value', 'Pr(>|t|)', ] +loc_fit.dispersion = 1 +loc_fit.cov_unscaled = np.array([ + 6.670059e-05, -0.0003174268, -0.0003174268, 0.03616026 + ]).reshape(2,2, order='F') +loc_fit.cov_unscaled_rownames = ['(Intercept)', 'CRSP', ] +loc_fit.cov_unscaled_colnames = ['(Intercept)', 'CRSP', ] +loc_fit.cov_scaled = np.array([ + 6.670059e-05, -0.0003174268, -0.0003174268, 0.03616026 + ]).reshape(2,2, order='F') +loc_fit.cov_scaled_rownames = ['(Intercept)', 'CRSP', ] +loc_fit.cov_scaled_colnames = ['(Intercept)', 'CRSP', ] + + +scale_fit = Holder() +#> cat_items(tfit3$scale.fit, "scale_fit.") +scale_fit.coefficients = -5.983115 +scale_fit.residuals = np.array([ + 2.193327, -2.038408, -1.308573, -1.591579, -1.888103, -0.5330418, + -1.326357, 5.653531, 1.632833, -0.2240806, -0.5364947, 1.187192, + 1.259662, 2.893897, 4.691185, -1.004751, -0.1011940, 0.7009929, + 1.255535, 1.224993, 1.096490, -1.675302, 1.584339, -1.926915, + -0.3154245, -1.749184, -1.665424, -1.582882, -0.6238652, -1.774011, + 3.356624, -1.617496, -0.9346065, 4.74536, -0.4329547, -1.154602, + -0.2722567, -0.6095562, -1.76094, -1.945082, 1.076003, -1.809181, + -0.8315554, -2.028347, 1.98188, -0.2085298, -1.007913, -1.644641, + 0.702596, 0.2351866, 2.205829, -0.8726262, -1.703705, -1.211949, + -1.398769, -2.049267, -1.451807, 3.775749, 2.295868, 1.062300 + ]) +scale_fit.fitted_values = np.array([ + 0.002520962, 0.002520962, 0.002520962, 0.002520962, 0.002520962, + 0.002520962, 0.002520962, 0.002520962, 0.002520962, 0.002520962, + 0.002520962, 0.002520962, 0.002520962, 0.002520962, 0.002520962, + 0.002520962, 0.002520962, 0.002520962, 0.002520962, 0.002520962, + 0.002520962, 0.002520962, 0.002520962, 0.002520962, 0.002520962, + 0.002520962, 0.002520962, 0.002520962, 0.002520962, 0.002520962, + 0.002520962, 0.002520962, 0.002520962, 0.002520962, 0.002520962, + 0.002520962, 0.002520962, 0.002520962, 0.002520962, 0.002520962, + 0.002520962, 0.002520962, 0.002520962, 0.002520962, 0.002520962, + 0.002520962, 0.002520962, 0.002520962, 0.002520962, 0.002520962, + 0.002520962, 0.002520962, 0.002520962, 0.002520962, 0.002520962, + 0.002520962, 0.002520962, 0.002520962, 0.002520962, 0.002520962 + ]) +scale_fit.effects = np.array([ + 32.31074, -1.595974, -1.087148, -1.284454, -1.491184, -0.5464648, + -1.099547, 3.766681, 0.9635367, -0.3310637, -0.5488721, 0.6528456, + 0.70337, 1.842724, 3.095754, -0.8753306, -0.2453897, 0.3138777, + 0.7004929, 0.6791996, 0.5896097, -1.342824, 0.9297278, -1.518243, + -0.3947467, -1.394333, -1.335937, -1.278391, -0.6097849, -1.411642, + 2.165327, -1.302523, -0.826427, 3.133524, -0.4766862, -0.979803, + -0.364651, -0.599809, -1.402529, -1.530909, 0.5753267, -1.436162, + -0.754582, -1.588959, 1.206885, -0.3202220, -0.8775351, -1.321448, + 0.3149953, -0.01087243, 1.363017, -0.7832157, -1.362626, -1.019784, + -1.150031, -1.603544, -1.187008, 2.457531, 1.425790, 0.5657731 + ]) +scale_fit.weights = np.array([ + 0.4860579, 0.4860579, 0.4860579, 0.4860579, 0.4860579, 0.4860579, + 0.4860579, 0.4860579, 0.4860579, 0.4860579, 0.4860579, 0.4860579, + 0.4860579, 0.4860579, 0.4860579, 0.4860579, 0.4860579, 0.4860579, + 0.4860579, 0.4860579, 0.4860579, 0.4860579, 0.4860579, 0.4860579, + 0.4860579, 0.4860579, 0.4860579, 0.4860579, 0.4860579, 0.4860579, + 0.4860579, 0.4860579, 0.4860579, 0.4860579, 0.4860579, 0.4860579, + 0.4860579, 0.4860579, 0.4860579, 0.4860579, 0.4860579, 0.4860579, + 0.4860579, 0.4860579, 0.4860579, 0.4860579, 0.4860579, 0.4860579, + 0.4860579, 0.4860579, 0.4860579, 0.4860579, 0.4860579, 0.4860579, + 0.4860579, 0.4860579, 0.4860579, 0.4860579, 0.4860579, 0.4860579 + ]) +scale_fit.formula = '''m.marietta ~ 1''' +scale_fit.terms = '''m.marietta ~ 1''' +scale_fit.iter = 7 +scale_fit.call = '''tlm(lform = m.marietta ~ CRSP, data = mm, start = list(dof = 3), estDof = TRUE)''' + +res_t_dfest.loc_fit = loc_fit +res_t_dfest.scale_fit = scale_fit diff --git a/statsmodels/miscmodels/tests/test_generic_mle.py b/statsmodels/miscmodels/tests/test_generic_mle.py new file mode 100644 index 0000000..32090f8 --- /dev/null +++ b/statsmodels/miscmodels/tests/test_generic_mle.py @@ -0,0 +1,151 @@ +# -*- coding: utf-8 -*- +""" + +Created on Fri Jun 28 14:19:26 2013 + +Author: Josef Perktold +""" + + +import numpy as np +from scipy import stats +from statsmodels.base.model import GenericLikelihoodModel + +from numpy.testing import assert_array_less, assert_almost_equal, assert_allclose + +class MyPareto(GenericLikelihoodModel): + '''Maximum Likelihood Estimation pareto distribution + + first version: iid case, with constant parameters + ''' + + def initialize(self): #TODO needed or not + super(MyPareto, self).initialize() + #start_params needs to be attribute + self.start_params = np.array([1.5, self.endog.min() - 1.5, 1.]) + + + #copied from stats.distribution + def pdf(self, x, b): + return b * x**(-b-1) + + def loglike(self, params): + return -self.nloglikeobs(params).sum(0) + + # TODO: design start_params needs to be an attribute, + # so it can be overwritten +# @property +# def start_params(self): +# return np.array([1.5, self.endog.min() - 1.5, 1.]) + + def nloglikeobs(self, params): + #print params.shape + if not self.fixed_params is None: + #print 'using fixed' + params = self.expandparams(params) + b = params[0] + loc = params[1] + scale = params[2] + #loc = np.dot(self.exog, beta) + endog = self.endog + x = (endog - loc)/scale + logpdf = np.log(b) - (b+1.)*np.log(x) #use np_log(1 + x) for Pareto II + logpdf -= np.log(scale) + #lb = loc + scale + #logpdf[endog fit, fit -> fit_ls + def fit_mle(self, order, start_params=None, method='nm', maxiter=5000, + tol=1e-08, **kwds): + nar, nma = order + if start_params is not None: + if len(start_params) != nar + nma + 2: + raise ValueError('start_param need sum(order) + 2 elements') + else: + start_params = np.concatenate((0.05*np.ones(nar + nma), [5, 1])) + + + res = super(TArma, self).fit_mle(order=order, + start_params=start_params, + method=method, maxiter=maxiter, + tol=tol, **kwds) + + return res diff --git a/statsmodels/miscmodels/try_mlecov.py b/statsmodels/miscmodels/try_mlecov.py new file mode 100644 index 0000000..26039b2 --- /dev/null +++ b/statsmodels/miscmodels/try_mlecov.py @@ -0,0 +1,235 @@ +'''Multivariate Normal Model with full covariance matrix + +toeplitz structure is not exploited, need cholesky or inv for toeplitz + +Author: josef-pktd +''' + +from __future__ import print_function +import numpy as np +#from scipy import special #, stats +from scipy import linalg +from scipy.linalg import norm, toeplitz + +import statsmodels.api as sm +from statsmodels.base.model import (GenericLikelihoodModel, + LikelihoodModel) +from statsmodels.tsa.arima_process import arma_acovf, arma_generate_sample + + +def mvn_loglike_sum(x, sigma): + '''loglike multivariate normal + + copied from GLS and adjusted names + not sure why this differes from mvn_loglike + ''' + nobs = len(x) + nobs2 = nobs / 2.0 + SSR = (x**2).sum() + llf = -np.log(SSR) * nobs2 # concentrated likelihood + llf -= (1+np.log(np.pi/nobs2))*nobs2 # with likelihood constant + if np.any(sigma) and sigma.ndim == 2: + #FIXME: robust-enough check? unneeded if _det_sigma gets defined + llf -= .5*np.log(np.linalg.det(sigma)) + return llf + +def mvn_loglike(x, sigma): + '''loglike multivariate normal + + assumes x is 1d, (nobs,) and sigma is 2d (nobs, nobs) + + brute force from formula + no checking of correct inputs + use of inv and log-det should be replace with something more efficient + ''' + #see numpy thread + #Sturla: sqmahal = (cx*cho_solve(cho_factor(S),cx.T).T).sum(axis=1) + sigmainv = linalg.inv(sigma) + logdetsigma = np.log(np.linalg.det(sigma)) + nobs = len(x) + + llf = - np.dot(x, np.dot(sigmainv, x)) + llf -= nobs * np.log(2 * np.pi) + llf -= logdetsigma + llf *= 0.5 + return llf + +def mvn_loglike_chol(x, sigma): + '''loglike multivariate normal + + assumes x is 1d, (nobs,) and sigma is 2d (nobs, nobs) + + brute force from formula + no checking of correct inputs + use of inv and log-det should be replace with something more efficient + ''' + #see numpy thread + #Sturla: sqmahal = (cx*cho_solve(cho_factor(S),cx.T).T).sum(axis=1) + sigmainv = np.linalg.inv(sigma) + cholsigmainv = np.linalg.cholesky(sigmainv).T + x_whitened = np.dot(cholsigmainv, x) + + logdetsigma = np.log(np.linalg.det(sigma)) + nobs = len(x) + from scipy import stats + print('scipy.stats') + print(np.log(stats.norm.pdf(x_whitened)).sum()) + + llf = - np.dot(x_whitened.T, x_whitened) + llf -= nobs * np.log(2 * np.pi) + llf -= logdetsigma + llf *= 0.5 + return llf, logdetsigma, 2 * np.sum(np.log(np.diagonal(cholsigmainv))) +#0.5 * np.dot(x_whitened.T, x_whitened) + nobs * np.log(2 * np.pi) + logdetsigma) + +def mvn_nloglike_obs(x, sigma): + '''loglike multivariate normal + + assumes x is 1d, (nobs,) and sigma is 2d (nobs, nobs) + + brute force from formula + no checking of correct inputs + use of inv and log-det should be replace with something more efficient + ''' + #see numpy thread + #Sturla: sqmahal = (cx*cho_solve(cho_factor(S),cx.T).T).sum(axis=1) + + #Still wasteful to calculate pinv first + sigmainv = np.linalg.inv(sigma) + cholsigmainv = np.linalg.cholesky(sigmainv).T + #2 * np.sum(np.log(np.diagonal(np.linalg.cholesky(A)))) #Dag mailinglist + # logdet not needed ??? + #logdetsigma = 2 * np.sum(np.log(np.diagonal(cholsigmainv))) + x_whitened = np.dot(cholsigmainv, x) + + #sigmainv = linalg.cholesky(sigma) + logdetsigma = np.log(np.linalg.det(sigma)) + + sigma2 = 1. # error variance is included in sigma + + llike = 0.5 * (np.log(sigma2) - 2.* np.log(np.diagonal(cholsigmainv)) + + (x_whitened**2)/sigma2 + + np.log(2*np.pi)) + + return llike + +def invertibleroots(ma): + import numpy.polynomial as poly + pr = poly.polyroots(ma) + insideroots = np.abs(pr)<1 + if insideroots.any(): + pr[np.abs(pr)<1] = 1./pr[np.abs(pr)<1] + pnew = poly.Polynomial.fromroots(pr) + mainv = pn.coef/pnew.coef[0] + wasinvertible = False + else: + mainv = ma + wasinvertible = True + return mainv, wasinvertible + +def getpoly(self, params): + ar = np.r_[[1], -params[:self.nar]] + ma = np.r_[[1], params[-self.nma:]] + import numpy.polynomial as poly + return poly.Polynomial(ar), poly.Polynomial(ma) + +class MLEGLS(GenericLikelihoodModel): + '''ARMA model with exact loglikelhood for short time series + + Inverts (nobs, nobs) matrix, use only for nobs <= 200 or so. + + This class is a pattern for small sample GLS-like models. Intended use + for loglikelihood of initial observations for ARMA. + + + + TODO: + This might be missing the error variance. Does it assume error is + distributed N(0,1) + Maybe extend to mean handling, or assume it is already removed. + ''' + + + def _params2cov(self, params, nobs): + '''get autocovariance matrix from ARMA regression parameter + + ar parameters are assumed to have rhs parameterization + + ''' + ar = np.r_[[1], -params[:self.nar]] + ma = np.r_[[1], params[-self.nma:]] + #print('ar', ar + #print('ma', ma + #print('nobs', nobs + autocov = arma_acovf(ar, ma, nobs=nobs) + #print('arma_acovf(%r, %r, nobs=%d)' % (ar, ma, nobs) + #print(autocov.shape + #something is strange fixed in aram_acovf + autocov = autocov[:nobs] + sigma = toeplitz(autocov) + return sigma + + def loglike(self, params): + sig = self._params2cov(params[:-1], self.nobs) + sig = sig * params[-1]**2 + loglik = mvn_loglike(self.endog, sig) + return loglik + + def fit_invertible(self, *args, **kwds): + res = self.fit(*args, **kwds) + ma = np.r_[[1], res.params[self.nar: self.nar+self.nma]] + mainv, wasinvertible = invertibleroots(ma) + if not wasinvertible: + start_params = res.params.copy() + start_params[self.nar: self.nar+self.nma] = mainv[1:] + #need to add args kwds + res = self.fit(start_params=start_params) + return res + + + +if __name__ == '__main__': + nobs = 50 + ar = [1.0, -0.8, 0.1] + ma = [1.0, 0.1, 0.2] + #ma = [1] + np.random.seed(9875789) + y = arma_generate_sample(ar,ma,nobs,2) + y -= y.mean() #I haven't checked treatment of mean yet, so remove + mod = MLEGLS(y) + mod.nar, mod.nma = 2, 2 #needs to be added, no init method + mod.nobs = len(y) + res = mod.fit(start_params=[0.1, -0.8, 0.2, 0.1, 1.]) + print('DGP', ar, ma) + print(res.params) + from statsmodels.regression import yule_walker + print(yule_walker(y, 2)) + #resi = mod.fit_invertible(start_params=[0.1,0,0.2,0, 0.5]) + #print(resi.params + + arpoly, mapoly = getpoly(mod, res.params[:-1]) + + data = sm.datasets.sunspots.load() + #ys = data.endog[-100:] +## ys = data.endog[12:]-data.endog[:-12] +## ys -= ys.mean() +## mods = MLEGLS(ys) +## mods.nar, mods.nma = 13, 1 #needs to be added, no init method +## mods.nobs = len(ys) +## ress = mods.fit(start_params=np.r_[0.4, np.zeros(12), [0.2, 5.]],maxiter=200) +## print(ress.params +## #from statsmodels.sandbox.tsa import arima as tsaa +## #tsaa +## import matplotlib.pyplot as plt +## plt.plot(data.endog[1]) +## #plt.show() + + sigma = mod._params2cov(res.params[:-1], nobs) * res.params[-1]**2 + print(mvn_loglike(y, sigma)) + llo = mvn_nloglike_obs(y, sigma) + print(llo.sum(), llo.shape) + print(mvn_loglike_chol(y, sigma)) + print(mvn_loglike_sum(y, sigma)) + + + diff --git a/statsmodels/multivariate/__init__.py b/statsmodels/multivariate/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/multivariate/pca.py b/statsmodels/multivariate/pca.py new file mode 100644 index 0000000..c642d5e --- /dev/null +++ b/statsmodels/multivariate/pca.py @@ -0,0 +1,840 @@ +"""Principal Component Analysis + +Author: josef-pktd +Modified by Kevin Sheppard +""" +from __future__ import print_function, division + +import numpy as np +import pandas as pd + +from statsmodels.compat.python import range +from statsmodels.compat.numpy import nanmean +from statsmodels.tools.sm_exceptions import (ValueWarning, + EstimationWarning) + +def _norm(x): + return np.sqrt(np.sum(x * x)) + + +class PCA(object): + """ + Principal Component Analysis + + Parameters + ---------- + data : array-like + Variables in columns, observations in rows + ncomp : int, optional + Number of components to return. If None, returns the as many as the + smaller of the number of rows or columns in data + standardize: bool, optional + Flag indicating to use standardized data with mean 0 and unit + variance. standardized being True implies demean. Using standardized + data is equivalent to computing principal components from the + correlation matrix of data + demean : bool, optional + Flag indicating whether to demean data before computing principal + components. demean is ignored if standardize is True. Demeaning data + but not standardizing is equivalent to computing principal components + from the covariance matrix of data + normalize : bool , optional + Indicates whether th normalize the factors to have unit inner product. + If False, the loadings will have unit inner product. + weights : array, optional + Series weights to use after transforming data according to standardize + or demean when computing the principal components. + gls : bool, optional + Flag indicating to implement a two-step GLS estimator where + in the first step principal components are used to estimate residuals, + and then the inverse residual variance is used as a set of weights to + estimate the final principal components. Setting gls to True requires + ncomp to be less then the min of the number of rows or columns + method : str, optional + Sets the linear algebra routine used to compute eigenvectors + 'svd' uses a singular value decomposition (default). + 'eig' uses an eigenvalue decomposition of a quadratic form + 'nipals' uses the NIPALS algorithm and can be faster than SVD when + ncomp is small and nvars is large. See notes about additional changes + when using NIPALS + tol : float, optional + Tolerance to use when checking for convergence when using NIPALS + max_iter : int, optional + Maximum iterations when using NIPALS + missing : string + Method for missing data. Choices are + 'drop-row' - drop rows with missing values + 'drop-col' - drop columns with missing values + 'drop-min' - drop either rows or columns, choosing by data retention + 'fill-em' - use EM algorithm to fill missing value. ncomp should be + set to the number of factors required + tol_em : float + Tolerance to use when checking for convergence of the EM algorithm + max_em_iter : int + Maximum iterations for the EM algorithm + + Attributes + ---------- + factors : array or DataFrame + nobs by ncomp array of of principal components (scores) + scores : array or DataFrame + nobs by ncomp array of of principal components - identical to factors + loadings : array or DataFrame + ncomp by nvar array of principal component loadings for constructing + the factors + coeff : array or DataFrame + nvar by ncomp array of principal component loadings for constructing + the projections + projection : array or DataFrame + nobs by var array containing the projection of the data onto the ncomp + estimated factors + rsquare : array or Series + ncomp array where the element in the ith position is the R-square + of including the fist i principal components. Note: values are + calculated on the transformed data, not the original data + ic : array or DataFrame + ncomp by 3 array containing the Bai and Ng (2003) Information + criteria. Each column is a different criteria, and each row + represents the number of included factors. + eigenvals : array or Series + nvar array of eigenvalues + eigenvecs : array or DataFrame + nvar by nvar array of eigenvectors + weights : array + nvar array of weights used to compute the principal components, + normalized to unit length + transformed_data : array + Standardized, demeaned and weighted data used to compute + principal components and related quantities + cols : array + Array of indices indicating columns used in the PCA + rows : array + Array of indices indicating rows used in the PCA + + Methods + ------- + plot_scree + Scree plot of the eigenvalues + plot_rsquare + Individual series R-squared plotted against the number of factors + project + Compute projection for a given number of factors + + Examples + -------- + Basic PCA using the correlation matrix of the data + + >>> import numpy as np + >>> from statsmodels.tools.pca import PCA + >>> x = np.random.randn(100)[:, None] + >>> x = x + np.random.randn((100, 100)) + >>> pc = PCA(x) + + Note that the principal components are computed using a SVD and so the + correlation matrix is never constructed, unless method='eig'. + + PCA using the covariance matrix of the data + + >>> pc = PCA(x, standardize=False) + + Limiting the number of factors returned to 1 computed using NIPALS + + >>> pc = PCA(x, ncomp=1, method='nipals') + >>> pc.factors.shape + (100, 1) + + Notes + ----- + The default options perform principal component analysis on the + demeanded, unit variance version of data. Setting standardize to False will + instead onle demean, and setting both standardized and + demean to False will not alter the data. + + Once the data have been transformed, the following relationships hold when + the number of components (ncomp) is the same as tne minimum of the number + of observation or the number of variables. + + .. math: + + X' X = V \\Lambda V' + + .. math: + + F = X V + + .. math: + + X = F V' + + where X is the `data`, F is the array of principal components (`factors` + or `scores`), and V is the array of eigenvectors (`loadings`) and V' is + the array of factor coefficients (`coeff`). + + When weights are provided, the principal components are computed from the + modified data + + .. math: + + \\Omega^{-\\frac{1}{2}} X + + where :math:`\\Omega` is a diagonal matrix composed of the weights. For + example, when using the GLS version of PCA, the elements of :math:`\\Omega` + will be the inverse of the variances of the residuals from + + .. math: + + X - F V' + + where the number of factors is less than the rank of X + + .. [1] J. Bai and S. Ng, "Determining the number of factors in approximate + factor models," Econometrica, vol. 70, number 1, pp. 191-221, 2002 + """ + + def __init__(self, data, ncomp=None, standardize=True, demean=True, + normalize=True, gls=False, weights=None, method='svd', + missing=None, tol=5e-8, max_iter=1000, tol_em=5e-8, + max_em_iter=100, ): + self._index = None + self._columns = [] + if isinstance(data, pd.DataFrame): + self._index = data.index + self._columns = data.columns + + self.data = np.asarray(data) + # Store inputs + self._gls = gls + self._normalize = normalize + self._tol = tol + if not 0 < self._tol < 1: + raise ValueError('tol must be strictly between 0 and 1') + self._max_iter = max_iter + self._max_em_iter = max_em_iter + self._tol_em = tol_em + + # Prepare data + self._standardize = standardize + self._demean = demean + + self._nobs, self._nvar = self.data.shape + if weights is None: + weights = np.ones(self._nvar) + else: + weights = np.array(weights).flatten() + if weights.shape[0] != self._nvar: + raise ValueError('weights should have nvar elements') + weights = weights / np.sqrt((weights ** 2.0).mean()) + self.weights = weights + + # Check ncomp against maximum + min_dim = min(self._nobs, self._nvar) + self._ncomp = min_dim if ncomp is None else ncomp + if self._ncomp > min_dim: + import warnings + + warn = 'The requested number of components is more than can be ' \ + 'computed from data. The maximum number of components is ' \ + 'the minimum of the number of observations or variables' + warnings.warn(warn, ValueWarning) + self._ncomp = min_dim + + self._method = method + if self._method == 'eig': + self._compute_eig = self._compute_using_eig + elif self._method == 'svd': + self._compute_eig = self._compute_using_svd + elif self._method == 'nipals': + self._compute_eig = self._compute_using_nipals + else: + raise ValueError('method is not known.') + + self.rows = np.arange(self._nobs) + self.cols = np.arange(self._nvar) + # Handle missing + self._missing = missing + self._adjusted_data = self.data + if missing is not None: + self._adjust_missing() + # Update size + self._nobs, self._nvar = self._adjusted_data.shape + if self._ncomp == np.min(self.data.shape): + self._ncomp = np.min(self._adjusted_data.shape) + elif self._ncomp > np.min(self._adjusted_data.shape): + raise ValueError('When adjusting for missing values, user ' + 'provided ncomp must be no larger than the ' + 'smallest dimension of the ' + 'missing-value-adjusted data size.') + + # Attributes and internal values + self._tss = 0.0 + self._ess = None + self.transformed_data = None + self._mu = None + self._sigma = None + self._ess_indiv = None + self._tss_indiv = None + self.scores = self.factors = None + self.loadings = None + self.coeff = None + self.eigenvals = None + self.eigenvecs = None + self.projection = None + self.rsquare = None + self.ic = None + + # Prepare data + self.transformed_data = self._prepare_data() + # Perform the PCA + self._pca() + if gls: + self._compute_gls_weights() + self.transformed_data = self._prepare_data() + self._pca() + + # Final calculations + self._compute_rsquare_and_ic() + if self._index is not None: + self._to_pandas() + + def _adjust_missing(self): + """ + Implements alternatives for handling missing values + """ + + def keep_col(x): + index = np.logical_not(np.any(np.isnan(x), 0)) + return x[:, index], index + + def keep_row(x): + index = np.logical_not(np.any(np.isnan(x), 1)) + return x[index, :], index + + if self._missing == 'drop-col': + self._adjusted_data, index = keep_col(self.data) + self.cols = np.where(index)[0] + self.weights = self.weights[index] + elif self._missing == 'drop-row': + self._adjusted_data, index = keep_row(self.data) + self.rows = np.where(index)[0] + elif self._missing == 'drop-min': + drop_col, drop_col_index = keep_col(self.data) + drop_col_size = drop_col.size + + drop_row, drop_row_index = keep_row(self.data) + drop_row_size = drop_row.size + + if drop_row_size > drop_col_size: + self._adjusted_data = drop_row + self.rows = np.where(drop_row_index)[0] + else: + self._adjusted_data = drop_col + self.weights = self.weights[drop_col_index] + self.cols = np.where(drop_col_index)[0] + elif self._missing == 'fill-em': + self._adjusted_data = self._fill_missing_em() + else: + raise ValueError('missing method is not known.') + + # Check adjusted data size + if self._adjusted_data.size == 0: + raise ValueError('Removal of missing values has eliminated all data.') + + def _compute_gls_weights(self): + """ + Computes GLS weights based on percentage of data fit + """ + errors = self.transformed_data - np.asarray(self.projection) + if self._ncomp == self._nvar: + raise ValueError('gls can only be used when ncomp < nvar ' + 'so that residuals have non-zero variance') + var = (errors ** 2.0).mean(0) + weights = 1.0 / var + weights = weights / np.sqrt((weights ** 2.0).mean()) + nvar = self._nvar + eff_series_perc = (1.0 / sum((weights / weights.sum()) ** 2.0)) / nvar + if eff_series_perc < 0.1: + eff_series = int(np.round(eff_series_perc * nvar)) + import warnings + + warn = 'Many series are being down weighted by GLS. Of the ' \ + '{original} series, the GLS estimates are based on only ' \ + '{effective} (effective) ' \ + 'series.'.format(original=nvar, effective=eff_series) + warnings.warn(warn, EstimationWarning) + + self.weights = weights + + def _pca(self): + """ + Main PCA routine + """ + self._compute_eig() + self._compute_pca_from_eig() + self.projection = self.project() + + def __repr__(self): + string = self.__str__() + string = string[:-1] + string += ', id: ' + hex(id(self)) + ')' + return string + + def __str__(self): + string = 'Principal Component Analysis(' + string += 'nobs: ' + str(self._nobs) + ', ' + string += 'nvar: ' + str(self._nvar) + ', ' + if self._standardize: + kind = 'Standardize (Correlation)' + elif self._demean: + kind = 'Demean (Covariance)' + else: + kind = 'None' + string += 'transformation: ' + kind + ', ' + if self._gls: + string += 'GLS, ' + string += 'normalization: ' + str(self._normalize) + ', ' + string += 'number of components: ' + str(self._ncomp) + ', ' + string += 'method: ' + 'Eigenvalue' if self._method == 'eig' else 'SVD' + string += ')' + return string + + def _prepare_data(self): + """ + Standardize or demean data. + """ + adj_data = self._adjusted_data + if np.all(np.isnan(adj_data)): + return np.empty(adj_data.shape[1]).fill(np.nan) + + self._mu = nanmean(adj_data, axis=0) + self._sigma = np.sqrt(nanmean((adj_data - self._mu) ** 2.0, axis=0)) + if self._standardize: + data = (adj_data - self._mu) / self._sigma + elif self._demean: + data = (adj_data - self._mu) + else: + data = adj_data + return data / np.sqrt(self.weights) + + def _compute_using_svd(self): + """SVD method to compute eigenvalues and eigenvecs""" + x = self.transformed_data + u, s, v = np.linalg.svd(x) + self.eigenvals = s ** 2.0 + self.eigenvecs = v.T + + def _compute_using_eig(self): + """ + Eigenvalue decomposition method to compute eigenvalues and eigenvectors + """ + x = self.transformed_data + self.eigenvals, self.eigenvecs = np.linalg.eigh(x.T.dot(x)) + + def _compute_using_nipals(self): + """ + NIPALS implementation to compute small number of eigenvalues and eigenvectors + """ + x = self.transformed_data + if self._ncomp > 1: + x = x + 0.0 # Copy + + tol, max_iter, ncomp = self._tol, self._max_iter, self._ncomp + vals = np.zeros(self._ncomp) + vecs = np.zeros((self._nvar, self._ncomp)) + for i in range(ncomp): + max_var_ind = np.argmax(x.var(0)) + factor = x[:, [max_var_ind]] + _iter = 0 + diff = 1.0 + while diff > tol and _iter < max_iter: + vec = x.T.dot(factor) / (factor.T.dot(factor)) + vec = vec / np.sqrt(vec.T.dot(vec)) + factor_last = factor + factor = x.dot(vec) / (vec.T.dot(vec)) + diff = _norm(factor - factor_last) / _norm(factor) + _iter += 1 + vals[i] = (factor ** 2).sum() + vecs[:, [i]] = vec + if ncomp > 1: + x -= factor.dot(vec.T) + + self.eigenvals = vals + self.eigenvecs = vecs + + def _fill_missing_em(self): + """ + EM algorithm to fill missing values + """ + non_missing = np.logical_not(np.isnan(self.data)) + + # If nothing missing, return without altering the data + if np.all(non_missing): + return self.data + + # 1. Standardized data as needed + data = self.transformed_data = self._prepare_data() + + ncomp = self._ncomp + + # 2. Check for all nans + col_non_missing = np.sum(non_missing, 1) + row_non_missing = np.sum(non_missing, 0) + if np.any(col_non_missing < ncomp) or np.any(row_non_missing < ncomp): + raise ValueError('Implementation requires that all columns and ' + 'all rows have at least ncomp non-missing values') + # 3. Get mask + mask = np.isnan(data) + + # 4. Compute mean + mu = nanmean(data, 0) + + # 5. Replace missing with mean + projection = np.ones((self._nobs, 1)) * mu + projection_masked = projection[mask] + data[mask] = projection_masked + + # 6. Compute eigenvalues and fit + diff = 1.0 + _iter = 0 + while diff > self._tol_em and _iter < self._max_em_iter: + last_projection_masked = projection_masked + # Set transformed data to compute eigenvalues + self.transformed_data = data + # Call correct eig function here + self._compute_eig() + # Call function to compute factors and projection + self._compute_pca_from_eig() + projection = self.project(transform=False, unweight=False) + projection_masked = projection[mask] + data[mask] = projection_masked + delta = last_projection_masked - projection_masked + diff = _norm(delta) / _norm(projection_masked) + _iter += 1 + # Must copy to avoid overwriting original data since replacing values + data = self._adjusted_data + 0.0 + projection = self.project() + data[mask] = projection[mask] + + return data + + def _compute_pca_from_eig(self): + """ + Compute relevant statistics after eigenvalues have been computed + """ + # Ensure sorted largest to smallest + vals, vecs = self.eigenvals, self.eigenvecs + indices = np.argsort(vals) + indices = indices[::-1] + vals = vals[indices] + vecs = vecs[:, indices] + if (vals <= 0).any(): + # Discard and warn + num_good = vals.shape[0] - (vals <= 0).sum() + if num_good < self._ncomp: + import warnings + + warn = 'Only {num:d} eigenvalues are positive. The is the ' \ + 'maximum number of components that can be extracted.' + warnings.warn(warn.format(num=num_good), EstimationWarning) + + self._ncomp = num_good + vals[num_good:] = np.finfo(np.float64).tiny + # Use ncomp for the remaining calculations + vals = vals[:self._ncomp] + vecs = vecs[:, :self._ncomp] + self.eigenvals, self.eigenvecs = vals, vecs + # Select correct number of components to return + self.scores = self.factors = self.transformed_data.dot(vecs) + self.loadings = vecs + self.coeff = vecs.T + if self._normalize: + self.coeff = (self.coeff.T * np.sqrt(vals)).T + self.factors /= np.sqrt(vals) + self.scores = self.factors + + def _compute_rsquare_and_ic(self): + """ + Final statistics to compute + """ + # TSS and related calculations + # TODO: This needs careful testing, with and without weights, gls, standardized and demean + weights = self.weights + ss_data = self.transformed_data * np.sqrt(weights) + self._tss_indiv = np.sum(ss_data ** 2, 0) + self._tss = np.sum(self._tss_indiv) + self._ess = np.zeros(self._ncomp + 1) + self._ess_indiv = np.zeros((self._ncomp + 1, self._nvar)) + for i in range(self._ncomp + 1): + # Projection in the same space as transformed_data + projection = self.project(ncomp=i, transform=False, unweight=False) + indiv_rss = (projection ** 2).sum(axis=0) + rss = indiv_rss.sum() + self._ess[i] = self._tss - rss + self._ess_indiv[i, :] = self._tss_indiv - indiv_rss + self.rsquare = 1.0 - self._ess / self._tss + # Information Criteria + ess = self._ess + invalid = ess <= 0 # Prevent log issues of 0 + if invalid.any(): + last_obs = (np.where(invalid)[0]).min() + ess = ess[:last_obs] + + log_ess = np.log(ess) + r = np.arange(ess.shape[0]) + + nobs, nvar = self._nobs, self._nvar + sum_to_prod = (nobs + nvar) / (nobs * nvar) + min_dim = min(nobs, nvar) + penalties = np.array([sum_to_prod * np.log(1.0 / sum_to_prod), + sum_to_prod * np.log(min_dim), + np.log(min_dim) / min_dim]) + penalties = penalties[:, None] + ic = log_ess + r * penalties + self.ic = ic.T + + def project(self, ncomp=None, transform=True, unweight=True): + """ + Project series onto a specific number of factors + + Parameters + ---------- + ncomp : int, optional + Number of components to use. If omitted, all components + initially computed are used. + + Returns + ------- + projection : array + nobs by nvar array of the projection onto ncomp factors + transform : bool + Flag indicating whether to return the projection in the original + space of the data (True, default) or in the space of the + standardized/demeaned data + unweight : bool + Flag indicating whether to undo the effects of the estimation + weights + + Notes + ----- + """ + # Projection needs to be scaled/shifted based on inputs + ncomp = self._ncomp if ncomp is None else ncomp + if ncomp > self._ncomp: + raise ValueError('ncomp must be smaller than the number of ' + 'components computed.') + factors = np.asarray(self.factors) + coeff = np.asarray(self.coeff) + + projection = factors[:, :ncomp].dot(coeff[:ncomp, :]) + if transform or unweight: + projection *= np.sqrt(self.weights) + if transform: + # Remove the weights, which do not depend on transformation + if self._standardize: + projection *= self._sigma + if self._standardize or self._demean: + projection += self._mu + if self._index is not None: + projection = pd.DataFrame(projection, + columns=self._columns, + index=self._index) + return projection + + def _to_pandas(self): + """ + Returns pandas DataFrames for all values + """ + index = self._index + # Principal Components + num_zeros = np.ceil(np.log10(self._ncomp)) + comp_str = 'comp_{0:0' + str(int(num_zeros)) + 'd}' + cols = [comp_str.format(i) for i in range(self._ncomp)] + df = pd.DataFrame(self.factors, columns=cols, index=index) + self.scores = self.factors = df + # Projections + df = pd.DataFrame(self.projection, + columns=self._columns, + index=index) + self.projection = df + # Weights + df = pd.DataFrame(self.coeff, index=cols, columns=self._columns) + self.coeff = df + # Loadings + df = pd.DataFrame(self.loadings, index=self._columns, columns=cols) + self.loadings = df + # eigenvals + self.eigenvals = pd.Series(self.eigenvals) + self.eigenvals.name = 'eigenvals' + # eigenvecs + vec_str = comp_str.replace('comp', 'eigenvec') + cols = [vec_str.format(i) for i in range(self.eigenvecs.shape[1])] + self.eigenvecs = pd.DataFrame(self.eigenvecs, columns=cols) + # R2 + self.rsquare = pd.Series(self.rsquare) + self.rsquare.index.name = 'ncomp' + self.rsquare.name = 'rsquare' + # IC + self.ic = pd.DataFrame(self.ic, columns=['IC_p1', 'IC_p2', 'IC_p3']) + self.ic.index.name = 'ncomp' + + def plot_scree(self, ncomp=None, log_scale=True, cumulative=False, ax=None): + """ + Plot of the ordered eigenvalues + + Parameters + ---------- + ncomp : int, optional + Number of components ot include in the plot. If None, will + included the same as the number of components computed + log_scale : boot, optional + Flag indicating whether ot use a log scale for the y-axis + cumulative : bool, optional + Flag indicating whether to plot the eigenvalues or cumulative + eigenvalues + ax : Matplotlib axes instance, optional + An axes on which to draw the graph. If omitted, new a figure + is created + + Returns + ------- + fig : figure + Handle to the figure + """ + import statsmodels.graphics.utils as gutils + + fig, ax = gutils.create_mpl_ax(ax) + + ncomp = self._ncomp if ncomp is None else ncomp + vals = np.asarray(self.eigenvals) + vals = vals[:self._ncomp] + if cumulative: + vals = np.cumsum(vals) + + if log_scale: + ax.set_yscale('log') + ax.plot(np.arange(ncomp), vals[: ncomp], 'bo') + ax.autoscale(tight=True) + xlim = np.array(ax.get_xlim()) + sp = xlim[1] - xlim[0] + xlim += 0.02 * np.array([-sp, sp]) + ax.set_xlim(xlim) + + ylim = np.array(ax.get_ylim()) + scale = 0.02 + if log_scale: + sp = np.log(ylim[1] / ylim[0]) + ylim = np.exp(np.array([np.log(ylim[0]) - scale * sp, + np.log(ylim[1]) + scale * sp])) + else: + sp = ylim[1] - ylim[0] + ylim += scale * np.array([-sp, sp]) + ax.set_ylim(ylim) + ax.set_title('Scree Plot') + ax.set_ylabel('Eigenvalue') + ax.set_xlabel('Component Number') + fig.tight_layout() + + return fig + + def plot_rsquare(self, ncomp=None, ax=None): + """ + Box plots of the individual series R-square against the number of PCs + + Parameters + ---------- + ncomp : int, optional + Number of components ot include in the plot. If None, will + plot the minimum of 10 or the number of computed components + ax : Matplotlib axes instance, optional + An axes on which to draw the graph. If omitted, new a figure + is created + + Returns + ------- + fig : figure + Handle to the figure + """ + import statsmodels.graphics.utils as gutils + + fig, ax = gutils.create_mpl_ax(ax) + + ncomp = 10 if ncomp is None else ncomp + ncomp = min(ncomp, self._ncomp) + # R2s in rows, series in columns + r2s = 1.0 - self._ess_indiv / self._tss_indiv + r2s = r2s[1:] + r2s = r2s[:ncomp] + ax.boxplot(r2s.T) + ax.set_title('Individual Input $R^2$') + ax.set_ylabel('$R^2$') + ax.set_xlabel('Number of Included Principal Components') + + return fig + + +def pca(data, ncomp=None, standardize=True, demean=True, normalize=True, + gls=False, weights=None, method='svd'): + """ + Principal Component Analysis + + Parameters + ---------- + data : array + Variables in columns, observations in rows. + ncomp : int, optional + Number of components to return. If None, returns the as many as the + smaller to the number of rows or columns of data. + standardize: bool, optional + Flag indicating to use standardized data with mean 0 and unit + variance. standardized being True implies demean. + demean : bool, optional + Flag indicating whether to demean data before computing principal + components. demean is ignored if standardize is True. + normalize : bool , optional + Indicates whether th normalize the factors to have unit inner + product. If False, the loadings will have unit inner product. + weights : array, optional + Series weights to use after transforming data according to standardize + or demean when computing the principal components. + gls : bool, optional + Flag indicating to implement a two-step GLS estimator where + in the first step principal components are used to estimate residuals, + and then the inverse residual variance is used as a set of weights to + estimate the final principal components + method : str, optional + Determines the linear algebra routine uses. 'eig', the default, + uses an eigenvalue decomposition. 'svd' uses a singular value + decomposition. + + Returns + ------- + factors : array or DataFrame + nobs by ncomp array of of principal components (also known as scores) + loadings : array or DataFrame + ncomp by nvar array of principal component loadings for constructing + the factors + projection : array or DataFrame + nobs by var array containing the projection of the data onto the ncomp + estimated factors + rsquare : array or Series + ncomp array where the element in the ith position is the R-square + of including the fist i principal components. The values are + calculated on the transformed data, not the original data. + ic : array or DataFrame + ncomp by 3 array containing the Bai and Ng (2003) Information + criteria. Each column is a different criteria, and each row + represents the number of included factors. + eigenvals : array or Series + nvar array of eigenvalues + eigenvecs : array or DataFrame + nvar by nvar array of eigenvectors + + Notes + ----- + This is a simple function wrapper around the PCA class. See PCA for more information + and additional methods. + """ + pc = PCA(data, ncomp=ncomp, standardize=standardize, demean=demean, + normalize=normalize, gls=gls, weights=weights, method=method) + + return (pc.factors, pc.loadings, pc.projection, pc.rsquare, pc.ic, + pc.eigenvals, pc.eigenvecs) diff --git a/statsmodels/multivariate/tests/__init__.py b/statsmodels/multivariate/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/multivariate/tests/results/__init__.py b/statsmodels/multivariate/tests/results/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/multivariate/tests/results/datamlw.py b/statsmodels/multivariate/tests/results/datamlw.py new file mode 100644 index 0000000..e1f2cb9 --- /dev/null +++ b/statsmodels/multivariate/tests/results/datamlw.py @@ -0,0 +1,288 @@ +import numpy as np +from numpy import array + + +class Holder(object): + pass + + +data = Holder() +data.comment = 'generated data, divide by 1000' +data.name = 'data' +data.xo = array([[ -419, -731, -1306, -1294], + [ 6, 529, -200, -437], + [ -27, -833, -6, -564], + [ -304, -273, -502, -739], + [ 1377, -912, 927, 280], + [ -375, -517, -514, 49], + [ 247, -504, 123, -259], + [ 712, 534, -773, 286], + [ 195, -1080, 3256, -178], + [ -854, 75, -706, -1084], + [-1219, -612, -15, -203], + [ 550, -628, -483, -2686], + [ -365, 1376, -1266, 317], + [ -489, 544, -195, 431], + [ -656, 854, 840, -723], + [ 16, -1385, -880, -460], + [ 258, -2252, 96, 54], + [ 2049, -750, -1115, 381], + [ -65, 280, -777, 416], + [ 755, 82, -806, 1027], + [ -39, -170, -2134, 743], + [ -859, 780, 746, -133], + [ 762, 252, -450, -459], + [ -941, -202, 49, -202], + [ -54, 115, 455, 388], + [-1348, 1246, 1430, -480], + [ 229, -535, -1831, 1524], + [ -651, -167, 2116, 483], + [-1249, -1373, 888, -1092], + [ -75, -2162, 486, -496], + [ 2436, -1627, -1069, 162], + [ -63, 560, -601, 587], + [ -60, 1051, -277, 1323], + [ 1329, -1294, 68, 5], + [ 1532, -633, -923, 696], + [ 669, 895, -1762, -375], + [ 1129, -548, 2064, 609], + [ 1320, 573, 2119, 270], + [ -213, -412, -2517, 1685], + [ 73, -979, 1312, -1220], + [-1360, -2107, -237, 1522], + [ -645, 205, -543, -169], + [ -212, 1072, 543, -128], + [ -352, -129, -605, -904], + [ 511, 85, 167, -1914], + [ 1515, 1862, 942, 1622], + [ -465, 623, -495, -89], + [-1396, -979, 1758, 128], + [ -255, -47, 980, 501], + [-1282, -58, -49, -610], + [ -889, -1177, -492, 494], + [ 1415, 1146, 696, -722], + [ 1237, -224, -1609, -64], + [ -528, -1625, 231, 883], + [ -327, 1636, -476, -361], + [ -781, 793, 1882, 234], + [ -506, -561, 1988, -810], + [-1233, 1467, -261, 2164], + [ 53, 1069, 824, 2123], + [-1200, -441, -321, 339], + [ 1606, 298, -995, 1292], + [-1740, -672, -1628, -129], + [-1450, -354, 224, -657], + [-2556, 1006, -706, -1453], + [ -717, -463, 345, -1821], + [ 1056, -38, -420, -455], + [ -523, 565, 425, 1138], + [-1030, -187, 683, 78], + [ -214, -312, -1171, -528], + [ 819, 736, -265, 423], + [ 1339, 351, 1142, 579], + [ -387, -126, -1573, 2346], + [ 969, 2, 327, -134], + [ 163, 227, 90, 2021], + [ 1022, -1076, 174, 304], + [ 1042, 1317, 311, 880], + [ 2018, -840, 295, 2651], + [ -277, 566, 1147, -189], + [ 20, 467, 1262, 263], + [ -663, 1061, -1552, -1159], + [ 1830, 391, 2534, -199], + [ -487, 752, -1061, 351], + [-2138, -556, -367, -457], + [ -868, -411, -559, 726], + [ 1770, 819, -892, -363], + [ 553, -736, -169, -490], + [ 388, -503, 809, -821], + [ -516, -1452, -192, 483], + [ 493, 2904, 1318, 2591], + [ 175, 584, -1001, 1675], + [ 1316, -1596, -460, 1500], + [ 1212, 214, -644, -696], + [ -501, 338, 1197, -841], + [ -587, -469, -1101, 24], + [-1205, 1910, 659, 1232], + [ -150, 398, 594, 394], + [ 34, -663, 235, -334], + [-1580, 647, 239, -351], + [-2177, -345, 1215, -1494], + [ 1923, 329, -152, 1128]]) + +princomp1 = Holder() +princomp1.comment = 'mlab.princomp(x, nout=3)' +princomp1.factors = array([[-0.83487832815382, -1.75681522344645, -0.50882660928949, -0.59661466511045], + [-0.18695786699253, -0.10732909330422, 0.23971799542554, -0.75468286946853], + [-0.57403949255604, -0.39667006607544, -0.7927838094217 , 0.02652621881328], + [-0.60828125251513, -0.75979035898754, -0.20148864200404, -0.40278856050237], + [ 0.55997928601548, 0.88869370546643, -1.55474410845786, 0.23033958281961], + [-0.18023239851961, -0.72398923145328, -0.07056264751117, 0.29292391015376], + [-0.189029743271 , -0.05888596186903, -0.63882208368513, -0.05682951829677], + [ 0.94694345324739, -0.33448036234864, 0.16665867708366, -0.67190948646953], + [-1.355171899399 , 2.58899695901774, -1.53157119606928, 0.93743278678908], + [-1.06797676403358, -1.01894055566289, 0.29181722134698, -0.65261957826524], + [-1.08919199915725, -0.5395876105009 , 0.18846579824378, 0.61935728909742], + [-1.36598849770841, -1.00986627679465, -1.6090477073157 , -1.82708847399443], + [ 0.561511276285 , -0.74919011595195, 1.49872898209738, -0.80588545345232], + [ 0.04805787176428, -0.05522267212748, 0.82943784435024, 0.01537039050312], + [-1.12006939155398, 0.73462770352006, 0.58868274831601, -0.67786987413505], + [-0.26087838474316, -1.33362289066951, -1.02932517860259, 0.24865839951801], + [-0.24666198784909, -0.58247196399204, -1.78971960966265, 1.18908143657302], + [ 1.80675592845666, -0.73341258204636, -1.45012544705912, -0.44875329121288], + [ 0.4794281391435 , -0.57169295903913, 0.48557628591056, -0.11638075289238], + [ 1.39425263398653, -0.3665732682294 , 0.06937942447187, 0.06683559082703], + [ 1.11015707065101, -1.87631329249852, 0.48914958604867, 0.11096926802212], + [-0.85159530389901, 0.68543874135386, 0.86736021483251, -0.17641002537865], + [ 0.34109015314112, -0.25431311542374, -0.36804227540019, -0.95824474920131], + [-0.86253950274987, -0.28796613689709, 0.30820634958709, 0.27228599921917], + [ 0.01266190412089, 0.48559962017667, 0.14020630700546, 0.18517398749337], + [-1.56345869427724, 1.27917754070516, 1.25640847929385, -0.36055181722313], + [ 1.62834293379132, -1.51923809467869, 0.27754976407182, 0.79362967384835], + [-0.94400458067084, 1.77733054371289, 0.03595731772774, 0.96570688640992], + [-2.11906234438329, -0.13226430948321, -0.78992396115366, 0.66362103473975], + [-0.94372331181891, -0.37502966791165, -1.77907324401749, 0.97801542954941], + [ 1.76575198740032, -0.92309597844861, -2.3872195277998 , -0.21817018301121], + [ 0.57418226616373, -0.2925257318724 , 0.71180507312941, -0.13937750314467], + [ 1.01654397566275, 0.28855305878842, 1.25119859389106, 0.11257524396004], + [ 0.58979013567212, -0.06866577243092, -1.74447546690995, 0.13917953157575], + [ 1.62072087150051, -0.5835145063711 , -0.99029357957459, -0.06334029436682], + [ 0.893493925425 , -1.23995040005948, 0.40058503790479, -1.49029669097391], + [ 0.26990527585623, 2.03399854143898, -1.2335089890881 , 0.54010061879979], + [ 0.33504096277444, 2.42394994177782, -0.6643863358332 , -0.42471161848557], + [ 1.69952476943058, -2.1707037237448 , 0.79694026483866, 0.88177267205969], + [-1.41498253257895, 0.65248089992094, -1.40045976465378, -0.12045332880702], + [-0.22640706265253, -0.94114558124915, -0.18868114063537, 2.67652245892778], + [-0.37493712386529, -0.61985213642068, 0.5383582946365 , -0.17931524703276], + [-0.30437796317839, 0.74252786648649, 0.73255373596822, -0.64993745548429], + [-0.68788283675831, -0.84714762684627, -0.10721753874211, -0.59777382822281], + [-1.00667616522842, -0.06670525233919, -0.92973707141688, -1.60742284256649], + [ 1.95220512266515, 2.05751265066695, 0.79640648143073, -0.59608004229343], + [-0.15504464969388, -0.3882079443045 , 0.75049869361395, -0.44163703260023], + [-1.6686863460652 , 0.96325894557423, -0.16453379247258, 1.4560996746313 ], + [-0.25573631707529, 0.88265554068571, 0.08984550855664, 0.53561910563178], + [-1.29430028690793, -0.48042359291447, 0.49318558750269, 0.03689178852848], + [-0.34391235307349, -0.95154811896716, -0.09714022474353, 1.19792361047367], + [ 0.34367523316975, 1.16641214447854, -0.39528838072965, -1.72565643987406], + [ 1.23887392116229, -1.27474554996132, -0.65859544264097, -0.81757560038832], + [-0.17739006831099, -0.29057501559843, -0.62533324788504, 1.7092669546224 ], + [-0.08610919021307, -0.06524996994257, 1.3018284944661 , -1.28219607271255], + [-0.95717735853496, 1.79841555744597, 0.75799149339397, 0.23542916575208], + [-1.70175078442029, 1.33831900642462, -0.73979048943944, 0.26157699746442], + [ 0.84631686421106, 0.32029666775009, 2.51638540556813, 0.90367536744335], + [ 1.22693220256582, 1.45665385966518, 1.27480662666555, 0.78786331120259], + [-0.59251239046609, -0.660398245535 , 0.53258334042042, 0.81248748854679], + [ 2.22723057510913, -0.22856960444805, -0.15586801032885, -0.26957090658609], + [-0.83192612439183, -2.11983096548132, 0.75319973501664, 0.62196293266702], + [-1.577627210601 , -0.3747136286972 , 0.31736538266249, 0.30187577548949], + [-2.28230005998543, -1.17283119424281, 1.83780755209602, -0.75928026219594], + [-1.90574204329052, -0.34197417196464, -0.59978910354131, -0.68240235236779], + [ 0.48132729275936, -0.2524965456322 , -0.75271273075 , -0.89651237903089], + [ 0.26961427953002, 0.62968227134995, 0.99324664633985, 0.59917742452108], + [-0.95910506784013, 0.31907970712369, 0.35568397653203, 0.60155535679072], + [-0.18528259973205, -1.31831013869974, -0.09749195643548, -0.39885348684496], + [ 0.9608404103702 , 0.23727553971573, 0.20695289013955, -0.65281918968052], + [ 0.85302395609555, 1.5303724004181 , -0.56440186223081, -0.27348033453255], + [ 1.72786301913767, -1.14859994931789, 1.16222121440674, 1.39284961909257], + [ 0.37711527308989, 0.47231886947072, -0.69423676772182, -0.53515102147655], + [ 1.35642227654922, 0.53204130038923, 0.69844068787197, 1.04544871561741], + [ 0.57797880484094, 0.08044525072063, -1.32634695941334, 0.35179408060132], + [ 1.29437232500619, 1.07461562326311, 0.54545226737269, -0.6836610122092 ], + [ 2.74736726573105, 0.90881277479338, -0.98342785084735, 1.38171127911719], + [-0.67749479829901, 1.10093727650063, 0.28416704607992, -0.24984509303044], + [-0.24513961858774, 1.32098977907584, 0.16904762754153, 0.00886790270539], + [-0.5392290825383 , -1.43851802284774, 1.0064737206577 , -1.52649870396689], + [ 0.19486366400459, 2.77236000318994, -1.32201258472682, -0.75922390642504], + [ 0.33271229220962, -0.78464273816827, 1.09930224781861, -0.32184679755027], + [-1.72814706427698, -1.09275114767838, 0.7451569579997 , 0.72871211772761], + [-0.035506207751 , -0.72161367235521, 0.52828318684787, 0.87177739169758], + [ 1.31224955134141, -0.22742530984642, -0.44682270809773, -1.72769462581607], + [-0.07125058353119, -0.36850925227739, -1.01188688859296, -0.24962251325969], + [-0.69840680770104, 0.4925285516285 , -1.0255829922787 , -0.36214090052941], + [-0.2530614593082 , -0.68595709316063, -0.56882710610856, 1.25787365685572], + [ 1.93782484285419, 2.67095706598253, 2.4023579082791 , -0.09112046819432], + [ 1.57782156817208, -0.39819017512275, 1.01938038947667, 0.39718992194809], + [ 1.6839282738726 , -0.37808442385434, -1.36566197748227, 1.22029200163339], + [ 0.54652714502605, -0.38206797548206, -0.70554510441189, -1.31224358889695], + [-1.30026063006148, 0.90642495630747, 0.02711437433058, -0.44482098905042], + [-0.1239033493518 , -1.29112252171673, 0.18092802221218, 0.22673242779457], + [ 0.01152882540055, 1.13242883415094, 2.34980443084773, 0.17712319903618], + [-0.0505195424414 , 0.6807219067402 , 0.37771832345982, 0.0842510459176 ], + [-0.44230076745505, -0.07002728477811, -0.6716520563439 , 0.09637247949641], + [-1.31245480585229, -0.01674966464909, 1.21063252882651, -0.03927111631335], + [-2.94268586886381, 0.20925236551048, 0.30321714445262, 0.22027672852006], + [ 2.04121905977187, 0.58496246543101, -0.5192457175416 , -0.37212298770116]]) +princomp1.values = array([[ 1.29489288337888], + [ 1.12722515391348], + [ 0.94682423958163], + [ 0.65890241090379]]) +princomp1.name = 'princomp1' +princomp1.coef = array([[ 0.65989917631713, 0.22621848650964, -0.5882833472413 , -0.40899997165748], + [ 0.15824945056105, 0.3189419948895 , 0.71689623797385, -0.5994104597619 ], + [-0.3488766362785 , 0.90294049788532, -0.17151017930575, 0.1832151967827 ], + [ 0.64635538301471, 0.17832458477678, 0.33251578268108, 0.66321815082225]]) + +princomp2 = Holder() +princomp2.comment = 'mlab.princomp(x[:20,], nout=3)' +princomp2.factors = array([[ 0.74592631465403, -0.92093638563647, 1.10020213969681, -0.20234362115983], + [ 0.40379773814409, -0.23694214086306, -0.53526599590626, 0.48048423978257], + [-0.43826559396565, -0.26267383420164, 0.35939862515391, -0.15176605914773], + [ 0.29427656853499, -0.56363285386285, 0.19525662206552, -0.0384830001072 ], + [-1.4327917748351 , 1.18414191887856, 0.05435949672922, 0.46861687286613], + [ 0.23033214569426, -0.00452237842477, 0.00346120473054, -0.61483888402985], + [-0.40976419499281, 0.10137131352284, 0.02570805136468, 0.06798926306103], + [ 0.83201287149759, 0.82736894861103, -0.35298970920805, 0.49344802383821], + [-3.36634598435507, -0.18324521714611, -1.12118215528184, 0.2057949493723 ], + [ 0.70198992281665, -1.1856449495675 , 0.02465727900177, -0.08333428418838], + [-0.13789069679894, -0.79430992968357, -0.33106496391047, -1.01808298459082], + [-0.10779840884825, -1.41970796854378, 1.55590290358904, 1.34014813517248], + [ 1.8229340670437 , 0.13065838030104, -1.06152350166072, 0.11456488463131], + [ 0.51650051521229, 0.07999783864926, -1.08601194413786, -0.28255247881905], + [-0.24654203558433, -1.02895891025197, -1.34475655787845, 0.52240852619949], + [ 0.03542169335227, -0.01198903021187, 1.12649412049726, -0.60518306798831], + [-1.23945075955452, 0.48778599927278, 1.11522465483282, -0.994827967694 ], + [ 0.30661562766349, 1.91993049714024, 1.08834307939522, 0.61608892787963], + [ 0.8241280516035 , 0.43533554216801, -0.48261931874702, -0.22391158066897], + [ 0.6649139327178 , 1.44597315984982, -0.33359403032613, -0.094219894409 ]]) +princomp2.values = array([[ 1.16965204468073], + [ 0.77687367815155], + [ 0.72297937656591], + [ 0.32548581375971]]) +princomp2.name = 'princomp2' +princomp2.coef = array([[-0.13957162231397, 0.6561182967648 , 0.32256106777669, 0.66781951188167], + [ 0.49534264552989, -0.08241251099014, -0.6919444767593 , 0.51870674049413], + [-0.85614372781797, -0.11427402995055, -0.47665923729502, 0.16357058078438], + [ 0.04661912785591, 0.74138950947638, -0.43584764555793, -0.50813884128056]]) + +princomp3 = Holder() +princomp3.comment = 'mlab.princomp(x[:20,]-x[:20,].mean(0), nout=3)' +princomp3.factors = array([[ 0.74592631465403, -0.92093638563647, 1.10020213969681, -0.20234362115983], + [ 0.40379773814409, -0.23694214086306, -0.53526599590626, 0.48048423978257], + [-0.43826559396565, -0.26267383420164, 0.35939862515391, -0.15176605914773], + [ 0.29427656853499, -0.56363285386285, 0.19525662206552, -0.0384830001072 ], + [-1.4327917748351 , 1.18414191887856, 0.05435949672922, 0.46861687286613], + [ 0.23033214569426, -0.00452237842477, 0.00346120473054, -0.61483888402985], + [-0.40976419499281, 0.10137131352284, 0.02570805136468, 0.06798926306103], + [ 0.83201287149759, 0.82736894861103, -0.35298970920805, 0.49344802383821], + [-3.36634598435507, -0.18324521714611, -1.12118215528184, 0.2057949493723 ], + [ 0.70198992281665, -1.1856449495675 , 0.02465727900177, -0.08333428418838], + [-0.13789069679894, -0.79430992968357, -0.33106496391047, -1.01808298459082], + [-0.10779840884825, -1.41970796854378, 1.55590290358904, 1.34014813517248], + [ 1.8229340670437 , 0.13065838030104, -1.06152350166072, 0.11456488463131], + [ 0.51650051521229, 0.07999783864926, -1.08601194413786, -0.28255247881905], + [-0.24654203558433, -1.02895891025197, -1.34475655787845, 0.52240852619949], + [ 0.03542169335227, -0.01198903021187, 1.12649412049726, -0.60518306798831], + [-1.23945075955452, 0.48778599927278, 1.11522465483282, -0.994827967694 ], + [ 0.30661562766349, 1.91993049714024, 1.08834307939522, 0.61608892787963], + [ 0.8241280516035 , 0.43533554216801, -0.48261931874702, -0.22391158066897], + [ 0.6649139327178 , 1.44597315984982, -0.33359403032613, -0.094219894409 ]]) +princomp3.values = array([[ 1.16965204468073], + [ 0.77687367815155], + [ 0.72297937656591], + [ 0.32548581375971]]) +princomp3.name = 'princomp3' +princomp3.coef = array([[-0.13957162231397, 0.6561182967648 , 0.32256106777669, 0.66781951188167], + [ 0.49534264552989, -0.08241251099014, -0.6919444767593 , 0.51870674049413], + [-0.85614372781797, -0.11427402995055, -0.47665923729502, 0.16357058078438], + [ 0.04661912785591, 0.74138950947638, -0.43584764555793, -0.50813884128056]]) + diff --git a/statsmodels/multivariate/tests/test_pca.py b/statsmodels/multivariate/tests/test_pca.py new file mode 100644 index 0000000..f45cd3b --- /dev/null +++ b/statsmodels/multivariate/tests/test_pca.py @@ -0,0 +1,383 @@ +from __future__ import print_function, division + +import os +import sys +from unittest import TestCase +import warnings + +import numpy as np +from numpy.testing import assert_allclose, assert_equal, assert_raises +from numpy.testing.decorators import skipif +import pandas as pd + +try: + import matplotlib.pyplot as plt + missing_matplotlib = False +except ImportError: + missing_matplotlib = True + +from statsmodels.multivariate.pca import PCA +from statsmodels.multivariate.tests.results.datamlw import data, princomp1, princomp2 +from statsmodels.compat.numpy import nanmean + +DECIMAL_5 = .00001 +WIN32 = os.name == 'nt' and sys.maxsize < 2**33 + + +class TestPCA(TestCase): + @classmethod + def setUpClass(cls): + rs = np.random.RandomState() + rs.seed(1234) + k = 3 + n = 100 + t = 200 + lam = 2 + + norm_rng = rs.standard_normal + e = norm_rng((t, n)) + f = norm_rng((t, k)) + b = rs.standard_gamma(lam, size=(k, n)) / lam + cls.x = f.dot(b) + e + cls.x_copy = cls.x + 0.0 + cls.rs = rs + + k = 3 + n = 300 + t = 200 + lam = 2 + + norm_rng = rs.standard_normal + e = norm_rng((t, n)) + f = norm_rng((t, k)) + b = rs.standard_gamma(lam, size=(k, n)) / lam + cls.x_wide = f.dot(b) + e + + @skipif(missing_matplotlib) + def test_smoke_plot_and_repr(self): + pc = PCA(self.x) + fig = pc.plot_scree() + fig = pc.plot_scree(ncomp=10) + fig = pc.plot_scree(log_scale=False) + fig = pc.plot_scree(cumulative=True) + fig = pc.plot_rsquare() + fig = pc.plot_rsquare(ncomp=5) + # Additional smoke test + pc.__repr__() + pc = PCA(self.x, standardize=False) + pc.__repr__() + pc = PCA(self.x, standardize=False, demean=False) + pc.__repr__() + # Check data for no changes + assert_equal(self.x, pc.data) + + def test_eig_svd_equiv(self): + """ + Test leading components since the tail end can differ + """ + pc_eig = PCA(self.x) + pc_svd = PCA(self.x, method='svd') + + assert_allclose(pc_eig.projection, pc_svd.projection) + assert_allclose(np.abs(pc_eig.factors[:, :2]), + np.abs(pc_svd.factors[:, :2])) + assert_allclose(np.abs(pc_eig.coeff[:2, :]), + np.abs(pc_svd.coeff[:2, :])) + assert_allclose(pc_eig.eigenvals, + pc_svd.eigenvals) + assert_allclose(np.abs(pc_eig.eigenvecs[:, :2]), + np.abs(pc_svd.eigenvecs[:, :2])) + + pc_svd = PCA(self.x, method='svd', ncomp=2) + pc_nipals = PCA(self.x, method='nipals', ncomp=2) + assert_allclose(np.abs(pc_nipals.factors), + np.abs(pc_svd.factors), + atol=DECIMAL_5) + assert_allclose(np.abs(pc_nipals.coeff), + np.abs(pc_svd.coeff), + atol=DECIMAL_5) + assert_allclose(pc_nipals.eigenvals, + pc_svd.eigenvals, + atol=DECIMAL_5) + assert_allclose(np.abs(pc_nipals.eigenvecs), + np.abs(pc_svd.eigenvecs), + atol=DECIMAL_5) + # Check data for no changes + assert_equal(self.x, pc_svd.data) + # Check data for no changes + assert_equal(self.x, pc_eig.data) + # Check data for no changes + assert_equal(self.x, pc_nipals.data) + + def test_options(self): + pc = PCA(self.x) + pc_no_norm = PCA(self.x, normalize=False) + assert_allclose(pc.factors.dot(pc.coeff), + pc_no_norm.factors.dot(pc_no_norm.coeff)) + princomp = pc.factors + assert_allclose(princomp.T.dot(princomp), np.eye(100), atol=1e-5) + weights = pc_no_norm.coeff + assert_allclose(weights.T.dot(weights), np.eye(100), atol=1e-5) + + pc_10 = PCA(self.x, ncomp=10) + assert_allclose(pc.factors[:, :10], pc_10.factors) + assert_allclose(pc.coeff[:10, :], pc_10.coeff) + assert_allclose(pc.rsquare[:(10 + 1)], pc_10.rsquare) + assert_allclose(pc.eigenvals[:10], pc_10.eigenvals) + assert_allclose(pc.eigenvecs[:, :10], pc_10.eigenvecs) + + pc = PCA(self.x, standardize=False, normalize=False) + mu = self.x.mean(0) + xdm = self.x - mu + xpx = xdm.T.dot(xdm) + val, vec = np.linalg.eigh(xpx) + ind = np.argsort(val) + ind = ind[::-1] + val = val[ind] + vec = vec[:, ind] + assert_allclose(xdm, pc.transformed_data) + assert_allclose(val, pc.eigenvals) + assert_allclose(np.abs(vec), np.abs(pc.eigenvecs)) + assert_allclose(np.abs(pc.factors), np.abs(xdm.dot(vec))) + assert_allclose(pc.projection, xdm + mu) + + pc = PCA(self.x, standardize=False, demean=False, normalize=False) + x = self.x + xpx = x.T.dot(x) + val, vec = np.linalg.eigh(xpx) + ind = np.argsort(val) + ind = ind[::-1] + val = val[ind] + vec = vec[:, ind] + assert_allclose(x, pc.transformed_data) + assert_allclose(val, pc.eigenvals) + assert_allclose(np.abs(vec), np.abs(pc.eigenvecs)) + assert_allclose(np.abs(pc.factors), np.abs(x.dot(vec))) + + def test_against_reference(self): + """ + Test against MATLAB, which by default demeans but does not standardize + """ + x = data.xo / 1000.0 + pc = PCA(x, normalize=False, standardize=False) + + ref = princomp1 + assert_allclose(np.abs(pc.factors), np.abs(ref.factors)) + assert_allclose(pc.factors.dot(pc.coeff) + x.mean(0), x) + assert_allclose(np.abs(pc.coeff), np.abs(ref.coef.T)) + assert_allclose(pc.factors.dot(pc.coeff), + ref.factors.dot(ref.coef.T)) + + pc = PCA(x[:20], normalize=False, standardize=False) + mu = x[:20].mean(0) + ref = princomp2 + assert_allclose(np.abs(pc.factors), np.abs(ref.factors)) + assert_allclose(pc.factors.dot(pc.coeff) + mu, x[:20]) + assert_allclose(np.abs(pc.coeff), np.abs(ref.coef.T)) + assert_allclose(pc.factors.dot(pc.coeff), + ref.factors.dot(ref.coef.T)) + + def test_warnings_and_errors(self): + with warnings.catch_warnings(record=True) as w: + pc = PCA(self.x, ncomp=300) + assert_equal(len(w), 1) + + with warnings.catch_warnings(record=True) as w: + rs = self.rs + x = rs.standard_normal((200, 1)) * np.ones(200) + pc = PCA(x, method='eig') + assert_equal(len(w), 1) + + assert_raises(ValueError, PCA, self.x, method='unknown') + assert_raises(ValueError, PCA, self.x, missing='unknown') + assert_raises(ValueError, PCA, self.x, tol=2.0) + assert_raises(ValueError, PCA, np.nan * np.ones((200,100)), tol=2.0) + + @skipif(missing_matplotlib) + def test_pandas(self): + pc = PCA(pd.DataFrame(self.x)) + pc1 = PCA(self.x) + assert_equal(pc.factors.values, pc1.factors) + fig = pc.plot_scree() + fig = pc.plot_scree(ncomp=10) + fig = pc.plot_scree(log_scale=False) + fig = pc.plot_rsquare() + fig = pc.plot_rsquare(ncomp=5) + proj = pc.project(2) + PCA(pd.DataFrame(self.x), ncomp=4, gls=True) + PCA(pd.DataFrame(self.x), ncomp=4, standardize=False) + + def test_gls_and_weights(self): + assert_raises(ValueError, PCA, self.x, gls=True) + assert_raises(ValueError, PCA, self.x, weights=np.array([1.0, 1.0])) + + # Pre-standardize to make comparison simple + x = (self.x - self.x.mean(0)) + x = x / (x ** 2.0).mean(0) + pc_gls = PCA(x, ncomp=1, standardize=False, demean=False, gls=True) + pc = PCA(x, ncomp=1, standardize=False, demean=False) + errors = x - pc.projection + var = (errors ** 2.0).mean(0) + weights = 1.0 / var + weights = weights / np.sqrt((weights ** 2.0).mean()) + + assert_allclose(weights, pc_gls.weights) + assert_equal(x, pc_gls.data) + assert_equal(x, pc.data) + + pc_weights = PCA(x, ncomp=1, standardize=False, demean=False, weights=weights) + + assert_allclose(weights, pc_weights.weights) + assert_allclose(np.abs(pc_weights.factors), np.abs(pc_gls.factors)) + + def test_wide(self): + pc = PCA(self.x_wide) + assert_equal(pc.factors.shape[1], self.x_wide.shape[0]) + assert_equal(pc.eigenvecs.shape[1], min(np.array(self.x_wide.shape))) + + pc = PCA(pd.DataFrame(self.x_wide)) + assert_equal(pc.factors.shape[1], self.x_wide.shape[0]) + assert_equal(pc.eigenvecs.shape[1], min(np.array(self.x_wide.shape))) + + def test_projection(self): + pc = PCA(self.x, ncomp=5) + mu = self.x.mean(0) + demean_x = self.x - mu + coef = np.linalg.pinv(pc.factors).dot(demean_x) + direct = pc.factors.dot(coef) + assert_allclose(pc.projection, direct + mu) + + pc = PCA(self.x, standardize=False, ncomp=5) + coef = np.linalg.pinv(pc.factors).dot(demean_x) + direct = pc.factors.dot(coef) + assert_allclose(pc.projection, direct + mu) + + pc = PCA(self.x, standardize=False, demean=False, ncomp=5) + coef = np.linalg.pinv(pc.factors).dot(self.x) + direct = pc.factors.dot(coef) + assert_allclose(pc.projection, direct) + + pc = PCA(self.x, ncomp=5, gls=True) + mu = self.x.mean(0) + demean_x = self.x - mu + coef = np.linalg.pinv(pc.factors).dot(demean_x) + direct = pc.factors.dot(coef) + assert_allclose(pc.projection, direct + mu) + + pc = PCA(self.x, standardize=False, ncomp=5) + coef = np.linalg.pinv(pc.factors).dot(demean_x) + direct = pc.factors.dot(coef) + assert_allclose(pc.projection, direct + mu) + + pc = PCA(self.x, standardize=False, demean=False, ncomp=5, gls=True) + coef = np.linalg.pinv(pc.factors).dot(self.x) + direct = pc.factors.dot(coef) + assert_allclose(pc.projection, direct) + + # Test error for too many factors + project = pc.project + assert_raises(ValueError, project, 6) + + @skipif(WIN32) + def test_replace_missing(self): + x = self.x.copy() + x[::5, ::7] = np.nan + + pc = PCA(x, missing='drop-row') + x_dropped_row = x[np.logical_not(np.any(np.isnan(x), 1))] + pc_dropped = PCA(x_dropped_row) + assert_equal(pc.projection, pc_dropped.projection) + assert_equal(x, pc.data) + + pc = PCA(x, missing='drop-col') + x_dropped_col = x[:, np.logical_not(np.any(np.isnan(x), 0))] + pc_dropped = PCA(x_dropped_col) + assert_equal(pc.projection, pc_dropped.projection) + assert_equal(x, pc.data) + + pc = PCA(x, missing='drop-min') + if x_dropped_row.size > x_dropped_col.size: + x_dropped_min = x_dropped_row + else: + x_dropped_min = x_dropped_col + pc_dropped = PCA(x_dropped_min) + assert_equal(pc.projection, pc_dropped.projection) + assert_equal(x, pc.data) + + pc = PCA(x, ncomp=3, missing='fill-em') + missing = np.isnan(x) + mu = nanmean(x, axis=0) + errors = x - mu + sigma = np.sqrt(nanmean(errors ** 2, axis=0)) + x_std = errors / sigma + x_std[missing] = 0.0 + last = x_std[missing] + delta = 1.0 + count = 0 + while delta > 5e-8: + pc_temp = PCA(x_std, ncomp=3, standardize=False, demean=False) + x_std[missing] = pc_temp.projection[missing] + current = x_std[missing] + diff = current - last + delta = np.sqrt(np.sum(diff ** 2)) / np.sqrt(np.sum(current ** 2)) + last = current + count += 1 + x = self.x + 0.0 + projection = pc_temp.projection * sigma + mu + x[missing] = projection[missing] + assert_allclose(pc._adjusted_data, x) + # Check data for no changes + assert_equal(self.x, self.x_copy) + + x = self.x + pc = PCA(x) + pc_dropped = PCA(x, missing='drop-row') + assert_allclose(pc.projection, pc_dropped.projection, atol=DECIMAL_5) + + pc_dropped = PCA(x, missing='drop-col') + assert_allclose(pc.projection, pc_dropped.projection, atol=DECIMAL_5) + + pc_dropped = PCA(x, missing='drop-min') + assert_allclose(pc.projection, pc_dropped.projection, atol=DECIMAL_5) + + pc = PCA(x, ncomp=3) + pc_dropped = PCA(x, ncomp=3, missing='fill-em') + assert_allclose(pc.projection, pc_dropped.projection, atol=DECIMAL_5) + + # Test too many missing for missing='fill-em' + x = self.x.copy() + x[:, :] = np.nan + assert_raises(ValueError, PCA, x, missing='drop-row') + assert_raises(ValueError, PCA, x, missing='drop-col') + assert_raises(ValueError, PCA, x, missing='drop-min') + assert_raises(ValueError, PCA, x, missing='fill-em') + + def test_rsquare(self): + x = self.x + 0.0 + mu = x.mean(0) + x_demean = x - mu + std = np.std(x, 0) + x_std = x_demean / std + + pc = PCA(self.x) + nvar = x.shape[1] + rsquare = np.zeros(nvar + 1) + tss = np.sum(x_std ** 2) + for i in range(nvar + 1): + errors = x_std - pc.project(i, transform=False, unweight=False) + rsquare[i] = 1.0 - np.sum(errors ** 2) / tss + assert_allclose(rsquare, pc.rsquare) + + pc = PCA(self.x, standardize=False) + tss = np.sum(x_demean ** 2) + for i in range(nvar + 1): + errors = x_demean - pc.project(i, transform=False, unweight=False) + rsquare[i] = 1.0 - np.sum(errors ** 2) / tss + assert_allclose(rsquare, pc.rsquare) + + pc = PCA(self.x, standardize=False, demean=False) + tss = np.sum(x ** 2) + for i in range(nvar + 1): + errors = x - pc.project(i, transform=False, unweight=False) + rsquare[i] = 1.0 - np.sum(errors ** 2) / tss + assert_allclose(rsquare, pc.rsquare) diff --git a/statsmodels/nonparametric/__init__.py b/statsmodels/nonparametric/__init__.py new file mode 100644 index 0000000..9622b38 --- /dev/null +++ b/statsmodels/nonparametric/__init__.py @@ -0,0 +1,8 @@ +""" +Tools for nonparametric statistics, mainly density estimation and regression. + +For an overview of this module, see docs/source/nonparametric.rst +""" + +from statsmodels import NoseWrapper as Tester +test = Tester().test diff --git a/statsmodels/nonparametric/_kernel_base.py b/statsmodels/nonparametric/_kernel_base.py new file mode 100644 index 0000000..4590330 --- /dev/null +++ b/statsmodels/nonparametric/_kernel_base.py @@ -0,0 +1,518 @@ +""" +Module containing the base object for multivariate kernel density and +regression, plus some utilities. +""" +from statsmodels.compat.python import range, string_types +import copy + +import numpy as np +from scipy import optimize +from scipy.stats.mstats import mquantiles + +try: + import joblib + has_joblib = True +except ImportError: + has_joblib = False + +from . import kernels + + +kernel_func = dict(wangryzin=kernels.wang_ryzin, + aitchisonaitken=kernels.aitchison_aitken, + gaussian=kernels.gaussian, + aitchison_aitken_reg = kernels.aitchison_aitken_reg, + wangryzin_reg = kernels.wang_ryzin_reg, + gauss_convolution=kernels.gaussian_convolution, + wangryzin_convolution=kernels.wang_ryzin_convolution, + aitchisonaitken_convolution=kernels.aitchison_aitken_convolution, + gaussian_cdf=kernels.gaussian_cdf, + aitchisonaitken_cdf=kernels.aitchison_aitken_cdf, + wangryzin_cdf=kernels.wang_ryzin_cdf, + d_gaussian=kernels.d_gaussian) + + +def _compute_min_std_IQR(data): + """Compute minimum of std and IQR for each variable.""" + s1 = np.std(data, axis=0) + q75 = mquantiles(data, 0.75, axis=0).data[0] + q25 = mquantiles(data, 0.25, axis=0).data[0] + s2 = (q75 - q25) / 1.349 # IQR + dispersion = np.minimum(s1, s2) + return dispersion + + +def _compute_subset(class_type, data, bw, co, do, n_cvars, ix_ord, + ix_unord, n_sub, class_vars, randomize, bound): + """"Compute bw on subset of data. + + Called from ``GenericKDE._compute_efficient_*``. + + Notes + ----- + Needs to be outside the class in order for joblib to be able to pickle it. + + """ + if randomize: + np.random.shuffle(data) + sub_data = data[:n_sub, :] + else: + sub_data = data[bound[0]:bound[1], :] + + if class_type == 'KDEMultivariate': + from .kernel_density import KDEMultivariate + var_type = class_vars[0] + sub_model = KDEMultivariate(sub_data, var_type, bw=bw, + defaults=EstimatorSettings(efficient=False)) + elif class_type == 'KDEMultivariateConditional': + from .kernel_density import KDEMultivariateConditional + k_dep, dep_type, indep_type = class_vars + endog = sub_data[:, :k_dep] + exog = sub_data[:, k_dep:] + sub_model = KDEMultivariateConditional(endog, exog, dep_type, + indep_type, bw=bw, defaults=EstimatorSettings(efficient=False)) + elif class_type == 'KernelReg': + from .kernel_regression import KernelReg + var_type, k_vars, reg_type = class_vars + endog = _adjust_shape(sub_data[:, 0], 1) + exog = _adjust_shape(sub_data[:, 1:], k_vars) + sub_model = KernelReg(endog=endog, exog=exog, reg_type=reg_type, + var_type=var_type, bw=bw, + defaults=EstimatorSettings(efficient=False)) + else: + raise ValueError("class_type not recognized, should be one of " \ + "{KDEMultivariate, KDEMultivariateConditional, KernelReg}") + + # Compute dispersion in next 4 lines + if class_type == 'KernelReg': + sub_data = sub_data[:, 1:] + + dispersion = _compute_min_std_IQR(sub_data) + + fct = dispersion * n_sub**(-1. / (n_cvars + co)) + fct[ix_unord] = n_sub**(-2. / (n_cvars + do)) + fct[ix_ord] = n_sub**(-2. / (n_cvars + do)) + sample_scale_sub = sub_model.bw / fct #TODO: check if correct + bw_sub = sub_model.bw + return sample_scale_sub, bw_sub + + +class GenericKDE (object): + """ + Base class for density estimation and regression KDE classes. + """ + def _compute_bw(self, bw): + """ + Computes the bandwidth of the data. + + Parameters + ---------- + bw: array_like or str + If array_like: user-specified bandwidth. + If a string, should be one of: + + - cv_ml: cross validation maximum likelihood + - normal_reference: normal reference rule of thumb + - cv_ls: cross validation least squares + + Notes + ----- + The default values for bw is 'normal_reference'. + """ + + self.bw_func = dict(normal_reference=self._normal_reference, + cv_ml=self._cv_ml, cv_ls=self._cv_ls) + if bw is None: + bwfunc = self.bw_func['normal_reference'] + return bwfunc() + + if not isinstance(bw, string_types): + self._bw_method = "user-specified" + res = np.asarray(bw) + else: + # The user specified a bandwidth selection method + self._bw_method = bw + bwfunc = self.bw_func[bw] + res = bwfunc() + + return res + + def _compute_dispersion(self, data): + """ + Computes the measure of dispersion. + + The minimum of the standard deviation and interquartile range / 1.349 + + Notes + ----- + Reimplemented in `KernelReg`, because the first column of `data` has to + be removed. + + References + ---------- + See the user guide for the np package in R. + In the notes on bwscaling option in npreg, npudens, npcdens there is + a discussion on the measure of dispersion + """ + return _compute_min_std_IQR(data) + + def _get_class_vars_type(self): + """Helper method to be able to pass needed vars to _compute_subset. + + Needs to be implemented by subclasses.""" + pass + + def _compute_efficient(self, bw): + """ + Computes the bandwidth by estimating the scaling factor (c) + in n_res resamples of size ``n_sub`` (in `randomize` case), or by + dividing ``nobs`` into as many ``n_sub`` blocks as needed (if + `randomize` is False). + + References + ---------- + See p.9 in socserv.mcmaster.ca/racine/np_faq.pdf + """ + + if bw is None: + self._bw_method = 'normal_reference' + if isinstance(bw, string_types): + self._bw_method = bw + else: + self._bw_method = "user-specified" + return bw + + nobs = self.nobs + n_sub = self.n_sub + data = copy.deepcopy(self.data) + n_cvars = self.data_type.count('c') + co = 4 # 2*order of continuous kernel + do = 4 # 2*order of discrete kernel + _, ix_ord, ix_unord = _get_type_pos(self.data_type) + + # Define bounds for slicing the data + if self.randomize: + # randomize chooses blocks of size n_sub, independent of nobs + bounds = [None] * self.n_res + else: + bounds = [(i * n_sub, (i+1) * n_sub) for i in range(nobs // n_sub)] + if nobs % n_sub > 0: + bounds.append((nobs - nobs % n_sub, nobs)) + + n_blocks = self.n_res if self.randomize else len(bounds) + sample_scale = np.empty((n_blocks, self.k_vars)) + only_bw = np.empty((n_blocks, self.k_vars)) + + class_type, class_vars = self._get_class_vars_type() + if has_joblib: + # `res` is a list of tuples (sample_scale_sub, bw_sub) + res = joblib.Parallel(n_jobs=self.n_jobs) \ + (joblib.delayed(_compute_subset) \ + (class_type, data, bw, co, do, n_cvars, ix_ord, ix_unord, \ + n_sub, class_vars, self.randomize, bounds[i]) \ + for i in range(n_blocks)) + else: + res = [] + for i in range(n_blocks): + res.append(_compute_subset(class_type, data, bw, co, do, + n_cvars, ix_ord, ix_unord, n_sub, + class_vars, self.randomize, + bounds[i])) + + for i in range(n_blocks): + sample_scale[i, :] = res[i][0] + only_bw[i, :] = res[i][1] + + s = self._compute_dispersion(data) + order_func = np.median if self.return_median else np.mean + m_scale = order_func(sample_scale, axis=0) + # TODO: Check if 1/5 is correct in line below! + bw = m_scale * s * nobs**(-1. / (n_cvars + co)) + bw[ix_ord] = m_scale[ix_ord] * nobs**(-2./ (n_cvars + do)) + bw[ix_unord] = m_scale[ix_unord] * nobs**(-2./ (n_cvars + do)) + + if self.return_only_bw: + bw = np.median(only_bw, axis=0) + + return bw + + def _set_defaults(self, defaults): + """Sets the default values for the efficient estimation""" + self.n_res = defaults.n_res + self.n_sub = defaults.n_sub + self.randomize = defaults.randomize + self.return_median = defaults.return_median + self.efficient = defaults.efficient + self.return_only_bw = defaults.return_only_bw + self.n_jobs = defaults.n_jobs + + def _normal_reference(self): + """ + Returns Scott's normal reference rule of thumb bandwidth parameter. + + Notes + ----- + See p.13 in [2] for an example and discussion. The formula for the + bandwidth is + + .. math:: h = 1.06n^{-1/(4+q)} + + where ``n`` is the number of observations and ``q`` is the number of + variables. + """ + X = np.std(self.data, axis=0) + return 1.06 * X * self.nobs ** (- 1. / (4 + self.data.shape[1])) + + def _set_bw_bounds(self, bw): + """ + Sets bandwidth lower bound to effectively zero )1e-10), and for + discrete values upper bound to 1. + """ + bw[bw < 0] = 1e-10 + _, ix_ord, ix_unord = _get_type_pos(self.data_type) + bw[ix_ord] = np.minimum(bw[ix_ord], 1.) + bw[ix_unord] = np.minimum(bw[ix_unord], 1.) + + return bw + + def _cv_ml(self): + """ + Returns the cross validation maximum likelihood bandwidth parameter. + + Notes + ----- + For more details see p.16, 18, 27 in Ref. [1] (see module docstring). + + Returns the bandwidth estimate that maximizes the leave-out-out + likelihood. The leave-one-out log likelihood function is: + + .. math:: \ln L=\sum_{i=1}^{n}\ln f_{-i}(X_{i}) + + The leave-one-out kernel estimator of :math:`f_{-i}` is: + + .. math:: f_{-i}(X_{i})=\frac{1}{(n-1)h} + \sum_{j=1,j\neq i}K_{h}(X_{i},X_{j}) + + where :math:`K_{h}` represents the Generalized product kernel + estimator: + + .. math:: K_{h}(X_{i},X_{j})=\prod_{s=1}^ + {q}h_{s}^{-1}k\left(\frac{X_{is}-X_{js}}{h_{s}}\right) + """ + # the initial value for the optimization is the normal_reference + h0 = self._normal_reference() + bw = optimize.fmin(self.loo_likelihood, x0=h0, args=(np.log, ), + maxiter=1e3, maxfun=1e3, disp=0, xtol=1e-3) + bw = self._set_bw_bounds(bw) # bound bw if necessary + return bw + + def _cv_ls(self): + """ + Returns the cross-validation least squares bandwidth parameter(s). + + Notes + ----- + For more details see pp. 16, 27 in Ref. [1] (see module docstring). + + Returns the value of the bandwidth that maximizes the integrated mean + square error between the estimated and actual distribution. The + integrated mean square error (IMSE) is given by: + + .. math:: \int\left[\hat{f}(x)-f(x)\right]^{2}dx + + This is the general formula for the IMSE. The IMSE differs for + conditional (``KDEMultivariateConditional``) and unconditional + (``KDEMultivariate``) kernel density estimation. + """ + h0 = self._normal_reference() + bw = optimize.fmin(self.imse, x0=h0, maxiter=1e3, maxfun=1e3, disp=0, + xtol=1e-3) + bw = self._set_bw_bounds(bw) # bound bw if necessary + return bw + + def loo_likelihood(self): + raise NotImplementedError + + +class EstimatorSettings(object): + """ + Object to specify settings for density estimation or regression. + + `EstimatorSettings` has several proporties related to how bandwidth + estimation for the `KDEMultivariate`, `KDEMultivariateConditional`, + `KernelReg` and `CensoredKernelReg` classes behaves. + + Parameters + ---------- + efficient: bool, optional + If True, the bandwidth estimation is to be performed + efficiently -- by taking smaller sub-samples and estimating + the scaling factor of each subsample. This is useful for large + samples (nobs >> 300) and/or multiple variables (k_vars > 3). + If False (default), all data is used at the same time. + randomize: bool, optional + If True, the bandwidth estimation is to be performed by + taking `n_res` random resamples (with replacement) of size `n_sub` from + the full sample. If set to False (default), the estimation is + performed by slicing the full sample in sub-samples of size `n_sub` so + that all samples are used once. + n_sub: int, optional + Size of the sub-samples. Default is 50. + n_res: int, optional + The number of random re-samples used to estimate the bandwidth. + Only has an effect if ``randomize == True``. Default value is 25. + return_median: bool, optional + If True (default), the estimator uses the median of all scaling factors + for each sub-sample to estimate the bandwidth of the full sample. + If False, the estimator uses the mean. + return_only_bw: bool, optional + If True, the estimator is to use the bandwidth and not the + scaling factor. This is *not* theoretically justified. + Should be used only for experimenting. + n_jobs : int, optional + The number of jobs to use for parallel estimation with + ``joblib.Parallel``. Default is -1, meaning ``n_cores - 1``, with + ``n_cores`` the number of available CPU cores. + See the `joblib documentation + `_ for more details. + + Examples + -------- + >>> settings = EstimatorSettings(randomize=True, n_jobs=3) + >>> k_dens = KDEMultivariate(data, var_type, defaults=settings) + + """ + def __init__(self, efficient=False, randomize=False, n_res=25, n_sub=50, + return_median=True, return_only_bw=False, n_jobs=-1): + self.efficient = efficient + self.randomize = randomize + self.n_res = n_res + self.n_sub = n_sub + self.return_median = return_median + self.return_only_bw = return_only_bw # TODO: remove this? + self.n_jobs = n_jobs + + +class LeaveOneOut(object): + """ + Generator to give leave-one-out views on X. + + Parameters + ---------- + X : array-like + 2-D array. + + Examples + -------- + >>> X = np.random.normal(0, 1, [10,2]) + >>> loo = LeaveOneOut(X) + >>> for x in loo: + ... print x + + Notes + ----- + A little lighter weight than sklearn LOO. We don't need test index. + Also passes views on X, not the index. + """ + def __init__(self, X): + self.X = np.asarray(X) + + def __iter__(self): + X = self.X + nobs, k_vars = np.shape(X) + + for i in range(nobs): + index = np.ones(nobs, dtype=np.bool) + index[i] = False + yield X[index, :] + + +def _get_type_pos(var_type): + ix_cont = np.array([c == 'c' for c in var_type]) + ix_ord = np.array([c == 'o' for c in var_type]) + ix_unord = np.array([c == 'u' for c in var_type]) + return ix_cont, ix_ord, ix_unord + + +def _adjust_shape(dat, k_vars): + """ Returns an array of shape (nobs, k_vars) for use with `gpke`.""" + dat = np.asarray(dat) + if dat.ndim > 2: + dat = np.squeeze(dat) + if dat.ndim == 1 and k_vars > 1: # one obs many vars + nobs = 1 + elif dat.ndim == 1 and k_vars == 1: # one obs one var + nobs = len(dat) + else: + if np.shape(dat)[0] == k_vars and np.shape(dat)[1] != k_vars: + dat = dat.T + + nobs = np.shape(dat)[0] # ndim >1 so many obs many vars + + dat = np.reshape(dat, (nobs, k_vars)) + return dat + + +def gpke(bw, data, data_predict, var_type, ckertype='gaussian', + okertype='wangryzin', ukertype='aitchisonaitken', tosum=True): + """ + Returns the non-normalized Generalized Product Kernel Estimator + + Parameters + ---------- + bw: 1-D ndarray + The user-specified bandwidth parameters. + data: 1D or 2-D ndarray + The training data. + data_predict: 1-D ndarray + The evaluation points at which the kernel estimation is performed. + var_type: str, optional + The variable type (continuous, ordered, unordered). + ckertype: str, optional + The kernel used for the continuous variables. + okertype: str, optional + The kernel used for the ordered discrete variables. + ukertype: str, optional + The kernel used for the unordered discrete variables. + tosum : bool, optional + Whether or not to sum the calculated array of densities. Default is + True. + + Returns + ------- + dens: array-like + The generalized product kernel density estimator. + + Notes + ----- + The formula for the multivariate kernel estimator for the pdf is: + + .. math:: f(x)=\frac{1}{nh_{1}...h_{q}}\sum_{i=1}^ + {n}K\left(\frac{X_{i}-x}{h}\right) + + where + + .. math:: K\left(\frac{X_{i}-x}{h}\right) = + k\left( \frac{X_{i1}-x_{1}}{h_{1}}\right)\times + k\left( \frac{X_{i2}-x_{2}}{h_{2}}\right)\times...\times + k\left(\frac{X_{iq}-x_{q}}{h_{q}}\right) + """ + kertypes = dict(c=ckertype, o=okertype, u=ukertype) + #Kval = [] + #for ii, vtype in enumerate(var_type): + # func = kernel_func[kertypes[vtype]] + # Kval.append(func(bw[ii], data[:, ii], data_predict[ii])) + + #Kval = np.column_stack(Kval) + + Kval = np.empty(data.shape) + for ii, vtype in enumerate(var_type): + func = kernel_func[kertypes[vtype]] + Kval[:, ii] = func(bw[ii], data[:, ii], data_predict[ii]) + + iscontinuous = np.array([c == 'c' for c in var_type]) + dens = Kval.prod(axis=1) / np.prod(bw[iscontinuous]) + if tosum: + return dens.sum(axis=0) + else: + return dens diff --git a/statsmodels/nonparametric/_smoothers_lowess.pyx b/statsmodels/nonparametric/_smoothers_lowess.pyx new file mode 100644 index 0000000..876af77 --- /dev/null +++ b/statsmodels/nonparametric/_smoothers_lowess.pyx @@ -0,0 +1,615 @@ +#cython: boundscheck = False +#cython: wraparound = False +#cython: cdivision = True + +''' +Univariate lowess function, like in R. + +References +---------- +Hastie, Tibshirani, Friedman. (2009) The Elements of Statistical Learning: Data +Mining, Inference, and Prediction, Second Edition: Chapter 6. + +Cleveland, W.S. (1979) "Robust Locally Weighted Regression and Smoothing +Scatterplots". Journal of the American Statistical Association 74 (368): 829-836. +''' + +cimport numpy as np +import numpy as np +from cpython cimport bool +cimport cython + +# there's no fmax in math.h with windows SDK apparently +cdef inline double fmax(double x, double y): return x if x >= y else y + +DTYPE = np.double +ctypedef np.double_t DTYPE_t + +def lowess(np.ndarray[DTYPE_t, ndim = 1] endog, + np.ndarray[DTYPE_t, ndim = 1] exog, + double frac = 2.0 / 3.0, + Py_ssize_t it = 3, + double delta = 0.0): + '''lowess(endog, exog, frac=2.0/3.0, it=3, delta=0.0) + LOWESS (Locally Weighted Scatterplot Smoothing) + + A lowess function that outs smoothed estimates of endog + at the given exog values from points (exog, endog) + + Parameters + ---------- + endog: 1-D numpy array + The y-values of the observed points + exog: 1-D numpy array + The x-values of the observed points. exog has to be increasing. + frac: float + Between 0 and 1. The fraction of the data used + when estimating each y-value. + it: int + The number of residual-based reweightings + to perform. + delta: float + Distance within which to use linear-interpolation + instead of weighted regression. + + Returns + ------- + out: numpy array + A numpy array with two columns. The first column + is the sorted x values and the second column the + associated estimated y-values. + + Notes + ----- + This lowess function implements the algorithm given in the + reference below using local linear estimates. + + Suppose the input data has N points. The algorithm works by + estimating the `smooth` y_i by taking the frac*N closest points + to (x_i,y_i) based on their x values and estimating y_i + using a weighted linear regression. The weight for (x_j,y_j) + is tricube function applied to |x_i-x_j|. + + If it > 1, then further weighted local linear regressions + are performed, where the weights are the same as above + times the _lowess_bisquare function of the residuals. Each iteration + takes approximately the same amount of time as the original fit, + so these iterations are expensive. They are most useful when + the noise has extremely heavy tails, such as Cauchy noise. + Noise with less heavy-tails, such as t-distributions with df>2, + are less problematic. The weights downgrade the influence of + points with large residuals. In the extreme case, points whose + residuals are larger than 6 times the median absolute residual + are given weight 0. + + delta can be used to save computations. For each x_i, regressions + are skipped for points closer than delta. The next regression is + fit for the farthest point within delta of x_i and all points in + between are estimated by linearly interpolating between the two + regression fits. + + Judicious choice of delta can cut computation time considerably + for large data (N > 5000). A good choice is delta = 0.01 * + range(exog). + + Some experimentation is likely required to find a good + choice of frac and iter for a particular dataset. + + References + ---------- + Cleveland, W.S. (1979) "Robust Locally Weighted Regression + and Smoothing Scatterplots". Journal of the American Statistical + Association 74 (368): 829-836. + + Examples + -------- + The below allows a comparison between how different the fits from + lowess for different values of frac can be. + + >>> import numpy as np + >>> import statsmodels.api as sm + >>> lowess = sm.nonparametric.lowess + >>> x = np.random.uniform(low = -2*np.pi, high = 2*np.pi, size=500) + >>> y = np.sin(x) + np.random.normal(size=len(x)) + >>> z = lowess(y, x) + >>> w = lowess(y, x, frac=1./3) + + This gives a similar comparison for when it is 0 vs not. + + >>> import numpy as np + >>> import scipy.stats as stats + >>> import statsmodels.api as sm + >>> lowess = sm.nonparametric.lowess + >>> x = np.random.uniform(low = -2*np.pi, high = 2*np.pi, size=500) + >>> y = np.sin(x) + stats.cauchy.rvs(size=len(x)) + >>> z = lowess(y, x, frac= 1./3, it=0) + >>> w = lowess(y, x, frac=1./3) + + ''' + cdef: + Py_ssize_t n + int k + Py_ssize_t robiter, i, left_end, right_end + int last_fit_i, + np.ndarray[DTYPE_t, ndim = 1] x, y + np.ndarray[DTYPE_t, ndim = 1] y_fit + np.ndarray[DTYPE_t, ndim = 1] weights + np.ndarray[DTYPE_t, ndim = 1] resid_weights + + y = endog # now just alias + x = exog + + n = x.shape[0] + + # The number of neighbors in each regression. + # round up if close to integer + k = int(frac * n + 1e-10) + + # frac should be set, so that 2 <= k <= n. + # Conform them instead of throwing error. + if k < 2: + k = 2 + if k > n: + k = n + + y_fit = np.zeros(n, dtype = DTYPE) + resid_weights = np.zeros(n, dtype = DTYPE) + + it += 1 # Add one to it for initial run. + for robiter in xrange(it): + i = 0 + last_fit_i = -1 + left_end = 0 + right_end = k + y_fit = np.zeros(n, dtype = DTYPE) + + # 'do' Fit y[i]'s 'until' the end of the regression + while True: + # Re-initialize the weights for each point x[i]. + weights = np.zeros(n, dtype = DTYPE) + + # Describe the neighborhood around the current x[i]. + left_end, right_end, radius = update_neighborhood(x, i, n, + left_end, + right_end) + + # Calculate the weights for the regression in this neighborhood. + # Determine if at least some weights are positive, so a regression + # is ok. + reg_ok = calculate_weights(x, weights, resid_weights, i, left_end, + right_end, radius, robiter > 0) + + # If ok, run the regression + calculate_y_fit(x, y, i, y_fit, weights, left_end, right_end, + reg_ok) + + # If we skipped some points (because of how delta was set), go back + # and fit them by linear interpolation. + if last_fit_i < (i - 1): + interpolate_skipped_fits(x, y_fit, i, last_fit_i) + + # Update the last fit counter to indicate we've now fit this point. + # Find the next i for which we'll run a regression. + i, last_fit_i = update_indices(x, y_fit, delta, i, n, last_fit_i) + + if last_fit_i >= n-1: + break + + # Calculate residual weights, but don't bother on the last iteration. + if robiter < it - 1: + resid_weights = calculate_residual_weights(y, y_fit) + + return np.array([x, y_fit]).T + + +def update_neighborhood(np.ndarray[DTYPE_t, ndim = 1] x, + Py_ssize_t i, + Py_ssize_t n, + Py_ssize_t left_end, + Py_ssize_t right_end): + ''' + Find the indices bounding the k-nearest-neighbors of the current point. + + Parameters + ---------- + x: 1-D numpy array + The input x-values + i: indexing integer + The index of the point currently being fit. + n: indexing integer + The length of the input vectors, x and y. + left_end: indexing integer + The index of the left-most point in the neighborhood + of x[i-1] (the previously-fit point). + right_end: indexing integer + The index of the right-most point in the neighborhood + of x[i-1]. Non-inclusive, s.t. the neighborhood is + x[left_end] <= x < x[right_end]. + radius: float + The radius of the current neighborhood. The larger of + distances between x[i] and its left-most or right-most + neighbor. + + Returns + ------- + left_end: indexing integer + The index of the left-most point in the neighborhood + of x[i] (the current point). + right_end: indexing integer + The index of the right-most point in the neighborhood + of x[i]. Non-inclusive, s.t. the neighborhood is + x[left_end] <= x < x[right_end]. + radius: float + The radius of the current neighborhood. The larger of + distances between x[i] and its left-most or right-most + neighbor. + ''' + + cdef double radius + # A subtle loop. Start from the current neighborhood range: + # [left_end, right_end). Shift both ends rightwards by one + # (so that the neighborhood still contains k points), until + # the current point is in the center (or just to the left of + # the center) of the neighborhood. This neighborhood will + # contain the k-nearest neighbors of x[i]. + # + # Once the right end hits the end of the data, hold the + # neighborhood the same for the remaining x[i]s. + while True: + if right_end < n: + + if (x[i] > (x[left_end] + x[right_end]) / 2.0): + left_end += 1 + right_end += 1 + else: + break + else: + break + + radius = fmax(x[i] - x[left_end], x[right_end-1] - x[i]) + + return left_end, right_end, radius + +cdef bool calculate_weights(np.ndarray[DTYPE_t, ndim = 1] x, + np.ndarray[DTYPE_t, ndim = 1] weights, + np.ndarray[DTYPE_t, ndim = 1] resid_weights, + Py_ssize_t i, + Py_ssize_t left_end, + Py_ssize_t right_end, + double radius, + bool use_resid_weights): + ''' + + Parameters + ---------- + x: 1-D vector + The input x-values. + weights: 1-D numpy array + The vector of regression weights. + resid_weights: 1-D numpy array + The vector of residual weights from the last iteration. + i: indexing integer + The index of the point currently being fit. + left_end: indexing integer + The index of the left-most point in the neighborhood of + x[i]. + right_end: indexing integer + The index of the right-most point in the neighborhood + of x[i]. Non-inclusive, s.t. the neighborhood is + x[left_end] <= x < x[right_end]. + radius: float + The radius of the current neighborhood. The larger of + distances between x[i] and its left-most or right-most + neighbor. + use_resid_weights: boolean + If True, multiply the x-distance weights by the residual + weights from the last iteration of regressions. Set to + False on the first iteration (since there are no residuals + yet) and True on the subsequent ``robustifying`` iterations. + + + Returns + ------- + reg_ok: boolean + If True, at least some points have positive weight, and the + regression will be run. If False, the regression is skipped + and y_fit[i] is set to equal y[i]. + Also, changes elements of weights in-place. + ''' + + cdef: + np.ndarray[DTYPE_t, ndim = 1] x_j = x[left_end:right_end] + np.ndarray[DTYPE_t, ndim = 1] dist_i_j = np.abs(x_j - x[i]) / radius + bool reg_ok = True + double sum_weights + + # Assign the distance measure to the weights, then apply the tricube + # function to change in-place. + # use_resid_weights will be False on the first iteration, then True + # on the subsequent ones, after some residuals have been calculated. + weights[left_end:right_end] = dist_i_j + if use_resid_weights == False: + tricube(weights[left_end:right_end]) + if use_resid_weights == True: + tricube(weights[left_end:right_end]) + weights[left_end:right_end] = (weights[left_end:right_end] * + resid_weights[left_end:right_end]) + + sum_weights = np.sum(weights[left_end:right_end]) + + if sum_weights <= 0.0 or (np.sum(weights[left_end:right_end] != 0) == 1): + # 2nd condition checks if only 1 local weight is non-zero, which + # will give a divisor of zero in calculate_y_fit + # see 1960 + reg_ok = False + else: + weights[left_end:right_end] = weights[left_end:right_end] / sum_weights + + return reg_ok + + +cdef void calculate_y_fit(np.ndarray[DTYPE_t, ndim = 1] x, + np.ndarray[DTYPE_t, ndim = 1] y, + Py_ssize_t i, + np.ndarray[DTYPE_t, ndim = 1] y_fit, + np.ndarray[DTYPE_t, ndim = 1] weights, + Py_ssize_t left_end, + Py_ssize_t right_end, + bool reg_ok): + ''' + Calculate smoothed/fitted y-value by weighted regression. + + Parameters + ---------- + x: 1-D numpy array + The vector of input x-values. + y: 1-D numpy array + The vector of input y-values. + i: indexing integer + The index of the point currently being fit. + y_fit: 1-D numpy array + The vector of fitted y-values. + weights: 1-D numpy array + The vector of regression weights. + left_end: indexing integer + The index of the left-most point in the neighborhood of + x[i]. + right_end: indexing integers + The index of the right-most point in the neighborhood + of x[i]. Non-inclusive, s.t. the neighborhood is + x[left_end] <= x < x[right_end]. + reg_ok: boolean + If True, at least some points have positive weight, and the + regression will be run. If False, the regression is skipped + and y_fit[i] is set to equal y[i]. + + Returns + ------- + Nothing. Changes y_fit[i] in-place. + + Notes + ----- + No regression function (e.g. lstsq) is called. Instead "projection + vector" p_i_j is calculated, and y_fit[i] = sum(p_i_j * y[j]) = y_fit[i] + for j s.t. x[j] is in the neighborhood of x[i]. p_i_j is a function of + the weights, x[i], and its neighbors. + ''' + + cdef: + double sum_weighted_x = 0, weighted_sqdev_x = 0, p_i_j + + if reg_ok == False: + y_fit[i] = y[i] + else: + for j in xrange(left_end, right_end): + sum_weighted_x += weights[j] * x[j] + for j in xrange(left_end, right_end): + weighted_sqdev_x += weights[j] * (x[j] - sum_weighted_x) ** 2 + for j in xrange(left_end, right_end): + p_i_j = weights[j] * (1.0 + (x[i] - sum_weighted_x) * + (x[j] - sum_weighted_x) / weighted_sqdev_x) + y_fit[i] += p_i_j * y[j] + +cdef void interpolate_skipped_fits(np.ndarray[DTYPE_t, ndim = 1] x, + np.ndarray[DTYPE_t, ndim = 1] y_fit, + Py_ssize_t i, + Py_ssize_t last_fit_i): + ''' + Calculate smoothed/fitted y by linear interpolation between the current + and previous y fitted by weighted regression. + Called only if delta > 0. + + Parameters + ---------- + x: 1-D numpy array + The vector of input x-values. + y_fit: 1-D numpy array + The vector of fitted y-values + i: indexing integer + The index of the point currently being fit by weighted + regression. + last_fit_i: indexing integer + The index of the last point fit by weighted regression. + + Returns + ------- + Nothing: changes elements of y_fit in-place. + ''' + + cdef np.ndarray[DTYPE_t, ndim = 1] a + + a = x[(last_fit_i + 1): i] - x[last_fit_i] + a = a / (x[i] - x[last_fit_i]) + y_fit[(last_fit_i + 1): i] = a * y_fit[i] + (1.0 - a) * y_fit[last_fit_i] + + +def update_indices(np.ndarray[DTYPE_t, ndim = 1] x, + np.ndarray[DTYPE_t, ndim = 1] y_fit, + double delta, + Py_ssize_t i, + Py_ssize_t n, + Py_ssize_t last_fit_i): + ''' + Update the counters of the local regression. + + Parameters + ---------- + x: 1-D numpy array + The vector of input x-values. + y_fit: 1-D numpy array + The vector of fitted y-values + delta: float + Indicates the range of x values within which linear + interpolation should be used to estimate y_fit instead + of weighted regression. + i: indexing integer + The index of the current point being fit. + n: indexing integer + The length of the input vectors, x and y. + last_fit_i: indexing integer + The last point at which y_fit was calculated. + + Returns + ------- + i: indexing integer + The next point at which to run a weighted regression. + last_fit_i: indexing integer + The updated last point at which y_fit was calculated + + Notes + ----- + The relationship between the outputs is s.t. x[i+1] > + x[last_fit_i] + delta. + + ''' + cdef: + Py_ssize_t k + double cutpoint + + last_fit_i = i + k = last_fit_i + # For most points within delta of the current point, we skip the + # weighted linear regression (which save much computation of + # weights and fitted points). Instead, we'll jump to the last + # point within delta, fit the weighted regression at that point, + # and linearly interpolate in between. + + # This loop increments until we fall just outside of delta distance, + # copying the results for any repeated x's along the way. + cutpoint = x[last_fit_i] + delta + for k in range(last_fit_i + 1, n): + if x[k] > cutpoint: + break + if x[k] == x[last_fit_i]: + # if tied with previous x-value, just use the already + # fitted y, and update the last-fit counter. + y_fit[k] = y_fit[last_fit_i] + last_fit_i = k + + # i, which indicates the next point to fit the regression at, is + # either one prior to k (since k should be the first point outside + # of delta) or is just incremented + 1 if k = i+1. This insures we + # always step forward. + i = max(k-1, last_fit_i + 1) + + return i, last_fit_i + + +def calculate_residual_weights(np.ndarray[DTYPE_t, ndim = 1] y, + np.ndarray[DTYPE_t, ndim = 1] y_fit): + ''' + Calculate residual weights for the next `robustifying` iteration. + + Parameters + ---------- + y: 1-D numpy array + The vector of actual input y-values. + y_fit: 1-D numpy array + The vector of fitted y-values from the current + iteration. + + Returns + ------- + resid_weights: 1-D numpy array + The vector of residual weights, to be used in the + next iteration of regressions. + ''' + + std_resid = np.abs(y - y_fit) + median = np.median(std_resid) + if median == 0: + std_resid[std_resid > 0] = 1 + else: + std_resid /= 6.0 * median + + # Some trimming of outlier residuals. + std_resid[std_resid >= 1.0] = 1.0 + #std_resid[std_resid >= 0.999] = 1.0 + #std_resid[std_resid <= 0.001] = 0.0 + + resid_weights = bisquare(std_resid) + + return resid_weights + + +cdef void tricube(np.ndarray[DTYPE_t, ndim = 1] x): + ''' + The tri-cubic function (1 - x**3)**3. Used to weight neighboring + points along the x-axis based on their distance to the current point. + + Parameters + ---------- + x: 1-D numpy array + A vector of neighbors` distances from the current point, + in units of the neighborhood radius. + + Returns + ------- + Nothing. Changes array elements in-place + ''' + + # fast_array_cube is an elementwise, in-place cubed-power + # operator. + fast_array_cube(x) + x[:] = np.negative(x) + x += 1 + fast_array_cube(x) + + +cdef void fast_array_cube(np.ndarray[DTYPE_t, ndim = 1] x): + ''' + A fast, elementwise, in-place cube operator. Called by the + tricube function. + + Parameters + ---------- + x: 1-D numpy array + + Returns + ------- + Nothing. Changes array elements in-place. + ''' + + x2 = x*x + x *= x2 + + +def bisquare(np.ndarray[DTYPE_t, ndim = 1] x): + ''' + The bi-square function (1 - x**2)**2. + + Used to weight the residuals in the `robustifying` + iterations. Called by the calculate_residual_weights function. + + Parameters + ---------- + x: 1-D numpy array + A vector of absolute regression residuals, in units of + 6 times the median absolute residual. + + Returns + ------- + A 1-D numpy array of residual weights. + ''' + + return (1.0 - x**2)**2 diff --git a/statsmodels/nonparametric/api.py b/statsmodels/nonparametric/api.py new file mode 100644 index 0000000..1596dc5 --- /dev/null +++ b/statsmodels/nonparametric/api.py @@ -0,0 +1,8 @@ +from .kde import KDEUnivariate +from .smoothers_lowess import lowess +from . import bandwidths + +from .kernel_density import \ + KDEMultivariate, KDEMultivariateConditional, EstimatorSettings +from .kernel_regression import KernelReg, KernelCensoredReg + diff --git a/statsmodels/nonparametric/bandwidths.py b/statsmodels/nonparametric/bandwidths.py new file mode 100644 index 0000000..d4830dc --- /dev/null +++ b/statsmodels/nonparametric/bandwidths.py @@ -0,0 +1,179 @@ +from __future__ import division + +import numpy as np +from scipy.stats import scoreatpercentile as sap +from statsmodels.sandbox.nonparametric import kernels + +#from scipy.stats import norm + +def _select_sigma(X): + """ + Returns the smaller of std(X, ddof=1) or normalized IQR(X) over axis 0. + + References + ---------- + Silverman (1986) p.47 + """ +# normalize = norm.ppf(.75) - norm.ppf(.25) + normalize = 1.349 +# IQR = np.subtract.reduce(percentile(X, [75,25], +# axis=axis), axis=axis)/normalize + IQR = (sap(X, 75) - sap(X, 25))/normalize + return np.minimum(np.std(X, axis=0, ddof=1), IQR) + + +## Univariate Rule of Thumb Bandwidths ## +def bw_scott(x, kernel=None): + """ + Scott's Rule of Thumb + + Parameters + ---------- + x : array-like + Array for which to get the bandwidth + kernel : CustomKernel object + Unused + + Returns + ------- + bw : float + The estimate of the bandwidth + + Notes + ----- + Returns 1.059 * A * n ** (-1/5.) where :: + + A = min(std(x, ddof=1), IQR/1.349) + IQR = np.subtract.reduce(np.percentile(x, [75,25])) + + References + ---------- + + Scott, D.W. (1992) Multivariate Density Estimation: Theory, Practice, and + Visualization. + """ + A = _select_sigma(x) + n = len(x) + return 1.059 * A * n ** (-0.2) + +def bw_silverman(x, kernel=None): + """ + Silverman's Rule of Thumb + + Parameters + ---------- + x : array-like + Array for which to get the bandwidth + kernel : CustomKernel object + Unused + + Returns + ------- + bw : float + The estimate of the bandwidth + + Notes + ----- + Returns .9 * A * n ** (-1/5.) where :: + + A = min(std(x, ddof=1), IQR/1.349) + IQR = np.subtract.reduce(np.percentile(x, [75,25])) + + References + ---------- + + Silverman, B.W. (1986) `Density Estimation.` + """ + A = _select_sigma(x) + n = len(x) + return .9 * A * n ** (-0.2) + + +def bw_normal_reference(x, kernel=kernels.Gaussian): + """ + Plug-in bandwidth with kernel specific constant based on normal reference. + + This bandwidth minimizes the mean integrated square error if the true + distribution is the normal. This choice is an appropriate bandwidth for + single peaked distributions that are similar to the normal distribution. + + Parameters + ---------- + x : array-like + Array for which to get the bandwidth + kernel : CustomKernel object + Used to calculate the constant for the plug-in bandwidth. + + Returns + ------- + bw : float + The estimate of the bandwidth + + Notes + ----- + Returns C * A * n ** (-1/5.) where :: + + A = min(std(x, ddof=1), IQR/1.349) + IQR = np.subtract.reduce(np.percentile(x, [75,25])) + C = constant from Hansen (2009) + + When using a Gaussian kernel this is equivalent to the 'scott' bandwidth up + to two decimal places. This is the accuracy to which the 'scott' constant is + specified. + + References + ---------- + + Silverman, B.W. (1986) `Density Estimation.` + Hansen, B.E. (2009) `Lecture Notes on Nonparametrics.` + """ + C = kernel.normal_reference_constant + A = _select_sigma(x) + n = len(x) + return C * A * n ** (-0.2) + +## Plug-In Methods ## + +## Least Squares Cross-Validation ## + +## Helper Functions ## + +bandwidth_funcs = { + "scott": bw_scott, + "silverman": bw_silverman, + "normal_reference": bw_normal_reference, +} + + +def select_bandwidth(x, bw, kernel): + """ + Selects bandwidth for a selection rule bw + + this is a wrapper around existing bandwidth selection rules + + Parameters + ---------- + x : array-like + Array for which to get the bandwidth + bw : string + name of bandwidth selection rule, currently supported are: + %s + kernel : not used yet + + Returns + ------- + bw : float + The estimate of the bandwidth + + """ + bw = bw.lower() + if bw not in bandwidth_funcs: + raise ValueError("Bandwidth %s not understood" % bw) +#TODO: uncomment checks when we have non-rule of thumb bandwidths for diff. kernels +# if kernel == "gauss": + return bandwidth_funcs[bw](x, kernel) +# else: +# raise ValueError("Only Gaussian Kernels are currently supported") + +# Interpolate docstring to plugin supported bandwidths +select_bandwidth.__doc__ %= (", ".join(sorted(bandwidth_funcs.keys())),) diff --git a/statsmodels/nonparametric/kde.py b/statsmodels/nonparametric/kde.py new file mode 100644 index 0000000..04d5fb7 --- /dev/null +++ b/statsmodels/nonparametric/kde.py @@ -0,0 +1,556 @@ +""" +Univariate Kernel Density Estimators + +References +---------- +Racine, Jeff. (2008) "Nonparametric Econometrics: A Primer," Foundation and + Trends in Econometrics: Vol 3: No 1, pp1-88. + http://dx.doi.org/10.1561/0800000009 + +http://en.wikipedia.org/wiki/Kernel_%28statistics%29 + +Silverman, B.W. Density Estimation for Statistics and Data Analysis. +""" +from __future__ import absolute_import, print_function, division +from statsmodels.compat.python import range +# for 2to3 with extensions +import warnings + +import numpy as np +from scipy import integrate, stats +from statsmodels.sandbox.nonparametric import kernels +from statsmodels.tools.decorators import (cache_readonly, + resettable_cache) +from . import bandwidths +from .kdetools import (forrt, revrt, silverman_transform, counts) +from .linbin import fast_linbin + +#### Kernels Switch for estimators #### + +kernel_switch = dict(gau=kernels.Gaussian, epa=kernels.Epanechnikov, + uni=kernels.Uniform, tri=kernels.Triangular, + biw=kernels.Biweight, triw=kernels.Triweight, + cos=kernels.Cosine, cos2=kernels.Cosine2) + +def _checkisfit(self): + try: + self.density + except: + raise ValueError("Call fit to fit the density first") + + +#### Kernel Density Estimator Class ### + + +class KDEUnivariate(object): + """ + Univariate Kernel Density Estimator. + + Parameters + ---------- + endog : array-like + The variable for which the density estimate is desired. + + Notes + ----- + If cdf, sf, cumhazard, or entropy are computed, they are computed based on + the definition of the kernel rather than the FFT approximation, even if + the density is fit with FFT = True. + + `KDEUnivariate` is much faster than `KDEMultivariate`, due to its FFT-based + implementation. It should be preferred for univariate, continuous data. + `KDEMultivariate` also supports mixed data. + + See Also + -------- + KDEMultivariate + kdensity, kdensityfft + + Examples + -------- + >>> import statsmodels.api as sm + >>> import matplotlib.pyplot as plt + + >>> nobs = 300 + >>> np.random.seed(1234) # Seed random generator + >>> dens = sm.nonparametric.KDEUnivariate(np.random.normal(size=nobs)) + >>> dens.fit() + >>> plt.plot(dens.cdf) + >>> plt.show() + + """ + + def __init__(self, endog): + self.endog = np.asarray(endog) + + def fit(self, kernel="gau", bw="normal_reference", fft=True, weights=None, + gridsize=None, adjust=1, cut=3, clip=(-np.inf, np.inf)): + """ + Attach the density estimate to the KDEUnivariate class. + + Parameters + ---------- + kernel : str + The Kernel to be used. Choices are: + + - "biw" for biweight + - "cos" for cosine + - "epa" for Epanechnikov + - "gau" for Gaussian. + - "tri" for triangular + - "triw" for triweight + - "uni" for uniform + + bw : str, float + The bandwidth to use. Choices are: + + - "scott" - 1.059 * A * nobs ** (-1/5.), where A is + `min(std(X),IQR/1.34)` + - "silverman" - .9 * A * nobs ** (-1/5.), where A is + `min(std(X),IQR/1.34)` + - "normal_reference" - C * A * nobs ** (-1/5.), where C is + calculated from the kernel. Equivalent (up to 2 dp) to the + "scott" bandwidth for gaussian kernels. See bandwidths.py + - If a float is given, it is the bandwidth. + + fft : bool + Whether or not to use FFT. FFT implementation is more + computationally efficient. However, only the Gaussian kernel + is implemented. If FFT is False, then a 'nobs' x 'gridsize' + intermediate array is created. + gridsize : int + If gridsize is None, max(len(X), 50) is used. + cut : float + Defines the length of the grid past the lowest and highest values + of X so that the kernel goes to zero. The end points are + -/+ cut*bw*{min(X) or max(X)} + adjust : float + An adjustment factor for the bw. Bandwidth becomes bw * adjust. + """ + try: + bw = float(bw) + self.bw_method = "user-given" + except: + self.bw_method = bw + endog = self.endog + + if fft: + if kernel != "gau": + msg = "Only gaussian kernel is available for fft" + raise NotImplementedError(msg) + if weights is not None: + msg = "Weights are not implemented for fft" + raise NotImplementedError(msg) + density, grid, bw = kdensityfft(endog, kernel=kernel, bw=bw, + adjust=adjust, weights=weights, gridsize=gridsize, + clip=clip, cut=cut) + else: + density, grid, bw = kdensity(endog, kernel=kernel, bw=bw, + adjust=adjust, weights=weights, gridsize=gridsize, + clip=clip, cut=cut) + self.density = density + self.support = grid + self.bw = bw + self.kernel = kernel_switch[kernel](h=bw) # we instantiate twice, + # should this passed to funcs? + # put here to ensure empty cache after re-fit with new options + self.kernel.weights = weights + if weights is not None: + self.kernel.weights /= weights.sum() + self._cache = resettable_cache() + + @cache_readonly + def cdf(self): + """ + Returns the cumulative distribution function evaluated at the support. + + Notes + ----- + Will not work if fit has not been called. + """ + _checkisfit(self) + density = self.density + kern = self.kernel + if kern.domain is None: # TODO: test for grid point at domain bound + a,b = -np.inf,np.inf + else: + a,b = kern.domain + func = lambda x,s: kern.density(s,x) + + support = self.support + support = np.r_[a,support] + gridsize = len(support) + endog = self.endog + probs = [integrate.quad(func, support[i-1], support[i], + args=endog)[0] for i in range(1,gridsize)] + return np.cumsum(probs) + + @cache_readonly + def cumhazard(self): + """ + Returns the hazard function evaluated at the support. + + Notes + ----- + Will not work if fit has not been called. + + """ + _checkisfit(self) + return -np.log(self.sf) + + @cache_readonly + def sf(self): + """ + Returns the survival function evaluated at the support. + + Notes + ----- + Will not work if fit has not been called. + """ + _checkisfit(self) + return 1 - self.cdf + + @cache_readonly + def entropy(self): + """ + Returns the differential entropy evaluated at the support + + Notes + ----- + Will not work if fit has not been called. 1e-12 is added to each + probability to ensure that log(0) is not called. + """ + _checkisfit(self) + + def entr(x,s): + pdf = kern.density(s,x) + return pdf*np.log(pdf+1e-12) + + pdf = self.density + kern = self.kernel + + if kern.domain is not None: + a,b = self.domain + else: + a,b = -np.inf,np.inf + endog = self.endog + #TODO: below could run into integr problems, cf. stats.dist._entropy + return -integrate.quad(entr, a,b, args=(endog,))[0] + + @cache_readonly + def icdf(self): + """ + Inverse Cumulative Distribution (Quantile) Function + + Notes + ----- + Will not work if fit has not been called. Uses + `scipy.stats.mstats.mquantiles`. + """ + _checkisfit(self) + gridsize = len(self.density) + return stats.mstats.mquantiles(self.endog, np.linspace(0,1, + gridsize)) + + def evaluate(self, point): + """ + Evaluate density at a single point. + + Parameters + ---------- + point : float + Point at which to evaluate the density. + """ + _checkisfit(self) + return self.kernel.density(self.endog, point) + + +#### Kernel Density Estimator Functions #### + +def kdensity(X, kernel="gau", bw="normal_reference", weights=None, gridsize=None, + adjust=1, clip=(-np.inf,np.inf), cut=3, retgrid=True): + """ + Rosenblatt-Parzen univariate kernel density estimator. + + Parameters + ---------- + X : array-like + The variable for which the density estimate is desired. + kernel : str + The Kernel to be used. Choices are + - "biw" for biweight + - "cos" for cosine + - "epa" for Epanechnikov + - "gau" for Gaussian. + - "tri" for triangular + - "triw" for triweight + - "uni" for uniform + bw : str, float + "scott" - 1.059 * A * nobs ** (-1/5.), where A is min(std(X),IQR/1.34) + "silverman" - .9 * A * nobs ** (-1/5.), where A is min(std(X),IQR/1.34) + If a float is given, it is the bandwidth. + weights : array or None + Optional weights. If the X value is clipped, then this weight is + also dropped. + gridsize : int + If gridsize is None, max(len(X), 50) is used. + adjust : float + An adjustment factor for the bw. Bandwidth becomes bw * adjust. + clip : tuple + Observations in X that are outside of the range given by clip are + dropped. The number of observations in X is then shortened. + cut : float + Defines the length of the grid past the lowest and highest values of X + so that the kernel goes to zero. The end points are + -/+ cut*bw*{min(X) or max(X)} + retgrid : bool + Whether or not to return the grid over which the density is estimated. + + Returns + ------- + density : array + The densities estimated at the grid points. + grid : array, optional + The grid points at which the density is estimated. + + Notes + ----- + Creates an intermediate (`gridsize` x `nobs`) array. Use FFT for a more + computationally efficient version. + """ + X = np.asarray(X) + if X.ndim == 1: + X = X[:,None] + clip_x = np.logical_and(X>clip[0], X z_high) + k = kern(k) # estimate density + k[domain_mask] = 0 + else: + k = kern(k) # estimate density + + k[k<0] = 0 # get rid of any negative values, do we need this? + + dens = np.dot(k,weights)/(q*bw) + + if retgrid: + return dens, grid, bw + else: + return dens, bw + +def kdensityfft(X, kernel="gau", bw="normal_reference", weights=None, gridsize=None, + adjust=1, clip=(-np.inf,np.inf), cut=3, retgrid=True): + """ + Rosenblatt-Parzen univariate kernel density estimator + + Parameters + ---------- + X : array-like + The variable for which the density estimate is desired. + kernel : str + ONLY GAUSSIAN IS CURRENTLY IMPLEMENTED. + "bi" for biweight + "cos" for cosine + "epa" for Epanechnikov, default + "epa2" for alternative Epanechnikov + "gau" for Gaussian. + "par" for Parzen + "rect" for rectangular + "tri" for triangular + bw : str, float + "scott" - 1.059 * A * nobs ** (-1/5.), where A is min(std(X),IQR/1.34) + "silverman" - .9 * A * nobs ** (-1/5.), where A is min(std(X),IQR/1.34) + If a float is given, it is the bandwidth. + weights : array or None + WEIGHTS ARE NOT CURRENTLY IMPLEMENTED. + Optional weights. If the X value is clipped, then this weight is + also dropped. + gridsize : int + If gridsize is None, min(len(X), 512) is used. Note that the provided + number is rounded up to the next highest power of 2. + adjust : float + An adjustment factor for the bw. Bandwidth becomes bw * adjust. + clip : tuple + Observations in X that are outside of the range given by clip are + dropped. The number of observations in X is then shortened. + cut : float + Defines the length of the grid past the lowest and highest values of X + so that the kernel goes to zero. The end points are + -/+ cut*bw*{X.min() or X.max()} + retgrid : bool + Whether or not to return the grid over which the density is estimated. + + Returns + ------- + density : array + The densities estimated at the grid points. + grid : array, optional + The grid points at which the density is estimated. + + Notes + ----- + Only the default kernel is implemented. Weights aren't implemented yet. + This follows Silverman (1982) with changes suggested by Jones and Lotwick + (1984). However, the discretization step is replaced by linear binning + of Fan and Marron (1994). This should be extended to accept the parts + that are dependent only on the data to speed things up for + cross-validation. + + References + ---------- :: + + Fan, J. and J.S. Marron. (1994) `Fast implementations of nonparametric + curve estimators`. Journal of Computational and Graphical Statistics. + 3.1, 35-56. + Jones, M.C. and H.W. Lotwick. (1984) `Remark AS R50: A Remark on Algorithm + AS 176. Kernal Density Estimation Using the Fast Fourier Transform`. + Journal of the Royal Statistical Society. Series C. 33.1, 120-2. + Silverman, B.W. (1982) `Algorithm AS 176. Kernel density estimation using + the Fast Fourier Transform. Journal of the Royal Statistical Society. + Series C. 31.2, 93-9. + """ + X = np.asarray(X) + X = X[np.logical_and(X>clip[0], X0: # there are points of X in the grid here +# Xingrid = X[j:j+count[k]] # get all these points +# # get weights at grid[k],grid[k+1] +# binned[k] += np.sum(grid[k+1]-Xingrid) +# binned[k+1] += np.sum(Xingrid-grid[k]) +# j += count[k] +# binned /= (nobs)*delta**2 # normalize binned to sum to 1/delta + +#NOTE: THE ABOVE IS WRONG, JUST TRY WITH LINEAR BINNING + binned = fast_linbin(X,a,b,gridsize)/(delta*nobs) + + # step 2 compute FFT of the weights, using Munro (1976) FFT convention + y = forrt(binned) + + # step 3 and 4 for optimal bw compute zstar and the density estimate f + # don't have to redo the above if just changing bw, ie., for cross val + +#NOTE: silverman_transform is the closed form solution of the FFT of the +#gaussian kernel. Not yet sure how to generalize it. + zstar = silverman_transform(bw, gridsize, RANGE)*y # 3.49 in Silverman + # 3.50 w Gaussian kernel + f = revrt(zstar) + if retgrid: + return f, grid, bw + else: + return f, bw + +if __name__ == "__main__": + import numpy as np + np.random.seed(12345) + xi = np.random.randn(100) + f,grid, bw1 = kdensity(xi, kernel="gau", bw=.372735, retgrid=True) + f2, bw2 = kdensityfft(xi, kernel="gau", bw="silverman",retgrid=False) + +# do some checking vs. silverman algo. +# you need denes.f, http://lib.stat.cmu.edu/apstat/176 +#NOTE: I (SS) made some changes to the Fortran +# and the FFT stuff from Munro http://lib.stat.cmu.edu/apstat/97o +# then compile everything and link to denest with f2py +#Make pyf file as usual, then compile shared object +#f2py denest.f -m denest2 -h denest.pyf +#edit pyf +#-c flag makes it available to other programs, fPIC builds a shared library +#/usr/bin/gfortran -Wall -c -fPIC fft.f +#f2py -c denest.pyf ./fft.o denest.f + + try: + from denest2 import denest # @UnresolvedImport + a = -3.4884382032045504 + b = 4.3671504686785605 + RANGE = b - a + bw = bandwidths.bw_silverman(xi) + + ft,smooth,ifault,weights,smooth1 = denest(xi,a,b,bw,np.zeros(512),np.zeros(512),0, + np.zeros(512), np.zeros(512)) +# We use a different binning algo, so only accurate up to 3 decimal places + np.testing.assert_almost_equal(f2, smooth, 3) +#NOTE: for debugging +# y2 = forrt(weights) +# RJ = np.arange(512/2+1) +# FAC1 = 2*(np.pi*bw/RANGE)**2 +# RJFAC = RJ**2*FAC1 +# BC = 1 - RJFAC/(6*(bw/((b-a)/M))**2) +# FAC = np.exp(-RJFAC)/BC +# SMOOTH = np.r_[FAC,FAC[1:-1]] * y2 + +# dens = revrt(SMOOTH) + + except: +# ft = np.loadtxt('./ft_silver.csv') +# smooth = np.loadtxt('./smooth_silver.csv') + print("Didn't get the estimates from the Silverman algorithm") diff --git a/statsmodels/nonparametric/kdetools.py b/statsmodels/nonparametric/kdetools.py new file mode 100644 index 0000000..04fb39e --- /dev/null +++ b/statsmodels/nonparametric/kdetools.py @@ -0,0 +1,57 @@ +#### Convenience Functions to be moved to kerneltools #### +from __future__ import division +from statsmodels.compat.python import range +import numpy as np + +def forrt(X,m=None): + """ + RFFT with order like Munro (1976) FORTT routine. + """ + if m is None: + m = len(X) + y = np.fft.rfft(X,m)/m + return np.r_[y.real,y[1:-1].imag] + +def revrt(X,m=None): + """ + Inverse of forrt. Equivalent to Munro (1976) REVRT routine. + """ + if m is None: + m = len(X) + i = int(m // 2+1) + y = X[:i] + np.r_[0,X[i:],0]*1j + return np.fft.irfft(y)*m + +def silverman_transform(bw, M, RANGE): + """ + FFT of Gaussian kernel following to Silverman AS 176. + + Notes + ----- + Underflow is intentional as a dampener. + """ + J = np.arange(M/2+1) + FAC1 = 2*(np.pi*bw/RANGE)**2 + JFAC = J**2*FAC1 + BC = 1 - 1./3 * (J*1./M*np.pi)**2 + FAC = np.exp(-JFAC)/BC + kern_est = np.r_[FAC,FAC[1:-1]] + return kern_est + +def counts(x,v): + """ + Counts the number of elements of x that fall within the grid points v + + Notes + ----- + Using np.digitize and np.bincount + """ + idx = np.digitize(x,v) + try: # numpy 1.6 + return np.bincount(idx, minlength=len(v)) + except: + bc = np.bincount(idx) + return np.r_[bc,np.zeros(len(v)-len(bc))] + +def kdesum(x,axis=0): + return np.asarray([np.sum(x[i] - x, axis) for i in range(len(x))]) diff --git a/statsmodels/nonparametric/kernel_density.py b/statsmodels/nonparametric/kernel_density.py new file mode 100644 index 0000000..2eced66 --- /dev/null +++ b/statsmodels/nonparametric/kernel_density.py @@ -0,0 +1,689 @@ +""" +Multivariate Conditional and Unconditional Kernel Density Estimation +with Mixed Data Types. + +References +---------- +[1] Racine, J., Li, Q. Nonparametric econometrics: theory and practice. + Princeton University Press. (2007) +[2] Racine, Jeff. "Nonparametric Econometrics: A Primer," Foundation + and Trends in Econometrics: Vol 3: No 1, pp1-88. (2008) + http://dx.doi.org/10.1561/0800000009 +[3] Racine, J., Li, Q. "Nonparametric Estimation of Distributions + with Categorical and Continuous Data." Working Paper. (2000) +[4] Racine, J. Li, Q. "Kernel Estimation of Multivariate Conditional + Distributions Annals of Economics and Finance 5, 211-235 (2004) +[5] Liu, R., Yang, L. "Kernel estimation of multivariate + cumulative distribution function." + Journal of Nonparametric Statistics (2008) +[6] Li, R., Ju, G. "Nonparametric Estimation of Multivariate CDF + with Categorical and Continuous Data." Working Paper +[7] Li, Q., Racine, J. "Cross-validated local linear nonparametric + regression" Statistica Sinica 14(2004), pp. 485-512 +[8] Racine, J.: "Consistent Significance Testing for Nonparametric + Regression" Journal of Business & Economics Statistics +[9] Racine, J., Hart, J., Li, Q., "Testing the Significance of + Categorical Predictor Variables in Nonparametric Regression + Models", 2006, Econometric Reviews 25, 523-544 + +""" +from __future__ import division +# TODO: make default behavior efficient=True above a certain n_obs + +from statsmodels.compat.python import range, next +import numpy as np + +from . import kernels +from ._kernel_base import GenericKDE, EstimatorSettings, gpke, \ + LeaveOneOut, _adjust_shape + + +__all__ = ['KDEMultivariate', 'KDEMultivariateConditional', 'EstimatorSettings'] + + +class KDEMultivariate(GenericKDE): + """ + Multivariate kernel density estimator. + + This density estimator can handle univariate as well as multivariate data, + including mixed continuous / ordered discrete / unordered discrete data. + It also provides cross-validated bandwidth selection methods (least + squares, maximum likelihood). + + Parameters + ---------- + data: list of ndarrays or 2-D ndarray + The training data for the Kernel Density Estimation, used to determine + the bandwidth(s). If a 2-D array, should be of shape + (num_observations, num_variables). If a list, each list element is a + separate observation. + var_type: str + The type of the variables: + + - c : continuous + - u : unordered (discrete) + - o : ordered (discrete) + + The string should contain a type specifier for each variable, so for + example ``var_type='ccuo'``. + bw: array_like or str, optional + If an array, it is a fixed user-specified bandwidth. If a string, + should be one of: + + - normal_reference: normal reference rule of thumb (default) + - cv_ml: cross validation maximum likelihood + - cv_ls: cross validation least squares + + defaults: EstimatorSettings instance, optional + The default values for (efficient) bandwidth estimation. + + Attributes + ---------- + bw: array_like + The bandwidth parameters. + + See Also + -------- + KDEMultivariateConditional + + Examples + -------- + >>> import statsmodels.api as sm + >>> nobs = 300 + >>> np.random.seed(1234) # Seed random generator + >>> c1 = np.random.normal(size=(nobs,1)) + >>> c2 = np.random.normal(2, 1, size=(nobs,1)) + + Estimate a bivariate distribution and display the bandwidth found: + + >>> dens_u = sm.nonparametric.KDEMultivariate(data=[c1,c2], + ... var_type='cc', bw='normal_reference') + >>> dens_u.bw + array([ 0.39967419, 0.38423292]) + """ + def __init__(self, data, var_type, bw=None, defaults=EstimatorSettings()): + self.var_type = var_type + self.k_vars = len(self.var_type) + self.data = _adjust_shape(data, self.k_vars) + self.data_type = var_type + self.nobs, self.k_vars = np.shape(self.data) + if self.nobs <= self.k_vars: + raise ValueError("The number of observations must be larger " \ + "than the number of variables.") + + self._set_defaults(defaults) + if not self.efficient: + self.bw = self._compute_bw(bw) + else: + self.bw = self._compute_efficient(bw) + + def __repr__(self): + """Provide something sane to print.""" + rpr = "KDE instance\n" + rpr += "Number of variables: k_vars = " + str(self.k_vars) + "\n" + rpr += "Number of samples: nobs = " + str(self.nobs) + "\n" + rpr += "Variable types: " + self.var_type + "\n" + rpr += "BW selection method: " + self._bw_method + "\n" + return rpr + + def loo_likelihood(self, bw, func=lambda x: x): + r""" + Returns the leave-one-out likelihood function. + + The leave-one-out likelihood function for the unconditional KDE. + + Parameters + ---------- + bw: array_like + The value for the bandwidth parameter(s). + func: callable, optional + Function to transform the likelihood values (before summing); for + the log likelihood, use ``func=np.log``. Default is ``f(x) = x``. + + Notes + ----- + The leave-one-out kernel estimator of :math:`f_{-i}` is: + + .. math:: f_{-i}(X_{i})=\frac{1}{(n-1)h} + \sum_{j=1,j\neq i}K_{h}(X_{i},X_{j}) + + where :math:`K_{h}` represents the generalized product kernel + estimator: + + .. math:: K_{h}(X_{i},X_{j}) = + \prod_{s=1}^{q}h_{s}^{-1}k\left(\frac{X_{is}-X_{js}}{h_{s}}\right) + """ + LOO = LeaveOneOut(self.data) + L = 0 + for i, X_not_i in enumerate(LOO): + f_i = gpke(bw, data=-X_not_i, data_predict=-self.data[i, :], + var_type=self.var_type) + L += func(f_i) + + return -L + + def pdf(self, data_predict=None): + r""" + Evaluate the probability density function. + + Parameters + ---------- + data_predict: array_like, optional + Points to evaluate at. If unspecified, the training data is used. + + Returns + ------- + pdf_est: array_like + Probability density function evaluated at `data_predict`. + + Notes + ----- + The probability density is given by the generalized product kernel + estimator: + + .. math:: K_{h}(X_{i},X_{j}) = + \prod_{s=1}^{q}h_{s}^{-1}k\left(\frac{X_{is}-X_{js}}{h_{s}}\right) + """ + if data_predict is None: + data_predict = self.data + else: + data_predict = _adjust_shape(data_predict, self.k_vars) + + pdf_est = [] + for i in range(np.shape(data_predict)[0]): + pdf_est.append(gpke(self.bw, data=self.data, + data_predict=data_predict[i, :], + var_type=self.var_type) / self.nobs) + + pdf_est = np.squeeze(pdf_est) + return pdf_est + + def cdf(self, data_predict=None): + r""" + Evaluate the cumulative distribution function. + + Parameters + ---------- + data_predict: array_like, optional + Points to evaluate at. If unspecified, the training data is used. + + Returns + ------- + cdf_est: array_like + The estimate of the cdf. + + Notes + ----- + See http://en.wikipedia.org/wiki/Cumulative_distribution_function + For more details on the estimation see Ref. [5] in module docstring. + + The multivariate CDF for mixed data (continuous and ordered/unordered + discrete) is estimated by: + + ..math:: F(x^{c},x^{d})=n^{-1}\sum_{i=1}^{n}\left[G( + \frac{x^{c}-X_{i}}{h})\sum_{u\leq x^{d}}L(X_{i}^{d},x_{i}^{d}, + \lambda)\right] + + where G() is the product kernel CDF estimator for the continuous + and L() for the discrete variables. + + Used bandwidth is ``self.bw``. + """ + if data_predict is None: + data_predict = self.data + else: + data_predict = _adjust_shape(data_predict, self.k_vars) + + cdf_est = [] + for i in range(np.shape(data_predict)[0]): + cdf_est.append(gpke(self.bw, data=self.data, + data_predict=data_predict[i, :], + var_type=self.var_type, + ckertype="gaussian_cdf", + ukertype="aitchisonaitken_cdf", + okertype='wangryzin_cdf') / self.nobs) + + cdf_est = np.squeeze(cdf_est) + return cdf_est + + def imse(self, bw): + r""" + Returns the Integrated Mean Square Error for the unconditional KDE. + + Parameters + ---------- + bw: array_like + The bandwidth parameter(s). + + Returns + ------- + CV: float + The cross-validation objective function. + + Notes + ----- + See p. 27 in [1]_ for details on how to handle the multivariate + estimation with mixed data types see p.6 in [2]_. + + The formula for the cross-validation objective function is: + + .. math:: CV=\frac{1}{n^{2}}\sum_{i=1}^{n}\sum_{j=1}^{N} + \bar{K}_{h}(X_{i},X_{j})-\frac{2}{n(n-1)}\sum_{i=1}^{n} + \sum_{j=1,j\neq i}^{N}K_{h}(X_{i},X_{j}) + + Where :math:`\bar{K}_{h}` is the multivariate product convolution + kernel (consult [2]_ for mixed data types). + + References + ---------- + .. [1] Racine, J., Li, Q. Nonparametric econometrics: theory and + practice. Princeton University Press. (2007) + .. [2] Racine, J., Li, Q. "Nonparametric Estimation of Distributions + with Categorical and Continuous Data." Working Paper. (2000) + """ + #F = 0 + #for i in range(self.nobs): + # k_bar_sum = gpke(bw, data=-self.data, + # data_predict=-self.data[i, :], + # var_type=self.var_type, + # ckertype='gauss_convolution', + # okertype='wangryzin_convolution', + # ukertype='aitchisonaitken_convolution') + # F += k_bar_sum + ## there is a + because loo_likelihood returns the negative + #return (F / self.nobs**2 + self.loo_likelihood(bw) * \ + # 2 / ((self.nobs) * (self.nobs - 1))) + + # The code below is equivalent to the commented-out code above. It's + # about 20% faster due to some code being moved outside the for-loops + # and shared by gpke() and loo_likelihood(). + F = 0 + kertypes = dict(c=kernels.gaussian_convolution, + o=kernels.wang_ryzin_convolution, + u=kernels.aitchison_aitken_convolution) + nobs = self.nobs + data = -self.data + var_type = self.var_type + ix_cont = np.array([c == 'c' for c in var_type]) + _bw_cont_product = bw[ix_cont].prod() + Kval = np.empty(data.shape) + for i in range(nobs): + for ii, vtype in enumerate(var_type): + Kval[:, ii] = kertypes[vtype](bw[ii], + data[:, ii], + data[i, ii]) + + dens = Kval.prod(axis=1) / _bw_cont_product + k_bar_sum = dens.sum(axis=0) + F += k_bar_sum # sum of prod kernel over nobs + + kertypes = dict(c=kernels.gaussian, + o=kernels.wang_ryzin, + u=kernels.aitchison_aitken) + LOO = LeaveOneOut(self.data) + L = 0 # leave-one-out likelihood + Kval = np.empty((data.shape[0]-1, data.shape[1])) + for i, X_not_i in enumerate(LOO): + for ii, vtype in enumerate(var_type): + Kval[:, ii] = kertypes[vtype](bw[ii], + -X_not_i[:, ii], + data[i, ii]) + dens = Kval.prod(axis=1) / _bw_cont_product + L += dens.sum(axis=0) + + # CV objective function, eq. (2.4) of Ref. [3] + return (F / nobs**2 - 2 * L / (nobs * (nobs - 1))) + + def _get_class_vars_type(self): + """Helper method to be able to pass needed vars to _compute_subset.""" + class_type = 'KDEMultivariate' + class_vars = (self.var_type, ) + return class_type, class_vars + + +class KDEMultivariateConditional(GenericKDE): + """ + Conditional multivariate kernel density estimator. + + Calculates ``P(Y_1,Y_2,...Y_n | X_1,X_2...X_m) = + P(X_1, X_2,...X_n, Y_1, Y_2,..., Y_m)/P(X_1, X_2,..., X_m)``. + The conditional density is by definition the ratio of the two densities, + see [1]_. + + Parameters + ---------- + endog: list of ndarrays or 2-D ndarray + The training data for the dependent variables, used to determine + the bandwidth(s). If a 2-D array, should be of shape + (num_observations, num_variables). If a list, each list element is a + separate observation. + exog: list of ndarrays or 2-D ndarray + The training data for the independent variable; same shape as `endog`. + dep_type: str + The type of the dependent variables: + + c : Continuous + u : Unordered (Discrete) + o : Ordered (Discrete) + + The string should contain a type specifier for each variable, so for + example ``dep_type='ccuo'``. + indep_type: str + The type of the independent variables; specifed like `dep_type`. + bw: array_like or str, optional + If an array, it is a fixed user-specified bandwidth. If a string, + should be one of: + + - normal_reference: normal reference rule of thumb (default) + - cv_ml: cross validation maximum likelihood + - cv_ls: cross validation least squares + + defaults: Instance of class EstimatorSettings + The default values for the efficient bandwidth estimation + + Attributes + --------- + bw: array_like + The bandwidth parameters + + See Also + -------- + KDEMultivariate + + References + ---------- + .. [1] http://en.wikipedia.org/wiki/Conditional_probability_distribution + + Examples + -------- + >>> import statsmodels.api as sm + >>> nobs = 300 + >>> c1 = np.random.normal(size=(nobs,1)) + >>> c2 = np.random.normal(2,1,size=(nobs,1)) + + >>> dens_c = sm.nonparametric.KDEMultivariateConditional(endog=[c1], + ... exog=[c2], dep_type='c', indep_type='c', bw='normal_reference') + >>> dens_c.bw # show computed bandwidth + array([ 0.41223484, 0.40976931]) + """ + + def __init__(self, endog, exog, dep_type, indep_type, bw, + defaults=EstimatorSettings()): + self.dep_type = dep_type + self.indep_type = indep_type + self.data_type = dep_type + indep_type + self.k_dep = len(self.dep_type) + self.k_indep = len(self.indep_type) + self.endog = _adjust_shape(endog, self.k_dep) + self.exog = _adjust_shape(exog, self.k_indep) + self.nobs, self.k_dep = np.shape(self.endog) + self.data = np.column_stack((self.endog, self.exog)) + self.k_vars = np.shape(self.data)[1] + self._set_defaults(defaults) + if not self.efficient: + self.bw = self._compute_bw(bw) + else: + self.bw = self._compute_efficient(bw) + + def __repr__(self): + """Provide something sane to print.""" + rpr = "KDEMultivariateConditional instance\n" + rpr += "Number of independent variables: k_indep = " + \ + str(self.k_indep) + "\n" + rpr += "Number of dependent variables: k_dep = " + \ + str(self.k_dep) + "\n" + rpr += "Number of observations: nobs = " + str(self.nobs) + "\n" + rpr += "Independent variable types: " + self.indep_type + "\n" + rpr += "Dependent variable types: " + self.dep_type + "\n" + rpr += "BW selection method: " + self._bw_method + "\n" + return rpr + + def loo_likelihood(self, bw, func=lambda x: x): + """ + Returns the leave-one-out conditional likelihood of the data. + + If `func` is not equal to the default, what's calculated is a function + of the leave-one-out conditional likelihood. + + Parameters + ---------- + bw: array_like + The bandwidth parameter(s). + func: callable, optional + Function to transform the likelihood values (before summing); for + the log likelihood, use ``func=np.log``. Default is ``f(x) = x``. + + Returns + ------- + L: float + The value of the leave-one-out function for the data. + + Notes + ----- + Similar to ``KDE.loo_likelihood`, but substitute ``f(y|x)=f(x,y)/f(y)`` + for ``f(x)``. + """ + yLOO = LeaveOneOut(self.data) + xLOO = LeaveOneOut(self.exog).__iter__() + L = 0 + for i, Y_j in enumerate(yLOO): + X_not_i = next(xLOO) + f_yx = gpke(bw, data=-Y_j, data_predict=-self.data[i, :], + var_type=(self.dep_type + self.indep_type)) + f_x = gpke(bw[self.k_dep:], data=-X_not_i, + data_predict=-self.exog[i, :], + var_type=self.indep_type) + f_i = f_yx / f_x + L += func(f_i) + + return -L + + def pdf(self, endog_predict=None, exog_predict=None): + r""" + Evaluate the probability density function. + + Parameters + ---------- + endog_predict: array_like, optional + Evaluation data for the dependent variables. If unspecified, the + training data is used. + exog_predict: array_like, optional + Evaluation data for the independent variables. + + Returns + ------- + pdf: array_like + The value of the probability density at `endog_predict` and `exog_predict`. + + Notes + ----- + The formula for the conditional probability density is: + + .. math:: f(X|Y)=\frac{f(X,Y)}{f(Y)} + + with + + .. math:: f(X)=\prod_{s=1}^{q}h_{s}^{-1}k + \left(\frac{X_{is}-X_{js}}{h_{s}}\right) + + where :math:`k` is the appropriate kernel for each variable. + """ + if endog_predict is None: + endog_predict = self.endog + else: + endog_predict = _adjust_shape(endog_predict, self.k_dep) + if exog_predict is None: + exog_predict = self.exog + else: + exog_predict = _adjust_shape(exog_predict, self.k_indep) + + pdf_est = [] + data_predict = np.column_stack((endog_predict, exog_predict)) + for i in range(np.shape(data_predict)[0]): + f_yx = gpke(self.bw, data=self.data, + data_predict=data_predict[i, :], + var_type=(self.dep_type + self.indep_type)) + f_x = gpke(self.bw[self.k_dep:], data=self.exog, + data_predict=exog_predict[i, :], + var_type=self.indep_type) + pdf_est.append(f_yx / f_x) + + return np.squeeze(pdf_est) + + def cdf(self, endog_predict=None, exog_predict=None): + r""" + Cumulative distribution function for the conditional density. + + Parameters + ---------- + endog_predict: array_like, optional + The evaluation dependent variables at which the cdf is estimated. + If not specified the training dependent variables are used. + exog_predict: array_like, optional + The evaluation independent variables at which the cdf is estimated. + If not specified the training independent variables are used. + + Returns + ------- + cdf_est: array_like + The estimate of the cdf. + + Notes + ----- + For more details on the estimation see [2]_, and p.181 in [1]_. + + The multivariate conditional CDF for mixed data (continuous and + ordered/unordered discrete) is estimated by: + + ..math:: F(y|x)=\frac{n^{-1}\sum_{i=1}^{n}G(\frac{y-Y_{i}}{h_{0}}) + W_{h}(X_{i},x)}{\widehat{\mu}(x)} + + where G() is the product kernel CDF estimator for the dependent (y) + variable(s) and W() is the product kernel CDF estimator for the + independent variable(s). + + References + ---------- + .. [1] Racine, J., Li, Q. Nonparametric econometrics: theory and + practice. Princeton University Press. (2007) + .. [2] Liu, R., Yang, L. "Kernel estimation of multivariate cumulative + distribution function." Journal of Nonparametric + Statistics (2008) + """ + if endog_predict is None: + endog_predict = self.endog + else: + endog_predict = _adjust_shape(endog_predict, self.k_dep) + if exog_predict is None: + exog_predict = self.exog + else: + exog_predict = _adjust_shape(exog_predict, self.k_indep) + + N_data_predict = np.shape(exog_predict)[0] + cdf_est = np.empty(N_data_predict) + for i in range(N_data_predict): + mu_x = gpke(self.bw[self.k_dep:], data=self.exog, + data_predict=exog_predict[i, :], + var_type=self.indep_type) / self.nobs + mu_x = np.squeeze(mu_x) + cdf_endog = gpke(self.bw[0:self.k_dep], data=self.endog, + data_predict=endog_predict[i, :], + var_type=self.dep_type, + ckertype="gaussian_cdf", + ukertype="aitchisonaitken_cdf", + okertype='wangryzin_cdf', tosum=False) + + cdf_exog = gpke(self.bw[self.k_dep:], data=self.exog, + data_predict=exog_predict[i, :], + var_type=self.indep_type, tosum=False) + S = (cdf_endog * cdf_exog).sum(axis=0) + cdf_est[i] = S / (self.nobs * mu_x) + + return cdf_est + + def imse(self, bw): + r""" + The integrated mean square error for the conditional KDE. + + Parameters + ---------- + bw: array_like + The bandwidth parameter(s). + + Returns + ------- + CV: float + The cross-validation objective function. + + Notes + ----- + For more details see pp. 156-166 in [1]_. For details on how to + handle the mixed variable types see [2]_. + + The formula for the cross-validation objective function for mixed + variable types is: + + .. math:: CV(h,\lambda)=\frac{1}{n}\sum_{l=1}^{n} + \frac{G_{-l}(X_{l})}{\left[\mu_{-l}(X_{l})\right]^{2}}- + \frac{2}{n}\sum_{l=1}^{n}\frac{f_{-l}(X_{l},Y_{l})}{\mu_{-l}(X_{l})} + + where + + .. math:: G_{-l}(X_{l}) = n^{-2}\sum_{i\neq l}\sum_{j\neq l} + K_{X_{i},X_{l}} K_{X_{j},X_{l}}K_{Y_{i},Y_{j}}^{(2)} + + where :math:`K_{X_{i},X_{l}}` is the multivariate product kernel and + :math:`\mu_{-l}(X_{l})` is the leave-one-out estimator of the pdf. + + :math:`K_{Y_{i},Y_{j}}^{(2)}` is the convolution kernel. + + The value of the function is minimized by the ``_cv_ls`` method of the + `GenericKDE` class to return the bw estimates that minimize the + distance between the estimated and "true" probability density. + + References + ---------- + .. [1] Racine, J., Li, Q. Nonparametric econometrics: theory and + practice. Princeton University Press. (2007) + .. [2] Racine, J., Li, Q. "Nonparametric Estimation of Distributions + with Categorical and Continuous Data." Working Paper. (2000) + """ + zLOO = LeaveOneOut(self.data) + CV = 0 + nobs = float(self.nobs) + expander = np.ones((self.nobs - 1, 1)) + for ii, Z in enumerate(zLOO): + X = Z[:, self.k_dep:] + Y = Z[:, :self.k_dep] + Ye_L = np.kron(Y, expander) + Ye_R = np.kron(expander, Y) + Xe_L = np.kron(X, expander) + Xe_R = np.kron(expander, X) + K_Xi_Xl = gpke(bw[self.k_dep:], data=Xe_L, + data_predict=self.exog[ii, :], + var_type=self.indep_type, tosum=False) + K_Xj_Xl = gpke(bw[self.k_dep:], data=Xe_R, + data_predict=self.exog[ii, :], + var_type=self.indep_type, tosum=False) + K2_Yi_Yj = gpke(bw[0:self.k_dep], data=Ye_L, + data_predict=Ye_R, var_type=self.dep_type, + ckertype='gauss_convolution', + okertype='wangryzin_convolution', + ukertype='aitchisonaitken_convolution', + tosum=False) + G = (K_Xi_Xl * K_Xj_Xl * K2_Yi_Yj).sum() / nobs**2 + f_X_Y = gpke(bw, data=-Z, data_predict=-self.data[ii, :], + var_type=(self.dep_type + self.indep_type)) / nobs + m_x = gpke(bw[self.k_dep:], data=-X, + data_predict=-self.exog[ii, :], + var_type=self.indep_type) / nobs + CV += (G / m_x ** 2) - 2 * (f_X_Y / m_x) + + return CV / nobs + + def _get_class_vars_type(self): + """Helper method to be able to pass needed vars to _compute_subset.""" + class_type = 'KDEMultivariateConditional' + class_vars = (self.k_dep, self.dep_type, self.indep_type) + return class_type, class_vars + diff --git a/statsmodels/nonparametric/kernel_regression.py b/statsmodels/nonparametric/kernel_regression.py new file mode 100644 index 0000000..5ff079e --- /dev/null +++ b/statsmodels/nonparametric/kernel_regression.py @@ -0,0 +1,940 @@ +""" +Multivariate Conditional and Unconditional Kernel Density Estimation +with Mixed Data Types + +References +---------- +[1] Racine, J., Li, Q. Nonparametric econometrics: theory and practice. + Princeton University Press. (2007) +[2] Racine, Jeff. "Nonparametric Econometrics: A Primer," Foundation + and Trends in Econometrics: Vol 3: No 1, pp1-88. (2008) + http://dx.doi.org/10.1561/0800000009 +[3] Racine, J., Li, Q. "Nonparametric Estimation of Distributions + with Categorical and Continuous Data." Working Paper. (2000) +[4] Racine, J. Li, Q. "Kernel Estimation of Multivariate Conditional + Distributions Annals of Economics and Finance 5, 211-235 (2004) +[5] Liu, R., Yang, L. "Kernel estimation of multivariate + cumulative distribution function." + Journal of Nonparametric Statistics (2008) +[6] Li, R., Ju, G. "Nonparametric Estimation of Multivariate CDF + with Categorical and Continuous Data." Working Paper +[7] Li, Q., Racine, J. "Cross-validated local linear nonparametric + regression" Statistica Sinica 14(2004), pp. 485-512 +[8] Racine, J.: "Consistent Significance Testing for Nonparametric + Regression" Journal of Business & Economics Statistics +[9] Racine, J., Hart, J., Li, Q., "Testing the Significance of + Categorical Predictor Variables in Nonparametric Regression + Models", 2006, Econometric Reviews 25, 523-544 + +""" + +from __future__ import division +# TODO: make default behavior efficient=True above a certain n_obs + +from statsmodels.compat.python import range, string_types, next +import copy + +import numpy as np +from scipy import optimize +from scipy.stats.mstats import mquantiles + +from ._kernel_base import GenericKDE, EstimatorSettings, gpke, \ + LeaveOneOut, _get_type_pos, _adjust_shape, _compute_min_std_IQR + + + +__all__ = ['KernelReg', 'KernelCensoredReg'] + + +class KernelReg(GenericKDE): + """ + Nonparametric kernel regression class. + + Calculates the conditional mean ``E[y|X]`` where ``y = g(X) + e``. + Note that the "local constant" type of regression provided here is also + known as Nadaraya-Watson kernel regression; "local linear" is an extension + of that which suffers less from bias issues at the edge of the support. + + Parameters + ---------- + endog: list with one element which is array_like + This is the dependent variable. + exog: list + The training data for the independent variable(s) + Each element in the list is a separate variable + var_type: str + The type of the variables, one character per variable: + + - c: continuous + - u: unordered (discrete) + - o: ordered (discrete) + + reg_type: {'lc', 'll'}, optional + Type of regression estimator. 'lc' means local constant and + 'll' local Linear estimator. Default is 'll' + bw: str or array_like, optional + Either a user-specified bandwidth or the method for bandwidth + selection. If a string, valid values are 'cv_ls' (least-squares + cross-validation) and 'aic' (AIC Hurvich bandwidth estimation). + Default is 'cv_ls'. + defaults: EstimatorSettings instance, optional + The default values for the efficient bandwidth estimation. + + Attributes + --------- + bw: array_like + The bandwidth parameters. + + **Methods** + + r-squared : calculates the R-Squared coefficient for the model. + fit : calculates the conditional mean and marginal effects. + + """ + def __init__(self, endog, exog, var_type, reg_type='ll', bw='cv_ls', + defaults=EstimatorSettings()): + self.var_type = var_type + self.data_type = var_type + self.reg_type = reg_type + self.k_vars = len(self.var_type) + self.endog = _adjust_shape(endog, 1) + self.exog = _adjust_shape(exog, self.k_vars) + self.data = np.column_stack((self.endog, self.exog)) + self.nobs = np.shape(self.exog)[0] + self.bw_func = dict(cv_ls=self.cv_loo, aic=self.aic_hurvich) + self.est = dict(lc=self._est_loc_constant, ll=self._est_loc_linear) + self._set_defaults(defaults) + if not self.efficient: + self.bw = self._compute_reg_bw(bw) + else: + self.bw = self._compute_efficient(bw) + + def _compute_reg_bw(self, bw): + if not isinstance(bw, string_types): + self._bw_method = "user-specified" + return np.asarray(bw) + else: + # The user specified a bandwidth selection method e.g. 'cv_ls' + self._bw_method = bw + res = self.bw_func[bw] + X = np.std(self.exog, axis=0) + h0 = 1.06 * X * \ + self.nobs ** (- 1. / (4 + np.size(self.exog, axis=1))) + + func = self.est[self.reg_type] + bw_estimated = optimize.fmin(res, x0=h0, args=(func, ), + maxiter=1e3, maxfun=1e3, disp=0) + return bw_estimated + + def _est_loc_linear(self, bw, endog, exog, data_predict): + """ + Local linear estimator of g(x) in the regression ``y = g(x) + e``. + + Parameters + ---------- + bw: array_like + Vector of bandwidth value(s). + endog: 1D array_like + The dependent variable. + exog: 1D or 2D array_like + The independent variable(s). + data_predict: 1D array_like of length K, where K is the number of variables. + The point at which the density is estimated. + + Returns + ------- + D_x: array_like + The value of the conditional mean at `data_predict`. + + Notes + ----- + See p. 81 in [1] and p.38 in [2] for the formulas. + Unlike other methods, this one requires that `data_predict` be 1D. + + """ + nobs, k_vars = exog.shape + ker = gpke(bw, data=exog, data_predict=data_predict, + var_type=self.var_type, + #ukertype='aitchison_aitken_reg', + #okertype='wangryzin_reg', + tosum=False) / float(nobs) + # Create the matrix on p.492 in [7], after the multiplication w/ K_h,ij + # See also p. 38 in [2] + #ix_cont = np.arange(self.k_vars) # Use all vars instead of continuous only + # Note: because ix_cont was defined here such that it selected all + # columns, I removed the indexing with it from exog/data_predict. + + # Convert ker to a 2-D array to make matrix operations below work + ker = ker[:, np.newaxis] + + M12 = exog - data_predict + M22 = np.dot(M12.T, M12 * ker) + M12 = (M12 * ker).sum(axis=0) + M = np.empty((k_vars + 1, k_vars + 1)) + M[0, 0] = ker.sum() + M[0, 1:] = M12 + M[1:, 0] = M12 + M[1:, 1:] = M22 + + ker_endog = ker * endog + V = np.empty((k_vars + 1, 1)) + V[0, 0] = ker_endog.sum() + V[1:, 0] = ((exog - data_predict) * ker_endog).sum(axis=0) + + mean_mfx = np.dot(np.linalg.pinv(M), V) + mean = mean_mfx[0] + mfx = mean_mfx[1:, :] + return mean, mfx + + def _est_loc_constant(self, bw, endog, exog, data_predict): + """ + Local constant estimator of g(x) in the regression + y = g(x) + e + + Parameters + ---------- + bw : array_like + Array of bandwidth value(s). + endog : 1D array_like + The dependent variable. + exog : 1D or 2D array_like + The independent variable(s). + data_predict : 1D or 2D array_like + The point(s) at which the density is estimated. + + Returns + ------- + G : ndarray + The value of the conditional mean at `data_predict`. + B_x : ndarray + The marginal effects. + + """ + ker_x = gpke(bw, data=exog, data_predict=data_predict, + var_type=self.var_type, + #ukertype='aitchison_aitken_reg', + #okertype='wangryzin_reg', + tosum=False) + ker_x = np.reshape(ker_x, np.shape(endog)) + G_numer = (ker_x * endog).sum(axis=0) + G_denom = ker_x.sum(axis=0) + G = G_numer / G_denom + nobs = exog.shape[0] + f_x = G_denom / float(nobs) + ker_xc = gpke(bw, data=exog, data_predict=data_predict, + var_type=self.var_type, + ckertype='d_gaussian', + #okertype='wangryzin_reg', + tosum=False) + + ker_xc = ker_xc[:, np.newaxis] + d_mx = -(endog * ker_xc).sum(axis=0) / float(nobs) #* np.prod(bw[:, ix_cont])) + d_fx = -ker_xc.sum(axis=0) / float(nobs) #* np.prod(bw[:, ix_cont])) + B_x = d_mx / f_x - G * d_fx / f_x + B_x = (G_numer * d_fx - G_denom * d_mx) / (G_denom**2) + #B_x = (f_x * d_mx - m_x * d_fx) / (f_x ** 2) + return G, B_x + + def aic_hurvich(self, bw, func=None): + """ + Computes the AIC Hurvich criteria for the estimation of the bandwidth. + + Parameters + ---------- + bw : str or array_like + See the ``bw`` parameter of `KernelReg` for details. + + Returns + ------- + aic : ndarray + The AIC Hurvich criteria, one element for each variable. + func : None + Unused here, needed in signature because it's used in `cv_loo`. + + References + ---------- + See ch.2 in [1] and p.35 in [2]. + + """ + H = np.empty((self.nobs, self.nobs)) + for j in range(self.nobs): + H[:, j] = gpke(bw, data=self.exog, data_predict=self.exog[j,:], + var_type=self.var_type, tosum=False) + + denom = H.sum(axis=1) + H = H / denom + gx = KernelReg(endog=self.endog, exog=self.exog, var_type=self.var_type, + reg_type=self.reg_type, bw=bw, + defaults=EstimatorSettings(efficient=False)).fit()[0] + gx = np.reshape(gx, (self.nobs, 1)) + sigma = ((self.endog - gx)**2).sum(axis=0) / float(self.nobs) + + frac = (1 + np.trace(H) / float(self.nobs)) / \ + (1 - (np.trace(H) + 2) / float(self.nobs)) + #siga = np.dot(self.endog.T, (I - H).T) + #sigb = np.dot((I - H), self.endog) + #sigma = np.dot(siga, sigb) / float(self.nobs) + aic = np.log(sigma) + frac + return aic + + def cv_loo(self, bw, func): + """ + The cross-validation function with leave-one-out estimator. + + Parameters + ---------- + bw: array_like + Vector of bandwidth values. + func: callable function + Returns the estimator of g(x). Can be either ``_est_loc_constant`` + (local constant) or ``_est_loc_linear`` (local_linear). + + Returns + ------- + L: float + The value of the CV function. + + Notes + ----- + Calculates the cross-validation least-squares function. This function + is minimized by compute_bw to calculate the optimal value of `bw`. + + For details see p.35 in [2] + + ..math:: CV(h)=n^{-1}\sum_{i=1}^{n}(Y_{i}-g_{-i}(X_{i}))^{2} + + where :math:`g_{-i}(X_{i})` is the leave-one-out estimator of g(X) + and :math:`h` is the vector of bandwidths + + """ + LOO_X = LeaveOneOut(self.exog) + LOO_Y = LeaveOneOut(self.endog).__iter__() + L = 0 + for ii, X_not_i in enumerate(LOO_X): + Y = next(LOO_Y) + G = func(bw, endog=Y, exog=-X_not_i, + data_predict=-self.exog[ii, :])[0] + L += (self.endog[ii] - G) ** 2 + + # Note: There might be a way to vectorize this. See p.72 in [1] + return L / self.nobs + + def r_squared(self): + r""" + Returns the R-Squared for the nonparametric regression. + + Notes + ----- + For more details see p.45 in [2] + The R-Squared is calculated by: + + .. math:: R^{2}=\frac{\left[\sum_{i=1}^{n} + (Y_{i}-\bar{y})(\hat{Y_{i}}-\bar{y}\right]^{2}}{\sum_{i=1}^{n} + (Y_{i}-\bar{y})^{2}\sum_{i=1}^{n}(\hat{Y_{i}}-\bar{y})^{2}}, + + where :math:`\hat{Y_{i}}` is the mean calculated in `fit` at the exog + points. + + """ + Y = np.squeeze(self.endog) + Yhat = self.fit()[0] + Y_bar = np.mean(Yhat) + R2_numer = (((Y - Y_bar) * (Yhat - Y_bar)).sum())**2 + R2_denom = ((Y - Y_bar)**2).sum(axis=0) * \ + ((Yhat - Y_bar)**2).sum(axis=0) + return R2_numer / R2_denom + + def fit(self, data_predict=None): + """ + Returns the mean and marginal effects at the `data_predict` points. + + Parameters + ---------- + data_predict : array_like, optional + Points at which to return the mean and marginal effects. If not + given, ``data_predict == exog``. + + Returns + ------- + mean : ndarray + The regression result for the mean (i.e. the actual curve). + mfx : ndarray + The marginal effects, i.e. the partial derivatives of the mean. + + """ + func = self.est[self.reg_type] + if data_predict is None: + data_predict = self.exog + else: + data_predict = _adjust_shape(data_predict, self.k_vars) + + N_data_predict = np.shape(data_predict)[0] + mean = np.empty((N_data_predict,)) + mfx = np.empty((N_data_predict, self.k_vars)) + for i in range(N_data_predict): + mean_mfx = func(self.bw, self.endog, self.exog, + data_predict=data_predict[i, :]) + mean[i] = mean_mfx[0] + mfx_c = np.squeeze(mean_mfx[1]) + mfx[i, :] = mfx_c + + return mean, mfx + + def sig_test(self, var_pos, nboot=50, nested_res=25, pivot=False): + """ + Significance test for the variables in the regression. + + Parameters + ---------- + var_pos: sequence + The position of the variable in exog to be tested. + + Returns + ------- + sig: str + The level of significance: + + - `*` : at 90% confidence level + - `**` : at 95% confidence level + - `***` : at 99* confidence level + - "Not Significant" : if not significant + + """ + var_pos = np.asarray(var_pos) + ix_cont, ix_ord, ix_unord = _get_type_pos(self.var_type) + if np.any(ix_cont[var_pos]): + if np.any(ix_ord[var_pos]) or np.any(ix_unord[var_pos]): + raise ValueError("Discrete variable in hypothesis. Must be continuous") + + Sig = TestRegCoefC(self, var_pos, nboot, nested_res, pivot) + else: + Sig = TestRegCoefD(self, var_pos, nboot) + + return Sig.sig + + def __repr__(self): + """Provide something sane to print.""" + rpr = "KernelReg instance\n" + rpr += "Number of variables: k_vars = " + str(self.k_vars) + "\n" + rpr += "Number of samples: N = " + str(self.nobs) + "\n" + rpr += "Variable types: " + self.var_type + "\n" + rpr += "BW selection method: " + self._bw_method + "\n" + rpr += "Estimator type: " + self.reg_type + "\n" + return rpr + + def _get_class_vars_type(self): + """Helper method to be able to pass needed vars to _compute_subset.""" + class_type = 'KernelReg' + class_vars = (self.var_type, self.k_vars, self.reg_type) + return class_type, class_vars + + def _compute_dispersion(self, data): + """ + Computes the measure of dispersion. + + The minimum of the standard deviation and interquartile range / 1.349 + + References + ---------- + See the user guide for the np package in R. + In the notes on bwscaling option in npreg, npudens, npcdens there is + a discussion on the measure of dispersion + """ + data = data[:, 1:] + return _compute_min_std_IQR(data) + + +class KernelCensoredReg(KernelReg): + """ + Nonparametric censored regression. + + Calculates the condtional mean ``E[y|X]`` where ``y = g(X) + e``, + where y is left-censored. Left censored variable Y is defined as + ``Y = min {Y', L}`` where ``L`` is the value at which ``Y`` is censored + and ``Y'`` is the true value of the variable. + + Parameters + ---------- + endog: list with one element which is array_like + This is the dependent variable. + exog: list + The training data for the independent variable(s) + Each element in the list is a separate variable + dep_type: str + The type of the dependent variable(s) + c: Continuous + u: Unordered (Discrete) + o: Ordered (Discrete) + reg_type: str + Type of regression estimator + lc: Local Constant Estimator + ll: Local Linear Estimator + bw: array_like + Either a user-specified bandwidth or + the method for bandwidth selection. + cv_ls: cross-validaton least squares + aic: AIC Hurvich Estimator + censor_val: float + Value at which the dependent variable is censored + defaults: EstimatorSettings instance, optional + The default values for the efficient bandwidth estimation + + Attributes + --------- + bw: array_like + The bandwidth parameters + + *Methods* + + r-squared : calculates the R-Squared coefficient for the model. + fit : calculates the conditional mean and marginal effects. + + """ + def __init__(self, endog, exog, var_type, reg_type, bw='cv_ls', + censor_val=0, defaults=EstimatorSettings()): + self.var_type = var_type + self.data_type = var_type + self.reg_type = reg_type + self.k_vars = len(self.var_type) + self.endog = _adjust_shape(endog, 1) + self.exog = _adjust_shape(exog, self.k_vars) + self.data = np.column_stack((self.endog, self.exog)) + self.nobs = np.shape(self.exog)[0] + self.bw_func = dict(cv_ls=self.cv_loo, aic=self.aic_hurvich) + self.est = dict(lc=self._est_loc_constant, ll=self._est_loc_linear) + self._set_defaults(defaults) + self.censor_val = censor_val + if self.censor_val is not None: + self.censored(censor_val) + else: + self.W_in = np.ones((self.nobs, 1)) + + if not self.efficient: + self.bw = self._compute_reg_bw(bw) + else: + self.bw = self._compute_efficient(bw) + + def censored(self, censor_val): + # see pp. 341-344 in [1] + self.d = (self.endog != censor_val) * 1. + ix = np.argsort(np.squeeze(self.endog)) + self.sortix = ix + self.sortix_rev = np.zeros(ix.shape, int) + self.sortix_rev[ix] = np.arange(len(ix)) + self.endog = np.squeeze(self.endog[ix]) + self.endog = _adjust_shape(self.endog, 1) + self.exog = np.squeeze(self.exog[ix]) + self.d = np.squeeze(self.d[ix]) + self.W_in = np.empty((self.nobs, 1)) + for i in range(1, self.nobs + 1): + P=1 + for j in range(1, i): + P *= ((self.nobs - j)/(float(self.nobs)-j+1))**self.d[j-1] + self.W_in[i-1,0] = P * self.d[i-1] / (float(self.nobs) - i + 1 ) + + def __repr__(self): + """Provide something sane to print.""" + rpr = "KernelCensoredReg instance\n" + rpr += "Number of variables: k_vars = " + str(self.k_vars) + "\n" + rpr += "Number of samples: nobs = " + str(self.nobs) + "\n" + rpr += "Variable types: " + self.var_type + "\n" + rpr += "BW selection method: " + self._bw_method + "\n" + rpr += "Estimator type: " + self.reg_type + "\n" + return rpr + + def _est_loc_linear(self, bw, endog, exog, data_predict, W): + """ + Local linear estimator of g(x) in the regression ``y = g(x) + e``. + + Parameters + ---------- + bw: array_like + Vector of bandwidth value(s) + endog: 1D array_like + The dependent variable + exog: 1D or 2D array_like + The independent variable(s) + data_predict: 1D array_like of length K, where K is + the number of variables. The point at which + the density is estimated + + Returns + ------- + D_x: array_like + The value of the conditional mean at data_predict + + Notes + ----- + See p. 81 in [1] and p.38 in [2] for the formulas + Unlike other methods, this one requires that data_predict be 1D + + """ + nobs, k_vars = exog.shape + ker = gpke(bw, data=exog, data_predict=data_predict, + var_type=self.var_type, + ukertype='aitchison_aitken_reg', + okertype='wangryzin_reg', tosum=False) + # Create the matrix on p.492 in [7], after the multiplication w/ K_h,ij + # See also p. 38 in [2] + + # Convert ker to a 2-D array to make matrix operations below work + ker = W * ker[:, np.newaxis] + + M12 = exog - data_predict + M22 = np.dot(M12.T, M12 * ker) + M12 = (M12 * ker).sum(axis=0) + M = np.empty((k_vars + 1, k_vars + 1)) + M[0, 0] = ker.sum() + M[0, 1:] = M12 + M[1:, 0] = M12 + M[1:, 1:] = M22 + + ker_endog = ker * endog + V = np.empty((k_vars + 1, 1)) + V[0, 0] = ker_endog.sum() + V[1:, 0] = ((exog - data_predict) * ker_endog).sum(axis=0) + + mean_mfx = np.dot(np.linalg.pinv(M), V) + mean = mean_mfx[0] + mfx = mean_mfx[1:, :] + return mean, mfx + + + def cv_loo(self, bw, func): + """ + The cross-validation function with leave-one-out + estimator + + Parameters + ---------- + bw: array_like + Vector of bandwidth values + func: callable function + Returns the estimator of g(x). + Can be either ``_est_loc_constant`` (local constant) or + ``_est_loc_linear`` (local_linear). + + Returns + ------- + L: float + The value of the CV function + + Notes + ----- + Calculates the cross-validation least-squares + function. This function is minimized by compute_bw + to calculate the optimal value of bw + + For details see p.35 in [2] + + ..math:: CV(h)=n^{-1}\sum_{i=1}^{n}(Y_{i}-g_{-i}(X_{i}))^{2} + + where :math:`g_{-i}(X_{i})` is the leave-one-out estimator of g(X) + and :math:`h` is the vector of bandwidths + + """ + LOO_X = LeaveOneOut(self.exog) + LOO_Y = LeaveOneOut(self.endog).__iter__() + LOO_W = LeaveOneOut(self.W_in).__iter__() + L = 0 + for ii, X_not_i in enumerate(LOO_X): + Y = next(LOO_Y) + w = next(LOO_W) + G = func(bw, endog=Y, exog=-X_not_i, + data_predict=-self.exog[ii, :], W=w)[0] + L += (self.endog[ii] - G) ** 2 + + # Note: There might be a way to vectorize this. See p.72 in [1] + return L / self.nobs + + def fit(self, data_predict=None): + """ + Returns the marginal effects at the data_predict points. + """ + func = self.est[self.reg_type] + if data_predict is None: + data_predict = self.exog + else: + data_predict = _adjust_shape(data_predict, self.k_vars) + + N_data_predict = np.shape(data_predict)[0] + mean = np.empty((N_data_predict,)) + mfx = np.empty((N_data_predict, self.k_vars)) + for i in range(N_data_predict): + mean_mfx = func(self.bw, self.endog, self.exog, + data_predict=data_predict[i, :], + W=self.W_in) + mean[i] = mean_mfx[0] + mfx_c = np.squeeze(mean_mfx[1]) + mfx[i, :] = mfx_c + + return mean, mfx + + +class TestRegCoefC(object): + """ + Significance test for continuous variables in a nonparametric regression. + + The null hypothesis is ``dE(Y|X)/dX_not_i = 0``, the alternative hypothesis + is ``dE(Y|X)/dX_not_i != 0``. + + Parameters + ---------- + model: KernelReg instance + This is the nonparametric regression model whose elements + are tested for significance. + test_vars: tuple, list of integers, array_like + index of position of the continuous variables to be tested + for significance. E.g. (1,3,5) jointly tests variables at + position 1,3 and 5 for significance. + nboot: int + Number of bootstrap samples used to determine the distribution + of the test statistic in a finite sample. Default is 400 + nested_res: int + Number of nested resamples used to calculate lambda. + Must enable the pivot option + pivot: bool + Pivot the test statistic by dividing by its standard error + Significantly increases computational time. But pivot statistics + have more desirable properties + (See references) + + Attributes + ---------- + sig: str + The significance level of the variable(s) tested + "Not Significant": Not significant at the 90% confidence level + Fails to reject the null + "*": Significant at the 90% confidence level + "**": Significant at the 95% confidence level + "***": Significant at the 99% confidence level + + Notes + ----- + This class allows testing of joint hypothesis as long as all variables + are continuous. + + References + ---------- + Racine, J.: "Consistent Significance Testing for Nonparametric Regression" + Journal of Business \& Economics Statistics. + + Chapter 12 in [1]. + """ + # Significance of continuous vars in nonparametric regression + # Racine: Consistent Significance Testing for Nonparametric Regression + # Journal of Business & Economics Statistics + def __init__(self, model, test_vars, nboot=400, nested_res=400, + pivot=False): + self.nboot = nboot + self.nres = nested_res + self.test_vars = test_vars + self.model = model + self.bw = model.bw + self.var_type = model.var_type + self.k_vars = len(self.var_type) + self.endog = model.endog + self.exog = model.exog + self.gx = model.est[model.reg_type] + self.test_vars = test_vars + self.pivot = pivot + self.run() + + def run(self): + self.test_stat = self._compute_test_stat(self.endog, self.exog) + self.sig = self._compute_sig() + + def _compute_test_stat(self, Y, X): + """ + Computes the test statistic. See p.371 in [8]. + """ + lam = self._compute_lambda(Y, X) + t = lam + if self.pivot: + se_lam = self._compute_se_lambda(Y, X) + t = lam / float(se_lam) + + return t + + def _compute_lambda(self, Y, X): + """Computes only lambda -- the main part of the test statistic""" + n = np.shape(X)[0] + Y = _adjust_shape(Y, 1) + X = _adjust_shape(X, self.k_vars) + b = KernelReg(Y, X, self.var_type, self.model.reg_type, self.bw, + defaults = EstimatorSettings(efficient=False)).fit()[1] + + b = b[:, self.test_vars] + b = np.reshape(b, (n, len(self.test_vars))) + #fct = np.std(b) # Pivot the statistic by dividing by SE + fct = 1. # Don't Pivot -- Bootstrapping works better if Pivot + lam = ((b / fct) ** 2).sum() / float(n) + return lam + + def _compute_se_lambda(self, Y, X): + """ + Calculates the SE of lambda by nested resampling + Used to pivot the statistic. + Bootstrapping works better with estimating pivotal statistics + but slows down computation significantly. + """ + n = np.shape(Y)[0] + lam = np.empty(shape=(self.nres, )) + for i in range(self.nres): + ind = np.random.random_integers(0, n-1, size=(n,1)) + Y1 = Y[ind, 0] + X1 = X[ind, :] + lam[i] = self._compute_lambda(Y1, X1) + + se_lambda = np.std(lam) + return se_lambda + + def _compute_sig(self): + """ + Computes the significance value for the variable(s) tested. + + The empirical distribution of the test statistic is obtained through + bootstrapping the sample. The null hypothesis is rejected if the test + statistic is larger than the 90, 95, 99 percentiles. + """ + t_dist = np.empty(shape=(self.nboot, )) + Y = self.endog + X = copy.deepcopy(self.exog) + n = np.shape(Y)[0] + + X[:, self.test_vars] = np.mean(X[:, self.test_vars], axis=0) + # Calculate the restricted mean. See p. 372 in [8] + M = KernelReg(Y, X, self.var_type, self.model.reg_type, self.bw, + defaults = EstimatorSettings(efficient=False)).fit()[0] + M = np.reshape(M, (n, 1)) + e = Y - M + e = e - np.mean(e) # recenter residuals + for i in range(self.nboot): + ind = np.random.random_integers(0, n-1, size=(n,1)) + e_boot = e[ind, 0] + Y_boot = M + e_boot + t_dist[i] = self._compute_test_stat(Y_boot, self.exog) + + self.t_dist = t_dist + sig = "Not Significant" + if self.test_stat > mquantiles(t_dist, 0.9): + sig = "*" + if self.test_stat > mquantiles(t_dist, 0.95): + sig = "**" + if self.test_stat > mquantiles(t_dist, 0.99): + sig = "***" + + return sig + + +class TestRegCoefD(TestRegCoefC): + """ + Significance test for the categorical variables in a nonparametric + regression. + + Parameters + ---------- + model: Instance of KernelReg class + This is the nonparametric regression model whose elements + are tested for significance. + test_vars: tuple, list of one element + index of position of the discrete variable to be tested + for significance. E.g. (3) tests variable at + position 3 for significance. + nboot: int + Number of bootstrap samples used to determine the distribution + of the test statistic in a finite sample. Default is 400 + + Attributes + ---------- + sig: str + The significance level of the variable(s) tested + "Not Significant": Not significant at the 90% confidence level + Fails to reject the null + "*": Significant at the 90% confidence level + "**": Significant at the 95% confidence level + "***": Significant at the 99% confidence level + + Notes + ----- + This class currently doesn't allow joint hypothesis. + Only one variable can be tested at a time + + References + ---------- + See [9] and chapter 12 in [1]. + """ + + def _compute_test_stat(self, Y, X): + """Computes the test statistic""" + + dom_x = np.sort(np.unique(self.exog[:, self.test_vars])) + + n = np.shape(X)[0] + model = KernelReg(Y, X, self.var_type, self.model.reg_type, self.bw, + defaults = EstimatorSettings(efficient=False)) + X1 = copy.deepcopy(X) + X1[:, self.test_vars] = 0 + + m0 = model.fit(data_predict=X1)[0] + m0 = np.reshape(m0, (n, 1)) + I = np.zeros((n, 1)) + for i in dom_x[1:] : + X1[:, self.test_vars] = i + m1 = model.fit(data_predict=X1)[0] + m1 = np.reshape(m1, (n, 1)) + I += (m1 - m0) ** 2 + + I = I.sum(axis=0) / float(n) + return I + + def _compute_sig(self): + """Calculates the significance level of the variable tested""" + + m = self._est_cond_mean() + Y = self.endog + X = self.exog + n = np.shape(X)[0] + u = Y - m + u = u - np.mean(u) # center + fct1 = (1 - 5**0.5) / 2. + fct2 = (1 + 5**0.5) / 2. + u1 = fct1 * u + u2 = fct2 * u + r = fct2 / (5 ** 0.5) + I_dist = np.empty((self.nboot,1)) + for j in range(self.nboot): + u_boot = copy.deepcopy(u2) + + prob = np.random.uniform(0,1, size = (n,1)) + ind = prob < r + u_boot[ind] = u1[ind] + Y_boot = m + u_boot + I_dist[j] = self._compute_test_stat(Y_boot, X) + + sig = "Not Significant" + if self.test_stat > mquantiles(I_dist, 0.9): + sig = "*" + if self.test_stat > mquantiles(I_dist, 0.95): + sig = "**" + if self.test_stat > mquantiles(I_dist, 0.99): + sig = "***" + + return sig + + def _est_cond_mean(self): + """ + Calculates the expected conditional mean + m(X, Z=l) for all possible l + """ + self.dom_x = np.sort(np.unique(self.exog[:, self.test_vars])) + X = copy.deepcopy(self.exog) + m=0 + for i in self.dom_x: + X[:, self.test_vars] = i + m += self.model.fit(data_predict = X)[0] + + m = m / float(len(self.dom_x)) + m = np.reshape(m, (np.shape(self.exog)[0], 1)) + return m + diff --git a/statsmodels/nonparametric/kernels.py b/statsmodels/nonparametric/kernels.py new file mode 100644 index 0000000..47a99d6 --- /dev/null +++ b/statsmodels/nonparametric/kernels.py @@ -0,0 +1,207 @@ +""" +Module of kernels that are able to handle continuous as well as categorical +variables (both ordered and unordered). + +This is a slight deviation from the current approach in +statsmodels.nonparametric.kernels where each kernel is a class object. + +Having kernel functions rather than classes makes extension to a multivariate +kernel density estimation much easier. + +NOTE: As it is, this module does not interact with the existing API +""" + +from __future__ import division + +import numpy as np +from scipy.special import erf + + +#TODO: +# - make sure we only receive int input for wang-ryzin and aitchison-aitken +# - Check for the scalar Xi case everywhere + + +def aitchison_aitken(h, Xi, x, num_levels=None): + """ + The Aitchison-Aitken kernel, used for unordered discrete random variables. + + Parameters + ---------- + h : 1-D ndarray, shape (K,) + The bandwidths used to estimate the value of the kernel function. + Xi : 2-D ndarray of ints, shape (nobs, K) + The value of the training set. + x: 1-D ndarray, shape (K,) + The value at which the kernel density is being estimated. + num_levels: bool, optional + Gives the user the option to specify the number of levels for the + random variable. If False, the number of levels is calculated from + the data. + + Returns + ------- + kernel_value : ndarray, shape (nobs, K) + The value of the kernel function at each training point for each var. + + Notes + ----- + See p.18 of [2]_ for details. The value of the kernel L if :math:`X_{i}=x` + is :math:`1-\lambda`, otherwise it is :math:`\frac{\lambda}{c-1}`. + Here :math:`c` is the number of levels plus one of the RV. + + References + ---------- + .. [1] J. Aitchison and C.G.G. Aitken, "Multivariate binary discrimination + by the kernel method", Biometrika, vol. 63, pp. 413-420, 1976. + .. [2] Racine, Jeff. "Nonparametric Econometrics: A Primer," Foundation + and Trends in Econometrics: Vol 3: No 1, pp1-88., 2008. + """ + Xi = Xi.reshape(Xi.size) # seems needed in case Xi is scalar + if num_levels is None: + num_levels = np.asarray(np.unique(Xi).size) + + kernel_value = np.ones(Xi.size) * h / (num_levels - 1) + idx = Xi == x + kernel_value[idx] = (idx * (1 - h))[idx] + return kernel_value + + +def wang_ryzin(h, Xi, x): + """ + The Wang-Ryzin kernel, used for ordered discrete random variables. + + Parameters + ---------- + h : scalar or 1-D ndarray, shape (K,) + The bandwidths used to estimate the value of the kernel function. + Xi : ndarray of ints, shape (nobs, K) + The value of the training set. + x : scalar or 1-D ndarray of shape (K,) + The value at which the kernel density is being estimated. + + Returns + ------- + kernel_value : ndarray, shape (nobs, K) + The value of the kernel function at each training point for each var. + + Notes + ----- + See p. 19 in [1]_ for details. The value of the kernel L if + :math:`X_{i}=x` is :math:`1-\lambda`, otherwise it is + :math:`\frac{1-\lambda}{2}\lambda^{|X_{i}-x|}`, where :math:`\lambda` is + the bandwidth. + + References + ---------- + .. [1] Racine, Jeff. "Nonparametric Econometrics: A Primer," Foundation + and Trends in Econometrics: Vol 3: No 1, pp1-88., 2008. + http://dx.doi.org/10.1561/0800000009 + .. [2] M.-C. Wang and J. van Ryzin, "A class of smooth estimators for + discrete distributions", Biometrika, vol. 68, pp. 301-309, 1981. + """ + Xi = Xi.reshape(Xi.size) # seems needed in case Xi is scalar + kernel_value = 0.5 * (1 - h) * (h ** abs(Xi - x)) + idx = Xi == x + kernel_value[idx] = (idx * (1 - h))[idx] + return kernel_value + + +def gaussian(h, Xi, x): + """ + Gaussian Kernel for continuous variables + Parameters + ---------- + h : 1-D ndarray, shape (K,) + The bandwidths used to estimate the value of the kernel function. + Xi : 1-D ndarray, shape (K,) + The value of the training set. + x : 1-D ndarray, shape (K,) + The value at which the kernel density is being estimated. + + Returns + ------- + kernel_value : ndarray, shape (nobs, K) + The value of the kernel function at each training point for each var. + + """ + return (1. / np.sqrt(2 * np.pi)) * np.exp(-(Xi - x)**2 / (h**2 * 2.)) + + +def gaussian_convolution(h, Xi, x): + """ Calculates the Gaussian Convolution Kernel """ + return (1. / np.sqrt(4 * np.pi)) * np.exp(- (Xi - x)**2 / (h**2 * 4.)) + + +def wang_ryzin_convolution(h, Xi, Xj): + # This is the equivalent of the convolution case with the Gaussian Kernel + # However it is not exactly convolution. Think of a better name + # References + ordered = np.zeros(Xi.size) + for x in np.unique(Xi): + ordered += wang_ryzin(h, Xi, x) * wang_ryzin(h, Xj, x) + + return ordered + + +def aitchison_aitken_convolution(h, Xi, Xj): + Xi_vals = np.unique(Xi) + ordered = np.zeros(Xi.size) + num_levels = Xi_vals.size + for x in Xi_vals: + ordered += aitchison_aitken(h, Xi, x, num_levels=num_levels) * \ + aitchison_aitken(h, Xj, x, num_levels=num_levels) + + return ordered + + +def gaussian_cdf(h, Xi, x): + return 0.5 * h * (1 + erf((x - Xi) / (h * np.sqrt(2)))) + + +def aitchison_aitken_cdf(h, Xi, x_u): + x_u = int(x_u) + Xi_vals = np.unique(Xi) + ordered = np.zeros(Xi.size) + num_levels = Xi_vals.size + for x in Xi_vals: + if x <= x_u: #FIXME: why a comparison for unordered variables? + ordered += aitchison_aitken(h, Xi, x, num_levels=num_levels) + + return ordered + + +def wang_ryzin_cdf(h, Xi, x_u): + ordered = np.zeros(Xi.size) + for x in np.unique(Xi): + if x <= x_u: + ordered += wang_ryzin(h, Xi, x) + + return ordered + + +def d_gaussian(h, Xi, x): + # The derivative of the Gaussian Kernel + return 2 * (Xi - x) * gaussian(h, Xi, x) / h**2 + + +def aitchison_aitken_reg(h, Xi, x): + """ + A version for the Aitchison-Aitken kernel for nonparametric regression. + + Suggested by Li and Racine. + """ + kernel_value = np.ones(Xi.size) + ix = Xi != x + inDom = ix * h + kernel_value[ix] = inDom[ix] + return kernel_value + + +def wang_ryzin_reg(h, Xi, x): + """ + A version for the Wang-Ryzin kernel for nonparametric regression. + + Suggested by Li and Racine in [1] ch.4 + """ + return h ** abs(Xi - x) diff --git a/statsmodels/nonparametric/linbin.pyx b/statsmodels/nonparametric/linbin.pyx new file mode 100644 index 0000000..3f21366 --- /dev/null +++ b/statsmodels/nonparametric/linbin.pyx @@ -0,0 +1,38 @@ +#cython profile=True +""" +cython -a fast_linbin.pyx +gcc -shared -pthread -fPIC -fwrapv -O2 -Wall -fno-strict-aliasing -I/usr/include/python2.7 -I/usr/local/lib/python2.7/dist-packages/numpy/core/include/ -o fast_linbin.so fast_linbin.c +""" + +cimport cython +cimport numpy as np +import numpy as np + +ctypedef np.float64_t DOUBLE +ctypedef np.int_t INT + +@cython.boundscheck(False) +@cython.wraparound(False) +@cython.cdivision(True) +def fast_linbin(np.ndarray[DOUBLE] X, double a, double b, int M, int trunc=1): + """ + Linear Binning as described in Fan and Marron (1994) + """ + cdef: + Py_ssize_t i, li_i + int nobs = X.shape[0] + double delta = (b - a)/(M - 1) + np.ndarray[DOUBLE] gcnts = np.zeros(M, np.float) + np.ndarray[DOUBLE] lxi = (X - a)/delta + np.ndarray[INT] li = lxi.astype(int) + np.ndarray[DOUBLE] rem = lxi - li + + + for i in range(nobs): + li_i = li[i] + if li_i > 1 and li_i < M: + gcnts[li_i] = gcnts[li_i] + 1 - rem[i] + gcnts[li_i+1] = gcnts[li_i+1] + rem[i] + if li_i > M and trunc == 0: + gcnts[M] = gcnts[M] + 1 + return gcnts diff --git a/statsmodels/nonparametric/smoothers_lowess.py b/statsmodels/nonparametric/smoothers_lowess.py new file mode 100644 index 0000000..106a9ad --- /dev/null +++ b/statsmodels/nonparametric/smoothers_lowess.py @@ -0,0 +1,188 @@ +# -*- coding: utf-8 -*- +"""Lowess - wrapper for cythonized extension + +Author : Chris Jordan-Squire +Author : Carl Vogel +Author : Josef Perktold + +""" + +import numpy as np +from ._smoothers_lowess import lowess as _lowess + +def lowess(endog, exog, frac=2.0/3.0, it=3, delta=0.0, is_sorted=False, + missing='drop', return_sorted=True): + '''LOWESS (Locally Weighted Scatterplot Smoothing) + + A lowess function that outs smoothed estimates of endog + at the given exog values from points (exog, endog) + + Parameters + ---------- + endog: 1-D numpy array + The y-values of the observed points + exog: 1-D numpy array + The x-values of the observed points + frac: float + Between 0 and 1. The fraction of the data used + when estimating each y-value. + it: int + The number of residual-based reweightings + to perform. + delta: float + Distance within which to use linear-interpolation + instead of weighted regression. + is_sorted : bool + If False (default), then the data will be sorted by exog before + calculating lowess. If True, then it is assumed that the data is + already sorted by exog. + missing : str + Available options are 'none', 'drop', and 'raise'. If 'none', no nan + checking is done. If 'drop', any observations with nans are dropped. + If 'raise', an error is raised. Default is 'drop'. + return_sorted : bool + If True (default), then the returned array is sorted by exog and has + missing (nan or infinite) observations removed. + If False, then the returned array is in the same length and the same + sequence of observations as the input array. + + Returns + ------- + out: ndarray, float + The returned array is two-dimensional if return_sorted is True, and + one dimensional if return_sorted is False. + If return_sorted is True, then a numpy array with two columns. The + first column contains the sorted x (exog) values and the second column + the associated estimated y (endog) values. + If return_sorted is False, then only the fitted values are returned, + and the observations will be in the same order as the input arrays. + + Notes + ----- + This lowess function implements the algorithm given in the + reference below using local linear estimates. + + Suppose the input data has N points. The algorithm works by + estimating the `smooth` y_i by taking the frac*N closest points + to (x_i,y_i) based on their x values and estimating y_i + using a weighted linear regression. The weight for (x_j,y_j) + is tricube function applied to abs(x_i-x_j). + + If it > 1, then further weighted local linear regressions + are performed, where the weights are the same as above + times the _lowess_bisquare function of the residuals. Each iteration + takes approximately the same amount of time as the original fit, + so these iterations are expensive. They are most useful when + the noise has extremely heavy tails, such as Cauchy noise. + Noise with less heavy-tails, such as t-distributions with df>2, + are less problematic. The weights downgrade the influence of + points with large residuals. In the extreme case, points whose + residuals are larger than 6 times the median absolute residual + are given weight 0. + + `delta` can be used to save computations. For each `x_i`, regressions + are skipped for points closer than `delta`. The next regression is + fit for the farthest point within delta of `x_i` and all points in + between are estimated by linearly interpolating between the two + regression fits. + + Judicious choice of delta can cut computation time considerably + for large data (N > 5000). A good choice is ``delta = 0.01 * range(exog)``. + + Some experimentation is likely required to find a good + choice of `frac` and `iter` for a particular dataset. + + References + ---------- + Cleveland, W.S. (1979) "Robust Locally Weighted Regression + and Smoothing Scatterplots". Journal of the American Statistical + Association 74 (368): 829-836. + + Examples + -------- + The below allows a comparison between how different the fits from + lowess for different values of frac can be. + + >>> import numpy as np + >>> import statsmodels.api as sm + >>> lowess = sm.nonparametric.lowess + >>> x = np.random.uniform(low = -2*np.pi, high = 2*np.pi, size=500) + >>> y = np.sin(x) + np.random.normal(size=len(x)) + >>> z = lowess(y, x) + >>> w = lowess(y, x, frac=1./3) + + This gives a similar comparison for when it is 0 vs not. + + >>> import numpy as np + >>> import scipy.stats as stats + >>> import statsmodels.api as sm + >>> lowess = sm.nonparametric.lowess + >>> x = np.random.uniform(low = -2*np.pi, high = 2*np.pi, size=500) + >>> y = np.sin(x) + stats.cauchy.rvs(size=len(x)) + >>> z = lowess(y, x, frac= 1./3, it=0) + >>> w = lowess(y, x, frac=1./3) + + ''' + + endog = np.asarray(endog, float) + exog = np.asarray(exog, float) + + # Inputs should be vectors (1-D arrays) of the + # same length. + if exog.ndim != 1: + raise ValueError('exog must be a vector') + if endog.ndim != 1: + raise ValueError('endog must be a vector') + if endog.shape[0] != exog.shape[0] : + raise ValueError('exog and endog must have same length') + + if missing in ['drop', 'raise']: + # Cut out missing values + mask_valid = (np.isfinite(exog) & np.isfinite(endog)) + all_valid = np.all(mask_valid) + if all_valid: + y = endog + x = exog + else: + if missing == 'drop': + x = exog[mask_valid] + y = endog[mask_valid] + else: + raise ValueError('nan or inf found in data') + elif missing == 'none': + y = endog + x = exog + all_valid = True # we assume it's true if missing='none' + else: + raise ValueError("missing can only be 'none', 'drop' or 'raise'") + + if not is_sorted: + # Sort both inputs according to the ascending order of x values + sort_index = np.argsort(x) + x = np.array(x[sort_index]) + y = np.array(y[sort_index]) + + res = _lowess(y, x, frac=frac, it=it, delta=delta) + _, yfitted = res.T + + if return_sorted: + return res + else: + # rebuild yfitted with original indices + # a bit messy: y might have been selected twice + if not is_sorted: + yfitted_ = np.empty_like(y) + yfitted_.fill(np.nan) + yfitted_[sort_index] = yfitted + yfitted = yfitted_ + else: + yfitted = yfitted + + if not all_valid: + yfitted_ = np.empty_like(endog) + yfitted_.fill(np.nan) + yfitted_[mask_valid] = yfitted + yfitted = yfitted_ + + # we don't need to return exog anymore + return yfitted diff --git a/statsmodels/nonparametric/smoothers_lowess_old.py b/statsmodels/nonparametric/smoothers_lowess_old.py new file mode 100644 index 0000000..31c0ca6 --- /dev/null +++ b/statsmodels/nonparametric/smoothers_lowess_old.py @@ -0,0 +1,361 @@ +""" +Univariate lowess function, like in R. + +References +---------- +Hastie, Tibshirani, Friedman. (2009) The Elements of Statistical Learning: Data Mining, Inference, and Prediction, Second Edition: Chapter 6. + +Cleveland, W.S. (1979) "Robust Locally Weighted Regression and Smoothing Scatterplots". Journal of the American Statistical Association 74 (368): 829-836. +""" +from statsmodels.compat.python import range +import numpy as np +from scipy.linalg import lstsq + + +def lowess(endog, exog, frac=2./3, it=3): + """ + LOWESS (Locally Weighted Scatterplot Smoothing) + + A lowess function that outs smoothed estimates of endog + at the given exog values from points (exog, endog) + + Parameters + ---------- + endog: 1-D numpy array + The y-values of the observed points + exog: 1-D numpy array + The x-values of the observed points + frac: float + Between 0 and 1. The fraction of the data used + when estimating each y-value. + it: int + The number of residual-based reweightings + to perform. + + Returns + ------- + out: numpy array + A numpy array with two columns. The first column + is the sorted x values and the second column the + associated estimated y-values. + + Notes + ----- + This lowess function implements the algorithm given in the + reference below using local linear estimates. + + Suppose the input data has N points. The algorithm works by + estimating the true ``y_i`` by taking the frac*N closest points + to ``(x_i,y_i)`` based on their x values and estimating ``y_i`` + using a weighted linear regression. The weight for ``(x_j,y_j)`` + is `_lowess_tricube` function applied to ``|x_i-x_j|``. + + If ``iter > 0``, then further weighted local linear regressions + are performed, where the weights are the same as above + times the `_lowess_bisquare` function of the residuals. Each iteration + takes approximately the same amount of time as the original fit, + so these iterations are expensive. They are most useful when + the noise has extremely heavy tails, such as Cauchy noise. + Noise with less heavy-tails, such as t-distributions with ``df > 2``, + are less problematic. The weights downgrade the influence of + points with large residuals. In the extreme case, points whose + residuals are larger than 6 times the median absolute residual + are given weight 0. + + Some experimentation is likely required to find a good + choice of frac and iter for a particular dataset. + + References + ---------- + Cleveland, W.S. (1979) "Robust Locally Weighted Regression + and Smoothing Scatterplots". Journal of the American Statistical + Association 74 (368): 829-836. + + Examples + -------- + The below allows a comparison between how different the fits from + `lowess` for different values of frac can be. + + >>> import numpy as np + >>> import statsmodels.api as sm + >>> lowess = sm.nonparametric.lowess + >>> x = np.random.uniform(low=-2*np.pi, high=2*np.pi, size=500) + >>> y = np.sin(x) + np.random.normal(size=len(x)) + >>> z = lowess(y, x) + >>> w = lowess(y, x, frac=1./3) + + This gives a similar comparison for when it is 0 vs not. + + >>> import scipy.stats as stats + >>> x = np.random.uniform(low=-2*np.pi, high=2*np.pi, size=500) + >>> y = np.sin(x) + stats.cauchy.rvs(size=len(x)) + >>> z = lowess(y, x, frac= 1./3, it=0) + >>> w = lowess(y, x, frac=1./3) + + """ + x = exog + + if exog.ndim != 1: + raise ValueError('exog must be a vector') + if endog.ndim != 1: + raise ValueError('endog must be a vector') + if endog.shape[0] != x.shape[0] : + raise ValueError('exog and endog must have same length') + + n = exog.shape[0] + fitted = np.zeros(n) + + k = int(frac * n) + + index_array = np.argsort(exog) + x_copy = np.array(exog[index_array]) #, dtype ='float32') + y_copy = endog[index_array] + + fitted, weights = _lowess_initial_fit(x_copy, y_copy, k, n) + + for i in range(it): + _lowess_robustify_fit(x_copy, y_copy, fitted, + weights, k, n) + + out = np.array([x_copy, fitted]).T + out.shape = (n,2) + + return out + + +def _lowess_initial_fit(x_copy, y_copy, k, n): + """ + The initial weighted local linear regression for lowess. + + Parameters + ---------- + x_copy : 1-d ndarray + The x-values/exogenous part of the data being smoothed + y_copy : 1-d ndarray + The y-values/ endogenous part of the data being smoothed + k : int + The number of data points which affect the linear fit for + each estimated point + n : int + The total number of points + + Returns + ------- + fitted : 1-d ndarray + The fitted y-values + weights : 2-d ndarray + An n by k array. The contribution to the weights in the + local linear fit coming from the distances between the + x-values + + """ + weights = np.zeros((n,k), dtype = x_copy.dtype) + nn_indices = [0,k] + + X = np.ones((k,2)) + fitted = np.zeros(n) + + for i in range(n): + #note: all _lowess functions are inplace, no return + left_width = x_copy[i] - x_copy[nn_indices[0]] + right_width = x_copy[nn_indices[1]-1] - x_copy[i] + width = max(left_width, right_width) + _lowess_wt_standardize(weights[i,:], + x_copy[nn_indices[0]:nn_indices[1]], + x_copy[i], width) + _lowess_tricube(weights[i,:]) + weights[i,:] = np.sqrt(weights[i,:]) + + X[:,1] = x_copy[nn_indices[0]:nn_indices[1]] + y_i = weights[i,:] * y_copy[nn_indices[0]:nn_indices[1]] + + beta = lstsq(weights[i,:].reshape(k,1) * X, y_i)[0] + fitted[i] = beta[0] + beta[1]*x_copy[i] + + _lowess_update_nn(x_copy, nn_indices, i+1) + + + return fitted, weights + + +def _lowess_wt_standardize(weights, new_entries, x_copy_i, width): + """ + The initial phase of creating the weights. + Subtract the current x_i and divide by the width. + + Parameters + ---------- + weights : ndarray + The memory where (new_entries - x_copy_i)/width will be placed + new_entries : ndarray + The x-values of the k closest points to x[i] + x_copy_i : float + x[i], the i'th point in the (sorted) x values + width : float + The maximum distance between x[i] and any point in new_entries + + Returns + ------- + Nothing. The modifications are made to weight in place. + + """ + weights[:] = new_entries + weights -= x_copy_i + weights /= width + + +def _lowess_robustify_fit(x_copy, y_copy, fitted, weights, k, n): + """ + Additional weighted local linear regressions, performed if + iter>0. They take into account the sizes of the residuals, + to eliminate the effect of extreme outliers. + + Parameters + ---------- + x_copy : 1-d ndarray + The x-values/exogenous part of the data being smoothed + y_copy : 1-d ndarray + The y-values/ endogenous part of the data being smoothed + fitted : 1-d ndarray + The fitted y-values from the previous iteration + weights : 2-d ndarray + An n by k array. The contribution to the weights in the + local linear fit coming from the distances between the + x-values + k : int + The number of data points which affect the linear fit for + each estimated point + n : int + The total number of points + + Returns + ------- + Nothing. The fitted values are modified in place. + + """ + nn_indices = [0,k] + X = np.ones((k,2)) + + residual_weights = np.copy(y_copy) + residual_weights.shape = (n,) + residual_weights -= fitted + residual_weights = np.absolute(residual_weights)#, out=residual_weights) + s = np.median(residual_weights) + residual_weights /= (6*s) + too_big = residual_weights>=1 + _lowess_bisquare(residual_weights) + residual_weights[too_big] = 0 + + + for i in range(n): + total_weights = weights[i,:] * np.sqrt(residual_weights[nn_indices[0]: + nn_indices[1]]) + + X[:,1] = x_copy[nn_indices[0]:nn_indices[1]] + y_i = total_weights * y_copy[nn_indices[0]:nn_indices[1]] + total_weights.shape = (k,1) + + beta = lstsq(total_weights * X, y_i)[0] + + fitted[i] = beta[0] + beta[1] * x_copy[i] + + _lowess_update_nn(x_copy, nn_indices, i+1) + + +def _lowess_update_nn(x, cur_nn,i): + """ + Update the endpoints of the nearest neighbors to + the ith point. + + Parameters + ---------- + x : iterable + The sorted points of x-values + cur_nn : list of length 2 + The two current indices between which are the + k closest points to x[i]. (The actual value of + k is irrelevant for the algorithm. + i : int + The index of the current value in x for which + the k closest points are desired. + + Returns + ------- + Nothing. It modifies cur_nn in place. + + """ + while True: + if cur_nn[1]> data (Italy) + + self.Italy_gdp = \ + [8.556, 12.262, 9.587, 8.119, 5.537, 6.796, 8.638, + 6.483, 6.212, 5.111, 6.001, 7.027, 4.616, 3.922, + 4.688, 3.957, 3.159, 3.763, 3.829, 5.242, 6.275, + 8.518, 11.542, 9.348, 8.02, 5.527, 6.865, 8.666, + 6.672, 6.289, 5.286, 6.271, 7.94, 4.72, 4.357, + 4.672, 3.883, 3.065, 3.489, 3.635, 5.443, 6.302, + 9.054, 12.485, 9.896, 8.33, 6.161, 7.055, 8.717, + 6.95] + + self.Italy_year = \ + [1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, + 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1952, + 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, + 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1953, 1953, + 1953, 1953, 1953, 1953, 1953, 1953] + + # OECD panel data from NP R>> data(oecdpanel) + self.growth = \ + [-0.0017584, 0.00740688, 0.03424461, 0.03848719, 0.02932506, + 0.03769199, 0.0466038, 0.00199456, 0.03679607, 0.01917304, + -0.00221, 0.00787269, 0.03441118, -0.0109228, 0.02043064, + -0.0307962, 0.02008947, 0.00580313, 0.00344502, 0.04706358, + 0.03585851, 0.01464953, 0.04525762, 0.04109222, -0.0087903, + 0.04087915, 0.04551403, 0.036916, 0.00369293, 0.0718669, + 0.02577732, -0.0130759, -0.01656641, 0.00676429, 0.08833017, + 0.05092105, 0.02005877, 0.00183858, 0.03903173, 0.05832116, + 0.0494571, 0.02078484, 0.09213897, 0.0070534, 0.08677202, + 0.06830603, -0.00041, 0.0002856, 0.03421225, -0.0036825] + + self.oecd = \ + [0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0] + + self.weights = np.random.random(nobs) + + +class TestKDEUnivariate(KDETestBase): + + def test_pdf_non_fft(self): + + kde = nparam.KDEUnivariate(self.noise) + kde.fit(fft=False, bw='scott') + + + grid = kde.support + testx = [grid[10*i] for i in range(6)] + + # Test against values from R 'ks' package + kde_expected = [0.00016808277984236013, + 0.030759614592368954, + 0.14123404934759243, + 0.28807147408162409, + 0.25594519303876273, + 0.056593973915651047] + + kde_vals0 = kde.density[10 * np.arange(6)] + kde_vals = kde.evaluate(testx) + + npt.assert_allclose(kde_vals, kde_expected, + atol=1e-6) + npt.assert_allclose(kde_vals0, kde_expected, + atol=1e-6) + + + def test_weighted_pdf_non_fft(self): + + kde = nparam.KDEUnivariate(self.noise) + kde.fit(weights=self.weights, fft=False, bw='scott') + + grid = kde.support + testx = [grid[10*i] for i in range(6)] + + # Test against values from R 'ks' package + kde_expected = [9.1998858033950757e-05, + 0.018761981151370496, + 0.14425925509365087, + 0.30307631742267443, + 0.2405445849994125, + 0.06433170684797665] + + kde_vals0 = kde.density[10 * np.arange(6)] + kde_vals = kde.evaluate(testx) + + npt.assert_allclose(kde_vals, kde_expected, + atol=1e-6) + npt.assert_allclose(kde_vals0, kde_expected, + atol=1e-6) + + + +class TestKDEMultivariate(KDETestBase): + @dec.slow + def test_pdf_mixeddata_CV_LS(self): + dens_u = nparam.KDEMultivariate(data=[self.c1, self.o, self.o2], + var_type='coo', bw='cv_ls') + npt.assert_allclose(dens_u.bw, [0.70949447, 0.08736727, 0.09220476], + atol=1e-6) + + # Matches R to 3 decimals; results seem more stable than with R. + # Can be checked with following code: + ## import rpy2.robjects as robjects + ## from rpy2.robjects.packages import importr + ## NP = importr('np') + ## r = robjects.r + ## D = {"S1": robjects.FloatVector(c1), "S2":robjects.FloatVector(c2), + ## "S3":robjects.FloatVector(c3), "S4":robjects.FactorVector(o), + ## "S5":robjects.FactorVector(o2)} + ## df = robjects.DataFrame(D) + ## formula = r('~S1+ordered(S4)+ordered(S5)') + ## r_bw = NP.npudensbw(formula, data=df, bwmethod='cv.ls') + + def test_pdf_mixeddata_LS_vs_ML(self): + dens_ls = nparam.KDEMultivariate(data=[self.c1, self.o, self.o2], + var_type='coo', bw='cv_ls') + dens_ml = nparam.KDEMultivariate(data=[self.c1, self.o, self.o2], + var_type='coo', bw='cv_ml') + npt.assert_allclose(dens_ls.bw, dens_ml.bw, atol=0, rtol=0.5) + + def test_pdf_mixeddata_CV_ML(self): + # Test ML cross-validation + dens_ml = nparam.KDEMultivariate(data=[self.c1, self.o, self.c2], + var_type='coc', bw='cv_ml') + R_bw = [1.021563, 2.806409e-14, 0.5142077] + npt.assert_allclose(dens_ml.bw, R_bw, atol=0.1, rtol=0.1) + + @dec.slow + def test_pdf_continuous(self): + # Test for only continuous data + dens = nparam.KDEMultivariate(data=[self.growth, self.Italy_gdp], + var_type='cc', bw='cv_ls') + # take the first data points from the training set + sm_result = np.squeeze(dens.pdf()[0:5]) + R_result = [1.6202284, 0.7914245, 1.6084174, 2.4987204, 1.3705258] + + ## CODE TO REPRODUCE THE RESULTS IN R + ## library(np) + ## data(oecdpanel) + ## data (Italy) + ## bw <-npudensbw(formula = ~oecdpanel$growth[1:50] + Italy$gdp[1:50], + ## bwmethod ='cv.ls') + ## fhat <- fitted(npudens(bws=bw)) + ## fhat[1:5] + npt.assert_allclose(sm_result, R_result, atol=1e-3) + + def test_pdf_ordered(self): + # Test for only ordered data + dens = nparam.KDEMultivariate(data=[self.oecd], var_type='o', bw='cv_ls') + sm_result = np.squeeze(dens.pdf()[0:5]) + R_result = [0.7236395, 0.7236395, 0.2763605, 0.2763605, 0.7236395] + # lower tol here. only 2nd decimal + npt.assert_allclose(sm_result, R_result, atol=1e-1) + + @dec.slow + def test_unordered_CV_LS(self): + dens = nparam.KDEMultivariate(data=[self.growth, self.oecd], + var_type='cu', bw='cv_ls') + R_result = [0.0052051, 0.05835941] + npt.assert_allclose(dens.bw, R_result, atol=1e-2) + + def test_continuous_cdf(self, data_predict=None): + dens = nparam.KDEMultivariate(data=[self.Italy_gdp, self.growth], + var_type='cc', bw='cv_ml') + sm_result = dens.cdf()[0:5] + R_result = [0.192180770, 0.299505196, 0.557303666, + 0.513387712, 0.210985350] + npt.assert_allclose(sm_result, R_result, atol=1e-3) + + def test_mixeddata_cdf(self, data_predict=None): + dens = nparam.KDEMultivariate(data=[self.Italy_gdp, self.oecd], + var_type='cu', bw='cv_ml') + sm_result = dens.cdf()[0:5] + R_result = [0.54700010, 0.65907039, 0.89676865, 0.74132941, 0.25291361] + npt.assert_allclose(sm_result, R_result, atol=1e-3) + + @dec.slow + def test_continuous_cvls_efficient(self): + nobs = 400 + np.random.seed(12345) + C1 = np.random.normal(size=(nobs, )) + C2 = np.random.normal(2, 1, size=(nobs, )) + Y = 0.3 +1.2 * C1 - 0.9 * C2 + dens_efficient = nparam.KDEMultivariate(data=[Y, C1], var_type='cc', + bw='cv_ls', + defaults=nparam.EstimatorSettings(efficient=True, n_sub=100)) + #dens = nparam.KDEMultivariate(data=[Y, C1], var_type='cc', bw='cv_ls', + # defaults=nparam.EstimatorSettings(efficient=False)) + #bw = dens.bw + bw = np.array([0.3404, 0.1666]) + npt.assert_allclose(bw, dens_efficient.bw, atol=0.1, rtol=0.2) + + @dec.slow + def test_continuous_cvml_efficient(self): + nobs = 400 + np.random.seed(12345) + C1 = np.random.normal(size=(nobs, )) + C2 = np.random.normal(2, 1, size=(nobs, )) + Y = 0.3 +1.2 * C1 - 0.9 * C2 + + dens_efficient = nparam.KDEMultivariate(data=[Y, C1], var_type='cc', + bw='cv_ml', defaults=nparam.EstimatorSettings(efficient=True, + n_sub=100)) + #dens = nparam.KDEMultivariate(data=[Y, C1], var_type='cc', bw='cv_ml', + # defaults=nparam.EstimatorSettings(efficient=False)) + #bw = dens.bw + bw = np.array([0.4471, 0.2861]) + npt.assert_allclose(bw, dens_efficient.bw, atol=0.1, rtol = 0.2) + + @dec.slow + def test_efficient_notrandom(self): + nobs = 400 + np.random.seed(12345) + C1 = np.random.normal(size=(nobs, )) + C2 = np.random.normal(2, 1, size=(nobs, )) + Y = 0.3 +1.2 * C1 - 0.9 * C2 + + dens_efficient = nparam.KDEMultivariate(data=[Y, C1], var_type='cc', + bw='cv_ml', defaults=nparam.EstimatorSettings(efficient=True, + randomize=False, + n_sub=100)) + dens = nparam.KDEMultivariate(data=[Y, C1], var_type='cc', bw='cv_ml') + npt.assert_allclose(dens.bw, dens_efficient.bw, atol=0.1, rtol = 0.2) + + def test_efficient_user_specified_bw(self): + nobs = 400 + np.random.seed(12345) + C1 = np.random.normal(size=(nobs, )) + C2 = np.random.normal(2, 1, size=(nobs, )) + bw_user=[0.23, 434697.22] + + dens = nparam.KDEMultivariate(data=[C1, C2], var_type='cc', + bw=bw_user, defaults=nparam.EstimatorSettings(efficient=True, + randomize=False, + n_sub=100)) + npt.assert_equal(dens.bw, bw_user) + + +class TestKDEMultivariateConditional(KDETestBase): + @dec.slow + def test_mixeddata_CV_LS(self): + dens_ls = nparam.KDEMultivariateConditional(endog=[self.Italy_gdp], + exog=[self.Italy_year], + dep_type='c', + indep_type='o', bw='cv_ls') + # R result: [1.6448, 0.2317373] + npt.assert_allclose(dens_ls.bw, [1.01203728, 0.31905144], atol=1e-5) + + def test_continuous_CV_ML(self): + dens_ml = nparam.KDEMultivariateConditional(endog=[self.Italy_gdp], + exog=[self.growth], + dep_type='c', + indep_type='c', bw='cv_ml') + # Results from R + npt.assert_allclose(dens_ml.bw, [0.5341164, 0.04510836], atol=1e-3) + + @dec.slow + def test_unordered_CV_LS(self): + dens_ls = nparam.KDEMultivariateConditional(endog=[self.oecd], + exog=[self.growth], + dep_type='u', + indep_type='c', bw='cv_ls') + # TODO: assert missing + + def test_pdf_continuous(self): + # Hardcode here the bw that will be calculated is we had used + # ``bw='cv_ml'``. That calculation is slow, and tested in other tests. + bw_cv_ml = np.array([0.010043, 12095254.7]) # TODO: odd numbers (?!) + dens = nparam.KDEMultivariateConditional(endog=[self.growth], + exog=[self.Italy_gdp], + dep_type='c', indep_type='c', + bw=bw_cv_ml) + sm_result = np.squeeze(dens.pdf()[0:5]) + R_result = [11.97964, 12.73290, 13.23037, 13.46438, 12.22779] + npt.assert_allclose(sm_result, R_result, atol=1e-3) + + @dec.slow + def test_pdf_mixeddata(self): + dens = nparam.KDEMultivariateConditional(endog=[self.Italy_gdp], + exog=[self.Italy_year], + dep_type='c', indep_type='o', + bw='cv_ls') + sm_result = np.squeeze(dens.pdf()[0:5]) + #R_result = [0.08469226, 0.01737731, 0.05679909, 0.09744726, 0.15086674] + expected = [0.08592089, 0.0193275, 0.05310327, 0.09642667, 0.171954] + + ## CODE TO REPRODUCE IN R + ## library(np) + ## data (Italy) + ## bw <- npcdensbw(formula = + ## Italy$gdp[1:50]~ordered(Italy$year[1:50]),bwmethod='cv.ls') + ## fhat <- fitted(npcdens(bws=bw)) + ## fhat[1:5] + npt.assert_allclose(sm_result, expected, atol=0, rtol=1e-5) + + def test_continuous_normal_ref(self): + # test for normal reference rule of thumb with continuous data + dens_nm = nparam.KDEMultivariateConditional(endog=[self.Italy_gdp], + exog=[self.growth], + dep_type='c', + indep_type='c', + bw='normal_reference') + sm_result = dens_nm.bw + R_result = [1.283532, 0.01535401] + # TODO: here we need a smaller tolerance.check! + npt.assert_allclose(sm_result, R_result, atol=1e-1) + + def test_continuous_cdf(self): + dens_nm = nparam.KDEMultivariateConditional(endog=[self.Italy_gdp], + exog=[self.growth], + dep_type='c', + indep_type='c', + bw='normal_reference') + sm_result = dens_nm.cdf()[0:5] + R_result = [0.81304920, 0.95046942, 0.86878727, 0.71961748, 0.38685423] + npt.assert_allclose(sm_result, R_result, atol=1e-3) + + @dec.slow + def test_mixeddata_cdf(self): + dens = nparam.KDEMultivariateConditional(endog=[self.Italy_gdp], + exog=[self.Italy_year], + dep_type='c', + indep_type='o', + bw='cv_ls') + sm_result = dens.cdf()[0:5] + #R_result = [0.8118257, 0.9724863, 0.8843773, 0.7720359, 0.4361867] + expected = [0.83378885, 0.97684477, 0.90655143, 0.79393161, 0.43629083] + npt.assert_allclose(sm_result, expected, atol=0, rtol=1e-5) + + @dec.slow + def test_continuous_cvml_efficient(self): + nobs = 500 + np.random.seed(12345) + O = np.random.binomial(2, 0.5, size=(nobs, )) + C1 = np.random.normal(size=(nobs, )) + noise = np.random.normal(size=(nobs, )) + b0 = 3 + b1 = 1.2 + b2 = 3.7 # regression coefficients + Y = b0+ b1 * C1 + b2*O + noise + + dens_efficient = nparam.KDEMultivariateConditional(endog=[Y], + exog=[C1], dep_type='c', indep_type='c', bw='cv_ml', + defaults=nparam.EstimatorSettings(efficient=True, n_sub=50)) + + #dens = nparam.KDEMultivariateConditional(endog=[Y], exog=[C1], + # dep_type='c', indep_type='c', bw='cv_ml') + #bw = dens.bw + bw_expected = np.array([0.73387, 0.43715]) + npt.assert_allclose(dens_efficient.bw, bw_expected, atol=0, rtol=1e-3) + + def test_efficient_user_specified_bw(self): + nobs = 400 + np.random.seed(12345) + C1 = np.random.normal(size=(nobs, )) + C2 = np.random.normal(2, 1, size=(nobs, )) + bw_user=[0.23, 434697.22] + + dens = nparam.KDEMultivariate(data=[C1, C2], var_type='cc', + bw=bw_user, defaults=nparam.EstimatorSettings(efficient=True, + randomize=False, + n_sub=100)) + npt.assert_equal(dens.bw, bw_user) + +if __name__ == "__main__": + import nose + nose.runmodule(argv=[__file__,'-vvs','-x','--pdb'], + exit=False) \ No newline at end of file diff --git a/statsmodels/nonparametric/tests/test_kernel_regression.py b/statsmodels/nonparametric/tests/test_kernel_regression.py new file mode 100644 index 0000000..020d036 --- /dev/null +++ b/statsmodels/nonparametric/tests/test_kernel_regression.py @@ -0,0 +1,337 @@ +from unittest import TestCase + +import numpy as np +import numpy.testing as npt +import numpy.testing.decorators as dec + +import statsmodels.api as sm +nparam = sm.nonparametric + + +class KernelRegressionTestBase(TestCase): + @classmethod + def setup_class(cls): + nobs = 60 + np.random.seed(123456) + cls.o = np.random.binomial(2, 0.7, size=(nobs, 1)) + cls.o2 = np.random.binomial(3, 0.7, size=(nobs, 1)) + cls.c1 = np.random.normal(size=(nobs, 1)) + cls.c2 = np.random.normal(10, 1, size=(nobs, 1)) + cls.c3 = np.random.normal(10, 2, size=(nobs, 1)) + cls.noise = np.random.normal(size=(nobs, 1)) + b0 = 0.3 + b1 = 1.2 + b2 = 3.7 # regression coefficients + cls.y = b0 + b1 * cls.c1 + b2 * cls.c2 + cls.noise + cls.y2 = b0 + b1 * cls.c1 + b2 * cls.c2 + cls.o + cls.noise + # Italy data from R's np package (the first 50 obs) R>> data (Italy) + + cls.Italy_gdp = \ + [8.556, 12.262, 9.587, 8.119, 5.537, 6.796, 8.638, + 6.483, 6.212, 5.111, 6.001, 7.027, 4.616, 3.922, + 4.688, 3.957, 3.159, 3.763, 3.829, 5.242, 6.275, + 8.518, 11.542, 9.348, 8.02, 5.527, 6.865, 8.666, + 6.672, 6.289, 5.286, 6.271, 7.94, 4.72, 4.357, + 4.672, 3.883, 3.065, 3.489, 3.635, 5.443, 6.302, + 9.054, 12.485, 9.896, 8.33, 6.161, 7.055, 8.717, + 6.95] + + cls.Italy_year = \ + [1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, + 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1952, + 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, + 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1953, 1953, + 1953, 1953, 1953, 1953, 1953, 1953] + + # OECD panel data from NP R>> data(oecdpanel) + cls.growth = \ + [-0.0017584, 0.00740688, 0.03424461, 0.03848719, 0.02932506, + 0.03769199, 0.0466038, 0.00199456, 0.03679607, 0.01917304, + -0.00221, 0.00787269, 0.03441118, -0.0109228, 0.02043064, + -0.0307962, 0.02008947, 0.00580313, 0.00344502, 0.04706358, + 0.03585851, 0.01464953, 0.04525762, 0.04109222, -0.0087903, + 0.04087915, 0.04551403, 0.036916, 0.00369293, 0.0718669, + 0.02577732, -0.0130759, -0.01656641, 0.00676429, 0.08833017, + 0.05092105, 0.02005877, 0.00183858, 0.03903173, 0.05832116, + 0.0494571, 0.02078484, 0.09213897, 0.0070534, 0.08677202, + 0.06830603, -0.00041, 0.0002856, 0.03421225, -0.0036825] + + cls.oecd = \ + [0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0] + + def write2file(self, file_name, data): + """Write some data to a csv file. Only use for debugging!""" + import csv + + data_file = csv.writer(open(file_name, "w")) + data = np.column_stack(data) + nobs = max(np.shape(data)) + K = min(np.shape(data)) + data = np.reshape(data, (nobs,K)) + for i in range(nobs): + data_file.writerow(list(data[i, :])) + + +class TestKernelReg(KernelRegressionTestBase): + def test_ordered_lc_cvls(self): + model = nparam.KernelReg(endog=[self.Italy_gdp], + exog=[self.Italy_year], reg_type='lc', + var_type='o', bw='cv_ls') + sm_bw = model.bw + R_bw = 0.1390096 + + sm_mean, sm_mfx = model.fit() + sm_mean = sm_mean[0:5] + sm_mfx = sm_mfx[0:5] + R_mean = 6.190486 + + sm_R2 = model.r_squared() + R_R2 = 0.1435323 + + ## CODE TO REPRODUCE IN R + ## library(np) + ## data(Italy) + ## attach(Italy) + ## bw <- npregbw(formula=gdp[1:50]~ordered(year[1:50])) + npt.assert_allclose(sm_bw, R_bw, atol=1e-2) + npt.assert_allclose(sm_mean, R_mean, atol=1e-2) + npt.assert_allclose(sm_R2, R_R2, atol=1e-2) + + def test_continuousdata_lc_cvls(self): + model = nparam.KernelReg(endog=[self.y], exog=[self.c1, self.c2], + reg_type='lc', var_type='cc', bw='cv_ls') + # Bandwidth + sm_bw = model.bw + R_bw = [0.6163835, 0.1649656] + # Conditional Mean + sm_mean, sm_mfx = model.fit() + sm_mean = sm_mean[0:5] + sm_mfx = sm_mfx[0:5] + R_mean = [31.49157, 37.29536, 43.72332, 40.58997, 36.80711] + # R-Squared + sm_R2 = model.r_squared() + R_R2 = 0.956381720885 + + npt.assert_allclose(sm_bw, R_bw, atol=1e-2) + npt.assert_allclose(sm_mean, R_mean, atol=1e-2) + npt.assert_allclose(sm_R2, R_R2, atol=1e-2) + + def test_continuousdata_ll_cvls(self): + model = nparam.KernelReg(endog=[self.y], exog=[self.c1, self.c2], + reg_type='ll', var_type='cc', bw='cv_ls') + + sm_bw = model.bw + R_bw = [1.717891, 2.449415] + sm_mean, sm_mfx = model.fit() + sm_mean = sm_mean[0:5] + sm_mfx = sm_mfx[0:5] + R_mean = [31.16003, 37.30323, 44.49870, 40.73704, 36.19083] + + sm_R2 = model.r_squared() + R_R2 = 0.9336019 + + npt.assert_allclose(sm_bw, R_bw, atol=1e-2) + npt.assert_allclose(sm_mean, R_mean, atol=1e-2) + npt.assert_allclose(sm_R2, R_R2, atol=1e-2) + + def test_continuous_mfx_ll_cvls(self, file_name='RegData.csv'): + nobs = 200 + np.random.seed(1234) + C1 = np.random.normal(size=(nobs, )) + C2 = np.random.normal(2, 1, size=(nobs, )) + C3 = np.random.beta(0.5,0.2, size=(nobs,)) + noise = np.random.normal(size=(nobs, )) + b0 = 3 + b1 = 1.2 + b2 = 3.7 # regression coefficients + b3 = 2.3 + Y = b0+ b1 * C1 + b2*C2+ b3 * C3 + noise + bw_cv_ls = np.array([0.96075, 0.5682, 0.29835]) + model = nparam.KernelReg(endog=[Y], exog=[C1, C2, C3], + reg_type='ll', var_type='ccc', bw=bw_cv_ls) + sm_mean, sm_mfx = model.fit() + sm_mean = sm_mean[0:5] + npt.assert_allclose(sm_mfx[0,:], [b1,b2,b3], rtol=2e-1) + + def test_mixed_mfx_ll_cvls(self, file_name='RegData.csv'): + nobs = 200 + np.random.seed(1234) + O = np.random.binomial(2, 0.5, size=(nobs, )) + C1 = np.random.normal(size=(nobs, )) + C2 = np.random.normal(2, 1, size=(nobs, )) + noise = np.random.normal(size=(nobs, )) + b0 = 3 + b1 = 1.2 + b2 = 3.7 # regression coefficients + b3 = 2.3 + Y = b0+ b1 * C1 + b2*C2+ b3 * O + noise + bw_cv_ls = np.array([1.04726, 1.67485, 0.39852]) + model = nparam.KernelReg(endog=[Y], exog=[C1, C2, O], + reg_type='ll', var_type='cco', bw=bw_cv_ls) + sm_mean, sm_mfx = model.fit() + sm_R2 = model.r_squared() # TODO: add expected result + npt.assert_allclose(sm_mfx[0,:], [b1,b2,b3], rtol=2e-1) + + @dec.skipif(True, "Test doesn't make much sense. " + "It would pass with very small bw.") + def test_mfx_nonlinear_ll_cvls(self, file_name='RegData.csv'): + #FIXME + nobs = 200 + np.random.seed(1234) + C1 = np.random.normal(size=(nobs, )) + C2 = np.random.normal(2, 1, size=(nobs, )) + C3 = np.random.beta(0.5,0.2, size=(nobs,)) + noise = np.random.normal(size=(nobs, )) + b0 = 3 + b1 = 1.2 + b3 = 2.3 + Y = b0+ b1 * C1 * C2 + b3 * C3 + noise + model = nparam.KernelReg(endog=[Y], exog=[C1, C2, C3], + reg_type='ll', var_type='ccc', bw='cv_ls') + sm_bw = model.bw + sm_mean, sm_mfx = model.fit() + sm_R2 = model.r_squared() + # Theoretical marginal effects + mfx1 = b1 * C2 + mfx2 = b1 * C1 + #npt.assert_allclose(sm_mfx[:,0], mfx1, rtol=2e-1) + #npt.assert_allclose(sm_mfx[0:10,1], mfx2[0:10], rtol=2e-1) + npt.assert_allclose(sm_mean, Y, rtol = 2e-1) + + @dec.slow + def test_continuous_cvls_efficient(self): + nobs = 500 + np.random.seed(12345) + C1 = np.random.normal(size=(nobs, )) + C2 = np.random.normal(2, 1, size=(nobs, )) + b0 = 3 + b1 = 1.2 + b2 = 3.7 # regression coefficients + Y = b0+ b1 * C1 + b2*C2 + + model_efficient = nparam.KernelReg(endog=[Y], exog=[C1], reg_type='lc', + var_type='c', bw='cv_ls', + defaults=nparam.EstimatorSettings(efficient=True, + n_sub=100)) + + model = nparam.KernelReg(endog=[Y], exog=[C1], reg_type='ll', + var_type='c', bw='cv_ls') + npt.assert_allclose(model.bw, model_efficient.bw, atol=5e-2, rtol=1e-1) + + @dec.slow + def test_censored_ll_cvls(self): + nobs = 200 + np.random.seed(1234) + C1 = np.random.normal(size=(nobs, )) + C2 = np.random.normal(2, 1, size=(nobs, )) + noise = np.random.normal(size=(nobs, )) + Y = 0.3 +1.2 * C1 - 0.9 * C2 + noise + Y[Y>0] = 0 # censor the data + model = nparam.KernelCensoredReg(endog=[Y], exog=[C1, C2], + reg_type='ll', var_type='cc', + bw='cv_ls', censor_val=0) + sm_mean, sm_mfx = model.fit() + npt.assert_allclose(sm_mfx[0,:], [1.2, -0.9], rtol = 2e-1) + + @dec.slow + def test_continuous_lc_aic(self): + nobs = 200 + np.random.seed(1234) + C1 = np.random.normal(size=(nobs, )) + C2 = np.random.normal(2, 1, size=(nobs, )) + noise = np.random.normal(size=(nobs, )) + Y = 0.3 +1.2 * C1 - 0.9 * C2 + noise + #self.write2file('RegData.csv', (Y, C1, C2)) + + #CODE TO PRODUCE BANDWIDTH ESTIMATION IN R + #library(np) + #data <- read.csv('RegData.csv', header=FALSE) + #bw <- npregbw(formula=data$V1 ~ data$V2 + data$V3, + # bwmethod='cv.aic', regtype='lc') + model = nparam.KernelReg(endog=[Y], exog=[C1, C2], + reg_type='lc', var_type='cc', bw='aic') + #R_bw = [0.4017893, 0.4943397] # Bandwidth obtained in R + bw_expected = [0.3987821, 0.50933458] + npt.assert_allclose(model.bw, bw_expected, rtol=1e-3) + + @dec.slow + def test_significance_continuous(self): + nobs = 250 + np.random.seed(12345) + C1 = np.random.normal(size=(nobs, )) + C2 = np.random.normal(2, 1, size=(nobs, )) + C3 = np.random.beta(0.5,0.2, size=(nobs,)) + noise = np.random.normal(size=(nobs, )) + b1 = 1.2 + b2 = 3.7 # regression coefficients + Y = b1 * C1 + b2 * C2 + noise + + # This is the cv_ls bandwidth estimated earlier + bw=[11108137.1087194, 1333821.85150218] + model = nparam.KernelReg(endog=[Y], exog=[C1, C3], + reg_type='ll', var_type='cc', bw=bw) + nboot = 45 # Number of bootstrap samples + sig_var12 = model.sig_test([0,1], nboot=nboot) # H0: b1 = 0 and b2 = 0 + npt.assert_equal(sig_var12 == 'Not Significant', False) + sig_var1 = model.sig_test([0], nboot=nboot) # H0: b1 = 0 + npt.assert_equal(sig_var1 == 'Not Significant', False) + sig_var2 = model.sig_test([1], nboot=nboot) # H0: b2 = 0 + npt.assert_equal(sig_var2 == 'Not Significant', True) + + @dec.slow + def test_significance_discrete(self): + nobs = 200 + np.random.seed(12345) + O = np.random.binomial(2, 0.5, size=(nobs, )) + C2 = np.random.normal(2, 1, size=(nobs, )) + C3 = np.random.beta(0.5,0.2, size=(nobs,)) + noise = np.random.normal(size=(nobs, )) + b1 = 1.2 + b2 = 3.7 # regression coefficients + Y = b1 * O + b2 * C2 + noise + + bw= [3.63473198e+00, 1.21404803e+06] + # This is the cv_ls bandwidth estimated earlier + # The cv_ls bandwidth was estimated earlier to save time + model = nparam.KernelReg(endog=[Y], exog=[O, C3], + reg_type='ll', var_type='oc', bw=bw) + # This was also tested with local constant estimator + nboot = 45 # Number of bootstrap samples + sig_var1 = model.sig_test([0], nboot=nboot) # H0: b1 = 0 + npt.assert_equal(sig_var1 == 'Not Significant', False) + sig_var2 = model.sig_test([1], nboot=nboot) # H0: b2 = 0 + npt.assert_equal(sig_var2 == 'Not Significant', True) + + def test_efficient_user_specificed_bw(self): + + bw_user=[0.23, 434697.22] + model = nparam.KernelReg(endog=[self.y], exog=[self.c1, self.c2], + reg_type='lc', var_type='cc', bw=bw_user, + defaults=nparam.EstimatorSettings(efficient=True)) + # Bandwidth + npt.assert_equal(model.bw, bw_user) + + def test_censored_efficient_user_specificed_bw(self): + nobs = 200 + np.random.seed(1234) + C1 = np.random.normal(size=(nobs, )) + C2 = np.random.normal(2, 1, size=(nobs, )) + noise = np.random.normal(size=(nobs, )) + Y = 0.3 +1.2 * C1 - 0.9 * C2 + noise + Y[Y>0] = 0 # censor the data + + bw_user=[0.23, 434697.22] + model = nparam.KernelCensoredReg(endog=[Y], exog=[C1, C2], + reg_type='ll', var_type='cc', + bw=bw_user, censor_val=0, + defaults=nparam.EstimatorSettings(efficient=True)) + # Bandwidth + npt.assert_equal(model.bw, bw_user) + + +if __name__ == "__main__": + import nose + nose.runmodule(argv=[__file__,'-vvs','-x','--pdb'], + exit=False) diff --git a/statsmodels/nonparametric/tests/test_kernels.py b/statsmodels/nonparametric/tests/test_kernels.py new file mode 100644 index 0000000..f856686 --- /dev/null +++ b/statsmodels/nonparametric/tests/test_kernels.py @@ -0,0 +1,154 @@ +# -*- coding: utf-8 -*- +""" + +Created on Sat Dec 14 17:23:25 2013 + +Author: Josef Perktold +""" +from __future__ import print_function +import os +import numpy as np +from statsmodels.sandbox.nonparametric import kernels + +from numpy.testing import assert_allclose, assert_array_less + +DEBUG = 0 + +curdir = os.path.dirname(os.path.abspath(__file__)) +fname = 'results/results_kernel_regression.csv' +results = np.recfromcsv(os.path.join(curdir, fname)) + +y = results['accident'] +x = np.log(results['service']) +use_mask = ~np.isnan(x) +x = x[use_mask] +y = y[use_mask] +xg = np.linspace(x.min(), x.max(), 40) # grid points default in Stata + +#kern_name = 'gau' +#kern = kernels.Gaussian() +#kern_name = 'epan2' +#kern = kernels.Epanechnikov() +#kern_name = 'rec' +#kern = kernels.Uniform() # ours looks awful +#kern_name = 'tri' +#kern = kernels.Triangular() +#kern_name = 'cos' +#kern = kernels.Cosine() #doesn't match up, nan in Stata results ? +#kern_name = 'bi' +#kern = kernels.Biweight() + +class CheckKernelMixin(object): + + se_rtol = 0.7 + upp_rtol = 0.1 + low_rtol = 0.2 + low_atol = 0.3 + + def test_smoothconf(self): + kern_name = self.kern_name + kern = self.kern + #fittedg = np.array([kernels.Epanechnikov().smoothconf(x, y, xi) for xi in xg]) + fittedg = np.array([kern.smoothconf(x, y, xi) for xi in xg]) + # attach for inspection from outside of test run + self.fittedg = fittedg + + res_fitted = results['s_' + kern_name] + res_se = results['se_' + kern_name] + crit = 1.9599639845400545 # norm.isf(0.05 / 2) + # implied standard deviation from conf_int + se = (fittedg[:, 2] - fittedg[:, 1]) / crit + fitted = fittedg[:, 1] + + # check both rtol & atol + assert_allclose(fitted, res_fitted, rtol=5e-7, atol=1e-20) + assert_allclose(fitted, res_fitted, rtol=0, atol=1e-6) + + # TODO: check we are using a different algorithm for se + # The following are very rough checks + + self.se = se + self.res_se = res_se + se_valid = np.isfinite(res_se) + # if np.any(~se_valid): + # print('nan in stata result', self.__class__.__name__) + assert_allclose(se[se_valid], res_se[se_valid], rtol=self.se_rtol, atol=0.2) + # check that most values are closer + mask = np.abs(se - res_se) > (0.2 + 0.2 * res_se) + if not hasattr(self, 'se_n_diff'): + se_n_diff = 40 * 0.125 + else: + se_n_diff = self.se_n_diff + assert_array_less(mask.sum(), se_n_diff + 1) # at most 5 large diffs + + if DEBUG: + # raises: RuntimeWarning: invalid value encountered in divide + print(fitted / res_fitted - 1) + print(se / res_se - 1) + # Stata only displays ci, doesn't save it + res_upp = res_fitted + crit * res_se + res_low = res_fitted - crit * res_se + self.res_fittedg = np.column_stack((res_low, res_fitted, res_upp)) + if DEBUG: + print(fittedg[:, 2] / res_upp - 1) + print(fittedg[:, 2] - res_upp) + print(fittedg[:, 0] - res_low) + print(np.max(np.abs(fittedg[:, 2] / res_upp - 1))) + assert_allclose(fittedg[se_valid, 2], res_upp[se_valid], + rtol=self.upp_rtol, atol=0.2) + assert_allclose(fittedg[se_valid, 0], res_low[se_valid], + rtol=self.low_rtol, atol=self.low_atol) + + #assert_allclose(fitted, res_fitted, rtol=0, atol=1e-6) + + def t_est_smoothconf_data(self): + kern = self.kern + crit = 1.9599639845400545 # norm.isf(0.05 / 2) + # no reference results saved to csv yet + fitted_x = np.array([kern.smoothconf(x, y, xi) for xi in x]) + if DEBUG: + print(fitted_x[:, 2] - fitted_x[:, 1]) / crit + +class TestEpan(CheckKernelMixin): + kern_name = 'epan2' + kern = kernels.Epanechnikov() + +class TestGau(CheckKernelMixin): + kern_name = 'gau' + kern = kernels.Gaussian() + +class TestUniform(CheckKernelMixin): + kern_name = 'rec' + kern = kernels.Uniform() + se_rtol = 0.8 + se_n_diff = 8 + upp_rtol = 0.4 + low_rtol = 0.2 + low_atol = 0.8 + +class TestTriangular(CheckKernelMixin): + kern_name = 'tri' + kern = kernels.Triangular() + se_n_diff = 10 + upp_rtol = 0.15 + low_rtol = 0.3 + +class T_estCosine(CheckKernelMixin): + # Stata results for Cosine look strange, has nans + kern_name = 'cos' + kern = kernels.Cosine2() + +class TestBiweight(CheckKernelMixin): + kern_name = 'bi' + kern = kernels.Biweight() + se_n_diff = 9 + low_rtol = 0.3 + +if __name__ == '__main__': + tt = TestEpan() + tt = TestGau() + tt = TestBiweight() + tt.test_smoothconf() + diff_rel = tt.fittedg / tt.res_fittedg - 1 + diff_abs = tt.fittedg - tt.res_fittedg + mask = np.abs(tt.fittedg - tt.res_fittedg) > (0.3 + 0.1 * tt.res_fittedg) diff --git a/statsmodels/nonparametric/tests/test_lowess.py b/statsmodels/nonparametric/tests/test_lowess.py new file mode 100644 index 0000000..c45cf94 --- /dev/null +++ b/statsmodels/nonparametric/tests/test_lowess.py @@ -0,0 +1,150 @@ +''' +Lowess testing suite. + +Expected outcomes are generated by R's lowess function given the same +arguments. The R script test_lowess_r_outputs.R can be used to +generate the expected outcomes. + +The delta tests utilize Silverman's motorcycle collision data, +available in R's MASS package. +''' + +import os +import numpy as np +from numpy.testing import (assert_almost_equal, assert_, assert_raises, + assert_equal) +#import statsmodels.api as sm +from statsmodels.nonparametric.smoothers_lowess import lowess + +# Number of decimals to test equality with. +# The default is 7. +curdir = os.path.dirname(os.path.abspath(__file__)) +rpath = os.path.join(curdir, 'results') + + +class TestLowess(object): + + def test_import(self): + #this doesn't work + #from statsmodels.api.nonparametric import lowess as lowess1 + import statsmodels.api as sm + lowess1 = sm.nonparametric.lowess + assert_(lowess is lowess1) + + def test_flat(self): + test_data = { + 'x': np.arange(20), 'y': np.zeros(20), 'out': np.zeros(20)} + expected_lowess = np.array([test_data['x'], test_data['out']]).T + actual_lowess = lowess(test_data['y'], test_data['x']) + assert_almost_equal(expected_lowess, actual_lowess, 7) + + def test_range(self): + test_data = { + 'x': np.arange(20), 'y': np.arange(20), 'out': np.arange(20)} + expected_lowess = np.array([test_data['x'], test_data['out']]).T + actual_lowess = lowess(test_data['y'], test_data['x']) + assert_almost_equal(expected_lowess, actual_lowess, 7) + + def test_all(self): + def generate(name, fname, + x='x', y='y', out='out', kwargs={}, decimal=7): + data = np.genfromtxt( + os.path.join(rpath, fname), delimiter=',', names=True) + assert_almost_equal.description = name + if callable(kwargs): + kwargs = kwargs(data) + result = lowess(data[y], data[x], **kwargs) + expect = np.array([data[x], data[out]]).T + return assert_almost_equal, result, expect, decimal + + yield generate('test_simple', 'test_lowess_simple.csv') + yield generate('test_iter_0', 'test_lowess_iter.csv', out='out_0', + kwargs={'it': 0}) + yield generate('test_iter_0', 'test_lowess_iter.csv', out='out_3', + kwargs={'it': 3}) + yield generate('test_frac_2_3', 'test_lowess_frac.csv', out='out_2_3', + kwargs={'frac': 2. / 3}) + yield generate('test_frac_1_5', 'test_lowess_frac.csv', out='out_1_5', + kwargs={'frac': 1. / 5}) + yield generate('test_delta_0', 'test_lowess_delta.csv', out='out_0', + kwargs={'frac': 0.1}) + yield generate('test_delta_Rdef', 'test_lowess_delta.csv', out='out_Rdef', + kwargs=lambda data: {'frac': .1, + 'delta': .01 * data['x'].ptp()}) + yield generate('test_delta_1', 'test_lowess_delta.csv', out='out_1', + kwargs={'frac': 0.1, 'delta': 1 + 1e-10}, decimal=10) + + def test_options(self): + rfile = os.path.join(rpath, 'test_lowess_simple.csv') + test_data = np.genfromtxt(open(rfile, 'rb'), + delimiter = ',', names = True) + y, x = test_data['y'], test_data['x'] + res1_fitted = test_data['out'] + expected_lowess = np.array([test_data['x'], test_data['out']]).T + + # check skip sorting + actual_lowess1 = lowess(y, x, is_sorted=True) + assert_almost_equal(actual_lowess1, expected_lowess, decimal=13) + + # check skip missing + actual_lowess = lowess(y, x, is_sorted=True, missing='none') + assert_almost_equal(actual_lowess, actual_lowess1, decimal=13) + + # check order/index, returns yfitted only + actual_lowess = lowess(y[::-1], x[::-1], return_sorted=False) + assert_almost_equal(actual_lowess, actual_lowess1[::-1, 1], decimal=13) + + # check returns yfitted only + actual_lowess = lowess(y, x, return_sorted=False, missing='none', + is_sorted=True) + assert_almost_equal(actual_lowess, actual_lowess1[:, 1], decimal=13) + + # check integer input + actual_lowess = lowess(np.round(y).astype(int), x, is_sorted=True) + actual_lowess1 = lowess(np.round(y), x, is_sorted=True) + assert_almost_equal(actual_lowess, actual_lowess1, decimal=13) + assert_(actual_lowess.dtype is np.dtype(float)) + # this will also have duplicate x + actual_lowess = lowess(y, np.round(x).astype(int), is_sorted=True) + actual_lowess1 = lowess(y, np.round(x), is_sorted=True) + assert_almost_equal(actual_lowess, actual_lowess1, decimal=13) + assert_(actual_lowess.dtype is np.dtype(float)) + + # check with nans, this changes the arrays + y[[5, 6]] = np.nan + x[3] = np.nan + mask_valid = np.isfinite(x) & np.isfinite(y) + #actual_lowess1[[3, 5, 6], 1] = np.nan + actual_lowess = lowess(y, x, is_sorted=True) + actual_lowess1 = lowess(y[mask_valid], x[mask_valid], is_sorted=True) + assert_almost_equal(actual_lowess, actual_lowess1, decimal=13) + assert_raises(ValueError, lowess, y, x, missing='raise') + + perm_idx = np.arange(len(x)) + np.random.shuffle(perm_idx) + yperm = y[perm_idx] + xperm = x[perm_idx] + actual_lowess2 = lowess(yperm, xperm, is_sorted=False) + assert_almost_equal(actual_lowess, actual_lowess2, decimal=13) + + actual_lowess3 = lowess(yperm, xperm, is_sorted=False, + return_sorted=False) + mask_valid = np.isfinite(xperm) & np.isfinite(yperm) + assert_equal(np.isnan(actual_lowess3), ~mask_valid) + # get valid sorted smoothed y from actual_lowess3 + sort_idx = np.argsort(xperm) + yhat = actual_lowess3[sort_idx] + yhat = yhat[np.isfinite(yhat)] + assert_almost_equal(yhat, actual_lowess2[:,1], decimal=13) + + +def test_returns_inputs(): + # see 1960 + y = [0] * 10 + [1] * 10 + x = np.arange(20) + result = lowess(y, x, frac=.4) + assert_almost_equal(result, np.column_stack((x, y))) + +if __name__ == '__main__': + import nose + nose.runmodule() diff --git a/statsmodels/regression/__init__.py b/statsmodels/regression/__init__.py new file mode 100644 index 0000000..cf70fbf --- /dev/null +++ b/statsmodels/regression/__init__.py @@ -0,0 +1,4 @@ +from .linear_model import yule_walker + +from statsmodels import NoseWrapper as Tester +test = Tester().test diff --git a/statsmodels/regression/_prediction.py b/statsmodels/regression/_prediction.py new file mode 100644 index 0000000..98bb29d --- /dev/null +++ b/statsmodels/regression/_prediction.py @@ -0,0 +1,177 @@ +# -*- coding: utf-8 -*- +""" +Created on Fri Dec 19 11:29:18 2014 + +Author: Josef Perktold +License: BSD-3 + +""" + +import numpy as np +from scipy import stats + +# this is similar to ContrastResults after t_test, partially copied and adjusted +class PredictionResults(object): + + def __init__(self, predicted_mean, var_pred_mean, var_resid, + df=None, dist=None, row_labels=None): + self.predicted_mean = predicted_mean + self.var_pred_mean = var_pred_mean + self.df = df + self.var_resid = var_resid + self.row_labels = row_labels + + if dist is None or dist == 'norm': + self.dist = stats.norm + self.dist_args = () + elif dist == 't': + self.dist = stats.t + self.dist_args = (self.df,) + else: + self.dist = dist + self.dist_args = () + + @property + def se_obs(self): + return np.sqrt(self.var_pred_mean + self.var_resid) + + @property + def se_mean(self): + return np.sqrt(self.var_pred_mean) + + def conf_int(self, obs=False, alpha=0.05): + """ + Returns the confidence interval of the value, `effect` of the constraint. + + This is currently only available for t and z tests. + + Parameters + ---------- + alpha : float, optional + The significance level for the confidence interval. + ie., The default `alpha` = .05 returns a 95% confidence interval. + + Returns + ------- + ci : ndarray, (k_constraints, 2) + The array has the lower and the upper limit of the confidence + interval in the columns. + + """ + + se = self.se_obs if obs else self.se_mean + + q = self.dist.ppf(1 - alpha / 2., *self.dist_args) + lower = self.predicted_mean - q * se + upper = self.predicted_mean + q * se + return np.column_stack((lower, upper)) + + + def summary_frame(self, what='all', alpha=0.05): + # TODO: finish and cleanup + import pandas as pd + from statsmodels.compat.collections import OrderedDict + ci_obs = self.conf_int(alpha=alpha, obs=True) # need to split + ci_mean = self.conf_int(alpha=alpha, obs=False) + to_include = OrderedDict() + to_include['mean'] = self.predicted_mean + to_include['mean_se'] = self.se_mean + to_include['mean_ci_lower'] = ci_mean[:, 0] + to_include['mean_ci_upper'] = ci_mean[:, 1] + to_include['obs_ci_lower'] = ci_obs[:, 0] + to_include['obs_ci_upper'] = ci_obs[:, 1] + + self.table = to_include + #OrderedDict doesn't work to preserve sequence + # pandas dict doesn't handle 2d_array + #data = np.column_stack(list(to_include.values())) + #names = .... + res = pd.DataFrame(to_include, index=self.row_labels, + columns=to_include.keys()) + return res + + +def get_prediction(self, exog=None, transform=True, weights=None, + row_labels=None, pred_kwds=None): + """ + compute prediction results + + Parameters + ---------- + exog : array-like, optional + The values for which you want to predict. + transform : bool, optional + If the model was fit via a formula, do you want to pass + exog through the formula. Default is True. E.g., if you fit + a model y ~ log(x1) + log(x2), and transform is True, then + you can pass a data structure that contains x1 and x2 in + their original form. Otherwise, you'd need to log the data + first. + weights : array_like, optional + Weights interpreted as in WLS, used for the variance of the predicted + residual. + args, kwargs : + Some models can take additional arguments or keywords, see the + predict method of the model for the details. + + Returns + ------- + prediction_results : instance + The prediction results instance contains prediction and prediction + variance and can on demand calculate confidence intervals and summary + tables for the prediction of the mean and of new observations. + + """ + + ### prepare exog and row_labels, based on base Results.predict + if transform and hasattr(self.model, 'formula') and exog is not None: + from patsy import dmatrix + exog = dmatrix(self.model.data.design_info.builder, + exog) + + if exog is not None: + if row_labels is None: + if hasattr(exog, 'index'): + row_labels = exog.index + else: + row_labels = None + + exog = np.asarray(exog) + if exog.ndim == 1 and (self.model.exog.ndim == 1 or + self.model.exog.shape[1] == 1): + exog = exog[:, None] + exog = np.atleast_2d(exog) # needed in count model shape[1] + else: + exog = self.model.exog + if weights is None: + weights = getattr(self.model, 'weights', None) + + if row_labels is None: + row_labels = getattr(self.model.data, 'row_labels', None) + + # need to handle other arrays, TODO: is delegating to model possible ? + if weights is not None: + weights = np.asarray(weights) + if (weights.size > 1 and + (weights.ndim != 1 or weights.shape[0] == exog.shape[1])): + raise ValueError('weights has wrong shape') + + ### end + + if pred_kwds is None: + pred_kwds = {} + predicted_mean = self.model.predict(self.params, exog, **pred_kwds) + + covb = self.cov_params() + var_pred_mean = (exog * np.dot(covb, exog.T).T).sum(1) + + # TODO: check that we have correct scale, Refactor scale #??? + var_resid = self.scale / weights # self.mse_resid / weights + # special case for now: + if self.cov_type == 'fixed scale': + var_resid = self.cov_kwds['scale'] / weights + + dist = ['norm', 't'][self.use_t] + return PredictionResults(predicted_mean, var_pred_mean, var_resid, + df=self.df_resid, dist=dist, + row_labels=row_labels) diff --git a/statsmodels/regression/feasible_gls.py b/statsmodels/regression/feasible_gls.py new file mode 100644 index 0000000..075aedb --- /dev/null +++ b/statsmodels/regression/feasible_gls.py @@ -0,0 +1,213 @@ +# -*- coding: utf-8 -*- +""" + +Created on Tue Dec 20 20:24:20 2011 + +Author: Josef Perktold +License: BSD-3 + +""" + +from statsmodels.compat.python import range +import numpy as np +import statsmodels.base.model as base +from statsmodels.regression.linear_model import OLS, GLS, WLS, RegressionResults + + +def atleast_2dcols(x): + x = np.asarray(x) + if x.ndim == 1: + x = x[:,None] + return x + + +class GLSHet2(GLS): + '''WLS with heteroscedasticity that depends on explanatory variables + + note: mixing GLS sigma and weights for heteroscedasticity might not make + sense + + I think rewriting following the pattern of GLSAR is better + stopping criteria: improve in GLSAR also, e.g. change in rho + + ''' + + + def __init__(self, endog, exog, exog_var, sigma=None): + self.exog_var = atleast_2dcols(exog_var) + super(self.__class__, self).__init__(endog, exog, sigma=sigma) + + + def fit(self, lambd=1.): + #maybe iterate + #preliminary estimate + res_gls = GLS(self.endog, self.exog, sigma=self.sigma).fit() + res_resid = OLS(res_gls.resid**2, self.exog_var).fit() + #or log-link + #res_resid = OLS(np.log(res_gls.resid**2), self.exog_var).fit() + #here I could use whiten and current instance instead of delegating + #but this is easier + #see pattern of GLSAR, calls self.initialize and self.fit + res_wls = WLS(self.endog, self.exog, weights=1./res_resid.fittedvalues).fit() + + res_wls._results.results_residual_regression = res_resid + return res_wls + + +class GLSHet(WLS): + """ + A regression model with an estimated heteroscedasticity. + + A subclass of WLS, that additionally estimates the weight matrix as a + function of additional explanatory variables. + + Parameters + ---------- + endog : array_like + exog : array_like + exog_var : array_like, 1d or 2d + regressors, explanatory variables for the variance + weights : array_like or None + If weights are given, then they are used in the first step estimation. + link : link function or None + If None, then the variance is assumed to be a linear combination of + the exog_var. If given, then ... not tested yet + + *extra attributes* + + history : dict + contains the parameter estimates in both regression for each iteration + + result instance has + + results_residual_regression : OLS result instance + result of heteroscedasticity estimation + + except for fit_iterative all methods are inherited from WLS. + + Notes + ----- + GLSHet is considered to be experimental. + + `fit` is just standard WLS fit for fixed weights + `fit_iterative` updates the estimate for weights, see its docstring + + The two alternative for handling heteroscedasticity in the data are to + use heteroscedasticity robust standard errors or estimating the + heteroscedasticity + Estimating heteroscedasticity and using weighted least squares produces + smaller confidence intervals for the estimated parameters then the + heteroscedasticity robust standard errors if the heteroscedasticity is + correctly specified. If the heteroscedasticity is incorrectly specified + then the estimated covariance is inconsistent. + + Stock and Watson for example argue in favor of using OLS with + heteroscedasticity robust standard errors instead of GLSHet sind we are + seldom sure enough about the correct specification (in economics). + + GLSHet has asymptotically the same distribution as WLS if the true + weights are know. In both cases the asymptotic distribution of the + parameter estimates is the normal distribution. + + The assumption of the model: + + y = X*beta + u, + with E(u) = 0, E(X*u)=0, var(u_i) = z_i*gamma + or for vector of all observations Sigma = diag(Z*gamma) + + where + y : endog (nobs) + X : exog (nobs, k_vars) + Z : exog_var (nobs, k_vars2) + beta, gamma estimated parameters + + If a link is specified, then the heteroscedasticity is + + var(u_i) = link.inverse(z_i*gamma), or + link(var(u_i)) = z_i*gamma + + for example for log-linkg + var(u_i) = exp(z_i*gamma) + + + Usage : see example .... + + TODO: test link option + + """ + def __init__(self, endog, exog, exog_var=None, weights=None, link=None): + self.exog_var = atleast_2dcols(exog_var) + if weights is None: + weights = np.ones(endog.shape) + if link is not None: + self.link = link + self.linkinv = link.inverse #as defined in families.links + else: + self.link = lambda x: x #no transformation + self.linkinv = lambda x: x + + super(self.__class__, self).__init__(endog, exog, weights=weights) + + def iterative_fit(self, maxiter=3): + """ + Perform an iterative two-step procedure to estimate a WLS model. + + The model is assumed to have heteroscedastic errors. + The variance is estimated by OLS regression of the link transformed + squared residuals on Z, i.e.:: + + link(sigma_i) = x_i*gamma. + + Parameters + ---------- + maxiter : integer, optional + the number of iterations + + Notes + ----- + maxiter=1: returns the estimated based on given weights + maxiter=2: performs a second estimation with the updated weights, + this is 2-step estimation + maxiter>2: iteratively estimate and update the weights + + TODO: possible extension stop iteration if change in parameter + estimates is smaller than x_tol + + Repeated calls to fit_iterative, will do one redundant pinv_wexog + calculation. Calling fit_iterative(maxiter) ones does not do any + redundant recalculations (whitening or calculating pinv_wexog). + + """ + + import collections + self.history = collections.defaultdict(list) #not really necessary + res_resid = None #if maxiter < 2 no updating + for i in range(maxiter): + #pinv_wexog is cached + if hasattr(self, 'pinv_wexog'): + del self.pinv_wexog + #self.initialize() + #print 'wls self', + results = self.fit() + self.history['self_params'].append(results.params) + if not i == maxiter-1: #skip for last iteration, could break instead + #print 'ols', + self.results_old = results #for debugging + #estimate heteroscedasticity + res_resid = OLS(self.link(results.resid**2), self.exog_var).fit() + self.history['ols_params'].append(res_resid.params) + #update weights + self.weights = 1./self.linkinv(res_resid.fittedvalues) + self.weights /= self.weights.max() #not required + self.weights[self.weights < 1e-14] = 1e-14 #clip + #print 'in iter', i, self.weights.var() #debug, do weights change + self.initialize() + + #note results is the wrapper, results._results is the results instance + results._results.results_residual_regression = res_resid + return results + + + +if __name__ == '__main__': + pass diff --git a/statsmodels/regression/linear_model.py b/statsmodels/regression/linear_model.py new file mode 100644 index 0000000..d8f91a1 --- /dev/null +++ b/statsmodels/regression/linear_model.py @@ -0,0 +1,2646 @@ +# TODO: Determine which tests are valid for GLSAR, and under what conditions +# TODO: Fix issue with constant and GLS +# TODO: GLS: add options Iterative GLS, for iterative fgls if sigma is None +# TODO: GLS: default if sigma is none should be two-step GLS +# TODO: Check nesting when performing model based tests, lr, wald, lm +""" +This module implements standard regression models: + +Generalized Least Squares (GLS) +Ordinary Least Squares (OLS) +Weighted Least Squares (WLS) +Generalized Least Squares with autoregressive error terms GLSAR(p) + +Models are specified with an endogenous response variable and an +exogenous design matrix and are fit using their `fit` method. + +Subclasses that have more complicated covariance matrices +should write over the 'whiten' method as the fit method +prewhitens the response by calling 'whiten'. + +General reference for regression models: + +D. C. Montgomery and E.A. Peck. "Introduction to Linear Regression + Analysis." 2nd. Ed., Wiley, 1992. + +Econometrics references for regression models: + +R. Davidson and J.G. MacKinnon. "Econometric Theory and Methods," Oxford, + 2004. + +W. Green. "Econometric Analysis," 5th ed., Pearson, 2003. +""" + +from __future__ import print_function + +from statsmodels.compat.python import lrange, lzip, range +__docformat__ = 'restructuredtext en' + +__all__ = ['GLS', 'WLS', 'OLS', 'GLSAR'] + +import numpy as np +import pandas as pd +from scipy.linalg import toeplitz +from scipy import stats +from scipy import optimize + +from statsmodels.compat.numpy import np_matrix_rank +from statsmodels.tools.data import _is_using_pandas +from statsmodels.tools.tools import add_constant, chain_dot, pinv_extended +from statsmodels.tools.decorators import (resettable_cache, + cache_readonly, + cache_writable) +import statsmodels.base.model as base +import statsmodels.base.wrapper as wrap +from statsmodels.emplike.elregress import _ELRegOpts +import warnings +from statsmodels.tools.sm_exceptions import InvalidTestWarning + +# need import in module instead of lazily to copy `__doc__` +from . import _prediction as pred + +def _get_sigma(sigma, nobs): + """ + Returns sigma (matrix, nobs by nobs) for GLS and the inverse of its + Cholesky decomposition. Handles dimensions and checks integrity. + If sigma is None, returns None, None. Otherwise returns sigma, + cholsigmainv. + """ + if sigma is None: + return None, None + sigma = np.asarray(sigma).squeeze() + if sigma.ndim == 0: + sigma = np.repeat(sigma, nobs) + if sigma.ndim == 1: + if sigma.shape != (nobs,): + raise ValueError("Sigma must be a scalar, 1d of length %s or a 2d " + "array of shape %s x %s" % (nobs, nobs, nobs)) + cholsigmainv = 1/np.sqrt(sigma) + else: + if sigma.shape != (nobs, nobs): + raise ValueError("Sigma must be a scalar, 1d of length %s or a 2d " + "array of shape %s x %s" % (nobs, nobs, nobs)) + cholsigmainv = np.linalg.cholesky(np.linalg.pinv(sigma)).T + + return sigma, cholsigmainv + + +class RegressionModel(base.LikelihoodModel): + """ + Base class for linear regression models. Should not be directly called. + + Intended for subclassing. + """ + def __init__(self, endog, exog, **kwargs): + super(RegressionModel, self).__init__(endog, exog, **kwargs) + self._data_attr.extend(['pinv_wexog', 'wendog', 'wexog', 'weights']) + + def initialize(self): + self.wexog = self.whiten(self.exog) + self.wendog = self.whiten(self.endog) + # overwrite nobs from class Model: + self.nobs = float(self.wexog.shape[0]) + + self._df_model = None + self._df_resid = None + self.rank = None + + @property + def df_model(self): + """ + The model degree of freedom, defined as the rank of the regressor + matrix minus 1 if a constant is included. + """ + if self._df_model is None: + if self.rank is None: + self.rank = np_matrix_rank(self.exog) + self._df_model = float(self.rank - self.k_constant) + return self._df_model + + @df_model.setter + def df_model(self, value): + self._df_model = value + + @property + def df_resid(self): + """ + The residual degree of freedom, defined as the number of observations + minus the rank of the regressor matrix. + """ + + if self._df_resid is None: + if self.rank is None: + self.rank = np_matrix_rank(self.exog) + self._df_resid = self.nobs - self.rank + return self._df_resid + + @df_resid.setter + def df_resid(self, value): + self._df_resid = value + + + def whiten(self, X): + raise NotImplementedError("Subclasses should implement.") + + def fit(self, method="pinv", cov_type='nonrobust', cov_kwds=None, + use_t=None, **kwargs): + """ + Full fit of the model. + + The results include an estimate of covariance matrix, (whitened) + residuals and an estimate of scale. + + Parameters + ---------- + method : str, optional + Can be "pinv", "qr". "pinv" uses the Moore-Penrose pseudoinverse + to solve the least squares problem. "qr" uses the QR + factorization. + cov_type : str, optional + See `regression.linear_model.RegressionResults` for a description + of the available covariance estimators + cov_kwds : list or None, optional + See `linear_model.RegressionResults.get_robustcov_results` for a + description required keywords for alternative covariance estimators + use_t : bool, optional + Flag indicating to use the Student's t distribution when computing + p-values. Default behavior depends on cov_type. See + `linear_model.RegressionResults.get_robustcov_results` for + implementation details. + + Returns + ------- + A RegressionResults class instance. + + See Also + --------- + regression.linear_model.RegressionResults + regression.linear_model.RegressionResults.get_robustcov_results + + Notes + ----- + The fit method uses the pseudoinverse of the design/exogenous variables + to solve the least squares minimization. + """ + if method == "pinv": + if ((not hasattr(self, 'pinv_wexog')) or + (not hasattr(self, 'normalized_cov_params')) or + (not hasattr(self, 'rank'))): + + self.pinv_wexog, singular_values = pinv_extended(self.wexog) + self.normalized_cov_params = np.dot(self.pinv_wexog, + np.transpose(self.pinv_wexog)) + + # Cache these singular values for use later. + self.wexog_singular_values = singular_values + self.rank = np_matrix_rank(np.diag(singular_values)) + + beta = np.dot(self.pinv_wexog, self.wendog) + + elif method == "qr": + if ((not hasattr(self, 'exog_Q')) or + (not hasattr(self, 'exog_R')) or + (not hasattr(self, 'normalized_cov_params')) or + (getattr(self, 'rank', None) is None)): + Q, R = np.linalg.qr(self.wexog) + self.exog_Q, self.exog_R = Q, R + self.normalized_cov_params = np.linalg.inv(np.dot(R.T, R)) + + # Cache singular values from R. + self.wexog_singular_values = np.linalg.svd(R, 0, 0) + self.rank = np_matrix_rank(R) + else: + Q, R = self.exog_Q, self.exog_R + + # used in ANOVA + self.effects = effects = np.dot(Q.T, self.wendog) + beta = np.linalg.solve(R, effects) + + if self._df_model is None: + self._df_model = float(self.rank - self.k_constant) + if self._df_resid is None: + self.df_resid = self.nobs - self.rank + + if isinstance(self, OLS): + lfit = OLSResults(self, beta, + normalized_cov_params=self.normalized_cov_params, + cov_type=cov_type, cov_kwds=cov_kwds, use_t=use_t) + else: + lfit = RegressionResults(self, beta, + normalized_cov_params=self.normalized_cov_params, + cov_type=cov_type, cov_kwds=cov_kwds, use_t=use_t, + **kwargs) + return RegressionResultsWrapper(lfit) + + + def predict(self, params, exog=None): + """ + Return linear predicted values from a design matrix. + + Parameters + ---------- + params : array-like + Parameters of a linear model + exog : array-like, optional. + Design / exogenous data. Model exog is used if None. + + Returns + ------- + An array of fitted values + + Notes + ----- + If the model has not yet been fit, params is not optional. + """ + #JP: this doesn't look correct for GLMAR + #SS: it needs its own predict method + + if exog is None: + exog = self.exog + + return np.dot(exog, params) + + def get_distribution(self, params, scale, exog=None, dist_class=None): + """ + Returns a random number generator for the predictive distribution. + + Parameters + ---------- + params : array-like + The model parameters (regression coefficients). + scale : scalar + The variance parameter. + exog : array-like + The predictor variable matrix. + dist_class : class + A random number generator class. Must take 'loc' and + 'scale' as arguments and return a random number generator + implementing an `rvs` method for simulating random values. + Defaults to Gaussian. + + Returns a frozen random number generator object with mean and + variance determined by the fitted linear model. Use the + ``rvs`` method to generate random values. + + Notes + ----- + Due to the behavior of ``scipy.stats.distributions objects``, + the returned random number generator must be called with + ``gen.rvs(n)`` where ``n`` is the number of observations in + the data set used to fit the model. If any other value is + used for ``n``, misleading results will be produced. + """ + fit = self.predict(params, exog) + if dist_class is None: + from scipy.stats.distributions import norm + dist_class = norm + gen = dist_class(loc=fit, scale=np.sqrt(scale)) + return gen + + +class GLS(RegressionModel): + __doc__ = """ + Generalized least squares model with a general covariance structure. + + %(params)s + sigma : scalar or array + `sigma` is the weighting matrix of the covariance. + The default is None for no scaling. If `sigma` is a scalar, it is + assumed that `sigma` is an n x n diagonal matrix with the given + scalar, `sigma` as the value of each diagonal element. If `sigma` + is an n-length vector, then `sigma` is assumed to be a diagonal + matrix with the given `sigma` on the diagonal. This should be the + same as WLS. + %(extra_params)s + + **Attributes** + + pinv_wexog : array + `pinv_wexog` is the p x n Moore-Penrose pseudoinverse of `wexog`. + cholsimgainv : array + The transpose of the Cholesky decomposition of the pseudoinverse. + df_model : float + p - 1, where p is the number of regressors including the intercept. + of freedom. + df_resid : float + Number of observations n less the number of parameters p. + llf : float + The value of the likelihood function of the fitted model. + nobs : float + The number of observations n. + normalized_cov_params : array + p x p array :math:`(X^{T}\Sigma^{-1}X)^{-1}` + results : RegressionResults instance + A property that returns the RegressionResults class if fit. + sigma : array + `sigma` is the n x n covariance structure of the error terms. + wexog : array + Design matrix whitened by `cholsigmainv` + wendog : array + Response variable whitened by `cholsigmainv` + + Notes + ----- + If sigma is a function of the data making one of the regressors + a constant, then the current postestimation statistics will not be correct. + + + Examples + -------- + >>> import numpy as np + >>> import statsmodels.api as sm + >>> data = sm.datasets.longley.load() + >>> data.exog = sm.add_constant(data.exog) + >>> ols_resid = sm.OLS(data.endog, data.exog).fit().resid + >>> res_fit = sm.OLS(ols_resid[1:], ols_resid[:-1]).fit() + >>> rho = res_fit.params + + `rho` is a consistent estimator of the correlation of the residuals from + an OLS fit of the longley data. It is assumed that this is the true rho + of the AR process data. + + >>> from scipy.linalg import toeplitz + >>> order = toeplitz(np.arange(16)) + >>> sigma = rho**order + + `sigma` is an n x n matrix of the autocorrelation structure of the + data. + + >>> gls_model = sm.GLS(data.endog, data.exog, sigma=sigma) + >>> gls_results = gls_model.fit() + >>> print(gls_results.summary())) + + """ % {'params' : base._model_params_doc, + 'extra_params' : base._missing_param_doc + base._extra_param_doc} + + def __init__(self, endog, exog, sigma=None, missing='none', hasconst=None, + **kwargs): + #TODO: add options igls, for iterative fgls if sigma is None + #TODO: default if sigma is none should be two-step GLS + sigma, cholsigmainv = _get_sigma(sigma, len(endog)) + + super(GLS, self).__init__(endog, exog, missing=missing, + hasconst=hasconst, sigma=sigma, + cholsigmainv=cholsigmainv, **kwargs) + + #store attribute names for data arrays + self._data_attr.extend(['sigma', 'cholsigmainv']) + + + def whiten(self, X): + """ + GLS whiten method. + + Parameters + ----------- + X : array-like + Data to be whitened. + + Returns + ------- + np.dot(cholsigmainv,X) + + See Also + -------- + regression.GLS + """ + X = np.asarray(X) + if self.sigma is None or self.sigma.shape == (): + return X + elif self.sigma.ndim == 1: + if X.ndim == 1: + return X * self.cholsigmainv + else: + return X * self.cholsigmainv[:, None] + else: + return np.dot(self.cholsigmainv, X) + + + + def loglike(self, params): + """ + Returns the value of the Gaussian log-likelihood function at params. + + Given the whitened design matrix, the log-likelihood is evaluated + at the parameter vector `params` for the dependent variable `endog`. + + Parameters + ---------- + params : array-like + The parameter estimates + + Returns + ------- + loglike : float + The value of the log-likelihood function for a GLS Model. + + + Notes + ----- + The log-likelihood function for the normal distribution is + + .. math:: -\\frac{n}{2}\\log\\left(\\left(Y-\\hat{Y}\\right)^{\\prime}\\left(Y-\\hat{Y}\\right)\\right)-\\frac{n}{2}\\left(1+\\log\\left(\\frac{2\\pi}{n}\\right)\\right)-\\frac{1}{2}\\log\\left(\\left|\\Sigma\\right|\\right) + + Y and Y-hat are whitened. + + """ + #TODO: combine this with OLS/WLS loglike and add _det_sigma argument + nobs2 = self.nobs / 2.0 + SSR = np.sum((self.wendog - np.dot(self.wexog, params))**2, axis=0) + llf = -np.log(SSR) * nobs2 # concentrated likelihood + llf -= (1+np.log(np.pi/nobs2))*nobs2 # with likelihood constant + if np.any(self.sigma): + #FIXME: robust-enough check? unneeded if _det_sigma gets defined + if self.sigma.ndim==2: + det = np.linalg.slogdet(self.sigma) + llf -= .5*det[1] + else: + llf -= 0.5*np.sum(np.log(self.sigma)) + # with error covariance matrix + return llf + +class WLS(RegressionModel): + __doc__ = """ + A regression model with diagonal but non-identity covariance structure. + + The weights are presumed to be (proportional to) the inverse of the + variance of the observations. That is, if the variables are to be + transformed by 1/sqrt(W) you must supply weights = 1/W. + + %(params)s + weights : array-like, optional + 1d array of weights. If you supply 1/W then the variables are pre- + multiplied by 1/sqrt(W). If no weights are supplied the default value + is 1 and WLS reults are the same as OLS. + %(extra_params)s + + Attributes + ---------- + weights : array + The stored weights supplied as an argument. + + See regression.GLS + + Examples + --------- + >>> import numpy as np + >>> import statsmodels.api as sm + >>> Y = [1,3,4,5,2,3,4] + >>> X = range(1,8) + >>> X = sm.add_constant(X) + >>> wls_model = sm.WLS(Y,X, weights=list(range(1,8))) + >>> results = wls_model.fit() + >>> results.params + array([ 2.91666667, 0.0952381 ]) + >>> results.tvalues + array([ 2.0652652 , 0.35684428]) + >>> print(results.t_test([1, 0])) + + >>> print(results.f_test([0, 1])) + + + Notes + ----- + If the weights are a function of the data, then the post estimation + statistics such as fvalue and mse_model might not be correct, as the + package does not yet support no-constant regression. + """ % {'params' : base._model_params_doc, + 'extra_params' : base._missing_param_doc + base._extra_param_doc} + + def __init__(self, endog, exog, weights=1., missing='none', hasconst=None, + **kwargs): + weights = np.array(weights) + if weights.shape == (): + if (missing == 'drop' and 'missing_idx' in kwargs and + kwargs['missing_idx'] is not None): + # patsy may have truncated endog + weights = np.repeat(weights, len(kwargs['missing_idx'])) + else: + weights = np.repeat(weights, len(endog)) + # handle case that endog might be of len == 1 + if len(weights) == 1: + weights = np.array([weights.squeeze()]) + else: + weights = weights.squeeze() + super(WLS, self).__init__(endog, exog, missing=missing, + weights=weights, hasconst=hasconst, **kwargs) + nobs = self.exog.shape[0] + weights = self.weights + # Experimental normalization of weights + weights = weights / np.sum(weights) * nobs + if weights.size != nobs and weights.shape[0] != nobs: + raise ValueError('Weights must be scalar or same length as design') + + def whiten(self, X): + """ + Whitener for WLS model, multiplies each column by sqrt(self.weights) + + Parameters + ---------- + X : array-like + Data to be whitened + + Returns + ------- + sqrt(weights)*X + """ + #print(self.weights.var())) + X = np.asarray(X) + if X.ndim == 1: + return X * np.sqrt(self.weights) + elif X.ndim == 2: + return np.sqrt(self.weights)[:, None]*X + + def loglike(self, params): + """ + Returns the value of the gaussian log-likelihood function at params. + + Given the whitened design matrix, the log-likelihood is evaluated + at the parameter vector `params` for the dependent variable `Y`. + + Parameters + ---------- + params : array-like + The parameter estimates. + + Returns + ------- + llf : float + The value of the log-likelihood function for a WLS Model. + + Notes + -------- + .. math:: -\\frac{n}{2}\\log\\left(Y-\\hat{Y}\\right)-\\frac{n}{2}\\left(1+\\log\\left(\\frac{2\\pi}{n}\\right)\\right)-\\frac{1}{2}log\\left(\\left|W\\right|\\right) + + where :math:`W` is a diagonal matrix + """ + nobs2 = self.nobs / 2.0 + SSR = np.sum((self.wendog - np.dot(self.wexog,params))**2, axis=0) + llf = -np.log(SSR) * nobs2 # concentrated likelihood + llf -= (1+np.log(np.pi/nobs2))*nobs2 # with constant + llf += 0.5 * np.sum(np.log(self.weights)) + return llf + + +class OLS(WLS): + __doc__ = """ + A simple ordinary least squares model. + + %(params)s + %(extra_params)s + + Attributes + ---------- + weights : scalar + Has an attribute weights = array(1.0) due to inheritance from WLS. + + See Also + -------- + GLS + + Examples + -------- + >>> import numpy as np + >>> + >>> import statsmodels.api as sm + >>> + >>> Y = [1,3,4,5,2,3,4] + >>> X = range(1,8) + >>> X = sm.add_constant(X) + >>> + >>> model = sm.OLS(Y,X) + >>> results = model.fit() + >>> results.params + array([ 2.14285714, 0.25 ]) + >>> results.tvalues + array([ 1.87867287, 0.98019606]) + >>> print(results.t_test([1, 0]))) + + >>> print(results.f_test(np.identity(2))) + + + Notes + ----- + No constant is added by the model unless you are using formulas. + """ % {'params' : base._model_params_doc, + 'extra_params' : base._missing_param_doc + base._extra_param_doc} + #TODO: change example to use datasets. This was the point of datasets! + def __init__(self, endog, exog=None, missing='none', hasconst=None, + **kwargs): + super(OLS, self).__init__(endog, exog, missing=missing, + hasconst=hasconst, **kwargs) + if "weights" in self._init_keys: + self._init_keys.remove("weights") + + def loglike(self, params, scale=None): + """ + The likelihood function for the OLS model. + + Parameters + ---------- + params : array-like + The coefficients with which to estimate the log-likelihood. + scale : float or None + If None, return the profile (concentrated) log likelihood + (profiled over the scale parameter), else return the + log-likelihood using the given scale value. + + Returns + ------- + The likelihood function evaluated at params. + """ + nobs2 = self.nobs / 2.0 + nobs = float(self.nobs) + resid = self.endog - np.dot(self.exog, params) + if hasattr(self, 'offset'): + resid -= self.offset + ssr = np.sum(resid**2) + if scale is None: + # profile log likelihood + llf = -nobs2*np.log(2*np.pi) - nobs2*np.log(ssr / nobs) - nobs2 + else: + # log-likelihood + llf = -nobs2 * np.log(2 * np.pi * scale) - ssr / (2*scale) + return llf + + + def whiten(self, Y): + """ + OLS model whitener does nothing: returns Y. + """ + return Y + + + def score(self, params, scale=None): + """ + Evaluate the score function at a given point. + + The score corresponds to the profile (concentrated) + log-likelihood in which the scale parameter has been profiled + out. + + Parameters + ---------- + params : array-like + The parameter vector at which the score function is + computed. + scale : float or None + If None, return the profile (concentrated) log likelihood + (profiled over the scale parameter), else return the + log-likelihood using the given scale value. + + Returns + ------- + The score vector. + """ + + if not hasattr(self, "_wexog_xprod"): + self._setup_score_hess() + + xtxb = np.dot(self._wexog_xprod, params) + sdr = -self._wexog_x_wendog + xtxb + + if scale is None: + ssr = self._wendog_xprod - 2 * np.dot(self._wexog_x_wendog.T, params) + ssr += np.dot(params, xtxb) + return -self.nobs * sdr / ssr + else: + return -sdr / scale + + + def _setup_score_hess(self): + y = self.wendog + if hasattr(self, 'offset'): + y = y - self.offset + self._wendog_xprod = np.sum(y * y) + self._wexog_xprod = np.dot(self.wexog.T, self.wexog) + self._wexog_x_wendog = np.dot(self.wexog.T, y) + + + def hessian(self, params, scale=None): + """ + Evaluate the Hessian function at a given point. + + Parameters + ---------- + params : array-like + The parameter vector at which the Hessian is computed. + scale : float or None + If None, return the profile (concentrated) log likelihood + (profiled over the scale parameter), else return the + log-likelihood using the given scale value. + + Returns + ------- + The Hessian matrix. + """ + + if not hasattr(self, "_wexog_xprod"): + self._setup_score_hess() + + xtxb = np.dot(self._wexog_xprod, params) + + if scale is None: + ssr = self._wendog_xprod - 2 * np.dot(self._wexog_x_wendog.T, params) + ssr += np.dot(params, xtxb) + ssrp = -2*self._wexog_x_wendog + 2*xtxb + hm = self._wexog_xprod / ssr - np.outer(ssrp, ssrp) / ssr**2 + return -self.nobs * hm / 2 + else: + return -self._wexog_xprod / scale + + return hess + + + def fit_regularized(self, method="elastic_net", alpha=0., + start_params=None, profile_scale=False, + refit=False, **kwargs): + """ + Return a regularized fit to a linear regression model. + + Parameters + ---------- + method : string + Only the 'elastic_net' approach is currently implemented. + alpha : scalar or array-like + The penalty weight. If a scalar, the same penalty weight + applies to all variables in the model. If a vector, it + must have the same length as `params`, and contains a + penalty weight for each coefficient. + start_params : array-like + Starting values for ``params``. + profile_scale : bool + If True the penalized fit is computed using the profile + (concentrated) log-likelihood for the Gaussian model. + Otherwise the fit uses the residual sum of squares. + refit : bool + If True, the model is refit using only the variables that + have non-zero coefficients in the regularized fit. The + refitted model is not regularized. + + Returns + ------- + An array of coefficients, or a RegressionResults object of the + same type returned by ``fit``. + + Notes + ----- + + The elastic net approach closely follows that implemented in + the glmnet package in R. The penalty is a combination of L1 + and L2 penalties. + + The function that is minimized is: ..math:: + + 0.5*RSS/n + alpha*((1-L1_wt)*|params|_2^2/2 + L1_wt*|params|_1) + + where RSS is the usual regression sum of squares, n is the + sample size, and :math:`|*|_1` and :math:`|*|_2` are the L1 and L2 + norms. + + Post-estimation results are based on the same data used to + select variables, hence may be subject to overfitting biases. + + The elastic_net method uses the following keyword arguments: + + maxiter : int + Maximum number of iterations + L1_wt : float + Must be in [0, 1]. The L1 penalty has weight L1_wt and the + L2 penalty has weight 1 - L1_wt. + cnvrg_tol : float + Convergence threshold for line searches + zero_tol : float + Coefficients below this threshold are treated as zero. + + References + ---------- + Friedman, Hastie, Tibshirani (2008). Regularization paths for + generalized linear models via coordinate descent. Journal of + Statistical Software 33(1), 1-22 Feb 2010. + """ + + from statsmodels.base.elastic_net import fit_elasticnet + + # In the future we could add support for other penalties, e.g. SCAD. + if method != "elastic_net": + raise ValueError("method for fit_regularied must be elastic_net") + + # Set default parameters. + defaults = {"maxiter" : 50, "L1_wt" : 1, "cnvrg_tol" : 1e-10, + "zero_tol" : 1e-10} + defaults.update(kwargs) + + # If a scale parameter is passed in, the non-profile + # likelihood (residual sum of squares divided by -2) is used, + # otherwise the profile likelihood is used. + if profile_scale: + loglike_kwds = {} + score_kwds = {} + hess_kwds = {} + else: + loglike_kwds = {"scale": 1} + score_kwds = {"scale": 1} + hess_kwds = {"scale": 1} + + return fit_elasticnet(self, method=method, + alpha=alpha, + start_params=start_params, + loglike_kwds=loglike_kwds, + score_kwds=score_kwds, + hess_kwds=hess_kwds, + refit=refit, + **defaults) + + +class GLSAR(GLS): + __doc__ = """ + A regression model with an AR(p) covariance structure. + + %(params)s + rho : int + Order of the autoregressive covariance + %(extra_params)s + + Examples + -------- + >>> import statsmodels.api as sm + >>> X = range(1,8) + >>> X = sm.add_constant(X) + >>> Y = [1,3,4,5,8,10,9] + >>> model = sm.GLSAR(Y, X, rho=2) + >>> for i in range(6): + ... results = model.fit() + ... print("AR coefficients: {0}".format(model.rho)) + ... rho, sigma = sm.regression.yule_walker(results.resid, + ... order=model.order) + ... model = sm.GLSAR(Y, X, rho) + ... + AR coefficients: [ 0. 0.] + AR coefficients: [-0.52571491 -0.84496178] + AR coefficients: [-0.6104153 -0.86656458] + AR coefficients: [-0.60439494 -0.857867 ] + AR coefficients: [-0.6048218 -0.85846157] + AR coefficients: [-0.60479146 -0.85841922] + >>> results.params + array([-0.66661205, 1.60850853]) + >>> results.tvalues + array([ -2.10304127, 21.8047269 ]) + >>> print(results.t_test([1, 0])) + + >>> print(results.f_test(np.identity(2))) + + + Or, equivalently + + >>> model2 = sm.GLSAR(Y, X, rho=2) + >>> res = model2.iterative_fit(maxiter=6) + >>> model2.rho + array([-0.60479146, -0.85841922]) + + Notes + ----- + GLSAR is considered to be experimental. + The linear autoregressive process of order p--AR(p)--is defined as: + TODO + """ % {'params' : base._model_params_doc, + 'extra_params' : base._missing_param_doc + base._extra_param_doc} + def __init__(self, endog, exog=None, rho=1, missing='none', **kwargs): + #this looks strange, interpreting rho as order if it is int + if isinstance(rho, np.int): + self.order = rho + self.rho = np.zeros(self.order, np.float64) + else: + self.rho = np.squeeze(np.asarray(rho)) + if len(self.rho.shape) not in [0,1]: + raise ValueError("AR parameters must be a scalar or a vector") + if self.rho.shape == (): + self.rho.shape = (1,) + self.order = self.rho.shape[0] + if exog is None: + #JP this looks wrong, should be a regression on constant + #results for rho estimate now identical to yule-walker on y + #super(AR, self).__init__(endog, add_constant(endog)) + super(GLSAR, self).__init__(endog, np.ones((endog.shape[0],1)), + missing=missing, **kwargs) + else: + super(GLSAR, self).__init__(endog, exog, missing=missing, + **kwargs) + + def iterative_fit(self, maxiter=3, rtol=1e-4, **kwds): + """ + Perform an iterative two-stage procedure to estimate a GLS model. + + The model is assumed to have AR(p) errors, AR(p) parameters and + regression coefficients are estimated iteratively. + + Parameters + ---------- + maxiter : integer, optional + the number of iterations + rtol : float, optional + Relative tolerance between estimated coefficients to stop the + estimation. Stops if + + max(abs(last - current) / abs(last)) < rtol + + """ + # TODO: update this after going through example. + converged = False + i = -1 # need to initialize for maxiter < 1 (skip loop) + history = {'params': [], 'rho':[self.rho]} + for i in range(maxiter - 1): + if hasattr(self, 'pinv_wexog'): + del self.pinv_wexog + self.initialize() + results = self.fit() + history['params'].append(results.params) + if i == 0: + last = results.params + else: + diff = np.max(np.abs(last - results.params) / np.abs(last)) + if diff < rtol: + converged = True + break + last = results.params + self.rho, _ = yule_walker(results.resid, + order=self.order, df=None) + history['rho'].append(self.rho) + + # why not another call to self.initialize + # Use kwarg to insert history + if not converged and maxiter > 0: + # maxiter <= 0 just does OLS + if hasattr(self, 'pinv_wexog'): + del self.pinv_wexog + self.initialize() + + # if converged then this is a duplicate fit, because we didn't update rho + results = self.fit(history=history, **kwds) + results.iter = i + 1 + # add last fit to history, not if duplicate fit + if not converged: + results.history['params'].append(results.params) + results.iter += 1 + + results.converged = converged + + return results + + + def whiten(self, X): + """ + Whiten a series of columns according to an AR(p) + covariance structure. This drops initial p observations. + + Parameters + ---------- + X : array-like + The data to be whitened, + + Returns + ------- + whitened array + + """ + #TODO: notation for AR process + X = np.asarray(X, np.float64) + _X = X.copy() + + #the following loops over the first axis, works for 1d and nd + for i in range(self.order): + _X[(i+1):] = _X[(i+1):] - self.rho[i] * X[0:-(i+1)] + return _X[self.order:] + + +def yule_walker(X, order=1, method="unbiased", df=None, inv=False, demean=True): + """ + Estimate AR(p) parameters from a sequence X using Yule-Walker equation. + + Unbiased or maximum-likelihood estimator (mle) + + See, for example: + + http://en.wikipedia.org/wiki/Autoregressive_moving_average_model + + Parameters + ---------- + X : array-like + 1d array + order : integer, optional + The order of the autoregressive process. Default is 1. + method : string, optional + Method can be "unbiased" or "mle" and this determines denominator in + estimate of autocorrelation function (ACF) at lag k. If "mle", the + denominator is n=X.shape[0], if "unbiased" the denominator is n-k. + The default is unbiased. + df : integer, optional + Specifies the degrees of freedom. If `df` is supplied, then it is assumed + the X has `df` degrees of freedom rather than `n`. Default is None. + inv : bool + If inv is True the inverse of R is also returned. Default is False. + demean : bool + True, the mean is subtracted from `X` before estimation. + + Returns + ------- + rho + The autoregressive coefficients + sigma + TODO + + Examples + -------- + >>> import statsmodels.api as sm + >>> from statsmodels.datasets.sunspots import load + >>> data = load() + >>> rho, sigma = sm.regression.yule_walker(data.endog, + order=4, method="mle") + + >>> rho + array([ 1.28310031, -0.45240924, -0.20770299, 0.04794365]) + >>> sigma + 16.808022730464351 + + """ + #TODO: define R better, look back at notes and technical notes on YW. + #First link here is useful + #http://www-stat.wharton.upenn.edu/~steele/Courses/956/ResourceDetails/YuleWalkerAndMore.htm + method = str(method).lower() + if method not in ["unbiased", "mle"]: + raise ValueError("ACF estimation method must be 'unbiased' or 'MLE'") + X = np.array(X, dtype=np.float64) + if demean: + X -= X.mean() # automatically demean's X + n = df or X.shape[0] + + if method == "unbiased": # this is df_resid ie., n - p + denom = lambda k: n - k + else: + denom = lambda k: n + if X.ndim > 1 and X.shape[1] != 1: + raise ValueError("expecting a vector to estimate AR parameters") + r = np.zeros(order+1, np.float64) + r[0] = (X**2).sum() / denom(0) + for k in range(1,order+1): + r[k] = (X[0:-k]*X[k:]).sum() / denom(k) + R = toeplitz(r[:-1]) + + rho = np.linalg.solve(R, r[1:]) + sigmasq = r[0] - (r[1:]*rho).sum() + if inv==True: + return rho, np.sqrt(sigmasq), np.linalg.inv(R) + else: + return rho, np.sqrt(sigmasq) + + +class RegressionResults(base.LikelihoodModelResults): + """ + This class summarizes the fit of a linear regression model. + + It handles the output of contrasts, estimates of covariance, etc. + + Returns + ------- + **Attributes** + + aic + Aikake's information criteria. For a model with a constant + :math:`-2llf + 2(df_model + 1)`. For a model without a constant + :math:`-2llf + 2(df_model)`. + bic + Bayes' information criteria For a model with a constant + :math:`-2llf + \log(n)(df_model+1)`. For a model without a constant + :math:`-2llf + \log(n)(df_model)` + bse + The standard errors of the parameter estimates. + pinv_wexog + See specific model class docstring + centered_tss + The total (weighted) sum of squares centered about the mean. + cov_HC0 + Heteroscedasticity robust covariance matrix. See HC0_se below. + cov_HC1 + Heteroscedasticity robust covariance matrix. See HC1_se below. + cov_HC2 + Heteroscedasticity robust covariance matrix. See HC2_se below. + cov_HC3 + Heteroscedasticity robust covariance matrix. See HC3_se below. + cov_type + Parameter covariance estimator used for standard errors and t-stats + df_model + Model degress of freedom. The number of regressors `p`. Does not + include the constant if one is present + df_resid + Residual degrees of freedom. `n - p - 1`, if a constant is present. + `n - p` if a constant is not included. + ess + Explained sum of squares. If a constant is present, the centered + total sum of squares minus the sum of squared residuals. If there is + no constant, the uncentered total sum of squares is used. + fvalue + F-statistic of the fully specified model. Calculated as the mean + squared error of the model divided by the mean squared error of the + residuals. + f_pvalue + p-value of the F-statistic + fittedvalues + The predicted the values for the original (unwhitened) design. + het_scale + adjusted squared residuals for heteroscedasticity robust standard + errors. Is only available after `HC#_se` or `cov_HC#` is called. + See HC#_se for more information. + history + Estimation history for iterative estimators + HC0_se + White's (1980) heteroskedasticity robust standard errors. + Defined as sqrt(diag(X.T X)^(-1)X.T diag(e_i^(2)) X(X.T X)^(-1) + where e_i = resid[i] + HC0_se is a cached property. + When HC0_se or cov_HC0 is called the RegressionResults instance will + then have another attribute `het_scale`, which is in this case is just + resid**2. + HC1_se + MacKinnon and White's (1985) alternative heteroskedasticity robust + standard errors. + Defined as sqrt(diag(n/(n-p)*HC_0) + HC1_see is a cached property. + When HC1_se or cov_HC1 is called the RegressionResults instance will + then have another attribute `het_scale`, which is in this case is + n/(n-p)*resid**2. + HC2_se + MacKinnon and White's (1985) alternative heteroskedasticity robust + standard errors. + Defined as (X.T X)^(-1)X.T diag(e_i^(2)/(1-h_ii)) X(X.T X)^(-1) + where h_ii = x_i(X.T X)^(-1)x_i.T + HC2_see is a cached property. + When HC2_se or cov_HC2 is called the RegressionResults instance will + then have another attribute `het_scale`, which is in this case is + resid^(2)/(1-h_ii). + HC3_se + MacKinnon and White's (1985) alternative heteroskedasticity robust + standard errors. + Defined as (X.T X)^(-1)X.T diag(e_i^(2)/(1-h_ii)^(2)) X(X.T X)^(-1) + where h_ii = x_i(X.T X)^(-1)x_i.T + HC3_see is a cached property. + When HC3_se or cov_HC3 is called the RegressionResults instance will + then have another attribute `het_scale`, which is in this case is + resid^(2)/(1-h_ii)^(2). + model + A pointer to the model instance that called fit() or results. + mse_model + Mean squared error the model. This is the explained sum of squares + divided by the model degrees of freedom. + mse_resid + Mean squared error of the residuals. The sum of squared residuals + divided by the residual degrees of freedom. + mse_total + Total mean squared error. Defined as the uncentered total sum of + squares divided by n the number of observations. + nobs + Number of observations n. + normalized_cov_params + See specific model class docstring + params + The linear coefficients that minimize the least squares criterion. This + is usually called Beta for the classical linear model. + pvalues + The two-tailed p values for the t-stats of the params. + resid + The residuals of the model. + resid_pearson + `wresid` normalized to have unit variance. + rsquared + R-squared of a model with an intercept. This is defined here as + 1 - `ssr`/`centered_tss` if the constant is included in the model and + 1 - `ssr`/`uncentered_tss` if the constant is omitted. + rsquared_adj + Adjusted R-squared. This is defined here as + 1 - (`nobs`-1)/`df_resid` * (1-`rsquared`) if a constant is included + and 1 - `nobs`/`df_resid` * (1-`rsquared`) if no constant is included. + scale + A scale factor for the covariance matrix. + Default value is ssr/(n-p). Note that the square root of `scale` is + often called the standard error of the regression. + ssr + Sum of squared (whitened) residuals. + uncentered_tss + Uncentered sum of squares. Sum of the squared values of the + (whitened) endogenous response variable. + wresid + The residuals of the transformed/whitened regressand and regressor(s) + """ + + _cache = {} # needs to be a class attribute for scale setter? + + def __init__(self, model, params, normalized_cov_params=None, scale=1., + cov_type='nonrobust', cov_kwds=None, use_t=None, **kwargs): + super(RegressionResults, self).__init__(model, params, + normalized_cov_params, + scale) + + self._cache = resettable_cache() + if hasattr(model, 'wexog_singular_values'): + self._wexog_singular_values = model.wexog_singular_values + else: + self._wexog_singular_values = None + + self.df_model = model.df_model + self.df_resid = model.df_resid + + + + if cov_type == 'nonrobust': + self.cov_type = 'nonrobust' + self.cov_kwds = {'description' : 'Standard Errors assume that the ' + + 'covariance matrix of the errors is correctly ' + + 'specified.'} + if use_t is None: + self.use_t = True # TODO: class default + else: + if cov_kwds is None: + cov_kwds = {} + if 'use_t' in cov_kwds: + # TODO: we want to get rid of 'use_t' in cov_kwds + use_t_2 = cov_kwds.pop('use_t') + if use_t is None: + use_t = use_t_2 + # TODO: warn or not? + self.get_robustcov_results(cov_type=cov_type, use_self=True, + use_t=use_t, **cov_kwds) + for key in kwargs: + setattr(self, key, kwargs[key]) + + def __str__(self): + self.summary() + + def conf_int(self, alpha=.05, cols=None): + """ + Returns the confidence interval of the fitted parameters. + + Parameters + ---------- + alpha : float, optional + The `alpha` level for the confidence interval. + ie., The default `alpha` = .05 returns a 95% confidence interval. + cols : array-like, optional + `cols` specifies which confidence intervals to return + + Notes + ----- + The confidence interval is based on Student's t-distribution. + """ + # keep method for docstring for now + ci = super(RegressionResults, self).conf_int(alpha=alpha, cols=cols) + return ci + + + @cache_readonly + def nobs(self): + return float(self.model.wexog.shape[0]) + + @cache_readonly + def fittedvalues(self): + return self.model.predict(self.params, self.model.exog) + + @cache_readonly + def wresid(self): + return self.model.wendog - self.model.predict(self.params, + self.model.wexog) + + @cache_readonly + def resid(self): + return self.model.endog - self.model.predict(self.params, + self.model.exog) + + #TODO: fix writable example + @cache_writable() + def scale(self): + wresid = self.wresid + return np.dot(wresid, wresid) / self.df_resid + + @cache_readonly + def ssr(self): + wresid = self.wresid + return np.dot(wresid, wresid) + + @cache_readonly + def centered_tss(self): + model = self.model + weights = getattr(model, 'weights', None) + if weights is not None: + return np.sum(weights*(model.endog - np.average(model.endog, + weights=weights))**2) + else: # this is probably broken for GLS + centered_endog = model.wendog - model.wendog.mean() + return np.dot(centered_endog, centered_endog) + + @cache_readonly + def uncentered_tss(self): + wendog = self.model.wendog + return np.dot(wendog, wendog) + + @cache_readonly + def ess(self): + if self.k_constant: + return self.centered_tss - self.ssr + else: + return self.uncentered_tss - self.ssr + + @cache_readonly + def rsquared(self): + if self.k_constant: + return 1 - self.ssr/self.centered_tss + else: + return 1 - self.ssr/self.uncentered_tss + + @cache_readonly + def rsquared_adj(self): + return 1 - np.divide(self.nobs - self.k_constant, self.df_resid) * (1 - self.rsquared) + + @cache_readonly + def mse_model(self): + return self.ess/self.df_model + + @cache_readonly + def mse_resid(self): + return self.ssr/self.df_resid + + @cache_readonly + def mse_total(self): + if self.k_constant: + return self.centered_tss / (self.df_resid + self.df_model) + else: + return self.uncentered_tss / (self.df_resid + self.df_model) + + @cache_readonly + def fvalue(self): + if hasattr(self, 'cov_type') and self.cov_type != 'nonrobust': + # with heteroscedasticity or correlation robustness + k_params = self.normalized_cov_params.shape[0] + mat = np.eye(k_params) + const_idx = self.model.data.const_idx + # TODO: What if model includes implcit constant, e.g. all dummies but no constant regressor? + # TODO: Restats as LM test by projecting orthogonalizing to constant? + if self.model.data.k_constant == 1: + # if constant is implicit, return nan see #2444 + if const_idx is None: + return np.nan + + idx = lrange(k_params) + idx.pop(const_idx) + mat = mat[idx] # remove constant + ft = self.f_test(mat) + # using backdoor to set another attribute that we already have + self._cache['f_pvalue'] = ft.pvalue + return ft.fvalue + else: + # for standard homoscedastic case + return self.mse_model/self.mse_resid + + @cache_readonly + def f_pvalue(self): + return stats.f.sf(self.fvalue, self.df_model, self.df_resid) + + @cache_readonly + def bse(self): + return np.sqrt(np.diag(self.cov_params())) + + + @cache_readonly + def aic(self): + return -2 * self.llf + 2 * (self.df_model + self.k_constant) + + @cache_readonly + def bic(self): + return (-2 * self.llf + np.log(self.nobs) * (self.df_model + + self.k_constant)) + + @cache_readonly + def eigenvals(self): + """ + Return eigenvalues sorted in decreasing order. + """ + if self._wexog_singular_values is not None: + eigvals = self._wexog_singular_values ** 2 + else: + eigvals = np.linalg.linalg.eigvalsh(np.dot(self.model.wexog.T, self.model.wexog)) + return np.sort(eigvals)[::-1] + + @cache_readonly + def condition_number(self): + """ + Return condition number of exogenous matrix. + + Calculated as ratio of largest to smallest eigenvalue. + """ + eigvals = self.eigenvals + return np.sqrt(eigvals[0]/eigvals[-1]) + + #TODO: make these properties reset bse + def _HCCM(self, scale): + H = np.dot(self.model.pinv_wexog, + scale[:,None]*self.model.pinv_wexog.T) + return H + + + @cache_readonly + def cov_HC0(self): + """ + See statsmodels.RegressionResults + """ + + self.het_scale = self.wresid**2 + cov_HC0 = self._HCCM(self.het_scale) + return cov_HC0 + + + @cache_readonly + def cov_HC1(self): + """ + See statsmodels.RegressionResults + """ + + self.het_scale = self.nobs/(self.df_resid)*(self.wresid**2) + cov_HC1 = self._HCCM(self.het_scale) + return cov_HC1 + + + @cache_readonly + def cov_HC2(self): + """ + See statsmodels.RegressionResults + """ + + # probably could be optimized + h = np.diag(chain_dot(self.model.wexog, + self.normalized_cov_params, + self.model.wexog.T)) + self.het_scale = self.wresid**2/(1-h) + cov_HC2 = self._HCCM(self.het_scale) + return cov_HC2 + + + @cache_readonly + def cov_HC3(self): + """ + See statsmodels.RegressionResults + """ + h = np.diag(chain_dot(self.model.wexog, + self.normalized_cov_params, + self.model.wexog.T)) + self.het_scale=(self.wresid/(1-h))**2 + cov_HC3 = self._HCCM(self.het_scale) + return cov_HC3 + + + @cache_readonly + def HC0_se(self): + """ + See statsmodels.RegressionResults + """ + return np.sqrt(np.diag(self.cov_HC0)) + + + @cache_readonly + def HC1_se(self): + """ + See statsmodels.RegressionResults + """ + return np.sqrt(np.diag(self.cov_HC1)) + + + @cache_readonly + def HC2_se(self): + """ + See statsmodels.RegressionResults + """ + return np.sqrt(np.diag(self.cov_HC2)) + + + @cache_readonly + def HC3_se(self): + """ + See statsmodels.RegressionResults + """ + return np.sqrt(np.diag(self.cov_HC3)) + + + @cache_readonly + def resid_pearson(self): + """ + Residuals, normalized to have unit variance. + + Returns + ------- + An array wresid/sqrt(scale) + """ + + if not hasattr(self, 'resid'): + raise ValueError('Method requires residuals.') + eps = np.finfo(self.wresid.dtype).eps + if np.sqrt(self.scale) < 10 * eps * self.model.endog.mean(): + # don't divide if scale is zero close to numerical precision + from warnings import warn + warn("All residuals are 0, cannot compute normed residuals.", + RuntimeWarning) + return self.wresid + else: + return self.wresid / np.sqrt(self.scale) + + def _is_nested(self, restricted): + """ + Parameters + ---------- + restricted : Result instance + The restricted model is assumed to be nested in the current + model. The result instance of the restricted model is required to + have two attributes, residual sum of squares, `ssr`, residual + degrees of freedom, `df_resid`. + + Returns + ------- + nested : bool + True if nested, otherwise false + + Notes + ----- + A most nests another model if the regressors in the smaller model are spanned + by the regressors in the larger model and the regressand is identical. + """ + + if self.model.nobs != restricted.model.nobs: + return False + + full_rank = self.model.rank + restricted_rank = restricted.model.rank + if full_rank <= restricted_rank: + return False + + restricted_exog = restricted.model.wexog + full_wresid = self.wresid + + scores = restricted_exog * full_wresid[:,None] + score_l2 = np.sqrt(np.mean(scores.mean(0) ** 2)) + # TODO: Could be improved, and may fail depending on scale of regressors + return np.allclose(score_l2,0) + + + def compare_lm_test(self, restricted, demean=True, use_lr=False): + """Use Lagrange Multiplier test to test whether restricted model is correct + + Parameters + ---------- + restricted : Result instance + The restricted model is assumed to be nested in the current + model. The result instance of the restricted model is required to + have two attributes, residual sum of squares, `ssr`, residual + degrees of freedom, `df_resid`. + + demean : bool + Flag indicating whether the demean the scores based on the residuals + from the restricted model. If True, the covariance of the scores + are used and the LM test is identical to the large sample version + of the LR test. + + Returns + ------- + lm_value : float + test statistic, chi2 distributed + p_value : float + p-value of the test statistic + df_diff : int + degrees of freedom of the restriction, i.e. difference in df between + models + + Notes + ----- + TODO: explain LM text + """ + import statsmodels.stats.sandwich_covariance as sw + from numpy.linalg import inv + + if not self._is_nested(restricted): + raise ValueError("Restricted model is not nested by full model.") + + wresid = restricted.wresid + wexog = self.model.wexog + scores = wexog * wresid[:,None] + + n = self.nobs + df_full = self.df_resid + df_restr = restricted.df_resid + df_diff = (df_restr - df_full) + + s = scores.mean(axis=0) + if use_lr: + scores = wexog * self.wresid[:,None] + demean = False + + if demean: + scores = scores - scores.mean(0)[None,:] + # Form matters here. If homoskedastics can be sigma^2 (X'X)^-1 + # If Heteroskedastic then the form below is fine + # If HAC then need to use HAC + # If Cluster, shoudl use cluster + + cov_type = getattr(self, 'cov_type', 'nonrobust') + if cov_type == 'nonrobust': + sigma2 = np.mean(wresid**2) + XpX = np.dot(wexog.T,wexog) / n + Sinv = inv(sigma2 * XpX) + elif cov_type in ('HC0', 'HC1', 'HC2', 'HC3'): + Sinv = inv(np.dot(scores.T,scores) / n) + elif cov_type == 'HAC': + print("HAC") + maxlags = self.cov_kwds['maxlags'] + Sinv = inv(sw.S_hac_simple(scores, maxlags) / n) + elif cov_type == 'cluster': + #cluster robust standard errors + groups = self.cov_kwds['groups'] + # TODO: Might need demean option in S_crosssection by group? + Sinv = inv(sw.S_crosssection(scores, groups)) + else: + raise ValueError('Only nonrobust, HC, HAC and cluster are ' + + 'currently connected') + + lm_value = n * chain_dot(s,Sinv,s.T) + p_value = stats.chi2.sf(lm_value, df_diff) + return lm_value, p_value, df_diff + + + + def compare_f_test(self, restricted): + """use F test to test whether restricted model is correct + + Parameters + ---------- + restricted : Result instance + The restricted model is assumed to be nested in the current + model. The result instance of the restricted model is required to + have two attributes, residual sum of squares, `ssr`, residual + degrees of freedom, `df_resid`. + + Returns + ------- + f_value : float + test statistic, F distributed + p_value : float + p-value of the test statistic + df_diff : int + degrees of freedom of the restriction, i.e. difference in df between + models + + Notes + ----- + See mailing list discussion October 17, + + This test compares the residual sum of squares of the two models. + This is not a valid test, if there is unspecified heteroscedasticity + or correlation. This method will issue a warning if this is detected + but still return the results under the assumption of homoscedasticity + and no autocorrelation (sphericity). + + """ + + has_robust1 = getattr(self, 'cov_type', 'nonrobust') != 'nonrobust' + has_robust2 = (getattr(restricted, 'cov_type', 'nonrobust') != + 'nonrobust') + + if has_robust1 or has_robust2: + warnings.warn('F test for comparison is likely invalid with ' + + 'robust covariance, proceeding anyway', + InvalidTestWarning) + + ssr_full = self.ssr + ssr_restr = restricted.ssr + df_full = self.df_resid + df_restr = restricted.df_resid + + df_diff = (df_restr - df_full) + f_value = (ssr_restr - ssr_full) / df_diff / ssr_full * df_full + p_value = stats.f.sf(f_value, df_diff, df_full) + return f_value, p_value, df_diff + + def compare_lr_test(self, restricted, large_sample=False): + """ + Likelihood ratio test to test whether restricted model is correct + + Parameters + ---------- + restricted : Result instance + The restricted model is assumed to be nested in the current model. + The result instance of the restricted model is required to have two + attributes, residual sum of squares, `ssr`, residual degrees of + freedom, `df_resid`. + + large_sample : bool + Flag indicating whether to use a heteroskedasticity robust version + of the LR test, which is a modified LM test. + + Returns + ------- + lr_stat : float + likelihood ratio, chisquare distributed with df_diff degrees of + freedom + p_value : float + p-value of the test statistic + df_diff : int + degrees of freedom of the restriction, i.e. difference in df between + models + + Notes + ----- + + The exact likelihood ratio is valid for homoskedastic data, and is + defined as + + .. math:: D=-2\\log\\left(\\frac{\\mathcal{L}_{null}} + {\\mathcal{L}_{alternative}}\\right) + + where :math:`\mathcal{L}` is the likelihood of the model. With :math:`D` + distributed as chisquare with df equal to difference in number of + parameters or equivalently difference in residual degrees of freedom. + + The large sample version of the likelihood ratio is defined as + + .. math:: D=n s^{\\prime}S^{-1}s + + where :math:`s=n^{-1}\\sum_{i=1}^{n} s_{i}` + + .. math:: s_{i} = x_{i,alternative} \\epsilon_{i,null} + + is the average score of the model evaluated using the residuals from + null model and the regressors from the alternative model and :math:`S` + is the covariance of the scores, :math:`s_{i}`. The covariance of the + scores is estimated using the same estimator as in the alternative model. + + This test compares the loglikelihood of the two models. + This may not be a valid test, if there is unspecified heteroscedasticity + or correlation. This method will issue a warning if this is detected + but still return the results without taking unspecified + heteroscedasticity or correlation into account. + + This test compares the loglikelihood of the two models. + This may not be a valid test, if there is unspecified heteroscedasticity + or correlation. This method will issue a warning if this is detected + but still return the results without taking unspecified + heteroscedasticity or correlation into account. + + is the average score of the model evaluated using the residuals from + null model and the regressors from the alternative model and :math:`S` + is the covariance of the scores, :math:`s_{i}`. The covariance of the + scores is estimated using the same estimator as in the alternative model. + + TODO: put into separate function, needs tests + """ + + # See mailing list discussion October 17, + + if large_sample: + return self.compare_lm_test(restricted, use_lr=True) + + has_robust1 = (getattr(self, 'cov_type', 'nonrobust') != 'nonrobust') + has_robust2 = (getattr(restricted, 'cov_type', 'nonrobust') != + 'nonrobust') + + if has_robust1 or has_robust2: + warnings.warn('Likelihood Ratio test is likely invalid with ' + + 'robust covariance, proceeding anyway', + InvalidTestWarning) + + llf_full = self.llf + llf_restr = restricted.llf + df_full = self.df_resid + df_restr = restricted.df_resid + + lrdf = (df_restr - df_full) + lrstat = -2*(llf_restr - llf_full) + lr_pvalue = stats.chi2.sf(lrstat, lrdf) + + return lrstat, lr_pvalue, lrdf + + + def get_robustcov_results(self, cov_type='HC1', use_t=None, **kwds): + """create new results instance with robust covariance as default + + Parameters + ---------- + cov_type : string + the type of robust sandwich estimator to use. see Notes below + use_t : bool + If true, then the t distribution is used for inference. + If false, then the normal distribution is used. + If `use_t` is None, then an appropriate default is used, which is + `true` if the cov_type is nonrobust, and `false` in all other cases. + kwds : depends on cov_type + Required or optional arguments for robust covariance calculation. + see Notes below + + Returns + ------- + results : results instance + This method creates a new results instance with the requested + robust covariance as the default covariance of the parameters. + Inferential statistics like p-values and hypothesis tests will be + based on this covariance matrix. + + Notes + ----- + The following covariance types and required or optional arguments are + currently available: + + - 'fixed scale' and optional keyword argument 'scale' which uses + a predefined scale estimate with default equal to one. + - 'HC0', 'HC1', 'HC2', 'HC3' and no keyword arguments: + heteroscedasticity robust covariance + - 'HAC' and keywords + + - `maxlag` integer (required) : number of lags to use + - `kernel` string (optional) : kernel, default is Bartlett + - `use_correction` bool (optional) : If true, use small sample + correction + + - 'cluster' and required keyword `groups`, integer group indicator + + - `groups` array_like, integer (required) : + index of clusters or groups + - `use_correction` bool (optional) : + If True the sandwich covariance is calulated with a small + sample correction. + If False the the sandwich covariance is calulated without + small sample correction. + - `df_correction` bool (optional) + If True (default), then the degrees of freedom for the + inferential statistics and hypothesis tests, such as + pvalues, f_pvalue, conf_int, and t_test and f_test, are + based on the number of groups minus one instead of the + total number of observations minus the number of explanatory + variables. `df_resid` of the results instance is adjusted. + If False, then `df_resid` of the results instance is not + adjusted. + + - 'hac-groupsum' Driscoll and Kraay, heteroscedasticity and + autocorrelation robust standard errors in panel data + keywords + + - `time` array_like (required) : index of time periods + - `maxlag` integer (required) : number of lags to use + - `kernel` string (optional) : kernel, default is Bartlett + - `use_correction` False or string in ['hac', 'cluster'] (optional) : + If False the the sandwich covariance is calulated without + small sample correction. + If `use_correction = 'cluster'` (default), then the same + small sample correction as in the case of 'covtype='cluster'' + is used. + - `df_correction` bool (optional) + adjustment to df_resid, see cov_type 'cluster' above + #TODO: we need more options here + + - 'hac-panel' heteroscedasticity and autocorrelation robust standard + errors in panel data. + The data needs to be sorted in this case, the time series for + each panel unit or cluster need to be stacked. The membership to + a timeseries of an individual or group can be either specified by + group indicators or by increasing time periods. + + keywords + + - either `groups` or `time` : array_like (required) + `groups` : indicator for groups + `time` : index of time periods + - `maxlag` integer (required) : number of lags to use + - `kernel` string (optional) : kernel, default is Bartlett + - `use_correction` False or string in ['hac', 'cluster'] (optional) : + If False the the sandwich covariance is calulated without + small sample correction. + - `df_correction` bool (optional) + adjustment to df_resid, see cov_type 'cluster' above + #TODO: we need more options here + + Reminder: + `use_correction` in "hac-groupsum" and "hac-panel" is not bool, + needs to be in [False, 'hac', 'cluster'] + + TODO: Currently there is no check for extra or misspelled keywords, + except in the case of cov_type `HCx` + + """ + + import statsmodels.stats.sandwich_covariance as sw + + #normalize names + if cov_type == 'nw-panel': + cov_type = 'hac-panel' + if cov_type == 'nw-groupsum': + cov_type = 'hac-groupsum' + if 'kernel' in kwds: + kwds['weights_func'] = kwds.pop('kernel') + + # TODO: make separate function that returns a robust cov plus info + use_self = kwds.pop('use_self', False) + if use_self: + res = self + else: + res = self.__class__(self.model, self.params, + normalized_cov_params=self.normalized_cov_params, + scale=self.scale) + + res.cov_type = cov_type + # use_t might already be defined by the class, and already set + if use_t is None: + use_t = self.use_t + res.cov_kwds = {'use_t':use_t} # store for information + res.use_t = use_t + + adjust_df = False + if cov_type in ['cluster', 'hac-panel', 'hac-groupsum']: + df_correction = kwds.get('df_correction', None) + # TODO: check also use_correction, do I need all combinations? + if df_correction is not False: # i.e. in [None, True]: + # user didn't explicitely set it to False + adjust_df = True + + res.cov_kwds['adjust_df'] = adjust_df + + # verify and set kwds, and calculate cov + # TODO: this should be outsourced in a function so we can reuse it in + # other models + # TODO: make it DRYer repeated code for checking kwds + if cov_type in ['fixed scale', 'fixed_scale']: + res.cov_kwds['description'] = ('Standard Errors are based on ' + + 'fixed scale') + + res.cov_kwds['scale'] = scale = kwds.get('scale', 1.) + res.cov_params_default = scale * res.normalized_cov_params + elif cov_type.upper() in ('HC0', 'HC1', 'HC2', 'HC3'): + if kwds: + raise ValueError('heteroscedasticity robust covarians ' + + 'does not use keywords') + res.cov_kwds['description'] = ('Standard Errors are heteroscedasticity ' + + 'robust ' + '(' + cov_type + ')') + # TODO cannot access cov without calling se first + getattr(self, cov_type.upper() + '_se') + res.cov_params_default = getattr(self, 'cov_' + cov_type.upper()) + elif cov_type.lower() == 'hac': + maxlags = kwds['maxlags'] # required?, default in cov_hac_simple + res.cov_kwds['maxlags'] = maxlags + weights_func = kwds.get('weights_func', sw.weights_bartlett) + res.cov_kwds['weights_func'] = weights_func + use_correction = kwds.get('use_correction', False) + res.cov_kwds['use_correction'] = use_correction + res.cov_kwds['description'] = ('Standard Errors are heteroscedasticity ' + + 'and autocorrelation robust (HAC) using %d lags and %s small ' + + 'sample correction') % (maxlags, ['without', 'with'][use_correction]) + + res.cov_params_default = sw.cov_hac_simple(self, nlags=maxlags, + weights_func=weights_func, + use_correction=use_correction) + elif cov_type.lower() == 'cluster': + #cluster robust standard errors, one- or two-way + groups = kwds['groups'] + if not hasattr(groups, 'shape'): + groups = np.asarray(groups).T + + if groups.ndim >= 2: + groups = groups.squeeze() + + res.cov_kwds['groups'] = groups + use_correction = kwds.get('use_correction', True) + res.cov_kwds['use_correction'] = use_correction + if groups.ndim == 1: + if adjust_df: + # need to find number of groups + # duplicate work + self.n_groups = n_groups = len(np.unique(groups)) + res.cov_params_default = sw.cov_cluster(self, groups, + use_correction=use_correction) + + elif groups.ndim == 2: + if hasattr(groups, 'values'): + groups = groups.values + + if adjust_df: + # need to find number of groups + # duplicate work + n_groups0 = len(np.unique(groups[:,0])) + n_groups1 = len(np.unique(groups[:, 1])) + self.n_groups = (n_groups0, n_groups1) + n_groups = min(n_groups0, n_groups1) # use for adjust_df + + # Note: sw.cov_cluster_2groups has 3 returns + res.cov_params_default = sw.cov_cluster_2groups(self, groups, + use_correction=use_correction)[0] + else: + raise ValueError('only two groups are supported') + res.cov_kwds['description'] = ('Standard Errors are robust to' + + 'cluster correlation ' + '(' + cov_type + ')') + + elif cov_type.lower() == 'hac-panel': + #cluster robust standard errors + res.cov_kwds['time'] = time = kwds.get('time', None) + res.cov_kwds['groups'] = groups = kwds.get('groups', None) + #TODO: nlags is currently required + #nlags = kwds.get('nlags', True) + #res.cov_kwds['nlags'] = nlags + #TODO: `nlags` or `maxlags` + res.cov_kwds['maxlags'] = maxlags = kwds['maxlags'] + use_correction = kwds.get('use_correction', 'hac') + res.cov_kwds['use_correction'] = use_correction + weights_func = kwds.get('weights_func', sw.weights_bartlett) + res.cov_kwds['weights_func'] = weights_func + if groups is not None: + tt = (np.nonzero(groups[:-1] != groups[1:])[0] + 1).tolist() + nobs_ = len(groups) + elif time is not None: + # TODO: clumsy time index in cov_nw_panel + tt = (np.nonzero(time[1:] < time[:-1])[0] + 1).tolist() + nobs_ = len(time) + else: + raise ValueError('either time or groups needs to be given') + groupidx = lzip([0] + tt, tt + [nobs_]) + self.n_groups = n_groups = len(groupidx) + res.cov_params_default = sw.cov_nw_panel(self, maxlags, groupidx, + weights_func=weights_func, + use_correction=use_correction) + res.cov_kwds['description'] = ('Standard Errors are robust to' + + 'cluster correlation ' + '(' + cov_type + ')') + elif cov_type.lower() == 'hac-groupsum': + # Driscoll-Kraay standard errors + res.cov_kwds['time'] = time = kwds['time'] + #TODO: nlags is currently required + #nlags = kwds.get('nlags', True) + #res.cov_kwds['nlags'] = nlags + #TODO: `nlags` or `maxlags` + res.cov_kwds['maxlags'] = maxlags = kwds['maxlags'] + use_correction = kwds.get('use_correction', 'cluster') + res.cov_kwds['use_correction'] = use_correction + weights_func = kwds.get('weights_func', sw.weights_bartlett) + res.cov_kwds['weights_func'] = weights_func + if adjust_df: + # need to find number of groups + tt = (np.nonzero(time[1:] < time[:-1])[0] + 1) + self.n_groups = n_groups = len(tt) + 1 + res.cov_params_default = sw.cov_nw_groupsum(self, maxlags, time, + weights_func=weights_func, + use_correction=use_correction) + res.cov_kwds['description'] = ( + 'Driscoll and Kraay Standard Errors are robust to ' + + 'cluster correlation ' + '(' + cov_type + ')') + else: + raise ValueError('cov_type not recognized. See docstring for ' + + 'available options and spelling') + + if adjust_df: + # Note: df_resid is used for scale and others, add new attribute + res.df_resid_inference = n_groups - 1 + + return res + + + def get_prediction(self, exog=None, transform=True, weights=None, + row_labels=None, **kwds): + + return pred.get_prediction(self, exog=exog, transform=transform, + weights=weights, row_labels=row_labels, **kwds) + + get_prediction.__doc__ = pred.get_prediction.__doc__ + + + def summary(self, yname=None, xname=None, title=None, alpha=.05): + """Summarize the Regression Results + + Parameters + ----------- + yname : string, optional + Default is `y` + xname : list of strings, optional + Default is `var_##` for ## in p the number of regressors + title : string, optional + Title for the top table. If not None, then this replaces the + default title + alpha : float + significance level for the confidence intervals + + Returns + ------- + smry : Summary instance + this holds the summary tables and text, which can be printed or + converted to various output formats. + + See Also + -------- + statsmodels.iolib.summary.Summary : class to hold summary + results + + """ + + #TODO: import where we need it (for now), add as cached attributes + from statsmodels.stats.stattools import (jarque_bera, + omni_normtest, durbin_watson) + jb, jbpv, skew, kurtosis = jarque_bera(self.wresid) + omni, omnipv = omni_normtest(self.wresid) + + eigvals = self.eigenvals + condno = self.condition_number + + self.diagn = dict(jb=jb, jbpv=jbpv, skew=skew, kurtosis=kurtosis, + omni=omni, omnipv=omnipv, condno=condno, + mineigval=eigvals[-1]) + + #TODO not used yet + #diagn_left_header = ['Models stats'] + #diagn_right_header = ['Residual stats'] + + #TODO: requiring list/iterable is a bit annoying + #need more control over formatting + #TODO: default don't work if it's not identically spelled + + top_left = [('Dep. Variable:', None), + ('Model:', None), + ('Method:', ['Least Squares']), + ('Date:', None), + ('Time:', None), + ('No. Observations:', None), + ('Df Residuals:', None), #[self.df_resid]), #TODO: spelling + ('Df Model:', None), #[self.df_model]) + ] + + if hasattr(self, 'cov_type'): + top_left.append(('Covariance Type:', [self.cov_type])) + + top_right = [('R-squared:', ["%#8.3f" % self.rsquared]), + ('Adj. R-squared:', ["%#8.3f" % self.rsquared_adj]), + ('F-statistic:', ["%#8.4g" % self.fvalue] ), + ('Prob (F-statistic):', ["%#6.3g" % self.f_pvalue]), + ('Log-Likelihood:', None), #["%#6.4g" % self.llf]), + ('AIC:', ["%#8.4g" % self.aic]), + ('BIC:', ["%#8.4g" % self.bic]) + ] + + diagn_left = [('Omnibus:', ["%#6.3f" % omni]), + ('Prob(Omnibus):', ["%#6.3f" % omnipv]), + ('Skew:', ["%#6.3f" % skew]), + ('Kurtosis:', ["%#6.3f" % kurtosis]) + ] + + diagn_right = [('Durbin-Watson:', ["%#8.3f" % durbin_watson(self.wresid)]), + ('Jarque-Bera (JB):', ["%#8.3f" % jb]), + ('Prob(JB):', ["%#8.3g" % jbpv]), + ('Cond. No.', ["%#8.3g" % condno]) + ] + + + if title is None: + title = self.model.__class__.__name__ + ' ' + "Regression Results" + + #create summary table instance + from statsmodels.iolib.summary import Summary + smry = Summary() + smry.add_table_2cols(self, gleft=top_left, gright=top_right, + yname=yname, xname=xname, title=title) + smry.add_table_params(self, yname=yname, xname=xname, alpha=alpha, + use_t=self.use_t) + + smry.add_table_2cols(self, gleft=diagn_left, gright=diagn_right, + yname=yname, xname=xname, + title="") + + #add warnings/notes, added to text format only + etext =[] + if hasattr(self, 'cov_type'): + etext.append(self.cov_kwds['description']) + if self.model.exog.shape[0] < self.model.exog.shape[1]: + wstr = "The input rank is higher than the number of observations." + etext.append(wstr) + if eigvals[-1] < 1e-10: + wstr = "The smallest eigenvalue is %6.3g. This might indicate " + wstr += "that there are\n" + wstr += "strong multicollinearity problems or that the design " + wstr += "matrix is singular." + wstr = wstr % eigvals[-1] + etext.append(wstr) + elif condno > 1000: #TODO: what is recommended + wstr = "The condition number is large, %6.3g. This might " + wstr += "indicate that there are\n" + wstr += "strong multicollinearity or other numerical " + wstr += "problems." + wstr = wstr % condno + etext.append(wstr) + + if etext: + etext = ["[{0}] {1}".format(i + 1, text) for i, text in enumerate(etext)] + etext.insert(0, "Warnings:") + smry.add_extra_txt(etext) + + return smry + + #top = summary_top(self, gleft=topleft, gright=diagn_left, #[], + # yname=yname, xname=xname, + # title=self.model.__class__.__name__ + ' ' + + # "Regression Results") + #par = summary_params(self, yname=yname, xname=xname, alpha=.05, + # use_t=False) + # + #diagn = summary_top(self, gleft=diagn_left, gright=diagn_right, + # yname=yname, xname=xname, + # title="Linear Model") + # + #return summary_return([top, par, diagn], return_fmt=return_fmt) + + def summary2(self, yname=None, xname=None, title=None, alpha=.05, + float_format="%.4f"): + """Experimental summary function to summarize the regression results + + Parameters + ----------- + xname : List of strings of length equal to the number of parameters + Names of the independent variables (optional) + yname : string + Name of the dependent variable (optional) + title : string, optional + Title for the top table. If not None, then this replaces the + default title + alpha : float + significance level for the confidence intervals + float_format: string + print format for floats in parameters summary + + Returns + ------- + smry : Summary instance + this holds the summary tables and text, which can be printed or + converted to various output formats. + + See Also + -------- + statsmodels.iolib.summary.Summary : class to hold summary + results + + """ + # Diagnostics + from statsmodels.stats.stattools import (jarque_bera, + omni_normtest, + durbin_watson) + + from statsmodels.compat.collections import OrderedDict + jb, jbpv, skew, kurtosis = jarque_bera(self.wresid) + omni, omnipv = omni_normtest(self.wresid) + dw = durbin_watson(self.wresid) + eigvals = self.eigenvals + condno = self.condition_number + eigvals = np.sort(eigvals) #in increasing order + diagnostic = OrderedDict([ + ('Omnibus:', "%.3f" % omni), + ('Prob(Omnibus):', "%.3f" % omnipv), + ('Skew:', "%.3f" % skew), + ('Kurtosis:', "%.3f" % kurtosis), + ('Durbin-Watson:', "%.3f" % dw), + ('Jarque-Bera (JB):', "%.3f" % jb), + ('Prob(JB):', "%.3f" % jbpv), + ('Condition No.:', "%.0f" % condno) + ]) + + # Summary + from statsmodels.iolib import summary2 + smry = summary2.Summary() + smry.add_base(results=self, alpha=alpha, float_format=float_format, + xname=xname, yname=yname, title=title) + smry.add_dict(diagnostic) + + # Warnings + if eigvals[-1] < 1e-10: + warn = "The smallest eigenvalue is %6.3g. This might indicate that\ + there are strong multicollinearity problems or that the design\ + matrix is singular." % eigvals[-1] + smry.add_text(warn) + if condno > 1000: + warn = "* The condition number is large (%.g). This might indicate \ + strong multicollinearity or other numerical problems." % condno + smry.add_text(warn) + + return smry + + +class OLSResults(RegressionResults): + """ + Results class for for an OLS model. + + Most of the methods and attributes are inherited from RegressionResults. + The special methods that are only available for OLS are: + + - get_influence + - outlier_test + - el_test + - conf_int_el + + See Also + -------- + RegressionResults + + """ + + def get_influence(self): + """ + get an instance of Influence with influence and outlier measures + + Returns + ------- + infl : Influence instance + the instance has methods to calculate the main influence and + outlier measures for the OLS regression + + See also + -------- + statsmodels.stats.outliers_influence.OLSInfluence + """ + from statsmodels.stats.outliers_influence import OLSInfluence + return OLSInfluence(self) + + def outlier_test(self, method='bonf', alpha=.05): + """ + Test observations for outliers according to method + + Parameters + ---------- + method : str + + - `bonferroni` : one-step correction + - `sidak` : one-step correction + - `holm-sidak` : + - `holm` : + - `simes-hochberg` : + - `hommel` : + - `fdr_bh` : Benjamini/Hochberg + - `fdr_by` : Benjamini/Yekutieli + + See `statsmodels.stats.multitest.multipletests` for details. + alpha : float + familywise error rate + + Returns + ------- + table : ndarray or DataFrame + Returns either an ndarray or a DataFrame if labels is not None. + Will attempt to get labels from model_results if available. The + columns are the Studentized residuals, the unadjusted p-value, + and the corrected p-value according to method. + + Notes + ----- + The unadjusted p-value is stats.t.sf(abs(resid), df) where + df = df_resid - 1. + """ + from statsmodels.stats.outliers_influence import outlier_test + return outlier_test(self, method, alpha) + + def el_test(self, b0_vals, param_nums, return_weights=0, + ret_params=0, method='nm', + stochastic_exog=1, return_params=0): + """ + Tests single or joint hypotheses of the regression parameters using + Empirical Likelihood. + + Parameters + ---------- + + b0_vals : 1darray + The hypothesized value of the parameter to be tested + + param_nums : 1darray + The parameter number to be tested + + print_weights : bool + If true, returns the weights that optimize the likelihood + ratio at b0_vals. Default is False + + ret_params : bool + If true, returns the parameter vector that maximizes the likelihood + ratio at b0_vals. Also returns the weights. Default is False + + method : string + Can either be 'nm' for Nelder-Mead or 'powell' for Powell. The + optimization method that optimizes over nuisance parameters. + Default is 'nm' + + stochastic_exog : bool + When TRUE, the exogenous variables are assumed to be stochastic. + When the regressors are nonstochastic, moment conditions are + placed on the exogenous variables. Confidence intervals for + stochastic regressors are at least as large as non-stochastic + regressors. Default = TRUE + + Returns + ------- + + res : tuple + The p-value and -2 times the log-likelihood ratio for the + hypothesized values. + + Examples + -------- + >>> import statsmodels.api as sm + >>> data = sm.datasets.stackloss.load() + >>> endog = data.endog + >>> exog = sm.add_constant(data.exog) + >>> model = sm.OLS(endog, exog) + >>> fitted = model.fit() + >>> fitted.params + >>> array([-39.91967442, 0.7156402 , 1.29528612, -0.15212252]) + >>> fitted.rsquared + >>> 0.91357690446068196 + >>> # Test that the slope on the first variable is 0 + >>> fitted.test_beta([0], [1]) + >>> (1.7894660442330235e-07, 27.248146353709153) + """ + params = np.copy(self.params) + opt_fun_inst = _ELRegOpts() # to store weights + if len(param_nums) == len(params): + llr = opt_fun_inst._opt_nuis_regress([], + param_nums=param_nums, + endog=self.model.endog, + exog=self.model.exog, + nobs=self.model.nobs, + nvar=self.model.exog.shape[1], + params=params, + b0_vals=b0_vals, + stochastic_exog=stochastic_exog) + pval = 1 - stats.chi2.cdf(llr, len(param_nums)) + if return_weights: + return llr, pval, opt_fun_inst.new_weights + else: + return llr, pval + x0 = np.delete(params, param_nums) + args = (param_nums, self.model.endog, self.model.exog, + self.model.nobs, self.model.exog.shape[1], params, + b0_vals, stochastic_exog) + if method == 'nm': + llr = optimize.fmin(opt_fun_inst._opt_nuis_regress, x0, maxfun=10000, + maxiter=10000, full_output=1, disp=0, + args=args)[1] + if method == 'powell': + llr = optimize.fmin_powell(opt_fun_inst._opt_nuis_regress, x0, + full_output=1, disp=0, + args=args)[1] + + pval = 1 - stats.chi2.cdf(llr, len(param_nums)) + if ret_params: + return llr, pval, opt_fun_inst.new_weights, opt_fun_inst.new_params + elif return_weights: + return llr, pval, opt_fun_inst.new_weights + else: + return llr, pval + + def conf_int_el(self, param_num, sig=.05, upper_bound=None, lower_bound=None, + method='nm', stochastic_exog=1): + """ + Computes the confidence interval for the parameter given by param_num + using Empirical Likelihood + + Parameters + ---------- + + param_num : float + The parameter for which the confidence interval is desired + + sig : float + The significance level. Default is .05 + + upper_bound : float + The maximum value the upper limit can be. Default is the + 99.9% confidence value under OLS assumptions. + + lower_bound : float + The minimum value the lower limit can be. Default is the 99.9% + confidence value under OLS assumptions. + + method : string + Can either be 'nm' for Nelder-Mead or 'powell' for Powell. The + optimization method that optimizes over nuisance parameters. + Default is 'nm' + + Returns + ------- + + ci : tuple + The confidence interval + + See Also + -------- + + el_test + + Notes + ----- + + This function uses brentq to find the value of beta where + test_beta([beta], param_num)[1] is equal to the critical + value. + + The function returns the results of each iteration of brentq at + each value of beta. + + The current function value of the last printed optimization + should be the critical value at the desired significance level. + For alpha=.05, the value is 3.841459. + + To ensure optimization terminated successfully, it is suggested to + do el_test([lower_limit], [param_num]) + + If the optimization does not terminate successfully, consider switching + optimization algorithms. + + If optimization is still not successful, try changing the values of + start_int_params. If the current function value repeatedly jumps + from a number between 0 and the critical value and a very large number + (>50), the starting parameters of the interior minimization need + to be changed. + """ + r0 = stats.chi2.ppf(1 - sig, 1) + if upper_bound is None: + upper_bound = self.conf_int(.01)[param_num][1] + if lower_bound is None: + lower_bound = self.conf_int(.01)[param_num][0] + f = lambda b0: self.el_test(np.array([b0]), np.array([param_num]), + method=method, + stochastic_exog=stochastic_exog)[0]-r0 + lowerl = optimize.brenth(f, lower_bound, + self.params[param_num]) + upperl = optimize.brenth(f, self.params[param_num], + upper_bound) + # ^ Seems to be faster than brentq in most cases + return (lowerl, upperl) + + +class RegressionResultsWrapper(wrap.ResultsWrapper): + + _attrs = { + 'chisq' : 'columns', + 'sresid' : 'rows', + 'weights' : 'rows', + 'wresid' : 'rows', + 'bcov_unscaled' : 'cov', + 'bcov_scaled' : 'cov', + 'HC0_se' : 'columns', + 'HC1_se' : 'columns', + 'HC2_se' : 'columns', + 'HC3_se' : 'columns', + 'norm_resid' : 'rows', + } + + _wrap_attrs = wrap.union_dicts(base.LikelihoodResultsWrapper._attrs, + _attrs) + + _methods = {} + + _wrap_methods = wrap.union_dicts( + base.LikelihoodResultsWrapper._wrap_methods, + _methods) + +wrap.populate_wrapper(RegressionResultsWrapper, + RegressionResults) + + +if __name__ == "__main__": + import statsmodels.api as sm + data = sm.datasets.longley.load() + data.exog = add_constant(data.exog, prepend=False) + ols_results = OLS(data.endog, data.exog).fit() #results + gls_results = GLS(data.endog, data.exog).fit() #results + print(ols_results.summary()) + tables = ols_results.summary(returns='tables') + csv = ols_results.summary(returns='csv') +""" + Summary of Regression Results +======================================= +| Dependent Variable: ['y']| +| Model: OLS| +| Method: Least Squares| +| Date: Tue, 29 Jun 2010| +| Time: 22:32:21| +| # obs: 16.0| +| Df residuals: 9.0| +| Df model: 6.0| +=========================================================================== +| coefficient std. error t-statistic prob.| +--------------------------------------------------------------------------- +| x1 15.0619 84.9149 0.1774 0.8631| +| x2 -0.0358 0.0335 -1.0695 0.3127| +| x3 -2.0202 0.4884 -4.1364 0.002535| +| x4 -1.0332 0.2143 -4.8220 0.0009444| +| x5 -0.0511 0.2261 -0.2261 0.8262| +| x6 1829.1515 455.4785 4.0159 0.003037| +| const -3482258.6346 890420.3836 -3.9108 0.003560| +=========================================================================== +| Models stats Residual stats | +--------------------------------------------------------------------------- +| R-squared: 0.995479 Durbin-Watson: 2.55949 | +| Adjusted R-squared: 0.992465 Omnibus: 0.748615 | +| F-statistic: 330.285 Prob(Omnibus): 0.687765 | +| Prob (F-statistic): 4.98403e-10 JB: 0.352773 | +| Log likelihood: -109.617 Prob(JB): 0.838294 | +| AIC criterion: 233.235 Skew: 0.419984 | +| BIC criterion: 238.643 Kurtosis: 2.43373 | +--------------------------------------------------------------------------- +""" + diff --git a/statsmodels/regression/mixed_linear_model.py b/statsmodels/regression/mixed_linear_model.py new file mode 100644 index 0000000..87b57bb --- /dev/null +++ b/statsmodels/regression/mixed_linear_model.py @@ -0,0 +1,2582 @@ +""" +Linear mixed effects models are regression models for dependent data. +They can be used to estimate regression relationships involving both +means and variances. + +These models are also known as multilevel linear models, and +hierachical linear models. + +The MixedLM class fits linear mixed effects models to data, and +provides support for some common post-estimation tasks. This is a +group-based implementation that is most efficient for models in which +the data can be partitioned into independent groups. Some models with +crossed effects can be handled by specifying a model with a single +group. + +The data are partitioned into disjoint groups. The probability model +for group i is: + +Y = X*beta + Z*gamma + epsilon + +where + +* n_i is the number of observations in group i + +* Y is a n_i dimensional response vector (called endog in MixedLM) + +* X is a n_i x k_fe dimensional design matrix for the fixed effects + (called exog in MixedLM) + +* beta is a k_fe-dimensional vector of fixed effects parameters + (called fe_params in MixedLM) + +* Z is a design matrix for the random effects with n_i rows (called + exog_re in MixedLM). The number of columns in Z can vary by group + as discussed below. + +* gamma is a random vector with mean 0. The covariance matrix for the + first `k_re` elements of `gamma` (called cov_re in MixedLM) is + common to all groups. The remaining elements of `gamma` are + variance components as discussed in more detail below. Each group + receives its own independent realization of gamma. + +* epsilon is a n_i dimensional vector of iid normal + errors with mean 0 and variance sigma^2; the epsilon + values are independent both within and between groups + +Y, X and Z must be entirely observed. beta, Psi, and sigma^2 are +estimated using ML or REML estimation, and gamma and epsilon are +random so define the probability model. + +The marginal mean structure is E[Y | X, Z] = X*beta. If only the mean +structure is of interest, GEE is an alternative to using linear mixed +models. + +Two types of random effects are supported. Standard random effects +are correlated with each other in arbitary ways. Every group has the +same number (`k_re`) of standard random effects, with the same joint +distribution (but with independent realizations across the groups). + +Variance components are uncorrelated with each other, and with the +standard random effects. Each variance component has mean zero, and +all realizations of a given variance component have the same variance +parameter. The number of realized variance components per variance +parameter can differ across the groups. + +The primary reference for the implementation details is: + +MJ Lindstrom, DM Bates (1988). "Newton Raphson and EM algorithms for +linear mixed effects models for repeated measures data". Journal of +the American Statistical Association. Volume 83, Issue 404, pages +1014-1022. + +See also this more recent document: + +http://econ.ucsb.edu/~doug/245a/Papers/Mixed%20Effects%20Implement.pdf + +All the likelihood, gradient, and Hessian calculations closely follow +Lindstrom and Bates 1988, adapted to support variance components. + +The following two documents are written more from the perspective of +users: + +http://lme4.r-forge.r-project.org/lMMwR/lrgprt.pdf + +http://lme4.r-forge.r-project.org/slides/2009-07-07-Rennes/3Longitudinal-4.pdf + +Notation: + +* `cov_re` is the random effects covariance matrix (referred to above + as Psi) and `scale` is the (scalar) error variance. For a single + group, the marginal covariance matrix of endog given exog is scale*I + + Z * cov_re * Z', where Z is the design matrix for the random + effects in one group. + +* `vcomp` is a vector of variance parameters. The length of `vcomp` + is determined by the number of keys in either the `exog_vc` argument + to ``MixedLM``, or the `vc_formula` argument when using formulas to + fit a model. + +Notes: + +1. Three different parameterizations are used in different places. +The regression slopes (usually called `fe_params`) are identical in +all three parameterizations, but the variance parameters differ. The +parameterizations are: + +* The "user parameterization" in which cov(endog) = scale*I + Z * + cov_re * Z', as described above. This is the main parameterization + visible to the user. + +* The "profile parameterization" in which cov(endog) = I + + Z * cov_re1 * Z'. This is the parameterization of the profile + likelihood that is maximized to produce parameter estimates. + (see Lindstrom and Bates for details). The "user" cov_re is + equal to the "profile" cov_re1 times the scale. + +* The "square root parameterization" in which we work with the Cholesky + factor of cov_re1 instead of cov_re directly. This is hidden from the + user. + +All three parameterizations can be packed into a vector by +(optionally) concatenating `fe_params` together with the lower +triangle or Cholesky square root of the dependence structure, followed +by the variance parameters for the variance components. The are +stored as square roots if (and only if) the random effects covariance +matrix is stored as its Choleky factor. Note that when unpacking, it +is important to either square or reflect the dependence structure +depending on which parameterization is being used. + +Two score methods are implemented. One takes the score with respect +to the elements of the random effects covariance matrix (used for +inference once the MLE is reached), and the other takes the score with +respect to the parameters of the Choleky square root of the random +effects covariance matrix (used for optimization). + +The numerical optimization uses GLS to avoid explicitly optimizing +over the fixed effects parameters. The likelihood that is optimized +is profiled over both the scale parameter (a scalar) and the fixed +effects parameters (if any). As a result of this profiling, it is +difficult and unnecessary to calculate the Hessian of the profiled log +likelihood function, so that calculation is not implemented here. +Therefore, optimization methods requiring the Hessian matrix such as +the Newton-Raphson algorihm cannot be used for model fitting. +""" + +import numpy as np +import statsmodels.base.model as base +from scipy.optimize import fmin_ncg, fmin_cg, fmin_bfgs, fmin +from statsmodels.tools.decorators import cache_readonly +from statsmodels.tools import data as data_tools +from scipy.stats.distributions import norm +from scipy import sparse +import pandas as pd +import patsy +from statsmodels.compat.collections import OrderedDict +from statsmodels.compat import range +import warnings +from statsmodels.tools.sm_exceptions import ConvergenceWarning +from statsmodels.base._penalties import Penalty +from statsmodels.compat.numpy import np_matrix_rank +from pandas import DataFrame + + +def _dot(x, y): + """ + Returns the dot product of the arrays, works for sparse and dense. + """ + + if isinstance(x, np.ndarray) and isinstance(y, np.ndarray): + return np.dot(x, y) + elif sparse.issparse(x): + return x.dot(y) + elif sparse.issparse(y): + return y.T.dot(x.T).T + + +# From numpy, adapted to work with sparse and dense arrays. +def _multi_dot_three(A, B, C): + """ + Find best ordering for three arrays and do the multiplication. + + Doing in manually instead of using dynamic programing is + approximately 15 times faster. + """ + # cost1 = cost((AB)C) + cost1 = (A.shape[0] * A.shape[1] * B.shape[1] + # (AB) + A.shape[0] * B.shape[1] * C.shape[1]) # (--)C + # cost2 = cost((AB)C) + cost2 = (B.shape[0] * B.shape[1] * C.shape[1] + # (BC) + A.shape[0] * A.shape[1] * C.shape[1]) # A(--) + + if cost1 < cost2: + return _dot(_dot(A, B), C) + else: + return _dot(A, _dot(B, C)) + + +def _dotsum(x, y): + """ + Returns sum(x * y), where '*' is the pointwise product, computed + efficiently for dense and sparse matrices. + """ + + if sparse.issparse(x): + return x.multiply(y).sum() + else: + # This way usually avoids allocating a temporary. + return np.dot(x.ravel(), y.ravel()) + + +def _get_exog_re_names(self, exog_re): + """ + Passes through if given a list of names. Otherwise, gets pandas names + or creates some generic variable names as needed. + """ + if self.k_re == 0: + return [] + if isinstance(exog_re, pd.DataFrame): + return exog_re.columns.tolist() + elif isinstance(exog_re, pd.Series) and exog_re.name is not None: + return [exog_re.name] + elif isinstance(exog_re, list): + return exog_re + + # Default names + defnames = ["x_re{0:1d}".format(k + 1) for k in range(exog_re.shape[1])] + return defnames + +class MixedLMParams(object): + """ + This class represents a parameter state for a mixed linear model. + + Parameters + ---------- + k_fe : integer + The number of covariates with fixed effects. + k_re : integer + The number of covariates with random coefficients (excluding + variance components). + k_vc : integer + The number of variance components parameters. + + Notes + ----- + This object represents the parameter state for the model in which + the scale parameter has been profiled out. + """ + + def __init__(self, k_fe, k_re, k_vc): + + self.k_fe = k_fe + self.k_re = k_re + self.k_re2 = k_re * (k_re + 1) // 2 + self.k_vc = k_vc + self.k_tot = self.k_fe + self.k_re2 + self.k_vc + self._ix = np.tril_indices(self.k_re) + + + def from_packed(params, k_fe, k_re, use_sqrt, has_fe): + """ + Create a MixedLMParams object from packed parameter vector. + + Parameters + ---------- + params : array-like + The mode parameters packed into a single vector. + k_fe : integer + The number of covariates with fixed effects + k_re : integer + The number of covariates with random effects (excluding + variance components). + use_sqrt : boolean + If True, the random effects covariance matrix is provided + as its Cholesky factor, otherwise the lower triangle of + the covariance matrix is stored. + has_fe : boolean + If True, `params` contains fixed effects parameters. + Otherwise, the fixed effects parameters are set to zero. + + Returns + ------- + A MixedLMParams object. + """ + k_re2 = int(k_re * (k_re + 1) / 2) + + # The number of covariance parameters. + if has_fe: + k_vc = len(params) - k_fe - k_re2 + else: + k_vc = len(params) - k_re2 + + pa = MixedLMParams(k_fe, k_re, k_vc) + + cov_re = np.zeros((k_re, k_re)) + ix = pa._ix + if has_fe: + pa.fe_params = params[0:k_fe] + cov_re[ix] = params[k_fe:k_fe+k_re2] + else: + pa.fe_params = np.zeros(k_fe) + cov_re[ix] = params[0:k_re2] + + if use_sqrt: + cov_re = np.dot(cov_re, cov_re.T) + else: + cov_re = (cov_re + cov_re.T) - np.diag(np.diag(cov_re)) + + pa.cov_re = cov_re + if k_vc > 0: + if use_sqrt: + pa.vcomp = params[-k_vc:]**2 + else: + pa.vcomp = params[-k_vc:] + else: + pa.vcomp = np.array([]) + + return pa + + from_packed = staticmethod(from_packed) + + def from_components(fe_params=None, cov_re=None, cov_re_sqrt=None, vcomp=None): + """ + Create a MixedLMParams object from each parameter component. + + Parameters + ---------- + fe_params : array-like + The fixed effects parameter (a 1-dimensional array). If + None, there are no fixed effects. + cov_re : array-like + The random effects covariance matrix (a square, symmetric + 2-dimensional array). + cov_re_sqrt : array-like + The Cholesky (lower triangular) square root of the random + effects covariance matrix. + vcomp : array-like + The variance component parameters. If None, there are no + variance components. + + Returns + ------- + A MixedLMParams object. + """ + + if vcomp is None: + vcomp = np.empty(0) + if fe_params is None: + fe_params = np.empty(0) + if cov_re is None and cov_re_sqrt is None: + cov_re = np.empty((0, 0)) + + k_fe = len(fe_params) + k_vc = len(vcomp) + k_re = cov_re.shape[0] if cov_re is not None else cov_re_sqrt.shape[0] + + pa = MixedLMParams(k_fe, k_re, k_vc) + pa.fe_params = fe_params + if cov_re_sqrt is not None: + pa.cov_re = np.dot(cov_re_sqrt, cov_re_sqrt.T) + elif cov_re is not None: + pa.cov_re = cov_re + + pa.vcomp = vcomp + + return pa + + from_components = staticmethod(from_components) + + def copy(self): + """ + Returns a copy of the object. + """ + obj = MixedLMParams(self.k_fe, self.k_re, self.k_vc) + obj.fe_params = self.fe_params.copy() + obj.cov_re = self.cov_re.copy() + obj.vcomp = self.vcomp.copy() + return obj + + + def get_packed(self, use_sqrt, has_fe=False): + """ + Return the model parameters packed into a single vector. + + Parameters + ---------- + use_sqrt : bool + If True, the Cholesky square root of `cov_re` is + included in the packed result. Otherwise the + lower triangle of `cov_re` is included. + has_fe : bool + If True, the fixed effects parameters are included + in the packed result, otherwise they are omitted. + """ + + if self.k_re > 0: + if use_sqrt: + L = np.linalg.cholesky(self.cov_re) + cpa = L[self._ix] + else: + cpa = self.cov_re[self._ix] + else: + cpa = np.zeros(0) + + if use_sqrt: + vcomp = np.sqrt(self.vcomp) + else: + vcomp = self.vcomp + + if has_fe: + pa = np.concatenate((self.fe_params, cpa, vcomp)) + else: + pa = np.concatenate((cpa, vcomp)) + + return pa + + +def _smw_solver(s, A, AtA, BI, di): + """ + Solves the system (s*I + A*B*A') * x = rhs for an arbitrary rhs. + + The inverse matrix of B is block diagonal. The upper left block + is BI and the lower right block is a diagonal matrix containing + di. + + Parameters + ---------- + s : scalar + See above for usage + A : ndarray + See above for usage + AtA : square ndarray + A.T * A + BI : square symmetric ndarray + The inverse of `B`. + di : array-like + + Returns + ------- + A function that takes `rhs` as an input argument and returns a + solution to the linear system defined above. + """ + + # Use SMW identity + qmat = AtA / s + m = BI.shape[0] + qmat[0:m, 0:m] += BI + ix = np.arange(m, A.shape[1]) + qmat[ix, ix] += di + if sparse.issparse(A): + qi = sparse.linalg.inv(qmat) + qmati = A.dot(qi.T).T + else: + qmati = np.linalg.solve(qmat, A.T) + + def solver(rhs): + if sparse.issparse(A): + ql = qmati.dot(rhs) + ql = A.dot(ql) + else: + ql = np.dot(qmati, rhs) + ql = np.dot(A, ql) + rslt = rhs / s - ql / s**2 + if sparse.issparse(rslt): + rslt = np.asarray(rslt.todense()) + return rslt + + return solver + + +def _smw_logdet(s, A, AtA, BI, di, B_logdet): + """ + Returns the log determinant of s*I + A*B*A'. + + Uses the matrix determinant lemma to accelerate the calculation. + + Parameters + ---------- + s : scalar + See above for usage + A : square symmetric ndarray + See above for usage + AtA : square matrix + A.T * A + BI : square symmetric ndarray + The upper left block of B^-1. + di : array-like + The diagonal elements of the lower right block of B^-1. + B_logdet : real + The log determinant of B + + Returns + ------- + The log determinant of s*I + A*B*A'. + """ + + p = A.shape[0] + ld = p * np.log(s) + qmat = AtA / s + m = BI.shape[0] + qmat[0:m, 0:m] += BI + ix = np.arange(m, A.shape[1]) + qmat[ix, ix] += di + if sparse.issparse(qmat): + qmat = qmat.todense() + _, ld1 = np.linalg.slogdet(qmat) + return B_logdet + ld + ld1 + + +class MixedLM(base.LikelihoodModel): + """ + An object specifying a linear mixed effects model. Use the `fit` + method to fit the model and obtain a results object. + + Parameters + ---------- + endog : 1d array-like + The dependent variable + exog : 2d array-like + A matrix of covariates used to determine the + mean structure (the "fixed effects" covariates). + groups : 1d array-like + A vector of labels determining the groups -- data from + different groups are independent + exog_re : 2d array-like + A matrix of covariates used to determine the variance and + covariance structure (the "random effects" covariates). If + None, defaults to a random intercept for each group. + exog_vc : dict-like + A dicationary containing specifications of the variance + component terms. See below for details. + use_sqrt : bool + If True, optimization is carried out using the lower + triangle of the square root of the random effects + covariance matrix, otherwise it is carried out using the + lower triangle of the random effects covariance matrix. + missing : string + The approach to missing data handling + + Notes + ----- + `exog_vc` is a dictionary of dictionaries. Specifically, + `exog_vc[a][g]` is a matrix whose columns are linearly combined + using independent random coefficients. This random term then + contributes to the variance structure of the data for group `g`. + The random coefficients all have mean zero, and have the same + variance. The matrix must be `m x k`, where `m` is the number of + observations in group `g`. The number of columns may differ among + the top-level groups. + + The covariates in `exog`, `exog_re` and `exog_vc` may (but need + not) partially or wholly overlap. + + `use_sqrt` should almost always be set to True. The main use case + for use_sqrt=False is when complicated patterns of fixed values in + the covariance structure are set (using the `free` argument to + `fit`) that cannot be expressed in terms of the Cholesky factor L. + + Examples + -------- + A basic mixed model with fixed effects for the columns of + ``exog`` and a random intercept for each distinct value of + ``group``: + + >>> model = sm.MixedLM(endog, exog, groups) + >>> result = model.fit() + + A mixed model with fixed effects for the columns of ``exog`` and + correlated random coefficients for the columns of ``exog_re``: + + >>> model = sm.MixedLM(endog, exog, groups, exog_re=exog_re) + >>> result = model.fit() + + A mixed model with fixed effects for the columns of ``exog`` and + independent random coefficients for the columns of ``exog_re``: + + >>> free = MixedLMParams.from_components(fe_params=np.ones(exog.shape[1]), + cov_re=np.eye(exog_re.shape[1])) + >>> model = sm.MixedLM(endog, exog, groups, exog_re=exog_re) + >>> result = model.fit(free=free) + + A different way to specify independent random coefficients for the + columns of ``exog_re``. In this example ``groups`` must be a + Pandas Series with compatible indexing with ``exog_re``, and + ``exog_re`` has two columns. + + >>> g = pd.groupby(groups, by=groups).groups + >>> vc = {} + >>> vc['1'] = {k : exog_re.loc[g[k], 0] for k in g} + >>> vc['2'] = {k : exog_re.loc[g[k], 1] for k in g} + >>> model = sm.MixedLM(endog, exog, groups, vcomp=vc) + >>> result = model.fit() + """ + + def __init__(self, endog, exog, groups, exog_re=None, + exog_vc=None, use_sqrt=True, missing='none', + **kwargs): + + _allowed_kwargs = ["missing_idx", "design_info", "formula"] + for x in kwargs.keys(): + if x not in _allowed_kwargs: + raise ValueError("argument %s not permitted for MixedLM initialization" % x) + + self.use_sqrt = use_sqrt + + # Some defaults + self.reml = True + self.fe_pen = None + self.re_pen = None + + # Needs to run early so that the names are sorted. + self._setup_vcomp(exog_vc) + + # If there is one covariate, it may be passed in as a column + # vector, convert these to 2d arrays. + # TODO: Can this be moved up in the class hierarchy? + # yes, it should be done up the hierarchy + if (exog is not None and + data_tools._is_using_ndarray_type(exog, None) and + exog.ndim == 1): + exog = exog[:, None] + if (exog_re is not None and + data_tools._is_using_ndarray_type(exog_re, None) and + exog_re.ndim == 1): + exog_re = exog_re[:, None] + + # Calling super creates self.endog, etc. as ndarrays and the + # original exog, endog, etc. are self.data.endog, etc. + super(MixedLM, self).__init__(endog, exog, groups=groups, + exog_re=exog_re, missing=missing, + **kwargs) + + self._init_keys.extend(["use_sqrt", "exog_vc"]) + + self.k_fe = exog.shape[1] # Number of fixed effects parameters + + if exog_re is None and exog_vc is None: + # Default random effects structure (random intercepts). + self.k_re = 1 + self.k_re2 = 1 + self.exog_re = np.ones((len(endog), 1), dtype=np.float64) + self.data.exog_re = self.exog_re + names = ['Group RE'] + self.data.param_names = self.exog_names + names + self.data.exog_re_names = names + self.data.exog_re_names_full = names + + elif exog_re is not None: + # Process exog_re the same way that exog is handled + # upstream + # TODO: this is wrong and should be handled upstream wholly + self.data.exog_re = exog_re + self.exog_re = np.asarray(exog_re) + if self.exog_re.ndim == 1: + self.exog_re = self.exog_re[:, None] + # Model dimensions + # Number of random effect covariates + self.k_re = self.exog_re.shape[1] + # Number of covariance parameters + self.k_re2 = self.k_re * (self.k_re + 1) // 2 + + else: + # All random effects are variance components + self.k_re = 0 + self.k_re2 = 0 + + if not self.data._param_names: + # HACK: could've been set in from_formula already + # needs refactor + (param_names, exog_re_names, + exog_re_names_full) = self._make_param_names(exog_re) + self.data.param_names = param_names + self.data.exog_re_names = exog_re_names + self.data.exog_re_names_full = exog_re_names_full + + self.k_params = self.k_fe + self.k_re2 + + # Convert the data to the internal representation, which is a + # list of arrays, corresponding to the groups. + group_labels = list(set(groups)) + group_labels.sort() + row_indices = dict((s, []) for s in group_labels) + for i,g in enumerate(groups): + row_indices[g].append(i) + self.row_indices = row_indices + self.group_labels = group_labels + self.n_groups = len(self.group_labels) + + # Split the data by groups + self.endog_li = self.group_list(self.endog) + self.exog_li = self.group_list(self.exog) + self.exog_re_li = self.group_list(self.exog_re) + + # Precompute this. + if self.exog_re is None: + self.exog_re2_li = None + else: + self.exog_re2_li = [np.dot(x.T, x) for x in self.exog_re_li] + + # The total number of observations, summed over all groups + self.nobs = len(self.endog) + self.n_totobs = self.nobs + + # Set the fixed effects parameter names + if self.exog_names is None: + self.exog_names = ["FE%d" % (k + 1) for k in + range(self.exog.shape[1])] + + # Precompute this + self._aex_r = [] + self._aex_r2 = [] + for i in range(self.n_groups): + a = self._augment_exog(i) + self._aex_r.append(a) + self._aex_r2.append(_dot(a.T, a)) + + # Precompute this + self._lin, self._quad = self._reparam() + + + def _setup_vcomp(self, exog_vc): + if exog_vc is None: + exog_vc = {} + self.exog_vc = exog_vc + self.k_vc = len(exog_vc) + vc_names = list(set(exog_vc.keys())) + vc_names.sort() + self._vc_names = vc_names + + + def _make_param_names(self, exog_re): + """ + Returns the full parameter names list, just the exogenous random + effects variables, and the exogenous random effects variables with + the interaction terms. + """ + exog_names = list(self.exog_names) + exog_re_names = _get_exog_re_names(self, exog_re) + param_names = [] + + jj = self.k_fe + for i in range(len(exog_re_names)): + for j in range(i + 1): + if i == j: + param_names.append(exog_re_names[i] + " RE") + else: + param_names.append(exog_re_names[j] + " RE x " + + exog_re_names[i] + " RE") + jj += 1 + + vc_names = [x + " RE" for x in self._vc_names] + + return exog_names + param_names + vc_names, exog_re_names, param_names + + @classmethod + def from_formula(cls, formula, data, re_formula=None, vc_formula=None, + subset=None, use_sparse=False, *args, **kwargs): + """ + Create a Model from a formula and dataframe. + + Parameters + ---------- + formula : str or generic Formula object + The formula specifying the model + data : array-like + The data for the model. See Notes. + re_formula : string + A one-sided formula defining the variance structure of the + model. The default gives a random intercept for each + group. + vc_formula : dict-like + Formulas describing variance components. `vc_formula[vc]` is + the formula for the component with variance parameter named + `vc`. The formula is processed into a matrix, and the columns + of this matrix are linearly combined with independent random + coefficients having mean zero and a common variance. + subset : array-like + An array-like object of booleans, integers, or index + values that indicate the subset of df to use in the + model. Assumes df is a `pandas.DataFrame` + args : extra arguments + These are passed to the model + kwargs : extra keyword arguments + These are passed to the model with one exception. The + ``eval_env`` keyword is passed to patsy. It can be either a + :class:`patsy:patsy.EvalEnvironment` object or an integer + indicating the depth of the namespace to use. For example, the + default ``eval_env=0`` uses the calling namespace. If you wish + to use a "clean" environment set ``eval_env=-1``. + + Returns + ------- + model : Model instance + + Notes + ------ + `data` must define __getitem__ with the keys in the formula + terms args and kwargs are passed on to the model + instantiation. E.g., a numpy structured or rec array, a + dictionary, or a pandas DataFrame. + + If the variance component is intended to produce random + intercepts for disjoint subsets of a group, specified by + string labels or a categorical data value, always use '0 +' in + the formula so that no overall intercept is included. + + If the variance components specify random slopes and you do + not also want a random group-level intercept in the model, + then use '0 +' in the formula to exclude the intercept. + + The variance components formulas are processed separately for + each group. If a variable is categorical the results will not + be affected by whether the group labels are distinct or + re-used over the top-level groups. + + This method currently does not correctly handle missing + values, so missing values should be explicitly dropped from + the DataFrame before calling this method. + + Examples + -------- + Suppose we have an educational data set with students nested + in classrooms nested in schools. The students take a test, + and we want to relate the test scores to the students' ages, + while accounting for the effects of classrooms and schools. + The school will be the top-level group, and the classroom is a + nested group that is specified as a variance component. Note + that the schools may have different number of classrooms, and + the classroom labels may (but need not be) different across + the schools. + + >>> vc = {'classroom': '0 + C(classroom)'} + >>> MixedLM.from_formula('test_score ~ age', vc_formula=vc, + re_formula='1', groups='school', data=data) + + Now suppose we also have a previous test score called + 'pretest'. If we want the relationship between pretest + scores and the current test to vary by classroom, we can + specify a random slope for the pretest score + + >>> vc = {'classroom': '0 + C(classroom)', 'pretest': '0 + pretest'} + >>> MixedLM.from_formula('test_score ~ age + pretest', vc_formula=vc, + re_formula='1', groups='school', data=data) + + The following model is almost equivalent to the previous one, + but here the classroom random intercept and pretest slope may + be correlated. + + >>> vc = {'classroom': '0 + C(classroom)'} + >>> MixedLM.from_formula('test_score ~ age + pretest', vc_formula=vc, + re_formula='1 + pretest', groups='school', + data=data) + """ + + if "groups" not in kwargs.keys(): + raise AttributeError("'groups' is a required keyword argument in MixedLM.from_formula") + + # If `groups` is a variable name, retrieve the data for the + # groups variable. + group_name = "Group" + if type(kwargs["groups"]) == str: + group_name = kwargs["groups"] + kwargs["groups"] = np.asarray(data[kwargs["groups"]]) + + if re_formula is not None: + if re_formula.strip() == "1": + # Work around Patsy bug, fixed by 0.3. + exog_re = np.ones((data.shape[0], 1)) + exog_re_names = ["Group"] + else: + eval_env = kwargs.get('eval_env', None) + if eval_env is None: + eval_env = 1 + elif eval_env == -1: + from patsy import EvalEnvironment + eval_env = EvalEnvironment({}) + exog_re = patsy.dmatrix(re_formula, data, eval_env=eval_env) + exog_re_names = exog_re.design_info.column_names + exog_re = np.asarray(exog_re) + if exog_re.ndim == 1: + exog_re = exog_re[:, None] + else: + exog_re = None + if vc_formula is None: + exog_re_names = ["groups"] + else: + exog_re_names = [] + + if vc_formula is not None: + eval_env = kwargs.get('eval_env', None) + if eval_env is None: + eval_env = 1 + elif eval_env == -1: + from patsy import EvalEnvironment + eval_env = EvalEnvironment({}) + + exog_vc = {} + data["_group"] = kwargs["groups"] + gb = data.groupby("_group") + kylist = list(gb.groups.keys()) + kylist.sort() + for vc_name in vc_formula.keys(): + exog_vc[vc_name] = {} + for group_ix, group in enumerate(kylist): + ii = gb.groups[group] + vcg = vc_formula[vc_name] + mat = patsy.dmatrix(vcg, data.loc[ii, :], eval_env=eval_env, + return_type='dataframe') + if use_sparse: + exog_vc[vc_name][group] = sparse.csr_matrix(mat) + else: + exog_vc[vc_name][group] = np.asarray(mat) + exog_vc = exog_vc + else: + exog_vc = None + + mod = super(MixedLM, cls).from_formula(formula, data, + subset=None, + exog_re=exog_re, + exog_vc=exog_vc, + *args, **kwargs) + + # expand re names to account for pairs of RE + (param_names, + exog_re_names, + exog_re_names_full) = mod._make_param_names(exog_re_names) + + mod.data.param_names = param_names + mod.data.exog_re_names = exog_re_names + mod.data.exog_re_names_full = exog_re_names_full + mod.data.vcomp_names = mod._vc_names + + return mod + + + def predict(self, params, exog=None): + """ + Return predicted values from a design matrix. + + Parameters + ---------- + params : array-like + Parameters of a mixed linear model. Can be either a + MixedLMParams instance, or a vector containing the packed + model parameters in which the fixed effects parameters are + at the beginning of the vector, or a vector containing + only the fixed effects parameters. + exog : array-like, optional + Design / exogenous data for the fixed effects. Model exog + is used if None. + + Returns + ------- + An array of fitted values. Note that these predicted values + only reflect the fixed effects mean structure of the model. + """ + if exog is None: + exog = self.exog + + if isinstance(params, MixedLMParams): + params = params.fe_params + else: + params = params[0:self.k_fe] + + return np.dot(exog, params) + + + def group_list(self, array): + """ + Returns `array` split into subarrays corresponding to the + grouping structure. + """ + + if array is None: + return None + + if array.ndim == 1: + return [np.array(array[self.row_indices[k]]) + for k in self.group_labels] + else: + return [np.array(array[self.row_indices[k], :]) + for k in self.group_labels] + + + def fit_regularized(self, start_params=None, method='l1', alpha=0, + ceps=1e-4, ptol=1e-6, maxit=200, **fit_kwargs): + """ + Fit a model in which the fixed effects parameters are + penalized. The dependence parameters are held fixed at their + estimated values in the unpenalized model. + + Parameters + ---------- + method : string of Penalty object + Method for regularization. If a string, must be 'l1'. + alpha : array-like + Scalar or vector of penalty weights. If a scalar, the + same weight is applied to all coefficients; if a vector, + it contains a weight for each coefficient. If method is a + Penalty object, the weights are scaled by alpha. For L1 + regularization, the weights are used directly. + ceps : positive real scalar + Fixed effects parameters smaller than this value + in magnitude are treaded as being zero. + ptol : positive real scalar + Convergence occurs when the sup norm difference + between successive values of `fe_params` is less than + `ptol`. + maxit : integer + The maximum number of iterations. + fit_kwargs : keywords + Additional keyword arguments passed to fit. + + Returns + ------- + A MixedLMResults instance containing the results. + + Notes + ----- + The covariance structure is not updated as the fixed effects + parameters are varied. + + The algorithm used here for L1 regularization is a"shooting" + or cyclic coordinate descent algorithm. + + If method is 'l1', then `fe_pen` and `cov_pen` are used to + obtain the covariance structure, but are ignored during the + L1-penalized fitting. + + References + ---------- + Friedman, J. H., Hastie, T. and Tibshirani, R. Regularized + Paths for Generalized Linear Models via Coordinate + Descent. Journal of Statistical Software, 33(1) (2008) + http://www.jstatsoft.org/v33/i01/paper + + http://statweb.stanford.edu/~tibs/stat315a/Supplements/fuse.pdf + """ + + if type(method) == str and (method.lower() != 'l1'): + raise ValueError("Invalid regularization method") + + # If method is a smooth penalty just optimize directly. + if isinstance(method, Penalty): + # Scale the penalty weights by alpha + method.alpha = alpha + fit_kwargs.update({"fe_pen": method}) + return self.fit(**fit_kwargs) + + if np.isscalar(alpha): + alpha = alpha * np.ones(self.k_fe, dtype=np.float64) + + # Fit the unpenalized model to get the dependence structure. + mdf = self.fit(**fit_kwargs) + fe_params = mdf.fe_params + cov_re = mdf.cov_re + vcomp = mdf.vcomp + scale = mdf.scale + try: + cov_re_inv = np.linalg.inv(cov_re) + except np.linalg.LinAlgError: + cov_re_inv = None + + for itr in range(maxit): + + fe_params_s = fe_params.copy() + for j in range(self.k_fe): + + if abs(fe_params[j]) < ceps: + continue + + # The residuals + fe_params[j] = 0. + expval = np.dot(self.exog, fe_params) + resid_all = self.endog - expval + + # The loss function has the form + # a*x^2 + b*x + pwt*|x| + a, b = 0., 0. + for group_ix, group in enumerate(self.group_labels): + + vc_var = self._expand_vcomp(vcomp, group) + + exog = self.exog_li[group_ix] + ex_r, ex2_r = self._aex_r[group_ix], self._aex_r2[group_ix] + + resid = resid_all[self.row_indices[group]] + solver = _smw_solver(scale, ex_r, ex2_r, cov_re_inv, 1 / vc_var) + + x = exog[:, j] + u = solver(x) + a += np.dot(u, x) + b -= 2 * np.dot(u, resid) + + pwt1 = alpha[j] + if b > pwt1: + fe_params[j] = -(b - pwt1) / (2 * a) + elif b < -pwt1: + fe_params[j] = -(b + pwt1) / (2 * a) + + if np.abs(fe_params_s - fe_params).max() < ptol: + break + + # Replace the fixed effects estimates with their penalized + # values, leave the dependence parameters in their unpenalized + # state. + params_prof = mdf.params.copy() + params_prof[0:self.k_fe] = fe_params + + scale = self.get_scale(fe_params, mdf.cov_re_unscaled, mdf.vcomp) + + # Get the Hessian including only the nonzero fixed effects, + # then blow back up to the full size after inverting. + hess = self.hessian(params_prof) + pcov = np.nan * np.ones_like(hess) + ii = np.abs(params_prof) > ceps + ii[self.k_fe:] = True + ii = np.flatnonzero(ii) + hess1 = hess[ii, :][:, ii] + pcov[np.ix_(ii,ii)] = np.linalg.inv(-hess1) + + params_object = MixedLMParams.from_components(fe_params, cov_re=cov_re) + + results = MixedLMResults(self, params_prof, pcov / scale) + results.params_object = params_object + results.fe_params = fe_params + results.cov_re = cov_re + results.scale = scale + results.cov_re_unscaled = mdf.cov_re_unscaled + results.method = mdf.method + results.converged = True + results.cov_pen = self.cov_pen + results.k_fe = self.k_fe + results.k_re = self.k_re + results.k_re2 = self.k_re2 + results.k_vc = self.k_vc + + return MixedLMResultsWrapper(results) + + + def get_fe_params(self, cov_re, vcomp): + """ + Use GLS to update the fixed effects parameter estimates. + + Parameters + ---------- + cov_re : array-like + The covariance matrix of the random effects. + + Returns + ------- + The GLS estimates of the fixed effects parameters. + """ + + if self.k_fe == 0: + return np.array([]) + + if self.k_re == 0: + cov_re_inv = np.empty((0,0)) + else: + cov_re_inv = np.linalg.inv(cov_re) + + # Cache these quantities that don't change. + if not hasattr(self, "_endex_li"): + self._endex_li = [] + for group_ix, _ in enumerate(self.group_labels): + mat = np.concatenate((self.exog_li[group_ix], self.endog_li[group_ix][:, None]), axis=1) + self._endex_li.append(mat) + + xtxy = 0. + for group_ix, group in enumerate(self.group_labels): + vc_var = self._expand_vcomp(vcomp, group) + exog = self.exog_li[group_ix] + ex_r, ex2_r = self._aex_r[group_ix], self._aex_r2[group_ix] + solver = _smw_solver(1., ex_r, ex2_r, cov_re_inv, 1 / vc_var) + u = solver(self._endex_li[group_ix]) + xtxy += np.dot(exog.T, u) + + fe_params = np.linalg.solve(xtxy[:, 0:-1], xtxy[:, -1]) + + return fe_params + + + def _reparam(self): + """ + Returns parameters of the map converting parameters from the + form used in optimization to the form returned to the user. + + Returns + ------- + lin : list-like + Linear terms of the map + quad : list-like + Quadratic terms of the map + + Notes + ----- + If P are the standard form parameters and R are the + transformed parameters (i.e. with the Cholesky square root + covariance and square root transformed variane components), + then P[i] = lin[i] * R + R' * quad[i] * R + """ + + k_fe, k_re, k_re2, k_vc = self.k_fe, self.k_re, self.k_re2, self.k_vc + k_tot = k_fe + k_re2 + k_vc + ix = np.tril_indices(self.k_re) + + lin = [] + for k in range(k_fe): + e = np.zeros(k_tot) + e[k] = 1 + lin.append(e) + for k in range(k_re2): + lin.append(np.zeros(k_tot)) + for k in range(k_vc): + lin.append(np.zeros(k_tot)) + + quad = [] + # Quadratic terms for fixed effects. + for k in range(k_tot): + quad.append(np.zeros((k_tot, k_tot))) + + # Quadratic terms for random effects covariance. + ii = np.tril_indices(k_re) + ix = [(a,b) for a,b in zip(ii[0], ii[1])] + for i1 in range(k_re2): + for i2 in range(k_re2): + ix1 = ix[i1] + ix2 = ix[i2] + if (ix1[1] == ix2[1]) and (ix1[0] <= ix2[0]): + ii = (ix2[0], ix1[0]) + k = ix.index(ii) + quad[k_fe+k][k_fe+i2, k_fe+i1] += 1 + for k in range(k_tot): + quad[k] = 0.5*(quad[k] + quad[k].T) + + # Quadratic terms for variance components. + km = k_fe + k_re2 + for k in range(km, km+k_vc): + quad[k][k, k] = 1 + + return lin, quad + + + def _expand_vcomp(self, vcomp, group): + """ + Replicate variance parameters to match a group's design. + + Parameters + ---------- + vcomp : array-like + The variance parameters for the variance components. + group : string + The group label + + Returns an expaded version of vcomp, in which each variance + parameter is copied as many times as there are independent + realizations of the variance component in the given group. + """ + if len(vcomp) == 0: + return np.empty(0) + vc_var = [] + for j, k in enumerate(self._vc_names): + if group in self.exog_vc[k]: + vc_var.append(vcomp[j] * np.ones(self.exog_vc[k][group].shape[1])) + if len(vc_var) > 0: + return np.concatenate(vc_var) + else: + return np.empty(0) + + + def _augment_exog(self, group_ix): + """ + Concatenate the columns for variance components to the columns + for other random effects to obtain a single random effects + exog matrix for a given group. + """ + ex_r = self.exog_re_li[group_ix] if self.k_re > 0 else None + if self.k_vc == 0: + return ex_r + + group = self.group_labels[group_ix] + ex = [ex_r] if self.k_re > 0 else [] + any_sparse = False + for j,k in enumerate(self._vc_names): + if group not in self.exog_vc[k]: + continue + ex.append(self.exog_vc[k][group]) + any_sparse |= sparse.issparse(ex[-1]) + if any_sparse: + for j, x in enumerate(ex): + if not sparse.issparse(x): + ex[j] = sparse.csr_matrix(x) + ex = sparse.hstack(ex) + ex = sparse.csr_matrix(ex) + else: + ex = np.concatenate(ex, axis=1) + + return ex + + + def loglike(self, params, profile_fe=True): + """ + Evaluate the (profile) log-likelihood of the linear mixed + effects model. + + Parameters + ---------- + params : MixedLMParams, or array-like. + The parameter value. If array-like, must be a packed + parameter vector containing only the covariance + parameters. + profile_fe : boolean + If True, replace the provided value of `fe_params` with + the GLS estimates. + + Returns + ------- + The log-likelihood value at `params`. + + Notes + ----- + The scale parameter `scale` is always profiled out of the + log-likelihood. In addition, if `profile_fe` is true the + fixed effects parameters are also profiled out. + """ + + if type(params) is not MixedLMParams: + params = MixedLMParams.from_packed(params, self.k_fe, + self.k_re, self.use_sqrt, + has_fe=False) + + cov_re = params.cov_re + vcomp = params.vcomp + + # Move to the profile set + if profile_fe: + fe_params = self.get_fe_params(cov_re, vcomp) + else: + fe_params = params.fe_params + + if self.k_re > 0: + try: + cov_re_inv = np.linalg.inv(cov_re) + except np.linalg.LinAlgError: + cov_re_inv = None + _, cov_re_logdet = np.linalg.slogdet(cov_re) + else: + cov_re_inv = np.zeros((0, 0)) + cov_re_logdet = 0 + + # The residuals + expval = np.dot(self.exog, fe_params) + resid_all = self.endog - expval + + likeval = 0. + + # Handle the covariance penalty + if (self.cov_pen is not None) and (self.k_re > 0): + likeval -= self.cov_pen.func(cov_re, cov_re_inv) + + # Handle the fixed effects penalty + if (self.fe_pen is not None): + likeval -= self.fe_pen.func(fe_params) + + xvx, qf = 0., 0. + for k, group in enumerate(self.group_labels): + + vc_var = self._expand_vcomp(vcomp, group) + cov_aug_logdet = cov_re_logdet + np.sum(np.log(vc_var)) + + exog = self.exog_li[k] + ex_r, ex2_r = self._aex_r[k], self._aex_r2[k] + solver = _smw_solver(1., ex_r, ex2_r, cov_re_inv, 1 / vc_var) + + resid = resid_all[self.row_indices[group]] + + # Part 1 of the log likelihood (for both ML and REML) + ld = _smw_logdet(1., ex_r, ex2_r, cov_re_inv, 1 / vc_var, cov_aug_logdet) + likeval -= ld / 2. + + # Part 2 of the log likelihood (for both ML and REML) + u = solver(resid) + qf += np.dot(resid, u) + + # Adjustment for REML + if self.reml: + mat = solver(exog) + xvx += np.dot(exog.T, mat) + + if self.reml: + likeval -= (self.n_totobs - self.k_fe) * np.log(qf) / 2. + _,ld = np.linalg.slogdet(xvx) + likeval -= ld / 2. + likeval -= (self.n_totobs - self.k_fe) * np.log(2 * np.pi) / 2. + likeval += ((self.n_totobs - self.k_fe) * + np.log(self.n_totobs - self.k_fe) / 2.) + likeval -= (self.n_totobs - self.k_fe) / 2. + else: + likeval -= self.n_totobs * np.log(qf) / 2. + likeval -= self.n_totobs * np.log(2 * np.pi) / 2. + likeval += self.n_totobs * np.log(self.n_totobs) / 2. + likeval -= self.n_totobs / 2. + + return likeval + + + def _gen_dV_dPar(self, ex_r, solver, group, max_ix=None): + """ + A generator that yields the element-wise derivative of the + marginal covariance matrix with respect to the random effects + variance and covariance parameters. + + ex_r : array-like + The random effects design matrix + solver : function + A function that given x returns V^{-1}x, where V + is the group's marginal covariance matrix. + group : scalar + The group label + max_ix : integer or None + If not None, the generator ends when this index + is reached. + """ + + axr = solver(ex_r) + + # Regular random effects + jj = 0 + for j1 in range(self.k_re): + for j2 in range(j1 + 1): + if max_ix is not None and jj > max_ix: + return + mat_l, mat_r = ex_r[:,j1:j1+1], ex_r[:,j2:j2+1] # Need 2d + vsl, vsr = axr[:,j1:j1+1], axr[:,j2:j2+1] + yield jj, mat_l, mat_r, vsl, vsr, j1 == j2 + jj += 1 + + # Variance components + for ky in self._vc_names: + if group in self.exog_vc[ky]: + if max_ix is not None and jj > max_ix: + return + mat = self.exog_vc[ky][group] + axmat = solver(mat) + yield jj, mat, mat, axmat, axmat, True + jj += 1 + + + def score(self, params, profile_fe=True): + """ + Returns the score vector of the profile log-likelihood. + + Notes + ----- + The score vector that is returned is computed with respect to + the parameterization defined by this model instance's + `use_sqrt` attribute. + """ + + if type(params) is not MixedLMParams: + params = MixedLMParams.from_packed(params, self.k_fe, + self.k_re, self.use_sqrt, + has_fe=False) + + if profile_fe: + params.fe_params = self.get_fe_params(params.cov_re, params.vcomp) + + if self.use_sqrt: + score_fe, score_re, score_vc = self.score_sqrt(params, calc_fe=not profile_fe) + else: + score_fe, score_re, score_vc = self.score_full(params, calc_fe=not profile_fe) + + if self._freepat is not None: + score_fe *= self._freepat.fe_params + score_re *= self._freepat.cov_re[self._freepat._ix] + score_vc *= self._freepat.vcomp + + if profile_fe: + return np.concatenate((score_re, score_vc)) + else: + return np.concatenate((score_fe, score_re, score_vc)) + + + def score_full(self, params, calc_fe): + """ + Returns the score with respect to untransformed parameters. + + Calculates the score vector for the profiled log-likelihood of + the mixed effects model with respect to the parameterization + in which the random effects covariance matrix is represented + in its full form (not using the Cholesky factor). + + Parameters + ---------- + params : MixedLMParams or array-like + The parameter at which the score function is evaluated. + If array-like, must contain the packed random effects + parameters (cov_re and vcomp) without fe_params. + calc_fe : boolean + If True, calculate the score vector for the fixed effects + parameters. If False, this vector is not calculated, and + a vector of zeros is returned in its place. + + Returns + ------- + score_fe : array-like + The score vector with respect to the fixed effects + parameters. + score_re : array-like + The score vector with respect to the random effects + parameters (excluding variance components parameters). + score_vc : array-like + The score vector with respect to variance components + parameters. + + Notes + ----- + `score_re` is taken with respect to the parameterization in + which `cov_re` is represented through its lower triangle + (without taking the Cholesky square root). + """ + + fe_params = params.fe_params + cov_re = params.cov_re + vcomp = params.vcomp + + try: + cov_re_inv = np.linalg.inv(cov_re) + except np.linalg.LinAlgError: + cov_re_inv = None + + score_fe = np.zeros(self.k_fe) + score_re = np.zeros(self.k_re2) + score_vc = np.zeros(self.k_vc) + + # Handle the covariance penalty. + if self.cov_pen is not None: + score_re -= self.cov_pen.grad(cov_re, cov_re_inv) + + # Handle the fixed effects penalty. + if calc_fe and (self.fe_pen is not None): + score_fe -= self.fe_pen.grad(fe_params) + + # resid' V^{-1} resid, summed over the groups (a scalar) + rvir = 0. + + # exog' V^{-1} resid, summed over the groups (a k_fe + # dimensional vector) + xtvir = 0. + + # exog' V^{_1} exog, summed over the groups (a k_fe x k_fe + # matrix) + xtvix = 0. + + # V^{-1} exog' dV/dQ_jj exog V^{-1}, where Q_jj is the jj^th + # covariance parameter. + xtax = [0.,] * (self.k_re2 + self.k_vc) + + # Temporary related to the gradient of log |V| + dlv = np.zeros(self.k_re2 + self.k_vc) + + # resid' V^{-1} dV/dQ_jj V^{-1} resid (a scalar) + rvavr = np.zeros(self.k_re2 + self.k_vc) + + for group_ix, group in enumerate(self.group_labels): + + vc_var = self._expand_vcomp(vcomp, group) + + exog = self.exog_li[group_ix] + ex_r, ex2_r = self._aex_r[group_ix], self._aex_r2[group_ix] + solver = _smw_solver(1., ex_r, ex2_r, cov_re_inv, 1 / vc_var) + + # The residuals + resid = self.endog_li[group_ix] + if self.k_fe > 0: + expval = np.dot(exog, fe_params) + resid = resid - expval + + if self.reml: + viexog = solver(exog) + xtvix += np.dot(exog.T, viexog) + + # Contributions to the covariance parameter gradient + vir = solver(resid) + for jj, matl, matr, vsl, vsr, sym in self._gen_dV_dPar(ex_r, solver, group): + dlv[jj] = _dotsum(matr, vsl) + if not sym: + dlv[jj] += _dotsum(matl, vsr) + + ul = _dot(vir, matl) + ur = ul.T if sym else _dot(matr.T, vir) + ulr = np.dot(ul, ur) + rvavr[jj] += ulr + if not sym: + rvavr[jj] += ulr.T + + if self.reml: + ul = _dot(viexog.T, matl) + ur = ul.T if sym else _dot(matr.T, viexog) + ulr = np.dot(ul, ur) + xtax[jj] += ulr + if not sym: + xtax[jj] += ulr.T + + # Contribution of log|V| to the covariance parameter + # gradient. + if self.k_re > 0: + score_re -= 0.5 * dlv[0:self.k_re2] + if self.k_vc > 0: + score_vc -= 0.5 * dlv[self.k_re2:] + + rvir += np.dot(resid, vir) + + if calc_fe: + xtvir += np.dot(exog.T, vir) + + fac = self.n_totobs + if self.reml: + fac -= self.k_fe + + if calc_fe and self.k_fe > 0: + score_fe += fac * xtvir / rvir + + if self.k_re > 0: + score_re += 0.5 * fac * rvavr[0:self.k_re2] / rvir + if self.k_vc > 0: + score_vc += 0.5 * fac * rvavr[self.k_re2:] / rvir + + if self.reml: + xtvixi = np.linalg.inv(xtvix) + for j in range(self.k_re2): + score_re[j] += 0.5 * _dotsum(xtvixi.T, xtax[j]) + for j in range(self.k_vc): + score_vc[j] += 0.5 * _dotsum(xtvixi.T, xtax[self.k_re2 + j]) + + return score_fe, score_re, score_vc + + + def score_sqrt(self, params, calc_fe=True): + """ + Returns the score with respect to transformed parameters. + + Calculates the score vector with respect to the + parameterization in which the random effects covariance matrix + is represented through its Cholesky square root. + + Parameters + ---------- + params : MixedLMParams or array-like + The model parameters. If array-like must contain packed + parameters that are compatible with this model instance. + calc_fe : boolean + If True, calculate the score vector for the fixed effects + parameters. If False, this vector is not calculated, and + a vector of zeros is returned in its place. + + Returns + ------- + score_fe : array-like + The score vector with respect to the fixed effects + parameters. + score_re : array-like + The score vector with respect to the random effects + parameters (excluding variance components parameters). + score_vc : array-like + The score vector with respect to variance components + parameters. + """ + + score_fe, score_re, score_vc = self.score_full(params, calc_fe=calc_fe) + params_vec = params.get_packed(use_sqrt=True, has_fe=True) + + score_full = np.concatenate((score_fe, score_re, score_vc)) + scr = 0. + for i in range(len(params_vec)): + v = self._lin[i] + 2 * np.dot(self._quad[i], params_vec) + scr += score_full[i] * v + score_fe = scr[0:self.k_fe] + score_re = scr[self.k_fe:self.k_fe + self.k_re2] + score_vc = scr[self.k_fe + self.k_re2:] + + return score_fe, score_re, score_vc + + + def hessian(self, params): + """ + Returns the model's Hessian matrix. + + Calculates the Hessian matrix for the linear mixed effects + model with respect to the parameterization in which the + covariance matrix is represented directly (without square-root + transformation). + + Parameters + ---------- + params : MixedLMParams or array-like + The model parameters at which the Hessian is calculated. + If array-like, must contain the packed parameters in a + form that is compatible with this model instance. + + Returns + ------- + hess : 2d ndarray + The Hessian matrix, evaluated at `params`. + """ + + if type(params) is not MixedLMParams: + params = MixedLMParams.from_packed(params, self.k_fe, self.k_re, + use_sqrt=self.use_sqrt, + has_fe=True) + + fe_params = params.fe_params + vcomp = params.vcomp + cov_re = params.cov_re + if self.k_re > 0: + cov_re_inv = np.linalg.inv(cov_re) + else: + cov_re_inv = np.empty((0, 0)) + + # Blocks for the fixed and random effects parameters. + hess_fe = 0. + hess_re = np.zeros((self.k_re2 + self.k_vc, self.k_re2 + self.k_vc)) + hess_fere = np.zeros((self.k_re2 + self.k_vc, self.k_fe)) + + fac = self.n_totobs + if self.reml: + fac -= self.exog.shape[1] + + rvir = 0. + xtvix = 0. + xtax = [0.,] * (self.k_re2 + self.k_vc) + m = self.k_re2 + self.k_vc + B = np.zeros(m) + D = np.zeros((m, m)) + F = [[0.] * m for k in range(m)] + for k, group in enumerate(self.group_labels): + + vc_var = self._expand_vcomp(vcomp, group) + + exog = self.exog_li[k] + ex_r, ex2_r = self._aex_r[k], self._aex_r2[k] + solver = _smw_solver(1., ex_r, ex2_r, cov_re_inv, 1 / vc_var) + + # The residuals + resid = self.endog_li[k] + if self.k_fe > 0: + expval = np.dot(exog, fe_params) + resid = resid - expval + + viexog = solver(exog) + xtvix += np.dot(exog.T, viexog) + vir = solver(resid) + rvir += np.dot(resid, vir) + + for jj1, matl1, matr1, vsl1, vsr1, sym1 in self._gen_dV_dPar(ex_r, solver, group): + + ul = _dot(viexog.T, matl1) + ur = _dot(matr1.T, vir) + hess_fere[jj1, :] += np.dot(ul, ur) + if not sym1: + ul = _dot(viexog.T, matr1) + ur = _dot(matl1.T, vir) + hess_fere[jj1, :] += np.dot(ul, ur) + + if self.reml: + ul = _dot(viexog.T, matl1) + ur = ul if sym1 else np.dot(viexog.T, matr1) + ulr = _dot(ul, ur.T) + xtax[jj1] += ulr + if not sym1: + xtax[jj1] += ulr.T + + ul = _dot(vir, matl1) + ur = ul if sym1 else _dot(vir, matr1) + B[jj1] += np.dot(ul, ur) * (1 if sym1 else 2) + + # V^{-1} * dV/d_theta + E = [(vsl1, matr1)] + if not sym1: + E.append((vsr1, matl1)) + + for jj2, matl2, matr2, vsl2, vsr2, sym2 in self._gen_dV_dPar(ex_r, solver, group, jj1): + + re = sum([_multi_dot_three(matr2.T, x[0], x[1].T) for x in E]) + vt = 2 * _dot(_multi_dot_three(vir[None, :], matl2, re), vir[:, None]) + + if not sym2: + le = sum([_multi_dot_three(matl2.T, x[0], x[1].T) for x in E]) + vt += 2 * _dot(_multi_dot_three(vir[None, :], matr2, le), vir[:, None]) + + D[jj1, jj2] += vt + if jj1 != jj2: + D[jj2, jj1] += vt + + rt = _dotsum(vsl2, re.T) / 2 + if not sym2: + rt += _dotsum(vsr2, le.T) / 2 + + hess_re[jj1, jj2] += rt + if jj1 != jj2: + hess_re[jj2, jj1] += rt + + if self.reml: + ev = sum([_dot(x[0], _dot(x[1].T, viexog)) for x in E]) + u1 = _dot(viexog.T, matl2) + u2 = _dot(matr2.T, ev) + um = np.dot(u1, u2) + F[jj1][jj2] += um + um.T + if not sym2: + u1 = np.dot(viexog.T, matr2) + u2 = np.dot(matl2.T, ev) + um = np.dot(u1, u2) + F[jj1][jj2] += um + um.T + + hess_fe -= fac * xtvix / rvir + hess_re = hess_re - 0.5 * fac * (D/rvir - np.outer(B, B) / rvir**2) + hess_fere = -fac * hess_fere / rvir + + if self.reml: + QL = [np.linalg.solve(xtvix, x) for x in xtax] + for j1 in range(self.k_re2 + self.k_vc): + for j2 in range(j1 + 1): + a = _dotsum(QL[j1].T, QL[j2]) + a -= np.trace(np.linalg.solve(xtvix, F[j1][j2])) + a *= 0.5 + hess_re[j1, j2] += a + if j1 > j2: + hess_re[j2, j1] += a + + # Put the blocks together to get the Hessian. + m = self.k_fe + self.k_re2 + self.k_vc + hess = np.zeros((m, m)) + hess[0:self.k_fe, 0:self.k_fe] = hess_fe + hess[0:self.k_fe, self.k_fe:] = hess_fere.T + hess[self.k_fe:, 0:self.k_fe] = hess_fere + hess[self.k_fe:, self.k_fe:] = hess_re + + return hess + + + def get_scale(self, fe_params, cov_re, vcomp): + """ + Returns the estimated error variance based on given estimates + of the slopes and random effects covariance matrix. + + Parameters + ---------- + fe_params : array-like + The regression slope estimates + cov_re : 2d array-like + Estimate of the random effects covariance matrix + vcomp : array-like + Estimate of the variance components + + Returns + ------- + scale : float + The estimated error variance. + """ + + try: + cov_re_inv = np.linalg.inv(cov_re) + except np.linalg.LinAlgError: + cov_re_inv = None + + qf = 0. + for group_ix, group in enumerate(self.group_labels): + + vc_var = self._expand_vcomp(vcomp, group) + + exog = self.exog_li[group_ix] + ex_r, ex2_r = self._aex_r[group_ix], self._aex_r2[group_ix] + + solver = _smw_solver(1., ex_r, ex2_r, cov_re_inv, 1 / vc_var) + + # The residuals + resid = self.endog_li[group_ix] + if self.k_fe > 0: + expval = np.dot(exog, fe_params) + resid = resid - expval + + mat = solver(resid) + qf += np.dot(resid, mat) + + if self.reml: + qf /= (self.n_totobs - self.k_fe) + else: + qf /= self.n_totobs + + return qf + + + def fit(self, start_params=None, reml=True, niter_sa=0, + do_cg=True, fe_pen=None, cov_pen=None, free=None, + full_output=False, method='bfgs', **kwargs): + """ + Fit a linear mixed model to the data. + + Parameters + ---------- + start_params: array-like or MixedLMParams + Starting values for the profile log-likeihood. If not a + `MixedLMParams` instance, this should be an array + containing the packed parameters for the profile + log-likelihood, including the fixed effects + parameters. + reml : bool + If true, fit according to the REML likelihood, else + fit the standard likelihood using ML. + cov_pen : CovariancePenalty object + A penalty for the random effects covariance matrix + fe_pen : Penalty object + A penalty on the fixed effects + free : MixedLMParams object + If not `None`, this is a mask that allows parameters to be + held fixed at specified values. A 1 indicates that the + correspondinig parameter is estimated, a 0 indicates that + it is fixed at its starting value. Setting the `cov_re` + component to the identity matrix fits a model with + independent random effects. Note that some optimization + methods do not respect this contraint (bfgs and lbfgs both + work). + full_output : bool + If true, attach iteration history to results + method : string + Optimization method. + + Returns + ------- + A MixedLMResults instance. + """ + + _allowed_kwargs = ['gtol', 'maxiter'] + for x in kwargs.keys(): + if x not in _allowed_kwargs: + raise ValueError("Argument %s not allowed for MixedLM.fit" % x) + + if method.lower() in ["newton", "ncg"]: + raise ValueError("method %s not available for MixedLM" % method) + + self.reml = reml + self.cov_pen = cov_pen + self.fe_pen = fe_pen + + self._freepat = free + + if full_output: + hist = [] + else: + hist = None + + success = False + + if start_params is None: + params = MixedLMParams(self.k_fe, self.k_re, self.k_vc) + params.fe_params = np.zeros(self.k_fe) + params.cov_re = np.eye(self.k_re) + params.vcomp = np.ones(self.k_vc) + else: + if isinstance(start_params, MixedLMParams): + params = start_params + else: + # It's a packed array + if len(start_params) == self.k_fe + self.k_re2 + self.k_vc: + params = MixedLMParams.from_packed(start_params, self.k_fe, + self.k_re, self.use_sqrt, + has_fe=True) + elif len(start_params) == self.k_re2 + self.k_vc: + params = MixedLMParams.from_packed(start_params, self.k_fe, + self.k_re, self.use_sqrt, + has_fe=False) + else: + raise ValueError("invalid start_params") + + + if do_cg: + kwargs["retall"] = hist is not None + if "disp" not in kwargs: + kwargs["disp"] = False + packed = params.get_packed(use_sqrt=self.use_sqrt, has_fe=False) + + # It seems that the optimizers sometimes stop too soon, so + # we run a few times. + for rep in range(5): + rslt = super(MixedLM, self).fit(start_params=packed, + skip_hessian=True, + method=method, + **kwargs) + if rslt.mle_retvals['converged']: + break + packed = rslt.params + + # The optimization succeeded + params = np.atleast_1d(rslt.params) + if hist is not None: + hist.append(rslt.mle_retvals) + + converged = rslt.mle_retvals['converged'] + if not converged: + msg = "Gradient optimization failed." + warnings.warn(msg, ConvergenceWarning) + + # Convert to the final parameterization (i.e. undo the square + # root transform of the covariance matrix, and the profiling + # over the error variance). + params = MixedLMParams.from_packed(params, self.k_fe, self.k_re, + use_sqrt=self.use_sqrt, has_fe=False) + cov_re_unscaled = params.cov_re + vcomp_unscaled = params.vcomp + fe_params = self.get_fe_params(cov_re_unscaled, vcomp_unscaled) + params.fe_params = fe_params + scale = self.get_scale(fe_params, cov_re_unscaled, vcomp_unscaled) + cov_re = scale * cov_re_unscaled + vcomp = scale * vcomp_unscaled + + if (((self.k_re > 0) and (np.min(np.abs(np.diag(cov_re))) < 0.01)) or + ((self.k_vc > 0) and (np.min(np.abs(vcomp)) < 0.01))): + msg = "The MLE may be on the boundary of the parameter space." + warnings.warn(msg, ConvergenceWarning) + + # Compute the Hessian at the MLE. Note that this is the + # Hessian with respect to the random effects covariance matrix + # (not its square root). It is used for obtaining standard + # errors, not for optimization. + hess = self.hessian(params) + hess_diag = np.diag(hess) + if free is not None: + pcov = np.zeros_like(hess) + pat = self._freepat.get_packed(use_sqrt=False, has_fe=True) + ii = np.flatnonzero(pat) + hess_diag = hess_diag[ii] + if len(ii) > 0: + hess1 = hess[np.ix_(ii, ii)] + pcov[np.ix_(ii, ii)] = np.linalg.inv(-hess1) + else: + pcov = np.linalg.inv(-hess) + if np.any(hess_diag >= 0): + msg = "The Hessian matrix at the estimated parameter values is not positive definite." + warnings.warn(msg, ConvergenceWarning) + + # Prepare a results class instance + params_packed = params.get_packed(use_sqrt=False, has_fe=True) + results = MixedLMResults(self, params_packed, pcov / scale) + results.params_object = params + results.fe_params = fe_params + results.cov_re = cov_re + results.vcomp = vcomp + results.scale = scale + results.cov_re_unscaled = cov_re_unscaled + results.method = "REML" if self.reml else "ML" + results.converged = converged + results.hist = hist + results.reml = self.reml + results.cov_pen = self.cov_pen + results.k_fe = self.k_fe + results.k_re = self.k_re + results.k_re2 = self.k_re2 + results.k_vc = self.k_vc + results.use_sqrt = self.use_sqrt + results.freepat = self._freepat + + return MixedLMResultsWrapper(results) + + +class MixedLMResults(base.LikelihoodModelResults, base.ResultMixin): + ''' + Class to contain results of fitting a linear mixed effects model. + + MixedLMResults inherits from statsmodels.LikelihoodModelResults + + Parameters + ---------- + See statsmodels.LikelihoodModelResults + + Returns + ------- + **Attributes** + + model : class instance + Pointer to PHreg model instance that called fit. + normalized_cov_params : array + The sampling covariance matrix of the estimates + fe_params : array + The fitted fixed-effects coefficients + re_params : array + The fitted random-effects covariance matrix + bse_fe : array + The standard errors of the fitted fixed effects coefficients + bse_re : array + The standard errors of the fitted random effects covariance + matrix + + See Also + -------- + statsmodels.LikelihoodModelResults + ''' + + def __init__(self, model, params, cov_params): + + super(MixedLMResults, self).__init__(model, params, + normalized_cov_params=cov_params) + self.nobs = self.model.nobs + self.df_resid = self.nobs - np_matrix_rank(self.model.exog) + + + @cache_readonly + def fittedvalues(self): + """ + Returns the fitted values for the model. + + The fitted values reflect the mean structure specified by the + fixed effects and the predicted random effects. + """ + fit = np.dot(self.model.exog, self.fe_params) + re = self.random_effects + for group_ix, group in enumerate(self.model.group_labels): + ix = self.model.row_indices[group] + + mat = [] + if self.model.exog_re_li is not None: + mat.append(self.model.exog_re_li[group_ix]) + for c in self.model._vc_names: + if group in self.model.exog_vc[c]: + mat.append(self.model.exog_vc[c][group]) + mat = np.concatenate(mat, axis=1) + + fit[ix] += np.dot(mat, re[group]) + + return fit + + + @cache_readonly + def resid(self): + """ + Returns the residuals for the model. + + The residuals reflect the mean structure specified by the + fixed effects and the predicted random effects. + """ + return self.model.endog - self.fittedvalues + + + @cache_readonly + def bse_fe(self): + """ + Returns the standard errors of the fixed effect regression + coefficients. + """ + p = self.model.exog.shape[1] + return np.sqrt(np.diag(self.cov_params())[0:p]) + + + @cache_readonly + def bse_re(self): + """ + Returns the standard errors of the variance parameters. Note + that the sampling distribution of variance parameters is + strongly skewed unless the sample size is large, so these + standard errors may not give meaningful confidence intervals + of p-values if used in the usual way. + """ + p = self.model.exog.shape[1] + return np.sqrt(self.scale * np.diag(self.cov_params())[p:]) + + + def _expand_re_names(self, group): + names = list(self.model.data.exog_re_names) + + for v in self.model._vc_names: + if group in self.model.exog_vc[v]: + ix = range(self.model.exog_vc[v][group].shape[1]) + na = ["%s[%d]" % (v, j + 1) for j in ix] + names.extend(na) + return names + + + @cache_readonly + def random_effects(self): + """ + The conditional means of random effects given the data. + + Returns + ------- + random_effects : dict + A dictionary mapping the distinct `group` values to the + means of the random effects for the group. + """ + try: + cov_re_inv = np.linalg.inv(self.cov_re) + except np.linalg.LinAlgError: + raise ValueError("Cannot predict random effects from singular covariance structure.") + + vcomp = self.vcomp + k_re = self.k_re + + ranef_dict = {} + for group_ix, group in enumerate(self.model.group_labels): + + endog = self.model.endog_li[group_ix] + exog = self.model.exog_li[group_ix] + ex_r, ex2_r = self.model._aex_r[group_ix], self.model._aex_r2[group_ix] + vc_var = self.model._expand_vcomp(vcomp, group) + + # Get the residuals relative to fixed effects + resid = endog + if self.k_fe > 0: + expval = np.dot(exog, self.fe_params) + resid = resid - expval + + solver = _smw_solver(self.scale, ex_r, ex2_r, cov_re_inv, 1 / vc_var) + vir = solver(resid) + + xtvir = _dot(ex_r.T, vir) + + xtvir[0:k_re] = np.dot(self.cov_re, xtvir[0:k_re]) + xtvir[k_re:] *= vc_var + ranef_dict[group] = pd.Series(xtvir, index=self._expand_re_names(group)) + + return ranef_dict + + + @cache_readonly + def random_effects_cov(self): + """ + Returns the conditional covariance matrix of the random + effects for each group given the data. + + Returns + ------- + random_effects_cov : dict + A dictionary mapping the distinct values of the `group` + variable to the conditional covariance matrix of the + random effects given the data. + """ + + try: + cov_re_inv = np.linalg.inv(self.cov_re) + except np.linalg.LinAlgError: + cov_re_inv = None + + vcomp = self.vcomp + + ranef_dict = {} + for group_ix in range(self.model.n_groups): + + ex_r, ex2_r = self.model._aex_r[group_ix], self.model._aex_r2[group_ix] + label = self.model.group_labels[group_ix] + vc_var = self.model._expand_vcomp(vcomp, group_ix) + + solver = _smw_solver(self.scale, ex_r, ex2_r, cov_re_inv, 1 / vc_var) + + n = ex_r.shape[0] + m = self.cov_re.shape[0] + mat1 = np.empty((n, m)) + mat1[:, 0:m] = np.dot(ex_r[:, 0:m], self.cov_re) + mat1[:, m:] = np.dot(ex_r[:, m:], np.diag(vc_var)) + mat2 = solver(mat1) + mat2 = np.dot(mat1.T, mat2) + + v = -mat2 + v[0:m, 0:m] += self.cov_re + ix = np.arange(m, v.shape[0]) + v[ix, ix] += vc_var + na = self._expand_re_names(group_ix) + v = pd.DataFrame(v, index=na, columns=na) + ranef_dict[label] = v + + return ranef_dict + + + # Need to override since t-tests are only used for fixed effects parameters. + def t_test(self, r_matrix, scale=None, use_t=None): + """ + Compute a t-test for a each linear hypothesis of the form Rb = q + + Parameters + ---------- + r_matrix : array-like + If an array is given, a p x k 2d array or length k 1d + array specifying the linear restrictions. It is assumed + that the linear combination is equal to zero. + scale : float, optional + An optional `scale` to use. Default is the scale specified + by the model fit. + use_t : bool, optional + If use_t is None, then the default of the model is used. + If use_t is True, then the p-values are based on the t + distribution. + If use_t is False, then the p-values are based on the normal + distribution. + + Returns + ------- + res : ContrastResults instance + The results for the test are attributes of this results instance. + The available results have the same elements as the parameter table + in `summary()`. + """ + + if r_matrix.shape[1] != self.k_fe: + raise ValueError("r_matrix for t-test should have %d columns" % self.k_fe) + + d = self.k_re2 + self.k_vc + z0 = np.zeros((r_matrix.shape[0], d)) + r_matrix = np.concatenate((r_matrix, z0), axis=1) + tst_rslt = super(MixedLMResults, self).t_test(r_matrix, scale=scale, use_t=use_t) + return tst_rslt + + + def summary(self, yname=None, xname_fe=None, xname_re=None, + title=None, alpha=.05): + """ + Summarize the mixed model regression results. + + Parameters + ----------- + yname : string, optional + Default is `y` + xname_fe : list of strings, optional + Fixed effects covariate names + xname_re : list of strings, optional + Random effects covariate names + title : string, optional + Title for the top table. If not None, then this replaces + the default title + alpha : float + significance level for the confidence intervals + + Returns + ------- + smry : Summary instance + this holds the summary tables and text, which can be + printed or converted to various output formats. + + See Also + -------- + statsmodels.iolib.summary.Summary : class to hold summary + results + """ + + from statsmodels.iolib import summary2 + smry = summary2.Summary() + + info = OrderedDict() + info["Model:"] = "MixedLM" + if yname is None: + yname = self.model.endog_names + info["No. Observations:"] = str(self.model.n_totobs) + info["No. Groups:"] = str(self.model.n_groups) + + gs = np.array([len(x) for x in self.model.endog_li]) + info["Min. group size:"] = "%.0f" % min(gs) + info["Max. group size:"] = "%.0f" % max(gs) + info["Mean group size:"] = "%.1f" % np.mean(gs) + + info["Dependent Variable:"] = yname + info["Method:"] = self.method + info["Scale:"] = self.scale + info["Likelihood:"] = self.llf + info["Converged:"] = "Yes" if self.converged else "No" + smry.add_dict(info) + smry.add_title("Mixed Linear Model Regression Results") + + float_fmt = "%.3f" + + sdf = np.nan * np.ones((self.k_fe + self.k_re2 + self.k_vc, 6)) + + # Coefficient estimates + sdf[0:self.k_fe, 0] = self.fe_params + + # Standard errors + sdf[0:self.k_fe, 1] = np.sqrt(np.diag(self.cov_params()[0:self.k_fe])) + + # Z-scores + sdf[0:self.k_fe, 2] = sdf[0:self.k_fe, 0] / sdf[0:self.k_fe, 1] + + # p-values + sdf[0:self.k_fe, 3] = 2 * norm.cdf(-np.abs(sdf[0:self.k_fe, 2])) + + # Confidence intervals + qm = -norm.ppf(alpha / 2) + sdf[0:self.k_fe, 4] = sdf[0:self.k_fe, 0] - qm * sdf[0:self.k_fe, 1] + sdf[0:self.k_fe, 5] = sdf[0:self.k_fe, 0] + qm * sdf[0:self.k_fe, 1] + + # All random effects variances and covariances + jj = self.k_fe + for i in range(self.k_re): + for j in range(i + 1): + sdf[jj, 0] = self.cov_re[i, j] + sdf[jj, 1] = np.sqrt(self.scale) * self.bse[jj] + jj += 1 + + # Variance components + for i in range(self.k_vc): + sdf[jj, 0] = self.vcomp[i] + sdf[jj, 1] = np.sqrt(self.scale) * self.bse[jj] + jj += 1 + + sdf = pd.DataFrame(index=self.model.data.param_names, data=sdf) + sdf.columns = ['Coef.', 'Std.Err.', 'z', 'P>|z|', + '[' + str(alpha/2), str(1-alpha/2) + ']'] + for col in sdf.columns: + sdf[col] = [float_fmt % x if np.isfinite(x) else "" + for x in sdf[col]] + + smry.add_df(sdf, align='r') + + return smry + + + @cache_readonly + def llf(self): + return self.model.loglike(self.params_object, profile_fe=False) + + + @cache_readonly + def aic(self): + if self.reml: + return np.nan + if self.freepat is not None: + df = self.freepat.get_packed(use_sqrt=False, has_fe=True).sum() + 1 + else: + df = self.params.size + 1 + return -2 * (self.llf - df) + + + @cache_readonly + def bic(self): + if self.reml: + return np.nan + if self.freepat is not None: + df = self.freepat.get_packed(use_sqrt=False, has_fe=True).sum() + 1 + else: + df = self.params.size + 1 + return -2 * self.llf + np.log(self.nobs) * df + + + def profile_re(self, re_ix, vtype, num_low=5, dist_low=1., num_high=5, + dist_high=1.): + """ + Profile-likelihood inference for variance parameters. + + Parameters + ---------- + re_ix : integer + If vtype is `re`, this value is the index of the variance + parameter for which to construct a profile likelihood. If + `vtype` is 'vc' then `re_ix` is the name of the variance + parameter to be profiled. + vtype : string + Either 're' or 'vc', depending on whether the profile + analysis is for a random effect or a variance component. + num_low : integer + The number of points at which to calculate the likelihood + below the MLE of the parameter of interest. + dist_low : float + The distance below the MLE of the parameter of interest to + begin calculating points on the profile likelihood. + num_high : integer + The number of points at which to calculate the likelihood + abov the MLE of the parameter of interest. + dist_high : float + The distance above the MLE of the parameter of interest to + begin calculating points on the profile likelihood. + + Returns + ------- + An array with two columns. The first column contains the + values to which the parameter of interest is constrained. The + second column contains the corresponding likelihood values. + + Notes + ----- + Only variance parameters can be profiled. + """ + + pmodel = self.model + k_fe = pmodel.k_fe + k_re = pmodel.k_re + k_vc = pmodel.k_vc + endog, exog, groups = pmodel.endog, pmodel.exog, pmodel.groups + + # Need to permute the columns of the random effects design + # matrix so that the profiled variable is in the first column. + if vtype == 're': + ix = np.arange(k_re) + ix[0] = re_ix + ix[re_ix] = 0 + exog_re = pmodel.exog_re.copy()[:, ix] + + # Permute the covariance structure to match the permuted + # design matrix. + params = self.params_object.copy() + cov_re_unscaled = params.cov_re + cov_re_unscaled = cov_re_unscaled[np.ix_(ix, ix)] + params.cov_re = cov_re_unscaled + ru0 = cov_re_unscaled[0, 0] + + # Convert dist_low and dist_high to the profile + # parameterization + cov_re = self.scale * cov_re_unscaled + low = (cov_re[0, 0] - dist_low) / self.scale + high = (cov_re[0, 0] + dist_high) / self.scale + + elif vtype == 'vc': + re_ix = self.model._vc_names.index(re_ix) + params = self.params_object.copy() + vcomp = self.vcomp + low = (vcomp[re_ix] - dist_low) / self.scale + high = (vcomp[re_ix] + dist_high) / self.scale + ru0 = vcomp[re_ix] / self.scale + + # Define the sequence of values to which the parameter of + # interest will be constrained. + if low <= 0: + raise ValueError("dist_low is too large and would result in a " + "negative variance. Try a smaller value.") + left = np.linspace(low, ru0, num_low + 1) + right = np.linspace(ru0, high, num_high+1)[1:] + rvalues = np.concatenate((left, right)) + + # Indicators of which parameters are free and fixed. + free = MixedLMParams(k_fe, k_re, k_vc) + if self.freepat is None: + free.fe_params = np.ones(k_fe) + vcomp = np.ones(k_vc) + mat = np.ones((k_re, k_re)) + else: + # If a freepat already has been specified, we add the + # constraint to it. + free.fe_params = self.freepat.fe_params + vcomp = self.freepat.vcomp + mat = self.freepat.cov_re + if vtype == 're': + mat = mat[np.ix_(ix, ix)] + if vtype == 're': + mat[0, 0] = 0 + else: + vcomp[re_ix] = 0 + free.cov_re = mat + free.vcomp = vcomp + + klass = self.model.__class__ + init_kwargs = pmodel._get_init_kwds() + if vtype == 're': + init_kwargs['exog_re'] = exog_re + + likev = [] + for x in rvalues: + + model = klass(endog, exog, **init_kwargs) + + if vtype == 're': + cov_re = params.cov_re.copy() + cov_re[0, 0] = x + params.cov_re = cov_re + else: + params.vcomp[re_ix] = x + + # TODO should use fit_kwargs + rslt = model.fit(start_params=params, free=free, + reml=self.reml, cov_pen=self.cov_pen)._results + likev.append([x * rslt.scale, rslt.llf]) + + likev = np.asarray(likev) + + return likev + + +class MixedLMResultsWrapper(base.LikelihoodResultsWrapper): + _attrs = {'bse_re': ('generic_columns', 'exog_re_names_full'), + 'fe_params': ('generic_columns', 'xnames'), + 'bse_fe': ('generic_columns', 'xnames'), + 'cov_re': ('generic_columns_2d', 'exog_re_names'), + 'cov_re_unscaled': ('generic_columns_2d', 'exog_re_names'), + } + _upstream_attrs = base.LikelihoodResultsWrapper._wrap_attrs + _wrap_attrs = base.wrap.union_dicts(_attrs, _upstream_attrs) + + _methods = {} + _upstream_methods = base.LikelihoodResultsWrapper._wrap_methods + _wrap_methods = base.wrap.union_dicts(_methods, _upstream_methods) diff --git a/statsmodels/regression/quantile_regression.py b/statsmodels/regression/quantile_regression.py new file mode 100644 index 0000000..e98402d --- /dev/null +++ b/statsmodels/regression/quantile_regression.py @@ -0,0 +1,445 @@ +#!/usr/bin/env python + +''' +Quantile regression model + +Model parameters are estimated using iterated reweighted least squares. The +asymptotic covariance matrix estimated using kernel density estimation. + +Author: Vincent Arel-Bundock +License: BSD-3 +Created: 2013-03-19 + +The original IRLS function was written for Matlab by Shapour Mohammadi, +University of Tehran, 2008 (shmohammadi@gmail.com), with some lines based on +code written by James P. Lesage in Applied Econometrics Using MATLAB(1999).PP. +73-4. Translated to python with permission from original author by Christian +Prinoth (christian at prinoth dot name). +''' + +from statsmodels.compat.python import range +import numpy as np +import warnings +import scipy.stats as stats +from scipy.linalg import pinv +from scipy.stats import norm +from statsmodels.tools.tools import chain_dot +from statsmodels.compat.numpy import np_matrix_rank +from statsmodels.tools.decorators import cache_readonly +from statsmodels.regression.linear_model import (RegressionModel, + RegressionResults, + RegressionResultsWrapper) +from statsmodels.tools.sm_exceptions import (ConvergenceWarning, + IterationLimitWarning) + +class QuantReg(RegressionModel): + '''Quantile Regression + + Estimate a quantile regression model using iterative reweighted least + squares. + + Parameters + ---------- + endog : array or dataframe + endogenous/response variable + exog : array or dataframe + exogenous/explanatory variable(s) + + Notes + ----- + The Least Absolute Deviation (LAD) estimator is a special case where + quantile is set to 0.5 (q argument of the fit method). + + The asymptotic covariance matrix is estimated following the procedure in + Greene (2008, p.407-408), using either the logistic or gaussian kernels + (kernel argument of the fit method). + + References + ---------- + General: + + * Birkes, D. and Y. Dodge(1993). Alternative Methods of Regression, John Wiley and Sons. + * Green,W. H. (2008). Econometric Analysis. Sixth Edition. International Student Edition. + * Koenker, R. (2005). Quantile Regression. New York: Cambridge University Press. + * LeSage, J. P.(1999). Applied Econometrics Using MATLAB, + + Kernels (used by the fit method): + + * Green (2008) Table 14.2 + + Bandwidth selection (used by the fit method): + + * Bofinger, E. (1975). Estimation of a density function using order statistics. Australian Journal of Statistics 17: 1-17. + * Chamberlain, G. (1994). Quantile regression, censoring, and the structure of wages. In Advances in Econometrics, Vol. 1: Sixth World Congress, ed. C. A. Sims, 171-209. Cambridge: Cambridge University Press. + * Hall, P., and S. Sheather. (1988). On the distribution of the Studentized quantile. Journal of the Royal Statistical Society, Series B 50: 381-391. + + Keywords: Least Absolute Deviation(LAD) Regression, Quantile Regression, + Regression, Robust Estimation. + ''' + + def __init__(self, endog, exog, **kwargs): + super(QuantReg, self).__init__(endog, exog, **kwargs) + + def whiten(self, data): + """ + QuantReg model whitener does nothing: returns data. + """ + return data + + def fit(self, q=.5, vcov='robust', kernel='epa', bandwidth='hsheather', + max_iter=1000, p_tol=1e-6, **kwargs): + '''Solve by Iterative Weighted Least Squares + + Parameters + ---------- + q : float + Quantile must be between 0 and 1 + vcov : string, method used to calculate the variance-covariance matrix + of the parameters. Default is ``robust``: + + - robust : heteroskedasticity robust standard errors (as suggested + in Greene 6th edition) + - iid : iid errors (as in Stata 12) + + kernel : string, kernel to use in the kernel density estimation for the + asymptotic covariance matrix: + + - epa: Epanechnikov + - cos: Cosine + - gau: Gaussian + - par: Parzene + + bandwidth: string, Bandwidth selection method in kernel density + estimation for asymptotic covariance estimate (full + references in QuantReg docstring): + + - hsheather: Hall-Sheather (1988) + - bofinger: Bofinger (1975) + - chamberlain: Chamberlain (1994) + ''' + + if q < 0 or q > 1: + raise Exception('p must be between 0 and 1') + + kern_names = ['biw', 'cos', 'epa', 'gau', 'par'] + if kernel not in kern_names: + raise Exception("kernel must be one of " + ', '.join(kern_names)) + else: + kernel = kernels[kernel] + + if bandwidth == 'hsheather': + bandwidth = hall_sheather + elif bandwidth == 'bofinger': + bandwidth = bofinger + elif bandwidth == 'chamberlain': + bandwidth = chamberlain + else: + raise Exception("bandwidth must be in 'hsheather', 'bofinger', 'chamberlain'") + + endog = self.endog + exog = self.exog + nobs = self.nobs + exog_rank = np_matrix_rank(self.exog) + self.rank = exog_rank + self.df_model = float(self.rank - self.k_constant) + self.df_resid = self.nobs - self.rank + n_iter = 0 + xstar = exog + + beta = np.ones(exog_rank) + # TODO: better start, initial beta is used only for convergence check + + # Note the following doesn't work yet, + # the iteration loop always starts with OLS as initial beta +# if start_params is not None: +# if len(start_params) != rank: +# raise ValueError('start_params has wrong length') +# beta = start_params +# else: +# # start with OLS +# beta = np.dot(np.linalg.pinv(exog), endog) + + diff = 10 + cycle = False + + history = dict(params = [], mse=[]) + while n_iter < max_iter and diff > p_tol and not cycle: + n_iter += 1 + beta0 = beta + xtx = np.dot(xstar.T, exog) + xty = np.dot(xstar.T, endog) + beta = np.dot(pinv(xtx), xty) + resid = endog - np.dot(exog, beta) + + mask = np.abs(resid) < .000001 + resid[mask] = ((resid[mask] >= 0) * 2 - 1) * .000001 + resid = np.where(resid < 0, q * resid, (1-q) * resid) + resid = np.abs(resid) + xstar = exog / resid[:, np.newaxis] + diff = np.max(np.abs(beta - beta0)) + history['params'].append(beta) + history['mse'].append(np.mean(resid*resid)) + + if (n_iter >= 300) and (n_iter % 100 == 0): + # check for convergence circle, shouldn't happen + for ii in range(2, 10): + if np.all(beta == history['params'][-ii]): + cycle = True + break + warnings.warn("Convergence cycle detected", ConvergenceWarning) + + if n_iter == max_iter: + warnings.warn("Maximum number of iterations (" + str(max_iter) + + ") reached.", IterationLimitWarning) + + e = endog - np.dot(exog, beta) + # Greene (2008, p.407) writes that Stata 6 uses this bandwidth: + # h = 0.9 * np.std(e) / (nobs**0.2) + # Instead, we calculate bandwidth as in Stata 12 + iqre = stats.scoreatpercentile(e, 75) - stats.scoreatpercentile(e, 25) + h = bandwidth(nobs, q) + h = min(np.std(endog), + iqre / 1.34) * (norm.ppf(q + h) - norm.ppf(q - h)) + + fhat0 = 1. / (nobs * h) * np.sum(kernel(e / h)) + + if vcov == 'robust': + d = np.where(e > 0, (q/fhat0)**2, ((1-q)/fhat0)**2) + xtxi = pinv(np.dot(exog.T, exog)) + xtdx = np.dot(exog.T * d[np.newaxis, :], exog) + vcov = chain_dot(xtxi, xtdx, xtxi) + elif vcov == 'iid': + vcov = (1. / fhat0)**2 * q * (1 - q) * pinv(np.dot(exog.T, exog)) + else: + raise Exception("vcov must be 'robust' or 'iid'") + + lfit = QuantRegResults(self, beta, normalized_cov_params=vcov) + + lfit.q = q + lfit.iterations = n_iter + lfit.sparsity = 1. / fhat0 + lfit.bandwidth = h + lfit.history = history + + return RegressionResultsWrapper(lfit) + + +def _parzen(u): + z = np.where(np.abs(u) <= .5, 4./3 - 8. * u**2 + 8. * np.abs(u)**3, + 8. * (1 - np.abs(u))**3 / 3.) + z[np.abs(u) > 1] = 0 + return z + + +kernels = {} +kernels['biw'] = lambda u: 15. / 16 * (1 - u**2)**2 * np.where(np.abs(u) <= 1, 1, 0) +kernels['cos'] = lambda u: np.where(np.abs(u) <= .5, 1 + np.cos(2 * np.pi * u), 0) +kernels['epa'] = lambda u: 3. / 4 * (1-u**2) * np.where(np.abs(u) <= 1, 1, 0) +kernels['gau'] = lambda u: norm.pdf(u) +kernels['par'] = _parzen +#kernels['bet'] = lambda u: np.where(np.abs(u) <= 1, .75 * (1 - u) * (1 + u), 0) +#kernels['log'] = lambda u: logistic.pdf(u) * (1 - logistic.pdf(u)) +#kernels['tri'] = lambda u: np.where(np.abs(u) <= 1, 1 - np.abs(u), 0) +#kernels['trw'] = lambda u: 35. / 32 * (1 - u**2)**3 * np.where(np.abs(u) <= 1, 1, 0) +#kernels['uni'] = lambda u: 1. / 2 * np.where(np.abs(u) <= 1, 1, 0) + + +def hall_sheather(n, q, alpha=.05): + z = norm.ppf(q) + num = 1.5 * norm.pdf(z)**2. + den = 2. * z**2. + 1. + h = n**(-1. / 3) * norm.ppf(1. - alpha / 2.)**(2./3) * (num / den)**(1./3) + return h + + +def bofinger(n, q): + num = 9. / 2 * norm.pdf(2 * norm.ppf(q))**4 + den = (2 * norm.ppf(q)**2 + 1)**2 + h = n**(-1. / 5) * (num / den)**(1. / 5) + return h + + +def chamberlain(n, q, alpha=.05): + return norm.ppf(1 - alpha / 2) * np.sqrt(q*(1 - q) / n) + + +class QuantRegResults(RegressionResults): + '''Results instance for the QuantReg model''' + + @cache_readonly + def prsquared(self): + q = self.q + endog = self.model.endog + e = self.resid + e = np.where(e < 0, (1 - q) * e, q * e) + e = np.abs(e) + ered = endog - stats.scoreatpercentile(endog, q * 100) + ered = np.where(ered < 0, (1 - q) * ered, q * ered) + ered = np.abs(ered) + return 1 - np.sum(e) / np.sum(ered) + + #@cache_readonly + def scale(self): + return 1. + + @cache_readonly + def bic(self): + return np.nan + + @cache_readonly + def aic(self): + return np.nan + + @cache_readonly + def llf(self): + return np.nan + + @cache_readonly + def rsquared(self): + return np.nan + + @cache_readonly + def rsquared_adj(self): + return np.nan + + @cache_readonly + def mse(self): + return np.nan + + @cache_readonly + def mse_model(self): + return np.nan + + @cache_readonly + def mse_total(self): + return np.nan + + @cache_readonly + def centered_tss(self): + return np.nan + + @cache_readonly + def uncentered_tss(self): + return np.nan + + @cache_readonly + def HC0_se(self): + raise NotImplementedError + + @cache_readonly + def HC1_se(self): + raise NotImplementedError + + @cache_readonly + def HC2_se(self): + raise NotImplementedError + + @cache_readonly + def HC3_se(self): + raise NotImplementedError + + def summary(self, yname=None, xname=None, title=None, alpha=.05): + """Summarize the Regression Results + + Parameters + ----------- + yname : string, optional + Default is `y` + xname : list of strings, optional + Default is `var_##` for ## in p the number of regressors + title : string, optional + Title for the top table. If not None, then this replaces the + default title + alpha : float + significance level for the confidence intervals + + Returns + ------- + smry : Summary instance + this holds the summary tables and text, which can be printed or + converted to various output formats. + + See Also + -------- + statsmodels.iolib.summary.Summary : class to hold summary + results + + """ + + # #TODO: import where we need it (for now), add as cached attributes + # from statsmodels.stats.stattools import (jarque_bera, + # omni_normtest, durbin_watson) + # jb, jbpv, skew, kurtosis = jarque_bera(self.wresid) + # omni, omnipv = omni_normtest(self.wresid) + # + eigvals = self.eigenvals + condno = self.condition_number + # + # self.diagn = dict(jb=jb, jbpv=jbpv, skew=skew, kurtosis=kurtosis, + # omni=omni, omnipv=omnipv, condno=condno, + # mineigval=eigvals[0]) + + top_left = [('Dep. Variable:', None), + ('Model:', None), + ('Method:', ['Least Squares']), + ('Date:', None), + ('Time:', None) + ] + + top_right = [('Pseudo R-squared:', ["%#8.4g" % self.prsquared]), + ('Bandwidth:', ["%#8.4g" % self.bandwidth]), + ('Sparsity:', ["%#8.4g" % self.sparsity]), + ('No. Observations:', None), + ('Df Residuals:', None), #[self.df_resid]), #TODO: spelling + ('Df Model:', None) #[self.df_model]) + ] + + # diagn_left = [('Omnibus:', ["%#6.3f" % omni]), + # ('Prob(Omnibus):', ["%#6.3f" % omnipv]), + # ('Skew:', ["%#6.3f" % skew]), + # ('Kurtosis:', ["%#6.3f" % kurtosis]) + # ] + # + # diagn_right = [('Durbin-Watson:', ["%#8.3f" % durbin_watson(self.wresid)]), + # ('Jarque-Bera (JB):', ["%#8.3f" % jb]), + # ('Prob(JB):', ["%#8.3g" % jbpv]), + # ('Cond. No.', ["%#8.3g" % condno]) + # ] + + + if title is None: + title = self.model.__class__.__name__ + ' ' + "Regression Results" + + #create summary table instance + from statsmodels.iolib.summary import Summary + smry = Summary() + smry.add_table_2cols(self, gleft=top_left, gright=top_right, + yname=yname, xname=xname, title=title) + smry.add_table_params(self, yname=yname, xname=xname, alpha=.05, + use_t=True) + +# smry.add_table_2cols(self, gleft=diagn_left, gright=diagn_right, + #yname=yname, xname=xname, + #title="") + + #add warnings/notes, added to text format only + etext = [] + if eigvals[-1] < 1e-10: + wstr = "The smallest eigenvalue is %6.3g. This might indicate " + wstr += "that there are\n" + wstr += "strong multicollinearity problems or that the design " + wstr += "matrix is singular." + wstr = wstr % eigvals[-1] + etext.append(wstr) + elif condno > 1000: #TODO: what is recommended + wstr = "The condition number is large, %6.3g. This might " + wstr += "indicate that there are\n" + wstr += "strong multicollinearity or other numerical " + wstr += "problems." + wstr = wstr % condno + etext.append(wstr) + + if etext: + smry.add_extra_txt(etext) + + return smry diff --git a/statsmodels/regression/recursive_ls.py b/statsmodels/regression/recursive_ls.py new file mode 100644 index 0000000..7df69d9 --- /dev/null +++ b/statsmodels/regression/recursive_ls.py @@ -0,0 +1,697 @@ +""" +Recursive least squares model + +Author: Chad Fulton +License: Simplified-BSD +""" +from __future__ import division, absolute_import, print_function + +from warnings import warn +from statsmodels.compat.collections import OrderedDict + +import numpy as np +import pandas as pd +from statsmodels.regression.linear_model import OLS +from statsmodels.tools.data import _is_using_pandas +from statsmodels.tsa.statespace.mlemodel import ( + MLEModel, MLEResults, MLEResultsWrapper) +from statsmodels.tools.tools import Bunch +from statsmodels.tools.decorators import cache_readonly, resettable_cache +import statsmodels.base.wrapper as wrap + +# Columns are alpha = 0.1, 0.05, 0.025, 0.01, 0.005 +_cusum_squares_scalars = np.array([ + [1.0729830, 1.2238734, 1.3581015, 1.5174271, 1.6276236], + [-0.6698868, -0.6700069, -0.6701218, -0.6702672, -0.6703724], + [-0.5816458, -0.7351697, -0.8858694, -1.0847745, -1.2365861] +]) + + +class RecursiveLS(MLEModel): + r""" + Recursive least squares + + Parameters + ---------- + endog : array_like + The observed time-series process :math:`y` + exog : array_like + Array of exogenous regressors, shaped nobs x k. + + Notes + ----- + Recursive least squares (RLS) corresponds to expanding window ordinary + least squares (OLS). + + This model applies the Kalman filter to compute recursive estimates of the + coefficients and recursive residuals. + + References + ---------- + .. [1] Durbin, James, and Siem Jan Koopman. 2012. + Time Series Analysis by State Space Methods: Second Edition. + Oxford University Press. + + """ + def __init__(self, endog, exog, **kwargs): + # Standardize data + if not _is_using_pandas(endog, None): + endog = np.asanyarray(endog) + + exog_is_using_pandas = _is_using_pandas(exog, None) + if not exog_is_using_pandas: + exog = np.asarray(exog) + + # Make sure we have 2-dimensional array + if exog.ndim == 1: + if not exog_is_using_pandas: + exog = exog[:, None] + else: + exog = pd.DataFrame(exog) + + self.k_exog = exog.shape[1] + + # Handle coefficient initialization + # By default, do not calculate likelihood while it is controlled by + # diffuse initial conditions. + kwargs.setdefault('loglikelihood_burn', self.k_exog) + kwargs.setdefault('initialization', 'approximate_diffuse') + kwargs.setdefault('initial_variance', 1e9) + + # Initialize the state space representation + super(RecursiveLS, self).__init__( + endog, k_states=self.k_exog, exog=exog, **kwargs + ) + + # Setup the state space representation + self['design'] = self.exog[:, :, None].T + self['transition'] = np.eye(self.k_states) + + # Notice that the filter output does not depend on the measurement + # variance, so we set it here to 1 + self['obs_cov', 0, 0] = 1. + + @classmethod + def from_formula(cls, formula, data, subset=None): + """ + Not implemented for state space models + """ + return super(MLEModel, cls).from_formula(formula, data, subset) + + def fit(self): + """ + Fits the model by application of the Kalman filter + + Returns + ------- + RecursiveLSResults + """ + # Get the smoother results with an arbitrary measurement variance + smoother_results = self.smooth(return_ssm=True) + # Compute the MLE of sigma2 (see Harvey, 1989 equation 4.2.5) + resid = smoother_results.standardized_forecasts_error[0] + sigma2 = (np.inner(resid, resid) / + (self.nobs - self.loglikelihood_burn)) + + # Now construct a results class, where the params are the final + # estimates of the regression coefficients + self['obs_cov', 0, 0] = sigma2 + return self.smooth() + + def filter(self, return_ssm=False, **kwargs): + # Get the state space output + result = super(RecursiveLS, self).filter([], transformed=True, + cov_type='none', + return_ssm=True, **kwargs) + + # Wrap in a results object + if not return_ssm: + params = result.filtered_state[:, -1] + cov_kwds = { + 'custom_cov_type': 'nonrobust', + 'custom_cov_params': result.filtered_state_cov[:, :, -1], + 'custom_description': ('Parameters and covariance matrix' + ' estimates are RLS estimates' + ' conditional on the entire sample.') + } + result = RecursiveLSResultsWrapper( + RecursiveLSResults(self, params, result, cov_type='custom', + cov_kwds=cov_kwds) + ) + + return result + + def smooth(self, return_ssm=False, **kwargs): + # Get the state space output + result = super(RecursiveLS, self).smooth([], transformed=True, + cov_type='none', + return_ssm=True, **kwargs) + + # Wrap in a results object + if not return_ssm: + params = result.filtered_state[:, -1] + cov_kwds = { + 'custom_cov_type': 'nonrobust', + 'custom_cov_params': result.filtered_state_cov[:, :, -1], + 'custom_description': ('Parameters and covariance matrix' + ' estimates are RLS estimates' + ' conditional on the entire sample.') + } + result = RecursiveLSResultsWrapper( + RecursiveLSResults(self, params, result, cov_type='custom', + cov_kwds=cov_kwds) + ) + + return result + + @property + def param_names(self): + return self.exog_names + + @property + def start_params(self): + # Only parameter is the measurment disturbance standard deviation + return np.zeros(0) + + def update(self, params, **kwargs): + """ + Update the parameters of the model + + Updates the representation matrices to fill in the new parameter + values. + + Parameters + ---------- + params : array_like + Array of new parameters. + transformed : boolean, optional + Whether or not `params` is already transformed. If set to False, + `transform_params` is called. Default is True.. + + Returns + ------- + params : array_like + Array of parameters. + """ + pass + + +class RecursiveLSResults(MLEResults): + """ + Class to hold results from fitting a recursive least squares model. + + Parameters + ---------- + model : RecursiveLS instance + The fitted model instance + + Attributes + ---------- + specification : dictionary + Dictionary including all attributes from the recursive least squares + model instance. + + See Also + -------- + statsmodels.tsa.statespace.kalman_filter.FilterResults + statsmodels.tsa.statespace.mlemodel.MLEResults + """ + + def __init__(self, model, params, filter_results, cov_type='opg', + **kwargs): + super(RecursiveLSResults, self).__init__( + model, params, filter_results, cov_type, **kwargs) + + self.df_resid = np.inf # attribute required for wald tests + + # Save _init_kwds + self._init_kwds = self.model._get_init_kwds() + + # Save the model specification + self.specification = Bunch(**{ + 'k_exog': self.model.k_exog}) + + @property + def recursive_coefficients(self): + """ + Estimates of regression coefficients, recursively estimated + + Returns + ------- + out: Bunch + Has the following attributes: + + - `filtered`: a time series array with the filtered estimate of + the component + - `filtered_cov`: a time series array with the filtered estimate of + the variance/covariance of the component + - `smoothed`: a time series array with the smoothed estimate of + the component + - `smoothed_cov`: a time series array with the smoothed estimate of + the variance/covariance of the component + - `offset`: an integer giving the offset in the state vector where + this component begins + """ + out = None + spec = self.specification + start = offset = 0 + end = offset + spec.k_exog + out = Bunch( + filtered=self.filtered_state[start:end], + filtered_cov=self.filtered_state_cov[start:end, start:end], + smoothed=None, smoothed_cov=None, + offset=offset + ) + if self.smoothed_state is not None: + out.smoothed = self.smoothed_state[start:end] + if self.smoothed_state_cov is not None: + out.smoothed_cov = ( + self.smoothed_state_cov[start:end, start:end]) + return out + + @cache_readonly + def resid_recursive(self): + """ + Recursive residuals + + Returns + ------- + resid_recursive : array_like + An array of length `nobs` holding the recursive + residuals. + + Notes + ----- + The first `k_exog` residuals are typically unreliable due to + initialization. + + """ + # See Harvey (1989) section 5.4; he defines the standardized + # innovations in 5.4.1, but they have non-unit variance, whereas + # the standardized forecast errors assume unit variance. To convert + # to Harvey's definition, we need to multiply by the standard + # deviation. + return (self.filter_results.standardized_forecasts_error.squeeze() * + self.filter_results.obs_cov[0, 0]**0.5) + + @cache_readonly + def cusum(self): + r""" + Cumulative sum of standardized recursive residuals statistics + + Returns + ------- + cusum : array_like + An array of length `nobs - k_exog` holding the + CUSUM statistics. + + + Notes + ----- + The CUSUM statistic takes the form: + + .. math:: + + W_t = \frac{1}{\hat \sigma} \sum_{j=k+1}^t w_j + + where :math:`w_j` is the recursive residual at time :math:`j` and + :math:`\hat \sigma` is the estimate of the standard deviation + from the full sample. + + Excludes the first `k_exog` datapoints. + + Due to differences in the way :math:`\hat \sigma` is calculated, the + output of this function differs slightly from the output in the + R package strucchange and the Stata contributed .ado file cusum6. The + calculation in this package is consistent with the description of + Brown et al. (1975) + + References + ---------- + .. [1] Brown, R. L., J. Durbin, and J. M. Evans. 1975. + "Techniques for Testing the Constancy of + Regression Relationships over Time." + Journal of the Royal Statistical Society. + Series B (Methodological) 37 (2): 149-92. + + """ + llb = self.loglikelihood_burn + return (np.cumsum(self.resid_recursive[self.loglikelihood_burn:]) / + np.std(self.resid_recursive[llb:], ddof=1)) + + @cache_readonly + def cusum_squares(self): + r""" + Cumulative sum of squares of standardized recursive residuals + statistics + + Returns + ------- + cusum_squares : array_like + An array of length `nobs - k_exog` holding the + CUSUM of squares statistics. + + Notes + ----- + The CUSUM of squares statistic takes the form: + + .. math:: + + s_t = \left ( \sum_{j=k+1}^t w_j^2 \right ) \Bigg / + \left ( \sum_{j=k+1}^T w_j^2 \right ) + + where :math:`w_j` is the recursive residual at time :math:`j`. + + Excludes the first `k_exog` datapoints. + + References + ---------- + .. [1] Brown, R. L., J. Durbin, and J. M. Evans. 1975. + "Techniques for Testing the Constancy of + Regression Relationships over Time." + Journal of the Royal Statistical Society. + Series B (Methodological) 37 (2): 149-92. + + """ + numer = np.cumsum(self.resid_recursive[self.loglikelihood_burn:]**2) + denom = numer[-1] + return numer / denom + + def plot_recursive_coefficient(self, variables=0, alpha=0.05, + legend_loc='upper left', fig=None, + figsize=None): + r""" + Plot the recursively estimated coefficients on a given variable + + Parameters + ---------- + variables : int or str or iterable of int or string, optional + Integer index or string name of the variable whose coefficient will + be plotted. Can also be an iterable of integers or strings. Default + is the first variable. + alpha : float, optional + The confidence intervals for the coefficient are (1 - alpha) % + legend_loc : string, optional + The location of the legend in the plot. Default is upper left. + fig : Matplotlib Figure instance, optional + If given, subplots are created in this figure instead of in a new + figure. Note that the grid will be created in the provided + figure using `fig.add_subplot()`. + figsize : tuple, optional + If a figure is created, this argument allows specifying a size. + The tuple is (width, height). + + Notes + ----- + All plots contain (1 - `alpha`) % confidence intervals. + """ + # Get variables + if isinstance(variables, (int, str)): + variables = [variables] + k_variables = len(variables) + + # If a string was given for `variable`, try to get it from exog names + exog_names = self.model.exog_names + for i in range(k_variables): + variable = variables[i] + if isinstance(variable, str): + variables[i] = exog_names.index(variable) + + # Create the plot + from scipy.stats import norm + from statsmodels.graphics.utils import _import_mpl, create_mpl_fig + plt = _import_mpl() + fig = create_mpl_fig(fig, figsize) + + for i in range(k_variables): + variable = variables[i] + ax = fig.add_subplot(k_variables, 1, i + 1) + + # Get dates, if applicable + if hasattr(self.data, 'dates') and self.data.dates is not None: + dates = self.data.dates._mpl_repr() + else: + dates = np.arange(self.nobs) + llb = self.loglikelihood_burn + + # Plot the coefficient + coef = self.recursive_coefficients + ax.plot(dates[llb:], coef.filtered[variable, llb:], + label='Recursive estimates: %s' % exog_names[variable]) + + # Legend + handles, labels = ax.get_legend_handles_labels() + + # Get the critical value for confidence intervals + if alpha is not None: + critical_value = norm.ppf(1 - alpha / 2.) + + # Plot confidence intervals + std_errors = np.sqrt(coef.filtered_cov[variable, variable, :]) + ci_lower = ( + coef.filtered[variable] - critical_value * std_errors) + ci_upper = ( + coef.filtered[variable] + critical_value * std_errors) + ci_poly = ax.fill_between( + dates[llb:], ci_lower[llb:], ci_upper[llb:], alpha=0.2 + ) + ci_label = ('$%.3g \\%%$ confidence interval' + % ((1 - alpha)*100)) + + # Only add CI to legend for the first plot + if i == 0: + # Proxy artist for fill_between legend entry + # See http://matplotlib.org/1.3.1/users/legend_guide.html + p = plt.Rectangle((0, 0), 1, 1, + fc=ci_poly.get_facecolor()[0]) + + handles.append(p) + labels.append(ci_label) + + ax.legend(handles, labels, loc=legend_loc) + + # Remove xticks for all but the last plot + if i < k_variables - 1: + ax.xaxis.set_ticklabels([]) + + fig.tight_layout() + + return fig + + def _cusum_significance_bounds(self, alpha, ddof=0, points=None): + """ + Parameters + ---------- + alpha : float, optional + The significance bound is alpha %. + ddof : int, optional + The number of periods additional to `k_exog` to exclude in + constructing the bounds. Default is zero. This is usually used + only for testing purposes. + points : iterable, optional + The points at which to evaluate the significance bounds. Default is + two points, beginning and end of the sample. + + Notes + ----- + Comparing against the cusum6 package for Stata, this does not produce + exactly the same confidence bands (which are produced in cusum6 by + lw, uw) because they burn the first k_exog + 1 periods instead of the + first k_exog. If this change is performed + (so that `tmp = (self.nobs - llb - 1)**0.5`), then the output here + matches cusum6. + + The cusum6 behavior does not seem to be consistent with + Brown et al. (1975); it is likely they did that because they needed + three initial observations to get the initial OLS estimates, whereas + we do not need to do that. + """ + # Get the constant associated with the significance level + if alpha == 0.01: + scalar = 1.143 + elif alpha == 0.05: + scalar = 0.948 + elif alpha == 0.10: + scalar = 0.950 + else: + raise ValueError('Invalid significance level.') + + # Get the points for the significance bound lines + llb = self.loglikelihood_burn + tmp = (self.nobs - llb - ddof)**0.5 + upper_line = lambda x: scalar * tmp + 2 * scalar * (x - llb) / tmp + + if points is None: + points = np.array([llb, self.nobs]) + return -upper_line(points), upper_line(points) + + def plot_cusum(self, alpha=0.05, legend_loc='upper left', + fig=None, figsize=None): + r""" + Plot the CUSUM statistic and significance bounds. + + Parameters + ---------- + alpha : float, optional + The plotted significance bounds are alpha %. + legend_loc : string, optional + The location of the legend in the plot. Default is upper left. + fig : Matplotlib Figure instance, optional + If given, subplots are created in this figure instead of in a new + figure. Note that the grid will be created in the provided + figure using `fig.add_subplot()`. + figsize : tuple, optional + If a figure is created, this argument allows specifying a size. + The tuple is (width, height). + + Notes + ----- + Evidence of parameter instability may be found if the CUSUM statistic + moves out of the significance bounds. + + References + ---------- + .. [1] Brown, R. L., J. Durbin, and J. M. Evans. 1975. + "Techniques for Testing the Constancy of + Regression Relationships over Time." + Journal of the Royal Statistical Society. + Series B (Methodological) 37 (2): 149-92. + + """ + # Create the plot + from statsmodels.graphics.utils import _import_mpl, create_mpl_fig + plt = _import_mpl() + fig = create_mpl_fig(fig, figsize) + ax = fig.add_subplot(1, 1, 1) + + # Get dates, if applicable + if hasattr(self.data, 'dates') and self.data.dates is not None: + dates = self.data.dates._mpl_repr() + else: + dates = np.arange(self.nobs) + llb = self.loglikelihood_burn + + # Plot cusum series and reference line + ax.plot(dates[llb:], self.cusum, label='CUSUM') + ax.hlines(0, dates[llb], dates[-1], color='k', alpha=0.3) + + # Plot significance bounds + lower_line, upper_line = self._cusum_significance_bounds(alpha) + ax.plot([dates[llb], dates[-1]], upper_line, 'k--', + label='%d%% significance' % (alpha * 100)) + ax.plot([dates[llb], dates[-1]], lower_line, 'k--') + + ax.legend(loc=legend_loc) + + return fig + + def _cusum_squares_significance_bounds(self, alpha, points=None): + """ + Notes + ----- + Comparing against the cusum6 package for Stata, this does not produce + exactly the same confidence bands (which are produced in cusum6 by + lww, uww) because they use a different method for computing the + critical value; in particular, they use tabled values from + Table C, pp. 364-365 of "The Econometric Analysis of Time Series" + Harvey, (1990), and use the value given to 99 observations for any + larger number of observations. In contrast, we use the approximating + critical values suggested in Edgerton and Wells (1994) which allows + computing relatively good approximations for any number of + observations. + """ + # Get the approximate critical value associated with the significance + # level + llb = self.loglikelihood_burn + n = 0.5 * (self.nobs - llb) - 1 + try: + ix = [0.1, 0.05, 0.025, 0.01, 0.005].index(alpha / 2) + except ValueError: + raise ValueError('Invalid significance level.') + scalars = _cusum_squares_scalars[:, ix] + crit = scalars[0] / n**0.5 + scalars[1] / n + scalars[2] / n**1.5 + + # Get the points for the significance bound lines + if points is None: + points = np.array([llb, self.nobs]) + line = (points - llb) / (self.nobs - llb) + + return line - crit, line + crit + + def plot_cusum_squares(self, alpha=0.05, legend_loc='upper left', + fig=None, figsize=None): + r""" + Plot the CUSUM of squares statistic and significance bounds. + + Parameters + ---------- + alpha : float, optional + The plotted significance bounds are alpha %. + legend_loc : string, optional + The location of the legend in the plot. Default is upper left. + fig : Matplotlib Figure instance, optional + If given, subplots are created in this figure instead of in a new + figure. Note that the grid will be created in the provided + figure using `fig.add_subplot()`. + figsize : tuple, optional + If a figure is created, this argument allows specifying a size. + The tuple is (width, height). + + Notes + ----- + Evidence of parameter instability may be found if the CUSUM of squares + statistic moves out of the significance bounds. + + Critical values used in creating the significance bounds are computed + using the approximate formula of [2]_. + + References + ---------- + .. [1] Brown, R. L., J. Durbin, and J. M. Evans. 1975. + "Techniques for Testing the Constancy of + Regression Relationships over Time." + Journal of the Royal Statistical Society. + Series B (Methodological) 37 (2): 149-92. + .. [2] Edgerton, David, and Curt Wells. 1994. + "Critical Values for the Cusumsq Statistic + in Medium and Large Sized Samples." + Oxford Bulletin of Economics and Statistics 56 (3): 355-65. + + """ + # Create the plot + from statsmodels.graphics.utils import _import_mpl, create_mpl_fig + plt = _import_mpl() + fig = create_mpl_fig(fig, figsize) + ax = fig.add_subplot(1, 1, 1) + + # Get dates, if applicable + if hasattr(self.data, 'dates') and self.data.dates is not None: + dates = self.data.dates._mpl_repr() + else: + dates = np.arange(self.nobs) + llb = self.loglikelihood_burn + + # Plot cusum series and reference line + ax.plot(dates[llb:], self.cusum_squares, label='CUSUM of squares') + ref_line = (np.arange(llb, self.nobs) - llb) / (self.nobs - llb) + ax.plot(dates[llb:], ref_line, 'k', alpha=0.3) + + # Plot significance bounds + lower_line, upper_line = self._cusum_squares_significance_bounds(alpha) + ax.plot([dates[llb], dates[-1]], upper_line, 'k--', + label='%d%% significance' % (alpha * 100)) + ax.plot([dates[llb], dates[-1]], lower_line, 'k--') + + ax.legend(loc=legend_loc) + + return fig + + +class RecursiveLSResultsWrapper(MLEResultsWrapper): + _attrs = {} + _wrap_attrs = wrap.union_dicts(MLEResultsWrapper._wrap_attrs, + _attrs) + _methods = {} + _wrap_methods = wrap.union_dicts(MLEResultsWrapper._wrap_methods, + _methods) +wrap.populate_wrapper(RecursiveLSResultsWrapper, RecursiveLSResults) diff --git a/statsmodels/regression/tests/__init__.py b/statsmodels/regression/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/regression/tests/generate_lasso.py b/statsmodels/regression/tests/generate_lasso.py new file mode 100644 index 0000000..da4f532 --- /dev/null +++ b/statsmodels/regression/tests/generate_lasso.py @@ -0,0 +1,27 @@ +import numpy as np + +""" +Generate data sets for testing OLS.fit_regularized + +After running this script, rerun lasso_r_results.R in R to rebuild the +results file "glmnet_r_results.py". + +Currently only tests OLS. Our implementation covers GLS, but it's not +clear if glmnet does. +""" + +n = 300 +p = 5 + +np.random.seed(83423) + +exog = np.random.normal(size=(n,p)) +params = (-1.)**np.arange(p) +params[::3] = 0 +expval = np.dot(exog, params) +endog = expval + np.random.normal(size=n) +data = np.concatenate((endog[:,None], exog), axis=1) +data = np.around(100*data) + +fname = "results/lasso_data.csv" +np.savetxt(fname, data, fmt="%.0f", delimiter=",") diff --git a/statsmodels/regression/tests/generate_lme.py b/statsmodels/regression/tests/generate_lme.py new file mode 100644 index 0000000..cd02b2f --- /dev/null +++ b/statsmodels/regression/tests/generate_lme.py @@ -0,0 +1,76 @@ +""" +Generate test data sets for lme. + +After running this script, run lme_results.R with R +to update the output. +""" + +import numpy as np +import os + +np.random.seed(348491) + +# Number of groups +ngroup = 100 + +# Sample size range per group +n_min = 1 +n_max = 5 + +dsix = 0 + +# Number of random effects +for pr in 1,2: + + re_sd = np.linspace(-0.5, 1.5, pr) + + # Number of fixed effects + for pf in 1,2,3: + + # Error standard deviation + for sig in 0.5,2: + + params = np.linspace(-1, 1, pf) + + endog = [] + exog_fe = [] + exog_re = [] + groups = [] + for i in range(ngroup): + + n = np.random.randint(n_min, n_max, 1) + x_fe = np.random.normal(size=(n, pf)) + x_re = np.zeros((n, pr)) + u = np.linspace(-1, 1, n) + for j in range(pr): + x_re[:,j] = u**j + + re = np.random.normal(size=pr) * re_sd + + expval = np.dot(x_fe, params) + np.dot(x_re, re) + + endog.append(expval + sig*np.random.normal(size=n)) + exog_fe.append(x_fe) + exog_re.append(x_re) + groups.append(i*np.ones(n)) + + endog = np.concatenate(endog) + exog_fe = np.concatenate(exog_fe, axis=0) + exog_re = np.concatenate(exog_re, axis=0) + groups = np.concatenate(groups, axis=0) + + data = np.concatenate((groups[:,None], endog[:,None], + exog_fe, exog_re), axis=1) + + header = ["groups,endog",] +\ + ["exog_fe_%d" % k for k in range(pf)] +\ + ["exog_re_%d" % k for k in range(pr)] + header = ",".join(header) + + cur_dir = os.path.dirname(os.path.abspath(__file__)) + + fname = os.path.join(cur_dir, "results", + "lme%02d.csv" % dsix) + np.savetxt(fname, data, fmt="%.3f", header=header, + delimiter=",", comments="") + dsix += 1 diff --git a/statsmodels/regression/tests/glmnet_r_results.py b/statsmodels/regression/tests/glmnet_r_results.py new file mode 100644 index 0000000..d3b00c5 --- /dev/null +++ b/statsmodels/regression/tests/glmnet_r_results.py @@ -0,0 +1,164 @@ +import numpy as np + +rslt_0 = np.array([100,2,0,38.51677,-0.0002828592,-0.01440669]) + +rslt_1 = np.array([100,2,0,5.991962,-0.00144282,-0.08156386]) + +rslt_2 = np.array([100,2,0,0.9321552,-0.003400212,-0.2968083]) + +rslt_3 = np.array([100,2,0.5,0.2352493,0,-0.4099712]) + +rslt_4 = np.array([100,2,0.5,0.07703354,0,-0.5185569]) + +rslt_5 = np.array([100,2,0.5,0.02522501,0,-0.5578565]) + +rslt_6 = np.array([100,2,1,0.1416793,0,-0.4346288]) + +rslt_7 = np.array([100,2,1,0.04639359,0,-0.530877]) + +rslt_8 = np.array([100,2,1,0.01829859,0,-0.5592558]) + +rslt_9 = np.array([100,3,0,38.51677,-0.0002931891,-0.01441805,0.01019003]) + +rslt_10 = np.array([100,3,0,5.991962,-0.00177573,-0.08193033,0.05812813]) + +rslt_11 = np.array([100,3,0,0.9321552,-0.007886374,-0.3017527,0.2167204]) + +rslt_12 = np.array([100,3,0.5,0.2143504,0,-0.4350311,0.2878706]) + +rslt_13 = np.array([100,3,0.5,0.07019009,0,-0.540186,0.3830582]) + +rslt_14 = np.array([100,3,0.5,0.02298409,-0.007207869,-0.5779581,0.417658]) + +rslt_15 = np.array([100,3,1,0.1176247,0,-0.4728138,0.3103276]) + +rslt_16 = np.array([100,3,1,0.03851677,0,-0.5564642,0.393978]) + +rslt_17 = np.array([100,3,1,0.01384221,-0.004948496,-0.5824816,0.4202673]) + +rslt_18 = np.array([100,5,0,38.51677,-0.0002957436,-0.01439344,0.01022347,-0.001361073,0.01156754]) + +rslt_19 = np.array([100,5,0,5.991962,-0.001844459,-0.08115691,0.05920275,-0.006436703,0.06552873]) + +rslt_20 = np.array([100,5,0,0.9321552,-0.008226096,-0.2921193,0.2311589,-0.008479325,0.2404427]) + +rslt_21 = np.array([100,5,0.5,0.2143504,0,-0.4132961,0.3222149,0,0.3262246]) + +rslt_22 = np.array([100,5,0.5,0.0639546,0,-0.5145012,0.4359585,0,0.4294001]) + +rslt_23 = np.array([100,5,0.5,0.02094225,-0.00787628,-0.5466386,0.4728884,0.0106367,0.4627422]) + +rslt_24 = np.array([100,5,1,0.1176247,0,-0.4469856,0.3513112,0,0.3519996]) + +rslt_25 = np.array([100,5,1,0.03851677,0,-0.5243974,0.4448608,0,0.4370223]) + +rslt_26 = np.array([100,5,1,0.01261251,-0.00600524,-0.5501652,0.4761259,0.009292623,0.4655236]) + +rslt_27 = np.array([200,2,0,37.37243,-0.0006197982,-0.01442844]) + +rslt_28 = np.array([200,2,0,5.813939,-0.002965157,-0.0813082]) + +rslt_29 = np.array([200,2,0,0.9044607,-0.0046755,-0.2916905]) + +rslt_30 = np.array([200,2,0.5,0.207982,0,-0.4102587]) + +rslt_31 = np.array([200,2,0.5,0.06810473,0,-0.5061677]) + +rslt_32 = np.array([200,2,0.5,0.02230123,0,-0.5404787]) + +rslt_33 = np.array([200,2,1,0.11413,0,-0.443054]) + +rslt_34 = np.array([200,2,1,0.03737243,0,-0.5201972]) + +rslt_35 = np.array([200,2,1,0.01343095,0,-0.544259]) + +rslt_36 = np.array([200,3,0,37.37243,-0.0006182692,-0.01444479,0.01107838]) + +rslt_37 = np.array([200,3,0,5.813939,-0.002912734,-0.08183274,0.06300276]) + +rslt_38 = np.array([200,3,0,0.9044607,-0.003838731,-0.298655,0.2325274]) + +rslt_39 = np.array([200,3,0.5,0.207982,0,-0.426489,0.3142956]) + +rslt_40 = np.array([200,3,0.5,0.06810473,0,-0.5287444,0.4093069]) + +rslt_41 = np.array([200,3,0.5,0.02230123,0,-0.5654985,0.4434813]) + +rslt_42 = np.array([200,3,1,0.1252575,0,-0.450539,0.3272248]) + +rslt_43 = np.array([200,3,1,0.04101619,0,-0.540326,0.4170119]) + +rslt_44 = np.array([200,3,1,0.01343095,0,-0.5697273,0.4464131]) + +rslt_45 = np.array([200,5,0,37.37243,-0.0006213086,-0.01441334,0.01110832,-0.00159415,0.01237059]) + +rslt_46 = np.array([200,5,0,5.813939,-0.003007826,-0.08084357,0.06395108,-0.008286656,0.06957285]) + +rslt_47 = np.array([200,5,0,0.9044607,-0.004970054,-0.2862855,0.2446989,-0.02121838,0.2488685]) + +rslt_48 = np.array([200,5,0.5,0.207982,0,-0.398901,0.3436805,0,0.3354236]) + +rslt_49 = np.array([200,5,0.5,0.06810473,0,-0.4912754,0.4492343,0,0.4280285]) + +rslt_50 = np.array([200,5,0.5,0.02230123,0,-0.5240797,0.4869532,-0.007872715,0.4611676]) + +rslt_51 = np.array([200,5,1,0.11413,0,-0.4298238,0.3738058,0,0.3604706]) + +rslt_52 = np.array([200,5,1,0.03737243,0,-0.5044899,0.4632316,0,0.4395307]) + +rslt_53 = np.array([200,5,1,0.01343095,0,-0.5276608,0.4907892,-0.005343287,0.4641237]) + +rslt_54 = np.array([300,2,0,34.28346,-0.0003952878,-0.01440603]) + +rslt_55 = np.array([300,2,0,5.333396,-0.001501322,-0.08029644]) + +rslt_56 = np.array([300,2,0,0.8297037,0.002123792,-0.2786158]) + +rslt_57 = np.array([300,2,0.5,0.1907915,0,-0.3787717]) + +rslt_58 = np.array([300,2,0.5,0.06247562,0,-0.4648646]) + +rslt_59 = np.array([300,2,0.5,0.02045795,0.008282189,-0.4960003]) + +rslt_60 = np.array([300,2,1,0.1046967,0,-0.4057543]) + +rslt_61 = np.array([300,2,1,0.03428346,0,-0.476403]) + +rslt_62 = np.array([300,2,1,0.01232084,0.006463487,-0.4988773]) + +rslt_63 = np.array([300,3,0,34.28346,-0.000389794,-0.01441521,0.01276503]) + +rslt_64 = np.array([300,3,0,5.333396,-0.001327446,-0.08058424,0.07142295]) + +rslt_65 = np.array([300,3,0,0.8297037,0.004333533,-0.2821765,0.2505531]) + +rslt_66 = np.array([300,3,0.5,0.2093935,0,-0.3745606,0.3227598]) + +rslt_67 = np.array([300,3,0.5,0.06856692,0,-0.4707627,0.4155033]) + +rslt_68 = np.array([300,3,0.5,0.02045795,0.01586083,-0.5078635,0.4505092]) + +rslt_69 = np.array([300,3,1,0.1149045,0,-0.4043541,0.347238]) + +rslt_70 = np.array([300,3,1,0.03762605,0,-0.483917,0.4268009]) + +rslt_71 = np.array([300,3,1,0.01232084,0.01417268,-0.5109371,0.4530943]) + +rslt_72 = np.array([300,5,0,34.28346,-0.0003887545,-0.01441065,0.01279253,-0.001336729,0.01332977]) + +rslt_73 = np.array([300,5,0,5.333396,-0.001294265,-0.08044256,0.07228947,-0.006888477,0.07488032]) + +rslt_74 = np.array([300,5,0,0.8297037,0.00476926,-0.2804704,0.2614478,-0.01761104,0.2661808]) + +rslt_75 = np.array([300,5,0.5,0.2093935,0,-0.3705814,0.347887,0,0.351998]) + +rslt_76 = np.array([300,5,0.5,0.06856692,0,-0.465371,0.449883,0,0.4508697]) + +rslt_77 = np.array([300,5,0.5,0.02045795,0.01744528,-0.5021737,0.4881574,-0.007930221,0.4878982]) + +rslt_78 = np.array([300,5,1,0.1149045,0,-0.3996701,0.3772643,0,0.3807041]) + +rslt_79 = np.array([300,5,1,0.03762605,0,-0.4782089,0.4633918,0,0.4639368]) + +rslt_80 = np.array([300,5,1,0.01232084,0.01578941,-0.5051176,0.4915133,-0.005703398,0.4910846]) + diff --git a/statsmodels/regression/tests/lasso_r_results.R b/statsmodels/regression/tests/lasso_r_results.R new file mode 100644 index 0000000..e45286e --- /dev/null +++ b/statsmodels/regression/tests/lasso_r_results.R @@ -0,0 +1,40 @@ +library(glmnet) +library(R2nparray) + +# Run the glmnet lasso (elastic net) on all the test data sets + +data = read.csv("results/lasso_data.csv", header=FALSE) + +ik = 0 +rslt = list() + +for (n in c(100, 200, 300)) { + for (p in c(2, 3, 5)) { + + endog = data[1:n, 1] + exog = data[1:n, 2:(p+1)] + exog = as.matrix(exog) + + endog = (endog - mean(endog)) / sd(endog) + for (k in 1:p) { + exog[,k] = exog[,k] - mean(exog[,k]) + exog[,k] = exog[,k] / sd(exog[,k]) + } + + for (alpha in c(0, 0.5, 1)) { + + fit = glmnet(exog, endog, intercept=FALSE, standardize=FALSE, alpha=alpha) + + for (q in c(0.3, 0.5, 0.7)) { + ii = round(q * length(fit$lambda)) + coefs = coef(fit, s=fit$lambda[ii]) + coefs = coefs[2:length(coefs)] + rname = sprintf("rslt_%d", ik) + ik = ik + 1 + rslt[[rname]] = c(n, p, alpha, fit$lambda[ii], coefs) + } + } + } +} + +R2nparray(rslt, fname="glmnet_r_results.py") diff --git a/statsmodels/regression/tests/lme_examples.R b/statsmodels/regression/tests/lme_examples.R new file mode 100644 index 0000000..e92a617 --- /dev/null +++ b/statsmodels/regression/tests/lme_examples.R @@ -0,0 +1,6 @@ +library(lme4) +library(MASS) + +md = lmer(size ~ Time + (1 | tree), Sitka) + +md = lmer(size ~ Time + (1 + Time | tree), Sitka) diff --git a/statsmodels/regression/tests/lme_r_results.py b/statsmodels/regression/tests/lme_r_results.py new file mode 100644 index 0000000..9c81f54 --- /dev/null +++ b/statsmodels/regression/tests/lme_r_results.py @@ -0,0 +1,458 @@ +import numpy as np + +coef_ml_drf_0 = np.array([-0.9887517]) + +vcov_ml_drf_0 = np.array([0.001317148]).reshape(1,1, order='F') + +cov_re_ml_drf_0 = np.array([0.2522485]).reshape(1,1, order='F') + +scale_ml_drf_0 = np.array([0.2718486]) + +loglike_ml_drf_0 = np.array([-240.1254]) + +ranef_mean_ml_drf_0 = np.array([0.04977167]) + +ranef_condvar_ml_drf_0 = np.array([0.130841]) + +coef_reml_drf_0 = np.array([-0.9887533]) + +vcov_reml_drf_0 = np.array([0.001323559]).reshape(1,1, order='F') + +cov_re_reml_drf_0 = np.array([0.2524129]).reshape(1,1, order='F') + +scale_reml_drf_0 = np.array([0.2733467]) + +loglike_reml_drf_0 = np.array([-242.5214]) + +ranef_mean_reml_drf_0 = np.array([0.04964696]) + +ranef_condvar_reml_drf_0 = np.array([0.1312315]) + +coef_ml_drf_1 = np.array([-0.9115929]) + +vcov_ml_drf_1 = np.array([0.01340632]).reshape(1,1, order='F') + +cov_re_ml_drf_1 = np.array([0]).reshape(1,1, order='F') + +scale_ml_drf_1 = np.array([4.050921]) + +loglike_ml_drf_1 = np.array([-538.0763]) + +ranef_mean_ml_drf_1 = np.array([0]) + +ranef_condvar_ml_drf_1 = np.array([0]) + +coef_reml_drf_1 = np.array([-0.9115929]) + +vcov_reml_drf_1 = np.array([0.01345931]).reshape(1,1, order='F') + +cov_re_reml_drf_1 = np.array([2.839777e-14]).reshape(1,1, order='F') + +scale_reml_drf_1 = np.array([4.066932]) + +loglike_reml_drf_1 = np.array([-539.3124]) + +ranef_mean_reml_drf_1 = np.array([2.424384e-14]) + +ranef_condvar_reml_drf_1 = np.array([2.839777e-14]) + +coef_ml_drf_2 = np.array([-1.012044,0.9789052]) + +vcov_ml_drf_2 = np.array([0.00117849,1.458744e-05,1.458744e-05,0.001054926]).reshape(2,2, order='F') + +cov_re_ml_drf_2 = np.array([0.1596058]).reshape(1,1, order='F') + +scale_ml_drf_2 = np.array([0.2129146]) + +loglike_ml_drf_2 = np.array([-200.319]) + +ranef_mean_ml_drf_2 = np.array([0.3197174]) + +ranef_condvar_ml_drf_2 = np.array([0.09122291]) + +coef_reml_drf_2 = np.array([-1.012137,0.9790792]) + +vcov_reml_drf_2 = np.array([0.001190455,1.482666e-05,1.482666e-05,0.001066002]).reshape(2,2, order='F') + +cov_re_reml_drf_2 = np.array([0.1595015]).reshape(1,1, order='F') + +scale_reml_drf_2 = np.array([0.2154276]) + +loglike_reml_drf_2 = np.array([-205.275]) + +ranef_mean_reml_drf_2 = np.array([0.3172978]) + +ranef_condvar_reml_drf_2 = np.array([0.09164674]) + +coef_ml_drf_3 = np.array([-1.028053,0.8602685]) + +vcov_ml_drf_3 = np.array([0.01398831,0.001592619,0.001592619,0.01602274]).reshape(2,2, order='F') + +cov_re_ml_drf_3 = np.array([0.8130996]).reshape(1,1, order='F') + +scale_ml_drf_3 = np.array([3.100447]) + +loglike_ml_drf_3 = np.array([-477.1707]) + +ranef_mean_ml_drf_3 = np.array([-0.2641747]) + +ranef_condvar_ml_drf_3 = np.array([0.6441656]) + +coef_reml_drf_3 = np.array([-1.027583,0.8605714]) + +vcov_reml_drf_3 = np.array([0.01411922,0.001607343,0.001607343,0.01617574]).reshape(2,2, order='F') + +cov_re_reml_drf_3 = np.array([0.8117898]).reshape(1,1, order='F') + +scale_reml_drf_3 = np.array([3.13369]) + +loglike_reml_drf_3 = np.array([-479.5354]) + +ranef_mean_reml_drf_3 = np.array([-0.2614875]) + +ranef_condvar_reml_drf_3 = np.array([0.6447625]) + +coef_ml_drf_4 = np.array([-1.005151,-0.003657404,1.054786]) + +vcov_ml_drf_4 = np.array([0.001190639,-5.327162e-05,5.992985e-05,-5.327162e-05,0.001460303,-2.662532e-05,5.992985e-05,-2.662532e-05,0.00148609]).reshape(3,3, order='F') + +cov_re_ml_drf_4 = np.array([0.1703249]).reshape(1,1, order='F') + +scale_ml_drf_4 = np.array([0.251763]) + +loglike_ml_drf_4 = np.array([-231.6389]) + +ranef_mean_ml_drf_4 = np.array([-0.2063164]) + +ranef_condvar_ml_drf_4 = np.array([0.0459578]) + +coef_reml_drf_4 = np.array([-1.005067,-0.003496032,1.054666]) + +vcov_reml_drf_4 = np.array([0.001206925,-5.4182e-05,6.073475e-05,-5.4182e-05,0.001479871,-2.723494e-05,6.073475e-05,-2.723494e-05,0.001506198]).reshape(3,3, order='F') + +cov_re_reml_drf_4 = np.array([0.1705659]).reshape(1,1, order='F') + +scale_reml_drf_4 = np.array([0.2556394]) + +loglike_reml_drf_4 = np.array([-238.761]) + +ranef_mean_reml_drf_4 = np.array([-0.2055303]) + +ranef_condvar_reml_drf_4 = np.array([0.04649027]) + +coef_ml_drf_5 = np.array([-0.8949725,0.08141558,1.052529]) + +vcov_ml_drf_5 = np.array([0.01677563,0.0008077524,-0.001255011,0.0008077524,0.01719346,0.0009266736,-0.001255011,0.0009266736,0.01608435]).reshape(3,3, order='F') + +cov_re_ml_drf_5 = np.array([0.3444677]).reshape(1,1, order='F') + +scale_ml_drf_5 = np.array([4.103944]) + +loglike_ml_drf_5 = np.array([-579.4568]) + +ranef_mean_ml_drf_5 = np.array([0.08254713]) + +ranef_condvar_ml_drf_5 = np.array([0.3177935]) + +coef_reml_drf_5 = np.array([-0.8946164,0.08134261,1.052486]) + +vcov_reml_drf_5 = np.array([0.0169698,0.0008162714,-0.001268635,0.0008162714,0.01739219,0.0009345538,-0.001268635,0.0009345538,0.01627074]).reshape(3,3, order='F') + +cov_re_reml_drf_5 = np.array([0.3420993]).reshape(1,1, order='F') + +scale_reml_drf_5 = np.array([4.155737]) + +loglike_reml_drf_5 = np.array([-582.8377]) + +ranef_mean_reml_drf_5 = np.array([0.08111449]) + +ranef_condvar_reml_drf_5 = np.array([0.3160797]) + +coef_ml_drf_6 = np.array([-0.8885425]) + +vcov_ml_drf_6 = np.array([0.002443738]).reshape(1,1, order='F') + +cov_re_ml_drf_6 = np.array([0.2595201,0.04591071,0.04591071,2.204612]).reshape(2,2, order='F') + +scale_ml_drf_6 = np.array([0.243133]) + +loglike_ml_drf_6 = np.array([-382.551]) + +ranef_mean_ml_drf_6 = np.array([-0.0597406,0.6037288]) + +ranef_condvar_ml_drf_6 = np.array([0.2420741,0.2222169,0.2222169,0.4228908]).reshape(2,2, order='F') + +coef_reml_drf_6 = np.array([-0.8883881]) + +vcov_reml_drf_6 = np.array([0.002461581]).reshape(1,1, order='F') + +cov_re_reml_drf_6 = np.array([0.2595767,0.04590012,0.04590012,2.204822]).reshape(2,2, order='F') + +scale_reml_drf_6 = np.array([0.2453537]) + +loglike_reml_drf_6 = np.array([-384.6373]) + +ranef_mean_reml_drf_6 = np.array([-0.05969892,0.6031793]) + +ranef_condvar_reml_drf_6 = np.array([0.2421365,0.2221108,0.2221108,0.4244443]).reshape(2,2, order='F') + +coef_ml_irf_6 = np.array([-0.8874992]) + +vcov_ml_irf_6 = np.array([0.002445505]).reshape(1,1, order='F') + +cov_re_ml_irf_6 = np.array([0.2587624,0,0,2.188653]).reshape(2,2, order='F') + +scale_ml_irf_6 = np.array([0.2432694]) + +loglike_ml_irf_6 = np.array([-382.6581]) + +coef_reml_irf_6 = np.array([-0.8873394]) + +vcov_reml_irf_6 = np.array([0.002463375]).reshape(1,1, order='F') + +cov_re_reml_irf_6 = np.array([0.2588157,0,0,2.188876]).reshape(2,2, order='F') + +scale_reml_irf_6 = np.array([0.2454935]) + +loglike_reml_irf_6 = np.array([-384.7441]) + +coef_ml_drf_7 = np.array([-0.9645281]) + +vcov_ml_drf_7 = np.array([0.01994]).reshape(1,1, order='F') + +cov_re_ml_drf_7 = np.array([0.2051329,0.0734377,0.0734377,3.285381]).reshape(2,2, order='F') + +scale_ml_drf_7 = np.array([3.423247]) + +loglike_ml_drf_7 = np.array([-587.7101]) + +ranef_mean_ml_drf_7 = np.array([0.07007965,-0.2920284]) + +ranef_condvar_ml_drf_7 = np.array([0.1823183,0.02247519,0.02247519,1.125011]).reshape(2,2, order='F') + +coef_reml_drf_7 = np.array([-0.9647862]) + +vcov_reml_drf_7 = np.array([0.02002546]).reshape(1,1, order='F') + +cov_re_reml_drf_7 = np.array([0.2056226,0.0726139,0.0726139,3.2876]).reshape(2,2, order='F') + +scale_reml_drf_7 = np.array([3.440244]) + +loglike_reml_drf_7 = np.array([-588.7476]) + +ranef_mean_reml_drf_7 = np.array([0.07000628,-0.2916737]) + +ranef_condvar_reml_drf_7 = np.array([0.1828266,0.02229138,0.02229138,1.128947]).reshape(2,2, order='F') + +coef_ml_irf_7 = np.array([-0.9665524]) + +vcov_ml_irf_7 = np.array([0.01998144]).reshape(1,1, order='F') + +cov_re_ml_irf_7 = np.array([0.2021561,0,0,3.270735]).reshape(2,2, order='F') + +scale_ml_irf_7 = np.array([3.423186]) + +loglike_ml_irf_7 = np.array([-587.7456]) + +coef_reml_irf_7 = np.array([-0.9667854]) + +vcov_reml_irf_7 = np.array([0.02006657]).reshape(1,1, order='F') + +cov_re_reml_irf_7 = np.array([0.2026938,0,0,3.273129]).reshape(2,2, order='F') + +scale_reml_irf_7 = np.array([3.440197]) + +loglike_reml_irf_7 = np.array([-588.782]) + +coef_ml_drf_8 = np.array([-1.083882,0.8955623]) + +vcov_ml_drf_8 = np.array([0.002491643,0.0001693531,0.0001693531,0.00253309]).reshape(2,2, order='F') + +cov_re_ml_drf_8 = np.array([0.1506188,0.126091,0.126091,2.485462]).reshape(2,2, order='F') + +scale_ml_drf_8 = np.array([0.2586519]) + +loglike_ml_drf_8 = np.array([-363.6234]) + +ranef_mean_ml_drf_8 = np.array([0.2852326,-0.5047804]) + +ranef_condvar_ml_drf_8 = np.array([0.05400391,0.002330104,0.002330104,0.122761]).reshape(2,2, order='F') + +coef_reml_drf_8 = np.array([-1.083938,0.8956893]) + +vcov_reml_drf_8 = np.array([0.002528969,0.0001712206,0.0001712206,0.002573335]).reshape(2,2, order='F') + +cov_re_reml_drf_8 = np.array([0.1505098,0.1256311,0.1256311,2.484219]).reshape(2,2, order='F') + +scale_reml_drf_8 = np.array([0.2635901]) + +loglike_reml_drf_8 = np.array([-367.7667]) + +ranef_mean_reml_drf_8 = np.array([0.2829798,-0.5042857]) + +ranef_condvar_reml_drf_8 = np.array([0.05463632,0.002393538,0.002393538,0.1249828]).reshape(2,2, order='F') + +coef_ml_irf_8 = np.array([-1.079481,0.898216]) + +vcov_ml_irf_8 = np.array([0.002511536,0.0001812511,0.0001812511,0.002573405]).reshape(2,2, order='F') + +cov_re_ml_irf_8 = np.array([0.1498568,0,0,2.403849]).reshape(2,2, order='F') + +scale_ml_irf_8 = np.array([0.2605245]) + +loglike_ml_irf_8 = np.array([-364.4824]) + +coef_reml_irf_8 = np.array([-1.07952,0.8983678]) + +vcov_reml_irf_8 = np.array([0.002549354,0.0001833386,0.0001833386,0.002614672]).reshape(2,2, order='F') + +cov_re_reml_irf_8 = np.array([0.1497193,0,0,2.403076]).reshape(2,2, order='F') + +scale_reml_irf_8 = np.array([0.2655558]) + +loglike_reml_irf_8 = np.array([-368.6141]) + +coef_ml_drf_9 = np.array([-1.272698,0.8617471]) + +vcov_ml_drf_9 = np.array([0.02208544,0.001527479,0.001527479,0.02597528]).reshape(2,2, order='F') + +cov_re_ml_drf_9 = np.array([0.510175,0.08826114,0.08826114,3.342888]).reshape(2,2, order='F') + +scale_ml_drf_9 = np.array([3.722112]) + +loglike_ml_drf_9 = np.array([-589.8274]) + +ranef_mean_ml_drf_9 = np.array([0.03253644,0.224043]) + +ranef_condvar_ml_drf_9 = np.array([0.3994872,0.02478884,0.02478884,1.195077]).reshape(2,2, order='F') + +coef_reml_drf_9 = np.array([-1.272483,0.861814]) + +vcov_reml_drf_9 = np.array([0.02228589,0.001535598,0.001535598,0.0262125]).reshape(2,2, order='F') + +cov_re_reml_drf_9 = np.array([0.5123204,0.08897376,0.08897376,3.341722]).reshape(2,2, order='F') + +scale_reml_drf_9 = np.array([3.764058]) + +loglike_reml_drf_9 = np.array([-591.7188]) + +ranef_mean_reml_drf_9 = np.array([0.03239688,0.2230525]) + +ranef_condvar_reml_drf_9 = np.array([0.401762,0.02521271,0.02521271,1.203536]).reshape(2,2, order='F') + +coef_ml_irf_9 = np.array([-1.277018,0.86395]) + +vcov_ml_irf_9 = np.array([0.02205706,0.001509887,0.001509887,0.02599941]).reshape(2,2, order='F') + +cov_re_ml_irf_9 = np.array([0.5086816,0,0,3.312757]).reshape(2,2, order='F') + +scale_ml_irf_9 = np.array([3.72105]) + +loglike_ml_irf_9 = np.array([-589.8628]) + +coef_reml_irf_9 = np.array([-1.276822,0.8640243]) + +vcov_reml_irf_9 = np.array([0.02225705,0.001517774,0.001517774,0.02623682]).reshape(2,2, order='F') + +cov_re_reml_irf_9 = np.array([0.5107725,0,0,3.31152]).reshape(2,2, order='F') + +scale_reml_irf_9 = np.array([3.762967]) + +loglike_reml_irf_9 = np.array([-591.7543]) + +coef_ml_drf_10 = np.array([-0.9419566,-0.02359824,1.085796]) + +vcov_ml_drf_10 = np.array([0.001963536,-0.0003221793,0.0001950186,-0.0003221793,0.002534251,0.0004107718,0.0001950186,0.0004107718,0.002580736]).reshape(3,3, order='F') + +cov_re_ml_drf_10 = np.array([0.2040541,0.09038325,0.09038325,2.218903]).reshape(2,2, order='F') + +scale_ml_drf_10 = np.array([0.2558286]) + +loglike_ml_drf_10 = np.array([-379.6591]) + +ranef_mean_ml_drf_10 = np.array([0.03876325,-0.725853]) + +ranef_condvar_ml_drf_10 = np.array([0.1988816,0.1872403,0.1872403,0.4052274]).reshape(2,2, order='F') + +coef_reml_drf_10 = np.array([-0.9426367,-0.02336203,1.085733]) + +vcov_reml_drf_10 = np.array([0.002011348,-0.0003300612,0.0002002948,-0.0003300612,0.002589149,0.000418987,0.0002002948,0.000418987,0.002637433]).reshape(3,3, order='F') + +cov_re_reml_drf_10 = np.array([0.2034827,0.09063836,0.09063836,2.219191]).reshape(2,2, order='F') + +scale_reml_drf_10 = np.array([0.2630213]) + +loglike_reml_drf_10 = np.array([-386.0008]) + +ranef_mean_reml_drf_10 = np.array([0.03838686,-0.7240812]) + +ranef_condvar_reml_drf_10 = np.array([0.1983981,0.1865469,0.1865469,0.4100937]).reshape(2,2, order='F') + +coef_ml_irf_10 = np.array([-0.9441033,-0.01755913,1.088568]) + +vcov_ml_irf_10 = np.array([0.001960114,-0.0003215658,0.0001944005,-0.0003215658,0.00253441,0.0004061179,0.0001944005,0.0004061179,0.002589158]).reshape(3,3, order='F') + +cov_re_ml_irf_10 = np.array([0.2032228,0,0,2.192893]).reshape(2,2, order='F') + +scale_ml_irf_10 = np.array([0.2553399]) + +loglike_ml_irf_10 = np.array([-380.162]) + +coef_reml_irf_10 = np.array([-0.9448257,-0.01722993,1.088557]) + +vcov_reml_irf_10 = np.array([0.00200783,-0.0003294349,0.0001996613,-0.0003294349,0.00258937,0.0004141667,0.0001996613,0.0004141667,0.002646242]).reshape(3,3, order='F') + +cov_re_reml_irf_10 = np.array([0.2026653,0,0,2.193124]).reshape(2,2, order='F') + +scale_reml_irf_10 = np.array([0.2625147]) + +loglike_reml_irf_10 = np.array([-386.5024]) + +coef_ml_drf_11 = np.array([-1.36971,0.1596278,0.8588724]) + +vcov_ml_drf_11 = np.array([0.0232326,0.00172214,0.002275343,0.00172214,0.02318941,0.0004755663,0.002275343,0.0004755663,0.02123474]).reshape(3,3, order='F') + +cov_re_ml_drf_11 = np.array([0.3719096,0.332198,0.332198,1.120588]).reshape(2,2, order='F') + +scale_ml_drf_11 = np.array([4.849781]) + +loglike_ml_drf_11 = np.array([-601.6432]) + +ranef_mean_ml_drf_11 = np.array([-0.4256917,-0.3907759]) + +ranef_condvar_ml_drf_11 = np.array([0.2987928,0.1992074,0.1992074,0.7477486]).reshape(2,2, order='F') + +coef_reml_drf_11 = np.array([-1.370236,0.1597671,0.8585994]) + +vcov_reml_drf_11 = np.array([0.02351795,0.001749756,0.002301599,0.001749756,0.02346869,0.0004785668,0.002301599,0.0004785668,0.02149093]).reshape(3,3, order='F') + +cov_re_reml_drf_11 = np.array([0.3680346,0.3324419,0.3324419,1.118623]).reshape(2,2, order='F') + +scale_reml_drf_11 = np.array([4.922222]) + +loglike_reml_drf_11 = np.array([-604.5746]) + +ranef_mean_reml_drf_11 = np.array([-0.4168539,-0.3879533]) + +ranef_condvar_reml_drf_11 = np.array([0.2965372,0.2010191,0.2010191,0.7503986]).reshape(2,2, order='F') + +coef_ml_irf_11 = np.array([-1.370117,0.1414964,0.8466083]) + +vcov_ml_irf_11 = np.array([0.02319951,0.001705996,0.002265252,0.001705996,0.02345623,0.000514879,0.002265252,0.000514879,0.02153162]).reshape(3,3, order='F') + +cov_re_ml_irf_11 = np.array([0.4004789,0,0,1.108087]).reshape(2,2, order='F') + +scale_ml_irf_11 = np.array([4.78776]) + +loglike_ml_irf_11 = np.array([-602.308]) + +coef_reml_irf_11 = np.array([-1.370663,0.1417561,0.8464232]) + +vcov_reml_irf_11 = np.array([0.02348548,0.001734072,0.002291519,0.001734072,0.02373715,0.0005177618,0.002291519,0.0005177618,0.02178966]).reshape(3,3, order='F') + +cov_re_reml_irf_11 = np.array([0.3966454,0,0,1.106551]).reshape(2,2, order='F') + +scale_reml_irf_11 = np.array([4.860342]) + +loglike_reml_irf_11 = np.array([-605.2274]) + diff --git a/statsmodels/regression/tests/lme_results.R b/statsmodels/regression/tests/lme_results.R new file mode 100644 index 0000000..3aef78a --- /dev/null +++ b/statsmodels/regression/tests/lme_results.R @@ -0,0 +1,90 @@ +library(lme4) +library(R2nparray) + +files = list.files(path="results", pattern="lme...csv") + +rslt = list() + +# Check the code with a sequence of data files with different +# dimensions and random effects structures. +for (file in files) { + + # Fit a model with independent random effects (irf=TRUE) or + # dependent random effects (irf=FALSE). + for (irf in c(FALSE, TRUE)) { + + if (irf) { + rf = "irf" + } else { + rf = "drf" + } + + # Use REML or ML estimation + for (reml in c(FALSE, TRUE)) { + + if (reml) { + meth = "reml" + } else { + meth = "ml" + } + + data = read.csv(paste("results", file, sep="/")) + + exog_fe_ix = grep("exog_fe", names(data)) + exog_re_ix = grep("exog_re", names(data)) + + # No need to check independent random effects when there is + # only one of them. + if (irf & (length(exog_re_ix) == 1)) { + next + } + + pr = length(exog_re_ix) + fml_fe = paste(names(data)[exog_fe_ix], collapse="+") + + if (irf) { + st = NULL + for (ik in exog_re_ix) { + st[length(st) + 1] = sprintf("(0 + %s | groups)", names(data)[ik]) + } + fml_re = paste(st, collapse="+") + + fml = sprintf("endog ~ 0 + %s + %s", fml_fe, fml_re) + } else { + fml_re = paste(names(data)[exog_re_ix], collapse="+") + fml = sprintf("endog ~ 0 + %s + (0 + %s | groups)", fml_fe, fml_re) + } + + md = lmer(as.formula(fml), data=data, REML=reml) + + ds_ix = as.integer(substr(file, 4, 6)) + rslt[[sprintf("coef_%s_%s_%d", meth, rf, ds_ix)]] = as.vector(fixef(md)) + rslt[[sprintf("vcov_%s_%s_%d", meth, rf, ds_ix)]] = as.matrix(vcov(md)) + if (irf) { + rev = NULL + for (k in 1:length(exog_re_ix)) { + rev[k] = as.numeric(VarCorr(md)[[k]]) + } + rev = diag(rev) + rslt[[sprintf("cov_re_%s_%s_%d", meth, rf, ds_ix)]] = rev + } else { + rslt[[sprintf("cov_re_%s_%s_%d", meth, rf, ds_ix)]] = array(as.numeric(VarCorr(md)$groups), + c(pr, pr)) + } + rslt[[sprintf("scale_%s_%s_%d", meth, rf, ds_ix)]] = attr(VarCorr(md), "sc")^2 + rslt[[sprintf("loglike_%s_%s_%d", meth, rf, ds_ix)]] = as.numeric(logLik(md)) + + # Apparently lmer does not support these things when the random effects + # are independent. + if (!irf) { + reo = ranef(md, condVar=TRUE) + re = as.matrix(reo$groups) + condvar = attr(reo$groups, "postVar") + rslt[[sprintf("ranef_mean_%s_%s_%d", meth, rf, ds_ix)]] = re[1,] + rslt[[sprintf("ranef_condvar_%s_%s_%d", meth, rf, ds_ix)]] = condvar[,,1] + } + } + } +} + +R2nparray(rslt, fname="lme_r_results.py") diff --git a/statsmodels/regression/tests/results/__init__.py b/statsmodels/regression/tests/results/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/regression/tests/results/lasso_data.csv b/statsmodels/regression/tests/results/lasso_data.csv new file mode 100644 index 0000000..12e133f --- /dev/null +++ b/statsmodels/regression/tests/results/lasso_data.csv @@ -0,0 +1,300 @@ +-178,3,59,-132,-32,-126 +303,17,-241,12,-81,41 +-54,159,2,5,-68,-150 +395,122,5,34,135,215 +-52,101,29,17,100,60 +255,-14,-146,-60,46,29 +-21,192,-131,51,-181,-111 +278,49,-69,69,-51,93 +-38,25,-48,-115,-5,30 +-191,101,75,-109,-48,82 +-373,-179,15,-76,56,-86 +123,-68,-78,-115,-26,-85 +-32,-102,84,42,45,41 +-78,-32,48,74,-57,34 +225,4,-115,-107,125,130 +-162,29,22,24,-31,144 +32,88,-32,67,-65,-93 +28,-50,-80,-43,234,-107 +35,-244,132,-31,47,154 +1,62,61,92,-58,13 +-427,-176,67,-152,-82,-94 +-54,-52,3,-54,-57,16 +185,-46,-173,95,114,-50 +-111,-49,19,25,-46,-129 +-212,-131,-91,-37,-87,-93 +352,-12,-15,106,-14,146 +76,32,-78,65,115,60 +34,28,-35,-22,73,11 +243,58,-189,-101,112,230 +244,-37,-241,-9,166,16 +10,122,-112,-31,-136,-32 +170,-128,-165,106,18,-61 +38,54,-104,-53,32,17 +-143,-142,74,-119,-140,3 +68,-118,-114,68,109,43 +168,-104,-215,7,83,65 +-80,16,-115,-74,-44,14 +432,-103,-317,-34,-87,35 +-173,-50,-40,-74,211,-73 +-156,-102,39,-60,-8,-12 +-306,143,43,19,41,-122 +90,28,-6,-31,-20,62 +11,140,-101,73,-67,-63 +30,145,-39,75,93,-46 +36,-20,26,-76,-88,86 +-398,-194,234,9,48,-37 +137,-71,-53,-128,-41,111 +28,43,-192,-97,-249,-4 +-165,-40,114,63,-33,-5 +38,71,58,73,34,9 +174,-15,69,65,-88,15 +-12,8,122,153,126,-61 +50,-61,-74,-72,38,18 +-520,9,277,-157,42,-19 +-24,-79,97,-34,7,29 +42,-83,-64,83,74,-44 +-186,92,35,-123,29,-85 +-90,-124,-149,107,31,-228 +-228,-165,5,-189,134,5 +99,-23,-92,97,102,-44 +145,108,105,74,58,70 +16,54,48,157,4,-170 +-162,9,9,-45,39,-6 +-96,-87,82,-61,69,71 +51,23,-114,-163,172,112 +117,-129,-27,22,-40,-107 +-140,24,81,253,-26,-186 +236,98,82,154,-71,90 +-500,-16,118,-154,-104,-34 +-368,1,155,-217,339,-71 +-325,155,-126,-244,65,-70 +-96,-112,25,67,29,-171 +376,-87,-237,-22,6,40 +147,-46,103,21,151,42 +236,-107,-177,60,-131,9 +102,-87,-50,58,-99,-128 +408,-31,-119,163,96,82 +73,19,-56,109,-13,-82 +99,32,24,62,-110,31 +-183,38,59,12,-82,4 +40,-37,135,99,-3,-4 +-224,213,54,-99,-133,104 +59,-111,-18,-111,-68,96 +-68,8,-63,-48,226,-206 +-86,-62,141,117,-24,-55 +-370,143,116,50,281,-211 +-333,-14,-45,-203,47,-74 +62,-29,-82,-82,-199,102 +-260,0,-72,-71,-76,-181 +-165,152,110,62,-6,-56 +-101,-13,40,17,123,-65 +193,234,-26,0,-149,60 +112,-74,-59,146,116,25 +36,26,111,92,-117,62 +-106,-33,85,61,83,-200 +10,-162,-23,-34,89,30 +92,162,-158,-24,46,-58 +-200,117,55,-109,-16,-7 +154,-94,-110,38,-74,-62 +-115,150,-48,-117,-77,-126 +124,32,-94,13,11,77 +97,-118,-30,36,-44,87 +-42,-31,14,-64,-323,84 +133,12,54,113,-154,47 +270,-87,-155,97,241,143 +18,-134,-41,-64,-20,-92 +-149,-98,13,-39,78,35 +66,-73,-194,10,-167,-190 +268,85,-171,-33,1,114 +153,6,13,155,-138,40 +-163,31,-52,-49,26,18 +-232,-53,112,11,-131,-146 +-87,151,4,91,38,-52 +38,2,-101,-7,29,35 +1,235,131,64,50,42 +9,64,123,195,-78,-10 +242,-48,-63,-10,189,9 +-234,25,38,29,89,-66 +380,159,-167,218,130,-125 +-369,-169,215,77,-13,-205 +220,92,-109,-9,-351,126 +109,-113,-28,-35,-40,76 +-10,46,71,11,-81,-68 +191,-85,-24,96,66,64 +6,-2,72,51,-18,95 +158,153,14,233,88,23 +-113,28,1,-94,254,-58 +97,67,13,16,-66,121 +11,55,60,99,117,-87 +37,169,-47,-44,-14,30 +36,23,-141,-180,-110,11 +-380,138,149,10,-117,-160 +-93,-115,-17,102,-91,-59 +-160,108,101,-45,-36,8 +-93,-109,-1,27,17,-72 +32,60,44,-42,100,-57 +-266,110,173,-44,-81,-28 +-220,-43,47,-0,-59,-21 +-52,51,-4,36,43,47 +104,-75,27,3,24,67 +-184,-125,-44,-48,43,-91 +504,-159,-118,30,8,233 +-320,-12,-35,-106,146,-145 +55,-63,-176,-59,43,-59 +-47,-134,91,70,117,46 +104,-28,39,14,11,102 +110,-255,52,35,-91,49 +-333,-179,45,55,-29,-161 +-304,-64,28,-87,122,-161 +-15,30,-35,84,188,-170 +-122,42,-29,38,160,-99 +295,-100,-51,100,-75,-10 +-281,-65,-45,11,109,-45 +-15,82,56,97,90,103 +80,-32,113,163,3,92 +91,37,-58,4,-18,26 +192,-73,-36,-2,-90,130 +84,-186,50,-3,-42,-6 +28,-109,-151,84,-228,-90 +-281,101,57,-88,-176,3 +118,-103,154,321,-16,-8 +-314,29,135,-135,17,-16 +11,100,187,14,17,123 +-3,-108,54,14,146,42 +365,-7,-84,187,-174,-6 +374,-113,-188,21,61,33 +-67,18,-30,-29,7,12 +69,-181,-51,-21,11,25 +62,-95,-135,125,-99,-133 +448,209,-60,58,-69,100 +203,25,-136,64,-20,-103 +-346,-152,153,33,7,-80 +-3,-17,3,-47,-43,-44 +-32,-156,-3,72,-133,27 +-11,57,23,-14,43,98 +281,31,-50,-13,-89,186 +-233,-180,55,-82,61,-98 +225,-79,16,243,8,37 +25,-80,28,133,-57,-228 +86,20,-37,-38,-76,28 +-184,-113,33,-62,54,21 +-39,-31,-42,61,-27,-80 +243,-46,-159,-37,181,146 +143,-5,9,11,-133,111 +-131,-36,-8,-26,-106,-108 +252,-53,-55,121,-72,13 +20,135,-14,-187,-54,12 +-428,-63,-75,-183,-45,-144 +266,-105,-2,30,37,125 +-346,169,156,101,-130,-355 +233,-185,-88,122,67,18 +331,-81,-20,158,-102,-134 +93,54,23,89,115,-31 +-229,-62,65,-96,135,-81 +-115,-133,64,-79,89,107 +309,-120,-52,84,37,91 +-221,-24,70,-193,152,288 +-305,36,88,-52,10,-56 +-137,78,77,1,-32,6 +149,-68,-27,136,54,-40 +-13,-213,73,12,-7,116 +152,-102,96,75,45,-20 +38,220,-38,-46,-120,39 +138,67,-31,-41,55,36 +-331,49,125,-94,-105,-60 +-2,-97,-85,81,-11,-48 +130,-50,35,112,74,-15 +-87,62,76,-14,127,-87 +23,-121,-8,72,-45,-48 +43,-81,48,42,-53,74 +125,-76,-81,58,19,62 +23,14,137,86,-186,131 +67,35,-87,-39,16,50 +-274,61,137,71,17,-146 +-126,-76,88,16,-33,-69 +-284,-48,32,18,73,-89 +-189,34,201,-116,-17,38 +280,47,-21,255,10,59 +-142,-98,21,-30,-108,-37 +-229,-14,153,26,-47,-108 +8,-110,-40,-30,-54,-8 +-34,-95,-79,30,134,-51 +-163,-128,67,25,-17,-132 +186,-100,-25,60,-29,206 +129,-33,-128,97,-100,-39 +-63,-68,30,6,0,134 +-305,-85,58,-136,162,134 +-117,-77,-77,-38,127,-53 +257,31,25,166,-55,30 +23,-5,71,21,28,-27 +-83,-117,-65,-4,-238,-50 +-11,116,157,60,-69,-34 +-70,77,133,-69,-91,128 +122,145,28,-88,20,193 +-241,-72,-25,14,-50,-57 +90,156,63,-7,135,84 +200,63,-63,6,-46,123 +-337,131,185,-8,44,-91 +380,-37,-47,205,-59,37 +77,13,90,176,137,32 +23,-38,-36,13,242,34 +-65,97,82,-48,76,134 +7,-18,143,48,-17,79 +-263,11,228,-193,90,37 +-86,-84,55,-65,51,-129 +-295,79,78,-119,51,-85 +-139,-75,121,-91,58,43 +29,226,112,154,-142,-136 +-32,175,-55,-115,91,-85 +-130,-50,158,64,-65,59 +44,-28,-45,-129,-221,20 +-94,130,117,13,-16,201 +93,148,53,-52,84,197 +74,-26,-18,-20,16,64 +-91,-56,-69,-144,81,27 +-261,-122,21,-95,-29,-207 +333,61,-38,-51,113,234 +33,108,42,14,77,188 +306,12,-134,4,-20,98 +-60,-81,131,77,86,-7 +-136,97,35,23,-73,-55 +127,129,-107,21,170,-54 +-236,-10,82,23,-98,-76 +-185,-144,37,-56,-230,-129 +132,-98,-33,42,-12,30 +-197,19,-49,-205,37,1 +240,-207,-26,-16,-171,253 +55,3,23,-43,-67,188 +121,-48,20,82,-13,-39 +-59,203,112,-27,-26,125 +-32,68,-27,15,-112,-59 +138,15,34,202,-123,14 +173,70,-80,27,79,-23 +-72,-93,109,21,-44,116 +-33,-165,119,-160,-197,54 +-286,109,-12,-135,-20,-99 +168,-12,-0,51,-14,119 +245,47,-168,111,-3,34 +-149,134,-41,-97,31,-103 +-66,32,-35,-284,-14,157 +-80,26,124,31,107,-45 +-449,-50,54,14,-67,-39 +213,84,-193,112,-77,-55 +-58,-37,-420,-54,168,-133 +84,4,-63,47,-75,-11 +56,-69,-96,-118,37,52 +228,-38,-25,54,135,69 +-119,-1,70,136,152,-98 +274,-42,-132,85,-117,138 +-73,-84,145,-81,22,156 +142,-86,-13,117,-52,135 +97,91,-75,33,165,-81 +484,-43,-107,196,-104,125 +-130,142,-13,-11,-109,-213 +-230,41,-1,-131,-113,-56 +157,-77,134,198,-218,132 +-268,-128,-127,-66,-65,-190 +159,-63,-45,118,139,-8 +21,-100,-128,-158,-61,-12 +48,41,-54,248,62,-185 diff --git a/statsmodels/regression/tests/results/leverage_influence_ols_nostars.txt b/statsmodels/regression/tests/results/leverage_influence_ols_nostars.txt new file mode 100644 index 0000000..fa1e089 --- /dev/null +++ b/statsmodels/regression/tests/results/leverage_influence_ols_nostars.txt @@ -0,0 +1,209 @@ + residual leverage influence DFFITS + u 0<=h<=1 u h/(1-h) + + 1959:2 -2.0742 0.026 -0.054583 -0.032 + 1959:3 -16.829 0.010 -0.17499 -0.162 + 1959:4 17.807 0.006 0.11026 0.132 + 1960:1 14.214 0.023 0.33301 0.206 + 1960:2 -24.269 0.015 -0.36715 -0.284 + 1960:3 5.7992 0.008 0.049617 0.050 + 1960:4 -20.886 0.034 -0.73335 -0.375 + 1961:1 9.8798 0.005 0.05179 0.067 + 1961:2 7.4863 0.014 0.10314 0.083 + 1961:3 14.11 0.010 0.13739 0.131 + 1961:4 -18.151 0.015 -0.27316 -0.211 + 1962:1 2.6465 0.011 0.030731 0.027 + 1962:2 -13.329 0.006 -0.083492 -0.099 + 1962:3 2.0981 0.006 0.013157 0.016 + 1962:4 -8.0123 0.007 -0.056953 -0.063 + 1963:1 9.6415 0.007 0.06812 0.076 + 1963:2 -5.0585 0.007 -0.035805 -0.040 + 1963:3 -10.143 0.014 -0.13973 -0.112 + 1963:4 2.7192 0.006 0.016533 0.020 + 1964:1 -12.585 0.019 -0.23723 -0.163 + 1964:2 -10.268 0.009 -0.088872 -0.090 + 1964:3 -3.1627 0.008 -0.025489 -0.027 + 1964:4 9.2701 0.007 0.067079 0.074 + 1965:1 6.4275 0.022 0.14784 0.092 + 1965:2 -12.496 0.008 -0.10223 -0.106 + 1965:3 -10.836 0.015 -0.16227 -0.125 + 1965:4 -28.524 0.023 -0.67634 -0.422 + 1966:1 0.41525 0.022 0.0095312 0.006 + 1966:2 -3.9265 0.008 -0.032508 -0.033 + 1966:3 -4.4059 0.006 -0.026898 -0.032 + 1966:4 -2.5184 0.006 -0.014469 -0.018 + 1967:1 -14.274 0.011 -0.16548 -0.145 + 1967:2 -7.2071 0.009 -0.064055 -0.064 + 1967:3 7.0015 0.006 0.041966 0.051 + 1967:4 5.2597 0.005 0.027186 0.035 + 1968:1 -17.488 0.016 -0.29267 -0.214 + 1968:2 -3.098 0.010 -0.032174 -0.030 + 1968:3 -15.821 0.007 -0.10969 -0.124 + 1968:4 6.4495 0.006 0.039111 0.047 + 1969:1 8.4822 0.009 0.076508 0.076 + 1969:2 0.83748 0.009 0.007586 0.007 + 1969:3 8.2205 0.005 0.042642 0.055 + 1969:4 -3.4261 0.015 -0.05238 -0.040 + 1970:1 0.28305 0.011 0.0030162 0.003 + 1970:2 7.8525 0.008 0.060957 0.065 + 1970:3 2.2956 0.006 0.013765 0.017 + 1970:4 4.9034 0.027 0.13486 0.077 + 1971:1 10.614 0.031 0.34456 0.182 + 1971:2 12.805 0.005 0.068279 0.088 + 1971:3 0.68069 0.007 0.0045619 0.005 + 1971:4 -7.0127 0.007 -0.047212 -0.054 + 1972:1 6.3863 0.012 0.074474 0.065 + 1972:2 -7.3721 0.021 -0.16064 -0.103 + 1972:3 -0.95255 0.005 -0.0050441 -0.006 + 1972:4 -16.627 0.010 -0.17016 -0.159 + 1973:1 -9.8533 0.026 -0.25905 -0.151 + 1973:2 5.6197 0.021 0.12265 0.078 + 1973:3 4.5097 0.017 0.080032 0.057 + 1973:4 5.179 0.029 0.15387 0.084 + 1974:1 -3.1457 0.033 -0.10821 -0.055 + 1974:2 1.08 0.021 0.022905 0.015 + 1974:3 2.4398 0.032 0.080559 0.042 + 1974:4 16.85 0.045 0.79075 0.350 + 1975:1 -48.281 0.043 -2.1902 -1.037 + 1975:2 -17.841 0.006 -0.10532 -0.129 + 1975:3 11.599 0.018 0.2142 0.149 + 1975:4 -2.5892 0.009 -0.023227 -0.023 + 1976:1 8.8047 0.024 0.2192 0.131 + 1976:2 14.779 0.006 0.094697 0.111 + 1976:3 1.0038 0.010 0.0097456 0.009 + 1976:4 -1.156 0.010 -0.01127 -0.011 + 1977:1 7.9332 0.010 0.077599 0.074 + 1977:2 2.2751 0.037 0.086679 0.042 + 1977:3 -0.45568 0.013 -0.0061948 -0.005 + 1977:4 -1.2479 0.009 -0.011785 -0.011 + 1978:1 10.833 0.010 0.10458 0.100 + 1978:2 -32.23 0.072 -2.5075 -0.892 + 1978:3 2.6192 0.020 0.053266 0.035 + 1978:4 -5.7424 0.015 -0.088262 -0.067 + 1979:1 6.9597 0.008 0.052818 0.057 + 1979:2 5.2803 0.019 0.10193 0.069 + 1979:3 -13.413 0.026 -0.35491 -0.207 + 1979:4 -3.6896 0.012 -0.043521 -0.038 + 1980:1 -0.70094 0.018 -0.012507 -0.009 + 1980:2 7.3702 0.060 0.46678 0.178 + 1980:3 -19.233 0.013 -0.25082 -0.208 + 1980:4 16.33 0.013 0.217 0.178 + 1981:1 13.303 0.017 0.23446 0.167 + 1981:2 7.2551 0.033 0.24794 0.127 + 1981:3 15.318 0.014 0.21378 0.171 + 1981:4 19.5 0.051 1.0428 0.435 + 1982:1 -1.2325 0.068 -0.090284 -0.032 + 1982:2 6.0687 0.064 0.4129 0.153 + 1982:3 12.515 0.014 0.17407 0.139 + 1982:4 -25.737 0.022 -0.56739 -0.365 + 1983:1 7.234 0.045 0.33773 0.149 + 1983:2 10.245 0.025 0.26194 0.155 + 1983:3 4.2063 0.021 0.090006 0.058 + 1983:4 16.804 0.024 0.41352 0.250 + 1984:1 17.996 0.017 0.31173 0.224 + 1984:2 -4.2825 0.018 -0.079641 -0.055 + 1984:3 5.9567 0.026 0.16111 0.093 + 1984:4 -7.4108 0.023 -0.172 -0.107 + 1985:1 -16.758 0.019 -0.33137 -0.223 + 1985:2 3.6384 0.008 0.028555 0.030 + 1985:3 -19.283 0.016 -0.30668 -0.230 + 1985:4 14.153 0.011 0.15085 0.138 + 1986:1 -6.8394 0.005 -0.037411 -0.047 + 1986:2 0.21312 0.071 0.016406 0.006 + 1986:3 -18.126 0.007 -0.13387 -0.147 + 1986:4 3.3595 0.007 0.023536 0.026 + 1987:1 12.522 0.005 0.066831 0.086 + 1987:2 -7.8712 0.006 -0.044228 -0.055 + 1987:3 -4.1257 0.005 -0.021252 -0.028 + 1987:4 11.053 0.011 0.11837 0.107 + 1988:1 -21.337 0.006 -0.12956 -0.157 + 1988:2 -2.2261 0.007 -0.014779 -0.017 + 1988:3 4.3039 0.006 0.024997 0.031 + 1988:4 -6.9168 0.008 -0.054036 -0.057 + 1989:1 10.457 0.009 0.094882 0.093 + 1989:2 -6.7649 0.006 -0.039373 -0.048 + 1989:3 -6.8402 0.009 -0.059272 -0.060 + 1989:4 4.5364 0.016 0.0739 0.054 + 1990:1 -4.1645 0.005 -0.023026 -0.029 + 1990:2 4.7673 0.009 0.043593 0.043 + 1990:3 1.6749 0.010 0.017602 0.016 + 1990:4 -2.1491 0.027 -0.060722 -0.034 + 1991:1 3.0644 0.017 0.052763 0.038 + 1991:2 -1.4489 0.013 -0.01868 -0.015 + 1991:3 13.369 0.006 0.086494 0.101 + 1991:4 19.045 0.007 0.12493 0.145 + 1992:1 -18.029 0.006 -0.10394 -0.129 + 1992:2 16.942 0.006 0.09862 0.122 + 1992:3 -4.1448 0.006 -0.02545 -0.030 + 1992:4 3.3586 0.008 0.02638 0.028 + 1993:1 15.572 0.008 0.13114 0.134 + 1993:2 1.5315 0.006 0.0094249 0.011 + 1993:3 0.67663 0.005 0.0036734 0.005 + 1993:4 7.0721 0.008 0.059242 0.061 + 1994:1 10.12 0.005 0.053258 0.069 + 1994:2 8.9972 0.007 0.065707 0.072 + 1994:3 -8.4192 0.005 -0.043756 -0.057 + 1994:4 9.6114 0.006 0.057062 0.069 + 1995:1 10.836 0.008 0.086906 0.091 + 1995:2 -3.7803 0.008 -0.029172 -0.031 + 1995:3 -6.9312 0.008 -0.055583 -0.058 + 1995:4 10.256 0.007 0.0707 0.080 + 1996:1 4.0309 0.005 0.021694 0.028 + 1996:2 0.4955 0.011 0.0053216 0.005 + 1996:3 15.719 0.006 0.1017 0.119 + 1996:4 -9.3751 0.006 -0.054944 -0.067 + 1997:1 6.5172 0.005 0.034166 0.044 + 1997:2 10.854 0.012 0.13379 0.113 + 1997:3 -2.9846 0.010 -0.030983 -0.028 + 1997:4 3.8535 0.006 0.021563 0.027 + 1998:1 14.065 0.010 0.13561 0.130 + 1998:2 -8.2154 0.012 -0.10053 -0.085 + 1998:3 -0.60661 0.008 -0.0046736 -0.005 + 1998:4 -6.1779 0.012 -0.074119 -0.063 + 1999:1 7.8563 0.006 0.045995 0.056 + 1999:2 -4.6266 0.005 -0.023074 -0.031 + 1999:3 -1.1028 0.008 -0.0083415 -0.009 + 1999:4 -6.8508 0.011 -0.079265 -0.069 + 2000:1 0.73293 0.007 0.0054868 0.006 + 2000:2 3.6035 0.014 0.049842 0.040 + 2000:3 2.708 0.008 0.022145 0.023 + 2000:4 1.3636 0.008 0.010847 0.011 + 2001:1 -5.3679 0.013 -0.070967 -0.058 + 2001:2 -1.6618 0.006 -0.010209 -0.012 + 2001:3 6.5455 0.012 0.07979 0.068 + 2001:4 -19.04 0.007 -0.1294 -0.148 + 2002:1 8.6579 0.005 0.043551 0.057 + 2002:2 3.8596 0.012 0.048695 0.041 + 2002:3 1.6741 0.006 0.010859 0.013 + 2002:4 8.1865 0.012 0.10312 0.086 + 2003:1 1.2353 0.013 0.016361 0.013 + 2003:2 -2.2006 0.007 -0.01465 -0.017 + 2003:3 -5.4225 0.012 -0.064693 -0.056 + 2003:4 7.3162 0.012 0.085825 0.074 + 2004:1 -2.0091 0.013 -0.027416 -0.022 + 2004:2 13.225 0.010 0.13921 0.128 + 2004:3 0.34955 0.015 0.0053195 0.004 + 2004:4 1.3304 0.013 0.017246 0.014 + 2005:1 0.58582 0.006 0.0037749 0.004 + 2005:2 -6.0779 0.011 -0.068898 -0.061 + 2005:3 1.3355 0.005 0.0066849 0.009 + 2005:4 11.099 0.040 0.45714 0.215 + 2006:1 -5.3245 0.010 -0.054333 -0.050 + 2006:2 3.7492 0.006 0.023831 0.028 + 2006:3 3.9062 0.009 0.034228 0.034 + 2006:4 -10.87 0.024 -0.26209 -0.160 + 2007:1 -0.97833 0.006 -0.0063771 -0.007 + 2007:2 1.3714 0.006 0.0078089 0.010 + 2007:3 -3.9713 0.005 -0.021069 -0.027 + 2007:4 -7.4003 0.006 -0.043073 -0.053 + 2008:1 2.8908 0.026 0.077049 0.045 + 2008:2 -8.5902 0.011 -0.093244 -0.084 + 2008:3 10.043 0.064 0.6827 0.253 + 2008:4 8.6286 0.042 0.37961 0.173 + 2009:1 -26.221 0.086 -2.4808 -0.800 + 2009:2 -14.74 0.014 -0.20334 -0.163 + 2009:3 3.5952 0.020 0.071804 0.048 + +('*' indicates a leverage point) + +Cross-validation criterion = 23908.4 diff --git a/statsmodels/regression/tests/results/lme00.csv b/statsmodels/regression/tests/results/lme00.csv new file mode 100644 index 0000000..70b57ed --- /dev/null +++ b/statsmodels/regression/tests/results/lme00.csv @@ -0,0 +1,241 @@ +groups,endog,exog_fe_0,exog_re_0 +0.000,-0.300,0.408,1.000 +1.000,-1.805,1.528,1.000 +1.000,1.753,-0.970,1.000 +1.000,2.657,-1.657,1.000 +2.000,1.533,-1.171,1.000 +3.000,0.647,-0.951,1.000 +3.000,-0.555,-0.150,1.000 +4.000,2.158,-2.215,1.000 +5.000,-2.188,1.618,1.000 +5.000,0.727,-0.005,1.000 +5.000,1.431,-1.043,1.000 +5.000,2.106,-2.296,1.000 +6.000,-0.418,-0.228,1.000 +6.000,-0.473,-0.363,1.000 +6.000,-2.447,2.185,1.000 +6.000,-0.728,0.177,1.000 +7.000,-0.424,0.437,1.000 +7.000,0.359,-0.763,1.000 +7.000,-0.862,0.321,1.000 +8.000,-2.496,2.276,1.000 +8.000,-0.440,0.455,1.000 +8.000,-0.789,0.643,1.000 +9.000,-0.384,0.803,1.000 +9.000,-0.278,-0.164,1.000 +9.000,0.833,-0.253,1.000 +10.000,-0.918,0.452,1.000 +10.000,-0.513,-1.383,1.000 +10.000,-1.208,-0.394,1.000 +10.000,-1.912,1.794,1.000 +11.000,-0.491,-0.201,1.000 +11.000,-0.391,-0.781,1.000 +11.000,1.616,-2.680,1.000 +12.000,2.183,-1.668,1.000 +13.000,-0.700,-0.024,1.000 +13.000,-1.713,1.046,1.000 +13.000,-1.148,1.235,1.000 +13.000,1.499,-2.476,1.000 +14.000,-0.035,-0.055,1.000 +15.000,-0.700,-0.312,1.000 +15.000,-0.372,0.020,1.000 +15.000,1.309,-0.534,1.000 +15.000,0.505,-0.422,1.000 +16.000,-0.556,1.170,1.000 +16.000,-1.005,-0.017,1.000 +16.000,-0.640,0.397,1.000 +17.000,0.833,-1.237,1.000 +17.000,2.529,-2.321,1.000 +18.000,0.134,0.016,1.000 +19.000,-1.393,0.139,1.000 +19.000,1.467,-1.591,1.000 +20.000,-2.025,0.667,1.000 +20.000,-2.640,0.844,1.000 +21.000,0.496,-0.848,1.000 +22.000,1.728,-1.401,1.000 +22.000,2.775,-2.927,1.000 +22.000,-0.006,-0.165,1.000 +22.000,0.210,0.044,1.000 +23.000,0.940,-0.796,1.000 +24.000,-0.820,-0.310,1.000 +24.000,0.150,-0.530,1.000 +24.000,0.184,-0.130,1.000 +24.000,0.324,0.781,1.000 +25.000,1.531,-1.504,1.000 +26.000,-1.335,0.176,1.000 +27.000,1.051,-0.350,1.000 +27.000,0.967,-1.306,1.000 +27.000,0.552,-0.399,1.000 +28.000,1.262,-0.348,1.000 +28.000,0.091,-0.366,1.000 +29.000,0.098,-0.599,1.000 +30.000,0.678,-1.186,1.000 +31.000,-2.944,1.852,1.000 +31.000,-0.716,0.619,1.000 +31.000,-2.269,0.969,1.000 +31.000,-1.386,1.421,1.000 +32.000,0.697,-0.704,1.000 +32.000,-0.142,-0.070,1.000 +32.000,0.057,-0.022,1.000 +33.000,-1.263,-0.275,1.000 +33.000,-2.833,1.791,1.000 +33.000,-0.888,0.586,1.000 +34.000,0.302,-0.250,1.000 +35.000,1.800,-1.596,1.000 +36.000,-0.772,0.456,1.000 +37.000,-1.440,0.818,1.000 +38.000,-1.031,0.840,1.000 +38.000,-1.678,1.977,1.000 +38.000,0.739,-0.501,1.000 +38.000,1.248,-0.581,1.000 +39.000,-0.314,-1.496,1.000 +39.000,-2.215,0.240,1.000 +40.000,-0.363,1.348,1.000 +40.000,-0.573,0.260,1.000 +40.000,1.086,-0.673,1.000 +40.000,0.326,0.169,1.000 +41.000,1.658,-1.243,1.000 +41.000,-1.319,2.048,1.000 +41.000,-2.476,2.767,1.000 +42.000,0.484,0.807,1.000 +42.000,-0.673,2.028,1.000 +42.000,1.389,-0.439,1.000 +42.000,1.749,-1.121,1.000 +43.000,-0.001,-0.728,1.000 +43.000,-1.611,-0.098,1.000 +43.000,-0.651,0.301,1.000 +44.000,1.552,-0.235,1.000 +44.000,1.743,-0.531,1.000 +45.000,1.130,-1.790,1.000 +45.000,0.303,0.001,1.000 +45.000,2.557,-2.210,1.000 +45.000,1.448,-0.569,1.000 +46.000,-0.611,0.116,1.000 +46.000,-0.517,0.704,1.000 +46.000,-2.234,1.540,1.000 +47.000,2.220,-1.664,1.000 +48.000,0.095,-0.431,1.000 +48.000,1.613,-0.716,1.000 +48.000,1.363,-1.694,1.000 +49.000,0.591,-0.748,1.000 +50.000,0.420,-0.510,1.000 +51.000,-1.404,-0.094,1.000 +51.000,-2.121,0.937,1.000 +51.000,0.422,-1.016,1.000 +51.000,-3.250,1.124,1.000 +52.000,-0.684,0.509,1.000 +52.000,0.029,-0.404,1.000 +53.000,-0.193,0.184,1.000 +53.000,-0.574,0.811,1.000 +54.000,-1.212,1.510,1.000 +54.000,3.503,-1.827,1.000 +54.000,-0.838,1.291,1.000 +55.000,1.044,-1.231,1.000 +55.000,-2.466,0.712,1.000 +55.000,0.022,0.210,1.000 +56.000,0.027,0.741,1.000 +56.000,-1.776,1.133,1.000 +57.000,1.845,-1.106,1.000 +58.000,0.170,-0.501,1.000 +59.000,-0.212,-0.154,1.000 +59.000,1.228,0.038,1.000 +60.000,0.922,-0.375,1.000 +60.000,0.773,-0.227,1.000 +60.000,0.355,-0.660,1.000 +60.000,2.417,-1.534,1.000 +61.000,0.905,-0.536,1.000 +62.000,0.920,-1.714,1.000 +62.000,-0.020,-0.163,1.000 +63.000,-0.694,0.721,1.000 +63.000,0.043,0.825,1.000 +64.000,-0.980,0.130,1.000 +64.000,-1.209,0.831,1.000 +64.000,-0.772,-0.182,1.000 +64.000,-0.996,0.417,1.000 +65.000,1.008,-1.389,1.000 +65.000,-0.174,-0.220,1.000 +65.000,-1.882,1.741,1.000 +66.000,1.085,-0.673,1.000 +66.000,-1.323,1.944,1.000 +66.000,2.340,-1.969,1.000 +67.000,0.256,-0.072,1.000 +67.000,0.056,-0.393,1.000 +67.000,1.518,-2.193,1.000 +67.000,0.904,-1.040,1.000 +68.000,0.797,-0.731,1.000 +69.000,0.402,1.189,1.000 +69.000,0.018,0.933,1.000 +70.000,0.178,-0.284,1.000 +71.000,2.802,-0.976,1.000 +71.000,2.534,-1.865,1.000 +72.000,0.617,-0.132,1.000 +72.000,1.230,-0.405,1.000 +72.000,-0.641,1.293,1.000 +73.000,1.950,-1.417,1.000 +74.000,0.455,-1.787,1.000 +74.000,-1.515,0.810,1.000 +74.000,-1.542,0.313,1.000 +75.000,0.468,-0.400,1.000 +75.000,-2.685,2.263,1.000 +75.000,-2.473,1.594,1.000 +76.000,-0.741,0.528,1.000 +76.000,-0.188,0.407,1.000 +77.000,-0.329,-0.726,1.000 +77.000,-0.760,-0.235,1.000 +78.000,0.403,-0.318,1.000 +78.000,0.154,-0.891,1.000 +78.000,0.673,-1.060,1.000 +78.000,-0.201,-0.395,1.000 +79.000,0.781,-0.956,1.000 +79.000,-0.308,0.703,1.000 +79.000,-0.978,1.185,1.000 +80.000,2.675,-1.729,1.000 +80.000,1.231,-0.744,1.000 +80.000,0.781,-0.089,1.000 +81.000,0.578,-0.552,1.000 +81.000,-0.978,1.022,1.000 +81.000,-0.219,0.879,1.000 +82.000,-1.537,2.241,1.000 +83.000,2.476,-1.533,1.000 +83.000,0.837,0.371,1.000 +83.000,1.032,-0.684,1.000 +83.000,1.301,-1.031,1.000 +84.000,1.258,-0.487,1.000 +84.000,-0.953,1.006,1.000 +85.000,-0.565,0.126,1.000 +85.000,-1.712,1.398,1.000 +85.000,1.457,-1.413,1.000 +86.000,0.755,-0.285,1.000 +86.000,1.878,-1.322,1.000 +86.000,-3.689,2.995,1.000 +86.000,0.125,0.738,1.000 +87.000,0.251,0.759,1.000 +87.000,-1.906,1.334,1.000 +88.000,-2.864,2.353,1.000 +88.000,-0.085,-0.235,1.000 +89.000,-0.596,0.848,1.000 +89.000,0.936,-1.674,1.000 +90.000,-0.022,-0.704,1.000 +90.000,-0.040,-0.121,1.000 +91.000,-1.948,1.850,1.000 +92.000,-0.429,0.903,1.000 +92.000,-0.297,0.480,1.000 +92.000,-0.475,0.780,1.000 +93.000,-1.153,0.787,1.000 +93.000,0.218,-0.488,1.000 +93.000,-0.589,-0.028,1.000 +93.000,1.448,-1.692,1.000 +94.000,0.155,0.450,1.000 +94.000,1.420,-0.642,1.000 +94.000,-1.106,0.539,1.000 +94.000,0.442,0.107,1.000 +95.000,1.263,-0.703,1.000 +95.000,-0.698,1.232,1.000 +96.000,-1.327,0.684,1.000 +97.000,0.247,1.126,1.000 +97.000,-0.255,0.560,1.000 +98.000,-0.533,1.258,1.000 +98.000,0.286,0.376,1.000 +98.000,0.772,-0.020,1.000 +99.000,1.151,-2.100,1.000 +99.000,-0.865,0.241,1.000 diff --git a/statsmodels/regression/tests/results/lme01.csv b/statsmodels/regression/tests/results/lme01.csv new file mode 100644 index 0000000..3ddba5b --- /dev/null +++ b/statsmodels/regression/tests/results/lme01.csv @@ -0,0 +1,255 @@ +groups,endog,exog_fe_0,exog_re_0 +0.000,0.485,0.129,1.000 +0.000,-3.069,1.252,1.000 +0.000,4.493,-0.152,1.000 +0.000,1.120,-0.743,1.000 +1.000,1.500,-0.012,1.000 +1.000,-0.081,0.301,1.000 +1.000,3.118,1.558,1.000 +2.000,2.614,0.617,1.000 +2.000,-0.171,-1.841,1.000 +2.000,-0.530,-1.249,1.000 +3.000,2.758,0.413,1.000 +3.000,1.782,0.264,1.000 +3.000,-0.886,-1.219,1.000 +4.000,-2.224,-0.713,1.000 +4.000,-0.616,0.195,1.000 +4.000,-5.375,2.514,1.000 +5.000,-1.631,1.394,1.000 +5.000,1.609,0.052,1.000 +5.000,2.378,-0.765,1.000 +5.000,-2.255,2.450,1.000 +6.000,-0.187,2.180,1.000 +6.000,-3.278,1.358,1.000 +6.000,0.376,-1.205,1.000 +7.000,-2.139,0.844,1.000 +7.000,1.653,-1.600,1.000 +7.000,-2.595,-1.068,1.000 +7.000,4.625,-1.433,1.000 +8.000,-1.756,-0.820,1.000 +9.000,-0.902,-0.317,1.000 +9.000,-0.262,-0.257,1.000 +10.000,-0.772,-0.702,1.000 +10.000,-4.059,0.476,1.000 +11.000,0.605,-0.087,1.000 +11.000,2.762,0.215,1.000 +12.000,-3.884,-0.952,1.000 +12.000,-0.360,-1.344,1.000 +13.000,1.551,-0.544,1.000 +13.000,-1.154,2.204,1.000 +13.000,-4.254,0.851,1.000 +13.000,-0.282,1.001,1.000 +14.000,0.303,1.423,1.000 +14.000,-4.621,0.548,1.000 +15.000,-4.256,2.048,1.000 +15.000,0.421,0.855,1.000 +16.000,-2.268,0.155,1.000 +16.000,-1.960,0.184,1.000 +16.000,5.805,-0.813,1.000 +16.000,1.274,1.063,1.000 +17.000,-2.424,1.155,1.000 +17.000,1.322,-0.605,1.000 +17.000,-2.933,0.936,1.000 +18.000,-2.180,-0.330,1.000 +19.000,2.098,-1.131,1.000 +19.000,-1.206,0.469,1.000 +20.000,3.930,-1.021,1.000 +21.000,-6.211,1.129,1.000 +21.000,0.135,0.001,1.000 +21.000,-3.799,-0.407,1.000 +22.000,1.136,-0.481,1.000 +23.000,4.401,-1.790,1.000 +23.000,1.007,-0.728,1.000 +24.000,1.638,0.395,1.000 +24.000,-1.234,0.995,1.000 +24.000,-1.178,-0.769,1.000 +24.000,-1.585,1.275,1.000 +25.000,1.253,-0.021,1.000 +25.000,0.803,0.618,1.000 +25.000,-0.136,-1.707,1.000 +26.000,-1.361,0.478,1.000 +26.000,-0.496,0.956,1.000 +26.000,3.948,-1.844,1.000 +26.000,-2.658,-0.784,1.000 +27.000,0.994,0.664,1.000 +27.000,-1.074,-1.216,1.000 +27.000,-0.510,1.469,1.000 +28.000,-0.308,-2.067,1.000 +29.000,1.814,-0.600,1.000 +30.000,0.474,-0.313,1.000 +30.000,-0.460,1.343,1.000 +30.000,3.230,-0.908,1.000 +31.000,1.720,-1.078,1.000 +31.000,-1.752,-0.720,1.000 +31.000,2.012,0.001,1.000 +31.000,0.244,-0.159,1.000 +32.000,1.083,1.051,1.000 +32.000,-4.109,1.458,1.000 +32.000,1.854,0.885,1.000 +33.000,6.614,-1.972,1.000 +34.000,-0.723,-0.578,1.000 +34.000,0.758,0.471,1.000 +35.000,-0.961,-0.529,1.000 +35.000,-2.384,0.558,1.000 +35.000,-2.451,2.146,1.000 +35.000,-1.053,0.286,1.000 +36.000,0.234,-1.027,1.000 +37.000,0.638,-1.547,1.000 +37.000,4.220,-0.840,1.000 +37.000,1.111,0.750,1.000 +38.000,-2.770,0.327,1.000 +38.000,2.867,-0.881,1.000 +38.000,0.872,-0.300,1.000 +38.000,0.449,1.746,1.000 +39.000,-4.268,0.253,1.000 +39.000,1.114,0.861,1.000 +39.000,-0.114,0.308,1.000 +40.000,-2.193,0.580,1.000 +40.000,3.547,-1.526,1.000 +40.000,5.288,-1.517,1.000 +41.000,-0.179,-0.132,1.000 +41.000,0.380,-1.089,1.000 +41.000,-0.723,1.797,1.000 +41.000,0.363,1.036,1.000 +42.000,-2.315,-0.880,1.000 +42.000,-4.394,1.640,1.000 +42.000,-1.120,-1.215,1.000 +43.000,-0.587,1.151,1.000 +44.000,-2.922,0.609,1.000 +44.000,0.478,-0.942,1.000 +44.000,-1.395,0.888,1.000 +44.000,-4.636,0.334,1.000 +45.000,-0.716,-0.043,1.000 +45.000,-1.082,0.616,1.000 +45.000,0.643,-0.115,1.000 +45.000,4.590,-0.430,1.000 +46.000,2.399,-2.143,1.000 +46.000,-0.213,2.303,1.000 +46.000,-0.151,-1.121,1.000 +47.000,2.052,-0.690,1.000 +47.000,-2.222,-0.251,1.000 +47.000,1.754,-2.730,1.000 +47.000,-3.498,0.826,1.000 +48.000,-0.880,-0.590,1.000 +48.000,-1.795,-0.060,1.000 +48.000,-3.200,0.459,1.000 +48.000,-1.208,0.311,1.000 +49.000,0.158,-0.990,1.000 +49.000,-0.603,0.044,1.000 +49.000,0.159,1.989,1.000 +49.000,1.706,-0.053,1.000 +50.000,-1.266,0.585,1.000 +50.000,-0.897,1.095,1.000 +51.000,-1.963,1.529,1.000 +52.000,1.650,0.617,1.000 +52.000,1.047,0.406,1.000 +52.000,2.128,-1.883,1.000 +53.000,2.635,-1.212,1.000 +53.000,-2.784,-1.825,1.000 +53.000,0.769,-1.630,1.000 +54.000,-0.281,0.014,1.000 +54.000,-1.039,0.631,1.000 +55.000,1.522,-0.071,1.000 +56.000,-0.949,1.470,1.000 +56.000,2.256,0.464,1.000 +56.000,2.703,0.093,1.000 +56.000,-3.660,0.831,1.000 +57.000,3.933,-2.168,1.000 +57.000,-2.349,0.775,1.000 +57.000,0.358,-1.376,1.000 +58.000,0.164,0.535,1.000 +58.000,0.088,0.725,1.000 +58.000,2.058,-0.655,1.000 +59.000,0.289,-0.872,1.000 +60.000,2.681,-0.296,1.000 +60.000,0.654,-0.087,1.000 +60.000,-0.815,-0.046,1.000 +61.000,-0.439,0.149,1.000 +61.000,0.847,0.329,1.000 +62.000,-0.135,0.395,1.000 +62.000,-1.547,1.004,1.000 +63.000,-2.543,-0.511,1.000 +64.000,-0.389,1.895,1.000 +64.000,4.990,-1.318,1.000 +64.000,0.448,-1.727,1.000 +64.000,0.528,-0.526,1.000 +65.000,-4.634,-1.060,1.000 +66.000,0.324,-1.468,1.000 +66.000,2.237,0.374,1.000 +66.000,0.530,0.084,1.000 +66.000,2.678,-1.159,1.000 +67.000,1.835,0.343,1.000 +68.000,2.721,-1.237,1.000 +68.000,5.082,-0.313,1.000 +68.000,-3.444,1.117,1.000 +68.000,1.246,-0.154,1.000 +69.000,-3.016,2.007,1.000 +70.000,2.145,-0.230,1.000 +71.000,0.594,-0.463,1.000 +72.000,-1.428,2.024,1.000 +72.000,0.156,-0.789,1.000 +72.000,1.816,-1.320,1.000 +73.000,-0.009,1.189,1.000 +74.000,3.159,-1.885,1.000 +74.000,-1.749,-0.614,1.000 +74.000,-1.020,0.960,1.000 +74.000,1.952,-1.254,1.000 +75.000,1.152,1.763,1.000 +75.000,1.666,-1.458,1.000 +75.000,-0.806,-0.377,1.000 +75.000,-1.264,-0.887,1.000 +76.000,1.879,-1.412,1.000 +76.000,1.837,-2.478,1.000 +76.000,-0.121,1.446,1.000 +77.000,-1.041,0.879,1.000 +77.000,0.245,-1.027,1.000 +78.000,-2.157,1.509,1.000 +78.000,-0.423,-0.166,1.000 +78.000,2.190,0.938,1.000 +79.000,0.032,0.581,1.000 +80.000,-0.736,1.585,1.000 +80.000,3.024,-0.429,1.000 +80.000,1.478,-1.844,1.000 +81.000,-0.443,0.742,1.000 +82.000,-3.551,-0.081,1.000 +82.000,-1.661,-0.661,1.000 +83.000,-2.173,0.886,1.000 +84.000,-0.493,-0.885,1.000 +84.000,-4.231,0.402,1.000 +85.000,-3.638,0.220,1.000 +85.000,-3.429,1.221,1.000 +85.000,-0.793,0.953,1.000 +86.000,1.713,-1.221,1.000 +86.000,2.557,-0.486,1.000 +87.000,0.259,-0.429,1.000 +88.000,3.555,-1.209,1.000 +88.000,0.381,-0.199,1.000 +89.000,2.622,-0.837,1.000 +89.000,0.471,0.023,1.000 +89.000,0.655,-0.431,1.000 +90.000,-5.319,2.154,1.000 +90.000,0.547,1.496,1.000 +91.000,-3.216,0.684,1.000 +92.000,-1.078,-0.751,1.000 +92.000,0.313,-0.780,1.000 +92.000,-0.936,0.313,1.000 +93.000,0.853,-1.164,1.000 +93.000,-2.950,0.972,1.000 +94.000,-0.536,0.351,1.000 +94.000,1.233,-0.772,1.000 +94.000,-0.774,-0.510,1.000 +95.000,-0.646,-2.312,1.000 +95.000,0.337,0.469,1.000 +95.000,2.949,-1.056,1.000 +95.000,1.661,-1.251,1.000 +96.000,1.626,-0.252,1.000 +96.000,2.413,-0.638,1.000 +97.000,2.691,-0.940,1.000 +97.000,0.152,-0.677,1.000 +97.000,-1.914,2.931,1.000 +98.000,-3.464,-0.723,1.000 +98.000,-0.201,1.543,1.000 +98.000,0.710,0.569,1.000 +98.000,-0.968,-0.208,1.000 +99.000,1.090,0.572,1.000 +99.000,0.607,0.420,1.000 diff --git a/statsmodels/regression/tests/results/lme02.csv b/statsmodels/regression/tests/results/lme02.csv new file mode 100644 index 0000000..eb277b1 --- /dev/null +++ b/statsmodels/regression/tests/results/lme02.csv @@ -0,0 +1,236 @@ +groups,endog,exog_fe_0,exog_fe_1,exog_re_0 +0.000,2.728,0.222,2.254,1.000 +1.000,-0.104,0.605,1.371,1.000 +1.000,0.092,-0.831,-0.973,1.000 +2.000,0.104,-0.950,-0.798,1.000 +2.000,2.225,-1.209,2.233,1.000 +2.000,-2.815,1.758,-1.783,1.000 +2.000,-1.710,-0.374,-1.709,1.000 +3.000,-0.184,-0.489,-0.705,1.000 +3.000,0.093,0.967,1.089,1.000 +3.000,1.587,0.946,1.913,1.000 +3.000,1.117,1.132,2.075,1.000 +4.000,2.416,-1.595,-0.160,1.000 +4.000,-0.051,-0.016,-1.258,1.000 +4.000,-1.776,2.127,0.745,1.000 +4.000,1.084,-0.488,0.344,1.000 +5.000,-0.887,-0.499,-1.519,1.000 +5.000,1.303,-0.516,0.739,1.000 +6.000,1.274,-1.690,-0.116,1.000 +6.000,0.074,0.201,0.905,1.000 +7.000,0.212,-0.421,-0.383,1.000 +7.000,-2.128,0.460,-1.631,1.000 +8.000,0.653,-0.289,0.418,1.000 +9.000,-0.080,-0.094,-0.376,1.000 +9.000,-0.904,0.760,-0.659,1.000 +10.000,-1.177,-0.587,-1.611,1.000 +10.000,1.954,0.439,1.698,1.000 +11.000,2.362,-1.541,-0.112,1.000 +11.000,1.151,-0.229,1.039,1.000 +11.000,0.295,-1.022,-0.410,1.000 +12.000,-0.201,0.390,-0.037,1.000 +13.000,0.268,-0.932,-0.833,1.000 +13.000,0.073,-0.743,-0.501,1.000 +13.000,-1.395,-0.872,-2.070,1.000 +14.000,0.019,0.023,0.266,1.000 +14.000,3.797,-1.597,1.743,1.000 +14.000,0.471,-1.079,-1.136,1.000 +15.000,0.425,-0.321,0.054,1.000 +15.000,2.036,-1.289,0.952,1.000 +15.000,3.466,-1.593,2.141,1.000 +16.000,4.948,-1.877,2.694,1.000 +16.000,-1.405,1.683,1.191,1.000 +16.000,-0.888,0.975,0.074,1.000 +17.000,-1.573,-0.206,-1.689,1.000 +17.000,-0.483,0.118,0.617,1.000 +17.000,1.399,-0.559,0.218,1.000 +18.000,-0.336,0.878,0.043,1.000 +19.000,3.619,-1.801,0.890,1.000 +20.000,0.618,-1.574,-2.162,1.000 +20.000,-0.725,0.008,-0.232,1.000 +20.000,0.243,0.743,0.775,1.000 +21.000,-0.215,0.749,0.547,1.000 +21.000,-1.023,1.015,-0.361,1.000 +21.000,1.586,-1.268,-0.084,1.000 +22.000,-0.349,0.575,0.140,1.000 +22.000,4.500,-1.989,2.588,1.000 +22.000,0.711,-0.621,-0.047,1.000 +23.000,1.507,-0.278,-0.186,1.000 +23.000,0.664,-0.847,-1.143,1.000 +23.000,1.363,0.703,0.949,1.000 +24.000,-0.696,0.416,0.133,1.000 +25.000,-1.065,-0.145,-0.300,1.000 +26.000,0.888,-0.828,-0.238,1.000 +26.000,-1.382,0.413,-0.851,1.000 +27.000,-0.047,0.397,0.841,1.000 +28.000,1.462,-0.914,0.764,1.000 +28.000,-0.586,-1.219,-0.912,1.000 +28.000,0.057,-0.745,-0.429,1.000 +28.000,0.534,1.325,1.838,1.000 +29.000,-1.615,-0.068,-0.667,1.000 +29.000,-2.570,-0.699,-2.672,1.000 +29.000,-0.612,0.529,0.681,1.000 +29.000,-1.513,-0.101,-0.720,1.000 +30.000,-0.509,0.857,0.875,1.000 +31.000,2.098,-0.529,0.908,1.000 +31.000,-0.780,0.636,0.365,1.000 +32.000,3.132,-0.679,1.454,1.000 +33.000,-1.655,1.229,-0.254,1.000 +33.000,0.538,0.089,0.082,1.000 +33.000,2.301,-1.168,0.734,1.000 +33.000,2.356,-1.966,0.764,1.000 +34.000,2.163,-0.368,1.958,1.000 +34.000,1.651,-1.107,-0.070,1.000 +34.000,0.660,0.222,0.711,1.000 +35.000,2.220,-1.734,0.062,1.000 +36.000,-1.456,1.703,-0.725,1.000 +36.000,-2.394,0.027,-1.694,1.000 +36.000,0.166,1.447,1.577,1.000 +37.000,-1.842,0.940,-0.228,1.000 +37.000,0.571,0.439,1.059,1.000 +38.000,-5.138,1.540,-1.751,1.000 +38.000,-1.141,-0.408,-0.621,1.000 +38.000,-1.752,1.279,0.106,1.000 +38.000,-0.439,-2.000,-0.728,1.000 +39.000,-1.278,1.808,0.598,1.000 +39.000,-1.814,1.940,-0.212,1.000 +39.000,-2.450,-0.089,-2.740,1.000 +40.000,1.936,-0.123,2.195,1.000 +40.000,-1.509,0.172,-0.531,1.000 +41.000,1.211,-0.198,0.625,1.000 +41.000,0.495,0.482,1.801,1.000 +42.000,1.495,0.202,1.626,1.000 +42.000,-1.469,0.977,-0.530,1.000 +42.000,-2.307,2.204,0.147,1.000 +43.000,2.720,-0.601,1.959,1.000 +43.000,1.085,-0.871,-0.159,1.000 +43.000,2.395,-1.245,1.914,1.000 +43.000,0.977,-0.938,0.022,1.000 +44.000,-1.062,0.192,-1.540,1.000 +45.000,-1.613,-0.194,-1.337,1.000 +45.000,0.956,-0.982,0.012,1.000 +45.000,2.628,-0.740,1.720,1.000 +45.000,-0.877,0.058,-0.787,1.000 +46.000,0.392,0.478,-0.246,1.000 +47.000,-1.257,0.558,-0.499,1.000 +47.000,-1.491,0.990,-0.480,1.000 +47.000,-2.172,1.916,0.429,1.000 +47.000,0.211,-0.062,0.406,1.000 +48.000,2.232,-2.104,0.617,1.000 +49.000,-0.486,1.183,0.108,1.000 +50.000,2.387,-0.395,1.294,1.000 +50.000,1.543,-1.026,0.521,1.000 +51.000,0.245,1.129,0.452,1.000 +51.000,3.536,-2.386,0.533,1.000 +52.000,0.022,0.692,0.052,1.000 +53.000,0.774,0.110,1.172,1.000 +53.000,-1.038,0.501,-0.763,1.000 +54.000,-0.664,0.732,0.298,1.000 +54.000,0.749,-1.018,0.707,1.000 +54.000,-1.967,0.262,-1.010,1.000 +55.000,-1.224,2.283,1.104,1.000 +56.000,0.285,0.363,0.264,1.000 +56.000,2.192,-0.476,1.973,1.000 +56.000,-1.060,0.731,-0.374,1.000 +57.000,1.928,-1.001,0.774,1.000 +57.000,-0.021,0.550,0.576,1.000 +57.000,-1.277,-0.110,-1.200,1.000 +58.000,1.109,-1.093,0.110,1.000 +59.000,-0.385,1.154,0.927,1.000 +59.000,-1.791,0.551,-1.407,1.000 +60.000,0.705,-0.651,-0.156,1.000 +60.000,-0.602,0.050,-0.752,1.000 +61.000,-0.628,0.084,-1.193,1.000 +61.000,-0.902,0.858,-0.338,1.000 +61.000,1.678,-1.438,-0.739,1.000 +61.000,4.815,-1.873,1.695,1.000 +62.000,-0.713,-0.860,-1.412,1.000 +63.000,0.975,-0.442,0.669,1.000 +63.000,0.317,-1.433,-0.372,1.000 +63.000,-0.460,0.013,0.063,1.000 +64.000,1.380,-0.038,0.810,1.000 +65.000,-1.210,0.568,-0.159,1.000 +66.000,1.286,0.201,1.955,1.000 +66.000,0.789,0.548,0.050,1.000 +66.000,2.362,-1.180,0.842,1.000 +66.000,-0.626,1.191,0.831,1.000 +67.000,-0.358,0.469,-0.678,1.000 +67.000,0.340,0.119,-0.353,1.000 +67.000,1.687,-1.100,0.786,1.000 +67.000,-1.634,1.972,-0.473,1.000 +68.000,0.823,0.558,0.319,1.000 +69.000,-0.042,-1.538,-1.038,1.000 +69.000,-0.576,-0.003,-0.678,1.000 +70.000,-1.174,2.078,0.344,1.000 +70.000,-0.553,0.978,0.446,1.000 +70.000,1.698,-0.954,1.145,1.000 +70.000,0.832,-1.351,-0.683,1.000 +71.000,2.463,-0.987,0.615,1.000 +72.000,-0.946,-0.976,-1.292,1.000 +73.000,1.650,-1.559,-0.146,1.000 +73.000,2.917,-0.503,1.069,1.000 +73.000,0.957,-0.324,0.032,1.000 +74.000,-0.570,-0.014,-0.301,1.000 +74.000,-0.214,0.776,-0.625,1.000 +75.000,1.800,-1.299,0.429,1.000 +75.000,-0.797,1.608,0.449,1.000 +76.000,-1.117,0.430,0.130,1.000 +76.000,-1.466,0.638,0.399,1.000 +77.000,2.536,-1.665,-0.028,1.000 +78.000,3.624,-1.536,2.043,1.000 +78.000,1.744,0.137,1.234,1.000 +78.000,-0.983,-0.272,-1.528,1.000 +79.000,1.402,-1.210,0.037,1.000 +79.000,0.752,-0.288,0.414,1.000 +79.000,0.490,-0.441,-0.199,1.000 +80.000,-2.357,1.742,0.265,1.000 +80.000,-0.199,0.425,0.635,1.000 +81.000,-0.627,1.468,1.020,1.000 +81.000,-1.852,1.456,-0.716,1.000 +82.000,-2.872,1.874,-0.281,1.000 +82.000,-1.666,0.037,-0.577,1.000 +83.000,0.497,0.497,0.748,1.000 +83.000,-3.274,2.135,-1.192,1.000 +84.000,0.020,-0.136,-0.631,1.000 +84.000,-0.536,0.971,-0.158,1.000 +85.000,-1.679,1.186,-0.826,1.000 +85.000,-0.211,-0.623,-0.986,1.000 +85.000,0.709,0.921,1.159,1.000 +86.000,-1.703,1.161,-0.810,1.000 +87.000,0.350,0.782,0.835,1.000 +87.000,-2.011,0.239,-1.733,1.000 +87.000,-0.824,0.581,-0.652,1.000 +87.000,-0.769,0.052,-0.863,1.000 +88.000,-0.432,-0.493,0.254,1.000 +88.000,-0.421,-0.728,-0.405,1.000 +88.000,-0.565,0.467,0.733,1.000 +89.000,1.633,0.729,0.793,1.000 +89.000,-0.319,0.540,-0.757,1.000 +89.000,1.929,-0.825,-0.052,1.000 +89.000,1.700,0.357,0.914,1.000 +90.000,-1.732,0.626,-0.440,1.000 +90.000,-0.158,-0.436,-0.433,1.000 +91.000,-3.085,-0.567,-3.002,1.000 +91.000,1.038,1.019,1.972,1.000 +91.000,-2.292,1.887,-0.354,1.000 +92.000,1.443,-1.497,-0.470,1.000 +92.000,0.344,-0.221,-0.336,1.000 +92.000,-0.526,0.285,-0.941,1.000 +93.000,-1.002,0.259,-0.555,1.000 +94.000,-0.366,0.724,0.402,1.000 +94.000,1.718,-1.140,-0.841,1.000 +95.000,-0.471,-1.433,-0.896,1.000 +95.000,-1.036,-0.572,-0.478,1.000 +96.000,0.364,0.149,-0.564,1.000 +96.000,4.981,-2.887,2.422,1.000 +96.000,2.168,-0.710,1.224,1.000 +96.000,1.217,-0.470,0.400,1.000 +97.000,1.541,-1.485,-1.086,1.000 +97.000,2.245,-0.722,1.099,1.000 +97.000,0.554,-0.527,0.062,1.000 +98.000,-0.327,-1.222,-1.731,1.000 +98.000,-2.764,0.037,-2.070,1.000 +99.000,-3.335,1.625,-1.565,1.000 +99.000,-0.898,0.066,-0.912,1.000 +99.000,1.887,-1.410,0.108,1.000 +99.000,-0.647,-0.482,-0.596,1.000 diff --git a/statsmodels/regression/tests/results/lme03.csv b/statsmodels/regression/tests/results/lme03.csv new file mode 100644 index 0000000..a55bf82 --- /dev/null +++ b/statsmodels/regression/tests/results/lme03.csv @@ -0,0 +1,230 @@ +groups,endog,exog_fe_0,exog_fe_1,exog_re_0 +0.000,0.896,-1.659,0.537,1.000 +1.000,-1.499,-0.203,-0.225,1.000 +2.000,-3.643,-0.615,-1.157,1.000 +2.000,0.699,0.441,0.143,1.000 +3.000,2.919,-1.589,0.708,1.000 +3.000,0.916,-0.396,0.729,1.000 +4.000,-0.242,-1.445,0.732,1.000 +5.000,1.059,-1.102,0.009,1.000 +5.000,-3.304,0.785,-2.154,1.000 +5.000,-5.862,3.576,0.770,1.000 +6.000,0.222,-0.489,0.753,1.000 +7.000,-2.700,0.679,-0.605,1.000 +7.000,0.351,-0.309,0.357,1.000 +7.000,2.115,0.202,0.752,1.000 +7.000,0.962,0.995,-0.275,1.000 +8.000,-1.274,-0.089,0.455,1.000 +8.000,-2.722,0.424,-0.704,1.000 +8.000,-0.580,0.171,0.188,1.000 +8.000,-2.023,0.806,-0.704,1.000 +9.000,0.330,-1.884,-0.250,1.000 +9.000,-0.750,0.241,-0.030,1.000 +10.000,-0.380,0.185,1.472,1.000 +10.000,0.113,-0.028,0.557,1.000 +11.000,4.264,0.023,0.414,1.000 +12.000,1.558,0.368,0.341,1.000 +12.000,-3.011,1.417,-0.091,1.000 +12.000,1.173,-0.464,-0.015,1.000 +13.000,1.898,0.680,1.220,1.000 +13.000,-2.742,0.991,-0.618,1.000 +13.000,0.632,0.194,-0.752,1.000 +13.000,-1.512,0.368,0.247,1.000 +14.000,-1.465,-0.268,0.043,1.000 +14.000,2.018,-1.565,0.311,1.000 +15.000,0.986,0.398,-0.094,1.000 +15.000,0.778,0.378,1.167,1.000 +16.000,-1.643,0.469,1.175,1.000 +16.000,0.047,0.121,0.920,1.000 +16.000,-0.174,-0.546,-0.092,1.000 +16.000,1.584,-1.750,-1.095,1.000 +17.000,2.642,-1.545,-0.046,1.000 +17.000,4.356,-1.481,1.012,1.000 +17.000,4.753,0.816,-0.030,1.000 +17.000,1.643,0.651,-0.104,1.000 +18.000,2.506,-2.309,-0.814,1.000 +18.000,-2.066,1.571,-1.079,1.000 +18.000,-2.262,-1.279,0.181,1.000 +19.000,-1.682,0.128,0.839,1.000 +19.000,1.634,-1.319,-0.425,1.000 +19.000,-3.570,1.727,-1.531,1.000 +20.000,-0.385,-0.173,-0.767,1.000 +20.000,1.443,-1.916,1.464,1.000 +20.000,-2.247,-1.168,-1.333,1.000 +21.000,1.245,1.483,0.413,1.000 +21.000,-0.081,-0.610,0.718,1.000 +21.000,0.294,0.146,0.042,1.000 +21.000,2.983,-0.463,-0.352,1.000 +22.000,0.548,-1.322,0.716,1.000 +22.000,-2.133,1.215,0.020,1.000 +22.000,0.268,0.133,0.181,1.000 +23.000,-0.098,1.765,0.948,1.000 +23.000,-1.042,2.070,-0.115,1.000 +24.000,-0.899,-1.315,-0.318,1.000 +24.000,2.123,-0.119,1.215,1.000 +24.000,4.608,-0.597,1.929,1.000 +24.000,-0.514,1.038,-0.758,1.000 +25.000,-2.524,0.862,-1.144,1.000 +25.000,3.373,-0.401,1.374,1.000 +25.000,-0.960,0.043,-0.829,1.000 +25.000,-2.333,2.060,0.044,1.000 +26.000,0.546,0.243,-0.203,1.000 +27.000,1.103,-0.957,1.450,1.000 +28.000,1.061,-0.221,1.518,1.000 +29.000,3.441,-0.162,1.235,1.000 +29.000,-1.087,-0.302,-1.481,1.000 +29.000,3.334,-1.092,-0.339,1.000 +30.000,5.416,0.069,0.124,1.000 +30.000,4.293,-0.233,-1.247,1.000 +31.000,0.660,1.083,-0.361,1.000 +32.000,0.434,0.123,1.387,1.000 +33.000,0.432,0.771,0.253,1.000 +34.000,1.816,-0.892,1.608,1.000 +35.000,-1.419,1.386,-0.805,1.000 +35.000,0.716,0.551,-0.136,1.000 +36.000,-0.680,0.932,0.340,1.000 +37.000,-0.221,-0.724,-0.907,1.000 +38.000,1.402,0.112,3.245,1.000 +38.000,-2.095,0.810,-1.237,1.000 +38.000,-1.490,-0.060,-1.298,1.000 +39.000,2.287,-0.688,1.280,1.000 +39.000,-2.591,-0.499,-1.673,1.000 +40.000,1.140,-1.291,0.599,1.000 +41.000,-5.446,0.511,-1.338,1.000 +41.000,2.751,-1.685,0.481,1.000 +41.000,-1.602,1.219,-0.333,1.000 +42.000,5.675,-0.676,1.235,1.000 +43.000,1.229,-0.846,0.070,1.000 +43.000,-0.651,0.381,0.359,1.000 +43.000,-1.527,-0.316,-0.275,1.000 +44.000,-1.291,1.864,-0.548,1.000 +44.000,-1.953,0.944,1.798,1.000 +45.000,1.646,-0.602,1.462,1.000 +45.000,-3.746,-0.749,-2.052,1.000 +45.000,-5.442,2.733,0.193,1.000 +45.000,2.974,-1.392,2.903,1.000 +46.000,-0.325,-0.544,0.486,1.000 +46.000,4.702,-2.130,0.525,1.000 +46.000,-1.292,0.896,-0.585,1.000 +47.000,-2.663,1.043,-0.138,1.000 +47.000,-1.549,-1.495,-0.105,1.000 +48.000,0.411,0.288,0.703,1.000 +48.000,-6.470,1.120,0.653,1.000 +48.000,5.630,-2.713,1.562,1.000 +49.000,2.308,-2.690,0.866,1.000 +49.000,-2.982,0.096,0.306,1.000 +49.000,-0.079,-1.311,0.038,1.000 +49.000,-1.818,0.610,-0.358,1.000 +50.000,1.608,-1.717,-0.034,1.000 +51.000,-0.825,-0.267,0.487,1.000 +51.000,0.579,-0.213,-0.075,1.000 +51.000,-5.529,1.209,-1.972,1.000 +51.000,-3.270,2.479,0.672,1.000 +52.000,2.812,0.297,0.309,1.000 +52.000,-0.419,0.905,-1.172,1.000 +53.000,-1.949,-0.344,0.397,1.000 +54.000,2.353,0.924,0.468,1.000 +54.000,1.791,-2.778,-0.178,1.000 +54.000,4.525,-0.217,0.070,1.000 +55.000,0.980,-0.066,0.581,1.000 +55.000,3.972,-1.004,-0.100,1.000 +56.000,0.664,-0.769,-0.828,1.000 +56.000,-2.819,0.316,-1.447,1.000 +56.000,-1.988,0.041,-1.980,1.000 +56.000,-2.958,-0.464,-1.141,1.000 +57.000,-0.356,0.216,2.159,1.000 +57.000,0.259,0.219,-0.244,1.000 +58.000,1.200,0.331,-0.887,1.000 +58.000,7.956,-1.618,1.002,1.000 +58.000,-0.523,0.728,1.085,1.000 +59.000,2.565,-0.210,0.142,1.000 +59.000,-0.574,-0.775,-0.315,1.000 +59.000,-0.214,-1.694,-0.918,1.000 +60.000,1.968,-0.424,1.760,1.000 +60.000,3.931,-0.354,1.994,1.000 +61.000,-3.132,0.925,-0.764,1.000 +62.000,-0.298,-1.081,-0.132,1.000 +62.000,2.318,1.789,0.407,1.000 +62.000,1.677,-0.163,0.103,1.000 +62.000,-1.831,-0.046,-0.662,1.000 +63.000,-1.954,-0.928,-0.260,1.000 +63.000,-0.339,-1.324,-0.620,1.000 +63.000,-5.099,0.818,-0.744,1.000 +63.000,-5.013,0.016,-1.138,1.000 +64.000,-2.670,0.984,0.731,1.000 +65.000,2.345,1.160,-0.184,1.000 +65.000,0.710,1.722,0.206,1.000 +65.000,-3.464,2.988,0.018,1.000 +66.000,-3.057,2.216,0.315,1.000 +66.000,-1.738,0.384,-0.117,1.000 +67.000,1.764,0.228,-0.203,1.000 +67.000,-2.503,-0.455,-1.452,1.000 +67.000,-4.189,-0.153,0.219,1.000 +68.000,-1.165,0.070,0.059,1.000 +68.000,3.491,-0.239,0.239,1.000 +68.000,-1.288,-0.615,-0.062,1.000 +68.000,-0.837,0.493,-0.186,1.000 +69.000,1.221,-0.101,-0.573,1.000 +69.000,0.947,1.015,0.334,1.000 +69.000,2.886,0.287,1.636,1.000 +69.000,-0.707,0.012,-1.563,1.000 +70.000,-0.378,1.317,0.627,1.000 +71.000,-0.778,-0.461,0.564,1.000 +71.000,3.638,-0.855,-0.315,1.000 +71.000,2.361,-0.541,1.132,1.000 +72.000,-0.072,1.684,-0.807,1.000 +72.000,2.311,1.657,-0.254,1.000 +72.000,1.366,0.624,-1.171,1.000 +72.000,-0.266,-0.498,1.167,1.000 +73.000,2.208,-0.356,0.669,1.000 +74.000,0.589,1.113,-0.049,1.000 +75.000,1.824,0.016,0.798,1.000 +75.000,-1.998,1.758,1.491,1.000 +76.000,1.101,-1.502,0.166,1.000 +77.000,-0.902,-0.150,0.016,1.000 +77.000,-0.681,-0.017,1.283,1.000 +77.000,0.457,-1.734,-0.794,1.000 +77.000,-0.948,-0.110,-1.428,1.000 +78.000,-1.267,0.264,0.015,1.000 +78.000,-1.259,0.593,-3.032,1.000 +78.000,-0.704,-0.606,-0.331,1.000 +79.000,1.007,-0.791,0.357,1.000 +79.000,1.739,0.841,-0.429,1.000 +79.000,0.691,0.701,1.153,1.000 +80.000,-0.275,-1.660,-0.263,1.000 +80.000,-3.283,1.375,2.109,1.000 +81.000,-1.913,0.428,-0.707,1.000 +82.000,-0.322,0.457,0.423,1.000 +82.000,-0.780,-0.572,-2.861,1.000 +82.000,-2.724,-0.350,0.290,1.000 +82.000,1.602,-0.136,2.437,1.000 +83.000,-3.147,1.116,-1.956,1.000 +84.000,1.396,0.455,-0.582,1.000 +84.000,1.654,0.853,0.383,1.000 +84.000,1.438,1.338,1.451,1.000 +85.000,-1.257,0.335,-1.031,1.000 +85.000,-0.524,-0.736,-1.034,1.000 +86.000,7.604,-1.610,0.960,1.000 +87.000,-2.649,0.589,-0.687,1.000 +87.000,-0.415,-0.634,-2.428,1.000 +87.000,-1.182,-0.618,-0.847,1.000 +88.000,4.074,-1.670,0.072,1.000 +88.000,-1.084,-1.018,-0.150,1.000 +89.000,3.981,-0.789,0.976,1.000 +89.000,-5.208,2.187,-0.973,1.000 +90.000,-0.824,0.118,-1.090,1.000 +90.000,0.797,-1.498,1.407,1.000 +91.000,4.016,-1.043,0.911,1.000 +91.000,-1.655,0.638,-0.149,1.000 +91.000,3.831,-0.871,1.270,1.000 +91.000,3.299,0.221,0.765,1.000 +92.000,0.307,-1.345,-0.100,1.000 +93.000,1.757,0.144,0.624,1.000 +93.000,0.946,-2.669,-0.322,1.000 +94.000,4.008,-0.818,1.751,1.000 +95.000,-3.451,-0.114,0.345,1.000 +96.000,0.941,-0.258,0.887,1.000 +97.000,1.638,-0.639,-0.620,1.000 +98.000,-1.325,0.379,-0.282,1.000 +99.000,-1.543,-0.330,1.297,1.000 +99.000,0.157,-0.484,1.422,1.000 diff --git a/statsmodels/regression/tests/results/lme04.csv b/statsmodels/regression/tests/results/lme04.csv new file mode 100644 index 0000000..a222e2b --- /dev/null +++ b/statsmodels/regression/tests/results/lme04.csv @@ -0,0 +1,253 @@ +groups,endog,exog_fe_0,exog_fe_1,exog_fe_2,exog_re_0 +0.000,-0.463,-0.349,-1.395,-0.274,1.000 +0.000,-0.938,0.491,0.741,-0.126,1.000 +0.000,-0.807,0.476,-0.941,-0.124,1.000 +0.000,-1.261,1.097,-0.136,-0.065,1.000 +1.000,-2.074,1.217,2.124,-0.835,1.000 +1.000,0.031,0.536,-0.344,0.706,1.000 +2.000,-3.339,2.331,0.177,0.032,1.000 +2.000,1.606,0.821,0.423,2.271,1.000 +2.000,-1.693,1.259,0.344,-0.616,1.000 +3.000,4.655,-2.093,2.103,1.868,1.000 +3.000,0.784,-0.720,0.117,-0.639,1.000 +4.000,0.884,-1.803,-1.175,-1.213,1.000 +4.000,0.846,-1.182,-1.317,-0.917,1.000 +5.000,0.350,0.078,0.433,0.915,1.000 +5.000,4.570,-2.717,0.328,1.460,1.000 +5.000,-0.268,-0.861,0.384,-1.012,1.000 +5.000,-0.432,0.184,-0.029,-0.177,1.000 +6.000,-0.154,-0.110,-0.361,0.121,1.000 +6.000,-1.861,0.646,0.829,-0.293,1.000 +6.000,-0.194,0.414,-1.179,0.535,1.000 +6.000,0.129,0.071,0.022,1.108,1.000 +7.000,1.884,-0.795,1.620,0.245,1.000 +7.000,0.577,-0.237,1.007,-0.378,1.000 +7.000,-2.023,1.358,-0.470,0.049,1.000 +8.000,0.144,-0.053,-1.474,-0.396,1.000 +9.000,-4.044,1.942,0.853,-1.667,1.000 +9.000,-0.607,1.077,0.149,-0.180,1.000 +9.000,0.097,-1.577,1.241,-0.777,1.000 +10.000,-1.181,0.180,0.815,-1.275,1.000 +10.000,0.026,-0.715,-1.526,-0.972,1.000 +10.000,-0.573,-0.575,1.838,-1.447,1.000 +11.000,-1.066,2.079,1.130,1.604,1.000 +11.000,-1.337,1.053,-0.141,-0.560,1.000 +11.000,4.161,-1.610,-0.485,1.228,1.000 +12.000,0.446,-0.386,0.172,-0.478,1.000 +13.000,0.096,0.259,0.237,-0.070,1.000 +13.000,2.110,-2.034,0.439,0.466,1.000 +14.000,2.129,0.058,1.476,1.703,1.000 +14.000,-0.744,0.532,1.558,-0.231,1.000 +14.000,-0.660,0.357,-0.392,-1.069,1.000 +14.000,-0.439,0.431,-0.289,-0.092,1.000 +15.000,0.679,-0.702,1.056,-1.168,1.000 +15.000,-1.441,0.901,1.081,-1.136,1.000 +16.000,0.944,-0.313,-0.374,0.616,1.000 +16.000,1.683,-0.812,0.083,1.090,1.000 +17.000,0.312,-0.982,0.724,-1.582,1.000 +17.000,0.151,0.543,-1.968,-0.380,1.000 +18.000,-0.641,0.135,-0.696,-1.254,1.000 +18.000,1.172,-0.328,-0.339,-0.373,1.000 +18.000,1.657,-0.856,-1.385,-0.764,1.000 +19.000,-1.066,0.323,-0.914,-0.109,1.000 +19.000,-0.378,-0.654,-1.196,-0.807,1.000 +19.000,-3.024,-0.014,-0.895,-2.200,1.000 +20.000,-3.320,1.532,0.232,-2.006,1.000 +21.000,-0.322,1.535,1.028,0.338,1.000 +22.000,0.239,-0.923,-0.551,-0.415,1.000 +22.000,-1.446,0.777,0.831,-0.608,1.000 +22.000,-1.542,0.507,-0.988,-1.591,1.000 +22.000,-2.810,0.626,-1.186,-1.175,1.000 +23.000,-0.316,1.929,0.076,0.968,1.000 +23.000,0.606,-1.023,1.047,-0.755,1.000 +23.000,-1.248,1.910,0.871,0.474,1.000 +24.000,3.448,-0.912,-1.808,1.088,1.000 +25.000,-1.798,0.320,-0.198,-1.156,1.000 +25.000,-2.893,2.579,0.054,-0.017,1.000 +25.000,-1.295,2.030,1.610,0.917,1.000 +25.000,-1.825,1.913,0.340,0.397,1.000 +26.000,-1.732,-0.552,0.139,-1.133,1.000 +26.000,-3.015,0.240,-2.069,-1.425,1.000 +26.000,-0.092,-0.277,0.001,0.796,1.000 +26.000,0.461,-0.117,0.103,0.552,1.000 +27.000,1.551,-0.468,1.580,1.251,1.000 +27.000,0.537,-0.414,1.661,-0.211,1.000 +28.000,1.042,-1.272,-1.827,-0.443,1.000 +28.000,-0.560,-0.081,-0.968,0.460,1.000 +28.000,0.161,0.893,-0.266,0.454,1.000 +28.000,-0.516,0.650,-0.725,-0.484,1.000 +29.000,-0.861,-0.806,0.610,-1.962,1.000 +29.000,2.238,-0.848,1.387,0.098,1.000 +29.000,-0.781,-0.149,1.097,-1.491,1.000 +30.000,1.631,0.150,-1.203,1.806,1.000 +30.000,0.033,-0.145,-1.006,-0.035,1.000 +31.000,-1.706,1.439,-1.389,0.226,1.000 +31.000,-1.100,-0.201,-0.592,-1.081,1.000 +31.000,-0.040,0.399,1.524,-0.136,1.000 +31.000,-1.515,0.270,0.491,-1.119,1.000 +32.000,-0.437,-0.106,-0.820,-0.899,1.000 +33.000,-1.510,0.181,0.593,-1.311,1.000 +33.000,0.471,0.171,0.508,0.342,1.000 +34.000,0.126,1.148,-1.885,0.651,1.000 +34.000,-2.719,0.621,0.634,-2.568,1.000 +34.000,0.562,1.306,-0.144,0.149,1.000 +34.000,2.184,-1.656,-0.482,-0.337,1.000 +35.000,1.205,-1.445,0.312,-0.164,1.000 +35.000,-2.110,0.957,-1.217,-1.100,1.000 +35.000,1.096,-0.301,0.914,0.941,1.000 +36.000,1.576,0.973,-1.396,1.332,1.000 +37.000,-0.665,-0.271,1.620,-0.717,1.000 +38.000,0.279,0.990,-0.600,0.248,1.000 +38.000,1.280,-2.938,-0.223,0.055,1.000 +38.000,-0.226,1.070,0.512,0.307,1.000 +38.000,-2.494,1.280,2.425,-0.816,1.000 +39.000,-2.059,1.170,-0.555,-0.727,1.000 +39.000,-1.583,0.691,-0.204,-1.432,1.000 +40.000,0.728,-0.801,1.227,0.119,1.000 +40.000,2.629,-0.543,-0.386,0.338,1.000 +40.000,0.736,0.711,1.882,0.711,1.000 +41.000,-0.391,0.162,-0.127,-0.215,1.000 +41.000,-0.894,0.088,0.063,-0.078,1.000 +41.000,0.930,-0.135,0.320,0.398,1.000 +41.000,0.353,0.297,1.326,1.337,1.000 +42.000,-0.707,-0.462,-1.397,-0.702,1.000 +42.000,1.422,-2.565,-1.095,-0.523,1.000 +42.000,-1.684,0.526,-0.918,-0.324,1.000 +42.000,-2.438,0.289,-0.324,-1.264,1.000 +43.000,1.053,0.512,0.542,0.543,1.000 +43.000,1.054,-0.822,-0.126,0.007,1.000 +44.000,0.099,-0.408,-0.456,0.232,1.000 +44.000,-0.249,-0.288,-2.287,-0.732,1.000 +44.000,0.968,0.599,1.869,1.635,1.000 +45.000,0.285,-1.146,0.440,-0.823,1.000 +45.000,1.881,-1.926,-0.302,-0.052,1.000 +46.000,0.048,-0.061,1.050,-0.254,1.000 +46.000,1.802,-0.456,-1.751,1.361,1.000 +47.000,-2.984,2.696,-0.203,0.080,1.000 +48.000,-0.218,0.475,0.046,-0.644,1.000 +49.000,3.221,-2.034,-0.255,0.554,1.000 +49.000,1.156,-0.266,1.053,0.613,1.000 +49.000,-2.756,1.512,1.220,-1.876,1.000 +49.000,0.771,0.792,1.931,0.442,1.000 +50.000,2.091,-0.922,1.023,0.084,1.000 +50.000,4.610,-1.356,0.307,1.924,1.000 +50.000,-0.145,-0.384,1.841,-0.534,1.000 +50.000,-2.647,0.745,-0.393,-2.121,1.000 +51.000,-0.913,-0.586,1.651,-1.227,1.000 +52.000,2.543,-1.074,-2.021,1.498,1.000 +52.000,2.179,-2.141,-0.909,-0.798,1.000 +52.000,-1.319,-0.675,0.948,-1.298,1.000 +52.000,0.317,0.379,-0.716,0.333,1.000 +53.000,2.989,-0.882,0.202,0.987,1.000 +53.000,0.247,-0.457,0.319,-0.499,1.000 +53.000,0.120,1.640,-1.168,0.467,1.000 +54.000,0.352,-0.783,0.741,0.361,1.000 +54.000,1.160,-1.725,-1.227,-0.939,1.000 +54.000,0.819,-0.537,0.336,0.631,1.000 +54.000,-1.067,0.154,0.068,-0.300,1.000 +55.000,0.912,-0.225,0.817,0.102,1.000 +55.000,0.963,-0.936,1.752,0.186,1.000 +56.000,0.484,-0.244,0.466,0.128,1.000 +57.000,3.167,-0.596,-0.518,1.746,1.000 +57.000,2.598,-1.359,0.489,1.445,1.000 +57.000,2.486,-2.112,-1.123,-0.365,1.000 +58.000,0.814,-1.153,0.726,-0.823,1.000 +58.000,1.007,0.154,1.107,0.428,1.000 +58.000,-1.547,0.653,0.016,-0.274,1.000 +59.000,0.333,-0.281,-0.313,0.439,1.000 +59.000,-0.503,0.255,0.409,0.651,1.000 +60.000,1.369,-1.244,-0.616,0.204,1.000 +60.000,-0.032,-0.051,-0.271,-0.580,1.000 +61.000,-0.441,1.491,0.633,0.416,1.000 +61.000,-1.099,1.686,-0.758,-0.240,1.000 +62.000,-1.223,-0.055,-0.807,-0.784,1.000 +62.000,2.225,-0.191,0.439,1.910,1.000 +63.000,-2.042,1.391,-0.600,-1.105,1.000 +63.000,-2.002,1.017,0.767,-0.467,1.000 +63.000,-1.872,-0.150,-1.168,-2.097,1.000 +64.000,0.320,0.503,-1.914,-0.115,1.000 +65.000,0.868,0.711,-0.390,0.669,1.000 +65.000,0.295,1.013,0.464,0.997,1.000 +66.000,-0.256,0.530,-0.431,-0.630,1.000 +66.000,1.061,-0.606,-0.466,0.255,1.000 +67.000,-1.967,0.318,0.184,-1.967,1.000 +67.000,0.581,-0.609,-1.071,0.253,1.000 +68.000,-0.596,1.649,-0.621,0.844,1.000 +68.000,1.194,0.561,-0.213,0.894,1.000 +68.000,1.104,-1.587,0.162,-0.753,1.000 +68.000,-0.634,1.082,-0.783,0.404,1.000 +69.000,-4.348,0.564,0.261,-2.781,1.000 +70.000,-0.707,0.908,0.696,0.629,1.000 +71.000,-1.861,1.388,-0.598,-0.733,1.000 +71.000,0.205,0.695,0.108,0.562,1.000 +72.000,-2.768,2.202,0.358,-0.883,1.000 +72.000,0.989,-2.361,-0.968,-1.685,1.000 +73.000,-0.022,-0.567,-1.099,0.509,1.000 +74.000,-0.967,-1.133,1.021,-1.561,1.000 +74.000,3.925,-2.303,0.134,1.622,1.000 +74.000,-2.789,2.011,-0.955,-0.172,1.000 +74.000,1.146,-0.735,0.148,0.230,1.000 +75.000,-1.655,1.376,-2.324,0.006,1.000 +75.000,-0.768,-0.219,-0.096,-1.035,1.000 +75.000,0.184,-0.709,-1.445,-0.325,1.000 +75.000,-1.585,0.923,0.642,-1.101,1.000 +76.000,-0.039,1.304,1.255,1.128,1.000 +76.000,2.326,-0.434,-0.775,0.591,1.000 +77.000,-0.561,0.460,0.244,0.191,1.000 +77.000,-0.046,-0.190,-0.520,-0.808,1.000 +77.000,4.086,-1.980,-0.439,2.066,1.000 +77.000,0.665,-0.604,-1.375,-0.006,1.000 +78.000,-3.898,-0.171,-0.325,-2.976,1.000 +78.000,0.405,0.569,-1.208,1.038,1.000 +79.000,-1.024,0.173,-2.303,0.219,1.000 +79.000,-0.207,-0.872,-0.197,0.149,1.000 +79.000,-0.622,-0.354,0.121,-0.109,1.000 +80.000,-0.094,0.278,-1.764,0.173,1.000 +80.000,1.396,-0.652,-0.541,0.533,1.000 +80.000,-1.648,1.041,-0.888,-0.073,1.000 +81.000,0.792,0.299,-0.705,1.327,1.000 +82.000,-0.839,0.178,-1.719,-0.972,1.000 +82.000,-1.346,0.381,1.782,-1.869,1.000 +82.000,-0.298,-0.778,-1.535,-1.313,1.000 +82.000,0.365,0.354,-0.777,0.396,1.000 +83.000,0.743,-1.213,0.328,0.279,1.000 +83.000,2.316,-1.140,0.176,1.521,1.000 +83.000,0.647,-1.342,-0.242,-0.040,1.000 +84.000,0.640,0.038,-0.797,-0.561,1.000 +84.000,0.007,0.390,0.523,0.316,1.000 +84.000,3.044,-1.114,-0.508,1.279,1.000 +84.000,-0.581,0.003,-0.582,-0.422,1.000 +85.000,0.831,-1.766,-1.629,-0.138,1.000 +85.000,0.252,-0.733,-0.317,-0.448,1.000 +86.000,-0.914,-0.498,-0.001,-1.115,1.000 +86.000,-0.210,1.260,-0.968,0.696,1.000 +86.000,-1.075,0.146,0.512,-0.503,1.000 +87.000,0.915,-0.013,1.140,0.706,1.000 +87.000,-0.991,1.876,0.757,-0.193,1.000 +88.000,0.335,-0.920,-0.641,-0.362,1.000 +88.000,0.581,0.437,0.336,0.375,1.000 +89.000,2.032,-0.515,2.291,0.447,1.000 +89.000,-1.969,1.945,0.057,0.546,1.000 +90.000,-1.314,0.115,-0.797,-0.978,1.000 +90.000,0.398,-0.175,0.381,0.673,1.000 +90.000,-0.793,0.332,0.982,-0.318,1.000 +91.000,-0.269,-0.461,-0.736,-0.556,1.000 +91.000,-3.569,2.120,-1.517,-0.875,1.000 +92.000,-0.105,-0.394,-0.021,-0.855,1.000 +93.000,-2.884,1.953,-1.066,-0.841,1.000 +93.000,-0.223,0.140,0.432,-0.355,1.000 +93.000,-0.937,0.694,-0.141,-0.649,1.000 +93.000,-0.781,-1.124,0.766,-1.699,1.000 +94.000,-0.216,1.392,0.193,0.721,1.000 +95.000,0.549,-1.081,-0.379,-0.599,1.000 +96.000,-3.352,1.763,0.509,-1.960,1.000 +96.000,2.444,-0.399,-0.497,0.725,1.000 +97.000,1.451,-0.677,-0.580,-1.055,1.000 +97.000,1.806,-1.187,-0.907,-0.049,1.000 +97.000,0.714,0.737,-0.540,0.645,1.000 +97.000,0.992,0.366,-0.163,0.188,1.000 +98.000,-1.026,1.723,0.693,0.119,1.000 +98.000,0.337,0.069,0.358,-0.266,1.000 +99.000,1.196,-1.316,-0.263,0.443,1.000 +99.000,-2.012,1.087,-0.564,-0.343,1.000 +99.000,-0.855,-0.511,0.744,-0.596,1.000 diff --git a/statsmodels/regression/tests/results/lme05.csv b/statsmodels/regression/tests/results/lme05.csv new file mode 100644 index 0000000..05f94ee --- /dev/null +++ b/statsmodels/regression/tests/results/lme05.csv @@ -0,0 +1,269 @@ +groups,endog,exog_fe_0,exog_fe_1,exog_fe_2,exog_re_0 +0.000,3.880,-0.978,0.620,1.794,1.000 +1.000,-3.750,-0.532,-0.310,-1.308,1.000 +2.000,2.243,-0.588,0.722,0.296,1.000 +3.000,1.804,0.343,-0.678,0.156,1.000 +3.000,0.032,-1.447,-0.135,-1.995,1.000 +3.000,1.063,0.848,-0.488,1.518,1.000 +3.000,-3.443,0.635,-1.315,-0.546,1.000 +4.000,-0.592,0.310,1.774,0.725,1.000 +4.000,0.577,-0.318,-0.086,0.596,1.000 +4.000,1.578,0.508,-0.586,1.929,1.000 +4.000,1.667,-1.461,0.438,0.638,1.000 +5.000,-1.134,1.391,-0.619,-0.412,1.000 +5.000,3.445,-0.057,-1.143,0.497,1.000 +5.000,-4.456,1.295,-0.823,-1.722,1.000 +5.000,-1.298,-0.838,-1.625,-1.846,1.000 +6.000,6.148,-0.329,0.786,2.014,1.000 +7.000,0.111,-0.139,-0.627,0.764,1.000 +8.000,1.446,-0.977,0.087,0.130,1.000 +8.000,-4.741,0.548,1.546,-0.126,1.000 +8.000,-2.082,1.405,-0.301,0.735,1.000 +9.000,-3.572,0.288,1.556,-0.517,1.000 +9.000,1.780,0.437,-0.163,1.267,1.000 +10.000,-3.371,-1.841,0.123,-2.111,1.000 +10.000,-0.814,-0.243,-0.618,-1.564,1.000 +10.000,-1.692,1.205,0.359,0.478,1.000 +11.000,1.115,-1.828,0.958,-0.926,1.000 +11.000,-3.553,0.608,-0.535,-0.945,1.000 +11.000,2.304,-1.334,1.340,0.461,1.000 +12.000,-5.266,1.659,1.492,-0.655,1.000 +12.000,-3.532,-0.453,-0.657,-0.609,1.000 +12.000,1.459,0.745,0.561,-0.874,1.000 +12.000,-1.708,1.252,-0.468,-2.180,1.000 +13.000,1.907,-0.670,1.266,-0.607,1.000 +13.000,-0.989,1.664,0.963,-0.219,1.000 +14.000,-0.758,0.733,0.125,1.543,1.000 +14.000,-1.779,0.448,-0.329,0.230,1.000 +14.000,0.867,-2.197,0.615,0.516,1.000 +15.000,-2.860,0.932,-0.529,-0.395,1.000 +15.000,2.060,-0.448,0.377,-0.383,1.000 +15.000,-1.017,1.039,-0.389,-0.413,1.000 +15.000,2.710,-0.136,0.060,-0.748,1.000 +16.000,1.893,-0.979,0.260,0.387,1.000 +16.000,0.523,-0.155,0.459,-0.843,1.000 +16.000,-2.894,1.584,1.659,-0.086,1.000 +16.000,1.008,-0.878,-0.214,0.022,1.000 +17.000,-1.792,-0.524,0.011,0.765,1.000 +17.000,0.231,1.116,0.761,-0.256,1.000 +17.000,2.597,-0.832,0.745,1.478,1.000 +17.000,-2.557,1.768,-0.719,0.860,1.000 +18.000,1.849,0.234,-1.582,0.792,1.000 +18.000,1.212,1.107,1.193,-0.055,1.000 +18.000,0.241,0.323,-1.514,0.080,1.000 +18.000,0.037,-1.443,-0.575,-0.275,1.000 +19.000,-0.792,-0.037,-1.544,-0.335,1.000 +20.000,0.876,0.397,0.170,-0.713,1.000 +20.000,-0.264,-0.271,0.900,-0.245,1.000 +21.000,0.269,-1.604,-0.475,0.315,1.000 +21.000,2.284,-1.714,0.086,-0.026,1.000 +22.000,-2.273,-1.107,-1.504,0.475,1.000 +22.000,-0.580,0.304,1.280,-0.123,1.000 +22.000,-1.211,1.489,-0.014,-1.207,1.000 +23.000,-3.671,1.304,0.592,0.268,1.000 +23.000,-0.922,0.767,0.451,-0.432,1.000 +24.000,0.943,0.467,-0.675,0.300,1.000 +24.000,3.662,-0.044,0.390,0.727,1.000 +24.000,0.627,0.628,0.781,0.188,1.000 +24.000,2.651,0.316,0.205,-0.148,1.000 +25.000,-3.343,-0.519,0.827,-0.265,1.000 +25.000,-3.000,-1.712,-2.129,-2.028,1.000 +25.000,0.318,-0.776,0.809,0.086,1.000 +25.000,0.335,0.344,-0.483,0.385,1.000 +26.000,1.512,-0.914,1.840,-0.491,1.000 +27.000,1.688,0.506,1.645,0.315,1.000 +27.000,1.181,1.158,-0.613,2.686,1.000 +27.000,-0.341,1.909,-0.557,-0.947,1.000 +27.000,1.667,-1.009,1.660,0.221,1.000 +28.000,-3.495,1.017,-1.665,-1.468,1.000 +29.000,-3.995,0.022,-1.258,1.305,1.000 +29.000,-1.670,1.317,0.100,0.593,1.000 +29.000,0.052,-0.224,-1.916,-0.868,1.000 +30.000,2.513,1.046,-2.597,1.586,1.000 +31.000,0.356,0.341,0.215,-0.084,1.000 +31.000,4.362,1.685,-0.578,1.978,1.000 +31.000,-4.676,0.322,-1.459,-2.394,1.000 +31.000,2.795,0.640,-0.281,0.213,1.000 +32.000,-1.351,1.668,0.388,0.001,1.000 +32.000,-2.228,0.018,-0.089,-1.305,1.000 +32.000,-1.255,0.825,0.032,-0.576,1.000 +32.000,2.912,0.798,0.040,1.710,1.000 +33.000,-0.545,-0.268,0.841,0.124,1.000 +33.000,-1.687,1.005,0.939,-0.222,1.000 +33.000,-1.930,-0.330,1.535,-1.048,1.000 +33.000,0.747,1.498,-0.492,0.204,1.000 +34.000,-5.473,-0.033,0.154,-1.758,1.000 +34.000,-0.687,-1.710,0.788,-1.152,1.000 +35.000,1.174,0.477,-0.492,-0.664,1.000 +35.000,-2.062,-1.049,0.164,-0.417,1.000 +35.000,2.658,-0.151,-1.570,-0.041,1.000 +36.000,-3.845,0.825,0.325,1.400,1.000 +37.000,2.601,-0.645,1.104,0.364,1.000 +37.000,-2.832,2.148,1.349,0.272,1.000 +38.000,1.752,-0.669,-0.380,-1.333,1.000 +38.000,-4.343,2.159,-0.716,-1.549,1.000 +39.000,3.428,-0.575,-0.066,0.377,1.000 +39.000,2.637,-0.716,0.788,-0.803,1.000 +39.000,-4.920,1.429,-0.276,0.731,1.000 +40.000,1.447,0.799,-1.693,1.072,1.000 +40.000,-2.954,0.019,0.350,-1.168,1.000 +40.000,-1.030,1.178,-0.464,-0.641,1.000 +41.000,3.446,-0.906,-0.703,1.559,1.000 +41.000,-0.801,-0.120,0.966,-0.651,1.000 +41.000,-0.990,0.748,-1.755,-1.042,1.000 +41.000,-0.770,-1.165,-0.056,-1.244,1.000 +42.000,2.144,0.888,0.305,-0.308,1.000 +42.000,2.618,-0.954,-0.044,-2.079,1.000 +42.000,1.550,0.857,0.115,0.263,1.000 +42.000,2.607,0.385,-1.245,1.662,1.000 +43.000,-1.553,0.152,0.101,-1.907,1.000 +43.000,-0.779,-0.148,0.112,-0.119,1.000 +43.000,1.932,-1.185,1.165,1.073,1.000 +44.000,-1.477,-0.445,-1.277,-0.223,1.000 +45.000,2.261,-0.297,-1.369,-0.907,1.000 +45.000,3.779,-0.118,0.159,1.871,1.000 +46.000,-1.921,-0.940,-1.167,-0.312,1.000 +46.000,-2.027,-0.615,-1.259,-0.294,1.000 +46.000,-2.334,-0.467,-1.014,3.167,1.000 +47.000,2.334,-1.243,0.152,0.703,1.000 +47.000,3.017,-1.309,-1.268,0.334,1.000 +47.000,-2.094,0.316,1.576,-1.097,1.000 +48.000,-1.315,1.319,-1.027,0.310,1.000 +48.000,2.309,-1.564,-0.617,0.666,1.000 +48.000,-2.279,0.447,1.488,-2.344,1.000 +48.000,0.154,-0.488,-0.293,0.620,1.000 +49.000,0.570,0.239,-0.829,0.888,1.000 +49.000,2.697,-1.757,-0.979,0.283,1.000 +49.000,4.004,-0.185,-0.553,1.880,1.000 +50.000,1.861,0.759,-0.706,-0.315,1.000 +51.000,-2.630,-0.353,0.190,-0.562,1.000 +51.000,0.036,-0.828,0.739,0.321,1.000 +52.000,-2.787,0.258,0.291,-0.286,1.000 +52.000,-1.409,-0.053,0.134,-0.989,1.000 +52.000,3.396,0.355,-0.455,0.015,1.000 +53.000,-1.213,2.654,1.011,1.630,1.000 +54.000,-0.034,-0.335,1.130,0.580,1.000 +55.000,-1.967,-0.034,-0.635,0.387,1.000 +55.000,-1.831,1.592,0.305,0.536,1.000 +56.000,0.617,0.998,-0.725,0.440,1.000 +57.000,-0.638,0.092,1.789,0.881,1.000 +57.000,2.310,0.367,-0.148,1.188,1.000 +57.000,-1.118,0.851,-0.143,0.456,1.000 +57.000,0.930,0.706,1.089,-0.486,1.000 +58.000,-2.204,0.442,-0.663,-0.609,1.000 +59.000,4.833,-0.763,-1.618,-0.357,1.000 +59.000,-1.014,-0.750,1.936,-1.006,1.000 +59.000,-0.500,0.386,0.660,0.618,1.000 +59.000,3.452,1.264,-1.429,1.022,1.000 +60.000,-3.408,-0.563,-1.186,-0.492,1.000 +60.000,1.757,0.213,1.293,0.343,1.000 +60.000,4.311,-1.632,-1.177,0.960,1.000 +61.000,1.516,-1.320,-0.219,0.198,1.000 +61.000,-2.059,1.347,-1.978,-0.509,1.000 +61.000,1.379,-0.472,1.422,-0.299,1.000 +61.000,2.276,0.186,-0.331,0.005,1.000 +62.000,2.757,-0.675,0.543,0.124,1.000 +62.000,2.030,-0.165,1.641,0.333,1.000 +63.000,-5.107,0.729,1.550,0.125,1.000 +63.000,1.022,-1.965,-0.165,0.168,1.000 +63.000,1.431,-0.744,-0.960,0.590,1.000 +64.000,2.656,-1.120,-0.814,1.757,1.000 +64.000,5.829,0.492,1.164,0.040,1.000 +64.000,-0.448,1.765,0.093,-0.032,1.000 +64.000,-0.482,0.208,0.061,-0.010,1.000 +65.000,-3.100,-0.790,0.379,-1.450,1.000 +66.000,3.179,0.546,1.378,1.144,1.000 +66.000,-2.246,0.895,-0.892,-0.988,1.000 +67.000,-3.264,-0.120,-1.869,0.424,1.000 +67.000,-5.626,1.889,0.822,-1.540,1.000 +67.000,-1.804,0.507,-0.348,-0.406,1.000 +67.000,1.517,-0.347,-0.353,0.592,1.000 +68.000,3.198,-2.207,2.608,-1.232,1.000 +68.000,3.162,-0.634,-1.265,1.174,1.000 +68.000,-2.861,2.025,0.763,-0.627,1.000 +68.000,-2.550,1.599,-0.303,1.449,1.000 +69.000,3.149,0.947,-0.140,0.562,1.000 +69.000,4.168,0.533,-1.239,-0.577,1.000 +70.000,0.913,1.612,-1.857,1.033,1.000 +71.000,-3.526,2.188,-0.674,-1.317,1.000 +71.000,1.651,-0.158,-0.762,-0.136,1.000 +71.000,2.957,-0.133,-0.311,-0.435,1.000 +71.000,-1.667,-1.187,-0.253,-1.864,1.000 +72.000,3.198,1.665,-1.237,1.804,1.000 +73.000,-1.054,-0.230,0.211,-1.063,1.000 +73.000,1.632,0.679,0.135,1.178,1.000 +73.000,0.062,-0.118,1.041,0.650,1.000 +74.000,0.502,1.712,-0.863,0.172,1.000 +74.000,2.890,-1.015,-0.702,-0.260,1.000 +75.000,3.543,-0.560,0.013,0.292,1.000 +75.000,2.363,-1.176,1.015,-0.208,1.000 +75.000,-0.694,1.899,-0.327,2.512,1.000 +75.000,2.421,-0.938,1.145,0.232,1.000 +76.000,4.377,-0.299,0.762,1.687,1.000 +77.000,-0.323,-0.307,-1.296,-0.154,1.000 +77.000,-0.723,0.376,1.243,-0.455,1.000 +77.000,1.116,-0.038,1.138,1.615,1.000 +78.000,0.111,-0.932,1.007,-0.255,1.000 +79.000,-2.678,0.179,0.587,-0.507,1.000 +79.000,-3.988,0.285,0.261,-0.831,1.000 +79.000,1.468,0.397,-0.895,1.210,1.000 +80.000,0.583,1.182,-0.192,-0.150,1.000 +80.000,0.395,-1.170,-0.036,1.275,1.000 +81.000,1.828,-1.102,0.379,0.231,1.000 +81.000,-0.634,0.799,-0.421,-0.475,1.000 +81.000,-0.060,-1.463,-1.536,1.805,1.000 +81.000,3.483,-1.966,-0.418,-1.515,1.000 +82.000,2.080,-0.976,0.152,1.717,1.000 +82.000,-0.011,-0.125,-0.194,0.805,1.000 +82.000,0.589,-2.327,1.703,0.168,1.000 +82.000,0.873,0.054,-0.824,-1.055,1.000 +83.000,2.724,0.900,2.977,0.286,1.000 +83.000,-5.920,0.491,-0.595,-0.684,1.000 +83.000,-1.550,-0.592,-0.079,-0.748,1.000 +83.000,-2.430,0.288,0.783,-0.279,1.000 +84.000,-1.655,1.313,-0.502,-0.149,1.000 +84.000,-0.811,0.447,0.016,-0.133,1.000 +84.000,-2.868,0.996,0.587,1.912,1.000 +84.000,-3.436,0.732,0.936,0.237,1.000 +85.000,-3.382,0.325,-0.754,-0.743,1.000 +85.000,1.671,-1.395,1.344,-0.881,1.000 +85.000,4.144,-0.447,-0.314,0.631,1.000 +85.000,-0.305,-0.433,0.707,-0.109,1.000 +86.000,0.075,-0.143,-0.174,-0.729,1.000 +86.000,0.283,-0.565,0.495,-0.394,1.000 +86.000,0.717,-0.280,1.025,0.208,1.000 +87.000,1.847,0.022,-0.105,0.066,1.000 +87.000,4.477,-0.185,-1.114,0.207,1.000 +88.000,0.254,0.613,-0.430,-0.638,1.000 +88.000,3.023,-1.434,0.546,-1.376,1.000 +88.000,2.627,0.249,0.043,0.462,1.000 +89.000,0.570,-1.258,-1.563,-0.024,1.000 +89.000,0.560,-0.438,-0.420,0.108,1.000 +89.000,-0.079,0.254,0.385,-0.022,1.000 +90.000,-0.160,-0.865,-0.345,-0.793,1.000 +90.000,-1.435,0.724,-0.926,-0.158,1.000 +90.000,0.827,1.614,0.065,0.616,1.000 +90.000,-0.006,-0.160,1.080,0.167,1.000 +91.000,6.407,0.364,0.998,0.729,1.000 +91.000,-3.118,0.010,-1.036,0.791,1.000 +91.000,-2.875,2.432,0.839,1.055,1.000 +91.000,-3.487,1.441,-1.509,-1.671,1.000 +92.000,4.981,-0.726,1.735,1.323,1.000 +92.000,-1.411,-1.597,0.415,-0.591,1.000 +92.000,2.521,0.064,-1.279,0.026,1.000 +92.000,-0.620,0.262,0.313,-1.849,1.000 +93.000,2.052,0.297,0.549,2.033,1.000 +93.000,-1.029,0.115,3.151,-1.510,1.000 +94.000,0.524,0.241,-0.997,1.701,1.000 +95.000,-0.405,-1.720,-1.119,0.040,1.000 +95.000,-0.659,-1.001,-1.394,-1.116,1.000 +95.000,-4.643,0.043,0.384,-1.624,1.000 +96.000,-5.558,-0.109,-1.023,-0.518,1.000 +97.000,-0.291,0.064,-0.555,1.100,1.000 +98.000,-0.728,-0.328,-0.638,0.568,1.000 +98.000,-2.752,0.267,-0.413,0.007,1.000 +98.000,1.371,-0.474,0.324,-1.436,1.000 +98.000,-6.489,2.050,0.432,-2.570,1.000 +99.000,-1.681,-0.349,1.479,1.119,1.000 +99.000,-1.584,-0.891,-0.525,0.200,1.000 +99.000,1.696,-0.235,-1.439,1.765,1.000 diff --git a/statsmodels/regression/tests/results/lme06.csv b/statsmodels/regression/tests/results/lme06.csv new file mode 100644 index 0000000..1c1995a --- /dev/null +++ b/statsmodels/regression/tests/results/lme06.csv @@ -0,0 +1,261 @@ +groups,endog,exog_fe_0,exog_re_0,exog_re_1 +0.000,-0.504,-0.256,1.000,-1.000 +1.000,-2.437,1.355,1.000,-1.000 +1.000,-2.472,0.098,1.000,0.000 +1.000,-1.651,0.666,1.000,1.000 +2.000,-1.139,1.864,1.000,-1.000 +3.000,-2.869,2.045,1.000,-1.000 +3.000,-1.301,0.867,1.000,1.000 +4.000,1.155,-0.194,1.000,-1.000 +4.000,-0.202,1.156,1.000,1.000 +5.000,-0.553,-0.664,1.000,-1.000 +5.000,-1.502,1.428,1.000,1.000 +6.000,0.782,0.132,1.000,-1.000 +6.000,-2.208,0.771,1.000,1.000 +7.000,-1.198,1.180,1.000,-1.000 +7.000,0.324,-0.346,1.000,0.000 +7.000,0.149,-0.247,1.000,1.000 +8.000,-0.799,1.796,1.000,-1.000 +8.000,1.187,-0.264,1.000,0.000 +8.000,-2.163,1.864,1.000,1.000 +9.000,-2.442,0.749,1.000,-1.000 +9.000,1.112,-1.067,1.000,1.000 +10.000,-3.316,0.867,1.000,-1.000 +10.000,-1.735,1.423,1.000,-0.333 +10.000,0.639,-0.714,1.000,0.333 +10.000,0.978,0.813,1.000,1.000 +11.000,-0.507,0.873,1.000,-1.000 +11.000,-2.311,1.169,1.000,-0.333 +11.000,1.023,-0.972,1.000,0.333 +11.000,-1.276,0.065,1.000,1.000 +12.000,-3.120,0.558,1.000,-1.000 +13.000,0.103,0.657,1.000,-1.000 +13.000,-0.551,0.390,1.000,0.000 +13.000,-0.504,-0.771,1.000,1.000 +14.000,0.138,-0.364,1.000,-1.000 +14.000,0.836,-0.845,1.000,-0.333 +14.000,0.951,-0.501,1.000,0.333 +14.000,2.782,-1.463,1.000,1.000 +15.000,-0.087,0.593,1.000,-1.000 +15.000,-1.381,-0.012,1.000,0.000 +15.000,0.022,-1.137,1.000,1.000 +16.000,-0.273,1.230,1.000,-1.000 +16.000,-0.197,0.508,1.000,0.000 +16.000,-0.778,-0.362,1.000,1.000 +17.000,4.004,-1.784,1.000,-1.000 +17.000,-4.111,1.429,1.000,1.000 +18.000,2.411,0.218,1.000,-1.000 +18.000,-0.563,1.556,1.000,0.000 +18.000,-2.774,1.793,1.000,1.000 +19.000,-0.767,0.891,1.000,-1.000 +19.000,1.889,-0.919,1.000,1.000 +20.000,-0.415,0.857,1.000,-1.000 +21.000,-0.843,0.524,1.000,-1.000 +21.000,0.229,-0.311,1.000,0.000 +21.000,-0.775,0.810,1.000,1.000 +22.000,-1.078,0.214,1.000,-1.000 +23.000,-1.707,-0.698,1.000,-1.000 +23.000,-0.486,0.130,1.000,0.000 +23.000,1.893,0.277,1.000,1.000 +24.000,1.611,0.589,1.000,-1.000 +24.000,0.088,0.780,1.000,-0.333 +24.000,0.555,-1.922,1.000,0.333 +24.000,-1.593,-0.270,1.000,1.000 +25.000,0.763,-0.689,1.000,-1.000 +25.000,-0.700,0.693,1.000,0.000 +25.000,-0.762,-0.890,1.000,1.000 +26.000,-0.483,-0.811,1.000,-1.000 +26.000,0.804,-0.850,1.000,0.000 +26.000,0.796,0.850,1.000,1.000 +27.000,-2.479,-0.483,1.000,-1.000 +27.000,1.975,1.144,1.000,1.000 +28.000,1.663,-0.676,1.000,-1.000 +28.000,0.147,-1.068,1.000,0.000 +28.000,-1.392,-0.011,1.000,1.000 +29.000,0.868,0.088,1.000,-1.000 +29.000,-0.389,-0.795,1.000,1.000 +30.000,-2.863,0.948,1.000,-1.000 +30.000,0.632,-1.362,1.000,-0.333 +30.000,0.654,-1.084,1.000,0.333 +30.000,0.555,-0.497,1.000,1.000 +31.000,1.007,-1.654,1.000,-1.000 +32.000,-1.431,1.334,1.000,-1.000 +32.000,4.118,-1.382,1.000,1.000 +33.000,1.713,0.435,1.000,-1.000 +33.000,-2.491,0.260,1.000,1.000 +34.000,0.473,-0.252,1.000,-1.000 +34.000,0.896,-0.881,1.000,0.000 +34.000,0.695,-0.351,1.000,1.000 +35.000,-0.565,1.746,1.000,-1.000 +35.000,0.335,0.235,1.000,-0.333 +35.000,-1.820,0.689,1.000,0.333 +35.000,-1.819,1.396,1.000,1.000 +36.000,0.141,-0.955,1.000,-1.000 +36.000,2.864,-0.527,1.000,1.000 +37.000,-2.260,-0.155,1.000,-1.000 +37.000,-0.230,-0.071,1.000,-0.333 +37.000,1.489,-0.274,1.000,0.333 +37.000,1.931,-0.471,1.000,1.000 +38.000,0.604,1.020,1.000,-1.000 +38.000,-2.912,0.267,1.000,1.000 +39.000,2.449,-1.737,1.000,-1.000 +40.000,0.866,-0.017,1.000,-1.000 +40.000,0.662,-1.104,1.000,-0.333 +40.000,-0.367,-0.897,1.000,0.333 +40.000,-1.341,0.205,1.000,1.000 +41.000,-2.508,0.702,1.000,-1.000 +42.000,2.165,-0.399,1.000,-1.000 +42.000,1.288,-0.953,1.000,-0.333 +42.000,1.945,-1.816,1.000,0.333 +42.000,-0.906,-0.163,1.000,1.000 +43.000,3.407,-1.241,1.000,-1.000 +43.000,-2.504,1.395,1.000,1.000 +44.000,-1.158,1.422,1.000,-1.000 +44.000,-0.602,-0.160,1.000,0.000 +44.000,-0.092,-0.261,1.000,1.000 +45.000,1.114,1.472,1.000,-1.000 +45.000,0.544,-0.196,1.000,-0.333 +45.000,1.030,-0.643,1.000,0.333 +45.000,-1.632,0.720,1.000,1.000 +46.000,-1.196,1.635,1.000,-1.000 +46.000,0.677,-0.376,1.000,-0.333 +46.000,0.168,-0.422,1.000,0.333 +46.000,0.822,-1.482,1.000,1.000 +47.000,1.987,-1.518,1.000,-1.000 +48.000,-0.806,-0.757,1.000,-1.000 +48.000,-0.140,0.522,1.000,-0.333 +48.000,0.169,0.231,1.000,0.333 +48.000,1.582,0.734,1.000,1.000 +49.000,-1.825,2.042,1.000,-1.000 +49.000,-1.142,-0.898,1.000,1.000 +50.000,2.372,-0.655,1.000,-1.000 +50.000,0.969,-1.170,1.000,0.000 +50.000,-2.230,0.112,1.000,1.000 +51.000,2.540,0.940,1.000,-1.000 +52.000,2.133,-0.635,1.000,-1.000 +53.000,0.617,-0.275,1.000,-1.000 +54.000,0.105,-0.836,1.000,-1.000 +55.000,-3.972,0.875,1.000,-1.000 +56.000,-1.098,0.295,1.000,-1.000 +56.000,-0.224,0.780,1.000,-0.333 +56.000,0.172,1.521,1.000,0.333 +56.000,1.878,-0.472,1.000,1.000 +57.000,-0.397,-0.690,1.000,-1.000 +58.000,-2.458,0.388,1.000,-1.000 +58.000,0.326,-0.290,1.000,0.000 +58.000,0.505,2.054,1.000,1.000 +59.000,1.005,-0.104,1.000,-1.000 +60.000,-1.742,0.644,1.000,-1.000 +60.000,1.910,-0.292,1.000,1.000 +61.000,1.093,0.129,1.000,-1.000 +62.000,0.523,-1.067,1.000,-1.000 +62.000,-0.128,0.598,1.000,0.000 +62.000,-0.467,-0.486,1.000,1.000 +63.000,-1.172,-0.137,1.000,-1.000 +63.000,-0.343,-0.403,1.000,0.000 +63.000,1.891,-2.279,1.000,1.000 +64.000,-3.203,2.527,1.000,-1.000 +64.000,-1.121,0.438,1.000,-0.333 +64.000,-1.466,1.320,1.000,0.333 +64.000,-0.904,-0.310,1.000,1.000 +65.000,-0.664,0.502,1.000,-1.000 +65.000,1.038,-0.732,1.000,0.000 +65.000,-0.778,0.272,1.000,1.000 +66.000,0.870,0.221,1.000,-1.000 +66.000,2.390,-1.357,1.000,-0.333 +66.000,0.289,-0.120,1.000,0.333 +66.000,-1.521,1.296,1.000,1.000 +67.000,3.606,-1.067,1.000,-1.000 +67.000,0.280,0.672,1.000,0.000 +67.000,-1.811,-0.625,1.000,1.000 +68.000,1.057,0.582,1.000,-1.000 +68.000,2.026,-1.646,1.000,-0.333 +68.000,-1.203,-0.545,1.000,0.333 +68.000,-2.955,1.209,1.000,1.000 +69.000,-2.743,1.189,1.000,-1.000 +69.000,-1.066,-0.831,1.000,-0.333 +69.000,0.610,-1.715,1.000,0.333 +69.000,0.018,-1.035,1.000,1.000 +70.000,-0.997,0.111,1.000,-1.000 +70.000,-0.681,0.943,1.000,1.000 +71.000,-1.168,0.346,1.000,-1.000 +71.000,1.966,-1.993,1.000,0.000 +71.000,0.586,0.774,1.000,1.000 +72.000,-0.605,-0.261,1.000,-1.000 +72.000,-0.345,0.591,1.000,-0.333 +72.000,-0.707,1.366,1.000,0.333 +72.000,1.443,1.531,1.000,1.000 +73.000,1.417,-1.282,1.000,-1.000 +73.000,-2.950,2.885,1.000,-0.333 +73.000,-0.006,-0.648,1.000,0.333 +73.000,-0.781,0.630,1.000,1.000 +74.000,-2.382,-0.225,1.000,-1.000 +74.000,0.015,-0.643,1.000,-0.333 +74.000,1.240,-0.901,1.000,0.333 +74.000,0.627,0.173,1.000,1.000 +75.000,-1.028,0.961,1.000,-1.000 +75.000,1.689,-0.672,1.000,1.000 +76.000,-3.912,0.794,1.000,-1.000 +76.000,1.054,-1.924,1.000,-0.333 +76.000,1.361,-0.730,1.000,0.333 +76.000,1.924,0.050,1.000,1.000 +77.000,-2.627,-0.171,1.000,-1.000 +77.000,-3.021,1.410,1.000,-0.333 +77.000,0.575,0.139,1.000,0.333 +77.000,3.089,-1.001,1.000,1.000 +78.000,-4.299,0.184,1.000,-1.000 +78.000,3.404,-1.517,1.000,1.000 +79.000,1.737,0.093,1.000,-1.000 +79.000,1.409,-1.070,1.000,-0.333 +79.000,-0.969,-0.311,1.000,0.333 +79.000,-1.929,-0.972,1.000,1.000 +80.000,-2.122,1.294,1.000,-1.000 +80.000,4.013,-2.762,1.000,1.000 +81.000,1.114,-1.246,1.000,-1.000 +81.000,1.025,-0.722,1.000,0.000 +81.000,0.761,-0.593,1.000,1.000 +82.000,1.478,0.293,1.000,-1.000 +83.000,0.758,-0.917,1.000,-1.000 +84.000,0.887,-1.866,1.000,-1.000 +85.000,-0.959,0.572,1.000,-1.000 +86.000,0.227,0.528,1.000,-1.000 +86.000,-1.771,2.595,1.000,-0.333 +86.000,0.668,0.228,1.000,0.333 +86.000,1.166,0.519,1.000,1.000 +87.000,-2.166,0.146,1.000,-1.000 +87.000,-0.160,0.734,1.000,1.000 +88.000,1.914,1.685,1.000,-1.000 +89.000,-0.454,2.314,1.000,-1.000 +89.000,-0.603,0.883,1.000,-0.333 +89.000,-2.334,1.169,1.000,0.333 +89.000,-0.591,-0.352,1.000,1.000 +90.000,0.694,-1.333,1.000,-1.000 +90.000,1.598,-1.268,1.000,0.000 +90.000,0.634,-0.334,1.000,1.000 +91.000,1.044,0.082,1.000,-1.000 +91.000,-1.212,2.227,1.000,0.000 +91.000,1.600,0.557,1.000,1.000 +92.000,-1.696,-0.431,1.000,-1.000 +92.000,2.484,0.289,1.000,1.000 +93.000,1.019,0.219,1.000,-1.000 +94.000,3.209,-0.044,1.000,-1.000 +94.000,-0.031,1.067,1.000,0.000 +94.000,-2.807,1.492,1.000,1.000 +95.000,-0.482,-0.691,1.000,-1.000 +95.000,0.493,-0.678,1.000,-0.333 +95.000,0.010,-0.555,1.000,0.333 +95.000,0.487,-0.234,1.000,1.000 +96.000,2.450,-0.586,1.000,-1.000 +96.000,1.166,-0.160,1.000,-0.333 +96.000,-0.410,1.091,1.000,0.333 +96.000,-1.241,0.189,1.000,1.000 +97.000,-2.760,0.550,1.000,-1.000 +97.000,-1.095,0.541,1.000,0.000 +97.000,1.052,-0.449,1.000,1.000 +98.000,-4.587,1.040,1.000,-1.000 +98.000,0.322,1.639,1.000,0.000 +98.000,5.680,0.163,1.000,1.000 +99.000,2.464,-1.216,1.000,-1.000 +99.000,0.568,-0.646,1.000,-0.333 +99.000,-0.308,-0.545,1.000,0.333 +99.000,0.638,-1.129,1.000,1.000 diff --git a/statsmodels/regression/tests/results/lme07.csv b/statsmodels/regression/tests/results/lme07.csv new file mode 100644 index 0000000..512c820 --- /dev/null +++ b/statsmodels/regression/tests/results/lme07.csv @@ -0,0 +1,262 @@ +groups,endog,exog_fe_0,exog_re_0,exog_re_1 +0.000,0.956,0.225,1.000,-1.000 +0.000,-0.373,0.652,1.000,1.000 +1.000,-6.467,0.497,1.000,-1.000 +1.000,3.855,-0.606,1.000,1.000 +2.000,-5.282,1.750,1.000,-1.000 +2.000,2.002,-0.298,1.000,0.000 +2.000,4.055,0.766,1.000,1.000 +3.000,-0.054,-0.878,1.000,-1.000 +3.000,-5.611,0.331,1.000,-0.333 +3.000,0.762,-0.012,1.000,0.333 +3.000,-0.227,-1.669,1.000,1.000 +4.000,1.053,-1.709,1.000,-1.000 +4.000,5.165,0.190,1.000,1.000 +5.000,1.060,-1.070,1.000,-1.000 +5.000,0.493,0.188,1.000,0.000 +5.000,2.029,0.970,1.000,1.000 +6.000,0.838,0.562,1.000,-1.000 +6.000,0.027,0.515,1.000,0.000 +6.000,3.976,-0.112,1.000,1.000 +7.000,1.951,-0.997,1.000,-1.000 +7.000,-1.909,0.001,1.000,0.000 +7.000,1.528,-0.573,1.000,1.000 +8.000,-1.573,0.103,1.000,-1.000 +8.000,-3.365,-0.239,1.000,0.000 +8.000,2.579,-0.135,1.000,1.000 +9.000,1.600,0.539,1.000,-1.000 +9.000,5.319,-1.925,1.000,1.000 +10.000,-2.121,0.967,1.000,-1.000 +10.000,3.499,-0.122,1.000,1.000 +11.000,7.187,-2.622,1.000,-1.000 +11.000,-3.982,-1.137,1.000,1.000 +12.000,0.954,-0.450,1.000,-1.000 +13.000,0.717,-0.679,1.000,-1.000 +13.000,2.812,0.586,1.000,-0.333 +13.000,-1.596,1.065,1.000,0.333 +13.000,-1.890,0.617,1.000,1.000 +14.000,-0.949,-0.354,1.000,-1.000 +15.000,4.039,0.122,1.000,-1.000 +16.000,4.809,-1.784,1.000,-1.000 +16.000,-3.137,-1.288,1.000,0.000 +16.000,-1.753,-0.573,1.000,1.000 +17.000,2.202,-0.909,1.000,-1.000 +18.000,2.401,-0.730,1.000,-1.000 +19.000,2.499,-0.916,1.000,-1.000 +19.000,-2.299,0.139,1.000,-0.333 +19.000,0.654,-1.151,1.000,0.333 +19.000,-1.829,-0.444,1.000,1.000 +20.000,-1.580,-1.753,1.000,-1.000 +20.000,1.014,-0.429,1.000,1.000 +21.000,-1.986,-1.069,1.000,-1.000 +21.000,2.812,-1.381,1.000,1.000 +22.000,-3.580,-1.580,1.000,-1.000 +22.000,-3.392,1.770,1.000,-0.333 +22.000,0.204,-0.611,1.000,0.333 +22.000,4.073,-0.244,1.000,1.000 +23.000,0.061,1.019,1.000,-1.000 +23.000,4.133,-0.287,1.000,0.000 +23.000,-4.360,-0.014,1.000,1.000 +24.000,-2.443,0.798,1.000,-1.000 +24.000,-0.443,-0.028,1.000,-0.333 +24.000,1.175,0.209,1.000,0.333 +24.000,4.716,-0.242,1.000,1.000 +25.000,1.950,-0.415,1.000,-1.000 +25.000,3.220,-1.952,1.000,-0.333 +25.000,-0.777,0.899,1.000,0.333 +25.000,2.081,0.540,1.000,1.000 +26.000,5.281,0.280,1.000,-1.000 +26.000,-0.427,1.707,1.000,-0.333 +26.000,-0.844,0.809,1.000,0.333 +26.000,-1.842,0.540,1.000,1.000 +27.000,0.820,-1.621,1.000,-1.000 +27.000,-1.527,0.904,1.000,1.000 +28.000,-3.912,3.012,1.000,-1.000 +29.000,-2.184,0.040,1.000,-1.000 +29.000,-2.662,1.494,1.000,-0.333 +29.000,2.934,-1.478,1.000,0.333 +29.000,3.886,-0.272,1.000,1.000 +30.000,-0.451,0.448,1.000,-1.000 +30.000,1.724,-1.152,1.000,-0.333 +30.000,0.048,1.266,1.000,0.333 +30.000,1.182,-0.926,1.000,1.000 +31.000,4.267,-0.585,1.000,-1.000 +31.000,-0.188,-1.548,1.000,0.000 +31.000,0.822,-0.828,1.000,1.000 +32.000,0.888,0.589,1.000,-1.000 +32.000,2.191,-0.949,1.000,0.000 +32.000,-0.566,2.013,1.000,1.000 +33.000,0.623,-0.059,1.000,-1.000 +34.000,-3.665,2.161,1.000,-1.000 +35.000,-0.417,-0.085,1.000,-1.000 +35.000,4.858,-0.423,1.000,-0.333 +35.000,1.601,0.529,1.000,0.333 +35.000,5.691,-2.461,1.000,1.000 +36.000,2.011,1.279,1.000,-1.000 +36.000,-0.254,-0.331,1.000,1.000 +37.000,1.536,-0.267,1.000,-1.000 +37.000,2.323,-1.700,1.000,0.000 +37.000,-2.400,0.644,1.000,1.000 +38.000,-1.353,0.356,1.000,-1.000 +39.000,-3.242,-1.625,1.000,-1.000 +39.000,2.041,-0.874,1.000,-0.333 +39.000,1.399,0.451,1.000,0.333 +39.000,1.565,0.287,1.000,1.000 +40.000,-3.124,0.117,1.000,-1.000 +40.000,-1.677,-0.044,1.000,0.000 +40.000,1.795,-0.126,1.000,1.000 +41.000,-8.392,1.513,1.000,-1.000 +41.000,-1.252,-0.374,1.000,0.000 +41.000,5.035,-1.005,1.000,1.000 +42.000,4.201,0.511,1.000,-1.000 +43.000,1.652,0.592,1.000,-1.000 +44.000,-1.123,1.976,1.000,-1.000 +44.000,2.912,-0.867,1.000,-0.333 +44.000,-1.131,-1.427,1.000,0.333 +44.000,1.154,0.304,1.000,1.000 +45.000,2.863,1.169,1.000,-1.000 +45.000,1.139,-0.129,1.000,0.000 +45.000,2.629,-0.154,1.000,1.000 +46.000,1.318,-1.224,1.000,-1.000 +46.000,-1.632,0.839,1.000,-0.333 +46.000,-3.146,-0.096,1.000,0.333 +46.000,1.037,0.264,1.000,1.000 +47.000,-0.301,-0.542,1.000,-1.000 +47.000,-3.886,0.714,1.000,0.000 +47.000,2.014,-0.568,1.000,1.000 +48.000,-1.617,1.238,1.000,-1.000 +48.000,-1.465,-0.237,1.000,0.000 +48.000,-0.851,-0.563,1.000,1.000 +49.000,-0.664,2.064,1.000,-1.000 +50.000,0.865,-2.508,1.000,-1.000 +50.000,-0.169,-1.642,1.000,0.000 +50.000,1.087,-0.183,1.000,1.000 +51.000,-2.962,0.839,1.000,-1.000 +51.000,2.435,-0.134,1.000,1.000 +52.000,3.901,-0.571,1.000,-1.000 +52.000,-0.798,0.980,1.000,-0.333 +52.000,-0.777,1.586,1.000,0.333 +52.000,-0.841,2.289,1.000,1.000 +53.000,0.423,-0.679,1.000,-1.000 +53.000,-1.770,0.194,1.000,-0.333 +53.000,0.941,-0.145,1.000,0.333 +53.000,-0.350,0.188,1.000,1.000 +54.000,1.475,-0.115,1.000,-1.000 +55.000,-0.188,-0.531,1.000,-1.000 +56.000,-1.045,1.062,1.000,-1.000 +56.000,1.725,-0.650,1.000,0.000 +56.000,-2.736,-0.350,1.000,1.000 +57.000,-0.862,0.751,1.000,-1.000 +57.000,1.209,-0.778,1.000,1.000 +58.000,0.491,-0.507,1.000,-1.000 +59.000,1.046,0.838,1.000,-1.000 +59.000,2.606,-0.663,1.000,1.000 +60.000,3.199,-0.413,1.000,-1.000 +60.000,0.566,-1.830,1.000,-0.333 +60.000,-2.000,-0.313,1.000,0.333 +60.000,-4.465,-1.263,1.000,1.000 +61.000,1.929,0.757,1.000,-1.000 +61.000,0.510,0.927,1.000,-0.333 +61.000,-0.932,-0.270,1.000,0.333 +61.000,2.235,1.040,1.000,1.000 +62.000,-3.503,1.655,1.000,-1.000 +62.000,0.799,-0.519,1.000,0.000 +62.000,-1.247,-1.537,1.000,1.000 +63.000,-0.628,-0.894,1.000,-1.000 +64.000,1.626,0.332,1.000,-1.000 +64.000,3.589,-1.456,1.000,1.000 +65.000,-0.699,0.172,1.000,-1.000 +65.000,1.848,-0.348,1.000,-0.333 +65.000,1.024,-1.250,1.000,0.333 +65.000,-0.245,0.026,1.000,1.000 +66.000,1.555,-1.469,1.000,-1.000 +66.000,-0.735,1.014,1.000,1.000 +67.000,-4.698,1.081,1.000,-1.000 +67.000,2.767,-0.539,1.000,0.000 +67.000,4.146,-0.047,1.000,1.000 +68.000,6.473,-0.377,1.000,-1.000 +68.000,4.701,-0.388,1.000,-0.333 +68.000,-2.551,0.858,1.000,0.333 +68.000,-6.615,0.662,1.000,1.000 +69.000,4.628,-0.415,1.000,-1.000 +69.000,-1.351,0.562,1.000,1.000 +70.000,3.351,0.099,1.000,-1.000 +70.000,-1.983,-0.456,1.000,1.000 +71.000,0.010,-0.764,1.000,-1.000 +71.000,1.035,-1.340,1.000,-0.333 +71.000,-0.883,0.692,1.000,0.333 +71.000,0.003,0.770,1.000,1.000 +72.000,5.947,-0.896,1.000,-1.000 +72.000,0.826,0.477,1.000,-0.333 +72.000,-0.521,-0.111,1.000,0.333 +72.000,0.821,-0.086,1.000,1.000 +73.000,2.296,1.003,1.000,-1.000 +73.000,-0.493,0.580,1.000,0.000 +73.000,-1.035,-1.166,1.000,1.000 +74.000,-2.346,-0.326,1.000,-1.000 +75.000,-0.887,-0.481,1.000,-1.000 +75.000,-0.760,-0.538,1.000,0.000 +75.000,3.571,-0.110,1.000,1.000 +76.000,0.854,-0.472,1.000,-1.000 +76.000,4.549,-0.348,1.000,0.000 +76.000,3.841,-0.536,1.000,1.000 +77.000,4.682,-1.379,1.000,-1.000 +78.000,-0.958,0.536,1.000,-1.000 +78.000,0.421,2.091,1.000,-0.333 +78.000,1.316,-0.136,1.000,0.333 +78.000,0.225,-0.523,1.000,1.000 +79.000,-0.204,0.806,1.000,-1.000 +79.000,-2.008,-0.315,1.000,-0.333 +79.000,1.538,-1.347,1.000,0.333 +79.000,-0.961,1.169,1.000,1.000 +80.000,-4.958,2.752,1.000,-1.000 +80.000,-2.561,0.954,1.000,0.000 +80.000,2.200,-0.340,1.000,1.000 +81.000,-1.603,1.149,1.000,-1.000 +81.000,0.067,-1.134,1.000,0.000 +81.000,-5.339,1.852,1.000,1.000 +82.000,0.064,-0.669,1.000,-1.000 +82.000,-0.408,0.830,1.000,-0.333 +82.000,0.952,-0.607,1.000,0.333 +82.000,0.756,-0.595,1.000,1.000 +83.000,-0.897,0.779,1.000,-1.000 +84.000,1.081,1.091,1.000,-1.000 +84.000,-2.240,0.564,1.000,1.000 +85.000,-0.373,0.580,1.000,-1.000 +85.000,-2.999,0.732,1.000,1.000 +86.000,2.262,0.370,1.000,-1.000 +86.000,2.417,-0.324,1.000,-0.333 +86.000,-0.584,0.226,1.000,0.333 +86.000,-2.753,0.144,1.000,1.000 +87.000,-2.151,-0.771,1.000,-1.000 +87.000,1.365,-0.817,1.000,1.000 +88.000,-0.418,1.298,1.000,-1.000 +89.000,1.044,-0.866,1.000,-1.000 +89.000,-1.442,0.139,1.000,-0.333 +89.000,-0.619,-1.384,1.000,0.333 +89.000,0.937,-0.319,1.000,1.000 +90.000,-3.983,0.148,1.000,-1.000 +90.000,7.639,-2.599,1.000,1.000 +91.000,2.532,1.333,1.000,-1.000 +91.000,-2.020,0.309,1.000,0.000 +91.000,-3.486,0.981,1.000,1.000 +92.000,0.716,0.092,1.000,-1.000 +93.000,-2.440,1.172,1.000,-1.000 +93.000,-4.540,-0.652,1.000,-0.333 +93.000,2.533,-1.288,1.000,0.333 +93.000,-1.774,0.324,1.000,1.000 +94.000,1.668,0.362,1.000,-1.000 +94.000,1.521,-0.889,1.000,1.000 +95.000,3.082,0.567,1.000,-1.000 +95.000,-2.176,0.335,1.000,0.000 +95.000,-2.038,-0.198,1.000,1.000 +96.000,-2.657,0.554,1.000,-1.000 +96.000,-3.890,-0.045,1.000,-0.333 +96.000,4.751,-0.235,1.000,0.333 +96.000,3.640,-0.990,1.000,1.000 +97.000,-2.000,-0.547,1.000,-1.000 +98.000,-0.631,-0.462,1.000,-1.000 +98.000,4.359,-0.336,1.000,0.000 +98.000,3.145,-0.108,1.000,1.000 +99.000,-1.830,-0.096,1.000,-1.000 +99.000,2.562,-1.160,1.000,1.000 diff --git a/statsmodels/regression/tests/results/lme08.csv b/statsmodels/regression/tests/results/lme08.csv new file mode 100644 index 0000000..a57a888 --- /dev/null +++ b/statsmodels/regression/tests/results/lme08.csv @@ -0,0 +1,250 @@ +groups,endog,exog_fe_0,exog_fe_1,exog_re_0,exog_re_1 +0.000,0.777,0.226,0.119,1.000,-1.000 +0.000,0.668,-0.688,-0.838,1.000,0.000 +0.000,2.434,-1.385,1.237,1.000,1.000 +1.000,1.152,-0.850,-0.049,1.000,-1.000 +2.000,3.207,1.452,3.131,1.000,-1.000 +2.000,1.388,0.260,0.323,1.000,-0.333 +2.000,1.013,0.711,1.289,1.000,0.333 +2.000,-3.679,1.430,-0.903,1.000,1.000 +3.000,-0.189,0.047,-0.098,1.000,-1.000 +4.000,0.153,1.393,0.180,1.000,-1.000 +5.000,-1.770,-0.048,-0.007,1.000,-1.000 +6.000,2.167,-0.553,1.173,1.000,-1.000 +6.000,3.769,-2.310,1.125,1.000,0.000 +6.000,-2.020,-1.554,-1.778,1.000,1.000 +7.000,2.430,-1.318,-0.272,1.000,-1.000 +7.000,2.550,-0.990,-0.057,1.000,-0.333 +7.000,-1.336,0.562,-0.841,1.000,0.333 +7.000,1.148,-0.362,0.754,1.000,1.000 +8.000,-0.086,0.663,0.580,1.000,-1.000 +8.000,0.225,1.486,0.551,1.000,-0.333 +8.000,-0.055,-0.725,-1.064,1.000,0.333 +8.000,-1.782,0.846,-0.331,1.000,1.000 +9.000,1.842,1.388,1.886,1.000,-1.000 +9.000,0.253,0.270,0.412,1.000,0.000 +9.000,-4.538,1.911,-1.148,1.000,1.000 +10.000,-0.904,-1.640,-1.437,1.000,-1.000 +10.000,4.548,-0.077,0.414,1.000,1.000 +11.000,-2.222,0.621,-0.510,1.000,-1.000 +11.000,-0.976,-0.371,-2.946,1.000,0.000 +11.000,0.795,0.816,0.334,1.000,1.000 +12.000,0.755,-0.003,-0.348,1.000,-1.000 +12.000,-1.465,0.673,-0.028,1.000,1.000 +13.000,1.610,0.042,0.418,1.000,-1.000 +13.000,1.234,-0.494,-0.162,1.000,0.000 +13.000,0.308,0.007,0.641,1.000,1.000 +14.000,3.170,-2.004,-1.610,1.000,-1.000 +14.000,-0.009,-1.477,-1.256,1.000,0.000 +14.000,-4.860,-0.024,-1.696,1.000,1.000 +15.000,-3.676,1.193,0.483,1.000,-1.000 +16.000,0.365,-1.327,-0.107,1.000,-1.000 +17.000,-3.458,1.748,-0.377,1.000,-1.000 +17.000,-0.260,-0.309,0.318,1.000,0.000 +17.000,4.843,-1.368,0.689,1.000,1.000 +18.000,-0.685,-0.675,-0.638,1.000,-1.000 +18.000,0.819,-0.076,-0.457,1.000,1.000 +19.000,-1.013,0.951,0.878,1.000,-1.000 +19.000,-2.059,0.513,-1.875,1.000,0.000 +19.000,4.579,-2.350,0.902,1.000,1.000 +20.000,1.013,-0.459,-0.929,1.000,-1.000 +20.000,0.461,-0.715,-0.759,1.000,-0.333 +20.000,1.264,0.741,2.077,1.000,0.333 +20.000,1.118,-0.938,-0.416,1.000,1.000 +21.000,-0.068,0.558,0.659,1.000,-1.000 +22.000,-1.006,-0.069,-0.374,1.000,-1.000 +22.000,-2.207,0.026,-1.502,1.000,0.000 +22.000,-0.184,-0.421,-0.313,1.000,1.000 +23.000,-0.139,0.018,-0.513,1.000,-1.000 +23.000,-0.429,1.063,0.770,1.000,-0.333 +23.000,1.638,-0.786,0.545,1.000,0.333 +23.000,-0.652,0.199,-0.815,1.000,1.000 +24.000,2.237,-0.109,1.190,1.000,-1.000 +24.000,1.669,-0.757,0.023,1.000,-0.333 +24.000,-0.702,-0.575,-0.799,1.000,0.333 +24.000,-1.758,1.497,0.456,1.000,1.000 +25.000,-0.299,0.474,0.233,1.000,-1.000 +25.000,2.150,-1.237,-0.792,1.000,1.000 +26.000,-2.561,0.773,0.580,1.000,-1.000 +26.000,-0.386,-0.748,-0.243,1.000,0.000 +26.000,0.719,-0.322,-1.457,1.000,1.000 +27.000,-1.326,0.310,0.899,1.000,-1.000 +27.000,-1.348,1.477,-1.058,1.000,1.000 +28.000,0.565,-0.660,-0.880,1.000,-1.000 +28.000,1.875,-0.281,1.411,1.000,1.000 +29.000,0.674,-0.345,-0.072,1.000,-1.000 +29.000,0.296,0.704,-0.398,1.000,1.000 +30.000,-1.657,-0.147,-1.624,1.000,-1.000 +30.000,-1.296,1.728,-0.841,1.000,1.000 +31.000,2.404,-0.935,0.365,1.000,-1.000 +32.000,3.640,-1.235,0.758,1.000,-1.000 +32.000,-1.319,-0.602,-0.842,1.000,0.000 +32.000,-4.137,0.629,-1.719,1.000,1.000 +33.000,-1.005,-0.049,0.516,1.000,-1.000 +34.000,0.981,0.249,0.251,1.000,-1.000 +34.000,-0.553,0.170,-0.129,1.000,0.000 +34.000,-1.433,0.681,0.187,1.000,1.000 +35.000,2.676,-1.094,-0.236,1.000,-1.000 +35.000,-1.978,-0.217,0.022,1.000,1.000 +36.000,3.828,-1.790,-0.696,1.000,-1.000 +37.000,2.331,0.523,0.307,1.000,-1.000 +37.000,-0.665,0.215,-1.622,1.000,-0.333 +37.000,1.530,-0.832,-0.077,1.000,0.333 +37.000,-2.696,1.762,-0.177,1.000,1.000 +38.000,1.465,-0.556,-0.131,1.000,-1.000 +39.000,-2.328,-0.586,0.245,1.000,-1.000 +40.000,-0.324,-0.753,-0.472,1.000,-1.000 +40.000,-1.095,0.077,-0.725,1.000,-0.333 +40.000,2.293,0.121,2.041,1.000,0.333 +40.000,2.556,-0.740,0.234,1.000,1.000 +41.000,3.733,-1.012,0.702,1.000,-1.000 +41.000,-2.621,1.252,0.478,1.000,1.000 +42.000,-0.644,0.314,-1.894,1.000,-1.000 +43.000,-0.375,-0.804,0.046,1.000,-1.000 +43.000,-0.573,0.274,0.273,1.000,0.000 +43.000,-0.775,0.147,-1.698,1.000,1.000 +44.000,-4.065,1.787,-2.417,1.000,-1.000 +44.000,-0.267,-0.610,-0.617,1.000,-0.333 +44.000,1.260,-0.502,0.391,1.000,0.333 +44.000,2.442,-1.245,1.636,1.000,1.000 +45.000,1.322,-1.969,-1.464,1.000,-1.000 +45.000,-1.190,1.394,-0.423,1.000,-0.333 +45.000,0.239,-1.044,-0.650,1.000,0.333 +45.000,-1.134,0.879,0.963,1.000,1.000 +46.000,-0.265,-0.028,0.481,1.000,-1.000 +47.000,0.561,0.737,0.982,1.000,-1.000 +47.000,0.541,-1.845,-0.338,1.000,1.000 +48.000,-2.381,-0.946,-0.766,1.000,-1.000 +49.000,1.219,-0.047,-0.360,1.000,-1.000 +49.000,1.759,0.423,1.061,1.000,-0.333 +49.000,-1.157,1.382,-0.110,1.000,0.333 +49.000,-0.287,0.614,0.730,1.000,1.000 +50.000,2.066,-0.725,0.141,1.000,-1.000 +50.000,-0.046,-0.293,0.140,1.000,0.000 +50.000,-5.648,1.295,-0.842,1.000,1.000 +51.000,-2.119,0.949,0.401,1.000,-1.000 +51.000,-2.047,0.495,-1.534,1.000,0.000 +51.000,1.000,0.306,-0.208,1.000,1.000 +52.000,0.546,-0.068,0.817,1.000,-1.000 +52.000,-0.568,-0.328,-1.460,1.000,0.000 +52.000,1.389,1.213,2.062,1.000,1.000 +53.000,-1.587,0.760,0.196,1.000,-1.000 +53.000,-0.414,0.213,-0.582,1.000,0.000 +53.000,-0.162,-1.616,-1.286,1.000,1.000 +54.000,-0.674,-0.180,0.633,1.000,-1.000 +55.000,0.769,-0.491,0.701,1.000,-1.000 +55.000,0.435,-1.170,0.155,1.000,-0.333 +55.000,0.435,-0.840,0.131,1.000,0.333 +55.000,3.391,-2.488,0.839,1.000,1.000 +56.000,-3.295,1.567,-0.718,1.000,-1.000 +56.000,0.936,-0.016,0.317,1.000,0.000 +56.000,0.729,0.511,0.831,1.000,1.000 +57.000,1.456,-0.715,0.560,1.000,-1.000 +58.000,3.161,-0.710,2.370,1.000,-1.000 +58.000,-1.712,0.684,-1.451,1.000,-0.333 +58.000,0.221,0.030,-0.272,1.000,0.333 +58.000,1.115,-0.909,-0.676,1.000,1.000 +59.000,-3.516,-0.161,0.667,1.000,-1.000 +60.000,0.351,1.398,1.520,1.000,-1.000 +60.000,2.944,-1.788,0.592,1.000,0.000 +60.000,-1.036,0.499,-0.863,1.000,1.000 +61.000,2.823,-0.497,-0.091,1.000,-1.000 +61.000,-3.665,0.925,0.013,1.000,1.000 +62.000,1.080,-0.295,-0.765,1.000,-1.000 +62.000,-1.297,0.089,-0.254,1.000,1.000 +63.000,-1.082,-0.038,-0.214,1.000,-1.000 +63.000,0.214,0.390,-0.783,1.000,1.000 +64.000,-0.521,-0.313,0.255,1.000,-1.000 +64.000,0.961,0.771,0.908,1.000,1.000 +65.000,0.548,0.037,1.100,1.000,-1.000 +65.000,0.826,-0.535,-0.593,1.000,1.000 +66.000,-0.571,0.725,-1.141,1.000,-1.000 +67.000,3.956,-1.548,-0.604,1.000,-1.000 +67.000,-1.529,0.787,-0.934,1.000,0.000 +67.000,-1.885,-0.294,0.398,1.000,1.000 +68.000,-4.415,0.634,-1.196,1.000,-1.000 +69.000,2.832,-1.267,1.641,1.000,-1.000 +69.000,0.848,-2.451,-0.047,1.000,1.000 +70.000,-1.568,1.277,0.961,1.000,-1.000 +70.000,-2.134,0.959,-0.906,1.000,0.000 +70.000,-1.001,0.182,-0.631,1.000,1.000 +71.000,0.197,1.375,-0.401,1.000,-1.000 +71.000,2.064,-1.783,-0.350,1.000,0.000 +71.000,-4.835,1.192,-1.899,1.000,1.000 +72.000,1.303,-0.191,0.643,1.000,-1.000 +72.000,1.145,-1.871,-0.281,1.000,1.000 +73.000,-0.692,0.053,0.355,1.000,-1.000 +73.000,1.527,-0.643,1.653,1.000,-0.333 +73.000,-1.585,0.284,-1.778,1.000,0.333 +73.000,-0.194,0.198,-0.268,1.000,1.000 +74.000,-1.039,0.047,0.059,1.000,-1.000 +74.000,-1.135,-0.689,-1.215,1.000,-0.333 +74.000,1.397,-1.436,0.648,1.000,0.333 +74.000,-1.895,0.103,-1.226,1.000,1.000 +75.000,4.360,-1.501,0.123,1.000,-1.000 +76.000,1.308,-0.589,0.268,1.000,-1.000 +76.000,-2.585,1.096,-2.087,1.000,-0.333 +76.000,-3.738,1.762,-1.628,1.000,0.333 +76.000,-0.363,-0.145,0.052,1.000,1.000 +77.000,0.999,0.205,-0.245,1.000,-1.000 +77.000,-1.424,0.759,-0.140,1.000,0.000 +77.000,-1.036,-0.742,0.902,1.000,1.000 +78.000,-1.922,0.836,-1.060,1.000,-1.000 +78.000,-1.852,0.834,-0.184,1.000,0.000 +78.000,-2.804,1.870,0.398,1.000,1.000 +79.000,-1.254,0.900,0.128,1.000,-1.000 +80.000,-3.114,0.138,-1.421,1.000,-1.000 +80.000,-0.633,0.981,-1.037,1.000,1.000 +81.000,-1.116,-0.426,-0.713,1.000,-1.000 +81.000,-3.234,0.612,-1.047,1.000,-0.333 +81.000,-0.372,1.356,0.659,1.000,0.333 +81.000,1.750,0.338,0.767,1.000,1.000 +82.000,1.079,-0.358,-1.130,1.000,-1.000 +83.000,-2.740,0.843,-0.062,1.000,-1.000 +83.000,-2.059,0.985,0.519,1.000,-0.333 +83.000,-2.009,1.896,-0.038,1.000,0.333 +83.000,2.271,-1.126,0.595,1.000,1.000 +84.000,0.645,-0.111,-0.324,1.000,-1.000 +84.000,-1.093,-0.261,0.184,1.000,1.000 +85.000,-2.388,0.675,0.121,1.000,-1.000 +86.000,2.037,-1.390,-0.047,1.000,-1.000 +86.000,-1.112,0.340,0.267,1.000,-0.333 +86.000,-0.640,-0.671,-1.501,1.000,0.333 +86.000,-0.710,0.089,0.564,1.000,1.000 +87.000,4.875,-0.006,1.584,1.000,-1.000 +87.000,2.877,-1.120,1.338,1.000,-0.333 +87.000,-4.253,1.106,-1.501,1.000,0.333 +87.000,-1.612,-1.484,0.503,1.000,1.000 +88.000,0.037,0.624,-1.329,1.000,-1.000 +88.000,-1.847,1.211,0.565,1.000,0.000 +88.000,-1.433,-0.564,-0.442,1.000,1.000 +89.000,1.371,0.266,0.302,1.000,-1.000 +89.000,1.057,-0.778,-0.232,1.000,-0.333 +89.000,0.058,0.407,0.992,1.000,0.333 +89.000,-2.733,0.699,0.176,1.000,1.000 +90.000,-0.106,0.335,0.355,1.000,-1.000 +90.000,3.085,-0.260,1.234,1.000,-0.333 +90.000,1.217,0.425,-0.430,1.000,0.333 +90.000,3.758,-1.899,0.672,1.000,1.000 +91.000,-2.442,0.974,0.091,1.000,-1.000 +91.000,0.487,1.382,-0.366,1.000,1.000 +92.000,-1.665,-0.015,-0.546,1.000,-1.000 +92.000,1.376,-0.439,0.036,1.000,1.000 +93.000,-2.704,1.840,1.280,1.000,-1.000 +93.000,-0.712,-0.999,-0.543,1.000,-0.333 +93.000,1.324,-0.624,-0.340,1.000,0.333 +93.000,1.073,1.407,-0.710,1.000,1.000 +94.000,0.287,1.054,-0.920,1.000,-1.000 +94.000,2.204,-0.435,0.461,1.000,-0.333 +94.000,-1.302,0.691,-0.365,1.000,0.333 +94.000,-1.553,-1.078,0.189,1.000,1.000 +95.000,1.743,-1.625,0.173,1.000,-1.000 +96.000,-2.172,-0.853,-0.690,1.000,-1.000 +96.000,2.790,0.787,0.962,1.000,1.000 +97.000,-1.167,-1.824,-1.792,1.000,-1.000 +97.000,0.689,-0.244,-0.668,1.000,0.000 +97.000,3.417,-0.370,0.476,1.000,1.000 +98.000,3.504,-0.889,-0.964,1.000,-1.000 +98.000,-2.580,0.520,-2.166,1.000,0.000 +98.000,-4.143,1.268,0.899,1.000,1.000 +99.000,-2.621,-0.222,1.006,1.000,-1.000 diff --git a/statsmodels/regression/tests/results/lme09.csv b/statsmodels/regression/tests/results/lme09.csv new file mode 100644 index 0000000..0fb53f2 --- /dev/null +++ b/statsmodels/regression/tests/results/lme09.csv @@ -0,0 +1,256 @@ +groups,endog,exog_fe_0,exog_fe_1,exog_re_0,exog_re_1 +0.000,-2.085,0.228,-1.832,1.000,-1.000 +0.000,-1.116,0.941,-0.458,1.000,1.000 +1.000,-1.645,-0.936,-0.938,1.000,-1.000 +2.000,-1.119,-0.127,-0.060,1.000,-1.000 +2.000,2.484,-2.143,0.554,1.000,0.000 +2.000,0.126,-1.350,-0.140,1.000,1.000 +3.000,1.042,0.175,0.297,1.000,-1.000 +3.000,1.083,0.791,0.245,1.000,0.000 +3.000,0.504,-0.248,-0.571,1.000,1.000 +4.000,-1.346,0.744,-1.149,1.000,-1.000 +4.000,1.897,0.628,0.369,1.000,0.000 +4.000,-6.123,1.349,-0.511,1.000,1.000 +5.000,1.611,-0.640,0.859,1.000,-1.000 +5.000,-2.997,-0.746,-1.967,1.000,-0.333 +5.000,-0.630,-0.893,0.653,1.000,0.333 +5.000,-3.008,0.421,-0.126,1.000,1.000 +6.000,-1.819,1.188,-0.047,1.000,-1.000 +6.000,-4.641,0.013,-1.462,1.000,1.000 +7.000,-4.147,0.181,-2.647,1.000,-1.000 +7.000,-1.496,0.738,1.765,1.000,0.000 +7.000,-3.076,0.892,0.955,1.000,1.000 +8.000,0.832,0.111,0.253,1.000,-1.000 +8.000,-2.237,-1.027,0.580,1.000,-0.333 +8.000,-0.076,1.122,1.014,1.000,0.333 +8.000,2.908,-1.441,-0.184,1.000,1.000 +9.000,-1.044,-0.402,0.027,1.000,-1.000 +10.000,-2.172,-1.824,-0.492,1.000,-1.000 +10.000,-1.402,0.779,-0.255,1.000,0.000 +10.000,0.300,-0.044,-0.252,1.000,1.000 +11.000,1.044,0.658,-0.373,1.000,-1.000 +11.000,0.900,1.364,1.610,1.000,0.000 +11.000,-3.934,0.299,0.384,1.000,1.000 +12.000,3.039,-0.488,0.789,1.000,-1.000 +13.000,0.273,-0.072,0.517,1.000,-1.000 +13.000,-3.914,1.097,-0.545,1.000,-0.333 +13.000,-1.637,1.255,0.513,1.000,0.333 +13.000,0.190,0.878,0.098,1.000,1.000 +14.000,-1.285,0.563,-1.512,1.000,-1.000 +14.000,-1.042,2.409,0.497,1.000,1.000 +15.000,-4.393,-0.510,0.588,1.000,-1.000 +16.000,-4.411,0.211,-1.125,1.000,-1.000 +17.000,-2.712,-0.666,0.420,1.000,-1.000 +17.000,-1.146,1.273,-1.453,1.000,-0.333 +17.000,-1.766,1.280,-0.561,1.000,0.333 +17.000,0.673,0.180,0.789,1.000,1.000 +18.000,-1.640,0.215,-0.735,1.000,-1.000 +18.000,1.698,-0.668,0.147,1.000,-0.333 +18.000,0.737,0.397,-0.374,1.000,0.333 +18.000,1.432,0.864,-0.265,1.000,1.000 +19.000,1.689,0.749,0.565,1.000,-1.000 +19.000,-1.319,1.768,0.428,1.000,0.000 +19.000,3.550,-1.206,0.302,1.000,1.000 +20.000,0.311,-1.024,-1.333,1.000,-1.000 +20.000,0.039,1.130,0.699,1.000,1.000 +21.000,-6.414,0.690,0.350,1.000,-1.000 +22.000,-4.733,1.008,0.149,1.000,-1.000 +23.000,-4.620,0.147,-0.696,1.000,-1.000 +23.000,-0.992,1.110,0.724,1.000,-0.333 +23.000,5.161,-0.262,0.184,1.000,0.333 +23.000,-1.167,0.826,-0.933,1.000,1.000 +24.000,3.101,-0.083,0.058,1.000,-1.000 +24.000,1.268,0.138,0.109,1.000,0.000 +24.000,0.046,-0.216,0.344,1.000,1.000 +25.000,2.545,-0.762,-0.159,1.000,-1.000 +25.000,5.586,-1.554,0.578,1.000,-0.333 +25.000,0.866,-0.049,-1.229,1.000,0.333 +25.000,-5.402,1.010,-1.210,1.000,1.000 +26.000,0.789,-0.247,-0.092,1.000,-1.000 +26.000,-2.489,0.730,1.094,1.000,-0.333 +26.000,-2.848,1.083,0.904,1.000,0.333 +26.000,-3.965,0.155,-0.002,1.000,1.000 +27.000,0.951,1.710,-0.016,1.000,-1.000 +28.000,2.419,1.041,0.684,1.000,-1.000 +28.000,0.814,1.159,0.116,1.000,0.000 +28.000,-1.083,1.756,0.243,1.000,1.000 +29.000,-1.225,-0.006,1.841,1.000,-1.000 +29.000,3.304,-0.716,0.323,1.000,-0.333 +29.000,2.128,0.845,-0.601,1.000,0.333 +29.000,1.582,-1.193,-0.335,1.000,1.000 +30.000,1.166,-0.356,-2.466,1.000,-1.000 +30.000,0.920,1.091,-0.277,1.000,0.000 +30.000,-2.743,1.245,0.735,1.000,1.000 +31.000,-1.347,-1.103,-0.815,1.000,-1.000 +31.000,-1.804,0.537,-0.896,1.000,-0.333 +31.000,5.866,-1.305,0.677,1.000,0.333 +31.000,0.236,0.409,-2.439,1.000,1.000 +32.000,2.302,-0.956,-0.652,1.000,-1.000 +33.000,-2.895,0.945,-0.144,1.000,-1.000 +33.000,-1.749,0.035,-1.685,1.000,-0.333 +33.000,-1.569,0.471,0.458,1.000,0.333 +33.000,-2.095,0.256,-0.611,1.000,1.000 +34.000,-1.804,-1.133,-0.392,1.000,-1.000 +34.000,1.383,-0.868,-0.618,1.000,0.000 +34.000,2.100,-0.397,-1.069,1.000,1.000 +35.000,0.138,0.508,0.639,1.000,-1.000 +35.000,2.027,-0.645,0.560,1.000,1.000 +36.000,1.438,0.052,-0.972,1.000,-1.000 +36.000,0.555,1.058,-0.692,1.000,0.000 +36.000,-0.470,0.725,0.821,1.000,1.000 +37.000,-0.723,-1.043,-0.418,1.000,-1.000 +37.000,-2.431,-0.086,-0.438,1.000,-0.333 +37.000,-0.080,0.447,2.246,1.000,0.333 +37.000,2.503,0.281,0.981,1.000,1.000 +38.000,0.046,0.182,0.654,1.000,-1.000 +38.000,-4.148,-1.650,-1.494,1.000,1.000 +39.000,-4.086,-0.095,0.112,1.000,-1.000 +40.000,1.831,0.086,-0.476,1.000,-1.000 +40.000,-4.074,-0.377,0.067,1.000,-0.333 +40.000,-1.041,-1.019,1.312,1.000,0.333 +40.000,-4.760,0.018,-1.448,1.000,1.000 +41.000,-4.710,-0.830,0.584,1.000,-1.000 +41.000,3.565,-0.808,1.178,1.000,-0.333 +41.000,-1.499,-0.132,0.371,1.000,0.333 +41.000,-1.031,2.259,-0.122,1.000,1.000 +42.000,-1.176,1.290,0.022,1.000,-1.000 +42.000,-0.280,-0.241,-1.119,1.000,0.000 +42.000,-1.686,0.610,-0.580,1.000,1.000 +43.000,7.159,-0.731,1.121,1.000,-1.000 +44.000,3.253,-3.057,-0.735,1.000,-1.000 +45.000,-3.578,0.873,0.643,1.000,-1.000 +45.000,-1.354,1.329,0.220,1.000,0.000 +45.000,-0.492,1.340,1.013,1.000,1.000 +46.000,-0.360,-0.772,0.453,1.000,-1.000 +47.000,-1.990,0.578,0.376,1.000,-1.000 +47.000,-3.048,-0.287,-1.613,1.000,0.000 +47.000,2.491,-0.037,-1.069,1.000,1.000 +48.000,-0.075,-1.003,-0.540,1.000,-1.000 +48.000,-0.447,-0.423,-1.788,1.000,-0.333 +48.000,6.918,-0.548,-0.108,1.000,0.333 +48.000,3.689,0.217,0.169,1.000,1.000 +49.000,-3.406,-0.282,0.428,1.000,-1.000 +50.000,-0.885,-1.051,-0.510,1.000,-1.000 +50.000,-2.335,-0.872,0.066,1.000,-0.333 +50.000,0.847,0.697,-0.499,1.000,0.333 +50.000,-0.794,1.597,0.395,1.000,1.000 +51.000,2.972,-0.353,1.232,1.000,-1.000 +51.000,-2.988,-0.403,0.571,1.000,0.000 +51.000,0.256,-0.581,-0.212,1.000,1.000 +52.000,0.633,0.157,1.377,1.000,-1.000 +52.000,1.770,1.083,0.275,1.000,1.000 +53.000,3.177,-0.796,-0.110,1.000,-1.000 +53.000,2.932,-1.287,1.705,1.000,1.000 +54.000,1.668,-0.630,1.127,1.000,-1.000 +55.000,-1.316,1.263,0.383,1.000,-1.000 +55.000,-2.160,1.880,0.699,1.000,0.000 +55.000,3.768,-0.331,0.165,1.000,1.000 +56.000,5.141,-0.522,-0.198,1.000,-1.000 +57.000,-1.861,-1.380,0.579,1.000,-1.000 +58.000,-5.378,0.861,-0.098,1.000,-1.000 +58.000,6.331,-0.853,1.294,1.000,1.000 +59.000,5.145,0.437,-1.283,1.000,-1.000 +59.000,2.510,1.117,1.244,1.000,-0.333 +59.000,-0.592,1.150,0.125,1.000,0.333 +59.000,-4.273,-0.544,-0.623,1.000,1.000 +60.000,0.766,-1.469,0.978,1.000,-1.000 +60.000,-1.810,-0.987,0.384,1.000,-0.333 +60.000,-2.725,-1.098,0.201,1.000,0.333 +60.000,3.021,-1.883,0.306,1.000,1.000 +61.000,0.013,-0.613,-0.951,1.000,-1.000 +61.000,1.895,-0.066,-0.648,1.000,-0.333 +61.000,-2.436,-1.249,-0.059,1.000,0.333 +61.000,-5.704,0.754,-1.450,1.000,1.000 +62.000,-3.438,1.542,-0.362,1.000,-1.000 +62.000,-4.995,2.133,-0.238,1.000,-0.333 +62.000,-1.742,-0.542,-1.255,1.000,0.333 +62.000,-0.316,1.215,2.195,1.000,1.000 +63.000,-0.159,1.085,0.506,1.000,-1.000 +63.000,-0.178,-0.688,-0.158,1.000,1.000 +64.000,-3.181,0.277,1.330,1.000,-1.000 +64.000,-2.002,1.442,-0.215,1.000,-0.333 +64.000,3.923,-2.266,-0.234,1.000,0.333 +64.000,5.129,-0.474,0.422,1.000,1.000 +65.000,-0.791,-0.695,-0.250,1.000,-1.000 +65.000,-2.527,1.213,-0.692,1.000,0.000 +65.000,5.013,-0.751,0.957,1.000,1.000 +66.000,-1.681,0.105,0.942,1.000,-1.000 +67.000,1.053,0.786,0.399,1.000,-1.000 +68.000,1.723,-0.449,0.874,1.000,-1.000 +68.000,3.170,-0.392,0.235,1.000,1.000 +69.000,0.154,-0.954,1.238,1.000,-1.000 +69.000,-0.882,-1.379,-2.171,1.000,-0.333 +69.000,2.014,0.110,-1.090,1.000,0.333 +69.000,4.333,0.842,0.877,1.000,1.000 +70.000,-1.528,-1.003,-0.203,1.000,-1.000 +71.000,-3.955,1.279,-0.535,1.000,-1.000 +71.000,-0.993,1.013,-0.352,1.000,-0.333 +71.000,-5.209,0.599,-1.591,1.000,0.333 +71.000,-4.534,0.733,-0.621,1.000,1.000 +72.000,-0.685,0.041,1.258,1.000,-1.000 +72.000,-2.293,1.046,-1.613,1.000,-0.333 +72.000,-1.837,0.305,0.155,1.000,0.333 +72.000,4.543,-1.172,-0.168,1.000,1.000 +73.000,-1.257,1.217,-1.605,1.000,-1.000 +73.000,0.337,-1.545,-1.095,1.000,-0.333 +73.000,-0.091,-0.430,-0.533,1.000,0.333 +73.000,0.984,0.206,-0.120,1.000,1.000 +74.000,-1.249,-0.438,0.109,1.000,-1.000 +74.000,1.641,0.133,0.427,1.000,0.000 +74.000,1.201,0.337,0.088,1.000,1.000 +75.000,1.835,-1.487,-0.363,1.000,-1.000 +76.000,-5.794,1.334,-1.960,1.000,-1.000 +77.000,-2.859,0.592,0.392,1.000,-1.000 +78.000,5.421,-0.852,0.612,1.000,-1.000 +79.000,0.800,-0.634,-2.157,1.000,-1.000 +79.000,2.294,-0.276,1.507,1.000,1.000 +80.000,-1.715,-1.276,0.454,1.000,-1.000 +80.000,5.957,-1.542,-0.815,1.000,1.000 +81.000,-0.010,-0.490,0.048,1.000,-1.000 +82.000,6.529,-1.195,0.504,1.000,-1.000 +82.000,3.762,-0.525,-0.403,1.000,-0.333 +82.000,-2.497,0.144,-1.162,1.000,0.333 +82.000,-3.690,-0.250,0.535,1.000,1.000 +83.000,-0.716,0.171,0.794,1.000,-1.000 +83.000,-5.500,0.621,-0.630,1.000,1.000 +84.000,1.268,-0.508,0.639,1.000,-1.000 +84.000,-3.380,1.097,-1.018,1.000,0.000 +84.000,0.964,-0.555,0.798,1.000,1.000 +85.000,-5.261,-0.448,-1.082,1.000,-1.000 +85.000,-0.068,-2.613,1.286,1.000,-0.333 +85.000,-2.485,1.029,-0.059,1.000,0.333 +85.000,7.246,-0.795,1.996,1.000,1.000 +86.000,-0.555,-0.038,1.374,1.000,-1.000 +86.000,-1.793,0.525,1.401,1.000,0.000 +86.000,-1.671,-1.841,-0.392,1.000,1.000 +87.000,2.710,-0.850,1.376,1.000,-1.000 +87.000,-2.133,1.080,0.308,1.000,0.000 +87.000,-3.974,1.127,-1.135,1.000,1.000 +88.000,-0.002,-0.172,-1.607,1.000,-1.000 +88.000,2.513,-0.700,-1.529,1.000,1.000 +89.000,-7.392,0.282,-1.173,1.000,-1.000 +89.000,-1.254,-0.347,-0.887,1.000,-0.333 +89.000,8.474,-1.648,0.656,1.000,0.333 +89.000,2.076,-0.917,1.022,1.000,1.000 +90.000,-3.688,-0.577,0.978,1.000,-1.000 +90.000,-4.005,0.754,-0.411,1.000,-0.333 +90.000,6.685,-2.911,-0.078,1.000,0.333 +90.000,-1.652,0.515,-0.399,1.000,1.000 +91.000,4.605,-1.010,-0.201,1.000,-1.000 +91.000,-5.878,0.651,-0.420,1.000,1.000 +92.000,0.379,-0.101,0.513,1.000,-1.000 +92.000,1.048,-0.199,-0.120,1.000,0.000 +92.000,3.812,-3.030,1.086,1.000,1.000 +93.000,2.599,-0.495,-0.307,1.000,-1.000 +93.000,0.005,-0.427,-0.930,1.000,1.000 +94.000,-0.019,-0.856,-0.363,1.000,-1.000 +95.000,-1.560,1.582,-0.837,1.000,-1.000 +96.000,3.890,-0.714,1.273,1.000,-1.000 +96.000,4.331,-0.662,1.354,1.000,0.000 +96.000,3.550,-1.569,-0.513,1.000,1.000 +97.000,-2.861,0.565,-1.070,1.000,-1.000 +97.000,-3.033,0.231,-1.450,1.000,0.000 +97.000,-2.956,0.626,-0.080,1.000,1.000 +98.000,0.322,-0.249,0.259,1.000,-1.000 +99.000,-0.639,0.353,-0.579,1.000,-1.000 +99.000,-4.105,2.023,1.410,1.000,1.000 diff --git a/statsmodels/regression/tests/results/lme10.csv b/statsmodels/regression/tests/results/lme10.csv new file mode 100644 index 0000000..835233e --- /dev/null +++ b/statsmodels/regression/tests/results/lme10.csv @@ -0,0 +1,263 @@ +groups,endog,exog_fe_0,exog_fe_1,exog_fe_2,exog_re_0,exog_re_1 +0.000,0.319,-0.037,-0.605,-0.536,1.000,-1.000 +1.000,-2.941,-0.493,-0.168,-1.811,1.000,-1.000 +2.000,1.464,-0.143,0.709,0.875,1.000,-1.000 +2.000,-0.388,-0.298,-1.046,0.369,1.000,1.000 +3.000,-1.022,-0.134,1.082,-1.032,1.000,-1.000 +4.000,1.412,0.196,-0.372,-0.994,1.000,-1.000 +4.000,-0.452,0.226,1.298,0.015,1.000,1.000 +5.000,0.126,1.137,-1.357,0.187,1.000,-1.000 +6.000,-3.958,0.862,0.697,-2.560,1.000,-1.000 +6.000,1.179,-1.141,-0.020,-0.730,1.000,-0.333 +6.000,0.176,0.260,0.690,0.008,1.000,0.333 +6.000,0.180,1.283,-0.194,0.414,1.000,1.000 +7.000,2.058,-1.164,-1.070,0.812,1.000,-1.000 +7.000,2.112,-0.720,-0.494,0.120,1.000,0.000 +7.000,4.048,-0.623,0.550,1.690,1.000,1.000 +8.000,-1.887,2.263,-1.113,0.024,1.000,-1.000 +8.000,-0.589,0.585,-0.274,-0.244,1.000,-0.333 +8.000,1.404,-2.514,0.571,0.145,1.000,0.333 +8.000,-2.759,0.720,0.438,-0.595,1.000,1.000 +9.000,-3.863,0.785,0.836,-1.046,1.000,-1.000 +9.000,-0.948,1.014,-0.476,0.377,1.000,0.000 +9.000,-1.097,-0.106,-1.912,-1.261,1.000,1.000 +10.000,-1.917,1.115,0.508,0.662,1.000,-1.000 +10.000,-0.053,0.623,-0.601,0.124,1.000,0.000 +10.000,2.356,-0.477,-0.414,0.666,1.000,1.000 +11.000,-1.989,1.655,1.269,-0.388,1.000,-1.000 +12.000,-1.353,-0.239,0.557,-0.986,1.000,-1.000 +13.000,-0.035,0.088,0.376,1.148,1.000,-1.000 +13.000,-0.228,-0.570,1.336,0.055,1.000,0.000 +13.000,-0.332,-1.526,-0.109,-0.384,1.000,1.000 +14.000,4.348,-0.474,-0.217,0.497,1.000,-1.000 +15.000,-3.031,0.410,-0.390,-0.645,1.000,-1.000 +16.000,-0.998,0.914,-0.023,-0.725,1.000,-1.000 +17.000,0.500,0.756,-0.064,0.326,1.000,-1.000 +17.000,1.878,-1.768,-2.322,1.402,1.000,0.000 +17.000,-3.291,0.857,-0.498,-0.612,1.000,1.000 +18.000,-1.322,0.277,-0.572,1.599,1.000,-1.000 +18.000,-0.986,-0.001,-1.085,-0.057,1.000,-0.333 +18.000,1.572,0.883,-0.793,0.913,1.000,0.333 +18.000,2.776,-1.412,-0.555,-0.026,1.000,1.000 +19.000,-2.480,-0.224,1.797,0.289,1.000,-1.000 +19.000,1.518,-1.805,-0.323,0.646,1.000,-0.333 +19.000,1.935,0.642,2.617,0.334,1.000,0.333 +19.000,4.711,-0.052,0.199,0.273,1.000,1.000 +20.000,-1.025,-0.341,1.553,-0.716,1.000,-1.000 +20.000,-1.344,0.436,1.855,-0.174,1.000,-0.333 +20.000,-0.923,0.834,-0.350,0.323,1.000,0.333 +20.000,-4.071,2.511,-0.182,-1.893,1.000,1.000 +21.000,-0.171,0.212,-0.355,0.715,1.000,-1.000 +21.000,-3.133,1.264,-0.121,-1.515,1.000,-0.333 +21.000,-0.442,0.957,-1.053,0.005,1.000,0.333 +21.000,0.975,-0.203,1.813,0.299,1.000,1.000 +22.000,2.209,-0.980,-0.894,0.364,1.000,-1.000 +22.000,-0.090,-1.263,0.780,-0.566,1.000,1.000 +23.000,2.145,-1.050,0.161,-0.666,1.000,-1.000 +23.000,1.132,0.157,-0.130,-0.160,1.000,-0.333 +23.000,2.123,-1.065,-1.130,0.038,1.000,0.333 +23.000,-1.634,1.124,-0.677,0.142,1.000,1.000 +24.000,0.528,-0.364,1.980,0.545,1.000,-1.000 +24.000,1.043,-1.075,-0.453,0.329,1.000,1.000 +25.000,1.607,-0.169,0.786,0.249,1.000,-1.000 +25.000,-1.833,1.484,-0.503,-0.729,1.000,-0.333 +25.000,0.730,0.999,0.467,1.691,1.000,0.333 +25.000,-1.519,0.723,-0.789,0.093,1.000,1.000 +26.000,1.306,-0.483,0.453,0.905,1.000,-1.000 +27.000,2.710,-1.434,1.515,1.986,1.000,-1.000 +27.000,1.141,0.101,-1.026,1.119,1.000,-0.333 +27.000,1.553,0.086,0.041,2.085,1.000,0.333 +27.000,0.142,-0.584,0.886,-1.304,1.000,1.000 +28.000,-1.188,-0.071,-0.142,-0.541,1.000,-1.000 +28.000,-1.324,1.895,0.175,0.420,1.000,-0.333 +28.000,0.650,0.031,1.128,-0.275,1.000,0.333 +28.000,2.368,-1.376,0.308,0.574,1.000,1.000 +29.000,3.689,-1.154,-1.470,0.279,1.000,-1.000 +29.000,0.097,0.633,1.167,-0.111,1.000,0.000 +29.000,-3.288,0.033,-0.538,-1.688,1.000,1.000 +30.000,-1.774,-0.343,-0.109,-0.395,1.000,-1.000 +30.000,-0.084,1.534,-0.393,0.893,1.000,-0.333 +30.000,3.371,-0.654,-1.770,1.473,1.000,0.333 +30.000,6.862,-2.692,0.774,1.353,1.000,1.000 +31.000,4.103,-0.599,0.157,0.553,1.000,-1.000 +31.000,-1.445,0.718,1.405,-0.901,1.000,0.000 +31.000,-4.635,1.947,-0.449,-0.024,1.000,1.000 +32.000,1.943,-0.836,-0.889,0.340,1.000,-1.000 +32.000,1.293,-1.465,-0.616,0.334,1.000,1.000 +33.000,-1.530,0.256,-0.641,-1.295,1.000,-1.000 +33.000,-0.549,1.042,0.994,0.051,1.000,0.000 +33.000,1.687,-1.813,-0.478,-0.112,1.000,1.000 +34.000,4.090,-1.334,-0.336,1.113,1.000,-1.000 +34.000,-1.907,0.921,-0.150,0.232,1.000,1.000 +35.000,-4.098,0.711,0.285,-0.423,1.000,-1.000 +36.000,-1.518,-0.084,-1.271,1.934,1.000,-1.000 +36.000,-0.699,-0.898,0.338,-0.267,1.000,-0.333 +36.000,-0.268,-0.013,1.047,-0.112,1.000,0.333 +36.000,2.567,-0.755,-1.418,-0.280,1.000,1.000 +37.000,4.049,-0.567,0.048,1.000,1.000,-1.000 +37.000,-0.633,0.090,-0.763,-0.365,1.000,-0.333 +37.000,0.830,0.448,-0.670,0.774,1.000,0.333 +37.000,-2.088,-0.336,0.900,-0.910,1.000,1.000 +38.000,-1.796,0.319,1.656,-0.552,1.000,-1.000 +38.000,-0.317,-0.331,1.107,-1.586,1.000,1.000 +39.000,-0.653,-2.073,-0.193,-0.767,1.000,-1.000 +39.000,-0.217,1.389,0.689,0.300,1.000,1.000 +40.000,-5.310,0.228,1.863,-2.937,1.000,-1.000 +40.000,3.629,-0.027,-1.059,1.095,1.000,1.000 +41.000,0.343,-1.384,-0.473,0.069,1.000,-1.000 +41.000,-0.855,-0.636,-0.191,-0.865,1.000,-0.333 +41.000,-0.673,1.751,-0.887,1.431,1.000,0.333 +41.000,2.334,-0.650,1.114,1.762,1.000,1.000 +42.000,-2.809,-0.337,0.953,-2.191,1.000,-1.000 +42.000,-2.426,1.050,-0.328,-0.039,1.000,1.000 +43.000,1.206,0.427,-0.353,-0.612,1.000,-1.000 +43.000,1.973,-1.877,-1.543,0.819,1.000,0.000 +43.000,-2.834,1.947,1.153,0.889,1.000,1.000 +44.000,-0.234,-0.469,-1.149,0.545,1.000,-1.000 +44.000,-0.744,0.229,-2.714,0.011,1.000,1.000 +45.000,0.340,0.908,1.138,0.414,1.000,-1.000 +45.000,1.964,-0.246,0.799,1.800,1.000,-0.333 +45.000,-2.566,1.203,-1.020,-0.372,1.000,0.333 +45.000,1.013,-1.560,-0.994,0.593,1.000,1.000 +46.000,-0.072,-1.270,0.069,-0.927,1.000,-1.000 +46.000,0.498,1.093,-0.960,0.752,1.000,-0.333 +46.000,1.825,-0.964,0.386,-0.224,1.000,0.333 +46.000,0.057,1.381,-0.159,0.523,1.000,1.000 +47.000,4.173,-1.195,-0.443,-0.126,1.000,-1.000 +47.000,-1.454,0.732,-0.153,0.814,1.000,0.000 +47.000,-6.187,-0.262,-2.829,-1.990,1.000,1.000 +48.000,-1.049,-1.103,-0.598,-0.026,1.000,-1.000 +48.000,0.399,-1.269,-0.835,-0.636,1.000,-0.333 +48.000,3.806,-0.736,-1.853,1.574,1.000,0.333 +48.000,1.371,0.394,0.448,-1.491,1.000,1.000 +49.000,-2.212,0.328,0.957,-1.600,1.000,-1.000 +49.000,2.071,-0.391,-0.736,2.325,1.000,-0.333 +49.000,-2.752,0.355,-0.639,-1.165,1.000,0.333 +49.000,-1.401,0.412,-0.734,0.345,1.000,1.000 +50.000,0.132,0.075,1.158,1.375,1.000,-1.000 +50.000,-0.654,0.143,-0.686,-0.065,1.000,0.000 +50.000,0.606,0.613,-0.021,0.121,1.000,1.000 +51.000,-0.718,-0.520,-0.174,0.578,1.000,-1.000 +51.000,1.733,-0.499,-1.749,0.273,1.000,0.000 +51.000,0.832,0.360,0.893,-1.092,1.000,1.000 +52.000,0.880,-0.085,-0.910,1.032,1.000,-1.000 +52.000,0.309,1.234,-0.523,0.845,1.000,-0.333 +52.000,-1.535,0.189,1.946,-0.695,1.000,0.333 +52.000,0.068,-0.924,1.051,-1.413,1.000,1.000 +53.000,-1.071,0.122,0.520,0.202,1.000,-1.000 +53.000,0.499,-2.118,0.787,-0.756,1.000,-0.333 +53.000,-2.426,0.832,0.994,-1.503,1.000,0.333 +53.000,2.484,0.188,-0.337,1.421,1.000,1.000 +54.000,-1.087,-0.289,-0.158,-0.367,1.000,-1.000 +54.000,1.147,-0.674,-0.189,0.101,1.000,0.000 +54.000,0.676,0.259,2.025,-0.262,1.000,1.000 +55.000,0.283,-0.476,1.719,0.118,1.000,-1.000 +56.000,-0.817,-0.581,1.398,-0.499,1.000,-1.000 +57.000,-1.057,-1.161,-1.713,0.078,1.000,-1.000 +58.000,2.361,0.235,-0.405,0.915,1.000,-1.000 +58.000,-1.557,-0.386,0.349,-0.228,1.000,1.000 +59.000,-3.339,2.218,1.229,-0.462,1.000,-1.000 +59.000,-1.475,0.621,0.436,-1.184,1.000,0.000 +59.000,-2.963,0.885,0.484,-2.053,1.000,1.000 +60.000,-0.208,-0.034,-0.062,-0.369,1.000,-1.000 +60.000,1.600,0.364,-1.439,0.847,1.000,0.000 +60.000,1.118,-0.428,-0.469,-0.211,1.000,1.000 +61.000,-0.057,-0.737,0.906,0.414,1.000,-1.000 +61.000,0.154,-0.328,1.472,0.524,1.000,-0.333 +61.000,-1.967,-0.091,-0.974,-0.885,1.000,0.333 +61.000,-0.017,-0.342,-1.082,0.321,1.000,1.000 +62.000,1.672,-0.877,-1.504,-0.725,1.000,-1.000 +62.000,-1.811,0.749,-0.916,-0.665,1.000,1.000 +63.000,-1.721,0.532,-0.414,0.392,1.000,-1.000 +63.000,-1.209,1.515,-0.379,-0.004,1.000,-0.333 +63.000,0.038,0.989,0.506,-0.104,1.000,0.333 +63.000,4.300,-1.174,0.123,1.097,1.000,1.000 +64.000,-1.220,-0.232,0.363,-0.414,1.000,-1.000 +64.000,-3.080,1.442,0.297,-0.073,1.000,-0.333 +64.000,0.927,-0.169,-1.681,0.737,1.000,0.333 +64.000,3.535,0.376,-0.172,1.795,1.000,1.000 +65.000,-3.335,2.077,-0.098,-1.676,1.000,-1.000 +65.000,-2.937,2.637,1.140,-0.167,1.000,0.000 +65.000,0.585,-0.245,-0.718,0.754,1.000,1.000 +66.000,-0.435,-0.508,0.074,-0.372,1.000,-1.000 +66.000,1.806,0.215,1.367,0.102,1.000,1.000 +67.000,-3.943,0.331,-1.058,-0.594,1.000,-1.000 +67.000,2.294,-0.212,-0.142,-0.693,1.000,1.000 +68.000,1.636,-0.871,-0.152,-0.842,1.000,-1.000 +68.000,-2.776,0.951,-0.638,-0.216,1.000,1.000 +69.000,2.807,-0.660,0.589,-1.209,1.000,-1.000 +69.000,-4.155,1.799,0.215,-0.623,1.000,1.000 +70.000,-2.643,0.240,-0.826,-0.920,1.000,-1.000 +70.000,-1.371,-0.412,0.321,-0.597,1.000,-0.333 +70.000,3.170,-1.559,1.633,1.971,1.000,0.333 +70.000,-0.794,2.166,0.260,1.138,1.000,1.000 +71.000,2.963,0.153,0.392,1.694,1.000,-1.000 +72.000,-0.561,-0.390,-0.845,-1.224,1.000,-1.000 +72.000,-2.050,0.657,-0.357,-1.073,1.000,0.000 +72.000,-1.537,2.149,-0.020,1.042,1.000,1.000 +73.000,-1.320,-0.176,0.031,-1.282,1.000,-1.000 +73.000,-1.252,0.211,0.804,-0.454,1.000,0.000 +73.000,-1.423,1.243,-1.758,-0.647,1.000,1.000 +74.000,1.297,0.222,-0.227,0.235,1.000,-1.000 +75.000,-5.807,2.145,-0.408,-1.237,1.000,-1.000 +75.000,1.585,-2.414,-0.379,-0.267,1.000,-0.333 +75.000,2.766,-1.249,-1.927,1.131,1.000,0.333 +75.000,3.059,-0.243,-0.656,0.521,1.000,1.000 +76.000,-0.696,1.117,-0.077,1.934,1.000,-1.000 +76.000,0.525,-0.361,-0.628,-0.250,1.000,0.000 +76.000,2.566,-0.882,-0.113,1.495,1.000,1.000 +77.000,1.879,0.529,-0.498,0.323,1.000,-1.000 +77.000,0.504,-1.156,-1.180,0.352,1.000,0.000 +77.000,-4.404,2.225,0.483,-0.228,1.000,1.000 +78.000,0.294,-0.627,-0.940,0.890,1.000,-1.000 +78.000,-0.366,-0.101,-1.699,0.919,1.000,1.000 +79.000,1.552,-0.803,0.586,0.573,1.000,-1.000 +79.000,-0.201,-0.303,-0.837,0.669,1.000,1.000 +80.000,2.321,-0.143,0.509,2.427,1.000,-1.000 +80.000,1.166,-1.682,-1.095,-1.191,1.000,0.000 +80.000,0.846,0.846,-0.294,-0.847,1.000,1.000 +81.000,-0.986,0.436,1.965,-0.064,1.000,-1.000 +81.000,1.354,-0.464,-0.997,0.457,1.000,0.000 +81.000,0.983,-0.800,0.266,-0.793,1.000,1.000 +82.000,0.930,1.218,-1.565,1.137,1.000,-1.000 +82.000,1.943,-1.904,-0.246,0.172,1.000,0.000 +82.000,0.684,0.296,-0.077,0.874,1.000,1.000 +83.000,-0.989,-0.049,0.609,-2.241,1.000,-1.000 +83.000,2.928,-0.501,-0.108,1.066,1.000,-0.333 +83.000,-0.184,-0.761,-0.208,-0.428,1.000,0.333 +83.000,-1.264,-0.882,1.164,0.269,1.000,1.000 +84.000,-0.375,0.009,-1.559,-1.256,1.000,-1.000 +85.000,-4.993,-0.154,1.311,-0.712,1.000,-1.000 +85.000,-0.073,-0.864,-0.237,-0.599,1.000,0.000 +85.000,3.719,0.150,-2.265,0.376,1.000,1.000 +86.000,1.258,0.872,-1.044,0.645,1.000,-1.000 +87.000,-2.509,1.926,0.628,0.647,1.000,-1.000 +87.000,0.358,-0.541,-1.056,-0.724,1.000,0.000 +87.000,4.490,-2.936,-1.158,-0.909,1.000,1.000 +88.000,3.066,-0.535,-1.046,2.244,1.000,-1.000 +89.000,0.324,-0.306,0.529,0.256,1.000,-1.000 +89.000,2.525,-0.487,-0.171,1.483,1.000,-0.333 +89.000,1.931,-1.091,-1.036,0.251,1.000,0.333 +89.000,1.007,-0.576,-0.883,1.242,1.000,1.000 +90.000,-1.309,1.114,-0.310,0.423,1.000,-1.000 +90.000,2.202,-1.607,-0.290,1.095,1.000,0.000 +90.000,-1.470,1.195,0.335,-0.266,1.000,1.000 +91.000,1.290,-0.554,-0.243,1.311,1.000,-1.000 +92.000,2.456,-0.705,-1.556,1.611,1.000,-1.000 +92.000,-0.410,0.983,-0.064,0.658,1.000,-0.333 +92.000,0.042,0.363,0.979,0.746,1.000,0.333 +92.000,1.716,-1.519,1.190,0.052,1.000,1.000 +93.000,5.994,-0.810,-1.603,1.421,1.000,-1.000 +93.000,-1.673,0.278,0.068,1.001,1.000,1.000 +94.000,-1.606,0.549,2.193,0.032,1.000,-1.000 +94.000,0.979,2.121,2.230,1.861,1.000,1.000 +95.000,0.873,1.151,1.555,1.412,1.000,-1.000 +95.000,-0.061,-0.325,1.126,0.155,1.000,0.000 +95.000,-2.279,-1.117,-0.998,-2.021,1.000,1.000 +96.000,4.667,-1.751,-1.152,0.197,1.000,-1.000 +96.000,-3.312,0.020,0.982,-2.709,1.000,-0.333 +96.000,-0.492,0.169,-0.381,0.083,1.000,0.333 +96.000,-3.543,-0.100,-0.240,-0.249,1.000,1.000 +97.000,-1.025,-0.738,-1.597,-0.767,1.000,-1.000 +98.000,-2.044,2.136,-1.394,0.755,1.000,-1.000 +99.000,-0.137,-0.392,-0.343,0.443,1.000,-1.000 diff --git a/statsmodels/regression/tests/results/lme11.csv b/statsmodels/regression/tests/results/lme11.csv new file mode 100644 index 0000000..178cedd --- /dev/null +++ b/statsmodels/regression/tests/results/lme11.csv @@ -0,0 +1,262 @@ +groups,endog,exog_fe_0,exog_fe_1,exog_fe_2,exog_re_0,exog_re_1 +0.000,-3.775,1.099,0.674,0.436,1.000,-1.000 +0.000,-3.074,-0.418,0.680,-0.186,1.000,1.000 +1.000,1.803,-0.042,-1.137,1.272,1.000,-1.000 +2.000,-1.442,1.290,1.390,0.344,1.000,-1.000 +3.000,-5.430,1.236,0.042,0.632,1.000,-1.000 +3.000,2.086,0.302,-0.384,0.381,1.000,0.000 +3.000,2.536,-1.174,0.293,-0.538,1.000,1.000 +4.000,-8.820,-1.160,-1.720,0.088,1.000,-1.000 +5.000,-0.383,0.180,-0.984,0.658,1.000,-1.000 +5.000,1.122,0.170,0.271,0.520,1.000,0.000 +5.000,-0.673,-0.087,0.811,-1.361,1.000,1.000 +6.000,0.020,-0.613,-1.873,0.196,1.000,-1.000 +6.000,1.059,0.507,0.276,0.874,1.000,0.000 +6.000,-0.887,0.105,0.276,-0.505,1.000,1.000 +7.000,-0.582,-0.207,-0.938,-0.678,1.000,-1.000 +7.000,-5.913,0.280,-1.180,-0.128,1.000,-0.333 +7.000,0.604,-0.989,-0.055,0.203,1.000,0.333 +7.000,-4.084,1.142,0.409,1.783,1.000,1.000 +8.000,1.641,-1.976,1.513,0.138,1.000,-1.000 +8.000,3.419,0.743,-0.448,0.941,1.000,1.000 +9.000,0.442,-0.716,1.266,-0.781,1.000,-1.000 +9.000,-3.488,0.567,0.816,-1.700,1.000,-0.333 +9.000,-0.300,0.584,-0.619,0.014,1.000,0.333 +9.000,-2.029,0.431,1.399,-0.286,1.000,1.000 +10.000,-0.222,0.632,-0.505,0.790,1.000,-1.000 +10.000,-4.123,0.781,-0.242,0.958,1.000,0.000 +10.000,0.027,-0.301,0.355,0.810,1.000,1.000 +11.000,-3.169,0.053,-1.381,-2.940,1.000,-1.000 +11.000,2.707,1.073,-0.590,1.632,1.000,-0.333 +11.000,-3.938,0.923,1.635,-1.197,1.000,0.333 +11.000,1.090,-0.081,0.603,1.030,1.000,1.000 +12.000,-1.502,0.682,0.625,0.252,1.000,-1.000 +12.000,3.730,-0.492,-0.969,0.627,1.000,0.000 +12.000,2.366,1.262,-0.925,-0.201,1.000,1.000 +13.000,8.301,-1.155,1.417,2.720,1.000,-1.000 +13.000,-0.773,1.613,-1.706,1.016,1.000,0.000 +13.000,-2.027,-1.097,-1.271,-0.881,1.000,1.000 +14.000,2.652,-0.761,-1.231,0.250,1.000,-1.000 +14.000,1.076,0.742,0.200,0.900,1.000,0.000 +14.000,-0.286,0.592,-0.413,-0.076,1.000,1.000 +15.000,-3.407,0.133,-1.107,-0.413,1.000,-1.000 +16.000,-0.267,0.137,1.232,0.284,1.000,-1.000 +16.000,-1.254,-0.490,-0.369,-0.613,1.000,0.000 +16.000,-0.736,0.594,0.677,0.739,1.000,1.000 +17.000,1.393,0.732,0.496,-0.605,1.000,-1.000 +17.000,-0.797,-0.047,-0.426,-0.620,1.000,1.000 +18.000,-3.239,1.560,-1.493,-2.523,1.000,-1.000 +19.000,1.428,-0.825,-0.439,-0.513,1.000,-1.000 +19.000,-3.834,2.378,0.754,-1.314,1.000,1.000 +20.000,5.865,-0.588,-0.843,0.812,1.000,-1.000 +20.000,0.448,0.076,-0.371,0.035,1.000,0.000 +20.000,-0.582,1.010,-1.691,0.751,1.000,1.000 +21.000,1.772,-1.609,-1.211,-0.026,1.000,-1.000 +21.000,1.033,1.441,0.194,1.266,1.000,-0.333 +21.000,4.764,-0.512,0.296,1.326,1.000,0.333 +21.000,2.269,-0.928,1.702,0.429,1.000,1.000 +22.000,2.780,-1.273,-0.470,-0.196,1.000,-1.000 +22.000,2.506,0.175,-0.341,0.740,1.000,-0.333 +22.000,0.386,-1.658,-0.654,-0.424,1.000,0.333 +22.000,-1.568,-0.713,0.765,-0.203,1.000,1.000 +23.000,0.328,1.119,1.259,0.026,1.000,-1.000 +23.000,0.413,-0.527,-2.308,0.043,1.000,0.000 +23.000,-1.404,1.291,-0.395,-1.470,1.000,1.000 +24.000,2.088,-1.056,0.783,-0.451,1.000,-1.000 +24.000,0.704,-0.452,0.228,0.917,1.000,1.000 +25.000,2.337,-0.857,-0.520,2.002,1.000,-1.000 +25.000,-1.320,-1.163,-1.221,-0.277,1.000,1.000 +26.000,5.238,-1.615,1.157,0.174,1.000,-1.000 +26.000,1.363,-0.165,-1.384,-0.158,1.000,0.000 +26.000,-0.514,0.143,-0.711,2.276,1.000,1.000 +27.000,3.513,-1.759,-0.327,0.220,1.000,-1.000 +27.000,-4.513,-0.457,-0.595,0.392,1.000,-0.333 +27.000,-2.141,0.022,1.774,0.561,1.000,0.333 +27.000,2.330,-0.235,0.861,0.443,1.000,1.000 +28.000,-5.879,1.023,-0.566,-0.582,1.000,-1.000 +28.000,0.801,0.348,-1.471,0.499,1.000,-0.333 +28.000,1.709,-0.073,-0.520,-0.011,1.000,0.333 +28.000,-0.375,0.709,0.911,1.058,1.000,1.000 +29.000,0.195,0.078,-1.207,-0.250,1.000,-1.000 +29.000,0.275,-1.680,-0.202,-1.814,1.000,1.000 +30.000,2.982,-0.801,0.569,1.608,1.000,-1.000 +30.000,2.866,-0.207,0.891,0.436,1.000,-0.333 +30.000,-2.054,0.721,-0.540,0.505,1.000,0.333 +30.000,-5.575,-0.542,-0.098,0.189,1.000,1.000 +31.000,-0.948,-0.604,0.489,-1.105,1.000,-1.000 +31.000,3.035,-0.323,-0.473,-0.240,1.000,-0.333 +31.000,0.379,2.488,-0.251,0.616,1.000,0.333 +31.000,-1.828,-0.264,-0.413,0.216,1.000,1.000 +32.000,3.019,-1.418,2.142,1.824,1.000,-1.000 +32.000,6.957,-1.178,-0.272,-0.842,1.000,1.000 +33.000,0.673,-0.852,0.907,1.749,1.000,-1.000 +34.000,-4.448,1.217,-1.093,-0.453,1.000,-1.000 +34.000,-0.439,-0.011,0.160,-0.694,1.000,-0.333 +34.000,-4.437,1.064,-1.926,-0.642,1.000,0.333 +34.000,-2.754,0.090,-0.607,-0.590,1.000,1.000 +35.000,0.952,-0.681,-0.354,-0.287,1.000,-1.000 +35.000,8.831,-0.753,-2.893,2.517,1.000,0.000 +35.000,-5.497,3.582,-0.112,-1.925,1.000,1.000 +36.000,1.062,0.201,-0.276,0.198,1.000,-1.000 +36.000,-2.308,-0.128,-0.031,0.703,1.000,-0.333 +36.000,-0.503,-0.146,-0.249,0.896,1.000,0.333 +36.000,-2.621,0.210,-1.344,-0.560,1.000,1.000 +37.000,-1.387,0.957,-0.145,0.405,1.000,-1.000 +37.000,2.185,-1.150,-0.032,0.968,1.000,1.000 +38.000,-1.498,-0.411,1.203,-1.525,1.000,-1.000 +38.000,-0.424,0.166,-0.991,0.329,1.000,1.000 +39.000,0.279,-0.434,0.155,0.108,1.000,-1.000 +40.000,-3.985,0.956,-1.041,-0.631,1.000,-1.000 +41.000,-2.887,1.852,1.373,0.167,1.000,-1.000 +41.000,0.812,-0.645,-0.071,0.358,1.000,-0.333 +41.000,-0.515,0.991,-1.333,0.086,1.000,0.333 +41.000,1.061,2.173,-1.416,0.807,1.000,1.000 +42.000,-1.863,1.342,-0.952,0.160,1.000,-1.000 +42.000,-1.778,0.626,-0.066,-3.735,1.000,0.000 +42.000,1.033,-1.202,1.449,-0.279,1.000,1.000 +43.000,3.624,-0.027,-0.472,1.048,1.000,-1.000 +43.000,-4.055,1.492,0.675,-1.212,1.000,0.000 +43.000,1.598,-0.147,1.332,0.082,1.000,1.000 +44.000,5.549,-2.000,0.711,-1.665,1.000,-1.000 +44.000,-4.101,1.073,-1.161,-1.398,1.000,1.000 +45.000,1.328,0.835,-0.465,1.612,1.000,-1.000 +45.000,-1.160,-0.130,0.218,0.132,1.000,1.000 +46.000,-7.278,1.976,-0.971,0.456,1.000,-1.000 +46.000,-0.809,-0.787,1.229,-1.688,1.000,-0.333 +46.000,1.856,-0.876,-0.270,0.351,1.000,0.333 +46.000,3.051,1.047,-1.067,-1.173,1.000,1.000 +47.000,-0.360,-1.461,1.040,0.586,1.000,-1.000 +47.000,1.751,0.064,0.395,0.520,1.000,1.000 +48.000,1.673,0.614,-2.066,1.429,1.000,-1.000 +48.000,1.989,-0.306,1.068,0.755,1.000,1.000 +49.000,2.997,-0.600,-2.409,-0.693,1.000,-1.000 +49.000,-0.086,-0.327,1.533,-0.936,1.000,1.000 +50.000,-0.953,-1.512,-0.483,0.863,1.000,-1.000 +50.000,-2.590,1.341,-1.528,0.383,1.000,-0.333 +50.000,2.637,-0.872,0.459,0.028,1.000,0.333 +50.000,1.255,-1.618,-0.324,1.239,1.000,1.000 +51.000,-3.286,0.449,-0.760,-1.215,1.000,-1.000 +51.000,0.691,0.539,-0.657,0.676,1.000,1.000 +52.000,-0.483,-0.983,0.594,-0.096,1.000,-1.000 +52.000,-0.480,0.204,1.182,-0.313,1.000,-0.333 +52.000,3.327,-0.166,-0.791,0.515,1.000,0.333 +52.000,1.605,-0.955,0.699,0.215,1.000,1.000 +53.000,3.868,0.873,-1.536,0.367,1.000,-1.000 +53.000,-1.178,-0.714,0.714,0.052,1.000,1.000 +54.000,-1.096,0.046,0.166,-0.759,1.000,-1.000 +54.000,0.994,0.516,0.058,1.586,1.000,0.000 +54.000,-5.547,1.277,0.256,-2.008,1.000,1.000 +55.000,-0.188,0.347,-1.544,0.498,1.000,-1.000 +56.000,1.394,-1.110,0.239,2.131,1.000,-1.000 +56.000,0.410,0.729,-1.072,-0.612,1.000,-0.333 +56.000,-1.305,1.699,-0.050,1.074,1.000,0.333 +56.000,4.143,-1.750,-1.720,1.226,1.000,1.000 +57.000,0.271,0.740,0.511,1.034,1.000,-1.000 +57.000,0.313,-0.209,0.519,0.909,1.000,0.000 +57.000,-0.602,1.013,1.085,-0.891,1.000,1.000 +58.000,-2.227,-0.214,-0.001,0.163,1.000,-1.000 +59.000,-1.496,-0.028,-1.519,-0.687,1.000,-1.000 +60.000,-0.820,-0.180,-0.079,-1.573,1.000,-1.000 +60.000,-0.453,-0.142,-0.090,0.351,1.000,1.000 +61.000,0.539,0.040,-1.077,2.130,1.000,-1.000 +61.000,1.416,0.684,0.319,-0.412,1.000,-0.333 +61.000,1.432,-1.120,-0.413,-1.041,1.000,0.333 +61.000,4.263,-0.242,-1.703,-0.204,1.000,1.000 +62.000,-1.459,0.324,-0.584,-0.891,1.000,-1.000 +62.000,-3.028,1.704,-0.448,-2.434,1.000,1.000 +63.000,0.330,1.408,0.665,1.576,1.000,-1.000 +64.000,-5.682,0.357,-1.083,-1.179,1.000,-1.000 +64.000,-3.124,0.712,1.788,-1.518,1.000,0.000 +64.000,-4.504,0.163,0.110,-2.306,1.000,1.000 +65.000,-6.127,0.805,-0.945,-1.332,1.000,-1.000 +65.000,-7.387,2.474,-1.380,1.430,1.000,1.000 +66.000,-6.008,1.104,-2.226,-0.441,1.000,-1.000 +66.000,2.675,0.489,-0.413,1.557,1.000,0.000 +66.000,6.011,-0.584,1.794,0.585,1.000,1.000 +67.000,-1.278,1.120,0.270,-1.956,1.000,-1.000 +67.000,2.785,-0.342,1.849,1.048,1.000,0.000 +67.000,0.270,1.195,0.036,-0.891,1.000,1.000 +68.000,-0.225,1.736,0.013,1.417,1.000,-1.000 +68.000,-4.518,1.442,-0.971,-1.509,1.000,1.000 +69.000,-2.800,0.328,1.266,-1.013,1.000,-1.000 +69.000,-2.669,-0.180,-0.921,1.412,1.000,-0.333 +69.000,-0.542,0.053,-0.004,-0.538,1.000,0.333 +69.000,-2.927,-0.138,0.193,0.488,1.000,1.000 +70.000,-1.967,0.004,0.493,0.530,1.000,-1.000 +71.000,-4.444,0.758,0.250,-0.110,1.000,-1.000 +71.000,0.779,-0.573,-0.262,0.103,1.000,1.000 +72.000,0.240,1.080,-1.192,-0.602,1.000,-1.000 +72.000,-0.993,-0.997,0.938,-0.797,1.000,-0.333 +72.000,3.873,-1.254,-1.763,-0.555,1.000,0.333 +72.000,4.807,-0.669,-1.076,0.894,1.000,1.000 +73.000,-2.500,-0.278,-1.521,1.584,1.000,-1.000 +73.000,-2.295,0.552,-0.827,-0.329,1.000,-0.333 +73.000,-0.258,1.144,0.818,1.790,1.000,0.333 +73.000,2.504,-1.825,-1.582,0.262,1.000,1.000 +74.000,1.416,-0.428,0.456,0.490,1.000,-1.000 +74.000,3.877,-0.198,-1.393,-0.547,1.000,1.000 +75.000,-1.958,0.467,0.323,1.252,1.000,-1.000 +75.000,2.353,-1.233,0.778,0.379,1.000,0.000 +75.000,-3.190,-0.715,-1.180,-1.238,1.000,1.000 +76.000,1.281,-0.355,-1.494,0.620,1.000,-1.000 +76.000,-1.045,0.942,0.586,-0.730,1.000,0.000 +76.000,2.971,-1.343,-0.189,0.665,1.000,1.000 +77.000,1.803,-0.336,-0.717,-0.417,1.000,-1.000 +77.000,-1.283,-1.062,0.760,0.980,1.000,-0.333 +77.000,4.764,-0.713,0.323,-0.691,1.000,0.333 +77.000,7.235,-1.857,0.647,1.059,1.000,1.000 +78.000,1.077,1.096,0.785,0.285,1.000,-1.000 +78.000,-1.462,1.185,-1.439,0.402,1.000,0.000 +78.000,-3.405,-0.956,-0.038,-1.044,1.000,1.000 +79.000,-2.323,-0.082,-0.901,-1.307,1.000,-1.000 +79.000,1.501,-0.678,-0.672,0.781,1.000,0.000 +79.000,-2.355,0.286,0.164,-0.902,1.000,1.000 +80.000,0.154,-0.518,1.182,-1.140,1.000,-1.000 +80.000,-1.169,-1.044,-0.963,0.545,1.000,0.000 +80.000,3.371,0.168,1.705,1.405,1.000,1.000 +81.000,5.661,-1.153,0.365,1.072,1.000,-1.000 +82.000,3.924,-0.775,1.796,0.777,1.000,-1.000 +82.000,3.692,-1.654,1.673,0.034,1.000,0.000 +82.000,4.973,-1.558,-0.239,-0.802,1.000,1.000 +83.000,-4.433,0.097,0.176,0.124,1.000,-1.000 +84.000,-0.331,-0.494,-0.611,2.648,1.000,-1.000 +84.000,2.324,0.593,1.263,-0.725,1.000,1.000 +85.000,-1.634,-1.538,-0.959,-1.966,1.000,-1.000 +86.000,2.046,0.317,2.039,0.365,1.000,-1.000 +86.000,2.597,-0.977,-0.161,1.815,1.000,0.000 +86.000,-1.517,2.003,-0.515,0.253,1.000,1.000 +87.000,1.314,0.606,-0.870,-1.089,1.000,-1.000 +87.000,-0.151,0.461,0.025,1.103,1.000,1.000 +88.000,1.555,0.366,0.819,-0.510,1.000,-1.000 +88.000,0.147,-0.037,0.804,-0.647,1.000,0.000 +88.000,-3.459,-0.306,0.029,-0.788,1.000,1.000 +89.000,-0.088,0.469,-0.174,0.533,1.000,-1.000 +89.000,-5.634,1.586,-0.568,0.168,1.000,0.000 +89.000,6.470,-1.374,1.194,-0.177,1.000,1.000 +90.000,1.156,-0.821,0.961,0.681,1.000,-1.000 +91.000,1.282,0.291,-1.246,0.711,1.000,-1.000 +91.000,-4.305,1.224,0.110,1.590,1.000,0.000 +91.000,-1.897,-0.302,-0.507,0.072,1.000,1.000 +92.000,-1.910,-0.183,-0.110,0.398,1.000,-1.000 +92.000,5.424,-1.609,-0.652,-1.474,1.000,1.000 +93.000,1.777,-0.149,1.462,0.618,1.000,-1.000 +93.000,1.602,0.401,-1.128,-0.205,1.000,-0.333 +93.000,1.316,0.396,1.269,-0.535,1.000,0.333 +93.000,-0.641,-0.209,0.439,-0.833,1.000,1.000 +94.000,-0.742,-0.002,-0.303,0.014,1.000,-1.000 +94.000,6.648,-0.767,-0.476,0.413,1.000,1.000 +95.000,-3.939,-0.028,1.455,-1.046,1.000,-1.000 +95.000,-3.992,-0.936,0.525,-0.691,1.000,1.000 +96.000,1.316,0.016,0.367,-1.287,1.000,-1.000 +96.000,-2.157,0.885,1.678,-1.062,1.000,-0.333 +96.000,1.075,-1.454,0.652,0.976,1.000,0.333 +96.000,3.665,-0.563,0.246,0.395,1.000,1.000 +97.000,3.121,-2.871,-1.058,0.355,1.000,-1.000 +97.000,-1.160,0.497,0.645,-0.296,1.000,1.000 +98.000,-7.100,0.912,0.010,-0.685,1.000,-1.000 +98.000,-2.823,0.769,0.148,-1.593,1.000,0.000 +98.000,-3.731,1.655,-0.693,-1.300,1.000,1.000 +99.000,-0.579,0.527,1.014,0.243,1.000,-1.000 +99.000,0.314,1.084,-0.030,0.904,1.000,-0.333 +99.000,0.493,-1.464,-1.787,-1.039,1.000,0.333 +99.000,3.419,0.787,-0.341,-0.586,1.000,1.000 diff --git a/statsmodels/regression/tests/results/macro_gr_corc_stata.py b/statsmodels/regression/tests/results/macro_gr_corc_stata.py new file mode 100644 index 0000000..4449aef --- /dev/null +++ b/statsmodels/regression/tests/results/macro_gr_corc_stata.py @@ -0,0 +1,517 @@ +import numpy as np + +est = dict( + N = 201, + df_m = 2, + df_r = 198, + F = 221.0377347263228, + r2 = .6906614775140222, + rmse = 10.66735221013527, + mss = 50304.8300537672, + rss = 22530.89582866539, + r2_a = .6875368459737599, + ll = -759.5001027340874, + N_gaps = 0, + tol = 1.00000000000e-06, + max_ic = 100, + ic = 4, + dw = 1.993977855026291, + dw_0 = 2.213805016982909, + rho = -.1080744185979703, + rank = 3, + cmd = "prais", + title = "Prais-Winsten AR(1) regression", + cmdline = "prais g_realinv g_realgdp L.realint, corc rhotype(tscorr)", + tranmeth = "corc", + method = "iterated", + depvar = "g_realinv", + predict = "prais_p", + rhotype = "tscorr", + vce = "ols", + properties = "b V", + ) + +params_table = np.array([ 4.3704012379033, + .20815070994319, + 20.996331163589, + 2.939551581e-52, + 3.9599243998713, + 4.7808780759353, + 198, + 1.9720174778363, + 0, + -.5792713864578, + .26801792119756, + -2.1613158697355, + .03187117882819, + -1.1078074114328, + -.05073536148285, + 198, + 1.9720174778363, + 0, + -9.509886614971, + .99049648344574, + -9.6011311235432, + 3.656321106e-18, + -11.463162992061, + -7.5566102378806, + 198, + 1.9720174778363, + 0]).reshape(3,9) + +params_table_colnames = 'b se t pvalue ll ul df crit eform'.split() + +params_table_rownames = 'g_realgdp L.realint _cons'.split() + +cov = np.array([ .04609356125016, + -.00228616599156, + -.13992917065996, + -.00228616599156, + .08103590074551, + -.10312637237487, + -.13992917065996, + -.10312637237487, + 1.1416832888557]).reshape(3,3) + +cov_colnames = 'g_realgdp L.realint _cons'.split() + +cov_rownames = 'g_realgdp L.realint _cons'.split() + +fittedvalues = np.array([ 34.092961143383, + -12.024019193439, + -4.0322884907855, + 26.930266763436, + -18.388570551209, + -8.1324920108371, + -31.875322937642, + .21814034941388, + 21.286872048596, + 18.046781817358, + 24.839977757054, + 20.524927286892, + 9.4135589847345, + 5.0452309081846, + -5.6551802066401, + 11.985460837387, + 10.881000973745, + 22.932381778173, + 2.2243337561549, + 28.678018086877, + 8.4960232938048, + 12.595931232461, + -5.9735838194583, + 31.918171668207, + 12.51486507374, + 24.858076725235, + 30.404510147102, + 32.036251557873, + -3.4858432808681, + .47271857077911, + 4.4052813399748, + 3.2797897853075, + -10.188593201973, + 4.2830255779438, + 3.2910087767189, + 26.047109629787, + 18.955198396277, + 2.5715957164729, + -2.3281798982217, + 17.032381944743, + -4.0901785042795, + .91987313367478, + -18.683722252157, + -12.984352504073, + -6.6160771495293, + 4.5273942020195, + -28.749156193466, + 38.148138299645, + -.57670949517535, + 4.4996010868259, + -5.6725761358388, + 20.923003763987, + 31.094336738501, + 6.5964070665898, + 18.667129468109, + 34.425102067117, + 12.495888351027, + -20.391896794875, + 9.6404042884163, + -23.337183583421, + -3.2089713311258, + -25.745423471535, + -13.275374642526, + -29.102203184727, + 3.6718187868943, + 20.796143264795, + 13.375486730466, + 30.503754833333, + 1.9832701043709, + -.33573283324142, + 3.8454619057923, + 11.198841650909, + 27.300615912881, + 21.617271919636, + -10.213387774549, + -3.041115945304, + 58.662013692103, + 9.3875351174185, + 14.62429232726, + -7.0289661733807, + -6.3287417283568, + 5.3688078321969, + -3.9071766792954, + -2.3350903711443, + -45.218293861742, + -12.518622374718, + 22.354531985202, + 24.642689788549, + -26.596828143888, + 8.8860015710942, + -35.108835611339, + -42.53255546273, + -6.0981548538498, + -17.177799997821, + -11.40329039155, + 7.0180843697455, + 26.705585327159, + 21.928461900264, + 23.355257443029, + 21.894505946705, + 17.657379506229, + 3.4294676089343, + .97440677130275, + 3.509217298751, + 3.2828913970637, + 14.944972085155, + 1.2923006012963, + 6.0435554866624, + -8.8442213362579, + 5.4509233390479, + -2.6794059247137, + -.48161809935521, + 8.4201161664985, + 4.549532431433, + 18.996304264647, + -1.8170413137623, + 11.849281819014, + -1.7066851102854, + 12.218564198008, + 4.6715818362824, + 2.108627710813, + 2.1972303599907, + -8.5249858114578, + 8.0728543937531, + -4.5685185423019, + -11.135138151837, + -24.047910391406, + -19.615146607087, + -.44428684605231, + -3.4877810606396, + -3.9736701841582, + 9.0239662841874, + 8.5557600343168, + 8.2271736548708, + 9.0458357352972, + -6.3116081663522, + 1.5636968490473, + -.95723547143789, + 13.44821815082, + 6.7721586886424, + 13.649238514998, + 1.1579094135284, + 8.6396143031575, + -6.7325794361447, + -7.0767574403351, + 3.1400395218988, + .91586368309611, + 1.2368141501238, + 19.694940608963, + 4.0145204498294, + 8.3107956501685, + 2.7428657521209, + 13.988676494758, + 10.116898229369, + 2.524027931198, + 4.6794023157157, + 3.5155627033849, + 11.945878601415, + 18.880925278224, + 4.5865622289454, + 3.2393307465763, + 11.062953867859, + 20.793966231154, + -6.3076444941097, + 23.178864105791, + -8.9873099715132, + -1.107322743866, + -16.332040882272, + .42734142108626, + -15.050781890016, + -4.6612306163595, + 4.565652288529, + .80725599873503, + -.87706444767528, + -8.5407936802022, + -1.3521383036839, + 4.4765977604986, + 19.623863498831, + 7.1113956960438, + 3.9798487855641, + 3.6934842863203, + 4.6801104799091, + 6.7218162617593, + 7.7832579175778, + -1.2290990957424, + 3.0474310004174, + 2.7567736850761, + 11.188206993423, + -4.3306276498455, + -9.5365114805844, + -.53338170341178, + -5.206342794124, + 4.1154674910376, + 4.7884361973806, + -.64799653797949, + -10.743852791188, + -2.461403042047, + -17.431541988995, + -36.151189705211, + -43.711601400093, + -12.334881925913, + 4.3341943478598]) + +fittedvalues_colnames = 'fittedvalues'.split() + +fittedvalues_rownames = 'r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 r23 r24 r25 r26 r27 r28 r29 r30 r31 r32 r33 r34 r35 r36 r37 r38 r39 r40 r41 r42 r43 r44 r45 r46 r47 r48 r49 r50 r51 r52 r53 r54 r55 r56 r57 r58 r59 r60 r61 r62 r63 r64 r65 r66 r67 r68 r69 r70 r71 r72 r73 r74 r75 r76 r77 r78 r79 r80 r81 r82 r83 r84 r85 r86 r87 r88 r89 r90 r91 r92 r93 r94 r95 r96 r97 r98 r99 r100 r101 r102 r103 r104 r105 r106 r107 r108 r109 r110 r111 r112 r113 r114 r115 r116 r117 r118 r119 r120 r121 r122 r123 r124 r125 r126 r127 r128 r129 r130 r131 r132 r133 r134 r135 r136 r137 r138 r139 r140 r141 r142 r143 r144 r145 r146 r147 r148 r149 r150 r151 r152 r153 r154 r155 r156 r157 r158 r159 r160 r161 r162 r163 r164 r165 r166 r167 r168 r169 r170 r171 r172 r173 r174 r175 r176 r177 r178 r179 r180 r181 r182 r183 r184 r185 r186 r187 r188 r189 r190 r191 r192 r193 r194 r195 r196 r197 r198 r199 r200 r201 r202'.split() + +fittedvalues_se = np.array([ 1.6473872957314, + 1.0113850707964, + .7652190209006, + 1.534040692487, + 1.2322657893516, + .91158310011358, + 1.8788908534927, + .69811681139453, + 1.1767226952576, + .98858641944986, + 1.2396486964702, + 1.0822616701665, + .7753481322096, + .76860948102754, + .82419167032501, + .82704859414698, + .82559058693092, + 1.1856589638289, + .75525402187835, + 1.3922568629515, + .91202394595876, + .88520111465725, + .83302439819375, + 1.5372725435314, + .89177714550085, + 1.2372408530959, + 1.5528101417195, + 1.5366212693726, + .89043286423929, + .75705684478985, + .73518329909511, + 1.0572392569996, + .93211401184553, + .75196863280241, + .69360947719119, + 1.3106012580927, + 1.0209999290642, + .81133440956099, + .75559203443239, + .94831739014224, + .93322729630976, + .69417535741881, + 1.2398628905688, + 1.0261547060202, + .86379439641561, + .75032871325094, + 1.6696098440084, + 1.8282957404356, + .70460484132802, + .79812152719782, + .8016314317639, + 1.0872600753814, + 1.4987341895633, + .70529145955969, + 1.0149968053074, + 1.6467690495895, + 1.4677194036031, + 1.3384921199391, + 1.7046600039586, + 1.8412203199988, + 1.4367363864341, + 1.8103264820977, + 2.1242535073081, + 2.1101077640804, + .745443770473, + 1.3651585515035, + .94103291060948, + 1.5981517654886, + .77654854940188, + .96643611834989, + .97013991129283, + .97997241479455, + 1.9501042753844, + 1.1758285978818, + .9603215961611, + .96398854110297, + 2.7840981863809, + 1.413576103565, + 1.2364541532613, + .85434724833597, + 1.3715636637071, + 1.6066244823944, + 1.0686828612843, + 1.3176342918943, + 2.5021204574497, + 1.1330278834213, + 1.1636905462155, + 1.3340487203567, + 1.8517041947194, + 1.1639745295786, + 2.304428659791, + 2.6786336953086, + 2.5354570978302, + 1.1805089049206, + 1.4742162139537, + 2.1143611509083, + 1.5986085606212, + 1.4576906503482, + 1.5624993432094, + 1.3158885079997, + 1.3538646144937, + 1.619414838601, + 1.5015020934095, + 1.3855500128549, + .86402762365746, + 1.2492579410465, + 1.0127848313981, + .7158840034754, + 2.6885176805365, + .83774886448436, + .81595294371756, + .70504062914926, + .73023061883128, + .69228489060199, + 1.0360869522995, + .75590017576772, + .80137295502042, + .73813943198212, + .87064014103306, + .93205385237951, + .73787688995958, + .90978243354856, + 1.2648707813937, + .72349602267222, + .93927915871284, + 1.0172563832871, + 1.6776109713009, + 1.3175046180712, + 1.1171209329088, + .78301185980687, + .78918856044216, + .74112029520399, + .74451851348435, + .76567972163601, + .87244845911018, + .90049784898067, + .76120214907789, + .71166085065751, + .90870901548966, + .70296598825213, + .84621726620383, + .69493630035748, + .75059818136305, + .87986442867509, + .86277076414594, + .87380573440987, + .80727321528666, + .70768449827207, + 1.040570485976, + .78088040381913, + .74507562843308, + .69792915007094, + 1.0988781063157, + 1.0027100639643, + .72261812289435, + .96179349200945, + 1.0868653716913, + .86400879397201, + 1.094197020208, + .74093235691985, + .67984744050458, + .8543509596351, + 1.0818096940792, + .84834713756928, + 1.1852779873098, + .89126223599075, + .87108400982232, + 1.1499249237911, + .75958251908371, + 1.1014705573844, + .80471862911078, + .68374044074715, + 1.1058743822208, + .78261190454279, + 1.1081858646506, + 1.1333032178191, + .79529240253276, + 1.0984357956297, + 1.0696598625923, + 1.1524457583105, + 1.0091448954756, + 1.2183914737714, + 1.1249902630054, + .78498039737187, + 1.04667102358, + .68135274836726, + 1.9934991355412, + .995276050357, + .77642057869112, + .92353879856007, + 1.5308870921603, + .78757917918954, + .73146117757714, + .70335029981046, + .73869949489316, + 1.6122142696964, + 1.023758116961, + 2.5353634753616, + 2.1057022389201, + 3.0080233992196, + 1.1648858140616, + 1.3964393384387]) + +fittedvalues_se_colnames = 'fittedvalues_se'.split() + +fittedvalues_se_rownames = 'r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 r23 r24 r25 r26 r27 r28 r29 r30 r31 r32 r33 r34 r35 r36 r37 r38 r39 r40 r41 r42 r43 r44 r45 r46 r47 r48 r49 r50 r51 r52 r53 r54 r55 r56 r57 r58 r59 r60 r61 r62 r63 r64 r65 r66 r67 r68 r69 r70 r71 r72 r73 r74 r75 r76 r77 r78 r79 r80 r81 r82 r83 r84 r85 r86 r87 r88 r89 r90 r91 r92 r93 r94 r95 r96 r97 r98 r99 r100 r101 r102 r103 r104 r105 r106 r107 r108 r109 r110 r111 r112 r113 r114 r115 r116 r117 r118 r119 r120 r121 r122 r123 r124 r125 r126 r127 r128 r129 r130 r131 r132 r133 r134 r135 r136 r137 r138 r139 r140 r141 r142 r143 r144 r145 r146 r147 r148 r149 r150 r151 r152 r153 r154 r155 r156 r157 r158 r159 r160 r161 r162 r163 r164 r165 r166 r167 r168 r169 r170 r171 r172 r173 r174 r175 r176 r177 r178 r179 r180 r181 r182 r183 r184 r185 r186 r187 r188 r189 r190 r191 r192 r193 r194 r195 r196 r197 r198 r199 r200 r201 r202'.split() + +class Bunch(dict): + def __init__(self, **kw): + dict.__init__(self, kw) + self.__dict__ = self + + for i,att in enumerate(['params', 'bse', 'tvalues', 'pvalues']): + self[att] = self.params_table[:,i] + + +results = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + fittedvalues=fittedvalues, + fittedvalues_colnames=fittedvalues_colnames, + fittedvalues_rownames=fittedvalues_rownames, + fittedvalues_se=fittedvalues_se, + fittedvalues_se_colnames=fittedvalues_se_colnames, + fittedvalues_se_rownames=fittedvalues_se_rownames, + **est + ) diff --git a/statsmodels/regression/tests/results/pastes.csv b/statsmodels/regression/tests/results/pastes.csv new file mode 100644 index 0000000..16c18d8 --- /dev/null +++ b/statsmodels/regression/tests/results/pastes.csv @@ -0,0 +1,61 @@ +"","strength","batch","cask","sample" +"1",62.8,"A","a","A:a" +"2",62.6,"A","a","A:a" +"3",60.1,"A","b","A:b" +"4",62.3,"A","b","A:b" +"5",62.7,"A","c","A:c" +"6",63.1,"A","c","A:c" +"7",60,"B","a","B:a" +"8",61.4,"B","a","B:a" +"9",57.5,"B","b","B:b" +"10",56.9,"B","b","B:b" +"11",61.1,"B","c","B:c" +"12",58.9,"B","c","B:c" +"13",58.7,"C","a","C:a" +"14",57.5,"C","a","C:a" +"15",63.9,"C","b","C:b" +"16",63.1,"C","b","C:b" +"17",65.4,"C","c","C:c" +"18",63.7,"C","c","C:c" +"19",57.1,"D","a","D:a" +"20",56.4,"D","a","D:a" +"21",56.9,"D","b","D:b" +"22",58.6,"D","b","D:b" +"23",64.7,"D","c","D:c" +"24",64.5,"D","c","D:c" +"25",55.1,"E","a","E:a" +"26",55.1,"E","a","E:a" +"27",54.7,"E","b","E:b" +"28",54.2,"E","b","E:b" +"29",58.8,"E","c","E:c" +"30",57.5,"E","c","E:c" +"31",63.4,"F","a","F:a" +"32",64.9,"F","a","F:a" +"33",59.3,"F","b","F:b" +"34",58.1,"F","b","F:b" +"35",60.5,"F","c","F:c" +"36",60,"F","c","F:c" +"37",62.5,"G","a","G:a" +"38",62.6,"G","a","G:a" +"39",61,"G","b","G:b" +"40",58.7,"G","b","G:b" +"41",56.9,"G","c","G:c" +"42",57.7,"G","c","G:c" +"43",59.2,"H","a","H:a" +"44",59.4,"H","a","H:a" +"45",65.2,"H","b","H:b" +"46",66,"H","b","H:b" +"47",64.8,"H","c","H:c" +"48",64.1,"H","c","H:c" +"49",54.8,"I","a","I:a" +"50",54.8,"I","a","I:a" +"51",64,"I","b","I:b" +"52",64,"I","b","I:b" +"53",57.7,"I","c","I:c" +"54",56.8,"I","c","I:c" +"55",58.3,"J","a","J:a" +"56",59.3,"J","a","J:a" +"57",59.2,"J","b","J:b" +"58",59.2,"J","b","J:b" +"59",58.9,"J","c","J:c" +"60",56.6,"J","c","J:c" diff --git a/statsmodels/regression/tests/results/results_grunfeld_ols_robust_cluster.py b/statsmodels/regression/tests/results/results_grunfeld_ols_robust_cluster.py new file mode 100644 index 0000000..a528fdd --- /dev/null +++ b/statsmodels/regression/tests/results/results_grunfeld_ols_robust_cluster.py @@ -0,0 +1,823 @@ +import numpy as np + + +class Bunch(dict): + def __init__(self, **kw): + dict.__init__(self, kw) + self.__dict__ = self + + for i,att in enumerate(['params', 'bse', 'tvalues', 'pvalues']): + self[att] = self.params_table[:,i] + + +est = dict( + N_clust = 10, + N = 200, + df_m = 2, + df_r = 9, + F = 51.59060716590177, + r2 = .8124080178314147, + rmse = 94.40840193979599, + mss = 7604093.484267689, + rss = 1755850.432294737, + r2_a = .8105035307027997, + ll = -1191.80235741801, + ll_0 = -1359.150955647688, + rank = 3, + cmdline = "regress invest mvalue kstock, vce(cluster company)", + title = "Linear regression", + marginsok = "XB default", + vce = "cluster", + depvar = "invest", + cmd = "regress", + properties = "b V", + predict = "regres_p", + model = "ols", + estat_cmd = "regress_estat", + vcetype = "Robust", + clustvar = "company", + ) + +params_table = np.array([ + .11556215606596, .01589433647768, 7.2706499090564, .00004710548549, + .07960666895505, .15151764317688, 9, 2.2621571627982, + 0, .23067848754982, .08496711097464, 2.7149150406994, + .02380515903536, .03846952885627, .42288744624337, 9, + 2.2621571627982, 0, -42.714369016733, 20.425202580078, + -2.0912580352272, .06604843284516, -88.919387334862, 3.4906493013959, + 9, 2.2621571627982, 0]).reshape(3,9) + +params_table_colnames = 'b se t pvalue ll ul df crit eform'.split() + +params_table_rownames = 'mvalue kstock _cons'.split() + +cov = np.array([ + .00025262993207, -.00065043385106, .20961897960949, -.00065043385106, + .00721940994738, -1.2171040967615, .20961897960949, -1.2171040967615, + 417.18890043724]).reshape(3,3) + +cov_colnames = 'mvalue kstock _cons'.split() + +cov_rownames = 'mvalue kstock _cons'.split() + + +results_cluster = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) + +est = dict( + N = 200, + inexog_ct = 2, + exexog_ct = 0, + endog_ct = 0, + partial_ct = 0, + N_clust = 10, + df_m = 2, + sdofminus = 0, + dofminus = 0, + r2 = .8124080178314146, + rmse = 93.69766358599176, + rss = 1755850.432294737, + mss = 7604093.484267682, + r2_a = .8105035307027995, + F = 51.59060716590192, + Fp = .0000117341240941, + Fdf1 = 2, + Fdf2 = 9, + yy = 13620706.07273678, + yyc = 9359943.916562419, + partialcons = 0, + cons = 1, + jdf = 0, + j = 0, + ll = -1191.802357418011, + rankV = 3, + rankS = 3, + rankxx = 3, + rankzz = 3, + r2c = .8124080178314146, + r2u = .8710896173136538, + clustvar = "company", + hacsubtitleV = "Statistics robust to heteroskedasticity and clustering on company", + hacsubtitleB = "Estimates efficient for homoskedasticity only", + title = "OLS estimation", + predict = "ivreg2_p", + version = "03.1.07", + cmdline = "ivreg2 invest mvalue kstock, cluster(company)", + cmd = "ivreg2", + model = "ols", + depvar = "invest", + vcetype = "Robust", + vce = "robust cluster", + partialsmall = "small", + inexog = "mvalue kstock", + insts = "mvalue kstock", + properties = "b V", + ) + +params_table = np.array([ + .11556215606596, .01500272788516, 7.7027429245215, 1.331761148e-14, + .08615734974119, .14496696239074, np.nan, 1.9599639845401, + 0, .23067848754982, .08020079648691, 2.8762618035529, + .00402415789383, .07348781490405, .38786916019559, np.nan, + 1.9599639845401, 0, -42.714369016733, 19.27943055305, + -2.2155410088072, .02672295281194, -80.501358543152, -4.9273794903145, + np.nan, 1.9599639845401, 0]).reshape(3,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = 'mvalue kstock _cons'.split() + +cov = np.array([ + .000225081844, -.00057950714469, .1867610305767, -.00057950714469, + .00643216775713, -1.0843847053056, .1867610305767, -1.0843847053056, + 371.69644244987]).reshape(3,3) + +cov_colnames = 'mvalue kstock _cons'.split() + +cov_rownames = 'mvalue kstock _cons'.split() + + +results_cluster_large = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) + +est = dict( + N = 200, + N_g = 10, + df_m = 2, + df_r = 9, + F = 97.97910905239282, + r2 = .8124080178314147, + rmse = 94.40840193979599, + lag = 4, + cmd = "xtscc", + predict = "xtscc_p", + method = "Pooled OLS", + depvar = "invest", + vcetype = "Drisc/Kraay", + title = "Regression with Driscoll-Kraay standard errors", + groupvar = "company", + properties = "b V", + ) + +params_table = np.array([ + .11556215606596, .0134360177573, 8.6009231420662, .00001235433261, + .08516777225681, .14595653987512, 9, 2.2621571627982, + 0, .23067848754982, .04930800664089, 4.678317037431, + .00115494570515, .11913602714384, .3422209479558, 9, + 2.2621571627982, 0, -42.714369016733, 12.190347184209, + -3.5039501641153, .0066818746948, -70.290850216489, -15.137887816977, + 9, 2.2621571627982, 0]).reshape(3,9) + +params_table_colnames = 'b se t pvalue ll ul df crit eform'.split() + +params_table_rownames = 'mvalue kstock _cons'.split() + +cov = np.array([ + .00018052657317, -.00035661054613, -.06728261073866, -.00035661054613, + .0024312795189, -.32394785247278, -.06728261073866, -.32394785247278, + 148.60456447156]).reshape(3,3) + +cov_colnames = 'mvalue kstock _cons'.split() + +cov_rownames = 'mvalue kstock _cons'.split() + + +results_nw_groupsum4 = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) + +est = dict( + df_m = 2, + df_r = 197, + F = 73.07593045506036, + N = 200, + lag = 4, + rank = 3, + title = "Regression with Newey-West standard errors", + cmd = "newey", + cmdline = "newey invest mvalue kstock, lag(4) force", + estat_cmd = "newey_estat", + predict = "newey_p", + vcetype = "Newey-West", + depvar = "invest", + properties = "b V", + ) + +params_table = np.array([ + .11556215606596, .01142785251475, 10.112324771147, 1.251631065e-19, + .0930255277205, .13809878441142, 197, 1.9720790337785, + 0, .23067848754982, .06842168281423, 3.3714237660029, + .00089998163666, .09574552141602, .36561145368361, 197, + 1.9720790337785, 0, -42.714369016733, 16.179042041128, + -2.6401049523298, .00895205094219, -74.620718612662, -10.808019420804, + 197, 1.9720790337785, 0]).reshape(3,9) + +params_table_colnames = 'b se t pvalue ll ul df crit eform'.split() + +params_table_rownames = 'mvalue kstock _cons'.split() + +cov = np.array([ + .0001305958131, -.00022910455176, .00889686530849, -.00022910455176, + .00468152667913, -.88403667445531, .00889686530849, -.88403667445531, + 261.76140136858]).reshape(3,3) + +cov_colnames = 'mvalue kstock _cons'.split() + +cov_rownames = 'mvalue kstock _cons'.split() + + +results_nw_panel4 = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) + +est = dict( + N = 200, + inexog_ct = 2, + exexog_ct = 0, + endog_ct = 0, + partial_ct = 0, + df_r = 9, + N_clust = 10, + N_clust1 = 10, + N_clust2 = 20, + df_m = 2, + sdofminus = 0, + dofminus = 0, + r2 = .8124080178314146, + rmse = 94.40840193979601, + rss = 1755850.432294737, + mss = 7604093.484267682, + r2_a = .8105035307027995, + F = 57.99124535923564, + Fp = 7.21555935862e-06, + Fdf1 = 2, + partialcons = 0, + cons = 1, + jdf = 0, + j = 0, + ll = -1191.802357418011, + rankV = 3, + rankS = 3, + rankxx = 3, + rankzz = 3, + r2c = .8124080178314146, + r2u = .8710896173136538, + yyc = 9359943.916562419, + yy = 13620706.07273678, + Fdf2 = 9, + clustvar = "company time", + hacsubtitleV = "Statistics robust to heteroskedasticity and clustering on company and time", + hacsubtitleB = "Estimates efficient for homoskedasticity only", + title = "OLS estimation", + predict = "ivreg2_p", + version = "03.1.07", + cmdline = "ivreg2 invest mvalue kstock, cluster(company time) small", + cmd = "ivreg2", + model = "ols", + depvar = "invest", + vcetype = "Robust", + clustvar2 = "time", + clustvar1 = "company", + vce = "robust two-way cluster", + partialsmall = "small", + small = "small", + inexog = "mvalue kstock", + insts = "mvalue kstock", + properties = "b V", + ) + +params_table = np.array([ + .11556215606596, .01635175387097, 7.0672636695645, .00005873628221, + .07857191892244, .15255239320949, 9, 2.2621571627982, + 0, .23067848754982, .07847391274682, 2.9395563375824, + .01649863150032, .05315816373679, .40819881136285, 9, + 2.2621571627982, 0, -42.714369016733, 19.505607409785, + -2.189850750062, .05626393734425, -86.839118533508, 1.4103805000422, + 9, 2.2621571627982, 0]).reshape(3,9) + +params_table_colnames = 'b se t pvalue ll ul df crit eform'.split() + +params_table_rownames = 'mvalue kstock _cons'.split() + +cov = np.array([ + .00026737985466, -.00070163493529, .19641438763743, -.00070163493529, + .0061581549818, -.99627581152391, .19641438763743, -.99627581152391, + 380.46872042467]).reshape(3,3) + +cov_colnames = 'mvalue kstock _cons'.split() + +cov_rownames = 'mvalue kstock _cons'.split() + + +results_cluster_2groups_small = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) + +est = dict( + N = 200, + inexog_ct = 2, + exexog_ct = 0, + endog_ct = 0, + partial_ct = 0, + N_clust = 10, + N_clust1 = 10, + N_clust2 = 20, + df_m = 2, + sdofminus = 0, + dofminus = 0, + r2 = .8124080178314146, + rmse = 93.69766358599176, + rss = 1755850.432294737, + mss = 7604093.484267682, + r2_a = .8105035307027995, + F = 57.99124535923565, + Fp = 7.21555935862e-06, + Fdf1 = 2, + Fdf2 = 9, + partialcons = 0, + cons = 1, + jdf = 0, + j = 0, + ll = -1191.802357418011, + rankV = 3, + rankS = 3, + rankxx = 3, + rankzz = 3, + r2c = .8124080178314146, + r2u = .8710896173136538, + yyc = 9359943.916562419, + yy = 13620706.07273678, + clustvar = "company time", + hacsubtitleV = "Statistics robust to heteroskedasticity and clustering on company and time", + hacsubtitleB = "Estimates efficient for homoskedasticity only", + title = "OLS estimation", + predict = "ivreg2_p", + version = "03.1.07", + cmdline = "ivreg2 invest mvalue kstock, cluster(company time)", + cmd = "ivreg2", + model = "ols", + depvar = "invest", + vcetype = "Robust", + clustvar2 = "time", + clustvar1 = "company", + vce = "robust two-way cluster", + partialsmall = "small", + inexog = "mvalue kstock", + insts = "mvalue kstock", + properties = "b V", + ) + +params_table = np.array([ + .11556215606596, .01543448599542, 7.487269488613, 7.032121917e-14, + .08531111939505, .14581319273688, np.nan, 1.9599639845401, + 0, .23067848754982, .07407184066336, 3.1142534799181, + .00184410987255, .08550034758104, .3758566275186, np.nan, + 1.9599639845401, 0, -42.714369016733, 18.411420987265, + -2.319993065515, .02034125246974, -78.800091055978, -6.6286469774879, + np.nan, 1.9599639845401, 0]).reshape(3,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = 'mvalue kstock _cons'.split() + +cov = np.array([ + .00023822335794, -.00062512499511, .17499633632219, -.00062512499511, + .00548663757926, -.88763669036779, .17499633632219, -.88763669036779, + 338.98042277032]).reshape(3,3) + +cov_colnames = 'mvalue kstock _cons'.split() + +cov_rownames = 'mvalue kstock _cons'.split() + + +results_cluster_2groups_large = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) + +est = dict( + N = 200, + inexog_ct = 2, + exexog_ct = 0, + endog_ct = 0, + partial_ct = 0, + bw = 5, + N_clust = 20, + df_m = 2, + sdofminus = 0, + dofminus = 0, + r2 = .8124080178314146, + rmse = 93.69766358599176, + rss = 1755850.432294737, + mss = 7604093.484267682, + r2_a = .8105035307027995, + F = 92.14467466912147, + Fp = 1.66368179227e-10, + Fdf1 = 2, + Fdf2 = 19, + yy = 13620706.07273678, + partialcons = 0, + cons = 1, + jdf = 0, + j = 0, + ll = -1191.802357418011, + rankV = 3, + rankS = 3, + rankxx = 3, + rankzz = 3, + r2c = .8124080178314146, + r2u = .8710896173136538, + yyc = 9359943.916562419, + clustvar = "year", + hacsubtitleV2 = "and kernel-robust to common correlated disturbances (Driscoll-Kraay)", + hacsubtitleV = "Statistics robust to heteroskedasticity and clustering on year", + hacsubtitleB = "Estimates efficient for homoskedasticity only", + title = "OLS estimation", + predict = "ivreg2_p", + version = "03.1.07", + cmdline = "ivreg2 invest mvalue kstock, dkraay(5)", + cmd = "ivreg2", + model = "ols", + depvar = "invest", + vcetype = "Robust", + vce = "cluster ac bartlett bw=5", + partialsmall = "small", + ivar = "company", + tvar = "year", + kernel = "Bartlett", + inexog = "mvalue kstock", + insts = "mvalue kstock", + properties = "b V", + ) + +params_table = np.array([ + .11556215606596, .0134360177573, 8.6009231420662, 7.907743030e-18, + .08922804516602, .14189626696591, np.nan, 1.9599639845401, + 0, .23067848754982, .04930800664089, 4.678317037431, + 2.892390940e-06, .13403657038422, .32732040471542, np.nan, + 1.9599639845401, 0, -42.714369016733, 12.190347184209, + -3.5039501641153, .00045841113727, -66.607010456823, -18.821727576643, + np.nan, 1.9599639845401, 0]).reshape(3,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = 'mvalue kstock _cons'.split() + +cov = np.array([ + .00018052657317, -.00035661054613, -.06728261073866, -.00035661054613, + .0024312795189, -.32394785247278, -.06728261073866, -.32394785247278, + 148.60456447156]).reshape(3,3) + +cov_colnames = 'mvalue kstock _cons'.split() + +cov_rownames = 'mvalue kstock _cons'.split() + + +results_nw_groupsum4_ivreg_large = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) + +est = dict( + N = 200, + inexog_ct = 2, + exexog_ct = 0, + endog_ct = 0, + partial_ct = 0, + bw = 5, + df_r = 19, + N_clust = 20, + df_m = 2, + sdofminus = 0, + dofminus = 0, + r2 = .8124080178314146, + rmse = 94.40840193979601, + rss = 1755850.432294737, + mss = 7604093.484267682, + r2_a = .8105035307027995, + F = 92.14467466912149, + Fp = 1.66368179227e-10, + Fdf1 = 2, + Fdf2 = 19, + partialcons = 0, + cons = 1, + jdf = 0, + j = 0, + ll = -1191.802357418011, + rankV = 3, + rankS = 3, + rankxx = 3, + rankzz = 3, + r2c = .8124080178314146, + r2u = .8710896173136538, + yyc = 9359943.916562419, + yy = 13620706.07273678, + clustvar = "year", + hacsubtitleV2 = "and kernel-robust to common correlated disturbances (Driscoll-Kraay)", + hacsubtitleV = "Statistics robust to heteroskedasticity and clustering on year", + hacsubtitleB = "Estimates efficient for homoskedasticity only", + title = "OLS estimation", + predict = "ivreg2_p", + version = "03.1.07", + cmdline = "ivreg2 invest mvalue kstock, dkraay(5) small", + cmd = "ivreg2", + model = "ols", + depvar = "invest", + vcetype = "Robust", + vce = "cluster ac bartlett bw=5", + partialsmall = "small", + small = "small", + ivar = "company", + tvar = "year", + kernel = "Bartlett", + inexog = "mvalue kstock", + insts = "mvalue kstock", + properties = "b V", + ) + +params_table = np.array([ + .11556215606596, .0138548615926, 8.3409101775303, 8.967911239e-08, + .08656359748216, .14456071464977, 19, 2.0930240544083, + 0, .23067848754982, .0508450956047, 4.5368876743442, + .00022550505646, .12425847940049, .33709849569915, 19, + 2.0930240544083, 0, -42.714369016733, 12.570359466158, + -3.3980228752988, .00301793225123, -69.02443375196, -16.404304281506, + 19, 2.0930240544083, 0]).reshape(3,9) + +params_table_colnames = 'b se t pvalue ll ul df crit eform'.split() + +params_table_rownames = 'mvalue kstock _cons'.split() + +cov = np.array([ + .00019195718975, -.00037919048186, -.07154282413568, -.00037919048186, + .00258522374705, -.34445964542925, -.07154282413568, -.34445964542925, + 158.01393710842]).reshape(3,3) + +cov_colnames = 'mvalue kstock _cons'.split() + +cov_rownames = 'mvalue kstock _cons'.split() + + +results_nw_groupsum4_ivreg_small = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) + + +######################### WLS + +est = dict( + N = 200, + df_m = 2, + df_r = 197, + F = 158.2726503915062, + r2 = .7728224625923459, + rmse = 35.1783035325949, + mss = 829335.6968772264, + rss = 243790.0687679817, + r2_a = .7705160916541971, + ll = -994.3622459900876, + ll_0 = -1142.564592396746, + rank = 3, + cmdline = "regress invest mvalue kstock [aw=1/mvalue], robust", + title = "Linear regression", + marginsok = "XB default", + vce = "robust", + depvar = "invest", + cmd = "regress", + properties = "b V", + predict = "regres_p", + model = "ols", + estat_cmd = "regress_estat", + wexp = "= 1/mvalue", + wtype = "aweight", + vcetype = "Robust", + ) + +params_table = np.array([ + .11694307068216, .00768545583365, 15.2161528494, 4.371656843e-35, + .10178674436759, .13209939699674, 197, 1.9720790337785, + 0, .10410756769914, .00986959606725, 10.548310892334, + 6.565731752e-21, .08464394422305, .12357119117523, 197, + 1.9720790337785, 0, -9.2723336171089, 2.3458404391932, + -3.9526702081656, .00010767530575, -13.898516363832, -4.6461508703863, + 197, 1.9720790337785, 0]).reshape(3,9) + +params_table_colnames = 'b se t pvalue ll ul df crit eform'.split() + +params_table_rownames = 'mvalue kstock _cons'.split() + +cov = np.array([ + .00005906623137, 6.805470065e-06, -.01210153268743, 6.805470065e-06, + .00009740892653, -.01511046663892, -.01210153268743, -.01511046663892, + 5.502967366154]).reshape(3,3) + +cov_colnames = 'mvalue kstock _cons'.split() + +cov_rownames = 'mvalue kstock _cons'.split() + + +results_hc1_wls_small = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) + +est = dict( + N_clust = 10, + N = 200, + df_m = 2, + df_r = 9, + F = 22.90591346432732, + r2 = .7728224625923459, + rmse = 35.1783035325949, + mss = 829335.6968772264, + rss = 243790.0687679817, + r2_a = .7705160916541971, + ll = -994.3622459900876, + ll_0 = -1142.564592396746, + rank = 3, + cmdline = "regress invest mvalue kstock[aw=1/mvalue], vce(cluster company)", + title = "Linear regression", + marginsok = "XB default", + vce = "cluster", + depvar = "invest", + cmd = "regress", + properties = "b V", + predict = "regres_p", + model = "ols", + estat_cmd = "regress_estat", + wexp = "= 1/mvalue", + wtype = "aweight", + vcetype = "Robust", + clustvar = "company", + ) + +params_table = np.array([ + .11694307068216, .02609630113434, 4.4812124936848, .00152974827456, + .05790913614858, .17597700521575, 9, 2.2621571627982, + 0, .10410756769914, .02285882773869, 4.5543703679489, + .00137730504553, .05239730679689, .15581782860139, 9, + 2.2621571627982, 0, -9.2723336171089, 5.7204731422962, + -1.6209032690934, .13948922172294, -22.212942910549, 3.6682756763312, + 9, 2.2621571627982, 0]).reshape(3,9) + +params_table_colnames = 'b se t pvalue ll ul df crit eform'.split() + +params_table_rownames = 'mvalue kstock _cons'.split() + +cov = np.array([ + .00068101693289, -.00006496077364, -.08926939086077, -.00006496077364, + .00052252600559, -.0697116307149, -.08926939086077, -.0697116307149, + 32.723812971732]).reshape(3,3) + +cov_colnames = 'mvalue kstock _cons'.split() + +cov_rownames = 'mvalue kstock _cons'.split() + + +results_cluster_wls_small = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) + +est = dict( + N = 200, + inexog_ct = 2, + exexog_ct = 0, + endog_ct = 0, + partial_ct = 0, + N_clust = 10, + df_m = 2, + sdofminus = 0, + dofminus = 0, + r2 = .772822462592346, + rmse = 34.91346937558495, + rss = 243790.0687679817, + mss = 829335.6968772268, + r2_a = .7705160916541972, + F = 22.9059134643273, + Fp = .000294548654088, + Fdf1 = 2, + Fdf2 = 9, + yy = 1401938.856802022, + yyc = 1073125.765645209, + partialcons = 0, + cons = 1, + jdf = 0, + j = 0, + ll = -994.3622459900874, + rankV = 3, + rankS = 3, + rankxx = 3, + rankzz = 3, + r2c = .772822462592346, + r2u = .8261050632949187, + clustvar = "company", + hacsubtitleV = "Statistics robust to heteroskedasticity and clustering on company", + hacsubtitleB = "Estimates efficient for homoskedasticity only", + title = "OLS estimation", + predict = "ivreg2_p", + version = "03.1.07", + cmdline = "ivreg2 invest mvalue kstock [aw=1/mvalue], cluster(company)", + cmd = "ivreg2", + wtype = "aweight", + wexp = "=1/mvalue", + model = "ols", + depvar = "invest", + vcetype = "Robust", + vce = "robust cluster", + partialsmall = "small", + inexog = "mvalue kstock", + insts = "mvalue kstock", + properties = "b V", + ) + +params_table = np.array([ + .11694307068216, .02463240320082, 4.7475298990826, 2.059159576e-06, + .06866444755588, .16522169380844, np.nan, 1.9599639845401, + 0, .10410756769914, .02157653909108, 4.8250355286218, + 1.399783125e-06, .06181832816961, .14639680722867, np.nan, + 1.9599639845401, 0, -9.2723336171089, 5.3995775192484, + -1.7172331694572, .08593657730569, -19.855311086568, 1.31064385235, + np.nan, 1.9599639845401, 0]).reshape(3,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = 'mvalue kstock _cons'.split() + +cov = np.array([ + .00060675528745, -.00005787711139, -.07953498994782, -.00005787711139, + .00046554703915, -.06210991017966, -.07953498994782, -.06210991017966, + 29.155437386372]).reshape(3,3) + +cov_colnames = 'mvalue kstock _cons'.split() + +cov_rownames = 'mvalue kstock _cons'.split() + + +results_cluster_wls_large = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) diff --git a/statsmodels/regression/tests/results/results_macro_ols_robust.py b/statsmodels/regression/tests/results/results_macro_ols_robust.py new file mode 100644 index 0000000..b214fb7 --- /dev/null +++ b/statsmodels/regression/tests/results/results_macro_ols_robust.py @@ -0,0 +1,455 @@ +'''autogenerated and edited by hand + +''' + +import numpy as np + +est = dict( + N = 202, + df_m = 2, + df_r = 199, + F = 92.94502024547633, + r2 = .6769775594319385, + rmse = 10.7037959322668, + mss = 47782.65712176046, + rss = 22799.67822456265, + r2_a = .6737311027428123, + ll = -763.9752181602238, + ll_0 = -878.1085999159409, + rank = 3, + cmdline = "regress g_realinv g_realgdp L.realint, vce(robust)", + title = "Linear regression", + marginsok = "XB default", + vce = "robust", + depvar = "g_realinv", + cmd = "regress", + properties = "b V", + predict = "regres_p", + model = "ols", + estat_cmd = "regress_estat", + vcetype = "Robust", + ) + +params_table = np.array([ + 4.3742216647032, .32355452428856, 13.519272136038, 5.703151404e-30, + 3.7361862031101, 5.0122571262963, 199, 1.9719565442518, + 0, -.61399696947899, .32772840315987, -1.8734933059173, + .06246625509181, -1.2602631388273, .0322691998693, 199, + 1.9719565442518, 0, -9.4816727746549, 1.3690593206013, + -6.9256843965613, 5.860240898e-11, -12.181398261383, -6.7819472879264, + 199, 1.9719565442518, 0]).reshape(3,9) + +params_table_colnames = 'b se t pvalue ll ul df crit eform'.split() + +params_table_rownames = 'g_realgdp L.realint _cons'.split() + +cov = np.array([ + .1046875301876, -.00084230205782, -.34205013876828, -.00084230205782, + .10740590623772, -.14114426417778, -.34205013876828, -.14114426417778, + 1.8743234233252]).reshape(3,3) + +cov_colnames = 'g_realgdp L.realint _cons'.split() + +cov_rownames = 'g_realgdp L.realint _cons'.split() + +class Bunch(dict): + def __init__(self, **kw): + dict.__init__(self, kw) + self.__dict__ = self + + for i,att in enumerate(['params', 'bse', 'tvalues', 'pvalues']): + self[att] = self.params_table[:,i] + + +results_hc0 = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) + +###################### + +est = dict( + df_m = 2, + df_r = 199, + F = 89.45120275471848, + N = 202, + lag = 4, + rank = 3, + title = "Regression with Newey-West standard errors", + cmd = "newey", + cmdline = "newey g_realinv g_realgdp L.realint, lag(4)", + estat_cmd = "newey_estat", + predict = "newey_p", + vcetype = "Newey-West", + depvar = "g_realinv", + properties = "b V", + ) + +params_table = np.array([ + 4.3742216647032, .33125644884286, 13.204940401864, 5.282334606e-29, + 3.7209983425819, 5.0274449868245, 199, 1.9719565442518, + 0, -.61399696947899, .29582347593197, -2.0755518727668, + .03922090940364, -1.1973480087863, -.03064593017165, 199, + 1.9719565442518, 0, -9.4816727746549, 1.1859338087713, + -7.9951112823729, 1.036821797e-13, -11.820282709911, -7.1430628393989, + 199, 1.9719565442518, 0]).reshape(3,9) + +params_table_colnames = 'b se t pvalue ll ul df crit eform'.split() + +params_table_rownames = 'g_realgdp L.realint _cons'.split() + +cov = np.array([ + .10973083489998, .0003953117603, -.31803287070833, .0003953117603, + .08751152891247, -.06062111121649, -.31803287070833, -.06062111121649, + 1.4064389987868]).reshape(3,3) + +cov_colnames = 'g_realgdp L.realint _cons'.split() + +cov_rownames = 'g_realgdp L.realint _cons'.split() + +results_newey4 = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) + + + +est = dict( + N = 202, + inexog_ct = 2, + exexog_ct = 0, + endog_ct = 0, + partial_ct = 0, + bw = 5, + df_r = 199, + df_m = 2, + sdofminus = 0, + dofminus = 0, + r2 = .6769775594319388, + rmse = 10.7037959322668, + rss = 22799.67822456265, + mss = 47782.65712176055, + r2_a = .6737311027428126, + F = 89.45120275471867, + Fp = 1.93466284646e-28, + Fdf1 = 2, + Fdf2 = 199, + yy = 72725.68049533673, + partialcons = 0, + cons = 1, + jdf = 0, + j = 0, + ll = -763.9752181602239, + rankV = 3, + rankS = 3, + rankxx = 3, + rankzz = 3, + r2c = .6769775594319388, + r2u = .6864975608440735, + yyc = 70582.33534632321, + hacsubtitleV = "Statistics robust to heteroskedasticity and autocorrelation", + hacsubtitleB = "Estimates efficient for homoskedasticity only", + title = "OLS estimation", + predict = "ivreg2_p", + version = "02.2.08", + cmdline = "ivreg2 g_realinv g_realgdp L.realint, robust bw(5) small", + cmd = "ivreg2", + model = "ols", + depvar = "g_realinv", + vcetype = "Robust", + partialsmall = "small", + small = "small", + tvar = "qu", + kernel = "Bartlett", + inexog = "g_realgdp L.realint", + insts = "g_realgdp L.realint", + properties = "b V", + ) + +params_table = np.array([ + 4.3742216647032, .33125644884286, 13.204940401864, 5.282334606e-29, + 3.7209983425819, 5.0274449868245, 199, 1.9719565442518, + 0, -.61399696947899, .29582347593197, -2.0755518727668, + .03922090940364, -1.1973480087863, -.03064593017165, 199, + 1.9719565442518, 0, -9.4816727746549, 1.1859338087713, + -7.9951112823729, 1.036821797e-13, -11.820282709911, -7.1430628393989, + 199, 1.9719565442518, 0]).reshape(3,9) + +params_table_colnames = 'b se t pvalue ll ul df crit eform'.split() + +params_table_rownames = 'g_realgdp L.realint _cons'.split() + +cov = np.array([ + .10973083489998, .0003953117603, -.31803287070833, .0003953117603, + .08751152891247, -.06062111121649, -.31803287070833, -.06062111121649, + 1.4064389987868]).reshape(3,3) + +cov_colnames = 'g_realgdp L.realint _cons'.split() + +cov_rownames = 'g_realgdp L.realint _cons'.split() + +results_ivhac4_small = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) + +est = dict( + N = 202, + inexog_ct = 2, + exexog_ct = 0, + endog_ct = 0, + partial_ct = 0, + bw = 5, + df_m = 2, + sdofminus = 0, + dofminus = 0, + r2 = .6769775594319388, + rmse = 10.6240149746225, + rss = 22799.67822456265, + mss = 47782.65712176055, + r2_a = .6737311027428126, + F = 89.45120275471867, + Fp = 1.93466284646e-28, + Fdf1 = 2, + Fdf2 = 199, + yy = 72725.68049533673, + yyc = 70582.33534632321, + partialcons = 0, + cons = 1, + jdf = 0, + j = 0, + ll = -763.9752181602239, + rankV = 3, + rankS = 3, + rankxx = 3, + rankzz = 3, + r2c = .6769775594319388, + r2u = .6864975608440735, + hacsubtitleV = "Statistics robust to heteroskedasticity and autocorrelation", + hacsubtitleB = "Estimates efficient for homoskedasticity only", + title = "OLS estimation", + predict = "ivreg2_p", + version = "02.2.08", + cmdline = "ivreg2 g_realinv g_realgdp L.realint, robust bw(5)", + cmd = "ivreg2", + model = "ols", + depvar = "g_realinv", + vcetype = "Robust", + partialsmall = "small", + tvar = "qu", + kernel = "Bartlett", + inexog = "g_realgdp L.realint", + insts = "g_realgdp L.realint", + properties = "b V", + ) + +params_table = np.array([ + 4.3742216647032, .32878742225811, 13.304102798888, 2.191074740e-40, + 3.7298101585076, 5.0186331708989, np.nan, 1.9599639845401, + 0, -.61399696947899, .29361854972141, -2.0911382133777, + .03651567605333, -1.1894787521258, -.03851518683214, np.nan, + 1.9599639845401, 0, -9.4816727746549, 1.1770944273439, + -8.055150508231, 7.938107001e-16, -11.788735458652, -7.1746100906581, + np.nan, 1.9599639845401, 0]).reshape(3,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = 'g_realgdp L.realint _cons'.split() + +cov = np.array([ + .10810116903513, .00038944079356, -.31330961025227, .00038944079356, + .0862118527405, -.05972079768357, -.31330961025227, -.05972079768357, + 1.385551290884]).reshape(3,3) + +cov_colnames = 'g_realgdp L.realint _cons'.split() + +cov_rownames = 'g_realgdp L.realint _cons'.split() + +results_ivhac4_large = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) + +###################### + +est = dict( + N = 202, + inexog_ct = 2, + exexog_ct = 0, + endog_ct = 0, + partial_ct = 0, + df_r = 199, + df_m = 2, + sdofminus = 0, + dofminus = 0, + r2 = .6769775594319388, + rmse = 10.7037959322668, + rss = 22799.67822456265, + mss = 47782.65712176055, + r2_a = .6737311027428126, + F = 92.94502024547634, + Fp = 3.12523087723e-29, + Fdf1 = 2, + Fdf2 = 199, + yy = 72725.68049533673, + yyc = 70582.33534632321, + partialcons = 0, + cons = 1, + jdf = 0, + j = 0, + ll = -763.9752181602239, + rankV = 3, + rankS = 3, + rankxx = 3, + rankzz = 3, + r2c = .6769775594319388, + r2u = .6864975608440735, + hacsubtitleV = "Statistics robust to heteroskedasticity", + hacsubtitleB = "Estimates efficient for homoskedasticity only", + title = "OLS estimation", + predict = "ivreg2_p", + version = "02.2.08", + cmdline = "ivreg2 g_realinv g_realgdp L.realint, robust small", + cmd = "ivreg2", + model = "ols", + depvar = "g_realinv", + vcetype = "Robust", + partialsmall = "small", + small = "small", + inexog = "g_realgdp L.realint", + insts = "g_realgdp L.realint", + properties = "b V", + ) + +params_table = np.array([ + 4.3742216647032, .32355452428856, 13.519272136038, 5.703151404e-30, + 3.7361862031101, 5.0122571262963, 199, 1.9719565442518, + 0, -.61399696947899, .32772840315987, -1.8734933059173, + .06246625509181, -1.2602631388273, .0322691998693, 199, + 1.9719565442518, 0, -9.4816727746549, 1.3690593206013, + -6.9256843965613, 5.860240898e-11, -12.181398261383, -6.7819472879264, + 199, 1.9719565442518, 0]).reshape(3,9) + +params_table_colnames = 'b se t pvalue ll ul df crit eform'.split() + +params_table_rownames = 'g_realgdp L.realint _cons'.split() + +cov = np.array([ + .1046875301876, -.00084230205782, -.34205013876828, -.00084230205782, + .10740590623772, -.14114426417778, -.34205013876828, -.14114426417778, + 1.8743234233252]).reshape(3,3) + +cov_colnames = 'g_realgdp L.realint _cons'.split() + +cov_rownames = 'g_realgdp L.realint _cons'.split() + +results_ivhc0_small = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) + +################### + +est = dict( + N = 202, + inexog_ct = 2, + exexog_ct = 0, + endog_ct = 0, + partial_ct = 0, + df_m = 2, + sdofminus = 0, + dofminus = 0, + r2 = .6769775594319388, + rmse = 10.6240149746225, + rss = 22799.67822456265, + mss = 47782.65712176055, + r2_a = .6737311027428126, + F = 92.94502024547633, + Fp = 3.12523087723e-29, + Fdf1 = 2, + Fdf2 = 199, + yy = 72725.68049533673, + yyc = 70582.33534632321, + r2u = .6864975608440735, + partialcons = 0, + cons = 1, + jdf = 0, + j = 0, + ll = -763.9752181602239, + rankV = 3, + rankS = 3, + rankxx = 3, + rankzz = 3, + r2c = .6769775594319388, + hacsubtitleV = "Statistics robust to heteroskedasticity", + hacsubtitleB = "Estimates efficient for homoskedasticity only", + title = "OLS estimation", + predict = "ivreg2_p", + version = "02.2.08", + cmdline = "ivreg2 g_realinv g_realgdp L.realint, robust", + cmd = "ivreg2", + model = "ols", + depvar = "g_realinv", + vcetype = "Robust", + partialsmall = "small", + inexog = "g_realgdp L.realint", + insts = "g_realgdp L.realint", + properties = "b V", + ) + +params_table = np.array([ + 4.3742216647032, .32114290415293, 13.620795004769, 3.012701837e-42, + 3.7447931386729, 5.0036501907336, np.nan, 1.9599639845401, + 0, -.61399696947899, .32528567293437, -1.8875622892954, + .05908473670106, -1.2515451731172, .02355123415926, np.nan, + 1.9599639845401, 0, -9.4816727746549, 1.3588550094989, + -6.9776927695558, 3.000669464e-12, -12.144979653484, -6.8183658958253, + np.nan, 1.9599639845401, 0]).reshape(3,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = 'g_realgdp L.realint _cons'.split() + +cov = np.array([ + .10313276488778, -.00082979262132, -.33697018621231, -.00082979262132, + .10581076901637, -.13904806223455, -.33697018621231, -.13904806223455, + 1.8464869368401]).reshape(3,3) + +cov_colnames = 'g_realgdp L.realint _cons'.split() + +cov_rownames = 'g_realgdp L.realint _cons'.split() + +results_ivhc0_large = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) diff --git a/statsmodels/regression/tests/results/results_regression.py b/statsmodels/regression/tests/results/results_regression.py new file mode 100644 index 0000000..0e2610a --- /dev/null +++ b/statsmodels/regression/tests/results/results_regression.py @@ -0,0 +1,201 @@ +""" +Hard-coded results for test_regression +""" + +### REGRESSION MODEL RESULTS : OLS, GLS, WLS, AR### + +import numpy as np + +class Longley(object): + ''' + The results for the Longley dataset were obtained from NIST + + http://www.itl.nist.gov/div898/strd/general/dataarchive.html + + Other results were obtained from Stata + ''' + def __init__(self): + self.params = ( 15.0618722713733, -0.358191792925910E-01, + -2.02022980381683, -1.03322686717359, -0.511041056535807E-01, + 1829.15146461355, -3482258.63459582) + self.bse = (84.9149257747669, 0.334910077722432E-01, + 0.488399681651699, 0.214274163161675, 0.226073200069370, + 455.478499142212, 890420.383607373) + self.scale = 92936.0061673238 + self.rsquared = 0.995479004577296 + self.rsquared_adj = 0.99246501 + self.df_model = 6 + self.df_resid = 9 + self.ess = 184172401.944494 + self.ssr = 836424.055505915 + self.mse_model = 30695400.3240823 + self.mse_resid = 92936.0061673238 + self.mse_total = (self.ess + self.ssr) / (self.df_model + self.df_resid) + self.fvalue = 330.285339234588 + self.llf = -109.6174 + self.aic = 233.2349 + self.bic = 238.643 + self.pvalues = np.array([ 0.86314083, 0.31268106, 0.00253509, + 0.00094437, 0.8262118 , 0.0030368 , 0.0035604 ]) + #pvalues from rmodelwrap + self.resid = np.array((267.34003, -94.01394, 46.28717, -410.11462, + 309.71459, -249.31122, -164.04896, -13.18036, 14.30477, 455.39409, + -17.26893, -39.05504, -155.54997, -85.67131, 341.93151, + -206.75783)) + + # Obtained from R using m$residuals / sqrt(sum(m$residuals * m$residuals) / m$df.residual) + self.resid_pearson = np.array((0.87694426, -0.30838998, + 0.15183385, -1.34528175, 1.01594375, + -0.81780510, -0.53812289, -0.04323497, + 0.04692334, 1.49381010, -0.05664654, + -0.12811061, -0.51024404, -0.28102399, + 1.12162357, -0.67821900)) + + def conf_int(self): # a method to be consistent with sm + return [(-177.0291,207.1524), (-.111581,.0399428),(-3.125065, + -.9153928),(-1.517948,-.5485049),(-.5625173,.4603083), + (798.7873,2859.515),(-5496529,-1467987)] + + + HC0_se=(51.22035, 0.02458, 0.38324, 0.14625, 0.15821, + 428.38438, 832212) + HC1_se=(68.29380, 0.03277, 0.51099, 0.19499, 0.21094, + 571.17917, 1109615) + HC2_se=(67.49208, 0.03653, 0.55334, 0.20522, 0.22324, + 617.59295, 1202370) + HC3_se=(91.11939, 0.05562, 0.82213, 0.29879, 0.32491, + 922.80784, 1799477) + +class LongleyGls(object): + ''' + The following results were obtained from running the test script with R. + ''' + def __init__(self): + self.params = (6.73894832e-02, -4.74273904e-01, 9.48988771e+04) + self.bse = (1.07033903e-02, 1.53385472e-01, 1.39447723e+04) + self.llf = -121.4294962954981 + self.fittedvalues = [59651.8255, 60860.1385, 60226.5336, 61467.1268, + 63914.0846, 64561.9553, 64935.9028, 64249.1684, 66010.0426, + 66834.7630, 67612.9309, 67018.8998, 68918.7758, 69310.1280, + 69181.4207, 70598.8734] + self.resid = [671.174465, 261.861502, -55.533603, -280.126803, + -693.084618, -922.955349, 53.097212, -488.168351, 8.957367, + 1022.236970, 556.069099, -505.899787, -263.775842, 253.871965, + 149.579309, -47.873374] + self.scale = 542.443043098**2 + self.tvalues = [6.296088, -3.092039, 6.805337] + self.pvalues = [2.761673e-05, 8.577197e-03, 1.252284e-05] + self.bic = 253.118790021 + self.aic = 250.858992591 + +class CCardWLS(object): + def __init__(self): + self.params = [-2.6941851611, 158.426977524, -7.24928987289, + 60.4487736936, -114.10886935] + + self.bse = [3.807306306, 76.39115431, 9.724337321, 58.55088753, + 139.6874965] + #NOTE: we compute the scale differently than they do for analytic + #weights + self.scale = 189.0025755829012 ** 2 + self.rsquared = .2549143871187359 + self.rsquared_adj = .2104316639616448 + self.df_model = 4 + self.df_resid = 67 + self.ess = 818838.8079468152 + self.ssr = 2393372.229657007 + self.mse_model = 818838.8079468152 / 4 + self.mse_resid = 2393372.229657007 / 67 + self.mse_total = (self.ess + self.ssr) / 71. + self.fvalue = 5.730638077585917 + self.llf = -476.9792946562806 + self.aic = 963.95858931256 + self.bic = 975.34191990764 + # pvalues from R + self.pvalues = [0.4816259843354, 0.0419360764848, 0.4585895209814, + 0.3055904431658, 0.4168883565685] + self.resid = [-286.964904785, -128.071563721, -405.860900879, + -20.1363945007, -169.824432373, -82.6842575073, + -283.314300537, -52.1719360352, 433.822174072, + -190.607543945, -118.839683533, -133.97076416, + -85.5728149414, 66.8180847168, -107.571769714, + -149.883285522, -140.972610474, 75.9255981445, + -135.979736328, -415.701263428, 130.080032349, + 25.2313785553, 1042.14013672, -75.6622238159, + 177.336639404, 315.870544434, -8.72801017761, + 240.823760986, 54.6106033325, 65.6312484741, + -40.9218444824, 24.6115856171, -131.971786499, + 36.1587944031, 92.5052108765, -136.837036133, + 242.73274231, -65.0315093994, 20.1536407471, + -15.8874826431, 27.3513431549, -173.861785889, + -113.121154785, -37.1303443909, 1510.31530762, + 582.916931152, -17.8628063202, -132.77381897, + -108.896934509, 12.4665794373, -122.014572144, + -158.986968994, -175.798873901, 405.886505127, + 99.3692703247, 85.3450698853, -179.15007019, + -34.1245117188, -33.4909172058, -20.7287139893, + -116.217689514, 53.8837738037, -52.1533050537, + -100.632293701, 34.9342498779, -96.6685943604, + -367.32925415, -40.1300048828, -72.8692245483, + -60.8728256226, -35.9937324524, -222.944747925] + self.resid_pearson = \ + [-0.90569581, -0.75496938, -1.28663890, -0.11309411, -0.24746253, -0.47181831, + -1.02062293, -0.31403683, 1.62862142, -0.84973225, -0.42919669, -0.78007426, + -0.63913772, 0.29787637, -0.38364568, -0.21381846, -0.85577361, 0.54156452, + -0.48496031, -1.15374603, 0.41145856, 0.23996158, 2.70305838, -0.53171027, + 0.79057028, 1.82433320, -0.04150362, 0.97048328, 0.13667658, 0.26750667, + -0.12690810, 0.11703354, -0.72689772, 0.34160874, 0.71332338, -0.75079661, + 1.73137185, -0.39477348, 0.04107215, -0.11332274, 0.22952063, -0.88580496, + -0.67239515, -0.17656300, 4.48867723, 2.61499898, -0.16988320, -0.63136893, + -0.68135396, 0.06351572, -0.64467367, -0.37800911, -0.64304809, 1.88607184, + 0.57624742, 0.60875207, -0.78636761, -0.17897383, -0.21716827, -0.07885570, + -0.57566752, 0.25202879, -0.29176531, -0.54378274, 0.30203654, -0.57460072, + -0.72378394, -0.23853382, -0.17325464, -0.24121979, -0.10269489, -0.57826451] + + + def conf_int(self): # a method to be consistent with sm + return [( -10.2936, 4.90523), ( 5.949595, 310.9044), + (-26.65915, 12.16057), (-56.41929, 177.3168), + (-392.9263, 164.7085)] + +class LongleyRTO(object): + def __init__(self): + # Regression Through the Origin model + # from Stata, make sure you force double to replicate + self.params = [-52.993523, .07107319, -.42346599, -.57256869, + -.41420348, 48.417859] + self.bse = [129.5447812, .0301663805, .4177363573, .2789908665, + .3212848136, 17.68947719] + self.scale = 475.1655079819532**2 + self.rsquared = .9999670130705958 + self.rsquared_adj = .9999472209129532 + self.df_model = 6 + self.df_resid = 10 + self.ess = 68443718827.40025 + self.ssr = 2257822.599757476 + self.mse_model = 68443718827.40025 / 6 + self.mse_resid = 2257822.599757476 / 10 + self.mse_total = (self.ess + self.ssr) / 16. + self.fvalue = 50523.39573737409 + self.llf = -117.5615983965251 + self.aic = 247.123196793 + self.bic = 251.758729126 + self.pvalues = [0.6911082828354, 0.0402241925699, 0.3346175334102, + 0.0672506018552, 0.2263470345100, 0.0209367642585] + self.resid = [279.902740479, -130.324661255, 90.7322845459, + -401.312530518, -440.467681885, -543.54510498, + 201.321121216, 215.908889771, 73.0936813354, 913.216918945, + 424.824859619, -8.56475830078, -361.329742432, + 27.3456058502, 151.28956604, -492.499359131] + # Obtained from R using m$residuals / sqrt(sum(m$residuals * m$residuals) / m$df.residual) + self.resid_pearson = [0.58906369, -0.27427213, 0.19094881, + -0.84457419, -0.92697740, -1.14390695, + 0.42368630, 0.45438671, 0.15382784, + 1.92189233, 0.89405658, -0.01802479, + -0.76042924, 0.05754964, 0.31839340, + -1.03647964] + + def conf_int(self): + return [(-341.6373, 235.6502), ( .0038583, .1382881), + (-1.354241, .5073086), (-1.194199, .0490617), + (-1.130071, .3016637), ( 9.003248, 87.83247)] diff --git a/statsmodels/regression/tests/results/results_rls_R.csv b/statsmodels/regression/tests/results/results_rls_R.csv new file mode 100644 index 0000000..15ed379 --- /dev/null +++ b/statsmodels/regression/tests/results/results_rls_R.csv @@ -0,0 +1,202 @@ +"beta1","beta2","rec_resid","cusum" +20.0003289473666,0.0651315789473821,0.244954345907551,0.00193563605335298 +27.2660687432794,0.01385606874334,0.203040661455013,0.00354006900657476 +38.67905442175,-0.0670068027209533,0.270280443387117,0.00567583258651052 +39.7751950254108,-0.0745053702654907,0.241841533101339,0.00758687110650389 +29.1331849912345,0.00178883071581329,0.415203521341092,0.010867820878631 +18.3066265462468,0.07927114677407,0.397784568256463,0.0140111255990758 +10.3433466424157,0.136079854809809,0.176046592258926,0.0154022506668258 +6.85989720582705,0.160900850388106,0.0938882276325083,0.0161441580525371 +8.20327148258485,0.151342100522645,-0.0456169627715057,0.0157836915441441 +10.2511427486456,0.136788154897673,-0.100272366304063,0.0149913365171122 +10.9957699951444,0.131503464575536,-0.0503494741056537,0.0145934735725493 +11.3175707763209,0.129219955362651,-0.0340711516639038,0.0143242423846087 +10.6654524361781,0.13384553399014,0.0916855645039212,0.0150487442650235 +11.1159086294258,0.130659898477266,-0.0628046014785767,0.0145524605575922 +12.156386729997,0.123317221871426,-0.163723398534085,0.0132587137093544 +12.7326996394925,0.119259115732779,-0.103746490236991,0.0124389060583918 +13.4410659854797,0.114279885481247,-0.153770453685824,0.0112238076571287 +13.6569896037784,0.112764484973186,-0.0567551736551511,0.010775326696588 +14.1144011142444,0.109559572375609,-0.142266908565485,0.00965112962877052 +14.8158432176534,0.104659089244761,-0.237517649981024,0.00777425855343773 +15.6507453043316,0.0988444881094996,-0.308861421756066,0.00533362700952327 +16.1607873501768,0.0952992037891843,-0.223226013059955,0.00356968884658018 +16.5385918090731,0.0926777890181332,-0.19441899414506,0.00203338454820357 +16.6498010517627,0.0919074166590858,-0.0667305825844362,0.0015060776288953 +17.014471754413,0.0893917183701445,-0.228436397901914,-0.000299033139965743 +17.3460818756217,0.0871131227705724,-0.222144348908167,-0.00205442396270116 +17.3843661628274,0.0868509149764685,-0.0285352009690891,-0.00227990991430085 +17.1280162311825,0.0886104513064945,0.25234647696406,-0.000285861035769862 +16.6667783624255,0.091771289167083,0.510364610726381,0.00374705431103636 +16.3226842126683,0.0941262202407745,0.426298113691983,0.00711567386045231 +16.0455621834406,0.0960146002312399,0.353662998951508,0.00991032871326247 +15.85854585646,0.0972808365656299,0.234197517696713,0.0117609640109543 +15.733990938833,0.0981199698632186,0.160737119802357,0.0130311132016079 +15.5472155607408,0.0993737343759857,0.259408244690296,0.0150809643650939 +15.359100577245,0.100632613316582,0.285291985514453,0.0173353495683793 +15.1438436622109,0.102065903516274,0.340269721055102,0.0200241703667954 +14.9504525606908,0.103348110227141,0.326521533003193,0.0226043526008987 +14.8392679441337,0.104081295077877,0.196271786313286,0.0241552977145134 +14.5735361313145,0.105829575321111,0.527326289405741,0.0283222447179351 +14.2099750496454,0.108218482052348,0.819366249673146,0.034796899608796 +13.7874175847374,0.110990470726413,1.06025114550419,0.0431750336453371 +13.3518043480087,0.113834887397852,1.14841860382417,0.0522498693893917 +12.8346569963456,0.117209228903986,1.52569799370484,0.0643059773641323 +12.3367186457394,0.120451583177883,1.5951492085586,0.0769108907700321 +11.9185230337974,0.123154390987991,1.33821597224724,0.0874855105974843 +11.5170468495664,0.125739357672303,1.36169336194335,0.0982456494112033 +11.266515248211,0.127342275661413,0.867738614053158,0.105102544070593 +11.0821361490573,0.128514376720014,0.653394030490114,0.11026568186991 +10.9290164719613,0.129484865504103,0.584740179652795,0.1148863150307 +10.8178656341354,0.130186652348879,0.450648727628674,0.118447353808616 +10.815540474966,0.130201229968511,0.00958837887806173,0.118523121445156 +10.8387662708446,0.130056193898848,-0.101729973630018,0.117719248364499 +10.945328087949,0.129395696123524,-0.474099262131996,0.113972902810797 +11.1085265304914,0.128391482155469,-0.742321517670144,0.108107057534779 +11.080805458722,0.128561827573399,0.139072384001631,0.109206011380655 +11.0781776871062,0.12857788516236,0.013749780020619,0.109314662524749 +10.8745917334063,0.129819717290388,1.15962459122506,0.118478048292875 +10.6044182322985,0.131458118663421,1.59589325604434,0.131088841182699 +10.2429003246852,0.133641433952644,2.25631514703675,0.148918306220968 +9.80473923277081,0.136280688202692,2.92799599642778,0.172055412010052 +9.25022363539014,0.139607925830564,3.90633237289927,0.202923359052794 +8.63802754477139,0.143273443914073,4.61111158580915,0.239360491035316 +8.05948905426918,0.146726439925444,4.59843304875835,0.275697436865482 +7.5349394264988,0.149825974640662,4.13302051978024,0.3083566799489 +7.00821909152587,0.152931416451406,4.42128714242792,0.343293813900952 +6.49494054475082,0.155945401893927,4.5048685993743,0.378891410850131 +6.0988192774942,0.15825221854616,3.50323010316598,0.406574032547477 +5.69919719959164,0.160571875780665,3.72091144830362,0.435976778287651 +5.32563871725321,0.162726735932826,3.5667996236933,0.464161728104023 +5.00672684903167,0.164551848094488,3.08141385283983,0.488511146060907 +4.71008920605094,0.166234013127225,2.87502733736156,0.511229692033032 +4.43756588678741,0.16777195359686,2.74961925042266,0.532957259814663 +4.21384227381131,0.169025609768913,2.30707054752226,0.551187795439038 +4.03276576900703,0.170031456375408,1.88475608800807,0.566081190460091 +3.84792927359839,0.171052217995977,1.99083244967449,0.581812803840935 +3.65581679781767,0.172104735954175,2.10565713861364,0.598451765106961 +3.43271594969956,0.173319986565316,2.53435920069987,0.618478341989467 +3.19551592377813,0.174605121939789,2.80068054404111,0.640609397533247 +2.94174918379039,0.175967331891713,3.02350395609635,0.664501209875634 +2.64977582541515,0.177521141926778,3.53325213433404,0.69242106649816 +2.27804795107949,0.179492726795484,4.75687341104855,0.730010012477248 +1.81207106307359,0.181952378499593,6.22749964103012,0.779219887822632 +1.20006257623398,0.185189423913085,8.93386320080931,0.849815523279275 +0.642700133221933,0.188106533453904,8.13393137937316,0.914090075237443 +0.162044794069806,0.190586654584145,6.84967429813633,0.968216392025478 +-0.388232157105243,0.193419998799898,8.33645466109985,1.03409128858787 +-0.830929504473958,0.195666868854773,6.55661128043321,1.08590181326015 +-1.36043838894161,0.198355531717544,8.48597347596573,1.15295821165562 +-1.91508980963037,0.201167866402037,9.45426514385162,1.22766607773816 +-2.33168037879134,0.203252287238571,7.00041047744203,1.28298351600692 +-2.6861602881266,0.205018905852968,6.23609678997191,1.33226132626232 +-3.11696629519342,0.207164092379631,8.06821700769127,1.39601660142799 +-3.380586761282,0.208457026967588,4.81782679243833,1.43408720272189 +-3.47550271526036,0.208917537856196,1.74135519064351,1.4478474398641 +-3.43518793631723,0.20872442486799,-0.734649496547034,1.44204221911235 +-3.29063290033468,0.20803953649519,-2.65151294543016,1.42108989008103 +-3.11250951812149,0.20720138448128,-3.37731816971661,1.39440222798332 +-2.93711028388834,0.206380820700801,-3.45884008330213,1.36707037745739 +-2.73891519437972,0.205460331097488,-4.02680824821257,1.33525042669758 +-2.54407370559115,0.204559368575348,-4.14575468573189,1.30249055788068 +-2.39053644758188,0.203850927117784,-3.45709420414838,1.27517250334038 +-2.15879795354626,0.202792578446064,-5.27251552247232,1.23350893905721 +-1.88564352691945,0.201557490834808,-6.29472546535112,1.18376784337854 +-1.50072985975385,0.199840034833206,-8.83289566450933,1.11397005620157 +-1.01998602735263,0.197721642567706,-11.0512754269927,1.02664257045003 +-0.530741824639045,0.195584625082435,-11.5172616043355,0.935632848966399 +0.126087783919003,0.192750446012934,-15.5482513416115,0.812770134480102 +0.946410908708773,0.189270304626056,-19.0555049685026,0.662193004300093 +1.86205593933885,0.185436633202073,-21.3782931153237,0.493261137588954 +2.94062744320269,0.180998996286405,-24.7634112972474,0.297579972866728 +3.93046978361501,0.176952871875341,-23.8543722535639,0.109082059947364 +4.7236004422528,0.173709372038306,-20.7823421335204,-0.0551405855326269 +5.4675996884093,0.170687823308056,-20.2975626887207,-0.215532490358468 +6.07736475879185,0.168211429838999,-17.8991553796871,-0.356972113930467 +6.65108884942456,0.165897192554224,-17.4682758358605,-0.495006915364721 +7.19807710004944,0.163707606768037,-17.1913300740697,-0.630853283687656 +7.64857293059005,0.161906308033814,-15.0423509578624,-0.749718359272868 +8.02400343300067,0.160407406629327,-13.2511610676823,-0.854429402534267 +8.27697105170115,0.159393021979789,-9.64098997283795,-0.930612773408131 +8.46390802433729,0.158642656136866,-7.55191041918006,-0.990288179553298 +8.64850604379691,0.157906542316743,-7.6524659626792,-1.05075817839957 +8.8032807335877,0.157293428596627,-6.57881654114708,-1.10274416965953 +8.95446233254623,0.15669939876546,-6.54733003621288,-1.15448135368188 +9.07158780840541,0.15624055040851,-5.26781371598019,-1.1961077641594 +9.1515744845053,0.155929537510679,-3.66905719708923,-1.22510075616445 +9.22290256262306,0.155653781395773,-3.35718417818991,-1.25162931890121 +9.33420751522502,0.155228728073273,-5.2451661212583,-1.29307676745542 +9.47688301586101,0.154691209393847,-6.70164388358391,-1.34603334379105 +9.64454275757949,0.154066975097651,-7.90326731732296,-1.40848518191631 +9.89285589272581,0.153162353373709,-11.3158347636997,-1.4979032229037 +10.22362756085,0.151981737573662,-14.650501628764,-1.61367189419335 +10.5746835692363,0.150742722870912,-15.6856020630384,-1.73761995789998 +11.0290368525466,0.149174121064393,-19.6221318472333,-1.89267458943318 +11.521525763197,0.147496618191182,-21.3110872218343,-2.06107539330502 +12.0097551690352,0.145847744373501,-21.6105380566535,-2.2318424660011 +12.5809716926057,0.143952306536491,-24.9283948322494,-2.42882733520498 +13.1820104607476,0.14198353337863,-26.3928121759554,-2.63738407098313 +13.7756629255838,0.140055020571329,-26.7444571357352,-2.84871951501245 +14.3220873542119,0.13828754257827,-25.6466882741224,-3.05138035896919 +14.8207276171901,0.13668165953396,-24.3380973264228,-3.24370068086631 +15.2481159052797,0.135304978578286,-22.0327586677785,-3.41780415257313 +15.6181829346188,0.134113727245657,-20.031239855858,-3.57609156696746 +15.9254888584187,0.133123389933797,-17.5347244815675,-3.71465144744797 +16.182155368207,0.132294410691331,-15.4547144169649,-3.83677503055452 +16.3834151607406,0.131641182247482,-12.8669102455973,-3.93844971313409 +16.5204878574538,0.131192230298616,-9.39682632316524,-4.01270369605823 +16.63080123604,0.130831250954667,-7.83625560015622,-4.0746260057309 +16.6978177388739,0.130609927017838,-5.07710225196627,-4.11474540891623 +16.701984857604,0.130595862027892,-0.347660671770127,-4.11749263321274 +16.6854899363512,0.130651769492848,1.43643763310767,-4.10614186308969 +16.6411402735019,0.1308047247492,4.1675554165708,-4.07320972429145 +16.5970272924035,0.130956482780881,4.23560772792058,-4.03973983423644 +16.5434552195032,0.131140920196373,5.29688512305167,-3.99788370069179 +16.4980678409499,0.131295685501156,4.49788774495942,-3.96234126664833 +16.4550533870677,0.131442089660633,4.35700314664811,-3.92791210661862 +16.4034997284221,0.131617772322878,5.37560925845634,-3.88543389276675 +16.3600988160341,0.131763871175012,4.50159941501498,-3.84986212900329 +16.3247393980859,0.131881384461121,3.64239912793104,-3.82107978980207 +16.2845302752546,0.132014427026232,4.20163109569142,-3.78787838403979 +16.2354404393816,0.132177427292469,5.30582134897501,-3.74595163618939 +16.1798773405667,0.132361174237754,6.09144757743956,-3.697816848034 +16.1369672582067,0.132500057996333,4.56732062189424,-3.66172575346613 +16.0729892527298,0.132709048388341,7.13935329958349,-3.60531038515291 +15.9868687893218,0.132993853448599,10.1342793363433,-3.52522902801063 +15.8911356599786,0.133312141181979,11.6651084758568,-3.43305101643673 +15.785185002403,0.133664851955115,13.2307698405521,-3.32850110521918 +15.6905768998578,0.133973040333207,11.4667001799168,-3.23789092151739 +15.6133391245925,0.134217442405614,8.91912747186154,-3.16741172820068 +15.5640712059174,0.13436901282478,5.42501709786526,-3.1245430922278 +15.5443250145019,0.134428290724675,2.0902928832644,-3.10802553973481 +15.5052812966114,0.134546068190848,4.28655544877293,-3.07415305937281 +15.4770175815522,0.134630205681346,3.07016536757968,-3.04989252725926 +15.4444079562019,0.134726861461024,3.58608824982803,-3.02155515818277 +15.4270366339921,0.134777267890843,1.85031118379933,-3.00693394775266 +15.4316347413337,0.134764175609174,-0.477068569778691,-3.01070375685796 +15.485223969148,0.134616348041038,-5.22556993240566,-3.0519963557829 +15.5377720379079,0.134472416205775,-5.15548845343067,-3.09273516891207 +15.5864363653653,0.134339998564693,-4.8096502231334,-3.13074115872793 +15.6597153950738,0.134144325745554,-7.04643728132906,-3.18642230208099 +15.7245766055152,0.133972149207703,-6.29666671180733,-3.23617873754313 +15.7994245842376,0.133776242802017,-7.16413965150234,-3.29278996829851 +15.868636133975,0.133595774179426,-6.72874484385436,-3.34596069717585 +15.9023375683116,0.133507356204151,-3.42152965903116,-3.37299771969162 +15.9376135653167,0.133415388659391,-3.60800397413116,-3.40150826743101 +15.9393738216715,0.133410826950409,-0.181502904584986,-3.4029425084305 +15.946239217832,0.133393106351883,-0.717507717778203,-3.40861227436972 +15.9406611757132,0.133407505145555,0.597384933183044,-3.40389172201489 +15.90456013034,0.133501495817669,4.05122277456845,-3.37187884698887 +15.8771653544801,0.133572808058213,3.14316508126937,-3.34704146910768 +15.8412573150016,0.133665967099135,4.17494417410317,-3.31405094414194 +15.7935359722084,0.133789167478241,5.59834503955845,-3.26981266595369 +15.7268054682595,0.133962833301512,8.16726022036199,-3.20527474856718 +15.6569651811967,0.13414318189471,8.55473897390291,-3.1376749632947 +15.5618045186239,0.134389293082345,11.9466775679243,-3.04327198492507 +15.4642740054136,0.134640099683783,12.314988670809,-2.94595860197799 +15.3556432691781,0.134913622023805,13.2582887882595,-2.84119123527038 +15.3324002785773,0.134969408327903,2.54655478870887,-2.82106828851228 +15.4991813437282,0.134592165940367,-15.7222457854785,-2.94530591193266 +15.6789718790788,0.134188841013154,-16.9736944902724,-3.07943251782015 +15.9359054652393,0.133628746925532,-22.7675615343864,-3.25934242221321 +16.1941692821757,0.133070741096307,-22.8916803003747,-3.44023311654675 diff --git a/statsmodels/regression/tests/results/results_rls_stata.csv b/statsmodels/regression/tests/results/results_rls_stata.csv new file mode 100644 index 0000000..a2c93cd --- /dev/null +++ b/statsmodels/regression/tests/results/results_rls_stata.csv @@ -0,0 +1,204 @@ +rr,cusum,cusum2,uw,lw,uww,lww +,,,,,, +,,,,,, +,,,,,, +.20304158,.0226941,2.44e-06,13.54081,-13.54081,.12823,-.12823 +.2702816,.0529036,6.77e-06,13.67488,-13.67488,.1332551,-.1232049 +.24184042,.0799343,.0000102,13.80895,-13.80895,.1382803,-.1181797 +.41520333,.1263418,.0000205,13.94301,-13.94301,.1433054,-.1131546 +.39778414,.1708024,.0000298,14.07708,-14.07708,.1483305,-.1081295 +.17604447,.190479,.0000317,14.21115,-14.21115,.1533556,-.1031044 +.0938885,.200973,.0000322,14.34522,-14.34522,.1583808,-.0980792 +-.04561871,.1958742,.0000323,14.47928,-14.47928,.1634059,-.0930541 +-.10027123,.1846668,.0000329,14.61335,-14.61335,.168431,-.088029 +-.05035009,.1790391,.0000331,14.74742,-14.74742,.1734561,-.0830039 +-.03407203,.1752309,.0000331,14.88149,-14.88149,.1784813,-.0779787 +.09168515,.1854786,.0000336,15.01555,-15.01555,.1835064,-.0729536 +-.0628044,.1784589,.0000339,15.14962,-15.14962,.1885315,-.0679285 +-.16372342,.1601594,.0000354,15.28369,-15.28369,.1935566,-.0629034 +-.10374629,.1485636,.0000361,15.41776,-15.41776,.1985818,-.0578782 +-.15377103,.1313765,.0000375,15.55182,-15.55182,.2036069,-.0528531 +-.0567542,.1250331,.0000377,15.68589,-15.68589,.208632,-.047828 +-.14226659,.1091319,.0000389,15.81996,-15.81996,.2136571,-.0428029 +-.23751768,.0825844,.0000422,15.95403,-15.95403,.2186823,-.0377777 +-.3088606,.0480628,.0000479,16.08809,-16.08809,.2237074,-.0327526 +-.2232256,.0231128,.0000508,16.22216,-16.22216,.2287325,-.0277275 +-.19442033,.0013823,.0000531,16.35623,-16.35623,.2337576,-.0227024 +-.06673149,-.0060764,.0000533,16.4903,-16.4903,.2387828,-.0176772 +-.22843692,-.0316089,.0000564,16.62436,-16.62436,.2438079,-.0126521 +-.22214566,-.0564383,.0000593,16.75843,-16.75843,.248833,-.007627 +-.0285363,-.0596278,.0000594,16.8925,-16.8925,.2538581,-.0026019 +.25234739,-.0314227,.0000632,17.02657,-17.02657,.2588833,.0024233 +.51036376,.0256209,.0000786,17.16063,-17.16063,.2639084,.0074484 +.42630054,.0732688,.0000894,17.2947,-17.2947,.2689335,.0124735 +.35366206,.1127979,.0000968,17.42877,-17.42877,.2739587,.0174986 +.23419873,.1389744,.0001,17.56284,-17.56284,.2789838,.0225238 +.16073747,.1569401,.0001015,17.6969,-17.6969,.2840089,.0275489 +.25940672,.1859342,.0001055,17.83097,-17.83097,.289034,.032574 +.28529326,.2178216,.0001104,17.96504,-17.96504,.2940592,.0375992 +.34027138,.255854,.0001172,18.09911,-18.09911,.2990843,.0426243 +.32652083,.2923494,.0001235,18.23317,-18.23317,.3041094,.0476494 +.1962729,.3142869,.0001258,18.36724,-18.36724,.3091345,.0526745 +.52732584,.3732265,.0001423,18.50131,-18.50131,.3141596,.0576996 +.81936588,.4648075,.0001821,18.63537,-18.63537,.3191848,.0627248 +1.0602511,.5833125,.0002487,18.76944,-18.76944,.3242099,.0677499 +1.1484205,.7116722,.0003268,18.90351,-18.90351,.329235,.072775 +1.5256982,.8822004,.0004647,19.03758,-19.03758,.3342601,.0778001 +1.5951505,1.060491,.0006155,19.17164,-19.17164,.3392853,.0828253 +1.3382179,1.210065,.0007216,19.30571,-19.30571,.3443104,.0878504 +1.3616943,1.362262,.0008314,19.43978,-19.43978,.3493355,.0928755 +.86773648,1.45925,.0008761,19.57385,-19.57385,.3543606,.0979007 +.65339285,1.53228,.0009014,19.70791,-19.70791,.3593858,.1029258 +.58474164,1.597637,.0009216,19.84198,-19.84198,.3644109,.1079509 +.45064816,1.648006,.0009336,19.97605,-19.97605,.369436,.112976 +.00958712,1.649078,.0009337,20.11012,-20.11012,.3744611,.1180012 +-.10173146,1.637707,.0009343,20.24418,-20.24418,.3794863,.1230263 +-.47409877,1.584717,.0009476,20.37825,-20.37825,.3845114,.1280514 +-.7423211,1.501747,.0009802,20.51232,-20.51232,.3895365,.1330765 +.13907311,1.517291,.0009814,20.64639,-20.64639,.3945617,.1381017 +.01375003,1.518828,.0009814,20.78045,-20.78045,.3995868,.1431268 +1.1596226,1.64844,.0010611,20.91452,-20.91452,.4046119,.1481519 +1.5958938,1.826814,.001212,21.04859,-21.04859,.409637,.153177 +2.2563117,2.079004,.0015136,21.18266,-21.18266,.4146622,.1582021 +2.9279967,2.406268,.0020215,21.31672,-21.31672,.4196873,.1632273 +3.9063339,2.842881,.0029256,21.45079,-21.45079,.4247124,.1682524 +4.6111115,3.358268,.0041854,21.58486,-21.58486,.4297375,.1732775 +4.5984313,3.872237,.0054382,21.71893,-21.71893,.4347627,.1783026 +4.1330187,4.334188,.0064503,21.85299,-21.85299,.4397878,.1833278 +4.4212893,4.828358,.0076085,21.98706,-21.98706,.4448129,.1883529 +4.5048686,5.33187,.0088109,22.12113,-22.12113,.449838,.193378 +3.5032266,5.723428,.009538,22.2552,-22.2552,.4548632,.1984031 +3.7209096,6.139317,.0103583,22.38926,-22.38926,.4598883,.2034283 +3.5668012,6.53798,.0111121,22.52333,-22.52333,.4649134,.2084534 +3.0814165,6.882392,.0116746,22.6574,-22.6574,.4699385,.2134785 +2.8750272,7.203735,.0121644,22.79147,-22.79147,.4749637,.2185037 +2.7496164,7.511062,.0126123,22.92553,-22.92553,.4799888,.2235288 +2.3070702,7.768925,.0129277,23.0596,-23.0596,.4850139,.2285539 +1.8847579,7.979585,.0131381,23.19367,-23.19367,.4900391,.233579 +1.9908349,8.202102,.013373,23.32774,-23.32774,.4950642,.2386042 +2.105656,8.437452,.0136356,23.4618,-23.4618,.5000893,.2436293 +2.5343597,8.720719,.0140162,23.59587,-23.59587,.5051144,.2486544 +2.8006793,9.033753,.0144809,23.72994,-23.72994,.5101395,.2536795 +3.0235025,9.371693,.0150226,23.86401,-23.86401,.5151647,.2587047 +3.53325,9.766605,.0157622,23.99807,-23.99807,.5201898,.2637298 +4.7568726,10.29828,.0171029,24.13214,-24.13214,.5252149,.2687549 +6.227502,10.99434,.0194006,24.26621,-24.26621,.5302401,.27378 +8.9338671,11.99288,.0241295,24.40027,-24.40027,.5352651,.2788052 +8.1339298,12.90201,.0280494,24.53434,-24.53434,.5402903,.2838303 +6.8496713,13.66761,.0308292,24.66841,-24.66841,.5453154,.2888554 +8.3364544,14.59938,.0349468,24.80248,-24.80248,.5503405,.2938806 +6.5566113,15.33221,.0374938,24.93654,-24.93654,.5553657,.2989057 +8.4859752,16.2807,.0417604,25.07061,-25.07061,.5603908,.3039308 +9.4542677,17.33741,.0470562,25.20468,-25.20468,.5654159,.3089559 +7.0004094,18.11985,.0499597,25.33875,-25.33875,.5704411,.3139811 +6.2360956,18.81686,.0522638,25.47281,-25.47281,.5754662,.3190062 +8.0682169,19.71865,.0561206,25.60688,-25.60688,.5804913,.3240313 +4.8178254,20.25714,.0574959,25.74095,-25.74095,.5855164,.3290564 +1.7413544,20.45177,.0576755,25.87502,-25.87502,.5905415,.3340816 +-.7346488,20.36966,.0577075,26.00908,-26.00908,.5955667,.3391067 +-2.6515074,20.0733,.0581241,26.14315,-26.14315,.6005918,.3441318 +-3.3773178,19.69582,.0587999,26.27722,-26.27722,.6056169,.3491569 +-3.4588369,19.30922,.0595087,26.41129,-26.41129,.6106421,.3541821 +-4.0268058,18.85914,.0604694,26.54535,-26.54535,.6156672,.3592072 +-4.1457617,18.39577,.0614877,26.67942,-26.67942,.6206923,.3642323 +-3.4570982,18.00936,.0621959,26.81349,-26.81349,.6257174,.3692574 +-5.2725184,17.42005,.0638429,26.94756,-26.94756,.6307425,.3742826 +-6.2947299,16.71649,.0661906,27.08162,-27.08162,.6357676,.3793077 +-8.8328932,15.72923,.0708131,27.21569,-27.21569,.6407928,.3843328 +-11.051272,14.49402,.0780492,27.34976,-27.34976,.6458179,.389358 +-11.517264,13.20673,.0859083,27.48383,-27.48383,.650843,.394383 +-15.548254,11.46889,.1002315,27.61789,-27.61789,.6558682,.3994082 +-19.055501,9.339044,.1217453,27.75196,-27.75196,.6608933,.4044333 +-21.3783,6.949577,.1488237,27.88603,-27.88603,.6659184,.4094584 +-24.763411,4.181755,.1851564,28.0201,-28.0201,.6709436,.4144836 +-23.854377,1.515535,.2188706,28.15416,-28.15416,.6759686,.4195087 +-20.782338,-.8073198,.2444603,28.28823,-28.28823,.6809938,.4245338 +-20.297563,-3.075991,.2688701,28.4223,-28.4223,.6860189,.429559 +-17.899156,-5.076591,.2878521,28.55637,-28.55637,.691044,.4345841 +-17.468273,-7.029032,.3059312,28.69043,-28.69043,.6960692,.4396092 +-17.191332,-8.950518,.3234415,28.8245,-28.8245,.7010943,.4446343 +-15.042346,-10.63181,.3368478,28.95857,-28.95857,.7061194,.4496594 +-13.251165,-12.1129,.3472514,29.09264,-29.09264,.7111446,.4546846 +-9.6409921,-13.19048,.3527585,29.2267,-29.2267,.7161697,.4597097 +-7.551907,-14.03456,.3561375,29.36077,-29.36077,.7211948,.4647348 +-7.6524592,-14.88988,.3596071,29.49484,-29.49484,.72622,.46976 +-6.5788193,-15.6252,.3621714,29.62891,-29.62891,.731245,.4747851 +-6.5473367,-16.357,.3647113,29.76297,-29.76297,.7362702,.4798102 +-5.2678084,-16.94579,.3663554,29.89704,-29.89704,.7412953,.4848353 +-3.66906,-17.35588,.367153,30.03111,-30.03111,.7463204,.4898604 +-3.3571877,-17.73112,.3678208,30.16517,-30.16517,.7513456,.4948856 +-5.2451606,-18.31737,.3694508,30.29924,-30.29924,.7563707,.4999107 +-6.7016457,-19.06642,.3721118,30.43331,-30.43331,.7613958,.5049359 +-7.9032685,-19.94977,.3758125,30.56738,-30.56738,.7664209,.5099609 +-11.315834,-21.21455,.3833991,30.70144,-30.70144,.771446,.5149861 +-14.650504,-22.85205,.3961161,30.83551,-30.83551,.7764712,.5200112 +-15.685601,-24.60524,.4106934,30.96958,-30.96958,.7814963,.5250363 +-19.622131,-26.79841,.4335057,31.10365,-31.10365,.7865214,.5300615 +-21.311085,-29.18037,.4604141,31.23771,-31.23771,.7915466,.5350866 +-21.610529,-31.59579,.488084,31.37178,-31.37178,.7965717,.5401117 +-24.928394,-34.38205,.5249025,31.50585,-31.50585,.8015968,.5451369 +-26.392804,-37.33199,.5661737,31.63992,-31.63992,.8066219,.550162 +-26.74445,-40.32124,.608552,31.77398,-31.77398,.8116471,.5551871 +-25.646688,-43.18779,.6475227,31.90805,-31.90805,.8166722,.5602123 +-24.338104,-45.90807,.6826182,32.04212,-32.04212,.8216973,.5652373 +-22.032761,-48.37069,.7113799,32.17619,-32.17619,.8267224,.5702625 +-20.031242,-50.60959,.7351533,32.31025,-32.31025,.8317476,.5752876 +-17.534726,-52.56946,.7533702,32.44432,-32.44432,.8367727,.5803127 +-15.45471,-54.29684,.7675216,32.57839,-32.57839,.8417978,.5853379 +-12.866916,-55.73499,.7773306,32.71246,-32.71246,.8468229,.590363 +-9.3968278,-56.78527,.7825623,32.84652,-32.84652,.8518481,.5953881 +-7.8362546,-57.66114,.7862005,32.98059,-32.98059,.8568732,.6004133 +-5.0771041,-58.22861,.7877278,33.11466,-33.11466,.8618983,.6054384 +-.34765929,-58.26747,.7877349,33.24873,-33.24873,.8669235,.6104635 +1.4364328,-58.10691,.7878572,33.38279,-33.38279,.8719485,.6154886 +4.1675445,-57.64111,.7888862,33.51686,-33.51686,.8769737,.6205137 +4.2356097,-57.16769,.7899492,33.65093,-33.65093,.8819988,.6255389 +5.2968869,-56.57565,.7916115,33.785,-33.785,.8870239,.630564 +4.4978863,-56.07292,.7928101,33.91906,-33.91906,.8920491,.6355891 +4.3570048,-55.58594,.7939349,34.05313,-34.05313,.8970742,.6406143 +5.3756079,-54.9851,.795647,34.1872,-34.1872,.9020993,.6456394 +4.5015951,-54.48196,.7968476,34.32127,-34.32127,.9071245,.6506645 +3.6423914,-54.07484,.7976336,34.45533,-34.45533,.9121495,.6556896 +4.2016237,-53.60522,.7986796,34.5894,-34.5894,.9171747,.6607147 +5.3058269,-53.01219,.8003476,34.72347,-34.72347,.9221998,.6657399 +6.0914494,-52.33134,.802546,34.85754,-34.85754,.9272249,.670765 +4.5673224,-51.82085,.803782,34.9916,-34.9916,.9322501,.6757901 +7.1393493,-51.02288,.8068019,35.12567,-35.12567,.9372752,.6808153 +10.134278,-49.89017,.812887,35.25974,-35.25974,.9423003,.6858404 +11.665111,-48.58635,.8209491,35.39381,-35.39381,.9473255,.6908655 +13.230785,-47.10754,.8313208,35.52787,-35.52787,.9523506,.6958906 +11.466692,-45.8259,.839111,35.66194,-35.66194,.9573757,.7009158 +8.9191298,-44.829,.8438243,35.79601,-35.79601,.9624009,.7059409 +5.4250249,-44.22264,.845568,35.93008,-35.93008,.9674259,.710966 +2.0902884,-43.98901,.8458269,36.06414,-36.06414,.9724511,.7159911 +4.2865572,-43.5099,.8469156,36.19821,-36.19821,.9774762,.7210162 +3.0701673,-43.16674,.847474,36.33228,-36.33228,.9825013,.7260414 +3.5860871,-42.76592,.848236,36.46635,-36.46635,.9875265,.7310665 +1.8503127,-42.55911,.8484389,36.60041,-36.60041,.9925516,.7360916 +-.47707287,-42.61243,.8484523,36.73448,-36.73448,.9975767,.7411168 +-5.2255741,-43.1965,.8500702,36.86855,-36.86855,1.002602,.7461419 +-5.1554985,-43.77274,.851645,37.00262,-37.00262,1.007627,.751167 +-4.8096412,-44.31031,.8530155,37.13668,-37.13668,1.012652,.7561921 +-7.0464378,-45.0979,.8559573,37.27075,-37.27075,1.017677,.7612172 +-6.2966584,-45.80168,.8583064,37.40482,-37.40482,1.022702,.7662424 +-7.1641344,-46.60242,.8613473,37.53888,-37.53888,1.027727,.7712675 +-6.7287364,-47.35449,.8640299,37.67295,-37.67295,1.032753,.7762926 +-3.4215312,-47.73692,.8647235,37.80702,-37.80702,1.037778,.7813178 +-3.6080018,-48.14019,.8654947,37.94109,-37.94109,1.042803,.7863429 +-.18150405,-48.16048,.8654967,38.07515,-38.07515,1.047828,.791368 +-.71750861,-48.24067,.8655272,38.20922,-38.20922,1.052853,.7963932 +.59738383,-48.1739,.8655483,38.34329,-38.34329,1.057878,.8014182 +4.0512283,-47.72109,.8665208,38.47736,-38.47736,1.062903,.8064434 +3.1431576,-47.36978,.8671061,38.61142,-38.61142,1.067929,.8114685 +4.1749543,-46.90314,.8681388,38.74549,-38.74549,1.072954,.8164936 +5.5983515,-46.27741,.8699957,38.87956,-38.87956,1.077979,.8215188 +8.1672592,-45.36455,.8739479,39.01363,-39.01363,1.083004,.8265439 +8.5547431,-44.40838,.8782839,39.14769,-39.14769,1.088029,.831569 +11.946671,-43.0731,.88674,39.28176,-39.28176,1.093054,.8365942 +12.314985,-41.69664,.8957255,39.41583,-39.41583,1.098079,.8416193 +13.258285,-40.21476,.9061403,39.5499,-39.5499,1.103104,.8466444 +2.5465709,-39.93012,.9065245,39.68396,-39.68396,1.10813,.8516695 +-15.722248,-41.68741,.9211701,39.81803,-39.81803,1.113155,.8566946 +-16.973694,-43.58457,.9382399,39.9521,-39.9521,1.11818,.8617198 +-22.767561,-46.12931,.9689521,40.08617,-40.08617,1.123205,.8667449 +-22.891686,-48.68793,1,40.22023,-40.22023,1.12823,.87177 diff --git a/statsmodels/regression/tests/results/test_rls.R b/statsmodels/regression/tests/results/test_rls.R new file mode 100644 index 0000000..5d121b6 --- /dev/null +++ b/statsmodels/regression/tests/results/test_rls.R @@ -0,0 +1,15 @@ +library(quantreg) +library(strucchange) + +macrodata <- read.csv('/Users/fulton/projects/statsmodels/statsmodels/datasets/macrodata/macrodata.csv') + +y <- macrodata$cpi +X <- cbind(rep(1, nrow(macrodata)), macrodata$m1) +rec_beta <- lm.fit.recursive(X, y, int=FALSE) +rec_resid <- recresid(cpi ~ 1 + m1, data=macrodata) +cusum <- efp(cpi ~ 1 + m1, data=macrodata, type=c("Rec-CUSUM")) + +output <- data.frame(cbind(t(rec_beta[,3:203]), rec_resid, cusum$process[2:202])) +names(output) <- c('beta1', 'beta2', 'rec_resid', 'cusum') +write.csv(output, '/Users/fulton/projects/statsmodels/statsmodels/regression/tests/results/results_rls_R.csv', row.names=FALSE) +print(cusum$sigma) # 9.163565 diff --git a/statsmodels/regression/tests/results/test_rls.do b/statsmodels/regression/tests/results/test_rls.do new file mode 100644 index 0000000..570f448 --- /dev/null +++ b/statsmodels/regression/tests/results/test_rls.do @@ -0,0 +1,9 @@ +insheet using /Users/fulton/projects/statsmodels/statsmodels/datasets/macrodata/macrodata.csv, clear + +gen tq = yq(year, quarter) +format tq %tq +tsset tq + +cusum6 cpi m1, rr(rr) cs(cusum) lw(lw) uw(uw) cs2(cusum2) lww(lww) uww(uww) noplot + +outsheet rr-lww using results_rls_stata.csv, comma replace diff --git a/statsmodels/regression/tests/results_quantile_regression.py b/statsmodels/regression/tests/results_quantile_regression.py new file mode 100644 index 0000000..4da35c7 --- /dev/null +++ b/statsmodels/regression/tests/results_quantile_regression.py @@ -0,0 +1,638 @@ +import numpy as np +class Bunch(dict): + def __init__(self, **kw): + dict.__init__(self, kw) + self.__dict__ = self + +epanechnikov_hsheather_q75 = Bunch() +epanechnikov_hsheather_q75.table = np.array([ + [.6440143 , .0122001 , 52.79 , 0.000 , .6199777 , .6680508], + [62.39648 , 13.5509 , 4.60 , 0.000 , 35.69854 , 89.09443] + ]) +epanechnikov_hsheather_q75.psrsquared = 0.6966 +epanechnikov_hsheather_q75.rank = 2 +epanechnikov_hsheather_q75.sparsity = 223.784434936344 +epanechnikov_hsheather_q75.bwidth = .1090401129546568 +#epanechnikov_hsheather_q75.kbwidth = 59.62067927472172 # Stata 12 results +epanechnikov_hsheather_q75.kbwidth = 59.30 # TODO: why do we need lower tolerance? +epanechnikov_hsheather_q75.df_m = 1 +epanechnikov_hsheather_q75.df_r = 233 +epanechnikov_hsheather_q75.f_r = .0044685860313942 +epanechnikov_hsheather_q75.N = 235 +epanechnikov_hsheather_q75.q_v = 745.2352905273438 +epanechnikov_hsheather_q75.q = .75 +epanechnikov_hsheather_q75.sum_rdev = 43036.06956481934 +epanechnikov_hsheather_q75.sum_adev = 13058.50008841318 +epanechnikov_hsheather_q75.convcode = 0 + + +biweight_bofinger = Bunch() +biweight_bofinger.table = np.array([ + [ .5601805 , .0136491 , 41.04 , 0.000 , .533289 , .5870719], + [ 81.48233 , 15.1604 , 5.37 , 0.000 , 51.61335 , 111.3513] + ]) +biweight_bofinger.psrsquared = 0.6206 +biweight_bofinger.rank = 2 +biweight_bofinger.sparsity = 216.8218989750115 +biweight_bofinger.bwidth = .2173486679767846 +biweight_bofinger.kbwidth = 91.50878448104551 +biweight_bofinger.df_m = 1 +biweight_bofinger.df_r = 233 +biweight_bofinger.f_r = .0046120802590851 +biweight_bofinger.N = 235 +biweight_bofinger.q_v = 582.541259765625 +biweight_bofinger.q = .5 +biweight_bofinger.sum_rdev = 46278.05667114258 +biweight_bofinger.sum_adev = 17559.93220318131 +biweight_bofinger.convcode = 0 + + +biweight_hsheather = Bunch() +biweight_hsheather.table = np.array([ + [.5601805 , .0128449 , 43.61 , 0.000 , .5348735 , .5854875], + [81.48233 , 14.26713 , 5.71 , 0.000 , 53.37326 , 109.5914] + ]) +biweight_hsheather.psrsquared = 0.6206 +biweight_hsheather.rank = 2 +biweight_hsheather.sparsity = 204.0465407204423 +biweight_hsheather.bwidth = .1574393314202373 +biweight_hsheather.kbwidth = 64.53302151153288 +biweight_hsheather.df_m = 1 +biweight_hsheather.df_r = 233 +biweight_hsheather.f_r = .0049008427022052 +biweight_hsheather.N = 235 +biweight_hsheather.q_v = 582.541259765625 +biweight_hsheather.q = .5 +biweight_hsheather.sum_rdev = 46278.05667114258 +biweight_hsheather.sum_adev = 17559.93220318131 +biweight_hsheather.convcode = 0 + +biweight_chamberlain = Bunch() +biweight_chamberlain.table = np.array([ + [ .5601805 , .0114969 , 48.72 , 0.000 , .5375294 , .5828315], + [ 81.48233 , 12.76983 , 6.38 , 0.000 , 56.32325 , 106.6414] +]) +biweight_chamberlain.psrsquared = 0.6206 +biweight_chamberlain.rank = 2 +biweight_chamberlain.sparsity = 182.6322495257494 +biweight_chamberlain.bwidth = .063926976464458 +biweight_chamberlain.kbwidth = 25.61257055690209 +biweight_chamberlain.df_m = 1 +biweight_chamberlain.df_r = 233 +biweight_chamberlain.f_r = .005475484218131 +biweight_chamberlain.N = 235 +biweight_chamberlain.q_v = 582.541259765625 +biweight_chamberlain.q = .5 +biweight_chamberlain.sum_rdev = 46278.05667114258 +biweight_chamberlain.sum_adev = 17559.93220318131 +biweight_chamberlain.convcode = 0 + +epanechnikov_bofinger = Bunch() +epanechnikov_bofinger.table = np.array([ + [ .5601805 , .0209663 , 26.72 , 0.000 , .5188727 , .6014882], + [ 81.48233 , 23.28774 , 3.50 , 0.001 , 35.60088 , 127.3638] + ]) +epanechnikov_bofinger.psrsquared = 0.6206 +epanechnikov_bofinger.rank = 2 +epanechnikov_bofinger.sparsity = 333.0579553401614 +epanechnikov_bofinger.bwidth = .2173486679767846 +epanechnikov_bofinger.kbwidth = 91.50878448104551 +epanechnikov_bofinger.df_m = 1 +epanechnikov_bofinger.df_r = 233 +epanechnikov_bofinger.f_r = .0030024804511235 +epanechnikov_bofinger.N = 235 +epanechnikov_bofinger.q_v = 582.541259765625 +epanechnikov_bofinger.q = .5 +epanechnikov_bofinger.sum_rdev = 46278.05667114258 +epanechnikov_bofinger.sum_adev = 17559.93220318131 +epanechnikov_bofinger.convcode = 0 + +epanechnikov_hsheather = Bunch() +epanechnikov_hsheather.table = np.array([ + [.5601805 , .0170484 , 32.86 , 0.000 , .5265918 , .5937692], + [81.48233 , 18.93605 , 4.30 , 0.000 , 44.17457 , 118.7901] + ]) +epanechnikov_hsheather.psrsquared = 0.6206 +epanechnikov_hsheather.rank = 2 +epanechnikov_hsheather.sparsity = 270.8207209067576 +epanechnikov_hsheather.bwidth = .1574393314202373 +epanechnikov_hsheather.kbwidth = 64.53302151153288 +epanechnikov_hsheather.df_m = 1 +epanechnikov_hsheather.df_r = 233 +epanechnikov_hsheather.f_r = .0036924796472434 +epanechnikov_hsheather.N = 235 +epanechnikov_hsheather.q_v = 582.541259765625 +epanechnikov_hsheather.q = .5 +epanechnikov_hsheather.sum_rdev = 46278.05667114258 +epanechnikov_hsheather.sum_adev = 17559.93220318131 +epanechnikov_hsheather.convcode = 0 + +epanechnikov_chamberlain = Bunch() +epanechnikov_chamberlain.table = np.array([ + [.5601805 , .0130407 , 42.96 , 0.000 , .5344876 , .5858733], + [81.48233 , 14.48467 , 5.63 , 0.000 , 52.94468 , 110.02] + ]) +epanechnikov_chamberlain.psrsquared = 0.6206 +epanechnikov_chamberlain.rank = 2 +epanechnikov_chamberlain.sparsity = 207.1576340635951 +epanechnikov_chamberlain.bwidth = .063926976464458 +epanechnikov_chamberlain.kbwidth = 25.61257055690209 +epanechnikov_chamberlain.df_m = 1 +epanechnikov_chamberlain.df_r = 233 +epanechnikov_chamberlain.f_r = .0048272418466269 +epanechnikov_chamberlain.N = 235 +epanechnikov_chamberlain.q_v = 582.541259765625 +epanechnikov_chamberlain.q = .5 +epanechnikov_chamberlain.sum_rdev = 46278.05667114258 +epanechnikov_chamberlain.sum_adev = 17559.93220318131 +epanechnikov_chamberlain.convcode = 0 + +epan2_bofinger = Bunch() +epan2_bofinger.table = np.array([ + [.5601805 , .0143484 , 39.04 , 0.000 , .5319113 , .5884496], + [81.48233 , 15.93709 , 5.11 , 0.000 , 50.08313 , 112.8815] + ]) +epan2_bofinger.psrsquared = 0.6206 +epan2_bofinger.rank = 2 +epan2_bofinger.sparsity = 227.9299402797656 +epan2_bofinger.bwidth = .2173486679767846 +epan2_bofinger.kbwidth = 91.50878448104551 +epan2_bofinger.df_m = 1 +epan2_bofinger.df_r = 233 +epan2_bofinger.f_r = .0043873130435281 +epan2_bofinger.N = 235 +epan2_bofinger.q_v = 582.541259765625 +epan2_bofinger.q = .5 +epan2_bofinger.sum_rdev = 46278.05667114258 +epan2_bofinger.sum_adev = 17559.93220318131 +epan2_bofinger.convcode = 0 + +epan2_hsheather = Bunch() +epan2_hsheather.table = np.array([ + [.5601805 , .0131763 , 42.51 , 0.000 , .5342206 , .5861403], + [81.48233 , 14.63518 , 5.57 , 0.000 , 52.64815 , 110.3165] + ]) +epan2_hsheather.psrsquared = 0.6206 +epan2_hsheather.rank = 2 +epan2_hsheather.sparsity = 209.3102085912557 +epan2_hsheather.bwidth = .1574393314202373 +epan2_hsheather.kbwidth = 64.53302151153288 +epan2_hsheather.df_m = 1 +epan2_hsheather.df_r = 233 +epan2_hsheather.f_r = .0047775978378236 +epan2_hsheather.N = 235 +epan2_hsheather.q_v = 582.541259765625 +epan2_hsheather.q = .5 +epan2_hsheather.sum_rdev = 46278.05667114258 +epan2_hsheather.sum_adev = 17559.93220318131 +epan2_hsheather.convcode = 0 + +epan2_chamberlain = Bunch() +epan2_chamberlain.table = np.array([ + [.5601805 , .0117925 , 47.50 , 0.000 , .5369469 , .583414], + [81.48233 , 13.0982 , 6.22 , 0.000 , 55.67629 , 107.2884] + ]) +epan2_chamberlain.psrsquared = 0.6206 +epan2_chamberlain.rank = 2 +epan2_chamberlain.sparsity = 187.3286437436797 +epan2_chamberlain.bwidth = .063926976464458 +epan2_chamberlain.kbwidth = 25.61257055690209 +epan2_chamberlain.df_m = 1 +epan2_chamberlain.df_r = 233 +epan2_chamberlain.f_r = .0053382119253919 +epan2_chamberlain.N = 235 +epan2_chamberlain.q_v = 582.541259765625 +epan2_chamberlain.q = .5 +epan2_chamberlain.sum_rdev = 46278.05667114258 +epan2_chamberlain.sum_adev = 17559.93220318131 +epan2_chamberlain.convcode = 0 + + +rectangle_bofinger = Bunch() +rectangle_bofinger.table = np.array([ + [.5601805 , .0158331 , 35.38 , 0.000 , .5289861 , .5913748], + [81.48233 , 17.5862 , 4.63 , 0.000 , 46.83404 , 116.1306] + ]) +rectangle_bofinger.psrsquared = 0.6206 +rectangle_bofinger.rank = 2 +rectangle_bofinger.sparsity = 251.515372550242 +rectangle_bofinger.bwidth = .2173486679767846 +rectangle_bofinger.kbwidth = 91.50878448104551 +rectangle_bofinger.df_m = 1 +rectangle_bofinger.df_r = 233 +rectangle_bofinger.f_r = .0039759001203803 +rectangle_bofinger.N = 235 +rectangle_bofinger.q_v = 582.541259765625 +rectangle_bofinger.q = .5 +rectangle_bofinger.sum_rdev = 46278.05667114258 +rectangle_bofinger.sum_adev = 17559.93220318131 +rectangle_bofinger.convcode = 0 + +rectangle_hsheather = Bunch() +rectangle_hsheather.table = np.array([ + [.5601805 , .0137362 , 40.78 , 0.000 , .5331174 , .5872435], + [81.48233 , 15.25712 , 5.34 , 0.000 , 51.42279 , 111.5419] + ]) +rectangle_hsheather.psrsquared = 0.6206 +rectangle_hsheather.rank = 2 +rectangle_hsheather.sparsity = 218.2051806505069 +rectangle_hsheather.bwidth = .1574393314202373 +rectangle_hsheather.kbwidth = 64.53302151153288 +rectangle_hsheather.df_m = 1 +rectangle_hsheather.df_r = 233 +rectangle_hsheather.f_r = .004582842611797 +rectangle_hsheather.N = 235 +rectangle_hsheather.q_v = 582.541259765625 +rectangle_hsheather.q = .5 +rectangle_hsheather.sum_rdev = 46278.05667114258 +rectangle_hsheather.sum_adev = 17559.93220318131 +rectangle_hsheather.convcode = 0 + +rectangle_chamberlain = Bunch() +rectangle_chamberlain.table = np.array([ + [.5601805 , .0118406 , 47.31 , 0.000 , .5368522 , .5835087], + [81.48233 , 13.1516 , 6.20 , 0.000 , 55.57108 , 107.3936] + ]) +rectangle_chamberlain.psrsquared = 0.6206 +rectangle_chamberlain.rank = 2 +rectangle_chamberlain.sparsity = 188.0923150272497 +rectangle_chamberlain.bwidth = .063926976464458 +rectangle_chamberlain.kbwidth = 25.61257055690209 +rectangle_chamberlain.df_m = 1 +rectangle_chamberlain.df_r = 233 +rectangle_chamberlain.f_r = .0053165383171297 +rectangle_chamberlain.N = 235 +rectangle_chamberlain.q_v = 582.541259765625 +rectangle_chamberlain.q = .5 +rectangle_chamberlain.sum_rdev = 46278.05667114258 +rectangle_chamberlain.sum_adev = 17559.93220318131 +rectangle_chamberlain.convcode = 0 + +triangle_bofinger = Bunch() +triangle_bofinger.table = np.array([ + [.5601805 , .0138712 , 40.38 , 0.000 , .5328515 , .5875094], + [81.48233 , 15.40706 , 5.29 , 0.000 , 51.12738 , 111.8373] + ]) +triangle_bofinger.psrsquared = 0.6206 +triangle_bofinger.rank = 2 +triangle_bofinger.sparsity = 220.3495620604223 +triangle_bofinger.bwidth = .2173486679767846 +triangle_bofinger.kbwidth = 91.50878448104551 +triangle_bofinger.df_m = 1 +triangle_bofinger.df_r = 233 +triangle_bofinger.f_r = .0045382436463649 +triangle_bofinger.N = 235 +triangle_bofinger.q_v = 582.541259765625 +triangle_bofinger.q = .5 +triangle_bofinger.sum_rdev = 46278.05667114258 +triangle_bofinger.sum_adev = 17559.93220318131 +triangle_bofinger.convcode = 0 + +triangle_hsheather = Bunch() +triangle_hsheather.table = np.array([ + [.5601805 , .0128874 , 43.47 , 0.000 , .5347898 , .5855711], + [81.48233 , 14.31431 , 5.69 , 0.000 , 53.2803 , 109.6844] + ]) +triangle_hsheather.psrsquared = 0.6206 +triangle_hsheather.rank = 2 +triangle_hsheather.sparsity = 204.7212998199564 +triangle_hsheather.bwidth = .1574393314202373 +triangle_hsheather.kbwidth = 64.53302151153288 +triangle_hsheather.df_m = 1 +triangle_hsheather.df_r = 233 +triangle_hsheather.f_r = .004884689579831 +triangle_hsheather.N = 235 +triangle_hsheather.q_v = 582.541259765625 +triangle_hsheather.q = .5 +triangle_hsheather.sum_rdev = 46278.05667114258 +triangle_hsheather.sum_adev = 17559.93220318131 +triangle_hsheather.convcode = 0 + +triangle_chamberlain = Bunch() +triangle_chamberlain.table = np.array([ + [.5601805 , .0115725 , 48.41 , 0.000 , .5373803 , .5829806], + [81.48233 , 12.85389 , 6.34 , 0.000 , 56.15764 , 106.807] + ]) +triangle_chamberlain.psrsquared = 0.6206 +triangle_chamberlain.rank = 2 +triangle_chamberlain.sparsity = 183.8344452913298 +triangle_chamberlain.bwidth = .063926976464458 +triangle_chamberlain.kbwidth = 25.61257055690209 +triangle_chamberlain.df_m = 1 +triangle_chamberlain.df_r = 233 +triangle_chamberlain.f_r = .0054396769790083 +triangle_chamberlain.N = 235 +triangle_chamberlain.q_v = 582.541259765625 +triangle_chamberlain.q = .5 +triangle_chamberlain.sum_rdev = 46278.05667114258 +triangle_chamberlain.sum_adev = 17559.93220318131 +triangle_chamberlain.convcode = 0 + +gaussian_bofinger = Bunch() +gaussian_bofinger.table = np.array([ + [.5601805 , .0197311 , 28.39 , 0.000 , .5213062 , .5990547], + [81.48233 , 21.91582 , 3.72 , 0.000 , 38.30383 , 124.6608] + ]) +gaussian_bofinger.psrsquared = 0.6206 +gaussian_bofinger.rank = 2 +gaussian_bofinger.sparsity = 313.4370075776719 +gaussian_bofinger.bwidth = .2173486679767846 +gaussian_bofinger.kbwidth = 91.50878448104551 +gaussian_bofinger.df_m = 1 +gaussian_bofinger.df_r = 233 +gaussian_bofinger.f_r = .0031904337261521 +gaussian_bofinger.N = 235 +gaussian_bofinger.q_v = 582.541259765625 +gaussian_bofinger.q = .5 +gaussian_bofinger.sum_rdev = 46278.05667114258 +gaussian_bofinger.sum_adev = 17559.93220318131 +gaussian_bofinger.convcode = 0 + +gaussian_hsheather = Bunch() +gaussian_hsheather.table = np.array([ + [.5601805 , .016532 , 33.88 , 0.000 , .5276092 , .5927518], + [81.48233 , 18.36248 , 4.44 , 0.000 , 45.30462 , 117.66] + ]) +gaussian_hsheather.psrsquared = 0.6206 +gaussian_hsheather.rank = 2 +gaussian_hsheather.sparsity = 262.6175743002715 +gaussian_hsheather.bwidth = .1574393314202373 +gaussian_hsheather.kbwidth = 64.53302151153288 +gaussian_hsheather.df_m = 1 +gaussian_hsheather.df_r = 233 +gaussian_hsheather.f_r = .0038078182797341 +gaussian_hsheather.N = 235 +gaussian_hsheather.q_v = 582.541259765625 +gaussian_hsheather.q = .5 +gaussian_hsheather.sum_rdev = 46278.05667114258 +gaussian_hsheather.sum_adev = 17559.93220318131 +gaussian_hsheather.convcode = 0 + +gaussian_chamberlain = Bunch() +gaussian_chamberlain.table = np.array([ + [.5601805 , .0128123 , 43.72 , 0.000 , .5349378 , .5854232], + [81.48233 , 14.23088 , 5.73 , 0.000 , 53.44468 , 109.52] + ]) +gaussian_chamberlain.psrsquared = 0.6206 +gaussian_chamberlain.rank = 2 +gaussian_chamberlain.sparsity = 203.5280962791137 +gaussian_chamberlain.bwidth = .063926976464458 +gaussian_chamberlain.kbwidth = 25.61257055690209 +gaussian_chamberlain.df_m = 1 +gaussian_chamberlain.df_r = 233 +gaussian_chamberlain.f_r = .004913326554328 +gaussian_chamberlain.N = 235 +gaussian_chamberlain.q_v = 582.541259765625 +gaussian_chamberlain.q = .5 +gaussian_chamberlain.sum_rdev = 46278.05667114258 +gaussian_chamberlain.sum_adev = 17559.93220318131 +gaussian_chamberlain.convcode = 0 + +cosine_bofinger = Bunch() +cosine_bofinger.table = np.array([ + [.5601805 , .0121011 , 46.29 , 0.000 , .536339 , .5840219], + [81.48233 , 13.44092 , 6.06 , 0.000 , 55.00106 , 107.9636] + ]) +cosine_bofinger.psrsquared = 0.6206 +cosine_bofinger.rank = 2 +cosine_bofinger.sparsity = 192.2302014415605 +cosine_bofinger.bwidth = .2173486679767846 +cosine_bofinger.kbwidth = 91.50878448104551 +cosine_bofinger.df_m = 1 +cosine_bofinger.df_r = 233 +cosine_bofinger.f_r = .0052020961976883 +cosine_bofinger.N = 235 +cosine_bofinger.q_v = 582.541259765625 +cosine_bofinger.q = .5 +cosine_bofinger.sum_rdev = 46278.05667114258 +cosine_bofinger.sum_adev = 17559.93220318131 +cosine_bofinger.convcode = 0 + +cosine_hsheather = Bunch() +cosine_hsheather.table = np.array([ + [.5601805 , .0116679 , 48.01 , 0.000 , .5371924 , .5831685], + [81.48233 , 12.9598 , 6.29 , 0.000 , 55.94897 , 107.0157] +]) +cosine_hsheather.psrsquared = 0.6206 +cosine_hsheather.rank = 2 +cosine_hsheather.sparsity = 185.349198428224 +cosine_hsheather.bwidth = .1574393314202373 +cosine_hsheather.kbwidth = 64.53302151153288 +cosine_hsheather.df_m = 1 +cosine_hsheather.df_r = 233 +cosine_hsheather.f_r = .0053952216059205 +cosine_hsheather.N = 235 +cosine_hsheather.q_v = 582.541259765625 +cosine_hsheather.q = .5 +cosine_hsheather.sum_rdev = 46278.05667114258 +cosine_hsheather.sum_adev = 17559.93220318131 +cosine_hsheather.convcode = 0 + +cosine_chamberlain = Bunch() +cosine_chamberlain.table = np.array([ + [.5601805 , .0106479 , 52.61 , 0.000 , .539202 , .5811589], + [81.48233 , 11.82688 , 6.89 , 0.000 , 58.18104 , 104.7836] +]) +cosine_chamberlain.psrsquared = 0.6206 +cosine_chamberlain.rank = 2 +cosine_chamberlain.sparsity = 169.1463943762948 +cosine_chamberlain.bwidth = .063926976464458 +cosine_chamberlain.kbwidth = 25.61257055690209 +cosine_chamberlain.df_m = 1 +cosine_chamberlain.df_r = 233 +cosine_chamberlain.f_r = .0059120385254878 +cosine_chamberlain.N = 235 +cosine_chamberlain.q_v = 582.541259765625 +cosine_chamberlain.q = .5 +cosine_chamberlain.sum_rdev = 46278.05667114258 +cosine_chamberlain.sum_adev = 17559.93220318131 +cosine_chamberlain.convcode = 0 + +parzen_bofinger = Bunch() +parzen_bofinger.table = np.array([ + [.5601805 , .012909 , 43.39 , 0.000 , .5347471 , .5856138], + [81.48233 , 14.33838 , 5.68 , 0.000 , 53.23289 , 109.7318] +]) +parzen_bofinger.psrsquared = 0.6206 +parzen_bofinger.rank = 2 +parzen_bofinger.sparsity = 205.0654663067616 +parzen_bofinger.bwidth = .2173486679767846 +parzen_bofinger.kbwidth = 91.50878448104551 +parzen_bofinger.df_m = 1 +parzen_bofinger.df_r = 233 +parzen_bofinger.f_r = .0048764914834762 +parzen_bofinger.N = 235 +parzen_bofinger.q_v = 582.541259765625 +parzen_bofinger.q = .5 +parzen_bofinger.sum_rdev = 46278.05667114258 +parzen_bofinger.sum_adev = 17559.93220318131 +parzen_bofinger.convcode = 0 + +parzen_hsheather = Bunch() +parzen_hsheather.table = np.array([ + [.5601805 , .0122688 , 45.66 , 0.000 , .5360085 , .5843524], + [81.48233 , 13.62723 , 5.98 , 0.000 , 54.63401 , 108.3307] +]) +parzen_hsheather.psrsquared = 0.6206 +parzen_hsheather.rank = 2 +parzen_hsheather.sparsity = 194.8946558099188 +parzen_hsheather.bwidth = .1574393314202373 +parzen_hsheather.kbwidth = 64.53302151153288 +parzen_hsheather.df_m = 1 +parzen_hsheather.df_r = 233 +parzen_hsheather.f_r = .0051309770185556 +parzen_hsheather.N = 235 +parzen_hsheather.q_v = 582.541259765625 +parzen_hsheather.q = .5 +parzen_hsheather.sum_rdev = 46278.05667114258 +parzen_hsheather.sum_adev = 17559.93220318131 +parzen_hsheather.convcode = 0 + +parzen_chamberlain = Bunch() +parzen_chamberlain.table = np.array([ + [.5601805 , .0110507 , 50.69 , 0.000 , .5384084 , .5819526], + [81.48233 , 12.2743 , 6.64 , 0.000 , 57.29954 , 105.6651] +]) +parzen_chamberlain.psrsquared = 0.6206 +parzen_chamberlain.rank = 2 +parzen_chamberlain.sparsity = 175.5452813763412 +parzen_chamberlain.bwidth = .063926976464458 +parzen_chamberlain.kbwidth = 25.61257055690209 +parzen_chamberlain.df_m = 1 +parzen_chamberlain.df_r = 233 +parzen_chamberlain.f_r = .0056965359146063 +parzen_chamberlain.N = 235 +parzen_chamberlain.q_v = 582.541259765625 +parzen_chamberlain.q = .5 +parzen_chamberlain.sum_rdev = 46278.05667114258 +parzen_chamberlain.sum_adev = 17559.93220318131 +parzen_chamberlain.convcode = 0 + +Rquantreg = Bunch() +Rquantreg.fittedvalues = np.array([ + 278.946531823426, 327.662259651587, 472.195784028597, 366.902127539958, + 411.817682123087, 490.131199885949, 443.36524597881, 503.536477958636, + 636.406081281679, 709.736288922034, 312.165058899648, 357.917286612496, + 427.907157504212, 333.474578745265, 396.777813086185, 447.125068738706, + 325.117049130677, 349.771067249961, 481.598886608367, 306.106158691415, + 388.420502955027, 511.05437589194, 313.836609745169, 372.960145596262, + 485.358358918327, 284.379882747628, 346.21761302202, 470.314386890694, + 292.735362869831, 345.174109237497, 431.875199165716, 312.003504742171, + 396.809344806674, 474.141604734191, 463.93526593027, 430.280150030025, + 453.602705891221, 579.151509166254, 320.586493222875, 379.637682965454, + 261.63071606774, 452.262394881918, 560.558633285135, 361.453261675451, + 433.779038355879, 334.560374744198, 465.46340752116, 615.361560833631, + 934.235038902725, 699.263962186247, 403.470311834164, 431.875199165716, + 610.619729234566, 592.662336978523, 365.021855935831, 494.3226340628, + 571.610146001548, 820.79435094965, 1244.13870203673, 480.7121636877, + 1031.46758784013, 362.238578597709, 467.705425607653, 577.073721157792, + 591.087071047729, 323.397708458532, 569.0193777981, 547.264281981988, + 304.861831677351, 727.261856258699, 382.899300447742, 380.080019200391, + 387.548077543462, 455.939284414524, 461.007422390708, 469.504909066202, + 571.628605113602, 482.528691661418, 447.239662606701, 443.405235218729, + 617.975233440748, 888.754433927184, 390.908239427091, 479.934781986261, + 872.520684097057, 468.389025193617, 467.583874563025, 600.891141536243, + 328.94286096288, 524.54251098332, 697.904660068404, 443.782036008026, + 501.879849409525, 647.703493205875, 458.730704476452, 401.721440320659, + 507.49016247142, 722.834547664808, 380.206920088912, 481.131145133749, + 299.904199685339, 347.488751302111, 488.171723133137, 368.620444647759, + 1135.31179977255, 831.440717300088, 578.509405496803, 437.83023460596, + 618.056493326843, 550.238043601025, 289.910800377653, 583.813030650723, + 502.185524461957, 519.079736225537, 280.441976767315, 334.638935071642, + 489.10661171308, 651.842445716676, 1050.52148262534, 346.050058523346, + 729.252186278533, 558.451123252156, 529.859949563712, 668.51276154189, + 1113.66644452647, 747.093352541566, 858.247029841287, 917.230577685989, + 390.29683477012, 339.650965997876, 350.536705877117, 295.394850812194, + 502.711215489629, 465.29644549865, 398.753783734842, 328.660789278315, + 747.883662637697, 2102.02108846944, 499.727307212846, 278.882398125705, + 335.933513242034, 387.198765462081, 672.019128653175, 439.917678218736, + 461.755563134383, 669.580269655421, 614.886877182468, 657.691667171562, + 913.373865558921, 596.066409235456, 562.142375003233, 844.328711460744, + 517.593907165227, 463.853902738299, 1087.39298812569, 583.363256443676, + 601.337926899021, 720.657238588974, 386.421327566452, 493.072243052398, + 493.072243052398, 493.072243052398, 487.416418391789, 625.768736956952, + 717.442211022949, 649.545102325439, 315.764483006998, 387.279123698926, + 725.770230770932, 534.438688677752, 265.753297513836, 265.753297513836, + 275.266770483504, 444.714192650306, 357.226955834115, 466.694950404995, + 521.878226495306, 514.492832530541, 401.82351113515, 308.781536524607, + 410.920025494164, 506.942199600954, 426.771590593594, 444.329655290455, + 567.951437149727, 314.044484679614, 341.637888287124, 390.011222091572, + 371.617953454683, 491.650387255751, 309.86707973756, 339.215312155678, + 401.313514123063, 274.198577993648, 366.737853359169, 602.621623875386, + 397.5527766612, 431.743315417498, 502.103203876367, 758.493699184236, + 354.616793574895, 495.299694296035, 445.994704272822, 461.179388784645, + 492.398877810457, 300.177654706392, 351.604018662754, 397.001476569931, + 443.325261537312, 495.754449130328, 597.467889923833, 495.384438403965, + 563.913157758648, 890.789267794131, 326.949960612346, 296.399786939819, + 336.191062827908, 406.145865402583, 678.81933687482, 997.557647439337, + 365.6649642219, 415.242904378452, 543.581822640472, 310.924419326878, + 519.951702825405, 751.022676264054, 422.151172626615, 604.684498888169, + 836.51478813311, 277.051441764913, 287.126391607546, 327.57744312456, + 343.712072517474, 408.684566875422, 535.079861284096 + ]) + +Rquantreg.residuals = np.array([ + -23.1071072288498, -16.7035925924416, 13.4842301424879, + 36.0952280042049, 83.7430928106889, 143.666615246444, 187.391321726407, + 196.904426307396, 194.552540223671, 105.623928368427, 25.8363284299391, + 54.4440518161423, 92.0934604769094, 118.926894162067, 115.9422447507, + 211.714461564889, 67.4824476183351, 93.7875665496341, 158.517491105043, + 27.7332282843317, 78.537815573821, 32.3425283712905, 3.88323401131549, + 51.360750756311, 33.6032971350797, 53.6215045819588, 73.423561609355, + 6.00566204286901, 93.6248004402887, 78.1042405680565, 71.4819720245138, + 42.635363803128, 100.508824022316, 114.377859224531, 190.661878666847, + 120.44727756794, 74.7742708230821, 61.3298388891191, 80.7338623237625, + 56.3613389354645, 14.9298935780977, 136.086423177107, 103.639168918795, + 83.406904735325, 29.1204765079443, 43.2188638018142, 87.68702809519, + 195.534593927816, 133.719017238015, 350.614829501073, 119.230897841979, + 140.205463451968, 296.7772153462, 218.915256717207, 62.7756642652107, + 155.675830060721, 288.990008558354, 322.6267348787, 788.540488171593, + 109.906163322267, 538.923550476946, 121.241446063999, 132.774973479468, + 119.128384587689, 183.709108010048, 67.2007219409504, 43.5425230980599, + 161.49786961119, -7.94264590491014, 344.200840210711, 113.698279589573, + 123.317422174319, -29.9069666643728, -25.6016916976065, + 163.691619008174, 113.036341875648, 8.59293713333579, 61.3520511228119, + 141.397517015987, 184.594660239251, 94.1259408216085, 79.6405061341515, + 91.6733481942127, 113.234603595283, 161.045070172193, 225.290448255665, + 226.095598886257, 160.387924286533, 32.4551953759993, 103.909707216036, + 73.543904350086, 313.336630439861, 319.717144678425, 374.616677214425, + 220.710022883649, 137.027675366142, 172.507934775539, 254.168723294869, + 180.994568087336, 247.26860148984, 72.4144228992704, 14.0322012670994, + 29.7478676180694, 91.1972063421171, -271.391948301552, + -1.13686837721616e-13, -43.7483617057195, -45.7799925843755, + 316.918702117259, 263.070052700293, -26.2008042070246, + 185.270818370404, 128.400761958987, 126.90766445377, 39.11640958216, + 13.8128950328002, 125.400191450337, 10.1671163220818, 453.849292287238, + 60.1679571929374, -37.0832869573327, 29.6859273527971, + -18.5990635840888, 32.0472277998125, 187.478653019356, + 131.972664872163, 54.6380484088667, 592.550594160211, 93.7637141660844, + 60.0193510971532, 93.5633996863289, -46.5847395899585, + 25.0901440883857, 35.3349035566588, 38.0569510057356, 46.1382548463761, + -21.4915275364559, -274.821124029843, 23.7637774954742, + 56.1174237129451, 137.267370647069, 194.004180243594, 257.734838779675, + 151.279738459292, 175.792712085095, 5.37066578891586, 161.87201799729, + 301.825301306357, 337.590468355399, 141.753670144823, 248.534867350933, + 138.672153434971, 191.302922030722, 169.266111420092, 337.411668163301, + 247.595365061674, 324.241547334534, 441.345158140916, + -2.96336484193375, 128.045086149367, 128.045086149367, + 128.045086149367, 61.183812841238, 119.466557499153, 120.358284525061, + 145.795139311381, 102.833084929086, 121.51832618868, 157.507780852421, + 208.08888035649, -23.4330955930956, -23.4330955930956, + -9.26578861762408, 170.044609958764, 28.0914420512634, + 48.9250186205624, 186.600476930648, 219.742798279756, 31.1774726408891, + 18.6372355131512, 18.1199081442213, 112.698628091063, + -25.9726125403696, 176.470984835994, 252.045003846191, + 46.8335329758523, 54.1229163256514, 51.9888300300891, 32.4204776768067, + 179.14892185478, -12.2969284011601, 14.2728509760057, + -17.3759292437432, 10.6022252751131, 64.362111397076, 198.730134737533, + 50.898482335236, 146.167755331756, 68.4178084237137, 106.826836694182, + 89.9409707510827, 185.120132493866, 130.283190180665, 170.618786347098, + 116.24297250849, 0.822265604206791, 26.3943953963694, 0, + 145.19420242141, 186.007125906439, 209.892380176326, 201.416658681816, + 247.283084092749, 414.930873548859, 115.050091509315, 57.2015105045924, + 131.809734683313, 120.611481397197, 211.419693391706, 321.245634797383, + -34.6644264712713, 1.15862100546684, 53.2587319600932, + 97.5747986822971, 255.069199707627, 387.139369759176, 63.3685935821613, + 168.076643464964, 157.44822913826, 28.387531965303, 19.3926869633912, + -28.3781151570223, 124.288724993746, 113.917339005042, 215.240302135105 + ]) diff --git a/statsmodels/regression/tests/test_cov.py b/statsmodels/regression/tests/test_cov.py new file mode 100644 index 0000000..18f6135 --- /dev/null +++ b/statsmodels/regression/tests/test_cov.py @@ -0,0 +1,39 @@ +"""Example: minimal OLS + +""" + +import numpy as np +import statsmodels.api as sm + +from numpy.testing import assert_almost_equal + +def test_HC_use(): + np.random.seed(0) + nsample = 100 + x = np.linspace(0,10, 100) + X = sm.add_constant(np.column_stack((x, x**2)), prepend=False) + beta = np.array([1, 0.1, 10]) + y = np.dot(X, beta) + np.random.normal(size=nsample) + + results = sm.OLS(y, X).fit() + + #test cov_params + idx = np.array([1,2]) + #need to call HC0_se to have cov_HC0 available + results.HC0_se + cov12 = results.cov_params(column=[1,2], cov_p=results.cov_HC0) + assert_almost_equal(cov12, results.cov_HC0[idx[:,None], idx], decimal=15) + + #test t_test + tvals = results.params/results.HC0_se + ttest = results.t_test(np.eye(3), cov_p=results.cov_HC0) + assert_almost_equal(ttest.tvalue, tvals, decimal=14) + assert_almost_equal(ttest.sd, results.HC0_se, decimal=14) + + #test f_test + ftest = results.f_test(np.eye(3)[:-1], cov_p=results.cov_HC0) + slopes = results.params[:-1] + idx = np.array([0,1]) + cov_slopes = results.cov_HC0[idx[:,None], idx] + fval = np.dot(slopes, np.dot(np.linalg.inv(cov_slopes), slopes))/len(idx) + assert_almost_equal(ftest.fvalue, fval, decimal=12) diff --git a/statsmodels/regression/tests/test_glsar_gretl.py b/statsmodels/regression/tests/test_glsar_gretl.py new file mode 100644 index 0000000..680f967 --- /dev/null +++ b/statsmodels/regression/tests/test_glsar_gretl.py @@ -0,0 +1,644 @@ +# -*- coding: utf-8 -*- +"""Tests of GLSAR and diagnostics against Gretl + +Created on Thu Feb 02 21:15:47 2012 + +Author: Josef Perktold +License: BSD-3 + +""" + +import os + +import numpy as np +from numpy.testing import (assert_almost_equal, assert_equal, + assert_approx_equal, assert_array_less) + +from statsmodels.regression.linear_model import OLS, GLSAR +from statsmodels.tools.tools import add_constant +from statsmodels.datasets import macrodata + +import statsmodels.stats.sandwich_covariance as sw +import statsmodels.stats.diagnostic as smsdia +#import statsmodels.sandbox.stats.diagnostic as smsdia +import statsmodels.stats.outliers_influence as oi + + +def compare_ftest(contrast_res, other, decimal=(5,4)): + assert_almost_equal(contrast_res.fvalue, other[0], decimal=decimal[0]) + assert_almost_equal(contrast_res.pvalue, other[1], decimal=decimal[1]) + assert_equal(contrast_res.df_num, other[2]) + assert_equal(contrast_res.df_denom, other[3]) + assert_equal("f", other[4]) + +class TestGLSARGretl(object): + + def test_all(self): + + d = macrodata.load().data + #import datasetswsm.greene as g + #d = g.load('5-1') + + #growth rates + gs_l_realinv = 400 * np.diff(np.log(d['realinv'])) + gs_l_realgdp = 400 * np.diff(np.log(d['realgdp'])) + + #simple diff, not growthrate, I want heteroscedasticity later for testing + endogd = np.diff(d['realinv']) + exogd = add_constant(np.c_[np.diff(d['realgdp']), d['realint'][:-1]]) + + endogg = gs_l_realinv + exogg = add_constant(np.c_[gs_l_realgdp, d['realint'][:-1]]) + + res_ols = OLS(endogg, exogg).fit() + #print res_ols.params + + mod_g1 = GLSAR(endogg, exogg, rho=-0.108136) + res_g1 = mod_g1.fit() + #print res_g1.params + + mod_g2 = GLSAR(endogg, exogg, rho=-0.108136) #-0.1335859) from R + res_g2 = mod_g2.iterative_fit(maxiter=5) + #print res_g2.params + + + rho = -0.108136 + + # coefficient std. error t-ratio p-value 95% CONFIDENCE INTERVAL + partable = np.array([ + [-9.50990, 0.990456, -9.602, 3.65e-018, -11.4631, -7.55670], # *** + [ 4.37040, 0.208146, 21.00, 2.93e-052, 3.95993, 4.78086], # *** + [-0.579253, 0.268009, -2.161, 0.0319, -1.10777, -0.0507346]]) # ** + + #Statistics based on the rho-differenced data: + + result_gretl_g1 = dict( + endog_mean = ("Mean dependent var", 3.113973), + endog_std = ("S.D. dependent var", 18.67447), + ssr = ("Sum squared resid", 22530.90), + mse_resid_sqrt = ("S.E. of regression", 10.66735), + rsquared = ("R-squared", 0.676973), + rsquared_adj = ("Adjusted R-squared", 0.673710), + fvalue = ("F(2, 198)", 221.0475), + f_pvalue = ("P-value(F)", 3.56e-51), + resid_acf1 = ("rho", -0.003481), + dw = ("Durbin-Watson", 1.993858)) + + + #fstatistic, p-value, df1, df2 + reset_2_3 = [5.219019, 0.00619, 2, 197, "f"] + reset_2 = [7.268492, 0.00762, 1, 198, "f"] + reset_3 = [5.248951, 0.023, 1, 198, "f"] + #LM-statistic, p-value, df + arch_4 = [7.30776, 0.120491, 4, "chi2"] + + #multicollinearity + vif = [1.002, 1.002] + cond_1norm = 6862.0664 + determinant = 1.0296049e+009 + reciprocal_condition_number = 0.013819244 + + #Chi-square(2): test-statistic, pvalue, df + normality = [20.2792, 3.94837e-005, 2] + + #tests + res = res_g1 #with rho from Gretl + + #basic + + assert_almost_equal(res.params, partable[:,0], 4) + assert_almost_equal(res.bse, partable[:,1], 6) + assert_almost_equal(res.tvalues, partable[:,2], 2) + + assert_almost_equal(res.ssr, result_gretl_g1['ssr'][1], decimal=2) + #assert_almost_equal(res.llf, result_gretl_g1['llf'][1], decimal=7) #not in gretl + #assert_almost_equal(res.rsquared, result_gretl_g1['rsquared'][1], decimal=7) #FAIL + #assert_almost_equal(res.rsquared_adj, result_gretl_g1['rsquared_adj'][1], decimal=7) #FAIL + assert_almost_equal(np.sqrt(res.mse_resid), result_gretl_g1['mse_resid_sqrt'][1], decimal=5) + assert_almost_equal(res.fvalue, result_gretl_g1['fvalue'][1], decimal=4) + assert_approx_equal(res.f_pvalue, result_gretl_g1['f_pvalue'][1], significant=2) + #assert_almost_equal(res.durbin_watson, result_gretl_g1['dw'][1], decimal=7) #TODO + + #arch + #sm_arch = smsdia.acorr_lm(res.wresid**2, maxlag=4, autolag=None) + sm_arch = smsdia.het_arch(res.wresid, maxlag=4) + assert_almost_equal(sm_arch[0], arch_4[0], decimal=4) + assert_almost_equal(sm_arch[1], arch_4[1], decimal=6) + + #tests + res = res_g2 #with estimated rho + + #estimated lag coefficient + assert_almost_equal(res.model.rho, rho, decimal=3) + + #basic + assert_almost_equal(res.params, partable[:,0], 4) + assert_almost_equal(res.bse, partable[:,1], 3) + assert_almost_equal(res.tvalues, partable[:,2], 2) + + assert_almost_equal(res.ssr, result_gretl_g1['ssr'][1], decimal=2) + #assert_almost_equal(res.llf, result_gretl_g1['llf'][1], decimal=7) #not in gretl + #assert_almost_equal(res.rsquared, result_gretl_g1['rsquared'][1], decimal=7) #FAIL + #assert_almost_equal(res.rsquared_adj, result_gretl_g1['rsquared_adj'][1], decimal=7) #FAIL + assert_almost_equal(np.sqrt(res.mse_resid), result_gretl_g1['mse_resid_sqrt'][1], decimal=5) + assert_almost_equal(res.fvalue, result_gretl_g1['fvalue'][1], decimal=0) + assert_almost_equal(res.f_pvalue, result_gretl_g1['f_pvalue'][1], decimal=6) + #assert_almost_equal(res.durbin_watson, result_gretl_g1['dw'][1], decimal=7) #TODO + + + + c = oi.reset_ramsey(res, degree=2) + compare_ftest(c, reset_2, decimal=(2,4)) + c = oi.reset_ramsey(res, degree=3) + compare_ftest(c, reset_2_3, decimal=(2,4)) + + #arch + #sm_arch = smsdia.acorr_lm(res.wresid**2, maxlag=4, autolag=None) + sm_arch = smsdia.het_arch(res.wresid, maxlag=4) + assert_almost_equal(sm_arch[0], arch_4[0], decimal=1) + assert_almost_equal(sm_arch[1], arch_4[1], decimal=2) + + + + ''' + Performing iterative calculation of rho... + + ITER RHO ESS + 1 -0.10734 22530.9 + 2 -0.10814 22530.9 + + Model 4: Cochrane-Orcutt, using observations 1959:3-2009:3 (T = 201) + Dependent variable: ds_l_realinv + rho = -0.108136 + + coefficient std. error t-ratio p-value + ------------------------------------------------------------- + const -9.50990 0.990456 -9.602 3.65e-018 *** + ds_l_realgdp 4.37040 0.208146 21.00 2.93e-052 *** + realint_1 -0.579253 0.268009 -2.161 0.0319 ** + + Statistics based on the rho-differenced data: + + Mean dependent var 3.113973 S.D. dependent var 18.67447 + Sum squared resid 22530.90 S.E. of regression 10.66735 + R-squared 0.676973 Adjusted R-squared 0.673710 + F(2, 198) 221.0475 P-value(F) 3.56e-51 + rho -0.003481 Durbin-Watson 1.993858 + ''' + + ''' + RESET test for specification (squares and cubes) + Test statistic: F = 5.219019, + with p-value = P(F(2,197) > 5.21902) = 0.00619 + + RESET test for specification (squares only) + Test statistic: F = 7.268492, + with p-value = P(F(1,198) > 7.26849) = 0.00762 + + RESET test for specification (cubes only) + Test statistic: F = 5.248951, + with p-value = P(F(1,198) > 5.24895) = 0.023: + ''' + + ''' + Test for ARCH of order 4 + + coefficient std. error t-ratio p-value + -------------------------------------------------------- + alpha(0) 97.0386 20.3234 4.775 3.56e-06 *** + alpha(1) 0.176114 0.0714698 2.464 0.0146 ** + alpha(2) -0.0488339 0.0724981 -0.6736 0.5014 + alpha(3) -0.0705413 0.0737058 -0.9571 0.3397 + alpha(4) 0.0384531 0.0725763 0.5298 0.5968 + + Null hypothesis: no ARCH effect is present + Test statistic: LM = 7.30776 + with p-value = P(Chi-square(4) > 7.30776) = 0.120491: + ''' + + ''' + Variance Inflation Factors + + Minimum possible value = 1.0 + Values > 10.0 may indicate a collinearity problem + + ds_l_realgdp 1.002 + realint_1 1.002 + + VIF(j) = 1/(1 - R(j)^2), where R(j) is the multiple correlation coefficient + between variable j and the other independent variables + + Properties of matrix X'X: + + 1-norm = 6862.0664 + Determinant = 1.0296049e+009 + Reciprocal condition number = 0.013819244 + ''' + ''' + Test for ARCH of order 4 - + Null hypothesis: no ARCH effect is present + Test statistic: LM = 7.30776 + with p-value = P(Chi-square(4) > 7.30776) = 0.120491 + + Test of common factor restriction - + Null hypothesis: restriction is acceptable + Test statistic: F(2, 195) = 0.426391 + with p-value = P(F(2, 195) > 0.426391) = 0.653468 + + Test for normality of residual - + Null hypothesis: error is normally distributed + Test statistic: Chi-square(2) = 20.2792 + with p-value = 3.94837e-005: + ''' + + #no idea what this is + ''' + Augmented regression for common factor test + OLS, using observations 1959:3-2009:3 (T = 201) + Dependent variable: ds_l_realinv + + coefficient std. error t-ratio p-value + --------------------------------------------------------------- + const -10.9481 1.35807 -8.062 7.44e-014 *** + ds_l_realgdp 4.28893 0.229459 18.69 2.40e-045 *** + realint_1 -0.662644 0.334872 -1.979 0.0492 ** + ds_l_realinv_1 -0.108892 0.0715042 -1.523 0.1294 + ds_l_realgdp_1 0.660443 0.390372 1.692 0.0923 * + realint_2 0.0769695 0.341527 0.2254 0.8219 + + Sum of squared residuals = 22432.8 + + Test of common factor restriction + + Test statistic: F(2, 195) = 0.426391, with p-value = 0.653468 + ''' + + + ################ with OLS, HAC errors + + #Model 5: OLS, using observations 1959:2-2009:3 (T = 202) + #Dependent variable: ds_l_realinv + #HAC standard errors, bandwidth 4 (Bartlett kernel) + + #coefficient std. error t-ratio p-value 95% CONFIDENCE INTERVAL + #for confidence interval t(199, 0.025) = 1.972 + + partable = np.array([ + [-9.48167, 1.17709, -8.055, 7.17e-014, -11.8029, -7.16049], # *** + [4.37422, 0.328787, 13.30, 2.62e-029, 3.72587, 5.02258], #*** + [-0.613997, 0.293619, -2.091, 0.0378, -1.19300, -0.0349939]]) # ** + + result_gretl_g1 = dict( + endog_mean = ("Mean dependent var", 3.257395), + endog_std = ("S.D. dependent var", 18.73915), + ssr = ("Sum squared resid", 22799.68), + mse_resid_sqrt = ("S.E. of regression", 10.70380), + rsquared = ("R-squared", 0.676978), + rsquared_adj = ("Adjusted R-squared", 0.673731), + fvalue = ("F(2, 199)", 90.79971), + f_pvalue = ("P-value(F)", 9.53e-29), + llf = ("Log-likelihood", -763.9752), + aic = ("Akaike criterion", 1533.950), + bic = ("Schwarz criterion", 1543.875), + hqic = ("Hannan-Quinn", 1537.966), + resid_acf1 = ("rho", -0.107341), + dw = ("Durbin-Watson", 2.213805)) + + linear_logs = [1.68351, 0.430953, 2, "chi2"] + #for logs: dropping 70 nan or incomplete observations, T=133 + #(res_ols.model.exog <=0).any(1).sum() = 69 ?not 70 + linear_squares = [7.52477, 0.0232283, 2, "chi2"] + + #Autocorrelation, Breusch-Godfrey test for autocorrelation up to order 4 + lm_acorr4 = [1.17928, 0.321197, 4, 195, "F"] + lm2_acorr4 = [4.771043, 0.312, 4, "chi2"] + acorr_ljungbox4 = [5.23587, 0.264, 4, "chi2"] + + #break + cusum_Harvey_Collier = [0.494432, 0.621549, 198, "t"] #stats.t.sf(0.494432, 198)*2 + #see cusum results in files + break_qlr = [3.01985, 0.1, 3, 196, "maxF"] #TODO check this, max at 2001:4 + break_chow = [13.1897, 0.00424384, 3, "chi2"] # break at 1984:1 + + arch_4 = [3.43473, 0.487871, 4, "chi2"] + + normality = [23.962, 0.00001, 2, "chi2"] + + het_white = [33.503723, 0.000003, 5, "chi2"] + het_breusch_pagan = [1.302014, 0.521520, 2, "chi2"] #TODO: not available + het_breusch_pagan_konker = [0.709924, 0.701200, 2, "chi2"] + + + reset_2_3 = [5.219019, 0.00619, 2, 197, "f"] + reset_2 = [7.268492, 0.00762, 1, 198, "f"] + reset_3 = [5.248951, 0.023, 1, 198, "f"] #not available + + cond_1norm = 5984.0525 + determinant = 7.1087467e+008 + reciprocal_condition_number = 0.013826504 + vif = [1.001, 1.001] + + names = 'date residual leverage influence DFFITS'.split() + cur_dir = os.path.abspath(os.path.dirname(__file__)) + fpath = os.path.join(cur_dir, 'results/leverage_influence_ols_nostars.txt') + lev = np.genfromtxt(fpath, skip_header=3, skip_footer=1, + converters={0:lambda s: s}) + #either numpy 1.6 or python 3.2 changed behavior + if np.isnan(lev[-1]['f1']): + lev = np.genfromtxt(fpath, skip_header=3, skip_footer=2, + converters={0:lambda s: s}) + + lev.dtype.names = names + + res = res_ols #for easier copying + + cov_hac = sw.cov_hac_simple(res, nlags=4, use_correction=False) + bse_hac = sw.se_cov(cov_hac) + + assert_almost_equal(res.params, partable[:,0], 5) + assert_almost_equal(bse_hac, partable[:,1], 5) + #TODO + + assert_almost_equal(res.ssr, result_gretl_g1['ssr'][1], decimal=2) + assert_almost_equal(res.llf, result_gretl_g1['llf'][1], decimal=4) #not in gretl + assert_almost_equal(res.rsquared, result_gretl_g1['rsquared'][1], decimal=6) #FAIL + assert_almost_equal(res.rsquared_adj, result_gretl_g1['rsquared_adj'][1], decimal=6) #FAIL + assert_almost_equal(np.sqrt(res.mse_resid), result_gretl_g1['mse_resid_sqrt'][1], decimal=5) + #f-value is based on cov_hac I guess + #res2 = res.get_robustcov_results(cov_type='HC1') + # TODO: fvalue differs from Gretl, trying any of the HCx + #assert_almost_equal(res2.fvalue, result_gretl_g1['fvalue'][1], decimal=0) #FAIL + #assert_approx_equal(res.f_pvalue, result_gretl_g1['f_pvalue'][1], significant=1) #FAIL + #assert_almost_equal(res.durbin_watson, result_gretl_g1['dw'][1], decimal=7) #TODO + + + c = oi.reset_ramsey(res, degree=2) + compare_ftest(c, reset_2, decimal=(6,5)) + c = oi.reset_ramsey(res, degree=3) + compare_ftest(c, reset_2_3, decimal=(6,5)) + + linear_sq = smsdia.linear_lm(res.resid, res.model.exog) + assert_almost_equal(linear_sq[0], linear_squares[0], decimal=6) + assert_almost_equal(linear_sq[1], linear_squares[1], decimal=7) + + hbpk = smsdia.het_breuschpagan(res.resid, res.model.exog) + assert_almost_equal(hbpk[0], het_breusch_pagan_konker[0], decimal=6) + assert_almost_equal(hbpk[1], het_breusch_pagan_konker[1], decimal=6) + + hw = smsdia.het_white(res.resid, res.model.exog) + assert_almost_equal(hw[:2], het_white[:2], 6) + + #arch + #sm_arch = smsdia.acorr_lm(res.resid**2, maxlag=4, autolag=None) + sm_arch = smsdia.het_arch(res.resid, maxlag=4) + assert_almost_equal(sm_arch[0], arch_4[0], decimal=5) + assert_almost_equal(sm_arch[1], arch_4[1], decimal=6) + + vif2 = [oi.variance_inflation_factor(res.model.exog, k) for k in [1,2]] + + infl = oi.OLSInfluence(res_ols) + #print np.max(np.abs(lev['DFFITS'] - infl.dffits[0])) + #print np.max(np.abs(lev['leverage'] - infl.hat_matrix_diag)) + #print np.max(np.abs(lev['influence'] - infl.influence)) #just added this based on Gretl + + #just rough test, low decimal in Gretl output, + assert_almost_equal(lev['residual'], res.resid, decimal=3) + assert_almost_equal(lev['DFFITS'], infl.dffits[0], decimal=3) + assert_almost_equal(lev['leverage'], infl.hat_matrix_diag, decimal=3) + assert_almost_equal(lev['influence'], infl.influence, decimal=4) + +def test_GLSARlag(): + #test that results for lag>1 is close to lag=1, and smaller ssr + + from statsmodels.datasets import macrodata + d2 = macrodata.load().data + g_gdp = 400*np.diff(np.log(d2['realgdp'])) + g_inv = 400*np.diff(np.log(d2['realinv'])) + exogg = add_constant(np.c_[g_gdp, d2['realint'][:-1]], prepend=False) + + mod1 = GLSAR(g_inv, exogg, 1) + res1 = mod1.iterative_fit(5) + + mod4 = GLSAR(g_inv, exogg, 4) + res4 = mod4.iterative_fit(10) + + assert_array_less(np.abs(res1.params / res4.params - 1), 0.03) + assert_array_less(res4.ssr, res1.ssr) + assert_array_less(np.abs(res4.bse / res1.bse) - 1, 0.015) + assert_array_less(np.abs((res4.fittedvalues / res1.fittedvalues - 1).mean()), + 0.015) + assert_equal(len(mod4.rho), 4) + + + + +if __name__ == '__main__': + t = TestGLSARGretl() + t.test_all() + + +''' +Model 5: OLS, using observations 1959:2-2009:3 (T = 202) +Dependent variable: ds_l_realinv +HAC standard errors, bandwidth 4 (Bartlett kernel) + + coefficient std. error t-ratio p-value + ------------------------------------------------------------- + const -9.48167 1.17709 -8.055 7.17e-014 *** + ds_l_realgdp 4.37422 0.328787 13.30 2.62e-029 *** + realint_1 -0.613997 0.293619 -2.091 0.0378 ** + +Mean dependent var 3.257395 S.D. dependent var 18.73915 +Sum squared resid 22799.68 S.E. of regression 10.70380 +R-squared 0.676978 Adjusted R-squared 0.673731 +F(2, 199) 90.79971 P-value(F) 9.53e-29 +Log-likelihood -763.9752 Akaike criterion 1533.950 +Schwarz criterion 1543.875 Hannan-Quinn 1537.966 +rho -0.107341 Durbin-Watson 2.213805 + +QLR test for structural break - + Null hypothesis: no structural break + Test statistic: max F(3, 196) = 3.01985 at observation 2001:4 + (10 percent critical value = 4.09) + +Non-linearity test (logs) - + Null hypothesis: relationship is linear + Test statistic: LM = 1.68351 + with p-value = P(Chi-square(2) > 1.68351) = 0.430953 + +Non-linearity test (squares) - + Null hypothesis: relationship is linear + Test statistic: LM = 7.52477 + with p-value = P(Chi-square(2) > 7.52477) = 0.0232283 + +LM test for autocorrelation up to order 4 - + Null hypothesis: no autocorrelation + Test statistic: LMF = 1.17928 + with p-value = P(F(4,195) > 1.17928) = 0.321197 + +CUSUM test for parameter stability - + Null hypothesis: no change in parameters + Test statistic: Harvey-Collier t(198) = 0.494432 + with p-value = P(t(198) > 0.494432) = 0.621549 + +Chow test for structural break at observation 1984:1 - + Null hypothesis: no structural break + Asymptotic test statistic: Chi-square(3) = 13.1897 + with p-value = 0.00424384 + +Test for ARCH of order 4 - + Null hypothesis: no ARCH effect is present + Test statistic: LM = 3.43473 + with p-value = P(Chi-square(4) > 3.43473) = 0.487871: + +#ANOVA +Analysis of Variance: + + Sum of squares df Mean square + + Regression 47782.7 2 23891.3 + Residual 22799.7 199 114.571 + Total 70582.3 201 351.156 + + R^2 = 47782.7 / 70582.3 = 0.676978 + F(2, 199) = 23891.3 / 114.571 = 208.528 [p-value 1.47e-049] + +#LM-test autocorrelation +Breusch-Godfrey test for autocorrelation up to order 4 +OLS, using observations 1959:2-2009:3 (T = 202) +Dependent variable: uhat + + coefficient std. error t-ratio p-value + ------------------------------------------------------------ + const 0.0640964 1.06719 0.06006 0.9522 + ds_l_realgdp -0.0456010 0.217377 -0.2098 0.8341 + realint_1 0.0511769 0.293136 0.1746 0.8616 + uhat_1 -0.104707 0.0719948 -1.454 0.1475 + uhat_2 -0.00898483 0.0742817 -0.1210 0.9039 + uhat_3 0.0837332 0.0735015 1.139 0.2560 + uhat_4 -0.0636242 0.0737363 -0.8629 0.3893 + + Unadjusted R-squared = 0.023619 + +Test statistic: LMF = 1.179281, +with p-value = P(F(4,195) > 1.17928) = 0.321 + +Alternative statistic: TR^2 = 4.771043, +with p-value = P(Chi-square(4) > 4.77104) = 0.312 + +Ljung-Box Q' = 5.23587, +with p-value = P(Chi-square(4) > 5.23587) = 0.264: + +RESET test for specification (squares and cubes) +Test statistic: F = 5.219019, +with p-value = P(F(2,197) > 5.21902) = 0.00619 + +RESET test for specification (squares only) +Test statistic: F = 7.268492, +with p-value = P(F(1,198) > 7.26849) = 0.00762 + +RESET test for specification (cubes only) +Test statistic: F = 5.248951, +with p-value = P(F(1,198) > 5.24895) = 0.023 + +#heteroscedasticity White +White's test for heteroskedasticity +OLS, using observations 1959:2-2009:3 (T = 202) +Dependent variable: uhat^2 + + coefficient std. error t-ratio p-value + ------------------------------------------------------------- + const 104.920 21.5848 4.861 2.39e-06 *** + ds_l_realgdp -29.7040 6.24983 -4.753 3.88e-06 *** + realint_1 -6.93102 6.95607 -0.9964 0.3203 + sq_ds_l_realg 4.12054 0.684920 6.016 8.62e-09 *** + X2_X3 2.89685 1.38571 2.091 0.0379 ** + sq_realint_1 0.662135 1.10919 0.5970 0.5512 + + Unadjusted R-squared = 0.165860 + +Test statistic: TR^2 = 33.503723, +with p-value = P(Chi-square(5) > 33.503723) = 0.000003: + +#heteroscedasticity Breusch-Pagan (original) +Breusch-Pagan test for heteroskedasticity +OLS, using observations 1959:2-2009:3 (T = 202) +Dependent variable: scaled uhat^2 + + coefficient std. error t-ratio p-value + ------------------------------------------------------------- + const 1.09468 0.192281 5.693 4.43e-08 *** + ds_l_realgdp -0.0323119 0.0386353 -0.8363 0.4040 + realint_1 0.00410778 0.0512274 0.08019 0.9362 + + Explained sum of squares = 2.60403 + +Test statistic: LM = 1.302014, +with p-value = P(Chi-square(2) > 1.302014) = 0.521520 + +#heteroscedasticity Breusch-Pagan Koenker +Breusch-Pagan test for heteroskedasticity +OLS, using observations 1959:2-2009:3 (T = 202) +Dependent variable: scaled uhat^2 (Koenker robust variant) + + coefficient std. error t-ratio p-value + ------------------------------------------------------------ + const 10.6870 21.7027 0.4924 0.6230 + ds_l_realgdp -3.64704 4.36075 -0.8363 0.4040 + realint_1 0.463643 5.78202 0.08019 0.9362 + + Explained sum of squares = 33174.2 + +Test statistic: LM = 0.709924, +with p-value = P(Chi-square(2) > 0.709924) = 0.701200 + +########## forecast +#forecast mean y + For 95% confidence intervals, t(199, 0.025) = 1.972 + + Obs ds_l_realinv prediction std. error 95% interval + + 2008:3 -7.134492 -17.177905 2.946312 -22.987904 - -11.367905 + 2008:4 -27.665860 -36.294434 3.036851 -42.282972 - -30.305896 + 2009:1 -70.239280 -44.018178 4.007017 -51.919841 - -36.116516 + 2009:2 -27.024588 -12.284842 1.427414 -15.099640 - -9.470044 + 2009:3 8.078897 4.483669 1.315876 1.888819 - 7.078520 + + Forecast evaluation statistics + + Mean Error -3.7387 + Mean Squared Error 218.61 + Root Mean Squared Error 14.785 + Mean Absolute Error 12.646 + Mean Percentage Error -7.1173 + Mean Absolute Percentage Error -43.867 + Theil's U 0.4365 + Bias proportion, UM 0.06394 + Regression proportion, UR 0.13557 + Disturbance proportion, UD 0.80049 + +#forecast actual y + For 95% confidence intervals, t(199, 0.025) = 1.972 + + Obs ds_l_realinv prediction std. error 95% interval + + 2008:3 -7.134492 -17.177905 11.101892 -39.070353 - 4.714544 + 2008:4 -27.665860 -36.294434 11.126262 -58.234939 - -14.353928 + 2009:1 -70.239280 -44.018178 11.429236 -66.556135 - -21.480222 + 2009:2 -27.024588 -12.284842 10.798554 -33.579120 - 9.009436 + 2009:3 8.078897 4.483669 10.784377 -16.782652 - 25.749991 + + Forecast evaluation statistics + + Mean Error -3.7387 + Mean Squared Error 218.61 + Root Mean Squared Error 14.785 + Mean Absolute Error 12.646 + Mean Percentage Error -7.1173 + Mean Absolute Percentage Error -43.867 + Theil's U 0.4365 + Bias proportion, UM 0.06394 + Regression proportion, UR 0.13557 + Disturbance proportion, UD 0.80049 + +''' diff --git a/statsmodels/regression/tests/test_glsar_stata.py b/statsmodels/regression/tests/test_glsar_stata.py new file mode 100644 index 0000000..3afa72e --- /dev/null +++ b/statsmodels/regression/tests/test_glsar_stata.py @@ -0,0 +1,100 @@ +# -*- coding: utf-8 -*- +"""Testing GLSAR against STATA + +Created on Wed May 30 09:25:24 2012 + +Author: Josef Perktold +""" + +import numpy as np +from numpy.testing import assert_almost_equal, assert_allclose, assert_equal + +from statsmodels.regression.linear_model import GLSAR +from statsmodels.tools.tools import add_constant +from statsmodels.datasets import macrodata + + +class CheckStataResultsMixin(object): + + def test_params_table(self): + res, results = self.res, self.results + assert_almost_equal(res.params, results.params, 3) + assert_almost_equal(res.bse, results.bse, 3) + #assert_almost_equal(res.tvalues, results.tvalues, 3) 0.0003 + assert_allclose(res.tvalues, results.tvalues, atol=0, rtol=0.004) + assert_allclose(res.pvalues, results.pvalues, atol=1e-7, rtol=0.004) + +class CheckStataResultsPMixin(CheckStataResultsMixin): + + def test_predicted(self): + res, results = self.res, self.results + assert_allclose(res.fittedvalues, results.fittedvalues, rtol=0.002) + predicted = res.predict(res.model.exog) #should be equal + assert_allclose(predicted, results.fittedvalues, rtol=0.0016) + #not yet + #assert_almost_equal(res.fittedvalues_se, results.fittedvalues_se, 4) + +class TestGLSARCorc(CheckStataResultsPMixin): + + @classmethod + def setup_class(self): + d2 = macrodata.load().data + g_gdp = 400*np.diff(np.log(d2['realgdp'])) + g_inv = 400*np.diff(np.log(d2['realinv'])) + exogg = add_constant(np.c_[g_gdp, d2['realint'][:-1]], prepend=False) + + mod1 = GLSAR(g_inv, exogg, 1) + self.res = mod1.iterative_fit(5) + + from .results.macro_gr_corc_stata import results + self.results = results + + def test_rho(self): + assert_almost_equal(self.res.model.rho, self.results.rho, 3) # pylint: disable-msg=E1101 + + assert_almost_equal(self.res.llf, self.results.ll, 4) + + + def test_glsar_arima(self): + from statsmodels.tsa.arima_model import ARMA + + endog = self.res.model.endog + exog = self.res.model.exog + mod1 = GLSAR(endog, exog, 3) + res = mod1.iterative_fit(10) + mod_arma = ARMA(endog, order=(3,0), exog=exog[:, :-1]) + res_arma = mod_arma.fit(method='css', iprint=0, disp=0) + assert_allclose(res.params, res_arma.params[[1,2,0]], atol=0.01, rtol=1e-3) + assert_allclose(res.model.rho, res_arma.params[3:], atol=0.05, rtol=1e-3) + assert_allclose(res.bse, res_arma.bse[[1,2,0]], atol=0.015, rtol=1e-3) + + assert_equal(len(res.history['params']), 5) + # this should be identical, history has last fit + assert_equal(res.history['params'][-1], res.params) + + res2 = mod1.iterative_fit(4, rtol=0) + assert_equal(len(res2.history['params']), 4) + assert_equal(len(res2.history['rho']), 4) + + + def test_glsar_iter0(self): + endog = self.res.model.endog + exog = self.res.model.exog + + rho = np.array([ 0.207, 0.275, 1.033]) + mod1 = GLSAR(endog, exog, rho) + res1 = mod1.fit() + res0 = mod1.iterative_fit(0) + res0b = mod1.iterative_fit(1) + # check iterative_fit(0) or iterative_fit(1) doesn't update rho + assert_allclose(res0.params, res1.params, rtol=1e-11) + assert_allclose(res0b.params, res1.params, rtol=1e-11) + assert_allclose(res0.model.rho, rho, rtol=1e-11) + assert_allclose(res0b.model.rho, rho, rtol=1e-11) + + +if __name__=="__main__": + import nose + nose.runmodule(argv=[__file__,'-vvs','-x',#'--pdb', '--pdb-failure' + ], + exit=False) diff --git a/statsmodels/regression/tests/test_lme.py b/statsmodels/regression/tests/test_lme.py new file mode 100644 index 0000000..5bf5cee --- /dev/null +++ b/statsmodels/regression/tests/test_lme.py @@ -0,0 +1,734 @@ +import warnings +import numpy as np +import pandas as pd +from statsmodels.regression.mixed_linear_model import MixedLM, MixedLMParams +from numpy.testing import (assert_almost_equal, assert_equal, assert_allclose, + dec, assert_) +from . import lme_r_results +from statsmodels.base import _penalties as penalties +from numpy.testing import dec +import statsmodels.tools.numdiff as nd +import os +import csv +import scipy + +# TODO: add tests with unequal group sizes + +v = scipy.__version__.split(".")[1] +old_scipy = int(v) < 16 + +class R_Results(object): + """ + A class for holding various results obtained from fitting one data + set using lmer in R. + + Parameters + ---------- + meth : string + Either "ml" or "reml". + irfs : string + Either "irf", for independent random effects, or "drf" for + dependent random effects. + ds_ix : integer + The number of the data set + """ + + def __init__(self, meth, irfs, ds_ix): + + bname = "_%s_%s_%d" % (meth, irfs, ds_ix) + + self.coef = getattr(lme_r_results, "coef" + bname) + self.vcov_r = getattr(lme_r_results, "vcov" + bname) + self.cov_re_r = getattr(lme_r_results, "cov_re" + bname) + self.scale_r = getattr(lme_r_results, "scale" + bname) + self.loglike = getattr(lme_r_results, "loglike" + bname) + + if hasattr(lme_r_results, "ranef_mean" + bname): + self.ranef_postmean = getattr(lme_r_results, "ranef_mean" + + bname) + self.ranef_condvar = getattr(lme_r_results, + "ranef_condvar" + bname) + self.ranef_condvar = np.atleast_2d(self.ranef_condvar) + + # Load the data file + cur_dir = os.path.dirname(os.path.abspath(__file__)) + rdir = os.path.join(cur_dir, 'results') + fname = os.path.join(rdir, "lme%02d.csv" % ds_ix) + fid = open(fname) + rdr = csv.reader(fid) + header = next(rdr) + data = [[float(x) for x in line] for line in rdr] + data = np.asarray(data) + + # Split into exog, endog, etc. + self.endog = data[:, header.index("endog")] + self.groups = data[:, header.index("groups")] + ii = [i for i, x in enumerate(header) if + x.startswith("exog_fe")] + self.exog_fe = data[:, ii] + ii = [i for i, x in enumerate(header) if + x.startswith("exog_re")] + self.exog_re = data[:, ii] + + +def loglike_function(model, profile_fe, has_fe): + # Returns a function that evaluates the negative log-likelihood for + # the given model. + + def f(x): + params = MixedLMParams.from_packed( + x, model.k_fe, model.k_re, model.use_sqrt, has_fe=has_fe) + return -model.loglike(params, profile_fe=profile_fe) + + return f + + +class TestMixedLM(object): + + # Test analytic scores and Hessian using numeric differentiation + @dec.slow + def test_compare_numdiff(self): + + n_grp = 200 + grpsize = 5 + k_fe = 3 + k_re = 2 + + for use_sqrt in False, True: + for reml in False, True: + for profile_fe in False, True: + + np.random.seed(3558) + exog_fe = np.random.normal(size=(n_grp * grpsize, k_fe)) + exog_re = np.random.normal(size=(n_grp * grpsize, k_re)) + exog_re[:, 0] = 1 + exog_vc = np.random.normal(size=(n_grp * grpsize, 3)) + slopes = np.random.normal(size=(n_grp, k_re)) + slopes[:, -1] *= 2 + slopes = np.kron(slopes, np.ones((grpsize, 1))) + slopes_vc = np.random.normal(size=(n_grp, 3)) + slopes_vc = np.kron(slopes_vc, np.ones((grpsize, 1))) + slopes_vc[:, -1] *= 2 + re_values = (slopes * exog_re).sum(1) + vc_values = (slopes_vc * exog_vc).sum(1) + err = np.random.normal(size=n_grp * grpsize) + endog = exog_fe.sum(1) + re_values + vc_values + err + groups = np.kron(range(n_grp), np.ones(grpsize)) + + vc = {"a": {}, "b": {}} + for i in range(n_grp): + ix = np.flatnonzero(groups == i) + vc["a"][i] = exog_vc[ix, 0:2] + vc["b"][i] = exog_vc[ix, 2:3] + + model = MixedLM(endog, exog_fe, groups, + exog_re, exog_vc=vc, use_sqrt=use_sqrt) + rslt = model.fit(reml=reml) + + loglike = loglike_function( + model, profile_fe=profile_fe, has_fe=not profile_fe) + + # Test the score at several points. + for kr in range(5): + fe_params = np.random.normal(size=k_fe) + cov_re = np.random.normal(size=(k_re, k_re)) + cov_re = np.dot(cov_re.T, cov_re) + vcomp = np.random.normal(size=2) ** 2 + params = MixedLMParams.from_components( + fe_params, cov_re=cov_re, vcomp=vcomp) + params_vec = params.get_packed( + has_fe=not profile_fe, use_sqrt=use_sqrt) + + # Check scores + gr = -model.score(params, profile_fe=profile_fe) + ngr = nd.approx_fprime(params_vec, loglike) + assert_allclose(gr, ngr, rtol=1e-3) + + # Check Hessian matrices at the MLE (we don't have + # the profile Hessian matrix and we don't care + # about the Hessian for the square root + # transformed parameter). + if (profile_fe is False) and (use_sqrt is False): + hess = -model.hessian(rslt.params_object) + params_vec = rslt.params_object.get_packed( + use_sqrt=False, has_fe=True) + loglike_h = loglike_function( + model, profile_fe=False, has_fe=True) + nhess = nd.approx_hess(params_vec, loglike_h) + assert_allclose(hess, nhess, rtol=1e-3) + + def test_default_re(self): + + np.random.seed(3235) + exog = np.random.normal(size=(300, 4)) + groups = np.kron(np.arange(100), [1, 1, 1]) + g_errors = np.kron(np.random.normal(size=100), [1, 1, 1]) + endog = exog.sum(1) + g_errors + np.random.normal(size=300) + mdf1 = MixedLM(endog, exog, groups).fit() + mdf2 = MixedLM(endog, exog, groups, np.ones(300)).fit() + assert_almost_equal(mdf1.params, mdf2.params, decimal=8) + + def test_history(self): + + np.random.seed(3235) + exog = np.random.normal(size=(300, 4)) + groups = np.kron(np.arange(100), [1, 1, 1]) + g_errors = np.kron(np.random.normal(size=100), [1, 1, 1]) + endog = exog.sum(1) + g_errors + np.random.normal(size=300) + mod = MixedLM(endog, exog, groups) + rslt = mod.fit(full_output=True) + assert_equal(hasattr(rslt, "hist"), True) + + def test_profile_inference(self): + # Smoke test + np.random.seed(9814) + k_fe = 2 + gsize = 3 + n_grp = 100 + exog = np.random.normal(size=(n_grp * gsize, k_fe)) + exog_re = np.ones((n_grp * gsize, 1)) + groups = np.kron(np.arange(n_grp), np.ones(gsize)) + vca = np.random.normal(size=n_grp * gsize) + vcb = np.random.normal(size=n_grp * gsize) + errors = 0 + g_errors = np.kron(np.random.normal(size=100), np.ones(gsize)) + errors += g_errors + exog_re[:, 0] + rc = np.random.normal(size=n_grp) + errors += np.kron(rc, np.ones(gsize)) * vca + rc = np.random.normal(size=n_grp) + errors += np.kron(rc, np.ones(gsize)) * vcb + errors += np.random.normal(size=n_grp * gsize) + + endog = exog.sum(1) + errors + vc = {"a": {}, "b": {}} + for k in range(n_grp): + ii = np.flatnonzero(groups == k) + vc["a"][k] = vca[ii][:, None] + vc["b"][k] = vcb[ii][:, None] + rslt = MixedLM(endog, exog, groups=groups, + exog_re=exog_re, exog_vc=vc).fit() + rslt.profile_re(0, vtype='re', dist_low=1, num_low=3, dist_high=1, + num_high=3) + rslt.profile_re('b', vtype='vc', dist_low=0.5, num_low=3, + dist_high=0.5, num_high=3) + + # Fails on old versions of scipy/numpy + @dec.skipif(old_scipy) + def test_vcomp_1(self): + # Fit the same model using constrained random effects and + # variance components. + + np.random.seed(4279) + exog = np.random.normal(size=(400, 1)) + exog_re = np.random.normal(size=(400, 2)) + groups = np.kron(np.arange(100), np.ones(4)) + slopes = np.random.normal(size=(100, 2)) + slopes[:, 1] *= 2 + slopes = np.kron(slopes, np.ones((4, 1))) * exog_re + errors = slopes.sum(1) + np.random.normal(size=400) + endog = exog.sum(1) + errors + + free = MixedLMParams(1, 2, 0) + free.fe_params = np.ones(1) + free.cov_re = np.eye(2) + free.vcomp = np.zeros(0) + + model1 = MixedLM(endog, exog, groups, exog_re=exog_re) + result1 = model1.fit(free=free) + + exog_vc = {"a": {}, "b": {}} + for k, group in enumerate(model1.group_labels): + ix = model1.row_indices[group] + exog_vc["a"][group] = exog_re[ix, 0:1] + exog_vc["b"][group] = exog_re[ix, 1:2] + model2 = MixedLM(endog, exog, groups, exog_vc=exog_vc) + result2 = model2.fit() + result2.summary() + + assert_allclose(result1.fe_params, result2.fe_params, atol=1e-4) + assert_allclose(np.diag(result1.cov_re), + result2.vcomp, atol=1e-2, rtol=1e-4) + assert_allclose(result1.bse[[0, 1, 3]], + result2.bse, atol=1e-2, rtol=1e-2) + + def test_vcomp_2(self): + # Simulated data comparison to R + + np.random.seed(6241) + n = 1600 + exog = np.random.normal(size=(n, 2)) + groups = np.kron(np.arange(n / 16), np.ones(16)) + + # Build up the random error vector + errors = 0 + + # The random effects + exog_re = np.random.normal(size=(n, 2)) + slopes = np.random.normal(size=(n / 16, 2)) + slopes = np.kron(slopes, np.ones((16, 1))) * exog_re + errors += slopes.sum(1) + + # First variance component + subgroups1 = np.kron(np.arange(n / 4), np.ones(4)) + errors += np.kron(2 * np.random.normal(size=n // 4), np.ones(4)) + + # Second variance component + subgroups2 = np.kron(np.arange(n / 2), np.ones(2)) + errors += np.kron(2 * np.random.normal(size=n // 2), np.ones(2)) + + # iid errors + errors += np.random.normal(size=n) + + endog = exog.sum(1) + errors + + df = pd.DataFrame(index=range(n)) + df["y"] = endog + df["groups"] = groups + df["x1"] = exog[:, 0] + df["x2"] = exog[:, 1] + df["z1"] = exog_re[:, 0] + df["z2"] = exog_re[:, 1] + df["v1"] = subgroups1 + df["v2"] = subgroups2 + + # Equivalent model in R: + # df.to_csv("tst.csv") + # model = lmer(y ~ x1 + x2 + (0 + z1 + z2 | groups) + (1 | v1) + (1 | + # v2), df) + + vcf = {"a": "0 + C(v1)", "b": "0 + C(v2)"} + model1 = MixedLM.from_formula("y ~ x1 + x2", groups=groups, + re_formula="0+z1+z2", + vc_formula=vcf, data=df) + result1 = model1.fit() + + # Compare to R + assert_allclose(result1.fe_params, [ + 0.16527, 0.99911, 0.96217], rtol=1e-4) + assert_allclose(result1.cov_re, [ + [1.244, 0.146], [0.146, 1.371]], rtol=1e-3) + assert_allclose(result1.vcomp, [4.024, 3.997], rtol=1e-3) + assert_allclose(result1.bse.iloc[0:3], [ + 0.12610, 0.03938, 0.03848], rtol=1e-3) + + @dec.skipif(old_scipy) + def test_vcomp_3(self): + # Test a model with vcomp but no other random effects, using formulas. + + np.random.seed(4279) + x1 = np.random.normal(size=400) + groups = np.kron(np.arange(100), np.ones(4)) + slopes = np.random.normal(size=100) + slopes = np.kron(slopes, np.ones(4)) * x1 + y = slopes + np.random.normal(size=400) + vc_fml = {"a": "0 + x1"} + df = pd.DataFrame({"y": y, "x1": x1, "groups": groups}) + + model = MixedLM.from_formula("y ~ 1", groups="groups", + vc_formula=vc_fml, + data=df) + result = model.fit() + result.summary() + + assert_allclose(result.resid.iloc[0:4], + np.r_[-1.180753, 0.279966, 0.578576, -0.667916], + rtol=1e-3) + assert_allclose(result.fittedvalues.iloc[0:4], + np.r_[-0.101549, 0.028613, -0.224621, -0.126295], + rtol=1e-3) + + @dec.skipif(old_scipy) + def test_sparse(self): + + cur_dir = os.path.dirname(os.path.abspath(__file__)) + rdir = os.path.join(cur_dir, 'results') + fname = os.path.join(rdir, 'pastes.csv') + + # Dense + data = pd.read_csv(fname) + vcf = {"cask": "0 + cask"} + model = MixedLM.from_formula("strength ~ 1", groups="batch", + re_formula="1", vc_formula=vcf, + data=data) + result = model.fit() + + # Sparse + model2 = MixedLM.from_formula("strength ~ 1", groups="batch", + re_formula="1", vc_formula=vcf, + use_sparse=True, data=data) + result2 = model2.fit() + + assert_allclose(result.params, result2.params) + assert_allclose(result.bse, result2.bse) + + def test_pastes_vcomp(self): + # pastes data from lme4 + # + # Fit in R using formula: + # + # strength ~ (1|batch) + (1|batch:cask) + + cur_dir = os.path.dirname(os.path.abspath(__file__)) + rdir = os.path.join(cur_dir, 'results') + fname = os.path.join(rdir, 'pastes.csv') + + # REML + data = pd.read_csv(fname) + vcf = {"cask": "0 + cask"} + model = MixedLM.from_formula("strength ~ 1", groups="batch", + re_formula="1", vc_formula=vcf, + data=data) + result = model.fit() + + assert_allclose(result.fe_params.iloc[0], 60.0533, rtol=1e-3) + assert_allclose(result.bse.iloc[0], 0.6769, rtol=1e-3) + assert_allclose(result.cov_re.iloc[0, 0], 1.657, rtol=1e-3) + assert_allclose(result.scale, 0.678, rtol=1e-3) + assert_allclose(result.llf, -123.49, rtol=1e-1) + assert_equal(result.aic, np.nan) # don't provide aic/bic with REML + assert_equal(result.bic, np.nan) + + resid = np.r_[0.17133538, -0.02866462, - + 1.08662875, 1.11337125, -0.12093607] + assert_allclose(result.resid[0:5], resid, rtol=1e-3) + + fit = np.r_[62.62866, 62.62866, 61.18663, 61.18663, 62.82094] + assert_allclose(result.fittedvalues[0:5], fit, rtol=1e-4) + + # ML + data = pd.read_csv(fname) + vcf = {"cask": "0 + cask"} + model = MixedLM.from_formula("strength ~ 1", groups="batch", + re_formula="1", vc_formula=vcf, + data=data) + result = model.fit(reml=False) + assert_allclose(result.fe_params.iloc[0], 60.0533, rtol=1e-3) + assert_allclose(result.bse.iloc[0], 0.642, rtol=1e-3) + assert_allclose(result.cov_re.iloc[0, 0], 1.199, rtol=1e-3) + assert_allclose(result.scale, 0.67799, rtol=1e-3) + assert_allclose(result.llf, -123.997, rtol=1e-1) + assert_allclose(result.aic, 255.9944, rtol=1e-3) + assert_allclose(result.bic, 264.3718, rtol=1e-3) + + def test_vcomp_formula(self): + + np.random.seed(6241) + n = 800 + exog = np.random.normal(size=(n, 2)) + exog[:, 0] = 1 + ex_vc = [] + groups = np.kron(np.arange(n / 4), np.ones(4)) + errors = 0 + exog_re = np.random.normal(size=(n, 2)) + slopes = np.random.normal(size=(n // 4, 2)) + slopes = np.kron(slopes, np.ones((4, 1))) * exog_re + errors += slopes.sum(1) + ex_vc = np.random.normal(size=(n, 4)) + slopes = np.random.normal(size=(n // 4, 4)) + slopes[:, 2:] *= 2 + slopes = np.kron(slopes, np.ones((4, 1))) * ex_vc + errors += slopes.sum(1) + errors += np.random.normal(size=n) + endog = exog.sum(1) + errors + + exog_vc = {"a": {}, "b": {}} + for k, group in enumerate(range(int(n / 4))): + ix = np.flatnonzero(groups == group) + exog_vc["a"][group] = ex_vc[ix, 0:2] + exog_vc["b"][group] = ex_vc[ix, 2:] + model1 = MixedLM(endog, exog, groups, exog_re=exog_re, exog_vc=exog_vc) + result1 = model1.fit() + + df = pd.DataFrame(exog[:, 1:], columns=["x1", ]) + df["y"] = endog + df["re1"] = exog_re[:, 0] + df["re2"] = exog_re[:, 1] + df["vc1"] = ex_vc[:, 0] + df["vc2"] = ex_vc[:, 1] + df["vc3"] = ex_vc[:, 2] + df["vc4"] = ex_vc[:, 3] + vc_formula = {"a": "0 + vc1 + vc2", "b": "0 + vc3 + vc4"} + model2 = MixedLM.from_formula("y ~ x1", groups=groups, + re_formula="0 + re1 + re2", + vc_formula=vc_formula, data=df) + result2 = model2.fit() + + assert_allclose(result1.fe_params, result2.fe_params, rtol=1e-8) + assert_allclose(result1.cov_re, result2.cov_re, rtol=1e-8) + assert_allclose(result1.vcomp, result2.vcomp, rtol=1e-8) + assert_allclose(result1.params, result2.params, rtol=1e-8) + assert_allclose(result1.bse, result2.bse, rtol=1e-8) + + def test_formulas(self): + np.random.seed(2410) + exog = np.random.normal(size=(300, 4)) + exog_re = np.random.normal(size=300) + groups = np.kron(np.arange(100), [1, 1, 1]) + g_errors = exog_re * np.kron(np.random.normal(size=100), + [1, 1, 1]) + endog = exog.sum(1) + g_errors + np.random.normal(size=300) + + mod1 = MixedLM(endog, exog, groups, exog_re) + # test the names + assert_(mod1.data.xnames == ["x1", "x2", "x3", "x4"]) + assert_(mod1.data.exog_re_names == ["x_re1"]) + assert_(mod1.data.exog_re_names_full == ["x_re1 RE"]) + rslt1 = mod1.fit() + + # Fit with a formula, passing groups as the actual values. + df = pd.DataFrame({"endog": endog}) + for k in range(exog.shape[1]): + df["exog%d" % k] = exog[:, k] + df["exog_re"] = exog_re + fml = "endog ~ 0 + exog0 + exog1 + exog2 + exog3" + re_fml = "0 + exog_re" + mod2 = MixedLM.from_formula(fml, df, re_formula=re_fml, + groups=groups) + + assert_(mod2.data.xnames == ["exog0", "exog1", "exog2", "exog3"]) + assert_(mod2.data.exog_re_names == ["exog_re"]) + assert_(mod2.data.exog_re_names_full == ["exog_re RE"]) + + rslt2 = mod2.fit() + assert_almost_equal(rslt1.params, rslt2.params) + + # Fit with a formula, passing groups as the variable name. + df["groups"] = groups + mod3 = MixedLM.from_formula(fml, df, re_formula=re_fml, + groups="groups") + assert_(mod3.data.xnames == ["exog0", "exog1", "exog2", "exog3"]) + assert_(mod3.data.exog_re_names == ["exog_re"]) + assert_(mod3.data.exog_re_names_full == ["exog_re RE"]) + + rslt3 = mod3.fit(start_params=rslt2.params) + assert_allclose(rslt1.params, rslt3.params, rtol=1e-4) + + # Check default variance structure with non-formula model + # creation, also use different exog_re that produces a zero + # estimated variance parameter. + exog_re = np.ones(len(endog), dtype=np.float64) + mod4 = MixedLM(endog, exog, groups, exog_re) + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + rslt4 = mod4.fit() + from statsmodels.formula.api import mixedlm + mod5 = mixedlm(fml, df, groups="groups") + assert_(mod5.data.exog_re_names == ["groups"]) + assert_(mod5.data.exog_re_names_full == ["groups RE"]) + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + rslt5 = mod5.fit() + assert_almost_equal(rslt4.params, rslt5.params) + + @dec.skipif(old_scipy) + def test_regularized(self): + + np.random.seed(3453) + exog = np.random.normal(size=(400, 5)) + groups = np.kron(np.arange(100), np.ones(4)) + expected_endog = exog[:, 0] - exog[:, 2] + endog = expected_endog +\ + np.kron(np.random.normal(size=100), np.ones(4)) +\ + np.random.normal(size=400) + + # L1 regularization + md = MixedLM(endog, exog, groups) + mdf1 = md.fit_regularized(alpha=1.) + mdf1.summary() + + # L1 regularization + md = MixedLM(endog, exog, groups) + mdf2 = md.fit_regularized(alpha=10 * np.ones(5)) + mdf2.summary() + + # L2 regularization + pen = penalties.L2() + mdf3 = md.fit_regularized(method=pen, alpha=0.) + mdf3.summary() + + # L2 regularization + pen = penalties.L2() + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + mdf4 = md.fit_regularized(method=pen, alpha=100.) + mdf4.summary() + + # Pseudo-Huber regularization + pen = penalties.PseudoHuber(0.3) + mdf5 = md.fit_regularized(method=pen, alpha=1.) + mdf5.summary() + + def do1(self, reml, irf, ds_ix): + + # No need to check independent random effects when there is + # only one of them. + if irf and ds_ix < 6: + return + + irfs = "irf" if irf else "drf" + meth = "reml" if reml else "ml" + + rslt = R_Results(meth, irfs, ds_ix) + + # Fit the model + md = MixedLM(rslt.endog, rslt.exog_fe, rslt.groups, + rslt.exog_re) + if not irf: # Free random effects covariance + if np.any(np.diag(rslt.cov_re_r) < 1e-5): + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + mdf = md.fit(gtol=1e-7, reml=reml) + else: + mdf = md.fit(gtol=1e-7, reml=reml) + else: # Independent random effects + k_fe = rslt.exog_fe.shape[1] + k_re = rslt.exog_re.shape[1] + free = MixedLMParams(k_fe, k_re, 0) + free.fe_params = np.ones(k_fe) + free.cov_re = np.eye(k_re) + free.vcomp = np.array([]) + if np.any(np.diag(rslt.cov_re_r) < 1e-5): + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + mdf = md.fit(reml=reml, gtol=1e-7, free=free) + else: + mdf = md.fit(reml=reml, gtol=1e-7, free=free) + + assert_almost_equal(mdf.fe_params, rslt.coef, decimal=4) + assert_almost_equal(mdf.cov_re, rslt.cov_re_r, decimal=4) + assert_almost_equal(mdf.scale, rslt.scale_r, decimal=4) + + k_fe = md.k_fe + assert_almost_equal(rslt.vcov_r, mdf.cov_params()[0:k_fe, 0:k_fe], + decimal=3) + + assert_almost_equal(mdf.llf, rslt.loglike[0], decimal=2) + + # Not supported in R except for independent random effects + if not irf: + assert_almost_equal(mdf.random_effects[0], rslt.ranef_postmean, + decimal=3) + assert_almost_equal(mdf.random_effects_cov[0], + rslt.ranef_condvar, + decimal=3) + + # Run all the tests against R + def test_r(self): + + cur_dir = os.path.dirname(os.path.abspath(__file__)) + rdir = os.path.join(cur_dir, 'results') + fnames = os.listdir(rdir) + fnames = [x for x in fnames if x.startswith("lme") + and x.endswith(".csv")] + + for fname in fnames: + for reml in False, True: + for irf in False, True: + ds_ix = int(fname[3:5]) + + yield self.do1, reml, irf, ds_ix + + +def test_mixed_lm_wrapper(): + # a bit more complicated model to test + np.random.seed(2410) + exog = np.random.normal(size=(300, 4)) + exog_re = np.random.normal(size=300) + groups = np.kron(np.arange(100), [1, 1, 1]) + g_errors = exog_re * np.kron(np.random.normal(size=100), + [1, 1, 1]) + endog = exog.sum(1) + g_errors + np.random.normal(size=300) + + # Fit with a formula, passing groups as the actual values. + df = pd.DataFrame({"endog": endog}) + for k in range(exog.shape[1]): + df["exog%d" % k] = exog[:, k] + df["exog_re"] = exog_re + fml = "endog ~ 0 + exog0 + exog1 + exog2 + exog3" + re_fml = "~ exog_re" + mod2 = MixedLM.from_formula(fml, df, re_formula=re_fml, + groups=groups) + result = mod2.fit() + result.summary() + + xnames = ["exog0", "exog1", "exog2", "exog3"] + re_names = ["Intercept", "exog_re"] + re_names_full = ["Intercept RE", "Intercept RE x exog_re RE", + "exog_re RE"] + + assert_(mod2.data.xnames == xnames) + assert_(mod2.data.exog_re_names == re_names) + assert_(mod2.data.exog_re_names_full == re_names_full) + + params = result.params + assert_(params.index.tolist() == xnames + re_names_full) + bse = result.bse + assert_(bse.index.tolist() == xnames + re_names_full) + tvalues = result.tvalues + assert_(tvalues.index.tolist() == xnames + re_names_full) + cov_params = result.cov_params() + assert_(cov_params.index.tolist() == xnames + re_names_full) + assert_(cov_params.columns.tolist() == xnames + re_names_full) + fe = result.fe_params + assert_(fe.index.tolist() == xnames) + bse_fe = result.bse_fe + assert_(bse_fe.index.tolist() == xnames) + cov_re = result.cov_re + assert_(cov_re.index.tolist() == re_names) + assert_(cov_re.columns.tolist() == re_names) + cov_re_u = result.cov_re_unscaled + assert_(cov_re_u.index.tolist() == re_names) + assert_(cov_re_u.columns.tolist() == re_names) + bse_re = result.bse_re + assert_(bse_re.index.tolist() == re_names_full) + +def test_random_effects(): + + np.random.seed(23429) + + # Default model (random effects only) + ngrp = 100 + gsize = 10 + rsd = 2 + gsd = 3 + mn = gsd*np.random.normal(size=ngrp) + gmn = np.kron(mn, np.ones(gsize)) + y = gmn + rsd*np.random.normal(size=ngrp*gsize) + gr = np.kron(np.arange(ngrp), np.ones(gsize)) + x = np.ones(ngrp * gsize) + model = MixedLM(y, x, groups=gr) + result = model.fit() + re = result.random_effects + assert_(isinstance(re, dict)) + assert_(len(re) == ngrp) + assert_(isinstance(re[0], pd.Series)) + assert_(len(re[0]) == 1) + + # Random intercept only, set explicitly + model = MixedLM(y, x, exog_re=x, groups=gr) + result = model.fit() + re = result.random_effects + assert_(isinstance(re, dict)) + assert_(len(re) == ngrp) + assert_(isinstance(re[0], pd.Series)) + assert_(len(re[0]) == 1) + + # Random intercept and slope + xr = np.random.normal(size=(ngrp*gsize, 2)) + xr[:, 0] = 1 + qp = np.linspace(-1, 1, gsize) + xr[:, 1] = np.kron(np.ones(ngrp), qp) + model = MixedLM(y, x, exog_re=xr, groups=gr) + result = model.fit() + re = result.random_effects + assert_(isinstance(re, dict)) + assert_(len(re) == ngrp) + assert_(isinstance(re[0], pd.Series)) + assert_(len(re[0]) == 2) + +if __name__ == "__main__": + + import nose + + nose.runmodule(argv=[__file__, '-vvs', '-x', '--pdb', '--pdb-failure'], + exit=False) diff --git a/statsmodels/regression/tests/test_quantile_regression.py b/statsmodels/regression/tests/test_quantile_regression.py new file mode 100644 index 0000000..bccf53e --- /dev/null +++ b/statsmodels/regression/tests/test_quantile_regression.py @@ -0,0 +1,255 @@ +from unittest import TestCase +import scipy.stats +import numpy as np +import statsmodels.api as sm +from numpy.testing import assert_allclose, assert_equal, assert_almost_equal +from patsy import dmatrices # pylint: disable=E0611 +from statsmodels.regression.quantile_regression import QuantReg +from .results_quantile_regression import ( + biweight_chamberlain, biweight_hsheather, biweight_bofinger, + cosine_chamberlain, cosine_hsheather, cosine_bofinger, + gaussian_chamberlain, gaussian_hsheather, gaussian_bofinger, + epan2_chamberlain, epan2_hsheather, epan2_bofinger, + parzen_chamberlain, parzen_hsheather, parzen_bofinger, + # rectangle_chamberlain, rectangle_hsheather, rectangle_bofinger, + # triangle_chamberlain, triangle_hsheather, triangle_bofinger, + # epanechnikov_chamberlain, epanechnikov_hsheather, epanechnikov_bofinger, + epanechnikov_hsheather_q75, Rquantreg) + +idx = ['income', 'Intercept'] + + +class CheckModelResultsMixin(object): + def test_params(self): + assert_allclose(np.ravel(self.res1.params.ix[idx]), + self.res2.table[:, 0], rtol=1e-3) + + def test_bse(self): + assert_equal(self.res1.scale, 1) + assert_allclose(np.ravel(self.res1.bse.ix[idx]), + self.res2.table[:, 1], rtol=1e-3) + + def test_tvalues(self): + assert_allclose(np.ravel(self.res1.tvalues.ix[idx]), + self.res2.table[:, 2], rtol=1e-2) + + def test_pvalues(self): + pvals_stata = scipy.stats.t.sf(self.res2.table[:, 2], self.res2.df_r) + assert_allclose(np.ravel(self.res1.pvalues.ix[idx]), + pvals_stata, rtol=1.1) + + # test that we use the t distribution for the p-values + pvals_t = scipy.stats.t.sf(self.res1.tvalues, self.res2.df_r) * 2 + assert_allclose(np.ravel(self.res1.pvalues), + pvals_t, rtol=1e-9, atol=1e-10) + + def test_conf_int(self): + assert_allclose(self.res1.conf_int().ix[idx], + self.res2.table[:, -2:], rtol=1e-3) + + def test_nobs(self): + assert_allclose(self.res1.nobs, self.res2.N, rtol=1e-3) + + def test_df_model(self): + assert_allclose(self.res1.df_model, self.res2.df_m, rtol=1e-3) + + def test_df_resid(self): + assert_allclose(self.res1.df_resid, self.res2.df_r, rtol=1e-3) + + def test_prsquared(self): + assert_allclose(self.res1.prsquared, self.res2.psrsquared, rtol=1e-3) + + def test_sparsity(self): + assert_allclose(np.array(self.res1.sparsity), + self.res2.sparsity, rtol=1e-3) + + def test_bandwidth(self): + assert_allclose(np.array(self.res1.bandwidth), + self.res2.kbwidth, rtol=1e-3) + + +d = {('biw', 'bofinger'): biweight_bofinger, + ('biw', 'chamberlain'): biweight_chamberlain, + ('biw', 'hsheather'): biweight_hsheather, + ('cos', 'bofinger'): cosine_bofinger, + ('cos', 'chamberlain'): cosine_chamberlain, + ('cos', 'hsheather'): cosine_hsheather, + ('gau', 'bofinger'): gaussian_bofinger, + ('gau', 'chamberlain'): gaussian_chamberlain, + ('gau', 'hsheather'): gaussian_hsheather, + ('par', 'bofinger'): parzen_bofinger, + ('par', 'chamberlain'): parzen_chamberlain, + ('par', 'hsheather'): parzen_hsheather, + # ('rec','bofinger'): rectangle_bofinger, + # ('rec','chamberlain'): rectangle_chamberlain, + # ('rec','hsheather'): rectangle_hsheather, + # ('tri','bofinger'): triangle_bofinger, + # ('tri','chamberlain'): triangle_chamberlain, + # ('tri','hsheather'): triangle_hsheather, + ('epa', 'bofinger'): epan2_bofinger, + ('epa', 'chamberlain'): epan2_chamberlain, + ('epa', 'hsheather'): epan2_hsheather + # ('epa2', 'bofinger'): epan2_bofinger, + # ('epa2', 'chamberlain'): epan2_chamberlain, + # ('epa2', 'hsheather'): epan2_hsheather + } + + +def setup_fun(kernel='gau', bandwidth='bofinger'): + data = sm.datasets.engel.load_pandas().data + y, X = dmatrices('foodexp ~ income', data, return_type='dataframe') + statsm = QuantReg(y, X).fit(vcov='iid', kernel=kernel, bandwidth=bandwidth) + stata = d[(kernel, bandwidth)] + return statsm, stata + + +def test_fitted_residuals(): + data = sm.datasets.engel.load_pandas().data + y, X = dmatrices('foodexp ~ income', data, return_type='dataframe') + res = QuantReg(y, X).fit(q=.1) + # Note: maxabs relative error with fitted is 1.789e-09 + assert_almost_equal(np.array(res.fittedvalues), Rquantreg.fittedvalues, 5) + assert_almost_equal(np.array(res.predict()), Rquantreg.fittedvalues, 5) + assert_almost_equal(np.array(res.resid), Rquantreg.residuals, 5) + + +class TestEpanechnikovHsheatherQ75(TestCase, CheckModelResultsMixin): + # Vincent Arel-Bundock also spot-checked q=.1 + @classmethod + def setup_class(cls): + data = sm.datasets.engel.load_pandas().data + y, X = dmatrices('foodexp ~ income', data, return_type='dataframe') + cls.res1 = QuantReg(y, X).fit(q=.75, vcov='iid', kernel='epa', bandwidth='hsheather') + cls.res2 = epanechnikov_hsheather_q75 + + +class TestEpanechnikovBofinger(TestCase, CheckModelResultsMixin): + @classmethod + def setup_class(cls): + cls.res1, cls.res2 = setup_fun('epa', 'bofinger') + + +class TestEpanechnikovChamberlain(TestCase, CheckModelResultsMixin): + @classmethod + def setup_class(cls): + cls.res1, cls.res2 = setup_fun('epa', 'chamberlain') + + +class TestEpanechnikovHsheather(TestCase, CheckModelResultsMixin): + @classmethod + def setup_class(cls): + cls.res1, cls.res2 = setup_fun('epa', 'hsheather') + + +class TestGaussianBofinger(TestCase, CheckModelResultsMixin): + @classmethod + def setup_class(cls): + cls.res1, cls.res2 = setup_fun('gau', 'bofinger') + + +class TestGaussianChamberlain(TestCase, CheckModelResultsMixin): + @classmethod + def setup_class(cls): + cls.res1, cls.res2 = setup_fun('gau', 'chamberlain') + + +class TestGaussianHsheather(TestCase, CheckModelResultsMixin): + @classmethod + def setup_class(cls): + cls.res1, cls.res2 = setup_fun('gau', 'hsheather') + + +class TestBiweightBofinger(TestCase, CheckModelResultsMixin): + @classmethod + def setup_class(cls): + cls.res1, cls.res2 = setup_fun('biw', 'bofinger') + + +class TestBiweightChamberlain(TestCase, CheckModelResultsMixin): + @classmethod + def setup_class(cls): + cls.res1, cls.res2 = setup_fun('biw', 'chamberlain') + + +class TestBiweightHsheather(TestCase, CheckModelResultsMixin): + @classmethod + def setup_class(cls): + cls.res1, cls.res2 = setup_fun('biw', 'hsheather') + + +class TestCosineBofinger(TestCase, CheckModelResultsMixin): + @classmethod + def setup_class(cls): + cls.res1, cls.res2 = setup_fun('cos', 'bofinger') + + +class TestCosineChamberlain(TestCase, CheckModelResultsMixin): + @classmethod + def setup_class(cls): + cls.res1, cls.res2 = setup_fun('cos', 'chamberlain') + + +class TestCosineHsheather(TestCase, CheckModelResultsMixin): + @classmethod + def setup_class(cls): + cls.res1, cls.res2 = setup_fun('cos', 'hsheather') + + +class TestParzeneBofinger(TestCase, CheckModelResultsMixin): + @classmethod + def setup_class(cls): + cls.res1, cls.res2 = setup_fun('par', 'bofinger') + + +class TestParzeneChamberlain(TestCase, CheckModelResultsMixin): + @classmethod + def setup_class(cls): + cls.res1, cls.res2 = setup_fun('par', 'chamberlain') + + +class TestParzeneHsheather(TestCase, CheckModelResultsMixin): + @classmethod + def setup_class(cls): + cls.res1, cls.res2 = setup_fun('par', 'hsheather') + +# class TestTriangleBofinger(TestCase, CheckModelResultsMixin): +# @classmethod +# def setup_class(cls): +# cls.res1, cls.res2 = setup_fun('tri', 'bofinger') + +# class TestTriangleChamberlain(TestCase, CheckModelResultsMixin): +# @classmethod +# def setup_class(cls): +# cls.res1, cls.res2 = setup_fun('tri', 'chamberlain') + +# class TestTriangleHsheather(TestCase, CheckModelResultsMixin): +# @classmethod +# def setup_class(cls): +# cls.res1, cls.res2 = setup_fun('tri', 'hsheather') + + +def test_zero_resid(): + # smoke and regression tests + + X = np.array([[1, 0], [0, 1], [0, 2.1], [0, 3.1]], dtype=np.float64) + y = np.array([0, 1, 2, 3], dtype=np.float64) + + res = QuantReg(y, X).fit(0.5, bandwidth='chamberlain') # 'bofinger') + res.summary() + + assert_allclose(res.params, np.array([0.0, 0.96774163]), rtol=1e-4, atol=1e-20) + assert_allclose(res.bse, np.array([0.0447576, 0.01154867]), rtol=1e-4, atol=1e-20) + assert_allclose(res.resid, np.array([0.0, 3.22583680e-02, -3.22574272e-02, + 9.40732912e-07]), rtol=1e-4, atol=1e-20) + + X = np.array([[1, 0], [0.1, 1], [0, 2.1], [0, 3.1]], dtype=np.float64) + y = np.array([0, 1, 2, 3], dtype=np.float64) + + res = QuantReg(y, X).fit(0.5, bandwidth='chamberlain') + res.summary() + + assert_allclose(res.params, np.array([9.99982796e-08, 9.67741630e-01]), + rtol=1e-4, atol=1e-20) + assert_allclose(res.bse, np.array([0.04455029, 0.01155251]), rtol=1e-4, atol=1e-20) + assert_allclose(res.resid, np.array([-9.99982796e-08, 3.22583598e-02, + -3.22574234e-02, 9.46361860e-07]), rtol=1e-4, atol=1e-20) diff --git a/statsmodels/regression/tests/test_recursive_ls.py b/statsmodels/regression/tests/test_recursive_ls.py new file mode 100644 index 0000000..c6c5810 --- /dev/null +++ b/statsmodels/regression/tests/test_recursive_ls.py @@ -0,0 +1,259 @@ +""" +Tests for recursive least squares models + +Author: Chad Fulton +License: Simplified-BSD +""" +from __future__ import division, absolute_import, print_function + +import numpy as np +import pandas as pd +import os + +import warnings +from statsmodels.datasets import macrodata +from statsmodels.regression.linear_model import OLS +from statsmodels.regression.recursive_ls import RecursiveLS +from statsmodels.stats.diagnostic import recursive_olsresiduals +from statsmodels.tools import add_constant +from numpy.testing import assert_equal, assert_almost_equal, assert_raises, assert_allclose +from nose.exc import SkipTest + +try: + import matplotlib.pyplot as plt + have_matplotlib = True +except ImportError: + have_matplotlib = False + + +current_path = os.path.dirname(os.path.abspath(__file__)) + +results_R_path = 'results' + os.sep + 'results_rls_R.csv' +results_R = pd.read_csv(current_path + os.sep + results_R_path) + +results_stata_path = 'results' + os.sep + 'results_rls_stata.csv' +results_stata = pd.read_csv(current_path + os.sep + results_stata_path) + +dta = macrodata.load_pandas().data +dta.index = pd.date_range(start='1959-01-01', end='2009-07-01', freq='QS') + +endog = dta['cpi'] +exog = add_constant(dta['m1']) + + +def test_endog(): + # Tests for numpy input + mod = RecursiveLS(endog.values, exog.values) + res = mod.fit() + + # Test the RLS estimates against OLS estimates + mod_ols = OLS(endog, exog) + res_ols = mod_ols.fit() + assert_allclose(res.params, res_ols.params) + + # Tests for 1-dim exog + mod = RecursiveLS(endog, dta['m1'].values) + res = mod.fit() + + # Test the RLS estimates against OLS estimates + mod_ols = OLS(endog, dta['m1']) + res_ols = mod_ols.fit() + assert_allclose(res.params, res_ols.params) + + +def test_filter(): + # Basic test for filtering + mod = RecursiveLS(endog, exog) + res = mod.filter() + + # Test the RLS estimates against OLS estimates + mod_ols = OLS(endog, exog) + res_ols = mod_ols.fit() + assert_allclose(res.params, res_ols.params, atol=1e-5, rtol=1e-4) + + +def test_estimates(): + mod = RecursiveLS(endog, exog) + res = mod.fit() + + # Test for start_params + assert_equal(mod.start_params, 0) + + + # Test the RLS coefficient estimates against those from R (quantreg) + # Due to initialization issues, we get more agreement as we get + # farther from the initial values. + assert_allclose(res.recursive_coefficients.filtered[:, 2:10].T, + results_R.ix[:7, ['beta1', 'beta2']], atol=1e-2, rtol=1e-3) + assert_allclose(res.recursive_coefficients.filtered[:, 9:20].T, + results_R.ix[7:17, ['beta1', 'beta2']], atol=1e-3, rtol=1e-4) + assert_allclose(res.recursive_coefficients.filtered[:, 19:].T, + results_R.ix[17:, ['beta1', 'beta2']], atol=1e-4, rtol=1e-4) + + # Test the RLS estimates against OLS estimates + mod_ols = OLS(endog, exog) + res_ols = mod_ols.fit() + assert_allclose(res.params, res_ols.params) + + +def test_plots(): + if not have_matplotlib: + raise SkipTest + + exog = add_constant(dta[['m1', 'pop']]) + mod = RecursiveLS(endog, exog) + res = mod.fit() + + # Basic plot + fig = res.plot_recursive_coefficient() + plt.close(fig) + + # Specific variable + fig = res.plot_recursive_coefficient(variables=['m1']) + plt.close(fig) + + # All variables + fig = res.plot_recursive_coefficient(variables=[0, 'm1', 'pop']) + plt.close(fig) + + # Basic plot + fig = res.plot_cusum() + plt.close(fig) + + # Other alphas + for alpha in [0.01, 0.10]: + fig = res.plot_cusum(alpha=alpha) + plt.close(fig) + + # Invalid alpha + assert_raises(ValueError, res.plot_cusum, alpha=0.123) + + # Basic plot + fig = res.plot_cusum_squares() + plt.close(fig) + + # Numpy input (no dates) + mod = RecursiveLS(endog.values, exog.values) + res = mod.fit() + + # Basic plot + fig = res.plot_recursive_coefficient() + plt.close(fig) + + # Basic plot + fig = res.plot_cusum() + plt.close(fig) + + # Basic plot + fig = res.plot_cusum_squares() + plt.close(fig) + + +def test_from_formula(): + mod = RecursiveLS.from_formula('cpi ~ m1', data=dta) + res = mod.fit() + + # Test the RLS estimates against OLS estimates + mod_ols = OLS.from_formula('cpi ~ m1', data=dta) + res_ols = mod_ols.fit() + assert_allclose(res.params, res_ols.params) + + +def test_resid_recursive(): + mod = RecursiveLS(endog, exog) + res = mod.fit() + + # Test the recursive residuals against those from R (strucchange) + # Due to initialization issues, we get more agreement as we get + # farther from the initial values. + assert_allclose(res.resid_recursive[2:10].T, + results_R.ix[:7, 'rec_resid'], atol=1e-2, rtol=1e-3) + assert_allclose(res.resid_recursive[9:20].T, + results_R.ix[7:17, 'rec_resid'], atol=1e-3, rtol=1e-4) + assert_allclose(res.resid_recursive[19:].T, + results_R.ix[17:, 'rec_resid'], atol=1e-4, rtol=1e-4) + + # Test the RLS estimates against those from Stata (cusum6) + assert_allclose(res.resid_recursive[3:], + results_stata.ix[3:, 'rr'], atol=1e-3) + + # Test the RLS estimates against statsmodels estimates + mod_ols = OLS(endog, exog) + res_ols = mod_ols.fit() + desired_resid_recursive = recursive_olsresiduals(res_ols)[4][2:] + assert_allclose(res.resid_recursive[2:], desired_resid_recursive, + atol=1e-4, rtol=1e-4) + + +def test_cusum(): + mod = RecursiveLS(endog, exog) + res = mod.fit() + + # Test the cusum statistics against those from R (strucchange) + # These values are not even close to ours, to Statas, or to the alternate + # statsmodels values + # assert_allclose(res.cusum, results_R['cusum']) + + # Test the cusum statistics against Stata (cusum6) + # Note: cusum6 excludes the first 3 elements due to OLS initialization + # whereas we exclude only the first 2. Also there are initialization + # differences (as seen above in the recursive residuals). + # Here we explicitly reverse engineer our cusum to match their to show the + # equivalence + llb = res.loglikelihood_burn + cusum = res.cusum * np.std(res.resid_recursive[llb:], ddof=1) + cusum -= res.resid_recursive[llb] + cusum /= np.std(res.resid_recursive[llb+1:], ddof=1) + cusum = cusum[1:] + assert_allclose(cusum, results_stata.ix[3:, 'cusum'], atol=1e-3, rtol=1e-3) + + # Test the cusum statistics against statsmodels estimates + mod_ols = OLS(endog, exog) + res_ols = mod_ols.fit() + desired_cusum = recursive_olsresiduals(res_ols)[-2][1:] + assert_allclose(res.cusum, desired_cusum, atol=1e-4, rtol=1e-4) + + # Test the cusum bounds against Stata (cusum6) + # Again note that cusum6 excludes the first 3 elements, so we need to + # change the ddof and points. + actual_bounds = res._cusum_significance_bounds( + alpha=0.05, ddof=1, points=np.arange(llb+1, res.nobs)) + desired_bounds = results_stata.ix[3:, ['lw', 'uw']].T + assert_allclose(actual_bounds, desired_bounds, atol=1e-4) + + # Test the cusum bounds against statsmodels + actual_bounds = res._cusum_significance_bounds( + alpha=0.05, ddof=0, points=np.arange(llb, res.nobs)) + desired_bounds = recursive_olsresiduals(res_ols)[-1] + assert_allclose(actual_bounds, desired_bounds) + + # Test for invalid calls + assert_raises(ValueError, res._cusum_squares_significance_bounds, + alpha=0.123) + + +def test_stata(): + # Test the cusum and cusumsq statistics against Stata (cusum6) + # Note that here we change the loglikelihood_burn variable to explicitly + # excude the first 3 elements as in Stata, so we can compare directly + mod = RecursiveLS(endog, exog, loglikelihood_burn=3) + res = mod.fit() + llb = res.loglikelihood_burn + + assert_allclose(res.resid_recursive[3:], results_stata.ix[3:, 'rr'], + atol=1e-4, rtol=1e-4) + assert_allclose(res.cusum, results_stata.ix[3:, 'cusum'], atol=1e-4) + assert_allclose(res.cusum_squares, results_stata.ix[3:, 'cusum2'], + atol=1e-4) + + actual_bounds = res._cusum_significance_bounds( + alpha=0.05, ddof=0, points=np.arange(llb+1, res.nobs+1)) + desired_bounds = results_stata.ix[3:, ['lw', 'uw']].T + assert_allclose(actual_bounds, desired_bounds, atol=1e-4) + + # Note: Stata uses a set of tabulated critical values whereas we use an + # approximation formula, so this test is quite imprecise + actual_bounds = res._cusum_squares_significance_bounds( + alpha=0.05, points=np.arange(llb+1, res.nobs+1)) + desired_bounds = results_stata.ix[3:, ['lww', 'uww']].T + assert_allclose(actual_bounds, desired_bounds, atol=1e-2) diff --git a/statsmodels/regression/tests/test_regression.py b/statsmodels/regression/tests/test_regression.py new file mode 100644 index 0000000..441e937 --- /dev/null +++ b/statsmodels/regression/tests/test_regression.py @@ -0,0 +1,1105 @@ +""" +Test functions for models.regression +""" +# TODO: Test for LM +from statsmodels.compat.python import long, lrange +import warnings +import pandas +import numpy as np +from numpy.testing import (assert_almost_equal, assert_approx_equal, assert_, + assert_raises, assert_equal, assert_allclose) +from scipy.linalg import toeplitz +from statsmodels.tools.tools import add_constant, categorical +from statsmodels.compat.numpy import np_matrix_rank +from statsmodels.regression.linear_model import OLS, WLS, GLS, yule_walker +from statsmodels.datasets import longley +from scipy.stats import t as student_t + +DECIMAL_4 = 4 +DECIMAL_3 = 3 +DECIMAL_2 = 2 +DECIMAL_1 = 1 +DECIMAL_7 = 7 +DECIMAL_0 = 0 + + +class CheckRegressionResults(object): + """ + res2 contains results from Rmodelwrap or were obtained from a statistical + packages such as R, Stata, or SAS and were written to model_results + """ + + decimal_params = DECIMAL_4 + def test_params(self): + assert_almost_equal(self.res1.params, self.res2.params, + self.decimal_params) + + decimal_standarderrors = DECIMAL_4 + def test_standarderrors(self): + assert_almost_equal(self.res1.bse,self.res2.bse, + self.decimal_standarderrors) + + decimal_confidenceintervals = DECIMAL_4 + def test_confidenceintervals(self): + #NOTE: stata rounds residuals (at least) to sig digits so approx_equal + conf1 = self.res1.conf_int() + conf2 = self.res2.conf_int() + for i in range(len(conf1)): + assert_approx_equal(conf1[i][0], conf2[i][0], + self.decimal_confidenceintervals) + assert_approx_equal(conf1[i][1], conf2[i][1], + self.decimal_confidenceintervals) + + decimal_conf_int_subset = DECIMAL_4 + def test_conf_int_subset(self): + if len(self.res1.params) > 1: + ci1 = self.res1.conf_int(cols=(1,2)) + ci2 = self.res1.conf_int()[1:3] + assert_almost_equal(ci1, ci2, self.decimal_conf_int_subset) + else: + pass + + decimal_scale = DECIMAL_4 + def test_scale(self): + assert_almost_equal(self.res1.scale, self.res2.scale, + self.decimal_scale) + + decimal_rsquared = DECIMAL_4 + def test_rsquared(self): + assert_almost_equal(self.res1.rsquared, self.res2.rsquared, + self.decimal_rsquared) + + decimal_rsquared_adj = DECIMAL_4 + def test_rsquared_adj(self): + assert_almost_equal(self.res1.rsquared_adj, self.res2.rsquared_adj, + self.decimal_rsquared_adj) + + def test_degrees(self): + assert_equal(self.res1.model.df_model, self.res2.df_model) + assert_equal(self.res1.model.df_resid, self.res2.df_resid) + + decimal_ess = DECIMAL_4 + def test_ess(self): + #Explained Sum of Squares + assert_almost_equal(self.res1.ess, self.res2.ess, + self.decimal_ess) + + decimal_ssr = DECIMAL_4 + def test_sumof_squaredresids(self): + assert_almost_equal(self.res1.ssr, self.res2.ssr, self.decimal_ssr) + + decimal_mse_resid = DECIMAL_4 + def test_mse_resid(self): + #Mean squared error of residuals + assert_almost_equal(self.res1.mse_model, self.res2.mse_model, + self.decimal_mse_resid) + + decimal_mse_model = DECIMAL_4 + def test_mse_model(self): + assert_almost_equal(self.res1.mse_resid, self.res2.mse_resid, + self.decimal_mse_model) + + decimal_mse_total = DECIMAL_4 + def test_mse_total(self): + assert_almost_equal(self.res1.mse_total, self.res2.mse_total, + self.decimal_mse_total, err_msg="Test class %s" % self) + + decimal_fvalue = DECIMAL_4 + def test_fvalue(self): + #didn't change this, not sure it should complain -inf not equal -inf + #if not (np.isinf(self.res1.fvalue) and np.isinf(self.res2.fvalue)): + assert_almost_equal(self.res1.fvalue, self.res2.fvalue, + self.decimal_fvalue) + + decimal_loglike = DECIMAL_4 + def test_loglike(self): + assert_almost_equal(self.res1.llf, self.res2.llf, self.decimal_loglike) + + decimal_aic = DECIMAL_4 + def test_aic(self): + assert_almost_equal(self.res1.aic, self.res2.aic, self.decimal_aic) + + decimal_bic = DECIMAL_4 + def test_bic(self): + assert_almost_equal(self.res1.bic, self.res2.bic, self.decimal_bic) + + decimal_pvalues = DECIMAL_4 + def test_pvalues(self): + assert_almost_equal(self.res1.pvalues, self.res2.pvalues, + self.decimal_pvalues) + + decimal_wresid = DECIMAL_4 + def test_wresid(self): + assert_almost_equal(self.res1.wresid, self.res2.wresid, + self.decimal_wresid) + + decimal_resids = DECIMAL_4 + def test_resids(self): + assert_almost_equal(self.res1.resid, self.res2.resid, + self.decimal_resids) + + decimal_norm_resids = DECIMAL_4 + def test_norm_resids(self): + assert_almost_equal(self.res1.resid_pearson, self.res2.resid_pearson, + self.decimal_norm_resids) + +#TODO: test fittedvalues and what else? + +class TestOLS(CheckRegressionResults): + @classmethod + def setupClass(cls): + from .results.results_regression import Longley + data = longley.load() + data.exog = add_constant(data.exog, prepend=False) + res1 = OLS(data.endog, data.exog).fit() + res2 = Longley() + res2.wresid = res1.wresid # workaround hack + cls.res1 = res1 + cls.res2 = res2 + + res_qr = OLS(data.endog, data.exog).fit(method="qr") + + model_qr = OLS(data.endog, data.exog) + Q, R = np.linalg.qr(data.exog) + model_qr.exog_Q, model_qr.exog_R = Q, R + model_qr.normalized_cov_params = np.linalg.inv(np.dot(R.T, R)) + model_qr.rank = np_matrix_rank(R) + res_qr2 = model_qr.fit(method="qr") + + cls.res_qr = res_qr + cls.res_qr_manual = res_qr2 + + def test_eigenvalues(self): + eigenval_perc_diff = (self.res_qr.eigenvals - self.res_qr_manual.eigenvals) + eigenval_perc_diff /= self.res_qr.eigenvals + zeros = np.zeros_like(eigenval_perc_diff) + assert_almost_equal(eigenval_perc_diff, zeros, DECIMAL_7) + + + # Robust error tests. Compare values computed with SAS + def test_HC0_errors(self): + #They are split up because the copied results do not have any DECIMAL_4 + #places for the last place. + assert_almost_equal(self.res1.HC0_se[:-1], + self.res2.HC0_se[:-1], DECIMAL_4) + assert_approx_equal(np.round(self.res1.HC0_se[-1]), self.res2.HC0_se[-1]) + + def test_HC1_errors(self): + assert_almost_equal(self.res1.HC1_se[:-1], + self.res2.HC1_se[:-1], DECIMAL_4) + assert_approx_equal(self.res1.HC1_se[-1], self.res2.HC1_se[-1]) + + def test_HC2_errors(self): + assert_almost_equal(self.res1.HC2_se[:-1], + self.res2.HC2_se[:-1], DECIMAL_4) + assert_approx_equal(self.res1.HC2_se[-1], self.res2.HC2_se[-1]) + + def test_HC3_errors(self): + assert_almost_equal(self.res1.HC3_se[:-1], + self.res2.HC3_se[:-1], DECIMAL_4) + assert_approx_equal(self.res1.HC3_se[-1], self.res2.HC3_se[-1]) + + def test_qr_params(self): + assert_almost_equal(self.res1.params, + self.res_qr.params, 6) + + def test_qr_normalized_cov_params(self): + #todo: need assert_close + assert_almost_equal(np.ones_like(self.res1.normalized_cov_params), + self.res1.normalized_cov_params / + self.res_qr.normalized_cov_params, 5) + + def test_missing(self): + data = longley.load() + data.exog = add_constant(data.exog, prepend=False) + data.endog[[3, 7, 14]] = np.nan + mod = OLS(data.endog, data.exog, missing='drop') + assert_equal(mod.endog.shape[0], 13) + assert_equal(mod.exog.shape[0], 13) + + def test_rsquared_adj_overfit(self): + # Test that if df_resid = 0, rsquared_adj = 0. + # This is a regression test for user issue: + # https://github.com/statsmodels/statsmodels/issues/868 + with warnings.catch_warnings(record=True): + x = np.random.randn(5) + y = np.random.randn(5, 6) + results = OLS(x, y).fit() + rsquared_adj = results.rsquared_adj + assert_equal(rsquared_adj, np.nan) + + def test_qr_alternatives(self): + assert_allclose(self.res_qr.params, self.res_qr_manual.params, + rtol=5e-12) + + def test_norm_resid(self): + resid = self.res1.wresid + norm_resid = resid / np.sqrt(np.sum(resid**2.0) / self.res1.df_resid) + model_norm_resid = self.res1.resid_pearson + assert_almost_equal(model_norm_resid, norm_resid, DECIMAL_7) + + def test_norm_resid_zero_variance(self): + with warnings.catch_warnings(record=True): + y = self.res1.model.endog + res = OLS(y,y).fit() + assert_allclose(res.scale, 0, atol=1e-20) + assert_allclose(res.wresid, res.resid_pearson, atol=5e-11) + + +class TestRTO(CheckRegressionResults): + @classmethod + def setupClass(cls): + from .results.results_regression import LongleyRTO + data = longley.load() + res1 = OLS(data.endog, data.exog).fit() + res2 = LongleyRTO() + res2.wresid = res1.wresid # workaround hack + cls.res1 = res1 + cls.res2 = res2 + + res_qr = OLS(data.endog, data.exog).fit(method="qr") + cls.res_qr = res_qr + +class TestFtest(object): + """ + Tests f_test vs. RegressionResults + """ + @classmethod + def setupClass(cls): + data = longley.load() + data.exog = add_constant(data.exog, prepend=False) + cls.res1 = OLS(data.endog, data.exog).fit() + R = np.identity(7)[:-1,:] + cls.Ftest = cls.res1.f_test(R) + + def test_F(self): + assert_almost_equal(self.Ftest.fvalue, self.res1.fvalue, DECIMAL_4) + + def test_p(self): + assert_almost_equal(self.Ftest.pvalue, self.res1.f_pvalue, DECIMAL_4) + + def test_Df_denom(self): + assert_equal(self.Ftest.df_denom, self.res1.model.df_resid) + + def test_Df_num(self): + assert_equal(self.Ftest.df_num, 6) + +class TestFTest2(object): + """ + A joint test that the coefficient on + GNP = the coefficient on UNEMP and that the coefficient on + POP = the coefficient on YEAR for the Longley dataset. + + Ftest1 is from statsmodels. Results are from Rpy using R's car library. + """ + @classmethod + def setupClass(cls): + data = longley.load() + data.exog = add_constant(data.exog, prepend=False) + res1 = OLS(data.endog, data.exog).fit() + R2 = [[0,1,-1,0,0,0,0],[0, 0, 0, 0, 1, -1, 0]] + cls.Ftest1 = res1.f_test(R2) + hyp = 'x2 = x3, x5 = x6' + cls.NewFtest1 = res1.f_test(hyp) + + def test_new_ftest(self): + assert_equal(self.NewFtest1.fvalue, self.Ftest1.fvalue) + + def test_fvalue(self): + assert_almost_equal(self.Ftest1.fvalue, 9.7404618732968196, DECIMAL_4) + + def test_pvalue(self): + assert_almost_equal(self.Ftest1.pvalue, 0.0056052885317493459, + DECIMAL_4) + + def test_df_denom(self): + assert_equal(self.Ftest1.df_denom, 9) + + def test_df_num(self): + assert_equal(self.Ftest1.df_num, 2) + +class TestFtestQ(object): + """ + A joint hypothesis test that Rb = q. Coefficient tests are essentially + made up. Test values taken from Stata. + """ + @classmethod + def setupClass(cls): + data = longley.load() + data.exog = add_constant(data.exog, prepend=False) + res1 = OLS(data.endog, data.exog).fit() + R = np.array([[0,1,1,0,0,0,0], + [0,1,0,1,0,0,0], + [0,1,0,0,0,0,0], + [0,0,0,0,1,0,0], + [0,0,0,0,0,1,0]]) + q = np.array([0,0,0,1,0]) + cls.Ftest1 = res1.f_test((R,q)) + + def test_fvalue(self): + assert_almost_equal(self.Ftest1.fvalue, 70.115557, 5) + + def test_pvalue(self): + assert_almost_equal(self.Ftest1.pvalue, 6.229e-07, 10) + + def test_df_denom(self): + assert_equal(self.Ftest1.df_denom, 9) + + def test_df_num(self): + assert_equal(self.Ftest1.df_num, 5) + +class TestTtest(object): + """ + Test individual t-tests. Ie., are the coefficients significantly + different than zero. + + """ + @classmethod + def setupClass(cls): + data = longley.load() + data.exog = add_constant(data.exog, prepend=False) + cls.res1 = OLS(data.endog, data.exog).fit() + R = np.identity(7) + cls.Ttest = cls.res1.t_test(R) + hyp = 'x1 = 0, x2 = 0, x3 = 0, x4 = 0, x5 = 0, x6 = 0, const = 0' + cls.NewTTest = cls.res1.t_test(hyp) + + def test_new_tvalue(self): + assert_equal(self.NewTTest.tvalue, self.Ttest.tvalue) + + def test_tvalue(self): + assert_almost_equal(self.Ttest.tvalue, self.res1.tvalues, DECIMAL_4) + + def test_sd(self): + assert_almost_equal(self.Ttest.sd, self.res1.bse, DECIMAL_4) + + def test_pvalue(self): + assert_almost_equal(self.Ttest.pvalue, student_t.sf( + np.abs(self.res1.tvalues), self.res1.model.df_resid)*2, + DECIMAL_4) + + def test_df_denom(self): + assert_equal(self.Ttest.df_denom, self.res1.model.df_resid) + + def test_effect(self): + assert_almost_equal(self.Ttest.effect, self.res1.params) + +class TestTtest2(object): + """ + Tests the hypothesis that the coefficients on POP and YEAR + are equal. + + Results from RPy using 'car' package. + """ + @classmethod + def setupClass(cls): + R = np.zeros(7) + R[4:6] = [1,-1] + data = longley.load() + data.exog = add_constant(data.exog, prepend=False) + res1 = OLS(data.endog, data.exog).fit() + cls.Ttest1 = res1.t_test(R) + + def test_tvalue(self): + assert_almost_equal(self.Ttest1.tvalue, -4.0167754636397284, + DECIMAL_4) + + def test_sd(self): + assert_almost_equal(self.Ttest1.sd, 455.39079425195314, DECIMAL_4) + + def test_pvalue(self): + assert_almost_equal(self.Ttest1.pvalue, 2*0.0015163772380932246, + DECIMAL_4) + + def test_df_denom(self): + assert_equal(self.Ttest1.df_denom, 9) + + def test_effect(self): + assert_almost_equal(self.Ttest1.effect, -1829.2025687186533, DECIMAL_4) + +class TestGLS(object): + """ + These test results were obtained by replication with R. + """ + @classmethod + def setupClass(cls): + from .results.results_regression import LongleyGls + + data = longley.load() + exog = add_constant(np.column_stack((data.exog[:,1], + data.exog[:,4])), prepend=False) + tmp_results = OLS(data.endog, exog).fit() + rho = np.corrcoef(tmp_results.resid[1:], + tmp_results.resid[:-1])[0][1] # by assumption + order = toeplitz(np.arange(16)) + sigma = rho**order + GLS_results = GLS(data.endog, exog, sigma=sigma).fit() + cls.res1 = GLS_results + cls.res2 = LongleyGls() + # attach for test_missing + cls.sigma = sigma + cls.exog = exog + cls.endog = data.endog + + def test_aic(self): + assert_approx_equal(self.res1.aic+2, self.res2.aic, 3) + + def test_bic(self): + assert_approx_equal(self.res1.bic, self.res2.bic, 2) + + def test_loglike(self): + assert_almost_equal(self.res1.llf, self.res2.llf, DECIMAL_0) + + def test_params(self): + assert_almost_equal(self.res1.params, self.res2.params, DECIMAL_1) + + def test_resid(self): + assert_almost_equal(self.res1.resid, self.res2.resid, DECIMAL_4) + + def test_scale(self): + assert_almost_equal(self.res1.scale, self.res2.scale, DECIMAL_4) + + def test_tvalues(self): + assert_almost_equal(self.res1.tvalues, self.res2.tvalues, DECIMAL_4) + + def test_standarderrors(self): + assert_almost_equal(self.res1.bse, self.res2.bse, DECIMAL_4) + + def test_fittedvalues(self): + assert_almost_equal(self.res1.fittedvalues, self.res2.fittedvalues, + DECIMAL_4) + + def test_pvalues(self): + assert_almost_equal(self.res1.pvalues, self.res2.pvalues, DECIMAL_4) + + def test_missing(self): + endog = self.endog.copy() # copy or changes endog for other methods + endog[[4,7,14]] = np.nan + mod = GLS(endog, self.exog, sigma=self.sigma, missing='drop') + assert_equal(mod.endog.shape[0], 13) + assert_equal(mod.exog.shape[0], 13) + assert_equal(mod.sigma.shape, (13,13)) + +class TestGLS_alt_sigma(CheckRegressionResults): + """ + Test that GLS with no argument is equivalent to OLS. + """ + @classmethod + def setupClass(cls): + data = longley.load() + data.exog = add_constant(data.exog, prepend=False) + ols_res = OLS(data.endog, data.exog).fit() + gls_res = GLS(data.endog, data.exog).fit() + gls_res_scalar = GLS(data.endog, data.exog, sigma=1) + cls.endog = data.endog + cls.exog = data.exog + cls.res1 = gls_res + cls.res2 = ols_res + cls.res3 = gls_res_scalar +# self.res2.conf_int = self.res2.conf_int() + + def test_wrong_size_sigma_1d(self): + n = len(self.endog) + assert_raises(ValueError, GLS, self.endog, self.exog, sigma=np.ones(n-1)) + + def test_wrong_size_sigma_2d(self): + n = len(self.endog) + assert_raises(ValueError, GLS, self.endog, self.exog, sigma=np.ones((n-1,n-1))) + +# def check_confidenceintervals(self, conf1, conf2): +# assert_almost_equal(conf1, conf2, DECIMAL_4) + + +class TestLM(object): + + @classmethod + def setupClass(cls): + # TODO: Test HAC method + X = np.random.randn(100,3) + b = np.ones((3,1)) + e = np.random.randn(100,1) + y = np.dot(X,b) + e + # Cases? + # Homoskedastic + # HC0 + cls.res1_full = OLS(y,X).fit() + cls.res1_restricted = OLS(y,X[:,0]).fit() + + cls.res2_full = cls.res1_full.get_robustcov_results('HC0') + cls.res2_restricted = cls.res1_restricted.get_robustcov_results('HC0') + + cls.X = X + cls.Y = y + + + def test_LM_homoskedastic(self): + resid = self.res1_restricted.wresid + n = resid.shape[0] + X = self.X + S = np.dot(resid,resid) / n * np.dot(X.T,X) / n + Sinv = np.linalg.inv(S) + s = np.mean(X * resid[:,None], 0) + LMstat = n * np.dot(np.dot(s,Sinv),s.T) + LMstat_OLS = self.res1_full.compare_lm_test(self.res1_restricted) + LMstat2 = LMstat_OLS[0] + assert_almost_equal(LMstat, LMstat2, DECIMAL_7) + + def test_LM_heteroskedastic_nodemean(self): + resid = self.res1_restricted.wresid + n = resid.shape[0] + X = self.X + scores = X * resid[:,None] + S = np.dot(scores.T,scores) / n + Sinv = np.linalg.inv(S) + s = np.mean(scores, 0) + LMstat = n * np.dot(np.dot(s,Sinv),s.T) + LMstat_OLS = self.res2_full.compare_lm_test(self.res2_restricted, demean=False) + LMstat2 = LMstat_OLS[0] + assert_almost_equal(LMstat, LMstat2, DECIMAL_7) + + def test_LM_heteroskedastic_demean(self): + resid = self.res1_restricted.wresid + n = resid.shape[0] + X = self.X + scores = X * resid[:,None] + scores_demean = scores - scores.mean(0) + S = np.dot(scores_demean.T,scores_demean) / n + Sinv = np.linalg.inv(S) + s = np.mean(scores, 0) + LMstat = n * np.dot(np.dot(s,Sinv),s.T) + LMstat_OLS = self.res2_full.compare_lm_test(self.res2_restricted) + LMstat2 = LMstat_OLS[0] + assert_almost_equal(LMstat, LMstat2, DECIMAL_7) + + def test_LM_heteroskedastic_LRversion(self): + resid = self.res1_restricted.wresid + resid_full = self.res1_full.wresid + n = resid.shape[0] + X = self.X + scores = X * resid[:,None] + s = np.mean(scores, 0) + scores = X * resid_full[:,None] + S = np.dot(scores.T,scores) / n + Sinv = np.linalg.inv(S) + LMstat = n * np.dot(np.dot(s,Sinv),s.T) + LMstat_OLS = self.res2_full.compare_lm_test(self.res2_restricted, use_lr = True) + LMstat2 = LMstat_OLS[0] + assert_almost_equal(LMstat, LMstat2, DECIMAL_7) + + def test_LM_nonnested(self): + assert_raises(ValueError, self.res2_restricted.compare_lm_test, self.res2_full) + + +class TestOLS_GLS_WLS_equivalence(object): + + @classmethod + def setupClass(cls): + data = longley.load() + data.exog = add_constant(data.exog, prepend=False) + y = data.endog + X = data.exog + n = y.shape[0] + w = np.ones(n) + cls.results = [] + cls.results.append(OLS(y, X).fit()) + cls.results.append(WLS(y, X, w).fit()) + cls.results.append(GLS(y, X, 100*w).fit()) + cls.results.append(GLS(y, X, np.diag(0.1*w)).fit()) + + def test_ll(self): + llf = np.array([r.llf for r in self.results]) + llf_1 = np.ones_like(llf) * self.results[0].llf + assert_almost_equal(llf, llf_1, DECIMAL_7) + + ic = np.array([r.aic for r in self.results]) + ic_1 = np.ones_like(ic) * self.results[0].aic + assert_almost_equal(ic, ic_1, DECIMAL_7) + + ic = np.array([r.bic for r in self.results]) + ic_1 = np.ones_like(ic) * self.results[0].bic + assert_almost_equal(ic, ic_1, DECIMAL_7) + + def test_params(self): + params = np.array([r.params for r in self.results]) + params_1 = np.array([self.results[0].params] * len(self.results)) + assert_allclose(params, params_1) + + def test_ss(self): + bse = np.array([r.bse for r in self.results]) + bse_1 = np.array([self.results[0].bse] * len(self.results)) + assert_allclose(bse, bse_1) + + def test_rsquared(self): + rsquared = np.array([r.rsquared for r in self.results]) + rsquared_1 = np.array([self.results[0].rsquared] * len(self.results)) + assert_almost_equal(rsquared, rsquared_1, DECIMAL_7) + + +class TestGLS_WLS_equivalence(TestOLS_GLS_WLS_equivalence): + # reuse test methods + + @classmethod + def setupClass(cls): + data = longley.load() + data.exog = add_constant(data.exog, prepend=False) + y = data.endog + X = data.exog + n = y.shape[0] + np.random.seed(5) + w = np.random.uniform(0.5, 1, n) + w_inv = 1. / w + cls.results = [] + cls.results.append(WLS(y, X, w).fit()) + cls.results.append(WLS(y, X, 0.01 * w).fit()) + cls.results.append(GLS(y, X, 100 * w_inv).fit()) + cls.results.append(GLS(y, X, np.diag(0.1 * w_inv)).fit()) + + def test_rsquared(self): + # TODO: WLS rsquared is ok, GLS might have wrong centered_tss + # We only check that WLS and GLS rsquared is invariant to scaling + # WLS and GLS have different rsquared + assert_almost_equal(self.results[1].rsquared, self.results[0].rsquared, + DECIMAL_7) + assert_almost_equal(self.results[3].rsquared, self.results[2].rsquared, + DECIMAL_7) + + +class TestNonFit(object): + @classmethod + def setupClass(cls): + data = longley.load() + data.exog = add_constant(data.exog, prepend=False) + cls.endog = data.endog + cls.exog = data.exog + cls.ols_model = OLS(data.endog, data.exog) + + def test_df_resid(self): + df_resid = self.endog.shape[0] - self.exog.shape[1] + assert_equal(self.ols_model.df_resid, long(9)) + +class TestWLS_CornerCases(object): + @classmethod + def setupClass(cls): + cls.exog = np.ones((1,)) + cls.endog = np.ones((1,)) + weights = 1 + cls.wls_res = WLS(cls.endog, cls.exog, weights=weights).fit() + + def test_wrong_size_weights(self): + weights = np.ones((10,10)) + assert_raises(ValueError, WLS, self.endog, self.exog, weights=weights) + + +class TestWLSExogWeights(CheckRegressionResults): + #Test WLS with Greene's credit card data + #reg avgexp age income incomesq ownrent [aw=1/incomesq] + def __init__(self): + from .results.results_regression import CCardWLS + from statsmodels.datasets.ccard import load + dta = load() + + dta.exog = add_constant(dta.exog, prepend=False) + nobs = 72. + + weights = 1/dta.exog[:,2] + # for comparison with stata analytic weights + scaled_weights = ((weights * nobs)/weights.sum()) + + self.res1 = WLS(dta.endog, dta.exog, weights=scaled_weights).fit() + self.res2 = CCardWLS() + self.res2.wresid = scaled_weights ** .5 * self.res2.resid + + # correction because we use different definition for loglike/llf + corr_ic = 2 * (self.res1.llf - self.res2.llf) + self.res2.aic -= corr_ic + self.res2.bic -= corr_ic + self.res2.llf += 0.5 * np.sum(np.log(self.res1.model.weights)) + + +def test_wls_example(): + #example from the docstring, there was a note about a bug, should + #be fixed now + Y = [1,3,4,5,2,3,4] + X = lrange(1,8) + X = add_constant(X, prepend=False) + wls_model = WLS(Y,X, weights=lrange(1,8)).fit() + #taken from R lm.summary + assert_almost_equal(wls_model.fvalue, 0.127337843215, 6) + assert_almost_equal(wls_model.scale, 2.44608530786**2, 6) + +def test_wls_tss(): + y = np.array([22, 22, 22, 23, 23, 23]) + X = [[1, 0], [1, 0], [1, 1], [0, 1], [0, 1], [0, 1]] + + ols_mod = OLS(y, add_constant(X, prepend=False)).fit() + + yw = np.array([22, 22, 23.]) + Xw = [[1,0],[1,1],[0,1]] + w = np.array([2, 1, 3.]) + + wls_mod = WLS(yw, add_constant(Xw, prepend=False), weights=w).fit() + assert_equal(ols_mod.centered_tss, wls_mod.centered_tss) + +class TestWLSScalarVsArray(CheckRegressionResults): + @classmethod + def setupClass(cls): + from statsmodels.datasets.longley import load + dta = load() + dta.exog = add_constant(dta.exog, prepend=True) + wls_scalar = WLS(dta.endog, dta.exog, weights=1./3).fit() + weights = [1/3.] * len(dta.endog) + wls_array = WLS(dta.endog, dta.exog, weights=weights).fit() + cls.res1 = wls_scalar + cls.res2 = wls_array + +#class TestWLS_GLS(CheckRegressionResults): +# @classmethod +# def setupClass(cls): +# from statsmodels.datasets.ccard import load +# data = load() +# cls.res1 = WLS(data.endog, data.exog, weights = 1/data.exog[:,2]).fit() +# cls.res2 = GLS(data.endog, data.exog, sigma = data.exog[:,2]).fit() +# +# def check_confidenceintervals(self, conf1, conf2): +# assert_almost_equal(conf1, conf2(), DECIMAL_4) + +def test_wls_missing(): + from statsmodels.datasets.ccard import load + data = load() + endog = data.endog + endog[[10, 25]] = np.nan + mod = WLS(data.endog, data.exog, weights = 1/data.exog[:,2], missing='drop') + assert_equal(mod.endog.shape[0], 70) + assert_equal(mod.exog.shape[0], 70) + assert_equal(mod.weights.shape[0], 70) + + + +class TestWLS_OLS(CheckRegressionResults): + @classmethod + def setupClass(cls): + data = longley.load() + data.exog = add_constant(data.exog, prepend=False) + cls.res1 = OLS(data.endog, data.exog).fit() + cls.res2 = WLS(data.endog, data.exog).fit() + + def check_confidenceintervals(self, conf1, conf2): + assert_almost_equal(conf1, conf2(), DECIMAL_4) + +class TestGLS_OLS(CheckRegressionResults): + @classmethod + def setupClass(cls): + data = longley.load() + data.exog = add_constant(data.exog, prepend=False) + cls.res1 = GLS(data.endog, data.exog).fit() + cls.res2 = OLS(data.endog, data.exog).fit() + + def check_confidenceintervals(self, conf1, conf2): + assert_almost_equal(conf1, conf2(), DECIMAL_4) + +#TODO: test AR +# why the two-stage in AR? +#class test_ar(object): +# from statsmodels.datasets.sunspots import load +# data = load() +# model = AR(data.endog, rho=4).fit() +# R_res = RModel(data.endog, aic="FALSE", order_max=4) + +# def test_params(self): +# assert_almost_equal(self.model.rho, +# pass + +# def test_order(self): +# In R this can be defined or chosen by minimizing the AIC if aic=True +# pass + + +class TestYuleWalker(object): + @classmethod + def setupClass(cls): + from statsmodels.datasets.sunspots import load + data = load() + cls.rho, cls.sigma = yule_walker(data.endog, order=4, + method="mle") + cls.R_params = [1.2831003105694765, -0.45240924374091945, + -0.20770298557575195, 0.047943648089542337] + + def test_params(self): + assert_almost_equal(self.rho, self.R_params, DECIMAL_4) + +class TestDataDimensions(CheckRegressionResults): + @classmethod + def setupClass(cls): + np.random.seed(54321) + cls.endog_n_ = np.random.uniform(0,20,size=30) + cls.endog_n_one = cls.endog_n_[:,None] + cls.exog_n_ = np.random.uniform(0,20,size=30) + cls.exog_n_one = cls.exog_n_[:,None] + cls.degen_exog = cls.exog_n_one[:-1] + cls.mod1 = OLS(cls.endog_n_one, cls.exog_n_one) + cls.mod1.df_model += 1 + cls.res1 = cls.mod1.fit() + # Note that these are created for every subclass.. + # A little extra overhead probably + cls.mod2 = OLS(cls.endog_n_one, cls.exog_n_one) + cls.mod2.df_model += 1 + cls.res2 = cls.mod2.fit() + + def check_confidenceintervals(self, conf1, conf2): + assert_almost_equal(conf1, conf2(), DECIMAL_4) + +class TestGLS_large_data(TestDataDimensions): + @classmethod + def setupClass(cls): + nobs = 1000 + y = np.random.randn(nobs,1) + X = np.random.randn(nobs,20) + sigma = np.ones_like(y) + cls.gls_res = GLS(y, X, sigma=sigma).fit() + cls.gls_res_scalar = GLS(y, X, sigma=1).fit() + cls.gls_res_none= GLS(y, X).fit() + cls.ols_res = OLS(y, X).fit() + + def test_large_equal_params(self): + assert_almost_equal(self.ols_res.params, self.gls_res.params, DECIMAL_7) + + def test_large_equal_loglike(self): + assert_almost_equal(self.ols_res.llf, self.gls_res.llf, DECIMAL_7) + + def test_large_equal_params_none(self): + assert_almost_equal(self.gls_res.params, self.gls_res_none.params, + DECIMAL_7) + + +class TestNxNx(TestDataDimensions): + @classmethod + def setupClass(cls): + super(TestNxNx, cls).setupClass() + cls.mod2 = OLS(cls.endog_n_, cls.exog_n_) + cls.mod2.df_model += 1 + cls.res2 = cls.mod2.fit() + + +class TestNxOneNx(TestDataDimensions): + @classmethod + def setupClass(cls): + super(TestNxOneNx, cls).setupClass() + cls.mod2 = OLS(cls.endog_n_one, cls.exog_n_) + cls.mod2.df_model += 1 + cls.res2 = cls.mod2.fit() + + +class TestNxNxOne(TestDataDimensions): + @classmethod + def setupClass(cls): + super(TestNxNxOne, cls).setupClass() + cls.mod2 = OLS(cls.endog_n_, cls.exog_n_one) + cls.mod2.df_model += 1 + cls.res2 = cls.mod2.fit() + + +def test_bad_size(): + np.random.seed(54321) + data = np.random.uniform(0,20,31) + assert_raises(ValueError, OLS, data, data[1:]) + +def test_const_indicator(): + np.random.seed(12345) + X = np.random.randint(0, 3, size=30) + X = categorical(X, drop=True) + y = np.dot(X, [1., 2., 3.]) + np.random.normal(size=30) + modc = OLS(y, add_constant(X[:,1:], prepend=True)).fit() + mod = OLS(y, X, hasconst=True).fit() + assert_almost_equal(modc.rsquared, mod.rsquared, 12) + +def test_706(): + # make sure one regressor pandas Series gets passed to DataFrame + # for conf_int. + y = pandas.Series(np.random.randn(10)) + x = pandas.Series(np.ones(10)) + res = OLS(y,x).fit() + conf_int = res.conf_int() + np.testing.assert_equal(conf_int.shape, (1, 2)) + np.testing.assert_(isinstance(conf_int, pandas.DataFrame)) + +def test_summary(): + # test 734 + import re + dta = longley.load_pandas() + X = dta.exog + X["constant"] = 1 + y = dta.endog + with warnings.catch_warnings(record=True): + res = OLS(y, X).fit() + table = res.summary().as_latex() + # replace the date and time + table = re.sub("(?<=\n\\\\textbf\{Date:\} &).+?&", + " Sun, 07 Apr 2013 &", table) + table = re.sub("(?<=\n\\\\textbf\{Time:\} &).+?&", + " 13:46:07 &", table) + + expected = """\\begin{center} +\\begin{tabular}{lclc} +\\toprule +\\textbf{Dep. Variable:} & TOTEMP & \\textbf{ R-squared: } & 0.995 \\\\ +\\textbf{Model:} & OLS & \\textbf{ Adj. R-squared: } & 0.992 \\\\ +\\textbf{Method:} & Least Squares & \\textbf{ F-statistic: } & 330.3 \\\\ +\\textbf{Date:} & Sun, 07 Apr 2013 & \\textbf{ Prob (F-statistic):} & 4.98e-10 \\\\ +\\textbf{Time:} & 13:46:07 & \\textbf{ Log-Likelihood: } & -109.62 \\\\ +\\textbf{No. Observations:} & 16 & \\textbf{ AIC: } & 233.2 \\\\ +\\textbf{Df Residuals:} & 9 & \\textbf{ BIC: } & 238.6 \\\\ +\\textbf{Df Model:} & 6 & \\textbf{ } & \\\\ +\\bottomrule +\\end{tabular} +\\begin{tabular}{lcccccc} + & \\textbf{coef} & \\textbf{std err} & \\textbf{t} & \\textbf{P$>$$|$t$|$} & \\textbf{[0.025} & \\textbf{0.975]} \\\\ +\\midrule +\\textbf{GNPDEFL} & 15.0619 & 84.915 & 0.177 & 0.863 & -177.029 & 207.153 \\\\ +\\textbf{GNP} & -0.0358 & 0.033 & -1.070 & 0.313 & -0.112 & 0.040 \\\\ +\\textbf{UNEMP} & -2.0202 & 0.488 & -4.136 & 0.003 & -3.125 & -0.915 \\\\ +\\textbf{ARMED} & -1.0332 & 0.214 & -4.822 & 0.001 & -1.518 & -0.549 \\\\ +\\textbf{POP} & -0.0511 & 0.226 & -0.226 & 0.826 & -0.563 & 0.460 \\\\ +\\textbf{YEAR} & 1829.1515 & 455.478 & 4.016 & 0.003 & 798.788 & 2859.515 \\\\ +\\textbf{constant} & -3.482e+06 & 8.9e+05 & -3.911 & 0.004 & -5.5e+06 & -1.47e+06 \\\\ +\\bottomrule +\\end{tabular} +\\begin{tabular}{lclc} +\\textbf{Omnibus:} & 0.749 & \\textbf{ Durbin-Watson: } & 2.559 \\\\ +\\textbf{Prob(Omnibus):} & 0.688 & \\textbf{ Jarque-Bera (JB): } & 0.684 \\\\ +\\textbf{Skew:} & 0.420 & \\textbf{ Prob(JB): } & 0.710 \\\\ +\\textbf{Kurtosis:} & 2.434 & \\textbf{ Cond. No. } & 4.86e+09 \\\\ +\\bottomrule +\\end{tabular} +%\\caption{OLS Regression Results} +\\end{center}""" + assert_equal(table, expected) + +class TestRegularizedFit(object): + + # Make sure there are no issues when there are no selected + # variables. + def test_empty_model(self): + + np.random.seed(742) + n = 100 + endog = np.random.normal(size=n) + exog = np.random.normal(size=(n, 3)) + + model = OLS(endog, exog) + result = model.fit_regularized(alpha=1000) + + assert_equal(result.params, 0.) + + + def test_regularized(self): + + import os + from . import glmnet_r_results + + cur_dir = os.path.dirname(os.path.abspath(__file__)) + data = np.loadtxt(os.path.join(cur_dir, "results", "lasso_data.csv"), + delimiter=",") + + tests = [x for x in dir(glmnet_r_results) if x.startswith("rslt_")] + + for test in tests: + + vec = getattr(glmnet_r_results, test) + + n = vec[0] + p = vec[1] + L1_wt = float(vec[2]) + lam = float(vec[3]) + params = vec[4:].astype(np.float64) + + endog = data[0:int(n), 0] + exog = data[0:int(n), 1:(int(p)+1)] + + endog = endog - endog.mean() + endog /= endog.std(ddof=1) + exog = exog - exog.mean(0) + exog /= exog.std(0, ddof=1) + + mod = OLS(endog, exog) + rslt = mod.fit_regularized(L1_wt=L1_wt, alpha=lam) + assert_almost_equal(rslt.params, params, decimal=3) + + # Smoke test for summary + smry = rslt.summary() + + # Smoke test for profile likeihood + result = mod.fit_regularized(L1_wt=L1_wt, alpha=lam, profile_scale=True) + + +def test_formula_missing_cat(): + # gh-805 + + import statsmodels.api as sm + from statsmodels.formula.api import ols + from patsy import PatsyError + + dta = sm.datasets.grunfeld.load_pandas().data + dta.ix[0, 'firm'] = np.nan + + mod = ols(formula='value ~ invest + capital + firm + year', + data=dta.dropna()) + res = mod.fit() + + mod2 = ols(formula='value ~ invest + capital + firm + year', + data=dta) + res2 = mod2.fit() + + assert_almost_equal(res.params.values, res2.params.values) + + assert_raises(PatsyError, ols, 'value ~ invest + capital + firm + year', + data=dta, missing='raise') + + +def test_missing_formula_predict(): + # see 2171 + nsample = 30 + + data = pandas.DataFrame({'x': np.linspace(0, 10, nsample)}) + null = pandas.DataFrame({'x': np.array([np.nan])}) + data = pandas.concat([data, null]) + beta = np.array([1, 0.1]) + e = np.random.normal(size=nsample+1) + data['y'] = beta[0] + beta[1] * data['x'] + e + model = OLS.from_formula('y ~ x', data=data) + fit = model.fit() + pred = fit.predict(exog=data[:-1]) + + +def test_fvalue_implicit_constant(): + nobs = 100 + np.random.seed(2) + x = np.random.randn(nobs, 1) + x = ((x > 0) == [True, False]).astype(int) + y = x.sum(1) + np.random.randn(nobs) + w = 1 + 0.25 * np.random.rand(nobs) + + from statsmodels.regression.linear_model import OLS, WLS + + res = OLS(y, x).fit(cov_type='HC1') + assert_(np.isnan(res.fvalue)) + assert_(np.isnan(res.f_pvalue)) + res.summary() + + res = WLS(y, x).fit(cov_type='HC1') + assert_(np.isnan(res.fvalue)) + assert_(np.isnan(res.f_pvalue)) + res.summary() + + +if __name__=="__main__": + + import nose + # run_module_suite() + nose.runmodule(argv=[__file__,'-vvs','-x','--pdb', '--pdb-failure'], + exit=False) + + # nose.runmodule(argv=[__file__,'-vvs','-x'], exit=False) #, '--pdb' + + + + diff --git a/statsmodels/regression/tests/test_robustcov.py b/statsmodels/regression/tests/test_robustcov.py new file mode 100644 index 0000000..688e778 --- /dev/null +++ b/statsmodels/regression/tests/test_robustcov.py @@ -0,0 +1,902 @@ +# -*- coding: utf-8 -*- +"""Testing OLS robust covariance matrices against STATA + +Created on Mon Oct 28 15:25:14 2013 + +Author: Josef Perktold +""" + +import numpy as np +from scipy import stats + +from numpy.testing import (assert_allclose, assert_equal, assert_warns, + assert_raises) + + +from statsmodels.regression.linear_model import OLS, WLS +import statsmodels.stats.sandwich_covariance as sw +from statsmodels.tools.tools import add_constant +from statsmodels.datasets import macrodata +from statsmodels.tools.sm_exceptions import InvalidTestWarning + +from .results import results_macro_ols_robust as res +from .results import results_grunfeld_ols_robust_cluster as res2 +#test_hac_simple(): + +class CheckOLSRobust(object): + + def test_basic(self): + res1 = self.res1 + res2 = self.res2 + rtol = getattr(self, 'rtol', 1e-10) + assert_allclose(res1.params, res2.params, rtol=rtol) + assert_allclose(self.bse_robust, res2.bse, rtol=rtol) + assert_allclose(self.cov_robust, res2.cov, rtol=rtol) + + def test_tests(self): + # Note: differences between small (t-distribution, ddof) and large (normal) + # F statistic has no ddof correction in large, but uses F distribution (?) + res1 = self.res1 + res2 = self.res2 + rtol = getattr(self, 'rtol', 1e-10) + rtolh = getattr(self, 'rtolh', 1e-12) + mat = np.eye(len(res1.params)) + tt = res1.t_test(mat, cov_p=self.cov_robust) + # has 'effect', 'pvalue', 'sd', 'tvalue' + # TODO confint missing + assert_allclose(tt.effect, res2.params, rtol=rtol) + assert_allclose(tt.sd, res2.bse, rtol=rtol) + assert_allclose(tt.tvalue, res2.tvalues, rtol=rtol) + if self.small: + assert_allclose(tt.pvalue, res2.pvalues, rtol=5 * rtol) + else: + pval = stats.norm.sf(np.abs(tt.tvalue)) * 2 + assert_allclose(pval, res2.pvalues, rtol=5 * rtol, atol=1e-25) + + ft = res1.f_test(mat[:-1], cov_p=self.cov_robust) + if self.small: + #'df_denom', 'df_num', 'fvalue', 'pvalue' + assert_allclose(ft.fvalue, res2.F, rtol=rtol) + # f-pvalue is not directly available in Stata results, but is in ivreg2 + if hasattr(res2, 'Fp'): + assert_allclose(ft.pvalue, res2.Fp, rtol=rtol) + else: + if not getattr(self, 'skip_f', False): + dof_corr = res1.df_resid * 1. / res1.nobs + assert_allclose(ft.fvalue * dof_corr, res2.F, rtol=rtol) + + if hasattr(res2, 'df_r'): + assert_equal(ft.df_num, res2.df_m) + assert_equal(ft.df_denom, res2.df_r) + else: + # ivreg2 + assert_equal(ft.df_num, res2.Fdf1) + assert_equal(ft.df_denom, res2.Fdf2) + + # SMOKE + tt.summary() + ft.summary() + tt.summary_frame() + + + +class TestOLSRobust1(CheckOLSRobust): + # compare with regress robust + + def setup(self): + res_ols = self.res1 + self.bse_robust = res_ols.HC1_se + self.cov_robust = res_ols.cov_HC1 + self.small = True + self.res2 = res.results_hc0 + + @classmethod + def setup_class(cls): + d2 = macrodata.load().data + g_gdp = 400*np.diff(np.log(d2['realgdp'])) + g_inv = 400*np.diff(np.log(d2['realinv'])) + exogg = add_constant(np.c_[g_gdp, d2['realint'][:-1]], prepend=False) + + cls.res1 = res_ols = OLS(g_inv, exogg).fit() + + +class TestOLSRobust2(TestOLSRobust1): + # compare with ivreg robust small + + def setup(self): + res_ols = self.res1 + self.bse_robust = res_ols.HC1_se + self.cov_robust = res_ols.cov_HC1 + self.small = True + + self.res2 = res.results_ivhc0_small + + + +class TestOLSRobust3(TestOLSRobust1): + # compare with ivreg robust (not small) + + def setup(self): + res_ols = self.res1 + self.bse_robust = res_ols.HC0_se + self.cov_robust = res_ols.cov_HC0 + self.small = False + + self.res2 = res.results_ivhc0_large + + +class TestOLSRobustHacSmall(TestOLSRobust1): + # compare with ivreg robust small + + def setup(self): + res_ols = self.res1 + cov1 = sw.cov_hac_simple(res_ols, nlags=4, use_correction=True) + se1 = sw.se_cov(cov1) + self.bse_robust = se1 + self.cov_robust = cov1 + self.small = True + + self.res2 = res.results_ivhac4_small + + + +class TestOLSRobustHacLarge(TestOLSRobust1): + # compare with ivreg robust (not small) + + def setup(self): + res_ols = self.res1 + cov1 = sw.cov_hac_simple(res_ols, nlags=4, use_correction=False) + se1 = sw.se_cov(cov1) + self.bse_robust = se1 + self.cov_robust = cov1 + self.small = False + + self.res2 = res.results_ivhac4_large + + +class CheckOLSRobustNewMixin(object): + # This uses the robust covariance as default covariance + + def test_compare(self): + rtol = getattr(self, 'rtol', 1e-10) + assert_allclose(self.cov_robust, self.cov_robust2, rtol=rtol) + assert_allclose(self.bse_robust, self.bse_robust2, rtol=rtol) + + + def test_fvalue(self): + if not getattr(self, 'skip_f', False): + rtol = getattr(self, 'rtol', 1e-10) + assert_allclose(self.res1.fvalue, self.res2.F, rtol=rtol) + if hasattr(self.res2, 'Fp'): + #only available with ivreg2 + assert_allclose(self.res1.f_pvalue, self.res2.Fp, rtol=rtol) + + + def test_confint(self): + rtol = getattr(self, 'rtol', 1e-10) + ci1 = self.res1.conf_int() + ci2 = self.res2.params_table[:,4:6] + assert_allclose(ci1, ci2, rtol=rtol) + + # check critical value + crit1 = np.diff(ci1, 1).ravel() / 2 / self.res1.bse + crit2 = np.diff(ci1, 1).ravel() / 2 / self.res1.bse + assert_allclose(crit1, crit2, rtol=12) + + + def test_ttest(self): + res1 = self.res1 + res2 = self.res2 + rtol = getattr(self, 'rtol', 1e-10) + rtolh = getattr(self, 'rtol', 1e-12) + + mat = np.eye(len(res1.params)) + tt = res1.t_test(mat, cov_p=self.cov_robust) + # has 'effect', 'pvalue', 'sd', 'tvalue' + # TODO confint missing + assert_allclose(tt.effect, res2.params, rtol=rtolh) + assert_allclose(tt.sd, res2.bse, rtol=rtol) + assert_allclose(tt.tvalue, res2.tvalues, rtol=rtolh) + assert_allclose(tt.pvalue, res2.pvalues, rtol=5 * rtol) + ci1 = tt.conf_int() + ci2 = self.res2.params_table[:,4:6] + assert_allclose(ci1, ci2, rtol=rtol) + + + def test_scale(self): + res1 = self.res1 + res2 = self.res2 + rtol = 1e-5 + # Note we always use df_resid for scale + # Stata uses nobs or df_resid for rmse, not always available in Stata + #assert_allclose(res1.scale, res2.rmse**2 * res2.N / (res2.N - res2.df_m - 1), rtol=rtol) + skip = False + if hasattr(res2, 'rss'): + scale = res2.rss / (res2.N - res2.df_m - 1) + elif hasattr(res2, 'rmse'): + scale = res2.rmse**2 + else: + skip = True + + if isinstance(res1.model, WLS): + skip = True + # Stata uses different scaling and using unweighted resid for rmse + + if not skip: + assert_allclose(res1.scale, scale, rtol=rtol) + + if not res2.vcetype == 'Newey-West': + # no rsquared in Stata + r2 = res2.r2 if hasattr(res2, 'r2') else res2.r2c + assert_allclose(res1.rsquared, r2, rtol=rtol, err_msg=str(skip)) + + + # consistency checks, not against Stata + df_resid = res1.nobs - res1.df_model - 1 + assert_equal(res1.df_resid, df_resid) + # variance of resid_pearson is 1, with ddof, and loc=0 + psum = (res1.resid_pearson**2).sum() + assert_allclose(psum, df_resid, rtol=1e-13) + + + + def test_smoke(self): + self.res1.summary() + + + +class TestOLSRobust2SmallNew(TestOLSRobust1, CheckOLSRobustNewMixin): + # compare with ivreg robust small + + def setup(self): + res_ols = self.res1.get_robustcov_results('HC1', use_t=True) + self.res3 = self.res1 + self.res1 = res_ols + self.bse_robust = res_ols.bse + self.cov_robust = res_ols.cov_params() + self.bse_robust2 = res_ols.HC1_se + self.cov_robust2 = res_ols.cov_HC1 + self.small = True + self.res2 = res.results_ivhc0_small + + def test_compare(self): + #check that we get a warning using the nested compare methods + res1 = self.res1 + endog = res1.model.endog + exog = res1.model.exog[:, [0, 2]] # drop one variable + res_ols2 = OLS(endog, exog).fit() + # results from Stata + r_pval = .0307306938402991 + r_chi2 = 4.667944083588736 + r_df = 1 + assert_warns(InvalidTestWarning, res1.compare_lr_test, res_ols2) + import warnings + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + chi2, pval, df = res1.compare_lr_test(res_ols2) + assert_allclose(chi2, r_chi2, rtol=1e-11) + assert_allclose(pval, r_pval, rtol=1e-11) + assert_equal(df, r_df) + + assert_warns(InvalidTestWarning, res1.compare_f_test, res_ols2) + #fva, pval, df = res1.compare_f_test(res_ols2) + + + +class TestOLSRobustHACSmallNew(TestOLSRobust1, CheckOLSRobustNewMixin): + # compare with ivreg robust small + + def setup(self): + res_ols = self.res1.get_robustcov_results('HAC', maxlags=4, + use_correction=True, use_t=True) + self.res3 = self.res1 + self.res1 = res_ols + self.bse_robust = res_ols.bse + self.cov_robust = res_ols.cov_params() + cov1 = sw.cov_hac_simple(res_ols, nlags=4, use_correction=True) + se1 = sw.se_cov(cov1) + self.bse_robust2 = se1 + self.cov_robust2 = cov1 + self.small = True + self.res2 = res.results_ivhac4_small + + +class TestOLSRobust2LargeNew(TestOLSRobust1, CheckOLSRobustNewMixin): + # compare with ivreg robust small + + def setup(self): + res_ols = self.res1.get_robustcov_results('HC0') + res_ols.use_t = False + self.res3 = self.res1 + self.res1 = res_ols + self.bse_robust = res_ols.bse + self.cov_robust = res_ols.cov_params() + self.bse_robust2 = res_ols.HC0_se + self.cov_robust2 = res_ols.cov_HC0 + self.small = False + self.res2 = res.results_ivhc0_large + + + # TODO: skipping next two for now, not refactored yet for `large` + def test_fvalue(self): + pass + + + def test_confint(self): + pass + +####################################################### +# cluster robust standard errors +####################################################### + + +class CheckOLSRobustCluster(CheckOLSRobust): + # compare with regress robust + + + @classmethod + def setup_class(cls): + #import pandas as pa + from statsmodels.datasets import grunfeld + + dtapa = grunfeld.data.load_pandas() + #Stata example/data seems to miss last firm + dtapa_endog = dtapa.endog[:200] + dtapa_exog = dtapa.exog[:200] + exog = add_constant(dtapa_exog[['value', 'capital']], prepend=False) + #asserts don't work for pandas + cls.res1 = OLS(dtapa_endog, exog).fit() + + firm_names, firm_id = np.unique(np.asarray(dtapa_exog[['firm']], 'S20'), + return_inverse=True) + cls.groups = firm_id + #time indicator in range(max Ti) + time = np.asarray(dtapa_exog[['year']]) + time -= time.min() + cls.time = np.squeeze(time).astype(int) + # nw_panel function requires interval bounds + cls.tidx = [(i*20, 20*(i+1)) for i in range(10)] + + + +class TestOLSRobustCluster2(CheckOLSRobustCluster, CheckOLSRobustNewMixin): + # compare with `reg cluster` + + def setup(self): + res_ols = self.res1.get_robustcov_results('cluster', + groups=self.groups, + use_correction=True, + use_t=True) + self.res3 = self.res1 + self.res1 = res_ols + self.bse_robust = res_ols.bse + self.cov_robust = res_ols.cov_params() + cov1 = sw.cov_cluster(self.res1, self.groups, use_correction=True) + se1 = sw.se_cov(cov1) + self.bse_robust2 = se1 + self.cov_robust2 = cov1 + self.small = True + self.res2 = res2.results_cluster + + self.rtol = 1e-6 + self.rtolh = 1e-10 + + +class TestOLSRobustCluster2Input(CheckOLSRobustCluster, CheckOLSRobustNewMixin): + # compare with `reg cluster` + + def setup(self): + import pandas as pd + fat_array = self.groups.reshape(-1, 1) + fat_groups = pd.DataFrame(fat_array) + + res_ols = self.res1.get_robustcov_results('cluster', + groups=fat_groups, + use_correction=True, + use_t=True) + self.res3 = self.res1 + self.res1 = res_ols + self.bse_robust = res_ols.bse + self.cov_robust = res_ols.cov_params() + cov1 = sw.cov_cluster(self.res1, self.groups, use_correction=True) + se1 = sw.se_cov(cov1) + self.bse_robust2 = se1 + self.cov_robust2 = cov1 + self.small = True + self.res2 = res2.results_cluster + + self.rtol = 1e-6 + self.rtolh = 1e-10 + + def test_too_many_groups(self): + long_groups = self.groups.reshape(-1, 1) + groups3 = np.hstack((long_groups, long_groups, long_groups)) + assert_raises(ValueError, self.res1.get_robustcov_results,'cluster', + groups=groups3, use_correction=True, use_t=True) + + def test_2way_dataframe(self): + import pandas as pd + long_groups = self.groups.reshape(-1, 1) + groups2 = pd.DataFrame(np.hstack((long_groups, long_groups))) + res = self.res1.get_robustcov_results( + 'cluster', groups=groups2, use_correction=True, use_t=True) + +class TestOLSRobustCluster2Fit(CheckOLSRobustCluster, CheckOLSRobustNewMixin): + # copy, past uses fit method + # compare with `reg cluster` + + def setup(self): + res_ols = self.res1.model.fit(cov_type='cluster', + cov_kwds=dict( + groups=self.groups, + use_correction=True, + use_t=True)) + self.res3 = self.res1 + self.res1 = res_ols + self.bse_robust = res_ols.bse + self.cov_robust = res_ols.cov_params() + cov1 = sw.cov_cluster(self.res1, self.groups, use_correction=True) + se1 = sw.se_cov(cov1) + self.bse_robust2 = se1 + self.cov_robust2 = cov1 + self.small = True + self.res2 = res2.results_cluster + + self.rtol = 1e-6 + self.rtolh = 1e-10 + + + def test_basic_inference(self): + res1 = self.res1 + res2 = self.res2 + rtol = 1e-7 + assert_allclose(res1.params, res2.params, rtol=1e-8) + assert_allclose(res1.bse, res2.bse, rtol=rtol) + assert_allclose(res1.pvalues, res2.pvalues, rtol=rtol, atol=1e-20) + ci = res2.params_table[:, 4:6] + assert_allclose(res1.conf_int(), ci, rtol=5e-7, atol=1e-20) + + +class TestOLSRobustCluster2Large(CheckOLSRobustCluster, CheckOLSRobustNewMixin): + # compare with `reg cluster` + + def setup(self): + res_ols = self.res1.get_robustcov_results('cluster', + groups=self.groups, + use_correction=False, + use_t=False, + df_correction=True) + self.res3 = self.res1 + self.res1 = res_ols + self.bse_robust = res_ols.bse + self.cov_robust = res_ols.cov_params() + cov1 = sw.cov_cluster(self.res1, self.groups, use_correction=False) + se1 = sw.se_cov(cov1) + self.bse_robust2 = se1 + self.cov_robust2 = cov1 + self.small = False + self.res2 = res2.results_cluster_large + + self.skip_f = True + self.rtol = 1e-6 + self.rtolh = 1e-10 + + # skipping see https://github.com/statsmodels/statsmodels/pull/1189#issuecomment-29141741 + def test_f_value(self): + pass + + +class TestOLSRobustCluster2LargeFit(CheckOLSRobustCluster, CheckOLSRobustNewMixin): + # compare with `reg cluster` + + def setup(self): + model = OLS(self.res1.model.endog, self.res1.model.exog) + #res_ols = self.res1.model.fit(cov_type='cluster', + res_ols = model.fit(cov_type='cluster', + cov_kwds=dict(groups=self.groups, + use_correction=False, + use_t=False, + df_correction=True)) + self.res3 = self.res1 + self.res1 = res_ols + self.bse_robust = res_ols.bse + self.cov_robust = res_ols.cov_params() + cov1 = sw.cov_cluster(self.res1, self.groups, use_correction=False) + se1 = sw.se_cov(cov1) + self.bse_robust2 = se1 + self.cov_robust2 = cov1 + self.small = False + self.res2 = res2.results_cluster_large + + self.skip_f = True + self.rtol = 1e-6 + self.rtolh = 1e-10 + + # skipping see https://github.com/statsmodels/statsmodels/pull/1189#issuecomment-29141741 + def t_est_fvalue(self): + pass + + + +class TestOLSRobustClusterGS(CheckOLSRobustCluster, CheckOLSRobustNewMixin): + # compare with `reg cluster` + + def setup(self): + res_ols = self.res1.get_robustcov_results('nw-groupsum', + time=self.time, + maxlags=4, + use_correction=False, + use_t=True) + self.res3 = self.res1 + self.res1 = res_ols + self.bse_robust = res_ols.bse + self.cov_robust = res_ols.cov_params() + cov1 = sw.cov_nw_groupsum(self.res1, 4, self.time, use_correction=False) + se1 = sw.se_cov(cov1) + self.bse_robust2 = se1 + self.cov_robust2 = cov1 + self.small = True + self.res2 = res2.results_nw_groupsum4 + + self.skip_f = True + self.rtol = 1e-6 + self.rtolh = 1e-10 + + +class TestOLSRobustClusterGSFit(CheckOLSRobustCluster, CheckOLSRobustNewMixin): + # compare with `reg cluster` + + def setup(self): + res_ols = self.res1.model.fit(cov_type='nw-groupsum', + cov_kwds=dict(time=self.time, + maxlags=4, + use_correction=False, + use_t=True)) + self.res3 = self.res1 + self.res1 = res_ols + self.bse_robust = res_ols.bse + self.cov_robust = res_ols.cov_params() + cov1 = sw.cov_nw_groupsum(self.res1, 4, self.time, use_correction=False) + se1 = sw.se_cov(cov1) + self.bse_robust2 = se1 + self.cov_robust2 = cov1 + self.small = True + self.res2 = res2.results_nw_groupsum4 + + self.skip_f = True + self.rtol = 1e-6 + self.rtolh = 1e-10 + + +class TestOLSRobustClusterNWP(CheckOLSRobustCluster, CheckOLSRobustNewMixin): + # compare with `reg cluster` + + def setup(self): + res_ols = self.res1.get_robustcov_results('nw-panel', + time=self.time, + maxlags=4, + use_correction='hac', + use_t=True, + df_correction=False) + self.res3 = self.res1 + self.res1 = res_ols + self.bse_robust = res_ols.bse + self.cov_robust = res_ols.cov_params() + cov1 = sw.cov_nw_panel(self.res1, 4, self.tidx) + se1 = sw.se_cov(cov1) + self.bse_robust2 = se1 + self.cov_robust2 = cov1 + self.small = True + self.res2 = res2.results_nw_panel4 + + self.skip_f = True + self.rtol = 1e-6 + self.rtolh = 1e-10 + + + def test_keyword(self): + # check corrected keyword + res_ols = self.res1.get_robustcov_results('hac-panel', + time=self.time, + maxlags=4, + use_correction='hac', + use_t=True, + df_correction=False) + assert_allclose(res_ols.bse, self.res1.bse, rtol=1e-12) + + +class TestOLSRobustClusterNWPGroupsFit(CheckOLSRobustCluster, CheckOLSRobustNewMixin): + # compare with `reg cluster` + + def setup(self): + res_ols = self.res1.model.fit(cov_type='nw-panel', + cov_kwds = dict(groups=self.groups, + maxlags=4, + use_correction='hac', + use_t=True, + df_correction=False)) + self.res3 = self.res1 + self.res1 = res_ols + self.bse_robust = res_ols.bse + self.cov_robust = res_ols.cov_params() + cov1 = sw.cov_nw_panel(self.res1, 4, self.tidx) + se1 = sw.se_cov(cov1) + self.bse_robust2 = se1 + self.cov_robust2 = cov1 + self.small = True + self.res2 = res2.results_nw_panel4 + + self.skip_f = True + self.rtol = 1e-6 + self.rtolh = 1e-10 + + +# TODO: low precision/agreement +class TestOLSRobustCluster2G(CheckOLSRobustCluster, CheckOLSRobustNewMixin): + # compare with `reg cluster` + + def setup(self): + res_ols = self.res1.get_robustcov_results('cluster', + groups=(self.groups, self.time), + use_correction=True, + use_t=True) + self.res3 = self.res1 + self.res1 = res_ols + self.bse_robust = res_ols.bse + self.cov_robust = res_ols.cov_params() + cov1 = sw.cov_cluster_2groups(self.res1, self.groups, group2=self.time, + use_correction=True)[0] + se1 = sw.se_cov(cov1) + self.bse_robust2 = se1 + self.cov_robust2 = cov1 + self.small = True + self.res2 = res2.results_cluster_2groups_small + + self.rtol = 0.35 # only f_pvalue and confint for constant differ >rtol=0.05 + self.rtolh = 1e-10 + + + +class TestOLSRobustCluster2GLarge(CheckOLSRobustCluster, CheckOLSRobustNewMixin): + # compare with `reg cluster` + + def setup(self): + res_ols = self.res1.get_robustcov_results('cluster', + groups=(self.groups, self.time), + use_correction=False, #True, + use_t=False) + self.res3 = self.res1 + self.res1 = res_ols + self.bse_robust = res_ols.bse + self.cov_robust = res_ols.cov_params() + cov1 = sw.cov_cluster_2groups(self.res1, self.groups, group2=self.time, + use_correction=False)[0] + se1 = sw.se_cov(cov1) + self.bse_robust2 = se1 + self.cov_robust2 = cov1 + self.small = False + self.res2 = res2.results_cluster_2groups_large + + self.skip_f = True + self.rtol = 1e-7 + self.rtolh = 1e-10 + + +###################################### +# WLS +###################################### + +class CheckWLSRobustCluster(CheckOLSRobust): + # compare with regress robust + + + @classmethod + def setup_class(cls): + #import pandas as pa + from statsmodels.datasets import grunfeld + + dtapa = grunfeld.data.load_pandas() + #Stata example/data seems to miss last firm + dtapa_endog = dtapa.endog[:200] + dtapa_exog = dtapa.exog[:200] + exog = add_constant(dtapa_exog[['value', 'capital']], prepend=False) + #asserts don't work for pandas + cls.res1 = WLS(dtapa_endog, exog, weights=1/dtapa_exog['value']).fit() + + firm_names, firm_id = np.unique(np.asarray(dtapa_exog[['firm']], 'S20'), + return_inverse=True) + cls.groups = firm_id + #time indicator in range(max Ti) + time = np.asarray(dtapa_exog[['year']]) + time -= time.min() + cls.time = np.squeeze(time).astype(int) + # nw_panel function requires interval bounds + cls.tidx = [(i*20, 20*(i+1)) for i in range(10)] + + +# not available yet for WLS +class TestWLSRobustCluster2(CheckWLSRobustCluster, CheckOLSRobustNewMixin): + # compare with `reg cluster` + + def setup(self): + res_ols = self.res1.get_robustcov_results('cluster', + groups=self.groups, + use_correction=True, + use_t=True) + self.res3 = self.res1 + self.res1 = res_ols + self.bse_robust = res_ols.bse + self.cov_robust = res_ols.cov_params() + cov1 = sw.cov_cluster(self.res1, self.groups, use_correction=True) + se1 = sw.se_cov(cov1) + self.bse_robust2 = se1 + self.cov_robust2 = cov1 + self.small = True + self.res2 = res2.results_cluster_wls_small + + self.rtol = 1e-6 + self.rtolh = 1e-10 + + +# not available yet for WLS +class TestWLSRobustCluster2Large(CheckWLSRobustCluster, CheckOLSRobustNewMixin): + # compare with `reg cluster` + + def setup(self): + res_ols = self.res1.get_robustcov_results('cluster', + groups=self.groups, + use_correction=False, + use_t=False, + df_correction=True) + self.res3 = self.res1 + self.res1 = res_ols + self.bse_robust = res_ols.bse + self.cov_robust = res_ols.cov_params() + cov1 = sw.cov_cluster(self.res1, self.groups, use_correction=False) + se1 = sw.se_cov(cov1) + self.bse_robust2 = se1 + self.cov_robust2 = cov1 + self.small = False + self.res2 = res2.results_cluster_wls_large + + self.skip_f = True + self.rtol = 1e-6 + self.rtolh = 1e-10 + +class TestWLSRobustSmall(CheckWLSRobustCluster, CheckOLSRobustNewMixin): + # compare with `reg cluster` + + def setup(self): + res_ols = self.res1.get_robustcov_results('HC1', + use_t=True) + self.res3 = self.res1 + self.res1 = res_ols + self.bse_robust = res_ols.bse + self.cov_robust = res_ols.cov_params() + #TODO: check standalone function + #cov1 = sw.cov_cluster(self.res1, self.groups, use_correction=False) + cov1 = res_ols.cov_HC1 + se1 = sw.se_cov(cov1) + self.bse_robust2 = se1 + self.cov_robust2 = cov1 + self.small = True + self.res2 = res2.results_hc1_wls_small + + self.skip_f = True + self.rtol = 1e-6 + self.rtolh = 1e-10 + + +class TestWLSOLSRobustSmall(object): + + @classmethod + def setup_class(cls): + #import pandas as pa + from statsmodels.datasets import grunfeld + + dtapa = grunfeld.data.load_pandas() + #Stata example/data seems to miss last firm + dtapa_endog = dtapa.endog[:200] + dtapa_exog = dtapa.exog[:200] + exog = add_constant(dtapa_exog[['value', 'capital']], prepend=False) + #asserts don't work for pandas + cls.res_wls = WLS(dtapa_endog, exog, weights=1/dtapa_exog['value']).fit() + w_sqrt = 1 / np.sqrt(np.asarray(dtapa_exog['value'])) + cls.res_ols = OLS(dtapa_endog * w_sqrt, + np.asarray(exog) * w_sqrt[:, None]).fit() # hasconst=True ? + + firm_names, firm_id = np.unique(np.asarray(dtapa_exog[['firm']], 'S20'), + return_inverse=True) + cls.groups = firm_id + #time indicator in range(max Ti) + time = np.asarray(dtapa_exog[['year']]) + time -= time.min() + cls.time = np.squeeze(time).astype(int) + # nw_panel function requires interval bounds + cls.tidx = [(i*20, 20*(i+1)) for i in range(10)] + + + def test_all(self): + all_cov = [('HC0', dict(use_t=True)), + ('HC1', dict(use_t=True)), + ('HC2', dict(use_t=True)), + ('HC3', dict(use_t=True))] + + # fvalue are not the same, see #1212 + #res_ols = self.res_ols + #res_wls = self.res_wls + #assert_allclose(res_ols.fvalue, res_wls.fvalue, rtol=1e-13) + #assert_allclose(res_ols.f_pvalue, res_wls.f_pvalue, rtol=1e-13) + + for cov_type, kwds in all_cov: + res1 = self.res_ols.get_robustcov_results(cov_type, **kwds) + res2 = self.res_wls.get_robustcov_results(cov_type, **kwds) + assert_allclose(res1.params, res2.params, rtol=1e-13) + assert_allclose(res1.cov_params(), res2.cov_params(), rtol=1e-13) + assert_allclose(res1.bse, res2.bse, rtol=1e-13) + assert_allclose(res1.pvalues, res2.pvalues, rtol=1e-13) + #Note: Fvalue doesn't match up, difference in calculation ? + # The only difference should be in the constant detection + #assert_allclose(res1.fvalue, res2.fvalue, rtol=1e-13) + #assert_allclose(res1.f_pvalue, res2.f_pvalue, rtol=1e-13) + mat = np.eye(len(res1.params)) + ft1 = res1.f_test(mat) + ft2 = res2.f_test(mat) + assert_allclose(ft1.fvalue, ft2.fvalue, rtol=1e-13) + assert_allclose(ft1.pvalue, ft2.pvalue, rtol=1e-12) + + def test_fixed_scale(self): + cov_type = 'fixed_scale' + kwds = {} + res1 = self.res_ols.get_robustcov_results(cov_type, **kwds) + res2 = self.res_wls.get_robustcov_results(cov_type, **kwds) + assert_allclose(res1.params, res2.params, rtol=1e-13) + assert_allclose(res1.cov_params(), res2.cov_params(), rtol=1e-13) + assert_allclose(res1.bse, res2.bse, rtol=1e-13) + assert_allclose(res1.pvalues, res2.pvalues, rtol=1e-12) + + tt = res2.t_test(np.eye(len(res2.params)), + cov_p=res2.normalized_cov_params) + assert_allclose(res2.cov_params(), res2.normalized_cov_params, + rtol=1e-13) + assert_allclose(res2.bse, tt.sd, rtol=1e-13) + assert_allclose(res2.pvalues, tt.pvalue, rtol=1e-13) + assert_allclose(res2.tvalues, tt.tvalue, rtol=1e-13) + + # using cov_type in fit + mod = self.res_wls.model + mod3 = WLS(mod.endog, mod.exog, weights=mod.weights) + res3 = mod3.fit(cov_type=cov_type, cov_kwds=kwds) + tt = res3.t_test(np.eye(len(res3.params)), + cov_p=res3.normalized_cov_params) + assert_allclose(res3.cov_params(), res3.normalized_cov_params, + rtol=1e-13) + assert_allclose(res3.bse, tt.sd, rtol=1e-13) + assert_allclose(res3.pvalues, tt.pvalue, rtol=1e-13) + assert_allclose(res3.tvalues, tt.tvalue, rtol=1e-13) + + +def test_cov_type_fixed_scale(): + # this is a unit test from scipy curvefit for `absolute_sigma` keyword + xdata = np.array([0, 1, 2, 3, 4, 5]) + ydata = np.array([1, 1, 5, 7, 8, 12]) + sigma = np.array([1, 2, 1, 2, 1, 2]) + + xdata = np.column_stack((xdata, np.ones(len(xdata)))) + weights = 1. / sigma**2 + + res = WLS(ydata, xdata, weights=weights).fit() + assert_allclose(res.bse, [0.20659803, 0.57204404], rtol=1e-3) + + res = WLS(ydata, xdata, weights=weights).fit() + assert_allclose(res.bse, [0.20659803, 0.57204404], rtol=1e-3) + + res = WLS(ydata, xdata, weights=weights).fit(cov_type='fixed scale') + assert_allclose(res.bse, [0.30714756, 0.85045308], rtol=1e-3) + + res = WLS(ydata, xdata, weights=weights / 9.).fit(cov_type='fixed scale') + assert_allclose(res.bse, [3*0.30714756, 3*0.85045308], rtol=1e-3) + + res = WLS(ydata, xdata, weights=weights).fit(cov_type='fixed scale', + cov_kwds={'scale':9}) + assert_allclose(res.bse, [3*0.30714756, 3*0.85045308], rtol=1e-3) diff --git a/statsmodels/regression/tests/tests_predict.py b/statsmodels/regression/tests/tests_predict.py new file mode 100644 index 0000000..9c16ca9 --- /dev/null +++ b/statsmodels/regression/tests/tests_predict.py @@ -0,0 +1,215 @@ +# -*- coding: utf-8 -*- +""" +Created on Sun Apr 20 17:12:53 2014 + +author: Josef Perktold + +""" + +import numpy as np +from numpy.testing import assert_allclose, assert_equal + +from statsmodels.regression.linear_model import OLS, WLS +from statsmodels.sandbox.regression.predstd import wls_prediction_std +from statsmodels.regression._prediction import get_prediction + + +def test_predict_se(): + # this test doesn't use reference values + # checks conistency across options, and compares to direct calculation + + # generate dataset + nsample = 50 + x1 = np.linspace(0, 20, nsample) + x = np.c_[x1, (x1 - 5)**2, np.ones(nsample)] + np.random.seed(0)#9876789) #9876543) + beta = [0.5, -0.01, 5.] + y_true2 = np.dot(x, beta) + w = np.ones(nsample) + w[int(nsample * 6. / 10):] = 3 + sig = 0.5 + y2 = y_true2 + sig * w * np.random.normal(size=nsample) + x2 = x[:,[0,2]] + + # estimate OLS + res2 = OLS(y2, x2).fit() + + #direct calculation + covb = res2.cov_params() + predvar = res2.mse_resid + (x2 * np.dot(covb, x2.T).T).sum(1) + predstd = np.sqrt(predvar) + + prstd, iv_l, iv_u = wls_prediction_std(res2) + np.testing.assert_almost_equal(prstd, predstd, 15) + + #stats.t.isf(0.05/2., 50 - 2) + q = 2.0106347546964458 + ci_half = q * predstd + np.testing.assert_allclose(iv_u, res2.fittedvalues + ci_half, rtol=1e-12) + np.testing.assert_allclose(iv_l, res2.fittedvalues - ci_half, rtol=1e-12) + + prstd, iv_l, iv_u = wls_prediction_std(res2, x2[:3,:]) + np.testing.assert_equal(prstd, prstd[:3]) + np.testing.assert_allclose(iv_u, res2.fittedvalues[:3] + ci_half[:3], + rtol=1e-12) + np.testing.assert_allclose(iv_l, res2.fittedvalues[:3] - ci_half[:3], + rtol=1e-12) + + + # check WLS + res3 = WLS(y2, x2, 1. / w).fit() + + #direct calculation + covb = res3.cov_params() + predvar = res3.mse_resid * w + (x2 * np.dot(covb, x2.T).T).sum(1) + predstd = np.sqrt(predvar) + + prstd, iv_l, iv_u = wls_prediction_std(res3) + np.testing.assert_almost_equal(prstd, predstd, 15) + + #stats.t.isf(0.05/2., 50 - 2) + q = 2.0106347546964458 + ci_half = q * predstd + np.testing.assert_allclose(iv_u, res3.fittedvalues + ci_half, rtol=1e-12) + np.testing.assert_allclose(iv_l, res3.fittedvalues - ci_half, rtol=1e-12) + + # testing shapes of exog + prstd, iv_l, iv_u = wls_prediction_std(res3, x2[-1:,:], weights=3.) + np.testing.assert_equal(prstd, prstd[-1]) + prstd, iv_l, iv_u = wls_prediction_std(res3, x2[-1,:], weights=3.) + np.testing.assert_equal(prstd, prstd[-1]) + + prstd, iv_l, iv_u = wls_prediction_std(res3, x2[-2:,:], weights=3.) + np.testing.assert_equal(prstd, prstd[-2:]) + + prstd, iv_l, iv_u = wls_prediction_std(res3, x2[-2:,:], weights=[3, 3]) + np.testing.assert_equal(prstd, prstd[-2:]) + + prstd, iv_l, iv_u = wls_prediction_std(res3, x2[:3,:]) + np.testing.assert_equal(prstd, prstd[:3]) + np.testing.assert_allclose(iv_u, res3.fittedvalues[:3] + ci_half[:3], + rtol=1e-12) + np.testing.assert_allclose(iv_l, res3.fittedvalues[:3] - ci_half[:3], + rtol=1e-12) + + + #use wrong size for exog + #prstd, iv_l, iv_u = wls_prediction_std(res3, x2[-1,0], weights=3.) + np.testing.assert_raises(ValueError, wls_prediction_std, res3, x2[-1,0], + weights=3.) + + # check some weight values + sew1 = wls_prediction_std(res3, x2[-3:,:])[0]**2 + for wv in np.linspace(0.5, 3, 5): + + sew = wls_prediction_std(res3, x2[-3:,:], weights=1. / wv)[0]**2 + np.testing.assert_allclose(sew, sew1 + res3.scale * (wv - 1)) + + +class TestWLSPrediction(object): + + @classmethod + def setup_class(cls): + + # from example wls.py + + nsample = 50 + x = np.linspace(0, 20, nsample) + X = np.column_stack((x, (x - 5)**2)) + from statsmodels.tools.tools import add_constant + X = add_constant(X) + beta = [5., 0.5, -0.01] + sig = 0.5 + w = np.ones(nsample) + w[int(nsample * 6. / 10):] = 3 + y_true = np.dot(X, beta) + e = np.random.normal(size=nsample) + y = y_true + sig * w * e + X = X[:,[0,1]] + + + # ### WLS knowing the true variance ratio of heteroscedasticity + + mod_wls = WLS(y, X, weights=1./w) + cls.res_wls = mod_wls.fit() + + + def test_ci(self): + res_wls = self.res_wls + prstd, iv_l, iv_u = wls_prediction_std(res_wls) + pred_res = get_prediction(res_wls) + ci = pred_res.conf_int(obs=True) + + assert_allclose(pred_res.se_obs, prstd, rtol=1e-13) + assert_allclose(ci, np.column_stack((iv_l, iv_u)), rtol=1e-13) + + sf = pred_res.summary_frame() + + col_names = ['mean', 'mean_se', 'mean_ci_lower', 'mean_ci_upper', + 'obs_ci_lower', 'obs_ci_upper'] + assert_equal(sf.columns.tolist(), col_names) + + pred_res2 = res_wls.get_prediction() + ci2 = pred_res2.conf_int(obs=True) + + assert_allclose(pred_res2.se_obs, prstd, rtol=1e-13) + assert_allclose(ci2, np.column_stack((iv_l, iv_u)), rtol=1e-13) + + sf2 = pred_res2.summary_frame() + assert_equal(sf2.columns.tolist(), col_names) + + + def test_glm(self): + # prelimnimary, getting started with basic test for GLM.get_prediction + from statsmodels.genmod.generalized_linear_model import GLM + + res_wls = self.res_wls + mod_wls = res_wls.model + y, X, wi = mod_wls.endog, mod_wls.exog, mod_wls.weights + + w_sqrt = np.sqrt(wi) # notation wi is weights, `w` is var + mod_glm = GLM(y * w_sqrt, X * w_sqrt[:,None]) + + # compare using t distribution + res_glm = mod_glm.fit(use_t=True) + pred_glm = res_glm.get_prediction() + sf_glm = pred_glm.summary_frame() + + pred_res_wls = res_wls.get_prediction() + sf_wls = pred_res_wls.summary_frame() + n_compare = 30 # in glm with predict wendog + assert_allclose(sf_glm.values[:n_compare], + sf_wls.values[:n_compare, :4]) + + # compare using normal distribution + + res_glm = mod_glm.fit() # default use_t=False + pred_glm = res_glm.get_prediction() + sf_glm = pred_glm.summary_frame() + + res_wls = mod_wls.fit(use_t=False) + pred_res_wls = res_wls.get_prediction() + sf_wls = pred_res_wls.summary_frame() + assert_allclose(sf_glm.values[:n_compare], + sf_wls.values[:n_compare, :4]) + + # function for parameter transformation + # should be separate test method + from statsmodels.genmod._prediction import params_transform_univariate + rates = params_transform_univariate(res_glm.params, res_glm.cov_params()) + + rates2 = np.column_stack((np.exp(res_glm.params), + res_glm.bse * np.exp(res_glm.params), + np.exp(res_glm.conf_int()))) + assert_allclose(rates.summary_frame().values, rates2, rtol=1e-13) + + from statsmodels.genmod.families import links + + # with identity transform + pt = params_transform_univariate(res_glm.params, res_glm.cov_params(), link=links.identity()) + + assert_allclose(pt.tvalues, res_glm.tvalues, rtol=1e-13) + assert_allclose(pt.se_mean, res_glm.bse, rtol=1e-13) + ptt = pt.t_test() + assert_allclose(ptt[0], res_glm.tvalues, rtol=1e-13) + assert_allclose(ptt[1], res_glm.pvalues, rtol=1e-13) diff --git a/statsmodels/resampling/__init__.py b/statsmodels/resampling/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/robust/__init__.py b/statsmodels/robust/__init__.py new file mode 100644 index 0000000..0ddeffd --- /dev/null +++ b/statsmodels/robust/__init__.py @@ -0,0 +1,8 @@ +""" +Robust statistical models +""" +from . import norms +from .scale import mad, stand_mad, Huber, HuberScale, hubers_scale + +from statsmodels import NoseWrapper as Tester +test = Tester().test diff --git a/statsmodels/robust/norms.py b/statsmodels/robust/norms.py new file mode 100644 index 0000000..c20c069 --- /dev/null +++ b/statsmodels/robust/norms.py @@ -0,0 +1,853 @@ +from statsmodels.compat.python import range +import numpy as np + +#TODO: add plots to weighting functions for online docs. + +class RobustNorm(object): + """ + The parent class for the norms used for robust regression. + + Lays out the methods expected of the robust norms to be used + by statsmodels.RLM. + + Parameters + ---------- + None : + Some subclasses have optional tuning constants. + + References + ---------- + PJ Huber. 'Robust Statistics' John Wiley and Sons, Inc., New York, 1981. + + DC Montgomery, EA Peck. 'Introduction to Linear Regression Analysis', + John Wiley and Sons, Inc., New York, 2001. + + R Venables, B Ripley. 'Modern Applied Statistics in S' + Springer, New York, 2002. + + See Also + -------- + statsmodels.rlm for more information on how the estimators are used + and the inputs for the methods of RobustNorm and subclasses. + + Notes + ----- + Currently only M-estimators are available. + """ + + def rho(self, z): + """ + The robust criterion estimator function. + + Abstract method: + + -2 loglike used in M-estimator + """ + raise NotImplementedError + + def psi(self, z): + """ + Derivative of rho. Sometimes referred to as the influence function. + + Abstract method: + + psi = rho' + """ + raise NotImplementedError + + def weights(self, z): + """ + Returns the value of psi(z) / z + + Abstract method: + + psi(z) / z + """ + raise NotImplementedError + + def psi_deriv(self, z): + ''' + Deriative of psi. Used to obtain robust covariance matrix. + + See statsmodels.rlm for more information. + + Abstract method: + + psi_derive = psi' + ''' + raise NotImplementedError + + def __call__(self, z): + """ + Returns the value of estimator rho applied to an input + """ + return self.rho(z) + +class LeastSquares(RobustNorm): + + """ + Least squares rho for M-estimation and its derived functions. + + See also + -------- + statsmodels.robust.norms.RobustNorm for the methods. + """ + + def rho(self, z): + """ + The least squares estimator rho function + + Parameters + ----------- + z : array + 1d array + + Returns + ------- + rho : array + rho(z) = (1/2.)*z**2 + """ + + return z**2 * 0.5 + + def psi(self, z): + """ + The psi function for the least squares estimator + + The analytic derivative of rho + + Parameters + ---------- + z : array-like + 1d array + + Returns + ------- + psi : array + psi(z) = z + """ + + return np.asarray(z) + + def weights(self, z): + """ + The least squares estimator weighting function for the IRLS algorithm. + + The psi function scaled by the input z + + Parameters + ---------- + z : array-like + 1d array + + Returns + ------- + weights : array + weights(z) = np.ones(z.shape) + """ + + z = np.asarray(z) + return np.ones(z.shape, np.float64) + + def psi_deriv(self, z): + """ + The derivative of the least squares psi function. + + Returns + ------- + psi_deriv : array + ones(z.shape) + + Notes + ----- + Used to estimate the robust covariance matrix. + """ + return np.ones(z.shape, np.float64) + +class HuberT(RobustNorm): + """ + Huber's T for M estimation. + + Parameters + ---------- + t : float, optional + The tuning constant for Huber's t function. The default value is + 1.345. + + See also + -------- + statsmodels.robust.norms.RobustNorm + """ + + def __init__(self, t=1.345): + self.t = t + + def _subset(self, z): + """ + Huber's T is defined piecewise over the range for z + """ + z = np.asarray(z) + return np.less_equal(np.fabs(z), self.t) + + def rho(self, z): + """ + The robust criterion function for Huber's t. + + Parameters + ---------- + z : array-like + 1d array + + Returns + ------- + rho : array + rho(z) = .5*z**2 for \|z\| <= t + + rho(z) = \|z\|*t - .5*t**2 for \|z\| > t + """ + z = np.asarray(z) + test = self._subset(z) + return (test * 0.5 * z**2 + + (1 - test) * (np.fabs(z) * self.t - 0.5 * self.t**2)) + + def psi(self, z): + """ + The psi function for Huber's t estimator + + The analytic derivative of rho + + Parameters + ---------- + z : array-like + 1d array + + Returns + ------- + psi : array + psi(z) = z for \|z\| <= t + + psi(z) = sign(z)*t for \|z\| > t + """ + z = np.asarray(z) + test = self._subset(z) + return test * z + (1 - test) * self.t * np.sign(z) + + def weights(self, z): + """ + Huber's t weighting function for the IRLS algorithm + + The psi function scaled by z + + Parameters + ---------- + z : array-like + 1d array + + Returns + ------- + weights : array + weights(z) = 1 for \|z\| <= t + + weights(z) = t/\|z\| for \|z\| > t + """ + z = np.asarray(z) + test = self._subset(z) + absz = np.fabs(z) + absz[test] = 1.0 + return test + (1 - test) * self.t / absz + + def psi_deriv(self, z): + """ + The derivative of Huber's t psi function + + Notes + ----- + Used to estimate the robust covariance matrix. + """ + return np.less_equal(np.fabs(z), self.t) + +#TODO: untested, but looks right. RamsayE not available in R or SAS? +class RamsayE(RobustNorm): + """ + Ramsay's Ea for M estimation. + + Parameters + ---------- + a : float, optional + The tuning constant for Ramsay's Ea function. The default value is + 0.3. + + See also + -------- + statsmodels.robust.norms.RobustNorm + """ + + def __init__(self, a = .3): + self.a = a + + def rho(self, z): + """ + The robust criterion function for Ramsay's Ea. + + Parameters + ---------- + z : array-like + 1d array + + Returns + ------- + rho : array + rho(z) = a**-2 * (1 - exp(-a*\|z\|)*(1 + a*\|z\|)) + """ + z = np.asarray(z) + return (1 - np.exp(-self.a * np.fabs(z)) * + (1 + self.a * np.fabs(z))) / self.a**2 + + def psi(self, z): + """ + The psi function for Ramsay's Ea estimator + + The analytic derivative of rho + + Parameters + ---------- + z : array-like + 1d array + + Returns + ------- + psi : array + psi(z) = z*exp(-a*\|z\|) + """ + z = np.asarray(z) + return z * np.exp(-self.a * np.fabs(z)) + + def weights(self, z): + """ + Ramsay's Ea weighting function for the IRLS algorithm + + The psi function scaled by z + + Parameters + ---------- + z : array-like + 1d array + + Returns + ------- + weights : array + weights(z) = exp(-a*\|z\|) + """ + + z = np.asarray(z) + return np.exp(-self.a * np.fabs(z)) + + def psi_deriv(self, z): + """ + The derivative of Ramsay's Ea psi function. + + Notes + ----- + Used to estimate the robust covariance matrix. + """ + + return np.exp(-self.a * np.fabs(z)) + z**2*\ + np.exp(-self.a*np.fabs(z))*-self.a/np.fabs(z) + +class AndrewWave(RobustNorm): + + """ + Andrew's wave for M estimation. + + Parameters + ---------- + a : float, optional + The tuning constant for Andrew's Wave function. The default value is + 1.339. + + See also + -------- + statsmodels.robust.norms.RobustNorm + """ + def __init__(self, a = 1.339): + self.a = a + + def _subset(self, z): + """ + Andrew's wave is defined piecewise over the range of z. + """ + z = np.asarray(z) + return np.less_equal(np.fabs(z), self.a * np.pi) + + def rho(self, z): + """ + The robust criterion function for Andrew's wave. + + Parameters + ---------- + z : array-like + 1d array + + Returns + ------- + rho : array + rho(z) = a*(1-cos(z/a)) for \|z\| <= a*pi + + rho(z) = 2*a for \|z\| > a*pi + """ + + a = self.a + z = np.asarray(z) + test = self._subset(z) + return (test * a * (1 - np.cos(z / a)) + + (1 - test) * 2 * a) + + def psi(self, z): + """ + The psi function for Andrew's wave + + The analytic derivative of rho + + Parameters + ---------- + z : array-like + 1d array + + Returns + ------- + psi : array + psi(z) = sin(z/a) for \|z\| <= a*pi + + psi(z) = 0 for \|z\| > a*pi + """ + + a = self.a + z = np.asarray(z) + test = self._subset(z) + return test * np.sin(z / a) + + def weights(self, z): + """ + Andrew's wave weighting function for the IRLS algorithm + + The psi function scaled by z + + Parameters + ---------- + z : array-like + 1d array + + Returns + ------- + weights : array + weights(z) = sin(z/a)/(z/a) for \|z\| <= a*pi + + weights(z) = 0 for \|z\| > a*pi + """ + a = self.a + z = np.asarray(z) + test = self._subset(z) + return test * np.sin(z / a) / (z / a) + + def psi_deriv(self, z): + """ + The derivative of Andrew's wave psi function + + Notes + ----- + Used to estimate the robust covariance matrix. + """ + + test = self._subset(z) + return test*np.cos(z / self.a)/self.a + +#TODO: this is untested +class TrimmedMean(RobustNorm): + """ + Trimmed mean function for M-estimation. + + Parameters + ---------- + c : float, optional + The tuning constant for Ramsay's Ea function. The default value is + 2.0. + + See also + -------- + statsmodels.robust.norms.RobustNorm + """ + + def __init__(self, c=2.): + self.c = c + + def _subset(self, z): + """ + Least trimmed mean is defined piecewise over the range of z. + """ + + z = np.asarray(z) + return np.less_equal(np.fabs(z), self.c) + + def rho(self, z): + """ + The robust criterion function for least trimmed mean. + + Parameters + ---------- + z : array-like + 1d array + + Returns + ------- + rho : array + rho(z) = (1/2.)*z**2 for \|z\| <= c + + rho(z) = 0 for \|z\| > c + """ + + z = np.asarray(z) + test = self._subset(z) + return test * z**2 * 0.5 + + def psi(self, z): + """ + The psi function for least trimmed mean + + The analytic derivative of rho + + Parameters + ---------- + z : array-like + 1d array + + Returns + ------- + psi : array + psi(z) = z for \|z\| <= c + + psi(z) = 0 for \|z\| > c + + """ + z = np.asarray(z) + test = self._subset(z) + return test * z + + def weights(self, z): + """ + Least trimmed mean weighting function for the IRLS algorithm + + The psi function scaled by z + + Parameters + ---------- + z : array-like + 1d array + + Returns + ------- + weights : array + weights(z) = 1 for \|z\| <= c + + weights(z) = 0 for \|z\| > c + + """ + z = np.asarray(z) + test = self._subset(z) + return test + + def psi_deriv(self, z): + """ + The derivative of least trimmed mean psi function + + Notes + ----- + Used to estimate the robust covariance matrix. + """ + test = self._subset(z) + return test + +class Hampel(RobustNorm): + """ + + Hampel function for M-estimation. + + Parameters + ---------- + a : float, optional + b : float, optional + c : float, optional + The tuning constants for Hampel's function. The default values are + a,b,c = 2, 4, 8. + + See also + -------- + statsmodels.robust.norms.RobustNorm + """ + + def __init__(self, a = 2., b = 4., c = 8.): + self.a = a + self.b = b + self.c = c + + def _subset(self, z): + """ + Hampel's function is defined piecewise over the range of z + """ + z = np.fabs(np.asarray(z)) + t1 = np.less_equal(z, self.a) + t2 = np.less_equal(z, self.b) * np.greater(z, self.a) + t3 = np.less_equal(z, self.c) * np.greater(z, self.b) + return t1, t2, t3 + + def rho(self, z): + """ + The robust criterion function for Hampel's estimator + + Parameters + ---------- + z : array-like + 1d array + + Returns + ------- + rho : array + rho(z) = (1/2.)*z**2 for \|z\| <= a + + rho(z) = a*\|z\| - 1/2.*a**2 for a < \|z\| <= b + + rho(z) = a*(c*\|z\|-(1/2.)*z**2)/(c-b) for b < \|z\| <= c + + rho(z) = a*(b + c - a) for \|z\| > c + """ + + z = np.fabs(z) + a = self.a; b = self.b; c = self.c + t1, t2, t3 = self._subset(z) + v = (t1 * z**2 * 0.5 + + t2 * (a * z - a**2 * 0.5) + + t3 * (a * (c * z - z**2 * 0.5) / (c - b) - 7 * a**2 / 6.) + + (1 - t1 + t2 + t3) * a * (b + c - a)) + return v + + def psi(self, z): + """ + The psi function for Hampel's estimator + + The analytic derivative of rho + + Parameters + ---------- + z : array-like + 1d array + + Returns + ------- + psi : array + psi(z) = z for \|z\| <= a + + psi(z) = a*sign(z) for a < \|z\| <= b + + psi(z) = a*sign(z)*(c - \|z\|)/(c-b) for b < \|z\| <= c + + psi(z) = 0 for \|z\| > c + """ + z = np.asarray(z) + a = self.a; b = self.b; c = self.c + t1, t2, t3 = self._subset(z) + s = np.sign(z) + z = np.fabs(z) + v = s * (t1 * z + + t2 * a*s + + t3 * a*s * (c - z) / (c - b)) + return v + + def weights(self, z): + """ + Hampel weighting function for the IRLS algorithm + + The psi function scaled by z + + Parameters + ---------- + z : array-like + 1d array + + Returns + ------- + weights : array + weights(z) = 1 for \|z\| <= a + + weights(z) = a/\|z\| for a < \|z\| <= b + + weights(z) = a*(c - \|z\|)/(\|z\|*(c-b)) for b < \|z\| <= c + + weights(z) = 0 for \|z\| > c + + """ + z = np.asarray(z) + a = self.a; b = self.b; c = self.c + t1, t2, t3 = self._subset(z) + v = (t1 + + t2 * a/np.fabs(z) + + t3 * a*(c-np.fabs(z))/(np.fabs(z)*(c-b))) + v[np.where(np.isnan(v))]=1. # for some reason 0 returns a nan? + return v + + def psi_deriv(self, z): + t1, t2, t3 = self._subset(z) + return t1 + t3 * (self.a*np.sign(z)*z)/(np.fabs(z)*(self.c-self.b)) + +class TukeyBiweight(RobustNorm): + """ + + Tukey's biweight function for M-estimation. + + Parameters + ---------- + c : float, optional + The tuning constant for Tukey's Biweight. The default value is + c = 4.685. + + Notes + ----- + Tukey's biweight is sometime's called bisquare. + """ + + def __init__(self, c = 4.685): + self.c = c + + def _subset(self, z): + """ + Tukey's biweight is defined piecewise over the range of z + """ + z = np.fabs(np.asarray(z)) + return np.less_equal(z, self.c) + + def rho(self, z): + """ + The robust criterion function for Tukey's biweight estimator + + Parameters + ---------- + z : array-like + 1d array + + Returns + ------- + rho : array + rho(z) = -(1 - (z/c)**2)**3 * c**2/6. for \|z\| <= R + + rho(z) = 0 for \|z\| > R + """ + subset = self._subset(z) + return -(1 - (z / self.c)**2)**3 * subset * self.c**2 / 6. + + def psi(self, z): + """ + The psi function for Tukey's biweight estimator + + The analytic derivative of rho + + Parameters + ---------- + z : array-like + 1d array + + Returns + ------- + psi : array + psi(z) = z*(1 - (z/c)**2)**2 for \|z\| <= R + + psi(z) = 0 for \|z\| > R + """ + + z = np.asarray(z) + subset = self._subset(z) + return z * (1 - (z / self.c)**2)**2 * subset + + + def weights(self, z): + """ + Tukey's biweight weighting function for the IRLS algorithm + + The psi function scaled by z + + Parameters + ---------- + z : array-like + 1d array + + Returns + ------- + weights : array + psi(z) = (1 - (z/c)**2)**2 for \|z\| <= R + + psi(z) = 0 for \|z\| > R + """ + + subset = self._subset(z) + return (1 - (z / self.c)**2)**2 * subset + + def psi_deriv(self, z): + """ + The derivative of Tukey's biweight psi function + + Notes + ----- + Used to estimate the robust covariance matrix. + """ + subset = self._subset(z) + return subset*((1 - (z/self.c)**2)**2 - (4*z**2/self.c**2) *\ + (1-(z/self.c)**2)) + +def estimate_location(a, scale, norm=None, axis=0, initial=None, + maxiter=30, tol=1.0e-06): + """ + M-estimator of location using self.norm and a current + estimator of scale. + + This iteratively finds a solution to + + norm.psi((a-mu)/scale).sum() == 0 + + Parameters + ---------- + a : array + Array over which the location parameter is to be estimated + scale : array + Scale parameter to be used in M-estimator + norm : RobustNorm, optional + Robust norm used in the M-estimator. The default is HuberT(). + axis : int, optional + Axis along which to estimate the location parameter. The default is 0. + initial : array, optional + Initial condition for the location parameter. Default is None, which + uses the median of a. + niter : int, optional + Maximum number of iterations. The default is 30. + tol : float, optional + Toleration for convergence. The default is 1e-06. + + Returns + -------- + mu : array + Estimate of location + """ + if norm is None: + norm = HuberT() + + if initial is None: + mu = np.median(a, axis) + else: + mu = initial + + for iter in range(maxiter): + W = norm.weights((a-mu)/scale) + nmu = np.sum(W*a, axis) / np.sum(W, axis) + if np.alltrue(np.less(np.fabs(mu - nmu), scale * tol)): + return nmu + else: + mu = nmu + raise ValueError("location estimator failed to converge in %d iterations"\ + % maxiter) + diff --git a/statsmodels/robust/robust_linear_model.py b/statsmodels/robust/robust_linear_model.py new file mode 100644 index 0000000..b89c332 --- /dev/null +++ b/statsmodels/robust/robust_linear_model.py @@ -0,0 +1,682 @@ +""" +Robust linear models with support for the M-estimators listed under +:ref:`norms `. + +References +---------- +PJ Huber. 'Robust Statistics' John Wiley and Sons, Inc., New York. 1981. + +PJ Huber. 1973, 'The 1972 Wald Memorial Lectures: Robust Regression: + Asymptotics, Conjectures, and Monte Carlo.' The Annals of Statistics, + 1.5, 799-821. + +R Venables, B Ripley. 'Modern Applied Statistics in S' Springer, New York, + 2002. +""" +from statsmodels.compat.python import string_types +import numpy as np +import scipy.stats as stats + +from statsmodels.tools.decorators import (cache_readonly, + resettable_cache) +import statsmodels.regression.linear_model as lm +import statsmodels.robust.norms as norms +import statsmodels.robust.scale as scale +import statsmodels.base.model as base +import statsmodels.base.wrapper as wrap +from statsmodels.compat.numpy import np_matrix_rank + +__all__ = ['RLM'] + +def _check_convergence(criterion, iteration, tol, maxiter): + return not (np.any(np.fabs(criterion[iteration] - + criterion[iteration-1]) > tol) and iteration < maxiter) + +class RLM(base.LikelihoodModel): + __doc__ = """ + Robust Linear Models + + Estimate a robust linear model via iteratively reweighted least squares + given a robust criterion estimator. + + %(params)s + M : statsmodels.robust.norms.RobustNorm, optional + The robust criterion function for downweighting outliers. + The current options are LeastSquares, HuberT, RamsayE, AndrewWave, + TrimmedMean, Hampel, and TukeyBiweight. The default is HuberT(). + See statsmodels.robust.norms for more information. + %(extra_params)s + + Notes + ----- + + **Attributes** + + df_model : float + The degrees of freedom of the model. The number of regressors p less + one for the intercept. Note that the reported model degrees + of freedom does not count the intercept as a regressor, though + the model is assumed to have an intercept. + df_resid : float + The residual degrees of freedom. The number of observations n + less the number of regressors p. Note that here p does include + the intercept as using a degree of freedom. + endog : array + See above. Note that endog is a reference to the data so that if + data is already an array and it is changed, then `endog` changes + as well. + exog : array + See above. Note that endog is a reference to the data so that if + data is already an array and it is changed, then `endog` changes + as well. + M : statsmodels.robust.norms.RobustNorm + See above. Robust estimator instance instantiated. + nobs : float + The number of observations n + pinv_wexog : array + The pseudoinverse of the design / exogenous data array. Note that + RLM has no whiten method, so this is just the pseudo inverse of the + design. + normalized_cov_params : array + The p x p normalized covariance of the design / exogenous data. + This is approximately equal to (X.T X)^(-1) + + + Examples + --------- + >>> import statsmodels.api as sm + >>> data = sm.datasets.stackloss.load() + >>> data.exog = sm.add_constant(data.exog) + >>> rlm_model = sm.RLM(data.endog, data.exog, + M=sm.robust.norms.HuberT()) + + >>> rlm_results = rlm_model.fit() + >>> rlm_results.params + array([ 0.82938433, 0.92606597, -0.12784672, -41.02649835]) + >>> rlm_results.bse + array([ 0.11100521, 0.30293016, 0.12864961, 9.79189854]) + >>> rlm_results_HC2 = rlm_model.fit(cov="H2") + >>> rlm_results_HC2.params + array([ 0.82938433, 0.92606597, -0.12784672, -41.02649835]) + >>> rlm_results_HC2.bse + array([ 0.11945975, 0.32235497, 0.11796313, 9.08950419]) + >>> + >>> rlm_hamp_hub = sm.RLM(data.endog, data.exog, + M=sm.robust.norms.Hampel()).fit( + sm.robust.scale.HuberScale()) + + >>> rlm_hamp_hub.params + array([ 0.73175452, 1.25082038, -0.14794399, -40.27122257]) + """ % {'params' : base._model_params_doc, + 'extra_params' : base._missing_param_doc} + + def __init__(self, endog, exog, M=norms.HuberT(), missing='none', + **kwargs): + self.M = M + super(base.LikelihoodModel, self).__init__(endog, exog, + missing=missing, **kwargs) + self._initialize() + #things to remove_data + self._data_attr.extend(['weights', 'pinv_wexog']) + + def _initialize(self): + """ + Initializes the model for the IRLS fit. + + Resets the history and number of iterations. + """ + self.pinv_wexog = np.linalg.pinv(self.exog) + self.normalized_cov_params = np.dot(self.pinv_wexog, + np.transpose(self.pinv_wexog)) + self.df_resid = (np.float(self.exog.shape[0] - + np_matrix_rank(self.exog))) + self.df_model = np.float(np_matrix_rank(self.exog)-1) + self.nobs = float(self.endog.shape[0]) + + def score(self, params): + raise NotImplementedError + + def information(self, params): + raise NotImplementedError + + def predict(self, params, exog=None): + """ + Return linear predicted values from a design matrix. + + Parameters + ---------- + params : array-like, optional after fit has been called + Parameters of a linear model + exog : array-like, optional. + Design / exogenous data. Model exog is used if None. + + Returns + ------- + An array of fitted values + + Notes + ----- + If the model as not yet been fit, params is not optional. + """ + #copied from linear_model + if exog is None: + exog = self.exog + return np.dot(exog, params) + + def loglike(self, params): + raise NotImplementedError + + def deviance(self, tmp_results): + """ + Returns the (unnormalized) log-likelihood from the M estimator. + """ + return self.M((self.endog - tmp_results.fittedvalues) / + tmp_results.scale).sum() + + def _update_history(self, tmp_results, history, conv): + history['params'].append(tmp_results.params) + history['scale'].append(tmp_results.scale) + if conv == 'dev': + history['deviance'].append(self.deviance(tmp_results)) + elif conv == 'sresid': + history['sresid'].append(tmp_results.resid/tmp_results.scale) + elif conv == 'weights': + history['weights'].append(tmp_results.model.weights) + return history + + def _estimate_scale(self, resid): + """ + Estimates the scale based on the option provided to the fit method. + """ + if isinstance(self.scale_est, str): + if self.scale_est.lower() == 'mad': + return scale.mad(resid, center=0) + if self.scale_est.lower() == 'stand_mad': + return scale.mad(resid) + else: + raise ValueError("Option %s for scale_est not understood" % + self.scale_est) + elif isinstance(self.scale_est, scale.HuberScale): + return self.scale_est(self.df_resid, self.nobs, resid) + else: + return scale.scale_est(self, resid)**2 + + def fit(self, maxiter=50, tol=1e-8, scale_est='mad', init=None, cov='H1', + update_scale=True, conv='dev'): + """ + Fits the model using iteratively reweighted least squares. + + The IRLS routine runs until the specified objective converges to `tol` + or `maxiter` has been reached. + + Parameters + ---------- + conv : string + Indicates the convergence criteria. + Available options are "coefs" (the coefficients), "weights" (the + weights in the iteration), "sresid" (the standardized residuals), + and "dev" (the un-normalized log-likelihood for the M + estimator). The default is "dev". + cov : string, optional + 'H1', 'H2', or 'H3' + Indicates how the covariance matrix is estimated. Default is 'H1'. + See rlm.RLMResults for more information. + init : string + Specifies method for the initial estimates of the parameters. + Default is None, which means that the least squares estimate + is used. Currently it is the only available choice. + maxiter : int + The maximum number of iterations to try. Default is 50. + scale_est : string or HuberScale() + 'mad' or HuberScale() + Indicates the estimate to use for scaling the weights in the IRLS. + The default is 'mad' (median absolute deviation. Other options are + 'HuberScale' for Huber's proposal 2. Huber's proposal 2 has + optional keyword arguments d, tol, and maxiter for specifying the + tuning constant, the convergence tolerance, and the maximum number + of iterations. See statsmodels.robust.scale for more information. + tol : float + The convergence tolerance of the estimate. Default is 1e-8. + update_scale : Bool + If `update_scale` is False then the scale estimate for the + weights is held constant over the iteration. Otherwise, it + is updated for each fit in the iteration. Default is True. + + Returns + ------- + results : object + statsmodels.rlm.RLMresults + """ + if not cov.upper() in ["H1","H2","H3"]: + raise ValueError("Covariance matrix %s not understood" % cov) + else: + self.cov = cov.upper() + conv = conv.lower() + if not conv in ["weights","coefs","dev","sresid"]: + raise ValueError("Convergence argument %s not understood" \ + % conv) + self.scale_est = scale_est + if (isinstance(scale_est, + string_types) and scale_est.lower() == "stand_mad"): + from warnings import warn + warn("stand_mad is deprecated and will be removed in 0.7.0", + FutureWarning) + + wls_results = lm.WLS(self.endog, self.exog).fit() + if not init: + self.scale = self._estimate_scale(wls_results.resid) + + history = dict(params = [np.inf], scale = []) + if conv == 'coefs': + criterion = history['params'] + elif conv == 'dev': + history.update(dict(deviance = [np.inf])) + criterion = history['deviance'] + elif conv == 'sresid': + history.update(dict(sresid = [np.inf])) + criterion = history['sresid'] + elif conv == 'weights': + history.update(dict(weights = [np.inf])) + criterion = history['weights'] + + # done one iteration so update + history = self._update_history(wls_results, history, conv) + iteration = 1 + converged = 0 + while not converged: + self.weights = self.M.weights(wls_results.resid/self.scale) + wls_results = lm.WLS(self.endog, self.exog, + weights=self.weights).fit() + if update_scale is True: + self.scale = self._estimate_scale(wls_results.resid) + history = self._update_history(wls_results, history, conv) + iteration += 1 + converged = _check_convergence(criterion, iteration, tol, maxiter) + results = RLMResults(self, wls_results.params, + self.normalized_cov_params, self.scale) + + history['iteration'] = iteration + results.fit_history = history + results.fit_options = dict(cov=cov.upper(), scale_est=scale_est, + norm=self.M.__class__.__name__, conv=conv) + #norm is not changed in fit, no old state + + #doing the next causes exception + #self.cov = self.scale_est = None #reset for additional fits + #iteration and history could contain wrong state with repeated fit + return RLMResultsWrapper(results) + +class RLMResults(base.LikelihoodModelResults): + """ + Class to contain RLM results + + Returns + ------- + **Attributes** + + bcov_scaled : array + p x p scaled covariance matrix specified in the model fit method. + The default is H1. H1 is defined as + ``k**2 * (1/df_resid*sum(M.psi(sresid)**2)*scale**2)/ + ((1/nobs*sum(M.psi_deriv(sresid)))**2) * (X.T X)^(-1)`` + + where ``k = 1 + (df_model +1)/nobs * var_psiprime/m**2`` + where ``m = mean(M.psi_deriv(sresid))`` and + ``var_psiprime = var(M.psi_deriv(sresid))`` + + H2 is defined as + ``k * (1/df_resid) * sum(M.psi(sresid)**2) *scale**2/ + ((1/nobs)*sum(M.psi_deriv(sresid)))*W_inv`` + + H3 is defined as + ``1/k * (1/df_resid * sum(M.psi(sresid)**2)*scale**2 * + (W_inv X.T X W_inv))`` + + where `k` is defined as above and + ``W_inv = (M.psi_deriv(sresid) exog.T exog)^(-1)`` + + See the technical documentation for cleaner formulae. + bcov_unscaled : array + The usual p x p covariance matrix with scale set equal to 1. It + is then just equivalent to normalized_cov_params. + bse : array + An array of the standard errors of the parameters. The standard + errors are taken from the robust covariance matrix specified in the + argument to fit. + chisq : array + An array of the chi-squared values of the paramter estimates. + df_model + See RLM.df_model + df_resid + See RLM.df_resid + fit_history : dict + Contains information about the iterations. Its keys are `deviance`, + `params`, `iteration` and the convergence criteria specified in + `RLM.fit`, if different from `deviance` or `params`. + fit_options : dict + Contains the options given to fit. + fittedvalues : array + The linear predicted values. dot(exog, params) + model : statsmodels.rlm.RLM + A reference to the model instance + nobs : float + The number of observations n + normalized_cov_params : array + See RLM.normalized_cov_params + params : array + The coefficients of the fitted model + pinv_wexog : array + See RLM.pinv_wexog + pvalues : array + The p values associated with `tvalues`. Note that `tvalues` are assumed to be distributed + standard normal rather than Student's t. + resid : array + The residuals of the fitted model. endog - fittedvalues + scale : float + The type of scale is determined in the arguments to the fit method in + RLM. The reported scale is taken from the residuals of the weighted + least squares in the last IRLS iteration if update_scale is True. If + update_scale is False, then it is the scale given by the first OLS + fit before the IRLS iterations. + sresid : array + The scaled residuals. + tvalues : array + The "t-statistics" of params. These are defined as params/bse where bse are taken + from the robust covariance matrix specified in the argument to fit. + weights : array + The reported weights are determined by passing the scaled residuals + from the last weighted least squares fit in the IRLS algortihm. + + See also + -------- + statsmodels.base.model.LikelihoodModelResults + """ + + + def __init__(self, model, params, normalized_cov_params, scale): + super(RLMResults, self).__init__(model, params, + normalized_cov_params, scale) + self.model = model + self.df_model = model.df_model + self.df_resid = model.df_resid + self.nobs = model.nobs + self._cache = resettable_cache() + #for remove_data + self.data_in_cache = ['sresid'] + + self.cov_params_default = self.bcov_scaled + #TODO: "pvals" should come from chisq on bse? + + @cache_readonly + def fittedvalues(self): + return np.dot(self.model.exog, self.params) + + @cache_readonly + def resid(self): + return self.model.endog - self.fittedvalues # before bcov + + @cache_readonly + def sresid(self): + return self.resid/self.scale + + @cache_readonly + def bcov_unscaled(self): + return self.normalized_cov_params + + @cache_readonly + def weights(self): + return self.model.weights + + @cache_readonly + def bcov_scaled(self): + model = self.model + m = np.mean(model.M.psi_deriv(self.sresid)) + var_psiprime = np.var(model.M.psi_deriv(self.sresid)) + k = 1 + (self.df_model+1)/self.nobs * var_psiprime/m**2 + + if model.cov == "H1": + return k**2 * (1/self.df_resid*\ + np.sum(model.M.psi(self.sresid)**2)*self.scale**2)\ + /((1/self.nobs*np.sum(model.M.psi_deriv(self.sresid)))**2)\ + *model.normalized_cov_params + else: + W = np.dot(model.M.psi_deriv(self.sresid)*model.exog.T, + model.exog) + W_inv = np.linalg.inv(W) + # [W_jk]^-1 = [SUM(psi_deriv(Sr_i)*x_ij*x_jk)]^-1 + # where Sr are the standardized residuals + if model.cov == "H2": + # These are correct, based on Huber (1973) 8.13 + return k*(1/self.df_resid)*np.sum(\ + model.M.psi(self.sresid)**2)*self.scale**2\ + /((1/self.nobs)*np.sum(\ + model.M.psi_deriv(self.sresid)))*W_inv + elif model.cov == "H3": + return k**-1*1/self.df_resid*np.sum(\ + model.M.psi(self.sresid)**2)*self.scale**2\ + *np.dot(np.dot(W_inv, np.dot(model.exog.T,model.exog)),\ + W_inv) + + @cache_readonly + def pvalues(self): + return stats.norm.sf(np.abs(self.tvalues))*2 + + @cache_readonly + def bse(self): + return np.sqrt(np.diag(self.bcov_scaled)) + + @cache_readonly + def chisq(self): + return (self.params/self.bse)**2 + + def remove_data(self): + super(self.__class__, self).remove_data() + #self.model.history['sresid'] = None + #self.model.history['weights'] = None + + remove_data.__doc__ = base.LikelihoodModelResults.remove_data.__doc__ + + def summary(self, yname=None, xname=None, title=0, alpha=.05, + return_fmt='text'): + """ + This is for testing the new summary setup + """ + from statsmodels.iolib.summary import (summary_top, + summary_params, summary_return) + +## left = [(i, None) for i in ( +## 'Dependent Variable:', +## 'Model type:', +## 'Method:', +## 'Date:', +## 'Time:', +## 'Number of Obs:', +## 'df resid', +## 'df model', +## )] + top_left = [('Dep. Variable:', None), + ('Model:', None), + ('Method:', ['IRLS']), + ('Norm:', [self.fit_options['norm']]), + ('Scale Est.:', [self.fit_options['scale_est']]), + ('Cov Type:', [self.fit_options['cov']]), + ('Date:', None), + ('Time:', None), + ('No. Iterations:', ["%d" % self.fit_history['iteration']]) + ] + top_right = [('No. Observations:', None), + ('Df Residuals:', None), + ('Df Model:', None) + ] + + if not title is None: + title = "Robust linear Model Regression Results" + + #boiler plate + from statsmodels.iolib.summary import Summary + smry = Summary() + smry.add_table_2cols(self, gleft=top_left, gright=top_right, #[], + yname=yname, xname=xname, title=title) + smry.add_table_params(self, yname=yname, xname=xname, alpha=alpha, + use_t=self.use_t) + + #diagnostic table is not used yet +# smry.add_table_2cols(self, gleft=diagn_left, gright=diagn_right, +# yname=yname, xname=xname, +# title="") + +#add warnings/notes, added to text format only + etext =[] + wstr = \ +'''If the model instance has been used for another fit with different fit +parameters, then the fit options might not be the correct ones anymore .''' + etext.append(wstr) + + if etext: + smry.add_extra_txt(etext) + + return smry + + + def summary2(self, xname=None, yname=None, title=None, alpha=.05, + float_format="%.4f"): + """Experimental summary function for regression results + + Parameters + ----------- + xname : List of strings of length equal to the number of parameters + Names of the independent variables (optional) + yname : string + Name of the dependent variable (optional) + title : string, optional + Title for the top table. If not None, then this replaces the + default title + alpha : float + significance level for the confidence intervals + float_format: string + print format for floats in parameters summary + + Returns + ------- + smry : Summary instance + this holds the summary tables and text, which can be printed or + converted to various output formats. + + See Also + -------- + statsmodels.iolib.summary.Summary : class to hold summary + results + + """ + # Summary + from statsmodels.iolib import summary2 + smry = summary2.Summary() + smry.add_base(results=self, alpha=alpha, float_format=float_format, + xname=xname, yname=yname, title=title) + + return smry + + +class RLMResultsWrapper(lm.RegressionResultsWrapper): + pass +wrap.populate_wrapper(RLMResultsWrapper, RLMResults) + +if __name__=="__main__": +#NOTE: This is to be removed +#Delivery Time Data is taken from Montgomery and Peck + import statsmodels.api as sm + +#delivery time(minutes) + endog = np.array([16.68, 11.50, 12.03, 14.88, 13.75, 18.11, 8.00, 17.83, + 79.24, 21.50, 40.33, 21.00, 13.50, 19.75, 24.00, 29.00, 15.35, 19.00, + 9.50, 35.10, 17.90, 52.32, 18.75, 19.83, 10.75]) + +#number of cases, distance (Feet) + exog = np.array([[7, 3, 3, 4, 6, 7, 2, 7, 30, 5, 16, 10, 4, 6, 9, 10, 6, + 7, 3, 17, 10, 26, 9, 8, 4], [560, 220, 340, 80, 150, 330, 110, 210, 1460, + 605, 688, 215, 255, 462, 448, 776, 200, 132, 36, 770, 140, 810, 450, 635, + 150]]) + exog = exog.T + exog = sm.add_constant(exog) + +# model_ols = models.regression.OLS(endog, exog) +# results_ols = model_ols.fit() + +# model_ramsaysE = RLM(endog, exog, M=norms.RamsayE()) +# results_ramsaysE = model_ramsaysE.fit(update_scale=False) + +# model_andrewWave = RLM(endog, exog, M=norms.AndrewWave()) +# results_andrewWave = model_andrewWave.fit(update_scale=False) + +# model_hampel = RLM(endog, exog, M=norms.Hampel(a=1.7,b=3.4,c=8.5)) # convergence problems with scale changed, not with 2,4,8 though? +# results_hampel = model_hampel.fit(update_scale=False) + +####################### +### Stack Loss Data ### +####################### + from statsmodels.datasets.stackloss import load + data = load() + data.exog = sm.add_constant(data.exog) +############# +### Huber ### +############# +# m1_Huber = RLM(data.endog, data.exog, M=norms.HuberT()) +# results_Huber1 = m1_Huber.fit() +# m2_Huber = RLM(data.endog, data.exog, M=norms.HuberT()) +# results_Huber2 = m2_Huber.fit(cov="H2") +# m3_Huber = RLM(data.endog, data.exog, M=norms.HuberT()) +# results_Huber3 = m3_Huber.fit(cov="H3") +############## +### Hampel ### +############## +# m1_Hampel = RLM(data.endog, data.exog, M=norms.Hampel()) +# results_Hampel1 = m1_Hampel.fit() +# m2_Hampel = RLM(data.endog, data.exog, M=norms.Hampel()) +# results_Hampel2 = m2_Hampel.fit(cov="H2") +# m3_Hampel = RLM(data.endog, data.exog, M=norms.Hampel()) +# results_Hampel3 = m3_Hampel.fit(cov="H3") +################ +### Bisquare ### +################ +# m1_Bisquare = RLM(data.endog, data.exog, M=norms.TukeyBiweight()) +# results_Bisquare1 = m1_Bisquare.fit() +# m2_Bisquare = RLM(data.endog, data.exog, M=norms.TukeyBiweight()) +# results_Bisquare2 = m2_Bisquare.fit(cov="H2") +# m3_Bisquare = RLM(data.endog, data.exog, M=norms.TukeyBiweight()) +# results_Bisquare3 = m3_Bisquare.fit(cov="H3") + + +############################################## +# Huber's Proposal 2 scaling # +############################################## + +################ +### Huber'sT ### +################ + m1_Huber_H = RLM(data.endog, data.exog, M=norms.HuberT()) + results_Huber1_H = m1_Huber_H.fit(scale_est=scale.HuberScale()) +# m2_Huber_H +# m3_Huber_H +# m4 = RLM(data.endog, data.exog, M=norms.HuberT()) +# results4 = m1.fit(scale_est="Huber") +# m5 = RLM(data.endog, data.exog, M=norms.Hampel()) +# results5 = m2.fit(scale_est="Huber") +# m6 = RLM(data.endog, data.exog, M=norms.TukeyBiweight()) +# results6 = m3.fit(scale_est="Huber") + + + + +# print """Least squares fit +#%s +#Huber Params, t = 2. +#%s +#Ramsay's E Params +#%s +#Andrew's Wave Params +#%s +#Hampel's 17A Function +#%s +#""" % (results_ols.params, results_huber.params, results_ramsaysE.params, +# results_andrewWave.params, results_hampel.params) + diff --git a/statsmodels/robust/scale.py b/statsmodels/robust/scale.py new file mode 100644 index 0000000..2d24647 --- /dev/null +++ b/statsmodels/robust/scale.py @@ -0,0 +1,241 @@ +""" +Support and standalone functions for Robust Linear Models + +References +---------- +PJ Huber. 'Robust Statistics' John Wiley and Sons, Inc., New York, 1981. + +R Venables, B Ripley. 'Modern Applied Statistics in S' + Springer, New York, 2002. +""" +from statsmodels.compat.python import callable, range +import numpy as np +from scipy.stats import norm as Gaussian +from . import norms +from statsmodels.tools import tools + +def mad(a, c=Gaussian.ppf(3/4.), axis=0, center=np.median): + # c \approx .6745 + """ + The Median Absolute Deviation along given axis of an array + + Parameters + ---------- + a : array-like + Input array. + c : float, optional + The normalization constant. Defined as scipy.stats.norm.ppf(3/4.), + which is approximately .6745. + axis : int, optional + The defaul is 0. Can also be None. + center : callable or float + If a callable is provided, such as the default `np.median` then it + is expected to be called center(a). The axis argument will be applied + via np.apply_over_axes. Otherwise, provide a float. + + Returns + ------- + mad : float + `mad` = median(abs(`a` - center))/`c` + """ + a = np.asarray(a) + if callable(center): + center = np.apply_over_axes(center, a, axis) + return np.median((np.fabs(a-center))/c, axis=axis) + +def stand_mad(a, c=Gaussian.ppf(3/4.), axis=0): + from warnings import warn + warn("stand_mad is deprecated and will be removed in 0.7.0. Use mad " + "instead.", FutureWarning) + return mad(a, c=c, axis=axis) + +class Huber(object): + """ + Huber's proposal 2 for estimating location and scale jointly. + + Parameters + ---------- + c : float, optional + Threshold used in threshold for chi=psi**2. Default value is 1.5. + tol : float, optional + Tolerance for convergence. Default value is 1e-08. + maxiter : int, optional0 + Maximum number of iterations. Default value is 30. + norm : statsmodels.robust.norms.RobustNorm, optional + A robust norm used in M estimator of location. If None, + the location estimator defaults to a one-step + fixed point version of the M-estimator using Huber's T. + + call + Return joint estimates of Huber's scale and location. + + Examples + -------- + >>> import numpy as np + >>> import statsmodels.api as sm + >>> chem_data = np.array([2.20, 2.20, 2.4, 2.4, 2.5, 2.7, 2.8, 2.9, 3.03, + ... 3.03, 3.10, 3.37, 3.4, 3.4, 3.4, 3.5, 3.6, 3.7, 3.7, 3.7, 3.7, + ... 3.77, 5.28, 28.95]) + >>> sm.robust.scale.huber(chem_data) + (array(3.2054980819923693), array(0.67365260010478967)) + """ + + def __init__(self, c=1.5, tol=1.0e-08, maxiter=30, norm=None): + self.c = c + self.maxiter = maxiter + self.tol = tol + self.norm = norm + tmp = 2 * Gaussian.cdf(c) - 1 + self.gamma = tmp + c**2 * (1 - tmp) - 2 * c * Gaussian.pdf(c) + + def __call__(self, a, mu=None, initscale=None, axis=0): + """ + Compute Huber's proposal 2 estimate of scale, using an optional + initial value of scale and an optional estimate of mu. If mu + is supplied, it is not reestimated. + + Parameters + ---------- + a : array + 1d array + mu : float or None, optional + If the location mu is supplied then it is not reestimated. + Default is None, which means that it is estimated. + initscale : float or None, optional + A first guess on scale. If initscale is None then the standardized + median absolute deviation of a is used. + + Notes + ----- + `Huber` minimizes the function + + sum(psi((a[i]-mu)/scale)**2) + + as a function of (mu, scale), where + + psi(x) = np.clip(x, -self.c, self.c) + """ + a = np.asarray(a) + if mu is None: + n = a.shape[0] - 1 + mu = np.median(a, axis=axis) + est_mu = True + else: + n = a.shape[0] + mu = mu + est_mu = False + + if initscale is None: + scale = mad(a, axis=axis) + else: + scale = initscale + scale = tools.unsqueeze(scale, axis, a.shape) + mu = tools.unsqueeze(mu, axis, a.shape) + return self._estimate_both(a, scale, mu, axis, est_mu, n) + + def _estimate_both(self, a, scale, mu, axis, est_mu, n): + """ + Estimate scale and location simultaneously with the following + pseudo_loop: + + while not_converged: + mu, scale = estimate_location(a, scale, mu), estimate_scale(a, scale, mu) + + where estimate_location is an M-estimator and estimate_scale implements + the check used in Section 5.5 of Venables & Ripley + """ + for _ in range(self.maxiter): + # Estimate the mean along a given axis + if est_mu: + if self.norm is None: + # This is a one-step fixed-point estimator + # if self.norm == norms.HuberT + # It should be faster than using norms.HuberT + nmu = np.clip(a, mu-self.c*scale, + mu+self.c*scale).sum(axis) / a.shape[axis] + else: + nmu = norms.estimate_location(a, scale, self.norm, axis, mu, + self.maxiter, self.tol) + else: + # Effectively, do nothing + nmu = mu.squeeze() + nmu = tools.unsqueeze(nmu, axis, a.shape) + + subset = np.less_equal(np.fabs((a - mu)/scale), self.c) + card = subset.sum(axis) + + nscale = np.sqrt(np.sum(subset * (a - nmu)**2, axis) \ + / (n * self.gamma - (a.shape[axis] - card) * self.c**2)) + nscale = tools.unsqueeze(nscale, axis, a.shape) + + test1 = np.alltrue(np.less_equal(np.fabs(scale - nscale), + nscale * self.tol)) + test2 = np.alltrue(np.less_equal(np.fabs(mu - nmu), nscale*self.tol)) + if not (test1 and test2): + mu = nmu; scale = nscale + else: + return nmu.squeeze(), nscale.squeeze() + raise ValueError('joint estimation of location and scale failed to converge in %d iterations' % self.maxiter) + +huber = Huber() + +class HuberScale(object): + """ + Huber's scaling for fitting robust linear models. + + Huber's scale is intended to be used as the scale estimate in the + IRLS algorithm and is slightly different than the `Huber` class. + + Parameters + ---------- + d : float, optional + d is the tuning constant for Huber's scale. Default is 2.5 + tol : float, optional + The convergence tolerance + maxiter : int, optiona + The maximum number of iterations. The default is 30. + + Methods + ------- + call + Return's Huber's scale computed as below + + Notes + -------- + Huber's scale is the iterative solution to + + scale_(i+1)**2 = 1/(n*h)*sum(chi(r/sigma_i)*sigma_i**2 + + where the Huber function is + + chi(x) = (x**2)/2 for \|x\| < d + chi(x) = (d**2)/2 for \|x\| >= d + + and the Huber constant h = (n-p)/n*(d**2 + (1-d**2)*\ + scipy.stats.norm.cdf(d) - .5 - d*sqrt(2*pi)*exp(-0.5*d**2) + """ + def __init__(self, d=2.5, tol=1e-08, maxiter=30): + self.d = d + self.tol = tol + self.maxiter = maxiter + + def __call__(self, df_resid, nobs, resid): + h = (df_resid)/nobs*(self.d**2 + (1-self.d**2)*\ + Gaussian.cdf(self.d)-.5 - self.d/(np.sqrt(2*np.pi))*\ + np.exp(-.5*self.d**2)) + s = mad(resid) + subset = lambda x: np.less(np.fabs(resid/x),self.d) + chi = lambda s: subset(s)*(resid/s)**2/2+(1-subset(s))*(self.d**2/2) + scalehist = [np.inf,s] + niter = 1 + while (np.abs(scalehist[niter-1] - scalehist[niter])>self.tol \ + and niter < self.maxiter): + nscale = np.sqrt(1/(nobs*h)*np.sum(chi(scalehist[-1]))*\ + scalehist[-1]**2) + scalehist.append(nscale) + niter += 1 + #if niter == self.maxiter: + # raise ValueError("Huber's scale failed to converge") + return scalehist[-1] + +hubers_scale = HuberScale() diff --git a/statsmodels/robust/tests/__init__.py b/statsmodels/robust/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/robust/tests/results/__init__.py b/statsmodels/robust/tests/results/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/robust/tests/results/results_rlm.py b/statsmodels/robust/tests/results/results_rlm.py new file mode 100644 index 0000000..3625347 --- /dev/null +++ b/statsmodels/robust/tests/results/results_rlm.py @@ -0,0 +1,396 @@ +### RLM MODEL RESULTS ### + +import numpy as np + +def _shift_intercept(arr): + """ + A convenience function to make the SAS covariance matrix + compatible with statsmodels.rlm covariance + """ + arr = np.asarray(arr) + side = int(np.sqrt(len(arr))) + return np.roll(np.roll(arr.reshape(side,side),-1, axis =1), -1, axis=0) + +class Huber(object): + """ + """ + def __init__(self): + self.params = np.array([ 0.82937387, 0.92610818, -0.12784916, + -41.02653105]) + self.bse = np.array([ 0.11118035, 0.3034081 , 0.12885259, 9.8073472 ]) + self.scale = 2.4407137948148447 + self.weights = np.array([ 1., 1., 0.7858871, 0.50494094, 1., + 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., + 0.36814106]) + self.resid = np.array([ 3.05027584, -2.07757332, 4.17721071, + 6.50163171, -1.64615192, -2.57226011, -1.73127333, -0.73127333, + -2.25476463, 0.48083217,1.63147461, 1.42973363, -2.26346951, + -0.78323693, 2.26646556, 0.88291808, -0.83307835, 0.06186577, + 0.26360675, 1.54306186, -8.91752986]) + self.df_model = 3 + self.df_resid = 17 + self.bcov_unscaled = np.array([[ 1.72887367e-03, -3.47079127e-03, + -6.79080082e-04, 2.73387119e-02], + [ -3.47079127e-03, 1.28754242e-02, 9.95952051e-07, + -6.19611175e-02], + [ -6.79080082e-04, 9.95952051e-07, 2.32216722e-03, + -1.59355028e-01], + [ 2.73387119e-02, -6.19611175e-02, -1.59355028e-01, + 1.34527267e+01]]) # From R + self.fittedvalues = np.array([ 38.94972416, 39.07757332, 32.82278929, + 21.49836829, + 19.64615192, 20.57226011, 20.73127333, 20.73127333, + 17.25476463, 13.51916783, 12.36852539, 11.57026637, + 13.26346951, 12.78323693, 5.73353444, 6.11708192, + 8.83307835, 7.93813423, 8.73639325, 13.45693814, + 23.91752986]) + self.tvalues = np.array([ 7.45971657, 3.0523516 , -0.99221261, + -4.18324448]) + # from R this is equivalent to +# self.res1.params/np.sqrt(np.diag(self.res1.bcov_scaled)) + +# def conf_int(self): # method to be consistent with sm +# return + + + + # The below are taken from SAS + + huber_h1 = [95.8813, 0.19485, -0.44161, -1.13577, 0.1949, 0.01232, + -0.02474, -0.00484, -0.4416, -0.02474, 0.09177, 0.00001, -1.1358, + -0.00484, 0.00001, 0.01655] + h1 = _shift_intercept(huber_h1) + + huber_h2 = [82.6191, 0.07942, -0.23915, -0.95604, 0.0794, 0.01427, + -0.03013, -0.00344, -0.2392, -0.03013, 0.10391, -0.00166, -0.9560, + -0.00344, -0.00166, 0.01392] + h2 = _shift_intercept(huber_h2) + + huber_h3 = [70.1633, -0.04533, -0.00790, -0.78618, -0.0453, 0.01656, + -0.03608, -0.00203, -0.0079, -0.03608, 0.11610, -0.00333, -0.7862, + -0.00203, -0.00333, 0.01138] + h3 = _shift_intercept(huber_h3) + +class Hampel(object): + """ + """ + def __init__(self): + self.params = np.array([ 0.74108304, 1.22507934, -0.14552506, + -40.47473236]) + self.bse = np.array([ 0.13482596, 0.36793632, 0.1562567 , + 11.89315426]) + self.scale = 3.0882646556217064 + self.weights = np.array([ 1., 1., 1., 1., 1., 1., 1., 1., 1., + 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 0.80629719]) + self.resid = np.array([ 3.06267708, -2.08284798, 4.36377602, + 5.78635972, -1.7634816 , + -2.98856094, -2.34048993, -1.34048993, -3.02422878, 1.08249252, + 2.39221804, 2.47177232, -1.62645737, -0.25076107, 2.32088237, + 0.88430719, -1.37812296, -0.35944755, -0.43900184, 1.40555003, + -7.65988702]) + self.df_model = 3 + self.df_resid = 17 + self.bcov_unscaled = np.array([[ 1.72887367e-03, -3.47079127e-03, + -6.79080082e-04, + 2.73387119e-02], + [ -3.47079127e-03, 1.28754242e-02, 9.95952051e-07, + -6.19611175e-02], + [ -6.79080082e-04, 9.95952051e-07, 2.32216722e-03, + -1.59355028e-01], + [ 2.73387119e-02, -6.19611175e-02, -1.59355028e-01, + 1.34527267e+01]]) + self.fittedvalues = np.array([ 38.93732292, 39.08284798, + 32.63622398, 22.21364028, + 19.7634816 , 20.98856094, 21.34048993, 21.34048993, + 18.02422878, 12.91750748, 11.60778196, 10.52822768, + 12.62645737, 12.25076107, 5.67911763, 6.11569281, + 9.37812296, 8.35944755, 9.43900184, 13.59444997, + 22.65988702]) + self.tvalues = np.array([ 5.49659011, 3.32959607, -0.93132046, + -3.40319578]) + + hampel_h1 = [141.309, 0.28717, -0.65085, -1.67388, 0.287, 0.01816, + -0.03646, -0.00713, -0.651, -0.03646, 0.13524, 0.00001, -1.674, + -0.00713, 0.00001, 0.02439] + h1 = _shift_intercept(hampel_h1) + + hampel_h2 = [135.248, 0.18207, -0.36884, -1.60217, 0.182, 0.02120, + -0.04563, -0.00567, -0.369, -0.04563, 0.15860, -0.00290, -1.602, + -0.00567, -0.00290, 0.02329] + h2 = _shift_intercept(hampel_h2) + + hampel_h3 = [128.921, 0.05409, -0.02445, -1.52732, 0.054, 0.02514, + -0.05732, -0.00392, -0.024, -0.05732, 0.18871, -0.00652, -1.527, + -0.00392, -0.00652, 0.02212] + h3 = _shift_intercept(hampel_h3) + +class BiSquare(object): + def __init__(self): + self.params = np.array([ 0.9275471 , 0.65073222, -0.11233103, + -42.28525369]) + self.bse = np.array([ 0.10805398, 0.29487634, 0.12522928, + 9.5315672 ]) + self.scale = 2.2818858795649497 + self.weights = np.array([ 0.89283149, 0.88496132, 0.79040651, + 0.3358111 , 0.94617358, 0.90040725, 0.96630596, 0.99729171, + 0.94968061, 0.99900087, 0.98959903, 0.99831448, 0.84731833, + 0.96455873, 0.91767906, 0.98724523, 0.99762848, 0.99694419, + 0.98650731, 0.95897484, 0.00222999]) + self.resid = np.array([ 2.50917802, -2.60315301, 3.56070896, + 6.93256033, -1.76597524, -2.41670746, -1.39345348, -0.39345348, + -1.70651907, -0.23917521, 0.77180408, 0.31020526, + -3.01451315, -1.42960401, 2.19218084, 0.85518774, + -0.36817892, 0.4181383 , 0.87973712, 1.53911661, + -10.43556344]) + self.df_model = 3 + self.df_resid = 17 + self.bcov_unscaled = np.array([[ 1.72887367e-03, -3.47079127e-03, + -6.79080082e-04, 2.73387119e-02], + [ -3.47079127e-03, 1.28754242e-02, 9.95952051e-07, + -6.19611175e-02], + [ -6.79080082e-04, 9.95952051e-07, 2.32216722e-03, + -1.59355028e-01], + [ 2.73387119e-02, -6.19611175e-02, -1.59355028e-01, + 1.34527267e+01]]) + self.fittedvalues = np.array([ 39.49082198, 39.60315301, 33.43929104, + 21.06743967, + 19.76597524, 20.41670746, 20.39345348, 20.39345348, + 16.70651907, 14.23917521, 13.22819592, 12.68979474, + 14.01451315, 13.42960401, 5.80781916, 6.14481226, + 8.36817892, 7.5818617 , 8.12026288, 13.46088339, + 25.43556344]) + self.tvalues = np.array([ 8.58410823, 2.20679698, -0.8970029 , + -4.43633799]) + + + bisquare_h1 = [90.3354, 0.18358, -0.41607, -1.07007, 0.1836, 0.01161, + -0.02331, -0.00456, -0.4161, -0.02331, 0.08646, 0.00001, -1.0701, + -0.00456, 0.00001, 0.01559] + h1 = _shift_intercept(bisquare_h1) + + bisquare_h2 = [67.82521, 0.091288, -0.29038, -0.78124, 0.091288, + 0.013849, -0.02914, -0.00352, -0.29038, -0.02914, 0.101088, -0.001, + -0.78124, -0.00352, -0.001, 0.011766] + h2 = _shift_intercept(bisquare_h2) + + bisquare_h3 = [48.8983, 0.000442, -0.15919, -0.53523, 0.000442, + 0.016113, -0.03461, -0.00259, -0.15919, -0.03461, 0.112728, + -0.00164, -0.53523, -0.00259, -0.00164, 0.008414] + h3 = _shift_intercept(bisquare_h3) + +class Andrews(object): + def __init__(self): + self.params = [0.9282, 0.6492, -.1123,-42.2930] + self.bse = [.1061, .2894, .1229, 9.3561] + self.scale = 2.2801 + self.df_model = 3. + self.df_resid = 17. +# self.bcov_unscaled = [] # not given as part of SAS + self.resid = [2.503338458, -2.608934536, 3.5548678338, 6.9333705014, + -1.768179527, -2.417404513, -1.392991531, -0.392991531, + -1.704759385,-0.244545418, 0.7659115325, 0.3028635237, + -3.019999429,-1.434221475,2.1912017882, 0.8543828047, + -0.366664104,0.4192468573,0.8822948661,1.5378731634, + -10.44592783] + + self.sresids = [1.0979293816, -1.144242351, 1.5591155202, 3.040879735, + -0.775498914, -1.06023995, -0.610946684, -0.172360612, + -0.747683723, -0.107254214, 0.3359181307, 0.1328317233, + -1.324529688, -0.629029563, 0.9610305856, 0.3747203984, + -0.160813769, 0.1838758324, 0.3869622398, 0.6744897502, + -4.581438458] + + self.weights = [0.8916509101, 0.8826581922, 0.7888664106, 0.3367252734, + 0.9450252405, 0.8987321912, 0.9656622, 0.9972406688, + 0.948837669, 0.9989310017, 0.9895434667, 0.998360628, + 0.8447116551, 0.9636222149, 0.916330067, 0.9869982597, + 0.9975977354, 0.9968600162, 0.9861384742, 0.9582432444, 0] + + def conf_int(self): # method to be consistent with sm + return [(0.7203,1.1360),(.0819,1.2165),(-.3532,.1287), + (-60.6305,-23.9555)] + + + + andrews_h1 = [87.5357, 0.177891, -0.40318, -1.03691, 0.177891, 0.01125, + -0.02258, -0.00442, -0.40318, -0.02258, 0.083779, 6.481E-6, + -1.03691, -0.00442, 6.481E-6, 0.01511] + h1 = _shift_intercept(andrews_h1) + + andrews_h2 = [66.50472, 0.10489, -0.3246, -0.76664, 0.10489, 0.012786, + -0.02651, -0.0036, -0.3246, -0.02651, 0.09406, -0.00065, + -0.76664, -0.0036, -0.00065, 0.011567] + h2 = _shift_intercept(andrews_h2) + + andrews_h3 = [48.62157, 0.034949, -0.24633, -0.53394, 0.034949, 0.014088, + -0.02956, -0.00287, -0.24633, -0.02956, 0.100628, -0.00104, + -0.53394, -0.00287, -0.00104, 0.008441] + h3 = _shift_intercept(andrews_h3) + + + + +### RLM Results with Huber's Proposal 2 ### +### Obtained from SAS ### + +class HuberHuber(object): + def __init__(self): + self.h1 = [114.4936, 0.232675, -0.52734, -1.35624, 0.232675, 0.014714, + -0.02954, -0.00578, -0.52734, -0.02954, 0.10958, 8.476E-6, + -1.35624, -0.00578, 8.476E-6, 0.019764] + self.h1 = _shift_intercept(self.h1) + self.h2 = [103.2876, 0.152602, -0.33476, -1.22084, 0.152602, 0.016904, + -0.03766, -0.00434, -0.33476, -0.03766, 0.132043, -0.00214, + -1.22084, -0.00434, -0.00214, 0.017739] + self.h2 = _shift_intercept(self.h2) + self.h3 = [ 91.7544, 0.064027, -0.11379, -1.08249, 0.064027, 0.019509, + -0.04702, -0.00278, -0.11379, -0.04702, 0.157872, -0.00462, + -1.08249, -0.00278, -0.00462, 0.015677] + self.h3 = _shift_intercept(self.h3) + self.resid = [2.909155172, -2.225912162, 4.134132661, 6.163172632, + -1.741815737, -2.789321552, -2.02642336, -1.02642336, + -2.593402734, 0.698655, 1.914261011, 1.826699492, -2.031210331, + -0.592975466, 2.306098648, 0.900896645, -1.037551854, + -0.092080512, -0.004518993, 1.471737448, -8.498372406] + self.sresids = [0.883018497, -0.675633129, 1.25483702, 1.870713355, + -0.528694904, -0.84664529, -0.615082113, -0.311551209, + -0.787177874, 0.212063383, 0.581037374, 0.554459746, + -0.616535106, -0.179986379, 0.699972205, 0.273449972, + -0.314929051, -0.027949281, -0.001371654, 0.446717797, + -2.579518651] + self.weights = [1, 1, 1, 0.718977066, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 0.52141511] + + self.params = (.7990,1.0475,-0.1351,-41.0892) + self.bse = (.1213,.3310,.1406,10.7002) + self.scale = 3.2946 + self.df_model = 3 + self.df_resid = 17 + + def conf_int(self): # method for consistency with sm + return [(0.5612,1.0367),(.3987,1.6963), + (-.4106,.1405),(-62.0611,-20.1172)] + + + +class HampelHuber(object): + def __init__(self): + self.h1 = [147.4727, 0.299695, -0.67924, -1.7469, 0.299695, 0.018952, + -0.03805, -0.00744, -0.67924, -0.03805, 0.141144, 0.000011, + -1.7469, -0.00744, 0.000011, 0.025456] + self.h1 = _shift_intercept(self.h1) + self.h2 = [141.148, 0.190007, -0.38493, -1.67206, 0.190007, 0.02213, + -0.04762, -0.00592, -0.38493, -0.04762, 0.165518, -0.00303, + -1.67206, -0.00592, -0.00303, 0.024301] + self.h2 = _shift_intercept(self.h2) + self.h3 = [134.5444, 0.05645, -0.02552, -1.59394, 0.05645, 0.026232, + -0.05982, -0.00409, -0.02552, -0.05982, 0.196946, -0.0068, + -1.59394, -0.00409, -0.0068, 0.023083] + self.h3 = _shift_intercept(self.h3) + self.resid = [3.125725599, -2.022218392, 4.434082972, 5.753880172, + -1.744479058, -2.995299443, -2.358455878, -1.358455878, + -3.068281354, 1.150212629, 2.481708553, 2.584584946, + -1.553899388, -0.177335865, 2.335744732, 0.891912757, + -1.43012351, -0.394515569, -0.497391962, 1.407968887, + -7.505098501] + self.sresids = [0.952186413, -0.616026205, 1.350749906, 1.752798302, + -0.531418771, -0.912454834, -0.718453867, -0.413824947, + -0.934687235, 0.350388031, 0.756000196, 0.787339321, + -0.473362692, -0.054021633, 0.711535395, 0.27170242, + -0.43565698, -0.120180852, -0.151519976, 0.428908041, + -2.28627005] + self.weights = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 0.874787298] + + self.params = (.7318,1.2508,-0.1479,-40.2712) + self.bse = (.1377, .3757, .1596, 12.1438) + self.scale = 3.2827 + self.df_model = 3 + self.df_resid = 17 + + def conf_int(self): + return [(0.4619,1.0016),(.5145,1.9872), + (-.4607,.1648),(-64.0727,-16.4697)] + +class BisquareHuber(object): + def __init__(self): + self.h1 = [129.9556, 0.264097, -0.59855, -1.5394, 0.264097, + 0.016701, -0.03353, -0.00656, -0.59855, -0.03353, + 0.124379, 9.621E-6, -1.5394, -0.00656, 9.621E-6, 0.022433] + self.h1 = _shift_intercept(self.h1) + self.h2 = [109.7685, 0.103038, -0.25926, -1.28355, 0.103038, 0.0214, + -0.04688, -0.00453, -0.25926, -0.04688, 0.158535, -0.00327, + -1.28355, -0.00453, -0.00327, 0.018892] + self.h2 = _shift_intercept(self.h2) + self.h3 = [91.80527, -0.09171, 0.171716, -1.05244, -0.09171, + 0.027999, -0.06493, -0.00223, 0.171716, -0.06493, 0.203254, + -0.0071, -1.05244, -0.00223, -0.0071, 0.015584] + self.h3 = _shift_intercept(self.h3) + self.resid = [3.034895447, -2.09863887, 4.229870063, 6.18871385, + -1.715906134, -2.763596142, -2.010080245, -1.010080245, + -2.590747917, 0.712961901, 1.914770759, 1.82892645, -2.019969464, + -0.598781979, 2.260467209, 0.859864256, -1.057306197, -0.122565974, + -0.036721665, 1.471074632, -8.432085298] + self.sresids = [0.918227061, -0.634956635, 1.279774287, 1.872435025, + -0.519158394, -0.836143718, -0.608162656, -0.305606249, -0.78384738, 0.215711191, 0.579326161, 0.553353415, -0.611154703, -0.181165324, + 0.683918836, 0.26015744, -0.319894764, -0.037083121, -0.011110375, + 0.445083055, -2.551181429] + self.weights = [0.924649089, 0.963600796, 0.856330585, 0.706048833, + 0.975591792, 0.937309703, 0.966582366, 0.991507994, 0.944798311, + 0.995764589, 0.969652425, 0.972293856, 0.966255569, 0.997011618, + 0.957833493, 0.993842376, 0.990697247, 0.9998747, 0.999988752, + 0.982030803, 0.494874977] + self.params = (.7932, 1.0477, -0.1335, -40.8949) + self.bse = (.1292, .3527, .1498, 11.3998) + self.scale = 3.3052 + self.df_model = 3 + self.df_resid = 17 + + def conf_int(self): + return [(0.5399,1.0465),(.3565,1.7389), + (-.4271,.1600),(-63.2381,-18.5517)] + + + +class AndrewsHuber(object): + def __init__(self): + self.h1 = [129.9124, 0.264009, -0.59836, -1.53888, 0.264009, + 0.016696, -0.03352, -0.00656, -0.59836, -0.03352, 0.124337, + 9.618E-6, -1.53888, -0.00656, 9.618E-6, 0.022425] + self.h1 = _shift_intercept(self.h1) + self.h2 = [109.7595, 0.105022, -0.26535, -1.28332, .105022, 0.021321, + -0.04664, -0.00456, -0.26535, -0.04664, 0.157885, -0.00321, + -1.28332, -0.00456, -0.00321, 0.018895] + self.h2 = _shift_intercept(self.h2) + self.h3 = [91.82518, -0.08649, 0.155965, -1.05238, -0.08649, 0.027785, + -0.06427, -0.0023, 0.155965, -0.06427, 0.201544, -0.00693, + -1.05238, -0.0023, -0.00693, 0.015596] + self.h3 = _shift_intercept(self.h3) + self.resid = [3.040515104, -2.093093543, 4.235081748, 6.188729166, + -1.714119676, -2.762695255, -2.009618953, -1.009618953, + -2.591649784, 0.715967584, 1.918445405, 1.833412337, + -2.016815123, -0.595695587, 2.260536347, 0.859710406, + -1.059386228, -0.1241257, -0.039092633, 1.471556455, + -8.424624872] + self.sresids = [0.919639919, -0.633081011, 1.280950793, 1.871854667, + -0.518455862, -0.835610004, -0.607833129, -0.305371248, + -0.783875269, 0.216552902, 0.580256606, 0.554537345, + -0.610009696, -0.180175208, 0.683726076, 0.260029627, + -0.320423952, -0.037543293, -0.011824031, 0.445089734, + -2.548127888] + self.weights = [0.923215335, 0.963157359, 0.854300342, 0.704674258, + 0.975199805, 0.936344742, 0.9660077, 0.991354016, 0.943851708, + 0.995646409, 0.968993767, 0.971658421, 0.965766352, 0.99698502, + 0.957106815, 0.993726436, 0.990483134, 0.999868981, 0.999987004, + 0.981686004, 0.496752113] + self.params = (.7928, 1.0486, -0.1336, -40.8818) + self.bse = (.1292, .3526, .1498, 11.3979) + self.scale = 3.3062 + self.df_model = 3 + self.df_resid = 17 + + def conf_int(self): + return [(0.5395,1.0460),(.3575,1.7397), + (-.4271,.1599),(-63.2213,-18.5423)] + + diff --git a/statsmodels/robust/tests/test_rlm.py b/statsmodels/robust/tests/test_rlm.py new file mode 100644 index 0000000..97a429f --- /dev/null +++ b/statsmodels/robust/tests/test_rlm.py @@ -0,0 +1,315 @@ +""" +Test functions for sm.rlm +""" + +import numpy as np +from numpy.testing import assert_almost_equal, assert_allclose +from scipy import stats +import statsmodels.api as sm +from statsmodels.robust.robust_linear_model import RLM +from nose import SkipTest + +DECIMAL_4 = 4 +DECIMAL_3 = 3 +DECIMAL_2 = 2 +DECIMAL_1 = 1 + +class CheckRlmResultsMixin(object): + ''' + res2 contains results from Rmodelwrap or were obtained from a statistical + packages such as R, Stata, or SAS and written to results.results_rlm + + Covariance matrices were obtained from SAS and are imported from + results.results_rlm + ''' + def test_params(self): + assert_almost_equal(self.res1.params, self.res2.params, DECIMAL_4) + + decimal_standarderrors = DECIMAL_4 + def test_standarderrors(self): + assert_almost_equal(self.res1.bse, self.res2.bse, + self.decimal_standarderrors) + +#TODO: get other results from SAS, though if it works for one... + def test_confidenceintervals(self): + if not hasattr(self.res2, 'conf_int'): + raise SkipTest("Results from R") + else: + assert_almost_equal(self.res1.conf_int(), self.res2.conf_int(), + DECIMAL_4) + + decimal_scale = DECIMAL_4 + def test_scale(self): + assert_almost_equal(self.res1.scale, self.res2.scale, + self.decimal_scale) + + def test_weights(self): + assert_almost_equal(self.res1.weights, self.res2.weights, DECIMAL_4) + + def test_residuals(self): + assert_almost_equal(self.res1.resid, self.res2.resid, DECIMAL_4) + + def test_degrees(self): + assert_almost_equal(self.res1.model.df_model, self.res2.df_model, + DECIMAL_4) + assert_almost_equal(self.res1.model.df_resid, self.res2.df_resid, + DECIMAL_4) + + def test_bcov_unscaled(self): + if not hasattr(self.res2, 'bcov_unscaled'): + raise SkipTest("No unscaled cov matrix from SAS") + else: + assert_almost_equal(self.res1.bcov_unscaled, + self.res2.bcov_unscaled, DECIMAL_4) + + decimal_bcov_scaled = DECIMAL_4 + def test_bcov_scaled(self): + assert_almost_equal(self.res1.bcov_scaled, self.res2.h1, + self.decimal_bcov_scaled) + assert_almost_equal(self.res1.h2, self.res2.h2, + self.decimal_bcov_scaled) + assert_almost_equal(self.res1.h3, self.res2.h3, + self.decimal_bcov_scaled) + + + def test_tvalues(self): + if not hasattr(self.res2, 'tvalues'): + raise SkipTest("No tvalues in benchmark") + else: + assert_allclose(self.res1.tvalues, self.res2.tvalues, rtol=0.003) + + def test_tpvalues(self): + # test comparing tvalues and pvalues with normal implementation + # make sure they use normal distribution (inherited in results class) + params = self.res1.params + tvalues = params / self.res1.bse + pvalues = stats.norm.sf(np.abs(tvalues)) * 2 + half_width = stats.norm.isf(0.025) * self.res1.bse + conf_int = np.column_stack((params - half_width, params + half_width)) + + assert_almost_equal(self.res1.tvalues, tvalues) + assert_almost_equal(self.res1.pvalues, pvalues) + assert_almost_equal(self.res1.conf_int(), conf_int) + + +class TestRlm(CheckRlmResultsMixin): + from statsmodels.datasets.stackloss import load + data = load() # class attributes for subclasses + data.exog = sm.add_constant(data.exog, prepend=False) + def __init__(self): + # Test precisions + self.decimal_standarderrors = DECIMAL_1 + self.decimal_scale = DECIMAL_3 + + results = RLM(self.data.endog, self.data.exog,\ + M=sm.robust.norms.HuberT()).fit() # default M + h2 = RLM(self.data.endog, self.data.exog,\ + M=sm.robust.norms.HuberT()).fit(cov="H2").bcov_scaled + h3 = RLM(self.data.endog, self.data.exog,\ + M=sm.robust.norms.HuberT()).fit(cov="H3").bcov_scaled + self.res1 = results + self.res1.h2 = h2 + self.res1.h3 = h3 + + + def setup(self): +# r.library('MASS') +# self.res2 = RModel(self.data.endog, self.data.exog, +# r.rlm, psi="psi.huber") + from .results.results_rlm import Huber + self.res2 = Huber() + + def test_summary(self): + # smoke test that summary at least returns something + self.res1.summary() + +class TestHampel(TestRlm): + def __init__(self): + # Test precisions + self.decimal_standarderrors = DECIMAL_2 + self.decimal_scale = DECIMAL_3 + self.decimal_bcov_scaled = DECIMAL_3 + + results = RLM(self.data.endog, self.data.exog, + M=sm.robust.norms.Hampel()).fit() + h2 = RLM(self.data.endog, self.data.exog,\ + M=sm.robust.norms.Hampel()).fit(cov="H2").bcov_scaled + h3 = RLM(self.data.endog, self.data.exog,\ + M=sm.robust.norms.Hampel()).fit(cov="H3").bcov_scaled + self.res1 = results + self.res1.h2 = h2 + self.res1.h3 = h3 + + def setup(self): +# self.res2 = RModel(self.data.endog[:,None], self.data.exog, +# r.rlm, psi="psi.hampel") #, init="lts") + from .results.results_rlm import Hampel + self.res2 = Hampel() + + + +class TestRlmBisquare(TestRlm): + def __init__(self): + # Test precisions + self.decimal_standarderrors = DECIMAL_1 + + results = RLM(self.data.endog, self.data.exog, + M=sm.robust.norms.TukeyBiweight()).fit() + h2 = RLM(self.data.endog, self.data.exog,\ + M=sm.robust.norms.TukeyBiweight()).fit(cov=\ + "H2").bcov_scaled + h3 = RLM(self.data.endog, self.data.exog,\ + M=sm.robust.norms.TukeyBiweight()).fit(cov=\ + "H3").bcov_scaled + self.res1 = results + self.res1.h2 = h2 + self.res1.h3 = h3 + + def setup(self): +# self.res2 = RModel(self.data.endog, self.data.exog, +# r.rlm, psi="psi.bisquare") + from .results.results_rlm import BiSquare + self.res2 = BiSquare() + + +class TestRlmAndrews(TestRlm): + def __init__(self): + results = RLM(self.data.endog, self.data.exog, + M=sm.robust.norms.AndrewWave()).fit() + h2 = RLM(self.data.endog, self.data.exog, + M=sm.robust.norms.AndrewWave()).fit(cov=\ + "H2").bcov_scaled + h3 = RLM(self.data.endog, self.data.exog, + M=sm.robust.norms.AndrewWave()).fit(cov=\ + "H3").bcov_scaled + self.res1 = results + self.res1.h2 = h2 + self.res1.h3 = h3 + + def setup(self): + from .results.results_rlm import Andrews + self.res2 = Andrews() + +### tests with Huber scaling + +class TestRlmHuber(CheckRlmResultsMixin): + from statsmodels.datasets.stackloss import load + data = load() + data.exog = sm.add_constant(data.exog, prepend=False) + def __init__(self): + results = RLM(self.data.endog, self.data.exog,\ + M=sm.robust.norms.HuberT()).fit(scale_est=\ + sm.robust.scale.HuberScale()) + h2 = RLM(self.data.endog, self.data.exog,\ + M=sm.robust.norms.HuberT()).fit(cov="H2", + scale_est=sm.robust.scale.HuberScale()).bcov_scaled + h3 = RLM(self.data.endog, self.data.exog,\ + M=sm.robust.norms.HuberT()).fit(cov="H3", + scale_est=sm.robust.scale.HuberScale()).bcov_scaled + self.res1 = results + self.res1.h2 = h2 + self.res1.h3 = h3 + + def setup(self): + from .results.results_rlm import HuberHuber + self.res2 = HuberHuber() + +class TestHampelHuber(TestRlm): + def __init__(self): + results = RLM(self.data.endog, self.data.exog, + M=sm.robust.norms.Hampel()).fit(scale_est=\ + sm.robust.scale.HuberScale()) + h2 = RLM(self.data.endog, self.data.exog,\ + M=sm.robust.norms.Hampel()).fit(cov="H2", + scale_est=\ + sm.robust.scale.HuberScale()).bcov_scaled + h3 = RLM(self.data.endog, self.data.exog,\ + M=sm.robust.norms.Hampel()).fit(cov="H3", + scale_est=\ + sm.robust.scale.HuberScale()).bcov_scaled + self.res1 = results + self.res1.h2 = h2 + self.res1.h3 = h3 + + def setup(self): + from .results.results_rlm import HampelHuber + self.res2 = HampelHuber() + +class TestRlmBisquareHuber(TestRlm): + def __init__(self): + results = RLM(self.data.endog, self.data.exog, + M=sm.robust.norms.TukeyBiweight()).fit(\ + scale_est=\ + sm.robust.scale.HuberScale()) + h2 = RLM(self.data.endog, self.data.exog,\ + M=sm.robust.norms.TukeyBiweight()).fit(cov=\ + "H2", scale_est=\ + sm.robust.scale.HuberScale()).bcov_scaled + h3 = RLM(self.data.endog, self.data.exog,\ + M=sm.robust.norms.TukeyBiweight()).fit(cov=\ + "H3", scale_est=\ + sm.robust.scale.HuberScale()).bcov_scaled + self.res1 = results + self.res1.h2 = h2 + self.res1.h3 = h3 + + def setup(self): + from .results.results_rlm import BisquareHuber + self.res2 = BisquareHuber() + +class TestRlmAndrewsHuber(TestRlm): + def __init__(self): + results = RLM(self.data.endog, self.data.exog, + M=sm.robust.norms.AndrewWave()).fit(scale_est=\ + sm.robust.scale.HuberScale()) + h2 = RLM(self.data.endog, self.data.exog, + M=sm.robust.norms.AndrewWave()).fit(cov=\ + "H2", scale_est=\ + sm.robust.scale.HuberScale()).bcov_scaled + h3 = RLM(self.data.endog, self.data.exog, + M=sm.robust.norms.AndrewWave()).fit(cov=\ + "H3", scale_est=\ + sm.robust.scale.HuberScale()).bcov_scaled + self.res1 = results + self.res1.h2 = h2 + self.res1.h3 = h3 + + def setup(self): + from .results.results_rlm import AndrewsHuber + self.res2 = AndrewsHuber() + +class TestRlmSresid(CheckRlmResultsMixin): + #Check GH:187 + from statsmodels.datasets.stackloss import load + data = load() # class attributes for subclasses + data.exog = sm.add_constant(data.exog, prepend=False) + def __init__(self): + # Test precisions + self.decimal_standarderrors = DECIMAL_1 + self.decimal_scale = DECIMAL_3 + + results = RLM(self.data.endog, self.data.exog,\ + M=sm.robust.norms.HuberT()).fit(conv='sresid') # default M + h2 = RLM(self.data.endog, self.data.exog,\ + M=sm.robust.norms.HuberT()).fit(cov="H2").bcov_scaled + h3 = RLM(self.data.endog, self.data.exog,\ + M=sm.robust.norms.HuberT()).fit(cov="H3").bcov_scaled + self.res1 = results + self.res1.h2 = h2 + self.res1.h3 = h3 + + + def setup(self): +# r.library('MASS') +# self.res2 = RModel(self.data.endog, self.data.exog, +# r.rlm, psi="psi.huber") + from .results.results_rlm import Huber + self.res2 = Huber() + + +def test_missing(): + # see 2083 + import statsmodels.formula.api as smf + + d = {'Foo': [1, 2, 10, 149], 'Bar': [1, 2, 3, np.nan]} + mod = smf.rlm('Foo ~ Bar', data=d) diff --git a/statsmodels/robust/tests/test_scale.py b/statsmodels/robust/tests/test_scale.py new file mode 100644 index 0000000..fe4a226 --- /dev/null +++ b/statsmodels/robust/tests/test_scale.py @@ -0,0 +1,116 @@ +""" +Test functions for models.robust.scale +""" + +import numpy as np +from numpy.random import standard_normal +from numpy.testing import * + +# Example from Section 5.5, Venables & Ripley (2002) + +import statsmodels.robust.scale as scale + +DECIMAL = 4 +#TODO: Can replicate these tests using stackloss data and R if this +# data is a problem +class TestChem(object): + def __init__(self): + self.chem = np.array([2.20, 2.20, 2.4, 2.4, 2.5, 2.7, 2.8, 2.9, 3.03, + 3.03, 3.10, 3.37, 3.4, 3.4, 3.4, 3.5, 3.6, 3.7, 3.7, 3.7, 3.7, + 3.77, 5.28, 28.95]) + + def test_mean(self): + assert_almost_equal(np.mean(self.chem), 4.2804, DECIMAL) + + def test_median(self): + assert_almost_equal(np.median(self.chem), 3.385, DECIMAL) + + def test_mad(self): + assert_almost_equal(scale.mad(self.chem), 0.52632, DECIMAL) + + def test_huber_scale(self): + assert_almost_equal(scale.huber(self.chem)[0], 3.20549, DECIMAL) + + def test_huber_location(self): + assert_almost_equal(scale.huber(self.chem)[1], 0.67365, DECIMAL) + + def test_huber_huberT(self): + n = scale.norms.HuberT() + n.t = 1.5 + h = scale.Huber(norm=n) + assert_almost_equal(scale.huber(self.chem)[0], h(self.chem)[0], DECIMAL) + assert_almost_equal(scale.huber(self.chem)[1], h(self.chem)[1], DECIMAL) + + def test_huber_Hampel(self): + hh = scale.Huber(norm=scale.norms.Hampel()) + assert_almost_equal(hh(self.chem)[0], 3.17434, DECIMAL) + assert_almost_equal(hh(self.chem)[1], 0.66782, DECIMAL) + +class TestMad(object): + def __init__(self): + np.random.seed(54321) + self.X = standard_normal((40,10)) + + def test_mad(self): + m = scale.mad(self.X) + assert_equal(m.shape, (10,)) + + def test_mad_center(self): + n = scale.mad(self.X, center=0) + assert_equal(n.shape, (10,)) + +class TestMadAxes(object): + def __init__(self): + np.random.seed(54321) + self.X = standard_normal((40,10,30)) + + def test_axis0(self): + m = scale.mad(self.X, axis=0) + assert_equal(m.shape, (10,30)) + + def test_axis1(self): + m = scale.mad(self.X, axis=1) + assert_equal(m.shape, (40,30)) + + def test_axis2(self): + m = scale.mad(self.X, axis=2) + assert_equal(m.shape, (40,10)) + + def test_axisneg1(self): + m = scale.mad(self.X, axis=-1) + assert_equal(m.shape, (40,10)) + +class TestHuber(object): + def __init__(self): + np.random.seed(54321) + self.X = standard_normal((40,10)) + + def basic_functionality(self): + h = scale.Huber(maxiter=100) + m, s = h(self.X) + assert_equal(m.shape, (10,)) + +class TestHuberAxes(object): + def __init__(self): + np.random.seed(54321) + self.X = standard_normal((40,10,30)) + self.h = scale.Huber(maxiter=1000, tol=1.0e-05) + + def test_default(self): + m, s = self.h(self.X, axis=0) + assert_equal(m.shape, (10,30)) + + def test_axis1(self): + m, s = self.h(self.X, axis=1) + assert_equal(m.shape, (40,30)) + + def test_axis2(self): + m, s = self.h(self.X, axis=2) + assert_equal(m.shape, (40,10)) + + def test_axisneg1(self): + m, s = self.h(self.X, axis=-1) + assert_equal(m.shape, (40,10)) + +if __name__=="__main__": + run_module_suite() diff --git a/statsmodels/sandbox/__init__.py b/statsmodels/sandbox/__init__.py new file mode 100644 index 0000000..297d2fe --- /dev/null +++ b/statsmodels/sandbox/__init__.py @@ -0,0 +1,3 @@ +'''This is sandbox code + +''' diff --git a/statsmodels/sandbox/archive/__init__.py b/statsmodels/sandbox/archive/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/sandbox/archive/linalg_covmat.py b/statsmodels/sandbox/archive/linalg_covmat.py new file mode 100644 index 0000000..be066d2 --- /dev/null +++ b/statsmodels/sandbox/archive/linalg_covmat.py @@ -0,0 +1,282 @@ +from __future__ import print_function +import math +import numpy as np +from scipy import linalg, stats + +from .linalg_decomp_1 import tiny2zero + +#univariate standard normal distribution +#following from scipy.stats.distributions with adjustments +sqrt2pi = math.sqrt(2 * np.pi) +logsqrt2pi = math.log(sqrt2pi) + +class StandardNormal(object): + '''Distribution of vector x, with independent distribution N(0,1) + + this is the same as univariate normal for pdf and logpdf + + other methods not checked/adjusted yet + + ''' + def rvs(self, size): + return np.random.standard_normal(size) + def pdf(self, x): + return exp(-x**2 * 0.5) / sqrt2pi + def logpdf(self, x): + return -x**2 * 0.5 - logsqrt2pi + def _cdf(self, x): + return special.ndtr(x) + def _logcdf(self, x): + return log(special.ndtr(x)) + def _ppf(self, q): + return special.ndtri(q) + + +class AffineTransform(object): + '''affine full rank transformation of a multivariate distribution + + no dimension checking, assumes everything broadcasts correctly + first version without bound support + + provides distribution of y given distribution of x + y = const + tmat * x + + ''' + def __init__(self, const, tmat, dist): + self.const = const + self.tmat = tmat + self.dist = dist + self.nrv = len(const) + if not np.equal(self.nrv, tmat.shape).all(): + raise ValueError('dimension of const and tmat do not agree') + + #replace the following with a linalgarray class + self.tmatinv = linalg.inv(tmat) + self.absdet = np.abs(np.linalg.det(self.tmat)) + self.logabsdet = np.log(np.abs(np.linalg.det(self.tmat))) + self.dist + + def rvs(self, size): + #size can only be integer not yet tuple + print((size,)+(self.nrv,)) + return self.transform(self.dist.rvs(size=(size,)+(self.nrv,))) + + def transform(self, x): + #return np.dot(self.tmat, x) + self.const + return np.dot(x, self.tmat) + self.const + + def invtransform(self, y): + return np.dot(self.tmatinv, y - self.const) + + def pdf(self, x): + return 1. / self.absdet * self.dist.pdf(self.invtransform(x)) + + def logpdf(self, x): + return - self.logabsdet + self.dist.logpdf(self.invtransform(x)) + + +from .linalg_decomp_1 import SvdArray, OneTimeProperty + +class MultivariateNormal(object): + '''multivariate normal distribution with plain linalg + + ''' + + def __init__(mean, sigma): + self.mean = mean + self.sigma = sigma + self.sigmainv = sigmainv + +class MultivariateNormalChol(object): + '''multivariate normal distribution with cholesky decomposition of sigma + + ignoring mean at the beginning, maybe + + needs testing for broadcasting to contemporaneously but not intertemporaly + correlated random variable, which axis?, + maybe swapaxis or rollaxis if x.ndim != mean.ndim == (sigma.ndim - 1) + + initially 1d is ok, 2d should work with iid in axis 0 and mvn in axis 1 + + ''' + + def __init__(self, mean, sigma): + self.mean = mean + self.sigma = sigma + self.sigmainv = sigmainv + self.cholsigma = linalg.cholesky(sigma) + #the following makes it lower triangular with increasing time + self.cholsigmainv = linalg.cholesky(sigmainv)[::-1,::-1] + #todo: this might be a trick todo backward instead of forward filtering + + def whiten(self, x): + return np.dot(cholsigmainv, x) + + def logpdf_obs(self, x): + x = x - self.mean + x_whitened = self.whiten(x) + + #sigmainv = linalg.cholesky(sigma) + logdetsigma = np.log(np.linalg.det(sigma)) + + sigma2 = 1. # error variance is included in sigma + + llike = 0.5 * (np.log(sigma2) + - 2.* np.log(np.diagonal(self.cholsigmainv)) + + (x_whitened**2)/sigma2 + + np.log(2*np.pi)) + + return llike + + def logpdf(self, x): + return self.logpdf_obs(x).sum(-1) + + def pdf(self, x): + return np.exp(self.logpdf(x)) + + + +class MultivariateNormal(object): + + def __init__(self, mean, sigma): + self.mean = mean + self.sigma = SvdArray(sigma) + + + + +def loglike_ar1(x, rho): + '''loglikelihood of AR(1) process, as a test case + + sigma_u partially hard coded + + Greene chapter 12 eq. (12-31) + ''' + x = np.asarray(x) + u = np.r_[x[0], x[1:] - rho * x[:-1]] + sigma_u2 = 2*(1-rho**2) + loglik = 0.5*(-(u**2).sum(0) / sigma_u2 + np.log(1-rho**2) + - x.shape[0] * (np.log(2*np.pi) + np.log(sigma_u2))) + return loglik + + +def ar2transform(x, arcoefs): + ''' + + (Greene eq 12-30) + ''' + a1, a2 = arcoefs + y = np.zeros_like(x) + y[0] = np.sqrt((1+a2) * ((1-a2)**2 - a1**2) / (1-a2)) * x[0] + y[1] = np.sqrt(1-a2**2) * x[2] - a1 * np.sqrt(1-a1**2)/(1-a2) * x[1] #TODO:wrong index in x + y[2:] = x[2:] - a1 * x[1:-1] - a2 * x[:-2] + return y + + +def mvn_loglike(x, sigma): + '''loglike multivariate normal + + assumes x is 1d, (nobs,) and sigma is 2d (nobs, nobs) + + brute force from formula + no checking of correct inputs + use of inv and log-det should be replace with something more efficient + ''' + #see numpy thread + #Sturla: sqmahal = (cx*cho_solve(cho_factor(S),cx.T).T).sum(axis=1) + sigmainv = linalg.inv(sigma) + logdetsigma = np.log(np.linalg.det(sigma)) + nobs = len(x) + + llf = - np.dot(x, np.dot(sigmainv, x)) + llf -= nobs * np.log(2 * np.pi) + llf -= logdetsigma + llf *= 0.5 + return llf + +def mvn_nloglike_obs(x, sigma): + '''loglike multivariate normal + + assumes x is 1d, (nobs,) and sigma is 2d (nobs, nobs) + + brute force from formula + no checking of correct inputs + use of inv and log-det should be replace with something more efficient + ''' + #see numpy thread + #Sturla: sqmahal = (cx*cho_solve(cho_factor(S),cx.T).T).sum(axis=1) + + #Still wasteful to calculate pinv first + sigmainv = linalg.inv(sigma) + cholsigmainv = linalg.cholesky(sigmainv) + #2 * np.sum(np.log(np.diagonal(np.linalg.cholesky(A)))) #Dag mailinglist + # logdet not needed ??? + #logdetsigma = 2 * np.sum(np.log(np.diagonal(cholsigmainv))) + x_whitened = np.dot(cholsigmainv, x) + + #sigmainv = linalg.cholesky(sigma) + logdetsigma = np.log(np.linalg.det(sigma)) + + sigma2 = 1. # error variance is included in sigma + + llike = 0.5 * (np.log(sigma2) - 2.* np.log(np.diagonal(cholsigmainv)) + + (x_whitened**2)/sigma2 + + np.log(2*np.pi)) + + return llike, (x_whitened**2) + +nobs = 10 +x = np.arange(nobs) +autocov = 2*0.8**np.arange(nobs)# +0.01 * np.random.randn(nobs) +sigma = linalg.toeplitz(autocov) +#sigma = np.diag(1+np.random.randn(10)**2) + +cholsigma = linalg.cholesky(sigma).T#, lower=True) + +sigmainv = linalg.inv(sigma) +cholsigmainv = linalg.cholesky(sigmainv) +#2 * np.sum(np.log(np.diagonal(np.linalg.cholesky(A)))) #Dag mailinglist +# logdet not needed ??? +#logdetsigma = 2 * np.sum(np.log(np.diagonal(cholsigmainv))) +x_whitened = np.dot(cholsigmainv, x) + +#sigmainv = linalg.cholesky(sigma) +logdetsigma = np.log(np.linalg.det(sigma)) + +sigma2 = 1. # error variance is included in sigma + +llike = 0.5 * (np.log(sigma2) - 2.* np.log(np.diagonal(cholsigmainv)) + + (x_whitened**2)/sigma2 + + np.log(2*np.pi)) + +ll, ls = mvn_nloglike_obs(x, sigma) +#the following are all the same for diagonal sigma +print(ll.sum(), 'll.sum()') +print(llike.sum(), 'llike.sum()') +print(np.log(stats.norm._pdf(x_whitened)).sum() - 0.5 * logdetsigma,) +print('stats whitened') +print(np.log(stats.norm.pdf(x,scale=np.sqrt(np.diag(sigma)))).sum(),) +print('stats scaled') +print(0.5*(np.dot(linalg.cho_solve((linalg.cho_factor(sigma, lower=False)[0].T, + False),x.T), x) + + nobs*np.log(2*np.pi) + - 2.* np.log(np.diagonal(cholsigmainv)).sum())) +print(0.5*(np.dot(linalg.cho_solve((linalg.cho_factor(sigma)[0].T, False),x.T), x) + nobs*np.log(2*np.pi)- 2.* np.log(np.diagonal(cholsigmainv)).sum())) +print(0.5*(np.dot(linalg.cho_solve(linalg.cho_factor(sigma),x.T), x) + nobs*np.log(2*np.pi)- 2.* np.log(np.diagonal(cholsigmainv)).sum())) +print(mvn_loglike(x, sigma)) + + +normtransf = AffineTransform(np.zeros(nobs), cholsigma, StandardNormal()) +print(normtransf.logpdf(x_whitened).sum()) +#print(normtransf.rvs(5) +print(loglike_ar1(x, 0.8)) + +mch = MultivariateNormalChol(np.zeros(nobs), sigma) +print(mch.logpdf(x)) + +#print(tiny2zero(mch.cholsigmainv / mch.cholsigmainv[-1,-1]) + +xw = mch.whiten(x) +print('xSigmax', np.dot(xw,xw)) +print('xSigmax', np.dot(x,linalg.cho_solve(linalg.cho_factor(mch.sigma),x))) +print('xSigmax', np.dot(x,linalg.cho_solve((mch.cholsigma, False),x))) diff --git a/statsmodels/sandbox/archive/linalg_decomp_1.py b/statsmodels/sandbox/archive/linalg_decomp_1.py new file mode 100644 index 0000000..83248ea --- /dev/null +++ b/statsmodels/sandbox/archive/linalg_decomp_1.py @@ -0,0 +1,334 @@ +'''Recipes for more efficient work with linalg using classes + + +intended for use for multivariate normal and linear regression +calculations + +x is the data (nobs, nvars) +m is the moment matrix (x'x) or a covariance matrix Sigma + +examples: +x'sigma^{-1}x +z = Px where P=Sigma^{-1/2} or P=Sigma^{1/2} + +Initially assume positive definite, then add spectral cutoff and +regularization of moment matrix, and extend to PCA + +maybe extend to sparse if some examples work out +(transformation matrix P for random effect and for toeplitz) + + +Author: josef-pktd +Created on 2010-10-20 +''' + +from __future__ import print_function +from statsmodels.compat.python import get_function_name +import numpy as np +from scipy import linalg + + +#this has been copied from nitime a long time ago +#TODO: ceck whether class has changed in nitime +class OneTimeProperty(object): + + + """A descriptor to make special properties that become normal attributes. + + This is meant to be used mostly by the auto_attr decorator in this module. + Author: Fernando Perez, copied from nitime + """ + def __init__(self,func): + + """Create a OneTimeProperty instance. + + Parameters + ---------- + func : method + + The method that will be called the first time to compute a value. + Afterwards, the method's name will be a standard attribute holding + the value of this computation. + """ + self.getter = func + self.name = get_function_name(func) + + def __get__(self,obj,type=None): + """This will be called on attribute access on the class or instance. """ + + if obj is None: + # Being called on the class, return the original function. This way, + # introspection works on the class. + #return func + print('class access') + return self.getter + + val = self.getter(obj) + #print("** auto_attr - loading '%s'" % self.name # dbg) + setattr(obj, self.name, val) + return val + + +class PlainMatrixArray(object): + '''Class that defines linalg operation on an array + + simplest version as benchmark + + linear algebra recipes for multivariate normal and linear + regression calculations + + ''' + def __init__(self, data=None, sym=None): + if not data is None: + if sym is None: + self.x = np.asarray(data) + self.m = np.dot(self.x.T, self.x) + else: + raise ValueError('data and sym cannot be both given') + elif not sym is None: + self.m = np.asarray(sym) + self.x = np.eye(*self.m.shape) #default + + else: + raise ValueError('either data or sym need to be given') + + @OneTimeProperty + def minv(self): + return np.linalg.inv(self.m) + + @OneTimeProperty + def m_y(self, y): + return np.dot(self.m, y) + + def minv_y(self, y): + return np.dot(self.minv, y) + + @OneTimeProperty + def mpinv(self): + return linalg.pinv(self.m) + + @OneTimeProperty + def xpinv(self): + return linalg.pinv(self.x) + + def yt_m_y(self, y): + return np.dot(y.T, np.dot(self.m, y)) + + def yt_minv_y(self, y): + return np.dot(y.T, np.dot(self.minv, y)) + + #next two are redundant + def y_m_yt(self, y): + return np.dot(y, np.dot(self.m, y.T)) + + def y_minv_yt(self, y): + return np.dot(y, np.dot(self.minv, y.T)) + + @OneTimeProperty + def mdet(self): + return linalg.det(self.m) + + @OneTimeProperty + def mlogdet(self): + return np.log(linalg.det(self.m)) + + @OneTimeProperty + def meigh(self): + evals, evecs = linalg.eigh(self.m) + sortind = np.argsort(evals)[::-1] + return evals[sortind], evecs[:,sortind] + + @OneTimeProperty + def mhalf(self): + evals, evecs = self.meigh + return np.dot(np.diag(evals**0.5), evecs.T) + #return np.dot(evecs, np.dot(np.diag(evals**0.5), evecs.T)) + #return np.dot(evecs, 1./np.sqrt(evals) * evecs.T)) + + @OneTimeProperty + def minvhalf(self): + evals, evecs = self.meigh + return np.dot(evecs, 1./np.sqrt(evals) * evecs.T) + + + +class SvdArray(PlainMatrixArray): + '''Class that defines linalg operation on an array + + svd version, where svd is taken on original data array, if + or when it matters + + no spectral cutoff in first version + ''' + + def __init__(self, data=None, sym=None): + super(SvdArray, self).__init__(data=data, sym=sym) + + u, s, v = np.linalg.svd(self.x, full_matrices=1) + self.u, self.s, self.v = u, s, v + self.sdiag = linalg.diagsvd(s, *x.shape) + self.sinvdiag = linalg.diagsvd(1./s, *x.shape) + + def _sdiagpow(self, p): + return linalg.diagsvd(np.power(self.s, p), *x.shape) + + @OneTimeProperty + def minv(self): + sinvv = np.dot(self.sinvdiag, self.v) + return np.dot(sinvv.T, sinvv) + + + @OneTimeProperty + def meigh(self): + evecs = self.v.T + evals = self.s**2 + return evals, evecs + + @OneTimeProperty + def mdet(self): + return self.meigh[0].prod() + + @OneTimeProperty + def mlogdet(self): + return np.log(self.meigh[0]).sum() + + @OneTimeProperty + def mhalf(self): + return np.dot(np.diag(self.s), self.v) + + @OneTimeProperty + def xxthalf(self): + return np.dot(self.u, self.sdiag) + + @OneTimeProperty + def xxtinvhalf(self): + return np.dot(self.u, self.sinvdiag) + + +class CholArray(PlainMatrixArray): + '''Class that defines linalg operation on an array + + cholesky version, where svd is taken on original data array, if + or when it matters + + plan: use cholesky factor and cholesky solve + nothing implemented yet + ''' + + def __init__(self, data=None, sym=None): + super(SvdArray, self).__init__(data=data, sym=sym) + + + def yt_minv_y(self, y): + '''xSigmainvx + doesn't use stored cholesky yet + ''' + return np.dot(x,linalg.cho_solve(linalg.cho_factor(self.m),x)) + #same as + #lower = False #if cholesky(sigma) is used, default is upper + #np.dot(x,linalg.cho_solve((self.cholsigma, lower),x)) + + + +def testcompare(m1, m2): + from numpy.testing import assert_almost_equal, assert_approx_equal + decimal = 12 + + #inv + assert_almost_equal(m1.minv, m2.minv, decimal=decimal) + + #matrix half and invhalf + #fix sign in test, should this be standardized + s1 = np.sign(m1.mhalf.sum(1))[:,None] + s2 = np.sign(m2.mhalf.sum(1))[:,None] + scorr = s1/s2 + assert_almost_equal(m1.mhalf, m2.mhalf * scorr, decimal=decimal) + assert_almost_equal(m1.minvhalf, m2.minvhalf, decimal=decimal) + + #eigenvalues, eigenvectors + evals1, evecs1 = m1.meigh + evals2, evecs2 = m2.meigh + assert_almost_equal(evals1, evals2, decimal=decimal) + #normalization can be different: evecs in columns + s1 = np.sign(evecs1.sum(0)) + s2 = np.sign(evecs2.sum(0)) + scorr = s1/s2 + assert_almost_equal(evecs1, evecs2 * scorr, decimal=decimal) + + #determinant + assert_approx_equal(m1.mdet, m2.mdet, significant=13) + assert_approx_equal(m1.mlogdet, m2.mlogdet, significant=13) + +####### helper function for interactive work +def tiny2zero(x, eps = 1e-15): + '''replace abs values smaller than eps by zero, makes copy + ''' + mask = np.abs(x.copy()) < eps + x[mask] = 0 + return x + +def maxabs(x): + return np.max(np.abs(x)) + + +if __name__ == '__main__': + + + n = 5 + y = np.arange(n) + x = np.random.randn(100,n) + autocov = 2*0.8**np.arange(n) +0.01 * np.random.randn(n) + sigma = linalg.toeplitz(autocov) + + mat = PlainMatrixArray(sym=sigma) + print(tiny2zero(mat.mhalf)) + mih = mat.minvhalf + print(tiny2zero(mih)) #for nicer printing + + mat2 = PlainMatrixArray(data=x) + print(maxabs(mat2.yt_minv_y(np.dot(x.T, x)) - mat2.m)) + print(tiny2zero(mat2.minv_y(mat2.m))) + + mat3 = SvdArray(data=x) + print(mat3.meigh[0]) + print(mat2.meigh[0]) + + testcompare(mat2, mat3) + + ''' + m = np.dot(x.T, x) + + u,s,v = np.linalg.svd(x, full_matrices=1) + Sig = linalg.diagsvd(s,*x.shape) + + >>> np.max(np.abs(np.dot(u, np.dot(Sig, v)) - x)) + 3.1086244689504383e-015 + >>> np.max(np.abs(np.dot(u.T, u) - np.eye(100))) + 3.3306690738754696e-016 + >>> np.max(np.abs(np.dot(v.T, v) - np.eye(5))) + 6.6613381477509392e-016 + >>> np.max(np.abs(np.dot(Sig.T, Sig) - np.diag(s**2))) + 5.6843418860808015e-014 + + >>> evals,evecs = linalg.eigh(np.dot(x.T, x)) + >>> evals[::-1] + array([ 123.36404464, 112.17036442, 102.04198468, 76.60832278, + 74.70484487]) + + >>> s**2 + array([ 123.36404464, 112.17036442, 102.04198468, 76.60832278, + 74.70484487]) + + >>> np.max(np.abs(np.dot(v.T, np.dot(np.diag(s**2), v)) - m)) + 1.1368683772161603e-013 + + >>> us = np.dot(u, Sig) + >>> np.max(np.abs(np.dot(us, us.T) - np.dot(x, x.T))) + 1.0658141036401503e-014 + + >>> sv = np.dot(Sig, v) + >>> np.max(np.abs(np.dot(sv.T, sv) - np.dot(x.T, x))) + 1.1368683772161603e-013 + + + ''' diff --git a/statsmodels/sandbox/archive/tsa.py b/statsmodels/sandbox/archive/tsa.py new file mode 100644 index 0000000..fe6a8b4 --- /dev/null +++ b/statsmodels/sandbox/archive/tsa.py @@ -0,0 +1,50 @@ +'''Collection of alternative implementations for time series analysis + +''' + + +''' +>>> signal.fftconvolve(x,x[::-1])[len(x)-1:len(x)+10]/x.shape[0] +array([ 2.12286549e+00, 1.27450889e+00, 7.86898619e-02, + -5.80017553e-01, -5.74814915e-01, -2.28006995e-01, + 9.39554926e-02, 2.00610244e-01, 1.32239575e-01, + 1.24504352e-03, -8.81846018e-02]) +>>> sm.tsa.stattools.acovf(X, fft=True)[:order+1] +array([ 2.12286549e+00, 1.27450889e+00, 7.86898619e-02, + -5.80017553e-01, -5.74814915e-01, -2.28006995e-01, + 9.39554926e-02, 2.00610244e-01, 1.32239575e-01, + 1.24504352e-03, -8.81846018e-02]) + +>>> import nitime.utils as ut +>>> ut.autocov(s)[:order+1] +array([ 2.12286549e+00, 1.27450889e+00, 7.86898619e-02, + -5.80017553e-01, -5.74814915e-01, -2.28006995e-01, + 9.39554926e-02, 2.00610244e-01, 1.32239575e-01, + 1.24504352e-03, -8.81846018e-02]) +''' + +def acovf_fft(x, demean=True): + '''autocovariance function with call to fftconvolve, biased + + Parameters + ---------- + x : array_like + timeseries, signal + demean : boolean + If true, then demean time series + + Returns + ------- + acovf : array + autocovariance for data, same length as x + + might work for nd in parallel with time along axis 0 + + ''' + from scipy import signal + x = np.asarray(x) + + if demean: + x = x - x.mean() + + signal.fftconvolve(x,x[::-1])[len(x)-1:len(x)+10]/x.shape[0] diff --git a/statsmodels/sandbox/bspline.py b/statsmodels/sandbox/bspline.py new file mode 100644 index 0000000..c28d9f6 --- /dev/null +++ b/statsmodels/sandbox/bspline.py @@ -0,0 +1,664 @@ +''' +Bspines and smoothing splines. + +General references: + + Craven, P. and Wahba, G. (1978) "Smoothing noisy data with spline functions. + Estimating the correct degree of smoothing by + the method of generalized cross-validation." + Numerische Mathematik, 31(4), 377-403. + + Hastie, Tibshirani and Friedman (2001). "The Elements of Statistical + Learning." Springer-Verlag. 536 pages. + + Hutchison, M. and Hoog, F. "Smoothing noisy data with spline functions." + Numerische Mathematik, 47(1), 99-106. +''' + +from statsmodels.compat.python import range +import numpy as np +import numpy.linalg as L + +from scipy.linalg import solveh_banded +from scipy.optimize import golden +from models import _hbspline #removed because this was segfaulting + +# Issue warning regarding heavy development status of this module +import warnings +_msg = """ +The bspline code is technology preview and requires significant work +on the public API and documentation. The API will likely change in the future +""" +warnings.warn(_msg, FutureWarning) + + +def _band2array(a, lower=0, symmetric=False, hermitian=False): + """ + Take an upper or lower triangular banded matrix and return a + numpy array. + + INPUTS: + a -- a matrix in upper or lower triangular banded matrix + lower -- is the matrix upper or lower triangular? + symmetric -- if True, return the original result plus its transpose + hermitian -- if True (and symmetric False), return the original + result plus its conjugate transposed + + """ + + n = a.shape[1] + r = a.shape[0] + _a = 0 + + if not lower: + for j in range(r): + _b = np.diag(a[r-1-j],k=j)[j:(n+j),j:(n+j)] + _a += _b + if symmetric and j > 0: _a += _b.T + elif hermitian and j > 0: _a += _b.conjugate().T + else: + for j in range(r): + _b = np.diag(a[j],k=j)[0:n,0:n] + _a += _b + if symmetric and j > 0: _a += _b.T + elif hermitian and j > 0: _a += _b.conjugate().T + _a = _a.T + + return _a + + +def _upper2lower(ub): + """ + Convert upper triangular banded matrix to lower banded form. + + INPUTS: + ub -- an upper triangular banded matrix + + OUTPUTS: lb + lb -- a lower triangular banded matrix with same entries + as ub + """ + + lb = np.zeros(ub.shape, ub.dtype) + nrow, ncol = ub.shape + for i in range(ub.shape[0]): + lb[i,0:(ncol-i)] = ub[nrow-1-i,i:ncol] + lb[i,(ncol-i):] = ub[nrow-1-i,0:i] + return lb + +def _lower2upper(lb): + """ + Convert lower triangular banded matrix to upper banded form. + + INPUTS: + lb -- a lower triangular banded matrix + + OUTPUTS: ub + ub -- an upper triangular banded matrix with same entries + as lb + """ + + ub = np.zeros(lb.shape, lb.dtype) + nrow, ncol = lb.shape + for i in range(lb.shape[0]): + ub[nrow-1-i,i:ncol] = lb[i,0:(ncol-i)] + ub[nrow-1-i,0:i] = lb[i,(ncol-i):] + return ub + +def _triangle2unit(tb, lower=0): + """ + Take a banded triangular matrix and return its diagonal and the + unit matrix: the banded triangular matrix with 1's on the diagonal, + i.e. each row is divided by the corresponding entry on the diagonal. + + INPUTS: + tb -- a lower triangular banded matrix + lower -- if True, then tb is assumed to be lower triangular banded, + in which case return value is also lower triangular banded. + + OUTPUTS: d, b + d -- diagonal entries of tb + b -- unit matrix: if lower is False, b is upper triangular + banded and its rows of have been divided by d, + else lower is True, b is lower triangular banded + and its columns have been divieed by d. + + """ + + if lower: d = tb[0].copy() + else: d = tb[-1].copy() + + if lower: return d, (tb / d) + else: + l = _upper2lower(tb) + return d, _lower2upper(l / d) + +def _trace_symbanded(a, b, lower=0): + """ + Compute the trace(ab) for two upper or banded real symmetric matrices + stored either in either upper or lower form. + + INPUTS: + a, b -- two banded real symmetric matrices (either lower or upper) + lower -- if True, a and b are assumed to be the lower half + + + OUTPUTS: trace + trace -- trace(ab) + + """ + + if lower: + t = _zero_triband(a * b, lower=1) + return t[0].sum() + 2 * t[1:].sum() + else: + t = _zero_triband(a * b, lower=0) + return t[-1].sum() + 2 * t[:-1].sum() + + +def _zero_triband(a, lower=0): + """ + Explicitly zero out unused elements of a real symmetric banded matrix. + + INPUTS: + a -- a real symmetric banded matrix (either upper or lower hald) + lower -- if True, a is assumed to be the lower half + + """ + + nrow, ncol = a.shape + if lower: + for i in range(nrow): a[i,(ncol-i):] = 0. + else: + for i in range(nrow): a[i,0:i] = 0. + return a + + +class BSpline(object): + + ''' + + Bsplines of a given order and specified knots. + + Implementation is based on description in Chapter 5 of + + Hastie, Tibshirani and Friedman (2001). "The Elements of Statistical + Learning." Springer-Verlag. 536 pages. + + + INPUTS: + knots -- a sorted array of knots with knots[0] the lower boundary, + knots[1] the upper boundary and knots[1:-1] the internal + knots. + order -- order of the Bspline, default is 4 which yields cubic + splines + M -- number of additional boundary knots, if None it defaults + to order + coef -- an optional array of real-valued coefficients for the Bspline + of shape (knots.shape + 2 * (M - 1) - order,). + x -- an optional set of x values at which to evaluate the + Bspline to avoid extra evaluation in the __call__ method + + ''' + # FIXME: update parameter names, replace single character names + # FIXME: `order` should be actual spline order (implemented as order+1) + ## FIXME: update the use of spline order in extension code (evaluate is recursively called) + # FIXME: eliminate duplicate M and m attributes (m is order, M is related to tau size) + + def __init__(self, knots, order=4, M=None, coef=None, x=None): + + knots = np.squeeze(np.unique(np.asarray(knots))) + + if knots.ndim != 1: + raise ValueError('expecting 1d array for knots') + + self.m = order + if M is None: + M = self.m + self.M = M + + self.tau = np.hstack([[knots[0]]*(self.M-1), knots, [knots[-1]]*(self.M-1)]) + + self.K = knots.shape[0] - 2 + if coef is None: + self.coef = np.zeros((self.K + 2 * self.M - self.m), np.float64) + else: + self.coef = np.squeeze(coef) + if self.coef.shape != (self.K + 2 * self.M - self.m): + raise ValueError('coefficients of Bspline have incorrect shape') + if x is not None: + self.x = x + + def _setx(self, x): + self._x = x + self._basisx = self.basis(self._x) + + def _getx(self): + return self._x + + x = property(_getx, _setx) + + def __call__(self, *args): + """ + Evaluate the BSpline at a given point, yielding + a matrix B and return + + B * self.coef + + + INPUTS: + args -- optional arguments. If None, it returns self._basisx, + the BSpline evaluated at the x values passed in __init__. + Otherwise, return the BSpline evaluated at the + first argument args[0]. + + OUTPUTS: y + y -- value of Bspline at specified x values + + BUGS: + If self has no attribute x, an exception will be raised + because self has no attribute _basisx. + + """ + + if not args: + b = self._basisx.T + else: + x = args[0] + b = np.asarray(self.basis(x)).T + return np.squeeze(np.dot(b, self.coef)) + + def basis_element(self, x, i, d=0): + """ + Evaluate a particular basis element of the BSpline, + or its derivative. + + INPUTS: + x -- x values at which to evaluate the basis element + i -- which element of the BSpline to return + d -- the order of derivative + + OUTPUTS: y + y -- value of d-th derivative of the i-th basis element + of the BSpline at specified x values + + """ + + x = np.asarray(x, np.float64) + _shape = x.shape + if _shape == (): + x.shape = (1,) + x.shape = (np.product(_shape,axis=0),) + if i < self.tau.shape[0] - 1: + ## TODO: OWNDATA flags... + v = _hbspline.evaluate(x, self.tau, self.m, d, i, i+1) + else: + return np.zeros(x.shape, np.float64) + + if (i == self.tau.shape[0] - self.m): + v = np.where(np.equal(x, self.tau[-1]), 1, v) + v.shape = _shape + return v + + def basis(self, x, d=0, lower=None, upper=None): + """ + Evaluate the basis of the BSpline or its derivative. + If lower or upper is specified, then only + the [lower:upper] elements of the basis are returned. + + INPUTS: + x -- x values at which to evaluate the basis element + i -- which element of the BSpline to return + d -- the order of derivative + lower -- optional lower limit of the set of basis + elements + upper -- optional upper limit of the set of basis + elements + + OUTPUTS: y + y -- value of d-th derivative of the basis elements + of the BSpline at specified x values + + """ + x = np.asarray(x) + _shape = x.shape + if _shape == (): + x.shape = (1,) + x.shape = (np.product(_shape,axis=0),) + + if upper is None: + upper = self.tau.shape[0] - self.m + if lower is None: + lower = 0 + upper = min(upper, self.tau.shape[0] - self.m) + lower = max(0, lower) + + d = np.asarray(d) + if d.shape == (): + v = _hbspline.evaluate(x, self.tau, self.m, int(d), lower, upper) + else: + if d.shape[0] != 2: + raise ValueError("if d is not an integer, expecting a jx2 \ + array with first row indicating order \ + of derivative, second row coefficient in front.") + v = 0 + for i in range(d.shape[1]): + v += d[1,i] * _hbspline.evaluate(x, self.tau, self.m, d[0,i], lower, upper) + + v.shape = (upper-lower,) + _shape + if upper == self.tau.shape[0] - self.m: + v[-1] = np.where(np.equal(x, self.tau[-1]), 1, v[-1]) + return v + + def gram(self, d=0): + """ + Compute Gram inner product matrix, storing it in lower + triangular banded form. + + The (i,j) entry is + + G_ij = integral b_i^(d) b_j^(d) + + where b_i are the basis elements of the BSpline and (d) is the + d-th derivative. + + If d is a matrix then, it is assumed to specify a differential + operator as follows: the first row represents the order of derivative + with the second row the coefficient corresponding to that order. + + For instance: + + [[2, 3], + [3, 1]] + + represents 3 * f^(2) + 1 * f^(3). + + INPUTS: + d -- which derivative to apply to each basis element, + if d is a matrix, it is assumed to specify + a differential operator as above + + OUTPUTS: gram + gram -- the matrix of inner products of (derivatives) + of the BSpline elements + + """ + + d = np.squeeze(d) + if np.asarray(d).shape == (): + self.g = _hbspline.gram(self.tau, self.m, int(d), int(d)) + else: + d = np.asarray(d) + if d.shape[0] != 2: + raise ValueError("if d is not an integer, expecting a jx2 \ + array with first row indicating order \ + of derivative, second row coefficient in front.") + if d.shape == (2,): + d.shape = (2,1) + self.g = 0 + for i in range(d.shape[1]): + for j in range(d.shape[1]): + self.g += d[1,i]* d[1,j] * _hbspline.gram(self.tau, self.m, int(d[0,i]), int(d[0,j])) + self.g = self.g.T + self.d = d + return np.nan_to_num(self.g) + +class SmoothingSpline(BSpline): + + penmax = 30. + method = "target_df" + target_df = 5 + default_pen = 1.0e-03 + optimize = True + + ''' + A smoothing spline, which can be used to smooth scatterplots, i.e. + a list of (x,y) tuples. + + See fit method for more information. + + ''' + + def fit(self, y, x=None, weights=None, pen=0.): + """ + Fit the smoothing spline to a set of (x,y) pairs. + + INPUTS: + y -- response variable + x -- if None, uses self.x + weights -- optional array of weights + pen -- constant in front of Gram matrix + + OUTPUTS: None + The smoothing spline is determined by self.coef, + subsequent calls of __call__ will be the smoothing spline. + + ALGORITHM: + Formally, this solves a minimization: + + fhat = ARGMIN_f SUM_i=1^n (y_i-f(x_i))^2 + pen * int f^(2)^2 + + int is integral. pen is lambda (from Hastie) + + See Chapter 5 of + + Hastie, Tibshirani and Friedman (2001). "The Elements of Statistical + Learning." Springer-Verlag. 536 pages. + + for more details. + + TODO: + Should add arbitrary derivative penalty instead of just + second derivative. + """ + + banded = True + + if x is None: + x = self._x + bt = self._basisx.copy() + else: + bt = self.basis(x) + + if pen == 0.: # can't use cholesky for singular matrices + banded = False + + if x.shape != y.shape: + raise ValueError('x and y shape do not agree, by default x are \ + the Bspline\'s internal knots') + + if pen >= self.penmax: + pen = self.penmax + + + if weights is not None: + self.weights = weights + else: + self.weights = 1. + + _w = np.sqrt(self.weights) + bt *= _w + + # throw out rows with zeros (this happens at boundary points!) + + mask = np.flatnonzero(1 - np.alltrue(np.equal(bt, 0), axis=0)) + + bt = bt[:,mask] + y = y[mask] + + self.df_total = y.shape[0] + + bty = np.squeeze(np.dot(bt, _w * y)) + self.N = y.shape[0] + + if not banded: + self.btb = np.dot(bt, bt.T) + _g = _band2array(self.g, lower=1, symmetric=True) + self.coef, _, self.rank = L.lstsq(self.btb + pen*_g, bty)[0:3] + self.rank = min(self.rank, self.btb.shape[0]) + del(_g) + else: + self.btb = np.zeros(self.g.shape, np.float64) + nband, nbasis = self.g.shape + for i in range(nbasis): + for k in range(min(nband, nbasis-i)): + self.btb[k,i] = (bt[i] * bt[i+k]).sum() + + bty.shape = (1,bty.shape[0]) + self.pen = pen + self.chol, self.coef = solveh_banded(self.btb + + pen*self.g, + bty, lower=1) + + self.coef = np.squeeze(self.coef) + self.resid = y * self.weights - np.dot(self.coef, bt) + self.pen = pen + + del(bty); del(mask); del(bt) + + def smooth(self, y, x=None, weights=None): + + if self.method == "target_df": + if hasattr(self, 'pen'): + self.fit(y, x=x, weights=weights, pen=self.pen) + else: + self.fit_target_df(y, x=x, weights=weights, df=self.target_df) + elif self.method == "optimize_gcv": + self.fit_optimize_gcv(y, x=x, weights=weights) + + + def gcv(self): + """ + Generalized cross-validation score of current fit. + + Craven, P. and Wahba, G. "Smoothing noisy data with spline functions. + Estimating the correct degree of smoothing by + the method of generalized cross-validation." + Numerische Mathematik, 31(4), 377-403. + """ + + norm_resid = (self.resid**2).sum() + return norm_resid / (self.df_total - self.trace()) + + def df_resid(self): + """ + Residual degrees of freedom in the fit. + + self.N - self.trace() + + where self.N is the number of observations of last fit. + """ + + return self.N - self.trace() + + def df_fit(self): + """ + How many degrees of freedom used in the fit? + + self.trace() + + """ + return self.trace() + + def trace(self): + """ + Trace of the smoothing matrix S(pen) + + TODO: addin a reference to Wahba, and whoever else I used. + """ + + if self.pen > 0: + _invband = _hbspline.invband(self.chol.copy()) + tr = _trace_symbanded(_invband, self.btb, lower=1) + return tr + else: + return self.rank + + def fit_target_df(self, y, x=None, df=None, weights=None, tol=1.0e-03, + apen=0, bpen=1.0e-03): + + """ + Fit smoothing spline with approximately df degrees of freedom + used in the fit, i.e. so that self.trace() is approximately df. + + Uses binary search strategy. + + In general, df must be greater than the dimension of the null space + of the Gram inner product. For cubic smoothing splines, this means + that df > 2. + + INPUTS: + y -- response variable + x -- if None, uses self.x + df -- target degrees of freedom + weights -- optional array of weights + tol -- (relative) tolerance for convergence + apen -- lower bound of penalty for binary search + bpen -- upper bound of penalty for binary search + + OUTPUTS: None + The smoothing spline is determined by self.coef, + subsequent calls of __call__ will be the smoothing spline. + + """ + + df = df or self.target_df + + olddf = y.shape[0] - self.m + + if hasattr(self, "pen"): + self.fit(y, x=x, weights=weights, pen=self.pen) + curdf = self.trace() + if np.fabs(curdf - df) / df < tol: + return + if curdf > df: + apen, bpen = self.pen, 2 * self.pen + else: + apen, bpen = 0., self.pen + + while True: + + curpen = 0.5 * (apen + bpen) + self.fit(y, x=x, weights=weights, pen=curpen) + curdf = self.trace() + if curdf > df: + apen, bpen = curpen, 2 * curpen + else: + apen, bpen = apen, curpen + if apen >= self.penmax: + raise ValueError("penalty too large, try setting penmax \ + higher or decreasing df") + if np.fabs(curdf - df) / df < tol: + break + + def fit_optimize_gcv(self, y, x=None, weights=None, tol=1.0e-03, + brack=(-100,20)): + """ + Fit smoothing spline trying to optimize GCV. + + Try to find a bracketing interval for scipy.optimize.golden + based on bracket. + + It is probably best to use target_df instead, as it is + sometimes difficult to find a bracketing interval. + + INPUTS: + y -- response variable + x -- if None, uses self.x + df -- target degrees of freedom + weights -- optional array of weights + tol -- (relative) tolerance for convergence + brack -- an initial guess at the bracketing interval + + OUTPUTS: None + The smoothing spline is determined by self.coef, + subsequent calls of __call__ will be the smoothing spline. + + """ + + def _gcv(pen, y, x): + self.fit(y, x=x, pen=np.exp(pen)) + a = self.gcv() + return a + + a = golden(_gcv, args=(y,x), brack=bracket, tol=tol) diff --git a/statsmodels/sandbox/contrast_old.py b/statsmodels/sandbox/contrast_old.py new file mode 100644 index 0000000..087ccd5 --- /dev/null +++ b/statsmodels/sandbox/contrast_old.py @@ -0,0 +1,169 @@ +import copy + +import numpy as np +from numpy.linalg import pinv +from statsmodels.sandbox import utils_old as utils + +class ContrastResults(object): + """ + Results from looking at a particular contrast of coefficients in + a parametric model. The class does nothing, it is a container + for the results from T and F contrasts. + """ + + def __init__(self, t=None, F=None, sd=None, effect=None, df_denom=None, + df_num=None): + if F is not None: + self.F = F + self.df_denom = df_denom + self.df_num = df_num + else: + self.t = t + self.sd = sd + self.effect = effect + self.df_denom = df_denom + + def __array__(self): + if hasattr(self, "F"): + return self.F + else: + return self.t + + def __str__(self): + if hasattr(self, 'F'): + return '' % \ + (repr(self.F), self.df_denom, self.df_num) + else: + return '' % \ + (repr(self.effect), repr(self.sd), repr(self.t), self.df_denom) + + +class Contrast(object): + """ + This class is used to construct contrast matrices in regression models. + They are specified by a (term, formula) pair. + + The term, T, is a linear combination of columns of the design + matrix D=formula(). The matrix attribute is + a contrast matrix C so that + + colspan(dot(D, C)) = colspan(dot(D, dot(pinv(D), T))) + + where pinv(D) is the generalized inverse of D. Further, the matrix + + Tnew = dot(C, D) + + is full rank. The rank attribute is the rank of + + dot(D, dot(pinv(D), T)) + + In a regression model, the contrast tests that E(dot(Tnew, Y)) = 0 + for each column of Tnew. + + """ + + def __init__(self, term, formula, name=''): + self.term = term + self.formula = formula + if name is '': + self.name = str(term) + else: + self.name = name + + def __str__(self): + return '' % \ + repr({'term':str(self.term), 'formula':str(self.formula)}) + + def compute_matrix(self, *args, **kw): + """ + Construct a contrast matrix C so that + + colspan(dot(D, C)) = colspan(dot(D, dot(pinv(D), T))) + + where pinv(D) is the generalized inverse of D=self.D=self.formula(). + + If the design, self.D is already set, + then evaldesign can be set to False. + """ + + t = copy.copy(self.term) + t.namespace = self.formula.namespace + T = np.transpose(np.array(t(*args, **kw))) + + if T.ndim == 1: + T.shape = (T.shape[0], 1) + + self.T = utils.clean0(T) + + self.D = self.formula.design(*args, **kw) + + self._matrix = contrastfromcols(self.T, self.D) + try: + self.rank = self.matrix.shape[1] + except: + self.rank = 1 + + def _get_matrix(self): + """ + This will fail if the formula needs arguments to construct + the design. + """ + if not hasattr(self, "_matrix"): + self.compute_matrix() + return self._matrix + matrix = property(_get_matrix) + +def contrastfromcols(L, D, pseudo=None): + """ + From an n x p design matrix D and a matrix L, tries + to determine a p x q contrast matrix C which + determines a contrast of full rank, i.e. the + n x q matrix + + dot(transpose(C), pinv(D)) + + is full rank. + + L must satisfy either L.shape[0] == n or L.shape[1] == p. + + If L.shape[0] == n, then L is thought of as representing + columns in the column space of D. + + If L.shape[1] == p, then L is thought of as what is known + as a contrast matrix. In this case, this function returns an estimable + contrast corresponding to the dot(D, L.T) + + Note that this always produces a meaningful contrast, not always + with the intended properties because q is always non-zero unless + L is identically 0. That is, it produces a contrast that spans + the column space of L (after projection onto the column space of D). + + """ + + L = np.asarray(L) + D = np.asarray(D) + + n, p = D.shape + + if L.shape[0] != n and L.shape[1] != p: + raise ValueError('shape of L and D mismatched') + + if pseudo is None: + pseudo = pinv(D) + + if L.shape[0] == n: + C = np.dot(pseudo, L).T + else: + C = L + C = np.dot(pseudo, np.dot(D, C.T)).T + + Lp = np.dot(D, C.T) + + if len(Lp.shape) == 1: + Lp.shape = (n, 1) + + if utils.rank(Lp) != Lp.shape[1]: + Lp = utils.fullrank(Lp) + C = np.dot(pseudo, Lp).T + + return np.squeeze(C) diff --git a/statsmodels/sandbox/cox.py b/statsmodels/sandbox/cox.py new file mode 100644 index 0000000..555d2a5 --- /dev/null +++ b/statsmodels/sandbox/cox.py @@ -0,0 +1,303 @@ +'''Cox proportional hazards regression model. + + +some dimension problems +fixed import errors +currently produces parameter estimate but then raises exception for other results + + +finally, after running the script several times, I get a OSError with too many +open file handles + +updates and changes : + +as of 2010-05-15 +AttributeError: 'CoxPH' object has no attribute 'cachedir' +Traceback (most recent call last): + File "C:\...\scikits\statsmodels\sandbox\cox.py", line 244, in + res = c.newton([0.4]) +AttributeError: 'CoxPH' object has no attribute 'newton' + +replaced newton by call to new fit method for mle with bfgs + +feels very slow +need testcase before trying to fix + +''' +from __future__ import print_function +from statsmodels.compat.python import iterkeys, range +import shutil +import tempfile + +import numpy as np + + +from statsmodels.base import model +from . import survival + +class Discrete(object): + + """ + A simple little class for working with discrete random vectors. + + Note: assumes x is 2-d and observations are in 0 axis, variables in 1 axis + """ + + def __init__(self, x, w=None): + self.x = np.squeeze(x) + if self.x.shape == (): + self.x = np.array([self.x]) +## #JP added and removed again b/c still broadcast error +## if self.x.ndim == 1: +## self.x = self.x[:,None] + self.n = self.x.shape[0] + if w is None: + w = np.ones(self.n, np.float64) + else: + if w.shape[0] != self.n: + raise ValueError('incompatible shape for weights w') + if np.any(np.less(w, 0)): + raise ValueError('weights should be non-negative') + self.w = w*1.0 / w.sum() + + def mean(self, f=None): #JP: this is expectation, "expect" in mine + if f is None: + fx = self.x + else: + fx = f(self.x) + return (fx * self.w).sum() + + def cov(self): + mu = self.mean() #JP: call to method (confusing name) + dx = self.x - mu#np.multiply.outer(mu, self.x.shape[1]) + return np.dot(dx, np.transpose(dx)) +## if dx.ndim == 1: +## dx = dx[:,None] +## return np.dot(dx.T, dx) + +class Observation(survival.RightCensored): + + def __getitem__(self, item): + if self.namespace is not None: + return self.namespace[item] + else: + return getattr(self, item) + + def __init__(self, time, delta, namespace=None): + self.namespace = namespace + survival.RightCensored.__init__(self, time, delta) + + def __call__(self, formula, time=None, **extra): + return formula(namespace=self, time=time, **extra) + +class CoxPH(model.LikelihoodModel): + """Cox proportional hazards regression model.""" + + def __init__(self, subjects, formula, time_dependent=False): + self.subjects, self.formula = subjects, formula + self.time_dependent = time_dependent + self.initialize(self.subjects) + + def initialize(self, subjects): + print('called initialize') + self.failures = {} + for i in range(len(subjects)): + s = subjects[i] + if s.delta: + if s.time not in self.failures: + self.failures[s.time] = [i] + else: + self.failures[s.time].append(i) + + self.failure_times = list(iterkeys(self.failures)) + self.failure_times.sort() + + def cache(self): + if self.time_dependent: + self.cachedir = tempfile.mkdtemp() + + self.design = {} + self.risk = {} + first = True + + for t in iterkeys(self.failures): + if self.time_dependent: + d = np.array([s(self.formula, time=t) + for s in self.subjects]).astype(float)[:,None] + dshape = d.shape + dfile = file(tempfile.mkstemp(dir=self.cachedir)[1], 'w') + d.tofile(dfile) + dfile.close() + del(d) + self.design[t] = np.memmap(dfile.name, + dtype=np.dtype(float), + shape=dshape) + elif first: + d = np.array([s(self.formula, time=t) + for s in self.subjects]).astype(np.float64) + self.design[t] = d + else: + self.design[t] = d + self.risk[t] = np.compress([s.atrisk(t) for s in self.subjects], + np.arange(self.design[t].shape[0]),axis=-1) +# this raised exception on exit, + def __del__(self): + try: + shutil.rmtree(self.cachedir, ignore_errors=True) + except AttributeError: + print("AttributeError: 'CoxPH' object has no attribute 'cachedir'") + pass + + def loglike(self, b, ties='breslow'): + + logL = 0 + for t in iterkeys(self.failures): + fail = self.failures[t] + d = len(fail) + risk = self.risk[t] + Zb = np.dot(self.design[t], b) + + logL += Zb[fail].sum() + + if ties == 'breslow': + s = np.exp(Zb[risk]).sum() + logL -= np.log(np.exp(Zb[risk]).sum()) * d + elif ties == 'efron': + s = np.exp(Zb[risk]).sum() + r = np.exp(Zb[fail]).sum() + for j in range(d): + logL -= np.log(s - j * r / d) + elif ties == 'cox': + raise NotImplementedError('Cox tie breaking method not \ +implemented') + else: + raise NotImplementedError('tie breaking method not recognized') + return logL + + def score(self, b, ties='breslow'): + + score = 0 + for t in iterkeys(self.failures): + fail = self.failures[t] + d = len(fail) + risk = self.risk[t] + Z = self.design[t] + + score += Z[fail].sum() + + if ties == 'breslow': + w = np.exp(np.dot(Z, b)) + rv = Discrete(Z[risk], w=w[risk]) + score -= rv.mean() * d + elif ties == 'efron': + w = np.exp(np.dot(Z, b)) + score += Z[fail].sum() + for j in range(d): + efron_w = w + efron_w[fail] -= i * w[fail] / float(d) + rv = Discrete(Z[risk], w=efron_w[risk]) + score -= rv.mean() + elif ties == 'cox': + raise NotImplementedError('Cox tie breaking method not \ +implemented') + else: + raise NotImplementedError('tie breaking method not recognized') + return np.array([score]) + + def information(self, b, ties='breslow'): + + info = 0 #np.zeros((len(b),len(b))) #0 + score = 0 + for t in iterkeys(self.failures): + fail = self.failures[t] + d = len(fail) + risk = self.risk[t] + Z = self.design[t] + + if ties == 'breslow': + w = np.exp(np.dot(Z, b)) + rv = Discrete(Z[risk], w=w[risk]) + info += rv.cov() + elif ties == 'efron': + w = np.exp(np.dot(Z, b)) + score += Z[fail].sum() + for j in range(d): + efron_w = w + efron_w[fail] -= i * w[fail] / d + rv = Discrete(Z[risk], w=efron_w[risk]) + info += rv.cov() + elif ties == 'cox': + raise NotImplementedError('Cox tie breaking method not \ +implemented') + else: + raise NotImplementedError('tie breaking method not recognized') + return score + +if __name__ == '__main__': + import numpy.random as R + n = 100 + X = np.array([0]*n + [1]*n) + b = 0.4 + lin = 1 + b*X + Y = R.standard_exponential((2*n,)) / lin + delta = R.binomial(1, 0.9, size=(2*n,)) + + subjects = [Observation(Y[i], delta[i]) for i in range(2*n)] + for i in range(2*n): + subjects[i].X = X[i] + + import statsmodels.sandbox.formula as F + x = F.Quantitative('X') + f = F.Formula(x) + + c = CoxPH(subjects, f) + +# c.cache() + # temp file cleanup doesn't work on windows + c = CoxPH(subjects, f, time_dependent=True) + c.cache() #this creates tempfile cache, + # no tempfile cache is created in normal use of CoxPH + + + #res = c.newton([0.4]) #doesn't work anymore + res=c.fit([0.4],method="bfgs") + print(res.params) + print(dir(c)) + #print c.fit(Y) + #c.information(res.params) #raises exception + + ''' + Note: Replacement for c.newton + + >>> c.fit() + Traceback (most recent call last): + File "", line 1, in + c.fit() + File "C:\Josef\eclipsegworkspace\statsmodels-josef-experimental\scikits\statsmodels\model.py", line 132, in fit + start_params = [0]*self.exog.shape[1] # will fail for shape (K,) + AttributeError: 'CoxPH' object has no attribute 'exog' + >>> c.fit([0.4]) + Traceback (most recent call last): + File "", line 1, in + c.fit([0.4]) + File "C:\Josef\eclipsegworkspace\statsmodels-josef-experimental\scikits\statsmodels\model.py", line 148, in fit + H = self.hessian(history[-1]) + File "C:\Josef\eclipsegworkspace\statsmodels-josef-experimental\scikits\statsmodels\model.py", line 115, in hessian + raise NotImplementedError + NotImplementedError + >>> c.fit([0.4],method="bfgs") + Optimization terminated successfully. + Current function value: 802.354181 + Iterations: 3 + Function evaluations: 5 + Gradient evaluations: 5 + + >>> res=c.fit([0.4],method="bfgs") + Optimization terminated successfully. + Current function value: 802.354181 + Iterations: 3 + Function evaluations: 5 + Gradient evaluations: 5 + >>> res.params + array([ 0.34924421]) +''' diff --git a/statsmodels/sandbox/datarich/__init__.py b/statsmodels/sandbox/datarich/__init__.py new file mode 100644 index 0000000..1e26f0c --- /dev/null +++ b/statsmodels/sandbox/datarich/__init__.py @@ -0,0 +1,165 @@ +''' + +Econometrics for a Datarich Environment +======================================= + +Introduction +------------ +In many cases we are performing statistical analysis when many observed variables are +available, when we are in a data rich environment. Machine learning has a wide variety +of tools for dimension reduction and penalization when there are many varibles compared +to the number of observation. Chemometrics has a long tradition of using Partial Least +Squares, NIPALS and similar in these cases. In econometrics the same problem shows up +when there are either many possible regressors, many (weak) instruments or when there are +a large number of moment conditions in GMM. + +This section is intended to collect some models and tools in this area that are relevant +for the statical analysis and econometrics. + +Covariance Matrices +=================== +Several methods are available to reduce the small sample noise in estimated covariance +matrices with many variable. +Some applications: +weighting matrix with many moments, +covariance matrix for portfolio choice + +Dimension Reduction +=================== +Principal Component and Partial Least Squares try to extract the important low dimensional +factors from the data with many variables. + +Regression with many regressors +=============================== +Factor models, selection of regressors and shrinkage and penalization are used to improve +the statistical properties, when the presence of too many regressors leads to over-fitting +and too noisy small sample estimators and statistics. + +Regression with many moments or many instruments +================================================ +The same tools apply and can be used in these two cases. +e.g. Tychonov regularization of weighting matrix in GMM, similar to Ridge regression, the +weighting matrix can be shrunk towards the identity matrix. +Simplest case will be part of GMM. I don't know how much will be standalone +functions. + + +Intended Content +================ + +PLS +--- +what should be available in class? + +Factormodel and supporting helper functions +------------------------------------------- + +PCA based +~~~~~~~~~ +First version based PCA on Stock/Watson and Bai/Ng, and recent papers on the +selection of the number of factors. Not sure about Forni et al. in approach. +Basic support of this needs additional results for PCA, error covariance matrix +of data on reduced factors, required for criteria in Bai/Ng. +Selection criteria based on eigenvalue cutoffs. + +Paper on PCA and structural breaks. Could add additional results during +find_nfact to test for parameter stability. I haven't read the paper yet. + +Idea: for forecasting, use up to h-step ahead endogenous variables to directly +get the forecasts. + +Asymptotic results and distribution: not too much idea yet. +Standard OLS results are conditional on factors, paper by Haerdle (abstract +seems to suggest that this is ok, Park 2009). + +Simulation: add function to simulate DGP of Bai/Ng and recent extension. +Sensitivity of selection criteria to heteroscedasticity and autocorrelation. + +Bai, J. & Ng, S., 2002. Determining the Number of Factors in + Approximate Factor Models. Econometrica, 70(1), pp.191-221. + +Kapetanios, G., 2010. A Testing Procedure for Determining the Number + of Factors in Approximate Factor Models With Large Datasets. Journal + of Business and Economic Statistics, 28(3), pp.397-409. + +Onatski, A., 2010. Determining the Number of Factors from Empirical + Distribution of Eigenvalues. Review of Economics and Statistics, + 92(4), pp.1004-1016. + +Alessi, L., Barigozzi, M. & Capasso, M., 2010. Improved penalization + for determining the number of factors in approximate factor models. + Statistics & Probability Letters, 80(23-24), pp.1806-1813. + +Breitung, J. & Eickmeier, S., Testing for structural breaks in dynamic + factor models. Journal of Econometrics, In Press, Accepted Manuscript. + Available at: + http://www.sciencedirect.com/science/article/B6VC0-51G3W92-1/2/f45ce2332443374fd770e42e5a68ddb4 + [Accessed November 15, 2010]. + +Croux, C., Renault, E. & Werker, B., 2004. Dynamic factor models. + Journal of Econometrics, 119(2), pp.223-230. + +Forni, M. et al., 2009. Opening the Black Box: Structural Factor + Models with Large Cross Sections. Econometric Theory, 25(05), + pp.1319-1347. + +Forni, M. et al., 2000. The Generalized Dynamic-Factor Model: + Identification and Estimation. Review of Economics and Statistics, + 82(4), pp.540-554. + +Forni, M. & Lippi, M., The general dynamic factor model: One-sided + representation results. Journal of Econometrics, In Press, Accepted + Manuscript. Available at: + http://www.sciencedirect.com/science/article/B6VC0-51FNPJN-1/2/4fcdd0cfb66e3050ff5d19bf2752ed19 + [Accessed November 15, 2010]. + +Kapetanios, G., 2010. A Testing Procedure for Determining the Number + of Factors in Approximate Factor Models With Large Datasets. Journal + of Business and Economic Statistics, 28(3), pp.397-409. + +Onatski, A., 2010. Determining the Number of Factors from Empirical + Distribution of Eigenvalues. Review of Economics and Statistics, + 92(4), pp.1004-1016. + +Park, B.U. et al., 2009. Time Series Modelling With Semiparametric + Factor Dynamics. Journal of the American Statistical Association, + 104(485), pp.284-298. + + + +other factor algorithm +~~~~~~~~~~~~~~~~~~~~~~ +PLS should fit in reasonably well. + +Bai/Ng have a recent paper, where they compare LASSO, PCA, and similar, individual +and in combination. +Check how much we can use scikits.learn for this. + + +miscellaneous +~~~~~~~~~~~~~ +Time series modeling of factors for prediction, ARMA, VARMA. +SUR and correlation structure +What about sandwich estimation, robust covariance matrices? +Similarity to Factor-Garch and Go-Garch +Updating: incremental PCA, ...? + + +TODO next +========= +MVOLS : OLS with multivariate endogenous and identical exogenous variables. + rewrite and expand current varma_process.VAR +PCA : write a class after all, and/or adjust the current donated class + and keep adding required statistics, e.g. + residual variance, projection of X on k-factors, ... updating ? +FactorModelUnivariate : started, does basic principal component regression, + based on standard information criteria, not Bai/Ng adjusted +FactorModelMultivariate : follow pattern for univariate version and use + MVOLS + + + + + + +''' diff --git a/statsmodels/sandbox/datarich/factormodels.py b/statsmodels/sandbox/datarich/factormodels.py new file mode 100644 index 0000000..3c1b0e3 --- /dev/null +++ b/statsmodels/sandbox/datarich/factormodels.py @@ -0,0 +1,193 @@ +# -*- coding: utf-8 -*- +""" +Created on Sun Nov 14 08:21:41 2010 + +Author: josef-pktd +License: BSD (3-clause) +""" + +from __future__ import print_function +import numpy as np +from numpy.testing import assert_array_almost_equal +import statsmodels.api as sm +from statsmodels.sandbox.tools import pca +from statsmodels.sandbox.tools.cross_val import LeaveOneOut + +#converting example Principal Component Regression to a class +#from sandbox/example_pca_regression.py + + +class FactorModelUnivariate(object): + ''' + + Todo: + check treatment of const, make it optional ? + add hasconst (0 or 1), needed when selecting nfact+hasconst + options are arguments in calc_factors, should be more public instead + cross-validation is slow for large number of observations + ''' + def __init__(self, endog, exog): + #do this in a superclass? + self.endog = np.asarray(endog) + self.exog = np.asarray(exog) + + + def calc_factors(self, x=None, keepdim=0, addconst=True): + '''get factor decomposition of exogenous variables + + This uses principal component analysis to obtain the factors. The number + of factors kept is the maximum that will be considered in the regression. + ''' + if x is None: + x = self.exog + else: + x = np.asarray(x) + xred, fact, evals, evecs = pca(x, keepdim=keepdim, normalize=1) + self.exog_reduced = xred + #self.factors = fact + if addconst: + self.factors = sm.add_constant(fact, prepend=True) + self.hasconst = 1 #needs to be int + else: + self.factors = fact + self.hasconst = 0 #needs to be int + + self.evals = evals + self.evecs = evecs + + def fit_fixed_nfact(self, nfact): + if not hasattr(self, 'factors_wconst'): + self.calc_factors() + return sm.OLS(self.endog, self.factors[:,:nfact+1]).fit() + + def fit_find_nfact(self, maxfact=None, skip_crossval=True, cv_iter=None): + '''estimate the model and selection criteria for up to maxfact factors + + The selection criteria that are calculated are AIC, BIC, and R2_adj. and + additionally cross-validation prediction error sum of squares if `skip_crossval` + is false. Cross-validation is not used by default because it can be + time consuming to calculate. + + By default the cross-validation method is Leave-one-out on the full dataset. + A different cross-validation sample can be specified as an argument to + cv_iter. + + Results are attached in `results_find_nfact` + + + + ''' + #print 'OLS on Factors' + if not hasattr(self, 'factors'): + self.calc_factors() + + hasconst = self.hasconst + if maxfact is None: + maxfact = self.factors.shape[1] - hasconst + + if (maxfact+hasconst) < 1: + raise ValueError('nothing to do, number of factors (incl. constant) should ' + + 'be at least 1') + + #temporary safety + maxfact = min(maxfact, 10) + + y0 = self.endog + results = [] + #xred, fact, eva, eve = pca(x0, keepdim=0, normalize=1) + for k in range(1, maxfact+hasconst): #k includes now the constnat + #xred, fact, eva, eve = pca(x0, keepdim=k, normalize=1) + # this is faster and same result + fact = self.factors[:,:k] + res = sm.OLS(y0, fact).fit() + ## print 'k =', k + ## print res.params + ## print 'aic: ', res.aic + ## print 'bic: ', res.bic + ## print 'llf: ', res.llf + ## print 'R2 ', res.rsquared + ## print 'R2 adj', res.rsquared_adj + + if not skip_crossval: + if cv_iter is None: + cv_iter = LeaveOneOut(len(y0)) + prederr2 = 0. + for inidx, outidx in cv_iter: + res_l1o = sm.OLS(y0[inidx], fact[inidx,:]).fit() + #print data.endog[outidx], res.model.predict(data.exog[outidx,:]), + prederr2 += (y0[outidx] - + res_l1o.model.predict(res_l1o.params, fact[outidx,:]))**2. + else: + prederr2 = np.nan + + results.append([k, res.aic, res.bic, res.rsquared_adj, prederr2]) + + self.results_find_nfact = results = np.array(results) + self.best_nfact = np.r_[(np.argmin(results[:,1:3],0), np.argmax(results[:,3],0), + np.argmin(results[:,-1],0))] + + def summary_find_nfact(self): + '''provides a summary for the selection of the number of factors + + Returns + ------- + sumstr : string + summary of the results for selecting the number of factors + + ''' + if not hasattr(self, 'results_find_nfact'): + self.fit_find_nfact() + + + results = self.results_find_nfact + sumstr = '' + sumstr += '\n' + 'Best result for k, by AIC, BIC, R2_adj, L1O' +# best = np.r_[(np.argmin(results[:,1:3],0), np.argmax(results[:,3],0), +# np.argmin(results[:,-1],0))] + + sumstr += '\n' + ' '*19 + '%5d %4d %6d %5d' % tuple(self.best_nfact) + + from statsmodels.iolib.table import (SimpleTable, default_txt_fmt, + default_latex_fmt, default_html_fmt) + + headers = 'k, AIC, BIC, R2_adj, L1O'.split(', ') + numformat = ['%6d'] + ['%10.3f']*4 #'%10.4f' + txt_fmt1 = dict(data_fmts = numformat) + tabl = SimpleTable(results, headers, None, txt_fmt=txt_fmt1) + + sumstr += '\n' + "PCA regression on simulated data," + sumstr += '\n' + "DGP: 2 factors and 4 explanatory variables" + sumstr += '\n' + tabl.__str__() + sumstr += '\n' + "Notes: k is number of components of PCA," + sumstr += '\n' + " constant is added additionally" + sumstr += '\n' + " k=0 means regression on constant only" + sumstr += '\n' + " L1O: sum of squared prediction errors for leave-one-out" + return sumstr + + +if __name__ == '__main__': + + examples = [1] + if 1 in examples: + nobs = 500 + f0 = np.c_[np.random.normal(size=(nobs,2)), np.ones((nobs,1))] + f2xcoef = np.c_[np.repeat(np.eye(2),2,0),np.arange(4)[::-1]].T + f2xcoef = np.array([[ 1., 1., 0., 0.], + [ 0., 0., 1., 1.], + [ 3., 2., 1., 0.]]) + f2xcoef = np.array([[ 0.1, 3., 1., 0.], + [ 0., 0., 1.5, 0.1], + [ 3., 2., 1., 0.]]) + x0 = np.dot(f0, f2xcoef) + x0 += 0.1*np.random.normal(size=x0.shape) + ytrue = np.dot(f0,[1., 1., 1.]) + y0 = ytrue + 0.1*np.random.normal(size=ytrue.shape) + + mod = FactorModelUnivariate(y0, x0) + print(mod.summary_find_nfact()) + print("with cross validation - slower") + mod.fit_find_nfact(maxfact=None, skip_crossval=False, cv_iter=None) + print(mod.summary_find_nfact()) + + + diff --git a/statsmodels/sandbox/dataset_notes.rst b/statsmodels/sandbox/dataset_notes.rst new file mode 100644 index 0000000..b57ecac --- /dev/null +++ b/statsmodels/sandbox/dataset_notes.rst @@ -0,0 +1,66 @@ +Adding a dataset. + +Main Steps +1) Obtain permission to use the data. + +1) Obtain permission! This is really important! I usually look up an e-mail +address and politely (and briefly) explain why I would like to use the data. +Most people get back to me almost immediately, and I have never had anyone say +no. After all, I think most academics are sympathetic to the idea that +information wants to be free... + +2) Make a directory in the datasets folder. For this example I will be using +the Spector and Mazzeo data from Greene's Econometric Analysis, so I make a +folder called statsmodels/datasets/spector + +3) Copy the template_data.py file over to the new directory, but rename it data.py. It contains all the meta information for the datasets. So we now have datasets/spector/data.py + +4) Put the raw data into this folder and convert it. + +Sometimes the data used for examples is different than the raw data. If this +is the case then the datasets/spector directory should contain a folder named +src for the original data. In this case, the data is clean, so I just put a +file name spector.csv into datasets/spector. This file is just an ascii file +with spaces as delimiters. If the file requires a little cleaning, then put the +raw data in src and create a file called spector.csv in the spector folder for +the cleaned data. + +After this is done, we use the convert function in scikits.statsmodels.datasets.data_utils to convert the data into the format needed. In the folder with our .csv file, just do. + +from scikits.statsmodels.datasets.data_utils import convert +convert('./spector.csv', delimiter=" ") + +This creates a spector.py file, which contains all of the variables as lists of strings. + +5) Edit data.py to reflect the correct meta information. + +Usually, this will require editing the COPYRIGHT, TITLE, SOURCE, +DESCRSHORT (and/or DESCRLONG), and "NOTE" + +6) Edit the Load class of data.py to load the newly created dataset. + +In this case, we change the following lines to read + +from spector import __dict__, names +self.endog = np.array(self._d[self._names[4]], dtype=float) +self.exog = np.column_stack(self._d[i] \ + for i in self._names[1:4]).astype(np.float) + +This is probably not the best way to handle the datasets class, and will +probably change in the future as the datasets package becomes more robust. +Suggetions are very welcome. + +7) Create an __init__.py in the new folder + +The __init__.py file should contain + +from data import * + +8) Edit the datasets.__init__.py to import the new directory + +9) Make sure everything is correct, and you've saved everything, + and put the directory under version control. + +bzr add spector + + diff --git a/statsmodels/sandbox/descstats.py b/statsmodels/sandbox/descstats.py new file mode 100644 index 0000000..f07edef --- /dev/null +++ b/statsmodels/sandbox/descstats.py @@ -0,0 +1,187 @@ +''' +Glue for returning descriptive statistics. +''' +import numpy as np +from scipy import stats +import os +from statsmodels.stats.descriptivestats import sign_test + +############################################# +# +#============================================ +# Univariate Descriptive Statistics +#============================================ +# + +def descstats(data, cols=None, axis=0): + ''' + Prints descriptive statistics for one or multiple variables. + + Parameters + ------------ + data: numpy array + `x` is the data + + v: list, optional + A list of the column number or field names (for a recarray) of variables. + Default is all columns. + + axis: 1 or 0 + axis order of data. Default is 0 for column-ordered data. + + Examples + -------- + >>> descstats(data.exog,v=['x_1','x_2','x_3']) + ''' + + x = np.array(data) # or rather, the data we're interested in + if cols is None: +# if isinstance(x, np.recarray): +# cols = np.array(len(x.dtype.names)) + if not isinstance(x, np.recarray) and x.ndim == 1: + x = x[:,None] + + if x.shape[1] == 1: + desc = ''' + --------------------------------------------- + Univariate Descriptive Statistics + --------------------------------------------- + + Var. Name %(name)12s + ---------- + Obs. %(nobs)22i Range %(range)22s + Sum of Wts. %(sum)22s Coeff. of Variation %(coeffvar)22.4g + Mode %(mode)22.4g Skewness %(skewness)22.4g + Repeats %(nmode)22i Kurtosis %(kurtosis)22.4g + Mean %(mean)22.4g Uncorrected SS %(uss)22.4g + Median %(median)22.4g Corrected SS %(ss)22.4g + Variance %(variance)22.4g Sum Observations %(sobs)22.4g + Std. Dev. %(stddev)22.4g + ''' % {'name': cols, 'sum': 'N/A', 'nobs': len(x), 'mode': \ + stats.mode(x)[0][0], 'nmode': stats.mode(x)[1][0], \ + 'mean': x.mean(), 'median': np.median(x), 'range': \ + '('+str(x.min())+', '+str(x.max())+')', 'variance': \ + x.var(), 'stddev': x.std(), 'coeffvar': \ + stats.variation(x), 'skewness': stats.skew(x), \ + 'kurtosis': stats.kurtosis(x), 'uss': np.sum(x**2, axis=0),\ + 'ss': np.sum((x-x.mean())**2, axis=0), 'sobs': np.sum(x)} + + desc+= ''' + + Percentiles + ------------- + 1 %% %12.4g + 5 %% %12.4g + 10 %% %12.4g + 25 %% %12.4g + + 50 %% %12.4g + + 75 %% %12.4g + 90 %% %12.4g + 95 %% %12.4g + 99 %% %12.4g + ''' % tuple([stats.scoreatpercentile(x,per) for per in (1,5,10,25, + 50,75,90,95,99)]) + t,p_t=stats.ttest_1samp(x,0) + M,p_M=sign_test(x) + S,p_S=stats.wilcoxon(np.squeeze(x)) + + desc+= ''' + + Tests of Location (H0: Mu0=0) + ----------------------------- + Test Statistic Two-tailed probability + -----------------+----------------------------------------- + Student's t | t %7.5f Pr > |t| <%.4f + Sign | M %8.2f Pr >= |M| <%.4f + Signed Rank | S %8.2f Pr >= |S| <%.4f + + ''' % (t,p_t,M,p_M,S,p_S) +# Should this be part of a 'descstats' +# in any event these should be split up, so that they can be called +# individually and only returned together if someone calls summary +# or something of the sort + + elif x.shape[1] > 1: + desc =''' + Var. Name | Obs. Mean Std. Dev. Range + ------------+--------------------------------------------------------'''+\ + os.linesep + +# for recarrays with columns passed as names +# if isinstance(cols[0],str): +# for var in cols: +# desc += "%(name)15s %(obs)9i %(mean)12.4g %(stddev)12.4g \ +#%(range)20s" % {'name': var, 'obs': len(x[var]), 'mean': x[var].mean(), +# 'stddev': x[var].std(), 'range': '('+str(x[var].min())+', '\ +# +str(x[var].max())+')'+os.linesep} +# else: + for var in range(x.shape[1]): + desc += "%(name)15s %(obs)9i %(mean)12.4g %(stddev)12.4g \ +%(range)20s" % {'name': var, 'obs': len(x[:,var]), 'mean': x[:,var].mean(), + 'stddev': x[:,var].std(), 'range': '('+str(x[:,var].min())+', '+\ + str(x[:,var].max())+')'+os.linesep} + else: + raise ValueError("data not understood") + + return desc + +#if __name__=='__main__': +# test descstats +# import os +# loc='http://eagle1.american.edu/~js2796a/data/handguns_data.csv' +# relpath=(load_dataset(loc)) +# dta=np.recfromcsv(relpath) +# descstats(dta,['stpop']) +# raw_input('Hit enter for multivariate test') +# descstats(dta,['stpop','avginc','vio']) + +# with plain arrays +# import string2dummy as s2d +# dts=s2d.string2dummy(dta) +# ndts=np.vstack(dts[col] for col in dts.dtype.names) +# observations in columns and data in rows +# is easier for the call to stats + +# what to make of +# ndts=np.column_stack(dts[col] for col in dts.dtype.names) +# ntda=ntds.swapaxis(1,0) +# ntda is ntds returns false? + +# or now we just have detailed information about the different strings +# would this approach ever be inappropriate for a string typed variable +# other than dates? +# descstats(ndts, [1]) +# raw_input("Enter to try second part") +# descstats(ndts, [1,20,3]) + +if __name__ == '__main__': + import statsmodels.api as sm + import os + data = sm.datasets.longley.load() + data.exog = sm.add_constant(data.exog, prepend=False) + sum1 = descstats(data.exog) + sum1a = descstats(data.exog[:,:1]) + +# loc='http://eagle1.american.edu/~js2796a/data/handguns_data.csv' +# dta=np.recfromcsv(loc) +# summary2 = descstats(dta,['stpop']) +# summary3 = descstats(dta,['stpop','avginc','vio']) +#TODO: needs a by argument +# summary4 = descstats(dta) this fails +# this is a bug +# p = dta[['stpop']] +# p.view(dtype = np.float, type = np.ndarray) +# this works +# p.view(dtype = np.int, type = np.ndarray) + +### This is *really* slow ### + if os.path.isfile('./Econ724_PS_I_Data.csv'): + data2 = np.recfromcsv('./Econ724_PS_I_Data.csv') + sum2 = descstats(data2.ahe) + sum3 = descstats(np.column_stack((data2.ahe,data2.yrseduc))) + sum4 = descstats(np.column_stack(([data2[_] for \ + _ in data2.dtype.names]))) + + diff --git a/statsmodels/sandbox/distributions/__init__.py b/statsmodels/sandbox/distributions/__init__.py new file mode 100644 index 0000000..49b1d30 --- /dev/null +++ b/statsmodels/sandbox/distributions/__init__.py @@ -0,0 +1,23 @@ +'''temporary location for enhancements to scipy.stats + +includes +^^^^^^^^ + +* Per Brodtkorb's estimation enhancements to scipy.stats.distributions + - distributions_per.py is copy of scipy.stats.distributions.py with changes + - distributions_profile.py partially extracted classes and functions to + separate code into more managable pieces +* josef's extra distribution and helper functions + - moment helpers + - goodness of fit test + - fitting distributions with some fixed parameters + - find best distribution that fits data: working script +* example and test folders to keep all together + +status +^^^^^^ + +mixed status : from not-working to well-tested + + +''' diff --git a/statsmodels/sandbox/distributions/copula.py b/statsmodels/sandbox/distributions/copula.py new file mode 100644 index 0000000..5a5e9f6 --- /dev/null +++ b/statsmodels/sandbox/distributions/copula.py @@ -0,0 +1,316 @@ +''' + +Which Archimedean is Best? +Extreme Value copulas formulas are based on Genest 2009 + +References +---------- + +Genest, C., 2009. Rank-based inference for bivariate extreme-value +copulas. The Annals of Statistics, 37(5), pp.2990-3022. + + + +''' + + +import numpy as np +from scipy.special import expm1, log1p + + +def copula_bv_indep(u,v): + '''independent bivariate copula + ''' + return u*v + +def copula_bv_min(u,v): + '''comonotonic bivariate copula + ''' + return np.minimum(u, v) + +def copula_bv_max(u, v): + '''countermonotonic bivariate copula + ''' + return np.maximum(u + v - 1, 0) + +def copula_bv_clayton(u, v, theta): + '''Clayton or Cook, Johnson bivariate copula + ''' + if not theta > 0: + raise ValueError('theta needs to be strictly positive') + return np.power(np.power(u, -theta) + np.power(v, -theta) - 1, -theta) + +def copula_bv_frank(u, v, theta): + '''Cook, Johnson bivariate copula + ''' + if not theta > 0: + raise ValueError('theta needs to be strictly positive') + cdfv = -np.log(1 + expm1(-theta*u) * expm1(-theta*v) / expm1(-theta))/theta + cdfv = np.minimum(cdfv, 1) #necessary for example if theta=100 + return cdfv + + +def copula_bv_gauss(u, v, rho): + raise NotImplementedError + +def copula_bv_t(u, v, rho, df): + raise NotImplementedError + +#not used yet +class Transforms(object): + def __init__(self): + pass + +class TransfFrank(object): + + def evaluate(self, t, theta): + return - (np.log(-expm1(-theta*t)) - np.log(-expm1(-theta))) + #return - np.log(expm1(-theta*t) / expm1(-theta)) + + def inverse(self, phi, theta): + return -np.log1p(np.exp(-phi) * expm1(-theta)) / theta + +class TransfClayton(object): + + def _checkargs(theta): + return theta > 0 + + def evaluate(self, t, theta): + return np.power(t, -theta) - 1. + + def inverse(self, phi, theta): + return np.power(1 + phi, -theta) + +class TransfGumbel(object): + ''' + requires theta >=1 + ''' + + def _checkargs(theta): + return theta >= 1 + + def evaluate(self, t, theta): + return np.power(-np.log(t), theta) + + def inverse(self, phi, theta): + return np.exp(-np.power(phi, 1. / theta)) + +class TransfIndep(object): + def evaluate(self, t): + return -np.log(t) + + def inverse(self, phi): + return np.exp(-phi) + +def copula_bv_archimedean(u, v, transform, args=()): + ''' + ''' + phi = transform.evaluate + phi_inv = transform.inverse + cdfv = phi_inv(phi(u, *args) + phi(v, *args), *args) + return cdfv + + +def copula_mv_archimedean(u, transform, args=(), axis=-1): + '''generic multivariate Archimedean copula + ''' + phi = transform.evaluate + phi_inv = transform.inverse + cdfv = phi_inv(phi(u, *args).sum(axis), *args) + return cdfv + + +def copula_bv_ev(u, v, transform, args=()): + '''generic bivariate extreme value copula + ''' + return np.exp(np.log(u * v) * (transform(np.log(v)/np.log(u*v), *args))) + +def transform_tawn(t, a1, a2, theta): + '''asymmetric logistic model of Tawn 1988 + + special case: a1=a2=1 : Gumbel + + restrictions: + - theta in (0,1] + - a1, a2 in [0,1] + ''' + + def _check_args(a1, a2, theta): + condth = (theta > 0) and (theta <= 1) + conda1 = (a1 >= 0) and (a1 <= 1) + conda2 = (a2 >= 0) and (a2 <= 1) + return condth and conda1 and conda2 + + if not np.all(_check_args(a1, a2, theta)): + raise ValueError('invalid args') + + transf = (1 - a1) * (1-t) + transf += (1 - a2) * t + transf += ((a1 * t)**(1./theta) + (a2 * (1-t))**(1./theta))**theta + + return transf + +def transform_joe(t, a1, a2, theta): + '''asymmetric negative logistic model of Joe 1990 + + special case: a1=a2=1 : symmetric negative logistic of Galambos 1978 + + restrictions: + - theta in (0,inf) + - a1, a2 in (0,1] + ''' + + def _check_args(a1, a2, theta): + condth = (theta > 0) + conda1 = (a1 > 0) and (a1 <= 1) + conda2 = (a2 > 0) and (a2 <= 1) + return condth and conda1 and conda2 + + if not np.all(_check_args(a1, a2, theta)): + raise ValueError('invalid args') + + transf = 1 - ((a1 * (1-t))**(-1./theta) + (a2 * t)**(-1./theta))**(-theta) + return transf + + +def transform_tawn2(t, theta, k): + '''asymmetric mixed model of Tawn 1988 + + special case: k=0, theta in [0,1] : symmetric mixed model of + Tiago de Oliveira 1980 + + restrictions: + - theta > 0 + - theta + 3*k > 0 + - theta + k <= 1 + - theta + 2*k <= 1 + ''' + + def _check_args(theta, k): + condth = (theta >= 0) + cond1 = (theta + 3*k > 0) and (theta + k <= 1) and (theta + 2*k <= 1) + return condth and cond1 + + if not np.all(_check_args(theta, k)): + raise ValueError('invalid args') + + transf = 1 - (theta + k) * t + theta * t*t + k * t**3 + return transf + +def transform_bilogistic(t, beta, delta): + '''bilogistic model of Coles and Tawn 1994, Joe, Smith and Weissman 1992 + + restrictions: + - (beta, delta) in (0,1)^2 or + - (beta, delta) in (-inf,0)^2 + + not vectorized because of numerical integration + ''' + + def _check_args(beta, delta): + cond1 = (beta > 0) and (beta <= 1) and (delta > 0) and (delta <= 1) + cond2 = (beta < 0) and (delta < 0) + return cond1 | cond2 + + if not np.all(_check_args(beta, delta)): + raise ValueError('invalid args') + + def _integrant(w): + term1 = (1 - beta) * np.power(w, -beta) * (1-t) + term2 = (1 - delta) * np.power(1-w, -delta) * t + np.maximum(term1, term2) + + from scipy.integrate import quad + transf = quad(_integrant, 0, 1) + return transf + +def transform_hr(t, lamda): + '''model of Huesler Reiss 1989 + + special case: a1=a2=1 : symmetric negative logistic of Galambos 1978 + + restrictions: + - lambda in (0,inf) + ''' + + def _check_args(lamda): + cond = (lamda > 0) + return cond + + if not np.all(_check_args(lamda)): + raise ValueError('invalid args') + + term = np.log((1. - t) / t) * 0.5 / lamda + + from scipy.stats import norm #use special if I want to avoid stats import + transf = (1 - t) * norm._cdf(lamda + term) + t * norm._cdf(lamda - term) + return transf + +def transform_tev(t, rho, x): + '''t-EV model of Demarta and McNeil 2005 + + restrictions: + - rho in (-1,1) + - x > 0 + ''' + + def _check_args(rho, x): + cond1 = (x > 0) + cond2 = (rho > 0) and (rho < 1) + return cond1 and cond2 + + if not np.all(_check_args(rho, x)): + raise ValueError('invalid args') + + from scipy.stats import t as stats_t #use special if I want to avoid stats import + + z = np.sqrt(1. + x) * (np.power(t/(1.-t), 1./x) - rho) + z /= np.sqrt(1 - rho*rho) + transf = (1 - t) * stats_t._cdf(z, x+1) + t * stats_t._cdf(z, x+1) + return transf + +#define dictionary of copulas by names and aliases +copulanames = {'indep' : copula_bv_indep, + 'i' : copula_bv_indep, + 'min' : copula_bv_min, + 'max' : copula_bv_max, + 'clayton' : copula_bv_clayton, + 'cookjohnson' : copula_bv_clayton, + 'cj' : copula_bv_clayton, + 'frank' : copula_bv_frank, + 'gauss' : copula_bv_gauss, + 'normal' : copula_bv_gauss, + 't' : copula_bv_frank} + +class CopulaBivariate(object): + '''bivariate copula class + + Instantiation needs the arguments, cop_args, that are required for copula + ''' + def __init__(self, marginalcdfs, copula, copargs=()): + if copula in copulanames: + self.copula = copulanames[copula] + else: + #see if we can call it as a copula function + try: + tmp = copula(0.5, 0.5, *copargs) + except: #blanket since we throw again + raise ValueError('copula needs to be a copula name or callable') + self.copula = copula + + #no checking done on marginals + self.marginalcdfs = marginalcdfs + self.copargs = copargs + + def cdf(self, xy, args=None): + '''xx needs to be iterable, instead of x,y for extension to multivariate + ''' + x, y = xy + if args is None: + args = self.copargs + return self.copula(self.marginalcdfs[0](x), self.marginalcdfs[1](y), + *args) + + + + diff --git a/statsmodels/sandbox/distributions/estimators.py b/statsmodels/sandbox/distributions/estimators.py new file mode 100644 index 0000000..2933ed0 --- /dev/null +++ b/statsmodels/sandbox/distributions/estimators.py @@ -0,0 +1,694 @@ +'''estimate distribution parameters by various methods +method of moments or matching quantiles, and Maximum Likelihood estimation +based on binned data and Maximum Product-of-Spacings + +Warning: I'm still finding cut-and-paste and refactoring errors, e.g. + hardcoded variables from outer scope in functions + some results don't seem to make sense for Pareto case, + looks better now after correcting some name errors + +initially loosely based on a paper and blog for quantile matching + by John D. Cook + formula for gamma quantile (ppf) matching by him (from paper) + http://www.codeproject.com/KB/recipes/ParameterPercentile.aspx + http://www.johndcook.com/blog/2010/01/31/parameters-from-percentiles/ + this is what I actually used (in parts): + http://www.bepress.com/mdandersonbiostat/paper55/ + +quantile based estimator +^^^^^^^^^^^^^^^^^^^^^^^^ +only special cases for number or parameters so far +Is there a literature for GMM estimation of distribution parameters? check + found one: Wu/Perloff 2007 + + +binned estimator +^^^^^^^^^^^^^^^^ +* I added this also +* use it for chisquare tests with estimation distribution parameters +* move this to distribution_extras (next to gof tests powerdiscrepancy and + continuous) or add to distribution_patch + + +example: t-distribution +* works with quantiles if they contain tail quantiles +* results with momentcondquant don't look as good as mle estimate + +TODOs +* rearange and make sure I don't use module globals (as I did initially) DONE + make two version exactly identified method of moments with fsolve + and GMM (?) version with fmin + and maybe the special cases of JD Cook + update: maybe exact (MM) version is not so interesting compared to GMM +* add semifrozen version of moment and quantile based estimators, + e.g. for beta (both loc and scale fixed), or gamma (loc fixed) +* add beta example to the semifrozen MLE, fitfr, code + -> added method of moment estimator to _fitstart for beta +* start a list of how well different estimators, especially current mle work + for the different distributions +* need general GMM code (with optimal weights ?), looks like a good example + for it +* get example for binned data estimation, mailing list a while ago +* any idea when these are better than mle ? +* check language: I use quantile to mean the value of the random variable, not + quantile between 0 and 1. +* for GMM: move moment conditions to separate function, so that they can be + used for further analysis, e.g. covariance matrix of parameter estimates +* question: Are GMM properties different for matching quantiles with cdf or + ppf? Estimate should be the same, but derivatives of moment conditions + differ. +* add maximum spacings estimator, Wikipedia, Per Brodtkorb -> basic version Done +* add parameter estimation based on empirical characteristic function + (Carrasco/Florens), especially for stable distribution +* provide a model class based on estimating all distributions, and collect + all distribution specific information + + +References +---------- + +Ximing Wu, Jeffrey M. Perloff, GMM estimation of a maximum entropy +distribution with interval data, Journal of Econometrics, Volume 138, +Issue 2, 'Information and Entropy Econometrics' - A Volume in Honor of +Arnold Zellner, June 2007, Pages 532-546, ISSN 0304-4076, +DOI: 10.1016/j.jeconom.2006.05.008. +http://www.sciencedirect.com/science/article/B6VC0-4K606TK-4/2/78bc07c6245546374490f777a6bdbbcc +http://escholarship.org/uc/item/7jf5w1ht (working paper) + +Johnson, Kotz, Balakrishnan: Volume 2 + + +Author : josef-pktd +License : BSD +created : 2010-04-20 + +changes: +added Maximum Product-of-Spacings 2010-05-12 + +''' + +from __future__ import print_function +import numpy as np +from scipy import stats, optimize, special + +cache = {} #module global storage for temp results, not used + + +# the next two use distfn from module scope - not anymore +def gammamomentcond(distfn, params, mom2, quantile=None): + '''estimate distribution parameters based method of moments (mean, + variance) for distributions with 1 shape parameter and fixed loc=0. + + Returns + ------- + cond : function + + Notes + ----- + first test version, quantile argument not used + + ''' + def cond(params): + alpha, scale = params + mom2s = distfn.stats(alpha, 0.,scale) + #quantil + return np.array(mom2)-mom2s + return cond + +def gammamomentcond2(distfn, params, mom2, quantile=None): + '''estimate distribution parameters based method of moments (mean, + variance) for distributions with 1 shape parameter and fixed loc=0. + + Returns + ------- + difference : array + difference between theoretical and empirical moments + + Notes + ----- + first test version, quantile argument not used + + The only difference to previous function is return type. + + ''' + alpha, scale = params + mom2s = distfn.stats(alpha, 0.,scale) + return np.array(mom2)-mom2s + + + +######### fsolve doesn't move in small samples, fmin not very accurate +def momentcondunbound(distfn, params, mom2, quantile=None): + '''moment conditions for estimating distribution parameters using method + of moments, uses mean, variance and one quantile for distributions + with 1 shape parameter. + + Returns + ------- + difference : array + difference between theoretical and empirical moments and quantiles + + ''' + shape, loc, scale = params + mom2diff = np.array(distfn.stats(shape, loc,scale)) - mom2 + if not quantile is None: + pq, xq = quantile + #ppfdiff = distfn.ppf(pq, alpha) + cdfdiff = distfn.cdf(xq, shape, loc, scale) - pq + return np.concatenate([mom2diff, cdfdiff[:1]]) + return mom2diff + + +###### loc scale only +def momentcondunboundls(distfn, params, mom2, quantile=None, shape=None): + '''moment conditions for estimating loc and scale of a distribution + with method of moments using either 2 quantiles or 2 moments (not both). + + Returns + ------- + difference : array + difference between theoretical and empirical moments or quantiles + + ''' + loc, scale = params + mom2diff = np.array(distfn.stats(shape, loc, scale)) - mom2 + if not quantile is None: + pq, xq = quantile + #ppfdiff = distfn.ppf(pq, alpha) + cdfdiff = distfn.cdf(xq, shape, loc, scale) - pq + #return np.concatenate([mom2diff, cdfdiff[:1]]) + return cdfdiff + return mom2diff + + + +######### try quantile GMM with identity weight matrix +#(just a guess that's what it is + +def momentcondquant(distfn, params, mom2, quantile=None, shape=None): + '''moment conditions for estimating distribution parameters by matching + quantiles, defines as many moment conditions as quantiles. + + Returns + ------- + difference : array + difference between theoretical and empirical quantiles + + Notes + ----- + This can be used for method of moments or for generalized method of + moments. + + ''' + #this check looks redundant/unused know + if len(params) == 2: + loc, scale = params + elif len(params) == 3: + shape, loc, scale = params + else: + #raise NotImplementedError + pass #see whether this might work, seems to work for beta with 2 shape args + + #mom2diff = np.array(distfn.stats(*params)) - mom2 + #if not quantile is None: + pq, xq = quantile + #ppfdiff = distfn.ppf(pq, alpha) + cdfdiff = distfn.cdf(xq, *params) - pq + #return np.concatenate([mom2diff, cdfdiff[:1]]) + return cdfdiff + #return mom2diff + +def fitquantilesgmm(distfn, x, start=None, pquant=None, frozen=None): + if pquant is None: + pquant = np.array([0.01, 0.05,0.1,0.4,0.6,0.9,0.95,0.99]) + if start is None: + if hasattr(distfn, '_fitstart'): + start = distfn._fitstart(x) + else: + start = [1]*distfn.numargs + [0.,1.] + #TODO: vectorize this: + xqs = [stats.scoreatpercentile(x, p) for p in pquant*100] + mom2s = None + parest = optimize.fmin(lambda params:np.sum( + momentcondquant(distfn, params, mom2s,(pquant,xqs), shape=None)**2), start) + return parest + + + +def fitbinned(distfn, freq, binedges, start, fixed=None): + '''estimate parameters of distribution function for binned data using MLE + + Parameters + ---------- + distfn : distribution instance + needs to have cdf method, as in scipy.stats + freq : array, 1d + frequency count, e.g. obtained by histogram + binedges : array, 1d + binedges including lower and upper bound + start : tuple or array_like ? + starting values, needs to have correct length + + Returns + ------- + paramest : array + estimated parameters + + Notes + ----- + todo: add fixed parameter option + + added factorial + + ''' + if not fixed is None: + raise NotImplementedError + nobs = np.sum(freq) + lnnobsfact = special.gammaln(nobs+1) + def nloglike(params): + '''negative loglikelihood function of binned data + + corresponds to multinomial + ''' + prob = np.diff(distfn.cdf(binedges, *params)) + return -(lnnobsfact + np.sum(freq*np.log(prob)- special.gammaln(freq+1))) + return optimize.fmin(nloglike, start) + + +def fitbinnedgmm(distfn, freq, binedges, start, fixed=None, weightsoptimal=True): + '''estimate parameters of distribution function for binned data using GMM + + Parameters + ---------- + distfn : distribution instance + needs to have cdf method, as in scipy.stats + freq : array, 1d + frequency count, e.g. obtained by histogram + binedges : array, 1d + binedges including lower and upper bound + start : tuple or array_like ? + starting values, needs to have correct length + fixed : None + not used yet + weightsoptimal : boolean + If true, then the optimal weighting matrix for GMM is used. If false, + then the identity matrix is used + + Returns + ------- + paramest : array + estimated parameters + + Notes + ----- + todo: add fixed parameter option + + added factorial + + ''' + if not fixed is None: + raise NotImplementedError + nobs = np.sum(freq) + if weightsoptimal: + weights = freq/float(nobs) + else: + weights = np.ones(len(freq)) + freqnormed = freq/float(nobs) + # skip turning weights into matrix diag(freq/float(nobs)) + def gmmobjective(params): + '''negative loglikelihood function of binned data + + corresponds to multinomial + ''' + prob = np.diff(distfn.cdf(binedges, *params)) + momcond = freqnormed - prob + return np.dot(momcond*weights, momcond) + return optimize.fmin(gmmobjective, start) + +#Addition from try_maxproductspacings: +"""Estimating Parameters of Log-Normal Distribution with Maximum +Likelihood and Maximum Product-of-Spacings + +MPS definiton from JKB page 233 + +Created on Tue May 11 13:52:50 2010 +Author: josef-pktd +License: BSD +""" + +def hess_ndt(fun, pars, args, options): + import numdifftools as ndt + if not ('stepMax' in options or 'stepFix' in options): + options['stepMax'] = 1e-5 + f = lambda params: fun(params, *args) + h = ndt.Hessian(f, **options) + return h(pars), h + +def logmps(params, xsorted, dist): + '''calculate negative log of Product-of-Spacings + + Parameters + ---------- + params : array_like, tuple ? + parameters of the distribution funciton + xsorted : array_like + data that is already sorted + dist : instance of a distribution class + only cdf method is used + + Returns + ------- + mps : float + negative log of Product-of-Spacings + + + Notes + ----- + MPS definiton from JKB page 233 + ''' + xcdf = np.r_[0., dist.cdf(xsorted, *params), 1.] + D = np.diff(xcdf) + return -np.log(D).mean() + +def getstartparams(dist, data): + '''get starting values for estimation of distribution parameters + + Parameters + ---------- + dist : distribution instance + the distribution instance needs to have either a method fitstart + or an attribute numargs + data : ndarray + data for which preliminary estimator or starting value for + parameter estimation is desired + + Returns + ------- + x0 : ndarray + preliminary estimate or starting value for the parameters of + the distribution given the data, including loc and scale + + ''' + if hasattr(dist, 'fitstart'): + #x0 = getattr(dist, 'fitstart')(data) + x0 = dist.fitstart(data) + else: + if np.isfinite(dist.a): + x0 = np.r_[[1.]*dist.numargs, (data.min()-1), 1.] + else: + x0 = np.r_[[1.]*dist.numargs, (data.mean()-1), 1.] + return x0 + +def fit_mps(dist, data, x0=None): + '''Estimate distribution parameters with Maximum Product-of-Spacings + + Parameters + ---------- + params : array_like, tuple ? + parameters of the distribution funciton + xsorted : array_like + data that is already sorted + dist : instance of a distribution class + only cdf method is used + + Returns + ------- + x : ndarray + estimates for the parameters of the distribution given the data, + including loc and scale + + + ''' + xsorted = np.sort(data) + if x0 is None: + x0 = getstartparams(dist, xsorted) + args = (xsorted, dist) + print(x0) + #print(args) + return optimize.fmin(logmps, x0, args=args) + + + +if __name__ == '__main__': + + #Example: gamma - distribution + #----------------------------- + + print('\n\nExample: gamma Distribution') + print( '---------------------------') + + alpha = 2 + xq = [0.5, 4] + pq = [0.1, 0.9] + print(stats.gamma.ppf(pq, alpha)) + xq = stats.gamma.ppf(pq, alpha) + print(np.diff((stats.gamma.ppf(pq, np.linspace(0.01,4,10)[:,None])*xq[::-1]))) + #optimize.bisect(lambda alpha: np.diff((stats.gamma.ppf(pq, alpha)*xq[::-1]))) + print(optimize.fsolve(lambda alpha: np.diff((stats.gamma.ppf(pq, alpha)*xq[::-1])), 3.)) + + distfn = stats.gamma + mcond = gammamomentcond(distfn, [5.,10], mom2=stats.gamma.stats(alpha, 0.,1.), quantile=None) + print(optimize.fsolve(mcond, [1.,2.])) + mom2 = stats.gamma.stats(alpha, 0.,1.) + print(optimize.fsolve(lambda params:gammamomentcond2(distfn, params, mom2), [1.,2.])) + + grvs = stats.gamma.rvs(alpha, 0.,2., size=1000) + mom2 = np.array([grvs.mean(), grvs.var()]) + alphaestq = optimize.fsolve(lambda params:gammamomentcond2(distfn, params, mom2), [1.,3.]) + print(alphaestq) + print('scale = ', xq/stats.gamma.ppf(pq, alphaestq)) + + + #Example beta - distribution + #--------------------------- + + #Warning: this example had cut-and-paste errors + + print('\n\nExample: beta Distribution') + print( '--------------------------') + + #monkey patching : +## if hasattr(stats.beta, '_fitstart'): +## del stats.beta._fitstart #bug in _fitstart #raises AttributeError: _fitstart + #stats.distributions.beta_gen._fitstart = lambda self, data : np.array([1,1,0,1]) + #_fitstart seems to require a tuple + stats.distributions.beta_gen._fitstart = lambda self, data : (5,5,0,1) + + pq = np.array([0.01, 0.05,0.1,0.4,0.6,0.9,0.95,0.99]) + #rvsb = stats.beta.rvs(0.5,0.15,size=200) + rvsb = stats.beta.rvs(10,15,size=2000) + print('true params', 10, 15, 0, 1) + print(stats.beta.fit(rvsb)) + xqsb = [stats.scoreatpercentile(rvsb, p) for p in pq*100] + mom2s = np.array([rvsb.mean(), rvsb.var()]) + betaparest_gmmquantile = optimize.fmin(lambda params:np.sum(momentcondquant(stats.beta, params, mom2s,(pq,xqsb), shape=None)**2), + [10,10, 0., 1.], maxiter=2000) + print('betaparest_gmmquantile', betaparest_gmmquantile) + #result sensitive to initial condition + + + #Example t - distribution + #------------------------ + + print('\n\nExample: t Distribution') + print( '-----------------------') + + nobs = 1000 + distfn = stats.t + pq = np.array([0.1,0.9]) + paramsdgp = (5, 0, 1) + trvs = distfn.rvs(5, 0, 1, size=nobs) + xqs = [stats.scoreatpercentile(trvs, p) for p in pq*100] + mom2th = distfn.stats(*paramsdgp) + mom2s = np.array([trvs.mean(), trvs.var()]) + tparest_gmm3quantilefsolve = optimize.fsolve(lambda params:momentcondunbound(distfn,params, mom2s,(pq,xqs)), [10,1.,2.]) + print('tparest_gmm3quantilefsolve', tparest_gmm3quantilefsolve) + tparest_gmm3quantile = optimize.fmin(lambda params:np.sum(momentcondunbound(distfn,params, mom2s,(pq,xqs))**2), [10,1.,2.]) + print('tparest_gmm3quantile', tparest_gmm3quantile) + print(distfn.fit(trvs)) + + ## + + ##distfn = stats.t + ##pq = np.array([0.1,0.9]) + ##paramsdgp = (5, 0, 1) + ##trvs = distfn.rvs(5, 0, 1, size=nobs) + ##xqs = [stats.scoreatpercentile(trvs, p) for p in pq*100] + ##mom2th = distfn.stats(*paramsdgp) + ##mom2s = np.array([trvs.mean(), trvs.var()]) + print(optimize.fsolve(lambda params:momentcondunboundls(distfn, params, mom2s,shape=5), [1.,2.])) + print(optimize.fmin(lambda params:np.sum(momentcondunboundls(distfn, params, mom2s,shape=5)**2), [1.,2.])) + print(distfn.fit(trvs)) + #loc, scale, based on quantiles + print(optimize.fsolve(lambda params:momentcondunboundls(distfn, params, mom2s,(pq,xqs),shape=5), [1.,2.])) + + ## + + pq = np.array([0.01, 0.05,0.1,0.4,0.6,0.9,0.95,0.99]) + #paramsdgp = (5, 0, 1) + xqs = [stats.scoreatpercentile(trvs, p) for p in pq*100] + tparest_gmmquantile = optimize.fmin(lambda params:np.sum(momentcondquant(distfn, params, mom2s,(pq,xqs), shape=None)**2), [10, 1.,2.]) + print('tparest_gmmquantile', tparest_gmmquantile) + tparest_gmmquantile2 = fitquantilesgmm(distfn, trvs, start=[10, 1.,2.], pquant=None, frozen=None) + print('tparest_gmmquantile2', tparest_gmmquantile2) + + + ## + + + #use trvs from before + bt = stats.t.ppf(np.linspace(0,1,21),5) + ft,bt = np.histogram(trvs,bins=bt) + print('fitbinned t-distribution') + tparest_mlebinew = fitbinned(stats.t, ft, bt, [10, 0, 1]) + tparest_gmmbinewidentity = fitbinnedgmm(stats.t, ft, bt, [10, 0, 1]) + tparest_gmmbinewoptimal = fitbinnedgmm(stats.t, ft, bt, [10, 0, 1], weightsoptimal=False) + print(paramsdgp) + + #Note: this can be used for chisquare test and then has correct asymptotic + # distribution for a distribution with estimated parameters, find ref again + #TODO combine into test with binning included, check rule for number of bins + + #bt2 = stats.t.ppf(np.linspace(trvs.,1,21),5) + ft2,bt2 = np.histogram(trvs,bins=50) + 'fitbinned t-distribution' + tparest_mlebinel = fitbinned(stats.t, ft2, bt2, [10, 0, 1]) + tparest_gmmbinelidentity = fitbinnedgmm(stats.t, ft2, bt2, [10, 0, 1]) + tparest_gmmbineloptimal = fitbinnedgmm(stats.t, ft2, bt2, [10, 0, 1], weightsoptimal=False) + tparest_mle = stats.t.fit(trvs) + + np.set_printoptions(precision=6) + print('sample size', nobs) + print('true (df, loc, scale) ', paramsdgp) + print('parest_mle ', tparest_mle) + print + print('tparest_mlebinel ', tparest_mlebinel) + print('tparest_gmmbinelidentity ', tparest_gmmbinelidentity) + print('tparest_gmmbineloptimal ', tparest_gmmbineloptimal) + print + print('tparest_mlebinew ', tparest_mlebinew) + print('tparest_gmmbinewidentity ', tparest_gmmbinewidentity) + print('tparest_gmmbinewoptimal ', tparest_gmmbinewoptimal) + print + print('tparest_gmmquantileidentity', tparest_gmmquantile) + print('tparest_gmm3quantilefsolve ', tparest_gmm3quantilefsolve) + print('tparest_gmm3quantile ', tparest_gmm3quantile) + + ''' example results: + standard error for df estimate looks large + note: iI don't impose that df is an integer, (b/c not necessary) + need Monte Carlo to check variance of estimators + + + sample size 1000 + true (df, loc, scale) (5, 0, 1) + parest_mle [ 4.571405 -0.021493 1.028584] + + tparest_mlebinel [ 4.534069 -0.022605 1.02962 ] + tparest_gmmbinelidentity [ 2.653056 0.012807 0.896958] + tparest_gmmbineloptimal [ 2.437261 -0.020491 0.923308] + + tparest_mlebinew [ 2.999124 -0.0199 0.948811] + tparest_gmmbinewidentity [ 2.900939 -0.020159 0.93481 ] + tparest_gmmbinewoptimal [ 2.977764 -0.024925 0.946487] + + tparest_gmmquantileidentity [ 3.940797 -0.046469 1.002001] + tparest_gmm3quantilefsolve [ 10. 1. 2.] + tparest_gmm3quantile [ 6.376101 -0.029322 1.112403] + ''' + + #Example with Maximum Product of Spacings Estimation + #=================================================== + + #Example: Lognormal Distribution + #------------------------------- + + #tough problem for MLE according to JKB + #but not sure for which parameters + + print('\n\nExample: Lognormal Distribution') + print( '-------------------------------') + + sh = np.exp(10) + sh = 0.01 + print(sh) + x = stats.lognorm.rvs(sh,loc=100, scale=10,size=200) + + print(x.min()) + print(stats.lognorm.fit(x, 1.,loc=x.min()-1,scale=1)) + + xsorted = np.sort(x) + + x0 = [1., x.min()-1, 1] + args = (xsorted, stats.lognorm) + print(optimize.fmin(logmps,x0,args=args)) + + + #Example: Lomax, Pareto, Generalized Pareto Distributions + #-------------------------------------------------------- + + #partially a follow-up to the discussion about numpy.random.pareto + #Reference: JKB + #example Maximum Product of Spacings Estimation + + # current results: + # doesn't look very good yet sensitivity to starting values + # Pareto and Generalized Pareto look like a tough estimation problemprint('\n\nExample: Lognormal Distribution' + + print('\n\nExample: Lomax, Pareto, Generalized Pareto Distributions') + print( '--------------------------------------------------------') + + + + #p2rvs = np.random.pareto(2,size=500)# + 1 + p2rvs = stats.genpareto.rvs(2, size=500) + #Note: is Lomax without +1; and classical Pareto with +1 + p2rvssorted = np.sort(p2rvs) + argsp = (p2rvssorted, stats.pareto) + x0p = [1., p2rvs.min()-5, 1] + print(optimize.fmin(logmps,x0p,args=argsp)) + print(stats.pareto.fit(p2rvs, 0.5, loc=-20, scale=0.5)) + print('gpdparest_ mle', stats.genpareto.fit(p2rvs)) + parsgpd = fit_mps(stats.genpareto, p2rvs) + print('gpdparest_ mps', parsgpd) + argsgpd = (p2rvssorted, stats.genpareto) + options = dict(stepFix=1e-7) + #hess_ndt(fun, pars, argsgdp, options) + #the results for the following look strange, maybe refactoring error + he, h = hess_ndt(logmps, parsgpd, argsgpd, options) + print(np.linalg.eigh(he)[0]) + f = lambda params: logmps(params, *argsgpd) + print(f(parsgpd)) + #add binned + fp2, bp2 = np.histogram(p2rvs, bins=50) + 'fitbinned t-distribution' + gpdparest_mlebinel = fitbinned(stats.genpareto, fp2, bp2, x0p) + gpdparest_gmmbinelidentity = fitbinnedgmm(stats.genpareto, fp2, bp2, x0p) + print('gpdparest_mlebinel', gpdparest_mlebinel) + print('gpdparest_gmmbinelidentity', gpdparest_gmmbinelidentity) + gpdparest_gmmquantile2 = fitquantilesgmm(stats.genpareto, p2rvs, start=x0p, pquant=None, frozen=None) + print('gpdparest_gmmquantile2', gpdparest_gmmquantile2) + #something wrong : something hard coded ? + ''' + >>> fitquantilesgmm(stats.genpareto, p2rvs, start=x0p, pquant=np.linspace(0.5,0.95,10), frozen=None) + Traceback (most recent call last): + File "", line 1, in + fitquantilesgmm(stats.genpareto, p2rvs, start=x0p, pquant=np.linspace(0.5,0.95,10), frozen=None) + File "C:\...\scikits\statsmodels\sandbox\stats\distribution_estimators.py", line 224, in fitquantilesgmm + parest = optimize.fmin(lambda params:np.sum(momentcondquant(distfn, params, mom2s,(pq,xqs), shape=None)**2), start) + File "c:\...\scipy-trunk_after\trunk\dist\scipy-0.8.0.dev6156.win32\programs\python25\lib\site-packages\scipy\optimize\optimize.py", line 183, in fmin + fsim[0] = func(x0) + File "c:\...\scipy-trunk_after\trunk\dist\scipy-0.8.0.dev6156.win32\programs\python25\lib\site-packages\scipy\optimize\optimize.py", line 103, in function_wrapper + return function(x, *args) + File "C:\...\scikits\statsmodels\sandbox\stats\distribution_estimators.py", line 224, in + parest = optimize.fmin(lambda params:np.sum(momentcondquant(distfn, params, mom2s,(pq,xqs), shape=None)**2), start) + File "C:\...\scikits\statsmodels\sandbox\stats\distribution_estimators.py", line 210, in momentcondquant + cdfdiff = distfn.cdf(xq, *params) - pq + ValueError: shape mismatch: objects cannot be broadcast to a single shape + ''' + print(fitquantilesgmm(stats.genpareto, p2rvs, start=x0p, + pquant=np.linspace(0.01,0.99,10), frozen=None)) + fp2, bp2 = np.histogram(p2rvs, + bins=stats.genpareto(2).ppf(np.linspace(0,0.99,10))) + print('fitbinnedgmm equal weight bins') + print(fitbinnedgmm(stats.genpareto, fp2, bp2, x0p)) diff --git a/statsmodels/sandbox/distributions/examples/__init__.py b/statsmodels/sandbox/distributions/examples/__init__.py new file mode 100644 index 0000000..792d600 --- /dev/null +++ b/statsmodels/sandbox/distributions/examples/__init__.py @@ -0,0 +1 @@ +# diff --git a/statsmodels/sandbox/distributions/examples/ex_extras.py b/statsmodels/sandbox/distributions/examples/ex_extras.py new file mode 100644 index 0000000..9ab22c8 --- /dev/null +++ b/statsmodels/sandbox/distributions/examples/ex_extras.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +""" + +Created on Wed Feb 19 12:39:49 2014 + +Author: Josef Perktold +""" + +import numpy as np +from scipy import stats + +from statsmodels.sandbox.distributions.extras import (SkewNorm_gen, skewnorm, + ACSkewT_gen, + NormExpan_gen, pdf_moments, + ExpTransf_gen, LogTransf_gen) +from statsmodels.stats.moment_helpers import mc2mvsk, mnc2mc, mvsk2mnc + + +def example_n(): + + print(skewnorm.pdf(1,0), stats.norm.pdf(1), skewnorm.pdf(1,0) - stats.norm.pdf(1)) + print(skewnorm.pdf(1,1000), stats.chi.pdf(1,1), skewnorm.pdf(1,1000) - stats.chi.pdf(1,1)) + print(skewnorm.pdf(-1,-1000), stats.chi.pdf(1,1), skewnorm.pdf(-1,-1000) - stats.chi.pdf(1,1)) + rvs = skewnorm.rvs(0,size=500) + print('sample mean var: ', rvs.mean(), rvs.var()) + print('theoretical mean var', skewnorm.stats(0)) + rvs = skewnorm.rvs(5,size=500) + print('sample mean var: ', rvs.mean(), rvs.var()) + print('theoretical mean var', skewnorm.stats(5)) + print(skewnorm.cdf(1,0), stats.norm.cdf(1), skewnorm.cdf(1,0) - stats.norm.cdf(1)) + print(skewnorm.cdf(1,1000), stats.chi.cdf(1,1), skewnorm.cdf(1,1000) - stats.chi.cdf(1,1)) + print(skewnorm.sf(0.05,1000), stats.chi.sf(0.05,1), skewnorm.sf(0.05,1000) - stats.chi.sf(0.05,1)) + + +def example_T(): + skewt = ACSkewT_gen() + rvs = skewt.rvs(10,0,size=500) + print('sample mean var: ', rvs.mean(), rvs.var()) + print('theoretical mean var', skewt.stats(10,0)) + print('t mean var', stats.t.stats(10)) + print(skewt.stats(10,1000)) # -> folded t distribution, as alpha -> inf + rvs = np.abs(stats.t.rvs(10,size=1000)) + print(rvs.mean(), rvs.var()) + + + +def examples_normexpand(): + skewnorm = SkewNorm_gen() + rvs = skewnorm.rvs(5,size=100) + normexpan = NormExpan_gen(rvs, mode='sample') + + smvsk = stats.describe(rvs)[2:] + print('sample: mu,sig,sk,kur') + print(smvsk) + + dmvsk = normexpan.stats(moments='mvsk') + print('normexpan: mu,sig,sk,kur') + print(dmvsk) + print('mvsk diff distribution - sample') + print(np.array(dmvsk) - np.array(smvsk)) + print('normexpan attributes mvsk') + print(mc2mvsk(normexpan.cnt)) + print(normexpan.mvsk) + + mnc = mvsk2mnc(dmvsk) + mc = mnc2mc(mnc) + print('central moments') + print(mc) + print('non-central moments') + print(mnc) + + + pdffn = pdf_moments(mc) + print('\npdf approximation from moments') + print('pdf at', mc[0]-1,mc[0]+1) + print(pdffn([mc[0]-1,mc[0]+1])) + print(normexpan.pdf([mc[0]-1,mc[0]+1])) + + +def examples_transf(): + ##lognormal = ExpTransf(a=0.0, xa=-10.0, name = 'Log transformed normal') + ##print(lognormal.cdf(1)) + ##print(stats.lognorm.cdf(1,1)) + ##print(lognormal.stats()) + ##print(stats.lognorm.stats(1)) + ##print(lognormal.rvs(size=10)) + + print('Results for lognormal') + lognormalg = ExpTransf_gen(stats.norm, a=0, name = 'Log transformed normal general') + print(lognormalg.cdf(1)) + print(stats.lognorm.cdf(1,1)) + print(lognormalg.stats()) + print(stats.lognorm.stats(1)) + print(lognormalg.rvs(size=5)) + + ##print('Results for loggamma') + ##loggammag = ExpTransf_gen(stats.gamma) + ##print(loggammag._cdf(1,10)) + ##print(stats.loggamma.cdf(1,10)) + + print('Results for expgamma') + loggammaexpg = LogTransf_gen(stats.gamma) + print(loggammaexpg._cdf(1,10)) + print(stats.loggamma.cdf(1,10)) + print(loggammaexpg._cdf(2,15)) + print(stats.loggamma.cdf(2,15)) + + + # this requires change in scipy.stats.distribution + #print(loggammaexpg.cdf(1,10)) + + print('Results for loglaplace') + loglaplaceg = LogTransf_gen(stats.laplace) + print(loglaplaceg._cdf(2)) + print(stats.loglaplace.cdf(2,1)) + loglaplaceexpg = ExpTransf_gen(stats.laplace) + print(loglaplaceexpg._cdf(2)) + stats.loglaplace.cdf(3,3) + #0.98148148148148151 + loglaplaceexpg._cdf(3,0,1./3) + #0.98148148148148151 + +if __name__ == '__main__': + example_n() + example_T() + examples_normexpand() + examples_transf() diff --git a/statsmodels/sandbox/distributions/examples/ex_fitfr.py b/statsmodels/sandbox/distributions/examples/ex_fitfr.py new file mode 100644 index 0000000..d98ad4c --- /dev/null +++ b/statsmodels/sandbox/distributions/examples/ex_fitfr.py @@ -0,0 +1,29 @@ +'''Example for estimating distribution parameters when some are fixed. + +This uses currently a patched version of the distributions, two methods are +added to the continuous distributions. This has no side effects. +It also adds bounds to vonmises, which changes the behavior of it for some +methods. + +''' + +from __future__ import print_function +import numpy as np +from scipy import stats +#Note the following import attaches methods to scipy.stats.distributions +# and adds bounds to stats.vonmises +from statsmodels.sandbox.distributions import sppatch + + +np.random.seed(12345) +x = stats.gamma.rvs(2.5, loc=0, scale=1.2, size=200) + +#estimate all parameters +print(stats.gamma.fit(x)) +print(stats.gamma.fit_fr(x, frozen=[np.nan, np.nan, np.nan])) +#estimate shape parameter only +print(stats.gamma.fit_fr(x, frozen=[np.nan, 0., 1.2])) + +np.random.seed(12345) +x = stats.lognorm.rvs(2, loc=0, scale=2, size=200) +print(stats.lognorm.fit_fr(x, frozen=[np.nan, 0., np.nan])) diff --git a/statsmodels/sandbox/distributions/examples/ex_gof.py b/statsmodels/sandbox/distributions/examples/ex_gof.py new file mode 100644 index 0000000..408b5c7 --- /dev/null +++ b/statsmodels/sandbox/distributions/examples/ex_gof.py @@ -0,0 +1,13 @@ +from __future__ import print_function +import numpy as np +from scipy import stats +from statsmodels.stats import gof + +poissrvs = stats.poisson.rvs(0.6, size = 200) + +freq, expfreq, histsupp = gof.gof_binning_discrete(poissrvs, stats.poisson, (0.6,), nsupp=20) +(chi2val, pval) = stats.chisquare(freq, expfreq) +print(chi2val, pval) + +print(gof.gof_chisquare_discrete(stats.poisson, (0.6,), poissrvs, 0.05, + 'Poisson')) diff --git a/statsmodels/sandbox/distributions/examples/ex_mvelliptical.py b/statsmodels/sandbox/distributions/examples/ex_mvelliptical.py new file mode 100644 index 0000000..7b85ab2 --- /dev/null +++ b/statsmodels/sandbox/distributions/examples/ex_mvelliptical.py @@ -0,0 +1,164 @@ +# -*- coding: utf-8 -*- +"""examples for multivariate normal and t distributions + + +Created on Fri Jun 03 16:00:26 2011 + +@author: josef + + +for comparison I used R mvtnorm version 0.9-96 + +""" +from __future__ import print_function +import numpy as np +import statsmodels.sandbox.distributions.mv_normal as mvd + +from numpy.testing import assert_array_almost_equal + +cov3 = np.array([[ 1. , 0.5 , 0.75], + [ 0.5 , 1.5 , 0.6 ], + [ 0.75, 0.6 , 2. ]]) + +mu = np.array([-1, 0.0, 2.0]) + +#************** multivariate normal distribution *************** + +mvn3 = mvd.MVNormal(mu, cov3) + +#compare with random sample +x = mvn3.rvs(size=1000000) + +xli = [[2., 1., 1.5], + [0., 2., 1.5], + [1.5, 1., 2.5], + [0., 1., 1.5]] + +xliarr = np.asarray(xli).T[None,:, :] + +#from R session +#pmvnorm(lower=-Inf,upper=(x[0,.]-mu)/sqrt(diag(cov3)),mean=rep(0,3),corr3) +r_cdf = [0.3222292, 0.3414643, 0.5450594, 0.3116296] +r_cdf_errors = [1.715116e-05, 1.590284e-05, 5.356471e-05, 3.567548e-05] +n_cdf = [mvn3.cdf(a) for a in xli] +assert_array_almost_equal(r_cdf, n_cdf, decimal=4) + +print(n_cdf) +print('') +print((x>> np.random.seed(464239857) + >>> rvstsq = squaretg.rvs(10,size=100000) + >>> squaretg.moment(4,10) + 2734.3750000000009 + >>> (rvstsq**4).mean() + 2739.672765170933 + >>> squaretg.moment(3,10) + 78.124999999997044 + >>> (rvstsq**3).mean() + 84.13950048850549 + >>> squaretg.stats(10, moments='mvsk') + (array(1.2500000000000022), array(4.6874999999630909), array(5.7735026919777912), array(106.00000000170148)) + >>> stats.describe(rvstsq) + (100000, (3.2953470738423724e-009, 92.649615690914473), 1.2534924690963247, 4.7741427958594098, 6.1562177957041895, 100.99331166052181) + ''' + # checking the distribution + # fraction of observations in each decile + dec = squaretg.ppf(np.linspace(0.,1,11),10) + freq,edges = np.histogram(rvstsq, bins=dec) + print(freq/float(len(rvstsq))) + + import matplotlib.pyplot as plt + freq,edges,_ = plt.hist(rvstsq, bins=50, range=(0,4),normed=True) + edges += (edges[1]-edges[0])/2.0 + plt.plot(edges[:-1], squaretg.pdf(edges[:-1], 10), 'r') + #plt.show() + #plt.close() + + ''' + >>> plt.plot(edges[:-1], squaretg.pdf(edges[:-1], 10), 'r') + [] + >>> plt.fill(edges[4:8], squaretg.pdf(edges[4:8], 10), 'r') + [] + >>> plt.show() + >>> plt.fill_between(edges[4:8], squaretg.pdf(edges[4:8], 10), y2=0, 'r') + SyntaxError: non-keyword arg after keyword arg (, line 1) + >>> plt.fill_between(edges[4:8], squaretg.pdf(edges[4:8], 10), 0, 'r') + Traceback (most recent call last): + AttributeError: 'module' object has no attribute 'fill_between' + >>> fig = figure() + Traceback (most recent call last): + NameError: name 'figure' is not defined + >>> ax1 = fig.add_subplot(311) + Traceback (most recent call last): + NameError: name 'fig' is not defined + >>> fig = plt.figure() + >>> ax1 = fig.add_subplot(111) + >>> ax1.fill_between(edges[4:8], squaretg.pdf(edges[4:8], 10), 0, 'r') + Traceback (most recent call last): + AttributeError: 'AxesSubplot' object has no attribute 'fill_between' + >>> ax1.fill(edges[4:8], squaretg.pdf(edges[4:8], 10), 0, 'r') + Traceback (most recent call last): + ''' + + import nose + nose.runmodule(argv=['__main__','-vvs','-x'],#,'--pdb', '--pdb-failure'], + exit=False) diff --git a/statsmodels/sandbox/distributions/examples/matchdist.py b/statsmodels/sandbox/distributions/examples/matchdist.py new file mode 100644 index 0000000..fcf703f --- /dev/null +++ b/statsmodels/sandbox/distributions/examples/matchdist.py @@ -0,0 +1,263 @@ +'''given a 1D sample of observation, find a matching distribution + +* estimate maximum likelihood paramater for each distribution +* rank estimated distribution by Kolmogorov-Smirnov and Anderson-Darling + test statistics + +Author: Josef Pktd +License: Simplified BSD +original December 2008 + +TODO: + +* refactor to result class +* split estimation by support, add option and choose automatically +* + +''' +from __future__ import print_function +from scipy import stats +import numpy as np +import matplotlib.mlab as mlab +import matplotlib.pyplot as plt + +#stats.distributions.beta_gen._fitstart = lambda self, data : (5,5,0,1) + +def plothist(x,distfn, args, loc, scale, right=1): + + plt.figure() + # the histogram of the data + n, bins, patches = plt.hist(x, 25, normed=1, facecolor='green', alpha=0.75) + maxheight = max([p.get_height() for p in patches]) + print(maxheight) + axlim = list(plt.axis()) + #print(axlim) + axlim[-1] = maxheight*1.05 + #plt.axis(tuple(axlim)) +## print(bins) +## print('args in plothist', args) + # add a 'best fit' line + #yt = stats.norm.pdf( bins, loc=loc, scale=scale) + yt = distfn.pdf( bins, loc=loc, scale=scale, *args) + yt[yt>maxheight]=maxheight + lt = plt.plot(bins, yt, 'r--', linewidth=1) + ys = stats.t.pdf( bins, 10,scale=10,)*right + ls = plt.plot(bins, ys, 'b-', linewidth=1) + + plt.xlabel('Smarts') + plt.ylabel('Probability') + plt.title(r'$\mathrm{Testing: %s :}\ \mu=%f,\ \sigma=%f$'%(distfn.name,loc,scale)) + + #plt.axis([bins[0], bins[-1], 0, 0.134+0.05]) + + plt.grid(True) + plt.draw() + #plt.show() + #plt.close() + + + + + +#targetdist = ['norm','t','truncnorm','johnsonsu','johnsonsb', +targetdist = ['norm','alpha', 'anglit', 'arcsine', + 'beta', 'betaprime', 'bradford', 'burr', 'fisk', 'cauchy', + 'chi', 'chi2', 'cosine', 'dgamma', 'dweibull', 'erlang', + 'expon', 'exponweib', 'exponpow', 'fatiguelife', 'foldcauchy', + 'f', 'foldnorm', 'frechet_r', 'weibull_min', 'frechet_l', + 'weibull_max', 'genlogistic', 'genpareto', 'genexpon', 'genextreme', + 'gamma', 'gengamma', 'genhalflogistic', 'gompertz', 'gumbel_r', + 'gumbel_l', 'halfcauchy', 'halflogistic', 'halfnorm', 'hypsecant', + 'gausshyper', 'invgamma', 'invnorm', 'invweibull', 'johnsonsb', + 'johnsonsu', 'laplace', 'levy', 'levy_l', + 'logistic', 'loggamma', 'loglaplace', 'lognorm', 'gilbrat', + 'maxwell', 'mielke', 'nakagami', 'ncx2', 'ncf', 't', + 'nct', 'pareto', 'lomax', 'powerlaw', 'powerlognorm', 'powernorm', + 'rdist', 'rayleigh', 'reciprocal', 'rice', 'recipinvgauss', + 'semicircular', 'triang', 'truncexpon', 'truncnorm', + 'tukeylambda', 'uniform', 'vonmises', 'wald', 'wrapcauchy', + + 'binom', 'bernoulli', 'nbinom', 'geom', 'hypergeom', 'logser', + 'poisson', 'planck', 'boltzmann', 'randint', 'zipf', 'dlaplace'] + +left = [] +right = [] +finite = [] +unbound = [] +other = [] +contdist = [] +discrete = [] + +categ = {('open','open'):'unbound', ('0','open'):'right',('open','0',):'left', + ('finite','finite'):'finite',('oth','oth'):'other'} +categ = {('open','open'):unbound, ('0','open'):right,('open','0',):left, + ('finite','finite'):finite,('oth','oth'):other} + +categ2 = { + ('open', '0') : ['frechet_l', 'weibull_max', 'levy_l'], + ('finite', 'finite') : ['anglit', 'cosine', 'rdist', 'semicircular'], + ('0', 'open') : ['alpha', 'burr', 'fisk', 'chi', 'chi2', 'erlang', + 'expon', 'exponweib', 'exponpow', 'fatiguelife', 'foldcauchy', 'f', + 'foldnorm', 'frechet_r', 'weibull_min', 'genpareto', 'genexpon', + 'gamma', 'gengamma', 'genhalflogistic', 'gompertz', 'halfcauchy', + 'halflogistic', 'halfnorm', 'invgamma', 'invnorm', 'invweibull', + 'levy', 'loglaplace', 'lognorm', 'gilbrat', 'maxwell', 'mielke', + 'nakagami', 'ncx2', 'ncf', 'lomax', 'powerlognorm', 'rayleigh', + 'rice', 'recipinvgauss', 'truncexpon', 'wald'], + ('open', 'open') : ['cauchy', 'dgamma', 'dweibull', 'genlogistic', 'genextreme', + 'gumbel_r', 'gumbel_l', 'hypsecant', 'johnsonsu', 'laplace', + 'logistic', 'loggamma', 't', 'nct', 'powernorm', 'reciprocal', + 'truncnorm', 'tukeylambda', 'vonmises'], + ('0', 'finite') : ['arcsine', 'beta', 'betaprime', 'bradford', 'gausshyper', + 'johnsonsb', 'powerlaw', 'triang', 'uniform', 'wrapcauchy'], + ('finite', 'open') : ['pareto'] + } + +#Note: weibull_max == frechet_l + +right_incorrect = ['genextreme'] + +right_all = categ2[('0', 'open')] + categ2[('0', 'finite')] + categ2[('finite', 'open')]\ + + right_incorrect + +for distname in targetdist: + distfn = getattr(stats,distname) + if hasattr(distfn,'_pdf'): + if np.isinf(distfn.a): + low = 'open' + elif distfn.a == 0: + low = '0' + else: + low = 'finite' + if np.isinf(distfn.b): + high = 'open' + elif distfn.b == 0: + high = '0' + else: + high = 'finite' + contdist.append(distname) + categ.setdefault((low,high),[]).append(distname) + +not_good = ['genextreme', 'reciprocal', 'vonmises'] +# 'genextreme' is right (or left?), 'reciprocal' requires 00] + rightfactor = 1 + rvs_right = rvs_pos + print('='*50) + print('samplesize = ', n) + for distname in targetdist: + distfn = getattr(stats,distname) + if distname in right_all: + rvs = rvs_right + rind = rightfactor + + else: + rvs = rvs_orig + rind = 1 + print('-'*30) + print('target = %s' % distname) + sm = rvs.mean() + sstd = np.sqrt(rvs.var()) + ssupp = (rvs.min(), rvs.max()) + if distname in ['truncnorm','betaprime','reciprocal']: + + par0 = (sm-2*sstd,sm+2*sstd) + par_est = tuple(distfn.fit(rvs,loc=sm,scale=sstd,*par0)) + elif distname == 'norm': + par_est = tuple(distfn.fit(rvs,loc=sm,scale=sstd)) + elif distname == 'genextreme': + par_est = tuple(distfn.fit(rvs,-5,loc=sm,scale=sstd)) + elif distname == 'wrapcauchy': + par_est = tuple(distfn.fit(rvs,0.5,loc=0,scale=sstd)) + elif distname == 'f':\ + par_est = tuple(distfn.fit(rvs,10,15,loc=0,scale=1)) + + elif distname in right: + sm = rvs.mean() + sstd = np.sqrt(rvs.var()) + par_est = tuple(distfn.fit(rvs,loc=0,scale=1)) + else: + sm = rvs.mean() + sstd = np.sqrt(rvs.var()) + par_est = tuple(distfn.fit(rvs,loc=sm,scale=sstd)) + + + print('fit', par_est) + arg_est = par_est[:-2] + loc_est = par_est[-2] + scale_est = par_est[-1] + rvs_normed = (rvs-loc_est)/scale_est + ks_stat, ks_pval = stats.kstest(rvs_normed,distname, arg_est) + print('kstest', ks_stat, ks_pval) + quant = 0.1 + crit = distfn.ppf(1-quant*float(rind), loc=loc_est, scale=scale_est,*par_est) + tail_prob = stats.t.sf(crit,dgp_arg,scale=dgp_scale) + print('crit, prob', quant, crit, tail_prob) + #if distname == 'norm': + #plothist(rvs,loc_est,scale_est) + #args = tuple() + results.append([distname,ks_stat, ks_pval,arg_est,loc_est,scale_est,crit,tail_prob ]) + #plothist(rvs,distfn,arg_est,loc_est,scale_est) + + #plothist(rvs,distfn,arg_est,loc_est,scale_est) + #plt.show() + #plt.close() + #TODO: collect results and compare tail quantiles + + + from operator import itemgetter + + res_sort = sorted(results, key = itemgetter(2)) + + res_sort.reverse() #kstest statistic: smaller is better, pval larger is better + + print('number of distributions', len(res_sort)) + imagedir = 'matchresults' + import os + if not os.path.exists(imagedir): + os.makedirs(imagedir) + + for ii,di in enumerate(res_sort): + distname,ks_stat, ks_pval,arg_est,loc_est,scale_est,crit,tail_prob = di[:] + distfn = getattr(stats,distname) + if distname in right_all: + rvs = rvs_right + rind = rightfactor + ri = 'r' + else: + rvs = rvs_orig + ri = '' + rind = 1 + print('%s ks-stat = %f, ks-pval = %f tail_prob = %f)' % \ + (distname, ks_stat, ks_pval, tail_prob)) + ## print('arg_est = %s, loc_est = %f scale_est = %f)' % \ + ## (repr(arg_est),loc_est,scale_est)) + plothist(rvs,distfn,arg_est,loc_est,scale_est,right = rind) + plt.savefig(os.path.join(imagedir,'%s%s%02d_%s.png'% (prefix, ri,ii, distname))) + ##plt.show() + ##plt.close() + diff --git a/statsmodels/sandbox/distributions/extras.py b/statsmodels/sandbox/distributions/extras.py new file mode 100644 index 0000000..f22ab9d --- /dev/null +++ b/statsmodels/sandbox/distributions/extras.py @@ -0,0 +1,1147 @@ +'''Various extensions to distributions + +* skew normal and skew t distribution by Azzalini, A. & Capitanio, A. +* Gram-Charlier expansion distribution (using 4 moments), +* distributions based on non-linear transformation + - Transf_gen + - ExpTransf_gen, LogTransf_gen + - TransfTwo_gen + (defines as examples: square, negative square and abs transformations) + - this versions are without __new__ +* mnvormcdf, mvstdnormcdf : cdf, rectangular integral for multivariate normal + distribution + +TODO: +* Where is Transf_gen for general monotonic transformation ? found and added it +* write some docstrings, some parts I don't remember +* add Box-Cox transformation, parameterized ? + + +this is only partially cleaned, still includes test examples as functions + +main changes +* add transf_gen (2010-05-09) +* added separate example and tests (2010-05-09) +* collect transformation function into classes + +Example +------- + +>>> logtg = Transf_gen(stats.t, np.exp, np.log, + numargs = 1, a=0, name = 'lnnorm', + longname = 'Exp transformed normal', + extradoc = '\ndistribution of y = exp(x), with x standard normal' + 'precision for moment andstats is not very high, 2-3 decimals') +>>> logtg.cdf(5, 6) +0.92067704211191848 +>>> stats.t.cdf(np.log(5), 6) +0.92067704211191848 + +>>> logtg.pdf(5, 6) +0.021798547904239293 +>>> stats.t.pdf(np.log(5), 6) +0.10899273954837908 +>>> stats.t.pdf(np.log(5), 6)/5. #derivative +0.021798547909675815 + + +Author: josef-pktd +License: BSD + +''' + +#note copied from distr_skewnorm_0.py + +from __future__ import print_function +from statsmodels.compat.python import range, iteritems +from scipy import stats, special, integrate # integrate is for scipy 0.6.0 ??? +from scipy.stats import distributions +from statsmodels.stats.moment_helpers import mvsk2mc, mc2mvsk +import numpy as np + +class SkewNorm_gen(distributions.rv_continuous): + '''univariate Skew-Normal distribution of Azzalini + + class follows scipy.stats.distributions pattern + but with __init__ + + + ''' + def __init__(self): + #super(SkewNorm_gen,self).__init__( + distributions.rv_continuous.__init__(self, + name = 'Skew Normal distribution', shapes = 'alpha', + extradoc = ''' ''' ) + + def _argcheck(self, alpha): + return 1 #(alpha >= 0) + + def _rvs(self, alpha): + # see http://azzalini.stat.unipd.it/SN/faq.html + delta = alpha/np.sqrt(1+alpha**2) + u0 = stats.norm.rvs(size=self._size) + u1 = delta*u0 + np.sqrt(1-delta**2)*stats.norm.rvs(size=self._size) + return np.where(u0>0, u1, -u1) + + def _munp(self, n, alpha): + # use pdf integration with _mom0_sc if only _pdf is defined. + # default stats calculation uses ppf, which is much slower + return self._mom0_sc(n, alpha) + + def _pdf(self,x,alpha): + # 2*normpdf(x)*normcdf(alpha*x) + return 2.0/np.sqrt(2*np.pi)*np.exp(-x**2/2.0) * special.ndtr(alpha*x) + + def _stats_skip(self,x,alpha,moments='mvsk'): + #skip for now to force moment integration as check + pass + +skewnorm = SkewNorm_gen() + + +# generated the same way as distributions in stats.distributions +class SkewNorm2_gen(distributions.rv_continuous): + '''univariate Skew-Normal distribution of Azzalini + + class follows scipy.stats.distributions pattern + + ''' + def _argcheck(self, alpha): + return 1 #where(alpha>=0, 1, 0) + + def _pdf(self,x,alpha): + # 2*normpdf(x)*normcdf(alpha*x + return 2.0/np.sqrt(2*np.pi)*np.exp(-x**2/2.0) * special.ndtr(alpha*x) + +skewnorm2 = SkewNorm2_gen(name = 'Skew Normal distribution', shapes = 'alpha', + extradoc = ''' -inf < alpha < inf''') + + + +class ACSkewT_gen(distributions.rv_continuous): + '''univariate Skew-T distribution of Azzalini + + class follows scipy.stats.distributions pattern + but with __init__ + ''' + def __init__(self): + #super(SkewT_gen,self).__init__( + distributions.rv_continuous.__init__(self, + name = 'Skew T distribution', shapes = 'df, alpha', + extradoc = ''' +Skewed T distribution by Azzalini, A. & Capitanio, A. (2003)_ + +the pdf is given by: + pdf(x) = 2.0 * t.pdf(x, df) * t.cdf(df+1, alpha*x*np.sqrt((1+df)/(x**2+df))) + +with alpha >=0 + +Note: different from skewed t distribution by Hansen 1999 +.._ +Azzalini, A. & Capitanio, A. (2003), Distributions generated by perturbation of +symmetry with emphasis on a multivariate skew-t distribution, +appears in J.Roy.Statist.Soc, series B, vol.65, pp.367-389 + +''' ) + + def _argcheck(self, df, alpha): + return (alpha == alpha)*(df>0) + +## def _arg_check(self, alpha): +## return np.where(alpha>=0, 0, 1) +## def _argcheck(self, alpha): +## return np.where(alpha>=0, 1, 0) + + def _rvs(self, df, alpha): + # see http://azzalini.stat.unipd.it/SN/faq.html + #delta = alpha/np.sqrt(1+alpha**2) + V = stats.chi2.rvs(df, size=self._size) + z = skewnorm.rvs(alpha, size=self._size) + return z/np.sqrt(V/df) + + def _munp(self, n, df, alpha): + # use pdf integration with _mom0_sc if only _pdf is defined. + # default stats calculation uses ppf + return self._mom0_sc(n, df, alpha) + + def _pdf(self, x, df, alpha): + # 2*normpdf(x)*normcdf(alpha*x) + return 2.0*distributions.t._pdf(x, df) * special.stdtr(df+1, alpha*x*np.sqrt((1+df)/(x**2+df))) + + +## +##def mvsk2cm(*args): +## mu,sig,sk,kur = args +## # Get central moments +## cnt = [None]*4 +## cnt[0] = mu +## cnt[1] = sig #*sig +## cnt[2] = sk * sig**1.5 +## cnt[3] = (kur+3.0) * sig**2.0 +## return cnt +## +## +##def mvsk2m(args): +## mc, mc2, skew, kurt = args#= self._stats(*args,**mdict) +## mnc = mc +## mnc2 = mc2 + mc*mc +## mc3 = skew*(mc2**1.5) # 3rd central moment +## mnc3 = mc3+3*mc*mc2+mc**3 # 3rd non-central moment +## mc4 = (kurt+3.0)*(mc2**2.0) # 4th central moment +## mnc4 = mc4+4*mc*mc3+6*mc*mc*mc2+mc**4 +## return (mc, mc2, mc3, mc4), (mnc, mnc2, mnc3, mnc4) +## +##def mc2mvsk(args): +## mc, mc2, mc3, mc4 = args +## skew = mc3 / mc2**1.5 +## kurt = mc4 / mc2**2.0 - 3.0 +## return (mc, mc2, skew, kurt) +## +##def m2mc(args): +## mnc, mnc2, mnc3, mnc4 = args +## mc = mnc +## mc2 = mnc2 - mnc*mnc +## #mc3 = skew*(mc2**1.5) # 3rd central moment +## mc3 = mnc3 - (3*mc*mc2+mc**3) # 3rd central moment +## #mc4 = (kurt+3.0)*(mc2**2.0) # 4th central moment +## mc4 = mnc4 - (4*mc*mc3+6*mc*mc*mc2+mc**4) +## return (mc, mc2, mc3, mc4) + + +from numpy import poly1d,sqrt, exp +import scipy +def _hermnorm(N): + # return the negatively normalized hermite polynomials up to order N-1 + # (inclusive) + # using the recursive relationship + # p_n+1 = p_n(x)' - x*p_n(x) + # and p_0(x) = 1 + plist = [None]*N + plist[0] = poly1d(1) + for n in range(1,N): + plist[n] = plist[n-1].deriv() - poly1d([1,0])*plist[n-1] + return plist + +def pdf_moments_st(cnt): + """Return the Gaussian expanded pdf function given the list of central + moments (first one is mean). + + version of scipy.stats, any changes ? + the scipy.stats version has a bug and returns normal distribution + + """ + + N = len(cnt) + if N < 2: + raise ValueError("At least two moments must be given to " + "approximate the pdf.") + + totp = poly1d(1) + sig = sqrt(cnt[1]) + mu = cnt[0] + if N > 2: + Dvals = _hermnorm(N+1) + for k in range(3,N+1): + # Find Ck + Ck = 0.0 + for n in range((k-3)/2): + m = k-2*n + if m % 2: # m is odd + momdiff = cnt[m-1] + else: + momdiff = cnt[m-1] - sig*sig*scipy.factorial2(m-1) + Ck += Dvals[k][m] / sig**m * momdiff + # Add to totp + raise SystemError + print(Dvals) + print(Ck) + totp = totp + Ck*Dvals[k] + + def thisfunc(x): + xn = (x-mu)/sig + return totp(xn)*exp(-xn*xn/2.0)/sqrt(2*np.pi)/sig + return thisfunc, totp + +def pdf_mvsk(mvsk): + """Return the Gaussian expanded pdf function given the list of 1st, 2nd + moment and skew and Fisher (excess) kurtosis. + + + + Parameters + ---------- + mvsk : list of mu, mc2, skew, kurt + distribution is matched to these four moments + + Returns + ------- + pdffunc : function + function that evaluates the pdf(x), where x is the non-standardized + random variable. + + + Notes + ----- + + Changed so it works only if four arguments are given. Uses explicit + formula, not loop. + + This implements a Gram-Charlier expansion of the normal distribution + where the first 2 moments coincide with those of the normal distribution + but skew and kurtosis can deviate from it. + + In the Gram-Charlier distribution it is possible that the density + becomes negative. This is the case when the deviation from the + normal distribution is too large. + + + + References + ---------- + http://en.wikipedia.org/wiki/Edgeworth_series + Johnson N.L., S. Kotz, N. Balakrishnan: Continuous Univariate + Distributions, Volume 1, 2nd ed., p.30 + """ + N = len(mvsk) + if N < 4: + raise ValueError("Four moments must be given to " + "approximate the pdf.") + + mu, mc2, skew, kurt = mvsk + + totp = poly1d(1) + sig = sqrt(mc2) + if N > 2: + Dvals = _hermnorm(N+1) + C3 = skew/6.0 + C4 = kurt/24.0 + # Note: Hermite polynomial for order 3 in _hermnorm is negative + # instead of positive + totp = totp - C3*Dvals[3] + C4*Dvals[4] + + def pdffunc(x): + xn = (x-mu)/sig + return totp(xn)*np.exp(-xn*xn/2.0)/np.sqrt(2*np.pi)/sig + return pdffunc + +def pdf_moments(cnt): + """Return the Gaussian expanded pdf function given the list of central + moments (first one is mean). + + Changed so it works only if four arguments are given. Uses explicit + formula, not loop. + + Notes + ----- + + This implements a Gram-Charlier expansion of the normal distribution + where the first 2 moments coincide with those of the normal distribution + but skew and kurtosis can deviate from it. + + In the Gram-Charlier distribution it is possible that the density + becomes negative. This is the case when the deviation from the + normal distribution is too large. + + + + References + ---------- + http://en.wikipedia.org/wiki/Edgeworth_series + Johnson N.L., S. Kotz, N. Balakrishnan: Continuous Univariate + Distributions, Volume 1, 2nd ed., p.30 + """ + N = len(cnt) + if N < 2: + raise ValueError("At least two moments must be given to " + "approximate the pdf.") + + + + mc, mc2, mc3, mc4 = cnt + skew = mc3 / mc2**1.5 + kurt = mc4 / mc2**2.0 - 3.0 # Fisher kurtosis, excess kurtosis + + totp = poly1d(1) + sig = sqrt(cnt[1]) + mu = cnt[0] + if N > 2: + Dvals = _hermnorm(N+1) +## for k in range(3,N+1): +## # Find Ck +## Ck = 0.0 +## for n in range((k-3)/2): +## m = k-2*n +## if m % 2: # m is odd +## momdiff = cnt[m-1] +## else: +## momdiff = cnt[m-1] - sig*sig*scipy.factorial2(m-1) +## Ck += Dvals[k][m] / sig**m * momdiff +## # Add to totp +## raise +## print Dvals +## print Ck +## totp = totp + Ck*Dvals[k] + C3 = skew/6.0 + C4 = kurt/24.0 + totp = totp - C3*Dvals[3] + C4*Dvals[4] + + def thisfunc(x): + xn = (x-mu)/sig + return totp(xn)*np.exp(-xn*xn/2.0)/np.sqrt(2*np.pi)/sig + return thisfunc + +class NormExpan_gen(distributions.rv_continuous): + '''Gram-Charlier Expansion of Normal distribution + + class follows scipy.stats.distributions pattern + but with __init__ + + ''' + def __init__(self,args, **kwds): + #todo: replace with super call + distributions.rv_continuous.__init__(self, + name = 'Normal Expansion distribution', shapes = ' ', + extradoc = ''' + The distribution is defined as the Gram-Charlier expansion of + the normal distribution using the first four moments. The pdf + is given by + + pdf(x) = (1+ skew/6.0 * H(xc,3) + kurt/24.0 * H(xc,4))*normpdf(xc) + + where xc = (x-mu)/sig is the standardized value of the random variable + and H(xc,3) and H(xc,4) are Hermite polynomials + + Note: This distribution has to be parameterized during + initialization and instantiation, and does not have a shape + parameter after instantiation (similar to frozen distribution + except for location and scale.) Location and scale can be used + as with other distributions, however note, that they are relative + to the initialized distribution. + ''' ) + #print args, kwds + mode = kwds.get('mode', 'sample') + + if mode == 'sample': + mu,sig,sk,kur = stats.describe(args)[2:] + self.mvsk = (mu,sig,sk,kur) + cnt = mvsk2mc((mu,sig,sk,kur)) + elif mode == 'mvsk': + cnt = mvsk2mc(args) + self.mvsk = args + elif mode == 'centmom': + cnt = args + self.mvsk = mc2mvsk(cnt) + else: + raise ValueError("mode must be 'mvsk' or centmom") + + self.cnt = cnt + #self.mvsk = (mu,sig,sk,kur) + #self._pdf = pdf_moments(cnt) + self._pdf = pdf_mvsk(self.mvsk) + + def _munp(self,n): + # use pdf integration with _mom0_sc if only _pdf is defined. + # default stats calculation uses ppf + return self._mom0_sc(n) + + def _stats_skip(self): + # skip for now to force numerical integration of pdf for testing + return self.mvsk + + +## copied from nonlinear_transform_gen.py + +''' A class for the distribution of a non-linear monotonic transformation of a continuous random variable + +simplest usage: +example: create log-gamma distribution, i.e. y = log(x), + where x is gamma distributed (also available in scipy.stats) + loggammaexpg = Transf_gen(stats.gamma, np.log, np.exp) + +example: what is the distribution of the discount factor y=1/(1+x) + where interest rate x is normally distributed with N(mux,stdx**2)')? + (just to come up with a story that implies a nice transformation) + invnormalg = Transf_gen(stats.norm, inversew, inversew_inv, decr=True, a=-np.inf) + +This class does not work well for distributions with difficult shapes, + e.g. 1/x where x is standard normal, because of the singularity and jump at zero. + +Note: I'm working from my version of scipy.stats.distribution. + But this script runs under scipy 0.6.0 (checked with numpy: 1.2.0rc2 and python 2.4) + +This is not yet thoroughly tested, polished or optimized + +TODO: + * numargs handling is not yet working properly, numargs needs to be specified (default = 0 or 1) + * feeding args and kwargs to underlying distribution is untested and incomplete + * distinguish args and kwargs for the transformed and the underlying distribution + - currently all args and no kwargs are transmitted to underlying distribution + - loc and scale only work for transformed, but not for underlying distribution + - possible to separate args for transformation and underlying distribution parameters + + * add _rvs as method, will be faster in many cases + + +Created on Tuesday, October 28, 2008, 12:40:37 PM +Author: josef-pktd +License: BSD + +''' + +from scipy import integrate # for scipy 0.6.0 + +from scipy import stats, info +from scipy.stats import distributions + + +def get_u_argskwargs(**kwargs): + #Todo: What's this? wrong spacing, used in Transf_gen TransfTwo_gen + u_kwargs = dict((k.replace('u_','',1),v) for k,v in iteritems(kwargs) + if k.startswith('u_')) + u_args = u_kwargs.pop('u_args',None) + return u_args, u_kwargs + +class Transf_gen(distributions.rv_continuous): + '''a class for non-linear monotonic transformation of a continuous random variable + + ''' + def __init__(self, kls, func, funcinv, *args, **kwargs): + #print args + #print kwargs + + self.func = func + self.funcinv = funcinv + #explicit for self.__dict__.update(kwargs) + #need to set numargs because inspection does not work + self.numargs = kwargs.pop('numargs', 0) + #print self.numargs + name = kwargs.pop('name','transfdist') + longname = kwargs.pop('longname','Non-linear transformed distribution') + extradoc = kwargs.pop('extradoc',None) + a = kwargs.pop('a', -np.inf) + b = kwargs.pop('b', np.inf) + self.decr = kwargs.pop('decr', False) + #defines whether it is a decreasing (True) + # or increasing (False) monotonic transformation + + + self.u_args, self.u_kwargs = get_u_argskwargs(**kwargs) + self.kls = kls #(self.u_args, self.u_kwargs) + # possible to freeze the underlying distribution + + super(Transf_gen,self).__init__(a=a, b=b, name = name, + longname = longname, extradoc = extradoc) + + def _rvs(self, *args, **kwargs): + self.kls._size = self._size + return self.funcinv(self.kls._rvs(*args)) + + + def _cdf(self,x,*args, **kwargs): + #print args + if not self.decr: + return self.kls._cdf(self.funcinv(x),*args, **kwargs) + #note scipy _cdf only take *args not *kwargs + else: + return 1.0 - self.kls._cdf(self.funcinv(x),*args, **kwargs) + def _ppf(self, q, *args, **kwargs): + if not self.decr: + return self.func(self.kls._ppf(q,*args, **kwargs)) + else: + return self.func(self.kls._ppf(1-q,*args, **kwargs)) + + +def inverse(x): + return np.divide(1.0,x) + +mux, stdx = 0.05, 0.1 +mux, stdx = 9.0, 1.0 +def inversew(x): + return 1.0/(1+mux+x*stdx) +def inversew_inv(x): + return (1.0/x - 1.0 - mux)/stdx #.np.divide(1.0,x)-10 + +def identit(x): + return x + +invdnormalg = Transf_gen(stats.norm, inversew, inversew_inv, decr=True, #a=-np.inf, + numargs = 0, name = 'discf', longname = 'normal-based discount factor', + extradoc = '\ndistribution of discount factor y=1/(1+x)) with x N(0.05,0.1**2)') + +lognormalg = Transf_gen(stats.norm, np.exp, np.log, + numargs = 2, a=0, name = 'lnnorm', + longname = 'Exp transformed normal', + extradoc = '\ndistribution of y = exp(x), with x standard normal' + 'precision for moment andstats is not very high, 2-3 decimals') + + +loggammaexpg = Transf_gen(stats.gamma, np.log, np.exp, numargs=1) + +## copied form nonlinear_transform_short.py + +'''univariate distribution of a non-linear monotonic transformation of a +random variable + +''' +from scipy import stats +from scipy.stats import distributions +import numpy as np + +class ExpTransf_gen(distributions.rv_continuous): + '''Distribution based on log/exp transformation + + the constructor can be called with a distribution class + and generates the distribution of the transformed random variable + + ''' + def __init__(self, kls, *args, **kwargs): + #print args + #print kwargs + #explicit for self.__dict__.update(kwargs) + if 'numargs' in kwargs: + self.numargs = kwargs['numargs'] + else: + self.numargs = 1 + if 'name' in kwargs: + name = kwargs['name'] + else: + name = 'Log transformed distribution' + if 'a' in kwargs: + a = kwargs['a'] + else: + a = 0 + super(ExpTransf_gen,self).__init__(a=0, name = name) + self.kls = kls + def _cdf(self,x,*args): + pass + #print args + return self.kls.cdf(np.log(x),*args) + def _ppf(self, q, *args): + return np.exp(self.kls.ppf(q,*args)) + +class LogTransf_gen(distributions.rv_continuous): + '''Distribution based on log/exp transformation + + the constructor can be called with a distribution class + and generates the distribution of the transformed random variable + + ''' + def __init__(self, kls, *args, **kwargs): + #explicit for self.__dict__.update(kwargs) + if 'numargs' in kwargs: + self.numargs = kwargs['numargs'] + else: + self.numargs = 1 + if 'name' in kwargs: + name = kwargs['name'] + else: + name = 'Log transformed distribution' + if 'a' in kwargs: + a = kwargs['a'] + else: + a = 0 + + super(LogTransf_gen,self).__init__(a=a, name = name) + self.kls = kls + + def _cdf(self,x, *args): + #print args + return self.kls._cdf(np.exp(x),*args) + def _ppf(self, q, *args): + return np.log(self.kls._ppf(q,*args)) + + +## copied from transformtwo.py + +''' +Created on Apr 28, 2009 + +@author: Josef Perktold +''' + +''' A class for the distribution of a non-linear u-shaped or hump shaped transformation of a +continuous random variable + +This is a companion to the distributions of non-linear monotonic transformation to the case +when the inverse mapping is a 2-valued correspondence, for example for absolute value or square + +simplest usage: +example: create squared distribution, i.e. y = x**2, + where x is normal or t distributed + + +This class does not work well for distributions with difficult shapes, + e.g. 1/x where x is standard normal, because of the singularity and jump at zero. + + +This verifies for normal - chi2, normal - halfnorm, foldnorm, and t - F + +TODO: + * numargs handling is not yet working properly, + numargs needs to be specified (default = 0 or 1) + * feeding args and kwargs to underlying distribution works in t distribution example + * distinguish args and kwargs for the transformed and the underlying distribution + - currently all args and no kwargs are transmitted to underlying distribution + - loc and scale only work for transformed, but not for underlying distribution + - possible to separate args for transformation and underlying distribution parameters + + * add _rvs as method, will be faster in many cases + +''' + + +class TransfTwo_gen(distributions.rv_continuous): + '''Distribution based on a non-monotonic (u- or hump-shaped transformation) + + the constructor can be called with a distribution class, and functions + that define the non-linear transformation. + and generates the distribution of the transformed random variable + + Note: the transformation, it's inverse and derivatives need to be fully + specified: func, funcinvplus, funcinvminus, derivplus, derivminus. + Currently no numerical derivatives or inverse are calculated + + This can be used to generate distribution instances similar to the + distributions in scipy.stats. + + ''' + #a class for non-linear non-monotonic transformation of a continuous random variable + def __init__(self, kls, func, funcinvplus, funcinvminus, derivplus, + derivminus, *args, **kwargs): + #print args + #print kwargs + + self.func = func + self.funcinvplus = funcinvplus + self.funcinvminus = funcinvminus + self.derivplus = derivplus + self.derivminus = derivminus + #explicit for self.__dict__.update(kwargs) + #need to set numargs because inspection does not work + self.numargs = kwargs.pop('numargs', 0) + #print self.numargs + name = kwargs.pop('name','transfdist') + longname = kwargs.pop('longname','Non-linear transformed distribution') + extradoc = kwargs.pop('extradoc',None) + a = kwargs.pop('a', -np.inf) # attached to self in super + b = kwargs.pop('b', np.inf) # self.a, self.b would be overwritten + self.shape = kwargs.pop('shape', False) + #defines whether it is a `u` shaped or `hump' shaped + # transformation + + + self.u_args, self.u_kwargs = get_u_argskwargs(**kwargs) + self.kls = kls #(self.u_args, self.u_kwargs) + # possible to freeze the underlying distribution + + super(TransfTwo_gen,self).__init__(a=a, b=b, name = name, + shapes = kls.shapes, + longname = longname, extradoc = extradoc) + + # add enough info for self.freeze() to be able to reconstruct the instance + try: + self._ctor_param.update(dict(kls=kls, func=func, + funcinvplus=funcinvplus, funcinvminus=funcinvminus, + derivplus=derivplus, derivminus=derivminus, + shape=self.shape)) + except AttributeError: + # scipy < 0.14 does not have this, ignore and do nothing + pass + + def _rvs(self, *args): + self.kls._size = self._size #size attached to self, not function argument + return self.func(self.kls._rvs(*args)) + + def _pdf(self,x,*args, **kwargs): + #print args + if self.shape == 'u': + signpdf = 1 + elif self.shape == 'hump': + signpdf = -1 + else: + raise ValueError('shape can only be `u` or `hump`') + + return signpdf * (self.derivplus(x)*self.kls._pdf(self.funcinvplus(x),*args, **kwargs) - + self.derivminus(x)*self.kls._pdf(self.funcinvminus(x),*args, **kwargs)) + #note scipy _cdf only take *args not *kwargs + + def _cdf(self,x,*args, **kwargs): + #print args + if self.shape == 'u': + return self.kls._cdf(self.funcinvplus(x),*args, **kwargs) - \ + self.kls._cdf(self.funcinvminus(x),*args, **kwargs) + #note scipy _cdf only take *args not *kwargs + else: + return 1.0 - self._sf(x,*args, **kwargs) + + def _sf(self,x,*args, **kwargs): + #print args + if self.shape == 'hump': + return self.kls._cdf(self.funcinvplus(x),*args, **kwargs) - \ + self.kls._cdf(self.funcinvminus(x),*args, **kwargs) + #note scipy _cdf only take *args not *kwargs + else: + return 1.0 - self._cdf(x, *args, **kwargs) + + def _munp(self, n,*args, **kwargs): + return self._mom0_sc(n,*args) +# ppf might not be possible in general case? +# should be possible in symmetric case +# def _ppf(self, q, *args, **kwargs): +# if self.shape == 'u': +# return self.func(self.kls._ppf(q,*args, **kwargs)) +# elif self.shape == 'hump': +# return self.func(self.kls._ppf(1-q,*args, **kwargs)) + +#TODO: rename these functions to have unique names + +class SquareFunc(object): + '''class to hold quadratic function with inverse function and derivative + + using instance methods instead of class methods, if we want extension + to parameterized function + ''' + def inverseplus(self, x): + return np.sqrt(x) + + def inverseminus(self, x): + return 0.0 - np.sqrt(x) + + def derivplus(self, x): + return 0.5/np.sqrt(x) + + def derivminus(self, x): + return 0.0 - 0.5/np.sqrt(x) + + def squarefunc(self, x): + return np.power(x,2) + +sqfunc = SquareFunc() + +squarenormalg = TransfTwo_gen(stats.norm, sqfunc.squarefunc, sqfunc.inverseplus, + sqfunc.inverseminus, sqfunc.derivplus, sqfunc.derivminus, + shape='u', a=0.0, b=np.inf, + numargs = 0, name = 'squarenorm', longname = 'squared normal distribution', + extradoc = '\ndistribution of the square of a normal random variable' +\ + ' y=x**2 with x N(0.0,1)') + #u_loc=l, u_scale=s) +squaretg = TransfTwo_gen(stats.t, sqfunc.squarefunc, sqfunc.inverseplus, + sqfunc.inverseminus, sqfunc.derivplus, sqfunc.derivminus, + shape='u', a=0.0, b=np.inf, + numargs = 1, name = 'squarenorm', longname = 'squared t distribution', + extradoc = '\ndistribution of the square of a t random variable' +\ + ' y=x**2 with x t(dof,0.0,1)') + +def inverseplus(x): + return np.sqrt(-x) + +def inverseminus(x): + return 0.0 - np.sqrt(-x) + +def derivplus(x): + return 0.0 - 0.5/np.sqrt(-x) + +def derivminus(x): + return 0.5/np.sqrt(-x) + +def negsquarefunc(x): + return -np.power(x,2) + + + +negsquarenormalg = TransfTwo_gen(stats.norm, negsquarefunc, inverseplus, inverseminus, + derivplus, derivminus, shape='hump', a=-np.inf, b=0.0, + numargs = 0, name = 'negsquarenorm', longname = 'negative squared normal distribution', + extradoc = '\ndistribution of the negative square of a normal random variable' +\ + ' y=-x**2 with x N(0.0,1)') + #u_loc=l, u_scale=s) + +def inverseplus(x): + return x + +def inverseminus(x): + return 0.0 - x + +def derivplus(x): + return 1.0 + +def derivminus(x): + return 0.0 - 1.0 + +def absfunc(x): + return np.abs(x) + + +absnormalg = TransfTwo_gen(stats.norm, np.abs, inverseplus, inverseminus, + derivplus, derivminus, shape='u', a=0.0, b=np.inf, + numargs = 0, name = 'absnorm', longname = 'absolute of normal distribution', + extradoc = '\ndistribution of the absolute value of a normal random variable' +\ + ' y=abs(x) with x N(0,1)') + + +#copied from mvncdf.py +'''multivariate normal probabilities and cumulative distribution function +a wrapper for scipy.stats.kde.mvndst + + + SUBROUTINE MVNDST( N, LOWER, UPPER, INFIN, CORREL, MAXPTS, + & ABSEPS, RELEPS, ERROR, VALUE, INFORM ) +* +* A subroutine for computing multivariate normal probabilities. +* This subroutine uses an algorithm given in the paper +* "Numerical Computation of Multivariate Normal Probabilities", in +* J. of Computational and Graphical Stat., 1(1992), pp. 141-149, by +* Alan Genz +* Department of Mathematics +* Washington State University +* Pullman, WA 99164-3113 +* Email : AlanGenz@wsu.edu +* +* Parameters +* +* N INTEGER, the number of variables. +* LOWER REAL, array of lower integration limits. +* UPPER REAL, array of upper integration limits. +* INFIN INTEGER, array of integration limits flags: +* if INFIN(I) < 0, Ith limits are (-infinity, infinity); +* if INFIN(I) = 0, Ith limits are (-infinity, UPPER(I)]; +* if INFIN(I) = 1, Ith limits are [LOWER(I), infinity); +* if INFIN(I) = 2, Ith limits are [LOWER(I), UPPER(I)]. +* CORREL REAL, array of correlation coefficients; the correlation +* coefficient in row I column J of the correlation matrix +* should be stored in CORREL( J + ((I-2)*(I-1))/2 ), for J < I. +* THe correlation matrix must be positive semidefinite. +* MAXPTS INTEGER, maximum number of function values allowed. This +* parameter can be used to limit the time. A sensible +* strategy is to start with MAXPTS = 1000*N, and then +* increase MAXPTS if ERROR is too large. +* ABSEPS REAL absolute error tolerance. +* RELEPS REAL relative error tolerance. +* ERROR REAL estimated absolute error, with 99% confidence level. +* VALUE REAL estimated value for the integral +* INFORM INTEGER, termination status parameter: +* if INFORM = 0, normal completion with ERROR < EPS; +* if INFORM = 1, completion with ERROR > EPS and MAXPTS +* function vaules used; increase MAXPTS to +* decrease ERROR; +* if INFORM = 2, N > 500 or N < 1. +* + + + +>>> scipy.stats.kde.mvn.mvndst([0.0,0.0],[10.0,10.0],[0,0],[0.5]) +(2e-016, 1.0, 0) +>>> scipy.stats.kde.mvn.mvndst([0.0,0.0],[100.0,100.0],[0,0],[0.0]) +(2e-016, 1.0, 0) +>>> scipy.stats.kde.mvn.mvndst([0.0,0.0],[1.0,1.0],[0,0],[0.0]) +(2e-016, 0.70786098173714096, 0) +>>> scipy.stats.kde.mvn.mvndst([0.0,0.0],[0.001,1.0],[0,0],[0.0]) +(2e-016, 0.42100802096993045, 0) +>>> scipy.stats.kde.mvn.mvndst([0.0,0.0],[0.001,10.0],[0,0],[0.0]) +(2e-016, 0.50039894221391101, 0) +>>> scipy.stats.kde.mvn.mvndst([0.0,0.0],[0.001,100.0],[0,0],[0.0]) +(2e-016, 0.50039894221391101, 0) +>>> scipy.stats.kde.mvn.mvndst([0.0,0.0],[0.01,100.0],[0,0],[0.0]) +(2e-016, 0.5039893563146316, 0) +>>> scipy.stats.kde.mvn.mvndst([0.0,0.0],[0.1,100.0],[0,0],[0.0]) +(2e-016, 0.53982783727702899, 0) +>>> scipy.stats.kde.mvn.mvndst([0.0,0.0],[0.1,100.0],[2,2],[0.0]) +(2e-016, 0.019913918638514494, 0) +>>> scipy.stats.kde.mvn.mvndst([0.0,0.0],[0.0,0.0],[0,0],[0.0]) +(2e-016, 0.25, 0) +>>> scipy.stats.kde.mvn.mvndst([0.0,0.0],[0.0,0.0],[-1,0],[0.0]) +(2e-016, 0.5, 0) +>>> scipy.stats.kde.mvn.mvndst([0.0,0.0],[0.0,0.0],[-1,0],[0.5]) +(2e-016, 0.5, 0) +>>> scipy.stats.kde.mvn.mvndst([0.0,0.0],[0.0,0.0],[0,0],[0.5]) +(2e-016, 0.33333333333333337, 0) +>>> scipy.stats.kde.mvn.mvndst([0.0,0.0],[0.0,0.0],[0,0],[0.99]) +(2e-016, 0.47747329317779391, 0) +''' + +#from scipy.stats import kde + +informcode = {0: 'normal completion with ERROR < EPS', + 1: '''completion with ERROR > EPS and MAXPTS function values used; + increase MAXPTS to decrease ERROR;''', + 2: 'N > 500 or N < 1'} + +def mvstdnormcdf(lower, upper, corrcoef, **kwds): + '''standardized multivariate normal cumulative distribution function + + This is a wrapper for scipy.stats.kde.mvn.mvndst which calculates + a rectangular integral over a standardized multivariate normal + distribution. + + This function assumes standardized scale, that is the variance in each dimension + is one, but correlation can be arbitrary, covariance = correlation matrix + + Parameters + ---------- + lower, upper : array_like, 1d + lower and upper integration limits with length equal to the number + of dimensions of the multivariate normal distribution. It can contain + -np.inf or np.inf for open integration intervals + corrcoef : float or array_like + specifies correlation matrix in one of three ways, see notes + optional keyword parameters to influence integration + * maxpts : int, maximum number of function values allowed. This + parameter can be used to limit the time. A sensible + strategy is to start with `maxpts` = 1000*N, and then + increase `maxpts` if ERROR is too large. + * abseps : float absolute error tolerance. + * releps : float relative error tolerance. + + Returns + ------- + cdfvalue : float + value of the integral + + + Notes + ----- + The correlation matrix corrcoef can be given in 3 different ways + If the multivariate normal is two-dimensional than only the + correlation coefficient needs to be provided. + For general dimension the correlation matrix can be provided either + as a one-dimensional array of the upper triangular correlation + coefficients stacked by rows, or as full square correlation matrix + + See Also + -------- + mvnormcdf : cdf of multivariate normal distribution without + standardization + + Examples + -------- + + >>> print mvstdnormcdf([-np.inf,-np.inf], [0.0,np.inf], 0.5) + 0.5 + >>> corr = [[1.0, 0, 0.5],[0,1,0],[0.5,0,1]] + >>> print mvstdnormcdf([-np.inf,-np.inf,-100.0], [0.0,0.0,0.0], corr, abseps=1e-6) + 0.166666399198 + >>> print mvstdnormcdf([-np.inf,-np.inf,-100.0],[0.0,0.0,0.0],corr, abseps=1e-8) + something wrong completion with ERROR > EPS and MAXPTS function values used; + increase MAXPTS to decrease ERROR; 1.048330348e-006 + 0.166666546218 + >>> print mvstdnormcdf([-np.inf,-np.inf,-100.0],[0.0,0.0,0.0], corr, + maxpts=100000, abseps=1e-8) + 0.166666588293 + + ''' + n = len(lower) + #don't know if converting to array is necessary, + #but it makes ndim check possible + lower = np.array(lower) + upper = np.array(upper) + corrcoef = np.array(corrcoef) + + correl = np.zeros(int(n*(n-1)/2.0)) #dtype necessary? + + if (lower.ndim != 1) or (upper.ndim != 1): + raise ValueError('can handle only 1D bounds') + if len(upper) != n: + raise ValueError('bounds have different lengths') + if n==2 and corrcoef.size==1: + correl = corrcoef + #print 'case scalar rho', n + elif corrcoef.ndim == 1 and len(corrcoef) == n*(n-1)/2.0: + #print 'case flat corr', corrcoeff.shape + correl = corrcoef + elif corrcoef.shape == (n,n): + #print 'case square corr', correl.shape + correl = corrcoef[np.tril_indices(n, -1)] +# for ii in range(n): +# for jj in range(ii): +# correl[ jj + ((ii-2)*(ii-1))/2] = corrcoef[ii,jj] + else: + raise ValueError('corrcoef has incorrect dimension') + + if not 'maxpts' in kwds: + if n >2: + kwds['maxpts'] = 10000*n + + lowinf = np.isneginf(lower) + uppinf = np.isposinf(upper) + infin = 2.0*np.ones(n) + + np.putmask(infin,lowinf,0)# infin.putmask(0,lowinf) + np.putmask(infin,uppinf,1) #infin.putmask(1,uppinf) + #this has to be last + np.putmask(infin,lowinf*uppinf,-1) + +## #remove infs +## np.putmask(lower,lowinf,-100)# infin.putmask(0,lowinf) +## np.putmask(upper,uppinf,100) #infin.putmask(1,uppinf) + + #print lower,',',upper,',',infin,',',correl + #print correl.shape + #print kwds.items() + error, cdfvalue, inform = scipy.stats.kde.mvn.mvndst(lower,upper,infin,correl,**kwds) + if inform: + print('something wrong', informcode[inform], error) + return cdfvalue + + +def mvnormcdf(upper, mu, cov, lower=None, **kwds): + '''multivariate normal cumulative distribution function + + This is a wrapper for scipy.stats.kde.mvn.mvndst which calculates + a rectangular integral over a multivariate normal distribution. + + Parameters + ---------- + lower, upper : array_like, 1d + lower and upper integration limits with length equal to the number + of dimensions of the multivariate normal distribution. It can contain + -np.inf or np.inf for open integration intervals + mu : array_lik, 1d + list or array of means + cov : array_like, 2d + specifies covariance matrix + optional keyword parameters to influence integration + * maxpts : int, maximum number of function values allowed. This + parameter can be used to limit the time. A sensible + strategy is to start with `maxpts` = 1000*N, and then + increase `maxpts` if ERROR is too large. + * abseps : float absolute error tolerance. + * releps : float relative error tolerance. + + Returns + ------- + cdfvalue : float + value of the integral + + + Notes + ----- + This function normalizes the location and scale of the multivariate + normal distribution and then uses `mvstdnormcdf` to call the integration. + + See Also + -------- + mvstdnormcdf : location and scale standardized multivariate normal cdf + ''' + + upper = np.array(upper) + if lower is None: + lower = -np.ones(upper.shape) * np.inf + else: + lower = np.array(lower) + cov = np.array(cov) + stdev = np.sqrt(np.diag(cov)) # standard deviation vector + #do I need to make sure stdev is float and not int? + #is this correct to normalize to corr? + lower = (lower - mu)/stdev + upper = (upper - mu)/stdev + divrow = np.atleast_2d(stdev) + corr = cov/divrow/divrow.T + #v/np.sqrt(np.atleast_2d(np.diag(covv)))/np.sqrt(np.atleast_2d(np.diag(covv))).T + + return mvstdnormcdf(lower, upper, corr, **kwds) + + + + +if __name__ == '__main__': + examples_transf() diff --git a/statsmodels/sandbox/distributions/genpareto.py b/statsmodels/sandbox/distributions/genpareto.py new file mode 100644 index 0000000..87d36e6 --- /dev/null +++ b/statsmodels/sandbox/distributions/genpareto.py @@ -0,0 +1,239 @@ +# -*- coding: utf-8 -*- +""" +Created on Thu Aug 12 14:59:03 2010 + +Warning: not tried out or tested yet, Done + +Author: josef-pktd +""" +from __future__ import print_function +import numpy as np +from scipy import stats +from scipy.misc import comb +from scipy.stats.distributions import rv_continuous + +from numpy import where, inf +from numpy import abs as np_abs + +## Generalized Pareto with reversed sign of c as in literature +class genpareto2_gen(rv_continuous): + def _argcheck(self, c): + c = np.asarray(c) + self.b = where(c > 0, 1.0/np_abs(c), inf) + return where(c==0, 0, 1) + def _pdf(self, x, c): + Px = np.power(1-c*x,-1.0+1.0/c) + return Px + def _logpdf(self, x, c): + return (-1.0+1.0/c) * np.log1p(-c*x) + def _cdf(self, x, c): + return 1.0 - np.power(1-c*x,1.0/c) + def _ppf(self, q, c): + vals = -1.0/c * (np.power(1-q, c)-1) + return vals + def _munp(self, n, c): + k = np.arange(0,n+1) + val = (1.0/c)**n * np.sum(comb(n,k)*(-1)**k / (1.0+c*k),axis=0) + return where(c*n > -1, val, inf) + def _entropy(self, c): + if (c < 0): + return 1-c + else: + self.b = 1.0 / c + return rv_continuous._entropy(self, c) + +genpareto2 = genpareto2_gen(a=0.0,name='genpareto', + longname="A generalized Pareto", + shapes='c',extradoc=""" + +Generalized Pareto distribution + +genpareto2.pdf(x,c) = (1+c*x)**(-1-1/c) +for c != 0, and for x >= 0 for all c, and x < 1/abs(c) for c < 0. +""" + ) + +shape, loc, scale = 0.5, 0, 1 +rv = np.arange(5) +quant = [0.01, 0.1, 0.5, 0.9, 0.99] +for method, x in [('pdf', rv), + ('cdf', rv), + ('sf', rv), + ('ppf', quant), + ('isf', quant)]: + print(getattr(genpareto2, method)(x, shape, loc, scale)) + print(getattr(stats.genpareto, method)(x, -shape, loc, scale)) + +print(genpareto2.stats(shape, loc, scale, moments='mvsk')) +print(stats.genpareto.stats(-shape, loc, scale, moments='mvsk')) +print(genpareto2.entropy(shape, loc, scale)) +print(stats.genpareto.entropy(-shape, loc, scale)) + + +def paramstopot(thresh, shape, scale): + '''transform shape scale for peak over threshold + + y = x-u|x>u ~ GPD(k, sigma-k*u) if x ~ GPD(k, sigma) + notation of de Zea Bermudez, Kotz + k, sigma is shape, scale + ''' + return shape, scale - shape*thresh + +def paramsfrompot(thresh, shape, scalepot): + return shape, scalepot + shape*thresh + +def warnif(cond, msg): + if not cond: + print(msg, 'does not hold') + +def meanexcess(thresh, shape, scale): + '''mean excess function of genpareto + + assert are inequality conditions in de Zea Bermudez, Kotz + ''' + warnif(shape > -1, 'shape > -1') + warnif(thresh >= 0, 'thresh >= 0') #make it weak inequality + warnif((scale - shape*thresh) > 0, '(scale - shape*thresh) > 0') + return (scale - shape*thresh) / (1 + shape) + + +def meanexcess_plot(data, params=None, lidx=100, uidx=10, method='emp', plot=0): + if method == 'est': + #doesn't make much sense yet, + #estimate the parameters and use theoretical meanexcess + if params is None: + raise NotImplementedError + else: + pass #estimate parames + elif method == 'emp': + #calculate meanexcess from data + datasorted = np.sort(data) + meanexcess = (datasorted[::-1].cumsum())/np.arange(1,len(data)+1) - datasorted[::-1] + meanexcess = meanexcess[::-1] + if plot: + plt.plot(datasorted[:-uidx], meanexcess[:-uidx]) + if not params is None: + shape, scale = params + plt.plot(datasorted[:-uidx], (scale - datasorted[:-uidx] * shape) / (1. + shape)) + return datasorted, meanexcess + + +print(meanexcess(5, -0.5, 10)) +print(meanexcess(5, -2, 10)) +import matplotlib.pyplot as plt + +data = genpareto2.rvs(-0.75, scale=5, size=1000) +#data = np.random.uniform(50, size=1000) +#data = stats.norm.rvs(0, np.sqrt(50), size=1000) +#data = stats.pareto.rvs(1.5, np.sqrt(50), size=1000) +tmp = meanexcess_plot(data, params=(-0.75, 5), plot=1) +print(tmp[1][-20:]) +print(tmp[0][-20:]) +#plt.show() + +def meanexcess_emp(data): + datasorted = np.sort(data).astype(float) + meanexcess = (datasorted[::-1].cumsum())/np.arange(1,len(data)+1) - datasorted[::-1] + meancont = (datasorted[::-1].cumsum())/np.arange(1,len(data)+1) + meanexcess = meanexcess[::-1] + return datasorted, meanexcess, meancont[::-1] + +def meanexcess_dist(self, lb, *args, **kwds): + #default function in expect is identity + # need args in call + if np.ndim(lb) == 0: + return self.expect(lb=lb, conditional=True) + else: + return np.array([self.expect(lb=lbb, conditional=True) for + lbb in lb]) + +ds, me, mc = meanexcess_emp(1.*np.arange(1,10)) +print(ds) +print(me) +print(mc) + +print(meanexcess_dist(stats.norm, lb=0.5)) +print(meanexcess_dist(stats.norm, lb=[-np.inf, -0.5, 0, 0.5])) +rvs = stats.norm.rvs(size=100000) +rvs = rvs - rvs.mean() +print(rvs.mean(), rvs[rvs>-0.5].mean(), rvs[rvs>0].mean(), rvs[rvs>0.5].mean()) + + + +''' +C:\Programs\Python25\lib\site-packages\matplotlib-0.99.1-py2.5-win32.egg\matplotlib\rcsetup.py:117: UserWarning: rcParams key "numerix" is obsolete and has no effect; + please delete it from your matplotlibrc file + warnings.warn('rcParams key "numerix" is obsolete and has no effect;\n' +[ 1. 0.5 0. 0. 0. ] +[ 1. 0.5 0. 0. 0. ] +[ 0. 0.75 1. 1. 1. ] +[ 0. 0.75 1. 1. 1. ] +[ 1. 0.25 0. 0. 0. ] +[ 1. 0.25 0. 0. 0. ] +[ 0.01002513 0.1026334 0.58578644 1.36754447 1.8 ] +[ 0.01002513 0.1026334 0.58578644 1.36754447 1.8 ] +[ 1.8 1.36754447 0.58578644 0.1026334 0.01002513] +[ 1.8 1.36754447 0.58578644 0.1026334 0.01002513] +(array(0.66666666666666674), array(0.22222222222222243), array(0.56568542494923058), array(-0.60000000000032916)) +(array(0.66666666666666674), array(0.22222222222222243), array(0.56568542494923058), array(-0.60000000000032916)) +0.5 +0.5 +25.0 +shape > -1 does not hold +-20 +[ 41.4980671 42.83145298 44.24197578 45.81622844 47.57145212 + 49.52692287 51.70553275 54.0830766 56.61358997 59.53409167 + 62.8970042 66.73494156 71.04227973 76.24015612 82.71835988 + 89.79611663 99.4252195 106.2372462 94.83432424 0. ] +[ 15.79736355 16.16373531 17.44204268 17.47968055 17.73264951 + 18.23939099 19.02638455 20.79746264 23.7169161 24.48807136 + 25.90496638 28.35556795 32.27623618 34.65714495 37.37093362 + 47.32957609 51.27970515 78.98913941 129.04309012 189.66864848] +>>> np.arange(10) +array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) +>>> meanexcess_emp(np.arange(10)) +(array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]), array([4, 4, 5, 5, 5, 6, 6, 5, 4, 0]), array([9, 8, 8, 7, 7, 6, 6, 5, 5, 4])) +>>> meanexcess_emp(1*np.arange(10)) +(array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]), array([4, 4, 5, 5, 5, 6, 6, 5, 4, 0]), array([9, 8, 8, 7, 7, 6, 6, 5, 5, 4])) +>>> meanexcess_emp(1.*np.arange(10)) +(array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9.]), array([ 4.5 , 4.88888889, 5.25 , 5.57142857, 5.83333333, + 6. , 6. , 5.66666667, 4.5 , 0. ]), array([ 9. , 8.5, 8. , 7.5, 7. , 6.5, 6. , 5.5, 5. , 4.5])) +>>> meanexcess_emp(0.5**np.arange(10)) +(array([ 0.00195313, 0.00390625, 0.0078125 , 0.015625 , 0.03125 , + 0.0625 , 0.125 , 0.25 , 0.5 , 1. ]), array([ 0.19960938, 0.22135417, 0.24804688, 0.28125 , 0.32291667, + 0.375 , 0.4375 , 0.5 , 0.5 , 0. ]), array([ 1. , 0.75 , 0.58333333, 0.46875 , 0.3875 , + 0.328125 , 0.28348214, 0.24902344, 0.22178819, 0.19980469])) +>>> meanexcess_emp(np.arange(10)**0.5) +(array([ 0. , 1. , 1.41421356, 1.73205081, 2. , + 2.23606798, 2.44948974, 2.64575131, 2.82842712, 3. ]), array([ 1.93060005, 2.03400006, 2.11147337, 2.16567659, 2.19328936, + 2.18473364, 2.11854461, 1.94280904, 1.5 , 0. ]), array([ 3. , 2.91421356, 2.82472615, 2.73091704, 2.63194723, + 2.52662269, 2.41311242, 2.28825007, 2.14511117, 1.93060005])) +>>> meanexcess_emp(np.arange(10)**-2) +(array([-2147483648, 0, 0, 0, 0, + 0, 0, 0, 0, 1]), array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), array([ 1, 0, 0, 0, 0, + 0, 0, 0, 0, -214748365])) +>>> meanexcess_emp(np.arange(10)**(-0.5)) +(array([ 0.33333333, 0.35355339, 0.37796447, 0.40824829, 0.4472136 , + 0.5 , 0.57735027, 0.70710678, 1. , Inf]), array([ Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, NaN]), array([ Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf, Inf])) +>>> np.arange(10)**(-0.5) +array([ Inf, 1. , 0.70710678, 0.57735027, 0.5 , + 0.4472136 , 0.40824829, 0.37796447, 0.35355339, 0.33333333]) +>>> meanexcess_emp(np.arange(1,10)**(-0.5)) +(array([ 0.33333333, 0.35355339, 0.37796447, 0.40824829, 0.4472136 , + 0.5 , 0.57735027, 0.70710678, 1. ]), array([ 0.4857152 , 0.50223543, 0.51998842, 0.53861177, 0.55689141, + 0.57111426, 0.56903559, 0.5 , 0. ]), array([ 1. , 0.85355339, 0.76148568, 0.69611426, 0.64633413, + 0.60665316, 0.57398334, 0.5464296 , 0.52275224])) +>>> meanexcess_emp(np.arange(1,10)) +(array([1, 2, 3, 4, 5, 6, 7, 8, 9]), array([4, 5, 5, 5, 6, 6, 5, 4, 0]), array([9, 8, 8, 7, 7, 6, 6, 5, 5])) +>>> meanexcess_emp(1.*np.arange(1,10)) +(array([ 1., 2., 3., 4., 5., 6., 7., 8., 9.]), array([ 4.88888889, 5.25 , 5.57142857, 5.83333333, 6. , + 6. , 5.66666667, 4.5 , 0. ]), array([ 9. , 8.5, 8. , 7.5, 7. , 6.5, 6. , 5.5, 5. ])) +>>> datasorted = np.sort(1.*np.arange(1,10)) +>>> (datasorted[::-1].cumsum()-datasorted[::-1]) +array([ 0., 9., 17., 24., 30., 35., 39., 42., 44.]) +>>> datasorted[::-1].cumsum() +array([ 9., 17., 24., 30., 35., 39., 42., 44., 45.]) +>>> datasorted[::-1] +array([ 9., 8., 7., 6., 5., 4., 3., 2., 1.]) +>>> +''' diff --git a/statsmodels/sandbox/distributions/gof_new.py b/statsmodels/sandbox/distributions/gof_new.py new file mode 100644 index 0000000..a7da67c --- /dev/null +++ b/statsmodels/sandbox/distributions/gof_new.py @@ -0,0 +1,706 @@ +'''More Goodness of fit tests + +contains + +GOF : 1 sample gof tests based on Stephens 1970, plus AD A^2 +bootstrap : vectorized bootstrap p-values for gof test with fitted parameters + + +Created : 2011-05-21 +Author : Josef Perktold + +parts based on ks_2samp and kstest from scipy.stats +(license: Scipy BSD, but were completely rewritten by Josef Perktold) + + +References +---------- + +''' +from __future__ import print_function +from statsmodels.compat.python import range, lmap, string_types, callable +import numpy as np + +from scipy.stats import distributions + +from statsmodels.tools.decorators import cache_readonly + +from scipy.special import kolmogorov as ksprob + +#from scipy.stats unchanged +def ks_2samp(data1, data2): + """ + Computes the Kolmogorov-Smirnof statistic on 2 samples. + + This is a two-sided test for the null hypothesis that 2 independent samples + are drawn from the same continuous distribution. + + Parameters + ---------- + a, b : sequence of 1-D ndarrays + two arrays of sample observations assumed to be drawn from a continuous + distribution, sample sizes can be different + + + Returns + ------- + D : float + KS statistic + p-value : float + two-tailed p-value + + + Notes + ----- + + This tests whether 2 samples are drawn from the same distribution. Note + that, like in the case of the one-sample K-S test, the distribution is + assumed to be continuous. + + This is the two-sided test, one-sided tests are not implemented. + The test uses the two-sided asymptotic Kolmogorov-Smirnov distribution. + + If the K-S statistic is small or the p-value is high, then we cannot + reject the hypothesis that the distributions of the two samples + are the same. + + Examples + -------- + + >>> from scipy import stats + >>> import numpy as np + >>> from scipy.stats import ks_2samp + + >>> #fix random seed to get the same result + >>> np.random.seed(12345678); + + >>> n1 = 200 # size of first sample + >>> n2 = 300 # size of second sample + + different distribution + we can reject the null hypothesis since the pvalue is below 1% + + >>> rvs1 = stats.norm.rvs(size=n1,loc=0.,scale=1); + >>> rvs2 = stats.norm.rvs(size=n2,loc=0.5,scale=1.5) + >>> ks_2samp(rvs1,rvs2) + (0.20833333333333337, 4.6674975515806989e-005) + + slightly different distribution + we cannot reject the null hypothesis at a 10% or lower alpha since + the pvalue at 0.144 is higher than 10% + + >>> rvs3 = stats.norm.rvs(size=n2,loc=0.01,scale=1.0) + >>> ks_2samp(rvs1,rvs3) + (0.10333333333333333, 0.14498781825751686) + + identical distribution + we cannot reject the null hypothesis since the pvalue is high, 41% + + >>> rvs4 = stats.norm.rvs(size=n2,loc=0.0,scale=1.0) + >>> ks_2samp(rvs1,rvs4) + (0.07999999999999996, 0.41126949729859719) + + """ + data1, data2 = lmap(np.asarray, (data1, data2)) + n1 = data1.shape[0] + n2 = data2.shape[0] + n1 = len(data1) + n2 = len(data2) + data1 = np.sort(data1) + data2 = np.sort(data2) + data_all = np.concatenate([data1,data2]) + #reminder: searchsorted inserts 2nd into 1st array + cdf1 = np.searchsorted(data1,data_all,side='right')/(1.0*n1) + cdf2 = (np.searchsorted(data2,data_all,side='right'))/(1.0*n2) + d = np.max(np.absolute(cdf1-cdf2)) + #Note: d absolute not signed distance + en = np.sqrt(n1*n2/float(n1+n2)) + try: + prob = ksprob((en+0.12+0.11/en)*d) + except: + prob = 1.0 + return d, prob + + + +#from scipy.stats unchanged +def kstest(rvs, cdf, args=(), N=20, alternative = 'two_sided', mode='approx',**kwds): + """ + Perform the Kolmogorov-Smirnov test for goodness of fit + + This performs a test of the distribution G(x) of an observed + random variable against a given distribution F(x). Under the null + hypothesis the two distributions are identical, G(x)=F(x). The + alternative hypothesis can be either 'two_sided' (default), 'less' + or 'greater'. The KS test is only valid for continuous distributions. + + Parameters + ---------- + rvs : string or array or callable + string: name of a distribution in scipy.stats + + array: 1-D observations of random variables + + callable: function to generate random variables, requires keyword + argument `size` + + cdf : string or callable + string: name of a distribution in scipy.stats, if rvs is a string then + cdf can evaluate to `False` or be the same as rvs + callable: function to evaluate cdf + + args : tuple, sequence + distribution parameters, used if rvs or cdf are strings + N : int + sample size if rvs is string or callable + alternative : 'two_sided' (default), 'less' or 'greater' + defines the alternative hypothesis (see explanation) + + mode : 'approx' (default) or 'asymp' + defines the distribution used for calculating p-value + + 'approx' : use approximation to exact distribution of test statistic + + 'asymp' : use asymptotic distribution of test statistic + + + Returns + ------- + D : float + KS test statistic, either D, D+ or D- + p-value : float + one-tailed or two-tailed p-value + + Notes + ----- + + In the one-sided test, the alternative is that the empirical + cumulative distribution function of the random variable is "less" + or "greater" than the cumulative distribution function F(x) of the + hypothesis, G(x)<=F(x), resp. G(x)>=F(x). + + Examples + -------- + + >>> from scipy import stats + >>> import numpy as np + >>> from scipy.stats import kstest + + >>> x = np.linspace(-15,15,9) + >>> kstest(x,'norm') + (0.44435602715924361, 0.038850142705171065) + + >>> np.random.seed(987654321) # set random seed to get the same result + >>> kstest('norm','',N=100) + (0.058352892479417884, 0.88531190944151261) + + is equivalent to this + + >>> np.random.seed(987654321) + >>> kstest(stats.norm.rvs(size=100),'norm') + (0.058352892479417884, 0.88531190944151261) + + Test against one-sided alternative hypothesis: + + >>> np.random.seed(987654321) + + Shift distribution to larger values, so that cdf_dgp(x)< norm.cdf(x): + + >>> x = stats.norm.rvs(loc=0.2, size=100) + >>> kstest(x,'norm', alternative = 'less') + (0.12464329735846891, 0.040989164077641749) + + Reject equal distribution against alternative hypothesis: less + + >>> kstest(x,'norm', alternative = 'greater') + (0.0072115233216311081, 0.98531158590396395) + + Don't reject equal distribution against alternative hypothesis: greater + + >>> kstest(x,'norm', mode='asymp') + (0.12464329735846891, 0.08944488871182088) + + + Testing t distributed random variables against normal distribution: + + With 100 degrees of freedom the t distribution looks close to the normal + distribution, and the kstest does not reject the hypothesis that the sample + came from the normal distribution + + >>> np.random.seed(987654321) + >>> stats.kstest(stats.t.rvs(100,size=100),'norm') + (0.072018929165471257, 0.67630062862479168) + + With 3 degrees of freedom the t distribution looks sufficiently different + from the normal distribution, that we can reject the hypothesis that the + sample came from the normal distribution at a alpha=10% level + + >>> np.random.seed(987654321) + >>> stats.kstest(stats.t.rvs(3,size=100),'norm') + (0.131016895759829, 0.058826222555312224) + + """ + if isinstance(rvs, string_types): + #cdf = getattr(stats, rvs).cdf + if (not cdf) or (cdf == rvs): + cdf = getattr(distributions, rvs).cdf + rvs = getattr(distributions, rvs).rvs + else: + raise AttributeError('if rvs is string, cdf has to be the same distribution') + + + if isinstance(cdf, string_types): + cdf = getattr(distributions, cdf).cdf + if callable(rvs): + kwds = {'size':N} + vals = np.sort(rvs(*args,**kwds)) + else: + vals = np.sort(rvs) + N = len(vals) + cdfvals = cdf(vals, *args) + + if alternative in ['two_sided', 'greater']: + Dplus = (np.arange(1.0, N+1)/N - cdfvals).max() + if alternative == 'greater': + return Dplus, distributions.ksone.sf(Dplus,N) + + if alternative in ['two_sided', 'less']: + Dmin = (cdfvals - np.arange(0.0, N)/N).max() + if alternative == 'less': + return Dmin, distributions.ksone.sf(Dmin,N) + + if alternative == 'two_sided': + D = np.max([Dplus,Dmin]) + if mode == 'asymp': + return D, distributions.kstwobign.sf(D*np.sqrt(N)) + if mode == 'approx': + pval_two = distributions.kstwobign.sf(D*np.sqrt(N)) + if N > 2666 or pval_two > 0.80 - N*0.3/1000.0 : + return D, distributions.kstwobign.sf(D*np.sqrt(N)) + else: + return D, distributions.ksone.sf(D,N)*2 + +#TODO: split into modification and pvalue functions separately ? +# for separate testing and combining different pieces + +def dplus_st70_upp(stat, nobs): + mod_factor = np.sqrt(nobs) + 0.12 + 0.11 / np.sqrt(nobs) + stat_modified = stat * mod_factor + pval = np.exp(-2 * stat_modified**2) + digits = np.sum(stat > np.array([0.82, 0.82, 1.00])) + #repeat low to get {0,2,3} + return stat_modified, pval, digits + +dminus_st70_upp = dplus_st70_upp + + +def d_st70_upp(stat, nobs): + mod_factor = np.sqrt(nobs) + 0.12 + 0.11 / np.sqrt(nobs) + stat_modified = stat * mod_factor + pval = 2 * np.exp(-2 * stat_modified**2) + digits = np.sum(stat > np.array([0.91, 0.91, 1.08])) + #repeat low to get {0,2,3} + return stat_modified, pval, digits + +def v_st70_upp(stat, nobs): + mod_factor = np.sqrt(nobs) + 0.155 + 0.24 / np.sqrt(nobs) + #repeat low to get {0,2,3} + stat_modified = stat * mod_factor + zsqu = stat_modified**2 + pval = (8 * zsqu - 2) * np.exp(-2 * zsqu) + digits = np.sum(stat > np.array([1.06, 1.06, 1.26])) + return stat_modified, pval, digits + +def wsqu_st70_upp(stat, nobs): + nobsinv = 1. / nobs + stat_modified = (stat - 0.4 * nobsinv + 0.6 * nobsinv**2) * (1 + nobsinv) + pval = 0.05 * np.exp(2.79 - 6 * stat_modified) + digits = np.nan # some explanation in txt + #repeat low to get {0,2,3} + return stat_modified, pval, digits + +def usqu_st70_upp(stat, nobs): + nobsinv = 1. / nobs + stat_modified = (stat - 0.1 * nobsinv + 0.1 * nobsinv**2) + stat_modified *= (1 + 0.8 * nobsinv) + pval = 2 * np.exp(- 2 * stat_modified * np.pi**2) + digits = np.sum(stat > np.array([0.29, 0.29, 0.34])) + #repeat low to get {0,2,3} + return stat_modified, pval, digits + +def a_st70_upp(stat, nobs): + nobsinv = 1. / nobs + stat_modified = (stat - 0.7 * nobsinv + 0.9 * nobsinv**2) + stat_modified *= (1 + 1.23 * nobsinv) + pval = 1.273 * np.exp(- 2 * stat_modified / 2. * np.pi**2) + digits = np.sum(stat > np.array([0.11, 0.11, 0.452])) + #repeat low to get {0,2,3} + return stat_modified, pval, digits + + + +gof_pvals = {} + +gof_pvals['stephens70upp'] = { + 'd_plus' : dplus_st70_upp, + 'd_minus' : dplus_st70_upp, + 'd' : d_st70_upp, + 'v' : v_st70_upp, + 'wsqu' : wsqu_st70_upp, + 'usqu' : usqu_st70_upp, + 'a' : a_st70_upp } + +def pval_kstest_approx(D, N): + pval_two = distributions.kstwobign.sf(D*np.sqrt(N)) + if N > 2666 or pval_two > 0.80 - N*0.3/1000.0 : + return D, distributions.kstwobign.sf(D*np.sqrt(N)), np.nan + else: + return D, distributions.ksone.sf(D,N)*2, np.nan + +gof_pvals['scipy'] = { + 'd_plus' : lambda Dplus, N: (Dplus, distributions.ksone.sf(Dplus, N), np.nan), + 'd_minus' : lambda Dmin, N: (Dmin, distributions.ksone.sf(Dmin,N), np.nan), + 'd' : lambda D, N: (D, distributions.kstwobign.sf(D*np.sqrt(N)), np.nan) + } + +gof_pvals['scipy_approx'] = { + 'd' : pval_kstest_approx } + +class GOF(object): + '''One Sample Goodness of Fit tests + + includes Kolmogorov-Smirnov D, D+, D-, Kuiper V, Cramer-von Mises W^2, U^2 and + Anderson-Darling A, A^2. The p-values for all tests except for A^2 are based on + the approximatiom given in Stephens 1970. A^2 has currently no p-values. For + the Kolmogorov-Smirnov test the tests as given in scipy.stats are also available + as options. + + + + + design: I might want to retest with different distributions, to calculate + data summary statistics only once, or add separate class that holds + summary statistics and data (sounds good). + + + + + ''' + + + + + def __init__(self, rvs, cdf, args=(), N=20): + if isinstance(rvs, string_types): + #cdf = getattr(stats, rvs).cdf + if (not cdf) or (cdf == rvs): + cdf = getattr(distributions, rvs).cdf + rvs = getattr(distributions, rvs).rvs + else: + raise AttributeError('if rvs is string, cdf has to be the same distribution') + + + if isinstance(cdf, string_types): + cdf = getattr(distributions, cdf).cdf + if callable(rvs): + kwds = {'size':N} + vals = np.sort(rvs(*args,**kwds)) + else: + vals = np.sort(rvs) + N = len(vals) + cdfvals = cdf(vals, *args) + + self.nobs = N + self.vals_sorted = vals + self.cdfvals = cdfvals + + + + @cache_readonly + def d_plus(self): + nobs = self.nobs + cdfvals = self.cdfvals + return (np.arange(1.0, nobs+1)/nobs - cdfvals).max() + + @cache_readonly + def d_minus(self): + nobs = self.nobs + cdfvals = self.cdfvals + return (cdfvals - np.arange(0.0, nobs)/nobs).max() + + @cache_readonly + def d(self): + return np.max([self.d_plus, self.d_minus]) + + @cache_readonly + def v(self): + '''Kuiper''' + return self.d_plus + self.d_minus + + @cache_readonly + def wsqu(self): + '''Cramer von Mises''' + nobs = self.nobs + cdfvals = self.cdfvals + #use literal formula, TODO: simplify with arange(,,2) + wsqu = ((cdfvals - (2. * np.arange(1., nobs+1) - 1)/nobs/2.)**2).sum() \ + + 1./nobs/12. + return wsqu + + @cache_readonly + def usqu(self): + nobs = self.nobs + cdfvals = self.cdfvals + #use literal formula, TODO: simplify with arange(,,2) + usqu = self.wsqu - nobs * (cdfvals.mean() - 0.5)**2 + return usqu + + @cache_readonly + def a(self): + nobs = self.nobs + cdfvals = self.cdfvals + + #one loop instead of large array + msum = 0 + for j in range(1,nobs): + mj = cdfvals[j] - cdfvals[:j] + mask = (mj > 0.5) + mj[mask] = 1 - mj[mask] + msum += mj.sum() + + a = nobs / 4. - 2. / nobs * msum + return a + + @cache_readonly + def asqu(self): + '''Stephens 1974, doesn't have p-value formula for A^2''' + nobs = self.nobs + cdfvals = self.cdfvals + + asqu = -((2. * np.arange(1., nobs+1) - 1) * + (np.log(cdfvals) + np.log(1-cdfvals[::-1]) )).sum()/nobs - nobs + + return asqu + + + def get_test(self, testid='d', pvals='stephens70upp'): + ''' + + ''' + #print gof_pvals[pvals][testid] + stat = getattr(self, testid) + if pvals == 'stephens70upp': + return gof_pvals[pvals][testid](stat, self.nobs), stat + else: + return gof_pvals[pvals][testid](stat, self.nobs) + + + + + + + + +def gof_mc(randfn, distr, nobs=100): + #print '\nIs it correctly sized?' + from collections import defaultdict + + results = defaultdict(list) + for i in range(1000): + rvs = randfn(nobs) + goft = GOF(rvs, distr) + for ti in all_gofs: + results[ti].append(goft.get_test(ti, 'stephens70upp')[0][1]) + + resarr = np.array([results[ti] for ti in all_gofs]) + print(' ', ' '.join(all_gofs)) + print('at 0.01:', (resarr < 0.01).mean(1)) + print('at 0.05:', (resarr < 0.05).mean(1)) + print('at 0.10:', (resarr < 0.1).mean(1)) + +def asquare(cdfvals, axis=0): + '''vectorized Anderson Darling A^2, Stephens 1974''' + ndim = len(cdfvals.shape) + nobs = cdfvals.shape[axis] + slice_reverse = [slice(None)] * ndim #might make copy if not specific axis??? + islice = [None] * ndim + islice[axis] = slice(None) + slice_reverse[axis] = slice(None, None, -1) + asqu = -((2. * np.arange(1., nobs+1)[islice] - 1) * + (np.log(cdfvals) + np.log(1-cdfvals[slice_reverse]))/nobs).sum(axis) \ + - nobs + + return asqu + + +#class OneSGOFFittedVec(object): +# '''for vectorized fitting''' + # currently I use the bootstrap as function instead of full class + + #note: kwds loc and scale are a pain + # I would need to overwrite rvs, fit and cdf depending on fixed parameters + + #def bootstrap(self, distr, args=(), kwds={}, nobs=200, nrep=1000, +def bootstrap(distr, args=(), nobs=200, nrep=100, value=None, batch_size=None): + '''Monte Carlo (or parametric bootstrap) p-values for gof + + currently hardcoded for A^2 only + + assumes vectorized fit_vec method, + builds and analyses (nobs, nrep) sample in one step + + rename function to less generic + + this works also with nrep=1 + + ''' + #signature similar to kstest ? + #delegate to fn ? + + #rvs_kwds = {'size':(nobs, nrep)} + #rvs_kwds.update(kwds) + + + #it will be better to build a separate batch function that calls bootstrap + #keep batch if value is true, but batch iterate from outside if stat is returned + if (not batch_size is None): + if value is None: + raise ValueError('using batching requires a value') + n_batch = int(np.ceil(nrep/float(batch_size))) + count = 0 + for irep in range(n_batch): + rvs = distr.rvs(args, **{'size':(batch_size, nobs)}) + params = distr.fit_vec(rvs, axis=1) + params = lmap(lambda x: np.expand_dims(x, 1), params) + cdfvals = np.sort(distr.cdf(rvs, params), axis=1) + stat = asquare(cdfvals, axis=1) + count += (stat >= value).sum() + return count / float(n_batch * batch_size) + else: + #rvs = distr.rvs(args, **kwds) #extension to distribution kwds ? + rvs = distr.rvs(args, **{'size':(nrep, nobs)}) + params = distr.fit_vec(rvs, axis=1) + params = lmap(lambda x: np.expand_dims(x, 1), params) + cdfvals = np.sort(distr.cdf(rvs, params), axis=1) + stat = asquare(cdfvals, axis=1) + if value is None: #return all bootstrap results + stat_sorted = np.sort(stat) + return stat_sorted + else: #calculate and return specific p-value + return (stat >= value).mean() + + + +def bootstrap2(value, distr, args=(), nobs=200, nrep=100): + '''Monte Carlo (or parametric bootstrap) p-values for gof + + currently hardcoded for A^2 only + + non vectorized, loops over all parametric bootstrap replications and calculates + and returns specific p-value, + + rename function to less generic + + ''' + #signature similar to kstest ? + #delegate to fn ? + + #rvs_kwds = {'size':(nobs, nrep)} + #rvs_kwds.update(kwds) + + + count = 0 + for irep in range(nrep): + #rvs = distr.rvs(args, **kwds) #extension to distribution kwds ? + rvs = distr.rvs(args, **{'size':nobs}) + params = distr.fit_vec(rvs) + cdfvals = np.sort(distr.cdf(rvs, params)) + stat = asquare(cdfvals, axis=0) + count += (stat >= value) + return count * 1. / nrep + + +class NewNorm(object): + '''just a holder for modified distributions + ''' + + def fit_vec(self, x, axis=0): + return x.mean(axis), x.std(axis) + + def cdf(self, x, args): + return distributions.norm.cdf(x, loc=args[0], scale=args[1]) + + def rvs(self, args, size): + loc=args[0] + scale=args[1] + return loc + scale * distributions.norm.rvs(size=size) + + + + +if __name__ == '__main__': + from scipy import stats + #rvs = np.random.randn(1000) + rvs = stats.t.rvs(3, size=200) + print('scipy kstest') + print(kstest(rvs, 'norm')) + goft = GOF(rvs, 'norm') + print(goft.get_test()) + + all_gofs = ['d', 'd_plus', 'd_minus', 'v', 'wsqu', 'usqu', 'a'] + for ti in all_gofs: + print(ti, goft.get_test(ti, 'stephens70upp')) + + print('\nIs it correctly sized?') + from collections import defaultdict + + results = defaultdict(list) + nobs = 200 + for i in range(100): + rvs = np.random.randn(nobs) + goft = GOF(rvs, 'norm') + for ti in all_gofs: + results[ti].append(goft.get_test(ti, 'stephens70upp')[0][1]) + + resarr = np.array([results[ti] for ti in all_gofs]) + print(' ', ' '.join(all_gofs)) + print('at 0.01:', (resarr < 0.01).mean(1)) + print('at 0.05:', (resarr < 0.05).mean(1)) + print('at 0.10:', (resarr < 0.1).mean(1)) + + gof_mc(lambda nobs: stats.t.rvs(3, size=nobs), 'norm', nobs=200) + + nobs = 200 + nrep = 100 + bt = bootstrap(NewNorm(), args=(0,1), nobs=nobs, nrep=nrep, value=None) + quantindex = np.floor(nrep * np.array([0.99, 0.95, 0.9])).astype(int) + print(bt[quantindex]) + + #the bootstrap results match Stephens pretty well for nobs=100, but not so well for + #large (1000) or small (20) nobs + ''' + >>> np.array([15.0, 10.0, 5.0, 2.5, 1.0])/100. #Stephens + array([ 0.15 , 0.1 , 0.05 , 0.025, 0.01 ]) + >>> nobs = 100 + >>> [bootstrap(NewNorm(), args=(0,1), nobs=nobs, nrep=10000, value=c/ (1 + 4./nobs - 25./nobs**2)) for c in [0.576, 0.656, 0.787, 0.918, 1.092]] + [0.1545, 0.10009999999999999, 0.049000000000000002, 0.023, 0.0104] + >>> + ''' + + #test equality of loop, vectorized, batch-vectorized + np.random.seed(8765679) + resu1 = bootstrap(NewNorm(), args=(0,1), nobs=nobs, nrep=100, + value=0.576/(1 + 4./nobs - 25./nobs**2)) + np.random.seed(8765679) + tmp = [bootstrap(NewNorm(), args=(0,1), nobs=nobs, nrep=1) for _ in range(100)] + resu2 = (np.array(tmp) > 0.576/(1 + 4./nobs - 25./nobs**2)).mean() + np.random.seed(8765679) + tmp = [bootstrap(NewNorm(), args=(0,1), nobs=nobs, nrep=1, + value=0.576/ (1 + 4./nobs - 25./nobs**2), + batch_size=10) for _ in range(10)] + resu3 = np.array(resu).mean() + from numpy.testing import assert_almost_equal, assert_array_almost_equal + assert_array_almost_equal(resu1, resu2, 15) + assert_array_almost_equal(resu2, resu3, 15) + + diff --git a/statsmodels/sandbox/distributions/multivariate.py b/statsmodels/sandbox/distributions/multivariate.py new file mode 100644 index 0000000..6938182 --- /dev/null +++ b/statsmodels/sandbox/distributions/multivariate.py @@ -0,0 +1,175 @@ +'''Multivariate Distribution + +Probability of a multivariate t distribution + +Now also mvstnormcdf has tests against R mvtnorm + +Still need non-central t, extra options, and convenience function for +location, scale version. + +Author: Josef Perktold +License: BSD (3-clause) + +Reference: +Genz and Bretz for formula + +''' +from __future__ import print_function +import numpy as np +from scipy import integrate, stats, special +from scipy.stats import chi,chi2 + +from .extras import mvnormcdf, mvstdnormcdf, mvnormcdf + +from numpy import exp as np_exp +from numpy import log as np_log +from scipy.special import gamma as sps_gamma +from scipy.special import gammaln as sps_gammaln + +def chi2_pdf(self, x, df): + '''pdf of chi-square distribution''' + #from scipy.stats.distributions + Px = x**(df/2.0-1)*np.exp(-x/2.0) + Px /= special.gamma(df/2.0)* 2**(df/2.0) + return Px + +def chi_pdf(x, df): + tmp = (df-1.)*np_log(x) + (-x*x*0.5) - (df*0.5-1)*np_log(2.0) \ + - sps_gammaln(df*0.5) + return np_exp(tmp) + #return x**(df-1.)*np_exp(-x*x*0.5)/(2.0)**(df*0.5-1)/sps_gamma(df*0.5) + +def chi_logpdf(x, df): + tmp = (df-1.)*np_log(x) + (-x*x*0.5) - (df*0.5-1)*np_log(2.0) \ + - sps_gammaln(df*0.5) + return tmp + +def funbgh(s, a, b, R, df): + sqrt_df = np.sqrt(df+0.5) + ret = chi_logpdf(s,df) + ret += np_log(mvstdnormcdf(s*a/sqrt_df, s*b/sqrt_df, R, + maxpts=1000000, abseps=1e-6)) + ret = np_exp(ret) + return ret + +def funbgh2(s, a, b, R, df): + n = len(a) + sqrt_df = np.sqrt(df) + #np.power(s, df-1) * np_exp(-s*s*0.5) + return np_exp((df-1)*np_log(s)-s*s*0.5) \ + * mvstdnormcdf(s*a/sqrt_df, s*b/sqrt_df, R[np.tril_indices(n, -1)], + maxpts=1000000, abseps=1e-4) + +def bghfactor(df): + return np.power(2.0, 1-df*0.5) / sps_gamma(df*0.5) + + +def mvstdtprob(a, b, R, df, ieps=1e-5, quadkwds=None, mvstkwds=None): + '''probability of rectangular area of standard t distribution + + assumes mean is zero and R is correlation matrix + + Notes + ----- + This function does not calculate the estimate of the combined error + between the underlying multivariate normal probability calculations + and the integration. + + ''' + kwds = dict(args=(a,b,R,df), epsabs=1e-4, epsrel=1e-2, limit=150) + if not quadkwds is None: + kwds.update(quadkwds) + #print kwds + res, err = integrate.quad(funbgh2, *chi.ppf([ieps,1-ieps], df), + **kwds) + prob = res * bghfactor(df) + return prob + +#written by Enzo Michelangeli, style changes by josef-pktd +# Student's T random variable +def multivariate_t_rvs(m, S, df=np.inf, n=1): + '''generate random variables of multivariate t distribution + + Parameters + ---------- + m : array_like + mean of random variable, length determines dimension of random variable + S : array_like + square array of covariance matrix + df : int or float + degrees of freedom + n : int + number of observations, return random array will be (n, len(m)) + + Returns + ------- + rvs : ndarray, (n, len(m)) + each row is an independent draw of a multivariate t distributed + random variable + + + ''' + m = np.asarray(m) + d = len(m) + if df == np.inf: + x = 1. + else: + x = np.random.chisquare(df, n)/df + z = np.random.multivariate_normal(np.zeros(d),S,(n,)) + return m + z/np.sqrt(x)[:,None] # same output format as random.multivariate_normal + + + + +if __name__ == '__main__': + corr = np.asarray([[1.0, 0, 0.5],[0,1,0],[0.5,0,1]]) + corr_indep = np.asarray([[1.0, 0, 0],[0,1,0],[0,0,1]]) + corr_equal = np.asarray([[1.0, 0.5, 0.5],[0.5,1,0.5],[0.5,0.5,1]]) + R = corr_equal + a = np.array([-np.inf,-np.inf,-100.0]) + a = np.array([-0.96,-0.96,-0.96]) + b = np.array([0.0,0.0,0.0]) + b = np.array([0.96,0.96, 0.96]) + a[:] = -1 + b[:] = 3 + df = 10. + sqrt_df = np.sqrt(df) + print(mvstdnormcdf(a, b, corr, abseps=1e-6)) + + #print integrate.quad(funbgh, 0, np.inf, args=(a,b,R,df)) + print((stats.t.cdf(b[0], df) - stats.t.cdf(a[0], df))**3) + + s = 1 + print(mvstdnormcdf(s*a/sqrt_df, s*b/sqrt_df, R)) + + + df=4 + print(mvstdtprob(a, b, R, df)) + + S = np.array([[1.,.5],[.5,1.]]) + print(multivariate_t_rvs([10.,20.], S, 2, 5)) + + nobs = 10000 + rvst = multivariate_t_rvs([10.,20.], S, 2, nobs) + print(np.sum((rvst<[10.,20.]).all(1),0) * 1. / nobs) + print(mvstdtprob(-np.inf*np.ones(2), np.zeros(2), R[:2,:2], 2)) + + + ''' + > lower <- -1 + > upper <- 3 + > df <- 4 + > corr <- diag(3) + > delta <- rep(0, 3) + > pmvt(lower=lower, upper=upper, delta=delta, df=df, corr=corr) + [1] 0.5300413 + attr(,"error") + [1] 4.321136e-05 + attr(,"msg") + [1] "Normal Completion" + > (pt(upper, df) - pt(lower, df))**3 + [1] 0.4988254 + + ''' + + diff --git a/statsmodels/sandbox/distributions/mv_measures.py b/statsmodels/sandbox/distributions/mv_measures.py new file mode 100644 index 0000000..69182e2 --- /dev/null +++ b/statsmodels/sandbox/distributions/mv_measures.py @@ -0,0 +1,197 @@ +'''using multivariate dependence and divergence measures + +The standard correlation coefficient measures only linear dependence between +random variables. +kendall's tau measures any monotonic relationship also non-linear. + +mutual information measures any kind of dependence, but does not distinguish +between positive and negative relationship + + +mutualinfo_kde and mutualinfo_binning follow Khan et al. 2007 + +Shiraj Khan, Sharba Bandyopadhyay, Auroop R. Ganguly, Sunil Saigal, +David J. Erickson, III, Vladimir Protopopescu, and George Ostrouchov, +Relative performance of mutual information estimation methods for +quantifying the dependence among short and noisy data, +Phys. Rev. E 76, 026209 (2007) +http://pre.aps.org/abstract/PRE/v76/i2/e026209 + + +''' + +import numpy as np +from scipy import stats +from scipy.stats import gaussian_kde + +import statsmodels.sandbox.infotheo as infotheo + + +def mutualinfo_kde(y, x, normed=True): + '''mutual information of two random variables estimated with kde + + ''' + nobs = len(x) + if not len(y) == nobs: + raise ValueError('both data arrays need to have the same size') + x = np.asarray(x, float) + y = np.asarray(y, float) + yx = np.vstack((y,x)) + kde_x = gaussian_kde(x)(x) + kde_y = gaussian_kde(y)(y) + kde_yx = gaussian_kde(yx)(yx) + + mi_obs = np.log(kde_yx) - np.log(kde_x) - np.log(kde_y) + mi = mi_obs.sum() / nobs + if normed: + mi_normed = np.sqrt(1. - np.exp(-2 * mi)) + return mi_normed + else: + return mi + +def mutualinfo_kde_2sample(y, x, normed=True): + '''mutual information of two random variables estimated with kde + + ''' + nobs = len(x) + x = np.asarray(x, float) + y = np.asarray(y, float) + #yx = np.vstack((y,x)) + kde_x = gaussian_kde(x.T)(x.T) + kde_y = gaussian_kde(y.T)(x.T) + #kde_yx = gaussian_kde(yx)(yx) + + mi_obs = np.log(kde_x) - np.log(kde_y) + if len(mi_obs) != nobs: + raise ValueError("Wrong number of observations") + mi = mi_obs.mean() + if normed: + mi_normed = np.sqrt(1. - np.exp(-2 * mi)) + return mi_normed + else: + return mi + +def mutualinfo_binned(y, x, bins, normed=True): + '''mutual information of two random variables estimated with kde + + + + Notes + ----- + bins='auto' selects the number of bins so that approximately 5 observations + are expected to be in each bin under the assumption of independence. This + follows roughly the description in Kahn et al. 2007 + + ''' + nobs = len(x) + if not len(y) == nobs: + raise ValueError('both data arrays need to have the same size') + x = np.asarray(x, float) + y = np.asarray(y, float) + #yx = np.vstack((y,x)) + + +## fyx, binsy, binsx = np.histogram2d(y, x, bins=bins) +## fx, binsx_ = np.histogram(x, bins=binsx) +## fy, binsy_ = np.histogram(y, bins=binsy) + + if bins == 'auto': + ys = np.sort(y) + xs = np.sort(x) + #quantiles = np.array([0,0.25, 0.4, 0.6, 0.75, 1]) + qbin_sqr = np.sqrt(5./nobs) + quantiles = np.linspace(0, 1, 1./qbin_sqr) + quantile_index = ((nobs-1)*quantiles).astype(int) + #move edges so that they don't coincide with an observation + shift = 1e-6 + np.ones(quantiles.shape) + shift[0] -= 2*1e-6 + binsy = ys[quantile_index] + shift + binsx = xs[quantile_index] + shift + + elif np.size(bins) == 1: + binsy = bins + binsx = bins + elif (len(bins) == 2): + binsy, binsx = bins +## if np.size(bins[0]) == 1: +## binsx = bins[0] +## if np.size(bins[1]) == 1: +## binsx = bins[1] + + fx, binsx = np.histogram(x, bins=binsx) + fy, binsy = np.histogram(y, bins=binsy) + fyx, binsy, binsx = np.histogram2d(y, x, bins=(binsy, binsx)) + + pyx = fyx * 1. / nobs + px = fx * 1. / nobs + py = fy * 1. / nobs + + + mi_obs = pyx * (np.log(pyx+1e-10) - np.log(py)[:,None] - np.log(px)) + mi = mi_obs.sum() + + if normed: + mi_normed = np.sqrt(1. - np.exp(-2 * mi)) + return mi_normed, (pyx, py, px, binsy, binsx), mi_obs + else: + return mi + + +if __name__ == '__main__': + import statsmodels.api as sm + + funtype = ['linear', 'quadratic'][1] + nobs = 200 + sig = 2#5. + #x = np.linspace(-3, 3, nobs) + np.random.randn(nobs) + x = np.sort(3*np.random.randn(nobs)) + exog = sm.add_constant(x, prepend=True) + #y = 0 + np.log(1+x**2) + sig * np.random.randn(nobs) + if funtype == 'quadratic': + y = 0 + x**2 + sig * np.random.randn(nobs) + if funtype == 'linear': + y = 0 + x + sig * np.random.randn(nobs) + + print('correlation') + print(np.corrcoef(y,x)[0, 1]) + print('pearsonr', stats.pearsonr(y,x)) + print('spearmanr', stats.spearmanr(y,x)) + print('kendalltau', stats.kendalltau(y,x)) + + pxy, binsx, binsy = np.histogram2d(x,y, bins=5) + px, binsx_ = np.histogram(x, bins=binsx) + py, binsy_ = np.histogram(y, bins=binsy) + print('mutualinfo', infotheo.mutualinfo(px*1./nobs, py*1./nobs, + 1e-15+pxy*1./nobs, logbase=np.e)) + + print('mutualinfo_kde normed', mutualinfo_kde(y,x)) + print('mutualinfo_kde ', mutualinfo_kde(y,x, normed=False)) + mi_normed, (pyx2, py2, px2, binsy2, binsx2), mi_obs = \ + mutualinfo_binned(y, x, 5, normed=True) + print('mutualinfo_binned normed', mi_normed) + print('mutualinfo_binned ', mi_obs.sum()) + + mi_normed, (pyx2, py2, px2, binsy2, binsx2), mi_obs = \ + mutualinfo_binned(y, x, 'auto', normed=True) + print('auto') + print('mutualinfo_binned normed', mi_normed) + print('mutualinfo_binned ', mi_obs.sum()) + + ys = np.sort(y) + xs = np.sort(x) + by = ys[((nobs-1)*np.array([0, 0.25, 0.4, 0.6, 0.75, 1])).astype(int)] + bx = xs[((nobs-1)*np.array([0, 0.25, 0.4, 0.6, 0.75, 1])).astype(int)] + mi_normed, (pyx2, py2, px2, binsy2, binsx2), mi_obs = \ + mutualinfo_binned(y, x, (by,bx), normed=True) + print('quantiles') + print('mutualinfo_binned normed', mi_normed) + print('mutualinfo_binned ', mi_obs.sum()) + + doplot = 1#False + if doplot: + import matplotlib.pyplot as plt + plt.plot(x, y, 'o') + olsres = sm.OLS(y, exog).fit() + plt.plot(x, olsres.fittedvalues) + + diff --git a/statsmodels/sandbox/distributions/mv_normal.py b/statsmodels/sandbox/distributions/mv_normal.py new file mode 100644 index 0000000..b3f8a02 --- /dev/null +++ b/statsmodels/sandbox/distributions/mv_normal.py @@ -0,0 +1,1278 @@ +# -*- coding: utf-8 -*- +"""Multivariate Normal and t distributions + + + +Created on Sat May 28 15:38:23 2011 + +@author: Josef Perktold + +TODO: +* renaming, + - after adding t distribution, cov doesn't make sense for Sigma DONE + - should mean also be renamed to mu, if there will be distributions + with mean != mu +* not sure about corner cases + - behavior with (almost) singular sigma or transforms + - df <= 2, is everything correct if variance is not finite or defined ? +* check to return possibly univariate distribution for marginals or conditional + distributions, does univariate special case work? seems ok for conditional +* are all the extra transformation methods useful outside of testing ? + - looks like I have some mixup in definitions of standardize, normalize +* new methods marginal, conditional, ... just added, typos ? + - largely tested for MVNormal, not yet for MVT DONE +* conditional: reusing, vectorizing, should we reuse a projection matrix or + allow for a vectorized, conditional_mean similar to OLS.predict +* add additional things similar to LikelihoodModelResults? quadratic forms, + F distribution, and others ??? +* add Delta method for nonlinear functions here, current function is hidden + somewhere in miscmodels +* raise ValueErrors for wrong input shapes, currently only partially checked + +* quantile method (ppf for equal bounds for multiple testing) is missing + http://svitsrv25.epfl.ch/R-doc/library/mvtnorm/html/qmvt.html seems to use + just a root finder for inversion of cdf + +* normalize has ambiguous definition, and mixing it up in different versions + std from sigma or std from cov ? + I would like to get what I need for mvt-cdf, or not + univariate standard t distribution has scale=1 but std>1 + FIXED: add std_sigma, and normalize uses std_sigma + +* more work: bivariate distributions, + inherit from multivariate but overwrite some methods for better efficiency, + e.g. cdf and expect + +I kept the original MVNormal0 class as reference, can be deleted + + +See Also +-------- +sandbox/examples/ex_mvelliptical.py + +Examples +-------- + +Note, several parts of these examples are random and the numbers will not be +(exactly) the same. + +>>> import numpy as np +>>> import statsmodels.sandbox.distributions.mv_normal as mvd +>>> +>>> from numpy.testing import assert_array_almost_equal +>>> +>>> cov3 = np.array([[ 1. , 0.5 , 0.75], +... [ 0.5 , 1.5 , 0.6 ], +... [ 0.75, 0.6 , 2. ]]) + +>>> mu = np.array([-1, 0.0, 2.0]) + +multivariate normal distribution +-------------------------------- + +>>> mvn3 = mvd.MVNormal(mu, cov3) +>>> mvn3.rvs(size=3) +array([[-0.08559948, -1.0319881 , 1.76073533], + [ 0.30079522, 0.55859618, 4.16538667], + [-1.36540091, -1.50152847, 3.87571161]]) + +>>> mvn3.std +array([ 1. , 1.22474487, 1.41421356]) +>>> a = [0.0, 1.0, 1.5] +>>> mvn3.pdf(a) +0.013867410439318712 +>>> mvn3.cdf(a) +0.31163181123730122 + +Monte Carlo integration + +>>> mvn3.expect_mc(lambda x: (x>> mvn3.expect_mc(lambda x: (x>> mvt3 = mvd.MVT(mu, cov3, 4) +>>> mvt3.rvs(size=4) +array([[-0.94185437, 0.3933273 , 2.40005487], + [ 0.07563648, 0.06655433, 7.90752238], + [ 1.06596474, 0.32701158, 2.03482886], + [ 3.80529746, 7.0192967 , 8.41899229]]) + +>>> mvt3.pdf(a) +0.010402959362646937 +>>> mvt3.cdf(a) +0.30269483623249821 +>>> mvt3.expect_mc(lambda x: (x>> mvt3.cov +array([[ 2. , 1. , 1.5], + [ 1. , 3. , 1.2], + [ 1.5, 1.2, 4. ]]) +>>> mvt3.corr +array([[ 1. , 0.40824829, 0.53033009], + [ 0.40824829, 1. , 0.34641016], + [ 0.53033009, 0.34641016, 1. ]]) + +get normalized distribution + +>>> mvt3n = mvt3.normalized() +>>> mvt3n.sigma +array([[ 1. , 0.40824829, 0.53033009], + [ 0.40824829, 1. , 0.34641016], + [ 0.53033009, 0.34641016, 1. ]]) +>>> mvt3n.cov +array([[ 2. , 0.81649658, 1.06066017], + [ 0.81649658, 2. , 0.69282032], + [ 1.06066017, 0.69282032, 2. ]]) + +What's currently there? + +>>> [i for i in dir(mvn3) if not i[0]=='_'] +['affine_transformed', 'cdf', 'cholsigmainv', 'conditional', 'corr', 'cov', +'expect_mc', 'extra_args', 'logdetsigma', 'logpdf', 'marginal', 'mean', +'normalize', 'normalized', 'normalized2', 'nvars', 'pdf', 'rvs', 'sigma', +'sigmainv', 'standardize', 'standardized', 'std', 'std_sigma', 'whiten'] + +>>> [i for i in dir(mvt3) if not i[0]=='_'] +['affine_transformed', 'cdf', 'cholsigmainv', 'corr', 'cov', 'df', 'expect_mc', +'extra_args', 'logdetsigma', 'logpdf', 'marginal', 'mean', 'normalize', +'normalized', 'normalized2', 'nvars', 'pdf', 'rvs', 'sigma', 'sigmainv', +'standardize', 'standardized', 'std', 'std_sigma', 'whiten'] + +""" +from __future__ import print_function +import numpy as np + +from statsmodels.sandbox.distributions.multivariate import ( + mvstdtprob, mvstdnormcdf, mvnormcdf) + +def expect_mc(dist, func=lambda x: 1, size=50000): + '''calculate expected value of function by Monte Carlo integration + + Parameters + ---------- + dist : distribution instance + needs to have rvs defined as a method for drawing random numbers + func : callable + function for which expectation is calculated, this function needs to + be vectorized, integration is over axis=0 + size : int + number of random samples to use in the Monte Carlo integration, + + + Notes + ----- + this doesn't batch + + Returns + ------- + expected value : ndarray + return of function func integrated over axis=0 by MonteCarlo, this will + have the same shape as the return of func without axis=0 + + Examples + -------- + + integrate probability that both observations are negative + + >>> mvn = mve.MVNormal([0,0],2.) + >>> mve.expect_mc(mvn, lambda x: (x>> c = stats.norm.isf(0.05, scale=np.sqrt(2.)) + >>> expect_mc(mvn, lambda x: (np.abs(x)>np.array([c, c])), size=100000) + array([ 0.09969, 0.0986 ]) + + or calling the method + + >>> mvn.expect_mc(lambda x: (np.abs(x)>np.array([c, c])), size=100000) + array([ 0.09937, 0.10075]) + + + ''' + def fun(x): + return func(x) # * dist.pdf(x) + rvs = dist.rvs(size=size) + return fun(rvs).mean(0) + +def expect_mc_bounds(dist, func=lambda x: 1, size=50000, lower=None, upper=None, + conditional=False, overfact=1.2): + '''calculate expected value of function by Monte Carlo integration + + Parameters + ---------- + dist : distribution instance + needs to have rvs defined as a method for drawing random numbers + func : callable + function for which expectation is calculated, this function needs to + be vectorized, integration is over axis=0 + size : int + minimum number of random samples to use in the Monte Carlo integration, + the actual number used can be larger because of oversampling. + lower : None or array_like + lower integration bounds, if None, then it is set to -inf + upper : None or array_like + upper integration bounds, if None, then it is set to +inf + conditional : bool + If true, then the expectation is conditional on being in within + [lower, upper] bounds, otherwise it is unconditional + overfact : float + oversampling factor, the actual number of random variables drawn in + each attempt are overfact * remaining draws. Extra draws are also + used in the integration. + + + Notes + ----- + this doesn't batch + + Returns + ------- + expected value : ndarray + return of function func integrated over axis=0 by MonteCarlo, this will + have the same shape as the return of func without axis=0 + + Examples + -------- + >>> mvn = mve.MVNormal([0,0],2.) + >>> mve.expect_mc_bounds(mvn, lambda x: np.ones(x.shape[0]), + lower=[-10,-10],upper=[0,0]) + 0.24990416666666668 + + get 3 marginal moments with one integration + + >>> mvn = mve.MVNormal([0,0],1.) + >>> mve.expect_mc_bounds(mvn, lambda x: np.dstack([x, x**2, x**3, x**4]), + lower=[-np.inf,-np.inf], upper=[np.inf,np.inf]) + array([[ 2.88629497e-03, 9.96706297e-01, -2.51005344e-03, + 2.95240921e+00], + [ -5.48020088e-03, 9.96004409e-01, -2.23803072e-02, + 2.96289203e+00]]) + >>> from scipy import stats + >>> [stats.norm.moment(i) for i in [1,2,3,4]] + [0.0, 1.0, 0.0, 3.0] + + + ''' + #call rvs once to find length of random vector + rvsdim = dist.rvs(size=1).shape[-1] + if lower is None: + lower = -np.inf * np.ones(rvsdim) + else: + lower = np.asarray(lower) + if upper is None: + upper = np.inf * np.ones(rvsdim) + else: + upper = np.asarray(upper) + + def fun(x): + return func(x) # * dist.pdf(x) + + rvsli = [] + used = 0 #remain = size #inplace changes size + total = 0 + while True: + remain = size - used #just a temp variable + rvs = dist.rvs(size=int(remain * overfact)) + total += int(size * overfact) + + rvsok = rvs[((rvs >= lower) & (rvs <= upper)).all(-1)] + #if rvsok.ndim == 1: #possible shape problems if only 1 random vector + rvsok = np.atleast_2d(rvsok) + used += rvsok.shape[0] + + rvsli.append(rvsok) #[:remain]) use extras instead + print(used) + if used >= size: break + rvs = np.vstack(rvsli) + print(rvs.shape) + assert used == rvs.shape[0] #saftey check + mean_conditional = fun(rvs).mean(0) + if conditional: + return mean_conditional + else: + return mean_conditional * (used * 1. / total) + + +def bivariate_normal(x, mu, cov): + """ + Bivariate Gaussian distribution for equal shape *X*, *Y*. + + See `bivariate normal + `_ + at mathworld. + """ + X, Y = np.transpose(x) + mux, muy = mu + sigmax, sigmaxy, tmp, sigmay = np.ravel(cov) + sigmax, sigmay = np.sqrt(sigmax), np.sqrt(sigmay) + Xmu = X-mux + Ymu = Y-muy + + rho = sigmaxy/(sigmax*sigmay) + z = Xmu**2/sigmax**2 + Ymu**2/sigmay**2 - 2*rho*Xmu*Ymu/(sigmax*sigmay) + denom = 2*np.pi*sigmax*sigmay*np.sqrt(1-rho**2) + return np.exp( -z/(2*(1-rho**2))) / denom + + + +class BivariateNormal(object): + + + #TODO: make integration limits more flexible + # or normalize before integration + + def __init__(self, mean, cov): + self.mean = mu + self.cov = cov + self.sigmax, self.sigmaxy, tmp, self.sigmay = np.ravel(cov) + self.nvars = 2 + + def rvs(self, size=1): + return np.random.multivariate_normal(self.mean, self.cov, size=size) + + def pdf(self, x): + return bivariate_normal(x, self.mean, self.cov) + + def logpdf(self, x): + #TODO: replace this + return np.log(self.pdf(x)) + + def cdf(self, x): + return self.expect(upper=x) + + def expect(self, func=lambda x: 1, lower=(-10,-10), upper=(10,10)): + def fun(x, y): + x = np.column_stack((x,y)) + return func(x) * self.pdf(x) + from scipy.integrate import dblquad + return dblquad(fun, lower[0], upper[0], lambda y: lower[1], + lambda y: upper[1]) + + def kl(self, other): + '''Kullback-Leibler divergence between this and another distribution + + int f(x) (log f(x) - log g(x)) dx + + where f is the pdf of self, and g is the pdf of other + + uses double integration with scipy.integrate.dblquad + + limits currently hardcoded + + ''' + fun = lambda x : self.logpdf(x) - other.logpdf(x) + return self.expect(fun) + + def kl_mc(self, other, size=500000): + fun = lambda x : self.logpdf(x) - other.logpdf(x) + rvs = self.rvs(size=size) + return fun(rvs).mean() + +class MVElliptical(object): + '''Base Class for multivariate elliptical distributions, normal and t + + contains common initialization, and some common methods + subclass needs to implement at least rvs and logpdf methods + + ''' + #getting common things between normal and t distribution + + + def __init__(self, mean, sigma, *args, **kwds): + '''initialize instance + + Parameters + ---------- + mean : array_like + parameter mu (might be renamed), for symmetric distributions this + is the mean + sigma : array_like, 2d + dispersion matrix, covariance matrix in normal distribution, but + only proportional to covariance matrix in t distribution + args : list + distribution specific arguments, e.g. df for t distribution + kwds : dict + currently not used + + ''' + + self.extra_args = [] + self.mean = np.asarray(mean) + self.sigma = sigma = np.asarray(sigma) + sigma = np.squeeze(sigma) + self.nvars = nvars = len(mean) + #self.covchol = np.linalg.cholesky(sigma) + + + #in the following sigma is original, self.sigma is full matrix + if sigma.shape == (): + #iid + self.sigma = np.eye(nvars) * sigma + self.sigmainv = np.eye(nvars) / sigma + self.cholsigmainv = np.eye(nvars) / np.sqrt(sigma) + elif (sigma.ndim == 1) and (len(sigma) == nvars): + #independent heteroscedastic + self.sigma = np.diag(sigma) + self.sigmainv = np.diag(1. / sigma) + self.cholsigmainv = np.diag( 1. / np.sqrt(sigma)) + elif sigma.shape == (nvars, nvars): #python tuple comparison + #general + self.sigmainv = np.linalg.pinv(sigma) + self.cholsigmainv = np.linalg.cholesky(self.sigmainv).T + else: + raise ValueError('sigma has invalid shape') + + #store logdetsigma for logpdf + self.logdetsigma = np.log(np.linalg.det(self.sigma)) + + def rvs(self, size=1): + '''random variable + + Parameters + ---------- + size : int or tuple + the number and shape of random variables to draw. + + Returns + ------- + rvs : ndarray + the returned random variables with shape given by size and the + dimension of the multivariate random vector as additional last + dimension + + + ''' + raise NotImplementedError + + def logpdf(self, x): + '''logarithm of probability density function + + Parameters + ---------- + x : array_like + can be 1d or 2d, if 2d, then each row is taken as independent + multivariate random vector + + Returns + ------- + logpdf : float or array + probability density value of each random vector + + + this should be made to work with 2d x, + with multivariate normal vector in each row and iid across rows + doesn't work now because of dot in whiten + + ''' + + + raise NotImplementedError + + def cdf(self, x, **kwds): + '''cumulative distribution function + + Parameters + ---------- + x : array_like + can be 1d or 2d, if 2d, then each row is taken as independent + multivariate random vector + kwds : dict + contains options for the numerical calculation of the cdf + + Returns + ------- + cdf : float or array + probability density value of each random vector + + ''' + raise NotImplementedError + + + def affine_transformed(self, shift, scale_matrix): + '''affine transformation define in subclass because of distribution + specific restrictions''' + #implemented in subclass at least for now + raise NotImplementedError + + def whiten(self, x): + """ + whiten the data by linear transformation + + Parameters + ----------- + x : array-like, 1d or 2d + Data to be whitened, if 2d then each row contains an independent + sample of the multivariate random vector + + Returns + ------- + np.dot(x, self.cholsigmainv.T) + + Notes + ----- + This only does rescaling, it doesn't subtract the mean, use standardize + for this instead + + See Also + -------- + standardize : subtract mean and rescale to standardized random variable. + + """ + x = np.asarray(x) + return np.dot(x, self.cholsigmainv.T) + + def pdf(self, x): + '''probability density function + + Parameters + ---------- + x : array_like + can be 1d or 2d, if 2d, then each row is taken as independent + multivariate random vector + + Returns + ------- + pdf : float or array + probability density value of each random vector + + ''' + return np.exp(self.logpdf(x)) + + def standardize(self, x): + '''standardize the random variable, i.e. subtract mean and whiten + + Parameters + ----------- + x : array-like, 1d or 2d + Data to be whitened, if 2d then each row contains an independent + sample of the multivariate random vector + + Returns + ------- + np.dot(x - self.mean, self.cholsigmainv.T) + + Notes + ----- + + + See Also + -------- + whiten : rescale random variable, standardize without subtracting mean. + + + ''' + return self.whiten(x - self.mean) + + def standardized(self): + '''return new standardized MVNormal instance + ''' + return self.affine_transformed(-self.mean, self.cholsigmainv) + + + def normalize(self, x): + '''normalize the random variable, i.e. subtract mean and rescale + + The distribution will have zero mean and sigma equal to correlation + + Parameters + ----------- + x : array-like, 1d or 2d + Data to be whitened, if 2d then each row contains an independent + sample of the multivariate random vector + + Returns + ------- + (x - self.mean)/std_sigma + + Notes + ----- + + + See Also + -------- + whiten : rescale random variable, standardize without subtracting mean. + + + ''' + std_ = np.atleast_2d(self.std_sigma) + return (x - self.mean)/std_ #/std_.T + + def normalized(self, demeaned=True): + '''return a normalized distribution where sigma=corr + + if demeaned is True, then mean will be set to zero + + ''' + if demeaned: + mean_new = np.zeros_like(self.mean) + else: + mean_new = self.mean / self.std_sigma + sigma_new = self.corr + args = [getattr(self, ea) for ea in self.extra_args] + return self.__class__(mean_new, sigma_new, *args) + + def normalized2(self, demeaned=True): + '''return a normalized distribution where sigma=corr + + + + second implementation for testing affine transformation + ''' + if demeaned: + shift = -self.mean + else: + shift = self.mean * (1. / self.std_sigma - 1.) + return self.affine_transformed(shift, np.diag(1. / self.std_sigma)) + #the following "standardizes" cov instead + #return self.affine_transformed(shift, self.cholsigmainv) + + + + @property + def std(self): + '''standard deviation, square root of diagonal elements of cov + ''' + return np.sqrt(np.diag(self.cov)) + + @property + def std_sigma(self): + '''standard deviation, square root of diagonal elements of sigma + ''' + return np.sqrt(np.diag(self.sigma)) + + + @property + def corr(self): + '''correlation matrix''' + return self.cov / np.outer(self.std, self.std) + + expect_mc = expect_mc + + def marginal(self, indices): + '''return marginal distribution for variables given by indices + + this should be correct for normal and t distribution + + Parameters + ---------- + indices : array_like, int + list of indices of variables in the marginal distribution + + Returns + ------- + mvdist : instance + new instance of the same multivariate distribution class that + contains the marginal distribution of the variables given in + indices + + ''' + indices = np.asarray(indices) + mean_new = self.mean[indices] + sigma_new = self.sigma[indices[:,None], indices] + args = [getattr(self, ea) for ea in self.extra_args] + return self.__class__(mean_new, sigma_new, *args) + + +#parts taken from linear_model, but heavy adjustments +class MVNormal0(object): + '''Class for Multivariate Normal Distribution + + original full version, kept for testing, new version inherits from + MVElliptical + + uses Cholesky decomposition of covariance matrix for the transformation + of the data + + ''' + + + def __init__(self, mean, cov): + self.mean = mean + self.cov = cov = np.asarray(cov) + cov = np.squeeze(cov) + self.nvars = nvars = len(mean) + + + #in the following cov is original, self.cov is full matrix + if cov.shape == (): + #iid + self.cov = np.eye(nvars) * cov + self.covinv = np.eye(nvars) / cov + self.cholcovinv = np.eye(nvars) / np.sqrt(cov) + elif (cov.ndim == 1) and (len(cov) == nvars): + #independent heteroscedastic + self.cov = np.diag(cov) + self.covinv = np.diag(1. / cov) + self.cholcovinv = np.diag( 1. / np.sqrt(cov)) + elif cov.shape == (nvars, nvars): #python tuple comparison + #general + self.covinv = np.linalg.pinv(cov) + self.cholcovinv = np.linalg.cholesky(self.covinv).T + else: + raise ValueError('cov has invalid shape') + + #store logdetcov for logpdf + self.logdetcov = np.log(np.linalg.det(self.cov)) + + def whiten(self, x): + """ + whiten the data by linear transformation + + Parameters + ----------- + X : array-like, 1d or 2d + Data to be whitened, if 2d then each row contains an independent + sample of the multivariate random vector + + Returns + ------- + np.dot(x, self.cholcovinv.T) + + Notes + ----- + This only does rescaling, it doesn't subtract the mean, use standardize + for this instead + + See Also + -------- + standardize : subtract mean and rescale to standardized random variable. + + """ + x = np.asarray(x) + if np.any(self.cov): + #return np.dot(self.cholcovinv, x) + return np.dot(x, self.cholcovinv.T) + else: + return x + + def rvs(self, size=1): + '''random variable + + Parameters + ---------- + size : int or tuple + the number and shape of random variables to draw. + + Returns + ------- + rvs : ndarray + the returned random variables with shape given by size and the + dimension of the multivariate random vector as additional last + dimension + + Notes + ----- + uses numpy.random.multivariate_normal directly + + ''' + return np.random.multivariate_normal(self.mean, self.cov, size=size) + + def pdf(self, x): + '''probability density function + + Parameters + ---------- + x : array_like + can be 1d or 2d, if 2d, then each row is taken as independent + multivariate random vector + + Returns + ------- + pdf : float or array + probability density value of each random vector + + ''' + + return np.exp(self.logpdf(x)) + + def logpdf(self, x): + '''logarithm of probability density function + + Parameters + ---------- + x : array_like + can be 1d or 2d, if 2d, then each row is taken as independent + multivariate random vector + + Returns + ------- + logpdf : float or array + probability density value of each random vector + + + this should be made to work with 2d x, + with multivariate normal vector in each row and iid across rows + doesn't work now because of dot in whiten + + ''' + x = np.asarray(x) + x_whitened = self.whiten(x - self.mean) + SSR = np.sum(x_whitened**2, -1) + llf = -SSR + llf -= self.nvars * np.log(2. * np.pi) + llf -= self.logdetcov + llf *= 0.5 + return llf + + expect_mc = expect_mc + + +class MVNormal(MVElliptical): + '''Class for Multivariate Normal Distribution + + uses Cholesky decomposition of covariance matrix for the transformation + of the data + + ''' + __name__ == 'Multivariate Normal Distribution' + + + def rvs(self, size=1): + '''random variable + + Parameters + ---------- + size : int or tuple + the number and shape of random variables to draw. + + Returns + ------- + rvs : ndarray + the returned random variables with shape given by size and the + dimension of the multivariate random vector as additional last + dimension + + Notes + ----- + uses numpy.random.multivariate_normal directly + + ''' + return np.random.multivariate_normal(self.mean, self.sigma, size=size) + + def logpdf(self, x): + '''logarithm of probability density function + + Parameters + ---------- + x : array_like + can be 1d or 2d, if 2d, then each row is taken as independent + multivariate random vector + + Returns + ------- + logpdf : float or array + probability density value of each random vector + + + this should be made to work with 2d x, + with multivariate normal vector in each row and iid across rows + doesn't work now because of dot in whiten + + ''' + x = np.asarray(x) + x_whitened = self.whiten(x - self.mean) + SSR = np.sum(x_whitened**2, -1) + llf = -SSR + llf -= self.nvars * np.log(2. * np.pi) + llf -= self.logdetsigma + llf *= 0.5 + return llf + + def cdf(self, x, **kwds): + '''cumulative distribution function + + Parameters + ---------- + x : array_like + can be 1d or 2d, if 2d, then each row is taken as independent + multivariate random vector + kwds : dict + contains options for the numerical calculation of the cdf + + Returns + ------- + cdf : float or array + probability density value of each random vector + + ''' + #lower = -np.inf * np.ones_like(x) + #return mvstdnormcdf(lower, self.standardize(x), self.corr, **kwds) + return mvnormcdf(x, self.mean, self.cov, **kwds) + + @property + def cov(self): + '''covariance matrix''' + return self.sigma + + def affine_transformed(self, shift, scale_matrix): + '''return distribution of an affine transform + + for full rank scale_matrix only + + Parameters + ---------- + shift : array_like + shift of mean + scale_matrix : array_like + linear transformation matrix + + Returns + ------- + mvt : instance of MVT + instance of multivariate t distribution given by affine + transformation + + + Notes + ----- + the affine transformation is defined by + y = a + B x + + where a is shift, + B is a scale matrix for the linear transformation + + Notes + ----- + This should also work to select marginal distributions, but not + tested for this case yet. + + currently only tested because it's called by standardized + + ''' + B = scale_matrix #tmp variable + mean_new = np.dot(B, self.mean) + shift + sigma_new = np.dot(np.dot(B, self.sigma), B.T) + return MVNormal(mean_new, sigma_new) + + def conditional(self, indices, values): + '''return conditional distribution + + indices are the variables to keep, the complement is the conditioning + set + values are the values of the conditioning variables + + \bar{\mu} = \mu_1 + \Sigma_{12} \Sigma_{22}^{-1} \left( a - \mu_2 \right) + + and covariance matrix + + \overline{\Sigma} = \Sigma_{11} - \Sigma_{12} \Sigma_{22}^{-1} \Sigma_{21}.T + + Parameters + ---------- + indices : array_like, int + list of indices of variables in the marginal distribution + given : array_like + values of the conditioning variables + + Returns + ------- + mvn : instance of MVNormal + new instance of the MVNormal class that contains the conditional + distribution of the variables given in indices for given + values of the excluded variables. + + + ''' + #indices need to be nd arrays for broadcasting + keep = np.asarray(indices) + given = np.asarray([i for i in range(self.nvars) if not i in keep]) + sigmakk = self.sigma[keep[:, None], keep] + sigmagg = self.sigma[given[:, None], given] + sigmakg = self.sigma[keep[:, None], given] + sigmagk = self.sigma[given[:, None], keep] + + + sigma_new = sigmakk - np.dot(sigmakg, np.linalg.solve(sigmagg, sigmagk)) + mean_new = self.mean[keep] + \ + np.dot(sigmakg, np.linalg.solve(sigmagg, values-self.mean[given])) + +# #or +# sig = np.linalg.solve(sigmagg, sigmagk).T +# mean_new = self.mean[keep] + np.dot(sigmakg, values-self.mean[given]) +# sigma_new = sigmakk - np.dot(sigmakg, sig) + return MVNormal(mean_new, sigma_new) + + + +from scipy import special +#redefine some shortcuts +np_log = np.log +np_pi = np.pi +sps_gamln = special.gammaln + +class MVT(MVElliptical): + + __name__ == 'Multivariate Student T Distribution' + + def __init__(self, mean, sigma, df): + '''initialize instance + + Parameters + ---------- + mean : array_like + parameter mu (might be renamed), for symmetric distributions this + is the mean + sigma : array_like, 2d + dispersion matrix, covariance matrix in normal distribution, but + only proportional to covariance matrix in t distribution + args : list + distribution specific arguments, e.g. df for t distribution + kwds : dict + currently not used + + ''' + super(MVT, self).__init__(mean, sigma) + self.extra_args = ['df'] #overwrites extra_args of super + self.df = df + + def rvs(self, size=1): + '''random variables with Student T distribution + + Parameters + ---------- + size : int or tuple + the number and shape of random variables to draw. + + Returns + ------- + rvs : ndarray + the returned random variables with shape given by size and the + dimension of the multivariate random vector as additional last + dimension + - TODO: Not sure if this works for size tuples with len>1. + + Notes + ----- + generated as a chi-square mixture of multivariate normal random + variables. + does this require df>2 ? + + + ''' + from .multivariate import multivariate_t_rvs + return multivariate_t_rvs(self.mean, self.sigma, df=self.df, n=size) + + + def logpdf(self, x): + '''logarithm of probability density function + + Parameters + ---------- + x : array_like + can be 1d or 2d, if 2d, then each row is taken as independent + multivariate random vector + + Returns + ------- + logpdf : float or array + probability density value of each random vector + + ''' + + x = np.asarray(x) + + df = self.df + nvars = self.nvars + + x_whitened = self.whiten(x - self.mean) #should be float + + llf = - nvars * np_log(df * np_pi) + llf -= self.logdetsigma + llf -= (df + nvars) * np_log(1 + np.sum(x_whitened**2,-1) / df) + llf *= 0.5 + llf += sps_gamln((df + nvars) / 2.) - sps_gamln(df / 2.) + + return llf + + def cdf(self, x, **kwds): + '''cumulative distribution function + + Parameters + ---------- + x : array_like + can be 1d or 2d, if 2d, then each row is taken as independent + multivariate random vector + kwds : dict + contains options for the numerical calculation of the cdf + + Returns + ------- + cdf : float or array + probability density value of each random vector + + ''' + lower = -np.inf * np.ones_like(x) + #std_sigma = np.sqrt(np.diag(self.sigma)) + upper = (x - self.mean)/self.std_sigma + return mvstdtprob(lower, upper, self.corr, self.df, **kwds) + #mvstdtcdf doesn't exist yet + #return mvstdtcdf(lower, x, self.corr, df, **kwds) + + @property + def cov(self): + '''covariance matrix + + The covariance matrix for the t distribution does not exist for df<=2, + and is equal to sigma * df/(df-2) for df>2 + + ''' + if self.df <= 2: + return np.nan * np.ones_like(self.sigma) + else: + return self.df / (self.df - 2.) * self.sigma + + def affine_transformed(self, shift, scale_matrix): + '''return distribution of a full rank affine transform + + for full rank scale_matrix only + + Parameters + ---------- + shift : array_like + shift of mean + scale_matrix : array_like + linear transformation matrix + + Returns + ------- + mvt : instance of MVT + instance of multivariate t distribution given by affine + transformation + + + Notes + ----- + + This checks for eigvals<=0, so there are possible problems for cases + with positive eigenvalues close to zero. + + see: http://www.statlect.com/mcdstu1.htm + + I'm not sure about general case, non-full rank transformation are not + multivariate t distributed. + + y = a + B x + + where a is shift, + B is full rank scale matrix with same dimension as sigma + + ''' + #full rank method could also be in elliptical and called with super + #after the rank check + B = scale_matrix #tmp variable as shorthand + if not B.shape == (self.nvars, self.nvars): + if (np.linalg.eigvals(B) <= 0).any(): + raise ValueError('affine transform has to be full rank') + + mean_new = np.dot(B, self.mean) + shift + sigma_new = np.dot(np.dot(B, self.sigma), B.T) + return MVT(mean_new, sigma_new, self.df) + + +def quad2d(func=lambda x: 1, lower=(-10,-10), upper=(10,10)): + def fun(x, y): + x = np.column_stack((x,y)) + return func(x) + from scipy.integrate import dblquad + return dblquad(fun, lower[0], upper[0], lambda y: lower[1], + lambda y: upper[1]) + +if __name__ == '__main__': + + from numpy.testing import assert_almost_equal, assert_array_almost_equal + + examples = ['mvn'] + + mu = (0,0) + covx = np.array([[1.0, 0.5], [0.5, 1.0]]) + mu3 = [-1, 0., 2.] + cov3 = np.array([[ 1. , 0.5 , 0.75], + [ 0.5 , 1.5 , 0.6 ], + [ 0.75, 0.6 , 2. ]]) + + + if 'mvn' in examples: + bvn = BivariateNormal(mu, covx) + rvs = bvn.rvs(size=1000) + print(rvs.mean(0)) + print(np.cov(rvs, rowvar=0)) + print(bvn.expect()) + print(bvn.cdf([0,0])) + bvn1 = BivariateNormal(mu, np.eye(2)) + bvn2 = BivariateNormal(mu, 4*np.eye(2)) + fun = lambda x : np.log(bvn1.pdf(x)) - np.log(bvn.pdf(x)) + print(bvn1.expect(fun)) + print(bvn1.kl(bvn2), bvn1.kl_mc(bvn2)) + print(bvn2.kl(bvn1), bvn2.kl_mc(bvn1)) + print(bvn1.kl(bvn), bvn1.kl_mc(bvn)) + mvn = MVNormal(mu, covx) + mvn.pdf([0,0]) + mvn.pdf(np.zeros((2,2))) + #np.dot(mvn.cholcovinv.T, mvn.cholcovinv) - mvn.covinv + + cov3 = np.array([[ 1. , 0.5 , 0.75], + [ 0.5 , 1.5 , 0.6 ], + [ 0.75, 0.6 , 2. ]]) + mu3 = [-1, 0., 2.] + mvn3 = MVNormal(mu3, cov3) + mvn3.pdf((0., 2., 3.)) + mvn3.logpdf((0., 2., 3.)) + #comparisons with R mvtnorm::dmvnorm + #decimal=14 +# mvn3.logpdf(cov3) - [-7.667977543898155, -6.917977543898155, -5.167977543898155] +# #decimal 18 +# mvn3.pdf(cov3) - [0.000467562492721686, 0.000989829804859273, 0.005696077243833402] +# #cheating new mean, same cov +# mvn3.mean = np.array([0,0,0]) +# #decimal= 16 +# mvn3.pdf(cov3) - [0.02914269740502042, 0.02269635555984291, 0.01767593948287269] + + #as asserts + r_val = [-7.667977543898155, -6.917977543898155, -5.167977543898155] + assert_array_almost_equal( mvn3.logpdf(cov3), r_val, decimal = 14) + #decimal 18 + r_val = [0.000467562492721686, 0.000989829804859273, 0.005696077243833402] + assert_array_almost_equal( mvn3.pdf(cov3), r_val, decimal = 17) + #cheating new mean, same cov, too dangerous, got wrong instance in tests + #mvn3.mean = np.array([0,0,0]) + mvn3c = MVNormal(np.array([0,0,0]), cov3) + r_val = [0.02914269740502042, 0.02269635555984291, 0.01767593948287269] + assert_array_almost_equal( mvn3c.pdf(cov3), r_val, decimal = 16) + + mvn3b = MVNormal((0,0,0), 1) + fun = lambda x : np.log(mvn3.pdf(x)) - np.log(mvn3b.pdf(x)) + print(mvn3.expect_mc(fun)) + print(mvn3.expect_mc(fun, size=200000)) + + + mvt = MVT((0,0), 1, 5) + assert_almost_equal(mvt.logpdf(np.array([0.,0.])), -1.837877066409345, + decimal=15) + assert_almost_equal(mvt.pdf(np.array([0.,0.])), 0.1591549430918953, + decimal=15) + + mvt.logpdf(np.array([1.,1.]))-(-3.01552989458359) + + mvt1 = MVT((0,0), 1, 1) + mvt1.logpdf(np.array([1.,1.]))-(-3.48579549941151) #decimal=16 + + rvs = mvt.rvs(100000) + assert_almost_equal(np.cov(rvs, rowvar=0), mvt.cov, decimal=1) + + mvt31 = MVT(mu3, cov3, 1) + assert_almost_equal(mvt31.pdf(cov3), + [0.0007276818698165781, 0.0009980625182293658, 0.0027661422056214652], + decimal=18) + + mvt = MVT(mu3, cov3, 3) + assert_almost_equal(mvt.pdf(cov3), + [0.000863777424247410, 0.001277510788307594, 0.004156314279452241], + decimal=17) + diff --git a/statsmodels/sandbox/distributions/otherdist.py b/statsmodels/sandbox/distributions/otherdist.py new file mode 100644 index 0000000..3ff5c83 --- /dev/null +++ b/statsmodels/sandbox/distributions/otherdist.py @@ -0,0 +1,313 @@ +'''Parametric Mixture Distributions + +Created on Sat Jun 04 2011 + +Author: Josef Perktold + + +Notes: + +Compound Poisson has mass point at zero +http://en.wikipedia.org/wiki/Compound_Poisson_distribution +and would need special treatment + +need a distribution that has discrete mass points and contiuous range, e.g. +compound Poisson, Tweedie (for some parameter range), +pdf of Tobit model (?) - truncation with clipping + +Question: Metaclasses and class factories for generating new distributions from +existing distributions by transformation, mixing, compounding + +''' + + +from __future__ import print_function +import numpy as np +from scipy import stats + +class ParametricMixtureD(object): + '''mixtures with a discrete distribution + + The mixing distribution is a discrete distribution like scipy.stats.poisson. + All distribution in the mixture of the same type and parameterized + by the outcome of the mixing distribution and have to be a continuous + distribution (or have a pdf method). + As an example, a mixture of normal distributed random variables with + Poisson as the mixing distribution. + + + assumes vectorized shape, loc and scale as in scipy.stats.distributions + + assume mixing_dist is frozen + + initialization looks fragile for all possible cases of lower and upper + bounds of the distributions. + + ''' + def __init__(self, mixing_dist, base_dist, bd_args_func, bd_kwds_func, + cutoff=1e-3): + '''create a mixture distribution + + Parameters + ---------- + mixing_dist : discrete frozen distribution + mixing distribution + base_dist : continuous distribution + parameterized distributions in the mixture + bd_args_func : callable + function that builds the tuple of args for the base_dist. + The function obtains as argument the values in the support of + the mixing distribution and should return an empty tuple or + a tuple of arrays. + bd_kwds_func : callable + function that builds the dictionary of kwds for the base_dist. + The function obtains as argument the values in the support of + the mixing distribution and should return an empty dictionary or + a dictionary with arrays as values. + cutoff : float + If the mixing distribution has infinite support, then the + distribution is truncated with approximately (subject to integer + conversion) the cutoff probability in the missing tail. Random + draws that are outside the truncated range are clipped, that is + assigned to the highest or lowest value in the truncated support. + + ''' + self.mixing_dist = mixing_dist + self.base_dist = base_dist + #self.bd_args = bd_args + if not np.isneginf(mixing_dist.dist.a): + lower = mixing_dist.dist.a + else: + lower = mixing_dist.ppf(1e-4) + if not np.isposinf(mixing_dist.dist.b): + upper = mixing_dist.dist.b + else: + upper = mixing_dist.isf(1e-4) + self.ma = lower + self.mb = upper + mixing_support = np.arange(lower, upper+1) + self.mixing_probs = mixing_dist.pmf(mixing_support) + + self.bd_args = bd_args_func(mixing_support) + self.bd_kwds = bd_kwds_func(mixing_support) + + def rvs(self, size=1): + mrvs = self.mixing_dist.rvs(size) + #TODO: check strange cases ? this assumes continous integers + mrvs_idx = (np.clip(mrvs, self.ma, self.mb) - self.ma).astype(int) + + bd_args = tuple(md[mrvs_idx] for md in self.bd_args) + bd_kwds = dict((k, self.bd_kwds[k][mrvs_idx]) for k in self.bd_kwds) + kwds = {'size':size} + kwds.update(bd_kwds) + rvs = self.base_dist.rvs(*self.bd_args, **kwds) + return rvs, mrvs_idx + + + + + + def pdf(self, x): + x = np.asarray(x) + if np.size(x) > 1: + x = x[...,None] #[None, ...] + bd_probs = self.base_dist.pdf(x, *self.bd_args, **self.bd_kwds) + prob = (bd_probs * self.mixing_probs).sum(-1) + return prob, bd_probs + + def cdf(self, x): + x = np.asarray(x) + if np.size(x) > 1: + x = x[...,None] #[None, ...] + bd_probs = self.base_dist.cdf(x, *self.bd_args, **self.bd_kwds) + prob = (bd_probs * self.mixing_probs).sum(-1) + return prob, bd_probs + + +#try: + +class ClippedContinuous(object): + '''clipped continuous distribution with a masspoint at clip_lower + + + Notes + ----- + first version, to try out possible designs + insufficient checks for valid arguments and not clear + whether it works for distributions that have compact support + + clip_lower is fixed and independent of the distribution parameters. + The clip_lower point in the pdf has to be interpreted as a mass point, + i.e. different treatment in integration and expect function, which means + none of the generic methods for this can be used. + + maybe this will be better designed as a mixture between a degenerate or + discrete and a continuous distribution + + Warning: uses equality to check for clip_lower values in function + arguments, since these are floating points, the comparison might fail + if clip_lower values are not exactly equal. + We could add a check whether the values are in a small neighborhood, but + it would be expensive (need to search and check all values). + + ''' + + def __init__(self, base_dist, clip_lower): + self.base_dist = base_dist + self.clip_lower = clip_lower + + def _get_clip_lower(self, kwds): + '''helper method to get clip_lower from kwds or attribute + + ''' + if not 'clip_lower' in kwds: + clip_lower = self.clip_lower + else: + clip_lower = kwds.pop('clip_lower') + return clip_lower, kwds + + def rvs(self, *args, **kwds): + clip_lower, kwds = self._get_clip_lower(kwds) + rvs_ = self.base_dist.rvs(*args, **kwds) + #same as numpy.clip ? + rvs_[rvs_ < clip_lower] = clip_lower + return rvs_ + + + + def pdf(self, x, *args, **kwds): + x = np.atleast_1d(x) + if not 'clip_lower' in kwds: + clip_lower = self.clip_lower + else: + #allow clip_lower to be a possible parameter + clip_lower = kwds.pop('clip_lower') + pdf_raw = np.atleast_1d(self.base_dist.pdf(x, *args, **kwds)) + clip_mask = (x == self.clip_lower) + if np.any(clip_mask): + clip_prob = self.base_dist.cdf(clip_lower, *args, **kwds) + pdf_raw[clip_mask] = clip_prob + + #the following will be handled by sub-classing rv_continuous + pdf_raw[x < clip_lower] = 0 + + return pdf_raw + + def cdf(self, x, *args, **kwds): + if not 'clip_lower' in kwds: + clip_lower = self.clip_lower + else: + #allow clip_lower to be a possible parameter + clip_lower = kwds.pop('clip_lower') + cdf_raw = self.base_dist.cdf(x, *args, **kwds) + + #not needed if equality test is used +## clip_mask = (x == self.clip_lower) +## if np.any(clip_mask): +## clip_prob = self.base_dist.cdf(clip_lower, *args, **kwds) +## pdf_raw[clip_mask] = clip_prob + + #the following will be handled by sub-classing rv_continuous + #if self.a is defined + cdf_raw[x < clip_lower] = 0 + + return cdf_raw + + def sf(self, x, *args, **kwds): + if not 'clip_lower' in kwds: + clip_lower = self.clip_lower + else: + #allow clip_lower to be a possible parameter + clip_lower = kwds.pop('clip_lower') + + sf_raw = self.base_dist.sf(x, *args, **kwds) + sf_raw[x <= clip_lower] = 1 + + return sf_raw + + + def ppf(self, x, *args, **kwds): + raise NotImplementedError + + def plot(self, x, *args, **kwds): + + clip_lower, kwds = self._get_clip_lower(kwds) + mass = self.pdf(clip_lower, *args, **kwds) + xr = np.concatenate(([clip_lower+1e-6], x[x>clip_lower])) + import matplotlib.pyplot as plt + #x = np.linspace(-4, 4, 21) + #plt.figure() + plt.xlim(clip_lower-0.1, x.max()) + #remove duplicate calculation + xpdf = self.pdf(x, *args, **kwds) + plt.ylim(0, max(mass, xpdf.max())*1.1) + plt.plot(xr, self.pdf(xr, *args, **kwds)) + #plt.vline(clip_lower, self.pdf(clip_lower, *args, **kwds)) + plt.stem([clip_lower], [mass], + linefmt='b-', markerfmt='bo', basefmt='r-') + return + + + + +if __name__ == '__main__': + + doplots = 1 + + #*********** Poisson-Normal Mixture + mdist = stats.poisson(2.) + bdist = stats.norm + bd_args_fn = lambda x: () + #bd_kwds_fn = lambda x: {'loc': np.atleast_2d(10./(1+x))} + bd_kwds_fn = lambda x: {'loc': x, 'scale': 0.1*np.ones_like(x)} #10./(1+x)} + + + pd = ParametricMixtureD(mdist, bdist, bd_args_fn, bd_kwds_fn) + print(pd.pdf(1)) + p, bp = pd.pdf(np.linspace(0,20,21)) + pc, bpc = pd.cdf(np.linspace(0,20,21)) + print(pd.rvs()) + rvs, m = pd.rvs(size=1000) + + + if doplots: + import matplotlib.pyplot as plt + plt.hist(rvs, bins = 100) + plt.title('poisson mixture of normal distributions') + + #********** clipped normal distribution (Tobit) + + bdist = stats.norm + clip_lower_ = 0. #-0.5 + cnorm = ClippedContinuous(bdist, clip_lower_) + x = np.linspace(1e-8, 4, 11) + print(cnorm.pdf(x)) + print(cnorm.cdf(x)) + + if doplots: + #plt.figure() + #cnorm.plot(x) + plt.figure() + cnorm.plot(x = np.linspace(-1, 4, 51), loc=0.5, scale=np.sqrt(2)) + plt.title('clipped normal distribution') + + fig = plt.figure() + for i, loc in enumerate([0., 0.5, 1.,2.]): + fig.add_subplot(2,2,i+1) + cnorm.plot(x = np.linspace(-1, 4, 51), loc=loc, scale=np.sqrt(2)) + plt.title('clipped normal, loc = %3.2f' % loc) + + + loc = 1.5 + rvs = cnorm.rvs(loc=loc, size=2000) + plt.figure() + plt.hist(rvs, bins=50) + plt.title('clipped normal rvs, loc = %3.2f' % loc) + + + #plt.show() + + + + + diff --git a/statsmodels/sandbox/distributions/quantize.py b/statsmodels/sandbox/distributions/quantize.py new file mode 100644 index 0000000..b566b2a --- /dev/null +++ b/statsmodels/sandbox/distributions/quantize.py @@ -0,0 +1,145 @@ +'''Quantizing a continuous distribution in 2d + +Author: josef-pktd +''' +from __future__ import print_function +from statsmodels.compat.python import range, lmap +import numpy as np + +def prob_bv_rectangle(lower, upper, cdf): + '''helper function for probability of a rectangle in a bivariate distribution + + Parameters + ---------- + lower : array_like + tuple of lower integration bounds + upper : array_like + tuple of upper integration bounds + cdf : callable + cdf(x,y), cumulative distribution function of bivariate distribution + + + how does this generalize to more than 2 variates ? + ''' + probuu = cdf(*upper) + probul = cdf(upper[0], lower[1]) + problu = cdf(lower[0], upper[1]) + probll = cdf(*lower) + return probuu - probul - problu + probll + +def prob_mv_grid(bins, cdf, axis=-1): + '''helper function for probability of a rectangle grid in a multivariate distribution + + how does this generalize to more than 2 variates ? + + bins : tuple + tuple of bin edges, currently it is assumed that they broadcast + correctly + + ''' + if not isinstance(bins, np.ndarray): + bins = lmap(np.asarray, bins) + n_dim = len(bins) + bins_ = [] + #broadcast if binedges are 1d + if all(lmap(np.ndim, bins) == np.ones(n_dim)): + for d in range(n_dim): + sl = [None]*n_dim + sl[d] = slice(None) + bins_.append(bins[d][sl]) + else: #assume it is already correctly broadcasted + n_dim = bins.shape[0] + bins_ = bins + + print(len(bins)) + cdf_values = cdf(bins_) + probs = cdf_values.copy() + for d in range(n_dim): + probs = np.diff(probs, axis=d) + + return probs + + +def prob_quantize_cdf(binsx, binsy, cdf): + '''quantize a continuous distribution given by a cdf + + Parameters + ---------- + binsx : array_like, 1d + binedges + + ''' + binsx = np.asarray(binsx) + binsy = np.asarray(binsy) + nx = len(binsx) - 1 + ny = len(binsy) - 1 + probs = np.nan * np.ones((nx, ny)) #np.empty(nx,ny) + cdf_values = cdf(binsx[:,None], binsy) + cdf_func = lambda x, y: cdf_values[x,y] + for xind in range(1, nx+1): + for yind in range(1, ny+1): + upper = (xind, yind) + lower = (xind-1, yind-1) + #print upper,lower, + probs[xind-1,yind-1] = prob_bv_rectangle(lower, upper, cdf_func) + + assert not np.isnan(probs).any() + return probs + +def prob_quantize_cdf_old(binsx, binsy, cdf): + '''quantize a continuous distribution given by a cdf + + old version without precomputing cdf values + + Parameters + ---------- + binsx : array_like, 1d + binedges + + ''' + binsx = np.asarray(binsx) + binsy = np.asarray(binsy) + nx = len(binsx) - 1 + ny = len(binsy) - 1 + probs = np.nan * np.ones((nx, ny)) #np.empty(nx,ny) + for xind in range(1, nx+1): + for yind in range(1, ny+1): + upper = (binsx[xind], binsy[yind]) + lower = (binsx[xind-1], binsy[yind-1]) + #print upper,lower, + probs[xind-1,yind-1] = prob_bv_rectangle(lower, upper, cdf) + + assert not np.isnan(probs).any() + return probs + + + + +if __name__ == '__main__': + from numpy.testing import assert_almost_equal + unif_2d = lambda x,y: x*y + assert_almost_equal(prob_bv_rectangle([0,0], [1,0.5], unif_2d), 0.5, 14) + assert_almost_equal(prob_bv_rectangle([0,0], [0.5,0.5], unif_2d), 0.25, 14) + + arr1b = np.array([[ 0.05, 0.05, 0.05, 0.05], + [ 0.05, 0.05, 0.05, 0.05], + [ 0.05, 0.05, 0.05, 0.05], + [ 0.05, 0.05, 0.05, 0.05], + [ 0.05, 0.05, 0.05, 0.05]]) + + arr1a = prob_quantize_cdf(np.linspace(0,1,6), np.linspace(0,1,5), unif_2d) + assert_almost_equal(arr1a, arr1b, 14) + + arr2b = np.array([[ 0.25], + [ 0.25], + [ 0.25], + [ 0.25]]) + arr2a = prob_quantize_cdf(np.linspace(0,1,5), np.linspace(0,1,2), unif_2d) + assert_almost_equal(arr2a, arr2b, 14) + + arr3b = np.array([[ 0.25, 0.25, 0.25, 0.25]]) + arr3a = prob_quantize_cdf(np.linspace(0,1,2), np.linspace(0,1,5), unif_2d) + assert_almost_equal(arr3a, arr3b, 14) + + + diff --git a/statsmodels/sandbox/distributions/sppatch.py b/statsmodels/sandbox/distributions/sppatch.py new file mode 100644 index 0000000..04df3c2 --- /dev/null +++ b/statsmodels/sandbox/distributions/sppatch.py @@ -0,0 +1,722 @@ +'''patching scipy to fit distributions and expect method + +This adds new methods to estimate continuous distribution parameters with some +fixed/frozen parameters. It also contains functions that calculate the expected +value of a function for any continuous or discrete distribution + +It temporarily also contains Bootstrap and Monte Carlo function for testing the +distribution fit, but these are neither general nor verified. + +Author: josef-pktd +License: Simplified BSD +''' +from __future__ import print_function +from statsmodels.compat.python import range, lmap +import numpy as np +from scipy import stats, optimize, integrate + + +########## patching scipy + +#vonmises doesn't define finite bounds, because it is intended for circular +#support which does not define a proper pdf on the real line + +stats.distributions.vonmises.a = -np.pi +stats.distributions.vonmises.b = np.pi + +#the next 3 functions are for fit with some fixed parameters +#As they are written, they do not work as functions, only as methods + +def _fitstart(self, x): + '''example method, method of moment estimator as starting values + + Parameters + ---------- + x : array + data for which the parameters are estimated + + Returns + ------- + est : tuple + preliminary estimates used as starting value for fitting, not + necessarily a consistent estimator + + Notes + ----- + This needs to be written and attached to each individual distribution + + This example was written for the gamma distribution, but not verified + with literature + + ''' + loc = np.min([x.min(),0]) + a = 4/stats.skew(x)**2 + scale = np.std(x) / np.sqrt(a) + return (a, loc, scale) + +def _fitstart_beta(self, x, fixed=None): + '''method of moment estimator as starting values for beta distribution + + Parameters + ---------- + x : array + data for which the parameters are estimated + fixed : None or array_like + sequence of numbers and np.nan to indicate fixed parameters and parameters + to estimate + + Returns + ------- + est : tuple + preliminary estimates used as starting value for fitting, not + necessarily a consistent estimator + + Notes + ----- + This needs to be written and attached to each individual distribution + + References + ---------- + for method of moment estimator for known loc and scale + http://en.wikipedia.org/wiki/Beta_distribution#Parameter_estimation + http://www.itl.nist.gov/div898/handbook/eda/section3/eda366h.htm + NIST reference also includes reference to MLE in + Johnson, Kotz, and Balakrishan, Volume II, pages 221-235 + + ''' + #todo: separate out this part to be used for other compact support distributions + # e.g. rdist, vonmises, and truncnorm + # but this might not work because it might still be distribution specific + a, b = x.min(), x.max() + eps = (a-b)*0.01 + if fixed is None: + #this part not checked with books + loc = a - eps + scale = (a - b) * (1 + 2*eps) + else: + if np.isnan(fixed[-2]): + #estimate loc + loc = a - eps + else: + loc = fixed[-2] + if np.isnan(fixed[-1]): + #estimate scale + scale = (b + eps) - loc + else: + scale = fixed[-1] + + #method of moment for known loc scale: + scale = float(scale) + xtrans = (x - loc)/scale + xm = xtrans.mean() + xv = xtrans.var() + tmp = (xm*(1-xm)/xv - 1) + p = xm * tmp + q = (1 - xm) * tmp + + return (p, q, loc, scale) #check return type and should fixed be returned ? + +def _fitstart_poisson(self, x, fixed=None): + '''maximum likelihood estimator as starting values for Poisson distribution + + Parameters + ---------- + x : array + data for which the parameters are estimated + fixed : None or array_like + sequence of numbers and np.nan to indicate fixed parameters and parameters + to estimate + + Returns + ------- + est : tuple + preliminary estimates used as starting value for fitting, not + necessarily a consistent estimator + + Notes + ----- + This needs to be written and attached to each individual distribution + + References + ---------- + MLE : + http://en.wikipedia.org/wiki/Poisson_distribution#Maximum_likelihood + + ''' + #todo: separate out this part to be used for other compact support distributions + # e.g. rdist, vonmises, and truncnorm + # but this might not work because it might still be distribution specific + a = x.min() + eps = 0 # is this robust ? + if fixed is None: + #this part not checked with books + loc = a - eps + else: + if np.isnan(fixed[-1]): + #estimate loc + loc = a - eps + else: + loc = fixed[-1] + + #MLE for standard (unshifted, if loc=0) Poisson distribution + + xtrans = (x - loc) + lambd = xtrans.mean() + #second derivative d loglike/ dlambd Not used + #dlldlambd = 1/lambd # check + + return (lambd, loc) #check return type and should fixed be returned ? + + +def nnlf_fr(self, thetash, x, frmask): + # new frozen version + # - sum (log pdf(x, theta),axis=0) + # where theta are the parameters (including loc and scale) + # + try: + if frmask != None: + theta = frmask.copy() + theta[np.isnan(frmask)] = thetash + else: + theta = thetash + loc = theta[-2] + scale = theta[-1] + args = tuple(theta[:-2]) + except IndexError: + raise ValueError("Not enough input arguments.") + if not self._argcheck(*args) or scale <= 0: + return np.inf + x = np.array((x-loc) / scale) + cond0 = (x <= self.a) | (x >= self.b) + if (np.any(cond0)): + return np.inf + else: + N = len(x) + #raise ValueError + return self._nnlf(x, *args) + N*np.log(scale) + +def fit_fr(self, data, *args, **kwds): + '''estimate distribution parameters by MLE taking some parameters as fixed + + Parameters + ---------- + data : array, 1d + data for which the distribution parameters are estimated, + args : list ? check + starting values for optimization + kwds : + + - 'frozen' : array_like + values for frozen distribution parameters and, for elements with + np.nan, the corresponding parameter will be estimated + + Returns + ------- + argest : array + estimated parameters + + + Examples + -------- + generate random sample + >>> np.random.seed(12345) + >>> x = stats.gamma.rvs(2.5, loc=0, scale=1.2, size=200) + + estimate all parameters + >>> stats.gamma.fit(x) + array([ 2.0243194 , 0.20395655, 1.44411371]) + >>> stats.gamma.fit_fr(x, frozen=[np.nan, np.nan, np.nan]) + array([ 2.0243194 , 0.20395655, 1.44411371]) + + keep loc fixed, estimate shape and scale parameters + >>> stats.gamma.fit_fr(x, frozen=[np.nan, 0.0, np.nan]) + array([ 2.45603985, 1.27333105]) + + keep loc and scale fixed, estimate shape parameter + >>> stats.gamma.fit_fr(x, frozen=[np.nan, 0.0, 1.0]) + array([ 3.00048828]) + >>> stats.gamma.fit_fr(x, frozen=[np.nan, 0.0, 1.2]) + array([ 2.57792969]) + + estimate only scale parameter for fixed shape and loc + >>> stats.gamma.fit_fr(x, frozen=[2.5, 0.0, np.nan]) + array([ 1.25087891]) + + Notes + ----- + self is an instance of a distribution class. This can be attached to + scipy.stats.distributions.rv_continuous + + *Todo* + + * check if docstring is correct + * more input checking, args is list ? might also apply to current fit method + + ''' + loc0, scale0 = lmap(kwds.get, ['loc', 'scale'],[0.0, 1.0]) + Narg = len(args) + + if Narg == 0 and hasattr(self, '_fitstart'): + x0 = self._fitstart(data) + elif Narg > self.numargs: + raise ValueError("Too many input arguments.") + else: + args += (1.0,)*(self.numargs-Narg) + # location and scale are at the end + x0 = args + (loc0, scale0) + + if 'frozen' in kwds: + frmask = np.array(kwds['frozen']) + if len(frmask) != self.numargs+2: + raise ValueError("Incorrect number of frozen arguments.") + else: + # keep starting values for not frozen parameters + x0 = np.array(x0)[np.isnan(frmask)] + else: + frmask = None + + #print(x0 + #print(frmask + return optimize.fmin(self.nnlf_fr, x0, + args=(np.ravel(data), frmask), disp=0) + + +#The next two functions/methods calculate expected value of an arbitrary +#function, however for the continuous functions intquad is use, which might +#require continuouity or smoothness in the function. + + +#TODO: add option for Monte Carlo integration + +def expect(self, fn=None, args=(), loc=0, scale=1, lb=None, ub=None, conditional=False): + '''calculate expected value of a function with respect to the distribution + + location and scale only tested on a few examples + + Parameters + ---------- + all parameters are keyword parameters + fn : function (default: identity mapping) + Function for which integral is calculated. Takes only one argument. + args : tuple + argument (parameters) of the distribution + lb, ub : numbers + lower and upper bound for integration, default is set to the support + of the distribution + conditional : boolean (False) + If true then the integral is corrected by the conditional probability + of the integration interval. The return value is the expectation + of the function, conditional on being in the given interval. + + Returns + ------- + expected value : float + + Notes + ----- + This function has not been checked for it's behavior when the integral is + not finite. The integration behavior is inherited from scipy.integrate.quad. + + ''' + if fn is None: + def fun(x, *args): + return x*self.pdf(x, loc=loc, scale=scale, *args) + else: + def fun(x, *args): + return fn(x)*self.pdf(x, loc=loc, scale=scale, *args) + if lb is None: + lb = loc + self.a * scale #(self.a - loc)/(1.0*scale) + if ub is None: + ub = loc + self.b * scale #(self.b - loc)/(1.0*scale) + if conditional: + invfac = (self.sf(lb, loc=loc, scale=scale, *args) + - self.sf(ub, loc=loc, scale=scale, *args)) + else: + invfac = 1.0 + return integrate.quad(fun, lb, ub, + args=args)[0]/invfac + + +def expect_v2(self, fn=None, args=(), loc=0, scale=1, lb=None, ub=None, conditional=False): + '''calculate expected value of a function with respect to the distribution + + location and scale only tested on a few examples + + Parameters + ---------- + all parameters are keyword parameters + fn : function (default: identity mapping) + Function for which integral is calculated. Takes only one argument. + args : tuple + argument (parameters) of the distribution + lb, ub : numbers + lower and upper bound for integration, default is set using + quantiles of the distribution, see Notes + conditional : boolean (False) + If true then the integral is corrected by the conditional probability + of the integration interval. The return value is the expectation + of the function, conditional on being in the given interval. + + Returns + ------- + expected value : float + + Notes + ----- + This function has not been checked for it's behavior when the integral is + not finite. The integration behavior is inherited from scipy.integrate.quad. + + The default limits are lb = self.ppf(1e-9, *args), ub = self.ppf(1-1e-9, *args) + + For some heavy tailed distributions, 'alpha', 'cauchy', 'halfcauchy', + 'levy', 'levy_l', and for 'ncf', the default limits are not set correctly + even when the expectation of the function is finite. In this case, the + integration limits, lb and ub, should be chosen by the user. For example, + for the ncf distribution, ub=1000 works in the examples. + + There are also problems with numerical integration in some other cases, + for example if the distribution is very concentrated and the default limits + are too large. + + ''' + #changes: 20100809 + #correction and refactoring how loc and scale are handled + #uses now _pdf + #needs more testing for distribution with bound support, e.g. genpareto + + if fn is None: + def fun(x, *args): + return (loc + x*scale)*self._pdf(x, *args) + else: + def fun(x, *args): + return fn(loc + x*scale)*self._pdf(x, *args) + if lb is None: + #lb = self.a + try: + lb = self.ppf(1e-9, *args) #1e-14 quad fails for pareto + except ValueError: + lb = self.a + else: + lb = max(self.a, (lb - loc)/(1.0*scale)) #transform to standardized + if ub is None: + #ub = self.b + try: + ub = self.ppf(1-1e-9, *args) + except ValueError: + ub = self.b + else: + ub = min(self.b, (ub - loc)/(1.0*scale)) + if conditional: + invfac = self._sf(lb,*args) - self._sf(ub,*args) + else: + invfac = 1.0 + return integrate.quad(fun, lb, ub, + args=args, limit=500)[0]/invfac + +### for discrete distributions + +#TODO: check that for a distribution with finite support the calculations are +# done with one array summation (np.dot) + +#based on _drv2_moment(self, n, *args), but streamlined +def expect_discrete(self, fn=None, args=(), loc=0, lb=None, ub=None, + conditional=False): + '''calculate expected value of a function with respect to the distribution + for discrete distribution + + Parameters + ---------- + (self : distribution instance as defined in scipy stats) + fn : function (default: identity mapping) + Function for which integral is calculated. Takes only one argument. + args : tuple + argument (parameters) of the distribution + optional keyword parameters + lb, ub : numbers + lower and upper bound for integration, default is set to the support + of the distribution, lb and ub are inclusive (ul<=k<=ub) + conditional : boolean (False) + If true then the expectation is corrected by the conditional + probability of the integration interval. The return value is the + expectation of the function, conditional on being in the given + interval (k such that ul<=k<=ub). + + Returns + ------- + expected value : float + + Notes + ----- + * function is not vectorized + * accuracy: uses self.moment_tol as stopping criterium + for heavy tailed distribution e.g. zipf(4), accuracy for + mean, variance in example is only 1e-5, + increasing precision (moment_tol) makes zipf very slow + * suppnmin=100 internal parameter for minimum number of points to evaluate + could be added as keyword parameter, to evaluate functions with + non-monotonic shapes, points include integers in (-suppnmin, suppnmin) + * uses maxcount=1000 limits the number of points that are evaluated + to break loop for infinite sums + (a maximum of suppnmin+1000 positive plus suppnmin+1000 negative integers + are evaluated) + + + ''' + + #moment_tol = 1e-12 # increase compared to self.moment_tol, + # too slow for only small gain in precision for zipf + + #avoid endless loop with unbound integral, eg. var of zipf(2) + maxcount = 1000 + suppnmin = 100 #minimum number of points to evaluate (+ and -) + + if fn is None: + def fun(x): + #loc and args from outer scope + return (x+loc)*self._pmf(x, *args) + else: + def fun(x): + #loc and args from outer scope + return fn(x+loc)*self._pmf(x, *args) + # used pmf because _pmf does not check support in randint + # and there might be problems(?) with correct self.a, self.b at this stage + # maybe not anymore, seems to work now with _pmf + + self._argcheck(*args) # (re)generate scalar self.a and self.b + if lb is None: + lb = (self.a) + else: + lb = lb - loc + + if ub is None: + ub = (self.b) + else: + ub = ub - loc + if conditional: + invfac = self.sf(lb,*args) - self.sf(ub+1,*args) + else: + invfac = 1.0 + + tot = 0.0 + low, upp = self._ppf(0.001, *args), self._ppf(0.999, *args) + low = max(min(-suppnmin, low), lb) + upp = min(max(suppnmin, upp), ub) + supp = np.arange(low, upp+1, self.inc) #check limits + #print('low, upp', low, upp + tot = np.sum(fun(supp)) + diff = 1e100 + pos = upp + self.inc + count = 0 + + #handle cases with infinite support + + while (pos <= ub) and (diff > self.moment_tol) and count <= maxcount: + diff = fun(pos) + tot += diff + pos += self.inc + count += 1 + + if self.a < 0: #handle case when self.a = -inf + diff = 1e100 + pos = low - self.inc + while (pos >= lb) and (diff > self.moment_tol) and count <= maxcount: + diff = fun(pos) + tot += diff + pos -= self.inc + count += 1 + if count > maxcount: + # replace with proper warning + print('sum did not converge') + return tot/invfac + +stats.distributions.rv_continuous.fit_fr = fit_fr +stats.distributions.rv_continuous.nnlf_fr = nnlf_fr +stats.distributions.rv_continuous.expect = expect +stats.distributions.rv_discrete.expect = expect_discrete +stats.distributions.beta_gen._fitstart = _fitstart_beta #not tried out yet +stats.distributions.poisson_gen._fitstart = _fitstart_poisson #not tried out yet + +########## end patching scipy + + +def distfitbootstrap(sample, distr, nrepl=100): + '''run bootstrap for estimation of distribution parameters + + hard coded: only one shape parameter is allowed and estimated, + loc=0 and scale=1 are fixed in the estimation + + Parameters + ---------- + sample : array + original sample data for bootstrap + distr : distribution instance with fit_fr method + nrepl : integer + number of bootstrap replications + + Returns + ------- + res : array (nrepl,) + parameter estimates for all bootstrap replications + + ''' + nobs = len(sample) + res = np.zeros(nrepl) + for ii in range(nrepl): + rvsind = np.random.randint(nobs, size=nobs) + x = sample[rvsind] + res[ii] = distr.fit_fr(x, frozen=[np.nan, 0.0, 1.0]) + return res + +def distfitmc(sample, distr, nrepl=100, distkwds={}): + '''run Monte Carlo for estimation of distribution parameters + + hard coded: only one shape parameter is allowed and estimated, + loc=0 and scale=1 are fixed in the estimation + + Parameters + ---------- + sample : array + original sample data, in Monte Carlo only used to get nobs, + distr : distribution instance with fit_fr method + nrepl : integer + number of Monte Carlo replications + + Returns + ------- + res : array (nrepl,) + parameter estimates for all Monte Carlo replications + + ''' + arg = distkwds.pop('arg') + nobs = len(sample) + res = np.zeros(nrepl) + for ii in range(nrepl): + x = distr.rvs(arg, size=nobs, **distkwds) + res[ii] = distr.fit_fr(x, frozen=[np.nan, 0.0, 1.0]) + return res + + +def printresults(sample, arg, bres, kind='bootstrap'): + '''calculate and print(Bootstrap or Monte Carlo result + + Parameters + ---------- + sample : array + original sample data + arg : float (for general case will be array) + bres : array + parameter estimates from Bootstrap or Monte Carlo run + kind : {'bootstrap', 'montecarlo'} + output is printed for Mootstrap (default) or Monte Carlo + + Returns + ------- + None, currently only printing + + Notes + ----- + still a bit a mess because it is used for both Bootstrap and Monte Carlo + + made correction: + reference point for bootstrap is estimated parameter + + not clear: + I'm not doing any ddof adjustment in estimation of variance, do we + need ddof>0 ? + + todo: return results and string instead of printing + + ''' + print('true parameter value') + print(arg) + print('MLE estimate of parameters using sample (nobs=%d)'% (nobs)) + argest = distr.fit_fr(sample, frozen=[np.nan, 0.0, 1.0]) + print(argest) + if kind == 'bootstrap': + #bootstrap compares to estimate from sample + argorig = arg + arg = argest + + print('%s distribution of parameter estimate (nrepl=%d)'% (kind, nrepl)) + print('mean = %f, bias=%f' % (bres.mean(0), bres.mean(0)-arg)) + print('median', np.median(bres, axis=0)) + print('var and std', bres.var(0), np.sqrt(bres.var(0))) + bmse = ((bres - arg)**2).mean(0) + print('mse, rmse', bmse, np.sqrt(bmse)) + bressorted = np.sort(bres) + print('%s confidence interval (90%% coverage)' % kind) + print(bressorted[np.floor(nrepl*0.05)], bressorted[np.floor(nrepl*0.95)]) + print('%s confidence interval (90%% coverage) normal approximation' % kind) + print(stats.norm.ppf(0.05, loc=bres.mean(), scale=bres.std()),) + print(stats.norm.isf(0.05, loc=bres.mean(), scale=bres.std())) + print('Kolmogorov-Smirnov test for normality of %s distribution' % kind) + print(' - estimated parameters, p-values not really correct') + print(stats.kstest(bres, 'norm', (bres.mean(), bres.std()))) + + +if __name__ == '__main__': + + examplecases = ['largenumber', 'bootstrap', 'montecarlo'][:] + + if 'largenumber' in examplecases: + + print('\nDistribution: vonmises') + + for nobs in [200]:#[20000, 1000, 100]: + x = stats.vonmises.rvs(1.23, loc=0, scale=1, size=nobs) + print('\nnobs:', nobs) + print('true parameter') + print('1.23, loc=0, scale=1') + print('unconstraint') + print(stats.vonmises.fit(x)) + print(stats.vonmises.fit_fr(x, frozen=[np.nan, np.nan, np.nan])) + print('with fixed loc and scale') + print(stats.vonmises.fit_fr(x, frozen=[np.nan, 0.0, 1.0])) + + print('\nDistribution: gamma') + distr = stats.gamma + arg, loc, scale = 2.5, 0., 20. + + for nobs in [200]:#[20000, 1000, 100]: + x = distr.rvs(arg, loc=loc, scale=scale, size=nobs) + print('\nnobs:', nobs) + print('true parameter') + print('%f, loc=%f, scale=%f' % (arg, loc, scale)) + print('unconstraint') + print(distr.fit(x)) + print(distr.fit_fr(x, frozen=[np.nan, np.nan, np.nan])) + print('with fixed loc and scale') + print(distr.fit_fr(x, frozen=[np.nan, 0.0, 1.0])) + print('with fixed loc') + print(distr.fit_fr(x, frozen=[np.nan, 0.0, np.nan])) + + + ex = ['gamma', 'vonmises'][0] + + if ex == 'gamma': + distr = stats.gamma + arg, loc, scale = 2.5, 0., 1 + elif ex == 'vonmises': + distr = stats.vonmises + arg, loc, scale = 1.5, 0., 1 + else: + raise ValueError('wrong example') + + nobs = 100 + nrepl = 1000 + + sample = distr.rvs(arg, loc=loc, scale=scale, size=nobs) + + print('\nDistribution:', distr) + if 'bootstrap' in examplecases: + print('\nBootstrap') + bres = distfitbootstrap(sample, distr, nrepl=nrepl ) + printresults(sample, arg, bres) + + if 'montecarlo' in examplecases: + print('\nMonteCarlo') + mcres = distfitmc(sample, distr, nrepl=nrepl, + distkwds=dict(arg=arg, loc=loc, scale=scale)) + printresults(sample, arg, mcres, kind='montecarlo') + + diff --git a/statsmodels/sandbox/distributions/tests/__init__.py b/statsmodels/sandbox/distributions/tests/__init__.py new file mode 100644 index 0000000..1e26f0c --- /dev/null +++ b/statsmodels/sandbox/distributions/tests/__init__.py @@ -0,0 +1,165 @@ +''' + +Econometrics for a Datarich Environment +======================================= + +Introduction +------------ +In many cases we are performing statistical analysis when many observed variables are +available, when we are in a data rich environment. Machine learning has a wide variety +of tools for dimension reduction and penalization when there are many varibles compared +to the number of observation. Chemometrics has a long tradition of using Partial Least +Squares, NIPALS and similar in these cases. In econometrics the same problem shows up +when there are either many possible regressors, many (weak) instruments or when there are +a large number of moment conditions in GMM. + +This section is intended to collect some models and tools in this area that are relevant +for the statical analysis and econometrics. + +Covariance Matrices +=================== +Several methods are available to reduce the small sample noise in estimated covariance +matrices with many variable. +Some applications: +weighting matrix with many moments, +covariance matrix for portfolio choice + +Dimension Reduction +=================== +Principal Component and Partial Least Squares try to extract the important low dimensional +factors from the data with many variables. + +Regression with many regressors +=============================== +Factor models, selection of regressors and shrinkage and penalization are used to improve +the statistical properties, when the presence of too many regressors leads to over-fitting +and too noisy small sample estimators and statistics. + +Regression with many moments or many instruments +================================================ +The same tools apply and can be used in these two cases. +e.g. Tychonov regularization of weighting matrix in GMM, similar to Ridge regression, the +weighting matrix can be shrunk towards the identity matrix. +Simplest case will be part of GMM. I don't know how much will be standalone +functions. + + +Intended Content +================ + +PLS +--- +what should be available in class? + +Factormodel and supporting helper functions +------------------------------------------- + +PCA based +~~~~~~~~~ +First version based PCA on Stock/Watson and Bai/Ng, and recent papers on the +selection of the number of factors. Not sure about Forni et al. in approach. +Basic support of this needs additional results for PCA, error covariance matrix +of data on reduced factors, required for criteria in Bai/Ng. +Selection criteria based on eigenvalue cutoffs. + +Paper on PCA and structural breaks. Could add additional results during +find_nfact to test for parameter stability. I haven't read the paper yet. + +Idea: for forecasting, use up to h-step ahead endogenous variables to directly +get the forecasts. + +Asymptotic results and distribution: not too much idea yet. +Standard OLS results are conditional on factors, paper by Haerdle (abstract +seems to suggest that this is ok, Park 2009). + +Simulation: add function to simulate DGP of Bai/Ng and recent extension. +Sensitivity of selection criteria to heteroscedasticity and autocorrelation. + +Bai, J. & Ng, S., 2002. Determining the Number of Factors in + Approximate Factor Models. Econometrica, 70(1), pp.191-221. + +Kapetanios, G., 2010. A Testing Procedure for Determining the Number + of Factors in Approximate Factor Models With Large Datasets. Journal + of Business and Economic Statistics, 28(3), pp.397-409. + +Onatski, A., 2010. Determining the Number of Factors from Empirical + Distribution of Eigenvalues. Review of Economics and Statistics, + 92(4), pp.1004-1016. + +Alessi, L., Barigozzi, M. & Capasso, M., 2010. Improved penalization + for determining the number of factors in approximate factor models. + Statistics & Probability Letters, 80(23-24), pp.1806-1813. + +Breitung, J. & Eickmeier, S., Testing for structural breaks in dynamic + factor models. Journal of Econometrics, In Press, Accepted Manuscript. + Available at: + http://www.sciencedirect.com/science/article/B6VC0-51G3W92-1/2/f45ce2332443374fd770e42e5a68ddb4 + [Accessed November 15, 2010]. + +Croux, C., Renault, E. & Werker, B., 2004. Dynamic factor models. + Journal of Econometrics, 119(2), pp.223-230. + +Forni, M. et al., 2009. Opening the Black Box: Structural Factor + Models with Large Cross Sections. Econometric Theory, 25(05), + pp.1319-1347. + +Forni, M. et al., 2000. The Generalized Dynamic-Factor Model: + Identification and Estimation. Review of Economics and Statistics, + 82(4), pp.540-554. + +Forni, M. & Lippi, M., The general dynamic factor model: One-sided + representation results. Journal of Econometrics, In Press, Accepted + Manuscript. Available at: + http://www.sciencedirect.com/science/article/B6VC0-51FNPJN-1/2/4fcdd0cfb66e3050ff5d19bf2752ed19 + [Accessed November 15, 2010]. + +Kapetanios, G., 2010. A Testing Procedure for Determining the Number + of Factors in Approximate Factor Models With Large Datasets. Journal + of Business and Economic Statistics, 28(3), pp.397-409. + +Onatski, A., 2010. Determining the Number of Factors from Empirical + Distribution of Eigenvalues. Review of Economics and Statistics, + 92(4), pp.1004-1016. + +Park, B.U. et al., 2009. Time Series Modelling With Semiparametric + Factor Dynamics. Journal of the American Statistical Association, + 104(485), pp.284-298. + + + +other factor algorithm +~~~~~~~~~~~~~~~~~~~~~~ +PLS should fit in reasonably well. + +Bai/Ng have a recent paper, where they compare LASSO, PCA, and similar, individual +and in combination. +Check how much we can use scikits.learn for this. + + +miscellaneous +~~~~~~~~~~~~~ +Time series modeling of factors for prediction, ARMA, VARMA. +SUR and correlation structure +What about sandwich estimation, robust covariance matrices? +Similarity to Factor-Garch and Go-Garch +Updating: incremental PCA, ...? + + +TODO next +========= +MVOLS : OLS with multivariate endogenous and identical exogenous variables. + rewrite and expand current varma_process.VAR +PCA : write a class after all, and/or adjust the current donated class + and keep adding required statistics, e.g. + residual variance, projection of X on k-factors, ... updating ? +FactorModelUnivariate : started, does basic principal component regression, + based on standard information criteria, not Bai/Ng adjusted +FactorModelMultivariate : follow pattern for univariate version and use + MVOLS + + + + + + +''' diff --git a/statsmodels/sandbox/distributions/tests/_est_fit.py b/statsmodels/sandbox/distributions/tests/_est_fit.py new file mode 100644 index 0000000..cc0029b --- /dev/null +++ b/statsmodels/sandbox/distributions/tests/_est_fit.py @@ -0,0 +1,70 @@ +# NOTE: contains only one test, _est_cont_fit, that is renamed so that +# nose doesn't run it +# I put this here for the record and for the case when someone wants to +# verify the quality of fit +# with current parameters: relatively small sample size, default starting values +# Ran 84 tests in 401.797s +# FAILED (failures=15) + + +import numpy.testing as npt +import numpy as np + +from scipy import stats + +from .distparams import distcont + +# this is not a proper statistical test for convergence, but only +# verifies that the estimate and true values don't differ by too much +n_repl1 = 1000 # sample size for first run +n_repl2 = 5000 # sample size for second run, if first run fails +thresh_percent = 0.25 # percent of true parameters for fail cut-off +thresh_min = 0.75 # minimum difference estimate - true to fail test + +#distcont = [['genextreme', (3.3184017469423535,)]] + +def _est_cont_fit(): + # this tests the closeness of the estimated parameters to the true + # parameters with fit method of continuous distributions + # Note: is slow, some distributions don't converge with sample size <= 10000 + + for distname, arg in distcont: + yield check_cont_fit, distname,arg + + +def check_cont_fit(distname,arg): + distfn = getattr(stats, distname) + rvs = distfn.rvs(size=n_repl1,*arg) + est = distfn.fit(rvs) #,*arg) # start with default values + + truearg = np.hstack([arg,[0.0,1.0]]) + diff = est-truearg + + txt = '' + diffthreshold = np.max(np.vstack([truearg*thresh_percent, + np.ones(distfn.numargs+2)*thresh_min]),0) + # threshold for location + diffthreshold[-2] = np.max([np.abs(rvs.mean())*thresh_percent,thresh_min]) + + if np.any(np.isnan(est)): + raise AssertionError('nan returned in fit') + else: + if np.any((np.abs(diff) - diffthreshold) > 0.0): +## txt = 'WARNING - diff too large with small sample' +## print 'parameter diff =', diff - diffthreshold, txt + rvs = np.concatenate([rvs,distfn.rvs(size=n_repl2-n_repl1,*arg)]) + est = distfn.fit(rvs) #,*arg) + truearg = np.hstack([arg,[0.0,1.0]]) + diff = est-truearg + if np.any((np.abs(diff) - diffthreshold) > 0.0): + txt = 'parameter: %s\n' % str(truearg) + txt += 'estimated: %s\n' % str(est) + txt += 'diff : %s\n' % str(diff) + raise AssertionError('fit not very good in %s\n' % distfn.name + txt) + + + +if __name__ == "__main__": + import nose + #nose.run(argv=['', __file__]) + nose.runmodule(argv=[__file__,'-s'], exit=False) diff --git a/statsmodels/sandbox/distributions/tests/check_moments.py b/statsmodels/sandbox/distributions/tests/check_moments.py new file mode 100644 index 0000000..419cc87 --- /dev/null +++ b/statsmodels/sandbox/distributions/tests/check_moments.py @@ -0,0 +1,159 @@ +'''script to test expect and moments in distributions.stats method + +not written as a test, prints results, renamed to prevent nose from running it + + +''' +from statsmodels.compat.python import iteritems +import numpy as np +from scipy import stats +#from statsmodels.stats.moment_helpers import mnc2mvsk +from statsmodels.sandbox.distributions.sppatch import expect_v2 + +from .distparams import distcont, distdiscrete#, distslow + + +specialcases = {'ncf':{'ub':1000} # diverges if it's too large, checked for mean + } + +#next functions are copies from sm.stats.moment_helpers +def mc2mvsk(args): + '''convert central moments to mean, variance, skew, kurtosis + ''' + mc, mc2, mc3, mc4 = args + skew = np.divide(mc3, mc2**1.5) + kurt = np.divide(mc4, mc2**2.0) - 3.0 + return (mc, mc2, skew, kurt) + +def mnc2mvsk(args): + '''convert central moments to mean, variance, skew, kurtosis + ''' + #convert four non-central moments to central moments + mnc, mnc2, mnc3, mnc4 = args + mc = mnc + mc2 = mnc2 - mnc*mnc + mc3 = mnc3 - (3*mc*mc2+mc**3) # 3rd central moment + mc4 = mnc4 - (4*mc*mc3+6*mc*mc*mc2+mc**4) + return mc2mvsk((mc, mc2, mc3, mc4)) + +def mom_nc0(x): + return 1. + +def mom_nc1(x): + return x + +def mom_nc2(x): + return x*x + +def mom_nc3(x): + return x*x*x + +def mom_nc4(x): + return np.power(x,4) + +res = {} +distex = [] +distlow = [] +distok = [] +distnonfinite = [] + +def check_cont_basic(): + #results saved in module global variable + + for distname, distargs in distcont[:]: + #if distname not in distex_0: continue + distfn = getattr(stats, distname) +## np.random.seed(765456) +## sn = 1000 +## rvs = distfn.rvs(size=sn,*arg) +## sm = rvs.mean() +## sv = rvs.var() +## skurt = stats.kurtosis(rvs) +## sskew = stats.skew(rvs) + m,v,s,k = distfn.stats(*distargs, **dict(moments='mvsk')) + st = np.array([m,v,s,k]) + mask = np.isfinite(st) + if mask.sum() < 4: + distnonfinite.append(distname) + print(distname) + #print 'stats ', m,v,s,k + expect = distfn.expect + expect = lambda *args, **kwds : expect_v2(distfn, *args, **kwds) + + special_kwds = specialcases.get(distname, {}) + mnc0 = expect(mom_nc0, args=distargs, **special_kwds) + mnc1 = expect(args=distargs, **special_kwds) + mnc2 = expect(mom_nc2, args=distargs, **special_kwds) + mnc3 = expect(mom_nc3, args=distargs, **special_kwds) + mnc4 = expect(mom_nc4, args=distargs, **special_kwds) + + mnc1_lc = expect(args=distargs, loc=1, scale=2, **special_kwds) + #print mnc1, mnc2, mnc3, mnc4 + try: + me, ve, se, ke = mnc2mvsk((mnc1, mnc2, mnc3, mnc4)) + except: + print('exception', mnc1, mnc2, mnc3, mnc4, st) + me, ve, se, ke = [np.nan]*4 + if mask.size > 0: + distex.append(distname) + #print 'expect', me, ve, se, ke, + #print mnc1, mnc2, mnc3, mnc4 + + em = np.array([me, ve, se, ke]) + + diff = st[mask] - em[mask] + print(diff, mnc1_lc - (1 + 2*mnc1)) + if np.size(diff)>0 and np.max(np.abs(diff)) > 1e-3: + distlow.append(distname) + else: + distok.append(distname) + + res[distname] = [mnc0, st, em, diff, mnc1_lc] + +def nct_kurt_bug(): + '''test for incorrect kurtosis of nct + + D. Hogben, R. S. Pinkham, M. B. Wilk: The Moments of the Non-Central + t-DistributionAuthor(s): Biometrika, Vol. 48, No. 3/4 (Dec., 1961), + pp. 465-468 + ''' + from numpy.testing import assert_almost_equal + mvsk_10_1 = (1.08372, 1.325546, 0.39993, 1.2499424941142943) + assert_almost_equal(stats.nct.stats(10, 1, moments='mvsk'), mvsk_10_1, decimal=6) + c1=np.array([1.08372]) + c2=np.array([.0755460, 1.25000]) + c3 = np.array([.0297802, .580566]) + c4 = np.array([0.0425458, 1.17491, 6.25]) + + #calculation for df=10, for arbitrary nc + nc = 1 + mc1 = c1.item() + mc2 = (c2*nc**np.array([2,0])).sum() + mc3 = (c3*nc**np.array([3,1])).sum() + mc4 = c4=np.array([0.0425458, 1.17491, 6.25]) + mvsk_nc = mc2mvsk((mc1,mc2,mc3,mc4)) + +if __name__ == '__main__': + + check_cont_basic() + #print [(k, v[0]) for k,v in iteritems(res) if np.abs(v[0]-1)>1e-3] + #print [(k, v[2][0], 1+2*v[2][0]) for k,v in iteritems(res) if np.abs(v[-1]-(1+2*v[2][0]))>1e-3] + mean_ = [(k, v[1][0], v[2][0]) for k,v in iteritems(res) + if np.abs(v[1][0] - v[2][0])>1e-6 and np.isfinite(v[1][0])] + var_ = [(k, v[1][1], v[2][1]) for k,v in iteritems(res) + if np.abs(v[1][1] - v[2][1])>1e-2 and np.isfinite(v[1][1])] + skew = [(k, v[1][2], v[2][2]) for k,v in iteritems(res) + if np.abs(v[1][2] - v[2][2])>1e-2 and np.isfinite(v[1][1])] + kurt = [(k, v[1][3], v[2][3]) for k,v in iteritems(res) + if np.abs(v[1][3] - v[2][3])>1e-2 and np.isfinite(v[1][1])] + + from statsmodels.iolib import SimpleTable + if len(mean_) > 0: + print('\nMean difference at least 1e-6') + print(SimpleTable(mean_, headers=['distname', 'diststats', 'expect'])) + print('\nVariance difference at least 1e-2') + print(SimpleTable(var_, headers=['distname', 'diststats', 'expect'])) + print('\nSkew difference at least 1e-2') + print(SimpleTable(skew, headers=['distname', 'diststats', 'expect'])) + print('\nKurtosis difference at least 1e-2') + print(SimpleTable(kurt, headers=['distname', 'diststats', 'expect'])) diff --git a/statsmodels/sandbox/distributions/tests/distparams.py b/statsmodels/sandbox/distributions/tests/distparams.py new file mode 100644 index 0000000..ba98593 --- /dev/null +++ b/statsmodels/sandbox/distributions/tests/distparams.py @@ -0,0 +1,121 @@ + + +distcont = [ + ['alpha', (3.5704770516650459,)], + ['anglit', ()], + ['arcsine', ()], + ['beta', (2.3098496451481823, 0.62687954300963677)], + ['betaprime', (5, 6)], # avoid unbound error in entropy with (100, 86)], + ['bradford', (0.29891359763170633,)], + ['burr', (10.5, 4.3)], #incorrect mean and var for(0.94839838075366045, 4.3820284068855795)], + ['cauchy', ()], + ['chi', (78,)], + ['chi2', (55,)], + ['cosine', ()], + ['dgamma', (1.1023326088288166,)], + ['dweibull', (2.0685080649914673,)], + ['erlang', (20,)], #correction numargs = 1 + ['expon', ()], + ['exponpow', (2.697119160358469,)], + ['exponweib', (2.8923945291034436, 1.9505288745913174)], + ['f', (29, 18)], + #['fatiguelife', (29,)], #correction numargs = 1, variance very large + ['fatiguelife', (2,)], + ['fisk', (3.0857548622253179,)], + ['foldcauchy', (4.7164673455831894,)], + ['foldnorm', (1.9521253373555869,)], + ['frechet_l', (3.6279911255583239,)], + ['frechet_r', (1.8928171603534227,)], + ['gamma', (1.9932305483800778,)], + ['gausshyper', (13.763771604130699, 3.1189636648681431, + 2.5145980350183019, 5.1811649903971615)], #veryslow + ['genexpon', (9.1325976465418908, 16.231956600590632, 3.2819552690843983)], + ['genextreme', (-0.1,)], # sample mean test fails for (3.3184017469423535,)], + ['gengamma', (4.4162385429431925, 3.1193091679242761)], + ['genhalflogistic', (0.77274727809929322,)], + ['genlogistic', (0.41192440799679475,)], + ['genpareto', (0.1,)], # use case with finite moments + ['gilbrat', ()], + ['gompertz', (0.94743713075105251,)], + ['gumbel_l', ()], + ['gumbel_r', ()], + ['halfcauchy', ()], + ['halflogistic', ()], + ['halfnorm', ()], + ['hypsecant', ()], + #['invgamma', (2.0668996136993067,)], #convergence problem with expect + #['invgamma', (3.0,)], + ['invgamma', (5.0,)], #kurtosis requires alpha > 4 + ['invnorm', (0.14546264555347513,)], + ['invweibull', (10.58,)], # sample mean test fails at(0.58847112119264788,)] + ['johnsonsb', (4.3172675099141058, 3.1837781130785063)], + ['johnsonsu', (2.554395574161155, 2.2482281679651965)], + ['ksone', (1000,)], #replace 22 by 100 to avoid failing range, ticket 956 + ['kstwobign', ()], + ['laplace', ()], + ['levy', ()], + ['levy_l', ()], +# ['levy_stable', (0.35667405469844993, +# -0.67450531578494011)], #NotImplementedError + # rvs not tested + ['loggamma', (0.41411931826052117,)], + ['logistic', ()], + ['loglaplace', (3.2505926592051435,)], + ['lognorm', (0.95368226960575331,)], + ['lomax', (1.8771398388773268,)], #this has infinite variance + ['lomax', (10,)], #first 4 moments are finite + ['maxwell', ()], + ['mielke', (10.4, 3.6)], # sample mean test fails for (4.6420495492121487, 0.59707419545516938)], + # mielke: good results if 2nd parameter >2, weird mean or var below + ['nakagami', (4.9673794866666237,)], + ['ncf', (27, 27, 0.41578441799226107)], + ['nct', (14, 0.24045031331198066)], + ['ncx2', (21, 1.0560465975116415)], + ['norm', ()], + ['pareto', (2.621716532144454,)], + ['powerlaw', (1.6591133289905851,)], + ['powerlognorm', (2.1413923530064087, 0.44639540782048337)], + ['powernorm', (4.4453652254590779,)], + ['rayleigh', ()], + ['rdist', (0.9,)], # feels also slow +# ['rdist', (3.8266985793976525,)], #veryslow, especially rvs + #['rdist', (541.0,)], # from ticket #758 #veryslow + ['recipinvgauss', (0.63004267809369119,)], + ['reciprocal', (0.0062309367010521255, 1.0062309367010522)], + ['rice', (0.7749725210111873,)], + ['semicircular', ()], + ['t', (2.7433514990818093,)], + ['triang', (0.15785029824528218,)], + ['truncexpon', (4.6907725456810478,)], + ['truncnorm', (-1.0978730080013919, 2.7306754109031979)], + ['tukeylambda', (3.1321477856738267,)], + ['uniform', ()], + ['vonmises', (3.9939042581071398,)], + ['wald', ()], + ['weibull_max', (2.8687961709100187,)], + ['weibull_min', (1.7866166930421596,)], + ['wrapcauchy', (0.031071279018614728,)]] + +distdiscrete = [ + ['bernoulli',(0.3,)], + ['binom', (5, 0.4)], + ['boltzmann',(1.4, 19)], + ['dlaplace', (0.8,)], #0.5 + ['geom', (0.5,)], + ['hypergeom',(30, 12, 6)], + ['hypergeom',(21,3,12)], #numpy.random (3,18,12) numpy ticket:921 + ['hypergeom',(21,18,11)], #numpy.random (18,3,11) numpy ticket:921 + ['logser', (0.6,)], # reenabled, numpy ticket:921 + ['nbinom', (5, 0.5)], + ['nbinom', (0.4, 0.4)], #from tickets: 583 + ['planck', (0.51,)], #4.1 + ['poisson', (0.6,)], + ['randint', (7, 31)], + ['skellam', (15, 8)], + ['zipf', (4,)] ] # arg=4 is ok, + # Zipf broken for arg = 2, e.g. weird .stats + # looking closer, mean, var should be inf for arg=2 + +distslow = ['rdist', 'gausshyper', 'recipinvgauss', 'ksone', 'genexpon', + 'vonmises', 'rice', 'mielke', 'semicircular', 'cosine', 'invweibull', + 'powerlognorm', 'johnsonsu', 'kstwobign'] diff --git a/statsmodels/sandbox/distributions/tests/test_extras.py b/statsmodels/sandbox/distributions/tests/test_extras.py new file mode 100644 index 0000000..c71d72d --- /dev/null +++ b/statsmodels/sandbox/distributions/tests/test_extras.py @@ -0,0 +1,120 @@ +# -*- coding: utf-8 -*- +""" +Created on Sun Apr 17 22:13:36 2011 + +@author: josef +""" + +import numpy as np +from numpy.testing import assert_, assert_almost_equal + +from statsmodels.sandbox.distributions.extras import (skewnorm, + skewnorm2, ACSkewT_gen) + + +def test_skewnorm(): + #library("sn") + #dsn(c(-2,-1,0,1,2), shape=10) + #psn(c(-2,-1,0,1,2), shape=10) + #noquote(sprintf("%.15e,", snp)) + pdf_r = np.array([2.973416551551523e-90, 3.687562713971017e-24, + 3.989422804014327e-01, 4.839414490382867e-01, + 1.079819330263761e-01]) + pdf_sn = skewnorm.pdf([-2,-1,0,1,2], 10) + + #res = (snp-snp_r)/snp + assert_(np.allclose(pdf_sn, pdf_r,rtol=1e-13, atol=0)) + + pdf_sn2 = skewnorm2.pdf([-2,-1,0,1,2], 10) + assert_(np.allclose(pdf_sn2, pdf_r, rtol=1e-13, atol=0)) + + + cdf_r = np.array([0.000000000000000e+00, 0.000000000000000e+00, + 3.172551743055357e-02, 6.826894921370859e-01, + 9.544997361036416e-01]) + cdf_sn = skewnorm.cdf([-2,-1,0,1,2], 10) + maxabs = np.max(np.abs(cdf_sn - cdf_r)) + maxrel = np.max(np.abs(cdf_sn - cdf_r)/(cdf_r+1e-50)) + msg = "maxabs=%15.13g, maxrel=%15.13g\n%r\n%r" % (maxabs, maxrel, cdf_sn, + cdf_r) + #assert_(np.allclose(cdf_sn, cdf_r, rtol=1e-13, atol=1e-25), msg=msg) + assert_almost_equal(cdf_sn, cdf_r, decimal=10) + + cdf_sn2 = skewnorm2.cdf([-2,-1,0,1,2], 10) + maxabs = np.max(np.abs(cdf_sn2 - cdf_r)) + maxrel = np.max(np.abs(cdf_sn2 - cdf_r)/(cdf_r+1e-50)) + msg = "maxabs=%15.13g, maxrel=%15.13g" % (maxabs, maxrel) + #assert_(np.allclose(cdf_sn2, cdf_r, rtol=1e-13, atol=1e-25), msg=msg) + assert_almost_equal(cdf_sn2, cdf_r, decimal=10, err_msg=msg) + + +def test_skewt(): + skewt = ACSkewT_gen() + x = [-2, -1, -0.5, 0, 1, 2] + #noquote(sprintf("%.15e,", dst(c(-2,-1, -0.5,0,1,2), shape=10))) + #default in R:sn is df=inf + pdf_r = np.array([2.973416551551523e-90, 3.687562713971017e-24, + 2.018401586422970e-07, 3.989422804014327e-01, + 4.839414490382867e-01, 1.079819330263761e-01]) + pdf_st = skewt.pdf(x, 1000000, 10) + pass + np.allclose(pdf_st, pdf_r, rtol=0, atol=1e-6) + np.allclose(pdf_st, pdf_r, rtol=1e-1, atol=0) + + + #noquote(sprintf("%.15e,", pst(c(-2,-1, -0.5,0,1,2), shape=10))) + cdf_r = np.array([0.000000000000000e+00, 0.000000000000000e+00, + 3.729478836866917e-09, 3.172551743055357e-02, + 6.826894921370859e-01, 9.544997361036416e-01]) + cdf_st = skewt.cdf(x, 1000000, 10) + np.allclose(cdf_st, cdf_r, rtol=0, atol=1e-6) + np.allclose(cdf_st, cdf_r, rtol=1e-1, atol=0) + #assert_(np.allclose(cdf_st, cdf_r, rtol=1e-13, atol=1e-15)) + + + #noquote(sprintf("%.15e,", dst(c(-2,-1, -0.5,0,1,2), shape=10, df=5))) + pdf_r = np.array([2.185448836190663e-07, 1.272381597868587e-05, + 5.746937644959992e-04, 3.796066898224945e-01, + 4.393468708859825e-01, 1.301804021075493e-01]) + pdf_st = skewt.pdf(x, 5, 10) #args = (df, alpha) + assert_(np.allclose(pdf_st, pdf_r, rtol=1e-13, atol=1e-25)) + + #noquote(sprintf("%.15e,", pst(c(-2,-1, -0.5,0,1,2), shape=10, df=5))) + cdf_r = np.array([8.822783669199699e-08, 2.638467463775795e-06, + 6.573106017198583e-05, 3.172551743055352e-02, + 6.367851708183412e-01, 8.980606093979784e-01]) + cdf_st = skewt.cdf(x, 5, 10) #args = (df, alpha) + assert_(np.allclose(cdf_st, cdf_r, rtol=1e-10, atol=0)) + + + #noquote(sprintf("%.15e,", dst(c(-2,-1, -0.5,0,1,2), shape=10, df=1))) + pdf_r = np.array([3.941955996757291e-04, 1.568067236862745e-03, + 6.136996029432048e-03, 3.183098861837907e-01, + 3.167418189469279e-01, 1.269297588738406e-01]) + pdf_st = skewt.pdf(x, 1, 10) #args = (df, alpha) = (1, 10)) + assert_(np.allclose(pdf_st, pdf_r, rtol=1e-13, atol=1e-25)) + + #noquote(sprintf("%.15e,", pst(c(-2,-1, -0.5,0,1,2), shape=10, df=1))) + cdf_r = np.array([7.893671370544414e-04, 1.575817262600422e-03, + 3.128720749105560e-03, 3.172551743055351e-02, + 5.015758172626005e-01, 7.056221318361879e-01]) + cdf_st = skewt.cdf(x, 1, 10) #args = (df, alpha) = (1, 10) + assert_(np.allclose(cdf_st, cdf_r, rtol=1e-13, atol=1e-25)) + + + +if __name__ == '__main__': + import nose + nose.runmodule(argv=['__main__','-vvs','-x','--pdb', '--pdb-failure'], + exit=False) + + print('Done') + + +''' +>>> skewt.pdf([-2,-1,0,1,2], 10000000, 10) +array([ 2.98557345e-90, 3.68850289e-24, 3.98942271e-01, + 4.83941426e-01, 1.07981952e-01]) +>>> skewt.pdf([-2,-1,0,1,2], np.inf, 10) +array([ nan, nan, nan, nan, nan]) +''' diff --git a/statsmodels/sandbox/distributions/tests/test_multivariate.py b/statsmodels/sandbox/distributions/tests/test_multivariate.py new file mode 100644 index 0000000..c3d18e6 --- /dev/null +++ b/statsmodels/sandbox/distributions/tests/test_multivariate.py @@ -0,0 +1,174 @@ +# -*- coding: utf-8 -*- +""" +Created on Sat Apr 16 15:02:13 2011 +@author: Josef Perktold +""" + +import numpy as np +from numpy.testing import assert_almost_equal, assert_array_almost_equal + +from statsmodels.sandbox.distributions.multivariate import ( + mvstdtprob, mvstdnormcdf) +from statsmodels.sandbox.distributions.mv_normal import MVT, MVNormal + +class Test_MVN_MVT_prob(object): + #test for block integratal, cdf, of multivariate t and normal + #comparison results from R + + def __init__(self): + self.corr_equal = np.asarray([[1.0, 0.5, 0.5],[0.5,1,0.5],[0.5,0.5,1]]) + self.a = -1 * np.ones(3) + self.b = 3 * np.ones(3) + self.df = 4 + + corr2 = self.corr_equal.copy() + corr2[2,1] = -0.5 + self.corr2 = corr2 + + + def test_mvn_mvt_1(self): + a, b = self.a, self.b + df = self.df + corr_equal = self.corr_equal + #result from R, mvtnorm with option + #algorithm = GenzBretz(maxpts = 100000, abseps = 0.000001, releps = 0) + # or higher + probmvt_R = 0.60414 #report, ed error approx. 7.5e-06 + probmvn_R = 0.673970 #reported error approx. 6.4e-07 + assert_almost_equal(probmvt_R, mvstdtprob(a, b, corr_equal, df), 4) + assert_almost_equal(probmvn_R, + mvstdnormcdf(a, b, corr_equal, abseps=1e-5), 4) + + mvn_high = mvstdnormcdf(a, b, corr_equal, abseps=1e-8, maxpts=10000000) + assert_almost_equal(probmvn_R, mvn_high, 5) + #this still barely fails sometimes at 6 why?? error is -7.2627419411830374e-007 + #>>> 0.67396999999999996 - 0.67397072627419408 + #-7.2627419411830374e-007 + #>>> assert_almost_equal(0.67396999999999996, 0.67397072627419408, 6) + #Fail + + def test_mvn_mvt_2(self): + a, b = self.a, self.b + df = self.df + corr2 = self.corr2 + + probmvn_R = 0.6472497 #reported error approx. 7.7e-08 + probmvt_R = 0.5881863 #highest reported error up to approx. 1.99e-06 + assert_almost_equal(probmvt_R, mvstdtprob(a, b, corr2, df), 4) + assert_almost_equal(probmvn_R, mvstdnormcdf(a, b, corr2, abseps=1e-5), 4) + + def test_mvn_mvt_3(self): + a, b = self.a, self.b + df = self.df + corr2 = self.corr2 + + #from -inf + #print 'from -inf' + a2 = a.copy() + a2[:] = -np.inf + probmvn_R = 0.9961141 #using higher precision in R, error approx. 6.866163e-07 + probmvt_R = 0.9522146 #using higher precision in R, error approx. 1.6e-07 + assert_almost_equal(probmvt_R, mvstdtprob(a2, b, corr2, df), 4) + assert_almost_equal(probmvn_R, mvstdnormcdf(a2, b, corr2, maxpts=100000, + abseps=1e-5), 4) + + def test_mvn_mvt_4(self): + a, bl = self.a, self.b + df = self.df + corr2 = self.corr2 + + #from 0 to inf + #print '0 inf' + a2 = a.copy() + a2[:] = -np.inf + probmvn_R = 0.1666667 #error approx. 6.1e-08 + probmvt_R = 0.1666667 #error approx. 8.2e-08 + assert_almost_equal(probmvt_R, mvstdtprob(np.zeros(3), -a2, corr2, df), 4) + assert_almost_equal(probmvn_R, + mvstdnormcdf(np.zeros(3), -a2, corr2, + maxpts=100000, abseps=1e-5), 4) + + def test_mvn_mvt_5(self): + a, bl = self.a, self.b + df = self.df + corr2 = self.corr2 + + #unequal integration bounds + #print "ue" + a3 = np.array([0.5, -0.5, 0.5]) + probmvn_R = 0.06910487 #using higher precision in R, error approx. 3.5e-08 + probmvt_R = 0.05797867 #using higher precision in R, error approx. 5.8e-08 + assert_almost_equal(mvstdtprob(a3, a3+1, corr2, df), probmvt_R, 4) + assert_almost_equal(probmvn_R, mvstdnormcdf(a3, a3+1, corr2, + maxpts=100000, abseps=1e-5), 4) + + +class TestMVDistributions(object): + #this is not well organized + + def __init__(self): + covx = np.array([[1.0, 0.5], [0.5, 1.0]]) + mu3 = [-1, 0., 2.] + cov3 = np.array([[ 1. , 0.5 , 0.75], + [ 0.5 , 1.5 , 0.6 ], + [ 0.75, 0.6 , 2. ]]) + self.mu3 = mu3 + self.cov3 = cov3 + + mvn3 = MVNormal(mu3, cov3) + mvn3c = MVNormal(np.array([0,0,0]), cov3) + self.mvn3 = mvn3 + self.mvn3c = mvn3c + + + def test_mvn_pdf(self): + cov3 = self.cov3 + mvn3 = self.mvn3 + mvn3c = self.mvn3c + + r_val = [-7.667977543898155, -6.917977543898155, -5.167977543898155] + assert_array_almost_equal( mvn3.logpdf(cov3), r_val, decimal = 14) + #decimal 18 + r_val = [0.000467562492721686, 0.000989829804859273, 0.005696077243833402] + assert_array_almost_equal( mvn3.pdf(cov3), r_val, decimal = 17) + #cheating new mean, same cov, too dangerous, got wrong instance in tests + #mvn3.mean = np.array([0,0,0]) + mvn3b = MVNormal(np.array([0,0,0]), cov3) + r_val = [0.02914269740502042, 0.02269635555984291, 0.01767593948287269] + assert_array_almost_equal( mvn3b.pdf(cov3), r_val, decimal = 16) + + def test_mvt_pdf(self): + cov3 = self.cov3 + mu3 = self.mu3 + + mvt = MVT((0,0), 1, 5) + assert_almost_equal(mvt.logpdf(np.array([0.,0.])), -1.837877066409345, + decimal=15) + assert_almost_equal(mvt.pdf(np.array([0.,0.])), 0.1591549430918953, + decimal=15) + + mvt.logpdf(np.array([1.,1.]))-(-3.01552989458359) + + mvt1 = MVT((0,0), 1, 1) + mvt1.logpdf(np.array([1.,1.]))-(-3.48579549941151) #decimal=16 + + rvs = mvt.rvs(100000) + assert_almost_equal(np.cov(rvs, rowvar=0), mvt.cov, decimal=1) + + mvt31 = MVT(mu3, cov3, 1) + assert_almost_equal(mvt31.pdf(cov3), + [0.0007276818698165781, 0.0009980625182293658, 0.0027661422056214652], + decimal=17) + + mvt = MVT(mu3, cov3, 3) + assert_almost_equal(mvt.pdf(cov3), + [0.000863777424247410, 0.001277510788307594, 0.004156314279452241], + decimal=17) + + +if __name__ == '__main__': + import nose + nose.runmodule(argv=['__main__','-vvs','-x'],#,'--pdb', '--pdb-failure'], + exit=False) + + print('Done') diff --git a/statsmodels/sandbox/distributions/tests/test_norm_expan.py b/statsmodels/sandbox/distributions/tests/test_norm_expan.py new file mode 100644 index 0000000..5bc6041 --- /dev/null +++ b/statsmodels/sandbox/distributions/tests/test_norm_expan.py @@ -0,0 +1,94 @@ +# -*- coding: utf-8 -*- +"""Unit tests for Gram-Charlier exansion + +No reference results, test based on consistency and normal case. + +Created on Wed Feb 19 12:39:49 2014 + +Author: Josef Perktold +""" + +import numpy as np +from scipy import stats + +from numpy.testing import assert_allclose, assert_array_less + +from statsmodels.sandbox.distributions.extras import (SkewNorm_gen, + NormExpan_gen, pdf_moments) +from statsmodels.stats.moment_helpers import mc2mvsk, mnc2mc + + +class CheckDistribution(object): + + def test_smoke(self): + self.dist1.rvs(size=10) + self.dist1.pdf(np.linspace(-4, 4, 11)) + + # round trip + probs = np.linspace(0.001, 0.999, 6) + ppf = self.dist2.ppf(probs) + cdf = self.dist2.cdf(ppf) + assert_allclose(cdf, probs, rtol=1e-6) + sf = self.dist2.sf(ppf) + assert_allclose(sf, 1 - probs, rtol=1e-6) + + +class CheckExpandNorm(CheckDistribution): + + def test_pdf(self): + scale = getattr(self, 'scale', 1) + x = np.linspace(-4, 4, 11) * scale + pdf2 = self.dist2.pdf(x) + pdf1 = self.dist1.pdf(x) + atol_pdf = getattr(self, 'atol_pdf', 0) + assert_allclose(((pdf2 - pdf1)**2).mean(), 0, rtol=1e-6, atol=atol_pdf) + assert_allclose(pdf2, pdf1, rtol=1e-6, atol=atol_pdf) + + def test_mvsk(self): + #compare defining mvsk with numerical integration, generic stats + mvsk2 = self.dist2.mvsk + mvsk1 = self.dist2.stats(moments='mvsk') + assert_allclose(mvsk2, mvsk1, rtol=1e-6, atol=1e-13) + + # check mvsk that was used to generate distribution + assert_allclose(self.dist2.mvsk, self.mvsk, rtol=1e-12) + + + +class TestExpandNormMom(CheckExpandNorm): + # compare with normal, skew=0, excess_kurtosis=0 + + @classmethod + def setup_class(kls): + kls.scale = 2 + kls.dist1 = stats.norm(1, 2) + kls.mvsk = [1., 2**2, 0, 0] + kls.dist2 = NormExpan_gen(kls.mvsk, mode='mvsk') + + +class TestExpandNormSample(object): + # don't subclass CheckExpandNorm, + # precision not high enough because of mvsk from data + + @classmethod + def setup_class(kls): + kls.dist1 = dist1 = stats.norm(1, 2) + np.random.seed(5999) + kls.rvs = dist1.rvs(size=200) + #rvs = np.concatenate([rvs, -rvs]) + # fix mean and std of sample + #rvs = (rvs - rvs.mean())/rvs.std(ddof=1) * np.sqrt(2) + 1 + kls.dist2 = NormExpan_gen(kls.rvs, mode='sample') + + kls.scale = 2 + kls.atol_pdf = 1e-3 + + def test_ks(self): + # cdf is slow + # Kolmogorov-Smirnov test against generating sample + stat, pvalue = stats.kstest(self.rvs, self.dist2.cdf) + assert_array_less(0.25, pvalue) + + def test_mvsk(self): + mvsk = stats.describe(self.rvs)[-4:] + assert_allclose(self.dist2.mvsk, mvsk, rtol=1e-12) diff --git a/statsmodels/sandbox/distributions/tests/testtransf.py b/statsmodels/sandbox/distributions/tests/testtransf.py new file mode 100644 index 0000000..9d87b91 --- /dev/null +++ b/statsmodels/sandbox/distributions/tests/testtransf.py @@ -0,0 +1,179 @@ +# -*- coding: utf-8 -*- +""" + + +Created on Sun May 09 22:35:21 2010 +Author: josef-pktd +License: BSD + +todo: +change moment calculation, (currently uses default _ppf method - I think) +>>> lognormalg.moment(4) +Warning: The algorithm does not converge. Roundoff error is detected + in the extrapolation table. It is assumed that the requested tolerance + cannot be achieved, and that the returned result (if full_output = 1) is + the best which can be obtained. +array(2981.0032380193438) +""" +from __future__ import print_function +import warnings # for silencing, see above... +import numpy as np +from numpy.testing import assert_almost_equal +from scipy import stats, special +from statsmodels.sandbox.distributions.extras import ( + lognormalg, squarenormalg, absnormalg, negsquarenormalg, squaretg) + + +# some patches to scipy.stats.distributions so tests work and pass +# this should be necessary only for older scipy + +#patch frozen distributions with a name +stats.distributions.rv_frozen.name = property(lambda self: self.dist.name) + +#patch f distribution, correct skew and maybe kurtosis +def f_stats(self, dfn, dfd): + arr, where, inf, sqrt, nan = np.array, np.where, np.inf, np.sqrt, np.nan + v2 = arr(dfd*1.0) + v1 = arr(dfn*1.0) + mu = where (v2 > 2, v2 / arr(v2 - 2), inf) + mu2 = 2*v2*v2*(v2+v1-2)/(v1*(v2-2)**2 * (v2-4)) + mu2 = where(v2 > 4, mu2, inf) + #g1 = 2*(v2+2*v1-2)/(v2-6)*sqrt((2*v2-4)/(v1*(v2+v1-2))) + g1 = 2*(v2+2*v1-2.)/(v2-6.)*np.sqrt(2*(v2-4.)/(v1*(v2+v1-2.))) + g1 = where(v2 > 6, g1, nan) + #g2 = 3/(2*v2-16)*(8+g1*g1*(v2-6)) + g2 = 3/(2.*v2-16)*(8+g1*g1*(v2-6.)) + g2 = where(v2 > 8, g2, nan) + return mu, mu2, g1, g2 + +#stats.distributions.f_gen._stats = f_stats +stats.f.__class__._stats = f_stats + +#correct kurtosis by subtracting 3 (Fisher) +#after this it matches halfnorm for arg close to zero +def foldnorm_stats(self, c): + arr, where, inf, sqrt, nan = np.array, np.where, np.inf, np.sqrt, np.nan + exp = np.exp + pi = np.pi + + fac = special.erf(c/sqrt(2)) + mu = sqrt(2.0/pi)*exp(-0.5*c*c)+c*fac + mu2 = c*c + 1 - mu*mu + c2 = c*c + g1 = sqrt(2/pi)*exp(-1.5*c2)*(4-pi*exp(c2)*(2*c2+1.0)) + g1 += 2*c*fac*(6*exp(-c2) + 3*sqrt(2*pi)*c*exp(-c2/2.0)*fac + \ + pi*c*(fac*fac-1)) + g1 /= pi*mu2**1.5 + + g2 = c2*c2+6*c2+3+6*(c2+1)*mu*mu - 3*mu**4 + g2 -= 4*exp(-c2/2.0)*mu*(sqrt(2.0/pi)*(c2+2)+c*(c2+3)*exp(c2/2.0)*fac) + g2 /= mu2**2.0 + g2 -= 3. + return mu, mu2, g1, g2 + +#stats.distributions.foldnorm_gen._stats = foldnorm_stats +stats.foldnorm.__class__._stats = foldnorm_stats + + +#----------------------------- + +DECIMAL = 5 + +class Test_Transf2(object): + + def __init__(self): + self.dist_equivalents = [ + #transf, stats.lognorm(1)) + #The below fails on the SPARC box with scipy 10.1 + #(lognormalg, stats.lognorm(1)), + #transf2 + (squarenormalg, stats.chi2(1)), + (absnormalg, stats.halfnorm), + (absnormalg, stats.foldnorm(1e-5)), #try frozen + #(negsquarenormalg, 1-stats.chi2), # won't work as distribution + (squaretg(10), stats.f(1, 10)) + ] #try both frozen + + l,s = 0.0, 1.0 + self.ppfq = [0.1,0.5,0.9] + self.xx = [0.95,1.0,1.1] + self.nxx = [-0.95,-1.0,-1.1] + + def test_equivalent(self): + xx, ppfq = self.xx, self.ppfq + for d1,d2 in self.dist_equivalents: +## print d1.name + assert_almost_equal(d1.cdf(xx), d2.cdf(xx), err_msg='cdf'+d1.name) + assert_almost_equal(d1.pdf(xx), d2.pdf(xx), + err_msg='pdf '+d1.name+d2.name) + assert_almost_equal(d1.sf(xx), d2.sf(xx), + err_msg='sf '+d1.name+d2.name) + assert_almost_equal(d1.ppf(ppfq), d2.ppf(ppfq), + err_msg='ppq '+d1.name+d2.name) + assert_almost_equal(d1.isf(ppfq), d2.isf(ppfq), + err_msg='isf '+d1.name+d2.name) + self.d1 = d1 + self.d2 = d2 +## print d1, d2 +## print d1.moment(3) +## print d2.moment(3) + #work around bug#1293 + if hasattr(d2, 'dist'): + d2mom = d2.dist.moment(3, *d2.args) + else: + d2mom = d2.moment(3) + assert_almost_equal(d1.moment(3), d2mom, + DECIMAL, + err_msg='moment '+d1.name+d2.name) + # silence warnings in scipy, works for versions + # after print changed to warning in scipy + orig_filter = warnings.filters[:] + warnings.simplefilter('ignore') + try: + s1 = d1.stats(moments='mvsk') + s2 = d2.stats(moments='mvsk') + finally: + warnings.filters = orig_filter + #stats(moments='k') prints warning for lognormalg + assert_almost_equal(s1[:2], s2[:2], + err_msg='stats '+d1.name+d2.name) + assert_almost_equal(s1[2:], s2[2:], + decimal=2, #lognorm for kurtosis + err_msg='stats '+d1.name+d2.name) + + + + def test_equivalent_negsq(self): + #special case negsquarenormalg + #negsquarenormalg.cdf(x) == stats.chi2(1).cdf(-x), for x<=0 + + xx, nxx, ppfq = self.xx, self.nxx, self.ppfq + d1,d2 = (negsquarenormalg, stats.chi2(1)) + #print d1.name + assert_almost_equal(d1.cdf(nxx), 1-d2.cdf(xx), err_msg='cdf'+d1.name) + assert_almost_equal(d1.pdf(nxx), d2.pdf(xx)) + assert_almost_equal(d1.sf(nxx), 1-d2.sf(xx)) + assert_almost_equal(d1.ppf(ppfq), -d2.ppf(ppfq)[::-1]) + assert_almost_equal(d1.isf(ppfq), -d2.isf(ppfq)[::-1]) + assert_almost_equal(d1.moment(3), -d2.moment(3)) + ch2oddneg = [v*(-1)**(i+1) for i,v in + enumerate(d2.stats(moments='mvsk'))] + assert_almost_equal(d1.stats(moments='mvsk'), ch2oddneg, + err_msg='stats '+d1.name+d2.name) + + +if __name__ == '__main__': + tt = Test_Transf2() + tt.test_equivalent() + tt.test_equivalent_negsq() + + debug = 0 + if debug: + print(negsquarenormalg.ppf([0.1,0.5,0.9])) + print(stats.chi2.ppf([0.1,0.5,0.9],1)) + print(negsquarenormalg.a) + print(negsquarenormalg.b) + + print(absnormalg.stats( moments='mvsk')) + print(stats.foldnorm(1e-10).stats( moments='mvsk')) + print(stats.halfnorm.stats( moments='mvsk')) diff --git a/statsmodels/sandbox/distributions/transform_functions.py b/statsmodels/sandbox/distributions/transform_functions.py new file mode 100644 index 0000000..11ab765 --- /dev/null +++ b/statsmodels/sandbox/distributions/transform_functions.py @@ -0,0 +1,191 @@ +# -*- coding: utf-8 -*- +"""Nonlinear Transformation classes + + +Created on Sat Apr 16 16:06:11 2011 + +Author: Josef Perktold +License : BSD +""" +from __future__ import print_function +import numpy as np + + +class TransformFunction(object): + + def __call__(self, x): + self.func(x) + + + +## Hump and U-shaped functions + + +class SquareFunc(TransformFunction): + '''class to hold quadratic function with inverse function and derivative + + using instance methods instead of class methods, if we want extension + to parameterized function + ''' + + def func(self, x): + return np.power(x, 2.) + + def inverseplus(self, x): + return np.sqrt(x) + + def inverseminus(self, x): + return 0.0 - np.sqrt(x) + + def derivplus(self, x): + return 0.5/np.sqrt(x) + + def derivminus(self, x): + return 0.0 - 0.5/np.sqrt(x) + + + + +class NegSquareFunc(TransformFunction): + '''negative quadratic function + + ''' + def func(self, x): + return -np.power(x,2) + + def inverseplus(self, x): + return np.sqrt(-x) + + def inverseminus(self, x): + return 0.0 - np.sqrt(-x) + + def derivplus(self, x): + return 0.0 - 0.5/np.sqrt(-x) + + def derivminus(self, x): + return 0.5/np.sqrt(-x) + + +class AbsFunc(TransformFunction): + '''class for absolute value transformation + ''' + + def func(self, x): + return np.abs(x) + + def inverseplus(self, x): + return x + + def inverseminus(self, x): + return 0.0 - x + + def derivplus(self, x): + return 1.0 + + def derivminus(self, x): + return 0.0 - 1.0 + + +## monotonic functions +# more monotone functions in families.links, some for restricted domains + + +class LogFunc(TransformFunction): + + def func(self, x): + return np.log(x) + + def inverse(self, y): + return np.exp(y) + + def deriv(self, x): + return 1./x + +class ExpFunc(TransformFunction): + + + def func(self, x): + return np.exp(x) + + def inverse(self, y): + return np.log(y) + + def deriv(self, x): + return np.exp(x) + + +class BoxCoxNonzeroFunc(TransformFunction): + + def __init__(self, lamda): + self.lamda = lamda + + def func(self, x): + return (np.power(x, self.lamda) - 1)/self.lamda + + def inverse(self, y): + return (self.lamda * y + 1)/self.lamda + + def deriv(self, x): + return np.power(x, self.lamda - 1) + + +class AffineFunc(TransformFunction): + + def __init__(self, constant, slope): + self.constant = constant + self.slope = slope + + def func(self, x): + return self.constant + self.slope * x + + def inverse(self, y): + return (y - self.constant) / self.slope + + def deriv(self, x): + return self.slope + + +class ChainFunc(TransformFunction): + + def __init__(self, finn, fout): + self.finn = finn + self.fout = fout + + def func(self, x): + return self.fout.func(self.finn.func(x)) + + def inverse(self, y): + return self.f1.inverse(self.fout.inverse(y)) + + def deriv(self, x): + z = self.finn.func(x) + return self.fout.deriv(z) * self.finn.deriv(x) + + +#def inverse(x): +# return np.divide(1.0,x) +# +#mux, stdx = 0.05, 0.1 +#mux, stdx = 9.0, 1.0 +#def inversew(x): +# return 1.0/(1+mux+x*stdx) +#def inversew_inv(x): +# return (1.0/x - 1.0 - mux)/stdx #.np.divide(1.0,x)-10 +# +#def identit(x): +# return x + + +if __name__ == '__main__': + absf = AbsFunc() + absf.func(5) == 5 + absf.func(-5) == 5 + absf.inverseplus(5) == 5 + absf.inverseminus(5) == -5 + + chainf = ChainFunc(AffineFunc(1,2), BoxCoxNonzeroFunc(2)) + print(chainf.func(3.)) + chainf2 = ChainFunc(BoxCoxNonzeroFunc(2), AffineFunc(1,2)) + print(chainf.func(3.)) + + diff --git a/statsmodels/sandbox/distributions/transformed.py b/statsmodels/sandbox/distributions/transformed.py new file mode 100644 index 0000000..6c6d538 --- /dev/null +++ b/statsmodels/sandbox/distributions/transformed.py @@ -0,0 +1,459 @@ + + +## copied from nonlinear_transform_gen.py + +''' A class for the distribution of a non-linear monotonic transformation of a continuous random variable + +simplest usage: +example: create log-gamma distribution, i.e. y = log(x), + where x is gamma distributed (also available in scipy.stats) + loggammaexpg = Transf_gen(stats.gamma, np.log, np.exp) + +example: what is the distribution of the discount factor y=1/(1+x) + where interest rate x is normally distributed with N(mux,stdx**2)')? + (just to come up with a story that implies a nice transformation) + invnormalg = Transf_gen(stats.norm, inversew, inversew_inv, decr=True, a=-np.inf) + +This class does not work well for distributions with difficult shapes, + e.g. 1/x where x is standard normal, because of the singularity and jump at zero. + +Note: I'm working from my version of scipy.stats.distribution. + But this script runs under scipy 0.6.0 (checked with numpy: 1.2.0rc2 and python 2.4) + +This is not yet thoroughly tested, polished or optimized + +TODO: + * numargs handling is not yet working properly, numargs needs to be specified (default = 0 or 1) + * feeding args and kwargs to underlying distribution is untested and incomplete + * distinguish args and kwargs for the transformed and the underlying distribution + - currently all args and no kwargs are transmitted to underlying distribution + - loc and scale only work for transformed, but not for underlying distribution + - possible to separate args for transformation and underlying distribution parameters + + * add _rvs as method, will be faster in many cases + + +Created on Tuesday, October 28, 2008, 12:40:37 PM +Author: josef-pktd +License: BSD + +''' +from __future__ import print_function +from statsmodels.compat.python import iteritems +from scipy import integrate # for scipy 0.6.0 + +from scipy import stats, info +from scipy.stats import distributions +import numpy as np + +def get_u_argskwargs(**kwargs): + #Todo: What's this? wrong spacing, used in Transf_gen TransfTwo_gen + u_kwargs = dict((k.replace('u_','',1),v) for k,v in iteritems(kwargs) + if k.startswith('u_')) + u_args = u_kwargs.pop('u_args',None) + return u_args, u_kwargs + +class Transf_gen(distributions.rv_continuous): + '''a class for non-linear monotonic transformation of a continuous random variable + + ''' + def __init__(self, kls, func, funcinv, *args, **kwargs): + #print(args + #print(kwargs + + self.func = func + self.funcinv = funcinv + #explicit for self.__dict__.update(kwargs) + #need to set numargs because inspection does not work + self.numargs = kwargs.pop('numargs', 0) + #print(self.numargs + name = kwargs.pop('name','transfdist') + longname = kwargs.pop('longname','Non-linear transformed distribution') + extradoc = kwargs.pop('extradoc',None) + a = kwargs.pop('a', -np.inf) + b = kwargs.pop('b', np.inf) + self.decr = kwargs.pop('decr', False) + #defines whether it is a decreasing (True) + # or increasing (False) monotonic transformation + + + self.u_args, self.u_kwargs = get_u_argskwargs(**kwargs) + self.kls = kls #(self.u_args, self.u_kwargs) + # possible to freeze the underlying distribution + + super(Transf_gen,self).__init__(a=a, b=b, name = name, + shapes=kls.shapes, + longname = longname, + extradoc = extradoc) + + def _cdf(self,x,*args, **kwargs): + #print(args + if not self.decr: + return self.kls._cdf(self.funcinv(x),*args, **kwargs) + #note scipy _cdf only take *args not *kwargs + else: + return 1.0 - self.kls._cdf(self.funcinv(x),*args, **kwargs) + def _ppf(self, q, *args, **kwargs): + if not self.decr: + return self.func(self.kls._ppf(q,*args, **kwargs)) + else: + return self.func(self.kls._ppf(1-q,*args, **kwargs)) + + +def inverse(x): + return np.divide(1.0,x) + +mux, stdx = 0.05, 0.1 +mux, stdx = 9.0, 1.0 +def inversew(x): + return 1.0/(1+mux+x*stdx) +def inversew_inv(x): + return (1.0/x - 1.0 - mux)/stdx #.np.divide(1.0,x)-10 + +def identit(x): + return x + +invdnormalg = Transf_gen(stats.norm, inversew, inversew_inv, decr=True, #a=-np.inf, + numargs = 0, name = 'discf', longname = 'normal-based discount factor', + extradoc = '\ndistribution of discount factor y=1/(1+x)) with x N(0.05,0.1**2)') + +lognormalg = Transf_gen(stats.norm, np.exp, np.log, + numargs = 2, a=0, name = 'lnnorm', + longname = 'Exp transformed normal', + extradoc = '\ndistribution of y = exp(x), with x standard normal' + 'precision for moment andstats is not very high, 2-3 decimals') + + +loggammaexpg = Transf_gen(stats.gamma, np.log, np.exp, numargs=1) + +## copied form nonlinear_transform_short.py + +'''univariate distribution of a non-linear monotonic transformation of a +random variable + +''' +from scipy import stats +from scipy.stats import distributions +import numpy as np + +class ExpTransf_gen(distributions.rv_continuous): + '''Distribution based on log/exp transformation + + the constructor can be called with a distribution class + and generates the distribution of the transformed random variable + + ''' + def __init__(self, kls, *args, **kwargs): + #print(args + #print(kwargs + #explicit for self.__dict__.update(kwargs) + if 'numargs' in kwargs: + self.numargs = kwargs['numargs'] + else: + self.numargs = 1 + if 'name' in kwargs: + name = kwargs['name'] + else: + name = 'Log transformed distribution' + if 'a' in kwargs: + a = kwargs['a'] + else: + a = 0 + super(ExpTransf_gen,self).__init__(a=a, name=name) + self.kls = kls + def _cdf(self,x,*args): + #print(args + return self.kls._cdf(np.log(x),*args) + def _ppf(self, q, *args): + return np.exp(self.kls._ppf(q,*args)) + +class LogTransf_gen(distributions.rv_continuous): + '''Distribution based on log/exp transformation + + the constructor can be called with a distribution class + and generates the distribution of the transformed random variable + + ''' + def __init__(self, kls, *args, **kwargs): + #explicit for self.__dict__.update(kwargs) + if 'numargs' in kwargs: + self.numargs = kwargs['numargs'] + else: + self.numargs = 1 + if 'name' in kwargs: + name = kwargs['name'] + else: + name = 'Log transformed distribution' + if 'a' in kwargs: + a = kwargs['a'] + else: + a = 0 + + super(LogTransf_gen,self).__init__(a=a, name = name) + self.kls = kls + + def _cdf(self,x, *args): + #print(args + return self.kls._cdf(np.exp(x),*args) + def _ppf(self, q, *args): + return np.log(self.kls._ppf(q,*args)) + +def examples_transf(): + ##lognormal = ExpTransf(a=0.0, xa=-10.0, name = 'Log transformed normal') + ##print(lognormal.cdf(1) + ##print(stats.lognorm.cdf(1,1) + ##print(lognormal.stats() + ##print(stats.lognorm.stats(1) + ##print(lognormal.rvs(size=10) + + print('Results for lognormal') + lognormalg = ExpTransf_gen(stats.norm, a=0, name = 'Log transformed normal general') + print(lognormalg.cdf(1)) + print(stats.lognorm.cdf(1,1)) + print(lognormalg.stats()) + print(stats.lognorm.stats(1)) + print(lognormalg.rvs(size=5)) + + ##print('Results for loggamma' + ##loggammag = ExpTransf_gen(stats.gamma) + ##print(loggammag._cdf(1,10) + ##print(stats.loggamma.cdf(1,10) + + print('Results for expgamma') + loggammaexpg = LogTransf_gen(stats.gamma) + print(loggammaexpg._cdf(1,10)) + print(stats.loggamma.cdf(1,10)) + print(loggammaexpg._cdf(2,15)) + print(stats.loggamma.cdf(2,15)) + + + # this requires change in scipy.stats.distribution + #print(loggammaexpg.cdf(1,10) + + print('Results for loglaplace') + loglaplaceg = LogTransf_gen(stats.laplace) + print(loglaplaceg._cdf(2,10)) + print(stats.loglaplace.cdf(2,10)) + loglaplaceexpg = ExpTransf_gen(stats.laplace) + print(loglaplaceexpg._cdf(2,10)) + + + + +## copied from transformtwo.py + +''' +Created on Apr 28, 2009 + +@author: Josef Perktold +''' + +''' A class for the distribution of a non-linear u-shaped or hump shaped transformation of a +continuous random variable + +This is a companion to the distributions of non-linear monotonic transformation to the case +when the inverse mapping is a 2-valued correspondence, for example for absolute value or square + +simplest usage: +example: create squared distribution, i.e. y = x**2, + where x is normal or t distributed + + +This class does not work well for distributions with difficult shapes, + e.g. 1/x where x is standard normal, because of the singularity and jump at zero. + + +This verifies for normal - chi2, normal - halfnorm, foldnorm, and t - F + +TODO: + * numargs handling is not yet working properly, + numargs needs to be specified (default = 0 or 1) + * feeding args and kwargs to underlying distribution works in t distribution example + * distinguish args and kwargs for the transformed and the underlying distribution + - currently all args and no kwargs are transmitted to underlying distribution + - loc and scale only work for transformed, but not for underlying distribution + - possible to separate args for transformation and underlying distribution parameters + + * add _rvs as method, will be faster in many cases + +''' + + +class TransfTwo_gen(distributions.rv_continuous): + '''Distribution based on a non-monotonic (u- or hump-shaped transformation) + + the constructor can be called with a distribution class, and functions + that define the non-linear transformation. + and generates the distribution of the transformed random variable + + Note: the transformation, it's inverse and derivatives need to be fully + specified: func, funcinvplus, funcinvminus, derivplus, derivminus. + Currently no numerical derivatives or inverse are calculated + + This can be used to generate distribution instances similar to the + distributions in scipy.stats. + + ''' + #a class for non-linear non-monotonic transformation of a continuous random variable + def __init__(self, kls, func, funcinvplus, funcinvminus, derivplus, + derivminus, *args, **kwargs): + #print(args + #print(kwargs + + self.func = func + self.funcinvplus = funcinvplus + self.funcinvminus = funcinvminus + self.derivplus = derivplus + self.derivminus = derivminus + #explicit for self.__dict__.update(kwargs) + #need to set numargs because inspection does not work + self.numargs = kwargs.pop('numargs', 0) + #print(self.numargs + name = kwargs.pop('name','transfdist') + longname = kwargs.pop('longname','Non-linear transformed distribution') + extradoc = kwargs.pop('extradoc',None) + a = kwargs.pop('a', -np.inf) # attached to self in super + b = kwargs.pop('b', np.inf) # self.a, self.b would be overwritten + self.shape = kwargs.pop('shape', False) + #defines whether it is a `u` shaped or `hump' shaped + # transformation + + + self.u_args, self.u_kwargs = get_u_argskwargs(**kwargs) + self.kls = kls #(self.u_args, self.u_kwargs) + # possible to freeze the underlying distribution + + super(TransfTwo_gen,self).__init__(a=a, b=b, + name = name, + shapes=kls.shapes, + longname = longname, + extradoc = extradoc) + + def _rvs(self, *args): + self.kls._size = self._size #size attached to self, not function argument + return self.func(self.kls._rvs(*args)) + + def _pdf(self,x,*args, **kwargs): + #print(args + if self.shape == 'u': + signpdf = 1 + elif self.shape == 'hump': + signpdf = -1 + else: + raise ValueError('shape can only be `u` or `hump`') + + return signpdf * (self.derivplus(x)*self.kls._pdf(self.funcinvplus(x),*args, **kwargs) - + self.derivminus(x)*self.kls._pdf(self.funcinvminus(x),*args, **kwargs)) + #note scipy _cdf only take *args not *kwargs + + def _cdf(self,x,*args, **kwargs): + #print(args + if self.shape == 'u': + return self.kls._cdf(self.funcinvplus(x),*args, **kwargs) - \ + self.kls._cdf(self.funcinvminus(x),*args, **kwargs) + #note scipy _cdf only take *args not *kwargs + else: + return 1.0 - self._sf(x,*args, **kwargs) + + def _sf(self,x,*args, **kwargs): + #print(args + if self.shape == 'hump': + return self.kls._cdf(self.funcinvplus(x),*args, **kwargs) - \ + self.kls._cdf(self.funcinvminus(x),*args, **kwargs) + #note scipy _cdf only take *args not *kwargs + else: + return 1.0 - self._cdf(x, *args, **kwargs) + + def _munp(self, n,*args, **kwargs): + return self._mom0_sc(n,*args) +# ppf might not be possible in general case? +# should be possible in symmetric case +# def _ppf(self, q, *args, **kwargs): +# if self.shape == 'u': +# return self.func(self.kls._ppf(q,*args, **kwargs)) +# elif self.shape == 'hump': +# return self.func(self.kls._ppf(1-q,*args, **kwargs)) + +#TODO: rename these functions to have unique names + +class SquareFunc(object): + '''class to hold quadratic function with inverse function and derivative + + using instance methods instead of class methods, if we want extension + to parameterized function + ''' + def inverseplus(self, x): + return np.sqrt(x) + + def inverseminus(self, x): + return 0.0 - np.sqrt(x) + + def derivplus(self, x): + return 0.5/np.sqrt(x) + + def derivminus(self, x): + return 0.0 - 0.5/np.sqrt(x) + + def squarefunc(self, x): + return np.power(x,2) + +sqfunc = SquareFunc() + +squarenormalg = TransfTwo_gen(stats.norm, sqfunc.squarefunc, sqfunc.inverseplus, + sqfunc.inverseminus, sqfunc.derivplus, sqfunc.derivminus, + shape='u', a=0.0, b=np.inf, + numargs = 0, name = 'squarenorm', longname = 'squared normal distribution', + extradoc = '\ndistribution of the square of a normal random variable' +\ + ' y=x**2 with x N(0.0,1)') + #u_loc=l, u_scale=s) +squaretg = TransfTwo_gen(stats.t, sqfunc.squarefunc, sqfunc.inverseplus, + sqfunc.inverseminus, sqfunc.derivplus, sqfunc.derivminus, + shape='u', a=0.0, b=np.inf, + numargs = 1, name = 'squarenorm', longname = 'squared t distribution', + extradoc = '\ndistribution of the square of a t random variable' +\ + ' y=x**2 with x t(dof,0.0,1)') + +def inverseplus(x): + return np.sqrt(-x) + +def inverseminus(x): + return 0.0 - np.sqrt(-x) + +def derivplus(x): + return 0.0 - 0.5/np.sqrt(-x) + +def derivminus(x): + return 0.5/np.sqrt(-x) + +def negsquarefunc(x): + return -np.power(x,2) + + +negsquarenormalg = TransfTwo_gen(stats.norm, negsquarefunc, inverseplus, inverseminus, + derivplus, derivminus, shape='hump', a=-np.inf, b=0.0, + numargs = 0, name = 'negsquarenorm', longname = 'negative squared normal distribution', + extradoc = '\ndistribution of the negative square of a normal random variable' +\ + ' y=-x**2 with x N(0.0,1)') + #u_loc=l, u_scale=s) + +def inverseplus(x): + return x + +def inverseminus(x): + return 0.0 - x + +def derivplus(x): + return 1.0 + +def derivminus(x): + return 0.0 - 1.0 + +def absfunc(x): + return np.abs(x) + + +absnormalg = TransfTwo_gen(stats.norm, np.abs, inverseplus, inverseminus, + derivplus, derivminus, shape='u', a=0.0, b=np.inf, + numargs = 0, name = 'absnorm', longname = 'absolute of normal distribution', + extradoc = '\ndistribution of the absolute value of a normal random variable' +\ + ' y=abs(x) with x N(0,1)') diff --git a/statsmodels/sandbox/distributions/try_max.py b/statsmodels/sandbox/distributions/try_max.py new file mode 100644 index 0000000..6e1bf8c --- /dev/null +++ b/statsmodels/sandbox/distributions/try_max.py @@ -0,0 +1,75 @@ +''' + +adjusted from Denis on pystatsmodels mailing list + +there might still be problems with loc and scale, + +''' + + +from __future__ import division +import numpy as np +from scipy import stats +__date__ = "2010-12-29 dec" + +class MaxDist(stats.rv_continuous): + """ max of n of scipy.stats normal expon ... + Example: + maxnormal10 = RVmax( scipy.stats.norm, 10 ) + sample = maxnormal10( size=1000 ) + sample.cdf = cdf ^ n, ppf ^ (1/n) + """ + def __init__( self, dist, n ): + self.dist = dist + self.n = n + extradoc = 'maximumdistribution is the distribution of the '\ + + 'maximum of n i.i.d. random variable' + super(MaxDist, self).__init__(name='maxdist', a=dist.a, b=dist.b, + longname = 'A maximumdistribution', extradoc = extradoc) + + def _pdf(self, x, *args, **kw): + return self.n * self.dist.pdf(x, *args, **kw) \ + * self.dist.cdf(x, *args, **kw )**(self.n-1) + + def _cdf(self, x, *args, **kw): + return self.dist.cdf(x, *args, **kw)**self.n + + def _ppf(self, q, *args, **kw): + # y = F(x) ^ n <=> x = F-1( y ^ 1/n) + return self.dist.ppf(q**(1./self.n), *args, **kw) + +## def rvs( self, *args, **kw ): +## size = kw.pop( "size", 1 ) +## u = np.random.uniform( size=size, **kw ) ** (1 / self.n) +## return self.dist.ppf( u, **kw ) + + +maxdistr = MaxDist(stats.norm, 10) + +print(maxdistr.rvs(size=10)) +print(maxdistr.stats(moments = 'mvsk')) + +''' +>>> print maxdistr.stats(moments = 'mvsk') +(array(1.5387527308351818), array(0.34434382328492852), array(0.40990510188513779), array(0.33139861783918922)) +>>> rvs = np.random.randn(1000,10) +>>> stats.describe(rvs.max(1)) +(1000, (-0.028558517753519492, 3.6134958002753685), 1.5560520428553426, 0.34965234046170773, 0.48504309950278557, 0.17691859056779258) +>>> rvs2 = maxdistr.rvs(size=1000) +>>> stats.describe(rvs2) +(1000, (-0.015290995091401905, 3.3227019151170931), 1.5248146840651813, 0.32827518543128631, 0.23998620901199566, -0.080555658370268013) +>>> rvs2 = maxdistr.rvs(size=10000) +>>> stats.describe(rvs2) +(10000, (-0.15855091764294812, 4.1898138060896937), 1.532862047388899, 0.34361316060467512, 0.43128838106936973, 0.41115043864619061) + +>>> maxdistr.pdf(1.5) +0.69513824417156755 + +#integrating the pdf +>>> maxdistr.expect() +1.5387527308351729 +>>> maxdistr.expect(lambda x:1) +0.99999999999999956 + + +''' diff --git a/statsmodels/sandbox/distributions/try_pot.py b/statsmodels/sandbox/distributions/try_pot.py new file mode 100644 index 0000000..0c023ec --- /dev/null +++ b/statsmodels/sandbox/distributions/try_pot.py @@ -0,0 +1,73 @@ +# -*- coding: utf-8 -*- +""" +Created on Wed May 04 06:09:18 2011 + +@author: josef +""" +from __future__ import print_function +import numpy as np + +def mean_residual_life(x, frac=None, alpha=0.05): + '''emprirical mean residual life or expected shortfall + + Parameters + ---------- + + + todo: check formula for std of mean + doesn't include case for all observations + last observations std is zero + vectorize loop using cumsum + frac doesn't work yet + + ''' + + axis = 0 #searchsorted is 1d only + x = np.asarray(x) + nobs = x.shape[axis] + xsorted = np.sort(x, axis=axis) + if frac is None: + xthreshold = xsorted + else: + xthreshold = xsorted[np.floor(nobs * frac).astype(int)] + #use searchsorted instead of simple index in case of ties + xlargerindex = np.searchsorted(xsorted, xthreshold, side='right') + + #replace loop with cumsum ? + result = [] + for i in range(len(xthreshold)-1): + k_ind = xlargerindex[i] + rmean = x[k_ind:].mean() + rstd = x[k_ind:].std() #this doesn't work for last observations, nans + rmstd = rstd/np.sqrt(nobs-k_ind) #std error of mean, check formula + result.append((k_ind, xthreshold[i], rmean, rmstd)) + + res = np.array(result) + crit = 1.96 # todo: without loading stats, crit = -stats.t.ppf(0.05) + confint = res[:,1:2] + crit * res[:,-1:] * np.array([[-1,1]]) + return np.column_stack((res, confint)) + +expected_shortfall = mean_residual_life #alias + + +if __name__ == "__main__": + rvs = np.random.standard_t(5, size= 10) + res = mean_residual_life(rvs) + print(res) + rmean = [rvs[i:].mean() for i in range(len(rvs))] + print(res[:,2] - rmean[1:]) + +''' +>>> mean_residual_life(rvs, frac= 0.5) +Traceback (most recent call last): + File "", line 1, in + File "E:\Josef\eclipsegworkspace\statsmodels-josef-experimental-030\scikits\statsmodels\sandbox\distributions\try_pot.py", line 35, in mean_residual_life + for i in range(len(xthreshold)-1): +TypeError: object of type 'numpy.float64' has no len() +>>> mean_residual_life(rvs, frac= [0.5]) +array([[ 1. , -1.16904459, 0.35165016, 0.41090978, -1.97442776, + -0.36366142], + [ 1. , -1.16904459, 0.35165016, 0.41090978, -1.97442776, + -0.36366142], + [ 1. , -1.1690445 +''' diff --git a/statsmodels/sandbox/examples/bayesprior.py b/statsmodels/sandbox/examples/bayesprior.py new file mode 100644 index 0000000..bbac914 --- /dev/null +++ b/statsmodels/sandbox/examples/bayesprior.py @@ -0,0 +1,246 @@ +# +# This script examines the predictive prior densities of two local level +# models given the same priors for parameters that appear to be the same. +# Reference: Del Negro and Schorfheide. + +try: + import pymc + pymc_installed = 1 +except: + print("pymc not imported") + pymc_installed = 0 +from scipy.stats import gamma, beta, invgamma +import numpy as np +from matplotlib import pyplot as plt +from scipy import stats +from scipy.stats import rv_continuous +from scipy.special import gammaln, gammaincinv, gamma, gammainc +from numpy import log,exp + +#np.random.seed(12345) + +class igamma_gen(rv_continuous): + def _pdf(self, x, a, b): + return exp(self._logpdf(x,a,b)) + def _logpdf(self, x, a, b): + return a*log(b) - gammaln(a) -(a+1)*log(x) - b/x + def _cdf(self, x, a, b): + return 1.0-gammainc(a,b/x) # why is this different than the wiki? + def _ppf(self, q, a, b): + return b/gammaincinv(a,1-q) +#NOTE: should be correct, work through invgamma example and 2 param inv gamma +#CDF + def _munp(self, n, a, b): + args = (a,b) + super(igamma_gen, self)._munp(self, n, *args) +#TODO: is this robust for differential entropy in this case? closed form or +#shortcuts in special? + def _entropy(self, *args): + def integ(x): + val = self._pdf(x, *args) + return val*log(val) + + entr = -integrate.quad(integ, self.a, self.b)[0] + if not np.isnan(entr): + return entr + else: + raise ValueError("Problem with integration. Returned nan.") + +igamma = igamma_gen(a=0.0, name='invgamma', longname="An inverted gamma", + shapes = 'a,b', extradoc=""" + +Inverted gamma distribution + +invgamma.pdf(x,a,b) = b**a*x**(-a-1)/gamma(a) * exp(-b/x) +for x > 0, a > 0, b>0. +""" +) + + +#NOTE: the above is unnecessary. B takes the same role as the scale parameter +# in inverted gamma + +palpha = np.random.gamma(400.,.005, size=10000) +print("First moment: %s\nSecond moment: %s" % (palpha.mean(),palpha.std())) +palpha = palpha[0] + +prho = np.random.beta(49.5,49.5, size=1e5) +print("Beta Distribution") +print("First moment: %s\nSecond moment: %s" % (prho.mean(),prho.std())) +prho = prho[0] + +psigma = igamma.rvs(1.,4.**2/2, size=1e5) +print("Inverse Gamma Distribution") +print("First moment: %s\nSecond moment: %s" % (psigma.mean(),psigma.std())) + +# First do the univariate case +# y_t = theta_t + epsilon_t +# epsilon ~ N(0,1) +# Where theta ~ N(mu,lambda**2) + + +# or the model +# y_t = theta2_t + theta1_t * y_t-1 + epsilon_t + +# Prior 1: +# theta1 ~ uniform(0,1) +# theta2|theta1 ~ N(mu,lambda**2) +# Prior 2: +# theta1 ~ U(0,1) +# theta2|theta1 ~ N(mu(1-theta1),lambda**2(1-theta1)**2) + +draws = 400 +# prior beliefs, from JME paper +mu_, lambda_ = 1.,2. + +# Model 1 +y1y2 = np.zeros((draws,2)) +for draw in range(draws): + theta = np.random.normal(mu_,lambda_**2) + y1 = theta + np.random.normal() + y2 = theta + np.random.normal() + y1y2[draw] = y1,y2 + + +# log marginal distribution +lnp1p2_mod1 = stats.norm.pdf(y1,loc=mu_, scale=lambda_**2+1)*\ + stats.norm.pdf(y2,mu_,scale=lambda_**2+1) + + +# Model 2 +pmu_pairsp1 = np.zeros((draws,2)) +y1y2pairsp1 = np.zeros((draws,2)) +# prior 1 +for draw in range(draws): + theta1 = np.random.uniform(0,1) + theta2 = np.random.normal(mu_, lambda_**2) +# mu = theta2/(1-theta1) +#don't do this to maintain independence theta2 is the _location_ +# y1 = np.random.normal(mu_, lambda_**2) + y1 = theta2 +# pmu_pairsp1[draw] = mu, theta1 + pmu_pairsp1[draw] = theta2, theta1 # mean, autocorr + y2 = theta2 + theta1 * y1 + np.random.normal() + y1y2pairsp1[draw] = y1,y2 + + + +# for a = 0, b = 1 - epsilon = .99999 +# mean of u is .5*.99999 +# variance is 1./12 * .99999**2 + +# Model 2 +pmu_pairsp2 = np.zeros((draws,2)) +y1y2pairsp2 = np.zeros((draws,2)) +# prior 2 +theta12_2 = [] +for draw in range(draws): +# y1 = np.random.uniform(-4,6) + theta1 = np.random.uniform(0,1) + theta2 = np.random.normal(mu_*(1-theta1), lambda_**2*(1-theta1)**2) + theta12_2.append([theta1,theta2]) + + mu = theta2/(1-theta1) + y1 = np.random.normal(mu_,lambda_**2) + y2 = theta2 + theta1 * y1 + np.random.normal() + pmu_pairsp2[draw] = mu, theta1 + y1y2pairsp2[draw] = y1,y2 + +fig = plt.figure() +fsp = fig.add_subplot(221) +fsp.scatter(pmu_pairsp1[:,0], pmu_pairsp1[:,1], color='b', facecolor='none') +fsp.set_ylabel('Autocorrelation (Y)') +fsp.set_xlabel('Mean (Y)') +fsp.set_title('Model 2 (P1)') +fsp.axis([-20,20,0,1]) + +fsp = fig.add_subplot(222) +fsp.scatter(pmu_pairsp2[:,0],pmu_pairsp2[:,1], color='b', facecolor='none') +fsp.set_title('Model 2 (P2)') +fsp.set_ylabel('Autocorrelation (Y)') +fsp.set_xlabel('Mean (Y)') +fsp.set_title('Model 2 (P2)') +fsp.axis([-20,20,0,1]) + +fsp = fig.add_subplot(223) +fsp.scatter(y1y2pairsp1[:,0], y1y2pairsp1[:,1], color='b', marker='o', + facecolor='none') +fsp.scatter(y1y2[:,0], y1y2[:,1], color ='g', marker='+') +fsp.set_title('Model 1 vs. Model 2 (P1)') +fsp.set_ylabel('Y(2)') +fsp.set_xlabel('Y(1)') +fsp.axis([-20,20,-20,20]) + +fsp = fig.add_subplot(224) +fsp.scatter(y1y2pairsp2[:,0], y1y2pairsp2[:,1], color='b', marker='o') +fsp.scatter(y1y2[:,0], y1y2[:,1], color='g', marker='+') +fsp.set_title('Model 1 vs. Model 2 (P2)') +fsp.set_ylabel('Y(2)') +fsp.set_xlabel('Y(1)') +fsp.axis([-20,20,-20,20]) + +#plt.show() + +#TODO: this doesn't look the same as the working paper? +#NOTE: but it matches the language? I think mine is right! + +# Contour plots. +# on the basis of observed data. ie., the mgrid +#np.mgrid[6:-4:10j,-4:6:10j] + + + + +# Example 2: +# 2 NK Phillips Curves +# Structural form +# M1: y_t = 1/alpha *E_t[y_t+1] + mu_t +# mu_t = p1 * mu_t-1 + epsilon_t +# epsilon_t ~ N(0,sigma2) + +# Reduced form Law of Motion +# M1: y_t = p1*y_t-1 + 1/(1-p1/alpha)*epsilon_t + +# specify prior for M1 +# for i = 1,2 +# theta_i = [alpha +# p_i +# sigma] +# truncate effective priors by the determinancy region +# for determinancy we need alpha > 1 +# p in [0,1) +# palpha ~ Gamma(2.00,.10) +# mean = 2.00 +# std = .1 which implies k = 400, theta = .005 +palpha = np.random.gamma(400,.005) + +# pi ~ Beta(.5,.05) +pi = np.random.beta(49.5, 49.5) + +# psigma ~ InvGamma(1.00,4.00) +#def invgamma(a,b): +# return np.sqrt(b*a**2/np.sum(np.random.random(b,1)**2, axis=1)) +#NOTE: Use inverse gamma distribution igamma +psigma = igamma.rvs(1.,4.0, size=1e6) #TODO: parameterization is not correct vs. +# Del Negro and Schorfheide +if pymc_installed: + psigma2 = pymc.rinverse_gamma(1.,4.0, size=1e6) +else: + psigma2 = stats.invgamma.rvs(1., scale=4.0, size=1e6) +nsims = 500 +y = np.zeros((nsims)) +#for i in range(1,nsims): +# y[i] = .9*y[i-1] + 1/(1-p1/alpha) + np.random.normal() + +#Are these supposed to be sampled jointly? + +# InvGamma(sigma|v,s) propto sigma**(-v-1)*e**(-vs**2/2*sigma**2) +#igamma = + +# M2: y_t = 1/alpha * E_t[y_t+1] + p2*y_t-1 + mu_t +# mu_t ~ epsilon_t +# epsilon_t ~ n(0,sigma2) + +# Reduced form Law of Motion +# y_t = 1/2 (alpha-sqrt(alpha**2-4*p2*alpha)) * y_t-1 + 2*alpha/(alpha + \ +# sqrt(alpha**2 - 4*p2*alpha)) * epsilon_t diff --git a/statsmodels/sandbox/examples/dji_table.csv b/statsmodels/sandbox/examples/dji_table.csv new file mode 100644 index 0000000..4715fd7 --- /dev/null +++ b/statsmodels/sandbox/examples/dji_table.csv @@ -0,0 +1,20434 @@ +Date,Open,High,Low,Close,Volume,Adj Close +2010-02-12,10137.23,10140.18,9962.13,10099.14,4160680000,10099.14 +2010-02-11,10037.85,10184.85,9963.19,10144.19,4400870000,10144.19 +2010-02-10,10055.46,10120.15,9946.26,10038.38,4251450000,10038.38 +2010-02-09,9910.28,10154.24,9910.28,10058.64,5114260000,10058.64 +2010-02-08,10005.43,10059.24,9882.85,9908.39,4089820000,9908.39 +2010-02-05,10003.69,10078.89,9822.84,10012.23,6438900000,10012.23 +2010-02-04,10273.12,10273.12,9984.35,10002.18,5859690000,10002.18 +2010-02-03,10291.73,10356.86,10192.03,10270.55,4285450000,10270.55 +2010-02-02,10186.13,10333.35,10138.75,10296.85,4749540000,10296.85 +2010-02-01,10068.99,10227.24,10068.99,10185.53,4077610000,10185.53 +2010-01-29,10122.04,10272.29,10014.35,10067.33,5412850000,10067.33 +2010-01-28,10236.92,10310.68,10023.80,10120.46,5452400000,10120.46 +2010-01-27,10194.29,10294.13,10060.98,10236.16,5319120000,10236.16 +2010-01-26,10195.35,10323.00,10102.17,10194.29,4731910000,10194.29 +2010-01-25,10175.10,10316.65,10135.95,10196.86,4481390000,10196.86 +2010-01-22,10389.58,10450.04,10133.15,10172.98,6208650000,10172.98 +2010-01-21,10603.91,10651.14,10334.18,10389.88,6874289600,10389.88 +2010-01-20,10719.69,10719.69,10492.36,10603.15,4810560000,10603.15 +2010-01-19,10608.37,10763.45,10555.47,10725.43,4724830000,10725.43 +2010-01-15,10706.99,10736.54,10529.09,10609.65,4758730000,10609.65 +2010-01-14,10680.16,10767.15,10619.02,10710.55,3915200000,10710.55 +2010-01-13,10628.09,10747.12,10569.07,10680.77,4170360000,10680.77 +2010-01-12,10662.86,10701.48,10523.35,10627.26,4716160000,10627.26 +2010-01-11,10620.31,10739.87,10538.91,10663.99,4255780000,10663.99 +2010-01-08,10606.40,10653.11,10509.74,10618.19,4389590000,10618.19 +2010-01-07,10571.11,10655.60,10471.73,10606.86,5270680000,10606.86 +2010-01-06,10564.72,10655.22,10488.28,10573.68,4972660000,10573.68 +2010-01-05,10584.56,10647.14,10468.86,10572.02,2491020000,10572.02 +2010-01-04,10430.69,10641.62,10430.69,10583.96,3991400000,10583.96 +2009-12-31,10548.51,10578.74,10420.56,10428.05,2076990000,10428.05 +2009-12-30,10544.36,10583.28,10470.75,10548.51,2277300000,10548.51 +2009-12-29,10547.83,10605.65,10518.59,10545.41,2491020000,10545.41 +2009-12-28,10517.91,10550.78,10517.91,10547.07,2716400000,10547.07 +2009-12-24,10467.12,10541.26,10450.95,10520.10,1267710000,10520.10 +2009-12-23,10464.32,10520.93,10409.00,10466.44,3166870000,10466.44 +2009-12-22,10414.67,10511.56,10399.33,10464.93,3641130000,10464.93 +2009-12-21,10330.10,10489.41,10330.10,10414.14,3977340000,10414.14 +2009-12-18,10309.39,10412.55,10237.75,10328.89,6325890000,10328.89 +2009-12-17,10439.99,10439.99,10279.39,10308.26,7615070400,10308.26 +2009-12-16,10449.81,10552.75,10401.90,10441.12,4829820000,10441.12 +2009-12-15,10499.31,10542.09,10380.96,10452.00,5045100000,10452.00 +2009-12-14,10471.28,10566.88,10431.60,10501.05,4548490000,10501.05 +2009-12-11,10403.41,10516.47,10385.42,10471.50,3791090000,10471.50 +2009-12-10,10336.00,10479.06,10332.14,10405.83,3996490000,10405.83 +2009-12-09,10282.85,10377.11,10207.29,10337.05,4115410000,10337.05 +2009-12-08,10385.42,10385.42,10216.44,10285.97,4748030000,10285.97 +2009-12-07,10386.86,10478.23,10321.11,10390.11,4103360000,10390.11 +2009-12-04,10368.57,10549.04,10285.44,10388.90,5781140000,10388.90 +2009-12-03,10455.63,10533.55,10338.49,10366.15,4810030000,10366.15 +2009-12-02,10470.44,10537.63,10386.03,10452.68,3941340000,10452.68 +2009-12-01,10343.82,10537.03,10343.82,10471.58,4249310000,10471.58 +2009-11-30,10309.77,10394.34,10238.05,10344.84,3895520000,10344.84 +2009-11-27,10452.23,10452.23,10179.33,10309.92,2362910000,10309.92 +2009-11-25,10432.96,10513.60,10385.65,10464.40,3036350000,10464.40 +2009-11-24,10451.25,10488.66,10335.62,10433.71,3700820000,10433.71 +2009-11-23,10320.13,10524.40,10320.13,10450.95,3827920000,10450.95 +2009-11-20,10327.91,10377.41,10237.60,10318.16,3751230000,10318.16 +2009-11-19,10425.33,10425.33,10226.41,10332.44,4178030000,10332.44 +2009-11-18,10426.27,10471.28,10330.33,10426.31,4293340000,10426.31 +2009-11-17,10404.77,10465.76,10318.69,10437.42,3824070000,10437.42 +2009-11-16,10267.53,10465.83,10267.53,10406.96,4565850000,10406.96 +2009-11-13,10197.85,10332.29,10162.93,10270.47,3792610000,10270.47 +2009-11-12,10289.82,10341.21,10157.64,10197.47,4160250000,10197.47 +2009-11-11,10247.42,10357.38,10217.19,10291.26,4286700000,10291.26 +2009-11-10,10223.01,10300.33,10148.12,10246.97,4394770000,10246.97 +2009-11-09,10020.62,10248.93,10020.62,10226.94,4460030000,10226.94 +2009-11-06,10001.35,10077.08,9898.49,10023.42,4277130000,10023.42 +2009-11-05,9807.80,10043.75,9807.80,10005.96,4848350000,10005.96 +2009-11-04,9767.30,9962.35,9745.76,9802.14,5635510000,9802.14 +2009-11-03,9787.47,9844.84,9649.78,9771.91,5487500000,9771.91 +2009-11-02,9712.13,9883.68,9647.06,9789.44,6202640000,9789.44 +2009-10-30,9961.52,9980.19,9664.89,9712.73,6512420000,9712.73 +2009-10-29,9762.91,9996.67,9762.91,9962.58,5595040000,9962.58 +2009-10-28,9881.11,9940.89,9723.31,9762.69,6600350000,9762.69 +2009-10-27,9868.34,9994.55,9802.36,9882.17,5337380000,9882.17 +2009-10-26,9972.33,10107.99,9817.55,9867.96,6363380000,9867.96 +2009-10-23,10099.90,10138.59,9908.70,9972.18,4767460000,9972.18 +2009-10-22,9946.18,10133.08,9879.07,10081.31,5192410000,10081.31 +2009-10-21,10038.84,10157.94,9909.83,9949.36,5616290000,9949.36 +2009-10-20,10092.42,10157.26,9952.98,10041.48,5396930000,10041.48 +2009-10-19,9996.67,10146.61,9967.49,10092.19,4619240000,10092.19 +2009-10-16,10061.36,10072.62,9884.51,9995.91,4894740000,9995.91 +2009-10-15,10014.88,10087.43,9916.93,10062.94,5369780000,10062.94 +2009-10-14,9873.55,10064.98,9873.55,10015.86,5406420000,10015.86 +2009-10-13,9883.98,9935.53,9780.90,9871.06,4320480000,9871.06 +2009-10-12,9865.24,9978.07,9814.45,9885.80,3710430000,9885.80 +2009-10-09,9786.04,9890.41,9731.32,9864.94,3763780000,9864.94 +2009-10-08,9728.22,9872.50,9709.78,9786.87,4988400000,9786.87 +2009-10-07,9725.69,9782.56,9634.96,9725.58,4238220000,9725.58 +2009-10-06,9601.26,9793.37,9601.26,9731.25,5029840000,9731.25 +2009-10-05,9488.73,9640.33,9449.81,9599.75,4313310000,9599.75 +2009-10-02,9507.62,9571.71,9378.77,9487.67,5583240000,9487.67 +2009-10-01,9711.60,9714.70,9482.98,9509.28,5791450000,9509.28 +2009-09-30,9741.83,9817.17,9583.04,9712.28,5998860000,9712.28 +2009-09-29,9789.74,9861.99,9705.10,9742.20,4949900000,9742.20 +2009-09-28,9663.23,9861.39,9658.09,9789.36,3726950000,9789.36 +2009-09-25,9706.68,9781.73,9605.19,9665.19,4507090000,9665.19 +2009-09-24,9749.99,9836.82,9637.53,9707.44,5505610000,9707.44 +2009-09-23,9830.63,9937.72,9724.90,9748.55,5531930000,9748.55 +2009-09-22,9779.61,9890.71,9742.96,9829.87,5246600000,9829.87 +2009-09-21,9818.61,9846.12,9688.40,9778.86,4615280000,9778.86 +2009-09-18,9784.75,9898.57,9751.27,9820.20,5607970000,9820.20 +2009-09-17,9789.82,9896.38,9706.23,9783.92,6668110000,9783.92 +2009-09-16,9683.71,9837.05,9648.95,9791.71,6793529600,9791.71 +2009-09-15,9626.42,9745.91,9553.80,9683.41,6185620000,9683.41 +2009-09-14,9598.08,9662.10,9492.96,9626.80,4979610000,9626.80 +2009-09-11,9625.44,9698.67,9532.11,9605.41,4922600000,9605.41 +2009-09-10,9546.54,9666.55,9479.20,9627.48,5191380000,9627.48 +2009-09-09,9496.59,9604.43,9435.45,9547.22,5202550000,9547.22 +2009-09-08,9440.13,9564.45,9402.80,9497.34,5235160000,9497.34 +2009-09-04,9345.36,9465.37,9302.28,9441.27,4097370000,9441.27 +2009-09-03,9282.03,9350.27,9252.93,9344.61,4624280000,9344.61 +2009-09-02,9306.21,9378.77,9223.08,9280.67,5842730000,9280.67 +2009-09-01,9492.32,9573.67,9275.15,9310.60,6862360000,9310.60 +2009-08-31,9542.91,9552.97,9389.27,9496.28,5004560000,9496.28 +2009-08-28,9582.74,9666.71,9476.63,9544.20,5785780000,9544.20 +2009-08-27,9541.63,9629.98,9440.43,9580.63,5785880000,9580.63 +2009-08-26,9538.61,9613.65,9446.71,9543.52,5080060000,9543.52 +2009-08-25,9509.21,9646.53,9485.70,9539.29,5768740000,9539.29 +2009-08-24,9506.18,9625.89,9442.17,9509.28,6302450000,9509.28 +2009-08-21,9347.86,9549.19,9347.86,9505.96,5885550000,9505.96 +2009-08-20,9278.55,9385.72,9237.52,9350.05,4893160000,9350.05 +2009-08-19,9208.68,9333.34,9099.14,9279.16,4257000000,9279.16 +2009-08-18,9134.36,9262.08,9124.08,9217.94,4198970000,9217.94 +2009-08-17,9313.85,9313.85,9078.28,9135.34,4854970000,9135.34 +2009-08-14,9398.04,9425.17,9214.47,9321.40,4940750000,9321.40 +2009-08-13,9362.29,9448.97,9269.26,9398.19,5250660000,9398.19 +2009-08-12,9236.06,9442.47,9199.80,9361.61,5498170000,9361.61 +2009-08-11,9334.33,9351.86,9180.23,9241.45,5773160000,9241.45 +2009-08-10,9368.41,9420.56,9249.99,9337.95,5406080000,9337.95 +2009-08-07,9258.45,9466.89,9258.45,9370.07,6827089600,9370.07 +2009-08-06,9277.19,9378.01,9168.44,9256.26,6753380000,9256.26 +2009-08-05,9315.36,9374.38,9173.20,9280.97,7242120000,9280.97 +2009-08-04,9285.05,9370.30,9207.21,9320.19,5713700000,9320.19 +2009-08-03,9173.65,9342.11,9162.09,9286.56,5603440000,9286.56 +2009-07-31,9154.61,9264.65,9081.30,9171.61,5139070000,9171.61 +2009-07-30,9072.84,9298.13,9072.84,9154.46,6035180000,9154.46 +2009-07-29,9092.34,9141.23,8967.26,9070.72,5178770000,9070.72 +2009-07-28,9106.92,9154.76,8980.03,9096.72,5490350000,9096.72 +2009-07-27,9093.09,9154.23,8996.58,9108.51,4631290000,9108.51 +2009-07-24,9066.11,9144.48,8955.77,9093.24,4458300000,9093.24 +2009-07-23,8882.31,9143.05,8837.95,9069.29,5761650000,9069.29 +2009-07-22,8912.39,8993.48,8802.13,8881.26,4634100000,8881.26 +2009-07-21,8848.15,8991.07,8780.82,8915.94,5309300000,8915.94 +2009-07-20,8746.05,8884.43,8717.26,8848.15,4853150000,8848.15 +2009-07-17,8711.89,8797.97,8638.81,8743.94,5141380000,8743.94 +2009-07-16,8612.66,8750.28,8543.97,8711.82,4898640000,8711.82 +2009-07-15,8363.95,8643.04,8363.95,8616.21,5238830000,8616.21 +2009-07-14,8331.37,8407.48,8255.27,8359.49,4149030000,8359.49 +2009-07-13,8146.82,8348.08,8106.16,8331.68,4499440000,8331.68 +2009-07-10,8182.49,8216.65,8057.57,8146.52,3912080000,8146.52 +2009-07-09,8179.01,8273.48,8117.27,8183.17,4347170000,8183.17 +2009-07-08,8157.02,8259.05,8057.94,8178.41,5721780000,8178.41 +2009-07-07,8324.95,8355.48,8138.51,8163.60,4673300000,8163.60 +2009-07-06,8279.30,8364.02,8156.49,8324.87,4712580000,8324.87 +2009-07-02,8503.00,8503.00,8260.41,8280.74,3931000000,8280.74 +2009-07-01,8447.53,8610.32,8447.00,8504.06,3919400000,8504.06 +2009-06-30,8528.93,8584.17,8369.99,8447.00,4627570000,8447.00 +2009-06-29,8440.13,8569.59,8406.57,8529.38,4211760000,8529.38 +2009-06-26,8468.54,8509.73,8364.17,8438.39,6076660000,8438.39 +2009-06-25,8299.25,8512.60,8236.07,8472.40,4911240000,8472.40 +2009-06-24,8323.51,8456.83,8246.20,8299.86,4636720000,8299.86 +2009-06-23,8340.44,8413.22,8239.17,8322.91,5071020000,8322.91 +2009-06-22,8538.52,8538.52,8306.66,8339.01,4903940000,8339.01 +2009-06-19,8556.96,8665.26,8476.02,8539.73,5713390000,8539.73 +2009-06-18,8496.73,8634.28,8438.61,8555.60,4684010000,8555.60 +2009-06-17,8504.36,8602.99,8421.46,8497.18,5523650000,8497.18 +2009-06-16,8612.44,8688.69,8483.58,8504.67,4951200000,8504.67 +2009-06-15,8798.50,8798.50,8540.87,8612.13,4697880000,8612.13 +2009-06-12,8770.01,8850.95,8671.61,8799.26,4528120000,8799.26 +2009-06-11,8736.23,8911.11,8697.99,8770.92,5500840000,8770.92 +2009-06-10,8763.66,8871.36,8625.21,8739.02,5379420000,8739.02 +2009-06-09,8764.83,8854.80,8688.99,8763.06,4439950000,8763.06 +2009-06-08,8759.35,8832.13,8593.84,8764.49,4483430000,8764.49 +2009-06-05,8751.75,8900.48,8673.41,8763.13,5277910000,8763.13 +2009-06-04,8665.72,8802.59,8609.17,8750.24,5352890000,8750.24 +2009-06-03,8740.07,8750.83,8556.90,8675.24,5323770000,8675.24 +2009-06-02,8721.60,8832.16,8635.25,8740.87,5987340000,8740.87 +2009-06-01,8501.53,8797.58,8501.53,8721.44,6370440000,8721.44 +2009-05-29,8404.04,8541.27,8323.91,8500.33,6050420000,8500.33 +2009-05-28,8300.50,8463.70,8221.65,8403.80,5738980000,8403.80 +2009-05-27,8473.65,8534.66,8280.82,8300.02,5698800000,8300.02 +2009-05-26,8275.33,8523.59,8194.33,8473.49,5667050000,8473.49 +2009-05-22,8292.21,8415.75,8218.86,8277.32,5155320000,8277.32 +2009-05-21,8416.07,8416.07,8185.25,8292.13,6019840000,8292.13 +2009-05-20,8471.82,8645.85,8376.40,8422.04,8205060000,8422.04 +2009-05-19,8502.48,8594.16,8402.61,8474.85,6616270000,8474.85 +2009-05-18,8270.15,8534.66,8270.15,8504.08,5702150000,8504.08 +2009-05-15,8326.22,8422.28,8206.67,8268.64,5439720000,8268.64 +2009-05-14,8285.92,8427.93,8218.94,8331.32,6134870000,8331.32 +2009-05-13,8461.80,8461.80,8208.74,8284.89,7091820000,8284.89 +2009-05-12,8419.17,8574.88,8306.47,8469.11,6871750400,8469.11 +2009-05-11,8569.23,8569.23,8347.41,8418.77,6150600000,8418.77 +2009-05-08,8410.73,8657.96,8388.11,8574.65,8163280000,8574.65 +2009-05-07,8513.56,8651.51,8296.04,8409.85,9120100000,8409.85 +2009-05-06,8403.48,8608.26,8350.12,8512.28,8555040000,8512.28 +2009-05-05,8425.55,8520.80,8321.37,8410.65,6882860000,8410.65 +2009-05-04,8213.60,8488.87,8213.60,8426.74,7038840000,8426.74 +2009-05-01,8167.41,8278.28,8047.54,8212.41,5312170000,8212.41 +2009-04-30,8188.51,8383.81,8083.62,8168.12,6862540000,8168.12 +2009-04-29,8018.31,8278.12,8018.31,8185.73,6101620000,8185.73 +2009-04-28,8023.56,8136.74,7898.75,8016.95,6328000000,8016.95 +2009-04-27,8073.82,8152.27,7920.42,8025.00,5613460000,8025.00 +2009-04-24,7957.45,8182.30,7905.60,8076.29,7114440000,8076.29 +2009-04-23,7886.81,8015.36,7762.80,7957.06,6563100000,7957.06 +2009-04-22,7964.78,8111.02,7802.46,7886.57,7327860000,7886.57 +2009-04-21,7841.73,8027.54,7699.79,7969.56,7436489600,7969.56 +2009-04-20,8128.94,8128.94,7801.58,7841.73,6973960000,7841.73 +2009-04-17,8125.43,8251.20,8024.92,8131.33,7352009600,8131.33 +2009-04-16,8029.14,8201.81,7933.08,8125.43,6598670000,8125.43 +2009-04-15,7914.92,8069.92,7808.19,8029.62,6241100000,8029.62 +2009-04-14,8057.41,8076.05,7840.53,7920.18,7569840000,7920.18 +2009-04-13,8082.02,8146.86,7888.96,8057.81,6434890000,8057.81 +2009-04-09,7839.89,8150.44,7839.89,8083.38,7600710400,8083.38 +2009-04-08,7788.68,7925.36,7715.09,7837.11,5938460000,7837.11 +2009-04-07,7968.92,7968.92,7733.56,7789.56,5155580000,7789.56 +2009-04-06,8016.16,8037.42,7830.66,7975.85,6210000000,7975.85 +2009-04-03,7980.63,8090.71,7850.33,8017.59,5855640000,8017.59 +2009-04-02,7763.99,8129.33,7763.99,7978.08,7542809600,7978.08 +2009-04-01,7606.13,7804.77,7450.74,7761.60,6034140000,7761.60 +2009-03-31,7523.77,7744.24,7502.98,7608.92,6089100000,7608.92 +2009-03-30,7773.31,7773.31,7406.85,7522.02,5912660000,7522.02 +2009-03-27,7922.57,7922.57,7695.97,7776.18,5600210000,7776.18 +2009-03-26,7752.36,7969.00,7709.19,7924.56,6992960000,7924.56 +2009-03-25,7659.81,7897.48,7539.54,7749.81,7687180000,7749.81 +2009-03-24,7773.47,7837.11,7585.98,7660.21,6767980000,7660.21 +2009-03-23,7279.25,7789.24,7279.25,7775.86,7715769600,7775.86 +2009-03-20,7402.31,7524.81,7215.77,7278.38,7643720000,7278.38 +2009-03-19,7489.68,7624.45,7325.13,7400.80,9033870400,7400.80 +2009-03-18,7395.70,7592.03,7218.24,7486.58,9098449600,7486.58 +2009-03-17,7218.00,7407.41,7129.60,7395.70,6156800000,7395.70 +2009-03-16,7225.33,7428.75,7171.41,7216.97,7883540000,7216.97 +2009-03-13,7219.20,7241.98,7106.34,7223.98,6787089600,7223.98 +2009-03-12,6932.39,7198.25,6840.79,7170.06,7326630400,7170.06 +2009-03-11,6923.13,7078.22,6804.55,6930.40,7287809600,6930.40 +2009-03-10,6547.01,6951.50,6547.01,6926.49,8618329600,6926.49 +2009-03-09,6625.74,6758.44,6440.08,6547.05,7277320000,6547.05 +2009-03-06,6595.16,6776.44,6443.27,6626.94,7331830400,6626.94 +2009-03-05,6874.01,6874.01,6531.28,6594.44,7507249600,6594.44 +2009-03-04,6726.50,7012.19,6715.11,6875.84,7673620000,6875.84 +2009-03-03,6764.81,6922.59,6661.74,6726.02,7583230400,6726.02 +2009-03-02,7056.48,7056.48,6736.69,6763.29,7868289600,6763.29 +2009-02-27,7180.97,7244.61,6952.06,7062.93,8926480000,7062.93 +2009-02-26,7269.06,7451.13,7135.25,7182.08,7599969600,7182.08 +2009-02-25,7349.58,7442.13,7123.94,7270.89,7483640000,7270.89 +2009-02-24,7115.34,7396.34,7077.35,7350.94,7234489600,7350.94 +2009-02-23,7365.99,7477.10,7092.64,7114.78,6509300000,7114.78 +2009-02-20,7461.49,7500.44,7226.29,7365.67,8210590400,7365.67 +2009-02-19,7555.23,7679.01,7420.63,7465.95,5746940000,7465.95 +2009-02-18,7546.35,7661.56,7451.37,7555.63,5740710000,7555.63 +2009-02-17,7845.63,7845.63,7502.59,7552.60,5907820000,7552.60 +2009-02-13,7933.00,8005.96,7811.38,7850.41,5296650000,7850.41 +2009-02-12,7931.97,7956.02,7662.04,7932.76,6476460000,7932.76 +2009-02-11,7887.05,8042.36,7820.14,7939.53,5926460000,7939.53 +2009-02-10,8269.36,8293.17,7835.83,7888.88,6770169600,7888.88 +2009-02-09,8281.38,8376.56,8137.70,8270.87,5574370000,8270.87 +2009-02-06,8056.38,8360.07,8044.03,8280.59,6484100000,8280.59 +2009-02-05,7954.83,8138.65,7811.70,8063.07,6624030000,8063.07 +2009-02-04,8070.32,8197.04,7899.79,7956.66,6420450000,7956.66 +2009-02-03,7936.99,8157.13,7855.19,8078.36,5886310000,8078.36 +2009-02-02,8000.62,8053.43,7796.17,7936.83,5673270000,7936.83 +2009-01-30,8149.01,8243.95,7924.88,8000.86,5350580000,8000.86 +2009-01-29,8373.06,8373.06,8092.14,8149.01,5067060000,8149.01 +2009-01-28,8175.93,8446.33,8175.93,8375.45,6199180000,8375.45 +2009-01-27,8117.39,8264.10,8042.60,8174.73,5353260000,8174.73 +2009-01-26,8078.04,8278.12,7971.15,8116.03,6039940000,8116.03 +2009-01-23,8108.79,8187.88,7856.86,8077.56,5832160000,8077.56 +2009-01-22,8224.43,8239.33,7925.75,8122.80,5843830000,8122.80 +2009-01-21,7949.17,8286.40,7890.63,8228.10,6467830000,8228.10 +2009-01-20,8279.63,8309.02,7920.66,7949.09,6375230000,7949.09 +2009-01-16,8215.67,8424.59,8086.01,8281.22,6786040000,8281.22 +2009-01-15,8196.24,8326.06,7949.65,8212.49,7807350400,8212.49 +2009-01-14,8446.01,8446.01,8097.95,8200.14,5407880000,8200.14 +2009-01-13,8474.61,8584.68,8325.59,8448.56,5567460000,8448.56 +2009-01-12,8599.26,8653.97,8391.85,8473.97,4725050000,8473.97 +2009-01-09,8738.80,8800.45,8541.75,8599.18,4716500000,8599.18 +2009-01-08,8769.94,8807.14,8593.52,8742.46,4991550000,8742.46 +2009-01-07,8996.94,8996.94,8690.45,8769.70,4704940000,8769.70 +2009-01-06,8954.57,9175.19,8868.07,9015.10,5392620000,9015.10 +2009-01-05,9027.13,9093.47,8841.70,8952.89,5413910000,8952.89 +2009-01-02,8772.25,9080.57,8725.10,9034.69,4048270000,9034.69 +2008-12-31,8666.48,8862.65,8634.06,8776.39,4172940000,8776.39 +2008-12-30,8487.51,8700.89,8463.70,8668.39,3627800000,8668.39 +2008-12-29,8515.87,8575.60,8349.24,8483.93,3323430000,8483.93 +2008-12-26,8468.71,8581.58,8434.94,8515.55,1880050000,8515.55 +2008-12-24,8428.17,8498.26,8417.02,8468.48,1546550000,8468.48 +2008-12-23,8518.65,8647.60,8376.80,8419.49,4051970000,8419.49 +2008-12-22,8573.37,8672.06,8351.79,8519.69,4869850000,8519.69 +2008-12-19,8606.50,8823.78,8499.06,8579.11,6705310000,8579.11 +2008-12-18,8823.94,8946.36,8516.02,8604.99,5675000000,8604.99 +2008-12-17,8921.91,9001.96,8701.13,8824.34,5907380000,8824.34 +2008-12-16,8565.65,8985.63,8534.03,8924.14,6009780000,8924.14 +2008-12-15,8628.81,8738.40,8431.04,8564.53,4982390000,8564.53 +2008-12-12,8563.10,8705.43,8272.22,8629.68,5959590000,8629.68 +2008-12-11,8750.13,8861.86,8480.18,8565.09,5513840000,8565.09 +2008-12-10,8693.00,8942.46,8589.86,8761.42,5942130000,8761.42 +2008-12-09,8934.10,8978.14,8591.69,8691.33,5693110000,8691.33 +2008-12-08,8637.65,9151.61,8637.65,8934.18,6553600000,8934.18 +2008-12-05,8376.08,8722.47,8084.25,8635.42,6165370000,8635.42 +2008-12-04,8587.07,8705.98,8222.84,8376.24,5860390000,8376.24 +2008-12-03,8409.14,8654.77,8170.19,8591.69,6221880000,8591.69 +2008-12-02,8153.75,8490.62,8072.47,8419.09,6170100000,8419.09 +2008-12-01,8826.89,8826.89,8123.04,8149.09,6052010000,8149.09 +2008-11-28,8690.24,8840.33,8687.05,8829.04,2740860000,8829.04 +2008-11-26,8464.49,8760.46,8250.80,8726.61,5793260000,8726.61 +2008-11-25,8445.14,8682.09,8244.43,8479.47,6952700000,8479.47 +2008-11-24,8048.09,8624.27,8023.32,8443.39,7879440000,8443.39 +2008-11-21,7552.37,8121.45,7392.27,8046.42,9495900000,8046.42 +2008-11-20,7995.53,8224.35,7464.51,7552.29,9093740000,7552.29 +2008-11-19,8420.69,8534.34,7967.33,7997.28,6548600000,7997.28 +2008-11-18,8273.34,8540.08,8075.81,8424.75,6679470000,8424.75 +2008-11-17,8494.84,8596.31,8197.12,8273.58,4927490000,8273.58 +2008-11-14,8822.19,8980.93,8421.08,8497.31,5881030000,8497.31 +2008-11-13,8281.14,8898.41,7947.74,8835.25,7849120000,8835.25 +2008-11-12,8684.52,8684.52,8235.66,8282.66,5764180000,8282.66 +2008-11-11,8864.32,8892.20,8499.62,8693.96,4998340000,8693.96 +2008-11-10,8946.60,9212.94,8735.61,8870.54,4572000000,8870.54 +2008-11-07,8696.03,9032.54,8661.22,8943.81,4931640000,8943.81 +2008-11-06,9134.01,9216.37,8607.14,8695.79,6102230000,8695.79 +2008-11-05,9616.60,9628.15,9086.06,9139.27,5426640000,9139.27 +2008-11-04,9323.89,9711.46,9323.89,9625.28,5531290000,9625.28 +2008-11-03,9326.04,9488.92,9175.03,9319.83,4492280000,9319.83 +2008-10-31,9179.09,9498.48,9014.78,9325.01,6394350000,9325.01 +2008-10-30,9004.66,9380.36,8916.81,9180.69,6175830000,9180.69 +2008-10-29,9062.33,9405.05,8800.61,8990.96,7077800000,8990.96 +2008-10-28,8178.72,9112.51,8153.79,9065.12,7096950400,9065.12 +2008-10-27,8375.92,8639.64,8085.37,8175.77,5558050000,8175.77 +2008-10-24,8683.21,8683.21,8088.63,8378.95,6550050000,8378.95 +2008-10-23,8519.77,8864.48,8200.06,8691.25,7189900000,8691.25 +2008-10-22,9027.84,9027.84,8324.07,8519.21,6147980000,8519.21 +2008-10-21,9179.11,9293.07,9017.30,9045.21,5121830000,9045.21 +2008-10-20,8852.30,9305.89,8799.49,9265.43,5175640000,9265.43 +2008-10-17,8975.35,9304.38,8640.83,8852.22,6581780000,8852.22 +2008-10-16,8577.04,9073.64,8176.17,8979.26,7984500000,8979.26 +2008-10-15,9301.91,9301.91,8516.50,8577.91,6542330000,8577.91 +2008-10-14,9388.97,9924.28,9050.06,9310.99,8161990400,9310.99 +2008-10-13,8462.42,9501.91,8462.42,9387.61,7263369600,9387.61 +2008-10-10,8568.67,8989.13,7773.71,8451.19,11456230400,8451.19 +2008-10-09,9261.69,9522.77,8523.27,8579.19,8285670400,8579.19 +2008-10-08,9437.23,9778.04,9042.97,9258.10,8716329600,9258.10 +2008-10-07,9955.42,10205.04,9391.67,9447.11,7069209600,9447.11 +2008-10-06,10322.52,10322.52,9503.10,9955.50,7956020000,9955.50 +2008-10-03,10483.96,10844.69,10261.75,10325.38,6716120000,10325.38 +2008-10-02,10825.54,10843.10,10368.08,10482.85,6285640000,10482.85 +2008-10-01,10847.40,11022.06,10495.99,10831.07,5782130000,10831.07 +2008-09-30,10371.58,10922.03,10371.58,10850.66,6065000000,10850.66 +2008-09-29,11139.62,11139.62,10266.76,10365.45,7305060000,10365.45 +2008-09-26,11019.04,11218.48,10781.37,11143.13,5383610000,11143.13 +2008-09-25,10827.17,11206.05,10799.77,11022.06,5877640000,11022.06 +2008-09-24,10850.02,11041.02,10696.38,10825.17,4820360000,10825.17 +2008-09-23,11015.69,11214.65,10763.77,10854.17,5185730000,10854.17 +2008-09-22,11394.42,11450.81,10956.43,11015.69,5368130000,11015.69 +2008-09-19,11027.51,11415.48,11027.51,11388.44,9387169600,11388.44 +2008-09-18,10609.01,11149.07,10403.75,11019.69,10082689600,11019.69 +2008-09-17,11056.58,11068.87,10521.81,10609.66,9431870400,10609.66 +2008-09-16,10905.62,11193.12,10604.70,11059.02,9459830400,11059.02 +2008-09-15,11416.37,11416.37,10849.85,10917.51,8279510400,10917.51 +2008-09-12,11429.32,11532.72,11191.08,11421.99,6273260000,11421.99 +2008-09-11,11264.44,11461.15,11018.72,11433.71,6869249600,11433.71 +2008-09-10,11233.91,11453.50,11135.64,11268.92,6543440000,11268.92 +2008-09-09,11514.73,11623.50,11209.81,11230.73,7380630400,11230.73 +2008-09-08,11224.87,11656.64,11224.87,11510.74,7351340000,11510.74 +2008-09-05,11185.63,11301.73,10998.77,11220.96,5017080000,11220.96 +2008-09-04,11532.48,11532.48,11130.26,11188.23,5212500000,11188.23 +2008-09-03,11506.01,11629.69,11328.84,11532.88,5056980000,11532.88 +2008-09-02,11545.63,11831.29,11444.79,11516.92,4783560000,11516.92 +2008-08-29,11713.23,11730.49,11508.78,11543.55,3288120000,11543.55 +2008-08-28,11499.87,11756.46,11493.72,11715.18,3854280000,11715.18 +2008-08-27,11412.46,11575.14,11349.69,11502.51,3499610000,11502.51 +2008-08-26,11383.56,11483.62,11284.47,11412.87,3587570000,11412.87 +2008-08-25,11626.19,11626.19,11336.82,11386.25,3420600000,11386.25 +2008-08-22,11426.79,11684.00,11426.79,11628.06,3741070000,11628.06 +2008-08-21,11415.23,11501.29,11263.63,11430.21,4032590000,11430.21 +2008-08-20,11345.94,11511.06,11240.18,11417.43,4555030000,11417.43 +2008-08-19,11478.09,11501.45,11260.53,11348.55,4159760000,11348.55 +2008-08-18,11659.65,11744.49,11410.18,11479.39,3829290000,11479.39 +2008-08-15,11611.21,11776.41,11540.05,11659.90,4041820000,11659.90 +2008-08-14,11532.07,11744.33,11399.84,11615.93,4064000000,11615.93 +2008-08-13,11632.81,11689.05,11377.37,11532.96,4787600000,11532.96 +2008-08-12,11781.70,11830.39,11541.43,11642.47,4711290000,11642.47 +2008-08-11,11729.67,11933.55,11580.19,11782.35,5067310000,11782.35 +2008-08-08,11432.09,11808.49,11344.23,11734.32,4966810000,11734.32 +2008-08-07,11655.42,11680.50,11355.63,11431.43,5319380000,11431.43 +2008-08-06,11603.64,11745.71,11454.64,11656.07,4873420000,11656.07 +2008-08-05,11286.02,11652.24,11286.02,11615.77,1219310000,11615.77 +2008-08-04,11326.32,11449.67,11144.59,11284.15,4562280000,11284.15 +2008-08-01,11379.89,11512.61,11205.41,11326.32,4684870000,11326.32 +2008-07-31,11577.99,11631.16,11317.69,11378.02,5346050000,11378.02 +2008-07-30,11397.56,11681.47,11328.68,11583.69,5631330000,11583.69 +2008-07-29,11133.44,11444.05,11086.13,11397.56,5414240000,11397.56 +2008-07-28,11369.47,11439.25,11094.76,11131.08,4282960000,11131.08 +2008-07-25,11341.14,11540.78,11252.47,11370.69,4672560000,11370.69 +2008-07-24,11630.34,11714.21,11288.79,11349.28,6127980000,11349.28 +2008-07-23,11603.39,11820.21,11410.02,11632.38,6705830000,11632.38 +2008-07-22,11457.90,11692.79,11273.32,11602.50,6180230000,11602.50 +2008-07-21,11495.02,11663.40,11339.02,11467.34,4630640000,11467.34 +2008-07-18,11436.56,11599.57,11290.50,11496.57,5653280000,11496.57 +2008-07-17,11238.39,11538.50,11118.46,11446.66,7365209600,11446.66 +2008-07-16,10961.89,11308.41,10831.61,11239.28,6738630400,11239.28 +2008-07-15,11050.80,11201.67,10731.96,10962.54,7363640000,10962.54 +2008-07-14,11103.64,11299.70,10972.63,11055.19,5434860000,11055.19 +2008-07-11,11226.17,11292.04,10908.64,11100.54,6742200000,11100.54 +2008-07-10,11148.01,11351.24,11006.01,11229.02,5840430000,11229.02 +2008-07-09,11381.93,11505.12,11115.61,11147.44,5181000000,11147.44 +2008-07-08,11225.03,11459.52,11101.19,11384.21,6034110000,11384.21 +2008-07-07,11289.19,11477.52,11094.44,11231.96,5265420000,11231.96 +2008-07-03,11297.33,11336.49,11158.02,11288.53,3247590000,11288.53 +2008-07-02,11382.34,11510.41,11180.58,11215.51,5276090000,11215.51 +2008-07-01,11344.64,11465.79,11106.65,11382.26,5846290000,11382.26 +2008-06-30,11345.70,11504.55,11226.34,11350.01,5032330000,11350.01 +2008-06-27,11452.85,11556.33,11248.48,11346.51,6208260000,11346.51 +2008-06-26,11808.57,11808.57,11431.92,11453.42,5231280000,11453.42 +2008-06-25,11805.31,12008.70,11683.75,11811.83,4825640000,11811.83 +2008-06-24,11842.36,11962.37,11668.53,11807.43,4705050000,11807.43 +2008-06-23,11843.83,11986.96,11731.06,11842.36,4186370000,11842.36 +2008-06-20,12062.19,12078.23,11785.04,11842.69,5324900000,11842.69 +2008-06-19,12022.54,12188.31,11881.03,12063.09,4811670000,12063.09 +2008-06-18,12158.68,12212.33,11947.07,12029.06,4573570000,12029.06 +2008-06-17,12269.65,12378.67,12114.14,12160.30,3801960000,12160.30 +2008-06-16,12306.86,12381.44,12139.79,12269.08,3706940000,12269.08 +2008-06-13,12144.59,12376.72,12096.23,12307.35,4080420000,12307.35 +2008-06-12,12089.63,12337.72,12041.43,12141.58,4734240000,12141.58 +2008-06-11,12286.34,12317.20,12029.46,12083.77,4779980000,12083.77 +2008-06-10,12277.71,12425.98,12116.58,12289.76,4635070000,12289.76 +2008-06-09,12210.13,12406.36,12102.50,12280.32,4404570000,12280.32 +2008-06-06,12602.74,12602.74,12180.50,12209.81,4771660000,12209.81 +2008-06-05,12388.81,12652.81,12358.07,12604.45,4350790000,12604.45 +2008-06-04,12391.86,12540.37,12283.74,12390.48,4338640000,12390.48 +2008-06-03,12503.20,12620.98,12317.61,12402.85,4396380000,12402.85 +2008-06-02,12637.67,12645.40,12385.76,12503.82,3714320000,12503.82 +2008-05-30,12647.36,12750.84,12555.60,12638.32,3845630000,12638.32 +2008-05-29,12593.87,12760.21,12493.47,12646.22,3894440000,12646.22 +2008-05-28,12542.90,12693.77,12437.38,12594.03,3927240000,12594.03 +2008-05-27,12479.63,12626.84,12397.56,12548.35,3588860000,12548.35 +2008-05-23,12620.90,12637.43,12420.20,12479.63,3516380000,12479.63 +2008-05-22,12597.69,12743.68,12515.78,12625.62,3955960000,12625.62 +2008-05-21,12824.94,12926.71,12550.39,12601.19,4517990000,12601.19 +2008-05-20,13026.04,13026.04,12742.29,12828.68,3854320000,12828.68 +2008-05-19,12985.41,13170.97,12899.19,13028.16,3683970000,13028.16 +2008-05-16,12992.74,13069.52,12860.60,12986.80,3842590000,12986.80 +2008-05-15,12891.29,13028.16,12798.39,12992.66,3836480000,12992.66 +2008-05-14,12825.12,13037.44,12806.21,12898.38,3979370000,12898.38 +2008-05-13,12872.08,12957.65,12716.16,12832.18,4018590000,12832.18 +2008-05-12,12768.38,12903.33,12746.36,12876.05,3370630000,12876.05 +2008-05-09,12860.68,12871.75,12648.09,12745.88,3518620000,12745.88 +2008-05-08,12814.84,12965.95,12727.56,12866.78,3827550000,12866.78 +2008-05-07,13010.82,13097.77,12756.14,12814.35,4075860000,12814.35 +2008-05-06,12968.89,13071.07,12817.53,13020.83,3924100000,13020.83 +2008-05-05,13056.57,13105.75,12896.50,12969.54,3410090000,12969.54 +2008-05-02,13012.53,13191.49,12931.35,13058.20,3953030000,13058.20 +2008-05-01,12818.34,13079.94,12721.94,13010.00,4448780000,13010.00 +2008-04-30,12831.45,13052.91,12746.45,12820.13,4508890000,12820.13 +2008-04-29,12870.37,12970.27,12737.82,12831.94,3815320000,12831.94 +2008-04-28,12890.76,13015.62,12791.55,12871.75,3607000000,12871.75 +2008-04-25,12848.38,12987.29,12703.70,12891.86,3891150000,12891.86 +2008-04-24,12764.68,12979.88,12651.51,12848.95,4461660000,12848.95 +2008-04-23,12721.45,12883.80,12627.00,12763.22,4103610000,12763.22 +2008-04-22,12825.02,12870.86,12604.53,12720.23,3821900000,12720.23 +2008-04-21,12850.91,12902.69,12666.08,12825.02,3420570000,12825.02 +2008-04-18,12626.76,12965.47,12626.76,12849.36,4222380000,12849.36 +2008-04-17,12617.40,12725.93,12472.71,12620.49,3713880000,12620.49 +2008-04-16,12371.51,12670.56,12371.51,12619.27,4260370000,12619.27 +2008-04-15,12303.60,12459.36,12223.97,12362.47,3581230000,12362.47 +2008-04-14,12324.77,12430.86,12208.42,12302.06,3565020000,12302.06 +2008-04-11,12579.78,12579.78,12280.89,12325.42,3723790000,12325.42 +2008-04-10,12526.78,12705.90,12447.96,12581.98,3686150000,12581.98 +2008-04-09,12574.65,12686.93,12416.53,12527.26,3556670000,12527.26 +2008-04-08,12602.66,12664.38,12440.55,12576.44,3602500000,12576.44 +2008-04-07,12612.59,12786.83,12550.22,12612.43,3747780000,12612.43 +2008-04-04,12626.35,12738.30,12489.40,12609.42,3703100000,12609.42 +2008-04-03,12604.69,12734.97,12455.04,12626.03,3920100000,12626.03 +2008-04-02,12651.67,12790.28,12488.22,12608.92,4320440000,12608.92 +2008-04-01,12266.64,12693.93,12266.64,12654.36,4745120000,12654.36 +2008-03-31,12215.92,12384.84,12095.18,12262.89,4188990000,12262.89 +2008-03-28,12303.92,12441.67,12164.22,12216.40,3686980000,12216.40 +2008-03-27,12421.88,12528.13,12264.76,12302.46,4037930000,12302.46 +2008-03-26,12531.79,12531.79,12309.62,12422.86,4055670000,12422.86 +2008-03-25,12547.34,12639.82,12397.62,12532.60,4145120000,12532.60 +2008-03-24,12361.97,12687.61,12346.17,12548.64,4499000000,12548.64 +2008-03-20,12102.43,12434.34,12024.68,12361.32,6145220000,12361.32 +2008-03-19,12391.52,12525.19,12077.27,12099.66,5358550000,12099.66 +2008-03-18,11975.92,12411.63,11975.92,12392.66,5335630000,12392.66 +2008-03-17,11946.45,12119.69,11650.44,11972.25,5683010000,11972.25 +2008-03-14,12146.39,12249.86,11781.43,11951.09,5153780000,11951.09 +2008-03-13,12096.49,12242.29,11832.88,12145.74,5073360000,12145.74 +2008-03-12,12148.61,12360.58,12037.79,12110.24,4414280000,12110.24 +2008-03-11,11741.33,12205.98,11741.33,12156.81,5109080000,12156.81 +2008-03-10,11893.04,11993.75,11691.47,11740.15,4261240000,11740.15 +2008-03-07,12039.09,12131.33,11778.66,11893.69,4565410000,11893.69 +2008-03-06,12254.59,12267.86,12010.03,12040.39,4323460000,12040.39 +2008-03-05,12204.93,12392.74,12105.36,12254.99,4277710000,12254.99 +2008-03-04,12259.14,12291.22,11991.06,12213.80,4757180000,12213.80 +2008-03-03,12264.36,12344.71,12101.29,12258.90,4117570000,12258.90 +2008-02-29,12579.58,12579.58,12210.30,12266.39,4426730000,12266.39 +2008-02-28,12689.28,12713.99,12463.32,12582.18,3938580000,12582.18 +2008-02-27,12683.54,12815.59,12527.64,12694.28,3904700000,12694.28 +2008-02-26,12569.48,12771.14,12449.08,12684.92,4096060000,12684.92 +2008-02-25,12380.77,12612.47,12292.03,12570.22,3866350000,12570.22 +2008-02-22,12281.09,12429.05,12116.92,12381.02,3572660000,12381.02 +2008-02-21,12426.85,12545.79,12225.36,12284.30,3696660000,12284.30 +2008-02-20,12333.31,12489.29,12159.42,12427.26,3870520000,12427.26 +2008-02-19,12349.59,12571.11,12276.81,12337.22,3613550000,12337.22 +2008-02-15,12376.66,12441.20,12216.68,12348.21,3583300000,12348.21 +2008-02-14,12551.51,12611.26,12332.03,12376.98,3644760000,12376.98 +2008-02-13,12368.12,12627.76,12354.22,12552.24,3856420000,12552.24 +2008-02-12,12241.56,12524.12,12207.90,12373.41,4044640000,12373.41 +2008-02-11,12181.89,12332.76,12006.79,12240.01,3593140000,12240.01 +2008-02-08,12248.47,12330.97,12058.01,12182.13,3768490000,12182.13 +2008-02-07,12196.20,12366.99,12045.00,12247.00,4589160000,12247.00 +2008-02-06,12257.25,12436.33,12142.14,12200.10,4008120000,12200.10 +2008-02-05,12631.85,12631.85,12234.97,12265.13,4315740000,12265.13 +2008-02-04,12743.11,12810.34,12557.61,12635.16,3495780000,12635.16 +2008-02-01,12638.17,12841.88,12510.05,12743.19,4650770000,12743.19 +2008-01-31,12438.28,12734.74,12197.09,12650.36,4970290000,12650.36 +2008-01-30,12480.14,12715.96,12311.55,12442.83,4742760000,12442.83 +2008-01-29,12385.19,12604.92,12262.29,12480.30,4232960000,12480.30 +2008-01-28,12205.71,12423.81,12061.42,12383.89,4100930000,12383.89 +2008-01-25,12391.70,12590.69,12103.61,12207.17,4882250000,12207.17 +2008-01-24,12272.69,12522.82,12114.83,12378.61,5735300000,12378.61 +2008-01-23,11969.08,12339.10,11530.12,12270.17,3241680000,12270.17 +2008-01-22,12092.72,12167.42,11508.74,11971.19,6544690000,11971.19 +2008-01-18,12159.94,12441.85,11953.71,12099.30,6004840000,12099.30 +2008-01-17,12467.05,12597.85,12089.38,12159.21,5303130000,12159.21 +2008-01-16,12476.81,12699.05,12294.48,12466.16,5440620000,12466.16 +2008-01-15,12777.50,12777.50,12425.92,12501.11,4601640000,12501.11 +2008-01-14,12613.78,12866.10,12596.95,12778.15,3682090000,12778.15 +2008-01-11,12850.74,12863.34,12495.91,12606.30,4495840000,12606.30 +2008-01-10,12733.11,12931.29,12632.15,12853.09,5170490000,12853.09 +2008-01-09,12590.21,12814.97,12431.53,12735.31,5351030000,12735.31 +2008-01-08,12820.90,12998.11,12511.03,12589.07,4705390000,12589.07 +2008-01-07,12801.15,12984.95,12640.44,12827.49,4221260000,12827.49 +2008-01-04,13046.56,13049.65,12740.51,12800.18,4166000000,12800.18 +2008-01-03,13044.12,13197.43,12968.44,13056.72,3429500000,13056.72 +2008-01-02,13261.82,13338.23,12969.42,13043.96,3452650000,13043.96 +2007-12-31,13364.16,13423.91,13197.35,13264.82,2440880000,13264.82 +2007-12-28,13361.23,13494.30,13272.14,13365.87,2420510000,13365.87 +2007-12-27,13549.17,13551.53,13325.71,13359.61,2365770000,13359.61 +2007-12-26,13547.95,13614.53,13440.16,13551.69,2010500000,13551.69 +2007-12-24,13487.12,13562.72,13451.35,13550.04,2200000,13550.04 +2007-12-21,13241.66,13518.20,13241.66,13450.65,4508590000,13450.65 +2007-12-20,13206.46,13354.00,13112.98,13245.64,3526890000,13245.64 +2007-12-19,13231.98,13368.79,13097.77,13207.27,3401300000,13207.27 +2007-12-18,13168.66,13346.84,13059.32,13232.47,3723690000,13232.47 +2007-12-17,13339.20,13378.38,13111.92,13167.20,3569030000,13167.20 +2007-12-14,13515.11,13557.54,13284.66,13339.85,3401050000,13339.85 +2007-12-13,13473.98,13586.73,13281.00,13517.96,3635170000,13517.96 +2007-12-12,13434.80,13778.98,13299.61,13473.90,4482120000,13473.90 +2007-12-11,13726.87,13850.92,13374.89,13432.77,4080180000,13432.77 +2007-12-10,13623.55,13807.02,13582.50,13727.03,2911760000,13727.03 +2007-12-07,13618.27,13744.02,13514.22,13625.58,3177710000,13625.58 +2007-12-06,13445.85,13652.49,13362.37,13619.89,3568570000,13619.89 +2007-12-05,13244.01,13513.00,13244.01,13444.96,3663660000,13444.96 +2007-12-04,13311.24,13395.21,13139.56,13248.73,3343620000,13248.73 +2007-12-03,13368.22,13490.24,13207.60,13314.57,3323250000,13314.57 +2007-11-30,13314.25,13570.31,13225.32,13371.72,4422200000,13371.72 +2007-11-29,13287.91,13399.03,13150.21,13311.73,3524730000,13311.73 +2007-11-28,12958.04,13353.51,12958.04,13289.45,4508020000,13289.45 +2007-11-27,12744.78,13040.38,12711.98,12958.44,4320720000,12958.44 +2007-11-26,12979.99,13104.44,12707.26,12743.44,3706470000,12743.44 +2007-11-23,12889.45,12981.56,12796.29,12980.88,1612720000,12980.88 +2007-11-21,13006.65,13055.59,12725.39,12799.04,4076230000,12799.04 +2007-11-20,12955.92,13179.23,12800.74,13010.14,4875150000,13010.14 +2007-11-19,13176.30,13195.48,12871.14,12958.44,4119650000,12958.44 +2007-11-16,13109.48,13293.44,12987.22,13176.79,4168870000,13176.79 +2007-11-15,13230.68,13333.59,13007.95,13110.05,3941010000,13110.05 +2007-11-14,13305.47,13465.20,13159.88,13231.01,4031470000,13231.01 +2007-11-13,12975.11,13357.57,12975.11,13307.09,4141310000,13307.09 +2007-11-12,13039.16,13238.73,12910.40,12987.55,4192520000,12987.55 +2007-11-09,13261.17,13321.81,12920.65,13042.74,4587050000,13042.74 +2007-11-08,13299.70,13463.66,13001.93,13266.29,5439720000,13266.29 +2007-11-07,13646.72,13646.72,13269.46,13300.02,4353160000,13300.02 +2007-11-06,13542.34,13716.55,13460.73,13660.94,3879160000,13660.94 +2007-11-05,13592.58,13666.15,13393.67,13543.40,3819330000,13543.40 +2007-11-02,13569.90,13708.58,13381.64,13595.10,4285990000,13595.10 +2007-11-01,13924.16,13924.16,13522.75,13567.87,4241470000,13567.87 +2007-10-31,13792.06,13990.65,13711.59,13930.01,3953070000,13930.01 +2007-10-30,13869.04,13930.91,13719.80,13792.47,3212520000,13792.47 +2007-10-29,13807.35,13966.18,13748.33,13870.26,3124480000,13870.26 +2007-10-26,13675.66,13885.95,13622.01,13806.70,3612120000,13806.70 +2007-10-25,13677.85,13819.78,13471.87,13671.92,4183960000,13671.92 +2007-10-24,13675.58,13751.50,13423.74,13675.25,4003300000,13675.25 +2007-10-23,13568.93,13754.91,13494.95,13676.23,3309120000,13676.23 +2007-10-22,13521.62,13636.80,13337.90,13566.97,3471830000,13566.97 +2007-10-19,13888.47,13888.47,13478.94,13522.02,4160970000,13522.02 +2007-10-18,13887.90,13984.39,13746.22,13888.96,3203210000,13888.96 +2007-10-17,13920.66,14075.84,13738.66,13892.54,3638070000,13892.54 +2007-10-16,13986.34,14061.37,13810.68,13912.94,3234560000,13912.94 +2007-10-15,14092.43,14157.38,13877.82,13984.80,3139290000,13984.80 +2007-10-12,14016.34,14168.51,13949.85,14093.08,2788690000,14093.08 +2007-10-11,14079.10,14279.96,13917.82,14015.12,3911260000,14015.12 +2007-10-10,14165.02,14225.66,13963.26,14078.69,3044760000,14078.69 +2007-10-09,14043.73,14198.83,13980.90,14164.53,2932040000,14164.53 +2007-10-08,14065.36,14134.05,13747.41,14043.73,2040650000,14043.73 +2007-10-05,13969.07,14169.49,13965.05,14066.01,2919030000,14066.01 +2007-10-04,13967.89,14074.54,13894.98,13974.31,2690430000,13974.31 +2007-10-03,14038.86,14090.48,13883.43,13968.05,3065320000,13968.05 +2007-10-02,14087.14,14166.16,13951.72,14047.31,3101910000,14047.31 +2007-10-01,13895.71,14147.30,13869.86,14087.55,3281990000,14087.55 +2007-09-28,13912.94,13994.64,13802.96,13895.63,2925350000,13895.63 +2007-09-27,13879.53,13991.63,13811.17,13912.94,2872180000,13912.94 +2007-09-26,13779.30,13962.61,13741.26,13878.15,3237390000,13878.15 +2007-09-25,13757.84,13847.10,13629.16,13778.65,3187770000,13778.65 +2007-09-24,13821.57,13930.74,13702.89,13759.06,3131310000,13759.06 +2007-09-21,13768.33,13948.95,13740.61,13820.19,3679460000,13820.19 +2007-09-20,13813.52,13893.02,13680.21,13766.70,2957700000,13766.70 +2007-09-19,13740.61,13936.68,13689.80,13815.56,3846750000,13815.56 +2007-09-18,13403.18,13772.15,13379.68,13739.39,3708940000,13739.39 +2007-09-17,13441.95,13514.71,13306.69,13403.42,2598390000,13403.42 +2007-09-14,13421.39,13507.55,13273.68,13442.52,2641740000,13442.52 +2007-09-13,13292.38,13519.91,13292.38,13424.88,2877080000,13424.88 +2007-09-12,13298.31,13408.62,13195.40,13291.65,2885720000,13291.65 +2007-09-11,13129.40,13369.77,13124.68,13308.39,3015330000,13308.39 +2007-09-10,13116.39,13280.67,12992.02,13127.85,2835720000,13127.85 +2007-09-07,13360.74,13360.74,13059.16,13113.38,3191080000,13113.38 +2007-09-06,13306.44,13464.79,13217.11,13363.35,2459590000,13363.35 +2007-09-05,13442.85,13442.85,13203.86,13305.47,2991600000,13305.47 +2007-09-04,13358.39,13521.86,13248.57,13448.86,2766600000,13448.86 +2007-08-31,13240.84,13472.35,13240.84,13357.74,2731610000,13357.74 +2007-08-30,13287.91,13355.46,13126.39,13238.73,2582960000,13238.73 +2007-08-29,13043.07,13336.93,13020.63,13289.29,2824070000,13289.29 +2007-08-28,13318.43,13319.61,13024.29,13041.85,3078090000,13041.85 +2007-08-27,13377.16,13438.46,13248.32,13322.13,2406180000,13322.13 +2007-08-24,13231.78,13402.20,13174.27,13378.87,2541400000,13378.87 +2007-08-23,13237.27,13358.22,13127.69,13235.88,3084390000,13235.88 +2007-08-22,13088.26,13304.33,13075.34,13236.13,3309120000,13236.13 +2007-08-21,13120.05,13228.57,12975.68,13090.86,3012150000,13090.86 +2007-08-20,13078.51,13245.80,12938.77,13121.35,3321340000,13121.35 +2007-08-17,12848.05,13289.70,12847.24,13079.08,3570040000,13079.08 +2007-08-16,12859.52,12996.73,12455.92,12845.78,6509300000,12845.78 +2007-08-15,13021.93,13184.51,12800.83,12861.47,4290930000,12861.47 +2007-08-14,13235.72,13309.04,12974.30,13028.92,3814630000,13028.92 +2007-08-13,13238.24,13440.08,13163.54,13236.53,3696280000,13236.53 +2007-08-10,13270.59,13386.43,12958.04,13239.54,5345780000,13239.54 +2007-08-09,13652.33,13675.66,13196.05,13270.68,5889600000,13270.68 +2007-08-08,13497.23,13769.63,13386.92,13657.86,5499560000,13657.86 +2007-08-07,13467.72,13635.09,13282.38,13504.30,4909390000,13504.30 +2007-08-06,13183.13,13501.86,13077.05,13468.78,5067200000,13468.78 +2007-08-03,13462.25,13539.50,13156.79,13181.91,4272110000,13181.91 +2007-08-02,13357.82,13547.47,13272.79,13463.33,4368850000,13463.33 +2007-08-01,13211.09,13431.06,13041.77,13362.37,5256780000,13362.37 +2007-07-31,13360.66,13579.41,13182.15,13211.99,4524520000,13211.99 +2007-07-30,13266.21,13445.12,13143.87,13358.31,4128780000,13358.31 +2007-07-27,13472.68,13589.17,13228.57,13265.47,4784650000,13265.47 +2007-07-26,13783.12,13793.61,13307.74,13473.57,4472550000,13473.57 +2007-07-25,13718.25,13919.77,13607.70,13785.07,4283200000,13785.07 +2007-07-24,13940.90,13967.65,13661.51,13716.95,4115830000,13716.95 +2007-07-23,13851.73,14039.59,13819.54,13943.42,3102700000,13943.42 +2007-07-20,14000.73,14039.67,13745.65,13851.08,3745780000,13851.08 +2007-07-19,13918.79,14121.04,13860.18,14000.41,3251450000,14000.41 +2007-07-18,13955.05,14020.89,13768.73,13918.22,3609220000,13918.22 +2007-07-17,13951.96,14095.60,13880.67,13971.55,3007140000,13971.55 +2007-07-16,13907.09,14053.57,13834.33,13950.98,2704110000,13950.98 +2007-07-13,13859.86,13982.93,13784.83,13907.25,2801120000,13907.25 +2007-07-12,13579.33,13889.45,13579.33,13861.73,3489600000,13861.73 +2007-07-11,13500.40,13638.75,13435.45,13577.87,3082920000,13577.87 +2007-07-10,13648.59,13685.90,13463.57,13501.70,3244280000,13501.70 +2007-07-09,13612.66,13739.06,13563.89,13649.97,2715330000,13649.97 +2007-07-06,13559.01,13670.46,13501.54,13611.68,2441520000,13611.68 +2007-07-05,13576.24,13637.78,13459.84,13565.84,2622950000,13565.84 +2007-07-03,13556.87,13592.07,13531.83,13577.30,1560790000,13577.30 +2007-07-02,13409.60,13586.97,13406.59,13535.43,2648990000,13535.43 +2007-06-29,13422.61,13556.16,13291.32,13408.62,3165410000,13408.62 +2007-06-28,13427.48,13537.47,13342.05,13422.28,3006710000,13422.28 +2007-06-27,13336.93,13455.36,13205.08,13427.73,3398150000,13427.73 +2007-06-26,13352.37,13491.70,13272.79,13337.66,3398530000,13337.66 +2007-06-25,13360.09,13519.34,13273.68,13352.05,3287250000,13352.05 +2007-06-22,13545.03,13564.13,13323.51,13360.26,4284320000,13360.26 +2007-06-21,13486.66,13596.56,13368.79,13545.84,3161110000,13545.84 +2007-06-20,13636.56,13735.08,13469.43,13489.42,3286900000,13489.42 +2007-06-19,13611.68,13705.41,13527.14,13635.42,2873590000,13635.42 +2007-06-18,13639.00,13720.29,13560.15,13612.98,2480240000,13612.98 +2007-06-15,13556.65,13741.18,13556.65,13639.48,3406030000,13639.48 +2007-06-14,13482.43,13622.66,13444.07,13553.73,2813630000,13553.73 +2007-06-13,13287.62,13502.76,13287.62,13482.35,3077930000,13482.35 +2007-06-12,13424.39,13474.12,13264.05,13295.01,3056200000,13295.01 +2007-06-11,13423.74,13519.88,13335.16,13424.96,2525280000,13424.96 +2007-06-08,13267.14,13445.19,13207.73,13424.39,2993460000,13424.39 +2007-06-07,13463.48,13517.85,13236.34,13266.73,3538470000,13266.73 +2007-06-06,13590.66,13606.75,13403.10,13465.67,2964190000,13465.67 +2007-06-05,13673.19,13689.40,13523.70,13595.46,2939450000,13595.46 +2007-06-04,13667.21,13723.37,13575.14,13676.32,2738930000,13676.32 +2007-06-01,13628.69,13756.69,13562.54,13668.11,2927020000,13668.11 +2007-05-31,13633.00,13718.82,13564.49,13627.64,3335530000,13627.64 +2007-05-30,13517.89,13650.64,13403.26,13633.08,2980210000,13633.08 +2007-05-29,13507.28,13603.26,13428.86,13521.34,2571790000,13521.34 +2007-05-25,13441.94,13571.48,13410.00,13507.28,2316250000,13507.28 +2007-05-24,13522.60,13645.52,13391.56,13441.13,3365530000,13441.13 +2007-05-23,13540.84,13648.69,13476.72,13525.65,3084260000,13525.65 +2007-05-22,13544.99,13632.03,13466.57,13539.95,2860500000,13539.95 +2007-05-21,13556.53,13636.98,13473.31,13542.88,3465360000,13542.88 +2007-05-18,13476.40,13611.95,13454.46,13556.53,2959050000,13556.53 +2007-05-17,13486.96,13558.24,13384.89,13476.72,2868640000,13476.72 +2007-05-16,13374.13,13526.54,13325.49,13487.53,2915350000,13487.53 +2007-05-15,13346.05,13518.33,13302.65,13383.84,3071020000,13383.84 +2007-05-14,13325.81,13432.84,13265.02,13346.78,2776130000,13346.78 +2007-05-11,13212.20,13373.35,13192.62,13326.22,2720780000,13326.22 +2007-05-10,13359.05,13376.20,13161.08,13215.13,3031240000,13215.13 +2007-05-09,13300.62,13410.17,13229.92,13362.87,2935550000,13362.87 +2007-05-08,13309.40,13359.05,13192.45,13309.07,2795720000,13309.07 +2007-05-07,13264.13,13385.06,13218.87,13312.97,2545090000,13312.97 +2007-05-04,13243.08,13340.60,13176.61,13264.62,2761930000,13264.62 +2007-05-03,13206.65,13306.55,13131.42,13241.38,3007970000,13241.38 +2007-05-02,13133.94,13291.60,13105.34,13211.88,3189800000,13211.88 +2007-05-01,13062.75,13188.96,12993.02,13136.14,3400350000,13136.14 +2007-04-30,13120.21,13226.99,13003.91,13062.91,3093420000,13062.91 +2007-04-27,13104.04,13195.05,13002.37,13120.94,2732810000,13120.94 +2007-04-26,13088.84,13197.49,13016.43,13105.50,3211800000,13105.50 +2007-04-25,12951.42,13142.31,12929.80,13089.89,3252590000,13089.89 +2007-04-24,12919.64,13033.66,12845.12,12953.94,3119750000,12953.94 +2007-04-23,12961.49,13029.59,12867.96,12919.40,2575020000,12919.40 +2007-04-20,12811.15,13035.77,12811.15,12961.98,3329940000,12961.98 +2007-04-19,12799.77,12889.17,12677.47,12808.63,2913610000,12808.63 +2007-04-18,12771.08,12871.21,12691.20,12803.84,2971330000,12803.84 +2007-04-17,12719.56,12837.40,12669.50,12773.04,2920570000,12773.04 +2007-04-16,12611.64,12770.60,12596.36,12720.46,2870140000,12720.46 +2007-04-13,12551.91,12654.47,12504.04,12612.13,2690020000,12612.13 +2007-04-12,12483.64,12580.92,12407.50,12552.96,2770570000,12552.96 +2007-04-11,12573.12,12618.63,12432.53,12484.62,2950190000,12484.62 +2007-04-10,12568.49,12641.87,12496.48,12573.85,2510110000,12573.85 +2007-04-09,12562.64,12641.22,12505.83,12569.14,2349410000,12569.14 +2007-04-05,12505.73,12573.02,12501.25,12560.83,2357230000,12560.83 +2007-04-04,12511.36,12591.81,12444.55,12530.05,2616320000,12530.05 +2007-04-03,12431.28,12534.49,12378.94,12510.93,2921760000,12510.93 +2007-04-02,12354.52,12450.81,12284.54,12382.30,2875880000,12382.30 +2007-03-30,12348.91,12442.40,12237.87,12354.35,2903960000,12354.35 +2007-03-29,12301.48,12424.77,12251.89,12348.75,2854710000,12348.75 +2007-03-28,12396.49,12415.56,12234.50,12300.36,3000440000,12300.36 +2007-03-27,12468.59,12484.54,12336.89,12397.29,2673040000,12397.29 +2007-03-26,12480.37,12526.27,12339.53,12469.07,2754660000,12469.07 +2007-03-23,12460.50,12550.07,12396.89,12481.01,2619020000,12481.01 +2007-03-22,12446.72,12524.03,12364.21,12461.14,3129970000,12461.14 +2007-03-21,12288.98,12489.02,12220.49,12447.52,3184770000,12447.52 +2007-03-20,12226.81,12324.31,12172.66,12288.10,2795940000,12288.10 +2007-03-19,12110.41,12273.52,12110.41,12226.17,2777180000,12226.17 +2007-03-16,12160.16,12226.01,12053.05,12110.41,3393640000,12110.41 +2007-03-15,12133.16,12228.42,12060.10,12159.68,2821900000,12159.68 +2007-03-14,12074.52,12187.88,11926.79,12133.40,3758350000,12133.40 +2007-03-13,12307.49,12319.66,12049.85,12075.96,3485570000,12075.96 +2007-03-12,12275.68,12385.44,12205.58,12318.62,2664000000,12318.62 +2007-03-09,12262.06,12379.51,12200.62,12276.32,2623050000,12276.32 +2007-03-08,12193.33,12355.47,12183.79,12260.70,3014850000,12260.70 +2007-03-07,12204.46,12315.18,12122.11,12192.45,3141350000,12192.45 +2007-03-06,12051.17,12252.61,12051.17,12207.59,3358160000,12207.59 +2007-03-05,12111.61,12220.16,11973.58,12050.41,3480520000,12050.41 +2007-03-02,12233.78,12293.15,12064.91,12114.10,3312260000,12114.10 +2007-03-01,12265.59,12338.89,11996.17,12234.34,3874910000,12234.34 +2007-02-28,12214.92,12396.81,12122.03,12268.63,3925250000,12268.63 +2007-02-27,12628.90,12628.90,12078.85,12216.24,4065230000,12216.24 +2007-02-26,12647.88,12746.34,12562.72,12632.26,2822170000,12632.26 +2007-02-23,12679.89,12726.79,12578.51,12647.48,2579950000,12647.48 +2007-02-22,12735.77,12792.97,12621.93,12686.02,1950770000,12686.02 +2007-02-21,12782.87,12813.88,12662.79,12738.41,2606980000,12738.41 +2007-02-20,12766.85,12845.76,12675.04,12786.64,2337860000,12786.64 +2007-02-16,12764.13,12829.42,12685.86,12767.57,2399450000,12767.57 +2007-02-15,12741.70,12828.38,12681.85,12765.01,2490920000,12765.01 +2007-02-14,12651.29,12793.29,12623.21,12741.86,2699290000,12741.86 +2007-02-13,12549.19,12702.36,12549.19,12654.85,2652150000,12654.85 +2007-02-12,12595.90,12605.11,12536.77,12552.55,2395680000,12552.55 +2007-02-09,12638.03,12725.59,12518.58,12580.83,2951810000,12580.83 +2007-02-08,12639.16,12666.88,12576.59,12637.63,2816180000,12637.63 +2007-02-07,12656.86,12748.99,12589.56,12666.87,2618820000,12666.87 +2007-02-06,12661.66,12738.41,12586.44,12666.31,2608710000,12666.31 +2007-02-05,12641.08,12681.06,12630.50,12661.74,2439430000,12661.74 +2007-02-02,12673.84,12740.65,12582.99,12653.49,2569450000,12653.49 +2007-02-01,12617.20,12741.30,12563.85,12673.68,2914890000,12673.68 +2007-01-31,12520.03,12685.54,12461.30,12621.69,2976690000,12621.69 +2007-01-30,12484.70,12538.06,12463.07,12523.31,2706250000,12523.31 +2007-01-29,12487.10,12599.74,12422.93,12490.78,2730480000,12490.78 +2007-01-26,12503.28,12582.67,12391.44,12487.02,2626620000,12487.02 +2007-01-25,12621.77,12670.48,12461.54,12502.56,2994330000,12502.56 +2007-01-24,12534.37,12659.42,12489.98,12621.77,2783180000,12621.77 +2007-01-23,12467.96,12553.44,12467.96,12533.80,2975070000,12533.80 +2007-01-22,12566.33,12619.04,12389.68,12477.16,2540120000,12477.16 +2007-01-19,12567.93,12649.89,12462.50,12565.53,2777480000,12565.53 +2007-01-18,12575.06,12674.16,12487.90,12567.93,2822430000,12567.93 +2007-01-17,12563.53,12613.28,12550.95,12577.15,2690270000,12577.15 +2007-01-16,12555.84,12638.27,12489.90,12582.59,2599530000,12582.59 +2007-01-12,12514.66,12616.08,12432.30,12556.08,2686480000,12556.08 +2007-01-11,12442.96,12586.12,12413.72,12514.98,2857870000,12514.98 +2007-01-10,12417.00,12487.18,12313.01,12442.16,2764660000,12442.16 +2007-01-09,12424.77,12516.66,12337.85,12416.60,3038380000,12416.60 +2007-01-08,12393.93,12445.37,12337.53,12423.49,2763340000,12423.49 +2007-01-05,12480.05,12504.40,12326.79,12398.01,2919400000,12398.01 +2007-01-04,12467.32,12510.26,12405.47,12480.69,3004460000,12480.69 +2007-01-03,12459.54,12630.34,12373.82,12474.52,3429160000,12474.52 +2006-12-29,12500.48,12560.16,12423.81,12463.15,1678200000,12463.15 +2006-12-28,12510.57,12566.17,12440.23,12501.52,1508570000,12501.52 +2006-12-27,12463.46,12518.34,12407.62,12510.57,1667370000,12510.57 +2006-12-26,12341.94,12439.19,12301.40,12407.63,1310310000,12407.63 +2006-12-22,12407.87,12417.96,12341.77,12343.21,1647590000,12343.21 +2006-12-21,12461.62,12526.59,12369.97,12421.25,2322410000,12421.25 +2006-12-20,12471.32,12549.35,12393.45,12463.87,2387630000,12463.87 +2006-12-19,12439.51,12517.78,12348.50,12471.32,2717060000,12471.32 +2006-12-18,12446.24,12545.74,12372.30,12441.27,2568140000,12441.27 +2006-12-15,12417.96,12536.37,12377.35,12445.52,3229580000,12445.52 +2006-12-14,12317.50,12472.76,12271.44,12416.76,2729700000,12416.76 +2006-12-13,12312.71,12411.55,12263.19,12317.50,2552260000,12317.50 +2006-12-12,12328.24,12396.01,12222.65,12315.58,2738170000,12315.58 +2006-12-11,12306.21,12399.54,12245.32,12328.48,2289900000,12328.48 +2006-12-08,12256.21,12332.16,12243.31,12307.48,2440460000,12307.48 +2006-12-07,12310.13,12396.33,12233.06,12278.41,2743150000,12278.41 +2006-12-06,12328.72,12390.88,12239.95,12309.25,2725280000,12309.25 +2006-12-05,12283.69,12398.57,12218.24,12331.60,2755700000,12331.60 +2006-12-04,12195.57,12349.87,12149.27,12283.85,2766320000,12283.85 +2006-12-01,12220.97,12289.30,12070.52,12194.13,2800980000,12194.13 +2006-11-30,12226.73,12317.10,12118.42,12221.93,4006230000,12221.93 +2006-11-29,12134.40,12283.05,12119.70,12226.73,2790970000,12226.73 +2006-11-28,12095.27,12148.78,12073.40,12136.44,2639750000,12136.44 +2006-11-27,12279.13,12303.32,12079.01,12121.71,2711210000,12121.71 +2006-11-24,12321.71,12340.89,12219.28,12280.17,832550000,12280.17 +2006-11-22,12321.91,12403.54,12238.43,12326.95,2237710000,12326.95 +2006-11-21,12312.13,12409.31,12233.94,12321.59,2597940000,12321.59 +2006-11-20,12340.71,12400.10,12257.34,12316.54,2546710000,12316.54 +2006-11-17,12293.49,12342.55,12278.20,12342.55,2726100000,12342.55 +2006-11-16,12250.05,12375.37,12204.00,12305.82,2835730000,12305.82 +2006-11-15,12214.37,12326.07,12156.37,12251.71,2831130000,12251.71 +2006-11-14,12132.44,12261.15,12051.68,12218.01,3027480000,12218.01 +2006-11-13,12084.89,12164.22,12084.89,12131.88,2386340000,12131.88 +2006-11-10,12102.74,12173.08,12074.01,12108.43,2290200000,12108.43 +2006-11-09,12174.70,12236.10,12039.59,12103.30,3012050000,12103.30 +2006-11-08,12147.38,12233.54,12051.60,12176.54,2814820000,12176.54 +2006-11-07,12104.75,12239.94,12065.20,12156.77,2636390000,12156.77 +2006-11-06,11985.16,12146.45,11973.23,12105.55,2533550000,12105.55 +2006-11-03,12018.30,12095.30,11928.97,11986.04,2419730000,11986.04 +2006-11-02,12023.98,12070.25,11938.89,12018.54,2646180000,12018.54 +2006-11-01,12080.25,12160.70,11972.99,12031.02,2821160000,12031.02 +2006-10-31,12086.18,12160.46,11986.84,12080.73,2803030000,12080.73 +2006-10-30,12074.01,12117.07,12050.23,12086.49,2770440000,12086.49 +2006-10-27,12164.78,12202.72,12024.78,12090.26,2458450000,12090.26 +2006-10-26,12134.84,12236.10,12037.99,12163.66,2793350000,12163.66 +2006-10-25,12127.24,12212.16,12017.66,12134.68,2953540000,12134.68 +2006-10-24,12116.51,12204.80,12028.14,12127.88,2876890000,12127.88 +2006-10-23,12001.33,12177.35,11940.41,12116.91,2480430000,12116.91 +2006-10-20,12013.01,12087.38,11881.34,12002.37,2526410000,12002.37 +2006-10-19,11988.92,12082.33,11911.44,12011.73,2619830000,12011.73 +2006-10-18,11947.62,12108.91,11900.79,11992.68,2658840000,11992.68 +2006-10-17,11977.40,12024.54,11849.16,11950.02,2519620000,11950.02 +2006-10-16,11957.70,11996.92,11945.70,11980.59,2305920000,11980.59 +2006-10-13,11947.22,12009.97,11862.29,11960.51,2482920000,11960.51 +2006-10-12,11896.63,11959.14,11852.12,11947.70,2514350000,11947.70 +2006-10-11,11865.49,11907.60,11762.72,11852.13,2521000000,11852.13 +2006-10-10,11857.73,11930.33,11778.09,11867.17,2376140000,11867.17 +2006-10-09,11849.56,11923.53,11759.36,11857.81,1935170000,11857.81 +2006-10-06,11865.49,11921.04,11743.35,11850.21,2523000000,11850.21 +2006-10-05,11832.51,11869.33,11821.55,11866.69,2817240000,11866.69 +2006-10-04,11722.94,11879.18,11654.02,11850.61,3019880000,11850.61 +2006-10-03,11670.11,11794.41,11608.23,11727.34,2682690000,11727.34 +2006-10-02,11678.99,11773.60,11608.79,11670.35,2154480000,11670.35 +2006-09-29,11718.05,11782.49,11642.17,11679.07,2273430000,11679.07 +2006-09-28,11689.40,11775.36,11625.92,11718.45,2397820000,11718.45 +2006-09-27,11670.19,11775.60,11595.75,11689.24,2749190000,11689.24 +2006-09-26,11575.73,11723.74,11517.54,11669.39,2673350000,11669.39 +2006-09-25,11536.67,11616.23,11486.00,11575.81,2710240000,11575.81 +2006-09-22,11532.91,11588.62,11423.57,11508.10,2162880000,11508.10 +2006-09-21,11611.67,11677.39,11471.76,11533.23,2627440000,11533.23 +2006-09-20,11542.28,11680.19,11514.50,11613.19,2543070000,11613.19 +2006-09-19,11554.60,11605.67,11450.30,11540.91,2390850000,11540.91 +2006-09-18,11538.35,11588.22,11528.43,11555.00,2325080000,11555.00 +2006-09-15,11528.75,11661.38,11504.57,11560.77,3198030000,11560.77 +2006-09-14,11508.82,11548.84,11495.77,11527.39,2351220000,11527.39 +2006-09-13,11487.69,11605.59,11423.73,11543.32,2597220000,11543.32 +2006-09-12,11412.52,11512.74,11396.83,11498.09,2791580000,11498.09 +2006-09-11,11389.87,11468.88,11295.90,11396.84,2506430000,11396.84 +2006-09-08,11332.24,11448.30,11295.18,11392.11,2132890000,11392.11 +2006-09-07,11405.16,11443.66,11273.89,11331.44,2325850000,11331.44 +2006-09-06,11421.33,11469.27,11395.15,11406.20,2329870000,11406.20 +2006-09-05,11461.83,11533.87,11385.95,11469.28,2114480000,11469.28 +2006-09-01,11427.41,11476.40,11381.14,11464.15,1800520000,11464.15 +2006-08-31,11383.47,11451.03,11326.80,11381.15,1974540000,11381.15 +2006-08-30,11365.98,11452.95,11309.99,11382.91,2060690000,11382.91 +2006-08-29,11352.65,11432.38,11255.88,11369.94,2093720000,11369.94 +2006-08-28,11285.33,11411.24,11240.91,11352.01,1834920000,11352.01 +2006-08-25,11301.22,11350.09,11218.66,11284.05,1667580000,11284.05 +2006-08-24,11297.82,11386.59,11232.83,11304.46,1930320000,11304.46 +2006-08-23,11337.12,11394.75,11238.67,11297.90,1893670000,11297.90 +2006-08-22,11344.41,11426.13,11279.25,11339.84,1908740000,11339.84 +2006-08-21,11353.29,11381.46,11322.31,11345.04,1759240000,11345.04 +2006-08-18,11333.76,11437.66,11273.49,11381.47,2033910000,11381.47 +2006-08-17,11321.19,11372.34,11298.54,11334.96,2458340000,11334.96 +2006-08-16,11224.91,11373.78,11207.85,11327.12,2554570000,11327.12 +2006-08-15,11098.03,11271.25,11098.03,11230.26,2334100000,11230.26 +2006-08-14,11089.07,11242.83,11049.68,11097.87,2118020000,11097.87 +2006-08-11,11103.55,11121.40,11042.88,11088.02,2004540000,11088.02 +2006-08-10,11073.14,11176.47,10998.06,11124.37,2402190000,11124.37 +2006-08-09,11168.47,11296.22,11044.64,11076.18,2555180000,11076.18 +2006-08-08,11218.18,11319.51,11117.80,11173.59,2457840000,11173.59 +2006-08-07,11239.47,11294.14,11143.02,11219.38,2045660000,11219.38 +2006-08-04,11244.59,11367.94,11165.11,11240.35,2530970000,11240.35 +2006-08-03,11195.28,11304.78,11101.55,11242.59,2728440000,11242.59 +2006-08-02,11167.91,11228.98,11124.52,11199.92,2610750000,11199.92 +2006-08-01,11184.80,11210.65,11035.92,11125.73,2527690000,11125.73 +2006-07-31,11218.90,11265.80,11115.24,11185.68,2461300000,11185.68 +2006-07-28,11102.11,11282.05,11102.11,11219.70,2480420000,11219.70 +2006-07-27,11104.19,11245.47,11040.80,11100.43,2776710000,11100.43 +2006-07-26,11102.91,11208.09,10987.41,11102.51,2667710000,11102.51 +2006-07-25,11037.59,11133.73,11000.05,11103.71,2563930000,11103.71 +2006-07-24,10868.70,11096.35,10868.70,11051.05,2312720000,11051.05 +2006-07-21,10937.94,10995.73,10778.58,10868.38,2704090000,10868.38 +2006-07-20,11007.26,11098.75,10884.47,10928.10,2345580000,10928.10 +2006-07-19,10854.22,11038.16,10796.74,11011.42,2701980000,11011.42 +2006-07-18,10745.84,10867.02,10658.35,10799.23,2481750000,10799.23 +2006-07-17,10739.35,10858.22,10668.35,10747.36,2146410000,10747.36 +2006-07-14,10846.53,10892.64,10664.43,10739.35,2467120000,10739.35 +2006-07-13,11012.62,11015.19,10790.82,10846.29,2545760000,10846.29 +2006-07-12,11133.97,11181.12,10973.37,11013.18,2250450000,11013.18 +2006-07-11,11102.59,11186.32,10987.33,11134.77,2310850000,11134.77 +2006-07-10,11130.53,11174.47,11090.10,11103.55,1854590000,11103.55 +2006-07-07,11224.18,11227.62,11040.32,11090.67,1988150000,11090.67 +2006-07-06,11147.12,11301.58,11117.16,11225.30,2009160000,11225.30 +2006-07-05,11225.06,11239.47,11083.94,11151.82,2165070000,11151.82 +2006-07-03,11149.34,11277.09,11146.06,11228.02,1114470000,11228.02 +2006-06-30,11190.80,11288.86,11100.11,11150.22,3049560000,11150.22 +2006-06-29,10974.36,11225.06,10974.36,11190.80,2621250000,11190.80 +2006-06-28,10925.30,11026.07,10869.02,10973.56,2085490000,10973.56 +2006-06-27,11048.24,11064.09,10920.73,10924.74,2203130000,10924.74 +2006-06-26,10990.29,11089.07,10937.06,11045.28,1878580000,11045.28 +2006-06-23,11019.19,11098.67,10932.82,10989.09,2017270000,10989.09 +2006-06-22,11077.78,11127.73,10954.83,11019.11,2148180000,11019.11 +2006-06-21,10975.24,11165.91,10952.43,11079.46,2361230000,11079.46 +2006-06-20,10942.03,11066.73,10895.28,10974.84,2232950000,10974.84 +2006-06-19,11014.87,11098.99,10886.63,10942.11,2517200000,10942.11 +2006-06-16,11009.10,11045.04,10984.29,11014.54,2783390000,11014.54 +2006-06-15,10817.48,11049.85,10788.34,11015.19,2775480000,11015.19 +2006-06-14,10713.10,10816.99,10699.25,10816.91,2667990000,10816.91 +2006-06-13,10783.14,10893.04,10653.23,10706.14,3215770000,10706.14 +2006-06-12,10892.00,10969.32,10767.61,10792.58,2247010000,10792.58 +2006-06-09,10939.14,11015.67,10842.89,10891.92,2214000000,10891.92 +2006-06-08,10929.70,11032.15,10726.15,10938.82,3543790000,10938.82 +2006-06-07,11002.06,11107.48,10897.76,10930.90,2644170000,10930.90 +2006-06-06,11048.24,11140.45,10890.24,11002.14,2697650000,11002.14 +2006-06-05,11247.55,11259.96,11025.75,11048.72,2313470000,11048.72 +2006-06-02,11260.52,11329.28,11158.06,11247.87,2295540000,11247.87 +2006-06-01,11169.03,11290.86,11115.40,11260.28,2360160000,11260.28 +2006-05-31,11091.15,11225.78,11050.40,11168.31,2692160000,11168.31 +2006-05-30,11277.25,11277.25,11071.70,11094.43,2176190000,11094.43 +2006-05-26,11211.69,11329.36,11177.43,11278.61,1814020000,11278.61 +2006-05-25,11114.96,11258.12,11089.55,11211.05,2372730000,11211.05 +2006-05-24,11100.11,11241.15,10980.29,11117.32,2999030000,11117.32 +2006-05-23,11126.29,11254.68,11068.49,11098.35,2605250000,11098.35 +2006-05-22,11092.90,11175.03,11040.16,11125.32,2773010000,11125.32 +2006-05-19,11124.37,11254.60,11009.98,11144.06,2982300000,11144.06 +2006-05-18,11206.17,11301.26,11096.35,11128.29,2537490000,11128.29 +2006-05-17,11410.13,11412.28,11139.17,11205.61,2830200000,11205.61 +2006-05-16,11428.21,11520.42,11334.64,11419.89,2386210000,11419.89 +2006-05-15,11380.43,11485.61,11273.65,11428.77,2505660000,11428.77 +2006-05-12,11500.01,11551.40,11336.96,11380.99,2567970000,11380.99 +2006-05-11,11639.29,11660.58,11449.74,11500.73,2531520000,11500.73 +2006-05-10,11630.48,11709.09,11545.64,11642.65,2268550000,11642.65 +2006-05-09,11584.62,11684.28,11535.71,11639.77,2157290000,11639.77 +2006-05-08,11576.37,11665.14,11504.09,11584.54,2151300000,11584.54 +2006-05-05,11440.62,11616.16,11440.62,11577.74,2294760000,11577.74 +2006-05-04,11401.80,11512.18,11366.82,11438.86,2431450000,11438.86 +2006-05-03,11414.69,11472.96,11308.55,11400.28,2395230000,11400.28 +2006-05-02,11372.74,11427.43,11343.28,11416.44,2403470000,11416.44 +2006-05-01,11367.78,11476.96,11304.30,11343.29,2437040000,11343.29 +2006-04-28,11358.33,11462.95,11278.13,11367.14,2419920000,11367.14 +2006-04-27,11349.53,11465.75,11220.74,11382.51,2772010000,11382.51 +2006-04-26,11283.25,11428.77,11256.12,11354.49,2502690000,11354.49 +2006-04-25,11336.56,11401.32,11213.05,11283.25,2366380000,11283.25 +2006-04-24,11346.81,11420.05,11246.35,11336.32,2117330000,11336.32 +2006-04-21,11343.45,11468.16,11272.61,11347.45,2392630000,11347.45 +2006-04-20,11278.53,11429.25,11221.30,11342.89,2512920000,11342.89 +2006-04-19,11265.40,11379.79,11181.84,11278.77,2447310000,11278.77 +2006-04-18,11074.58,11302.30,11064.01,11268.77,2595440000,11268.77 +2006-04-17,11137.33,11203.13,11017.43,11073.78,1794650000,11073.78 +2006-04-13,11130.13,11210.73,11053.29,11137.65,1891940000,11137.65 +2006-04-12,11089.47,11194.00,11052.17,11129.97,1938100000,11129.97 +2006-04-11,11141.33,11220.98,11017.99,11089.63,2232880000,11089.63 +2006-04-10,11119.88,11211.37,11083.06,11141.33,1898320000,11141.33 +2006-04-07,11228.10,11268.92,11108.75,11120.04,2082470000,11120.04 +2006-04-06,11233.01,11294.30,11137.57,11216.50,2281680000,11216.50 +2006-04-05,11203.21,11290.30,11141.82,11239.55,2420020000,11239.55 +2006-04-04,11142.54,11269.17,11094.03,11203.85,2147660000,11203.85 +2006-04-03,11113.00,11287.02,11101.07,11144.94,2494080000,11144.94 +2006-03-31,11151.34,11229.47,11069.78,11109.32,2236710000,11109.32 +2006-03-30,11195.36,11259.08,11118.12,11150.70,2294560000,11150.70 +2006-03-29,11154.94,11283.97,11117.48,11215.70,2143540000,11215.70 +2006-03-28,11250.11,11312.31,11132.05,11154.54,2148580000,11154.54 +2006-03-27,11280.13,11314.96,11194.07,11250.11,2029700000,11250.11 +2006-03-24,11270.61,11353.21,11197.21,11279.97,2326070000,11279.97 +2006-03-23,11317.35,11363.46,11207.85,11270.29,1980940000,11270.29 +2006-03-22,11234.51,11358.01,11200.22,11317.43,2039810000,11317.43 +2006-03-21,11275.89,11364.34,11188.56,11235.47,2147370000,11235.47 +2006-03-20,11278.93,11350.73,11208.33,11274.53,1976830000,11274.53 +2006-03-17,11294.94,11294.94,11253.23,11279.65,2549620000,11279.65 +2006-03-16,11210.97,11324.80,11176.07,11253.24,2292180000,11253.24 +2006-03-15,11149.76,11258.28,11097.23,11209.77,2293000000,11209.77 +2006-03-14,11076.02,11190.96,11030.23,11151.34,2165270000,11151.34 +2006-03-13,11067.61,11157.82,11019.75,11076.02,2070330000,11076.02 +2006-03-10,10972.92,11125.41,10948.43,11076.34,2123450000,11076.34 +2006-03-09,11005.66,11093.39,10923.86,10972.28,2140110000,10972.28 +2006-03-08,10977.08,11065.61,10885.99,11005.74,2442870000,11005.74 +2006-03-07,10957.31,11032.31,10885.35,10980.69,2268050000,10980.69 +2006-03-06,11022.47,11084.66,10899.76,10958.59,2280190000,10958.59 +2006-03-03,11024.23,11125.01,10942.99,11021.59,2152950000,11021.59 +2006-03-02,11052.57,11090.91,10951.71,11025.51,2494590000,11025.51 +2006-03-01,10993.25,11115.80,10960.60,11053.53,2308320000,11053.53 +2006-02-28,11096.75,11115.24,10947.07,10993.41,2370860000,10993.41 +2006-02-27,11062.81,11180.48,11038.72,11097.55,1975320000,11097.55 +2006-02-24,11068.33,11085.38,11010.46,11061.85,1933010000,11061.85 +2006-02-23,11133.52,11167.83,11017.27,11069.22,2144210000,11069.22 +2006-02-22,11086.98,11159.02,11064.25,11137.17,2222380000,11137.17 +2006-02-21,11115.48,11182.68,11011.18,11069.06,2104320000,11069.06 +2006-02-17,11119.56,11178.80,11035.44,11115.32,2128260000,11115.32 +2006-02-16,11059.05,11154.14,10997.66,11120.68,2251490000,11120.68 +2006-02-15,11025.67,11115.56,10940.18,11058.97,2317590000,11058.97 +2006-02-14,10890.72,11071.54,10873.62,11028.39,2437940000,11028.39 +2006-02-13,10915.21,10982.93,10824.60,10892.32,1850080000,10892.32 +2006-02-10,10883.51,10972.76,10787.62,10919.05,2290050000,10919.05 +2006-02-09,10859.42,11003.50,10800.91,10883.35,2441920000,10883.35 +2006-02-08,10742.16,10897.44,10712.30,10858.62,2456860000,10858.62 +2006-02-07,10796.42,10874.79,10691.97,10749.76,2366370000,10749.76 +2006-02-06,10793.30,10868.62,10725.91,10798.27,2132360000,10798.27 +2006-02-03,10849.57,10905.28,10725.35,10793.62,2282210000,10793.62 +2006-02-02,10950.11,10987.73,10800.35,10851.98,2565300000,10851.98 +2006-02-01,10862.14,11001.82,10815.39,10953.95,2589410000,10953.95 +2006-01-31,10900.40,10970.28,10807.55,10864.86,2708310000,10864.86 +2006-01-30,10913.13,10930.34,10887.67,10899.92,2282730000,10899.92 +2006-01-27,10815.32,10988.29,10766.01,10907.21,2623620000,10907.21 +2006-01-26,10768.17,10827.96,10709.73,10809.47,2856780000,10809.47 +2006-01-25,10713.26,10832.93,10615.20,10709.74,2617060000,10709.74 +2006-01-24,10690.21,10804.75,10624.49,10712.22,2608720000,10712.22 +2006-01-23,10668.75,10783.70,10607.36,10688.77,2256070000,10688.77 +2006-01-20,10880.71,10890.08,10637.21,10667.39,2845810000,10667.39 +2006-01-19,10855.18,10965.00,10796.66,10880.71,2444020000,10880.71 +2006-01-18,10890.08,10934.90,10778.33,10854.86,2233200000,10854.86 +2006-01-17,10957.55,10977.01,10841.17,10896.32,2179970000,10896.32 +2006-01-13,10961.48,11033.04,10888.88,10959.87,2206510000,10959.87 +2006-01-12,11043.12,11070.10,10918.09,10962.36,2318350000,10962.36 +2006-01-11,11011.66,11099.15,10939.86,11043.44,2406130000,11043.44 +2006-01-10,11010.46,11054.49,10902.96,11011.58,2373080000,11011.58 +2006-01-09,10959.47,11053.93,10906.33,11011.90,2301490000,11011.90 +2006-01-06,10875.45,11005.98,10846.21,10959.31,2446560000,10959.31 +2006-01-05,10880.39,10951.39,10797.55,10882.15,2433340000,10882.15 +2006-01-04,10843.97,10946.27,10772.89,10880.15,2515330000,10880.15 +2006-01-03,10718.30,10888.40,10650.18,10847.41,2554570000,10847.41 +2005-12-30,10783.86,10801.87,10675.64,10717.50,1443500000,10717.50 +2005-12-29,10795.70,10870.71,10747.76,10784.82,1382540000,10784.82 +2005-12-28,10778.25,10858.07,10750.40,10796.26,1422360000,10796.26 +2005-12-27,10883.75,10956.99,10754.16,10777.77,1540470000,10777.77 +2005-12-23,10901.68,10904.40,10869.98,10883.27,1285810000,10883.27 +2005-12-22,10831.56,10928.34,10785.93,10889.44,1888500000,10889.44 +2005-12-21,10805.63,10933.70,10776.01,10833.73,2065170000,10833.73 +2005-12-20,10836.93,10905.28,10754.56,10805.55,1996690000,10805.55 +2005-12-19,10875.51,10970.04,10781.70,10836.53,2208810000,10836.53 +2005-12-16,10881.67,10978.21,10830.84,10875.59,2584190000,10875.59 +2005-12-15,10883.43,10985.01,10803.55,10881.67,2180590000,10881.67 +2005-12-14,10821.32,10953.07,10786.34,10883.51,2145520000,10883.51 +2005-12-13,10765.69,10902.64,10694.29,10823.72,2390020000,10823.72 +2005-12-12,10778.66,10857.02,10707.18,10767.77,1876550000,10767.77 +2005-12-09,10751.76,10845.33,10694.05,10778.58,1896290000,10778.58 +2005-12-08,10808.43,10871.11,10705.17,10755.12,2178300000,10755.12 +2005-12-07,10856.86,10916.89,10737.27,10810.91,2093830000,10810.91 +2005-12-06,10835.41,10956.13,10809.15,10856.86,2110740000,10856.86 +2005-12-05,10876.95,10923.37,10766.57,10835.01,2325840000,10835.01 +2005-12-02,10912.01,10952.83,10818.36,10877.51,2125580000,10877.51 +2005-12-01,10806.03,10969.97,10806.03,10912.57,2614830000,10912.57 +2005-11-30,10883.91,10959.80,10789.38,10805.87,2374690000,10805.87 +2005-11-29,10888.48,10994.85,10850.29,10888.16,2268340000,10888.16 +2005-11-28,10932.74,10992.39,10839.37,10890.72,2016900000,10890.72 +2005-11-25,10915.13,10997.50,10883.55,10931.62,724940000,10931.62 +2005-11-23,10865.90,10950.59,10855.42,10916.09,1985400000,10916.09 +2005-11-22,10815.96,10907.77,10729.99,10871.43,2291420000,10871.43 +2005-11-21,10766.33,10871.11,10708.86,10820.28,2117350000,10820.28 +2005-11-18,10719.34,10865.58,10663.79,10766.33,2453290000,10766.33 +2005-11-17,10677.00,10778.50,10619.61,10720.22,2298040000,10720.22 +2005-11-16,10697.81,10710.78,10653.14,10674.76,2121580000,10674.76 +2005-11-15,10697.01,10783.62,10610.08,10686.44,2359370000,10686.44 +2005-11-14,10686.60,10756.88,10618.89,10697.17,1899780000,10697.17 +2005-11-11,10641.30,10725.99,10595.89,10686.04,1773140000,10686.04 +2005-11-10,10550.61,10655.22,10519.71,10640.10,2378460000,10640.10 +2005-11-09,10539.24,10637.78,10466.24,10546.21,2214460000,10546.21 +2005-11-08,10574.18,10606.80,10478.49,10539.72,1965050000,10539.72 +2005-11-07,10531.24,10632.34,10488.74,10586.23,1987580000,10586.23 +2005-11-04,10523.23,10593.51,10441.59,10530.76,2050510000,10530.76 +2005-11-03,10470.49,10613.84,10421.98,10522.59,2716630000,10522.59 +2005-11-02,10406.29,10527.32,10347.70,10472.73,2648090000,10472.73 +2005-11-01,10437.51,10510.03,10352.42,10406.77,2457850000,10406.77 +2005-10-31,10403.17,10539.16,10372.67,10440.07,2567470000,10440.07 +2005-10-28,10231.15,10433.51,10213.14,10402.77,2379400000,10402.77 +2005-10-27,10334.81,10348.66,10229.95,10229.95,2395370000,10229.95 +2005-10-26,10377.39,10474.18,10283.10,10344.98,2467750000,10344.98 +2005-10-25,10383.88,10457.52,10282.78,10377.87,2312470000,10377.87 +2005-10-24,10219.15,10411.57,10219.15,10385.00,2197790000,10385.00 +2005-10-21,10282.22,10354.02,10161.60,10215.22,2470920000,10215.22 +2005-10-20,10411.73,10483.21,10230.27,10281.10,2617250000,10281.10 +2005-10-19,10277.18,10444.15,10173.52,10414.13,2703590000,10414.13 +2005-10-18,10349.14,10412.85,10233.47,10285.26,2197010000,10285.26 +2005-10-17,10287.42,10419.58,10213.06,10348.10,2054570000,10348.10 +2005-10-14,10216.59,10327.21,10165.12,10287.34,2188940000,10287.34 +2005-10-13,10216.91,10309.20,10098.18,10216.59,2351150000,10216.59 +2005-10-12,10247.40,10308.23,10186.17,10216.90,2491280000,10216.90 +2005-10-11,10239.16,10361.15,10195.13,10253.17,2299040000,10253.17 +2005-10-10,10292.95,10378.19,10184.09,10238.76,2195990000,10238.76 +2005-10-07,10287.42,10387.48,10221.47,10292.31,2126080000,10292.31 +2005-10-06,10317.36,10425.98,10200.81,10287.10,2792030000,10287.10 +2005-10-05,10434.81,10477.21,10299.27,10317.36,2546780000,10317.36 +2005-10-04,10534.36,10618.41,10409.89,10441.11,2341420000,10441.11 +2005-10-03,10569.50,10637.00,10486.17,10535.48,2097490000,10535.48 +2005-09-30,10540.51,10569.81,10526.34,10568.70,2097520000,10568.70 +2005-09-29,10472.61,10583.43,10389.01,10552.78,2176120000,10552.78 +2005-09-28,10456.61,10560.02,10390.05,10473.08,2106980000,10473.08 +2005-09-27,10444.58,10534.31,10376.83,10456.21,1976270000,10456.21 +2005-09-26,10420.22,10544.98,10381.53,10443.63,2022220000,10443.63 +2005-09-23,10421.81,10494.42,10328.59,10419.59,1973020000,10419.59 +2005-09-22,10376.20,10489.64,10303.51,10422.05,2424720000,10422.05 +2005-09-21,10484.23,10512.02,10335.28,10378.03,2548150000,10378.03 +2005-09-20,10558.19,10642.26,10453.98,10481.52,2319250000,10481.52 +2005-09-19,10641.87,10656.75,10497.29,10557.63,2076540000,10557.63 +2005-09-16,10560.50,10696.24,10539.64,10641.94,3152470000,10641.94 +2005-09-15,10545.85,10627.85,10488.05,10558.75,2079340000,10558.75 +2005-09-14,10545.85,10627.85,10488.05,10558.75,1986750000,10558.75 +2005-09-13,10673.71,10701.57,10561.61,10597.44,2082360000,10597.44 +2005-09-12,10678.41,10743.77,10618.13,10682.94,1938050000,10682.94 +2005-09-09,10594.10,10727.53,10573.47,10678.56,1992560000,10678.56 +2005-09-08,10633.11,10670.60,10530.01,10595.93,1955380000,10595.93 +2005-09-07,10588.68,10667.10,10534.23,10633.50,2067700000,10633.50 +2005-09-06,10447.69,10621.96,10447.69,10589.24,1932090000,10589.24 +2005-09-02,10460.67,10536.14,10400.88,10447.37,1640160000,10447.37 +2005-09-01,10481.44,10557.47,10382.09,10459.63,2229860000,10459.63 +2005-08-31,10415.84,10484.55,10357.65,10481.60,2365510000,10481.60 +2005-08-30,10461.54,10476.83,10329.15,10412.82,1916470000,10412.82 +2005-08-29,10396.90,10508.35,10321.42,10463.05,1599450000,10463.05 +2005-08-26,10450.95,10480.01,10355.02,10397.29,1541090000,10397.29 +2005-08-25,10434.39,10506.60,10391.71,10450.63,1571110000,10450.63 +2005-08-24,10519.34,10584.30,10407.56,10434.87,1930800000,10434.87 +2005-08-23,10571.01,10604.29,10475.63,10519.58,1678620000,10519.58 +2005-08-22,10559.78,10669.81,10509.07,10569.89,1621330000,10569.89 +2005-08-19,10552.70,10656.59,10503.90,10559.23,1558790000,10559.23 +2005-08-18,10531.12,10592.34,10517.67,10554.92,1808170000,10554.92 +2005-08-17,10505.60,10625.86,10472.45,10550.71,1859150000,10550.71 +2005-08-16,10631.59,10650.14,10489.24,10513.45,1820410000,10513.45 +2005-08-15,10599.19,10687.72,10532.48,10634.38,1562880000,10634.38 +2005-08-12,10682.70,10688.68,10549.19,10600.30,1709300000,10600.30 +2005-08-11,10591.83,10721.56,10549.43,10685.89,1941560000,10685.89 +2005-08-10,10606.52,10746.87,10553.81,10594.41,2172320000,10594.41 +2005-08-09,10537.65,10662.80,10537.01,10615.67,1897520000,10615.67 +2005-08-08,10557.24,10635.65,10497.45,10536.93,1804140000,10536.93 +2005-08-05,10610.34,10643.46,10512.49,10558.03,1930280000,10558.03 +2005-08-04,10696.80,10709.77,10568.70,10610.10,1981220000,10610.10 +2005-08-03,10681.51,10735.17,10600.02,10697.59,1999980000,10697.59 +2005-08-02,10623.79,10729.60,10600.62,10683.74,2043120000,10683.74 +2005-08-01,10641.78,10713.51,10578.97,10623.15,1716870000,10623.15 +2005-07-29,10705.16,10754.60,10608.27,10640.91,1789600000,10640.91 +2005-07-28,10633.50,10745.68,10603.49,10705.55,2001680000,10705.55 +2005-07-27,10579.45,10689.31,10530.50,10637.09,1945800000,10637.09 +2005-07-26,10597.60,10667.90,10535.58,10579.77,1934180000,10579.77 +2005-07-25,10651.66,10709.69,10565.12,10596.48,1717580000,10596.48 +2005-07-22,10624.19,10702.21,10552.54,10651.18,1766990000,10651.18 +2005-07-21,10690.03,10735.33,10567.98,10627.77,2129840000,10627.77 +2005-07-20,10629.52,10726.81,10535.10,10689.15,2063340000,10689.15 +2005-07-19,10576.90,10718.69,10573.00,10646.56,2041280000,10646.56 +2005-07-18,10640.19,10681.99,10533.59,10574.99,1582100000,10574.99 +2005-07-15,10629.44,10698.07,10559.46,10640.83,1716400000,10640.83 +2005-07-14,10559.86,10696.96,10559.86,10628.88,2048710000,10628.88 +2005-07-13,10513.36,10596.98,10481.36,10557.39,1812500000,10557.39 +2005-07-12,10519.49,10583.02,10444.46,10513.89,1932010000,10513.89 +2005-07-11,10449.60,10570.67,10425.97,10519.72,1846300000,10519.72 +2005-07-08,10302.90,10486.50,10279.65,10449.14,1900810000,10449.14 +2005-07-07,10269.76,10337.84,10142.24,10302.29,1952440000,10302.29 +2005-07-06,10366.52,10413.23,10242.21,10270.68,1883470000,10270.68 +2005-07-05,10292.62,10388.91,10282.64,10371.80,1805820000,10371.80 +2005-07-01,10273.59,10380.78,10239.91,10303.44,1593820000,10303.44 +2005-06-30,10374.18,10458.19,10253.49,10274.97,2109490000,10274.97 +2005-06-29,10405.94,10472.46,10332.52,10374.48,1769280000,10374.48 +2005-06-28,10291.01,10434.18,10285.86,10405.63,1772410000,10405.63 +2005-06-27,10298.07,10377.55,10229.40,10290.78,1738620000,10290.78 +2005-06-24,10422.28,10452.82,10266.30,10297.83,2418800000,10297.83 +2005-06-23,10587.09,10617.39,10401.49,10421.44,2029920000,10421.44 +2005-06-22,10599.36,10676.24,10543.28,10587.93,1823250000,10587.93 +2005-06-21,10608.88,10670.56,10545.89,10599.67,1720700000,10599.67 +2005-06-20,10621.54,10656.66,10539.21,10609.10,1714530000,10609.10 +2005-06-17,10580.41,10710.38,10561.00,10623.07,2407370000,10623.07 +2005-06-16,10566.76,10632.20,10501.92,10578.65,1776040000,10578.65 +2005-06-15,10548.65,10628.67,10471.69,10566.37,1840440000,10566.37 +2005-06-14,10521.95,10617.01,10473.92,10547.57,1698150000,10547.57 +2005-06-13,10503.57,10611.10,10437.32,10522.56,1661350000,10522.56 +2005-06-10,10503.02,10581.13,10410.50,10512.63,1664180000,10512.63 +2005-06-09,10477.75,10556.90,10410.80,10503.02,1824120000,10503.02 +2005-06-08,10484.84,10575.81,10439.77,10476.86,1715490000,10476.86 +2005-06-07,10466.00,10603.15,10454.18,10483.07,1851370000,10483.07 +2005-06-06,10461.64,10519.79,10410.28,10467.03,1547120000,10467.03 +2005-06-03,10552.82,10572.18,10427.35,10460.97,1627520000,10460.97 +2005-06-02,10548.83,10590.07,10478.26,10553.49,1813790000,10553.49 +2005-06-01,10462.86,10616.15,10433.48,10549.87,1810100000,10549.87 +2005-05-31,10541.89,10574.92,10437.77,10467.48,1840680000,10467.48 +2005-05-27,10537.08,10579.94,10489.35,10542.55,1381430000,10542.55 +2005-05-26,10458.68,10581.87,10450.55,10537.60,1654110000,10537.60 +2005-05-25,10503.17,10516.17,10396.46,10457.80,1742180000,10457.80 +2005-05-24,10522.68,10550.24,10433.78,10503.68,1681000000,10503.68 +2005-05-23,10472.80,10589.92,10438.36,10523.56,1681170000,10523.56 +2005-05-20,10492.75,10535.24,10400.60,10471.91,1631750000,10471.91 +2005-05-19,10464.45,10538.71,10394.39,10493.19,1775860000,10493.19 +2005-05-18,10323.19,10518.17,10323.19,10464.45,2266320000,10464.45 +2005-05-17,10247.49,10357.30,10175.81,10331.88,1887260000,10331.88 +2005-05-16,10139.61,10274.39,10118.32,10252.29,1856860000,10252.29 +2005-05-13,10188.23,10268.85,10062.76,10140.12,2188590000,10140.12 +2005-05-12,10299.74,10357.37,10155.86,10189.48,1995290000,10189.48 +2005-05-11,10272.91,10355.31,10172.86,10300.25,1834970000,10300.25 +2005-05-10,10382.94,10389.96,10230.35,10281.11,1889660000,10281.11 +2005-05-09,10345.40,10416.56,10288.95,10384.34,1857020000,10384.34 +2005-05-06,10339.71,10454.40,10300.70,10345.40,1707200000,10345.40 +2005-05-05,10384.49,10447.08,10276.75,10340.38,1997100000,10340.38 +2005-05-04,10255.25,10412.20,10239.95,10384.64,2306480000,10384.64 +2005-05-03,10251.04,10327.37,10169.39,10256.95,2167020000,10256.95 +2005-05-02,10192.00,10309.86,10149.06,10251.70,1980040000,10251.70 +2005-04-29,10073.47,10231.31,10021.23,10192.51,2362360000,10192.51 +2005-04-28,10194.58,10229.09,10036.74,10070.37,2182270000,10070.37 +2005-04-27,10150.32,10250.23,10048.27,10198.80,2151520000,10198.80 +2005-04-26,10240.99,10298.85,10108.79,10151.13,1959740000,10151.13 +2005-04-25,10158.52,10305.87,10148.25,10242.47,1795030000,10242.47 +2005-04-22,10216.68,10266.48,10055.29,10157.71,2045880000,10157.71 +2005-04-21,10010.51,10250.30,10010.51,10218.60,2308560000,10218.60 +2005-04-20,10131.18,10232.34,9978.74,10012.36,2217050000,10012.36 +2005-04-19,10071.55,10220.21,10021.08,10127.41,2142700000,10127.41 +2005-04-18,10088.54,10183.50,9961.52,10071.25,2180670000,10071.25 +2005-04-15,10276.61,10311.26,10059.36,10087.51,2689960000,10087.51 +2005-04-14,10403.71,10457.06,10248.23,10278.75,2355040000,10278.75 +2005-04-13,10507.45,10567.38,10355.16,10403.93,2049740000,10403.93 +2005-04-12,10448.63,10552.60,10331.21,10507.97,1979830000,10507.97 +2005-04-11,10462.08,10530.58,10393.36,10448.56,1525310000,10448.56 +2005-04-08,10546.32,10584.60,10445.31,10461.34,1661330000,10461.34 +2005-04-07,10485.88,10589.99,10434.30,10546.32,1900620000,10546.32 +2005-04-06,10453.45,10557.18,10434.22,10486.02,1797400000,10486.02 +2005-04-05,10421.14,10530.14,10372.59,10458.46,1870800000,10458.46 +2005-04-04,10401.71,10496.44,10307.64,10421.14,2079770000,10421.14 +2005-04-01,10504.57,10600.56,10349.02,10404.30,2168690000,10404.30 +2005-03-31,10541.59,10586.15,10448.19,10503.76,2214230000,10503.76 +2005-03-30,10405.77,10564.80,10395.21,10540.93,2097110000,10540.93 +2005-03-29,10486.10,10565.46,10351.76,10405.70,2223250000,10405.70 +2005-03-28,10444.13,10568.05,10412.79,10485.65,1746220000,10485.65 +2005-03-24,10457.06,10554.60,10415.16,10442.87,1721720000,10442.87 +2005-03-23,10470.58,10558.51,10384.34,10456.02,2246870000,10456.02 +2005-03-22,10565.39,10651.41,10446.78,10470.51,2114470000,10470.51 +2005-03-21,10629.90,10662.93,10503.46,10565.39,1819440000,10565.39 +2005-03-18,10627.83,10709.85,10520.60,10629.67,2344370000,10629.67 +2005-03-17,10633.30,10707.86,10561.10,10626.35,1581930000,10626.35 +2005-03-16,10741.63,10764.16,10569.30,10633.07,1653190000,10633.07 +2005-03-15,10804.29,10884.76,10716.87,10745.10,1513530000,10745.10 +2005-03-14,10773.92,10859.12,10709.26,10804.51,1437430000,10804.51 +2005-03-11,10845.30,10897.68,10728.62,10774.36,1449820000,10774.36 +2005-03-10,10806.28,10907.45,10757.36,10851.51,1604020000,10851.51 +2005-03-09,10912.32,10949.20,10768.66,10805.62,1704970000,10805.62 +2005-03-08,10935.60,10996.56,10863.40,10912.62,1523090000,10912.62 +2005-03-07,10940.55,11027.15,10886.09,10936.86,1488830000,10936.86 +2005-03-04,10834.51,10996.93,10834.51,10940.55,1636820000,10940.55 +2005-03-03,10812.27,10904.34,10744.14,10833.03,1616240000,10833.03 +2005-03-02,10825.68,10896.66,10736.16,10811.97,1568540000,10811.97 +2005-03-01,10794.98,10849.14,10769.04,10830.00,1708060000,10830.00 +2005-02-28,10842.05,10877.07,10709.41,10766.23,1795480000,10766.23 +2005-02-25,10748.42,10871.53,10698.32,10841.60,1523680000,10841.60 +2005-02-24,10672.24,10779.39,10612.24,10748.79,1518750000,10748.79 +2005-02-23,10609.28,10735.42,10583.64,10673.79,1501090000,10673.79 +2005-02-22,10783.38,10806.36,10596.79,10611.20,1744940000,10611.20 +2005-02-18,10755.15,10854.98,10682.29,10785.22,1551200000,10785.22 +2005-02-17,10835.03,10873.60,10729.95,10754.26,1580120000,10754.26 +2005-02-16,10832.03,10889.78,10746.21,10834.88,1490100000,10834.88 +2005-02-15,10791.06,10886.31,10745.10,10837.32,1527080000,10837.32 +2005-02-14,10795.72,10853.80,10722.63,10791.13,1290180000,10791.13 +2005-02-11,10742.92,10865.69,10680.15,10796.01,1562300000,10796.01 +2005-02-10,10665.00,10803.92,10633.67,10749.61,1491670000,10749.61 +2005-02-09,10717.76,10781.38,10621.84,10664.11,1511040000,10664.11 +2005-02-08,10712.51,10783.97,10647.85,10724.63,1416170000,10724.63 +2005-02-07,10715.76,10774.80,10650.59,10715.76,1347270000,10715.76 +2005-02-04,10593.17,10750.94,10553.93,10716.13,1648160000,10716.13 +2005-02-03,10592.21,10640.69,10511.96,10593.10,1554460000,10593.10 +2005-02-02,10551.05,10638.25,10501.02,10596.79,1561740000,10596.79 +2005-02-01,10489.72,10609.73,10464.38,10551.94,1681980000,10551.94 +2005-01-31,10428.76,10559.77,10414.49,10489.94,1679800000,10489.94 +2005-01-28,10470.58,10520.61,10331.58,10427.20,1641800000,10427.20 +2005-01-27,10498.14,10535.16,10379.47,10467.40,1600600000,10467.40 +2005-01-26,10463.19,10571.66,10433.56,10498.59,1635900000,10498.59 +2005-01-25,10369.42,10534.72,10369.42,10461.56,1610400000,10461.56 +2005-01-24,10393.58,10491.71,10317.10,10368.61,1494600000,10368.61 +2005-01-21,10471.98,10541.30,10370.97,10392.99,1643500000,10392.99 +2005-01-20,10538.90,10582.09,10414.72,10471.47,1692000000,10471.47 +2005-01-19,10626.05,10668.40,10519.20,10539.97,1498700000,10539.97 +2005-01-18,10554.23,10665.44,10456.61,10628.79,1596800000,10628.79 +2005-01-14,10506.71,10606.47,10475.01,10558.00,1335400000,10558.00 +2005-01-13,10617.41,10650.96,10463.26,10505.83,1510300000,10505.83 +2005-01-12,10561.32,10648.52,10481.37,10617.78,1562100000,10617.78 +2005-01-11,10619.77,10632.63,10504.72,10556.22,1488800000,10556.22 +2005-01-10,10603.44,10696.85,10544.99,10621.03,1490400000,10621.03 +2005-01-07,10624.80,10697.81,10545.80,10603.96,1477900000,10603.96 +2005-01-06,10593.19,10708.37,10555.48,10622.88,1569100000,10622.88 +2005-01-05,10629.53,10736.16,10561.03,10597.83,1738900000,10597.83 +2005-01-04,10727.81,10803.62,10587.48,10630.78,1720200000,10630.78 +2005-01-03,10783.75,10892.67,10694.18,10729.43,1505900000,10729.43 +2004-12-31,10800.30,10849.81,10759.94,10783.01,786900000,10783.01 +2004-12-30,10829.12,10880.03,10781.67,10800.30,829800000,10800.30 +2004-12-29,10853.72,10872.71,10771.26,10829.19,924900000,10829.19 +2004-12-28,10776.06,10890.82,10774.51,10854.54,984200000,10854.54 +2004-12-27,10828.01,10892.52,10755.67,10776.13,922000000,10776.13 +2004-12-23,10815.00,10895.10,10780.12,10827.12,956100000,10827.12 +2004-12-22,10752.34,10861.33,10709.78,10815.89,1390800000,10815.89 +2004-12-21,10661.89,10789.66,10646.60,10759.43,1483700000,10759.43 +2004-12-20,10652.14,10769.13,10622.20,10661.60,1422800000,10661.60 +2004-12-17,10704.83,10766.01,10562.76,10649.92,2335000000,10649.92 +2004-12-16,10691.71,10776.43,10612.31,10705.64,1793900000,10705.64 +2004-12-15,10675.71,10749.53,10601.74,10691.45,1695800000,10691.45 +2004-12-14,10640.53,10715.76,10571.67,10676.45,1544400000,10676.45 +2004-12-13,10543.44,10678.52,10520.61,10638.32,1436100000,10638.32 +2004-12-10,10552.16,10616.23,10469.62,10543.22,1443700000,10543.22 +2004-12-09,10492.45,10579.94,10389.81,10552.82,1624700000,10552.82 +2004-12-08,10438.77,10550.16,10395.05,10494.23,1525200000,10494.23 +2004-12-07,10546.80,10612.90,10423.21,10440.58,1533900000,10440.58 +2004-12-06,10591.32,10614.82,10490.31,10547.06,1354400000,10547.06 +2004-12-03,10597.90,10670.47,10515.73,10592.21,1566700000,10592.21 +2004-12-02,10590.44,10670.02,10485.21,10585.12,1774900000,10585.12 +2004-12-01,10425.80,10618.59,10421.66,10590.22,1772800000,10590.22 +2004-11-30,10475.27,10530.80,10380.58,10428.02,1553500000,10428.02 +2004-11-29,10520.64,10590.73,10390.92,10475.90,1378500000,10475.90 +2004-11-26,10518.69,10574.70,10479.52,10522.23,504580000,10522.23 +2004-11-24,10493.86,10565.76,10451.66,10520.31,1149600000,10520.31 +2004-11-23,10486.69,10547.28,10407.18,10492.60,1428300000,10492.60 +2004-11-22,10455.73,10535.46,10380.95,10489.42,1392700000,10489.42 +2004-11-19,10571.63,10588.29,10419.89,10456.91,1526600000,10456.91 +2004-11-18,10549.20,10639.43,10499.62,10572.55,1456700000,10572.55 +2004-11-17,10481.83,10655.09,10470.21,10549.57,1684200000,10549.57 +2004-11-16,10549.79,10570.56,10445.31,10487.65,1364400000,10487.65 +2004-11-15,10541.89,10612.31,10463.34,10550.24,1453300000,10550.24 +2004-11-12,10469.21,10565.48,10419.77,10539.01,1531600000,10539.01 +2004-11-11,10386.95,10513.42,10364.10,10469.84,1393000000,10469.84 +2004-11-10,10378.59,10470.21,10330.54,10385.48,1504300000,10385.48 +2004-11-09,10387.62,10466.81,10327.00,10386.37,1450800000,10386.37 +2004-11-08,10385.15,10452.58,10313.51,10391.31,1358700000,10391.31 +2004-11-05,10317.05,10458.10,10279.96,10387.54,1724400000,10387.54 +2004-11-04,10132.48,10352.81,10076.36,10314.76,1782700000,10314.76 +2004-11-03,10137.05,10253.27,10062.80,10137.05,1767500000,10137.05 +2004-11-02,10053.87,10180.85,9976.29,10035.73,1659000000,10035.73 +2004-11-01,10028.73,10124.44,9953.29,10054.39,1395900000,10054.39 +2004-10-29,10004.69,10083.44,9936.77,10027.47,1500800000,10027.47 +2004-10-28,9998.94,10074.89,9900.42,10004.54,1628200000,10004.54 +2004-10-27,9888.25,10051.96,9807.80,10002.03,1741900000,10002.03 +2004-10-26,9750.59,9914.65,9718.94,9888.48,1685400000,9888.48 +2004-10-25,9757.22,9827.20,9660.18,9749.99,1380500000,9749.99 +2004-10-22,9863.85,9920.99,9732.81,9757.81,1469600000,9757.81 +2004-10-21,9884.65,9969.07,9769.16,9865.76,1673000000,9865.76 +2004-10-20,9895.19,9957.05,9766.95,9886.93,1685700000,9886.93 +2004-10-19,9958.38,10064.20,9854.19,9897.62,1737500000,9897.62 +2004-10-18,9932.98,10002.18,9816.73,9956.32,1373300000,9956.32 +2004-10-15,9895.63,10022.31,9845.56,9933.38,1645100000,9933.38 +2004-10-14,10002.54,10048.48,9837.22,9894.45,1489500000,9894.45 +2004-10-13,10085.21,10157.11,9935.08,10002.33,1546200000,10002.33 +2004-10-12,10080.42,10121.49,9985.44,10077.18,1320100000,10077.18 +2004-10-11,10056.09,10142.74,10017.67,10081.97,943800000,10081.97 +2004-10-08,10124.11,10177.53,10013.91,10055.20,1291600000,10055.20 +2004-10-07,10239.84,10267.57,10086.83,10125.40,1447500000,10125.40 +2004-10-06,10170.70,10267.14,10112.20,10239.92,1416700000,10239.92 +2004-10-05,10216.76,10253.93,10123.19,10177.68,1418400000,10177.68 +2004-10-04,10191.40,10313.81,10153.79,10216.54,1534000000,10216.54 +2004-10-01,10082.04,10237.05,10081.38,10192.65,1582200000,10192.65 +2004-09-30,10136.38,10155.49,9987.36,10080.27,1748000000,10080.27 +2004-09-29,10078.06,10160.50,10002.57,10136.24,1402900000,10136.24 +2004-09-28,9989.73,10132.04,9950.71,10077.40,1396600000,10077.40 +2004-09-27,10046.65,10077.32,9952.78,9988.54,1263500000,9988.54 +2004-09-24,10039.42,10111.39,9993.92,10047.24,1255400000,10047.24 +2004-09-23,10108.29,10134.84,9999.67,10038.90,1286300000,10038.90 +2004-09-22,10244.05,10244.05,10075.33,10109.18,1379900000,10109.18 +2004-09-21,10204.52,10291.39,10159.54,10244.93,1325000000,10244.93 +2004-09-20,10283.87,10293.23,10152.90,10204.89,1197600000,10204.89 +2004-09-17,10245.82,10352.37,10219.71,10284.46,1422600000,10284.46 +2004-09-16,10231.59,10315.72,10194.35,10244.49,1113900000,10244.49 +2004-09-15,10316.90,10324.87,10195.60,10231.36,1256000000,10231.36 +2004-09-14,10315.13,10374.79,10260.93,10318.16,1204500000,10318.16 +2004-09-13,10306.65,10380.47,10250.61,10314.76,1299800000,10314.76 +2004-09-10,10289.47,10348.68,10196.19,10313.07,1261200000,10313.07 +2004-09-09,10313.36,10337.33,10269.49,10289.10,1371300000,10289.10 +2004-09-08,10342.42,10390.64,10267.94,10313.36,1246300000,10313.36 +2004-09-07,10261.52,10388.95,10255.62,10341.16,1214400000,10341.16 +2004-09-03,10277.82,10346.99,10229.52,10260.20,924170000,10260.20 +2004-09-02,10168.39,10312.99,10129.01,10290.28,1118400000,10290.28 +2004-09-01,10170.12,10230.48,10092.37,10168.46,1142100000,10168.46 +2004-08-31,10121.97,10198.03,10056.09,10173.92,1138200000,10173.92 +2004-08-30,10193.83,10226.87,10110.43,10122.52,843100000,10122.52 +2004-08-27,10174.07,10235.49,10143.91,10195.01,845400000,10195.01 +2004-08-26,10181.07,10225.61,10124.88,10173.41,1023600000,10173.41 +2004-08-25,10098.49,10224.29,10041.93,10181.74,1192200000,10181.74 +2004-08-24,10074.89,10165.07,10044.66,10098.63,1092500000,10098.63 +2004-08-23,10111.10,10159.54,10046.72,10073.05,1021900000,10073.05 +2004-08-20,10040.81,10143.76,9989.65,10110.14,1199900000,10110.14 +2004-08-19,10082.78,10111.91,9972.39,10040.82,1249400000,10040.82 +2004-08-18,9964.22,10097.01,9910.82,10083.15,1282500000,10083.15 +2004-08-17,9955.50,10053.21,9916.05,9972.83,1267800000,9972.83 +2004-08-16,9825.35,9987.58,9807.44,9954.55,1206200000,9954.55 +2004-08-13,9814.11,9897.34,9746.60,9825.35,1175100000,9825.35 +2004-08-12,9936.48,9940.02,9780.52,9814.59,1405100000,9814.59 +2004-08-11,9931.24,9981.61,9804.63,9938.32,1410400000,9938.32 +2004-08-10,9815.55,9961.70,9798.44,9944.67,1245600000,9944.67 +2004-08-09,9816.14,9902.49,9773.74,9814.66,1086000000,9814.66 +2004-08-06,9960.67,9963.47,9767.54,9815.33,1521000000,9815.33 +2004-08-05,10127.10,10158.44,9945.84,9963.03,1397400000,9963.03 +2004-08-04,10117.96,10186.16,10029.02,10126.51,1369200000,10126.51 +2004-08-03,10178.27,10228.49,10064.57,10120.24,1338300000,10120.24 +2004-08-02,10138.45,10224.29,10063.75,10179.16,1276000000,10179.16 +2004-07-30,10129.12,10194.13,10045.76,10139.71,1298200000,10139.71 +2004-07-29,10115.52,10213.08,10049.74,10129.24,1530100000,10129.24 +2004-07-28,10084.03,10170.31,9966.34,10117.07,1554300000,10117.07 +2004-07-27,9963.54,10133.95,9942.75,10085.14,1610800000,10085.14 +2004-07-26,9964.71,10054.32,9874.38,9961.92,1413400000,9961.92 +2004-07-23,10045.46,10069.51,9893.93,9962.22,1337500000,9962.22 +2004-07-22,10047.60,10114.41,9906.62,10050.33,1680800000,10050.33 +2004-07-21,10156.30,10279.96,10027.92,10046.13,1679500000,10046.13 +2004-07-20,10094.43,10186.90,10031.24,10149.07,1445800000,10149.07 +2004-07-19,10140.95,10211.60,10027.33,10094.06,1319900000,10094.06 +2004-07-16,10162.34,10289.40,10095.32,10139.78,1450300000,10139.78 +2004-07-15,10208.20,10275.27,10115.81,10163.16,1408700000,10163.16 +2004-07-14,10232.84,10313.95,10129.31,10208.80,1462000000,10208.80 +2004-07-13,10238.37,10297.58,10188.45,10247.59,1199700000,10247.59 +2004-07-12,10211.75,10284.39,10130.42,10238.22,1114600000,10238.22 +2004-07-09,10173.12,10277.16,10150.32,10213.22,1186300000,10213.22 +2004-07-08,10238.52,10297.73,10134.99,10171.56,1401100000,10171.56 +2004-07-07,10211.92,10300.53,10156.45,10240.29,1328600000,10240.29 +2004-07-06,10280.26,10308.43,10163.60,10219.34,1283300000,10219.34 +2004-07-02,10334.00,10371.40,10228.71,10282.83,1085000000,10282.83 +2004-07-01,10434.00,10473.23,10255.55,10334.16,1495700000,10334.16 +2004-06-30,10413.43,10489.16,10348.98,10435.48,1473800000,10435.48 +2004-06-29,10356.35,10460.25,10315.65,10413.43,1375000000,10413.43 +2004-06-28,10377.52,10505.16,10317.64,10357.09,1354600000,10357.09 +2004-06-25,10444.24,10514.67,10329.88,10371.84,1812900000,10371.84 +2004-06-24,10477.43,10530.01,10398.16,10443.81,1394900000,10443.81 +2004-06-23,10395.14,10498.67,10323.32,10479.57,1444200000,10479.57 +2004-06-22,10370.21,10431.05,10284.24,10395.07,1382300000,10395.07 +2004-06-21,10417.82,10471.76,10336.44,10371.47,1123900000,10371.47 +2004-06-18,10375.82,10471.84,10328.20,10416.41,1500600000,10416.41 +2004-06-17,10378.59,10417.69,10308.25,10377.52,1296700000,10377.52 +2004-06-16,10380.23,10433.52,10320.60,10379.58,1168400000,10379.58 +2004-06-15,10336.51,10464.04,10319.89,10380.43,1345900000,10380.43 +2004-06-14,10401.23,10403.50,10283.48,10334.73,1179400000,10334.73 +2004-06-10,10367.80,10448.00,10333.94,10410.10,1160600000,10410.10 +2004-06-09,10431.10,10466.59,10325.07,10368.44,1276800000,10368.44 +2004-06-08,10389.41,10462.97,10323.94,10432.52,1190300000,10432.52 +2004-06-07,10243.31,10410.81,10243.31,10391.08,1211800000,10391.08 +2004-06-04,10196.83,10327.84,10196.83,10242.82,1115300000,10242.82 +2004-06-03,10261.85,10309.46,10163.40,10195.91,1232400000,10195.91 +2004-06-02,10199.78,10310.10,10170.57,10262.97,1251700000,10262.97 +2004-06-01,10187.18,10254.17,10104.07,10202.65,1238000000,10202.65 +2004-05-28,10205.83,10250.27,10137.14,10188.45,1172600000,10188.45 +2004-05-27,10109.89,10267.66,10106.13,10205.20,1447500000,10205.20 +2004-05-26,10116.84,10175.75,10034.16,10109.89,1369400000,10109.89 +2004-05-25,9958.08,10139.27,9895.41,10117.62,1545700000,10117.62 +2004-05-24,9968.02,10084.91,9891.22,9958.43,1227500000,9958.43 +2004-05-21,9939.34,10058.50,9910.81,9966.74,1258600000,9966.74 +2004-05-20,9939.12,10014.50,9867.73,9937.64,1211000000,9937.64 +2004-05-19,9962.55,10124.79,9919.90,9937.71,1548600000,9937.71 +2004-05-18,9906.71,10028.27,9895.77,9968.51,1353000000,9968.51 +2004-05-17,10009.92,10009.92,9827.21,9906.91,1430100000,9906.91 +2004-05-14,10008.43,10096.69,9912.45,10012.87,1335900000,10012.87 +2004-05-13,10044.31,10100.24,9924.94,10010.74,1411100000,10010.74 +2004-05-12,10011.52,10089.87,9822.10,10045.16,1697600000,10045.16 +2004-05-11,9989.24,10092.78,9928.91,10019.47,1533800000,10019.47 +2004-05-10,10116.28,10116.28,9881.86,9990.02,1918400000,9990.02 +2004-05-07,10240.62,10302.93,10086.94,10117.34,1653600000,10117.34 +2004-05-06,10308.20,10332.10,10147.21,10241.26,1509300000,10241.26 +2004-05-05,10316.98,10382.98,10249.63,10310.95,1469000000,10310.95 +2004-05-04,10314.32,10403.14,10232.31,10317.20,1662100000,10317.20 +2004-05-03,10227.27,10365.74,10199.67,10314.00,1571600000,10314.00 +2004-04-30,10273.06,10374.61,10198.39,10225.57,1634700000,10225.57 +2004-04-29,10339.41,10443.81,10199.31,10272.27,1859000000,10272.27 +2004-04-28,10476.67,10479.58,10301.65,10342.60,1855600000,10342.60 +2004-04-27,10445.38,10570.92,10410.52,10478.16,1518000000,10478.16 +2004-04-26,10472.91,10540.26,10396.75,10444.73,1290600000,10444.73 +2004-04-23,10463.11,10543.95,10362.97,10472.84,1396100000,10472.84 +2004-04-22,10314.99,10529.12,10255.88,10461.20,1826700000,10461.20 +2004-04-21,10311.87,10398.53,10200.38,10317.27,1738100000,10317.27 +2004-04-20,10437.85,10530.61,10297.39,10314.50,1508500000,10314.50 +2004-04-19,10451.62,10501.79,10351.97,10437.85,1194900000,10437.85 +2004-04-16,10398.32,10500.57,10343.74,10451.97,1487800000,10451.97 +2004-04-15,10377.95,10481.21,10279.37,10397.46,1568700000,10397.46 +2004-04-14,10378.10,10453.39,10259.35,10377.95,1547700000,10377.95 +2004-04-13,10516.05,10572.13,10343.17,10381.28,1423200000,10381.28 +2004-04-12,10444.38,10559.28,10439.27,10515.56,1102400000,10515.56 +2004-04-08,10482.77,10590.15,10383.84,10442.03,1199800000,10442.03 +2004-04-07,10569.26,10580.51,10422.74,10480.15,1458800000,10480.15 +2004-04-06,10553.76,10596.37,10467.26,10570.81,1397700000,10570.81 +2004-04-05,10470.59,10582.22,10423.33,10558.37,1413700000,10558.37 +2004-04-02,10375.33,10548.74,10375.33,10470.59,1629200000,10470.59 +2004-04-01,10357.52,10449.33,10299.48,10373.33,1560700000,10373.33 +2004-03-31,10380.89,10428.59,10287.11,10357.70,1560700000,10357.70 +2004-03-30,10327.63,10411.41,10264.15,10381.70,1332400000,10381.70 +2004-03-29,10212.91,10389.93,10212.91,10329.63,1405500000,10329.63 +2004-03-26,10218.37,10306.22,10145.63,10212.97,1319100000,10212.97 +2004-03-25,10049.56,10246.15,10049.56,10218.82,1471700000,10218.82 +2004-03-24,10065.41,10140.23,9975.86,10048.23,1527800000,10048.23 +2004-03-23,10066.67,10177.04,10020.75,10063.64,1458200000,10063.64 +2004-03-22,10185.93,10185.93,9985.19,10064.75,1452300000,10064.75 +2004-03-19,10295.85,10355.41,10163.71,10186.60,1457400000,10186.60 +2004-03-18,10298.96,10355.04,10187.78,10295.78,1369200000,10295.78 +2004-03-17,10184.30,10356.59,10184.30,10300.30,1490100000,10300.30 +2004-03-16,10103.41,10253.26,10085.34,10184.67,1500700000,10184.67 +2004-03-15,10238.45,10252.68,10066.08,10102.89,1600600000,10102.89 +2004-03-12,10130.67,10281.63,10097.04,10240.08,1388500000,10240.08 +2004-03-11,10288.85,10356.22,10102.75,10128.38,1889900000,10128.38 +2004-03-10,10457.59,10523.11,10259.34,10296.89,1648400000,10296.89 +2004-03-09,10529.52,10567.03,10391.48,10456.96,1499400000,10456.96 +2004-03-08,10595.37,10677.85,10505.85,10529.48,1254400000,10529.48 +2004-03-05,10582.59,10681.40,10497.11,10595.55,1398200000,10595.55 +2004-03-04,10593.48,10645.33,10522.59,10588.00,1265800000,10588.00 +2004-03-03,10588.59,10651.03,10506.66,10593.11,1334500000,10593.11 +2004-03-02,10678.36,10713.92,10539.40,10591.48,1476000000,10591.48 +2004-03-01,10582.25,10720.14,10568.74,10678.14,1497100000,10678.14 +2004-02-27,10581.55,10689.55,10519.03,10583.92,1540400000,10583.92 +2004-02-26,10598.14,10652.96,10493.70,10580.14,1383900000,10580.14 +2004-02-25,10566.59,10660.73,10509.40,10601.62,1360700000,10601.62 +2004-02-24,10609.55,10681.40,10479.33,10566.37,1543600000,10566.37 +2004-02-23,10619.55,10711.84,10508.89,10609.62,1380400000,10609.62 +2004-02-20,10666.29,10722.77,10559.11,10619.03,1479600000,10619.03 +2004-02-19,10674.59,10794.95,10626.44,10664.73,1562800000,10664.73 +2004-02-18,10706.68,10764.36,10623.62,10671.99,1382400000,10671.99 +2004-02-17,10628.88,10762.07,10628.88,10714.88,1396500000,10714.88 +2004-02-13,10696.22,10755.47,10578.66,10627.85,1329200000,10627.85 +2004-02-12,10735.18,10775.03,10636.44,10694.07,1464300000,10694.07 +2004-02-11,10605.48,10779.40,10561.55,10737.70,1699300000,10737.70 +2004-02-10,10578.74,10667.03,10511.18,10613.85,1403900000,10613.85 +2004-02-09,10592.00,10634.81,10433.70,10579.03,1303500000,10579.03 +2004-02-06,10494.89,10634.81,10433.70,10593.03,1477600000,10593.03 +2004-02-05,10469.33,10566.37,10399.92,10495.55,1566600000,10495.55 +2004-02-04,10503.11,10567.85,10394.81,10470.74,1634800000,10470.74 +2004-02-03,10499.48,10571.48,10414.15,10505.18,1476900000,10505.18 +2004-02-02,10487.78,10614.44,10395.55,10499.18,1599200000,10499.18 +2004-01-30,10510.22,10551.03,10385.56,10488.07,1635000000,10488.07 +2004-01-29,10467.41,10611.56,10369.92,10510.29,1921900000,10510.29 +2004-01-28,10610.07,10703.25,10412.44,10468.37,1842000000,10468.37 +2004-01-27,10701.10,10748.81,10579.33,10609.92,1673100000,10609.92 +2004-01-26,10568.00,10725.18,10510.44,10702.51,1480600000,10702.51 +2004-01-23,10625.25,10691.77,10490.14,10568.29,1561200000,10568.29 +2004-01-22,10624.22,10717.40,10545.03,10623.18,1693700000,10623.18 +2004-01-21,10522.77,10665.70,10453.11,10623.62,1757600000,10623.62 +2004-01-20,10601.40,10676.96,10447.92,10528.66,1698200000,10528.66 +2004-01-16,10556.37,10666.88,10503.70,10600.51,1721100000,10600.51 +2004-01-15,10534.52,10639.03,10454.52,10553.85,1695000000,10553.85 +2004-01-14,10428.67,10573.85,10426.89,10538.37,1514600000,10538.37 +2004-01-13,10485.18,10539.25,10341.19,10427.18,1595900000,10427.18 +2004-01-12,10461.55,10543.03,10389.85,10485.18,1510200000,10485.18 +2004-01-09,10589.25,10603.48,10420.52,10458.89,1720700000,10458.89 +2004-01-08,10530.07,10651.99,10480.59,10592.44,1868400000,10592.44 +2004-01-07,10535.46,10587.55,10432.00,10529.03,1704900000,10529.03 +2004-01-06,10543.85,10584.07,10454.37,10538.66,1494500000,10538.66 +2004-01-05,10411.85,10575.92,10411.85,10544.07,1578200000,10544.07 +2004-01-02,10452.74,10554.96,10367.41,10409.85,1153200000,10409.85 +2003-12-31,10426.30,10494.44,10382.89,10453.92,1027500000,10453.92 +2003-12-30,10449.70,10493.11,10374.52,10425.04,1012600000,10425.04 +2003-12-29,10321.35,10457.78,10319.70,10450.00,1058800000,10450.00 +2003-12-26,10305.85,10368.89,10282.22,10324.67,356070000,10324.67 +2003-12-24,10341.41,10365.63,10263.04,10305.19,518060000,10305.19 +2003-12-23,10337.56,10421.48,10265.71,10341.26,1145300000,10341.26 +2003-12-22,10276.48,10371.11,10216.08,10338.00,1251700000,10338.00 +2003-12-19,10249.48,10345.44,10189.63,10278.22,1657300000,10278.22 +2003-12-18,10141.41,10278.82,10117.78,10248.08,1579900000,10248.08 +2003-12-17,10128.75,10186.67,10040.08,10145.26,1441700000,10145.26 +2003-12-16,10023.34,10173.19,9986.23,10129.56,1547900000,10129.56 +2003-12-15,10046.53,10180.97,9994.38,10022.82,1520800000,10022.82 +2003-12-12,10008.75,10091.71,9946.60,10042.16,1223100000,10042.16 +2003-12-11,9922.45,10056.97,9896.16,10008.16,1441100000,10008.16 +2003-12-10,9922.38,10000.53,9848.97,9921.86,1444000000,9921.86 +2003-12-09,9966.45,10048.75,9887.57,9923.42,1465500000,9923.42 +2003-12-08,9862.01,9997.34,9824.83,9965.27,1218900000,9965.27 +2003-12-05,9923.27,9954.16,9819.05,9862.68,1265900000,9862.68 +2003-12-04,9874.83,9978.08,9814.97,9930.82,1463100000,9930.82 +2003-12-03,9851.94,9974.45,9824.31,9873.42,1441700000,9873.42 +2003-12-02,9899.64,9936.97,9798.83,9853.64,1383200000,9853.64 +2003-12-01,9785.35,9943.34,9777.64,9899.05,1375000000,9899.05 +2003-11-28,9779.72,9832.16,9733.20,9782.46,487220000,9782.46 +2003-11-26,9763.49,9838.01,9689.05,9779.57,1097700000,9779.57 +2003-11-25,9748.68,9821.94,9679.13,9763.94,1333700000,9763.94 +2003-11-24,9629.87,9788.60,9629.87,9747.79,1302800000,9747.79 +2003-11-21,9622.02,9692.53,9556.68,9628.53,1273800000,9628.53 +2003-11-20,9688.46,9756.09,9576.91,9619.42,1326700000,9619.42 +2003-11-19,9620.68,9731.94,9584.31,9690.46,1326200000,9690.46 +2003-11-18,9711.44,9792.16,9601.35,9624.16,1354300000,9624.16 +2003-11-17,9765.64,9775.35,9603.57,9710.83,1374300000,9710.83 +2003-11-14,9836.46,9919.19,9709.13,9768.68,1356100000,9768.68 +2003-11-13,9846.97,9895.71,9740.53,9837.94,1383000000,9837.94 +2003-11-12,9729.50,9882.60,9700.02,9848.83,1349300000,9848.83 +2003-11-11,9756.53,9801.21,9673.64,9737.79,1162500000,9737.79 +2003-11-10,9807.49,9861.05,9702.46,9756.53,1243600000,9756.53 +2003-11-07,9857.12,9945.71,9770.31,9809.79,1440500000,9809.79 +2003-11-06,9820.68,9888.90,9738.53,9856.97,1453900000,9856.97 +2003-11-05,9837.64,9883.86,9746.98,9820.83,1401800000,9820.83 +2003-11-04,9857.49,9905.94,9770.46,9838.83,1417600000,9838.83 +2003-11-03,9802.46,9936.31,9792.60,9858.46,1378200000,9858.46 +2003-10-31,9786.75,9880.08,9745.94,9801.12,1498900000,9801.12 +2003-10-30,9772.01,9882.97,9719.20,9786.61,1629700000,9786.61 +2003-10-29,9747.05,9830.23,9663.27,9774.53,1562600000,9774.53 +2003-10-28,9609.72,9769.57,9592.54,9748.31,1629200000,9748.31 +2003-10-27,9584.54,9696.98,9553.80,9608.16,1371800000,9608.16 +2003-10-24,9600.98,9631.50,9463.28,9582.46,1420300000,9582.46 +2003-10-23,9597.20,9661.05,9517.50,9613.13,1604300000,9613.13 +2003-10-22,9741.98,9741.98,9551.65,9598.24,1647200000,9598.24 +2003-10-21,9778.31,9824.90,9697.94,9747.64,1498000000,9747.64 +2003-10-20,9721.50,9816.97,9665.35,9777.94,1172600000,9777.94 +2003-10-17,9791.86,9833.12,9679.72,9721.79,1352000000,9721.79 +2003-10-16,9798.68,9838.53,9679.13,9791.72,1417700000,9791.72 +2003-10-15,9824.09,9901.64,9731.57,9803.05,1521100000,9803.05 +2003-10-14,9763.27,9833.42,9696.90,9812.98,1271900000,9812.98 +2003-10-13,9675.72,9814.97,9675.72,9764.38,1040500000,9764.38 +2003-10-10,9682.90,9743.12,9622.31,9674.68,1108100000,9674.68 +2003-10-09,9633.35,9798.08,9617.35,9680.01,1578700000,9680.01 +2003-10-08,9653.33,9699.35,9571.35,9630.90,1262500000,9630.90 +2003-10-07,9593.28,9672.68,9512.76,9654.61,1279500000,9654.61 +2003-10-06,9572.39,9656.09,9524.39,9594.98,1025800000,9594.98 +2003-10-03,9492.54,9701.87,9492.54,9572.31,1570500000,9572.31 +2003-10-02,9464.76,9539.20,9397.87,9487.80,1269300000,9487.80 +2003-10-01,9275.06,9472.69,9275.06,9469.20,1566300000,9469.20 +2003-09-30,9378.10,9393.35,9199.43,9275.06,1590500000,9275.06 +2003-09-29,9314.42,9431.54,9259.68,9380.24,1366500000,9380.24 +2003-09-26,9342.43,9407.89,9257.99,9313.08,1472500000,9313.08 +2003-09-25,9425.58,9493.44,9311.47,9343.96,1530000000,9343.96 +2003-09-24,9575.97,9612.53,9400.67,9425.51,1556000000,9425.51 +2003-09-23,9535.76,9623.34,9479.41,9576.04,1301700000,9576.04 +2003-09-22,9641.80,9641.87,9467.83,9535.41,1278800000,9535.41 +2003-09-19,9661.80,9719.49,9582.64,9644.82,1518600000,9644.82 +2003-09-18,9544.04,9691.55,9513.37,9659.13,1498800000,9659.13 +2003-09-17,9566.08,9641.45,9510.28,9545.65,1338210000,9545.65 +2003-09-16,9449.16,9587.90,9426.84,9567.34,1403200000,9567.34 +2003-09-15,9471.19,9541.02,9396.03,9448.81,1151300000,9448.81 +2003-09-12,9456.88,9517.37,9348.59,9471.55,1236700000,9471.55 +2003-09-11,9415.05,9540.60,9374.49,9459.76,1335900000,9459.76 +2003-09-10,9504.88,9545.51,9373.08,9420.46,1582100000,9420.46 +2003-09-09,9584.92,9617.02,9459.85,9507.20,1414800000,9507.20 +2003-09-08,9503.41,9638.57,9492.25,9586.29,1299300000,9586.29 +2003-09-05,9589.52,9602.22,9441.93,9503.34,1465200000,9503.34 +2003-09-04,9569.09,9661.80,9492.74,9587.90,1453900000,9587.90 +2003-09-03,9521.86,9632.75,9465.72,9568.46,1675600000,9568.46 +2003-09-02,9416.67,9563.83,9357.44,9523.27,1470500000,9523.27 +2003-08-29,9373.33,9444.25,9320.52,9415.82,945100000,9415.82 +2003-08-28,9334.35,9415.68,9246.48,9374.21,1165200000,9374.21 +2003-08-27,9339.82,9387.82,9280.03,9333.79,1051400000,9333.79 +2003-08-26,9316.03,9372.45,9203.54,9340.45,1178700000,9340.45 +2003-08-25,9349.44,9381.51,9242.56,9317.64,971700000,9317.64 +2003-08-22,9436.04,9535.97,9323.26,9348.87,1308900000,9348.87 +2003-08-21,9399.96,9517.37,9345.71,9423.68,1407100000,9423.68 +2003-08-20,9420.13,9454.49,9324.03,9397.51,1210800000,9397.51 +2003-08-19,9412.17,9490.60,9315.25,9428.90,1300600000,9428.90 +2003-08-18,9320.66,9466.79,9309.16,9412.45,1127600000,9412.45 +2003-08-15,9308.52,9360.27,9253.20,9321.69,636370000,9321.69 +2003-08-14,9272.25,9356.63,9193.33,9310.56,1186800000,9310.56 +2003-08-13,9303.69,9350.19,9213.43,9271.76,1208800000,9271.76 +2003-08-12,9218.12,9329.04,9163.29,9310.06,1132300000,9310.06 +2003-08-11,9189.62,9275.61,9124.00,9217.35,1022200000,9217.35 +2003-08-08,9127.36,9230.37,9097.74,9191.09,1086600000,9191.09 +2003-08-07,9060.48,9171.13,9003.63,9126.45,1389300000,9126.45 +2003-08-06,9032.96,9151.38,8964.13,9061.74,1491000000,9061.74 +2003-08-05,9185.27,9210.21,9024.77,9036.32,1351700000,9036.32 +2003-08-04,9154.18,9231.84,9033.66,9186.04,1318700000,9186.04 +2003-08-01,9232.68,9266.37,9100.12,9153.97,1390600000,9153.97 +2003-07-31,9199.35,9398.02,9183.80,9233.80,1608000000,9233.80 +2003-07-30,9204.39,9272.88,9131.70,9200.05,1391900000,9200.05 +2003-07-29,9268.19,9327.36,9135.62,9204.46,1508900000,9204.46 +2003-07-28,9284.92,9356.77,9182.96,9266.51,1328600000,9266.51 +2003-07-25,9113.85,9296.62,9062.38,9284.57,1397500000,9284.57 +2003-07-24,9196.56,9313.99,9092.98,9112.51,1559000000,9112.51 +2003-07-23,9159.08,9249.91,9064.69,9194.24,1362700000,9194.24 +2003-07-22,9098.65,9221.83,9008.60,9158.45,1439700000,9158.45 +2003-07-21,9187.80,9219.87,9025.12,9096.69,1254200000,9096.69 +2003-07-18,9052.29,9212.31,9034.36,9188.15,1365200000,9188.15 +2003-07-17,9089.34,9160.27,8968.82,9050.82,1661400000,9050.82 +2003-07-16,9133.70,9185.63,9005.23,9094.59,1662000000,9094.59 +2003-07-15,9179.18,9260.42,9054.60,9128.97,1518600000,9128.97 +2003-07-14,9126.45,9316.44,9126.45,9177.15,1448900000,9177.15 +2003-07-11,9036.39,9176.59,9009.01,9119.59,1212700000,9119.59 +2003-07-10,9154.53,9154.53,8978.13,9036.04,1465700000,9036.04 +2003-07-09,9221.90,9270.22,9077.91,9156.21,1618000000,9156.21 +2003-07-08,9213.48,9281.77,9122.24,9223.09,1565700000,9223.09 +2003-07-07,9073.92,9289.90,9073.92,9216.79,1429100000,9216.79 +2003-07-03,9141.16,9164.48,9014.06,9070.21,775900000,9070.21 +2003-07-02,9043.54,9168.82,9025.12,9142.84,1519300000,9142.84 +2003-07-01,8983.66,9068.05,8843.61,9040.95,1460200000,9040.95 +2003-06-30,8990.74,9100.12,8934.71,8985.44,1587200000,8985.44 +2003-06-27,9079.74,9135.91,8938.26,8989.05,1267800000,8989.05 +2003-06-26,9011.06,9118.82,8953.83,9079.04,1387400000,9079.04 +2003-06-25,9109.57,9195.20,8984.29,9011.53,1459200000,9011.53 +2003-06-24,9071.48,9179.25,9020.08,9109.85,1388300000,9109.85 +2003-06-23,9199.49,9215.32,9003.83,9072.95,1398100000,9072.95 +2003-06-20,9180.93,9306.36,9149.21,9200.75,1698000000,9200.75 +2003-06-19,9293.80,9346.34,9134.50,9179.53,1530100000,9179.53 +2003-06-18,9322.67,9363.15,9185.17,9293.80,1488900000,9293.80 +2003-06-17,9319.66,9406.50,9234.78,9323.02,1479700000,9323.02 +2003-06-16,9117.56,9335.49,9117.56,9318.96,1345900000,9318.96 +2003-06-13,9197.88,9234.23,9042.63,9117.12,1271600000,9117.12 +2003-06-12,9184.29,9270.64,9089.38,9196.55,1553100000,9196.55 +2003-06-11,9048.85,9202.08,9010.13,9183.22,1520000000,9183.22 +2003-06-10,8980.79,9111.11,8946.06,9054.89,1275400000,9054.89 +2003-06-09,9061.18,9109.43,8909.78,8980.00,1307000000,8980.00 +2003-06-06,9045.57,9248.71,9008.87,9062.79,1837200000,9062.79 +2003-06-05,9036.67,9106.70,8905.37,9041.30,1693100000,9041.30 +2003-06-04,8919.94,9076.94,8882.75,9038.98,1618700000,9038.98 +2003-06-03,8898.23,8973.02,8823.51,8922.95,1450200000,8922.95 +2003-06-02,8851.45,9040.46,8833.66,8897.81,1662500000,8897.81 +2003-05-30,8711.46,8897.04,8711.46,8850.26,1688800000,8850.26 +2003-05-29,8787.23,8895.99,8657.96,8711.18,1685800000,8711.18 +2003-05-28,8781.84,8885.34,8721.90,8793.12,1559000000,8793.12 +2003-05-27,8600.54,8812.30,8523.64,8781.35,1532000000,8781.35 +2003-05-23,8594.02,8668.47,8513.98,8601.38,1201000000,8601.38 +2003-05-22,8516.99,8650.33,8495.35,8594.02,1448500000,8594.02 +2003-05-21,8485.62,8577.64,8389.68,8516.43,1457800000,8516.43 +2003-05-20,8494.09,8593.61,8394.51,8491.36,1505300000,8491.36 +2003-05-19,8676.52,8676.52,8455.72,8493.39,1375700000,8493.39 +2003-05-16,8710.36,8766.36,8614.33,8678.97,1505500000,8678.97 +2003-05-15,8649.22,8766.58,8613.84,8713.14,1508700000,8713.14 +2003-05-14,8673.29,8744.94,8575.96,8647.82,1401800000,8647.82 +2003-05-13,8722.88,8757.40,8611.18,8679.25,1418100000,8679.25 +2003-05-12,8603.90,8764.12,8544.24,8726.73,1378800000,8726.73 +2003-05-09,8492.69,8637.58,8482.89,8604.60,1326100000,8604.60 +2003-05-08,8558.67,8591.01,8435.61,8491.22,1379600000,8491.22 +2003-05-07,8585.42,8650.82,8494.87,8560.63,1531900000,8560.63 +2003-05-06,8531.28,8658.18,8486.88,8588.36,1649600000,8588.36 +2003-05-05,8583.17,8643.11,8472.67,8531.57,1446300000,8531.57 +2003-05-02,8453.48,8612.86,8389.40,8582.68,1554300000,8582.68 +2003-05-01,8478.48,8519.09,8328.55,8454.25,1397500000,8454.25 +2003-04-30,8501.38,8557.62,8402.36,8480.09,1788510000,8480.09 +2003-04-29,8472.88,8578.55,8414.61,8502.99,1525600000,8502.99 +2003-04-28,8306.84,8515.80,8290.46,8471.61,1273000000,8471.61 +2003-04-25,8438.98,8453.06,8258.80,8306.35,1335800000,8306.35 +2003-04-24,8512.44,8527.99,8363.28,8440.04,1648100000,8440.04 +2003-04-23,8484.92,8587.72,8398.65,8515.66,1667200000,8515.66 +2003-04-22,8326.38,8509.43,8238.14,8484.99,1631200000,8484.99 +2003-04-21,8336.67,8423.09,8270.56,8328.90,1118700000,8328.90 +2003-04-17,8255.79,8388.28,8172.52,8337.65,1430600000,8337.65 +2003-04-16,8405.72,8459.15,8217.27,8257.61,1587600000,8257.61 +2003-04-15,8347.66,8443.11,8251.38,8402.36,1460200000,8402.36 +2003-04-14,8203.97,8375.19,8175.60,8351.10,1131000000,8351.10 +2003-04-11,8223.22,8360.76,8156.77,8203.41,1141600000,8203.41 +2003-04-10,8198.99,8274.56,8109.85,8221.33,1275300000,8221.33 +2003-04-09,8299.28,8404.25,8174.90,8197.94,1293700000,8197.94 +2003-04-08,8299.12,8382.43,8222.24,8298.92,1235400000,8298.92 +2003-04-07,8284.15,8550.40,8272.24,8300.41,1494000000,8300.41 +2003-04-04,8240.59,8348.29,8176.66,8277.15,1241200000,8277.15 +2003-04-03,8285.76,8378.76,8199.49,8240.38,1351500000,8240.38 +2003-04-02,8070.98,8342.27,8070.98,8285.06,1589800000,8285.06 +2003-04-01,7992.83,8133.03,7947.38,8069.86,1461600000,8069.86 +2003-03-31,8142.83,8142.83,7903.97,7992.13,1495500000,7992.13 +2003-03-28,8198.85,8224.83,8070.77,8145.77,1227000000,8145.77 +2003-03-27,8226.39,8272.03,8085.40,8201.45,1232900000,8201.45 +2003-03-26,8279.88,8323.01,8165.52,8229.88,1319700000,8229.88 +2003-03-25,8216.85,8355.93,8155.65,8280.23,1333400000,8280.23 +2003-03-24,8514.82,8514.82,8166.78,8214.68,1293000000,8214.68 +2003-03-21,8290.38,8552.08,8290.38,8521.97,1883710000,8521.97 +2003-03-20,8264.68,8335.20,8122.59,8286.60,1439100000,8286.60 +2003-03-19,8193.04,8304.04,8116.01,8265.45,1473400000,8265.45 +2003-03-18,8142.69,8253.48,8057.54,8194.23,1555100000,8194.23 +2003-03-17,7857.96,8163.56,7763.56,8141.92,1700420000,8141.92 +2003-03-14,7822.17,7961.60,7761.25,7859.71,1541900000,7859.71 +2003-03-13,7555.29,7847.03,7555.29,7821.75,1816300000,7821.75 +2003-03-12,7517.76,7582.96,7397.31,7552.07,1620000000,7552.07 +2003-03-11,7568.53,7673.98,7488.00,7524.06,1427700000,7524.06 +2003-03-10,7739.40,7739.40,7545.77,7568.18,1255000000,7568.18 +2003-03-07,7671.75,7780.57,7536.18,7740.03,1368500000,7740.03 +2003-03-06,7774.76,7795.07,7624.97,7673.99,1299200000,7673.99 +2003-03-05,7702.35,7801.79,7639.82,7775.60,1332700000,7775.60 +2003-03-04,7838.14,7859.08,7688.98,7704.87,1256600000,7704.87 +2003-03-03,7890.24,7997.66,7809.05,7837.86,1208900000,7837.86 +2003-02-28,7886.11,7987.80,7826.72,7891.08,1373300000,7891.08 +2003-02-27,7807.96,7950.46,7774.34,7884.99,1287800000,7884.99 +2003-02-26,7907.39,7944.93,7767.62,7806.98,1374400000,7806.98 +2003-02-25,7856.42,7931.14,7700.53,7909.50,1483700000,7909.50 +2003-02-24,8017.34,8017.34,7828.06,7858.24,1229200000,7858.24 +2003-02-21,7915.52,8055.79,7843.81,8018.11,1398200000,8018.11 +2003-02-20,8002.70,8051.37,7858.24,7914.96,1194100000,7914.96 +2003-02-19,8033.80,8079.11,7913.70,8000.60,1075600000,8000.60 +2003-02-18,7909.30,8114.82,7909.30,8041.15,1250800000,8041.15 +2003-02-14,7750.90,7936.56,7704.96,7908.80,1404600000,7908.80 +2003-02-13,7756.55,7817.88,7602.81,7749.87,1489300000,7749.87 +2003-02-12,7836.36,7892.96,7720.39,7758.17,1260500000,7758.17 +2003-02-11,7920.93,8010.89,7798.69,7843.11,1307000000,7843.11 +2003-02-10,7865.74,7963.03,7777.98,7920.11,1238200000,7920.11 +2003-02-07,7932.45,8019.46,7811.10,7864.23,1276800000,7864.23 +2003-02-06,7981.95,8031.66,7855.87,7929.30,1430900000,7929.30 +2003-02-05,8014.45,8162.96,7950.42,7985.18,1450800000,7985.18 +2003-02-04,8104.61,8104.61,7915.93,8013.29,1451600000,8013.29 +2003-02-03,8053.74,8189.35,8032.90,8109.82,1258500000,8109.82 +2003-01-31,7939.72,8121.37,7884.66,8053.81,1578530000,8053.81 +2003-01-30,8109.14,8169.81,7918.19,7945.13,1510300000,7945.13 +2003-01-29,8087.95,8173.31,7916.89,8110.71,1595400000,8110.71 +2003-01-28,7991.07,8153.36,7954.95,8088.84,1459100000,8088.84 +2003-01-27,8128.54,8167.41,7929.16,7989.56,1435900000,7989.56 +2003-01-24,8367.89,8367.89,8092.00,8131.01,1574800000,8131.01 +2003-01-23,8320.72,8437.69,8215.61,8369.47,1744550000,8369.47 +2003-01-22,8439.54,8493.50,8270.94,8318.73,1560800000,8318.73 +2003-01-21,8586.26,8650.43,8421.03,8442.90,1335200000,8442.90 +2003-01-17,8695.82,8695.82,8523.60,8586.74,1358200000,8586.74 +2003-01-16,8721.12,8837.47,8634.46,8697.87,1534600000,8697.87 +2003-01-15,8843.64,8865.65,8674.43,8723.18,1432100000,8723.18 +2003-01-14,8787.22,8865.41,8717.56,8842.62,1379400000,8842.62 +2003-01-13,8787.83,8896.09,8721.12,8785.98,1396300000,8785.98 +2003-01-10,8776.04,8846.25,8654.21,8784.89,1485400000,8784.89 +2003-01-09,8596.68,8814.09,8596.68,8776.18,1560300000,8776.18 +2003-01-08,8735.93,8749.44,8549.72,8595.31,1467600000,8595.31 +2003-01-07,8775.84,8843.37,8661.20,8740.59,1545200000,8740.59 +2003-01-06,8602.78,8826.71,8578.86,8773.57,1435900000,8773.57 +2003-01-03,8607.38,8669.91,8503.71,8601.69,1130800000,8601.69 +2003-01-02,8342.38,8633.02,8342.38,8607.52,1229200000,8607.52 +2002-12-31,8332.24,8400.46,8216.44,8341.63,1088500000,8341.63 +2002-12-30,8304.06,8405.67,8214.93,8332.85,1057800000,8332.85 +2002-12-27,8429.28,8470.05,8272.31,8303.78,758400000,8303.78 +2002-12-26,8448.86,8587.98,8392.23,8432.61,721100000,8432.61 +2002-12-24,8491.99,8522.98,8407.45,8448.11,458310000,8448.11 +2002-12-23,8511.39,8573.92,8418.90,8493.29,1112100000,8493.29 +2002-12-20,8367.41,8557.47,8367.41,8511.32,1782730000,8511.32 +2002-12-19,8441.94,8530.25,8302.41,8364.80,1385900000,8364.80 +2002-12-18,8531.31,8553.76,8367.89,8447.35,1446200000,8447.35 +2002-12-17,8626.99,8672.38,8495.21,8535.39,1251800000,8535.39 +2002-12-16,8436.59,8649.06,8421.58,8627.40,1271600000,8627.40 +2002-12-13,8536.07,8563.16,8374.68,8433.71,1330800000,8433.71 +2002-12-12,8590.99,8662.71,8466.21,8538.40,1255300000,8538.40 +2002-12-11,8571.52,8669.91,8452.84,8589.14,1285100000,8589.14 +2002-12-10,8473.61,8624.93,8419.86,8574.26,1286600000,8574.26 +2002-12-09,8643.99,8643.99,8438.24,8473.41,1320800000,8473.41 +2002-12-06,8620.88,8707.21,8469.16,8645.77,1241100000,8645.77 +2002-12-05,8740.66,8796.68,8572.00,8623.28,1250200000,8623.28 +2002-12-04,8734.22,8834.04,8600.93,8737.85,1588900000,8737.85 +2002-12-03,8861.13,8882.04,8649.89,8742.93,1488400000,8742.93 +2002-12-02,8902.95,9076.35,8757.60,8862.57,1612000000,8862.57 +2002-11-29,8933.67,8995.78,8847.42,8896.09,643460000,8896.09 +2002-11-27,8678.96,8975.08,8678.96,8931.68,1350300000,8931.68 +2002-11-26,8844.12,8845.01,8634.53,8676.42,1543600000,8676.42 +2002-11-25,8804.97,8918.03,8717.63,8849.40,1574000000,8849.40 +2002-11-22,8842.41,8944.16,8732.23,8804.84,1626800000,8804.84 +2002-11-21,8625.48,8910.83,8619.58,8845.15,2415100000,8845.15 +2002-11-20,8469.57,8675.12,8402.72,8623.01,1517300000,8623.01 +2002-11-19,8484.93,8566.45,8355.62,8474.78,1337400000,8474.78 +2002-11-18,8579.74,8671.41,8444.26,8486.57,1282600000,8486.57 +2002-11-15,8535.64,8622.30,8421.10,8579.09,1400100000,8579.09 +2002-11-14,8403.69,8596.50,8396.27,8542.13,1488100000,8542.13 +2002-11-13,8380.32,8523.47,8237.65,8398.49,1463400000,8398.49 +2002-11-12,8356.73,8557.25,8286.13,8386.00,1377100000,8386.00 +2002-11-11,8535.81,8541.09,8315.40,8358.95,1113000000,8358.95 +2002-11-08,8585.75,8688.96,8455.01,8537.13,1446500000,8537.13 +2002-11-07,8766.08,8766.08,8517.78,8586.24,1466900000,8586.24 +2002-11-06,8677.17,8841.61,8561.48,8771.01,1623700000,8771.01 +2002-11-05,8568.76,8730.92,8497.60,8678.27,1354100000,8678.27 +2002-11-04,8521.60,8787.30,8510.08,8571.60,1645900000,8571.60 +2002-11-01,8395.64,8569.24,8271.77,8517.64,1450400000,8517.64 +2002-10-31,8427.34,8538.17,8293.17,8397.03,1641300000,8397.03 +2002-10-30,8363.95,8502.32,8273.99,8427.41,1422300000,8427.41 +2002-10-29,8367.28,8456.19,8161.01,8368.94,1529700000,8368.94 +2002-10-28,8448.98,8601.01,8281.34,8368.04,1382600000,8368.04 +2002-10-25,8317.48,8474.92,8210.74,8443.99,1340400000,8443.99 +2002-10-24,8495.38,8607.04,8253.60,8317.34,1700570000,8317.34 +2002-10-23,8448.56,8546.57,8256.79,8494.27,1593900000,8494.27 +2002-10-22,8534.08,8543.65,8303.33,8450.16,1549200000,8450.16 +2002-10-21,8320.74,8580.13,8191.87,8538.24,1447000000,8538.24 +2002-10-18,8287.72,8383.16,8115.72,8322.40,1423100000,8322.40 +2002-10-17,8038.31,8395.99,8038.31,8275.04,1780390000,8275.04 +2002-10-16,8232.10,8232.10,7958.34,8036.03,1585000000,8036.03 +2002-10-15,7883.23,8304.58,7883.23,8255.68,1956000000,8255.68 +2002-10-14,7848.21,7948.91,7725.23,7877.40,1200300000,7877.40 +2002-10-11,7540.74,7919.57,7540.74,7850.29,1854130000,7850.29 +2002-10-10,7286.34,7588.25,7181.47,7533.95,2090230000,7533.95 +2002-10-09,7499.96,7500.03,7215.39,7286.27,1885030000,7286.27 +2002-10-08,7425.82,7680.57,7294.53,7501.49,1938430000,7501.49 +2002-10-07,7528.68,7685.42,7368.46,7422.84,1576500000,7422.84 +2002-10-04,7719.34,7817.06,7428.32,7528.40,1835930000,7528.40 +2002-10-03,7753.46,7943.64,7638.47,7717.19,1674500000,7717.19 +2002-10-02,7936.57,7996.77,7696.66,7755.61,1668900000,7755.61 +2002-10-01,7593.04,7964.24,7558.36,7938.79,1780900000,7938.79 +2002-09-30,7698.81,7729.53,7422.28,7591.93,1721870000,7591.93 +2002-09-27,7996.01,7997.12,7664.89,7701.45,1507300000,7701.45 +2002-09-26,7844.62,8086.86,7800.97,7997.12,1650000000,7997.12 +2002-09-25,7687.16,7939.90,7641.87,7841.82,1651500000,7841.82 +2002-09-24,7871.23,7893.36,7606.77,7683.13,1670240000,7683.13 +2002-09-23,7984.77,7984.77,7738.06,7872.15,1381100000,7872.15 +2002-09-20,7945.93,8081.04,7868.60,7986.02,1792800000,7986.02 +2002-09-19,8170.65,8170.65,7904.87,7942.39,1524000000,7942.39 +2002-09-18,8203.07,8283.49,8013.42,8172.45,1501000000,8172.45 +2002-09-17,8386.35,8508.61,8169.88,8207.55,1448600000,8207.55 +2002-09-16,8311.79,8435.04,8214.27,8380.18,1001400000,8380.18 +2002-09-13,8377.68,8414.79,8175.85,8312.69,1271000000,8312.69 +2002-09-12,8574.94,8574.94,8334.82,8379.41,1191600000,8379.41 +2002-09-11,8604.27,8767.82,8545.11,8581.17,846600000,8581.17 +2002-09-10,8520.14,8660.94,8447.73,8602.61,1186400000,8602.61 +2002-09-09,8425.88,8584.30,8288.28,8519.38,1130600000,8519.38 +2002-09-06,8296.46,8526.80,8296.46,8427.20,1184500000,8427.20 +2002-09-05,8420.20,8420.20,8173.56,8283.70,1401300000,8283.70 +2002-09-04,8308.53,8495.03,8216.98,8425.12,1372100000,8425.12 +2002-09-03,8659.27,8659.27,8282.87,8308.05,1323400000,8308.05 +2002-08-30,8669.26,8811.72,8572.85,8663.50,929900000,8663.50 +2002-08-29,8690.69,8769.34,8514.10,8670.99,1271100000,8670.99 +2002-08-28,8823.93,8832.18,8610.79,8694.09,1146600000,8694.09 +2002-08-27,8917.49,9040.04,8747.77,8824.41,1307700000,8824.41 +2002-08-26,8873.93,8981.23,8723.43,8919.01,1016900000,8919.01 +2002-08-23,9051.49,9051.49,8806.38,8872.96,1071500000,8872.96 +2002-08-22,8961.18,9129.10,8860.34,9053.64,1373000000,9053.64 +2002-08-21,8866.14,9033.52,8768.51,8957.23,1353100000,8957.23 +2002-08-20,8986.50,8989.69,8789.13,8872.07,1308500000,8872.07 +2002-08-19,8777.09,9037.38,8720.81,8990.79,1299800000,8990.79 +2002-08-16,8813.07,8899.42,8644.59,8778.06,1265300000,8778.06 +2002-08-15,8745.04,8914.37,8620.98,8818.14,1505100000,8818.14 +2002-08-14,8479.14,8778.89,8295.34,8743.31,1533800000,8743.31 +2002-08-13,8683.15,8801.87,8445.91,8482.39,1297700000,8482.39 +2002-08-12,8741.92,8753.14,8528.15,8688.89,1036500000,8688.89 +2002-08-09,8707.24,8824.92,8538.46,8745.45,1294900000,8745.45 +2002-08-08,8456.29,8755.70,8364.29,8712.02,1646700000,8712.02 +2002-08-07,8282.25,8520.95,8171.70,8456.15,1490400000,8456.15 +2002-08-06,8049.93,8472.28,8049.93,8274.09,1514100000,8274.09 +2002-08-05,8312.92,8371.00,7991.43,8043.63,1425500000,8043.63 +2002-08-02,8504.96,8566.36,8179.80,8313.13,1538100000,8313.13 +2002-08-01,8732.58,8758.40,8430.68,8506.62,1672200000,8506.62 +2002-07-31,8678.65,8793.36,8463.21,8736.59,2049360000,8736.59 +2002-07-30,8707.03,8806.86,8484.05,8680.03,1826090000,8680.03 +2002-07-29,8267.99,8749.12,8267.99,8711.88,1778650000,8711.88 +2002-07-26,8192.61,8350.10,8039.89,8264.39,1796100000,8264.39 +2002-07-25,8185.89,8390.39,7893.34,8186.31,2424700000,8186.31 +2002-07-24,7698.46,8243.07,7489.53,8191.29,2775560000,8191.29 +2002-07-23,7785.55,8007.91,7590.75,7702.34,2441020000,7702.34 +2002-07-22,8015.04,8173.08,7668.35,7784.58,2248060000,7784.58 +2002-07-19,8356.74,8356.74,7940.83,8019.26,2654100000,8019.26 +2002-07-18,8540.47,8683.84,8350.72,8409.49,1736300000,8409.49 +2002-07-17,8476.21,8765.39,8401.12,8542.48,2566500000,8542.48 +2002-07-16,8635.31,8697.69,8346.29,8473.11,1843700000,8473.11 +2002-07-15,8681.28,8720.18,8220.78,8639.19,2574800000,8639.19 +2002-07-12,8805.33,8903.00,8555.15,8684.53,1607400000,8684.53 +2002-07-11,8812.12,8937.87,8557.84,8801.53,2080480000,8801.53 +2002-07-10,9098.16,9188.71,8772.94,8813.50,1816900000,8813.50 +2002-07-09,9273.38,9357.35,9065.88,9096.09,1348900000,9096.09 +2002-07-08,9375.70,9433.08,9184.90,9274.90,1184400000,9274.90 +2002-07-05,9061.54,9399.65,9054.97,9379.50,699400000,9379.50 +2002-07-03,9006.37,9140.32,8832.89,9054.97,1527800000,9054.97 +2002-07-02,9104.95,9185.88,8918.11,9007.75,1823000000,9007.75 +2002-07-01,9239.25,9381.37,9059.88,9109.79,1425500000,9109.79 +2002-06-28,9270.33,9435.44,9131.49,9243.26,2117000000,9243.26 +2002-06-27,9122.12,9342.33,8992.32,9269.92,1908600000,9269.92 +2002-06-26,9108.22,9207.07,8831.92,9120.11,336570000,9120.11 +2002-06-25,9285.56,9457.38,9089.17,9126.82,1513700000,9126.82 +2002-06-24,9252.47,9417.23,9046.04,9281.82,1552600000,9281.82 +2002-06-21,9430.66,9456.76,9186.71,9253.79,1497200000,9253.79 +2002-06-20,9561.64,9628.11,9390.10,9431.77,1389700000,9431.77 +2002-06-19,9702.00,9760.20,9514.29,9561.57,1336100000,9561.57 +2002-06-18,9684.52,9775.83,9588.29,9706.12,1193100000,9706.12 +2002-06-17,9476.50,9736.58,9462.30,9687.42,1236600000,9687.42 +2002-06-14,9498.92,9538.93,9229.63,9474.21,1549000000,9474.21 +2002-06-13,9612.87,9671.64,9454.41,9502.80,1405500000,9502.80 +2002-06-12,9515.12,9682.37,9380.82,9617.71,1795720000,9617.71 +2002-06-11,9647.62,9794.17,9487.91,9517.26,1212400000,9517.26 +2002-06-10,9587.38,9744.33,9509.91,9645.40,1226200000,9645.40 +2002-06-07,9592.38,9668.18,9416.33,9589.67,1341300000,9589.67 +2002-06-06,9795.70,9820.41,9552.85,9624.64,1601500000,9624.64 +2002-06-05,9688.53,9860.91,9636.82,9796.80,1300100000,9796.80 +2002-06-04,9710.34,9798.74,9541.36,9687.84,1466600000,9687.84 +2002-06-03,9923.94,10016.04,9685.49,9709.79,1324300000,9709.79 +2002-05-31,9915.15,10074.16,9865.89,9925.25,1277300000,9925.25 +2002-05-30,9915.01,9995.76,9769.64,9911.69,1286600000,9911.69 +2002-05-29,9976.94,10056.31,9860.42,9923.04,1081800000,9923.04 +2002-05-28,10106.54,10144.53,9917.64,9981.58,996500000,9981.58 +2002-05-24,10211.92,10255.93,10054.58,10104.26,885400000,10104.26 +2002-05-23,10158.30,10268.87,10044.20,10216.08,1192900000,10216.08 +2002-05-22,10098.58,10200.78,10004.41,10157.88,1136300000,10157.88 +2002-05-21,10229.08,10322.15,10060.46,10105.71,1169200000,10105.71 +2002-05-20,10348.93,10357.44,10164.39,10229.50,989800000,10229.50 +2002-05-17,10291.05,10400.62,10209.49,10353.08,1274400000,10353.08 +2002-05-16,10242.11,10374.05,10168.64,10289.21,1256600000,10289.21 +2002-05-15,10288.56,10382.97,10152.97,10243.68,1420200000,10243.68 +2002-05-14,10119.34,10346.59,10119.34,10298.14,1414500000,10298.14 +2002-05-13,9938.82,10148.71,9892.73,10109.66,1088600000,10109.66 +2002-05-10,10040.25,10115.23,9891.04,9939.92,1171900000,9939.92 +2002-05-09,10137.96,10185.08,9966.63,10037.42,1153000000,10037.42 +2002-05-08,9847.96,10203.76,9847.96,10141.83,1502000000,10141.83 +2002-05-07,9810.53,9985.32,9749.73,9836.55,1354700000,9836.55 +2002-05-06,10005.80,10081.98,9780.29,9808.04,1122600000,9808.04 +2002-05-03,10091.73,10130.97,9891.49,10006.63,1284500000,10006.63 +2002-05-02,10057.62,10182.94,9970.92,10091.87,1364000000,10091.87 +2002-05-01,9944.90,10121.21,9778.42,10059.63,1451400000,10059.63 +2002-04-30,9818.90,10063.64,9775.10,9946.22,1628600000,9946.22 +2002-04-29,9910.52,10012.16,9767.15,9819.87,1314700000,9819.87 +2002-04-26,10037.42,10127.85,9875.44,9910.72,1374200000,9910.72 +2002-04-25,10028.70,10103.64,9864.08,10035.06,1517400000,10035.06 +2002-04-24,10090.07,10209.64,9984.00,10030.43,1373200000,10030.43 +2002-04-23,10137.20,10243.06,10003.84,10089.24,1388500000,10089.24 +2002-04-22,10256.00,10299.39,10056.45,10136.43,1181800000,10136.43 +2002-04-19,10212.69,10338.83,10151.52,10257.11,1185000000,10257.11 +2002-04-18,10219.47,10334.67,10010.22,10205.28,1359300000,10205.28 +2002-04-17,10299.66,10379.51,10137.47,10220.78,1376900000,10220.78 +2002-04-16,10100.38,10365.12,10100.38,10301.32,1341300000,10301.32 +2002-04-15,10189.57,10261.05,10037.90,10093.67,1120400000,10093.67 +2002-04-12,10178.57,10312.26,10083.92,10190.82,1282100000,10190.82 +2002-04-11,10378.89,10425.87,10116.37,10176.08,1505600000,10176.08 +2002-04-10,10210.40,10437.43,10175.18,10381.73,1447900000,10381.73 +2002-04-09,10249.84,10362.98,10156.57,10208.67,1235400000,10208.67 +2002-04-08,10258.91,10300.78,10049.94,10249.08,1095300000,10249.08 +2002-04-05,10235.80,10403.66,10169.79,10271.64,1110200000,10271.64 +2002-04-04,10199.54,10301.53,10118.10,10235.17,1283800000,10235.17 +2002-04-03,10311.81,10377.09,10116.02,10198.29,1219700000,10198.29 +2002-04-02,10352.46,10394.94,10204.66,10313.71,1176700000,10313.71 +2002-04-01,10402.07,10434.52,10226.59,10362.70,1050900000,10362.70 +2002-03-28,10429.68,10537.48,10341.59,10403.94,1147600000,10403.94 +2002-03-27,10351.28,10490.15,10300.29,10426.91,1180100000,10426.91 +2002-03-26,10280.51,10475.00,10233.65,10353.36,1223600000,10353.36 +2002-03-25,10428.43,10497.76,10255.59,10281.67,1057900000,10281.67 +2002-03-22,10477.70,10537.62,10324.23,10427.67,1243300000,10427.67 +2002-03-21,10501.99,10577.82,10326.99,10479.84,1339200000,10479.84 +2002-03-20,10626.85,10634.84,10455.56,10501.57,1304900000,10501.57 +2002-03-19,10578.38,10722.78,10530.63,10635.25,1255000000,10635.25 +2002-03-18,10608.54,10707.01,10488.84,10577.75,1169500000,10577.75 +2002-03-15,10516.45,10663.69,10452.10,10607.23,1493900000,10607.23 +2002-03-14,10501.29,10615.74,10421.17,10517.14,1208800000,10517.14 +2002-03-13,10620.17,10648.68,10427.67,10501.85,1354000000,10501.85 +2002-03-12,10604.32,10682.72,10462.34,10632.35,1304400000,10632.35 +2002-03-11,10570.07,10679.68,10470.85,10611.24,1210200000,10611.24 +2002-03-08,10531.67,10728.87,10480.33,10572.49,1412000000,10572.49 +2002-03-07,10578.10,10663.82,10405.95,10525.37,1517400000,10525.37 +2002-03-06,10431.96,10637.19,10393.84,10574.29,1541300000,10574.29 +2002-03-05,10591.38,10639.96,10349.90,10433.41,1549300000,10433.41 +2002-03-04,10368.10,10656.50,10313.01,10586.82,1594300000,10586.82 +2002-03-01,10111.04,10397.09,10086.51,10368.86,1456500000,10368.86 +2002-02-28,10130.28,10283.89,10055.34,10106.13,1392200000,10106.13 +2002-02-27,10117.65,10315.72,10025.86,10127.58,1393800000,10127.58 +2002-02-26,10145.86,10241.89,9986.84,10115.26,1309200000,10115.26 +2002-02-25,9969.75,10204.04,9934.94,10145.71,1367400000,10145.71 +2002-02-22,9834.89,10032.45,9726.67,9968.15,1411000000,9968.15 +2002-02-21,9933.56,10072.98,9788.11,9834.68,1381600000,9834.68 +2002-02-20,9742.37,9990.78,9674.91,9941.17,1438900000,9941.17 +2002-02-19,9899.24,9923.39,9704.03,9745.14,1189900000,9745.14 +2002-02-15,10000.83,10065.37,9843.54,9903.04,1359200000,9903.04 +2002-02-14,9989.67,10092.29,9905.95,10001.99,1272500000,10001.99 +2002-02-13,9856.99,10056.24,9839.18,9989.67,1215900000,9989.67 +2002-02-12,9880.35,9943.24,9766.18,9863.74,1094200000,9863.74 +2002-02-11,9739.81,9933.07,9668.34,9884.78,1159400000,9884.78 +2002-02-08,9627.65,9795.38,9503.52,9744.24,1371900000,9744.24 +2002-02-07,9650.97,9799.67,9562.12,9625.44,1441600000,9625.44 +2002-02-06,9682.04,9801.33,9558.18,9653.39,1665800000,9653.39 +2002-02-05,9684.74,9842.77,9553.96,9685.43,1778300000,9685.43 +2002-02-04,9905.46,9940.96,9648.55,9687.09,1437600000,9687.09 +2002-02-01,9923.04,10022.82,9795.45,9907.26,1367200000,9907.26 +2002-01-31,9763.20,9963.79,9701.76,9920.00,1557000000,9920.00 +2002-01-30,9619.14,9821.81,9443.32,9762.86,2019600000,9762.86 +2002-01-29,9865.54,9952.59,9576.65,9618.24,1812000000,9618.24 +2002-01-28,9843.05,9959.44,9746.66,9865.75,1186800000,9865.75 +2002-01-25,9793.23,9949.54,9697.47,9840.08,1345100000,9840.08 +2002-01-24,9734.21,9926.71,9670.99,9796.07,1552800000,9796.07 +2002-01-23,9710.96,9853.64,9588.49,9730.96,1479200000,9730.96 +2002-01-22,9772.34,9905.26,9652.01,9713.80,1311600000,9713.80 +2002-01-18,9830.94,9873.98,9673.11,9771.85,1333300000,9771.85 +2002-01-17,9712.21,9910.11,9684.39,9850.04,1380100000,9850.04 +2002-01-16,9916.54,9923.32,9661.00,9712.27,1482500000,9712.27 +2002-01-15,9892.73,10038.94,9805.33,9924.15,1386900000,9924.15 +2002-01-14,9985.38,10038.87,9831.98,9891.42,1286400000,9891.42 +2002-01-11,10069.52,10163.77,9938.12,9987.53,1211900000,9987.53 +2002-01-10,10092.50,10174.91,9956.67,10067.86,1299000000,10067.86 +2002-01-09,10153.18,10311.98,10049.25,10094.09,1452000000,10094.09 +2002-01-08,10195.76,10270.53,10063.43,10150.55,1258800000,10150.55 +2002-01-07,10261.33,10345.40,10137.61,10197.05,1308300000,10197.05 +2002-01-04,10176.84,10341.87,10132.14,10259.74,1513000000,10259.74 +2002-01-03,10073.88,10227.36,10002.54,10172.14,1398900000,10172.14 +2002-01-02,10021.71,10125.85,9889.69,10073.40,1171000000,10073.40 +2001-12-31,10136.36,10178.71,10002.96,10021.57,943600000,10021.57 +2001-12-28,10133.94,10220.78,10067.17,10136.99,917400000,10136.99 +2001-12-27,10088.71,10187.71,10036.10,10131.31,876300000,10131.31 +2001-12-26,10035.55,10203.28,10014.10,10088.14,791100000,10088.14 +2001-12-24,10036.59,10114.91,9987.39,10035.34,439670000,10035.34 +2001-12-21,9986.84,10148.13,9935.70,10035.34,1694000000,10035.34 +2001-12-20,10064.13,10141.21,9912.76,9985.18,1490500000,9985.18 +2001-12-19,9994.59,10142.95,9876.96,10070.49,1484900000,10070.49 +2001-12-18,9893.22,10066.27,9876.19,9998.39,1354000000,9998.39 +2001-12-17,9809.42,9996.25,9747.77,9891.97,1260400000,9891.97 +2001-12-14,9764.72,9888.44,9661.14,9811.15,1306800000,9811.15 +2001-12-13,9889.13,9927.95,9691.30,9766.45,1511500000,9766.45 +2001-12-12,9887.27,9985.59,9745.42,9894.81,1449700000,9894.81 +2001-12-11,9925.60,10063.98,9794.48,9888.37,1367200000,9888.37 +2001-12-10,10047.04,10123.78,9868.03,9921.45,1218700000,9921.45 +2001-12-07,10099.14,10160.24,9938.54,10049.46,1248200000,10049.46 +2001-12-06,10113.53,10220.23,9997.98,10099.14,1487900000,10099.14 +2001-12-05,9891.35,10195.04,9875.92,10114.29,1765300000,10114.29 +2001-12-04,9765.55,9937.29,9700.24,9893.84,1318500000,9893.84 +2001-12-03,9848.93,9861.94,9651.87,9763.96,1202900000,9763.96 +2001-11-30,9828.80,9945.80,9752.26,9851.56,1343600000,9851.56 +2001-11-29,9710.34,9873.29,9629.72,9829.42,1375700000,9829.42 +2001-11-28,9867.06,9889.13,9662.80,9711.86,1423700000,9711.86 +2001-11-27,9980.33,10021.48,9776.07,9872.60,1288000000,9872.60 +2001-11-26,9961.58,10054.58,9862.22,9982.75,1129800000,9982.75 +2001-11-23,9833.09,9983.24,9804.37,9959.71,410300000,9959.71 +2001-11-21,9894.19,9932.31,9746.45,9834.68,1029300000,9834.68 +2001-11-20,9968.64,10023.37,9825.06,9901.38,1330200000,9901.38 +2001-11-19,9870.45,10040.46,9826.96,9976.46,1316800000,9976.46 +2001-11-16,9871.51,9967.94,9754.07,9866.99,1337400000,9866.99 +2001-11-15,9824.65,9967.46,9745.43,9872.39,1454500000,9872.39 +2001-11-14,9751.13,9943.18,9683.97,9823.61,1443400000,9823.61 +2001-11-13,9551.43,9811.29,9551.43,9750.95,1370100000,9750.95 +2001-11-12,9606.13,9642.25,9347.76,9554.37,991600000,9554.37 +2001-11-09,9586.96,9692.35,9478.75,9608.00,1093800000,9608.00 +2001-11-08,9558.39,9765.00,9506.91,9587.52,1517500000,9587.52 +2001-11-07,9584.68,9695.67,9457.99,9554.37,1411300000,9554.37 +2001-11-06,9437.09,9627.44,9315.79,9591.12,1356000000,9591.12 +2001-11-05,9326.59,9534.58,9326.59,9441.03,1267700000,9441.03 +2001-11-02,9264.52,9406.93,9152.91,9323.54,1121900000,9323.54 +2001-11-01,9087.45,9320.77,8987.61,9263.90,1317400000,9263.90 +2001-10-31,9123.64,9281.68,9018.26,9075.14,1352500000,9075.14 +2001-10-30,9264.52,9265.34,9011.96,9121.98,1297400000,9121.98 +2001-10-29,9543.37,9543.37,9232.83,9269.50,1106100000,9269.50 +2001-10-26,9462.28,9626.54,9369.35,9545.17,1244500000,9545.17 +2001-10-25,9342.29,9491.48,9143.09,9462.90,1364400000,9462.90 +2001-10-24,9341.40,9456.40,9218.29,9345.62,1336200000,9345.62 +2001-10-23,9379.17,9499.78,9249.02,9340.08,1317300000,9340.08 +2001-10-22,9203.91,9438.75,9101.08,9377.03,1105700000,9377.03 +2001-10-19,9162.81,9278.36,9027.74,9204.11,1294900000,9204.11 +2001-10-18,9230.75,9310.33,9061.02,9163.22,1262900000,9163.22 +2001-10-17,9389.76,9539.22,9199.89,9232.97,1452200000,9232.97 +2001-10-16,9346.31,9479.37,9239.68,9384.23,1210500000,9384.23 +2001-10-15,9340.84,9417.51,9181.07,9347.62,1024700000,9347.62 +2001-10-12,9409.07,9426.30,9146.34,9344.16,1331400000,9344.16 +2001-10-11,9242.63,9522.61,9204.04,9410.45,1704580000,9410.45 +2001-10-10,9052.30,9305.97,8975.15,9240.86,1312400000,9240.86 +2001-10-09,9066.56,9168.42,8927.34,9052.44,1227800000,9052.44 +2001-10-08,9115.75,9187.85,8937.86,9067.94,979000000,9067.94 +2001-10-05,9058.83,9208.41,8894.47,9119.77,1301700000,9119.77 +2001-10-04,9127.24,9259.61,8982.28,9060.88,1609100000,9060.88 +2001-10-03,8946.02,9193.32,8800.99,9123.78,1650600000,9123.78 +2001-10-02,8836.69,9001.03,8737.61,8950.59,1289800000,8950.59 +2001-10-01,8845.97,8931.70,8659.90,8836.83,1175600000,8836.83 +2001-09-28,8679.07,8945.68,8633.75,8847.56,1727400000,8847.56 +2001-09-27,8567.46,8757.47,8398.14,8681.42,1467000000,8681.42 +2001-09-26,8660.06,8766.81,8457.37,8567.39,1519100000,8567.39 +2001-09-25,8605.59,8778.23,8435.56,8659.97,1613800000,8659.97 +2001-09-24,8242.32,8733.39,8242.32,8603.86,1746600000,8603.86 +2001-09-21,8356.56,8484.22,7926.93,8235.81,2317300000,8235.81 +2001-09-20,8375.72,8711.38,8304.45,8376.21,2004800000,8376.21 +2001-09-19,8903.54,8990.37,8453.01,8759.13,2120550000,8759.13 +2001-09-18,8922.70,9126.89,8743.91,8903.40,1650410000,8903.40 +2001-09-17,9294.55,9294.55,8755.46,8920.70,2330830000,8920.70 +2001-09-10,9603.36,9740.44,9431.07,9605.51,1276600000,9605.51 +2001-09-07,9841.25,9842.08,9507.04,9605.85,1424300000,9605.85 +2001-09-06,10028.35,10053.73,9762.03,9840.84,1359700000,9840.84 +2001-09-05,9998.12,10140.79,9820.98,10033.27,1384500000,10033.27 +2001-09-04,9946.98,10238.50,9858.34,9997.49,1178300000,9997.49 +2001-08-31,9918.96,10072.22,9846.72,9949.75,920100000,9949.75 +2001-08-30,10077.07,10149.10,9829.35,9919.58,1157000000,9919.58 +2001-08-29,10224.45,10292.60,10030.43,10090.90,963700000,10090.90 +2001-08-28,10382.56,10405.88,10175.60,10222.03,987100000,10222.03 +2001-08-27,10422.76,10498.03,10334.88,10382.35,842600000,10382.35 +2001-08-24,10232.48,10487.52,10190.34,10423.17,1043600000,10423.17 +2001-08-23,10276.41,10357.09,10142.66,10229.15,986200000,10229.15 +2001-08-22,10170.30,10340.76,10099.07,10276.90,1110800000,10276.90 +2001-08-21,10320.07,10436.39,10132.92,10174.14,1041600000,10174.14 +2001-08-20,10239.33,10388.23,10146.05,10320.07,897100000,10320.07 +2001-08-17,10385.46,10418.68,10143.49,10240.78,974300000,10240.78 +2001-08-16,10342.10,10460.82,10198.15,10392.52,1055400000,10392.52 +2001-08-15,10407.05,10530.36,10289.01,10345.95,1065600000,10345.95 +2001-08-14,10416.95,10513.68,10333.29,10412.17,964600000,10412.17 +2001-08-13,10411.90,10504.82,10314.95,10415.91,837600000,10415.91 +2001-08-10,10296.89,10473.34,10164.67,10416.25,960900000,10416.25 +2001-08-09,10291.15,10361.52,10160.51,10298.56,1104200000,10298.56 +2001-08-08,10456.18,10509.80,10245.68,10293.50,1124600000,10293.50 +2001-08-07,10399.03,10520.11,10324.50,10458.74,1012000000,10458.74 +2001-08-06,10504.13,10549.59,10337.23,10401.31,811700000,10401.31 +2001-08-03,10550.01,10592.98,10381.10,10512.78,939900000,10512.78 +2001-08-02,10513.47,10663.07,10454.53,10551.18,1218300000,10551.18 +2001-08-01,10527.38,10659.33,10423.31,10510.01,1340300000,10510.01 +2001-07-31,10403.18,10639.40,10364.84,10522.81,1129200000,10522.81 +2001-07-30,10418.68,10513.26,10301.05,10401.72,909100000,10401.72 +2001-07-27,10451.89,10516.38,10316.27,10416.67,1015300000,10416.67 +2001-07-26,10403.46,10498.73,10237.46,10455.63,1213900000,10455.63 +2001-07-25,10241.75,10466.28,10159.34,10405.67,1280700000,10405.67 +2001-07-24,10423.80,10469.40,10170.82,10241.12,1198700000,10241.12 +2001-07-23,10576.92,10644.73,10374.81,10424.42,986900000,10424.42 +2001-07-20,10606.19,10668.33,10456.25,10576.65,1170900000,10576.65 +2001-07-19,10574.33,10758.14,10480.54,10610.00,1343500000,10610.00 +2001-07-18,10594.54,10676.83,10374.55,10569.83,1316300000,10569.83 +2001-07-17,10468.62,10683.76,10363.51,10606.39,1238100000,10606.39 +2001-07-16,10537.98,10649.02,10374.55,10472.12,1039800000,10472.12 +2001-07-13,10478.39,10615.42,10374.01,10539.06,1121700000,10539.06 +2001-07-12,10269.31,10542.02,10249.58,10478.99,1394000000,10478.99 +2001-07-11,10174.70,10355.83,10049.38,10241.02,1384100000,10241.02 +2001-07-10,10300.82,10406.87,10104.06,10175.64,1263800000,10175.64 +2001-07-09,10253.62,10389.91,10166.55,10299.40,1045700000,10299.40 +2001-07-06,10476.73,10483.82,10176.26,10252.68,1056700000,10252.68 +2001-07-05,10566.23,10617.47,10403.57,10479.86,934900000,10479.86 +2001-07-03,10588.89,10648.00,10479.99,10571.11,622110000,10571.11 +2001-07-02,10504.95,10707.24,10397.20,10593.72,1128300000,10593.72 +2001-06-29,10565.27,10729.18,10374.32,10502.40,1832360000,10502.40 +2001-06-28,10438.73,10736.43,10429.74,10566.21,1327300000,10566.21 +2001-06-27,10470.35,10608.48,10351.10,10434.84,1162100000,10434.84 +2001-06-26,10497.30,10600.90,10313.40,10472.48,1198900000,10472.48 +2001-06-25,10607.88,10711.19,10417.93,10504.22,1050100000,10504.22 +2001-06-22,10716.50,10753.27,10513.61,10604.59,1189200000,10604.59 +2001-06-21,10646.39,10848.47,10512.67,10715.43,1546820000,10715.43 +2001-06-20,10593.79,10770.88,10480.20,10647.33,1350100000,10647.33 +2001-06-19,10654.30,10793.46,10514.74,10596.67,1184900000,10596.67 +2001-06-18,10622.50,10781.45,10531.78,10645.38,1111600000,10645.38 +2001-06-15,10690.13,10792.25,10495.69,10623.64,1635550000,10623.64 +2001-06-14,10868.27,10874.91,10604.45,10690.13,1242900000,10690.13 +2001-06-13,10942.00,11065.92,10817.21,10871.62,1063600000,10871.62 +2001-06-12,10914.67,11009.93,10744.99,10948.38,1136500000,10948.38 +2001-06-11,10974.79,11038.56,10819.29,10922.09,870100000,10922.09 +2001-06-08,11095.62,11096.46,10882.92,10977.00,726200000,10977.00 +2001-06-07,11069.58,11169.34,10940.11,11090.74,1089600000,11090.74 +2001-06-06,11177.73,11236.68,10998.48,11070.24,1061900000,11070.24 +2001-06-05,11061.39,11234.98,10973.10,11175.84,1116800000,11175.84 +2001-06-04,10991.77,11125.99,10898.80,11061.52,836500000,11061.52 +2001-06-01,10913.57,11063.61,10793.46,10990.41,1015000000,10990.41 +2001-05-31,10873.23,11023.25,10798.53,10911.94,1226600000,10911.94 +2001-05-30,11032.96,11089.89,10819.74,10872.64,1158600000,10872.64 +2001-05-29,11004.66,11162.96,10913.44,11039.14,1026000000,11039.14 +2001-05-25,11122.03,11166.92,10949.01,11005.37,828100000,11005.37 +2001-05-24,11107.07,11248.19,10977.20,11122.42,1100700000,11122.42 +2001-05-23,11257.76,11308.44,11033.16,11105.51,1134800000,11105.51 +2001-05-22,11339.80,11411.63,11162.83,11257.24,1260400000,11257.24 +2001-05-21,11299.14,11436.42,11149.82,11337.92,1174900000,11337.92 +2001-05-18,11245.78,11374.87,11123.01,11301.74,1130800000,11301.74 +2001-05-17,11218.65,11413.46,11104.34,11248.58,1355600000,11248.58 +2001-05-16,10864.74,11258.21,10779.66,11215.92,1405300000,11215.92 +2001-05-15,10877.46,10979.35,10752.73,10872.97,1071800000,10872.97 +2001-05-14,10819.55,10930.09,10730.74,10877.33,858200000,10877.33 +2001-05-11,10908.30,10969.39,10716.16,10821.31,906200000,10821.31 +2001-05-10,10868.87,11049.39,10826.90,10910.44,1056700000,10910.44 +2001-05-09,10875.96,10964.84,10739.78,10866.98,1132400000,10866.98 +2001-05-08,10936.66,11001.66,10755.07,10883.51,1006300000,10883.51 +2001-05-07,10952.35,11059.51,10822.74,10935.17,949000000,10935.17 +2001-05-04,10793.20,10989.95,10638.48,10951.24,1082100000,10951.24 +2001-05-03,10872.32,10911.06,10657.99,10796.65,1137900000,10796.65 +2001-05-02,10902.77,11024.31,10726.77,10876.68,1342200000,10876.68 +2001-05-01,10734.05,10966.07,10669.32,10898.34,1181300000,10898.34 +2001-04-30,10814.41,10973.15,10666.13,10734.97,1226000000,10734.97 +2001-04-27,10694.95,10894.60,10632.36,10810.05,1091300000,10810.05 +2001-04-26,10633.01,10820.72,10533.98,10692.35,1345200000,10692.35 +2001-04-25,10453.43,10675.95,10373.14,10625.20,1203600000,10625.20 +2001-04-24,10529.75,10694.61,10401.45,10454.34,1216500000,10454.34 +2001-04-23,10571.00,10669.71,10393.05,10532.23,1012600000,10532.23 +2001-04-20,10690.33,10755.46,10445.43,10579.85,1338700000,10579.85 +2001-04-19,10616.09,10768.28,10468.79,10693.71,1486800000,10693.71 +2001-04-18,10226.88,10806.41,10215.69,10615.83,1918900000,10615.83 +2001-04-17,10151.73,10286.61,9980.22,10216.73,1109600000,10216.73 +2001-04-16,10118.16,10282.38,9991.14,10158.56,913900000,10158.56 +2001-04-12,10013.08,10178.22,9862.71,10126.94,1102000000,10126.94 +2001-04-11,10109.05,10246.59,9898.77,10013.47,1290300000,10013.47 +2001-04-10,9850.35,10226.85,9850.35,10102.74,1349600000,10102.74 +2001-04-09,9793.58,9999.35,9699.92,9845.15,1062800000,9845.15 +2001-04-06,9913.94,9951.73,9600.91,9791.09,1266800000,9791.09 +2001-04-05,9527.21,9969.92,9527.21,9918.05,1368000000,9918.05 +2001-04-04,9480.95,9693.05,9303.48,9515.42,1425590000,9515.42 +2001-04-03,9774.78,9779.74,9385.43,9485.71,1386100000,9485.71 +2001-04-02,9877.16,10043.02,9638.35,9777.93,1204200000,9777.93 +2001-03-30,9799.47,9998.49,9685.07,9878.78,1280800000,9878.78 +2001-03-29,9784.94,9950.22,9583.67,9799.06,1234500000,9799.06 +2001-03-28,9939.68,9939.68,9607.06,9785.35,1333400000,9785.35 +2001-03-27,9687.93,10012.98,9584.29,9947.54,1314200000,9947.54 +2001-03-26,9509.25,9820.50,9489.75,9687.53,1114000000,9687.53 +2001-03-23,9395.58,9631.80,9249.63,9504.78,1364900000,9504.78 +2001-03-22,9490.66,9565.40,9047.56,9389.48,1723950000,9389.48 +2001-03-21,9717.46,9807.08,9391.42,9487.00,1346300000,9487.00 +2001-03-20,9961.14,10130.45,9675.51,9720.76,1235900000,9720.76 +2001-03-19,9820.05,10059.08,9720.94,9959.11,1126200000,9959.11 +2001-03-16,10023.55,10119.44,9720.17,9823.41,1543560000,9823.41 +2001-03-15,9982.92,10190.80,9887.68,10031.28,1259500000,10031.28 +2001-03-14,10279.42,10279.42,9817.74,9973.46,1397400000,9973.46 +2001-03-13,10206.89,10397.83,10021.60,10290.80,1360900000,10290.80 +2001-03-12,10638.52,10638.63,10138.90,10208.25,1229000000,10208.25 +2001-03-09,10850.11,10874.15,10520.42,10644.62,1085900000,10644.62 +2001-03-08,10727.16,10940.45,10625.95,10858.25,1114100000,10858.25 +2001-03-07,10591.86,10822.23,10524.76,10729.60,1132200000,10729.60 +2001-03-06,10570.17,10759.40,10508.43,10591.22,1091800000,10591.22 +2001-03-05,10468.93,10659.52,10393.59,10562.30,929200000,10562.30 +2001-03-02,10438.04,10645.57,10239.81,10466.31,1294000000,10466.31 +2001-03-01,10493.25,10605.23,10236.92,10450.14,1294900000,10450.14 +2001-02-28,10639.32,10750.23,10374.62,10495.28,1225300000,10495.28 +2001-02-27,10638.44,10787.29,10463.92,10636.88,1114100000,10636.88 +2001-02-26,10447.59,10701.92,10347.59,10642.53,1130800000,10642.53 +2001-02-23,10529.25,10595.01,10225.14,10441.90,1231300000,10441.90 +2001-02-22,10527.80,10694.50,10278.93,10526.81,1365900000,10526.81 +2001-02-21,10721.29,10828.48,10468.32,10526.58,1208500000,10526.58 +2001-02-20,10800.23,10988.29,10612.25,10730.88,1112200000,10730.88 +2001-02-16,10884.11,10946.11,10652.33,10799.82,1257200000,10799.82 +2001-02-15,10800.65,11023.44,10694.43,10891.02,1153700000,10891.02 +2001-02-14,10899.42,10989.61,10683.39,10795.41,1150300000,10795.41 +2001-02-13,10950.18,11114.44,10774.98,10903.32,1075200000,10903.32 +2001-02-12,10779.42,11024.92,10727.02,10946.77,1039100000,10946.77 +2001-02-09,10878.51,10979.12,10682.77,10781.45,1075500000,10781.45 +2001-02-08,10940.62,11080.42,10776.04,10880.55,1107200000,10880.55 +2001-02-07,10948.95,11140.09,10794.29,10946.72,1158300000,10946.72 +2001-02-06,10965.03,11117.80,10820.28,10957.42,1059600000,10957.42 +2001-02-05,10860.44,11061.42,10759.98,10965.85,1013000000,10965.85 +2001-02-02,10982.71,11093.01,10786.69,10864.10,1048400000,10864.10 +2001-02-01,10884.82,11063.95,10759.85,10983.63,1118800000,10983.63 +2001-01-31,10882.25,11072.28,10705.23,10887.36,1295300000,10887.36 +2001-01-30,10702.19,10950.38,10609.77,10881.20,1149800000,10881.20 +2001-01-29,10657.13,10832.56,10515.99,10702.19,1053100000,10702.19 +2001-01-26,10727.08,10874.28,10506.26,10659.98,1098000000,10659.98 +2001-01-25,10644.53,10882.42,10520.90,10729.52,1258000000,10729.52 +2001-01-24,10651.85,10795.80,10483.49,10646.97,1309000000,10646.97 +2001-01-23,10575.80,10773.94,10459.91,10649.81,1232600000,10649.81 +2001-01-22,10581.90,10749.44,10371.66,10578.24,1164000000,10578.24 +2001-01-19,10686.00,10792.14,10448.93,10587.59,1407800000,10587.59 +2001-01-18,10584.57,10834.43,10466.01,10678.28,1445000000,10678.28 +2001-01-17,10660.95,10817.35,10442.83,10584.34,1349100000,10584.34 +2001-01-16,10525.78,10751.48,10362.72,10652.66,1205700000,10652.66 +2001-01-12,10608.74,10743.75,10339.94,10525.38,1276000000,10525.38 +2001-01-11,10600.20,10808.00,10400.94,10609.55,1411200000,10609.55 +2001-01-10,10568.48,10728.30,10325.71,10604.27,1296500000,10604.27 +2001-01-09,10625.21,10801.09,10387.12,10572.55,1191300000,10572.55 +2001-01-08,10658.73,10818.98,10407.85,10621.35,1115500000,10621.35 +2001-01-05,10912.81,10990.59,10492.84,10662.01,1430800000,10662.01 +2001-01-04,10944.94,11224.41,10672.58,10912.41,216940000,10912.41 +2001-01-03,10637.42,11212.62,10367.19,10945.75,188070000,10945.75 +2001-01-02,10790.92,10916.98,10450.55,10646.15,1129400000,10646.15 +2000-12-29,10868.76,11031.05,10675.75,10787.99,1035500000,10787.99 +2000-12-28,10795.20,11009.44,10645.42,10868.76,1015300000,10868.76 +2000-12-27,10690.10,10944.60,10551.00,10803.16,1092700000,10803.16 +2000-12-26,10638.21,10813.78,10479.71,10692.44,806500000,10692.44 +2000-12-22,10495.26,10772.07,10364.06,10635.56,1087100000,10635.56 +2000-12-21,10314.38,10651.96,10158.16,10487.29,1449900000,10487.29 +2000-12-20,10580.97,10604.08,10197.59,10318.93,1421600000,10318.93 +2000-12-19,10643.14,10865.35,10441.41,10584.37,1324900000,10584.37 +2000-12-18,10433.34,10783.82,10417.43,10645.42,1189900000,10645.42 +2000-12-15,10647.98,10706.84,10324.24,10434.96,156110000,10434.96 +2000-12-14,10794.82,10864.49,10508.53,10674.99,1061300000,10674.99 +2000-12-13,10777.95,11002.23,10653.76,10794.44,1195100000,10794.44 +2000-12-12,10722.77,10968.77,10582.09,10768.27,1083400000,10768.27 +2000-12-11,10719.36,10931.33,10521.04,10725.80,1202400000,10725.80 +2000-12-08,10632.14,10896.82,10534.69,10712.91,1358300000,10712.91 +2000-12-07,10644.66,10791.40,10448.99,10617.36,1128000000,10617.36 +2000-12-06,10896.14,10995.41,10513.84,10664.38,1399300000,10664.38 +2000-12-05,10576.78,11044.70,10504.36,10898.72,900300000,10898.72 +2000-12-04,10377.33,10701.35,10227.17,10560.95,1103000000,10560.95 +2000-12-01,10416.76,10645.42,10238.54,10373.54,1195200000,10373.54 +2000-11-30,10610.53,10690.16,10204.80,10414.49,1186530000,10414.49 +2000-11-29,10502.74,10746.66,10383.02,10629.11,402100000,10629.11 +2000-11-28,10537.86,10730.35,10356.47,10507.58,1028200000,10507.58 +2000-11-27,10479.33,10758.04,10411.08,10546.07,946100000,10546.07 +2000-11-24,10403.87,10596.50,10354.20,10470.23,404870000,10470.23 +2000-11-22,10484.26,10589.67,10251.06,10399.32,963200000,10399.32 +2000-11-21,10465.57,10676.13,10303.39,10494.50,1137100000,10494.50 +2000-11-20,10624.18,10707.22,10331.45,10462.65,955800000,10462.65 +2000-11-17,10657.13,10824.77,10462.55,10629.87,1070400000,10629.87 +2000-11-16,10705.33,10857.38,10536.30,10656.03,956300000,10656.03 +2000-11-15,10681.21,10863.83,10544.17,10707.60,1066800000,10707.60 +2000-11-14,10528.25,10809.61,10484.64,10681.06,1118800000,10681.06 +2000-11-13,10595.35,10701.54,10273.24,10517.25,1129300000,10517.25 +2000-11-10,10813.78,10886.20,10497.53,10602.95,962500000,10602.95 +2000-11-09,10902.11,10989.34,10576.40,10834.25,1111000000,10834.25 +2000-11-08,10954.34,11152.02,10779.27,10907.06,909300000,10907.06 +2000-11-07,10978.72,11105.75,10825.15,10952.18,880900000,10952.18 +2000-11-06,10820.60,11092.10,10741.73,10977.21,930900000,10977.21 +2000-11-03,10883.17,10996.17,10650.72,10817.95,997700000,10817.95 +2000-11-02,10903.17,11071.06,10731.49,10880.51,1167700000,10880.51 +2000-11-01,10966.21,11103.10,10736.42,10899.47,1206800000,10899.47 +2000-10-31,10835.39,11108.79,10681.06,10971.14,1366400000,10971.14 +2000-10-30,10588.06,10944.98,10506.25,10835.77,1186500000,10835.77 +2000-10-27,10381.60,10696.43,10296.70,10590.62,1086300000,10590.62 +2000-10-26,10330.18,10563.25,10128.18,10380.12,1303800000,10380.12 +2000-10-25,10395.66,10563.99,10170.08,10326.48,1315600000,10326.48 +2000-10-24,10273.57,10583.96,10136.69,10393.07,1158600000,10393.07 +2000-10-23,10230.29,10496.28,10078.24,10271.72,1046800000,10271.72 +2000-10-20,10141.13,10406.76,9925.82,10226.59,1177400000,10226.59 +2000-10-19,10014.61,10317.23,9901.77,10142.98,1297900000,10142.98 +2000-10-18,10085.99,10171.47,9571.40,9975.02,1441700000,9975.02 +2000-10-17,10242.87,10402.32,9924.34,10089.71,1161500000,10089.71 +2000-10-16,10184.78,10428.95,10033.84,10238.80,1005400000,10238.80 +2000-10-13,10031.62,10325.37,9883.27,10192.18,1223900000,10192.18 +2000-10-12,10424.14,10462.25,9873.66,10034.58,1388600000,10034.58 +2000-10-11,10521.07,10647.23,10228.44,10413.79,1387500000,10413.79 +2000-10-10,10569.17,10744.52,10377.16,10524.40,1044000000,10524.40 +2000-10-09,10596.91,10762.10,10438.94,10568.43,716600000,10568.43 +2000-10-06,10726.76,10871.42,10440.05,10596.54,1150100000,10596.54 +2000-10-05,10783.72,10940.23,10570.28,10724.92,1176100000,10724.92 +2000-10-04,10723.33,10972.41,10596.54,10784.48,1167400000,10784.48 +2000-10-03,10709.84,10976.11,10561.03,10719.74,1098100000,10719.74 +2000-10-02,10659.06,10876.23,10479.27,10700.13,1051200000,10700.13 +2000-09-29,10821.40,10923.21,10552.15,10650.92,1197100000,10650.92 +2000-09-28,10629.84,10948.00,10539.48,10824.06,1206200000,10824.06 +2000-09-27,10634.45,10821.10,10439.31,10628.36,1174700000,10628.36 +2000-09-26,10806.30,10915.44,10499.61,10631.32,1106600000,10631.32 +2000-09-25,10847.37,11039.47,10664.24,10808.15,982400000,10808.15 +2000-09-22,10678.30,10936.53,10505.16,10847.37,1185500000,10847.37 +2000-09-21,10680.52,10902.12,10548.08,10765.52,1105400000,10765.52 +2000-09-20,10794.47,10906.93,10500.35,10687.92,1104000000,10687.92 +2000-09-19,10812.22,10960.95,10645.38,10789.29,1024900000,10789.29 +2000-09-18,10926.42,11053.80,10693.84,10808.52,962500000,10808.52 +2000-09-15,11087.84,11203.26,10857.73,10927.00,1268400000,10927.00 +2000-09-14,11189.58,11285.39,10986.47,11087.47,1014000000,11087.47 +2000-09-13,11225.03,11350.87,11020.14,11182.18,1068300000,11182.18 +2000-09-12,11197.71,11351.98,11015.70,11233.23,991200000,11233.23 +2000-09-11,11219.54,11367.15,11043.07,11195.49,899300000,11195.49 +2000-09-08,11261.72,11381.95,11059.72,11220.65,961000000,11220.65 +2000-09-07,11316.01,11444.84,11124.83,11259.87,985500000,11259.87 +2000-09-06,11253.58,11518.83,11186.25,11310.64,995100000,11310.64 +2000-09-05,11221.76,11382.69,11094.50,11260.61,838500000,11260.61 +2000-09-01,11219.54,11406.74,11130.01,11238.78,767700000,11238.78 +2000-08-31,11105.23,11415.99,11040.85,11215.10,1056600000,11215.10 +2000-08-30,11209.01,11282.06,11034.57,11103.01,818400000,11103.01 +2000-08-29,11249.27,11356.42,11100.79,11215.10,795600000,11215.10 +2000-08-28,11194.48,11410.44,11123.35,11252.84,733600000,11252.84 +2000-08-25,11180.54,11301.41,11073.59,11192.63,685600000,11192.63 +2000-08-24,11143.91,11302.51,11009.12,11182.74,837100000,11182.74 +2000-08-23,11130.55,11253.06,10990.44,11144.65,871000000,11144.65 +2000-08-22,11082.20,11274.67,11000.33,11139.15,818800000,11139.15 +2000-08-21,11058.85,11193.73,10945.39,11079.81,731600000,11079.81 +2000-08-18,11051.20,11180.54,10933.30,11046.48,821400000,11046.48 +2000-08-17,11010.95,11180.91,10899.24,11055.64,922400000,11055.64 +2000-08-16,11068.83,11171.02,10888.62,11008.39,929800000,11008.39 +2000-08-15,11175.05,11227.06,10965.54,11067.00,895900000,11067.00 +2000-08-14,11027.07,11232.92,10928.91,11176.14,783800000,11176.14 +2000-08-11,10905.98,11131.83,10841.37,11027.80,835500000,11027.80 +2000-08-10,10901.06,11069.93,10779.47,10908.76,940800000,10908.76 +2000-08-09,10970.94,11097.03,10780.02,10905.83,1054000000,10905.83 +2000-08-08,10865.15,11083.11,10741.38,10976.89,992200000,10976.89 +2000-08-07,10773.98,10973.23,10657.50,10867.01,854800000,10867.01 +2000-08-04,10713.36,10873.97,10555.68,10767.75,956000000,10767.75 +2000-08-03,10679.37,10844.30,10518.68,10706.58,1095600000,10706.58 +2000-08-02,10609.15,10818.66,10514.29,10687.53,986300000,10687.53 +2000-08-01,10523.81,10728.92,10428.58,10606.95,938700000,10606.95 +2000-07-31,10514.29,10727.09,10374.00,10521.98,952600000,10521.98 +2000-07-28,10594.97,10732.14,10367.28,10511.17,980000000,10511.17 +2000-07-27,10516.83,10745.93,10450.01,10586.13,1156400000,10586.13 +2000-07-26,10689.36,10790.13,10447.18,10516.48,1235800000,10516.48 +2000-07-25,10689.28,10867.20,10557.49,10699.97,969400000,10699.97 +2000-07-24,10731.44,10895.84,10545.47,10685.12,880300000,10685.12 +2000-07-21,10843.51,10949.58,10614.06,10733.56,968300000,10733.56 +2000-07-20,10700.68,10980.34,10671.33,10843.87,1064600000,10843.87 +2000-07-19,10724.15,10907.15,10587.89,10696.08,909400000,10696.08 +2000-07-18,10799.16,10895.57,10613.00,10739.92,908300000,10739.92 +2000-07-17,10812.40,10969.38,10653.30,10804.27,906000000,10804.27 +2000-07-14,10793.31,10935.44,10661.43,10812.75,960600000,10812.75 +2000-07-13,10774.92,10963.02,10643.40,10788.71,1026800000,10788.71 +2000-07-12,10722.24,10930.84,10639.51,10783.76,1001200000,10783.76 +2000-07-11,10649.06,10877.46,10544.76,10727.19,980500000,10727.19 +2000-07-10,10627.14,10792.25,10520.01,10646.58,838700000,10646.58 +2000-07-07,10483.33,10742.04,10419.25,10635.98,931700000,10635.98 +2000-07-06,10481.45,10644.11,10303.28,10481.47,947300000,10481.47 +2000-07-05,10538.23,10674.16,10362.33,10483.60,1019300000,10483.60 +2000-07-03,10450.36,10610.17,10353.66,10560.67,451900000,10560.67 +2000-06-30,10393.09,10626.79,10161.51,10447.89,1459700000,10447.89 +2000-06-29,10523.90,10582.94,10279.24,10398.04,1110900000,10398.04 +2000-06-28,10506.39,10712.70,10399.10,10527.79,1095100000,10527.79 +2000-06-27,10541.58,10741.69,10384.60,10504.46,1042500000,10504.46 +2000-06-26,10403.69,10680.26,10365.15,10542.99,889000000,10542.99 +2000-06-23,10376.47,10555.37,10283.13,10404.75,847600000,10404.75 +2000-06-22,10495.97,10596.73,10256.97,10376.12,1022700000,10376.12 +2000-06-21,10446.83,10607.69,10312.48,10497.74,1009600000,10497.74 +2000-06-20,10558.90,10632.09,10318.84,10435.16,1031500000,10435.16 +2000-06-19,10448.40,10733.56,10322.02,10557.84,921700000,10557.84 +2000-06-16,10717.76,10784.47,10393.44,10449.30,1250800000,10449.30 +2000-06-15,10689.63,10889.48,10552.89,10714.82,1011400000,10714.82 +2000-06-14,10632.46,10860.84,10542.99,10687.95,929700000,10687.95 +2000-06-13,10562.31,10751.86,10395.56,10621.84,935900000,10621.84 +2000-06-12,10615.12,10757.60,10476.88,10564.21,774100000,10564.21 +2000-06-09,10678.47,10848.38,10515.52,10614.06,786000000,10614.06 +2000-06-08,10818.78,10887.72,10524.92,10668.72,854300000,10668.72 +2000-06-07,10733.48,10974.07,10588.64,10812.86,854600000,10812.86 +2000-06-06,10822.61,10916.97,10592.82,10735.57,950100000,10735.57 +2000-06-05,10793.11,10951.79,10629.03,10815.30,838600000,10815.30 +2000-06-02,10660.09,11013.05,10600.46,10794.76,1162400000,10794.76 +2000-06-01,10532.27,10780.37,10422.95,10652.20,960100000,10652.20 +2000-05-31,10528.28,10692.73,10377.37,10522.33,960500000,10522.33 +2000-05-30,10302.31,10596.00,10287.94,10527.13,844200000,10527.13 +2000-05-26,10322.89,10487.72,10163.20,10299.24,722600000,10299.24 +2000-05-25,10529.87,10644.32,10207.75,10323.92,984500000,10323.92 +2000-05-24,10420.90,10679.53,10240.99,10535.35,1152300000,10535.35 +2000-05-23,10539.12,10671.74,10325.63,10422.27,869900000,10422.27 +2000-05-22,10624.79,10718.00,10308.15,10542.55,869000000,10542.55 +2000-05-19,10764.22,10821.83,10468.18,10626.85,853700000,10626.85 +2000-05-18,10771.80,10938.34,10669.00,10777.28,807900000,10777.28 +2000-05-17,10930.64,10947.25,10648.78,10769.74,820500000,10769.74 +2000-05-16,10816.01,11086.72,10723.48,10934.57,955500000,10934.57 +2000-05-15,10606.97,10902.36,10509.31,10807.78,854600000,10807.78 +2000-05-12,10549.06,10780.37,10444.54,10609.37,858200000,10609.37 +2000-05-11,10369.27,10676.88,10315.69,10545.97,953600000,10545.97 +2000-05-10,10533.09,10649.95,10169.77,10367.78,1006400000,10367.78 +2000-05-09,10607.54,10765.75,10435.96,10536.75,896600000,10536.75 +2000-05-08,10571.31,10744.22,10400.40,10603.63,787600000,10603.63 +2000-05-05,10409.70,10688.61,10312.91,10577.86,805500000,10577.86 +2000-05-04,10478.89,10631.53,10293.05,10412.49,925800000,10412.49 +2000-05-03,10732.21,10754.39,10345.17,10480.13,991600000,10480.13 +2000-05-02,10805.58,10932.47,10580.65,10731.12,1011500000,10731.12 +2000-05-01,10749.42,11001.34,10622.22,10811.78,966300000,10811.78 +2000-04-28,10892.76,11005.07,10632.46,10733.91,984600000,10733.91 +2000-04-27,10941.91,11024.61,10650.14,10888.10,1111000000,10888.10 +2000-04-26,11127.92,11246.75,10816.44,10945.50,999600000,10945.50 +2000-04-25,10916.65,11265.67,10764.62,11124.82,1071100000,11124.82 +2000-04-24,10822.33,11060.29,10579.10,10906.10,868700000,10906.10 +2000-04-20,10668.19,10941.47,10582.51,10844.05,896200000,10844.05 +2000-04-19,10748.97,10909.20,10503.40,10674.96,1001400000,10674.96 +2000-04-18,10584.02,10941.78,10424.90,10767.42,1109400000,10767.42 +2000-04-17,10303.29,10721.50,10128.62,10582.51,1204700000,10582.51 +2000-04-14,10922.85,10922.85,10173.92,10305.77,1279700000,10305.77 +2000-04-13,11132.58,11290.80,10806.51,10923.55,1032000000,10923.55 +2000-04-12,11283.05,11600.43,11026.47,11125.13,1175900000,11125.13 +2000-04-11,11180.98,11459.58,11024.22,11287.08,971400000,11287.08 +2000-04-10,11114.89,11404.35,10955.43,11186.56,853700000,11186.56 +2000-04-07,11122.03,11317.79,10932.78,11111.48,891600000,11111.48 +2000-04-06,11029.56,11303.83,10921.07,11114.27,1008000000,11114.27 +2000-04-05,11163.29,11326.79,10894.00,11033.92,1110300000,11033.92 +2000-04-04,11225.34,11531.24,10682.72,11164.84,1515460000,11164.84 +2000-04-03,10863.28,11344.17,10821.71,11221.93,1021700000,11221.93 +2000-03-31,10993.28,11244.58,10801.23,10921.92,1227400000,10921.92 +2000-03-30,11008.17,11258.23,10796.58,10980.25,1193400000,10980.25 +2000-03-29,10939.05,11214.48,10792.24,11018.72,1061900000,11018.72 +2000-03-28,11023.68,11192.76,10804.65,10936.11,959100000,10936.11 +2000-03-27,11093.25,11274.98,10881.90,11025.85,901000000,11025.85 +2000-03-24,11107.45,11311.28,10901.44,11112.72,1052200000,11112.72 +2000-03-23,10884.38,11224.72,10737.63,11119.86,1078300000,11119.86 +2000-03-22,10916.96,11054.71,10671.86,10866.70,1075000000,10866.70 +2000-03-21,10680.24,11012.20,10515.50,10907.34,1065900000,10907.34 +2000-03-20,10594.75,10866.08,10456.86,10680.24,920800000,10680.24 +2000-03-17,10629.98,10849.32,10399.15,10595.23,1295100000,10595.23 +2000-03-16,10139.58,10716.23,10139.58,10630.60,1482300000,10630.60 +2000-03-15,9808.15,10294.60,9676.90,10131.41,1302800000,10131.41 +2000-03-14,9957.67,10149.41,9747.33,9811.24,1094000000,9811.24 +2000-03-13,9911.22,10111.25,9670.07,9947.13,1016100000,9947.13 +2000-03-10,10008.55,10211.77,9792.93,9928.82,1138800000,9928.82 +2000-03-09,9855.29,10097.28,9667.28,10010.73,1123000000,10010.73 +2000-03-08,9800.69,10037.41,9611.75,9856.53,1203000000,9856.53 +2000-03-07,10197.61,10208.66,9651.77,9796.03,1314100000,9796.03 +2000-03-06,10358.96,10518.91,10038.65,10170.50,1029000000,10170.50 +2000-03-03,10171.12,10581.89,10148.16,10367.20,1150300000,10367.20 +2000-03-02,10135.44,10361.61,9986.53,10164.92,1198600000,10164.92 +2000-03-01,10128.11,10355.72,9935.96,10137.93,1274100000,10137.93 +2000-02-29,10039.58,10332.14,9926.65,10128.31,1204300000,10128.31 +2000-02-28,9854.66,10228.52,9760.36,10038.65,1026500000,10038.65 +2000-02-25,10090.77,10196.02,9767.80,9862.12,1065200000,9862.12 +2000-02-24,10242.48,10321.90,9877.94,10092.63,1215000000,10092.63 +2000-02-23,10294.82,10443.21,10077.74,10225.73,993700000,10225.73 +2000-02-22,10219.83,10446.62,10011.66,10304.84,980000000,10304.84 +2000-02-18,10514.57,10562.34,10129.24,10219.52,1042300000,10219.52 +2000-02-17,10565.76,10768.66,10348.66,10514.57,1034800000,10514.57 +2000-02-16,10711.82,10831.64,10468.65,10561.41,1018800000,10561.41 +2000-02-15,10520.15,10821.09,10377.44,10718.09,1092100000,10718.09 +2000-02-14,10431.65,10674.96,10327.56,10519.84,927300000,10519.84 +2000-02-11,10638.64,10763.38,10301.12,10425.21,1025700000,10425.21 +2000-02-10,10697.92,10853.67,10491.30,10643.63,1058800000,10643.63 +2000-02-09,10948.82,11016.54,10647.97,10699.16,1050500000,10699.16 +2000-02-08,10904.26,11139.40,10826.67,10957.60,1047700000,10957.60 +2000-02-07,10965.97,11097.52,10732.67,10905.79,918100000,10905.79 +2000-02-04,11014.37,11200.83,10847.54,10963.80,1045100000,10963.80 +2000-02-03,11010.48,11207.97,10799.68,11013.44,1146500000,11013.44 +2000-02-02,11037.64,11228.44,10876.00,11003.20,1038600000,11003.20 +2000-02-01,10937.74,11187.18,10798.44,11041.05,981000000,11041.05 +2000-01-31,10735.77,11059.67,10610.43,10940.53,993800000,10940.53 +2000-01-28,11024.92,11115.20,10649.21,10738.87,1095800000,10738.87 +2000-01-27,11035.55,11274.36,10818.30,11028.02,1129500000,11028.02 +2000-01-26,11025.85,11280.87,10870.73,11032.99,1117300000,11032.99 +2000-01-25,11010.96,11228.75,10779.83,11029.89,1073700000,11029.89 +2000-01-24,11251.94,11501.15,10849.01,11008.17,1115800000,11008.17 +2000-01-21,11356.26,11513.87,11113.65,11251.71,1209800000,11251.71 +2000-01-20,11490.29,11654.72,11194.32,11351.30,1100700000,11351.30 +2000-01-19,11535.24,11710.57,11320.28,11489.36,1087800000,11489.36 +2000-01-18,11719.19,11834.67,11397.22,11560.72,1056700000,11560.72 +2000-01-14,11619.35,11908.50,11506.42,11722.98,1085900000,11722.98 +2000-01-13,11558.24,11761.14,11421.42,11582.43,1030400000,11582.43 +2000-01-12,11506.73,11751.83,11385.74,11551.10,974600000,11551.10 +2000-01-11,11568.47,11748.11,11398.30,11511.08,1014000000,11511.08 +2000-01-10,11532.48,11765.17,11427.00,11572.20,1064800000,11572.20 +2000-01-07,11247.06,11655.65,11168.26,11522.56,1225200000,11522.56 +2000-01-06,11113.37,11447.79,10963.18,11253.26,1092300000,11253.26 +2000-01-05,10989.37,11337.65,10862.66,11122.65,1085500000,11122.65 +2000-01-04,11349.75,11358.44,10907.03,10997.93,1009000000,10997.93 +2000-01-03,11501.85,11641.07,11180.98,11357.51,931800000,11357.51 +1999-12-31,11453.48,11598.26,11368.05,11497.12,374050000,11497.12 +1999-12-30,11484.36,11640.33,11388.94,11452.86,554680000,11452.86 +1999-12-29,11472.88,11658.68,11367.53,11484.66,567860000,11484.66 +1999-12-28,11389.24,11613.72,11302.08,11476.71,655400000,11476.71 +1999-12-27,11410.65,11603.02,11253.15,11391.08,722600000,11391.08 +1999-12-23,11202.07,11506.38,11202.07,11405.76,728600000,11405.76 +1999-12-22,11199.45,11375.17,11075.76,11203.60,850000000,11203.60 +1999-12-21,11142.43,11336.03,10973.61,11200.54,963500000,11200.54 +1999-12-20,11254.50,11417.38,11026.22,11144.27,904600000,11144.27 +1999-12-17,11259.26,11497.20,11103.59,11257.43,1349800000,11257.43 +1999-12-16,11224.40,11396.89,11016.13,11244.89,1070300000,11244.89 +1999-12-15,11158.78,11400.48,11014.60,11225.32,1033900000,11225.32 +1999-12-14,11195.34,11336.33,11027.13,11160.17,1027800000,11160.17 +1999-12-13,11217.46,11379.46,11024.38,11192.59,977600000,11192.59 +1999-12-10,11137.85,11358.66,11042.12,11224.70,987200000,11224.70 +1999-12-09,11073.62,11327.46,10962.60,11134.79,1122100000,11134.79 +1999-12-08,11107.26,11273.33,10957.41,11068.12,957000000,11068.12 +1999-12-07,11221.65,11351.32,10993.49,11106.65,1085800000,11106.65 +1999-12-06,11286.79,11412.79,11100.53,11225.01,916800000,11225.01 +1999-12-03,11046.10,11423.50,11046.10,11286.18,1006400000,11286.18 +1999-12-02,10995.02,11183.72,10896.24,11039.06,900700000,11039.06 +1999-12-01,10876.47,11111.24,10798.07,10998.39,884000000,10998.39 +1999-11-30,10945.49,11142.13,10785.22,10877.81,951500000,10877.81 +1999-11-29,10985.73,11059.25,10813.97,10947.92,866100000,10947.92 +1999-11-26,11007.26,11115.83,10938.44,10988.91,312120000,10988.91 +1999-11-24,11000.22,11131.12,10859.23,11008.17,734800000,11008.17 +1999-11-23,11090.29,11178.83,10899.60,10995.63,926100000,10995.63 +1999-11-22,11008.78,11195.34,10887.67,11089.52,873500000,11089.52 +1999-11-19,11033.25,11146.41,10871.77,11003.89,893800000,11003.89 +1999-11-18,10887.67,11147.02,10859.92,11035.70,1022800000,11035.70 +1999-11-17,10929.00,11040.90,10774.21,10883.09,960000000,10883.09 +1999-11-16,10762.89,10992.88,10691.94,10932.33,942200000,10932.33 +1999-11-15,10764.73,10899.22,10626.80,10760.75,795700000,10760.75 +1999-11-12,10593.51,10845.16,10513.03,10769.32,900200000,10769.32 +1999-11-11,10603.25,10716.71,10485.20,10595.30,891300000,10595.30 +1999-11-10,10611.94,10713.04,10449.42,10597.74,984700000,10597.74 +1999-11-09,10715.10,10806.02,10506.61,10617.32,854300000,10617.32 +1999-11-08,10668.42,10838.74,10548.20,10718.85,806800000,10718.85 +1999-11-05,10639.95,10885.53,10636.59,10704.48,1007300000,10704.48 +1999-11-04,10612.42,10817.95,10523.43,10639.64,981700000,10639.64 +1999-11-03,10582.54,10759.22,10485.50,10609.06,914400000,10609.06 +1999-11-02,10653.71,10816.11,10508.14,10581.84,904500000,10581.84 +1999-11-01,10730.78,10828.96,10568.08,10648.51,861000000,10648.51 +1999-10-29,10629.18,10883.10,10580.11,10729.86,1120500000,10729.86 +1999-10-28,10397.67,10726.70,10397.67,10622.53,1135100000,10622.53 +1999-10-27,10302.76,10515.21,10172.32,10394.89,950100000,10394.89 +1999-10-26,10350.88,10486.39,10208.73,10302.13,878300000,10302.13 +1999-10-25,10468.98,10518.37,10225.82,10349.93,777000000,10349.93 +1999-10-22,10581.69,10581.69,10301.18,10470.25,959200000,10470.25 +1999-10-21,10390.71,10414.52,10047.57,10297.69,1012500000,10297.69 +1999-10-20,10203.31,10485.13,10144.46,10392.36,928800000,10392.36 +1999-10-19,10117.54,10418.01,10093.80,10204.93,905700000,10204.93 +1999-10-18,10018.45,10221.08,9884.20,10116.28,818700000,10116.28 +1999-10-15,10286.61,10286.61,9911.43,10019.71,912600000,10019.71 +1999-10-14,10230.89,10416.74,10071.64,10286.61,892300000,10286.61 +1999-10-13,10412.31,10495.89,10173.58,10232.16,821500000,10232.16 +1999-10-12,10648.81,10659.58,10366.08,10417.06,778300000,10417.06 +1999-10-11,10649.76,10781.16,10545.60,10648.18,655900000,10648.18 +1999-10-08,10534.52,10743.48,10423.71,10649.76,897300000,10649.76 +1999-10-07,10588.34,10687.12,10430.99,10537.05,827800000,10537.05 +1999-10-06,10399.77,10655.46,10340.75,10588.34,895200000,10588.34 +1999-10-05,10401.23,10578.21,10250.20,10400.59,965700000,10400.59 +1999-10-04,10274.58,10538.32,10220.44,10401.23,803300000,10401.23 +1999-10-01,10335.69,10425.92,10108.05,10273.00,896200000,10273.00 +1999-09-30,10214.11,10456.32,10156.85,10336.95,1017600000,10336.95 +1999-09-29,10274.27,10408.51,10119.76,10213.48,856000000,10213.48 +1999-09-28,10300.51,10386.03,10055.17,10275.53,885400000,10275.53 +1999-09-27,10279.33,10498.74,10201.76,10303.39,780600000,10303.39 +1999-09-24,10311.94,10428.14,10128.63,10279.33,872800000,10279.33 +1999-09-23,10524.07,10643.75,10260.33,10318.59,890800000,10318.59 +1999-09-22,10599.42,10688.39,10407.56,10524.07,822200000,10524.07 +1999-09-21,10822.95,10822.95,10517.10,10598.47,817300000,10598.47 +1999-09-20,10801.87,10918.88,10715.93,10823.90,568000000,10823.90 +1999-09-17,10745.38,10946.74,10690.61,10803.63,861900000,10803.63 +1999-09-16,10795.77,10876.46,10592.46,10737.46,739000000,10737.46 +1999-09-15,10910.40,11049.96,10757.41,10801.42,787300000,10801.42 +1999-09-14,11028.74,11061.04,10815.67,10910.33,734500000,10910.33 +1999-09-13,11027.40,11146.52,10886.90,11030.33,657900000,11030.33 +1999-09-10,11087.00,11218.39,10965.74,11028.43,808500000,11028.43 +1999-09-09,11031.28,11172.17,10900.83,11079.40,773900000,11079.40 +1999-09-08,11034.13,11164.89,10898.62,11036.34,791200000,11036.34 +1999-09-07,11079.08,11191.80,10910.65,11034.13,715300000,11034.13 +1999-09-03,10922.36,11155.70,10922.36,11078.45,663200000,11078.45 +1999-09-02,10923.95,10923.95,10669.71,10843.21,687100000,10843.21 +1999-09-01,10828.44,11013.55,10784.32,10937.88,708200000,10937.88 +1999-08-31,10909.70,11079.08,10725.43,10829.28,861700000,10829.28 +1999-08-30,11087.69,11176.60,10869.81,10914.13,597900000,10914.13 +1999-08-27,11198.45,11295.33,11021.14,11090.17,570050000,11090.17 +1999-08-26,11326.04,11393.48,11133.86,11198.45,719000000,11198.45 +1999-08-25,11282.38,11428.94,11106.31,11326.04,864600000,11326.04 +1999-08-24,11297.54,11404.87,11135.76,11283.30,732700000,11283.30 +1999-08-23,11099.66,11344.09,11087.95,11299.76,682600000,11299.76 +1999-08-20,10963.84,11155.07,10916.35,11100.61,661200000,11100.61 +1999-08-19,10988.85,11037.29,10809.65,10963.84,684200000,10963.84 +1999-08-18,11109.66,11153.49,10913.50,10991.38,682800000,10991.38 +1999-08-17,11049.64,11180.08,10963.52,11117.08,691500000,11117.08 +1999-08-16,10980.11,11105.05,10853.98,11046.79,583550000,11046.79 +1999-08-13,10822.00,11049.64,10822.00,10973.65,691700000,10973.65 +1999-08-12,10785.65,10967.64,10688.07,10789.39,745600000,10789.39 +1999-08-11,10650.59,10878.99,10596.26,10787.80,792300000,10787.80 +1999-08-10,10704.22,10812.82,10487.34,10655.15,836200000,10655.15 +1999-08-09,10714.03,10854.61,10571.56,10707.70,684300000,10707.70 +1999-08-06,10792.58,10896.08,10584.54,10714.03,698900000,10714.03 +1999-08-05,10675.41,10876.77,10509.19,10793.82,859300000,10793.82 +1999-08-04,10675.66,10901.78,10585.17,10674.77,789300000,10674.77 +1999-08-03,10645.96,10812.82,10538.00,10677.31,739600000,10677.31 +1999-08-02,10654.83,10849.23,10551.30,10645.96,649550000,10645.96 +1999-07-30,10791.29,10897.98,10594.99,10655.15,736800000,10655.15 +1999-07-29,10920.15,10920.15,10672.24,10791.29,770100000,10791.29 +1999-07-28,10979.04,11090.48,10851.13,10972.07,690900000,10972.07 +1999-07-27,10863.16,11079.40,10834.35,10979.04,723800000,10979.04 +1999-07-26,10910.96,11014.50,10748.86,10863.16,613450000,10863.16 +1999-07-23,10979.67,11069.59,10813.77,10910.96,630580000,10910.96 +1999-07-22,11002.78,11140.51,10796.67,10969.22,771700000,10969.22 +1999-07-21,10998.94,11142.72,10865.69,11002.78,785500000,11002.78 +1999-07-20,11130.06,11245.62,10914.13,10996.13,754800000,10996.13 +1999-07-19,11209.84,11321.61,11069.90,11187.68,642330000,11187.68 +1999-07-16,11188.63,11300.08,11069.27,11209.84,714100000,11209.84 +1999-07-15,11200.03,11313.37,11072.75,11186.41,818800000,11186.41 +1999-07-14,11202.24,11289.95,11051.86,11148.10,756100000,11148.10 +1999-07-13,11106.31,11277.60,11013.55,11175.02,736000000,11175.02 +1999-07-12,11234.22,11314.64,11087.95,11200.98,685300000,11200.98 +1999-07-09,11142.72,11284.25,11050.59,11193.70,701000000,11193.70 +1999-07-08,11118.66,11290.58,10985.68,11126.89,830600000,11126.89 +1999-07-07,11129.74,11268.42,11008.16,11187.36,791200000,11187.36 +1999-07-06,11119.93,11291.21,11021.78,11135.12,722900000,11135.12 +1999-07-02,11089.53,11205.41,10995.50,11139.24,613570000,11139.24 +1999-07-01,10972.39,11156.65,10841.63,11066.42,843400000,11066.42 +1999-06-30,10805.22,11120.24,10657.36,10970.80,1117000000,10970.80 +1999-06-29,10673.83,10855.56,10589.61,10815.35,820100000,10815.35 +1999-06-28,10633.93,10792.24,10535.15,10655.15,652910000,10655.15 +1999-06-25,10586.44,10719.42,10477.21,10552.56,623460000,10552.56 +1999-06-24,10620.32,10736.83,10404.07,10534.83,690400000,10534.83 +1999-06-23,10702.32,10791.29,10542.75,10666.86,731800000,10666.86 +1999-06-22,10768.49,10879.94,10639.63,10721.63,716500000,10721.63 +1999-06-21,10865.06,10960.36,10684.91,10815.98,686600000,10815.98 +1999-06-18,10885.00,10978.09,10751.39,10855.56,914500000,10855.56 +1999-06-17,10732.71,10936.61,10642.80,10841.63,700300000,10841.63 +1999-06-16,10709.92,10883.74,10608.92,10784.95,806800000,10784.95 +1999-06-15,10612.09,10740.00,10500.01,10594.99,696600000,10594.99 +1999-06-14,10490.83,10691.24,10414.52,10563.33,669400000,10563.33 +1999-06-11,10619.69,10744.11,10386.98,10490.51,698200000,10490.51 +1999-06-10,10621.58,10736.20,10452.52,10621.27,716500000,10621.27 +1999-06-09,10780.84,10871.39,10602.59,10690.29,662000000,10690.29 +1999-06-08,10878.35,10954.66,10671.93,10765.64,685900000,10765.64 +1999-06-07,10805.20,11016.40,10718.47,10909.38,664300000,10909.38 +1999-06-04,10702.64,10892.60,10558.26,10799.84,694500000,10799.84 +1999-06-03,10629.18,10767.86,10515.52,10663.69,719600000,10663.69 +1999-06-02,10591.82,10694.09,10388.24,10577.89,728000000,10577.89 +1999-06-01,10549.08,10717.20,10334.42,10596.26,683800000,10596.26 +1999-05-28,10489.56,10690.07,10389.94,10559.74,649960000,10559.74 +1999-05-27,10643.04,10734.21,10372.96,10466.93,811400000,10466.93 +1999-05-26,10580.94,10818.08,10416.06,10702.16,870800000,10702.16 +1999-05-25,10651.73,10818.96,10494.52,10531.09,826700000,10531.09 +1999-05-24,10829.87,10924.26,10568.85,10654.67,754700000,10654.67 +1999-05-21,10879.13,10974.69,10728.12,10829.28,686600000,10829.28 +1999-05-20,10892.40,11020.70,10773.83,10866.74,752200000,10866.74 +1999-05-19,10836.67,10988.85,10722.81,10887.39,801100000,10887.39 +1999-05-18,10895.94,11017.75,10678.86,10836.95,753400000,10836.95 +1999-05-17,10864.35,10976.32,10677.64,10853.47,665500000,10853.47 +1999-05-14,10950.26,11076.55,10787.03,10913.32,727800000,10913.32 +1999-05-13,11087.71,11244.36,10931.36,11107.19,796900000,11107.19 +1999-05-12,11002.38,11146.71,10759.54,11000.37,825500000,11000.37 +1999-05-11,11059.65,11185.08,10882.11,11026.15,836100000,11026.15 +1999-05-10,11029.25,11173.05,10876.38,11007.25,773300000,11007.25 +1999-05-07,10967.16,11135.54,10838.29,11031.59,814900000,11031.59 +1999-05-06,10909.02,11093.44,10730.33,10946.82,875400000,10946.82 +1999-05-05,10902.72,11055.36,10711.15,10955.41,913500000,10955.41 +1999-05-04,11012.11,11140.12,10787.32,10886.11,933100000,10886.11 +1999-05-03,10788.75,11083.13,10701.12,11014.69,811400000,11014.69 +1999-04-30,10933.94,11072.25,10603.76,10789.04,936500000,10789.04 +1999-04-29,10864.64,11052.49,10710.00,10878.38,1003600000,10878.38 +1999-04-28,10806.22,11050.77,10665.90,10845.45,951700000,10845.45 +1999-04-27,10781.88,10977.46,10647.29,10831.71,891700000,10831.71 +1999-04-26,10721.17,10854.33,10540.47,10718.59,712000000,10718.59 +1999-04-23,10646.71,10858.34,10530.45,10689.67,744900000,10689.67 +1999-04-22,10735.77,10896.42,10517.85,10727.18,927900000,10727.18 +1999-04-21,10462.58,10702.56,10309.09,10581.42,920000000,10581.42 +1999-04-20,10440.53,10610.06,10212.87,10448.55,985400000,10448.55 +1999-04-19,10566.07,10879.76,10284.39,10440.53,1214400000,10440.53 +1999-04-16,10497.26,10632.90,10299.55,10493.89,1002300000,10493.89 +1999-04-15,10411.66,10673.90,10201.31,10462.72,1089800000,10462.72 +1999-04-14,10436.91,10692.49,10196.87,10411.66,952000000,10411.66 +1999-04-13,10340.62,10512.11,10239.33,10395.01,810900000,10395.01 +1999-04-12,10094.19,10384.46,10042.02,10339.51,810800000,10339.51 +1999-04-09,10166.62,10298.71,10035.09,10173.84,716100000,10173.84 +1999-04-08,10083.93,10282.62,9980.69,10197.70,850500000,10197.70 +1999-04-07,10023.43,10166.62,9859.98,10085.31,816400000,10085.31 +1999-04-06,9985.69,10097.25,9862.48,9963.49,787500000,9963.49 +1999-04-05,9893.84,10080.87,9826.40,10007.33,695800000,10007.33 +1999-04-01,9825.29,9927.69,9707.91,9832.51,703000000,9832.51 +1999-03-31,9968.21,10025.10,9744.82,9786.16,924300000,9786.16 +1999-03-30,10003.84,10035.36,9812.53,9913.26,729000000,9913.26 +1999-03-29,9879.41,10089.48,9837.78,10006.78,747900000,10006.78 +1999-03-26,9795.88,9923.53,9700.69,9822.24,707200000,9822.24 +1999-03-25,9735.66,9916.59,9666.28,9836.39,784200000,9836.39 +1999-03-24,9702.08,9803.09,9547.23,9666.84,761900000,9666.84 +1999-03-23,9846.66,9897.72,9593.85,9671.83,811300000,9671.83 +1999-03-22,9901.88,10005.95,9796.99,9890.51,658200000,9890.51 +1999-03-19,10107.79,10158.57,9856.37,9903.55,914700000,9903.55 +1999-03-18,9958.59,10060.62,9776.17,9997.62,831000000,9997.62 +1999-03-17,9939.90,10024.54,9792.55,9879.41,752300000,9879.41 +1999-03-16,9969.32,10062.84,9857.48,9930.47,751900000,9930.47 +1999-03-15,9880.24,10027.59,9807.53,9958.77,727200000,9958.77 +1999-03-12,9927.14,10042.58,9779.78,9876.35,825800000,9876.35 +1999-03-11,9815.86,9992.35,9742.32,9897.44,904800000,9897.44 +1999-03-10,9735.10,9849.71,9624.94,9772.84,841900000,9772.84 +1999-03-09,9703.47,9856.65,9586.08,9693.76,803700000,9693.76 +1999-03-08,9728.72,9825.02,9616.33,9727.61,714600000,9727.61 +1999-03-05,9636.65,9799.92,9558.41,9736.08,834900000,9736.08 +1999-03-04,9339.18,9549.99,9272.08,9467.40,770900000,9467.40 +1999-03-03,9311.74,9397.86,9163.41,9275.88,751700000,9275.88 +1999-03-02,9382.10,9494.57,9216.66,9297.61,753600000,9297.61 +1999-03-01,9315.27,9419.32,9167.76,9324.78,699500000,9324.78 +1999-02-26,9382.64,9459.52,9177.54,9306.58,784600000,9306.58 +1999-02-25,9395.66,9446.32,9200.27,9366.34,740500000,9366.34 +1999-02-24,9547.88,9662.77,9357.81,9399.67,782000000,9399.67 +1999-02-23,9549.21,9659.58,9425.26,9544.42,781100000,9544.42 +1999-02-22,9346.62,9596.13,9289.04,9552.68,718500000,9552.68 +1999-02-19,9284.51,9430.59,9218.13,9339.95,700000000,9339.95 +1999-02-18,9239.72,9368.48,9145.09,9298.63,742400000,9298.63 +1999-02-17,9240.79,9409.53,9124.03,9195.47,735100000,9195.47 +1999-02-16,9333.34,9458.46,9187.10,9297.03,653760000,9297.03 +1999-02-12,9346.47,9437.35,9161.35,9274.89,691500000,9274.89 +1999-02-11,9176.28,9423.19,9088.49,9363.46,815800000,9363.46 +1999-02-10,9135.86,9267.68,9025.41,9177.31,721400000,9177.31 +1999-02-09,9268.46,9361.92,9076.13,9133.03,736000000,9133.03 +1999-02-08,9318.66,9427.83,9148.99,9291.11,705400000,9291.11 +1999-02-05,9317.12,9457.43,9141.27,9304.24,872000000,9304.24 +1999-02-04,9389.72,9511.50,9178.60,9304.50,854400000,9304.50 +1999-02-03,9275.41,9454.09,9176.80,9366.81,876500000,9366.81 +1999-02-02,9318.40,9394.10,9146.16,9274.12,845500000,9274.12 +1999-02-01,9405.43,9513.05,9266.91,9345.70,799400000,9345.70 +1999-01-29,9317.37,9457.18,9172.16,9358.83,917000000,9358.83 +1999-01-28,9220.57,9384.83,9134.57,9281.33,848800000,9281.33 +1999-01-27,9378.65,9461.04,9135.86,9200.23,893800000,9200.23 +1999-01-26,9210.78,9408.77,9118.35,9324.58,896400000,9324.58 +1999-01-25,9117.58,9273.09,8994.26,9203.32,723900000,9203.32 +1999-01-22,9149.51,9289.31,8998.89,9120.67,785900000,9120.67 +1999-01-21,9371.96,9479.83,9150.28,9264.08,871800000,9264.08 +1999-01-20,9395.64,9555.01,9230.35,9335.91,905700000,9335.91 +1999-01-19,9408.52,9499.14,9165.73,9355.22,785500000,9355.22 +1999-01-15,9200.74,9381.74,9124.02,9340.55,798100000,9340.55 +1999-01-14,9315.06,9380.20,9052.44,9120.93,797200000,9120.93 +1999-01-13,9213.62,9485.24,9134.06,9349.56,931500000,9349.56 +1999-01-12,9599.55,9680.40,9394.87,9474.68,800200000,9474.68 +1999-01-11,9613.97,9751.46,9446.36,9619.89,818000000,9619.89 +1999-01-08,9612.17,9759.44,9447.91,9643.32,937800000,9643.32 +1999-01-07,9445.33,9616.29,9369.12,9537.76,863000000,9537.76 +1999-01-06,9399.25,9608.05,9331.02,9544.97,986900000,9544.97 +1999-01-05,9201.00,9389.46,9137.66,9311.19,775000000,9311.19 +1999-01-04,9212.84,9393.84,9089.00,9184.27,877000000,9184.27 +1998-12-31,9271.55,9343.64,9106.77,9181.43,719200000,9181.43 +1998-12-30,9310.17,9390.75,9211.30,9274.64,594220000,9274.64 +1998-12-29,9222.63,9375.30,9152.34,9320.98,586490000,9320.98 +1998-12-28,9251.21,9330.50,9133.54,9226.75,531560000,9226.75 +1998-12-24,9202.29,9289.57,9146.42,9217.99,246980000,9217.99 +1998-12-23,9085.91,9255.84,9022.58,9202.03,697500000,9202.03 +1998-12-22,9000.95,9122.99,8909.29,9044.46,680500000,9044.46 +1998-12-21,8903.89,9150.54,8874.28,8988.85,744800000,8988.85 +1998-12-18,8902.86,9012.28,8789.31,8903.63,839600000,8903.63 +1998-12-17,8787.55,8959.76,8725.21,8875.82,739400000,8875.82 +1998-12-16,8843.38,8922.94,8675.52,8790.60,725500000,8790.60 +1998-12-15,8725.72,8878.40,8614.75,8823.30,777900000,8823.30 +1998-12-14,8767.95,8868.10,8610.63,8695.60,741800000,8695.60 +1998-12-11,8814.29,8916.24,8680.41,8821.76,688900000,8821.76 +1998-12-10,9008.42,9034.42,8795.24,8841.58,748600000,8841.58 +1998-12-09,9025.41,9138.18,8881.23,9009.19,694200000,9009.19 +1998-12-08,9038.03,9153.63,8903.37,9027.98,727700000,9027.98 +1998-12-07,9031.59,9146.93,8946.11,9070.47,671200000,9070.47 +1998-12-04,8964.91,9078.70,8873.76,9016.14,709700000,9016.14 +1998-12-03,9031.33,9112.69,8839.78,8879.68,799100000,8879.68 +1998-12-02,9039.57,9154.40,8922.94,9064.54,727400000,9064.54 +1998-12-01,9039.57,9214.65,8934.52,9133.54,789200000,9133.54 +1998-11-30,9292.40,9348.53,9074.07,9116.55,687900000,9116.55 +1998-11-27,9333.85,9403.62,9263.82,9333.08,256950000,9333.08 +1998-11-25,9292.91,9387.66,9199.20,9314.28,583580000,9314.28 +1998-11-24,9327.93,9457.95,9219.28,9301.15,766200000,9301.15 +1998-11-23,9225.72,9425.77,9137.92,9374.27,774100000,9374.27 +1998-11-20,9129.94,9215.93,9048.32,9159.55,721200000,9159.55 +1998-11-19,9081.02,9147.96,8967.22,9056.05,671000000,9056.05 +1998-11-18,8988.85,9095.70,8897.96,9041.11,652510000,9041.11 +1998-11-17,8991.17,9158.26,8870.42,8986.28,705200000,8986.28 +1998-11-16,8921.14,9093.12,8885.09,9011.25,615580000,9011.25 +1998-11-13,8863.21,8982.16,8782.62,8919.59,602270000,8919.59 +1998-11-12,8823.04,8951.26,8733.70,8829.74,662300000,8829.74 +1998-11-11,8922.42,8980.35,8759.19,8823.82,715700000,8823.82 +1998-11-10,8895.17,9020.00,8760.99,8863.98,671300000,8863.98 +1998-11-09,8980.87,9024.89,8813.00,8897.96,592990000,8897.96 +1998-11-06,8902.86,9042.40,8831.02,8975.46,683100000,8975.46 +1998-11-05,8782.11,8943.79,8676.55,8915.47,770200000,8915.47 +1998-11-04,8801.93,8933.49,8660.33,8783.14,861100000,8783.14 +1998-11-03,8708.99,8819.18,8601.88,8706.15,704300000,8706.15 +1998-11-02,8645.65,8804.51,8573.56,8706.15,753800000,8706.15 +1998-10-30,8591.58,8718.25,8481.39,8592.10,785000000,8592.10 +1998-10-29,8371.22,8539.83,8305.54,8495.03,699400000,8495.03 +1998-10-28,8372.74,8504.04,8271.55,8371.97,677500000,8371.97 +1998-10-27,8503.79,8586.69,8309.92,8366.04,764500000,8366.04 +1998-10-26,8483.96,8564.03,8349.57,8432.21,609910000,8432.21 +1998-10-23,8531.34,8589.01,8366.04,8452.29,637640000,8452.29 +1998-10-22,8519.03,8629.17,8334.12,8533.14,754900000,8533.14 +1998-10-21,8504.67,8641.02,8380.72,8519.23,745100000,8519.23 +1998-10-20,8540.09,8713.62,8419.08,8505.85,958200000,8505.85 +1998-10-19,8415.48,8591.07,8321.50,8466.45,738600000,8466.45 +1998-10-16,8384.84,8521.29,8244.26,8416.76,1042200000,8416.76 +1998-10-15,7953.07,8375.57,7885.62,8299.36,937600000,8299.36 +1998-10-14,7925.01,8107.29,7812.75,7968.78,791200000,7968.78 +1998-10-13,7982.68,8093.90,7805.29,7938.14,733300000,7938.14 +1998-10-12,8038.03,8162.65,7931.19,8001.47,691100000,8001.47 +1998-10-09,7806.57,7976.76,7628.15,7899.52,878100000,7899.52 +1998-10-08,7734.48,7822.02,7399.78,7731.91,1114600000,7731.91 +1998-10-07,7754.82,7913.94,7558.89,7741.69,977000000,7741.69 +1998-10-06,7733.97,7951.53,7646.43,7742.98,845700000,7742.98 +1998-10-05,7760.75,7866.82,7507.14,7726.24,817500000,7726.24 +1998-10-02,7631.50,7866.31,7496.84,7784.69,902900000,7784.69 +1998-10-01,7749.42,7856.26,7540.87,7632.53,899700000,7632.53 +1998-09-30,8025.42,8097.51,7775.42,7842.62,800100000,7842.62 +1998-09-29,8141.28,8253.79,7946.63,8080.52,760100000,8080.52 +1998-09-28,8114.76,8239.37,7986.80,8108.84,690500000,8108.84 +1998-09-25,7911.10,8127.89,7849.06,8028.77,736800000,8028.77 +1998-09-24,8117.33,8227.53,7906.73,8001.99,805900000,8001.99 +1998-09-23,7988.60,8198.43,7891.79,8154.41,899700000,8154.41 +1998-09-22,7987.83,8038.29,7816.87,7897.20,694900000,7897.20 +1998-09-21,7739.12,8008.43,7653.64,7933.25,609880000,7933.25 +1998-09-18,7942.77,8012.03,7759.97,7895.66,794700000,7895.66 +1998-09-17,7905.96,8001.99,7795.50,7873.77,694500000,7873.77 +1998-09-16,8061.46,8159.30,7923.46,8089.78,797500000,8089.78 +1998-09-15,7918.83,8087.21,7840.30,8024.39,724600000,8024.39 +1998-09-14,7936.08,8081.29,7848.03,7945.35,714400000,7945.35 +1998-09-11,7583.61,7866.31,7497.10,7795.50,819100000,7795.50 +1998-09-10,7680.42,7761.00,7469.04,7615.54,880300000,7615.54 +1998-09-09,7995.04,8094.16,7796.79,7865.02,704300000,7865.02 +1998-09-08,7964.91,8103.69,7779.03,8020.78,814800000,8020.78 +1998-09-04,7737.32,7831.29,7450.24,7640.25,780300000,7640.25 +1998-09-03,7679.13,7841.59,7499.68,7682.22,880500000,7682.22 +1998-09-02,7901.06,8036.23,7710.54,7782.37,894600000,7782.37 +1998-09-01,7583.09,7937.37,7379.70,7827.43,1216600000,7827.43 +1998-08-31,8078.97,8149.00,7517.70,7539.07,917500000,7539.07 +1998-08-28,8193.54,8301.68,7951.27,8051.68,840300000,8051.68 +1998-08-27,8377.89,8448.69,8062.24,8165.99,938600000,8165.99 +1998-08-26,8492.97,8639.47,8396.68,8523.35,674100000,8523.35 +1998-08-25,8632.00,8740.91,8510.22,8602.65,664900000,8602.65 +1998-08-24,8584.63,8680.66,8452.29,8566.61,558100000,8566.61 +1998-08-21,8600.34,8600.34,8307.60,8533.65,725700000,8533.65 +1998-08-20,8639.47,8726.75,8538.29,8611.41,621630000,8611.41 +1998-08-19,8745.80,8797.81,8635.61,8693.28,633630000,8693.28 +1998-08-18,8593.90,8767.69,8551.93,8714.65,690600000,8714.65 +1998-08-17,8404.66,8613.98,8350.34,8574.85,584380000,8574.85 +1998-08-14,8531.85,8635.87,8342.10,8425.00,644030000,8425.00 +1998-08-13,8535.46,8656.46,8399.51,8459.50,660700000,8459.50 +1998-08-12,8528.76,8621.71,8437.10,8552.96,711700000,8552.96 +1998-08-11,8431.44,8538.29,8263.32,8462.85,774400000,8462.85 +1998-08-10,8585.40,8689.16,8491.17,8574.85,579180000,8574.85 +1998-08-07,8610.63,8745.03,8490.40,8598.02,759100000,8598.02 +1998-08-06,8513.83,8671.14,8415.22,8577.68,768400000,8577.68 +1998-08-05,8493.75,8641.79,8316.10,8546.78,851600000,8546.78 +1998-08-04,8859.86,8896.68,8463.37,8487.31,852600000,8487.31 +1998-08-03,8868.10,8948.17,8729.58,8786.74,620400000,8786.74 +1998-07-31,9024.64,9109.34,8810.94,8883.29,645910000,8883.29 +1998-07-30,8962.85,9113.20,8884.83,9026.95,687400000,9026.95 +1998-07-29,8976.49,9039.57,8831.28,8914.96,644350000,8914.96 +1998-07-28,8982.16,9065.57,8786.48,8934.78,703600000,8934.78 +1998-07-27,8905.17,9084.63,8806.05,9028.24,619990000,9028.24 +1998-07-24,9002.24,9077.67,8814.29,8937.36,698600000,8937.36 +1998-07-23,9130.46,9196.11,8892.56,8932.98,741600000,8932.98 +1998-07-22,9185.71,9264.85,8996.83,9128.91,739800000,9128.91 +1998-07-21,9296.26,9369.12,9145.65,9190.19,659700000,9190.19 +1998-07-20,9340.55,9408.26,9206.15,9295.75,560580000,9295.75 +1998-07-17,9328.19,9412.64,9259.96,9337.97,618030000,9337.97 +1998-07-16,9233.23,9368.35,9173.19,9328.19,677800000,9328.19 +1998-07-15,9246.57,9388.69,9165.99,9234.47,723900000,9234.47 +1998-07-14,9100.07,9314.54,9087.20,9245.54,700300000,9245.54 +1998-07-13,9107.03,9186.58,9020.52,9096.21,574880000,9096.21 +1998-07-10,9098.53,9194.82,8976.23,9105.74,576080000,9105.74 +1998-07-09,9135.36,9217.07,9014.30,9089.78,663600000,9089.78 +1998-07-08,9107.96,9231.27,9041.70,9174.97,607230000,9174.97 +1998-07-07,9094.76,9209.85,9001.84,9085.04,624890000,9085.04 +1998-07-06,9017.53,9137.11,8965.97,9091.77,514750000,9091.77 +1998-07-02,9037.71,9094.01,8956.25,9025.26,510210000,9025.26 +1998-07-01,9011.56,9103.23,8918.64,9048.67,701600000,9048.67 +1998-06-30,9010.81,9085.79,8868.57,8952.02,757200000,8952.02 +1998-06-29,9002.34,9099.24,8930.84,8997.36,564350000,8997.36 +1998-06-26,8948.28,9047.93,8879.78,8944.54,520050000,8944.54 +1998-06-25,8950.52,9079.56,8863.58,8935.58,669900000,8935.58 +1998-06-24,8828.46,8970.20,8740.52,8923.87,714900000,8923.87 +1998-06-23,8789.35,8877.78,8724.83,8828.46,657100000,8828.46 +1998-06-22,8705.65,8805.04,8639.38,8711.13,531550000,8711.13 +1998-06-19,8844.90,8885.01,8664.79,8712.87,715500000,8712.87 +1998-06-18,8825.72,8900.20,8740.77,8813.01,590440000,8813.01 +1998-06-17,8745.51,8932.34,8695.43,8829.46,744400000,8829.46 +1998-06-16,8666.04,8751.24,8524.55,8665.29,664600000,8665.29 +1998-06-15,8723.34,8818.99,8588.32,8627.93,595820000,8627.93 +1998-06-12,8812.77,8891.24,8660.56,8834.94,633300000,8834.94 +1998-06-11,8975.43,9015.54,8774.40,8811.77,627470000,8811.77 +1998-06-10,9031.98,9145.08,8891.98,8971.70,609410000,8971.70 +1998-06-09,9074.58,9130.13,8966.72,9049.92,563610000,9049.92 +1998-06-08,9052.66,9155.04,8994.12,9069.60,543390000,9069.60 +1998-06-05,8920.88,9057.39,8866.57,9037.71,558440000,9037.71 +1998-06-04,8798.07,8916.64,8719.85,8870.56,577470000,8870.56 +1998-06-03,8909.42,8970.20,8769.67,8803.80,584480000,8803.80 +1998-06-02,8961.48,9014.05,8838.92,8891.24,590930000,8891.24 +1998-06-01,8907.93,9023.01,8805.04,8922.37,537660000,8922.37 +1998-05-29,9004.83,9060.13,8859.60,8899.95,556780000,8899.95 +1998-05-28,8947.53,9040.70,8861.59,8970.20,588900000,8970.20 +1998-05-27,8902.45,9015.04,8760.95,8936.57,682040000,8936.57 +1998-05-26,9167.00,9201.63,8949.78,8963.73,541410000,8963.73 +1998-05-22,9153.05,9209.35,9040.70,9114.44,444070000,9114.44 +1998-05-21,9173.48,9248.96,9058.64,9132.37,551970000,9132.37 +1998-05-20,9101.98,9219.06,9010.56,9171.48,587240000,9171.48 +1998-05-19,9097.00,9164.51,8997.36,9054.65,566020000,9054.65 +1998-05-18,9088.53,9171.23,8972.20,9050.91,519100000,9050.91 +1998-05-15,9161.52,9240.74,9051.91,9096.00,621990000,9096.00 +1998-05-14,9136.86,9266.89,9077.07,9172.23,578380000,9172.23 +1998-05-13,9178.06,9283.09,9119.67,9211.84,600010000,9211.84 +1998-05-12,9098.00,9214.08,9023.51,9161.77,604420000,9161.77 +1998-05-11,9125.65,9231.52,9045.43,9091.52,560840000,9091.52 +1998-05-08,8981.91,9143.09,8951.27,9055.15,567890000,9055.15 +1998-05-07,9044.44,9102.98,8914.90,8976.68,582240000,8976.68 +1998-05-06,9174.72,9223.80,9017.28,9054.65,606540000,9054.65 +1998-05-05,9189.92,9251.95,9062.37,9147.57,583630000,9147.57 +1998-05-04,9201.38,9311.98,9134.86,9192.66,551700000,9192.66 +1998-05-01,9106.47,9211.84,9015.54,9147.07,581970000,9147.07 +1998-04-30,9018.28,9169.99,8970.95,9063.37,695600000,9063.37 +1998-04-29,8899.21,9036.47,8857.85,8951.52,638790000,8951.52 +1998-04-28,8920.88,9051.16,8828.71,8898.96,678600000,8898.96 +1998-04-27,8937.07,9026.25,8796.08,8917.64,685960000,8917.64 +1998-04-24,9143.83,9206.36,8983.65,9064.62,633890000,9064.62 +1998-04-23,9176.96,9269.88,9061.88,9143.33,653190000,9143.33 +1998-04-22,9184.93,9287.32,9083.80,9176.72,696740000,9176.72 +1998-04-21,9137.85,9250.20,9051.41,9184.94,675640000,9184.94 +1998-04-20,9166.75,9245.22,9027.25,9141.84,595190000,9141.84 +1998-04-17,9077.57,9213.58,9010.06,9167.50,672290000,9167.50 +1998-04-16,9162.27,9204.12,8978.92,9076.57,699570000,9076.57 +1998-04-15,9110.45,9249.95,9017.53,9162.27,685020000,9162.27 +1998-04-14,9014.30,9177.96,8971.45,9110.20,613730000,9110.20 +1998-04-13,8997.11,9107.21,8870.31,9012.30,564480000,9012.30 +1998-04-09,8891.48,9062.12,8891.48,8994.86,548940000,8994.86 +1998-04-08,8951.52,9023.51,8821.73,8891.48,616330000,8891.48 +1998-04-07,8995.36,9072.34,8862.34,8956.50,670760000,8956.50 +1998-04-06,9051.16,9170.74,8958.49,9033.23,625810000,9033.23 +1998-04-03,8986.64,9085.79,8896.22,8983.41,653880000,8983.41 +1998-04-02,8900.20,9025.26,8829.21,8986.64,674340000,8986.64 +1998-04-01,8818.50,8935.33,8715.61,8868.32,677310000,8868.32 +1998-03-31,8852.12,8937.57,8726.32,8799.81,674930000,8799.81 +1998-03-30,8802.30,8877.04,8701.66,8782.12,497400000,8782.12 +1998-03-27,8835.68,8941.31,8741.77,8796.08,582190000,8796.08 +1998-03-26,8847.89,8931.09,8769.92,8846.89,606770000,8846.89 +1998-03-25,8943.05,8997.11,8780.88,8872.80,676550000,8872.80 +1998-03-24,8887.00,8962.48,8815.01,8904.44,605720000,8904.44 +1998-03-23,8839.42,8939.31,8758.71,8816.25,631350000,8816.25 +1998-03-20,8814.01,8957.25,8766.43,8906.43,717310000,8906.43 +1998-03-19,8776.89,8855.11,8708.64,8803.05,598240000,8803.05 +1998-03-18,8749.24,8825.72,8655.83,8775.40,632690000,8775.40 +1998-03-17,8706.64,8812.52,8633.41,8749.99,680960000,8749.99 +1998-03-16,8647.36,8760.45,8573.37,8718.85,548980000,8718.85 +1998-03-13,8669.28,8733.30,8563.90,8602.52,597800000,8602.52 +1998-03-12,8622.20,8725.58,8576.86,8659.56,594940000,8659.56 +1998-03-11,8682.73,8740.52,8599.28,8675.75,655260000,8675.75 +1998-03-10,8623.19,8688.71,8550.45,8643.12,631920000,8643.12 +1998-03-09,8601.02,8661.56,8482.45,8567.14,624700000,8567.14 +1998-03-06,8505.86,8610.49,8432.62,8569.39,665500000,8569.39 +1998-03-05,8480.20,8536.80,8377.32,8444.33,648270000,8444.33 +1998-03-04,8524.55,8609.99,8454.79,8539.24,644280000,8539.24 +1998-03-03,8532.77,8632.16,8464.26,8584.83,612360000,8584.83 +1998-03-02,8528.78,8649.35,8427.89,8550.45,591470000,8550.45 +1998-02-27,8532.77,8616.72,8426.15,8545.72,574480000,8545.72 +1998-02-26,8471.48,8541.98,8377.82,8490.67,646280000,8490.67 +1998-02-25,8455.29,8510.60,8362.37,8457.78,611350000,8457.78 +1998-02-24,8370.10,8457.78,8303.83,8370.10,589880000,8370.10 +1998-02-23,8381.31,8490.92,8331.98,8410.20,550730000,8410.20 +1998-02-20,8350.67,8449.06,8291.88,8413.94,594300000,8413.94 +1998-02-19,8379.56,8463.26,8327.25,8375.58,581820000,8375.58 +1998-02-18,8419.17,8503.12,8326.75,8451.06,606000000,8451.06 +1998-02-17,8439.35,8483.94,8335.97,8398.50,605890000,8398.50 +1998-02-13,8346.68,8416.43,8269.21,8370.10,531940000,8370.10 +1998-02-12,8260.49,8412.20,8206.93,8369.60,611480000,8369.60 +1998-02-11,8298.60,8367.61,8223.87,8314.55,599300000,8314.55 +1998-02-10,8241.81,8368.10,8149.88,8295.61,642800000,8295.61 +1998-02-09,8185.26,8256.75,8104.55,8180.52,524810000,8180.52 +1998-02-06,8178.28,8255.26,8102.30,8189.49,569650000,8189.49 +1998-02-05,8129.71,8215.65,8037.54,8117.25,703980000,8117.25 +1998-02-04,8160.35,8188.00,8050.99,8129.71,695420000,8129.71 +1998-02-03,8107.78,8193.23,8010.63,8160.35,692120000,8160.35 +1998-02-02,7987.46,8157.86,7987.46,8107.78,724320000,8107.78 +1998-01-30,7973.02,8023.83,7850.95,7906.50,613380000,7906.50 +1998-01-29,7915.47,8015.12,7883.09,7973.02,750760000,7973.02 +1998-01-28,7815.08,7985.97,7761.52,7915.47,708470000,7915.47 +1998-01-27,7712.94,7890.56,7677.07,7815.08,679140000,7815.08 +1998-01-26,7700.74,7813.59,7629.99,7712.94,555080000,7712.94 +1998-01-23,7730.88,7814.08,7609.31,7700.74,635770000,7700.74 +1998-01-22,7794.40,7833.26,7637.71,7730.88,646570000,7730.88 +1998-01-21,7873.12,7874.87,7707.96,7794.40,626160000,7794.40 +1998-01-20,7753.55,7908.00,7696.01,7873.12,644790000,7873.12 +1998-01-16,7691.77,7846.47,7687.04,7753.55,670080000,7753.55 +1998-01-15,7784.69,7803.87,7651.66,7691.77,569050000,7691.77 +1998-01-14,7732.13,7836.25,7669.10,7784.69,603280000,7784.69 +1998-01-13,7647.18,7791.17,7610.31,7732.13,646740000,7732.13 +1998-01-12,7580.42,7706.22,7391.59,7647.18,705450000,7647.18 +1998-01-09,7802.62,7815.08,7513.41,7580.42,746420000,7580.42 +1998-01-08,7902.27,7935.40,7733.12,7802.62,652140000,7802.62 +1998-01-07,7906.25,7943.87,7751.56,7902.27,667390000,7902.27 +1998-01-06,7978.99,7999.17,7832.52,7906.25,618360000,7906.25 +1998-01-05,7965.04,8072.91,7865.40,7978.99,628070000,7978.99 +1998-01-02,7908.25,8001.41,7845.47,7965.04,366730000,7965.04 +1997-12-31,7915.97,7995.93,7833.76,7908.25,467280000,7908.25 +1997-12-30,7792.41,7958.32,7787.68,7915.97,499500000,7915.97 +1997-12-29,7712.94,7835.01,7712.94,7792.41,443160000,7792.41 +1997-12-26,7660.13,7743.34,7634.72,7679.31,154900000,7679.31 +1997-12-24,7691.77,7767.75,7624.26,7660.13,265980000,7660.13 +1997-12-23,7819.31,7874.12,7667.11,7691.77,515070000,7691.77 +1997-12-22,7756.29,7892.05,7710.45,7819.31,530670000,7819.31 +1997-12-19,7846.50,7878.60,7563.23,7756.29,793200000,7756.29 +1997-12-18,7957.41,7991.48,7781.35,7846.50,618870000,7846.50 +1997-12-17,7976.31,8068.81,7879.08,7957.41,618900000,7957.41 +1997-12-16,7922.59,8069.06,7889.52,7976.31,623320000,7976.31 +1997-12-15,7838.30,7992.72,7807.96,7922.59,597150000,7922.59 +1997-12-12,7848.99,7947.21,7756.73,7838.30,579280000,7838.30 +1997-12-11,7961.64,7961.64,7778.37,7848.99,631770000,7848.99 +1997-12-10,8049.66,8077.27,7881.07,7978.79,602290000,7978.79 +1997-12-09,8110.84,8142.67,7990.98,8049.66,539130000,8049.66 +1997-12-08,8149.13,8195.88,8057.37,8110.84,490320000,8110.84 +1997-12-05,8050.16,8209.56,7980.04,8149.13,563590000,8149.13 +1997-12-04,8032.01,8159.58,7978.30,8050.16,633470000,8050.16 +1997-12-03,8018.83,8118.30,7915.63,8032.01,624610000,8032.01 +1997-12-02,8013.11,8096.66,7935.03,8018.83,576120000,8018.83 +1997-12-01,7823.62,8048.92,7823.62,8013.11,590300000,8013.11 +1997-11-28,7794.78,7872.86,7786.08,7823.13,189070000,7823.13 +1997-11-26,7808.95,7893.50,7749.77,7794.78,487750000,7794.78 +1997-11-25,7767.92,7880.32,7706.00,7808.95,587890000,7808.95 +1997-11-24,7881.07,7887.28,7723.41,7767.92,514920000,7767.92 +1997-11-21,7826.61,7934.53,7758.47,7881.07,611000000,7881.07 +1997-11-20,7724.74,7889.77,7718.19,7826.61,602610000,7826.61 +1997-11-19,7650.82,7779.75,7599.50,7724.74,542720000,7724.74 +1997-11-18,7698.22,7772.62,7607.11,7650.82,521380000,7650.82 +1997-11-17,7613.49,7781.71,7613.49,7698.22,576540000,7698.22 +1997-11-14,7487.76,7634.61,7431.03,7572.48,635760000,7572.48 +1997-11-13,7401.32,7546.45,7334.77,7487.76,653960000,7487.76 +1997-11-12,7558.73,7573.22,7359.32,7401.32,585340000,7401.32 +1997-11-11,7552.59,7599.74,7518.21,7558.73,435660000,7558.73 +1997-11-10,7581.32,7687.90,7511.83,7552.59,464140000,7552.59 +1997-11-07,7646.89,7646.89,7460.99,7581.32,569980000,7581.32 +1997-11-06,7692.57,7758.63,7597.78,7683.24,522890000,7683.24 +1997-11-05,7689.13,7791.78,7628.96,7692.57,565680000,7692.57 +1997-11-04,7674.39,7757.15,7583.29,7689.13,541590000,7689.13 +1997-11-03,7443.07,7674.39,7443.07,7674.39,564740000,7674.39 +1997-10-31,7381.67,7544.24,7329.61,7442.08,638070000,7442.08 +1997-10-30,7506.67,7569.78,7340.42,7381.67,712230000,7381.67 +1997-10-29,7498.32,7664.08,7409.67,7506.67,777660000,7506.67 +1997-10-28,7161.15,7553.57,6936.45,7498.32,1202550000,7498.32 +1997-10-27,7715.41,7717.37,7150.10,7161.15,693730000,7161.15 +1997-10-24,7847.77,7975.47,7645.91,7715.41,677630000,7715.41 +1997-10-23,7957.05,7957.05,7767.22,7847.77,673270000,7847.77 +1997-10-22,8060.44,8124.78,7941.33,8034.65,613490000,8034.65 +1997-10-21,7921.44,8090.40,7909.41,8060.44,582310000,8060.44 +1997-10-20,7847.03,7966.63,7774.83,7921.44,483880000,7921.44 +1997-10-17,7938.88,7953.61,7731.12,7847.03,624980000,7847.03 +1997-10-16,8057.98,8146.14,7880.18,7938.88,597010000,7938.88 +1997-10-15,8096.29,8127.48,7997.57,8057.98,505310000,8057.98 +1997-10-14,8072.22,8168.24,7990.20,8096.29,510330000,8096.29 +1997-10-13,8045.21,8150.31,8026.30,8072.22,354800000,8072.22 +1997-10-10,8061.42,8091.38,7961.96,8045.21,500680000,8045.21 +1997-10-09,8095.06,8127.72,7980.87,8061.42,551840000,8061.42 +1997-10-08,8178.31,8208.52,8019.92,8095.06,573110000,8095.06 +1997-10-07,8100.22,8218.34,8058.96,8178.31,551970000,8178.31 +1997-10-06,8038.58,8160.63,8017.71,8100.22,495620000,8100.22 +1997-10-03,8027.53,8183.22,7937.89,8038.58,623370000,8038.58 +1997-10-02,8015.50,8087.45,7943.79,8027.53,474760000,8027.53 +1997-10-01,7945.26,8081.06,7909.41,8015.50,598660000,8015.50 +1997-09-30,7991.43,8045.70,7900.08,7945.26,587500000,7945.26 +1997-09-29,7922.18,8030.48,7862.99,7991.43,477100000,7991.43 +1997-09-26,7853.66,7970.80,7853.66,7922.18,505340000,7922.18 +1997-09-25,7906.71,7962.45,7802.34,7848.01,524880000,7848.01 +1997-09-24,7970.06,8065.84,7866.43,7906.71,639460000,7906.71 +1997-09-23,7996.83,8048.16,7885.34,7970.06,522930000,7970.06 +1997-09-22,7917.27,8078.36,7889.27,7996.83,490900000,7996.83 +1997-09-19,7922.72,7972.29,7821.69,7917.27,631040000,7917.27 +1997-09-18,7886.44,8049.36,7858.93,7922.72,566830000,7922.72 +1997-09-17,7895.92,7981.54,7816.47,7886.44,590550000,7886.44 +1997-09-16,7721.14,7951.18,7709.75,7895.92,636380000,7895.92 +1997-09-15,7742.97,7832.86,7680.95,7721.14,468030000,7721.14 +1997-09-12,7660.98,7779.67,7584.56,7742.97,544150000,7742.97 +1997-09-11,7719.28,7745.29,7556.23,7660.98,575020000,7660.98 +1997-09-10,7851.91,7868.16,7686.30,7719.28,517620000,7719.28 +1997-09-09,7835.18,7922.05,7768.52,7851.91,502200000,7851.91 +1997-09-08,7822.41,7921.35,7795.00,7835.18,466430000,7835.18 +1997-09-05,7867.24,7952.01,7765.27,7822.41,536400000,7822.41 +1997-09-04,7894.64,7936.45,7788.50,7867.24,559310000,7867.24 +1997-09-03,7879.78,7972.22,7828.45,7894.64,549060000,7894.64 +1997-09-02,7650.99,7903.47,7650.99,7879.78,491870000,7879.78 +1997-08-29,7694.43,7729.73,7580.85,7622.42,413910000,7622.42 +1997-08-28,7787.33,7831.70,7634.50,7694.43,486300000,7694.43 +1997-08-27,7782.22,7850.51,7666.55,7787.33,492150000,7787.33 +1997-08-26,7859.57,7891.62,7734.61,7782.22,449110000,7782.22 +1997-08-25,7887.91,7974.08,7791.75,7859.57,388990000,7859.57 +1997-08-22,7893.95,7904.86,7695.36,7887.91,460160000,7887.91 +1997-08-21,8021.23,8043.06,7834.02,7893.95,499000000,7893.95 +1997-08-20,7918.10,8037.95,7870.95,8021.23,521270000,8021.23 +1997-08-19,7803.36,7947.37,7776.65,7918.10,545630000,7918.10 +1997-08-18,7694.66,7847.49,7588.28,7803.36,514330000,7803.36 +1997-08-15,7919.26,7919.26,7685.14,7694.66,537820000,7694.66 +1997-08-14,7928.32,8027.73,7843.54,7942.03,530460000,7942.03 +1997-08-13,7960.84,8075.58,7848.19,7928.32,587210000,7928.32 +1997-08-12,8062.11,8132.49,7926.46,7960.84,499310000,7960.84 +1997-08-11,8031.22,8122.27,7922.52,8062.11,480340000,8062.11 +1997-08-08,8170.58,8170.58,7961.07,8031.22,563420000,8031.22 +1997-08-07,8259.31,8340.14,8158.73,8188.00,576030000,8188.00 +1997-08-06,8187.54,8302.05,8130.63,8259.31,565200000,8259.31 +1997-08-05,8198.45,8251.88,8129.93,8187.54,525710000,8187.54 +1997-08-04,8194.04,8261.40,8097.65,8198.45,456000000,8198.45 +1997-08-01,8222.61,8287.65,8062.11,8194.04,513750000,8194.04 +1997-07-31,8254.89,8328.99,8160.36,8222.61,547830000,8222.61 +1997-07-30,8174.53,8313.19,8156.88,8254.89,568470000,8254.89 +1997-07-29,8121.11,8232.36,8049.34,8174.53,544540000,8174.53 +1997-07-28,8113.44,8221.68,8051.89,8121.11,466920000,8121.11 +1997-07-25,8116.93,8200.31,8037.95,8113.44,521510000,8113.44 +1997-07-24,8088.36,8174.53,7968.51,8116.93,571020000,8116.93 +1997-07-23,8061.65,8199.15,8024.95,8088.36,616930000,8088.36 +1997-07-22,7906.72,8093.93,7870.72,8061.65,579590000,8061.65 +1997-07-21,7890.46,7981.51,7783.85,7906.72,459500000,7906.72 +1997-07-18,8020.77,8057.23,7829.61,7890.46,589710000,7890.46 +1997-07-17,8038.88,8136.67,7910.67,8020.77,629250000,8020.77 +1997-07-16,7975.71,8108.10,7919.73,8038.88,647390000,8038.88 +1997-07-15,7922.98,8037.03,7843.78,7975.71,598370000,7975.71 +1997-07-14,7921.82,8001.26,7831.00,7922.98,485960000,7922.98 +1997-07-11,7886.76,7984.02,7837.68,7921.82,500050000,7921.82 +1997-07-10,7842.43,7953.94,7777.06,7886.76,551340000,7886.76 +1997-07-09,7962.31,8027.68,7775.48,7842.43,589110000,7842.43 +1997-07-08,7858.49,8000.08,7824.33,7962.31,526010000,7962.31 +1997-07-07,7895.81,7983.79,7805.34,7858.49,518780000,7858.49 +1997-07-03,7805.79,7952.35,7805.79,7895.81,374680000,7895.81 +1997-07-02,7722.33,7814.38,7648.14,7795.38,526970000,7795.38 +1997-07-01,7672.79,7801.04,7613.53,7722.33,544190000,7722.33 +1997-06-30,7687.72,7768.01,7571.46,7672.79,561540000,7672.79 +1997-06-27,7654.25,7793.12,7627.33,7687.72,472540000,7687.72 +1997-06-26,7689.98,7754.22,7581.64,7654.25,499780000,7654.25 +1997-06-25,7758.06,7832.48,7615.57,7689.98,603040000,7689.98 +1997-06-24,7787.01,7787.01,7602.90,7758.06,542650000,7758.06 +1997-06-23,7796.51,7816.87,7592.04,7604.26,492940000,7604.26 +1997-06-20,7777.06,7868.44,7733.64,7796.51,653110000,7796.51 +1997-06-19,7718.71,7834.51,7697.45,7777.06,536940000,7777.06 +1997-06-18,7760.78,7789.28,7651.30,7718.71,491740000,7718.71 +1997-06-17,7772.09,7834.97,7680.71,7760.78,543010000,7760.78 +1997-06-16,7782.04,7829.99,7712.37,7772.09,414280000,7772.09 +1997-06-13,7711.47,7829.08,7683.42,7782.04,575810000,7782.04 +1997-06-12,7575.83,7741.42,7569.66,7711.47,592730000,7711.47 +1997-06-11,7539.27,7633.96,7476.29,7575.83,513740000,7575.83 +1997-06-10,7478.50,7599.61,7459.12,7539.27,526980000,7539.27 +1997-06-09,7435.78,7548.52,7412.44,7478.50,465810000,7478.50 +1997-06-06,7305.29,7473.98,7290.26,7435.78,488940000,7435.78 +1997-06-05,7269.66,7376.97,7241.33,7305.29,452610000,7305.29 +1997-06-04,7312.15,7350.36,7214.29,7269.66,466690000,7269.66 +1997-06-03,7289.40,7379.98,7225.02,7312.15,527120000,7312.15 +1997-06-02,7331.04,7383.84,7244.76,7289.40,435950000,7289.40 +1997-05-30,7330.18,7385.99,7203.99,7331.04,537200000,7331.04 +1997-05-29,7357.23,7404.44,7272.24,7330.18,462600000,7330.18 +1997-05-28,7383.41,7430.20,7287.26,7357.23,487340000,7357.23 +1997-05-27,7345.91,7421.32,7276.68,7383.41,436150000,7383.41 +1997-05-23,7260.61,7382.58,7260.61,7345.91,417030000,7345.91 +1997-05-22,7290.69,7348.79,7210.33,7258.13,426940000,7258.13 +1997-05-21,7303.46,7385.47,7218.99,7290.69,540730000,7290.69 +1997-05-20,7228.88,7336.02,7123.38,7303.46,450850000,7303.46 +1997-05-19,7194.67,7274.21,7140.69,7228.88,345140000,7228.88 +1997-05-16,7332.31,7332.31,7192.61,7194.67,486780000,7194.67 +1997-05-15,7286.16,7363.63,7225.99,7333.55,458180000,7333.55 +1997-05-14,7274.21,7381.76,7238.35,7286.16,504960000,7286.16 +1997-05-13,7292.75,7350.85,7211.16,7274.21,489760000,7274.21 +1997-05-12,7169.53,7317.47,7156.35,7292.75,459370000,7292.75 +1997-05-09,7136.62,7235.76,7079.63,7169.53,455690000,7169.53 +1997-05-08,7085.65,7236.96,7040.30,7136.62,534120000,7136.62 +1997-05-07,7225.32,7246.60,7064.78,7085.65,500580000,7085.65 +1997-05-06,7213.68,7299.98,7139.43,7225.32,603680000,7225.32 +1997-05-05,7071.20,7220.91,7029.46,7213.68,549410000,7213.68 +1997-05-02,6976.48,7104.51,6935.54,7071.20,499770000,7071.20 +1997-05-01,7008.99,7041.90,6891.39,6976.48,460380000,6976.48 +1997-04-30,6962.03,7081.23,6912.26,7008.99,562830000,7008.99 +1997-04-29,6820.75,6998.15,6820.75,6962.03,547690000,6962.03 +1997-04-28,6738.87,6826.37,6691.51,6783.02,404470000,6783.02 +1997-04-25,6792.25,6826.77,6681.08,6738.87,414350000,6738.87 +1997-04-24,6812.72,6923.90,6742.89,6792.25,493640000,6792.25 +1997-04-23,6833.59,6902.23,6746.50,6812.72,489350000,6812.72 +1997-04-22,6660.21,6858.08,6628.50,6833.59,507500000,6833.59 +1997-04-21,6703.55,6768.17,6594.38,6660.21,397300000,6660.21 +1997-04-18,6658.60,6749.71,6616.46,6703.55,468940000,6703.55 +1997-04-17,6679.87,6750.91,6600.80,6658.60,503760000,6658.60 +1997-04-16,6587.16,6708.77,6506.08,6679.87,498820000,6679.87 +1997-04-15,6457.92,6626.09,6457.92,6587.16,507370000,6587.16 +1997-04-14,6391.69,6487.22,6315.84,6451.90,406800000,6451.90 +1997-04-11,6529.48,6529.48,6358.42,6391.69,444380000,6391.69 +1997-04-10,6563.84,6626.91,6495.48,6540.05,421790000,6540.05 +1997-04-09,6609.16,6662.41,6521.16,6563.84,451500000,6563.84 +1997-04-08,6555.91,6638.62,6491.71,6609.16,450790000,6609.16 +1997-04-07,6526.07,6639.00,6508.70,6555.91,453790000,6555.91 +1997-04-04,6477.35,6561.57,6376.90,6526.07,544580000,6526.07 +1997-04-03,6517.01,6540.43,6379.16,6477.35,498010000,6477.35 +1997-04-02,6611.05,6636.73,6476.60,6517.01,478210000,6517.01 +1997-04-01,6583.48,6667.70,6482.64,6611.05,515770000,6611.05 +1997-03-31,6740.59,6743.23,6532.49,6583.48,555880000,6583.48 +1997-03-27,6880.70,6918.47,6654.86,6740.59,476790000,6740.59 +1997-03-26,6876.17,6954.72,6811.21,6880.70,506670000,6880.70 +1997-03-25,6905.25,6984.94,6832.74,6876.17,487520000,6876.17 +1997-03-24,6804.79,6933.58,6746.63,6905.25,451970000,6905.25 +1997-03-21,6820.28,6890.52,6742.85,6804.79,544830000,6804.79 +1997-03-20,6877.68,6901.47,6765.14,6820.28,497480000,6820.28 +1997-03-19,6896.56,6944.15,6794.22,6877.68,539200000,6877.68 +1997-03-18,6955.48,6997.40,6841.05,6896.56,467490000,6896.56 +1997-03-17,6935.46,7004.20,6820.28,6955.48,495260000,6955.48 +1997-03-14,6878.89,6996.27,6851.19,6935.46,491540000,6935.46 +1997-03-13,7023.59,7023.59,6852.72,6878.89,507560000,6878.89 +1997-03-12,7085.16,7111.72,6988.96,7039.37,490200000,7039.37 +1997-03-11,7079.39,7158.28,7026.28,7085.16,493250000,7085.16 +1997-03-10,7000.89,7103.25,6970.10,7079.39,468780000,7079.39 +1997-03-07,6944.70,7047.07,6927.00,7000.89,508270000,7000.89 +1997-03-06,6945.85,7017.05,6896.60,6944.70,540310000,6944.70 +1997-03-05,6852.72,6966.64,6836.95,6945.85,532500000,6945.85 +1997-03-04,6918.92,6983.95,6814.63,6852.72,537890000,6852.72 +1997-03-03,6877.74,6957.01,6798.46,6918.92,437220000,6918.92 +1997-02-28,6925.07,6978.18,6820.78,6877.74,508280000,6877.74 +1997-02-27,6983.18,7028.59,6885.44,6925.07,467190000,6925.07 +1997-02-26,7037.83,7076.31,6878.12,6983.18,573920000,6983.18 +1997-02-25,7008.20,7099.79,6935.08,7037.83,527450000,7037.83 +1997-02-24,6931.62,7049.76,6868.50,7008.20,462450000,7008.20 +1997-02-21,6927.38,6984.72,6869.27,6931.62,478450000,6931.62 +1997-02-20,7020.13,7035.91,6890.82,6927.38,492220000,6927.38 +1997-02-19,7067.46,7112.87,6980.87,7020.13,519350000,7020.13 +1997-02-18,6988.96,7084.39,6946.62,7067.46,474110000,7067.46 +1997-02-14,7022.44,7074.77,6935.85,6988.96,491540000,6988.96 +1997-02-13,6961.63,7074.39,6924.30,7022.44,593710000,7022.44 +1997-02-12,6858.11,6976.64,6844.26,6961.63,563890000,6961.63 +1997-02-11,6806.54,6887.36,6756.90,6858.11,483090000,6858.11 +1997-02-10,6855.80,6908.14,6771.14,6806.54,471590000,6806.54 +1997-02-07,6773.06,6906.22,6747.28,6855.80,540910000,6855.80 +1997-02-06,6746.90,6821.17,6683.40,6773.06,519660000,6773.06 +1997-02-05,6833.48,6913.14,6704.56,6746.90,580520000,6746.90 +1997-02-04,6806.16,6859.65,6738.43,6833.48,506530000,6833.48 +1997-02-03,6813.09,6858.11,6733.04,6806.16,463600000,6806.16 +1997-01-31,6823.86,6912.37,6769.99,6813.09,578550000,6813.09 +1997-01-30,6740.74,6845.03,6719.96,6823.86,524160000,6823.86 +1997-01-29,6656.08,6766.91,6627.98,6740.74,498390000,6740.74 +1997-01-28,6660.69,6823.48,6612.20,6656.08,541580000,6656.08 +1997-01-27,6696.48,6748.82,6598.73,6660.69,445760000,6660.69 +1997-01-24,6755.75,6798.08,6629.91,6696.48,542920000,6696.48 +1997-01-23,6850.03,6953.55,6724.19,6755.75,685070000,6755.75 +1997-01-22,6883.90,6913.14,6801.16,6850.03,587300000,6850.03 +1997-01-21,6843.87,6934.69,6771.14,6883.90,571280000,6883.90 +1997-01-20,6833.10,6893.13,6777.30,6843.87,440470000,6843.87 +1997-01-17,6765.37,6863.88,6732.66,6833.10,534640000,6833.10 +1997-01-16,6726.88,6818.47,6688.40,6765.37,537290000,6765.37 +1997-01-15,6762.29,6800.77,6669.93,6726.88,524990000,6726.88 +1997-01-14,6709.18,6816.17,6689.94,6762.29,531600000,6762.29 +1997-01-13,6703.79,6773.45,6647.99,6709.18,445400000,6709.18 +1997-01-10,6625.67,6725.35,6530.62,6703.79,545860000,6703.79 +1997-01-09,6549.48,6677.24,6520.23,6625.67,555370000,6625.67 +1997-01-08,6600.66,6650.30,6509.84,6549.48,557510000,6549.48 +1997-01-07,6567.18,6621.82,6481.75,6600.66,538220000,6600.66 +1997-01-06,6544.09,6647.22,6508.30,6567.18,531350000,6567.18 +1997-01-03,6442.49,6586.42,6437.10,6544.09,452970000,6544.09 +1997-01-02,6448.27,6511.38,6318.96,6442.49,463230000,6442.49 +1996-12-31,6549.37,6580.90,6421.74,6448.27,399760000,6448.27 +1996-12-30,6560.91,6623.96,6518.23,6549.37,339060000,6549.37 +1996-12-27,6546.68,6607.81,6510.93,6560.91,253810000,6560.91 +1996-12-26,6522.85,6594.74,6495.94,6546.68,254630000,6546.68 +1996-12-24,6489.02,6546.68,6467.10,6522.85,165140000,6522.85 +1996-12-23,6484.40,6539.76,6428.27,6489.02,343280000,6489.02 +1996-12-20,6473.64,6597.43,6445.19,6484.40,654340000,6484.40 +1996-12-19,6352.15,6499.40,6352.15,6473.64,526410000,6473.64 +1996-12-18,6308.33,6399.06,6272.96,6346.77,500490000,6346.77 +1996-12-17,6268.35,6354.46,6206.83,6308.33,519840000,6308.33 +1996-12-16,6304.87,6388.68,6227.98,6268.35,447560000,6268.35 +1996-12-13,6303.71,6377.14,6227.59,6304.87,458540000,6304.87 +1996-12-12,6402.52,6465.57,6283.72,6303.71,492920000,6303.71 +1996-12-11,6457.88,6457.88,6317.94,6402.52,494210000,6402.52 +1996-12-10,6463.94,6545.56,6427.04,6473.25,446120000,6473.25 +1996-12-09,6381.94,6496.73,6375.98,6463.94,381570000,6463.94 +1996-12-06,6437.10,6441.20,6274.24,6381.94,500860000,6381.94 +1996-12-05,6422.94,6491.14,6363.31,6437.10,483710000,6437.10 +1996-12-04,6442.69,6482.20,6339.46,6422.94,498240000,6422.94 +1996-12-03,6521.70,6577.23,6422.94,6442.69,516160000,6442.69 +1996-12-02,6521.70,6553.01,6439.34,6521.70,412520000,6521.70 +1996-11-29,6499.34,6551.15,6490.40,6521.70,151550000,6521.70 +1996-11-27,6528.41,6566.43,6457.97,6499.34,377780000,6499.34 +1996-11-26,6547.79,6606.30,6475.49,6528.41,527380000,6528.41 +1996-11-25,6471.76,6565.68,6443.44,6547.79,475260000,6547.79 +1996-11-22,6418.47,6498.22,6402.44,6471.76,525210000,6471.76 +1996-11-21,6430.02,6463.56,6370.02,6418.47,464430000,6418.47 +1996-11-20,6397.60,6482.20,6370.02,6430.02,497900000,6430.02 +1996-11-19,6346.91,6428.16,6323.06,6397.60,461980000,6397.60 +1996-11-18,6348.03,6407.66,6297.34,6346.91,388520000,6346.91 +1996-11-15,6313.00,6414.37,6277.22,6348.03,529100000,6348.03 +1996-11-14,6274.24,6350.64,6232.50,6313.00,480350000,6313.00 +1996-11-13,6266.04,6317.10,6206.78,6274.24,429840000,6274.24 +1996-11-12,6255.60,6314.49,6199.70,6266.04,472940000,6266.04 +1996-11-11,6219.82,6292.87,6198.58,6255.60,353960000,6255.60 +1996-11-08,6206.04,6247.40,6151.62,6219.82,402320000,6219.82 +1996-11-07,6177.71,6238.83,6130.38,6206.04,502530000,6206.04 +1996-11-06,6081.18,6200.44,6060.69,6177.71,509600000,6177.71 +1996-11-05,6041.68,6125.53,6029.01,6081.18,492860000,6081.18 +1996-11-04,6021.93,6083.05,5981.30,6041.68,398790000,6041.68 +1996-11-01,6029.38,6082.67,5975.34,6021.93,465510000,6021.93 +1996-10-31,5993.23,6063.67,5955.59,6029.38,488500000,6029.38 +1996-10-30,6007.02,6055.84,5956.71,5993.23,437770000,5993.23 +1996-10-29,5972.73,6054.72,5938.82,6007.02,443890000,6007.02 +1996-10-28,6007.02,6063.67,5952.61,5972.73,383630000,5972.73 +1996-10-25,5992.48,6047.64,5954.47,6007.02,367640000,6007.02 +1996-10-24,6036.46,6080.07,5953.72,5992.48,418970000,5992.48 +1996-10-23,6061.80,6081.93,5965.65,6036.46,442170000,6036.46 +1996-10-22,6090.87,6114.73,6015.59,6061.80,410790000,6061.80 +1996-10-21,6094.23,6162.80,6027.89,6090.87,414630000,6090.87 +1996-10-18,6059.20,6119.57,6011.49,6094.23,473020000,6094.23 +1996-10-17,6020.81,6101.31,5994.72,6059.20,478550000,6059.20 +1996-10-16,6004.78,6056.21,5943.66,6020.81,441410000,6020.81 +1996-10-15,6010.00,6077.83,5951.12,6004.78,458980000,6004.78 +1996-10-14,5969.38,6043.91,5952.61,6010.00,322000000,6010.00 +1996-10-11,5921.67,5999.56,5912.36,5969.38,396050000,5969.38 +1996-10-10,5930.62,5956.71,5876.58,5921.67,394950000,5921.67 +1996-10-09,5966.77,5985.03,5892.23,5930.62,408450000,5930.62 +1996-10-08,5979.81,6032.36,5930.24,5966.77,435070000,5966.77 +1996-10-07,5992.86,6025.28,5945.15,5979.81,380750000,5979.81 +1996-10-04,5932.85,6023.79,5917.20,5992.86,463940000,5992.86 +1996-10-03,5933.97,5972.36,5887.76,5932.85,386500000,5932.85 +1996-10-02,5904.90,5966.02,5888.88,5933.97,440130000,5933.97 +1996-10-01,5882.17,5942.17,5833.72,5904.90,421550000,5904.90 +1996-09-30,5845.18,5934.32,5845.18,5882.17,394260000,5882.17 +1996-09-27,5868.85,5903.99,5819.65,5872.92,414760000,5872.92 +1996-09-26,5877.36,5928.04,5828.90,5868.85,500870000,5868.85 +1996-09-25,5874.03,5928.77,5827.42,5877.36,451710000,5877.36 +1996-09-24,5894.74,5952.08,5831.86,5874.03,460150000,5874.03 +1996-09-23,5888.46,5913.24,5820.39,5894.74,297760000,5894.74 +1996-09-20,5867.74,5925.82,5840.74,5888.46,519420000,5888.46 +1996-09-19,5877.36,5908.80,5818.17,5867.74,398580000,5867.74 +1996-09-18,5888.83,5919.90,5838.15,5877.36,396600000,5877.36 +1996-09-17,5889.20,5929.51,5830.38,5888.83,449850000,5888.83 +1996-09-16,5838.52,5920.64,5823.72,5889.20,430080000,5889.20 +1996-09-13,5786.73,5871.44,5786.73,5838.52,488360000,5838.52 +1996-09-12,5754.92,5815.59,5739.76,5771.94,398820000,5771.94 +1996-09-11,5727.18,5777.49,5696.85,5754.92,376880000,5754.92 +1996-09-10,5733.84,5767.87,5681.68,5727.18,372960000,5727.18 +1996-09-09,5662.08,5756.40,5662.08,5733.84,311530000,5733.84 +1996-09-06,5606.96,5696.48,5585.51,5659.86,348710000,5659.86 +1996-09-05,5656.90,5669.47,5592.53,5606.96,361430000,5606.96 +1996-09-04,5648.39,5682.05,5608.81,5656.90,351290000,5656.90 +1996-09-03,5616.21,5667.99,5550.37,5648.39,345740000,5648.39 +1996-08-30,5647.65,5659.86,5571.45,5616.21,258380000,5616.21 +1996-08-29,5712.38,5716.82,5615.47,5647.65,321120000,5647.65 +1996-08-28,5711.27,5747.89,5678.72,5712.38,296440000,5712.38 +1996-08-27,5693.89,5735.32,5670.58,5711.27,310520000,5711.27 +1996-08-26,5722.74,5742.71,5665.41,5693.89,281430000,5693.89 +1996-08-23,5733.47,5761.58,5679.09,5722.74,308010000,5722.74 +1996-08-22,5689.82,5761.95,5662.45,5733.47,354950000,5733.47 +1996-08-21,5721.26,5734.95,5648.76,5689.82,348820000,5689.82 +1996-08-20,5699.44,5747.52,5670.21,5721.26,334960000,5721.26 +1996-08-19,5689.45,5728.66,5664.30,5699.44,294080000,5699.44 +1996-08-16,5665.78,5722.74,5646.54,5689.45,337650000,5689.45 +1996-08-15,5666.88,5701.66,5633.22,5665.78,323950000,5665.78 +1996-08-14,5647.28,5695.00,5614.36,5666.88,343470000,5666.88 +1996-08-13,5618.06,5713.86,5618.06,5647.28,362470000,5647.28 +1996-08-12,5681.31,5746.04,5625.83,5704.98,312170000,5704.98 +1996-08-09,5713.49,5747.15,5654.31,5681.31,327280000,5681.31 +1996-08-08,5718.67,5746.41,5661.34,5713.49,334570000,5713.49 +1996-08-07,5696.11,5754.55,5659.12,5718.67,394340000,5718.67 +1996-08-06,5674.28,5716.45,5630.26,5696.11,347290000,5696.11 +1996-08-05,5679.83,5719.04,5639.14,5674.28,307240000,5674.28 +1996-08-02,5601.41,5703.51,5601.41,5679.83,442080000,5679.83 +1996-08-01,5528.91,5628.79,5507.83,5594.75,439110000,5594.75 +1996-07-31,5481.93,5558.13,5460.48,5528.91,403560000,5528.91 +1996-07-30,5434.59,5503.73,5403.52,5481.93,341090000,5481.93 +1996-07-29,5473.06,5497.47,5414.61,5434.59,281560000,5434.59 +1996-07-26,5422.01,5503.02,5397.97,5473.06,349900000,5473.06 +1996-07-25,5355.80,5469.36,5355.80,5422.01,405390000,5422.01 +1996-07-24,5346.55,5402.04,5244.83,5354.69,463030000,5354.69 +1996-07-23,5390.94,5447.90,5313.63,5346.55,421900000,5346.55 +1996-07-22,5426.82,5446.05,5346.92,5390.94,327300000,5390.94 +1996-07-19,5464.18,5490.44,5393.53,5426.82,408070000,5426.82 +1996-07-18,5376.88,5500.43,5352.10,5464.18,474460000,5464.18 +1996-07-17,5358.76,5465.29,5325.10,5376.88,513830000,5376.88 +1996-07-16,5349.51,5438.66,5170.11,5358.76,68290000,5358.76 +1996-07-15,5510.56,5527.93,5326.98,5349.51,419020000,5349.51 +1996-07-12,5520.54,5562.65,5455.16,5510.56,397790000,5510.56 +1996-07-11,5600.33,5600.33,5447.77,5520.54,520470000,5520.54 +1996-07-10,5581.86,5628.03,5515.00,5603.65,421350000,5603.65 +1996-07-09,5550.83,5622.49,5540.12,5581.86,379200000,5581.86 +1996-07-08,5588.14,5622.12,5519.80,5550.83,367560000,5550.83 +1996-07-05,5657.58,5657.58,5570.77,5588.14,181470000,5588.14 +1996-07-03,5720.38,5749.93,5656.47,5703.02,336260000,5703.02 +1996-07-02,5729.98,5769.88,5668.29,5720.38,388000000,5720.38 +1996-07-01,5654.63,5749.19,5637.26,5729.98,345750000,5729.98 +1996-06-28,5677.53,5724.44,5625.81,5654.63,470460000,5654.63 +1996-06-27,5682.70,5715.21,5616.21,5677.53,405580000,5677.53 +1996-06-26,5719.27,5739.22,5652.04,5682.70,386520000,5682.70 +1996-06-25,5717.79,5760.27,5668.66,5719.27,391900000,5719.27 +1996-06-24,5705.23,5770.61,5688.61,5717.79,333840000,5717.79 +1996-06-21,5659.43,5722.22,5639.11,5705.23,520340000,5705.23 +1996-06-20,5648.35,5709.30,5606.97,5659.43,441060000,5659.43 +1996-06-19,5628.03,5693.78,5600.70,5648.35,383610000,5648.35 +1996-06-18,5652.78,5683.44,5607.71,5628.03,373290000,5628.03 +1996-06-17,5649.45,5689.72,5614.36,5652.78,298410000,5652.78 +1996-06-14,5657.95,5687.13,5609.93,5649.45,390630000,5649.45 +1996-06-13,5668.29,5714.84,5622.86,5657.95,397620000,5657.95 +1996-06-12,5668.66,5725.55,5637.63,5668.29,397190000,5668.29 +1996-06-11,5687.87,5747.71,5637.63,5668.66,405390000,5668.66 +1996-06-10,5697.11,5727.03,5643.54,5687.87,337480000,5687.87 +1996-06-07,5667.19,5708.93,5559.69,5697.11,445710000,5697.11 +1996-06-06,5697.48,5750.67,5639.48,5667.19,464800000,5667.19 +1996-06-05,5665.71,5718.53,5631.35,5697.48,380360000,5697.48 +1996-06-04,5624.71,5697.84,5616.58,5665.71,386040000,5665.71 +1996-06-03,5643.18,5662.75,5587.40,5624.71,318470000,5624.71 +1996-05-31,5693.41,5712.62,5614.36,5643.18,351750000,5643.18 +1996-05-30,5673.83,5734.41,5625.07,5693.41,381960000,5693.41 +1996-05-29,5709.67,5743.65,5632.46,5673.83,346730000,5673.83 +1996-05-28,5762.86,5798.69,5680.48,5709.67,341480000,5709.67 +1996-05-24,5762.12,5815.68,5722.59,5762.86,329150000,5762.86 +1996-05-23,5778.00,5833.04,5704.12,5762.12,431850000,5762.12 +1996-05-22,5736.26,5803.49,5687.87,5778.00,423670000,5778.00 +1996-05-21,5748.82,5794.63,5698.21,5736.26,409610000,5736.26 +1996-05-20,5687.50,5778.74,5657.58,5748.82,385000000,5748.82 +1996-05-17,5635.05,5729.61,5631.35,5687.50,429140000,5687.50 +1996-05-16,5625.44,5677.53,5577.42,5635.05,392070000,5635.05 +1996-05-15,5624.71,5691.57,5590.72,5625.44,447790000,5625.44 +1996-05-14,5582.60,5663.12,5566.71,5624.71,460440000,5624.71 +1996-05-13,5518.14,5601.80,5495.42,5582.60,394180000,5582.60 +1996-05-10,5478.03,5559.68,5478.03,5518.14,428370000,5518.14 +1996-05-09,5474.06,5534.76,5419.87,5475.14,404310000,5475.14 +1996-05-08,5420.95,5486.34,5327.74,5474.06,495460000,5474.06 +1996-05-07,5464.31,5486.34,5392.05,5420.95,410770000,5420.95 +1996-05-06,5478.03,5528.97,5397.83,5464.31,375820000,5464.31 +1996-05-03,5498.27,5555.71,5439.74,5478.03,434010000,5478.03 +1996-05-02,5575.22,5578.11,5455.27,5498.27,442960000,5498.27 +1996-05-01,5569.08,5619.29,5523.56,5575.22,404620000,5575.22 +1996-04-30,5573.41,5606.29,5522.83,5569.08,393390000,5569.08 +1996-04-29,5567.99,5611.71,5515.25,5573.41,344030000,5573.41 +1996-04-26,5566.91,5618.57,5517.78,5567.99,402530000,5567.99 +1996-04-25,5553.90,5601.23,5490.68,5566.91,461120000,5566.91 +1996-04-24,5588.59,5619.29,5512.36,5553.90,494220000,5553.90 +1996-04-23,5564.74,5621.82,5534.76,5588.59,452690000,5588.59 +1996-04-22,5535.48,5610.62,5516.33,5564.74,397460000,5564.74 +1996-04-19,5551.74,5593.64,5504.41,5535.48,435690000,5535.48 +1996-04-18,5549.93,5600.51,5493.93,5551.74,415150000,5551.74 +1996-04-17,5620.02,5653.25,5500.07,5549.93,465200000,5549.93 +1996-04-16,5592.92,5656.14,5554.99,5620.02,453310000,5620.02 +1996-04-15,5532.59,5614.60,5517.41,5592.92,346370000,5592.92 +1996-04-12,5487.07,5577.39,5445.16,5532.59,413270000,5532.59 +1996-04-11,5485.98,5540.17,5382.66,5487.07,519710000,5487.07 +1996-04-10,5560.41,5601.23,5452.02,5485.98,475150000,5485.98 +1996-04-09,5594.37,5644.58,5530.06,5560.41,426790000,5560.41 +1996-04-08,5624.71,5624.71,5518.14,5594.37,411810000,5594.37 +1996-04-04,5689.74,5737.07,5633.02,5682.88,383400000,5682.88 +1996-04-03,5671.68,5712.50,5619.29,5689.74,386620000,5689.74 +1996-04-02,5637.72,5706.72,5597.26,5671.68,406640000,5671.68 +1996-04-01,5587.14,5670.23,5562.57,5637.72,392120000,5637.72 +1996-03-29,5630.85,5682.88,5550.29,5587.14,413510000,5587.14 +1996-03-28,5626.88,5664.45,5564.74,5630.85,370750000,5630.85 +1996-03-27,5670.60,5703.47,5596.53,5626.88,406280000,5626.88 +1996-03-26,5643.86,5701.30,5595.81,5670.60,400090000,5670.60 +1996-03-25,5636.64,5712.14,5592.92,5643.86,336700000,5643.86 +1996-03-22,5626.88,5681.07,5589.67,5636.64,329390000,5636.64 +1996-03-21,5655.42,5696.25,5590.03,5626.88,367180000,5626.88 +1996-03-20,5669.51,5724.06,5590.39,5655.42,409780000,5655.42 +1996-03-19,5683.60,5755.86,5619.66,5669.51,438300000,5669.51 +1996-03-18,5584.97,5706.00,5573.41,5683.60,437100000,5683.60 +1996-03-15,5586.06,5628.69,5523.56,5584.97,529970000,5584.97 +1996-03-14,5568.72,5662.29,5536.56,5586.06,492630000,5586.06 +1996-03-13,5583.89,5626.52,5513.80,5568.72,413030000,5568.72 +1996-03-12,5581.00,5622.55,5464.67,5583.89,454980000,5583.89 +1996-03-11,5470.45,5605.20,5425.29,5581.00,449500000,5581.00 +1996-03-08,5612.79,5612.79,5395.30,5470.45,546550000,5470.45 +1996-03-07,5629.77,5667.34,5572.33,5641.69,425790000,5641.69 +1996-03-06,5642.42,5700.22,5585.70,5629.77,428220000,5629.77 +1996-03-05,5600.15,5655.78,5558.24,5642.42,445700000,5642.42 +1996-03-04,5536.56,5646.39,5511.99,5600.15,417270000,5600.15 +1996-03-01,5485.62,5573.41,5424.20,5536.56,471480000,5536.56 +1996-02-29,5506.21,5562.21,5440.46,5485.62,453170000,5485.62 +1996-02-28,5549.21,5625.07,5487.07,5506.21,447790000,5506.21 +1996-02-27,5565.10,5597.26,5478.76,5549.21,431340000,5549.21 +1996-02-26,5630.49,5647.83,5530.42,5565.10,399330000,5565.10 +1996-02-23,5608.46,5693.36,5546.32,5630.49,443130000,5630.49 +1996-02-22,5515.97,5638.44,5511.63,5608.46,494750000,5608.46 +1996-02-21,5458.53,5548.12,5440.82,5515.97,431220000,5515.97 +1996-02-20,5503.32,5515.97,5393.50,5458.53,395910000,5458.53 +1996-02-16,5551.37,5563.30,5470.45,5503.32,445570000,5503.32 +1996-02-15,5579.55,5623.27,5514.88,5551.37,415320000,5551.37 +1996-02-14,5601.23,5633.02,5534.39,5579.55,421790000,5579.55 +1996-02-13,5600.15,5644.94,5530.06,5601.23,441540000,5601.23 +1996-02-12,5541.62,5643.50,5531.14,5600.15,401490000,5600.15 +1996-02-09,5539.45,5603.76,5474.06,5541.62,477640000,5541.62 +1996-02-08,5492.12,5559.68,5441.55,5539.45,474970000,5539.45 +1996-02-07,5459.61,5520.30,5423.84,5492.12,462730000,5492.12 +1996-02-06,5407.59,5483.82,5371.82,5459.61,465940000,5459.61 +1996-02-05,5373.99,5433.96,5319.43,5407.59,377760000,5407.59 +1996-02-02,5405.06,5442.99,5338.94,5373.99,420020000,5373.99 +1996-02-01,5395.30,5438.29,5335.69,5405.06,461610000,5405.06 +1996-01-31,5381.21,5433.24,5314.38,5395.30,472210000,5395.30 +1996-01-30,5304.98,5409.75,5288.73,5381.21,464350000,5381.21 +1996-01-29,5271.75,5338.22,5246.82,5304.98,363330000,5304.98 +1996-01-26,5216.83,5293.78,5187.21,5271.75,385700000,5271.75 +1996-01-25,5242.84,5289.45,5173.84,5216.83,453270000,5216.83 +1996-01-24,5192.27,5297.04,5176.73,5242.84,476380000,5242.84 +1996-01-23,5219.36,5241.76,5141.33,5192.27,416910000,5192.27 +1996-01-22,5184.68,5254.77,5133.02,5219.36,398040000,5219.36 +1996-01-19,5124.35,5214.66,5087.49,5184.68,497720000,5184.68 +1996-01-18,5066.90,5166.98,5032.58,5124.35,450410000,5124.35 +1996-01-17,5088.22,5133.38,5028.61,5066.90,458720000,5066.90 +1996-01-16,5043.78,5116.04,5000.79,5088.22,425220000,5088.22 +1996-01-15,5061.12,5099.42,5012.71,5043.78,306180000,5043.78 +1996-01-12,5065.10,5114.23,5000.07,5061.12,383400000,5061.12 +1996-01-11,5032.94,5099.78,5002.96,5065.10,408800000,5065.10 +1996-01-10,5130.13,5151.69,5000.07,5032.94,496830000,5032.94 +1996-01-09,5197.70,5239.23,5100.86,5130.13,417400000,5130.13 +1996-01-08,5181.43,5207.08,5179.98,5197.70,130360000,5197.70 +1996-01-05,5173.84,5217.55,5107.00,5181.43,437110000,5181.43 +1996-01-04,5194.07,5259.46,5114.23,5173.84,512580000,5173.84 +1996-01-03,5177.45,5252.60,5143.13,5194.07,468950000,5194.07 +1996-01-02,5117.12,5208.16,5087.13,5177.45,364180000,5177.45 +1995-12-29,5095.80,5144.58,5063.65,5117.12,319680000,5117.12 +1995-12-28,5105.92,5132.65,5062.21,5095.80,288470000,5095.80 +1995-12-27,5110.26,5146.74,5077.74,5105.92,252270000,5105.92 +1995-12-26,5097.97,5149.27,5072.32,5110.26,217030000,5110.26 +1995-12-22,5096.53,5146.74,5064.01,5097.97,289600000,5097.97 +1995-12-21,5059.32,5135.91,5031.50,5096.53,415780000,5096.53 +1995-12-20,5109.89,5173.48,5047.39,5059.32,437650000,5059.32 +1995-12-19,5075.21,5146.02,5016.68,5109.89,18440000,5109.89 +1995-12-18,5159.39,5159.39,5042.70,5075.21,426230000,5075.21 +1995-12-15,5182.15,5217.55,5135.54,5176.73,636780000,5176.73 +1995-12-14,5216.47,5266.69,5148.55,5182.15,461960000,5182.15 +1995-12-13,5174.92,5246.10,5144.22,5216.47,414680000,5216.47 +1995-12-12,5184.32,5226.23,5132.29,5174.92,349410000,5174.92 +1995-12-11,5156.86,5225.50,5122.18,5184.32,342050000,5184.32 +1995-12-08,5159.39,5200.21,5115.31,5156.86,327500000,5156.86 +1995-12-07,5199.13,5211.05,5124.35,5159.39,379260000,5159.39 +1995-12-06,5177.45,5234.53,5147.47,5199.13,417750000,5199.13 +1995-12-05,5139.52,5216.83,5108.45,5177.45,434000000,5177.45 +1995-12-04,5087.13,5157.58,5057.87,5139.52,405080000,5139.52 +1995-12-01,5074.49,5133.02,5038.36,5087.13,392650000,5087.13 +1995-11-30,5105.56,5143.13,5033.17,5074.49,439470000,5074.49 +1995-11-29,5078.10,5126.51,5047.03,5105.56,398230000,5105.56 +1995-11-28,5070.88,5105.56,5006.21,5078.10,408860000,5078.10 +1995-11-27,5048.84,5114.23,5034.03,5070.88,356180000,5070.88 +1995-11-24,5041.61,5072.68,5028.61,5048.84,125870000,5048.84 +1995-11-22,5023.55,5096.17,4982.72,5041.61,404900000,5041.61 +1995-11-21,4983.09,5050.28,4948.04,5023.55,405860000,5023.55 +1995-11-20,4989.95,5030.77,4946.60,4983.09,333110000,4983.09 +1995-11-17,4969.36,5022.10,4934.31,4989.95,429990000,4989.95 +1995-11-16,4922.75,5003.68,4902.16,4969.36,418430000,4969.36 +1995-11-15,4871.81,4939.73,4835.69,4922.75,373090000,4922.75 +1995-11-14,4872.90,4923.11,4826.29,4871.81,353650000,4871.81 +1995-11-13,4870.37,4909.75,4821.23,4872.90,292390000,4872.90 +1995-11-10,4864.23,4896.02,4820.51,4870.37,297950000,4870.37 +1995-11-09,4852.67,4902.52,4811.84,4864.23,379500000,4864.23 +1995-11-08,4797.03,4877.59,4775.71,4852.67,359770000,4852.67 +1995-11-07,4814.01,4839.30,4770.66,4797.03,365720000,4797.03 +1995-11-06,4825.57,4862.78,4779.33,4814.01,309090000,4814.01 +1995-11-03,4808.59,4858.81,4774.63,4825.57,344360000,4825.57 +1995-11-02,4766.68,4833.16,4745.00,4808.59,396150000,4808.59 +1995-11-01,4755.48,4801.73,4719.72,4766.68,377930000,4766.68 +1995-10-31,4756.57,4821.96,4735.97,4755.48,377350000,4755.48 +1995-10-30,4741.75,4798.84,4716.46,4756.57,318840000,4756.57 +1995-10-27,4703.82,4766.68,4653.24,4741.75,378820000,4741.75 +1995-10-26,4753.68,4777.88,4655.05,4703.82,464190000,4703.82 +1995-10-25,4783.66,4824.49,4708.88,4753.68,433570000,4753.68 +1995-10-24,4755.48,4819.07,4730.92,4783.66,415400000,4783.66 +1995-10-23,4794.86,4805.70,4724.41,4755.48,329720000,4755.48 +1995-10-20,4802.45,4836.41,4758.37,4794.86,388140000,4794.86 +1995-10-19,4777.52,4830.27,4744.28,4802.45,406620000,4802.45 +1995-10-18,4795.95,4837.49,4747.53,4777.52,411270000,4777.52 +1995-10-17,4784.38,4831.35,4747.90,4795.95,352940000,4795.95 +1995-10-16,4793.78,4823.04,4751.51,4784.38,299520000,4784.38 +1995-10-13,4764.88,4845.08,4749.70,4793.78,373970000,4793.78 +1995-10-12,4735.25,4790.16,4709.24,4764.88,343930000,4764.88 +1995-10-11,4720.80,4773.91,4686.43,4735.25,343060000,4735.25 +1995-10-10,4726.22,4745.73,4638.43,4720.80,412670000,4720.80 +1995-10-09,4769.21,4781.13,4691.54,4726.22,275280000,4726.22 +1995-10-06,4762.71,4805.70,4731.64,4769.21,314170000,4769.21 +1995-10-05,4740.67,4794.86,4705.63,4762.71,367410000,4762.71 +1995-10-04,4749.70,4787.27,4689.01,4740.67,339350000,4740.67 +1995-10-03,4761.26,4791.61,4702.74,4749.70,385890000,4749.70 +1995-10-02,4789.08,4817.98,4732.72,4761.26,304990000,4761.26 +1995-09-29,4787.64,4834.96,4757.65,4789.08,337670000,4789.08 +1995-09-28,4762.35,4810.03,4731.64,4787.64,367610000,4787.64 +1995-09-27,4765.60,4790.16,4692.98,4762.35,410970000,4762.35 +1995-09-26,4769.93,4816.54,4738.86,4765.60,362550000,4765.60 +1995-09-25,4764.15,4804.62,4728.02,4769.93,273110000,4769.93 +1995-09-22,4767.40,4789.44,4706.35,4764.15,370750000,4764.15 +1995-09-21,4792.69,4820.15,4728.75,4767.40,367060000,4767.40 +1995-09-20,4767.04,4828.46,4746.45,4792.69,402530000,4792.69 +1995-09-19,4780.41,4798.11,4734.53,4767.04,371080000,4767.04 +1995-09-18,4797.57,4814.01,4729.47,4780.41,328630000,4780.41 +1995-09-15,4801.80,4839.48,4762.35,4797.57,459370000,4797.57 +1995-09-14,4765.52,4830.32,4731.36,4801.80,382860000,4801.80 +1995-09-13,4747.21,4801.09,4697.55,4765.52,381450000,4765.52 +1995-09-12,4704.94,4762.35,4689.45,4747.21,342580000,4747.21 +1995-09-11,4700.72,4744.04,4672.54,4704.94,296820000,4704.94 +1995-09-08,4669.72,4722.91,4648.59,4700.72,317260000,4700.72 +1995-09-07,4683.81,4710.58,4640.14,4669.72,321710000,4669.72 +1995-09-06,4670.08,4716.21,4648.95,4683.81,369510000,4683.81 +1995-09-05,4647.54,4697.90,4625.70,4670.08,332660000,4670.08 +1995-09-01,4610.56,4672.19,4594.71,4647.54,255710000,4647.54 +1995-08-31,4604.57,4634.51,4582.38,4610.56,300890000,4610.56 +1995-08-30,4608.44,4639.79,4582.38,4604.57,329780000,4604.57 +1995-08-29,4594.00,4625.35,4554.21,4608.44,311290000,4608.44 +1995-08-28,4601.40,4632.39,4566.53,4594.00,267860000,4594.00 +1995-08-25,4580.62,4629.93,4569.70,4601.40,255990000,4601.40 +1995-08-24,4584.85,4618.30,4552.80,4580.62,299200000,4580.62 +1995-08-23,4620.42,4636.27,4571.81,4584.85,291380000,4584.85 +1995-08-22,4614.78,4646.13,4580.62,4620.42,290350000,4620.42 +1995-08-21,4617.60,4676.42,4593.65,4614.78,303200000,4614.78 +1995-08-18,4630.63,4665.15,4597.88,4617.60,312030000,4617.60 +1995-08-17,4639.08,4659.16,4587.66,4630.63,354460000,4630.63 +1995-08-16,4640.84,4673.60,4593.30,4639.08,390070000,4639.08 +1995-08-15,4659.86,4672.89,4602.10,4640.84,330040000,4640.84 +1995-08-14,4618.30,4677.12,4601.75,4659.86,263750000,4659.86 +1995-08-11,4643.66,4659.51,4584.85,4618.30,267850000,4618.30 +1995-08-10,4671.49,4698.96,4621.47,4643.66,306660000,4643.66 +1995-08-09,4693.32,4712.34,4649.30,4671.49,303390000,4671.49 +1995-08-08,4693.32,4722.55,4654.23,4693.32,305150000,4693.32 +1995-08-07,4683.46,4727.84,4667.26,4693.32,276040000,4693.32 +1995-08-04,4701.42,4728.54,4660.57,4683.46,314730000,4683.46 +1995-08-03,4690.15,4720.44,4632.04,4701.42,353110000,4701.42 +1995-08-02,4700.37,4772.56,4667.96,4690.15,374310000,4690.15 +1995-08-01,4708.47,4742.98,4648.59,4700.37,334770000,4700.37 +1995-07-31,4715.51,4753.55,4671.13,4708.47,291950000,4708.47 +1995-07-28,4732.77,4762.70,4686.28,4715.51,311580000,4715.51 +1995-07-27,4707.06,4767.99,4691.56,4732.77,356570000,4732.77 +1995-07-26,4714.45,4750.73,4665.15,4707.06,393460000,4707.06 +1995-07-25,4668.67,4743.69,4651.76,4714.45,373210000,4714.45 +1995-07-24,4641.55,4701.42,4620.42,4668.67,315170000,4668.67 +1995-07-21,4641.55,4676.06,4596.82,4641.55,427770000,4641.55 +1995-07-20,4628.87,4684.52,4578.51,4641.55,383380000,4641.55 +1995-07-19,4686.28,4698.60,4530.26,4628.87,489850000,4628.87 +1995-07-18,4734.53,4734.53,4648.24,4686.28,372230000,4686.28 +1995-07-17,4708.82,4767.63,4681.35,4736.29,322540000,4736.29 +1995-07-14,4727.48,4736.99,4664.79,4708.82,312930000,4708.82 +1995-07-13,4727.29,4766.58,4676.06,4727.48,387470000,4727.48 +1995-07-12,4680.60,4747.00,4654.66,4727.29,416000000,4727.29 +1995-07-11,4702.39,4724.52,4647.74,4680.60,376770000,4680.60 +1995-07-10,4702.73,4747.69,4670.91,4702.39,409700000,4702.39 +1995-07-07,4664.00,4740.77,4628.38,4702.73,466540000,4702.73 +1995-07-06,4615.23,4681.98,4587.91,4664.00,420470000,4664.00 +1995-07-05,4585.15,4652.24,4561.63,4615.23,357810000,4615.23 +1995-07-03,4556.10,4594.83,4536.04,4585.15,117870000,4585.15 +1995-06-30,4550.56,4606.24,4513.90,4556.10,311320000,4556.10 +1995-06-29,4556.79,4592.76,4510.45,4550.56,313060000,4550.56 +1995-06-28,4542.61,4587.22,4512.87,4556.79,368060000,4556.79 +1995-06-27,4551.25,4592.41,4511.48,4542.61,346950000,4542.61 +1995-06-26,4585.84,4600.02,4536.38,4551.25,296720000,4551.25 +1995-06-23,4589.64,4609.70,4549.18,4585.84,321530000,4585.84 +1995-06-22,4547.10,4614.20,4535.35,4589.64,420950000,4589.64 +1995-06-21,4550.56,4583.07,4517.02,4547.10,398210000,4547.10 +1995-06-20,4553.68,4587.22,4497.99,4550.56,382290000,4550.56 +1995-06-19,4510.79,4577.19,4498.69,4553.68,322620000,4553.68 +1995-06-16,4496.27,4533.96,4482.43,4510.79,442740000,4510.79 +1995-06-15,4491.08,4527.74,4466.87,4496.27,334640000,4496.27 +1995-06-14,4484.51,4510.79,4449.23,4491.08,330750000,4491.08 +1995-06-13,4446.46,4504.91,4440.24,4484.51,339620000,4484.51 +1995-06-12,4423.99,4482.09,4415.69,4446.46,287830000,4446.46 +1995-06-09,4458.57,4466.87,4394.59,4423.99,328960000,4423.99 +1995-06-08,4462.03,4492.12,4431.59,4458.57,289880000,4458.57 +1995-06-07,4485.20,4497.65,4432.29,4462.03,327790000,4462.03 +1995-06-06,4476.55,4520.47,4446.46,4485.20,340470000,4485.20 +1995-06-05,4444.39,4510.45,4417.76,4476.55,337520000,4476.55 +1995-06-02,4472.75,4496.27,4406.35,4444.39,366000000,4444.39 +1995-06-01,4465.14,4499.72,4421.56,4472.75,345890000,4472.75 +1995-05-31,4378.68,4467.91,4360.70,4465.14,358160000,4465.14 +1995-05-30,4369.00,4412.92,4334.41,4378.68,283020000,4378.68 +1995-05-26,4412.23,4423.64,4338.91,4369.00,290730000,4369.00 +1995-05-25,4427.44,4451.31,4375.91,4412.23,341820000,4412.23 +1995-05-24,4436.44,4480.70,4390.78,4438.16,391750000,4438.16 +1995-05-23,4395.63,4451.65,4372.46,4436.44,362690000,4436.44 +1995-05-22,4341.33,4416.03,4337.87,4395.63,285600000,4395.63 +1995-05-19,4340.64,4368.65,4287.38,4341.33,354010000,4341.33 +1995-05-18,4422.60,4426.41,4330.95,4340.64,351850000,4340.64 +1995-05-17,4435.05,4452.69,4386.63,4422.60,347930000,4422.60 +1995-05-16,4437.47,4464.10,4408.08,4435.05,366180000,4435.05 +1995-05-15,4430.56,4468.94,4398.74,4437.47,316240000,4437.47 +1995-05-12,4411.19,4463.07,4371.07,4430.56,361000000,4430.56 +1995-05-11,4404.62,4446.12,4365.19,4411.19,339900000,4411.19 +1995-05-10,4390.78,4440.24,4347.55,4404.62,381990000,4404.62 +1995-05-09,4383.87,4421.22,4360.00,4390.78,361430000,4390.78 +1995-05-08,4343.40,4407.04,4316.43,4383.87,291810000,4383.87 +1995-05-05,4359.66,4389.75,4310.55,4343.40,342380000,4343.40 +1995-05-04,4373.15,4426.41,4329.92,4359.66,434920000,4359.66 +1995-05-03,4328.88,4392.51,4312.28,4373.15,392290000,4373.15 +1995-05-02,4316.08,4348.25,4288.42,4328.88,300660000,4328.88 +1995-05-01,4321.27,4352.74,4278.73,4316.08,296830000,4316.08 +1995-04-28,4314.70,4348.94,4270.78,4321.27,320270000,4321.27 +1995-04-27,4299.83,4335.10,4269.05,4314.70,350850000,4314.70 +1995-04-26,4300.17,4324.73,4267.32,4299.83,350790000,4299.83 +1995-04-25,4303.98,4337.18,4267.32,4300.17,351790000,4300.17 +1995-04-24,4270.09,4328.88,4239.65,4303.98,325760000,4303.98 +1995-04-21,4230.66,4296.37,4214.41,4270.09,403210000,4270.09 +1995-04-20,4207.49,4263.86,4186.39,4230.66,368440000,4230.66 +1995-04-19,4179.13,4232.39,4143.51,4207.49,377520000,4207.49 +1995-04-18,4195.38,4221.67,4152.15,4179.13,344680000,4179.13 +1995-04-17,4208.18,4260.06,4174.63,4195.38,333930000,4195.38 +1995-04-13,4197.81,4243.46,4173.94,4208.18,301510000,4208.18 +1995-04-12,4187.08,4221.67,4163.57,4197.81,327880000,4197.81 +1995-04-11,4198.15,4229.97,4168.06,4187.08,309710000,4187.08 +1995-04-10,4192.62,4219.94,4163.91,4198.15,260980000,4198.15 +1995-04-07,4205.41,4226.86,4154.23,4192.62,314750000,4192.62 +1995-04-06,4200.57,4239.31,4179.13,4205.41,320460000,4205.41 +1995-04-05,4201.61,4229.62,4166.33,4200.57,315170000,4200.57 +1995-04-04,4168.41,4220.98,4154.23,4201.61,330550000,4201.61 +1995-04-03,4157.69,4202.30,4129.68,4168.41,287380000,4168.41 +1995-03-31,4172.56,4194.00,4100.28,4157.69,352940000,4157.69 +1995-03-30,4160.80,4213.37,4128.29,4172.56,362020000,4172.56 +1995-03-29,4151.81,4213.71,4121.72,4160.80,385910000,4160.80 +1995-03-28,4157.34,4176.02,4120.68,4151.81,320360000,4151.81 +1995-03-27,4138.67,4177.40,4113.08,4157.34,296160000,4157.34 +1995-03-24,4087.83,4155.27,4087.14,4138.67,358370000,4138.67 +1995-03-23,4082.99,4107.89,4046.33,4087.83,318490000,4087.83 +1995-03-22,4072.61,4107.54,4039.07,4082.99,313120000,4082.99 +1995-03-21,4083.68,4122.41,4046.67,4072.61,367110000,4072.61 +1995-03-20,4073.65,4115.15,4051.17,4083.68,301720000,4083.68 +1995-03-17,4069.15,4101.66,4044.94,4073.65,415810000,4073.65 +1995-03-16,4038.37,4095.78,4021.77,4069.15,336330000,4069.15 +1995-03-15,4048.75,4070.19,4008.63,4038.37,309540000,4038.37 +1995-03-14,4025.23,4087.14,4014.86,4048.75,346140000,4048.75 +1995-03-13,4035.61,4060.85,3999.29,4025.23,275280000,4025.23 +1995-03-10,3983.39,4054.97,3978.20,4035.61,383000000,4035.61 +1995-03-09,3979.23,4011.40,3953.99,3983.39,319100000,3983.39 +1995-03-08,3962.63,4002.41,3944.65,3979.23,349700000,3979.23 +1995-03-07,3997.56,4009.67,3935.31,3962.63,355550000,3962.63 +1995-03-06,3989.61,4015.89,3944.31,3997.56,298850000,3997.56 +1995-03-03,3979.93,4004.83,3946.03,3989.61,330840000,3989.61 +1995-03-02,3994.80,4009.67,3947.07,3979.93,329430000,3979.93 +1995-03-01,4011.05,4033.19,3960.56,3994.80,362590000,3994.80 +1995-02-28,3988.57,4021.43,3967.48,4011.05,317120000,4011.05 +1995-02-27,4011.74,4033.19,3966.78,3988.57,285790000,3988.57 +1995-02-24,4003.33,4033.61,3974.06,4011.74,302850000,4011.74 +1995-02-23,3979.45,4034.62,3979.45,4003.33,394100000,4003.33 +1995-02-22,3963.97,4002.32,3944.46,3973.05,339140000,3973.05 +1995-02-21,3953.54,3989.88,3930.66,3963.97,308060000,3963.97 +1995-02-17,3987.52,4001.99,3937.05,3953.54,350560000,3953.54 +1995-02-16,3986.17,4011.07,3948.16,3987.52,360990000,3987.52 +1995-02-15,3958.25,4019.15,3937.73,3986.17,377940000,3986.17 +1995-02-14,3954.21,3984.83,3930.66,3958.25,300720000,3958.25 +1995-02-13,3939.07,3974.74,3920.57,3954.21,256210000,3954.21 +1995-02-10,3932.68,3962.96,3908.46,3939.07,295550000,3939.07 +1995-02-09,3935.37,3967.33,3904.76,3932.68,325570000,3932.68 +1995-02-08,3937.39,3967.67,3909.13,3935.37,317910000,3935.37 +1995-02-07,3937.73,3960.27,3907.45,3937.39,317110000,3937.39 +1995-02-06,3928.64,3964.31,3900.04,3937.73,325660000,3937.73 +1995-02-03,3876.16,3959.60,3876.16,3928.64,440950000,3928.64 +1995-02-02,3847.56,3884.23,3828.38,3870.77,322030000,3870.77 +1995-02-01,3843.86,3886.25,3809.21,3847.56,395300000,3847.56 +1995-01-31,3832.08,3872.12,3809.54,3843.86,411570000,3843.86 +1995-01-30,3857.99,3881.20,3794.40,3832.08,318530000,3832.08 +1995-01-27,3870.44,3914.18,3827.37,3857.99,339490000,3857.99 +1995-01-26,3871.45,3903.41,3839.15,3870.44,304650000,3870.44 +1995-01-25,3862.70,3908.79,3832.08,3871.45,342240000,3871.45 +1995-01-24,3867.41,3898.36,3840.16,3862.70,315410000,3862.70 +1995-01-23,3869.43,3885.58,3815.26,3867.41,325810000,3867.41 +1995-01-20,3882.21,3898.70,3826.70,3869.43,376870000,3869.43 +1995-01-19,3928.98,3929.99,3866.74,3882.21,297220000,3882.21 +1995-01-18,3930.66,3950.85,3889.95,3928.98,343100000,3928.98 +1995-01-17,3932.34,3953.88,3895.33,3930.66,330890000,3930.66 +1995-01-16,3908.46,3955.56,3889.95,3932.34,315800000,3932.34 +1995-01-13,3859.00,3924.27,3852.61,3908.46,336740000,3908.46 +1995-01-12,3862.03,3886.59,3831.41,3859.00,313040000,3859.00 +1995-01-11,3866.74,3899.71,3824.68,3862.03,346310000,3862.03 +1995-01-10,3861.35,3912.49,3844.87,3866.74,352440000,3866.74 +1995-01-09,3867.41,3889.28,3834.44,3861.35,278710000,3861.35 +1995-01-06,3850.92,3902.40,3823.67,3867.41,308070000,3867.41 +1995-01-05,3857.65,3876.83,3825.35,3850.92,309140000,3850.92 +1995-01-04,3838.48,3876.83,3815.26,3857.65,319510000,3857.65 +1995-01-03,3834.44,3864.72,3805.50,3838.48,262450000,3838.48 +1994-12-30,3833.43,3874.48,3812.91,3834.44,256260000,3834.44 +1994-12-29,3839.49,3867.41,3812.91,3833.43,250650000,3833.43 +1994-12-28,3861.69,3871.45,3816.94,3839.49,246260000,3839.49 +1994-12-27,3833.43,3882.21,3832.08,3861.69,211180000,3861.69 +1994-12-23,3814.92,3860.01,3808.53,3833.43,196540000,3833.43 +1994-12-22,3801.80,3850.59,3780.61,3814.92,339670000,3814.92 +1994-12-21,3767.15,3836.46,3761.77,3801.80,378790000,3801.80 +1994-12-20,3790.70,3807.19,3752.35,3767.15,325510000,3767.15 +1994-12-19,3807.19,3815.26,3764.46,3790.70,271850000,3790.70 +1994-12-16,3765.47,3817.95,3758.07,3807.19,481860000,3807.19 +1994-12-15,3746.29,3794.07,3729.13,3765.47,332790000,3765.47 +1994-12-14,3715.34,3772.20,3700.53,3746.29,355000000,3746.29 +1994-12-13,3718.37,3749.32,3690.78,3715.34,307110000,3715.34 +1994-12-12,3691.11,3734.52,3667.90,3718.37,285730000,3718.37 +1994-12-09,3685.73,3713.32,3638.97,3691.11,336440000,3691.11 +1994-12-08,3735.52,3757.39,3670.25,3685.73,362280000,3685.73 +1994-12-07,3745.95,3758.07,3700.87,3735.52,283490000,3735.52 +1994-12-06,3741.92,3762.10,3703.56,3745.95,298890000,3745.95 +1994-12-05,3745.62,3779.93,3715.67,3741.92,258480000,3741.92 +1994-12-02,3700.87,3755.04,3680.68,3745.62,284740000,3745.62 +1994-12-01,3739.23,3755.37,3680.68,3700.87,285920000,3700.87 +1994-11-30,3738.55,3783.30,3718.37,3739.23,300800000,3739.23 +1994-11-29,3739.56,3755.04,3703.90,3738.55,286580000,3738.55 +1994-11-28,3708.27,3759.41,3693.13,3739.56,265020000,3739.56 +1994-11-25,3675.97,3722.40,3675.97,3708.27,118290000,3708.27 +1994-11-23,3677.99,3704.91,3612.05,3674.63,430730000,3674.63 +1994-11-22,3769.51,3787.34,3669.58,3677.99,387270000,3677.99 +1994-11-21,3815.26,3845.20,3758.74,3769.51,293030000,3769.51 +1994-11-18,3828.05,3844.87,3773.21,3815.26,356730000,3815.26 +1994-11-17,3845.20,3868.08,3797.77,3828.05,323190000,3828.05 +1994-11-16,3826.36,3864.38,3803.82,3845.20,296980000,3845.20 +1994-11-15,3829.73,3871.45,3794.40,3826.36,336330000,3826.36 +1994-11-14,3801.47,3849.91,3795.07,3829.73,260380000,3829.73 +1994-11-11,3821.99,3830.06,3779.93,3801.47,220800000,3801.47 +1994-11-10,3831.75,3873.47,3821.99,3821.99,280910000,3821.99 +1994-11-09,3830.74,3882.89,3798.44,3831.75,341500000,3831.75 +1994-11-08,3808.87,3857.65,3798.75,3830.74,290860000,3830.74 +1994-11-07,3807.52,3830.40,3781.62,3808.87,255030000,3808.87 +1994-11-04,3845.88,3879.52,3802.81,3807.52,280560000,3807.52 +1994-11-03,3837.13,3872.46,3814.25,3845.88,284480000,3845.88 +1994-11-02,3863.37,3888.94,3820.31,3837.13,331360000,3837.13 +1994-11-01,3908.12,3919.90,3836.79,3863.37,314940000,3863.37 +1994-10-31,3930.66,3956.90,3889.28,3908.12,302810000,3908.12 +1994-10-28,3875.15,3953.54,3863.37,3930.66,381450000,3930.66 +1994-10-27,3848.23,3893.99,3834.44,3875.15,327790000,3875.15 +1994-10-26,3850.59,3891.97,3816.61,3848.23,322560000,3848.23 +1994-10-25,3855.30,3883.56,3803.49,3850.59,326100000,3850.59 +1994-10-24,3891.30,3925.61,3840.16,3855.30,282800000,3855.30 +1994-10-21,3911.15,3921.58,3861.35,3891.30,309410000,3891.30 +1994-10-20,3936.04,3954.89,3873.13,3911.15,326100000,3911.15 +1994-10-19,3917.54,3958.25,3887.93,3936.04,317030000,3936.04 +1994-10-18,3923.93,3945.46,3892.64,3917.54,259730000,3917.54 +1994-10-17,3910.47,3949.84,3883.22,3923.93,238490000,3923.93 +1994-10-14,3889.95,3927.97,3862.03,3910.47,251770000,3910.47 +1994-10-13,3878.18,3944.12,3878.18,3889.95,337900000,3889.95 +1994-10-12,3876.83,3903.07,3844.87,3875.15,269550000,3875.15 +1994-10-11,3828.96,3898.36,3828.96,3876.83,355540000,3876.83 +1994-10-10,3797.43,3843.19,3789.36,3821.32,213110000,3821.32 +1994-10-07,3775.56,3826.03,3754.37,3797.43,284230000,3797.43 +1994-10-06,3787.34,3810.89,3752.01,3775.56,272620000,3775.56 +1994-10-05,3801.13,3811.56,3736.20,3787.34,359670000,3787.34 +1994-10-04,3846.89,3873.47,3788.35,3801.13,325620000,3801.13 +1994-10-03,3843.19,3872.79,3809.21,3846.89,269130000,3846.89 +1994-09-30,3854.63,3891.30,3825.69,3843.19,292060000,3843.19 +1994-09-29,3878.18,3892.64,3834.78,3854.63,302280000,3854.63 +1994-09-28,3863.04,3904.76,3854.29,3878.18,330020000,3878.18 +1994-09-27,3849.24,3891.63,3828.72,3863.04,290330000,3863.04 +1994-09-26,3831.75,3869.43,3804.50,3849.24,272530000,3849.24 +1994-09-23,3837.13,3872.46,3806.51,3831.75,300060000,3831.75 +1994-09-22,3851.60,3882.55,3818.29,3837.13,305210000,3837.13 +1994-09-21,3869.09,3886.92,3806.85,3851.60,355330000,3851.60 +1994-09-20,3932.01,3932.01,3859.67,3869.09,326050000,3869.09 +1994-09-19,3933.35,3972.72,3909.80,3936.72,272920000,3936.72 +1994-09-16,3953.88,3955.22,3894.66,3933.35,410750000,3933.35 +1994-09-15,3895.33,3959.93,3883.90,3953.88,281890000,3953.88 +1994-09-14,3879.86,3918.55,3856.64,3895.33,297480000,3895.33 +1994-09-13,3860.34,3905.76,3854.29,3879.86,293370000,3879.86 +1994-09-12,3874.81,3897.02,3843.86,3860.34,244680000,3860.34 +1994-09-09,3902.06,3902.06,3844.20,3874.81,293330000,3874.81 +1994-09-08,3886.25,3926.96,3872.46,3908.46,295010000,3908.46 +1994-09-07,3898.70,3920.90,3860.68,3886.25,292110000,3886.25 +1994-09-06,3885.58,3918.55,3860.01,3898.70,199670000,3898.70 +1994-09-02,3901.44,3928.64,3871.98,3885.58,216150000,3885.58 +1994-09-01,3913.42,3927.99,3871.66,3901.44,285670000,3901.44 +1994-08-31,3917.30,3954.54,3878.78,3913.42,354650000,3913.42 +1994-08-30,3898.85,3934.14,3875.87,3917.30,294520000,3917.30 +1994-08-29,3881.05,3927.34,3869.39,3898.85,266080000,3898.85 +1994-08-26,3836.69,3903.38,3836.69,3881.05,305120000,3881.05 +1994-08-25,3846.73,3872.63,3810.47,3829.89,284200000,3829.89 +1994-08-24,3775.83,3852.56,3767.41,3846.73,309780000,3846.73 +1994-08-23,3751.22,3804.64,3745.07,3775.83,307240000,3775.83 +1994-08-22,3755.11,3771.94,3722.41,3751.22,235870000,3751.22 +1994-08-19,3755.43,3785.22,3727.59,3755.11,276630000,3755.11 +1994-08-18,3776.48,3793.63,3736.98,3755.43,287330000,3755.43 +1994-08-17,3784.57,3812.09,3754.46,3776.48,309250000,3776.48 +1994-08-16,3760.29,3804.64,3732.45,3784.57,306640000,3784.57 +1994-08-15,3768.71,3798.17,3742.16,3760.29,223210000,3760.29 +1994-08-12,3750.90,3792.66,3738.27,3768.71,249270000,3768.71 +1994-08-11,3766.76,3785.86,3728.56,3750.90,275690000,3750.90 +1994-08-10,3755.76,3793.97,3738.27,3766.76,279470000,3766.76 +1994-08-09,3753.81,3773.89,3728.56,3755.76,259130000,3755.76 +1994-08-08,3747.02,3780.68,3732.77,3753.81,217670000,3753.81 +1994-08-05,3765.79,3769.68,3725.00,3747.02,230270000,3747.02 +1994-08-04,3792.66,3807.23,3752.52,3765.79,289150000,3765.79 +1994-08-03,3796.22,3815.00,3762.88,3792.66,283840000,3792.66 +1994-08-02,3798.17,3829.25,3776.48,3796.22,294740000,3796.22 +1994-08-01,3764.50,3809.50,3749.28,3798.17,258180000,3798.17 +1994-07-29,3730.83,3782.63,3726.30,3764.50,269560000,3764.50 +1994-07-28,3720.47,3757.05,3701.69,3730.83,247560000,3730.83 +1994-07-27,3735.68,3753.17,3693.27,3720.47,251680000,3720.47 +1994-07-26,3741.84,3764.50,3706.22,3735.68,232670000,3735.68 +1994-07-25,3735.04,3762.56,3713.67,3741.84,213470000,3741.84 +1994-07-22,3732.45,3765.15,3707.19,3735.04,261090000,3735.04 +1994-07-21,3727.27,3763.20,3684.86,3732.45,292080000,3732.45 +1994-07-20,3748.31,3763.85,3706.22,3727.27,267740000,3727.27 +1994-07-19,3755.43,3777.45,3726.30,3748.31,251530000,3748.31 +1994-07-18,3753.81,3779.39,3725.00,3755.43,227480000,3755.43 +1994-07-15,3739.25,3769.35,3712.37,3753.81,275860000,3753.81 +1994-07-14,3704.28,3763.53,3697.48,3739.25,319950000,3739.25 +1994-07-13,3702.66,3738.27,3683.89,3704.28,265840000,3704.28 +1994-07-12,3702.99,3725.32,3660.90,3702.66,252250000,3702.66 +1994-07-11,3709.14,3735.36,3671.26,3702.99,222580000,3702.99 +1994-07-08,3688.42,3728.56,3660.90,3709.14,236520000,3709.14 +1994-07-07,3674.50,3714.32,3656.04,3688.42,258500000,3688.42 +1994-07-06,3652.48,3698.13,3631.11,3674.50,233640000,3674.50 +1994-07-05,3646.65,3680.65,3621.73,3652.48,193030000,3652.48 +1994-07-01,3624.96,3675.79,3611.04,3646.65,199030000,3646.65 +1994-06-30,3667.05,3683.56,3610.72,3624.96,294110000,3624.96 +1994-06-29,3669.64,3711.73,3645.68,3667.05,263890000,3667.05 +1994-06-28,3685.50,3705.58,3630.47,3669.64,265880000,3669.64 +1994-06-27,3636.94,3694.89,3603.92,3685.50,250110000,3685.50 +1994-06-24,3699.09,3704.80,3616.65,3636.94,261260000,3636.94 +1994-06-23,3724.77,3752.04,3685.14,3699.09,256480000,3699.09 +1994-06-22,3707.97,3748.87,3694.65,3724.77,251110000,3724.77 +1994-06-21,3741.90,3756.80,3674.68,3707.97,298730000,3707.97 +1994-06-20,3771.07,3771.07,3716.21,3741.90,229520000,3741.90 +1994-06-17,3811.34,3821.48,3764.09,3776.78,373400000,3776.78 +1994-06-16,3790.41,3830.68,3771.39,3811.34,254880000,3811.34 +1994-06-15,3814.83,3838.29,3772.02,3790.41,269740000,3790.41 +1994-06-14,3783.12,3839.88,3769.17,3814.83,288550000,3814.83 +1994-06-13,3773.45,3808.17,3741.26,3783.12,242810000,3783.12 +1994-06-10,3753.14,3798.68,3739.60,3773.45,222480000,3773.45 +1994-06-09,3749.45,3776.83,3721.45,3753.14,252870000,3753.14 +1994-06-08,3755.91,3780.83,3721.45,3749.45,256000000,3749.45 +1994-06-07,3768.52,3788.52,3733.14,3755.91,234680000,3755.91 +1994-06-06,3772.22,3812.83,3749.75,3768.52,259080000,3768.52 +1994-06-03,3758.99,3792.22,3732.52,3772.22,271490000,3772.22 +1994-06-02,3760.83,3791.60,3732.83,3758.99,271150000,3758.99 +1994-06-01,3758.37,3785.14,3717.76,3760.83,279910000,3760.83 +1994-05-31,3757.14,3783.29,3725.45,3758.37,216700000,3758.37 +1994-05-27,3753.46,3772.18,3723.68,3757.14,186430000,3757.14 +1994-05-26,3755.30,3785.07,3722.76,3753.46,255740000,3753.46 +1994-05-25,3745.17,3768.19,3710.79,3755.30,254410000,3755.30 +1994-05-24,3742.41,3786.30,3707.11,3745.17,280040000,3745.17 +1994-05-23,3766.35,3770.65,3711.40,3742.41,249390000,3742.41 +1994-05-20,3758.98,3788.76,3721.84,3766.35,295180000,3766.35 +1994-05-19,3732.89,3782.92,3707.72,3758.98,303680000,3758.98 +1994-05-18,3720.61,3761.74,3683.16,3732.89,339280000,3732.89 +1994-05-17,3671.50,3735.04,3653.70,3720.61,311280000,3720.61 +1994-05-16,3659.68,3694.21,3628.52,3671.50,234680000,3671.50 +1994-05-13,3652.84,3690.32,3626.37,3659.68,252070000,3659.68 +1994-05-12,3629.04,3682.58,3624.58,3652.84,272770000,3652.84 +1994-05-11,3656.41,3678.42,3609.71,3629.04,277400000,3629.04 +1994-05-10,3629.04,3684.67,3627.56,3656.41,297660000,3656.41 +1994-05-09,3669.50,3676.93,3612.39,3629.04,250870000,3629.04 +1994-05-06,3695.97,3702.51,3625.77,3669.50,291910000,3669.50 +1994-05-05,3697.75,3731.07,3675.45,3695.97,255690000,3695.97 +1994-05-04,3714.41,3730.17,3670.09,3697.75,267940000,3697.75 +1994-05-03,3701.02,3736.12,3669.79,3714.41,288270000,3714.41 +1994-05-02,3681.69,3734.04,3648.97,3701.02,296130000,3701.02 +1994-04-29,3668.31,3707.87,3642.13,3681.69,293970000,3681.69 +1994-04-28,3699.54,3723.93,3640.35,3668.31,325200000,3668.31 +1994-04-26,3705.78,3733.15,3669.79,3699.54,288110000,3699.54 +1994-04-25,3648.68,3721.25,3635.29,3705.78,262220000,3705.78 +1994-04-22,3652.54,3690.32,3621.01,3648.68,295710000,3648.68 +1994-04-21,3598.71,3673.96,3582.94,3652.54,378760000,3652.54 +1994-04-20,3619.82,3662.66,3546.65,3598.71,366540000,3598.71 +1994-04-19,3620.42,3670.39,3567.18,3619.82,323280000,3619.82 +1994-04-18,3661.47,3679.61,3593.35,3620.42,271450000,3620.42 +1994-04-15,3663.25,3699.24,3631.13,3661.47,309550000,3661.47 +1994-04-14,3661.47,3693.59,3625.77,3663.25,275130000,3663.25 +1994-04-13,3681.69,3704.30,3616.85,3661.47,278030000,3661.47 +1994-04-12,3688.83,3722.14,3661.17,3681.69,256250000,3681.69 +1994-04-11,3674.26,3720.66,3651.35,3688.83,243180000,3688.83 +1994-04-08,3693.26,3717.15,3644.03,3674.26,264090000,3674.26 +1994-04-07,3679.73,3712.83,3642.59,3693.26,289280000,3693.26 +1994-04-06,3675.41,3722.34,3643.16,3679.73,302000000,3679.73 +1994-04-05,3625.02,3698.15,3625.02,3675.41,366890000,3675.41 +1994-04-04,3633.08,3633.08,3520.80,3593.35,344390000,3593.35 +1994-03-31,3626.75,3673.10,3544.12,3635.96,403580000,3635.96 +1994-03-30,3699.02,3718.88,3612.36,3626.75,390520000,3626.75 +1994-03-29,3762.35,3771.86,3689.23,3699.02,301630000,3699.02 +1994-03-28,3774.73,3793.45,3719.74,3762.35,287360000,3762.35 +1994-03-25,3821.09,3845.85,3764.66,3774.73,249670000,3774.73 +1994-03-24,3865.42,3865.42,3792.58,3821.09,303800000,3821.09 +1994-03-23,3862.55,3901.41,3839.80,3869.46,284600000,3869.46 +1994-03-22,3864.85,3896.23,3840.66,3862.55,283090000,3862.55 +1994-03-21,3895.65,3898.25,3838.65,3864.85,247390000,3864.85 +1994-03-18,3865.14,3911.78,3838.65,3895.65,462240000,3895.65 +1994-03-17,3848.15,3891.34,3821.66,3865.14,303950000,3865.14 +1994-03-16,3849.59,3879.53,3819.94,3848.15,306820000,3848.15 +1994-03-15,3862.98,3888.46,3826.85,3849.59,329260000,3849.59 +1994-03-14,3862.70,3894.21,3835.96,3862.98,260160000,3862.98 +1994-03-11,3830.62,3872.83,3806.69,3862.70,303250000,3862.70 +1994-03-10,3853.41,3865.51,3801.63,3830.62,369370000,3830.62 +1994-03-09,3851.72,3874.52,3817.95,3853.41,309810000,3853.41 +1994-03-08,3856.22,3881.55,3822.45,3851.72,298110000,3851.72 +1994-03-07,3832.30,3882.40,3824.71,3856.22,285580000,3856.22 +1994-03-04,3824.42,3868.04,3800.50,3832.30,311850000,3832.30 +1994-03-03,3831.74,3862.13,3784.74,3824.42,291960000,3824.42 +1994-03-02,3809.23,3845.25,3741.69,3831.74,361130000,3831.74 +1994-03-01,3832.02,3848.34,3772.93,3809.23,304450000,3809.23 +1994-02-28,3838.78,3874.52,3817.95,3832.02,267610000,3832.02 +1994-02-25,3839.90,3868.89,3811.76,3838.78,273680000,3838.78 +1994-02-24,3891.68,3895.62,3823.86,3839.90,342940000,3839.90 +1994-02-23,3911.66,3931.36,3872.83,3891.68,309910000,3891.68 +1994-02-22,3887.46,3928.83,3873.39,3911.66,270900000,3911.66 +1994-02-18,3922.64,3931.92,3869.73,3887.46,293210000,3887.46 +1994-02-17,3937.27,3975.82,3894.21,3922.64,340030000,3922.64 +1994-02-16,3928.27,3964.85,3906.32,3937.27,295450000,3937.27 +1994-02-15,3904.06,3950.50,3891.40,3928.27,306790000,3928.27 +1994-02-14,3894.78,3935.86,3873.67,3904.06,263190000,3904.06 +1994-02-11,3895.34,3920.95,3855.94,3894.78,213740000,3894.78 +1994-02-10,3931.92,3953.59,3882.96,3895.34,327250000,3895.34 +1994-02-09,3906.03,3956.97,3887.74,3931.92,332670000,3931.92 +1994-02-08,3906.32,3951.34,3873.67,3906.03,318180000,3906.03 +1994-02-07,3871.42,3923.48,3840.75,3906.32,348270000,3906.32 +1994-02-04,3967.66,3979.76,3857.63,3871.42,378380000,3871.42 +1994-02-03,3975.54,3995.52,3932.77,3967.66,318350000,3967.66 +1994-02-02,3964.01,3997.78,3937.27,3975.54,328960000,3975.54 +1994-02-01,3978.36,3998.06,3938.12,3964.01,322510000,3964.01 +1994-01-31,3945.43,4002.84,3937.27,3978.36,322870000,3978.36 +1994-01-28,3926.30,3971.89,3919.54,3945.43,313140000,3945.43 +1994-01-27,3908.00,3951.34,3876.77,3926.30,346500000,3926.30 +1994-01-26,3895.34,3934.74,3863.82,3908.00,304660000,3908.00 +1994-01-25,3912.79,3937.55,3863.82,3895.34,326120000,3895.34 +1994-01-24,3914.48,3947.68,3882.11,3912.79,296900000,3912.79 +1994-01-21,3891.96,3933.33,3875.36,3914.48,346220000,3914.48 +1994-01-20,3884.37,3915.60,3857.91,3891.96,310450000,3891.96 +1994-01-19,3870.29,3909.97,3839.34,3884.37,311370000,3884.37 +1994-01-18,3870.29,3905.19,3840.75,3870.29,309730000,3870.29 +1994-01-17,3867.20,3896.75,3833.71,3870.29,233980000,3870.29 +1994-01-14,3842.43,3891.96,3830.62,3867.20,304910000,3867.20 +1994-01-13,3848.63,3864.67,3808.38,3842.43,277970000,3842.43 +1994-01-12,3850.31,3876.49,3809.79,3848.63,310690000,3848.63 +1994-01-11,3865.51,3885.21,3823.02,3850.31,305490000,3850.31 +1994-01-10,3820.77,3874.52,3804.72,3865.51,319490000,3865.51 +1994-01-07,3803.88,3842.15,3778.83,3820.77,324920000,3820.77 +1994-01-06,3798.82,3843.84,3771.52,3803.88,367880000,3803.88 +1994-01-05,3783.90,3821.33,3750.41,3798.82,400030000,3798.82 +1994-01-04,3756.60,3798.25,3718.89,3783.90,326600000,3783.90 +1994-01-03,3754.09,3790.70,3715.24,3756.60,270140000,3756.60 +1993-12-31,3775.88,3804.11,3745.15,3754.09,168590000,3754.09 +1993-12-30,3794.33,3806.34,3759.96,3775.88,195860000,3775.88 +1993-12-29,3793.77,3818.92,3764.43,3794.33,269570000,3794.33 +1993-12-28,3792.93,3813.33,3766.10,3793.77,200960000,3793.77 +1993-12-27,3757.72,3804.95,3750.46,3792.93,171200000,3792.93 +1993-12-23,3762.19,3791.81,3739.56,3757.72,227240000,3757.72 +1993-12-22,3745.15,3780.64,3725.86,3762.19,272440000,3762.19 +1993-12-21,3755.21,3774.77,3719.72,3745.15,273370000,3745.15 +1993-12-20,3751.57,3777.84,3728.66,3755.21,255900000,3755.21 +1993-12-17,3726.14,3768.90,3706.30,3751.57,363750000,3751.57 +1993-12-16,3716.92,3756.60,3694.29,3726.14,284620000,3726.14 +1993-12-15,3742.63,3776.44,3689.82,3716.92,331770000,3716.92 +1993-12-14,3764.43,3785.94,3726.70,3742.63,275050000,3742.63 +1993-12-13,3740.67,3780.64,3711.33,3764.43,256580000,3764.43 +1993-12-10,3729.78,3758.84,3704.91,3740.67,245620000,3740.67 +1993-12-09,3734.53,3764.43,3709.94,3729.78,287570000,3729.78 +1993-12-08,3718.88,3756.60,3693.73,3734.53,314460000,3734.53 +1993-12-07,3710.21,3746.82,3689.26,3718.88,285690000,3718.88 +1993-12-06,3704.07,3738.44,3687.30,3710.21,292370000,3710.21 +1993-12-03,3702.11,3726.98,3677.80,3704.07,268780000,3704.07 +1993-12-02,3697.08,3725.30,3674.17,3702.11,256370000,3702.11 +1993-12-01,3683.95,3731.73,3673.33,3697.08,293870000,3697.08 +1993-11-30,3677.80,3713.57,3654.88,3683.95,290250000,3683.95 +1993-11-29,3683.95,3721.67,3654.33,3677.80,272710000,3677.80 +1993-11-26,3687.58,3703.23,3660.75,3683.95,90220000,3683.95 +1993-11-24,3674.17,3709.94,3654.33,3687.58,230630000,3687.58 +1993-11-23,3670.25,3702.67,3649.57,3674.17,261590000,3674.17 +1993-11-22,3694.01,3697.92,3627.78,3670.25,280130000,3670.25 +1993-11-19,3685.34,3711.05,3640.07,3694.01,302970000,3694.01 +1993-11-18,3704.35,3721.95,3649.57,3685.34,313480000,3685.34 +1993-11-17,3710.77,3749.90,3660.19,3704.35,319560000,3704.35 +1993-11-16,3677.52,3723.91,3653.77,3710.77,303980000,3710.77 +1993-11-15,3684.51,3705.74,3653.49,3677.52,251030000,3677.52 +1993-11-12,3662.43,3707.42,3648.74,3684.51,326240000,3684.51 +1993-11-11,3663.55,3700.43,3638.40,3662.43,287110000,3662.43 +1993-11-10,3640.07,3683.39,3616.60,3663.55,283450000,3663.55 +1993-11-09,3647.90,3689.82,3623.03,3640.07,278290000,3640.07 +1993-11-08,3643.43,3674.17,3621.91,3647.90,232340000,3647.90 +1993-11-05,3624.98,3663.83,3585.86,3643.43,336900000,3643.43 +1993-11-04,3661.87,3681.99,3609.61,3624.98,323430000,3624.98 +1993-11-03,3697.64,3714.69,3638.40,3661.87,342110000,3661.87 +1993-11-02,3692.61,3724.75,3656.00,3697.64,304780000,3697.64 +1993-11-01,3680.59,3708.26,3656.84,3692.61,256030000,3692.61 +1993-10-29,3687.86,3712.45,3656.84,3680.59,270570000,3680.59 +1993-10-28,3664.66,3713.57,3657.96,3687.86,301220000,3687.86 +1993-10-27,3672.49,3692.33,3634.76,3664.66,279830000,3664.66 +1993-10-26,3673.61,3701.55,3636.16,3672.49,284530000,3672.49 +1993-10-25,3649.30,3694.01,3618.28,3673.61,260310000,3673.61 +1993-10-22,3636.16,3697.92,3612.13,3649.30,301440000,3649.30 +1993-10-21,3645.10,3678.36,3610.45,3636.16,288820000,3636.16 +1993-10-20,3635.32,3667.74,3611.85,3645.10,305670000,3645.10 +1993-10-19,3642.31,3669.97,3601.79,3635.32,304400000,3635.32 +1993-10-18,3629.73,3675.84,3595.92,3642.31,329570000,3642.31 +1993-10-15,3621.63,3664.66,3596.20,3629.73,366110000,3629.73 +1993-10-14,3603.19,3652.09,3574.40,3621.63,353820000,3621.63 +1993-10-13,3593.13,3628.34,3574.12,3603.19,290930000,3603.19 +1993-10-12,3593.41,3619.39,3575.24,3593.13,263970000,3593.13 +1993-10-11,3584.74,3611.01,3565.46,3593.41,183190000,3593.41 +1993-10-08,3583.63,3610.45,3550.37,3584.74,243590000,3584.74 +1993-10-07,3598.99,3616.32,3564.90,3583.63,255210000,3583.63 +1993-10-06,3587.26,3620.79,3570.21,3598.99,277070000,3598.99 +1993-10-05,3577.76,3616.88,3553.72,3587.26,294570000,3587.26 +1993-10-04,3581.11,3603.19,3550.65,3577.76,229380000,3577.76 +1993-10-01,3555.12,3605.14,3541.71,3581.11,256870000,3581.11 +1993-09-30,3566.30,3583.63,3528.57,3555.12,282740000,3555.12 +1993-09-29,3566.02,3596.48,3538.91,3566.30,277690000,3566.30 +1993-09-28,3567.70,3589.49,3542.27,3566.02,243320000,3566.02 +1993-09-27,3543.11,3589.49,3539.47,3567.70,244920000,3567.70 +1993-09-24,3539.75,3568.54,3507.90,3543.11,248270000,3543.11 +1993-09-23,3547.02,3567.70,3513.48,3539.75,276660000,3539.75 +1993-09-22,3537.24,3577.20,3516.56,3547.02,288960000,3547.02 +1993-09-21,3575.80,3592.57,3501.47,3537.24,301740000,3537.24 +1993-09-20,3613.25,3632.81,3567.98,3575.80,228040000,3575.80 +1993-09-17,3630.85,3637.28,3580.83,3613.25,369600000,3613.25 +1993-09-16,3633.65,3651.25,3601.79,3630.85,229700000,3630.85 +1993-09-15,3615.76,3644.82,3573.84,3633.65,294410000,3633.65 +1993-09-14,3634.21,3639.51,3590.61,3615.76,258620000,3615.76 +1993-09-13,3621.63,3655.16,3607.66,3634.21,244970000,3634.21 +1993-09-10,3589.49,3636.16,3576.64,3621.63,269950000,3621.63 +1993-09-09,3588.93,3616.04,3556.52,3589.49,258070000,3589.49 +1993-09-08,3607.10,3623.31,3561.27,3588.93,283100000,3588.93 +1993-09-07,3633.93,3649.02,3592.57,3607.10,229500000,3607.10 +1993-09-03,3626.10,3651.53,3603.75,3633.93,197160000,3633.93 +1993-09-02,3645.10,3660.19,3610.17,3626.10,259870000,3626.10 +1993-09-01,3651.25,3665.50,3619.67,3645.10,245040000,3645.10 +1993-08-31,3643.99,3662.99,3619.67,3651.25,252830000,3651.25 +1993-08-30,3640.63,3667.46,3621.63,3643.99,194180000,3643.99 +1993-08-27,3648.18,3656.28,3606.54,3640.63,196140000,3640.63 +1993-08-26,3652.09,3681.71,3620.23,3648.18,247800000,3648.18 +1993-08-25,3638.96,3674.17,3620.51,3652.09,301640000,3652.09 +1993-08-24,3605.98,3648.18,3590.89,3638.96,270700000,3638.96 +1993-08-23,3615.48,3630.57,3578.87,3605.98,212500000,3605.98 +1993-08-20,3612.13,3633.37,3580.55,3615.48,276800000,3615.48 +1993-08-19,3604.86,3632.25,3581.11,3612.13,293330000,3612.13 +1993-08-18,3586.98,3638.96,3577.48,3604.86,312940000,3604.86 +1993-08-17,3579.15,3611.29,3554.00,3586.98,261320000,3586.98 +1993-08-16,3569.65,3606.54,3547.86,3579.15,229190000,3579.15 +1993-08-13,3569.09,3594.52,3547.58,3569.65,214370000,3569.65 +1993-08-12,3583.35,3607.66,3537.24,3569.09,278530000,3569.09 +1993-08-11,3572.73,3607.94,3550.93,3583.35,268330000,3583.35 +1993-08-10,3576.08,3599.83,3547.02,3572.73,255520000,3572.73 +1993-08-09,3560.43,3599.83,3541.15,3576.08,232750000,3576.08 +1993-08-06,3548.97,3583.35,3536.12,3560.43,221150000,3560.43 +1993-08-05,3552.05,3574.12,3523.54,3548.97,249650000,3548.97 +1993-08-04,3561.27,3579.99,3530.25,3552.05,230040000,3552.05 +1993-08-03,3560.99,3588.10,3530.81,3561.27,254540000,3561.27 +1993-08-02,3539.47,3578.32,3524.94,3560.99,230380000,3560.99 +1993-07-30,3567.42,3581.11,3515.72,3539.47,254420000,3539.47 +1993-07-29,3553.45,3593.41,3531.37,3567.42,261240000,3567.42 +1993-07-28,3565.46,3588.38,3524.38,3553.45,270530000,3553.45 +1993-07-27,3567.70,3604.86,3533.60,3565.46,256750000,3565.46 +1993-07-26,3546.74,3584.74,3541.43,3567.70,223280000,3567.70 +1993-07-23,3525.22,3569.37,3508.17,3546.74,222170000,3546.74 +1993-07-22,3555.40,3566.86,3514.32,3525.22,249630000,3525.22 +1993-07-21,3544.78,3573.84,3516.84,3555.40,278590000,3555.40 +1993-07-20,3535.28,3567.98,3500.63,3544.78,275130000,3544.78 +1993-07-19,3528.29,3563.23,3502.87,3535.28,216370000,3535.28 +1993-07-16,3550.93,3571.61,3505.94,3528.29,263100000,3528.29 +1993-07-15,3542.55,3573.01,3509.85,3550.93,277810000,3550.93 +1993-07-14,3515.44,3562.39,3507.34,3542.55,285890000,3542.55 +1993-07-13,3524.38,3544.22,3491.13,3515.44,236720000,3515.44 +1993-07-12,3521.06,3545.97,3495.04,3524.38,202310000,3524.38 +1993-07-09,3514.42,3544.03,3490.89,3521.06,235210000,3521.06 +1993-07-08,3475.67,3532.41,3462.38,3514.42,282910000,3514.42 +1993-07-07,3449.93,3495.32,3443.28,3475.67,253170000,3475.67 +1993-07-06,3483.97,3502.52,3443.28,3449.93,233420000,3449.93 +1993-07-02,3510.54,3511.65,3468.47,3483.97,220750000,3483.97 +1993-07-01,3516.08,3542.10,3487.29,3510.54,292040000,3510.54 +1993-06-30,3518.85,3543.48,3493.11,3516.08,281120000,3516.08 +1993-06-29,3530.20,3544.87,3491.44,3518.85,276310000,3518.85 +1993-06-28,3490.89,3542.10,3486.74,3530.20,242090000,3530.20 +1993-06-25,3490.61,3512.76,3473.18,3490.89,210430000,3490.89 +1993-06-24,3466.81,3504.73,3449.10,3490.61,267450000,3490.61 +1993-06-23,3497.53,3514.14,3445.77,3466.81,278260000,3466.81 +1993-06-22,3510.82,3530.47,3474.28,3497.53,259530000,3497.53 +1993-06-21,3494.77,3531.86,3477.05,3510.82,223650000,3510.82 +1993-06-18,3521.89,3539.88,3478.44,3494.77,300500000,3494.77 +1993-06-17,3511.65,3539.61,3488.68,3521.89,239810000,3521.89 +1993-06-16,3492.00,3527.43,3460.17,3511.65,264500000,3511.65 +1993-06-15,3514.69,3531.86,3471.24,3492.00,234110000,3492.00 +1993-06-14,3505.01,3538.22,3486.74,3514.69,210440000,3514.69 +1993-06-11,3491.72,3536.01,3479.27,3505.01,255200000,3505.01 +1993-06-10,3511.93,3538.22,3461.83,3491.72,231760000,3491.72 +1993-06-09,3510.54,3541.54,3490.89,3511.93,249030000,3511.93 +1993-06-08,3532.13,3543.48,3494.21,3510.54,238170000,3510.54 +1993-06-07,3545.14,3570.33,3510.82,3532.13,236930000,3532.13 +1993-06-04,3544.87,3563.13,3516.63,3545.14,226440000,3545.14 +1993-06-03,3553.45,3569.50,3516.08,3544.87,285770000,3544.87 +1993-06-02,3552.34,3576.14,3530.47,3553.45,287120000,3553.45 +1993-06-01,3527.43,3577.25,3518.02,3552.34,229690000,3552.34 +1993-05-28,3554.83,3563.41,3503.62,3527.43,207820000,3527.43 +1993-05-27,3540.16,3582.23,3523.28,3554.83,300810000,3554.83 +1993-05-26,3516.63,3558.98,3498.64,3540.16,274230000,3540.16 +1993-05-25,3507.78,3534.35,3486.46,3516.63,222090000,3516.63 +1993-05-24,3492.83,3526.60,3472.35,3507.78,197990000,3507.78 +1993-05-21,3523.28,3532.96,3468.47,3492.83,279120000,3492.83 +1993-05-20,3500.03,3539.88,3475.39,3523.28,289160000,3523.28 +1993-05-19,3444.39,3511.10,3405.09,3500.03,342420000,3500.03 +1993-05-18,3449.93,3468.47,3409.79,3444.39,264300000,3444.39 +1993-05-17,3443.01,3465.98,3421.42,3449.93,227580000,3449.93 +1993-05-14,3447.99,3472.62,3421.14,3443.01,252910000,3443.01 +1993-05-13,3482.31,3486.74,3428.89,3447.99,289860000,3447.99 +1993-05-12,3468.75,3501.69,3441.07,3482.31,255680000,3482.31 +1993-05-11,3443.28,3481.76,3421.42,3468.75,218480000,3468.75 +1993-05-10,3437.19,3485.36,3420.31,3443.28,235580000,3443.28 +1993-05-07,3441.90,3468.47,3413.67,3437.19,223570000,3437.19 +1993-05-06,3449.10,3475.67,3418.93,3441.90,255460000,3441.90 +1993-05-05,3446.19,3478.44,3420.86,3449.10,270960000,3449.10 +1993-05-04,3446.46,3477.26,3424.04,3446.19,268310000,3446.19 +1993-05-03,3427.55,3462.94,3402.42,3446.46,220860000,3446.46 +1993-04-30,3425.12,3466.18,3405.39,3427.55,247460000,3427.55 +1993-04-29,3413.50,3444.57,3377.57,3425.12,249760000,3425.12 +1993-04-28,3415.93,3445.65,3372.16,3413.50,267980000,3413.50 +1993-04-27,3398.37,3433.76,3364.06,3415.93,284140000,3415.93 +1993-04-26,3413.77,3442.14,3369.46,3398.37,281180000,3398.37 +1993-04-23,3429.17,3448.08,3385.67,3413.77,259810000,3413.77 +1993-04-22,3439.44,3488.33,3399.99,3429.17,310390000,3429.17 +1993-04-21,3443.49,3480.77,3401.34,3439.44,287300000,3439.44 +1993-04-20,3466.99,3486.71,3400.26,3443.49,317990000,3443.49 +1993-04-19,3478.61,3499.41,3436.73,3466.99,244710000,3466.99 +1993-04-16,3455.92,3498.60,3437.54,3478.61,305160000,3478.61 +1993-04-15,3455.64,3484.28,3419.17,3455.92,259500000,3455.92 +1993-04-14,3444.03,3482.93,3424.85,3455.64,257340000,3455.64 +1993-04-13,3428.09,3469.42,3408.37,3444.03,286690000,3444.03 +1993-04-12,3396.48,3452.67,3391.08,3428.09,259610000,3428.09 +1993-04-08,3397.02,3429.44,3357.58,3396.48,282470000,3396.48 +1993-04-07,3377.57,3417.55,3355.41,3397.02,296290000,3397.02 +1993-04-06,3379.19,3417.55,3339.75,3377.57,289640000,3377.57 +1993-04-05,3370.81,3411.61,3338.39,3379.19,238630000,3379.19 +1993-04-02,3439.44,3439.44,3344.88,3370.81,323330000,3370.81 +1993-04-01,3435.11,3466.45,3419.98,3439.44,231950000,3439.44 +1993-03-31,3457.27,3484.82,3424.85,3435.11,275710000,3435.11 +1993-03-30,3455.10,3481.58,3422.14,3457.27,233330000,3457.27 +1993-03-29,3439.98,3487.52,3431.87,3455.10,199890000,3455.10 +1993-03-26,3461.32,3484.28,3428.63,3439.98,219130000,3439.98 +1993-03-25,3445.38,3485.36,3429.44,3461.32,250040000,3461.32 +1993-03-24,3461.86,3489.14,3417.55,3445.38,271980000,3445.38 +1993-03-23,3463.48,3488.60,3438.08,3461.86,231900000,3461.86 +1993-03-22,3471.58,3483.20,3429.71,3463.48,231900000,3463.48 +1993-03-19,3465.64,3493.20,3446.46,3471.58,295510000,3471.58 +1993-03-18,3427.01,3486.17,3427.01,3465.64,240490000,3465.64 +1993-03-17,3442.95,3458.35,3408.91,3426.74,237850000,3426.74 +1993-03-16,3442.41,3466.72,3423.77,3442.95,217730000,3442.95 +1993-03-15,3427.82,3460.51,3412.96,3442.41,192690000,3442.41 +1993-03-12,3447.81,3447.81,3385.40,3427.82,244740000,3427.82 +1993-03-11,3478.34,3493.74,3437.27,3457.00,250720000,3457.00 +1993-03-10,3472.12,3497.25,3432.68,3478.34,255190000,3478.34 +1993-03-09,3469.42,3495.63,3443.76,3472.12,290120000,3472.12 +1993-03-08,3404.58,3476.99,3401.34,3469.42,274560000,3469.42 +1993-03-05,3398.91,3447.81,3373.25,3404.58,247130000,3404.58 +1993-03-04,3404.04,3423.77,3372.43,3398.91,230780000,3398.91 +1993-03-03,3400.53,3437.00,3368.92,3404.04,272290000,3404.04 +1993-03-02,3355.41,3406.21,3334.07,3400.53,269640000,3400.53 +1993-03-01,3370.81,3404.58,3336.23,3355.41,232090000,3355.41 +1993-02-26,3365.14,3396.21,3336.23,3370.81,234160000,3370.81 +1993-02-25,3356.50,3387.02,3326.78,3365.14,252790000,3365.14 +1993-02-24,3323.27,3371.89,3311.92,3356.50,298940000,3356.50 +1993-02-23,3342.99,3373.52,3296.79,3323.27,321050000,3323.27 +1993-02-22,3322.18,3367.30,3297.06,3342.99,311510000,3342.99 +1993-02-19,3302.19,3347.04,3270.04,3322.18,307960000,3322.18 +1993-02-18,3312.19,3362.98,3262.48,3302.19,309570000,3302.19 +1993-02-17,3309.49,3338.12,3273.56,3312.19,287240000,3312.19 +1993-02-16,3391.62,3391.62,3285.98,3309.49,325350000,3309.49 +1993-02-12,3422.69,3436.19,3378.11,3392.43,215750000,3392.43 +1993-02-11,3412.42,3455.64,3395.94,3422.69,252780000,3422.69 +1993-02-10,3414.58,3438.08,3379.19,3412.42,248480000,3412.42 +1993-02-09,3437.54,3449.16,3394.86,3414.58,233670000,3414.58 +1993-02-08,3442.14,3472.94,3408.91,3437.54,240350000,3437.54 +1993-02-05,3416.74,3463.21,3391.62,3442.14,320960000,3442.14 +1993-02-04,3373.79,3441.33,3367.03,3416.74,346480000,3416.74 +1993-02-03,3328.67,3397.83,3322.73,3373.79,342530000,3373.79 +1993-02-02,3332.18,3355.68,3300.30,3328.67,269250000,3328.67 +1993-02-01,3310.03,3343.80,3300.30,3332.18,238260000,3332.18 +1993-01-29,3306.25,3331.10,3287.06,3310.03,247010000,3310.03 +1993-01-28,3291.39,3327.86,3270.58,3306.25,255550000,3306.25 +1993-01-27,3298.95,3318.67,3260.05,3291.39,276880000,3291.39 +1993-01-26,3292.20,3331.91,3272.47,3298.95,311450000,3298.95 +1993-01-25,3256.81,3324.89,3243.84,3292.20,288010000,3292.20 +1993-01-22,3253.02,3292.74,3225.74,3256.81,293250000,3256.81 +1993-01-21,3241.95,3269.77,3219.25,3253.02,257350000,3253.02 +1993-01-20,3255.99,3278.96,3231.41,3241.95,267740000,3241.95 +1993-01-19,3274.91,3299.49,3239.52,3255.99,283110000,3255.99 +1993-01-18,3271.12,3296.52,3244.65,3274.91,195980000,3274.91 +1993-01-15,3267.88,3300.03,3238.70,3271.12,306140000,3271.12 +1993-01-14,3263.56,3297.06,3230.87,3267.88,280020000,3267.88 +1993-01-13,3264.64,3283.01,3225.47,3263.56,245020000,3263.56 +1993-01-12,3262.75,3287.06,3229.79,3264.64,239250000,3264.64 +1993-01-11,3251.67,3284.09,3228.98,3262.75,217150000,3262.75 +1993-01-08,3268.96,3280.31,3221.68,3251.67,262620000,3251.67 +1993-01-07,3305.16,3333.51,3250.30,3268.96,303140000,3268.96 +1993-01-06,3307.87,3330.29,3276.53,3305.16,282850000,3305.16 +1993-01-05,3309.22,3338.12,3279.23,3307.87,240550000,3307.87 +1993-01-04,3301.11,3335.69,3282.74,3309.22,199680000,3309.22 +1992-12-31,3321.10,3340.29,3294.36,3301.11,165910000,3301.11 +1992-12-30,3310.84,3340.54,3298.93,3321.10,183870000,3321.10 +1992-12-29,3333.26,3364.87,3295.71,3310.84,213660000,3310.84 +1992-12-28,3326.24,3352.17,3297.33,3333.26,143800000,3333.26 +1992-12-24,3313.54,3339.48,3303.27,3326.24,95240000,3326.24 +1992-12-23,3321.10,3350.55,3293.01,3313.54,227980000,3313.54 +1992-12-22,3312.46,3347.04,3286.52,3321.10,249670000,3321.10 +1992-12-21,3313.27,3335.15,3280.85,3312.46,224680000,3312.46 +1992-12-18,3269.23,3325.97,3261.94,3313.27,371080000,3313.27 +1992-12-17,3255.18,3289.22,3229.79,3269.23,248590000,3269.23 +1992-12-16,3284.36,3303.00,3238.70,3255.18,241910000,3255.18 +1992-12-15,3292.20,3313.27,3260.32,3284.36,225880000,3284.36 +1992-12-14,3304.08,3324.89,3279.50,3292.20,183510000,3292.20 +1992-12-11,3312.19,3324.89,3280.85,3304.08,164450000,3304.08 +1992-12-10,3323.81,3335.69,3285.17,3312.19,240570000,3312.19 +1992-12-09,3322.18,3345.42,3295.98,3323.81,229980000,3323.81 +1992-12-08,3307.33,3331.64,3288.41,3322.18,234300000,3322.18 +1992-12-07,3288.68,3320.56,3274.37,3307.33,217700000,3307.33 +1992-12-04,3276.53,3312.46,3261.40,3288.68,227410000,3288.68 +1992-12-03,3286.25,3302.73,3252.48,3276.53,238200000,3276.53 +1992-12-02,3294.36,3310.84,3265.18,3286.25,241860000,3286.25 +1992-12-01,3305.16,3321.64,3268.15,3294.36,259020000,3294.36 +1992-11-30,3282.20,3326.51,3270.31,3305.16,230190000,3305.16 +1992-11-27,3266.26,3304.62,3259.24,3282.20,106010000,3282.20 +1992-11-25,3248.70,3285.71,3243.57,3266.26,206700000,3266.26 +1992-11-24,3223.04,3277.88,3209.26,3248.70,241520000,3248.70 +1992-11-23,3227.36,3251.13,3196.83,3223.04,190490000,3223.04 +1992-11-20,3209.53,3249.78,3197.64,3227.36,256340000,3227.36 +1992-11-19,3207.37,3231.14,3190.35,3209.53,218700000,3209.53 +1992-11-18,3193.32,3227.09,3176.84,3207.37,218660000,3207.37 +1992-11-17,3205.74,3223.31,3178.19,3193.32,185460000,3193.32 +1992-11-16,3233.03,3241.41,3191.16,3205.74,173500000,3205.74 +1992-11-13,3239.79,3252.48,3211.69,3233.03,192320000,3233.03 +1992-11-12,3240.33,3264.91,3214.39,3239.79,224580000,3239.79 +1992-11-11,3225.47,3258.70,3203.31,3240.33,240160000,3240.33 +1992-11-10,3240.87,3268.15,3212.50,3225.47,221990000,3225.47 +1992-11-09,3240.06,3268.69,3220.33,3240.87,197490000,3240.87 +1992-11-06,3243.84,3264.64,3216.82,3240.06,204870000,3240.06 +1992-11-05,3223.04,3259.78,3203.58,3243.84,219580000,3243.84 +1992-11-04,3252.48,3274.10,3211.15,3223.04,193980000,3223.04 +1992-11-03,3262.21,3285.44,3226.82,3252.48,209740000,3252.48 +1992-11-02,3226.28,3274.64,3211.42,3262.21,201620000,3262.21 +1992-10-30,3246.27,3260.59,3208.45,3226.28,196740000,3226.28 +1992-10-29,3251.40,3268.96,3224.39,3246.27,206300000,3246.27 +1992-10-28,3235.73,3262.48,3210.34,3251.40,203040000,3251.40 +1992-10-27,3244.11,3270.31,3210.88,3235.73,201650000,3235.73 +1992-10-26,3207.64,3256.00,3190.08,3244.11,187950000,3244.11 +1992-10-23,3200.88,3233.57,3175.76,3207.64,197400000,3207.64 +1992-10-22,3187.10,3221.14,3162.79,3200.88,216080000,3200.88 +1992-10-21,3186.02,3211.69,3163.33,3187.10,218990000,3187.10 +1992-10-20,3188.45,3223.31,3166.30,3186.02,258220000,3186.02 +1992-10-19,3174.41,3211.15,3154.14,3188.45,218670000,3188.45 +1992-10-16,3174.68,3203.85,3123.89,3174.41,234480000,3174.41 +1992-10-15,3195.48,3207.37,3147.66,3174.68,206990000,3174.68 +1992-10-14,3201.42,3225.74,3167.11,3195.48,175440000,3195.48 +1992-10-13,3174.41,3222.77,3159.28,3201.42,184120000,3201.42 +1992-10-12,3140.10,3186.29,3140.10,3174.41,126590000,3174.41 +1992-10-09,3176.03,3176.57,3120.37,3136.58,178910000,3136.58 +1992-10-08,3152.25,3195.48,3135.77,3176.03,203780000,3176.03 +1992-10-07,3178.19,3200.88,3136.85,3152.25,183100000,3152.25 +1992-10-06,3179.00,3205.20,3147.93,3178.19,196660000,3178.19 +1992-10-05,3197.10,3197.10,3087.41,3179.00,284380000,3179.00 +1992-10-02,3254.37,3259.51,3193.59,3200.61,187400000,3200.61 +1992-10-01,3271.66,3291.39,3237.35,3254.37,203670000,3254.37 +1992-09-30,3266.80,3291.66,3247.89,3271.66,184220000,3271.66 +1992-09-29,3276.26,3295.98,3247.08,3266.80,170350000,3266.80 +1992-09-28,3250.32,3283.01,3226.55,3276.26,157480000,3276.26 +1992-09-25,3287.87,3292.20,3226.82,3250.32,213650000,3250.32 +1992-09-24,3278.69,3310.84,3267.07,3287.87,187770000,3287.87 +1992-09-23,3280.85,3302.19,3252.48,3278.69,204350000,3278.69 +1992-09-22,3320.83,3327.05,3270.58,3280.85,186990000,3280.85 +1992-09-21,3327.05,3341.91,3295.71,3320.83,153900000,3320.83 +1992-09-18,3315.70,3340.56,3297.87,3327.05,236080000,3327.05 +1992-09-17,3319.21,3347.04,3292.20,3315.70,188270000,3315.70 +1992-09-16,3327.32,3353.52,3288.95,3319.21,229380000,3319.21 +1992-09-15,3372.98,3372.98,3317.86,3327.32,200220000,3327.32 +1992-09-14,3326.51,3391.35,3326.51,3376.22,250900000,3376.22 +1992-09-11,3305.16,3327.32,3285.44,3305.70,180640000,3305.70 +1992-09-10,3271.39,3318.94,3261.67,3305.16,221970000,3305.16 +1992-09-09,3260.59,3284.09,3244.92,3271.39,172890000,3271.39 +1992-09-08,3281.93,3292.20,3245.73,3260.59,160930000,3260.59 +1992-09-04,3292.20,3306.23,3265.16,3281.93,124340000,3281.93 +1992-09-03,3290.31,3325.95,3268.94,3292.20,212540000,3292.20 +1992-09-02,3266.26,3301.90,3249.76,3290.31,187010000,3290.31 +1992-09-01,3257.35,3279.21,3239.77,3266.26,172650000,3266.26 +1992-08-31,3267.61,3287.04,3244.90,3257.35,160230000,3257.35 +1992-08-28,3254.64,3280.56,3237.88,3267.61,152230000,3267.61 +1992-08-27,3246.81,3285.69,3237.06,3254.64,178490000,3254.64 +1992-08-26,3232.22,3261.38,3217.07,3246.81,171840000,3246.81 +1992-08-25,3228.17,3253.00,3200.86,3232.22,201630000,3232.22 +1992-08-24,3254.09,3258.41,3207.08,3228.17,165130000,3228.17 +1992-08-21,3304.89,3330.27,3243.55,3254.09,202640000,3254.09 +1992-08-20,3307.06,3326.22,3285.69,3304.89,183390000,3304.89 +1992-08-19,3329.48,3347.56,3302.44,3307.06,186710000,3307.06 +1992-08-18,3324.89,3343.80,3309.22,3329.48,169880000,3329.48 +1992-08-17,3328.94,3350.28,3310.03,3324.89,152750000,3324.89 +1992-08-14,3313.27,3342.16,3300.82,3328.94,166180000,3328.94 +1992-08-13,3320.83,3347.29,3294.07,3313.27,185700000,3313.27 +1992-08-12,3331.10,3349.72,3304.88,3320.83,176440000,3320.83 +1992-08-11,3337.58,3356.48,3304.34,3331.10,173810000,3331.10 +1992-08-10,3332.18,3350.26,3305.14,3337.58,142440000,3337.58 +1992-08-07,3340.56,3378.38,3318.40,3332.18,188340000,3332.18 +1992-08-06,3365.14,3374.33,3327.05,3340.56,181390000,3340.56 +1992-08-05,3384.32,3391.35,3347.58,3365.14,172410000,3365.14 +1992-08-04,3395.40,3405.12,3367.03,3384.32,166740000,3384.32 +1992-08-03,3393.78,3413.23,3365.14,3395.40,164360000,3395.40 +1992-07-31,3391.89,3414.85,3371.89,3393.78,172920000,3393.78 +1992-07-30,3379.19,3409.16,3351.07,3391.89,193280000,3391.89 +1992-07-29,3345.13,3399.70,3345.13,3379.19,275760000,3379.19 +1992-07-28,3282.20,3345.67,3277.59,3334.07,217950000,3334.07 +1992-07-27,3285.71,3311.38,3265.99,3282.20,164680000,3282.20 +1992-07-24,3290.04,3305.68,3261.94,3285.71,163870000,3285.71 +1992-07-23,3277.61,3308.39,3255.43,3290.04,175460000,3290.04 +1992-07-22,3308.41,3310.28,3262.19,3277.61,190130000,3277.61 +1992-07-21,3303.00,3335.94,3292.45,3308.41,173800000,3308.41 +1992-07-20,3318.38,3318.38,3271.11,3303.00,165730000,3303.00 +1992-07-17,3359.74,3359.74,3308.14,3331.64,187520000,3331.64 +1992-07-16,3345.42,3375.66,3318.65,3361.63,206040000,3361.63 +1992-07-15,3358.39,3381.87,3319.73,3345.42,206550000,3345.42 +1992-07-14,3337.31,3371.88,3315.95,3358.39,195310000,3358.39 +1992-07-13,3330.56,3357.55,3315.41,3337.31,148820000,3337.31 +1992-07-10,3324.08,3355.93,3304.88,3330.56,164750000,3330.56 +1992-07-09,3293.28,3345.40,3292.45,3324.08,207970000,3324.08 +1992-07-08,3295.17,3322.98,3258.70,3293.28,200020000,3293.28 +1992-07-07,3339.21,3360.80,3285.69,3295.17,218740000,3295.17 +1992-07-06,3330.29,3367.57,3295.96,3339.21,186410000,3339.21 +1992-07-02,3354.10,3385.43,3303.30,3330.29,220130000,3330.29 +1992-07-01,3318.52,3366.43,3305.45,3354.10,214240000,3354.10 +1992-06-30,3319.86,3347.71,3295.01,3318.52,195520000,3318.52 +1992-06-29,3282.41,3330.32,3278.16,3319.86,176710000,3319.86 +1992-06-26,3284.01,3303.04,3254.89,3282.41,154430000,3282.41 +1992-06-25,3290.70,3319.62,3261.31,3284.01,182310000,3284.01 +1992-06-24,3285.62,3317.75,3262.11,3290.70,193850000,3290.70 +1992-06-23,3280.80,3312.13,3263.45,3285.62,189170000,3285.62 +1992-06-22,3285.35,3298.22,3242.32,3280.80,169340000,3280.80 +1992-06-19,3274.12,3313.20,3264.79,3285.35,233440000,3285.35 +1992-06-18,3287.76,3313.74,3245.53,3274.12,215080000,3274.12 +1992-06-17,3329.49,3347.98,3271.21,3287.76,227650000,3287.76 +1992-06-16,3354.90,3379.01,3321.76,3329.49,178850000,3329.49 +1992-06-15,3354.36,3371.79,3327.11,3354.90,159100000,3354.90 +1992-06-12,3351.51,3397.68,3339.62,3354.36,181830000,3354.36 +1992-06-11,3343.22,3374.61,3301.51,3351.51,192940000,3351.51 +1992-06-10,3369.92,3385.76,3328.99,3343.22,206380000,3343.22 +1992-06-09,3404.14,3412.98,3350.25,3369.92,190780000,3369.92 +1992-06-08,3398.69,3422.83,3370.21,3404.14,161130000,3404.14 +1992-06-05,3399.73,3424.64,3356.98,3398.69,199050000,3398.69 +1992-06-04,3406.99,3428.02,3376.43,3399.73,204360000,3399.73 +1992-06-03,3396.10,3431.13,3378.76,3406.99,215730000,3406.99 +1992-06-02,3413.21,3435.27,3380.84,3396.10,200660000,3396.10 +1992-06-01,3396.88,3424.39,3365.02,3413.21,180780000,3413.21 +1992-05-29,3398.43,3433.98,3384.20,3396.88,202730000,3396.88 +1992-05-28,3370.44,3408.31,3354.91,3398.43,195230000,3398.43 +1992-05-27,3364.21,3396.65,3337.29,3370.44,179980000,3370.44 +1992-05-26,3386.77,3410.91,3338.84,3364.21,196950000,3364.21 +1992-05-22,3378.71,3408.49,3364.08,3386.77,146640000,3386.77 +1992-05-21,3393.84,3402.88,3354.80,3378.71,182190000,3378.71 +1992-05-20,3397.99,3421.42,3376.04,3393.84,198170000,3393.84 +1992-05-19,3376.03,3413.37,3350.41,3397.99,187030000,3397.99 +1992-05-18,3353.09,3398.24,3349.93,3376.03,149830000,3376.03 +1992-05-15,3368.88,3380.30,3330.43,3353.09,192040000,3353.09 +1992-05-14,3391.98,3397.46,3347.59,3368.88,187700000,3368.88 +1992-05-13,3385.12,3414.17,3362.93,3391.98,171610000,3391.98 +1992-05-12,3397.58,3414.81,3361.51,3385.12,192810000,3385.12 +1992-05-11,3369.41,3410.11,3363.82,3397.58,155730000,3397.58 +1992-05-08,3363.37,3388.41,3344.59,3369.41,168670000,3369.41 +1992-05-07,3369.41,3390.65,3343.25,3363.37,168910000,3363.37 +1992-05-06,3359.35,3398.70,3346.60,3369.41,199070000,3369.41 +1992-05-05,3378.13,3393.78,3346.15,3359.35,198860000,3359.35 +1992-05-04,3340.79,3394.68,3340.79,3378.13,174520000,3378.13 +1992-05-01,3359.12,3375.67,3316.64,3336.09,177360000,3336.09 +1992-04-30,3333.18,3377.01,3314.40,3359.12,223160000,3359.12 +1992-04-29,3307.92,3353.75,3295.39,3333.18,199740000,3333.18 +1992-04-28,3304.56,3329.83,3273.03,3307.92,186740000,3307.92 +1992-04-27,3324.46,3340.79,3284.66,3304.56,172820000,3304.56 +1992-04-24,3348.61,3381.48,3305.23,3324.46,198740000,3324.46 +1992-04-23,3338.77,3376.34,3298.52,3348.61,235740000,3348.61 +1992-04-22,3343.25,3366.72,3309.48,3338.77,218790000,3338.77 +1992-04-21,3336.31,3366.50,3305.68,3343.25,214400000,3343.25 +1992-04-20,3366.50,3375.67,3300.98,3336.31,191910000,3336.31 +1992-04-16,3353.76,3387.97,3321.33,3366.50,232480000,3366.50 +1992-04-15,3306.13,3370.08,3296.51,3353.76,228400000,3353.76 +1992-04-14,3269.90,3336.54,3259.39,3306.13,232040000,3306.13 +1992-04-13,3255.37,3293.60,3230.77,3269.90,143100000,3269.90 +1992-04-10,3227.64,3280.86,3227.64,3255.37,199450000,3255.37 +1992-04-09,3181.35,3245.08,3171.06,3224.96,231330000,3224.96 +1992-04-08,3213.55,3221.38,3141.77,3181.35,249210000,3181.35 +1992-04-07,3275.49,3291.81,3207.51,3213.55,205110000,3213.55 +1992-04-06,3249.11,3295.84,3238.37,3275.49,179330000,3275.49 +1992-04-03,3234.12,3271.91,3201.92,3249.11,188530000,3249.11 +1992-04-02,3249.33,3277.06,3209.08,3234.12,185110000,3234.12 +1992-04-01,3235.47,3262.52,3202.37,3249.33,186260000,3249.33 +1992-03-31,3235.24,3272.81,3216.46,3235.47,182200000,3235.47 +1992-03-30,3231.44,3260.06,3215.79,3235.24,133980000,3235.24 +1992-03-27,3267.67,3272.58,3218.92,3231.44,166140000,3231.44 +1992-03-26,3259.39,3288.91,3245.08,3267.67,176690000,3267.67 +1992-03-25,3260.96,3290.47,3238.15,3259.39,192080000,3259.39 +1992-03-24,3272.14,3296.96,3242.84,3260.96,191580000,3260.96 +1992-03-23,3276.39,3288.68,3249.33,3272.14,156620000,3272.14 +1992-03-20,3261.40,3292.48,3240.83,3276.39,246170000,3276.39 +1992-03-19,3254.25,3286.22,3240.38,3261.40,197240000,3261.40 +1992-03-18,3256.04,3281.98,3230.10,3254.25,190800000,3254.25 +1992-03-17,3236.36,3272.58,3222.27,3256.04,187240000,3256.04 +1992-03-16,3235.91,3249.11,3201.25,3236.36,151280000,3236.36 +1992-03-13,3208.63,3252.23,3203.71,3235.91,176000000,3235.91 +1992-03-12,3208.63,3232.33,3176.21,3208.63,180240000,3208.63 +1992-03-11,3230.99,3242.17,3189.85,3208.63,185320000,3208.63 +1992-03-10,3215.12,3259.17,3207.29,3230.99,194530000,3230.99 +1992-03-09,3221.60,3242.62,3188.95,3215.12,160620000,3215.12 +1992-03-06,3241.50,3262.97,3204.61,3221.60,185040000,3221.60 +1992-03-05,3268.56,3283.54,3226.74,3241.50,205730000,3241.50 +1992-03-04,3290.25,3318.42,3256.04,3268.56,206770000,3268.56 +1992-03-03,3275.27,3313.28,3258.50,3290.25,200860000,3290.25 +1992-03-02,3267.67,3298.97,3242.39,3275.27,180380000,3275.27 +1992-02-28,3269.45,3304.11,3247.09,3267.67,202130000,3267.67 +1992-02-27,3283.32,3300.54,3251.79,3269.45,215050000,3269.45 +1992-02-26,3257.83,3305.01,3246.20,3283.32,240690000,3283.32 +1992-02-25,3282.42,3293.60,3226.74,3257.83,208400000,3257.83 +1992-02-24,3280.19,3305.01,3253.58,3282.42,177470000,3282.42 +1992-02-21,3280.64,3307.47,3242.17,3280.19,258700000,3280.19 +1992-02-20,3230.32,3304.34,3224.28,3280.64,270550000,3280.64 +1992-02-19,3224.73,3259.17,3199.02,3230.32,232900000,3230.32 +1992-02-18,3245.97,3280.19,3195.66,3224.73,234270000,3224.73 +1992-02-14,3246.65,3271.91,3208.63,3245.97,214840000,3245.97 +1992-02-13,3276.83,3296.73,3226.07,3246.65,229360000,3246.65 +1992-02-12,3251.57,3291.37,3233.68,3276.83,230230000,3276.83 +1992-02-11,3245.08,3277.28,3222.49,3251.57,200110000,3251.57 +1992-02-10,3225.40,3269.00,3208.85,3245.08,184390000,3245.08 +1992-02-07,3255.59,3283.09,3199.91,3225.40,230950000,3225.40 +1992-02-06,3257.60,3285.55,3224.95,3255.59,238210000,3255.59 +1992-02-05,3272.81,3299.87,3233.68,3257.60,261960000,3257.60 +1992-02-04,3234.12,3283.09,3208.63,3272.81,231530000,3272.81 +1992-02-03,3223.39,3261.40,3193.42,3234.12,182150000,3234.12 +1992-01-31,3244.86,3274.37,3207.96,3223.39,197060000,3223.39 +1992-01-30,3224.96,3269.68,3200.58,3244.86,194670000,3244.86 +1992-01-29,3272.14,3313.51,3204.16,3224.96,248900000,3224.96 +1992-01-28,3240.61,3298.30,3230.99,3272.14,217070000,3272.14 +1992-01-27,3232.78,3267.44,3216.23,3240.61,190430000,3240.61 +1992-01-24,3226.74,3264.31,3203.71,3232.78,213600000,3232.78 +1992-01-23,3255.81,3279.52,3205.95,3226.74,229680000,3226.74 +1992-01-22,3223.39,3272.80,3190.96,3255.81,225030000,3255.81 +1992-01-21,3254.03,3275.49,3194.09,3223.39,218650000,3223.39 +1992-01-20,3264.98,3283.32,3230.99,3254.03,180870000,3254.03 +1992-01-17,3249.55,3297.63,3224.28,3264.98,284560000,3264.98 +1992-01-16,3258.50,3289.13,3200.80,3249.55,333750000,3249.55 +1992-01-15,3246.20,3299.19,3207.73,3258.50,312400000,3258.50 +1992-01-14,3185.60,3255.81,3167.93,3246.20,264540000,3246.20 +1992-01-13,3199.46,3215.56,3161.67,3185.60,200270000,3185.60 +1992-01-10,3209.53,3235.91,3165.92,3199.46,236060000,3199.46 +1992-01-09,3203.94,3246.64,3173.75,3209.53,291780000,3209.53 +1992-01-08,3204.83,3245.53,3164.58,3203.94,289690000,3203.94 +1992-01-07,3200.13,3224.73,3165.25,3204.83,251280000,3204.83 +1992-01-06,3201.48,3230.32,3166.37,3200.13,241980000,3200.13 +1992-01-03,3172.41,3221.38,3156.30,3201.48,219170000,3201.48 +1992-01-02,3168.83,3184.70,3119.86,3172.41,203610000,3172.41 +1991-12-31,3163.91,3204.61,3121.20,3168.83,247670000,3168.83 +1991-12-30,3101.52,3174.64,3090.79,3163.91,245450000,3163.91 +1991-12-27,3082.96,3121.65,3063.73,3101.52,157940000,3101.52 +1991-12-26,3050.98,3101.97,3036.23,3082.96,149200000,3082.96 +1991-12-24,3022.58,3087.88,3015.65,3050.98,162300000,3050.98 +1991-12-23,2934.48,3037.57,2919.05,3022.58,228730000,3022.58 +1991-12-20,2914.36,2965.79,2907.65,2934.48,313810000,2934.48 +1991-12-19,2908.09,2927.10,2881.48,2914.36,199830000,2914.36 +1991-12-18,2902.28,2921.29,2870.30,2908.09,192350000,2908.09 +1991-12-17,2919.05,2936.27,2886.40,2902.28,191280000,2902.28 +1991-12-16,2914.36,2946.33,2900.49,2919.05,173010000,2919.05 +1991-12-13,2895.13,2936.72,2893.34,2914.36,195790000,2914.36 +1991-12-12,2865.38,2911.67,2861.14,2895.13,192930000,2895.13 +1991-12-11,2863.82,2889.53,2832.29,2865.38,207410000,2865.38 +1991-12-10,2871.65,2891.10,2841.23,2863.82,191800000,2863.82 +1991-12-09,2886.40,2913.46,2856.22,2871.65,174700000,2871.65 +1991-12-06,2889.09,2924.87,2854.65,2886.40,198170000,2886.40 +1991-12-05,2911.67,2923.75,2874.77,2889.09,165660000,2889.09 +1991-12-04,2929.56,2945.66,2892.22,2911.67,186380000,2911.67 +1991-12-03,2935.38,2958.18,2904.74,2929.56,187160000,2929.56 +1991-12-02,2894.68,2941.64,2855.32,2935.38,188050000,2935.38 +1991-11-29,2900.04,2913.46,2877.46,2894.68,77420000,2894.68 +1991-11-27,2916.14,2929.11,2883.72,2900.04,159790000,2900.04 +1991-11-26,2902.06,2942.31,2861.14,2916.14,213650000,2916.14 +1991-11-25,2902.73,2921.96,2870.30,2902.06,173520000,2902.06 +1991-11-22,2932.69,2940.30,2880.81,2902.73,188110000,2902.73 +1991-11-21,2930.01,2953.94,2902.28,2932.69,195060000,2932.69 +1991-11-20,2931.57,2973.61,2912.12,2930.01,192670000,2930.01 +1991-11-19,2960.20,2960.20,2883.72,2931.57,243880000,2931.57 +1991-11-18,2943.20,2990.61,2923.30,2972.72,238170000,2972.72 +1991-11-15,3063.51,3069.54,2936.05,2943.20,236000000,2943.20 +1991-11-14,3065.30,3084.97,3037.34,3063.51,200030000,3063.51 +1991-11-13,3054.11,3075.58,3023.70,3065.30,184080000,3065.30 +1991-11-12,3042.26,3078.71,3028.62,3054.11,198600000,3054.11 +1991-11-11,3045.62,3057.69,3025.27,3042.26,128910000,3042.26 +1991-11-08,3054.11,3080.95,3034.66,3045.62,183260000,3045.62 +1991-11-07,3038.46,3066.19,3020.35,3054.11,205440000,3054.11 +1991-11-06,3031.31,3056.57,3010.51,3038.46,167370000,3038.46 +1991-11-05,3045.62,3062.84,3015.88,3031.31,171950000,3031.31 +1991-11-04,3056.35,3061.27,3019.01,3045.62,155530000,3045.62 +1991-11-01,3069.10,3091.91,3031.75,3056.35,205750000,3056.35 +1991-10-31,3071.78,3091.01,3045.62,3069.10,179490000,3069.10 +1991-10-30,3061.94,3090.12,3038.24,3071.78,195340000,3071.78 +1991-10-29,3045.62,3077.82,3020.13,3061.94,192700000,3061.94 +1991-10-28,3004.92,3055.23,3001.57,3045.62,160220000,3045.62 +1991-10-25,3016.32,3034.44,2983.01,3004.92,167260000,3004.92 +1991-10-24,3040.92,3047.63,2991.73,3016.32,178990000,3016.32 +1991-10-23,3039.80,3065.52,3015.21,3040.92,185340000,3040.92 +1991-10-22,3060.38,3084.53,3020.57,3039.80,194120000,3039.80 +1991-10-21,3077.15,3085.20,3042.49,3060.38,153770000,3060.38 +1991-10-18,3053.00,3089.45,3045.62,3077.15,204030000,3077.15 +1991-10-17,3061.72,3077.15,3027.06,3053.00,202780000,3053.00 +1991-10-16,3041.37,3082.29,3016.10,3061.72,225290000,3061.72 +1991-10-15,3019.45,3057.69,3000.22,3041.37,213440000,3041.37 +1991-10-14,2983.68,3026.39,2975.85,3019.45,130110000,3019.45 +1991-10-11,2976.52,3000.89,2957.51,2983.68,146560000,2983.68 +1991-10-10,2946.33,2985.47,2930.23,2976.52,164120000,2976.52 +1991-10-09,2963.77,2984.79,2925.54,2946.33,186590000,2946.33 +1991-10-08,2942.75,2983.68,2927.77,2963.77,170000000,2963.77 +1991-10-07,2961.76,2973.17,2926.21,2942.75,148430000,2942.75 +1991-10-04,2984.79,3007.16,2956.17,2961.76,163930000,2961.76 +1991-10-03,3012.52,3021.24,2972.50,2984.79,174230000,2984.79 +1991-10-02,3018.34,3040.25,2992.40,3012.52,166290000,3012.52 +1991-10-01,3016.77,3043.60,3002.46,3018.34,163520000,3018.34 +1991-09-30,3006.04,3032.87,2982.78,3016.77,146740000,3016.77 +1991-09-27,3017.22,3040.70,2989.49,3006.04,160430000,3006.04 +1991-09-26,3021.02,3040.70,2996.87,3017.22,160190000,3017.22 +1991-09-25,3029.07,3048.52,3004.92,3021.02,153800000,3021.02 +1991-09-24,3010.51,3043.38,2995.97,3029.07,170300000,3029.07 +1991-09-23,3019.23,3037.79,2997.76,3010.51,145530000,3010.51 +1991-09-20,3024.37,3045.39,3002.46,3019.23,241340000,3019.23 +1991-09-19,3017.89,3050.76,3002.91,3024.37,210770000,3024.37 +1991-09-18,3013.19,3025.49,2993.52,3017.89,141280000,3017.89 +1991-09-17,3015.21,3036.00,2992.62,3013.19,168310000,3013.19 +1991-09-16,2985.69,3023.03,2973.61,3015.21,171960000,3015.21 +1991-09-13,3007.83,3021.47,2963.10,2985.69,167800000,2985.69 +1991-09-12,2987.03,3023.26,2977.64,3007.83,160310000,3007.83 +1991-09-11,2982.56,3004.70,2964.67,2987.03,147910000,2987.03 +1991-09-10,3007.16,3012.97,2967.80,2982.56,146730000,2982.56 +1991-09-09,3011.63,3025.49,2987.70,3007.16,109250000,3007.16 +1991-09-06,3008.50,3033.32,2987.48,3011.63,166410000,3011.63 +1991-09-05,3008.50,3031.98,2989.71,3008.50,162250000,3008.50 +1991-09-04,3017.67,3034.66,2990.83,3008.50,156770000,3008.50 +1991-09-03,3043.60,3066.64,3013.64,3017.67,153550000,3017.67 +1991-08-30,3049.64,3059.26,3024.82,3043.60,125830000,3043.60 +1991-08-29,3055.23,3068.65,3030.86,3049.64,150180000,3049.64 +1991-08-28,3026.16,3064.85,3018.11,3055.23,169590000,3055.23 +1991-08-27,3039.36,3047.41,3007.83,3026.16,143920000,3026.16 +1991-08-26,3040.25,3057.02,3020.80,3039.36,128400000,3039.36 +1991-08-23,3007.38,3065.97,2999.11,3040.25,187010000,3040.25 +1991-08-22,3001.79,3029.96,2989.94,3007.38,172900000,3007.38 +1991-08-21,2941.64,3009.17,2941.64,3001.79,231720000,3001.79 +1991-08-20,2898.03,2937.39,2886.85,2913.69,184090000,2913.69 +1991-08-19,2924.42,2924.42,2836.31,2898.03,229590000,2898.03 +1991-08-16,2998.43,3013.64,2945.89,2968.02,188360000,2968.02 +1991-08-15,3005.37,3029.96,2985.24,2998.43,174310000,2998.43 +1991-08-14,3008.72,3036.67,2988.60,3005.37,195890000,3005.37 +1991-08-13,3001.34,3041.14,2989.27,3008.72,211890000,3008.72 +1991-08-12,2996.20,3013.42,2974.06,3001.34,145280000,3001.34 +1991-08-09,3013.86,3036.45,2986.81,2996.20,143610000,2996.20 +1991-08-08,3026.61,3045.17,2995.30,3013.86,163620000,3013.86 +1991-08-07,3027.28,3050.54,3008.50,3026.61,170820000,3026.61 +1991-08-06,2989.04,3034.88,2970.48,3027.28,174340000,3027.28 +1991-08-05,3006.26,3019.68,2978.76,2989.04,125790000,2989.04 +1991-08-02,3017.67,3042.26,2994.41,3006.26,162050000,3006.26 +1991-08-01,3024.82,3037.12,2997.76,3017.67,169920000,3017.67 +1991-07-31,3016.32,3039.58,2999.11,3024.82,166650000,3024.82 +1991-07-30,2985.24,3029.07,2983.68,3016.32,168950000,3016.32 +1991-07-29,2972.50,2996.20,2957.07,2985.24,135240000,2985.24 +1991-07-26,2980.10,2994.86,2953.26,2972.50,127690000,2972.50 +1991-07-25,2966.23,2999.11,2947.23,2980.10,145510000,2980.10 +1991-07-24,2983.23,3003.13,2950.80,2966.23,158530000,2966.23 +1991-07-23,3012.97,3038.24,2972.94,2983.23,160010000,2983.23 +1991-07-22,3016.32,3034.44,2990.83,3012.97,148880000,3012.97 +1991-07-19,3016.32,3036.23,2989.49,3016.32,187290000,3016.32 +1991-07-18,2978.76,3026.61,2970.93,3016.32,199470000,3016.32 +1991-07-17,2983.90,3011.18,2961.54,2978.76,194150000,2978.76 +1991-07-16,2990.61,3012.52,2962.88,2983.90,182740000,2983.90 +1991-07-15,2980.77,3007.38,2965.79,2990.61,159340000,2990.61 +1991-07-12,2959.75,3003.35,2942.98,2980.77,173060000,2980.77 +1991-07-11,2944.77,2975.63,2933.36,2959.75,157680000,2959.75 +1991-07-10,2947.23,2990.83,2927.77,2944.77,178170000,2944.77 +1991-07-09,2961.99,2980.10,2934.03,2947.23,151430000,2947.23 +1991-07-08,2932.47,2966.23,2897.36,2961.99,138210000,2961.99 +1991-07-05,2934.70,2953.26,2917.71,2932.47,69790000,2932.47 +1991-07-03,2957.07,2957.07,2915.03,2934.70,139290000,2934.70 +1991-07-02,2958.41,2987.03,2939.62,2972.72,157140000,2972.72 +1991-07-01,2911.67,2971.15,2911.67,2958.41,166880000,2958.41 +1991-06-28,2934.03,2934.03,2879.25,2906.75,162670000,2906.75 +1991-06-27,2913.01,2946.56,2909.21,2934.93,155820000,2934.93 +1991-06-26,2910.11,2934.03,2879.25,2913.01,186830000,2913.01 +1991-06-25,2913.01,2938.51,2887.97,2910.11,155450000,2910.11 +1991-06-24,2957.29,2957.29,2904.29,2913.01,137700000,2913.01 +1991-06-21,2953.94,2977.64,2937.84,2965.56,193110000,2965.56 +1991-06-20,2955.50,2969.81,2927.33,2953.94,163780000,2953.94 +1991-06-19,2978.31,2978.31,2933.59,2955.50,156070000,2955.50 +1991-06-18,2993.96,3022.14,2970.48,2986.81,154900000,2986.81 +1991-06-17,3000.45,3021.69,2977.86,2993.96,133910000,2993.96 +1991-06-14,2967.58,3014.98,2967.58,3000.45,167530000,3000.45 +1991-06-13,2961.99,2982.11,2942.53,2965.12,144870000,2965.12 +1991-06-12,2985.91,2987.25,2928.89,2961.99,165720000,2961.99 +1991-06-11,2975.40,3012.08,2963.10,2985.91,161240000,2985.91 +1991-06-10,2976.74,2992.84,2958.41,2975.40,127420000,2975.40 +1991-06-07,2994.86,3005.14,2954.61,2976.74,167830000,2976.74 +1991-06-06,3005.37,3027.06,2975.63,2994.86,168050000,2994.86 +1991-06-05,3027.95,3042.93,2989.49,3005.37,186300000,3005.37 +1991-06-04,3035.33,3042.04,2992.62,3027.95,180170000,3027.95 +1991-06-03,3027.50,3057.47,3000.67,3035.33,173710000,3035.33 +1991-05-31,3000.45,3044.50,2972.94,3027.50,231680000,3027.50 +1991-05-30,2969.59,3022.81,2950.58,3000.45,234090000,3000.45 +1991-05-29,2958.86,2987.92,2940.74,2969.59,188150000,2969.59 +1991-05-28,2913.91,2965.12,2903.85,2958.86,161950000,2958.86 +1991-05-24,2900.04,2931.13,2893.78,2913.91,124500000,2913.91 +1991-05-23,2910.33,2935.38,2881.04,2900.04,173080000,2900.04 +1991-05-22,2906.08,2930.01,2881.93,2910.33,159310000,2910.33 +1991-05-21,2892.22,2931.80,2875.00,2906.08,186860000,2906.08 +1991-05-20,2886.63,2910.78,2872.76,2892.22,109510000,2892.22 +1991-05-17,2894.01,2908.54,2860.02,2886.63,174210000,2886.63 +1991-05-16,2865.38,2905.64,2863.82,2894.01,154460000,2894.01 +1991-05-15,2886.85,2901.83,2834.53,2865.38,193110000,2865.38 +1991-05-14,2922.85,2922.85,2870.08,2886.85,207910000,2886.85 +1991-05-13,2920.17,2945.44,2896.24,2924.42,129620000,2924.42 +1991-05-10,2971.15,2986.14,2906.08,2920.17,172730000,2920.17 +1991-05-09,2930.90,2983.68,2926.88,2971.15,180210000,2971.15 +1991-05-08,2917.49,2945.21,2898.70,2930.90,157240000,2930.90 +1991-05-07,2941.64,2962.66,2906.53,2917.49,153290000,2917.49 +1991-05-06,2938.86,2956.84,2911.45,2941.64,128360000,2941.64 +1991-05-03,2938.61,2959.90,2906.93,2938.86,158160000,2938.86 +1991-05-02,2930.20,2966.34,2917.33,2938.61,187090000,2938.61 +1991-05-01,2887.87,2945.30,2882.43,2930.20,181900000,2930.20 +1991-04-30,2876.98,2929.21,2859.41,2887.87,204930000,2887.87 +1991-04-29,2912.38,2941.09,2869.55,2876.98,149860000,2876.98 +1991-04-26,2921.04,2934.90,2888.61,2912.38,154550000,2912.38 +1991-04-25,2949.51,2958.42,2905.20,2921.04,166940000,2921.04 +1991-04-24,2930.45,2965.10,2913.37,2949.51,166800000,2949.51 +1991-04-23,2927.72,2957.92,2905.94,2930.45,167840000,2930.45 +1991-04-22,2962.13,2962.13,2911.63,2927.72,164410000,2927.72 +1991-04-19,2999.26,3000.25,2943.56,2965.59,195510000,2965.59 +1991-04-18,3004.46,3027.72,2976.24,2999.26,217410000,2999.26 +1991-04-17,2986.88,3030.45,2963.12,3004.46,246930000,3004.46 +1991-04-16,2933.17,2995.79,2912.13,2986.88,214480000,2986.88 +1991-04-15,2920.79,2957.18,2896.29,2933.17,161800000,2933.17 +1991-04-12,2905.45,2946.53,2884.16,2920.79,198610000,2920.79 +1991-04-11,2877.72,2937.62,2877.72,2905.45,196570000,2905.45 +1991-04-10,2873.02,2902.48,2848.51,2874.50,167940000,2874.50 +1991-04-09,2918.56,2932.42,2863.36,2873.02,169940000,2873.02 +1991-04-08,2896.78,2929.21,2877.72,2918.56,138580000,2918.56 +1991-04-05,2924.50,2949.26,2876.98,2896.78,187410000,2896.78 +1991-04-04,2926.73,2959.41,2899.75,2924.50,198120000,2924.50 +1991-04-03,2945.05,2970.54,2915.84,2926.73,213720000,2926.73 +1991-04-02,2881.19,2951.98,2878.22,2945.05,189530000,2945.05 +1991-04-01,2913.86,2919.31,2868.32,2881.19,144010000,2881.19 +1991-03-28,2917.57,2942.08,2893.32,2913.86,150750000,2913.86 +1991-03-27,2914.85,2956.93,2886.14,2917.57,201830000,2917.57 +1991-03-26,2865.84,2924.01,2848.02,2914.85,198720000,2914.85 +1991-03-25,2858.91,2897.52,2837.87,2865.84,153920000,2865.84 +1991-03-22,2855.45,2879.95,2829.21,2858.91,160890000,2858.91 +1991-03-21,2872.03,2907.92,2841.58,2855.45,199830000,2855.45 +1991-03-20,2867.82,2897.03,2840.84,2872.03,196810000,2872.03 +1991-03-19,2908.17,2908.17,2840.84,2867.82,177070000,2867.82 +1991-03-18,2948.27,2960.64,2899.75,2929.95,163100000,2929.95 +1991-03-15,2952.23,2966.58,2918.81,2948.27,237660000,2948.27 +1991-03-14,2955.20,3000.00,2925.74,2952.23,231000000,2952.23 +1991-03-13,2922.52,2967.82,2910.89,2955.20,176000000,2955.20 +1991-03-12,2939.36,2962.13,2906.68,2922.52,176440000,2922.52 +1991-03-11,2955.20,2975.50,2923.27,2939.36,161600000,2939.36 +1991-03-08,2963.37,3003.47,2934.90,2955.20,206850000,2955.20 +1991-03-07,2973.27,2998.51,2948.51,2963.37,197060000,2963.37 +1991-03-06,2972.52,3017.82,2957.67,2973.27,262290000,2973.27 +1991-03-05,2914.11,2995.54,2913.86,2972.52,253700000,2972.52 +1991-03-04,2909.90,2950.74,2897.03,2914.11,199830000,2914.11 +1991-03-01,2882.18,2923.51,2846.78,2909.90,221510000,2909.90 +1991-02-28,2889.11,2923.51,2858.42,2882.18,223010000,2882.18 +1991-02-27,2864.60,2915.35,2839.85,2889.11,211410000,2889.11 +1991-02-26,2887.87,2895.30,2840.10,2864.60,164170000,2864.60 +1991-02-25,2889.36,2935.89,2865.35,2887.87,193820000,2887.87 +1991-02-22,2891.83,2945.79,2860.40,2889.36,218760000,2889.36 +1991-02-21,2899.01,2927.72,2871.29,2891.83,180770000,2891.83 +1991-02-20,2923.76,2923.76,2879.46,2899.01,185680000,2899.01 +1991-02-19,2934.65,2955.20,2895.30,2932.18,189900000,2932.18 +1991-02-15,2877.23,2947.28,2868.07,2934.65,222370000,2934.65 +1991-02-14,2909.16,2942.08,2852.48,2877.23,230750000,2877.23 +1991-02-13,2874.75,2918.32,2848.51,2909.16,209960000,2909.16 +1991-02-12,2902.23,2923.02,2848.27,2874.75,256160000,2874.75 +1991-02-11,2830.69,2910.64,2822.52,2902.23,265930000,2902.23 +1991-02-08,2810.64,2847.28,2787.13,2830.69,187830000,2830.69 +1991-02-07,2830.94,2875.50,2790.59,2810.64,292190000,2810.64 +1991-02-06,2788.37,2844.80,2760.15,2830.94,276940000,2830.94 +1991-02-05,2772.28,2805.20,2742.82,2788.37,290570000,2788.37 +1991-02-04,2730.69,2791.83,2714.85,2772.28,250750000,2772.28 +1991-02-01,2736.39,2764.60,2694.31,2730.69,246670000,2730.69 +1991-01-31,2713.12,2747.28,2691.58,2736.39,204240000,2736.39 +1991-01-30,2662.62,2725.99,2654.70,2713.12,226790000,2713.12 +1991-01-29,2654.46,2677.23,2627.23,2662.62,155740000,2662.62 +1991-01-28,2659.41,2688.61,2635.15,2654.46,141270000,2654.46 +1991-01-25,2643.07,2679.46,2623.27,2659.41,194350000,2659.41 +1991-01-24,2619.06,2667.33,2615.10,2643.07,223150000,2643.07 +1991-01-23,2603.22,2645.54,2584.65,2619.06,169440000,2619.06 +1991-01-22,2629.21,2645.05,2586.39,2603.22,175590000,2603.22 +1991-01-21,2646.29,2646.29,2602.97,2629.21,136290000,2629.21 +1991-01-18,2623.51,2663.37,2600.25,2646.78,226770000,2646.78 +1991-01-17,2571.78,2635.40,2571.78,2623.51,318890000,2623.51 +1991-01-16,2490.59,2525.25,2475.99,2508.91,134560000,2508.91 +1991-01-15,2483.91,2504.46,2470.05,2490.59,109980000,2490.59 +1991-01-14,2500.99,2500.99,2447.03,2483.91,120830000,2483.91 +1991-01-11,2498.76,2516.09,2472.77,2501.49,123050000,2501.49 +1991-01-10,2470.30,2512.13,2467.08,2498.76,124510000,2498.76 +1991-01-09,2509.41,2562.38,2456.19,2470.30,191100000,2470.30 +1991-01-08,2522.77,2544.06,2493.07,2509.41,143390000,2509.41 +1991-01-07,2563.37,2563.37,2514.11,2522.77,130610000,2522.77 +1991-01-04,2573.51,2601.98,2540.84,2566.09,140820000,2566.09 +1991-01-03,2610.64,2622.28,2567.57,2573.51,141450000,2573.51 +1991-01-02,2633.66,2651.73,2600.99,2610.64,126280000,2610.64 +1990-12-31,2629.21,2641.09,2611.14,2633.66,114130000,2633.66 +1990-12-28,2625.50,2639.11,2607.92,2629.21,111030000,2629.21 +1990-12-27,2637.13,2652.23,2616.58,2625.50,102900000,2625.50 +1990-12-26,2621.29,2653.96,2613.37,2637.13,78730000,2637.13 +1990-12-24,2633.66,2638.12,2609.65,2621.29,57200000,2621.29 +1990-12-21,2629.46,2662.62,2619.55,2633.66,233400000,2633.66 +1990-12-20,2626.73,2645.81,2591.58,2629.46,174700000,2629.46 +1990-12-19,2626.73,2648.51,2602.48,2626.73,180380000,2626.73 +1990-12-18,2593.32,2639.36,2583.17,2626.73,176460000,2626.73 +1990-12-17,2593.81,2600.74,2563.61,2593.32,118560000,2593.32 +1990-12-14,2614.36,2617.82,2572.03,2593.81,150880000,2593.81 +1990-12-13,2622.28,2640.59,2598.76,2614.36,162110000,2614.36 +1990-12-12,2586.14,2630.69,2578.22,2622.28,182270000,2622.28 +1990-12-11,2596.78,2606.93,2565.59,2586.14,145330000,2586.14 +1990-12-10,2590.10,2609.40,2566.58,2596.78,138650000,2596.78 +1990-12-07,2602.48,2618.07,2571.78,2590.10,164950000,2590.10 +1990-12-06,2610.40,2656.44,2589.36,2602.48,256380000,2602.48 +1990-12-05,2579.70,2615.84,2558.42,2610.40,205820000,2610.40 +1990-12-04,2565.59,2592.08,2534.65,2579.70,185820000,2579.70 +1990-12-03,2559.65,2589.60,2543.56,2565.59,177010000,2565.59 +1990-11-30,2518.81,2577.23,2498.51,2559.65,192350000,2559.65 +1990-11-29,2535.15,2544.31,2501.23,2518.81,140920000,2518.81 +1990-11-28,2543.81,2564.60,2521.04,2535.15,145490000,2535.15 +1990-11-27,2533.17,2562.62,2516.09,2543.81,147590000,2543.81 +1990-11-26,2527.23,2541.58,2489.85,2533.17,131540000,2533.17 +1990-11-23,2539.36,2557.92,2521.04,2527.23,63350000,2527.23 +1990-11-21,2530.20,2552.23,2502.72,2539.36,140660000,2539.36 +1990-11-20,2565.35,2574.50,2524.01,2530.20,161170000,2530.20 +1990-11-19,2550.25,2580.69,2543.07,2565.35,140950000,2565.35 +1990-11-16,2545.05,2570.79,2522.28,2550.25,165440000,2550.25 +1990-11-15,2559.65,2567.33,2528.71,2545.05,151370000,2545.05 +1990-11-14,2535.40,2581.19,2522.77,2559.65,179310000,2559.65 +1990-11-13,2540.35,2559.90,2512.38,2535.40,160240000,2535.40 +1990-11-12,2490.10,2550.99,2490.10,2540.35,161390000,2540.35 +1990-11-09,2443.81,2500.74,2438.61,2488.61,145160000,2488.61 +1990-11-08,2440.84,2468.81,2415.84,2443.81,155570000,2443.81 +1990-11-07,2485.15,2490.35,2430.94,2440.84,149130000,2440.84 +1990-11-06,2502.23,2516.83,2471.53,2485.15,141130000,2485.15 +1990-11-05,2490.84,2519.06,2472.77,2502.23,147510000,2502.23 +1990-11-02,2454.95,2501.73,2447.28,2490.84,168700000,2490.84 +1990-11-01,2442.33,2473.02,2415.59,2454.95,159270000,2454.95 +1990-10-31,2448.02,2475.99,2419.55,2442.33,156060000,2442.33 +1990-10-30,2430.20,2462.87,2400.50,2448.02,153450000,2448.02 +1990-10-29,2436.14,2470.30,2407.67,2430.20,133980000,2430.20 +1990-10-26,2482.18,2482.18,2429.21,2436.14,130190000,2436.14 +1990-10-25,2504.21,2525.99,2464.11,2484.41,141460000,2484.41 +1990-10-24,2494.06,2523.02,2470.54,2504.21,149290000,2504.21 +1990-10-23,2516.09,2527.97,2480.20,2494.06,146300000,2494.06 +1990-10-22,2520.79,2535.40,2476.73,2516.09,152650000,2516.09 +1990-10-19,2453.47,2536.88,2453.47,2520.79,221480000,2520.79 +1990-10-18,2391.83,2461.63,2391.83,2452.72,204110000,2452.72 +1990-10-17,2381.19,2418.56,2358.17,2387.87,161260000,2387.87 +1990-10-16,2416.34,2434.41,2366.83,2381.19,149570000,2381.19 +1990-10-15,2398.02,2451.24,2354.95,2416.34,164980000,2416.34 +1990-10-12,2365.10,2428.71,2349.75,2398.02,187940000,2398.02 +1990-10-11,2407.92,2427.23,2344.31,2365.10,180060000,2365.10 +1990-10-10,2445.54,2472.03,2388.36,2407.92,167890000,2407.92 +1990-10-09,2514.60,2514.60,2437.87,2445.54,145610000,2445.54 +1990-10-08,2510.64,2548.02,2507.18,2523.76,99470000,2523.76 +1990-10-05,2516.83,2544.55,2453.47,2510.64,153380000,2510.64 +1990-10-04,2489.36,2528.22,2464.85,2516.83,145410000,2516.83 +1990-10-03,2505.20,2534.65,2470.79,2489.36,135490000,2489.36 +1990-10-02,2515.84,2565.35,2487.62,2505.20,188360000,2505.20 +1990-10-01,2452.48,2534.65,2446.53,2515.84,202210000,2515.84 +1990-09-28,2427.48,2465.59,2367.82,2452.48,201010000,2452.48 +1990-09-27,2459.65,2492.33,2396.29,2427.48,182690000,2427.48 +1990-09-26,2485.64,2496.04,2435.40,2459.65,155570000,2459.65 +1990-09-25,2452.97,2501.24,2437.38,2485.64,155940000,2485.64 +1990-09-24,2498.02,2498.02,2438.12,2452.97,162210000,2452.97 +1990-09-21,2518.32,2538.37,2479.95,2512.38,201050000,2512.38 +1990-09-20,2549.01,2549.01,2495.54,2518.32,145100000,2518.32 +1990-09-19,2571.29,2594.55,2534.41,2557.43,147530000,2557.43 +1990-09-18,2567.33,2587.87,2524.26,2571.29,141130000,2571.29 +1990-09-17,2564.11,2585.89,2537.13,2567.33,110600000,2567.33 +1990-09-14,2582.67,2585.15,2545.54,2564.11,133390000,2564.11 +1990-09-13,2625.74,2629.21,2570.54,2582.67,123370000,2582.67 +1990-09-12,2612.62,2639.11,2592.33,2625.74,129890000,2625.74 +1990-09-11,2615.59,2635.64,2586.88,2612.62,113220000,2612.62 +1990-09-10,2619.55,2665.35,2600.99,2615.59,119730000,2615.59 +1990-09-07,2596.29,2635.89,2577.72,2619.55,123800000,2619.55 +1990-09-06,2628.22,2633.17,2575.99,2596.29,125620000,2596.29 +1990-09-05,2613.37,2643.07,2588.61,2628.22,120610000,2628.22 +1990-09-04,2614.36,2618.07,2573.02,2613.37,92940000,2613.37 +1990-08-31,2593.32,2624.50,2569.31,2614.36,96480000,2614.36 +1990-08-30,2632.43,2641.34,2578.47,2593.32,120890000,2593.32 +1990-08-29,2614.85,2651.24,2596.53,2632.43,134240000,2632.43 +1990-08-28,2611.63,2629.95,2582.92,2614.85,127660000,2614.85 +1990-08-27,2590.59,2645.05,2590.59,2611.63,160150000,2611.63 +1990-08-24,2483.42,2555.69,2480.45,2532.92,199040000,2532.92 +1990-08-23,2539.60,2539.60,2459.41,2483.42,250440000,2483.42 +1990-08-22,2603.96,2630.69,2553.22,2560.15,175550000,2560.15 +1990-08-21,2645.53,2645.53,2566.09,2603.96,194630000,2603.96 +1990-08-20,2644.80,2679.21,2632.43,2656.44,129630000,2656.44 +1990-08-17,2679.21,2679.21,2598.02,2644.80,212560000,2644.80 +1990-08-16,2746.53,2746.53,2676.24,2681.44,138850000,2681.44 +1990-08-15,2747.77,2778.71,2736.38,2748.27,135210000,2748.27 +1990-08-14,2746.78,2773.02,2720.54,2747.77,130320000,2747.77 +1990-08-13,2716.58,2752.23,2676.73,2746.78,122820000,2746.78 +1990-08-10,2758.91,2763.61,2692.82,2716.58,145340000,2716.58 +1990-08-09,2734.90,2774.26,2716.58,2758.91,155810000,2758.91 +1990-08-08,2710.64,2763.37,2691.34,2734.90,190400000,2734.90 +1990-08-07,2716.34,2763.86,2676.24,2710.64,231580000,2710.64 +1990-08-06,2758.42,2758.42,2683.17,2716.34,240400000,2716.34 +1990-08-03,2863.86,2863.86,2722.03,2809.65,292360000,2809.65 +1990-08-02,2899.26,2903.71,2833.17,2864.60,253090000,2864.60 +1990-08-01,2905.20,2931.19,2875.00,2899.26,176810000,2899.26 +1990-07-31,2917.33,2940.10,2878.47,2905.20,173810000,2905.20 +1990-07-30,2898.51,2922.52,2861.14,2917.33,146470000,2917.33 +1990-07-27,2920.79,2938.36,2877.72,2898.51,149070000,2898.51 +1990-07-26,2930.94,2945.79,2888.12,2920.79,155040000,2920.79 +1990-07-25,2922.52,2946.53,2896.78,2930.94,163530000,2930.94 +1990-07-24,2904.70,2939.60,2866.83,2922.52,181920000,2922.52 +1990-07-23,2961.14,2961.39,2833.17,2904.70,209030000,2904.70 +1990-07-20,2993.81,3019.31,2953.71,2961.14,177810000,2961.14 +1990-07-19,2981.68,3006.19,2948.27,2993.81,161990000,2993.81 +1990-07-18,2999.75,3009.65,2963.61,2981.68,168760000,2981.68 +1990-07-17,2999.75,3024.26,2970.05,2999.75,176790000,2999.75 +1990-07-16,2980.20,3017.08,2971.78,2999.75,149450000,2999.75 +1990-07-13,2969.80,3012.38,2956.68,2980.20,215600000,2980.20 +1990-07-12,2932.67,2980.69,2917.82,2969.80,211510000,2969.80 +1990-07-11,2890.84,2942.33,2890.10,2932.67,162220000,2932.67 +1990-07-10,2914.11,2928.22,2882.18,2890.84,147630000,2890.84 +1990-07-09,2904.95,2927.97,2890.84,2914.11,119390000,2914.11 +1990-07-06,2879.21,2919.80,2867.57,2904.95,111730000,2904.95 +1990-07-05,2906.44,2906.44,2863.61,2879.21,128320000,2879.21 +1990-07-03,2899.26,2925.74,2891.09,2911.63,130050000,2911.63 +1990-07-02,2880.69,2908.66,2869.80,2899.26,130200000,2899.26 +1990-06-29,2878.71,2901.98,2865.84,2880.69,145510000,2880.69 +1990-06-28,2862.13,2896.04,2850.50,2878.71,136120000,2878.71 +1990-06-27,2842.33,2878.96,2821.53,2862.13,146620000,2862.13 +1990-06-26,2845.05,2882.92,2832.67,2842.33,141420000,2842.33 +1990-06-25,2857.18,2882.18,2834.90,2845.05,133100000,2845.05 +1990-06-22,2901.73,2931.93,2848.02,2857.18,172570000,2857.18 +1990-06-21,2895.30,2916.58,2870.05,2901.73,138570000,2901.73 +1990-06-20,2893.56,2914.60,2868.81,2895.30,137420000,2895.30 +1990-06-19,2882.18,2907.92,2866.58,2893.56,134930000,2893.56 +1990-06-18,2930.45,2930.45,2877.48,2882.18,133470000,2882.18 +1990-06-15,2928.22,2947.77,2902.72,2935.89,205130000,2935.89 +1990-06-14,2929.95,2943.56,2902.97,2928.22,135770000,2928.22 +1990-06-13,2933.42,2956.93,2910.15,2929.95,158910000,2929.95 +1990-06-12,2892.57,2947.52,2877.97,2933.42,157100000,2933.42 +1990-06-11,2862.38,2901.98,2852.97,2892.57,119550000,2892.57 +1990-06-08,2897.33,2908.50,2850.73,2862.38,142600000,2862.38 +1990-06-07,2911.65,2930.58,2880.34,2897.33,160360000,2897.33 +1990-06-06,2925.00,2936.65,2891.99,2911.65,164030000,2911.65 +1990-06-05,2935.19,2956.55,2911.89,2925.00,199720000,2925.00 +1990-06-04,2900.97,2943.69,2883.98,2935.19,175520000,2935.19 +1990-06-01,2876.66,2919.90,2868.69,2900.97,187860000,2900.97 +1990-05-31,2878.56,2900.62,2854.64,2876.66,165690000,2876.66 +1990-05-30,2870.49,2908.21,2853.89,2878.56,199540000,2878.56 +1990-05-29,2820.92,2876.19,2812.62,2870.49,137410000,2870.49 +1990-05-25,2855.55,2856.50,2806.69,2820.92,120250000,2820.92 +1990-05-24,2856.26,2878.08,2828.04,2855.55,155140000,2855.55 +1990-05-23,2852.23,2869.07,2824.95,2856.26,172330000,2856.26 +1990-05-22,2844.68,2877.13,2828.51,2852.23,203350000,2852.23 +1990-05-21,2819.91,2859.72,2802.08,2844.68,166280000,2844.68 +1990-05-18,2831.71,2838.43,2804.63,2819.91,162520000,2819.91 +1990-05-17,2819.68,2856.25,2811.57,2831.71,164770000,2831.71 +1990-05-16,2822.45,2841.44,2800.23,2819.68,159810000,2819.68 +1990-05-15,2821.53,2840.74,2798.15,2822.45,165730000,2822.45 +1990-05-14,2801.58,2857.87,2793.75,2821.53,225410000,2821.53 +1990-05-11,2743.02,2810.36,2743.02,2801.58,234040000,2801.58 +1990-05-10,2732.88,2755.63,2716.44,2738.51,158460000,2738.51 +1990-05-09,2733.56,2745.50,2710.14,2732.88,152220000,2732.88 +1990-05-08,2721.62,2739.41,2710.36,2733.56,144230000,2733.56 +1990-05-07,2710.36,2739.19,2698.87,2721.62,132760000,2721.62 +1990-05-04,2696.17,2718.92,2682.43,2710.36,140550000,2710.36 +1990-05-03,2689.64,2716.22,2682.88,2696.17,145560000,2696.17 +1990-05-02,2668.92,2697.30,2659.01,2689.64,141610000,2689.64 +1990-05-01,2656.76,2687.39,2651.35,2668.92,149020000,2668.92 +1990-04-30,2645.05,2667.79,2627.70,2656.76,122750000,2656.76 +1990-04-27,2676.58,2687.39,2639.19,2645.05,130630000,2645.05 +1990-04-26,2666.44,2691.89,2650.22,2676.58,141330000,2676.58 +1990-04-25,2654.50,2685.36,2649.32,2666.44,133480000,2666.44 +1990-04-24,2666.67,2686.04,2643.69,2654.50,137360000,2654.50 +1990-04-23,2690.77,2690.77,2650.90,2666.67,136150000,2666.67 +1990-04-20,2711.94,2722.07,2668.47,2695.95,174260000,2695.95 +1990-04-19,2732.88,2742.12,2700.00,2711.94,152930000,2711.94 +1990-04-18,2765.77,2775.68,2722.75,2732.88,147130000,2732.88 +1990-04-17,2763.06,2774.77,2738.29,2765.77,127990000,2765.77 +1990-04-16,2751.80,2793.47,2748.87,2763.06,142810000,2763.06 +1990-04-12,2729.73,2763.96,2729.50,2751.80,142470000,2751.80 +1990-04-11,2731.08,2751.35,2713.29,2729.73,141080000,2729.73 +1990-04-10,2722.07,2741.67,2707.88,2731.08,136020000,2731.08 +1990-04-09,2717.12,2737.39,2701.35,2722.07,114970000,2722.07 +1990-04-06,2721.17,2732.43,2695.50,2717.12,137490000,2717.12 +1990-04-05,2719.37,2746.17,2709.01,2721.17,144170000,2721.17 +1990-04-04,2736.71,2755.86,2708.56,2719.37,159540000,2719.37 +1990-04-03,2700.45,2747.30,2699.55,2736.71,154310000,2736.71 +1990-04-02,2707.21,2708.78,2668.69,2700.45,124360000,2700.45 +1990-03-30,2727.70,2736.71,2692.34,2707.21,139340000,2707.21 +1990-03-29,2743.69,2753.38,2711.49,2727.70,132190000,2727.70 +1990-03-28,2736.94,2755.63,2716.21,2743.69,142300000,2743.69 +1990-03-27,2707.66,2738.96,2691.89,2736.94,131610000,2736.94 +1990-03-26,2704.28,2735.81,2697.97,2707.66,116110000,2707.66 +1990-03-23,2695.72,2722.75,2688.06,2704.28,132070000,2704.28 +1990-03-22,2727.93,2734.01,2674.32,2695.72,175930000,2695.72 +1990-03-21,2738.74,2759.68,2718.24,2727.93,130990000,2727.93 +1990-03-20,2755.63,2775.00,2724.10,2738.74,177320000,2738.74 +1990-03-19,2741.22,2761.71,2706.53,2755.63,142300000,2755.63 +1990-03-16,2699.32,2745.50,2699.32,2741.22,222520000,2741.22 +1990-03-15,2687.84,2714.86,2677.93,2695.72,144410000,2695.72 +1990-03-14,2674.55,2705.18,2662.39,2687.84,145060000,2687.84 +1990-03-13,2686.71,2699.55,2657.88,2674.55,145440000,2674.55 +1990-03-12,2683.33,2698.65,2661.94,2686.71,114790000,2686.71 +1990-03-09,2696.17,2705.63,2665.54,2683.33,150410000,2683.33 +1990-03-08,2669.59,2705.18,2661.26,2696.17,170900000,2696.17 +1990-03-07,2676.80,2696.85,2656.08,2669.59,163580000,2669.59 +1990-03-06,2649.55,2684.46,2638.06,2676.80,143640000,2676.80 +1990-03-05,2660.36,2675.22,2636.71,2649.55,140110000,2649.55 +1990-03-02,2635.59,2669.82,2630.18,2660.36,164330000,2660.36 +1990-03-01,2627.25,2655.63,2607.88,2635.59,157930000,2635.59 +1990-02-28,2617.12,2652.48,2603.60,2627.25,184410000,2627.25 +1990-02-27,2602.48,2637.84,2592.12,2617.12,152590000,2617.12 +1990-02-26,2564.19,2606.30,2560.13,2602.48,148910000,2602.48 +1990-02-23,2574.77,2591.44,2540.99,2564.19,148490000,2564.19 +1990-02-22,2583.56,2622.30,2568.02,2574.77,184320000,2574.77 +1990-02-21,2596.85,2602.48,2556.31,2583.56,159240000,2583.56 +1990-02-20,2619.14,2619.14,2579.05,2596.85,147300000,2596.85 +1990-02-16,2649.55,2669.37,2623.65,2635.59,166840000,2635.59 +1990-02-15,2624.32,2658.78,2614.86,2649.55,174630000,2649.55 +1990-02-14,2624.10,2643.69,2608.11,2624.32,138530000,2624.32 +1990-02-13,2619.14,2639.19,2592.57,2624.10,144490000,2624.10 +1990-02-12,2648.20,2652.48,2610.59,2619.14,118390000,2619.14 +1990-02-09,2644.37,2666.67,2628.15,2648.20,146910000,2648.20 +1990-02-08,2640.09,2674.32,2622.30,2644.37,176240000,2644.37 +1990-02-07,2606.31,2651.35,2579.28,2640.09,186710000,2640.09 +1990-02-06,2622.52,2629.50,2588.29,2606.31,134070000,2606.31 +1990-02-05,2602.70,2633.56,2592.12,2622.52,130950000,2622.52 +1990-02-02,2586.26,2623.65,2577.03,2602.70,164400000,2602.70 +1990-02-01,2590.54,2611.49,2571.85,2586.26,154580000,2586.26 +1990-01-31,2546.85,2600.90,2546.85,2590.54,189660000,2590.54 +1990-01-30,2553.38,2576.13,2513.06,2543.24,186030000,2543.24 +1990-01-29,2559.23,2583.56,2522.97,2553.38,150770000,2553.38 +1990-01-26,2561.04,2591.67,2516.89,2559.23,198190000,2559.23 +1990-01-25,2604.50,2628.83,2546.17,2561.04,172270000,2561.04 +1990-01-24,2615.32,2619.59,2534.23,2604.50,207830000,2604.50 +1990-01-23,2600.45,2639.64,2584.01,2615.32,179300000,2615.32 +1990-01-22,2677.90,2683.33,2595.27,2600.45,148380000,2600.45 +1990-01-19,2666.38,2696.89,2657.85,2677.90,185590000,2677.90 +1990-01-18,2659.13,2678.11,2625.85,2666.38,178590000,2666.38 +1990-01-17,2692.62,2711.39,2643.77,2659.13,170470000,2659.13 +1990-01-16,2669.37,2698.38,2634.17,2692.62,186070000,2692.62 +1990-01-15,2689.21,2698.11,2656.36,2669.37,140590000,2669.37 +1990-01-12,2735.92,2735.92,2675.98,2689.21,183880000,2689.21 +1990-01-11,2750.64,2783.27,2748.29,2760.67,154390000,2760.67 +1990-01-10,2766.00,2772.82,2725.47,2750.64,175990000,2750.64 +1990-01-09,2794.37,2810.79,2760.03,2766.00,155210000,2766.00 +1990-01-08,2773.25,2803.97,2753.41,2794.37,140110000,2794.37 +1990-01-05,2796.08,2810.15,2758.11,2773.25,158530000,2773.25 +1990-01-04,2809.73,2821.46,2766.42,2796.08,177000000,2796.08 +1990-01-03,2810.15,2834.04,2786.26,2809.73,192330000,2809.73 +1990-01-02,2753.20,2811.65,2732.51,2810.15,162070000,2810.15 +1989-12-29,2732.30,2763.01,2726.96,2753.20,145940000,2753.20 +1989-12-28,2724.40,2742.53,2709.04,2732.30,128030000,2732.30 +1989-12-27,2709.26,2739.12,2700.30,2724.40,133740000,2724.40 +1989-12-26,2711.39,2728.88,2694.75,2709.26,77610000,2709.26 +1989-12-22,2691.13,2721.20,2682.59,2711.39,120980000,2711.39 +1989-12-21,2687.93,2714.16,2671.72,2691.13,175150000,2691.13 +1989-12-20,2695.61,2719.07,2667.02,2687.93,176520000,2687.93 +1989-12-19,2697.53,2720.14,2658.70,2695.61,186060000,2695.61 +1989-12-18,2739.55,2755.55,2679.82,2697.53,184750000,2697.53 +1989-12-15,2753.63,2763.65,2703.92,2739.55,240390000,2739.55 +1989-12-14,2761.09,2771.33,2732.08,2753.63,178700000,2753.63 +1989-12-13,2752.13,2784.77,2737.20,2761.09,184660000,2761.09 +1989-12-12,2728.24,2764.51,2716.51,2752.13,176820000,2752.13 +1989-12-11,2731.44,2742.75,2705.63,2728.24,147130000,2728.24 +1989-12-08,2720.78,2750.85,2716.51,2731.44,144910000,2731.44 +1989-12-07,2736.77,2756.83,2702.00,2720.78,161980000,2720.78 +1989-12-06,2741.68,2754.91,2722.70,2736.77,145850000,2736.77 +1989-12-05,2753.63,2773.89,2731.23,2741.68,154640000,2741.68 +1989-12-04,2747.65,2772.18,2731.02,2753.63,150360000,2753.63 +1989-12-01,2706.27,2763.87,2705.42,2747.65,199200000,2747.65 +1989-11-30,2688.78,2718.22,2681.95,2706.27,153200000,2706.27 +1989-11-29,2702.01,2713.10,2677.47,2688.78,147270000,2688.78 +1989-11-28,2694.97,2715.02,2677.26,2702.01,153770000,2702.01 +1989-11-27,2675.55,2713.95,2663.40,2694.97,149390000,2694.97 +1989-11-24,2657.00,2686.01,2657.00,2675.55,86290000,2675.55 +1989-11-22,2639.29,2668.30,2629.91,2656.78,145730000,2656.78 +1989-11-21,2632.04,2654.22,2614.97,2639.29,147900000,2639.29 +1989-11-20,2652.66,2659.56,2615.40,2632.04,128170000,2632.04 +1989-11-17,2635.66,2665.37,2623.15,2652.66,151020000,2652.66 +1989-11-16,2632.58,2650.61,2613.52,2635.66,148370000,2635.66 +1989-11-15,2610.25,2641.60,2600.00,2632.58,155130000,2632.58 +1989-11-14,2626.43,2640.57,2597.13,2610.25,143170000,2610.25 +1989-11-13,2625.61,2648.36,2602.05,2626.43,140750000,2626.43 +1989-11-10,2603.69,2635.86,2603.07,2625.61,131800000,2625.61 +1989-11-09,2623.36,2634.84,2595.90,2603.69,143390000,2603.69 +1989-11-08,2597.13,2644.26,2594.67,2623.36,170150000,2623.36 +1989-11-07,2582.17,2608.81,2563.11,2597.13,163000000,2597.13 +1989-11-06,2621.72,2621.72,2574.59,2582.17,135480000,2582.17 +1989-11-03,2631.56,2650.82,2612.91,2629.51,131500000,2629.51 +1989-11-02,2645.90,2653.69,2607.58,2631.56,152440000,2631.56 +1989-11-01,2645.08,2665.78,2622.95,2645.90,154240000,2645.90 +1989-10-31,2606.97,2662.09,2606.97,2645.08,176100000,2645.08 +1989-10-30,2596.72,2627.05,2588.11,2603.48,126630000,2603.48 +1989-10-27,2613.73,2621.11,2573.56,2596.72,170330000,2596.72 +1989-10-26,2653.28,2657.99,2597.74,2613.73,175240000,2613.73 +1989-10-25,2659.22,2684.84,2627.66,2653.28,155650000,2653.28 +1989-10-24,2662.91,2680.74,2570.28,2659.22,237960000,2659.22 +1989-10-23,2689.14,2704.71,2648.77,2662.91,135860000,2662.91 +1989-10-20,2683.20,2703.07,2660.25,2689.14,164830000,2689.14 +1989-10-19,2650.61,2707.58,2650.61,2683.20,198120000,2683.20 +1989-10-18,2638.73,2664.34,2610.66,2643.65,166900000,2643.65 +1989-10-17,2657.38,2665.37,2588.73,2638.73,224070000,2638.73 +1989-10-16,2569.26,2667.42,2496.93,2657.38,416290000,2657.38 +1989-10-13,2759.84,2773.36,2545.49,2569.26,251170000,2569.26 +1989-10-12,2744.06,2785.25,2744.06,2759.84,160120000,2759.84 +1989-10-11,2785.33,2790.98,2750.82,2773.36,164070000,2773.36 +1989-10-10,2791.41,2809.08,2766.53,2785.33,147560000,2785.33 +1989-10-09,2785.52,2804.52,2766.32,2791.41,86810000,2791.41 +1989-10-06,2773.56,2808.13,2765.58,2785.52,172520000,2785.52 +1989-10-05,2771.09,2797.11,2747.15,2773.56,177890000,2773.56 +1989-10-04,2754.56,2785.52,2738.79,2771.09,194590000,2771.09 +1989-10-03,2713.72,2765.96,2708.97,2754.56,182550000,2754.56 +1989-10-02,2692.82,2724.16,2677.05,2713.72,127410000,2713.72 +1989-09-29,2694.91,2721.12,2675.72,2692.82,155300000,2692.82 +1989-09-28,2673.06,2709.16,2657.86,2694.91,164240000,2694.91 +1989-09-27,2663.94,2685.03,2636.78,2673.06,158400000,2673.06 +1989-09-26,2659.19,2688.64,2652.93,2663.94,158350000,2663.94 +1989-09-25,2681.61,2685.41,2647.61,2659.19,121130000,2659.19 +1989-09-22,2680.28,2696.62,2667.55,2681.61,133350000,2681.61 +1989-09-21,2683.89,2707.83,2665.65,2680.28,146930000,2680.28 +1989-09-20,2687.31,2703.46,2672.49,2683.89,136640000,2683.89 +1989-09-19,2687.50,2709.35,2675.91,2687.31,141610000,2687.31 +1989-09-18,2674.58,2694.91,2662.61,2687.50,136940000,2687.50 +1989-09-15,2664.89,2695.67,2643.05,2674.58,234870000,2674.58 +1989-09-14,2679.52,2690.16,2647.61,2664.89,149250000,2664.89 +1989-09-13,2707.26,2725.87,2671.35,2679.52,175330000,2679.52 +1989-09-12,2704.41,2726.06,2689.59,2707.26,142140000,2707.26 +1989-09-11,2709.54,2720.74,2677.05,2704.41,126020000,2704.41 +1989-09-08,2706.88,2728.72,2679.33,2709.54,154090000,2709.54 +1989-09-07,2719.79,2748.10,2692.06,2706.88,160160000,2706.88 +1989-09-06,2744.68,2752.09,2697.95,2719.79,161800000,2719.79 +1989-09-05,2752.09,2768.24,2731.76,2744.68,145180000,2744.68 +1989-09-01,2737.27,2766.91,2726.82,2752.09,133300000,2752.09 +1989-08-31,2728.15,2744.68,2717.90,2737.27,144820000,2737.27 +1989-08-30,2726.63,2753.61,2705.36,2728.15,174350000,2728.15 +1989-08-29,2743.36,2757.60,2704.98,2726.63,175210000,2726.63 +1989-08-28,2732.36,2748.10,2710.74,2743.36,131180000,2743.36 +1989-08-25,2734.64,2758.73,2715.48,2732.36,165930000,2732.36 +1989-08-24,2678.11,2738.43,2672.23,2734.64,225520000,2734.64 +1989-08-23,2650.99,2683.61,2641.20,2678.11,159640000,2678.11 +1989-08-22,2647.00,2659.71,2619.71,2650.99,141930000,2650.99 +1989-08-21,2687.97,2693.29,2640.74,2647.00,136800000,2647.00 +1989-08-18,2679.63,2697.29,2665.97,2687.97,145810000,2687.97 +1989-08-17,2693.29,2703.72,2663.13,2679.63,157560000,2679.63 +1989-08-16,2687.78,2712.25,2680.58,2693.29,150060000,2693.29 +1989-08-15,2677.92,2705.24,2665.02,2687.78,148770000,2687.78 +1989-08-14,2683.99,2702.96,2654.97,2677.92,142010000,2677.92 +1989-08-11,2712.63,2747.53,2668.06,2683.99,197550000,2683.99 +1989-08-10,2686.08,2732.93,2669.58,2712.63,198660000,2712.63 +1989-08-09,2699.17,2725.15,2678.11,2686.08,209900000,2686.08 +1989-08-08,2694.99,2718.51,2676.97,2699.17,200340000,2699.17 +1989-08-07,2653.45,2701.82,2643.59,2694.99,197580000,2694.99 +1989-08-04,2661.61,2679.44,2629.17,2653.45,169750000,2653.45 +1989-08-03,2657.44,2676.97,2640.74,2661.61,168690000,2661.61 +1989-08-02,2641.12,2668.44,2626.33,2657.44,181760000,2657.44 +1989-08-01,2660.66,2687.03,2628.98,2641.12,225280000,2641.12 +1989-07-31,2635.24,2668.25,2615.52,2660.66,166650000,2660.66 +1989-07-28,2635.43,2656.68,2615.71,2635.24,180610000,2635.24 +1989-07-27,2613.05,2649.28,2604.70,2635.43,213680000,2635.43 +1989-07-26,2583.08,2621.21,2563.73,2613.05,188270000,2613.05 +1989-07-25,2584.98,2610.39,2565.63,2583.08,179270000,2583.08 +1989-07-24,2607.36,2607.55,2574.36,2584.98,136260000,2584.98 +1989-07-21,2575.49,2613.81,2558.23,2607.36,174880000,2607.36 +1989-07-20,2584.41,2616.46,2566.58,2575.49,204590000,2575.49 +1989-07-19,2546.47,2590.48,2546.47,2584.41,215740000,2584.41 +1989-07-18,2553.49,2560.70,2531.68,2544.76,152350000,2544.76 +1989-07-17,2554.82,2565.82,2535.85,2553.49,131960000,2553.49 +1989-07-14,2538.32,2563.16,2512.52,2554.82,183480000,2554.82 +1989-07-13,2532.63,2553.30,2517.83,2538.32,153820000,2538.32 +1989-07-12,2514.61,2543.25,2504.93,2532.63,160550000,2532.63 +1989-07-11,2503.41,2537.37,2503.41,2514.61,171590000,2514.61 +1989-07-10,2487.86,2513.47,2482.74,2502.66,131870000,2502.66 +1989-07-07,2462.44,2503.22,2456.56,2487.86,166430000,2487.86 +1989-07-06,2456.56,2475.53,2446.51,2462.44,140450000,2462.44 +1989-07-05,2452.77,2467.18,2431.53,2456.56,127710000,2456.56 +1989-07-03,2440.06,2461.49,2434.37,2452.77,68870000,2452.77 +1989-06-30,2458.27,2466.05,2412.94,2440.06,170490000,2440.06 +1989-06-29,2500.00,2500.00,2451.25,2458.27,167100000,2458.27 +1989-06-28,2526.37,2531.87,2485.77,2504.74,158470000,2504.74 +1989-06-27,2511.38,2544.95,2507.40,2526.37,171090000,2526.37 +1989-06-26,2531.87,2536.99,2500.57,2511.38,143600000,2511.38 +1989-06-23,2490.14,2536.04,2490.14,2531.87,198720000,2531.87 +1989-06-22,2464.91,2489.75,2452.77,2481.98,176510000,2481.98 +1989-06-21,2472.88,2489.38,2450.87,2464.91,168830000,2464.91 +1989-06-20,2479.89,2496.02,2463.96,2472.88,167650000,2472.88 +1989-06-19,2486.38,2497.15,2465.10,2479.89,130720000,2479.89 +1989-06-16,2475.00,2495.52,2461.57,2486.38,244510000,2486.38 +1989-06-15,2503.36,2505.97,2460.82,2475.00,179480000,2475.00 +1989-06-14,2503.54,2520.71,2486.01,2503.36,170540000,2503.36 +1989-06-13,2518.84,2520.71,2484.70,2503.54,164870000,2503.54 +1989-06-12,2513.42,2528.17,2484.70,2518.84,151460000,2518.84 +1989-06-09,2516.91,2533.64,2494.85,2513.42,173240000,2513.42 +1989-06-08,2512.32,2534.38,2499.81,2516.91,212310000,2516.91 +1989-06-07,2496.32,2526.65,2493.38,2512.32,213710000,2512.32 +1989-06-06,2480.70,2507.54,2471.32,2496.32,187570000,2496.32 +1989-06-05,2517.83,2523.71,2476.84,2480.70,163420000,2480.70 +1989-06-02,2492.46,2530.88,2492.46,2517.83,229140000,2517.83 +1989-06-01,2480.15,2504.23,2469.67,2490.63,223160000,2490.63 +1989-05-31,2475.55,2497.06,2462.68,2480.15,162530000,2480.15 +1989-05-30,2493.77,2510.66,2459.74,2475.55,151780000,2475.55 +1989-05-26,2482.59,2501.83,2473.06,2493.77,143120000,2493.77 +1989-05-25,2483.87,2498.72,2467.56,2482.59,154470000,2482.59 +1989-05-24,2478.01,2494.68,2458.03,2483.87,178600000,2483.87 +1989-05-23,2501.83,2501.83,2467.19,2478.01,187690000,2478.01 +1989-05-22,2501.10,2521.63,2481.30,2502.02,185010000,2502.02 +1989-05-19,2470.12,2509.34,2468.29,2501.10,242410000,2501.10 +1989-05-18,2462.43,2482.77,2448.86,2470.12,177480000,2470.12 +1989-05-17,2453.45,2478.74,2439.70,2462.43,191210000,2462.43 +1989-05-16,2463.89,2469.76,2439.88,2453.45,173100000,2453.45 +1989-05-15,2439.70,2474.89,2432.37,2463.89,179350000,2463.89 +1989-05-12,2408.54,2447.95,2408.54,2439.70,221490000,2439.70 +1989-05-11,2374.45,2393.51,2365.83,2382.88,151620000,2382.88 +1989-05-10,2371.33,2387.83,2361.25,2374.45,146000000,2374.45 +1989-05-09,2376.47,2390.03,2356.85,2371.33,150090000,2371.33 +1989-05-08,2381.96,2387.28,2356.30,2376.47,135130000,2376.47 +1989-05-05,2384.90,2415.69,2371.88,2381.96,180810000,2381.96 +1989-05-04,2393.70,2399.01,2373.35,2384.90,153130000,2384.90 +1989-05-03,2402.86,2410.56,2382.51,2393.70,171690000,2393.70 +1989-05-02,2414.96,2434.38,2394.61,2402.86,172560000,2402.86 +1989-05-01,2418.80,2420.45,2390.03,2414.96,138050000,2414.96 +1989-04-28,2418.99,2430.17,2403.59,2418.80,158390000,2418.80 +1989-04-27,2389.10,2433.10,2387.83,2418.99,191170000,2418.99 +1989-04-26,2386.85,2404.14,2373.90,2389.10,146090000,2389.10 +1989-04-25,2402.68,2421.55,2378.85,2386.85,165430000,2386.85 +1989-04-24,2409.46,2416.06,2385.08,2402.68,142100000,2402.68 +1989-04-21,2377.38,2412.57,2373.35,2409.46,187310000,2409.46 +1989-04-20,2386.91,2399.19,2356.85,2377.38,175970000,2377.38 +1989-04-19,2379.40,2398.46,2369.50,2386.91,191510000,2386.91 +1989-04-18,2351.36,2386.00,2351.36,2379.40,208650000,2379.40 +1989-04-17,2337.06,2348.42,2324.23,2337.79,128540000,2337.79 +1989-04-14,2308.83,2342.93,2308.83,2337.06,169780000,2337.06 +1989-04-13,2319.65,2321.85,2289.59,2296.00,141590000,2296.00 +1989-04-12,2311.58,2332.84,2304.44,2319.65,165200000,2319.65 +1989-04-11,2301.87,2321.48,2295.27,2311.58,146830000,2311.58 +1989-04-10,2304.80,2316.35,2293.62,2301.87,123990000,2301.87 +1989-04-07,2291.97,2314.88,2282.07,2304.80,156950000,2304.80 +1989-04-06,2304.80,2305.72,2282.81,2291.97,146530000,2291.97 +1989-04-05,2298.20,2315.80,2286.84,2304.80,165880000,2304.80 +1989-04-04,2304.80,2314.88,2282.44,2298.20,160680000,2298.20 +1989-04-03,2293.62,2317.45,2284.09,2304.80,164660000,2304.80 +1989-03-31,2281.34,2303.34,2277.49,2293.62,170960000,2293.62 +1989-03-30,2281.52,2296.92,2264.30,2281.34,159950000,2281.34 +1989-03-29,2275.54,2293.62,2262.65,2281.52,144240000,2281.52 +1989-03-28,2258.93,2287.86,2258.93,2275.54,146420000,2275.54 +1989-03-27,2243.04,2264.29,2234.46,2257.86,112960000,2257.86 +1989-03-23,2263.21,2274.82,2235.89,2243.04,153750000,2243.04 +1989-03-22,2266.25,2276.61,2247.14,2263.21,146570000,2263.21 +1989-03-21,2262.50,2284.82,2259.64,2266.25,142010000,2266.25 +1989-03-20,2286.25,2286.25,2249.46,2262.50,151260000,2262.50 +1989-03-17,2307.68,2307.68,2267.86,2292.14,242900000,2292.14 +1989-03-16,2320.54,2351.07,2315.36,2340.71,196040000,2340.71 +1989-03-15,2306.25,2332.86,2300.71,2320.54,167070000,2320.54 +1989-03-14,2306.25,2322.68,2296.79,2306.25,139970000,2306.25 +1989-03-13,2282.68,2319.64,2282.68,2306.25,140460000,2306.25 +1989-03-10,2291.43,2295.54,2261.61,2282.14,146830000,2282.14 +1989-03-09,2295.54,2306.61,2282.86,2291.43,143160000,2291.43 +1989-03-08,2290.71,2316.79,2280.00,2295.54,167620000,2295.54 +1989-03-07,2294.82,2308.57,2278.93,2290.71,172500000,2290.71 +1989-03-06,2274.29,2302.50,2270.36,2294.82,168880000,2294.82 +1989-03-03,2265.71,2281.79,2255.00,2274.29,151790000,2274.29 +1989-03-02,2243.04,2274.82,2239.82,2265.71,161980000,2265.71 +1989-03-01,2258.39,2277.50,2234.82,2243.04,177210000,2243.04 +1989-02-28,2250.36,2269.82,2242.68,2258.39,147430000,2258.39 +1989-02-27,2245.54,2260.18,2232.14,2250.36,139900000,2250.36 +1989-02-24,2289.46,2291.79,2242.68,2245.54,160680000,2245.54 +1989-02-23,2283.93,2295.71,2266.96,2289.46,150370000,2289.46 +1989-02-22,2326.43,2327.50,2276.43,2283.93,163140000,2283.93 +1989-02-21,2324.82,2340.89,2311.79,2326.43,141950000,2326.43 +1989-02-17,2311.43,2339.11,2301.96,2324.82,159520000,2324.82 +1989-02-16,2303.93,2326.07,2293.04,2311.43,177450000,2311.43 +1989-02-15,2281.25,2309.64,2275.71,2303.93,154220000,2303.93 +1989-02-14,2282.50,2308.04,2274.82,2281.25,150610000,2281.25 +1989-02-13,2286.07,2295.71,2266.07,2282.50,143520000,2282.50 +1989-02-10,2322.32,2322.32,2278.93,2286.07,173560000,2286.07 +1989-02-09,2343.21,2347.68,2308.39,2323.04,224220000,2323.04 +1989-02-08,2347.14,2369.29,2332.86,2343.21,189420000,2343.21 +1989-02-07,2321.07,2363.75,2314.64,2347.14,217260000,2347.14 +1989-02-06,2331.25,2338.04,2307.67,2321.07,150980000,2321.07 +1989-02-03,2333.75,2348.75,2319.29,2331.25,172980000,2331.25 +1989-02-02,2338.21,2352.86,2319.64,2333.75,183430000,2333.75 +1989-02-01,2342.32,2355.00,2319.29,2338.21,215640000,2338.21 +1989-01-31,2324.11,2350.18,2302.68,2342.32,194050000,2342.32 +1989-01-30,2322.86,2336.61,2304.82,2324.11,167830000,2324.11 +1989-01-27,2295.18,2349.64,2295.18,2322.86,254870000,2322.86 +1989-01-26,2265.89,2303.57,2252.86,2291.07,212250000,2291.07 +1989-01-25,2256.43,2277.68,2242.32,2265.89,183610000,2265.89 +1989-01-24,2218.39,2264.82,2214.82,2256.43,189620000,2256.43 +1989-01-23,2235.36,2254.64,2214.29,2218.39,141640000,2218.39 +1989-01-20,2239.11,2249.46,2221.25,2235.36,166120000,2235.36 +1989-01-19,2238.75,2254.64,2225.71,2239.11,192030000,2239.11 +1989-01-18,2214.64,2247.32,2202.50,2238.75,187450000,2238.75 +1989-01-17,2224.64,2227.50,2203.75,2214.64,143930000,2214.64 +1989-01-16,2226.07,2236.25,2215.36,2224.64,117380000,2224.64 +1989-01-13,2222.32,2235.00,2210.54,2226.07,132320000,2226.07 +1989-01-12,2206.43,2239.11,2200.71,2222.32,183000000,2222.32 +1989-01-11,2193.21,2211.96,2185.71,2206.43,148950000,2206.43 +1989-01-10,2199.46,2213.75,2182.32,2193.21,140420000,2193.21 +1989-01-09,2194.29,2209.11,2185.00,2199.46,163180000,2199.46 +1989-01-06,2190.54,2213.75,2182.32,2194.29,161330000,2194.29 +1989-01-05,2177.68,2205.18,2173.04,2190.54,174040000,2190.54 +1989-01-04,2146.61,2183.39,2146.61,2177.68,149700000,2177.68 +1989-01-03,2168.39,2168.39,2127.14,2144.64,128500000,2144.64 +1988-12-30,2182.68,2193.75,2162.50,2168.57,127210000,2168.57 +1988-12-29,2166.43,2193.04,2165.18,2182.68,131290000,2182.68 +1988-12-28,2162.68,2179.64,2153.57,2166.43,110630000,2166.43 +1988-12-27,2168.93,2179.29,2156.43,2162.68,87490000,2162.68 +1988-12-23,2160.36,2176.79,2157.86,2168.93,81760000,2168.93 +1988-12-22,2164.64,2176.43,2151.43,2160.36,150510000,2160.36 +1988-12-21,2166.07,2178.57,2146.07,2164.64,147250000,2164.64 +1988-12-20,2172.68,2192.68,2161.25,2166.07,161090000,2166.07 +1988-12-19,2150.71,2179.64,2141.07,2172.68,162250000,2172.68 +1988-12-16,2133.00,2155.00,2131.25,2150.71,196480000,2150.71 +1988-12-15,2134.25,2146.87,2120.91,2133.00,136820000,2133.00 +1988-12-14,2143.49,2149.71,2121.44,2134.25,132350000,2134.25 +1988-12-13,2139.58,2151.14,2119.31,2143.49,132340000,2143.49 +1988-12-12,2143.49,2165.18,2133.89,2139.58,124160000,2139.58 +1988-12-09,2141.71,2157.00,2131.40,2143.49,133770000,2143.49 +1988-12-08,2153.63,2162.70,2133.18,2141.71,124150000,2141.71 +1988-12-07,2149.36,2167.50,2136.38,2153.63,148360000,2153.63 +1988-12-06,2123.76,2158.96,2117.18,2149.36,158340000,2149.36 +1988-12-05,2092.64,2135.49,2092.64,2123.76,144660000,2123.76 +1988-12-02,2101.88,2105.80,2075.39,2092.28,124610000,2092.28 +1988-12-01,2114.51,2120.02,2095.48,2101.88,129380000,2101.88 +1988-11-30,2101.53,2126.60,2095.48,2114.51,157810000,2114.51 +1988-11-29,2081.44,2112.73,2072.37,2101.53,127420000,2101.53 +1988-11-28,2074.68,2095.48,2062.23,2081.44,123480000,2081.44 +1988-11-25,2085.53,2085.53,2062.77,2074.68,72090000,2074.68 +1988-11-23,2077.70,2103.49,2071.48,2092.28,112010000,2092.28 +1988-11-22,2065.97,2086.77,2052.63,2077.70,127000000,2077.70 +1988-11-21,2062.41,2070.06,2036.81,2065.97,120430000,2065.97 +1988-11-18,2052.45,2070.41,2047.12,2062.41,119320000,2062.41 +1988-11-17,2038.58,2064.19,2033.25,2052.45,141280000,2052.45 +1988-11-16,2077.17,2081.43,2026.67,2038.58,161710000,2038.58 +1988-11-15,2065.08,2088.02,2060.28,2077.17,115170000,2077.17 +1988-11-14,2067.03,2084.81,2050.85,2065.08,142900000,2065.08 +1988-11-11,2107.04,2107.04,2063.48,2067.03,135500000,2067.03 +1988-11-10,2118.24,2132.82,2103.31,2114.69,128920000,2114.69 +1988-11-09,2127.49,2134.25,2100.82,2118.24,153140000,2118.24 +1988-11-08,2124.64,2146.87,2119.67,2127.49,141660000,2127.49 +1988-11-07,2143.14,2143.14,2113.62,2124.64,133870000,2124.64 +1988-11-04,2170.34,2173.90,2139.58,2145.80,143580000,2145.80 +1988-11-03,2156.83,2185.99,2153.45,2170.34,152980000,2170.34 +1988-11-02,2150.96,2167.67,2131.40,2156.83,161300000,2156.83 +1988-11-01,2148.65,2165.36,2132.82,2150.96,151250000,2150.96 +1988-10-31,2149.89,2161.63,2125.36,2148.65,143460000,2148.65 +1988-10-28,2140.83,2166.43,2135.67,2149.89,146300000,2149.89 +1988-10-27,2165.18,2165.54,2120.90,2140.83,196540000,2140.83 +1988-10-26,2173.36,2182.61,2148.47,2165.18,181550000,2165.18 +1988-10-25,2170.34,2188.66,2156.83,2173.36,155190000,2173.36 +1988-10-24,2183.50,2195.06,2162.16,2170.34,170590000,2170.34 +1988-10-21,2181.19,2193.28,2152.56,2183.50,195410000,2183.50 +1988-10-20,2137.27,2183.68,2129.80,2181.19,189580000,2181.19 +1988-10-19,2159.85,2173.01,2110.95,2137.27,186350000,2137.27 +1988-10-18,2140.47,2163.41,2124.29,2159.85,162500000,2159.85 +1988-10-17,2133.18,2150.60,2120.02,2140.47,119290000,2140.47 +1988-10-14,2133.36,2153.80,2118.77,2133.18,160240000,2133.18 +1988-10-13,2126.24,2149.54,2114.33,2133.36,154530000,2133.36 +1988-10-12,2146.34,2146.34,2113.44,2126.24,154840000,2126.24 +1988-10-11,2158.96,2164.83,2137.09,2156.47,140900000,2156.47 +1988-10-10,2150.25,2167.85,2139.05,2158.96,124660000,2158.96 +1988-10-07,2112.02,2157.72,2112.02,2150.25,216390000,2150.25 +1988-10-06,2106.51,2118.07,2092.64,2107.75,153570000,2107.75 +1988-10-05,2102.06,2119.84,2082.33,2106.51,175130000,2106.51 +1988-10-04,2105.26,2119.49,2090.68,2102.06,157760000,2102.06 +1988-10-03,2112.91,2116.82,2083.39,2105.26,130380000,2105.26 +1988-09-30,2119.31,2140.29,2104.02,2112.91,175750000,2112.91 +1988-09-29,2085.53,2123.76,2084.46,2119.31,155790000,2119.31 +1988-09-28,2082.33,2096.37,2070.23,2085.53,113720000,2085.53 +1988-09-27,2085.17,2095.30,2069.88,2082.33,113010000,2082.33 +1988-09-26,2090.68,2098.33,2075.75,2085.17,116420000,2085.17 +1988-09-23,2080.01,2097.79,2070.41,2090.68,145100000,2090.68 +1988-09-22,2090.50,2097.08,2066.68,2080.01,150670000,2080.01 +1988-09-21,2087.48,2103.31,2078.77,2090.50,127400000,2090.50 +1988-09-20,2081.08,2097.26,2073.26,2087.48,142220000,2087.48 +1988-09-19,2096.55,2096.55,2066.86,2081.08,135770000,2081.08 +1988-09-16,2092.28,2113.26,2077.70,2098.15,211110000,2098.15 +1988-09-15,2100.64,2112.55,2084.28,2092.28,161210000,2092.28 +1988-09-14,2083.04,2111.66,2079.13,2100.64,177220000,2100.64 +1988-09-13,2072.37,2088.19,2055.30,2083.04,162490000,2083.04 +1988-09-12,2068.81,2088.55,2057.43,2072.37,114880000,2072.37 +1988-09-09,2063.12,2088.73,2038.94,2068.81,141540000,2068.81 +1988-09-08,2065.79,2079.30,2052.10,2063.12,149380000,2063.12 +1988-09-07,2065.26,2084.10,2052.98,2065.79,139590000,2065.79 +1988-09-06,2054.59,2074.68,2046.41,2065.26,122250000,2065.26 +1988-09-02,2022.40,2064.72,2022.40,2054.59,159840000,2054.59 +1988-09-01,2027.56,2027.56,1988.44,2002.31,144090000,2002.31 +1988-08-31,2038.23,2052.45,2022.94,2031.65,130480000,2031.65 +1988-08-30,2041.43,2052.63,2028.63,2038.23,108720000,2038.23 +1988-08-29,2019.56,2047.47,2019.56,2041.43,99280000,2041.43 +1988-08-26,2010.85,2027.38,2002.13,2017.43,89240000,2017.43 +1988-08-25,2022.05,2022.05,1990.40,2010.85,127640000,2010.85 +1988-08-24,1990.04,2028.98,1990.04,2026.67,127800000,2026.67 +1988-08-23,1990.22,2008.36,1978.66,1989.33,119540000,1989.33 +1988-08-22,2016.00,2027.56,1987.02,1990.22,122250000,1990.22 +1988-08-19,2027.03,2048.89,2011.38,2016.00,122370000,2016.00 +1988-08-18,2025.96,2046.59,2014.22,2027.03,139820000,2027.03 +1988-08-17,2021.51,2042.50,2003.38,2025.96,169500000,2025.96 +1988-08-16,2004.27,2043.56,1993.78,2021.51,162790000,2021.51 +1988-08-15,2037.52,2040.72,1998.76,2004.27,128560000,2004.27 +1988-08-12,2039.30,2046.41,2019.38,2037.52,176960000,2037.52 +1988-08-11,2034.14,2050.68,2014.05,2039.30,173000000,2039.30 +1988-08-10,2078.41,2078.41,2023.65,2034.14,200950000,2034.14 +1988-08-09,2107.40,2110.95,2061.17,2079.13,200710000,2079.13 +1988-08-08,2119.13,2134.60,2103.13,2107.40,148800000,2107.40 +1988-08-05,2126.60,2128.73,2105.44,2119.13,113400000,2119.13 +1988-08-04,2134.07,2147.23,2117.71,2126.60,157240000,2126.60 +1988-08-03,2131.22,2147.94,2115.40,2134.07,203590000,2134.07 +1988-08-02,2130.51,2151.85,2112.20,2131.22,166660000,2131.22 +1988-08-01,2128.73,2146.16,2111.84,2130.51,138170000,2130.51 +1988-07-29,2084.28,2133.01,2084.28,2128.73,192340000,2128.73 +1988-07-28,2053.70,2089.26,2047.30,2082.33,154570000,2082.33 +1988-07-27,2073.97,2089.97,2047.30,2053.70,135890000,2053.70 +1988-07-26,2071.83,2089.79,2059.57,2073.97,121960000,2073.97 +1988-07-25,2060.99,2082.68,2048.54,2071.83,215140000,2071.83 +1988-07-22,2086.59,2092.46,2050.32,2060.99,148880000,2060.99 +1988-07-21,2110.60,2113.62,2077.17,2086.59,149460000,2086.59 +1988-07-20,2097.26,2119.31,2091.39,2110.60,151990000,2110.60 +1988-07-19,2117.89,2127.67,2081.08,2097.26,144110000,2097.26 +1988-07-18,2129.45,2132.47,2099.40,2117.89,156210000,2117.89 +1988-07-15,2113.62,2140.11,2099.57,2129.45,199710000,2129.45 +1988-07-14,2104.37,2125.71,2089.26,2113.62,172410000,2113.62 +1988-07-13,2092.64,2114.15,2073.44,2104.37,218930000,2104.37 +1988-07-12,2111.31,2121.44,2077.52,2092.64,161650000,2092.64 +1988-07-11,2106.15,2126.07,2098.68,2111.31,123300000,2111.31 +1988-07-08,2122.69,2133.53,2099.40,2106.15,136070000,2106.15 +1988-07-07,2130.16,2136.02,2101.35,2122.69,156100000,2122.69 +1988-07-06,2158.61,2169.45,2107.40,2130.16,189630000,2130.16 +1988-07-05,2131.58,2162.52,2117.71,2158.61,171790000,2158.61 +1988-07-01,2141.71,2151.14,2118.95,2131.58,238330000,2131.58 +1988-06-30,2121.98,2147.22,2112.38,2141.71,227410000,2141.71 +1988-06-29,2130.87,2144.91,2106.15,2121.98,159590000,2121.98 +1988-06-28,2108.46,2139.94,2100.11,2130.87,152370000,2130.87 +1988-06-27,2142.96,2147.76,2101.17,2108.46,264410000,2108.46 +1988-06-24,2148.29,2165.36,2133.53,2142.96,179880000,2142.96 +1988-06-23,2152.20,2169.10,2131.58,2148.29,185770000,2148.29 +1988-06-22,2131.05,2160.10,2131.05,2152.20,217510000,2152.20 +1988-06-21,2083.93,2115.75,2072.55,2109.17,155060000,2109.17 +1988-06-20,2100.11,2100.11,2072.72,2083.93,116750000,2083.93 +1988-06-17,2094.24,2116.47,2070.06,2104.02,343920000,2104.02 +1988-06-16,2120.73,2120.73,2081.97,2094.24,161550000,2094.24 +1988-06-15,2124.47,2137.45,2109.53,2131.40,150260000,2131.40 +1988-06-14,2111.13,2148.12,2111.13,2124.47,227150000,2124.47 +1988-06-13,2101.71,2114.15,2084.64,2099.40,125310000,2099.40 +1988-06-10,2093.35,2123.58,2084.81,2101.71,155710000,2101.71 +1988-06-09,2102.95,2119.31,2081.79,2093.35,235160000,2093.35 +1988-06-08,2055.83,2113.62,2055.83,2102.95,310030000,2102.95 +1988-06-07,2075.21,2082.86,2042.85,2054.59,168710000,2054.59 +1988-06-06,2071.31,2083.93,2049.08,2075.21,152460000,2075.21 +1988-06-03,2052.45,2080.73,2040.00,2071.31,189600000,2071.31 +1988-06-02,2064.01,2073.26,2030.94,2052.45,193540000,2052.45 +1988-06-01,2031.12,2076.28,2021.34,2064.01,234560000,2064.01 +1988-05-31,1959.38,2034.50,1959.38,2031.12,247610000,2031.12 +1988-05-27,1966.70,1970.84,1944.35,1956.44,133590000,1956.44 +1988-05-26,1961.37,1981.15,1951.28,1966.70,164260000,1966.70 +1988-05-25,1962.53,1984.58,1952.42,1961.37,138310000,1961.37 +1988-05-24,1941.48,1967.67,1938.16,1962.53,139930000,1962.53 +1988-05-23,1952.59,1962.37,1927.22,1941.48,102640000,1941.48 +1988-05-20,1958.72,1978.78,1940.48,1952.59,120600000,1952.59 +1988-05-19,1951.09,1963.86,1921.58,1958.72,165160000,1958.72 +1988-05-18,1986.41,1992.87,1941.31,1951.09,209420000,1951.09 +1988-05-17,2007.63,2026.69,1982.10,1986.41,133850000,1986.41 +1988-05-16,1990.55,2012.60,1980.27,2007.63,155010000,2007.63 +1988-05-13,1971.65,2001.49,1971.65,1990.55,147240000,1990.55 +1988-05-12,1965.85,1986.07,1960.54,1968.00,143880000,1968.00 +1988-05-11,1988.56,1988.56,1950.27,1965.85,176720000,1965.85 +1988-05-10,1997.35,2020.23,1984.42,2003.64,131200000,2003.64 +1988-05-09,2007.46,2013.59,1984.08,1997.35,166320000,1997.35 +1988-05-06,2013.59,2013.59,1997.84,2007.46,129080000,2007.46 +1988-05-05,2036.31,2038.46,2008.95,2020.23,171840000,2020.23 +1988-05-04,2058.36,2067.14,2029.51,2036.31,141320000,2036.31 +1988-05-03,2043.27,2071.95,2036.64,2058.36,176920000,2058.36 +1988-05-02,2032.33,2050.40,2019.89,2043.27,136470000,2043.27 +1988-04-29,2041.28,2047.91,2014.09,2032.33,135620000,2032.33 +1988-04-28,2047.91,2057.53,2026.03,2041.28,128680000,2041.28 +1988-04-27,2044.76,2066.64,2033.16,2047.91,133810000,2047.91 +1988-04-26,2035.97,2062.83,2023.04,2044.76,152300000,2044.76 +1988-04-25,2015.09,2048.57,2011.60,2035.97,156950000,2035.97 +1988-04-22,1987.40,2029.01,1985.58,2015.09,152520000,2015.09 +1988-04-21,1985.41,2030.50,1968.00,1987.40,168440000,1987.40 +1988-04-20,1999.50,2015.42,1975.46,1985.41,147590000,1985.41 +1988-04-19,2008.12,2047.08,1990.55,1999.50,161910000,1999.50 +1988-04-18,2013.93,2023.04,1985.74,2008.12,144650000,2008.12 +1988-04-15,2005.64,2031.33,1969.99,2013.93,234160000,2013.93 +1988-04-14,2083.22,2083.22,1998.18,2005.64,211810000,2005.64 +1988-04-13,2110.08,2121.35,2082.56,2107.10,185120000,2107.10 +1988-04-12,2095.99,2120.69,2085.38,2110.08,146400000,2110.08 +1988-04-11,2090.19,2110.08,2075.27,2095.99,146370000,2095.99 +1988-04-08,2062.17,2103.78,2051.06,2090.19,169300000,2090.19 +1988-04-07,2061.67,2084.22,2042.94,2062.17,177840000,2062.17 +1988-04-06,1997.51,2067.47,1987.67,2061.67,189760000,2061.67 +1988-04-05,1980.60,2011.27,1969.99,1997.51,135290000,1997.51 +1988-04-04,1988.06,2013.26,1969.50,1980.60,182240000,1980.60 +1988-03-31,1978.12,2000.66,1957.89,1988.06,139870000,1988.06 +1988-03-30,1998.34,2017.57,1973.81,1978.12,151810000,1978.12 +1988-03-29,1979.77,2018.57,1979.61,1998.34,152680000,1998.34 +1988-03-28,1978.95,1990.88,1951.26,1979.77,142820000,1979.77 +1988-03-25,2023.87,2031.00,1973.81,1978.95,163170000,1978.95 +1988-03-24,2052.22,2052.22,2011.44,2023.87,184910000,2023.87 +1988-03-23,2066.15,2085.05,2047.41,2067.64,167370000,2067.64 +1988-03-22,2067.14,2082.89,2052.06,2066.15,142000000,2066.15 +1988-03-21,2081.23,2081.23,2050.56,2067.14,128830000,2067.14 +1988-03-18,2086.04,2110.91,2067.64,2087.37,245750000,2087.37 +1988-03-17,2064.32,2093.17,2057.03,2086.04,211920000,2086.04 +1988-03-16,2047.41,2070.62,2027.02,2064.32,153590000,2064.32 +1988-03-15,2050.07,2062.17,2030.17,2047.41,133170000,2047.41 +1988-03-14,2034.98,2056.70,2023.04,2050.07,131890000,2050.07 +1988-03-11,2026.03,2049.07,1996.52,2034.98,200020000,2034.98 +1988-03-10,2074.27,2081.40,2020.72,2026.03,197260000,2026.03 +1988-03-09,2081.07,2094.16,2064.49,2074.27,210900000,2074.27 +1988-03-08,2056.37,2090.02,2055.04,2081.07,237680000,2081.07 +1988-03-07,2057.86,2069.30,2034.15,2056.37,152980000,2056.37 +1988-03-04,2063.49,2076.76,2033.49,2057.86,201410000,2057.86 +1988-03-03,2071.29,2085.38,2048.41,2063.49,203310000,2063.49 +1988-03-02,2070.47,2094.50,2058.19,2071.29,199630000,2071.29 +1988-03-01,2071.62,2086.87,2048.57,2070.47,199990000,2070.47 +1988-02-29,2023.21,2074.60,2017.24,2071.62,236050000,2071.62 +1988-02-26,2017.57,2034.81,2005.14,2023.21,158060000,2023.21 +1988-02-25,2039.95,2078.08,2006.96,2017.57,213490000,2017.57 +1988-02-24,2039.12,2061.34,2022.88,2039.95,212730000,2039.95 +1988-02-23,2040.29,2057.03,2017.24,2039.12,192260000,2039.12 +1988-02-22,2014.59,2051.72,1998.67,2040.29,178930000,2040.29 +1988-02-19,1986.41,2018.90,1973.31,2014.59,180300000,2014.59 +1988-02-18,2000.99,2011.94,1972.81,1986.41,151430000,1986.41 +1988-02-17,2005.97,2026.19,1982.59,2000.99,176830000,2000.99 +1988-02-16,1983.26,2010.44,1969.83,2005.97,135380000,2005.97 +1988-02-12,1961.54,1995.69,1958.06,1983.26,177190000,1983.26 +1988-02-11,1962.04,1982.43,1942.81,1961.54,200760000,1961.54 +1988-02-10,1916.78,1967.84,1916.78,1962.04,187980000,1962.04 +1988-02-09,1895.72,1921.58,1885.78,1914.46,162350000,1914.46 +1988-02-08,1910.48,1911.14,1878.15,1895.72,168850000,1895.72 +1988-02-05,1923.57,1940.32,1906.32,1910.48,161310000,1910.48 +1988-02-04,1924.57,1941.48,1902.85,1923.57,186490000,1923.57 +1988-02-03,1952.92,1971.98,1907.00,1924.57,237270000,1924.57 +1988-02-02,1944.63,1965.02,1921.09,1952.92,164920000,1952.92 +1988-02-01,1958.22,1985.41,1935.84,1944.63,210660000,1944.63 +1988-01-29,1930.04,1967.67,1921.09,1958.22,211880000,1958.22 +1988-01-28,1911.14,1944.13,1904.34,1930.04,166430000,1930.04 +1988-01-27,1920.59,1951.76,1889.42,1911.14,176360000,1911.14 +1988-01-26,1946.45,1957.73,1906.50,1920.59,138380000,1920.59 +1988-01-25,1903.51,1960.54,1897.05,1946.45,275250000,1946.45 +1988-01-22,1879.31,1911.80,1876.16,1903.51,147050000,1903.51 +1988-01-21,1879.14,1903.35,1845.99,1879.31,158080000,1879.31 +1988-01-20,1934.85,1934.85,1858.59,1879.14,181660000,1879.14 +1988-01-19,1963.86,1977.29,1923.41,1936.34,153550000,1936.34 +1988-01-18,1956.07,1977.45,1938.99,1963.86,135100000,1963.86 +1988-01-15,1942.47,1988.40,1942.47,1956.07,197940000,1956.07 +1988-01-14,1924.73,1940.15,1894.06,1916.11,140570000,1916.11 +1988-01-13,1928.55,1959.55,1884.95,1924.73,154020000,1924.73 +1988-01-12,1945.13,1950.76,1877.98,1928.55,165730000,1928.55 +1988-01-11,1911.31,1985.25,1886.94,1945.13,158980000,1945.13 +1988-01-08,2051.89,2058.69,1898.04,1911.31,197300000,1911.31 +1988-01-07,2037.80,2061.51,2004.64,2051.89,175360000,2051.89 +1988-01-06,2031.50,2058.19,2012.77,2037.80,169730000,2037.80 +1988-01-05,2021.39,2075.27,2021.39,2031.50,209520000,2031.50 +1988-01-04,1950.76,2030.01,1950.76,2015.25,181810000,2015.25 +1987-12-31,1950.10,1951.26,1912.63,1938.83,170140000,1938.83 +1987-12-30,1926.89,1966.18,1925.73,1950.10,149230000,1950.10 +1987-12-29,1942.97,1951.76,1918.10,1926.89,111580000,1926.89 +1987-12-28,1966.18,1966.18,1921.92,1942.97,131220000,1942.97 +1987-12-24,2005.64,2013.10,1985.74,1999.67,108800000,1999.67 +1987-12-23,1978.45,2019.56,1977.62,2005.64,203110000,2005.64 +1987-12-22,1990.38,1999.67,1949.27,1978.45,192650000,1978.45 +1987-12-21,1975.30,2008.45,1959.56,1990.38,161790000,1990.38 +1987-12-18,1924.73,1982.92,1924.73,1975.30,276220000,1975.30 +1987-12-17,1974.47,1987.23,1917.44,1924.40,191780000,1924.40 +1987-12-16,1941.48,1984.08,1918.44,1974.47,193820000,1974.47 +1987-12-15,1932.86,1969.00,1916.28,1941.48,214970000,1941.48 +1987-12-14,1867.04,1942.31,1860.41,1932.86,187680000,1932.86 +1987-12-11,1855.44,1887.93,1838.36,1867.04,151680000,1867.04 +1987-12-10,1902.52,1923.57,1835.71,1855.44,188960000,1855.44 +1987-12-09,1868.37,1924.90,1846.65,1902.52,231430000,1902.52 +1987-12-08,1812.17,1870.69,1794.60,1868.37,227310000,1868.37 +1987-12-07,1766.74,1818.14,1765.75,1812.17,146660000,1812.17 +1987-12-04,1776.53,1794.60,1733.92,1766.74,184800000,1766.74 +1987-12-03,1848.97,1859.08,1772.21,1776.53,204160000,1776.53 +1987-12-02,1842.34,1871.52,1825.27,1848.97,148890000,1848.97 +1987-12-01,1833.55,1877.98,1829.08,1842.34,149870000,1842.34 +1987-11-30,1867.37,1867.37,1795.26,1833.55,268910000,1833.55 +1987-11-27,1946.95,1955.24,1907.00,1910.48,86360000,1910.48 +1987-11-25,1963.53,1982.59,1935.68,1946.95,139780000,1946.95 +1987-11-24,1936.84,1985.25,1936.84,1963.53,199520000,1963.53 +1987-11-23,1913.63,1931.86,1889.26,1923.08,143160000,1923.08 +1987-11-20,1895.39,1926.39,1853.61,1913.63,189170000,1913.63 +1987-11-19,1939.16,1941.98,1881.80,1895.39,157140000,1895.39 +1987-11-18,1922.25,1951.92,1888.93,1939.16,158260000,1939.16 +1987-11-17,1939.99,1939.99,1888.76,1922.25,148240000,1922.25 +1987-11-16,1935.01,1979.28,1921.75,1949.10,164340000,1949.10 +1987-11-13,1960.21,1973.81,1923.08,1935.01,174920000,1935.01 +1987-11-12,1934.84,1983.92,1934.84,1960.21,206280000,1960.21 +1987-11-11,1881.96,1927.72,1881.96,1899.20,147850000,1899.20 +1987-11-10,1900.20,1911.97,1845.99,1878.15,184310000,1878.15 +1987-11-09,1941.81,1941.81,1881.96,1900.20,160690000,1900.20 +1987-11-06,1985.41,2023.54,1938.83,1959.05,228290000,1959.05 +1987-11-05,1945.29,2011.94,1920.42,1985.41,226000000,1985.41 +1987-11-04,1963.53,1980.60,1913.50,1945.29,202500000,1945.29 +1987-11-03,1988.40,1988.40,1891.74,1963.53,227800000,1963.53 +1987-11-02,1993.53,2027.52,1957.23,2014.09,176000000,2014.09 +1987-10-30,1965.68,2049.07,1965.68,1993.53,303400000,1993.53 +1987-10-29,1849.30,1971.98,1849.30,1938.33,258100000,1938.33 +1987-10-28,1846.49,1904.51,1767.74,1846.82,279400000,1846.82 +1987-10-27,1806.70,1904.68,1806.70,1846.49,260200000,1846.49 +1987-10-26,1881.80,1881.80,1774.04,1793.93,308800000,1793.93 +1987-10-23,1950.43,1993.87,1898.54,1950.76,245600000,1950.76 +1987-10-22,2004.97,2004.97,1837.86,1950.43,392200000,1950.43 +1987-10-21,1951.76,2081.07,1951.76,2027.85,449600000,2027.85 +1987-10-20,1738.74,2067.47,1616.21,1841.01,608100000,1841.01 +1987-10-19,2164.16,2164.16,1677.55,1738.74,604300000,1738.74 +1987-10-16,2355.09,2396.21,2207.73,2246.73,338500000,2246.73 +1987-10-15,2412.70,2439.78,2345.63,2355.09,263200000,2355.09 +1987-10-14,2485.15,2485.15,2400.46,2412.70,207400000,2412.70 +1987-10-13,2471.44,2528.39,2456.92,2508.16,172900000,2508.16 +1987-10-12,2482.21,2504.90,2433.91,2471.44,141900000,2471.44 +1987-10-09,2516.64,2531.66,2472.26,2482.21,158300000,2482.21 +1987-10-08,2551.08,2561.36,2491.51,2516.64,198700000,2516.64 +1987-10-07,2548.63,2570.99,2511.75,2551.08,186300000,2551.08 +1987-10-06,2632.83,2632.83,2542.59,2548.63,175600000,2548.63 +1987-10-05,2640.99,2658.78,2610.97,2640.18,159700000,2640.18 +1987-10-02,2639.20,2662.37,2622.06,2640.99,189100000,2640.99 +1987-10-01,2596.28,2648.99,2593.18,2639.20,193200000,2639.20 +1987-09-30,2590.57,2613.58,2563.64,2596.28,183100000,2596.28 +1987-09-29,2601.50,2627.61,2569.03,2590.57,173500000,2590.57 +1987-09-28,2574.58,2634.95,2574.58,2601.50,188100000,2601.50 +1987-09-25,2566.42,2584.04,2543.73,2570.17,138000000,2570.17 +1987-09-24,2585.67,2603.95,2552.06,2566.42,162200000,2566.42 +1987-09-23,2568.05,2602.15,2554.83,2585.67,220300000,2585.67 +1987-09-22,2492.82,2572.62,2468.99,2568.05,209500000,2568.05 +1987-09-21,2524.64,2559.73,2479.77,2492.82,170100000,2492.82 +1987-09-18,2527.90,2554.83,2514.03,2524.64,188100000,2524.64 +1987-09-17,2530.19,2557.28,2508.00,2527.90,150700000,2527.90 +1987-09-16,2566.58,2585.18,2522.52,2530.19,195700000,2530.19 +1987-09-15,2610.48,2610.48,2560.22,2566.58,136200000,2566.58 +1987-09-14,2608.74,2634.57,2587.85,2613.04,154400000,2613.04 +1987-09-11,2576.05,2625.95,2575.41,2608.74,178000000,2608.74 +1987-09-10,2549.43,2595.50,2549.43,2576.05,179800000,2576.05 +1987-09-09,2545.12,2570.63,2522.80,2549.27,164900000,2549.27 +1987-09-08,2561.38,2571.43,2493.78,2545.12,242900000,2545.12 +1987-09-04,2599.49,2617.19,2556.28,2561.38,129100000,2561.38 +1987-09-03,2602.04,2642.22,2560.11,2599.49,165200000,2599.49 +1987-09-02,2610.97,2631.06,2567.76,2602.04,199900000,2602.04 +1987-09-01,2662.95,2695.47,2594.07,2610.97,193500000,2610.97 +1987-08-31,2639.35,2679.53,2623.57,2662.95,165800000,2662.95 +1987-08-28,2675.06,2680.32,2632.02,2639.35,156300000,2639.35 +1987-08-27,2701.85,2705.52,2661.35,2675.06,163600000,2675.06 +1987-08-26,2722.42,2742.03,2686.54,2701.85,196200000,2701.85 +1987-08-25,2697.07,2746.65,2694.83,2722.42,213500000,2722.42 +1987-08-24,2709.50,2730.55,2678.89,2697.07,149400000,2697.07 +1987-08-21,2706.79,2735.49,2689.09,2709.50,189600000,2709.50 +1987-08-20,2665.97,2714.60,2665.97,2706.79,196600000,2706.79 +1987-08-19,2654.66,2676.18,2628.19,2665.82,180900000,2665.82 +1987-08-18,2691.01,2691.01,2626.59,2654.66,198400000,2654.66 +1987-08-17,2685.43,2713.97,2674.43,2700.57,166100000,2700.57 +1987-08-14,2691.49,2713.33,2660.08,2685.43,196100000,2685.43 +1987-08-13,2669.32,2714.92,2656.57,2691.49,217100000,2691.49 +1987-08-12,2680.48,2700.73,2648.60,2669.32,235800000,2669.32 +1987-08-11,2635.84,2691.96,2635.52,2680.48,278100000,2680.48 +1987-08-10,2592.00,2640.15,2587.85,2635.84,187200000,2635.84 +1987-08-07,2594.23,2611.93,2576.21,2592.00,212700000,2592.00 +1987-08-06,2566.65,2600.92,2551.82,2594.23,192000000,2594.23 +1987-08-05,2546.72,2586.58,2540.98,2566.65,192700000,2566.65 +1987-08-04,2557.08,2568.72,2525.99,2546.72,166500000,2546.72 +1987-08-03,2572.07,2585.30,2536.67,2557.08,207800000,2557.08 +1987-07-31,2567.44,2588.33,2551.02,2572.07,181900000,2572.07 +1987-07-30,2539.54,2576.85,2527.42,2567.44,208000000,2567.44 +1987-07-29,2519.77,2548.47,2501.59,2539.54,196200000,2539.54 +1987-07-28,2493.94,2537.15,2489.32,2519.77,172600000,2519.77 +1987-07-27,2485.33,2511.64,2468.75,2493.94,152000000,2493.94 +1987-07-24,2471.94,2494.90,2462.53,2485.33,158400000,2485.33 +1987-07-23,2470.18,2492.67,2447.07,2471.94,163700000,2471.94 +1987-07-22,2467.95,2488.68,2448.50,2470.18,174700000,2470.18 +1987-07-21,2487.82,2500.16,2444.67,2467.95,186600000,2467.95 +1987-07-20,2510.04,2512.28,2476.88,2487.82,168100000,2487.82 +1987-07-17,2496.97,2533.64,2485.65,2510.04,210000000,2510.04 +1987-07-16,2483.74,2511.48,2471.78,2496.97,210900000,2496.97 +1987-07-15,2481.35,2502.23,2455.20,2483.74,202300000,2483.74 +1987-07-14,2452.97,2492.98,2442.60,2481.35,185900000,2481.35 +1987-07-13,2455.99,2470.34,2427.14,2452.97,152500000,2452.97 +1987-07-10,2451.21,2470.50,2435.91,2455.99,172100000,2455.99 +1987-07-09,2463.97,2478.48,2441.17,2451.21,195400000,2451.21 +1987-07-08,2449.78,2476.24,2432.56,2463.97,207500000,2463.97 +1987-07-07,2429.53,2467.63,2425.06,2449.78,200700000,2449.78 +1987-07-06,2436.70,2460.30,2412.95,2429.53,155000000,2429.53 +1987-07-02,2415.66,2446.27,2415.66,2436.70,154900000,2436.70 +1987-07-01,2418.53,2430.80,2391.26,2409.76,157000000,2409.76 +1987-06-30,2446.91,2456.31,2401.15,2418.53,165500000,2418.53 +1987-06-29,2436.86,2460.30,2423.79,2446.91,142500000,2446.91 +1987-06-26,2451.05,2453.92,2423.63,2436.86,150500000,2436.86 +1987-06-25,2430.33,2460.14,2430.33,2451.05,173500000,2451.05 +1987-06-24,2439.73,2454.08,2415.34,2428.41,153800000,2428.41 +1987-06-23,2445.51,2466.04,2421.72,2439.73,194200000,2439.73 +1987-06-22,2420.85,2457.29,2417.40,2445.51,178200000,2445.51 +1987-06-19,2408.13,2431.85,2395.26,2420.85,220500000,2420.85 +1987-06-18,2407.35,2419.91,2386.46,2408.13,168600000,2408.13 +1987-06-17,2407.35,2427.29,2390.70,2407.35,184700000,2407.35 +1987-06-16,2391.54,2415.36,2376.10,2407.35,157800000,2407.35 +1987-06-15,2377.73,2409.44,2374.39,2391.54,156900000,2391.54 +1987-06-12,2360.74,2399.42,2360.74,2377.73,175100000,2377.73 +1987-06-11,2353.61,2380.46,2341.93,2360.13,138900000,2360.13 +1987-06-10,2352.70,2389.71,2328.58,2353.61,197400000,2353.61 +1987-06-09,2351.64,2366.05,2331.77,2352.70,164200000,2352.70 +1987-06-08,2326.15,2362.71,2306.89,2351.64,136400000,2351.64 +1987-06-05,2337.08,2346.33,2312.35,2326.15,129100000,2326.15 +1987-06-04,2320.69,2343.45,2308.71,2337.08,140300000,2337.08 +1987-06-03,2283.37,2330.10,2283.37,2320.69,164200000,2320.69 +1987-06-02,2288.23,2306.43,2260.62,2278.22,153400000,2278.22 +1987-06-01,2291.57,2319.78,2277.00,2288.23,149300000,2288.23 +1987-05-29,2310.68,2332.39,2281.10,2291.57,153500000,2291.57 +1987-05-28,2295.81,2323.57,2265.93,2310.68,153800000,2310.68 +1987-05-27,2297.94,2320.24,2274.27,2295.81,171400000,2295.81 +1987-05-26,2252.88,2305.52,2252.88,2297.94,152500000,2297.94 +1987-05-22,2225.77,2258.42,2220.15,2243.20,135800000,2243.20 +1987-05-21,2215.87,2256.06,2212.77,2225.77,164800000,2225.77 +1987-05-20,2221.28,2248.08,2188.53,2215.87,206800000,2215.87 +1987-05-19,2258.66,2280.46,2205.40,2221.28,175400000,2221.28 +1987-05-18,2272.52,2282.91,2227.05,2258.66,174200000,2258.66 +1987-05-15,2324.48,2324.48,2266.60,2272.52,180800000,2272.52 +1987-05-14,2329.68,2349.31,2307.16,2325.49,152000000,2325.49 +1987-05-13,2322.60,2346.85,2302.11,2329.68,171000000,2329.68 +1987-05-12,2307.30,2333.14,2289.84,2322.60,155300000,2322.60 +1987-05-11,2322.30,2380.77,2297.92,2307.30,203700000,2307.30 +1987-05-08,2334.66,2357.24,2303.13,2322.30,161900000,2322.30 +1987-05-07,2342.19,2368.61,2315.77,2334.66,215200000,2334.66 +1987-05-06,2338.07,2369.89,2309.94,2342.19,196600000,2342.19 +1987-05-05,2294.60,2348.01,2294.60,2338.07,192300000,2338.07 +1987-05-04,2280.40,2305.96,2255.26,2286.22,140600000,2286.22 +1987-05-01,2286.36,2312.22,2256.68,2280.40,160100000,2280.40 +1987-04-30,2254.26,2314.20,2250.00,2286.36,183100000,2286.36 +1987-04-29,2231.96,2283.24,2228.27,2254.26,173600000,2254.26 +1987-04-28,2230.54,2270.74,2214.06,2231.96,180100000,2231.96 +1987-04-27,2235.37,2264.35,2180.54,2230.54,222700000,2230.54 +1987-04-24,2279.55,2279.55,2221.59,2235.37,178000000,2235.37 +1987-04-23,2285.94,2318.61,2255.82,2280.97,173900000,2280.97 +1987-04-22,2337.07,2353.13,2282.10,2285.94,185900000,2285.94 +1987-04-21,2270.60,2341.05,2240.91,2337.07,191300000,2337.07 +1987-04-20,2275.99,2300.57,2252.56,2270.60,139100000,2270.60 +1987-04-16,2282.95,2320.88,2264.63,2275.99,189600000,2275.99 +1987-04-15,2252.98,2307.53,2243.32,2282.95,198200000,2282.95 +1987-04-14,2287.07,2293.89,2213.64,2252.98,266500000,2252.98 +1987-04-13,2338.78,2355.68,2278.41,2287.07,181000000,2287.07 +1987-04-10,2339.20,2358.66,2305.11,2338.78,169500000,2338.78 +1987-04-09,2372.16,2383.81,2320.60,2339.20,180300000,2339.20 +1987-04-08,2360.94,2396.16,2342.61,2372.16,179800000,2372.16 +1987-04-07,2405.54,2428.41,2352.84,2360.94,186400000,2360.94 +1987-04-06,2390.34,2425.00,2384.80,2405.54,173700000,2405.54 +1987-04-03,2320.45,2402.41,2307.67,2390.34,213400000,2390.34 +1987-04-02,2316.05,2347.59,2299.29,2320.45,183000000,2320.45 +1987-04-01,2304.69,2325.14,2271.16,2316.05,182600000,2316.05 +1987-03-31,2278.41,2315.48,2271.31,2304.69,171800000,2304.69 +1987-03-30,2303.41,2303.41,2230.26,2278.41,208400000,2278.41 +1987-03-27,2372.59,2386.65,2326.99,2335.80,184400000,2335.80 +1987-03-26,2363.49,2399.57,2359.38,2372.59,196000000,2372.59 +1987-03-25,2369.18,2383.52,2344.46,2363.49,171300000,2363.49 +1987-03-24,2363.78,2387.36,2348.01,2369.18,189900000,2369.18 +1987-03-23,2333.52,2373.01,2322.44,2363.78,189100000,2363.78 +1987-03-20,2299.57,2342.05,2295.03,2333.52,234000000,2333.52 +1987-03-19,2286.93,2310.65,2270.17,2299.57,166100000,2299.57 +1987-03-18,2284.80,2315.20,2262.22,2286.93,198100000,2286.93 +1987-03-17,2248.44,2287.78,2238.21,2284.80,177300000,2284.80 +1987-03-16,2258.66,2263.64,2224.86,2248.44,134900000,2248.44 +1987-03-13,2267.34,2282.39,2245.03,2258.66,150900000,2258.66 +1987-03-12,2268.98,2288.15,2250.14,2267.34,174500000,2267.34 +1987-03-11,2280.09,2302.17,2256.47,2268.98,186900000,2268.98 +1987-03-10,2260.12,2289.93,2246.48,2280.09,174800000,2280.09 +1987-03-09,2279.67,2279.67,2238.61,2260.12,165400000,2260.12 +1987-03-06,2276.43,2298.23,2256.47,2280.23,181600000,2280.23 +1987-03-05,2257.45,2295.70,2253.94,2276.43,205400000,2276.43 +1987-03-04,2226.52,2270.11,2226.24,2257.45,198400000,2257.45 +1987-03-03,2220.47,2240.44,2209.93,2226.52,149200000,2226.52 +1987-03-02,2223.99,2242.55,2209.08,2220.47,156700000,2220.47 +1987-02-27,2216.68,2237.91,2204.87,2223.99,142800000,2223.99 +1987-02-26,2226.24,2239.31,2196.71,2216.68,165800000,2216.68 +1987-02-25,2223.28,2248.59,2209.36,2226.24,184100000,2226.24 +1987-02-24,2216.54,2244.09,2202.62,2223.28,151300000,2223.28 +1987-02-23,2235.24,2249.86,2186.30,2216.54,170500000,2216.54 +1987-02-20,2244.09,2260.12,2220.89,2235.24,175800000,2235.24 +1987-02-19,2237.63,2263.22,2212.32,2244.09,181500000,2244.09 +1987-02-18,2237.49,2266.45,2213.16,2237.63,218200000,2237.63 +1987-02-17,2184.90,2242.41,2184.90,2237.49,187800000,2237.49 +1987-02-13,2165.78,2201.35,2148.76,2183.35,184400000,2183.35 +1987-02-12,2171.96,2203.18,2146.09,2165.78,200400000,2165.78 +1987-02-11,2158.04,2182.51,2145.53,2171.96,172400000,2171.96 +1987-02-10,2176.74,2183.63,2134.42,2158.04,168300000,2158.04 +1987-02-09,2186.87,2195.73,2157.90,2176.74,143300000,2176.74 +1987-02-06,2201.49,2213.30,2176.32,2186.87,184100000,2186.87 +1987-02-05,2191.23,2223.28,2174.63,2201.49,256700000,2201.49 +1987-02-04,2168.45,2198.40,2154.67,2191.23,222400000,2191.23 +1987-02-03,2179.42,2201.21,2159.73,2168.45,198100000,2168.45 +1987-02-02,2158.04,2193.62,2142.15,2179.42,177400000,2179.42 +1987-01-30,2160.01,2173.51,2127.67,2158.04,163400000,2158.04 +1987-01-29,2163.39,2193.34,2139.20,2160.01,205300000,2160.01 +1987-01-28,2150.45,2181.10,2136.39,2163.39,195800000,2163.39 +1987-01-27,2110.24,2160.85,2110.24,2150.45,192300000,2150.45 +1987-01-26,2101.52,2125.42,2079.72,2107.28,138900000,2107.28 +1987-01-23,2145.67,2214.57,2062.85,2101.52,302400000,2101.52 +1987-01-22,2094.07,2151.86,2083.66,2145.67,188700000,2145.67 +1987-01-21,2104.47,2123.88,2079.02,2094.07,184200000,2094.07 +1987-01-20,2102.50,2131.61,2082.54,2104.47,224800000,2104.47 +1987-01-19,2076.63,2112.49,2051.32,2102.50,162800000,2102.50 +1987-01-16,2070.73,2099.69,2054.56,2076.63,218400000,2076.63 +1987-01-15,2035.01,2091.25,2030.79,2070.73,253100000,2070.73 +1987-01-14,2012.94,2046.26,2003.94,2035.01,214200000,2035.01 +1987-01-13,2009.42,2027.14,1994.52,2012.94,170900000,2012.94 +1987-01-12,2005.91,2022.08,1987.63,2009.42,184200000,2009.42 +1987-01-09,2002.25,2021.65,1988.61,2005.91,193000000,2005.91 +1987-01-08,1993.95,2014.20,1975.96,2002.25,194500000,2002.25 +1987-01-07,1974.83,2003.09,1965.69,1993.95,190900000,1993.95 +1987-01-06,1971.32,1993.81,1961.90,1974.83,189300000,1974.83 +1987-01-05,1936.59,1980.74,1936.59,1971.32,181900000,1971.32 +1987-01-02,1897.36,1933.49,1897.36,1927.31,91880000,1927.31 +1986-12-31,1908.61,1920.42,1885.40,1895.95,139200000,1895.95 +1986-12-30,1912.12,1920.70,1894.69,1908.61,126200000,1908.61 +1986-12-29,1930.40,1931.38,1904.53,1912.12,99800000,1912.12 +1986-12-26,1926.88,1939.12,1919.71,1930.40,48860000,1930.40 +1986-12-24,1914.37,1937.57,1910.01,1926.88,95410000,1926.88 +1986-12-23,1926.18,1933.77,1902.28,1914.37,188700000,1914.37 +1986-12-22,1928.85,1938.84,1907.76,1926.18,157600000,1926.18 +1986-12-19,1912.82,1935.18,1899.89,1928.85,244700000,1928.85 +1986-12-18,1918.31,1927.02,1900.17,1912.82,155400000,1912.82 +1986-12-17,1936.16,1937.57,1909.45,1918.31,148800000,1918.31 +1986-12-16,1922.81,1942.91,1912.40,1936.16,157000000,1936.16 +1986-12-15,1912.26,1925.34,1887.09,1922.81,148200000,1922.81 +1986-12-12,1923.65,1932.09,1904.39,1912.26,126600000,1912.26 +1986-12-11,1932.93,1947.41,1904.81,1923.65,136000000,1923.65 +1986-12-10,1916.90,1943.05,1908.32,1932.93,139700000,1932.93 +1986-12-09,1930.26,1939.82,1909.87,1916.90,128700000,1916.90 +1986-12-08,1925.06,1946.71,1906.92,1930.26,159000000,1930.26 +1986-12-05,1939.68,1950.22,1911.70,1925.06,139800000,1925.06 +1986-12-04,1947.27,1963.30,1930.26,1939.68,156900000,1939.68 +1986-12-03,1955.57,1971.74,1933.91,1947.27,200100000,1947.27 +1986-12-02,1914.93,1958.80,1914.93,1955.57,230400000,1955.57 +1986-12-01,1914.23,1915.91,1880.48,1912.54,133800000,1912.54 +1986-11-28,1916.76,1923.51,1903.82,1914.23,93530000,1914.23 +1986-11-26,1912.12,1926.46,1895.11,1916.76,152000000,1916.76 +1986-11-25,1906.07,1922.81,1890.04,1912.12,154600000,1912.12 +1986-11-24,1893.56,1921.40,1879.08,1906.07,150800000,1906.07 +1986-11-21,1860.66,1901.86,1853.07,1893.56,200700000,1893.56 +1986-11-20,1826.63,1866.28,1823.12,1860.66,158100000,1860.66 +1986-11-19,1817.21,1838.02,1797.10,1826.63,183300000,1826.63 +1986-11-18,1860.52,1864.31,1806.52,1817.21,185300000,1817.21 +1986-11-17,1873.59,1879.92,1846.74,1860.52,133300000,1860.52 +1986-11-14,1862.20,1883.57,1848.28,1873.59,172100000,1873.59 +1986-11-13,1893.70,1901.01,1857.28,1862.20,164000000,1862.20 +1986-11-12,1895.95,1909.31,1876.97,1893.70,162200000,1893.70 +1986-11-11,1892.29,1904.95,1882.45,1895.95,118500000,1895.95 +1986-11-10,1886.53,1901.01,1871.20,1892.29,120200000,1892.29 +1986-11-07,1891.59,1899.47,1870.78,1886.53,142300000,1886.53 +1986-11-06,1899.04,1907.48,1868.95,1891.59,165300000,1891.59 +1986-11-05,1892.44,1911.14,1876.55,1899.04,183200000,1899.04 +1986-11-04,1894.26,1902.00,1873.88,1892.44,163200000,1892.44 +1986-11-03,1877.71,1902.28,1870.78,1894.26,138200000,1894.26 +1986-10-31,1878.37,1891.73,1858.13,1877.71,147200000,1877.71 +1986-10-30,1862.77,1894.69,1862.77,1878.37,194200000,1878.37 +1986-10-29,1845.47,1863.33,1834.51,1851.80,164400000,1851.80 +1986-10-28,1841.82,1863.47,1830.99,1845.47,145900000,1845.47 +1986-10-27,1832.36,1850.11,1817.49,1841.82,133200000,1841.82 +1986-10-24,1834.93,1851.66,1821.71,1832.36,137500000,1832.36 +1986-10-23,1808.35,1845.05,1806.95,1834.93,150900000,1834.93 +1986-10-22,1805.68,1821.29,1793.59,1808.35,114000000,1808.35 +1986-10-21,1811.02,1822.98,1792.04,1805.68,110000000,1805.68 +1986-10-20,1826.63,1826.63,1793.87,1811.02,109000000,1811.02 +1986-10-17,1836.19,1844.91,1817.07,1837.04,124100000,1837.04 +1986-10-16,1831.69,1852.64,1819.18,1836.19,156900000,1836.19 +1986-10-15,1800.20,1835.77,1792.18,1831.69,144300000,1831.69 +1986-10-14,1798.37,1816.51,1783.32,1800.20,116800000,1800.20 +1986-10-13,1793.17,1806.95,1781.50,1798.37,54990000,1798.37 +1986-10-10,1796.82,1806.38,1780.93,1793.17,105100000,1793.17 +1986-10-09,1803.85,1824.24,1785.85,1796.82,153400000,1796.82 +1986-10-08,1784.45,1812.43,1772.22,1803.85,141700000,1803.85 +1986-10-07,1784.45,1799.35,1765.19,1784.45,125100000,1784.45 +1986-10-06,1774.18,1794.85,1763.36,1784.45,88250000,1784.45 +1986-10-03,1781.21,1806.38,1761.25,1774.18,128100000,1774.18 +1986-10-02,1782.90,1796.54,1767.72,1781.21,128100000,1781.21 +1986-10-01,1767.58,1805.82,1762.65,1782.90,143600000,1782.90 +1986-09-30,1755.20,1790.35,1750.14,1767.58,124900000,1767.58 +1986-09-29,1768.98,1768.98,1732.99,1755.20,115600000,1755.20 +1986-09-26,1768.56,1788.10,1750.14,1769.69,115300000,1769.69 +1986-09-25,1803.15,1803.15,1753.80,1768.56,134300000,1768.56 +1986-09-24,1797.81,1820.02,1786.28,1803.29,134600000,1803.29 +1986-09-23,1793.45,1809.76,1778.54,1797.81,132600000,1797.81 +1986-09-22,1762.65,1797.81,1761.67,1793.45,126100000,1793.45 +1986-09-19,1774.18,1783.04,1747.61,1762.65,153900000,1762.65 +1986-09-18,1769.40,1789.93,1748.03,1774.18,132200000,1774.18 +1986-09-17,1778.54,1799.35,1757.87,1769.40,141000000,1769.40 +1986-09-16,1767.58,1785.01,1739.60,1778.54,131200000,1778.54 +1986-09-15,1758.72,1786.98,1746.20,1767.58,155600000,1767.58 +1986-09-12,1792.89,1805.40,1733.55,1758.72,240500000,1758.72 +1986-09-11,1868.67,1868.67,1780.79,1792.89,237600000,1792.89 +1986-09-10,1884.14,1897.50,1863.05,1879.50,140300000,1879.50 +1986-09-09,1888.64,1909.45,1874.02,1884.14,137500000,1884.14 +1986-09-08,1899.75,1907.06,1866.84,1888.64,153300000,1888.64 +1986-09-05,1919.71,1933.35,1890.19,1899.75,180600000,1899.75 +1986-09-04,1881.33,1927.87,1877.25,1919.71,189400000,1919.71 +1986-09-03,1870.36,1888.22,1852.78,1881.33,154300000,1881.33 +1986-09-02,1898.34,1913.39,1857.42,1870.36,135500000,1870.36 +1986-08-29,1900.17,1913.53,1883.44,1898.34,125300000,1898.34 +1986-08-28,1904.53,1912.26,1882.73,1900.17,125100000,1900.17 +1986-08-27,1904.25,1918.59,1887.80,1904.53,143300000,1904.53 +1986-08-26,1871.77,1911.28,1870.50,1904.25,156600000,1904.25 +1986-08-25,1887.80,1893.42,1860.52,1871.77,104400000,1871.77 +1986-08-22,1881.19,1899.04,1868.11,1887.80,118100000,1887.80 +1986-08-21,1881.33,1899.47,1864.31,1881.19,135200000,1881.19 +1986-08-20,1862.91,1889.34,1849.97,1881.33,156600000,1881.33 +1986-08-19,1869.52,1880.20,1846.88,1862.91,109300000,1862.91 +1986-08-18,1855.60,1875.14,1842.66,1869.52,112800000,1869.52 +1986-08-15,1844.91,1863.61,1829.02,1855.60,123500000,1855.60 +1986-08-14,1844.49,1859.81,1832.54,1844.91,123800000,1844.91 +1986-08-13,1835.49,1860.66,1822.98,1844.49,156400000,1844.49 +1986-08-12,1811.16,1840.55,1804.42,1835.49,131700000,1835.49 +1986-08-11,1782.62,1824.66,1779.25,1811.16,125600000,1811.16 +1986-08-08,1786.28,1799.78,1769.69,1782.62,106300000,1782.62 +1986-08-07,1779.53,1802.02,1766.17,1786.28,122400000,1786.28 +1986-08-06,1777.00,1788.67,1759.84,1779.53,127500000,1779.53 +1986-08-05,1769.97,1800.20,1766.87,1777.00,153100000,1777.00 +1986-08-04,1763.64,1785.15,1730.60,1769.97,130000000,1769.97 +1986-08-01,1775.31,1788.80,1753.09,1763.64,114900000,1763.64 +1986-07-31,1779.39,1794.29,1764.20,1775.31,112700000,1775.31 +1986-07-30,1766.87,1794.15,1741.56,1779.39,146700000,1779.39 +1986-07-29,1773.90,1788.95,1752.95,1766.87,115700000,1766.87 +1986-07-28,1810.04,1815.24,1760.26,1773.90,128000000,1773.90 +1986-07-25,1791.62,1821.57,1791.06,1810.04,132000000,1810.04 +1986-07-24,1798.37,1806.81,1778.68,1791.62,134700000,1791.62 +1986-07-23,1795.13,1813.70,1780.09,1798.37,133300000,1798.37 +1986-07-22,1779.11,1810.46,1769.12,1795.13,138500000,1795.13 +1986-07-21,1777.98,1792.60,1763.92,1779.11,106300000,1779.11 +1986-07-18,1781.78,1807.37,1754.64,1777.98,149700000,1777.98 +1986-07-17,1774.18,1802.73,1762.09,1781.78,132400000,1781.78 +1986-07-16,1768.70,1794.29,1759.70,1774.18,160800000,1774.18 +1986-07-15,1793.45,1805.54,1760.12,1768.70,184000000,1768.70 +1986-07-14,1816.65,1816.65,1785.29,1793.45,123200000,1793.45 +1986-07-11,1831.83,1840.97,1810.88,1821.43,124500000,1821.43 +1986-07-10,1826.07,1842.94,1799.07,1831.83,146200000,1831.83 +1986-07-09,1820.73,1838.58,1807.65,1826.07,142900000,1826.07 +1986-07-08,1834.36,1834.36,1794.99,1820.73,174100000,1820.73 +1986-07-07,1895.53,1895.53,1834.08,1838.86,138200000,1838.86 +1986-07-03,1909.03,1918.59,1887.23,1900.87,108300000,1900.87 +1986-07-02,1903.54,1922.67,1891.31,1909.03,150000000,1909.03 +1986-07-01,1892.72,1911.28,1878.52,1903.54,147700000,1903.54 +1986-06-30,1885.26,1908.62,1876.12,1892.72,135100000,1892.72 +1986-06-27,1880.20,1898.90,1871.34,1885.26,123800000,1885.26 +1986-06-26,1885.05,1897.22,1867.41,1880.20,134100000,1880.20 +1986-06-25,1875.55,1903.36,1870.32,1885.05,161800000,1885.05 +1986-06-24,1864.26,1891.80,1853.94,1875.55,140600000,1875.55 +1986-06-23,1879.54,1883.40,1853.39,1864.26,123800000,1864.26 +1986-06-20,1855.86,1882.85,1847.64,1879.54,149100000,1879.54 +1986-06-19,1868.94,1883.12,1851.46,1855.86,129000000,1855.86 +1986-06-18,1865.78,1881.33,1843.75,1868.94,117000000,1868.94 +1986-06-17,1871.77,1886.98,1853.94,1865.78,123100000,1865.78 +1986-06-16,1874.19,1890.61,1863.29,1871.77,112100000,1871.77 +1986-06-13,1843.92,1883.21,1843.92,1874.19,141200000,1874.19 +1986-06-12,1846.07,1851.86,1826.29,1838.13,109100000,1838.13 +1986-06-11,1837.19,1854.68,1825.75,1846.07,127400000,1846.07 +1986-06-10,1840.15,1852.80,1816.07,1837.19,125000000,1837.19 +1986-06-09,1880.25,1880.25,1833.83,1840.15,123300000,1840.15 +1986-06-06,1879.44,1894.38,1866.12,1885.90,110900000,1885.90 +1986-06-05,1863.29,1880.79,1851.18,1879.44,110900000,1879.44 +1986-06-04,1870.43,1882.00,1846.34,1863.29,117000000,1863.29 +1986-06-03,1861.95,1875.54,1845.67,1870.43,114700000,1870.43 +1986-06-02,1876.71,1886.17,1845.53,1861.95,120600000,1861.95 +1986-05-30,1882.35,1898.22,1857.95,1876.71,151200000,1876.71 +1986-05-29,1878.28,1892.97,1857.42,1882.35,135700000,1882.35 +1986-05-28,1853.03,1891.79,1851.92,1878.28,159600000,1878.28 +1986-05-27,1823.48,1856.56,1823.48,1853.03,121200000,1853.03 +1986-05-23,1806.30,1842.14,1804.69,1823.29,130200000,1823.29 +1986-05-22,1775.17,1813.74,1774.18,1806.30,144900000,1806.30 +1986-05-21,1783.98,1798.61,1766.62,1775.17,117100000,1775.17 +1986-05-20,1758.18,1788.44,1752.48,1783.98,113000000,1783.98 +1986-05-19,1759.80,1769.84,1746.53,1758.18,85840000,1758.18 +1986-05-16,1774.68,1775.67,1749.88,1759.80,113500000,1759.80 +1986-05-15,1808.28,1808.78,1766.99,1774.68,131600000,1774.68 +1986-05-14,1785.34,1815.23,1775.55,1808.28,132100000,1808.28 +1986-05-13,1787.33,1804.07,1772.32,1785.34,119200000,1785.34 +1986-05-12,1789.43,1804.32,1774.80,1787.33,125400000,1787.33 +1986-05-09,1786.21,1797.12,1767.73,1789.43,137400000,1789.43 +1986-05-08,1775.30,1797.87,1768.48,1786.21,136000000,1786.21 +1986-05-07,1787.95,1790.05,1755.21,1775.30,129900000,1775.30 +1986-05-06,1793.77,1803.32,1775.92,1787.95,121200000,1787.95 +1986-05-05,1774.68,1800.35,1770.96,1793.77,102400000,1793.77 +1986-05-02,1777.78,1795.88,1763.14,1774.68,126300000,1774.68 +1986-05-01,1783.98,1796.88,1761.04,1777.78,146500000,1777.78 +1986-04-30,1825.89,1831.23,1777.90,1783.98,147500000,1783.98 +1986-04-29,1843.75,1856.15,1813.12,1825.89,148800000,1825.89 +1986-04-28,1835.57,1852.66,1817.71,1843.75,123900000,1843.75 +1986-04-25,1831.72,1848.46,1813.74,1835.57,142300000,1835.57 +1986-04-24,1829.61,1848.46,1818.95,1831.72,146600000,1831.72 +1986-04-23,1830.98,1841.27,1803.94,1829.61,149700000,1829.61 +1986-04-22,1855.90,1866.44,1815.97,1830.98,161500000,1830.98 +1986-04-21,1840.40,1864.21,1829.86,1855.90,136100000,1855.90 +1986-04-18,1855.03,1870.16,1830.98,1840.40,153600000,1840.40 +1986-04-17,1847.97,1870.16,1831.72,1855.03,161400000,1855.03 +1986-04-16,1814.73,1859.62,1814.73,1847.97,173800000,1847.97 +1986-04-15,1805.31,1822.05,1789.68,1809.65,123700000,1809.65 +1986-04-14,1790.18,1811.38,1781.00,1805.31,106700000,1805.31 +1986-04-11,1794.30,1812.50,1779.14,1790.18,139400000,1790.18 +1986-04-10,1778.62,1807.83,1768.20,1794.30,184800000,1794.30 +1986-04-09,1769.76,1807.71,1754.19,1778.62,156300000,1778.62 +1986-04-08,1737.07,1779.57,1737.07,1769.76,146300000,1769.76 +1986-04-07,1739.22,1749.04,1712.52,1735.51,129800000,1735.51 +1986-04-04,1766.40,1772.87,1728.45,1739.22,147300000,1739.22 +1986-04-03,1795.26,1809.27,1753.71,1766.40,148200000,1766.40 +1986-04-02,1790.11,1803.64,1769.76,1795.26,145300000,1795.26 +1986-04-01,1818.61,1829.02,1777.54,1790.11,167400000,1790.11 +1986-03-31,1821.72,1841.83,1803.16,1818.61,134400000,1818.61 +1986-03-27,1810.70,1849.74,1806.51,1821.72,178100000,1821.72 +1986-03-26,1778.50,1817.41,1775.98,1810.70,161500000,1810.70 +1986-03-25,1782.93,1794.30,1762.09,1778.50,139300000,1778.50 +1986-03-24,1768.56,1796.22,1763.29,1782.93,143800000,1782.93 +1986-03-21,1804.24,1821.24,1764.85,1768.56,199100000,1768.56 +1986-03-20,1787.95,1820.76,1784.36,1804.24,148000000,1804.24 +1986-03-19,1789.87,1806.99,1773.47,1787.95,150000000,1787.95 +1986-03-18,1776.86,1806.75,1763.65,1789.87,148000000,1789.87 +1986-03-17,1790.59,1790.59,1758.38,1776.86,137500000,1776.86 +1986-03-14,1753.71,1799.93,1745.21,1792.74,181900000,1792.74 +1986-03-13,1745.45,1768.80,1729.53,1753.71,171500000,1753.71 +1986-03-12,1746.05,1773.35,1733.48,1745.45,210300000,1745.45 +1986-03-11,1704.26,1752.17,1704.26,1746.05,187300000,1746.05 +1986-03-10,1699.83,1715.16,1688.70,1702.95,129900000,1702.95 +1986-03-07,1696.60,1713.48,1682.83,1699.83,163200000,1699.83 +1986-03-06,1686.66,1711.21,1681.75,1696.60,159000000,1696.60 +1986-03-05,1686.42,1695.40,1663.07,1686.66,154600000,1686.66 +1986-03-04,1696.67,1718.63,1679.72,1686.42,174500000,1686.42 +1986-03-03,1709.06,1714.33,1684.63,1696.67,142700000,1696.67 +1986-02-28,1713.99,1732.57,1687.50,1709.06,191700000,1709.06 +1986-02-27,1696.90,1728.90,1683.37,1713.99,181700000,1713.99 +1986-02-26,1692.66,1714.79,1679.59,1696.90,158000000,1696.90 +1986-02-25,1698.28,1709.52,1674.08,1692.66,148000000,1692.66 +1986-02-24,1697.71,1709.75,1678.67,1698.28,144700000,1698.28 +1986-02-21,1672.82,1702.75,1668.69,1697.71,177600000,1697.71 +1986-02-20,1658.26,1675.46,1641.97,1672.82,139700000,1672.82 +1986-02-19,1678.78,1689.22,1651.03,1658.26,152000000,1658.26 +1986-02-18,1664.45,1685.55,1649.43,1678.78,160200000,1678.78 +1986-02-14,1645.07,1668.69,1636.12,1664.45,155600000,1664.45 +1986-02-13,1629.93,1649.31,1616.86,1645.07,136500000,1645.07 +1986-02-12,1622.82,1640.48,1611.70,1629.93,136400000,1629.93 +1986-02-11,1626.38,1637.50,1613.30,1622.82,141300000,1622.82 +1986-02-10,1613.42,1633.14,1605.16,1626.38,129900000,1626.38 +1986-02-07,1600.69,1622.82,1576.83,1613.42,144400000,1613.42 +1986-02-06,1593.12,1616.51,1587.50,1600.69,146100000,1600.69 +1986-02-05,1593.23,1601.83,1576.26,1593.12,134300000,1593.12 +1986-02-04,1594.27,1611.47,1575.46,1593.23,175700000,1593.23 +1986-02-03,1570.99,1600.11,1564.33,1594.27,145300000,1594.27 +1986-01-31,1552.18,1582.91,1548.17,1570.99,143500000,1570.99 +1986-01-30,1558.94,1572.59,1545.76,1552.18,125300000,1552.18 +1986-01-29,1556.42,1578.10,1548.05,1558.94,193800000,1558.94 +1986-01-28,1537.61,1561.35,1530.50,1556.42,145700000,1556.42 +1986-01-27,1529.93,1548.17,1524.43,1537.61,122900000,1537.61 +1986-01-24,1511.24,1537.39,1507.68,1529.93,128900000,1529.93 +1986-01-23,1502.29,1519.39,1491.74,1511.24,130300000,1511.24 +1986-01-22,1514.45,1525.57,1494.84,1502.29,131200000,1502.29 +1986-01-21,1529.13,1535.89,1502.87,1514.45,128300000,1514.45 +1986-01-20,1536.01,1536.01,1516.86,1529.13,85340000,1529.13 +1986-01-17,1541.63,1552.52,1519.72,1536.70,132100000,1536.70 +1986-01-16,1527.29,1547.71,1517.09,1541.63,130500000,1541.63 +1986-01-15,1519.04,1535.32,1512.96,1527.29,122400000,1527.29 +1986-01-14,1520.53,1530.62,1508.03,1519.04,113900000,1519.04 +1986-01-13,1513.53,1526.83,1502.29,1520.53,108700000,1520.53 +1986-01-10,1518.23,1530.96,1500.57,1513.53,122800000,1513.53 +1986-01-09,1526.61,1530.85,1495.64,1518.23,176500000,1518.23 +1986-01-08,1565.71,1578.10,1516.63,1526.61,180300000,1526.61 +1986-01-07,1547.59,1573.74,1544.50,1565.71,153000000,1565.71 +1986-01-06,1549.20,1557.00,1537.04,1547.59,99610000,1547.59 +1986-01-03,1537.73,1557.11,1534.98,1549.20,105000000,1549.20 +1986-01-02,1546.67,1551.95,1523.74,1537.73,98960000,1537.73 +1985-12-31,1550.46,1562.84,1537.50,1546.67,112700000,1546.67 +1985-12-30,1543.00,1557.34,1534.98,1550.46,91970000,1550.46 +1985-12-27,1527.29,1548.85,1527.29,1543.00,81560000,1543.00 +1985-12-26,1519.15,1532.57,1514.68,1526.49,62050000,1526.49 +1985-12-24,1528.78,1532.45,1508.83,1519.15,78300000,1519.15 +1985-12-23,1543.00,1547.82,1516.63,1528.78,107900000,1528.78 +1985-12-20,1543.92,1564.56,1535.67,1543.00,170300000,1543.00 +1985-12-19,1542.43,1552.98,1532.00,1543.92,130200000,1543.92 +1985-12-18,1544.50,1560.44,1528.44,1542.43,137900000,1542.43 +1985-12-17,1553.10,1568.81,1536.35,1544.50,155200000,1544.50 +1985-12-16,1535.21,1570.87,1528.90,1553.10,176000000,1553.10 +1985-12-13,1511.24,1546.44,1502.75,1535.21,177900000,1535.21 +1985-12-12,1511.70,1523.51,1496.79,1511.24,170500000,1511.24 +1985-12-11,1499.20,1520.30,1492.09,1511.70,178500000,1511.70 +1985-12-10,1497.02,1514.91,1483.94,1499.20,156500000,1499.20 +1985-12-09,1478.10,1504.13,1478.10,1497.02,144000000,1497.02 +1985-12-06,1482.91,1488.30,1464.79,1477.18,125500000,1477.18 +1985-12-05,1484.40,1504.01,1477.98,1482.91,181000000,1482.91 +1985-12-04,1459.06,1488.76,1457.45,1484.40,153200000,1484.40 +1985-12-03,1457.91,1466.40,1450.34,1459.06,109700000,1459.06 +1985-12-02,1472.13,1476.26,1451.26,1457.91,103500000,1457.91 +1985-11-29,1475.69,1486.93,1463.99,1472.13,84060000,1472.13 +1985-11-27,1456.77,1483.83,1454.01,1475.69,143700000,1475.69 +1985-11-26,1456.65,1470.07,1447.25,1456.77,123100000,1456.77 +1985-11-25,1464.33,1467.09,1449.43,1456.65,91710000,1456.65 +1985-11-22,1462.27,1475.57,1451.61,1464.33,133800000,1464.33 +1985-11-21,1439.79,1466.06,1439.79,1462.27,150300000,1462.27 +1985-11-20,1438.99,1451.49,1429.24,1439.22,105100000,1439.22 +1985-11-19,1440.02,1452.18,1430.05,1438.99,126100000,1438.99 +1985-11-18,1435.09,1447.25,1422.25,1440.02,108400000,1440.02 +1985-11-15,1439.22,1450.57,1425.69,1435.09,130200000,1435.09 +1985-11-14,1427.75,1443.81,1420.64,1439.22,124900000,1439.22 +1985-11-13,1433.60,1439.79,1419.38,1427.75,109700000,1427.75 +1985-11-12,1431.88,1446.10,1421.10,1433.60,170800000,1433.60 +1985-11-11,1404.36,1432.57,1402.41,1431.88,126500000,1431.88 +1985-11-08,1399.54,1410.44,1391.06,1404.36,115000000,1404.36 +1985-11-07,1403.44,1410.11,1389.91,1399.54,119000000,1399.54 +1985-11-06,1396.67,1411.01,1386.47,1403.44,129500000,1403.44 +1985-11-05,1389.68,1402.52,1380.28,1396.67,119200000,1396.67 +1985-11-04,1390.25,1398.51,1377.06,1389.68,104900000,1389.68 +1985-11-01,1374.31,1393.58,1367.78,1390.25,129400000,1390.25 +1985-10-31,1375.57,1383.60,1362.61,1374.31,121500000,1374.31 +1985-10-30,1368.73,1384.63,1361.01,1375.57,120400000,1375.57 +1985-10-29,1359.99,1377.69,1356.18,1368.73,110600000,1368.73 +1985-10-28,1356.52,1364.02,1346.55,1359.99,97880000,1359.99 +1985-10-25,1362.34,1366.71,1351.59,1356.52,101800000,1356.52 +1985-10-24,1367.16,1374.55,1355.29,1362.34,123100000,1362.34 +1985-10-23,1364.36,1373.43,1357.08,1367.16,121700000,1367.16 +1985-10-22,1364.14,1374.66,1356.18,1364.36,111300000,1364.36 +1985-10-21,1368.84,1375.67,1357.75,1364.14,95680000,1364.14 +1985-10-18,1369.29,1383.40,1358.87,1368.84,107100000,1368.84 +1985-10-17,1368.50,1378.36,1356.85,1369.29,140500000,1369.29 +1985-10-16,1350.81,1371.30,1346.21,1368.50,117400000,1368.50 +1985-10-15,1354.73,1364.14,1343.53,1350.81,110400000,1350.81 +1985-10-14,1339.94,1356.18,1336.58,1354.73,78540000,1354.73 +1985-10-11,1328.07,1343.41,1323.70,1339.94,96370000,1339.94 +1985-10-10,1326.72,1333.33,1318.44,1328.07,90910000,1328.07 +1985-10-09,1325.49,1336.81,1320.23,1326.72,99140000,1326.72 +1985-10-08,1324.37,1333.89,1316.20,1325.49,97170000,1325.49 +1985-10-07,1328.74,1335.91,1315.19,1324.37,95550000,1324.37 +1985-10-04,1333.11,1335.01,1321.12,1328.74,101200000,1328.74 +1985-10-03,1333.67,1345.43,1323.81,1333.11,127500000,1333.11 +1985-10-02,1340.95,1351.59,1327.96,1333.67,147300000,1333.67 +1985-10-01,1328.63,1343.97,1323.48,1340.95,130200000,1340.95 +1985-09-30,1320.79,1336.81,1318.55,1328.63,103600000,1328.63 +1985-09-26,1312.05,1325.27,1301.97,1320.79,106100000,1320.79 +1985-09-25,1321.12,1330.20,1306.00,1312.05,92120000,1312.05 +1985-09-24,1316.31,1334.57,1301.86,1321.12,97870000,1321.12 +1985-09-23,1305.78,1323.59,1305.78,1316.31,104800000,1316.31 +1985-09-20,1306.79,1313.40,1294.47,1297.94,101400000,1297.94 +1985-09-19,1300.40,1312.95,1291.22,1306.79,100300000,1306.79 +1985-09-18,1298.16,1307.57,1283.71,1300.40,105700000,1300.40 +1985-09-17,1309.14,1314.52,1291.22,1298.16,111900000,1298.16 +1985-09-16,1307.68,1315.75,1301.08,1309.14,66700000,1309.14 +1985-09-13,1312.39,1320.12,1296.71,1307.68,111400000,1307.68 +1985-09-12,1319.44,1327.40,1307.01,1312.39,107100000,1312.39 +1985-09-11,1333.45,1334.01,1314.85,1319.44,100400000,1319.44 +1985-09-10,1339.27,1346.55,1324.82,1333.45,104700000,1333.45 +1985-09-09,1335.69,1348.23,1326.61,1339.27,89850000,1339.27 +1985-09-06,1325.83,1341.40,1323.92,1335.69,95040000,1335.69 +1985-09-05,1326.72,1333.00,1318.66,1325.83,94480000,1325.83 +1985-09-04,1329.19,1334.12,1318.21,1326.72,85510000,1326.72 +1985-09-03,1334.01,1337.14,1322.80,1329.19,81190000,1329.19 +1985-08-30,1335.13,1342.41,1325.27,1334.01,81620000,1334.01 +1985-08-29,1331.09,1340.05,1325.16,1335.13,85660000,1335.13 +1985-08-28,1322.47,1334.79,1316.98,1331.09,88530000,1331.09 +1985-08-27,1317.65,1328.63,1315.19,1322.47,82140000,1322.47 +1985-08-26,1318.32,1324.26,1309.81,1317.65,70290000,1317.65 +1985-08-23,1318.10,1322.92,1310.48,1318.32,75270000,1318.32 +1985-08-22,1329.53,1334.68,1313.51,1318.10,90600000,1318.10 +1985-08-21,1323.70,1333.67,1319.11,1329.53,94880000,1329.53 +1985-08-20,1312.50,1328.07,1311.83,1323.70,91230000,1323.70 +1985-08-19,1312.72,1319.22,1307.57,1312.50,67930000,1312.50 +1985-08-16,1317.76,1321.57,1305.89,1312.72,87910000,1312.72 +1985-08-15,1316.98,1324.71,1308.13,1317.76,86100000,1317.76 +1985-08-14,1315.30,1326.05,1311.38,1316.98,85780000,1316.98 +1985-08-13,1314.29,1325.49,1303.65,1315.30,80300000,1315.30 +1985-08-12,1320.79,1324.37,1309.14,1314.29,77340000,1314.29 +1985-08-09,1329.86,1331.88,1317.65,1320.79,81750000,1320.79 +1985-08-08,1325.04,1334.79,1318.32,1329.86,102900000,1329.86 +1985-08-07,1325.16,1331.21,1316.31,1325.04,100000000,1325.04 +1985-08-06,1346.89,1350.02,1322.92,1325.16,104000000,1325.16 +1985-08-05,1352.71,1352.71,1336.92,1346.89,79610000,1346.89 +1985-08-02,1355.62,1360.10,1345.43,1353.05,87860000,1353.05 +1985-08-01,1347.45,1361.90,1342.97,1355.62,121500000,1355.62 +1985-07-31,1346.10,1357.41,1340.05,1347.45,124200000,1347.45 +1985-07-30,1343.86,1352.60,1334.90,1346.10,102300000,1346.10 +1985-07-29,1357.08,1358.09,1338.93,1343.86,95960000,1343.86 +1985-07-26,1353.61,1365.59,1345.21,1357.08,107000000,1357.08 +1985-07-25,1348.90,1359.88,1338.60,1353.61,123300000,1353.61 +1985-07-24,1351.81,1359.21,1335.69,1348.90,128600000,1348.90 +1985-07-23,1357.64,1372.20,1344.76,1351.81,143600000,1351.81 +1985-07-22,1359.54,1362.12,1346.89,1357.64,93540000,1357.64 +1985-07-19,1350.92,1363.35,1346.44,1359.54,114800000,1359.54 +1985-07-18,1357.97,1363.26,1345.32,1350.92,131400000,1350.92 +1985-07-17,1347.89,1365.93,1346.21,1357.97,159900000,1357.97 +1985-07-16,1335.46,1351.93,1331.54,1347.89,132500000,1347.89 +1985-07-15,1338.60,1347.67,1326.95,1335.46,103900000,1335.46 +1985-07-12,1337.70,1345.99,1326.39,1338.60,120300000,1338.60 +1985-07-11,1332.89,1343.64,1326.16,1337.70,122800000,1337.70 +1985-07-10,1321.91,1336.81,1315.30,1332.89,108200000,1332.89 +1985-07-09,1328.41,1333.67,1313.40,1321.91,99060000,1321.91 +1985-07-08,1334.45,1336.47,1318.88,1328.41,83670000,1328.41 +1985-07-05,1326.39,1340.61,1324.93,1334.45,62450000,1334.45 +1985-07-03,1334.01,1337.59,1320.23,1326.39,98410000,1326.39 +1985-07-02,1337.14,1343.75,1329.19,1334.01,111100000,1334.01 +1985-07-01,1335.46,1342.18,1322.58,1337.14,96080000,1337.14 +1985-06-28,1332.21,1341.17,1326.16,1335.46,105200000,1335.46 +1985-06-27,1323.81,1338.71,1321.80,1332.21,106700000,1332.21 +1985-06-26,1323.03,1329.19,1314.74,1323.81,94130000,1323.81 +1985-06-25,1320.56,1338.82,1314.07,1323.03,115700000,1323.03 +1985-06-24,1324.48,1326.72,1307.80,1320.56,96040000,1320.56 +1985-06-21,1299.73,1326.05,1293.79,1324.48,125400000,1324.48 +1985-06-20,1297.38,1305.44,1287.75,1299.73,87500000,1299.73 +1985-06-19,1304.77,1312.72,1293.57,1297.38,108300000,1297.38 +1985-06-18,1298.39,1312.39,1293.68,1304.77,106900000,1304.77 +1985-06-17,1300.96,1303.99,1288.75,1298.39,82170000,1298.39 +1985-06-14,1290.10,1305.44,1288.88,1300.96,93090000,1300.96 +1985-06-13,1306.34,1308.13,1285.39,1290.10,107000000,1290.10 +1985-06-12,1313.84,1318.21,1300.74,1306.34,97700000,1306.34 +1985-06-11,1318.44,1323.81,1308.02,1313.84,102100000,1313.84 +1985-06-10,1316.42,1322.58,1307.24,1318.44,87940000,1318.44 +1985-06-07,1327.28,1331.99,1312.95,1316.42,99630000,1316.42 +1985-06-06,1320.56,1330.53,1311.94,1327.28,117200000,1327.28 +1985-06-05,1315.30,1331.77,1312.61,1320.56,143900000,1320.56 +1985-06-04,1310.93,1321.24,1304.44,1315.30,115400000,1315.30 +1985-06-03,1315.41,1325.04,1304.21,1310.93,125000000,1310.93 +1985-05-31,1305.78,1320.79,1298.72,1315.41,134100000,1315.41 +1985-05-30,1302.98,1314.18,1293.91,1305.78,108300000,1305.78 +1985-05-29,1301.52,1308.36,1292.79,1302.98,96540000,1302.98 +1985-05-28,1301.97,1312.84,1293.23,1301.52,90600000,1301.52 +1985-05-24,1296.71,1305.67,1291.11,1301.97,85970000,1301.97 +1985-05-23,1303.76,1307.80,1290.99,1296.71,101000000,1296.71 +1985-05-22,1308.92,1308.92,1294.35,1303.76,101400000,1303.76 +1985-05-21,1304.88,1316.08,1297.49,1309.70,130200000,1309.70 +1985-05-20,1292.23,1310.37,1292.23,1304.88,146300000,1304.88 +1985-05-17,1278.05,1295.83,1271.42,1285.34,124600000,1285.34 +1985-05-16,1273.52,1285.11,1270.10,1278.05,99420000,1278.05 +1985-05-15,1273.30,1283.57,1265.46,1273.52,106100000,1273.52 +1985-05-14,1277.50,1288.65,1267.67,1273.30,97360000,1273.30 +1985-05-13,1274.18,1283.57,1268.77,1277.50,85830000,1277.50 +1985-05-10,1261.59,1282.46,1261.59,1274.18,140300000,1274.18 +1985-05-09,1249.78,1265.57,1246.58,1260.27,111000000,1260.27 +1985-05-08,1252.75,1258.94,1239.51,1249.78,101300000,1249.78 +1985-05-07,1247.79,1261.37,1243.15,1252.75,100200000,1252.75 +1985-05-06,1247.24,1256.40,1241.39,1247.79,85650000,1247.79 +1985-05-03,1242.27,1253.86,1238.30,1247.24,94870000,1247.24 +1985-05-02,1242.05,1251.21,1235.53,1242.27,107700000,1242.27 +1985-05-01,1258.06,1262.81,1239.07,1242.05,101600000,1242.05 +1985-04-30,1259.72,1266.23,1245.80,1258.06,111800000,1258.06 +1985-04-29,1275.18,1277.94,1257.40,1259.72,88860000,1259.72 +1985-04-26,1284.78,1290.30,1270.54,1275.18,86570000,1275.18 +1985-04-25,1278.49,1289.20,1272.53,1284.78,108600000,1284.78 +1985-04-24,1278.71,1286.44,1269.88,1278.49,99600000,1278.49 +1985-04-23,1266.56,1282.91,1261.15,1278.71,108900000,1278.71 +1985-04-22,1266.56,1273.63,1257.62,1266.56,79930000,1266.56 +1985-04-19,1265.13,1272.53,1258.50,1266.56,81110000,1266.56 +1985-04-18,1272.31,1281.91,1260.82,1265.13,100600000,1265.13 +1985-04-17,1269.55,1277.50,1263.47,1272.31,96020000,1272.31 +1985-04-16,1266.78,1276.61,1256.96,1269.55,98480000,1269.55 +1985-04-15,1265.68,1272.42,1257.84,1266.78,80660000,1266.78 +1985-04-12,1263.69,1270.43,1257.29,1265.68,86220000,1265.68 +1985-04-11,1259.94,1274.85,1257.18,1263.69,108400000,1263.69 +1985-04-10,1253.86,1269.10,1252.10,1259.94,108200000,1259.94 +1985-04-09,1252.98,1262.04,1246.58,1253.86,83980000,1253.86 +1985-04-08,1259.05,1267.01,1246.02,1252.98,79960000,1252.98 +1985-04-04,1258.06,1264.24,1248.34,1259.05,86910000,1259.05 +1985-04-03,1265.68,1268.11,1251.55,1258.06,95480000,1258.06 +1985-04-02,1272.75,1280.15,1261.48,1265.68,101700000,1265.68 +1985-04-01,1266.78,1276.28,1260.49,1272.75,89900000,1272.75 +1985-03-29,1260.71,1270.65,1255.85,1266.78,101400000,1266.78 +1985-03-28,1264.91,1275.51,1256.63,1260.71,99780000,1260.71 +1985-03-27,1259.72,1270.87,1255.96,1264.91,101000000,1264.91 +1985-03-26,1259.94,1267.56,1252.10,1259.72,89930000,1259.72 +1985-03-25,1267.45,1268.33,1252.87,1259.94,74040000,1259.94 +1985-03-22,1268.22,1277.39,1261.70,1267.45,99250000,1267.45 +1985-03-21,1265.24,1278.93,1257.62,1268.22,95930000,1268.22 +1985-03-20,1271.09,1277.39,1257.84,1265.24,107500000,1265.24 +1985-03-19,1249.67,1274.18,1245.69,1271.09,119200000,1271.09 +1985-03-18,1247.35,1260.93,1242.82,1249.67,94020000,1249.67 +1985-03-15,1260.05,1266.89,1245.14,1247.35,105200000,1247.35 +1985-03-14,1261.70,1269.21,1254.20,1260.05,103400000,1260.05 +1985-03-13,1271.75,1278.27,1257.62,1261.70,101700000,1261.70 +1985-03-12,1268.55,1279.48,1262.48,1271.75,92840000,1271.75 +1985-03-11,1269.66,1277.05,1260.93,1268.55,84110000,1268.55 +1985-03-08,1271.53,1280.81,1264.13,1269.66,96390000,1269.66 +1985-03-07,1280.37,1283.24,1265.46,1271.53,112100000,1271.53 +1985-03-06,1291.85,1296.93,1275.51,1280.37,116900000,1280.37 +1985-03-05,1289.53,1300.02,1281.03,1291.85,116400000,1291.85 +1985-03-04,1299.36,1304.55,1283.13,1289.53,102100000,1289.53 +1985-03-01,1284.01,1309.96,1282.69,1299.36,139900000,1299.36 +1985-02-28,1281.03,1288.32,1271.42,1284.01,100700000,1284.01 +1985-02-27,1286.11,1295.27,1274.40,1281.03,107700000,1281.03 +1985-02-26,1277.50,1293.18,1272.31,1286.11,114200000,1286.11 +1985-02-25,1275.84,1283.13,1263.91,1277.50,89740000,1277.50 +1985-02-22,1279.04,1286.55,1269.99,1275.84,93680000,1275.84 +1985-02-21,1283.13,1287.10,1272.64,1279.04,104000000,1279.04 +1985-02-20,1280.59,1292.51,1272.53,1283.13,118200000,1283.13 +1985-02-19,1282.02,1287.43,1273.52,1280.59,90400000,1280.59 +1985-02-15,1287.88,1296.27,1275.07,1282.02,106500000,1282.02 +1985-02-14,1297.92,1307.53,1283.68,1287.88,139700000,1287.88 +1985-02-13,1276.61,1304.66,1274.51,1297.92,142500000,1297.92 +1985-02-12,1276.06,1283.13,1266.34,1276.61,111100000,1276.61 +1985-02-11,1289.97,1291.74,1268.66,1276.06,104000000,1276.06 +1985-02-08,1290.08,1297.15,1281.36,1289.97,116500000,1289.97 +1985-02-07,1280.59,1297.04,1279.81,1290.08,151700000,1290.08 +1985-02-06,1285.23,1294.50,1275.07,1280.59,141000000,1280.59 +1985-02-05,1290.08,1301.13,1278.60,1285.23,143900000,1285.23 +1985-02-04,1277.72,1294.94,1268.99,1290.08,113700000,1290.08 +1985-02-01,1286.11,1286.11,1269.77,1277.72,105400000,1277.72 +1985-01-31,1287.88,1293.40,1272.64,1286.77,132500000,1286.77 +1985-01-30,1292.62,1305.10,1278.93,1287.88,170000000,1287.88 +1985-01-29,1277.83,1295.49,1266.89,1292.62,115700000,1292.62 +1985-01-28,1276.06,1290.97,1264.24,1277.83,128400000,1277.83 +1985-01-25,1270.43,1284.67,1262.04,1276.06,122400000,1276.06 +1985-01-24,1274.73,1287.99,1264.58,1270.43,160700000,1270.43 +1985-01-23,1259.50,1278.27,1252.54,1274.73,144400000,1274.73 +1985-01-22,1261.37,1277.27,1252.87,1259.50,174800000,1259.50 +1985-01-21,1227.36,1266.45,1226.70,1261.37,146800000,1261.37 +1985-01-18,1228.69,1237.63,1219.52,1227.36,104700000,1227.36 +1985-01-17,1230.68,1234.65,1219.74,1228.69,113600000,1228.69 +1985-01-16,1230.79,1241.17,1220.74,1230.68,135500000,1230.68 +1985-01-15,1234.54,1243.71,1223.06,1230.79,155300000,1230.79 +1985-01-14,1218.09,1238.18,1210.36,1234.54,124900000,1234.54 +1985-01-11,1223.50,1229.35,1210.91,1218.09,107600000,1218.09 +1985-01-10,1202.74,1225.93,1195.56,1223.50,124700000,1223.50 +1985-01-09,1191.70,1209.47,1190.26,1202.74,99230000,1202.74 +1985-01-08,1190.59,1199.54,1184.08,1191.70,92110000,1191.70 +1985-01-07,1184.96,1198.32,1182.86,1190.59,86190000,1190.59 +1985-01-04,1189.82,1192.69,1178.67,1184.96,77480000,1184.96 +1985-01-03,1198.87,1207.93,1185.18,1189.82,88880000,1189.82 +1985-01-02,1211.57,1212.46,1194.35,1198.87,67820000,1198.87 +1984-12-31,1204.17,1215.55,1199.20,1211.57,80260000,1211.57 +1984-12-28,1202.52,1210.47,1196.11,1204.17,77070000,1204.17 +1984-12-27,1208.92,1214.22,1199.09,1202.52,70100000,1202.52 +1984-12-26,1210.14,1213.69,1201.74,1208.92,46700000,1208.92 +1984-12-24,1199.20,1214.44,1199.20,1210.14,55550000,1210.14 +1984-12-21,1203.29,1210.14,1186.84,1198.98,101200000,1198.98 +1984-12-20,1208.04,1219.52,1198.87,1203.29,93220000,1203.29 +1984-12-19,1211.57,1223.61,1201.52,1208.04,139600000,1208.04 +1984-12-18,1182.31,1213.23,1182.31,1211.57,169000000,1211.57 +1984-12-17,1175.91,1182.31,1164.53,1176.79,89490000,1176.79 +1984-12-14,1168.84,1187.28,1165.64,1175.91,95060000,1175.91 +1984-12-13,1175.13,1183.52,1162.65,1168.84,80850000,1168.84 +1984-12-12,1178.33,1183.97,1170.38,1175.13,78710000,1175.13 +1984-12-11,1172.26,1183.86,1167.51,1178.33,80240000,1178.33 +1984-12-10,1163.21,1179.00,1154.70,1172.26,81140000,1172.26 +1984-12-07,1170.49,1177.78,1160.00,1163.21,81000000,1163.21 +1984-12-06,1171.60,1178.67,1159.23,1170.49,96560000,1170.49 +1984-12-05,1185.07,1187.17,1166.85,1171.60,88700000,1171.60 +1984-12-04,1182.42,1192.58,1178.67,1185.07,81250000,1185.07 +1984-12-03,1188.94,1192.25,1173.37,1182.42,95300000,1182.42 +1984-11-30,1193.46,1197.77,1181.10,1188.94,77580000,1188.94 +1984-11-29,1205.39,1206.60,1188.16,1193.46,75860000,1193.46 +1984-11-28,1220.19,1224.71,1203.51,1205.39,86300000,1205.39 +1984-11-27,1212.35,1226.92,1204.62,1220.19,95470000,1220.19 +1984-11-26,1220.30,1224.49,1206.16,1212.35,76520000,1212.35 +1984-11-23,1204.28,1224.49,1204.28,1220.30,73910000,1220.30 +1984-11-21,1195.12,1207.05,1185.07,1201.52,81620000,1201.52 +1984-11-20,1185.29,1202.41,1184.30,1195.12,83240000,1195.12 +1984-11-19,1187.94,1197.44,1180.76,1185.29,69730000,1185.29 +1984-11-16,1206.16,1213.01,1186.73,1187.94,83140000,1187.94 +1984-11-15,1206.93,1214.22,1198.54,1206.16,81530000,1206.16 +1984-11-14,1206.60,1215.88,1198.98,1206.93,73940000,1206.93 +1984-11-13,1219.19,1222.17,1203.07,1206.60,69790000,1206.60 +1984-11-12,1218.97,1223.72,1209.25,1219.19,55610000,1219.19 +1984-11-09,1228.69,1238.63,1216.65,1218.97,83620000,1218.97 +1984-11-08,1233.22,1237.52,1220.30,1228.69,88580000,1228.69 +1984-11-07,1244.15,1245.69,1223.72,1233.22,110800000,1233.22 +1984-11-06,1229.24,1247.46,1227.03,1244.15,101200000,1244.15 +1984-11-05,1216.65,1233.11,1212.57,1229.24,84730000,1229.24 +1984-11-02,1217.09,1225.82,1208.26,1216.65,96810000,1216.65 +1984-11-01,1207.38,1224.38,1204.51,1217.09,107300000,1217.09 +1984-10-31,1217.31,1219.63,1201.52,1207.38,91890000,1207.38 +1984-10-30,1201.41,1224.60,1200.42,1217.31,95200000,1217.31 +1984-10-29,1204.95,1207.49,1195.01,1201.41,63200000,1201.41 +1984-10-26,1211.02,1213.45,1197.77,1204.95,83900000,1204.95 +1984-10-25,1216.43,1223.61,1206.05,1211.02,92760000,1211.02 +1984-10-24,1213.01,1223.06,1205.17,1216.43,91620000,1216.43 +1984-10-23,1217.20,1226.70,1206.71,1213.01,92260000,1213.01 +1984-10-22,1225.93,1230.34,1210.80,1217.20,81020000,1217.20 +1984-10-19,1225.38,1246.02,1213.56,1225.93,186900000,1225.93 +1984-10-18,1195.89,1226.70,1185.73,1225.38,149500000,1225.38 +1984-10-17,1197.77,1208.59,1185.62,1195.89,99740000,1195.89 +1984-10-16,1202.96,1209.36,1192.25,1197.77,82930000,1197.77 +1984-10-15,1190.70,1209.58,1186.73,1202.96,87590000,1202.96 +1984-10-12,1183.08,1198.43,1181.10,1190.70,92190000,1190.70 +1984-10-11,1177.23,1189.93,1170.61,1183.08,87020000,1183.08 +1984-10-10,1175.13,1182.97,1158.24,1177.23,94270000,1177.23 +1984-10-09,1177.89,1188.16,1171.93,1175.13,76840000,1175.13 +1984-10-08,1182.53,1183.08,1170.49,1177.89,46360000,1177.89 +1984-10-05,1187.39,1196.33,1176.57,1182.53,82950000,1182.53 +1984-10-04,1182.86,1195.01,1181.10,1187.39,76700000,1187.39 +1984-10-03,1191.36,1195.78,1174.69,1182.86,92400000,1182.86 +1984-10-02,1198.98,1207.38,1188.60,1191.36,89360000,1191.36 +1984-10-01,1206.71,1208.15,1192.36,1198.98,73630000,1198.98 +1984-09-28,1216.76,1217.98,1200.09,1206.71,78950000,1206.71 +1984-09-27,1212.12,1225.27,1211.35,1216.76,88880000,1216.76 +1984-09-26,1207.16,1222.06,1199.98,1212.12,100200000,1212.12 +1984-09-25,1205.06,1216.87,1192.80,1207.16,86250000,1207.16 +1984-09-24,1201.74,1216.43,1196.00,1205.06,76380000,1205.06 +1984-09-21,1216.54,1231.01,1197.00,1201.74,120600000,1201.74 +1984-09-20,1213.01,1221.73,1202.52,1216.54,92030000,1216.54 +1984-09-19,1226.26,1234.10,1206.05,1213.01,119900000,1213.01 +1984-09-18,1237.08,1239.95,1221.18,1226.26,107700000,1226.26 +1984-09-17,1237.52,1248.01,1226.26,1237.08,88790000,1237.08 +1984-09-14,1228.25,1248.23,1227.92,1237.52,137400000,1237.52 +1984-09-13,1200.31,1232.11,1196.00,1228.25,110500000,1228.25 +1984-09-12,1197.99,1206.60,1189.82,1200.31,77980000,1200.31 +1984-09-11,1202.52,1221.07,1196.33,1197.99,101300000,1197.99 +1984-09-10,1207.38,1214.33,1191.81,1202.52,74410000,1202.52 +1984-09-07,1218.86,1226.59,1201.63,1207.38,84110000,1207.38 +1984-09-06,1209.03,1226.04,1208.70,1218.86,91920000,1218.86 +1984-09-05,1212.35,1215.88,1199.65,1209.03,69250000,1209.03 +1984-09-04,1222.39,1222.39,1206.93,1212.35,62110000,1212.35 +1984-08-31,1223.28,1226.70,1213.89,1224.38,57460000,1224.38 +1984-08-30,1226.92,1231.89,1218.64,1223.28,70840000,1223.28 +1984-08-29,1232.11,1243.04,1222.50,1226.92,90660000,1226.92 +1984-08-28,1227.92,1236.20,1220.85,1232.11,70560000,1232.11 +1984-08-27,1234.76,1234.76,1219.08,1227.92,57660000,1227.92 +1984-08-24,1232.44,1240.72,1227.14,1236.53,69640000,1236.53 +1984-08-23,1231.78,1241.94,1221.51,1232.44,83130000,1232.44 +1984-08-22,1239.73,1250.55,1225.82,1231.78,116000000,1231.78 +1984-08-21,1216.98,1247.35,1216.65,1239.73,128100000,1239.73 +1984-08-20,1211.90,1221.18,1203.62,1216.98,75450000,1216.98 +1984-08-17,1209.14,1222.06,1205.94,1211.90,71500000,1211.90 +1984-08-16,1198.98,1218.42,1196.78,1209.14,93610000,1209.14 +1984-08-15,1214.11,1219.74,1195.56,1198.98,91880000,1198.98 +1984-08-14,1220.08,1230.45,1208.70,1214.11,81470000,1214.11 +1984-08-13,1218.09,1226.15,1204.39,1220.08,77960000,1220.08 +1984-08-10,1224.05,1253.75,1214.66,1218.09,171000000,1218.09 +1984-08-09,1196.11,1231.45,1189.49,1224.05,131100000,1224.05 +1984-08-08,1204.62,1215.44,1191.70,1196.11,121200000,1196.11 +1984-08-07,1202.96,1216.98,1184.96,1204.62,127900000,1204.62 +1984-08-06,1202.08,1230.90,1191.14,1202.96,203000000,1202.96 +1984-08-03,1176.13,1213.34,1176.13,1202.08,236500000,1202.08 +1984-08-02,1138.14,1171.38,1138.14,1166.08,172800000,1166.08 +1984-08-01,1115.28,1139.58,1114.95,1134.61,127500000,1134.61 +1984-07-31,1109.98,1123.56,1104.90,1115.28,86910000,1115.28 +1984-07-30,1114.62,1121.69,1103.25,1109.98,72330000,1109.98 +1984-07-27,1107.55,1124.23,1101.59,1114.62,101350000,1114.62 +1984-07-26,1096.95,1113.18,1093.42,1107.55,90410000,1107.55 +1984-07-25,1086.57,1106.45,1078.95,1096.95,90520000,1096.95 +1984-07-24,1096.62,1103.91,1083.59,1086.57,74370000,1086.57 +1984-07-23,1101.37,1102.58,1083.37,1096.62,77990000,1096.62 +1984-07-20,1102.92,1109.10,1092.42,1101.37,79090000,1101.37 +1984-07-19,1111.64,1114.07,1098.28,1102.92,85230000,1102.92 +1984-07-18,1122.90,1125.44,1106.01,1111.64,76640000,1111.64 +1984-07-17,1116.83,1128.53,1110.87,1122.90,82890000,1122.90 +1984-07-16,1109.87,1120.25,1100.82,1116.83,73420000,1116.83 +1984-07-13,1104.57,1118.04,1101.92,1109.87,75480000,1109.87 +1984-07-12,1108.55,1116.72,1096.18,1104.57,86050000,1104.57 +1984-07-11,1126.88,1127.87,1106.23,1108.55,89540000,1108.55 +1984-07-10,1134.05,1139.47,1119.92,1126.88,74010000,1126.88 +1984-07-09,1122.57,1138.69,1112.63,1134.05,74830000,1134.05 +1984-07-06,1124.56,1127.10,1112.19,1122.57,65850000,1122.57 +1984-07-05,1134.28,1138.47,1122.24,1124.56,66100000,1124.56 +1984-07-03,1130.08,1139.13,1124.01,1134.28,69960000,1134.28 +1984-07-02,1132.40,1137.81,1120.25,1130.08,69230000,1130.08 +1984-06-29,1126.55,1143.33,1124.56,1132.40,90770000,1132.40 +1984-06-28,1116.72,1131.62,1112.74,1126.55,77660000,1126.55 +1984-06-27,1122.79,1130.08,1109.98,1116.72,78400000,1116.72 +1984-06-26,1130.52,1133.61,1116.83,1122.79,82600000,1122.79 +1984-06-25,1131.07,1140.68,1124.01,1130.52,72850000,1130.52 +1984-06-22,1127.21,1139.02,1118.93,1131.07,98400000,1131.07 +1984-06-21,1131.63,1143.44,1115.17,1127.21,123380000,1127.21 +1984-06-20,1115.83,1135.16,1097.73,1131.63,99090000,1131.63 +1984-06-19,1109.65,1123.12,1105.79,1115.83,98000000,1115.83 +1984-06-18,1086.90,1114.29,1079.39,1109.65,94900000,1109.65 +1984-06-15,1097.61,1106.34,1083.59,1086.90,85460000,1086.90 +1984-06-14,1110.53,1113.96,1089.55,1097.61,79120000,1097.61 +1984-06-13,1110.53,1120.91,1103.80,1110.53,67510000,1110.53 +1984-06-12,1115.61,1119.92,1101.92,1110.53,84660000,1110.53 +1984-06-11,1130.96,1130.96,1112.63,1115.61,69050000,1115.61 +1984-06-08,1132.44,1137.82,1123.81,1131.25,67840000,1131.25 +1984-06-07,1133.84,1139.12,1125.11,1132.44,82120000,1132.44 +1984-06-06,1124.89,1144.83,1117.89,1133.84,83440000,1133.84 +1984-06-05,1131.57,1133.62,1117.13,1124.89,84840000,1124.89 +1984-06-04,1125.32,1143.53,1125.32,1131.57,96740000,1131.57 +1984-06-01,1106.25,1127.26,1106.25,1124.35,96040000,1124.35 +1984-05-31,1102.59,1113.90,1095.15,1104.85,81890000,1104.85 +1984-05-30,1101.24,1116.59,1083.19,1102.59,105660000,1102.59 +1984-05-29,1107.10,1113.80,1093.80,1101.24,69060000,1101.24 +1984-05-25,1103.43,1114.32,1096.84,1107.10,78190000,1107.10 +1984-05-24,1113.80,1117.15,1096.31,1103.43,99040000,1103.43 +1984-05-23,1116.62,1125.63,1109.19,1113.80,82690000,1113.80 +1984-05-22,1125.31,1126.99,1105.95,1116.62,88030000,1116.62 +1984-05-21,1133.79,1139.13,1121.23,1125.31,73380000,1125.31 +1984-05-18,1142.27,1147.82,1125.73,1133.79,81270000,1133.79 +1984-05-17,1153.16,1154.10,1134.84,1142.27,90310000,1142.27 +1984-05-16,1150.86,1159.86,1146.88,1153.16,89210000,1153.16 +1984-05-15,1151.07,1160.80,1143.43,1150.86,88250000,1150.86 +1984-05-14,1157.14,1160.49,1141.96,1151.07,64900000,1151.07 +1984-05-11,1167.19,1168.24,1145.31,1157.14,82780000,1157.14 +1984-05-10,1165.52,1176.61,1158.71,1167.19,101810000,1167.19 +1984-05-09,1176.30,1182.47,1157.45,1165.52,100590000,1165.52 +1984-05-08,1166.56,1181.11,1159.97,1176.30,81610000,1176.30 +1984-05-07,1165.31,1170.96,1157.87,1166.56,72760000,1166.56 +1984-05-04,1181.53,1185.41,1158.92,1165.31,98580000,1165.31 +1984-05-03,1186.56,1192.73,1174.10,1181.53,91910000,1181.53 +1984-05-02,1183.00,1194.41,1174.10,1186.56,107080000,1186.56 +1984-05-01,1170.75,1188.86,1167.40,1183.00,110550000,1183.00 +1984-04-30,1169.07,1177.45,1160.07,1170.75,72740000,1170.75 +1984-04-27,1175.25,1180.49,1163.32,1169.07,88530000,1169.07 +1984-04-26,1163.53,1182.06,1162.79,1175.25,98000000,1175.25 +1984-04-25,1162.90,1170.33,1153.69,1163.53,83520000,1163.53 +1984-04-24,1149.50,1170.54,1144.37,1162.90,87060000,1162.90 +1984-04-23,1158.08,1164.78,1146.04,1149.50,73080000,1149.50 +1984-04-19,1156.51,1162.79,1145.41,1158.08,75860000,1158.08 +1984-04-18,1164.57,1167.71,1151.07,1156.51,85040000,1156.51 +1984-04-17,1160.28,1173.99,1156.83,1164.57,98150000,1164.57 +1984-04-16,1150.13,1162.90,1139.55,1160.28,73870000,1160.28 +1984-04-13,1157.14,1169.28,1144.58,1150.13,99620000,1150.13 +1984-04-12,1130.97,1159.55,1121.02,1157.14,96330000,1157.14 +1984-04-11,1138.30,1145.10,1127.20,1130.97,80280000,1130.97 +1984-04-10,1133.90,1147.93,1131.28,1138.30,78990000,1138.30 +1984-04-09,1132.22,1141.86,1123.64,1133.90,71570000,1133.90 +1984-04-06,1130.55,1138.18,1117.25,1132.22,86620000,1132.22 +1984-04-05,1148.56,1157.87,1128.35,1130.55,101750000,1130.55 +1984-04-04,1148.76,1156.83,1141.02,1148.56,92860000,1148.56 +1984-04-03,1153.16,1159.13,1140.39,1148.76,87980000,1148.76 +1984-04-02,1164.89,1175.36,1145.94,1153.16,85680000,1153.16 +1984-03-30,1170.75,1173.68,1157.87,1164.89,71590000,1164.89 +1984-03-29,1174.62,1184.25,1165.52,1170.75,81470000,1170.75 +1984-03-28,1154.31,1176.61,1151.80,1174.62,104870000,1174.62 +1984-03-27,1152.95,1162.27,1145.62,1154.31,73670000,1154.31 +1984-03-26,1154.84,1161.96,1146.25,1152.95,69070000,1152.95 +1984-03-23,1155.88,1161.54,1145.31,1154.84,79760000,1154.84 +1984-03-22,1170.85,1170.85,1150.75,1155.88,87340000,1155.88 +1984-03-21,1175.77,1181.95,1165.62,1170.85,87170000,1170.85 +1984-03-20,1171.38,1184.15,1166.25,1175.77,86460000,1175.77 +1984-03-19,1179.02,1179.02,1163.00,1171.38,64060000,1171.38 +1984-03-16,1176.19,1197.24,1176.19,1184.36,118000000,1184.36 +1984-03-15,1166.04,1177.24,1159.23,1167.40,79520000,1167.40 +1984-03-14,1164.78,1173.68,1155.67,1166.04,77250000,1166.04 +1984-03-13,1156.09,1176.51,1156.09,1164.78,102600000,1164.78 +1984-03-12,1139.76,1160.80,1136.52,1155.36,84470000,1155.36 +1984-03-09,1147.09,1149.29,1132.54,1139.76,73170000,1139.76 +1984-03-08,1143.63,1155.46,1136.10,1147.09,80630000,1147.09 +1984-03-07,1152.53,1153.27,1131.70,1143.63,90080000,1143.63 +1984-03-06,1165.20,1171.59,1148.24,1152.53,83590000,1152.53 +1984-03-05,1171.48,1174.31,1158.50,1165.20,69870000,1165.20 +1984-03-02,1163.21,1181.01,1163.21,1171.48,108270000,1171.48 +1984-03-01,1154.63,1166.46,1146.25,1159.44,82010000,1159.44 +1984-02-29,1157.14,1171.38,1146.46,1154.63,92810000,1154.63 +1984-02-28,1177.45,1177.45,1150.34,1157.14,91010000,1157.14 +1984-02-27,1165.10,1186.66,1156.41,1179.96,99140000,1179.96 +1984-02-24,1137.04,1167.09,1137.04,1165.10,102620000,1165.10 +1984-02-23,1134.21,1142.38,1114.95,1134.63,100220000,1134.63 +1984-02-22,1139.34,1145.83,1128.66,1134.21,90080000,1134.21 +1984-02-21,1148.87,1153.79,1134.00,1139.34,71890000,1139.34 +1984-02-17,1154.94,1164.36,1141.23,1148.87,76600000,1148.87 +1984-02-16,1158.71,1164.99,1143.74,1154.94,81750000,1154.94 +1984-02-15,1163.84,1175.67,1154.31,1158.71,94870000,1158.71 +1984-02-14,1150.13,1170.54,1147.09,1163.84,91800000,1163.84 +1984-02-13,1160.70,1164.05,1139.97,1150.13,78460000,1150.13 +1984-02-10,1152.74,1167.92,1149.92,1160.70,92220000,1160.70 +1984-02-09,1156.30,1167.29,1139.03,1152.74,128190000,1152.74 +1984-02-08,1180.49,1188.76,1151.28,1156.30,96890000,1156.30 +1984-02-07,1174.31,1187.29,1161.12,1180.49,107640000,1180.49 +1984-02-06,1193.15,1193.15,1167.92,1174.31,109090000,1174.31 +1984-02-03,1213.88,1226.55,1192.00,1197.03,109100000,1197.03 +1984-02-02,1212.31,1223.93,1198.49,1213.88,111330000,1213.88 +1984-02-01,1220.58,1226.34,1203.31,1212.31,107100000,1212.31 +1984-01-31,1221.52,1231.68,1209.59,1220.58,113510000,1220.58 +1984-01-30,1230.00,1239.64,1212.42,1221.52,103120000,1221.52 +1984-01-27,1229.69,1238.69,1218.91,1230.00,103720000,1230.00 +1984-01-26,1231.89,1242.57,1222.78,1229.69,111100000,1229.69 +1984-01-25,1242.88,1255.44,1227.39,1231.89,113470000,1231.89 +1984-01-24,1244.45,1251.57,1234.61,1242.88,103050000,1242.88 +1984-01-23,1259.11,1259.42,1240.05,1244.45,82010000,1244.45 +1984-01-20,1266.02,1270.94,1252.30,1259.11,93360000,1259.11 +1984-01-19,1269.37,1276.17,1259.32,1266.02,98340000,1266.02 +1984-01-18,1271.46,1280.36,1261.93,1269.37,109010000,1269.37 +1984-01-17,1267.59,1275.75,1260.89,1271.46,92750000,1271.46 +1984-01-16,1270.10,1275.96,1259.53,1267.59,93790000,1267.59 +1984-01-13,1279.31,1289.57,1262.98,1270.10,101790000,1270.10 +1984-01-12,1277.32,1287.90,1271.78,1279.31,99410000,1279.31 +1984-01-11,1278.48,1284.13,1267.59,1277.32,98660000,1277.32 +1984-01-10,1286.22,1295.44,1273.97,1278.48,109570000,1278.48 +1984-01-09,1286.64,1295.33,1275.86,1286.22,107100000,1286.22 +1984-01-06,1282.24,1293.66,1271.78,1286.64,137590000,1286.64 +1984-01-05,1269.05,1290.72,1268.74,1282.24,159990000,1282.24 +1984-01-04,1252.74,1271.36,1246.55,1269.05,112980000,1269.05 +1984-01-03,1258.64,1264.13,1247.46,1252.74,71340000,1252.74 +1983-12-30,1260.16,1265.24,1253.15,1258.64,71840000,1258.64 +1983-12-29,1263.21,1273.88,1256.30,1260.16,86560000,1260.16 +1983-12-28,1263.72,1268.90,1254.17,1263.21,85660000,1263.21 +1983-12-27,1250.51,1267.28,1249.80,1263.72,63800000,1263.72 +1983-12-23,1253.66,1259.25,1241.97,1250.51,62710000,1250.51 +1983-12-22,1254.98,1265.24,1246.65,1253.66,106260000,1253.66 +1983-12-21,1241.97,1260.26,1240.24,1254.98,108080000,1254.98 +1983-12-20,1244.61,1251.93,1236.79,1241.97,83740000,1241.97 +1983-12-19,1242.17,1254.88,1238.21,1244.61,75180000,1244.61 +1983-12-16,1236.79,1248.27,1231.40,1242.17,81030000,1242.17 +1983-12-15,1246.65,1250.20,1231.20,1236.79,88300000,1236.79 +1983-12-14,1255.89,1261.38,1241.77,1246.65,85430000,1246.65 +1983-12-13,1261.59,1267.17,1250.81,1255.89,93500000,1255.89 +1983-12-12,1260.06,1269.11,1248.78,1261.59,77340000,1261.59 +1983-12-09,1261.89,1268.09,1252.03,1260.06,98280000,1260.06 +1983-12-08,1273.78,1278.15,1256.91,1261.89,96530000,1261.89 +1983-12-07,1269.31,1282.42,1263.21,1273.78,105670000,1273.78 +1983-12-06,1270.53,1281.30,1262.80,1269.31,89690000,1269.31 +1983-12-05,1265.24,1275.41,1256.40,1270.53,88330000,1270.53 +1983-12-02,1275.10,1281.30,1259.76,1265.24,93960000,1265.24 +1983-12-01,1276.02,1285.47,1265.45,1275.10,106970000,1275.10 +1983-11-30,1287.19,1296.95,1271.04,1276.02,120130000,1276.02 +1983-11-29,1269.82,1290.95,1264.22,1287.19,100460000,1287.19 +1983-11-28,1277.44,1279.78,1263.11,1269.82,78210000,1269.82 +1983-11-25,1275.61,1282.22,1268.80,1277.44,57820000,1277.44 +1983-11-23,1275.81,1284.55,1265.04,1275.61,108080000,1275.61 +1983-11-22,1268.80,1287.80,1262.91,1275.81,117550000,1275.81 +1983-11-21,1251.02,1272.36,1248.17,1268.80,97740000,1268.80 +1983-11-18,1254.67,1260.77,1240.35,1251.02,88280000,1251.02 +1983-11-17,1251.32,1262.09,1243.19,1254.67,80740000,1254.67 +1983-11-16,1247.95,1260.47,1242.07,1251.32,83380000,1251.32 +1983-11-15,1254.07,1260.87,1242.28,1247.95,77840000,1247.95 +1983-11-14,1250.20,1265.04,1244.61,1254.07,86880000,1254.07 +1983-11-11,1235.87,1253.56,1230.79,1250.20,74270000,1250.20 +1983-11-10,1232.52,1245.83,1226.83,1235.87,88730000,1235.87 +1983-11-09,1214.94,1235.47,1212.20,1232.52,83100000,1232.52 +1983-11-08,1214.84,1222.05,1208.74,1214.94,64900000,1214.94 +1983-11-07,1218.29,1226.52,1209.35,1214.84,69400000,1214.84 +1983-11-04,1227.13,1227.74,1211.89,1218.29,72080000,1218.29 +1983-11-03,1237.30,1242.68,1222.76,1227.13,85350000,1227.13 +1983-11-02,1229.27,1244.11,1220.83,1237.30,95210000,1237.30 +1983-11-01,1225.20,1233.94,1210.47,1229.27,84460000,1229.27 +1983-10-31,1223.48,1236.48,1214.63,1225.20,79460000,1225.20 +1983-10-28,1242.07,1248.68,1217.07,1223.48,81180000,1223.48 +1983-10-27,1243.80,1249.09,1230.49,1242.07,79570000,1242.07 +1983-10-26,1252.44,1259.15,1238.62,1243.80,79570000,1243.80 +1983-10-25,1248.98,1263.41,1245.22,1252.44,82530000,1252.44 +1983-10-24,1248.88,1252.54,1227.74,1248.98,85420000,1248.98 +1983-10-21,1251.52,1260.77,1231.61,1248.88,91640000,1248.88 +1983-10-20,1246.75,1258.74,1241.06,1251.52,86000000,1251.52 +1983-10-19,1250.81,1255.28,1229.37,1246.75,107790000,1246.75 +1983-10-18,1268.70,1272.76,1245.53,1250.81,91080000,1250.81 +1983-10-17,1263.52,1278.66,1256.20,1268.70,77730000,1268.70 +1983-10-14,1261.38,1270.12,1251.83,1263.52,71600000,1263.52 +1983-10-13,1259.65,1270.63,1250.51,1261.38,67750000,1261.38 +1983-10-12,1265.14,1273.07,1252.95,1259.65,75630000,1259.65 +1983-10-11,1284.65,1285.26,1261.89,1265.14,79510000,1265.14 +1983-10-10,1272.15,1286.69,1261.59,1284.65,67050000,1284.65 +1983-10-07,1268.80,1280.28,1262.60,1272.15,103630000,1272.15 +1983-10-06,1250.20,1272.15,1246.95,1268.80,118270000,1268.80 +1983-10-05,1236.69,1254.88,1228.96,1250.20,101710000,1250.20 +1983-10-04,1231.30,1247.56,1225.71,1236.69,90270000,1236.69 +1983-10-03,1233.13,1237.70,1216.26,1231.30,77230000,1231.30 +1983-09-30,1240.14,1242.89,1224.59,1233.13,70860000,1233.13 +1983-09-29,1241.97,1252.03,1236.08,1240.14,73730000,1240.14 +1983-09-28,1247.97,1253.45,1234.35,1241.97,75820000,1241.97 +1983-09-27,1259.25,1259.25,1239.33,1247.97,81100000,1247.97 +1983-09-26,1255.59,1270.73,1247.56,1260.77,86400000,1260.77 +1983-09-23,1257.52,1265.55,1246.24,1255.59,93180000,1255.59 +1983-09-22,1243.29,1261.28,1236.79,1257.52,97050000,1257.52 +1983-09-21,1249.19,1255.89,1236.79,1243.29,91280000,1243.29 +1983-09-20,1233.94,1257.01,1233.64,1249.19,103050000,1249.19 +1983-09-19,1225.71,1242.68,1221.24,1233.94,85630000,1233.94 +1983-09-16,1215.04,1232.72,1210.16,1225.71,75530000,1225.71 +1983-09-15,1229.47,1232.83,1213.01,1215.04,70420000,1215.04 +1983-09-14,1224.09,1233.94,1218.80,1229.47,73370000,1229.47 +1983-09-13,1229.07,1233.43,1214.63,1224.09,73970000,1224.09 +1983-09-12,1239.74,1262.80,1225.00,1229.07,114020000,1229.07 +1983-09-09,1246.14,1252.74,1233.33,1239.74,77990000,1239.74 +1983-09-08,1244.11,1252.95,1232.83,1246.14,79250000,1246.14 +1983-09-07,1238.72,1253.96,1229.27,1244.11,94240000,1244.11 +1983-09-06,1222.05,1244.11,1222.05,1238.72,87500000,1238.72 +1983-09-02,1206.81,1221.34,1204.17,1215.45,59300000,1215.45 +1983-09-01,1216.16,1221.24,1197.36,1206.81,76120000,1206.81 +1983-08-31,1196.04,1219.82,1191.16,1216.16,80800000,1216.16 +1983-08-30,1194.11,1204.37,1187.20,1196.04,62370000,1196.04 +1983-08-29,1192.07,1198.37,1178.15,1194.11,53030000,1194.11 +1983-08-26,1185.06,1196.95,1174.59,1192.07,61650000,1192.07 +1983-08-25,1184.25,1195.22,1173.27,1185.06,70140000,1185.06 +1983-08-24,1192.89,1199.80,1179.67,1184.25,72200000,1184.25 +1983-08-23,1203.15,1205.49,1186.38,1192.89,66800000,1192.89 +1983-08-22,1194.21,1216.26,1191.36,1203.15,76420000,1203.15 +1983-08-19,1192.48,1200.51,1183.64,1194.21,58950000,1194.21 +1983-08-18,1206.54,1215.45,1188.52,1192.48,82280000,1192.48 +1983-08-17,1190.45,1212.09,1186.28,1206.54,87800000,1206.54 +1983-08-16,1193.50,1199.70,1180.49,1190.45,71780000,1190.45 +1983-08-15,1186.69,1208.74,1186.69,1193.50,83200000,1193.50 +1983-08-12,1174.39,1189.63,1169.82,1182.83,71840000,1182.83 +1983-08-11,1175.98,1185.87,1165.55,1174.39,70630000,1174.39 +1983-08-10,1168.27,1182.19,1157.25,1175.98,82900000,1175.98 +1983-08-09,1163.06,1177.28,1152.14,1168.27,81420000,1168.27 +1983-08-08,1180.19,1180.19,1157.55,1163.06,71460000,1163.06 +1983-08-05,1183.09,1191.91,1173.58,1183.29,67850000,1183.29 +1983-08-04,1197.82,1200.52,1166.57,1183.09,100870000,1183.09 +1983-08-03,1188.00,1203.73,1179.29,1197.82,80370000,1197.82 +1983-08-02,1194.21,1202.52,1183.89,1188.00,74460000,1188.00 +1983-08-01,1199.22,1204.33,1183.79,1194.21,77210000,1194.21 +1983-07-29,1216.35,1216.75,1188.10,1199.22,95240000,1199.22 +1983-07-28,1230.47,1236.58,1211.74,1216.35,78410000,1216.35 +1983-07-27,1243.69,1258.51,1225.86,1230.47,99290000,1230.47 +1983-07-26,1232.87,1250.00,1226.46,1243.69,91280000,1243.69 +1983-07-25,1231.17,1239.78,1217.45,1232.87,73680000,1232.87 +1983-07-22,1229.37,1238.18,1220.45,1231.17,68850000,1231.17 +1983-07-21,1227.86,1238.48,1217.35,1229.37,101830000,1229.37 +1983-07-20,1206.03,1230.57,1206.03,1227.86,109310000,1227.86 +1983-07-19,1189.90,1205.13,1188.40,1197.12,74030000,1197.12 +1983-07-18,1192.31,1197.62,1179.79,1189.90,69110000,1189.90 +1983-07-15,1204.33,1205.73,1187.10,1192.31,63160000,1192.31 +1983-07-14,1197.82,1215.04,1195.11,1204.33,83500000,1204.33 +1983-07-13,1198.52,1205.83,1189.40,1197.82,68900000,1197.82 +1983-07-12,1215.54,1218.35,1194.11,1198.52,70220000,1198.52 +1983-07-11,1207.23,1221.96,1205.53,1215.54,61610000,1215.54 +1983-07-08,1210.44,1218.95,1201.52,1207.23,66520000,1207.23 +1983-07-07,1220.65,1227.26,1203.33,1210.44,97130000,1210.44 +1983-07-06,1208.53,1224.46,1202.72,1220.65,85670000,1220.65 +1983-07-05,1217.25,1217.25,1200.22,1208.53,67320000,1208.53 +1983-07-01,1221.96,1231.07,1213.94,1225.26,65110000,1225.26 +1983-06-30,1213.84,1229.27,1209.54,1221.96,76310000,1221.96 +1983-06-29,1209.23,1222.16,1201.22,1213.84,81580000,1213.84 +1983-06-28,1229.47,1237.68,1205.83,1209.23,82730000,1209.23 +1983-06-27,1241.69,1246.29,1221.85,1229.47,69360000,1229.47 +1983-06-24,1241.79,1250.20,1229.87,1241.69,80810000,1241.69 +1983-06-23,1245.69,1250.60,1231.67,1241.79,89590000,1241.79 +1983-06-22,1247.40,1258.21,1234.27,1245.69,110270000,1245.69 +1983-06-21,1239.18,1253.00,1228.27,1247.40,102880000,1247.40 +1983-06-20,1242.19,1258.61,1230.77,1239.18,84270000,1239.18 +1983-06-17,1248.30,1260.72,1232.87,1242.19,93630000,1242.19 +1983-06-16,1237.28,1259.82,1236.08,1248.30,124560000,1248.30 +1983-06-15,1227.26,1240.18,1216.85,1237.28,93410000,1237.28 +1983-06-14,1220.55,1237.28,1214.64,1227.26,97710000,1227.26 +1983-06-13,1199.12,1223.46,1199.12,1220.55,90700000,1220.55 +1983-06-10,1189.00,1204.53,1187.30,1196.11,78470000,1196.11 +1983-06-09,1185.50,1196.71,1176.78,1189.00,87440000,1189.00 +1983-06-08,1194.91,1199.52,1179.59,1185.50,96600000,1185.50 +1983-06-07,1214.24,1218.15,1193.21,1194.91,88550000,1194.91 +1983-06-06,1213.04,1223.26,1203.83,1214.24,87670000,1214.24 +1983-06-03,1211.44,1222.46,1204.23,1213.04,83110000,1213.04 +1983-06-02,1202.21,1218.15,1195.01,1211.44,89750000,1211.44 +1983-06-01,1199.98,1208.30,1187.69,1202.21,84460000,1202.21 +1983-05-31,1216.14,1217.59,1191.95,1199.98,73910000,1199.98 +1983-05-27,1223.49,1229.20,1209.95,1216.14,76290000,1216.14 +1983-05-26,1229.01,1237.04,1215.17,1223.49,94980000,1223.49 +1983-05-25,1219.04,1234.04,1207.62,1229.01,121050000,1229.01 +1983-05-24,1200.56,1224.07,1199.21,1219.04,109850000,1219.04 +1983-05-23,1190.02,1205.40,1174.25,1200.56,84960000,1200.56 +1983-05-20,1191.37,1197.27,1179.08,1190.02,73150000,1190.02 +1983-05-19,1203.56,1208.49,1186.15,1191.37,83260000,1191.37 +1983-05-18,1205.79,1225.04,1196.98,1203.56,99780000,1203.56 +1983-05-17,1202.98,1211.88,1193.30,1205.79,79510000,1205.79 +1983-05-16,1209.95,1209.95,1190.21,1202.98,76250000,1202.98 +1983-05-13,1214.40,1228.04,1209.17,1218.75,83110000,1218.75 +1983-05-12,1219.72,1226.59,1204.82,1214.40,84060000,1214.40 +1983-05-11,1229.68,1234.42,1210.72,1219.72,99820000,1219.72 +1983-05-10,1228.23,1240.03,1220.49,1229.68,104010000,1229.68 +1983-05-09,1232.59,1241.29,1219.04,1228.23,93670000,1228.23 +1983-05-06,1219.72,1244.49,1217.69,1232.59,128200000,1232.59 +1983-05-05,1212.65,1225.81,1202.40,1219.72,107860000,1219.72 +1983-05-04,1208.01,1227.94,1198.63,1212.65,101690000,1212.65 +1983-05-03,1204.33,1214.11,1188.37,1208.01,89550000,1208.01 +1983-05-02,1225.43,1225.43,1197.27,1204.33,88170000,1204.33 +1983-04-29,1219.52,1235.49,1208.59,1226.20,105750000,1226.20 +1983-04-28,1208.40,1226.97,1201.04,1219.52,94410000,1219.52 +1983-04-27,1209.46,1225.04,1197.37,1208.40,118140000,1208.40 +1983-04-26,1187.21,1210.82,1177.92,1209.46,91210000,1209.46 +1983-04-25,1196.30,1206.75,1183.24,1187.21,90150000,1187.21 +1983-04-22,1188.27,1204.62,1184.21,1196.30,92270000,1196.30 +1983-04-21,1191.47,1202.11,1180.92,1188.27,106170000,1188.27 +1983-04-20,1174.54,1197.56,1170.47,1191.47,110240000,1191.47 +1983-04-19,1183.24,1187.98,1166.22,1174.54,91210000,1174.54 +1983-04-18,1171.34,1187.89,1164.57,1183.24,88560000,1183.24 +1983-04-15,1165.25,1177.05,1159.06,1171.34,89590000,1171.34 +1983-04-14,1156.64,1171.05,1146.67,1165.25,90160000,1165.25 +1983-04-13,1145.32,1165.34,1142.22,1156.64,100520000,1156.64 +1983-04-12,1141.83,1151.80,1134.09,1145.32,79900000,1145.32 +1983-04-11,1127.23,1144.54,1127.23,1141.83,81440000,1141.83 +1983-04-08,1117.65,1128.87,1109.52,1124.71,67710000,1124.71 +1983-04-07,1113.49,1123.36,1106.71,1117.65,69480000,1117.65 +1983-04-06,1120.16,1122.48,1102.17,1113.49,77140000,1113.49 +1983-04-05,1127.61,1137.58,1116.39,1120.16,76810000,1120.16 +1983-04-04,1130.03,1133.03,1115.13,1127.61,66010000,1127.61 +1983-03-31,1143.29,1158.48,1125.29,1130.03,100570000,1130.03 +1983-03-30,1131.19,1146.67,1129.64,1143.29,75800000,1143.29 +1983-03-29,1133.32,1142.80,1125.39,1131.19,65300000,1131.19 +1983-03-28,1140.09,1145.80,1126.84,1133.32,58510000,1133.32 +1983-03-25,1145.90,1153.83,1132.64,1140.09,77330000,1140.09 +1983-03-24,1140.87,1154.41,1134.48,1145.90,92340000,1145.90 +1983-03-23,1122.97,1147.83,1121.81,1140.87,94980000,1140.87 +1983-03-22,1125.29,1135.74,1118.61,1122.97,79610000,1122.97 +1983-03-21,1117.74,1130.32,1109.33,1125.29,72160000,1125.29 +1983-03-18,1116.97,1128.00,1109.71,1117.74,75110000,1117.74 +1983-03-17,1116.00,1123.55,1108.07,1116.97,70290000,1116.97 +1983-03-16,1124.52,1134.77,1111.46,1116.00,83570000,1116.00 +1983-03-15,1114.45,1126.84,1109.62,1124.52,62410000,1124.52 +1983-03-14,1117.74,1124.61,1105.07,1114.45,61890000,1114.45 +1983-03-11,1120.94,1127.61,1107.97,1117.74,67240000,1117.74 +1983-03-10,1132.64,1145.22,1116.49,1120.94,95410000,1120.94 +1983-03-09,1119.78,1136.42,1112.04,1132.64,84250000,1132.64 +1983-03-08,1141.74,1143.00,1117.55,1119.78,79410000,1119.78 +1983-03-07,1140.96,1149.67,1128.19,1141.74,84020000,1141.74 +1983-03-04,1138.06,1146.28,1125.58,1140.96,90930000,1140.96 +1983-03-03,1135.06,1151.12,1128.39,1138.06,114440000,1138.06 +1983-03-02,1130.71,1144.45,1121.90,1135.06,112600000,1135.06 +1983-03-01,1112.16,1139.22,1110.20,1130.71,103750000,1130.71 +1983-02-28,1120.94,1128.58,1105.26,1112.16,83750000,1112.16 +1983-02-25,1121.81,1135.26,1115.13,1120.94,100970000,1120.94 +1983-02-24,1100.62,1126.74,1100.62,1121.81,113220000,1121.81 +1983-02-23,1080.40,1100.14,1077.69,1096.94,84100000,1096.94 +1983-02-22,1092.82,1097.72,1074.01,1080.40,84080000,1080.40 +1983-02-18,1088.91,1099.42,1079.99,1092.82,77420000,1092.82 +1983-02-17,1087.43,1096.35,1075.52,1088.91,74930000,1088.91 +1983-02-16,1093.10,1103.70,1083.43,1087.43,82100000,1087.43 +1983-02-15,1097.10,1107.61,1086.22,1093.10,89040000,1093.10 +1983-02-14,1086.50,1103.33,1080.64,1097.10,72640000,1097.10 +1983-02-11,1087.75,1100.82,1080.17,1086.50,86700000,1086.50 +1983-02-10,1067.88,1094.83,1067.88,1087.75,93510000,1087.75 +1983-02-09,1075.33,1081.59,1058.13,1067.42,84520000,1067.42 +1983-02-08,1087.10,1091.70,1068.71,1075.33,76580000,1075.33 +1983-02-07,1077.91,1097.04,1073.77,1087.10,86030000,1087.10 +1983-02-04,1064.66,1081.13,1056.75,1077.91,87000000,1077.91 +1983-02-03,1062.64,1075.06,1057.03,1064.66,78890000,1064.66 +1983-02-02,1059.79,1070.09,1046.82,1062.64,77220000,1062.64 +1983-02-01,1075.70,1082.78,1057.58,1059.79,82750000,1059.79 +1983-01-31,1064.75,1079.75,1055.83,1075.70,67140000,1075.70 +1983-01-28,1063.65,1080.57,1056.66,1064.75,89490000,1064.75 +1983-01-27,1037.99,1068.16,1037.35,1063.65,88120000,1063.65 +1983-01-26,1042.03,1050.31,1027.78,1037.99,73720000,1037.99 +1983-01-25,1030.17,1048.93,1028.61,1042.03,79740000,1042.03 +1983-01-24,1039.28,1039.28,1013.43,1030.17,90800000,1030.17 +1983-01-21,1070.46,1070.46,1045.16,1052.98,77110000,1052.98 +1983-01-20,1068.06,1080.39,1060.15,1070.82,82790000,1070.82 +1983-01-19,1079.65,1082.97,1057.12,1068.06,80900000,1068.06 +1983-01-18,1084.81,1089.22,1068.06,1079.65,78380000,1079.65 +1983-01-17,1080.85,1098.60,1077.35,1084.81,89210000,1084.81 +1983-01-14,1073.95,1089.04,1070.36,1080.85,86480000,1080.85 +1983-01-13,1083.61,1091.06,1068.80,1073.95,77030000,1073.95 +1983-01-12,1083.79,1105.13,1075.88,1083.61,109850000,1083.61 +1983-01-11,1092.35,1097.50,1076.07,1083.79,98250000,1083.79 +1983-01-10,1076.07,1099.98,1065.12,1092.35,101890000,1092.35 +1983-01-07,1070.92,1091.34,1063.19,1076.07,127290000,1076.07 +1983-01-06,1044.89,1081.95,1042.40,1070.92,129410000,1070.92 +1983-01-05,1046.08,1056.75,1033.94,1044.89,95390000,1044.89 +1983-01-04,1027.04,1047.46,1020.24,1046.08,75530000,1046.08 +1983-01-03,1046.54,1057.21,1022.17,1027.04,59080000,1027.04 +1982-12-31,1047.37,1055.56,1041.84,1046.54,42110000,1046.54 +1982-12-30,1059.60,1066.13,1043.60,1047.37,56380000,1047.37 +1982-12-29,1058.87,1069.35,1050.68,1059.60,54810000,1059.60 +1982-12-28,1070.55,1077.91,1053.44,1058.87,58610000,1058.87 +1982-12-27,1045.07,1076.07,1043.60,1070.55,64690000,1070.55 +1982-12-23,1035.04,1051.51,1032.19,1045.07,62880000,1045.07 +1982-12-22,1030.26,1047.19,1021.62,1035.04,83470000,1035.04 +1982-12-21,1004.51,1036.33,998.53,1030.26,78010000,1030.26 +1982-12-20,1011.50,1022.63,998.44,1004.51,62210000,1004.51 +1982-12-17,990.25,1018.12,989.24,1011.50,76010000,1011.50 +1982-12-16,992.64,1004.42,983.35,990.25,73680000,990.25 +1982-12-15,1009.38,1013.52,985.74,992.64,81030000,992.64 +1982-12-14,1024.28,1047.28,1006.99,1009.38,98380000,1009.38 +1982-12-13,1018.76,1030.91,1013.34,1024.28,63140000,1024.28 +1982-12-10,1027.96,1038.36,1009.47,1018.76,86430000,1018.76 +1982-12-09,1047.09,1049.39,1020.79,1027.96,90320000,1027.96 +1982-12-08,1056.94,1069.72,1041.30,1047.09,97430000,1047.09 +1982-12-07,1055.65,1071.10,1045.07,1056.94,111620000,1056.94 +1982-12-06,1031.36,1061.26,1020.88,1055.65,83880000,1055.65 +1982-12-03,1033.11,1046.82,1027.04,1031.36,71540000,1031.36 +1982-12-02,1031.09,1047.37,1027.04,1033.11,77600000,1033.11 +1982-12-01,1039.28,1055.00,1025.57,1031.09,107850000,1031.09 +1982-11-30,1002.85,1042.40,998.34,1039.28,93470000,1039.28 +1982-11-29,1007.36,1014.72,993.84,1002.85,61080000,1002.85 +1982-11-26,1000.00,1012.60,998.53,1007.36,38810000,1007.36 +1982-11-24,990.99,1007.36,988.23,1000.00,67220000,1000.00 +1982-11-23,1000.00,1007.63,986.66,990.99,72920000,990.99 +1982-11-22,1021.25,1024.01,997.42,1000.00,74960000,1000.00 +1982-11-19,1032.10,1042.86,1017.11,1021.25,70310000,1021.25 +1982-11-18,1027.50,1040.47,1020.05,1032.10,77620000,1032.10 +1982-11-17,1012.05,1032.74,1012.05,1027.50,84440000,1027.50 +1982-11-16,1019.68,1019.68,993.10,1008.00,102910000,1008.00 +1982-11-15,1032.56,1032.56,1012.60,1021.43,78900000,1021.43 +1982-11-12,1054.73,1060.52,1035.60,1039.92,95080000,1039.92 +1982-11-11,1044.52,1057.03,1030.35,1054.73,78410000,1054.73 +1982-11-10,1060.25,1078.27,1037.71,1044.52,113240000,1044.52 +1982-11-09,1037.44,1065.86,1034.86,1060.25,111220000,1060.25 +1982-11-08,1048.57,1048.57,1029.25,1037.44,75240000,1037.44 +1982-11-05,1050.22,1061.17,1040.65,1051.78,96550000,1051.78 +1982-11-04,1065.49,1078.46,1042.59,1050.22,149350000,1050.22 +1982-11-03,1022.08,1068.16,1021.71,1065.49,137010000,1065.49 +1982-11-02,1007.45,1036.98,1007.45,1022.08,104770000,1022.08 +1982-11-01,991.72,1009.01,983.72,1005.70,73530000,1005.70 +1982-10-29,990.99,999.45,977.92,991.72,74830000,991.72 +1982-10-28,1006.35,1011.87,989.33,990.99,73590000,990.99 +1982-10-27,1006.07,1019.87,996.87,1006.35,81670000,1006.35 +1982-10-26,995.13,1011.13,975.90,1006.07,102080000,1006.07 +1982-10-25,1018.76,1018.76,991.91,995.13,83720000,995.13 +1982-10-22,1036.98,1051.88,1024.37,1031.46,101120000,1031.46 +1982-10-21,1034.12,1049.12,1018.40,1036.98,122460000,1036.98 +1982-10-20,1013.80,1035.23,1005.98,1034.12,98680000,1034.12 +1982-10-19,1019.22,1031.09,1001.66,1013.80,100850000,1013.80 +1982-10-18,993.10,1023.45,991.63,1019.22,83790000,1019.22 +1982-10-15,996.87,1003.86,981.88,993.10,80290000,993.10 +1982-10-14,1015.18,1020.97,991.17,996.87,107530000,996.87 +1982-10-13,1003.68,1033.57,991.63,1015.18,139800000,1015.18 +1982-10-12,1012.79,1026.95,992.00,1003.68,126310000,1003.68 +1982-10-11,991.54,1027.59,991.54,1012.79,138530000,1012.79 +1982-10-08,965.97,992.92,961.64,986.85,122250000,986.85 +1982-10-07,950.24,972.87,950.24,965.97,147070000,965.97 +1982-10-06,907.74,946.38,907.74,944.26,93570000,944.26 +1982-10-05,903.61,917.77,899.47,907.19,69770000,907.19 +1982-10-04,907.74,908.57,892.02,903.61,55650000,903.61 +1982-10-01,896.25,910.87,892.02,907.74,65000000,907.74 +1982-09-30,906.27,908.20,891.28,896.25,62610000,896.25 +1982-09-29,919.33,920.71,901.12,906.27,62550000,906.27 +1982-09-28,920.90,930.74,916.02,919.33,65900000,919.33 +1982-09-27,919.52,925.04,909.86,920.90,44840000,920.90 +1982-09-24,925.77,926.42,913.45,919.52,54600000,919.52 +1982-09-23,927.61,933.50,915.38,925.77,68260000,925.77 +1982-09-22,934.79,951.16,924.67,927.61,113150000,927.61 +1982-09-21,916.30,937.09,913.91,934.79,82920000,934.79 +1982-09-20,916.94,921.45,904.71,916.30,58520000,916.30 +1982-09-17,927.80,931.29,912.71,916.94,63950000,916.94 +1982-09-16,930.46,938.47,922.46,927.80,78900000,927.80 +1982-09-15,923.01,933.13,915.56,930.46,69680000,930.46 +1982-09-14,918.69,933.13,914.92,923.01,83070000,923.01 +1982-09-13,906.82,921.08,898.36,918.69,59520000,918.69 +1982-09-10,912.53,912.90,897.08,906.82,71080000,906.82 +1982-09-09,915.75,925.31,906.27,912.53,73090000,912.53 +1982-09-08,914.28,927.34,906.82,915.75,77960000,915.75 +1982-09-07,925.13,928.35,906.92,914.28,68960000,914.28 +1982-09-03,913.54,940.49,913.54,925.13,130910000,925.13 +1982-09-02,895.05,913.17,888.70,909.40,74740000,909.40 +1982-09-01,901.31,911.33,890.91,895.05,82830000,895.05 +1982-08-31,893.30,910.96,887.97,901.31,86360000,901.31 +1982-08-30,883.47,895.42,872.42,893.30,59560000,893.30 +1982-08-27,892.41,893.84,874.14,883.47,74410000,883.47 +1982-08-26,884.89,908.96,882.61,892.41,137330000,892.41 +1982-08-25,874.90,900.97,867.87,884.89,106200000,884.89 +1982-08-24,891.17,893.36,869.01,874.90,121650000,874.90 +1982-08-23,869.29,894.22,861.68,891.17,110310000,891.17 +1982-08-20,840.85,871.19,840.85,869.29,95890000,869.29 +1982-08-19,829.43,848.93,824.49,838.57,78270000,838.57 +1982-08-18,831.24,858.54,826.10,829.43,132690000,829.43 +1982-08-17,796.14,832.76,796.14,831.24,92860000,831.24 +1982-08-16,788.53,803.84,788.53,792.43,55420000,792.43 +1982-08-13,776.92,790.62,774.54,788.05,44720000,788.05 +1982-08-12,777.21,786.15,773.59,776.92,50080000,776.92 +1982-08-11,779.30,783.96,772.17,777.21,49040000,777.21 +1982-08-10,780.35,789.10,775.68,779.30,52680000,779.30 +1982-08-09,784.34,784.34,769.98,780.35,54560000,780.35 +1982-08-06,795.85,798.99,781.77,784.34,48660000,784.34 +1982-08-05,803.46,804.41,789.76,795.85,54700000,795.85 +1982-08-04,815.35,815.35,800.89,803.46,53440000,803.46 +1982-08-03,822.11,831.43,815.26,816.40,60480000,816.40 +1982-08-02,808.60,824.11,807.84,822.11,53460000,822.11 +1982-07-30,812.21,817.64,806.13,808.60,39270000,808.60 +1982-07-29,811.83,817.54,801.46,812.21,55680000,812.21 +1982-07-28,822.77,823.44,807.65,811.83,53830000,811.83 +1982-07-27,825.44,831.05,818.02,822.77,45740000,822.77 +1982-07-26,830.57,833.24,820.59,825.44,37740000,825.44 +1982-07-23,832.00,838.47,824.68,830.57,47280000,830.57 +1982-07-22,832.19,839.71,823.71,832.00,53870000,832.00 +1982-07-21,833.43,843.80,828.20,832.19,66770000,832.19 +1982-07-20,826.10,837.71,820.02,833.43,61060000,833.43 +1982-07-19,828.67,836.66,822.68,826.10,53030000,826.10 +1982-07-16,827.34,837.33,819.92,828.67,58740000,828.67 +1982-07-15,828.39,836.57,821.25,827.34,61090000,827.34 +1982-07-14,824.20,831.62,815.26,828.39,58160000,828.39 +1982-07-13,824.87,832.95,816.97,824.20,66170000,824.20 +1982-07-12,814.69,830.10,814.69,824.87,74690000,824.87 +1982-07-09,804.98,818.59,803.37,814.12,65870000,814.12 +1982-07-08,799.66,807.17,787.39,804.98,63270000,804.98 +1982-07-07,798.90,804.70,793.19,799.66,46920000,799.66 +1982-07-06,796.99,802.89,789.19,798.90,44350000,798.90 +1982-07-02,803.18,803.18,792.52,796.99,43760000,796.99 +1982-07-01,811.93,814.88,800.04,803.27,47900000,803.27 +1982-06-30,812.21,821.63,807.84,811.93,65280000,811.93 +1982-06-29,811.93,818.40,805.18,812.21,46990000,812.21 +1982-06-28,803.08,816.69,800.51,811.93,40700000,811.93 +1982-06-25,810.41,812.12,800.61,803.08,38740000,803.08 +1982-06-24,813.17,821.63,805.56,810.41,55860000,810.41 +1982-06-23,799.66,815.35,795.76,813.17,62710000,813.17 +1982-06-22,789.95,801.46,787.67,799.66,55290000,799.66 +1982-06-21,788.62,797.85,784.25,789.95,50370000,789.95 +1982-06-18,791.48,793.57,784.53,788.62,53800000,788.62 +1982-06-17,796.90,797.56,787.01,791.48,49230000,791.48 +1982-06-16,801.27,809.17,793.85,796.90,56280000,796.90 +1982-06-15,801.85,805.18,793.38,801.27,44970000,801.27 +1982-06-14,809.74,810.22,798.61,801.85,40100000,801.85 +1982-06-11,803.37,815.92,803.37,809.74,68610000,809.74 +1982-06-10,795.57,803.37,790.53,798.71,50950000,798.71 +1982-06-09,802.23,804.03,789.76,795.57,55770000,795.57 +1982-06-08,804.03,809.84,799.28,802.23,46820000,802.23 +1982-06-07,804.98,809.93,797.09,804.03,44630000,804.03 +1982-06-04,816.50,818.87,802.42,804.98,44110000,804.98 +1982-06-03,816.88,824.30,810.79,816.50,48450000,816.50 +1982-06-02,814.97,822.39,810.88,816.88,49220000,816.88 +1982-06-01,819.54,822.96,811.92,814.97,41650000,814.97 +1982-05-28,824.96,828.86,815.54,819.54,43900000,819.54 +1982-05-27,828.77,832.19,821.06,824.96,44730000,824.96 +1982-05-26,834.57,836.85,824.20,828.77,51250000,828.77 +1982-05-25,836.38,845.32,832.38,834.57,44010000,834.57 +1982-05-24,835.90,840.09,830.10,836.38,38510000,836.38 +1982-05-21,832.48,841.23,829.24,835.90,45260000,835.90 +1982-05-20,835.90,839.71,827.62,832.48,48330000,832.48 +1982-05-19,840.85,845.41,832.57,835.90,48840000,835.90 +1982-05-18,845.32,848.08,836.66,840.85,48970000,840.85 +1982-05-17,857.21,857.21,842.94,845.32,45600000,845.32 +1982-05-14,859.11,864.54,853.88,857.78,49900000,857.78 +1982-05-13,865.77,869.86,855.88,859.11,58230000,859.11 +1982-05-12,865.87,874.52,858.92,865.77,59210000,865.77 +1982-05-11,860.92,870.62,857.31,865.87,54680000,865.87 +1982-05-10,869.20,870.24,857.97,860.92,46300000,860.92 +1982-05-07,863.20,876.52,859.78,869.20,67130000,869.20 +1982-05-06,856.35,867.96,856.35,863.20,67540000,863.20 +1982-05-05,854.45,861.97,848.74,854.45,58860000,854.45 +1982-05-04,849.03,860.16,848.17,854.45,58720000,854.45 +1982-05-03,848.36,852.74,837.52,849.03,46490000,849.03 +1982-04-30,844.94,852.55,841.70,848.36,48200000,848.36 +1982-04-29,852.64,852.93,840.09,844.94,51330000,844.94 +1982-04-28,857.50,861.49,845.99,852.64,50530000,852.64 +1982-04-27,865.58,868.34,853.50,857.50,56480000,857.50 +1982-04-26,862.16,871.19,856.45,865.58,60500000,865.58 +1982-04-23,853.12,865.37,851.79,862.16,71840000,862.16 +1982-04-22,843.70,857.02,843.70,853.12,64470000,853.12 +1982-04-21,840.56,847.70,835.81,843.42,57820000,843.42 +1982-04-20,846.08,848.93,836.38,840.56,54610000,840.56 +1982-04-19,843.42,854.26,838.66,846.08,58470000,846.08 +1982-04-16,839.61,848.36,836.85,843.42,55890000,843.42 +1982-04-15,838.09,842.85,832.38,839.61,45700000,839.61 +1982-04-14,841.04,844.46,831.91,838.09,45150000,838.09 +1982-04-13,841.32,847.89,836.19,841.04,48660000,841.04 +1982-04-12,842.94,847.32,836.38,841.32,46520000,841.32 +1982-04-08,836.35,847.51,833.33,842.94,60190000,842.94 +1982-04-07,839.33,845.03,832.48,836.35,53130000,836.35 +1982-04-06,835.33,842.85,827.91,839.33,43200000,839.33 +1982-04-05,838.57,843.89,830.96,835.33,46900000,835.33 +1982-04-02,833.24,843.23,831.53,838.57,59800000,838.57 +1982-04-01,822.77,836.66,820.49,833.24,57100000,833.24 +1982-03-31,824.49,830.57,818.40,822.77,43300000,822.77 +1982-03-30,823.82,829.72,816.97,824.49,43900000,824.49 +1982-03-29,817.92,826.77,813.17,823.82,37100000,823.82 +1982-03-26,827.44,827.44,814.12,817.92,42400000,817.92 +1982-03-25,823.34,833.71,818.59,827.63,51970000,827.63 +1982-03-24,826.67,831.81,819.92,823.34,49380000,823.34 +1982-03-23,819.54,830.67,817.54,826.67,67130000,826.67 +1982-03-22,805.65,824.01,804.79,819.54,57610000,819.54 +1982-03-19,805.27,811.64,799.75,805.65,46250000,805.65 +1982-03-18,795.85,808.41,795.00,805.27,54270000,805.27 +1982-03-17,798.33,802.70,791.29,795.85,48900000,795.85 +1982-03-16,800.99,808.41,795.57,798.33,48900000,798.33 +1982-03-15,797.37,805.18,789.38,800.99,43370000,800.99 +1982-03-12,805.56,806.32,792.05,797.37,49600000,797.37 +1982-03-11,804.89,814.88,800.51,805.56,52960000,805.56 +1982-03-10,803.84,815.26,797.85,804.89,59440000,804.89 +1982-03-09,795.47,810.79,786.15,803.84,76060000,803.84 +1982-03-08,807.36,819.82,794.52,795.47,67330000,795.47 +1982-03-05,807.55,814.97,799.28,807.36,67440000,807.36 +1982-03-04,815.16,819.82,800.70,807.55,74340000,807.55 +1982-03-03,825.82,826.01,808.69,815.16,70230000,815.16 +1982-03-02,828.39,840.66,821.54,825.82,63800000,825.82 +1982-03-01,824.39,834.28,818.21,828.39,53010000,828.39 +1982-02-26,825.82,831.24,817.83,824.39,43840000,824.39 +1982-02-25,826.77,837.42,820.78,825.82,54160000,825.82 +1982-02-24,812.98,829.72,806.51,826.77,64800000,826.77 +1982-02-23,811.26,817.73,802.23,812.98,60100000,812.98 +1982-02-22,824.30,835.81,809.55,811.26,58310000,811.26 +1982-02-19,828.96,833.33,818.59,824.30,51340000,824.30 +1982-02-18,827.63,836.95,824.01,828.96,60810000,828.96 +1982-02-17,831.34,836.95,822.68,827.63,47660000,827.63 +1982-02-16,833.81,834.67,817.26,831.34,48880000,831.34 +1982-02-12,834.67,841.32,829.24,833.81,37070000,833.81 +1982-02-11,836.66,841.42,827.25,834.67,46730000,834.67 +1982-02-10,830.57,842.09,829.34,836.66,46620000,836.66 +1982-02-09,833.43,838.47,824.11,830.57,54420000,830.57 +1982-02-08,849.70,849.70,830.86,833.43,48500000,833.43 +1982-02-05,847.03,858.26,842.94,851.03,53350000,851.03 +1982-02-04,845.03,852.74,835.71,847.03,53300000,847.03 +1982-02-03,852.55,858.26,841.89,845.03,49560000,845.03 +1982-02-02,851.69,860.83,846.46,852.55,45020000,852.55 +1982-02-01,866.34,866.34,848.08,851.69,47720000,851.69 +1982-01-29,864.25,876.71,859.78,871.10,73400000,871.10 +1982-01-28,845.32,867.20,845.32,864.25,66690000,864.25 +1982-01-27,841.51,848.08,832.67,842.66,50060000,842.66 +1982-01-26,842.75,849.79,836.76,841.51,44870000,841.51 +1982-01-25,845.03,846.75,832.57,842.75,43170000,842.75 +1982-01-22,848.27,853.31,839.80,845.03,44370000,845.03 +1982-01-21,845.89,856.64,842.85,848.27,48610000,848.27 +1982-01-20,847.41,853.50,838.95,845.89,48860000,845.89 +1982-01-19,855.12,861.97,845.22,847.41,45070000,847.41 +1982-01-18,847.60,857.78,838.47,855.12,44920000,855.12 +1982-01-15,842.28,852.64,840.37,847.60,43310000,847.60 +1982-01-14,838.95,848.36,834.09,842.28,42940000,842.28 +1982-01-13,847.70,855.31,835.14,838.95,49130000,838.95 +1982-01-12,850.46,856.07,842.66,847.70,49800000,847.70 +1982-01-11,866.53,872.43,848.55,850.46,51900000,850.46 +1982-01-08,861.78,872.15,858.92,866.53,42050000,866.53 +1982-01-07,861.02,865.39,851.22,861.78,43410000,861.78 +1982-01-06,865.30,868.72,853.41,861.02,51510000,861.02 +1982-01-05,882.52,882.61,862.82,865.30,47510000,865.30 +1982-01-04,875.00,887.37,871.86,882.52,36760000,882.52 +1981-12-31,873.10,880.33,868.91,875.00,40780000,875.00 +1981-12-30,868.25,879.76,865.96,873.10,42960000,873.10 +1981-12-29,870.34,875.67,864.44,868.25,35300000,868.25 +1981-12-28,873.38,878.04,867.77,870.34,28320000,870.34 +1981-12-24,869.67,876.14,866.15,873.38,23940000,873.38 +1981-12-23,871.96,877.28,865.39,869.67,42910000,869.67 +1981-12-22,873.10,878.81,867.77,871.96,48320000,871.96 +1981-12-21,875.76,879.57,868.63,873.10,41290000,873.10 +1981-12-18,870.53,880.71,867.39,875.76,50940000,875.76 +1981-12-17,868.72,874.71,862.82,870.53,47230000,870.53 +1981-12-16,875.95,878.42,865.11,868.72,42770000,868.72 +1981-12-15,871.48,880.33,867.77,875.95,44130000,875.95 +1981-12-14,882.52,882.52,868.72,871.48,44740000,871.48 +1981-12-11,892.03,897.45,883.37,886.51,45850000,886.51 +1981-12-10,888.22,897.74,885.18,892.03,47020000,892.03 +1981-12-09,881.75,891.46,879.19,888.22,44810000,888.22 +1981-12-08,886.99,889.36,875.29,881.75,45140000,881.75 +1981-12-07,892.69,897.17,883.37,886.99,45720000,886.99 +1981-12-04,885.75,898.50,885.75,892.69,55040000,892.69 +1981-12-03,882.61,888.32,875.86,883.85,43770000,883.85 +1981-12-02,890.22,892.41,879.28,882.61,44510000,882.61 +1981-12-01,888.98,896.12,881.37,890.22,53980000,890.22 +1981-11-30,885.94,892.79,878.14,888.98,47580000,888.98 +1981-11-27,878.14,890.89,875.76,885.94,32770000,885.94 +1981-11-25,870.72,884.99,870.72,878.14,58570000,878.14 +1981-11-24,851.79,873.29,850.17,870.24,53200000,870.24 +1981-11-23,852.93,860.92,848.17,851.79,45250000,851.79 +1981-11-20,844.75,858.16,841.80,852.93,52010000,852.93 +1981-11-19,844.08,850.08,834.57,844.75,48890000,844.75 +1981-11-18,850.17,854.26,839.99,844.08,49980000,844.08 +1981-11-17,845.03,853.50,841.23,850.17,43190000,850.17 +1981-11-16,853.79,853.79,839.04,845.03,43740000,845.03 +1981-11-13,860.54,865.20,851.79,855.88,45550000,855.88 +1981-11-12,857.12,869.01,854.07,860.54,55720000,860.54 +1981-11-11,853.98,860.83,849.03,857.12,41920000,857.12 +1981-11-10,855.21,865.58,849.12,853.98,53940000,853.98 +1981-11-09,852.45,861.49,844.65,855.21,48310000,855.21 +1981-11-06,859.11,861.21,847.89,852.45,43270000,852.45 +1981-11-05,866.82,874.14,856.93,859.11,50860000,859.11 +1981-11-04,868.72,876.05,859.30,866.82,53450000,866.82 +1981-11-03,866.82,873.19,859.87,868.72,54620000,868.72 +1981-11-02,855.97,872.53,855.97,866.82,65100000,866.82 +1981-10-30,832.95,854.83,826.96,852.55,59570000,852.55 +1981-10-29,837.61,842.47,826.58,832.95,40070000,832.95 +1981-10-28,838.38,847.89,832.29,837.61,48100000,837.61 +1981-10-27,830.96,846.94,828.01,838.38,53030000,838.38 +1981-10-26,837.99,837.99,823.63,830.96,38210000,830.96 +1981-10-23,847.60,847.60,833.14,837.99,41990000,837.99 +1981-10-22,851.03,854.07,840.85,848.27,40630000,848.27 +1981-10-21,851.88,861.97,846.46,851.03,48490000,851.03 +1981-10-20,847.13,860.06,844.75,851.88,51530000,851.88 +1981-10-19,851.69,853.88,840.09,847.13,41590000,847.13 +1981-10-16,856.26,860.73,846.37,851.69,37800000,851.69 +1981-10-15,850.65,861.49,845.61,856.26,42830000,856.26 +1981-10-14,865.58,866.53,848.46,850.65,40260000,850.65 +1981-10-13,869.48,876.05,859.59,865.58,43360000,865.58 +1981-10-12,873.00,877.76,862.25,869.48,30030000,869.48 +1981-10-09,878.14,885.84,866.34,873.00,50060000,873.00 +1981-10-08,868.72,881.66,862.63,878.14,47090000,878.14 +1981-10-07,856.26,871.58,853.98,868.72,50030000,868.72 +1981-10-06,859.87,870.81,848.74,856.26,45460000,856.26 +1981-10-05,860.73,873.95,854.83,859.87,51290000,859.87 +1981-10-02,852.26,866.34,848.65,860.73,54540000,860.73 +1981-10-01,849.98,855.88,840.47,852.26,41600000,852.26 +1981-09-30,847.89,854.36,839.61,849.98,40700000,849.98 +1981-09-29,842.56,858.83,837.80,847.89,49800000,847.89 +1981-09-28,824.01,844.65,807.46,842.56,61320000,842.56 +1981-09-25,834.47,834.47,815.37,824.01,54390000,824.01 +1981-09-24,840.94,850.65,832.00,835.14,48880000,835.14 +1981-09-23,845.70,847.51,827.25,840.94,52700000,840.94 +1981-09-22,846.56,855.40,838.18,845.70,46830000,845.70 +1981-09-21,836.19,851.69,829.43,846.56,44570000,846.56 +1981-09-18,840.09,845.51,829.43,836.19,47350000,836.19 +1981-09-17,851.59,858.26,837.33,840.09,48300000,840.09 +1981-09-16,858.35,858.44,845.98,851.59,43660000,851.59 +1981-09-15,866.15,872.53,856.74,858.35,38580000,858.35 +1981-09-14,872.81,876.24,860.06,866.15,34040000,866.15 +1981-09-11,862.44,875.48,857.21,872.81,42170000,872.81 +1981-09-10,853.88,868.82,853.12,862.44,47430000,862.44 +1981-09-09,851.12,861.30,844.94,853.88,43910000,853.88 +1981-09-08,861.68,863.39,843.13,851.12,47340000,851.12 +1981-09-04,867.01,869.96,856.16,861.68,42760000,861.68 +1981-09-03,884.23,888.70,865.11,867.01,41730000,867.01 +1981-09-02,882.71,892.41,879.28,884.23,37570000,884.23 +1981-09-01,881.47,889.36,873.10,882.71,45110000,882.71 +1981-08-31,892.22,900.88,879.09,881.47,40360000,881.47 +1981-08-28,889.08,898.78,884.80,892.22,38020000,892.22 +1981-08-27,899.26,900.49,883.66,889.08,43900000,889.08 +1981-08-26,901.83,908.39,893.65,899.26,39980000,899.26 +1981-08-25,900.11,904.30,887.46,901.83,54600000,901.83 +1981-08-24,917.43,917.43,896.97,900.11,46750000,900.11 +1981-08-21,928.37,930.65,917.14,920.57,37670000,920.57 +1981-08-20,926.46,935.31,923.52,928.37,38270000,928.37 +1981-08-19,924.37,932.08,918.38,926.46,39390000,926.46 +1981-08-18,926.75,932.74,916.38,924.37,47270000,924.37 +1981-08-17,936.93,939.40,924.37,926.75,40840000,926.75 +1981-08-14,944.35,947.77,933.79,936.93,42580000,936.93 +1981-08-13,945.21,952.91,938.55,944.35,42460000,944.35 +1981-08-12,949.30,955.86,942.26,945.21,53650000,945.21 +1981-08-11,943.68,955.48,939.50,949.30,52600000,949.30 +1981-08-10,942.54,948.82,935.88,943.68,38370000,943.68 +1981-08-07,952.91,954.15,938.45,942.54,38370000,942.54 +1981-08-06,953.58,961.47,947.30,952.91,52070000,952.91 +1981-08-05,945.97,958.81,942.16,953.58,54290000,953.58 +1981-08-04,946.25,951.39,937.40,945.97,39460000,945.97 +1981-08-03,952.34,955.48,940.45,946.25,39650000,946.25 +1981-07-31,945.11,956.72,943.40,952.34,43480000,952.34 +1981-07-30,937.40,948.25,934.36,945.11,41560000,945.11 +1981-07-29,939.40,947.30,933.50,937.40,37610000,937.40 +1981-07-28,945.87,948.15,934.65,939.40,38160000,939.40 +1981-07-27,937.12,950.82,937.12,945.87,39610000,945.87 +1981-07-24,928.56,941.78,926.94,936.74,38880000,936.74 +1981-07-23,924.66,932.84,918.66,928.56,41790000,928.56 +1981-07-22,934.46,942.07,922.37,924.66,47500000,924.66 +1981-07-21,940.54,944.35,927.23,934.46,47280000,934.46 +1981-07-20,954.81,954.81,937.02,940.54,40240000,940.54 +1981-07-17,955.48,964.80,949.30,958.90,42780000,958.90 +1981-07-16,954.15,960.52,947.11,955.48,39010000,955.48 +1981-07-15,948.25,960.33,945.49,954.15,48950000,954.15 +1981-07-14,954.34,956.53,941.50,948.25,45230000,948.25 +1981-07-13,955.67,962.42,949.87,954.34,38100000,954.34 +1981-07-10,959.00,963.38,950.15,955.67,39950000,955.67 +1981-07-09,953.48,963.18,950.06,959.00,45510000,959.00 +1981-07-08,954.15,961.28,944.06,953.48,46000000,953.48 +1981-07-07,949.30,962.90,943.49,954.15,53560000,954.15 +1981-07-06,957.95,957.95,941.97,949.30,44590000,949.30 +1981-07-02,967.66,972.70,954.72,959.19,45100000,959.19 +1981-07-01,976.88,978.98,963.28,967.66,49080000,967.66 +1981-06-30,984.59,988.01,972.69,976.88,41550000,976.88 +1981-06-29,992.87,996.39,981.16,984.59,37930000,984.59 +1981-06-26,996.77,1001.81,988.49,992.87,39240000,992.87 +1981-06-25,999.33,1007.99,992.58,996.77,43920000,996.77 +1981-06-24,1006.66,1008.09,993.15,999.33,46650000,999.33 +1981-06-23,994.20,1008.94,990.01,1006.66,51840000,1006.66 +1981-06-22,996.19,1004.19,988.96,994.20,41790000,994.20 +1981-06-19,995.15,1002.85,988.77,996.19,46430000,996.19 +1981-06-18,1006.56,1011.80,990.96,995.15,48400000,995.15 +1981-06-17,1003.33,1010.84,992.01,1006.56,55470000,1006.56 +1981-06-16,1011.99,1017.50,997.90,1003.33,57780000,1003.33 +1981-06-15,1006.85,1023.02,1006.85,1011.99,63350000,1011.99 +1981-06-12,1007.42,1017.22,996.77,1006.28,60790000,1006.28 +1981-06-11,993.88,1010.57,989.89,1007.42,59530000,1007.42 +1981-06-10,994.44,1003.71,985.91,993.88,53200000,993.88 +1981-06-09,995.64,1004.45,987.76,994.44,44600000,994.44 +1981-06-08,993.79,1003.52,990.54,995.64,41580000,995.64 +1981-06-05,986.74,999.44,981.18,993.79,47180000,993.79 +1981-06-04,989.71,996.66,980.25,986.74,48940000,986.74 +1981-06-03,987.48,993.14,976.82,989.71,54700000,989.71 +1981-06-02,997.96,1003.15,984.70,987.48,53930000,987.48 +1981-06-01,991.75,1010.48,988.97,997.96,62170000,997.96 +1981-05-29,994.25,1003.15,985.44,991.75,51580000,991.75 +1981-05-28,993.14,1002.97,982.66,994.25,59500000,994.25 +1981-05-27,983.96,998.70,978.76,993.14,58730000,993.14 +1981-05-26,971.72,987.20,965.69,983.96,42760000,983.96 +1981-05-22,976.59,982.62,966.59,971.72,40710000,971.72 +1981-05-21,976.86,984.06,969.11,976.59,46820000,976.59 +1981-05-20,980.01,984.87,971.36,976.86,42370000,976.86 +1981-05-19,985.77,988.29,972.26,980.01,42220000,980.01 +1981-05-18,985.95,994.42,978.84,985.77,42510000,985.77 +1981-05-15,973.07,990.09,971.72,985.95,45460000,985.95 +1981-05-14,967.76,979.02,963.08,973.07,42750000,973.07 +1981-05-13,970.82,978.12,961.82,967.76,42600000,967.76 +1981-05-12,963.44,973.70,956.68,970.82,40440000,970.82 +1981-05-11,976.40,979.47,959.83,963.44,37640000,963.44 +1981-05-08,978.39,983.88,972.71,976.40,41860000,976.40 +1981-05-07,973.34,981.99,969.29,978.39,42590000,978.39 +1981-05-06,972.44,983.16,969.47,973.34,47100000,973.34 +1981-05-05,979.11,979.38,964.52,972.44,49000000,972.44 +1981-05-04,985.41,985.41,971.90,979.11,40430000,979.11 +1981-05-01,997.75,1005.22,987.12,995.59,48360000,995.59 +1981-04-30,1004.32,1010.90,991.89,997.75,47970000,997.75 +1981-04-29,1016.93,1018.37,996.58,1004.32,53340000,1004.32 +1981-04-28,1024.05,1029.63,1009.37,1016.93,58210000,1016.93 +1981-04-27,1020.35,1030.98,1013.87,1024.05,51080000,1024.05 +1981-04-24,1010.27,1024.68,1004.32,1020.35,60000000,1020.35 +1981-04-23,1007.02,1022.33,1001.89,1010.27,64200000,1010.27 +1981-04-22,1005.94,1013.96,996.13,1007.02,60660000,1007.02 +1981-04-21,1015.94,1020.98,1001.44,1005.94,60280000,1005.94 +1981-04-20,1005.58,1020.71,995.14,1015.94,51020000,1015.94 +1981-04-16,1001.71,1012.79,995.23,1005.58,52950000,1005.58 +1981-04-15,989.10,1004.41,987.03,1001.71,56040000,1001.71 +1981-04-14,993.16,998.56,981.81,989.10,48350000,989.10 +1981-04-13,1000.27,1003.51,987.66,993.16,49860000,993.16 +1981-04-10,998.83,1009.01,990.63,1000.27,58130000,1000.27 +1981-04-09,993.43,1004.50,984.87,998.83,59520000,998.83 +1981-04-08,992.89,1000.45,987.84,993.43,48000000,993.43 +1981-04-07,994.24,1004.41,987.03,992.89,44540000,992.89 +1981-04-06,1004.59,1004.59,986.67,994.24,43190000,994.24 +1981-04-03,1009.01,1017.02,1000.72,1007.11,48680000,1007.11 +1981-04-02,1014.14,1020.62,1002.07,1009.01,52570000,1009.01 +1981-04-01,1003.87,1020.62,1002.16,1014.14,54880000,1014.14 +1981-03-31,996.58,1011.44,996.58,1003.87,50980000,1003.87 +1981-03-30,994.78,1005.04,987.21,992.16,33500000,992.16 +1981-03-27,1005.76,1008.29,990.00,994.78,46930000,994.78 +1981-03-26,1015.22,1021.79,1000.81,1005.76,60370000,1005.76 +1981-03-25,996.13,1016.48,992.71,1015.22,56320000,1015.22 +1981-03-24,1004.23,1015.58,992.35,996.13,66400000,996.13 +1981-03-23,992.80,1008.92,988.56,1004.23,57880000,1004.23 +1981-03-20,986.58,1002.07,981.27,992.80,61980000,992.80 +1981-03-19,994.06,1001.71,981.18,986.58,62440000,986.58 +1981-03-18,992.53,1003.33,984.15,994.06,55740000,994.06 +1981-03-17,1002.79,1011.08,986.22,992.53,65920000,992.53 +1981-03-16,985.77,1005.40,979.38,1002.79,49940000,1002.79 +1981-03-13,989.82,1002.70,981.09,985.77,68290000,985.77 +1981-03-12,967.67,991.35,966.05,989.82,54640000,989.82 +1981-03-11,972.67,978.30,959.11,967.67,47390000,967.67 +1981-03-10,976.42,987.60,968.47,972.67,56610000,972.67 +1981-03-09,964.62,981.22,962.79,976.42,46180000,976.42 +1981-03-06,964.62,972.13,955.71,964.62,43940000,964.62 +1981-03-05,971.44,977.11,961.39,964.62,45380000,964.62 +1981-03-04,966.02,980.70,959.47,971.44,47260000,971.44 +1981-03-03,977.99,982.01,961.65,966.02,48730000,966.02 +1981-03-02,974.58,983.75,964.36,977.99,47710000,977.99 +1981-02-27,966.81,980.87,960.60,974.58,53210000,974.58 +1981-02-26,954.40,972.22,953.00,966.81,60300000,966.81 +1981-02-25,946.10,958.51,932.22,954.40,45710000,954.40 +1981-02-24,945.23,955.63,938.77,946.10,43960000,946.10 +1981-02-23,936.09,952.22,930.64,945.23,39590000,945.23 +1981-02-20,933.36,942.41,926.11,936.09,41900000,936.09 +1981-02-19,947.10,952.05,930.29,933.36,41630000,933.36 +1981-02-18,939.68,950.34,935.15,947.10,40410000,947.10 +1981-02-17,931.57,944.28,930.38,939.68,37940000,939.68 +1981-02-13,936.60,940.19,926.45,931.57,33360000,931.57 +1981-02-12,942.49,947.53,933.02,936.60,34700000,936.60 +1981-02-11,948.63,954.44,938.99,942.49,37770000,942.49 +1981-02-10,947.18,955.12,940.02,948.63,40820000,948.63 +1981-02-09,952.30,958.53,943.26,947.18,38330000,947.18 +1981-02-06,946.76,959.98,944.20,952.30,45820000,952.30 +1981-02-05,941.98,952.22,936.09,946.76,45320000,946.76 +1981-02-04,941.38,948.21,933.28,941.98,45520000,941.98 +1981-02-03,932.25,944.37,925.77,941.38,45950000,941.38 +1981-02-02,947.10,947.10,923.89,932.25,44070000,932.25 +1981-01-30,948.89,960.24,940.61,947.27,41160000,947.27 +1981-01-29,942.58,955.63,937.12,948.89,38170000,948.89 +1981-01-28,949.49,956.91,939.68,942.58,36690000,942.58 +1981-01-27,938.91,954.69,935.92,949.49,42260000,949.49 +1981-01-26,940.19,947.70,930.89,938.91,35380000,938.91 +1981-01-23,940.44,947.10,934.30,940.19,37220000,940.19 +1981-01-22,946.25,951.28,934.13,940.44,39880000,940.44 +1981-01-21,950.68,954.01,938.48,946.25,39190000,946.25 +1981-01-20,970.99,975.94,948.55,950.68,41750000,950.68 +1981-01-19,973.29,980.38,965.36,970.99,36470000,970.99 +1981-01-16,969.97,980.29,964.85,973.29,43260000,973.29 +1981-01-15,966.47,975.17,959.30,969.97,39640000,969.97 +1981-01-14,965.10,978.07,960.75,966.47,41390000,966.47 +1981-01-13,968.77,971.25,956.48,965.10,40890000,965.10 +1981-01-12,968.69,983.87,964.76,968.77,48760000,968.77 +1981-01-09,965.70,977.05,957.76,968.69,50190000,968.69 +1981-01-08,980.89,986.01,959.13,965.70,55350000,965.70 +1981-01-07,986.35,986.35,962.63,980.89,92890000,980.89 +1981-01-06,992.66,1013.14,986.26,1004.69,67400000,1004.69 +1981-01-05,976.28,996.93,976.28,992.66,58710000,992.66 +1981-01-02,963.99,975.68,958.70,972.78,28870000,972.78 +1980-12-31,962.03,971.50,955.55,963.99,41210000,963.99 +1980-12-30,960.58,969.54,952.99,962.03,39750000,962.03 +1980-12-29,966.38,974.57,956.40,960.58,36060000,960.58 +1980-12-26,963.05,969.37,958.45,966.38,16130000,966.38 +1980-12-24,958.28,968.17,950.85,963.05,29490000,963.05 +1980-12-23,958.79,971.25,949.49,958.28,55260000,958.28 +1980-12-22,937.20,962.17,934.64,958.79,51950000,958.79 +1980-12-19,930.20,945.31,924.57,937.20,50770000,937.20 +1980-12-18,928.50,948.38,925.00,930.20,69570000,930.20 +1980-12-17,918.09,933.96,913.05,928.50,50800000,928.50 +1980-12-16,911.60,922.35,902.47,918.09,41630000,918.09 +1980-12-15,917.15,927.65,907.85,911.60,39700000,911.60 +1980-12-12,908.45,923.12,906.48,917.15,39530000,917.15 +1980-12-11,916.21,918.52,894.45,908.45,60220000,908.45 +1980-12-10,934.04,943.52,914.16,916.21,49860000,916.21 +1980-12-09,933.70,944.28,921.59,934.04,53220000,934.04 +1980-12-08,951.19,951.19,928.33,933.70,53390000,933.70 +1980-12-05,970.48,972.61,951.45,956.23,51990000,956.23 +1980-12-04,972.27,984.22,963.31,970.48,51170000,970.48 +1980-12-03,974.40,981.57,963.57,972.27,43430000,972.27 +1980-12-02,969.45,979.69,954.95,974.40,52340000,974.40 +1980-12-01,991.13,991.13,966.38,969.45,48180000,969.45 +1980-11-28,989.68,998.72,980.38,993.34,34240000,993.34 +1980-11-26,982.68,1000.77,979.86,989.68,55340000,989.68 +1980-11-25,978.75,993.52,973.04,982.68,55840000,982.68 +1980-11-24,988.14,988.14,967.66,978.75,51120000,978.75 +1980-11-21,1000.17,1004.69,984.30,989.93,55950000,989.93 +1980-11-20,991.04,1004.61,984.90,1000.17,60180000,1000.17 +1980-11-19,997.95,1009.39,983.36,991.04,69230000,991.04 +1980-11-18,986.26,1005.20,985.92,997.95,70380000,997.95 +1980-11-17,986.35,990.78,968.94,986.26,50260000,986.26 +1980-11-14,982.42,997.35,973.21,986.35,71630000,986.35 +1980-11-13,964.93,984.64,962.20,982.42,69340000,982.42 +1980-11-12,944.03,968.86,943.77,964.93,58500000,964.93 +1980-11-11,933.79,951.19,933.02,944.03,41520000,944.03 +1980-11-10,932.42,940.44,926.71,933.79,35720000,933.79 +1980-11-07,935.41,940.53,926.11,932.42,40070000,932.42 +1980-11-06,950.43,950.43,932.08,935.41,48890000,935.41 +1980-11-05,950.34,982.59,950.34,953.16,84080000,953.16 +1980-11-03,924.49,941.30,924.49,937.20,35820000,937.20 +1980-10-31,917.75,929.35,911.60,924.49,40110000,924.49 +1980-10-30,929.18,932.51,915.02,917.75,39060000,917.75 +1980-10-29,932.59,941.64,925.68,929.18,37200000,929.18 +1980-10-28,931.74,937.54,922.78,932.59,40300000,932.59 +1980-10-27,943.60,944.62,930.12,931.74,34430000,931.74 +1980-10-24,939.51,947.35,931.06,943.60,41050000,943.60 +1980-10-23,955.12,958.28,936.69,939.51,49200000,939.51 +1980-10-22,954.44,961.77,947.87,955.12,43060000,955.12 +1980-10-21,960.84,968.69,949.91,954.44,51220000,954.44 +1980-10-20,956.14,964.42,946.59,960.84,40910000,960.84 +1980-10-17,958.70,966.04,946.42,956.14,43920000,956.14 +1980-10-16,972.44,987.29,956.57,958.70,65450000,958.70 +1980-10-15,962.20,975.94,959.73,972.44,48260000,972.44 +1980-10-14,959.90,971.67,957.08,962.20,48830000,962.20 +1980-10-13,950.68,963.65,946.50,959.90,31360000,959.90 +1980-10-10,958.96,965.70,946.25,950.68,44040000,950.68 +1980-10-09,963.99,971.08,953.07,958.96,43980000,958.96 +1980-10-08,960.67,971.42,955.29,963.99,46580000,963.99 +1980-10-07,965.70,973.04,955.55,960.67,50310000,960.67 +1980-10-06,950.85,969.62,950.85,965.70,50130000,965.70 +1980-10-03,942.24,957.85,938.40,950.68,47510000,950.68 +1980-10-02,939.42,948.21,931.31,942.24,46160000,942.24 +1980-10-01,932.42,945.14,923.04,939.42,48720000,939.42 +1980-09-30,921.93,937.20,921.59,932.42,40290000,932.42 +1980-09-29,934.81,934.81,918.00,921.93,46410000,921.93 +1980-09-26,952.65,952.65,934.98,940.10,49460000,940.10 +1980-09-25,964.76,972.61,953.07,955.97,49510000,955.97 +1980-09-24,962.03,972.78,952.73,964.76,56860000,964.76 +1980-09-23,974.57,980.72,957.94,962.03,64390000,962.03 +1980-09-22,963.74,977.05,955.29,974.57,53140000,974.57 +1980-09-19,956.48,972.70,950.77,963.74,53780000,963.74 +1980-09-18,961.26,972.01,950.26,956.48,63390000,956.48 +1980-09-17,945.90,966.98,943.69,961.26,63990000,961.26 +1980-09-16,937.63,953.07,935.32,945.90,57290000,945.90 +1980-09-15,936.52,942.58,926.96,937.63,44630000,937.63 +1980-09-12,941.30,945.48,932.51,936.52,47180000,936.52 +1980-09-11,938.48,947.78,934.39,941.30,44770000,941.30 +1980-09-10,934.73,946.16,930.63,938.48,51430000,938.48 +1980-09-09,928.58,936.09,919.03,934.73,44460000,934.73 +1980-09-08,940.96,945.48,925.34,928.58,42050000,928.58 +1980-09-05,948.81,950.68,937.03,940.96,37990000,940.96 +1980-09-04,953.16,964.85,942.92,948.81,59030000,948.81 +1980-09-03,940.78,955.20,939.85,953.16,52370000,953.16 +1980-09-02,932.59,944.80,928.16,940.78,35290000,940.78 +1980-08-29,930.38,936.43,923.04,932.59,33510000,932.59 +1980-08-28,943.09,944.03,927.22,930.38,39890000,930.38 +1980-08-27,953.24,953.24,939.68,943.09,44000000,943.09 +1980-08-26,956.23,964.59,949.91,953.41,41700000,953.41 +1980-08-25,958.19,961.35,947.70,956.23,35400000,956.23 +1980-08-22,955.03,969.45,952.73,958.19,58210000,958.19 +1980-08-21,945.31,958.53,943.94,955.03,50770000,955.03 +1980-08-20,939.85,948.98,934.47,945.31,42560000,945.31 +1980-08-19,948.63,952.13,937.37,939.85,41930000,939.85 +1980-08-18,961.95,961.95,944.97,948.63,41890000,948.63 +1980-08-15,962.63,972.35,956.31,966.72,47780000,966.72 +1980-08-14,949.23,965.36,943.69,962.63,47700000,962.63 +1980-08-13,952.39,958.79,944.45,949.23,44350000,949.23 +1980-08-12,964.08,969.97,948.72,952.39,52050000,952.39 +1980-08-11,954.69,966.89,950.43,964.08,44690000,964.08 +1980-08-08,950.94,965.87,949.74,954.69,58860000,954.69 +1980-08-07,938.23,953.75,935.84,950.94,61820000,950.94 +1980-08-06,929.78,941.04,923.63,938.23,45050000,938.23 +1980-08-05,931.06,938.82,924.23,929.78,45510000,929.78 +1980-08-04,931.48,935.24,918.52,931.06,41550000,931.06 +1980-08-01,935.32,940.02,924.83,931.48,46440000,931.48 +1980-07-31,936.18,939.51,918.77,935.32,54610000,935.32 +1980-07-30,931.91,946.93,926.54,936.18,58060000,936.18 +1980-07-29,925.43,935.15,921.33,931.91,44840000,931.91 +1980-07-28,918.09,927.73,911.69,925.43,35330000,925.43 +1980-07-25,925.34,925.34,913.23,918.09,36250000,918.09 +1980-07-24,928.58,933.79,919.97,926.11,42420000,926.11 +1980-07-23,927.30,937.71,920.99,928.58,45890000,928.58 +1980-07-22,928.67,940.78,922.18,927.30,52230000,927.30 +1980-07-21,923.98,933.28,916.38,928.67,42750000,928.67 +1980-07-18,915.10,930.80,914.42,923.98,58040000,923.98 +1980-07-17,904.44,916.64,902.05,915.10,48850000,915.10 +1980-07-16,901.54,912.97,898.21,904.44,49140000,904.44 +1980-07-15,905.55,916.04,899.23,901.54,60920000,901.54 +1980-07-14,891.13,908.28,887.20,905.55,45500000,905.55 +1980-07-11,885.92,895.22,880.80,891.13,38310000,891.13 +1980-07-10,897.27,900.34,883.28,885.92,43730000,885.92 +1980-07-09,897.35,908.87,892.58,897.27,52010000,897.27 +1980-07-08,898.21,904.86,891.38,897.35,45830000,897.35 +1980-07-07,888.91,900.77,886.86,898.21,42540000,898.21 +1980-07-03,876.02,890.78,874.83,888.91,47230000,888.91 +1980-07-02,872.27,880.46,867.06,876.02,42950000,876.02 +1980-07-01,867.92,876.02,862.63,872.27,34340000,872.27 +1980-06-30,880.89,880.89,864.33,867.92,29910000,867.92 +1980-06-27,883.45,889.08,874.49,881.83,33110000,881.83 +1980-06-26,887.54,896.33,880.03,883.45,45110000,883.45 +1980-06-25,877.30,892.49,874.91,887.54,46500000,887.54 +1980-06-24,873.81,881.31,867.15,877.30,37730000,877.30 +1980-06-23,869.71,879.61,864.85,873.81,34180000,873.81 +1980-06-20,870.90,875.09,863.31,869.71,36530000,869.71 +1980-06-19,881.91,886.01,869.62,870.90,38280000,870.90 +1980-06-18,879.27,885.32,870.14,881.91,41960000,881.91 +1980-06-17,877.73,887.63,872.35,879.27,41990000,879.27 +1980-06-16,876.37,883.19,868.77,877.73,36190000,877.73 +1980-06-13,872.61,883.96,866.81,876.37,41880000,876.37 +1980-06-12,872.70,881.40,863.05,872.61,47300000,872.61 +1980-06-11,863.99,876.88,860.24,872.70,43800000,872.70 +1980-06-10,860.67,870.73,855.20,863.99,42030000,863.99 +1980-06-09,861.52,867.66,855.72,860.67,36820000,860.67 +1980-06-06,858.70,867.06,853.07,861.52,37230000,861.52 +1980-06-05,858.02,868.60,853.50,858.70,49070000,858.70 +1980-06-04,843.77,860.49,842.75,858.02,44180000,858.02 +1980-06-03,847.35,851.96,840.70,843.77,33150000,843.77 +1980-06-02,850.85,857.94,842.92,847.35,32710000,847.35 +1980-05-30,846.25,853.24,835.07,850.85,34820000,850.85 +1980-05-29,860.32,863.65,844.71,846.25,42000000,846.25 +1980-05-28,857.76,866.13,850.09,860.32,38580000,860.32 +1980-05-27,854.10,864.42,851.28,857.76,40810000,857.76 +1980-05-23,843.34,858.62,843.34,854.10,45790000,854.10 +1980-05-22,831.06,848.63,828.84,842.92,41040000,842.92 +1980-05-21,832.51,836.43,821.50,831.06,34830000,831.06 +1980-05-20,830.89,837.12,825.60,832.51,31800000,832.51 +1980-05-19,826.88,835.75,820.65,830.89,30970000,830.89 +1980-05-16,822.53,829.52,819.11,826.88,31710000,826.88 +1980-05-15,819.62,829.35,816.04,822.53,41120000,822.53 +1980-05-14,816.89,827.73,813.74,819.62,40840000,819.62 +1980-05-13,805.20,820.39,803.07,816.89,35460000,816.89 +1980-05-12,805.80,810.32,795.82,805.20,28220000,805.20 +1980-05-09,815.10,815.10,802.47,805.80,30280000,805.80 +1980-05-08,821.25,827.47,811.01,815.19,39280000,815.19 +1980-05-07,816.04,828.67,810.49,821.25,42600000,821.25 +1980-05-06,816.30,827.65,808.28,816.04,40160000,816.04 +1980-05-05,810.92,819.20,803.58,816.30,34090000,816.30 +1980-05-02,808.79,815.70,802.99,810.92,28040000,810.92 +1980-05-01,817.06,820.22,803.24,808.79,32480000,808.79 +1980-04-30,811.09,818.52,801.02,817.06,30850000,817.06 +1980-04-29,805.46,816.21,802.65,811.09,27940000,811.09 +1980-04-28,803.58,814.68,798.72,805.46,30600000,805.46 +1980-04-25,797.10,806.74,786.35,803.58,28590000,803.58 +1980-04-24,789.25,804.95,785.24,797.10,35790000,797.10 +1980-04-23,789.85,801.11,784.13,789.25,42620000,789.25 +1980-04-22,771.33,793.43,771.33,789.85,47920000,789.85 +1980-04-21,763.40,769.62,751.37,759.13,27560000,759.13 +1980-04-18,768.86,775.94,760.32,763.40,26880000,763.40 +1980-04-17,771.25,776.37,762.12,768.86,32770000,768.86 +1980-04-16,783.36,794.88,769.80,771.25,39730000,771.25 +1980-04-15,784.90,792.41,778.84,783.36,26670000,783.36 +1980-04-14,791.55,791.81,779.52,784.90,23060000,784.90 +1980-04-11,791.47,800.85,786.52,791.55,29960000,791.55 +1980-04-10,785.92,796.42,783.02,791.47,33940000,791.47 +1980-04-09,775.00,790.02,772.44,785.92,33020000,785.92 +1980-04-08,768.34,779.61,759.81,775.00,31700000,775.00 +1980-04-07,784.13,784.39,765.44,768.34,29130000,768.34 +1980-04-03,787.80,791.98,778.24,784.13,27970000,784.13 +1980-04-02,784.47,796.40,779.95,787.80,35210000,787.80 +1980-04-01,785.75,792.15,776.28,784.47,32230000,784.47 +1980-03-31,777.65,790.87,772.18,785.75,35840000,785.75 +1980-03-28,759.98,784.39,756.57,777.65,46720000,777.65 +1980-03-27,762.12,767.41,729.95,759.98,63680000,759.98 +1980-03-26,767.83,781.66,758.79,762.12,37370000,762.12 +1980-03-25,765.44,777.47,758.36,767.83,43790000,767.83 +1980-03-24,784.98,784.98,761.69,765.44,39230000,765.44 +1980-03-21,789.08,794.71,779.52,785.15,32220000,785.15 +1980-03-20,800.94,804.61,785.92,789.08,32580000,789.08 +1980-03-19,801.62,812.12,794.97,800.94,36520000,800.94 +1980-03-18,788.65,806.66,780.97,801.62,47340000,801.62 +1980-03-17,811.26,811.26,784.98,788.65,37020000,788.65 +1980-03-14,809.56,819.11,800.68,811.69,35180000,811.69 +1980-03-13,819.54,825.26,806.57,809.56,33070000,809.56 +1980-03-12,826.45,829.86,808.70,819.54,37990000,819.54 +1980-03-11,818.94,831.91,817.58,826.45,41350000,826.45 +1980-03-10,820.56,828.84,807.25,818.94,43750000,818.94 +1980-03-07,828.07,832.51,813.23,820.56,50950000,820.56 +1980-03-06,844.88,848.12,822.44,828.07,49610000,828.07 +1980-03-05,856.48,868.69,840.78,844.88,49240000,844.88 +1980-03-04,854.35,859.90,842.75,856.48,44310000,856.48 +1980-03-03,863.14,868.26,851.37,854.35,38690000,854.35 +1980-02-29,854.44,866.55,850.85,863.14,38810000,863.14 +1980-02-28,855.12,865.10,847.27,854.44,40330000,854.44 +1980-02-27,864.25,875.26,850.09,855.12,46430000,855.12 +1980-02-26,859.81,869.45,853.24,864.25,40000000,864.25 +1980-02-25,868.77,868.94,854.61,859.81,39140000,859.81 +1980-02-22,868.52,877.47,855.80,868.77,48210000,868.77 +1980-02-21,886.86,891.13,863.99,868.52,51530000,868.52 +1980-02-20,876.02,891.30,872.44,886.86,44340000,886.86 +1980-02-19,883.96,883.96,869.37,876.02,39480000,876.02 +1980-02-15,892.92,892.92,875.09,884.98,46680000,884.98 +1980-02-14,903.84,912.03,886.86,893.77,50540000,893.77 +1980-02-13,898.98,918.17,896.59,903.84,65230000,903.84 +1980-02-12,889.59,901.37,880.97,898.98,48090000,898.98 +1980-02-11,895.73,902.39,884.04,889.59,58660000,889.59 +1980-02-08,885.49,901.11,879.86,895.73,57860000,895.73 +1980-02-07,881.83,897.27,878.24,885.49,57690000,885.49 +1980-02-06,876.62,888.05,867.92,881.83,51950000,881.83 +1980-02-05,875.09,880.89,868.17,876.62,41880000,876.62 +1980-02-04,881.48,887.37,870.48,875.09,43070000,875.09 +1980-02-01,875.85,886.64,866.30,881.48,46610000,881.48 +1980-01-31,881.91,897.87,873.04,875.85,65900000,875.85 +1980-01-30,874.40,886.09,870.14,881.91,51170000,881.91 +1980-01-29,878.50,885.67,864.59,874.40,55480000,874.40 +1980-01-28,876.11,884.56,866.64,878.50,53620000,878.50 +1980-01-25,879.95,882.25,869.03,876.11,47100000,876.11 +1980-01-24,877.56,891.38,874.15,879.95,59070000,879.95 +1980-01-23,866.21,883.02,859.39,877.56,50730000,877.56 +1980-01-22,872.78,879.95,861.95,866.21,50620000,866.21 +1980-01-21,867.15,880.03,863.65,872.78,48040000,872.78 +1980-01-18,863.57,873.21,855.29,867.15,47150000,867.15 +1980-01-17,865.19,872.95,857.00,863.57,54170000,863.57 +1980-01-16,868.60,881.14,862.12,865.19,67700000,865.19 +1980-01-15,863.57,873.81,855.89,868.60,52320000,868.60 +1980-01-14,858.53,870.65,854.95,863.57,52930000,863.57 +1980-01-11,858.96,868.17,848.89,858.53,52890000,858.53 +1980-01-10,850.09,866.72,848.89,858.96,55980000,858.96 +1980-01-09,851.71,865.70,846.76,850.09,65260000,850.09 +1980-01-08,832.00,853.67,828.84,851.71,53390000,851.71 +1980-01-07,828.84,839.85,824.74,832.00,44500000,832.00 +1980-01-04,820.31,833.53,819.03,828.84,39130000,828.84 +1980-01-03,824.57,827.73,809.04,820.31,50480000,820.31 +1980-01-02,838.74,841.21,822.35,824.57,40610000,824.57 +1979-12-31,838.91,843.17,834.39,838.74,31530000,838.74 +1979-12-28,840.10,843.43,834.64,838.91,34430000,838.91 +1979-12-27,838.14,842.83,834.47,840.10,31410000,840.10 +1979-12-26,839.16,843.09,833.74,838.14,24960000,838.14 +1979-12-24,838.91,842.32,833.19,839.16,19150000,839.16 +1979-12-21,843.34,847.35,834.56,838.91,36160000,838.91 +1979-12-20,838.91,848.55,835.32,843.34,40380000,843.34 +1979-12-19,838.65,842.75,830.46,838.91,41780000,838.91 +1979-12-18,844.62,849.15,835.32,838.65,43310000,838.65 +1979-12-17,842.75,851.54,838.05,844.62,43830000,844.62 +1979-12-14,836.09,846.93,833.28,842.75,41800000,842.75 +1979-12-13,835.67,840.53,830.03,836.09,36690000,836.09 +1979-12-12,833.70,840.87,830.20,835.67,34630000,835.67 +1979-12-11,833.87,841.47,828.41,833.70,36160000,833.70 +1979-12-10,833.19,837.29,826.62,833.87,32270000,833.87 +1979-12-07,835.07,844.71,829.35,833.19,42370000,833.19 +1979-12-06,828.41,837.46,826.19,835.07,37510000,835.07 +1979-12-05,824.91,837.37,824.15,828.41,39300000,828.41 +1979-12-04,819.62,828.33,818.09,824.91,33510000,824.91 +1979-12-03,822.35,825.51,814.76,819.62,29030000,819.62 +1979-11-30,830.80,830.80,819.88,822.35,30480000,822.35 +1979-11-29,830.46,838.57,826.45,831.74,33550000,831.74 +1979-11-28,825.85,835.92,818.09,830.46,39690000,830.46 +1979-11-27,828.75,837.29,820.73,825.85,45140000,825.85 +1979-11-26,813.82,833.11,813.82,828.75,47940000,828.75 +1979-11-23,807.42,815.96,804.86,811.77,23300000,811.77 +1979-11-21,809.22,810.49,793.60,807.42,37020000,807.42 +1979-11-20,815.27,820.14,805.12,809.22,35010000,809.22 +1979-11-19,815.70,822.95,810.07,815.27,33090000,815.27 +1979-11-16,821.33,822.61,812.54,815.70,30060000,815.70 +1979-11-15,816.55,827.56,813.57,821.33,32380000,821.33 +1979-11-14,814.08,823.04,805.03,816.55,30970000,816.55 +1979-11-13,821.93,825.85,811.52,814.08,29240000,814.08 +1979-11-12,806.48,823.72,805.63,821.93,26640000,821.93 +1979-11-09,799.91,812.29,799.91,806.48,30060000,806.48 +1979-11-08,796.67,804.27,792.24,797.61,26270000,797.61 +1979-11-07,805.20,805.20,793.43,796.67,30830000,796.67 +1979-11-06,812.63,813.40,804.61,806.48,21960000,806.48 +1979-11-05,818.94,819.37,808.45,812.63,20470000,812.63 +1979-11-02,820.14,824.74,814.42,818.94,23670000,818.94 +1979-11-01,815.70,823.63,809.73,820.14,25880000,820.14 +1979-10-31,823.81,826.88,812.88,815.70,27780000,815.70 +1979-10-30,808.62,824.66,805.80,823.81,28890000,823.81 +1979-10-29,809.30,815.53,804.86,808.62,22720000,808.62 +1979-10-26,808.46,814.68,801.62,809.30,29660000,809.30 +1979-10-25,808.36,816.38,803.07,808.46,28440000,808.46 +1979-10-24,806.83,816.64,803.24,808.36,31480000,808.36 +1979-10-23,809.13,816.38,801.96,806.83,32910000,806.83 +1979-10-22,813.91,813.91,795.99,809.13,45240000,809.13 +1979-10-19,829.18,829.18,812.46,814.68,42430000,814.68 +1979-10-18,830.72,838.74,826.71,830.12,29590000,830.12 +1979-10-17,829.52,840.53,827.39,830.72,29650000,830.72 +1979-10-16,831.06,838.51,825.68,829.52,33770000,829.52 +1979-10-15,838.99,840.36,823.89,831.06,34850000,831.06 +1979-10-12,844.62,852.90,835.67,838.99,36390000,838.99 +1979-10-11,849.32,854.69,834.98,844.62,47530000,844.62 +1979-10-10,855.03,855.03,826.54,849.32,81620000,849.32 +1979-10-09,879.35,879.35,854.10,857.59,55560000,857.59 +1979-10-08,897.61,900.26,882.59,884.04,32610000,884.04 +1979-10-05,890.10,904.86,889.59,897.61,48250000,897.61 +1979-10-04,885.15,895.82,882.25,890.10,38800000,890.10 +1979-10-03,885.32,891.98,879.35,885.15,36470000,885.15 +1979-10-02,872.95,889.16,868.77,885.32,38310000,885.32 +1979-10-01,877.73,877.73,866.55,872.95,24980000,872.95 +1979-09-28,887.46,889.93,875.00,878.58,35950000,878.58 +1979-09-27,886.35,892.32,880.55,887.46,33110000,887.46 +1979-09-26,886.18,898.63,883.02,886.35,37700000,886.35 +1979-09-25,885.84,889.68,875.00,886.18,32410000,886.18 +1979-09-24,893.94,896.59,882.85,885.84,33790000,885.84 +1979-09-21,893.69,902.13,886.52,893.94,52380000,893.94 +1979-09-20,876.45,894.62,870.99,893.69,45100000,893.69 +1979-09-19,874.15,883.36,870.39,876.45,35370000,876.45 +1979-09-18,881.31,882.00,869.45,874.15,38750000,874.15 +1979-09-17,879.10,890.02,877.39,881.31,37610000,881.31 +1979-09-14,870.73,884.56,868.60,879.10,41980000,879.10 +1979-09-13,870.90,876.37,864.93,870.73,35240000,870.73 +1979-09-12,869.71,874.91,862.97,870.90,39350000,870.90 +1979-09-11,876.88,880.80,864.93,869.71,42530000,869.71 +1979-09-10,874.15,881.06,870.14,876.88,32980000,876.88 +1979-09-07,867.32,877.39,863.32,874.15,34360000,874.15 +1979-09-06,866.13,874.74,862.63,867.32,30330000,867.32 +1979-09-05,871.08,871.08,857.85,866.13,41650000,866.13 +1979-09-04,887.63,887.63,871.16,872.61,33350000,872.61 +1979-08-31,883.70,890.10,881.14,887.63,26370000,887.63 +1979-08-30,884.90,887.63,879.52,883.70,29300000,883.70 +1979-08-29,884.64,888.23,879.52,884.90,30810000,884.90 +1979-08-28,885.41,889.68,881.40,884.64,29430000,884.64 +1979-08-27,880.20,891.81,877.47,885.41,32050000,885.41 +1979-08-24,880.38,883.87,872.18,880.20,32730000,880.20 +1979-08-23,885.84,888.40,877.22,880.38,35710000,880.38 +1979-08-22,886.01,890.02,879.44,885.84,38450000,885.84 +1979-08-21,886.52,892.32,880.63,886.01,38860000,886.01 +1979-08-20,883.36,890.27,878.07,886.52,32300000,886.52 +1979-08-17,884.04,888.31,877.05,883.36,31630000,883.36 +1979-08-16,885.84,893.60,878.75,884.04,47000000,884.04 +1979-08-15,876.71,888.23,871.50,885.84,46130000,885.84 +1979-08-14,875.26,880.72,868.69,876.71,40910000,876.71 +1979-08-13,867.15,878.58,867.15,875.26,41980000,875.26 +1979-08-10,858.28,869.54,852.30,867.06,36740000,867.06 +1979-08-09,863.14,864.51,855.12,858.28,34630000,858.28 +1979-08-08,859.81,870.14,857.42,863.14,44970000,863.14 +1979-08-07,848.55,863.99,848.04,859.81,45410000,859.81 +1979-08-06,846.16,850.77,839.08,848.55,27190000,848.55 +1979-08-03,847.95,850.51,843.32,846.16,28160000,846.16 +1979-08-02,850.34,855.03,844.28,847.95,37720000,847.95 +1979-08-01,846.42,852.30,841.38,850.34,36570000,850.34 +1979-07-31,838.74,849.06,837.80,846.42,34360000,846.42 +1979-07-30,839.76,842.49,833.45,838.74,28640000,838.74 +1979-07-27,839.76,842.66,833.28,839.76,27760000,839.76 +1979-07-26,839.51,843.17,833.96,839.76,32270000,839.76 +1979-07-25,829.78,840.78,829.18,839.51,34890000,839.51 +1979-07-24,825.51,833.28,822.61,829.78,29690000,829.78 +1979-07-23,828.07,829.69,819.97,825.51,26860000,825.51 +1979-07-20,827.30,832.08,822.70,828.07,26360000,828.07 +1979-07-19,828.58,834.04,822.78,827.30,26780000,827.30 +1979-07-18,828.50,830.97,818.00,828.58,35950000,828.58 +1979-07-17,834.90,836.35,824.66,828.50,34270000,828.50 +1979-07-16,833.53,838.57,828.92,834.90,26620000,834.90 +1979-07-13,836.86,837.88,827.47,833.53,33080000,833.53 +1979-07-12,843.86,844.62,834.22,836.86,31780000,836.86 +1979-07-11,849.40,849.40,839.16,843.86,36650000,843.86 +1979-07-10,852.99,857.00,845.73,850.34,39730000,850.34 +1979-07-09,846.16,856.57,844.28,852.99,42460000,852.99 +1979-07-06,835.75,847.27,834.22,846.16,38570000,846.16 +1979-07-05,835.58,840.02,830.97,835.75,30290000,835.75 +1979-07-03,834.04,838.99,829.27,835.58,31670000,835.58 +1979-07-02,840.61,840.61,830.46,834.04,32060000,834.04 +1979-06-29,843.04,848.12,837.20,841.98,34690000,841.98 +1979-06-28,840.52,848.84,836.97,843.04,38470000,843.04 +1979-06-27,837.66,846.15,834.20,840.52,36720000,840.52 +1979-06-26,844.25,849.19,834.46,837.66,34680000,837.66 +1979-06-25,849.10,850.83,839.66,844.25,31330000,844.25 +1979-06-22,843.64,853.06,842.34,849.10,36410000,849.10 +1979-06-21,839.83,847.80,837.40,843.64,36490000,843.64 +1979-06-20,839.40,843.56,836.11,839.83,33790000,839.83 +1979-06-19,839.40,843.99,835.85,839.40,30780000,839.40 +1979-06-18,843.30,845.20,836.28,839.40,30970000,839.40 +1979-06-15,842.34,847.11,837.40,843.30,40740000,843.30 +1979-06-14,842.17,844.07,834.29,842.34,37850000,842.34 +1979-06-13,845.29,850.31,840.00,842.17,40740000,842.17 +1979-06-12,837.58,851.61,837.14,845.29,45450000,845.29 +1979-06-11,835.15,839.66,830.73,837.58,28270000,837.58 +1979-06-08,836.97,839.48,831.25,835.15,31470000,835.15 +1979-06-07,835.50,842.78,833.16,836.97,43380000,836.97 +1979-06-06,831.34,841.04,829.26,835.50,39830000,835.50 +1979-06-05,821.90,834.46,820.25,831.34,35050000,831.34 +1979-06-04,821.21,825.36,817.83,821.90,24040000,821.90 +1979-06-01,822.33,826.14,817.74,821.21,24560000,821.21 +1979-05-31,822.16,827.01,815.14,822.33,30300000,822.33 +1979-05-30,832.47,832.47,820.17,822.16,29250000,822.16 +1979-05-29,836.28,837.75,829.26,832.55,27040000,832.55 +1979-05-25,837.66,840.26,831.86,836.28,27810000,836.28 +1979-05-24,837.40,842.69,832.38,837.66,25710000,837.66 +1979-05-23,845.37,851.26,836.19,837.40,30390000,837.40 +1979-05-22,842.43,848.41,837.23,845.37,30400000,845.37 +1979-05-21,841.91,847.80,836.28,842.43,25550000,842.43 +1979-05-18,842.95,848.32,837.40,841.91,26590000,841.91 +1979-05-17,828.48,845.03,827.44,842.95,30550000,842.95 +1979-05-16,825.88,832.47,821.03,828.48,28350000,828.48 +1979-05-15,825.02,832.12,821.55,825.88,26190000,825.88 +1979-05-14,830.56,834.03,823.02,825.02,22450000,825.02 +1979-05-11,828.92,834.11,824.76,830.56,24010000,830.56 +1979-05-10,838.62,839.92,827.53,828.92,25230000,828.92 +1979-05-09,834.89,842.26,829.09,838.62,27670000,838.62 +1979-05-08,833.42,838.10,823.63,834.89,32720000,834.89 +1979-05-07,846.07,846.07,832.03,833.42,30480000,833.42 +1979-05-04,857.59,859.23,845.89,847.54,30630000,847.54 +1979-05-03,855.51,863.22,852.74,857.59,30870000,857.59 +1979-05-02,855.51,860.27,849.97,855.51,30510000,855.51 +1979-05-01,854.90,861.40,850.83,855.51,31040000,855.51 +1979-04-30,856.64,859.49,847.28,854.90,26440000,854.90 +1979-04-27,860.79,860.79,852.39,856.64,29610000,856.64 +1979-04-26,867.46,869.02,858.71,860.97,32400000,860.97 +1979-04-25,866.86,872.31,863.22,867.46,31750000,867.46 +1979-04-24,860.10,873.35,858.54,866.86,35540000,866.86 +1979-04-23,856.98,863.31,852.39,860.10,25610000,860.10 +1979-04-20,855.25,861.57,848.93,856.98,28830000,856.98 +1979-04-19,860.27,865.73,852.91,855.25,31150000,855.25 +1979-04-18,857.93,865.90,856.38,860.27,29510000,860.27 +1979-04-17,860.45,865.64,853.95,857.93,29260000,857.93 +1979-04-16,868.42,868.42,856.81,860.45,28050000,860.45 +1979-04-12,871.71,875.78,865.21,870.50,26780000,870.50 +1979-04-11,878.72,884.62,868.68,871.71,32900000,871.71 +1979-04-10,873.70,882.54,869.80,878.72,31900000,878.72 +1979-04-09,875.69,879.07,869.46,873.70,27230000,873.70 +1979-04-06,877.60,884.01,871.88,875.69,34710000,875.69 +1979-04-05,869.80,880.02,866.68,877.60,34520000,877.60 +1979-04-04,868.33,878.38,867.12,869.80,41940000,869.80 +1979-04-03,855.25,870.67,854.21,868.33,33530000,868.33 +1979-04-02,859.93,859.93,849.27,855.25,28990000,855.25 +1979-03-30,866.77,870.58,858.11,862.18,29970000,862.18 +1979-03-29,866.25,873.53,860.19,866.77,28510000,866.77 +1979-03-28,871.36,876.99,863.83,866.25,39920000,866.25 +1979-03-27,854.82,872.49,852.91,871.36,32940000,871.36 +1979-03-26,859.75,860.01,851.52,854.82,23430000,854.82 +1979-03-23,861.31,867.20,855.08,859.75,33570000,859.75 +1979-03-22,857.76,867.46,856.03,861.31,34380000,861.31 +1979-03-21,850.31,859.23,844.68,857.76,31120000,857.76 +1979-03-20,857.59,858.89,847.45,850.31,27180000,850.31 +1979-03-19,852.82,864.95,852.65,857.59,34620000,857.59 +1979-03-16,847.02,856.72,843.21,852.82,31770000,852.82 +1979-03-15,845.37,853.17,841.39,847.02,29370000,847.02 +1979-03-14,846.93,852.56,841.74,845.37,24630000,845.37 +1979-03-13,844.68,855.60,840.78,846.93,31170000,846.93 +1979-03-12,842.86,846.33,833.85,844.68,25740000,844.68 +1979-03-09,844.85,851.44,840.00,842.86,33410000,842.86 +1979-03-08,834.29,846.41,831.69,844.85,32000000,844.85 +1979-03-07,826.58,841.04,825.28,834.29,28930000,834.29 +1979-03-06,827.36,831.34,821.55,826.58,24490000,826.58 +1979-03-05,818.00,832.55,818.00,827.36,25690000,827.36 +1979-03-02,815.84,820.69,811.50,815.75,23130000,815.75 +1979-03-01,808.82,818.17,807.26,815.84,23830000,815.84 +1979-02-28,807.00,811.76,802.23,808.82,25090000,808.82 +1979-02-27,821.12,821.12,803.53,807.00,31470000,807.00 +1979-02-26,823.28,826.40,818.35,821.12,22620000,821.12 +1979-02-23,828.57,828.83,819.99,823.28,22750000,823.28 +1979-02-22,834.55,834.98,825.10,828.57,26290000,828.57 +1979-02-21,834.55,841.56,830.91,834.55,26050000,834.55 +1979-02-20,827.01,836.19,824.15,834.55,22010000,834.55 +1979-02-16,829.09,831.69,823.54,827.01,21110000,827.01 +1979-02-15,829.78,831.25,822.68,829.09,22550000,829.09 +1979-02-14,830.21,836.88,825.71,829.78,27220000,829.78 +1979-02-13,826.14,836.19,826.14,830.21,28470000,830.21 +1979-02-12,822.23,827.62,816.61,824.84,20610000,824.84 +1979-02-09,818.87,826.49,817.05,822.23,24320000,822.23 +1979-02-08,816.01,823.02,812.89,818.87,23360000,818.87 +1979-02-07,822.85,823.46,810.81,816.01,28450000,816.01 +1979-02-06,823.98,828.48,819.21,822.85,23570000,822.85 +1979-02-05,830.65,830.65,819.13,823.98,26490000,823.98 +1979-02-02,840.87,843.38,832.47,834.63,25350000,834.63 +1979-02-01,839.22,843.99,832.55,840.87,27930000,840.87 +1979-01-31,851.78,853.52,835.67,839.22,30330000,839.22 +1979-01-30,855.77,861.83,848.75,851.78,26910000,851.78 +1979-01-29,859.75,862.96,851.61,855.77,24170000,855.77 +1979-01-26,854.64,865.04,853.26,859.75,34230000,859.75 +1979-01-25,846.41,858.11,843.90,854.64,31440000,854.64 +1979-01-24,846.85,856.81,840.61,846.41,31730000,846.41 +1979-01-23,838.53,851.35,835.67,846.85,30130000,846.85 +1979-01-22,837.49,841.74,829.95,838.53,24390000,838.53 +1979-01-19,839.14,846.67,833.94,837.49,26800000,837.49 +1979-01-18,834.20,843.73,829.35,839.14,27260000,839.14 +1979-01-17,835.59,839.05,825.80,834.20,25310000,834.20 +1979-01-16,848.06,848.06,833.25,835.59,30340000,835.59 +1979-01-15,836.28,851.00,831.69,848.67,27520000,848.67 +1979-01-12,830.04,843.38,830.04,836.28,37120000,836.28 +1979-01-11,824.93,829.44,817.31,828.05,24580000,828.05 +1979-01-10,831.43,833.68,821.47,824.93,24990000,824.93 +1979-01-09,828.14,836.80,825.80,831.43,27340000,831.43 +1979-01-08,830.73,832.12,821.38,828.14,21440000,828.14 +1979-01-05,826.14,837.23,823.89,830.73,28890000,830.73 +1979-01-04,817.39,832.55,815.92,826.14,33290000,826.14 +1979-01-03,811.42,822.68,811.42,817.39,29180000,817.39 +1979-01-02,805.01,813.06,798.51,811.42,18340000,811.42 +1978-12-29,805.96,812.20,800.50,805.01,30030000,805.01 +1978-12-28,808.56,813.06,802.75,805.96,25440000,805.96 +1978-12-27,815.32,815.32,804.57,808.56,23580000,808.56 +1978-12-26,808.47,819.13,804.66,816.01,21470000,816.01 +1978-12-22,795.05,811.16,795.05,808.47,23790000,808.47 +1978-12-21,793.66,801.63,790.11,794.79,28670000,794.79 +1978-12-20,789.85,797.90,785.69,793.66,26520000,793.66 +1978-12-19,787.51,795.30,782.92,789.85,25960000,789.85 +1978-12-18,794.87,794.87,781.01,787.51,32900000,787.51 +1978-12-15,812.54,813.76,801.80,805.35,23620000,805.35 +1978-12-14,809.86,814.97,804.40,812.54,20840000,812.54 +1978-12-13,814.97,819.21,806.48,809.86,22480000,809.86 +1978-12-12,817.65,821.90,811.50,814.97,22210000,814.97 +1978-12-11,811.85,821.29,808.73,817.65,21000000,817.65 +1978-12-08,816.09,819.56,807.95,811.85,18560000,811.85 +1978-12-07,821.90,826.49,812.98,816.09,21170000,816.09 +1978-12-06,820.51,829.87,815.23,821.90,29680000,821.90 +1978-12-05,806.83,821.81,805.01,820.51,25670000,820.51 +1978-12-04,811.50,814.80,802.23,806.83,22020000,806.83 +1978-12-01,801.98,815.06,801.98,811.50,26830000,811.50 +1978-11-30,790.11,800.94,786.64,799.03,19900000,799.03 +1978-11-29,801.89,801.89,788.63,790.11,21160000,790.11 +1978-11-28,813.84,817.91,802.67,804.14,22740000,804.14 +1978-11-27,810.12,817.22,806.31,813.84,19790000,813.84 +1978-11-24,807.00,812.98,803.36,810.12,14590000,810.12 +1978-11-22,804.05,810.98,799.46,807.00,20010000,807.00 +1978-11-21,805.61,810.55,799.98,804.05,20750000,804.05 +1978-11-20,797.73,811.24,797.47,805.61,24440000,805.61 +1978-11-17,794.18,804.49,792.19,797.73,25170000,797.73 +1978-11-16,785.60,797.38,785.26,794.18,21340000,794.18 +1978-11-15,785.26,798.08,782.66,785.60,26280000,785.60 +1978-11-14,792.01,795.22,779.11,785.26,30610000,785.26 +1978-11-13,806.83,806.83,790.71,792.01,20960000,792.01 +1978-11-10,803.97,812.02,799.55,807.09,16750000,807.09 +1978-11-09,807.61,815.75,798.86,803.97,23320000,803.97 +1978-11-08,800.07,809.60,790.97,807.61,23560000,807.61 +1978-11-07,808.13,808.13,793.92,800.07,25320000,800.07 +1978-11-06,823.11,825.88,812.63,814.88,20450000,814.88 +1978-11-03,816.96,829.00,809.51,823.11,25990000,823.11 +1978-11-02,827.79,831.34,811.07,816.96,41030000,816.96 +1978-11-01,805.53,831.69,805.53,827.79,50450000,827.79 +1978-10-31,811.85,818.26,789.67,792.45,42720000,792.45 +1978-10-30,806.05,814.36,782.05,811.85,59480000,811.85 +1978-10-27,821.12,825.54,804.49,806.05,40360000,806.05 +1978-10-26,830.21,835.41,816.61,821.12,31990000,821.12 +1978-10-25,832.55,842.86,822.85,830.21,31380000,830.21 +1978-10-24,839.66,846.93,830.35,832.55,28880000,832.55 +1978-10-23,838.01,845.89,825.80,839.66,36090000,839.66 +1978-10-20,846.41,847.37,830.47,838.01,43670000,838.01 +1978-10-19,859.67,862.87,844.42,846.41,31810000,846.41 +1978-10-18,866.34,871.19,853.60,859.67,32940000,859.67 +1978-10-17,872.49,872.49,858.11,866.34,37870000,866.34 +1978-10-16,894.84,894.84,874.39,875.17,24600000,875.17 +1978-10-13,896.74,902.20,891.55,897.09,21920000,897.09 +1978-10-12,901.42,909.39,892.84,896.74,30170000,896.74 +1978-10-11,891.63,902.29,885.14,901.42,21740000,901.42 +1978-10-10,893.19,899.26,887.56,891.63,25470000,891.63 +1978-10-09,880.02,894.92,877.86,893.19,19720000,893.19 +1978-10-06,876.47,885.14,873.79,880.02,27380000,880.02 +1978-10-05,873.96,883.32,869.63,876.47,27820000,876.47 +1978-10-04,867.90,875.52,860.10,873.96,25090000,873.96 +1978-10-03,871.36,876.30,865.56,867.90,22540000,867.90 +1978-10-02,865.82,874.48,863.13,871.36,18700000,871.36 +1978-09-29,861.31,870.84,858.89,865.82,23610000,865.82 +1978-09-28,860.19,864.43,854.90,861.31,24390000,861.31 +1978-09-27,868.16,875.43,858.45,860.19,28370000,860.19 +1978-09-26,862.35,872.66,859.67,868.16,26330000,868.16 +1978-09-25,862.44,865.47,856.20,862.35,20970000,862.35 +1978-09-22,861.14,868.16,855.42,862.44,27960000,862.44 +1978-09-21,857.16,865.38,850.92,861.14,33640000,861.14 +1978-09-20,861.57,870.50,853.95,857.16,35080000,857.16 +1978-09-19,870.15,873.87,859.06,861.57,31660000,861.57 +1978-09-18,878.55,884.88,866.86,870.15,35860000,870.15 +1978-09-15,886.17,886.17,874.05,878.55,37290000,878.55 +1978-09-14,899.60,900.21,885.48,887.04,37400000,887.04 +1978-09-13,906.44,913.29,896.83,899.60,43340000,899.60 +1978-09-12,907.74,910.26,899.43,906.44,34400000,906.44 +1978-09-11,907.74,917.24,904.80,907.74,39670000,907.74 +1978-09-08,895.62,909.91,895.62,907.74,42170000,907.74 +1978-09-07,895.79,903.15,889.55,893.71,40310000,893.71 +1978-09-06,887.91,902.03,887.91,895.79,42600000,895.79 +1978-09-05,879.33,889.73,876.91,886.61,32170000,886.61 +1978-09-01,876.82,884.88,871.36,879.33,35070000,879.33 +1978-08-31,880.72,883.66,871.36,876.82,33850000,876.82 +1978-08-30,880.20,888.17,873.61,880.72,37750000,880.72 +1978-08-29,884.88,887.13,875.95,880.20,33780000,880.20 +1978-08-28,895.53,895.70,882.62,884.88,31760000,884.88 +1978-08-25,897.35,902.55,890.59,895.53,36190000,895.53 +1978-08-24,897.00,904.80,890.94,897.35,38500000,897.35 +1978-08-23,892.41,904.28,890.94,897.00,39630000,897.00 +1978-08-22,888.95,896.05,881.15,892.41,29620000,892.41 +1978-08-21,896.83,900.38,884.88,888.95,29440000,888.95 +1978-08-18,900.12,909.22,892.93,896.83,34650000,896.83 +1978-08-17,894.66,911.21,894.66,900.12,45270000,900.12 +1978-08-16,887.13,898.30,884.88,894.58,36120000,894.58 +1978-08-15,888.17,891.37,879.16,887.13,29760000,887.13 +1978-08-14,890.85,899.17,884.27,888.17,32320000,888.17 +1978-08-11,885.48,895.70,880.20,890.85,33550000,890.85 +1978-08-10,891.63,898.39,880.20,885.48,39760000,885.48 +1978-08-09,889.21,903.67,886.61,891.63,48800000,891.63 +1978-08-08,885.05,891.55,877.51,889.21,34290000,889.21 +1978-08-07,888.43,896.22,881.41,885.05,33350000,885.05 +1978-08-04,886.87,895.79,879.33,888.43,37910000,888.43 +1978-08-03,883.49,905.15,881.84,886.87,66370000,886.87 +1978-08-02,860.71,884.88,857.50,883.49,47470000,883.49 +1978-08-01,862.27,868.16,855.34,860.71,34810000,860.71 +1978-07-31,856.29,866.34,852.56,862.27,33990000,862.27 +1978-07-28,850.57,860.27,844.77,856.29,33390000,856.29 +1978-07-27,847.19,857.16,843.04,850.57,33970000,850.57 +1978-07-26,839.57,852.47,839.05,847.19,36830000,847.19 +1978-07-25,831.60,841.65,827.18,839.57,25400000,839.57 +1978-07-24,833.42,835.07,823.46,831.60,23280000,831.60 +1978-07-21,838.62,842.00,828.83,833.42,26060000,833.42 +1978-07-20,840.70,849.45,835.24,838.62,33350000,838.62 +1978-07-19,829.00,842.52,828.05,840.70,30850000,840.70 +1978-07-18,839.05,840.00,826.75,829.00,22860000,829.00 +1978-07-17,839.83,848.58,835.59,839.05,29180000,839.05 +1978-07-14,824.76,841.22,823.02,839.83,28370000,839.83 +1978-07-13,824.93,827.88,818.09,824.76,23620000,824.76 +1978-07-12,821.29,829.18,819.39,824.93,26640000,824.93 +1978-07-11,816.79,826.32,814.62,821.29,27470000,821.29 +1978-07-10,812.46,819.56,808.13,816.79,22470000,816.79 +1978-07-07,807.17,816.18,805.79,812.46,23480000,812.46 +1978-07-06,805.79,810.72,800.94,807.17,24990000,807.17 +1978-07-05,812.62,812.62,802.15,805.79,23730000,805.79 +1978-07-03,818.95,818.95,809.71,812.89,11560000,812.89 +1978-06-30,821.64,823.20,815.06,818.95,18100000,818.95 +1978-06-29,819.91,827.88,816.79,821.64,21660000,821.64 +1978-06-28,817.31,824.24,811.59,819.91,23260000,819.91 +1978-06-27,812.28,820.95,807.95,817.31,29280000,817.31 +1978-06-26,823.02,824.15,810.03,812.28,29250000,812.28 +1978-06-23,827.70,832.55,821.12,823.02,28530000,823.02 +1978-06-22,824.93,831.77,822.16,827.70,27160000,827.70 +1978-06-21,830.04,830.82,820.34,824.93,29100000,824.93 +1978-06-20,838.62,840.44,828.40,830.04,27920000,830.04 +1978-06-19,836.97,841.04,829.87,838.62,25500000,838.62 +1978-06-16,844.25,846.85,834.98,836.97,27690000,836.97 +1978-06-15,854.21,854.21,842.17,844.25,29280000,844.25 +1978-06-14,856.98,865.82,850.57,854.56,37290000,854.56 +1978-06-13,856.72,859.75,848.15,856.98,30760000,856.98 +1978-06-12,859.23,866.94,853.34,856.72,24440000,856.72 +1978-06-09,862.09,867.20,854.30,859.23,32470000,859.23 +1978-06-08,861.92,871.88,856.46,862.09,39380000,862.09 +1978-06-07,866.51,868.94,855.51,861.92,33060000,861.92 +1978-06-06,863.83,879.33,863.22,866.51,51970000,866.51 +1978-06-05,848.41,865.47,848.41,863.83,39580000,863.83 +1978-06-02,840.70,849.79,838.62,847.54,31860000,847.54 +1978-06-01,840.61,845.81,835.24,840.70,28750000,840.70 +1978-05-31,834.20,846.85,832.99,840.61,29070000,840.61 +1978-05-30,831.69,837.32,826.40,834.20,21040000,834.20 +1978-05-26,835.41,836.37,827.79,831.69,21410000,831.69 +1978-05-25,837.92,843.04,830.99,835.41,28410000,835.41 +1978-05-24,842.86,842.86,829.87,837.92,31450000,837.92 +1978-05-23,855.42,856.12,842.17,845.29,33230000,845.29 +1978-05-22,846.85,857.76,842.34,855.42,28680000,855.42 +1978-05-19,850.92,855.16,840.87,846.85,34360000,846.85 +1978-05-18,858.37,863.57,848.67,850.92,42270000,850.92 +1978-05-17,854.30,865.64,847.89,858.37,45490000,858.37 +1978-05-16,848.15,861.05,848.15,854.30,48170000,854.30 +1978-05-15,840.70,848.84,834.72,846.76,33890000,846.76 +1978-05-12,834.20,847.54,834.11,840.70,46600000,840.70 +1978-05-11,822.16,835.33,821.12,834.20,36630000,834.20 +1978-05-10,822.07,829.61,817.22,822.16,33330000,822.16 +1978-05-09,824.58,829.44,817.65,822.07,30860000,822.07 +1978-05-08,829.09,837.14,822.77,824.58,34680000,824.58 +1978-05-05,824.41,837.32,820.86,829.09,42680000,829.09 +1978-05-04,828.83,829.09,813.84,824.41,37520000,824.41 +1978-05-03,840.18,841.82,826.58,828.83,37560000,828.83 +1978-05-02,844.33,847.54,833.42,840.18,41400000,840.18 +1978-05-01,837.32,849.45,832.81,844.33,37020000,844.33 +1978-04-28,826.92,838.79,822.16,837.32,32850000,837.32 +1978-04-27,836.37,836.37,822.77,826.92,35470000,826.92 +1978-04-26,833.59,846.15,828.48,836.97,44430000,836.97 +1978-04-25,828.83,845.81,828.83,833.59,55800000,833.59 +1978-04-24,812.80,827.36,810.38,826.06,34510000,826.06 +1978-04-21,814.54,818.95,807.17,812.80,31540000,812.80 +1978-04-20,810.38,825.10,810.38,814.54,43230000,814.54 +1978-04-19,803.27,812.72,797.56,808.04,35060000,808.04 +1978-04-18,810.12,814.97,798.15,803.27,38950000,803.27 +1978-04-17,803.45,824.24,803.45,810.12,63510000,810.12 +1978-04-14,780.41,797.73,780.41,795.13,52280000,795.13 +1978-04-13,766.29,777.29,764.47,775.21,31580000,775.21 +1978-04-12,770.18,772.96,764.30,766.29,26210000,766.29 +1978-04-11,773.65,775.38,766.20,770.18,24300000,770.18 +1978-04-10,769.58,776.16,766.11,773.65,25740000,773.65 +1978-04-07,763.95,772.00,760.83,769.58,25160000,769.58 +1978-04-06,763.08,768.10,759.62,763.95,27360000,763.95 +1978-04-05,755.37,764.47,753.21,763.08,27260000,763.08 +1978-04-04,751.04,757.19,748.79,755.37,20130000,755.37 +1978-04-03,756.67,756.67,747.05,751.04,20230000,751.04 +1978-03-31,759.62,761.78,753.12,757.36,20130000,757.36 +1978-03-30,761.78,764.03,756.15,759.62,20460000,759.62 +1978-03-29,758.84,765.42,755.80,761.78,25450000,761.78 +1978-03-28,753.21,760.22,749.91,758.84,21600000,758.84 +1978-03-27,756.50,758.14,750.52,753.21,18870000,753.21 +1978-03-23,757.54,760.91,752.69,756.50,21290000,756.50 +1978-03-22,762.82,764.38,754.50,757.54,21950000,757.54 +1978-03-21,773.82,774.69,760.91,762.82,24410000,762.82 +1978-03-20,768.88,777.81,768.88,773.82,28360000,773.82 +1978-03-17,762.82,770.79,760.31,768.71,28470000,768.71 +1978-03-16,758.58,764.03,754.42,762.82,25400000,762.82 +1978-03-15,762.56,763.60,754.24,758.58,23340000,758.58 +1978-03-14,759.96,764.99,752.86,762.56,24300000,762.56 +1978-03-13,758.58,766.63,756.41,759.96,24070000,759.96 +1978-03-10,750.09,760.91,750.09,758.58,27090000,758.58 +1978-03-09,750.87,755.46,746.45,750.00,21820000,750.00 +1978-03-08,746.79,752.86,743.76,750.87,22030000,750.87 +1978-03-07,742.72,748.70,739.78,746.79,19900000,746.79 +1978-03-06,746.97,746.97,740.12,742.72,17230000,742.72 +1978-03-03,746.45,751.30,742.72,747.31,20120000,747.31 +1978-03-02,743.33,749.13,739.78,746.45,20280000,746.45 +1978-03-01,742.12,747.92,736.75,743.33,21010000,743.33 +1978-02-28,748.35,748.61,739.17,742.12,19750000,742.12 +1978-02-27,756.24,761.26,746.62,748.35,19990000,748.35 +1978-02-24,750.95,760.40,750.78,756.24,22510000,756.24 +1978-02-23,749.05,752.51,742.98,750.95,18720000,750.95 +1978-02-22,749.31,753.55,746.71,749.05,18450000,749.05 +1978-02-21,752.69,753.90,745.24,749.31,21890000,749.31 +1978-02-17,753.29,759.96,748.18,752.69,18500000,752.69 +1978-02-16,760.14,760.14,749.65,753.29,21570000,753.29 +1978-02-15,765.16,767.07,758.32,761.69,20170000,761.69 +1978-02-14,773.91,773.91,762.65,765.16,20470000,765.16 +1978-02-13,775.99,777.37,770.44,774.43,16810000,774.43 +1978-02-10,777.81,781.01,772.61,775.99,19480000,775.99 +1978-02-09,782.66,783.00,774.43,777.81,17940000,777.81 +1978-02-08,778.85,787.42,776.68,782.66,21300000,782.66 +1978-02-07,768.62,780.23,768.62,778.85,14730000,778.85 +1978-02-06,770.96,772.96,764.21,768.62,11630000,768.62 +1978-02-03,775.38,776.59,766.98,770.96,19400000,770.96 +1978-02-02,774.34,781.88,770.88,775.38,23050000,775.38 +1978-02-01,769.92,777.89,764.81,774.34,22240000,774.34 +1978-01-31,772.44,778.59,762.91,769.92,19870000,769.92 +1978-01-30,764.12,774.95,761.09,772.44,17400000,772.44 +1978-01-27,763.34,768.54,759.44,764.12,17600000,764.12 +1978-01-26,772.44,775.81,761.00,763.34,19600000,763.34 +1978-01-25,771.57,777.72,768.02,772.44,18690000,772.44 +1978-01-24,770.70,776.42,765.68,771.57,18690000,771.57 +1978-01-23,776.94,777.98,766.55,770.70,19380000,770.70 +1978-01-20,778.67,780.15,772.52,776.94,7580000,776.94 +1978-01-19,786.30,790.02,777.03,778.67,21500000,778.67 +1978-01-18,779.02,788.20,776.25,786.30,21390000,786.30 +1978-01-17,771.74,781.26,770.62,779.02,19360000,779.02 +1978-01-16,775.73,777.81,767.41,771.74,18760000,771.74 +1978-01-13,778.15,784.04,773.65,775.73,18010000,775.73 +1978-01-12,775.90,785.00,772.78,778.15,22730000,778.15 +1978-01-11,781.53,785.95,771.74,775.90,22880000,775.90 +1978-01-10,784.56,790.89,777.55,781.53,25180000,781.53 +1978-01-09,790.89,790.89,778.41,784.56,27990000,784.56 +1978-01-06,803.36,803.36,788.29,793.49,26150000,793.49 +1978-01-05,813.58,822.77,802.58,804.92,23570000,804.92 +1978-01-04,817.48,817.48,804.92,813.58,24090000,813.58 +1978-01-03,830.47,830.47,815.06,817.74,17720000,817.74 +1977-12-30,830.39,835.15,825.80,831.17,23560000,831.17 +1977-12-29,829.70,834.37,823.63,830.39,23610000,830.39 +1977-12-28,829.70,833.33,822.77,829.70,19630000,829.70 +1977-12-27,829.87,833.77,823.46,829.70,16750000,829.70 +1977-12-23,822.16,832.64,822.16,829.87,20080000,829.87 +1977-12-22,815.32,825.62,815.32,821.81,28100000,821.81 +1977-12-21,806.22,817.83,805.35,813.93,24510000,813.93 +1977-12-20,807.95,810.46,800.42,806.22,23250000,806.22 +1977-12-19,815.32,817.31,806.13,807.95,21150000,807.95 +1977-12-16,817.91,821.55,812.37,815.32,20270000,815.32 +1977-12-15,822.68,825.10,815.23,817.91,21610000,817.91 +1977-12-14,815.23,823.63,811.42,822.68,22110000,822.68 +1977-12-13,815.75,818.61,809.94,815.23,19190000,815.23 +1977-12-12,815.23,820.51,811.76,815.75,18180000,815.75 +1977-12-09,806.91,819.04,806.65,815.23,19210000,815.23 +1977-12-08,807.43,815.49,804.14,806.91,20400000,806.91 +1977-12-07,806.91,812.54,802.06,807.43,21050000,807.43 +1977-12-06,819.91,819.91,804.23,806.91,23770000,806.91 +1977-12-05,823.98,826.84,818.78,821.03,19160000,821.03 +1977-12-02,825.71,830.56,819.30,823.98,21160000,823.98 +1977-12-01,829.70,832.81,823.02,825.71,24220000,825.71 +1977-11-30,827.27,831.77,821.29,829.70,22670000,829.70 +1977-11-29,839.48,839.48,824.24,827.27,22950000,827.27 +1977-11-28,844.42,846.67,836.71,839.57,21570000,839.57 +1977-11-25,843.30,847.63,838.70,844.42,17910000,844.42 +1977-11-23,842.52,847.11,836.28,843.30,29150000,843.30 +1977-11-22,836.11,846.15,834.63,842.52,28600000,842.52 +1977-11-21,835.76,840.18,829.18,836.11,20110000,836.11 +1977-11-18,831.86,840.26,829.18,835.76,23930000,835.76 +1977-11-17,837.06,838.88,827.53,831.86,25110000,831.86 +1977-11-16,842.78,846.24,834.03,837.06,24950000,837.06 +1977-11-15,838.36,846.85,831.86,842.78,27740000,842.78 +1977-11-14,845.89,849.01,834.46,838.36,23220000,838.36 +1977-11-11,837.66,850.05,837.66,845.89,35260000,845.89 +1977-11-10,818.43,836.11,814.10,832.55,31980000,832.55 +1977-11-09,816.27,821.29,810.20,818.43,21330000,818.43 +1977-11-08,816.44,821.29,810.81,816.27,19210000,816.27 +1977-11-07,809.94,820.17,808.56,816.44,21270000,816.44 +1977-11-04,802.67,814.02,802.41,809.94,21700000,809.94 +1977-11-03,800.85,805.87,794.53,802.67,18090000,802.67 +1977-11-02,806.91,809.51,797.73,800.85,20760000,800.85 +1977-11-01,816.01,816.01,804.40,806.91,17170000,806.91 +1977-10-31,822.68,824.93,813.93,818.35,17070000,818.35 +1977-10-28,818.61,826.49,814.54,822.68,18050000,822.68 +1977-10-27,813.41,825.71,809.42,818.61,21920000,818.61 +1977-10-26,801.54,816.01,795.56,813.41,24860000,813.41 +1977-10-25,802.32,805.35,792.79,801.54,23590000,801.54 +1977-10-24,808.30,810.90,800.85,802.32,19210000,802.32 +1977-10-21,814.80,815.75,804.57,808.30,20230000,808.30 +1977-10-20,812.20,819.65,804.66,814.80,20520000,814.80 +1977-10-19,820.51,823.20,809.08,812.20,22030000,812.20 +1977-10-18,820.34,826.84,815.84,820.51,20130000,820.51 +1977-10-17,821.64,824.93,813.76,820.34,17340000,820.34 +1977-10-14,818.17,826.66,814.02,821.64,20410000,821.64 +1977-10-13,823.98,824.67,811.42,818.17,23870000,818.17 +1977-10-12,830.65,830.65,818.60,823.98,22440000,823.98 +1977-10-11,840.26,841.39,830.47,832.29,17870000,832.29 +1977-10-10,840.35,844.33,834.46,840.26,10580000,840.26 +1977-10-07,842.08,845.98,836.11,840.35,16250000,840.35 +1977-10-06,837.32,845.20,834.98,842.08,18490000,842.08 +1977-10-05,842.00,843.73,832.38,837.32,18300000,837.32 +1977-10-04,851.96,855.57,839.57,842.00,20850000,842.00 +1977-10-03,847.11,853.60,842.08,851.96,19460000,851.96 +1977-09-30,840.09,848.84,839.14,847.11,21170000,847.11 +1977-09-29,834.72,843.56,832.55,840.09,21160000,840.09 +1977-09-28,835.85,841.56,830.30,834.72,17960000,834.72 +1977-09-27,841.65,845.55,831.95,835.85,19080000,835.85 +1977-09-26,839.14,844.16,831.51,841.65,18230000,841.65 +1977-09-23,839.41,844.77,834.81,839.14,18760000,839.14 +1977-09-22,840.96,844.25,833.16,839.41,16660000,839.41 +1977-09-21,851.78,856.29,838.79,840.96,22200000,840.96 +1977-09-20,851.52,855.16,846.67,851.78,19030000,851.78 +1977-09-19,856.81,857.42,848.23,851.52,16890000,851.52 +1977-09-16,860.79,865.38,853.52,856.81,18340000,856.81 +1977-09-15,858.71,866.16,855.51,860.79,18230000,860.79 +1977-09-14,854.56,861.49,850.49,858.71,17330000,858.71 +1977-09-13,854.38,859.58,848.49,854.56,14900000,854.56 +1977-09-12,857.04,860.71,847.71,854.38,18700000,854.38 +1977-09-09,865.47,865.47,853.17,857.04,18100000,857.04 +1977-09-08,876.39,879.76,866.25,869.16,18290000,869.16 +1977-09-07,873.27,878.98,869.80,876.39,18070000,876.39 +1977-09-06,872.31,877.43,866.77,873.27,16130000,873.27 +1977-09-02,864.86,873.79,862.44,872.31,15620000,872.31 +1977-09-01,861.49,869.80,858.71,864.86,18820000,864.86 +1977-08-31,858.89,862.87,850.92,861.49,19080000,861.49 +1977-08-30,864.09,867.55,855.51,858.89,18220000,858.89 +1977-08-29,855.77,866.77,855.77,864.09,15280000,864.09 +1977-08-26,854.12,857.76,844.42,855.42,18480000,855.42 +1977-08-25,862.87,863.13,851.18,854.12,19400000,854.12 +1977-08-24,865.56,869.63,858.80,862.87,18170000,862.87 +1977-08-23,867.29,875.61,862.70,865.56,20290000,865.56 +1977-08-22,863.48,871.45,856.55,867.29,17870000,867.29 +1977-08-19,864.26,870.06,856.64,863.48,20800000,863.48 +1977-08-18,864.69,873.96,860.36,864.26,21040000,864.26 +1977-08-17,869.28,872.75,859.58,864.69,20920000,864.69 +1977-08-16,874.13,877.17,865.99,869.28,19340000,869.28 +1977-08-15,871.10,877.60,864.09,874.13,15750000,874.13 +1977-08-12,877.43,879.24,866.86,871.10,16870000,871.10 +1977-08-11,887.04,891.46,876.04,877.43,21740000,877.43 +1977-08-10,879.42,887.65,875.69,887.04,18280000,887.04 +1977-08-09,879.42,884.53,873.70,879.42,19900000,879.42 +1977-08-08,888.17,888.17,877.43,879.42,15870000,879.42 +1977-08-05,888.17,894.84,884.36,888.69,19940000,888.69 +1977-08-04,886.00,891.89,880.11,888.17,18870000,888.17 +1977-08-03,887.39,888.95,877.25,886.00,21710000,886.00 +1977-08-02,891.81,893.97,884.27,887.39,17910000,887.39 +1977-08-01,890.07,900.03,886.17,891.81,17920000,891.81 +1977-07-29,889.99,892.24,878.81,890.07,20350000,890.07 +1977-07-28,888.43,893.71,879.76,889.99,26340000,889.99 +1977-07-27,907.31,907.31,884.27,888.43,26440000,888.43 +1977-07-26,914.24,914.33,902.98,908.18,21390000,908.18 +1977-07-25,923.42,923.94,911.73,914.24,20430000,914.24 +1977-07-22,921.78,927.84,916.75,923.42,23110000,923.42 +1977-07-21,920.48,926.20,914.67,921.78,26880000,921.78 +1977-07-20,919.27,927.75,915.45,920.48,29380000,920.48 +1977-07-19,910.60,921.86,908.26,919.27,31930000,919.27 +1977-07-18,905.95,915.02,901.25,910.60,29890000,910.60 +1977-07-15,902.99,910.62,899.68,905.95,29120000,905.95 +1977-07-13,903.41,906.80,896.29,902.99,23160000,902.99 +1977-07-12,905.53,906.26,898.58,903.41,22470000,903.41 +1977-07-11,907.99,910.96,900.27,905.53,19790000,905.53 +1977-07-08,909.51,914.94,904.17,907.99,23820000,907.99 +1977-07-07,907.73,913.42,903.49,909.51,21740000,909.51 +1977-07-06,913.59,915.37,904.94,907.73,21230000,907.73 +1977-07-05,912.65,919.01,907.90,913.59,16850000,913.59 +1977-07-01,916.30,918.25,907.48,912.65,18160000,912.65 +1977-06-30,913.33,920.88,909.09,916.30,19410000,916.30 +1977-06-29,915.62,917.73,906.63,913.33,19000000,913.33 +1977-06-28,924.10,926.98,914.01,915.62,22670000,915.62 +1977-06-27,929.70,931.73,920.12,924.10,19870000,924.10 +1977-06-24,925.37,933.77,924.02,929.70,27490000,929.70 +1977-06-23,926.31,930.46,922.45,925.37,24330000,925.37 +1977-06-22,928.60,930.89,921.13,926.31,25070000,926.31 +1977-06-21,924.27,934.36,923.51,928.60,29730000,928.60 +1977-06-20,920.45,926.98,916.89,924.27,22950000,924.27 +1977-06-17,920.45,924.78,915.79,920.45,21960000,920.45 +1977-06-16,917.57,924.53,910.53,920.45,24310000,920.45 +1977-06-15,922.57,925.03,914.43,917.57,22640000,917.57 +1977-06-14,912.40,924.27,912.14,922.57,25390000,922.57 +1977-06-13,910.79,917.15,906.21,912.40,20250000,912.40 +1977-06-10,909.85,915.20,904.77,910.79,20630000,910.79 +1977-06-09,912.99,914.69,904.34,909.85,19940000,909.85 +1977-06-08,908.67,918.25,906.21,912.99,22200000,912.99 +1977-06-07,903.04,910.79,896.79,908.67,21110000,908.67 +1977-06-06,912.23,916.13,901.03,903.04,18930000,903.04 +1977-06-03,903.15,915.88,901.03,912.23,20330000,912.23 +1977-06-02,906.55,912.91,899.42,903.15,18620000,903.15 +1977-06-01,898.66,909.35,896.46,906.55,18320000,906.55 +1977-05-31,898.83,904.77,892.55,898.66,17800000,898.66 +1977-05-27,908.07,909.60,896.29,898.83,15730000,898.83 +1977-05-26,903.24,910.45,899.17,908.07,18620000,908.07 +1977-05-25,912.40,916.72,901.46,903.24,20710000,903.24 +1977-05-24,917.06,917.83,906.55,912.40,20050000,912.40 +1977-05-23,928.17,928.17,915.03,917.06,18290000,917.06 +1977-05-20,936.48,937.16,925.71,930.46,18950000,930.46 +1977-05-19,941.91,945.13,933.34,936.48,21280000,936.48 +1977-05-18,936.48,947.34,935.46,941.91,27800000,941.91 +1977-05-17,932.50,939.45,925.20,936.48,22290000,936.48 +1977-05-16,928.34,938.43,926.73,932.50,21170000,932.50 +1977-05-13,925.54,932.58,923.17,928.34,19780000,928.34 +1977-05-12,926.90,930.04,917.74,925.54,21980000,925.54 +1977-05-11,936.14,937.84,923.85,926.90,18980000,926.90 +1977-05-10,933.09,941.40,930.55,936.14,21090000,936.14 +1977-05-09,936.74,938.52,928.77,933.09,15230000,933.09 +1977-05-06,943.27,943.27,932.24,936.74,19370000,936.74 +1977-05-05,940.72,949.46,934.53,943.44,23450000,943.44 +1977-05-04,934.19,944.96,929.44,940.72,23330000,940.72 +1977-05-03,931.22,939.70,929.27,934.19,21950000,934.19 +1977-05-02,926.90,934.02,923.00,931.22,17970000,931.22 +1977-04-29,927.32,931.99,922.32,926.90,18330000,926.90 +1977-04-28,923.76,931.14,919.78,927.32,18370000,927.32 +1977-04-27,915.62,928.34,913.08,923.76,20590000,923.76 +1977-04-26,914.60,922.74,910.36,915.62,20040000,915.62 +1977-04-25,924.02,924.02,910.45,914.60,20440000,914.60 +1977-04-22,935.13,935.13,923.59,927.07,20700000,927.07 +1977-04-21,942.59,949.37,933.43,935.80,22740000,935.80 +1977-04-20,938.77,948.69,933.43,942.59,25090000,942.59 +1977-04-19,942.76,944.28,934.79,938.77,19510000,938.77 +1977-04-18,947.76,951.32,939.28,942.76,17830000,942.76 +1977-04-15,947.00,953.10,941.74,947.76,20230000,947.76 +1977-04-14,943.69,956.07,943.69,947.00,30490000,947.00 +1977-04-13,937.16,942.76,927.49,938.18,21800000,938.18 +1977-04-12,924.69,940.98,924.69,937.16,23760000,937.16 +1977-04-11,918.88,928.85,916.47,924.10,17650000,924.10 +1977-04-07,914.73,921.21,910.57,918.88,17260000,918.88 +1977-04-06,916.14,922.12,910.07,914.73,16600000,914.73 +1977-04-05,915.56,920.88,909.74,916.14,18330000,916.14 +1977-04-04,927.36,929.36,913.48,915.56,16250000,915.56 +1977-04-01,919.55,930.27,919.55,927.36,17050000,927.36 +1977-03-31,921.21,926.86,914.15,919.13,16510000,919.13 +1977-03-30,932.01,935.84,917.64,921.21,18810000,921.21 +1977-03-29,926.11,936.67,925.78,932.01,17030000,932.01 +1977-03-28,928.86,931.27,920.71,926.11,16710000,926.11 +1977-03-25,935.67,937.50,925.12,928.86,16550000,928.86 +1977-03-24,942.32,944.48,931.93,935.67,19650000,935.67 +1977-03-23,950.96,954.37,940.16,942.32,19360000,942.32 +1977-03-22,953.54,955.95,944.65,950.96,18660000,950.96 +1977-03-21,961.02,961.44,949.47,953.54,18040000,953.54 +1977-03-18,964.84,967.50,956.95,961.02,19840000,961.02 +1977-03-17,968.00,970.08,958.78,964.84,20700000,964.84 +1977-03-16,965.01,971.58,961.44,968.00,22140000,968.00 +1977-03-15,958.36,970.33,958.19,965.01,23940000,965.01 +1977-03-14,947.72,960.19,944.73,958.36,19290000,958.36 +1977-03-11,946.73,952.96,942.90,947.72,18230000,947.72 +1977-03-10,942.90,948.89,938.00,946.73,18620000,946.73 +1977-03-09,950.96,950.96,938.66,942.90,19680000,942.90 +1977-03-08,955.12,960.36,949.47,952.04,19520000,952.04 +1977-03-07,953.46,958.61,949.22,955.12,17410000,955.12 +1977-03-04,948.64,956.28,947.39,953.46,18950000,953.46 +1977-03-03,942.07,951.88,940.16,948.64,17560000,948.64 +1977-03-02,944.73,949.97,938.50,942.07,18010000,942.07 +1977-03-01,936.42,948.47,936.25,944.73,19480000,944.73 +1977-02-28,933.43,938.50,928.61,936.42,16220000,936.42 +1977-02-25,932.60,938.75,926.20,933.43,17610000,933.43 +1977-02-24,938.25,940.24,927.69,932.60,19730000,932.60 +1977-02-23,939.91,943.82,934.59,938.25,18240000,938.25 +1977-02-22,940.24,946.06,933.84,939.91,17730000,939.91 +1977-02-18,943.73,944.73,935.09,940.24,18040000,940.24 +1977-02-17,948.30,950.71,939.58,943.73,19040000,943.73 +1977-02-16,944.32,957.28,941.24,948.30,23430000,948.30 +1977-02-15,938.33,948.39,937.08,944.32,21620000,944.32 +1977-02-14,931.52,939.91,926.11,938.33,19230000,938.33 +1977-02-11,937.92,940.91,926.03,931.52,20510000,931.52 +1977-02-10,933.84,943.57,930.60,937.92,22340000,937.92 +1977-02-09,942.24,944.98,928.27,933.84,23640000,933.84 +1977-02-08,946.31,952.79,938.66,942.24,24040000,942.24 +1977-02-07,947.89,954.70,941.82,946.31,20700000,946.31 +1977-02-04,947.14,955.70,941.90,947.89,23130000,947.89 +1977-02-03,952.79,954.95,941.99,947.14,23790000,947.14 +1977-02-02,958.36,963.76,949.97,952.79,25700000,952.79 +1977-02-01,954.37,962.02,950.05,958.36,23700000,958.36 +1977-01-31,957.53,958.03,944.90,954.37,22920000,954.37 +1977-01-28,954.54,961.85,949.38,957.53,22700000,957.53 +1977-01-27,958.53,963.93,950.47,954.54,24360000,954.54 +1977-01-26,965.92,968.33,953.13,958.53,27840000,958.53 +1977-01-25,963.60,973.57,959.36,965.92,26340000,965.92 +1977-01-24,962.43,968.83,956.87,963.60,22890000,963.60 +1977-01-21,959.03,967.42,953.87,962.43,23930000,962.43 +1977-01-20,968.67,973.82,954.70,959.03,26520000,959.03 +1977-01-19,962.43,972.16,959.69,968.67,27120000,968.67 +1977-01-18,967.25,970.08,958.53,962.43,24380000,962.43 +1977-01-17,972.16,972.99,961.10,967.25,21060000,967.25 +1977-01-14,976.15,979.22,967.00,972.16,24480000,972.16 +1977-01-13,968.25,979.55,966.51,976.15,24780000,976.15 +1977-01-12,976.23,976.23,962.52,968.25,22670000,968.25 +1977-01-11,986.87,991.11,972.16,976.65,24100000,976.65 +1977-01-10,983.13,990.69,979.31,986.87,20860000,986.87 +1977-01-07,979.89,987.03,975.40,983.13,21720000,983.13 +1977-01-06,978.06,989.03,974.07,979.89,23920000,979.89 +1977-01-05,987.87,990.69,974.07,978.06,25010000,978.06 +1977-01-04,999.75,1001.99,985.70,987.87,22740000,987.87 +1977-01-03,1004.65,1007.81,994.18,999.75,21280000,999.75 +1976-12-31,999.09,1006.32,997.34,1004.65,19170000,1004.65 +1976-12-30,994.93,1005.49,991.69,999.09,23700000,999.09 +1976-12-29,1000.08,1003.49,990.94,994.93,21910000,994.93 +1976-12-28,996.09,1006.82,992.77,1000.08,25790000,1000.08 +1976-12-27,985.62,997.92,982.71,996.09,20130000,996.09 +1976-12-23,984.54,991.61,978.47,985.62,24560000,985.62 +1976-12-22,978.39,993.35,977.73,984.54,26970000,984.54 +1976-12-21,972.41,981.05,966.17,978.39,24390000,978.39 +1976-12-20,979.06,981.96,969.00,972.41,20690000,972.41 +1976-12-17,981.30,990.53,976.23,979.06,23870000,979.06 +1976-12-16,983.79,988.20,973.90,981.30,23920000,981.30 +1976-12-15,980.63,989.11,974.82,983.79,28300000,983.79 +1976-12-14,974.24,983.13,966.92,980.63,25130000,980.63 +1976-12-13,973.15,980.14,967.50,974.24,24830000,974.24 +1976-12-10,970.74,978.31,965.59,973.15,25960000,973.15 +1976-12-09,963.26,976.31,962.35,970.74,31800000,970.74 +1976-12-08,960.69,966.01,953.54,963.26,24560000,963.26 +1976-12-07,961.77,968.67,957.03,960.69,26140000,960.69 +1976-12-06,950.55,966.59,948.72,961.77,24830000,961.77 +1976-12-03,946.64,956.28,943.07,950.55,22640000,950.55 +1976-12-02,949.38,956.62,944.07,946.64,23300000,946.64 +1976-12-01,947.22,954.12,942.24,949.38,21960000,949.38 +1976-11-30,950.05,952.13,941.41,947.22,17030000,947.22 +1976-11-29,956.62,959.86,947.14,950.05,18750000,950.05 +1976-11-26,950.96,959.28,947.97,956.62,15000000,956.62 +1976-11-24,949.30,956.20,941.74,950.96,20420000,950.96 +1976-11-23,955.87,958.94,945.98,949.30,19090000,949.30 +1976-11-22,948.80,959.94,945.81,955.87,20930000,955.87 +1976-11-19,950.13,957.86,942.49,948.80,24550000,948.80 +1976-11-18,938.08,953.46,935.51,950.13,24000000,950.13 +1976-11-17,935.34,943.90,930.44,938.08,19900000,938.08 +1976-11-16,935.42,946.73,931.77,935.34,21020000,935.34 +1976-11-15,927.69,937.25,921.63,935.42,16710000,935.42 +1976-11-12,931.43,933.93,920.21,927.69,15550000,927.69 +1976-11-11,924.04,932.85,917.97,931.43,13230000,931.43 +1976-11-10,930.77,936.92,917.89,924.04,18890000,924.04 +1976-11-09,933.68,939.33,924.45,930.77,19210000,930.77 +1976-11-08,941.41,941.41,928.94,933.68,16520000,933.68 +1976-11-05,960.44,962.93,940.24,943.07,20780000,943.07 +1976-11-04,956.53,967.75,951.30,960.44,21700000,960.44 +1976-11-03,960.44,960.44,944.73,956.53,19350000,956.53 +1976-11-01,964.93,971.99,957.61,966.09,18390000,966.09 +1976-10-29,952.63,966.26,947.47,964.93,17030000,964.93 +1976-10-28,956.12,962.35,948.72,952.63,16920000,952.63 +1976-10-27,948.14,959.77,944.56,956.12,15790000,956.12 +1976-10-26,938.00,951.63,937.17,948.14,15490000,948.14 +1976-10-25,938.75,942.65,932.51,938.00,13310000,938.00 +1976-10-22,944.90,946.56,932.26,938.75,17870000,938.75 +1976-10-21,954.87,960.77,942.74,944.90,17980000,944.90 +1976-10-20,949.97,958.86,944.40,954.87,15860000,954.87 +1976-10-19,946.56,953.87,938.66,949.97,16200000,949.97 +1976-10-18,937.00,950.13,936.59,946.56,15710000,946.56 +1976-10-15,935.92,942.74,928.27,937.00,16210000,937.00 +1976-10-14,947.56,947.56,931.02,935.92,18610000,935.92 +1976-10-13,932.35,950.38,932.01,948.30,21690000,948.30 +1976-10-12,940.82,946.31,928.27,932.35,18210000,932.35 +1976-10-11,948.88,948.88,934.26,940.82,14620000,940.82 +1976-10-08,965.09,969.25,949.72,952.38,16740000,952.38 +1976-10-07,959.69,968.50,951.71,965.09,19830000,965.09 +1976-10-06,966.76,968.33,949.88,959.69,20870000,959.69 +1976-10-05,977.98,979.97,960.69,966.76,19200000,966.76 +1976-10-04,979.89,983.21,971.83,977.98,12630000,977.98 +1976-10-01,990.19,995.60,974.40,979.89,20620000,979.89 +1976-09-30,991.19,995.84,983.79,990.19,14700000,990.19 +1976-09-29,994.93,1001.25,985.54,991.19,18090000,991.19 +1976-09-28,1013.13,1014.38,992.11,994.93,20440000,994.93 +1976-09-27,1009.31,1016.54,1004.40,1013.13,17430000,1013.13 +1976-09-24,1010.80,1014.13,1001.75,1009.31,17400000,1009.31 +1976-09-23,1014.05,1019.78,1005.32,1010.80,24210000,1010.80 +1976-09-22,1014.79,1026.26,1009.56,1014.05,32970000,1014.05 +1976-09-21,994.51,1016.54,993.60,1014.79,30300000,1014.79 +1976-09-20,995.10,1002.74,990.69,994.51,21730000,994.51 +1976-09-17,987.95,1000.50,986.62,995.10,28270000,995.10 +1976-09-16,979.31,989.44,974.82,987.95,19620000,987.95 +1976-09-15,978.64,983.96,971.24,979.31,17570000,979.31 +1976-09-14,983.29,983.96,973.57,978.64,15550000,978.64 +1976-09-13,988.36,994.02,980.30,983.29,16100000,983.29 +1976-09-10,986.87,991.86,981.05,988.36,16930000,988.36 +1976-09-09,992.94,993.43,983.05,986.87,16540000,986.87 +1976-09-08,996.59,1001.41,987.87,992.94,19750000,992.94 +1976-09-07,989.11,998.67,985.12,996.59,16310000,996.59 +1976-09-03,984.79,991.19,979.22,989.11,13280000,989.11 +1976-09-02,985.95,993.10,980.14,984.79,18920000,984.79 +1976-09-01,973.74,987.95,971.24,985.95,18640000,985.95 +1976-08-31,968.92,979.97,966.84,973.74,15480000,973.74 +1976-08-30,963.93,972.91,961.44,968.92,11140000,968.92 +1976-08-27,960.44,967.50,954.12,963.93,12120000,963.93 +1976-08-26,970.83,975.90,958.28,960.44,15270000,960.44 +1976-08-25,962.93,973.82,956.37,970.83,17400000,970.83 +1976-08-24,971.49,977.14,960.77,962.93,16740000,962.93 +1976-08-23,974.07,975.73,962.18,971.49,15450000,971.49 +1976-08-20,982.63,982.63,970.99,974.07,14920000,974.07 +1976-08-19,995.01,995.84,979.31,983.88,17230000,983.88 +1976-08-18,999.34,1004.74,992.60,995.01,17150000,995.01 +1976-08-17,992.77,1002.41,990.44,999.34,18500000,999.34 +1976-08-16,990.19,997.51,986.95,992.77,16210000,992.77 +1976-08-13,987.12,994.35,983.05,990.19,13930000,990.19 +1976-08-12,986.79,992.10,979.22,987.12,15560000,987.12 +1976-08-11,993.43,1000.00,984.46,986.79,18710000,986.79 +1976-08-10,983.46,995.68,981.13,993.43,16690000,993.43 +1976-08-09,986.00,987.53,979.06,983.46,11700000,983.46 +1976-08-06,986.68,989.90,978.70,986.00,13930000,986.00 +1976-08-05,992.28,995.76,983.28,986.68,15530000,986.68 +1976-08-04,990.33,998.73,986.42,992.28,20650000,992.28 +1976-08-03,982.26,992.96,978.70,990.33,18500000,990.33 +1976-08-02,984.64,988.97,977.43,982.26,13870000,982.26 +1976-07-30,979.29,987.95,974.71,984.64,14830000,984.64 +1976-07-29,981.33,985.74,974.20,979.29,13330000,979.29 +1976-07-28,984.13,984.89,974.71,981.33,16000000,981.33 +1976-07-27,991.51,994.99,981.92,984.13,15580000,984.13 +1976-07-26,990.91,997.20,985.91,991.51,13530000,991.51 +1976-07-23,991.08,997.71,985.43,990.91,15870000,990.91 +1976-07-22,989.44,995.99,982.97,991.08,15600000,991.08 +1976-07-21,988.29,996.77,984.20,989.44,18350000,989.44 +1976-07-20,990.83,994.43,983.06,988.29,18810000,988.29 +1976-07-19,993.21,999.10,986.08,990.83,18200000,990.83 +1976-07-16,997.30,997.30,985.43,993.21,20450000,993.21 +1976-07-15,1005.16,1006.79,993.21,997.46,20400000,997.46 +1976-07-14,1006.06,1012.20,997.95,1005.16,23840000,1005.16 +1976-07-13,1011.21,1017.93,1001.64,1006.06,27550000,1006.06 +1976-07-12,1003.11,1015.72,998.94,1011.21,23750000,1011.21 +1976-07-09,991.98,1007.53,989.60,1003.11,23500000,1003.11 +1976-07-08,991.16,998.85,987.15,991.98,21710000,991.98 +1976-07-07,991.81,994.43,982.56,991.16,18470000,991.16 +1976-07-06,999.84,1003.85,989.19,991.81,16130000,991.81 +1976-07-02,994.84,1003.85,991.00,999.84,16730000,999.84 +1976-07-01,1002.78,1009.00,990.26,994.84,21130000,994.84 +1976-06-30,1000.65,1011.79,995.99,1002.78,23830000,1002.78 +1976-06-29,997.38,1004.50,992.47,1000.65,19620000,1000.65 +1976-06-28,999.84,1006.30,993.45,997.38,17490000,997.38 +1976-06-25,1003.77,1008.35,995.58,999.84,17830000,999.84 +1976-06-24,996.56,1009.09,994.52,1003.77,19850000,1003.77 +1976-06-23,997.63,1002.05,987.23,996.56,17530000,996.56 +1976-06-22,1007.45,1011.87,995.74,997.63,21150000,997.63 +1976-06-21,1001.88,1010.97,997.54,1007.45,18930000,1007.45 +1976-06-18,1003.19,1012.93,996.97,1001.88,25720000,1001.88 +1976-06-17,988.62,1007.86,988.38,1003.19,27810000,1003.19 +1976-06-16,985.92,995.66,979.94,988.62,21620000,988.62 +1976-06-15,991.24,994.19,981.42,985.92,18440000,985.92 +1976-06-14,979.78,995.17,979.78,991.24,21250000,991.24 +1976-06-11,964.39,980.52,963.98,978.80,19470000,978.80 +1976-06-10,958.09,967.99,956.12,964.39,16100000,964.39 +1976-06-09,959.97,965.54,954.98,958.09,14560000,958.09 +1976-06-08,958.09,968.48,956.45,959.97,16660000,959.97 +1976-06-07,963.90,965.62,951.70,958.09,14510000,958.09 +1976-06-04,973.80,973.97,961.28,963.90,15960000,963.90 +1976-06-03,975.93,983.14,971.02,973.80,18900000,973.80 +1976-06-02,973.13,979.37,968.57,975.93,16120000,975.93 +1976-06-01,975.23,981.26,969.27,973.13,13880000,973.13 +1976-05-28,965.57,978.60,962.92,975.23,16860000,975.23 +1976-05-27,968.63,970.48,955.84,965.57,15310000,965.57 +1976-05-26,971.69,976.43,963.48,968.63,16750000,968.63 +1976-05-25,971.53,976.99,961.95,971.69,18770000,971.69 +1976-05-24,988.82,988.82,969.03,971.53,16560000,971.53 +1976-05-21,997.27,999.03,986.41,990.75,18730000,990.75 +1976-05-20,988.90,1001.05,985.76,997.27,22560000,997.27 +1976-05-19,989.45,996.14,983.99,988.90,18450000,988.90 +1976-05-18,987.64,994.80,984.41,989.45,17410000,989.45 +1976-05-17,992.60,993.47,982.05,987.64,14720000,987.64 +1976-05-14,1000.24,1000.24,988.74,992.60,16800000,992.60 +1976-05-13,1005.67,1008.66,997.48,1001.10,16730000,1001.10 +1976-05-12,1006.61,1012.52,999.53,1005.67,18510000,1005.67 +1976-05-11,1007.48,1015.82,1001.42,1006.61,23590000,1006.61 +1976-05-10,996.22,1010.39,994.10,1007.48,22760000,1007.48 +1976-05-07,989.53,999.53,984.97,996.22,17810000,996.22 +1976-05-06,986.46,995.43,981.50,989.53,16200000,989.53 +1976-05-05,993.70,997.09,982.53,986.46,14970000,986.46 +1976-05-04,990.32,998.03,982.21,993.70,17240000,993.70 +1976-05-03,995.83,995.83,981.74,990.32,15180000,990.32 +1976-04-30,1002.13,1007.01,993.31,996.85,14530000,996.85 +1976-04-29,1000.70,1010.39,996.62,1002.13,17740000,1002.13 +1976-04-28,995.51,1002.36,987.09,1000.70,15790000,1000.70 +1976-04-27,1002.76,1008.42,993.15,995.51,17760000,995.51 +1976-04-26,1000.71,1005.20,991.03,1002.76,15520000,1002.76 +1976-04-23,1007.71,1008.89,995.36,1000.71,17000000,1000.71 +1976-04-22,1011.02,1017.71,1003.70,1007.71,20220000,1007.71 +1976-04-21,1003.46,1016.85,1000.31,1011.02,26600000,1011.02 +1976-04-20,998.51,1008.19,998.51,1003.46,23500000,1003.46 +1976-04-19,980.48,991.18,979.16,988.11,16500000,988.11 +1976-04-15,974.65,984.81,969.30,980.48,15100000,980.48 +1976-04-14,984.26,990.24,972.76,974.65,18440000,974.65 +1976-04-13,971.27,985.99,969.54,984.26,15990000,984.26 +1976-04-12,968.28,978.90,963.00,971.27,16030000,971.27 +1976-04-09,977.09,981.58,964.34,968.28,19050000,968.28 +1976-04-08,986.22,987.80,968.99,977.09,20860000,977.09 +1976-04-07,1001.65,1004.80,983.08,986.22,20190000,986.22 +1976-04-06,1004.09,1015.35,998.90,1001.65,24170000,1001.65 +1976-04-05,992.99,1008.74,992.99,1004.09,21940000,1004.09 +1976-04-02,994.10,996.54,982.13,991.58,17420000,991.58 +1976-04-01,999.45,1003.31,987.72,994.10,17910000,994.10 +1976-03-31,992.13,1000.79,988.35,999.45,17520000,999.45 +1976-03-30,997.40,1000.31,985.04,992.13,17930000,992.13 +1976-03-29,1003.46,1007.40,993.78,997.40,16100000,997.40 +1976-03-26,1002.13,1009.68,997.64,1003.46,18510000,1003.46 +1976-03-25,1009.21,1014.72,997.72,1002.13,22510000,1002.13 +1976-03-24,1001.65,1018.03,1001.65,1009.21,32610000,1009.21 +1976-03-23,982.29,997.01,978.12,995.43,22450000,995.43 +1976-03-22,979.85,988.27,977.64,982.29,19410000,982.29 +1976-03-19,979.85,985.36,970.80,979.85,18090000,979.85 +1976-03-18,985.99,988.98,971.35,979.85,20330000,979.85 +1976-03-17,983.47,995.59,981.03,985.99,26190000,985.99 +1976-03-16,974.50,986.62,970.09,983.47,22780000,983.47 +1976-03-15,986.85,986.85,969.69,974.50,19570000,974.50 +1976-03-12,1003.31,1006.61,984.49,987.64,26020000,987.64 +1976-03-11,995.28,1008.42,992.76,1003.31,27300000,1003.31 +1976-03-10,993.70,1003.15,987.17,995.28,24900000,995.28 +1976-03-09,988.74,1005.67,987.88,993.70,31770000,993.70 +1976-03-08,973.08,991.73,973.08,988.74,25060000,988.74 +1976-03-05,970.64,981.03,965.37,972.92,23030000,972.92 +1976-03-04,978.83,984.26,967.18,970.64,24410000,970.64 +1976-03-03,985.12,988.99,973.00,978.83,25450000,978.83 +1976-03-02,975.36,991.11,974.26,985.12,25590000,985.12 +1976-03-01,972.61,981.19,964.18,975.36,22070000,975.36 +1976-02-27,978.83,980.71,962.30,972.61,26940000,972.61 +1976-02-26,994.57,1000.94,975.99,978.83,34320000,978.83 +1976-02-25,993.55,1002.83,983.39,994.57,34680000,994.57 +1976-02-24,985.28,1001.65,983.00,993.55,34380000,993.55 +1976-02-23,987.80,993.39,977.25,985.28,31460000,985.28 +1976-02-20,977.80,996.93,977.80,987.80,44510000,987.80 +1976-02-19,961.74,979.85,961.74,975.76,39210000,975.76 +1976-02-18,950.57,965.68,946.16,960.09,29900000,960.09 +1976-02-17,958.36,963.48,946.63,950.57,25460000,950.57 +1976-02-13,966.78,968.99,953.56,958.36,23870000,958.36 +1976-02-12,971.90,978.12,963.00,966.78,28610000,966.78 +1976-02-11,968.75,980.24,965.76,971.90,32300000,971.90 +1976-02-10,957.18,971.74,953.09,968.75,27660000,968.75 +1976-02-09,954.90,967.18,948.44,957.18,25340000,957.18 +1976-02-06,964.81,965.60,948.84,954.90,27360000,954.90 +1976-02-05,976.62,980.71,961.98,964.81,33780000,964.81 +1976-02-04,972.61,981.66,966.94,976.62,38270000,976.62 +1976-02-03,971.35,979.69,960.80,972.61,34080000,972.61 +1976-02-02,975.28,976.54,962.06,971.35,24000000,971.35 +1976-01-30,968.75,985.99,966.07,975.28,38510000,975.28 +1976-01-29,951.35,970.80,948.13,968.75,29800000,968.75 +1976-01-28,957.81,963.08,942.38,951.35,27370000,951.35 +1976-01-27,961.51,973.16,950.80,957.81,32070000,957.81 +1976-01-26,953.95,969.22,953.87,961.51,34470000,961.51 +1976-01-23,943.48,958.38,940.57,953.95,33640000,953.95 +1976-01-22,946.24,949.62,933.96,943.48,27420000,943.48 +1976-01-21,949.86,954.97,934.35,946.24,34470000,946.24 +1976-01-20,943.72,954.03,935.77,949.86,36690000,949.86 +1976-01-19,929.63,946.08,923.80,943.72,29450000,943.72 +1976-01-16,924.51,935.22,917.98,929.63,25940000,929.63 +1976-01-15,929.63,940.26,921.21,924.51,38450000,924.51 +1976-01-14,912.94,932.62,908.22,929.63,30340000,929.63 +1976-01-13,922.39,930.26,909.40,912.94,34530000,912.94 +1976-01-12,911.13,925.93,905.38,922.39,30440000,922.39 +1976-01-09,907.98,916.88,903.73,911.13,26510000,911.13 +1976-01-08,898.69,916.64,893.89,907.98,29030000,907.98 +1976-01-07,890.82,908.69,886.41,898.69,33170000,898.69 +1976-01-06,878.70,894.99,878.70,890.82,31270000,890.82 +1976-01-05,858.71,879.80,858.63,877.83,21960000,877.83 +1976-01-02,852.41,860.44,848.63,858.71,10300000,858.71 +1975-12-31,852.41,859.65,848.71,852.41,16970000,852.41 +1975-12-30,856.66,860.75,847.13,852.41,16040000,852.41 +1975-12-29,859.81,866.11,853.59,856.66,17070000,856.66 +1975-12-26,851.94,860.91,850.20,859.81,10020000,859.81 +1975-12-24,845.01,854.93,845.01,851.94,11150000,851.94 +1975-12-23,838.63,847.84,833.36,843.75,17750000,843.75 +1975-12-22,844.38,847.29,835.33,838.63,15340000,838.63 +1975-12-19,852.09,854.30,841.39,844.38,17720000,844.38 +1975-12-18,846.27,857.13,843.12,852.09,18040000,852.09 +1975-12-17,844.30,852.17,840.37,846.27,16560000,846.27 +1975-12-16,836.59,849.73,833.91,844.30,18350000,844.30 +1975-12-15,832.81,841.23,828.72,836.59,13960000,836.59 +1975-12-12,832.73,836.74,825.53,832.81,13100000,832.81 +1975-12-11,833.99,840.13,828.87,832.73,15300000,832.73 +1975-12-10,824.15,835.72,820.92,833.99,15680000,833.99 +1975-12-09,821.63,827.53,814.47,824.15,16040000,824.15 +1975-12-08,818.80,826.43,812.81,821.63,14150000,821.63 +1975-12-05,829.11,833.60,816.99,818.80,14050000,818.80 +1975-12-04,825.49,833.67,818.17,829.11,16380000,829.11 +1975-12-03,836.67,836.67,822.10,825.49,21320000,825.49 +1975-12-02,856.34,856.66,841.70,843.20,17930000,843.20 +1975-12-01,860.67,865.95,853.04,856.34,16050000,856.34 +1975-11-28,858.55,865.24,854.06,860.67,12870000,860.67 +1975-11-26,855.40,863.90,851.07,858.55,18780000,858.55 +1975-11-25,845.64,859.10,845.56,855.40,17490000,855.40 +1975-11-24,840.76,849.10,833.83,845.64,13930000,845.64 +1975-11-21,843.51,848.39,834.62,840.76,14110000,840.76 +1975-11-20,848.24,853.35,838.87,843.51,16460000,843.51 +1975-11-19,855.24,857.53,842.25,848.24,16820000,848.24 +1975-11-18,856.66,865.79,851.78,855.24,20760000,855.24 +1975-11-17,853.67,862.56,847.61,856.66,17660000,856.66 +1975-11-14,851.23,857.92,845.32,853.67,16460000,853.67 +1975-11-13,852.25,863.11,848.47,851.23,25070000,851.23 +1975-11-12,838.55,855.64,838.40,852.25,23960000,852.25 +1975-11-11,835.48,843.28,831.63,838.55,14640000,838.55 +1975-11-10,835.80,840.99,824.62,835.48,14910000,835.48 +1975-11-07,840.92,843.83,830.29,835.80,15930000,835.80 +1975-11-06,836.27,845.40,827.93,840.92,18600000,840.92 +1975-11-05,830.13,843.91,829.50,836.27,17390000,836.27 +1975-11-04,825.72,834.07,821.08,830.13,11570000,830.13 +1975-11-03,836.04,836.82,822.26,825.72,11400000,825.72 +1975-10-31,839.42,842.49,829.97,836.04,12910000,836.04 +1975-10-30,838.63,847.29,832.97,839.42,15080000,839.42 +1975-10-29,850.83,850.83,834.86,838.63,16110000,838.63 +1975-10-28,838.48,853.67,837.53,851.46,17060000,851.46 +1975-10-27,840.52,845.17,831.31,838.48,13100000,838.48 +1975-10-24,855.16,857.76,837.22,840.52,18120000,840.52 +1975-10-23,849.57,859.57,844.46,855.16,17900000,855.16 +1975-10-22,846.82,855.09,840.37,849.57,16060000,849.57 +1975-10-21,842.25,855.71,841.23,846.82,20800000,846.82 +1975-10-20,832.18,844.14,828.24,842.25,13250000,842.25 +1975-10-17,837.85,841.23,824.46,832.18,15650000,832.18 +1975-10-16,837.22,851.46,833.60,837.85,18910000,837.85 +1975-10-15,835.25,843.91,828.01,837.22,14440000,837.22 +1975-10-14,837.77,852.41,830.13,835.25,19960000,835.25 +1975-10-13,823.91,838.95,818.48,837.77,12020000,837.77 +1975-10-10,824.54,832.57,817.14,823.91,14880000,823.91 +1975-10-09,823.91,834.93,817.30,824.54,17770000,824.54 +1975-10-08,816.51,829.35,809.82,823.91,17800000,823.91 +1975-10-07,819.66,821.79,806.12,816.51,13530000,816.51 +1975-10-06,813.21,826.83,811.32,819.66,15470000,819.66 +1975-10-03,794.71,816.12,794.71,813.21,16360000,813.21 +1975-10-02,784.16,799.28,781.72,794.55,14290000,794.55 +1975-10-01,793.88,799.35,780.54,784.16,14070000,784.16 +1975-09-30,804.44,804.44,789.66,793.88,12520000,793.88 +1975-09-29,818.60,820.56,803.43,805.23,10580000,805.23 +1975-09-26,820.24,827.28,811.33,818.60,12570000,818.60 +1975-09-25,826.19,828.85,812.89,820.24,12890000,820.24 +1975-09-24,820.24,836.83,820.24,826.19,16060000,826.19 +1975-09-23,820.40,824.31,807.96,819.85,12800000,819.85 +1975-09-22,829.79,835.65,817.58,820.40,14750000,820.40 +1975-09-19,816.72,834.72,816.72,829.79,20830000,829.79 +1975-09-18,799.05,817.19,797.64,814.61,14560000,814.61 +1975-09-17,795.13,804.52,792.01,799.05,12190000,799.05 +1975-09-16,803.19,809.76,792.79,795.13,13090000,795.13 +1975-09-15,809.23,811.25,799.05,803.19,8670000,803.19 +1975-09-12,812.66,823.69,806.63,809.23,12230000,809.23 +1975-09-11,817.66,820.32,808.12,812.66,11100000,812.66 +1975-09-10,825.33,825.33,809.53,817.66,14780000,817.66 +1975-09-09,840.11,849.03,826.58,827.75,15790000,827.75 +1975-09-08,835.97,843.95,830.18,840.11,11500000,840.11 +1975-09-05,838.31,843.63,830.26,835.97,11680000,835.97 +1975-09-04,832.29,843.55,827.21,838.31,12810000,838.31 +1975-09-03,823.69,834.64,815.94,832.29,12260000,832.29 +1975-09-02,835.34,840.19,821.26,823.69,11460000,823.69 +1975-08-29,829.47,844.02,828.69,835.34,15480000,835.34 +1975-08-28,809.92,831.59,809.92,829.47,14530000,829.47 +1975-08-27,803.11,809.61,797.09,807.20,11100000,807.20 +1975-08-26,812.34,815.55,799.98,803.11,11350000,803.11 +1975-08-25,804.76,817.43,803.19,812.34,11250000,812.34 +1975-08-22,791.69,806.95,789.97,804.76,13050000,804.76 +1975-08-21,793.26,801.31,785.75,791.69,16610000,791.69 +1975-08-20,805.46,805.46,789.58,793.26,18630000,793.26 +1975-08-19,822.75,824.23,806.56,808.51,14990000,808.51 +1975-08-18,825.64,833.31,819.38,822.75,10810000,822.75 +1975-08-15,817.04,830.73,814.06,825.64,10610000,825.64 +1975-08-14,820.56,824.08,812.73,817.04,12460000,817.04 +1975-08-13,828.54,831.20,817.43,820.56,12000000,820.56 +1975-08-12,823.76,838.63,823.29,828.54,14510000,828.54 +1975-08-11,817.74,825.33,809.92,823.76,12350000,823.76 +1975-08-08,815.79,826.19,812.66,817.74,11660000,817.74 +1975-08-07,813.67,824.86,809.84,815.79,12390000,815.79 +1975-08-06,810.15,820.40,804.60,813.67,16280000,813.67 +1975-08-05,818.05,824.94,806.95,810.15,15470000,810.15 +1975-08-04,826.50,826.81,813.52,818.05,12620000,818.05 +1975-08-01,831.51,833.78,822.20,826.50,13320000,826.50 +1975-07-31,831.66,843.09,828.77,831.51,14540000,831.51 +1975-07-30,824.86,837.69,819.15,831.66,16150000,831.66 +1975-07-29,827.83,840.74,820.32,824.86,19000000,824.86 +1975-07-28,834.09,836.91,821.96,827.83,14850000,827.83 +1975-07-25,840.27,846.92,829.40,834.09,15110000,834.09 +1975-07-24,836.67,847.78,829.24,840.27,20550000,840.27 +1975-07-23,846.76,853.41,834.64,836.67,20150000,836.67 +1975-07-22,854.74,854.97,838.70,846.76,20660000,846.76 +1975-07-21,862.41,867.88,852.00,854.74,16690000,854.74 +1975-07-18,864.28,867.02,854.27,862.41,16870000,862.41 +1975-07-17,872.11,877.35,858.73,864.28,21420000,864.28 +1975-07-16,881.81,888.53,868.59,872.11,25250000,872.11 +1975-07-15,875.86,888.85,874.14,881.81,28340000,881.81 +1975-07-14,871.09,880.71,865.22,875.86,21900000,875.86 +1975-07-11,871.87,881.49,862.80,871.09,22210000,871.09 +1975-07-10,871.87,884.46,868.19,871.87,28880000,871.87 +1975-07-09,858.65,875.00,858.65,871.87,26350000,871.87 +1975-07-08,861.08,863.97,850.52,857.79,18990000,857.79 +1975-07-07,871.79,873.36,859.04,861.08,15850000,861.08 +1975-07-03,870.38,877.42,863.50,871.79,19000000,871.79 +1975-07-02,876.25,876.25,861.62,870.38,18530000,870.38 +1975-07-01,878.99,884.86,869.60,877.42,20390000,877.42 +1975-06-30,873.12,884.62,867.96,878.99,19430000,878.99 +1975-06-27,874.14,880.48,867.18,873.12,18820000,873.12 +1975-06-26,872.73,883.37,866.55,874.14,24560000,874.14 +1975-06-25,869.06,878.05,861.94,872.73,21610000,872.73 +1975-06-24,864.83,878.44,861.00,869.06,26620000,869.06 +1975-06-23,855.44,867.10,846.92,864.83,20720000,864.83 +1975-06-20,847.86,864.67,847.86,855.44,26260000,855.44 +1975-06-19,827.83,848.64,826.11,845.35,21450000,845.35 +1975-06-18,828.61,834.01,818.99,827.83,15590000,827.83 +1975-06-17,834.56,843.09,824.00,828.61,19440000,828.61 +1975-06-16,824.47,837.77,821.34,834.56,16660000,834.56 +1975-06-13,819.31,829.01,811.23,824.47,16300000,824.47 +1975-06-12,824.55,831.43,815.39,819.31,15970000,819.31 +1975-06-11,822.12,833.54,819.85,824.55,18230000,824.55 +1975-06-10,829.08,829.08,813.75,822.12,21130000,822.12 +1975-06-09,839.64,844.49,827.99,830.10,20670000,830.10 +1975-06-06,842.15,849.73,833.15,839.64,22230000,839.64 +1975-06-05,839.96,845.04,829.94,842.15,21610000,842.15 +1975-06-04,846.14,850.83,834.17,839.96,24900000,839.96 +1975-06-03,846.61,855.44,839.57,846.14,26560000,846.14 +1975-06-02,835.73,853.49,835.73,846.61,28240000,846.61 +1975-05-30,817.43,836.20,817.43,832.29,22670000,832.29 +1975-05-29,817.04,823.53,808.12,815.00,18570000,815.00 +1975-05-28,826.11,832.84,812.81,817.04,21850000,817.04 +1975-05-27,831.90,837.53,820.09,826.11,17050000,826.11 +1975-05-23,818.91,835.50,818.28,831.90,17870000,831.90 +1975-05-22,818.68,828.54,807.96,818.91,17610000,818.91 +1975-05-21,830.26,830.26,815.24,818.68,17640000,818.68 +1975-05-20,837.69,843.79,827.52,830.49,18310000,830.49 +1975-05-19,837.61,843.71,823.22,837.69,17870000,837.69 +1975-05-16,848.80,849.03,831.35,837.61,16630000,837.61 +1975-05-15,858.73,868.58,847.15,848.80,27690000,848.80 +1975-05-14,850.13,866.00,846.84,858.73,29050000,858.73 +1975-05-13,847.47,857.87,840.19,850.13,24950000,850.13 +1975-05-12,850.13,857.32,841.99,847.47,22410000,847.47 +1975-05-09,840.50,856.77,839.41,850.13,28440000,850.13 +1975-05-08,836.44,845.20,828.07,840.50,22980000,840.50 +1975-05-07,834.72,842.69,822.67,836.44,22250000,836.44 +1975-05-06,855.60,860.06,832.68,834.72,25410000,834.72 +1975-05-05,848.48,860.06,839.72,855.60,22370000,855.60 +1975-05-02,832.21,853.25,832.21,848.48,25210000,848.48 +1975-05-01,821.34,837.22,817.82,830.96,20660000,830.96 +1975-04-30,803.04,823.22,796.93,821.34,18060000,821.34 +1975-04-29,810.00,817.04,797.79,803.04,17740000,803.04 +1975-04-28,811.80,820.56,803.50,810.00,17850000,810.00 +1975-04-25,803.66,819.77,800.77,811.80,20260000,811.80 +1975-04-24,802.49,810.15,792.32,803.66,19050000,803.66 +1975-04-23,814.14,815.94,798.97,802.49,20040000,802.49 +1975-04-22,815.86,828.93,811.17,814.14,26120000,814.14 +1975-04-21,808.43,821.57,803.74,815.86,23960000,815.86 +1975-04-18,819.46,822.12,802.25,808.43,26610000,808.43 +1975-04-17,815.71,835.18,813.75,819.46,32650000,819.46 +1975-04-16,815.08,819.77,800.30,815.71,22970000,815.71 +1975-04-15,806.95,822.43,801.31,815.08,29620000,815.08 +1975-04-14,790.83,811.48,790.83,806.95,26800000,806.95 +1975-04-11,781.29,792.94,775.81,789.50,20160000,789.50 +1975-04-10,769.40,788.25,769.40,781.29,24990000,781.29 +1975-04-09,749.22,771.04,748.44,767.99,18120000,767.99 +1975-04-08,742.88,755.38,741.00,749.22,14320000,749.22 +1975-04-07,747.26,749.84,736.62,742.88,13860000,742.88 +1975-04-04,752.19,755.40,740.69,747.26,14170000,747.26 +1975-04-03,760.56,763.22,749.06,752.19,13920000,752.19 +1975-04-02,761.58,770.96,754.77,760.56,15600000,760.56 +1975-04-01,768.15,771.12,756.49,761.58,14480000,761.58 +1975-03-31,770.26,779.72,764.39,768.15,16270000,768.15 +1975-03-27,766.19,778.63,763.45,770.26,18300000,770.26 +1975-03-26,750.94,769.97,750.94,766.19,18580000,766.19 +1975-03-25,743.43,753.29,731.46,747.89,18500000,747.89 +1975-03-24,752.50,752.50,737.48,743.43,17810000,743.43 +1975-03-21,764.00,768.93,753.13,763.06,15940000,763.06 +1975-03-20,769.48,779.65,758.29,764.00,20960000,764.00 +1975-03-19,776.83,776.83,761.19,769.48,19030000,769.48 +1975-03-18,786.53,796.93,776.60,779.41,29180000,779.41 +1975-03-17,773.47,789.42,771.35,786.53,26780000,786.53 +1975-03-14,762.98,779.57,761.81,773.47,24840000,773.47 +1975-03-13,763.69,766.97,752.58,762.98,18620000,762.98 +1975-03-12,770.89,774.33,756.73,763.69,21560000,763.69 +1975-03-11,776.13,784.73,765.64,770.89,31280000,770.89 +1975-03-10,770.10,779.41,761.58,776.13,25890000,776.13 +1975-03-07,761.81,775.66,759.62,770.10,25930000,770.10 +1975-03-06,761.81,764.71,761.81,761.81,21780000,761.81 +1975-03-05,757.74,766.97,745.54,752.82,24120000,752.82 +1975-03-04,753.83,773.23,753.83,757.74,34140000,757.74 +1975-03-03,739.05,756.49,737.64,753.13,24100000,753.13 +1975-02-28,731.15,741.94,724.50,739.05,17560000,739.05 +1975-02-27,728.10,738.50,725.13,731.15,16430000,731.15 +1975-02-26,719.18,731.77,713.70,728.10,18790000,728.10 +1975-02-25,732.79,732.79,714.57,719.18,20910000,719.18 +1975-02-24,749.77,750.16,733.49,736.94,19150000,736.94 +1975-02-21,745.38,757.35,742.49,749.77,24440000,749.77 +1975-02-20,736.39,749.53,731.38,745.38,22260000,745.38 +1975-02-19,731.30,740.61,721.92,736.39,21930000,736.39 +1975-02-18,734.20,742.10,722.39,731.30,23990000,731.30 +1975-02-14,726.92,739.52,719.81,734.20,23290000,734.20 +1975-02-13,718.48,738.27,718.48,726.92,35160000,726.92 +1975-02-12,707.60,716.83,700.64,715.03,19790000,715.03 +1975-02-11,708.39,711.67,697.83,707.60,16470000,707.60 +1975-02-10,711.91,717.85,702.75,708.39,16120000,708.39 +1975-02-07,714.17,715.97,697.51,711.91,19060000,711.91 +1975-02-06,717.85,731.54,710.81,714.17,32020000,714.17 +1975-02-05,708.07,721.45,699.78,717.85,25830000,717.85 +1975-02-04,711.44,713.47,695.24,708.07,25040000,708.07 +1975-02-03,703.69,717.62,696.50,711.44,25400000,711.44 +1975-01-31,696.42,709.56,690.16,703.69,24640000,703.69 +1975-01-30,705.96,717.30,693.13,696.42,29740000,696.42 +1975-01-29,694.77,712.22,686.95,705.96,27410000,705.96 +1975-01-28,692.66,705.10,689.69,694.77,31760000,694.77 +1975-01-27,678.43,698.69,678.43,692.66,32130000,692.66 +1975-01-24,656.76,671.46,652.69,666.61,20670000,666.61 +1975-01-23,652.61,666.61,647.45,656.76,17960000,656.76 +1975-01-22,641.90,654.02,634.39,652.61,15330000,652.61 +1975-01-21,647.45,656.60,637.91,641.90,14780000,641.90 +1975-01-20,644.63,650.19,635.09,647.45,13450000,647.45 +1975-01-17,655.74,657.70,641.90,644.63,14260000,644.63 +1975-01-16,653.39,660.12,648.08,655.74,17110000,655.74 +1975-01-15,648.70,657.15,640.25,653.39,16580000,653.39 +1975-01-14,654.18,657.93,644.01,648.70,16610000,648.70 +1975-01-13,658.79,669.27,651.36,654.18,19780000,654.18 +1975-01-10,650.11,666.69,650.11,658.79,25890000,658.79 +1975-01-09,635.40,646.90,627.58,645.26,16340000,645.26 +1975-01-08,641.19,646.28,632.12,635.40,15600000,635.40 +1975-01-07,637.20,645.42,630.24,641.19,14890000,641.19 +1975-01-06,634.54,646.43,631.88,637.20,17550000,637.20 +1975-01-03,632.04,642.60,623.67,634.54,15270000,634.54 +1975-01-02,619.13,637.12,619.13,632.04,14800000,632.04 +1974-12-31,603.25,619.84,602.86,616.24,20970000,616.24 +1974-12-30,602.16,607.24,595.04,603.25,18520000,603.25 +1974-12-27,604.74,608.26,597.47,602.16,13060000,602.16 +1974-12-26,598.40,610.37,597.07,604.74,11810000,604.74 +1974-12-24,589.64,602.16,589.57,598.40,9540000,598.40 +1974-12-23,598.48,598.95,583.70,589.64,18040000,589.64 +1974-12-20,604.43,607.01,594.49,598.48,15840000,598.48 +1974-12-19,603.49,611.00,596.21,604.43,15900000,604.43 +1974-12-18,597.62,610.84,597.62,603.49,18050000,603.49 +1974-12-17,586.83,599.42,582.45,597.54,16880000,597.54 +1974-12-16,592.77,598.09,584.25,586.83,15370000,586.83 +1974-12-13,596.37,602.00,586.67,592.77,14000000,592.77 +1974-12-12,595.35,604.27,586.67,596.37,15390000,596.37 +1974-12-11,593.87,606.15,589.17,595.35,15700000,595.35 +1974-12-10,582.21,602.08,582.21,593.87,15690000,593.87 +1974-12-09,577.60,587.14,570.01,579.94,14660000,579.94 +1974-12-06,587.06,588.00,572.12,577.60,15500000,577.60 +1974-12-05,598.64,604.11,585.11,587.06,12890000,587.06 +1974-12-04,596.61,606.77,592.07,598.64,12580000,598.64 +1974-12-03,603.02,603.33,590.82,596.61,13620000,596.61 +1974-12-02,616.08,616.08,599.58,603.02,11140000,603.02 +1974-11-29,619.29,623.90,610.92,618.66,7400000,618.66 +1974-11-27,617.26,633.45,612.64,619.29,14810000,619.29 +1974-11-26,611.94,625.08,606.85,617.26,13600000,617.26 +1974-11-25,615.30,620.70,604.43,611.94,11300000,611.94 +1974-11-22,609.59,625.31,609.59,615.30,13020000,615.30 +1974-11-21,609.59,616.55,599.81,608.57,13820000,608.57 +1974-11-20,614.05,622.81,605.76,609.59,12430000,609.59 +1974-11-19,624.92,627.42,609.75,614.05,15720000,614.05 +1974-11-18,641.11,641.11,621.71,624.92,15230000,624.92 +1974-11-15,658.40,660.04,642.60,647.61,12480000,647.61 +1974-11-14,659.18,671.31,635.55,658.40,13540000,658.40 +1974-11-13,659.18,666.22,647.29,659.18,16040000,659.18 +1974-11-12,672.64,675.06,656.45,659.18,15040000,659.18 +1974-11-11,667.16,675.69,660.51,672.64,13220000,672.64 +1974-11-08,671.93,676.55,661.53,667.16,15890000,667.16 +1974-11-07,669.12,681.79,660.75,671.93,17150000,671.93 +1974-11-06,674.75,692.82,666.07,669.12,23930000,669.12 +1974-11-05,657.23,676.63,651.83,674.75,15960000,674.75 +1974-11-04,664.19,664.19,647.37,657.23,12740000,657.23 +1974-11-01,665.52,673.03,655.74,665.28,13470000,665.28 +1974-10-31,673.03,685.62,659.18,665.52,18840000,665.52 +1974-10-30,659.34,681.40,655.19,673.03,20130000,673.03 +1974-10-29,638.77,661.53,638.77,659.34,15610000,659.34 +1974-10-28,636.19,639.63,624.06,633.84,10540000,633.84 +1974-10-25,636.26,648.00,629.93,636.19,12650000,636.19 +1974-10-24,643.85,643.85,624.30,636.26,14910000,636.26 +1974-10-23,660.51,660.51,637.83,645.03,14200000,645.03 +1974-10-22,669.82,680.07,658.56,662.86,18930000,662.86 +1974-10-21,654.88,674.12,645.65,669.82,14500000,669.82 +1974-10-18,651.44,669.51,646.04,654.88,16460000,654.88 +1974-10-17,642.29,657.31,635.48,651.44,14470000,651.44 +1974-10-16,658.40,660.51,636.97,642.29,14790000,642.29 +1974-10-15,673.50,679.21,652.38,658.40,17390000,658.40 +1974-10-14,659.73,689.30,659.73,673.50,19770000,673.50 +1974-10-11,648.08,665.91,638.14,658.17,20090000,658.17 +1974-10-10,634.00,664.03,634.00,648.08,26360000,648.08 +1974-10-09,602.63,633.37,591.91,631.02,18820000,631.02 +1974-10-08,607.56,615.93,596.21,602.63,15460000,602.63 +1974-10-07,587.77,610.45,587.77,607.56,15000000,607.56 +1974-10-04,587.61,593.71,573.22,584.56,15910000,584.56 +1974-10-03,600.75,600.75,582.21,587.61,13150000,587.61 +1974-10-02,604.82,613.89,596.84,601.53,12230000,601.53 +1974-10-01,607.87,613.27,589.57,604.82,16890000,604.82 +1974-09-30,619.37,619.37,598.80,607.87,15000000,607.87 +1974-09-27,637.98,643.62,619.37,621.95,12320000,621.95 +1974-09-26,648.39,648.39,633.60,637.98,9060000,637.98 +1974-09-25,654.10,671.46,643.77,649.95,17620000,649.95 +1974-09-24,662.08,662.08,648.78,654.10,9840000,654.10 +1974-09-23,670.76,678.19,657.78,663.72,12130000,663.72 +1974-09-20,674.05,680.54,659.34,670.76,16250000,670.76 +1974-09-19,659.34,679.83,659.34,674.05,17000000,674.05 +1974-09-18,648.78,654.57,635.09,651.91,11760000,651.91 +1974-09-17,642.76,662.16,642.76,648.78,13730000,648.78 +1974-09-16,627.19,645.89,617.73,639.79,18370000,639.79 +1974-09-13,641.74,643.77,624.37,627.19,16070000,627.19 +1974-09-12,654.72,655.04,637.44,641.74,16920000,641.74 +1974-09-11,658.17,665.60,650.58,654.72,11820000,654.72 +1974-09-10,662.94,669.51,652.22,658.17,11980000,658.17 +1974-09-09,676.71,676.71,660.59,662.94,11160000,662.94 +1974-09-06,670.76,685.00,663.56,677.88,15130000,677.88 +1974-09-05,649.95,673.50,649.95,670.76,14210000,670.76 +1974-09-04,657.46,657.46,638.38,648.00,16930000,648.00 +1974-09-03,678.58,686.48,662.23,663.33,12750000,663.33 +1974-08-30,661.14,681.71,661.14,678.58,16230000,678.58 +1974-08-29,666.61,669.51,651.60,656.84,13690000,656.84 +1974-08-28,671.54,681.79,663.56,666.61,16670000,666.61 +1974-08-27,688.13,690.86,668.02,671.54,12970000,671.54 +1974-08-26,686.80,697.12,671.46,688.13,14630000,688.13 +1974-08-23,704.63,710.73,683.90,686.80,13590000,686.80 +1974-08-22,711.59,713.94,694.15,704.63,15690000,704.63 +1974-08-21,726.85,730.05,709.25,711.59,11650000,711.59 +1974-08-20,721.84,736.31,717.46,726.85,13820000,726.85 +1974-08-19,731.15,731.15,715.35,721.84,11670000,721.84 +1974-08-16,737.88,744.45,728.65,731.54,10510000,731.54 +1974-08-15,740.54,749.14,732.24,737.88,11130000,737.88 +1974-08-14,755.01,755.01,735.37,740.54,11750000,740.54 +1974-08-13,767.29,768.54,750.55,756.44,10140000,756.44 +1974-08-12,777.30,780.04,762.83,767.29,7780000,767.29 +1974-08-09,784.89,787.47,771.90,777.30,10160000,777.30 +1974-08-08,797.56,803.43,779.02,784.89,16060000,784.89 +1974-08-07,773.78,798.89,770.81,797.56,13380000,797.56 +1974-08-06,766.97,790.99,766.97,773.78,15770000,773.78 +1974-08-05,752.58,768.46,747.97,760.40,11230000,760.40 +1974-08-02,751.10,758.45,745.31,752.58,10110000,752.58 +1974-08-01,757.43,764.16,745.62,751.10,11470000,751.10 +1974-07-31,765.57,767.44,754.38,757.43,10960000,757.43 +1974-07-30,770.89,775.03,758.84,765.57,11360000,765.57 +1974-07-29,780.74,780.74,764.55,770.89,11560000,770.89 +1974-07-26,795.68,798.03,781.52,784.57,10420000,784.57 +1974-07-25,805.77,807.65,790.05,795.68,13310000,795.68 +1974-07-24,797.72,809.76,791.54,805.77,12870000,805.77 +1974-07-23,790.36,805.62,789.82,797.72,12910000,797.72 +1974-07-22,787.94,795.53,779.49,790.36,9290000,790.36 +1974-07-19,789.19,796.62,780.43,787.94,11080000,787.94 +1974-07-18,784.97,803.04,781.45,789.19,13980000,789.19 +1974-07-17,775.97,788.56,765.80,784.97,11320000,784.97 +1974-07-16,785.20,785.20,771.82,775.97,9920000,775.97 +1974-07-15,787.23,800.92,777.85,786.61,13560000,786.61 +1974-07-12,770.03,790.68,770.03,787.23,17770000,787.23 +1974-07-11,762.12,769.76,753.13,759.62,14640000,759.62 +1974-07-10,772.29,779.18,759.54,762.12,13490000,762.12 +1974-07-09,770.57,782.85,764.63,772.29,15580000,772.29 +1974-07-08,788.41,788.41,765.33,770.57,15510000,770.57 +1974-07-05,792.87,796.31,786.22,791.77,7400000,791.77 +1974-07-03,790.68,798.58,785.12,792.87,13430000,792.87 +1974-07-02,806.24,808.75,788.25,790.68,13460000,790.68 +1974-07-01,802.41,811.95,797.48,806.24,10270000,806.24 +1974-06-28,803.66,808.20,796.46,802.41,12010000,802.41 +1974-06-27,816.96,817.27,800.77,803.66,12650000,803.66 +1974-06-26,828.85,830.41,815.47,816.96,11410000,816.96 +1974-06-25,817.66,832.53,817.66,828.85,11920000,828.85 +1974-06-24,815.39,822.43,808.90,816.33,9960000,816.33 +1974-06-21,820.79,822.59,810.15,815.39,11830000,815.39 +1974-06-20,826.11,831.20,818.13,820.79,11990000,820.79 +1974-06-19,830.26,833.54,821.26,826.11,10550000,826.11 +1974-06-18,833.23,838.55,826.50,830.26,10110000,830.26 +1974-06-17,843.09,843.24,829.47,833.23,9680000,833.23 +1974-06-14,850.67,850.67,837.84,843.09,10030000,843.09 +1974-06-13,848.56,861.00,843.79,852.08,11540000,852.08 +1974-06-12,852.08,853.80,837.92,848.56,11150000,848.56 +1974-06-11,859.67,865.54,848.09,852.08,12380000,852.08 +1974-06-10,853.72,864.60,846.14,859.67,13540000,859.67 +1974-06-07,845.59,863.27,845.59,853.72,19020000,853.72 +1974-06-06,830.18,847.54,824.08,845.35,13360000,845.35 +1974-06-05,828.69,839.41,819.23,830.18,13680000,830.18 +1974-06-04,821.81,837.06,821.81,828.69,16040000,828.69 +1974-06-03,802.17,822.36,799.83,821.26,12490000,821.26 +1974-05-31,803.58,808.04,792.32,802.17,10810000,802.17 +1974-05-30,795.37,808.28,788.80,803.58,13580000,803.58 +1974-05-29,814.30,817.27,793.02,795.37,12300000,795.37 +1974-05-28,816.65,824.55,809.14,814.30,10580000,814.30 +1974-05-24,806.24,824.31,806.24,816.65,13740000,816.65 +1974-05-23,802.57,811.33,796.15,805.23,14770000,805.23 +1974-05-22,809.53,818.84,800.14,802.57,15450000,802.57 +1974-05-21,812.42,822.67,803.04,809.53,12190000,809.53 +1974-05-20,818.84,826.19,807.49,812.42,10550000,812.42 +1974-05-17,833.31,833.31,813.75,818.84,13870000,818.84 +1974-05-16,846.06,853.41,833.15,835.34,12090000,835.34 +1974-05-15,847.86,853.02,839.25,846.06,11240000,846.06 +1974-05-14,845.59,856.07,842.30,847.86,10880000,847.86 +1974-05-13,850.44,854.82,838.70,845.59,11290000,845.59 +1974-05-10,865.77,870.38,846.84,850.44,15270000,850.44 +1974-05-09,850.99,870.07,849.19,865.77,14710000,865.77 +1974-05-08,847.15,856.93,843.01,850.99,11850000,850.99 +1974-05-07,844.88,855.84,840.50,847.15,10710000,847.15 +1974-05-06,845.90,847.47,834.32,844.88,9450000,844.88 +1974-05-03,851.06,852.78,839.88,845.90,11080000,845.90 +1974-05-02,853.88,865.85,845.90,851.06,13620000,851.06 +1974-05-01,836.75,861.08,832.77,853.88,15120000,853.88 +1974-04-30,835.42,844.49,829.63,836.75,10980000,836.75 +1974-04-29,834.64,839.80,824.70,835.42,10170000,835.42 +1974-04-26,827.68,841.29,823.22,834.64,13250000,834.64 +1974-04-25,832.37,835.11,818.68,827.68,15870000,827.68 +1974-04-24,845.98,847.23,828.22,832.37,16010000,832.37 +1974-04-23,858.57,859.51,843.55,845.98,14110000,845.98 +1974-04-22,859.90,864.28,852.39,858.57,10520000,858.57 +1974-04-19,868.90,868.90,856.15,859.90,10710000,859.90 +1974-04-18,867.41,875.94,862.64,869.92,12470000,869.92 +1974-04-17,861.23,874.45,856.38,867.41,14020000,867.41 +1974-04-16,845.74,863.58,845.74,861.23,14530000,861.23 +1974-04-15,844.81,852.00,839.33,843.79,10130000,843.79 +1974-04-11,843.71,849.97,837.77,844.81,9970000,844.81 +1974-04-10,846.84,855.52,840.27,843.71,11160000,843.71 +1974-04-09,839.96,852.55,836.12,846.84,11330000,846.84 +1974-04-08,847.23,847.23,834.25,839.96,10740000,839.96 +1974-04-05,858.57,858.57,842.46,847.54,11670000,847.54 +1974-04-04,858.03,865.46,852.32,858.89,11650000,858.89 +1974-04-03,846.61,860.45,844.65,858.03,11500000,858.03 +1974-04-02,843.48,853.18,839.17,846.61,12010000,846.61 +1974-04-01,846.68,856.38,839.72,843.48,11470000,843.48 +1974-03-29,854.35,858.57,842.38,846.68,12150000,846.68 +1974-03-28,867.18,867.18,850.59,854.35,14940000,854.35 +1974-03-27,883.68,887.83,869.76,871.17,11690000,871.17 +1974-03-26,881.02,890.18,875.16,883.68,11840000,883.68 +1974-03-25,878.13,884.78,866.79,881.02,10540000,881.02 +1974-03-22,875.47,884.31,868.43,878.13,11930000,878.13 +1974-03-21,872.34,887.12,870.23,875.47,12950000,875.47 +1974-03-20,867.57,878.60,863.03,872.34,12960000,872.34 +1974-03-19,874.22,875.70,861.86,867.57,12800000,867.57 +1974-03-18,887.83,889.86,870.38,874.22,14010000,874.22 +1974-03-15,889.78,893.38,878.68,887.83,14500000,887.83 +1974-03-14,891.66,904.02,885.17,889.78,19770000,889.78 +1974-03-13,887.12,900.81,881.88,891.66,16820000,891.66 +1974-03-12,888.45,895.57,877.50,887.12,17250000,887.12 +1974-03-11,878.05,893.30,865.93,888.45,18470000,888.45 +1974-03-08,869.06,880.94,858.81,878.05,16210000,878.05 +1974-03-07,879.85,880.24,865.07,869.06,14500000,869.06 +1974-03-06,872.42,885.25,866.47,879.85,19140000,879.85 +1974-03-05,860.40,880.40,860.40,872.42,21980000,872.42 +1974-03-04,851.92,854.97,841.76,853.18,12270000,853.18 +1974-03-01,860.53,861.62,845.90,851.92,12880000,851.92 +1974-02-28,863.42,868.19,851.85,860.53,13680000,860.53 +1974-02-27,859.51,871.40,855.76,863.42,18730000,863.42 +1974-02-26,851.38,861.78,843.09,859.51,15860000,859.51 +1974-02-25,855.99,859.20,843.79,851.38,12900000,851.38 +1974-02-22,846.84,862.41,843.01,855.99,16360000,855.99 +1974-02-21,831.04,849.66,830.18,846.84,13930000,846.84 +1974-02-20,819.54,834.87,814.22,831.04,11670000,831.04 +1974-02-19,820.32,840.50,816.65,819.54,15940000,819.54 +1974-02-15,809.92,825.72,808.12,820.32,12640000,820.32 +1974-02-14,806.87,816.57,802.17,809.92,12230000,809.92 +1974-02-13,806.63,816.18,803.04,806.87,10990000,806.87 +1974-02-12,803.90,811.72,795.68,806.63,12920000,806.63 +1974-02-11,820.40,821.26,802.24,803.90,12930000,803.90 +1974-02-08,828.46,831.90,817.82,820.40,12990000,820.40 +1974-02-07,824.62,833.93,819.38,828.46,11750000,828.46 +1974-02-06,820.64,831.35,817.51,824.62,11610000,824.62 +1974-02-05,821.50,829.87,811.95,820.64,12820000,820.64 +1974-02-04,838.63,838.63,816.49,821.50,14380000,821.50 +1974-02-01,855.55,856.55,838.02,843.94,12480000,843.94 +1974-01-31,862.32,868.85,852.01,855.55,14020000,855.55 +1974-01-30,853.09,869.77,853.09,862.32,16790000,862.32 +1974-01-29,853.01,858.86,844.48,852.32,12850000,852.32 +1974-01-28,859.39,862.16,847.32,853.01,13410000,853.01 +1974-01-25,863.08,869.16,850.71,859.39,14860000,859.39 +1974-01-24,871.00,875.85,853.47,863.08,15980000,863.08 +1974-01-23,863.47,878.69,859.01,871.00,16890000,871.00 +1974-01-22,854.63,871.62,850.71,863.47,17330000,863.47 +1974-01-21,855.47,858.86,835.79,854.63,15630000,854.63 +1974-01-18,872.16,873.15,850.86,855.47,16470000,855.47 +1974-01-17,856.32,878.54,856.32,872.16,21040000,872.16 +1974-01-16,846.40,861.16,842.48,856.09,14930000,856.09 +1974-01-15,840.18,855.78,834.64,846.40,13250000,846.40 +1974-01-14,841.48,855.63,833.26,840.18,14610000,840.18 +1974-01-11,823.11,847.63,819.88,841.48,15140000,841.48 +1974-01-10,834.79,845.17,816.57,823.11,16120000,823.11 +1974-01-09,853.01,853.01,831.41,834.79,18070000,834.79 +1974-01-08,876.85,880.77,857.70,861.78,18080000,861.78 +1974-01-07,880.23,883.99,866.31,876.85,19070000,876.85 +1974-01-04,880.69,890.38,868.08,880.23,21700000,880.23 +1974-01-03,858.86,886.69,858.86,880.69,24850000,880.69 +1974-01-02,850.86,859.16,841.41,855.32,12060000,855.32 +1973-12-31,848.02,857.09,836.18,850.86,23470000,850.86 +1973-12-28,851.01,857.63,839.94,848.02,21310000,848.02 +1973-12-27,839.02,858.93,839.02,851.01,22720000,851.01 +1973-12-26,820.19,844.10,820.19,837.56,18620000,837.56 +1973-12-24,818.73,820.73,805.73,814.81,11540000,814.81 +1973-12-21,828.11,830.72,809.81,818.73,18680000,818.73 +1973-12-20,829.57,841.64,820.50,828.11,17340000,828.11 +1973-12-19,829.49,847.86,820.96,829.57,20670000,829.57 +1973-12-18,811.12,834.72,807.12,829.49,19490000,829.49 +1973-12-17,815.65,821.42,804.20,811.12,12930000,811.12 +1973-12-14,800.43,823.57,793.51,815.65,20000000,815.65 +1973-12-13,810.73,821.57,794.43,800.43,18130000,800.43 +1973-12-12,828.64,828.64,805.27,810.73,18190000,810.73 +1973-12-11,851.14,861.09,830.80,834.18,20100000,834.18 +1973-12-10,838.05,857.31,829.17,851.14,18590000,851.14 +1973-12-07,815.47,846.63,815.47,838.05,23230000,838.05 +1973-12-06,788.31,816.68,786.50,814.12,23260000,814.12 +1973-12-05,803.21,806.82,783.56,788.31,19180000,788.31 +1973-12-04,806.52,817.73,795.68,803.21,19030000,803.21 +1973-12-03,820.51,820.51,798.31,806.52,17900000,806.52 +1973-11-30,835.11,836.02,819.39,822.25,15380000,822.25 +1973-11-29,839.78,846.93,824.28,835.11,18870000,835.11 +1973-11-28,817.73,843.47,814.80,839.78,19990000,839.78 +1973-11-27,824.95,833.16,810.36,817.73,19750000,817.73 +1973-11-26,844.15,844.15,816.60,824.95,19830000,824.95 +1973-11-23,854.98,861.45,847.46,854.00,11470000,854.00 +1973-11-21,844.90,869.21,839.78,854.98,24260000,854.98 +1973-11-20,862.43,862.43,836.17,844.90,23960000,844.90 +1973-11-19,889.75,889.75,860.78,862.66,16700000,862.66 +1973-11-16,874.55,905.10,869.21,891.33,22510000,891.33 +1973-11-15,869.88,886.82,859.27,874.55,24530000,874.55 +1973-11-14,891.03,899.53,865.37,869.88,22710000,869.88 +1973-11-13,897.65,902.47,876.88,891.03,20310000,891.03 +1973-11-12,908.41,910.82,885.54,897.65,19250000,897.65 +1973-11-09,932.65,932.95,902.92,908.41,17320000,908.41 +1973-11-08,923.92,946.79,923.92,932.65,19650000,932.65 +1973-11-07,913.08,929.64,909.69,920.08,16570000,920.08 +1973-11-06,919.40,933.77,909.69,913.08,16430000,913.08 +1973-11-05,932.87,932.87,912.55,919.40,17150000,919.40 +1973-11-02,948.83,951.31,929.11,935.28,16340000,935.28 +1973-11-01,956.58,963.80,941.83,948.83,16920000,948.83 +1973-10-31,968.54,973.13,951.31,956.58,17890000,956.58 +1973-10-30,984.80,985.93,963.65,968.54,17580000,968.54 +1973-10-29,987.06,997.59,979.98,984.80,17960000,984.80 +1973-10-26,974.49,992.62,972.61,987.06,17800000,987.06 +1973-10-25,971.85,981.26,957.10,974.49,15580000,974.49 +1973-10-24,966.51,977.50,960.79,971.85,15840000,971.85 +1973-10-23,960.57,976.44,944.46,966.51,17230000,966.51 +1973-10-22,963.73,970.42,951.08,960.57,14290000,960.57 +1973-10-19,959.74,974.04,954.55,963.73,17880000,963.73 +1973-10-18,962.52,974.34,950.11,959.74,19210000,959.74 +1973-10-17,967.41,976.67,956.35,962.52,18600000,962.52 +1973-10-16,967.04,971.63,951.76,967.41,18780000,967.41 +1973-10-15,977.80,977.80,960.19,967.04,16160000,967.04 +1973-10-12,976.07,991.80,972.00,978.63,22730000,978.63 +1973-10-11,960.57,981.19,957.71,976.07,20740000,976.07 +1973-10-10,974.19,980.28,953.79,960.57,19010000,960.57 +1973-10-09,977.65,984.65,964.63,974.19,19440000,974.19 +1973-10-08,971.25,983.22,955.82,977.65,18990000,977.65 +1973-10-05,955.90,975.92,950.78,971.25,18820000,971.25 +1973-10-04,964.55,969.30,949.50,955.90,19730000,955.90 +1973-10-03,956.80,971.78,952.14,964.55,22040000,964.55 +1973-10-02,948.83,961.54,943.93,956.80,20770000,956.80 +1973-10-01,947.10,954.09,937.69,948.83,15830000,948.83 +1973-09-28,953.27,954.92,937.54,947.10,16300000,947.10 +1973-09-27,949.50,964.55,942.50,953.27,23660000,953.27 +1973-09-26,940.55,954.55,935.43,949.50,21130000,949.50 +1973-09-25,936.71,947.02,927.53,940.55,21530000,940.55 +1973-09-24,927.90,940.70,924.37,936.71,19490000,936.71 +1973-09-21,920.53,934.38,911.72,927.90,23760000,927.90 +1973-09-20,910.37,925.42,909.54,920.53,25960000,920.53 +1973-09-19,891.26,915.41,891.26,910.37,24570000,910.37 +1973-09-18,892.99,900.14,882.38,891.26,16400000,891.26 +1973-09-17,886.36,900.29,884.86,892.99,15100000,892.99 +1973-09-14,880.57,889.15,873.34,886.36,13760000,886.36 +1973-09-13,881.32,888.09,874.17,880.57,11670000,880.57 +1973-09-12,885.76,889.75,874.77,881.32,12040000,881.32 +1973-09-11,891.33,892.46,878.61,885.76,12690000,885.76 +1973-09-10,898.63,903.45,888.62,891.33,11620000,891.33 +1973-09-07,901.04,905.70,892.61,898.63,14930000,898.63 +1973-09-06,899.08,908.04,894.04,901.04,15670000,901.04 +1973-09-05,895.39,903.52,887.94,899.08,14580000,899.08 +1973-09-04,887.57,900.25,885.69,895.39,14210000,895.39 +1973-08-31,882.53,890.95,876.51,887.57,10530000,887.57 +1973-08-30,883.43,892.31,877.48,882.53,12100000,882.53 +1973-08-29,872.07,890.35,870.56,883.43,15690000,883.43 +1973-08-28,870.71,877.63,865.37,872.07,11810000,872.07 +1973-08-27,863.49,874.32,860.02,870.71,9740000,870.71 +1973-08-24,864.46,873.12,856.56,863.49,11200000,863.49 +1973-08-23,853.48,869.81,853.48,864.46,11390000,864.46 +1973-08-22,857.84,860.55,845.50,851.90,10770000,851.90 +1973-08-21,867.40,869.96,855.51,857.84,11480000,857.84 +1973-08-20,871.84,875.08,862.73,867.40,8970000,867.40 +1973-08-17,872.74,877.18,864.69,871.84,11110000,871.84 +1973-08-16,874.17,886.44,867.62,872.74,12990000,872.74 +1973-08-15,870.71,879.82,863.71,874.17,12040000,874.17 +1973-08-14,883.20,887.42,867.70,870.71,11740000,870.71 +1973-08-13,892.38,892.91,878.09,883.20,11330000,883.20 +1973-08-10,901.49,903.52,887.12,892.38,10870000,892.38 +1973-08-09,902.02,910.60,893.96,901.49,12880000,901.49 +1973-08-08,911.95,913.23,897.43,902.02,12440000,902.02 +1973-08-07,912.78,920.38,905.25,911.95,13510000,911.95 +1973-08-06,908.87,918.50,900.96,912.78,12320000,912.78 +1973-08-03,910.14,913.91,900.36,908.87,9940000,908.87 +1973-08-02,912.18,917.37,899.46,910.14,16080000,910.14 +1973-08-01,924.37,924.37,907.28,912.18,13530000,912.18 +1973-07-31,933.77,941.15,923.39,926.40,13530000,926.40 +1973-07-30,936.71,942.35,926.32,933.77,11170000,933.77 +1973-07-27,934.53,942.28,925.65,936.71,12910000,936.71 +1973-07-26,933.02,944.08,924.74,934.53,18410000,934.53 +1973-07-25,918.72,942.58,917.22,933.02,22220000,933.02 +1973-07-24,913.15,922.19,903.67,918.72,16280000,918.72 +1973-07-23,910.90,921.88,907.36,913.15,15580000,913.15 +1973-07-20,906.68,918.05,902.54,910.90,16300000,910.90 +1973-07-19,905.40,916.47,893.66,906.68,18650000,906.68 +1973-07-18,898.03,911.20,889.90,905.40,17020000,905.40 +1973-07-17,897.58,911.80,892.84,898.03,18750000,898.03 +1973-07-16,885.99,900.44,881.32,897.58,12920000,897.58 +1973-07-13,901.94,902.77,883.05,885.99,11390000,885.99 +1973-07-12,908.19,910.82,895.39,901.94,16400000,901.94 +1973-07-11,889.90,911.80,889.90,908.19,18730000,908.19 +1973-07-10,879.06,894.64,879.06,888.32,15090000,888.32 +1973-07-09,870.11,879.74,863.94,877.26,11560000,877.26 +1973-07-06,874.32,878.09,865.82,870.11,9980000,870.11 +1973-07-05,874.17,879.74,867.10,874.32,10500000,874.32 +1973-07-03,880.57,882.53,868.75,874.17,10560000,874.17 +1973-07-02,890.20,890.20,876.66,880.57,9830000,880.57 +1973-06-29,894.64,900.59,886.59,891.71,10770000,891.71 +1973-06-28,884.63,897.88,880.87,894.64,12760000,894.64 +1973-06-27,879.44,888.09,872.44,884.63,12660000,884.63 +1973-06-26,869.13,881.85,864.46,879.44,14040000,879.44 +1973-06-25,879.82,880.72,865.67,869.13,11670000,869.13 +1973-06-22,875.23,897.58,875.23,879.82,18470000,879.82 +1973-06-21,884.71,887.49,871.84,873.65,11630000,873.65 +1973-06-20,881.55,890.65,876.28,884.71,10600000,884.71 +1973-06-19,875.08,889.52,868.08,881.55,12970000,881.55 +1973-06-18,887.34,887.34,869.36,875.08,11460000,875.08 +1973-06-15,899.68,899.68,882.60,888.55,11970000,888.55 +1973-06-14,915.49,922.49,899.61,902.92,13210000,902.92 +1973-06-13,927.00,935.58,912.48,915.49,15700000,915.49 +1973-06-12,915.11,930.01,912.85,927.00,13840000,927.00 +1973-06-11,920.00,924.67,911.05,915.11,9940000,915.11 +1973-06-08,909.62,926.85,908.19,920.00,14050000,920.00 +1973-06-07,898.18,913.68,896.37,909.62,14160000,909.62 +1973-06-06,900.81,908.87,891.71,898.18,13080000,898.18 +1973-06-05,885.91,905.63,883.43,900.81,14080000,900.81 +1973-06-04,893.96,894.42,880.72,885.91,11230000,885.91 +1973-06-01,901.41,902.32,887.27,893.96,10410000,893.96 +1973-05-31,908.87,912.03,895.62,901.41,12190000,901.41 +1973-05-30,924.37,924.37,906.01,908.87,11730000,908.87 +1973-05-29,930.84,934.08,921.36,925.57,11300000,925.57 +1973-05-25,924.44,938.82,915.64,930.84,19270000,930.84 +1973-05-24,895.02,926.48,890.35,924.44,17310000,924.44 +1973-05-23,892.46,904.80,884.18,895.02,14950000,895.02 +1973-05-22,886.51,905.93,884.86,892.46,18020000,892.46 +1973-05-21,894.79,894.79,875.45,886.51,20690000,886.51 +1973-05-18,908.79,908.79,889.00,895.17,17080000,895.17 +1973-05-17,917.14,919.93,907.59,911.72,13060000,911.72 +1973-05-16,917.44,927.83,907.66,917.14,13800000,917.14 +1973-05-15,909.69,920.83,894.49,917.44,18530000,917.44 +1973-05-14,925.27,925.27,906.31,909.69,13520000,909.69 +1973-05-11,939.12,939.12,924.14,927.98,12980000,927.98 +1973-05-10,949.05,950.63,934.75,939.34,13520000,939.34 +1973-05-09,956.58,965.16,945.29,949.05,16050000,949.05 +1973-05-08,950.71,961.24,940.92,956.58,13730000,956.58 +1973-05-07,953.87,956.80,941.98,950.71,12500000,950.71 +1973-05-04,945.67,962.67,944.31,953.87,19510000,953.87 +1973-05-03,932.34,950.03,915.04,945.67,17760000,945.67 +1973-05-02,921.21,938.37,920.23,932.34,14380000,932.34 +1973-05-01,921.43,929.03,905.40,921.21,15380000,921.21 +1973-04-30,922.19,929.18,907.51,921.43,14820000,921.43 +1973-04-27,937.76,941.38,918.05,922.19,13730000,922.19 +1973-04-26,930.54,944.24,919.78,937.76,16210000,937.76 +1973-04-25,940.77,941.60,925.42,930.54,15960000,930.54 +1973-04-24,955.37,958.68,938.37,940.77,13830000,940.77 +1973-04-23,963.20,966.51,951.23,955.37,12580000,955.37 +1973-04-19,958.31,970.95,953.79,963.20,14560000,963.20 +1973-04-18,953.43,961.47,944.39,958.31,13890000,958.31 +1973-04-17,956.73,959.29,947.62,953.43,12830000,953.43 +1973-04-16,959.36,965.53,950.03,956.73,11350000,956.73 +1973-04-13,964.03,967.56,950.71,959.36,14390000,959.36 +1973-04-12,967.41,975.32,956.73,964.03,16360000,964.03 +1973-04-11,960.49,970.50,953.94,967.41,14890000,967.41 +1973-04-10,950.71,966.74,950.71,960.49,16770000,960.49 +1973-04-09,931.07,950.63,927.45,947.55,13740000,947.55 +1973-04-06,923.46,937.31,921.43,931.07,13890000,931.07 +1973-04-05,925.05,929.03,914.81,923.46,12750000,923.46 +1973-04-04,927.75,935.66,919.55,925.05,11890000,925.05 +1973-04-03,936.18,936.71,920.45,927.75,12910000,927.75 +1973-04-02,951.01,951.84,932.72,936.18,10640000,936.18 +1973-03-30,959.14,961.69,944.84,951.01,13740000,951.01 +1973-03-29,948.00,962.82,941.75,959.14,16050000,959.14 +1973-03-28,944.91,955.82,936.94,948.00,15850000,948.00 +1973-03-27,930.16,948.52,930.16,944.91,17500000,944.91 +1973-03-26,922.71,931.74,914.28,927.90,14980000,927.90 +1973-03-23,925.20,934.53,911.12,922.71,18470000,922.71 +1973-03-22,937.46,937.46,919.25,925.20,17130000,925.20 +1973-03-21,949.43,958.84,934.90,938.37,16080000,938.37 +1973-03-20,952.06,956.80,941.15,949.43,13250000,949.43 +1973-03-19,962.45,962.45,946.79,952.06,12460000,952.06 +1973-03-16,969.82,973.21,957.41,963.05,15130000,963.05 +1973-03-15,978.85,982.47,966.21,969.82,14450000,969.82 +1973-03-14,976.07,982.31,972.00,978.85,14460000,978.85 +1973-03-13,969.75,980.13,966.29,976.07,14210000,976.07 +1973-03-12,972.23,979.00,965.68,969.75,13810000,969.75 +1973-03-09,976.44,978.03,963.58,972.23,14070000,972.23 +1973-03-08,979.98,985.25,973.59,976.44,15100000,976.44 +1973-03-07,979.00,984.80,966.74,979.98,19310000,979.98 +1973-03-06,966.89,982.39,966.44,979.00,17710000,979.00 +1973-03-05,961.32,972.00,955.67,966.89,13720000,966.89 +1973-03-02,949.65,962.97,937.69,961.32,17710000,961.32 +1973-03-01,955.07,967.04,947.17,949.65,18210000,949.65 +1973-02-28,947.92,958.31,938.82,955.07,17950000,955.07 +1973-02-27,953.79,963.12,943.26,947.92,16130000,947.92 +1973-02-26,959.89,962.90,943.78,953.79,15860000,953.79 +1973-02-23,971.78,973.81,957.10,959.89,15450000,959.89 +1973-02-22,974.34,978.63,963.05,971.78,14570000,971.78 +1973-02-21,983.59,988.79,970.27,974.34,14880000,974.34 +1973-02-20,979.23,991.04,975.69,983.59,14020000,983.59 +1973-02-16,973.13,981.86,965.76,979.23,13320000,979.23 +1973-02-15,979.91,984.12,966.29,973.13,13940000,973.13 +1973-02-14,996.76,997.97,974.11,979.91,16520000,979.91 +1973-02-13,991.65,1019.94,991.65,996.76,25320000,996.76 +1973-02-12,980.81,996.24,980.81,991.57,16130000,991.57 +1973-02-09,967.19,983.14,964.93,979.46,19260000,979.46 +1973-02-08,968.32,973.81,954.17,967.19,18440000,967.19 +1973-02-07,979.91,989.16,965.53,968.32,17960000,968.32 +1973-02-06,978.40,986.00,972.23,979.91,15720000,979.91 +1973-02-05,980.81,987.06,974.11,978.40,14580000,978.40 +1973-02-02,985.78,992.32,975.02,980.81,17470000,980.81 +1973-02-01,999.02,1008.58,983.14,985.78,20670000,985.78 +1973-01-31,992.93,1004.06,988.11,999.02,14870000,999.02 +1973-01-30,996.47,1005.34,989.09,992.93,15270000,992.93 +1973-01-29,1003.54,1008.80,988.18,996.47,14680000,996.47 +1973-01-26,1004.59,1008.50,989.46,1003.54,21130000,1003.54 +1973-01-24,1018.66,1025.74,998.57,1004.59,20870000,1004.59 +1973-01-23,1018.81,1024.68,1007.22,1018.66,19060000,1018.66 +1973-01-22,1026.19,1034.69,1014.52,1018.81,15570000,1018.81 +1973-01-19,1029.12,1031.68,1014.00,1026.19,17020000,1026.19 +1973-01-18,1029.12,1039.96,1024.01,1029.12,17810000,1029.12 +1973-01-17,1024.31,1036.35,1020.32,1029.12,17680000,1029.12 +1973-01-16,1025.59,1033.34,1014.37,1024.31,19170000,1024.31 +1973-01-15,1039.36,1053.28,1022.88,1025.59,21520000,1025.59 +1973-01-12,1051.70,1059.90,1033.41,1039.36,22230000,1039.36 +1973-01-11,1046.06,1067.20,1039.28,1051.70,25050000,1051.70 +1973-01-10,1047.11,1053.28,1040.94,1046.06,20880000,1046.06 +1973-01-09,1047.86,1053.21,1040.49,1047.11,16830000,1047.11 +1973-01-08,1047.49,1053.58,1040.86,1047.86,16840000,1047.86 +1973-01-05,1039.81,1053.43,1037.40,1047.49,19330000,1047.49 +1973-01-04,1043.80,1047.86,1027.62,1039.81,20230000,1039.81 +1973-01-03,1032.21,1049.59,1032.21,1043.80,20620000,1043.80 +1973-01-02,1022.88,1038.98,1022.88,1031.68,17090000,1031.68 +1972-12-29,1008.58,1027.39,1008.58,1020.02,27550000,1020.02 +1972-12-27,1006.70,1014.22,1001.13,1007.68,19100000,1007.68 +1972-12-26,1004.21,1010.91,999.85,1006.70,11120000,1006.70 +1972-12-22,1000.00,1010.01,996.84,1004.21,12540000,1004.21 +1972-12-21,1004.82,1010.91,996.09,1000.00,18290000,1000.00 +1972-12-20,1009.18,1014.98,1001.88,1004.82,18490000,1004.82 +1972-12-19,1013.25,1017.99,1004.06,1009.18,17000000,1009.18 +1972-12-18,1022.05,1022.05,1004.29,1013.25,17540000,1013.25 +1972-12-15,1025.06,1034.69,1018.59,1027.24,18300000,1027.24 +1972-12-14,1030.48,1035.45,1020.09,1025.06,17930000,1025.06 +1972-12-13,1033.19,1036.65,1025.14,1030.48,16540000,1030.48 +1972-12-12,1036.27,1042.44,1029.65,1033.19,17040000,1033.19 +1972-12-11,1033.19,1041.32,1029.80,1036.27,17230000,1036.27 +1972-12-08,1033.26,1039.21,1027.17,1033.19,18030000,1033.19 +1972-12-07,1027.54,1037.85,1025.36,1033.26,19320000,1033.26 +1972-12-06,1022.95,1031.16,1018.29,1027.54,18610000,1027.54 +1972-12-05,1027.02,1030.85,1017.46,1022.95,17800000,1022.95 +1972-12-04,1023.93,1033.19,1021.45,1027.02,19730000,1027.02 +1972-12-01,1018.21,1031.53,1016.56,1023.93,22570000,1023.93 +1972-11-30,1018.81,1025.81,1010.54,1018.21,19340000,1018.21 +1972-11-29,1019.34,1023.63,1011.89,1018.81,17380000,1018.81 +1972-11-28,1017.76,1026.79,1012.57,1019.34,19210000,1019.34 +1972-11-27,1025.21,1026.87,1008.65,1017.76,18190000,1017.76 +1972-11-24,1020.54,1029.73,1014.15,1025.21,15760000,1025.21 +1972-11-22,1013.25,1026.87,1009.93,1020.54,24510000,1020.54 +1972-11-21,1005.04,1017.61,1002.86,1013.25,22110000,1013.25 +1972-11-20,1005.57,1011.14,997.14,1005.04,16680000,1005.04 +1972-11-17,1003.69,1012.34,998.57,1005.57,20220000,1005.57 +1972-11-16,998.42,1008.13,991.57,1003.69,19580000,1003.69 +1972-11-15,1003.16,1013.55,993.08,998.42,23270000,998.42 +1972-11-14,997.07,1006.92,991.12,1003.16,20200000,1003.16 +1972-11-13,995.26,1004.89,988.49,997.07,17210000,997.07 +1972-11-10,988.26,1007.15,986.08,995.26,24360000,995.26 +1972-11-09,983.74,992.32,973.89,988.26,17040000,988.26 +1972-11-08,984.80,998.42,978.63,983.74,24620000,983.74 +1972-11-06,984.12,993.38,977.05,984.80,21330000,984.80 +1972-11-03,973.06,988.94,969.22,984.12,22510000,984.12 +1972-11-02,968.54,977.80,961.77,973.06,20690000,973.06 +1972-11-01,955.52,975.24,955.30,968.54,21360000,968.54 +1972-10-31,946.42,958.53,944.39,955.52,15450000,955.52 +1972-10-30,946.42,950.71,936.56,946.42,11820000,946.42 +1972-10-27,950.56,956.20,941.07,946.42,15470000,946.42 +1972-10-26,951.38,962.45,946.27,950.56,20790000,950.56 +1972-10-25,952.51,958.46,944.99,951.38,17430000,951.38 +1972-10-24,951.31,957.10,941.30,952.51,15240000,952.51 +1972-10-23,945.21,958.31,945.21,951.31,14190000,951.31 +1972-10-20,932.12,946.72,927.98,942.81,15740000,942.81 +1972-10-19,932.34,939.27,926.70,932.12,13850000,932.12 +1972-10-18,926.48,940.85,925.80,932.34,17290000,932.34 +1972-10-17,921.66,931.29,917.07,926.48,13410000,926.48 +1972-10-16,930.46,934.53,919.25,921.66,10940000,921.66 +1972-10-13,937.46,940.17,923.77,930.46,12870000,930.46 +1972-10-12,946.42,947.10,932.42,937.46,13130000,937.46 +1972-10-11,951.84,956.05,941.60,946.42,11900000,946.42 +1972-10-10,948.75,960.49,946.34,951.84,13310000,951.84 +1972-10-09,945.36,952.21,941.00,948.75,7940000,948.75 +1972-10-06,941.30,954.39,930.39,945.36,16630000,945.36 +1972-10-05,951.31,955.67,937.54,941.30,17730000,941.30 +1972-10-04,954.47,964.10,947.85,951.31,16640000,951.31 +1972-10-03,953.27,959.96,948.22,954.47,13090000,954.47 +1972-10-02,953.27,959.59,945.44,953.27,12440000,953.27 +1972-09-29,955.15,965.08,949.05,953.27,16250000,953.27 +1972-09-28,947.25,956.88,939.87,955.15,14710000,955.15 +1972-09-27,936.56,949.05,932.95,947.25,14620000,947.25 +1972-09-26,935.73,942.13,927.15,936.56,13150000,936.56 +1972-09-25,943.03,947.47,933.10,935.73,10920000,935.73 +1972-09-22,939.49,948.98,934.38,943.03,12570000,943.03 +1972-09-21,940.25,945.44,932.72,939.49,11940000,939.49 +1972-09-20,943.18,946.12,934.75,940.25,11980000,940.25 +1972-09-19,945.36,952.44,939.12,943.18,13330000,943.18 +1972-09-18,947.32,951.16,938.67,945.36,8880000,945.36 +1972-09-15,947.55,952.29,940.62,947.32,11690000,947.32 +1972-09-14,949.88,955.30,942.05,947.55,12500000,947.55 +1972-09-13,946.04,954.09,941.30,949.88,13070000,949.88 +1972-09-12,955.00,957.86,940.62,946.04,13560000,946.04 +1972-09-11,961.24,964.55,951.08,955.00,10710000,955.00 +1972-09-08,962.45,968.24,957.33,961.24,10980000,961.24 +1972-09-07,963.43,968.02,957.41,962.45,11090000,962.45 +1972-09-06,969.37,970.35,958.91,963.43,12010000,963.43 +1972-09-05,970.05,977.35,964.63,969.37,10630000,969.37 +1972-09-01,963.73,975.62,962.30,970.05,11600000,970.05 +1972-08-31,957.86,966.89,953.57,963.73,12340000,963.73 +1972-08-30,954.70,964.03,951.16,957.86,12470000,957.86 +1972-08-29,956.95,961.62,945.29,954.70,12300000,954.70 +1972-08-28,959.36,964.33,952.59,956.95,10720000,956.95 +1972-08-25,958.38,964.86,949.80,959.36,13840000,959.36 +1972-08-24,970.35,974.56,955.98,958.38,18280000,958.38 +1972-08-23,973.51,980.36,962.60,970.35,18670000,970.35 +1972-08-22,967.19,979.76,963.88,973.51,18560000,973.51 +1972-08-21,965.83,974.19,958.16,967.19,14290000,967.19 +1972-08-18,961.39,972.23,957.48,965.83,16150000,965.83 +1972-08-17,964.25,971.25,955.60,961.39,14360000,961.39 +1972-08-16,969.97,974.94,958.46,964.25,14950000,964.25 +1972-08-15,973.51,978.33,962.30,969.97,16670000,969.97 +1972-08-14,964.18,980.21,964.18,973.51,18870000,973.51 +1972-08-11,952.89,966.59,948.75,964.18,16570000,964.18 +1972-08-10,951.16,958.84,945.29,952.89,15260000,952.89 +1972-08-09,952.44,958.99,943.86,951.16,15730000,951.16 +1972-08-08,953.12,958.01,944.31,952.44,14550000,952.44 +1972-08-07,951.76,959.36,945.67,953.12,13220000,953.12 +1972-08-04,947.70,957.10,942.28,951.76,15700000,951.76 +1972-08-03,941.15,953.19,939.12,947.70,19970000,947.70 +1972-08-02,931.07,944.61,931.07,941.15,17920000,941.15 +1972-08-01,924.74,935.36,922.03,930.46,15540000,930.46 +1972-07-31,926.70,932.72,917.37,924.74,11120000,924.74 +1972-07-28,926.85,933.93,920.15,926.70,13050000,926.70 +1972-07-27,932.57,938.37,923.62,926.85,13870000,926.85 +1972-07-26,934.45,940.92,927.60,932.57,14130000,932.57 +1972-07-25,935.36,946.79,930.24,934.45,17180000,934.45 +1972-07-24,922.19,941.98,922.19,935.36,18020000,935.36 +1972-07-21,910.45,923.24,903.90,920.45,14010000,920.45 +1972-07-20,916.69,919.40,905.55,910.45,15050000,910.45 +1972-07-19,911.72,927.00,909.69,916.69,17880000,916.69 +1972-07-18,914.96,917.97,900.06,911.72,16820000,911.72 +1972-07-17,922.26,928.43,912.70,914.96,13170000,914.96 +1972-07-14,916.99,927.83,911.88,922.26,13910000,922.26 +1972-07-13,923.69,926.02,912.93,916.99,14740000,916.99 +1972-07-12,925.87,934.15,919.33,923.69,16150000,923.69 +1972-07-11,932.27,934.90,921.81,925.87,12830000,925.87 +1972-07-10,938.06,943.03,928.73,932.27,11700000,932.27 +1972-07-07,942.13,948.15,932.34,938.06,12900000,938.06 +1972-07-06,934.90,955.45,934.90,942.13,19520000,942.13 +1972-07-05,928.66,939.64,926.25,933.47,14710000,933.47 +1972-07-03,929.03,935.05,922.71,928.66,8140000,928.66 +1972-06-30,926.25,935.81,921.21,929.03,12860000,929.03 +1972-06-29,930.84,932.95,917.75,926.25,14610000,926.25 +1972-06-28,935.28,938.14,925.80,930.84,12140000,930.84 +1972-06-27,936.41,943.33,928.96,935.28,13750000,935.28 +1972-06-26,942.50,942.50,928.13,936.41,12720000,936.41 +1972-06-23,950.71,957.25,939.27,944.69,13940000,944.69 +1972-06-22,951.61,956.58,940.02,950.71,13410000,950.71 +1972-06-21,948.22,959.96,943.63,951.61,15510000,951.61 +1972-06-20,941.83,952.14,940.10,948.22,14970000,948.22 +1972-06-19,945.06,947.62,935.43,941.83,11660000,941.83 +1972-06-16,945.97,949.88,936.94,945.06,13010000,945.06 +1972-06-15,946.79,956.05,940.25,945.97,16940000,945.97 +1972-06-14,938.29,954.24,936.11,946.79,18320000,946.79 +1972-06-13,936.71,943.33,928.88,938.29,15710000,938.29 +1972-06-12,934.45,943.63,930.39,936.71,13390000,936.71 +1972-06-09,941.30,942.88,930.01,934.45,12790000,934.45 +1972-06-08,944.08,953.19,938.82,941.30,13820000,941.30 +1972-06-07,951.46,952.51,938.52,944.08,15220000,944.08 +1972-06-06,954.39,961.02,946.87,951.46,15980000,951.46 +1972-06-05,961.39,964.48,948.52,954.39,13450000,954.39 +1972-06-02,960.72,967.72,954.24,961.39,15400000,961.39 +1972-06-01,960.72,966.36,954.85,960.72,14910000,960.72 +1972-05-31,970.88,970.88,955.52,960.72,15230000,960.72 +1972-05-30,971.25,979.46,966.51,971.18,15810000,971.18 +1972-05-26,969.07,977.42,963.80,971.25,15730000,971.25 +1972-05-25,965.46,975.54,960.57,969.07,16480000,969.07 +1972-05-24,962.30,973.06,958.76,965.46,17870000,965.46 +1972-05-23,965.31,970.05,956.20,962.30,16410000,962.30 +1972-05-22,961.54,972.00,958.76,965.31,16030000,965.31 +1972-05-19,951.23,967.56,950.11,961.54,19580000,961.54 +1972-05-18,941.15,955.67,939.95,951.23,17370000,951.23 +1972-05-17,939.27,944.61,932.95,941.15,13600000,941.15 +1972-05-16,942.20,947.17,934.83,939.27,14070000,939.27 +1972-05-15,941.83,948.45,936.63,942.20,13600000,942.20 +1972-05-12,934.83,947.40,934.23,941.83,13990000,941.83 +1972-05-11,931.07,941.15,925.87,934.83,12900000,934.83 +1972-05-10,925.12,938.06,922.03,931.07,13870000,931.07 +1972-05-09,937.54,937.54,917.37,925.12,19910000,925.12 +1972-05-08,941.23,943.18,930.01,937.84,11250000,937.84 +1972-05-05,937.31,948.30,932.57,941.23,13210000,941.23 +1972-05-04,933.47,942.43,927.60,937.31,14790000,937.31 +1972-05-03,935.20,947.32,927.90,933.47,15900000,933.47 +1972-05-02,942.28,947.32,930.61,935.20,15370000,935.20 +1972-05-01,954.17,956.95,938.59,942.28,12880000,942.28 +1972-04-28,945.97,959.74,944.46,954.17,14160000,954.17 +1972-04-27,946.94,954.92,940.70,945.97,15740000,945.97 +1972-04-26,946.49,954.39,938.29,946.94,17710000,946.94 +1972-04-25,957.48,959.14,943.63,946.49,17030000,946.49 +1972-04-24,963.80,966.59,950.93,957.48,14650000,957.48 +1972-04-21,966.29,974.64,959.21,963.80,18200000,963.80 +1972-04-20,964.78,971.33,954.17,966.29,18190000,966.29 +1972-04-19,968.92,975.92,959.36,964.78,19180000,964.78 +1972-04-18,966.59,977.72,961.62,968.92,19410000,968.92 +1972-04-17,967.72,972.16,959.36,966.59,15390000,966.59 +1972-04-14,965.53,973.06,959.59,967.72,17460000,967.72 +1972-04-13,966.96,973.28,960.42,965.53,17990000,965.53 +1972-04-12,962.60,976.44,960.64,966.96,24690000,966.96 +1972-04-11,958.08,967.79,951.23,962.60,19930000,962.60 +1972-04-10,962.60,970.57,953.42,958.08,19470000,958.08 +1972-04-07,959.44,965.91,950.26,962.60,19900000,962.60 +1972-04-06,954.55,968.24,951.76,959.44,22830000,959.44 +1972-04-05,943.41,958.99,943.33,954.55,22960000,954.55 +1972-04-04,940.92,948.52,933.62,943.41,18110000,943.41 +1972-04-03,940.70,948.75,935.66,940.92,14990000,940.92 +1972-03-30,933.02,943.78,929.79,940.70,14360000,940.70 +1972-03-29,937.01,940.17,925.87,933.02,13860000,933.02 +1972-03-28,939.72,947.02,932.65,937.01,15380000,937.01 +1972-03-27,942.28,946.57,933.77,939.72,12180000,939.72 +1972-03-24,944.69,950.03,937.91,942.28,15390000,942.28 +1972-03-23,933.93,949.20,932.34,944.69,18380000,944.69 +1972-03-22,934.00,938.59,926.78,933.93,15400000,933.93 +1972-03-21,940.32,940.32,925.95,934.00,18610000,934.00 +1972-03-20,942.88,951.84,937.31,941.15,16420000,941.15 +1972-03-17,936.71,949.88,931.52,942.88,16040000,942.88 +1972-03-16,937.31,942.88,927.68,936.71,16700000,936.71 +1972-03-15,934.00,945.44,929.18,937.31,19460000,937.31 +1972-03-14,928.66,938.82,925.35,934.00,22370000,934.00 +1972-03-13,939.87,941.23,924.22,928.66,16730000,928.66 +1972-03-10,942.81,948.60,932.95,939.87,19690000,939.87 +1972-03-09,945.59,950.78,937.61,942.81,21460000,942.81 +1972-03-08,946.87,953.57,937.09,945.59,21290000,945.59 +1972-03-07,950.18,956.20,940.40,946.87,22640000,946.87 +1972-03-06,942.43,957.03,940.47,950.18,21000000,950.18 +1972-03-03,933.77,948.00,930.69,942.43,20420000,942.43 +1972-03-02,935.43,943.78,927.90,933.77,22200000,933.77 +1972-03-01,928.13,943.03,924.14,935.43,23670000,935.43 +1972-02-29,924.29,932.34,916.24,928.13,20320000,928.13 +1972-02-28,922.79,930.31,917.14,924.29,18200000,924.29 +1972-02-25,912.70,927.75,909.39,922.79,18180000,922.79 +1972-02-24,911.88,919.25,906.61,912.70,16000000,912.70 +1972-02-23,913.46,919.85,906.98,911.88,16770000,911.88 +1972-02-22,917.52,922.86,909.17,913.46,16670000,913.46 +1972-02-18,922.03,925.35,911.12,917.52,16590000,917.52 +1972-02-17,922.94,933.25,916.84,922.03,22330000,922.03 +1972-02-16,914.51,928.58,911.65,922.94,20670000,922.94 +1972-02-15,910.90,920.98,906.46,914.51,17770000,914.51 +1972-02-14,917.59,921.96,906.01,910.90,15840000,910.90 +1972-02-11,921.28,924.82,910.52,917.59,17850000,917.59 +1972-02-10,918.72,931.89,914.89,921.28,23460000,921.28 +1972-02-09,907.13,921.81,905.18,918.72,19850000,918.72 +1972-02-08,903.97,910.97,898.18,907.13,17390000,907.13 +1972-02-07,906.68,913.61,898.93,903.97,16930000,903.97 +1972-02-04,903.15,912.10,897.50,906.68,17890000,906.68 +1972-02-03,905.85,910.97,896.30,903.15,19880000,903.15 +1972-02-02,901.79,913.76,896.15,905.85,24070000,905.85 +1972-02-01,902.17,906.23,894.34,901.79,19600000,901.79 +1972-01-31,906.38,911.20,897.05,902.17,18250000,902.17 +1972-01-28,899.83,913.23,896.60,906.38,25000000,906.38 +1972-01-27,889.15,902.92,887.87,899.83,20360000,899.83 +1972-01-26,894.72,897.65,883.43,889.15,14940000,889.15 +1972-01-25,896.82,902.17,887.49,894.72,17570000,894.72 +1972-01-24,907.44,911.20,893.81,896.82,15640000,896.82 +1972-01-21,910.30,913.91,898.93,907.44,18810000,907.44 +1972-01-20,914.96,922.19,906.76,910.30,20210000,910.30 +1972-01-19,917.22,922.34,904.58,914.96,18800000,914.96 +1972-01-18,911.12,923.99,908.94,917.22,21070000,917.22 +1972-01-17,906.68,914.51,902.77,911.12,15860000,911.12 +1972-01-14,905.18,910.82,899.16,906.68,14960000,906.68 +1972-01-13,910.82,912.93,899.98,905.18,16410000,905.18 +1972-01-12,912.10,922.03,906.01,910.82,20970000,910.82 +1972-01-11,907.96,919.02,903.67,912.10,17970000,912.10 +1972-01-10,910.37,914.43,898.48,907.96,15320000,907.96 +1972-01-07,908.49,916.47,903.37,910.37,17140000,910.37 +1972-01-06,904.43,913.83,901.87,908.49,21100000,908.49 +1972-01-05,893.06,910.07,893.06,904.43,21350000,904.43 +1972-01-04,889.30,897.73,882.75,892.23,15190000,892.23 +1972-01-03,890.20,898.71,884.63,889.30,12570000,889.30 +1971-12-31,889.07,895.77,884.48,890.20,14040000,890.20 +1971-12-30,893.66,898.78,883.05,889.07,13810000,889.07 +1971-12-29,889.98,902.47,886.59,893.66,17150000,893.66 +1971-12-28,881.47,892.84,877.18,889.98,15090000,889.98 +1971-12-27,881.17,889.83,875.68,881.47,11890000,881.47 +1971-12-23,884.86,889.98,873.34,881.17,16000000,881.17 +1971-12-22,888.32,893.81,878.54,884.86,18930000,884.86 +1971-12-21,885.01,896.22,875.30,888.32,20460000,888.32 +1971-12-20,876.28,895.17,876.28,885.01,23810000,885.01 +1971-12-17,871.39,879.29,865.29,873.80,18270000,873.80 +1971-12-16,863.76,878.69,863.26,871.39,21070000,871.39 +1971-12-15,855.14,867.84,849.81,863.76,16890000,863.76 +1971-12-14,858.79,864.92,851.12,855.14,16070000,855.14 +1971-12-13,856.75,868.28,852.22,858.79,17020000,858.79 +1971-12-10,852.15,861.86,847.69,856.75,17510000,856.75 +1971-12-09,854.85,858.43,844.55,852.15,14710000,852.15 +1971-12-08,857.40,861.71,847.91,854.85,16650000,854.85 +1971-12-07,855.72,862.44,845.28,857.40,15250000,857.40 +1971-12-06,859.59,872.59,852.58,855.72,17480000,855.72 +1971-12-03,848.79,864.05,845.58,859.59,16760000,859.59 +1971-12-02,846.01,854.70,837.47,848.79,17780000,848.79 +1971-12-01,831.34,851.85,831.12,846.01,21040000,846.01 +1971-11-30,829.73,837.03,819.22,831.34,18320000,831.34 +1971-11-29,816.59,838.57,815.79,829.73,18910000,829.73 +1971-11-26,799.87,818.12,799.87,816.59,10870000,816.59 +1971-11-24,797.97,807.90,793.88,798.63,11870000,798.63 +1971-11-23,803.15,807.10,790.67,797.97,16840000,797.97 +1971-11-22,810.67,817.03,800.89,803.15,11390000,803.15 +1971-11-19,815.35,817.98,804.83,810.67,12420000,810.67 +1971-11-18,822.14,829.66,813.81,815.35,13010000,815.35 +1971-11-17,818.71,825.79,812.13,822.14,12840000,822.14 +1971-11-16,810.53,823.89,806.59,818.71,13300000,818.71 +1971-11-15,812.94,820.68,806.66,810.53,9370000,810.53 +1971-11-12,814.91,821.12,802.21,812.94,14540000,812.94 +1971-11-11,826.15,827.91,810.82,814.91,13310000,814.91 +1971-11-10,837.91,842.22,821.85,826.15,13410000,826.15 +1971-11-09,837.54,845.72,832.21,837.91,12080000,837.91 +1971-11-08,840.39,843.60,832.51,837.54,8520000,837.54 +1971-11-05,843.17,845.94,832.94,840.39,10780000,840.39 +1971-11-04,842.58,855.21,838.49,843.17,15750000,843.17 +1971-11-03,828.34,845.87,828.34,842.58,14590000,842.58 +1971-11-02,825.86,833.53,814.69,827.98,13330000,827.98 +1971-11-01,839.00,840.25,823.21,825.86,10960000,825.86 +1971-10-29,837.62,843.03,831.85,839.00,11710000,839.00 +1971-10-28,836.38,844.63,827.83,837.62,15530000,837.62 +1971-10-27,845.36,846.31,832.29,836.38,13480000,836.38 +1971-10-26,848.50,857.26,842.95,845.36,13390000,845.36 +1971-10-25,852.37,854.63,843.38,848.50,7340000,848.50 +1971-10-22,854.85,863.90,848.57,852.37,14560000,852.37 +1971-10-21,855.65,861.05,846.45,854.85,14990000,854.85 +1971-10-20,868.43,873.39,851.20,855.65,16340000,855.65 +1971-10-19,872.44,874.34,860.11,868.43,13040000,868.43 +1971-10-18,874.58,880.40,868.87,872.44,10420000,872.44 +1971-10-15,878.36,881.64,868.50,874.58,13120000,874.58 +1971-10-14,888.80,889.16,875.22,878.36,12870000,878.36 +1971-10-13,893.55,897.12,885.22,888.80,13540000,888.80 +1971-10-12,891.94,899.61,888.29,893.55,14340000,893.55 +1971-10-11,893.91,896.39,886.32,891.94,7800000,891.94 +1971-10-08,901.80,902.82,890.55,893.91,13870000,893.91 +1971-10-07,900.55,910.56,896.10,901.80,17780000,901.80 +1971-10-06,891.14,902.38,886.90,900.55,15630000,900.55 +1971-10-05,895.66,898.66,885.81,891.14,12360000,891.14 +1971-10-04,893.98,904.42,892.01,895.66,14570000,895.66 +1971-10-01,887.19,898.44,884.49,893.98,13400000,893.98 +1971-09-30,883.83,894.13,878.14,887.19,13490000,887.19 +1971-09-29,884.42,890.41,877.70,883.83,8580000,883.83 +1971-09-28,883.47,891.50,877.77,884.42,11250000,884.42 +1971-09-27,889.31,891.72,877.48,883.47,10220000,883.47 +1971-09-24,891.28,900.26,886.24,889.31,13460000,889.31 +1971-09-23,893.55,899.39,884.64,891.28,13250000,891.28 +1971-09-22,903.40,904.94,891.72,893.55,14250000,893.55 +1971-09-21,905.15,907.78,897.78,903.40,10640000,903.40 +1971-09-20,908.22,911.29,900.19,905.15,9540000,905.15 +1971-09-17,903.11,912.16,901.07,908.22,11020000,908.22 +1971-09-16,904.86,908.81,898.66,903.11,10550000,903.11 +1971-09-15,901.65,907.71,896.25,904.86,11080000,904.86 +1971-09-14,909.39,911.73,898.58,901.65,11410000,901.65 +1971-09-13,911.00,915.67,903.91,909.39,10000000,909.39 +1971-09-10,915.89,916.84,904.42,911.00,11380000,911.00 +1971-09-09,920.93,925.23,912.38,915.89,15790000,915.89 +1971-09-08,916.47,925.67,911.87,920.93,14230000,920.93 +1971-09-07,912.75,925.67,909.75,916.47,17080000,916.47 +1971-09-03,900.63,914.06,899.53,912.75,14040000,912.75 +1971-09-02,899.02,905.37,893.84,900.63,10690000,900.63 +1971-09-01,898.07,906.25,894.20,899.02,10770000,899.02 +1971-08-31,901.43,903.84,892.01,898.07,10430000,898.07 +1971-08-30,908.15,912.53,898.51,901.43,11140000,901.43 +1971-08-27,906.10,915.45,902.02,908.15,12490000,908.15 +1971-08-26,908.37,914.06,898.88,906.10,13990000,906.10 +1971-08-25,904.13,917.79,901.80,908.37,18280000,908.37 +1971-08-24,892.38,909.02,892.09,904.13,18700000,904.13 +1971-08-23,880.99,897.20,880.99,892.38,13040000,892.38 +1971-08-20,880.77,887.27,874.93,880.91,11890000,880.91 +1971-08-19,886.17,889.68,873.90,880.77,14190000,880.77 +1971-08-18,899.90,901.36,882.08,886.17,20680000,886.17 +1971-08-17,888.95,908.66,885.29,899.90,26790000,899.90 +1971-08-16,882.59,906.32,882.59,888.95,31730000,888.95 +1971-08-13,859.01,864.41,851.64,856.02,9960000,856.02 +1971-08-12,848.57,863.46,848.57,859.01,15910000,859.01 +1971-08-11,839.59,851.12,836.96,846.38,11370000,846.38 +1971-08-10,842.65,846.82,834.92,839.59,9460000,839.59 +1971-08-09,850.61,853.46,839.52,842.65,8110000,842.65 +1971-08-06,849.45,855.94,844.70,850.61,9490000,850.61 +1971-08-05,844.92,855.72,841.19,849.45,12100000,849.45 +1971-08-04,850.03,857.70,840.10,844.92,15410000,844.92 +1971-08-03,864.92,865.87,845.94,850.03,13490000,850.03 +1971-08-02,858.43,871.86,857.70,864.92,11870000,864.92 +1971-07-30,861.42,868.50,854.41,858.43,12970000,858.43 +1971-07-29,872.01,873.03,856.97,861.42,14570000,861.42 +1971-07-28,880.70,882.16,868.36,872.01,13940000,872.01 +1971-07-27,888.87,891.28,877.04,880.70,11560000,880.70 +1971-07-26,887.78,895.15,882.96,888.87,9930000,888.87 +1971-07-23,886.68,893.03,880.33,887.78,12370000,887.78 +1971-07-22,890.84,893.55,882.74,886.68,12570000,886.68 +1971-07-21,892.30,896.54,886.61,890.84,11920000,890.84 +1971-07-20,886.39,896.90,885.15,892.30,12540000,892.30 +1971-07-19,888.51,893.47,879.23,886.39,11430000,886.39 +1971-07-16,888.87,898.73,884.71,888.51,13870000,888.51 +1971-07-15,891.21,901.43,885.00,888.87,13080000,888.87 +1971-07-14,892.38,895.88,882.52,891.21,14360000,891.21 +1971-07-13,903.40,906.47,888.80,892.38,13540000,892.38 +1971-07-12,901.80,908.81,896.47,903.40,12020000,903.40 +1971-07-09,900.99,908.73,896.69,901.80,12640000,901.80 +1971-07-08,895.88,906.10,894.20,900.99,13920000,900.99 +1971-07-07,892.30,903.18,888.87,895.88,14520000,895.88 +1971-07-06,890.19,896.83,885.29,892.30,10440000,892.30 +1971-07-02,893.03,895.52,885.73,890.19,9960000,890.19 +1971-07-01,891.14,899.39,886.24,893.03,13090000,893.03 +1971-06-30,882.30,895.66,881.28,891.14,15410000,891.14 +1971-06-29,873.10,887.63,871.20,882.30,14460000,882.30 +1971-06-28,876.68,879.53,866.82,873.10,9810000,873.10 +1971-06-25,877.26,882.45,870.04,876.68,10580000,876.68 +1971-06-24,879.45,885.44,872.01,877.26,11360000,877.26 +1971-06-23,874.42,886.61,870.04,879.45,12640000,879.45 +1971-06-22,876.53,884.56,866.31,874.42,15200000,874.42 +1971-06-21,889.16,890.48,872.74,876.53,16490000,876.53 +1971-06-18,906.25,906.47,887.63,889.16,15040000,889.16 +1971-06-17,908.59,915.08,902.16,906.25,13980000,906.25 +1971-06-16,907.20,915.52,901.29,908.59,14300000,908.59 +1971-06-15,907.71,915.23,899.39,907.20,13550000,907.20 +1971-06-14,916.47,917.79,904.13,907.71,11530000,907.71 +1971-06-11,915.96,923.70,909.68,916.47,12270000,916.47 +1971-06-10,912.46,921.00,907.78,915.96,12450000,915.96 +1971-06-09,915.01,919.54,905.74,912.46,14250000,912.46 +1971-06-08,923.06,925.89,911.95,915.01,13610000,915.01 +1971-06-07,922.15,928.54,917.44,923.06,13800000,923.06 +1971-06-04,921.30,926.78,915.40,922.15,14400000,922.15 +1971-06-03,919.62,929.60,914.63,921.30,18790000,921.30 +1971-06-02,913.65,925.31,911.96,919.62,17740000,919.62 +1971-06-01,907.81,918.49,903.74,913.65,11930000,913.65 +1971-05-28,905.78,912.24,900.58,907.81,11760000,907.81 +1971-05-27,906.41,911.96,899.94,905.78,12610000,905.78 +1971-05-26,906.69,914.91,901.07,906.41,13550000,906.41 +1971-05-25,913.15,913.86,898.61,906.69,16050000,906.69 +1971-05-24,921.87,923.69,911.05,913.15,12060000,913.15 +1971-05-21,923.41,927.84,917.30,921.87,12090000,921.87 +1971-05-20,920.04,931.42,917.93,923.41,11740000,923.41 +1971-05-19,918.56,926.64,913.93,920.04,17640000,920.04 +1971-05-18,921.30,926.64,909.99,918.56,17640000,918.56 +1971-05-17,935.15,935.15,916.60,921.30,15980000,921.30 +1971-05-14,936.34,942.03,930.37,936.06,16430000,936.06 +1971-05-13,937.46,944.63,928.12,936.34,17640000,936.34 +1971-05-12,937.25,943.86,930.65,937.46,15140000,937.46 +1971-05-11,932.55,943.79,927.63,937.25,17730000,937.25 +1971-05-10,936.97,938.87,925.24,932.55,12810000,932.55 +1971-05-07,937.39,941.96,927.35,936.97,16490000,936.97 +1971-05-06,939.92,948.85,933.53,937.39,19300000,937.39 +1971-05-05,938.45,943.02,929.45,939.92,17270000,939.92 +1971-05-04,932.41,942.38,927.42,938.45,17310000,938.45 +1971-05-03,941.75,942.17,923.83,932.41,16120000,932.41 +1971-04-30,948.15,951.31,936.20,941.75,17490000,941.75 +1971-04-29,950.82,957.35,941.75,948.15,20340000,948.15 +1971-04-28,947.09,958.12,941.82,950.82,24820000,950.82 +1971-04-27,944.00,953.63,935.22,947.09,21250000,947.09 +1971-04-26,947.79,953.20,937.46,944.00,18860000,944.00 +1971-04-23,940.63,952.92,934.87,947.79,20150000,947.79 +1971-04-22,941.33,947.65,932.97,940.63,19270000,940.63 +1971-04-21,944.42,949.20,933.39,941.33,17040000,941.33 +1971-04-20,948.85,952.43,940.49,944.42,17880000,944.42 +1971-04-19,940.21,953.49,939.01,948.85,17730000,948.85 +1971-04-16,938.17,945.55,932.55,940.21,18280000,940.21 +1971-04-15,932.55,945.69,930.44,938.17,22540000,938.17 +1971-04-14,927.28,937.96,921.51,932.55,19440000,932.55 +1971-04-13,926.64,935.99,921.51,927.28,23200000,927.28 +1971-04-12,920.39,932.83,917.02,926.64,19410000,926.64 +1971-04-08,918.49,925.94,911.68,920.39,17590000,920.39 +1971-04-07,912.73,925.59,908.94,918.49,22270000,918.49 +1971-04-06,905.07,917.79,901.77,912.73,19990000,912.73 +1971-04-05,903.04,909.99,897.48,905.07,16040000,905.07 +1971-04-02,903.88,910.06,898.96,903.04,14520000,903.04 +1971-04-01,904.37,910.06,898.75,903.88,13470000,903.88 +1971-03-31,903.39,910.98,898.33,904.37,17610000,904.37 +1971-03-30,903.48,909.99,896.78,903.39,15430000,903.39 +1971-03-29,903.48,909.78,896.29,903.48,13650000,903.48 +1971-03-26,900.81,910.32,895.95,903.48,15560000,903.48 +1971-03-25,899.37,903.96,889.03,900.81,15870000,900.81 +1971-03-24,908.89,910.05,896.77,899.37,15770000,899.37 +1971-03-23,910.60,915.32,902.31,908.89,16470000,908.89 +1971-03-22,912.92,917.78,905.53,910.60,14290000,910.60 +1971-03-19,916.83,921.69,908.61,912.92,15150000,912.92 +1971-03-18,914.02,922.30,910.46,916.83,17910000,916.83 +1971-03-17,914.64,918.06,904.16,914.02,17070000,914.02 +1971-03-16,908.20,920.93,908.06,914.64,22270000,914.64 +1971-03-15,898.34,911.21,895.33,908.20,18920000,908.20 +1971-03-12,899.44,903.14,892.25,898.34,14680000,898.34 +1971-03-11,895.88,906.76,890.81,899.44,19830000,899.44 +1971-03-10,899.10,902.59,891.50,895.88,17220000,895.88 +1971-03-09,898.62,906.15,892.25,899.10,20490000,899.10 +1971-03-08,898.00,905.19,891.43,898.62,19340000,898.62 +1971-03-05,891.36,903.61,889.24,898.00,22430000,898.00 +1971-03-04,882.39,894.92,878.01,891.36,17350000,891.36 +1971-03-03,883.01,888.55,876.85,882.39,14680000,882.39 +1971-03-02,882.53,887.94,875.27,883.01,14870000,883.01 +1971-03-01,878.83,887.46,873.22,882.53,13020000,882.53 +1971-02-26,881.98,886.36,870.55,878.83,17250000,878.83 +1971-02-25,875.62,887.53,871.92,881.98,16200000,881.98 +1971-02-24,870.00,881.37,868.29,875.62,15930000,875.62 +1971-02-23,868.98,875.62,861.99,870.00,15080000,870.00 +1971-02-22,877.05,877.05,863.29,868.98,15840000,868.98 +1971-02-19,885.06,886.50,875.00,878.56,17860000,878.56 +1971-02-18,887.87,891.16,877.67,885.06,16650000,885.06 +1971-02-17,890.06,894.78,879.38,887.87,18720000,887.87 +1971-02-16,888.83,898.14,882.26,890.06,21350000,890.06 +1971-02-12,885.34,894.03,881.30,888.83,18470000,888.83 +1971-02-11,881.09,891.02,878.77,885.34,19260000,885.34 +1971-02-10,879.79,884.99,869.04,881.09,19040000,881.09 +1971-02-09,882.12,889.17,874.79,879.79,28250000,879.79 +1971-02-08,876.57,885.47,870.41,882.12,25590000,882.12 +1971-02-05,874.79,882.67,868.22,876.57,20480000,876.57 +1971-02-04,876.23,880.07,868.29,874.79,20860000,874.79 +1971-02-03,874.59,880.61,866.51,876.23,21680000,876.23 +1971-02-02,877.81,882.39,868.09,874.59,22030000,874.59 +1971-02-01,868.50,882.19,866.03,877.81,20650000,877.81 +1971-01-29,865.14,873.49,860.15,868.50,20960000,868.50 +1971-01-28,860.83,869.11,853.92,865.14,18840000,865.14 +1971-01-27,866.79,867.47,853.85,860.83,20640000,860.83 +1971-01-26,865.62,873.84,859.19,866.79,21380000,866.79 +1971-01-25,861.31,870.48,855.28,865.62,19050000,865.62 +1971-01-22,854.74,866.58,854.46,861.31,21680000,861.31 +1971-01-21,849.95,859.60,845.08,854.74,19060000,854.74 +1971-01-20,849.47,856.24,842.96,849.95,18330000,849.95 +1971-01-19,847.82,853.78,841.87,849.47,15800000,849.47 +1971-01-18,845.70,854.39,841.25,847.82,15400000,847.82 +1971-01-15,843.31,853.37,838.72,845.70,18010000,845.70 +1971-01-14,841.11,849.26,832.97,843.31,17600000,843.31 +1971-01-13,844.19,853.44,835.57,841.11,19070000,841.11 +1971-01-12,837.21,849.19,834.68,844.19,17820000,844.19 +1971-01-11,837.01,841.46,828.31,837.21,14720000,837.21 +1971-01-08,837.83,843.31,831.94,837.01,14100000,837.01 +1971-01-07,837.97,843.78,832.42,837.83,16460000,837.83 +1971-01-06,835.77,843.92,831.67,837.97,16960000,837.97 +1971-01-05,830.57,840.09,827.35,835.77,12600000,835.77 +1971-01-04,838.92,839.06,826.53,830.57,10010000,830.57 +1970-12-31,841.32,844.95,832.56,838.92,13390000,838.92 +1970-12-30,842.00,848.23,836.05,841.32,19140000,841.32 +1970-12-29,830.91,844.19,828.04,842.00,17750000,842.00 +1970-12-28,828.38,834.75,824.07,830.91,12290000,830.91 +1970-12-24,823.11,831.67,820.65,828.38,12140000,828.38 +1970-12-23,822.77,830.16,816.54,823.11,15400000,823.11 +1970-12-22,821.54,828.93,815.65,822.77,14510000,822.77 +1970-12-21,822.77,828.45,815.31,821.54,12690000,821.54 +1970-12-18,822.15,828.79,815.51,822.77,14360000,822.77 +1970-12-17,819.07,826.94,815.85,822.15,13660000,822.15 +1970-12-16,819.62,823.52,810.17,819.07,14240000,819.07 +1970-12-15,823.18,826.12,813.25,819.62,13420000,819.62 +1970-12-14,825.92,832.28,818.66,823.18,13810000,823.18 +1970-12-11,821.06,831.67,818.18,825.92,15790000,825.92 +1970-12-10,815.24,824.75,811.68,821.06,14610000,821.06 +1970-12-09,815.10,819.96,806.27,815.24,13550000,815.24 +1970-12-08,818.66,822.49,809.69,815.10,14370000,815.10 +1970-12-07,816.06,823.59,810.24,818.66,15530000,818.66 +1970-12-04,808.53,819.07,801.34,816.06,15980000,816.06 +1970-12-03,802.64,816.88,801.48,808.53,20480000,808.53 +1970-12-02,794.29,805.72,787.86,802.64,17960000,802.64 +1970-12-01,794.09,805.65,787.45,794.29,20170000,794.29 +1970-11-30,781.35,797.51,780.26,794.09,17700000,794.09 +1970-11-27,774.71,783.61,771.15,781.35,10130000,781.35 +1970-11-25,772.73,780.94,768.48,774.71,13490000,774.71 +1970-11-24,767.52,775.60,762.60,772.73,12560000,772.73 +1970-11-23,761.57,773.41,759.79,767.52,12720000,767.52 +1970-11-20,755.82,764.10,752.19,761.57,10920000,761.57 +1970-11-19,754.24,760.47,749.52,755.82,9280000,755.82 +1970-11-18,760.47,761.77,751.78,754.24,9850000,754.24 +1970-11-17,760.13,768.48,756.37,760.47,9450000,760.47 +1970-11-16,759.79,764.99,752.46,760.13,9160000,760.13 +1970-11-13,767.94,767.94,755.61,759.79,11890000,759.79 +1970-11-12,779.50,781.76,765.88,768.00,12520000,768.00 +1970-11-11,777.38,788.75,776.29,779.50,13520000,779.50 +1970-11-10,777.66,783.00,773.34,777.38,12030000,777.38 +1970-11-09,771.97,782.38,769.85,777.66,10890000,777.66 +1970-11-06,771.56,777.38,765.81,771.97,9970000,771.97 +1970-11-05,770.81,775.94,765.68,771.56,10800000,771.56 +1970-11-04,768.07,777.25,764.92,770.81,12180000,770.81 +1970-11-03,758.01,771.50,756.02,768.07,11760000,768.07 +1970-11-02,755.61,762.25,750.68,758.01,9470000,758.01 +1970-10-30,753.56,759.38,748.36,755.61,10520000,755.61 +1970-10-29,755.96,760.34,749.45,753.56,10440000,753.56 +1970-10-28,754.45,759.31,746.71,755.96,10660000,755.96 +1970-10-27,756.43,759.38,750.21,754.45,9680000,754.45 +1970-10-26,759.38,764.24,753.42,756.43,9200000,756.43 +1970-10-23,757.87,764.03,753.90,759.38,10270000,759.38 +1970-10-22,759.65,763.28,753.22,757.87,9000000,757.87 +1970-10-21,758.83,769.24,756.64,759.65,11330000,759.65 +1970-10-20,756.50,764.03,750.82,758.83,10630000,758.83 +1970-10-19,763.35,766.09,753.29,756.50,9890000,756.50 +1970-10-16,767.87,771.70,759.10,763.35,11300000,763.35 +1970-10-15,762.73,773.27,760.88,767.87,11250000,767.87 +1970-10-14,760.06,767.25,754.72,762.73,9920000,762.73 +1970-10-13,764.24,767.11,754.38,760.06,9500000,760.06 +1970-10-12,768.69,770.47,758.42,764.24,8570000,764.24 +1970-10-09,777.04,780.46,764.72,768.69,13980000,768.69 +1970-10-08,783.68,789.29,773.48,777.04,14500000,777.04 +1970-10-07,782.45,788.47,771.22,783.68,15610000,783.68 +1970-10-06,776.70,791.07,773.62,782.45,20240000,782.45 +1970-10-05,766.16,780.53,763.76,776.70,19760000,776.70 +1970-10-02,760.68,769.72,756.43,766.16,15420000,766.16 +1970-10-01,760.68,764.79,754.38,760.68,9700000,760.68 +1970-09-30,760.88,766.91,754.79,760.68,14830000,760.68 +1970-09-29,758.97,766.09,749.66,760.88,17880000,760.88 +1970-09-28,761.77,764.65,750.68,758.97,14390000,758.97 +1970-09-25,759.31,767.39,754.65,761.77,20470000,761.77 +1970-09-24,754.38,764.99,749.04,759.31,21340000,759.31 +1970-09-23,747.47,762.32,744.25,754.38,16940000,754.38 +1970-09-22,751.92,753.15,741.51,747.47,12110000,747.47 +1970-09-21,758.49,763.96,748.22,751.92,12540000,751.92 +1970-09-18,757.67,766.29,751.92,758.49,15900000,758.49 +1970-09-17,754.31,766.29,751.57,757.67,15530000,757.67 +1970-09-16,750.55,759.45,744.18,754.31,12090000,754.31 +1970-09-15,757.05,757.05,745.14,750.55,9830000,750.55 +1970-09-14,761.84,766.84,751.37,757.12,11900000,757.12 +1970-09-11,760.75,767.32,755.48,761.84,12140000,761.84 +1970-09-10,766.43,768.69,754.65,760.75,11900000,760.75 +1970-09-09,773.14,776.97,759.31,766.43,16250000,766.43 +1970-09-08,771.15,778.27,759.99,773.14,17110000,773.14 +1970-09-04,765.27,775.12,761.91,771.15,15360000,771.15 +1970-09-03,756.64,770.33,755.89,765.27,14110000,765.27 +1970-09-02,758.15,760.13,748.43,756.64,9710000,756.64 +1970-09-01,764.58,766.16,754.93,758.15,10960000,758.15 +1970-08-31,765.81,770.67,759.86,764.58,10740000,764.58 +1970-08-28,759.79,772.04,756.37,765.81,13820000,765.81 +1970-08-27,760.47,766.84,752.53,759.79,12440000,759.79 +1970-08-26,758.97,769.78,755.34,760.47,15970000,760.47 +1970-08-25,759.58,764.17,747.47,758.97,17520000,758.97 +1970-08-24,747.19,765.68,747.19,759.58,18910000,759.58 +1970-08-21,729.60,748.84,728.78,745.41,13420000,745.41 +1970-08-20,723.99,732.82,717.76,729.60,10170000,729.60 +1970-08-19,716.66,728.92,715.09,723.99,9870000,723.99 +1970-08-18,709.47,721.11,709.47,716.66,9500000,716.66 +1970-08-17,710.84,713.92,704.41,709.06,6940000,709.06 +1970-08-14,707.35,715.84,704.75,710.84,7850000,710.84 +1970-08-13,710.64,713.51,702.83,707.35,8640000,707.35 +1970-08-12,712.55,716.87,707.83,710.64,7440000,710.64 +1970-08-11,713.92,716.73,706.39,712.55,7330000,712.55 +1970-08-10,725.01,725.01,709.95,713.92,7580000,713.92 +1970-08-07,722.82,731.93,718.03,725.70,9370000,725.70 +1970-08-06,724.81,728.92,716.86,722.82,7560000,722.82 +1970-08-05,725.90,732.06,719.67,724.81,7660000,724.81 +1970-08-04,722.96,728.85,714.88,725.90,8310000,725.90 +1970-08-03,734.12,734.67,718.65,722.96,7650000,722.96 +1970-07-31,734.73,743.36,728.23,734.12,11640000,734.12 +1970-07-30,735.56,740.07,728.78,734.73,10430000,734.73 +1970-07-29,731.45,742.40,729.39,735.56,12580000,735.56 +1970-07-28,730.08,735.49,724.40,731.45,9040000,731.45 +1970-07-27,730.22,735.01,724.53,730.08,7460000,730.08 +1970-07-24,732.68,736.58,722.96,730.22,9520000,730.22 +1970-07-23,724.67,737.88,718.44,732.68,12460000,732.68 +1970-07-22,722.07,735.01,716.25,724.67,12460000,724.67 +1970-07-21,733.91,734.12,717.96,722.07,9940000,722.07 +1970-07-20,735.08,743.36,728.64,733.91,11660000,733.91 +1970-07-17,725.49,739.46,725.49,735.08,13870000,735.08 +1970-07-16,712.14,730.76,712.14,723.44,12200000,723.44 +1970-07-15,703.04,716.32,699.48,711.66,8860000,711.66 +1970-07-14,702.22,707.69,696.40,703.04,7360000,703.04 +1970-07-13,700.10,709.34,696.19,702.22,7450000,702.22 +1970-07-10,692.77,704.41,689.69,700.10,10160000,700.10 +1970-07-09,682.09,697.63,681.48,692.77,12820000,692.77 +1970-07-08,669.36,684.08,666.00,682.09,10970000,682.09 +1970-07-07,675.66,679.90,665.32,669.36,10470000,669.36 +1970-07-06,689.14,689.90,671.69,675.66,9340000,675.66 +1970-07-02,687.64,697.02,684.76,689.14,8440000,689.14 +1970-07-01,683.53,692.02,678.26,687.64,8610000,687.64 +1970-06-30,682.91,692.36,679.08,683.53,9280000,683.53 +1970-06-29,687.84,691.13,679.15,682.91,8770000,682.91 +1970-06-26,693.59,700.51,686.06,687.84,9160000,687.84 +1970-06-25,692.29,701.60,686.40,693.59,8200000,693.59 +1970-06-24,698.11,705.37,685.31,692.29,12630000,692.29 +1970-06-23,716.11,716.66,696.40,698.11,10790000,698.11 +1970-06-22,720.43,723.17,707.15,716.11,8700000,716.11 +1970-06-19,713.65,728.23,713.65,720.43,10980000,720.43 +1970-06-18,704.68,718.92,696.95,712.69,8870000,712.69 +1970-06-17,706.26,715.36,699.55,704.68,9870000,704.68 +1970-06-16,687.36,711.80,686.88,706.26,11330000,706.26 +1970-06-15,684.21,694.82,679.83,687.36,6920000,687.36 +1970-06-12,684.42,688.66,674.90,684.21,8890000,684.21 +1970-06-11,694.35,695.44,677.85,684.42,7770000,684.42 +1970-06-10,700.16,703.24,690.03,694.35,7240000,694.35 +1970-06-09,700.23,705.64,695.17,700.16,7050000,700.16 +1970-06-08,695.03,709.75,689.83,700.23,8040000,700.23 +1970-06-05,706.53,707.56,687.91,695.03,12450000,695.03 +1970-06-04,713.86,723.92,704.41,706.53,14380000,706.53 +1970-06-03,709.61,721.73,702.22,713.86,16600000,713.86 +1970-06-02,710.36,719.13,698.32,709.61,13480000,709.61 +1970-06-01,700.44,715.64,694.14,710.36,15020000,710.36 +1970-05-29,684.15,703.86,673.06,700.44,14630000,700.44 +1970-05-28,666.96,690.92,666.96,684.15,18910000,684.15 +1970-05-27,631.98,668.81,631.98,663.20,17460000,663.20 +1970-05-26,641.36,649.64,627.46,631.16,17030000,631.16 +1970-05-25,660.80,660.80,639.10,641.36,12660000,641.36 +1970-05-22,665.25,675.11,653.27,662.17,12170000,662.17 +1970-05-21,676.55,676.62,654.37,665.25,16710000,665.25 +1970-05-20,690.72,690.72,674.56,676.55,13020000,676.55 +1970-05-19,702.81,704.20,689.62,691.40,9480000,691.40 +1970-05-18,702.22,709.74,695.35,702.81,8280000,702.81 +1970-05-15,684.79,705.58,680.37,702.22,14570000,702.22 +1970-05-14,693.57,693.57,673.51,684.79,13920000,684.79 +1970-05-13,703.80,703.80,686.64,693.84,10720000,693.84 +1970-05-12,710.07,715.15,699.31,704.59,10850000,704.59 +1970-05-11,717.73,721.03,707.04,710.07,6650000,710.07 +1970-05-08,723.07,725.51,713.04,717.73,6930000,717.73 +1970-05-07,718.39,730.33,713.37,723.07,9530000,723.07 +1970-05-06,709.74,731.19,707.76,718.39,14380000,718.39 +1970-05-05,714.56,720.63,704.46,709.74,10580000,709.74 +1970-05-04,732.38,732.38,710.40,714.56,11450000,714.56 +1970-05-01,736.07,740.76,723.60,733.63,8290000,733.63 +1970-04-30,737.39,745.58,728.48,736.07,9880000,736.07 +1970-04-29,724.33,740.03,716.74,737.39,15800000,737.39 +1970-04-28,735.15,740.76,720.70,724.33,12620000,724.33 +1970-04-27,747.29,750.46,731.72,735.15,10240000,735.15 +1970-04-24,750.59,754.42,742.21,747.29,10410000,747.29 +1970-04-23,760.63,760.63,745.45,750.59,11050000,750.59 +1970-04-22,772.51,774.35,758.51,762.61,10780000,762.61 +1970-04-21,775.87,783.00,769.87,772.51,8490000,772.51 +1970-04-20,775.94,780.56,769.67,775.87,8280000,775.87 +1970-04-17,775.87,781.22,766.96,775.94,10990000,775.94 +1970-04-16,782.60,787.22,773.03,775.87,10250000,775.87 +1970-04-15,780.56,788.87,777.06,782.60,9410000,782.60 +1970-04-14,785.90,787.35,772.90,780.56,10840000,780.56 +1970-04-13,790.46,793.82,782.07,785.90,8810000,785.90 +1970-04-10,792.50,797.25,785.04,790.46,10020000,790.46 +1970-04-09,791.64,798.84,786.96,792.50,9060000,792.50 +1970-04-08,791.64,796.00,787.42,791.64,9070000,791.64 +1970-04-07,791.18,797.12,785.70,791.64,8490000,791.64 +1970-04-06,791.84,796.07,786.30,791.18,8380000,791.18 +1970-04-03,792.37,796.40,787.02,791.84,9920000,791.84 +1970-04-02,792.04,797.91,787.02,792.37,10520000,792.37 +1970-04-01,785.57,795.67,784.05,792.04,9810000,792.04 +1970-03-31,784.65,789.20,778.38,785.57,8370000,785.57 +1970-03-30,791.05,792.37,779.17,784.65,9600000,784.65 +1970-03-26,790.13,797.45,785.24,791.05,11350000,791.05 +1970-03-25,775.67,803.26,775.67,790.13,17500000,790.13 +1970-03-24,764.52,776.99,764.52,773.76,8840000,773.76 +1970-03-23,763.66,768.41,757.99,763.60,7330000,763.60 +1970-03-20,764.98,768.55,758.91,763.66,7910000,763.66 +1970-03-19,767.95,773.76,761.55,764.98,8930000,764.98 +1970-03-18,767.42,775.67,763.93,767.95,9790000,767.95 +1970-03-17,765.05,773.36,759.17,767.42,9090000,767.42 +1970-03-16,772.11,772.84,760.16,765.05,8910000,765.05 +1970-03-13,776.47,779.30,768.02,772.11,9560000,772.11 +1970-03-12,778.12,781.55,771.77,776.47,9140000,776.47 +1970-03-11,779.70,785.84,774.29,778.12,9180000,778.12 +1970-03-10,778.31,785.37,772.18,779.70,9450000,779.70 +1970-03-09,784.12,785.57,773.56,778.31,9760000,778.31 +1970-03-06,787.55,789.93,779.37,784.12,10980000,784.12 +1970-03-05,788.15,795.54,783.13,787.55,11370000,787.55 +1970-03-04,787.42,795.54,782.27,788.15,11850000,788.15 +1970-03-03,780.23,790.52,775.08,787.42,11700000,787.42 +1970-03-02,777.59,790.52,774.49,780.23,12270000,780.23 +1970-02-27,764.45,784.19,762.61,777.59,12890000,777.59 +1970-02-26,768.28,770.53,755.48,764.45,11540000,764.45 +1970-02-25,754.42,772.70,749.47,768.28,13210000,768.28 +1970-02-24,757.46,761.68,748.88,754.42,10810000,754.42 +1970-02-20,757.92,764.45,749.34,757.46,10790000,757.46 +1970-02-19,756.80,766.90,751.58,757.92,12890000,757.92 +1970-02-18,747.43,762.61,745.45,756.80,11950000,756.80 +1970-02-17,753.70,757.13,741.09,747.43,10140000,747.43 +1970-02-16,753.30,761.09,748.02,753.70,19780000,753.70 +1970-02-13,755.61,758.65,745.97,753.30,11060000,753.30 +1970-02-12,757.33,762.28,748.88,755.61,10010000,755.61 +1970-02-11,746.63,760.69,739.90,757.33,12260000,757.33 +1970-02-10,755.68,758.51,743.20,746.63,10110000,746.63 +1970-02-09,752.77,764.92,750.40,755.68,10830000,755.68 +1970-02-06,750.26,758.71,744.98,752.77,10150000,752.77 +1970-02-05,754.49,756.73,743.33,750.26,9430000,750.26 +1970-02-04,757.46,765.97,748.09,754.49,11040000,754.49 +1970-02-03,746.44,764.45,738.78,757.46,16050000,757.46 +1970-02-02,744.06,756.47,739.37,746.44,13440000,746.44 +1970-01-30,748.35,756.20,739.11,744.06,12320000,744.06 +1970-01-29,758.84,760.69,743.73,748.35,12210000,748.35 +1970-01-28,763.99,769.87,755.74,758.84,10510000,758.84 +1970-01-27,768.88,773.03,757.92,763.99,9630000,763.99 +1970-01-26,775.54,777.52,762.54,768.88,10670000,768.88 +1970-01-23,786.10,789.40,774.35,775.54,11000000,775.54 +1970-01-22,782.27,793.16,777.39,786.10,11050000,786.10 +1970-01-21,777.85,788.61,773.96,782.27,9880000,782.27 +1970-01-20,776.07,783.13,770.72,777.85,11050000,777.85 +1970-01-19,782.60,784.52,772.18,776.07,9500000,776.07 +1970-01-16,785.04,791.97,778.25,782.60,11940000,782.60 +1970-01-15,787.16,791.25,777.98,785.04,11120000,785.04 +1970-01-14,788.01,796.73,780.36,787.16,10380000,787.16 +1970-01-13,790.52,796.79,782.47,788.01,9870000,788.01 +1970-01-12,798.11,799.23,786.30,790.52,8900000,790.52 +1970-01-09,802.07,805.70,794.35,798.11,9380000,798.11 +1970-01-08,801.81,809.33,796.92,802.07,10670000,802.07 +1970-01-07,803.66,808.47,796.20,801.81,10010000,801.81 +1970-01-06,811.31,814.08,798.71,803.66,11460000,803.66 +1970-01-05,809.20,819.23,804.84,811.31,11490000,811.31 +1970-01-02,800.36,813.56,797.32,809.20,8050000,809.20 +1969-12-31,794.68,806.69,792.24,800.36,19380000,800.36 +1969-12-30,792.37,799.63,786.30,794.68,15790000,794.68 +1969-12-29,797.65,803.19,787.62,792.37,12500000,792.37 +1969-12-26,794.15,802.47,790.85,797.65,6750000,797.65 +1969-12-24,783.79,799.63,782.67,794.15,11670000,794.15 +1969-12-23,785.97,789.66,776.27,783.79,13890000,783.79 +1969-12-22,789.86,796.13,781.48,785.97,12680000,785.97 +1969-12-19,783.79,798.18,780.76,789.86,15420000,789.86 +1969-12-18,769.93,788.87,764.45,783.79,15950000,783.79 +1969-12-17,773.83,780.16,765.71,769.93,12840000,769.93 +1969-12-16,784.05,787.42,770.46,773.83,11880000,773.83 +1969-12-15,786.69,791.97,779.63,784.05,11100000,784.05 +1969-12-12,783.53,794.61,780.23,786.69,11630000,786.69 +1969-12-11,783.99,791.25,778.38,783.53,10430000,783.53 +1969-12-10,783.79,791.51,773.76,783.99,12590000,783.99 +1969-12-09,785.04,794.42,778.18,783.79,12290000,783.79 +1969-12-08,793.03,797.32,781.48,785.04,9990000,785.04 +1969-12-05,796.53,804.05,788.94,793.03,11150000,793.03 +1969-12-04,793.36,801.15,783.86,796.53,13230000,796.53 +1969-12-03,801.35,804.78,789.93,793.36,11300000,793.36 +1969-12-02,805.04,808.34,794.94,801.35,9940000,801.35 +1969-12-01,812.30,816.39,802.20,805.04,9950000,805.04 +1969-11-28,810.52,818.57,805.37,812.30,8550000,812.30 +1969-11-26,807.29,814.15,800.36,810.52,10630000,810.52 +1969-11-25,812.90,818.37,803.92,807.29,11560000,807.29 +1969-11-24,823.13,825.96,808.01,812.90,10940000,812.90 +1969-11-21,831.18,832.43,820.35,823.13,9840000,823.13 +1969-11-20,839.96,840.28,823.98,831.18,12010000,831.18 +1969-11-19,845.17,848.60,835.93,839.96,11240000,839.96 +1969-11-18,842.53,848.67,836.99,845.17,11010000,845.17 +1969-11-17,849.26,851.04,837.45,842.53,10120000,842.53 +1969-11-14,849.85,854.74,842.00,849.26,10580000,849.26 +1969-11-13,855.99,858.90,844.64,849.85,12090000,849.85 +1969-11-12,859.75,863.98,851.70,855.99,12480000,855.99 +1969-11-11,863.05,866.62,853.62,859.75,10080000,859.75 +1969-11-10,860.48,871.77,856.65,863.05,12490000,863.05 +1969-11-07,855.20,867.28,850.38,860.48,13280000,860.48 +1969-11-06,854.08,859.82,846.49,855.20,11110000,855.20 +1969-11-05,853.48,862.59,847.54,854.08,12110000,854.08 +1969-11-04,854.54,859.82,841.67,853.48,12340000,853.48 +1969-11-03,855.99,860.68,847.41,854.54,11140000,854.54 +1969-10-31,850.51,860.61,845.04,855.99,13100000,855.99 +1969-10-30,848.34,854.28,839.82,850.51,12820000,850.51 +1969-10-29,855.86,858.83,845.37,848.34,12380000,848.34 +1969-10-28,860.28,865.23,851.90,855.86,12410000,855.86 +1969-10-27,862.26,866.95,852.56,860.28,12160000,860.28 +1969-10-24,855.73,868.00,851.31,862.26,15430000,862.26 +1969-10-23,860.35,863.38,845.23,855.73,14780000,855.73 +1969-10-22,846.88,864.37,844.90,860.35,19320000,860.35 +1969-10-21,839.23,850.78,834.94,846.88,16460000,846.88 +1969-10-20,836.06,844.18,829.59,839.23,13540000,839.23 +1969-10-17,838.77,845.23,829.73,836.06,13740000,836.06 +1969-10-16,830.06,848.14,825.50,838.77,19500000,838.77 +1969-10-15,832.43,837.12,823.13,830.06,15740000,830.06 +1969-10-14,821.21,839.49,821.21,832.43,19950000,832.43 +1969-10-13,806.96,820.88,804.51,819.30,13620000,819.30 +1969-10-10,803.79,813.23,799.89,806.96,12210000,806.96 +1969-10-09,802.20,808.94,793.95,803.79,10420000,803.79 +1969-10-08,806.23,809.79,797.65,802.20,10370000,802.20 +1969-10-07,809.40,813.23,803.13,806.23,10050000,806.23 +1969-10-06,808.41,814.94,802.73,809.40,9180000,809.40 +1969-10-03,811.84,819.76,803.59,808.41,12410000,808.41 +1969-10-02,806.89,815.87,797.78,811.84,11430000,811.84 +1969-10-01,813.09,814.48,803.37,806.89,9090000,806.89 +1969-09-30,818.04,821.67,808.54,813.09,9180000,813.09 +1969-09-29,824.18,826.03,811.05,818.04,10170000,818.04 +1969-09-26,829.92,832.83,820.09,824.18,9680000,824.18 +1969-09-25,834.68,838.50,826.49,829.92,10690000,829.92 +1969-09-24,834.81,840.48,829.53,834.68,11320000,834.68 +1969-09-23,831.77,841.80,827.28,834.81,13030000,834.81 +1969-09-22,830.39,835.80,823.79,831.77,9280000,831.77 +1969-09-19,831.57,837.32,825.30,830.39,12270000,830.39 +1969-09-18,826.56,836.66,822.80,831.57,11170000,831.57 +1969-09-17,831.64,835.47,821.61,826.56,10980000,826.56 +1969-09-16,830.45,836.85,824.84,831.64,11160000,831.64 +1969-09-15,824.25,835.73,821.28,830.45,10680000,830.45 +1969-09-12,825.77,830.65,818.37,824.25,10800000,824.25 +1969-09-11,828.01,838.50,821.94,825.77,12370000,825.77 +1969-09-10,815.67,831.71,813.69,828.01,11490000,828.01 +1969-09-09,811.84,822.20,804.45,815.67,10980000,815.67 +1969-09-08,819.50,820.55,808.67,811.84,8310000,811.84 +1969-09-05,825.30,826.82,816.46,819.50,8890000,819.50 +1969-09-04,835.67,835.67,822.20,825.30,9380000,825.30 +1969-09-03,837.78,841.61,829.86,835.67,8760000,835.67 +1969-09-02,836.72,845.96,831.31,837.78,8560000,837.78 +1969-08-29,828.41,839.96,825.37,836.72,8850000,836.72 +1969-08-28,824.78,832.23,822.14,828.41,7730000,828.41 +1969-08-27,823.52,830.39,819.43,824.78,9100000,824.78 +1969-08-26,830.39,830.39,818.84,823.52,8910000,823.52 +1969-08-25,837.25,841.54,828.01,831.44,8410000,831.44 +1969-08-22,834.87,843.72,829.33,837.25,10140000,837.25 +1969-08-21,833.22,839.69,828.60,834.87,8420000,834.87 +1969-08-20,833.69,837.91,827.55,833.22,9680000,833.22 +1969-08-19,827.68,841.28,824.97,833.69,12640000,833.69 +1969-08-18,820.88,830.39,816.46,827.68,9420000,827.68 +1969-08-15,813.23,825.17,810.52,820.88,10210000,820.88 +1969-08-14,809.13,818.11,805.37,813.23,9690000,813.23 +1969-08-13,812.96,815.07,800.62,809.13,9910000,809.13 +1969-08-12,819.83,821.54,810.39,812.96,7870000,812.96 +1969-08-11,824.46,826.76,816.33,819.83,6680000,819.83 +1969-08-08,826.27,830.27,819.87,824.46,8760000,824.46 +1969-08-07,825.88,832.02,820.26,826.27,9450000,826.27 +1969-08-06,821.23,831.63,817.67,825.88,11100000,825.88 +1969-08-05,822.58,827.30,813.40,821.23,8940000,821.23 +1969-08-04,826.59,835.06,817.61,822.58,10700000,822.58 +1969-08-01,815.60,833.63,815.60,826.59,15070000,826.59 +1969-07-31,803.58,819.87,800.67,815.47,14160000,815.47 +1969-07-30,801.96,809.40,788.07,803.58,15580000,803.58 +1969-07-29,806.23,817.86,798.41,801.96,13630000,801.96 +1969-07-28,818.06,819.48,803.26,806.23,11800000,806.23 +1969-07-25,826.53,830.08,814.83,818.06,9800000,818.06 +1969-07-24,827.95,834.22,821.10,826.53,9750000,826.53 +1969-07-23,834.02,836.48,821.35,827.95,11680000,827.95 +1969-07-22,845.92,851.54,831.76,834.02,9780000,834.02 +1969-07-18,853.09,853.54,839.06,845.92,8590000,845.92 +1969-07-17,849.34,863.04,845.79,853.09,10450000,853.09 +1969-07-16,841.13,854.64,840.29,849.34,10470000,849.34 +1969-07-15,843.14,847.60,832.79,841.13,11110000,841.13 +1969-07-14,852.25,855.93,841.07,843.14,8310000,843.14 +1969-07-11,847.79,858.91,844.49,852.25,11730000,852.25 +1969-07-10,861.04,861.04,844.30,847.79,11450000,847.79 +1969-07-09,870.35,871.06,857.94,861.62,9320000,861.62 +1969-07-08,880.82,880.82,866.47,870.35,9320000,870.35 +1969-07-07,886.12,893.87,879.27,883.21,9970000,883.21 +1969-07-03,880.69,891.55,877.71,886.12,10110000,886.12 +1969-07-02,875.90,884.69,872.87,880.69,11350000,880.69 +1969-07-01,873.19,881.27,867.83,875.90,9890000,875.90 +1969-06-30,869.76,880.69,867.18,873.19,8640000,873.19 +1969-06-27,870.28,876.49,863.56,869.76,9020000,869.76 +1969-06-26,874.10,876.16,862.78,870.28,10310000,870.28 +1969-06-25,877.20,884.69,870.41,874.10,10490000,874.10 +1969-06-24,870.86,883.73,869.25,877.20,11460000,877.20 +1969-06-23,876.16,880.75,862.46,870.86,12900000,870.86 +1969-06-20,882.37,888.77,873.32,876.16,11360000,876.16 +1969-06-19,887.09,889.54,877.46,882.37,11160000,882.37 +1969-06-18,885.73,897.10,882.30,887.09,11290000,887.09 +1969-06-17,891.16,893.29,876.55,885.73,12210000,885.73 +1969-06-16,894.84,902.79,888.83,891.16,10400000,891.16 +1969-06-13,892.58,902.28,886.89,894.84,13070000,894.84 +1969-06-12,904.60,906.22,890.71,892.58,11790000,892.58 +1969-06-11,912.49,913.39,899.24,904.60,13640000,904.60 +1969-06-10,918.05,922.83,909.32,912.49,10660000,912.49 +1969-06-09,924.77,925.48,911.91,918.05,10650000,918.05 +1969-06-06,930.71,936.14,921.41,924.77,12520000,924.77 +1969-06-05,928.84,937.24,925.35,930.71,12350000,930.71 +1969-06-04,930.78,936.47,925.87,928.84,10840000,928.84 +1969-06-03,933.17,937.56,925.74,930.78,11190000,930.78 +1969-06-02,937.56,938.73,927.68,933.17,9180000,933.17 +1969-05-29,936.92,944.29,931.62,937.56,11770000,937.56 +1969-05-28,938.66,941.96,928.58,936.92,11330000,936.92 +1969-05-27,946.94,950.23,934.33,938.66,10580000,938.66 +1969-05-26,947.45,954.05,942.22,946.94,9030000,946.94 +1969-05-23,950.04,953.92,942.48,947.45,10900000,947.45 +1969-05-22,951.78,963.09,946.10,950.04,13710000,950.04 +1969-05-21,949.26,956.18,941.31,951.78,12100000,951.78 +1969-05-20,959.02,959.86,944.35,949.26,10280000,949.26 +1969-05-19,967.30,968.98,954.56,959.02,9790000,959.02 +1969-05-16,965.16,971.56,959.80,967.30,12280000,967.30 +1969-05-15,968.85,973.18,958.51,965.16,11930000,965.16 +1969-05-14,962.97,974.92,959.86,968.85,14360000,968.85 +1969-05-13,957.86,967.62,954.37,962.97,12910000,962.97 +1969-05-12,961.61,964.97,951.14,957.86,10550000,957.86 +1969-05-09,963.68,971.11,955.86,961.61,12530000,961.61 +1969-05-08,959.60,970.14,954.76,963.68,13050000,963.68 +1969-05-07,962.06,967.36,953.08,959.60,14030000,959.60 +1969-05-06,958.95,968.23,954.05,962.06,14700000,962.06 +1969-05-05,957.17,965.43,951.07,958.95,13300000,958.95 +1969-05-02,949.22,961.68,945.41,957.17,13070000,957.17 +1969-05-01,950.18,958.69,942.74,949.22,14380000,949.22 +1969-04-30,934.10,956.28,933.97,950.18,19350000,950.18 +1969-04-29,925.08,937.60,922.28,934.10,14730000,934.10 +1969-04-28,924.00,930.73,917.13,925.08,11120000,925.08 +1969-04-25,921.20,929.65,916.24,924.00,12480000,924.00 +1969-04-24,917.64,925.65,911.60,921.20,11340000,921.20 +1969-04-23,918.59,927.43,913.13,917.64,12220000,917.64 +1969-04-22,917.51,922.09,908.81,918.59,10250000,918.59 +1969-04-21,924.82,928.19,913.76,917.51,10010000,917.51 +1969-04-18,924.12,932.26,916.94,924.82,10850000,924.82 +1969-04-17,923.49,930.80,917.90,924.12,9360000,924.12 +1969-04-16,931.94,932.89,920.69,923.49,9680000,923.49 +1969-04-15,932.64,937.28,924.63,931.94,9610000,931.94 +1969-04-14,933.46,938.36,926.73,932.64,8990000,932.64 +1969-04-11,932.89,939.12,927.17,933.46,10650000,933.46 +1969-04-10,929.97,941.28,927.87,932.89,12200000,932.89 +1969-04-09,923.17,933.59,920.63,929.97,12530000,929.97 +1969-04-08,918.78,927.81,913.89,923.17,9360000,923.17 +1969-04-07,926.09,926.09,911.03,918.78,9430000,918.78 +1969-04-03,930.92,933.66,921.39,927.30,10300000,927.30 +1969-04-02,933.08,936.90,924.57,930.92,10110000,930.92 +1969-04-01,935.48,942.23,928.38,933.08,12360000,933.08 +1969-03-28,930.88,941.38,928.02,935.48,12430000,935.48 +1969-03-27,923.30,936.16,921.74,930.88,11900000,930.88 +1969-03-26,917.08,926.84,914.72,923.30,11030000,923.30 +1969-03-25,917.08,923.05,911.30,917.08,9820000,917.08 +1969-03-24,920.00,924.04,912.48,917.08,8110000,917.08 +1969-03-21,920.13,926.16,913.35,920.00,9830000,920.00 +1969-03-20,912.11,924.79,911.24,920.13,10260000,920.13 +1969-03-19,907.38,917.52,903.53,912.11,9740000,912.11 +1969-03-18,904.03,913.97,902.16,907.38,11210000,907.38 +1969-03-17,904.28,909.00,895.76,904.03,9150000,904.03 +1969-03-14,907.14,911.36,899.55,904.28,8640000,904.28 +1969-03-13,916.77,916.77,903.97,907.14,10030000,907.14 +1969-03-12,920.93,926.22,912.67,917.52,8720000,917.52 +1969-03-11,917.14,928.77,914.53,920.93,9870000,920.93 +1969-03-10,911.18,920.87,906.51,917.14,8920000,917.14 +1969-03-07,913.54,914.59,900.67,911.18,10830000,911.18 +1969-03-06,923.11,923.79,908.94,913.54,9670000,913.54 +1969-03-05,919.51,929.89,916.65,923.11,11370000,923.11 +1969-03-04,908.63,922.55,908.50,919.51,9320000,919.51 +1969-03-03,905.21,914.04,902.04,908.63,8260000,908.63 +1969-02-28,903.03,911.74,900.17,905.21,8990000,905.21 +1969-02-27,905.77,908.88,897.07,903.03,9670000,903.03 +1969-02-26,899.80,912.11,895.39,905.77,9540000,905.77 +1969-02-25,903.97,914.41,896.32,899.80,9540000,899.80 +1969-02-24,916.65,918.95,900.17,903.97,12730000,903.97 +1969-02-20,925.10,928.46,913.04,916.65,10990000,916.65 +1969-02-19,930.82,936.91,923.23,925.10,10390000,925.10 +1969-02-18,937.53,937.53,923.11,930.82,12490000,930.82 +1969-02-17,951.95,954.87,935.11,937.72,11670000,937.72 +1969-02-14,952.70,959.16,945.67,951.95,11460000,951.95 +1969-02-13,949.09,957.73,942.57,952.70,12010000,952.70 +1969-02-12,948.97,954.00,942.81,949.09,11530000,949.09 +1969-02-11,947.85,954.00,941.94,948.97,12320000,948.97 +1969-02-07,946.67,954.00,940.39,947.85,12780000,947.85 +1969-02-06,945.98,954.07,939.46,946.67,12570000,946.67 +1969-02-05,945.11,952.32,938.53,945.98,13750000,945.98 +1969-02-04,946.85,951.27,938.59,945.11,12550000,945.11 +1969-02-03,946.05,953.01,936.41,946.85,12510000,946.85 +1969-01-31,942.13,950.71,937.28,946.05,12020000,946.05 +1969-01-30,938.09,947.23,934.36,942.13,13010000,942.13 +1969-01-29,938.40,943.62,931.94,938.09,11470000,938.09 +1969-01-28,937.47,944.49,930.88,938.40,12070000,938.40 +1969-01-27,938.59,944.37,932.00,937.47,11020000,937.47 +1969-01-24,940.20,946.85,932.93,938.59,12520000,938.59 +1969-01-23,934.17,945.98,932.56,940.20,13140000,940.20 +1969-01-22,929.82,938.46,925.16,934.17,11480000,934.17 +1969-01-21,931.25,936.29,923.92,929.82,10910000,929.82 +1969-01-20,935.54,939.40,927.09,931.25,10950000,931.25 +1969-01-17,938.59,944.06,930.20,935.54,11590000,935.54 +1969-01-16,931.75,945.55,930.07,938.59,13120000,938.59 +1969-01-15,928.33,940.51,924.23,931.75,11810000,931.75 +1969-01-14,923.11,931.56,918.32,928.33,10700000,928.33 +1969-01-13,925.53,930.63,917.14,923.11,11160000,923.11 +1969-01-10,927.46,937.22,921.31,925.53,12680000,925.53 +1969-01-09,921.25,935.67,918.64,927.46,12100000,927.46 +1969-01-08,925.72,932.19,915.53,921.25,13840000,921.25 +1969-01-07,936.66,939.33,915.84,925.72,15740000,925.72 +1969-01-06,951.89,956.05,932.93,936.66,12720000,936.66 +1969-01-03,947.73,960.16,942.94,951.89,12750000,951.89 +1969-01-02,943.75,956.36,940.39,947.73,9800000,947.73 +1968-12-31,945.11,950.46,936.66,943.75,13130000,943.75 +1968-12-30,952.51,955.87,938.90,945.11,12080000,945.11 +1968-12-27,954.25,961.96,947.54,952.51,11200000,952.51 +1968-12-26,952.32,961.52,948.47,954.25,9670000,954.25 +1968-12-24,953.75,961.28,945.11,952.32,11540000,952.32 +1968-12-23,966.99,969.05,949.47,953.75,12970000,953.75 +1968-12-20,975.14,983.90,962.83,966.99,15910000,966.99 +1968-12-19,970.91,980.11,954.62,975.14,19630000,975.14 +1968-12-17,976.32,978.80,962.46,970.91,14700000,970.91 +1968-12-16,981.29,989.12,970.60,976.32,15950000,976.32 +1968-12-13,977.13,990.99,972.03,981.29,16740000,981.29 +1968-12-12,977.69,987.20,969.05,977.13,18160000,977.13 +1968-12-10,979.36,986.01,971.06,977.69,14500000,977.69 +1968-12-09,978.24,987.01,971.41,979.36,15800000,979.36 +1968-12-06,977.69,986.39,970.10,978.24,15320000,978.24 +1968-12-05,985.21,989.31,969.67,977.69,19330000,977.69 +1968-12-03,983.34,990.99,973.83,985.21,15460000,985.21 +1968-12-02,985.08,994.65,974.76,983.34,15390000,983.34 +1968-11-29,976.32,989.56,971.59,985.08,14390000,985.08 +1968-11-27,979.49,984.96,969.17,976.32,16550000,976.32 +1968-11-26,971.35,986.20,969.11,979.49,16360000,979.49 +1968-11-25,967.06,977.13,961.46,971.35,14490000,971.35 +1968-11-22,965.13,973.89,958.23,967.06,15420000,967.06 +1968-11-21,966.75,971.35,953.69,965.13,18320000,965.13 +1968-11-19,963.70,972.40,957.48,966.75,15120000,966.75 +1968-11-18,965.88,970.85,957.11,963.70,14390000,963.70 +1968-11-15,963.89,972.59,956.24,965.88,15040000,965.88 +1968-11-14,967.43,972.90,957.86,963.89,14900000,963.89 +1968-11-13,964.20,973.83,958.98,967.43,15660000,967.43 +1968-11-12,958.98,972.15,953.75,964.20,17250000,964.20 +1968-11-08,950.65,965.07,947.41,958.98,14250000,958.98 +1968-11-07,949.47,957.55,938.59,950.65,11660000,950.65 +1968-11-06,946.23,959.97,941.01,949.47,12640000,949.47 +1968-11-04,948.41,952.01,936.54,946.23,10930000,946.23 +1968-11-01,952.39,961.15,941.88,948.41,14480000,948.41 +1968-10-31,951.08,965.00,944.06,952.39,17650000,952.39 +1968-10-29,957.73,961.96,945.67,951.08,12340000,951.08 +1968-10-28,961.28,966.50,951.45,957.73,11740000,957.73 +1968-10-25,956.68,966.81,950.96,961.28,14150000,961.28 +1968-10-24,963.14,967.37,949.34,956.68,18300000,956.68 +1968-10-22,967.49,970.41,957.92,963.14,13970000,963.14 +1968-10-21,967.49,974.27,959.54,967.49,14380000,967.49 +1968-10-18,958.91,971.72,955.06,967.49,15130000,967.49 +1968-10-17,955.31,969.29,952.51,958.91,21060000,958.91 +1968-10-15,949.96,960.47,946.05,955.31,13410000,955.31 +1968-10-14,949.59,955.37,942.50,949.96,11980000,949.96 +1968-10-11,949.78,955.18,942.96,949.59,12650000,949.59 +1968-10-10,956.24,958.66,944.24,949.78,17000000,949.78 +1968-10-08,956.68,963.33,950.58,956.24,14000000,956.24 +1968-10-07,952.95,961.03,946.98,956.68,12420000,956.68 +1968-10-04,949.47,957.30,943.93,952.95,15350000,952.95 +1968-10-03,942.32,954.81,940.39,949.47,21110000,949.47 +1968-10-01,935.79,948.66,932.93,942.32,15560000,942.32 +1968-09-30,933.80,941.45,926.59,935.79,13610000,935.79 +1968-09-27,933.24,938.40,926.09,933.80,13860000,933.80 +1968-09-26,938.28,945.86,928.08,933.24,18950000,933.24 +1968-09-24,930.45,942.69,926.22,938.28,15210000,938.28 +1968-09-23,924.42,934.05,920.93,930.45,11550000,930.45 +1968-09-20,923.98,930.01,917.14,924.42,14190000,924.42 +1968-09-19,923.05,933.43,916.27,923.98,17910000,923.98 +1968-09-17,921.37,929.08,916.77,923.05,13920000,923.05 +1968-09-16,917.21,927.46,912.98,921.37,13260000,921.37 +1968-09-13,915.65,923.36,909.12,917.21,13070000,917.21 +1968-09-12,919.38,923.26,908.07,915.65,14630000,915.65 +1968-09-10,924.98,931.32,914.41,919.38,11430000,919.38 +1968-09-09,921.25,932.31,916.89,924.98,11890000,924.98 +1968-09-06,917.52,928.27,912.54,921.25,13180000,921.25 +1968-09-05,906.95,921.87,904.03,917.52,12980000,917.52 +1968-09-04,900.36,911.18,896.26,906.95,10040000,906.95 +1968-09-03,896.01,904.96,892.59,900.36,8620000,900.36 +1968-08-30,894.33,902.35,891.29,896.01,8190000,896.01 +1968-08-29,893.65,900.73,886.69,894.33,10940000,894.33 +1968-08-27,896.13,901.48,888.18,893.65,9710000,893.65 +1968-08-26,892.34,902.23,890.04,896.13,9740000,896.13 +1968-08-23,888.30,899.37,883.83,892.34,9890000,892.34 +1968-08-22,888.67,894.95,878.85,888.30,15140000,888.30 +1968-08-20,887.68,894.64,879.97,888.67,10640000,888.67 +1968-08-19,885.89,893.15,880.66,887.68,9900000,887.68 +1968-08-16,879.51,889.44,877.17,885.89,9940000,885.89 +1968-08-15,884.68,892.32,874.76,879.51,12710000,879.51 +1968-08-13,881.02,890.82,877.71,884.68,12730000,884.68 +1968-08-12,869.65,884.20,867.66,881.02,10420000,881.02 +1968-08-09,870.37,876.26,863.33,869.65,8390000,869.65 +1968-08-08,876.92,882.82,866.58,870.37,12920000,870.37 +1968-08-06,872.53,881.38,868.86,876.92,9620000,876.92 +1968-08-05,871.27,879.33,865.86,872.53,8850000,872.53 +1968-08-02,878.07,879.27,865.19,871.27,9860000,871.27 +1968-08-01,883.00,892.02,874.94,878.07,14380000,878.07 +1968-07-30,883.36,890.64,876.99,883.00,10250000,883.00 +1968-07-29,888.47,893.59,877.23,883.36,10940000,883.36 +1968-07-26,885.47,895.21,878.55,888.47,11690000,888.47 +1968-07-25,898.10,901.29,880.41,885.47,16140000,885.47 +1968-07-23,900.32,904.48,889.68,898.10,13570000,898.10 +1968-07-22,913.92,914.52,894.31,900.32,13530000,900.32 +1968-07-19,917.95,924.21,907.60,913.92,14620000,913.92 +1968-07-18,921.20,926.55,911.93,917.95,17420000,917.95 +1968-07-16,923.72,928.84,913.56,921.20,13380000,921.20 +1968-07-15,922.46,929.32,915.24,923.72,13390000,923.72 +1968-07-12,922.82,929.92,914.88,922.46,14810000,922.46 +1968-07-11,920.42,933.83,915.78,922.82,20290000,922.82 +1968-07-09,912.60,924.87,908.63,920.42,16540000,920.42 +1968-07-08,903.51,920.00,901.89,912.60,16860000,912.60 +1968-07-03,896.84,907.18,893.29,903.51,14390000,903.51 +1968-07-02,896.35,902.97,889.62,896.84,13350000,896.84 +1968-07-01,897.80,904.05,889.68,896.35,11280000,896.35 +1968-06-28,898.76,905.14,892.26,897.80,12040000,897.80 +1968-06-27,901.41,909.23,891.78,898.76,15370000,898.76 +1968-06-25,901.83,908.08,895.09,901.41,13200000,901.41 +1968-06-24,900.93,908.14,895.09,901.83,12320000,901.83 +1968-06-21,898.28,907.96,891.48,900.93,13450000,900.93 +1968-06-20,900.20,909.29,892.63,898.28,16290000,898.28 +1968-06-18,903.45,909.17,895.09,900.20,13630000,900.20 +1968-06-17,913.62,917.35,898.40,903.45,12570000,903.45 +1968-06-14,913.86,918.91,904.48,913.62,14690000,913.62 +1968-06-13,917.95,924.93,908.93,913.86,21350000,913.86 +1968-06-11,913.38,924.81,909.41,917.95,15700000,917.95 +1968-06-10,914.88,922.94,907.54,913.38,14640000,913.38 +1968-06-07,910.13,920.84,906.28,914.88,17320000,914.88 +1968-06-06,907.42,918.01,901.71,910.13,16130000,910.13 +1968-06-05,916.63,922.10,904.05,907.42,15590000,907.42 +1968-06-04,905.38,923.00,902.43,916.63,18030000,916.63 +1968-06-03,899.00,912.12,896.23,905.38,14970000,905.38 +1968-05-31,895.21,907.96,891.72,899.00,13090000,899.00 +1968-05-29,896.78,903.69,889.44,895.21,14100000,895.21 +1968-05-28,891.60,901.95,886.97,896.78,13850000,896.78 +1968-05-27,895.28,898.76,885.53,891.60,12720000,891.60 +1968-05-24,893.15,900.49,886.67,895.28,13300000,895.28 +1968-05-23,896.79,901.47,888.23,893.15,12840000,893.15 +1968-05-22,896.32,906.73,891.82,896.79,14200000,896.79 +1968-05-21,894.19,902.39,886.33,896.32,13160000,896.32 +1968-05-20,898.98,902.10,887.54,894.19,11180000,894.19 +1968-05-17,903.72,905.92,891.18,898.98,11830000,898.98 +1968-05-16,907.82,913.08,898.17,903.72,13030000,903.72 +1968-05-15,908.06,914.64,900.08,907.82,13180000,907.82 +1968-05-14,909.96,915.28,900.89,908.06,13160000,908.06 +1968-05-13,912.91,918.34,903.90,909.96,11860000,909.96 +1968-05-10,911.35,920.48,906.38,912.91,11700000,912.91 +1968-05-09,918.86,921.81,904.82,911.35,12890000,911.35 +1968-05-08,919.90,927.42,911.52,918.86,13120000,918.86 +1968-05-07,914.53,926.78,910.54,919.90,13920000,919.90 +1968-05-06,919.21,922.79,903.61,914.53,12160000,914.53 +1968-05-03,918.05,935.68,913.49,919.21,17990000,919.21 +1968-05-02,913.20,923.43,906.90,918.05,14260000,918.05 +1968-05-01,912.22,919.85,902.51,913.20,14440000,913.20 +1968-04-30,908.34,918.11,901.70,912.22,14380000,912.22 +1968-04-29,906.03,914.01,900.72,908.34,12030000,908.34 +1968-04-26,905.57,912.27,898.00,906.03,13500000,906.03 +1968-04-25,898.46,912.56,895.98,905.57,14430000,905.57 +1968-04-24,897.48,904.65,889.68,898.46,14810000,898.46 +1968-04-23,891.99,904.47,890.43,897.48,14010000,897.48 +1968-04-22,897.65,897.88,881.24,891.99,11720000,891.99 +1968-04-19,908.40,908.40,890.72,897.65,14560000,897.65 +1968-04-18,908.17,916.78,901.24,909.21,15890000,909.21 +1968-04-17,906.78,912.74,896.84,908.17,14090000,908.17 +1968-04-16,910.19,917.36,899.33,906.78,15680000,906.78 +1968-04-15,905.69,916.03,893.61,910.19,14220000,910.19 +1968-04-11,892.63,908.29,886.56,905.69,14230000,905.69 +1968-04-10,884.42,905.74,884.07,892.63,20410000,892.63 +1968-04-08,865.81,888.35,865.18,884.42,13010000,884.42 +1968-04-05,872.52,877.31,862.11,865.81,12570000,865.81 +1968-04-04,869.11,879.68,862.46,872.52,14340000,872.52 +1968-04-03,863.96,883.38,859.45,869.11,19290000,869.11 +1968-04-02,861.25,869.63,852.12,863.96,14520000,863.96 +1968-04-01,849.23,870.90,849.23,861.25,17730000,861.25 +1968-03-29,835.12,845.87,831.48,840.67,9000000,840.67 +1968-03-28,836.57,841.08,830.67,835.12,8000000,835.12 +1968-03-27,831.54,841.42,830.33,836.57,8970000,836.57 +1968-03-26,827.27,836.17,823.62,831.54,8670000,831.54 +1968-03-25,826.05,831.25,819.87,827.27,6700000,827.27 +1968-03-22,825.13,831.48,817.61,826.05,9900000,826.05 +1968-03-21,830.85,836.40,822.58,825.13,8580000,825.13 +1968-03-20,832.99,836.63,826.34,830.85,7390000,830.85 +1968-03-19,840.09,842.35,829.63,832.99,7410000,832.99 +1968-03-18,837.55,854.25,836.28,840.09,10800000,840.09 +1968-03-15,830.91,843.39,825.01,837.55,11210000,837.55 +1968-03-14,841.54,841.54,824.26,830.91,11640000,830.91 +1968-03-13,843.22,847.72,836.22,842.23,8990000,842.23 +1968-03-12,843.04,847.55,834.72,843.22,9250000,843.22 +1968-03-11,835.24,846.63,833.56,843.04,9520000,843.04 +1968-03-08,836.22,840.38,828.59,835.24,7410000,835.24 +1968-03-07,837.21,843.62,830.33,836.22,8630000,836.22 +1968-03-06,827.03,841.37,826.46,837.21,9900000,837.21 +1968-03-05,830.56,837.44,821.72,827.03,11440000,827.03 +1968-03-04,840.44,842.75,828.02,830.56,10590000,830.56 +1968-03-01,840.50,845.24,836.05,840.44,8610000,840.44 +1968-02-29,844.72,847.03,835.76,840.50,7700000,840.50 +1968-02-28,846.68,853.33,841.71,844.72,8020000,844.72 +1968-02-27,841.77,848.59,835.93,846.68,7600000,846.68 +1968-02-26,849.80,850.79,836.40,841.77,7810000,841.77 +1968-02-23,849.23,857.78,844.43,849.80,8810000,849.80 +1968-02-21,843.10,855.05,840.50,849.23,9170000,849.23 +1968-02-20,838.65,847.67,836.05,843.10,8800000,843.10 +1968-02-19,836.34,843.97,830.50,838.65,7270000,838.65 +1968-02-16,839.23,841.66,830.85,836.34,9070000,836.34 +1968-02-15,837.38,846.16,833.62,839.23,9770000,839.23 +1968-02-14,831.77,841.94,826.46,837.38,11390000,837.38 +1968-02-13,840.04,843.68,828.36,831.77,10830000,831.77 +1968-02-09,850.32,851.65,834.84,840.04,11850000,840.04 +1968-02-08,859.92,863.27,847.84,850.32,9660000,850.32 +1968-02-07,861.25,867.78,855.93,859.92,8380000,859.92 +1968-02-06,861.13,867.31,854.83,861.25,8560000,861.25 +1968-02-05,863.56,867.66,854.77,861.13,8980000,861.13 +1968-02-02,861.36,871.30,856.22,863.56,10120000,863.56 +1968-02-01,855.47,864.89,850.55,861.36,10590000,861.36 +1968-01-31,859.57,863.90,850.50,855.47,9410000,855.47 +1968-01-30,863.67,867.95,852.92,859.57,10110000,859.57 +1968-01-29,865.06,873.04,858.53,863.67,9950000,863.67 +1968-01-26,864.25,873.79,859.51,865.06,9980000,865.06 +1968-01-25,862.23,871.24,853.44,864.25,12410000,864.25 +1968-01-24,864.77,870.20,854.83,862.23,10570000,862.23 +1968-01-23,871.71,875.06,860.15,864.77,11030000,864.77 +1968-01-22,880.32,881.24,866.68,871.71,10630000,871.71 +1968-01-19,882.80,889.27,876.21,880.32,11950000,880.32 +1968-01-18,883.78,893.49,879.33,882.80,13840000,882.80 +1968-01-17,887.14,890.89,877.48,883.78,12910000,883.78 +1968-01-16,892.74,896.56,882.34,887.14,12340000,887.14 +1968-01-15,898.98,903.03,888.93,892.74,12640000,892.74 +1968-01-12,899.79,906.58,891.07,898.98,13080000,898.98 +1968-01-11,903.95,911.35,895.28,899.79,13220000,899.79 +1968-01-10,908.29,911.87,897.94,903.95,11670000,903.95 +1968-01-09,908.92,921.87,903.26,908.29,13720000,908.29 +1968-01-08,901.24,915.63,896.27,908.92,14260000,908.92 +1968-01-05,899.39,908.06,893.55,901.24,11880000,901.24 +1968-01-04,904.13,908.23,889.51,899.39,13440000,899.39 +1968-01-03,906.84,916.15,899.56,904.13,12650000,904.13 +1968-01-02,905.11,914.30,897.54,906.84,11080000,906.84 +1967-12-29,897.83,910.37,893.44,905.11,14950000,905.11 +1967-12-28,894.94,902.97,886.73,897.83,12530000,897.83 +1967-12-27,888.12,900.14,884.59,894.94,12690000,894.94 +1967-12-26,887.37,893.96,881.93,888.12,9150000,888.12 +1967-12-22,888.35,894.94,880.95,887.37,9570000,887.37 +1967-12-21,886.90,897.71,883.78,888.35,11010000,888.35 +1967-12-20,881.36,892.86,876.33,886.90,11390000,886.90 +1967-12-19,881.65,886.96,875.69,881.36,10610000,881.36 +1967-12-18,880.61,889.91,874.94,881.65,10320000,881.65 +1967-12-15,883.44,890.43,875.87,880.61,11530000,880.61 +1967-12-14,882.34,891.47,878.53,883.44,12310000,883.44 +1967-12-13,881.30,887.77,881.14,882.34,12480000,882.34 +1967-12-12,882.05,887.54,873.32,881.30,10860000,881.30 +1967-12-11,887.25,892.16,876.96,882.05,10500000,882.05 +1967-12-08,892.22,895.92,883.55,887.25,10710000,887.25 +1967-12-07,892.28,901.76,887.94,892.22,12490000,892.22 +1967-12-06,888.12,896.50,884.19,892.28,11940000,892.28 +1967-12-05,883.50,895.80,881.24,888.12,12940000,888.12 +1967-12-04,879.16,888.35,876.33,883.50,11740000,883.50 +1967-12-01,875.81,882.69,868.76,879.16,9740000,879.16 +1967-11-30,883.15,887.48,872.63,875.81,8860000,875.81 +1967-11-29,884.88,894.88,878.24,883.15,11400000,883.15 +1967-11-28,882.11,890.43,876.62,884.88,11040000,884.88 +1967-11-27,877.60,887.77,873.21,882.11,10040000,882.11 +1967-11-24,874.02,882.80,867.26,877.60,9470000,877.60 +1967-11-22,870.95,884.54,865.87,874.02,12180000,874.02 +1967-11-21,857.78,876.68,857.49,870.95,12300000,870.95 +1967-11-20,862.11,862.58,839.40,857.78,12750000,857.78 +1967-11-17,859.74,869.28,853.96,862.11,10050000,862.11 +1967-11-16,855.18,867.49,852.12,859.74,10570000,859.74 +1967-11-15,852.40,860.44,845.01,855.18,10000000,855.18 +1967-11-14,859.74,864.60,849.23,852.40,10350000,852.40 +1967-11-13,862.81,872.98,855.06,859.74,10130000,859.74 +1967-11-10,856.97,868.93,854.83,862.81,9960000,862.81 +1967-11-09,849.57,862.86,846.28,856.97,8890000,856.97 +1967-11-08,855.29,870.67,847.61,849.57,12630000,849.57 +1967-11-06,856.62,860.61,844.89,855.29,10320000,855.29 +1967-11-03,864.83,867.95,853.10,856.62,8800000,856.62 +1967-11-02,867.08,878.87,860.55,864.83,10760000,864.83 +1967-11-01,879.74,880.95,863.44,867.08,10930000,867.08 +1967-10-31,886.62,890.72,876.21,879.74,12020000,879.74 +1967-10-30,888.18,894.07,880.37,886.62,10250000,886.62 +1967-10-27,890.89,896.15,882.98,888.18,9880000,888.18 +1967-10-26,886.73,896.04,881.99,890.89,9920000,890.89 +1967-10-25,888.18,893.44,877.31,886.73,10300000,886.73 +1967-10-24,894.65,903.84,885.52,888.18,11110000,888.18 +1967-10-23,896.73,900.43,883.03,894.65,9680000,894.65 +1967-10-20,903.72,906.96,891.35,896.73,9510000,896.73 +1967-10-19,903.49,914.41,899.68,903.72,11620000,903.72 +1967-10-18,904.36,910.48,896.15,903.49,10500000,903.49 +1967-10-17,908.52,912.97,896.73,904.36,10290000,904.36 +1967-10-16,918.17,922.97,905.46,908.52,9080000,908.52 +1967-10-13,913.20,924.41,908.58,918.17,9040000,918.17 +1967-10-12,920.25,922.56,909.79,913.20,7770000,913.20 +1967-10-11,926.61,929.73,916.61,920.25,11230000,920.25 +1967-10-10,933.31,940.07,921.35,926.61,12000000,926.61 +1967-10-09,928.74,940.36,924.47,933.31,11180000,933.31 +1967-10-06,927.13,935.74,921.58,928.74,9830000,928.74 +1967-10-05,921.29,931.46,917.88,927.13,8490000,927.13 +1967-10-04,924.47,932.33,916.32,921.29,11520000,921.29 +1967-10-03,921.00,930.77,916.49,924.47,10320000,924.47 +1967-10-02,926.66,930.42,915.92,921.00,9240000,921.00 +1967-09-29,929.38,933.77,919.85,926.66,9710000,926.66 +1967-09-28,933.14,937.30,925.05,929.38,10470000,929.38 +1967-09-27,937.18,942.61,927.88,933.14,8810000,933.14 +1967-09-26,943.08,951.57,934.12,937.18,10940000,937.18 +1967-09-25,934.35,949.66,931.75,943.08,10910000,943.08 +1967-09-22,930.48,940.48,923.95,934.35,11160000,934.35 +1967-09-21,929.79,938.22,924.12,930.48,11290000,930.48 +1967-09-20,930.07,936.89,922.50,929.79,10980000,929.79 +1967-09-19,938.74,944.64,926.95,930.07,11540000,930.07 +1967-09-18,933.48,944.58,929.73,938.74,11620000,938.74 +1967-09-15,929.44,938.51,923.25,933.48,10270000,933.48 +1967-09-14,923.77,939.38,923.72,929.44,12220000,929.44 +1967-09-13,911.75,928.40,911.64,923.77,12400000,923.77 +1967-09-12,909.62,916.84,905.05,911.75,9930000,911.75 +1967-09-11,907.54,916.20,902.68,909.62,9170000,909.62 +1967-09-08,908.17,914.41,901.24,907.54,9300000,907.54 +1967-09-07,906.96,913.49,901.64,908.17,8910000,908.17 +1967-09-06,904.13,913.55,899.27,906.96,9550000,906.96 +1967-09-05,901.18,909.91,895.69,904.13,8320000,904.13 +1967-09-01,901.29,906.84,894.19,901.18,7460000,901.18 +1967-08-31,893.72,906.38,893.09,901.29,8840000,901.29 +1967-08-30,894.76,900.72,888.64,893.72,7200000,893.72 +1967-08-29,894.71,900.20,887.94,894.76,6350000,894.76 +1967-08-28,894.07,902.16,887.83,894.71,6270000,894.71 +1967-08-25,898.46,900.49,888.81,894.07,7250000,894.07 +1967-08-24,905.11,910.54,896.09,898.46,7740000,898.46 +1967-08-23,907.48,910.14,896.44,905.11,8760000,905.11 +1967-08-22,912.27,916.15,903.61,907.48,7940000,907.48 +1967-08-21,919.04,921.64,907.48,912.27,8600000,912.27 +1967-08-18,918.23,925.51,912.79,919.04,8250000,919.04 +1967-08-17,915.68,923.89,912.85,918.23,8790000,918.23 +1967-08-16,919.15,921.64,910.83,915.68,8220000,915.68 +1967-08-15,916.32,924.93,912.85,919.15,8710000,919.15 +1967-08-14,920.65,922.16,909.96,916.32,7990000,916.32 +1967-08-11,925.22,928.11,915.57,920.65,8250000,920.65 +1967-08-10,926.72,933.14,920.77,925.22,9040000,925.22 +1967-08-09,922.45,931.75,919.09,926.72,10100000,926.72 +1967-08-08,920.37,927.88,916.67,922.45,8970000,922.45 +1967-08-07,923.77,930.65,915.34,920.37,10160000,920.37 +1967-08-04,921.98,931.06,917.65,923.77,11130000,923.77 +1967-08-03,922.27,929.67,908.11,921.98,13440000,921.98 +1967-08-02,913.55,931.29,913.55,922.27,13510000,922.27 +1967-08-01,904.24,917.19,900.25,912.97,12290000,912.97 +1967-07-31,901.53,912.85,896.67,904.24,10330000,904.24 +1967-07-28,903.14,910.31,896.15,901.53,10900000,901.53 +1967-07-27,903.14,912.79,896.96,903.14,12400000,903.14 +1967-07-26,901.29,908.17,895.75,903.14,11160000,903.14 +1967-07-25,904.53,909.56,895.52,901.29,9890000,901.29 +1967-07-24,909.56,912.68,897.48,904.53,9580000,904.53 +1967-07-21,908.69,918.69,903.03,909.56,11710000,909.56 +1967-07-20,903.32,913.83,896.79,908.69,11160000,908.69 +1967-07-19,896.09,908.75,892.63,903.32,12850000,903.32 +1967-07-18,882.74,899.79,879.39,896.09,12060000,896.09 +1967-07-17,882.05,891.30,875.35,882.74,10390000,882.74 +1967-07-14,878.53,889.62,872.52,882.05,10880000,882.05 +1967-07-13,878.70,885.81,873.04,878.53,10730000,878.53 +1967-07-12,879.45,885.40,870.55,878.70,11240000,878.70 +1967-07-11,875.52,886.15,870.90,879.45,12400000,879.45 +1967-07-10,869.05,880.37,866.04,875.52,12130000,875.52 +1967-07-07,864.02,874.42,860.32,869.05,11540000,869.05 +1967-07-06,864.94,871.24,858.70,864.02,10170000,864.02 +1967-07-05,859.69,871.01,857.43,864.94,9170000,864.94 +1967-07-03,860.26,864.60,853.21,859.69,6040000,859.69 +1967-06-30,861.94,867.83,855.58,860.26,7850000,860.26 +1967-06-29,868.87,873.67,859.45,861.94,9940000,861.94 +1967-06-28,869.39,875.17,864.14,868.87,9310000,868.87 +1967-06-27,872.11,875.87,864.14,869.39,8780000,869.39 +1967-06-26,877.37,884.30,866.91,872.11,9040000,872.11 +1967-06-23,875.69,883.32,870.95,877.37,9130000,877.37 +1967-06-22,877.66,881.13,868.82,875.69,9550000,875.69 +1967-06-21,880.61,886.90,872.52,877.66,9760000,877.66 +1967-06-20,884.54,890.72,876.44,880.61,10350000,880.61 +1967-06-19,885.00,890.03,877.43,884.54,8570000,884.54 +1967-06-16,883.26,892.80,879.68,885.00,10740000,885.00 +1967-06-15,880.61,891.24,873.32,883.26,11240000,883.26 +1967-06-14,886.15,890.78,876.39,880.61,10960000,880.61 +1967-06-13,878.93,892.68,875.75,886.15,11570000,886.15 +1967-06-12,874.89,884.77,870.49,878.93,10230000,878.93 +1967-06-09,873.20,881.94,865.08,874.89,9650000,874.89 +1967-06-08,869.19,875.17,861.64,873.20,8300000,873.20 +1967-06-07,862.71,877.14,860.57,869.19,10170000,869.19 +1967-06-06,848.33,868.46,848.33,862.71,9230000,862.71 +1967-06-05,858.41,858.41,836.92,847.77,11110000,847.77 +1967-06-02,864.98,870.82,857.46,863.31,8070000,863.31 +1967-06-01,852.56,869.60,850.56,864.98,9040000,864.98 +1967-05-31,864.64,864.64,850.39,852.56,8870000,852.56 +1967-05-29,870.32,871.60,860.24,864.98,6590000,864.98 +1967-05-26,870.71,875.22,863.31,870.32,7810000,870.32 +1967-05-25,862.42,876.50,860.36,870.71,8960000,870.71 +1967-05-24,868.71,870.49,857.18,862.42,10290000,862.42 +1967-05-23,871.05,875.72,862.03,868.71,9810000,868.71 +1967-05-22,874.55,876.61,863.75,871.05,9600000,871.05 +1967-05-19,877.34,881.24,867.59,874.55,10560000,874.55 +1967-05-18,882.24,885.13,873.27,877.34,10290000,877.34 +1967-05-17,885.80,891.37,878.40,882.24,9560000,882.24 +1967-05-16,882.41,891.76,877.90,885.80,10700000,885.80 +1967-05-15,890.03,892.26,878.67,882.41,8320000,882.41 +1967-05-12,896.21,900.67,885.86,890.03,10470000,890.03 +1967-05-11,894.10,901.56,888.25,896.21,10320000,896.21 +1967-05-10,899.89,902.23,888.47,894.10,10410000,894.10 +1967-05-09,909.63,915.87,897.05,899.89,10830000,899.89 +1967-05-08,905.96,915.31,899.44,909.63,10330000,909.63 +1967-05-05,901.95,910.91,898.05,905.96,10630000,905.96 +1967-05-04,896.77,906.57,892.65,901.95,12850000,901.95 +1967-05-03,891.65,900.95,886.41,896.77,11550000,896.77 +1967-05-02,892.93,898.39,886.19,891.65,10260000,891.65 +1967-05-01,897.05,900.50,887.81,892.93,9410000,892.93 +1967-04-28,894.82,903.73,891.20,897.05,11200000,897.05 +1967-04-27,889.03,898.33,882.74,894.82,10250000,894.82 +1967-04-26,891.20,898.50,883.96,889.03,10560000,889.03 +1967-04-25,887.53,894.93,880.73,891.20,10420000,891.20 +1967-04-24,883.18,894.82,877.84,887.53,10250000,887.53 +1967-04-21,878.62,888.30,873.61,883.18,10210000,883.18 +1967-04-20,873.94,882.18,869.04,878.62,9690000,878.62 +1967-04-19,873.00,882.07,868.76,873.94,10860000,873.94 +1967-04-18,866.59,876.73,861.92,873.00,10500000,873.00 +1967-04-17,859.74,874.83,857.91,866.59,9070000,866.59 +1967-04-14,848.83,865.03,847.05,859.74,8810000,859.74 +1967-04-13,844.65,852.84,840.81,848.83,7610000,848.83 +1967-04-12,847.66,852.67,841.48,844.65,7750000,844.65 +1967-04-11,842.43,852.39,838.98,847.66,7710000,847.66 +1967-04-10,852.84,852.84,839.76,842.43,8110000,842.43 +1967-04-07,861.25,866.59,850.22,853.34,9090000,853.34 +1967-04-06,861.19,867.59,856.51,861.25,9470000,861.25 +1967-04-05,859.19,867.26,855.23,861.19,8810000,861.19 +1967-04-04,859.97,865.65,852.17,859.19,8750000,859.19 +1967-04-03,865.98,868.43,854.45,859.97,8530000,859.97 +1967-03-31,869.99,874.28,861.19,865.98,8130000,865.98 +1967-03-30,871.10,875.39,863.92,869.99,8340000,869.99 +1967-03-29,875.28,880.40,866.31,871.10,8430000,871.10 +1967-03-28,873.72,882.13,868.37,875.28,8940000,875.28 +1967-03-27,876.67,883.41,869.15,873.72,9260000,873.72 +1967-03-23,870.55,882.29,868.82,876.67,9500000,876.67 +1967-03-22,866.59,875.11,857.68,870.55,8820000,870.55 +1967-03-21,870.43,879.18,861.25,866.59,9820000,866.59 +1967-03-20,869.77,877.28,862.36,870.43,9040000,870.43 +1967-03-17,868.49,876.50,861.80,869.77,10020000,869.77 +1967-03-16,854.51,872.33,854.51,868.49,12170000,868.49 +1967-03-15,844.27,856.90,842.65,854.06,10830000,854.06 +1967-03-14,844.82,850.33,836.86,844.27,10260000,844.27 +1967-03-13,848.50,853.56,840.59,844.82,9910000,844.82 +1967-03-10,845.43,864.25,845.43,848.50,14900000,848.50 +1967-03-09,843.32,850.72,836.53,844.15,10480000,844.15 +1967-03-08,841.76,851.00,836.36,843.32,11070000,843.32 +1967-03-07,842.20,847.10,835.30,841.76,9810000,841.76 +1967-03-06,846.60,851.45,837.86,842.20,10400000,842.20 +1967-03-03,846.71,853.51,841.04,846.60,11100000,846.60 +1967-03-02,843.49,852.62,840.87,846.71,11900000,846.71 +1967-03-01,839.37,852.12,836.47,843.49,11510000,843.49 +1967-02-28,836.64,844.27,827.95,839.37,9970000,839.37 +1967-02-27,847.33,849.44,830.46,836.64,10210000,836.64 +1967-02-24,846.77,854.79,839.64,847.33,9830000,847.33 +1967-02-23,844.10,851.67,837.31,846.77,10010000,846.77 +1967-02-21,847.88,851.39,840.03,844.10,9030000,844.10 +1967-02-20,850.84,853.90,839.81,847.88,8640000,847.88 +1967-02-17,851.56,856.35,845.88,850.84,8530000,850.84 +1967-02-16,855.79,863.42,846.60,851.56,8490000,851.56 +1967-02-15,856.90,863.47,850.22,855.79,10480000,855.79 +1967-02-14,853.34,862.64,848.39,856.90,9760000,856.90 +1967-02-13,855.73,860.52,848.72,853.34,7570000,853.34 +1967-02-10,857.52,861.36,847.72,855.73,8850000,855.73 +1967-02-09,860.97,871.71,854.06,857.52,10970000,857.52 +1967-02-08,852.51,865.37,850.11,860.97,11220000,860.97 +1967-02-07,855.12,857.68,847.27,852.51,6400000,852.51 +1967-02-06,857.46,862.53,849.72,855.12,10680000,855.12 +1967-02-03,853.12,864.09,849.78,857.46,12010000,857.46 +1967-02-02,848.39,857.68,842.20,853.12,10720000,853.12 +1967-02-01,849.89,854.51,842.54,848.39,9580000,848.39 +1967-01-31,848.11,857.02,844.82,849.89,11540000,849.89 +1967-01-30,844.04,854.57,840.48,848.11,10250000,848.11 +1967-01-27,838.70,850.17,836.14,844.04,9690000,844.04 +1967-01-26,840.59,848.27,830.18,838.70,10630000,838.70 +1967-01-25,847.72,852.67,837.69,840.59,10260000,840.59 +1967-01-24,847.72,853.12,836.30,847.72,10430000,847.72 +1967-01-23,847.16,856.68,841.43,847.72,10830000,847.72 +1967-01-20,846.44,851.39,838.59,847.16,9530000,847.16 +1967-01-19,847.49,853.73,840.81,846.44,10230000,846.44 +1967-01-18,843.65,853.34,839.14,847.49,11390000,847.49 +1967-01-17,833.24,848.72,830.57,843.65,11590000,843.65 +1967-01-16,835.13,842.48,828.12,833.24,10280000,833.24 +1967-01-13,829.95,838.47,821.15,835.13,10000000,835.13 +1967-01-12,822.49,839.25,819.76,829.95,12830000,829.95 +1967-01-11,814.14,827.11,798.71,822.49,13230000,822.49 +1967-01-10,813.47,820.93,808.18,814.14,8120000,814.14 +1967-01-09,808.74,818.87,803.34,813.47,9180000,813.47 +1967-01-06,805.51,816.53,801.67,808.74,7830000,808.74 +1967-01-05,791.64,807.90,791.64,805.51,7320000,805.51 +1967-01-04,786.41,795.54,776.16,791.14,6150000,791.14 +1967-01-03,785.69,800.55,782.34,786.41,6100000,786.41 +1966-12-30,786.35,794.59,779.34,785.69,11330000,785.69 +1966-12-29,788.58,792.70,781.51,786.35,7900000,786.35 +1966-12-28,792.20,799.38,785.96,788.58,7160000,788.58 +1966-12-27,799.10,802.61,788.25,792.20,6280000,792.20 +1966-12-23,801.67,806.51,793.09,799.10,7350000,799.10 +1966-12-22,797.43,807.18,793.87,801.67,8560000,801.67 +1966-12-21,794.59,802.00,789.69,797.43,7690000,797.43 +1966-12-20,798.99,800.66,789.42,794.59,6830000,794.59 +1966-12-19,807.18,807.46,792.70,798.99,7340000,798.99 +1966-12-16,809.18,813.02,802.22,807.18,6980000,807.18 +1966-12-15,817.98,820.82,804.45,809.18,7150000,809.18 +1966-12-14,816.70,823.66,810.63,817.98,7470000,817.98 +1966-12-13,820.54,827.22,812.08,816.70,9650000,816.70 +1966-12-12,813.02,826.67,810.52,820.54,9530000,820.54 +1966-12-09,812.80,818.20,804.95,813.02,7650000,813.02 +1966-12-08,808.01,818.81,805.95,812.80,8370000,812.80 +1966-12-07,797.43,812.41,795.43,808.01,8980000,808.01 +1966-12-06,791.59,800.94,788.25,797.43,7670000,797.43 +1966-12-05,789.47,795.54,784.35,791.59,6470000,791.59 +1966-12-02,789.75,794.82,783.51,789.47,6230000,789.47 +1966-12-01,791.59,797.93,785.63,789.75,8480000,789.75 +1966-11-30,795.26,796.21,784.79,791.59,7230000,791.59 +1966-11-29,801.16,803.28,791.59,795.26,7320000,795.26 +1966-11-28,803.34,808.24,793.59,801.16,7630000,801.16 +1966-11-25,796.82,807.68,793.87,803.34,6810000,803.34 +1966-11-23,794.98,804.78,789.36,796.82,7350000,796.82 +1966-11-22,798.16,799.55,785.46,794.98,6430000,794.98 +1966-11-21,807.73,807.73,791.09,798.16,7450000,798.16 +1966-11-18,816.03,817.81,804.95,809.40,6900000,809.40 +1966-11-17,820.87,825.61,808.90,816.03,8900000,816.03 +1966-11-16,815.31,827.33,812.69,820.87,10350000,820.87 +1966-11-15,813.75,819.48,808.12,815.31,7190000,815.31 +1966-11-14,819.09,823.10,808.29,813.75,6540000,813.75 +1966-11-11,816.87,822.32,810.46,819.09,6690000,819.09 +1966-11-10,809.91,822.38,807.18,816.87,8870000,816.87 +1966-11-09,802.22,815.64,799.72,809.91,8390000,809.91 +1966-11-07,805.06,809.85,796.38,802.22,6120000,802.22 +1966-11-04,804.34,809.57,793.54,805.06,6530000,805.06 +1966-11-03,807.29,812.24,798.32,804.34,5860000,804.34 +1966-11-02,809.63,815.92,801.61,807.29,6740000,807.29 +1966-11-01,807.07,814.30,800.33,809.63,6480000,809.63 +1966-10-31,807.96,812.91,797.04,807.07,5860000,807.07 +1966-10-28,809.57,816.64,801.44,807.96,6420000,807.96 +1966-10-27,801.11,814.97,800.77,809.57,6670000,809.57 +1966-10-26,793.09,809.29,792.31,801.11,6760000,801.11 +1966-10-25,787.75,796.60,780.34,793.09,6190000,793.09 +1966-10-24,787.30,796.10,781.73,787.75,5780000,787.75 +1966-10-21,783.68,791.36,777.17,787.30,5690000,787.30 +1966-10-20,785.35,796.04,778.11,783.68,6840000,783.68 +1966-10-19,791.87,799.22,779.84,785.35,6460000,785.35 +1966-10-18,778.89,795.65,777.44,791.87,7180000,791.87 +1966-10-17,771.71,789.14,770.82,778.89,5570000,778.89 +1966-10-14,772.93,782.90,765.14,771.71,5610000,771.71 +1966-10-13,778.17,791.09,768.81,772.93,8680000,772.93 +1966-10-12,758.63,780.12,752.89,778.17,6910000,778.17 +1966-10-11,754.51,771.43,752.44,758.63,8430000,758.63 +1966-10-10,744.32,758.07,735.74,754.51,9630000,754.51 +1966-10-07,749.61,756.84,739.64,744.32,8140000,744.32 +1966-10-06,755.45,759.52,744.09,749.61,8110000,749.61 +1966-10-05,763.19,768.04,751.72,755.45,5880000,755.45 +1966-10-04,757.96,767.53,750.33,763.19,8910000,763.19 +1966-10-03,774.22,778.11,756.79,757.96,6490000,757.96 +1966-09-30,772.66,779.34,763.91,774.22,6170000,774.22 +1966-09-29,780.95,783.18,768.26,772.66,6110000,772.66 +1966-09-28,794.09,795.60,777.33,780.95,5990000,780.95 +1966-09-27,792.70,805.45,789.53,794.09,6300000,794.09 +1966-09-26,790.97,797.32,784.46,792.70,4960000,792.70 +1966-09-23,797.77,800.11,787.36,790.97,4560000,790.97 +1966-09-22,793.59,801.83,785.69,797.77,5760000,797.77 +1966-09-21,806.01,806.73,792.53,793.59,5360000,793.59 +1966-09-20,810.85,813.08,801.22,806.01,4560000,806.01 +1966-09-19,814.30,818.54,804.00,810.85,4920000,810.85 +1966-09-16,814.30,822.93,808.35,814.30,5150000,814.30 +1966-09-15,806.23,821.26,804.62,814.30,6140000,814.30 +1966-09-14,795.48,809.02,789.58,806.23,6250000,806.23 +1966-09-13,790.59,803.11,789.25,795.48,6870000,795.48 +1966-09-12,775.61,795.32,775.61,790.59,6780000,790.59 +1966-09-09,774.88,781.01,767.92,775.55,5280000,775.55 +1966-09-08,777.39,782.46,763.36,774.88,6660000,774.88 +1966-09-07,782.34,787.30,771.77,777.39,5530000,777.39 +1966-09-06,787.69,795.15,778.84,782.34,4350000,782.34 +1966-09-02,792.09,796.26,776.72,787.69,6080000,787.69 +1966-09-01,788.41,798.94,782.12,792.09,6250000,792.09 +1966-08-31,777.44,796.49,777.44,788.41,8690000,788.41 +1966-08-30,767.03,781.62,759.52,775.72,11230000,775.72 +1966-08-29,780.56,781.06,763.97,767.03,10900000,767.03 +1966-08-26,792.37,792.53,776.22,780.56,8190000,780.56 +1966-08-25,799.55,806.23,789.08,792.37,6760000,792.37 +1966-08-24,790.20,805.45,790.20,799.55,7050000,799.55 +1966-08-23,792.03,801.78,781.90,790.14,9830000,790.14 +1966-08-22,804.62,807.79,786.85,792.03,8690000,792.03 +1966-08-19,810.74,816.75,801.50,804.62,7070000,804.62 +1966-08-18,819.59,821.15,804.73,810.74,7000000,810.74 +1966-08-17,823.83,827.28,813.69,819.59,6630000,819.59 +1966-08-16,834.79,834.79,820.04,823.83,6130000,823.83 +1966-08-15,840.53,845.65,831.79,834.85,5680000,834.85 +1966-08-12,837.91,847.66,834.68,840.53,6230000,840.53 +1966-08-11,838.53,843.65,830.56,837.91,5700000,837.91 +1966-08-10,844.82,846.71,835.02,838.53,5290000,838.53 +1966-08-09,849.05,853.11,841.09,844.82,6270000,844.82 +1966-08-08,852.39,854.78,842.42,849.05,4900000,849.05 +1966-08-05,851.50,860.57,845.71,852.39,5500000,852.39 +1966-08-04,841.70,858.57,841.20,851.50,6880000,851.50 +1966-08-03,832.90,847.99,832.90,841.70,6220000,841.70 +1966-08-02,835.18,840.97,827.28,832.57,5710000,832.57 +1966-08-01,846.60,846.60,830.84,835.18,5880000,835.18 +1966-07-29,854.06,857.46,843.76,847.38,5150000,847.38 +1966-07-28,856.23,862.75,850.50,854.06,5680000,854.06 +1966-07-27,852.17,863.30,850.55,856.23,6070000,856.23 +1966-07-26,852.83,861.19,846.88,852.17,7610000,852.17 +1966-07-25,869.15,870.43,850.50,852.83,7050000,852.83 +1966-07-22,873.99,877.50,864.97,869.15,6540000,869.15 +1966-07-21,874.49,880.34,866.98,873.99,6200000,873.99 +1966-07-20,884.07,887.08,872.60,874.49,5470000,874.49 +1966-07-19,888.41,889.81,876.55,884.07,5960000,884.07 +1966-07-18,889.36,892.98,882.18,888.41,5110000,888.41 +1966-07-15,887.80,896.65,883.74,889.36,6090000,889.36 +1966-07-14,881.40,892.48,878.17,887.80,5950000,887.80 +1966-07-13,886.19,887.58,875.33,881.40,5580000,881.40 +1966-07-12,893.09,896.65,882.46,886.19,5180000,886.19 +1966-07-11,894.04,901.16,888.64,893.09,6200000,893.09 +1966-07-08,891.64,898.44,885.57,894.04,6100000,894.04 +1966-07-07,888.86,898.21,883.90,891.64,7200000,891.64 +1966-07-06,875.27,893.20,872.43,888.86,6860000,888.86 +1966-07-05,877.06,884.13,869.09,875.27,4610000,875.27 +1966-07-01,870.10,884.02,869.93,877.06,5200000,877.06 +1966-06-30,871.60,876.33,858.90,870.10,7250000,870.10 +1966-06-29,880.90,884.29,869.15,871.60,6020000,871.60 +1966-06-28,888.97,890.81,874.83,880.90,6280000,880.90 +1966-06-27,897.16,904.06,887.47,888.97,5330000,888.97 +1966-06-24,896.43,904.17,888.41,897.16,7140000,897.16 +1966-06-23,901.00,908.51,893.48,896.43,7930000,896.43 +1966-06-22,894.98,904.62,892.59,901.00,7800000,901.00 +1966-06-21,892.76,900.44,889.36,894.98,6860000,894.98 +1966-06-20,894.26,898.21,887.24,892.76,5940000,892.76 +1966-06-17,897.16,900.55,889.75,894.26,6580000,894.26 +1966-06-16,901.11,903.61,890.92,897.16,6870000,897.16 +1966-06-15,903.17,910.35,897.82,901.11,8520000,901.11 +1966-06-14,897.60,907.18,891.53,903.17,7600000,903.17 +1966-06-13,891.75,904.67,891.64,897.60,7600000,897.60 +1966-06-10,882.62,896.77,880.84,891.75,8240000,891.75 +1966-06-09,879.34,887.30,874.05,882.62,5810000,882.62 +1966-06-08,877.33,883.68,872.16,879.34,4580000,879.34 +1966-06-07,881.68,882.62,870.32,877.33,5040000,877.33 +1966-06-06,887.86,888.95,876.22,881.68,4260000,881.68 +1966-06-03,882.73,890.86,879.73,887.86,4430000,887.86 +1966-06-02,883.63,890.64,878.34,882.73,5080000,882.73 +1966-06-01,884.07,888.53,877.33,883.63,5290000,883.63 +1966-05-31,897.04,899.61,881.73,884.07,5770000,884.07 +1966-05-27,891.75,899.77,885.85,897.04,4790000,897.04 +1966-05-26,890.42,900.33,886.80,891.75,6080000,891.75 +1966-05-25,888.41,894.98,881.29,890.42,5820000,890.42 +1966-05-24,882.46,898.38,882.12,888.41,7210000,888.41 +1966-05-23,876.89,889.86,873.49,882.46,7080000,882.46 +1966-05-20,872.99,880.06,863.53,876.89,6430000,876.89 +1966-05-19,878.50,887.86,869.65,872.99,8640000,872.99 +1966-05-18,864.42,883.96,864.42,878.50,9310000,878.50 +1966-05-17,867.53,876.83,859.13,864.14,9870000,864.14 +1966-05-16,876.11,881.73,862.86,867.53,9260000,867.53 +1966-05-13,884.85,884.85,868.65,876.11,8970000,876.11 +1966-05-12,895.43,900.00,878.84,885.57,8210000,885.57 +1966-05-11,895.48,908.40,892.70,895.43,7470000,895.43 +1966-05-10,886.80,904.39,886.35,895.48,9050000,895.48 +1966-05-09,902.83,903.39,883.18,886.80,9290000,886.80 +1966-05-06,899.77,909.18,882.90,902.83,13110000,902.83 +1966-05-05,914.86,919.65,897.55,899.77,10100000,899.77 +1966-05-04,921.77,923.38,906.23,914.86,9740000,914.86 +1966-05-03,931.95,932.12,919.20,921.77,8020000,921.77 +1966-05-02,933.68,939.64,926.61,931.95,7070000,931.95 +1966-04-29,937.41,942.09,930.23,933.68,7220000,933.68 +1966-04-28,944.54,945.54,927.22,937.41,8310000,937.41 +1966-04-27,947.21,951.28,937.58,944.54,7950000,944.54 +1966-04-26,950.55,955.56,943.20,947.21,7540000,947.21 +1966-04-25,949.83,957.51,942.09,950.55,7270000,950.55 +1966-04-22,954.73,957.23,944.09,949.83,8650000,949.83 +1966-04-21,951.28,961.91,946.82,954.73,9560000,954.73 +1966-04-20,941.75,957.01,941.75,951.28,10530000,951.28 +1966-04-19,941.98,946.99,934.02,941.64,8820000,941.64 +1966-04-18,947.77,953.22,936.91,941.98,9150000,941.98 +1966-04-15,945.48,957.40,941.70,947.77,10270000,947.77 +1966-04-14,938.36,953.67,936.52,945.48,12980000,945.48 +1966-04-13,937.24,945.32,930.01,938.36,10440000,938.36 +1966-04-12,942.42,947.10,932.51,937.24,10500000,937.24 +1966-04-11,945.76,950.77,937.69,942.42,9310000,942.42 +1966-04-07,945.26,952.39,939.53,945.76,9650000,945.76 +1966-04-06,944.71,951.22,937.58,945.26,9040000,945.26 +1966-04-05,937.86,951.44,935.91,944.71,10560000,944.71 +1966-04-04,931.29,945.48,930.51,937.86,9360000,937.86 +1966-04-01,924.77,936.30,921.77,931.29,9050000,931.29 +1966-03-31,919.76,929.12,916.31,924.77,6690000,924.77 +1966-03-30,928.00,928.00,915.31,919.76,7980000,919.76 +1966-03-29,932.62,937.19,922.88,929.39,8300000,929.39 +1966-03-28,929.95,940.36,928.61,932.62,8640000,932.62 +1966-03-25,928.61,936.52,925.38,929.95,7750000,929.95 +1966-03-24,929.00,933.35,923.37,928.61,7880000,928.61 +1966-03-23,934.52,935.91,924.88,929.00,6720000,929.00 +1966-03-22,929.28,942.92,929.28,934.52,8910000,934.52 +1966-03-21,922.88,935.52,921.65,929.17,7230000,929.17 +1966-03-18,919.32,928.95,914.58,922.88,6450000,922.88 +1966-03-17,916.03,922.99,912.58,919.32,5460000,919.32 +1966-03-16,911.08,922.27,909.13,916.03,7330000,916.03 +1966-03-15,917.09,919.15,905.40,911.08,9440000,911.08 +1966-03-14,927.95,930.01,914.36,917.09,7400000,917.09 +1966-03-11,929.23,937.30,924.72,927.95,7000000,927.95 +1966-03-10,929.84,941.42,924.10,929.23,10310000,929.23 +1966-03-09,919.98,933.51,918.98,929.84,7980000,929.84 +1966-03-08,917.78,928.95,909.57,919.98,10120000,919.98 +1966-03-07,932.34,932.46,914.81,917.78,9370000,917.78 +1966-03-04,936.35,943.31,928.89,932.34,9000000,932.34 +1966-03-03,932.01,941.25,922.27,936.35,9900000,936.35 +1966-03-02,938.19,943.09,927.78,932.01,10470000,932.01 +1966-03-01,951.89,955.17,935.52,938.19,11030000,938.19 +1966-02-28,953.00,960.41,948.21,951.89,9910000,951.89 +1966-02-25,950.66,962.30,946.10,953.00,8140000,953.00 +1966-02-24,960.13,962.19,946.60,950.66,7860000,950.66 +1966-02-23,966.48,967.87,955.12,960.13,8080000,960.13 +1966-02-21,975.22,977.11,962.80,966.48,8510000,966.48 +1966-02-18,975.27,982.07,966.31,975.22,8470000,975.22 +1966-02-17,982.40,985.85,969.93,975.27,9330000,975.27 +1966-02-16,981.57,987.80,976.22,982.40,9180000,982.40 +1966-02-15,987.69,990.81,977.61,981.57,8750000,981.57 +1966-02-14,989.03,995.60,983.24,987.69,8360000,987.69 +1966-02-11,990.81,997.99,984.96,989.03,8150000,989.03 +1966-02-10,995.15,1000.27,986.74,990.81,9790000,990.81 +1966-02-09,991.03,1001.11,987.63,995.15,9760000,995.15 +1966-02-08,989.69,998.71,979.28,991.03,10560000,991.03 +1966-02-07,986.35,996.71,981.84,989.69,8000000,989.69 +1966-02-04,981.23,991.53,976.00,986.35,7560000,986.35 +1966-02-03,982.29,991.59,976.33,981.23,8160000,981.23 +1966-02-02,975.89,985.35,967.81,982.29,8130000,982.29 +1966-02-01,983.51,987.47,969.43,975.89,9090000,975.89 +1966-01-31,985.35,992.53,979.67,983.51,7800000,983.51 +1966-01-28,990.36,994.59,979.95,985.35,9000000,985.35 +1966-01-27,990.92,997.49,985.02,990.36,8970000,990.36 +1966-01-26,991.64,999.16,984.13,990.92,9910000,990.92 +1966-01-25,991.42,998.21,986.52,991.64,9300000,991.64 +1966-01-24,988.14,999.22,984.63,991.42,8780000,991.42 +1966-01-21,987.80,993.20,980.62,988.14,9180000,988.14 +1966-01-20,991.14,997.77,983.90,987.80,8670000,987.80 +1966-01-19,994.20,1000.55,985.30,991.14,10230000,991.14 +1966-01-18,989.75,1000.50,984.68,994.20,9790000,994.20 +1966-01-17,987.30,996.60,984.02,989.75,9430000,989.75 +1966-01-14,985.69,994.09,982.07,987.30,9210000,987.30 +1966-01-13,983.96,992.65,980.23,985.69,8860000,985.69 +1966-01-12,986.85,992.59,980.45,983.96,8530000,983.96 +1966-01-11,985.41,993.04,980.34,986.85,8910000,986.85 +1966-01-10,986.13,991.92,980.56,985.41,7720000,985.41 +1966-01-07,985.46,991.59,978.61,986.13,7600000,986.13 +1966-01-06,981.62,992.26,979.00,985.46,7880000,985.46 +1966-01-05,969.26,984.85,968.76,981.62,9650000,981.62 +1966-01-04,968.54,978.50,963.02,969.26,7540000,969.26 +1966-01-03,969.26,974.55,961.91,968.54,5950000,968.54 +1965-12-31,963.69,976.61,962.58,969.26,7240000,969.26 +1965-12-30,960.30,969.76,957.62,963.69,7060000,963.69 +1965-12-29,957.96,969.15,953.67,960.30,7610000,960.30 +1965-12-28,959.79,966.09,950.05,957.96,7280000,957.96 +1965-12-27,966.36,972.49,958.29,959.79,5950000,959.79 +1965-12-23,965.86,972.93,959.35,966.36,6870000,966.36 +1965-12-22,959.46,974.16,956.34,965.86,9720000,965.86 +1965-12-21,952.22,964.86,950.05,959.46,8230000,959.46 +1965-12-20,957.85,960.69,947.16,952.22,7350000,952.22 +1965-12-17,959.13,966.09,952.61,957.85,9490000,957.85 +1965-12-16,958.74,967.14,953.78,959.13,9950000,959.13 +1965-12-15,954.06,964.81,947.99,958.74,9560000,958.74 +1965-12-14,951.55,959.85,948.05,954.06,9920000,954.06 +1965-12-13,952.72,959.52,946.54,951.55,8660000,951.55 +1965-12-10,949.55,957.51,945.71,952.72,8740000,952.72 +1965-12-09,946.60,955.67,942.59,949.55,9150000,949.55 +1965-12-08,951.33,959.63,943.42,946.60,10120000,946.60 +1965-12-07,939.53,958.63,938.80,951.33,9340000,951.33 +1965-12-06,946.10,946.15,924.44,939.53,11440000,939.53 +1965-12-03,944.59,950.94,939.36,946.10,8160000,946.10 +1965-12-02,947.60,951.11,938.80,944.59,9070000,944.59 +1965-12-01,946.71,953.00,941.81,947.60,10140000,947.60 +1965-11-30,946.93,950.89,937.24,946.71,8990000,946.71 +1965-11-29,948.16,954.84,942.48,946.93,8760000,946.93 +1965-11-26,948.94,953.56,943.76,948.16,6970000,948.16 +1965-11-24,948.94,956.06,942.98,948.94,7870000,948.94 +1965-11-23,946.38,953.28,941.87,948.94,7150000,948.94 +1965-11-22,952.72,954.95,941.48,946.38,6370000,946.38 +1965-11-19,950.50,958.51,946.88,952.72,6850000,952.72 +1965-11-18,956.57,958.24,945.26,950.50,7040000,950.50 +1965-11-17,956.51,963.14,950.66,956.57,9120000,956.57 +1965-11-16,955.90,962.08,950.27,956.51,8380000,956.51 +1965-11-15,956.29,963.91,951.39,955.90,8310000,955.90 +1965-11-12,953.28,961.80,949.44,956.29,7780000,956.29 +1965-11-11,951.22,955.84,946.15,953.28,5430000,953.28 +1965-11-10,951.72,957.34,946.60,951.22,4860000,951.22 +1965-11-09,953.95,959.13,945.76,951.72,6680000,951.72 +1965-11-08,959.46,961.74,948.60,953.95,7000000,953.95 +1965-11-05,961.85,967.42,953.89,959.46,7310000,959.46 +1965-11-04,961.13,969.98,956.23,961.85,8380000,961.85 +1965-11-03,958.96,965.97,953.06,961.13,7520000,961.13 +1965-11-01,960.82,964.36,953.61,958.96,6340000,958.96 +1965-10-29,959.11,966.47,955.38,960.82,7240000,960.82 +1965-10-28,959.50,965.21,952.75,959.11,7230000,959.11 +1965-10-27,956.32,967.46,954.83,959.50,7670000,959.50 +1965-10-26,948.14,959.44,945.95,956.32,6750000,956.32 +1965-10-25,952.42,958.95,944.30,948.14,7090000,948.14 +1965-10-22,950.28,959.39,946.71,952.42,8960000,952.42 +1965-10-21,948.47,957.36,944.90,950.28,9170000,950.28 +1965-10-20,947.76,953.57,941.72,948.47,8200000,948.47 +1965-10-19,945.84,955.49,943.15,947.76,8620000,947.76 +1965-10-18,940.68,952.31,939.31,945.84,8180000,945.84 +1965-10-15,937.50,945.07,934.15,940.68,7470000,940.68 +1965-10-14,941.01,946.22,933.87,937.50,8580000,937.50 +1965-10-13,941.12,945.84,935.74,941.01,9470000,941.01 +1965-10-12,942.65,947.92,936.73,941.12,9470000,941.12 +1965-10-11,938.32,948.30,936.40,942.65,9600000,942.65 +1965-10-08,934.42,944.08,932.50,938.32,7670000,938.32 +1965-10-07,936.84,941.83,930.75,934.42,6670000,934.42 +1965-10-06,938.70,942.49,927.29,936.84,6010000,936.84 +1965-10-05,930.86,942.49,930.14,938.70,6980000,938.70 +1965-10-04,929.65,935.57,924.05,930.86,5590000,930.86 +1965-10-01,930.58,936.07,923.23,929.65,7470000,929.65 +1965-09-30,932.39,939.20,927.40,930.58,8670000,930.58 +1965-09-29,935.85,944.96,927.89,932.39,10600000,932.39 +1965-09-28,937.88,943.42,928.66,935.85,8750000,935.85 +1965-09-27,929.54,944.74,927.89,937.88,6820000,937.88 +1965-09-24,927.45,933.65,918.89,929.54,7810000,929.54 +1965-09-23,931.62,938.37,922.95,927.45,9990000,927.45 +1965-09-22,926.52,936.62,922.35,931.62,8290000,931.62 +1965-09-21,931.18,936.73,923.45,926.52,7750000,926.52 +1965-09-20,928.99,937.00,924.27,931.18,7040000,931.18 +1965-09-17,931.18,934.59,922.57,928.99,6610000,928.99 +1965-09-16,922.95,935.46,922.73,931.18,7410000,931.18 +1965-09-15,916.59,927.89,913.41,922.95,6220000,922.95 +1965-09-14,920.92,928.22,913.57,916.59,7830000,916.59 +1965-09-13,918.95,927.62,913.41,920.92,7020000,920.92 +1965-09-10,917.47,924.00,911.65,918.95,6650000,918.95 +1965-09-09,913.68,923.12,911.81,917.47,7360000,917.47 +1965-09-08,910.11,918.45,905.67,913.68,6240000,913.68 +1965-09-07,907.97,915.22,904.30,910.11,5750000,910.11 +1965-09-03,900.46,910.28,900.46,907.97,6010000,907.97 +1965-09-02,893.60,903.03,892.17,900.40,6470000,900.40 +1965-09-01,893.10,897.93,886.96,893.60,5890000,893.60 +1965-08-31,895.63,900.84,888.22,893.10,5170000,893.10 +1965-08-30,895.96,899.69,890.52,895.63,4400000,895.63 +1965-08-27,896.18,901.88,891.95,895.96,5570000,895.96 +1965-08-26,890.85,899.25,886.74,896.18,6010000,896.18 +1965-08-25,887.12,895.79,884.38,890.85,6240000,890.85 +1965-08-24,887.07,893.05,883.50,887.12,4740000,887.12 +1965-08-23,889.92,893.65,883.94,887.07,4470000,887.07 +1965-08-20,891.79,894.97,884.71,889.92,4170000,889.92 +1965-08-19,894.37,900.13,889.43,891.79,5000000,891.79 +1965-08-18,894.26,901.39,890.30,894.37,5850000,894.37 +1965-08-17,891.13,898.37,888.11,894.26,4520000,894.26 +1965-08-16,888.82,896.89,886.41,891.13,5270000,891.13 +1965-08-13,881.96,891.95,880.48,888.82,5430000,888.82 +1965-08-12,881.47,886.90,876.86,881.96,5160000,881.96 +1965-08-11,878.89,885.42,876.48,881.47,5030000,881.47 +1965-08-10,879.77,883.39,875.43,878.89,4690000,878.89 +1965-08-09,882.51,887.40,876.31,879.77,4540000,879.77 +1965-08-06,881.63,886.57,875.38,882.51,4200000,882.51 +1965-08-05,883.88,886.96,878.34,881.63,4920000,881.63 +1965-08-04,881.20,888.11,878.40,883.88,4830000,883.88 +1965-08-03,881.85,885.04,874.78,881.20,4640000,881.20 +1965-08-02,881.74,888.11,876.48,881.85,4220000,881.85 +1965-07-30,875.49,885.31,875.49,881.74,5200000,881.74 +1965-07-29,867.92,877.85,864.62,874.23,4690000,874.23 +1965-07-28,863.53,873.18,858.42,867.92,4760000,867.92 +1965-07-27,867.26,872.09,860.78,863.53,4190000,863.53 +1965-07-26,863.97,870.66,858.75,867.26,3790000,867.26 +1965-07-23,861.77,869.40,859.58,863.97,3600000,863.97 +1965-07-22,865.01,868.08,857.71,861.77,3310000,861.77 +1965-07-21,868.79,872.58,860.95,865.01,4350000,865.01 +1965-07-20,880.26,882.02,866.82,868.79,4670000,868.79 +1965-07-19,880.43,884.54,876.09,880.26,3220000,880.26 +1965-07-16,880.98,885.91,875.98,880.43,3520000,880.43 +1965-07-15,883.23,889.98,878.62,880.98,4420000,880.98 +1965-07-14,876.97,886.24,874.23,883.23,4100000,883.23 +1965-07-13,877.96,881.03,872.47,876.97,3260000,876.97 +1965-07-12,879.49,883.99,874.39,877.96,3690000,877.96 +1965-07-09,877.85,885.04,874.72,879.49,4800000,879.49 +1965-07-08,870.77,880.59,867.20,877.85,4380000,877.85 +1965-07-07,873.18,874.61,866.71,870.77,3020000,870.77 +1965-07-06,875.16,879.60,870.00,873.18,3400000,873.18 +1965-07-02,871.59,878.40,866.76,875.16,4260000,875.16 +1965-07-01,868.03,873.84,861.88,871.59,4520000,871.59 +1965-06-30,856.94,873.35,856.94,868.03,6930000,868.03 +1965-06-29,840.59,856.45,832.74,851.40,10450000,851.40 +1965-06-28,854.36,858.86,838.78,840.59,7650000,840.59 +1965-06-25,857.76,861.99,849.75,854.36,5790000,854.36 +1965-06-24,870.22,870.93,854.64,857.76,5840000,857.76 +1965-06-23,875.43,879.38,868.25,870.22,3580000,870.22 +1965-06-22,874.12,882.18,871.48,875.43,3330000,875.43 +1965-06-21,879.17,881.47,868.79,874.12,3280000,874.12 +1965-06-18,883.06,888.22,875.10,879.17,4330000,879.17 +1965-06-17,878.07,888.44,876.20,883.06,5220000,883.06 +1965-06-16,874.57,886.13,873.40,878.07,6290000,878.07 +1965-06-15,868.71,876.75,859.13,874.57,8450000,874.57 +1965-06-14,881.70,885.43,863.87,868.71,5920000,868.71 +1965-06-11,876.49,886.55,874.52,881.70,5350000,881.70 +1965-06-10,879.84,887.56,869.35,876.49,7470000,876.49 +1965-06-09,889.05,893.79,875.90,879.84,7070000,879.84 +1965-06-08,902.15,903.16,886.71,889.05,4660000,889.05 +1965-06-07,900.87,907.47,889.90,902.15,4680000,902.15 +1965-06-04,899.22,905.02,894.69,900.87,4530000,900.87 +1965-06-03,904.06,913.11,896.40,899.22,5720000,899.22 +1965-06-02,908.53,910.08,894.75,904.06,6790000,904.06 +1965-06-01,918.04,921.85,907.04,908.53,4830000,908.53 +1965-05-28,913.22,920.69,910.89,918.04,4270000,918.04 +1965-05-27,917.16,918.20,904.82,913.22,5520000,913.22 +1965-05-26,921.00,927.48,915.09,917.16,5330000,917.16 +1965-05-25,914.21,924.58,912.55,921.00,4950000,921.00 +1965-05-24,922.01,924.27,910.89,914.21,4790000,914.21 +1965-05-21,927.27,928.02,918.66,922.01,4660000,922.01 +1965-05-20,932.12,934.17,922.41,927.27,5750000,927.27 +1965-05-19,930.62,936.87,926.97,932.12,5860000,932.12 +1965-05-18,930.67,932.82,924.36,930.62,5130000,930.62 +1965-05-17,939.62,941.52,928.07,930.67,4980000,930.67 +1965-05-14,938.87,944.82,933.82,939.62,5860000,939.62 +1965-05-13,934.17,942.37,933.52,938.87,6460000,938.87 +1965-05-12,930.92,938.12,928.72,934.17,6310000,934.17 +1965-05-11,931.47,934.87,925.62,930.92,5150000,930.92 +1965-05-10,932.52,937.22,926.62,931.47,5600000,931.47 +1965-05-07,933.52,937.07,927.07,932.52,5820000,932.52 +1965-05-06,932.22,938.12,928.02,933.52,6340000,933.52 +1965-05-05,928.22,936.37,924.91,932.22,6350000,932.22 +1965-05-04,922.11,931.07,919.71,928.22,5720000,928.22 +1965-05-03,922.31,926.97,916.66,922.11,5340000,922.11 +1965-04-30,918.71,925.42,915.36,922.31,5190000,922.31 +1965-04-29,918.86,923.01,914.91,918.71,5510000,918.71 +1965-04-28,918.16,923.56,914.01,918.86,5680000,918.86 +1965-04-27,916.86,924.96,915.76,918.16,6310000,918.16 +1965-04-26,916.41,920.11,910.21,916.86,5410000,916.86 +1965-04-23,915.06,921.51,912.26,916.41,5860000,916.41 +1965-04-22,910.71,917.51,908.31,915.06,5990000,915.06 +1965-04-21,911.96,915.31,903.81,910.71,5590000,910.71 +1965-04-20,912.76,919.01,908.01,911.96,6480000,911.96 +1965-04-19,911.91,917.41,907.91,912.76,5700000,912.76 +1965-04-15,912.86,917.01,905.71,911.91,5830000,911.91 +1965-04-14,908.01,916.51,905.96,912.86,6580000,912.86 +1965-04-13,906.36,912.41,902.21,908.01,6690000,908.01 +1965-04-12,901.29,909.51,899.90,906.36,6040000,906.36 +1965-04-09,897.90,905.77,895.93,901.29,6580000,901.29 +1965-04-08,892.94,900.41,890.72,897.90,5770000,897.90 +1965-04-07,891.90,895.84,888.27,892.94,4430000,892.94 +1965-04-06,893.23,896.13,888.51,891.90,4610000,891.90 +1965-04-05,893.38,898.69,889.00,893.23,4920000,893.23 +1965-04-02,890.33,897.31,888.71,893.38,5060000,893.38 +1965-04-01,889.05,894.95,886.84,890.33,4890000,890.33 +1965-03-31,889.05,893.72,885.51,889.05,4470000,889.05 +1965-03-30,887.82,892.99,885.27,889.05,4270000,889.05 +1965-03-29,891.66,896.43,884.68,887.82,4590000,887.82 +1965-03-26,898.34,900.60,888.51,891.66,5020000,891.66 +1965-03-25,900.56,904.88,895.74,898.34,5460000,898.34 +1965-03-24,898.69,904.39,896.13,900.56,5420000,900.56 +1965-03-23,896.12,902.32,893.82,898.69,4820000,898.69 +1965-03-22,895.79,901.14,892.87,896.12,4920000,896.12 +1965-03-19,896.55,900.43,892.20,895.79,5040000,895.79 +1965-03-18,899.37,902.67,893.35,896.55,4990000,896.55 +1965-03-17,898.90,904.01,894.45,899.37,5120000,899.37 +1965-03-16,899.85,904.58,894.83,898.90,5480000,898.90 +1965-03-15,900.33,907.88,896.89,899.85,6000000,899.85 +1965-03-12,896.51,905.16,894.50,900.33,6370000,900.33 +1965-03-11,892.39,900.71,890.24,896.51,5770000,896.51 +1965-03-10,894.07,898.13,888.81,892.39,5100000,892.39 +1965-03-09,896.84,900.71,890.72,894.07,5210000,894.07 +1965-03-08,895.98,901.81,891.30,896.84,5250000,896.84 +1965-03-05,897.75,898.61,886.28,895.98,6120000,895.98 +1965-03-04,900.76,905.25,894.45,897.75,7300000,897.75 +1965-03-03,901.91,906.95,896.27,900.76,6600000,900.76 +1965-03-02,899.76,905.73,896.17,901.91,5730000,901.91 +1965-03-01,903.48,907.40,895.55,899.76,5780000,899.76 +1965-02-26,899.90,908.26,897.08,903.48,5800000,903.48 +1965-02-25,897.84,904.82,894.64,899.90,6680000,899.90 +1965-02-24,891.96,900.76,891.30,897.84,7160000,897.84 +1965-02-23,885.61,895.84,884.60,891.96,5880000,891.96 +1965-02-19,883.69,890.24,880.25,885.61,5560000,885.61 +1965-02-18,882.93,888.52,878.53,883.69,6060000,883.69 +1965-02-17,881.35,889.10,877.86,882.93,5510000,882.93 +1965-02-16,885.32,887.90,877.48,881.35,5000000,881.35 +1965-02-15,888.47,895.26,882.60,885.32,5760000,885.32 +1965-02-12,881.88,891.15,881.45,888.47,4960000,888.47 +1965-02-11,892.92,897.70,879.97,881.88,5800000,881.88 +1965-02-10,901.24,905.54,890.77,892.92,7210000,892.92 +1965-02-09,897.89,905.40,896.12,901.24,5690000,901.24 +1965-02-08,901.57,901.86,889.96,897.89,6010000,897.89 +1965-02-05,904.06,906.93,897.70,901.57,5690000,901.57 +1965-02-04,906.30,911.80,900.33,904.06,6230000,904.06 +1965-02-03,903.77,909.75,898.99,906.30,6130000,906.30 +1965-02-02,903.68,907.21,898.61,903.77,5460000,903.77 +1965-02-01,902.86,908.26,897.99,903.68,5690000,903.68 +1965-01-29,900.95,907.79,898.32,902.86,6940000,902.86 +1965-01-28,899.52,906.26,895.79,900.95,6730000,900.95 +1965-01-27,897.84,904.44,894.26,899.52,6010000,899.52 +1965-01-26,896.46,901.86,892.30,897.84,5760000,897.84 +1965-01-25,893.59,900.71,890.82,896.46,5370000,896.46 +1965-01-22,893.26,898.70,888.43,893.59,5430000,893.59 +1965-01-21,895.31,897.46,887.81,893.26,4780000,893.26 +1965-01-20,896.27,901.43,891.92,895.31,5550000,895.31 +1965-01-19,895.21,902.10,891.10,896.27,5550000,896.27 +1965-01-18,891.15,898.90,889.86,895.21,5550000,895.21 +1965-01-15,887.18,895.12,884.65,891.15,5340000,891.15 +1965-01-14,886.85,892.30,881.59,887.18,5810000,887.18 +1965-01-13,885.89,891.77,883.22,886.85,6160000,886.85 +1965-01-12,883.22,889.34,880.97,885.89,5400000,885.89 +1965-01-11,882.60,887.42,877.43,883.22,5440000,883.22 +1965-01-08,884.36,888.62,878.87,882.60,5340000,882.60 +1965-01-07,879.68,887.52,876.95,884.36,5080000,884.36 +1965-01-06,875.86,885.08,875.04,879.68,4850000,879.68 +1965-01-05,869.78,879.87,868.69,875.86,4110000,875.86 +1965-01-04,874.13,877.19,865.10,869.78,3930000,869.78 +1964-12-31,868.78,879.78,868.78,874.13,6470000,874.13 +1964-12-30,862.18,871.51,861.56,868.69,5610000,868.69 +1964-12-29,867.01,868.78,858.26,862.18,4450000,862.18 +1964-12-28,868.16,871.98,863.09,867.01,3990000,867.01 +1964-12-24,868.02,872.89,863.57,868.16,3600000,868.16 +1964-12-23,870.36,876.05,863.19,868.02,4470000,868.02 +1964-12-22,869.74,876.38,865.86,870.36,4520000,870.36 +1964-12-21,868.73,875.62,866.10,869.74,4470000,869.74 +1964-12-18,863.57,872.22,862.95,868.73,4630000,868.73 +1964-12-17,860.08,867.30,857.50,863.57,4850000,863.57 +1964-12-16,857.45,865.34,854.87,860.08,4610000,860.08 +1964-12-15,860.65,862.71,850.19,857.45,5340000,857.45 +1964-12-14,864.34,868.78,857.40,860.65,4340000,860.65 +1964-12-11,863.14,869.31,860.22,864.34,4530000,864.34 +1964-12-10,863.81,869.16,858.46,863.14,4790000,863.14 +1964-12-09,870.69,873.13,861.61,863.81,5120000,863.81 +1964-12-08,873.99,878.44,867.35,870.69,4990000,870.69 +1964-12-07,871.17,881.35,871.17,873.99,4770000,873.99 +1964-12-04,870.79,875.09,866.44,870.93,4340000,870.93 +1964-12-03,867.25,876.86,867.25,870.79,4250000,870.79 +1964-12-02,864.43,871.84,861.08,867.16,4930000,867.16 +1964-12-01,875.43,877.96,863.04,864.43,4940000,864.43 +1964-11-30,882.12,885.22,871.46,875.43,4890000,875.43 +1964-11-27,882.40,886.80,874.47,882.12,4070000,882.12 +1964-11-25,887.61,890.00,880.16,882.40,4800000,882.40 +1964-11-24,889.29,891.49,881.11,887.61,5070000,887.61 +1964-11-23,890.72,894.83,882.88,889.29,4860000,889.29 +1964-11-20,888.71,896.41,884.51,890.72,5210000,890.72 +1964-11-19,891.71,892.97,882.07,888.71,5570000,888.71 +1964-11-18,885.39,897.00,884.69,891.71,6560000,891.71 +1964-11-17,880.19,892.18,880.19,885.39,5920000,885.39 +1964-11-16,874.11,883.52,870.22,880.10,4870000,880.10 +1964-11-13,874.62,878.46,870.73,874.11,4860000,874.11 +1964-11-12,873.59,880.00,870.41,874.62,5250000,874.62 +1964-11-11,870.64,876.17,866.80,873.59,3790000,873.59 +1964-11-10,874.57,878.32,867.60,870.64,5020000,870.64 +1964-11-09,876.87,880.00,871.34,874.57,4560000,874.57 +1964-11-06,873.54,879.35,869.33,876.87,4810000,876.87 +1964-11-05,873.82,879.26,869.10,873.54,4380000,873.54 +1964-11-04,875.51,881.27,870.41,873.82,4720000,873.82 +1964-11-02,873.08,878.13,867.64,875.51,4430000,875.51 +1964-10-30,871.86,876.91,868.91,873.08,4120000,873.08 +1964-10-29,871.16,876.87,867.83,871.86,4390000,871.86 +1964-10-28,875.98,879.58,867.79,871.16,4890000,871.16 +1964-10-27,877.01,880.33,872.75,875.98,4470000,875.98 +1964-10-26,877.62,883.33,873.45,877.01,5230000,877.01 +1964-10-23,877.01,879.91,872.14,877.62,3830000,877.62 +1964-10-22,879.72,883.33,872.51,877.01,4670000,877.01 +1964-10-21,881.50,886.28,876.49,879.72,5170000,879.72 +1964-10-20,876.21,884.87,873.97,881.50,5140000,881.50 +1964-10-19,873.54,879.82,870.41,876.21,5010000,876.21 +1964-10-16,868.44,877.71,866.80,873.54,5140000,873.54 +1964-10-15,875.18,876.40,861.42,868.44,6500000,868.44 +1964-10-14,876.21,880.00,872.00,875.18,4530000,875.18 +1964-10-13,877.57,881.88,871.95,876.21,5400000,876.21 +1964-10-12,878.08,881.50,874.76,877.57,4110000,877.57 +1964-10-09,874.90,881.78,872.65,878.08,5290000,878.08 +1964-10-08,873.78,879.40,869.56,874.90,5060000,874.90 +1964-10-07,875.14,879.02,871.34,873.78,5090000,873.78 +1964-10-06,877.15,881.17,872.05,875.14,4820000,875.14 +1964-10-05,872.65,882.39,871.48,877.15,4850000,877.15 +1964-10-02,872.00,876.21,867.36,872.65,4370000,872.65 +1964-10-01,875.37,878.23,869.80,872.00,4470000,872.00 +1964-09-30,875.74,880.24,872.19,875.37,4720000,875.37 +1964-09-29,875.46,880.14,871.30,875.74,5070000,875.74 +1964-09-28,874.71,879.40,869.24,875.46,4810000,875.46 +1964-09-25,872.98,879.26,868.72,874.71,6170000,874.71 +1964-09-24,871.95,876.96,867.04,872.98,5840000,872.98 +1964-09-23,872.47,876.77,867.88,871.95,5920000,871.95 +1964-09-22,871.58,877.43,868.67,872.47,5250000,872.47 +1964-09-21,866.47,875.00,866.47,871.58,5310000,871.58 +1964-09-18,868.67,873.92,860.20,865.12,6160000,865.12 +1964-09-17,864.18,873.17,862.87,868.67,6380000,868.67 +1964-09-16,862.54,867.64,857.35,864.18,4230000,864.18 +1964-09-15,866.24,871.30,860.95,862.54,5690000,862.54 +1964-09-14,867.13,872.84,862.35,866.24,5370000,866.24 +1964-09-11,859.50,870.64,857.06,867.13,5630000,867.13 +1964-09-10,855.57,863.06,852.66,859.50,5470000,859.50 +1964-09-09,851.91,860.01,850.56,855.57,5690000,855.57 +1964-09-08,848.31,855.61,847.61,851.91,4090000,851.91 +1964-09-04,846.02,850.84,843.58,848.31,4210000,848.31 +1964-09-03,845.08,848.97,841.24,846.02,4310000,846.02 +1964-09-02,844.00,849.62,840.96,845.08,4800000,845.08 +1964-09-01,838.48,846.06,836.56,844.00,4650000,844.00 +1964-08-31,839.09,842.83,834.59,838.48,3340000,838.48 +1964-08-28,835.25,841.94,833.98,839.09,3760000,839.09 +1964-08-27,829.21,837.40,826.91,835.25,3560000,835.25 +1964-08-26,832.20,834.87,826.59,829.21,3300000,829.21 +1964-08-25,837.31,839.09,830.29,832.20,3780000,832.20 +1964-08-24,838.62,843.21,834.83,837.31,3790000,837.31 +1964-08-21,838.71,842.60,835.39,838.62,3620000,838.62 +1964-08-20,841.76,844.19,835.44,838.71,3840000,838.71 +1964-08-19,842.83,847.19,838.24,841.76,4160000,841.76 +1964-08-18,840.21,845.64,837.17,842.83,4180000,842.83 +1964-08-17,838.81,844.77,836.18,840.21,3780000,840.21 +1964-08-14,838.52,844.00,834.92,838.81,4080000,838.81 +1964-08-13,834.08,842.41,833.14,838.52,4600000,838.52 +1964-08-12,828.08,837.54,827.29,834.08,4140000,834.08 +1964-08-11,829.35,832.95,825.56,828.08,3450000,828.08 +1964-08-10,829.16,834.08,825.18,829.35,3050000,829.35 +1964-08-07,823.40,831.60,822.75,829.16,3190000,829.16 +1964-08-06,833.05,835.90,822.56,823.40,3940000,823.40 +1964-08-05,832.77,835.44,820.78,833.05,6160000,833.05 +1964-08-04,840.35,840.91,829.96,832.77,4780000,832.77 +1964-08-03,841.10,844.28,837.45,840.35,3780000,840.35 +1964-07-31,839.37,844.80,836.89,841.10,4220000,841.10 +1964-07-30,838.67,843.86,836.14,839.37,4530000,839.37 +1964-07-29,837.35,842.93,834.31,838.67,4050000,838.67 +1964-07-28,841.05,842.27,833.47,837.35,3860000,837.35 +1964-07-27,845.64,849.53,838.95,841.05,4090000,841.05 +1964-07-24,846.48,850.32,842.88,845.64,4210000,845.64 +1964-07-23,847.65,851.54,842.93,846.48,4560000,846.48 +1964-07-22,846.95,851.45,841.71,847.65,4570000,847.65 +1964-07-21,849.39,851.49,841.85,846.95,4570000,846.95 +1964-07-20,851.35,855.19,847.00,849.39,4390000,849.39 +1964-07-17,847.47,854.11,845.45,851.35,4640000,851.35 +1964-07-16,844.80,850.04,842.04,847.47,4640000,847.47 +1964-07-15,843.63,849.06,839.27,844.80,4610000,844.80 +1964-07-14,845.55,849.53,839.60,843.63,4760000,843.63 +1964-07-13,847.51,851.54,841.90,845.55,4800000,845.55 +1964-07-10,845.13,852.52,841.99,847.51,5420000,847.51 +1964-07-09,845.45,849.85,841.01,845.13,5040000,845.13 +1964-07-08,844.94,849.34,839.98,845.45,4760000,845.45 +1964-07-07,844.24,849.15,841.66,844.94,5240000,844.94 +1964-07-06,841.47,848.64,838.01,844.24,5080000,844.24 +1964-07-02,838.06,844.75,836.04,841.47,5230000,841.47 +1964-07-01,831.50,839.88,829.30,838.06,5320000,838.06 +1964-06-30,830.94,834.64,826.31,831.50,4360000,831.50 +1964-06-29,830.99,835.90,827.01,830.94,4380000,830.94 +1964-06-26,827.48,833.05,825.09,830.99,4440000,830.99 +1964-06-25,827.01,832.39,823.40,827.48,5010000,827.48 +1964-06-24,822.70,831.17,819.80,827.01,4840000,827.01 +1964-06-23,826.38,830.05,820.55,822.70,4060000,822.70 +1964-06-22,825.25,831.97,823.30,826.38,4540000,826.38 +1964-06-19,823.98,828.11,819.94,825.25,4050000,825.25 +1964-06-18,823.35,829.42,820.62,823.98,4730000,823.98 +1964-06-17,818.16,826.45,817.63,823.35,5340000,823.35 +1964-06-16,813.56,821.22,812.63,818.16,4590000,818.16 +1964-06-15,809.39,816.79,808.11,813.56,4110000,813.56 +1964-06-12,811.25,814.22,806.52,809.39,3840000,809.39 +1964-06-11,807.53,815.15,806.65,811.25,3620000,811.25 +1964-06-10,805.54,812.10,803.99,807.53,4170000,807.53 +1964-06-09,800.31,808.15,796.90,805.54,4470000,805.54 +1964-06-08,806.03,808.95,798.50,800.31,4010000,800.31 +1964-06-05,802.48,810.37,801.78,806.03,4240000,806.03 +1964-06-04,811.79,813.38,800.75,802.48,4880000,802.48 +1964-06-03,813.78,818.16,809.84,811.79,3990000,811.79 +1964-06-02,818.56,820.34,811.87,813.78,4180000,813.78 +1964-06-01,820.56,824.94,815.82,818.56,4300000,818.56 +1964-05-28,817.94,824.14,814.80,820.56,4560000,820.56 +1964-05-27,818.92,822.20,812.63,817.94,4450000,817.94 +1964-05-26,820.25,824.01,816.88,818.92,4290000,818.92 +1964-05-25,820.87,825.47,816.39,820.25,3990000,820.25 +1964-05-22,819.80,824.81,816.57,820.87,4640000,820.87 +1964-05-21,820.11,826.45,816.08,819.80,5350000,819.80 +1964-05-20,817.28,824.10,815.15,820.11,4790000,820.11 +1964-05-19,821.31,823.26,813.96,817.28,4360000,817.28 +1964-05-18,826.23,829.33,819.18,821.31,4590000,821.31 +1964-05-15,824.45,829.15,821.22,826.23,5070000,826.23 +1964-05-14,825.78,828.62,819.63,824.45,4720000,824.45 +1964-05-13,827.38,832.78,822.24,825.78,5890000,825.78 +1964-05-12,827.07,832.25,824.41,827.38,5200000,827.38 +1964-05-11,828.57,832.21,824.10,827.07,4490000,827.07 +1964-05-08,830.17,834.55,825.12,828.57,4910000,828.57 +1964-05-07,828.18,836.06,824.19,830.17,5600000,830.17 +1964-05-06,826.63,832.34,822.55,828.18,5560000,828.18 +1964-05-05,823.83,829.28,817.23,826.63,5340000,826.63 +1964-05-04,817.10,828.09,816.39,823.83,5360000,823.83 +1964-05-01,810.77,819.40,808.55,817.10,5990000,817.10 +1964-04-30,812.81,816.88,807.18,810.77,5690000,810.77 +1964-04-29,816.70,821.97,810.32,812.81,6200000,812.81 +1964-04-28,811.87,820.11,809.04,816.70,4790000,816.70 +1964-04-27,814.89,817.68,807.71,811.87,5070000,811.87 +1964-04-24,821.66,823.79,813.51,814.89,5610000,814.89 +1964-04-23,823.57,830.04,819.32,821.66,6690000,821.66 +1964-04-22,826.45,828.09,820.25,823.57,5390000,823.57 +1964-04-21,824.54,830.70,820.47,826.45,5750000,826.45 +1964-04-20,827.33,829.81,821.49,824.54,5560000,824.54 +1964-04-17,825.65,831.63,822.51,827.33,6030000,827.33 +1964-04-16,825.43,830.12,821.22,825.65,5240000,825.65 +1964-04-15,822.95,828.62,820.38,825.43,5270000,825.43 +1964-04-14,821.31,826.63,818.12,822.95,5120000,822.95 +1964-04-13,821.75,826.71,818.21,821.31,5330000,821.31 +1964-04-10,821.35,825.34,819.14,821.75,4990000,821.75 +1964-04-09,824.19,827.51,819.54,821.35,5300000,821.35 +1964-04-08,822.77,828.09,818.87,824.19,5380000,824.19 +1964-04-07,824.76,829.42,819.18,822.77,5900000,822.77 +1964-04-06,822.99,828.88,820.51,824.76,5840000,824.76 +1964-04-03,820.87,828.49,818.43,822.99,5990000,822.99 +1964-04-02,816.08,825.12,815.20,820.87,6840000,820.87 +1964-04-01,813.29,819.23,809.79,816.08,5510000,816.08 +1964-03-31,815.29,817.94,810.37,813.29,5270000,813.29 +1964-03-30,815.91,819.98,812.18,815.29,6060000,815.29 +1964-03-26,813.16,819.45,811.39,815.91,5760000,815.91 +1964-03-25,811.43,816.35,808.60,813.16,5420000,813.16 +1964-03-24,813.60,816.92,808.95,811.43,5210000,811.43 +1964-03-23,814.93,817.72,809.93,813.60,4940000,813.60 +1964-03-20,819.36,820.47,810.81,814.93,5020000,814.93 +1964-03-19,820.25,824.72,815.91,819.36,5670000,819.36 +1964-03-18,818.16,824.23,814.67,820.25,5890000,820.25 +1964-03-17,816.48,821.80,812.58,818.16,5480000,818.16 +1964-03-16,816.22,821.35,813.25,816.48,5140000,816.48 +1964-03-13,814.22,819.85,810.94,816.22,5660000,816.22 +1964-03-12,813.87,818.08,809.22,814.22,5290000,814.22 +1964-03-11,809.39,817.01,807.84,813.87,6180000,813.87 +1964-03-10,807.18,811.96,803.37,809.39,5500000,809.39 +1964-03-09,806.03,812.14,803.41,807.18,5510000,807.18 +1964-03-06,803.77,809.13,801.16,806.03,4790000,806.03 +1964-03-05,804.70,807.93,799.78,803.77,4680000,803.77 +1964-03-04,805.72,810.19,800.80,804.70,5250000,804.70 +1964-03-03,802.75,809.75,801.33,805.72,5350000,805.72 +1964-03-02,800.14,807.22,798.05,802.75,5690000,802.75 +1964-02-28,797.04,802.35,793.80,800.14,4980000,800.14 +1964-02-27,799.38,803.46,795.44,797.04,5420000,797.04 +1964-02-26,796.59,802.00,793.80,799.38,5350000,799.38 +1964-02-25,797.12,800.54,792.96,796.59,5010000,796.59 +1964-02-24,796.99,802.93,793.32,797.12,5630000,797.12 +1964-02-20,794.91,800.93,791.41,796.99,4690000,796.99 +1964-02-19,795.40,800.27,791.32,794.91,4280000,794.91 +1964-02-18,796.19,800.67,791.32,795.40,4660000,795.40 +1964-02-17,794.56,800.40,791.45,796.19,4780000,796.19 +1964-02-14,794.42,798.85,789.95,794.56,4360000,794.56 +1964-02-13,794.82,799.07,789.99,794.42,4820000,794.42 +1964-02-12,792.16,798.14,790.39,794.82,4650000,794.82 +1964-02-11,788.71,795.04,786.58,792.16,4040000,792.16 +1964-02-10,791.59,797.17,786.76,788.71,4150000,788.71 +1964-02-07,786.41,795.40,784.37,791.59,4710000,791.59 +1964-02-06,783.04,789.42,780.69,786.41,4110000,786.41 +1964-02-05,783.30,789.82,777.99,783.04,4010000,783.04 +1964-02-04,784.72,787.78,778.96,783.30,4320000,783.30 +1964-02-03,785.34,789.90,780.25,784.72,4140000,784.72 +1964-01-31,783.44,789.77,780.34,785.34,4000000,785.34 +1964-01-30,782.60,788.35,778.88,783.44,4230000,783.44 +1964-01-29,787.78,790.04,779.72,782.60,4450000,782.60 +1964-01-28,785.34,791.63,781.75,787.78,4720000,787.78 +1964-01-27,783.04,790.39,780.43,785.34,5240000,785.34 +1964-01-24,782.86,787.65,778.12,783.04,5080000,783.04 +1964-01-23,781.31,787.60,777.95,782.86,5380000,782.86 +1964-01-22,776.44,786.89,774.45,781.31,5430000,781.31 +1964-01-21,773.03,779.54,767.80,776.44,4800000,776.44 +1964-01-20,775.69,780.47,769.82,773.03,5570000,773.03 +1964-01-17,776.13,779.41,770.59,775.69,5600000,775.69 +1964-01-16,774.71,781.71,770.95,776.13,6200000,776.13 +1964-01-15,774.49,779.63,768.55,774.71,6750000,774.71 +1964-01-14,773.12,778.88,770.46,774.49,6500000,774.49 +1964-01-13,774.33,777.86,768.38,773.12,5440000,773.12 +1964-01-10,776.55,778.81,770.38,774.33,5260000,774.33 +1964-01-09,774.46,780.59,770.29,776.55,5180000,776.55 +1964-01-08,771.73,777.25,768.94,774.46,5380000,774.46 +1964-01-07,769.51,776.12,766.12,771.73,5700000,771.73 +1964-01-06,767.68,773.77,764.77,769.51,5480000,769.51 +1964-01-03,766.08,771.73,763.77,767.68,5550000,767.68 +1964-01-02,762.95,770.73,760.34,766.08,4680000,766.08 +1963-12-31,759.90,767.55,758.64,762.95,6730000,762.95 +1963-12-30,762.95,764.12,756.64,759.90,4930000,759.90 +1963-12-27,760.21,767.77,758.51,762.95,4360000,762.95 +1963-12-26,756.86,764.47,754.91,760.21,3700000,760.21 +1963-12-24,758.30,763.16,752.82,756.86,3970000,756.86 +1963-12-23,762.08,765.03,754.43,758.30,4540000,758.30 +1963-12-20,763.86,767.29,757.91,762.08,4600000,762.08 +1963-12-19,767.21,769.81,760.73,763.86,4410000,763.86 +1963-12-18,766.38,773.07,762.43,767.21,6000000,767.21 +1963-12-17,761.64,769.51,758.99,766.38,5140000,766.38 +1963-12-16,760.17,765.03,756.12,761.64,4280000,761.64 +1963-12-13,757.43,762.82,756.25,760.17,4290000,760.17 +1963-12-12,757.21,761.60,754.30,757.43,4220000,757.43 +1963-12-11,759.25,762.03,754.04,757.21,4400000,757.21 +1963-12-10,759.08,764.25,754.95,759.25,4560000,759.25 +1963-12-09,760.25,764.29,755.43,759.08,4430000,759.08 +1963-12-06,763.86,767.21,757.12,760.25,4830000,760.25 +1963-12-05,755.51,766.21,753.69,763.86,5190000,763.86 +1963-12-04,751.82,758.51,747.17,755.51,4790000,755.51 +1963-12-03,751.91,756.82,747.26,751.82,4520000,751.82 +1963-12-02,750.52,757.95,746.78,751.91,4770000,751.91 +1963-11-29,741.00,752.39,738.56,750.52,4810000,750.52 +1963-11-27,743.52,746.91,735.87,741.00,5210000,741.00 +1963-11-26,732.96,746.60,732.96,743.52,9320000,743.52 +1963-11-22,732.65,739.00,710.83,711.49,6630000,711.49 +1963-11-21,742.06,744.69,730.57,732.65,5670000,732.65 +1963-11-20,736.65,747.51,733.44,742.06,5330000,742.06 +1963-11-19,734.85,743.13,731.64,736.65,4430000,736.65 +1963-11-18,740.00,743.09,731.08,734.85,4730000,734.85 +1963-11-15,747.04,749.22,737.90,740.00,4790000,740.00 +1963-11-14,751.11,753.30,744.42,747.04,4610000,747.04 +1963-11-13,750.21,753.77,745.88,751.11,4710000,751.11 +1963-11-12,753.77,756.82,748.36,750.21,4610000,750.21 +1963-11-11,750.81,756.56,749.95,753.77,3970000,753.77 +1963-11-08,745.66,753.47,744.63,750.81,4570000,750.81 +1963-11-07,744.03,750.21,740.99,745.66,4320000,745.66 +1963-11-06,749.22,749.82,738.41,744.03,5600000,744.03 +1963-11-04,753.73,757.12,746.09,749.22,5440000,749.22 +1963-11-01,755.23,759.56,750.30,753.73,5240000,753.73 +1963-10-31,755.19,759.00,749.78,755.23,5030000,755.23 +1963-10-30,760.50,762.78,751.80,755.19,5170000,755.19 +1963-10-29,759.39,767.24,755.49,760.50,6100000,760.50 +1963-10-28,755.61,765.70,752.95,759.39,7150000,759.39 +1963-10-25,751.80,759.90,748.62,755.61,6390000,755.61 +1963-10-24,746.48,755.91,744.12,751.80,6280000,751.80 +1963-10-23,747.21,752.10,742.40,746.48,5830000,746.48 +1963-10-22,752.31,753.60,742.70,747.21,6420000,747.21 +1963-10-21,750.60,757.12,747.25,752.31,5450000,752.31 +1963-10-18,750.77,755.36,747.94,750.60,5830000,750.60 +1963-10-17,748.45,755.83,746.99,750.77,6790000,750.77 +1963-10-16,742.19,750.42,740.04,748.45,5570000,748.45 +1963-10-15,741.84,746.43,738.97,742.19,4550000,742.19 +1963-10-14,741.76,744.98,738.03,741.84,4270000,741.84 +1963-10-11,740.56,746.05,737.60,741.76,4740000,741.76 +1963-10-10,739.83,743.52,733.69,740.56,4470000,740.56 +1963-10-09,743.90,747.16,737.90,739.83,5520000,739.83 +1963-10-08,743.86,748.97,739.23,743.90,4920000,743.90 +1963-10-07,745.06,749.91,740.90,743.86,4050000,743.86 +1963-10-04,744.25,750.98,741.72,745.06,5120000,745.06 +1963-10-03,737.94,746.86,736.61,744.25,4510000,744.25 +1963-10-02,738.33,742.06,734.64,737.94,3780000,737.94 +1963-10-01,732.79,742.57,732.49,738.33,4420000,738.33 +1963-09-30,737.98,739.83,728.63,732.79,3730000,732.79 +1963-09-27,736.95,741.33,731.55,737.98,4350000,737.98 +1963-09-26,743.69,745.28,734.68,736.95,5100000,736.95 +1963-09-25,745.96,753.04,739.31,743.69,6340000,743.69 +1963-09-24,740.43,748.54,737.13,745.96,5520000,745.96 +1963-09-23,743.60,746.99,736.65,740.43,5140000,740.43 +1963-09-20,743.22,749.27,740.64,743.60,5310000,743.60 +1963-09-19,737.86,744.63,736.48,743.22,4080000,743.22 +1963-09-18,740.13,744.08,734.98,737.86,5070000,737.86 +1963-09-17,738.46,744.50,736.83,740.13,4950000,740.13 +1963-09-16,740.13,744.68,736.61,738.46,4740000,738.46 +1963-09-13,740.26,744.42,737.25,740.13,5230000,740.13 +1963-09-12,740.34,744.46,735.45,740.26,5560000,740.26 +1963-09-11,737.43,746.18,736.87,740.34,6670000,740.34 +1963-09-10,732.92,740.34,730.56,737.43,5310000,737.43 +1963-09-09,735.37,739.27,730.09,732.92,5020000,732.92 +1963-09-06,737.98,742.66,733.22,735.37,7160000,735.37 +1963-09-05,732.92,739.87,729.49,737.98,5700000,737.98 +1963-09-04,732.02,737.60,728.89,732.92,6070000,732.92 +1963-09-03,729.32,735.50,728.76,732.02,5570000,732.02 +1963-08-30,726.40,731.68,724.00,729.32,4560000,729.32 +1963-08-29,725.07,730.09,723.27,726.40,5110000,726.40 +1963-08-28,719.88,728.72,719.67,725.07,5120000,725.07 +1963-08-27,724.17,725.16,717.95,719.88,4080000,719.88 +1963-08-26,723.14,728.38,721.00,724.17,4700000,724.17 +1963-08-23,718.47,726.02,718.21,723.14,4880000,723.14 +1963-08-22,715.72,720.57,712.59,718.47,4540000,718.47 +1963-08-21,717.27,719.80,713.49,715.72,3820000,715.72 +1963-08-20,718.81,721.34,714.39,717.27,3660000,717.27 +1963-08-19,719.32,723.57,715.72,718.81,3650000,718.81 +1963-08-16,718.55,722.93,714.91,719.32,4130000,719.32 +1963-08-15,714.95,721.51,712.63,718.55,4980000,718.55 +1963-08-14,711.13,717.39,707.61,714.95,4420000,714.95 +1963-08-13,710.27,714.31,707.83,711.13,4450000,711.13 +1963-08-12,708.39,714.09,705.51,710.27,4770000,710.27 +1963-08-09,704.18,709.84,701.48,708.39,4050000,708.39 +1963-08-08,703.92,707.36,699.85,704.18,3460000,704.18 +1963-08-07,707.06,710.62,701.78,703.92,3790000,703.92 +1963-08-06,702.55,709.42,700.92,707.06,3760000,707.06 +1963-08-05,697.83,704.83,697.10,702.55,3370000,702.55 +1963-08-02,694.87,700.54,693.11,697.83,2940000,697.83 +1963-08-01,695.43,699.21,691.23,694.87,3410000,694.87 +1963-07-31,696.42,701.99,693.03,695.43,3960000,695.43 +1963-07-30,690.71,698.30,690.07,696.42,3550000,696.42 +1963-07-29,689.38,693.20,686.68,690.71,2840000,690.71 +1963-07-26,687.71,691.44,684.58,689.38,2510000,689.38 +1963-07-25,690.88,696.20,685.95,687.71,3710000,687.71 +1963-07-24,687.84,693.41,685.99,690.88,2810000,690.88 +1963-07-23,688.74,694.83,685.74,687.84,3500000,687.84 +1963-07-22,693.89,696.16,684.41,688.74,3700000,688.74 +1963-07-19,695.90,697.53,689.21,693.89,3340000,693.89 +1963-07-18,699.72,703.20,693.93,695.90,3710000,695.90 +1963-07-17,702.12,705.73,697.10,699.72,3940000,699.72 +1963-07-16,703.28,706.28,699.76,702.12,3000000,702.12 +1963-07-15,707.70,708.86,700.58,703.28,3290000,703.28 +1963-07-12,709.76,712.55,705.21,707.70,3660000,707.70 +1963-07-11,712.12,715.98,707.87,709.76,4100000,709.76 +1963-07-10,714.09,716.28,708.90,712.12,3730000,712.12 +1963-07-09,710.66,717.22,709.07,714.09,3830000,714.09 +1963-07-08,716.45,717.22,708.64,710.66,3290000,710.66 +1963-07-05,713.36,719.02,712.20,716.45,2910000,716.45 +1963-07-03,708.94,716.19,708.51,713.36,4030000,713.36 +1963-07-02,701.35,711.35,699.93,708.94,3540000,708.94 +1963-07-01,706.88,709.11,698.86,701.35,3360000,701.35 +1963-06-28,706.03,710.79,702.89,706.88,3020000,706.88 +1963-06-27,708.99,712.93,702.42,706.03,4540000,706.03 +1963-06-26,716.32,716.49,706.46,708.99,4500000,708.99 +1963-06-25,718.42,722.07,713.83,716.32,4120000,716.32 +1963-06-24,720.78,723.87,715.64,718.42,3700000,718.42 +1963-06-21,718.85,724.81,716.06,720.78,4190000,720.78 +1963-06-20,719.84,722.76,711.95,718.85,4970000,718.85 +1963-06-19,718.90,723.27,715.98,719.84,3970000,719.84 +1963-06-18,718.21,722.50,714.99,718.90,3910000,718.90 +1963-06-17,722.03,723.61,716.11,718.21,3510000,718.21 +1963-06-14,721.43,725.72,718.34,722.03,3840000,722.03 +1963-06-13,723.36,727.09,719.92,721.43,4690000,721.43 +1963-06-12,718.38,727.60,717.05,723.36,5210000,723.36 +1963-06-11,716.49,721.94,714.00,718.38,4390000,718.38 +1963-06-10,722.41,722.88,711.65,716.49,4690000,716.49 +1963-06-07,726.87,730.31,719.41,722.41,5110000,722.41 +1963-06-06,725.93,730.78,721.81,726.87,4990000,726.87 +1963-06-05,726.49,732.97,722.46,725.93,5860000,725.93 +1963-06-04,726.27,730.01,721.30,726.49,5970000,726.49 +1963-06-03,726.96,731.59,723.57,726.27,5400000,726.27 +1963-05-31,722.50,730.43,721.85,726.96,4680000,726.96 +1963-05-29,717.95,725.59,717.22,722.50,4320000,722.50 +1963-05-28,718.25,722.16,714.26,717.95,3860000,717.95 +1963-05-27,720.53,721.98,714.52,718.25,3760000,718.25 +1963-05-24,721.38,724.56,716.66,720.53,4320000,720.53 +1963-05-23,722.84,725.67,718.12,721.38,4400000,721.38 +1963-05-22,724.04,728.76,720.18,722.84,5560000,722.84 +1963-05-21,720.18,727.26,717.48,724.04,5570000,724.04 +1963-05-20,724.81,726.19,716.45,720.18,4710000,720.18 +1963-05-17,722.84,727.13,720.01,724.81,4410000,724.81 +1963-05-16,724.34,728.63,719.75,722.84,5640000,722.84 +1963-05-15,719.84,727.69,717.22,724.34,5650000,724.34 +1963-05-14,723.01,724.94,717.95,719.84,4740000,719.84 +1963-05-13,723.30,727.13,720.53,723.01,4920000,723.01 +1963-05-10,721.97,726.02,718.62,723.30,5260000,723.30 +1963-05-09,718.54,726.48,717.20,721.97,5600000,721.97 +1963-05-08,712.55,720.96,710.96,718.54,5140000,718.54 +1963-05-07,713.77,716.78,708.16,712.55,4140000,712.55 +1963-05-06,718.08,721.84,711.68,713.77,4090000,713.77 +1963-05-03,721.09,723.77,716.53,718.08,4760000,718.08 +1963-05-02,719.67,724.69,717.32,721.09,4480000,721.09 +1963-05-01,717.70,723.89,716.40,719.67,5060000,719.67 +1963-04-30,715.11,721.46,711.93,717.70,4680000,717.70 +1963-04-29,717.16,719.54,712.05,715.11,3980000,715.11 +1963-04-26,718.33,721.59,714.77,717.16,4490000,717.16 +1963-04-25,717.74,721.92,712.68,718.33,5070000,718.33 +1963-04-24,714.98,720.96,713.89,717.74,5910000,717.74 +1963-04-23,711.01,717.53,707.83,714.98,5220000,714.98 +1963-04-22,711.68,717.07,708.70,711.01,5180000,711.01 +1963-04-19,708.16,713.72,705.32,711.68,4660000,711.68 +1963-04-18,710.25,713.31,705.44,708.16,4770000,708.16 +1963-04-17,710.92,715.23,705.19,710.25,5220000,710.25 +1963-04-16,711.38,716.74,706.32,710.92,5570000,710.92 +1963-04-15,708.45,716.61,705.94,711.38,5930000,711.38 +1963-04-11,704.35,711.34,700.09,708.45,5250000,708.45 +1963-04-10,706.03,710.50,698.25,704.35,5880000,704.35 +1963-04-09,706.03,709.83,701.05,706.03,5090000,706.03 +1963-04-08,702.43,709.46,700.84,706.03,5940000,706.03 +1963-04-05,697.12,703.77,693.18,702.43,5240000,702.43 +1963-04-04,690.76,699.12,690.76,697.12,5300000,697.12 +1963-04-03,684.27,692.81,683.23,690.51,4660000,690.51 +1963-04-02,685.86,691.18,682.14,684.27,4360000,684.27 +1963-04-01,682.52,689.34,680.55,685.86,3890000,685.86 +1963-03-29,682.47,685.74,678.92,682.52,3390000,682.52 +1963-03-28,684.73,687.37,680.80,682.47,3890000,682.47 +1963-03-27,680.38,686.95,679.17,684.73,4270000,684.73 +1963-03-26,678.17,684.23,676.79,680.38,4100000,680.38 +1963-03-25,677.83,682.31,674.94,678.17,3700000,678.17 +1963-03-22,675.57,680.68,673.19,677.83,3820000,677.83 +1963-03-21,677.12,680.01,673.15,675.57,3220000,675.57 +1963-03-20,672.06,679.34,671.10,677.12,3690000,677.12 +1963-03-19,673.56,675.95,669.17,672.06,3180000,672.06 +1963-03-18,676.33,678.92,671.14,673.56,3250000,673.56 +1963-03-15,673.73,679.30,671.72,676.33,3400000,676.33 +1963-03-14,677.66,680.09,671.97,673.73,3540000,673.73 +1963-03-13,675.20,680.93,673.56,677.66,4120000,677.66 +1963-03-12,674.02,678.17,671.31,675.20,3350000,675.20 +1963-03-11,672.43,677.83,670.01,674.02,3180000,674.02 +1963-03-08,671.43,675.57,668.38,672.43,3360000,672.43 +1963-03-07,668.08,675.03,667.12,671.43,3350000,671.43 +1963-03-06,667.16,669.80,662.02,668.08,3100000,668.08 +1963-03-05,667.04,672.85,663.02,667.16,3280000,667.16 +1963-03-04,659.72,670.30,659.22,667.04,3650000,667.04 +1963-03-01,662.94,667.63,656.66,659.72,3920000,659.72 +1963-02-28,670.80,672.64,661.27,662.94,4090000,662.94 +1963-02-27,675.28,678.12,669.05,670.80,3680000,670.80 +1963-02-26,674.61,679.21,671.31,675.28,3670000,675.28 +1963-02-25,681.64,682.06,673.15,674.61,3680000,674.61 +1963-02-21,682.06,684.94,675.87,681.64,3980000,681.64 +1963-02-20,686.07,686.07,678.79,682.06,4120000,682.06 +1963-02-19,688.96,690.51,683.73,686.83,4130000,686.83 +1963-02-18,686.07,694.27,685.15,688.96,4700000,688.96 +1963-02-15,684.86,689.67,680.89,686.07,4410000,686.07 +1963-02-14,681.72,688.71,679.59,684.86,5640000,684.86 +1963-02-13,676.62,684.82,674.48,681.72,4960000,681.72 +1963-02-12,674.74,678.08,669.84,676.62,3710000,676.62 +1963-02-11,679.92,681.85,672.98,674.74,3880000,674.74 +1963-02-08,679.09,682.31,673.90,679.92,3890000,679.92 +1963-02-07,682.52,686.32,676.49,679.09,4240000,679.09 +1963-02-06,681.30,686.74,678.25,682.52,4340000,682.52 +1963-02-05,682.01,683.65,672.60,681.30,4050000,681.30 +1963-02-04,683.19,687.20,678.92,682.01,3670000,682.01 +1963-02-01,682.85,686.57,679.21,683.19,4280000,683.19 +1963-01-31,678.58,685.24,675.28,682.85,4270000,682.85 +1963-01-30,683.73,684.48,675.82,678.58,3740000,678.58 +1963-01-29,682.89,686.91,678.29,683.73,4360000,683.73 +1963-01-28,679.71,686.53,678.50,682.89,4720000,682.89 +1963-01-25,676.99,683.81,673.31,679.71,4770000,679.71 +1963-01-24,677.58,681.09,673.94,676.99,4810000,676.99 +1963-01-23,675.53,680.38,674.02,677.58,4820000,677.58 +1963-01-22,675.24,679.13,671.81,675.53,4810000,675.53 +1963-01-21,672.52,676.74,668.42,675.24,4090000,675.24 +1963-01-18,672.98,679.09,669.55,672.52,4760000,672.52 +1963-01-17,669.00,676.07,665.07,672.98,5230000,672.98 +1963-01-16,675.36,676.03,666.70,669.00,4260000,669.00 +1963-01-15,675.74,680.80,672.14,675.36,5930000,675.36 +1963-01-14,671.60,678.46,669.38,675.74,5000000,675.74 +1963-01-11,669.51,673.61,665.91,671.60,4410000,671.60 +1963-01-10,668.00,673.73,666.54,669.51,4520000,669.51 +1963-01-09,669.88,674.23,665.95,668.00,5110000,668.00 +1963-01-08,662.14,672.18,661.10,669.88,5410000,669.88 +1963-01-07,662.23,666.70,657.83,662.14,4440000,662.14 +1963-01-04,657.42,665.66,656.25,662.23,5400000,662.23 +1963-01-03,646.79,659.17,646.62,657.42,4570000,657.42 +1963-01-02,652.10,654.53,643.57,646.79,2540000,646.79 +1962-12-31,651.43,654.53,648.05,652.10,5420000,652.10 +1962-12-28,650.56,653.90,647.21,651.43,4140000,651.43 +1962-12-27,651.64,655.07,648.42,650.56,3670000,650.56 +1962-12-26,647.71,654.40,647.33,651.64,3370000,651.64 +1962-12-24,646.41,651.48,643.65,647.71,3180000,647.71 +1962-12-21,648.55,651.81,643.40,646.41,3470000,646.41 +1962-12-20,647.00,652.69,645.20,648.55,4220000,648.55 +1962-12-19,640.14,648.63,636.88,647.00,4000000,647.00 +1962-12-18,645.49,646.75,638.09,640.14,3620000,640.14 +1962-12-17,648.09,650.97,643.03,645.49,3590000,645.49 +1962-12-14,645.20,650.35,641.02,648.09,3280000,648.09 +1962-12-13,647.33,651.94,641.73,645.20,3380000,645.20 +1962-12-12,645.16,653.02,643.49,647.33,3760000,647.33 +1962-12-11,645.08,648.46,638.88,645.16,3700000,645.16 +1962-12-10,652.10,655.07,642.73,645.08,4270000,645.08 +1962-12-07,651.73,655.83,646.87,652.10,3900000,652.10 +1962-12-06,653.99,657.00,646.92,651.73,4600000,651.73 +1962-12-05,651.48,658.78,649.68,653.99,6280000,653.99 +1962-12-04,646.41,654.61,644.07,651.48,5210000,651.48 +1962-12-03,649.30,651.22,642.06,646.41,3810000,646.41 +1962-11-30,652.61,655.03,645.70,649.30,4570000,649.30 +1962-11-29,651.85,655.95,646.54,652.61,5810000,652.61 +1962-11-28,648.05,654.86,646.50,651.85,5980000,651.85 +1962-11-27,642.06,650.39,639.72,648.05,5500000,648.05 +1962-11-26,644.87,651.27,638.34,642.06,5650000,642.06 +1962-11-23,637.25,649.26,635.50,644.87,5660000,644.87 +1962-11-21,632.94,640.36,630.18,637.25,5100000,637.25 +1962-11-20,626.21,634.91,624.20,632.94,4290000,632.94 +1962-11-19,630.98,633.36,624.03,626.21,3410000,626.21 +1962-11-16,629.14,633.82,623.87,630.98,4000000,630.98 +1962-11-15,630.48,636.25,626.67,629.14,5050000,629.14 +1962-11-14,623.11,632.99,619.77,630.48,5090000,630.48 +1962-11-13,624.41,628.47,618.85,623.11,4550000,623.11 +1962-11-12,617.38,627.25,617.38,624.41,5090000,624.41 +1962-11-09,609.14,617.51,605.33,616.13,4340000,616.13 +1962-11-08,615.75,619.68,606.84,609.14,4160000,609.14 +1962-11-07,610.48,620.06,605.58,615.75,4580000,615.75 +1962-11-05,604.58,614.45,602.66,610.48,4320000,610.48 +1962-11-02,597.13,609.43,592.87,604.58,5470000,604.58 +1962-11-01,589.77,599.60,582.66,597.13,3400000,597.13 +1962-10-31,588.98,594.79,586.13,589.77,3090000,589.77 +1962-10-30,579.35,591.49,578.94,588.98,3830000,588.98 +1962-10-29,576.13,586.59,576.13,579.35,4280000,579.35 +1962-10-26,570.86,573.54,564.88,569.02,2580000,569.02 +1962-10-25,575.84,575.84,562.79,570.86,3950000,570.86 +1962-10-24,558.06,578.52,549.65,576.68,6720000,576.68 +1962-10-23,568.60,573.96,556.18,558.06,6110000,558.06 +1962-10-22,573.29,573.41,563.16,568.60,5690000,568.60 +1962-10-19,581.15,582.78,570.44,573.29,4650000,573.29 +1962-10-18,587.68,588.01,579.44,581.15,3280000,581.15 +1962-10-17,589.35,590.52,581.91,587.68,3240000,587.68 +1962-10-16,589.69,594.12,587.01,589.35,2860000,589.35 +1962-10-15,586.47,592.28,584.08,589.69,2640000,589.69 +1962-10-12,586.47,589.02,582.83,586.47,2020000,586.47 +1962-10-11,588.14,590.69,584.08,586.47,2460000,586.47 +1962-10-10,587.18,594.00,586.26,588.14,3040000,588.14 +1962-10-09,586.09,589.35,582.70,587.18,2340000,587.18 +1962-10-08,586.59,589.90,583.24,586.09,1950000,586.09 +1962-10-05,582.41,588.47,581.11,586.59,2730000,586.59 +1962-10-04,578.52,583.37,575.38,582.41,2530000,582.41 +1962-10-03,578.73,584.37,576.09,578.52,2610000,578.52 +1962-10-02,571.95,582.66,570.78,578.73,3000000,578.73 +1962-10-01,578.98,579.90,569.23,571.95,3090000,571.95 +1962-09-28,574.12,582.70,573.20,578.98,2850000,578.98 +1962-09-27,578.48,581.99,572.16,574.12,3540000,574.12 +1962-09-26,588.22,591.28,576.30,578.48,3550000,578.48 +1962-09-25,582.91,590.52,578.73,588.22,3620000,588.22 +1962-09-24,589.06,589.06,578.73,582.91,5000000,582.91 +1962-09-21,601.32,601.32,589.52,591.78,4280000,591.78 +1962-09-20,607.09,608.93,600.31,601.65,3350000,601.65 +1962-09-19,607.09,609.89,603.66,607.09,2950000,607.09 +1962-09-18,607.63,612.44,604.83,607.09,3690000,607.09 +1962-09-17,605.84,611.57,603.45,607.63,3330000,607.63 +1962-09-14,603.99,607.93,601.28,605.84,2880000,605.84 +1962-09-13,606.34,609.77,601.94,603.99,3100000,603.99 +1962-09-12,603.99,608.97,601.28,606.34,3100000,606.34 +1962-09-11,602.03,607.88,599.23,603.99,3040000,603.99 +1962-09-10,600.86,603.66,595.38,602.03,2520000,602.03 +1962-09-07,600.81,606.34,598.26,600.86,2890000,600.86 +1962-09-06,599.14,603.32,594.08,600.81,3180000,600.81 +1962-09-05,602.45,604.96,596.42,599.14,3050000,599.14 +1962-09-04,609.18,612.44,601.28,602.45,2970000,602.45 +1962-08-31,602.32,610.19,600.27,609.18,2830000,609.18 +1962-08-30,603.24,606.80,599.85,602.32,2260000,602.32 +1962-08-29,605.25,606.42,598.81,603.24,2900000,603.24 +1962-08-28,612.57,613.11,602.95,605.25,3180000,605.25 +1962-08-27,613.74,616.84,609.27,612.57,3140000,612.57 +1962-08-24,616.00,617.67,608.81,613.74,2890000,613.74 +1962-08-23,615.54,622.02,612.32,616.00,4770000,616.00 +1962-08-22,608.64,617.63,606.42,615.54,4520000,615.54 +1962-08-21,612.86,614.66,605.79,608.64,3730000,608.64 +1962-08-20,610.02,615.67,608.09,612.86,4580000,612.86 +1962-08-17,606.71,611.98,604.62,610.02,3430000,610.02 +1962-08-16,606.76,611.15,602.74,606.71,4180000,606.71 +1962-08-15,601.94,610.90,601.94,606.76,4880000,606.76 +1962-08-14,595.29,603.91,593.03,601.90,3640000,601.90 +1962-08-13,592.32,597.51,590.65,595.29,2670000,595.29 +1962-08-10,591.19,595.67,587.55,592.32,2470000,592.32 +1962-08-09,590.94,595.17,588.43,591.19,2670000,591.19 +1962-08-08,588.35,592.11,582.12,590.94,3080000,590.94 +1962-08-07,593.24,593.66,585.71,588.35,2970000,588.35 +1962-08-06,596.38,598.56,590.27,593.24,3110000,593.24 +1962-08-03,593.83,598.35,591.11,596.38,5990000,596.38 +1962-08-02,591.36,596.55,588.26,593.83,3410000,593.83 +1962-08-01,597.64,597.64,588.68,591.36,3100000,591.36 +1962-07-31,591.78,601.15,591.78,597.93,4190000,597.93 +1962-07-30,585.00,593.03,583.87,591.44,3200000,591.44 +1962-07-27,579.61,586.80,577.14,585.00,2890000,585.00 +1962-07-26,574.67,582.87,574.08,579.61,2790000,579.61 +1962-07-25,574.12,576.55,568.10,574.67,2910000,574.67 +1962-07-24,577.47,579.31,572.03,574.12,2560000,574.12 +1962-07-23,577.18,582.24,574.50,577.47,2770000,577.47 +1962-07-20,573.16,579.86,570.78,577.18,2610000,577.18 +1962-07-19,571.24,578.68,568.98,573.16,3090000,573.16 +1962-07-18,577.39,577.39,568.02,571.24,3620000,571.24 +1962-07-17,588.10,588.77,576.59,577.85,3500000,577.85 +1962-07-16,590.19,591.23,582.41,588.10,3130000,588.10 +1962-07-13,590.27,592.99,583.87,590.19,3380000,590.19 +1962-07-12,589.06,596.59,586.68,590.27,5370000,590.27 +1962-07-11,586.01,590.94,580.36,589.06,4250000,589.06 +1962-07-10,583.50,599.02,583.50,586.01,7120000,586.01 +1962-07-09,576.17,582.28,569.65,580.82,2950000,580.82 +1962-07-06,582.58,582.58,571.28,576.17,3110000,576.17 +1962-07-05,579.48,586.30,577.39,583.87,3350000,583.87 +1962-07-03,573.75,582.99,570.53,579.48,3920000,579.48 +1962-07-02,561.28,576.63,557.31,573.75,3450000,573.75 +1962-06-29,557.35,569.06,555.22,561.28,4720000,561.28 +1962-06-28,541.49,559.32,541.49,557.35,5440000,557.35 +1962-06-27,535.76,539.28,528.73,536.98,3890000,536.98 +1962-06-26,536.77,548.61,533.46,535.76,4630000,535.76 +1962-06-25,539.19,541.24,524.55,536.77,7090000,536.77 +1962-06-22,550.49,551.99,537.56,539.19,5640000,539.19 +1962-06-21,561.87,561.87,549.15,550.49,4560000,550.49 +1962-06-20,571.61,574.59,561.28,563.08,3360000,563.08 +1962-06-19,574.21,575.21,566.59,571.61,2680000,571.61 +1962-06-18,578.18,583.08,567.05,574.21,4580000,574.21 +1962-06-15,563.00,579.90,556.09,578.18,7130000,578.18 +1962-06-14,574.04,579.14,560.28,563.00,6240000,563.00 +1962-06-13,580.94,586.42,572.20,574.04,5850000,574.04 +1962-06-12,593.83,593.83,580.11,580.94,4690000,580.94 +1962-06-11,601.61,603.20,592.66,595.17,2870000,595.17 +1962-06-08,602.20,607.30,598.64,601.61,2560000,601.61 +1962-06-07,603.91,608.14,599.27,602.20,2760000,602.20 +1962-06-06,595.50,611.82,595.50,603.91,4190000,603.91 +1962-06-05,593.68,603.37,584.12,594.96,6140000,594.96 +1962-06-04,608.82,608.82,591.37,593.68,5380000,593.68 +1962-06-01,613.36,616.54,603.58,611.05,5760000,611.05 +1962-05-31,605.73,625.00,605.73,613.36,10710000,613.36 +1962-05-29,576.93,613.11,553.75,603.96,14750000,603.96 +1962-05-28,609.77,609.77,573.55,576.93,9350000,576.93 +1962-05-25,622.56,625.94,606.18,611.88,6380000,611.88 +1962-05-24,626.52,634.24,619.84,622.56,5250000,622.56 +1962-05-23,636.34,637.83,622.56,626.52,5450000,626.52 +1962-05-22,648.59,649.33,634.57,636.34,3640000,636.34 +1962-05-21,650.70,652.14,645.09,648.59,2260000,648.59 +1962-05-18,649.79,653.63,644.55,650.70,2490000,650.70 +1962-05-17,654.04,654.33,644.01,649.79,2950000,649.79 +1962-05-16,655.36,660.23,650.12,654.04,3360000,654.04 +1962-05-15,647.56,660.64,647.56,655.36,4780000,655.36 +1962-05-14,640.63,649.13,626.85,646.20,5990000,646.20 +1962-05-11,647.23,653.79,637.45,640.63,4510000,640.63 +1962-05-10,654.70,656.06,641.50,647.23,4730000,647.23 +1962-05-09,663.90,664.15,652.31,654.70,3670000,654.70 +1962-05-08,670.99,672.68,661.38,663.90,3020000,663.90 +1962-05-07,671.20,675.74,666.41,670.99,2530000,670.99 +1962-05-04,675.49,676.77,666.79,671.20,3010000,671.20 +1962-05-03,669.96,679.20,668.93,675.49,3320000,675.49 +1962-05-02,671.24,677.35,666.08,669.96,3780000,669.96 +1962-05-01,665.33,673.59,655.44,671.24,5100000,671.24 +1962-04-30,672.20,678.64,661.48,665.33,4150000,665.33 +1962-04-27,678.68,685.84,668.40,672.20,4140000,672.20 +1962-04-26,683.69,687.82,676.29,678.68,3650000,678.68 +1962-04-25,693.00,694.13,681.55,683.69,3340000,683.69 +1962-04-24,694.61,698.42,690.29,693.00,3040000,693.00 +1962-04-23,694.25,700.04,690.37,694.61,3240000,694.61 +1962-04-19,691.01,696.80,688.63,694.25,3100000,694.25 +1962-04-18,688.43,696.03,686.77,691.01,3350000,691.01 +1962-04-17,684.06,690.93,681.31,688.43,2940000,688.43 +1962-04-16,687.90,690.65,681.18,684.06,3070000,684.06 +1962-04-13,685.67,691.86,679.08,687.90,3470000,687.90 +1962-04-12,694.37,694.37,683.49,685.67,3320000,685.67 +1962-04-11,695.46,703.68,693.40,694.90,3240000,694.90 +1962-04-10,692.96,697.85,688.75,695.46,2880000,695.46 +1962-04-09,699.63,701.17,691.30,692.96,3020000,692.96 +1962-04-06,700.88,705.42,697.73,699.63,2730000,699.63 +1962-04-05,696.88,703.35,693.32,700.88,3130000,700.88 +1962-04-04,700.60,705.05,695.26,696.88,3290000,696.88 +1962-04-03,705.42,707.52,697.61,700.60,3350000,700.60 +1962-04-02,706.95,709.74,702.91,705.42,2790000,705.42 +1962-03-30,711.28,712.17,703.27,706.95,2950000,706.95 +1962-03-29,712.25,716.94,709.58,711.28,2870000,711.28 +1962-03-28,707.28,714.64,705.70,712.25,2940000,712.25 +1962-03-27,710.67,713.34,704.12,707.28,3090000,707.28 +1962-03-26,716.46,717.88,708.69,710.67,3040000,710.67 +1962-03-23,716.70,720.18,713.02,716.46,3050000,716.46 +1962-03-22,716.62,720.18,713.38,716.70,3130000,716.70 +1962-03-21,719.66,722.49,713.59,716.62,3360000,716.62 +1962-03-20,720.38,723.17,716.78,719.66,3060000,719.66 +1962-03-19,722.27,725.28,717.39,720.38,3220000,720.38 +1962-03-16,723.54,727.14,719.29,722.27,3060000,722.27 +1962-03-15,720.95,726.65,718.08,723.54,3250000,723.54 +1962-03-14,716.58,724.67,715.89,720.95,3670000,720.95 +1962-03-13,714.68,719.66,711.56,716.58,3200000,716.58 +1962-03-12,714.44,718.44,709.62,714.68,3280000,714.68 +1962-03-09,713.75,718.28,710.96,714.44,3340000,714.44 +1962-03-08,706.63,715.25,704.57,713.75,3210000,713.75 +1962-03-07,708.17,710.63,703.88,706.63,2890000,706.63 +1962-03-06,709.99,712.94,704.81,708.17,2870000,708.17 +1962-03-05,711.00,714.15,706.02,709.99,3020000,709.99 +1962-03-02,711.81,715.61,707.64,711.00,2980000,711.00 +1962-03-01,708.05,715.89,706.67,711.81,2960000,711.81 +1962-02-28,709.22,713.75,704.93,708.05,3030000,708.05 +1962-02-27,706.22,712.98,704.16,709.22,3110000,709.22 +1962-02-26,709.54,711.77,702.91,706.22,2910000,706.22 +1962-02-23,713.02,713.71,705.09,709.54,3230000,709.54 +1962-02-21,717.55,720.14,710.43,713.02,3310000,713.02 +1962-02-20,714.36,719.61,711.24,717.55,3300000,717.55 +1962-02-19,716.46,720.14,711.28,714.36,3350000,714.36 +1962-02-16,717.27,721.39,713.22,716.46,3700000,716.46 +1962-02-15,713.67,720.79,711.77,717.27,3470000,717.27 +1962-02-14,714.32,716.90,709.14,713.67,3630000,713.67 +1962-02-13,714.92,718.72,711.32,714.32,3400000,714.32 +1962-02-12,714.27,718.52,711.81,714.92,2620000,714.92 +1962-02-09,716.82,718.40,709.34,714.27,3370000,714.27 +1962-02-08,715.73,719.86,712.45,716.82,3810000,716.82 +1962-02-07,710.39,717.35,708.94,715.73,4140000,715.73 +1962-02-06,706.14,713.22,702.06,710.39,3650000,710.39 +1962-02-05,706.55,710.84,702.34,706.14,3890000,706.14 +1962-02-02,702.54,709.34,699.11,706.55,3950000,706.55 +1962-02-01,700.00,707.36,696.07,702.54,4260000,702.54 +1962-01-31,694.09,702.75,692.27,700.00,3840000,700.00 +1962-01-30,689.92,698.38,687.82,694.09,3520000,694.09 +1962-01-29,692.19,695.71,686.89,689.92,3050000,689.92 +1962-01-26,696.52,698.13,689.11,692.19,3330000,692.19 +1962-01-25,698.17,703.80,694.17,696.52,3560000,696.52 +1962-01-24,698.54,701.69,689.52,698.17,3760000,698.17 +1962-01-23,701.98,704.40,694.57,698.54,3350000,698.54 +1962-01-22,700.72,706.27,698.05,701.98,3810000,701.98 +1962-01-19,696.03,703.35,694.29,700.72,3800000,700.72 +1962-01-18,697.41,700.12,690.21,696.03,3460000,696.03 +1962-01-17,705.29,707.03,694.86,697.41,3780000,697.41 +1962-01-16,709.50,711.20,700.97,705.29,3650000,705.29 +1962-01-15,711.73,715.00,706.18,709.50,3450000,709.50 +1962-01-12,710.67,717.71,707.92,711.73,3730000,711.73 +1962-01-11,706.02,713.10,702.26,710.67,3390000,710.67 +1962-01-10,707.64,711.81,701.69,706.02,3300000,706.02 +1962-01-09,708.98,714.96,703.88,707.64,3600000,707.64 +1962-01-08,714.84,715.69,698.42,708.98,4620000,708.98 +1962-01-05,722.53,725.60,709.74,714.84,4630000,714.84 +1962-01-04,726.01,733.77,718.00,722.53,4450000,722.53 +1962-01-03,724.71,729.61,720.22,726.01,3590000,726.01 +1962-01-02,731.14,734.38,721.39,724.71,3120000,724.71 +1961-12-29,731.51,734.99,726.41,731.14,5370000,731.14 +1961-12-28,731.43,738.79,728.88,731.51,4530000,731.51 +1961-12-27,723.34,734.54,723.34,731.43,4170000,731.43 +1961-12-26,720.87,727.42,717.92,723.09,3180000,723.09 +1961-12-22,720.10,725.08,714.60,720.87,3390000,720.87 +1961-12-21,722.57,725.64,717.27,720.10,3440000,720.10 +1961-12-20,722.41,728.19,718.32,722.57,3640000,722.57 +1961-12-19,727.66,727.66,719.25,722.41,3440000,722.41 +1961-12-18,729.40,734.91,724.43,727.71,3810000,727.71 +1961-12-15,730.94,734.58,725.72,729.40,3710000,729.40 +1961-12-14,734.91,737.82,727.34,730.94,4350000,730.94 +1961-12-13,734.02,739.88,730.58,734.91,4890000,734.91 +1961-12-12,732.56,739.36,728.23,734.02,4680000,734.02 +1961-12-11,728.23,736.40,725.84,732.56,4360000,732.56 +1961-12-08,726.45,732.92,722.24,728.23,4010000,728.23 +1961-12-07,730.09,732.96,723.42,726.45,3900000,726.45 +1961-12-06,731.31,735.80,725.04,730.09,4200000,730.09 +1961-12-05,731.22,734.91,726.82,731.31,4330000,731.31 +1961-12-04,728.80,737.62,725.16,731.22,4560000,731.22 +1961-12-01,721.60,731.99,719.74,728.80,4420000,728.80 +1961-11-30,727.18,727.50,717.88,721.60,4210000,721.60 +1961-11-29,728.07,732.11,722.57,727.18,4550000,727.18 +1961-11-28,731.99,735.19,724.23,728.07,4360000,728.07 +1961-11-27,732.60,738.38,726.94,731.99,4700000,731.99 +1961-11-24,730.42,735.92,726.61,732.60,4020000,732.60 +1961-11-22,729.32,734.18,724.95,730.42,4500000,730.42 +1961-11-21,730.09,737.58,724.06,729.32,4890000,729.32 +1961-11-20,729.53,735.59,725.32,730.09,4190000,730.09 +1961-11-17,733.33,736.00,724.83,729.53,3960000,729.53 +1961-11-16,734.34,737.54,725.84,733.33,3980000,733.33 +1961-11-15,732.56,741.30,730.86,734.34,4660000,734.34 +1961-11-14,728.43,736.65,724.35,732.56,4750000,732.56 +1961-11-13,724.83,732.48,721.27,728.43,4540000,728.43 +1961-11-10,722.28,727.46,718.28,724.83,4180000,724.83 +1961-11-09,723.74,726.82,717.75,722.28,4680000,722.28 +1961-11-08,714.68,726.73,714.68,723.74,6090000,723.74 +1961-11-06,709.26,717.47,707.11,714.60,4340000,714.60 +1961-11-03,706.83,712.62,702.62,709.26,4070000,709.26 +1961-11-02,703.84,710.35,701.29,706.83,3890000,706.83 +1961-11-01,703.92,708.09,700.12,703.84,3210000,703.84 +1961-10-31,701.09,706.67,699.35,703.92,3350000,703.92 +1961-10-30,698.74,704.57,696.35,701.09,3430000,701.09 +1961-10-27,700.68,703.60,694.94,698.74,3200000,698.74 +1961-10-26,700.72,704.81,694.82,700.68,3330000,700.68 +1961-10-25,697.24,706.47,695.55,700.72,3590000,700.72 +1961-10-24,698.98,704.00,693.77,697.24,3430000,697.24 +1961-10-23,705.62,708.73,695.55,698.98,3440000,698.98 +1961-10-20,704.85,708.77,700.52,705.62,3470000,705.62 +1961-10-19,704.20,710.43,700.48,704.85,3850000,704.85 +1961-10-18,701.98,708.37,699.63,704.20,3520000,704.20 +1961-10-17,703.15,706.18,698.62,701.98,3110000,701.98 +1961-10-16,703.31,707.84,699.23,703.15,2840000,703.15 +1961-10-13,705.50,708.77,700.12,703.31,3090000,703.31 +1961-10-12,705.62,709.54,701.13,705.50,3060000,705.50 +1961-10-11,706.67,710.59,701.69,705.62,3670000,705.62 +1961-10-10,705.42,709.62,700.56,706.67,3430000,706.67 +1961-10-09,708.25,712.05,700.93,705.42,2920000,705.42 +1961-10-06,708.49,714.07,704.40,708.25,3470000,708.25 +1961-10-05,703.31,711.89,701.13,708.49,3920000,708.49 +1961-10-04,698.66,706.75,698.13,703.31,3380000,703.31 +1961-10-03,699.83,703.03,693.12,698.66,2680000,698.66 +1961-10-02,701.21,704.97,695.63,699.83,2800000,699.83 +1961-09-29,700.28,704.93,694.25,701.21,3060000,701.21 +1961-09-28,701.13,706.18,696.80,700.28,3000000,700.28 +1961-09-27,693.20,703.47,691.58,701.13,3440000,701.13 +1961-09-26,691.86,700.44,689.07,693.20,3320000,693.20 +1961-09-25,701.57,702.99,688.87,691.86,3700000,691.86 +1961-09-22,706.31,707.48,698.70,701.57,3070000,701.57 +1961-09-21,707.32,713.22,703.43,706.31,3340000,706.31 +1961-09-20,702.54,709.22,699.87,707.32,2700000,707.32 +1961-09-19,711.24,712.98,700.52,702.54,3260000,702.54 +1961-09-18,716.30,716.94,705.62,711.24,3550000,711.24 +1961-09-15,715.00,720.06,710.23,716.30,3130000,716.30 +1961-09-14,722.20,723.22,713.14,715.00,2920000,715.00 +1961-09-13,722.61,727.66,718.81,722.20,3110000,722.20 +1961-09-12,714.36,725.88,713.99,722.61,2950000,722.61 +1961-09-11,720.91,721.39,710.47,714.36,2790000,714.36 +1961-09-08,726.53,727.30,717.71,720.91,3430000,720.91 +1961-09-07,726.01,733.53,723.05,726.53,3900000,726.53 +1961-09-06,719.61,728.76,719.61,726.01,3440000,726.01 +1961-09-05,721.19,726.01,716.26,718.72,3000000,718.72 +1961-09-01,719.94,724.95,716.30,721.19,2710000,721.19 +1961-08-31,716.90,723.13,713.75,719.94,2920000,719.94 +1961-08-30,714.15,720.06,711.08,716.90,3220000,716.90 +1961-08-29,716.01,718.52,709.78,714.15,3160000,714.15 +1961-08-28,716.70,722.24,712.33,716.01,3150000,716.01 +1961-08-25,714.03,720.10,712.01,716.70,3050000,716.70 +1961-08-24,719.41,719.41,709.54,714.03,3090000,714.03 +1961-08-23,725.76,726.86,717.27,720.46,3550000,720.46 +1961-08-22,724.75,730.17,720.34,725.76,3640000,725.76 +1961-08-21,723.54,728.35,719.49,724.75,3880000,724.75 +1961-08-18,721.84,727.54,719.25,723.54,4030000,723.54 +1961-08-17,718.20,725.80,715.53,721.84,4130000,721.84 +1961-08-16,716.18,720.67,712.62,718.20,3430000,718.20 +1961-08-15,718.93,722.85,714.15,716.18,3320000,716.18 +1961-08-14,722.61,724.02,714.48,718.93,3120000,718.93 +1961-08-11,720.49,726.57,717.31,722.61,3260000,722.61 +1961-08-10,717.57,722.98,713.46,720.49,3570000,720.49 +1961-08-09,720.22,722.31,713.86,717.57,3710000,717.57 +1961-08-08,719.58,725.78,715.91,720.22,4050000,720.22 +1961-08-07,720.69,723.14,712.95,719.58,3560000,719.58 +1961-08-04,715.71,723.57,715.08,720.69,3710000,720.69 +1961-08-03,710.46,720.41,709.04,715.71,3650000,715.71 +1961-08-02,713.94,719.86,707.93,710.46,4300000,710.46 +1961-08-01,705.37,716.03,702.21,713.94,3990000,713.94 +1961-07-31,705.13,709.75,700.51,705.37,3170000,705.37 +1961-07-28,702.80,709.75,700.00,705.13,3610000,705.13 +1961-07-27,694.19,705.96,693.40,702.80,4170000,702.80 +1961-07-26,687.63,697.98,687.63,694.19,4070000,694.19 +1961-07-25,682.14,688.89,679.66,686.37,3010000,686.37 +1961-07-24,682.81,687.16,678.27,682.14,2490000,682.14 +1961-07-21,682.97,686.84,679.10,682.81,2360000,682.81 +1961-07-20,682.74,686.21,678.31,682.97,2530000,682.97 +1961-07-19,679.30,685.22,674.80,682.74,2940000,682.74 +1961-07-18,684.59,687.95,677.44,679.30,3010000,679.30 +1961-07-17,690.95,693.48,683.49,684.59,2690000,684.59 +1961-07-14,685.90,693.68,682.58,690.95,2760000,690.95 +1961-07-13,690.79,690.83,683.17,685.90,2670000,685.90 +1961-07-12,694.47,696.28,687.28,690.79,3070000,690.79 +1961-07-11,693.16,698.18,690.95,694.47,3160000,694.47 +1961-07-10,692.73,698.49,689.33,693.16,3180000,693.16 +1961-07-07,694.27,697.90,689.61,692.73,3030000,692.73 +1961-07-06,692.77,698.97,690.36,694.27,3470000,694.27 +1961-07-05,689.81,696.76,688.34,692.77,3270000,692.77 +1961-07-03,683.96,691.50,681.91,689.81,2180000,689.81 +1961-06-30,681.95,687.16,678.23,683.96,2380000,683.96 +1961-06-29,684.59,687.28,679.62,681.95,2560000,681.95 +1961-06-28,683.88,690.04,681.20,684.59,2830000,684.59 +1961-06-27,681.16,687.16,676.30,683.88,3090000,683.88 +1961-06-26,688.66,689.96,679.22,681.16,2690000,681.16 +1961-06-23,685.62,692.81,683.64,688.66,2720000,688.66 +1961-06-22,686.09,689.96,680.13,685.62,2880000,685.62 +1961-06-21,687.87,691.42,683.13,686.09,3210000,686.09 +1961-06-20,680.68,691.03,679.50,687.87,3280000,687.87 +1961-06-19,685.50,686.53,673.49,680.68,3980000,680.68 +1961-06-16,691.27,691.98,681.16,685.50,3380000,685.50 +1961-06-15,695.81,699.72,689.69,691.27,3220000,691.27 +1961-06-14,694.15,700.47,691.42,695.81,3430000,695.81 +1961-06-13,696.76,698.93,690.24,694.15,3030000,694.15 +1961-06-12,700.90,702.29,693.20,696.76,3260000,696.76 +1961-06-09,701.69,705.88,697.39,700.90,3520000,700.90 +1961-06-08,700.86,704.46,695.26,701.69,3810000,701.69 +1961-06-07,703.79,708.05,697.70,700.86,3980000,700.86 +1961-06-06,703.43,708.88,699.21,703.79,4250000,703.79 +1961-06-05,697.70,708.57,695.33,703.43,4150000,703.43 +1961-06-02,695.37,700.82,691.54,697.70,3670000,697.70 +1961-06-01,696.72,700.86,691.39,695.37,3770000,695.37 +1961-05-31,696.28,703.04,692.65,696.72,4320000,696.72 +1961-05-26,690.16,699.48,686.13,696.28,3780000,696.28 +1961-05-25,696.52,699.13,687.55,690.16,3760000,690.16 +1961-05-24,700.59,702.56,689.77,696.52,3970000,696.52 +1961-05-23,702.44,707.34,697.31,700.59,3660000,700.59 +1961-05-22,705.96,714.69,697.74,702.44,4070000,702.44 +1961-05-19,701.14,708.88,698.38,705.96,4200000,705.96 +1961-05-18,705.52,709.00,697.70,701.14,4610000,701.14 +1961-05-17,697.74,708.49,695.18,705.52,5520000,705.52 +1961-05-16,692.37,700.35,690.52,697.74,5110000,697.74 +1961-05-15,687.91,696.44,684.47,692.37,4840000,692.37 +1961-05-12,686.49,691.54,683.41,687.91,4840000,687.91 +1961-05-11,686.61,689.81,682.06,686.49,5170000,686.49 +1961-05-10,686.92,690.67,682.93,686.61,5450000,686.61 +1961-05-09,689.06,692.73,683.49,686.92,5380000,686.92 +1961-05-08,690.67,695.41,685.15,689.06,5170000,689.06 +1961-05-05,692.25,697.31,687.59,690.67,4980000,690.67 +1961-05-04,688.90,696.16,686.49,692.25,5350000,692.25 +1961-05-03,682.34,691.54,682.10,688.90,4940000,688.90 +1961-05-02,677.05,685.34,674.68,682.34,4110000,682.34 +1961-05-01,678.71,683.17,672.98,677.05,3710000,677.05 +1961-04-28,679.54,683.96,673.34,678.71,3710000,678.71 +1961-04-27,682.18,686.76,675.78,679.54,4450000,679.54 +1961-04-26,683.09,688.98,678.94,682.18,4980000,682.18 +1961-04-25,672.66,686.72,672.59,683.09,4670000,683.09 +1961-04-24,684.16,684.16,671.64,672.66,4590000,672.66 +1961-04-21,684.24,689.41,678.79,685.26,4340000,685.26 +1961-04-20,686.21,689.02,679.77,684.24,4810000,684.24 +1961-04-19,690.60,690.67,679.58,686.21,4870000,686.21 +1961-04-18,696.72,697.43,687.63,690.60,4830000,690.60 +1961-04-17,693.72,700.75,689.29,696.72,5860000,696.72 +1961-04-14,692.02,698.45,688.07,693.72,5240000,693.72 +1961-04-13,690.16,696.12,685.54,692.02,4770000,692.02 +1961-04-12,694.11,697.39,686.96,690.16,4870000,690.16 +1961-04-11,692.06,700.31,687.87,694.11,5230000,694.11 +1961-04-10,684.16,695.77,684.16,692.06,5550000,692.06 +1961-04-07,679.34,687.76,676.52,683.68,5100000,683.68 +1961-04-06,677.32,682.58,673.39,679.34,4910000,679.34 +1961-04-05,678.73,680.98,671.79,677.32,5430000,677.32 +1961-04-04,677.59,683.11,673.81,678.73,7080000,678.73 +1961-04-03,676.63,684.29,672.98,677.59,6470000,677.59 +1961-03-30,676.41,682.01,673.13,676.63,5610000,676.63 +1961-03-29,669.58,679.19,667.64,676.41,5330000,676.41 +1961-03-28,671.03,674.96,665.73,669.58,4630000,669.58 +1961-03-27,672.48,675.30,667.22,671.03,4190000,671.03 +1961-03-24,675.45,677.28,668.59,672.48,4390000,672.48 +1961-03-23,679.38,680.48,671.79,675.45,2170000,675.45 +1961-03-22,678.73,685.32,675.19,679.38,5840000,679.38 +1961-03-21,678.84,682.92,672.44,678.73,5800000,678.73 +1961-03-20,676.48,684.07,674.12,678.84,5780000,678.84 +1961-03-17,670.80,681.63,670.80,676.48,5960000,676.48 +1961-03-16,662.88,674.19,660.36,670.38,5610000,670.38 +1961-03-15,661.08,665.96,656.36,662.88,4900000,662.88 +1961-03-14,664.44,667.11,657.85,661.08,4900000,661.08 +1961-03-13,663.56,668.52,659.48,664.44,5080000,664.44 +1961-03-10,663.33,667.91,658.57,663.56,5950000,663.56 +1961-03-09,666.15,670.08,660.40,663.33,6010000,663.33 +1961-03-08,667.14,670.54,660.70,666.15,5910000,666.15 +1961-03-07,674.46,674.84,662.76,667.14,5540000,667.14 +1961-03-06,671.57,678.23,668.78,674.46,5650000,674.46 +1961-03-03,669.39,676.14,666.61,671.57,5530000,671.57 +1961-03-02,663.03,671.53,661.01,669.39,5300000,669.39 +1961-03-01,662.08,666.27,657.12,663.03,4970000,663.03 +1961-02-28,660.44,667.03,657.16,662.08,5830000,662.08 +1961-02-27,655.60,662.11,652.59,660.44,5470000,660.44 +1961-02-24,654.42,659.56,650.99,655.60,5330000,655.60 +1961-02-23,652.40,657.46,648.55,654.42,5620000,654.42 +1961-02-21,653.65,657.54,649.00,652.40,5070000,652.40 +1961-02-20,651.67,657.27,649.04,653.65,4680000,653.65 +1961-02-17,651.86,656.21,647.90,651.67,4640000,651.67 +1961-02-16,648.89,656.36,646.64,651.86,5070000,651.86 +1961-02-15,642.91,651.94,641.46,648.89,5200000,648.89 +1961-02-14,637.04,646.37,635.44,642.91,4490000,642.91 +1961-02-13,639.67,640.89,632.81,637.04,3560000,637.04 +1961-02-10,645.12,645.99,635.55,639.67,4840000,639.67 +1961-02-09,648.85,651.56,641.57,645.12,5590000,645.12 +1961-02-08,643.94,651.41,641.04,648.85,4940000,648.85 +1961-02-07,645.65,647.48,637.99,643.94,4020000,643.94 +1961-02-06,652.97,653.65,642.07,645.65,3890000,645.65 +1961-02-03,653.62,657.20,647.37,652.97,5210000,652.97 +1961-02-02,649.39,655.56,646.41,653.62,4900000,653.62 +1961-02-01,648.20,652.82,643.67,649.39,4380000,649.39 +1961-01-31,650.64,655.18,644.24,648.20,4690000,648.20 +1961-01-30,643.59,653.96,642.33,650.64,5190000,650.64 +1961-01-27,638.87,648.17,636.47,643.59,4510000,643.59 +1961-01-26,637.72,641.84,632.66,638.87,4110000,638.87 +1961-01-25,638.79,643.10,633.76,637.72,4470000,637.72 +1961-01-24,639.82,642.22,634.87,638.79,4280000,638.79 +1961-01-23,634.37,642.68,634.07,639.82,4450000,639.82 +1961-01-20,632.39,637.76,630.41,634.37,3270000,634.37 +1961-01-19,634.10,637.15,628.77,632.39,4740000,632.39 +1961-01-18,628.96,636.39,626.48,634.10,4390000,634.10 +1961-01-17,633.19,634.26,625.49,628.96,3830000,628.96 +1961-01-16,633.65,639.17,629.91,633.19,4510000,633.19 +1961-01-13,628.50,636.20,626.48,633.65,4520000,633.65 +1961-01-12,627.21,633.23,623.28,628.50,4270000,628.50 +1961-01-11,625.72,631.85,622.37,627.21,4370000,627.21 +1961-01-10,624.42,630.90,620.96,625.72,4840000,625.72 +1961-01-09,621.64,627.93,620.12,624.42,4210000,624.42 +1961-01-06,622.67,624.58,615.66,621.64,3620000,621.64 +1961-01-05,621.49,628.35,619.24,622.67,4130000,622.67 +1961-01-04,610.25,623.36,608.46,621.49,3840000,621.49 +1961-01-03,615.89,616.65,606.09,610.25,2770000,610.25 +1960-12-30,616.19,620.80,612.76,615.89,5300000,615.89 +1960-12-29,615.75,620.37,612.42,616.19,4340000,616.19 +1960-12-28,613.38,618.60,610.76,615.75,3620000,615.75 +1960-12-27,613.23,617.78,609.65,613.38,3270000,613.38 +1960-12-23,613.31,617.52,608.28,613.23,3580000,613.23 +1960-12-22,615.42,619.67,610.65,613.31,3820000,613.31 +1960-12-21,614.82,621.33,610.42,615.42,4060000,615.42 +1960-12-20,615.56,619.82,610.94,614.82,3340000,614.82 +1960-12-19,617.78,621.07,612.50,615.56,3630000,615.56 +1960-12-16,610.76,620.37,609.06,617.78,3770000,617.78 +1960-12-15,612.68,616.42,607.21,610.76,3660000,610.76 +1960-12-14,611.72,618.34,608.24,612.68,3880000,612.68 +1960-12-13,611.94,615.49,606.80,611.72,3500000,611.72 +1960-12-12,610.90,615.31,606.87,611.94,3020000,611.94 +1960-12-09,605.17,612.86,601.88,610.90,4460000,610.90 +1960-12-08,604.62,608.61,601.14,605.17,3540000,605.17 +1960-12-07,597.11,606.84,595.93,604.62,3660000,604.62 +1960-12-06,593.49,599.44,591.34,597.11,3360000,597.11 +1960-12-05,596.00,597.52,590.79,593.49,3290000,593.49 +1960-12-02,594.56,600.14,592.12,596.00,3140000,596.00 +1960-12-01,597.22,598.18,589.82,594.56,3090000,594.56 +1960-11-30,602.40,602.99,595.15,597.22,3080000,597.22 +1960-11-29,605.43,606.98,599.03,602.40,3630000,602.40 +1960-11-28,606.47,611.31,602.25,605.43,3860000,605.43 +1960-11-25,602.47,608.57,600.18,606.47,3190000,606.47 +1960-11-23,601.10,605.10,597.00,602.47,3000000,602.47 +1960-11-22,604.54,608.02,598.55,601.10,3430000,601.10 +1960-11-21,603.62,607.87,600.44,604.54,3090000,604.54 +1960-11-18,602.18,608.02,599.96,603.62,2760000,603.62 +1960-11-17,604.77,606.58,598.89,602.18,2450000,602.18 +1960-11-16,606.87,611.61,602.29,604.77,3110000,604.77 +1960-11-15,604.80,608.83,598.66,606.87,2990000,606.87 +1960-11-14,608.61,610.09,600.66,604.80,2660000,604.80 +1960-11-11,611.79,611.79,604.43,608.61,2730000,608.61 +1960-11-10,602.25,614.09,600.48,612.01,4030000,612.01 +1960-11-09,597.63,603.62,587.35,602.25,3450000,602.25 +1960-11-07,596.07,604.32,593.52,597.63,3540000,597.63 +1960-11-04,590.82,599.40,589.71,596.07,3050000,596.07 +1960-11-03,588.23,592.60,584.65,590.82,2580000,590.82 +1960-11-02,585.24,592.97,584.35,588.23,2780000,588.23 +1960-11-01,580.36,589.42,579.43,585.24,2600000,585.24 +1960-10-31,577.92,582.28,573.11,580.36,2460000,580.36 +1960-10-28,580.95,582.10,575.18,577.92,2490000,577.92 +1960-10-27,575.18,583.80,575.07,580.95,2900000,580.95 +1960-10-26,566.60,577.66,566.60,575.18,3020000,575.18 +1960-10-25,571.93,575.73,564.23,566.05,3030000,566.05 +1960-10-24,577.55,578.18,566.64,571.93,4420000,571.93 +1960-10-21,582.69,584.61,575.40,577.55,3090000,577.55 +1960-10-20,587.01,589.71,580.62,582.69,2910000,582.69 +1960-10-19,588.75,590.64,582.32,587.01,2410000,587.01 +1960-10-18,593.34,594.71,585.61,588.75,2220000,588.75 +1960-10-17,596.48,600.03,590.45,593.34,2280000,593.34 +1960-10-14,591.49,599.51,590.45,596.48,2470000,596.48 +1960-10-13,585.83,594.30,584.87,591.49,2220000,591.49 +1960-10-12,588.75,590.90,583.72,585.83,1890000,585.83 +1960-10-11,587.31,593.01,585.02,588.75,2350000,588.75 +1960-10-10,586.42,591.49,583.17,587.31,2030000,587.31 +1960-10-07,583.69,590.82,581.28,586.42,2530000,586.42 +1960-10-06,579.54,589.20,579.54,583.69,2510000,583.69 +1960-10-05,573.15,580.36,569.04,578.88,2650000,578.88 +1960-10-04,577.81,578.73,569.74,573.15,2270000,573.15 +1960-10-03,580.14,582.98,574.26,577.81,2220000,577.81 +1960-09-30,572.22,582.47,572.22,580.14,3370000,580.14 +1960-09-29,569.08,575.77,565.49,570.59,2850000,570.59 +1960-09-28,574.81,579.40,565.53,569.08,3520000,569.08 +1960-09-27,577.14,581.80,570.85,574.81,3170000,574.81 +1960-09-26,584.76,584.76,573.29,577.14,3930000,577.14 +1960-09-23,592.15,592.64,583.61,585.20,2580000,585.20 +1960-09-22,594.26,596.70,588.57,592.15,1970000,592.15 +1960-09-21,589.31,597.85,589.31,594.26,2930000,594.26 +1960-09-20,586.76,592.08,581.91,588.20,3660000,588.20 +1960-09-19,601.18,601.18,585.72,586.76,3790000,586.76 +1960-09-16,602.69,606.61,598.22,602.18,2340000,602.18 +1960-09-15,605.69,607.24,598.26,602.69,2870000,602.69 +1960-09-14,611.79,614.01,604.43,605.69,2530000,605.69 +1960-09-13,609.35,614.34,606.47,611.79,2180000,611.79 +1960-09-12,614.12,615.05,606.73,609.35,2160000,609.35 +1960-09-09,611.42,617.41,609.87,614.12,2750000,614.12 +1960-09-08,612.27,615.79,607.39,611.42,2670000,611.42 +1960-09-07,620.85,621.85,611.35,612.27,2850000,612.27 +1960-09-06,625.22,627.58,618.97,620.85,2580000,620.85 +1960-09-02,626.10,629.17,622.07,625.22,2680000,625.22 +1960-09-01,625.99,630.95,622.78,626.10,3460000,626.10 +1960-08-31,626.40,628.73,620.93,625.99,3130000,625.99 +1960-08-30,634.46,636.35,624.44,626.40,2890000,626.40 +1960-08-29,636.13,639.31,631.76,634.46,2780000,634.46 +1960-08-26,637.16,640.34,632.13,636.13,2780000,636.13 +1960-08-25,641.56,643.71,634.24,637.16,2680000,637.16 +1960-08-24,638.29,645.30,636.68,641.56,3500000,641.56 +1960-08-23,631.25,640.40,631.25,638.29,3560000,638.29 +1960-08-22,629.27,634.55,625.53,630.71,2760000,630.71 +1960-08-19,625.82,631.42,624.64,629.27,2570000,629.27 +1960-08-18,626.54,629.31,622.70,625.82,2890000,625.82 +1960-08-17,625.43,628.98,621.62,626.54,3090000,626.54 +1960-08-16,624.17,628.98,622.19,625.43,2710000,625.43 +1960-08-15,626.18,628.41,621.15,624.17,2450000,624.17 +1960-08-12,622.88,630.53,622.34,626.18,3160000,626.18 +1960-08-11,617.52,624.85,616.27,622.88,3070000,622.88 +1960-08-10,615.69,620.54,612.67,617.52,2810000,617.52 +1960-08-09,614.79,619.10,610.95,615.69,2700000,615.69 +1960-08-08,614.29,618.57,609.15,614.79,2960000,614.79 +1960-08-05,609.23,617.88,606.60,614.29,3000000,614.29 +1960-08-04,608.69,611.24,600.28,609.23,2840000,609.23 +1960-08-03,613.68,614.94,605.67,608.69,2470000,608.69 +1960-08-02,617.85,622.34,610.09,613.68,2090000,613.68 +1960-08-01,616.73,622.37,613.36,617.85,2440000,617.85 +1960-07-29,605.67,618.35,605.24,616.73,2730000,616.73 +1960-07-28,601.76,610.88,599.53,605.67,3020000,605.67 +1960-07-27,606.75,611.96,600.35,601.76,2560000,601.76 +1960-07-26,601.68,612.78,600.50,606.75,2720000,606.75 +1960-07-25,609.87,612.17,597.30,601.68,2840000,601.68 +1960-07-22,616.63,617.60,605.45,609.87,2850000,609.87 +1960-07-21,624.13,626.76,614.22,616.63,2510000,616.63 +1960-07-20,624.78,629.23,620.72,624.13,2370000,624.13 +1960-07-19,626.00,629.52,621.22,624.78,2490000,624.78 +1960-07-18,630.24,632.93,623.85,626.00,2350000,626.00 +1960-07-15,631.32,635.16,627.47,630.24,2140000,630.24 +1960-07-14,632.11,637.14,629.34,631.32,2480000,631.32 +1960-07-13,634.12,638.18,629.16,632.11,2590000,632.11 +1960-07-12,640.44,642.24,631.64,634.12,2860000,634.12 +1960-07-11,646.91,649.17,637.60,640.44,2920000,640.44 +1960-07-08,644.89,650.10,641.52,646.91,3010000,646.91 +1960-07-07,640.37,646.83,638.21,644.89,3050000,644.89 +1960-07-06,640.91,645.22,636.45,640.37,2970000,640.37 +1960-07-05,641.30,645.11,636.27,640.91,2780000,640.91 +1960-07-01,640.62,644.71,636.60,641.30,2620000,641.30 +1960-06-30,638.39,644.39,634.91,640.62,2940000,640.62 +1960-06-29,637.46,642.78,634.37,638.39,3160000,638.39 +1960-06-28,642.49,644.75,634.66,637.46,3120000,637.46 +1960-06-27,647.01,650.75,640.33,642.49,2960000,642.49 +1960-06-24,647.41,650.32,641.91,647.01,3220000,647.01 +1960-06-23,645.36,651.97,642.52,647.41,3620000,647.41 +1960-06-22,644.93,649.06,639.22,645.36,3600000,645.36 +1960-06-21,647.52,650.89,640.55,644.93,3860000,644.93 +1960-06-20,650.89,654.09,642.02,647.52,3970000,647.52 +1960-06-17,648.27,655.24,644.79,650.89,3920000,650.89 +1960-06-16,649.42,653.95,644.00,648.27,3540000,648.27 +1960-06-15,654.88,657.32,647.37,649.42,3630000,649.42 +1960-06-14,655.85,660.05,650.71,654.88,3430000,654.88 +1960-06-13,654.88,661.45,650.61,655.85,3180000,655.85 +1960-06-10,656.42,659.55,650.68,654.88,2940000,654.88 +1960-06-09,650.35,663.64,647.41,656.42,3820000,656.42 +1960-06-08,645.58,652.83,642.49,650.35,3800000,650.35 +1960-06-07,637.85,647.98,637.85,645.58,3710000,645.58 +1960-06-06,628.98,639.43,627.19,636.92,3220000,636.92 +1960-06-03,627.87,634.33,624.92,628.98,3340000,628.98 +1960-06-02,624.89,631.28,620.76,627.87,3730000,627.87 +1960-06-01,625.50,629.88,620.61,624.89,3770000,624.89 +1960-05-31,624.78,631.28,622.66,625.50,3750000,625.50 +1960-05-27,622.79,628.81,620.86,624.78,3040000,624.78 +1960-05-26,621.28,626.78,618.20,622.79,3720000,622.79 +1960-05-25,621.39,625.66,616.87,621.28,3440000,621.28 +1960-05-24,623.66,626.89,617.71,621.39,3240000,621.39 +1960-05-23,625.24,629.34,620.34,623.66,2530000,623.66 +1960-05-20,624.68,631.44,621.60,625.24,3170000,625.24 +1960-05-19,623.00,628.08,618.62,624.68,3700000,624.68 +1960-05-18,621.63,630.21,617.71,623.00,5240000,623.00 +1960-05-17,617.39,624.92,613.30,621.63,4080000,621.63 +1960-05-16,616.03,621.84,611.76,617.39,3530000,617.39 +1960-05-13,607.87,618.20,607.31,616.03,3750000,616.03 +1960-05-12,606.54,612.70,603.81,607.87,3220000,607.87 +1960-05-11,604.82,608.88,601.70,606.54,2900000,606.54 +1960-05-10,607.48,610.14,602.86,604.82,2870000,604.82 +1960-05-09,607.62,612.74,604.19,607.48,2670000,607.48 +1960-05-06,608.32,611.41,603.56,607.62,2560000,607.62 +1960-05-05,610.99,613.79,605.80,608.32,2670000,608.32 +1960-05-04,607.73,613.47,606.05,610.99,2870000,610.99 +1960-05-03,599.61,610.14,598.73,607.73,2910000,607.73 +1960-05-02,601.70,605.52,596.61,599.61,2930000,599.61 +1960-04-29,604.33,607.85,598.35,601.70,2850000,601.70 +1960-04-28,609.96,612.22,599.27,604.33,3190000,604.33 +1960-04-27,610.92,616.76,606.89,609.96,3020000,609.96 +1960-04-26,611.13,613.76,606.65,610.92,2940000,610.92 +1960-04-25,616.32,617.00,607.71,611.13,2980000,611.13 +1960-04-22,619.15,622.64,614.47,616.32,2850000,616.32 +1960-04-21,618.71,621.92,615.19,619.15,2700000,619.15 +1960-04-20,625.68,625.68,615.94,618.71,3150000,618.71 +1960-04-19,630.77,634.97,624.86,626.40,3080000,626.40 +1960-04-18,630.12,637.16,626.33,630.77,3200000,630.77 +1960-04-14,626.50,632.54,624.62,630.12,2730000,630.12 +1960-04-13,626.50,630.15,623.39,626.50,2730000,626.50 +1960-04-12,624.89,628.62,621.41,626.50,2470000,626.50 +1960-04-11,628.10,631.28,622.40,624.89,2520000,624.89 +1960-04-08,629.03,632.07,624.14,628.10,2820000,628.10 +1960-04-07,628.31,634.08,626.91,629.03,3070000,629.03 +1960-04-06,622.64,631.35,622.64,628.31,3450000,628.31 +1960-04-05,618.54,624.69,616.56,622.19,2840000,622.19 +1960-04-04,615.98,621.68,613.35,618.54,2450000,618.54 +1960-04-01,616.59,619.94,612.94,615.98,2260000,615.98 +1960-03-31,619.94,622.74,614.75,616.59,2690000,616.59 +1960-03-30,620.35,623.56,616.28,619.94,2450000,619.94 +1960-03-29,621.78,623.97,617.68,620.35,2320000,620.35 +1960-03-28,622.47,625.68,618.81,621.78,2500000,621.78 +1960-03-25,624.00,625.95,619.29,622.47,2640000,622.47 +1960-03-24,622.06,627.86,621.51,624.00,2940000,624.00 +1960-03-23,618.09,624.35,616.25,622.06,3020000,622.06 +1960-03-22,617.00,622.09,614.20,618.09,2490000,618.09 +1960-03-21,616.42,620.52,613.99,617.00,2500000,617.00 +1960-03-18,615.09,620.69,613.52,616.42,2620000,616.42 +1960-03-17,616.73,618.61,610.85,615.09,2140000,615.09 +1960-03-16,612.18,620.90,611.74,616.73,2960000,616.73 +1960-03-15,606.79,614.68,605.52,612.18,2690000,612.18 +1960-03-14,605.83,610.17,602.96,606.79,2530000,606.79 +1960-03-11,602.31,608.70,599.61,605.83,2770000,605.83 +1960-03-10,607.16,609.72,600.40,602.31,3350000,602.31 +1960-03-09,599.10,608.29,596.20,607.16,3580000,607.16 +1960-03-08,604.02,607.88,596.64,599.10,3370000,599.10 +1960-03-07,609.79,614.61,601.59,604.02,2900000,604.02 +1960-03-04,612.05,613.55,600.36,609.79,4060000,609.79 +1960-03-03,621.37,622.64,610.03,612.05,3160000,612.05 +1960-03-02,626.87,628.34,618.95,621.37,3110000,621.37 +1960-03-01,630.12,632.65,623.77,626.87,2920000,626.87 +1960-02-29,632.00,635.31,627.56,630.12,2990000,630.12 +1960-02-26,628.51,636.30,627.76,632.00,3380000,632.00 +1960-02-25,623.73,630.22,621.65,628.51,3600000,628.51 +1960-02-24,626.19,627.90,620.79,623.73,2740000,623.73 +1960-02-23,628.45,633.50,624.04,626.19,2960000,626.19 +1960-02-19,622.19,630.26,621.31,628.45,3230000,628.45 +1960-02-18,615.29,625.95,615.29,622.19,3800000,622.19 +1960-02-17,611.33,615.33,603.34,613.55,4210000,613.55 +1960-02-16,617.58,619.29,608.94,611.33,3270000,611.33 +1960-02-15,622.23,624.31,615.94,617.58,2780000,617.58 +1960-02-12,618.57,623.70,617.38,622.23,2230000,622.23 +1960-02-11,623.36,626.09,617.34,618.57,2610000,618.57 +1960-02-10,628.45,631.79,620.25,623.36,2440000,623.36 +1960-02-09,619.43,630.53,617.72,628.45,2860000,628.45 +1960-02-08,626.50,626.50,610.17,619.43,3350000,619.43 +1960-02-05,631.14,632.10,623.63,626.77,2530000,626.77 +1960-02-04,630.97,634.53,627.11,631.14,2600000,631.14 +1960-02-03,636.92,640.30,629.03,630.97,3020000,630.97 +1960-02-02,628.04,638.86,628.04,636.92,3080000,636.92 +1960-02-01,622.62,630.75,619.68,626.20,2820000,626.20 +1960-01-29,629.84,631.51,619.51,622.62,3060000,622.62 +1960-01-28,637.67,638.27,627.77,629.84,2630000,629.84 +1960-01-27,639.84,643.05,633.89,637.67,2460000,637.67 +1960-01-26,639.07,642.81,633.49,639.84,3060000,639.84 +1960-01-25,645.85,648.83,637.20,639.07,2790000,639.07 +1960-01-22,645.43,650.92,643.33,645.85,2690000,645.85 +1960-01-21,643.69,649.51,641.40,645.43,2700000,645.43 +1960-01-20,645.07,650.13,641.57,643.69,2720000,643.69 +1960-01-19,653.86,654.97,642.58,645.07,3100000,645.07 +1960-01-18,659.68,662.06,651.70,653.86,3020000,653.86 +1960-01-15,660.53,666.38,656.25,659.68,3400000,659.68 +1960-01-14,656.44,663.14,655.13,660.53,3560000,660.53 +1960-01-13,660.43,664.68,653.11,656.44,3470000,656.44 +1960-01-12,667.16,667.39,655.49,660.43,3760000,660.43 +1960-01-11,675.73,676.74,663.67,667.16,3470000,667.16 +1960-01-08,677.66,680.86,671.38,675.73,3290000,675.73 +1960-01-07,682.62,683.05,674.98,677.66,3310000,677.66 +1960-01-06,685.47,687.36,678.34,682.62,3730000,682.62 +1960-01-05,679.06,687.14,677.43,685.47,3710000,685.47 +1960-01-04,679.36,688.21,677.39,679.06,3990000,679.06 +1959-12-31,676.97,682.72,676.32,679.36,3810000,679.36 +1959-12-30,672.23,679.49,672.00,676.97,3680000,676.97 +1959-12-29,669.77,675.01,667.13,672.23,3020000,672.23 +1959-12-28,670.69,674.41,665.96,669.77,2830000,669.77 +1959-12-24,670.18,674.69,666.93,670.69,2320000,670.69 +1959-12-23,671.82,675.73,667.75,670.18,2890000,670.18 +1959-12-22,675.92,677.34,669.90,671.82,2930000,671.82 +1959-12-21,676.65,681.54,673.05,675.92,3290000,675.92 +1959-12-18,673.90,679.52,671.35,676.65,3230000,676.65 +1959-12-17,675.20,678.54,671.54,673.90,3040000,673.90 +1959-12-16,673.78,679.20,671.41,675.20,3270000,675.20 +1959-12-15,675.07,681.00,671.63,673.78,3450000,673.78 +1959-12-14,670.50,678.26,669.02,675.07,3100000,675.07 +1959-12-11,672.74,674.72,667.28,670.50,2910000,670.50 +1959-12-10,671.26,676.96,668.80,672.74,3170000,672.74 +1959-12-09,675.39,678.03,668.76,671.26,3430000,671.26 +1959-12-08,665.67,679.36,665.07,675.39,3870000,675.39 +1959-12-07,664.00,670.44,661.83,665.67,3620000,665.67 +1959-12-04,662.96,668.04,659.87,664.00,3590000,664.00 +1959-12-03,661.29,666.05,658.48,662.96,3280000,662.96 +1959-12-02,664.38,668.48,658.64,661.29,3490000,661.29 +1959-12-01,659.97,668.70,659.97,664.38,3990000,664.38 +1959-11-30,652.52,661.23,651.55,659.18,3670000,659.18 +1959-11-27,651.10,655.58,647.92,652.52,3030000,652.52 +1959-11-25,649.69,655.55,646.69,651.10,3550000,651.10 +1959-11-24,646.75,653.66,644.86,649.69,3650000,649.69 +1959-11-23,645.46,651.51,641.77,646.75,3400000,646.75 +1959-11-20,643.32,649.97,641.42,645.46,2960000,645.46 +1959-11-19,641.99,648.36,639.63,643.32,3230000,643.32 +1959-11-18,635.62,644.96,634.77,641.99,3660000,641.99 +1959-11-17,634.46,639.60,630.99,635.62,3570000,635.62 +1959-11-16,641.71,644.48,632.72,634.46,3710000,634.46 +1959-11-13,644.26,647.38,640.01,641.71,3050000,641.71 +1959-11-12,647.32,650.88,642.78,644.26,3600000,644.26 +1959-11-11,648.14,649.94,644.96,647.32,2820000,647.32 +1959-11-10,650.92,652.08,644.86,648.14,3020000,648.14 +1959-11-09,650.92,658.86,648.27,650.92,3700000,650.92 +1959-11-06,647.57,654.38,644.92,650.92,3450000,650.92 +1959-11-05,645.74,651.61,641.99,647.57,3170000,647.57 +1959-11-04,645.46,651.96,641.01,645.74,3940000,645.74 +1959-11-02,646.60,650.85,642.24,645.46,3320000,645.46 +1959-10-30,645.11,649.40,641.68,646.60,3560000,646.60 +1959-10-29,643.60,648.65,638.78,645.11,3890000,645.11 +1959-10-28,642.18,647.04,637.55,643.60,3920000,643.60 +1959-10-27,637.61,645.87,636.19,642.18,4160000,642.18 +1959-10-26,633.07,641.14,633.07,637.61,3580000,637.61 +1959-10-23,625.59,634.42,624.84,633.07,2880000,633.07 +1959-10-22,632.69,635.75,624.55,625.59,3060000,625.59 +1959-10-21,635.37,637.99,630.64,632.69,2730000,632.69 +1959-10-20,639.66,642.18,634.01,635.37,2740000,635.37 +1959-10-19,643.22,643.88,634.93,639.66,2470000,639.66 +1959-10-16,637.67,646.53,637.67,643.22,2760000,643.22 +1959-10-15,634.27,640.51,632.91,637.48,2190000,637.48 +1959-10-14,637.83,639.50,632.28,634.27,2320000,634.27 +1959-10-13,638.55,642.34,635.46,637.83,2530000,637.83 +1959-10-12,636.98,641.27,635.56,638.55,1750000,638.55 +1959-10-09,633.04,638.74,631.62,636.98,2540000,636.98 +1959-10-08,635.37,637.42,631.24,633.04,2510000,633.04 +1959-10-07,636.06,638.46,631.90,635.37,2380000,635.37 +1959-10-06,637.01,639.06,631.87,636.06,2330000,636.06 +1959-10-05,636.57,640.76,634.58,637.01,2100000,637.01 +1959-10-02,633.60,639.22,630.77,636.57,2270000,636.57 +1959-10-01,631.68,635.72,625.40,633.60,2660000,633.60 +1959-09-30,640.10,640.16,628.94,631.68,2850000,631.68 +1959-09-29,636.47,643.60,635.72,640.10,3220000,640.10 +1959-09-28,632.59,638.93,629.35,636.47,2640000,636.47 +1959-09-25,632.85,637.73,628.18,632.59,3280000,632.59 +1959-09-24,625.06,635.28,625.06,632.85,3480000,632.85 +1959-09-23,617.21,626.73,617.21,624.02,3010000,624.02 +1959-09-22,618.15,624.24,613.30,616.45,3000000,616.45 +1959-09-21,625.59,625.59,613.71,618.15,3240000,618.15 +1959-09-18,629.00,629.60,621.97,625.78,2530000,625.78 +1959-09-17,632.41,636.19,627.64,629.00,2090000,629.00 +1959-09-16,630.80,636.16,629.47,632.41,2180000,632.41 +1959-09-15,633.79,634.83,624.49,630.80,2830000,630.80 +1959-09-14,637.36,641.08,632.31,633.79,2590000,633.79 +1959-09-11,633.38,641.33,632.34,637.36,2640000,637.36 +1959-09-10,637.67,641.30,630.45,633.38,2520000,633.38 +1959-09-09,642.69,644.74,631.43,637.67,3030000,637.67 +1959-09-08,651.74,651.74,636.98,642.69,2940000,642.69 +1959-09-04,645.90,653.91,645.37,652.18,2300000,652.18 +1959-09-03,655.80,655.93,644.51,645.90,2330000,645.90 +1959-09-02,655.90,659.87,652.15,655.80,2370000,655.80 +1959-09-01,664.41,664.95,652.74,655.90,2430000,655.90 +1959-08-31,663.06,667.72,660.25,664.41,2140000,664.41 +1959-08-28,663.34,666.71,659.75,663.06,1930000,663.06 +1959-08-27,657.60,665.61,657.60,663.34,2550000,663.34 +1959-08-26,655.96,660.34,652.84,657.57,2210000,657.57 +1959-08-25,653.22,659.56,651.07,655.96,1960000,655.96 +1959-08-24,655.39,657.82,650.57,653.22,1860000,653.22 +1959-08-21,655.02,658.86,651.89,655.39,2000000,655.39 +1959-08-20,647.01,657.29,647.01,655.02,2450000,655.02 +1959-08-19,649.31,649.31,639.34,646.53,3050000,646.53 +1959-08-18,658.42,659.15,649.50,650.79,2280000,650.79 +1959-08-17,658.74,663.02,656.18,658.42,1980000,658.42 +1959-08-14,655.43,661.42,654.61,658.74,1990000,658.74 +1959-08-13,655.14,658.48,651.99,655.43,2020000,655.43 +1959-08-12,658.07,662.46,653.41,655.14,2700000,655.14 +1959-08-11,653.79,661.76,651.14,658.07,2980000,658.07 +1959-08-10,665.14,665.14,647.93,653.79,4190000,653.79 +1959-08-07,671.98,676.11,666.71,668.57,2580000,668.57 +1959-08-06,672.33,676.11,669.36,671.98,2610000,671.98 +1959-08-05,675.76,675.76,667.82,672.33,2630000,672.33 +1959-08-04,678.10,679.71,673.40,676.30,2530000,676.30 +1959-08-03,674.88,683.90,673.90,678.10,2410000,678.10 +1959-07-31,673.37,677.28,670.50,674.88,2270000,674.88 +1959-07-30,673.18,678.67,668.29,673.37,3240000,673.37 +1959-07-29,672.04,677.12,668.48,673.18,3460000,673.18 +1959-07-28,669.08,675.76,666.62,672.04,3190000,672.04 +1959-07-27,663.72,671.92,663.34,669.08,2910000,669.08 +1959-07-24,664.63,668.10,661.29,663.72,2720000,663.72 +1959-07-23,664.38,668.23,661.26,664.63,3310000,664.63 +1959-07-22,661.48,667.69,660.06,664.38,3310000,664.38 +1959-07-21,654.54,663.78,652.62,661.48,2950000,661.48 +1959-07-20,657.13,659.87,651.83,654.54,2500000,654.54 +1959-07-17,658.29,659.81,653.69,657.13,2510000,657.13 +1959-07-16,660.57,662.93,655.46,658.29,3170000,658.29 +1959-07-15,657.70,663.91,655.90,660.57,3280000,660.57 +1959-07-14,657.35,661.13,653.53,657.70,3230000,657.70 +1959-07-13,663.56,665.45,655.05,657.35,3360000,657.35 +1959-07-10,663.09,667.34,659.24,663.56,3600000,663.56 +1959-07-09,663.81,667.12,658.89,663.09,3560000,663.09 +1959-07-08,663.21,668.26,658.23,663.81,4010000,663.81 +1959-07-07,660.09,665.89,656.31,663.21,3840000,663.21 +1959-07-06,654.76,663.31,653.79,660.09,3720000,660.09 +1959-07-02,650.88,659.18,650.22,654.76,3610000,654.76 +1959-07-01,643.60,654.01,643.60,650.88,3150000,650.88 +1959-06-30,643.06,647.29,639.69,643.60,3200000,643.60 +1959-06-29,639.25,646.41,638.33,643.06,3000000,643.06 +1959-06-26,637.23,643.51,635.02,639.25,3100000,639.25 +1959-06-25,634.27,640.23,631.87,637.23,3250000,637.23 +1959-06-24,630.73,636.91,628.53,634.27,3180000,634.27 +1959-06-23,631.71,635.62,627.61,630.73,2600000,630.73 +1959-06-22,629.76,637.42,627.86,631.71,2630000,631.71 +1959-06-19,629.41,633.73,625.12,629.76,2260000,629.76 +1959-06-18,628.05,633.87,627.20,629.41,3150000,629.41 +1959-06-17,621.40,629.82,619.00,628.05,2850000,628.05 +1959-06-16,624.59,626.60,618.28,621.40,2440000,621.40 +1959-06-15,627.42,629.73,621.02,624.59,2410000,624.59 +1959-06-12,627.49,632.03,623.54,627.42,2580000,627.42 +1959-06-11,627.17,634.14,624.62,627.49,3120000,627.49 +1959-06-10,620.45,630.67,620.45,627.17,3310000,627.17 +1959-06-09,621.62,624.81,613.11,617.62,3490000,617.62 +1959-06-08,629.98,632.03,620.33,621.62,2970000,621.62 +1959-06-05,630.54,633.95,625.97,629.98,2800000,629.98 +1959-06-04,637.39,639.78,628.94,630.54,3210000,630.54 +1959-06-03,637.45,642.46,634.36,637.39,2910000,637.39 +1959-06-02,643.10,643.10,632.85,637.45,3120000,637.45 +1959-06-01,643.79,648.65,640.32,643.51,2730000,643.51 +1959-05-29,639.58,647.24,637.25,643.79,2790000,643.79 +1959-05-28,636.68,643.09,635.59,639.58,2970000,639.58 +1959-05-27,632.38,639.22,631.99,636.68,2940000,636.68 +1959-05-26,632.35,636.28,629.41,632.38,2910000,632.38 +1959-05-25,634.74,639.64,630.59,632.35,3260000,632.35 +1959-05-22,631.65,637.37,630.38,634.74,3030000,634.74 +1959-05-21,631.87,634.38,626.84,631.65,3230000,631.65 +1959-05-20,635.44,636.77,628.99,631.87,3550000,631.87 +1959-05-19,633.53,639.19,631.20,635.44,3170000,635.44 +1959-05-18,634.53,636.62,629.90,633.53,2970000,633.53 +1959-05-15,637.04,640.92,632.44,634.53,3510000,634.53 +1959-05-14,633.05,640.10,631.02,637.04,3660000,637.04 +1959-05-13,627.66,635.38,625.51,633.05,3540000,633.05 +1959-05-12,625.03,630.90,622.97,627.66,3550000,627.66 +1959-05-11,621.36,627.66,620.58,625.03,3860000,625.03 +1959-05-08,615.73,625.81,615.73,621.36,3930000,621.36 +1959-05-07,624.39,624.45,611.68,615.64,4530000,615.64 +1959-05-06,625.90,630.84,621.73,624.39,4110000,624.39 +1959-05-05,625.06,629.05,622.88,625.90,3360000,625.90 +1959-05-04,625.06,629.87,622.18,625.06,3060000,625.06 +1959-05-01,623.75,628.11,620.49,625.06,3020000,625.06 +1959-04-30,625.87,628.69,620.91,623.75,3510000,623.75 +1959-04-29,628.87,629.75,622.60,625.87,3470000,625.87 +1959-04-28,629.87,633.95,625.24,628.87,3920000,628.87 +1959-04-27,627.39,635.29,624.60,629.87,3850000,629.87 +1959-04-24,623.27,630.26,622.60,627.39,3790000,627.39 +1959-04-23,625.15,627.39,618.94,623.27,3310000,623.27 +1959-04-22,629.23,631.62,622.69,625.15,3430000,625.15 +1959-04-21,627.08,632.17,623.42,629.23,3650000,629.23 +1959-04-20,624.06,630.69,622.54,627.08,3610000,627.08 +1959-04-17,618.34,626.66,618.34,624.06,3870000,624.06 +1959-04-16,612.50,620.58,611.41,617.58,3790000,617.58 +1959-04-15,609.53,615.07,608.65,612.50,3680000,612.50 +1959-04-14,607.76,611.98,605.44,609.53,3320000,609.53 +1959-04-13,605.97,610.81,603.47,607.76,3140000,607.76 +1959-04-10,605.50,609.52,603.56,605.97,3000000,605.97 +1959-04-09,606.44,609.11,602.12,605.50,2830000,605.50 +1959-04-08,610.34,612.28,605.15,606.44,3260000,606.44 +1959-04-07,611.16,612.66,606.08,610.34,3020000,610.34 +1959-04-06,611.93,616.42,608.26,611.16,3510000,611.16 +1959-04-03,607.52,614.39,607.52,611.93,3680000,611.93 +1959-04-02,602.97,610.25,602.97,607.52,3220000,607.52 +1959-04-01,601.71,606.97,599.65,602.94,2980000,602.94 +1959-03-31,602.65,605.73,599.21,601.71,2820000,601.71 +1959-03-30,606.58,608.64,600.98,602.65,2940000,602.65 +1959-03-26,606.47,608.61,601.50,606.58,2900000,606.58 +1959-03-25,606.73,611.16,603.82,606.47,3280000,606.47 +1959-03-24,605.56,608.67,602.36,606.73,3000000,606.73 +1959-03-23,610.37,612.78,603.38,605.56,3700000,605.56 +1959-03-20,610.02,614.16,605.85,610.37,3770000,610.37 +1959-03-19,610.87,613.92,605.64,610.02,4150000,610.02 +1959-03-18,612.69,617.15,609.14,610.87,4530000,610.87 +1959-03-17,607.93,615.83,607.93,612.69,4730000,612.69 +1959-03-16,614.69,615.80,605.82,607.88,4420000,607.88 +1959-03-13,613.75,618.80,610.78,614.69,4880000,614.69 +1959-03-12,611.49,616.10,608.55,613.75,4690000,613.75 +1959-03-11,611.14,614.34,608.08,611.49,4160000,611.49 +1959-03-10,609.96,614.39,605.44,611.14,3920000,611.14 +1959-03-09,609.52,615.01,606.14,609.96,3530000,609.96 +1959-03-06,611.87,613.16,605.20,609.52,3930000,609.52 +1959-03-05,611.84,614.57,608.32,611.87,3930000,611.87 +1959-03-04,610.78,615.77,606.20,611.84,4150000,611.84 +1959-03-03,605.03,613.04,604.29,610.78,4790000,610.78 +1959-03-02,603.50,608.82,600.89,605.03,4210000,605.03 +1959-02-27,602.00,606.53,599.77,603.50,4300000,603.50 +1959-02-26,601.18,604.44,596.84,602.00,3930000,602.00 +1959-02-25,602.91,605.35,597.86,601.18,3780000,601.18 +1959-02-24,602.21,607.61,599.57,602.91,4340000,602.91 +1959-02-20,595.04,603.91,594.93,602.21,4190000,602.21 +1959-02-19,589.58,597.48,589.58,595.04,4160000,595.04 +1959-02-18,586.71,590.76,583.62,588.82,3480000,588.82 +1959-02-17,587.91,591.58,583.83,586.71,3190000,586.71 +1959-02-16,587.97,593.14,584.39,587.91,3480000,587.91 +1959-02-13,581.89,589.91,580.01,587.97,3070000,587.97 +1959-02-12,584.03,586.73,579.98,581.89,2630000,581.89 +1959-02-11,582.65,588.17,581.63,584.03,3000000,584.03 +1959-02-10,574.72,583.89,574.72,582.65,2960000,582.65 +1959-02-09,581.36,581.36,571.73,574.46,3130000,574.46 +1959-02-06,586.12,587.56,580.54,582.33,3010000,582.33 +1959-02-05,589.38,591.14,584.06,586.12,3140000,586.12 +1959-02-04,592.34,594.16,587.50,589.38,3170000,589.38 +1959-02-03,592.23,595.60,589.35,592.34,3220000,592.34 +1959-02-02,593.96,597.66,589.14,592.23,3610000,592.23 +1959-01-30,590.40,597.60,590.35,593.96,3600000,593.96 +1959-01-29,588.53,594.19,585.88,590.40,3470000,590.40 +1959-01-28,594.66,596.37,584.71,588.53,4190000,588.53 +1959-01-27,592.37,597.31,589.47,594.66,3480000,594.66 +1959-01-26,596.07,599.77,591.11,592.37,3980000,592.37 +1959-01-23,595.69,598.36,591.40,596.07,3600000,596.07 +1959-01-22,597.66,601.74,593.96,595.69,4250000,595.69 +1959-01-21,595.69,600.51,593.28,597.66,3940000,597.66 +1959-01-20,594.40,598.45,590.99,595.69,3680000,595.69 +1959-01-19,595.75,598.57,590.32,594.40,3840000,594.40 +1959-01-16,594.81,599.89,590.38,595.75,4300000,595.75 +1959-01-15,591.64,598.10,589.88,594.81,4500000,594.81 +1959-01-14,590.70,593.28,586.85,591.64,4090000,591.64 +1959-01-13,592.64,595.04,587.47,590.70,3790000,590.70 +1959-01-12,592.72,597.31,589.61,592.64,4320000,592.64 +1959-01-09,588.14,594.84,588.00,592.72,4760000,592.72 +1959-01-08,583.15,590.11,580.54,588.14,4030000,588.14 +1959-01-07,591.37,592.58,581.07,583.15,4140000,583.15 +1959-01-06,590.17,593.52,584.88,591.37,3690000,591.37 +1959-01-05,587.59,594.31,585.24,590.17,4210000,590.17 +1959-01-02,583.65,590.38,580.80,587.59,3380000,587.59 +1958-12-31,581.80,587.44,579.25,583.65,3970000,583.65 +1958-12-30,577.31,584.59,577.13,581.80,3900000,581.80 +1958-12-29,572.73,580.63,572.73,577.31,3790000,577.31 +1958-12-24,566.39,573.64,564.27,572.73,3050000,572.73 +1958-12-23,571.23,573.26,564.15,566.39,2870000,566.39 +1958-12-22,573.17,574.84,568.12,571.23,3030000,571.23 +1958-12-19,572.38,577.90,570.38,573.17,3540000,573.17 +1958-12-18,569.38,575.52,568.24,572.38,3900000,572.38 +1958-12-17,565.18,573.29,561.51,569.38,3900000,569.38 +1958-12-16,563.98,568.29,562.25,565.18,3970000,565.18 +1958-12-15,562.27,566.24,559.96,563.98,3340000,563.98 +1958-12-12,563.07,565.01,559.43,562.27,3140000,562.27 +1958-12-11,564.98,569.50,561.57,563.07,4250000,563.07 +1958-12-10,558.13,566.50,558.05,564.98,4340000,564.98 +1958-12-09,556.08,561.51,555.58,558.13,3790000,558.13 +1958-12-08,556.75,559.54,553.70,556.08,3590000,556.08 +1958-12-05,559.10,560.37,554.85,556.75,3360000,556.75 +1958-12-04,558.81,563.19,556.40,559.10,3630000,559.10 +1958-12-03,558.57,560.95,554.55,558.81,3460000,558.81 +1958-12-02,560.07,562.98,555.37,558.57,3320000,558.57 +1958-12-01,557.46,563.30,555.52,560.07,3800000,560.07 +1958-11-28,550.41,559.04,550.41,557.46,4120000,557.46 +1958-11-26,542.40,551.50,542.40,549.15,4090000,549.15 +1958-11-25,544.89,546.95,538.43,540.52,3940000,540.52 +1958-11-24,554.88,554.88,543.07,544.89,4770000,544.89 +1958-11-21,566.24,566.50,558.16,559.57,3950000,559.57 +1958-11-20,565.97,569.70,563.21,566.24,4320000,566.24 +1958-11-19,564.89,568.68,562.10,565.97,4090000,565.97 +1958-11-18,567.44,569.06,560.48,564.89,3820000,564.89 +1958-11-17,564.68,572.05,561.54,567.44,4540000,567.44 +1958-11-14,560.75,566.91,559.07,564.68,4390000,564.68 +1958-11-13,562.39,564.42,557.43,560.75,4200000,560.75 +1958-11-12,561.13,565.53,558.19,562.39,4440000,562.39 +1958-11-11,557.72,563.60,556.93,561.13,4040000,561.13 +1958-11-10,554.26,560.10,552.64,557.72,3730000,557.72 +1958-11-07,554.85,558.22,550.85,554.26,3700000,554.26 +1958-11-06,550.76,559.43,550.76,554.85,4890000,554.85 +1958-11-05,545.16,552.35,543.34,550.68,4080000,550.68 +1958-11-03,543.22,547.15,540.28,545.16,3240000,545.16 +1958-10-31,543.31,546.27,539.31,543.22,3920000,543.22 +1958-10-30,542.72,546.83,540.69,543.31,4360000,543.31 +1958-10-29,536.88,544.92,536.85,542.72,4790000,542.72 +1958-10-28,535.00,538.26,530.94,536.88,3670000,536.88 +1958-10-27,539.52,541.22,533.09,535.00,3980000,535.00 +1958-10-24,540.72,543.16,536.43,539.52,3770000,539.52 +1958-10-23,542.31,544.07,537.76,540.72,3610000,540.72 +1958-10-22,543.72,545.04,538.96,542.31,3500000,542.31 +1958-10-21,544.19,546.54,540.28,543.72,4010000,543.72 +1958-10-20,546.36,548.36,541.57,544.19,4560000,544.19 +1958-10-17,541.07,548.97,541.07,546.36,5360000,546.36 +1958-10-16,536.14,541.37,529.42,540.11,4560000,540.11 +1958-10-15,541.72,545.68,533.65,536.14,4810000,536.14 +1958-10-14,545.95,549.71,540.22,541.72,5110000,541.72 +1958-10-13,543.36,549.30,542.95,545.95,4550000,545.95 +1958-10-10,539.61,545.74,538.17,543.36,4610000,543.36 +1958-10-09,539.31,541.46,535.85,539.61,3670000,539.61 +1958-10-08,539.40,542.28,535.97,539.31,3680000,539.31 +1958-10-07,536.29,540.96,534.12,539.40,3570000,539.40 +1958-10-06,533.73,539.37,533.21,536.29,3570000,536.29 +1958-10-03,532.09,536.82,531.53,533.73,3830000,533.73 +1958-10-02,530.94,535.14,528.83,532.09,3750000,532.09 +1958-10-01,532.09,533.91,527.68,530.94,3780000,530.94 +1958-09-30,529.04,535.00,528.68,532.09,4160000,532.09 +1958-09-29,526.83,531.74,525.54,529.04,3680000,529.04 +1958-09-26,525.83,529.59,523.31,526.83,3420000,526.83 +1958-09-25,528.15,530.68,523.34,525.83,4490000,525.83 +1958-09-24,525.89,530.18,523.57,528.15,3120000,528.15 +1958-09-23,524.01,528.62,520.87,525.89,3950000,525.89 +1958-09-22,526.48,528.39,522.19,524.01,3490000,524.01 +1958-09-19,522.34,527.74,521.05,526.48,3880000,526.48 +1958-09-18,525.89,526.77,520.52,522.34,3460000,522.34 +1958-09-17,526.57,529.45,522.43,525.89,3790000,525.89 +1958-09-16,523.40,529.09,522.72,526.57,3940000,526.57 +1958-09-15,519.43,524.57,517.47,523.40,3040000,523.40 +1958-09-12,520.43,523.57,517.06,519.43,3100000,519.43 +1958-09-11,516.20,521.72,515.32,520.43,3300000,520.43 +1958-09-10,518.64,520.43,514.59,516.20,2820000,516.20 +1958-09-09,515.23,521.31,515.23,518.64,3480000,518.64 +1958-09-08,512.77,517.47,511.77,515.23,3030000,515.23 +1958-09-05,513.44,515.35,510.45,512.77,2520000,512.77 +1958-09-04,513.71,516.59,511.07,513.44,3100000,513.44 +1958-09-03,511.77,516.03,510.15,513.71,3240000,513.71 +1958-09-02,508.63,513.09,508.39,511.77,2930000,511.77 +1958-08-29,507.72,510.18,505.60,508.63,2260000,508.63 +1958-08-28,510.24,510.24,505.49,507.72,2540000,507.72 +1958-08-27,509.63,513.33,508.19,510.39,3250000,510.39 +1958-08-26,508.28,510.95,506.72,509.63,2910000,509.63 +1958-08-25,508.28,510.62,505.37,508.28,2610000,508.28 +1958-08-22,507.10,509.66,505.54,508.28,2660000,508.28 +1958-08-21,503.96,508.89,503.05,507.10,2500000,507.10 +1958-08-20,503.64,506.51,501.73,503.96,2460000,503.96 +1958-08-19,502.67,506.13,501.26,503.64,2250000,503.64 +1958-08-18,505.75,505.75,499.82,502.67,2390000,502.67 +1958-08-15,510.30,510.36,504.66,506.13,2960000,506.13 +1958-08-14,509.22,512.00,507.48,510.30,3370000,510.30 +1958-08-13,508.19,511.24,505.31,509.22,2790000,509.22 +1958-08-12,512.42,512.47,506.78,508.19,2600000,508.19 +1958-08-11,510.13,514.44,508.69,512.42,2870000,512.42 +1958-08-08,506.60,513.47,506.60,510.13,3650000,510.13 +1958-08-07,503.11,507.84,501.46,506.10,3200000,506.10 +1958-08-06,506.95,508.51,500.32,503.11,3440000,503.11 +1958-08-05,510.33,511.01,503.49,506.95,4210000,506.95 +1958-08-04,505.43,512.27,505.22,510.33,4000000,510.33 +1958-08-01,502.99,507.39,501.64,505.43,3380000,505.43 +1958-07-31,504.37,508.39,501.49,502.99,4440000,502.99 +1958-07-30,501.38,505.10,497.38,504.37,3680000,504.37 +1958-07-29,502.81,504.52,498.73,501.38,3310000,501.38 +1958-07-28,501.76,504.43,498.67,502.81,3940000,502.81 +1958-07-25,497.12,502.64,496.71,501.76,4430000,501.76 +1958-07-24,494.06,498.50,492.42,497.12,3740000,497.12 +1958-07-23,494.89,497.21,490.86,494.06,3550000,494.06 +1958-07-22,493.36,496.74,490.01,494.89,3420000,494.89 +1958-07-21,487.10,494.36,487.10,493.36,3440000,493.36 +1958-07-18,485.70,489.89,483.43,486.55,3350000,486.55 +1958-07-17,481.00,487.60,478.00,485.70,3180000,485.70 +1958-07-16,478.88,485.87,478.88,481.00,3240000,481.00 +1958-07-15,476.89,479.82,472.07,478.82,3090000,478.82 +1958-07-14,482.55,482.55,475.74,476.89,2540000,476.89 +1958-07-11,478.97,484.23,478.94,482.85,2400000,482.85 +1958-07-10,477.59,480.35,475.01,478.97,2510000,478.97 +1958-07-09,480.00,482.79,476.92,477.59,2630000,477.59 +1958-07-08,481.85,482.99,478.12,480.00,2430000,480.00 +1958-07-07,480.17,483.76,478.88,481.85,2510000,481.85 +1958-07-03,480.15,482.26,478.03,480.17,2630000,480.17 +1958-07-02,478.82,481.61,476.86,480.15,2370000,480.15 +1958-07-01,478.18,480.64,476.83,478.82,2600000,478.82 +1958-06-30,475.42,479.59,474.33,478.18,2820000,478.18 +1958-06-27,474.01,478.09,473.22,475.42,2800000,475.42 +1958-06-26,471.54,475.68,470.07,474.01,2910000,474.01 +1958-06-25,470.43,473.39,468.05,471.54,2720000,471.54 +1958-06-24,471.66,472.42,467.37,470.43,2560000,470.43 +1958-06-23,473.60,474.60,469.46,471.66,2340000,471.66 +1958-06-20,471.57,475.36,470.81,473.60,2590000,473.60 +1958-06-19,476.65,478.03,470.93,471.57,2690000,471.57 +1958-06-18,478.97,479.70,474.21,476.65,2640000,476.65 +1958-06-17,476.56,482.11,475.36,478.97,2950000,478.97 +1958-06-16,474.77,477.97,473.16,476.56,2870000,476.56 +1958-06-13,471.57,476.56,471.57,474.77,3100000,474.77 +1958-06-12,467.93,472.98,467.23,471.42,2760000,471.42 +1958-06-11,468.19,470.04,465.58,467.93,2570000,467.93 +1958-06-10,469.46,470.37,466.32,468.19,2390000,468.19 +1958-06-09,469.60,471.60,467.17,469.46,2380000,469.46 +1958-06-06,468.55,471.75,467.49,469.60,2680000,469.60 +1958-06-05,468.58,469.84,465.38,468.55,2600000,468.55 +1958-06-04,468.14,470.69,466.37,468.58,2690000,468.58 +1958-06-03,466.11,469.66,465.35,468.14,2780000,468.14 +1958-06-02,462.70,468.61,462.70,466.11,2770000,466.11 +1958-05-29,460.44,463.85,459.91,462.70,2350000,462.70 +1958-05-28,460.68,462.85,458.97,460.44,2260000,460.44 +1958-05-27,461.06,462.53,457.92,460.68,2180000,460.68 +1958-05-26,461.03,463.47,459.39,461.06,2500000,461.06 +1958-05-23,460.24,463.32,459.21,461.03,2570000,461.03 +1958-05-22,458.50,463.20,457.10,460.24,2950000,460.24 +1958-05-21,459.83,461.62,456.83,458.50,2580000,458.50 +1958-05-20,455.98,460.74,455.30,459.83,2500000,459.83 +1958-05-19,457.10,458.06,454.16,455.98,1910000,455.98 +1958-05-16,457.86,459.47,455.57,457.10,2030000,457.10 +1958-05-15,455.45,459.00,453.84,457.86,2470000,457.86 +1958-05-14,459.86,460.79,454.57,455.45,3060000,455.45 +1958-05-13,460.74,462.03,457.62,459.86,2940000,459.86 +1958-05-12,462.56,463.70,459.41,460.74,2780000,460.74 +1958-05-09,462.50,465.14,460.44,462.56,2760000,462.56 +1958-05-08,462.88,464.35,460.38,462.50,2790000,462.50 +1958-05-07,463.67,465.17,461.12,462.88,2770000,462.88 +1958-05-06,461.12,465.32,460.09,463.67,3110000,463.67 +1958-05-05,459.56,462.38,457.39,461.12,2670000,461.12 +1958-05-02,457.01,460.56,455.66,459.56,2290000,459.56 +1958-05-01,455.86,460.21,454.95,457.01,2630000,457.01 +1958-04-30,451.78,457.39,451.19,455.86,2900000,455.86 +1958-04-29,454.42,454.42,449.78,451.78,2190000,451.78 +1958-04-28,454.92,458.33,452.66,454.51,2400000,454.51 +1958-04-25,453.42,457.10,451.13,454.92,3020000,454.92 +1958-04-24,450.11,455.51,449.34,453.42,2870000,453.42 +1958-04-23,449.55,451.87,445.88,450.11,2720000,450.11 +1958-04-22,450.72,452.34,448.37,449.55,2440000,449.55 +1958-04-21,449.31,452.49,448.34,450.72,2550000,450.72 +1958-04-18,445.09,450.75,445.03,449.31,2700000,449.31 +1958-04-17,444.35,446.14,442.35,445.09,2500000,445.09 +1958-04-16,447.58,447.85,442.53,444.35,2240000,444.35 +1958-04-15,443.76,448.96,442.62,447.58,2590000,447.58 +1958-04-14,441.24,444.88,440.06,443.76,2180000,443.76 +1958-04-11,441.06,442.65,438.83,441.24,2060000,441.24 +1958-04-10,441.88,442.94,438.77,441.06,2000000,441.06 +1958-04-09,442.59,445.20,440.97,441.88,2040000,441.88 +1958-04-08,440.09,444.79,439.59,442.59,2190000,442.59 +1958-04-07,440.50,441.97,437.25,440.09,2090000,440.09 +1958-04-03,441.21,442.97,437.98,440.50,2130000,440.50 +1958-04-02,445.47,447.29,440.06,441.21,2390000,441.21 +1958-04-01,446.76,447.82,443.29,445.47,2070000,445.47 +1958-03-31,448.61,450.05,445.56,446.76,2050000,446.76 +1958-03-28,448.64,450.17,446.64,448.61,1930000,448.61 +1958-03-27,449.70,451.81,447.02,448.64,2140000,448.64 +1958-03-26,450.96,451.46,447.61,449.70,1990000,449.70 +1958-03-25,453.75,454.31,449.52,450.96,2210000,450.96 +1958-03-24,452.49,455.36,450.25,453.75,2580000,453.75 +1958-03-21,449.46,453.57,447.79,452.49,2430000,452.49 +1958-03-20,449.96,452.57,447.76,449.46,2280000,449.46 +1958-03-19,447.38,452.37,446.91,449.96,2410000,449.96 +1958-03-18,448.23,448.84,443.41,447.38,2070000,447.38 +1958-03-17,453.04,453.25,447.08,448.23,2130000,448.23 +1958-03-14,454.10,454.75,450.52,453.04,2150000,453.04 +1958-03-13,454.60,456.80,451.87,454.10,2830000,454.10 +1958-03-12,455.92,456.83,452.72,454.60,2420000,454.60 +1958-03-11,451.90,457.27,450.58,455.92,2640000,455.92 +1958-03-10,451.49,453.45,448.96,451.90,1980000,451.90 +1958-03-07,450.96,452.81,448.58,451.49,2130000,451.49 +1958-03-06,446.58,452.43,446.05,450.96,2470000,450.96 +1958-03-05,445.06,448.14,442.56,446.58,2020000,446.58 +1958-03-04,443.38,447.11,443.03,445.06,2010000,445.06 +1958-03-03,439.92,444.56,439.24,443.38,1810000,443.38 +1958-02-28,437.80,441.15,436.66,439.92,1580000,439.92 +1958-02-27,440.42,441.18,436.13,437.80,1670000,437.80 +1958-02-26,437.42,442.24,437.42,440.42,1880000,440.42 +1958-02-25,437.19,438.13,434.04,436.89,1920000,436.89 +1958-02-24,439.62,440.80,436.16,437.19,1570000,437.19 +1958-02-21,439.74,441.42,437.33,439.62,1700000,439.62 +1958-02-20,443.06,445.53,438.89,439.74,2060000,439.74 +1958-02-19,442.71,446.47,441.44,443.06,2070000,443.06 +1958-02-18,442.27,444.32,439.89,442.71,1680000,442.71 +1958-02-17,444.44,445.47,441.03,442.27,1700000,442.27 +1958-02-14,440.24,445.76,439.54,444.44,2070000,444.44 +1958-02-13,441.21,445.29,439.27,440.24,1880000,440.24 +1958-02-12,442.35,443.29,438.13,441.21,2030000,441.21 +1958-02-11,445.94,447.61,440.97,442.35,2110000,442.35 +1958-02-10,448.52,448.52,443.68,445.94,1900000,445.94 +1958-02-07,453.07,453.07,446.73,448.76,2220000,448.76 +1958-02-06,454.89,455.30,450.14,453.13,2210000,453.13 +1958-02-05,458.39,458.39,453.34,454.89,2480000,454.89 +1958-02-04,453.98,459.77,451.63,458.65,2970000,458.65 +1958-02-03,450.02,455.10,449.52,453.98,2490000,453.98 +1958-01-31,449.72,451.46,446.70,450.02,2030000,450.02 +1958-01-30,451.16,453.63,448.46,449.72,2150000,449.72 +1958-01-29,448.67,452.51,447.02,451.16,2220000,451.16 +1958-01-28,448.46,450.22,445.41,448.67,2030000,448.67 +1958-01-27,450.66,451.40,446.61,448.46,2320000,448.46 +1958-01-24,447.93,452.28,446.32,450.66,2830000,450.66 +1958-01-23,445.70,449.02,444.18,447.93,1910000,447.93 +1958-01-22,446.64,449.58,444.67,445.70,2390000,445.70 +1958-01-21,447.29,449.17,445.11,446.64,2160000,446.64 +1958-01-20,444.12,449.43,444.00,447.29,2310000,447.29 +1958-01-17,445.23,445.67,440.62,444.12,2200000,444.12 +1958-01-16,445.20,453.25,444.18,445.23,3950000,445.23 +1958-01-15,441.80,446.26,440.36,445.20,2080000,445.20 +1958-01-14,439.71,444.88,439.36,441.80,2010000,441.80 +1958-01-13,438.68,441.27,434.37,439.71,1860000,439.71 +1958-01-10,443.09,443.09,436.83,438.68,2010000,438.68 +1958-01-09,446.61,448.40,442.27,443.24,2180000,443.24 +1958-01-08,447.79,449.61,443.97,446.61,2230000,446.61 +1958-01-07,442.56,448.23,440.18,447.79,2220000,447.79 +1958-01-06,444.56,447.87,441.62,442.56,2500000,442.56 +1958-01-03,439.27,446.08,438.60,444.56,2440000,444.56 +1958-01-02,435.69,441.39,435.45,439.27,1800000,439.27 +1957-12-31,432.43,438.54,432.43,435.69,5070000,435.69 +1957-12-30,432.90,434.04,428.35,431.78,3750000,431.78 +1957-12-27,434.16,437.39,431.52,432.90,2620000,432.90 +1957-12-26,429.58,436.13,429.58,434.16,2280000,434.16 +1957-12-24,428.08,432.22,426.67,429.11,2220000,429.11 +1957-12-23,427.20,430.40,423.86,428.08,2790000,428.08 +1957-12-20,431.26,434.13,425.94,427.20,2500000,427.20 +1957-12-19,426.18,432.90,424.62,431.26,2740000,431.26 +1957-12-18,425.65,431.93,424.15,426.18,2750000,426.18 +1957-12-17,433.22,433.22,424.85,425.65,2820000,425.65 +1957-12-16,440.30,440.30,432.05,433.40,2350000,433.40 +1957-12-13,438.48,443.00,437.27,440.48,2310000,440.48 +1957-12-12,439.36,441.94,436.31,438.48,2330000,438.48 +1957-12-11,439.24,441.53,435.87,439.36,2240000,439.36 +1957-12-10,443.03,443.03,436.34,439.24,2360000,439.24 +1957-12-09,447.20,447.49,441.21,443.76,2230000,443.76 +1957-12-06,449.55,450.69,445.29,447.20,2350000,447.20 +1957-12-05,448.87,451.81,446.52,449.55,2020000,449.55 +1957-12-04,446.55,451.55,446.03,448.87,2220000,448.87 +1957-12-03,446.91,448.99,444.00,446.55,2060000,446.55 +1957-12-02,449.87,452.16,444.18,446.91,2430000,446.91 +1957-11-29,446.03,452.49,445.76,449.87,2740000,449.87 +1957-11-27,439.51,448.02,439.51,446.03,3330000,446.03 +1957-11-26,444.38,448.49,434.43,435.34,3650000,435.34 +1957-11-25,442.68,446.11,439.01,444.38,2600000,444.38 +1957-11-22,439.80,445.64,437.74,442.68,2850000,442.68 +1957-11-21,434.51,443.21,434.51,439.80,2900000,439.80 +1957-11-20,431.73,435.22,427.32,433.37,2400000,433.37 +1957-11-19,434.96,435.84,427.23,431.73,2240000,431.73 +1957-11-18,439.35,439.48,432.49,434.96,2110000,434.96 +1957-11-15,434.50,442.82,434.50,439.35,3510000,439.35 +1957-11-14,430.07,434.94,426.89,427.94,2450000,427.94 +1957-11-13,429.75,432.61,426.51,430.07,2120000,430.07 +1957-11-12,434.94,435.96,428.70,429.75,2050000,429.75 +1957-11-11,434.12,437.16,432.37,434.94,1540000,434.94 +1957-11-08,438.65,438.65,432.11,434.12,2140000,434.12 +1957-11-07,435.82,440.49,432.14,438.91,2580000,438.91 +1957-11-06,434.04,440.60,434.01,435.82,2550000,435.82 +1957-11-04,434.71,435.20,425.46,434.04,2380000,434.04 +1957-11-01,438.76,438.76,431.50,434.71,2060000,434.71 +1957-10-31,440.28,446.06,439.03,441.04,2170000,441.04 +1957-10-30,435.76,441.74,435.38,440.28,2060000,440.28 +1957-10-29,432.14,439.61,431.59,435.76,1860000,435.76 +1957-10-28,435.00,435.00,429.37,432.14,1800000,432.14 +1957-10-25,436.40,436.95,428.90,435.15,2400000,435.15 +1957-10-24,437.13,443.38,434.15,436.40,4030000,436.40 +1957-10-23,425.46,438.59,425.46,437.13,4600000,437.13 +1957-10-22,423.06,426.48,416.15,419.79,5090000,419.79 +1957-10-21,433.83,434.36,421.20,423.06,4670000,423.06 +1957-10-18,436.87,439.70,432.69,433.83,2670000,433.83 +1957-10-17,442.24,442.24,433.86,436.87,3060000,436.87 +1957-10-16,447.90,450.09,442.97,443.93,2050000,443.93 +1957-10-15,443.78,450.93,443.61,447.90,2620000,447.90 +1957-10-14,441.16,446.06,437.74,443.78,2770000,443.78 +1957-10-11,441.71,443.58,434.15,441.16,4460000,441.16 +1957-10-10,451.31,451.31,439.44,441.71,3300000,441.71 +1957-10-09,450.56,456.51,450.12,451.40,2120000,451.40 +1957-10-08,452.42,454.87,446.82,450.56,3190000,450.56 +1957-10-07,461.70,462.14,451.81,452.42,2490000,452.42 +1957-10-04,465.82,466.02,460.71,461.70,1520000,461.70 +1957-10-03,465.03,466.84,461.67,465.82,1590000,465.82 +1957-10-02,461.79,468.15,461.79,465.03,1760000,465.03 +1957-10-01,456.30,461.91,455.55,460.80,1680000,460.80 +1957-09-30,456.89,459.28,454.70,456.30,1520000,456.30 +1957-09-27,457.01,462.40,454.20,456.89,1750000,456.89 +1957-09-26,456.95,460.60,452.98,457.01,2130000,457.01 +1957-09-25,462.87,463.57,452.19,456.95,2770000,456.95 +1957-09-24,458.96,466.02,457.30,462.87,2840000,462.87 +1957-09-23,465.97,465.97,457.15,458.96,3160000,458.96 +1957-09-20,474.55,474.55,466.75,468.42,2340000,468.42 +1957-09-19,478.60,479.59,475.01,476.12,1520000,476.12 +1957-09-18,478.28,481.08,476.88,478.60,1540000,478.60 +1957-09-17,478.08,480.44,474.17,478.28,1490000,478.28 +1957-09-16,481.02,481.05,476.30,478.08,1290000,478.08 +1957-09-13,480.56,483.68,478.72,481.02,1620000,481.02 +1957-09-12,474.40,482.31,473.99,480.56,2010000,480.56 +1957-09-11,470.23,475.30,467.10,474.40,2130000,474.40 +1957-09-10,474.28,476.53,468.77,470.23,1870000,470.23 +1957-09-09,478.49,478.49,472.77,474.28,1420000,474.28 +1957-09-06,479.51,481.87,477.06,478.63,1320000,478.63 +1957-09-05,481.64,481.64,476.76,479.51,1420000,479.51 +1957-09-04,486.13,486.19,481.35,482.60,1260000,482.60 +1957-09-03,484.35,487.59,481.32,486.13,1490000,486.13 +1957-08-30,476.71,484.82,476.71,484.35,1600000,484.35 +1957-08-29,477.79,478.19,471.98,476.06,1630000,476.06 +1957-08-28,477.55,482.75,476.38,477.79,1840000,477.79 +1957-08-27,470.84,479.36,470.84,477.55,2250000,477.55 +1957-08-26,475.74,476.44,469.03,470.14,2680000,470.14 +1957-08-23,481.46,481.73,474.81,475.74,1960000,475.74 +1957-08-22,485.14,485.29,479.77,481.46,1500000,481.46 +1957-08-21,483.86,488.23,482.10,485.14,1720000,485.14 +1957-08-20,478.95,485.49,474.52,483.86,2700000,483.86 +1957-08-19,487.68,487.68,478.16,478.95,2040000,478.95 +1957-08-16,487.30,490.42,485.37,488.20,1470000,488.20 +1957-08-15,485.93,490.28,482.10,487.30,2040000,487.30 +1957-08-14,492.14,493.55,484.32,485.93,2040000,485.93 +1957-08-13,492.32,495.68,489.96,492.14,1580000,492.14 +1957-08-12,496.23,496.23,489.90,492.32,1650000,492.32 +1957-08-09,496.87,498.59,493.46,496.78,1570000,496.78 +1957-08-08,498.48,500.90,495.03,496.87,1690000,496.87 +1957-08-07,494.13,499.59,490.25,498.48,2460000,498.48 +1957-08-06,500.72,500.72,493.55,494.13,1910000,494.13 +1957-08-05,505.10,505.57,498.62,500.78,1790000,500.78 +1957-08-02,506.21,508.66,501.98,505.10,1610000,505.10 +1957-08-01,508.52,509.98,504.69,506.21,1660000,506.21 +1957-07-31,508.93,512.69,507.26,508.52,1830000,508.52 +1957-07-30,508.25,510.44,504.90,508.93,1780000,508.93 +1957-07-29,514.59,515.64,507.00,508.25,1990000,508.25 +1957-07-26,516.69,517.97,512.89,514.59,1710000,514.59 +1957-07-25,515.78,518.26,514.15,516.69,1800000,516.69 +1957-07-24,515.61,518.24,512.46,515.78,1730000,515.78 +1957-07-23,515.32,517.65,513.33,515.61,1840000,515.61 +1957-07-22,515.73,518.24,513.62,515.32,1950000,515.32 +1957-07-19,515.64,517.94,512.08,515.73,1930000,515.73 +1957-07-18,515.11,519.34,513.33,515.64,2130000,515.64 +1957-07-17,517.42,518.64,513.13,515.11,2060000,515.11 +1957-07-16,520.16,523.11,516.28,517.42,2510000,517.42 +1957-07-15,520.77,522.91,516.60,520.16,2480000,520.16 +1957-07-12,517.97,521.94,514.88,520.77,2240000,520.77 +1957-07-11,519.81,522.20,515.00,517.97,2830000,517.97 +1957-07-10,516.37,521.68,515.11,519.81,2880000,519.81 +1957-07-09,518.41,520.22,513.51,516.37,2450000,516.37 +1957-07-08,516.89,521.71,515.32,518.41,2840000,518.41 +1957-07-05,513.42,518.70,513.42,516.89,2240000,516.89 +1957-07-03,507.99,515.23,507.99,513.25,2720000,513.25 +1957-07-02,503.29,509.36,502.86,507.55,2450000,507.55 +1957-07-01,503.29,506.18,500.75,503.29,1840000,503.29 +1957-06-28,503.03,506.53,500.81,503.29,1770000,503.29 +1957-06-27,500.78,504.29,498.36,503.03,1800000,503.03 +1957-06-26,501.98,504.75,498.24,500.78,1870000,500.78 +1957-06-25,497.69,504.69,497.69,501.98,2000000,501.98 +1957-06-24,500.00,500.99,492.87,497.08,2040000,497.08 +1957-06-21,503.56,504.52,497.81,500.00,1970000,500.00 +1957-06-20,505.92,507.87,501.31,503.56,2050000,503.56 +1957-06-19,511.32,512.69,505.28,505.92,2220000,505.92 +1957-06-18,513.19,515.20,506.68,511.32,2440000,511.32 +1957-06-17,511.79,516.81,510.38,513.19,2220000,513.19 +1957-06-14,511.58,514.38,508.93,511.79,2090000,511.79 +1957-06-13,509.66,514.27,508.23,511.58,2630000,511.58 +1957-06-12,509.48,513.36,507.76,509.66,2600000,509.66 +1957-06-11,504.93,511.70,504.93,509.48,2850000,509.48 +1957-06-10,505.63,507.87,497.78,503.76,2050000,503.76 +1957-06-07,504.55,508.14,502.88,505.63,2380000,505.63 +1957-06-06,502.07,506.39,501.13,504.55,2300000,504.55 +1957-06-05,502.97,504.37,499.38,502.07,1940000,502.07 +1957-06-04,503.76,506.68,499.53,502.97,2200000,502.97 +1957-06-03,504.93,507.96,500.46,503.76,2050000,503.76 +1957-05-31,502.18,507.76,501.57,504.93,2050000,504.93 +1957-05-29,498.10,503.56,498.10,502.18,2270000,502.18 +1957-05-28,499.21,499.62,494.42,497.72,2070000,497.72 +1957-05-27,504.02,505.07,497.89,499.21,2290000,499.21 +1957-05-24,504.02,506.94,502.15,504.02,2340000,504.02 +1957-05-23,504.43,506.04,500.90,504.02,2110000,504.02 +1957-05-22,506.04,506.82,502.36,504.43,2060000,504.43 +1957-05-21,505.98,507.90,503.32,506.04,2370000,506.04 +1957-05-20,505.60,508.75,503.82,505.98,2300000,505.98 +1957-05-17,504.84,508.87,503.58,505.60,2510000,505.60 +1957-05-16,501.98,507.06,501.16,504.84,2690000,504.84 +1957-05-15,500.46,504.87,498.27,501.98,2590000,501.98 +1957-05-14,502.21,504.43,498.16,500.46,2580000,500.46 +1957-05-13,498.51,503.93,498.51,502.21,2720000,502.21 +1957-05-10,496.76,500.46,495.15,498.30,2430000,498.30 +1957-05-09,496.73,499.21,494.80,496.76,2520000,496.76 +1957-05-08,494.68,498.13,493.34,496.73,2590000,496.73 +1957-05-07,496.32,497.78,492.29,494.68,2300000,494.68 +1957-05-06,497.54,500.29,494.86,496.32,2210000,496.32 +1957-05-03,498.56,501.34,495.00,497.54,2390000,497.54 +1957-05-02,495.76,501.13,494.98,498.56,2860000,498.56 +1957-05-01,494.36,498.04,493.05,495.76,2310000,495.76 +1957-04-30,493.95,496.49,491.62,494.36,2200000,494.36 +1957-04-29,491.50,496.67,490.77,493.95,2290000,493.95 +1957-04-26,492.29,493.92,488.41,491.50,2380000,491.50 +1957-04-25,493.66,496.03,490.19,492.29,2640000,492.29 +1957-04-24,491.88,497.22,489.87,493.66,2990000,493.66 +1957-04-23,488.79,494.10,487.12,491.88,2840000,491.88 +1957-04-22,488.03,491.59,485.90,488.79,2560000,488.79 +1957-04-18,485.02,489.43,483.51,488.03,2480000,488.03 +1957-04-17,484.32,487.47,482.22,485.02,2290000,485.02 +1957-04-16,485.84,487.15,482.69,484.32,1890000,484.32 +1957-04-15,486.72,488.53,483.62,485.84,2010000,485.84 +1957-04-12,484.70,488.76,482.78,486.72,2370000,486.72 +1957-04-11,485.17,486.86,481.75,484.70,2350000,484.70 +1957-04-10,482.66,486.98,482.02,485.17,2920000,485.17 +1957-04-09,479.04,484.32,478.40,482.66,2400000,482.66 +1957-04-08,477.61,480.44,475.86,479.04,1950000,479.04 +1957-04-05,477.43,479.45,475.68,477.61,1830000,477.61 +1957-04-04,478.31,479.62,475.45,477.43,1820000,477.43 +1957-04-03,477.55,481.08,476.73,478.31,2160000,478.31 +1957-04-02,474.98,478.40,473.70,477.55,2300000,477.55 +1957-04-01,474.81,476.82,473.09,474.98,1620000,474.98 +1957-03-29,475.01,477.32,473.14,474.81,1650000,474.81 +1957-03-28,473.12,476.88,472.27,475.01,1930000,475.01 +1957-03-27,472.24,475.10,471.01,473.12,1710000,473.12 +1957-03-26,471.51,474.02,468.91,472.24,1660000,472.24 +1957-03-25,472.94,474.05,469.70,471.51,1590000,471.51 +1957-03-22,474.02,475.57,471.04,472.94,1610000,472.94 +1957-03-21,473.93,475.98,471.36,474.02,1630000,474.02 +1957-03-20,473.93,476.38,472.85,473.93,1830000,473.93 +1957-03-19,472.30,475.22,471.01,473.93,1540000,473.93 +1957-03-18,474.28,474.66,470.17,472.30,1450000,472.30 +1957-03-15,473.93,476.12,471.19,474.28,1600000,474.28 +1957-03-14,472.53,475.45,471.39,473.93,1580000,473.93 +1957-03-13,470.31,474.37,469.88,472.53,1840000,472.53 +1957-03-12,469.50,471.45,466.69,470.31,1600000,470.31 +1957-03-11,471.63,472.06,467.37,469.50,1650000,469.50 +1957-03-08,474.17,474.40,470.40,471.63,1630000,471.63 +1957-03-07,474.87,477.58,472.62,474.17,1830000,474.17 +1957-03-06,472.88,475.77,470.43,474.87,1840000,474.87 +1957-03-05,471.48,475.13,471.04,472.88,1860000,472.88 +1957-03-04,468.91,472.97,468.15,471.48,1890000,471.48 +1957-03-01,464.62,469.76,463.66,468.91,1700000,468.91 +1957-02-28,466.26,468.50,463.51,464.62,1620000,464.62 +1957-02-27,467.72,469.00,463.95,466.26,1620000,466.26 +1957-02-26,466.90,470.34,465.76,467.72,1580000,467.72 +1957-02-25,466.93,469.00,463.40,466.90,1710000,466.90 +1957-02-21,469.00,470.08,465.15,466.93,1680000,466.93 +1957-02-20,466.84,471.10,465.99,469.00,1790000,469.00 +1957-02-19,467.40,469.23,463.63,466.84,1670000,466.84 +1957-02-18,468.07,471.22,465.21,467.40,1800000,467.40 +1957-02-15,461.56,468.83,459.37,468.07,2060000,468.07 +1957-02-14,462.14,467.04,459.69,461.56,2220000,461.56 +1957-02-13,454.87,462.70,454.87,462.14,2380000,462.14 +1957-02-12,457.44,459.87,453.07,454.82,2550000,454.82 +1957-02-11,465.50,465.50,456.01,457.44,2740000,457.44 +1957-02-08,468.71,468.88,463.19,466.29,2120000,466.29 +1957-02-07,470.81,473.93,467.42,468.71,1840000,468.71 +1957-02-06,469.96,472.02,466.40,470.81,2110000,470.81 +1957-02-05,476.18,476.18,466.65,469.96,2610000,469.96 +1957-02-04,477.22,479.54,475.49,477.19,1750000,477.19 +1957-02-01,479.16,479.76,474.43,477.22,1680000,477.22 +1957-01-31,480.53,483.02,478.04,479.16,1920000,479.16 +1957-01-30,476.92,481.95,476.42,480.53,1950000,480.53 +1957-01-29,474.59,478.31,473.19,476.92,1800000,476.92 +1957-01-28,478.34,478.48,473.14,474.59,1700000,474.59 +1957-01-25,481.30,481.76,475.19,478.34,2010000,478.34 +1957-01-24,479.93,483.57,478.34,481.30,1910000,481.30 +1957-01-23,477.49,481.24,475.25,479.93,1920000,479.93 +1957-01-22,475.90,480.45,475.71,477.49,1920000,477.49 +1957-01-21,477.46,478.29,471.06,475.90,2740000,475.90 +1957-01-18,484.01,486.42,476.23,477.46,2400000,477.46 +1957-01-17,485.05,486.91,481.08,484.01,2140000,484.01 +1957-01-16,484.75,488.28,483.19,485.05,2210000,485.05 +1957-01-15,489.29,490.41,482.94,484.75,2370000,484.75 +1957-01-14,493.81,494.49,487.65,489.29,2350000,489.29 +1957-01-11,495.51,497.78,492.11,493.81,2340000,493.81 +1957-01-10,493.21,498.00,492.74,495.51,2470000,495.51 +1957-01-09,493.86,496.90,490.77,493.21,2330000,493.21 +1957-01-08,495.20,497.20,491.29,493.86,2230000,493.86 +1957-01-07,498.22,500.90,491.78,495.20,2500000,495.20 +1957-01-04,499.20,502.57,496.24,498.22,2710000,498.22 +1957-01-03,496.03,501.56,494.16,499.20,2260000,499.20 +1957-01-02,499.47,501.01,492.06,496.03,1960000,496.03 +1956-12-31,496.41,501.56,494.96,499.47,3680000,499.47 +1956-12-28,496.38,498.68,493.89,496.41,2790000,496.41 +1956-12-27,496.74,499.39,494.79,496.38,2420000,496.38 +1956-12-26,494.38,500.32,494.00,496.74,2440000,496.74 +1956-12-21,490.44,496.22,489.10,494.38,2380000,494.38 +1956-12-20,493.81,494.57,489.29,490.44,2060000,490.44 +1956-12-19,495.09,497.15,492.19,493.81,1900000,493.81 +1956-12-18,493.75,497.70,491.97,495.09,2370000,495.09 +1956-12-17,492.08,497.26,490.82,493.75,2500000,493.75 +1956-12-14,490.47,493.75,488.69,492.08,2450000,492.08 +1956-12-13,487.51,492.77,486.03,490.47,2370000,490.47 +1956-12-12,490.36,491.75,486.06,487.51,2180000,487.51 +1956-12-11,493.18,494.44,487.68,490.36,2210000,490.36 +1956-12-10,494.79,498.95,492.14,493.18,2600000,493.18 +1956-12-07,492.74,497.09,491.21,494.79,2400000,494.79 +1956-12-06,488.55,495.18,487.32,492.74,2470000,492.74 +1956-12-05,481.38,490.71,480.61,488.55,2360000,488.55 +1956-12-04,480.61,483.82,479.08,481.38,2180000,481.38 +1956-12-03,474.26,482.80,474.26,480.61,2570000,480.61 +1956-11-30,467.09,474.59,467.09,472.78,2300000,472.78 +1956-11-29,466.10,468.10,460.41,466.62,2440000,466.62 +1956-11-28,470.18,472.81,465.20,466.10,2190000,466.10 +1956-11-27,470.29,472.18,467.25,470.18,2130000,470.18 +1956-11-26,472.56,476.89,468.73,470.29,2230000,470.29 +1956-11-23,467.91,473.69,466.73,472.56,1880000,472.56 +1956-11-21,470.07,472.37,466.16,467.91,2310000,467.91 +1956-11-20,474.56,475.66,468.16,470.07,2240000,470.07 +1956-11-19,480.67,481.05,472.54,474.56,2560000,474.56 +1956-11-16,480.20,483.51,478.15,480.67,1820000,480.67 +1956-11-15,482.36,486.28,479.11,480.20,2210000,480.20 +1956-11-14,486.69,487.27,479.96,482.36,2290000,482.36 +1956-11-13,487.05,490.71,484.99,486.69,2140000,486.69 +1956-11-12,485.35,488.91,483.60,487.05,1600000,487.05 +1956-11-09,488.72,490.50,483.57,485.35,1690000,485.35 +1956-11-08,491.15,491.32,483.21,488.72,1970000,488.72 +1956-11-07,495.37,500.52,490.22,491.15,2650000,491.15 +1956-11-05,490.47,497.70,488.72,495.37,2830000,495.37 +1956-11-02,487.62,493.40,486.42,490.47,2180000,490.47 +1956-11-01,480.23,488.72,480.23,487.62,1890000,487.62 +1956-10-31,486.47,486.47,476.83,479.85,2280000,479.85 +1956-10-30,486.94,488.58,483.40,486.47,1830000,486.47 +1956-10-29,486.06,494.11,484.83,486.94,2420000,486.94 +1956-10-26,481.08,487.07,480.91,486.06,1800000,486.06 +1956-10-25,482.67,483.30,478.29,481.08,1580000,481.08 +1956-10-24,485.05,485.90,481.05,482.67,1640000,482.67 +1956-10-23,485.27,487.05,483.19,485.05,1390000,485.05 +1956-10-22,486.12,487.98,483.95,485.27,1430000,485.27 +1956-10-19,486.31,489.46,484.45,486.12,1720000,486.12 +1956-10-18,484.66,487.35,481.57,486.31,1640000,486.31 +1956-10-17,487.57,488.83,482.47,484.66,1640000,484.66 +1956-10-16,489.40,490.58,485.10,487.57,1580000,487.57 +1956-10-15,490.19,493.01,487.76,489.40,1610000,489.40 +1956-10-12,488.06,490.93,486.36,490.19,1330000,490.19 +1956-10-11,487.32,491.18,485.90,488.06,1760000,488.06 +1956-10-10,481.32,487.54,480.37,487.32,1620000,487.32 +1956-10-09,483.38,483.68,479.22,481.32,1220000,481.32 +1956-10-08,482.39,486.47,481.54,483.38,1450000,483.38 +1956-10-05,481.24,483.62,478.86,482.39,1580000,482.39 +1956-10-04,482.04,483.98,478.37,481.24,1600000,481.24 +1956-10-03,476.97,484.06,476.97,482.04,2180000,482.04 +1956-10-02,468.73,477.11,468.73,475.41,2400000,475.41 +1956-10-01,475.25,475.38,463.83,468.70,2600000,468.70 +1956-09-28,479.76,481.13,474.23,475.25,1720000,475.25 +1956-09-27,481.60,485.21,477.85,479.76,1770000,479.76 +1956-09-26,481.08,483.46,474.86,481.60,2370000,481.60 +1956-09-25,487.70,488.31,479.57,481.08,2100000,481.08 +1956-09-24,490.33,492.08,486.53,487.70,1840000,487.70 +1956-09-21,488.00,493.86,488.00,490.33,2110000,490.33 +1956-09-20,488.72,489.40,482.86,487.13,2150000,487.13 +1956-09-19,493.45,494.66,487.68,488.72,2040000,488.72 +1956-09-18,498.76,499.12,490.50,493.45,2200000,493.45 +1956-09-17,500.32,502.40,496.49,498.76,1940000,498.76 +1956-09-14,499.69,503.39,497.94,500.32,2110000,500.32 +1956-09-13,499.97,502.92,497.56,499.69,2000000,499.69 +1956-09-12,502.16,504.43,498.43,499.97,1930000,499.97 +1956-09-11,505.56,505.63,499.26,502.16,1920000,502.16 +1956-09-10,506.76,509.79,503.92,505.56,1860000,505.56 +1956-09-07,509.49,509.55,504.39,506.76,1690000,506.76 +1956-09-06,509.82,512.25,507.74,509.49,1550000,509.49 +1956-09-05,507.66,512.68,507.34,509.82,2130000,509.82 +1956-09-04,502.04,508.32,501.17,507.66,1790000,507.66 +1956-08-31,495.96,503.51,495.96,502.04,1620000,502.04 +1956-08-30,499.91,499.91,492.19,495.96,2050000,495.96 +1956-08-29,503.05,504.25,498.85,500.90,1530000,500.90 +1956-08-28,505.70,507.74,502.26,503.05,1400000,503.05 +1956-08-27,507.91,510.28,504.58,505.70,1420000,505.70 +1956-08-24,507.06,510.77,505.83,507.91,1530000,507.91 +1956-08-23,502.34,508.95,502.23,507.06,1590000,507.06 +1956-08-22,505.43,507.72,501.60,502.34,1570000,502.34 +1956-08-21,509.25,509.25,500.84,505.43,2440000,505.43 +1956-08-20,515.79,516.26,510.12,511.24,1770000,511.24 +1956-08-17,517.19,518.52,514.13,515.79,1720000,515.79 +1956-08-16,517.70,519.42,514.73,517.19,1790000,517.19 +1956-08-15,517.27,521.11,516.01,517.70,2000000,517.70 +1956-08-14,514.40,519.23,512.77,517.27,1790000,517.27 +1956-08-13,517.38,518.25,512.08,514.40,1730000,514.40 +1956-08-10,519.04,519.67,513.15,517.38,2040000,517.38 +1956-08-09,518.74,523.24,517.13,519.04,2550000,519.04 +1956-08-08,515.88,521.41,515.33,518.74,2480000,518.74 +1956-08-07,513.88,518.30,511.67,515.88,2180000,515.88 +1956-08-06,518.85,518.85,509.65,513.88,2280000,513.88 +1956-08-03,520.95,522.72,517.51,520.27,2210000,520.27 +1956-08-02,518.69,523.33,516.83,520.95,2530000,520.95 +1956-08-01,517.81,521.50,515.55,518.69,2230000,518.69 +1956-07-31,513.42,519.97,512.85,517.81,2520000,517.81 +1956-07-30,512.30,515.22,508.59,513.42,2100000,513.42 +1956-07-27,515.85,516.50,507.85,512.30,2240000,512.30 +1956-07-26,514.13,517.62,513.20,515.85,2060000,515.85 +1956-07-25,513.17,516.80,511.67,514.13,2220000,514.13 +1956-07-24,513.61,516.78,511.26,513.17,2040000,513.17 +1956-07-23,514.57,516.01,511.65,513.61,1970000,513.61 +1956-07-20,513.86,516.37,512.36,514.57,2020000,514.57 +1956-07-19,513.39,515.96,511.65,513.86,1950000,513.86 +1956-07-18,514.43,517.59,511.73,513.39,2530000,513.39 +1956-07-17,512.98,516.78,510.91,514.43,2520000,514.43 +1956-07-16,511.10,515.19,510.17,512.98,2260000,512.98 +1956-07-13,507.44,512.36,506.46,511.10,2020000,511.10 +1956-07-12,509.65,511.05,505.26,507.44,2180000,507.44 +1956-07-11,508.34,511.92,507.20,509.65,2520000,509.65 +1956-07-10,506.52,510.72,504.85,508.34,2450000,508.34 +1956-07-09,504.14,509.08,503.24,506.52,2180000,506.52 +1956-07-06,500.54,506.24,500.08,504.14,2180000,504.14 +1956-07-05,495.74,502.51,494.67,500.54,2240000,500.54 +1956-07-03,491.92,496.97,491.02,495.74,1840000,495.74 +1956-07-02,492.78,493.65,488.36,491.92,1610000,491.92 +1956-06-29,492.50,494.82,489.85,492.78,1780000,492.78 +1956-06-28,492.04,494.34,488.91,492.50,1900000,492.50 +1956-06-27,489.37,494.16,488.85,492.04,2090000,492.04 +1956-06-26,486.43,490.77,484.83,489.37,1730000,489.37 +1956-06-25,487.95,489.74,485.34,486.43,1500000,486.43 +1956-06-22,488.26,491.46,486.12,487.95,1630000,487.95 +1956-06-21,485.06,490.45,485.06,488.26,1820000,488.26 +1956-06-20,484.52,487.05,482.70,485.00,1670000,485.00 +1956-06-19,483.91,486.38,481.18,484.52,1430000,484.52 +1956-06-18,485.91,487.30,482.90,483.91,1440000,483.91 +1956-06-15,485.52,487.58,484.15,485.91,1550000,485.91 +1956-06-14,487.08,488.02,483.99,485.52,1670000,485.52 +1956-06-13,485.49,489.69,484.45,487.08,1760000,487.08 +1956-06-12,479.41,486.10,478.70,485.49,1900000,485.49 +1956-06-11,476.15,481.22,476.15,479.41,2000000,479.41 +1956-06-08,480.83,480.83,467.99,475.29,3630000,475.29 +1956-06-07,480.54,485.20,480.14,482.99,1630000,482.99 +1956-06-06,483.19,483.36,477.95,480.54,1460000,480.54 +1956-06-05,483.22,485.82,481.73,483.19,1650000,483.19 +1956-06-04,480.63,484.60,479.48,483.22,1500000,483.22 +1956-06-01,478.05,481.52,475.54,480.63,1440000,480.63 +1956-05-31,477.68,483.53,476.43,478.05,2020000,478.05 +1956-05-29,470.43,478.99,470.43,477.68,2430000,477.68 +1956-05-28,472.49,474.16,463.85,468.81,2780000,468.81 +1956-05-25,473.51,477.79,469.31,472.49,2570000,472.49 +1956-05-24,480.16,481.81,471.71,473.51,2600000,473.51 +1956-05-23,484.13,487.60,479.38,480.16,2140000,480.16 +1956-05-22,490.08,490.08,481.86,484.13,2290000,484.13 +1956-05-21,496.13,496.13,488.93,491.62,1940000,491.62 +1956-05-18,496.63,500.65,494.75,496.39,2020000,496.39 +1956-05-17,492.69,497.93,492.22,496.63,1970000,496.63 +1956-05-16,494.83,497.67,490.97,492.69,2080000,492.69 +1956-05-15,497.28,497.86,490.73,494.83,2650000,494.83 +1956-05-14,501.25,505.79,496.00,497.28,2440000,497.28 +1956-05-11,501.56,503.18,497.57,501.25,2450000,501.25 +1956-05-10,508.16,509.44,499.86,501.56,2850000,501.56 +1956-05-09,509.13,511.74,506.05,508.16,2550000,508.16 +1956-05-08,512.89,513.62,508.03,509.13,2440000,509.13 +1956-05-07,516.44,518.50,511.74,512.89,2550000,512.89 +1956-05-04,514.03,519.80,513.49,516.44,2860000,516.44 +1956-05-03,512.78,516.57,511.43,514.03,2640000,514.03 +1956-05-02,513.96,515.08,510.93,512.78,2440000,512.78 +1956-05-01,516.12,516.88,511.24,513.96,2500000,513.96 +1956-04-30,512.03,518.42,511.19,516.12,2730000,516.12 +1956-04-27,507.95,513.98,507.95,512.03,2760000,512.03 +1956-04-26,503.86,508.92,503.86,507.12,2630000,507.12 +1956-04-25,503.36,505.48,500.99,503.02,2270000,503.02 +1956-04-24,507.28,508.95,501.77,503.36,2500000,503.36 +1956-04-23,507.20,510.77,506.00,507.28,2440000,507.28 +1956-04-20,504.33,508.66,503.91,507.20,2320000,507.20 +1956-04-19,506.55,507.95,502.45,504.33,2210000,504.33 +1956-04-18,507.95,511.03,504.61,506.55,2470000,506.55 +1956-04-17,509.15,511.11,505.81,507.95,2330000,507.95 +1956-04-16,509.99,512.83,506.99,509.15,2310000,509.15 +1956-04-13,509.15,511.61,506.73,509.99,2450000,509.99 +1956-04-12,512.70,515.03,508.27,509.15,2700000,509.15 +1956-04-11,510.04,514.61,508.89,512.70,2440000,512.70 +1956-04-10,516.72,516.72,508.24,510.04,2590000,510.04 +1956-04-09,521.05,524.37,517.40,518.52,2760000,518.52 +1956-04-06,516.57,522.12,516.28,521.05,2600000,521.05 +1956-04-05,518.65,522.86,514.90,516.57,2950000,516.57 +1956-04-04,515.91,519.88,513.54,518.65,2760000,518.65 +1956-04-03,515.10,519.85,513.33,515.91,2760000,515.91 +1956-04-02,511.79,519.10,510.67,515.10,3120000,515.10 +1956-03-29,510.25,515.86,509.36,511.79,3480000,511.79 +1956-03-28,508.68,511.61,506.21,510.25,2610000,510.25 +1956-03-27,512.39,512.39,507.77,508.68,2540000,508.68 +1956-03-26,513.03,515.05,509.81,512.42,2720000,512.42 +1956-03-23,510.94,515.15,510.25,513.03,2980000,513.03 +1956-03-22,507.92,512.21,505.85,510.94,2650000,510.94 +1956-03-21,512.62,513.70,506.33,507.92,2930000,507.92 +1956-03-20,509.76,514.69,507.13,512.62,2960000,512.62 +1956-03-19,507.60,511.57,506.36,509.76,2570000,509.76 +1956-03-16,507.50,509.61,504.67,507.60,3120000,507.60 +1956-03-15,504.01,509.19,504.01,507.50,3270000,507.50 +1956-03-14,499.36,505.60,499.36,503.88,3140000,503.88 +1956-03-13,500.24,502.32,496.45,499.33,2790000,499.33 +1956-03-12,497.84,502.03,496.59,500.24,3110000,500.24 +1956-03-09,492.63,499.09,492.63,497.84,3430000,497.84 +1956-03-08,491.26,493.95,489.82,492.36,2500000,492.36 +1956-03-07,491.41,492.75,489.21,491.26,2380000,491.26 +1956-03-06,491.68,494.42,489.77,491.41,2770000,491.41 +1956-03-05,488.84,493.29,488.57,491.68,3090000,491.68 +1956-03-02,486.69,491.07,485.88,488.84,2860000,488.84 +1956-03-01,483.65,487.98,483.63,486.69,2410000,486.69 +1956-02-29,485.71,491.09,482.77,483.65,3900000,483.65 +1956-02-28,485.00,487.03,482.48,485.71,2540000,485.71 +1956-02-27,485.66,488.06,482.50,485.00,2440000,485.00 +1956-02-24,481.55,487.30,481.55,485.66,2890000,485.66 +1956-02-23,477.03,482.75,477.03,481.50,2900000,481.50 +1956-02-21,476.46,478.20,474.19,476.93,2240000,476.93 +1956-02-20,477.05,480.21,473.28,476.46,2530000,476.46 +1956-02-17,469.61,477.91,469.12,477.05,2840000,477.05 +1956-02-16,470.64,471.79,467.80,469.61,1750000,469.61 +1956-02-15,469.25,476.02,469.25,470.64,3000000,470.64 +1956-02-14,467.17,468.24,463.89,465.72,1590000,465.72 +1956-02-13,467.66,469.56,465.60,467.17,1420000,467.17 +1956-02-10,467.22,470.25,465.14,467.66,1770000,467.66 +1956-02-09,471.23,471.45,465.50,467.22,2080000,467.22 +1956-02-08,476.56,478.52,470.08,471.23,2170000,471.23 +1956-02-07,478.57,479.18,474.16,476.56,2060000,476.56 +1956-02-06,477.44,481.80,475.88,478.57,2230000,478.57 +1956-02-03,473.43,479.10,472.26,477.44,2110000,477.44 +1956-02-02,473.28,475.51,470.54,473.43,1900000,473.43 +1956-02-01,470.74,475.41,470.69,473.28,2010000,473.28 +1956-01-31,467.56,471.99,466.78,470.74,1900000,470.74 +1956-01-30,466.56,470.10,465.23,467.56,1830000,467.56 +1956-01-27,466.82,468.73,463.33,466.56,1950000,466.56 +1956-01-26,470.71,471.62,465.38,466.82,1840000,466.82 +1956-01-25,467.93,472.57,467.93,470.71,1950000,470.71 +1956-01-24,463.91,469.78,463.91,467.88,2160000,467.88 +1956-01-23,464.40,465.85,458.21,462.35,2720000,462.35 +1956-01-20,468.49,472.11,463.16,464.40,2430000,464.40 +1956-01-19,472.89,473.43,466.60,468.49,2500000,468.49 +1956-01-18,477.73,479.69,472.40,472.89,2110000,472.89 +1956-01-17,476.24,480.55,475.12,477.73,2050000,477.73 +1956-01-16,481.50,481.50,475.19,476.24,2260000,476.24 +1956-01-13,481.80,484.41,479.96,481.80,2120000,481.80 +1956-01-12,478.71,483.70,478.71,481.80,2330000,481.80 +1956-01-11,476.12,481.33,475.85,478.42,2310000,478.42 +1956-01-10,479.69,479.69,472.65,476.12,2640000,476.12 +1956-01-09,485.68,487.91,478.62,479.74,2700000,479.74 +1956-01-06,484.02,488.18,483.78,485.68,2570000,485.68 +1956-01-05,484.00,487.25,482.31,484.02,2110000,484.02 +1956-01-04,485.78,487.79,481.01,484.00,2290000,484.00 +1956-01-03,488.40,490.92,484.27,485.78,2390000,485.78 +1955-12-30,484.71,490.33,484.71,488.40,2820000,488.40 +1955-12-29,484.22,487.18,482.77,484.56,2190000,484.56 +1955-12-28,485.81,487.13,483.41,484.22,1990000,484.22 +1955-12-27,486.59,488.91,484.00,485.81,2010000,485.81 +1955-12-23,486.08,489.31,484.83,486.59,2090000,486.59 +1955-12-22,485.49,489.45,484.56,486.08,2650000,486.08 +1955-12-21,481.87,487.37,481.87,485.49,2540000,485.49 +1955-12-20,481.80,483.87,478.59,481.84,2280000,481.84 +1955-12-19,482.08,485.22,480.69,481.80,2380000,481.80 +1955-12-16,480.72,484.17,479.87,482.08,2310000,482.08 +1955-12-15,480.84,483.38,478.32,480.72,2260000,480.72 +1955-12-14,484.29,485.48,479.70,480.84,2670000,480.84 +1955-12-13,483.72,487.04,482.41,484.29,2430000,484.29 +1955-12-12,487.42,487.42,482.41,483.72,2510000,483.72 +1955-12-09,487.80,490.37,486.14,487.64,2660000,487.64 +1955-12-08,486.35,489.68,484.83,487.80,2970000,487.80 +1955-12-07,486.73,489.11,484.81,486.35,2480000,486.35 +1955-12-06,487.16,490.56,485.55,486.73,2540000,486.73 +1955-12-05,483.15,488.71,483.15,487.16,2440000,487.16 +1955-12-02,481.39,483.88,478.87,482.72,2400000,482.72 +1955-12-01,483.26,485.48,480.01,481.39,2370000,481.39 +1955-11-30,482.60,485.95,481.53,483.26,2900000,483.26 +1955-11-29,480.96,484.03,479.13,482.60,2370000,482.60 +1955-11-28,482.88,485.81,479.87,480.96,2460000,480.96 +1955-11-25,482.62,485.40,480.98,482.88,2190000,482.88 +1955-11-23,481.91,485.97,480.72,482.62,2550000,482.62 +1955-11-22,477.30,483.38,477.25,481.91,2270000,481.91 +1955-11-21,482.91,483.48,476.42,477.30,1960000,477.30 +1955-11-18,485.26,485.74,478.89,482.91,2320000,482.91 +1955-11-17,487.38,488.99,484.17,485.26,2310000,485.26 +1955-11-16,487.07,490.75,483.60,487.38,2460000,487.38 +1955-11-15,484.88,490.35,480.84,487.07,2560000,487.07 +1955-11-14,479.20,486.69,479.20,484.88,2760000,484.88 +1955-11-11,472.52,478.01,472.21,476.54,2000000,476.54 +1955-11-10,473.90,478.70,471.48,472.52,2550000,472.52 +1955-11-09,470.58,476.68,469.29,473.90,2580000,473.90 +1955-11-07,467.35,472.45,466.73,470.58,2230000,470.58 +1955-11-04,461.97,468.70,461.03,467.35,2430000,467.35 +1955-11-03,455.99,463.09,455.99,461.97,2260000,461.97 +1955-11-02,454.89,456.18,452.12,454.92,1610000,454.92 +1955-11-01,454.87,456.84,452.86,454.89,1590000,454.89 +1955-10-31,454.85,458.31,453.84,454.87,1800000,454.87 +1955-10-28,453.77,456.59,451.21,454.85,1720000,454.85 +1955-10-27,455.72,458.97,452.31,453.77,1830000,453.77 +1955-10-26,458.40,459.34,454.51,455.72,1660000,455.72 +1955-10-25,460.82,463.02,457.48,458.40,1950000,458.40 +1955-10-24,458.47,462.38,458.35,460.82,1820000,460.82 +1955-10-21,457.66,460.39,455.49,458.47,1710000,458.47 +1955-10-20,454.39,460.66,454.39,457.66,2160000,457.66 +1955-10-19,448.76,454.44,448.76,453.09,1760000,453.09 +1955-10-18,446.13,450.43,444.82,448.58,1550000,448.58 +1955-10-17,444.68,450.75,443.68,446.13,1480000,446.13 +1955-10-14,444.91,446.90,440.59,444.68,1640000,444.68 +1955-10-13,445.58,451.30,443.68,444.91,1980000,444.91 +1955-10-12,442.46,448.16,442.46,445.58,1900000,445.58 +1955-10-11,441.14,444.04,433.19,438.59,3590000,438.59 +1955-10-10,452.97,452.97,440.17,441.14,3100000,441.14 +1955-10-07,458.19,458.74,451.05,454.41,2150000,454.41 +1955-10-06,461.14,461.79,456.61,458.19,1690000,458.19 +1955-10-05,458.85,464.60,458.79,461.14,1920000,461.14 +1955-10-04,455.70,461.79,455.35,458.85,2020000,458.85 +1955-10-03,465.40,465.40,454.85,455.70,2720000,455.70 +1955-09-30,468.68,469.68,464.14,466.62,2140000,466.62 +1955-09-29,472.61,474.08,467.37,468.68,2560000,468.68 +1955-09-28,467.49,475.13,467.49,472.61,3780000,472.61 +1955-09-27,456.22,467.42,456.22,465.93,5500000,465.93 +1955-09-26,463.59,463.59,446.74,455.56,7720000,455.56 +1955-09-23,485.96,489.94,483.44,487.45,2540000,487.45 +1955-09-22,485.98,489.51,484.12,485.96,2550000,485.96 +1955-09-21,483.67,488.02,482.97,485.98,2460000,485.98 +1955-09-20,483.80,485.05,480.84,483.67,2090000,483.67 +1955-09-19,483.67,487.79,482.42,483.80,2390000,483.80 +1955-09-16,481.56,485.32,480.02,483.67,2540000,483.67 +1955-09-15,482.90,485.73,480.04,481.56,2890000,481.56 +1955-09-14,480.93,485.71,479.61,482.90,2570000,482.90 +1955-09-13,476.51,482.76,475.54,480.93,2580000,480.93 +1955-09-12,474.59,478.44,473.02,476.51,2520000,476.51 +1955-09-09,475.06,476.87,472.48,474.59,2480000,474.59 +1955-09-08,475.20,476.97,472.96,475.06,2470000,475.06 +1955-09-07,476.24,478.50,473.00,475.20,2380000,475.20 +1955-09-06,472.84,478.80,472.84,476.24,2360000,476.24 +1955-09-02,469.63,473.52,469.47,472.53,1700000,472.53 +1955-09-01,468.18,471.51,467.36,469.63,1860000,469.63 +1955-08-31,464.80,469.51,464.80,468.18,1850000,468.18 +1955-08-30,464.37,466.41,462.70,464.67,1740000,464.67 +1955-08-29,463.70,466.62,463.08,464.37,1910000,464.37 +1955-08-26,461.27,465.30,460.68,463.70,2200000,463.70 +1955-08-25,459.39,462.93,458.40,461.27,2120000,461.27 +1955-08-24,457.38,462.68,457.38,459.39,2140000,459.39 +1955-08-23,452.55,457.88,451.17,457.35,1890000,457.35 +1955-08-22,453.57,454.41,450.76,452.55,1430000,452.55 +1955-08-19,452.53,454.66,450.67,453.57,1400000,453.57 +1955-08-18,452.85,454.86,451.13,452.53,1560000,452.53 +1955-08-17,453.26,454.66,449.88,452.85,1570000,452.85 +1955-08-16,456.09,457.17,451.92,453.26,1520000,453.26 +1955-08-15,457.01,458.87,453.84,456.09,1230000,456.09 +1955-08-12,455.18,458.99,454.93,457.01,1530000,457.01 +1955-08-11,450.29,456.22,449.75,455.18,1620000,455.18 +1955-08-10,448.84,452.44,447.39,450.29,1580000,450.29 +1955-08-09,453.30,453.30,445.67,448.84,2240000,448.84 +1955-08-08,456.40,459.28,453.05,454.05,1730000,454.05 +1955-08-05,454.18,458.44,453.62,456.40,1690000,456.40 +1955-08-04,458.92,458.92,452.37,454.18,2210000,454.18 +1955-08-03,460.82,463.60,459.17,460.98,2190000,460.98 +1955-08-02,460.25,463.02,457.11,460.82,2260000,460.82 +1955-08-01,465.85,467.48,458.71,460.25,2190000,460.25 +1955-07-29,466.46,468.75,463.45,465.85,2070000,465.85 +1955-07-28,468.45,470.74,463.26,466.46,2090000,466.46 +1955-07-27,468.41,471.35,465.71,468.45,2170000,468.45 +1955-07-26,468.02,471.73,465.14,468.41,2340000,468.41 +1955-07-25,464.69,470.53,464.35,468.02,2500000,468.02 +1955-07-22,461.07,466.28,460.73,464.69,2500000,464.69 +1955-07-21,458.10,462.86,457.65,461.07,2530000,461.07 +1955-07-20,456.72,459.89,454.34,458.10,2080000,458.10 +1955-07-19,460.07,460.86,453.39,456.72,2300000,456.72 +1955-07-18,460.23,463.45,458.08,460.07,2160000,460.07 +1955-07-15,458.49,463.15,457.94,460.23,2230000,460.23 +1955-07-14,457.40,460.71,454.82,458.49,1980000,458.49 +1955-07-13,462.97,464.96,456.06,457.40,2360000,457.40 +1955-07-12,464.24,468.99,460.62,462.97,2630000,462.97 +1955-07-11,461.18,466.10,460.32,464.24,2420000,464.24 +1955-07-08,460.23,465.08,456.68,461.18,2450000,461.18 +1955-07-07,467.41,469.06,458.28,460.23,3300000,460.23 +1955-07-06,460.89,471.15,460.89,467.41,3140000,467.41 +1955-07-05,454.80,462.22,454.80,459.42,2680000,459.42 +1955-07-01,451.38,456.11,449.50,453.82,2540000,453.82 +1955-06-30,449.70,453.48,448.70,451.38,2370000,451.38 +1955-06-29,449.02,451.13,444.74,449.70,2180000,449.70 +1955-06-28,449.86,452.28,446.12,449.02,2180000,449.02 +1955-06-27,448.93,451.53,446.64,449.86,2250000,449.86 +1955-06-24,448.82,450.99,445.15,448.93,2410000,448.93 +1955-06-23,447.37,451.49,445.67,448.82,2900000,448.82 +1955-06-22,446.80,450.45,445.24,447.37,3010000,447.37 +1955-06-21,444.38,448.52,443.27,446.80,2720000,446.80 +1955-06-20,444.08,446.53,443.13,444.38,2490000,444.38 +1955-06-17,442.48,445.04,440.96,444.08,2340000,444.08 +1955-06-16,441.93,445.42,440.51,442.48,2760000,442.48 +1955-06-15,438.45,443.47,438.45,441.93,2650000,441.93 +1955-06-14,440.17,443.45,437.45,438.20,2860000,438.20 +1955-06-13,437.72,442.23,437.65,440.17,2770000,440.17 +1955-06-10,435.07,438.94,433.60,437.72,2470000,437.72 +1955-06-09,436.95,439.80,434.32,435.07,2960000,435.07 +1955-06-08,434.55,439.26,433.26,436.95,3300000,436.95 +1955-06-07,431.49,437.99,430.93,434.55,3230000,434.55 +1955-06-06,428.53,433.19,427.37,431.49,2560000,431.49 +1955-06-03,425.88,430.25,425.88,428.53,2590000,428.53 +1955-06-02,424.88,428.13,422.86,425.80,2610000,425.80 +1955-06-01,424.86,426.75,422.48,424.88,2510000,424.88 +1955-05-31,425.66,427.06,422.84,424.86,1990000,424.86 +1955-05-27,424.95,427.71,423.68,425.66,2220000,425.66 +1955-05-26,421.77,426.08,421.48,424.95,2260000,424.95 +1955-05-25,420.39,423.44,419.63,421.77,2100000,421.77 +1955-05-24,420.32,422.39,417.16,420.39,1650000,420.39 +1955-05-23,422.89,425.22,419.75,420.32,1900000,420.32 +1955-05-20,419.72,423.84,418.64,422.89,2240000,422.89 +1955-05-19,417.83,421.57,417.16,419.72,2380000,419.72 +1955-05-18,414.12,418.83,413.95,417.83,2010000,417.83 +1955-05-17,415.01,417.05,412.60,414.12,1900000,414.12 +1955-05-16,419.57,421.02,412.73,415.01,2160000,415.01 +1955-05-13,418.20,421.98,417.03,419.57,1860000,419.57 +1955-05-12,420.29,421.24,414.43,418.20,2830000,418.20 +1955-05-11,423.80,425.02,419.03,420.29,2120000,420.29 +1955-05-10,424.32,425.69,419.85,423.80,2150000,423.80 +1955-05-09,423.84,426.32,422.43,424.32,2090000,424.32 +1955-05-06,423.39,425.71,421.57,423.84,2250000,423.84 +1955-05-05,422.54,425.56,421.22,423.39,2270000,423.39 +1955-05-04,422.78,424.65,419.18,422.54,2220000,422.54 +1955-05-03,426.30,426.84,420.81,422.78,2630000,422.78 +1955-05-02,425.65,428.27,424.00,426.30,2220000,426.30 +1955-04-29,423.19,426.99,422.82,425.65,2230000,425.65 +1955-04-28,428.10,428.92,421.96,423.19,2550000,423.19 +1955-04-27,430.64,432.07,425.41,428.10,2660000,428.10 +1955-04-26,427.62,432.76,427.62,430.64,2720000,430.64 +1955-04-25,425.52,428.34,420.52,426.86,2720000,426.86 +1955-04-22,428.45,430.27,423.24,425.52,2800000,425.52 +1955-04-21,428.62,431.18,425.54,428.45,2810000,428.45 +1955-04-20,427.88,430.85,426.04,428.62,3090000,428.62 +1955-04-19,428.42,429.25,425.30,427.88,2700000,427.88 +1955-04-18,425.45,430.03,425.02,428.42,3080000,428.42 +1955-04-15,422.46,427.23,421.71,425.45,3180000,425.45 +1955-04-14,421.57,424.52,419.05,422.46,2890000,422.46 +1955-04-13,420.94,424.19,419.87,421.57,2820000,421.57 +1955-04-12,418.77,422.85,418.12,420.94,2770000,420.94 +1955-04-11,418.20,420.89,416.27,418.77,2680000,418.77 +1955-04-07,416.42,419.79,415.84,418.20,2330000,418.20 +1955-04-06,415.90,419.33,414.75,416.42,2500000,416.42 +1955-04-05,412.97,416.84,411.84,415.90,2100000,415.90 +1955-04-04,413.84,416.71,412.10,412.97,2500000,412.97 +1955-04-01,409.78,414.80,409.78,413.84,2660000,413.84 +1955-03-31,410.13,413.21,407.96,409.70,2680000,409.70 +1955-03-30,413.73,414.82,409.07,410.13,3410000,410.13 +1955-03-29,412.91,415.10,411.39,413.73,2770000,413.73 +1955-03-28,414.77,416.16,411.87,412.91,2540000,412.91 +1955-03-25,414.49,416.64,412.06,414.77,2540000,414.77 +1955-03-24,411.39,416.42,411.39,414.49,3170000,414.49 +1955-03-23,405.68,411.32,405.68,410.87,2730000,410.87 +1955-03-22,402.40,405.68,401.28,404.47,1910000,404.47 +1955-03-21,404.75,406.16,401.64,402.40,2020000,402.40 +1955-03-18,405.23,408.09,402.88,404.75,2050000,404.75 +1955-03-17,403.14,406.14,401.41,405.23,2200000,405.23 +1955-03-16,399.60,405.94,399.60,403.14,2900000,403.14 +1955-03-15,391.36,399.67,391.18,399.28,3160000,399.28 +1955-03-14,400.06,400.06,387.50,391.36,4220000,391.36 +1955-03-11,406.66,406.66,398.56,401.08,3040000,401.08 +1955-03-10,404.90,410.06,404.90,406.83,2760000,406.83 +1955-03-09,409.13,409.22,400.84,404.90,3590000,404.90 +1955-03-08,416.27,416.27,408.52,409.13,3160000,409.13 +1955-03-07,419.68,420.85,415.69,416.84,2630000,416.84 +1955-03-04,418.33,421.83,416.53,419.68,2770000,419.68 +1955-03-03,417.18,420.61,416.25,418.33,3330000,418.33 +1955-03-02,413.95,418.33,413.95,417.18,3370000,417.18 +1955-03-01,411.87,416.10,411.24,413.71,2830000,413.71 +1955-02-28,409.50,413.62,408.18,411.87,2620000,411.87 +1955-02-25,410.30,411.17,406.35,409.50,2540000,409.50 +1955-02-24,411.48,412.65,407.63,410.30,2920000,410.30 +1955-02-23,411.28,413.04,409.72,411.48,3030000,411.48 +1955-02-21,411.63,414.21,409.57,411.28,3010000,411.28 +1955-02-18,410.41,414.62,409.07,411.63,3660000,411.63 +1955-02-17,409.98,412.78,408.55,410.41,3030000,410.41 +1955-02-16,411.95,414.27,408.91,409.98,3660000,409.98 +1955-02-15,411.39,414.69,409.54,411.95,3510000,411.95 +1955-02-14,413.99,415.42,410.26,411.39,2950000,411.39 +1955-02-11,412.89,416.55,410.74,413.99,3260000,413.99 +1955-02-10,410.41,414.90,410.41,412.89,3460000,412.89 +1955-02-09,405.70,411.34,405.20,410.32,3360000,410.32 +1955-02-08,409.59,410.78,403.73,405.70,3400000,405.70 +1955-02-07,409.76,412.93,407.20,409.59,3610000,409.59 +1955-02-04,405.85,411.17,405.09,409.76,3370000,409.76 +1955-02-03,407.11,408.20,403.51,405.85,2890000,405.85 +1955-02-02,409.70,410.17,405.42,407.11,3210000,407.11 +1955-02-01,408.83,411.63,406.72,409.70,3320000,409.70 +1955-01-31,404.68,410.61,404.27,408.83,3500000,408.83 +1955-01-28,402.60,406.38,400.67,404.68,3290000,404.68 +1955-01-27,401.97,406.98,400.21,402.60,3500000,402.60 +1955-01-26,398.19,405.31,398.19,401.97,3860000,401.97 +1955-01-25,396.00,397.85,392.14,397.00,3230000,397.00 +1955-01-24,395.90,397.89,394.09,396.00,2910000,396.00 +1955-01-21,393.03,397.64,392.50,395.90,2690000,395.90 +1955-01-20,392.31,394.35,390.66,393.03,2210000,393.03 +1955-01-19,391.19,395.81,391.19,392.31,2760000,392.31 +1955-01-18,388.20,391.76,385.65,390.98,3020000,390.98 +1955-01-17,396.54,396.75,387.54,388.20,3360000,388.20 +1955-01-14,398.34,399.70,394.88,396.54,2630000,396.54 +1955-01-13,399.78,402.12,396.28,398.34,3350000,398.34 +1955-01-12,400.25,401.86,396.60,399.78,3400000,399.78 +1955-01-11,400.89,402.88,398.02,400.25,3680000,400.25 +1955-01-10,397.72,402.24,397.72,400.89,4300000,400.89 +1955-01-07,391.91,396.88,391.91,395.60,4030000,395.60 +1955-01-06,397.19,397.19,387.09,391.89,5300000,391.89 +1955-01-05,405.39,405.39,396.41,397.24,4640000,397.24 +1955-01-04,408.89,409.21,401.84,406.17,4420000,406.17 +1955-01-03,404.39,412.47,403.58,408.89,4570000,408.89 +1954-12-31,401.97,407.17,401.48,404.39,3840000,404.39 +1954-12-30,401.97,404.41,399.42,401.97,3590000,401.97 +1954-12-29,398.51,404.21,398.17,401.97,4430000,401.97 +1954-12-28,393.88,399.61,392.06,398.51,3660000,398.51 +1954-12-27,397.15,397.77,392.33,393.88,2970000,393.88 +1954-12-23,397.07,398.85,395.28,397.15,3310000,397.15 +1954-12-22,398.11,399.97,395.73,397.07,3460000,397.07 +1954-12-21,397.32,400.04,395.35,398.11,3630000,398.11 +1954-12-20,394.94,399.59,393.31,397.32,3770000,397.32 +1954-12-17,393.14,396.34,391.85,394.94,3730000,394.94 +1954-12-16,389.28,394.54,389.28,393.14,3390000,393.14 +1954-12-15,387.03,389.96,385.03,388.92,2740000,388.92 +1954-12-14,389.79,390.98,386.56,387.03,2650000,387.03 +1954-12-13,390.08,391.87,387.73,389.79,2750000,389.79 +1954-12-10,391.53,393.54,388.41,390.08,3250000,390.08 +1954-12-09,393.08,393.56,388.75,391.53,3300000,391.53 +1954-12-08,393.88,395.43,390.85,393.08,4150000,393.08 +1954-12-07,392.48,395.67,390.32,393.88,3820000,393.88 +1954-12-06,389.77,394.01,389.77,392.48,3960000,392.48 +1954-12-03,385.63,391.74,385.58,389.60,3790000,389.60 +1954-12-02,384.04,388.05,382.80,385.63,3190000,385.63 +1954-12-01,386.77,388.68,381.81,384.04,3100000,384.04 +1954-11-30,388.51,391.21,385.67,386.77,3440000,386.77 +1954-11-29,387.79,390.72,385.90,388.51,3300000,388.51 +1954-11-26,384.63,388.96,384.06,387.79,3010000,387.79 +1954-11-24,382.74,387.05,382.47,384.63,3990000,384.63 +1954-11-23,379.47,384.29,378.65,382.74,3690000,382.74 +1954-11-22,378.01,381.21,376.82,379.47,3000000,379.47 +1954-11-19,377.44,380.34,375.29,378.01,3130000,378.01 +1954-11-18,379.69,381.32,376.29,377.44,3530000,377.44 +1954-11-17,379.39,382.06,377.46,379.69,3830000,379.69 +1954-11-16,376.74,380.77,373.85,379.39,3260000,379.39 +1954-11-15,377.10,379.20,374.04,376.74,3080000,376.74 +1954-11-12,374.91,379.73,374.19,377.10,3720000,377.10 +1954-11-11,371.88,375.89,371.47,374.91,2960000,374.91 +1954-11-10,371.07,374.00,368.88,371.88,2070000,371.88 +1954-11-09,369.46,372.83,368.52,371.07,3240000,371.07 +1954-11-08,366.00,371.60,365.28,369.46,3180000,369.46 +1954-11-05,366.95,368.31,363.90,366.00,2950000,366.00 +1954-11-04,361.99,368.50,361.99,366.95,3140000,366.95 +1954-11-03,355.45,363.30,355.45,361.50,2700000,361.50 +1954-11-01,352.14,354.90,350.16,353.96,1790000,353.96 +1954-10-29,354.56,354.71,350.72,352.14,1900000,352.14 +1954-10-28,355.73,357.55,353.60,354.56,2190000,354.56 +1954-10-27,356.32,358.00,354.01,355.73,2030000,355.73 +1954-10-26,356.34,358.29,354.73,356.32,2010000,356.32 +1954-10-25,358.61,360.82,355.15,356.34,2340000,356.34 +1954-10-22,358.08,360.31,356.81,358.61,2080000,358.61 +1954-10-21,357.42,360.46,356.60,358.08,2320000,358.08 +1954-10-20,354.75,358.72,354.69,357.42,2380000,357.42 +1954-10-19,354.35,356.34,353.11,354.75,1900000,354.75 +1954-10-18,353.20,355.64,351.84,354.35,1790000,354.35 +1954-10-15,354.69,355.64,351.54,353.20,2250000,353.20 +1954-10-14,358.91,359.74,353.94,354.69,2540000,354.69 +1954-10-13,359.57,360.71,357.51,358.91,2070000,358.91 +1954-10-12,361.12,361.12,357.95,359.57,1620000,359.57 +1954-10-11,363.77,364.98,360.37,361.43,2100000,361.43 +1954-10-08,363.79,366.04,362.35,363.77,2120000,363.77 +1954-10-07,364.43,366.40,362.30,363.79,1810000,363.79 +1954-10-06,363.37,366.02,362.43,364.43,2570000,364.43 +1954-10-05,362.73,365.11,361.75,363.37,2300000,363.37 +1954-10-04,359.88,364.21,359.35,362.73,2000000,362.73 +1954-10-01,360.46,361.62,358.59,359.88,1850000,359.88 +1954-09-30,361.73,362.98,358.95,360.46,1840000,360.46 +1954-09-29,363.32,364.21,360.39,361.73,1810000,361.73 +1954-09-28,362.26,366.02,361.12,363.32,1800000,363.32 +1954-09-27,361.67,364.00,361.03,362.26,2190000,362.26 +1954-09-24,359.63,362.90,357.97,361.67,2340000,361.67 +1954-09-23,358.36,361.71,357.08,359.63,2340000,359.63 +1954-09-22,356.40,359.46,356.13,358.36,2260000,358.36 +1954-09-21,353.48,356.91,352.24,356.40,1770000,356.40 +1954-09-20,355.32,357.32,353.11,353.48,2060000,353.48 +1954-09-17,352.37,356.40,352.22,355.32,2250000,355.32 +1954-09-16,350.63,353.43,349.06,352.37,1880000,352.37 +1954-09-15,351.78,353.45,348.59,350.63,2110000,350.63 +1954-09-14,351.10,353.92,350.06,351.78,2120000,351.78 +1954-09-13,347.83,352.29,347.83,351.10,2030000,351.10 +1954-09-10,346.73,349.38,345.50,347.83,1870000,347.83 +1954-09-09,346.07,347.47,344.22,346.73,1700000,346.73 +1954-09-08,345.37,348.25,344.92,346.07,1970000,346.07 +1954-09-07,343.10,346.34,341.82,345.37,1860000,345.37 +1954-09-03,341.15,343.80,340.23,343.10,1630000,343.10 +1954-09-02,338.41,342.76,338.41,341.15,1600000,341.15 +1954-09-01,335.80,340.42,334.97,338.13,1790000,338.13 +1954-08-31,340.44,340.44,333.21,335.80,2640000,335.80 +1954-08-30,344.48,345.07,339.53,341.25,1950000,341.25 +1954-08-27,343.35,346.37,342.29,344.48,1740000,344.48 +1954-08-26,344.60,345.35,341.10,343.35,2060000,343.35 +1954-08-25,346.32,347.49,341.97,344.60,2280000,344.60 +1954-08-24,347.64,348.19,344.26,346.32,2000000,346.32 +1954-08-23,350.38,351.08,347.00,347.64,2020000,347.64 +1954-08-20,349.89,352.20,348.59,350.38,2110000,350.38 +1954-08-19,348.51,352.27,347.05,349.89,2320000,349.89 +1954-08-18,348.38,350.00,344.77,348.51,2390000,348.51 +1954-08-17,349.61,351.86,347.05,348.38,2900000,348.38 +1954-08-16,346.64,350.91,346.11,349.61,2760000,349.61 +1954-08-13,345.84,347.98,343.52,346.64,2500000,346.64 +1954-08-12,346.41,348.53,344.31,345.84,2680000,345.84 +1954-08-11,343.56,347.92,343.12,346.41,3440000,346.41 +1954-08-10,340.87,345.60,340.61,343.56,2890000,343.56 +1954-08-09,343.06,343.71,338.70,340.87,2280000,340.87 +1954-08-06,347.02,347.02,339.64,343.06,3350000,343.06 +1954-08-05,349.74,350.42,345.90,347.79,3150000,347.79 +1954-08-04,349.61,351.50,345.75,349.74,3620000,349.74 +1954-08-03,349.57,351.44,347.05,349.61,2970000,349.61 +1954-08-02,347.92,351.29,346.22,349.57,2850000,349.57 +1954-07-30,346.15,349.21,345.22,347.92,2800000,347.92 +1954-07-29,345.11,347.77,344.01,346.15,2710000,346.15 +1954-07-28,344.69,346.83,342.72,345.11,2740000,345.11 +1954-07-27,343.39,346.41,342.06,344.69,2690000,344.69 +1954-07-26,343.48,345.05,341.42,343.39,2110000,343.39 +1954-07-23,342.97,344.92,341.51,343.48,2520000,343.48 +1954-07-22,339.98,344.54,338.94,342.97,2890000,342.97 +1954-07-21,337.62,341.06,336.46,339.98,2510000,339.98 +1954-07-20,338.64,339.09,334.80,337.62,2580000,337.62 +1954-07-19,339.96,340.87,336.96,338.64,2370000,338.64 +1954-07-16,341.06,342.12,338.03,339.96,2540000,339.96 +1954-07-15,340.44,343.01,339.17,341.06,3000000,341.06 +1954-07-14,340.04,341.25,337.37,340.44,2520000,340.44 +1954-07-13,340.91,342.82,338.53,340.04,2430000,340.04 +1954-07-12,341.25,343.59,339.43,340.91,2330000,340.91 +1954-07-09,339.81,342.91,337.62,341.25,2240000,341.25 +1954-07-08,340.34,341.63,337.64,339.81,2080000,339.81 +1954-07-07,341.12,343.20,338.15,340.34,2380000,340.34 +1954-07-06,337.71,342.10,337.71,341.12,2560000,341.12 +1954-07-02,334.12,338.64,333.00,337.66,1980000,337.66 +1954-07-01,333.53,335.44,330.68,334.12,1860000,334.12 +1954-06-30,336.90,337.96,332.20,333.53,1950000,333.53 +1954-06-29,336.12,338.78,330.95,336.90,2580000,336.90 +1954-06-28,332.53,337.30,331.29,336.12,1890000,336.12 +1954-06-25,332.20,335.09,330.19,332.53,2060000,332.53 +1954-06-24,330.72,333.84,329.58,332.20,2260000,332.20 +1954-06-23,329.51,331.54,326.81,330.72,2090000,330.72 +1954-06-22,328.56,330.99,327.40,329.51,2100000,329.51 +1954-06-21,327.91,330.19,326.33,328.56,1820000,328.56 +1954-06-18,327.21,329.07,325.73,327.91,1580000,327.91 +1954-06-17,327.28,329.49,325.88,327.21,1810000,327.21 +1954-06-16,325.21,328.67,325.00,327.28,2070000,327.28 +1954-06-15,322.65,325.80,322.04,325.21,1630000,325.21 +1954-06-14,322.09,323.54,320.67,322.65,1420000,322.65 +1954-06-11,320.12,323.29,319.19,322.09,1630000,322.09 +1954-06-10,319.27,321.85,318.20,320.12,1610000,320.12 +1954-06-09,321.00,321.26,315.66,319.27,2360000,319.27 +1954-06-08,327.92,327.92,319.94,321.00,2540000,321.00 +1954-06-07,327.63,329.54,326.50,327.96,1520000,327.96 +1954-06-04,328.63,329.84,326.54,327.63,1720000,327.63 +1954-06-03,328.36,330.35,327.35,328.63,1810000,328.63 +1954-06-02,328.67,330.45,327.06,328.36,1930000,328.36 +1954-06-01,327.49,329.48,326.21,328.67,1850000,328.67 +1954-05-28,326.37,328.57,324.83,327.49,1940000,327.49 +1954-05-27,327.11,328.93,325.50,326.37,2230000,326.37 +1954-05-26,325.02,328.26,324.26,327.11,2180000,327.11 +1954-05-25,326.09,326.80,323.27,325.02,2050000,325.02 +1954-05-24,326.09,327.94,324.59,326.09,2330000,326.09 +1954-05-21,323.88,327.43,323.82,326.09,2620000,326.09 +1954-05-20,323.21,325.42,322.40,323.88,2070000,323.88 +1954-05-19,324.14,325.64,321.79,323.21,2170000,323.21 +1954-05-18,323.33,326.29,322.90,324.14,2250000,324.14 +1954-05-17,322.50,324.69,321.10,323.33,2040000,323.33 +1954-05-14,320.39,323.39,319.39,322.50,1970000,322.50 +1954-05-13,321.61,323.80,319.21,320.39,2340000,320.39 +1954-05-12,319.74,322.70,318.68,321.61,2210000,321.61 +1954-05-11,321.32,322.03,318.22,319.74,1770000,319.74 +1954-05-10,321.30,322.66,320.02,321.32,1800000,321.32 +1954-05-07,320.41,323.13,319.54,321.30,2070000,321.30 +1954-05-06,317.93,321.53,316.80,320.41,1980000,320.41 +1954-05-05,319.82,320.94,316.45,317.93,2020000,317.93 +1954-05-04,319.35,321.65,316.84,319.82,1990000,319.82 +1954-05-03,319.33,320.94,317.37,319.35,1870000,319.35 +1954-04-30,318.22,321.71,317.24,319.33,2450000,319.33 +1954-04-29,314.02,319.76,314.02,318.22,2150000,318.22 +1954-04-28,313.49,315.01,309.37,313.75,2120000,313.75 +1954-04-27,314.54,315.74,310.91,313.49,1970000,313.49 +1954-04-26,313.37,316.23,312.35,314.54,2150000,314.54 +1954-04-23,311.48,314.34,311.16,313.37,1990000,313.37 +1954-04-22,310.91,312.54,309.05,311.48,1750000,311.48 +1954-04-21,311.89,313.94,309.92,310.91,1870000,310.91 +1954-04-20,311.78,314.38,310.02,311.89,1860000,311.89 +1954-04-19,313.77,316.15,310.65,311.78,2430000,311.78 +1954-04-15,311.76,314.44,310.71,313.77,2200000,313.77 +1954-04-14,308.98,312.96,308.38,311.76,2330000,311.76 +1954-04-13,309.19,310.93,307.58,308.98,2020000,308.98 +1954-04-12,309.39,310.77,307.44,309.19,1790000,309.19 +1954-04-09,307.79,310.32,307.20,309.39,2360000,309.39 +1954-04-08,305.82,309.57,305.82,307.79,2300000,307.79 +1954-04-07,304.26,306.45,301.70,305.41,1830000,305.41 +1954-04-06,307.04,308.50,302.78,304.26,2120000,304.26 +1954-04-05,306.67,308.46,305.27,307.04,1710000,307.04 +1954-04-02,306.27,307.95,304.52,306.67,1830000,306.67 +1954-04-01,303.51,307.30,303.18,306.27,2270000,306.27 +1954-03-31,301.01,305.15,301.01,303.51,2690000,303.51 +1954-03-30,300.06,302.57,299.47,300.89,2130000,300.89 +1954-03-29,299.08,301.46,297.66,300.06,1870000,300.06 +1954-03-26,296.67,300.10,296.67,299.08,1550000,299.08 +1954-03-25,296.89,297.68,294.76,296.40,1720000,296.40 +1954-03-24,299.02,299.73,295.59,296.89,1900000,296.89 +1954-03-23,301.60,302.49,298.39,299.02,2180000,299.02 +1954-03-22,301.44,302.80,299.49,301.60,1800000,301.60 +1954-03-19,300.12,302.65,300.12,301.44,1930000,301.44 +1954-03-18,298.31,301.44,297.99,300.10,2020000,300.10 +1954-03-17,298.09,299.22,296.14,298.31,1740000,298.31 +1954-03-16,298.88,300.50,297.34,298.09,1540000,298.09 +1954-03-15,299.71,300.12,296.81,298.88,1680000,298.88 +1954-03-12,300.83,302.17,298.76,299.71,1980000,299.71 +1954-03-11,299.59,301.68,298.76,300.83,2050000,300.83 +1954-03-10,299.45,300.95,298.01,299.59,1870000,299.59 +1954-03-09,298.64,300.50,297.09,299.45,1630000,299.45 +1954-03-08,299.45,300.66,297.44,298.64,1650000,298.64 +1954-03-05,297.48,300.68,296.50,299.45,2030000,299.45 +1954-03-04,297.03,298.80,295.37,297.48,1830000,297.48 +1954-03-03,297.48,299.65,295.79,297.03,2240000,297.03 +1954-03-02,296.55,298.66,294.78,297.48,1980000,297.48 +1954-03-01,294.54,297.80,294.23,296.55,2040000,296.55 +1954-02-26,291.41,295.19,290.78,294.54,1910000,294.54 +1954-02-25,289.54,292.04,289.06,291.41,1470000,291.41 +1954-02-24,290.03,290.42,287.84,289.54,1350000,289.54 +1954-02-23,291.07,291.98,289.00,290.03,1470000,290.03 +1954-02-19,291.51,292.59,289.87,291.07,1510000,291.07 +1954-02-18,290.11,292.67,289.08,291.51,1500000,291.51 +1954-02-17,289.61,290.92,287.37,290.11,1740000,290.11 +1954-02-16,292.55,292.95,288.61,289.61,1870000,289.61 +1954-02-15,293.99,294.92,291.93,292.55,2080000,292.55 +1954-02-12,292.45,294.78,291.90,293.99,1730000,293.99 +1954-02-11,292.95,294.84,291.27,292.45,1860000,292.45 +1954-02-10,293.79,294.50,292.00,292.95,1790000,292.95 +1954-02-09,293.58,294.84,291.94,293.79,1880000,293.79 +1954-02-08,293.97,294.92,292.20,293.58,2180000,293.58 +1954-02-05,294.03,295.43,292.53,293.97,2030000,293.97 +1954-02-04,292.32,295.10,292.06,294.03,2040000,294.03 +1954-02-03,291.17,292.99,289.20,292.32,1690000,292.32 +1954-02-02,291.84,291.88,289.75,291.17,1420000,291.17 +1954-02-01,292.39,293.50,290.46,291.84,1740000,291.84 +1954-01-29,291.51,293.81,290.86,292.39,1950000,292.39 +1954-01-28,292.22,293.12,289.81,291.51,1730000,291.51 +1954-01-27,292.85,294.56,291.53,292.22,2020000,292.22 +1954-01-26,290.40,293.44,290.11,292.85,2120000,292.85 +1954-01-25,289.65,291.29,288.27,290.40,1860000,290.40 +1954-01-22,289.48,290.86,288.18,289.65,1890000,289.65 +1954-01-21,289.14,290.66,287.68,289.48,1780000,289.48 +1954-01-20,288.27,290.15,287.58,289.14,1960000,289.14 +1954-01-19,286.03,289.14,285.24,288.27,1840000,288.27 +1954-01-18,286.72,287.78,284.69,286.03,1580000,286.03 +1954-01-15,284.49,288.10,284.49,286.72,2180000,286.72 +1954-01-14,283.03,285.67,282.83,284.49,1530000,284.49 +1954-01-13,281.51,284.37,281.12,283.03,1420000,283.03 +1954-01-12,279.87,282.54,279.46,281.51,1250000,281.51 +1954-01-11,281.51,281.67,278.91,279.87,1220000,279.87 +1954-01-08,282.60,283.01,280.39,281.51,1260000,281.51 +1954-01-07,283.96,284.86,281.83,282.60,1540000,282.60 +1954-01-06,284.19,285.67,283.05,283.96,1460000,283.96 +1954-01-05,282.89,285.34,282.65,284.19,1520000,284.19 +1954-01-04,280.90,283.48,279.72,282.89,1310000,282.89 +1953-12-31,280.43,282.18,279.52,280.90,2490000,280.90 +1953-12-30,278.30,281.08,277.92,280.43,2050000,280.43 +1953-12-29,279.74,279.74,275.91,278.30,2140000,278.30 +1953-12-28,280.92,281.25,278.81,279.91,1570000,279.91 +1953-12-24,279.84,281.69,279.15,280.92,1270000,280.92 +1953-12-23,279.99,281.11,278.14,279.84,1570000,279.84 +1953-12-22,282.85,282.85,278.95,279.99,1720000,279.99 +1953-12-21,283.54,284.69,282.38,282.99,1690000,282.99 +1953-12-18,282.67,284.35,281.71,283.54,1550000,283.54 +1953-12-17,282.87,284.55,281.57,282.67,1600000,282.67 +1953-12-16,279.52,283.88,279.36,282.87,1880000,282.87 +1953-12-15,279.26,280.27,277.49,279.52,1450000,279.52 +1953-12-14,279.91,280.98,278.18,279.26,1540000,279.26 +1953-12-11,279.89,280.76,278.38,279.91,1440000,279.91 +1953-12-10,281.12,281.53,278.93,279.89,1420000,279.89 +1953-12-09,281.45,282.54,279.78,281.12,1410000,281.12 +1953-12-08,282.00,282.48,279.34,281.45,1390000,281.45 +1953-12-07,282.71,283.50,281.20,282.00,1410000,282.00 +1953-12-04,283.25,284.11,281.55,282.71,1390000,282.71 +1953-12-03,282.81,285.20,282.10,283.25,1740000,283.25 +1953-12-02,281.10,283.74,280.33,282.81,1850000,282.81 +1953-12-01,281.37,282.08,279.46,281.10,1580000,281.10 +1953-11-30,280.23,282.46,279.80,281.37,1960000,281.37 +1953-11-27,277.78,280.78,277.19,280.23,1600000,280.23 +1953-11-25,277.13,278.87,276.40,277.78,1540000,277.78 +1953-11-24,275.42,277.61,274.26,277.13,1470000,277.13 +1953-11-23,276.05,276.58,273.80,275.42,1410000,275.42 +1953-11-20,276.09,277.47,274.79,276.05,1300000,276.05 +1953-11-19,274.51,277.02,274.16,276.09,1420000,276.09 +1953-11-18,273.88,275.52,273.05,274.51,1250000,274.51 +1953-11-17,275.58,275.58,273.01,273.88,1250000,273.88 +1953-11-16,277.53,278.57,275.48,275.93,1490000,275.93 +1953-11-13,276.23,278.08,275.16,277.53,1540000,277.53 +1953-11-12,275.89,277.65,274.63,276.23,1390000,276.23 +1953-11-10,277.86,277.86,275.06,275.89,1340000,275.89 +1953-11-09,278.83,279.93,276.80,278.26,1440000,278.26 +1953-11-06,279.09,280.25,277.57,278.83,1700000,278.83 +1953-11-05,276.82,280.33,276.80,279.09,1720000,279.09 +1953-11-04,276.72,277.72,274.83,276.82,1480000,276.82 +1953-11-02,275.81,278.18,274.83,276.72,1340000,276.72 +1953-10-30,276.31,277.04,274.87,275.81,1400000,275.81 +1953-10-29,274.14,276.94,273.92,276.31,1610000,276.31 +1953-10-28,273.35,274.69,272.13,274.14,1260000,274.14 +1953-10-27,274.33,274.33,271.85,273.35,1170000,273.35 +1953-10-26,275.34,276.56,273.88,274.43,1340000,274.43 +1953-10-23,274.89,276.52,274.12,275.34,1330000,275.34 +1953-10-22,273.74,275.77,272.97,274.89,1330000,274.89 +1953-10-21,273.90,274.61,272.30,273.74,1320000,273.74 +1953-10-20,273.31,275.16,272.36,273.90,1280000,273.90 +1953-10-19,272.80,273.78,271.14,273.31,1190000,273.31 +1953-10-16,271.22,273.94,271.02,272.80,1620000,272.80 +1953-10-15,267.51,271.81,267.41,271.22,1710000,271.22 +1953-10-14,266.09,268.22,265.64,267.51,1290000,267.51 +1953-10-13,267.04,267.69,265.36,266.09,1130000,266.09 +1953-10-09,266.72,267.69,265.52,267.04,900000,267.04 +1953-10-08,266.53,267.97,265.96,266.72,960000,266.72 +1953-10-07,264.26,266.86,263.57,266.53,1010000,266.53 +1953-10-06,265.25,265.25,262.45,264.26,1100000,264.26 +1953-10-05,266.70,267.59,264.52,265.48,930000,265.48 +1953-10-02,265.68,267.59,265.32,266.70,890000,266.70 +1953-10-01,264.04,266.47,263.79,265.68,940000,265.68 +1953-09-30,264.77,265.38,262.94,264.04,940000,264.04 +1953-09-29,264.79,266.61,263.90,264.77,1170000,264.77 +1953-09-28,263.31,265.86,263.16,264.79,1150000,264.79 +1953-09-25,262.45,264.06,261.78,263.31,910000,263.31 +1953-09-24,262.35,263.83,261.36,262.45,1020000,262.45 +1953-09-23,261.40,263.83,261.40,262.35,1240000,262.35 +1953-09-22,258.01,261.89,257.85,261.28,1300000,261.28 +1953-09-21,258.78,260.00,257.36,258.01,1070000,258.01 +1953-09-18,259.84,259.84,257.65,258.78,1190000,258.78 +1953-09-17,259.07,261.30,258.42,259.88,1290000,259.88 +1953-09-16,257.97,260.95,257.97,259.07,1570000,259.07 +1953-09-15,255.49,258.68,254.36,257.67,2850000,257.67 +1953-09-14,259.71,260.20,255.29,255.49,2550000,255.49 +1953-09-11,262.37,262.37,258.94,259.71,1930000,259.71 +1953-09-10,265.38,265.38,262.58,262.88,1010000,262.88 +1953-09-09,265.42,266.23,264.56,265.48,860000,265.48 +1953-09-08,264.34,266.23,264.04,265.42,740000,265.42 +1953-09-04,263.61,265.09,262.70,264.34,770000,264.34 +1953-09-03,263.96,264.65,262.50,263.61,900000,263.61 +1953-09-02,262.54,265.21,262.43,263.96,1110000,263.96 +1953-09-01,261.22,263.23,260.32,262.54,1580000,262.54 +1953-08-31,265.70,265.70,260.83,261.22,2190000,261.22 +1953-08-28,265.68,266.86,264.89,265.74,1060000,265.74 +1953-08-27,266.51,267.45,264.65,265.68,1290000,265.68 +1953-08-26,267.45,269.17,266.27,266.51,1060000,266.51 +1953-08-25,268.70,268.83,265.92,267.45,1470000,267.45 +1953-08-24,271.93,271.99,268.06,268.70,1320000,268.70 +1953-08-21,271.73,272.80,270.81,271.93,850000,271.93 +1953-08-20,271.50,272.66,270.41,271.73,860000,271.73 +1953-08-19,273.01,273.01,270.06,271.50,1400000,271.50 +1953-08-18,275.04,275.91,273.13,273.29,1030000,273.29 +1953-08-17,275.71,276.13,273.92,275.04,910000,275.04 +1953-08-14,276.74,277.33,274.89,275.71,1000000,275.71 +1953-08-13,276.42,278.30,275.75,276.74,1040000,276.74 +1953-08-12,275.30,276.92,273.98,276.42,990000,276.42 +1953-08-11,275.32,276.05,273.72,275.30,940000,275.30 +1953-08-10,275.54,276.48,274.39,275.32,1090000,275.32 +1953-08-07,275.77,276.46,274.20,275.54,950000,275.54 +1953-08-06,275.08,276.54,274.63,275.77,1200000,275.77 +1953-08-05,275.40,275.40,273.19,275.08,1080000,275.08 +1953-08-04,276.13,276.46,274.28,275.68,1000000,275.68 +1953-08-03,275.38,277.19,274.71,276.13,1160000,276.13 +1953-07-31,272.82,275.85,272.58,275.38,1320000,275.38 +1953-07-30,270.49,273.41,270.49,272.82,1200000,272.82 +1953-07-29,269.13,271.16,268.83,270.43,1000000,270.43 +1953-07-28,268.46,269.52,267.30,269.13,1080000,269.13 +1953-07-27,269.76,270.71,267.83,268.46,1210000,268.46 +1953-07-24,269.94,270.92,268.79,269.76,890000,269.76 +1953-07-23,269.39,271.14,268.89,269.94,1000000,269.94 +1953-07-22,268.99,270.23,267.95,269.39,900000,269.39 +1953-07-21,269.74,269.90,268.28,268.99,850000,268.99 +1953-07-20,270.94,270.94,268.85,269.74,830000,269.74 +1953-07-17,269.41,271.59,268.95,270.96,840000,270.96 +1953-07-16,268.75,270.17,268.48,269.41,790000,269.41 +1953-07-15,268.06,270.02,267.73,268.75,840000,268.75 +1953-07-14,268.52,269.19,266.96,268.06,1030000,268.06 +1953-07-13,271.06,271.16,268.08,268.52,1120000,268.52 +1953-07-10,271.32,271.93,270.31,271.06,860000,271.06 +1953-07-09,272.19,272.38,270.98,271.32,910000,271.32 +1953-07-08,272.13,272.82,271.06,272.19,950000,272.19 +1953-07-07,270.88,272.60,270.17,272.13,1030000,272.13 +1953-07-06,270.53,271.71,269.94,270.88,820000,270.88 +1953-07-03,270.23,271.44,269.41,270.53,830000,270.53 +1953-07-02,269.39,271.20,269.15,270.23,1030000,270.23 +1953-07-01,268.26,269.90,267.51,269.39,910000,269.39 +1953-06-30,268.20,269.03,267.06,268.26,820000,268.26 +1953-06-29,269.05,269.70,267.26,268.20,800000,268.20 +1953-06-26,268.93,269.70,268.01,269.05,830000,269.05 +1953-06-25,267.85,270.31,267.85,268.93,1160000,268.93 +1953-06-24,268.48,269.11,266.80,267.79,1030000,267.79 +1953-06-23,267.26,269.15,266.68,268.48,1050000,268.48 +1953-06-22,265.88,268.70,265.88,267.26,1030000,267.26 +1953-06-19,265.86,266.53,264.24,265.80,890000,265.80 +1953-06-18,265.74,267.20,264.93,265.86,1010000,265.86 +1953-06-17,262.88,266.57,262.88,265.74,1150000,265.74 +1953-06-16,263.87,264.10,260.75,262.88,1370000,262.88 +1953-06-15,265.78,266.41,263.12,263.87,1090000,263.87 +1953-06-12,264.99,266.86,264.59,265.78,920000,265.78 +1953-06-11,263.39,266.68,263.39,264.99,1220000,264.99 +1953-06-10,263.39,264.18,260.89,263.35,1960000,263.35 +1953-06-09,267.91,268.14,262.90,263.39,2200000,263.39 +1953-06-08,268.32,269.46,267.28,267.91,1000000,267.91 +1953-06-05,267.63,269.33,266.57,268.32,1160000,268.32 +1953-06-04,269.60,269.98,266.17,267.63,1400000,267.63 +1953-06-03,269.84,271.77,268.99,269.60,1050000,269.60 +1953-06-02,268.40,270.41,267.00,269.84,1450000,269.84 +1953-06-01,272.28,272.64,267.91,268.40,1490000,268.40 +1953-05-29,271.48,273.07,270.88,272.28,920000,272.28 +1953-05-28,273.76,273.76,270.65,271.48,1240000,271.48 +1953-05-27,276.37,276.58,273.53,273.96,1330000,273.96 +1953-05-26,277.43,277.43,275.12,276.37,1160000,276.37 +1953-05-25,278.16,278.73,276.82,277.47,1180000,277.47 +1953-05-22,278.51,279.28,276.72,278.16,1350000,278.16 +1953-05-21,278.04,279.84,277.63,278.51,1590000,278.51 +1953-05-20,275.91,278.53,275.12,278.04,1690000,278.04 +1953-05-19,276.92,277.04,274.81,275.91,1120000,275.91 +1953-05-18,277.90,278.14,275.75,276.92,1080000,276.92 +1953-05-15,277.96,279.18,276.70,277.90,1200000,277.90 +1953-05-14,276.80,278.71,276.25,277.96,1210000,277.96 +1953-05-13,277.09,277.59,275.10,276.80,1120000,276.80 +1953-05-12,278.79,278.91,276.29,277.09,1080000,277.09 +1953-05-11,278.22,279.78,277.59,278.79,1010000,278.79 +1953-05-08,277.43,278.55,275.85,278.22,1220000,278.22 +1953-05-07,278.14,278.65,276.54,277.43,1110000,277.43 +1953-05-06,278.22,279.32,276.94,278.14,1110000,278.14 +1953-05-05,278.34,280.01,277.31,278.22,1290000,278.22 +1953-05-04,275.66,279.46,275.52,278.34,1520000,278.34 +1953-05-01,274.75,276.33,273.59,275.66,1200000,275.66 +1953-04-30,275.38,276.07,273.31,274.75,1140000,274.75 +1953-04-29,273.96,276.37,273.31,275.38,1310000,275.38 +1953-04-28,272.70,274.59,271.32,273.96,1330000,273.96 +1953-04-27,271.30,274.14,271.30,272.70,1400000,272.70 +1953-04-24,270.73,272.30,269.25,271.26,1780000,271.26 +1953-04-23,273.51,273.51,270.15,270.73,1920000,270.73 +1953-04-22,275.48,275.93,272.86,273.55,1390000,273.55 +1953-04-21,275.99,277.88,274.67,275.48,1250000,275.48 +1953-04-20,274.41,276.62,272.80,275.99,1520000,275.99 +1953-04-17,276.74,276.86,273.70,274.41,1430000,274.41 +1953-04-16,277.35,278.51,275.97,276.74,1310000,276.74 +1953-04-15,276.01,278.79,276.01,277.35,1580000,277.35 +1953-04-14,274.73,276.76,273.86,275.85,1480000,275.85 +1953-04-13,275.50,276.46,274.10,274.73,1280000,274.73 +1953-04-10,276.23,276.52,274.28,275.50,1360000,275.50 +1953-04-09,276.84,278.08,274.83,276.23,1520000,276.23 +1953-04-08,275.38,278.85,275.38,276.84,1860000,276.84 +1953-04-07,274.10,276.33,271.99,275.16,2500000,275.16 +1953-04-06,279.42,279.42,272.40,274.10,3050000,274.10 +1953-04-02,280.09,281.81,279.26,280.03,1720000,280.03 +1953-04-01,279.87,281.47,277.53,280.09,2240000,280.09 +1953-03-31,282.73,282.73,277.57,279.87,3120000,279.87 +1953-03-30,286.16,286.16,281.59,283.07,2740000,283.07 +1953-03-27,286.60,288.63,285.97,287.33,1640000,287.33 +1953-03-26,287.98,289.08,285.63,286.60,2000000,286.60 +1953-03-25,288.83,290.78,287.47,287.98,2320000,287.98 +1953-03-24,287.39,289.18,286.72,288.83,1970000,288.83 +1953-03-23,289.69,289.69,286.74,287.39,1750000,287.39 +1953-03-20,289.97,291.01,288.63,289.69,1730000,289.69 +1953-03-19,290.32,291.09,288.49,289.97,1840000,289.97 +1953-03-18,290.64,291.96,289.26,290.32,2110000,290.32 +1953-03-17,289.52,291.78,289.10,290.64,2110000,290.64 +1953-03-16,289.04,290.52,288.08,289.52,1770000,289.52 +1953-03-13,288.00,289.59,286.76,289.04,1760000,289.04 +1953-03-12,288.02,289.14,286.70,288.00,1780000,288.00 +1953-03-11,285.22,288.75,284.94,288.02,1890000,288.02 +1953-03-10,284.90,285.97,283.17,285.22,1530000,285.22 +1953-03-09,284.82,285.99,283.88,284.90,1600000,284.90 +1953-03-06,283.86,285.28,283.01,284.82,1690000,284.82 +1953-03-05,283.70,284.84,282.46,283.86,1540000,283.86 +1953-03-04,284.71,286.09,282.52,283.70,2010000,283.70 +1953-03-03,284.71,286.40,283.84,285.99,1850000,285.99 +1953-03-02,284.27,285.67,283.09,284.71,1760000,284.71 +1953-02-27,284.35,285.40,282.32,284.27,1990000,284.27 +1953-02-26,284.45,285.95,283.27,284.35,2290000,284.35 +1953-02-25,282.99,285.22,281.93,284.45,2360000,284.45 +1953-02-24,282.04,285.04,282.04,282.99,2300000,282.99 +1953-02-20,281.55,283.29,280.74,281.89,1400000,281.89 +1953-02-19,281.14,283.01,280.51,281.55,1390000,281.55 +1953-02-18,281.51,281.96,279.72,281.14,1220000,281.14 +1953-02-17,282.18,282.73,280.23,281.51,1290000,281.51 +1953-02-16,283.11,284.25,281.71,282.18,1330000,282.18 +1953-02-13,281.57,283.86,281.10,283.11,1350000,283.11 +1953-02-11,281.67,283.05,280.53,281.57,1240000,281.57 +1953-02-10,281.96,283.50,280.84,281.67,1350000,281.67 +1953-02-09,282.85,283.31,279.93,281.96,1780000,281.96 +1953-02-06,286.20,286.42,282.14,282.85,1870000,282.85 +1953-02-05,289.04,289.04,285.16,286.20,1900000,286.20 +1953-02-04,290.19,290.84,288.33,289.08,1660000,289.08 +1953-02-03,290.03,290.88,287.90,290.19,1560000,290.19 +1953-02-02,289.77,290.94,288.00,290.03,1890000,290.03 +1953-01-30,287.96,290.46,287.54,289.77,1760000,289.77 +1953-01-29,287.39,289.12,286.44,287.96,1830000,287.96 +1953-01-28,286.81,288.21,285.87,287.39,1640000,287.39 +1953-01-27,286.54,287.96,285.75,286.81,1550000,286.81 +1953-01-26,286.89,287.68,285.12,286.54,1420000,286.54 +1953-01-23,287.84,288.59,285.77,286.89,1340000,286.89 +1953-01-22,287.60,288.87,286.70,287.84,1380000,287.84 +1953-01-21,288.00,288.63,286.56,287.60,1300000,287.60 +1953-01-20,286.97,289.16,286.28,288.00,1490000,288.00 +1953-01-19,287.17,287.98,285.30,286.97,1360000,286.97 +1953-01-16,288.18,288.90,285.12,287.17,1710000,287.17 +1953-01-15,287.37,288.85,286.40,288.18,1450000,288.18 +1953-01-14,286.85,288.47,285.63,287.37,1370000,287.37 +1953-01-13,285.24,288.63,285.10,286.85,1680000,286.85 +1953-01-12,287.52,287.88,284.29,285.24,1500000,285.24 +1953-01-09,290.36,290.46,286.09,287.52,2080000,287.52 +1953-01-08,290.76,292.02,289.48,290.36,1780000,290.36 +1953-01-07,291.96,291.96,288.69,290.76,1760000,290.76 +1953-01-06,293.79,294.25,290.25,292.18,2080000,292.18 +1953-01-05,292.14,295.06,291.51,293.79,2130000,293.79 +1953-01-02,291.90,293.56,290.30,292.14,1450000,292.14 +1952-12-31,292.00,293.50,290.86,291.90,2050000,291.90 +1952-12-30,289.65,292.83,289.46,292.00,2070000,292.00 +1952-12-29,288.23,290.74,287.66,289.65,1820000,289.65 +1952-12-26,287.37,289.10,285.67,288.23,1290000,288.23 +1952-12-24,286.99,288.59,285.69,287.37,1510000,287.37 +1952-12-23,288.02,289.18,286.22,286.99,2100000,286.99 +1952-12-22,286.52,288.85,285.55,288.02,2100000,288.02 +1952-12-19,285.36,287.15,284.55,286.52,2050000,286.52 +1952-12-18,285.67,286.68,284.41,285.36,1860000,285.36 +1952-12-17,286.16,286.95,284.55,285.67,1700000,285.67 +1952-12-16,285.99,287.58,285.00,286.16,1980000,286.16 +1952-12-15,285.20,287.13,284.45,285.99,1940000,285.99 +1952-12-12,284.57,286.18,283.76,285.20,2030000,285.20 +1952-12-11,284.55,285.69,283.48,284.57,1790000,284.57 +1952-12-10,285.12,286.03,282.77,284.55,1880000,284.55 +1952-12-09,283.62,286.32,283.25,285.12,2120000,285.12 +1952-12-08,282.06,284.37,281.45,283.62,1790000,283.62 +1952-12-05,281.63,283.03,280.68,282.06,1510000,282.06 +1952-12-04,282.89,283.82,281.10,281.63,1570000,281.63 +1952-12-03,283.78,284.69,282.00,282.89,1610000,282.89 +1952-12-02,283.70,284.65,281.89,283.78,1610000,283.78 +1952-12-01,283.66,285.20,282.58,283.70,2100000,283.70 +1952-11-28,282.44,284.65,281.59,283.66,2160000,283.66 +1952-11-26,280.90,283.13,279.93,282.44,1920000,282.44 +1952-11-25,281.08,282.32,279.99,280.90,1930000,280.90 +1952-11-24,279.32,281.59,278.67,281.08,2100000,281.08 +1952-11-21,279.50,280.31,278.16,279.32,1760000,279.32 +1952-11-20,280.05,280.80,278.02,279.50,1740000,279.50 +1952-11-19,278.04,281.16,277.78,280.05,2350000,280.05 +1952-11-18,274.45,279.03,274.20,278.04,2250000,278.04 +1952-11-17,273.27,275.16,272.44,274.45,1490000,274.45 +1952-11-14,272.54,274.10,271.22,273.27,1700000,273.27 +1952-11-13,271.97,273.68,271.16,272.54,1330000,272.54 +1952-11-12,273.47,274.28,271.30,271.97,1490000,271.97 +1952-11-10,273.47,274.39,272.11,273.47,1360000,273.47 +1952-11-07,272.58,274.77,271.89,273.47,1540000,273.47 +1952-11-06,271.30,273.82,268.89,272.58,1390000,272.58 +1952-11-05,270.65,274.77,270.65,271.30,2030000,271.30 +1952-11-03,269.23,271.53,268.79,270.23,1670000,270.23 +1952-10-31,265.78,269.96,265.78,269.23,1760000,269.23 +1952-10-30,265.46,266.57,264.54,265.72,1090000,265.72 +1952-10-29,265.72,266.72,264.65,265.46,1020000,265.46 +1952-10-28,265.90,266.80,264.87,265.72,1080000,265.72 +1952-10-27,265.46,266.65,264.73,265.90,1000000,265.90 +1952-10-24,263.87,266.31,263.39,265.46,1060000,265.46 +1952-10-23,263.06,264.93,262.01,263.87,1260000,263.87 +1952-10-22,265.64,265.64,262.60,263.06,1160000,263.06 +1952-10-21,266.63,267.18,265.09,265.84,990000,265.84 +1952-10-20,267.30,268.06,265.37,266.63,1050000,266.63 +1952-10-17,265.21,268.36,265.21,267.30,1360000,267.30 +1952-10-16,267.12,267.45,263.33,264.87,1730000,264.87 +1952-10-15,270.43,270.59,266.09,267.12,1730000,267.12 +1952-10-14,270.61,271.59,269.48,270.43,1130000,270.43 +1952-10-10,270.98,271.81,269.94,270.61,1070000,270.61 +1952-10-09,271.40,272.36,270.15,270.98,1090000,270.98 +1952-10-08,269.88,271.91,269.52,271.40,1260000,271.40 +1952-10-07,270.00,271.04,268.97,269.88,950000,269.88 +1952-10-06,270.55,271.20,269.29,270.00,1070000,270.00 +1952-10-03,270.75,271.85,269.52,270.55,980000,270.55 +1952-10-02,270.17,271.55,269.72,270.75,1040000,270.75 +1952-10-01,270.61,271.08,269.21,270.17,1060000,270.17 +1952-09-30,271.73,272.21,269.98,270.61,1120000,270.61 +1952-09-29,271.95,272.76,270.51,271.73,970000,271.73 +1952-09-26,272.42,273.33,271.14,271.95,1180000,271.95 +1952-09-25,272.26,273.74,271.44,272.42,1210000,272.42 +1952-09-24,271.65,273.19,271.06,272.26,1390000,272.26 +1952-09-23,270.77,272.24,269.48,271.65,1240000,271.65 +1952-09-22,270.55,272.09,269.56,270.77,1160000,270.77 +1952-09-19,269.72,271.26,268.62,270.55,1150000,270.55 +1952-09-18,270.43,271.12,268.81,269.72,1030000,269.72 +1952-09-17,269.03,271.18,268.89,270.43,1000000,270.43 +1952-09-16,268.38,269.74,267.08,269.03,1140000,269.03 +1952-09-15,271.02,271.14,267.91,268.38,1100000,268.38 +1952-09-12,272.11,272.46,269.66,271.02,1040000,271.02 +1952-09-11,271.65,273.25,270.90,272.11,970000,272.11 +1952-09-10,273.01,273.01,269.56,271.65,1590000,271.65 +1952-09-09,275.87,276.29,273.13,273.53,1310000,273.53 +1952-09-08,276.50,277.55,275.38,275.87,1170000,275.87 +1952-09-05,276.76,277.43,275.18,276.50,1040000,276.50 +1952-09-04,277.15,278.10,276.03,276.76,1120000,276.76 +1952-09-03,276.40,278.16,275.95,277.15,1200000,277.15 +1952-09-02,275.10,277.25,275.10,276.40,970000,276.40 +1952-08-29,274.41,275.93,274.12,275.04,890000,275.04 +1952-08-28,273.84,275.28,273.35,274.41,980000,274.41 +1952-08-27,273.17,274.33,272.72,273.84,930000,273.84 +1952-08-26,273.57,274.37,272.28,273.17,890000,273.17 +1952-08-25,274.43,274.61,272.86,273.57,840000,273.57 +1952-08-22,274.45,275.24,273.74,274.43,910000,274.43 +1952-08-21,274.35,275.24,273.43,274.45,800000,274.45 +1952-08-20,274.14,275.62,273.41,274.35,960000,274.35 +1952-08-19,274.31,275.06,272.95,274.14,980000,274.14 +1952-08-18,277.19,277.19,273.90,274.31,1090000,274.31 +1952-08-15,277.75,278.61,276.54,277.37,890000,277.37 +1952-08-14,277.88,278.75,277.04,277.75,930000,277.75 +1952-08-13,278.14,278.81,276.62,277.88,990000,277.88 +1952-08-12,280.03,280.03,277.39,278.14,1110000,278.14 +1952-08-11,279.84,281.47,279.15,280.29,1160000,280.29 +1952-08-08,279.38,280.92,278.49,279.84,1170000,279.84 +1952-08-07,279.07,280.09,278.34,279.38,1180000,279.38 +1952-08-06,279.50,280.21,277.88,279.07,1140000,279.07 +1952-08-05,279.87,280.03,277.96,279.50,1050000,279.50 +1952-08-04,279.80,280.51,278.59,279.87,950000,279.87 +1952-08-01,279.56,280.49,278.81,279.80,1050000,279.80 +1952-07-31,279.24,280.25,278.34,279.56,1230000,279.56 +1952-07-30,278.57,280.07,277.78,279.24,1240000,279.24 +1952-07-29,277.94,279.40,277.17,278.57,1010000,278.57 +1952-07-28,277.71,278.95,276.92,277.94,1030000,277.94 +1952-07-25,279.26,279.76,277.02,277.71,1130000,277.71 +1952-07-24,277.63,280.05,277.63,279.26,1270000,279.26 +1952-07-23,275.95,278.28,275.64,277.63,1020000,277.63 +1952-07-22,274.91,276.54,274.14,275.95,910000,275.95 +1952-07-21,273.90,275.54,273.17,274.91,780000,274.91 +1952-07-18,275.62,275.85,273.11,273.90,1020000,273.90 +1952-07-17,276.76,277.17,274.95,275.62,1010000,275.62 +1952-07-16,276.76,278.02,275.83,276.76,1120000,276.76 +1952-07-15,275.08,277.35,274.81,276.76,1220000,276.76 +1952-07-14,274.22,276.07,274.06,275.08,1090000,275.08 +1952-07-11,272.58,274.89,272.28,274.22,1040000,274.22 +1952-07-10,273.25,273.80,271.73,272.58,1010000,272.58 +1952-07-09,274.43,275.62,272.93,273.25,1120000,273.25 +1952-07-08,274.20,275.10,273.51,274.43,850000,274.43 +1952-07-07,274.95,275.58,273.27,274.20,1080000,274.20 +1952-07-03,274.87,275.64,273.59,274.95,1150000,274.95 +1952-07-02,275.46,276.09,273.86,274.87,1320000,274.87 +1952-07-01,274.26,276.25,273.94,275.46,1450000,275.46 +1952-06-30,272.44,274.97,272.30,274.26,1380000,274.26 +1952-06-27,271.24,272.95,270.77,272.44,1210000,272.44 +1952-06-26,270.45,271.85,269.88,271.24,1190000,271.24 +1952-06-25,269.92,270.98,268.75,270.45,1230000,270.45 +1952-06-24,269.50,270.47,268.81,269.92,1200000,269.92 +1952-06-23,270.19,271.28,268.64,269.50,1200000,269.50 +1952-06-20,269.54,270.84,268.89,270.19,1190000,270.19 +1952-06-19,269.09,270.59,268.40,269.54,1320000,269.54 +1952-06-18,268.03,269.48,267.63,269.09,1270000,269.09 +1952-06-17,267.83,268.68,266.80,268.03,920000,268.03 +1952-06-16,268.56,269.15,267.28,267.83,980000,267.83 +1952-06-13,267.91,269.17,267.28,268.56,1130000,268.56 +1952-06-12,267.93,269.03,266.90,267.91,1370000,267.91 +1952-06-11,267.67,268.52,266.33,267.93,1190000,267.93 +1952-06-10,269.15,269.15,266.76,267.67,1220000,267.67 +1952-06-09,268.03,269.92,267.67,269.15,1270000,269.15 +1952-06-06,266.29,268.95,266.21,268.03,1520000,268.03 +1952-06-05,263.77,266.80,263.77,266.29,1410000,266.29 +1952-06-04,262.09,264.20,261.91,263.67,1200000,263.67 +1952-06-03,262.31,262.82,260.83,262.09,940000,262.09 +1952-06-02,262.94,264.61,261.48,262.31,1190000,262.31 +1952-05-29,262.78,263.51,261.62,262.94,1100000,262.94 +1952-05-28,263.92,264.54,262.25,262.78,1130000,262.78 +1952-05-27,264.22,265.17,262.82,263.92,1040000,263.92 +1952-05-26,263.23,264.87,262.62,264.22,940000,264.22 +1952-05-23,263.33,264.59,262.54,263.27,1150000,263.27 +1952-05-22,261.78,264.02,261.54,263.33,1360000,263.33 +1952-05-21,261.26,262.78,260.89,261.78,1210000,261.78 +1952-05-20,260.06,262.66,259.51,261.26,1150000,261.26 +1952-05-19,259.88,261.12,259.15,260.06,780000,260.06 +1952-05-16,260.10,260.93,259.00,259.82,910000,259.82 +1952-05-15,260.99,261.07,258.66,260.10,1050000,260.10 +1952-05-14,261.99,262.62,260.26,260.99,950000,260.99 +1952-05-13,261.72,263.04,260.87,261.99,890000,261.99 +1952-05-12,262.50,262.86,260.83,261.72,800000,261.72 +1952-05-09,262.39,263.47,260.99,262.74,960000,262.74 +1952-05-08,261.99,263.77,261.58,262.39,1230000,262.39 +1952-05-07,261.01,262.70,259.96,261.99,1120000,261.99 +1952-05-06,261.54,262.29,260.02,261.01,1120000,261.01 +1952-05-05,260.55,261.95,259.35,261.54,860000,261.54 +1952-05-02,257.67,260.93,257.67,260.00,1300000,260.00 +1952-05-01,257.44,257.44,254.70,256.35,1400000,256.35 +1952-04-30,259.34,259.39,257.06,257.63,1000000,257.63 +1952-04-29,259.95,260.52,258.19,259.34,1170000,259.34 +1952-04-28,260.27,260.96,258.65,259.95,980000,259.95 +1952-04-25,258.86,260.08,257.88,259.80,1240000,259.80 +1952-04-24,259.97,260.26,257.04,258.86,1580000,258.86 +1952-04-23,261.10,261.56,259.41,259.97,1090000,259.97 +1952-04-22,261.63,263.03,260.64,261.10,1240000,261.10 +1952-04-21,260.14,262.50,259.60,261.63,1110000,261.63 +1952-04-18,259.85,261.88,258.84,260.52,1240000,260.52 +1952-04-17,261.48,261.60,258.40,259.85,1620000,259.85 +1952-04-16,261.29,263.05,260.03,261.48,1400000,261.48 +1952-04-15,264.10,264.29,260.33,261.29,1720000,261.29 +1952-04-14,266.29,267.11,263.24,264.10,1790000,264.10 +1952-04-10,265.04,266.96,264.31,265.75,1130000,265.75 +1952-04-09,265.29,266.09,263.89,265.04,980000,265.04 +1952-04-08,263.38,265.88,262.57,265.29,1090000,265.29 +1952-04-07,265.31,265.31,262.44,263.38,1230000,263.38 +1952-04-04,266.80,266.86,264.45,265.62,1190000,265.62 +1952-04-03,267.03,267.87,265.81,266.80,1280000,266.80 +1952-04-02,267.22,268.08,265.79,267.03,1260000,267.03 +1952-04-01,269.46,269.81,266.42,267.22,1720000,267.22 +1952-03-31,269.00,270.40,267.17,269.46,1680000,269.46 +1952-03-28,265.21,267.76,265.06,266.96,1560000,266.96 +1952-03-27,263.87,265.88,263.20,265.21,1370000,265.21 +1952-03-26,264.28,265.06,262.82,263.87,1030000,263.87 +1952-03-25,265.52,265.52,263.72,264.28,1060000,264.28 +1952-03-24,265.69,266.48,264.58,265.60,1040000,265.60 +1952-03-21,265.33,267.05,264.93,265.62,1290000,265.62 +1952-03-20,264.37,266.23,263.70,265.33,1240000,265.33 +1952-03-19,264.10,265.16,262.80,264.37,1090000,264.37 +1952-03-18,264.08,265.08,262.59,264.10,1170000,264.10 +1952-03-17,264.43,265.48,263.26,264.08,1150000,264.08 +1952-03-14,264.24,265.46,262.50,264.05,1350000,264.05 +1952-03-13,263.78,265.62,262.65,264.24,1270000,264.24 +1952-03-12,262.76,264.56,261.75,263.78,1310000,263.78 +1952-03-11,262.76,263.80,261.25,262.76,1210000,262.76 +1952-03-10,264.14,264.64,262.32,262.76,1170000,262.76 +1952-03-07,264.03,264.89,262.53,263.87,1410000,263.87 +1952-03-06,264.66,265.04,262.72,264.03,1210000,264.03 +1952-03-05,263.95,266.17,263.61,264.66,1380000,264.66 +1952-03-04,260.35,264.24,260.35,263.95,1570000,263.95 +1952-03-03,260.27,261.17,258.95,260.08,1020000,260.08 +1952-02-29,260.49,261.46,259.36,260.08,1000000,260.08 +1952-02-28,259.68,261.79,259.28,260.49,1150000,260.49 +1952-02-27,259.30,260.49,257.44,259.68,1260000,259.68 +1952-02-26,260.58,260.98,258.69,259.30,1080000,259.30 +1952-02-25,261.40,262.86,259.89,260.58,1200000,260.58 +1952-02-21,258.49,261.63,258.49,259.60,1360000,259.60 +1952-02-20,261.37,261.46,257.46,258.49,1970000,258.49 +1952-02-19,265.14,265.14,260.93,261.37,1630000,261.37 +1952-02-18,266.30,266.94,264.35,265.35,1140000,265.35 +1952-02-15,265.88,267.57,265.29,266.27,1200000,266.27 +1952-02-14,266.21,266.67,264.54,265.88,1340000,265.88 +1952-02-13,268.37,268.37,265.52,266.21,1300000,266.21 +1952-02-11,269.83,269.88,267.57,268.45,1140000,268.45 +1952-02-08,268.35,270.48,267.61,269.85,1350000,269.85 +1952-02-07,268.77,269.50,267.05,268.35,1170000,268.35 +1952-02-06,269.04,270.27,267.38,268.77,1310000,268.77 +1952-02-05,269.79,270.17,266.80,269.04,1590000,269.04 +1952-02-04,272.51,272.64,268.79,269.79,1640000,269.79 +1952-02-01,270.69,272.91,269.94,271.68,1350000,271.68 +1952-01-31,270.71,272.18,268.05,270.69,1810000,270.69 +1952-01-30,274.00,275.38,270.53,270.71,1880000,270.71 +1952-01-29,274.17,275.44,272.91,274.00,1730000,274.00 +1952-01-28,273.69,275.13,273.00,274.17,1590000,274.17 +1952-01-25,273.90,275.07,272.43,273.41,1650000,273.41 +1952-01-24,274.27,275.19,272.68,273.90,1570000,273.90 +1952-01-23,275.40,275.95,273.44,274.27,1680000,274.27 +1952-01-22,274.10,276.26,273.58,275.40,1920000,275.40 +1952-01-21,272.93,274.55,272.32,274.10,1730000,274.10 +1952-01-18,271.91,272.69,271.03,272.10,1740000,272.10 +1952-01-17,271.13,273.00,270.53,271.91,1590000,271.91 +1952-01-16,270.46,272.28,269.27,271.13,1430000,271.13 +1952-01-15,271.59,272.09,269.44,270.46,1340000,270.46 +1952-01-14,270.73,272.70,270.36,271.59,1510000,271.59 +1952-01-11,269.46,271.20,268.74,270.31,1760000,270.31 +1952-01-10,268.14,271.09,268.14,269.46,1520000,269.46 +1952-01-09,268.66,270.04,266.34,268.08,1370000,268.08 +1952-01-08,270.34,270.98,268.14,268.66,1390000,268.66 +1952-01-07,271.26,272.60,269.94,270.34,1540000,270.34 +1952-01-04,270.38,271.95,269.73,271.03,1480000,271.03 +1952-01-03,269.86,271.28,268.58,270.38,1220000,270.38 +1952-01-02,269.23,271.01,268.24,269.86,1070000,269.86 +1951-12-31,268.52,270.00,267.84,269.23,1440000,269.23 +1951-12-28,266.74,269.02,266.30,268.18,1470000,268.18 +1951-12-27,264.06,267.26,263.85,266.74,1460000,266.74 +1951-12-26,265.79,266.67,263.26,264.06,1520000,264.06 +1951-12-24,265.94,266.69,264.91,265.79,680000,265.79 +1951-12-21,267.45,267.78,265.37,266.34,1250000,266.34 +1951-12-20,267.61,268.91,266.42,267.45,1340000,267.45 +1951-12-19,266.61,268.93,265.92,267.61,1510000,267.61 +1951-12-18,265.79,267.45,265.14,266.61,1290000,266.61 +1951-12-17,265.48,266.71,264.50,265.79,1220000,265.79 +1951-12-14,265.81,267.07,264.60,265.71,1360000,265.71 +1951-12-13,266.09,266.92,264.56,265.81,1380000,265.81 +1951-12-12,265.77,267.24,264.33,266.09,1280000,266.09 +1951-12-11,267.38,267.68,265.14,265.77,1360000,265.77 +1951-12-10,266.90,268.45,266.07,267.38,1340000,267.38 +1951-12-07,266.23,268.95,265.96,266.99,1990000,266.99 +1951-12-06,263.85,266.90,263.85,266.23,1840000,266.23 +1951-12-05,264.29,265.21,262.71,263.72,1330000,263.72 +1951-12-04,263.24,265.19,262.48,264.29,1280000,264.29 +1951-12-03,262.29,264.77,261.73,263.24,1220000,263.24 +1951-11-30,258.96,261.92,258.68,261.27,1530000,261.27 +1951-11-29,258.64,259.93,257.29,258.96,1070000,258.96 +1951-11-28,259.46,260.43,258.12,258.64,1150000,258.64 +1951-11-27,257.47,260.36,257.47,259.46,1310000,259.46 +1951-11-26,255.95,258.38,255.20,257.44,1180000,257.44 +1951-11-23,258.72,258.89,255.93,256.95,1210000,256.95 +1951-11-21,259.30,260.15,258.16,258.72,1090000,258.72 +1951-11-20,259.70,260.04,257.57,259.30,1130000,259.30 +1951-11-19,260.82,261.36,258.77,259.70,1030000,259.70 +1951-11-16,260.91,261.06,259.00,260.39,1140000,260.39 +1951-11-15,261.27,262.29,260.32,260.91,1200000,260.91 +1951-11-14,260.41,262.01,259.85,261.27,1220000,261.27 +1951-11-13,261.29,262.18,259.39,260.41,1160000,260.41 +1951-11-09,257.81,261.21,257.81,259.91,1470000,259.91 +1951-11-08,257.14,258.35,254.91,257.14,1410000,257.14 +1951-11-07,259.76,260.37,256.58,257.14,1490000,257.14 +1951-11-05,259.57,262.10,258.59,259.76,1130000,259.76 +1951-11-02,264.06,264.37,261.01,261.94,1230000,261.94 +1951-11-01,262.35,265.82,261.86,264.06,1430000,264.06 +1951-10-31,260.52,263.15,258.44,262.35,1490000,262.35 +1951-10-30,260.43,263.46,259.69,260.52,1530000,260.52 +1951-10-29,258.53,261.12,256.39,260.43,1780000,260.43 +1951-10-26,264.17,264.26,260.08,262.27,1710000,262.27 +1951-10-25,264.95,266.20,262.66,264.17,1360000,264.17 +1951-10-24,263.50,266.79,263.22,264.95,1670000,264.95 +1951-10-23,262.29,264.80,259.76,263.50,2110000,263.50 +1951-10-22,265.90,265.90,259.46,262.29,2690000,262.29 +1951-10-19,273.51,274.10,269.23,269.68,1990000,269.68 +1951-10-18,273.53,274.75,272.22,273.51,1450000,273.51 +1951-10-17,274.40,275.24,272.86,273.53,1460000,273.53 +1951-10-16,275.74,276.02,272.50,274.40,1730000,274.40 +1951-10-15,275.13,276.93,274.25,275.74,1720000,275.74 +1951-10-11,272.76,274.68,271.80,274.10,1760000,274.10 +1951-10-10,273.38,274.47,271.46,272.76,1320000,272.76 +1951-10-09,275.14,275.26,272.65,273.38,1750000,273.38 +1951-10-08,275.53,276.59,274.23,275.14,1860000,275.14 +1951-10-05,275.35,277.02,274.21,275.63,2080000,275.63 +1951-10-04,275.87,276.93,274.49,275.35,1810000,275.35 +1951-10-03,274.34,277.30,274.29,275.87,2780000,275.87 +1951-10-02,272.56,275.42,272.13,274.34,1870000,274.34 +1951-10-01,271.16,273.25,270.23,272.56,1330000,272.56 +1951-09-28,271.31,272.24,269.66,271.16,1390000,271.16 +1951-09-27,272.24,272.93,269.77,271.31,1540000,271.31 +1951-09-26,272.24,273.67,270.88,272.24,1520000,272.24 +1951-09-25,270.77,273.51,270.05,272.24,1740000,272.24 +1951-09-24,271.83,271.83,269.08,270.77,1630000,270.77 +1951-09-21,274.10,274.10,270.21,272.11,2180000,272.11 +1951-09-20,274.27,276.02,272.58,274.10,2100000,274.10 +1951-09-19,274.38,276.09,273.08,274.27,2070000,274.27 +1951-09-18,275.09,275.63,271.91,274.38,2030000,274.38 +1951-09-17,276.06,277.12,274.12,275.09,1800000,275.09 +1951-09-14,276.37,277.51,274.01,276.06,2170000,276.06 +1951-09-13,275.31,277.15,274.34,276.37,2350000,276.37 +1951-09-12,273.88,276.56,273.32,275.31,2180000,275.31 +1951-09-11,275.25,276.24,272.63,273.88,2040000,273.88 +1951-09-10,273.89,276.63,273.62,275.25,2190000,275.25 +1951-09-07,272.28,274.54,271.53,273.89,1970000,273.89 +1951-09-06,272.48,273.98,271.23,272.28,2150000,272.28 +1951-09-05,270.63,273.11,270.25,272.48,1850000,272.48 +1951-09-04,270.25,272.28,269.49,270.63,1520000,270.63 +1951-08-31,269.94,271.64,268.58,270.25,1530000,270.25 +1951-08-30,268.18,270.68,267.98,269.94,1950000,269.94 +1951-08-29,265.56,268.62,265.39,268.18,1520000,268.18 +1951-08-28,265.59,266.81,264.42,265.56,1280000,265.56 +1951-08-27,266.30,267.06,264.54,265.59,1080000,265.59 +1951-08-24,265.65,267.53,264.94,266.30,1210000,266.30 +1951-08-23,264.07,266.26,262.89,265.65,1230000,265.65 +1951-08-22,265.30,265.56,262.80,264.07,1130000,264.07 +1951-08-21,266.19,267.66,264.47,265.30,1400000,265.30 +1951-08-20,266.17,267.42,264.98,266.19,1130000,266.19 +1951-08-17,265.48,267.44,264.54,266.17,1620000,266.17 +1951-08-16,264.27,266.63,263.78,265.48,1750000,265.48 +1951-08-15,262.88,264.72,262.04,264.27,1340000,264.27 +1951-08-14,263.06,263.98,261.57,262.88,1180000,262.88 +1951-08-13,261.92,264.76,261.26,263.06,1320000,263.06 +1951-08-10,262.69,263.26,260.67,261.92,1260000,261.92 +1951-08-09,263.73,264.43,261.77,262.69,1500000,262.69 +1951-08-08,264.94,265.52,262.24,263.73,1410000,263.73 +1951-08-07,265.21,266.52,263.85,264.94,1810000,264.94 +1951-08-06,262.98,265.72,261.88,265.21,1600000,265.21 +1951-08-03,262.89,264.78,261.25,262.98,1570000,262.98 +1951-08-02,260.05,264.05,260.05,262.89,2130000,262.89 +1951-08-01,257.86,260.72,256.81,259.89,1680000,259.89 +1951-07-31,260.30,260.30,256.64,257.86,1550000,257.86 +1951-07-30,259.23,262.21,258.89,260.70,1600000,260.70 +1951-07-27,259.09,259.87,256.92,259.23,1450000,259.23 +1951-07-26,258.11,259.94,256.46,259.09,1480000,259.09 +1951-07-25,258.94,260.79,257.33,258.11,1870000,258.11 +1951-07-24,255.68,259.40,255.36,258.94,1740000,258.94 +1951-07-23,253.73,256.35,253.44,255.68,1320000,255.68 +1951-07-20,253.75,255.48,252.78,253.73,1390000,253.73 +1951-07-19,253.67,254.56,252.24,253.75,1120000,253.75 +1951-07-18,253.89,255.18,252.84,253.67,1370000,253.67 +1951-07-17,252.31,254.18,251.05,253.89,1280000,253.89 +1951-07-16,254.32,254.98,251.72,252.31,1200000,252.31 +1951-07-13,252.59,255.36,252.39,254.32,1320000,254.32 +1951-07-12,250.97,253.11,250.70,252.59,1050000,252.59 +1951-07-11,250.00,251.75,249.31,250.97,970000,250.97 +1951-07-10,250.65,251.41,249.09,250.00,990000,250.00 +1951-07-09,250.01,252.10,249.20,250.65,1110000,250.65 +1951-07-06,250.27,251.30,248.78,250.01,1170000,250.01 +1951-07-05,247.01,250.90,247.01,250.27,1410000,250.27 +1951-07-03,244.07,246.77,244.07,245.92,1250000,245.92 +1951-07-02,242.64,244.92,241.06,243.98,1350000,243.98 +1951-06-29,244.00,244.36,240.72,242.64,1730000,242.64 +1951-06-28,246.84,247.22,242.57,244.00,1940000,244.00 +1951-06-27,246.28,247.98,244.90,246.84,1360000,246.84 +1951-06-26,245.30,247.44,244.29,246.28,1260000,246.28 +1951-06-25,245.99,245.99,241.84,245.30,2440000,245.30 +1951-06-22,250.21,250.21,246.66,247.86,1340000,247.86 +1951-06-21,251.57,251.57,249.20,250.43,1100000,250.43 +1951-06-20,253.53,254.47,251.41,251.86,1120000,251.86 +1951-06-19,253.80,254.54,251.70,253.53,1100000,253.53 +1951-06-18,254.03,255.23,252.55,253.80,1050000,253.80 +1951-06-15,252.46,255.05,252.26,254.03,1370000,254.03 +1951-06-14,250.21,253.11,250.21,252.46,1300000,252.46 +1951-06-13,250.57,251.35,248.73,250.03,1060000,250.03 +1951-06-12,251.56,252.64,249.75,250.57,1200000,250.57 +1951-06-11,250.39,252.77,249.76,251.56,1220000,251.56 +1951-06-08,250.81,251.27,249.19,250.39,1000000,250.39 +1951-06-07,249.64,251.73,249.24,250.81,1340000,250.81 +1951-06-06,247.66,250.73,247.66,249.64,1200000,249.64 +1951-06-05,246.79,248.15,244.91,247.59,1180000,247.59 +1951-06-04,249.14,249.14,246.11,246.79,1100000,246.79 +1951-06-01,249.65,250.15,247.85,249.33,9810000,249.33 +1951-05-31,248.44,251.68,248.32,249.65,1220000,249.65 +1951-05-29,247.03,249.52,246.43,248.44,1190000,248.44 +1951-05-28,245.83,248.20,245.60,247.03,1240000,247.03 +1951-05-25,245.78,247.57,244.84,245.27,1210000,245.27 +1951-05-24,246.94,246.94,241.89,245.78,2580000,245.78 +1951-05-23,249.30,249.79,246.58,247.03,1540000,247.03 +1951-05-22,249.98,251.72,248.49,249.30,1440000,249.30 +1951-05-21,250.63,251.36,248.03,249.98,1580000,249.98 +1951-05-18,254.57,255.03,250.01,250.10,1660000,250.10 +1951-05-17,252.40,255.49,252.40,254.57,1370000,254.57 +1951-05-16,252.08,254.19,250.81,252.14,1660000,252.14 +1951-05-15,256.08,256.24,251.02,252.08,2020000,252.08 +1951-05-14,257.26,258.10,255.45,256.08,1250000,256.08 +1951-05-11,260.07,260.93,257.91,258.56,1640000,258.56 +1951-05-10,261.49,261.83,259.14,260.07,1660000,260.07 +1951-05-09,261.10,262.82,260.24,261.49,1960000,261.49 +1951-05-08,261.23,262.05,259.31,261.10,1600000,261.10 +1951-05-07,261.76,262.48,259.60,261.23,1580000,261.23 +1951-05-04,263.13,264.44,261.74,262.77,2050000,262.77 +1951-05-03,261.27,263.69,260.31,263.13,2060000,263.13 +1951-05-02,260.71,262.41,259.70,261.27,1900000,261.27 +1951-05-01,259.13,261.80,258.23,260.71,1760000,260.71 +1951-04-30,259.08,260.83,257.99,259.13,1790000,259.13 +1951-04-27,257.33,259.95,257.33,258.96,2120000,258.96 +1951-04-26,254.92,257.98,254.92,257.13,1800000,257.13 +1951-04-25,254.19,255.38,252.53,254.75,1520000,254.75 +1951-04-24,255.12,255.67,253.48,254.19,1420000,254.19 +1951-04-23,255.02,255.92,253.94,255.12,1160000,255.12 +1951-04-20,254.92,255.51,253.44,254.82,940000,254.82 +1951-04-19,256.01,256.53,253.99,254.92,1520000,254.92 +1951-04-18,255.34,257.30,254.53,256.01,1780000,256.01 +1951-04-17,254.85,256.06,253.88,255.34,1470000,255.34 +1951-04-16,256.18,257.03,254.05,254.85,1730000,254.85 +1951-04-13,251.76,255.31,251.76,254.75,2120000,254.75 +1951-04-12,249.76,252.10,249.37,251.66,1530000,251.66 +1951-04-11,250.42,250.57,247.70,249.76,1420000,249.76 +1951-04-10,250.57,251.88,249.52,250.42,1280000,250.42 +1951-04-09,250.28,251.46,249.62,250.57,1110000,250.57 +1951-04-06,250.32,252.22,250.06,250.83,1450000,250.83 +1951-04-05,247.75,250.91,247.75,250.32,1790000,250.32 +1951-04-04,246.02,247.80,244.98,247.31,1300000,247.31 +1951-04-03,246.63,247.69,245.46,246.02,1220000,246.02 +1951-04-02,247.82,247.82,245.02,246.63,1280000,246.63 +1951-03-30,246.95,249.25,246.95,248.53,1150000,248.53 +1951-03-29,246.19,248.28,245.95,246.90,1300000,246.90 +1951-03-28,248.74,249.15,245.34,246.19,1770000,246.19 +1951-03-27,249.13,250.81,248.18,248.74,1250000,248.74 +1951-03-26,248.14,249.79,247.04,249.13,1230000,249.13 +1951-03-22,249.37,251.57,249.04,250.52,1290000,250.52 +1951-03-21,247.87,250.39,247.45,249.37,1310000,249.37 +1951-03-20,248.08,248.64,246.53,247.87,1020000,247.87 +1951-03-19,249.03,249.45,246.45,248.08,1120000,248.08 +1951-03-16,245.88,249.33,245.88,248.62,1660000,248.62 +1951-03-15,243.95,245.80,242.06,244.85,2070000,244.85 +1951-03-14,245.88,246.56,243.13,243.95,2110000,243.95 +1951-03-13,249.35,249.35,244.61,245.88,2330000,245.88 +1951-03-12,252.00,252.00,248.70,249.89,1640000,249.89 +1951-03-09,252.81,254.27,251.98,252.75,1610000,252.75 +1951-03-08,252.45,253.68,251.55,252.81,1440000,252.81 +1951-03-07,251.55,253.41,250.71,252.45,1770000,252.45 +1951-03-06,251.82,252.37,250.43,251.55,1490000,251.55 +1951-03-05,253.43,253.43,250.23,251.82,1690000,251.82 +1951-03-02,252.80,254.42,252.22,253.61,1570000,253.61 +1951-03-01,252.05,253.73,250.96,252.80,1610000,252.80 +1951-02-28,251.34,253.14,249.70,252.05,1640000,252.05 +1951-02-27,253.18,253.73,250.81,251.34,1680000,251.34 +1951-02-26,252.93,254.47,251.57,253.18,1650000,253.18 +1951-02-23,252.28,253.59,251.21,252.18,1540000,252.18 +1951-02-21,251.12,253.53,250.77,252.28,1670000,252.28 +1951-02-20,251.67,252.15,248.78,251.12,2010000,251.12 +1951-02-19,254.70,255.08,251.29,251.67,1910000,251.67 +1951-02-16,253.61,255.58,253.10,254.90,1860000,254.90 +1951-02-15,255.10,255.30,253.13,253.61,1700000,253.61 +1951-02-14,255.71,256.34,253.34,255.10,2050000,255.10 +1951-02-13,254.80,257.06,254.34,255.71,2400000,255.71 +1951-02-09,253.34,255.58,253.08,254.24,2550000,254.24 +1951-02-08,252.70,254.27,250.92,253.34,2120000,253.34 +1951-02-07,254.47,254.47,251.69,252.70,2020000,252.70 +1951-02-06,255.17,255.30,252.25,254.62,2370000,254.62 +1951-02-05,253.92,256.06,252.91,255.17,2680000,255.17 +1951-02-02,250.76,253.71,250.66,252.78,3030000,252.78 +1951-02-01,248.83,251.17,247.04,250.76,2380000,250.76 +1951-01-31,249.58,250.56,247.43,248.83,2340000,248.83 +1951-01-30,248.64,250.46,247.49,249.58,2480000,249.58 +1951-01-29,247.36,249.48,246.50,248.64,2630000,248.64 +1951-01-26,242.22,245.42,241.86,244.51,2230000,244.51 +1951-01-25,244.08,244.08,240.11,242.22,2520000,242.22 +1951-01-24,245.30,246.28,243.45,244.36,1990000,244.36 +1951-01-23,244.33,245.87,242.40,245.30,2080000,245.30 +1951-01-22,246.91,247.48,242.70,244.33,2570000,244.33 +1951-01-19,247.39,248.62,245.45,246.76,3170000,246.76 +1951-01-18,248.01,249.07,245.60,247.39,3490000,247.39 +1951-01-17,246.65,248.95,243.76,248.01,3880000,248.01 +1951-01-16,245.02,247.64,244.76,246.65,3740000,246.65 +1951-01-15,243.61,245.75,241.47,245.02,2830000,245.02 +1951-01-12,244.72,245.87,242.77,243.81,2950000,243.81 +1951-01-11,240.40,245.20,240.35,244.72,3490000,244.72 +1951-01-10,243.50,244.61,239.12,240.40,3270000,240.40 +1951-01-09,242.29,245.10,242.02,243.50,3800000,243.50 +1951-01-08,240.68,243.05,239.62,242.29,2780000,242.29 +1951-01-05,240.86,242.60,240.15,240.96,3390000,240.96 +1951-01-04,238.99,241.71,237.64,240.86,3390000,240.86 +1951-01-03,239.92,241.29,237.43,238.99,3370000,238.99 +1951-01-02,235.41,240.46,234.93,239.92,3030000,239.92 +1950-12-29,235.34,236.52,233.63,235.42,3440000,235.42 +1950-12-28,234.21,236.25,233.02,235.34,3560000,235.34 +1950-12-27,230.30,234.64,230.30,234.21,2940000,234.21 +1950-12-26,231.54,232.41,228.44,229.65,2660000,229.65 +1950-12-22,230.43,232.94,229.65,231.54,2720000,231.54 +1950-12-21,231.20,232.02,229.06,230.43,3990000,230.43 +1950-12-20,231.54,232.27,229.10,231.20,3510000,231.20 +1950-12-19,231.01,233.05,229.77,231.54,3650000,231.54 +1950-12-18,228.58,233.27,228.58,231.01,4500000,231.01 +1950-12-15,225.89,226.57,223.19,224.70,2420000,224.70 +1950-12-14,228.82,229.47,224.98,225.89,2660000,225.89 +1950-12-13,229.27,230.35,227.42,228.82,2030000,228.82 +1950-12-12,229.19,231.13,228.13,229.27,2140000,229.27 +1950-12-11,227.30,230.78,227.05,229.19,2600000,229.19 +1950-12-08,225.94,227.33,224.23,226.74,2310000,226.74 +1950-12-07,226.16,227.35,224.41,225.94,1810000,225.94 +1950-12-06,225.44,228.10,224.78,226.16,2010000,226.16 +1950-12-05,222.33,225.97,222.01,225.44,1940000,225.44 +1950-12-04,225.23,225.23,221.31,222.33,2510000,222.33 +1950-12-01,227.60,230.42,227.05,228.89,1870000,228.89 +1950-11-30,226.42,229.70,225.97,227.60,2080000,227.60 +1950-11-29,227.78,227.78,223.82,226.42,2770000,226.42 +1950-11-28,231.34,231.34,227.40,228.61,2970000,228.61 +1950-11-27,235.06,236.09,232.75,234.96,1740000,234.96 +1950-11-24,233.81,236.63,233.81,235.47,2620000,235.47 +1950-11-22,231.16,234.26,230.37,233.81,2730000,233.81 +1950-11-21,231.53,232.64,229.99,231.16,2010000,231.16 +1950-11-20,231.64,233.55,230.48,231.53,2250000,231.53 +1950-11-17,228.94,231.01,228.29,230.27,2130000,230.27 +1950-11-16,229.52,229.75,226.70,228.94,1760000,228.94 +1950-11-15,229.54,230.45,227.98,229.52,1620000,229.52 +1950-11-14,229.44,230.17,227.58,229.54,1780000,229.54 +1950-11-13,229.29,230.83,227.98,229.44,1630000,229.44 +1950-11-10,227.17,229.90,226.74,229.29,1640000,229.29 +1950-11-09,224.25,228.01,224.23,227.17,1760000,227.17 +1950-11-08,222.86,226.55,222.86,224.25,1850000,224.25 +1950-11-06,224.91,224.91,220.59,222.52,2580000,222.52 +1950-11-03,227.25,229.44,226.21,228.10,1560000,228.10 +1950-11-02,225.69,228.74,225.64,227.25,1580000,227.25 +1950-11-01,225.01,226.75,223.07,225.69,1780000,225.69 +1950-10-31,226.42,227.32,223.59,225.01,2010000,225.01 +1950-10-30,228.56,230.05,225.87,226.42,1790000,226.42 +1950-10-27,226.65,228.92,225.77,228.28,1800000,228.28 +1950-10-26,230.85,230.85,225.44,226.65,3000000,226.65 +1950-10-25,231.39,232.75,230.40,231.49,1930000,231.49 +1950-10-24,230.62,231.87,229.55,231.39,1790000,231.39 +1950-10-23,230.88,232.02,229.95,230.62,1850000,230.62 +1950-10-20,230.83,231.41,229.07,230.33,1840000,230.33 +1950-10-19,230.60,232.01,229.62,230.83,2250000,230.83 +1950-10-18,229.26,231.54,229.26,230.60,2410000,230.60 +1950-10-17,227.50,229.74,227.42,229.22,2010000,229.22 +1950-10-16,227.63,228.38,225.39,227.50,1630000,227.50 +1950-10-13,228.97,229.97,227.53,228.54,2030000,228.54 +1950-10-11,227.60,229.92,226.59,228.97,2200000,228.97 +1950-10-10,230.02,230.33,226.79,227.60,1870000,227.60 +1950-10-09,231.81,232.47,228.49,230.02,2330000,230.02 +1950-10-06,229.85,232.50,229.57,231.74,2360000,231.74 +1950-10-05,231.15,232.17,229.16,229.85,2490000,229.85 +1950-10-04,228.89,232.31,228.21,231.15,2920000,231.15 +1950-10-03,228.94,230.86,228.01,228.89,2480000,228.89 +1950-10-02,226.46,229.57,226.46,228.94,2200000,228.94 +1950-09-29,225.93,227.40,225.32,226.36,1800000,226.36 +1950-09-28,225.74,227.69,225.09,225.93,2200000,225.93 +1950-09-27,222.84,226.06,222.00,225.74,2360000,225.74 +1950-09-26,226.06,226.49,222.26,222.84,2280000,222.84 +1950-09-25,226.64,227.51,224.77,226.06,2020000,226.06 +1950-09-22,226.01,228.17,225.61,226.64,2510000,226.64 +1950-09-21,224.33,226.49,223.58,226.01,1650000,226.01 +1950-09-20,225.78,226.49,223.00,224.33,2100000,224.33 +1950-09-19,226.78,226.85,224.40,225.78,1590000,225.78 +1950-09-18,225.85,227.89,225.45,226.78,2040000,226.78 +1950-09-15,224.48,226.32,223.13,225.85,2410000,225.85 +1950-09-14,223.42,225.19,222.71,224.48,2350000,224.48 +1950-09-13,221.18,224.22,221.18,223.42,2600000,223.42 +1950-09-12,218.17,221.19,218.17,220.81,1680000,220.81 +1950-09-11,220.03,220.77,217.44,218.10,1860000,218.10 +1950-09-08,218.52,220.94,218.52,220.03,1960000,220.03 +1950-09-07,218.20,219.20,217.15,218.33,1340000,218.33 +1950-09-06,219.52,219.52,217.38,218.20,1300000,218.20 +1950-09-05,218.42,220.71,217.88,220.02,1250000,220.02 +1950-09-01,217.12,219.00,217.12,218.42,1290000,218.42 +1950-08-31,217.05,217.79,216.21,216.87,1140000,216.87 +1950-08-30,218.29,218.83,216.43,217.05,1490000,217.05 +1950-08-29,218.55,220.20,217.86,218.29,1890000,218.29 +1950-08-28,218.10,219.29,216.81,218.55,1300000,218.55 +1950-08-25,219.45,219.45,217.10,218.10,1610000,218.10 +1950-08-24,221.51,222.17,220.34,221.13,1620000,221.13 +1950-08-23,219.79,221.93,219.48,221.51,1580000,221.51 +1950-08-22,220.21,220.81,218.91,219.79,1550000,219.79 +1950-08-21,219.23,222.12,218.87,220.21,1840000,220.21 +1950-08-18,217.76,219.88,217.26,219.23,1780000,219.23 +1950-08-17,215.82,218.94,215.82,217.76,2170000,217.76 +1950-08-16,215.31,216.58,214.65,215.78,1770000,215.78 +1950-08-15,215.31,216.24,214.11,215.31,1330000,215.31 +1950-08-14,215.03,216.10,213.98,215.31,1280000,215.31 +1950-08-11,216.64,216.89,214.41,215.03,1680000,215.03 +1950-08-10,216.97,217.48,215.56,216.64,1870000,216.64 +1950-08-09,215.44,217.45,214.16,216.97,1760000,216.97 +1950-08-08,215.82,217.53,214.76,215.44,2180000,215.44 +1950-08-07,212.66,216.21,212.48,215.82,1850000,215.82 +1950-08-04,211.26,213.14,210.41,212.66,1600000,212.66 +1950-08-03,211.26,212.28,209.55,211.26,1660000,211.26 +1950-08-02,211.87,213.71,209.78,211.26,1980000,211.26 +1950-08-01,209.56,212.98,209.56,211.87,1970000,211.87 +1950-07-31,208.21,209.85,207.19,209.40,1590000,209.40 +1950-07-28,206.76,209.56,206.76,208.21,2050000,208.21 +1950-07-27,204.39,207.77,204.39,206.37,2300000,206.37 +1950-07-26,203.83,205.68,201.91,204.39,2460000,204.39 +1950-07-25,206.57,206.57,202.99,203.83,2770000,203.83 +1950-07-24,207.65,208.66,205.64,206.95,2300000,206.95 +1950-07-21,207.73,208.89,205.51,207.65,2810000,207.65 +1950-07-20,205.13,208.62,204.41,207.73,3160000,207.73 +1950-07-19,202.08,205.61,202.08,205.13,2430000,205.13 +1950-07-18,198.00,202.42,198.00,201.88,1820000,201.88 +1950-07-17,199.47,199.47,196.44,197.63,1520000,197.63 +1950-07-14,197.89,201.48,197.89,199.83,1900000,199.83 +1950-07-13,199.09,199.69,195.40,197.46,2660000,197.46 +1950-07-12,203.83,203.83,197.44,199.09,3200000,199.09 +1950-07-11,208.09,209.39,203.83,204.60,3250000,204.60 +1950-07-10,208.59,209.42,206.31,208.09,1960000,208.09 +1950-07-07,210.85,211.75,207.78,208.59,1870000,208.59 +1950-07-06,210.03,212.19,209.46,210.85,1570000,210.85 +1950-07-05,208.35,210.92,207.27,210.03,1400000,210.03 +1950-07-03,209.11,209.48,205.92,208.35,1550000,208.35 +1950-06-30,206.72,211.96,206.03,209.11,2660000,209.11 +1950-06-29,214.68,214.74,206.33,206.72,3040000,206.72 +1950-06-28,212.39,216.99,212.39,214.68,2600000,214.68 +1950-06-27,213.91,217.13,206.33,212.22,4860000,212.22 +1950-06-26,220.75,220.75,213.03,213.91,3950000,213.91 +1950-06-23,224.51,225.55,223.57,224.35,1700000,224.35 +1950-06-22,222.53,225.00,222.47,224.51,1830000,224.51 +1950-06-21,220.81,223.07,220.81,222.53,1750000,222.53 +1950-06-20,222.09,222.19,218.99,220.72,1470000,220.72 +1950-06-19,222.71,223.94,221.49,222.09,1290000,222.09 +1950-06-16,222.46,223.67,221.89,222.71,1180000,222.71 +1950-06-15,223.32,224.97,221.79,222.46,1530000,222.46 +1950-06-14,226.02,226.02,222.76,223.32,1650000,223.32 +1950-06-13,228.09,228.09,225.58,226.44,1790000,226.44 +1950-06-12,226.86,229.20,226.40,228.38,1790000,228.38 +1950-06-09,225.52,227.82,225.16,226.86,2130000,226.86 +1950-06-08,223.68,226.21,223.57,225.52,1780000,225.52 +1950-06-07,223.46,225.17,221.82,223.68,1750000,223.68 +1950-06-06,221.76,224.32,218.66,223.46,2250000,223.46 +1950-06-05,223.71,224.12,221.13,221.76,1630000,221.76 +1950-06-02,223.23,224.34,222.53,223.71,1450000,223.71 +1950-06-01,223.42,224.06,222.40,223.23,1580000,223.23 +1950-05-31,222.47,224.18,222.40,223.42,1530000,223.42 +1950-05-29,221.71,223.11,221.16,222.47,1110000,222.47 +1950-05-26,222.44,223.11,221.22,221.93,1330000,221.93 +1950-05-25,222.57,223.10,220.74,222.44,1480000,222.44 +1950-05-24,222.47,224.24,221.83,222.57,1850000,222.57 +1950-05-23,221.55,222.82,220.85,222.47,1460000,222.47 +1950-05-22,222.41,223.14,220.95,221.55,1620000,221.55 +1950-05-19,220.63,222.79,220.23,222.11,2110000,222.11 +1950-05-18,220.60,221.52,219.70,220.63,5240000,220.63 +1950-05-17,219.70,221.48,219.39,220.60,2020000,220.60 +1950-05-16,218.04,220.05,217.86,219.70,1730000,219.70 +1950-05-15,217.78,218.90,216.87,218.04,1220000,218.04 +1950-05-12,218.72,218.96,216.37,217.61,1790000,217.61 +1950-05-11,218.64,219.32,217.26,218.72,1750000,218.72 +1950-05-10,217.41,219.64,217.41,218.64,1880000,218.64 +1950-05-09,216.71,217.86,216.00,217.40,1720000,217.40 +1950-05-08,217.03,217.76,215.72,216.71,1680000,216.71 +1950-05-05,214.87,216.30,214.14,215.72,1800000,215.72 +1950-05-04,216.26,216.71,214.25,214.87,2150000,214.87 +1950-05-03,214.87,217.13,214.30,216.26,2120000,216.26 +1950-05-02,215.81,216.46,214.30,214.87,2250000,214.87 +1950-05-01,214.33,216.35,214.06,215.81,2390000,215.81 +1950-04-28,212.44,214.29,212.16,213.56,2190000,213.56 +1950-04-27,211.72,213.21,210.76,212.44,2070000,212.44 +1950-04-26,212.55,213.05,210.51,211.72,1880000,211.72 +1950-04-25,212.58,213.65,211.50,212.55,1830000,212.55 +1950-04-24,213.90,214.17,211.02,212.58,2310000,212.58 +1950-04-21,213.72,215.09,212.85,214.14,2710000,214.14 +1950-04-20,215.21,215.65,212.67,213.72,2590000,213.72 +1950-04-19,215.05,216.32,214.22,215.21,2950000,215.21 +1950-04-18,214.41,216.04,213.59,215.05,3320000,215.05 +1950-04-17,214.48,215.27,213.18,214.41,2520000,214.41 +1950-04-14,214.14,216.17,214.14,215.31,2750000,215.31 +1950-04-13,213.94,215.40,213.36,214.13,2410000,214.13 +1950-04-12,211.47,214.35,211.18,213.94,2010000,213.94 +1950-04-11,212.29,213.40,210.15,211.47,2010000,211.47 +1950-04-10,212.55,213.60,211.47,212.29,2070000,212.29 +1950-04-06,210.34,212.68,210.26,212.10,2000000,212.10 +1950-04-05,209.05,210.76,208.70,210.34,1430000,210.34 +1950-04-04,208.44,210.19,208.15,209.05,2010000,209.05 +1950-04-03,206.37,208.82,205.93,208.44,1570000,208.44 +1950-03-31,206.43,207.54,205.28,206.05,1880000,206.05 +1950-03-30,208.40,208.42,205.53,206.43,2370000,206.43 +1950-03-29,209.50,209.58,207.77,208.40,2090000,208.40 +1950-03-28,209.10,210.08,207.74,209.50,1780000,209.50 +1950-03-27,210.62,211.22,208.74,209.10,1930000,209.10 +1950-03-24,209.62,210.22,208.01,209.78,1570000,209.78 +1950-03-23,209.31,210.67,208.61,209.62,2020000,209.62 +1950-03-22,208.27,209.72,207.76,209.31,2010000,209.31 +1950-03-21,207.78,209.16,207.38,208.27,1400000,208.27 +1950-03-20,208.09,209.11,207.40,207.78,1430000,207.78 +1950-03-17,207.89,208.92,206.81,207.57,1600000,207.57 +1950-03-16,207.46,209.43,206.92,207.89,2060000,207.89 +1950-03-15,204.85,207.80,204.85,207.46,1830000,207.46 +1950-03-14,203.09,205.10,202.71,204.70,1140000,204.70 +1950-03-13,202.96,203.91,202.09,203.09,1060000,203.09 +1950-03-10,202.33,202.88,201.14,202.44,1260000,202.44 +1950-03-09,203.71,203.95,201.97,202.33,1330000,202.33 +1950-03-08,203.69,204.42,202.69,203.71,1360000,203.71 +1950-03-07,204.88,204.89,202.33,203.69,1590000,203.69 +1950-03-06,204.71,205.65,204.20,204.88,1470000,204.88 +1950-03-03,203.54,204.85,203.09,204.48,1520000,204.48 +1950-03-02,203.62,204.52,202.96,203.54,1340000,203.54 +1950-03-01,203.44,204.02,202.15,203.62,1410000,203.62 +1950-02-28,204.33,204.53,202.82,203.44,1310000,203.44 +1950-02-27,204.15,204.85,203.46,204.33,1410000,204.33 +1950-02-24,203.32,204.87,203.22,204.15,1710000,204.15 +1950-02-23,203.35,203.95,202.31,203.32,1310000,203.32 +1950-02-21,203.47,203.93,202.55,203.35,1260000,203.35 +1950-02-20,203.97,204.26,202.53,203.47,1420000,203.47 +1950-02-17,201.69,203.49,201.13,203.17,1940000,203.17 +1950-02-16,201.93,202.49,200.59,201.69,1920000,201.69 +1950-02-15,202.02,202.60,200.63,201.93,1730000,201.93 +1950-02-14,203.32,203.32,200.75,202.02,2210000,202.02 +1950-02-10,203.80,204.87,202.69,203.49,1790000,203.49 +1950-02-09,202.71,204.67,202.24,203.80,1810000,203.80 +1950-02-08,203.43,203.43,201.60,202.71,1470000,202.71 +1950-02-07,204.40,204.40,202.59,203.53,1360000,203.53 +1950-02-06,205.03,205.39,203.58,204.59,1490000,204.59 +1950-02-03,204.11,205.39,203.55,204.53,2210000,204.53 +1950-02-02,201.89,204.55,201.35,204.11,2040000,204.11 +1950-02-01,201.79,202.96,201.36,201.89,1810000,201.89 +1950-01-31,201.39,202.51,200.82,201.79,1690000,201.79 +1950-01-30,200.08,201.93,199.66,201.39,1640000,201.39 +1950-01-27,198.53,199.58,197.69,199.08,1250000,199.08 +1950-01-26,198.39,199.22,197.54,198.53,1150000,198.53 +1950-01-25,199.32,199.32,196.64,198.39,1700000,198.39 +1950-01-24,200.42,200.42,198.78,199.62,1250000,199.62 +1950-01-23,200.97,201.39,199.43,200.42,1340000,200.42 +1950-01-20,199.80,200.86,199.14,200.13,1440000,200.13 +1950-01-19,199.50,200.49,198.49,199.80,1170000,199.80 +1950-01-18,198.78,200.74,198.35,199.50,1570000,199.50 +1950-01-17,197.17,200.08,197.14,198.78,1790000,198.78 +1950-01-16,196.92,197.75,195.57,197.17,1460000,197.17 +1950-01-13,197.93,197.93,193.94,196.81,3330000,196.81 +1950-01-12,201.61,202.08,197.53,197.93,2970000,197.93 +1950-01-11,201.17,202.42,200.52,201.61,2630000,201.61 +1950-01-10,201.98,202.04,200.13,201.17,2160000,201.17 +1950-01-09,201.94,202.92,200.86,201.98,2520000,201.98 +1950-01-06,200.57,201.62,199.84,200.96,2010000,200.96 +1950-01-05,200.20,201.76,199.69,200.57,2550000,200.57 +1950-01-04,198.89,200.55,198.26,200.20,1890000,200.20 +1950-01-03,200.13,200.20,197.73,198.89,1260000,198.89 +1949-12-30,199.39,200.91,198.97,200.52,2090000,200.52 +1949-12-29,199.59,200.26,198.75,199.39,1820000,199.39 +1949-12-28,198.28,200.19,198.10,199.59,1560000,199.59 +1949-12-27,198.88,199.58,197.73,198.28,1560000,198.28 +1949-12-23,198.52,199.73,197.88,198.88,1470000,198.88 +1949-12-22,196.49,198.91,196.49,198.52,1630000,198.52 +1949-12-21,197.22,197.64,195.79,196.45,1270000,196.45 +1949-12-20,198.17,198.28,196.55,197.22,1330000,197.22 +1949-12-19,197.98,199.15,197.46,198.17,1420000,198.17 +1949-12-16,198.05,199.13,196.90,197.88,1960000,197.88 +1949-12-15,197.51,198.59,196.34,198.05,2070000,198.05 +1949-12-14,196.81,198.10,196.12,197.51,2210000,197.51 +1949-12-13,196.17,197.22,195.22,196.81,2080000,196.81 +1949-12-12,194.68,196.57,194.39,196.17,1780000,196.17 +1949-12-09,194.45,194.99,193.54,194.35,1500000,194.35 +1949-12-08,194.21,195.32,193.61,194.45,1720000,194.45 +1949-12-07,194.59,194.59,192.59,194.21,1630000,194.21 +1949-12-06,194.74,195.25,193.91,194.64,1430000,194.64 +1949-12-05,194.43,195.54,193.69,194.74,1830000,194.74 +1949-12-02,192.71,194.16,191.94,193.63,2020000,193.63 +1949-12-01,191.55,193.11,191.12,192.71,1470000,192.71 +1949-11-30,191.62,192.35,190.68,191.55,1320000,191.55 +1949-11-29,192.24,192.54,190.54,191.62,1310000,191.62 +1949-11-28,193.23,193.43,191.72,192.24,1080000,192.24 +1949-11-25,193.52,194.34,192.27,192.78,1270000,192.78 +1949-11-23,193.23,194.35,192.48,193.52,1460000,193.52 +1949-11-22,192.35,193.65,191.69,193.23,1400000,193.23 +1949-11-21,193.62,193.84,191.72,192.35,1180000,192.35 +1949-11-18,191.77,193.97,191.77,193.41,1690000,193.41 +1949-11-17,189.37,191.82,189.27,191.34,1410000,191.34 +1949-11-16,187.98,190.13,187.83,189.37,1210000,189.37 +1949-11-15,189.25,189.25,186.98,187.98,1250000,187.98 +1949-11-14,190.46,191.08,188.71,189.27,1270000,189.27 +1949-11-10,190.60,191.07,189.65,190.42,1170000,190.42 +1949-11-09,190.89,192.43,190.06,190.60,1510000,190.60 +1949-11-07,191.37,192.05,190.41,190.89,1170000,190.89 +1949-11-04,192.19,192.31,190.57,191.29,1390000,191.29 +1949-11-03,192.96,193.19,191.34,192.19,1370000,192.19 +1949-11-02,191.23,193.63,191.15,192.96,1570000,192.96 +1949-11-01,189.54,191.74,189.25,191.23,1300000,191.23 +1949-10-31,190.36,191.08,189.15,189.54,1140000,189.54 +1949-10-28,190.36,191.44,189.47,190.16,1480000,190.16 +1949-10-27,189.08,191.12,188.96,190.36,1760000,190.36 +1949-10-26,187.70,189.41,187.30,189.08,1620000,189.08 +1949-10-25,186.54,188.01,186.38,187.70,1190000,187.70 +1949-10-24,186.20,187.01,185.58,186.54,1240000,186.54 +1949-10-21,186.64,186.97,185.62,186.20,1290000,186.20 +1949-10-20,187.04,187.65,185.87,186.64,1270000,186.64 +1949-10-19,186.12,187.34,185.81,187.04,1370000,187.04 +1949-10-18,184.72,186.56,184.72,186.12,1220000,186.12 +1949-10-17,186.06,186.06,183.94,184.72,1130000,184.72 +1949-10-14,186.78,187.26,185.47,186.43,1190000,186.43 +1949-10-13,186.74,187.91,186.29,186.78,1790000,186.78 +1949-10-11,185.15,187.04,184.75,186.74,1660000,186.74 +1949-10-10,185.36,185.55,184.49,185.15,1120000,185.15 +1949-10-07,185.37,185.62,183.92,185.27,1280000,185.27 +1949-10-06,184.80,185.99,184.53,185.37,1520000,185.37 +1949-10-05,184.13,185.38,184.00,184.80,1470000,184.80 +1949-10-04,182.68,184.39,182.68,184.13,1310000,184.13 +1949-10-03,181.98,183.05,180.90,182.67,770000,182.67 +1949-09-30,182.43,183.16,181.71,182.51,1100000,182.51 +1949-09-29,181.31,183.42,181.00,182.43,1380000,182.43 +1949-09-28,180.06,182.09,180.06,181.31,1300000,181.31 +1949-09-27,180.54,180.54,178.61,179.63,1070000,179.63 +1949-09-26,181.30,182.25,180.36,180.86,1020000,180.86 +1949-09-23,180.83,181.74,180.17,181.30,1290000,181.30 +1949-09-22,180.02,181.37,179.87,180.83,1280000,180.83 +1949-09-21,178.04,180.42,177.71,180.02,1150000,180.02 +1949-09-20,180.91,180.91,177.63,178.04,1350000,178.04 +1949-09-19,182.13,182.13,180.18,181.42,1300000,181.42 +1949-09-16,182.16,182.76,181.34,182.32,1160000,182.32 +1949-09-15,182.71,182.71,181.00,182.16,1160000,182.16 +1949-09-14,183.29,184.09,182.61,183.14,1700000,183.14 +1949-09-13,181.27,183.51,181.27,183.29,1720000,183.29 +1949-09-12,180.24,181.60,180.17,181.15,1080000,181.15 +1949-09-09,180.53,180.86,179.89,180.24,770000,180.24 +1949-09-08,180.21,181.30,179.99,180.53,940000,180.53 +1949-09-07,179.20,180.54,178.91,180.21,850000,180.21 +1949-09-06,179.38,179.85,178.65,179.20,640000,179.20 +1949-09-02,179.52,179.91,178.97,179.38,750000,179.38 +1949-09-01,178.66,180.20,178.54,179.52,840000,179.52 +1949-08-31,178.69,179.05,177.77,178.66,720000,178.66 +1949-08-30,177.75,179.04,177.60,178.69,590000,178.69 +1949-08-29,179.08,179.08,177.45,177.75,640000,177.75 +1949-08-26,179.01,179.69,178.42,179.24,660000,179.24 +1949-08-25,178.78,179.52,178.44,179.01,730000,179.01 +1949-08-24,178.51,179.15,177.86,178.78,720000,178.78 +1949-08-23,180.18,180.18,178.28,178.51,840000,178.51 +1949-08-22,181.16,181.33,180.06,180.53,710000,180.53 +1949-08-19,182.02,182.38,180.83,181.16,850000,181.16 +1949-08-18,181.59,182.67,181.44,182.02,1180000,182.02 +1949-08-17,180.00,181.78,179.80,181.59,1440000,181.59 +1949-08-16,178.97,180.40,178.71,180.00,840000,180.00 +1949-08-15,179.29,179.71,178.55,178.97,720000,178.97 +1949-08-12,180.02,180.10,178.62,179.29,770000,179.29 +1949-08-11,180.60,180.98,179.48,180.02,1030000,180.02 +1949-08-10,179.52,180.96,179.23,180.60,1280000,180.60 +1949-08-09,180.35,180.35,178.86,179.52,1140000,179.52 +1949-08-08,179.18,181.15,179.18,180.54,1660000,180.54 +1949-08-05,177.06,179.38,176.77,179.07,1440000,179.07 +1949-08-04,177.19,177.44,176.51,177.06,910000,177.06 +1949-08-03,177.56,177.91,176.72,177.19,1270000,177.19 +1949-08-02,176.84,177.78,176.35,177.56,800000,177.56 +1949-08-01,175.92,177.17,175.68,176.84,860000,176.84 +1949-07-29,176.26,176.54,175.30,175.92,640000,175.92 +1949-07-28,176.46,176.84,175.57,176.26,790000,176.26 +1949-07-27,176.37,177.04,175.93,176.46,1030000,176.46 +1949-07-26,175.12,176.65,174.86,176.37,1310000,176.37 +1949-07-25,174.53,175.99,174.28,175.12,860000,175.12 +1949-07-22,174.59,174.95,173.85,174.53,730000,174.53 +1949-07-21,175.49,175.49,174.15,174.59,780000,174.59 +1949-07-20,175.31,176.14,174.86,175.60,1380000,175.60 +1949-07-19,174.04,175.60,173.93,175.31,1590000,175.31 +1949-07-18,173.48,174.40,173.20,174.04,810000,174.04 +1949-07-15,173.59,173.89,172.64,173.48,800000,173.48 +1949-07-14,173.24,174.02,172.47,173.59,1170000,173.59 +1949-07-13,171.78,173.34,171.59,173.24,1050000,173.24 +1949-07-12,170.81,171.96,170.52,171.78,870000,171.78 +1949-07-11,170.92,171.41,170.10,170.81,680000,170.81 +1949-07-08,171.01,171.53,170.41,170.92,640000,170.92 +1949-07-07,170.68,171.27,169.95,171.01,890000,171.01 +1949-07-06,169.02,170.83,168.77,170.68,1410000,170.68 +1949-07-05,168.08,169.48,167.90,169.02,630000,169.02 +1949-07-01,167.42,168.61,166.94,168.08,720000,168.08 +1949-06-30,166.76,167.96,166.72,167.42,580000,167.42 +1949-06-29,165.75,167.05,165.24,166.76,590000,166.76 +1949-06-28,166.52,166.52,164.65,165.75,790000,165.75 +1949-06-27,166.99,167.82,166.29,166.79,670000,166.79 +1949-06-24,166.77,167.49,166.39,166.99,570000,166.99 +1949-06-23,165.74,167.30,165.74,166.77,730000,166.77 +1949-06-22,165.71,165.97,165.09,165.64,550000,165.64 +1949-06-21,165.49,166.65,165.09,165.71,770000,165.71 +1949-06-20,163.78,165.68,163.46,165.49,780000,165.49 +1949-06-17,163.94,164.30,162.95,163.78,540000,163.78 +1949-06-16,164.58,165.03,163.50,163.94,680000,163.94 +1949-06-15,162.10,164.81,162.10,164.58,950000,164.58 +1949-06-14,161.60,162.51,160.62,161.86,1120000,161.86 +1949-06-13,163.90,163.90,160.95,161.60,1350000,161.60 +1949-06-10,165.53,165.53,164.14,164.61,800000,164.61 +1949-06-09,165.76,166.28,165.19,165.73,600000,165.73 +1949-06-08,165.29,166.39,164.96,165.76,790000,165.76 +1949-06-07,165.15,165.96,164.32,165.29,1040000,165.29 +1949-06-06,167.24,167.35,164.27,165.15,1380000,165.15 +1949-06-03,168.15,168.31,166.77,167.24,700000,167.24 +1949-06-02,167.98,168.98,167.59,168.15,670000,168.15 +1949-06-01,168.36,168.54,166.53,167.98,1140000,167.98 +1949-05-31,171.53,171.60,168.14,168.36,1240000,168.36 +1949-05-27,171.95,172.07,170.95,171.53,690000,171.53 +1949-05-26,171.84,172.79,171.51,171.95,700000,171.95 +1949-05-25,171.49,172.07,170.57,171.84,880000,171.84 +1949-05-24,172.32,172.43,171.06,171.49,840000,171.49 +1949-05-23,173.43,173.43,172.10,172.32,720000,172.32 +1949-05-20,174.14,174.18,172.86,173.49,740000,173.49 +1949-05-19,174.92,175.12,173.76,174.14,840000,174.14 +1949-05-18,175.32,175.61,174.39,174.92,750000,174.92 +1949-05-17,175.76,176.07,174.86,175.32,780000,175.32 +1949-05-16,175.20,176.26,175.17,175.76,1030000,175.76 +1949-05-13,174.70,175.40,174.26,174.82,780000,174.82 +1949-05-12,174.40,175.17,174.14,174.70,790000,174.70 +1949-05-11,174.37,175.11,173.75,174.40,790000,174.40 +1949-05-10,175.17,175.32,173.97,174.37,730000,174.37 +1949-05-09,175.39,175.75,174.70,175.17,610000,175.17 +1949-05-06,176.24,176.24,174.74,175.50,780000,175.50 +1949-05-05,176.63,177.18,175.91,176.33,920000,176.33 +1949-05-04,175.09,177.04,175.09,176.63,1180000,176.63 +1949-05-03,174.53,175.32,173.86,175.00,830000,175.00 +1949-05-02,174.16,175.06,173.93,174.53,740000,174.53 +1949-04-29,173.89,174.48,173.52,174.06,810000,174.06 +1949-04-28,174.56,174.65,173.58,173.89,770000,173.89 +1949-04-27,174.21,175.24,173.92,174.56,830000,174.56 +1949-04-26,173.64,174.60,173.02,174.21,870000,174.21 +1949-04-25,173.76,174.38,173.05,173.64,740000,173.64 +1949-04-22,173.24,173.77,172.64,173.42,890000,173.42 +1949-04-21,175.49,175.49,173.08,173.24,1310000,173.24 +1949-04-20,176.73,176.79,175.38,175.69,970000,175.69 +1949-04-19,177.16,177.50,176.39,176.73,830000,176.73 +1949-04-18,177.07,177.71,176.47,177.16,890000,177.16 +1949-04-14,176.81,177.30,176.18,176.62,800000,176.62 +1949-04-13,176.99,177.69,172.26,176.81,920000,176.81 +1949-04-12,176.54,177.46,175.61,176.99,860000,176.99 +1949-04-11,176.75,177.14,175.94,176.54,720000,176.54 +1949-04-08,176.04,176.62,175.34,176.44,850000,176.44 +1949-04-07,176.71,176.94,175.43,176.04,850000,176.04 +1949-04-06,177.04,177.53,176.19,176.71,930000,176.71 +1949-04-05,176.59,177.67,175.94,177.04,900000,177.04 +1949-04-04,176.88,177.78,176.15,176.59,920000,176.59 +1949-04-01,177.04,177.04,175.86,176.28,850000,176.28 +1949-03-31,178.43,178.43,176.87,177.10,980000,177.10 +1949-03-30,178.39,179.19,177.69,178.45,1850000,178.45 +1949-03-29,176.81,178.90,176.81,178.39,1800000,178.39 +1949-03-28,175.82,176.72,175.35,175.99,700000,175.99 +1949-03-25,176.41,176.49,175.29,175.83,630000,175.83 +1949-03-24,176.20,177.37,176.13,176.41,920000,176.41 +1949-03-23,174.83,176.54,174.32,176.20,960000,176.20 +1949-03-22,175.61,175.85,174.34,174.83,840000,174.83 +1949-03-21,176.07,176.47,175.27,175.61,620000,175.61 +1949-03-18,176.33,176.78,175.73,176.29,670000,176.29 +1949-03-17,175.53,176.67,175.17,176.33,760000,176.33 +1949-03-16,176.02,176.08,174.87,175.53,670000,175.53 +1949-03-15,176.82,176.82,175.43,176.02,740000,176.02 +1949-03-14,176.96,177.66,176.35,176.98,800000,176.98 +1949-03-11,175.64,176.87,175.41,176.52,1070000,176.52 +1949-03-10,175.76,176.20,175.03,175.64,630000,175.64 +1949-03-09,176.09,176.29,175.22,175.76,640000,175.76 +1949-03-08,175.55,176.62,175.30,176.09,940000,176.09 +1949-03-07,174.93,175.82,174.30,175.55,840000,175.55 +1949-03-04,173.76,174.06,172.59,173.66,730000,173.66 +1949-03-03,173.82,174.44,173.17,173.76,600000,173.76 +1949-03-02,174.18,174.34,173.15,173.82,690000,173.82 +1949-03-01,173.36,174.61,173.36,174.18,720000,174.18 +1949-02-28,171.63,173.38,171.63,173.06,740000,173.06 +1949-02-25,171.48,172.11,170.56,171.10,830000,171.10 +1949-02-24,172.76,172.76,171.19,171.48,880000,171.48 +1949-02-23,174.19,174.60,173.07,173.23,770000,173.23 +1949-02-21,174.53,174.67,173.63,174.19,560000,174.19 +1949-02-18,174.82,175.62,174.11,174.71,700000,174.71 +1949-02-17,173.45,175.55,173.45,174.82,960000,174.82 +1949-02-16,172.48,173.92,172.27,173.28,700000,173.28 +1949-02-15,172.16,172.86,171.27,172.48,610000,172.48 +1949-02-14,171.93,173.17,171.57,172.16,700000,172.16 +1949-02-11,172.41,172.69,171.03,171.93,880000,171.93 +1949-02-10,174.61,174.80,172.23,172.41,980000,172.41 +1949-02-09,173.71,175.20,173.57,174.61,880000,174.61 +1949-02-08,174.37,174.37,172.91,173.71,960000,173.71 +1949-02-07,175.60,176.76,173.79,174.43,1330000,174.43 +1949-02-04,180.09,180.32,177.69,177.92,1060000,177.92 +1949-02-03,180.27,180.88,179.57,180.09,770000,180.09 +1949-02-02,180.39,180.94,179.63,180.27,720000,180.27 +1949-02-01,179.12,180.55,178.92,180.39,730000,180.39 +1949-01-31,179.35,179.73,178.46,179.12,610000,179.12 +1949-01-28,179.48,179.48,177.88,178.82,840000,178.82 +1949-01-27,179.88,180.30,178.58,179.52,840000,179.52 +1949-01-26,179.65,181.31,178.96,179.88,1040000,179.88 +1949-01-25,180.83,181.05,179.06,179.65,820000,179.65 +1949-01-24,181.54,182.28,180.51,180.83,850000,180.83 +1949-01-21,181.43,181.89,180.69,181.00,770000,181.00 +1949-01-20,181.12,181.85,180.44,181.43,820000,181.43 +1949-01-19,180.55,181.47,179.75,181.12,760000,181.12 +1949-01-18,180.14,181.55,180.09,180.55,770000,180.55 +1949-01-17,179.15,180.48,177.99,180.14,720000,180.14 +1949-01-14,180.17,180.20,178.19,178.80,930000,178.80 +1949-01-13,180.69,181.06,179.79,180.17,700000,180.17 +1949-01-12,180.76,181.66,180.21,180.69,710000,180.69 +1949-01-11,180.57,181.00,179.73,180.76,710000,180.76 +1949-01-10,181.41,181.47,179.78,180.57,770000,180.57 +1949-01-07,180.47,182.50,180.47,181.31,1400000,181.31 +1949-01-06,177.16,180.59,177.16,180.22,1150000,180.22 +1949-01-05,175.50,177.76,175.50,177.08,800000,177.08 +1949-01-04,175.03,175.97,174.56,175.49,640000,175.49 +1949-01-03,176.99,176.99,174.37,175.03,980000,175.03 +1948-12-31,177.92,178.50,176.81,177.30,1550000,177.30 +1948-12-30,177.58,179.15,177.10,177.92,1390000,177.92 +1948-12-29,175.98,177.85,175.88,177.58,1380000,177.58 +1948-12-28,177.37,177.37,175.19,175.98,1650000,175.98 +1948-12-27,177.42,178.35,176.63,177.40,1060000,177.40 +1948-12-24,176.49,177.82,176.04,177.42,970000,177.42 +1948-12-23,176.39,177.29,175.70,176.49,1080000,176.49 +1948-12-22,176.35,176.93,175.62,176.39,1000000,176.39 +1948-12-21,176.84,177.49,175.92,176.35,1000000,176.35 +1948-12-20,175.69,177.60,175.14,176.84,980000,176.84 +1948-12-17,175.83,176.78,175.17,175.92,1010000,175.92 +1948-12-16,176.20,176.59,175.20,175.83,1010000,175.83 +1948-12-15,176.59,177.26,175.78,176.20,920000,176.20 +1948-12-14,177.34,177.73,175.86,176.59,1000000,176.59 +1948-12-13,177.49,178.43,176.67,177.34,1180000,177.34 +1948-12-10,175.75,176.79,175.17,176.41,1040000,176.41 +1948-12-09,176.29,176.86,175.44,175.75,1220000,175.75 +1948-12-08,176.67,176.98,175.25,176.29,1140000,176.29 +1948-12-07,176.26,177.25,175.39,176.67,1160000,176.67 +1948-12-06,176.22,177.12,175.59,176.26,1180000,176.26 +1948-12-03,173.61,175.34,173.20,175.00,1100000,175.00 +1948-12-02,173.22,174.88,173.15,173.61,1210000,173.61 +1948-12-01,171.67,174.02,171.67,173.22,1320000,173.22 +1948-11-30,171.99,172.49,170.35,171.20,1200000,171.20 +1948-11-29,172.90,173.55,171.72,171.99,1010000,171.99 +1948-11-26,173.40,174.14,172.38,173.16,1040000,173.16 +1948-11-24,175.88,175.88,172.96,173.40,1290000,173.40 +1948-11-23,176.33,176.72,175.17,176.17,1010000,176.17 +1948-11-22,177.42,177.80,175.75,176.33,890000,176.33 +1948-11-19,176.07,177.96,175.99,176.98,990000,176.98 +1948-11-18,176.07,176.89,175.52,176.07,780000,176.07 +1948-11-17,176.20,176.92,175.14,176.07,980000,176.07 +1948-11-16,176.01,177.42,175.44,176.20,1060000,176.20 +1948-11-15,174.37,176.56,174.37,176.01,1030000,176.01 +1948-11-12,173.48,175.47,173.37,173.93,1110000,173.93 +1948-11-10,173.94,174.93,172.13,173.48,2100000,173.48 +1948-11-09,178.19,178.60,173.54,173.94,2260000,173.94 +1948-11-08,178.94,179.85,177.46,178.19,1130000,178.19 +1948-11-05,184.42,184.42,178.11,178.38,2530000,178.38 +1948-11-04,182.92,185.79,182.92,184.54,1530000,184.54 +1948-11-03,183.08,183.08,179.65,182.46,3240000,182.46 +1948-11-01,188.62,190.45,188.39,189.76,1220000,189.76 +1948-10-29,187.73,188.60,186.99,188.28,860000,188.28 +1948-10-28,189.28,189.59,187.29,187.73,970000,187.73 +1948-10-27,189.76,190.06,188.11,189.28,970000,189.28 +1948-10-26,189.52,190.88,188.97,189.76,1140000,189.76 +1948-10-25,190.19,190.53,188.54,189.52,1100000,189.52 +1948-10-22,186.70,190.08,186.70,189.76,1800000,189.76 +1948-10-21,186.51,187.16,185.49,186.44,1200000,186.44 +1948-10-20,186.18,187.00,185.62,186.51,1180000,186.51 +1948-10-19,185.33,186.58,185.15,186.18,1030000,186.18 +1948-10-18,184.93,186.22,184.63,185.33,1030000,185.33 +1948-10-15,184.52,185.26,183.76,184.62,910000,184.62 +1948-10-14,183.84,185.46,183.65,184.52,980000,184.52 +1948-10-13,182.41,184.25,182.30,183.84,830000,183.84 +1948-10-11,182.09,182.76,181.71,182.41,510000,182.41 +1948-10-08,182.52,182.99,181.55,182.02,630000,182.02 +1948-10-07,181.72,183.10,181.58,182.52,800000,182.52 +1948-10-06,181.23,182.34,180.91,181.72,710000,181.72 +1948-10-05,181.70,181.89,180.52,181.23,550000,181.23 +1948-10-04,180.78,182.19,180.74,181.70,610000,181.70 +1948-10-01,178.30,180.08,178.22,179.87,680000,179.87 +1948-09-30,179.04,179.71,177.95,178.30,700000,178.30 +1948-09-29,177.59,179.53,177.59,179.04,810000,179.04 +1948-09-28,175.99,177.91,175.84,177.54,910000,177.54 +1948-09-27,178.32,178.32,175.84,175.99,1210000,175.99 +1948-09-24,178.77,179.71,178.49,179.28,650000,179.28 +1948-09-23,179.16,179.22,178.22,178.77,550000,178.77 +1948-09-22,178.61,179.70,178.11,179.16,850000,179.16 +1948-09-21,177.37,178.89,176.94,178.61,920000,178.61 +1948-09-20,179.93,179.93,176.96,177.37,1260000,177.37 +1948-09-17,180.69,180.78,179.60,180.06,680000,180.06 +1948-09-16,180.62,181.10,179.84,180.69,580000,180.69 +1948-09-15,180.63,181.47,179.85,180.62,710000,180.62 +1948-09-14,179.41,181.12,179.41,180.63,710000,180.63 +1948-09-13,180.51,180.51,178.87,179.38,680000,179.38 +1948-09-10,180.33,181.26,179.04,180.61,970000,180.61 +1948-09-09,182.83,182.83,179.74,180.33,2000000,180.33 +1948-09-08,184.88,184.88,182.63,182.90,880000,182.90 +1948-09-07,184.35,185.64,183.68,185.36,910000,185.36 +1948-09-03,184.39,184.90,183.49,184.35,660000,184.35 +1948-09-02,183.60,184.88,183.16,184.39,900000,184.39 +1948-09-01,181.71,183.99,181.44,183.60,920000,183.60 +1948-08-31,182.09,182.47,181.18,181.71,610000,181.71 +1948-08-30,183.21,183.95,181.89,182.09,690000,182.09 +1948-08-27,182.52,183.55,182.38,183.21,540000,183.21 +1948-08-26,182.41,182.99,181.93,182.52,540000,182.52 +1948-08-25,182.58,183.01,181.89,182.41,520000,182.41 +1948-08-24,181.75,182.99,181.67,182.58,620000,182.58 +1948-08-23,183.52,183.52,181.45,181.75,630000,181.75 +1948-08-20,182.57,183.92,182.50,183.60,710000,183.60 +1948-08-19,182.12,182.78,181.45,182.57,580000,182.57 +1948-08-18,182.15,183.21,181.76,182.12,640000,182.12 +1948-08-17,180.75,182.63,180.75,182.15,680000,182.15 +1948-08-16,179.63,180.62,179.46,180.30,470000,180.30 +1948-08-13,179.63,180.44,178.99,179.63,510000,179.63 +1948-08-12,179.27,180.17,178.51,179.63,630000,179.63 +1948-08-11,179.88,179.88,177.40,179.27,1310000,179.27 +1948-08-10,182.26,182.26,179.91,180.02,840000,180.02 +1948-08-09,183.01,183.75,182.02,182.26,670000,182.26 +1948-08-06,182.92,183.44,181.89,183.01,680000,183.01 +1948-08-05,183.06,184.54,182.45,182.92,880000,182.92 +1948-08-04,180.98,183.29,180.82,183.06,870000,183.06 +1948-08-03,181.13,181.72,180.24,180.98,720000,180.98 +1948-08-02,181.33,182.61,180.61,181.13,710000,181.13 +1948-07-30,182.56,182.56,180.04,181.33,1310000,181.33 +1948-07-29,185.15,185.28,183.19,183.57,750000,183.57 +1948-07-28,186.09,187.00,184.92,185.15,840000,185.15 +1948-07-27,184.17,186.37,183.81,186.09,870000,186.09 +1948-07-26,185.31,185.83,183.81,184.17,720000,184.17 +1948-07-23,185.29,186.36,184.74,185.31,820000,185.31 +1948-07-22,184.44,185.90,184.19,185.29,850000,185.29 +1948-07-21,183.57,185.96,183.39,184.44,1200000,184.44 +1948-07-20,181.27,184.41,181.27,183.57,1470000,183.57 +1948-07-19,184.76,184.76,179.58,181.20,2570000,181.20 +1948-07-16,187.70,188.34,184.98,185.90,1760000,185.90 +1948-07-15,190.66,190.69,187.62,187.70,1620000,187.70 +1948-07-14,190.36,191.13,189.41,190.66,1340000,190.66 +1948-07-13,191.47,191.65,190.08,190.36,1200000,190.36 +1948-07-12,191.62,192.38,190.95,191.47,1300000,191.47 +1948-07-09,190.58,192.09,189.98,191.62,1370000,191.62 +1948-07-08,190.06,191.16,189.73,190.58,1000000,190.58 +1948-07-07,190.55,191.04,189.31,190.06,920000,190.06 +1948-07-06,190.06,191.37,189.54,190.55,950000,190.55 +1948-07-02,189.03,190.45,188.46,190.06,920000,190.06 +1948-07-01,189.46,189.85,188.43,189.03,820000,189.03 +1948-06-30,188.49,190.03,187.73,189.46,990000,189.46 +1948-06-29,187.90,189.19,187.50,188.49,820000,188.49 +1948-06-28,189.66,189.66,186.56,187.90,1210000,187.90 +1948-06-25,190.87,191.06,188.95,190.00,1150000,190.00 +1948-06-24,190.73,191.87,190.00,190.87,1560000,190.87 +1948-06-23,189.66,191.32,189.42,190.73,1760000,190.73 +1948-06-22,189.71,190.31,188.41,189.66,1410000,189.66 +1948-06-21,191.65,192.08,189.52,189.71,1750000,189.71 +1948-06-18,192.15,192.19,190.56,191.65,1250000,191.65 +1948-06-17,192.34,192.99,191.12,192.15,1520000,192.15 +1948-06-16,193.16,193.19,191.06,192.34,1580000,192.34 +1948-06-15,192.86,193.93,191.62,193.16,1630000,193.16 +1948-06-14,192.96,194.49,192.14,192.86,1750000,192.86 +1948-06-11,192.50,193.65,191.48,192.96,1520000,192.96 +1948-06-10,192.56,193.28,191.06,192.50,1700000,192.50 +1948-06-09,192.16,193.54,191.86,192.56,1880000,192.56 +1948-06-08,190.31,192.59,190.31,192.16,1520000,192.16 +1948-06-07,190.18,190.74,188.87,190.13,930000,190.13 +1948-06-04,191.05,191.31,189.56,190.18,1100000,190.18 +1948-06-03,191.32,192.09,190.40,191.05,1300000,191.05 +1948-06-02,191.18,192.18,190.30,191.32,1300000,191.32 +1948-06-01,190.74,192.00,190.29,191.18,1310000,191.18 +1948-05-28,190.97,191.48,189.49,190.74,1240000,190.74 +1948-05-27,191.06,192.31,190.39,190.97,1830000,190.97 +1948-05-26,189.71,191.57,189.06,191.06,1840000,191.06 +1948-05-25,189.82,190.77,188.55,189.71,1810000,189.71 +1948-05-24,190.00,190.67,188.98,189.82,1560000,189.82 +1948-05-21,189.26,191.44,189.17,189.78,2680000,189.78 +1948-05-20,188.28,190.00,187.52,189.26,2480000,189.26 +1948-05-19,188.56,189.44,187.46,188.28,1850000,188.28 +1948-05-18,190.44,191.01,188.16,188.56,2480000,188.56 +1948-05-17,190.25,191.00,188.37,190.44,3050000,190.44 +1948-05-14,185.01,188.93,185.01,188.60,3840000,188.60 +1948-05-13,183.95,185.40,183.32,184.82,2030000,184.82 +1948-05-12,183.75,184.39,182.49,183.95,1530000,183.95 +1948-05-11,182.94,184.25,182.21,183.75,1750000,183.75 +1948-05-10,182.50,183.46,181.68,182.94,1440000,182.94 +1948-05-07,181.68,183.20,181.68,182.29,1670000,182.29 +1948-05-06,180.94,182.14,180.16,181.65,1310000,181.65 +1948-05-05,181.44,182.05,180.56,180.94,1240000,180.94 +1948-05-04,181.09,182.43,180.70,181.44,1460000,181.44 +1948-05-03,180.28,181.71,179.47,181.09,1150000,181.09 +1948-04-30,180.65,181.64,179.69,180.51,1450000,180.51 +1948-04-29,181.01,181.47,179.33,180.65,1480000,180.65 +1948-04-28,180.97,182.01,180.16,181.01,1400000,181.01 +1948-04-27,181.32,181.87,180.07,180.97,1420000,180.97 +1948-04-26,183.09,183.09,180.93,181.32,1410000,181.32 +1948-04-23,182.98,184.48,182.67,183.78,2470000,183.78 +1948-04-22,181.37,183.40,180.88,182.98,2330000,182.98 +1948-04-21,180.72,181.79,179.49,181.37,1670000,181.37 +1948-04-20,181.05,181.87,179.98,180.72,1700000,180.72 +1948-04-19,180.38,181.42,179.90,181.05,1530000,181.05 +1948-04-16,180.27,181.69,179.90,180.63,2140000,180.63 +1948-04-15,179.13,180.94,178.60,180.27,1650000,180.27 +1948-04-14,179.45,179.91,178.59,179.13,1030000,179.13 +1948-04-13,179.05,179.89,178.58,179.45,950000,179.45 +1948-04-12,179.48,180.19,178.26,179.05,1030000,179.05 +1948-04-09,178.80,179.91,178.40,179.16,1380000,179.16 +1948-04-08,178.33,179.38,177.91,178.80,1060000,178.80 +1948-04-07,178.77,179.14,177.70,178.33,1160000,178.33 +1948-04-06,177.92,179.31,177.62,178.77,1310000,178.77 +1948-04-05,177.45,178.27,177.06,177.92,1040000,177.92 +1948-04-02,177.61,178.10,175.96,177.32,1080000,177.32 +1948-04-01,177.20,178.14,176.08,177.61,1490000,177.61 +1948-03-31,175.63,177.61,175.63,177.20,1780000,177.20 +1948-03-30,173.65,175.38,173.30,175.23,1060000,175.23 +1948-03-29,173.95,174.33,172.55,173.65,760000,173.65 +1948-03-25,173.62,174.63,173.08,174.05,1040000,174.05 +1948-03-24,173.50,174.45,172.84,173.62,1040000,173.62 +1948-03-23,173.66,174.26,172.71,173.50,1160000,173.50 +1948-03-22,173.12,175.23,173.05,173.66,2040000,173.66 +1948-03-19,166.92,169.75,166.50,169.67,1160000,169.67 +1948-03-18,166.24,168.02,166.07,166.92,890000,166.92 +1948-03-17,165.39,166.60,165.03,166.24,930000,166.24 +1948-03-16,167.21,167.21,165.03,165.39,940000,165.39 +1948-03-15,167.62,168.16,167.09,167.62,690000,167.62 +1948-03-12,167.21,167.54,166.51,166.99,690000,166.99 +1948-03-11,167.48,168.27,166.67,167.21,820000,167.21 +1948-03-10,166.76,167.74,166.04,167.48,730000,167.48 +1948-03-09,167.54,167.54,166.04,166.76,660000,166.76 +1948-03-08,168.94,169.13,167.46,167.71,740000,167.71 +1948-03-05,168.13,168.64,167.20,168.35,630000,168.35 +1948-03-04,168.61,168.92,167.69,168.13,580000,168.13 +1948-03-03,168.75,169.28,168.04,168.61,760000,168.61 +1948-03-02,168.14,169.18,167.78,168.75,780000,168.75 +1948-03-01,167.46,168.62,167.46,168.14,770000,168.14 +1948-02-27,167.56,167.56,165.92,166.80,770000,166.80 +1948-02-26,168.39,168.71,167.17,167.56,620000,167.56 +1948-02-25,167.80,169.01,167.72,168.39,710000,168.39 +1948-02-24,167.60,168.24,166.81,167.80,640000,167.80 +1948-02-20,167.86,167.96,166.38,167.44,700000,167.44 +1948-02-19,168.04,168.98,167.34,167.86,680000,167.86 +1948-02-18,167.89,168.36,167.23,168.04,610000,168.04 +1948-02-17,168.30,169.23,167.47,167.89,720000,167.89 +1948-02-16,166.86,168.96,166.86,168.30,830000,168.30 +1948-02-13,165.69,167.23,164.99,166.33,930000,166.33 +1948-02-11,165.65,166.41,164.07,165.69,1490000,165.69 +1948-02-10,168.92,168.92,165.26,165.65,1460000,165.65 +1948-02-09,169.79,170.83,169.33,169.82,660000,169.82 +1948-02-06,169.18,169.67,167.95,168.81,920000,168.81 +1948-02-05,170.43,170.43,168.13,169.18,1200000,169.18 +1948-02-04,173.39,173.39,170.41,170.95,1200000,170.95 +1948-02-03,174.92,175.03,173.54,173.95,700000,173.95 +1948-02-02,175.05,176.05,174.57,174.92,770000,174.92 +1948-01-30,174.47,175.58,173.61,174.76,890000,174.76 +1948-01-29,173.39,175.06,173.39,174.47,1060000,174.47 +1948-01-28,171.68,173.49,171.68,172.97,860000,172.97 +1948-01-27,171.18,172.66,170.83,171.42,830000,171.42 +1948-01-26,171.67,172.41,170.70,171.18,650000,171.18 +1948-01-23,172.15,173.04,171.36,171.97,790000,171.97 +1948-01-22,173.33,173.33,171.37,172.15,1110000,172.15 +1948-01-21,175.27,176.10,173.32,173.53,1190000,173.53 +1948-01-20,175.95,176.13,174.62,175.27,710000,175.27 +1948-01-19,177.24,177.34,175.21,175.95,1050000,175.95 +1948-01-16,177.03,177.71,176.28,177.15,760000,177.15 +1948-01-15,177.49,178.06,176.54,177.03,780000,177.03 +1948-01-14,177.49,178.16,176.50,177.37,820000,177.37 +1948-01-13,179.29,179.29,177.25,177.49,950000,177.49 +1948-01-12,180.20,180.62,178.70,179.33,1000000,179.33 +1948-01-09,180.60,181.40,179.74,180.09,980000,180.09 +1948-01-08,179.83,181.04,179.35,180.60,900000,180.60 +1948-01-07,179.12,180.40,178.48,179.83,820000,179.83 +1948-01-06,179.53,179.88,177.78,179.12,1030000,179.12 +1948-01-05,181.04,181.69,179.19,179.53,1090000,179.53 +1948-01-02,181.16,181.53,180.01,181.04,710000,181.04 +1947-12-31,180.56,181.82,180.29,181.16,1540000,181.16 +1947-12-30,178.58,180.93,178.43,180.56,1380000,180.56 +1947-12-29,179.23,179.81,177.93,178.58,1190000,178.58 +1947-12-26,180.71,180.71,178.90,179.28,930000,179.28 +1947-12-24,180.71,181.49,179.72,180.84,1190000,180.84 +1947-12-23,180.21,181.25,179.61,180.71,1360000,180.71 +1947-12-22,181.06,181.78,179.98,180.21,1450000,180.21 +1947-12-19,179.44,180.64,178.62,180.09,1250000,180.09 +1947-12-18,179.81,180.53,179.03,179.44,1130000,179.44 +1947-12-17,179.44,180.23,178.69,179.81,1250000,179.81 +1947-12-16,179.69,180.25,178.91,179.44,1090000,179.44 +1947-12-15,179.34,180.56,178.74,179.69,1430000,179.69 +1947-12-12,177.37,178.92,176.82,178.37,1220000,178.37 +1947-12-11,177.58,177.98,176.44,177.37,940000,177.37 +1947-12-10,177.47,178.22,176.89,177.58,1120000,177.58 +1947-12-09,176.71,177.98,176.00,177.47,1100000,177.47 +1947-12-08,175.74,177.35,175.19,176.71,960000,176.71 +1947-12-05,178.57,178.57,175.46,176.10,1290000,176.10 +1947-12-04,179.63,179.83,178.16,178.79,970000,178.79 +1947-12-03,180.57,180.57,179.18,179.63,930000,179.63 +1947-12-02,180.61,181.77,180.20,180.76,890000,180.76 +1947-12-01,179.40,181.09,179.09,180.61,800000,180.61 +1947-11-28,180.94,181.15,179.30,179.51,930000,179.51 +1947-11-26,181.35,182.39,180.67,180.94,910000,180.94 +1947-11-25,181.98,182.43,180.92,181.35,870000,181.35 +1947-11-24,182.33,183.06,181.23,181.98,790000,181.98 +1947-11-21,183.17,183.97,182.23,182.61,980000,182.61 +1947-11-20,182.71,183.68,181.15,183.17,960000,183.17 +1947-11-19,181.71,182.98,181.69,182.71,1050000,182.71 +1947-11-18,180.40,181.99,180.12,181.71,930000,181.71 +1947-11-17,180.26,180.95,179.57,180.40,750000,180.40 +1947-11-14,180.00,181.00,179.67,180.05,780000,180.05 +1947-11-13,180.96,180.96,179.60,180.00,790000,180.00 +1947-11-12,182.21,182.56,180.56,181.04,900000,181.04 +1947-11-10,181.49,182.70,181.17,182.21,720000,182.21 +1947-11-07,182.00,182.45,181.12,181.54,760000,181.54 +1947-11-06,181.89,182.33,180.61,182.00,850000,182.00 +1947-11-05,182.65,183.57,181.61,181.89,1050000,181.89 +1947-11-03,182.48,183.51,181.85,182.65,760000,182.65 +1947-10-31,181.32,182.40,180.43,181.81,800000,181.81 +1947-10-30,183.04,183.04,179.93,181.32,1390000,181.32 +1947-10-29,183.21,184.70,182.47,183.06,1140000,183.06 +1947-10-28,183.27,184.24,182.72,183.21,930000,183.21 +1947-10-27,182.73,183.70,181.76,183.27,850000,183.27 +1947-10-24,184.47,184.47,181.55,182.53,1650000,182.53 +1947-10-23,184.36,185.30,183.71,184.50,1190000,184.50 +1947-10-22,185.09,185.89,184.00,184.36,1260000,184.36 +1947-10-21,185.29,186.01,184.05,185.09,1400000,185.09 +1947-10-20,184.27,186.24,184.27,185.29,1770000,185.29 +1947-10-17,183.54,184.39,182.40,183.52,1270000,183.52 +1947-10-16,183.28,184.56,182.71,183.54,1400000,183.54 +1947-10-15,182.73,184.27,182.25,183.28,1930000,183.28 +1947-10-14,180.49,183.14,180.47,182.73,1810000,182.73 +1947-10-10,180.11,181.34,179.63,180.44,1120000,180.44 +1947-10-09,178.78,180.37,178.56,180.11,790000,180.11 +1947-10-08,180.01,180.56,178.26,178.78,1130000,178.78 +1947-10-07,180.08,180.49,179.33,180.01,880000,180.01 +1947-10-06,179.44,180.61,179.03,180.08,930000,180.08 +1947-10-03,178.47,180.31,178.26,179.53,1270000,179.53 +1947-10-02,178.10,178.96,177.50,178.47,850000,178.47 +1947-10-01,177.49,178.87,176.89,178.10,1160000,178.10 +1947-09-30,175.85,177.70,175.36,177.49,960000,177.49 +1947-09-29,174.86,176.44,174.74,175.85,740000,175.85 +1947-09-26,175.29,175.57,174.42,174.86,640000,174.86 +1947-09-25,176.39,176.84,174.92,175.29,770000,175.29 +1947-09-24,176.04,176.79,175.27,176.39,570000,176.39 +1947-09-23,178.02,178.25,175.54,176.04,880000,176.04 +1947-09-22,178.12,178.76,177.36,178.02,670000,178.02 +1947-09-19,178.31,178.61,177.03,178.12,750000,178.12 +1947-09-18,178.73,179.27,177.68,178.31,940000,178.31 +1947-09-17,176.86,179.37,176.86,178.73,1260000,178.73 +1947-09-16,175.30,177.01,174.73,176.70,740000,176.70 +1947-09-15,175.92,175.99,174.82,175.30,500000,175.30 +1947-09-12,176.16,176.67,174.98,175.92,600000,175.92 +1947-09-11,176.24,177.11,175.31,176.16,800000,176.16 +1947-09-10,175.32,176.61,174.70,176.24,740000,176.24 +1947-09-09,175.14,176.07,174.02,175.32,750000,175.32 +1947-09-08,176.97,176.97,174.79,175.14,830000,175.14 +1947-09-05,177.27,177.51,175.69,177.13,720000,177.13 +1947-09-04,178.84,178.84,176.57,177.27,870000,177.27 +1947-09-03,179.81,180.08,178.55,179.09,650000,179.09 +1947-09-02,178.85,180.56,178.75,179.81,650000,179.81 +1947-08-29,177.70,179.15,177.63,178.85,580000,178.85 +1947-08-28,177.88,178.64,177.22,177.70,580000,177.70 +1947-08-27,177.73,178.24,177.14,177.88,480000,177.88 +1947-08-26,177.57,178.05,176.54,177.73,620000,177.73 +1947-08-25,179.74,179.78,177.33,177.57,810000,177.57 +1947-08-22,179.42,180.29,179.34,179.74,580000,179.74 +1947-08-21,179.01,179.77,178.50,179.42,580000,179.42 +1947-08-20,179.75,180.10,178.76,179.01,600000,179.01 +1947-08-19,180.44,180.64,179.23,179.75,600000,179.75 +1947-08-18,181.04,181.43,179.98,180.44,710000,180.44 +1947-08-15,179.87,181.58,179.44,181.04,880000,181.04 +1947-08-14,179.80,180.43,178.64,179.87,690000,179.87 +1947-08-13,179.94,180.71,179.17,179.80,690000,179.80 +1947-08-12,179.14,180.76,179.14,179.94,690000,179.94 +1947-08-11,180.13,180.16,178.22,178.98,720000,178.98 +1947-08-08,181.99,181.99,179.77,180.13,790000,180.13 +1947-08-07,182.35,182.57,181.03,182.11,660000,182.11 +1947-08-06,183.08,183.48,181.85,182.35,660000,182.35 +1947-08-05,182.51,184.05,182.27,183.08,750000,183.08 +1947-08-04,183.69,183.69,182.01,182.51,730000,182.51 +1947-08-01,183.18,184.38,182.35,183.81,770000,183.81 +1947-07-31,181.17,183.56,181.17,183.18,840000,183.18 +1947-07-30,182.05,182.33,179.77,180.91,1170000,180.91 +1947-07-29,184.95,185.28,181.47,182.05,1390000,182.05 +1947-07-28,186.38,187.51,184.76,184.95,1090000,184.95 +1947-07-25,186.85,187.66,185.59,186.38,1150000,186.38 +1947-07-24,185.08,187.36,185.08,186.85,1570000,186.85 +1947-07-23,183.86,185.59,183.86,184.95,1070000,184.95 +1947-07-22,183.52,184.41,182.73,183.78,780000,183.78 +1947-07-21,184.60,184.86,183.02,183.52,850000,183.52 +1947-07-18,183.83,184.87,182.51,184.60,920000,184.60 +1947-07-17,185.46,185.92,183.43,183.83,1110000,183.83 +1947-07-16,185.38,186.23,184.05,185.46,1070000,185.46 +1947-07-15,185.60,186.24,184.23,185.38,1180000,185.38 +1947-07-14,184.77,187.15,184.64,185.60,1660000,185.60 +1947-07-11,183.14,185.52,183.14,184.77,1590000,184.77 +1947-07-10,181.72,183.24,180.82,182.80,1020000,182.80 +1947-07-09,182.66,183.29,181.12,181.72,1040000,181.72 +1947-07-08,182.04,183.74,181.53,182.66,1390000,182.66 +1947-07-07,181.73,182.61,180.62,182.04,1050000,182.04 +1947-07-03,179.88,182.07,179.18,181.73,1250000,181.73 +1947-07-02,180.33,181.17,179.33,179.88,1180000,179.88 +1947-07-01,177.48,180.42,177.48,180.33,1090000,180.33 +1947-06-30,176.56,177.66,175.82,177.30,670000,177.30 +1947-06-27,176.58,177.20,175.77,176.56,650000,176.56 +1947-06-26,175.73,177.15,175.44,176.58,820000,176.58 +1947-06-25,174.54,176.19,173.93,175.73,830000,175.73 +1947-06-24,177.44,177.55,174.13,174.54,1090000,174.54 +1947-06-23,176.44,178.08,176.22,177.44,950000,177.44 +1947-06-20,176.14,177.52,175.54,176.44,1130000,176.44 +1947-06-19,174.94,176.81,174.43,176.14,1010000,176.14 +1947-06-18,174.98,176.42,174.25,174.94,910000,174.94 +1947-06-17,175.81,176.11,174.28,174.98,670000,174.98 +1947-06-16,175.49,177.23,174.26,175.81,990000,175.81 +1947-06-13,173.78,176.02,173.26,175.49,960000,175.49 +1947-06-12,174.68,175.30,173.24,173.78,1040000,173.78 +1947-06-11,171.50,174.78,171.50,174.68,1350000,174.68 +1947-06-10,169.88,171.36,169.10,171.10,650000,171.10 +1947-06-09,170.28,170.71,169.26,169.88,550000,169.88 +1947-06-06,169.41,170.62,168.54,170.28,660000,170.28 +1947-06-05,169.56,170.16,168.90,169.41,520000,169.41 +1947-06-04,170.35,171.35,169.16,169.56,820000,169.56 +1947-06-03,168.00,170.69,168.00,170.35,690000,170.35 +1947-06-02,168.66,168.66,167.43,168.00,520000,168.00 +1947-05-29,168.06,169.78,168.06,169.25,900000,169.25 +1947-05-28,166.64,168.90,166.64,168.06,890000,168.06 +1947-05-27,166.29,166.53,164.59,166.17,660000,166.17 +1947-05-26,166.97,167.22,165.86,166.29,540000,166.29 +1947-05-23,166.73,167.68,166.06,166.95,680000,166.95 +1947-05-22,165.81,167.56,165.81,166.73,950000,166.73 +1947-05-21,163.59,166.03,162.98,165.77,1030000,165.77 +1947-05-20,163.55,164.81,162.99,163.59,920000,163.59 +1947-05-19,163.21,164.43,161.38,163.55,1860000,163.55 +1947-05-16,167.88,168.02,164.46,164.96,1430000,164.96 +1947-05-15,166.96,168.42,166.96,167.88,770000,167.88 +1947-05-14,167.34,167.34,165.93,166.68,1050000,166.68 +1947-05-13,169.17,169.17,167.07,167.34,1210000,167.34 +1947-05-12,171.67,171.69,169.76,169.80,700000,169.80 +1947-05-09,171.56,172.21,170.52,171.54,720000,171.54 +1947-05-08,172.49,172.87,171.20,171.56,670000,171.56 +1947-05-07,172.77,173.14,172.08,172.49,600000,172.49 +1947-05-06,173.83,173.83,171.89,172.77,750000,172.77 +1947-05-05,174.00,175.08,173.58,174.21,740000,174.21 +1947-05-02,171.91,174.45,171.85,173.45,950000,173.45 +1947-05-01,170.64,172.65,170.62,171.91,920000,171.91 +1947-04-30,168.76,170.85,168.76,170.64,780000,170.64 +1947-04-29,168.85,169.47,167.42,168.70,840000,168.70 +1947-04-28,169.13,170.00,168.56,168.85,590000,168.85 +1947-04-25,170.19,170.38,168.60,168.93,780000,168.93 +1947-04-24,170.87,171.20,169.81,170.19,620000,170.19 +1947-04-23,170.94,171.71,169.92,170.87,700000,170.87 +1947-04-22,169.50,171.25,169.24,170.94,890000,170.94 +1947-04-21,169.32,171.47,169.32,169.50,1160000,169.50 +1947-04-18,168.01,168.68,166.49,166.77,970000,166.77 +1947-04-17,168.22,168.91,167.49,168.01,760000,168.01 +1947-04-16,166.82,168.85,166.60,168.22,900000,168.22 +1947-04-15,166.69,168.09,165.39,166.82,1450000,166.82 +1947-04-14,170.42,170.42,166.17,166.69,2200000,166.69 +1947-04-11,173.98,174.76,172.90,173.43,860000,173.43 +1947-04-10,173.44,174.78,173.44,173.98,680000,173.98 +1947-04-09,173.29,173.72,172.39,173.40,850000,173.40 +1947-04-08,175.39,175.52,172.68,173.29,1020000,173.29 +1947-04-07,176.16,176.16,174.82,175.39,630000,175.39 +1947-04-03,177.21,177.21,175.60,176.52,680000,176.52 +1947-04-02,177.45,178.28,176.87,177.32,680000,177.32 +1947-04-01,177.20,177.74,176.18,177.45,770000,177.45 +1947-03-31,178.36,178.58,177.01,177.20,720000,177.20 +1947-03-28,179.19,179.68,178.18,178.63,830000,178.63 +1947-03-27,177.67,179.51,177.67,179.19,1140000,179.19 +1947-03-26,175.29,177.31,174.61,177.10,940000,177.10 +1947-03-25,176.40,176.66,175.05,175.29,660000,175.29 +1947-03-24,177.27,177.61,176.18,176.40,580000,176.40 +1947-03-21,175.37,177.12,175.37,176.90,710000,176.90 +1947-03-20,175.78,176.06,174.76,175.37,630000,175.37 +1947-03-19,175.11,176.90,175.11,175.78,760000,175.78 +1947-03-18,173.35,175.22,173.26,174.95,660000,174.95 +1947-03-17,172.53,174.15,172.53,173.35,640000,173.35 +1947-03-14,173.95,173.95,171.94,172.58,820000,172.58 +1947-03-13,174.68,175.32,173.95,174.35,650000,174.35 +1947-03-12,173.83,175.62,173.43,174.68,950000,174.68 +1947-03-11,175.18,175.20,173.09,173.83,1190000,173.83 +1947-03-10,175.84,176.36,174.73,175.18,830000,175.18 +1947-03-07,181.19,181.19,176.87,177.05,1210000,177.05 +1947-03-06,181.16,182.48,180.60,181.88,1020000,181.88 +1947-03-05,179.77,181.56,179.32,181.16,990000,181.16 +1947-03-04,179.43,180.31,178.46,179.77,680000,179.77 +1947-03-03,179.29,179.84,178.29,179.43,690000,179.43 +1947-02-28,178.91,179.73,177.75,178.90,690000,178.90 +1947-02-27,177.67,179.35,177.67,178.91,960000,178.91 +1947-02-26,179.02,179.02,176.34,177.22,1350000,177.22 +1947-02-25,181.40,181.92,178.86,179.31,1280000,179.31 +1947-02-24,182.26,182.47,181.03,181.40,810000,181.40 +1947-02-21,181.22,182.76,181.22,182.26,860000,182.26 +1947-02-20,180.78,181.40,179.12,180.74,1000000,180.74 +1947-02-19,181.85,181.85,179.85,180.78,980000,180.78 +1947-02-18,182.20,182.91,181.26,181.93,870000,181.93 +1947-02-17,181.36,182.74,180.89,182.20,870000,182.20 +1947-02-14,182.18,182.23,180.62,181.64,940000,181.64 +1947-02-13,184.06,184.25,181.64,182.18,1340000,182.18 +1947-02-11,183.57,184.43,181.81,184.06,1300000,184.06 +1947-02-10,184.49,184.96,183.12,183.57,1300000,183.57 +1947-02-07,181.57,184.18,181.33,183.74,1980000,183.74 +1947-02-06,182.27,182.27,180.72,181.57,1120000,181.57 +1947-02-05,182.28,183.12,181.45,182.52,1180000,182.52 +1947-02-04,181.92,183.15,181.44,182.28,1350000,182.28 +1947-02-03,180.88,182.37,180.57,181.92,1360000,181.92 +1947-01-31,179.74,181.34,179.49,180.44,1310000,180.44 +1947-01-30,180.17,181.18,179.33,179.74,1340000,179.74 +1947-01-29,178.68,180.47,178.03,180.17,1530000,180.17 +1947-01-28,177.28,178.98,177.17,178.68,1080000,178.68 +1947-01-27,175.35,177.55,175.05,177.28,900000,177.28 +1947-01-24,175.13,175.94,174.49,175.49,950000,175.49 +1947-01-23,173.77,175.35,173.59,175.13,880000,175.13 +1947-01-22,173.51,174.19,172.81,173.77,670000,173.77 +1947-01-21,173.95,173.95,172.64,173.51,700000,173.51 +1947-01-20,175.46,175.46,173.69,174.06,810000,174.06 +1947-01-17,172.58,174.87,172.58,174.76,850000,174.76 +1947-01-16,172.10,172.39,170.13,171.95,1050000,171.95 +1947-01-15,172.63,173.46,171.70,172.10,770000,172.10 +1947-01-14,172.49,173.24,171.31,172.63,850000,172.63 +1947-01-13,174.50,174.50,170.99,172.49,1590000,172.49 +1947-01-10,178.43,178.84,176.59,177.43,1060000,177.43 +1947-01-09,178.06,179.06,177.94,178.43,720000,178.43 +1947-01-08,177.49,178.43,176.54,178.06,790000,178.06 +1947-01-07,178.43,179.25,177.12,177.49,980000,177.49 +1947-01-06,176.99,179.04,176.99,178.43,980000,178.43 +1947-01-03,176.39,177.16,174.71,176.76,880000,176.76 +1947-01-02,177.20,177.83,176.04,176.39,750000,176.39 +1946-12-31,176.23,177.89,175.79,177.20,1820000,177.20 +1946-12-30,175.77,177.00,175.15,176.23,1400000,176.23 +1946-12-27,175.21,176.17,173.88,175.66,1290000,175.66 +1946-12-26,176.79,176.79,174.54,175.21,1150000,175.21 +1946-12-24,177.36,177.51,176.25,176.95,950000,176.95 +1946-12-23,178.32,178.54,176.85,177.36,1170000,177.36 +1946-12-20,177.29,178.58,176.82,177.85,1470000,177.85 +1946-12-19,175.28,178.06,175.28,177.29,1740000,177.29 +1946-12-18,174.47,175.62,173.62,174.84,1110000,174.84 +1946-12-17,174.85,175.42,173.93,174.47,1020000,174.47 +1946-12-16,174.73,175.93,174.18,174.85,1010000,174.85 +1946-12-13,173.91,174.41,172.57,173.90,1000000,173.90 +1946-12-12,175.75,175.75,173.17,173.91,1060000,173.91 +1946-12-11,175.92,176.67,174.80,176.07,1230000,176.07 +1946-12-10,175.76,177.21,174.84,175.92,1730000,175.92 +1946-12-09,173.43,176.48,173.43,175.76,2840000,175.76 +1946-12-06,169.95,170.92,169.20,170.39,1060000,170.39 +1946-12-05,170.33,170.66,168.63,169.95,1000000,169.95 +1946-12-04,168.05,170.98,167.48,170.33,1440000,170.33 +1946-12-03,167.50,168.60,166.20,168.05,960000,168.05 +1946-12-02,169.07,169.07,166.74,167.50,810000,167.50 +1946-11-29,168.34,170.25,168.23,169.78,1010000,169.78 +1946-11-27,167.35,169.18,167.35,168.34,1070000,168.34 +1946-11-26,165.31,167.81,165.31,166.94,1080000,166.94 +1946-11-25,165.10,165.99,164.37,165.23,790000,165.23 +1946-11-22,164.12,164.49,162.29,163.55,1200000,163.55 +1946-11-21,165.98,165.98,163.50,164.12,1380000,164.12 +1946-11-20,167.88,167.99,166.20,166.91,970000,166.91 +1946-11-19,167.91,168.35,166.28,167.88,910000,167.88 +1946-11-18,169.03,169.11,167.23,167.91,770000,167.91 +1946-11-15,170.88,171.48,168.89,169.67,930000,169.67 +1946-11-14,169.84,171.45,169.16,170.88,960000,170.88 +1946-11-13,170.52,170.52,168.02,169.84,1050000,169.84 +1946-11-12,171.80,173.48,170.41,170.87,1370000,170.87 +1946-11-08,169.75,171.78,169.75,170.79,1000000,170.79 +1946-11-07,168.88,170.59,167.50,169.60,1140000,169.60 +1946-11-06,174.40,175.00,168.38,168.88,2000000,168.88 +1946-11-04,173.03,175.78,173.03,174.40,1830000,174.40 +1946-11-01,169.50,172.33,169.50,171.76,1670000,171.76 +1946-10-31,164.71,169.68,164.71,169.15,1700000,169.15 +1946-10-30,164.21,165.32,160.49,164.20,1940000,164.20 +1946-10-29,166.04,166.62,163.98,164.21,1240000,164.21 +1946-10-28,168.44,168.48,165.98,166.04,1000000,166.04 +1946-10-25,169.96,169.96,167.84,168.76,920000,168.76 +1946-10-24,170.67,170.90,169.14,169.98,860000,169.98 +1946-10-23,171.25,171.27,168.68,170.67,950000,170.67 +1946-10-22,171.93,172.34,170.16,171.25,870000,171.25 +1946-10-21,171.34,172.59,170.63,171.93,840000,171.93 +1946-10-18,171.76,172.51,170.32,171.65,920000,171.65 +1946-10-17,173.61,173.61,170.47,171.76,1310000,171.76 +1946-10-16,175.94,177.05,174.03,174.35,1650000,174.35 +1946-10-15,173.05,176.52,173.05,175.94,2370000,175.94 +1946-10-14,167.97,170.60,167.53,169.86,1290000,169.86 +1946-10-11,165.60,168.59,165.60,167.97,1470000,167.97 +1946-10-10,163.12,165.53,161.61,164.94,2220000,164.94 +1946-10-09,166.53,166.53,162.80,163.12,2020000,163.12 +1946-10-08,168.87,170.00,167.00,167.34,1260000,167.34 +1946-10-07,169.00,169.83,167.82,168.87,950000,168.87 +1946-10-04,171.13,171.13,169.06,169.80,920000,169.80 +1946-10-03,172.72,173.10,171.13,171.64,920000,171.64 +1946-10-02,171.47,173.39,171.40,172.72,960000,172.72 +1946-10-01,172.42,172.42,170.43,171.47,890000,171.47 +1946-09-30,173.56,173.56,170.44,172.42,1060000,172.42 +1946-09-27,174.96,175.18,173.35,174.09,980000,174.09 +1946-09-26,172.95,175.45,171.59,174.96,1300000,174.96 +1946-09-25,169.43,173.44,169.43,172.95,1800000,172.95 +1946-09-24,166.56,169.75,164.21,168.89,2230000,168.89 +1946-09-23,169.06,172.15,166.09,166.56,2120000,166.56 +1946-09-20,165.17,170.13,164.77,169.06,2820000,169.06 +1946-09-19,169.05,169.05,164.09,165.17,2890000,165.17 +1946-09-18,173.43,173.43,168.40,169.07,2100000,169.07 +1946-09-17,174.45,174.82,172.13,173.66,1390000,173.66 +1946-09-16,173.39,176.26,173.02,174.45,1490000,174.45 +1946-09-13,171.70,173.99,170.87,173.39,1720000,173.39 +1946-09-12,172.13,173.34,170.00,171.70,2010000,171.70 +1946-09-11,167.80,173.20,167.80,172.13,2870000,172.13 +1946-09-10,172.03,172.89,166.56,167.30,3300000,167.30 +1946-09-09,177.52,177.52,170.53,172.03,2840000,172.03 +1946-09-06,181.18,181.67,178.43,179.96,1670000,179.96 +1946-09-05,177.96,181.81,177.96,181.18,2360000,181.18 +1946-09-04,178.68,178.93,173.64,176.72,3620000,176.72 +1946-09-03,188.21,188.21,177.49,178.68,2910000,178.68 +1946-08-30,190.47,190.49,187.44,189.19,1170000,189.19 +1946-08-29,190.03,192.50,189.71,190.47,1060000,190.47 +1946-08-28,191.04,191.28,187.26,190.03,2100000,190.03 +1946-08-27,195.46,195.46,190.03,191.04,1790000,191.04 +1946-08-26,197.75,198.97,196.47,196.99,760000,196.99 +1946-08-23,196.91,198.69,196.91,197.75,770000,197.75 +1946-08-22,198.05,198.05,194.53,196.66,1540000,196.66 +1946-08-21,201.27,202.49,199.70,200.00,840000,200.00 +1946-08-20,200.22,201.54,200.22,201.27,700000,201.27 +1946-08-19,200.69,201.18,198.90,200.19,660000,200.19 +1946-08-16,201.38,201.38,200.14,200.69,690000,200.69 +1946-08-15,203.81,203.81,202.30,202.49,620000,202.49 +1946-08-14,204.52,205.01,203.59,203.99,800000,203.99 +1946-08-13,203.36,204.94,203.28,204.52,930000,204.52 +1946-08-12,203.57,203.90,202.81,203.36,700000,203.36 +1946-08-09,204.10,204.46,203.16,203.57,910000,203.57 +1946-08-08,203.13,204.56,203.13,204.10,890000,204.10 +1946-08-07,201.35,203.08,201.18,202.96,880000,202.96 +1946-08-06,201.93,202.05,200.47,201.35,730000,201.35 +1946-08-05,202.82,203.03,201.39,201.93,700000,201.93 +1946-08-02,202.26,203.38,201.70,202.82,750000,202.82 +1946-08-01,201.56,202.97,201.32,202.26,830000,202.26 +1946-07-31,199.40,202.15,198.78,201.56,1020000,201.56 +1946-07-30,198.22,200.13,198.15,199.40,810000,199.40 +1946-07-29,197.63,199.11,197.46,198.22,720000,198.22 +1946-07-26,196.47,198.53,196.47,197.63,980000,197.63 +1946-07-25,195.37,197.58,195.28,196.25,900000,196.25 +1946-07-24,195.22,196.30,194.33,195.37,1170000,195.37 +1946-07-23,199.83,199.83,194.79,195.22,1690000,195.22 +1946-07-22,201.13,201.60,199.89,200.54,690000,200.54 +1946-07-19,201.86,202.06,200.68,201.13,650000,201.13 +1946-07-18,202.25,203.46,201.47,201.86,730000,201.86 +1946-07-17,200.85,202.79,200.85,202.25,920000,202.25 +1946-07-16,200.86,201.44,199.48,200.71,1180000,200.71 +1946-07-15,204.20,204.42,200.31,200.86,1170000,200.86 +1946-07-12,205.49,205.49,202.85,204.20,1130000,204.20 +1946-07-11,207.52,207.52,205.96,206.30,990000,206.30 +1946-07-10,207.43,208.17,206.84,207.56,910000,207.56 +1946-07-09,206.62,207.91,206.16,207.43,790000,207.43 +1946-07-08,206.72,207.40,206.37,206.62,680000,206.62 +1946-07-05,207.06,207.40,206.47,206.72,490000,206.72 +1946-07-03,206.64,207.50,206.36,207.06,650000,207.06 +1946-07-02,206.47,207.43,205.56,206.64,760000,206.64 +1946-07-01,205.79,208.59,205.79,206.47,1570000,206.47 +1946-06-28,205.03,206.41,204.32,205.62,1010000,205.62 +1946-06-27,202.83,205.68,202.83,205.03,1200000,205.03 +1946-06-26,202.54,202.98,200.52,202.10,1020000,202.10 +1946-06-25,203.56,203.83,202.11,202.54,880000,202.54 +1946-06-24,203.09,204.65,202.68,203.56,990000,203.56 +1946-06-21,200.52,203.42,198.98,203.09,1340000,203.09 +1946-06-20,205.65,205.65,200.31,200.52,1310000,200.52 +1946-06-19,206.93,206.93,205.24,205.74,1010000,205.74 +1946-06-18,210.01,210.01,207.42,207.71,1150000,207.71 +1946-06-17,210.36,211.16,209.65,210.13,1020000,210.13 +1946-06-14,210.56,211.46,209.73,210.36,980000,210.36 +1946-06-13,209.26,211.25,209.26,210.56,1150000,210.56 +1946-06-12,209.05,209.34,207.52,208.96,970000,208.96 +1946-06-11,210.68,211.14,208.92,209.05,1090000,209.05 +1946-06-10,209.96,211.44,209.73,210.68,1010000,210.68 +1946-06-07,209.50,210.40,208.63,209.96,1020000,209.96 +1946-06-06,209.78,210.03,208.33,209.50,980000,209.50 +1946-06-05,210.03,211.42,209.30,209.78,1170000,209.78 +1946-06-04,211.37,211.37,209.03,210.03,1210000,210.03 +1946-06-03,212.28,212.48,210.90,211.47,1210000,211.47 +1946-05-31,212.50,213.29,210.97,212.28,1310000,212.28 +1946-05-29,211.70,213.36,210.34,212.50,2000000,212.50 +1946-05-28,209.42,212.18,209.29,211.70,2220000,211.70 +1946-05-27,208.41,210.34,208.41,209.42,1730000,209.42 +1946-05-24,208.05,208.26,205.96,207.69,1210000,207.69 +1946-05-23,208.00,209.15,207.21,208.05,1350000,208.05 +1946-05-22,207.25,208.38,207.00,208.00,1610000,208.00 +1946-05-21,207.13,208.53,206.58,207.25,1250000,207.25 +1946-05-20,205.80,207.42,205.05,207.13,910000,207.13 +1946-05-17,206.17,207.04,205.50,206.56,980000,206.56 +1946-05-16,205.07,206.53,204.38,206.17,1140000,206.17 +1946-05-15,206.69,206.82,204.23,205.07,1020000,205.07 +1946-05-14,207.34,207.47,205.88,206.69,1140000,206.69 +1946-05-13,208.06,208.40,206.63,207.34,1250000,207.34 +1946-05-10,204.09,207.84,204.09,207.10,1820000,207.10 +1946-05-09,204.17,204.68,202.37,204.07,1070000,204.07 +1946-05-08,203.51,205.05,202.35,204.17,1210000,204.17 +1946-05-07,200.65,203.97,199.94,203.51,1350000,203.51 +1946-05-06,202.00,202.00,199.26,200.65,1080000,200.65 +1946-05-03,204.31,204.31,202.53,203.25,1020000,203.25 +1946-05-02,205.67,206.25,204.47,204.98,1000000,204.98 +1946-05-01,206.59,206.59,205.07,205.67,980000,205.67 +1946-04-30,206.09,207.23,205.53,206.77,1000000,206.77 +1946-04-29,206.13,206.97,205.07,206.09,1000000,206.09 +1946-04-26,204.60,205.21,203.13,204.59,1210000,204.59 +1946-04-25,205.60,205.60,203.09,204.60,1390000,204.60 +1946-04-24,207.31,208.12,205.81,206.13,1500000,206.13 +1946-04-23,207.99,208.19,206.01,207.31,1380000,207.31 +1946-04-22,208.06,208.94,207.33,207.99,1210000,207.99 +1946-04-18,207.93,209.10,207.27,208.31,1500000,208.31 +1946-04-17,207.97,209.36,206.97,207.93,1530000,207.93 +1946-04-16,206.28,208.51,206.28,207.97,1460000,207.97 +1946-04-15,206.02,206.36,204.57,206.01,1170000,206.01 +1946-04-12,206.93,207.89,206.16,206.96,1240000,206.96 +1946-04-11,207.90,207.90,206.05,206.93,1210000,206.93 +1946-04-10,208.03,208.93,207.20,208.02,1580000,208.02 +1946-04-09,205.43,208.54,205.43,208.03,1710000,208.03 +1946-04-08,204.98,206.00,204.31,205.43,1250000,205.43 +1946-04-05,204.77,205.18,202.88,204.04,1660000,204.04 +1946-04-04,203.25,205.79,203.25,204.77,2130000,204.77 +1946-04-03,199.83,203.29,199.81,203.12,1560000,203.12 +1946-04-02,199.19,200.16,198.98,199.83,1040000,199.83 +1946-04-01,199.75,199.97,198.47,199.19,1050000,199.19 +1946-03-29,198.23,200.36,198.23,199.56,1230000,199.56 +1946-03-28,198.73,198.92,197.27,198.18,900000,198.18 +1946-03-27,199.81,199.81,197.83,198.73,1000000,198.73 +1946-03-26,200.55,201.85,200.04,200.56,1440000,200.56 +1946-03-25,198.27,200.80,198.27,200.55,1640000,200.55 +1946-03-22,196.70,198.20,195.92,197.19,1180000,197.19 +1946-03-21,195.53,197.00,195.10,196.70,1210000,196.70 +1946-03-20,194.09,195.90,193.63,195.53,1280000,195.53 +1946-03-19,195.33,196.23,193.77,194.09,1050000,194.09 +1946-03-18,194.05,195.86,194.05,195.33,1070000,195.33 +1946-03-15,189.98,192.14,189.71,191.66,1060000,191.66 +1946-03-14,190.36,191.76,189.32,189.98,1090000,189.98 +1946-03-13,192.87,192.87,188.86,190.36,1620000,190.36 +1946-03-12,192.89,193.86,192.39,193.52,720000,193.52 +1946-03-11,194.45,194.73,192.34,192.89,880000,192.89 +1946-03-08,192.08,194.40,192.08,193.70,970000,193.70 +1946-03-07,190.30,191.93,190.30,191.50,900000,191.50 +1946-03-06,190.49,190.77,189.39,190.28,890000,190.28 +1946-03-05,188.91,191.16,188.91,190.49,1050000,190.49 +1946-03-04,188.73,188.87,186.77,188.46,970000,188.46 +1946-03-01,190.09,190.58,188.90,189.42,820000,189.42 +1946-02-28,189.06,190.64,188.19,190.09,1180000,190.09 +1946-02-27,187.34,189.56,187.34,189.06,1400000,189.06 +1946-02-26,187.23,188.09,184.05,186.02,2650000,186.02 +1946-02-25,194.04,194.04,186.87,187.23,2400000,187.23 +1946-02-21,193.05,196.30,193.05,195.62,1590000,195.62 +1946-02-20,195.06,195.06,191.17,192.38,2150000,192.38 +1946-02-19,200.42,200.42,194.90,196.13,2300000,196.13 +1946-02-18,204.13,204.13,200.84,201.63,1560000,201.63 +1946-02-15,201.06,203.56,201.06,203.09,1780000,203.09 +1946-02-14,198.74,201.18,198.45,199.75,1290000,199.75 +1946-02-13,200.81,200.81,197.65,198.74,1690000,198.74 +1946-02-11,202.30,202.72,200.59,201.14,1440000,201.14 +1946-02-08,205.09,205.60,203.62,204.38,1260000,204.38 +1946-02-07,205.48,205.73,203.63,205.09,1490000,205.09 +1946-02-06,206.61,207.24,205.15,205.48,1750000,205.48 +1946-02-05,205.84,206.84,204.55,206.61,1670000,206.61 +1946-02-04,206.97,207.49,205.05,205.84,1660000,205.84 +1946-02-01,204.67,206.06,203.69,205.79,1560000,205.79 +1946-01-31,204.84,205.22,203.07,204.67,1690000,204.67 +1946-01-30,205.35,206.59,203.37,204.84,2280000,204.84 +1946-01-29,204.62,206.49,203.75,205.35,2910000,205.35 +1946-01-28,202.10,205.50,202.10,204.62,3490000,204.62 +1946-01-25,200.04,200.13,198.17,199.50,1760000,199.50 +1946-01-24,198.84,200.86,198.68,200.04,2210000,200.04 +1946-01-23,197.35,199.48,197.20,198.84,2050000,198.84 +1946-01-22,196.63,198.00,195.63,197.35,1530000,197.35 +1946-01-21,198.03,198.03,195.52,196.63,1680000,196.63 +1946-01-18,203.49,203.70,200.78,202.18,3230000,202.18 +1946-01-17,203.81,205.03,202.95,203.49,2200000,203.49 +1946-01-16,202.97,204.50,201.93,203.81,2100000,203.81 +1946-01-15,201.93,204.02,201.73,202.97,2720000,202.97 +1946-01-14,200.25,202.59,200.25,201.93,2740000,201.93 +1946-01-11,199.16,200.86,198.67,200.04,2250000,200.04 +1946-01-10,197.33,199.78,197.17,199.16,2470000,199.16 +1946-01-09,195.16,198.40,195.16,197.33,2930000,197.33 +1946-01-08,192.04,194.98,192.04,194.65,2160000,194.65 +1946-01-07,191.47,192.40,190.87,191.77,1230000,191.77 +1946-01-04,191.25,191.81,190.27,190.90,1080000,190.90 +1946-01-03,191.66,191.97,189.77,191.25,1390000,191.25 +1946-01-02,192.65,192.65,191.15,191.66,1050000,191.66 +1945-12-31,192.84,193.47,192.07,192.91,1010000,192.91 +1945-12-28,192.31,192.95,191.58,192.43,1090000,192.43 +1945-12-27,192.76,193.89,191.76,192.31,1330000,192.31 +1945-12-26,191.59,193.45,191.59,192.76,1420000,192.76 +1945-12-21,189.36,189.67,187.51,189.07,940000,189.07 +1945-12-20,190.22,190.22,188.84,189.36,800000,189.36 +1945-12-19,190.98,191.43,190.11,190.62,980000,190.62 +1945-12-18,190.37,191.78,189.33,190.98,1360000,190.98 +1945-12-17,192.87,192.87,189.80,190.37,1990000,190.37 +1945-12-14,193.52,193.86,192.50,193.34,1130000,193.34 +1945-12-13,193.96,194.62,192.84,193.52,1220000,193.52 +1945-12-12,195.39,195.39,193.18,193.96,1680000,193.96 +1945-12-11,195.64,196.47,194.34,195.82,1690000,195.82 +1945-12-10,195.18,196.59,194.76,195.64,2140000,195.64 +1945-12-07,193.84,194.78,193.18,194.08,2050000,194.08 +1945-12-06,193.08,194.62,192.70,193.84,2290000,193.84 +1945-12-05,193.06,193.67,191.75,193.08,1860000,193.08 +1945-12-04,193.65,194.12,192.17,193.06,2310000,193.06 +1945-12-03,192.40,194.36,192.16,193.65,2610000,193.65 +1945-11-30,189.77,191.84,189.77,191.46,1820000,191.46 +1945-11-29,189.99,190.22,188.80,189.58,1750000,189.58 +1945-11-28,190.45,191.47,189.58,189.99,1800000,189.99 +1945-11-27,188.79,190.90,188.79,190.45,1830000,190.45 +1945-11-26,186.44,188.55,186.44,188.16,1530000,188.16 +1945-11-23,189.26,189.26,187.34,187.82,1350000,187.82 +1945-11-21,191.47,191.47,188.97,189.54,1910000,189.54 +1945-11-20,191.51,192.83,190.69,192.12,2180000,192.12 +1945-11-19,192.27,192.50,190.20,191.51,2020000,191.51 +1945-11-16,191.13,192.95,191.02,192.13,2340000,192.13 +1945-11-15,189.77,191.60,189.58,191.13,2010000,191.13 +1945-11-14,190.56,190.61,188.82,189.77,1610000,189.77 +1945-11-13,191.37,192.46,190.23,190.56,2500000,190.56 +1945-11-09,191.72,192.46,190.68,191.46,1830000,191.46 +1945-11-08,192.04,192.78,190.79,191.72,1960000,191.72 +1945-11-07,190.13,192.76,190.13,192.04,2380000,192.04 +1945-11-05,188.58,189.69,188.02,189.50,1650000,189.50 +1945-11-02,188.84,189.40,187.54,188.62,1840000,188.62 +1945-11-01,187.02,189.33,187.02,188.84,2210000,188.84 +1945-10-31,184.16,186.74,183.59,186.60,2060000,186.60 +1945-10-30,184.24,184.61,182.88,184.16,1170000,184.16 +1945-10-29,185.39,186.02,183.90,184.24,1260000,184.24 +1945-10-26,184.54,186.01,184.09,185.39,1300000,185.39 +1945-10-25,183.72,185.13,183.43,184.54,1230000,184.54 +1945-10-24,185.52,185.52,183.02,183.72,1370000,183.72 +1945-10-23,187.06,187.52,184.76,186.15,1370000,186.15 +1945-10-22,185.60,187.26,185.29,187.06,1140000,187.06 +1945-10-19,186.78,187.50,185.12,185.34,1730000,185.34 +1945-10-18,186.10,187.55,185.68,186.78,1670000,186.78 +1945-10-17,185.49,186.72,184.92,186.10,1800000,186.10 +1945-10-16,185.51,185.98,184.42,185.49,1630000,185.49 +1945-10-15,185.72,186.32,185.00,185.51,1630000,185.51 +1945-10-11,186.05,186.10,184.83,185.72,1560000,185.72 +1945-10-10,185.43,186.52,185.07,186.05,1700000,186.05 +1945-10-09,185.46,185.95,184.26,185.43,1640000,185.43 +1945-10-08,184.77,186.02,184.66,185.46,1780000,185.46 +1945-10-05,183.06,184.48,182.80,183.94,1420000,183.94 +1945-10-04,183.33,183.75,182.32,183.06,1340000,183.06 +1945-10-03,183.85,184.20,182.32,183.33,1430000,183.33 +1945-10-02,183.37,185.05,183.13,183.85,1800000,183.85 +1945-10-01,181.93,183.92,181.93,183.37,1990000,183.37 +1945-09-28,178.83,180.31,178.83,180.11,1380000,180.11 +1945-09-27,178.95,179.36,177.82,178.57,1060000,178.57 +1945-09-26,179.41,179.41,178.12,178.95,1040000,178.95 +1945-09-25,179.51,180.42,178.89,179.42,1190000,179.42 +1945-09-24,179.49,179.79,178.71,179.51,890000,179.51 +1945-09-21,180.22,180.80,178.87,179.69,1340000,179.69 +1945-09-20,179.51,180.72,178.92,180.22,1500000,180.22 +1945-09-19,178.32,180.06,178.32,179.51,1690000,179.51 +1945-09-18,175.19,177.76,175.19,177.58,1160000,177.58 +1945-09-17,175.11,175.11,173.30,174.75,900000,174.75 +1945-09-14,178.59,178.59,177.20,177.74,1020000,177.74 +1945-09-13,178.99,179.33,178.21,178.59,1170000,178.59 +1945-09-12,177.77,179.33,177.55,178.99,1340000,178.99 +1945-09-11,177.03,178.04,176.33,177.77,1130000,177.77 +1945-09-10,176.99,177.78,176.62,177.03,1110000,177.03 +1945-09-07,175.96,177.57,175.76,176.61,1330000,176.61 +1945-09-06,174.24,176.14,174.17,175.96,1380000,175.96 +1945-09-05,173.90,174.49,173.23,174.24,980000,174.24 +1945-09-04,174.29,174.86,173.52,173.90,1070000,173.90 +1945-08-31,172.73,174.54,172.73,174.29,1110000,174.29 +1945-08-30,172.09,172.58,171.46,172.37,890000,172.37 +1945-08-29,172.32,172.51,171.34,172.09,920000,172.09 +1945-08-28,171.96,172.93,171.43,172.32,1260000,172.32 +1945-08-27,170.11,172.26,170.11,171.96,1570000,171.96 +1945-08-24,167.64,170.04,167.54,169.89,1320000,169.89 +1945-08-23,164.99,167.94,164.99,167.64,1190000,167.64 +1945-08-22,163.38,164.94,163.35,164.54,760000,164.54 +1945-08-21,163.11,163.88,162.28,163.38,1160000,163.38 +1945-08-20,164.38,164.82,162.68,163.11,1320000,163.11 +1945-08-17,164.79,166.08,164.01,164.38,1210000,164.38 +1945-08-14,164.11,165.22,164.04,164.79,910000,164.79 +1945-08-13,165.02,165.02,162.81,164.11,970000,164.11 +1945-08-10,164.55,166.54,164.07,165.14,1690000,165.14 +1945-08-09,161.83,164.82,161.14,164.55,1460000,164.55 +1945-08-08,161.55,162.74,161.17,161.83,700000,161.83 +1945-08-07,162.87,162.87,161.16,161.55,980000,161.55 +1945-08-06,163.06,163.69,162.66,163.19,490000,163.19 +1945-08-03,162.49,163.23,162.27,163.06,510000,163.06 +1945-08-02,162.72,163.08,161.82,162.49,600000,162.49 +1945-08-01,162.88,163.21,162.27,162.72,650000,162.72 +1945-07-31,162.21,163.36,162.21,162.88,870000,162.88 +1945-07-30,160.92,162.51,160.88,162.09,910000,162.09 +1945-07-27,160.91,161.34,159.95,160.92,920000,160.92 +1945-07-26,162.44,162.91,160.71,160.91,1440000,160.91 +1945-07-25,162.10,162.63,162.10,162.44,620000,162.44 +1945-07-24,161.65,162.00,160.98,161.73,640000,161.73 +1945-07-23,162.50,162.82,161.49,161.65,760000,161.65 +1945-07-20,162.81,163.22,162.04,162.50,650000,162.50 +1945-07-19,161.95,163.39,161.95,162.81,780000,162.81 +1945-07-18,162.43,162.87,160.62,161.69,1450000,161.69 +1945-07-17,165.22,165.22,162.29,162.43,1560000,162.43 +1945-07-16,166.67,167.08,165.46,165.82,790000,165.82 +1945-07-13,166.85,167.41,166.29,166.67,960000,166.67 +1945-07-12,166.59,167.24,165.51,166.85,970000,166.85 +1945-07-11,167.09,167.49,166.16,166.59,810000,166.59 +1945-07-10,166.60,167.79,166.60,167.09,940000,167.09 +1945-07-09,164.67,166.76,164.64,166.55,800000,166.55 +1945-07-06,164.26,165.07,163.47,164.67,960000,164.67 +1945-07-05,165.36,165.36,164.02,164.26,920000,164.26 +1945-07-03,165.91,166.39,165.35,165.73,860000,165.73 +1945-07-02,165.39,166.75,165.39,165.91,1380000,165.91 +1945-06-29,166.22,166.24,163.78,164.57,2020000,164.57 +1945-06-28,168.78,168.80,165.70,166.22,2940000,166.22 +1945-06-27,168.92,169.27,168.36,168.78,1690000,168.78 +1945-06-26,168.59,169.55,168.40,168.92,2140000,168.92 +1945-06-25,168.24,168.90,167.97,168.59,1890000,168.59 +1945-06-22,168.14,168.69,167.48,167.90,1850000,167.90 +1945-06-21,167.74,168.84,167.53,168.14,2100000,168.14 +1945-06-20,167.23,168.01,166.81,167.74,1680000,167.74 +1945-06-19,166.94,167.80,166.50,167.23,1560000,167.23 +1945-06-18,167.54,167.72,166.67,166.94,1930000,166.94 +1945-06-15,167.08,168.10,166.92,167.64,1900000,167.64 +1945-06-14,166.75,167.47,166.51,167.08,1850000,167.08 +1945-06-13,166.39,167.10,166.07,166.75,1590000,166.75 +1945-06-12,166.25,166.78,165.89,166.39,1320000,166.39 +1945-06-11,166.85,167.20,166.09,166.25,1490000,166.25 +1945-06-08,167.16,167.67,166.54,166.83,1710000,166.83 +1945-06-07,167.29,167.63,166.58,167.16,1300000,167.16 +1945-06-06,168.13,168.16,166.58,167.29,1520000,167.29 +1945-06-05,168.08,168.80,167.54,168.13,1510000,168.13 +1945-06-04,167.96,168.49,167.36,168.08,1540000,168.08 +1945-06-01,168.30,168.51,167.47,168.08,1430000,168.08 +1945-05-31,169.08,169.41,167.90,168.30,1220000,168.30 +1945-05-29,168.21,169.53,168.06,169.08,1600000,169.08 +1945-05-28,166.45,168.75,166.45,168.21,1570000,168.21 +1945-05-25,164.41,165.55,164.38,165.12,1300000,165.12 +1945-05-24,164.50,164.81,163.73,164.41,960000,164.41 +1945-05-23,165.72,165.72,163.80,164.50,1310000,164.50 +1945-05-22,165.99,166.61,165.47,165.91,1050000,165.91 +1945-05-21,166.44,166.93,165.61,165.99,1080000,165.99 +1945-05-18,165.20,166.47,165.19,166.17,1430000,166.17 +1945-05-17,164.50,165.85,164.23,165.20,1370000,165.20 +1945-05-16,164.00,165.07,163.76,164.50,1210000,164.50 +1945-05-15,163.45,164.31,163.07,164.00,1010000,164.00 +1945-05-14,163.96,164.41,163.16,163.45,980000,163.45 +1945-05-11,163.09,163.82,162.60,163.21,1070000,163.21 +1945-05-10,164.56,164.56,162.68,163.09,1510000,163.09 +1945-05-09,166.42,166.72,165.06,165.24,1490000,165.24 +1945-05-08,166.53,167.25,165.62,166.42,1580000,166.42 +1945-05-07,166.71,167.25,165.76,166.53,1950000,166.53 +1945-05-04,165.84,166.61,165.40,166.27,1410000,166.27 +1945-05-03,165.03,166.02,164.77,165.84,1340000,165.84 +1945-05-02,165.09,165.38,164.45,165.03,1140000,165.03 +1945-05-01,165.44,166.18,164.49,165.09,1530000,165.09 +1945-04-30,164.71,165.71,164.10,165.44,1500000,165.44 +1945-04-27,163.22,164.27,163.12,163.94,1360000,163.94 +1945-04-26,163.78,163.78,162.06,163.22,1370000,163.22 +1945-04-25,164.31,164.46,163.17,163.91,1420000,163.91 +1945-04-24,163.58,164.62,163.33,164.31,1830000,164.31 +1945-04-23,163.20,164.08,162.88,163.58,1380000,163.58 +1945-04-20,163.18,163.67,162.46,162.83,1130000,162.83 +1945-04-19,163.83,164.45,162.72,163.18,1680000,163.18 +1945-04-18,162.60,164.17,162.35,163.83,1710000,163.83 +1945-04-17,162.43,163.72,162.15,162.60,2070000,162.60 +1945-04-16,160.57,162.76,160.57,162.43,2500000,162.43 +1945-04-13,158.48,159.95,157.73,159.75,1800000,159.75 +1945-04-12,158.06,159.14,157.89,158.48,1060000,158.48 +1945-04-11,156.59,158.17,156.59,158.06,1060000,158.06 +1945-04-10,156.10,156.82,155.54,156.51,760000,156.51 +1945-04-09,156.33,156.71,155.91,156.10,570000,156.10 +1945-04-06,154.99,155.95,154.70,155.85,610000,155.85 +1945-04-05,155.96,156.26,154.77,154.99,680000,154.99 +1945-04-04,156.20,156.41,155.69,155.96,520000,155.96 +1945-04-03,155.94,156.97,155.94,156.20,730000,156.20 +1945-04-02,154.51,156.05,154.51,155.86,650000,155.86 +1945-03-29,153.79,154.46,153.48,154.06,660000,154.06 +1945-03-28,152.89,154.08,152.89,153.79,720000,153.79 +1945-03-27,152.27,153.51,151.77,152.78,1110000,152.78 +1945-03-26,153.62,153.62,151.74,152.27,1390000,152.27 +1945-03-23,155.07,156.00,154.68,155.45,680000,155.45 +1945-03-22,155.30,155.73,154.82,155.07,830000,155.07 +1945-03-21,156.10,156.10,154.08,155.30,1340000,155.30 +1945-03-20,157.71,157.71,156.14,156.37,920000,156.37 +1945-03-19,158.75,158.88,157.36,157.89,1070000,157.89 +1945-03-16,158.53,159.42,158.41,158.92,880000,158.92 +1945-03-15,157.84,158.95,157.84,158.53,800000,158.53 +1945-03-14,157.59,158.16,157.29,157.83,750000,157.83 +1945-03-13,157.88,158.24,156.94,157.59,760000,157.59 +1945-03-12,157.33,158.38,157.33,157.88,920000,157.88 +1945-03-09,158.29,158.29,155.96,156.34,2060000,156.34 +1945-03-08,161.34,161.34,158.31,158.86,1860000,158.86 +1945-03-07,161.50,162.21,160.96,161.52,1400000,161.52 +1945-03-06,160.68,162.22,160.56,161.50,1690000,161.50 +1945-03-05,159.71,160.85,159.56,160.68,1190000,160.68 +1945-03-02,160.72,160.76,159.63,159.95,1770000,159.95 +1945-03-01,160.40,161.15,160.11,160.72,2090000,160.72 +1945-02-28,159.51,160.85,159.51,160.40,1960000,160.40 +1945-02-27,158.41,159.47,158.23,159.30,1190000,159.30 +1945-02-26,158.69,158.91,157.45,158.41,1260000,158.41 +1945-02-23,159.66,159.80,158.55,158.99,1320000,158.99 +1945-02-21,159.57,160.17,158.04,159.66,1720000,159.66 +1945-02-20,159.01,159.86,158.69,159.57,1770000,159.57 +1945-02-19,158.23,159.54,157.92,159.01,1880000,159.01 +1945-02-16,158.24,158.82,157.57,158.23,1900000,158.23 +1945-02-15,157.08,158.37,157.06,158.24,1870000,158.24 +1945-02-14,156.37,157.81,156.37,157.08,2060000,157.08 +1945-02-13,154.90,156.49,154.90,156.34,1800000,156.34 +1945-02-09,155.48,155.48,154.25,154.75,1180000,154.75 +1945-02-08,155.71,156.17,155.19,155.54,1530000,155.54 +1945-02-07,155.50,156.07,155.13,155.71,1500000,155.71 +1945-02-06,155.35,156.00,155.18,155.50,1600000,155.50 +1945-02-05,154.76,155.76,154.56,155.35,1800000,155.35 +1945-02-02,153.79,154.71,153.30,154.45,1870000,154.45 +1945-02-01,153.67,154.15,153.22,153.79,1560000,153.79 +1945-01-31,153.45,153.93,152.62,153.67,1180000,153.67 +1945-01-30,154.06,154.58,153.31,153.45,1530000,153.45 +1945-01-29,154.13,154.25,153.30,154.06,1370000,154.06 +1945-01-26,152.53,153.57,152.53,153.30,1260000,153.30 +1945-01-25,151.39,152.62,151.39,152.26,970000,152.26 +1945-01-24,151.36,152.15,150.53,151.35,1010000,151.35 +1945-01-23,152.03,152.97,151.23,151.36,1370000,151.36 +1945-01-22,152.41,152.41,151.10,152.03,1470000,152.03 +1945-01-19,154.58,154.58,153.37,153.84,1610000,153.84 +1945-01-18,155.33,155.50,153.95,154.61,1630000,154.61 +1945-01-17,154.60,155.99,154.53,155.33,1830000,155.33 +1945-01-16,154.76,155.04,153.96,154.60,1210000,154.60 +1945-01-15,155.58,155.72,154.30,154.76,2010000,154.76 +1945-01-12,155.85,156.22,154.99,155.42,1750000,155.42 +1945-01-11,155.67,156.68,155.32,155.85,2210000,155.85 +1945-01-10,155.01,155.95,154.38,155.67,2110000,155.67 +1945-01-09,154.85,155.72,154.52,155.01,2260000,155.01 +1945-01-08,153.69,155.04,153.69,154.85,2000000,154.85 +1945-01-05,154.42,155.02,153.79,154.00,1800000,154.00 +1945-01-04,154.31,155.00,153.72,154.42,1830000,154.42 +1945-01-03,153.02,154.61,153.02,154.31,2160000,154.31 +1945-01-02,152.32,152.83,151.63,152.58,1340000,152.58 +1944-12-29,150.48,152.53,150.48,151.93,1890000,151.93 +1944-12-28,148.71,150.73,148.62,150.47,1230000,150.47 +1944-12-27,149.46,149.46,147.93,148.71,1580000,148.71 +1944-12-26,150.36,150.36,149.41,149.66,1000000,149.66 +1944-12-22,150.28,151.04,150.04,150.43,1280000,150.43 +1944-12-21,150.59,150.73,149.88,150.28,950000,150.28 +1944-12-20,151.39,151.39,150.15,150.59,1480000,150.59 +1944-12-19,151.53,151.90,150.84,151.62,1280000,151.62 +1944-12-18,152.28,152.28,151.15,151.53,980000,151.53 +1944-12-15,150.93,152.75,150.93,152.28,2140000,152.28 +1944-12-14,150.64,151.02,150.11,150.80,1390000,150.80 +1944-12-13,151.20,151.34,150.43,150.64,1130000,150.64 +1944-12-12,151.62,151.75,150.69,151.20,1160000,151.20 +1944-12-11,151.31,152.14,150.65,151.62,1500000,151.62 +1944-12-08,149.23,150.68,149.07,150.48,1680000,150.48 +1944-12-07,148.77,149.64,148.55,149.23,1350000,149.23 +1944-12-06,148.58,149.14,148.03,148.77,1090000,148.77 +1944-12-05,148.22,149.23,148.05,148.58,1480000,148.58 +1944-12-04,147.50,148.41,147.21,148.22,1430000,148.22 +1944-12-01,147.33,147.65,146.76,147.30,930000,147.30 +1944-11-30,147.81,148.06,147.06,147.33,990000,147.33 +1944-11-29,147.14,148.07,146.89,147.81,1160000,147.81 +1944-11-28,146.92,147.40,146.62,147.14,870000,147.14 +1944-11-27,146.63,147.21,146.30,146.92,740000,146.92 +1944-11-24,146.92,147.04,145.99,146.40,680000,146.40 +1944-11-22,147.03,147.59,146.74,146.92,770000,146.92 +1944-11-21,146.34,147.27,146.34,147.03,860000,147.03 +1944-11-20,146.02,146.56,145.71,146.33,690000,146.33 +1944-11-17,145.67,146.15,145.33,145.77,710000,145.77 +1944-11-16,145.64,146.15,145.17,145.67,850000,145.67 +1944-11-15,145.60,146.04,145.22,145.64,820000,145.64 +1944-11-14,146.90,146.90,145.36,145.60,1100000,145.60 +1944-11-13,148.08,148.22,146.78,146.97,920000,146.97 +1944-11-10,147.75,148.39,147.64,148.08,1120000,148.08 +1944-11-09,147.52,148.02,146.98,147.75,850000,147.75 +1944-11-08,147.92,147.92,146.82,147.52,730000,147.52 +1944-11-06,147.37,148.19,147.06,147.92,870000,147.92 +1944-11-03,147.53,147.59,146.87,147.16,730000,147.16 +1944-11-02,146.73,147.69,146.71,147.53,790000,147.53 +1944-11-01,146.53,147.05,146.38,146.73,710000,146.73 +1944-10-31,146.28,147.01,146.12,146.53,680000,146.53 +1944-10-30,146.50,146.68,145.80,146.28,610000,146.28 +1944-10-27,145.83,146.46,145.33,146.29,830000,146.29 +1944-10-26,146.37,146.65,145.47,145.83,930000,145.83 +1944-10-25,146.58,146.82,146.03,146.37,640000,146.37 +1944-10-24,146.58,146.86,145.98,146.58,850000,146.58 +1944-10-23,148.35,148.46,146.37,146.58,1030000,146.58 +1944-10-20,148.55,148.70,147.96,148.21,750000,148.21 +1944-10-19,148.87,149.18,148.21,148.55,830000,148.55 +1944-10-18,148.47,149.18,148.47,148.87,910000,148.87 +1944-10-17,148.09,148.58,147.85,148.39,670000,148.39 +1944-10-16,148.59,148.67,147.97,148.09,580000,148.09 +1944-10-13,148.79,149.03,148.48,148.70,680000,148.70 +1944-10-11,148.25,149.00,148.19,148.79,720000,148.79 +1944-10-10,148.06,148.56,147.68,148.25,600000,148.25 +1944-10-09,148.86,148.86,147.98,148.06,610000,148.06 +1944-10-06,148.62,149.20,148.51,148.84,800000,148.84 +1944-10-05,147.89,148.95,147.78,148.62,1000000,148.62 +1944-10-04,146.93,148.06,146.93,147.89,820000,147.89 +1944-10-03,146.92,147.29,146.49,146.91,750000,146.91 +1944-10-02,146.73,147.30,146.41,146.92,820000,146.92 +1944-09-29,146.11,146.47,145.70,146.31,750000,146.31 +1944-09-28,146.28,146.49,145.67,146.11,640000,146.11 +1944-09-27,146.52,146.76,146.03,146.28,480000,146.28 +1944-09-26,146.77,147.08,146.32,146.52,600000,146.52 +1944-09-25,146.07,147.06,146.07,146.77,790000,146.77 +1944-09-22,145.43,145.95,145.33,145.60,550000,145.60 +1944-09-21,145.85,146.09,145.31,145.43,560000,145.43 +1944-09-20,145.62,146.29,145.42,145.85,700000,145.85 +1944-09-19,144.75,145.97,144.75,145.62,720000,145.62 +1944-09-18,144.36,144.85,144.24,144.75,350000,144.75 +1944-09-15,143.36,144.24,143.36,144.08,640000,144.08 +1944-09-14,143.44,143.44,142.65,142.96,730000,142.96 +1944-09-13,144.88,145.05,143.87,143.94,880000,143.94 +1944-09-12,144.40,145.09,144.40,144.88,550000,144.88 +1944-09-11,143.64,144.56,143.64,144.30,570000,144.30 +1944-09-08,143.58,144.28,143.10,143.51,630000,143.51 +1944-09-07,144.08,144.08,142.53,143.58,1480000,143.58 +1944-09-06,146.44,146.44,144.26,144.42,1470000,144.42 +1944-09-05,147.16,147.45,146.44,146.56,870000,146.56 +1944-09-01,146.99,147.47,146.73,147.16,640000,147.16 +1944-08-31,147.28,147.42,146.77,146.99,610000,146.99 +1944-08-30,147.12,147.69,146.93,147.28,900000,147.28 +1944-08-29,146.87,147.40,146.70,147.12,620000,147.12 +1944-08-28,147.02,147.17,146.53,146.87,550000,146.87 +1944-08-25,147.11,147.38,146.42,147.02,600000,147.02 +1944-08-24,147.87,147.88,146.81,147.11,770000,147.11 +1944-08-23,147.81,148.18,147.49,147.87,790000,147.87 +1944-08-22,148.44,148.44,147.59,147.81,800000,147.81 +1944-08-21,148.96,149.27,148.31,148.52,830000,148.52 +1944-08-18,148.46,149.28,148.42,148.96,1150000,148.96 +1944-08-17,147.62,148.58,147.62,148.46,1240000,148.46 +1944-08-16,146.45,147.42,146.40,147.30,860000,147.30 +1944-08-15,146.77,146.83,146.06,146.45,780000,146.45 +1944-08-14,146.56,146.99,146.45,146.77,690000,146.77 +1944-08-11,145.82,146.63,145.82,146.27,940000,146.27 +1944-08-10,144.95,145.81,144.95,145.65,1020000,145.65 +1944-08-09,144.97,145.25,144.48,144.90,960000,144.90 +1944-08-08,145.32,145.69,144.70,144.97,1270000,144.97 +1944-08-07,145.07,145.75,144.75,145.32,1070000,145.32 +1944-08-04,146.29,146.49,145.20,145.30,1120000,145.30 +1944-08-03,146.77,146.99,146.08,146.29,800000,146.29 +1944-08-02,146.50,147.07,146.50,146.77,800000,146.77 +1944-08-01,146.11,146.92,145.92,146.39,750000,146.39 +1944-07-31,146.14,146.59,145.86,146.11,580000,146.11 +1944-07-28,146.68,146.68,145.88,146.14,560000,146.14 +1944-07-27,146.64,147.08,146.07,146.74,690000,146.74 +1944-07-26,146.74,147.59,146.40,146.64,830000,146.64 +1944-07-25,145.91,146.87,145.91,146.74,830000,146.74 +1944-07-24,145.58,146.37,145.26,145.77,1010000,145.77 +1944-07-21,148.01,148.01,146.42,146.77,1430000,146.77 +1944-07-20,149.01,149.57,148.11,148.27,1340000,148.27 +1944-07-19,148.10,149.46,147.98,149.01,1140000,149.01 +1944-07-18,149.01,149.01,147.74,148.10,1280000,148.10 +1944-07-17,150.49,150.49,148.71,149.28,1480000,149.28 +1944-07-14,150.08,150.86,149.86,150.34,1090000,150.34 +1944-07-13,150.42,150.80,149.66,150.08,1380000,150.08 +1944-07-12,150.18,150.84,149.69,150.42,1420000,150.42 +1944-07-11,150.50,150.80,149.53,150.18,1350000,150.18 +1944-07-10,150.03,150.88,149.97,150.50,1840000,150.50 +1944-07-07,149.07,149.61,148.61,149.36,1280000,149.36 +1944-07-06,149.66,150.12,148.69,149.07,1710000,149.07 +1944-07-05,149.32,150.42,149.17,149.66,2440000,149.66 +1944-07-03,148.46,149.50,148.42,149.32,1560000,149.32 +1944-06-30,148.07,148.82,147.93,148.38,1750000,148.38 +1944-06-29,147.93,148.54,147.25,148.07,1890000,148.07 +1944-06-28,148.48,148.52,147.40,147.93,1750000,147.93 +1944-06-27,148.12,149.00,147.76,148.48,2180000,148.48 +1944-06-26,147.48,148.46,147.40,148.12,1720000,148.12 +1944-06-23,147.65,147.94,147.15,147.50,1300000,147.50 +1944-06-22,147.90,148.32,147.18,147.65,1280000,147.65 +1944-06-21,148.63,148.95,147.30,147.90,1520000,147.90 +1944-06-20,148.42,149.15,147.79,148.63,1620000,148.63 +1944-06-19,147.46,149.07,147.46,148.42,2370000,148.42 +1944-06-16,145.94,147.57,145.94,146.96,2520000,146.96 +1944-06-15,145.03,146.38,144.73,145.86,1850000,145.86 +1944-06-14,145.05,145.60,144.26,145.03,1440000,145.03 +1944-06-13,144.13,145.55,144.13,145.05,2330000,145.05 +1944-06-12,142.90,144.31,142.90,144.08,2240000,144.08 +1944-06-09,141.93,142.37,141.58,142.06,850000,142.06 +1944-06-08,142.12,142.60,141.61,141.93,860000,141.93 +1944-06-07,142.21,142.77,141.76,142.12,860000,142.12 +1944-06-06,141.62,143.01,140.90,142.21,1790000,142.21 +1944-06-05,142.34,142.53,141.49,141.62,860000,141.62 +1944-06-02,142.14,142.52,141.80,142.07,820000,142.07 +1944-06-01,142.24,142.92,141.95,142.14,1190000,142.14 +1944-05-31,141.53,142.44,141.28,142.24,1180000,142.24 +1944-05-29,141.24,141.68,140.97,141.53,810000,141.53 +1944-05-26,140.38,141.20,140.31,141.03,840000,141.03 +1944-05-25,140.48,140.69,139.89,140.38,800000,140.38 +1944-05-24,139.91,140.98,139.91,140.48,1090000,140.48 +1944-05-23,139.43,140.24,139.19,139.87,770000,139.87 +1944-05-22,139.37,139.74,139.13,139.43,700000,139.43 +1944-05-19,139.20,139.69,139.00,139.34,790000,139.34 +1944-05-18,138.99,139.54,138.63,139.20,940000,139.20 +1944-05-17,138.41,139.09,138.38,138.99,820000,138.99 +1944-05-16,138.60,138.89,138.23,138.41,540000,138.41 +1944-05-15,138.60,138.84,138.41,138.60,340000,138.60 +1944-05-12,138.93,139.38,138.22,138.51,750000,138.51 +1944-05-11,138.76,139.14,138.50,138.93,620000,138.93 +1944-05-10,138.65,139.03,138.41,138.76,650000,138.76 +1944-05-09,138.65,139.07,138.29,138.65,620000,138.65 +1944-05-08,138.87,139.08,138.38,138.65,590000,138.65 +1944-05-05,137.85,139.00,137.83,138.75,790000,138.75 +1944-05-04,137.83,138.14,137.52,137.85,510000,137.85 +1944-05-03,137.15,138.12,137.14,137.83,630000,137.83 +1944-05-02,137.06,137.53,136.77,137.15,570000,137.15 +1944-05-01,136.23,137.12,136.18,137.06,570000,137.06 +1944-04-28,136.07,136.50,135.77,136.21,560000,136.21 +1944-04-27,135.69,136.53,135.69,136.07,520000,136.07 +1944-04-26,135.18,135.93,135.18,135.67,490000,135.67 +1944-04-25,135.00,135.41,134.75,135.11,550000,135.11 +1944-04-24,136.19,136.22,134.91,135.00,690000,135.00 +1944-04-21,136.20,136.61,135.96,136.17,480000,136.17 +1944-04-20,135.74,136.59,135.74,136.20,530000,136.20 +1944-04-19,136.07,136.15,135.09,135.48,900000,135.48 +1944-04-18,137.76,137.76,135.99,136.07,1190000,136.07 +1944-04-17,138.06,138.25,137.64,137.77,540000,137.77 +1944-04-14,137.65,137.95,137.52,137.69,480000,137.69 +1944-04-13,137.93,137.93,137.33,137.65,660000,137.65 +1944-04-12,138.74,138.86,137.88,137.98,720000,137.98 +1944-04-11,139.11,139.16,138.50,138.74,730000,138.74 +1944-04-10,139.10,139.45,138.80,139.11,570000,139.11 +1944-04-06,138.31,139.24,138.31,138.91,760000,138.91 +1944-04-05,138.06,138.63,137.95,138.17,770000,138.17 +1944-04-04,138.01,138.39,137.67,138.06,570000,138.06 +1944-04-03,138.66,138.66,137.70,138.01,690000,138.01 +1944-03-31,138.60,139.29,138.50,138.84,800000,138.84 +1944-03-30,137.74,138.89,137.74,138.60,680000,138.60 +1944-03-29,137.88,138.17,136.98,137.45,1110000,137.45 +1944-03-28,139.12,139.36,137.64,137.88,1340000,137.88 +1944-03-27,139.19,139.67,138.99,139.12,690000,139.12 +1944-03-24,138.95,139.60,138.81,139.28,840000,139.28 +1944-03-23,139.98,140.33,138.81,138.95,1170000,138.95 +1944-03-22,140.20,140.77,139.83,139.98,1570000,139.98 +1944-03-21,139.89,140.47,139.63,140.20,1460000,140.20 +1944-03-20,140.28,140.28,139.53,139.89,1200000,139.89 +1944-03-17,140.91,141.10,140.24,140.80,1350000,140.80 +1944-03-16,140.71,141.43,140.44,140.91,1590000,140.91 +1944-03-15,140.37,141.00,140.08,140.71,1190000,140.71 +1944-03-14,140.75,140.75,139.90,140.37,1010000,140.37 +1944-03-13,140.44,141.37,140.33,141.00,1620000,141.00 +1944-03-10,139.33,140.34,139.14,140.01,1150000,140.01 +1944-03-09,139.50,139.70,138.89,139.33,930000,139.33 +1944-03-08,138.34,139.89,138.34,139.50,1690000,139.50 +1944-03-07,137.48,138.67,137.48,138.33,1210000,138.33 +1944-03-06,136.79,137.46,136.75,137.21,750000,137.21 +1944-03-03,136.69,136.97,136.38,136.59,760000,136.59 +1944-03-02,136.44,136.91,136.33,136.69,710000,136.69 +1944-03-01,136.30,136.75,135.86,136.44,630000,136.44 +1944-02-29,136.79,136.91,136.02,136.30,870000,136.30 +1944-02-28,136.58,137.01,136.36,136.79,750000,136.79 +1944-02-25,136.58,136.74,136.11,136.56,900000,136.56 +1944-02-24,136.51,137.00,136.25,136.58,1160000,136.58 +1944-02-23,135.71,136.63,135.52,136.51,940000,136.51 +1944-02-21,135.91,136.11,135.52,135.71,590000,135.71 +1944-02-18,136.58,136.74,135.81,136.08,670000,136.08 +1944-02-17,136.04,136.77,135.74,136.58,900000,136.58 +1944-02-16,136.19,136.73,135.64,136.04,870000,136.04 +1944-02-15,135.39,136.36,135.28,136.19,1030000,136.19 +1944-02-14,135.41,135.71,135.00,135.39,550000,135.39 +1944-02-11,135.55,136.08,135.19,135.41,850000,135.41 +1944-02-10,135.03,135.74,134.80,135.55,860000,135.55 +1944-02-09,135.06,135.44,134.55,135.03,630000,135.03 +1944-02-08,134.36,135.24,134.36,135.06,610000,135.06 +1944-02-07,135.11,135.11,134.10,134.22,570000,134.22 +1944-02-04,135.89,135.89,134.75,135.04,600000,135.04 +1944-02-03,137.08,137.16,135.76,136.24,960000,136.24 +1944-02-02,137.45,137.45,136.79,137.08,900000,137.08 +1944-02-01,137.40,137.69,137.09,137.45,860000,137.45 +1944-01-31,137.15,137.85,136.83,137.40,630000,137.40 +1944-01-28,136.65,137.37,136.65,137.19,620000,137.19 +1944-01-27,136.71,137.10,136.38,136.59,600000,136.59 +1944-01-26,137.77,137.77,136.59,136.71,780000,136.71 +1944-01-25,137.97,138.21,137.59,137.97,690000,137.97 +1944-01-24,138.24,138.50,137.70,137.97,690000,137.97 +1944-01-21,138.16,138.32,137.69,138.07,810000,138.07 +1944-01-20,137.83,138.49,137.79,138.16,730000,138.16 +1944-01-19,137.87,138.28,137.20,137.83,640000,137.83 +1944-01-18,138.10,138.22,137.51,137.87,820000,137.87 +1944-01-17,138.40,138.60,137.78,138.10,820000,138.10 +1944-01-14,137.36,138.31,137.21,138.15,940000,138.15 +1944-01-13,137.86,137.86,136.99,137.36,680000,137.36 +1944-01-12,138.47,138.71,137.74,137.94,710000,137.94 +1944-01-11,137.97,138.89,137.97,138.47,1000000,138.47 +1944-01-10,138.09,138.21,137.40,137.80,720000,137.80 +1944-01-07,138.34,138.65,137.67,138.08,830000,138.08 +1944-01-06,138.65,138.80,137.98,138.34,840000,138.34 +1944-01-05,137.78,138.88,137.78,138.65,1160000,138.65 +1944-01-04,135.92,137.23,135.91,137.15,730000,137.15 +1944-01-03,135.89,136.47,135.51,135.92,520000,135.92 +1943-12-31,136.20,136.73,135.54,135.89,990000,135.89 +1943-12-30,135.00,136.37,135.00,136.20,1140000,136.20 +1943-12-29,135.04,135.51,134.08,134.61,1000000,134.61 +1943-12-28,136.08,136.08,134.81,135.04,920000,135.04 +1943-12-27,136.24,136.60,135.67,136.14,650000,136.14 +1943-12-24,136.07,136.47,135.75,136.24,510000,136.24 +1943-12-23,136.15,136.57,135.77,136.07,580000,136.07 +1943-12-22,135.86,136.53,135.65,136.15,560000,136.15 +1943-12-21,136.10,136.49,135.51,135.86,660000,135.86 +1943-12-20,135.89,136.56,135.47,136.10,860000,136.10 +1943-12-17,135.19,135.90,134.92,135.44,880000,135.44 +1943-12-16,134.18,135.47,133.96,135.19,760000,135.19 +1943-12-15,134.19,134.53,133.69,134.18,660000,134.18 +1943-12-14,134.74,134.74,133.72,134.19,680000,134.19 +1943-12-13,135.28,135.81,134.37,134.80,730000,134.80 +1943-12-10,134.05,135.47,133.96,135.04,870000,135.04 +1943-12-09,134.42,134.89,133.57,134.05,860000,134.05 +1943-12-08,133.64,134.85,133.64,134.42,1320000,134.42 +1943-12-07,132.45,133.46,132.21,133.37,880000,133.37 +1943-12-06,131.87,133.07,131.71,132.45,820000,132.45 +1943-12-03,131.67,132.32,131.42,131.91,560000,131.91 +1943-12-02,130.75,132.06,130.75,131.67,720000,131.67 +1943-12-01,129.76,131.16,129.76,130.68,710000,130.68 +1943-11-30,129.95,130.34,128.94,129.57,710000,129.57 +1943-11-29,131.25,131.34,129.86,129.95,700000,129.95 +1943-11-26,132.10,132.25,131.06,131.33,600000,131.33 +1943-11-24,132.45,132.86,131.76,132.10,710000,132.10 +1943-11-23,132.65,132.93,132.26,132.45,540000,132.45 +1943-11-22,132.94,133.10,132.30,132.65,610000,132.65 +1943-11-19,130.96,132.51,130.96,132.30,910000,132.30 +1943-11-18,130.24,131.29,130.08,130.79,620000,130.79 +1943-11-17,131.18,131.19,129.86,130.24,830000,130.24 +1943-11-16,131.56,131.91,130.86,131.18,620000,131.18 +1943-11-15,131.76,132.13,131.08,131.56,680000,131.56 +1943-11-12,132.68,133.07,131.63,132.15,800000,132.15 +1943-11-10,132.11,133.37,132.11,132.68,930000,132.68 +1943-11-09,131.68,132.48,130.84,131.85,1510000,131.85 +1943-11-08,135.03,135.03,131.42,131.68,2340000,131.68 +1943-11-05,136.30,136.49,135.23,135.47,800000,135.47 +1943-11-04,137.35,137.94,136.10,136.30,1150000,136.30 +1943-11-03,138.50,138.96,137.19,137.35,1070000,137.35 +1943-11-01,138.27,138.79,137.85,138.50,650000,138.50 +1943-10-29,138.97,139.06,138.02,138.29,670000,138.29 +1943-10-28,139.35,139.74,138.84,138.97,720000,138.97 +1943-10-27,138.69,139.65,138.55,139.35,880000,139.35 +1943-10-26,138.22,139.08,138.19,138.69,900000,138.69 +1943-10-25,138.29,138.66,137.88,138.22,650000,138.22 +1943-10-22,138.00,138.53,137.84,138.25,560000,138.25 +1943-10-21,138.72,138.72,137.74,138.00,590000,138.00 +1943-10-20,138.71,139.21,138.43,138.88,610000,138.88 +1943-10-19,138.40,138.93,138.11,138.71,610000,138.71 +1943-10-18,138.40,138.87,138.06,138.40,540000,138.40 +1943-10-15,137.30,138.30,137.30,137.90,560000,137.90 +1943-10-14,136.48,137.30,136.34,137.01,470000,137.01 +1943-10-13,136.61,136.91,135.92,136.48,590000,136.48 +1943-10-11,137.10,137.21,136.38,136.61,480000,136.61 +1943-10-08,136.39,137.17,136.21,136.74,560000,136.74 +1943-10-07,137.43,137.43,136.01,136.39,850000,136.39 +1943-10-06,139.15,139.15,137.71,137.84,720000,137.84 +1943-10-05,139.63,139.76,138.87,139.27,490000,139.27 +1943-10-04,140.17,140.17,139.36,139.63,500000,139.63 +1943-10-01,140.12,140.63,139.87,140.33,560000,140.33 +1943-09-30,139.75,140.48,139.55,140.12,570000,140.12 +1943-09-29,139.27,139.95,139.06,139.75,470000,139.75 +1943-09-28,139.41,139.98,139.04,139.27,610000,139.27 +1943-09-27,140.14,140.14,139.11,139.41,620000,139.41 +1943-09-24,140.30,140.61,139.79,140.21,640000,140.21 +1943-09-23,141.09,141.18,139.75,140.30,670000,140.30 +1943-09-22,141.49,141.68,140.61,141.09,660000,141.09 +1943-09-21,141.75,141.87,141.03,141.49,740000,141.49 +1943-09-20,141.42,142.50,141.42,141.75,1100000,141.75 +1943-09-17,138.42,139.71,138.42,139.60,890000,139.60 +1943-09-16,137.62,138.43,137.50,138.36,530000,138.36 +1943-09-15,137.53,138.21,137.31,137.62,600000,137.62 +1943-09-14,137.82,137.98,137.24,137.53,440000,137.53 +1943-09-13,138.04,138.17,137.52,137.82,510000,137.82 +1943-09-10,137.75,138.26,137.50,137.96,760000,137.96 +1943-09-09,136.92,138.12,136.92,137.75,1090000,137.75 +1943-09-08,137.59,137.72,136.37,136.91,800000,136.91 +1943-09-07,137.33,137.75,137.17,137.59,350000,137.59 +1943-09-03,137.11,137.43,136.53,137.18,400000,137.18 +1943-09-02,137.12,137.48,136.67,137.11,490000,137.11 +1943-09-01,136.65,137.48,136.65,137.12,570000,137.12 +1943-08-31,135.95,137.01,135.95,136.62,610000,136.62 +1943-08-30,135.79,136.10,135.30,135.73,340000,135.73 +1943-08-27,136.25,136.26,135.64,135.83,420000,135.83 +1943-08-26,135.90,136.40,135.81,136.25,440000,136.25 +1943-08-25,135.60,136.25,135.54,135.90,460000,135.90 +1943-08-24,135.05,136.04,135.00,135.60,480000,135.60 +1943-08-23,135.81,135.81,134.40,135.05,720000,135.05 +1943-08-20,138.31,138.31,136.80,136.93,540000,136.93 +1943-08-19,138.45,138.83,137.93,138.34,470000,138.34 +1943-08-18,137.59,138.83,137.59,138.45,560000,138.45 +1943-08-17,137.08,137.93,136.96,137.54,550000,137.54 +1943-08-16,137.23,137.74,136.78,137.08,490000,137.08 +1943-08-13,136.44,137.49,136.40,137.39,440000,137.39 +1943-08-12,136.79,137.05,136.15,136.44,450000,136.44 +1943-08-11,136.23,137.15,136.21,136.79,620000,136.79 +1943-08-10,135.33,136.44,135.33,136.23,650000,136.23 +1943-08-09,135.38,136.08,134.75,135.18,560000,135.18 +1943-08-06,136.76,136.80,135.36,135.58,620000,135.58 +1943-08-05,136.87,137.17,136.33,136.76,540000,136.76 +1943-08-04,136.20,137.54,136.20,136.87,730000,136.87 +1943-08-03,134.04,136.00,134.04,135.64,1200000,135.64 +1943-08-02,135.95,136.50,133.87,134.00,1350000,134.00 +1943-07-30,139.41,139.66,136.87,137.25,1230000,137.25 +1943-07-29,138.28,139.90,138.28,139.41,1020000,139.41 +1943-07-28,138.75,139.08,136.72,137.64,1850000,137.64 +1943-07-27,142.07,142.07,138.65,138.75,1790000,138.75 +1943-07-26,143.65,143.65,141.73,142.07,1460000,142.07 +1943-07-23,143.77,144.18,143.31,143.80,910000,143.80 +1943-07-22,143.94,144.13,143.38,143.77,820000,143.77 +1943-07-21,143.93,144.22,143.33,143.94,770000,143.94 +1943-07-20,144.74,144.79,143.50,143.93,990000,143.93 +1943-07-19,144.72,145.31,144.39,144.74,830000,144.74 +1943-07-16,144.87,145.67,144.41,144.75,1040000,144.75 +1943-07-15,145.82,146.41,144.76,144.87,1220000,144.87 +1943-07-14,145.30,146.26,145.08,145.82,1680000,145.82 +1943-07-13,144.62,145.54,144.37,145.30,1390000,145.30 +1943-07-12,144.23,144.79,143.94,144.62,1050000,144.62 +1943-07-09,143.64,144.32,143.34,144.18,1050000,144.18 +1943-07-08,143.41,144.09,143.15,143.64,960000,143.64 +1943-07-07,143.76,143.82,142.83,143.41,710000,143.41 +1943-07-06,143.70,144.41,143.46,143.76,960000,143.76 +1943-07-02,143.58,144.05,143.17,143.68,890000,143.68 +1943-07-01,143.38,144.02,142.98,143.58,1150000,143.58 +1943-06-30,142.62,143.57,142.50,143.38,940000,143.38 +1943-06-29,143.00,143.30,142.06,142.62,810000,142.62 +1943-06-28,142.88,143.70,142.44,143.00,1030000,143.00 +1943-06-25,140.96,142.49,140.96,142.27,1150000,142.27 +1943-06-24,140.04,141.06,139.70,140.86,730000,140.86 +1943-06-23,139.30,140.43,139.30,140.04,830000,140.04 +1943-06-22,138.79,139.30,138.07,139.03,700000,139.03 +1943-06-21,139.52,139.52,138.34,138.79,720000,138.79 +1943-06-18,139.85,140.22,139.27,139.68,680000,139.68 +1943-06-17,139.78,140.41,139.49,139.85,740000,139.85 +1943-06-16,139.39,140.55,139.26,139.78,880000,139.78 +1943-06-15,139.09,139.58,138.21,139.39,1010000,139.39 +1943-06-14,140.91,140.91,138.86,139.09,1350000,139.09 +1943-06-11,141.68,142.01,141.11,141.44,840000,141.44 +1943-06-10,141.49,142.42,141.21,141.68,910000,141.68 +1943-06-09,141.44,141.71,140.45,141.49,810000,141.49 +1943-06-08,141.82,141.91,140.56,141.44,1080000,141.44 +1943-06-07,142.99,142.99,141.50,141.82,1210000,141.82 +1943-06-04,142.75,143.04,141.82,142.28,1260000,142.28 +1943-06-03,142.39,143.05,141.51,142.75,1180000,142.75 +1943-06-02,142.43,143.17,141.85,142.39,1310000,142.39 +1943-06-01,142.06,142.90,141.72,142.43,1260000,142.43 +1943-05-28,140.82,141.58,140.30,141.18,1050000,141.18 +1943-05-27,140.38,141.54,140.13,140.82,1470000,140.82 +1943-05-26,139.24,140.82,139.24,140.38,1320000,140.38 +1943-05-25,138.84,139.37,138.06,139.17,890000,139.17 +1943-05-24,138.78,139.14,138.41,138.84,790000,138.84 +1943-05-21,138.84,139.25,138.10,138.90,920000,138.90 +1943-05-20,139.15,140.09,138.60,138.84,1300000,138.84 +1943-05-19,138.05,139.39,138.04,139.15,1490000,139.15 +1943-05-18,136.98,138.39,136.92,138.05,930000,138.05 +1943-05-17,137.31,137.43,136.30,136.98,850000,136.98 +1943-05-14,137.85,137.85,136.13,136.82,1630000,136.82 +1943-05-13,138.24,138.55,137.56,137.88,1030000,137.88 +1943-05-12,138.36,138.96,137.83,138.24,1430000,138.24 +1943-05-11,138.64,138.75,137.54,138.36,1790000,138.36 +1943-05-10,138.36,139.30,138.12,138.64,2520000,138.64 +1943-05-07,138.85,139.04,136.99,137.27,2150000,137.27 +1943-05-06,138.34,139.13,137.97,138.85,2080000,138.85 +1943-05-05,138.18,138.79,137.54,138.34,2470000,138.34 +1943-05-04,137.43,138.71,137.27,138.18,2810000,138.18 +1943-05-03,136.20,137.69,136.08,137.43,2350000,137.43 +1943-04-30,135.24,136.17,135.01,135.48,1360000,135.48 +1943-04-29,134.14,135.49,134.11,135.24,1340000,135.24 +1943-04-28,134.39,134.61,133.46,134.14,880000,134.14 +1943-04-27,134.34,134.75,133.75,134.39,830000,134.39 +1943-04-26,134.34,134.89,133.91,134.34,1130000,134.34 +1943-04-22,134.00,134.75,133.70,134.20,1250000,134.20 +1943-04-21,133.17,134.31,133.17,134.00,1140000,134.00 +1943-04-20,133.46,133.64,132.68,133.09,730000,133.09 +1943-04-19,133.59,134.23,133.20,133.46,910000,133.46 +1943-04-16,133.49,133.71,132.40,133.07,900000,133.07 +1943-04-15,132.85,134.19,132.85,133.49,1390000,133.49 +1943-04-14,131.38,132.90,131.38,132.49,1090000,132.49 +1943-04-13,131.27,131.49,129.79,131.18,1410000,131.18 +1943-04-12,131.63,132.86,131.11,131.27,1270000,131.27 +1943-04-09,134.02,134.02,131.01,131.22,2520000,131.22 +1943-04-08,136.00,136.68,135.18,135.52,1810000,135.52 +1943-04-07,136.73,136.73,135.14,136.00,2100000,136.00 +1943-04-06,136.44,137.45,136.09,136.93,2460000,136.93 +1943-04-05,135.62,137.10,135.62,136.44,2650000,136.44 +1943-04-02,136.44,136.44,135.08,135.67,1660000,135.67 +1943-04-01,136.57,137.04,135.94,136.56,1740000,136.56 +1943-03-31,136.82,137.07,135.86,136.57,1540000,136.57 +1943-03-30,136.10,137.20,135.52,136.82,1940000,136.82 +1943-03-29,134.75,136.41,134.75,136.10,2000000,136.10 +1943-03-26,133.22,134.51,133.21,133.96,2140000,133.96 +1943-03-25,130.91,133.30,130.91,133.22,2120000,133.22 +1943-03-24,129.98,131.00,129.74,130.62,1160000,130.62 +1943-03-23,129.46,130.47,129.46,129.98,1190000,129.98 +1943-03-22,129.13,129.65,128.67,129.44,850000,129.44 +1943-03-19,129.66,129.95,129.09,129.25,1070000,129.25 +1943-03-18,129.49,130.00,129.07,129.66,870000,129.66 +1943-03-17,130.22,130.22,128.86,129.49,1270000,129.49 +1943-03-16,130.64,130.83,129.91,130.33,1030000,130.33 +1943-03-15,130.73,130.95,130.03,130.64,1370000,130.64 +1943-03-12,130.48,131.39,130.07,130.73,1970000,130.73 +1943-03-11,129.16,130.74,128.95,130.48,1430000,130.48 +1943-03-10,129.76,129.76,128.49,129.16,930000,129.16 +1943-03-09,130.52,130.52,128.68,129.80,1420000,129.80 +1943-03-08,130.74,131.23,130.14,130.56,1250000,130.56 +1943-03-05,130.38,130.93,129.75,130.61,1210000,130.61 +1943-03-04,130.03,131.20,129.97,130.38,2010000,130.38 +1943-03-03,128.60,130.20,128.51,130.03,2020000,130.03 +1943-03-02,129.18,129.18,127.91,128.60,1330000,128.60 +1943-03-01,130.11,130.61,129.13,129.44,2000000,129.44 +1943-02-26,130.04,130.25,129.20,129.71,1440000,129.71 +1943-02-25,129.58,130.43,129.28,130.04,1780000,130.04 +1943-02-24,128.78,130.00,128.39,129.58,1690000,129.58 +1943-02-23,127.80,129.06,127.34,128.78,1430000,128.78 +1943-02-19,127.06,127.25,125.82,126.67,900000,126.67 +1943-02-18,128.29,128.29,126.82,127.06,1040000,127.06 +1943-02-17,128.31,128.88,127.86,128.41,1100000,128.41 +1943-02-16,128.60,128.88,127.70,128.31,1180000,128.31 +1943-02-15,128.00,129.15,128.00,128.60,1840000,128.60 +1943-02-11,127.01,127.54,126.53,127.09,1410000,127.09 +1943-02-10,126.30,127.55,126.21,127.01,1500000,127.01 +1943-02-09,125.57,126.59,125.38,126.30,920000,126.30 +1943-02-08,125.81,126.10,125.19,125.57,730000,125.57 +1943-02-05,125.07,126.00,124.71,125.75,880000,125.75 +1943-02-04,125.56,125.57,124.69,125.07,800000,125.07 +1943-02-03,125.88,126.10,124.84,125.56,830000,125.56 +1943-02-02,125.86,126.38,125.51,125.88,1050000,125.88 +1943-02-01,125.58,126.15,124.87,125.86,1090000,125.86 +1943-01-29,124.38,125.71,124.23,125.41,1230000,125.41 +1943-01-28,124.08,124.57,123.41,124.38,990000,124.38 +1943-01-27,124.31,124.47,122.92,124.08,1030000,124.08 +1943-01-26,123.74,124.59,123.63,124.31,1040000,124.31 +1943-01-25,122.38,123.94,122.30,123.74,800000,123.74 +1943-01-22,121.79,122.92,121.50,121.99,880000,121.99 +1943-01-21,120.63,122.00,120.63,121.79,810000,121.79 +1943-01-20,120.48,120.86,119.71,120.55,520000,120.55 +1943-01-19,121.56,121.59,120.25,120.48,770000,120.48 +1943-01-18,121.60,121.93,121.24,121.56,710000,121.56 +1943-01-15,120.86,121.84,120.86,121.58,1000000,121.58 +1943-01-14,120.25,121.03,120.09,120.79,680000,120.79 +1943-01-13,119.98,120.59,119.80,120.25,630000,120.25 +1943-01-12,119.95,120.52,119.54,119.98,630000,119.98 +1943-01-11,119.51,120.41,119.51,119.95,810000,119.95 +1943-01-08,119.37,119.71,118.92,119.26,800000,119.26 +1943-01-07,119.66,119.95,118.84,119.37,710000,119.37 +1943-01-06,119.70,120.31,119.40,119.66,550000,119.66 +1943-01-05,120.25,120.62,119.50,119.70,670000,119.70 +1943-01-04,119.93,120.82,119.75,120.25,620000,120.25 +1942-12-31,119.56,120.19,119.08,119.40,1050000,119.40 +1942-12-30,118.40,119.83,118.28,119.56,1120000,119.56 +1942-12-29,118.50,118.95,117.30,118.40,1440000,118.40 +1942-12-28,119.71,119.96,118.22,118.50,1200000,118.50 +1942-12-24,119.07,119.67,118.56,119.27,800000,119.27 +1942-12-23,118.49,119.58,118.24,119.07,920000,119.07 +1942-12-22,118.66,119.23,118.09,118.49,780000,118.49 +1942-12-21,118.75,119.35,118.12,118.66,770000,118.66 +1942-12-18,118.68,119.76,118.41,118.97,1090000,118.97 +1942-12-17,117.06,119.07,116.60,118.68,1310000,118.68 +1942-12-16,116.31,117.38,116.08,117.06,910000,117.06 +1942-12-15,115.83,116.64,115.65,116.31,700000,116.31 +1942-12-14,115.82,116.13,115.21,115.83,690000,115.83 +1942-12-11,116.00,116.55,115.16,115.70,640000,115.70 +1942-12-10,115.93,116.38,115.41,116.00,570000,116.00 +1942-12-09,115.76,116.38,115.35,115.93,620000,115.93 +1942-12-08,115.03,116.05,115.03,115.76,620000,115.76 +1942-12-07,115.24,115.57,114.71,115.00,500000,115.00 +1942-12-04,115.19,115.42,114.41,115.02,530000,115.02 +1942-12-03,115.16,115.87,114.76,115.19,630000,115.19 +1942-12-02,114.61,115.61,114.43,115.16,540000,115.16 +1942-12-01,114.50,115.12,114.08,114.61,560000,114.61 +1942-11-30,114.95,115.03,114.01,114.50,470000,114.50 +1942-11-27,114.13,115.12,114.08,114.86,530000,114.86 +1942-11-25,114.10,114.66,113.55,114.13,570000,114.13 +1942-11-24,114.46,114.61,113.46,114.10,640000,114.10 +1942-11-23,115.27,115.27,114.03,114.46,630000,114.46 +1942-11-20,114.55,115.67,114.37,115.27,660000,115.27 +1942-11-19,114.64,114.95,114.24,114.55,500000,114.55 +1942-11-18,114.53,115.08,114.12,114.64,510000,114.64 +1942-11-17,115.70,116.24,114.42,114.53,670000,114.53 +1942-11-16,116.24,116.32,115.41,115.70,520000,115.70 +1942-11-13,116.46,116.76,115.80,116.26,670000,116.26 +1942-11-12,116.30,117.14,115.63,116.46,710000,116.46 +1942-11-10,117.14,117.14,115.96,116.30,770000,116.30 +1942-11-09,116.92,118.18,116.61,117.30,1210000,117.30 +1942-11-06,114.87,116.25,114.80,116.12,860000,116.12 +1942-11-05,114.56,115.29,114.23,114.87,600000,114.87 +1942-11-04,114.68,115.55,114.29,114.56,770000,114.56 +1942-11-02,114.07,115.09,114.02,114.68,760000,114.68 +1942-10-30,113.13,113.64,112.80,113.50,520000,113.50 +1942-10-29,113.11,113.47,112.59,113.13,460000,113.13 +1942-10-28,113.86,113.87,112.57,113.11,500000,113.11 +1942-10-27,115.06,115.06,113.50,113.86,630000,113.86 +1942-10-26,115.01,115.61,114.74,115.29,630000,115.29 +1942-10-23,114.94,115.52,114.45,114.88,730000,114.88 +1942-10-22,115.09,115.22,114.15,114.94,550000,114.94 +1942-10-21,115.22,116.01,114.61,115.09,700000,115.09 +1942-10-20,114.17,115.47,114.17,115.22,670000,115.22 +1942-10-19,113.40,113.89,113.13,113.64,400000,113.64 +1942-10-16,113.27,113.79,112.71,113.55,510000,113.55 +1942-10-15,114.56,114.56,113.11,113.27,600000,113.27 +1942-10-14,115.01,115.24,113.99,114.69,660000,114.69 +1942-10-13,114.93,115.80,114.68,115.01,860000,115.01 +1942-10-09,113.60,114.67,113.45,113.93,1050000,113.93 +1942-10-08,112.01,113.86,112.01,113.60,1090000,113.60 +1942-10-07,111.53,112.11,111.25,111.86,660000,111.86 +1942-10-06,111.93,112.09,111.16,111.53,700000,111.53 +1942-10-05,111.34,112.29,111.03,111.93,790000,111.93 +1942-10-02,109.68,111.02,109.68,110.83,900000,110.83 +1942-10-01,109.16,109.90,109.16,109.65,560000,109.65 +1942-09-30,109.24,109.37,108.70,109.11,340000,109.11 +1942-09-29,109.56,109.75,109.01,109.24,430000,109.24 +1942-09-28,109.32,109.98,109.29,109.56,400000,109.56 +1942-09-25,109.11,109.72,108.89,109.37,680000,109.37 +1942-09-24,108.27,109.42,108.18,109.11,850000,109.11 +1942-09-23,107.59,108.40,107.45,108.27,700000,108.27 +1942-09-22,107.27,107.83,107.16,107.59,520000,107.59 +1942-09-21,107.22,107.45,107.01,107.27,320000,107.27 +1942-09-18,106.72,107.59,106.72,107.47,420000,107.47 +1942-09-17,106.66,106.96,106.44,106.66,410000,106.66 +1942-09-16,106.49,106.93,106.19,106.66,380000,106.66 +1942-09-15,106.17,106.82,106.17,106.49,390000,106.49 +1942-09-14,106.20,106.32,105.92,106.15,310000,106.15 +1942-09-11,106.36,106.36,105.58,106.03,380000,106.03 +1942-09-10,107.17,107.17,106.30,106.38,350000,106.38 +1942-09-09,107.62,107.80,106.97,107.26,360000,107.26 +1942-09-08,106.76,107.88,106.76,107.62,400000,107.62 +1942-09-04,106.34,106.70,106.09,106.39,310000,106.39 +1942-09-03,106.49,106.50,106.07,106.34,280000,106.34 +1942-09-02,106.28,106.68,106.05,106.49,270000,106.49 +1942-09-01,106.33,106.52,105.76,106.28,290000,106.28 +1942-08-31,106.41,106.81,106.08,106.33,250000,106.33 +1942-08-28,106.03,106.64,105.92,106.23,300000,106.23 +1942-08-27,105.55,106.20,105.49,106.03,270000,106.03 +1942-08-26,106.28,106.28,105.37,105.55,360000,105.55 +1942-08-25,107.11,107.11,106.23,106.51,350000,106.51 +1942-08-24,107.30,107.73,106.94,107.25,380000,107.25 +1942-08-21,106.83,107.25,106.53,107.07,370000,107.07 +1942-08-20,107.21,107.21,106.46,106.83,310000,106.83 +1942-08-19,107.55,107.88,106.67,107.28,500000,107.28 +1942-08-18,106.96,107.72,106.96,107.55,560000,107.55 +1942-08-17,106.38,107.04,106.21,106.68,290000,106.68 +1942-08-14,105.75,106.65,105.75,106.15,380000,106.15 +1942-08-13,105.47,105.86,105.08,105.70,320000,105.70 +1942-08-12,105.42,105.81,105.00,105.47,280000,105.47 +1942-08-11,105.01,105.67,105.01,105.42,260000,105.42 +1942-08-10,104.90,105.18,104.55,104.91,210000,104.91 +1942-08-07,104.80,105.33,104.50,105.05,210000,105.05 +1942-08-06,104.85,105.07,104.55,104.80,250000,104.80 +1942-08-05,105.30,105.30,104.50,104.85,290000,104.85 +1942-08-04,106.08,106.21,105.43,105.55,320000,105.55 +1942-08-03,105.90,106.44,105.67,106.08,280000,106.08 +1942-07-31,105.37,106.27,105.37,105.72,310000,105.72 +1942-07-30,105.44,105.73,104.79,105.24,250000,105.24 +1942-07-29,106.34,106.34,105.30,105.44,290000,105.44 +1942-07-28,106.66,106.82,106.22,106.48,270000,106.48 +1942-07-27,106.53,106.97,106.32,106.66,260000,106.66 +1942-07-24,106.65,106.65,105.84,106.37,260000,106.37 +1942-07-23,107.88,107.88,106.45,106.65,330000,106.65 +1942-07-22,108.36,108.94,107.69,108.03,440000,108.03 +1942-07-21,107.98,108.68,107.94,108.36,280000,108.36 +1942-07-20,107.69,108.26,107.50,107.98,210000,107.98 +1942-07-17,108.91,108.92,107.68,107.82,280000,107.82 +1942-07-16,108.89,109.21,108.17,108.91,270000,108.91 +1942-07-15,108.72,109.49,108.50,108.89,390000,108.89 +1942-07-14,108.22,108.89,107.40,108.72,370000,108.72 +1942-07-13,108.69,108.69,107.79,108.22,280000,108.22 +1942-07-10,108.75,108.99,107.68,108.66,440000,108.66 +1942-07-09,107.94,109.26,107.60,108.75,840000,108.75 +1942-07-08,105.76,108.01,105.48,107.94,580000,107.94 +1942-07-07,106.10,106.34,105.32,105.76,330000,105.76 +1942-07-06,104.92,106.30,104.92,106.10,420000,106.10 +1942-07-03,103.84,104.77,103.84,104.49,360000,104.49 +1942-07-02,102.69,103.89,102.27,103.73,340000,103.73 +1942-07-01,103.29,103.29,102.28,102.69,210000,102.69 +1942-06-30,103.17,103.61,102.93,103.34,250000,103.34 +1942-06-29,102.68,103.57,102.68,103.17,260000,103.17 +1942-06-26,102.71,103.09,102.27,102.54,290000,102.54 +1942-06-25,102.67,103.06,101.94,102.71,250000,102.71 +1942-06-24,103.03,103.24,102.43,102.67,240000,102.67 +1942-06-23,102.77,103.44,102.73,103.03,210000,103.03 +1942-06-22,103.52,103.52,102.11,102.77,310000,102.77 +1942-06-19,105.52,105.52,104.55,104.77,290000,104.77 +1942-06-18,106.29,106.63,105.49,105.70,350000,105.70 +1942-06-17,104.68,106.38,104.68,106.29,390000,106.29 +1942-06-16,104.41,104.94,104.18,104.51,280000,104.51 +1942-06-15,104.08,104.54,103.99,104.41,260000,104.41 +1942-06-12,104.32,104.32,103.27,103.77,220000,103.77 +1942-06-11,104.19,104.69,103.94,104.49,280000,104.49 +1942-06-10,104.90,104.90,103.70,104.19,310000,104.19 +1942-06-09,105.55,106.34,104.83,105.09,400000,105.09 +1942-06-08,104.71,105.86,104.71,105.55,360000,105.55 +1942-06-05,103.61,105.26,103.60,104.41,490000,104.41 +1942-06-04,102.25,103.87,102.25,103.61,520000,103.61 +1942-06-03,101.30,102.33,101.01,102.15,330000,102.15 +1942-06-02,101.37,101.67,100.93,101.30,320000,101.30 +1942-06-01,100.96,101.84,100.96,101.37,310000,101.37 +1942-05-29,100.99,101.29,100.43,100.88,250000,100.88 +1942-05-28,101.09,101.50,100.52,100.99,350000,100.99 +1942-05-27,99.41,101.21,99.31,101.09,430000,101.09 +1942-05-26,99.18,100.00,99.02,99.41,290000,99.41 +1942-05-25,99.25,99.47,98.68,99.18,230000,99.18 +1942-05-22,99.72,99.95,98.83,99.18,330000,99.18 +1942-05-21,98.13,100.21,98.11,99.72,560000,99.72 +1942-05-20,97.96,98.50,97.22,98.13,410000,98.13 +1942-05-19,98.65,98.84,97.70,97.96,380000,97.96 +1942-05-18,98.63,99.16,98.24,98.65,220000,98.65 +1942-05-15,97.38,98.27,97.38,97.98,260000,97.98 +1942-05-14,97.21,97.37,96.39,97.13,280000,97.13 +1942-05-13,98.19,98.19,96.92,97.21,340000,97.21 +1942-05-12,99.20,99.35,98.31,98.56,250000,98.56 +1942-05-11,98.70,99.49,98.45,99.20,290000,99.20 +1942-05-08,97.77,98.57,97.65,97.91,310000,97.91 +1942-05-07,96.93,98.11,96.93,97.77,340000,97.77 +1942-05-06,97.29,97.35,96.19,96.71,270000,96.71 +1942-05-05,96.70,97.74,96.54,97.29,270000,97.29 +1942-05-04,96.44,97.15,96.34,96.70,260000,96.70 +1942-05-01,95.35,96.29,95.08,95.83,300000,95.83 +1942-04-30,94.71,95.76,94.71,95.35,280000,95.35 +1942-04-29,92.92,95.18,92.74,94.65,410000,94.65 +1942-04-28,93.69,93.69,92.69,92.92,310000,92.92 +1942-04-27,94.31,94.89,93.66,93.89,280000,93.89 +1942-04-24,94.80,94.80,93.59,94.13,390000,94.13 +1942-04-23,96.91,96.91,94.84,94.98,430000,94.98 +1942-04-22,97.51,97.64,96.79,97.20,260000,97.20 +1942-04-21,97.25,98.02,97.16,97.51,270000,97.51 +1942-04-20,96.92,97.47,96.63,97.25,240000,97.25 +1942-04-17,97.61,97.61,95.80,96.05,420000,96.05 +1942-04-16,98.06,98.46,97.61,97.87,260000,97.87 +1942-04-15,97.89,98.75,97.50,98.06,350000,98.06 +1942-04-14,99.21,99.21,97.77,97.89,560000,97.89 +1942-04-13,99.45,99.78,99.25,99.44,240000,99.44 +1942-04-10,99.69,100.15,99.31,99.74,300000,99.74 +1942-04-09,100.56,100.56,99.51,99.69,350000,99.69 +1942-04-08,101.89,101.97,100.89,101.23,300000,101.23 +1942-04-07,102.50,102.75,101.73,101.89,310000,101.89 +1942-04-06,101.11,102.69,101.05,102.50,340000,102.50 +1942-04-02,100.19,101.31,100.19,100.89,370000,100.89 +1942-04-01,99.53,100.19,99.32,99.95,280000,99.95 +1942-03-31,100.04,100.21,99.25,99.53,280000,99.53 +1942-03-30,100.00,100.54,99.76,100.04,230000,100.04 +1942-03-27,101.00,101.00,99.78,100.00,310000,100.00 +1942-03-26,101.48,101.54,100.73,101.05,300000,101.05 +1942-03-25,102.09,102.16,101.39,101.48,320000,101.48 +1942-03-24,101.20,102.43,101.02,102.09,360000,102.09 +1942-03-23,100.82,101.58,100.81,101.20,280000,101.20 +1942-03-20,101.25,101.31,100.43,100.75,280000,100.75 +1942-03-19,101.64,101.82,100.91,101.25,280000,101.25 +1942-03-18,102.54,102.73,101.26,101.64,340000,101.64 +1942-03-17,100.82,102.70,100.82,102.54,470000,102.54 +1942-03-16,99.64,100.81,99.50,100.68,320000,100.68 +1942-03-13,99.23,100.39,98.93,99.73,340000,99.73 +1942-03-12,99.21,100.25,98.32,99.23,460000,99.23 +1942-03-11,101.14,101.14,99.11,99.21,410000,99.21 +1942-03-10,102.09,102.32,101.17,101.49,340000,101.49 +1942-03-09,102.31,102.88,101.56,102.09,310000,102.09 +1942-03-06,104.08,104.08,102.03,102.10,640000,102.10 +1942-03-05,105.59,105.59,104.37,104.55,450000,104.55 +1942-03-04,106.97,107.04,105.69,105.99,380000,105.99 +1942-03-03,105.75,107.16,105.48,106.97,410000,106.97 +1942-03-02,106.49,106.49,105.33,105.75,330000,105.75 +1942-02-27,106.16,106.93,106.16,106.58,360000,106.58 +1942-02-26,105.64,106.24,105.40,105.88,350000,105.88 +1942-02-25,106.00,106.30,105.41,105.64,340000,105.64 +1942-02-24,105.54,106.73,105.54,106.00,390000,106.00 +1942-02-20,105.57,105.57,104.78,105.10,330000,105.10 +1942-02-19,105.35,106.03,104.93,105.57,350000,105.57 +1942-02-18,105.40,105.70,104.67,105.35,340000,105.35 +1942-02-17,107.05,107.05,105.20,105.40,390000,105.40 +1942-02-16,107.30,107.96,106.70,107.31,380000,107.31 +1942-02-13,106.51,107.01,106.12,106.73,320000,106.73 +1942-02-11,106.75,107.19,106.00,106.51,420000,106.51 +1942-02-10,107.81,107.81,106.21,106.75,640000,106.75 +1942-02-09,108.92,108.92,107.92,108.12,400000,108.12 +1942-02-06,110.44,110.53,109.30,109.47,430000,109.47 +1942-02-05,110.80,110.97,110.09,110.44,440000,110.44 +1942-02-04,109.99,111.04,109.91,110.80,500000,110.80 +1942-02-03,109.47,110.29,109.38,109.99,370000,109.99 +1942-02-02,109.11,109.68,109.08,109.47,330000,109.47 +1942-01-30,109.90,110.20,109.23,109.41,380000,109.41 +1942-01-29,110.15,110.39,109.50,109.90,420000,109.90 +1942-01-28,110.68,110.99,109.69,110.15,460000,110.15 +1942-01-27,110.67,111.20,110.31,110.68,550000,110.68 +1942-01-26,109.52,111.00,109.52,110.67,600000,110.67 +1942-01-23,108.94,109.44,108.39,109.12,430000,109.12 +1942-01-22,109.06,109.16,108.30,108.94,430000,108.94 +1942-01-21,110.12,110.12,108.71,109.06,580000,109.06 +1942-01-20,110.81,111.21,110.24,110.45,490000,110.45 +1942-01-19,110.68,111.34,109.98,110.81,430000,110.81 +1942-01-16,112.59,112.64,111.01,111.25,480000,111.25 +1942-01-15,112.59,113.02,112.17,112.59,450000,112.59 +1942-01-14,112.44,113.29,112.05,112.59,610000,112.59 +1942-01-13,110.90,112.61,110.90,112.44,730000,112.44 +1942-01-12,110.54,111.48,110.10,110.65,490000,110.65 +1942-01-09,111.55,111.97,110.45,111.02,660000,111.02 +1942-01-08,112.91,112.91,111.20,111.55,530000,111.55 +1942-01-07,113.93,113.93,112.62,113.10,630000,113.10 +1942-01-06,114.22,114.96,113.22,113.99,800000,113.99 +1942-01-05,113.75,114.76,113.20,114.22,720000,114.22 +1942-01-02,110.96,113.00,110.07,112.77,580000,112.77 +1941-12-31,111.32,111.99,109.75,110.96,1750000,110.96 +1941-12-30,107.56,112.04,107.45,111.32,2560000,111.32 +1941-12-29,107.54,108.94,106.36,107.56,2930000,107.56 +1941-12-26,106.67,107.86,105.92,106.95,1410000,106.95 +1941-12-24,106.34,107.56,105.52,106.67,1380000,106.67 +1941-12-23,106.59,107.21,105.57,106.34,1420000,106.34 +1941-12-22,107.81,108.83,106.23,106.59,1460000,106.59 +1941-12-19,108.21,109.52,107.61,108.28,1270000,108.28 +1941-12-18,109.36,109.67,107.18,108.21,1310000,108.21 +1941-12-17,110.86,111.05,108.68,109.36,1220000,109.36 +1941-12-16,111.15,112.30,110.29,110.86,1230000,110.86 +1941-12-15,110.73,112.01,109.97,111.15,1110000,111.15 +1941-12-12,110.91,111.76,109.53,110.58,1120000,110.58 +1941-12-11,109.01,111.73,108.38,110.91,1400000,110.91 +1941-12-10,109.27,109.76,106.87,109.01,2090000,109.01 +1941-12-09,112.52,112.73,107.56,109.27,2560000,109.27 +1941-12-08,115.46,115.46,111.53,112.52,2030000,112.52 +1941-12-05,116.44,116.44,115.09,115.90,980000,115.90 +1941-12-04,116.65,117.54,115.96,116.60,1130000,116.60 +1941-12-03,115.57,117.00,115.24,116.65,1090000,116.65 +1941-12-02,113.60,115.79,113.60,115.57,1180000,115.57 +1941-12-01,114.23,114.89,113.06,113.59,840000,113.59 +1941-11-28,115.64,115.68,114.10,114.66,870000,114.66 +1941-11-27,115.93,116.49,115.00,115.64,810000,115.64 +1941-11-26,116.96,116.98,115.61,115.93,850000,115.93 +1941-11-25,117.30,117.60,116.38,116.96,840000,116.96 +1941-11-24,117.04,118.19,116.89,117.30,820000,117.30 +1941-11-21,116.68,117.50,116.07,117.05,850000,117.05 +1941-11-19,115.87,116.90,115.47,116.68,800000,116.68 +1941-11-18,116.20,116.62,115.20,115.87,680000,115.87 +1941-11-17,116.72,117.03,115.69,116.20,630000,116.20 +1941-11-14,115.75,117.30,115.75,116.81,840000,116.81 +1941-11-13,115.44,116.34,114.91,115.67,830000,115.67 +1941-11-12,117.16,117.16,115.03,115.44,1020000,115.44 +1941-11-10,118.26,118.41,117.24,117.45,630000,117.45 +1941-11-07,118.84,118.84,117.64,118.33,700000,118.33 +1941-11-06,119.80,119.80,118.41,118.84,670000,118.84 +1941-11-05,118.87,120.34,118.84,119.85,920000,119.85 +1941-11-03,118.11,119.32,118.11,118.87,600000,118.87 +1941-10-31,119.17,119.17,117.40,117.82,640000,117.82 +1941-10-30,119.37,119.65,118.57,119.18,550000,119.18 +1941-10-29,119.60,119.96,118.99,119.37,550000,119.37 +1941-10-28,119.43,120.07,119.03,119.60,560000,119.60 +1941-10-27,120.04,120.04,119.11,119.43,480000,119.43 +1941-10-24,120.62,121.69,120.62,121.18,710000,121.18 +1941-10-23,120.56,120.84,119.77,120.47,540000,120.47 +1941-10-22,121.07,121.19,120.25,120.56,490000,120.56 +1941-10-21,120.13,121.27,119.83,121.07,580000,121.07 +1941-10-20,120.10,120.75,119.64,120.13,620000,120.13 +1941-10-17,118.52,119.56,117.88,119.15,670000,119.15 +1941-10-16,120.04,120.04,118.43,118.52,840000,118.52 +1941-10-15,121.36,121.36,120.19,120.52,480000,120.52 +1941-10-14,122.63,122.80,121.62,121.82,440000,121.82 +1941-10-10,122.53,123.06,122.01,122.46,490000,122.46 +1941-10-09,124.08,124.08,122.18,122.53,720000,122.53 +1941-10-08,124.42,124.52,123.61,124.13,440000,124.13 +1941-10-07,125.83,125.86,124.08,124.42,600000,124.42 +1941-10-06,126.10,126.20,125.50,125.83,490000,125.83 +1941-10-03,126.15,126.44,125.57,126.06,420000,126.06 +1941-10-02,126.85,127.06,126.08,126.15,470000,126.15 +1941-10-01,126.82,127.20,126.39,126.85,370000,126.85 +1941-09-30,126.49,127.31,126.49,126.82,460000,126.82 +1941-09-29,126.03,126.54,125.76,126.05,400000,126.05 +1941-09-26,126.38,126.68,125.55,125.81,490000,125.81 +1941-09-25,127.54,127.71,125.33,126.38,1170000,126.38 +1941-09-24,128.03,128.79,127.35,127.54,550000,127.54 +1941-09-23,127.64,128.50,127.59,128.03,490000,128.03 +1941-09-22,127.54,128.08,127.25,127.64,420000,127.64 +1941-09-19,128.77,128.81,127.74,127.95,580000,127.95 +1941-09-18,129.32,130.00,128.54,128.77,790000,128.77 +1941-09-17,127.43,129.48,127.27,129.32,890000,129.32 +1941-09-16,127.20,127.71,126.85,127.43,610000,127.43 +1941-09-15,127.28,127.54,126.95,127.20,460000,127.20 +1941-09-12,127.15,127.72,126.87,127.18,520000,127.18 +1941-09-11,126.53,127.45,126.31,127.15,690000,127.15 +1941-09-10,127.43,127.48,126.37,126.53,520000,126.53 +1941-09-09,127.51,128.38,127.16,127.43,870000,127.43 +1941-09-08,127.26,127.94,126.99,127.51,620000,127.51 +1941-09-05,127.51,127.54,126.88,127.17,580000,127.17 +1941-09-04,127.88,127.88,127.21,127.51,540000,127.51 +1941-09-03,128.31,128.56,127.54,127.91,460000,127.91 +1941-09-02,127.77,128.62,127.77,128.31,520000,128.31 +1941-08-29,127.77,127.88,127.05,127.43,350000,127.43 +1941-08-28,127.25,127.95,127.25,127.77,400000,127.77 +1941-08-27,126.60,127.37,126.60,127.08,430000,127.08 +1941-08-26,126.08,126.82,126.08,126.56,460000,126.56 +1941-08-25,125.91,126.25,125.50,125.86,330000,125.86 +1941-08-22,125.99,126.12,125.39,125.84,360000,125.84 +1941-08-21,126.01,126.42,125.72,125.99,390000,125.99 +1941-08-20,125.57,126.42,125.48,126.01,490000,126.01 +1941-08-19,125.62,125.91,125.20,125.57,390000,125.57 +1941-08-18,125.20,125.96,125.20,125.62,400000,125.62 +1941-08-15,125.96,125.97,124.66,124.90,390000,124.90 +1941-08-14,125.65,126.43,125.57,125.96,420000,125.96 +1941-08-13,125.81,126.10,125.42,125.65,420000,125.65 +1941-08-12,126.01,126.24,125.30,125.81,430000,125.81 +1941-08-11,126.40,126.61,125.63,126.01,450000,126.01 +1941-08-08,128.09,128.27,127.31,127.48,550000,127.48 +1941-08-07,128.10,128.57,127.68,128.09,500000,128.09 +1941-08-06,128.14,128.55,127.62,128.10,580000,128.10 +1941-08-05,128.17,128.54,127.61,128.14,640000,128.14 +1941-08-04,128.21,128.56,127.61,128.17,630000,128.17 +1941-08-01,128.68,128.68,127.64,128.22,680000,128.22 +1941-07-31,128.95,129.45,128.43,128.79,850000,128.79 +1941-07-30,129.19,129.34,128.07,128.95,750000,128.95 +1941-07-29,130.06,130.33,128.93,129.19,960000,129.19 +1941-07-28,128.70,130.37,128.65,130.06,940000,130.06 +1941-07-25,128.59,128.92,127.74,128.06,810000,128.06 +1941-07-24,129.16,129.40,128.39,128.59,620000,128.59 +1941-07-23,129.58,129.71,128.79,129.16,630000,129.16 +1941-07-22,129.51,131.10,129.22,129.58,1350000,129.58 +1941-07-21,127.98,129.57,127.78,129.51,910000,129.51 +1941-07-18,127.14,127.89,126.92,127.69,420000,127.69 +1941-07-17,127.83,127.88,126.75,127.14,460000,127.14 +1941-07-16,128.19,128.70,127.62,127.83,640000,127.83 +1941-07-15,127.89,128.68,127.53,128.19,700000,128.19 +1941-07-14,127.80,128.17,127.44,127.89,560000,127.89 +1941-07-11,127.78,128.70,127.35,127.90,810000,127.90 +1941-07-10,127.63,128.36,127.05,127.78,840000,127.78 +1941-07-09,127.64,128.77,127.12,127.63,1100000,127.63 +1941-07-08,126.16,128.00,126.07,127.64,1380000,127.64 +1941-07-07,124.54,126.24,124.54,126.16,900000,126.16 +1941-07-03,123.58,124.43,123.43,124.04,470000,124.04 +1941-07-02,122.85,123.90,122.78,123.58,390000,123.58 +1941-07-01,123.14,123.37,122.54,122.85,350000,122.85 +1941-06-30,123.40,123.58,122.87,123.14,270000,123.14 +1941-06-27,123.96,124.03,123.22,123.46,410000,123.46 +1941-06-26,123.52,124.13,123.42,123.96,530000,123.96 +1941-06-25,123.24,123.83,122.85,123.52,430000,123.52 +1941-06-24,123.97,124.03,122.88,123.24,440000,123.24 +1941-06-23,123.41,125.14,123.41,123.97,760000,123.97 +1941-06-20,123.30,123.30,121.85,122.19,360000,122.19 +1941-06-19,123.50,123.73,122.61,123.48,460000,123.48 +1941-06-18,123.17,124.31,123.17,123.50,580000,123.50 +1941-06-17,122.14,123.21,122.14,123.12,400000,123.12 +1941-06-16,122.04,122.58,121.72,121.95,340000,121.95 +1941-06-13,122.88,122.88,121.75,122.31,440000,122.31 +1941-06-12,122.18,123.48,122.17,122.98,560000,122.98 +1941-06-11,121.89,122.64,121.46,122.18,540000,122.18 +1941-06-10,120.61,122.48,120.61,121.89,830000,121.89 +1941-06-09,118.99,120.27,118.99,120.16,440000,120.16 +1941-06-06,118.13,118.26,117.78,118.00,330000,118.00 +1941-06-05,117.68,118.60,117.59,118.13,610000,118.13 +1941-06-04,117.38,117.98,116.89,117.68,430000,117.68 +1941-06-03,116.32,117.85,116.32,117.38,420000,117.38 +1941-06-02,115.76,116.45,115.52,116.18,260000,116.18 +1941-05-29,116.16,116.80,115.84,116.23,350000,116.23 +1941-05-28,115.95,116.50,115.56,116.16,340000,116.16 +1941-05-27,115.73,116.31,115.33,115.95,390000,115.95 +1941-05-26,116.28,116.28,115.51,115.73,300000,115.73 +1941-05-23,116.81,117.16,116.22,116.73,260000,116.73 +1941-05-22,117.82,117.98,116.56,116.81,400000,116.81 +1941-05-21,117.65,118.45,117.34,117.82,540000,117.82 +1941-05-20,116.31,117.78,116.31,117.65,470000,117.65 +1941-05-19,116.11,116.36,115.92,116.15,220000,116.15 +1941-05-16,115.73,116.38,115.36,115.86,290000,115.86 +1941-05-15,117.01,117.37,115.54,115.73,500000,115.73 +1941-05-14,117.21,117.36,116.67,117.01,320000,117.01 +1941-05-13,117.14,117.93,116.88,117.21,430000,117.21 +1941-05-12,117.54,117.83,116.85,117.14,440000,117.14 +1941-05-09,116.34,116.90,116.18,116.46,400000,116.46 +1941-05-08,116.76,116.76,115.97,116.34,440000,116.34 +1941-05-07,117.10,117.49,116.53,116.87,560000,116.87 +1941-05-06,116.02,117.63,116.02,117.10,910000,117.10 +1941-05-05,115.55,116.20,114.97,115.84,420000,115.84 +1941-05-02,115.41,116.34,115.41,115.72,400000,115.72 +1941-05-01,115.54,115.64,114.78,115.30,310000,115.30 +1941-04-30,116.73,116.78,115.36,115.54,410000,115.54 +1941-04-29,116.63,117.48,116.45,116.73,510000,116.73 +1941-04-28,116.43,116.86,115.96,116.63,310000,116.63 +1941-04-25,117.35,117.56,116.45,116.58,430000,116.58 +1941-04-24,116.61,117.85,116.61,117.35,490000,117.35 +1941-04-23,115.78,116.82,115.33,116.59,480000,116.59 +1941-04-22,116.06,117.03,115.36,115.78,440000,115.78 +1941-04-21,116.15,116.39,115.49,116.06,430000,116.06 +1941-04-18,117.74,117.74,116.11,116.28,490000,116.28 +1941-04-17,118.60,118.75,117.78,118.16,400000,118.16 +1941-04-16,118.59,119.01,117.65,118.60,440000,118.60 +1941-04-15,118.89,119.61,118.24,118.59,450000,118.59 +1941-04-14,118.60,119.05,118.01,118.89,460000,118.89 +1941-04-10,119.85,120.45,119.40,119.66,360000,119.66 +1941-04-09,120.72,120.72,119.56,119.85,590000,119.85 +1941-04-08,122.94,122.94,121.00,121.21,740000,121.21 +1941-04-07,124.11,124.11,123.36,123.64,360000,123.64 +1941-04-04,124.65,125.28,124.23,124.64,700000,124.64 +1941-04-03,123.74,124.93,123.74,124.65,940000,124.65 +1941-04-02,123.26,123.55,122.66,123.43,450000,123.43 +1941-04-01,122.87,123.57,122.87,123.26,430000,123.26 +1941-03-31,122.37,123.02,122.32,122.72,440000,122.72 +1941-03-28,123.33,123.70,122.47,122.68,440000,122.68 +1941-03-27,122.84,123.75,122.84,123.33,550000,123.33 +1941-03-26,122.78,123.21,122.55,122.70,530000,122.70 +1941-03-25,122.39,123.00,121.98,122.78,450000,122.78 +1941-03-24,121.92,122.62,121.82,122.39,370000,122.39 +1941-03-21,123.39,123.39,122.26,122.47,470000,122.47 +1941-03-20,123.55,123.92,123.26,123.60,490000,123.60 +1941-03-19,123.92,124.35,123.24,123.55,540000,123.55 +1941-03-18,123.46,124.10,123.02,123.92,410000,123.92 +1941-03-17,123.40,124.12,123.18,123.46,380000,123.46 +1941-03-14,122.56,123.12,122.42,122.75,320000,122.75 +1941-03-13,123.19,123.27,122.35,122.56,340000,122.56 +1941-03-12,123.27,124.04,122.73,123.19,460000,123.19 +1941-03-11,123.64,124.20,123.03,123.27,510000,123.27 +1941-03-10,121.48,123.71,121.48,123.64,620000,123.64 +1941-03-07,121.63,122.25,121.34,121.59,350000,121.59 +1941-03-06,120.30,121.68,120.10,121.63,480000,121.63 +1941-03-05,121.15,121.15,119.98,120.30,290000,120.30 +1941-03-04,120.88,121.44,120.62,121.16,310000,121.16 +1941-03-03,121.65,121.65,120.58,120.88,330000,120.88 +1941-02-28,121.87,122.69,121.60,121.97,410000,121.97 +1941-02-27,122.22,122.22,121.22,121.87,310000,121.87 +1941-02-26,122.40,122.90,121.99,122.39,380000,122.39 +1941-02-25,121.60,122.77,121.60,122.40,360000,122.40 +1941-02-24,120.44,121.74,120.44,121.49,350000,121.49 +1941-02-21,119.99,120.64,119.60,120.24,300000,120.24 +1941-02-20,118.84,120.52,118.84,119.99,450000,119.99 +1941-02-19,118.71,118.71,117.43,117.94,470000,117.94 +1941-02-18,119.18,119.65,118.53,118.98,320000,118.98 +1941-02-17,118.70,119.73,118.70,119.18,360000,119.18 +1941-02-14,120.74,120.74,117.57,117.66,930000,117.66 +1941-02-13,122.06,122.06,120.57,121.10,640000,121.10 +1941-02-11,123.80,123.80,122.51,122.61,420000,122.61 +1941-02-10,124.71,125.13,123.93,124.19,300000,124.19 +1941-02-07,124.58,124.58,123.57,124.30,340000,124.30 +1941-02-06,124.25,125.27,124.25,124.76,420000,124.76 +1941-02-05,122.77,124.55,122.77,124.14,490000,124.14 +1941-02-04,122.67,123.29,122.29,122.63,350000,122.63 +1941-02-03,123.28,123.75,122.40,122.67,490000,122.67 +1941-01-31,124.05,124.85,123.86,124.13,470000,124.13 +1941-01-30,125.96,125.96,123.94,124.05,780000,124.05 +1941-01-29,127.93,127.93,125.76,126.00,600000,126.00 +1941-01-28,129.03,129.27,128.42,128.60,470000,128.60 +1941-01-27,128.96,129.47,128.54,129.03,360000,129.03 +1941-01-24,128.34,128.92,127.68,128.52,410000,128.52 +1941-01-23,128.65,129.15,127.74,128.34,470000,128.34 +1941-01-22,128.20,129.03,127.98,128.65,520000,128.65 +1941-01-21,129.24,129.51,127.83,128.20,580000,128.20 +1941-01-20,129.75,129.99,128.78,129.24,380000,129.24 +1941-01-17,129.93,130.20,128.73,129.54,580000,129.54 +1941-01-16,131.36,131.36,129.82,129.93,610000,129.93 +1941-01-15,132.43,132.43,131.20,131.51,400000,131.51 +1941-01-14,133.11,133.11,132.17,132.44,470000,132.44 +1941-01-13,133.49,133.85,132.92,133.25,480000,133.25 +1941-01-10,133.39,134.27,133.14,133.59,750000,133.59 +1941-01-09,133.02,133.94,132.79,133.39,860000,133.39 +1941-01-08,133.02,133.74,132.35,133.02,640000,133.02 +1941-01-07,132.83,133.50,132.19,133.02,530000,133.02 +1941-01-06,132.42,133.68,132.42,132.83,720000,132.83 +1941-01-03,130.57,132.19,130.24,132.01,510000,132.01 +1941-01-02,131.13,131.88,130.39,130.57,530000,130.57 +1940-12-31,131.04,131.86,130.40,131.13,1070000,131.13 +1940-12-30,130.18,131.85,130.18,131.04,1180000,131.04 +1940-12-27,129.02,130.11,128.55,129.51,1270000,129.51 +1940-12-26,128.89,129.70,128.42,129.02,840000,129.02 +1940-12-24,128.41,129.47,128.08,128.89,830000,128.89 +1940-12-23,128.89,129.29,127.83,128.41,820000,128.41 +1940-12-20,128.84,129.66,128.19,128.87,830000,128.87 +1940-12-19,129.42,129.43,128.19,128.84,790000,128.84 +1940-12-18,130.53,130.92,129.31,129.42,780000,129.42 +1940-12-17,131.07,131.34,130.09,130.53,700000,130.53 +1940-12-16,132.28,132.28,130.74,131.07,660000,131.07 +1940-12-13,132.14,133.00,131.56,132.35,960000,132.35 +1940-12-12,131.76,132.53,131.24,132.14,780000,132.14 +1940-12-11,131.37,132.50,131.24,131.76,810000,131.76 +1940-12-10,131.46,131.97,130.69,131.37,610000,131.37 +1940-12-09,131.29,132.22,130.91,131.46,630000,131.46 +1940-12-06,129.96,130.86,129.62,130.33,540000,130.33 +1940-12-05,130.75,130.81,129.54,129.96,600000,129.96 +1940-12-04,130.78,131.21,129.99,130.75,650000,130.75 +1940-12-03,130.93,131.23,130.25,130.78,450000,130.78 +1940-12-02,131.00,131.96,130.54,130.93,480000,130.93 +1940-11-29,130.14,130.78,129.49,130.03,530000,130.03 +1940-11-28,129.78,130.57,129.13,130.14,470000,130.14 +1940-11-27,131.45,131.45,129.29,129.78,850000,129.78 +1940-11-26,131.96,132.72,131.28,131.94,590000,131.94 +1940-11-25,131.47,132.76,131.35,131.96,520000,131.96 +1940-11-22,132.22,133.36,131.29,131.74,710000,131.74 +1940-11-20,134.08,134.08,131.72,132.22,810000,132.22 +1940-11-19,134.74,134.99,133.51,134.48,700000,134.48 +1940-11-18,134.73,135.47,134.36,134.74,570000,134.74 +1940-11-15,136.97,137.44,135.24,135.59,1050000,135.59 +1940-11-14,136.61,137.78,136.20,136.97,1380000,136.97 +1940-11-13,137.41,137.61,135.77,136.61,1070000,136.61 +1940-11-12,138.12,138.50,136.56,137.41,1450000,137.41 +1940-11-08,137.75,138.77,135.76,136.64,1750000,136.64 +1940-11-07,131.98,138.13,131.93,137.75,2080000,137.75 +1940-11-06,135.00,135.00,131.47,131.98,1210000,131.98 +1940-11-04,134.85,135.83,133.81,135.21,1240000,135.21 +1940-11-01,134.61,135.84,134.13,134.41,1260000,134.41 +1940-10-31,133.06,135.10,133.06,134.61,1340000,134.61 +1940-10-30,132.19,133.43,131.90,132.98,670000,132.98 +1940-10-29,131.77,132.80,131.66,132.19,590000,132.19 +1940-10-28,132.26,132.27,130.96,131.77,470000,131.77 +1940-10-25,131.36,131.71,130.38,131.16,520000,131.16 +1940-10-24,132.29,132.29,131.06,131.36,540000,131.36 +1940-10-23,131.98,132.79,131.26,132.40,810000,132.40 +1940-10-22,131.37,132.44,131.04,131.98,540000,131.98 +1940-10-21,132.18,132.28,131.13,131.37,370000,131.37 +1940-10-18,132.49,132.90,131.92,132.45,590000,132.45 +1940-10-17,131.97,132.84,131.20,132.49,650000,132.49 +1940-10-16,131.48,132.69,131.05,131.97,660000,131.97 +1940-10-15,130.73,131.63,129.47,131.48,550000,131.48 +1940-10-14,131.04,131.49,130.32,130.73,400000,130.73 +1940-10-11,130.39,131.62,130.20,131.04,400000,131.04 +1940-10-10,130.54,131.22,130.09,130.39,380000,130.39 +1940-10-09,131.31,131.31,130.11,130.54,450000,130.54 +1940-10-08,133.31,133.31,131.20,131.31,500000,131.31 +1940-10-07,133.90,134.54,133.31,133.51,390000,133.51 +1940-10-04,134.48,134.48,133.37,133.79,470000,133.79 +1940-10-03,134.97,135.86,134.59,135.09,780000,135.09 +1940-10-02,134.33,135.41,133.70,134.97,770000,134.97 +1940-10-01,133.04,135.04,133.04,134.33,810000,134.33 +1940-09-30,132.32,133.07,132.10,132.64,400000,132.64 +1940-09-27,132.98,132.98,131.38,131.76,560000,131.76 +1940-09-26,134.00,134.00,133.00,133.50,440000,133.50 +1940-09-25,134.44,134.58,133.40,134.15,600000,134.15 +1940-09-24,135.10,135.48,133.89,134.44,710000,134.44 +1940-09-23,132.98,135.31,132.98,135.10,980000,135.10 +1940-09-20,131.34,131.95,130.77,131.61,380000,131.61 +1940-09-19,131.28,132.03,130.83,131.34,470000,131.34 +1940-09-18,130.43,131.67,129.91,131.28,480000,131.28 +1940-09-17,129.44,130.89,129.44,130.43,400000,130.43 +1940-09-16,128.89,130.04,128.89,129.44,290000,129.44 +1940-09-13,127.87,128.37,127.22,127.74,270000,127.74 +1940-09-12,129.32,129.32,127.46,127.87,400000,127.87 +1940-09-11,129.61,131.21,129.07,129.36,450000,129.36 +1940-09-10,129.73,130.53,129.18,129.61,360000,129.61 +1940-09-09,130.98,130.98,129.36,129.73,590000,129.73 +1940-09-06,134.10,134.19,132.71,133.12,710000,133.12 +1940-09-05,132.31,134.54,132.31,134.10,1250000,134.10 +1940-09-04,129.74,132.25,128.89,132.16,780000,132.16 +1940-09-03,129.42,130.59,129.12,129.74,550000,129.74 +1940-08-30,126.98,129.18,126.98,128.88,560000,128.88 +1940-08-29,126.87,127.37,126.49,126.87,270000,126.87 +1940-08-28,125.81,127.37,125.81,126.87,380000,126.87 +1940-08-27,125.71,125.76,124.95,125.33,220000,125.33 +1940-08-26,125.48,126.04,125.34,125.71,160000,125.71 +1940-08-23,126.34,126.34,124.81,125.34,290000,125.34 +1940-08-22,125.62,126.97,125.62,126.46,440000,126.46 +1940-08-21,123.95,125.38,123.95,125.07,360000,125.07 +1940-08-20,122.52,123.41,122.52,123.17,240000,123.17 +1940-08-19,121.98,122.37,121.70,122.06,130000,122.06 +1940-08-16,122.50,122.50,120.90,121.28,310000,121.28 +1940-08-15,122.73,123.46,122.73,123.04,220000,123.04 +1940-08-14,122.98,123.17,122.00,122.25,270000,122.25 +1940-08-13,126.42,126.42,122.64,122.98,640000,122.98 +1940-08-12,126.99,127.55,126.50,127.26,290000,127.26 +1940-08-09,125.44,126.81,125.44,126.40,310000,126.40 +1940-08-08,125.12,125.48,124.87,125.13,210000,125.13 +1940-08-07,125.27,125.47,124.61,125.12,240000,125.12 +1940-08-06,126.28,126.28,125.11,125.27,290000,125.27 +1940-08-05,126.36,126.73,125.57,126.44,280000,126.44 +1940-08-02,126.13,126.97,125.77,126.37,300000,126.37 +1940-08-01,126.14,126.86,125.57,126.13,330000,126.13 +1940-07-31,125.97,127.18,125.47,126.14,560000,126.14 +1940-07-30,123.58,126.18,123.58,125.97,670000,125.97 +1940-07-29,122.45,123.38,122.16,123.15,260000,123.15 +1940-07-26,121.93,122.75,121.70,122.05,270000,122.05 +1940-07-25,121.64,122.09,121.19,121.93,250000,121.93 +1940-07-24,122.23,122.30,121.49,121.64,200000,121.64 +1940-07-23,122.06,122.53,121.49,122.23,250000,122.23 +1940-07-22,121.87,122.47,121.62,122.06,230000,122.06 +1940-07-19,122.93,122.93,122.01,122.18,260000,122.18 +1940-07-18,122.82,123.22,122.52,123.00,220000,123.00 +1940-07-17,123.12,123.91,122.34,122.82,380000,122.82 +1940-07-16,121.82,123.73,121.82,123.12,440000,123.12 +1940-07-15,121.48,122.13,121.29,121.72,230000,121.72 +1940-07-12,121.58,121.95,121.32,121.63,260000,121.63 +1940-07-11,121.49,122.30,121.28,121.58,330000,121.58 +1940-07-10,121.60,121.82,120.83,121.49,280000,121.49 +1940-07-09,121.63,122.33,121.36,121.60,300000,121.60 +1940-07-08,121.59,122.04,121.39,121.63,230000,121.63 +1940-07-05,121.02,121.96,121.02,121.51,280000,121.51 +1940-07-03,120.96,121.68,120.14,120.96,380000,120.96 +1940-07-02,121.12,122.01,120.71,120.96,320000,120.96 +1940-07-01,121.77,121.77,120.79,121.12,270000,121.12 +1940-06-28,121.82,124.42,121.82,122.06,1170000,122.06 +1940-06-27,120.01,121.23,120.01,120.69,440000,120.69 +1940-06-26,120.74,120.74,118.67,119.73,640000,119.73 +1940-06-25,123.76,123.99,120.78,121.05,700000,121.05 +1940-06-24,122.83,124.05,122.60,123.76,470000,123.76 +1940-06-21,122.35,123.07,121.89,122.61,330000,122.61 +1940-06-20,123.79,123.79,121.96,122.35,590000,122.35 +1940-06-19,123.21,124.51,122.50,123.86,560000,123.86 +1940-06-18,122.80,125.31,122.35,123.21,720000,123.21 +1940-06-17,123.36,123.73,119.18,122.80,1210000,122.80 +1940-06-14,119.91,122.95,118.96,122.27,950000,122.27 +1940-06-13,121.46,122.10,119.37,119.91,880000,119.91 +1940-06-12,117.41,122.38,117.41,121.46,1360000,121.46 +1940-06-11,113.24,116.38,113.24,115.97,760000,115.97 +1940-06-10,114.42,114.42,110.41,111.84,970000,111.84 +1940-06-07,114.60,116.58,114.60,115.67,470000,115.67 +1940-06-06,113.25,114.80,113.05,114.48,430000,114.48 +1940-06-05,115.12,115.12,112.30,113.25,670000,113.25 +1940-06-04,114.75,116.25,114.75,115.79,410000,115.79 +1940-06-03,115.67,116.44,114.35,114.73,450000,114.73 +1940-05-31,115.24,117.15,115.13,116.22,530000,116.22 +1940-05-29,114.26,116.66,114.08,115.24,660000,115.24 +1940-05-28,114.76,114.76,110.51,114.26,1260000,114.26 +1940-05-27,115.07,117.71,115.07,116.35,790000,116.35 +1940-05-24,114.71,116.15,113.37,113.94,870000,113.94 +1940-05-23,114.75,117.84,112.78,114.71,1640000,114.71 +1940-05-22,114.13,116.50,112.43,114.75,2130000,114.75 +1940-05-21,120.52,120.52,110.61,114.13,3940000,114.13 +1940-05-20,122.43,124.98,121.68,122.43,1240000,122.43 +1940-05-17,130.43,131.21,122.93,124.20,3080000,124.20 +1940-05-16,129.08,131.35,127.54,130.43,2350000,130.43 +1940-05-15,128.27,131.17,125.76,129.08,3770000,129.08 +1940-05-14,136.85,136.85,128.11,128.27,3680000,128.27 +1940-05-13,144.42,144.42,137.25,137.63,2560000,137.63 +1940-05-10,148.17,148.48,144.51,144.77,2090000,144.77 +1940-05-09,147.96,148.60,147.65,148.17,850000,148.17 +1940-05-08,147.74,148.70,147.49,147.96,690000,147.96 +1940-05-07,147.33,148.22,146.89,147.74,580000,147.74 +1940-05-06,147.55,148.12,147.05,147.33,530000,147.33 +1940-05-03,147.76,148.70,146.42,147.65,1070000,147.65 +1940-05-02,147.15,148.18,147.15,147.76,650000,147.76 +1940-05-01,148.14,148.14,146.84,147.13,810000,147.13 +1940-04-30,148.41,149.06,147.98,148.43,590000,148.43 +1940-04-29,148.12,148.88,148.02,148.41,570000,148.41 +1940-04-26,148.56,148.72,147.37,147.73,850000,147.73 +1940-04-25,148.45,149.22,148.07,148.56,820000,148.56 +1940-04-24,148.93,149.45,148.20,148.45,850000,148.45 +1940-04-23,148.01,149.18,147.77,148.93,880000,148.93 +1940-04-22,147.67,148.68,147.45,148.01,870000,148.01 +1940-04-19,147.15,147.31,145.86,146.80,1160000,146.80 +1940-04-18,148.35,148.64,146.76,147.15,1210000,147.15 +1940-04-17,148.18,149.12,147.77,148.35,900000,148.35 +1940-04-16,149.72,150.24,147.43,148.18,1510000,148.18 +1940-04-15,149.66,150.67,149.20,149.72,1260000,149.72 +1940-04-12,149.98,150.09,148.68,149.20,830000,149.20 +1940-04-11,149.59,150.96,149.49,149.98,890000,149.98 +1940-04-10,150.31,150.55,149.12,149.59,1290000,149.59 +1940-04-09,151.29,152.01,149.16,150.31,2140000,150.31 +1940-04-08,151.10,152.09,150.63,151.29,1260000,151.29 +1940-04-05,150.41,151.32,149.94,150.36,1260000,150.36 +1940-04-04,149.65,151.15,149.56,150.41,2000000,150.41 +1940-04-03,147.92,149.74,147.56,149.65,1730000,149.65 +1940-04-02,147.72,148.37,147.48,147.92,840000,147.92 +1940-04-01,147.95,148.44,147.49,147.72,750000,147.72 +1940-03-29,147.25,148.04,146.82,147.54,840000,147.54 +1940-03-28,147.47,148.16,146.92,147.25,1020000,147.25 +1940-03-27,146.24,147.83,146.24,147.47,1190000,147.47 +1940-03-26,146.25,146.56,145.49,145.86,620000,145.86 +1940-03-25,146.73,146.96,146.15,146.25,600000,146.25 +1940-03-21,146.91,147.20,146.38,146.73,580000,146.73 +1940-03-20,146.43,147.30,146.34,146.91,650000,146.91 +1940-03-19,145.61,146.85,145.61,146.43,650000,146.43 +1940-03-18,145.76,146.18,145.08,145.59,510000,145.59 +1940-03-15,148.11,148.21,146.34,146.53,880000,146.53 +1940-03-14,148.32,148.57,147.63,148.11,660000,148.11 +1940-03-13,148.37,148.92,147.69,148.32,630000,148.32 +1940-03-12,148.15,149.45,147.93,148.37,880000,148.37 +1940-03-11,148.14,148.65,147.57,148.15,590000,148.15 +1940-03-08,148.32,148.80,147.76,148.07,750000,148.07 +1940-03-07,147.97,148.67,147.83,148.32,690000,148.32 +1940-03-06,147.08,148.37,147.08,147.97,860000,147.97 +1940-03-05,146.43,147.15,146.41,146.89,570000,146.89 +1940-03-04,146.33,146.77,146.00,146.43,460000,146.43 +1940-03-01,146.54,146.79,145.85,146.23,600000,146.23 +1940-02-29,146.56,147.21,146.10,146.54,620000,146.54 +1940-02-28,146.17,147.16,146.07,146.56,570000,146.56 +1940-02-27,146.44,147.10,145.90,146.17,510000,146.17 +1940-02-26,146.72,146.82,145.81,146.44,440000,146.44 +1940-02-23,148.17,148.17,146.93,147.35,650000,147.35 +1940-02-21,148.65,149.04,148.02,148.34,780000,148.34 +1940-02-20,148.46,148.95,147.51,148.65,810000,148.65 +1940-02-19,148.72,148.95,147.93,148.46,630000,148.46 +1940-02-16,148.46,148.60,147.38,148.20,680000,148.20 +1940-02-15,148.33,149.19,148.20,148.46,750000,148.46 +1940-02-14,148.78,148.83,147.65,148.33,650000,148.33 +1940-02-13,148.84,149.64,148.38,148.78,580000,148.78 +1940-02-09,148.54,150.04,148.54,148.94,1100000,148.94 +1940-02-08,146.63,148.50,146.32,148.40,870000,148.40 +1940-02-07,145.93,146.97,145.84,146.63,490000,146.63 +1940-02-06,145.00,146.00,144.79,145.93,540000,145.93 +1940-02-05,145.58,145.58,144.69,145.00,410000,145.00 +1940-02-02,145.23,145.97,144.83,145.33,520000,145.33 +1940-02-01,145.33,145.57,144.73,145.23,460000,145.23 +1940-01-31,145.63,145.91,145.12,145.33,610000,145.33 +1940-01-30,146.26,146.37,145.19,145.63,550000,145.63 +1940-01-29,146.51,147.05,145.86,146.26,490000,146.26 +1940-01-26,146.29,147.16,146.00,146.61,600000,146.61 +1940-01-25,147.00,147.29,146.04,146.29,540000,146.29 +1940-01-24,145.71,147.11,145.71,147.00,710000,147.00 +1940-01-23,145.13,145.97,144.85,145.49,510000,145.49 +1940-01-22,145.64,145.66,144.57,145.13,440000,145.13 +1940-01-19,145.61,146.75,145.52,145.86,640000,145.86 +1940-01-18,145.81,146.44,144.77,145.61,610000,145.61 +1940-01-17,145.67,146.71,145.30,145.81,470000,145.81 +1940-01-16,144.65,146.11,144.37,145.67,530000,145.67 +1940-01-15,145.19,145.95,143.06,144.65,860000,144.65 +1940-01-12,148.23,148.35,145.76,145.96,1110000,145.96 +1940-01-11,150.15,150.64,148.22,148.23,850000,148.23 +1940-01-10,149.84,150.47,149.35,150.15,600000,150.15 +1940-01-09,151.21,151.21,149.45,149.84,670000,149.84 +1940-01-08,151.19,152.11,151.08,151.34,630000,151.34 +1940-01-05,152.43,152.89,151.27,151.54,760000,151.54 +1940-01-04,152.80,153.26,152.06,152.43,860000,152.43 +1940-01-03,151.86,153.29,151.86,152.80,1020000,152.80 +1940-01-02,150.45,151.79,150.45,151.43,580000,151.43 +1939-12-29,149.48,150.70,149.06,149.99,1140000,149.99 +1939-12-28,148.52,150.10,148.24,149.48,1080000,149.48 +1939-12-27,149.27,149.51,147.66,148.52,1150000,148.52 +1939-12-26,149.85,150.11,148.83,149.27,720000,149.27 +1939-12-22,149.10,149.97,148.87,149.59,720000,149.59 +1939-12-21,149.13,149.90,148.59,149.10,740000,149.10 +1939-12-20,148.93,149.86,148.41,149.13,910000,149.13 +1939-12-19,149.22,149.59,148.35,148.93,750000,148.93 +1939-12-18,149.36,149.80,148.69,149.22,730000,149.22 +1939-12-15,148.93,150.11,148.74,149.64,700000,149.64 +1939-12-14,148.94,150.09,148.25,148.93,890000,148.93 +1939-12-13,147.12,149.29,147.12,148.94,1060000,148.94 +1939-12-12,147.05,147.59,146.43,146.93,610000,146.93 +1939-12-11,147.93,148.27,146.67,147.05,570000,147.05 +1939-12-08,148.57,148.57,147.50,147.86,580000,147.86 +1939-12-07,148.78,149.59,147.98,148.70,1010000,148.70 +1939-12-06,146.83,148.99,146.83,148.78,990000,148.78 +1939-12-05,146.34,147.29,146.05,146.49,590000,146.49 +1939-12-04,146.62,146.79,145.74,146.34,430000,146.34 +1939-12-01,145.69,146.94,145.51,146.54,610000,146.54 +1939-11-30,146.73,146.73,144.85,145.69,880000,145.69 +1939-11-29,148.31,149.18,146.82,146.89,780000,146.89 +1939-11-28,148.59,149.65,148.02,148.31,620000,148.31 +1939-11-27,148.64,149.05,147.98,148.59,520000,148.59 +1939-11-24,150.34,150.46,148.12,148.47,820000,148.47 +1939-11-22,150.67,150.67,149.62,150.34,570000,150.34 +1939-11-21,151.69,152.11,150.72,150.98,560000,150.98 +1939-11-20,151.53,152.58,151.02,151.69,750000,151.69 +1939-11-17,151.15,152.21,150.55,151.00,770000,151.00 +1939-11-16,149.53,151.42,149.27,151.15,830000,151.15 +1939-11-15,149.77,150.48,149.23,149.53,640000,149.53 +1939-11-14,149.07,150.53,148.98,149.77,780000,149.77 +1939-11-13,149.09,149.70,148.55,149.07,650000,149.07 +1939-11-10,148.75,149.33,147.74,149.09,1090000,149.09 +1939-11-09,150.35,150.87,148.53,148.75,1200000,148.75 +1939-11-08,151.43,151.43,149.81,150.35,1070000,150.35 +1939-11-06,152.35,152.35,150.76,151.46,1270000,151.46 +1939-11-03,151.56,153.18,150.04,152.64,1820000,152.64 +1939-11-02,151.60,152.20,150.47,151.56,850000,151.56 +1939-11-01,151.88,152.26,150.64,151.60,790000,151.60 +1939-10-31,153.21,153.24,151.32,151.88,1010000,151.88 +1939-10-30,153.12,153.60,152.39,153.21,640000,153.21 +1939-10-27,154.05,154.34,152.30,153.46,1060000,153.46 +1939-10-26,155.48,155.95,153.84,154.05,1680000,154.05 +1939-10-25,154.07,155.95,153.98,155.48,1690000,155.48 +1939-10-24,153.71,154.76,153.04,154.07,1160000,154.07 +1939-10-23,153.86,154.56,153.19,153.71,970000,153.71 +1939-10-20,153.36,153.87,152.55,153.00,790000,153.00 +1939-10-19,153.54,154.42,152.78,153.36,1160000,153.36 +1939-10-18,154.56,155.28,153.23,153.54,1400000,153.54 +1939-10-17,151.29,154.81,151.29,154.56,1840000,154.56 +1939-10-16,150.38,151.34,149.95,150.84,490000,150.84 +1939-10-13,151.34,152.40,150.43,150.85,740000,150.85 +1939-10-11,150.66,151.89,150.49,151.34,630000,151.34 +1939-10-10,149.92,152.02,149.92,150.66,950000,150.66 +1939-10-09,149.60,150.51,148.91,149.89,620000,149.89 +1939-10-06,150.48,153.06,149.61,150.61,1330000,150.61 +1939-10-05,150.25,151.68,149.72,150.48,910000,150.48 +1939-10-04,150.23,151.20,148.73,150.25,980000,150.25 +1939-10-03,151.41,152.20,149.29,150.23,1000000,150.23 +1939-10-02,152.36,152.36,150.68,151.41,840000,151.41 +1939-09-29,150.89,150.89,148.92,150.16,1130000,150.16 +1939-09-28,153.08,153.13,150.41,151.12,1570000,151.12 +1939-09-27,153.54,154.92,152.01,153.08,2340000,153.08 +1939-09-26,152.64,154.27,151.77,153.54,1710000,153.54 +1939-09-25,152.99,153.91,152.05,152.64,1230000,152.64 +1939-09-22,153.48,154.76,151.97,152.57,1660000,152.57 +1939-09-21,152.25,154.56,151.49,153.48,1730000,153.48 +1939-09-20,152.14,154.96,151.57,152.25,2140000,152.25 +1939-09-19,148.46,152.83,148.46,152.14,1830000,152.14 +1939-09-18,150.57,150.57,147.35,147.78,1730000,147.78 +1939-09-15,153.71,155.57,152.56,154.03,1590000,154.03 +1939-09-14,154.10,155.54,151.96,153.71,2010000,153.71 +1939-09-13,155.92,157.77,152.74,154.10,3760000,154.10 +1939-09-12,155.12,157.30,151.78,155.92,4170000,155.92 +1939-09-11,150.91,156.34,150.85,155.12,4680000,155.12 +1939-09-08,148.32,152.58,148.08,150.04,3510000,150.04 +1939-09-07,148.04,150.52,146.74,148.32,2600000,148.32 +1939-09-06,148.12,150.76,146.08,148.04,3940000,148.04 +1939-09-05,142.38,150.07,142.38,148.12,5930000,148.12 +1939-09-01,134.41,136.03,127.51,135.25,1970000,135.25 +1939-08-31,135.76,135.76,133.38,134.41,460000,134.41 +1939-08-30,137.39,138.07,135.76,136.16,500000,136.16 +1939-08-29,135.91,137.84,135.91,137.39,480000,137.39 +1939-08-28,136.39,136.40,132.68,134.66,670000,134.66 +1939-08-25,131.33,134.53,130.58,133.73,690000,133.73 +1939-08-24,131.82,132.42,128.60,131.33,1290000,131.33 +1939-08-23,134.80,134.80,131.49,131.82,790000,131.82 +1939-08-22,133.07,135.84,133.07,135.07,860000,135.07 +1939-08-21,133.93,133.93,132.11,132.81,850000,132.81 +1939-08-18,138.15,138.15,134.83,135.54,840000,135.54 +1939-08-17,138.47,138.89,137.38,138.33,440000,138.33 +1939-08-16,139.86,139.86,137.61,138.47,640000,138.47 +1939-08-15,140.76,142.35,140.76,141.29,660000,141.29 +1939-08-14,138.75,140.54,138.75,140.18,550000,140.18 +1939-08-11,137.25,138.93,136.38,137.29,700000,137.29 +1939-08-10,138.83,138.83,136.62,137.25,700000,137.25 +1939-08-09,140.58,140.58,139.14,139.75,470000,139.75 +1939-08-08,140.76,141.93,140.55,141.10,450000,141.10 +1939-08-07,142.11,142.38,140.31,140.76,520000,140.76 +1939-08-04,144.06,144.06,141.26,141.73,900000,141.73 +1939-08-03,144.26,145.75,143.79,144.24,1010000,144.24 +1939-08-02,143.36,144.90,142.69,144.26,1030000,144.26 +1939-08-01,143.26,143.89,142.45,143.36,580000,143.36 +1939-07-31,144.00,144.04,142.77,143.26,520000,143.26 +1939-07-28,144.51,145.04,143.48,144.11,810000,144.11 +1939-07-27,143.82,144.92,143.08,144.51,820000,144.51 +1939-07-26,143.10,144.39,142.41,143.82,890000,143.82 +1939-07-25,144.18,145.72,142.83,143.10,1230000,143.10 +1939-07-24,144.71,144.89,143.38,144.18,1070000,144.18 +1939-07-21,141.88,144.28,141.88,143.46,1270000,143.46 +1939-07-20,142.64,143.24,141.05,141.24,810000,141.24 +1939-07-19,143.60,143.60,141.70,142.64,1020000,142.64 +1939-07-18,142.96,144.74,142.96,143.76,1890000,143.76 +1939-07-17,138.48,143.20,138.48,142.58,1750000,142.58 +1939-07-14,138.02,138.41,137.24,137.57,540000,137.57 +1939-07-13,137.34,139.05,137.34,138.02,950000,138.02 +1939-07-12,134.67,137.24,134.67,136.98,910000,136.98 +1939-07-11,133.84,135.06,133.84,134.56,430000,134.56 +1939-07-10,133.24,134.21,133.22,133.79,280000,133.79 +1939-07-07,133.58,133.84,132.93,133.22,330000,133.22 +1939-07-06,133.68,134.31,132.98,133.58,410000,133.58 +1939-07-05,132.74,133.94,132.74,133.68,350000,133.68 +1939-07-03,131.73,132.22,131.18,131.93,240000,131.93 +1939-06-30,130.05,131.16,128.97,130.63,600000,130.63 +1939-06-29,131.81,131.81,129.71,130.05,820000,130.05 +1939-06-28,135.06,135.06,132.76,132.83,540000,132.83 +1939-06-27,135.09,135.77,134.01,135.42,480000,135.42 +1939-06-26,136.77,136.77,134.83,135.09,500000,135.09 +1939-06-23,136.88,137.95,136.48,137.42,480000,137.42 +1939-06-22,137.61,137.63,136.34,136.88,450000,136.88 +1939-06-21,137.57,138.04,136.87,137.61,470000,137.61 +1939-06-20,136.72,137.97,136.72,137.57,490000,137.57 +1939-06-19,135.72,137.02,135.72,136.40,350000,136.40 +1939-06-16,134.41,135.36,133.79,134.67,400000,134.67 +1939-06-15,137.03,137.03,134.26,134.41,580000,134.41 +1939-06-14,138.02,138.02,136.44,137.50,400000,137.50 +1939-06-13,139.09,139.09,137.38,138.20,530000,138.20 +1939-06-12,139.95,139.95,138.34,139.13,420000,139.13 +1939-06-09,138.61,140.75,138.61,140.09,790000,140.09 +1939-06-08,138.71,138.84,137.53,138.49,410000,138.49 +1939-06-07,138.36,139.79,138.17,138.71,530000,138.71 +1939-06-06,137.06,138.84,136.98,138.36,600000,138.36 +1939-06-05,137.12,137.36,136.34,137.06,350000,137.06 +1939-06-02,136.29,137.42,136.29,136.74,400000,136.74 +1939-06-01,137.36,137.36,135.52,136.20,600000,136.20 +1939-05-31,137.80,139.23,137.52,138.18,670000,138.18 +1939-05-29,136.80,137.91,136.42,137.80,600000,137.80 +1939-05-26,135.53,136.76,135.22,136.09,620000,136.09 +1939-05-25,135.11,137.16,135.11,135.53,1010000,135.53 +1939-05-24,132.09,135.14,132.09,135.04,1010000,135.04 +1939-05-23,132.45,132.88,131.49,131.77,420000,131.77 +1939-05-22,131.22,132.54,130.50,132.45,420000,132.45 +1939-05-19,129.43,130.90,129.22,130.38,400000,130.38 +1939-05-18,129.09,130.28,128.79,129.43,420000,129.43 +1939-05-17,129.77,129.77,128.35,129.09,530000,129.09 +1939-05-16,132.56,132.56,129.79,129.86,620000,129.86 +1939-05-15,132.40,133.68,132.35,132.65,340000,132.65 +1939-05-12,132.79,132.79,131.74,132.16,340000,132.16 +1939-05-11,132.82,133.26,131.85,132.92,400000,132.92 +1939-05-10,133.67,134.66,132.63,132.82,690000,132.82 +1939-05-09,132.11,134.02,132.11,133.67,710000,133.67 +1939-05-08,131.74,132.22,130.70,131.67,350000,131.67 +1939-05-05,131.86,132.12,130.76,131.47,330000,131.47 +1939-05-04,132.30,133.24,131.30,131.86,660000,131.86 +1939-05-03,129.60,132.64,129.60,132.30,740000,132.30 +1939-05-02,128.31,130.13,128.31,129.32,450000,129.32 +1939-05-01,128.45,128.55,127.53,127.83,280000,127.83 +1939-04-28,129.78,131.42,127.58,128.38,730000,128.38 +1939-04-27,128.56,130.21,128.49,129.78,540000,129.78 +1939-04-26,127.36,129.06,126.44,128.56,580000,128.56 +1939-04-25,127.34,128.53,127.02,127.36,420000,127.36 +1939-04-24,128.55,129.03,127.20,127.34,410000,127.34 +1939-04-21,128.41,129.62,127.97,128.71,390000,128.71 +1939-04-20,127.87,129.59,127.87,128.41,520000,128.41 +1939-04-19,125.63,127.61,125.63,127.01,440000,127.01 +1939-04-18,127.02,127.02,124.81,125.38,440000,125.38 +1939-04-17,128.01,128.01,126.15,127.34,520000,127.34 +1939-04-14,126.58,126.58,124.52,126.20,620000,126.20 +1939-04-13,126.29,129.32,126.29,127.51,860000,127.51 +1939-04-12,125.15,127.51,125.15,126.15,1070000,126.15 +1939-04-11,124.03,124.42,120.04,123.75,1660000,123.75 +1939-04-10,121.44,124.27,120.82,124.03,1650000,124.03 +1939-04-06,129.23,129.23,125.49,126.32,1310000,126.32 +1939-04-05,129.80,131.38,128.64,130.34,880000,130.34 +1939-04-04,131.09,131.09,127.16,129.80,1530000,129.80 +1939-04-03,132.83,135.57,130.49,132.25,1470000,132.25 +1939-03-31,136.69,138.01,131.35,131.84,2890000,131.84 +1939-03-30,139.75,140.55,136.41,136.69,990000,136.69 +1939-03-29,139.33,140.55,138.84,139.75,470000,139.75 +1939-03-28,139.98,139.98,138.46,139.33,680000,139.33 +1939-03-27,141.55,143.14,140.91,141.14,570000,141.14 +1939-03-24,141.13,142.80,141.13,141.82,650000,141.82 +1939-03-23,139.51,142.17,139.42,140.33,830000,140.33 +1939-03-22,141.97,141.97,138.42,139.51,1440000,139.51 +1939-03-21,142.67,144.31,142.67,143.41,690000,143.41 +1939-03-20,141.68,143.14,140.57,141.28,950000,141.28 +1939-03-17,146.13,146.13,142.99,143.89,1470000,143.89 +1939-03-16,147.66,148.17,146.45,147.54,670000,147.54 +1939-03-15,150.28,150.28,147.16,147.66,1110000,147.66 +1939-03-14,150.79,151.39,149.91,151.10,690000,151.10 +1939-03-13,151.58,151.58,150.20,150.79,650000,150.79 +1939-03-10,151.33,152.71,151.22,152.28,1210000,152.28 +1939-03-09,151.42,152.42,150.52,151.33,1360000,151.33 +1939-03-08,149.37,151.56,149.17,151.42,1050000,151.42 +1939-03-07,148.86,149.88,148.86,149.37,570000,149.37 +1939-03-06,149.49,150.23,148.37,148.84,840000,148.84 +1939-03-03,147.31,148.89,147.31,148.76,1020000,148.76 +1939-03-02,147.15,147.19,146.34,146.96,600000,146.96 +1939-03-01,147.30,147.88,146.62,147.15,640000,147.15 +1939-02-28,146.76,148.16,146.76,147.30,1060000,147.30 +1939-02-27,146.82,147.32,146.10,146.62,750000,146.62 +1939-02-24,143.46,145.69,143.46,145.44,970000,145.44 +1939-02-23,142.64,143.63,142.45,142.93,460000,142.93 +1939-02-21,142.74,143.13,142.05,142.64,470000,142.64 +1939-02-20,144.54,144.54,142.48,142.74,690000,142.74 +1939-02-17,145.39,146.03,144.69,144.95,680000,144.95 +1939-02-16,144.60,146.12,144.50,145.39,850000,145.39 +1939-02-15,144.13,144.95,143.83,144.60,500000,144.60 +1939-02-14,144.48,144.48,143.49,144.13,420000,144.13 +1939-02-10,143.99,144.01,142.70,143.68,450000,143.68 +1939-02-09,145.43,145.56,143.83,143.99,550000,143.99 +1939-02-08,144.45,145.55,144.45,145.43,610000,145.43 +1939-02-07,145.03,145.11,143.50,144.10,570000,144.10 +1939-02-06,145.07,146.43,144.78,145.03,1040000,145.03 +1939-02-03,144.34,144.50,143.02,143.55,540000,143.55 +1939-02-02,142.59,144.49,142.59,144.34,700000,144.34 +1939-02-01,143.47,143.47,141.92,142.43,580000,142.43 +1939-01-31,142.52,144.74,142.52,143.76,1120000,143.76 +1939-01-30,139.32,141.80,139.32,141.56,790000,141.56 +1939-01-27,136.84,139.27,136.84,138.90,1060000,138.90 +1939-01-26,139.58,139.58,136.10,136.42,1540000,136.42 +1939-01-25,141.35,141.68,139.37,140.72,900000,140.72 +1939-01-24,141.32,142.83,139.62,141.35,1700000,141.35 +1939-01-23,144.13,144.13,141.00,141.32,1870000,141.32 +1939-01-20,149.47,149.75,148.77,149.11,740000,149.11 +1939-01-19,148.99,149.88,148.35,149.47,890000,149.47 +1939-01-18,148.93,149.56,148.55,148.99,630000,148.99 +1939-01-17,148.26,149.23,147.49,148.93,820000,148.93 +1939-01-16,148.26,148.71,147.70,148.26,670000,148.26 +1939-01-13,147.33,147.84,146.03,146.52,850000,146.52 +1939-01-12,148.65,149.43,146.17,147.33,1360000,147.33 +1939-01-11,150.18,150.18,148.45,148.65,920000,148.65 +1939-01-10,150.19,151.32,150.04,150.48,710000,150.48 +1939-01-09,151.07,151.07,149.23,150.19,1100000,150.19 +1939-01-06,153.18,153.55,152.42,152.87,950000,152.87 +1939-01-05,154.85,155.47,153.02,153.18,1570000,153.18 +1939-01-04,153.64,155.19,153.14,154.85,1500000,154.85 +1939-01-03,154.76,154.99,153.16,153.64,1150000,153.64 +1938-12-30,153.62,154.94,153.52,154.36,1400000,154.36 +1938-12-29,152.06,153.85,152.06,153.62,1880000,153.62 +1938-12-28,150.43,151.95,149.56,151.45,2160000,151.45 +1938-12-27,151.38,151.74,150.04,150.43,1340000,150.43 +1938-12-23,150.53,152.02,150.52,151.39,1220000,151.39 +1938-12-22,149.58,150.79,149.28,150.53,1040000,150.53 +1938-12-21,150.46,150.72,149.06,149.58,1060000,149.58 +1938-12-20,150.38,151.29,149.69,150.46,940000,150.46 +1938-12-19,150.36,151.77,149.72,150.38,1100000,150.38 +1938-12-16,151.82,152.21,150.52,150.89,1150000,150.89 +1938-12-15,151.83,153.16,151.44,151.82,1800000,151.82 +1938-12-14,149.59,152.08,149.38,151.83,1970000,151.83 +1938-12-13,148.65,150.16,148.60,149.59,1090000,149.59 +1938-12-12,148.31,149.71,148.23,148.65,900000,148.65 +1938-12-09,147.63,148.31,146.92,147.39,700000,147.39 +1938-12-08,148.73,148.79,147.35,147.63,740000,147.63 +1938-12-07,148.33,149.98,148.30,148.73,1110000,148.73 +1938-12-06,147.47,149.27,147.01,148.33,990000,148.33 +1938-12-05,147.50,147.88,146.44,147.47,680000,147.47 +1938-12-02,148.50,148.50,146.68,147.57,820000,147.57 +1938-12-01,149.82,150.20,148.17,148.63,860000,148.63 +1938-11-30,147.68,149.97,147.68,149.82,980000,149.82 +1938-11-29,146.38,147.85,146.38,147.07,820000,147.07 +1938-11-28,147.93,147.93,145.21,146.14,1240000,146.14 +1938-11-25,149.88,151.13,149.79,150.10,810000,150.10 +1938-11-23,149.56,151.00,149.27,149.88,1000000,149.88 +1938-11-22,150.14,150.14,148.90,149.56,880000,149.56 +1938-11-21,150.38,151.03,149.15,150.26,940000,150.26 +1938-11-18,152.78,153.19,149.16,149.93,1420000,149.93 +1938-11-17,151.54,153.18,151.34,152.78,1000000,152.78 +1938-11-16,154.66,155.60,151.41,151.54,1800000,151.54 +1938-11-15,155.33,155.33,153.17,154.66,1470000,154.66 +1938-11-14,157.57,157.57,155.16,155.61,1650000,155.61 +1938-11-10,158.08,158.90,156.79,157.47,2180000,157.47 +1938-11-09,155.62,158.39,155.62,158.08,3100000,158.08 +1938-11-07,152.12,155.56,152.02,154.91,1760000,154.91 +1938-11-04,152.31,153.08,151.44,152.10,1200000,152.10 +1938-11-03,152.21,153.13,151.72,152.31,1070000,152.31 +1938-11-02,151.39,152.64,150.68,152.21,780000,152.21 +1938-11-01,151.73,152.83,150.93,151.39,1280000,151.39 +1938-10-31,151.07,152.17,150.28,151.73,1090000,151.73 +1938-10-28,152.69,152.82,150.75,151.07,1560000,151.07 +1938-10-27,152.40,153.93,151.46,152.69,2000000,152.69 +1938-10-26,153.52,153.52,151.28,152.40,1700000,152.40 +1938-10-25,154.12,155.22,153.46,154.17,1500000,154.17 +1938-10-24,154.11,155.38,153.52,154.12,1680000,154.12 +1938-10-21,151.52,153.01,151.36,152.15,1720000,152.15 +1938-10-20,150.02,151.90,149.46,151.52,1620000,151.52 +1938-10-19,152.10,153.02,149.41,150.02,2430000,150.02 +1938-10-18,150.81,152.37,148.68,152.10,2410000,152.10 +1938-10-17,151.96,153.15,150.46,150.81,2520000,150.81 +1938-10-14,152.46,153.19,150.96,151.45,1950000,151.45 +1938-10-13,150.05,152.93,150.05,152.46,2360000,152.46 +1938-10-11,149.55,150.40,148.21,149.41,1530000,149.41 +1938-10-10,149.75,150.57,148.70,149.55,1660000,149.55 +1938-10-07,148.10,149.43,147.29,148.41,1470000,148.41 +1938-10-06,148.32,150.48,147.70,148.10,2450000,148.10 +1938-10-05,144.59,148.51,144.59,148.32,2240000,148.32 +1938-10-04,144.29,144.83,143.26,144.23,950000,144.23 +1938-10-03,143.13,145.21,142.64,144.29,1460000,144.29 +1938-09-30,139.61,142.05,139.61,141.45,1900000,141.45 +1938-09-29,134.58,137.45,134.58,137.16,1230000,137.16 +1938-09-28,130.19,134.54,127.85,133.68,1570000,133.68 +1938-09-27,129.91,132.49,129.62,130.19,770000,130.19 +1938-09-26,131.82,131.82,127.88,129.91,1230000,129.91 +1938-09-23,136.07,136.07,133.71,134.08,720000,134.08 +1938-09-22,138.17,138.17,136.81,137.35,470000,137.35 +1938-09-21,138.41,140.20,137.57,139.29,1030000,139.29 +1938-09-20,137.11,139.49,137.11,138.41,1200000,138.41 +1938-09-19,133.49,135.24,133.49,134.10,830000,134.10 +1938-09-16,135.53,135.53,134.06,134.85,670000,134.85 +1938-09-15,134.47,136.97,134.47,136.22,1140000,136.22 +1938-09-14,134.19,136.91,130.38,132.93,2820000,132.93 +1938-09-13,140.19,141.95,133.90,134.19,1700000,134.19 +1938-09-12,138.29,140.67,138.16,140.19,600000,140.19 +1938-09-09,141.39,141.39,139.20,139.90,700000,139.90 +1938-09-08,142.90,142.90,141.63,142.19,570000,142.19 +1938-09-07,141.47,143.42,141.05,143.08,890000,143.08 +1938-09-06,142.48,142.80,141.10,141.47,420000,141.47 +1938-09-02,138.52,141.48,138.52,141.38,550000,141.38 +1938-09-01,139.27,139.45,137.65,138.36,510000,138.36 +1938-08-31,138.30,139.80,138.30,139.27,460000,139.27 +1938-08-30,137.08,138.89,137.08,138.26,630000,138.26 +1938-08-29,139.56,139.56,136.64,137.06,1250000,137.06 +1938-08-26,144.07,144.61,142.69,142.94,820000,142.94 +1938-08-25,143.53,144.36,142.57,144.07,830000,144.07 +1938-08-24,143.70,145.30,143.28,143.53,1240000,143.53 +1938-08-23,141.03,144.00,141.03,143.70,1100000,143.70 +1938-08-22,141.20,141.61,140.12,140.92,400000,140.92 +1938-08-19,139.33,142.05,139.18,141.13,830000,141.13 +1938-08-18,139.03,139.76,138.38,139.33,450000,139.33 +1938-08-17,138.58,140.89,138.58,139.03,600000,139.03 +1938-08-16,137.09,139.38,137.09,138.44,610000,138.44 +1938-08-15,136.45,138.20,136.45,136.98,590000,136.98 +1938-08-12,138.31,138.31,135.38,136.51,1480000,136.51 +1938-08-11,142.40,142.75,139.13,139.32,1100000,139.32 +1938-08-10,143.21,143.67,141.80,142.40,810000,142.40 +1938-08-09,143.87,143.87,141.59,143.21,830000,143.21 +1938-08-08,145.67,145.89,143.75,144.33,910000,144.33 +1938-08-05,142.34,144.76,142.34,144.47,1170000,144.47 +1938-08-04,141.73,142.76,141.04,142.13,610000,142.13 +1938-08-03,141.97,143.40,141.10,141.73,820000,141.73 +1938-08-02,140.37,142.50,139.90,141.97,820000,141.97 +1938-08-01,140.96,140.96,139.83,140.37,590000,140.37 +1938-07-29,142.20,143.57,140.93,141.20,1200000,141.20 +1938-07-28,140.24,142.50,139.51,142.20,1070000,142.20 +1938-07-27,143.33,144.03,139.39,140.24,1970000,140.24 +1938-07-26,144.18,144.18,142.48,143.33,1250000,143.33 +1938-07-25,144.24,146.31,144.23,144.91,2110000,144.91 +1938-07-22,141.92,143.13,141.20,142.25,1220000,142.25 +1938-07-21,141.84,143.51,140.52,141.92,1810000,141.92 +1938-07-20,143.67,143.97,141.09,141.84,2510000,141.84 +1938-07-19,141.27,144.12,141.27,143.67,2940000,143.67 +1938-07-18,138.53,140.78,137.70,140.39,1560000,140.39 +1938-07-15,135.81,138.17,135.52,137.30,930000,137.30 +1938-07-14,136.90,137.85,135.22,135.81,1160000,135.81 +1938-07-13,137.49,140.52,136.46,136.90,2620000,136.90 +1938-07-12,134.56,138.22,133.84,137.49,1620000,137.49 +1938-07-11,136.20,136.72,133.97,134.56,1090000,134.56 +1938-07-08,136.76,136.76,134.51,135.66,1570000,135.66 +1938-07-07,137.78,140.05,136.44,137.45,2770000,137.45 +1938-07-06,136.52,138.20,134.57,137.78,1820000,137.78 +1938-07-05,138.50,138.50,135.19,136.52,1700000,136.52 +1938-07-01,133.88,137.13,133.53,136.53,2030000,136.53 +1938-06-30,135.87,138.19,133.24,133.88,2580000,133.88 +1938-06-29,130.38,136.13,130.36,135.87,2660000,135.87 +1938-06-28,130.48,132.28,129.44,130.38,1290000,130.38 +1938-06-27,131.94,132.98,129.79,130.48,2110000,130.48 +1938-06-24,127.54,130.71,127.54,129.06,2290000,129.06 +1938-06-23,123.99,128.49,123.71,127.40,2400000,127.40 +1938-06-22,121.34,124.74,120.65,123.99,1710000,123.99 +1938-06-21,119.01,122.36,119.01,121.34,1460000,121.34 +1938-06-20,115.31,118.92,115.31,118.61,1090000,118.61 +1938-06-17,113.97,114.51,112.82,113.06,330000,113.06 +1938-06-16,113.24,114.30,112.93,113.97,340000,113.97 +1938-06-15,112.88,114.18,112.88,113.24,340000,113.24 +1938-06-14,111.87,113.06,111.54,112.78,350000,112.78 +1938-06-13,113.37,113.37,111.75,111.87,330000,111.87 +1938-06-10,115.74,116.08,114.29,114.47,410000,114.47 +1938-06-09,113.79,116.03,113.79,115.74,590000,115.74 +1938-06-08,113.12,114.04,112.78,113.75,280000,113.75 +1938-06-07,113.19,114.51,112.84,113.12,370000,113.12 +1938-06-06,112.01,114.27,112.01,113.19,470000,113.19 +1938-06-03,110.52,110.52,109.35,109.71,290000,109.71 +1938-06-02,110.61,111.94,110.35,110.68,480000,110.68 +1938-06-01,107.74,110.87,107.58,110.61,540000,110.61 +1938-05-31,108.50,108.50,106.94,107.74,400000,107.74 +1938-05-27,108.28,108.55,106.44,107.98,760000,107.98 +1938-05-26,110.60,111.30,108.14,108.28,780000,108.28 +1938-05-25,112.24,112.24,110.43,110.60,560000,110.60 +1938-05-24,113.97,114.66,112.26,112.35,420000,112.35 +1938-05-23,113.25,114.27,112.88,113.97,330000,113.97 +1938-05-20,115.28,115.48,114.08,114.99,440000,114.99 +1938-05-19,117.02,117.08,114.92,115.28,490000,115.28 +1938-05-18,116.36,117.49,116.31,117.02,400000,117.02 +1938-05-17,115.38,116.65,114.75,116.36,410000,116.36 +1938-05-16,117.11,117.11,115.19,115.38,400000,115.38 +1938-05-13,118.41,118.41,116.30,116.87,610000,116.87 +1938-05-12,118.52,119.67,117.88,118.55,600000,118.55 +1938-05-11,117.93,119.70,117.78,118.52,980000,118.52 +1938-05-10,119.43,120.28,117.75,117.93,1040000,117.93 +1938-05-09,117.21,119.81,116.36,119.43,1020000,119.43 +1938-05-06,113.46,117.44,113.27,117.16,1020000,117.16 +1938-05-05,113.88,115.42,112.86,113.46,690000,113.46 +1938-05-04,112.71,114.32,111.69,113.88,550000,113.88 +1938-05-03,110.75,113.12,110.75,112.71,470000,112.71 +1938-05-02,110.55,110.55,109.40,110.09,350000,110.09 +1938-04-29,111.88,111.88,109.83,111.66,540000,111.66 +1938-04-28,114.83,114.83,111.73,111.98,540000,111.98 +1938-04-27,114.75,116.22,114.75,115.25,430000,115.25 +1938-04-26,115.70,115.70,113.51,113.94,450000,113.94 +1938-04-25,116.86,116.86,115.40,116.23,400000,116.23 +1938-04-22,115.74,119.67,115.74,118.52,1120000,118.52 +1938-04-21,114.90,115.98,114.05,115.40,600000,115.40 +1938-04-20,115.50,115.50,112.47,114.90,780000,114.90 +1938-04-19,118.46,118.46,116.00,116.34,570000,116.34 +1938-04-18,121.00,121.54,118.45,118.99,860000,118.99 +1938-04-14,114.85,117.57,113.56,116.82,1010000,116.82 +1938-04-13,113.88,116.29,113.79,114.85,640000,114.85 +1938-04-12,112.93,114.15,111.60,113.88,600000,113.88 +1938-04-11,115.32,115.71,112.43,112.93,1100000,112.93 +1938-04-08,106.89,110.23,106.89,109.57,830000,109.57 +1938-04-07,106.29,106.93,104.78,105.43,330000,105.43 +1938-04-06,107.90,107.90,105.72,106.29,480000,106.29 +1938-04-05,105.58,108.67,104.85,108.36,690000,108.36 +1938-04-04,106.11,106.79,104.47,105.58,690000,105.58 +1938-04-01,100.95,103.37,100.95,103.02,860000,103.02 +1938-03-31,100.97,102.86,97.46,98.95,1270000,98.95 +1938-03-30,101.92,103.89,100.17,100.97,1670000,100.97 +1938-03-29,105.87,105.87,101.56,101.92,1720000,101.92 +1938-03-28,106.63,108.55,105.68,107.25,1250000,107.25 +1938-03-25,114.37,114.37,108.12,108.57,1680000,108.57 +1938-03-24,114.38,115.97,112.73,114.64,890000,114.64 +1938-03-23,115.95,115.95,112.78,114.38,1470000,114.38 +1938-03-22,120.29,120.35,116.47,117.11,690000,117.11 +1938-03-21,120.43,122.48,120.09,120.29,540000,120.29 +1938-03-18,121.92,121.92,117.20,118.41,1580000,118.41 +1938-03-17,122.87,124.60,121.90,122.03,640000,122.03 +1938-03-16,126.10,126.10,121.84,122.87,1020000,122.87 +1938-03-15,124.52,127.44,124.52,127.24,760000,127.24 +1938-03-14,122.85,124.53,122.85,123.68,430000,123.68 +1938-03-11,123.89,123.89,121.93,122.44,770000,122.44 +1938-03-10,125.67,126.35,124.52,124.71,460000,124.71 +1938-03-09,125.33,126.83,124.57,125.67,560000,125.67 +1938-03-08,125.38,125.85,122.81,125.33,740000,125.33 +1938-03-07,127.63,127.63,125.19,125.38,620000,125.38 +1938-03-04,128.22,129.57,127.37,127.78,490000,127.78 +1938-03-03,128.75,128.75,127.39,128.22,470000,128.22 +1938-03-02,130.47,130.68,129.19,129.38,410000,129.38 +1938-03-01,129.64,131.03,128.84,130.47,530000,130.47 +1938-02-28,130.89,130.89,128.63,129.64,560000,129.64 +1938-02-25,130.85,132.66,129.85,131.58,900000,131.58 +1938-02-24,132.05,132.05,130.47,130.85,720000,130.85 +1938-02-23,130.69,132.86,130.69,132.41,1300000,132.41 +1938-02-21,127.60,130.19,127.60,129.49,760000,129.49 +1938-02-18,127.59,128.74,125.61,126.29,770000,126.29 +1938-02-17,125.03,128.35,125.03,127.59,860000,127.59 +1938-02-16,124.93,125.35,123.39,124.90,470000,124.90 +1938-02-15,125.97,127.00,124.60,124.93,520000,124.93 +1938-02-14,125.04,126.44,125.04,125.97,400000,125.97 +1938-02-11,125.54,126.53,124.45,124.94,390000,124.94 +1938-02-10,125.00,127.23,124.56,125.54,630000,125.54 +1938-02-09,125.52,126.98,124.65,125.00,750000,125.00 +1938-02-08,122.39,125.76,122.39,125.52,770000,125.52 +1938-02-07,122.88,123.15,120.88,121.39,510000,121.39 +1938-02-04,118.49,120.91,117.13,120.52,810000,120.52 +1938-02-03,121.49,121.49,117.78,118.49,1090000,118.49 +1938-02-02,123.97,125.00,122.74,123.06,580000,123.06 +1938-02-01,122.69,124.71,122.69,123.97,690000,123.97 +1938-01-31,120.14,122.28,120.09,121.87,760000,121.87 +1938-01-28,121.57,122.32,118.94,120.66,1190000,120.66 +1938-01-27,123.23,124.54,120.44,121.57,1210000,121.57 +1938-01-26,126.10,126.10,121.86,123.23,1620000,123.23 +1938-01-25,129.47,129.47,127.97,128.33,540000,128.33 +1938-01-24,130.00,130.52,129.13,129.89,540000,129.89 +1938-01-21,132.33,133.23,130.56,130.69,790000,130.69 +1938-01-20,130.39,132.54,130.39,132.33,820000,132.33 +1938-01-19,131.53,131.68,128.68,130.09,1000000,130.09 +1938-01-18,132.49,132.98,130.88,131.53,780000,131.53 +1938-01-17,134.31,134.70,132.19,132.49,930000,132.49 +1938-01-14,131.60,132.37,130.29,131.84,850000,131.84 +1938-01-13,133.22,133.40,131.27,131.60,970000,131.60 +1938-01-12,134.35,134.95,132.94,133.22,1210000,133.22 +1938-01-11,133.55,134.63,132.36,134.35,1510000,134.35 +1938-01-10,130.84,134.27,130.81,133.55,1830000,133.55 +1938-01-07,128.97,129.51,127.30,128.21,1050000,128.21 +1938-01-06,125.38,129.23,125.38,128.97,1210000,128.97 +1938-01-05,124.61,127.27,124.17,124.66,1150000,124.66 +1938-01-04,121.69,124.96,121.69,124.61,940000,124.61 +1938-01-03,120.85,123.07,119.60,120.57,920000,120.57 +1937-12-31,121.49,121.49,119.65,120.85,780000,120.85 +1937-12-30,120.71,122.63,120.71,121.56,910000,121.56 +1937-12-29,118.93,121.00,117.71,120.15,2460000,120.15 +1937-12-28,122.51,122.51,118.31,118.93,2380000,118.93 +1937-12-27,126.59,126.59,122.96,123.45,1360000,123.45 +1937-12-24,127.63,128.60,126.85,127.36,840000,127.36 +1937-12-23,128.53,128.53,126.50,127.63,1060000,127.63 +1937-12-22,129.98,130.52,127.99,128.55,1160000,128.55 +1937-12-21,129.08,130.76,128.60,129.98,1280000,129.98 +1937-12-20,127.29,130.38,127.29,129.08,1400000,129.08 +1937-12-17,125.75,126.29,124.44,124.98,790000,124.98 +1937-12-16,124.52,126.92,124.52,125.75,1030000,125.75 +1937-12-15,123.50,125.63,123.33,124.19,930000,124.19 +1937-12-14,122.83,124.25,121.85,123.50,900000,123.50 +1937-12-13,125.86,125.86,122.18,122.83,1020000,122.83 +1937-12-10,128.15,128.27,125.49,126.72,1080000,126.72 +1937-12-09,129.80,130.37,127.62,128.15,1080000,128.15 +1937-12-08,128.31,131.15,128.22,129.80,1520000,129.80 +1937-12-07,126.21,128.56,124.85,128.31,970000,128.31 +1937-12-06,127.79,128.36,125.76,126.21,840000,126.21 +1937-12-03,125.52,129.40,125.52,127.55,1560000,127.55 +1937-12-02,122.11,125.38,120.21,125.14,940000,125.14 +1937-12-01,123.48,124.09,121.41,122.11,700000,122.11 +1937-11-30,121.58,125.43,121.49,123.48,1150000,123.48 +1937-11-29,123.39,123.39,120.37,121.58,1150000,121.58 +1937-11-26,114.37,118.78,114.37,118.26,1180000,118.26 +1937-11-24,115.78,116.17,112.72,113.64,990000,113.64 +1937-11-23,114.19,117.08,112.54,115.78,1640000,115.78 +1937-11-22,119.28,119.28,113.77,114.19,1520000,114.19 +1937-11-19,124.32,124.32,117.98,118.13,1890000,118.13 +1937-11-18,127.54,127.73,124.35,125.48,900000,125.48 +1937-11-17,127.98,129.94,127.02,127.54,760000,127.54 +1937-11-16,129.22,129.63,125.34,127.98,1270000,127.98 +1937-11-15,133.05,134.36,129.08,129.22,1450000,129.22 +1937-11-12,132.16,135.70,131.64,133.09,1880000,133.09 +1937-11-10,128.63,132.59,128.63,132.16,1920000,132.16 +1937-11-09,124.07,127.11,124.07,126.16,1050000,126.16 +1937-11-08,124.93,124.93,121.61,123.98,1380000,123.98 +1937-11-05,128.84,132.31,128.35,128.92,1250000,128.92 +1937-11-04,130.14,130.17,126.67,128.84,1470000,128.84 +1937-11-03,135.49,135.49,129.56,130.14,1740000,130.14 +1937-11-01,137.01,137.01,135.00,135.94,1030000,135.94 +1937-10-29,136.46,141.22,136.46,138.48,2800000,138.48 +1937-10-28,132.58,138.31,132.58,135.22,2460000,135.22 +1937-10-27,132.78,134.01,130.48,132.26,1060000,132.26 +1937-10-26,134.43,136.79,131.77,132.78,1820000,132.78 +1937-10-25,127.15,135.12,124.56,134.43,2340000,134.43 +1937-10-22,135.48,135.66,131.74,132.26,2110000,132.26 +1937-10-21,134.56,137.82,132.09,135.48,3640000,135.48 +1937-10-20,126.87,135.48,126.87,134.56,4340000,134.56 +1937-10-19,125.73,127.61,115.84,126.85,7290000,126.85 +1937-10-18,136.30,137.00,125.14,125.73,3230000,125.73 +1937-10-15,136.54,138.14,133.95,135.48,2540000,135.48 +1937-10-14,138.20,140.88,136.09,136.54,1680000,136.54 +1937-10-13,138.79,140.94,134.79,138.20,2570000,138.20 +1937-10-11,143.66,143.66,137.71,138.79,1750000,138.79 +1937-10-08,146.59,148.26,143.00,144.03,1150000,144.03 +1937-10-07,147.18,150.47,145.76,146.59,1190000,146.59 +1937-10-06,144.08,147.62,141.63,147.18,1790000,147.18 +1937-10-05,149.97,149.97,143.01,144.08,1680000,144.08 +1937-10-04,154.08,154.63,151.84,152.19,630000,152.19 +1937-10-01,154.57,155.11,152.50,153.89,680000,153.89 +1937-09-30,154.70,157.12,153.97,154.57,1050000,154.57 +1937-09-29,153.16,155.24,150.09,154.70,1350000,154.70 +1937-09-28,152.03,155.22,151.41,153.16,1310000,153.16 +1937-09-27,147.47,152.49,146.25,152.03,2210000,152.03 +1937-09-24,151.58,151.58,146.22,147.38,2480000,147.38 +1937-09-23,157.45,157.51,153.79,153.98,890000,153.98 +1937-09-22,156.56,158.89,156.55,157.45,740000,157.45 +1937-09-21,155.96,159.26,155.96,156.56,980000,156.56 +1937-09-20,156.92,156.92,152.36,155.56,1550000,155.56 +1937-09-17,164.19,164.19,161.59,162.15,810000,162.15 +1937-09-16,162.85,165.37,162.29,164.75,890000,164.75 +1937-09-15,162.90,165.16,161.26,162.85,1140000,162.85 +1937-09-14,160.00,164.37,160.00,162.90,1510000,162.90 +1937-09-13,159.96,163.12,154.94,158.00,2560000,158.00 +1937-09-10,166.36,166.87,157.35,157.98,2320000,157.98 +1937-09-09,164.88,168.06,164.88,166.36,1410000,166.36 +1937-09-08,164.39,166.06,162.17,163.37,2260000,163.37 +1937-09-07,170.29,170.29,163.18,164.39,1870000,164.39 +1937-09-03,171.82,174.03,171.82,172.17,690000,172.17 +1937-09-02,172.71,172.71,169.75,170.84,1200000,170.84 +1937-09-01,176.11,176.11,172.89,173.08,820000,173.08 +1937-08-31,177.88,179.10,177.29,177.41,500000,177.41 +1937-08-30,176.10,178.26,176.10,177.88,460000,177.88 +1937-08-27,178.52,179.23,175.09,175.91,890000,175.91 +1937-08-26,180.71,180.71,177.57,178.52,970000,178.52 +1937-08-25,182.39,183.00,181.39,181.70,500000,181.70 +1937-08-24,181.88,182.87,180.80,182.39,560000,182.39 +1937-08-23,183.74,184.20,181.31,181.88,580000,181.88 +1937-08-20,185.28,185.28,182.30,182.95,800000,182.95 +1937-08-19,186.97,186.97,184.75,185.28,760000,185.28 +1937-08-18,188.68,189.10,187.30,187.39,700000,187.39 +1937-08-17,189.18,189.18,188.12,188.68,660000,188.68 +1937-08-16,189.94,189.94,188.60,189.34,620000,189.34 +1937-08-13,187.62,189.76,187.35,189.29,1040000,189.29 +1937-08-12,186.72,188.30,186.39,187.62,790000,187.62 +1937-08-11,186.98,187.31,185.93,186.72,570000,186.72 +1937-08-10,186.75,187.67,186.23,186.98,690000,186.98 +1937-08-09,186.41,187.33,186.06,186.75,750000,186.75 +1937-08-06,186.09,186.56,185.16,185.43,680000,185.43 +1937-08-05,186.80,187.22,185.76,186.09,800000,186.09 +1937-08-04,185.91,187.31,185.38,186.80,900000,186.80 +1937-08-03,186.91,187.14,185.43,185.91,900000,185.91 +1937-08-02,185.61,187.28,185.35,186.91,790000,186.91 +1937-07-30,183.01,184.66,182.92,184.01,620000,184.01 +1937-07-29,182.57,183.61,182.07,183.01,610000,183.01 +1937-07-28,184.24,184.54,182.17,182.57,870000,182.57 +1937-07-27,184.42,184.73,183.43,184.24,740000,184.24 +1937-07-26,184.85,185.15,183.72,184.42,900000,184.42 +1937-07-23,182.96,184.75,182.70,183.78,910000,183.78 +1937-07-22,182.35,184.13,182.14,182.96,960000,182.96 +1937-07-21,183.32,183.94,181.87,182.35,980000,182.35 +1937-07-20,182.06,183.90,182.01,183.32,1200000,183.32 +1937-07-19,180.11,182.39,180.11,182.06,950000,182.06 +1937-07-16,179.71,180.45,178.65,179.53,700000,179.53 +1937-07-15,178.57,180.09,177.78,179.71,740000,179.71 +1937-07-14,178.24,180.17,177.83,178.57,1040000,178.57 +1937-07-13,178.70,179.53,177.50,178.24,850000,178.24 +1937-07-12,176.72,179.16,176.69,178.70,1020000,178.70 +1937-07-09,177.70,178.36,176.65,177.40,850000,177.40 +1937-07-08,177.74,178.38,176.49,177.70,1030000,177.70 +1937-07-07,176.80,178.88,176.25,177.74,1410000,177.74 +1937-07-06,173.18,177.08,173.18,176.80,1410000,176.80 +1937-07-02,170.13,172.49,169.58,172.22,840000,172.22 +1937-07-01,169.32,171.28,169.13,170.13,670000,170.13 +1937-06-30,167.11,170.02,167.00,169.32,690000,169.32 +1937-06-29,166.71,168.10,166.11,167.11,550000,167.11 +1937-06-28,168.45,168.99,166.26,166.71,730000,166.71 +1937-06-25,170.08,170.98,169.10,169.59,580000,169.59 +1937-06-24,169.01,170.46,168.79,170.08,550000,170.08 +1937-06-23,168.22,169.72,168.22,169.01,550000,169.01 +1937-06-22,167.98,169.42,167.59,168.20,530000,168.20 +1937-06-21,168.60,168.79,167.28,167.98,420000,167.98 +1937-06-18,167.74,169.37,167.05,168.79,690000,168.79 +1937-06-17,165.86,167.95,163.31,167.74,1260000,167.74 +1937-06-16,167.40,167.59,165.49,165.86,700000,165.86 +1937-06-15,165.51,168.10,164.69,167.40,930000,167.40 +1937-06-14,168.45,168.45,163.73,165.51,1310000,165.51 +1937-06-11,172.59,172.59,170.33,170.77,720000,170.77 +1937-06-10,173.47,174.06,172.53,172.82,570000,172.82 +1937-06-09,174.33,175.00,173.12,173.47,620000,173.47 +1937-06-08,173.88,174.91,173.25,174.33,600000,174.33 +1937-06-07,175.00,175.40,173.56,173.88,590000,173.88 +1937-06-04,172.82,175.39,172.19,175.14,780000,175.14 +1937-06-03,172.63,173.09,171.56,172.82,550000,172.82 +1937-06-02,172.25,173.73,172.25,172.63,540000,172.63 +1937-06-01,172.69,172.69,170.72,171.59,750000,171.59 +1937-05-28,174.19,175.22,174.04,174.71,560000,174.71 +1937-05-27,173.70,175.03,173.22,174.19,600000,174.19 +1937-05-26,173.79,174.47,172.62,173.70,580000,173.70 +1937-05-25,175.59,176.11,173.30,173.79,840000,173.79 +1937-05-24,175.00,176.25,174.51,175.59,680000,175.59 +1937-05-21,173.59,174.59,173.12,173.83,770000,173.83 +1937-05-20,170.00,173.99,170.00,173.59,1230000,173.59 +1937-05-19,169.97,170.85,169.11,169.75,790000,169.75 +1937-05-18,167.84,170.55,166.20,169.97,1200000,169.97 +1937-05-17,169.60,169.98,167.64,167.84,600000,167.84 +1937-05-14,167.46,169.89,166.58,169.15,1230000,169.15 +1937-05-13,171.43,171.43,166.88,167.46,1770000,167.46 +1937-05-12,172.55,173.72,171.81,172.24,670000,172.24 +1937-05-11,173.04,173.28,171.59,172.55,750000,172.55 +1937-05-10,175.19,175.19,172.78,173.04,780000,173.04 +1937-05-07,175.81,176.91,175.50,175.89,820000,175.89 +1937-05-06,174.67,176.05,174.06,175.81,760000,175.81 +1937-05-05,176.30,176.81,174.41,174.67,770000,174.67 +1937-05-04,175.20,176.69,175.20,176.30,870000,176.30 +1937-05-03,174.42,175.58,174.16,174.59,640000,174.59 +1937-04-30,171.51,174.66,171.51,174.27,1450000,174.27 +1937-04-29,170.13,172.88,169.37,170.52,2030000,170.52 +1937-04-28,173.78,173.78,168.77,170.13,2530000,170.13 +1937-04-27,172.36,175.18,172.36,174.52,1410000,174.52 +1937-04-26,175.33,175.33,171.20,171.97,2020000,171.97 +1937-04-23,181.70,182.60,178.00,178.54,1200000,178.54 +1937-04-22,183.60,184.33,181.28,181.70,1180000,181.70 +1937-04-21,181.44,184.05,181.39,183.60,1250000,183.60 +1937-04-20,180.82,182.63,180.28,181.44,1130000,181.44 +1937-04-19,180.51,181.38,179.76,180.82,820000,180.82 +1937-04-16,181.19,182.27,179.70,180.75,1070000,180.75 +1937-04-15,181.93,182.25,180.69,181.19,940000,181.19 +1937-04-14,182.10,183.34,181.27,181.93,1480000,181.93 +1937-04-13,180.59,183.43,180.59,182.10,1590000,182.10 +1937-04-12,178.26,180.12,176.39,179.74,1130000,179.74 +1937-04-09,178.18,180.38,175.86,178.94,1730000,178.94 +1937-04-08,178.07,179.94,176.72,178.18,1920000,178.18 +1937-04-07,182.13,182.13,177.68,178.07,2290000,178.07 +1937-04-06,184.19,184.66,182.06,182.98,1250000,182.98 +1937-04-05,183.54,185.09,183.39,184.19,980000,184.19 +1937-04-02,184.43,184.43,180.89,182.75,1640000,182.75 +1937-04-01,186.41,186.63,184.37,185.19,1210000,185.19 +1937-03-31,186.77,187.99,185.77,186.41,1660000,186.41 +1937-03-30,184.09,186.93,183.64,186.77,1230000,186.77 +1937-03-29,184.95,185.75,183.79,184.09,870000,184.09 +1937-03-25,184.32,186.11,183.73,184.08,1250000,184.08 +1937-03-24,181.87,184.97,181.63,184.32,1430000,184.32 +1937-03-23,179.93,182.96,179.93,181.87,1600000,181.87 +1937-03-22,182.83,182.83,179.28,179.82,2030000,179.82 +1937-03-19,184.73,185.94,183.72,184.56,1740000,184.56 +1937-03-18,187.52,187.52,183.72,184.73,2280000,184.73 +1937-03-17,189.95,190.52,188.15,188.50,2120000,188.50 +1937-03-16,189.41,191.29,188.88,189.95,1750000,189.95 +1937-03-15,190.58,190.81,188.59,189.41,1770000,189.41 +1937-03-12,192.22,192.27,189.39,191.24,2290000,191.24 +1937-03-11,194.40,195.33,191.77,192.22,2740000,192.22 +1937-03-10,193.29,195.59,192.77,194.40,2820000,194.40 +1937-03-09,192.69,194.89,191.65,193.29,2390000,193.29 +1937-03-08,194.15,195.20,191.53,192.69,3180000,192.69 +1937-03-05,192.17,195.17,192.17,194.14,2830000,194.14 +1937-03-04,192.91,193.95,190.98,191.63,2730000,191.63 +1937-03-03,190.29,193.86,190.29,192.91,3570000,192.91 +1937-03-02,187.68,190.41,187.64,189.91,2300000,189.91 +1937-03-01,187.30,188.48,186.00,187.68,1660000,187.68 +1937-02-26,186.68,187.93,185.82,187.17,1780000,187.17 +1937-02-25,187.35,188.31,186.19,186.68,2230000,186.68 +1937-02-24,186.50,187.88,185.15,187.35,2080000,187.35 +1937-02-23,189.36,189.36,185.96,186.50,2870000,186.50 +1937-02-19,188.07,190.42,187.71,189.37,2730000,189.37 +1937-02-18,187.98,188.90,186.82,188.07,2130000,188.07 +1937-02-17,188.18,189.39,187.30,187.98,2580000,187.98 +1937-02-16,188.39,189.20,187.05,188.18,2220000,188.18 +1937-02-15,189.58,189.58,187.45,188.39,1960000,188.39 +1937-02-11,189.35,191.39,188.69,190.29,2920000,190.29 +1937-02-10,187.68,189.83,187.58,189.35,2920000,189.35 +1937-02-09,187.82,188.79,186.74,187.68,2590000,187.68 +1937-02-08,187.11,188.66,186.68,187.82,2990000,187.82 +1937-02-05,188.39,189.07,184.85,186.01,3320000,186.01 +1937-02-04,188.69,189.64,187.65,188.39,2390000,188.39 +1937-02-03,188.20,189.94,187.48,188.69,2450000,188.69 +1937-02-02,186.61,189.13,186.13,188.20,2430000,188.20 +1937-02-01,185.74,187.77,185.10,186.61,2360000,186.61 +1937-01-29,183.41,185.41,182.34,184.74,1970000,184.74 +1937-01-28,183.97,185.59,182.77,183.41,2340000,183.41 +1937-01-27,183.19,184.32,182.15,183.97,1940000,183.97 +1937-01-26,185.62,185.68,182.64,183.19,2180000,183.19 +1937-01-25,186.69,186.97,185.02,185.62,2220000,185.62 +1937-01-22,186.90,187.80,185.01,186.53,2680000,186.53 +1937-01-21,185.96,187.49,184.98,186.90,2990000,186.90 +1937-01-20,184.10,186.88,184.10,185.96,3270000,185.96 +1937-01-19,184.95,185.16,183.22,184.02,2620000,184.02 +1937-01-18,185.73,185.93,183.74,184.95,2860000,184.95 +1937-01-15,183.71,185.40,183.55,184.53,2900000,184.53 +1937-01-14,183.01,184.66,182.53,183.71,3260000,183.71 +1937-01-13,183.30,184.01,182.25,183.01,3680000,183.01 +1937-01-12,183.26,184.49,182.08,183.30,3570000,183.30 +1937-01-11,182.75,183.82,181.77,183.26,3080000,183.26 +1937-01-08,181.77,183.58,181.36,182.95,3220000,182.95 +1937-01-07,179.32,182.11,179.32,181.77,3060000,181.77 +1937-01-06,179.07,179.90,178.17,178.92,1920000,178.92 +1937-01-05,177.72,179.66,177.64,179.07,1870000,179.07 +1937-01-04,178.39,178.39,176.96,177.72,1510000,177.72 +1936-12-31,180.57,181.77,179.34,179.90,1760000,179.90 +1936-12-30,178.02,181.13,178.02,180.57,2310000,180.57 +1936-12-29,177.12,178.48,176.26,177.60,2280000,177.60 +1936-12-28,178.60,179.52,176.71,177.12,1790000,177.12 +1936-12-24,178.36,179.54,177.75,178.60,1610000,178.60 +1936-12-23,177.30,179.00,176.70,178.36,1870000,178.36 +1936-12-22,176.14,178.20,176.14,177.30,1670000,177.30 +1936-12-21,177.61,178.28,175.31,175.85,1760000,175.85 +1936-12-18,180.78,181.10,179.03,179.42,1910000,179.42 +1936-12-17,181.58,182.18,180.35,180.78,1950000,180.78 +1936-12-16,181.97,182.57,180.87,181.58,1950000,181.58 +1936-12-15,181.87,183.30,181.30,181.97,2480000,181.97 +1936-12-14,180.92,182.67,180.74,181.87,2880000,181.87 +1936-12-11,182.18,182.33,180.76,181.10,2610000,181.10 +1936-12-10,181.16,182.77,180.67,182.18,2440000,182.18 +1936-12-09,180.57,181.77,179.93,181.16,1860000,181.16 +1936-12-08,180.13,181.29,179.95,180.57,1620000,180.57 +1936-12-07,181.05,181.49,179.74,180.13,1680000,180.13 +1936-12-04,181.29,182.34,180.36,180.97,2160000,180.97 +1936-12-03,180.25,181.92,179.90,181.29,2040000,181.29 +1936-12-02,181.89,181.89,179.66,180.25,2320000,180.25 +1936-12-01,183.22,183.59,181.56,182.05,2230000,182.05 +1936-11-30,183.32,184.03,181.87,183.22,2140000,183.22 +1936-11-27,180.91,183.27,180.91,182.81,2280000,182.81 +1936-11-25,181.11,181.49,179.68,180.78,1860000,180.78 +1936-11-24,178.84,181.51,178.84,181.11,1920000,181.11 +1936-11-23,181.78,181.78,177.91,178.62,2160000,178.62 +1936-11-20,182.21,182.35,180.24,180.74,1820000,180.74 +1936-11-19,184.26,184.26,181.63,182.21,2440000,182.21 +1936-11-18,184.90,186.39,183.73,184.44,2920000,184.44 +1936-11-17,182.94,185.55,182.94,184.90,3270000,184.90 +1936-11-16,181.45,183.39,181.00,182.65,2380000,182.65 +1936-11-13,183.15,184.28,181.39,182.24,2480000,182.24 +1936-11-12,184.01,185.52,182.26,183.15,2580000,183.15 +1936-11-10,183.65,185.24,182.82,184.01,2700000,184.01 +1936-11-09,183.38,184.77,182.39,183.65,3140000,183.65 +1936-11-06,182.25,183.53,180.68,181.60,2720000,181.60 +1936-11-05,180.66,183.31,180.57,182.25,3620000,182.25 +1936-11-04,177.00,181.15,177.00,180.66,3290000,180.66 +1936-11-02,177.19,177.74,175.35,176.67,1600000,176.67 +1936-10-30,176.31,178.09,176.20,177.15,1680000,177.15 +1936-10-29,174.84,176.60,174.61,176.31,1710000,176.31 +1936-10-28,174.47,176.61,174.47,174.84,1630000,174.84 +1936-10-27,172.89,174.90,172.89,174.36,1310000,174.36 +1936-10-26,174.74,174.74,172.16,172.30,1480000,172.30 +1936-10-23,174.90,176.23,174.64,175.60,1510000,175.60 +1936-10-22,176.70,177.01,174.50,174.90,1980000,174.90 +1936-10-21,176.78,177.63,175.81,176.70,1630000,176.70 +1936-10-20,177.42,177.82,175.98,176.78,1670000,176.78 +1936-10-19,177.63,178.44,176.66,177.42,1890000,177.42 +1936-10-16,175.33,177.31,175.33,176.66,2050000,176.66 +1936-10-15,175.57,176.32,174.13,175.22,1790000,175.22 +1936-10-14,176.29,176.79,175.03,175.57,1640000,175.57 +1936-10-13,176.05,177.68,175.87,176.29,2070000,176.29 +1936-10-09,174.93,176.45,174.23,175.19,2240000,175.19 +1936-10-08,174.59,175.49,173.41,174.93,2230000,174.93 +1936-10-07,174.42,175.92,173.94,174.59,3030000,174.59 +1936-10-06,172.93,174.82,172.93,174.42,2260000,174.42 +1936-10-05,172.44,174.04,172.04,172.81,2080000,172.81 +1936-10-02,168.63,170.94,168.63,170.76,1930000,170.76 +1936-10-01,167.82,168.83,167.54,168.26,1100000,168.26 +1936-09-30,168.48,169.55,167.47,167.82,1350000,167.82 +1936-09-29,168.79,169.85,168.01,168.48,1380000,168.48 +1936-09-28,168.07,169.62,167.72,168.79,1450000,168.79 +1936-09-25,169.03,169.03,165.91,166.36,1160000,166.36 +1936-09-24,169.01,169.79,168.10,169.14,1190000,169.14 +1936-09-23,169.47,170.72,168.68,169.01,1480000,169.01 +1936-09-22,168.90,170.47,168.37,169.47,1550000,169.47 +1936-09-21,168.93,170.25,168.34,168.90,1770000,168.90 +1936-09-18,166.25,168.36,166.10,167.76,1270000,167.76 +1936-09-17,165.16,166.51,164.82,166.25,770000,166.25 +1936-09-16,166.44,166.75,164.97,165.16,1040000,165.16 +1936-09-15,166.86,167.14,165.41,166.44,1130000,166.44 +1936-09-14,167.98,167.98,166.11,166.86,1010000,166.86 +1936-09-11,169.00,169.38,167.59,168.59,1400000,168.59 +1936-09-10,168.50,169.59,168.05,169.00,1550000,169.00 +1936-09-09,169.55,169.73,168.07,168.50,1570000,168.50 +1936-09-08,168.32,170.02,168.32,169.55,1720000,169.55 +1936-09-04,166.24,167.62,166.01,167.04,1180000,167.04 +1936-09-03,166.65,167.25,165.64,166.24,1050000,166.24 +1936-09-02,166.35,167.89,166.15,166.65,1350000,166.65 +1936-09-01,166.29,167.21,165.24,166.35,1140000,166.35 +1936-08-31,166.91,167.25,165.84,166.29,1150000,166.29 +1936-08-28,166.77,168.02,166.31,166.78,1380000,166.78 +1936-08-27,163.32,166.94,163.21,166.77,1340000,166.77 +1936-08-26,164.34,165.00,162.98,163.32,910000,163.32 +1936-08-25,163.78,165.23,163.60,164.34,800000,164.34 +1936-08-24,162.90,164.64,162.90,163.78,800000,163.78 +1936-08-21,164.69,164.69,160.52,160.80,1480000,160.80 +1936-08-20,166.04,166.70,165.23,165.59,960000,165.59 +1936-08-19,165.42,166.87,165.26,166.04,1010000,166.04 +1936-08-18,165.38,166.37,164.89,165.42,790000,165.42 +1936-08-17,165.86,167.01,164.66,165.38,830000,165.38 +1936-08-14,167.64,167.80,165.40,165.75,1070000,165.75 +1936-08-13,169.05,169.59,167.30,167.64,1400000,167.64 +1936-08-12,167.86,169.63,167.50,169.05,1260000,169.05 +1936-08-11,168.80,169.08,167.20,167.86,1100000,167.86 +1936-08-10,169.10,170.15,168.15,168.80,1340000,168.80 +1936-08-07,165.71,168.63,165.34,168.01,1670000,168.01 +1936-08-06,165.07,166.24,164.17,165.71,1170000,165.71 +1936-08-05,165.41,166.57,163.91,165.07,1280000,165.07 +1936-08-04,165.32,165.91,164.41,165.41,1050000,165.41 +1936-08-03,165.42,166.53,164.63,165.32,1010000,165.32 +1936-07-31,165.98,167.27,164.32,164.86,1160000,164.86 +1936-07-30,165.67,167.05,165.13,165.98,1510000,165.98 +1936-07-29,167.01,167.83,165.13,165.67,1950000,165.67 +1936-07-28,166.92,168.23,165.98,167.01,1900000,167.01 +1936-07-27,165.56,167.63,165.51,166.92,1830000,166.92 +1936-07-24,164.61,165.31,164.00,164.37,1320000,164.37 +1936-07-23,164.49,165.06,163.46,164.61,1340000,164.61 +1936-07-22,165.23,166.06,163.99,164.49,1450000,164.49 +1936-07-21,164.43,165.81,163.75,165.23,1590000,165.23 +1936-07-20,164.42,165.48,163.84,164.43,1420000,164.43 +1936-07-17,163.64,165.07,163.02,163.55,1560000,163.55 +1936-07-16,163.24,164.38,162.27,163.64,1480000,163.64 +1936-07-15,162.80,164.42,162.28,163.24,1980000,163.24 +1936-07-14,161.35,163.22,160.99,162.80,1660000,162.80 +1936-07-13,160.72,162.14,160.33,161.35,1440000,161.35 +1936-07-10,158.07,160.67,158.07,160.07,1690000,160.07 +1936-07-09,156.20,158.17,156.05,157.71,1290000,157.71 +1936-07-08,155.60,156.76,154.85,156.20,870000,156.20 +1936-07-07,156.87,156.87,154.86,155.60,970000,155.60 +1936-07-06,158.11,158.86,156.73,157.11,850000,157.11 +1936-07-03,157.51,159.13,156.93,158.11,1020000,158.11 +1936-07-02,158.38,159.55,156.87,157.51,1070000,157.51 +1936-07-01,157.69,159.16,156.82,158.38,970000,158.38 +1936-06-30,158.01,158.76,157.11,157.69,820000,157.69 +1936-06-29,158.46,159.66,157.58,158.01,770000,158.01 +1936-06-26,158.64,159.54,157.86,158.21,890000,158.21 +1936-06-25,160.66,161.00,158.27,158.64,1340000,158.64 +1936-06-24,158.94,161.15,158.56,160.66,1240000,160.66 +1936-06-23,159.13,160.25,158.24,158.94,970000,158.94 +1936-06-22,157.40,159.66,157.40,159.13,990000,159.13 +1936-06-19,157.38,157.46,156.11,156.53,830000,156.53 +1936-06-18,156.97,158.05,156.54,157.38,940000,157.38 +1936-06-17,156.70,157.96,156.47,156.97,1220000,156.97 +1936-06-16,155.09,156.94,154.88,156.70,1120000,156.70 +1936-06-15,154.64,155.81,154.57,155.09,720000,155.09 +1936-06-12,155.16,155.91,153.55,153.71,1000000,153.71 +1936-06-11,153.02,155.38,152.65,155.16,1090000,155.16 +1936-06-10,152.90,153.87,152.44,153.02,1040000,153.02 +1936-06-09,151.44,153.12,151.44,152.90,880000,152.90 +1936-06-08,150.40,152.01,150.40,151.39,690000,151.39 +1936-06-05,149.39,149.95,148.52,149.26,640000,149.26 +1936-06-04,151.10,151.10,149.22,149.39,770000,149.39 +1936-06-03,151.97,152.38,151.20,151.53,640000,151.53 +1936-06-02,152.84,153.22,151.30,151.97,760000,151.97 +1936-06-01,152.64,154.02,152.62,152.84,790000,152.84 +1936-05-29,151.77,152.92,151.53,152.64,740000,152.64 +1936-05-28,152.57,152.91,151.49,151.77,760000,151.77 +1936-05-27,152.26,153.57,151.44,152.57,1220000,152.57 +1936-05-26,150.83,152.48,150.48,152.26,1140000,152.26 +1936-05-25,150.65,151.62,150.31,150.83,690000,150.83 +1936-05-22,148.80,150.26,148.61,149.58,680000,149.58 +1936-05-21,148.94,150.21,148.46,148.80,670000,148.80 +1936-05-20,147.49,149.28,147.30,148.94,690000,148.94 +1936-05-19,149.56,149.56,147.21,147.49,910000,147.49 +1936-05-18,151.42,152.44,150.09,150.35,990000,150.35 +1936-05-15,151.49,152.43,150.56,151.60,990000,151.60 +1936-05-14,149.00,151.97,149.00,151.49,1390000,151.49 +1936-05-13,146.92,148.38,146.92,147.90,590000,147.90 +1936-05-12,146.85,148.16,146.10,146.70,600000,146.70 +1936-05-11,147.85,148.85,146.44,146.85,680000,146.85 +1936-05-08,147.14,147.33,145.68,146.87,780000,146.87 +1936-05-07,149.73,149.96,146.29,147.14,1010000,147.14 +1936-05-06,148.56,150.52,148.52,149.73,1130000,149.73 +1936-05-05,147.69,149.97,147.69,148.56,1180000,148.56 +1936-05-04,146.41,147.63,144.18,146.96,1070000,146.96 +1936-05-01,145.67,147.86,145.67,147.07,1160000,147.07 +1936-04-30,143.65,146.20,141.53,145.67,2310000,145.67 +1936-04-29,146.75,147.23,143.20,143.65,1790000,143.65 +1936-04-28,147.05,147.79,144.80,146.75,2230000,146.75 +1936-04-27,151.81,151.81,145.96,147.05,2300000,147.05 +1936-04-24,151.08,152.51,149.63,151.54,1660000,151.54 +1936-04-23,154.92,155.16,149.63,151.08,2060000,151.08 +1936-04-22,153.60,155.59,153.60,154.92,1200000,154.92 +1936-04-21,152.40,154.09,151.29,153.36,1880000,153.36 +1936-04-20,156.07,156.73,152.10,152.40,1660000,152.40 +1936-04-17,158.49,159.22,157.32,157.78,1160000,157.78 +1936-04-16,159.61,160.33,157.93,158.49,1150000,158.49 +1936-04-15,158.41,160.27,157.92,159.61,1320000,159.61 +1936-04-14,160.76,161.10,157.51,158.41,1940000,158.41 +1936-04-13,160.48,161.26,159.71,160.76,1450000,160.76 +1936-04-09,160.97,161.44,159.46,160.26,1650000,160.26 +1936-04-08,160.94,162.54,160.34,160.97,1650000,160.97 +1936-04-07,161.99,162.33,160.42,160.94,1580000,160.94 +1936-04-06,161.50,163.07,161.18,161.99,2030000,161.99 +1936-04-03,160.43,161.84,159.80,160.09,1560000,160.09 +1936-04-02,159.12,161.55,159.12,160.43,2190000,160.43 +1936-04-01,157.04,159.42,157.04,158.96,1690000,158.96 +1936-03-31,155.37,157.01,155.06,156.34,1040000,156.34 +1936-03-30,155.54,156.73,155.16,155.37,950000,155.37 +1936-03-27,157.73,157.82,155.01,155.52,1550000,155.52 +1936-03-26,157.88,159.53,157.08,157.73,1870000,157.73 +1936-03-25,156.56,158.74,155.81,157.88,1910000,157.88 +1936-03-24,157.62,158.76,156.23,156.56,1900000,156.56 +1936-03-23,156.42,158.22,156.20,157.62,1680000,157.62 +1936-03-20,157.40,158.81,156.69,157.42,1890000,157.42 +1936-03-19,155.85,158.22,155.85,157.40,2020000,157.40 +1936-03-18,156.34,157.30,155.04,155.82,1750000,155.82 +1936-03-17,153.85,156.73,153.85,156.34,2240000,156.34 +1936-03-16,154.07,154.73,152.14,153.25,1840000,153.25 +1936-03-13,153.13,153.46,149.65,150.42,2660000,150.42 +1936-03-12,156.63,156.63,152.35,153.13,2920000,153.13 +1936-03-11,155.37,157.95,155.37,156.85,2190000,156.85 +1936-03-10,153.50,155.87,153.35,155.37,2320000,155.37 +1936-03-09,156.86,156.86,153.33,153.50,2750000,153.50 +1936-03-06,157.52,159.87,157.27,158.75,2890000,158.75 +1936-03-05,156.70,158.56,156.03,157.52,2590000,157.52 +1936-03-04,156.19,158.24,155.45,156.70,2980000,156.70 +1936-03-03,154.08,156.61,154.08,156.19,2700000,156.19 +1936-03-02,152.15,154.54,151.65,154.08,1980000,154.08 +1936-02-28,152.64,153.94,151.61,152.53,2460000,152.53 +1936-02-27,150.59,153.02,150.59,152.64,2320000,152.64 +1936-02-26,150.78,151.10,149.08,149.81,2040000,149.81 +1936-02-25,152.74,153.25,149.99,150.78,2390000,150.78 +1936-02-24,153.74,153.75,152.00,152.74,2200000,152.74 +1936-02-21,154.43,155.14,153.05,153.74,3010000,153.74 +1936-02-20,153.09,155.14,152.30,154.43,3460000,154.43 +1936-02-19,153.36,155.69,152.54,153.09,4580000,153.09 +1936-02-18,151.40,153.76,151.23,153.36,3530000,153.36 +1936-02-17,152.40,153.57,150.43,151.40,4720000,151.40 +1936-02-14,152.53,153.01,150.86,151.97,2600000,151.97 +1936-02-13,152.25,153.67,151.48,152.53,2920000,152.53 +1936-02-11,151.15,153.16,150.80,152.25,3350000,152.25 +1936-02-10,150.40,151.88,149.72,151.15,2460000,151.15 +1936-02-07,150.86,151.67,149.50,150.17,2570000,150.17 +1936-02-06,150.60,151.97,150.14,150.86,2750000,150.86 +1936-02-05,150.94,151.94,150.07,150.60,2920000,150.60 +1936-02-04,150.62,151.77,149.92,150.94,3010000,150.94 +1936-02-03,149.58,151.05,148.32,150.62,2320000,150.62 +1936-01-31,146.98,150.00,146.79,149.49,3230000,149.49 +1936-01-30,147.71,148.50,146.25,146.98,3010000,146.98 +1936-01-29,146.94,148.50,146.33,147.71,2680000,147.71 +1936-01-28,147.30,147.84,146.38,146.94,2290000,146.94 +1936-01-27,147.01,148.30,146.73,147.30,3100000,147.30 +1936-01-24,146.97,147.91,146.15,146.59,2540000,146.59 +1936-01-23,145.99,147.70,145.80,146.97,2940000,146.97 +1936-01-22,143.79,146.36,143.79,145.99,2150000,145.99 +1936-01-21,144.06,144.29,142.77,143.50,1330000,143.50 +1936-01-20,144.93,145.23,143.60,144.06,1810000,144.06 +1936-01-17,145.92,146.58,144.64,145.81,2350000,145.81 +1936-01-16,145.66,146.73,145.03,145.92,3110000,145.92 +1936-01-15,146.32,147.13,145.02,145.66,4630000,145.66 +1936-01-14,146.52,146.89,145.41,146.32,2790000,146.32 +1936-01-13,146.73,147.45,145.67,146.52,2600000,146.52 +1936-01-10,145.68,148.02,145.68,147.08,3270000,147.08 +1936-01-09,146.16,146.83,144.63,145.66,3000000,145.66 +1936-01-08,144.92,147.29,144.62,146.16,2530000,146.16 +1936-01-07,143.11,145.22,142.05,144.92,3080000,144.92 +1936-01-06,144.08,145.35,141.55,143.11,3730000,143.11 +1936-01-03,144.13,145.28,143.49,144.69,2830000,144.69 +1936-01-02,144.13,145.22,143.34,144.13,2240000,144.13 +1935-12-31,143.00,145.02,142.93,144.13,2440000,144.13 +1935-12-30,141.35,143.37,141.35,143.00,1630000,143.00 +1935-12-27,141.54,142.83,140.67,141.58,2130000,141.58 +1935-12-26,141.53,142.64,140.87,141.54,2340000,141.54 +1935-12-24,140.58,141.88,140.04,141.53,1710000,141.53 +1935-12-23,140.19,141.42,139.75,140.58,1920000,140.58 +1935-12-20,138.94,140.00,138.46,139.50,1410000,139.50 +1935-12-19,139.95,139.95,138.33,138.94,1260000,138.94 +1935-12-18,140.60,141.73,139.71,140.10,1690000,140.10 +1935-12-17,139.11,140.89,138.90,140.60,1390000,140.60 +1935-12-16,140.38,141.28,138.91,139.11,1400000,139.11 +1935-12-13,141.34,142.12,139.56,140.16,1890000,140.16 +1935-12-12,142.84,143.46,140.86,141.34,2140000,141.34 +1935-12-11,142.31,143.90,141.63,142.84,2130000,142.84 +1935-12-10,144.10,144.32,141.61,142.31,2340000,142.31 +1935-12-09,144.47,145.07,143.06,144.10,2510000,144.10 +1935-12-06,143.72,144.78,143.09,143.48,2370000,143.48 +1935-12-05,144.04,145.09,143.12,143.72,2260000,143.72 +1935-12-04,143.58,145.13,143.29,144.04,2960000,144.04 +1935-12-03,140.72,143.71,140.60,143.58,1930000,143.58 +1935-12-02,142.35,142.95,140.38,140.72,1520000,140.72 +1935-11-29,143.38,144.27,141.15,142.34,2170000,142.34 +1935-11-27,142.59,144.30,141.94,143.38,1860000,143.38 +1935-11-26,144.72,145.25,141.80,142.59,2330000,142.59 +1935-11-25,146.12,147.50,143.89,144.72,3370000,144.72 +1935-11-22,147.37,148.10,143.48,144.61,3920000,144.61 +1935-11-21,146.65,147.83,145.96,147.37,3280000,147.37 +1935-11-20,148.44,149.42,145.98,146.65,3820000,146.65 +1935-11-19,147.06,148.81,146.93,148.44,2880000,148.44 +1935-11-18,147.31,148.94,146.35,147.06,3200000,147.06 +1935-11-15,145.59,147.40,145.10,146.32,2940000,146.32 +1935-11-14,143.85,146.39,143.85,145.59,3950000,145.59 +1935-11-13,142.56,143.97,141.60,143.59,2050000,143.59 +1935-11-12,144.36,144.60,142.20,142.56,2140000,142.56 +1935-11-08,143.40,145.40,142.80,144.25,3350000,144.25 +1935-11-07,142.90,145.28,142.15,143.40,2790000,143.40 +1935-11-06,141.19,143.48,141.19,142.90,3080000,142.90 +1935-11-04,141.20,141.78,139.99,141.07,1750000,141.07 +1935-11-01,140.07,141.77,140.07,141.31,2040000,141.31 +1935-10-31,139.35,140.52,138.85,139.74,1810000,139.74 +1935-10-30,140.49,140.56,138.40,139.35,2150000,139.35 +1935-10-29,140.78,141.23,139.49,140.49,1710000,140.49 +1935-10-28,141.47,142.08,139.86,140.78,2110000,140.78 +1935-10-25,139.58,141.89,139.58,140.68,2470000,140.68 +1935-10-24,139.58,140.84,138.41,139.42,2160000,139.42 +1935-10-23,138.77,140.46,138.32,139.58,2760000,139.58 +1935-10-22,138.96,140.08,137.84,138.77,2840000,138.77 +1935-10-21,137.11,139.50,137.11,138.96,2870000,138.96 +1935-10-18,135.57,136.11,134.54,135.13,1450000,135.13 +1935-10-17,135.68,136.76,135.10,135.57,1610000,135.57 +1935-10-16,136.26,137.15,134.83,135.68,2240000,135.68 +1935-10-15,135.03,137.11,134.85,136.26,2570000,136.26 +1935-10-14,133.56,135.25,133.17,135.03,1590000,135.03 +1935-10-11,133.03,134.56,133.03,133.56,2060000,133.56 +1935-10-10,131.14,133.09,131.14,132.99,1860000,132.99 +1935-10-09,130.06,130.81,129.51,130.59,880000,130.59 +1935-10-08,130.77,131.30,129.85,130.06,1180000,130.06 +1935-10-07,130.35,131.35,130.24,130.77,950000,130.77 +1935-10-04,129.05,130.59,128.82,129.76,1420000,129.76 +1935-10-03,128.06,129.41,126.95,129.05,1490000,129.05 +1935-10-02,130.43,130.43,127.56,128.06,2190000,128.06 +1935-10-01,131.92,133.19,131.18,131.51,1420000,131.51 +1935-09-30,131.75,132.60,131.17,131.92,1260000,131.92 +1935-09-27,131.06,132.12,130.74,131.48,1120000,131.48 +1935-09-26,131.52,131.67,129.95,131.06,1090000,131.06 +1935-09-25,131.02,132.45,130.99,131.52,1080000,131.52 +1935-09-24,130.26,131.68,130.26,131.02,1010000,131.02 +1935-09-23,128.97,130.66,128.97,129.55,1010000,129.55 +1935-09-20,130.38,130.38,127.98,128.42,2220000,128.42 +1935-09-19,134.11,134.49,131.10,131.44,1920000,131.44 +1935-09-18,133.11,135.34,133.07,134.11,1940000,134.11 +1935-09-17,132.91,133.78,131.86,133.11,1330000,133.11 +1935-09-16,133.40,133.86,131.91,132.91,1490000,132.91 +1935-09-13,133.33,134.67,132.88,133.52,1730000,133.52 +1935-09-12,134.01,134.72,132.63,133.33,1880000,133.33 +1935-09-11,133.22,135.05,132.90,134.01,2590000,134.01 +1935-09-10,132.48,134.06,131.50,133.22,1980000,133.22 +1935-09-09,131.86,133.36,131.13,132.48,2000000,132.48 +1935-09-06,129.34,131.34,128.94,130.75,2150000,130.75 +1935-09-05,128.46,130.34,128.29,129.34,1890000,129.34 +1935-09-04,127.27,128.70,126.43,128.46,1000000,128.46 +1935-09-03,127.89,128.47,126.81,127.27,900000,127.27 +1935-08-30,126.95,127.70,126.76,127.35,830000,127.35 +1935-08-29,126.61,127.62,126.57,126.95,900000,126.95 +1935-08-28,126.81,127.32,125.65,126.61,1390000,126.61 +1935-08-27,128.99,129.97,126.27,126.81,2160000,126.81 +1935-08-26,127.93,129.53,127.61,128.99,1430000,128.99 +1935-08-23,128.52,129.59,127.82,128.93,1890000,128.93 +1935-08-22,127.66,129.49,127.33,128.52,1670000,128.52 +1935-08-21,126.59,128.25,126.59,127.66,1750000,127.66 +1935-08-20,126.33,126.68,124.97,126.31,1980000,126.31 +1935-08-19,127.96,128.39,126.07,126.33,2070000,126.33 +1935-08-16,127.47,128.03,126.51,127.63,1710000,127.63 +1935-08-15,128.27,128.72,127.07,127.47,1580000,127.47 +1935-08-14,128.09,128.94,127.35,128.27,1950000,128.27 +1935-08-13,128.00,128.85,127.15,128.09,2630000,128.09 +1935-08-12,127.94,128.84,127.44,128.00,2430000,128.00 +1935-08-09,125.98,127.80,125.72,127.27,2190000,127.27 +1935-08-08,125.61,126.59,125.16,125.98,1430000,125.98 +1935-08-07,125.64,126.54,125.18,125.61,1390000,125.61 +1935-08-06,126.07,126.96,125.00,125.64,1770000,125.64 +1935-08-05,125.90,126.62,125.31,126.07,1740000,126.07 +1935-08-02,125.85,126.13,124.28,124.93,1520000,124.93 +1935-08-01,126.23,126.88,125.19,125.85,1890000,125.85 +1935-07-31,125.57,127.04,125.00,126.23,1910000,126.23 +1935-07-30,126.56,126.78,125.03,125.57,1680000,125.57 +1935-07-29,125.27,126.89,125.10,126.56,1750000,126.56 +1935-07-26,123.80,124.45,123.37,124.02,990000,124.02 +1935-07-25,124.60,125.27,123.19,123.80,1330000,123.80 +1935-07-24,124.14,124.93,123.83,124.60,1310000,124.60 +1935-07-23,124.10,125.36,123.58,124.14,1730000,124.14 +1935-07-22,122.69,124.34,122.67,124.10,1370000,124.10 +1935-07-19,123.41,123.88,121.94,122.33,1150000,122.33 +1935-07-18,122.91,124.24,122.60,123.41,1500000,123.41 +1935-07-17,122.34,123.49,122.25,122.91,1360000,122.91 +1935-07-16,121.72,122.56,121.00,122.34,900000,122.34 +1935-07-15,121.88,122.74,121.40,121.72,950000,121.72 +1935-07-12,121.93,122.63,121.29,122.20,1100000,122.20 +1935-07-11,122.69,122.90,121.14,121.93,1000000,121.93 +1935-07-10,122.15,123.14,121.97,122.69,1150000,122.69 +1935-07-09,122.55,123.34,121.74,122.15,1350000,122.15 +1935-07-08,121.02,122.68,120.69,122.55,1310000,122.55 +1935-07-05,119.02,120.75,119.02,120.61,880000,120.61 +1935-07-03,118.69,118.98,117.80,118.81,720000,118.81 +1935-07-02,118.82,119.70,118.32,118.69,1200000,118.69 +1935-07-01,118.21,119.30,117.97,118.82,680000,118.82 +1935-06-28,117.69,118.83,117.69,118.36,760000,118.36 +1935-06-27,117.64,118.50,116.91,117.56,740000,117.56 +1935-06-26,118.73,119.49,117.51,117.64,960000,117.64 +1935-06-25,119.64,119.64,117.85,118.73,1140000,118.73 +1935-06-24,120.75,121.30,119.67,120.04,1120000,120.04 +1935-06-21,117.80,120.04,117.80,119.48,1520000,119.48 +1935-06-20,117.47,117.47,115.85,117.24,1000000,117.24 +1935-06-19,119.32,119.76,117.47,118.12,1630000,118.12 +1935-06-18,118.67,119.71,118.67,119.32,890000,119.32 +1935-06-17,119.17,119.33,118.21,118.67,910000,118.67 +1935-06-14,117.89,119.67,117.64,119.00,1280000,119.00 +1935-06-13,117.14,118.40,116.49,117.89,860000,117.89 +1935-06-12,117.08,118.53,116.27,117.14,1290000,117.14 +1935-06-11,115.89,117.53,115.77,117.08,1150000,117.08 +1935-06-10,114.72,116.12,114.04,115.89,630000,115.89 +1935-06-07,113.54,114.27,113.15,114.01,590000,114.01 +1935-06-06,113.92,114.89,113.27,113.54,680000,113.54 +1935-06-05,113.58,115.08,112.96,113.92,1100000,113.92 +1935-06-04,111.95,113.73,111.95,113.58,870000,113.58 +1935-06-03,110.15,111.84,110.15,111.45,600000,111.45 +1935-05-31,111.85,112.62,110.40,110.64,1120000,110.64 +1935-05-29,113.67,113.67,111.37,111.85,1500000,111.85 +1935-05-28,116.74,117.62,112.99,113.76,2310000,113.76 +1935-05-27,115.90,117.12,115.32,116.74,820000,116.74 +1935-05-24,116.81,117.43,115.91,116.17,1180000,116.17 +1935-05-23,116.24,117.51,116.20,116.81,1290000,116.81 +1935-05-22,115.56,116.69,115.07,116.24,1150000,116.24 +1935-05-21,114.67,116.31,114.57,115.56,1140000,115.56 +1935-05-20,114.58,115.27,114.18,114.67,970000,114.67 +1935-05-17,116.58,117.09,115.28,115.81,1820000,115.81 +1935-05-16,114.67,117.30,114.67,116.58,2420000,116.58 +1935-05-15,114.18,115.11,113.87,114.61,1050000,114.61 +1935-05-14,114.23,115.03,113.71,114.18,1210000,114.18 +1935-05-13,114.08,114.93,113.36,114.23,1130000,114.23 +1935-05-10,113.10,114.50,112.84,113.67,1580000,113.67 +1935-05-09,112.63,113.92,112.11,113.10,1660000,113.10 +1935-05-08,110.18,112.74,110.18,112.63,1400000,112.63 +1935-05-07,110.53,110.68,109.23,109.79,810000,109.79 +1935-05-06,110.83,111.60,110.22,110.53,1030000,110.53 +1935-05-03,109.04,110.93,109.04,110.49,950000,110.49 +1935-05-02,108.71,109.47,107.82,108.84,880000,108.84 +1935-05-01,109.45,110.26,108.52,108.71,820000,108.71 +1935-04-30,109.91,110.61,108.75,109.45,860000,109.45 +1935-04-29,109.68,110.40,108.65,109.91,890000,109.91 +1935-04-26,110.47,111.33,109.23,110.37,1520000,110.37 +1935-04-25,109.45,111.52,108.94,110.47,1640000,110.47 +1935-04-24,110.06,110.75,109.08,109.45,1280000,109.45 +1935-04-23,110.27,110.70,109.56,110.06,1230000,110.06 +1935-04-22,109.76,110.91,109.42,110.27,1380000,110.27 +1935-04-18,105.68,108.33,105.68,107.97,820000,107.97 +1935-04-17,106.33,106.67,105.24,105.43,850000,105.43 +1935-04-16,105.93,106.67,105.44,106.33,740000,106.33 +1935-04-15,105.42,106.44,105.05,105.93,1110000,105.93 +1935-04-12,104.03,104.69,103.59,104.45,840000,104.45 +1935-04-11,104.06,104.59,103.57,104.03,730000,104.03 +1935-04-10,104.32,105.06,103.74,104.06,990000,104.06 +1935-04-09,102.65,104.46,102.58,104.32,860000,104.32 +1935-04-08,103.04,103.40,102.31,102.65,710000,102.65 +1935-04-05,101.35,102.87,101.35,102.53,1210000,102.53 +1935-04-04,100.39,101.38,100.34,101.13,560000,101.13 +1935-04-03,101.00,101.11,99.75,100.39,530000,100.39 +1935-04-02,101.23,101.86,100.84,101.00,530000,101.00 +1935-04-01,100.81,101.59,100.67,101.23,440000,101.23 +1935-03-29,100.59,101.33,100.26,100.78,460000,100.78 +1935-03-28,100.35,101.54,99.69,100.59,610000,100.59 +1935-03-27,98.97,100.72,98.87,100.35,460000,100.35 +1935-03-26,99.50,99.80,98.61,98.97,440000,98.97 +1935-03-25,99.84,99.99,98.63,99.50,460000,99.50 +1935-03-22,99.72,100.88,99.10,100.68,780000,100.68 +1935-03-21,98.29,100.55,98.03,99.72,890000,99.72 +1935-03-20,98.31,99.11,97.75,98.29,490000,98.29 +1935-03-19,97.05,98.61,97.05,98.31,510000,98.31 +1935-03-18,97.62,97.62,95.95,97.01,590000,97.01 +1935-03-15,96.71,98.51,96.47,98.21,770000,98.21 +1935-03-14,98.02,98.50,96.49,96.71,810000,96.71 +1935-03-13,97.66,98.52,96.81,98.02,1080000,98.02 +1935-03-12,99.39,99.62,97.60,97.66,1050000,97.66 +1935-03-11,101.18,101.60,99.24,99.39,800000,99.39 +1935-03-08,101.27,102.37,101.27,101.58,440000,101.58 +1935-03-07,100.22,101.37,100.13,101.17,540000,101.17 +1935-03-06,100.09,101.94,98.77,100.22,1290000,100.22 +1935-03-05,102.29,102.29,100.00,100.09,900000,100.09 +1935-03-04,103.16,103.16,102.24,102.58,420000,102.58 +1935-03-01,102.38,103.59,102.03,103.27,640000,103.27 +1935-02-28,102.55,103.27,102.14,102.38,570000,102.38 +1935-02-27,102.24,102.86,101.27,102.55,930000,102.55 +1935-02-26,103.14,103.60,102.08,102.24,950000,102.24 +1935-02-25,103.25,103.57,102.33,103.14,740000,103.14 +1935-02-21,104.97,105.47,104.28,104.86,700000,104.86 +1935-02-20,105.89,106.25,104.60,104.97,970000,104.97 +1935-02-19,107.17,107.36,105.59,105.89,1100000,105.89 +1935-02-18,104.54,108.29,103.64,107.17,1910000,107.17 +1935-02-15,103.43,105.07,103.43,104.67,730000,104.67 +1935-02-14,102.69,103.31,102.56,103.05,410000,103.05 +1935-02-13,102.42,103.06,102.18,102.69,390000,102.69 +1935-02-11,102.66,102.67,101.65,102.42,360000,102.42 +1935-02-08,101.16,102.58,101.16,102.35,590000,102.35 +1935-02-07,100.23,101.34,100.02,101.00,520000,101.00 +1935-02-06,100.74,100.90,99.95,100.23,560000,100.23 +1935-02-05,101.40,101.40,100.46,100.74,560000,100.74 +1935-02-04,102.17,102.17,101.35,101.56,350000,101.56 +1935-02-01,101.69,102.05,101.10,101.53,490000,101.53 +1935-01-31,101.05,102.12,101.05,101.69,530000,101.69 +1935-01-30,100.69,101.39,100.38,101.00,430000,101.00 +1935-01-29,101.51,101.58,100.24,100.69,580000,100.69 +1935-01-28,102.31,102.31,101.03,101.51,690000,101.51 +1935-01-25,102.44,103.12,102.32,102.86,520000,102.86 +1935-01-24,102.85,102.85,102.01,102.44,440000,102.44 +1935-01-23,102.77,103.43,102.43,102.88,620000,102.88 +1935-01-22,103.35,103.64,102.60,102.77,590000,102.77 +1935-01-21,102.96,103.93,102.57,103.35,690000,103.35 +1935-01-18,101.92,102.63,101.58,102.36,690000,102.36 +1935-01-17,101.54,102.30,101.04,101.92,740000,101.92 +1935-01-16,100.49,101.95,100.40,101.54,670000,101.54 +1935-01-15,102.76,103.20,99.54,100.49,1370000,100.49 +1935-01-14,102.39,103.37,102.39,102.76,550000,102.76 +1935-01-11,104.87,105.49,102.50,103.35,1380000,103.35 +1935-01-10,105.05,105.65,104.41,104.87,780000,104.87 +1935-01-09,105.03,105.68,104.28,105.05,900000,105.05 +1935-01-08,105.88,106.22,104.56,105.03,1190000,105.03 +1935-01-07,105.56,106.71,105.24,105.88,1290000,105.88 +1935-01-04,105.14,105.43,104.18,104.69,970000,104.69 +1935-01-03,104.51,105.63,104.12,105.14,1070000,105.14 +1935-01-02,104.04,104.93,103.05,104.51,880000,104.51 +1934-12-31,103.90,104.46,103.36,104.04,1020000,104.04 +1934-12-28,100.57,103.29,100.57,103.15,1280000,103.15 +1934-12-27,100.35,101.41,99.58,100.26,1630000,100.26 +1934-12-26,100.69,101.32,100.05,100.35,1050000,100.35 +1934-12-24,99.73,101.00,99.52,100.69,810000,100.69 +1934-12-21,99.59,100.38,98.99,99.90,920000,99.90 +1934-12-20,99.78,100.01,98.93,99.59,880000,99.59 +1934-12-19,100.88,100.88,99.40,99.78,980000,99.78 +1934-12-18,100.92,101.37,100.41,101.00,820000,101.00 +1934-12-17,100.84,101.66,100.45,100.92,900000,100.92 +1934-12-14,100.68,101.30,100.34,100.69,940000,100.69 +1934-12-13,100.97,102.02,100.39,100.68,1000000,100.68 +1934-12-12,100.81,101.62,100.52,100.97,790000,100.97 +1934-12-11,102.76,103.58,100.50,100.81,1280000,100.81 +1934-12-10,102.83,103.52,102.18,102.76,850000,102.76 +1934-12-07,103.47,103.90,102.75,103.16,1020000,103.16 +1934-12-06,103.42,104.23,102.91,103.47,1420000,103.47 +1934-12-05,102.69,104.08,102.69,103.42,1640000,103.42 +1934-12-04,101.92,102.93,101.59,102.57,950000,102.57 +1934-12-03,102.77,102.77,101.74,101.92,750000,101.92 +1934-11-30,102.75,103.36,101.94,102.94,800000,102.94 +1934-11-28,102.38,103.47,101.90,102.75,1160000,102.75 +1934-11-27,103.08,103.12,101.80,102.38,1010000,102.38 +1934-11-26,102.40,103.51,102.16,103.08,1410000,103.08 +1934-11-23,100.17,101.99,100.17,101.62,1130000,101.62 +1934-11-22,99.47,100.48,98.93,99.93,770000,99.93 +1934-11-21,99.90,100.43,98.95,99.47,810000,99.47 +1934-11-20,99.89,100.14,98.96,99.90,870000,99.90 +1934-11-19,99.45,100.68,99.24,99.89,980000,99.89 +1934-11-16,99.72,100.08,98.70,99.39,1030000,99.39 +1934-11-15,99.42,100.80,99.34,99.72,1540000,99.72 +1934-11-14,99.19,99.81,98.49,99.42,960000,99.42 +1934-11-13,99.21,99.98,98.49,99.19,1130000,99.19 +1934-11-09,97.26,99.34,96.97,99.02,1230000,99.02 +1934-11-08,97.55,98.31,96.83,97.26,840000,97.26 +1934-11-07,96.06,97.81,95.31,97.55,1110000,97.55 +1934-11-05,94.95,96.17,94.83,96.06,760000,96.06 +1934-11-02,93.83,94.94,93.83,94.42,650000,94.42 +1934-11-01,93.36,93.98,92.79,93.46,540000,93.46 +1934-10-31,93.05,94.04,92.90,93.36,420000,93.36 +1934-10-30,92.59,93.46,92.59,93.05,430000,93.05 +1934-10-29,92.86,93.60,92.37,92.53,430000,92.53 +1934-10-26,93.86,93.86,92.20,93.01,870000,93.01 +1934-10-25,95.60,96.15,94.05,94.19,1030000,94.19 +1934-10-24,94.65,95.71,93.96,95.60,770000,95.60 +1934-10-23,94.78,95.17,94.19,94.65,540000,94.65 +1934-10-22,95.02,95.79,94.65,94.78,570000,94.78 +1934-10-19,95.33,95.33,94.39,94.90,530000,94.90 +1934-10-18,95.29,96.03,94.63,95.34,660000,95.34 +1934-10-17,95.25,96.36,94.83,95.29,660000,95.29 +1934-10-16,94.16,95.81,94.15,95.25,680000,95.25 +1934-10-15,94.90,95.37,94.01,94.16,510000,94.16 +1934-10-11,93.94,96.04,93.94,95.50,1400000,95.50 +1934-10-10,91.78,94.01,91.78,93.75,990000,93.75 +1934-10-09,92.50,93.03,91.31,91.71,770000,91.71 +1934-10-08,92.85,93.21,92.16,92.50,450000,92.50 +1934-10-05,91.74,93.58,91.74,92.96,870000,92.96 +1934-10-04,91.04,91.44,89.84,91.01,610000,91.01 +1934-10-03,90.88,91.82,90.66,91.04,410000,91.04 +1934-10-02,90.41,91.44,90.30,90.88,370000,90.88 +1934-10-01,92.17,92.17,90.14,90.41,620000,90.41 +1934-09-28,93.40,93.52,92.24,92.49,510000,92.49 +1934-09-27,92.44,94.02,92.23,93.40,800000,93.40 +1934-09-26,92.72,93.12,92.05,92.44,800000,92.44 +1934-09-25,90.45,92.79,89.91,92.72,840000,92.72 +1934-09-24,91.08,91.50,89.97,90.45,510000,90.45 +1934-09-21,89.65,91.34,89.65,91.10,710000,91.10 +1934-09-20,89.34,89.93,88.76,89.35,490000,89.35 +1934-09-19,87.91,89.58,87.91,89.34,560000,89.34 +1934-09-18,86.69,87.84,86.57,87.37,530000,87.37 +1934-09-17,87.34,87.41,85.72,86.69,650000,86.69 +1934-09-14,89.25,89.25,86.64,86.83,840000,86.83 +1934-09-13,89.62,90.45,89.12,89.44,420000,89.44 +1934-09-12,89.25,90.14,89.14,89.62,400000,89.62 +1934-09-11,89.27,89.75,88.42,89.25,630000,89.25 +1934-09-10,90.83,91.32,89.04,89.27,700000,89.27 +1934-09-07,91.82,92.52,90.50,90.99,690000,90.99 +1934-09-06,93.65,94.05,91.67,91.82,600000,91.82 +1934-09-05,92.64,93.96,92.64,93.65,480000,93.65 +1934-09-04,92.59,92.59,91.74,92.30,310000,92.30 +1934-08-31,92.76,93.05,92.05,92.86,400000,92.86 +1934-08-30,93.59,93.59,92.01,92.76,650000,92.76 +1934-08-29,94.19,95.59,93.64,93.69,760000,93.69 +1934-08-28,94.46,94.48,93.55,94.19,400000,94.19 +1934-08-27,95.31,95.31,94.25,94.46,530000,94.46 +1934-08-24,94.05,95.55,93.85,95.48,750000,95.48 +1934-08-23,94.32,94.97,93.64,94.05,750000,94.05 +1934-08-22,92.68,94.95,92.68,94.32,1300000,94.32 +1934-08-21,90.87,92.70,90.87,92.57,580000,92.57 +1934-08-20,90.86,91.02,90.08,90.44,280000,90.44 +1934-08-17,91.69,92.25,91.00,91.12,480000,91.12 +1934-08-16,91.08,92.51,91.08,91.69,610000,91.69 +1934-08-15,91.12,91.70,90.66,91.00,580000,91.00 +1934-08-14,91.80,91.98,90.82,91.12,530000,91.12 +1934-08-13,89.79,92.56,89.69,91.80,810000,91.80 +1934-08-10,91.34,91.47,89.39,89.66,770000,89.66 +1934-08-09,88.97,91.80,87.19,91.34,1420000,91.34 +1934-08-08,87.47,89.28,87.16,88.97,690000,88.97 +1934-08-07,88.11,89.10,86.70,87.47,610000,87.47 +1934-08-06,88.43,88.51,86.32,88.11,780000,88.11 +1934-08-03,90.87,91.08,89.82,90.14,470000,90.14 +1934-08-02,90.57,91.12,89.75,90.87,560000,90.87 +1934-08-01,88.55,90.96,88.55,90.57,780000,90.57 +1934-07-31,88.17,88.51,87.17,88.05,360000,88.05 +1934-07-30,88.72,88.96,86.90,88.17,810000,88.17 +1934-07-27,86.64,88.86,86.64,87.84,2210000,87.84 +1934-07-26,91.32,91.32,84.58,85.51,3340000,85.51 +1934-07-25,91.01,92.08,90.09,91.57,1350000,91.57 +1934-07-24,91.98,92.91,90.63,91.01,1600000,91.01 +1934-07-23,94.62,95.17,91.96,91.98,1880000,91.98 +1934-07-20,97.20,97.20,94.43,94.74,1240000,94.74 +1934-07-19,98.26,98.70,96.92,97.24,610000,97.24 +1934-07-18,97.18,98.45,97.18,98.26,490000,98.26 +1934-07-17,97.04,97.75,96.50,96.79,620000,96.79 +1934-07-16,98.51,98.51,96.91,97.04,590000,97.04 +1934-07-13,98.32,99.08,97.66,98.82,530000,98.82 +1934-07-12,98.67,99.01,97.93,98.32,470000,98.32 +1934-07-11,98.12,99.35,98.12,98.67,650000,98.67 +1934-07-10,97.04,98.63,97.02,98.07,650000,98.07 +1934-07-09,97.15,97.54,96.54,97.04,320000,97.04 +1934-07-06,96.56,97.80,96.56,97.32,460000,97.32 +1934-07-05,95.19,96.92,95.19,96.44,440000,96.44 +1934-07-03,94.80,95.13,94.25,94.77,400000,94.77 +1934-07-02,95.71,95.71,94.59,94.80,410000,94.80 +1934-06-29,96.84,96.84,95.59,95.75,440000,95.75 +1934-06-28,96.94,97.88,96.18,97.14,640000,97.14 +1934-06-27,97.33,98.31,96.74,96.94,630000,96.94 +1934-06-26,95.79,97.53,95.46,97.33,620000,97.33 +1934-06-25,96.59,97.03,95.49,95.79,490000,95.79 +1934-06-22,97.50,97.87,95.48,95.93,930000,95.93 +1934-06-21,98.25,98.62,97.39,97.50,530000,97.50 +1934-06-20,99.02,99.10,97.94,98.25,550000,98.25 +1934-06-19,100.42,101.11,98.75,99.02,850000,99.02 +1934-06-18,99.85,100.70,99.32,100.42,610000,100.42 +1934-06-15,97.23,99.29,97.23,98.70,730000,98.70 +1934-06-14,98.49,98.49,96.92,97.15,630000,97.15 +1934-06-13,98.78,99.92,98.32,98.75,880000,98.75 +1934-06-12,97.82,99.60,97.77,98.78,950000,98.78 +1934-06-11,98.70,98.70,97.40,97.82,750000,97.82 +1934-06-08,94.82,98.55,94.82,98.44,1610000,98.44 +1934-06-07,94.77,95.24,94.04,94.72,470000,94.72 +1934-06-06,94.66,95.68,94.27,94.77,670000,94.77 +1934-06-05,92.74,94.94,92.74,94.66,740000,94.66 +1934-06-04,91.84,93.04,91.84,92.73,360000,92.73 +1934-06-01,93.71,93.71,91.70,91.79,630000,91.79 +1934-05-31,94.78,94.78,93.71,94.00,440000,94.00 +1934-05-29,95.56,95.85,94.85,95.32,380000,95.32 +1934-05-28,95.32,96.33,95.32,95.56,620000,95.56 +1934-05-25,93.37,94.96,93.25,94.50,540000,94.50 +1934-05-24,92.86,94.08,92.57,93.37,500000,93.37 +1934-05-23,93.61,93.74,92.23,92.86,660000,92.86 +1934-05-22,95.76,96.29,93.26,93.61,830000,93.61 +1934-05-21,95.13,95.96,94.81,95.76,380000,95.76 +1934-05-18,95.98,96.57,94.62,95.17,910000,95.17 +1934-05-17,92.73,96.17,92.63,95.98,1290000,95.98 +1934-05-16,92.84,93.83,91.95,92.73,720000,92.73 +1934-05-15,91.81,93.65,91.47,92.84,890000,92.84 +1934-05-14,92.22,92.95,89.10,91.81,1680000,91.81 +1934-05-11,93.91,95.19,92.99,93.18,1000000,93.18 +1934-05-10,95.59,95.59,92.16,93.91,2130000,93.91 +1934-05-09,97.16,97.81,95.38,95.71,1030000,95.71 +1934-05-08,95.51,97.73,94.47,97.16,1860000,97.16 +1934-05-07,98.20,98.71,94.30,95.51,2360000,95.51 +1934-05-04,99.02,100.66,99.02,99.29,840000,99.29 +1934-05-03,98.82,100.06,98.36,98.94,1110000,98.94 +1934-05-02,100.62,101.36,98.47,98.82,1340000,98.82 +1934-05-01,100.49,101.20,99.55,100.62,1340000,100.62 +1934-04-30,102.72,102.72,100.31,100.49,1490000,100.49 +1934-04-27,103.56,104.30,103.12,103.65,840000,103.65 +1934-04-26,105.05,105.51,102.95,103.56,1640000,103.56 +1934-04-25,105.31,105.55,104.53,105.05,960000,105.05 +1934-04-24,105.92,106.19,104.70,105.31,1270000,105.31 +1934-04-23,106.34,106.73,105.31,105.92,1110000,105.92 +1934-04-20,105.52,107.00,105.08,106.55,1890000,106.55 +1934-04-19,105.45,106.18,104.34,105.52,1330000,105.52 +1934-04-18,104.58,106.26,104.58,105.45,1540000,105.45 +1934-04-17,103.57,104.82,103.34,104.46,940000,104.46 +1934-04-16,105.04,105.31,102.88,103.57,1290000,103.57 +1934-04-13,104.80,105.72,104.42,104.98,1180000,104.98 +1934-04-12,105.16,105.82,104.30,104.80,1330000,104.80 +1934-04-11,105.05,106.23,104.64,105.16,1550000,105.16 +1934-04-10,103.95,105.51,103.95,105.05,1410000,105.05 +1934-04-09,103.60,104.07,102.92,103.54,850000,103.54 +1934-04-06,103.37,104.30,102.86,103.97,1010000,103.97 +1934-04-05,103.19,104.09,102.47,103.37,1420000,103.37 +1934-04-04,102.74,103.91,102.21,103.19,1560000,103.19 +1934-04-03,101.96,103.00,101.18,102.74,1340000,102.74 +1934-04-02,101.85,102.82,101.41,101.96,1370000,101.96 +1934-03-29,99.18,100.83,99.18,100.31,1020000,100.31 +1934-03-28,98.76,99.84,98.60,99.02,840000,99.02 +1934-03-27,99.32,99.32,97.41,98.76,1590000,98.76 +1934-03-26,100.92,102.67,100.70,100.95,1280000,100.95 +1934-03-23,100.53,100.53,99.47,99.80,760000,99.80 +1934-03-22,99.33,100.94,98.87,100.54,1030000,100.54 +1934-03-21,100.73,100.73,98.45,99.33,1070000,99.33 +1934-03-20,99.68,101.82,98.75,101.01,1540000,101.01 +1934-03-19,101.04,101.04,98.99,99.68,1510000,99.68 +1934-03-16,102.21,103.26,101.46,102.72,1170000,102.72 +1934-03-15,103.54,103.73,101.43,102.21,1340000,102.21 +1934-03-14,104.00,104.69,103.31,103.54,1360000,103.54 +1934-03-13,104.23,104.89,103.54,104.00,1280000,104.00 +1934-03-12,102.77,104.61,102.66,104.23,1260000,104.23 +1934-03-09,103.21,103.91,102.13,102.44,1370000,102.44 +1934-03-08,101.59,103.44,100.78,103.21,1700000,103.21 +1934-03-07,103.84,104.59,101.12,101.59,1730000,101.59 +1934-03-06,104.94,104.94,103.40,103.84,810000,103.84 +1934-03-05,105.56,105.89,103.79,105.02,950000,105.02 +1934-03-02,103.74,105.99,103.74,105.79,1480000,105.79 +1934-03-01,103.46,103.81,101.93,103.18,1240000,103.18 +1934-02-28,103.67,105.37,103.09,103.46,1320000,103.46 +1934-02-27,103.12,104.55,102.63,103.67,1270000,103.67 +1934-02-26,104.49,104.49,102.21,103.12,2190000,103.12 +1934-02-23,108.50,109.36,105.72,106.14,2290000,106.14 +1934-02-21,108.14,109.39,107.55,108.50,1900000,108.50 +1934-02-20,107.53,108.68,107.24,108.14,1220000,108.14 +1934-02-19,109.07,109.57,107.04,107.53,2350000,107.53 +1934-02-16,108.30,109.96,107.60,108.61,2770000,108.61 +1934-02-15,106.92,109.04,106.92,108.30,2980000,108.30 +1934-02-14,106.10,107.21,104.64,106.78,1940000,106.78 +1934-02-13,105.47,107.35,104.78,106.10,2060000,106.10 +1934-02-09,108.45,108.76,104.29,106.09,3340000,106.09 +1934-02-08,107.95,109.09,106.05,108.45,3200000,108.45 +1934-02-07,110.20,110.20,106.53,107.95,4500000,107.95 +1934-02-06,110.74,111.25,108.88,110.24,4330000,110.24 +1934-02-05,109.50,111.93,109.50,110.74,4940000,110.74 +1934-02-02,108.95,109.69,107.67,108.31,2870000,108.31 +1934-02-01,107.94,110.35,107.94,108.95,4710000,108.95 +1934-01-31,108.99,109.17,106.81,107.22,3110000,107.22 +1934-01-30,107.91,110.06,107.91,108.99,4240000,108.99 +1934-01-29,106.11,108.42,106.11,107.90,2780000,107.90 +1934-01-26,106.85,107.93,105.85,106.38,2510000,106.38 +1934-01-25,107.02,107.52,105.44,106.85,2270000,106.85 +1934-01-24,106.62,108.20,106.26,107.02,3370000,107.02 +1934-01-23,105.09,107.00,104.47,106.62,2380000,106.62 +1934-01-22,105.52,106.92,104.34,105.09,2660000,105.09 +1934-01-19,103.46,106.19,103.46,105.60,3540000,105.60 +1934-01-18,103.50,104.48,102.50,103.30,2130000,103.30 +1934-01-17,103.40,104.87,102.38,103.50,2850000,103.50 +1934-01-16,103.19,104.60,102.66,103.40,3440000,103.40 +1934-01-15,99.50,103.48,99.50,103.19,3740000,103.19 +1934-01-12,99.38,99.98,98.24,98.73,1600000,98.73 +1934-01-11,99.77,100.49,98.77,99.38,1700000,99.38 +1934-01-10,97.78,99.99,97.78,99.77,1420000,99.77 +1934-01-09,97.09,98.53,97.09,97.57,870000,97.57 +1934-01-08,96.94,97.93,96.26,96.73,720000,96.73 +1934-01-05,98.78,99.39,96.97,97.23,1060000,97.23 +1934-01-04,99.09,99.13,96.48,98.78,1190000,98.78 +1934-01-03,100.36,100.83,97.75,99.09,1380000,99.09 +1934-01-02,99.90,101.94,99.61,100.36,1270000,100.36 +1933-12-29,99.29,99.73,97.85,98.67,1130000,98.67 +1933-12-28,97.16,100.04,97.16,99.29,1480000,99.29 +1933-12-27,96.30,98.21,95.16,96.80,3080000,96.80 +1933-12-26,97.76,97.76,95.56,96.30,1300000,96.30 +1933-12-22,95.93,99.90,95.93,98.87,2420000,98.87 +1933-12-21,95.28,96.16,94.78,95.50,1020000,95.50 +1933-12-20,97.25,97.96,93.70,95.28,2160000,95.28 +1933-12-19,97.20,97.99,96.30,97.25,1030000,97.25 +1933-12-18,98.06,98.42,95.77,97.20,1340000,97.20 +1933-12-15,101.44,101.67,99.44,99.95,1170000,99.95 +1933-12-14,100.69,102.92,100.58,101.44,1560000,101.44 +1933-12-13,101.64,101.98,99.94,100.69,1330000,100.69 +1933-12-12,101.94,103.03,101.06,101.64,1650000,101.64 +1933-12-11,102.92,103.97,101.63,101.94,2450000,101.94 +1933-12-08,102.04,102.47,100.30,101.04,1330000,101.04 +1933-12-07,101.28,103.01,101.07,102.04,1680000,102.04 +1933-12-06,101.99,102.72,100.70,101.28,1440000,101.28 +1933-12-05,99.20,102.44,99.20,101.99,2020000,101.99 +1933-12-04,99.07,99.41,98.19,98.89,670000,98.89 +1933-12-01,98.41,100.08,98.41,98.89,810000,98.89 +1933-11-29,96.57,98.51,96.57,98.14,750000,98.14 +1933-11-28,95.77,97.79,95.59,96.23,1010000,96.23 +1933-11-27,99.28,99.45,95.32,95.77,1560000,95.77 +1933-11-24,98.59,100.81,98.09,99.52,1420000,99.52 +1933-11-23,100.07,100.29,97.20,98.59,1370000,98.59 +1933-11-22,100.29,101.61,98.80,100.07,1570000,100.07 +1933-11-21,101.28,101.94,99.67,100.29,1800000,100.29 +1933-11-20,98.67,101.83,98.52,101.28,1900000,101.28 +1933-11-17,99.01,100.59,97.54,98.09,2320000,98.09 +1933-11-16,94.36,99.34,94.12,99.01,2580000,99.01 +1933-11-15,95.50,96.35,93.27,94.36,1350000,94.36 +1933-11-14,95.98,98.26,94.73,95.50,2170000,95.50 +1933-11-13,96.10,97.15,95.25,95.98,1090000,95.98 +1933-11-10,96.40,97.21,94.60,95.06,1370000,95.06 +1933-11-09,95.54,98.34,95.46,96.40,2900000,96.40 +1933-11-08,92.50,96.05,91.82,95.54,1800000,95.54 +1933-11-06,93.09,93.14,91.67,92.50,690000,92.50 +1933-11-03,90.54,93.92,89.96,93.60,1500000,93.60 +1933-11-02,89.62,91.38,89.17,90.54,1120000,90.54 +1933-11-01,88.16,89.92,86.83,89.62,1140000,89.62 +1933-10-31,88.43,89.44,86.50,88.16,1130000,88.16 +1933-10-30,92.01,93.99,88.05,88.43,1470000,88.43 +1933-10-27,92.02,94.11,90.83,93.22,1110000,93.22 +1933-10-26,93.54,93.95,91.29,92.02,1220000,92.02 +1933-10-25,91.35,95.23,91.23,93.54,2880000,93.54 +1933-10-24,88.13,91.67,87.10,91.35,2110000,91.35 +1933-10-23,86.25,90.54,86.25,88.13,2130000,88.13 +1933-10-20,84.38,88.41,83.57,86.63,2700000,86.63 +1933-10-19,88.62,88.62,84.26,84.38,2900000,84.38 +1933-10-18,92.67,92.72,88.47,88.95,1730000,88.95 +1933-10-17,90.49,93.47,88.69,92.67,2480000,92.67 +1933-10-16,94.93,94.93,89.35,90.49,2670000,90.49 +1933-10-13,98.77,98.77,95.14,95.36,1270000,95.36 +1933-10-11,98.77,99.94,97.54,98.85,1030000,98.85 +1933-10-10,99.72,100.20,98.05,98.77,1140000,98.77 +1933-10-09,98.20,100.58,98.14,99.72,1250000,99.72 +1933-10-06,98.05,99.18,95.92,97.54,1460000,97.54 +1933-10-05,98.60,99.34,96.95,98.05,1660000,98.05 +1933-10-04,94.89,99.21,94.89,98.60,2140000,98.60 +1933-10-03,92.99,94.43,91.93,93.55,930000,93.55 +1933-10-02,94.82,95.32,92.69,92.99,960000,92.99 +1933-09-29,94.66,97.21,93.94,94.24,1640000,94.24 +1933-09-28,93.18,95.30,92.89,94.66,1440000,94.66 +1933-09-27,96.91,96.91,92.44,93.18,2320000,93.18 +1933-09-26,98.03,100.23,96.84,97.41,1430000,97.41 +1933-09-25,99.34,99.34,96.46,98.03,1310000,98.03 +1933-09-22,97.56,99.93,95.73,99.06,3320000,99.06 +1933-09-21,102.29,102.29,97.15,97.56,3650000,97.56 +1933-09-20,105.71,105.71,102.26,103.99,2420000,103.99 +1933-09-19,105.30,106.25,102.44,105.74,2820000,105.74 +1933-09-18,105.32,107.68,104.36,105.30,2720000,105.30 +1933-09-15,104.66,106.14,102.14,102.63,2450000,102.63 +1933-09-14,103.81,106.53,103.81,104.66,2900000,104.66 +1933-09-13,102.90,104.13,102.90,103.65,740000,103.65 +1933-09-12,103.59,104.90,102.33,102.84,2240000,102.84 +1933-09-11,99.42,103.74,99.26,103.59,1920000,103.59 +1933-09-08,99.20,100.41,98.16,99.58,1300000,99.58 +1933-09-07,100.33,101.12,98.82,99.20,1070000,99.20 +1933-09-06,100.22,100.90,97.74,100.33,1890000,100.33 +1933-09-05,103.34,103.34,99.80,100.22,1250000,100.22 +1933-09-01,102.41,103.89,101.86,103.66,1220000,103.66 +1933-08-31,102.35,103.31,101.48,102.41,1140000,102.41 +1933-08-30,103.59,104.13,100.38,102.35,2170000,102.35 +1933-08-29,104.72,105.39,100.23,103.59,3120000,103.59 +1933-08-28,105.07,105.53,103.02,104.72,2120000,104.72 +1933-08-25,102.84,105.60,102.84,105.07,3330000,105.07 +1933-08-24,100.38,102.77,99.52,101.41,1730000,101.41 +1933-08-23,101.34,102.75,99.58,100.38,2580000,100.38 +1933-08-22,100.17,101.71,99.02,101.34,1960000,101.34 +1933-08-21,98.57,100.86,98.57,100.17,1560000,100.17 +1933-08-18,99.30,100.77,96.81,98.32,2090000,98.32 +1933-08-17,94.44,99.49,93.59,99.30,2470000,99.30 +1933-08-16,96.28,96.28,92.95,94.44,1800000,94.44 +1933-08-15,96.53,97.53,95.72,96.63,910000,96.63 +1933-08-14,97.40,97.40,94.63,96.53,1220000,96.53 +1933-08-11,97.58,98.68,96.28,97.47,1340000,97.47 +1933-08-10,99.06,100.14,96.48,97.58,2820000,97.58 +1933-08-09,96.17,99.39,96.17,99.06,2560000,99.06 +1933-08-08,93.16,96.10,93.16,95.84,1230000,95.84 +1933-08-07,92.62,93.32,91.63,92.55,770000,92.55 +1933-08-04,93.45,93.45,92.03,92.62,500000,92.62 +1933-08-03,94.84,95.86,93.21,94.10,1510000,94.10 +1933-08-02,92.70,95.27,91.97,94.84,1730000,94.84 +1933-08-01,90.77,93.23,89.61,92.70,1780000,92.70 +1933-07-31,94.18,94.18,87.75,90.77,3090000,90.77 +1933-07-28,95.90,95.90,93.75,94.54,1390000,94.54 +1933-07-27,95.05,97.28,94.12,96.03,2460000,96.03 +1933-07-26,92.83,95.50,92.23,95.05,2040000,95.05 +1933-07-25,94.28,96.27,91.77,92.83,3540000,92.83 +1933-07-24,90.63,94.75,90.63,94.28,3420000,94.28 +1933-07-21,96.26,98.69,84.45,88.71,9570000,88.71 +1933-07-20,103.58,105.65,94.76,96.26,8120000,96.26 +1933-07-19,108.67,109.23,102.32,103.58,7450000,103.58 +1933-07-18,108.27,110.53,106.98,108.67,6590000,108.67 +1933-07-17,106.22,110.30,106.22,108.27,6380000,108.27 +1933-07-14,105.51,107.63,103.94,105.04,5230000,105.04 +1933-07-13,104.55,107.77,104.54,105.51,7450000,105.51 +1933-07-12,103.08,105.46,101.87,104.55,5190000,104.55 +1933-07-11,104.08,105.10,101.97,103.08,5240000,103.08 +1933-07-10,105.15,105.87,103.12,104.08,4840000,104.08 +1933-07-07,104.98,107.51,103.23,105.35,6970000,105.35 +1933-07-06,102.73,105.56,101.21,104.98,6540000,104.98 +1933-07-05,103.77,104.70,101.02,102.73,5800000,102.73 +1933-07-03,101.64,104.99,101.64,103.77,6720000,103.77 +1933-06-30,96.99,98.69,95.50,98.14,3630000,98.14 +1933-06-29,97.74,99.23,95.90,96.99,4590000,96.99 +1933-06-28,98.74,100.48,96.69,97.74,5510000,97.74 +1933-06-27,98.49,100.27,98.01,98.74,5640000,98.74 +1933-06-26,95.93,99.10,95.93,98.49,4530000,98.49 +1933-06-23,92.93,95.59,91.93,95.53,3310000,95.53 +1933-06-22,95.91,97.79,91.69,92.93,4370000,92.93 +1933-06-21,95.23,97.34,94.41,95.91,3890000,95.91 +1933-06-20,95.99,98.34,94.57,95.23,5540000,95.23 +1933-06-19,92.86,96.36,92.86,95.99,5480000,95.99 +1933-06-16,88.87,91.11,86.48,89.22,5710000,89.22 +1933-06-15,93.94,93.94,88.17,88.87,4890000,88.87 +1933-06-14,94.79,96.29,91.41,94.06,5550000,94.06 +1933-06-13,96.75,97.92,94.21,94.79,6300000,94.79 +1933-06-12,94.42,97.10,94.16,96.75,5810000,96.75 +1933-06-09,93.52,95.03,91.64,94.29,5310000,94.29 +1933-06-08,92.98,95.15,91.59,93.52,6360000,93.52 +1933-06-07,91.90,94.38,91.04,92.98,6640000,92.98 +1933-06-06,91.89,93.83,90.66,91.90,6220000,91.90 +1933-06-05,90.02,92.37,89.14,91.89,5010000,91.89 +1933-06-02,89.10,92.66,88.97,92.21,6880000,92.21 +1933-06-01,88.11,90.57,87.37,89.10,4750000,89.10 +1933-05-31,90.02,91.05,87.72,88.11,6080000,88.11 +1933-05-29,89.61,91.33,87.87,90.02,6950000,90.02 +1933-05-26,83.73,86.98,83.47,86.42,4350000,86.42 +1933-05-25,84.29,85.48,82.70,83.73,4010000,83.73 +1933-05-24,83.53,85.47,83.53,84.29,4710000,84.29 +1933-05-23,80.56,83.49,80.56,83.06,3140000,83.06 +1933-05-22,80.21,81.08,78.61,79.94,2220000,79.94 +1933-05-19,82.57,83.20,80.65,81.75,3280000,81.75 +1933-05-18,82.64,84.13,80.70,82.57,4110000,82.57 +1933-05-17,81.33,84.18,81.33,82.64,4790000,82.64 +1933-05-16,79.70,82.25,79.54,81.29,3290000,81.29 +1933-05-15,80.85,81.23,79.06,79.70,3150000,79.70 +1933-05-12,82.48,82.75,80.13,82.14,4560000,82.14 +1933-05-11,81.18,83.61,81.18,82.48,6160000,82.48 +1933-05-10,77.95,81.01,77.95,80.78,3820000,80.78 +1933-05-09,76.63,78.03,75.61,77.23,2230000,77.23 +1933-05-08,77.61,79.67,76.01,76.63,3200000,76.63 +1933-05-05,79.16,81.27,78.81,79.78,5000000,79.78 +1933-05-04,77.37,79.80,76.19,79.16,4590000,79.16 +1933-05-03,77.29,78.92,75.69,77.37,4640000,77.37 +1933-05-02,77.79,78.37,75.66,77.29,3900000,77.29 +1933-05-01,77.66,79.98,76.91,77.79,6050000,77.79 +1933-04-28,71.71,73.34,69.78,73.10,2160000,73.10 +1933-04-27,72.64,73.06,70.72,71.71,1880000,71.71 +1933-04-26,72.45,73.58,70.86,72.64,2920000,72.64 +1933-04-25,73.69,73.70,70.77,72.45,3500000,72.45 +1933-04-24,72.32,74.84,72.32,73.69,4810000,73.69 +1933-04-21,72.27,72.80,68.64,69.78,5220000,69.78 +1933-04-20,69.78,75.20,69.78,72.27,7130000,72.27 +1933-04-19,63.56,68.70,63.56,68.31,5090000,68.31 +1933-04-18,61.59,63.31,60.74,62.65,1440000,62.65 +1933-04-17,62.75,62.75,60.93,61.59,1010000,61.59 +1933-04-13,60.35,63.31,60.35,62.69,1660000,62.69 +1933-04-12,61.08,61.08,59.68,60.26,750000,60.26 +1933-04-11,62.11,62.65,60.71,61.15,1440000,61.15 +1933-04-10,59.98,62.23,59.98,62.11,1760000,62.11 +1933-04-07,58.80,60.06,58.18,58.78,950000,58.78 +1933-04-06,57.73,59.56,57.73,58.80,1230000,58.80 +1933-04-05,56.53,58.69,56.53,57.50,1150000,57.50 +1933-04-04,55.69,56.61,55.00,56.09,720000,56.09 +1933-04-03,55.66,56.62,55.26,55.69,600000,55.69 +1933-03-31,56.49,57.05,54.94,55.40,880000,55.40 +1933-03-30,56.81,57.17,56.10,56.49,620000,56.49 +1933-03-29,57.90,57.90,56.57,56.81,640000,56.81 +1933-03-28,56.53,58.02,56.12,57.92,600000,57.92 +1933-03-27,57.62,57.62,56.31,56.53,500000,56.53 +1933-03-24,58.06,58.41,56.90,57.93,640000,57.93 +1933-03-23,57.69,59.91,57.69,58.06,980000,58.06 +1933-03-22,57.58,58.48,56.35,56.86,990000,56.86 +1933-03-21,59.85,59.85,57.23,57.58,1210000,57.58 +1933-03-20,60.56,61.33,59.72,59.90,780000,59.90 +1933-03-17,62.54,62.54,60.32,60.73,1730000,60.73 +1933-03-16,62.10,64.56,62.05,62.95,3300000,62.95 +1933-03-15,57.11,62.55,57.11,62.10,3070000,62.10 +1933-03-03,52.54,55.44,51.54,53.84,1410000,53.84 +1933-03-02,52.54,53.01,50.25,52.54,1000000,52.54 +1933-03-01,51.39,52.97,50.81,52.54,790000,52.54 +1933-02-28,50.16,52.12,49.83,51.39,910000,51.39 +1933-02-27,50.93,52.13,49.68,50.16,1250000,50.16 +1933-02-24,51.94,54.13,51.13,53.84,1070000,53.84 +1933-02-23,53.60,53.60,51.65,51.94,1330000,51.94 +1933-02-21,54.26,54.84,53.52,53.99,690000,53.99 +1933-02-20,55.61,55.61,53.82,54.26,860000,54.26 +1933-02-17,55.49,56.78,55.15,56.37,650000,56.37 +1933-02-16,56.63,56.63,54.69,55.49,1080000,55.49 +1933-02-15,56.57,57.59,56.08,56.71,750000,56.71 +1933-02-14,58.19,58.19,56.04,56.57,1540000,56.57 +1933-02-10,60.06,60.06,58.81,59.11,720000,59.11 +1933-02-09,59.17,60.85,59.17,60.09,1080000,60.09 +1933-02-08,58.38,59.21,57.85,58.87,720000,58.87 +1933-02-07,58.07,58.67,57.50,58.38,590000,58.38 +1933-02-06,57.55,58.27,56.65,58.07,670000,58.07 +1933-02-03,58.03,58.46,57.11,58.11,910000,58.11 +1933-02-02,58.90,58.90,57.45,58.03,1250000,58.03 +1933-02-01,60.89,60.89,58.63,59.08,1190000,59.08 +1933-01-31,60.77,61.34,60.48,60.90,660000,60.90 +1933-01-30,60.71,61.05,60.09,60.77,480000,60.77 +1933-01-27,61.73,61.98,60.03,61.43,970000,61.43 +1933-01-26,62.33,62.79,61.61,61.73,810000,61.73 +1933-01-25,61.30,62.66,60.84,62.33,750000,62.33 +1933-01-24,61.46,61.99,60.67,61.30,490000,61.30 +1933-01-23,61.79,62.10,60.55,61.46,660000,61.46 +1933-01-20,61.02,62.68,60.90,61.63,710000,61.63 +1933-01-19,60.37,61.99,60.37,61.02,620000,61.02 +1933-01-18,61.75,62.03,60.07,60.36,690000,60.36 +1933-01-17,61.62,62.09,60.93,61.75,660000,61.75 +1933-01-16,63.09,63.87,61.38,61.62,870000,61.62 +1933-01-13,63.09,63.94,62.12,63.18,830000,63.18 +1933-01-12,63.81,64.80,62.84,63.09,920000,63.09 +1933-01-11,64.35,65.28,63.62,63.81,1620000,63.81 +1933-01-10,62.31,64.57,61.83,64.35,1150000,64.35 +1933-01-09,62.96,63.64,61.90,62.31,930000,62.31 +1933-01-06,62.25,63.85,62.07,62.96,1140000,62.96 +1933-01-05,62.35,63.39,61.58,62.25,1140000,62.25 +1933-01-04,59.54,62.62,59.54,62.35,1090000,62.35 +1933-01-03,59.93,60.17,58.87,59.29,490000,59.29 +1932-12-30,59.12,60.84,58.82,60.26,1050000,60.26 +1932-12-29,57.85,59.38,57.39,59.12,1610000,59.12 +1932-12-28,57.60,59.49,57.10,57.85,1600000,57.85 +1932-12-27,57.98,58.57,56.95,57.60,800000,57.60 +1932-12-23,56.55,57.30,56.07,56.80,930000,56.80 +1932-12-22,58.97,59.29,56.24,56.55,1300000,56.55 +1932-12-21,58.78,59.65,58.27,58.97,730000,58.97 +1932-12-20,60.08,60.19,58.28,58.78,1000000,58.78 +1932-12-19,60.11,61.51,59.82,60.08,920000,60.08 +1932-12-16,61.16,61.40,59.75,60.52,920000,60.52 +1932-12-15,61.93,62.89,60.98,61.16,1180000,61.16 +1932-12-14,60.35,62.11,59.19,61.93,1020000,61.93 +1932-12-13,61.38,61.38,59.98,60.35,730000,60.35 +1932-12-12,61.25,62.50,60.68,61.48,920000,61.48 +1932-12-09,60.05,61.90,59.28,61.58,1180000,61.58 +1932-12-08,59.77,60.51,58.97,60.05,710000,60.05 +1932-12-07,59.58,60.97,59.12,59.77,1190000,59.77 +1932-12-06,56.95,59.96,56.95,59.58,1110000,59.58 +1932-12-05,55.83,58.06,55.58,56.53,730000,56.53 +1932-12-02,57.50,57.50,55.70,55.91,690000,55.91 +1932-12-01,56.35,58.40,56.02,58.02,760000,58.02 +1932-11-30,58.77,59.33,55.94,56.35,1090000,56.35 +1932-11-29,59.17,59.74,58.31,58.77,530000,58.77 +1932-11-28,58.89,59.71,58.10,59.17,540000,59.17 +1932-11-25,59.47,59.54,57.47,58.78,1000000,58.78 +1932-11-23,62.60,62.60,59.10,59.47,1200000,59.47 +1932-11-22,63.65,64.40,62.86,63.16,540000,63.16 +1932-11-21,64.14,64.68,63.23,63.65,610000,63.65 +1932-11-18,62.99,64.73,62.66,62.96,730000,62.96 +1932-11-17,63.24,63.83,62.18,62.99,710000,62.99 +1932-11-16,65.26,65.26,62.56,63.24,950000,63.24 +1932-11-15,65.57,66.17,63.54,65.26,1050000,65.26 +1932-11-14,67.88,67.88,64.87,65.57,1310000,65.57 +1932-11-11,65.54,68.27,65.41,68.03,2630000,68.03 +1932-11-10,61.67,65.61,61.44,65.54,1570000,65.54 +1932-11-09,64.58,65.42,61.02,61.67,1270000,61.67 +1932-11-07,63.22,65.43,63.22,64.58,1610000,64.58 +1932-11-04,58.99,62.07,58.99,61.53,970000,61.53 +1932-11-03,58.53,59.06,57.21,58.28,1020000,58.28 +1932-11-02,60.22,61.13,57.96,58.53,1100000,58.53 +1932-11-01,61.57,61.57,59.86,60.22,520000,60.22 +1932-10-31,62.09,62.19,61.06,61.90,390000,61.90 +1932-10-28,61.86,63.51,61.81,63.09,690000,63.09 +1932-10-27,61.36,62.83,60.77,61.86,720000,61.86 +1932-10-26,60.32,61.73,59.03,61.36,860000,61.36 +1932-10-25,61.03,61.69,59.70,60.32,600000,60.32 +1932-10-24,60.85,61.58,60.07,61.03,550000,61.03 +1932-10-21,63.64,63.64,60.71,61.01,1240000,61.01 +1932-10-20,65.74,66.13,63.92,64.40,1060000,64.40 +1932-10-19,63.49,66.06,63.35,65.74,1300000,65.74 +1932-10-18,62.69,64.82,62.06,63.49,1020000,63.49 +1932-10-17,64.07,64.07,62.21,62.69,770000,62.69 +1932-10-14,60.27,65.45,60.27,63.84,2030000,63.84 +1932-10-13,61.66,62.54,58.84,59.76,1230000,59.76 +1932-10-11,59.07,62.52,59.07,61.66,1750000,61.66 +1932-10-10,61.17,62.57,57.67,58.47,2280000,58.47 +1932-10-07,66.28,66.89,62.16,62.67,2300000,62.67 +1932-10-06,66.07,67.08,64.67,66.28,1940000,66.28 +1932-10-05,70.92,70.92,65.90,66.07,2950000,66.07 +1932-10-04,71.21,72.63,70.45,71.16,1240000,71.16 +1932-10-03,72.09,72.32,69.88,71.21,1000000,71.21 +1932-09-30,71.53,72.00,69.75,71.56,1160000,71.56 +1932-09-29,73.52,74.36,71.24,71.53,1340000,71.53 +1932-09-28,71.49,74.07,71.40,73.52,1380000,73.52 +1932-09-27,71.06,73.42,69.98,71.49,1400000,71.49 +1932-09-26,74.83,75.67,70.41,71.06,2080000,71.06 +1932-09-23,72.71,75.16,72.42,73.92,2200000,73.92 +1932-09-22,75.16,76.01,72.14,72.71,3690000,72.71 +1932-09-21,69.46,75.53,69.46,75.16,4350000,75.16 +1932-09-20,65.06,67.65,64.68,67.49,1250000,67.49 +1932-09-19,66.44,67.40,64.82,65.06,1260000,65.06 +1932-09-16,67.94,69.84,66.11,67.10,1910000,67.10 +1932-09-15,65.88,68.58,64.27,67.94,3140000,67.94 +1932-09-14,69.85,72.41,65.54,65.88,3250000,65.88 +1932-09-13,71.54,71.54,66.38,69.85,5100000,69.85 +1932-09-12,76.54,76.68,70.81,72.33,4050000,72.33 +1932-09-09,77.49,79.91,75.69,76.19,4040000,76.19 +1932-09-08,79.93,81.39,76.92,77.49,5370000,77.49 +1932-09-07,77.28,80.28,76.78,79.93,4150000,79.93 +1932-09-06,78.33,80.36,76.66,77.28,4360000,77.28 +1932-09-02,74.00,77.12,74.00,76.77,3490000,76.77 +1932-09-01,73.16,74.55,71.92,73.67,2420000,73.67 +1932-08-31,74.30,74.44,71.11,73.16,3000000,73.16 +1932-08-30,75.22,76.73,73.59,74.30,3300000,74.30 +1932-08-29,75.61,77.01,74.25,75.22,3930000,75.22 +1932-08-26,73.31,75.41,71.28,74.43,3120000,74.43 +1932-08-25,73.55,75.88,72.54,73.31,4170000,73.31 +1932-08-24,72.13,74.01,70.82,73.55,3690000,73.55 +1932-08-23,70.87,73.80,70.69,72.13,4570000,72.13 +1932-08-22,67.50,71.11,67.50,70.87,3180000,70.87 +1932-08-19,67.93,69.47,66.10,66.84,2170000,66.84 +1932-08-18,67.50,68.52,65.65,67.93,1790000,67.93 +1932-08-17,68.91,70.56,65.62,67.50,2870000,67.50 +1932-08-16,67.16,70.54,67.16,68.91,3610000,68.91 +1932-08-15,63.19,66.72,62.93,66.51,1910000,66.51 +1932-08-12,68.90,69.06,62.45,63.11,3710000,63.11 +1932-08-11,69.39,71.62,66.95,68.90,4400000,68.90 +1932-08-10,67.08,71.34,65.65,69.39,4430000,69.39 +1932-08-09,67.71,69.53,65.36,67.08,3840000,67.08 +1932-08-08,66.56,71.49,64.86,67.71,5460000,67.71 +1932-08-05,59.73,63.42,59.73,62.60,2680000,62.60 +1932-08-04,58.22,62.13,57.90,59.63,3520000,59.63 +1932-08-03,53.16,58.69,52.99,58.22,2400000,58.22 +1932-08-02,54.94,55.57,52.40,53.16,1440000,53.16 +1932-08-01,54.26,56.92,53.59,54.94,2110000,54.94 +1932-07-29,52.61,54.68,51.52,53.89,2100000,53.89 +1932-07-28,51.34,53.84,50.67,52.61,2730000,52.61 +1932-07-27,49.04,51.71,48.18,51.34,1700000,51.34 +1932-07-26,49.78,50.41,48.49,49.04,1500000,49.04 +1932-07-25,48.01,50.23,48.01,49.78,1550000,49.78 +1932-07-22,46.50,48.31,46.35,47.69,1450000,47.69 +1932-07-21,45.43,46.86,45.12,46.50,930000,46.50 +1932-07-20,44.22,45.56,44.22,45.43,630000,45.43 +1932-07-19,44.07,44.51,43.53,43.79,470000,43.79 +1932-07-18,45.29,45.61,43.83,44.07,610000,44.07 +1932-07-15,44.34,45.82,43.74,45.47,810000,45.47 +1932-07-14,44.88,45.85,43.91,44.34,1000000,44.34 +1932-07-13,42.68,45.05,42.35,44.88,980000,44.88 +1932-07-12,42.99,43.65,42.36,42.68,700000,42.68 +1932-07-11,41.63,43.03,40.92,42.99,600000,42.99 +1932-07-08,41.81,42.61,40.56,41.22,720000,41.22 +1932-07-07,44.08,44.26,41.63,41.81,780000,41.81 +1932-07-06,43.47,44.50,42.31,44.08,730000,44.08 +1932-07-05,44.39,44.43,42.53,43.47,610000,43.47 +1932-07-01,42.84,44.63,42.64,44.39,610000,44.39 +1932-06-30,43.66,44.44,42.41,42.84,630000,42.84 +1932-06-29,43.18,44.21,42.54,43.66,630000,43.66 +1932-06-28,42.93,44.30,42.31,43.18,830000,43.18 +1932-06-27,44.76,44.82,42.52,42.93,770000,42.93 +1932-06-24,46.83,47.57,44.55,44.84,770000,44.84 +1932-06-23,46.27,47.47,46.15,46.83,470000,46.83 +1932-06-22,46.58,46.66,45.43,46.27,610000,46.27 +1932-06-21,47.80,48.42,46.47,46.58,500000,46.58 +1932-06-20,47.55,48.66,47.41,47.80,390000,47.80 +1932-06-17,50.34,50.36,47.44,47.56,790000,47.56 +1932-06-16,50.62,51.43,49.73,50.34,850000,50.34 +1932-06-15,49.37,51.43,49.37,50.62,1160000,50.62 +1932-06-14,48.11,49.70,47.59,49.00,760000,49.00 +1932-06-13,48.26,48.97,47.12,48.11,570000,48.11 +1932-06-10,45.32,49.52,45.22,48.94,1270000,48.94 +1932-06-09,45.20,47.55,44.45,45.32,1190000,45.32 +1932-06-08,47.21,47.21,45.01,45.20,990000,45.20 +1932-06-07,49.32,49.74,47.18,47.47,830000,47.47 +1932-06-06,50.63,50.63,48.54,49.32,960000,49.32 +1932-06-03,47.35,50.29,47.35,48.40,1890000,48.40 +1932-06-02,44.93,47.74,43.49,47.25,1870000,47.25 +1932-06-01,44.74,48.60,44.13,44.93,1840000,44.93 +1932-05-31,46.93,46.93,44.27,44.74,1480000,44.74 +1932-05-27,49.94,49.94,47.17,47.47,900000,47.47 +1932-05-26,49.10,50.72,47.02,49.99,1850000,49.99 +1932-05-25,50.79,50.79,48.65,49.10,1300000,49.10 +1932-05-24,52.98,53.20,50.59,50.85,980000,50.85 +1932-05-23,53.04,54.34,52.61,52.98,560000,52.98 +1932-05-20,53.14,55.50,52.97,53.31,770000,53.31 +1932-05-19,52.81,53.88,51.79,53.14,680000,53.14 +1932-05-18,54.04,54.68,52.28,52.81,680000,52.81 +1932-05-17,53.96,55.65,52.16,54.04,930000,54.04 +1932-05-16,52.48,54.63,50.21,53.96,1310000,53.96 +1932-05-13,55.33,55.33,53.23,53.46,870000,53.46 +1932-05-12,57.71,57.71,54.91,55.62,920000,55.62 +1932-05-11,57.68,59.52,57.47,57.83,690000,57.83 +1932-05-10,57.04,58.94,56.68,57.68,740000,57.68 +1932-05-09,58.04,58.74,56.29,57.04,640000,57.04 +1932-05-06,54.58,59.76,54.58,59.01,1630000,59.01 +1932-05-05,54.88,55.74,52.73,54.10,1000000,54.10 +1932-05-04,54.15,55.21,52.33,54.88,1320000,54.88 +1932-05-03,55.37,56.12,53.80,54.15,900000,54.15 +1932-05-02,56.11,56.28,54.20,55.37,780000,55.37 +1932-04-29,57.81,57.81,55.37,55.93,1160000,55.93 +1932-04-28,61.28,61.36,57.98,58.24,930000,58.24 +1932-04-27,59.71,62.15,59.40,61.28,1120000,61.28 +1932-04-26,58.92,61.01,58.51,59.71,790000,59.71 +1932-04-25,59.22,60.51,58.06,58.92,640000,58.92 +1932-04-22,61.39,61.39,58.26,58.88,920000,58.88 +1932-04-21,59.46,62.71,59.04,62.01,1110000,62.01 +1932-04-20,59.75,60.81,58.70,59.46,990000,59.46 +1932-04-19,60.85,61.45,58.91,59.75,1030000,59.75 +1932-04-18,63.21,63.21,60.57,60.85,850000,60.85 +1932-04-15,63.27,66.51,62.21,64.49,1540000,64.49 +1932-04-14,61.18,63.84,59.10,63.27,1720000,63.27 +1932-04-13,62.33,63.74,60.66,61.18,1100000,61.18 +1932-04-12,62.04,64.13,60.62,62.33,1550000,62.33 +1932-04-11,64.48,64.54,60.76,62.04,1700000,62.04 +1932-04-08,65.73,65.73,61.98,62.90,2130000,62.90 +1932-04-07,66.46,68.29,65.23,66.20,1800000,66.20 +1932-04-06,68.07,68.93,65.85,66.46,3000000,66.46 +1932-04-05,70.67,70.67,67.29,68.07,1480000,68.07 +1932-04-04,71.30,71.84,68.32,71.19,1610000,71.19 +1932-04-01,73.28,74.38,71.21,72.18,1530000,72.18 +1932-03-31,77.15,77.80,72.49,73.28,1480000,73.28 +1932-03-30,75.50,77.64,75.08,77.15,1010000,77.15 +1932-03-29,75.09,76.98,74.68,75.50,1110000,75.50 +1932-03-28,75.69,75.79,73.55,75.09,1350000,75.09 +1932-03-24,78.64,79.58,77.49,77.99,840000,77.99 +1932-03-23,79.55,80.08,78.23,78.64,840000,78.64 +1932-03-22,79.90,80.59,77.79,79.55,1080000,79.55 +1932-03-21,78.09,80.19,77.32,79.90,890000,79.90 +1932-03-18,80.59,80.59,77.63,78.82,1410000,78.82 +1932-03-17,79.11,81.55,77.57,80.87,1770000,80.87 +1932-03-16,81.02,81.84,78.76,79.11,1460000,79.11 +1932-03-15,81.12,82.44,79.66,81.02,1470000,81.02 +1932-03-14,84.30,84.30,80.44,81.12,2030000,81.12 +1932-03-11,85.70,85.70,83.26,83.61,1260000,83.61 +1932-03-10,86.94,87.47,85.44,86.25,1050000,86.25 +1932-03-09,88.78,89.87,86.57,86.94,1330000,86.94 +1932-03-08,87.16,89.87,86.90,88.78,1640000,88.78 +1932-03-07,88.49,89.78,86.80,87.16,1580000,87.16 +1932-03-04,86.13,87.87,84.54,86.11,1510000,86.11 +1932-03-03,86.28,88.35,85.47,86.13,1720000,86.13 +1932-03-02,82.10,86.50,82.10,86.28,1760000,86.28 +1932-03-01,81.44,82.20,80.50,81.87,730000,81.87 +1932-02-29,82.02,83.89,80.84,81.44,880000,81.44 +1932-02-26,82.05,83.53,81.37,82.09,890000,82.09 +1932-02-25,82.73,82.92,80.13,82.05,1040000,82.05 +1932-02-24,80.26,83.32,79.57,82.73,1080000,82.73 +1932-02-23,83.59,84.03,79.85,80.26,1280000,80.26 +1932-02-19,85.26,89.84,85.26,85.98,2430000,85.98 +1932-02-18,82.24,85.74,81.45,85.13,1680000,85.13 +1932-02-17,85.75,87.18,81.67,82.24,2190000,82.24 +1932-02-16,82.18,86.51,80.49,85.75,2500000,85.75 +1932-02-15,85.36,85.36,80.88,82.18,1980000,82.18 +1932-02-11,74.27,79.62,74.27,78.60,2560000,78.60 +1932-02-10,72.38,73.98,70.64,71.80,1300000,71.80 +1932-02-09,73.45,74.50,71.85,72.38,1160000,72.38 +1932-02-08,74.45,75.15,72.31,73.45,1150000,73.45 +1932-02-05,77.50,77.50,74.71,75.00,1080000,75.00 +1932-02-04,78.26,78.88,77.15,77.66,680000,77.66 +1932-02-03,77.82,78.96,76.77,78.26,810000,78.26 +1932-02-02,79.63,80.74,77.61,77.82,1120000,77.82 +1932-02-01,76.32,80.62,76.32,79.63,1520000,79.63 +1932-01-29,76.73,77.14,74.19,76.55,1530000,76.55 +1932-01-28,77.82,78.03,75.85,76.73,1120000,76.73 +1932-01-27,79.20,79.20,76.66,77.82,1280000,77.82 +1932-01-26,78.92,80.79,78.92,79.76,760000,79.76 +1932-01-25,77.98,79.94,77.42,78.66,830000,78.66 +1932-01-22,83.42,83.51,78.56,78.81,1560000,78.81 +1932-01-21,83.57,85.03,82.70,83.42,1240000,83.42 +1932-01-20,81.10,83.79,80.45,83.57,1210000,83.57 +1932-01-19,81.45,82.79,80.35,81.10,1090000,81.10 +1932-01-18,84.44,85.32,81.29,81.45,1380000,81.45 +1932-01-15,85.35,86.59,83.24,85.88,1640000,85.88 +1932-01-14,84.70,87.78,84.70,85.35,2650000,85.35 +1932-01-13,79.96,84.67,79.96,84.36,2070000,84.36 +1932-01-12,80.44,82.08,78.84,79.39,1360000,79.39 +1932-01-11,79.98,82.20,77.23,80.44,1800000,80.44 +1932-01-08,78.03,82.11,76.74,81.80,1970000,81.80 +1932-01-07,76.31,80.17,76.11,78.03,2180000,78.03 +1932-01-06,73.02,77.16,73.02,76.31,1840000,76.31 +1932-01-05,71.59,72.78,69.85,71.24,1420000,71.24 +1932-01-04,74.06,74.06,70.91,71.59,1510000,71.59 +1931-12-31,77.14,79.92,76.92,77.90,1510000,77.90 +1931-12-30,75.84,77.86,75.12,77.14,2110000,77.14 +1931-12-29,73.84,77.81,73.54,75.84,2440000,75.84 +1931-12-28,75.84,76.27,72.41,73.84,2000000,73.84 +1931-12-24,76.02,77.45,75.14,75.84,1110000,75.84 +1931-12-23,79.55,80.17,75.42,76.02,1560000,76.02 +1931-12-22,78.08,80.32,77.26,79.55,1400000,79.55 +1931-12-21,80.75,81.76,77.55,78.08,1930000,78.08 +1931-12-18,73.79,81.10,72.62,80.69,3620000,80.69 +1931-12-17,76.33,76.33,71.79,73.79,2940000,73.79 +1931-12-16,78.60,80.00,75.93,76.49,1960000,76.49 +1931-12-15,77.22,79.44,75.50,78.60,2630000,78.60 +1931-12-14,78.93,82.57,76.15,77.22,2890000,77.22 +1931-12-11,82.46,83.11,79.26,79.63,2350000,79.63 +1931-12-10,84.14,84.15,80.75,82.46,2660000,82.46 +1931-12-09,86.50,86.52,82.49,84.14,2260000,84.14 +1931-12-08,90.11,90.98,85.81,86.50,1600000,86.50 +1931-12-07,90.14,92.60,89.16,90.11,1460000,90.11 +1931-12-04,89.70,91.97,85.75,86.76,1920000,86.76 +1931-12-03,87.90,90.59,86.28,89.70,1800000,89.70 +1931-12-02,91.17,93.06,87.39,87.90,1890000,87.90 +1931-12-01,93.38,93.38,87.78,91.17,2030000,91.17 +1931-11-30,90.02,95.77,89.35,93.87,2000000,93.87 +1931-11-27,93.79,93.79,90.65,91.55,1820000,91.55 +1931-11-25,98.54,98.54,93.67,94.15,1500000,94.15 +1931-11-24,96.60,100.10,96.53,98.61,1250000,98.61 +1931-11-23,97.42,98.83,95.00,96.60,1350000,96.60 +1931-11-20,100.99,100.99,96.45,97.96,2040000,97.96 +1931-11-19,101.69,103.81,99.83,101.25,1510000,101.25 +1931-11-18,105.86,105.86,101.21,101.69,1670000,101.69 +1931-11-17,104.76,108.02,103.76,106.16,1460000,106.16 +1931-11-16,106.35,107.86,103.43,104.76,1510000,104.76 +1931-11-13,111.95,112.39,106.71,107.33,1790000,107.33 +1931-11-12,112.01,114.61,110.86,111.95,1440000,111.95 +1931-11-11,113.98,114.63,110.38,112.01,1490000,112.01 +1931-11-10,116.58,116.58,112.24,113.98,1750000,113.98 +1931-11-09,115.60,119.15,114.47,116.79,3050000,116.79 +1931-11-06,108.58,113.28,106.43,112.72,2280000,112.72 +1931-11-05,108.33,110.68,107.45,108.58,1520000,108.58 +1931-11-04,104.50,108.85,103.19,108.33,1480000,108.33 +1931-11-02,105.43,107.76,103.94,104.50,1460000,104.50 +1931-10-30,100.75,104.51,100.75,103.97,1560000,103.97 +1931-10-29,100.52,101.66,98.19,100.66,1340000,100.66 +1931-10-28,104.25,104.50,99.20,100.52,1770000,100.52 +1931-10-27,106.31,106.31,102.43,104.25,1390000,104.25 +1931-10-26,109.36,109.36,105.69,106.37,1190000,106.37 +1931-10-23,105.02,109.17,104.58,108.88,1330000,108.88 +1931-10-22,108.39,108.58,104.09,105.02,1390000,105.02 +1931-10-21,108.65,109.69,103.86,108.39,2240000,108.39 +1931-10-20,104.69,109.59,104.69,108.65,2510000,108.65 +1931-10-19,102.28,104.19,100.87,103.45,860000,103.45 +1931-10-16,98.71,103.19,98.24,102.49,1420000,102.49 +1931-10-15,97.45,102.67,97.45,98.71,1380000,98.71 +1931-10-14,100.24,102.50,96.01,97.27,1640000,97.27 +1931-10-13,105.37,105.37,99.74,100.24,1250000,100.24 +1931-10-09,105.79,108.98,102.79,104.46,3220000,104.46 +1931-10-08,98.19,106.43,98.19,105.79,2870000,105.79 +1931-10-07,99.34,103.84,96.79,97.32,2820000,97.32 +1931-10-06,87.51,100.49,87.51,99.34,4310000,99.34 +1931-10-05,92.14,92.14,85.51,86.48,3190000,86.48 +1931-10-02,95.66,100.03,93.64,96.88,2530000,96.88 +1931-10-01,96.61,98.51,92.88,95.66,3640000,95.66 +1931-09-30,99.80,102.39,95.76,96.61,3210000,96.61 +1931-09-29,104.39,104.64,99.02,99.80,2900000,99.80 +1931-09-28,107.36,108.80,103.58,104.39,1490000,104.39 +1931-09-25,107.79,112.64,104.73,109.86,2850000,109.86 +1931-09-24,115.99,116.95,106.64,107.79,3050000,107.79 +1931-09-23,110.77,117.75,110.77,115.99,2930000,115.99 +1931-09-22,110.83,112.65,108.12,109.40,2050000,109.40 +1931-09-21,111.74,114.59,104.79,110.83,4400000,110.83 +1931-09-18,121.27,121.27,114.47,115.08,2900000,115.08 +1931-09-17,119.26,123.28,117.29,121.76,2420000,121.76 +1931-09-16,120.59,123.10,118.41,119.26,1980000,119.26 +1931-09-15,121.30,123.03,118.70,120.59,2170000,120.59 +1931-09-14,123.00,123.00,119.12,121.30,2450000,121.30 +1931-09-11,127.30,129.47,124.50,128.23,1970000,128.23 +1931-09-10,128.43,130.45,126.04,127.30,1510000,127.30 +1931-09-09,129.19,130.67,126.36,128.43,2020000,128.43 +1931-09-08,131.57,131.57,127.91,129.19,2040000,129.19 +1931-09-04,133.14,133.82,131.44,132.62,1200000,132.62 +1931-09-03,136.54,136.54,132.21,133.14,2130000,133.14 +1931-09-02,140.08,140.08,136.62,137.31,960000,137.31 +1931-09-01,139.41,140.54,138.51,140.13,540000,140.13 +1931-08-31,142.07,142.07,138.96,139.41,740000,139.41 +1931-08-28,138.82,142.11,138.82,140.78,930000,140.78 +1931-08-27,139.93,140.75,137.88,138.66,830000,138.66 +1931-08-26,136.65,140.32,135.98,139.93,840000,139.93 +1931-08-25,137.62,139.22,135.69,136.65,860000,136.65 +1931-08-24,137.76,137.99,135.62,137.62,820000,137.62 +1931-08-21,141.93,142.49,137.35,138.60,1310000,138.60 +1931-08-20,141.72,143.93,140.96,141.93,1070000,141.93 +1931-08-19,141.26,142.61,140.04,141.72,1080000,141.72 +1931-08-18,140.98,144.43,139.36,141.26,1710000,141.26 +1931-08-17,144.27,144.27,140.34,140.98,1320000,140.98 +1931-08-14,140.82,145.05,140.82,144.15,1830000,144.15 +1931-08-13,137.63,141.30,137.03,140.22,1380000,140.22 +1931-08-12,140.16,140.99,137.03,137.63,1260000,137.63 +1931-08-11,134.26,141.42,133.80,140.16,1600000,140.16 +1931-08-10,134.85,134.85,132.79,134.26,710000,134.26 +1931-08-07,133.77,135.72,132.96,135.13,740000,135.13 +1931-08-06,134.10,134.93,132.55,133.77,910000,133.77 +1931-08-05,135.83,135.83,133.59,134.10,820000,134.10 +1931-08-04,137.50,137.77,134.85,136.50,720000,136.50 +1931-08-03,136.65,139.35,136.36,137.50,880000,137.50 +1931-07-31,136.93,138.12,133.70,135.39,1220000,135.39 +1931-07-30,136.19,138.05,134.33,136.93,1350000,136.93 +1931-07-29,139.26,139.26,134.99,136.19,1580000,136.19 +1931-07-28,139.65,142.12,139.65,141.53,650000,141.53 +1931-07-27,138.24,140.16,137.72,139.64,570000,139.64 +1931-07-24,142.41,142.41,138.20,139.01,1070000,139.01 +1931-07-23,142.52,143.77,140.81,142.63,790000,142.63 +1931-07-22,145.88,145.88,142.11,142.52,990000,142.52 +1931-07-21,144.48,147.69,144.21,146.70,1150000,146.70 +1931-07-20,142.75,145.00,142.75,144.48,710000,144.48 +1931-07-17,141.99,144.84,141.44,142.61,1270000,142.61 +1931-07-16,137.86,142.30,137.30,141.99,1520000,141.99 +1931-07-15,140.13,140.13,134.39,137.86,2610000,137.86 +1931-07-14,142.43,143.19,139.67,140.85,1110000,140.85 +1931-07-13,143.44,143.44,139.59,142.43,1280000,142.43 +1931-07-10,144.91,148.50,143.46,146.97,1290000,146.97 +1931-07-09,143.83,145.97,142.24,144.91,1510000,144.91 +1931-07-08,145.92,147.24,141.36,143.83,2360000,143.83 +1931-07-07,152.80,155.39,144.65,145.92,3010000,145.92 +1931-07-06,154.08,154.08,151.20,152.80,1050000,152.80 +1931-07-03,152.21,156.74,152.21,155.26,2050000,155.26 +1931-07-02,152.66,154.84,150.72,151.48,1330000,151.48 +1931-07-01,150.18,153.86,147.44,152.66,1710000,152.66 +1931-06-30,152.67,153.67,148.63,150.18,1950000,150.18 +1931-06-29,156.59,156.59,151.30,152.67,2140000,152.67 +1931-06-26,150.75,155.50,150.75,154.04,3120000,154.04 +1931-06-25,151.60,156.33,148.79,150.36,4320000,150.36 +1931-06-24,144.56,153.42,144.56,151.60,5070000,151.60 +1931-06-23,145.82,146.71,141.41,143.89,2600000,143.89 +1931-06-22,140.08,147.97,140.08,145.82,4590000,145.82 +1931-06-19,130.56,131.86,128.64,130.31,1150000,130.31 +1931-06-18,133.58,133.58,130.09,130.56,1150000,130.56 +1931-06-17,135.47,135.93,132.91,133.68,920000,133.68 +1931-06-16,135.26,136.39,132.93,135.47,1120000,135.47 +1931-06-15,137.03,138.58,134.82,135.26,1270000,135.26 +1931-06-12,136.57,138.16,133.98,136.98,1590000,136.98 +1931-06-11,136.82,138.47,134.24,136.57,1750000,136.57 +1931-06-10,132.97,137.30,132.04,136.82,1800000,136.82 +1931-06-09,135.92,138.88,132.08,132.97,1890000,132.97 +1931-06-08,129.91,136.40,127.96,135.92,1710000,135.92 +1931-06-05,134.73,138.89,131.69,133.33,2850000,133.33 +1931-06-04,130.37,136.10,128.35,134.73,3170000,134.73 +1931-06-03,121.70,130.64,120.79,130.37,3310000,130.37 +1931-06-02,122.77,126.20,119.89,121.70,3320000,121.70 +1931-06-01,128.40,128.40,121.76,122.77,3100000,122.77 +1931-05-29,131.81,134.60,127.30,128.46,2050000,128.46 +1931-05-28,130.76,134.16,128.72,131.81,2090000,131.81 +1931-05-27,133.11,134.59,127.95,130.76,2510000,130.76 +1931-05-26,132.87,136.38,130.75,133.11,2410000,133.11 +1931-05-25,137.43,137.43,132.15,132.87,1880000,132.87 +1931-05-22,139.54,141.37,136.93,139.49,1560000,139.49 +1931-05-21,137.74,141.07,135.19,139.54,2350000,139.54 +1931-05-20,138.86,142.49,136.18,137.74,2320000,137.74 +1931-05-19,139.52,141.93,136.05,138.86,2780000,138.86 +1931-05-18,142.95,143.09,138.54,139.52,2540000,139.52 +1931-05-15,146.64,147.23,141.84,144.49,2380000,144.49 +1931-05-14,149.63,150.61,146.02,146.64,1770000,146.64 +1931-05-13,150.24,152.63,147.55,149.63,1670000,149.63 +1931-05-12,151.56,152.11,148.28,150.24,1310000,150.24 +1931-05-11,151.31,153.37,148.19,151.56,1650000,151.56 +1931-05-08,148.88,155.65,147.43,154.41,2660000,154.41 +1931-05-07,149.73,152.57,146.77,148.88,1690000,148.88 +1931-05-06,148.99,150.54,145.65,149.73,1500000,149.73 +1931-05-05,150.50,153.19,147.88,148.99,1580000,148.99 +1931-05-04,147.49,151.26,146.80,150.50,1360000,150.50 +1931-05-01,151.19,153.82,144.91,145.58,2870000,145.58 +1931-04-30,143.61,152.50,142.12,151.19,3340000,151.19 +1931-04-29,147.59,147.59,141.78,143.61,3180000,143.61 +1931-04-28,149.78,151.09,144.52,147.95,2860000,147.95 +1931-04-27,151.98,152.98,146.31,149.78,3650000,149.78 +1931-04-24,157.43,159.45,153.55,155.76,2600000,155.76 +1931-04-23,156.37,159.53,153.13,157.43,3820000,157.43 +1931-04-22,158.83,160.06,155.61,156.37,2670000,156.37 +1931-04-21,163.41,164.06,157.82,158.83,1990000,158.83 +1931-04-20,162.37,164.42,159.45,163.41,1560000,163.41 +1931-04-17,162.59,164.34,158.50,160.23,2550000,160.23 +1931-04-16,164.66,165.64,161.63,162.59,2330000,162.59 +1931-04-15,167.64,167.64,163.89,164.66,2050000,164.66 +1931-04-14,171.07,173.24,167.11,168.43,1940000,168.43 +1931-04-13,168.03,171.61,167.11,171.07,1630000,171.07 +1931-04-10,168.77,171.06,166.96,168.72,1570000,168.72 +1931-04-09,169.54,171.43,167.66,168.77,1940000,168.77 +1931-04-08,167.03,171.49,166.34,169.54,2050000,169.54 +1931-04-07,169.72,170.44,166.10,167.03,2190000,167.03 +1931-04-06,172.43,174.69,169.44,169.72,1460000,169.72 +1931-04-02,170.82,173.15,168.30,169.89,2510000,169.89 +1931-04-01,172.36,173.72,169.18,170.82,2270000,170.82 +1931-03-31,172.56,176.50,171.09,172.36,2410000,172.36 +1931-03-30,174.06,175.42,170.64,172.56,3190000,172.56 +1931-03-27,181.70,182.02,176.63,177.30,2950000,177.30 +1931-03-26,184.20,185.56,180.85,181.70,2550000,181.70 +1931-03-25,186.00,187.18,183.20,184.20,2100000,184.20 +1931-03-24,184.32,186.86,181.65,186.00,1880000,186.00 +1931-03-23,185.24,186.38,182.05,184.32,1990000,184.32 +1931-03-20,186.56,189.31,185.15,187.72,2740000,187.72 +1931-03-19,184.06,188.42,184.06,186.56,3530000,186.56 +1931-03-18,180.61,184.53,179.62,183.95,2100000,183.95 +1931-03-17,183.61,185.82,179.94,180.61,2800000,180.61 +1931-03-16,180.76,184.11,180.32,183.61,2130000,183.61 +1931-03-13,180.14,180.47,175.89,178.91,2380000,178.91 +1931-03-12,181.91,182.96,178.57,180.14,2490000,180.14 +1931-03-11,183.63,185.01,180.51,181.91,2290000,181.91 +1931-03-10,185.38,188.10,182.49,183.63,3240000,183.63 +1931-03-09,183.85,186.51,181.80,185.38,2850000,185.38 +1931-03-06,184.69,186.62,178.49,179.73,3860000,179.73 +1931-03-05,180.96,185.18,179.41,184.69,2730000,184.69 +1931-03-04,183.76,184.65,179.39,180.96,3090000,180.96 +1931-03-03,184.38,186.56,182.00,183.76,2940000,183.76 +1931-03-02,189.66,191.93,183.53,184.38,3320000,184.38 +1931-02-27,192.23,194.53,188.92,190.34,3730000,190.34 +1931-02-26,190.72,195.95,189.81,192.23,4620000,192.23 +1931-02-25,194.36,195.17,188.75,190.72,4390000,190.72 +1931-02-24,191.32,196.96,190.19,194.36,5350000,194.36 +1931-02-20,184.86,189.55,184.86,188.22,3830000,188.22 +1931-02-19,181.51,185.35,181.51,184.46,2480000,184.46 +1931-02-18,179.55,184.69,179.22,181.10,2840000,181.10 +1931-02-17,182.88,186.29,178.70,179.55,3990000,179.55 +1931-02-16,180.68,184.77,180.68,182.88,3170000,182.88 +1931-02-13,181.88,184.50,179.14,180.99,2750000,180.99 +1931-02-11,181.20,185.89,179.14,181.88,4700000,181.88 +1931-02-10,177.72,184.12,176.83,181.20,4760000,181.20 +1931-02-09,173.24,178.58,173.24,177.72,4130000,177.72 +1931-02-06,169.38,171.84,168.55,169.88,1660000,169.88 +1931-02-05,171.13,171.31,167.16,169.38,1490000,169.38 +1931-02-04,169.71,172.13,168.89,171.13,1520000,171.13 +1931-02-03,168.71,170.77,167.59,169.71,1190000,169.71 +1931-02-02,167.55,169.32,165.60,168.71,1160000,168.71 +1931-01-30,168.87,172.42,168.15,169.34,2210000,169.34 +1931-01-29,166.84,169.82,164.81,168.87,1650000,168.87 +1931-01-28,170.44,170.44,165.69,166.84,1620000,166.84 +1931-01-27,171.19,172.33,168.91,170.82,1600000,170.82 +1931-01-26,169.80,172.12,168.03,171.19,1540000,171.19 +1931-01-23,168.87,172.97,168.87,171.84,2870000,171.84 +1931-01-22,164.76,168.78,164.25,168.46,1860000,168.46 +1931-01-21,165.82,167.18,163.29,164.76,1410000,164.76 +1931-01-20,162.06,166.42,162.06,165.82,1330000,165.82 +1931-01-19,162.89,163.18,160.09,161.45,1120000,161.45 +1931-01-16,162.82,165.55,161.52,164.94,1320000,164.94 +1931-01-15,167.46,167.72,161.95,162.82,1930000,162.82 +1931-01-14,165.95,168.20,164.90,167.46,1280000,167.46 +1931-01-13,167.99,168.42,164.76,165.95,1710000,165.95 +1931-01-12,171.71,172.12,167.23,167.99,1500000,167.99 +1931-01-09,173.04,175.66,169.68,170.18,2800000,170.18 +1931-01-08,171.86,173.62,170.02,173.04,1710000,173.04 +1931-01-07,172.66,175.32,171.07,171.86,2140000,171.86 +1931-01-06,170.71,173.48,168.43,172.66,1910000,172.66 +1931-01-05,172.12,173.30,167.77,170.71,2090000,170.71 +1931-01-02,164.58,170.09,161.46,169.84,2030000,169.84 +1930-12-31,163.09,167.99,162.48,164.58,1940000,164.58 +1930-12-30,160.16,165.34,159.68,163.09,3430000,163.09 +1930-12-29,160.30,162.60,158.41,160.16,2790000,160.16 +1930-12-26,165.20,166.96,160.63,161.18,1800000,161.18 +1930-12-24,163.57,168.00,163.57,165.20,1580000,165.20 +1930-12-23,162.42,165.93,160.22,162.93,2450000,162.93 +1930-12-22,169.42,170.02,162.15,162.42,2100000,162.42 +1930-12-19,166.71,170.43,164.96,168.99,2270000,168.99 +1930-12-18,165.60,171.64,164.99,166.71,3290000,166.71 +1930-12-17,157.51,166.83,154.45,165.60,5010000,165.60 +1930-12-16,163.34,166.04,156.44,157.51,4160000,157.51 +1930-12-15,163.34,166.13,160.66,163.34,3440000,163.34 +1930-12-12,170.31,173.08,167.99,168.68,2030000,168.68 +1930-12-11,173.02,173.02,166.97,170.31,2890000,170.31 +1930-12-10,176.50,178.10,170.21,173.98,3150000,173.98 +1930-12-09,176.09,178.21,173.88,176.50,2120000,176.50 +1930-12-08,177.98,177.98,174.27,176.09,1980000,176.09 +1930-12-05,180.99,181.70,177.26,181.11,1590000,181.11 +1930-12-04,184.06,184.06,179.75,180.99,1590000,180.99 +1930-12-03,186.82,187.07,183.30,184.11,1220000,184.11 +1930-12-02,185.48,187.96,183.36,186.82,1580000,186.82 +1930-12-01,183.39,186.33,182.32,185.48,1100000,185.48 +1930-11-28,183.06,183.06,178.88,180.91,1740000,180.91 +1930-11-26,185.47,186.98,181.93,183.11,1950000,183.11 +1930-11-25,188.27,191.28,185.17,185.47,2150000,185.47 +1930-11-24,188.04,189.08,184.32,188.27,1630000,188.27 +1930-11-21,187.09,191.28,185.32,190.30,2250000,190.30 +1930-11-20,187.57,191.04,185.76,187.09,2630000,187.09 +1930-11-19,183.42,188.61,182.21,187.57,2480000,187.57 +1930-11-18,180.50,184.16,177.63,183.42,2020000,183.42 +1930-11-17,185.13,185.13,178.86,180.50,2140000,180.50 +1930-11-14,180.38,184.64,177.69,184.03,2640000,184.03 +1930-11-13,177.33,183.08,174.96,180.38,3450000,180.38 +1930-11-12,173.30,177.50,168.58,177.33,3420000,177.33 +1930-11-11,171.60,176.93,169.38,173.30,3330000,173.30 +1930-11-10,173.14,177.07,168.32,171.60,4420000,171.60 +1930-11-07,180.72,181.00,172.85,174.38,2370000,174.38 +1930-11-06,179.81,182.40,177.80,180.72,2450000,180.72 +1930-11-05,185.39,185.47,178.78,179.81,2150000,179.81 +1930-11-03,184.89,187.23,183.12,185.39,1260000,185.39 +1930-10-31,188.00,188.00,181.64,183.35,2250000,183.35 +1930-10-30,190.55,190.55,185.99,188.07,1910000,188.07 +1930-10-29,194.35,194.35,189.33,190.73,1670000,190.73 +1930-10-28,195.09,198.59,193.28,194.95,2020000,194.95 +1930-10-27,193.34,195.73,189.17,195.09,1810000,195.09 +1930-10-24,189.07,195.79,189.07,195.09,2760000,195.09 +1930-10-23,184.98,190.95,184.75,188.10,2670000,188.10 +1930-10-22,186.40,188.34,181.53,184.98,2740000,184.98 +1930-10-21,193.32,193.95,184.22,186.40,2430000,186.40 +1930-10-20,187.07,194.44,187.07,193.32,2140000,193.32 +1930-10-17,195.30,195.30,186.74,187.37,2660000,187.37 +1930-10-16,200.13,200.13,194.78,196.62,1860000,196.62 +1930-10-15,196.70,201.64,193.40,200.26,2380000,200.26 +1930-10-14,193.05,198.01,186.99,196.70,3390000,196.70 +1930-10-10,192.00,198.86,186.70,198.50,6300000,198.50 +1930-10-09,199.96,199.96,190.17,192.00,5050000,192.00 +1930-10-08,203.62,205.21,198.61,200.56,2070000,200.56 +1930-10-07,202.76,207.04,198.51,203.62,3570000,203.62 +1930-10-06,209.01,209.01,201.90,202.76,2370000,202.76 +1930-10-03,211.13,216.89,211.13,214.18,2050000,214.18 +1930-10-02,214.14,214.76,206.25,211.04,2320000,211.04 +1930-10-01,205.92,215.32,205.92,214.14,3160000,214.14 +1930-09-30,208.14,209.95,201.95,204.90,4500000,204.90 +1930-09-29,212.52,216.96,207.30,208.14,3760000,208.14 +1930-09-26,217.75,220.21,211.31,213.27,3710000,213.27 +1930-09-25,222.10,223.89,215.31,217.75,3070000,217.75 +1930-09-24,226.75,228.87,218.08,222.10,3440000,222.10 +1930-09-23,222.78,227.30,221.82,226.75,1920000,226.75 +1930-09-22,229.29,229.29,222.00,222.78,2330000,222.78 +1930-09-19,233.52,233.52,226.39,229.02,2950000,229.02 +1930-09-18,237.45,237.45,233.47,234.18,1380000,234.18 +1930-09-17,237.22,239.31,236.51,237.74,1190000,237.74 +1930-09-16,236.62,237.75,232.85,237.22,1770000,237.22 +1930-09-15,239.96,239.96,234.95,236.62,1560000,236.62 +1930-09-12,242.88,244.42,239.49,241.17,1910000,241.17 +1930-09-11,245.09,245.23,241.67,242.88,1740000,242.88 +1930-09-10,244.29,247.21,243.30,245.09,2480000,245.09 +1930-09-09,242.84,245.48,241.55,244.29,1940000,244.29 +1930-09-08,243.64,246.08,241.78,242.84,2240000,242.84 +1930-09-05,236.09,240.93,236.09,240.37,1650000,240.37 +1930-09-04,237.45,239.65,234.35,236.04,1520000,236.04 +1930-09-03,240.42,242.40,236.71,237.45,1750000,237.45 +1930-09-02,240.42,242.77,238.51,240.42,1770000,240.42 +1930-08-29,237.79,241.35,236.75,240.42,1860000,240.42 +1930-08-28,237.93,239.33,235.19,237.79,1440000,237.79 +1930-08-27,235.47,239.54,235.38,237.93,2200000,237.93 +1930-08-26,231.52,236.30,230.73,235.47,1750000,235.47 +1930-08-25,234.42,236.46,230.68,231.52,1600000,231.52 +1930-08-22,231.27,234.04,229.64,232.63,1340000,232.63 +1930-08-21,232.98,234.91,229.21,231.27,1710000,231.27 +1930-08-20,230.68,235.26,229.84,232.98,1820000,232.98 +1930-08-19,227.79,233.46,227.43,230.68,1860000,230.68 +1930-08-18,228.02,229.08,224.42,227.79,1410000,227.79 +1930-08-15,221.08,229.44,219.82,228.55,2110000,228.55 +1930-08-14,220.35,224.38,219.24,221.08,1530000,221.08 +1930-08-13,217.24,221.35,214.49,220.35,2290000,220.35 +1930-08-12,223.74,223.74,216.48,217.24,2090000,217.24 +1930-08-11,222.59,226.05,220.09,224.13,1750000,224.13 +1930-08-08,231.73,231.73,222.24,222.82,3310000,222.82 +1930-08-07,234.38,234.39,230.50,232.69,1450000,232.69 +1930-08-06,237.99,237.99,233.67,234.38,1320000,234.38 +1930-08-05,238.16,240.95,237.22,238.47,1220000,238.47 +1930-08-04,234.50,238.57,233.26,238.16,1200000,238.16 +1930-08-01,233.99,235.78,231.86,233.57,1090000,233.57 +1930-07-31,231.08,235.19,229.09,233.99,2160000,233.99 +1930-07-30,238.40,239.93,230.53,231.08,2510000,231.08 +1930-07-29,240.81,241.53,237.00,238.40,1860000,238.40 +1930-07-28,240.31,243.65,239.04,240.81,2430000,240.81 +1930-07-25,235.51,238.58,233.77,237.48,1360000,237.48 +1930-07-24,239.33,239.51,234.65,235.51,1480000,235.51 +1930-07-23,234.94,241.76,234.94,239.33,2530000,239.33 +1930-07-22,229.29,235.29,228.81,234.30,2080000,234.30 +1930-07-21,236.58,236.58,228.72,229.29,1950000,229.29 +1930-07-18,239.07,242.01,236.47,240.57,2750000,240.57 +1930-07-17,235.63,240.27,234.03,239.07,2500000,239.07 +1930-07-16,233.79,236.47,230.59,235.63,2590000,235.63 +1930-07-15,234.21,237.19,231.73,233.79,3090000,233.79 +1930-07-14,229.23,234.54,229.02,234.21,2740000,234.21 +1930-07-11,227.39,228.65,223.97,224.86,1530000,224.86 +1930-07-10,222.04,228.35,219.18,227.39,2170000,227.39 +1930-07-09,219.11,223.52,219.11,222.04,1360000,222.04 +1930-07-08,218.33,220.22,214.64,219.08,1560000,219.08 +1930-07-07,221.31,221.31,216.33,218.33,1480000,218.33 +1930-07-03,225.25,226.26,219.94,222.46,1380000,222.46 +1930-07-02,223.03,227.24,222.14,225.25,1230000,225.25 +1930-07-01,226.34,229.53,221.92,223.03,2280000,223.03 +1930-06-30,219.12,226.85,219.06,226.34,1840000,226.34 +1930-06-27,220.58,222.84,213.97,218.78,2080000,218.78 +1930-06-26,215.58,222.11,214.25,220.58,2270000,220.58 +1930-06-25,211.84,216.80,207.74,215.58,3400000,215.58 +1930-06-24,219.58,222.89,211.07,211.84,2870000,211.84 +1930-06-23,215.30,221.26,209.16,219.58,3840000,219.58 +1930-06-20,228.97,232.69,219.70,221.92,5660000,221.92 +1930-06-19,219.83,229.83,219.83,228.97,3760000,228.97 +1930-06-18,226.29,226.29,212.27,218.84,6430000,218.84 +1930-06-17,230.05,234.94,224.37,228.57,5020000,228.57 +1930-06-16,242.18,242.18,228.94,230.05,5660000,230.05 +1930-06-13,247.18,251.63,243.27,249.69,2230000,249.69 +1930-06-12,249.08,250.90,241.00,247.18,3900000,247.18 +1930-06-11,257.24,257.24,243.90,249.08,4480000,249.08 +1930-06-10,250.78,257.72,247.62,257.29,4770000,257.29 +1930-06-09,257.82,259.60,249.51,250.78,4650000,250.78 +1930-06-06,268.59,268.69,263.29,263.93,2160000,263.93 +1930-06-05,272.44,272.65,266.90,268.59,2390000,268.59 +1930-06-04,271.18,274.03,269.54,272.44,1690000,272.44 +1930-06-03,274.45,274.69,270.01,271.18,1750000,271.18 +1930-06-02,275.07,276.86,273.03,274.45,1710000,274.45 +1930-05-29,273.84,276.66,273.05,275.07,2200000,275.07 +1930-05-28,272.43,275.17,270.64,273.84,2410000,273.84 +1930-05-27,272.14,274.72,270.54,272.43,2260000,272.43 +1930-05-26,271.33,276.18,270.64,272.14,2250000,272.14 +1930-05-23,267.01,272.14,267.01,270.01,2160000,270.01 +1930-05-22,265.52,268.65,262.53,266.89,1860000,266.89 +1930-05-21,267.10,268.94,262.67,265.52,2080000,265.52 +1930-05-20,265.87,268.40,260.76,267.10,3530000,267.10 +1930-05-19,272.36,272.36,264.63,265.87,2410000,265.87 +1930-05-16,269.91,272.96,268.54,271.52,2090000,271.52 +1930-05-15,274.35,274.35,268.45,269.91,2680000,269.91 +1930-05-14,274.17,277.22,272.22,274.40,3180000,274.40 +1930-05-13,270.16,276.09,269.51,274.17,2700000,274.17 +1930-05-12,272.01,275.11,268.56,270.16,3030000,270.16 +1930-05-09,263.93,269.08,261.64,267.29,3010000,267.29 +1930-05-08,263.69,266.11,257.74,263.93,3760000,263.93 +1930-05-07,268.81,272.15,262.20,263.69,4300000,263.69 +1930-05-06,259.68,270.34,259.04,268.81,4760000,268.81 +1930-05-05,258.31,262.84,249.82,259.68,8280000,259.68 +1930-05-02,274.59,276.81,264.93,266.56,5990000,266.56 +1930-05-01,279.23,281.95,273.00,274.59,4640000,274.59 +1930-04-30,278.43,283.51,275.97,279.23,4550000,279.23 +1930-04-29,276.94,280.71,272.24,278.43,5410000,278.43 +1930-04-28,285.46,286.12,275.71,276.94,4850000,276.94 +1930-04-25,286.18,289.28,283.68,285.76,4730000,285.76 +1930-04-24,288.78,290.58,283.74,286.18,5230000,286.18 +1930-04-23,290.01,293.27,286.25,288.78,5570000,288.78 +1930-04-22,288.23,291.39,284.28,290.01,4590000,290.01 +1930-04-21,294.07,295.88,287.24,288.23,4490000,288.23 +1930-04-17,292.20,296.05,290.38,294.07,3940000,294.07 +1930-04-16,293.26,297.25,290.27,292.20,4400000,292.20 +1930-04-15,293.18,295.69,289.34,293.26,4220000,293.26 +1930-04-14,293.43,295.81,289.72,293.18,4150000,293.18 +1930-04-11,292.19,296.35,288.42,292.65,5630000,292.65 +1930-04-10,291.15,295.98,289.18,292.19,5680000,292.19 +1930-04-09,288.36,293.36,287.37,291.15,5190000,291.15 +1930-04-08,290.19,291.89,285.96,288.36,4690000,288.36 +1930-04-07,289.96,293.43,287.03,290.19,5490000,290.19 +1930-04-04,285.77,291.44,284.92,288.35,5930000,288.35 +1930-04-03,285.27,288.17,282.29,285.77,4630000,285.77 +1930-04-02,287.11,290.15,283.59,285.27,5300000,285.27 +1930-04-01,286.10,290.15,283.64,287.11,5400000,287.11 +1930-03-31,283.85,289.13,282.85,286.10,5160000,286.10 +1930-03-28,281.63,287.06,280.83,283.85,5070000,283.85 +1930-03-27,283.22,286.10,279.98,281.63,4710000,281.63 +1930-03-26,280.50,285.38,279.31,283.22,5030000,283.22 +1930-03-25,279.11,284.01,278.21,280.50,4530000,280.50 +1930-03-24,276.43,280.92,275.03,279.11,4130000,279.11 +1930-03-21,279.41,284.08,276.78,280.55,4630000,280.55 +1930-03-20,277.88,282.23,275.25,279.41,3260000,279.41 +1930-03-19,277.27,281.05,274.91,277.88,4340000,277.88 +1930-03-18,274.26,279.79,273.90,277.27,4250000,277.27 +1930-03-17,270.25,274.84,268.94,274.26,3640000,274.26 +1930-03-14,273.47,275.82,270.38,271.34,3950000,271.34 +1930-03-13,272.13,274.77,269.60,273.47,3850000,273.47 +1930-03-12,276.25,277.06,270.01,272.13,4470000,272.13 +1930-03-11,276.85,278.76,274.25,276.25,2640000,276.25 +1930-03-10,275.46,279.40,273.71,276.85,3990000,276.85 +1930-03-07,274.51,278.48,272.84,275.57,3640000,275.57 +1930-03-06,270.59,276.05,269.01,274.51,3360000,274.51 +1930-03-05,273.51,276.10,269.03,270.59,3720000,270.59 +1930-03-04,271.11,275.19,269.16,273.51,3460000,273.51 +1930-03-03,273.24,274.47,269.59,271.11,3630000,271.11 +1930-02-28,269.39,272.55,267.41,271.11,3210000,271.11 +1930-02-27,269.06,272.13,267.43,269.39,3310000,269.39 +1930-02-26,262.94,269.92,262.94,269.06,3020000,269.06 +1930-02-25,262.47,264.64,259.78,262.80,2630000,262.80 +1930-02-24,265.81,266.33,261.40,262.47,2320000,262.47 +1930-02-21,263.41,266.68,262.01,265.81,2570000,265.81 +1930-02-20,268.46,269.72,262.43,263.41,3660000,263.41 +1930-02-19,270.73,273.35,267.09,268.46,3490000,268.46 +1930-02-18,270.54,274.41,268.98,270.73,3800000,270.73 +1930-02-17,269.25,271.62,265.29,270.54,3290000,270.54 +1930-02-14,272.27,274.20,268.60,271.52,3510000,271.52 +1930-02-13,271.05,275.00,268.97,272.27,3670000,272.27 +1930-02-11,268.56,272.67,267.00,271.05,3320000,271.05 +1930-02-10,269.78,271.78,266.37,268.56,3170000,268.56 +1930-02-07,268.56,271.62,265.36,267.82,3390000,267.82 +1930-02-06,272.06,273.59,266.96,268.56,3710000,268.56 +1930-02-05,268.85,274.01,268.85,272.06,4360000,272.06 +1930-02-04,266.54,270.00,264.41,268.48,3230000,268.48 +1930-02-03,268.41,271.54,264.84,266.54,3800000,266.54 +1930-01-31,263.28,268.71,262.81,267.14,3740000,267.14 +1930-01-30,262.18,266.30,260.48,263.28,3640000,263.28 +1930-01-29,257.90,263.73,257.38,262.18,3250000,262.18 +1930-01-28,260.93,261.89,256.70,257.90,2910000,257.90 +1930-01-27,259.06,262.57,257.24,260.93,3460000,260.93 +1930-01-24,253.52,258.98,252.98,256.31,3480000,256.31 +1930-01-23,250.19,254.39,249.62,253.52,3230000,253.52 +1930-01-22,249.58,251.85,248.60,250.19,2310000,250.19 +1930-01-21,247.31,250.62,246.25,249.58,2230000,249.58 +1930-01-20,246.84,248.92,244.86,247.31,1700000,247.31 +1930-01-17,248.99,249.88,244.50,246.33,2680000,246.33 +1930-01-16,251.54,253.49,248.16,248.99,3040000,248.99 +1930-01-15,250.44,252.57,247.76,251.54,2630000,251.54 +1930-01-14,249.62,252.39,248.98,250.44,1880000,250.44 +1930-01-13,248.71,250.83,246.82,249.62,1460000,249.62 +1930-01-10,249.68,252.91,248.80,250.03,2400000,250.03 +1930-01-09,245.70,250.52,245.67,249.68,2400000,249.68 +1930-01-08,246.50,248.04,243.80,245.70,1640000,245.70 +1930-01-07,248.10,249.40,243.80,246.50,2030000,246.50 +1930-01-06,248.85,250.37,245.49,248.10,2170000,248.10 +1930-01-03,244.20,248.71,243.00,247.19,2070000,247.19 +1930-01-02,248.48,252.29,241.78,244.20,2930000,244.20 +1929-12-31,241.90,249.24,241.90,248.48,2680000,248.48 +1929-12-30,238.43,242.95,235.95,241.06,4160000,241.06 +1929-12-27,240.96,246.35,239.13,240.66,3350000,240.66 +1929-12-26,234.07,242.62,233.89,240.96,2580000,240.96 +1929-12-24,232.65,237.94,231.96,234.07,1000000,234.07 +1929-12-23,235.42,236.37,226.39,232.65,3490000,232.65 +1929-12-20,240.42,241.92,227.20,230.89,5550000,230.89 +1929-12-19,246.84,247.14,238.80,240.42,3410000,240.42 +1929-12-18,249.58,250.51,245.03,246.84,2290000,246.84 +1929-12-17,245.88,250.23,243.63,249.58,2440000,249.58 +1929-12-16,253.02,253.17,244.34,245.88,2590000,245.88 +1929-12-13,243.14,251.79,239.58,249.60,4390000,249.60 +1929-12-12,258.44,258.56,241.40,243.14,4510000,243.14 +1929-12-11,262.20,264.23,256.45,258.44,3900000,258.44 +1929-12-10,259.18,263.98,255.52,262.20,3650000,262.20 +1929-12-09,263.46,267.56,257.41,259.18,5020000,259.18 +1929-12-06,251.51,261.52,250.27,260.12,4720000,260.12 +1929-12-05,254.64,256.45,249.55,251.51,4380000,251.51 +1929-12-04,249.61,256.63,248.05,254.64,4440000,254.64 +1929-12-03,241.70,251.13,241.38,249.61,3810000,249.61 +1929-12-02,238.95,243.39,236.13,241.70,2510000,241.70 +1929-11-27,235.35,240.66,233.59,238.95,2430000,238.95 +1929-11-26,243.44,243.97,234.51,235.35,3630000,235.35 +1929-11-25,245.74,246.06,237.41,243.44,3020000,243.44 +1929-11-22,248.49,250.75,243.36,245.74,2930000,245.74 +1929-11-21,241.23,249.57,238.61,248.49,3140000,248.49 +1929-11-20,235.18,243.48,235.18,241.23,2830000,241.23 +1929-11-19,227.56,234.56,222.93,234.02,2720000,234.02 +1929-11-18,228.73,233.36,224.71,227.56,2750000,227.56 +1929-11-15,222.50,232.77,222.50,228.73,4340000,228.73 +1929-11-14,205.61,219.49,205.61,217.28,5570000,217.28 +1929-11-13,209.74,211.92,195.35,198.69,7760000,198.69 +1929-11-12,220.39,222.56,208.09,209.74,6450000,209.74 +1929-11-11,235.13,235.13,219.34,220.39,3640000,220.39 +1929-11-08,238.19,245.28,234.63,236.53,3220000,236.53 +1929-11-07,232.13,242.10,217.84,238.19,7180000,238.19 +1929-11-06,252.20,252.20,228.35,232.13,5920000,232.13 +1929-11-04,269.75,269.75,255.43,257.68,6200000,257.68 +1929-10-31,264.97,281.54,264.97,273.51,7150000,273.51 +1929-10-30,230.98,260.93,230.98,258.47,10730000,258.47 +1929-10-29,252.38,252.38,212.33,230.07,16410000,230.07 +1929-10-28,295.18,295.18,256.75,260.64,9210000,260.64 +1929-10-25,299.47,306.02,295.59,301.22,5920000,301.22 +1929-10-24,305.85,312.76,272.32,299.47,12900000,299.47 +1929-10-23,326.51,329.94,303.84,305.85,6370000,305.85 +1929-10-22,322.03,333.01,322.03,326.51,4130000,326.51 +1929-10-21,323.87,328.28,314.55,320.91,6090000,320.91 +1929-10-18,341.86,343.12,332.16,333.29,3510000,333.29 +1929-10-17,336.13,343.24,332.11,341.86,3860000,341.86 +1929-10-16,346.99,346.99,335.12,336.13,4090000,336.13 +1929-10-15,350.97,354.09,345.58,347.24,3110000,347.24 +1929-10-14,352.69,358.20,348.94,350.97,2760000,350.97 +1929-10-11,352.86,358.77,349.64,352.69,3960000,352.69 +1929-10-10,346.66,355.63,345.63,352.86,4000000,352.86 +1929-10-09,345.00,349.03,338.86,346.66,3160000,346.66 +1929-10-08,345.72,349.67,340.86,345.00,3760000,345.00 +1929-10-07,341.36,348.54,338.86,345.72,4260000,345.72 +1929-10-04,329.95,333.28,320.45,325.17,5620000,325.17 +1929-10-03,344.50,345.30,327.71,329.95,4750000,329.95 +1929-10-02,342.57,350.19,339.45,344.50,3370000,344.50 +1929-10-01,343.45,345.67,335.99,342.57,4530000,342.57 +1929-09-30,347.17,349.37,341.06,343.45,3210000,343.45 +1929-09-27,354.63,354.63,343.26,344.87,4590000,344.87 +1929-09-26,352.57,358.16,349.73,355.95,4000000,355.95 +1929-09-25,352.61,355.42,344.85,352.57,4960000,352.57 +1929-09-24,359.00,363.67,350.84,352.61,4410000,352.61 +1929-09-23,361.16,365.03,355.63,359.00,4390000,359.00 +1929-09-20,369.97,371.10,360.44,362.05,4880000,362.05 +1929-09-19,370.90,375.20,367.70,369.97,4130000,369.97 +1929-09-18,368.52,374.03,365.65,370.90,4040000,370.90 +1929-09-17,372.39,374.96,366.89,368.52,4290000,368.52 +1929-09-16,367.01,373.63,364.80,372.39,4180000,372.39 +1929-09-13,366.35,369.67,359.70,366.85,5070000,366.85 +1929-09-12,370.91,375.52,363.11,366.35,5020000,366.35 +1929-09-11,367.29,375.05,366.22,370.91,4790000,370.91 +1929-09-10,374.93,379.16,364.46,367.29,4520000,367.29 +1929-09-09,377.56,380.57,373.49,374.93,4860000,374.93 +1929-09-06,369.77,378.71,369.46,376.29,5120000,376.29 +1929-09-05,379.61,382.01,367.35,369.77,5560000,369.77 +1929-09-04,380.12,380.12,376.33,379.61,4690000,379.61 +1929-09-03,380.33,386.10,378.23,381.17,4440000,381.17 +1929-08-30,376.18,383.96,376.16,380.33,4570000,380.33 +1929-08-29,372.06,378.76,370.79,376.18,3480000,376.18 +1929-08-28,373.79,377.56,370.34,372.06,3960000,372.06 +1929-08-27,374.46,378.16,371.76,373.79,3900000,373.79 +1929-08-26,375.44,380.18,372.09,374.46,4430000,374.46 +1929-08-23,369.96,378.66,369.96,374.61,4800000,374.61 +1929-08-22,365.55,373.45,365.39,369.95,3440000,369.95 +1929-08-21,367.67,374.67,363.41,365.55,4720000,365.55 +1929-08-20,366.31,372.59,366.31,367.67,4640000,367.67 +1929-08-19,360.70,367.78,355.68,365.20,3980000,365.20 +1929-08-16,356.84,364.39,356.84,361.49,4800000,361.49 +1929-08-15,354.86,358.65,351.68,354.42,3410000,354.42 +1929-08-14,354.03,361.55,352.05,354.86,4200000,354.86 +1929-08-13,351.13,357.88,348.24,354.03,4100000,354.03 +1929-08-12,345.71,354.36,345.71,351.13,3610000,351.13 +1929-08-09,344.89,344.89,336.13,337.99,5020000,337.99 +1929-08-08,348.44,354.17,347.79,352.10,2830000,352.10 +1929-08-07,351.39,353.27,344.67,348.44,3160000,348.44 +1929-08-06,352.50,354.52,346.98,351.39,3800000,351.39 +1929-08-05,355.62,358.66,350.68,352.50,3860000,352.50 +1929-08-02,350.56,358.31,349.77,353.08,4030000,353.08 +1929-08-01,347.70,353.30,346.39,350.56,3320000,350.56 +1929-07-31,343.12,349.79,342.65,347.70,3410000,347.70 +1929-07-30,339.21,346.04,339.10,343.12,2690000,343.12 +1929-07-29,343.73,344.93,336.36,339.21,2760000,339.21 +1929-07-26,344.67,349.45,341.95,345.47,3550000,345.47 +1929-07-25,343.04,348.15,340.09,344.67,3480000,344.67 +1929-07-24,345.48,349.30,341.95,343.04,3780000,343.04 +1929-07-23,341.37,347.85,339.65,345.48,3780000,345.48 +1929-07-22,345.87,347.85,339.32,341.37,3680000,341.37 +1929-07-19,344.59,349.19,343.15,345.20,4200000,345.20 +1929-07-18,345.63,347.69,343.40,344.59,3730000,344.59 +1929-07-17,344.24,349.79,341.41,345.63,4360000,345.63 +1929-07-16,341.93,347.98,339.98,344.24,4500000,344.24 +1929-07-15,345.94,347.04,340.05,341.93,4290000,341.93 +1929-07-12,343.34,350.26,343.34,346.37,4760000,346.37 +1929-07-11,343.30,347.12,340.12,343.04,4210000,343.04 +1929-07-10,345.57,347.64,340.19,343.30,4210000,343.30 +1929-07-09,346.55,349.29,342.00,345.57,4250000,345.57 +1929-07-08,344.66,350.09,342.45,346.55,3520000,346.55 +1929-07-05,341.99,348.67,340.84,344.27,3750000,344.27 +1929-07-03,340.28,345.84,337.50,341.99,4690000,341.99 +1929-07-02,335.22,343.07,333.48,340.28,4590000,340.28 +1929-07-01,333.79,339.09,332.23,335.22,4090000,335.22 +1929-06-28,328.91,335.25,328.15,331.65,3950000,331.65 +1929-06-27,328.60,333.66,325.68,328.91,3910000,328.91 +1929-06-26,326.16,332.75,325.13,328.60,4030000,328.60 +1929-06-25,321.15,327.95,319.27,326.16,2930000,326.16 +1929-06-24,322.23,325.73,319.91,321.15,3030000,321.15 +1929-06-21,317.73,323.46,316.32,320.68,3190000,320.68 +1929-06-20,316.41,320.43,314.32,317.73,2760000,317.73 +1929-06-19,319.67,321.26,314.62,316.41,3060000,316.41 +1929-06-18,319.33,323.30,317.64,319.67,3340000,319.67 +1929-06-17,314.26,322.43,313.58,319.33,3210000,319.33 +1929-06-14,313.05,317.39,311.76,313.68,3240000,313.68 +1929-06-13,306.80,314.21,306.80,313.05,3160000,313.05 +1929-06-12,306.64,309.29,304.25,306.68,2130000,306.68 +1929-06-11,303.27,307.60,301.22,306.64,2140000,306.64 +1929-06-10,305.12,307.60,301.86,303.27,2200000,303.27 +1929-06-07,307.72,312.00,304.75,307.46,3080000,307.46 +1929-06-06,307.68,310.50,305.33,307.72,2930000,307.72 +1929-06-05,310.57,311.97,305.42,307.68,3340000,307.68 +1929-06-04,304.33,311.44,304.33,310.57,3410000,310.57 +1929-06-03,299.12,307.07,298.53,304.20,3020000,304.20 +1929-05-31,296.76,300.27,290.02,297.41,3300000,297.41 +1929-05-29,298.87,302.32,295.18,296.76,2980000,296.76 +1929-05-28,293.42,300.08,291.80,298.87,3940000,298.87 +1929-05-27,304.19,304.19,291.82,293.42,4350000,293.42 +1929-05-24,308.09,313.30,304.32,305.64,3270000,305.64 +1929-05-23,300.83,309.51,300.42,308.09,3810000,308.09 +1929-05-22,311.89,311.89,300.54,300.83,4840000,300.83 +1929-05-21,312.70,316.41,308.32,314.09,4410000,314.09 +1929-05-20,321.48,322.65,312.18,312.70,3810000,312.70 +1929-05-17,320.09,325.64,318.81,321.38,3330000,321.38 +1929-05-16,319.35,321.89,314.51,320.09,3440000,320.09 +1929-05-15,320.79,324.38,317.93,319.35,3350000,319.35 +1929-05-14,316.49,322.33,315.17,320.79,3630000,320.79 +1929-05-13,324.49,324.49,313.56,316.49,4630000,316.49 +1929-05-10,321.49,328.00,321.49,325.70,3920000,325.70 +1929-05-09,323.51,324.87,317.09,321.17,3660000,321.17 +1929-05-08,321.91,325.90,318.87,323.51,3470000,323.51 +1929-05-07,326.16,327.55,320.60,321.91,3490000,321.91 +1929-05-06,327.08,331.01,323.01,326.16,3810000,326.16 +1929-05-03,322.33,329.11,322.33,325.56,4530000,325.56 +1929-05-02,320.13,324.60,317.73,321.52,4180000,321.52 +1929-05-01,319.29,323.99,317.90,320.13,4690000,320.13 +1929-04-30,314.02,321.09,314.02,319.29,4320000,319.29 +1929-04-29,315.55,315.55,309.62,313.84,3270000,313.84 +1929-04-26,314.28,319.31,311.00,314.15,4010000,314.15 +1929-04-25,315.66,317.23,312.37,314.28,3340000,314.28 +1929-04-24,316.62,320.00,313.56,315.66,4070000,315.66 +1929-04-23,315.33,320.10,314.20,316.62,4130000,316.62 +1929-04-22,311.98,318.26,311.98,315.33,3570000,315.33 +1929-04-19,311.87,313.81,308.67,310.58,3060000,310.58 +1929-04-18,309.91,315.22,309.63,311.87,3770000,311.87 +1929-04-17,304.19,311.19,304.16,309.91,3500000,309.91 +1929-04-16,302.43,305.51,299.30,304.19,2370000,304.19 +1929-04-15,304.41,305.55,301.54,302.43,2640000,302.43 +1929-04-12,304.09,309.79,303.61,305.43,3410000,305.43 +1929-04-11,300.67,307.90,299.40,304.09,3100000,304.09 +1929-04-10,299.13,304.60,295.71,300.67,3280000,300.67 +1929-04-09,301.49,306.29,297.17,299.13,3630000,299.13 +1929-04-08,302.81,305.70,299.52,301.49,2720000,301.49 +1929-04-05,305.37,307.97,301.39,303.04,3410000,303.04 +1929-04-04,300.35,306.99,295.79,305.37,3330000,305.37 +1929-04-03,303.49,307.70,298.58,300.35,3700000,300.35 +1929-04-02,300.40,305.20,298.07,303.49,3780000,303.49 +1929-04-01,304.21,304.21,294.11,300.40,4160000,300.40 +1929-03-28,303.22,311.13,302.93,308.85,5100000,308.85 +1929-03-27,296.51,305.87,293.70,303.22,5620000,303.22 +1929-03-26,297.50,300.60,281.51,296.51,8250000,296.51 +1929-03-25,306.21,311.55,294.34,297.50,5860000,297.50 +1929-03-22,314.63,316.94,307.50,310.26,4830000,310.26 +1929-03-21,316.44,319.31,313.12,314.63,4460000,314.63 +1929-03-20,317.53,320.06,313.27,316.44,5190000,316.44 +1929-03-19,317.59,321.28,315.23,317.53,4450000,317.53 +1929-03-18,320.00,321.70,315.49,317.59,5020000,317.59 +1929-03-15,316.26,322.75,315.92,319.70,5890000,319.70 +1929-03-14,311.02,317.98,311.02,316.26,4630000,316.26 +1929-03-13,306.79,312.30,306.79,310.29,3330000,310.29 +1929-03-12,305.75,312.76,305.20,306.14,3060000,306.14 +1929-03-11,311.61,312.96,305.20,305.75,3630000,305.75 +1929-03-08,308.99,313.25,304.78,311.59,3950000,311.59 +1929-03-07,305.20,310.39,303.05,308.99,3630000,308.99 +1929-03-06,310.20,313.45,302.93,305.20,4490000,305.20 +1929-03-05,313.86,316.17,308.22,310.20,4430000,310.20 +1929-03-04,319.12,320.22,312.85,313.86,4560000,313.86 +1929-03-01,317.79,324.40,317.79,321.18,6020000,321.18 +1929-02-28,314.53,319.69,312.91,317.41,4970000,317.41 +1929-02-27,311.25,317.03,309.71,314.53,4370000,314.53 +1929-02-26,311.24,313.49,307.04,311.25,3740000,311.25 +1929-02-25,310.06,315.08,308.10,311.24,3510000,311.24 +1929-02-21,305.99,311.31,303.45,310.06,3400000,310.06 +1929-02-20,301.10,307.55,301.05,305.99,2910000,305.99 +1929-02-19,300.74,305.58,299.00,301.10,3210000,301.10 +1929-02-18,295.85,301.68,293.40,300.74,3480000,300.74 +1929-02-15,306.49,309.79,299.38,300.41,3900000,300.41 +1929-02-14,308.07,308.29,300.60,306.49,3730000,306.49 +1929-02-13,310.35,316.06,307.15,308.07,4530000,308.07 +1929-02-11,301.53,311.24,299.58,310.35,3890000,310.35 +1929-02-08,305.75,309.26,298.03,301.53,4550000,301.53 +1929-02-07,312.56,312.56,302.40,305.75,5210000,305.75 +1929-02-06,322.06,323.31,313.32,317.18,4680000,317.18 +1929-02-05,319.05,324.51,317.28,322.06,4070000,322.06 +1929-02-04,319.76,323.74,316.91,319.05,4050000,319.05 +1929-02-01,317.51,324.16,315.64,319.68,4970000,319.68 +1929-01-31,312.60,319.96,311.34,317.51,4680000,317.51 +1929-01-30,312.60,316.15,308.47,312.60,4130000,312.60 +1929-01-29,314.04,316.33,309.23,312.60,4290000,312.60 +1929-01-28,314.56,319.58,310.44,314.04,4980000,314.04 +1929-01-25,311.28,319.36,311.28,315.13,5510000,315.13 +1929-01-24,310.33,314.01,305.94,309.39,4500000,309.39 +1929-01-23,307.06,315.49,306.46,310.33,4920000,310.33 +1929-01-22,304.64,310.08,303.05,307.06,5120000,307.06 +1929-01-21,305.96,308.22,302.36,304.64,4900000,304.64 +1929-01-18,303.95,308.05,301.05,304.14,4940000,304.14 +1929-01-17,302.66,306.96,301.09,303.95,4260000,303.95 +1929-01-16,297.66,304.36,297.00,302.66,3670000,302.66 +1929-01-15,304.06,306.09,295.78,297.66,4180000,297.66 +1929-01-14,301.25,306.26,299.06,304.06,3920000,304.06 +1929-01-11,301.58,305.85,298.68,301.66,4240000,301.66 +1929-01-10,300.83,305.20,299.60,301.58,4020000,301.58 +1929-01-09,296.98,303.04,296.37,300.83,4050000,300.83 +1929-01-08,297.70,300.87,292.89,296.98,3850000,296.98 +1929-01-07,301.85,301.85,293.35,297.70,4800000,297.70 +1929-01-04,305.72,307.51,299.92,304.75,5530000,304.75 +1929-01-03,307.01,311.46,302.90,305.72,5100000,305.72 +1929-01-02,300.31,308.66,300.31,307.01,5410000,307.01 +1928-12-31,297.28,301.61,291.99,300.00,4890000,300.00 +1928-12-28,290.95,297.79,283.68,296.52,4800000,296.52 +1928-12-27,286.13,291.39,281.55,290.95,3570000,290.95 +1928-12-26,287.89,292.53,283.94,286.13,3620000,286.13 +1928-12-24,285.94,291.17,284.30,287.89,3700000,287.89 +1928-12-21,282.01,288.39,281.31,286.53,3460000,286.53 +1928-12-20,280.50,285.60,277.91,282.01,3810000,282.01 +1928-12-19,275.41,282.84,275.09,280.50,3400000,280.50 +1928-12-18,270.23,276.41,269.61,275.41,2270000,275.41 +1928-12-17,270.72,272.27,266.21,270.23,2230000,270.23 +1928-12-14,266.99,275.45,266.99,272.26,3010000,272.26 +1928-12-13,266.82,269.53,260.51,266.88,3270000,266.88 +1928-12-12,269.34,272.74,264.95,266.82,3990000,266.82 +1928-12-11,263.95,270.41,263.71,269.34,3920000,269.34 +1928-12-10,257.33,266.22,254.36,263.95,5220000,263.95 +1928-12-07,279.79,284.44,269.58,271.05,6190000,271.05 +1928-12-06,290.68,292.56,278.66,279.79,5410000,279.79 +1928-12-05,291.30,294.20,289.91,290.68,4380000,290.68 +1928-12-04,289.23,295.61,287.61,291.30,4920000,291.30 +1928-12-03,290.80,291.05,283.89,289.23,4490000,289.23 +1928-11-30,295.62,299.07,288.82,293.38,6410000,293.38 +1928-11-28,292.39,299.35,290.68,295.62,6370000,295.62 +1928-11-27,291.16,294.75,289.28,292.39,5280000,292.39 +1928-11-26,288.22,296.10,288.14,291.16,5320000,291.16 +1928-11-23,290.34,295.17,284.40,288.22,6940000,288.22 +1928-11-22,281.28,292.12,281.28,290.34,5840000,290.34 +1928-11-21,283.90,288.71,276.91,280.53,6170000,280.53 +1928-11-20,278.78,288.13,278.05,283.90,6440000,283.90 +1928-11-19,277.48,280.68,272.98,278.78,5100000,278.78 +1928-11-16,271.48,278.65,271.48,276.66,6730000,276.66 +1928-11-15,268.60,271.63,266.48,269.42,4730000,269.42 +1928-11-14,269.89,272.94,266.80,268.60,5410000,268.60 +1928-11-13,269.67,272.03,264.88,269.89,5240000,269.89 +1928-11-12,265.08,272.47,264.42,269.67,5680000,269.67 +1928-11-09,261.11,266.24,259.37,263.05,4950000,263.05 +1928-11-08,260.68,265.26,258.96,261.11,4850000,261.11 +1928-11-07,258.48,263.97,258.48,260.68,4830000,260.68 +1928-11-05,254.16,259.68,253.89,257.58,3740000,257.58 +1928-11-02,255.23,256.99,252.46,254.38,3490000,254.38 +1928-11-01,252.16,256.59,251.56,255.23,3450000,255.23 +1928-10-31,253.70,256.16,248.76,252.16,3490000,252.16 +1928-10-30,257.13,259.00,252.39,253.70,3450000,253.70 +1928-10-29,255.51,259.76,255.03,257.13,3690000,257.13 +1928-10-26,256.48,259.16,250.00,251.44,4520000,251.44 +1928-10-25,257.03,260.03,254.93,256.48,4210000,256.48 +1928-10-24,256.04,260.39,249.09,257.03,4550000,257.03 +1928-10-23,253.60,258.60,252.73,256.04,4160000,256.04 +1928-10-22,253.75,257.32,250.08,253.60,3860000,253.60 +1928-10-19,251.88,259.19,250.35,256.59,4560000,256.59 +1928-10-18,250.87,255.24,249.65,251.88,4400000,251.88 +1928-10-17,249.43,253.60,247.74,250.87,3960000,250.87 +1928-10-16,249.85,255.27,247.92,249.43,4530000,249.43 +1928-10-15,249.13,252.70,247.33,249.85,4040000,249.85 +1928-10-11,246.53,250.14,245.57,247.69,3970000,247.69 +1928-10-10,241.73,249.06,241.57,246.53,4170000,246.53 +1928-10-09,239.55,242.86,236.79,241.73,3820000,241.73 +1928-10-08,240.17,243.33,237.72,239.55,3940000,239.55 +1928-10-05,240.00,243.08,238.22,240.44,4360000,240.44 +1928-10-04,237.75,242.53,237.72,240.00,4330000,240.00 +1928-10-03,238.14,239.14,233.60,237.75,4060000,237.75 +1928-10-02,240.01,241.54,235.42,238.14,3850000,238.14 +1928-10-01,239.43,242.46,238.24,240.01,3500000,240.01 diff --git a/statsmodels/sandbox/examples/ex_cusum.py b/statsmodels/sandbox/examples/ex_cusum.py new file mode 100644 index 0000000..2586dcf --- /dev/null +++ b/statsmodels/sandbox/examples/ex_cusum.py @@ -0,0 +1,110 @@ +# -*- coding: utf-8 -*- +""" +Created on Fri Apr 02 11:41:25 2010 + +Author: josef-pktd +""" + + +import numpy as np +from scipy import stats +from numpy.testing import assert_almost_equal +import statsmodels.api as sm +from statsmodels.sandbox.regression.onewaygls import OneWayLS +from statsmodels.stats.diagnostic import recursive_olsresiduals +from statsmodels.sandbox.stats.diagnostic import _recursive_olsresiduals2 as recursive_olsresiduals2 + +#examples from ex_onewaygls.py +#choose example +#-------------- +example = ['null', 'smalldiff', 'mediumdiff', 'largediff'][1] +example_size = [20, 100][1] +example_groups = ['2', '2-2'][1] +#'2-2': 4 groups, +# groups 0 and 1 and groups 2 and 3 have identical parameters in DGP + +#generate example +#---------------- +#np.random.seed(87654589) +nobs = example_size +x1 = 0.1+np.random.randn(nobs) +y1 = 10 + 15*x1 + 2*np.random.randn(nobs) + +x1 = sm.add_constant(x1, prepend=False) +#assert_almost_equal(x1, np.vander(x1[:,0],2), 16) +#res1 = sm.OLS(y1, x1).fit() +#print res1.params +#print np.polyfit(x1[:,0], y1, 1) +#assert_almost_equal(res1.params, np.polyfit(x1[:,0], y1, 1), 14) +#print res1.summary(xname=['x1','const1']) + +#regression 2 +x2 = 0.1+np.random.randn(nobs) +if example == 'null': + y2 = 10 + 15*x2 + 2*np.random.randn(nobs) # if H0 is true +elif example == 'smalldiff': + y2 = 11 + 16*x2 + 2*np.random.randn(nobs) +elif example == 'mediumdiff': + y2 = 12 + 16*x2 + 2*np.random.randn(nobs) +else: + y2 = 19 + 17*x2 + 2*np.random.randn(nobs) + +x2 = sm.add_constant(x2, prepend=False) + +# stack +x = np.concatenate((x1,x2),0) +y = np.concatenate((y1,y2)) +if example_groups == '2': + groupind = (np.arange(2*nobs)>nobs-1).astype(int) +else: + groupind = np.mod(np.arange(2*nobs),4) + groupind.sort() +#x = np.column_stack((x,x*groupind[:,None])) + +res1 = sm.OLS(y, x).fit() +skip = 8 + +rresid, rparams, rypred, rresid_standardized, rresid_scaled, rcusum, rcusumci = \ + recursive_olsresiduals(res1, skip) +print(rcusum) +print(rresid_scaled[skip-1:]) + +assert_almost_equal(rparams[-1], res1.params) + +import matplotlib.pyplot as plt +plt.plot(rcusum) +plt.plot(rcusumci[0]) +plt.plot(rcusumci[1]) +plt.figure() +plt.plot(rresid) +plt.plot(np.abs(rresid)) + +print('cusum test reject:') +print(((rcusum[1:]>rcusumci[1])|(rcusum[1:]>> dir(form) +['_Formula__namespace', '__add__', '__call__', '__class__', +'__delattr__', '__dict__', '__doc__', '__getattribute__', +'__getitem__', '__hash__', '__init__', '__module__', '__mul__', +'__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', +'__str__', '__sub__', '__weakref__', '_del_namespace', +'_get_namespace', '_names', '_set_namespace', '_termnames', +'_terms_changed', 'design', 'hasterm', 'names', 'namespace', +'termcolumns', 'termnames', 'terms'] + +>>> form.design().shape +(40, 10) +>>> form.termnames() +['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'] +>>> form.namespace.keys() +['A', 'C', 'B', 'E', 'D', 'G', 'F', 'I', 'H', 'J'] +>>> form.names() +['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'] + +>>> form.termcolumns(formula.Term('C')) +[2] +>>> form.termcolumns('C') +Traceback (most recent call last): + File "", line 1, in + form.termcolumns('C') + File "C:\Josef\eclipsegworkspace\statsmodels-josef-experimental\scikits\statsmodels\sandbox\formula.py", line 494, in termcolumns + raise ValueError('term not in formula') +ValueError: term not in formula + + +''' +print(form.hasterm('C')) +print(form.termcolumns(formula.Term('C'))) #doesn't work with string argument + +#Example: use two columns and get contrast + +f2 = (form['A']+form['B']) +print(f2) +print(repr(f2)) +list(iterkeys(f2.namespace)) #namespace is still empty +f2.namespace = namespace #associate data +iterkeys(f2.namespace) +f2.design().shape +contrast.Contrast(formula.Term('A'), f2).matrix + +''' +>>> f2 = (form['A']+form['B']) +>>> print f2 + +>>> print repr(f2) + +>>> f2.namespace.keys() #namespace is still empty +[] +>>> f2.namespace = namespace #associate data +>>> f2.namespace.keys() +['A', 'C', 'B', 'E', 'D', 'G', 'F', 'I', 'H', 'J'] +>>> f2.design().shape +(40, 2) +>>> contrast.Contrast(formula.Term('A'), f2).matrix +array([ 1., 0.]) +''' + +#Example: product of terms +#------------------------- + +f3 = (form['A']*form['B']) +f3.namespace +f3.namespace = namespace +f3.design().shape +np.min(np.abs(f3.design() - f2.design().prod(1))) + +''' +>>> f3 = (form['A']*form['B']) +>>> f3.namespace +{} +>>> f3.namespace = namespace +>>> f3.design().shape +(40,) +>>> np.min(np.abs(f3.design() - f2.design().prod(1))) +0.0 +''' + +#Example: Interactions of two terms +#---------------------------------- + +#I don't get contrast of product term + +f4 = formula.interactions([form['A'],form['B']]) +f4.namespace +f4.namespace = namespace +print(f4) +f4.names() +f4.design().shape + +contrast.Contrast(formula.Term('A'), f4).matrix +#contrast.Contrast(formula.Term('A*B'), f4).matrix + +''' +>>> formula.interactions([form['A'],form['B']]) + +>>> f4 = formula.interactions([form['A'],form['B']]) +>>> f4.namespace +{} +>>> f4.namespace = namespace +>>> print f4 + +>>> f4.names() +['A*B', 'A', 'B'] +>>> f4.design().shape +(40, 3) + +>>> contrast.Contrast(formula.Term('A'), f4).matrix +array([ 0.00000000e+00, 1.00000000e+00, 7.63278329e-17]) +>>> contrast.Contrast(formula.Term('A*B'), f4).matrix +Traceback (most recent call last): + File "c:\...\scikits\statsmodels\sandbox\contrast_old.py", line 112, in _get_matrix + self.compute_matrix() + File "c:\...\scikits\statsmodels\sandbox\contrast_old.py", line 91, in compute_matrix + T = np.transpose(np.array(t(*args, **kw))) + File "c:\...\scikits\statsmodels\sandbox\formula.py", line 150, in __call__ + If the term has no 'func' attribute, it returns +KeyError: 'A*B' +''' + + + +#Other +#----- + +'''Exception if there is no data or key: +>>> contrast.Contrast(formula.Term('a'), f2).matrix +Traceback (most recent call last): + File "c:\..\scikits\statsmodels\sandbox\contrast_old.py", line 112, in _get_matrix + self.compute_matrix() + File "c:\...\scikits\statsmodels\sandbox\contrast_old.py", line 91, in compute_matrix + T = np.transpose(np.array(t(*args, **kw))) + File "c:\...\scikits\statsmodels\sandbox\formula.py", line 150, in __call__ + If the term has no 'func' attribute, it returns +KeyError: 'a' +''' + + +f = ['a']*3 + ['b']*3 + ['c']*2 +fac = formula.Factor('ff', f) +fac.namespace = {'ff':f} + + +#Example: formula with factor + +# I don't manage to combine factors with formulas, e.g. a joint +# designmatrix +# also I don't manage to get contrast matrices with factors +# it looks like I might have to add namespace for dummies myself ? +# even then combining still doesn't work + +f5 = formula.Term('A') + fac +namespace['A'] = form.namespace['A'] + +formula.Formula(fac).design() +''' +>>> formula.Formula(fac).design() +array([[ 1., 0., 0.], + [ 1., 0., 0.], + [ 1., 0., 0.], + [ 0., 1., 0.], + [ 0., 1., 0.], + [ 0., 1., 0.], + [ 0., 0., 1.], + [ 0., 0., 1.]]) + + +>>> contrast.Contrast(formula.Term('(ff==a)'), fac).matrix +Traceback (most recent call last): + File "c:\...\scikits\statsmodels\sandbox\contrast_old.py", line 112, in _get_matrix + self.compute_matrix() + File "c:\...\scikits\statsmodels\sandbox\contrast_old.py", line 91, in compute_matrix + T = np.transpose(np.array(t(*args, **kw))) + File "c:\...\scikits\statsmodels\sandbox\formula.py", line 150, in __call__ + If the term has no 'func' attribute, it returns +KeyError: '(ff==a)' +''' + +#convert factor to formula + +f7 = formula.Formula(fac) +# explicit updating of namespace with +f7.namespace.update(dict(zip(fac.names(),fac()))) + +# contrast matrix with 2 of 3 terms +contrast.Contrast(formula.Term('(ff==b)')+formula.Term('(ff==a)'), f7).matrix +#array([[ 1., 0., 0.], +# [ 0., 1., 0.]]) + +# contrast matrix for all terms +contrast.Contrast(f7, f7).matrix +#array([[ 1., 0., 0.], +# [ 0., 1., 0.], +# [ 0., 0., 1.]]) + +# contrast matrix for difference groups 1,2 versus group 0 +contrast.Contrast(formula.Term('(ff==b)')+formula.Term('(ff==c)'), f7).matrix - contrast.Contrast(formula.Term('(ff==a)'), f7).matrix +#array([[-1., 1., 0.], +# [-1., 0., 1.]]) + + +# all pairwise contrasts +cont = [] +for i,j in zip(*np.triu_indices(len(f7.names()),1)): + ci = contrast.Contrast(formula.Term(f7.names()[i]), f7).matrix + ci -= contrast.Contrast(formula.Term(f7.names()[j]), f7).matrix + cont.append(ci) + +cont = np.array(cont) +cont +#array([[ 1., -1., 0.], +# [ 1., 0., -1.], +# [ 0., 1., -1.]]) diff --git a/statsmodels/sandbox/examples/ex_formula_factor.py b/statsmodels/sandbox/examples/ex_formula_factor.py new file mode 100644 index 0000000..559fb18 --- /dev/null +++ b/statsmodels/sandbox/examples/ex_formula_factor.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +""" +Created on Sat May 15 19:59:42 2010 +Author: josef-pktd +""" + +import numpy as np + +from statsmodels.sandbox import formula +import statsmodels.sandbox.contrast_old as contrast + + + +#define a categorical variable - factor + + +f0 = ['a','b','c']*4 +f = ['a']*4 + ['b']*3 + ['c']*4 +fac = formula.Factor('ff', f) +fac.namespace = {'ff':f} +list(fac.values()) +[f for f in dir(fac) if f[0] != '_'] + +#create dummy variable + +fac.get_columns().shape +fac.get_columns().T + +#this is a way of encoding effects from a categorical variable +#different from using dummy variables +#I never seen a reference for this. + +fac.main_effect(reference=1) +#dir(fac.main_effect(reference=1)) +fac.main_effect(reference=1)() +#fac.main_effect(reference=1).func +fac.main_effect(reference=1).names() +fac.main_effect(reference=2).names() +fac.main_effect(reference=2)().shape + +#columns for the design matrix + +fac.main_effect(reference=2)().T +fac.names() + + + + diff --git a/statsmodels/sandbox/examples/ex_gam_results.py b/statsmodels/sandbox/examples/ex_gam_results.py new file mode 100644 index 0000000..97793dd --- /dev/null +++ b/statsmodels/sandbox/examples/ex_gam_results.py @@ -0,0 +1,59 @@ +# -*- coding: utf-8 -*- +"""Example results for GAM from tests + +Created on Mon Nov 07 13:13:15 2011 + +Author: Josef Perktold + +The example is loaded from a test module. The test still fails but the +results look relatively good. +I don't know yet why there is the small difference and why GAM doesn't +converge in this case + +""" + + + +from statsmodels.sandbox.tests.test_gam import _estGAMGaussianLogLink + + +tt = _estGAMGaussianLogLink() +comp, const = tt.res_gam.smoothed_demeaned(tt.mod_gam.exog) +comp_glm_ = tt.res2.model.exog * tt.res2.params +comp1 = comp_glm_[:,1:4].sum(1) +mean1 = comp1.mean() +comp1 -= mean1 +comp2 = comp_glm_[:,4:].sum(1) +mean2 = comp2.mean() +comp2 -= mean2 + +comp1_true = tt.res2.model.exog[:,1:4].sum(1) +mean1 = comp1_true.mean() +comp1_true -= mean1 +comp2_true = tt.res2.model.exog[:,4:].sum(1) +mean2 = comp2_true.mean() +comp2_true -= mean2 + +noise = tt.res2.model.endog - tt.mu_true +noise_eta = tt.family.link(tt.res2.model.endog) - tt.y_true + +import matplotlib.pyplot as plt +plt.figure() +plt.plot(noise, 'k.') +plt.figure() +plt.plot(comp, 'r-') +plt.plot(comp1, 'b-') +plt.plot(comp2, 'b-') +plt.plot(comp1_true, 'k--', lw=2) +plt.plot(comp2_true, 'k--', lw=2) +#the next doesn't make sense - non-linear +#c1 = tt.family.link(tt.family.link.inverse(comp1_true) + noise) +#c2 = tt.family.link(tt.family.link.inverse(comp2_true) + noise) +#not nice in example/plot: noise variance is constant not proportional +plt.plot(comp1_true + noise_eta, 'g.', alpha=0.95) +plt.plot(comp2_true + noise_eta, 'r.', alpha=0.95) +#plt.plot(c1, 'g.', alpha=0.95) +#plt.plot(c2, 'r.', alpha=0.95) +plt.title('Gaussian loglink, GAM (red), GLM (blue), true (black)') +plt.show() + diff --git a/statsmodels/sandbox/examples/ex_kaplan_meier.py b/statsmodels/sandbox/examples/ex_kaplan_meier.py new file mode 100644 index 0000000..0aed40f --- /dev/null +++ b/statsmodels/sandbox/examples/ex_kaplan_meier.py @@ -0,0 +1,124 @@ +#An example for the Kaplan-Meier estimator +from __future__ import print_function +from statsmodels.compat.python import lrange +import statsmodels.api as sm +import matplotlib.pyplot as plt +import numpy as np +from statsmodels.sandbox.survival2 import KaplanMeier + +#Getting the strike data as an array +dta = sm.datasets.strikes.load() +print('basic data') +print('\n') +dta = list(dta.values()[-1]) +print(dta[lrange(5),:]) +print('\n') + +#Create the KaplanMeier object and fit the model + +km = KaplanMeier(dta,0) +km.fit() + +#show the results + +km.plot() +print('basic model') +print('\n') +km.summary() +print('\n') + +#Mutiple survival curves + +km2 = KaplanMeier(dta,0,exog=1) +km2.fit() +print('more than one curve') +print('\n') +km2.summary() +print('\n') +km2.plot() + +#with censoring + +censoring = np.ones_like(dta[:,0]) +censoring[dta[:,0] > 80] = 0 +dta = np.c_[dta,censoring] +print('with censoring') +print('\n') +print(dta[lrange(5),:]) +print('\n') +km3 = KaplanMeier(dta,0,exog=1,censoring=2) +km3.fit() +km3.summary() +print('\n') +km3.plot() + +#Test for difference of survival curves + +log_rank = km3.test_diff([0.0645,-0.03957]) +print('log rank test') +print('\n') +print(log_rank) +print('\n') + +#The zeroth element of log_rank is the chi-square test statistic +#for the difference between the survival curves for exog = 0.0645 +#and exog = -0.03957, the index one element is the degrees of freedom for +#the test, and the index two element is the p-value for the test + +wilcoxon = km3.test_diff([0.0645,-0.03957], rho=1) +print('Wilcoxon') +print('\n') +print(wilcoxon) +print('\n') + +#Same info as log_rank, but for Peto and Peto modification to the +#Gehan-Wilcoxon test + +#User specified functions for tests + +#A wider range of rates can be accessed by using the 'weight' parameter +#for the test_diff method + +#For example, if the desire weights are S(t)*(1-S(t)), where S(t) is a pooled +#estimate for the survival function, this could be computed by doing + +def weights(t): + #must accept one arguement, even though it is not used here + s = KaplanMeier(dta,0,censoring=2) + s.fit() + s = s.results[0][0] + s = s * (1 - s) + return s + +#KaplanMeier provides an array of times to the weighting function +#internally, so the weighting function must accept one arguement + +test = km3.test_diff([0.0645,-0.03957], weight=weights) +print('user specified weights') +print('\n') +print(test) +print('\n') + +#Groups with nan names + +#These can be handled by passing the data to KaplanMeier as an array of strings + +groups = np.ones_like(dta[:,1]) +groups = groups.astype('S4') +groups[dta[:,1] > 0] = 'high' +groups[dta[:,1] <= 0] = 'low' +dta = dta.astype('S4') +dta[:,1] = groups +print('with nan group names') +print('\n') +print(dta[lrange(5),:]) +print('\n') +km4 = KaplanMeier(dta,0,exog=1,censoring=2) +km4.fit() +km4.summary() +print('\n') +km4.plot() + +#show all the plots + +plt.show() diff --git a/statsmodels/sandbox/examples/ex_mixed_lls_0.py b/statsmodels/sandbox/examples/ex_mixed_lls_0.py new file mode 100644 index 0000000..6e53f4b --- /dev/null +++ b/statsmodels/sandbox/examples/ex_mixed_lls_0.py @@ -0,0 +1,155 @@ +# -*- coding: utf-8 -*- +"""Example using OneWayMixed + + +Created on Sat Dec 03 10:15:55 2011 + +Author: Josef Perktold + +This example constructs a linear model with individual specific random +effects and random coefficients, and uses OneWayMixed to estimate it. + + +""" +from __future__ import print_function +import numpy as np + +from statsmodels.sandbox.panel.mixed import OneWayMixed, Unit + +examples = ['ex1'] + +if 'ex1' in examples: + #np.random.seed(54321) + np.random.seed(978326) + nsubj = 2000 + units = [] + + nobs_i = 4 #number of observations per unit, changed below + + nx = 4 #number fixed effects + nz = 2 ##number random effects + beta = np.ones(nx) + gamma = 0.5 * np.ones(nz) #mean of random effect + gamma[0] = 0 + gamma_re_true = [] + for i in range(nsubj): + #create data for one unit + + #random effect/coefficient + gamma_re = gamma + 0.2 * np.random.standard_normal(nz) + #store true parameter for checking + gamma_re_true.append(gamma_re) + + #for testing unbalanced case, let's change nobs per unit + if i > nsubj//4: + nobs_i = 6 + + #generate exogenous variables + X = np.random.standard_normal((nobs_i, nx)) + Z = np.random.standard_normal((nobs_i, nz-1)) + Z = np.column_stack((np.ones(nobs_i), Z)) + + noise = 0.1 * np.random.randn(nobs_i) #sig_e = 0.1 + + #generate endogenous variable + Y = np.dot(X, beta) + np.dot(Z, gamma_re) + noise + + #add random effect design matrix also to fixed effects to + #capture the mean + #this seems to be necessary to force mean of RE to zero !? + #(It's not required for estimation but interpretation of random + #effects covariance matrix changes - still need to check details. + X = np.hstack((X,Z)) + + #create units and append to list + unit = Unit(Y, X, Z) + units.append(unit) + + + m = OneWayMixed(units) + + import time + t0 = time.time() + m.initialize() + res = m.fit(maxiter=100, rtol=1.0e-5, params_rtol=1e-6, params_atol=1e-6) + t1 = time.time() + print('time for initialize and fit', t1-t0) + print('number of iterations', m.iterations) + #print(dir(m) + #print(vars(m) + print('\nestimates for fixed effects') + print(m.a) + print(m.params) + bfixed_cov = m.cov_fixed() + print('beta fixed standard errors') + print(np.sqrt(np.diag(bfixed_cov))) + + print(m.bse) + b_re = m.params_random_units + print('RE mean:', b_re.mean(0)) + print('RE columns std', b_re.std(0)) + print('np.cov(b_re, rowvar=0), sample statistic') + print(np.cov(b_re, rowvar=0)) + print('std of above') + print(np.sqrt(np.diag(np.cov(b_re, rowvar=0)))) + print('m.cov_random()') + print(m.cov_random()) + print('std of above') + print(res.std_random()) + print(np.sqrt(np.diag(m.cov_random()))) + + print('\n(non)convergence of llf') + print(m.history['llf'][-4:]) + print('convergence of parameters') + #print(np.diff(np.vstack(m.history[-4:])[:,1:],axis=0) + print(np.diff(np.vstack(m.history['params'][-4:]),axis=0)) + print('convergence of D') + print(np.diff(np.array(m.history['D'][-4:]), axis=0)) + + #zdotb = np.array([np.dot(unit.Z, unit.b) for unit in m.units]) + zb = np.array([(unit.Z * unit.b[None,:]).sum(0) for unit in m.units]) + '''if Z is not included in X: + >>> np.dot(b_re.T, b_re)/100 + array([[ 0.03270611, -0.00916051], + [-0.00916051, 0.26432783]]) + >>> m.cov_random() + array([[ 0.0348722 , -0.00909159], + [-0.00909159, 0.26846254]]) + >>> #note cov_random doesn't subtract mean! + ''' + print('\nchecking the random effects distribution and prediction') + gamma_re_true = np.array(gamma_re_true) + print('mean of random effect true', gamma_re_true.mean(0)) + print('mean from fixed effects ', m.params[-2:]) + print('mean of estimated RE ', b_re.mean(0)) + + print('') + absmean_true = np.abs(gamma_re_true).mean(0) + mape = ((m.params[-2:] + b_re) / gamma_re_true - 1).mean(0)*100 + mean_abs_perc = np.abs((m.params[-2:] + b_re) - gamma_re_true).mean(0) \ + / absmean_true*100 + median_abs_perc = np.median(np.abs((m.params[-2:] + b_re) - gamma_re_true), 0) \ + / absmean_true*100 + rmse_perc = ((m.params[-2:] + b_re) - gamma_re_true).std(0) \ + / absmean_true*100 + print('mape ', mape) + print('mean_abs_perc ', mean_abs_perc) + print('median_abs_perc', median_abs_perc) + print('rmse_perc (std)', rmse_perc) + from numpy.testing import assert_almost_equal + #assert is for n_units=100 in original example + #I changed random number generation, so this won't work anymore + #assert_almost_equal(rmse_perc, [ 34.14783884, 11.6031684 ], decimal=8) + + #now returns res + print(res.llf) #based on MLE, does not include constant + print(res.tvalues) + print(res.pvalues) + print(res.t_test([1,-1,0,0,0,0])) + print('test mean of both random effects variables is zero') + print(res.f_test([[0,0,0,0,1,0], [0,0,0,0,0,1]])) + plots = res.plot_random_univariate(bins=50) + fig = res.plot_scatter_pairs(0, 1) + import matplotlib.pyplot as plt + + plt.show() diff --git a/statsmodels/sandbox/examples/ex_mixed_lls_re.py b/statsmodels/sandbox/examples/ex_mixed_lls_re.py new file mode 100644 index 0000000..c839df7 --- /dev/null +++ b/statsmodels/sandbox/examples/ex_mixed_lls_re.py @@ -0,0 +1,159 @@ +# -*- coding: utf-8 -*- +"""Example using OneWayMixed + + +Created on Sat Dec 03 10:15:55 2011 + +Author: Josef Perktold + +This example constructs a linear model with individual specific random +effects, and uses OneWayMixed to estimate it. + +This is a variation on ex_mixed_lls_0.py. Here we only have a single +individual specific constant, that is just a random effect without exogenous +regressors. + +""" + +import numpy as np + +from statsmodels.sandbox.panel.mixed import OneWayMixed, Unit + +examples = ['ex1'] + +if 'ex1' in examples: + #np.random.seed(54321) + np.random.seed(978326) + nsubj = 2000 + units = [] + + nobs_i = 4 #number of observations per unit, changed below + + nx = 0 #number fixed effects + nz = 1 ##number random effects + beta = np.ones(nx) + gamma = 0.5 * np.ones(nz) #mean of random effect + gamma[0] = 0 + gamma_re_true = [] + for i in range(nsubj): + #create data for one unit + + #random effect/coefficient + gamma_re = gamma + 0.2 * np.random.standard_normal(nz) + #store true parameter for checking + gamma_re_true.append(gamma_re) + + #for testing unbalanced case, let's change nobs per unit + if i > nsubj//4: + nobs_i = 6 + + #generate exogenous variables + X = np.random.standard_normal((nobs_i, nx)) + Z = np.random.standard_normal((nobs_i, nz-1)) + Z = np.column_stack((np.ones(nobs_i), Z)) + + noise = 0.1 * np.random.randn(nobs_i) #sig_e = 0.1 + + #generate endogenous variable + Y = np.dot(X, beta) + np.dot(Z, gamma_re) + noise + + #add random effect design matrix also to fixed effects to + #capture the mean + #this seems to be necessary to force mean of RE to zero !? + #(It's not required for estimation but interpretation of random + #effects covariance matrix changes - still need to check details. + X = np.hstack((X,Z)) + + #create units and append to list + unit = Unit(Y, X, Z) + units.append(unit) + + + m = OneWayMixed(units) + + import time + t0 = time.time() + m.initialize() + res = m.fit(maxiter=100, rtol=1.0e-5, params_rtol=1e-6, params_atol=1e-6) + t1 = time.time() + print('time for initialize and fit', t1-t0) + print('number of iterations', m.iterations) + #print dir(m) + #print vars(m) + print('\nestimates for fixed effects') + print(m.a) + print(m.params) + bfixed_cov = m.cov_fixed() + print('beta fixed standard errors') + print(np.sqrt(np.diag(bfixed_cov))) + + print(m.bse) + b_re = m.params_random_units + print('RE mean:', b_re.mean(0)) + print('RE columns std', b_re.std(0)) + print('np.cov(b_re, rowvar=0), sample statistic') + print(np.cov(b_re, rowvar=0)) + print('std of above') + #need atleast_1d or diag raises exception + print(np.sqrt(np.diag(np.atleast_1d(np.cov(b_re, rowvar=0))))) + print('m.cov_random()') + print(m.cov_random()) + print('std of above') + print(res.std_random()) + print(np.sqrt(np.diag(m.cov_random()))) + + print('\n(non)convergence of llf') + print(m.history['llf'][-4:]) + print('convergence of parameters') + #print np.diff(np.vstack(m.history[-4:])[:,1:],axis=0) + print(np.diff(np.vstack(m.history['params'][-4:]),axis=0)) + print('convergence of D') + print(np.diff(np.array(m.history['D'][-4:]), axis=0)) + + #zdotb = np.array([np.dot(unit.Z, unit.b) for unit in m.units]) + zb = np.array([(unit.Z * unit.b[None,:]).sum(0) for unit in m.units]) + '''if Z is not included in X: + >>> np.dot(b_re.T, b_re)/100 + array([[ 0.03270611, -0.00916051], + [-0.00916051, 0.26432783]]) + >>> m.cov_random() + array([[ 0.0348722 , -0.00909159], + [-0.00909159, 0.26846254]]) + >>> #note cov_random doesn't subtract mean! + ''' + print('\nchecking the random effects distribution and prediction') + gamma_re_true = np.array(gamma_re_true) + print('mean of random effect true', gamma_re_true.mean(0)) + print('mean from fixed effects ', m.params[-2:]) + print('mean of estimated RE ', b_re.mean(0)) + + print() + absmean_true = np.abs(gamma_re_true).mean(0) + mape = ((m.params[-2:] + b_re) / gamma_re_true - 1).mean(0)*100 + mean_abs_perc = np.abs((m.params[-2:] + b_re) - gamma_re_true).mean(0) \ + / absmean_true*100 + median_abs_perc = np.median(np.abs((m.params[-2:] + b_re) - gamma_re_true), 0) \ + / absmean_true*100 + rmse_perc = ((m.params[-2:] + b_re) - gamma_re_true).std(0) \ + / absmean_true*100 + print('mape ', mape) + print('mean_abs_perc ', mean_abs_perc) + print('median_abs_perc', median_abs_perc) + print('rmse_perc (std)', rmse_perc) + from numpy.testing import assert_almost_equal + #assert is for n_units=100 in original example + #I changed random number generation, so this won't work anymore + #assert_almost_equal(rmse_perc, [ 34.14783884, 11.6031684 ], decimal=8) + + #now returns res + print('llf', res.llf) #based on MLE, does not include constant + print('tvalues', res.tvalues) + print('pvalues', res.pvalues) + print(res.t_test([1])) + print('test mean of both random effects variables is zero') + print(res.f_test([[1]])) + plots = res.plot_random_univariate(bins=50) + #fig = res.plot_scatter_pairs(0, 1) #no pairs + import matplotlib.pyplot as plt + + plt.show() diff --git a/statsmodels/sandbox/examples/ex_mixed_lls_timecorr.py b/statsmodels/sandbox/examples/ex_mixed_lls_timecorr.py new file mode 100644 index 0000000..2652a67 --- /dev/null +++ b/statsmodels/sandbox/examples/ex_mixed_lls_timecorr.py @@ -0,0 +1,211 @@ +# -*- coding: utf-8 -*- +"""Example using OneWayMixed with within group intertemporal correlation + + +Created on Sat Dec 03 10:15:55 2011 + +Author: Josef Perktold + +This example constructs a linear model with individual specific random +effects, and uses OneWayMixed to estimate it. + +This is a variation on ex_mixed_lls_0.py. +Here we use time dummies as random effects (all except 1st time period). + +I think, this should allow for (almost) arbitrary intertemporal correlation. +The assumption is that each unit can have different constants, however the +intertemporal covariance matrix is the same for all units. One caveat, to +avoid singular matrices, we have to treat one time period differently. + +Estimation requires that the number of units is larger than the number of +time periods. Also, it requires that we have the same number of periods for +each unit. + +I needed to remove the first observation from the time dummies to avoid a +singular matrix. So, interpretation of time effects should be relative to +first observation. (I didn't check the math.) +TODO: +Note, I don't already have constant in X. Constant for first +time observation is missing. +Do I need all dummies in exog_fe, Z, but not in exog_re, Z? Tried this and +it works. +In the error decomposition we also have the noise variable, I guess this works +like constant, so we get full rank (square) with only T-1 time dummies. +But we don't get correlation with the noise, or do we? conditional? +-> sample correlation of estimated random effects looks a bit high, + upward bias? or still some problems with initial condition? + correlation from estimated cov_random looks good. + +Since we include the time dummies also in the fixed effect, we can have +arbitrary trends, different constants in each period. + + +Intertemporal correlation in data generating process, DGP, to see if +the results correctly estimate it. +used AR(1) as example, but only starting at second period. (?) +Note: we don't impose AR structure in the estimation + +""" + +import numpy as np + +from statsmodels.sandbox.panel.mixed import OneWayMixed, Unit + +examples = ['ex1'] + +if 'ex1' in examples: + #np.random.seed(54321) + #np.random.seed(978326) + nsubj = 200 + units = [] + + nobs_i = 8 #number of observations per unit, changed below + + nx = 1 #number fixed effects + nz = nobs_i - 1 ##number random effects + beta = np.ones(nx) + gamma = 0.5 * np.ones(nz) #mean of random effect + #gamma[0] = 0 + gamma_re_true = [] + for i in range(nsubj): + #create data for one unit + + #random effect/coefficient + + use_correlated = True + if not use_correlated: + gamma_re = gamma + 0.2 * np.random.standard_normal(nz) + else: + #coefficients are AR(1) for all but first time periods + from scipy import linalg as splinalg + rho = 0.6 + corr_re = splinalg.toeplitz(rho**np.arange(nz)) + rvs = np.random.multivariate_normal(np.zeros(nz), corr_re) + gamma_re = gamma + 0.2 * rvs + + #store true parameter for checking + gamma_re_true.append(gamma_re) + + #generate exogenous variables + X = np.random.standard_normal((nobs_i, nx)) + + #try Z should be time dummies + time_dummies = (np.arange(nobs_i)[:, None] == np.arange(nobs_i)[None, :]).astype(float) + Z = time_dummies[:,1:] + +# Z = np.random.standard_normal((nobs_i, nz-1)) +# Z = np.column_stack((np.ones(nobs_i), Z)) + + noise = 0.1 * np.random.randn(nobs_i) #sig_e = 0.1 + + #generate endogenous variable + Y = np.dot(X, beta) + np.dot(Z, gamma_re) + noise + + #add random effect design matrix also to fixed effects to + #capture the mean + #this seems to be necessary to force mean of RE to zero !? + #(It's not required for estimation but interpretation of random + #effects covariance matrix changes - still need to check details. + #X = np.hstack((X,Z)) + X = np.hstack((X, time_dummies)) + + #create units and append to list + unit = Unit(Y, X, Z) + units.append(unit) + + + m = OneWayMixed(units) + + import time + t0 = time.time() + m.initialize() + res = m.fit(maxiter=100, rtol=1.0e-5, params_rtol=1e-6, params_atol=1e-6) + t1 = time.time() + print('time for initialize and fit', t1-t0) + print('number of iterations', m.iterations) + #print dir(m) + #print vars(m) + print('\nestimates for fixed effects') + print(m.a) + print(m.params) + bfixed_cov = m.cov_fixed() + print('beta fixed standard errors') + print(np.sqrt(np.diag(bfixed_cov))) + + print(m.bse) + b_re = m.params_random_units + print('RE mean:', b_re.mean(0)) + print('RE columns std', b_re.std(0)) + print('np.cov(b_re, rowvar=0), sample statistic') + print(np.cov(b_re, rowvar=0)) + print('sample correlation of estimated random effects') + print(np.corrcoef(b_re, rowvar=0)) + print('std of above') + #need atleast_1d or diag raises exception + print(np.sqrt(np.diag(np.atleast_1d(np.cov(b_re, rowvar=0))))) + print('m.cov_random()') + print(m.cov_random()) + print('correlation from above') + print(res.cov_random()/ res.std_random()[:,None] /res.std_random()) + print('std of above') + print(res.std_random()) + print(np.sqrt(np.diag(m.cov_random()))) + + print('\n(non)convergence of llf') + print(m.history['llf'][-4:]) + print('convergence of parameters') + #print np.diff(np.vstack(m.history[-4:])[:,1:],axis=0) + print(np.diff(np.vstack(m.history['params'][-4:]),axis=0)) + print('convergence of D') + print(np.diff(np.array(m.history['D'][-4:]), axis=0)) + + #zdotb = np.array([np.dot(unit.Z, unit.b) for unit in m.units]) + zb = np.array([(unit.Z * unit.b[None,:]).sum(0) for unit in m.units]) + '''if Z is not included in X: + >>> np.dot(b_re.T, b_re)/100 + array([[ 0.03270611, -0.00916051], + [-0.00916051, 0.26432783]]) + >>> m.cov_random() + array([[ 0.0348722 , -0.00909159], + [-0.00909159, 0.26846254]]) + >>> #note cov_random doesn't subtract mean! + ''' + print('\nchecking the random effects distribution and prediction') + gamma_re_true = np.array(gamma_re_true) + print('mean of random effect true', gamma_re_true.mean(0)) + print('mean from fixed effects ', m.params[-2:]) + print('mean of estimated RE ', b_re.mean(0)) + + print() + absmean_true = np.abs(gamma_re_true).mean(0) + mape = ((m.params[-nz:] + b_re) / gamma_re_true - 1).mean(0)*100 + mean_abs_perc = np.abs((m.params[-nz:] + b_re) - gamma_re_true).mean(0) \ + / absmean_true*100 + median_abs_perc = np.median(np.abs((m.params[-nz:] + b_re) - gamma_re_true), 0) \ + / absmean_true*100 + rmse_perc = ((m.params[-nz:] + b_re) - gamma_re_true).std(0) \ + / absmean_true*100 + print('mape ', mape) + print('mean_abs_perc ', mean_abs_perc) + print('median_abs_perc', median_abs_perc) + print('rmse_perc (std)', rmse_perc) + from numpy.testing import assert_almost_equal + #assert is for n_units=100 in original example + #I changed random number generation, so this won't work anymore + #assert_almost_equal(rmse_perc, [ 34.14783884, 11.6031684 ], decimal=8) + + #now returns res + print('llf', res.llf) #based on MLE, does not include constant + print('tvalues', res.tvalues) + print('pvalues', res.pvalues) + rmat = np.zeros(len(res.params)) + rmat[-nz:] = 1 + print('t_test mean of random effects variables are zero') + print(res.t_test(rmat)) + print('f_test mean of both random effects variables is zero (joint hypothesis)') + print(res.f_test(rmat)) + plots = res.plot_random_univariate() #(bins=50) + fig = res.plot_scatter_all_pairs() + import matplotlib.pyplot as plt + + plt.show() diff --git a/statsmodels/sandbox/examples/ex_onewaygls.py b/statsmodels/sandbox/examples/ex_onewaygls.py new file mode 100644 index 0000000..72c0d55 --- /dev/null +++ b/statsmodels/sandbox/examples/ex_onewaygls.py @@ -0,0 +1,196 @@ +# -*- coding: utf-8 -*- +"""Example: Test for equality of coefficients across groups/regressions + + +Created on Sat Mar 27 22:36:51 2010 +Author: josef-pktd +""" + +import numpy as np +from scipy import stats +#from numpy.testing import assert_almost_equal +import statsmodels.api as sm +from statsmodels.sandbox.regression.onewaygls import OneWayLS + +#choose example +#-------------- +example = ['null', 'diff'][1] #null: identical coefficients across groups +example_size = [10, 100][0] +example_size = [(10,2), (100,2)][0] +example_groups = ['2', '2-2'][1] +#'2-2': 4 groups, +# groups 0 and 1 and groups 2 and 3 have identical parameters in DGP + +#generate example +#---------------- +np.random.seed(87654589) +nobs, nvars = example_size +x1 = np.random.normal(size=(nobs, nvars)) +y1 = 10 + np.dot(x1,[15.]*nvars) + 2*np.random.normal(size=nobs) + +x1 = sm.add_constant(x1, prepend=False) +#assert_almost_equal(x1, np.vander(x1[:,0],2), 16) +#res1 = sm.OLS(y1, x1).fit() +#print res1.params +#print np.polyfit(x1[:,0], y1, 1) +#assert_almost_equal(res1.params, np.polyfit(x1[:,0], y1, 1), 14) +#print res1.summary(xname=['x1','const1']) + +#regression 2 +x2 = np.random.normal(size=(nobs,nvars)) +if example == 'null': + y2 = 10 + np.dot(x2,[15.]*nvars) + 2*np.random.normal(size=nobs) # if H0 is true +else: + y2 = 19 + np.dot(x2,[17.]*nvars) + 2*np.random.normal(size=nobs) + +x2 = sm.add_constant(x2, prepend=False) + +# stack +x = np.concatenate((x1,x2),0) +y = np.concatenate((y1,y2)) +if example_groups == '2': + groupind = (np.arange(2*nobs)>nobs-1).astype(int) +else: + groupind = np.mod(np.arange(2*nobs),4) + groupind.sort() +#x = np.column_stack((x,x*groupind[:,None])) + + +def print_results(res): + groupind = res.groups + #res.fitjoint() #not really necessary, because called by ftest_summary + ft = res.ftest_summary() + #print ft[0] #skip because table is nicer + print('\nTable of F-tests for overall or pairwise equality of coefficients') +## print 'hypothesis F-statistic p-value df_denom df_num reject' +## for row in ft[1]: +## print row, +## if row[1][1]<0.05: +## print '*' +## else: +## print '' + from statsmodels.iolib import SimpleTable + print(SimpleTable([(['%r'%(row[0],)] + + list(row[1]) + + ['*']*(row[1][1]>0.5).item() ) for row in ft[1]], + headers=['pair', 'F-statistic','p-value','df_denom', + 'df_num'])) + + print('Notes: p-values are not corrected for many tests') + print(' (no Bonferroni correction)') + print(' * : reject at 5% uncorrected confidence level') + print('Null hypothesis: all or pairwise coefficient are the same') + print('Alternative hypothesis: all coefficients are different') + + print('\nComparison with stats.f_oneway') + print(stats.f_oneway(*[y[groupind==gr] for gr in res.unique])) + print('\nLikelihood Ratio Test') + print('likelihood ratio p-value df') + print(res.lr_test()) + print('Null model: pooled all coefficients are the same across groups,') + print('Alternative model: all coefficients are allowed to be different') + print('not verified but looks close to f-test result') + + print('\nOls parameters by group from individual, separate ols regressions') + for group in sorted(res.olsbygroup): + r = res.olsbygroup[group] + print(group, r.params) + + print('\nCheck for heteroscedasticity, ') + print('variance and standard deviation for individual regressions') + print(' '*12, ' '.join('group %-10s' %(gr) for gr in res.unique)) + print('variance ', res.sigmabygroup) + print('standard dev', np.sqrt(res.sigmabygroup)) + +#now added to class +def print_results2(res): + groupind = res.groups + #res.fitjoint() #not really necessary, because called by ftest_summary + ft = res.ftest_summary() + txt = '' + #print ft[0] #skip because table is nicer + templ = \ +'''Table of F-tests for overall or pairwise equality of coefficients' +%(tab)s + + +Notes: p-values are not corrected for many tests + (no Bonferroni correction) + * : reject at 5%% uncorrected confidence level +Null hypothesis: all or pairwise coefficient are the same' +Alternative hypothesis: all coefficients are different' + + +Comparison with stats.f_oneway +%(statsfow)s + + +Likelihood Ratio Test +%(lrtest)s +Null model: pooled all coefficients are the same across groups,' +Alternative model: all coefficients are allowed to be different' +not verified but looks close to f-test result' + + +Ols parameters by group from individual, separate ols regressions' +%(olsbg)s +for group in sorted(res.olsbygroup): + r = res.olsbygroup[group] + print group, r.params + + +Check for heteroscedasticity, ' +variance and standard deviation for individual regressions' +%(grh)s +variance ', res.sigmabygroup +standard dev', np.sqrt(res.sigmabygroup) +''' + + from statsmodels.iolib import SimpleTable + resvals = {} + resvals['tab'] = str(SimpleTable([(['%r'%(row[0],)] + + list(row[1]) + + ['*']*(row[1][1]>0.5).item() ) for row in ft[1]], + headers=['pair', 'F-statistic','p-value','df_denom', + 'df_num'])) + resvals['statsfow'] = str(stats.f_oneway(*[y[groupind==gr] for gr in + res.unique])) + #resvals['lrtest'] = str(res.lr_test()) + resvals['lrtest'] = str(SimpleTable([res.lr_test()], + headers=['likelihood ratio', 'p-value', 'df'] )) + + resvals['olsbg'] = str(SimpleTable([[group] + + res.olsbygroup[group].params.tolist() + for group in sorted(res.olsbygroup)])) + resvals['grh'] = str(SimpleTable(np.vstack([res.sigmabygroup, + np.sqrt(res.sigmabygroup)]), + headers=res.unique.tolist())) + + return templ % resvals + + + +#get results for example +#----------------------- + +print('\nTest for equality of coefficients for all exogenous variables') +print('-------------------------------------------------------------') +res = OneWayLS(y,x, groups=groupind.astype(int)) +print_results(res) + +print('\n\nOne way ANOVA, constant is the only regressor') +print('---------------------------------------------') + +print('this is the same as scipy.stats.f_oneway') +res = OneWayLS(y,np.ones(len(y)), groups=groupind) +print_results(res) + + +print('\n\nOne way ANOVA, constant is the only regressor with het is true') +print('--------------------------------------------------------------') + +print('this is the similar to scipy.stats.f_oneway,') +print('but variance is not assumed to be the same across groups') +res = OneWayLS(y,np.ones(len(y)), groups=groupind.astype(str), het=True) +print_results(res) +print(res.print_summary()) #(res) diff --git a/statsmodels/sandbox/examples/ex_random_panel.py b/statsmodels/sandbox/examples/ex_random_panel.py new file mode 100644 index 0000000..554212c --- /dev/null +++ b/statsmodels/sandbox/examples/ex_random_panel.py @@ -0,0 +1,151 @@ +# -*- coding: utf-8 -*- +""" + +Created on Fri May 18 13:05:47 2012 + +Author: Josef Perktold + +moved example from main of random_panel +""" + +import numpy as np +from statsmodels.sandbox.panel.panel_short import ShortPanelGLS, ShortPanelGLS2 +from statsmodels.sandbox.panel.random_panel import PanelSample +import statsmodels.sandbox.panel.correlation_structures as cs + +import statsmodels.stats.sandwich_covariance as sw +#from statsmodels.stats.sandwich_covariance import ( +# S_hac_groupsum, weights_bartlett, _HCCM2) +from statsmodels.stats.moment_helpers import cov2corr, se_cov +cov_nw_panel2 = sw.cov_nw_groupsum + + +examples = ['ex1'] + + +if 'ex1' in examples: + nobs = 100 + nobs_i = 5 + n_groups = nobs // nobs_i + k_vars = 3 + +# dgp = PanelSample(nobs, k_vars, n_groups, corr_structure=cs.corr_equi, +# corr_args=(0.6,)) +# dgp = PanelSample(nobs, k_vars, n_groups, corr_structure=cs.corr_ar, +# corr_args=([1, -0.95],)) + dgp = PanelSample(nobs, k_vars, n_groups, corr_structure=cs.corr_arma, + corr_args=([1], [1., -0.9],), seed=377769) + print('seed', dgp.seed) + y = dgp.generate_panel() + noise = y - dgp.y_true + print(np.corrcoef(y.reshape(-1,n_groups, order='F'))) + print(np.corrcoef(noise.reshape(-1,n_groups, order='F'))) + + mod = ShortPanelGLS2(y, dgp.exog, dgp.groups) + res = mod.fit() + print(res.params) + print(res.bse) + #Now what? + #res.resid is of transformed model + #np.corrcoef(res.resid.reshape(-1,n_groups, order='F')) + y_pred = np.dot(mod.exog, res.params) + resid = y - y_pred + print(np.corrcoef(resid.reshape(-1,n_groups, order='F'))) + print(resid.std()) + err = y_pred - dgp.y_true + print(err.std()) + #OLS standard errors are too small + mod.res_pooled.params + mod.res_pooled.bse + #heteroscedasticity robust doesn't help + mod.res_pooled.HC1_se + #compare with cluster robust se + + print(sw.se_cov(sw.cov_cluster(mod.res_pooled, dgp.groups.astype(int)))) + #not bad, pretty close to panel estimator + #and with Newey-West Hac + print(sw.se_cov(sw.cov_nw_panel(mod.res_pooled, 4, mod.group.groupidx))) + #too small, assuming no bugs, + #see Peterson assuming it refers to same kind of model + print(dgp.cov) + + mod2 = ShortPanelGLS(y, dgp.exog, dgp.groups) + res2 = mod2.fit_iterative(2) + print(res2.params) + print(res2.bse) + #both implementations produce the same results: + from numpy.testing import assert_almost_equal + assert_almost_equal(res.params, res2.params, decimal=12) + assert_almost_equal(res.bse, res2.bse, decimal=13) + mod5 = ShortPanelGLS(y, dgp.exog, dgp.groups) + res5 = mod5.fit_iterative(5) + print(res5.params) + print(res5.bse) + #fitting once is the same as OLS + #note: I need to create new instance, otherwise it continuous fitting + mod1 = ShortPanelGLS(y, dgp.exog, dgp.groups) + res1 = mod1.fit_iterative(1) + res_ols = mod1._fit_ols() + assert_almost_equal(res1.params, res_ols.params, decimal=12) + assert_almost_equal(res1.bse, res_ols.bse, decimal=13) + + #cov_hac_panel with uniform_kernel is the same as cov_cluster for balanced + #panel with full length kernel + #I fixe default correction to be equal + mod2._fit_ols() + cov_clu = sw.cov_cluster(mod2.res_pooled, dgp.groups.astype(int)) + clubse = se_cov(cov_clu) + cov_uni = sw.cov_nw_panel(mod2.res_pooled, 4, mod2.group.groupidx, + weights_func=sw.weights_uniform, + use_correction='cluster') + assert_almost_equal(cov_uni, cov_clu, decimal=7) + + #without correction + cov_clu2 = sw.cov_cluster(mod2.res_pooled, dgp.groups.astype(int), + use_correction=False) + cov_uni2 = sw.cov_nw_panel(mod2.res_pooled, 4, mod2.group.groupidx, + weights_func=sw.weights_uniform, + use_correction=False) + assert_almost_equal(cov_uni2, cov_clu2, decimal=8) + + cov_white = sw.cov_white_simple(mod2.res_pooled) + cov_pnw0 = sw.cov_nw_panel(mod2.res_pooled, 0, mod2.group.groupidx, + use_correction='hac') + assert_almost_equal(cov_pnw0, cov_white, decimal=13) + + time = np.tile(np.arange(nobs_i), n_groups) + #time = mod2.group.group_int + cov_pnw1 = sw.cov_nw_panel(mod2.res_pooled, 4, mod2.group.groupidx) + cov_pnw2 = cov_nw_panel2(mod2.res_pooled, 4, time) + #s = sw.group_sums(x, time) + + c2, ct, cg = sw.cov_cluster_2groups(mod2.res_pooled, time, dgp.groups.astype(int), use_correction=False) + ct_nw0 = cov_nw_panel2(mod2.res_pooled, 0, time, weights_func=sw.weights_uniform, use_correction=False) + cg_nw0 = cov_nw_panel2(mod2.res_pooled, 0, dgp.groups.astype(int), weights_func=sw.weights_uniform, use_correction=False) + assert_almost_equal(ct_nw0, ct, decimal=13) + assert_almost_equal(cg_nw0, cg, decimal=13) #pnw2 0 lags + assert_almost_equal(cov_clu2, cg, decimal=13) + assert_almost_equal(cov_uni2, cg, decimal=8) #pnw all lags + + + + + import pandas as pa + #pandas.DataFrame doesn't do inplace append + se = pa.DataFrame(res_ols.bse[None,:], index=['OLS']) + se = se.append(pa.DataFrame(res5.bse[None,:], index=['PGLSit5'])) + clbse = sw.se_cov(sw.cov_cluster(mod.res_pooled, dgp.groups.astype(int))) + se = se.append(pa.DataFrame(clbse[None,:], index=['OLSclu'])) + pnwse = sw.se_cov(sw.cov_nw_panel(mod.res_pooled, 4, mod.group.groupidx)) + se = se.append(pa.DataFrame(pnwse[None,:], index=['OLSpnw'])) + print(se) + #list(se.index) + from statsmodels.iolib.table import SimpleTable + headers = [str(i) for i in se.columns] + stubs=list(se.index) +# print SimpleTable(np.round(np.asarray(se), 4), +# headers=headers, +# stubs=stubs) + print(SimpleTable(np.asarray(se), headers=headers, stubs=stubs, + txt_fmt=dict(data_fmts=['%10.4f']), + title='Standard Errors')) diff --git a/statsmodels/sandbox/examples/example_crossval.py b/statsmodels/sandbox/examples/example_crossval.py new file mode 100644 index 0000000..eee1770 --- /dev/null +++ b/statsmodels/sandbox/examples/example_crossval.py @@ -0,0 +1,67 @@ + +import numpy as np + +from statsmodels.sandbox.tools import cross_val + + +if __name__ == '__main__': + #A: josef-pktd + + import statsmodels.api as sm + from statsmodels.api import OLS + #from statsmodels.datasets.longley import load + from statsmodels.datasets.stackloss import load + from statsmodels.iolib.table import (SimpleTable, default_txt_fmt, + default_latex_fmt, default_html_fmt) + import numpy as np + + data = load() + data.exog = sm.tools.add_constant(data.exog, prepend=False) + + resols = sm.OLS(data.endog, data.exog).fit() + + print('\n OLS leave 1 out') + for inidx, outidx in cross_val.LeaveOneOut(len(data.endog)): + res = sm.OLS(data.endog[inidx], data.exog[inidx,:]).fit() + print(data.endog[outidx], res.model.predict(res.params, data.exog[outidx,:], end=' ')) + print(data.endog[outidx] - res.model.predict(res.params, data.exog[outidx,:])) + + print('\n OLS leave 2 out') + resparams = [] + for inidx, outidx in cross_val.LeavePOut(len(data.endog), 2): + res = sm.OLS(data.endog[inidx], data.exog[inidx,:]).fit() + #print data.endog[outidx], res.model.predict(data.exog[outidx,:]), + #print ((data.endog[outidx] - res.model.predict(data.exog[outidx,:]))**2).sum() + resparams.append(res.params) + + resparams = np.array(resparams) + print(resparams) + + doplots = 1 + if doplots: + import matplotlib.pyplot as plt + from matplotlib.font_manager import FontProperties + + plt.figure() + figtitle = 'Leave2out parameter estimates' + + t = plt.gcf().text(0.5, + 0.95, figtitle, + horizontalalignment='center', + fontproperties=FontProperties(size=16)) + + for i in range(resparams.shape[1]): + plt.subplot(4, 2, i+1) + plt.hist(resparams[:,i], bins = 10) + #plt.title("Leave2out parameter estimates") + plt.show() + + + + + for inidx, outidx in cross_val.KStepAhead(20,2): + #note the following were broken because KStepAhead returns now a slice by default + print(inidx) + print(np.ones(20)[inidx].sum(), np.arange(20)[inidx][-4:]) + print(outidx) + print(np.nonzero(np.ones(20)[outidx])[0][()]) diff --git a/statsmodels/sandbox/examples/example_gam.py b/statsmodels/sandbox/examples/example_gam.py new file mode 100644 index 0000000..7aace05 --- /dev/null +++ b/statsmodels/sandbox/examples/example_gam.py @@ -0,0 +1,100 @@ +'''original example for checking how far GAM works + +Note: uncomment plt.show() to display graphs +''' + +example = 2 # 1,2 or 3 + +import numpy as np +import numpy.random as R +import matplotlib.pyplot as plt + +from statsmodels.sandbox.gam import AdditiveModel +from statsmodels.sandbox.gam import Model as GAM #? +from statsmodels.genmod.families import family +from statsmodels.genmod.generalized_linear_model import GLM + +standardize = lambda x: (x - x.mean()) / x.std() +demean = lambda x: (x - x.mean()) +nobs = 150 +x1 = R.standard_normal(nobs) +x1.sort() +x2 = R.standard_normal(nobs) +x2.sort() +y = R.standard_normal((nobs,)) + +f1 = lambda x1: (x1 + x1**2 - 3 - 1 * x1**3 + 0.1 * np.exp(-x1/4.)) +f2 = lambda x2: (x2 + x2**2 - 0.1 * np.exp(x2/4.)) +z = standardize(f1(x1)) + standardize(f2(x2)) +z = standardize(z) * 2 # 0.1 + +y += z +d = np.array([x1,x2]).T + + +if example == 1: + print("normal") + m = AdditiveModel(d) + m.fit(y) + x = np.linspace(-2,2,50) + + print(m) + + y_pred = m.results.predict(d) + plt.figure() + plt.plot(y, '.') + plt.plot(z, 'b-', label='true') + plt.plot(y_pred, 'r-', label='AdditiveModel') + plt.legend() + plt.title('gam.AdditiveModel') + +import scipy.stats, time + +if example == 2: + print("binomial") + f = family.Binomial() + b = np.asarray([scipy.stats.bernoulli.rvs(p) for p in f.link.inverse(y)]) + b.shape = y.shape + m = GAM(b, d, family=f) + toc = time.time() + m.fit(b) + tic = time.time() + print(tic-toc) + + +if example == 3: + print("Poisson") + f = family.Poisson() + y = y/y.max() * 3 + yp = f.link.inverse(y) + p = np.asarray([scipy.stats.poisson.rvs(p) for p in f.link.inverse(y)], float) + p.shape = y.shape + m = GAM(p, d, family=f) + toc = time.time() + m.fit(p) + tic = time.time() + print(tic-toc) + + +plt.figure() +plt.plot(x1, standardize(m.smoothers[0](x1)), 'r') +plt.plot(x1, standardize(f1(x1)), linewidth=2) +plt.figure() +plt.plot(x2, standardize(m.smoothers[1](x2)), 'r') +plt.plot(x2, standardize(f2(x2)), linewidth=2) + + + + +plt.show() + + + +## pylab.figure(num=1) +## pylab.plot(x1, standardize(m.smoothers[0](x1)), 'b') +## pylab.plot(x1, standardize(f1(x1)), linewidth=2) +## pylab.figure(num=2) +## pylab.plot(x2, standardize(m.smoothers[1](x2)), 'b') +## pylab.plot(x2, standardize(f2(x2)), linewidth=2) +## pylab.show() + diff --git a/statsmodels/sandbox/examples/example_gam_0.py b/statsmodels/sandbox/examples/example_gam_0.py new file mode 100644 index 0000000..3e8e426 --- /dev/null +++ b/statsmodels/sandbox/examples/example_gam_0.py @@ -0,0 +1,169 @@ +'''first examples for gam and PolynomialSmoother used for debugging + +This example was written as a test case. +The data generating process is chosen so the parameters are well identified +and estimated. + + +Note: uncomment plt.show() to display graphs +''' + +example = 2 #3 # 1,2 or 3 + +import numpy as np +from statsmodels.compat.python import zip +import numpy.random as R +import matplotlib.pyplot as plt + +from statsmodels.sandbox.gam import AdditiveModel +from statsmodels.sandbox.gam import Model as GAM #? +from statsmodels.genmod import families +from statsmodels.genmod.generalized_linear_model import GLM + +#np.random.seed(987654) + +standardize = lambda x: (x - x.mean()) / x.std() +demean = lambda x: (x - x.mean()) +nobs = 500 +lb, ub = -1., 1. #for Poisson +#lb, ub = -0.75, 2 #0.75 #for Binomial +x1 = R.uniform(lb, ub, nobs) #R.standard_normal(nobs) +x1 = np.linspace(lb, ub, nobs) +x1.sort() +x2 = R.uniform(lb, ub, nobs) # +#x2 = R.standard_normal(nobs) +x2.sort() +#x2 = np.cos(x2) +x2 = x2 + np.exp(x2/2.) +#x2 = np.log(x2-x2.min()+0.1) +y = 0.5 * R.uniform(lb, ub, nobs) #R.standard_normal((nobs,)) + +f1 = lambda x1: (2*x1 - 0.5 * x1**2 - 0.75 * x1**3) # + 0.1 * np.exp(-x1/4.)) +f2 = lambda x2: (x2 - 1* x2**2) # - 0.75 * np.exp(x2)) +z = standardize(f1(x1)) + standardize(f2(x2)) +z = standardize(z) + 1 # 0.1 +#try this +z = f1(x1) + f2(x2) +#z = demean(z) +z -= np.median(z) +print('z.std()', z.std()) +#z = standardize(z) + 0.2 +# with standardize I get better values, but I don't know what the true params are +print(z.mean(), z.min(), z.max()) + +#y += z #noise +y = z + +d = np.array([x1,x2]).T + + +if example == 1: + print("normal") + m = AdditiveModel(d) + m.fit(y) + x = np.linspace(-2,2,50) + + print(m) + +import scipy.stats, time + +if example == 2: + print("binomial") + mod_name = 'Binomial' + f = families.Binomial() + #b = np.asarray([scipy.stats.bernoulli.rvs(p) for p in f.link.inverse(y)]) + b = np.asarray([scipy.stats.bernoulli.rvs(p) for p in f.link.inverse(z)]) + b.shape = y.shape + m = GAM(b, d, family=f) + toc = time.time() + m.fit(b) + tic = time.time() + print(tic-toc) + #for plotting + yp = f.link.inverse(y) + p = b + + +if example == 3: + print("Poisson") + f = families.Poisson() + #y = y/y.max() * 3 + yp = f.link.inverse(z) + #p = np.asarray([scipy.stats.poisson.rvs(p) for p in f.link.inverse(y)], float) + p = np.asarray([scipy.stats.poisson.rvs(p) for p in f.link.inverse(z)], float) + p.shape = y.shape + m = GAM(p, d, family=f) + toc = time.time() + m.fit(p) + tic = time.time() + print(tic-toc) + +if example > 1: + y_pred = m.results.mu# + m.results.alpha#m.results.predict(d) + plt.figure() + plt.subplot(2,2,1) + plt.plot(p, '.') + plt.plot(yp, 'b-', label='true') + plt.plot(y_pred, 'r-', label='GAM') + plt.legend(loc='upper left') + plt.title('gam.GAM ' + mod_name) + + counter = 2 + for ii, xx in zip(['z', 'x1', 'x2'], [z, x1, x2]): + sortidx = np.argsort(xx) + #plt.figure() + plt.subplot(2, 2, counter) + plt.plot(xx[sortidx], p[sortidx], '.') + plt.plot(xx[sortidx], yp[sortidx], 'b.', label='true') + plt.plot(xx[sortidx], y_pred[sortidx], 'r.', label='GAM') + plt.legend(loc='upper left') + plt.title('gam.GAM ' + mod_name + ' ' + ii) + counter += 1 + +# counter = 2 +# for ii, xx in zip(['z', 'x1', 'x2'], [z, x1, x2]): +# #plt.figure() +# plt.subplot(2, 2, counter) +# plt.plot(xx, p, '.') +# plt.plot(xx, yp, 'b-', label='true') +# plt.plot(xx, y_pred, 'r-', label='GAM') +# plt.legend(loc='upper left') +# plt.title('gam.GAM Poisson ' + ii) +# counter += 1 + + plt.figure() + plt.plot(z, 'b-', label='true' ) + plt.plot(np.log(m.results.mu), 'r-', label='GAM') + plt.title('GAM Poisson, raw') + + +plt.figure() +plt.plot(x1, standardize(m.smoothers[0](x1)), 'r') +plt.plot(x1, standardize(f1(x1)), linewidth=2) +plt.figure() +plt.plot(x2, standardize(m.smoothers[1](x2)), 'r') +plt.plot(x2, standardize(f2(x2)), linewidth=2) + +##y_pred = m.results.predict(d) +##plt.figure() +##plt.plot(z, p, '.') +##plt.plot(z, yp, 'b-', label='true') +##plt.plot(z, y_pred, 'r-', label='AdditiveModel') +##plt.legend() +##plt.title('gam.AdditiveModel') + + + + +#plt.show() + + + +## pylab.figure(num=1) +## pylab.plot(x1, standardize(m.smoothers[0](x1)), 'b') +## pylab.plot(x1, standardize(f1(x1)), linewidth=2) +## pylab.figure(num=2) +## pylab.plot(x2, standardize(m.smoothers[1](x2)), 'b') +## pylab.plot(x2, standardize(f2(x2)), linewidth=2) +## pylab.show() + diff --git a/statsmodels/sandbox/examples/example_garch.py b/statsmodels/sandbox/examples/example_garch.py new file mode 100644 index 0000000..b3edb43 --- /dev/null +++ b/statsmodels/sandbox/examples/example_garch.py @@ -0,0 +1,68 @@ +import numpy as np + +import matplotlib.pyplot as plt +#import scikits.timeseries as ts +#import scikits.timeseries.lib.plotlib as tpl + +import statsmodels.api as sm +#from statsmodels.sandbox import tsa +from statsmodels.sandbox.tsa.garch import * # local import + +#dta2 = ts.tsfromtxt(r'gspc_table.csv', +# datecols=0, skiprows=0, delimiter=',',names=True, freq='D') + +#print dta2 + +aa=np.genfromtxt(r'gspc_table.csv', skip_header=0, delimiter=',', names=True) + +cl = aa['Close'] +ret = np.diff(np.log(cl))[-2000:]*1000. + +ggmod = Garch(ret - ret.mean())#hgjr4[:nobs])#-hgjr4.mean()) #errgjr4) +ggmod.nar = 1 +ggmod.nma = 1 +ggmod._start_params = np.array([-0.1, 0.1, 0.1, 0.1]) +ggres = ggmod.fit(start_params=np.array([-0.1, 0.1, 0.1, 0.0]), + maxiter=1000,method='bfgs') +print('ggres.params', ggres.params) +garchplot(ggmod.errorsest, ggmod.h, title='Garch estimated') + +use_rpy = False +if use_rpy: + from rpy import r + r.library('fGarch') + f = r.formula('~garch(1, 1)') + fit = r.garchFit(f, data = ret - ret.mean(), include_mean=False) + f = r.formula('~arma(1,1) + ~garch(1, 1)') + fit = r.garchFit(f, data = ret) + + +ggmod0 = Garch0(ret - ret.mean())#hgjr4[:nobs])#-hgjr4.mean()) #errgjr4) +ggmod0.nar = 1 +ggmod.nma = 1 +start_params = np.array([-0.1, 0.1, ret.var()]) +ggmod0._start_params = start_params #np.array([-0.6, 0.1, 0.2, 0.0]) +ggres0 = ggmod0.fit(start_params=start_params, maxiter=2000) +print('ggres0.params', ggres0.params) + +g11res = optimize.fmin(lambda params: -loglike_GARCH11(params, ret - ret.mean())[0], [0.01, 0.1, 0.1]) +print(g11res) +llf = loglike_GARCH11(g11res, ret - ret.mean()) +print(llf[0]) + + +ggmod0 = Garch0(ret - ret.mean())#hgjr4[:nobs])#-hgjr4.mean()) #errgjr4) +ggmod0.nar = 2 +ggmod.nma = 2 +start_params = np.array([-0.1,-0.1, 0.1, 0.1, ret.var()]) +ggmod0._start_params = start_params #np.array([-0.6, 0.1, 0.2, 0.0]) +ggres0 = ggmod0.fit(start_params=start_params, maxiter=2000)#, method='ncg') +print('ggres0.params', ggres0.params) + +ggmod = Garch(ret - ret.mean())#hgjr4[:nobs])#-hgjr4.mean()) #errgjr4) +ggmod.nar = 2 +ggmod.nma = 2 +start_params = np.array([-0.1,-0.1, 0.1, 0.1, 0.1, 0.1, 0.1]) +ggmod._start_params = start_params +ggres = ggmod.fit(start_params=start_params, maxiter=1000)#,method='bfgs') +print('ggres.params', ggres.params) diff --git a/statsmodels/sandbox/examples/example_maxent.py b/statsmodels/sandbox/examples/example_maxent.py new file mode 100644 index 0000000..821a81b --- /dev/null +++ b/statsmodels/sandbox/examples/example_maxent.py @@ -0,0 +1,50 @@ +""" +This is an example of using scipy.maxentropy to solve Jaynes' dice problem + +See Golan, Judge, and Miller Section 2.3 +""" + +from scipy import maxentropy +import numpy as np + +samplespace = [1., 2., 3., 4., 5., 6.] +def sump(x): + return x in samplespace + +def meanp(x): + return np.mean(x) +# Set the constraints +# 1) We have a proper probability +# 2) The mean is equal to... +F = [sump, meanp] +model = maxentropy.model(F, samplespace) + +# set the desired feature expectations +K = np.ones((5,2)) +K[:,1] = [2.,3.,3.5,4.,5.] + +model.verbose = False + +for i in range(K.shape[0]): + model.fit(K[i]) + + # Output the distribution + print("\nFitted model parameters are:\n" + str(model.params)) + print("\nFitted distribution is:") + p = model.probdist() + for j in range(len(model.samplespace)): + x = model.samplespace[j] + print("y = %-15s\tx = %-15s" %(str(K[i,1])+":",str(x) + ":") + \ + " p(x) = "+str(p[j])) + + # Now show how well the constraints are satisfied: + print() + print("Desired constraints:") + print("\tsum_{i}p_{i}= 1") + print("\tE[X] = %-15s" % str(K[i,1])) + print() + print("Actual expectations under the fitted model:") + print("\tsum_{i}p_{i} =", np.sum(p)) + print("\tE[X] = " + str(np.sum(p*np.arange(1,7)))) + + diff --git a/statsmodels/sandbox/examples/example_mle.py b/statsmodels/sandbox/examples/example_mle.py new file mode 100644 index 0000000..7431e15 --- /dev/null +++ b/statsmodels/sandbox/examples/example_mle.py @@ -0,0 +1,68 @@ +'''Examples to compare MLE with OLS + +TODO: compare standard error of parameter estimates +''' + +from scipy import optimize +import numpy as np +import statsmodels.base.model as models + +print('\nExample 1: Artificial Data') +print('--------------------------\n') +import statsmodels.api as sm + +np.random.seed(54321) +X = np.random.rand(40,2) +X = sm.add_constant(X, prepend=False) +beta = np.array((3.5, 5.7, 150)) +Y = np.dot(X,beta) + np.random.standard_normal(40) +mod2 = sm.OLS(Y,X) +res2 = mod2.fit() +f2 = lambda params: -1*mod2.loglike(params) +resfmin = optimize.fmin(f2, np.ones(3), ftol=1e-10) +print('OLS') +print(res2.params) +print('MLE') +print(resfmin) + + + +print('\nExample 2: Longley Data, high multicollinearity') +print('-----------------------------------------------\n') + +from statsmodels.datasets.longley import load +data = load() +data.exog = sm.add_constant(data.exog, prepend=False) +mod = sm.OLS(data.endog, data.exog) +f = lambda params: -1*mod.loglike(params) +score = lambda params: -1*mod.score(params) + +#now you're set up to try and minimize or root find, but I couldn't get this one to work +#note that if you want to get the results, it's also a property of mod, so you can do + +res = mod.fit() +#print mod.results.params +print('OLS') +print(res.params) +print('MLE') +#resfmin2 = optimize.fmin(f, mod.results.params*0.9, maxfun=5000, maxiter=5000, xtol=1e-10, ftol= 1e-10) +resfmin2 = optimize.fmin(f, np.ones(7), maxfun=5000, maxiter=5000, xtol=1e-10, ftol= 1e-10) +print(resfmin2) +# there isn't a unique solution? Is this due to the multicollinearity? Improved with use of analytically +# defined score function? + +#check X'X matrix +xtxi = np.linalg.inv(np.dot(data.exog.T,data.exog)) +eval, evec = np.linalg.eig(xtxi) +print('Eigenvalues') +print(eval) +# look at correlation +print('correlation matrix') +print(np.corrcoef(data.exog[:,:-1], rowvar=0)) #exclude constant +# --> conclusion high multicollinearity + +# compare +print('with matrix formula') +print(np.dot(xtxi,np.dot(data.exog.T, data.endog[:,np.newaxis])).ravel()) +print('with pinv') +print(np.dot(np.linalg.pinv(data.exog), data.endog[:,np.newaxis]).ravel()) diff --git a/statsmodels/sandbox/examples/example_nbin.py b/statsmodels/sandbox/examples/example_nbin.py new file mode 100644 index 0000000..834a404 --- /dev/null +++ b/statsmodels/sandbox/examples/example_nbin.py @@ -0,0 +1,363 @@ +# -*- coding: utf-8 -*- +''' +Author: Vincent Arel-Bundock +Date: 2012-08-25 + +This example file implements 5 variations of the negative binomial regression +model for count data: NB-P, NB-1, NB-2, geometric and left-truncated. + +The NBin class inherits from the GenericMaximumLikelihood statsmodels class +which provides automatic numerical differentiation for the score and hessian. + +NB-1, NB-2 and geometric are implemented as special cases of the NB-P model +described in Greene (2008) Functional forms for the negative binomial model for +count data. Economics Letters, v99n3. + +Tests are included to check how NB-1, NB-2 and geometric coefficient estimates +compare to equivalent models in R. Results usually agree up to the 4th digit. + +The NB-P and left-truncated model results have not been compared to other +implementations. Note that NB-P appears to only have been implemented in the +LIMDEP software. +''' + +import numpy as np +from scipy.special import gammaln +from scipy.stats import nbinom +from statsmodels.base.model import GenericLikelihoodModel +from statsmodels.base.model import GenericLikelihoodModelResults +import statsmodels.api as sm + +#### Negative Binomial Log-likelihoods #### +def _ll_nbp(y, X, beta, alph, Q): + ''' + Negative Binomial Log-likelihood -- type P + + References: + + Greene, W. 2008. "Functional forms for the negtive binomial model + for count data". Economics Letters. Volume 99, Number 3, pp.585-590. + Hilbe, J.M. 2011. "Negative binomial regression". Cambridge University Press. + + Following notation in Greene (2008), with negative binomial heterogeneity + parameter :math:`\alpha`: + + .. math:: + + \lambda_i = exp(X\beta)\\ + \theta = 1 / \alpha \\ + g_i = \theta \lambda_i^Q \\ + w_i = g_i/(g_i + \lambda_i) \\ + r_i = \theta / (\theta+\lambda_i) \\ + ln \mathcal{L}_i = ln \Gamma(y_i+g_i) - ln \Gamma(1+y_i) + g_iln (r_i) + y_i ln(1-r_i) + ''' + mu = np.exp(np.dot(X, beta)) + size = 1/alph*mu**Q + prob = size/(size+mu) + ll = nbinom.logpmf(y, size, prob) + return ll +def _ll_nb1(y, X, beta, alph): + '''Negative Binomial regression (type 1 likelihood)''' + ll = _ll_nbp(y, X, beta, alph, Q=1) + return ll +def _ll_nb2(y, X, beta, alph): + '''Negative Binomial regression (type 2 likelihood)''' + ll = _ll_nbp(y, X, beta, alph, Q=0) + return ll +def _ll_geom(y, X, beta): + '''Geometric regression''' + ll = _ll_nbp(y, X, beta, alph=1, Q=0) + return ll +def _ll_nbt(y, X, beta, alph, C=0): + ''' + Negative Binomial (truncated) + + Truncated densities for count models (Cameron & Trivedi, 2005, 680): + + .. math:: + + f(y|\beta, y \geq C+1) = \frac{f(y|\beta)}{1-F(C|\beta)} + ''' + Q = 0 + mu = np.exp(np.dot(X, beta)) + size = 1/alph*mu**Q + prob = size/(size+mu) + ll = nbinom.logpmf(y, size, prob) - np.log(1 - nbinom.cdf(C, size, prob)) + return ll + +#### Model Classes #### +class NBin(GenericLikelihoodModel): + ''' + Negative Binomial regression + + Parameters + ---------- + endog : array-like + 1-d array of the response variable. + exog : array-like + `exog` is an n x p array where n is the number of observations and p + is the number of regressors including the intercept if one is + included in the data. + ll_type: string + log-likelihood type + `nb2`: Negative Binomial type-2 (most common) + `nb1`: Negative Binomial type-1 + `nbp`: Negative Binomial type-P (Greene, 2008) + `nbt`: Left-truncated Negative Binomial (type-2) + `geom`: Geometric regression model + C: integer + Cut-point for `nbt` model + ''' + def __init__(self, endog, exog, ll_type='nb2', C=0, **kwds): + self.exog = np.array(exog) + self.endog = np.array(endog) + self.C = C + super(NBin, self).__init__(endog, exog, **kwds) + # Check user input + if ll_type not in ['nb2', 'nb1', 'nbp', 'nbt', 'geom']: + raise NameError('Valid ll_type are: nb2, nb1, nbp, nbt, geom') + self.ll_type = ll_type + # Starting values (assumes first column of exog is constant) + if ll_type == 'geom': + self.start_params_default = np.zeros(self.exog.shape[1]) + elif ll_type == 'nbp': + # Greene recommends starting NB-P at NB-2 + start_mod = NBin(endog, exog, 'nb2') + start_res = start_mod.fit(disp=False) + self.start_params_default = np.append(start_res.params, 0) + else: + self.start_params_default = np.append(np.zeros(self.exog.shape[1]), .5) + self.start_params_default[0] = np.log(self.endog.mean()) + # Define loglik based on ll_type argument + if ll_type == 'nb1': + self.ll_func = _ll_nb1 + elif ll_type == 'nb2': + self.ll_func = _ll_nb2 + elif ll_type == 'geom': + self.ll_func = _ll_geom + elif ll_type == 'nbp': + self.ll_func = _ll_nbp + elif ll_type == 'nbt': + self.ll_func = _ll_nbt + def nloglikeobs(self, params): + alph = params[-1] + beta = params[:self.exog.shape[1]] + if self.ll_type == 'geom': + return -self.ll_func(self.endog, self.exog, beta) + elif self.ll_type == 'nbt': + return -self.ll_func(self.endog, self.exog, beta, alph, self.C) + elif self.ll_type == 'nbp': + Q = params[-2] + return -self.ll_func(self.endog, self.exog, beta, alph, Q) + else: + return -self.ll_func(self.endog, self.exog, beta, alph) + def fit(self, start_params=None, maxiter=10000, maxfun=5000, **kwds): + if start_params==None: + countfit = super(NBin, self).fit(start_params=self.start_params_default, + maxiter=maxiter, maxfun=maxfun, **kwds) + else: + countfit = super(NBin, self).fit(start_params=start_params, + maxiter=maxiter, maxfun=maxfun, **kwds) + countfit = CountResults(self, countfit) + return countfit + +class CountResults(GenericLikelihoodModelResults): + def __init__(self, model, mlefit): + self.model = model + self.__dict__.update(mlefit.__dict__) + def summary(self, yname=None, xname=None, title=None, alpha=.05, + yname_list=None): + top_left = [('Dep. Variable:', None), + ('Model:', [self.model.__class__.__name__]), + ('Method:', ['MLE']), + ('Date:', None), + ('Time:', None), + ('Converged:', ["%s" % self.mle_retvals['converged']]) + ] + top_right = [('No. Observations:', None), + ('Log-Likelihood:', None), + ] + if title is None: + title = self.model.__class__.__name__ + ' ' + "Regression Results" + #boiler plate + from statsmodels.iolib.summary import Summary + smry = Summary() + # for top of table + smry.add_table_2cols(self, gleft=top_left, gright=top_right, #[], + yname=yname, xname=xname, title=title) + # for parameters, etc + smry.add_table_params(self, yname=yname_list, xname=xname, alpha=alpha, + use_t=True) + return smry + +#### Score function for NB-P #### +from scipy.special import digamma +def _score_nbp(y, X, beta, thet, Q): + ''' + Negative Binomial Score -- type P likelihood from Greene (2007) + .. math:: + + \lambda_i = exp(X\beta)\\ + g_i = \theta \lambda_i^Q \\ + w_i = g_i/(g_i + \lambda_i) \\ + r_i = \theta / (\theta+\lambda_i) \\ + A_i = \left [ \Psi(y_i+g_i) - \Psi(g_i) + ln w_i \right ] \\ + B_i = \left [ g_i (1-w_i) - y_iw_i \right ] \\ + \partial ln \mathcal{L}_i / \partial + \begin{pmatrix} \lambda_i \\ \theta \\ Q \end{pmatrix}= + [A_i+B_i] + \begin{pmatrix} Q/\lambda_i \\ 1/\theta \\ ln(\lambda_i) \end{pmatrix} + -B_i + \begin{pmatrix} 1/\lambda_i\\ 0 \\ 0 \end{pmatrix} \\ + \frac{\partial \lambda}{\partial \beta} = \lambda_i \mathbf{x}_i \\ + \frac{\partial \mathcal{L}_i}{\partial \beta} = + \left (\frac{\partial\mathcal{L}_i}{\partial \lambda_i} \right ) + \frac{\partial \lambda_i}{\partial \beta} + ''' + lamb = np.exp(np.dot(X, beta)) + g = thet * lamb**Q + w = g / (g + lamb) + r = thet / (thet+lamb) + A = digamma(y+g) - digamma(g) + np.log(w) + B = g*(1-w) - y*w + dl = (A+B) * Q/lamb - B * 1/lamb + dt = (A+B) * 1/thet + dq = (A+B) * np.log(lamb) + db = X * (dl * lamb)[:,np.newaxis] + sc = np.array([dt.sum(), dq.sum()]) + sc = np.concatenate([db.sum(axis=0), sc]) + return sc + +#### Tests #### +from statsmodels.compat.python import urlopen +from numpy.testing import assert_almost_equal +import pandas +import patsy +medpar = pandas.read_csv(urlopen('http://vincentarelbundock.github.com/Rdatasets/csv/COUNT/medpar.csv')) +mdvis = pandas.read_csv(urlopen('http://vincentarelbundock.github.com/Rdatasets/csv/COUNT/mdvis.csv')) + +# NB-2 +''' +# R v2.15.1 +library(MASS) +library(COUNT) +data(medpar) +f <- los~factor(type)+hmo+white +mod <- glm.nb(f, medpar) +summary(mod) +Call: +glm.nb(formula = f, data = medpar, init.theta = 2.243376203, + link = log) + +Deviance Residuals: + Min 1Q Median 3Q Max +-2.4671 -0.9090 -0.2693 0.4320 3.8668 + +Coefficients: + Estimate Std. Error z value Pr(>|z|) +(Intercept) 2.31028 0.06745 34.253 < 2e-16 *** +factor(type)2 0.22125 0.05046 4.385 1.16e-05 *** +factor(type)3 0.70616 0.07600 9.292 < 2e-16 *** +hmo -0.06796 0.05321 -1.277 0.202 +white -0.12907 0.06836 -1.888 0.059 . +--- +Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 + +(Dispersion parameter for Negative Binomial(2.2434) family taken to be 1) + + Null deviance: 1691.1 on 1494 degrees of freedom +Residual deviance: 1568.1 on 1490 degrees of freedom +AIC: 9607 + +Number of Fisher Scoring iterations: 1 + + + Theta: 2.2434 + Std. Err.: 0.0997 + + 2 x log-likelihood: -9594.9530 +''' + +def test_nb2(): + y, X = patsy.dmatrices('los ~ C(type) + hmo + white', medpar) + y = np.array(y)[:,0] + nb2 = NBin(y,X,'nb2').fit(maxiter=10000, maxfun=5000) + assert_almost_equal(nb2.params, + [2.31027893349935, 0.221248978197356, 0.706158824346228, + -0.067955221930748, -0.129065442248951, 0.4457567], + decimal=2) + +# NB-1 +''' +# R v2.15.1 +# COUNT v1.2.3 +library(COUNT) +data(medpar) +f <- los~factor(type)+hmo+white +ml.nb1(f, medpar) + + Estimate SE Z LCL UCL +(Intercept) 2.34918407 0.06023641 38.9994023 2.23112070 2.46724744 +factor(type)2 0.16175471 0.04585569 3.5274735 0.07187757 0.25163186 +factor(type)3 0.41879257 0.06553258 6.3906006 0.29034871 0.54723643 +hmo -0.04533566 0.05004714 -0.9058592 -0.14342805 0.05275673 +white -0.12951295 0.06071130 -2.1332593 -0.24850710 -0.01051880 +alpha 4.57898241 0.22015968 20.7984603 4.14746943 5.01049539 +''' + +#def test_nb1(): + #y, X = patsy.dmatrices('los ~ C(type) + hmo + white', medpar) + #y = np.array(y)[:,0] + ## TODO: Test fails with some of the other optimization methods + #nb1 = NBin(y,X,'nb1').fit(method='ncg', maxiter=10000, maxfun=5000) + #assert_almost_equal(nb1.params, + #[2.34918407014186, 0.161754714412848, 0.418792569970658, + #-0.0453356614650342, -0.129512952033423, 4.57898241219275], + #decimal=2) + +# NB-Geometric +''' +MASS v7.3-20 +R v2.15.1 +library(MASS) +data(medpar) +f <- los~factor(type)+hmo+white +mod <- glm(f, family=negative.binomial(1), data=medpar) +summary(mod) +Call: +glm(formula = f, family = negative.binomial(1), data = medpar) + +Deviance Residuals: + Min 1Q Median 3Q Max +-1.7942 -0.6545 -0.1896 0.3044 2.6844 + +Coefficients: + Estimate Std. Error t value Pr(>|t|) +(Intercept) 2.30849 0.07071 32.649 < 2e-16 *** +factor(type)2 0.22121 0.05283 4.187 2.99e-05 *** +factor(type)3 0.70599 0.08092 8.724 < 2e-16 *** +hmo -0.06779 0.05521 -1.228 0.2197 +white -0.12709 0.07169 -1.773 0.0765 . +--- +Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 + +(Dispersion parameter for Negative Binomial(1) family taken to be 0.5409721) + + Null deviance: 872.29 on 1494 degrees of freedom +Residual deviance: 811.95 on 1490 degrees of freedom +AIC: 9927.3 + +Number of Fisher Scoring iterations: 5 +''' + +#def test_geom(): + #y, X = patsy.dmatrices('los ~ C(type) + hmo + white', medpar) + #y = np.array(y)[:,0] + ## TODO: remove alph from geom params + #geom = NBin(y,X,'geom').fit(maxiter=10000, maxfun=5000) + #assert_almost_equal(geom.params, + #[2.3084850946241, 0.221206159108742, 0.705986369841159, + #-0.0677871843613577, -0.127088772164963], + #decimal=4) + +test_nb2() diff --git a/statsmodels/sandbox/examples/example_pca.py b/statsmodels/sandbox/examples/example_pca.py new file mode 100644 index 0000000..2d32c25 --- /dev/null +++ b/statsmodels/sandbox/examples/example_pca.py @@ -0,0 +1,21 @@ +#!/usr/bin/env python + +import numpy as np +from statsmodels.sandbox.pca import Pca + +x=np.random.randn(1000) +y=x*2.3+5+np.random.randn(1000) +z=x*3.1+2.1*y+np.random.randn(1000)/2 + +#create the Pca object - requires a p x N array as the input +p=Pca((x,y,z)) +print('energies:',p.getEnergies()) +print('vecs:',p.getEigenvectors()) +print('projected data',p.project(vals=np.ones((3,10)))) + + +#p.plot2d() #requires matplotlib +#from matplotlib import pyplot as plt +#plt.show() #necessary for script + +#p.plot3d() #requires mayavi diff --git a/statsmodels/sandbox/examples/example_pca_regression.py b/statsmodels/sandbox/examples/example_pca_regression.py new file mode 100644 index 0000000..48fb4b1 --- /dev/null +++ b/statsmodels/sandbox/examples/example_pca_regression.py @@ -0,0 +1,111 @@ +'''Example: Principal Component Regression + +* simulate model with 2 factors and 4 explanatory variables +* use pca to extract factors from data, +* run OLS on factors, +* use information criteria to choose "best" model + +Warning: pca sorts factors by explaining variance in explanatory variables, +which are not necessarily the most important factors for explaining the +endogenous variable. + +# try out partial correlation for dropping (or adding) factors +# get algorithm for partial least squares as an alternative to PCR + +''' + + +import numpy as np +from numpy.testing import assert_array_almost_equal +import statsmodels.api as sm +from statsmodels.sandbox.tools import pca +from statsmodels.sandbox.tools.cross_val import LeaveOneOut + + +# Example: principal component regression +nobs = 1000 +f0 = np.c_[np.random.normal(size=(nobs,2)), np.ones((nobs,1))] +f2xcoef = np.c_[np.repeat(np.eye(2),2,0),np.arange(4)[::-1]].T +f2xcoef = np.array([[ 1., 1., 0., 0.], + [ 0., 0., 1., 1.], + [ 3., 2., 1., 0.]]) +f2xcoef = np.array([[ 0.1, 3., 1., 0.], + [ 0., 0., 1.5, 0.1], + [ 3., 2., 1., 0.]]) +x0 = np.dot(f0, f2xcoef) +x0 += 0.1*np.random.normal(size=x0.shape) +ytrue = np.dot(f0,[1., 1., 1.]) +y0 = ytrue + 0.1*np.random.normal(size=ytrue.shape) + +xred, fact, eva, eve = pca(x0, keepdim=0) +print(eve) +print(fact[:5]) +print(f0[:5]) + +import statsmodels.api as sm + +res = sm.OLS(y0, sm.add_constant(x0, prepend=False)).fit() +print('OLS on original data') +print(res.params) +print(res.aic) +print(res.rsquared) + +#print 'OLS on Factors' +#for k in range(x0.shape[1]): +# xred, fact, eva, eve = pca(x0, keepdim=k, normalize=1) +# fact_wconst = sm.add_constant(fact) +# res = sm.OLS(y0, fact_wconst).fit() +# print 'k =', k +# print res.params +# print 'aic: ', res.aic +# print 'bic: ', res.bic +# print 'llf: ', res.llf +# print 'R2 ', res.rsquared +# print 'R2 adj', res.rsquared_adj + +print('OLS on Factors') +results = [] +xred, fact, eva, eve = pca(x0, keepdim=0, normalize=1) +for k in range(0, x0.shape[1]+1): + #xred, fact, eva, eve = pca(x0, keepdim=k, normalize=1) + # this is faster and same result + fact_wconst = sm.add_constant(fact[:,:k], prepend=False) + res = sm.OLS(y0, fact_wconst).fit() +## print 'k =', k +## print res.params +## print 'aic: ', res.aic +## print 'bic: ', res.bic +## print 'llf: ', res.llf +## print 'R2 ', res.rsquared +## print 'R2 adj', res.rsquared_adj + prederr2 = 0. + for inidx, outidx in LeaveOneOut(len(y0)): + resl1o = sm.OLS(y0[inidx], fact_wconst[inidx,:]).fit() + #print data.endog[outidx], res.model.predict(data.exog[outidx,:]), + prederr2 += (y0[outidx] - resl1o.predict(fact_wconst[outidx,:]))**2. + results.append([k, res.aic, res.bic, res.rsquared_adj, prederr2]) + +results = np.array(results) +print(results) +print('best result for k, by AIC, BIC, R2_adj, L1O') +print(np.r_[(np.argmin(results[:,1:3],0), np.argmax(results[:,3],0), + np.argmin(results[:,-1],0))]) + +from statsmodels.iolib.table import (SimpleTable, default_txt_fmt, + default_latex_fmt, default_html_fmt) + +headers = 'k, AIC, BIC, R2_adj, L1O'.split(', ') +numformat = ['%6d'] + ['%10.3f']*4 #'%10.4f' +txt_fmt1 = dict(data_fmts = numformat) +tabl = SimpleTable(results, headers, None, txt_fmt=txt_fmt1) + +print("PCA regression on simulated data,") +print("DGP: 2 factors and 4 explanatory variables") +print(tabl) +print("Notes: k is number of components of PCA,") +print(" constant is added additionally") +print(" k=0 means regression on constant only") +print(" L1O: sum of squared prediction errors for leave-one-out") + + + diff --git a/statsmodels/sandbox/examples/example_sysreg.py b/statsmodels/sandbox/examples/example_sysreg.py new file mode 100644 index 0000000..02a9d26 --- /dev/null +++ b/statsmodels/sandbox/examples/example_sysreg.py @@ -0,0 +1,208 @@ +"""Example: statsmodels.sandbox.sysreg +""" +#TODO: this is going to change significantly once we have a panel data structure +from statsmodels.compat.python import lmap, asbytes +import numpy as np +import statsmodels.api as sm +from statsmodels.sandbox.sysreg import * + +#for Python 3 compatibility + +# Seemingly Unrelated Regressions (SUR) Model + +# This example uses the subset of the Grunfeld data in Greene's Econometric +# Analysis Chapter 14 (5th Edition) + +grun_data = sm.datasets.grunfeld.load() + +firms = ['General Motors', 'Chrysler', 'General Electric', 'Westinghouse', + 'US Steel'] +#for Python 3 compatibility +firms = lmap(asbytes, firms) + +grun_exog = grun_data.exog +grun_endog = grun_data.endog + +# Right now takes SUR takes a list of arrays +# The array alternates between the LHS of an equation and RHS side of an +# equation +# This is very likely to change +grun_sys = [] +for i in firms: + index = grun_exog['firm'] == i + grun_sys.append(grun_endog[index]) + exog = grun_exog[index][['value','capital']].view(float).reshape(-1,2) + exog = sm.add_constant(exog, prepend=True) + grun_sys.append(exog) + +# Note that the results in Greene (5th edition) uses a slightly different +# version of the Grunfeld data. To reproduce Table 14.1 the following changes +# are necessary. +grun_sys[-2][5] = 261.6 +grun_sys[-2][-3] = 645.2 +grun_sys[-1][11,2] = 232.6 + +grun_mod = SUR(grun_sys) +grun_res = grun_mod.fit() +print("Results for the 2-step GLS") +print("Compare to Greene Table 14.1, 5th edition") +print(grun_res.params) +# or you can do an iterative fit +# you have to define a new model though this will be fixed +# TODO: note the above +print("Results for iterative GLS (equivalent to MLE)") +print("Compare to Greene Table 14.3") +#TODO: these are slightly off, could be a convergence issue +# or might use a different default DOF correction? +grun_imod = SUR(grun_sys) +grun_ires = grun_imod.fit(igls=True) +print(grun_ires.params) + +# Two-Stage Least Squares for Simultaneous Equations +#TODO: we are going to need *some kind* of formula framework + +# This follows the simple macroeconomic model given in +# Greene Example 15.1 (5th Edition) +# The data however is from statsmodels and is not the same as +# Greene's + +# The model is +# consumption: c_{t} = \alpha_{0} + \alpha_{1}y_{t} + \alpha_{2}c_{t-1} + \epsilon_{t1} +# investment: i_{t} = \beta_{0} + \beta_{1}r_{t} + \beta_{2}\left(y_{t}-y_{t-1}\right) + \epsilon_{t2} +# demand: y_{t} = c_{t} + I_{t} + g_{t} + +# See Greene's Econometric Analysis for more information + +# Load the data +macrodata = sm.datasets.macrodata.load().data + +# Not needed, but make sure the data is sorted +macrodata = np.sort(macrodata, order=['year','quarter']) + +# Impose the demand restriction +y = macrodata['realcons'] + macrodata['realinv'] + macrodata['realgovt'] + +# Build the system +macro_sys = [] +# First equation LHS +macro_sys.append(macrodata['realcons'][1:]) # leave off first date +# First equation RHS +exog1 = np.column_stack((y[1:],macrodata['realcons'][:-1])) +#TODO: it might be nice to have "lag" and "lead" functions +exog1 = sm.add_constant(exog1, prepend=True) +macro_sys.append(exog1) +# Second equation LHS +macro_sys.append(macrodata['realinv'][1:]) +# Second equation RHS +exog2 = np.column_stack((macrodata['tbilrate'][1:], np.diff(y))) +exog2 = sm.add_constant(exog2, prepend=True) +macro_sys.append(exog2) + +# We need to say that y_{t} in the RHS of equation 1 is an endogenous regressor +# We will call these independent endogenous variables +# Right now, we use a dictionary to declare these +indep_endog = {0 : [1]} + +# We also need to create a design of our instruments +# This will be done automatically in the future +instruments = np.column_stack((macrodata[['realgovt', + 'tbilrate']][1:].view(float).reshape(-1,2),macrodata['realcons'][:-1], + y[:-1])) +instruments = sm.add_constant(instruments, prepend=True) +macro_mod = Sem2SLS(macro_sys, indep_endog=indep_endog, instruments=instruments) +# Right now this only returns parameters +macro_params = macro_mod.fit() +print("The parameters for the first equation are correct.") +print("The parameters for the second equation are not.") +print(macro_params) + +#TODO: Note that the above is incorrect, because we have no way of telling the +# model that *part* of the y_{t} - y_{t-1} is an independent endogenous variable +# To correct for this we would have to do the following +y_instrumented = macro_mod.wexog[0][:,1] +whitened_ydiff = y_instrumented - y[:-1] +wexog = np.column_stack((macrodata['tbilrate'][1:],whitened_ydiff)) +wexog = sm.add_constant(wexog, prepend=True) +correct_params = sm.GLS(macrodata['realinv'][1:], wexog).fit().params + +print("If we correctly instrument everything, then these are the parameters") +print("for the second equation") +print(correct_params) +print("Compare to output of R script statsmodels/sandbox/tests/macrodata.s") + +print('\nUsing IV2SLS') +from statsmodels.sandbox.regression.gmm import IV2SLS +miv = IV2SLS(macro_sys[0], macro_sys[1], instruments) +resiv = miv.fit() +print("equation 1") +print(resiv.params) +miv2 = IV2SLS(macro_sys[2], macro_sys[3], instruments) +resiv2 = miv2.fit() +print("equation 2") +print(resiv2.params) + +### Below is the same example using Greene's data ### + +run_greene = 0 +if run_greene: + try: + data3 = np.genfromtxt('/home/skipper/school/MetricsII/Greene \ +TableF5-1.txt', names=True) + except: + raise ValueError("Based on Greene TableF5-1. You should download it " + "from his web site and edit this script accordingly.") + + # Example 15.1 in Greene 5th Edition +# c_t = constant + y_t + c_t-1 +# i_t = constant + r_t + (y_t - y_t-1) +# y_t = c_t + i_t + g_t + sys3 = [] + sys3.append(data3['realcons'][1:]) # have to leave off a beg. date +# impose 3rd equation on y + y = data3['realcons'] + data3['realinvs'] + data3['realgovt'] + + exog1 = np.column_stack((y[1:],data3['realcons'][:-1])) + exog1 = sm.add_constant(exog1, prepend=False) + sys3.append(exog1) + sys3.append(data3['realinvs'][1:]) + exog2 = np.column_stack((data3['tbilrate'][1:], + np.diff(y))) + # realint is missing 1st observation + exog2 = sm.add_constant(exog2, prepend=False) + sys3.append(exog2) + indep_endog = {0 : [0]} # need to be able to say that y_1 is an instrument.. + instruments = np.column_stack((data3[['realgovt', + 'tbilrate']][1:].view(float).reshape(-1,2),data3['realcons'][:-1], + y[:-1])) + instruments = sm.add_constant(instruments, prepend=False) + sem_mod = Sem2SLS(sys3, indep_endog = indep_endog, instruments=instruments) + sem_params = sem_mod.fit() # first equation is right, but not second? + # should y_t in the diff be instrumented? + # how would R know this in the script? + # well, let's check... + y_instr = sem_mod.wexog[0][:,0] + wyd = y_instr - y[:-1] + wexog = np.column_stack((data3['tbilrate'][1:],wyd)) + wexog = sm.add_constant(wexog, prepend=False) + params = sm.GLS(data3['realinvs'][1:], wexog).fit().params + + print("These are the simultaneous equation estimates for Greene's \ +example 13-1 (Also application 13-1 in 6th edition.") + print(sem_params) + print("The first set of parameters is correct. The second set is not.") + print("Compare to the solution manual at \ +http://pages.stern.nyu.edu/~wgreene/Text/econometricanalysis.htm") + print("The reason is the restriction on (y_t - y_1)") + print("Compare to R script GreeneEx15_1.s") + print("Somehow R carries y.1 in yd to know that it needs to be \ +instrumented") + print("If we replace our estimate with the instrumented one") + print(params) + print("We get the right estimate") + print("Without a formula framework we have to be able to do restrictions.") +# yep!, but how in the world does R know this when we just fed it yd?? +# must be implicit in the formula framework... +# we are going to need to keep the two equations separate and use +# a restrictions matrix. Ugh, is a formula framework really, necessary to get +# around this? + diff --git a/statsmodels/sandbox/examples/gspc_table.csv b/statsmodels/sandbox/examples/gspc_table.csv new file mode 100644 index 0000000..92c1057 --- /dev/null +++ b/statsmodels/sandbox/examples/gspc_table.csv @@ -0,0 +1,15127 @@ +Date,Open,High,Low,Close,Volume,Adj Close +2010-02-12,1075.95,1077.81,1062.97,1075.51,4160680000,1075.51 +2010-02-11,1067.10,1080.04,1060.59,1078.47,4400870000,1078.47 +2010-02-10,1069.68,1073.67,1059.34,1068.13,4251450000,1068.13 +2010-02-09,1060.06,1079.28,1060.06,1070.52,5114260000,1070.52 +2010-02-08,1065.51,1071.20,1056.51,1056.74,4089820000,1056.74 +2010-02-05,1064.12,1067.13,1044.50,1066.19,6438900000,1066.19 +2010-02-04,1097.25,1097.25,1062.78,1063.11,5859690000,1063.11 +2010-02-03,1100.67,1102.72,1093.97,1097.28,4285450000,1097.28 +2010-02-02,1090.05,1104.73,1087.96,1103.32,4749540000,1103.32 +2010-02-01,1073.89,1089.38,1073.89,1089.19,4077610000,1089.19 +2010-01-29,1087.61,1096.45,1071.59,1073.87,5412850000,1073.87 +2010-01-28,1096.93,1100.22,1078.46,1084.53,5452400000,1084.53 +2010-01-27,1091.94,1099.51,1083.11,1097.50,5319120000,1097.50 +2010-01-26,1095.80,1103.69,1089.86,1092.17,4731910000,1092.17 +2010-01-25,1092.40,1102.97,1092.40,1096.78,4481390000,1096.78 +2010-01-22,1115.49,1115.49,1090.18,1091.76,6208650000,1091.76 +2010-01-21,1138.68,1141.58,1114.84,1116.48,6874289600,1116.48 +2010-01-20,1147.95,1147.95,1129.25,1138.04,4810560000,1138.04 +2010-01-19,1136.03,1150.45,1135.77,1150.23,4724830000,1150.23 +2010-01-15,1147.72,1147.77,1131.39,1136.03,4758730000,1136.03 +2010-01-14,1145.68,1150.41,1143.80,1148.46,3915200000,1148.46 +2010-01-13,1137.31,1148.40,1133.18,1145.68,4170360000,1145.68 +2010-01-12,1143.81,1143.81,1131.77,1136.22,4716160000,1136.22 +2010-01-11,1145.96,1149.74,1142.02,1146.98,4255780000,1146.98 +2010-01-08,1140.52,1145.39,1136.22,1144.98,4389590000,1144.98 +2010-01-07,1136.27,1142.46,1131.32,1141.69,5270680000,1141.69 +2010-01-06,1135.71,1139.19,1133.95,1137.14,4972660000,1137.14 +2010-01-05,1132.66,1136.63,1129.66,1136.52,2491020000,1136.52 +2010-01-04,1116.56,1133.87,1116.56,1132.99,3991400000,1132.99 +2009-12-31,1126.60,1127.64,1114.81,1115.10,2076990000,1115.10 +2009-12-30,1125.53,1126.42,1121.94,1126.42,2277300000,1126.42 +2009-12-29,1128.55,1130.38,1126.08,1126.20,2491020000,1126.20 +2009-12-28,1127.53,1130.38,1123.51,1127.78,2716400000,1127.78 +2009-12-24,1121.08,1126.48,1121.08,1126.48,1267710000,1126.48 +2009-12-23,1118.84,1121.58,1116.00,1120.59,3166870000,1120.59 +2009-12-22,1114.51,1120.27,1114.51,1118.02,3641130000,1118.02 +2009-12-21,1105.31,1117.68,1105.31,1114.05,3977340000,1114.05 +2009-12-18,1097.86,1103.74,1093.88,1102.47,6325890000,1102.47 +2009-12-17,1106.36,1106.36,1095.88,1096.08,7615070400,1096.08 +2009-12-16,1108.61,1116.21,1107.96,1109.18,4829820000,1109.18 +2009-12-15,1114.11,1114.11,1105.35,1107.93,5045100000,1107.93 +2009-12-14,1107.84,1114.76,1107.84,1114.11,4548490000,1114.11 +2009-12-11,1103.96,1108.50,1101.34,1106.41,3791090000,1106.41 +2009-12-10,1098.69,1106.25,1098.69,1102.35,3996490000,1102.35 +2009-12-09,1091.07,1097.04,1085.89,1095.95,4115410000,1095.95 +2009-12-08,1103.04,1103.04,1088.61,1091.94,4748030000,1091.94 +2009-12-07,1105.52,1110.72,1100.83,1103.25,4103360000,1103.25 +2009-12-04,1100.43,1119.13,1096.52,1105.98,5781140000,1105.98 +2009-12-03,1110.59,1117.28,1098.74,1099.92,4810030000,1099.92 +2009-12-02,1109.03,1115.58,1105.29,1109.24,3941340000,1109.24 +2009-12-01,1098.89,1112.28,1098.89,1108.86,4249310000,1108.86 +2009-11-30,1091.07,1097.24,1086.25,1095.63,3895520000,1095.63 +2009-11-27,1105.47,1105.47,1083.74,1091.49,2362910000,1091.49 +2009-11-25,1106.49,1111.18,1104.75,1110.63,3036350000,1110.63 +2009-11-24,1105.83,1107.56,1097.63,1105.65,3700820000,1105.65 +2009-11-23,1094.86,1112.38,1094.86,1106.24,3827920000,1106.24 +2009-11-20,1094.66,1094.66,1086.81,1091.38,3751230000,1091.38 +2009-11-19,1106.44,1106.44,1088.40,1094.90,4178030000,1094.90 +2009-11-18,1109.44,1111.10,1102.70,1109.80,4293340000,1109.80 +2009-11-17,1109.22,1110.52,1102.19,1110.32,3824070000,1110.32 +2009-11-16,1094.13,1113.69,1094.13,1109.30,4565850000,1109.30 +2009-11-13,1087.59,1097.79,1085.33,1093.48,3792610000,1093.48 +2009-11-12,1098.31,1101.97,1084.90,1087.24,4160250000,1087.24 +2009-11-11,1096.04,1105.37,1093.81,1098.51,4286700000,1098.51 +2009-11-10,1091.86,1096.42,1087.40,1093.01,4394770000,1093.01 +2009-11-09,1072.31,1093.19,1072.31,1093.08,4460030000,1093.08 +2009-11-06,1064.95,1071.48,1059.32,1069.30,4277130000,1069.30 +2009-11-05,1047.30,1066.65,1047.30,1066.63,4848350000,1066.63 +2009-11-04,1047.14,1061.00,1045.15,1046.50,5635510000,1046.50 +2009-11-03,1040.92,1046.36,1033.94,1045.41,5487500000,1045.41 +2009-11-02,1036.18,1052.18,1029.38,1042.88,6202640000,1042.88 +2009-10-30,1065.41,1065.41,1033.38,1036.19,6512420000,1036.19 +2009-10-29,1043.69,1066.83,1043.69,1066.11,5595040000,1066.11 +2009-10-28,1061.51,1063.26,1042.19,1042.63,6600350000,1042.63 +2009-10-27,1067.54,1072.48,1060.62,1063.41,5337380000,1063.41 +2009-10-26,1080.36,1091.75,1065.23,1066.95,6363380000,1066.95 +2009-10-23,1095.62,1095.83,1075.49,1079.60,4767460000,1079.60 +2009-10-22,1080.96,1095.21,1074.31,1092.91,5192410000,1092.91 +2009-10-21,1090.36,1101.36,1080.77,1081.40,5616290000,1081.40 +2009-10-20,1098.64,1098.64,1086.16,1091.06,5396930000,1091.06 +2009-10-19,1088.22,1100.17,1086.48,1097.91,4619240000,1097.91 +2009-10-16,1094.67,1094.67,1081.53,1087.68,4894740000,1087.68 +2009-10-15,1090.36,1096.56,1086.41,1096.56,5369780000,1096.56 +2009-10-14,1078.68,1093.17,1078.68,1092.02,5406420000,1092.02 +2009-10-13,1074.96,1075.30,1066.71,1073.19,4320480000,1073.19 +2009-10-12,1071.63,1079.46,1071.63,1076.19,3710430000,1076.19 +2009-10-09,1065.28,1071.51,1063.00,1071.49,3763780000,1071.49 +2009-10-08,1060.03,1070.67,1060.03,1065.48,4988400000,1065.48 +2009-10-07,1053.65,1058.02,1050.10,1057.58,4238220000,1057.58 +2009-10-06,1042.02,1060.55,1042.02,1054.72,5029840000,1054.72 +2009-10-05,1026.87,1042.58,1025.92,1040.46,4313310000,1040.46 +2009-10-02,1029.71,1030.60,1019.95,1025.21,5583240000,1025.21 +2009-10-01,1054.91,1054.91,1029.45,1029.85,5791450000,1029.85 +2009-09-30,1061.02,1063.40,1046.47,1057.08,5998860000,1057.08 +2009-09-29,1063.69,1069.62,1057.83,1060.61,4949900000,1060.61 +2009-09-28,1045.38,1065.13,1045.38,1062.98,3726950000,1062.98 +2009-09-25,1049.48,1053.47,1041.17,1044.38,4507090000,1044.38 +2009-09-24,1062.56,1066.29,1045.85,1050.78,5505610000,1050.78 +2009-09-23,1072.69,1080.15,1060.39,1060.87,5531930000,1060.87 +2009-09-22,1066.35,1073.81,1066.35,1071.66,5246600000,1071.66 +2009-09-21,1067.14,1067.28,1057.46,1064.66,4615280000,1064.66 +2009-09-18,1066.60,1071.52,1064.27,1068.30,5607970000,1068.30 +2009-09-17,1067.87,1074.77,1061.20,1065.49,6668110000,1065.49 +2009-09-16,1053.99,1068.76,1052.87,1068.76,6793529600,1068.76 +2009-09-15,1049.03,1056.04,1043.42,1052.63,6185620000,1052.63 +2009-09-14,1040.15,1049.74,1035.00,1049.34,4979610000,1049.34 +2009-09-11,1043.92,1048.18,1038.40,1042.73,4922600000,1042.73 +2009-09-10,1032.99,1044.14,1028.04,1044.14,5191380000,1044.14 +2009-09-09,1025.36,1036.34,1023.97,1033.37,5202550000,1033.37 +2009-09-08,1018.67,1026.07,1018.67,1025.39,5235160000,1025.39 +2009-09-04,1003.84,1016.48,1001.65,1016.40,4097370000,1016.40 +2009-09-03,996.12,1003.43,992.25,1003.24,4624280000,1003.24 +2009-09-02,996.07,1000.34,991.97,994.75,5842730000,994.75 +2009-09-01,1019.52,1028.45,996.28,998.04,6862360000,998.04 +2009-08-31,1025.21,1025.21,1014.62,1020.62,5004560000,1020.62 +2009-08-28,1031.62,1039.47,1023.13,1028.93,5785780000,1028.93 +2009-08-27,1027.81,1033.33,1016.20,1030.98,5785880000,1030.98 +2009-08-26,1027.35,1032.47,1021.57,1028.12,5080060000,1028.12 +2009-08-25,1026.63,1037.75,1026.21,1028.00,5768740000,1028.00 +2009-08-24,1026.59,1035.82,1022.48,1025.57,6302450000,1025.57 +2009-08-21,1009.06,1027.59,1009.06,1026.13,5885550000,1026.13 +2009-08-20,996.41,1008.92,996.39,1007.37,4893160000,1007.37 +2009-08-19,986.88,999.61,980.62,996.46,4257000000,996.46 +2009-08-18,980.62,991.20,980.62,989.67,4198970000,989.67 +2009-08-17,998.18,998.18,978.51,979.73,4088570000,979.73 +2009-08-14,1012.23,1012.60,994.60,1004.09,4940750000,1004.09 +2009-08-13,1005.86,1013.14,1000.82,1012.73,5250660000,1012.73 +2009-08-12,994.00,1012.78,993.36,1005.81,5498170000,1005.81 +2009-08-11,1005.77,1005.77,992.40,994.35,5773160000,994.35 +2009-08-10,1008.89,1010.12,1000.99,1007.10,5406080000,1007.10 +2009-08-07,999.83,1018.00,999.83,1010.48,6827089600,1010.48 +2009-08-06,1004.06,1008.00,992.49,997.08,6753380000,997.08 +2009-08-05,1005.41,1006.64,994.31,1002.72,7242120000,1002.72 +2009-08-04,1001.41,1007.12,996.68,1005.65,5713700000,1005.65 +2009-08-03,990.22,1003.61,990.22,1002.63,5603440000,1002.63 +2009-07-31,986.80,993.18,982.85,987.48,5139070000,987.48 +2009-07-30,976.01,996.68,976.01,986.75,6035180000,986.75 +2009-07-29,977.66,977.76,968.65,975.15,5178770000,975.15 +2009-07-28,981.48,982.35,969.35,979.62,5490350000,979.62 +2009-07-27,978.63,982.49,972.29,982.18,4631290000,982.18 +2009-07-24,972.16,979.79,965.95,979.26,4458300000,979.26 +2009-07-23,954.07,979.42,953.27,976.29,5761650000,976.29 +2009-07-22,953.40,959.83,947.75,954.07,4634100000,954.07 +2009-07-21,951.97,956.53,943.22,954.58,5309300000,954.58 +2009-07-20,942.07,951.62,940.99,951.13,4853150000,951.13 +2009-07-17,940.56,941.89,934.65,940.38,5141380000,940.38 +2009-07-16,930.17,943.96,927.45,940.74,4898640000,940.74 +2009-07-15,910.15,933.95,910.15,932.68,5238830000,932.68 +2009-07-14,900.77,905.84,896.50,905.84,4149030000,905.84 +2009-07-13,879.57,901.05,875.32,901.05,4499440000,901.05 +2009-07-10,880.03,883.57,872.81,879.13,3912080000,879.13 +2009-07-09,881.28,887.86,878.45,882.68,4347170000,882.68 +2009-07-08,881.90,886.80,869.32,879.56,5721780000,879.56 +2009-07-07,898.60,898.60,879.93,881.03,4673300000,881.03 +2009-07-06,894.27,898.72,886.36,898.72,4712580000,898.72 +2009-07-02,921.24,921.24,896.42,896.42,3931000000,896.42 +2009-07-01,920.82,931.92,920.82,923.33,3919400000,923.33 +2009-06-30,927.15,930.01,912.86,919.32,4627570000,919.32 +2009-06-29,919.86,927.99,916.18,927.23,4211760000,927.23 +2009-06-26,918.84,922.00,913.03,918.90,6076660000,918.90 +2009-06-25,899.45,921.42,896.27,920.26,4911240000,920.26 +2009-06-24,896.31,910.85,896.31,900.94,4636720000,900.94 +2009-06-23,893.46,898.69,888.86,895.10,5071020000,895.10 +2009-06-22,918.13,918.13,893.04,893.04,4903940000,893.04 +2009-06-19,919.96,927.09,915.80,921.23,5713390000,921.23 +2009-06-18,910.86,921.93,907.94,918.37,4684010000,918.37 +2009-06-17,911.89,918.44,903.78,910.71,5523650000,910.71 +2009-06-16,925.60,928.00,911.60,911.97,4951200000,911.97 +2009-06-15,942.45,942.45,919.65,923.72,4697880000,923.72 +2009-06-12,943.44,946.30,935.66,946.21,4528120000,946.21 +2009-06-11,939.04,956.23,939.04,944.89,5500840000,944.89 +2009-06-10,942.73,949.77,927.97,939.15,5379420000,939.15 +2009-06-09,940.35,946.92,936.15,942.43,4439950000,942.43 +2009-06-08,938.12,946.33,926.44,939.14,4483430000,939.14 +2009-06-05,945.67,951.69,934.13,940.09,5277910000,940.09 +2009-06-04,932.49,942.47,929.32,942.46,5352890000,942.46 +2009-06-03,942.51,942.51,923.85,931.76,5323770000,931.76 +2009-06-02,942.87,949.38,938.46,944.74,5987340000,944.74 +2009-06-01,923.26,947.77,923.26,942.87,6370440000,942.87 +2009-05-29,907.02,920.02,903.56,919.14,6050420000,919.14 +2009-05-28,892.96,909.45,887.60,906.83,5738980000,906.83 +2009-05-27,909.95,913.84,891.87,893.06,5698800000,893.06 +2009-05-26,887.00,911.76,881.46,910.33,5667050000,910.33 +2009-05-22,888.68,896.65,883.75,887.00,5155320000,887.00 +2009-05-21,900.42,900.42,879.61,888.33,6019840000,888.33 +2009-05-20,908.62,924.60,901.37,903.47,8205060000,903.47 +2009-05-19,909.67,916.39,905.22,908.13,6616270000,908.13 +2009-05-18,886.07,910.00,886.07,909.71,5702150000,909.71 +2009-05-15,892.76,896.97,878.94,882.88,5439720000,882.88 +2009-05-14,884.24,898.36,882.52,893.07,6134870000,893.07 +2009-05-13,905.40,905.40,882.80,883.92,7091820000,883.92 +2009-05-12,910.52,915.57,896.46,908.35,6871750400,908.35 +2009-05-11,922.99,922.99,908.68,909.24,6150600000,909.24 +2009-05-08,909.03,930.17,909.03,929.23,8163280000,929.23 +2009-05-07,919.58,929.58,901.36,907.39,9120100000,907.39 +2009-05-06,903.95,920.28,903.95,919.53,8555040000,919.53 +2009-05-05,906.10,907.70,897.34,903.80,6882860000,903.80 +2009-05-04,879.21,907.85,879.21,907.24,7038840000,907.24 +2009-05-01,872.74,880.48,866.10,877.52,5312170000,877.52 +2009-04-30,876.59,888.70,868.51,872.81,6862540000,872.81 +2009-04-29,856.85,882.06,856.85,873.64,6101620000,873.64 +2009-04-28,854.48,864.48,847.12,855.16,6328000000,855.16 +2009-04-27,862.82,868.83,854.65,857.51,5613460000,857.51 +2009-04-24,853.91,871.80,853.91,866.23,7114440000,866.23 +2009-04-23,844.62,852.87,835.45,851.92,6563100000,851.92 +2009-04-22,847.26,861.78,840.57,843.55,7327860000,843.55 +2009-04-21,831.25,850.09,826.83,850.08,7436489600,850.08 +2009-04-20,868.27,868.27,832.39,832.39,6973960000,832.39 +2009-04-17,865.18,875.63,860.87,869.60,7352009600,869.60 +2009-04-16,854.54,870.35,847.04,865.30,6598670000,865.30 +2009-04-15,839.44,852.93,835.58,852.06,6241100000,852.06 +2009-04-14,856.88,856.88,840.25,841.50,7569840000,841.50 +2009-04-13,855.33,864.31,845.35,858.73,6434890000,858.73 +2009-04-09,829.29,856.91,829.29,856.56,7600710400,856.56 +2009-04-08,816.76,828.42,814.84,825.16,5938460000,825.16 +2009-04-07,834.12,834.12,814.53,815.55,5155580000,815.55 +2009-04-06,839.75,839.75,822.79,835.48,6210000000,835.48 +2009-04-03,835.13,842.50,826.70,842.50,5855640000,842.50 +2009-04-02,814.53,845.61,814.53,834.38,7542809600,834.38 +2009-04-01,793.59,813.62,783.32,811.08,6034140000,811.08 +2009-03-31,790.88,810.48,790.88,797.87,6089100000,797.87 +2009-03-30,809.07,809.07,779.81,787.53,5912660000,787.53 +2009-03-27,828.68,828.68,813.43,815.94,5600210000,815.94 +2009-03-26,814.06,832.98,814.06,832.86,6992960000,832.86 +2009-03-25,806.81,826.78,791.37,813.88,7687180000,813.88 +2009-03-24,820.60,823.65,805.48,806.12,6767980000,806.12 +2009-03-23,772.31,823.37,772.31,822.92,7715769600,822.92 +2009-03-20,784.58,788.91,766.20,768.54,7643720000,768.54 +2009-03-19,797.92,803.24,781.82,784.04,9033870400,784.04 +2009-03-18,776.01,803.04,765.64,794.35,9098449600,794.35 +2009-03-17,753.88,778.12,749.93,778.12,6156800000,778.12 +2009-03-16,758.84,774.53,753.37,753.89,7883540000,753.89 +2009-03-13,751.97,758.29,742.46,756.55,6787089600,756.55 +2009-03-12,720.89,752.63,714.76,750.74,7326630400,750.74 +2009-03-11,719.59,731.92,713.85,721.36,7287809600,721.36 +2009-03-10,679.28,719.60,679.28,719.60,8618329600,719.60 +2009-03-09,680.76,695.27,672.88,676.53,7277320000,676.53 +2009-03-06,684.04,699.09,666.79,683.38,7331830400,683.38 +2009-03-05,708.27,708.27,677.93,682.55,7507249600,682.55 +2009-03-04,698.60,724.12,698.60,712.87,7673620000,712.87 +2009-03-03,704.44,711.67,692.30,696.33,7583230400,696.33 +2009-03-02,729.57,729.57,699.70,700.82,7868289600,700.82 +2009-02-27,749.93,751.27,734.52,735.09,8926480000,735.09 +2009-02-26,765.76,779.42,751.75,752.83,7599969600,752.83 +2009-02-25,770.64,780.12,752.89,764.90,7483640000,764.90 +2009-02-24,744.69,775.49,744.69,773.14,7234489600,773.14 +2009-02-23,773.25,777.85,742.37,743.33,6509300000,743.33 +2009-02-20,775.87,778.69,754.25,770.05,8210590400,770.05 +2009-02-19,787.91,797.58,777.03,778.94,5746940000,778.94 +2009-02-18,791.06,796.17,780.43,788.42,5740710000,788.42 +2009-02-17,818.61,818.61,789.17,789.17,5907820000,789.17 +2009-02-13,833.95,839.43,825.21,826.84,5296650000,826.84 +2009-02-12,829.91,835.48,808.06,835.19,6476460000,835.19 +2009-02-11,827.41,838.22,822.30,833.74,5926460000,833.74 +2009-02-10,866.87,868.05,822.99,827.16,6770169600,827.16 +2009-02-09,868.24,875.01,861.65,869.89,5574370000,869.89 +2009-02-06,846.09,870.75,845.42,868.60,6484100000,868.60 +2009-02-05,831.75,850.55,819.91,845.85,6624030000,845.85 +2009-02-04,837.77,851.85,829.18,832.23,6420450000,832.23 +2009-02-03,825.69,842.60,821.98,838.51,5886310000,838.51 +2009-02-02,823.09,830.78,812.87,825.44,5673270000,825.44 +2009-01-30,845.69,851.66,821.67,825.88,5350580000,825.88 +2009-01-29,868.89,868.89,844.15,845.14,5067060000,845.14 +2009-01-28,845.73,877.86,845.73,874.09,6199180000,874.09 +2009-01-27,837.30,850.45,835.40,845.71,5353260000,845.71 +2009-01-26,832.50,852.53,827.69,836.57,6039940000,836.57 +2009-01-23,822.16,838.61,806.07,831.95,5832160000,831.95 +2009-01-22,839.74,839.74,811.29,827.50,5843830000,827.50 +2009-01-21,806.77,841.72,804.30,840.24,6467830000,840.24 +2009-01-20,849.64,849.64,804.47,805.22,6375230000,805.22 +2009-01-16,844.45,858.13,830.66,850.12,6786040000,850.12 +2009-01-15,841.99,851.59,817.04,843.74,7807350400,843.74 +2009-01-14,867.28,867.28,836.93,842.62,5407880000,842.62 +2009-01-13,869.79,877.02,862.02,871.79,5017470000,871.79 +2009-01-12,890.40,890.40,864.32,870.26,4725050000,870.26 +2009-01-09,909.91,911.93,888.31,890.35,4716500000,890.35 +2009-01-08,905.73,910.00,896.81,909.73,4991550000,909.73 +2009-01-07,927.45,927.45,902.37,906.65,4704940000,906.65 +2009-01-06,931.17,943.85,927.28,934.70,5392620000,934.70 +2009-01-05,929.17,936.63,919.53,927.45,5413910000,927.45 +2009-01-02,902.99,934.73,899.35,931.80,4048270000,931.80 +2008-12-31,890.59,910.32,889.67,903.25,4172940000,903.25 +2008-12-30,870.58,891.12,870.58,890.64,3627800000,890.64 +2008-12-29,872.37,873.70,857.07,869.42,3323430000,869.42 +2008-12-26,869.51,873.74,866.52,872.80,1880050000,872.80 +2008-12-24,863.87,869.79,861.44,868.15,1546550000,868.15 +2008-12-23,874.31,880.44,860.10,863.16,4051970000,863.16 +2008-12-22,887.20,887.37,857.09,871.63,4869850000,871.63 +2008-12-19,886.96,905.47,883.02,887.88,6705310000,887.88 +2008-12-18,905.98,911.02,877.44,885.28,5675000000,885.28 +2008-12-17,908.16,918.85,895.94,904.42,5907380000,904.42 +2008-12-16,871.53,914.66,871.53,913.18,6009780000,913.18 +2008-12-15,881.07,884.63,857.72,868.57,4982390000,868.57 +2008-12-12,871.79,883.24,851.35,879.73,5959590000,879.73 +2008-12-11,898.35,904.63,868.73,873.59,5513840000,873.59 +2008-12-10,892.17,908.27,885.45,899.24,5942130000,899.24 +2008-12-09,906.48,916.26,885.38,888.67,5693110000,888.67 +2008-12-08,882.71,918.57,882.71,909.70,6553600000,909.70 +2008-12-05,844.43,879.42,818.41,876.07,6165370000,876.07 +2008-12-04,869.75,875.60,833.60,845.22,5860390000,845.22 +2008-12-03,843.60,873.12,827.60,870.74,6221880000,870.74 +2008-12-02,817.94,850.54,817.94,848.81,6170100000,848.81 +2008-12-01,888.61,888.61,815.69,816.21,6052010000,816.21 +2008-11-28,886.89,896.25,881.21,896.24,2740860000,896.24 +2008-11-26,852.90,887.68,841.37,887.68,5793260000,887.68 +2008-11-25,853.40,868.94,834.99,857.39,6952700000,857.39 +2008-11-24,801.20,865.60,801.20,851.81,7879440000,851.81 +2008-11-21,755.84,801.20,741.02,800.03,9495900000,800.03 +2008-11-20,805.87,820.52,747.78,752.44,9093740000,752.44 +2008-11-19,859.03,864.57,806.18,806.58,6548600000,806.58 +2008-11-18,852.34,865.90,826.84,859.12,6679470000,859.12 +2008-11-17,873.23,882.29,848.98,850.75,4927490000,850.75 +2008-11-14,904.36,916.88,869.88,873.29,5881030000,873.29 +2008-11-13,853.13,913.01,818.69,911.29,7849120000,911.29 +2008-11-12,893.39,893.39,850.48,852.30,5764180000,852.30 +2008-11-11,917.15,917.15,884.90,898.95,4998340000,898.95 +2008-11-10,936.75,951.95,907.47,919.21,4572000000,919.21 +2008-11-07,907.44,931.46,906.90,930.99,4931640000,930.99 +2008-11-06,952.40,952.40,899.73,904.88,6102230000,904.88 +2008-11-05,1001.84,1001.84,949.86,952.77,5426640000,952.77 +2008-11-04,971.31,1007.51,971.31,1005.75,5531290000,1005.75 +2008-11-03,968.67,975.57,958.82,966.30,4492280000,966.30 +2008-10-31,953.11,984.38,944.59,968.75,6394350000,968.75 +2008-10-30,939.38,963.23,928.50,954.09,6175830000,954.09 +2008-10-29,939.51,969.97,922.26,930.09,7077800000,930.09 +2008-10-28,848.92,940.51,845.27,940.51,7096950400,940.51 +2008-10-27,874.28,893.78,846.75,848.92,5558050000,848.92 +2008-10-24,895.22,896.30,852.85,876.77,6550050000,876.77 +2008-10-23,899.08,922.83,858.44,908.11,7184180000,908.11 +2008-10-22,951.67,951.67,875.81,896.78,6147980000,896.78 +2008-10-21,980.40,985.44,952.47,955.05,5121830000,955.05 +2008-10-20,943.51,985.40,943.51,985.40,5175640000,985.40 +2008-10-17,942.29,984.64,918.74,940.55,6581780000,940.55 +2008-10-16,909.53,947.71,865.83,946.43,7984500000,946.43 +2008-10-15,994.60,994.60,903.99,907.84,6542330000,907.84 +2008-10-14,1009.97,1044.31,972.07,998.01,8161990400,998.01 +2008-10-13,912.75,1006.93,912.75,1003.35,7263369600,1003.35 +2008-10-10,902.31,936.36,839.80,899.22,11456230400,899.22 +2008-10-09,988.42,1005.25,909.19,909.92,6819000000,909.92 +2008-10-08,988.91,1021.06,970.97,984.94,8716329600,984.94 +2008-10-07,1057.60,1072.91,996.23,996.23,7069209600,996.23 +2008-10-06,1097.56,1097.56,1007.97,1056.89,7956020000,1056.89 +2008-10-03,1115.16,1153.82,1098.14,1099.23,6716120000,1099.23 +2008-10-02,1160.64,1160.64,1111.43,1114.28,6285640000,1114.28 +2008-10-01,1164.17,1167.03,1140.77,1161.06,5782130000,1161.06 +2008-09-30,1113.78,1168.03,1113.78,1166.36,4937680000,1166.36 +2008-09-29,1209.07,1209.07,1106.42,1106.42,7305060000,1106.42 +2008-09-26,1204.47,1215.77,1187.54,1213.27,5383610000,1213.27 +2008-09-25,1187.87,1220.03,1187.87,1209.18,5877640000,1209.18 +2008-09-24,1188.79,1197.41,1179.79,1185.87,4820360000,1185.87 +2008-09-23,1207.61,1221.15,1187.06,1188.22,5185730000,1188.22 +2008-09-22,1255.37,1255.37,1205.61,1207.09,5332130000,1207.09 +2008-09-19,1213.11,1265.12,1213.11,1255.08,9387169600,1255.08 +2008-09-18,1157.08,1211.14,1133.50,1206.51,10082689600,1206.51 +2008-09-17,1210.34,1210.34,1155.88,1156.39,9431870400,1156.39 +2008-09-16,1188.31,1214.84,1169.28,1213.60,9459830400,1213.60 +2008-09-15,1250.92,1250.92,1192.70,1192.70,8279510400,1192.70 +2008-09-12,1245.88,1255.09,1233.81,1251.70,6273260000,1251.70 +2008-09-11,1229.04,1249.98,1211.54,1249.05,6869249600,1249.05 +2008-09-10,1227.50,1243.90,1221.60,1232.04,6543440000,1232.04 +2008-09-09,1267.98,1268.66,1224.51,1224.51,7380630400,1224.51 +2008-09-08,1249.50,1274.42,1247.12,1267.79,7351340000,1267.79 +2008-09-05,1233.21,1244.94,1217.23,1242.31,5017080000,1242.31 +2008-09-04,1271.80,1271.80,1232.83,1236.83,5212500000,1236.83 +2008-09-03,1276.61,1280.60,1265.59,1274.98,5056980000,1274.98 +2008-09-02,1287.83,1303.04,1272.20,1277.58,4783560000,1277.58 +2008-08-29,1296.49,1297.59,1282.74,1282.83,3288120000,1282.83 +2008-08-28,1283.79,1300.68,1283.79,1300.68,3854280000,1300.68 +2008-08-27,1271.29,1285.05,1270.03,1281.66,3499610000,1281.66 +2008-08-26,1267.03,1275.65,1263.21,1271.51,3587570000,1271.51 +2008-08-25,1290.47,1290.47,1264.87,1266.84,3420600000,1266.84 +2008-08-22,1277.59,1293.09,1277.59,1292.20,3741070000,1292.20 +2008-08-21,1271.07,1281.40,1265.22,1277.72,4032590000,1277.72 +2008-08-20,1267.34,1276.01,1261.16,1274.54,4555030000,1274.54 +2008-08-19,1276.65,1276.65,1263.11,1266.69,4159760000,1266.69 +2008-08-18,1298.14,1300.22,1274.51,1278.60,3829290000,1278.60 +2008-08-15,1293.85,1302.05,1290.74,1298.20,4041820000,1298.20 +2008-08-14,1282.11,1300.11,1276.84,1292.93,4064000000,1292.93 +2008-08-13,1288.64,1294.03,1274.86,1285.83,4787600000,1285.83 +2008-08-12,1304.79,1304.79,1285.64,1289.59,4711290000,1289.59 +2008-08-11,1294.42,1313.15,1291.41,1305.32,5067310000,1305.32 +2008-08-08,1266.29,1297.85,1262.11,1296.32,4966810000,1296.32 +2008-08-07,1286.51,1286.51,1264.29,1266.07,5319380000,1266.07 +2008-08-06,1283.99,1291.67,1276.00,1289.19,4873420000,1289.19 +2008-08-05,1254.87,1284.88,1254.67,1284.88,1219310000,1284.88 +2008-08-04,1253.27,1260.49,1247.45,1249.01,4562280000,1249.01 +2008-08-01,1269.42,1270.52,1254.54,1260.31,4684870000,1260.31 +2008-07-31,1281.37,1284.93,1265.97,1267.38,5346050000,1267.38 +2008-07-30,1264.52,1284.33,1264.52,1284.26,5631330000,1284.26 +2008-07-29,1236.38,1263.20,1236.38,1263.20,5414240000,1263.20 +2008-07-28,1257.76,1260.09,1234.37,1234.37,4282960000,1234.37 +2008-07-25,1253.51,1263.23,1251.75,1257.76,4672560000,1257.76 +2008-07-24,1283.22,1283.22,1251.48,1252.54,6127980000,1252.54 +2008-07-23,1278.87,1291.17,1276.06,1282.19,6705830000,1282.19 +2008-07-22,1257.08,1277.42,1248.83,1277.00,6180230000,1277.00 +2008-07-21,1261.82,1267.74,1255.70,1260.00,4630640000,1260.00 +2008-07-18,1258.22,1262.23,1251.81,1260.68,5653280000,1260.68 +2008-07-17,1246.31,1262.31,1241.49,1260.32,7365209600,1260.32 +2008-07-16,1214.65,1245.52,1211.39,1245.36,6738630400,1245.36 +2008-07-15,1226.83,1234.35,1200.44,1214.91,7363640000,1214.91 +2008-07-14,1241.61,1253.50,1225.01,1228.30,5434860000,1228.30 +2008-07-11,1248.66,1257.27,1225.35,1239.49,6742200000,1239.49 +2008-07-10,1245.25,1257.65,1236.76,1253.39,5840430000,1253.39 +2008-07-09,1273.38,1277.36,1244.57,1244.69,5181000000,1244.69 +2008-07-08,1251.84,1274.17,1242.84,1273.70,6034110000,1273.70 +2008-07-07,1262.90,1273.95,1240.68,1252.31,5265420000,1252.31 +2008-07-03,1262.96,1271.48,1252.01,1262.90,3247590000,1262.90 +2008-07-02,1285.82,1292.17,1261.51,1261.52,5276090000,1261.52 +2008-07-01,1276.69,1285.31,1260.68,1284.91,5846290000,1284.91 +2008-06-30,1278.06,1290.31,1274.86,1280.00,5032330000,1280.00 +2008-06-27,1283.60,1289.45,1272.00,1278.38,6208260000,1278.38 +2008-06-26,1316.29,1316.29,1283.15,1283.15,5231280000,1283.15 +2008-06-25,1314.54,1335.63,1314.54,1321.97,4825640000,1321.97 +2008-06-24,1317.23,1326.02,1304.42,1314.29,4705050000,1314.29 +2008-06-23,1319.77,1323.78,1315.31,1318.00,4186370000,1318.00 +2008-06-20,1341.02,1341.02,1314.46,1317.93,5324900000,1317.93 +2008-06-19,1336.89,1347.66,1330.50,1342.83,4811670000,1342.83 +2008-06-18,1349.59,1349.59,1333.40,1337.81,4573570000,1337.81 +2008-06-17,1360.71,1366.59,1350.54,1350.93,3801960000,1350.93 +2008-06-16,1358.85,1364.70,1352.07,1360.14,3706940000,1360.14 +2008-06-13,1341.81,1360.03,1341.71,1360.03,4080420000,1360.03 +2008-06-12,1335.78,1353.03,1331.29,1339.87,4734240000,1339.87 +2008-06-11,1357.09,1357.09,1335.47,1335.49,4779980000,1335.49 +2008-06-10,1358.98,1366.84,1351.56,1358.44,4635070000,1358.44 +2008-06-09,1360.83,1370.63,1350.62,1361.76,4404570000,1361.76 +2008-06-06,1400.06,1400.06,1359.90,1360.68,4771660000,1360.68 +2008-06-05,1377.48,1404.05,1377.48,1404.05,4350790000,1404.05 +2008-06-04,1376.26,1388.18,1371.74,1377.20,4338640000,1377.20 +2008-06-03,1386.42,1393.12,1370.12,1377.65,4396380000,1377.65 +2008-06-02,1399.62,1399.62,1377.79,1385.67,3714320000,1385.67 +2008-05-30,1398.36,1404.46,1398.08,1400.38,3845630000,1400.38 +2008-05-29,1390.50,1406.32,1388.59,1398.26,3894440000,1398.26 +2008-05-28,1386.54,1391.25,1378.16,1390.84,3927240000,1390.84 +2008-05-27,1375.97,1387.40,1373.07,1385.35,3588860000,1385.35 +2008-05-23,1392.20,1392.20,1373.72,1375.93,3516380000,1375.93 +2008-05-22,1390.83,1399.07,1390.23,1394.35,3955960000,1394.35 +2008-05-21,1414.06,1419.12,1388.81,1390.71,4517990000,1390.71 +2008-05-20,1424.49,1424.49,1409.09,1413.40,3854320000,1413.40 +2008-05-19,1425.28,1440.24,1421.63,1426.63,3683970000,1426.63 +2008-05-16,1423.89,1425.82,1414.35,1425.35,3842590000,1425.35 +2008-05-15,1408.36,1424.40,1406.87,1423.57,3836480000,1423.57 +2008-05-14,1405.65,1420.19,1405.65,1408.66,3979370000,1408.66 +2008-05-13,1404.40,1406.30,1396.26,1403.04,4018590000,1403.04 +2008-05-12,1389.40,1404.06,1386.20,1403.58,3370630000,1403.58 +2008-05-09,1394.90,1394.90,1384.11,1388.28,3518620000,1388.28 +2008-05-08,1394.29,1402.35,1389.39,1397.68,3827550000,1397.68 +2008-05-07,1417.49,1419.54,1391.16,1392.57,4075860000,1392.57 +2008-05-06,1405.60,1421.57,1397.10,1418.26,3924100000,1418.26 +2008-05-05,1415.34,1415.34,1404.37,1407.49,3410090000,1407.49 +2008-05-02,1409.16,1422.72,1406.25,1413.90,3953030000,1413.90 +2008-05-01,1385.97,1410.07,1383.07,1409.34,4448780000,1409.34 +2008-04-30,1391.22,1404.57,1384.25,1385.59,4508890000,1385.59 +2008-04-29,1395.61,1397.00,1386.70,1390.94,3815320000,1390.94 +2008-04-28,1397.96,1402.90,1394.40,1396.37,3607000000,1396.37 +2008-04-25,1387.88,1399.11,1379.98,1397.84,3891150000,1397.84 +2008-04-24,1380.52,1397.72,1371.09,1388.82,4461660000,1388.82 +2008-04-23,1378.40,1387.87,1372.24,1379.93,4103610000,1379.93 +2008-04-22,1386.43,1386.43,1369.84,1375.94,3821900000,1375.94 +2008-04-21,1387.72,1390.23,1379.25,1388.17,3420570000,1388.17 +2008-04-18,1369.00,1395.90,1369.00,1390.33,4222380000,1390.33 +2008-04-17,1363.37,1368.60,1357.25,1365.56,3713880000,1365.56 +2008-04-16,1337.02,1365.49,1337.02,1364.71,4260370000,1364.71 +2008-04-15,1331.72,1337.72,1324.35,1334.43,3581230000,1334.43 +2008-04-14,1332.20,1335.64,1326.16,1328.32,3565020000,1328.32 +2008-04-11,1357.98,1357.98,1331.21,1332.83,3723790000,1332.83 +2008-04-10,1355.37,1367.24,1350.11,1360.55,3686150000,1360.55 +2008-04-09,1365.50,1368.39,1349.97,1354.49,3556670000,1354.49 +2008-04-08,1370.16,1370.16,1360.62,1365.54,3602500000,1365.54 +2008-04-07,1373.69,1386.74,1369.02,1372.54,3747780000,1372.54 +2008-04-04,1369.85,1380.91,1362.83,1370.40,3703100000,1370.40 +2008-04-03,1365.69,1375.66,1358.68,1369.31,3920100000,1369.31 +2008-04-02,1369.96,1377.95,1361.55,1367.53,4320440000,1367.53 +2008-04-01,1326.41,1370.18,1326.41,1370.18,4745120000,1370.18 +2008-03-31,1315.92,1328.52,1312.81,1322.70,4188990000,1322.70 +2008-03-28,1327.02,1334.87,1312.95,1315.22,3686980000,1315.22 +2008-03-27,1340.34,1345.62,1325.66,1325.76,4037930000,1325.76 +2008-03-26,1352.45,1352.45,1336.41,1341.13,4055670000,1341.13 +2008-03-25,1349.07,1357.47,1341.21,1352.99,4145120000,1352.99 +2008-03-24,1330.29,1359.68,1330.29,1349.88,4499000000,1349.88 +2008-03-20,1299.67,1330.67,1295.22,1329.51,6145220000,1329.51 +2008-03-19,1330.97,1341.51,1298.42,1298.42,1203830000,1298.42 +2008-03-18,1277.16,1330.74,1277.16,1330.74,5335630000,1330.74 +2008-03-17,1283.21,1287.50,1256.98,1276.60,5683010000,1276.60 +2008-03-14,1316.05,1321.47,1274.86,1288.14,5153780000,1288.14 +2008-03-13,1305.26,1321.68,1282.11,1315.48,5073360000,1315.48 +2008-03-12,1321.13,1333.26,1307.86,1308.77,4414280000,1308.77 +2008-03-11,1274.40,1320.65,1274.40,1320.65,5109080000,1320.65 +2008-03-10,1293.16,1295.01,1272.66,1273.37,4261240000,1273.37 +2008-03-07,1301.53,1313.24,1282.43,1293.37,4565410000,1293.37 +2008-03-06,1332.20,1332.20,1303.42,1304.34,4323460000,1304.34 +2008-03-05,1327.69,1344.19,1320.22,1333.70,4277710000,1333.70 +2008-03-04,1329.58,1331.03,1307.39,1326.75,4757180000,1326.75 +2008-03-03,1330.45,1335.13,1320.04,1331.34,4117570000,1331.34 +2008-02-29,1364.07,1364.07,1325.42,1330.63,4426730000,1330.63 +2008-02-28,1378.16,1378.16,1363.16,1367.68,3938580000,1367.68 +2008-02-27,1378.95,1388.34,1372.00,1380.02,3904700000,1380.02 +2008-02-26,1371.76,1387.34,1363.29,1381.29,4096060000,1381.29 +2008-02-25,1352.75,1374.36,1346.03,1371.80,3866350000,1371.80 +2008-02-22,1344.22,1354.30,1327.04,1353.11,3572660000,1353.11 +2008-02-21,1362.21,1367.94,1339.34,1342.53,3696660000,1342.53 +2008-02-20,1348.39,1363.71,1336.55,1360.03,3870520000,1360.03 +2008-02-19,1355.86,1367.28,1345.05,1348.78,3613550000,1348.78 +2008-02-15,1347.52,1350.00,1338.13,1349.99,3583300000,1349.99 +2008-02-14,1367.33,1368.16,1347.31,1348.86,3644760000,1348.86 +2008-02-13,1353.12,1369.23,1350.78,1367.21,3856420000,1367.21 +2008-02-12,1340.55,1362.10,1339.36,1348.86,4044640000,1348.86 +2008-02-11,1331.92,1341.40,1320.32,1339.13,3593140000,1339.13 +2008-02-08,1336.88,1341.22,1321.06,1331.29,3768490000,1331.29 +2008-02-07,1324.01,1347.16,1316.75,1336.91,4589160000,1336.91 +2008-02-06,1339.48,1351.96,1324.34,1326.45,4008120000,1326.45 +2008-02-05,1380.28,1380.28,1336.64,1336.64,4315740000,1336.64 +2008-02-04,1395.38,1395.38,1379.69,1380.82,3495780000,1380.82 +2008-02-01,1378.60,1396.02,1375.93,1395.42,4650770000,1395.42 +2008-01-31,1351.98,1385.62,1334.08,1378.55,4970290000,1378.55 +2008-01-30,1362.22,1385.86,1352.95,1355.81,4742760000,1355.81 +2008-01-29,1355.94,1364.93,1350.19,1362.30,4232960000,1362.30 +2008-01-28,1330.70,1353.97,1322.26,1353.96,4100930000,1353.96 +2008-01-25,1357.32,1368.56,1327.50,1330.61,4882250000,1330.61 +2008-01-24,1340.13,1355.15,1334.31,1352.07,5735300000,1352.07 +2008-01-23,1310.41,1339.09,1270.05,1338.60,3241680000,1338.60 +2008-01-22,1312.94,1322.09,1274.29,1310.50,6544690000,1310.50 +2008-01-18,1333.90,1350.28,1312.51,1325.19,6004840000,1325.19 +2008-01-17,1374.79,1377.72,1330.67,1333.25,5303130000,1333.25 +2008-01-16,1377.41,1391.99,1364.27,1373.20,5440620000,1373.20 +2008-01-15,1411.88,1411.88,1380.60,1380.95,4601640000,1380.95 +2008-01-14,1402.91,1417.89,1402.91,1416.25,3682090000,1416.25 +2008-01-11,1419.91,1419.91,1394.83,1401.02,4495840000,1401.02 +2008-01-10,1406.78,1429.09,1395.31,1420.33,5170490000,1420.33 +2008-01-09,1390.25,1409.19,1378.70,1409.13,5351030000,1409.13 +2008-01-08,1415.71,1430.28,1388.30,1390.19,4705390000,1390.19 +2008-01-07,1414.07,1423.87,1403.45,1416.18,4221260000,1416.18 +2008-01-04,1444.01,1444.01,1411.19,1411.63,4166000000,1411.63 +2008-01-03,1447.55,1456.80,1443.73,1447.16,3429500000,1447.16 +2008-01-02,1467.97,1471.77,1442.07,1447.16,3452650000,1447.16 +2007-12-31,1475.25,1475.83,1465.13,1468.36,2440880000,1468.36 +2007-12-28,1479.83,1488.01,1471.70,1478.49,2420510000,1478.49 +2007-12-27,1495.05,1495.05,1475.86,1476.27,2365770000,1476.27 +2007-12-26,1495.12,1498.85,1488.20,1497.66,2010500000,1497.66 +2007-12-24,1484.55,1497.63,1484.55,1496.45,1267420000,1496.45 +2007-12-21,1463.19,1485.40,1463.19,1484.46,4508590000,1484.46 +2007-12-20,1456.42,1461.53,1447.22,1460.12,3526890000,1460.12 +2007-12-19,1454.70,1464.42,1445.31,1453.00,3401300000,1453.00 +2007-12-18,1445.92,1460.16,1435.65,1454.98,3723690000,1454.98 +2007-12-17,1465.05,1465.05,1445.43,1445.90,3569030000,1445.90 +2007-12-14,1486.19,1486.67,1467.78,1467.95,3401050000,1467.95 +2007-12-13,1483.27,1489.40,1469.21,1488.41,3635170000,1488.41 +2007-12-12,1487.58,1511.96,1468.23,1486.59,4482120000,1486.59 +2007-12-11,1516.68,1523.57,1475.99,1477.65,4080180000,1477.65 +2007-12-10,1505.11,1518.27,1504.96,1515.96,2911760000,1515.96 +2007-12-07,1508.60,1510.63,1502.66,1504.66,3177710000,1504.66 +2007-12-06,1484.59,1508.02,1482.19,1507.34,3568570000,1507.34 +2007-12-05,1465.22,1486.09,1465.22,1485.01,3663660000,1485.01 +2007-12-04,1471.34,1471.34,1460.66,1462.79,3343620000,1462.79 +2007-12-03,1479.63,1481.16,1470.08,1472.42,3323250000,1472.42 +2007-11-30,1471.83,1488.94,1470.89,1481.14,4422200000,1481.14 +2007-11-29,1467.41,1473.81,1458.36,1469.72,3524730000,1469.72 +2007-11-28,1432.95,1471.62,1432.95,1469.02,4508020000,1469.02 +2007-11-27,1409.59,1429.49,1407.43,1428.23,4320720000,1428.23 +2007-11-26,1440.74,1446.09,1406.10,1407.22,3706470000,1407.22 +2007-11-23,1417.62,1440.86,1417.62,1440.70,1612720000,1440.70 +2007-11-21,1434.71,1436.40,1415.64,1416.77,4076230000,1416.77 +2007-11-20,1434.51,1452.64,1419.28,1439.70,4875150000,1439.70 +2007-11-19,1456.70,1456.70,1430.42,1433.27,4119650000,1433.27 +2007-11-16,1453.09,1462.18,1443.99,1458.74,4168870000,1458.74 +2007-11-15,1468.04,1472.67,1443.49,1451.15,3941010000,1451.15 +2007-11-14,1483.40,1492.14,1466.47,1470.58,4031470000,1470.58 +2007-11-13,1441.35,1481.37,1441.35,1481.05,4141310000,1481.05 +2007-11-12,1453.66,1464.94,1438.53,1439.18,4192520000,1439.18 +2007-11-09,1467.59,1474.09,1448.51,1453.70,4587050000,1453.70 +2007-11-08,1475.27,1482.50,1450.31,1474.77,5439720000,1474.77 +2007-11-07,1515.46,1515.46,1475.04,1475.62,4353160000,1475.62 +2007-11-06,1505.33,1520.77,1499.07,1520.27,3879160000,1520.27 +2007-11-05,1505.61,1510.84,1489.95,1502.17,3819330000,1502.17 +2007-11-02,1511.07,1513.15,1492.53,1509.65,4285990000,1509.65 +2007-11-01,1545.79,1545.79,1506.66,1508.44,4241470000,1508.44 +2007-10-31,1532.15,1552.76,1529.40,1549.38,3953070000,1549.38 +2007-10-30,1539.42,1539.42,1529.55,1531.02,3212520000,1531.02 +2007-10-29,1536.92,1544.67,1536.43,1540.98,3124480000,1540.98 +2007-10-26,1522.17,1535.53,1520.18,1535.28,3612120000,1535.28 +2007-10-25,1516.15,1523.24,1500.46,1514.40,4183960000,1514.40 +2007-10-24,1516.61,1517.23,1489.56,1515.88,4003300000,1515.88 +2007-10-23,1509.30,1520.01,1503.61,1519.59,3309120000,1519.59 +2007-10-22,1497.79,1508.06,1490.40,1506.33,3471830000,1506.33 +2007-10-19,1540.00,1540.00,1500.26,1500.63,4160970000,1500.63 +2007-10-18,1539.29,1542.79,1531.76,1540.08,3203210000,1540.08 +2007-10-17,1544.44,1550.66,1526.01,1541.24,3638070000,1541.24 +2007-10-16,1547.81,1547.81,1536.29,1538.53,3234560000,1538.53 +2007-10-15,1562.25,1564.74,1540.81,1548.71,3139290000,1548.71 +2007-10-12,1555.41,1563.03,1554.09,1561.80,2788690000,1561.80 +2007-10-11,1564.72,1576.09,1546.72,1554.41,3911260000,1554.41 +2007-10-10,1564.98,1565.42,1555.46,1562.47,3044760000,1562.47 +2007-10-09,1553.18,1565.26,1551.82,1565.15,2932040000,1565.15 +2007-10-08,1556.51,1556.51,1549.00,1552.58,2040650000,1552.58 +2007-10-05,1543.84,1561.91,1543.84,1557.59,2919030000,1557.59 +2007-10-04,1539.91,1544.02,1537.63,1542.84,2690430000,1542.84 +2007-10-03,1545.80,1545.84,1536.34,1539.59,3065320000,1539.59 +2007-10-02,1546.96,1548.01,1540.37,1546.63,3101910000,1546.63 +2007-10-01,1527.29,1549.02,1527.25,1547.04,3281990000,1547.04 +2007-09-28,1531.24,1533.74,1521.99,1526.75,2925350000,1526.75 +2007-09-27,1527.32,1532.46,1525.81,1531.38,2872180000,1531.38 +2007-09-26,1518.62,1529.39,1518.62,1525.42,3237390000,1525.42 +2007-09-25,1516.34,1518.27,1507.13,1517.21,3187770000,1517.21 +2007-09-24,1525.75,1530.18,1516.15,1517.73,3131310000,1517.73 +2007-09-21,1518.75,1530.89,1518.75,1525.75,3679460000,1525.75 +2007-09-20,1528.69,1529.14,1516.42,1518.75,2957700000,1518.75 +2007-09-19,1519.75,1538.74,1519.75,1529.03,3846750000,1529.03 +2007-09-18,1476.63,1519.89,1476.63,1519.78,3708940000,1519.78 +2007-09-17,1484.24,1484.24,1471.82,1476.65,2598390000,1476.65 +2007-09-14,1483.95,1485.99,1473.18,1484.25,2641740000,1484.25 +2007-09-13,1471.47,1489.58,1471.47,1483.95,2877080000,1483.95 +2007-09-12,1471.10,1479.50,1465.75,1471.56,2885720000,1471.56 +2007-09-11,1451.69,1472.48,1451.69,1471.49,3015330000,1471.49 +2007-09-10,1453.50,1462.25,1439.29,1451.70,2835720000,1451.70 +2007-09-07,1478.55,1478.55,1449.07,1453.55,3191080000,1453.55 +2007-09-06,1472.03,1481.49,1467.41,1478.55,2459590000,1478.55 +2007-09-05,1488.76,1488.76,1466.34,1472.29,2991600000,1472.29 +2007-09-04,1473.96,1496.40,1472.15,1489.42,2766600000,1489.42 +2007-08-31,1457.61,1481.47,1457.61,1473.99,2731610000,1473.99 +2007-08-30,1463.67,1468.43,1451.25,1457.64,2582960000,1457.64 +2007-08-29,1432.01,1463.76,1432.01,1463.76,2824070000,1463.76 +2007-08-28,1466.72,1466.72,1432.01,1432.36,3078090000,1432.36 +2007-08-27,1479.36,1479.36,1465.98,1466.79,2406180000,1466.79 +2007-08-24,1462.34,1479.40,1460.54,1479.37,2541400000,1479.37 +2007-08-23,1464.05,1472.06,1453.88,1462.50,3084390000,1462.50 +2007-08-22,1447.03,1464.86,1447.03,1464.07,3309120000,1464.07 +2007-08-21,1445.55,1455.32,1439.76,1447.12,3012150000,1447.12 +2007-08-20,1445.94,1451.75,1430.54,1445.55,3321340000,1445.55 +2007-08-17,1411.26,1450.33,1411.26,1445.94,3570040000,1445.94 +2007-08-16,1406.64,1415.97,1370.60,1411.27,6509300000,1411.27 +2007-08-15,1426.15,1440.78,1404.36,1406.70,4290930000,1406.70 +2007-08-14,1452.87,1456.74,1426.20,1426.54,3814630000,1426.54 +2007-08-13,1453.42,1466.29,1451.54,1452.92,3696280000,1452.92 +2007-08-10,1453.09,1462.02,1429.74,1453.64,5345780000,1453.64 +2007-08-09,1497.21,1497.21,1453.09,1453.09,5889600000,1453.09 +2007-08-08,1476.22,1503.89,1476.22,1497.49,5499560000,1497.49 +2007-08-07,1467.62,1488.30,1455.80,1476.71,4909390000,1476.71 +2007-08-06,1433.04,1467.67,1427.39,1467.67,5067200000,1467.67 +2007-08-03,1472.18,1473.23,1432.80,1433.06,4272110000,1433.06 +2007-08-02,1465.46,1476.43,1460.58,1472.20,4368850000,1472.20 +2007-08-01,1455.18,1468.38,1439.59,1465.81,5256780000,1465.81 +2007-07-31,1473.90,1488.30,1454.25,1455.27,4524520000,1455.27 +2007-07-30,1458.93,1477.88,1454.32,1473.91,4128780000,1473.91 +2007-07-27,1482.44,1488.53,1458.95,1458.95,4784650000,1458.95 +2007-07-26,1518.09,1518.09,1465.30,1482.66,4472550000,1482.66 +2007-07-25,1511.03,1524.31,1503.73,1518.09,4283200000,1518.09 +2007-07-24,1541.57,1541.57,1508.62,1511.04,4115830000,1511.04 +2007-07-23,1534.06,1547.23,1534.06,1541.57,3102700000,1541.57 +2007-07-20,1553.19,1553.19,1529.20,1534.10,3745780000,1534.10 +2007-07-19,1546.13,1555.20,1546.13,1553.08,3251450000,1553.08 +2007-07-18,1549.20,1549.20,1533.67,1546.17,3609220000,1546.17 +2007-07-17,1549.52,1555.32,1547.74,1549.37,3007140000,1549.37 +2007-07-16,1552.50,1555.90,1546.69,1549.52,2704110000,1549.52 +2007-07-13,1547.68,1555.10,1544.85,1552.50,2801120000,1552.50 +2007-07-12,1518.74,1547.92,1518.74,1547.70,3489600000,1547.70 +2007-07-11,1509.93,1519.34,1506.10,1518.76,3082920000,1518.76 +2007-07-10,1531.85,1531.85,1510.01,1510.12,3244280000,1510.12 +2007-07-09,1530.43,1534.26,1527.45,1531.85,2715330000,1531.85 +2007-07-06,1524.96,1532.40,1520.47,1530.44,2441520000,1530.44 +2007-07-05,1524.86,1526.57,1517.72,1525.40,2622950000,1525.40 +2007-07-03,1519.12,1526.01,1519.12,1524.87,1560790000,1524.87 +2007-07-02,1504.66,1519.45,1504.66,1519.43,2644990000,1519.43 +2007-06-29,1505.70,1517.53,1493.61,1503.35,3165410000,1503.35 +2007-06-28,1506.32,1514.84,1503.41,1505.71,3006710000,1505.71 +2007-06-27,1492.62,1506.80,1484.18,1506.34,3398150000,1506.34 +2007-06-26,1497.68,1506.12,1490.54,1492.89,3398530000,1492.89 +2007-06-25,1502.56,1514.29,1492.68,1497.74,3287250000,1497.74 +2007-06-22,1522.19,1522.19,1500.74,1502.56,4284320000,1502.56 +2007-06-21,1512.50,1522.90,1504.75,1522.19,3161110000,1522.19 +2007-06-20,1533.68,1537.32,1512.36,1512.84,3286900000,1512.84 +2007-06-19,1531.02,1535.85,1525.67,1533.70,2873590000,1533.70 +2007-06-18,1532.90,1535.44,1529.31,1531.05,2480240000,1531.05 +2007-06-15,1522.97,1538.71,1522.97,1532.91,3406030000,1532.91 +2007-06-14,1515.58,1526.45,1515.58,1522.97,2813630000,1522.97 +2007-06-13,1492.65,1515.70,1492.65,1515.67,3077930000,1515.67 +2007-06-12,1509.12,1511.33,1492.97,1493.00,3056200000,1493.00 +2007-06-11,1507.64,1515.53,1503.35,1509.12,2525280000,1509.12 +2007-06-08,1490.71,1507.76,1487.41,1507.67,2993460000,1507.67 +2007-06-07,1517.36,1517.36,1490.37,1490.72,3538470000,1490.72 +2007-06-06,1530.57,1530.57,1514.13,1517.38,2964190000,1517.38 +2007-06-05,1539.12,1539.12,1525.62,1530.95,2939450000,1530.95 +2007-06-04,1536.28,1540.53,1532.31,1539.18,2738930000,1539.18 +2007-06-01,1530.62,1540.56,1530.62,1536.34,2927020000,1536.34 +2007-05-31,1530.19,1535.56,1528.26,1530.62,3335530000,1530.62 +2007-05-30,1517.60,1530.23,1510.06,1530.23,2980210000,1530.23 +2007-05-29,1515.55,1521.80,1512.02,1518.11,2571790000,1518.11 +2007-05-25,1507.50,1517.41,1507.50,1515.73,2316250000,1515.73 +2007-05-24,1522.10,1529.31,1505.18,1507.51,3365530000,1507.51 +2007-05-23,1524.09,1532.43,1521.90,1522.28,3084260000,1522.28 +2007-05-22,1525.10,1529.24,1522.05,1524.12,2860500000,1524.12 +2007-05-21,1522.75,1529.87,1522.71,1525.10,3465360000,1525.10 +2007-05-18,1512.74,1522.75,1512.74,1522.75,2959050000,1522.75 +2007-05-17,1514.01,1517.14,1509.29,1512.75,2868640000,1512.75 +2007-05-16,1500.75,1514.15,1500.75,1514.14,2915350000,1514.14 +2007-05-15,1503.11,1514.83,1500.43,1501.19,3071020000,1501.19 +2007-05-14,1505.76,1510.90,1498.34,1503.15,2776130000,1503.15 +2007-05-11,1491.47,1506.24,1491.47,1505.85,2720780000,1505.85 +2007-05-10,1512.33,1512.33,1491.42,1491.47,3031240000,1491.47 +2007-05-09,1507.32,1513.80,1503.77,1512.58,2935550000,1512.58 +2007-05-08,1509.36,1509.36,1500.66,1507.72,2795720000,1507.72 +2007-05-07,1505.57,1511.00,1505.54,1509.48,2545090000,1509.48 +2007-05-04,1502.35,1510.34,1501.80,1505.62,2761930000,1505.62 +2007-05-03,1495.56,1503.34,1495.56,1502.39,3007970000,1502.39 +2007-05-02,1486.13,1499.10,1486.13,1495.92,3189800000,1495.92 +2007-05-01,1482.37,1487.27,1476.70,1486.30,3400350000,1486.30 +2007-04-30,1494.07,1497.16,1482.29,1482.37,3093420000,1482.37 +2007-04-27,1494.21,1497.32,1488.67,1494.07,2732810000,1494.07 +2007-04-26,1495.27,1498.02,1491.17,1494.25,3211800000,1494.25 +2007-04-25,1480.28,1496.59,1480.28,1495.42,3252590000,1495.42 +2007-04-24,1480.93,1483.82,1473.74,1480.41,3119750000,1480.41 +2007-04-23,1484.33,1487.32,1480.19,1480.93,2575020000,1480.93 +2007-04-20,1470.69,1484.74,1470.69,1484.35,3329940000,1484.35 +2007-04-19,1472.48,1474.23,1464.47,1470.73,2913610000,1470.73 +2007-04-18,1471.47,1476.57,1466.41,1472.50,2971330000,1472.50 +2007-04-17,1468.47,1474.35,1467.15,1471.48,2920570000,1471.48 +2007-04-16,1452.84,1468.62,1452.84,1468.33,2870140000,1468.33 +2007-04-13,1447.80,1453.11,1444.15,1452.85,2690020000,1452.85 +2007-04-12,1438.87,1448.02,1433.91,1447.80,2770570000,1447.80 +2007-04-11,1448.23,1448.39,1436.15,1438.87,2950190000,1438.87 +2007-04-10,1444.58,1448.73,1443.99,1448.39,2510110000,1448.39 +2007-04-09,1443.77,1448.10,1443.28,1444.61,2349410000,1444.61 +2007-04-05,1438.94,1444.88,1436.67,1443.76,2357230000,1443.76 +2007-04-04,1437.75,1440.16,1435.08,1439.37,2616320000,1439.37 +2007-04-03,1424.27,1440.57,1424.27,1437.77,2921760000,1437.77 +2007-04-02,1420.83,1425.49,1416.37,1424.55,2875880000,1424.55 +2007-03-30,1422.52,1429.22,1408.90,1420.86,2903960000,1420.86 +2007-03-29,1417.17,1426.24,1413.27,1422.53,2854710000,1422.53 +2007-03-28,1428.35,1428.35,1414.07,1417.23,3000440000,1417.23 +2007-03-27,1437.49,1437.49,1425.54,1428.61,2673040000,1428.61 +2007-03-26,1436.11,1437.65,1423.28,1437.50,2754660000,1437.50 +2007-03-23,1434.54,1438.89,1433.21,1436.11,2619020000,1436.11 +2007-03-22,1435.04,1437.66,1429.88,1434.54,3129970000,1434.54 +2007-03-21,1410.92,1437.77,1409.75,1435.04,3184770000,1435.04 +2007-03-20,1402.04,1411.53,1400.70,1410.94,2795940000,1410.94 +2007-03-19,1386.95,1403.20,1386.95,1402.06,2777180000,1402.06 +2007-03-16,1392.28,1397.51,1383.63,1386.95,3393640000,1386.95 +2007-03-15,1387.11,1395.73,1385.16,1392.28,2821900000,1392.28 +2007-03-14,1377.86,1388.09,1363.98,1387.17,3758350000,1387.17 +2007-03-13,1406.23,1406.23,1377.71,1377.95,3485570000,1377.95 +2007-03-12,1402.80,1409.34,1398.40,1406.60,2664000000,1406.60 +2007-03-09,1401.89,1410.15,1397.30,1402.84,2623050000,1402.84 +2007-03-08,1391.88,1407.93,1391.88,1401.89,3014850000,1401.89 +2007-03-07,1395.02,1401.16,1390.64,1391.97,3141350000,1391.97 +2007-03-06,1374.06,1397.90,1374.06,1395.41,3358160000,1395.41 +2007-03-05,1387.11,1391.86,1373.97,1374.12,3480520000,1374.12 +2007-03-02,1403.16,1403.40,1386.87,1387.17,3312260000,1387.17 +2007-03-01,1406.80,1409.46,1380.87,1403.17,3874910000,1403.17 +2007-02-28,1398.64,1415.89,1396.65,1406.82,3925250000,1406.82 +2007-02-27,1449.25,1449.25,1389.42,1399.04,4065230000,1399.04 +2007-02-26,1451.04,1456.95,1445.48,1449.37,2822170000,1449.37 +2007-02-23,1456.22,1456.22,1448.36,1451.19,2579950000,1451.19 +2007-02-22,1457.29,1461.57,1450.51,1456.38,1950770000,1456.38 +2007-02-21,1459.60,1459.60,1452.02,1457.63,2606980000,1457.63 +2007-02-20,1455.53,1460.53,1449.20,1459.68,2337860000,1459.68 +2007-02-16,1456.77,1456.77,1451.57,1455.54,2399450000,1455.54 +2007-02-15,1455.15,1457.97,1453.19,1456.81,2490920000,1456.81 +2007-02-14,1443.91,1457.65,1443.91,1455.30,2699290000,1455.30 +2007-02-13,1433.22,1444.41,1433.22,1444.26,2652150000,1444.26 +2007-02-12,1438.00,1439.11,1431.44,1433.37,2395680000,1433.37 +2007-02-09,1448.25,1452.45,1433.44,1438.06,2951810000,1438.06 +2007-02-08,1449.99,1450.45,1442.81,1448.31,2816180000,1448.31 +2007-02-07,1447.41,1452.99,1446.44,1450.02,2618820000,1450.02 +2007-02-06,1446.98,1450.19,1443.40,1448.00,2608710000,1448.00 +2007-02-05,1448.33,1449.38,1443.85,1446.99,2439430000,1446.99 +2007-02-02,1445.94,1449.33,1444.49,1448.39,2569450000,1448.39 +2007-02-01,1437.90,1446.64,1437.90,1445.94,2914890000,1445.94 +2007-01-31,1428.65,1441.61,1424.78,1438.24,2976690000,1438.24 +2007-01-30,1420.61,1428.82,1420.61,1428.82,2706250000,1428.82 +2007-01-29,1422.03,1426.94,1418.46,1420.62,2730480000,1420.62 +2007-01-26,1423.90,1427.27,1416.96,1422.18,2626620000,1422.18 +2007-01-25,1440.12,1440.69,1422.34,1423.90,2994330000,1423.90 +2007-01-24,1427.96,1440.14,1427.96,1440.13,2783180000,1440.13 +2007-01-23,1422.95,1431.33,1421.66,1427.99,2975070000,1427.99 +2007-01-22,1430.47,1431.39,1420.40,1422.95,2540120000,1422.95 +2007-01-19,1426.35,1431.57,1425.19,1430.50,2777480000,1430.50 +2007-01-18,1430.59,1432.96,1424.21,1426.37,2822430000,1426.37 +2007-01-17,1431.77,1435.27,1428.57,1430.62,2690270000,1430.62 +2007-01-16,1430.73,1433.93,1428.62,1431.90,2599530000,1431.90 +2007-01-12,1423.82,1431.23,1422.58,1430.73,2686480000,1430.73 +2007-01-11,1414.84,1427.12,1414.84,1423.82,2857870000,1423.82 +2007-01-10,1408.70,1415.99,1405.32,1414.85,2764660000,1414.85 +2007-01-09,1412.84,1415.61,1405.42,1412.11,3038380000,1412.11 +2007-01-08,1409.26,1414.98,1403.97,1412.84,2763340000,1412.84 +2007-01-05,1418.34,1418.34,1405.75,1409.71,2919400000,1409.71 +2007-01-04,1416.60,1421.84,1408.43,1418.34,3004460000,1418.34 +2007-01-03,1418.03,1429.42,1407.86,1416.60,3429160000,1416.60 +2006-12-29,1424.71,1427.00,1416.84,1418.30,1678200000,1418.30 +2006-12-28,1426.77,1427.26,1422.05,1424.73,1508570000,1424.73 +2006-12-27,1416.63,1427.72,1416.63,1426.84,1667370000,1426.84 +2006-12-26,1410.75,1417.91,1410.45,1416.90,1310310000,1416.90 +2006-12-22,1418.10,1418.82,1410.28,1410.76,1647590000,1410.76 +2006-12-21,1423.20,1426.40,1415.90,1418.30,2322410000,1418.30 +2006-12-20,1425.51,1429.05,1423.51,1423.53,2387630000,1423.53 +2006-12-19,1422.42,1428.30,1414.88,1425.55,2717060000,1425.55 +2006-12-18,1427.08,1431.81,1420.65,1422.48,2568140000,1422.48 +2006-12-15,1425.48,1431.63,1425.48,1427.09,3229580000,1427.09 +2006-12-14,1413.16,1427.23,1413.16,1425.49,2729700000,1425.49 +2006-12-13,1411.32,1416.64,1411.05,1413.21,2552260000,1413.21 +2006-12-12,1413.00,1413.78,1404.75,1411.56,2738170000,1411.56 +2006-12-11,1409.81,1415.60,1408.56,1413.04,2289900000,1413.04 +2006-12-08,1407.27,1414.09,1403.67,1409.84,2440460000,1409.84 +2006-12-07,1412.86,1418.27,1406.80,1407.29,2743150000,1407.29 +2006-12-06,1414.40,1415.93,1411.05,1412.90,2725280000,1412.90 +2006-12-05,1409.10,1415.27,1408.78,1414.76,2755700000,1414.76 +2006-12-04,1396.67,1411.23,1396.67,1409.12,2766320000,1409.12 +2006-12-01,1400.63,1402.46,1385.93,1396.71,2800980000,1396.71 +2006-11-30,1399.47,1406.30,1393.83,1400.63,4006230000,1400.63 +2006-11-29,1386.11,1401.14,1386.11,1399.48,2790970000,1399.48 +2006-11-28,1381.61,1387.91,1377.83,1386.72,2639750000,1386.72 +2006-11-27,1400.95,1400.95,1381.44,1381.96,2711210000,1381.96 +2006-11-24,1405.94,1405.94,1399.25,1400.95,832550000,1400.95 +2006-11-22,1402.69,1407.89,1402.26,1406.09,2237710000,1406.09 +2006-11-21,1400.43,1403.49,1399.99,1402.81,2597940000,1402.81 +2006-11-20,1401.17,1404.37,1397.85,1400.50,2546710000,1400.50 +2006-11-17,1399.76,1401.21,1394.55,1401.20,2726100000,1401.20 +2006-11-16,1396.53,1403.76,1396.53,1399.76,2835730000,1399.76 +2006-11-15,1392.91,1401.35,1392.13,1396.57,2831130000,1396.57 +2006-11-14,1384.36,1394.49,1379.07,1393.22,3027480000,1393.22 +2006-11-13,1380.58,1387.61,1378.80,1384.42,2386340000,1384.42 +2006-11-10,1378.33,1381.04,1375.60,1380.90,2290200000,1380.90 +2006-11-09,1385.43,1388.92,1377.31,1378.33,3012050000,1378.33 +2006-11-08,1382.50,1388.61,1379.33,1385.72,2814820000,1385.72 +2006-11-07,1379.75,1388.19,1379.19,1382.84,2636390000,1382.84 +2006-11-06,1364.27,1381.40,1364.27,1379.78,2533550000,1379.78 +2006-11-03,1367.31,1371.68,1360.98,1364.30,2419730000,1364.30 +2006-11-02,1367.44,1368.39,1362.21,1367.34,2646180000,1367.34 +2006-11-01,1377.76,1381.95,1366.26,1367.81,2821160000,1367.81 +2006-10-31,1377.93,1381.21,1372.19,1377.94,2803030000,1377.94 +2006-10-30,1377.30,1381.22,1373.46,1377.93,2770440000,1377.93 +2006-10-27,1388.89,1388.89,1375.85,1377.34,2458450000,1377.34 +2006-10-26,1382.21,1389.45,1379.47,1389.08,2793350000,1389.08 +2006-10-25,1377.36,1383.61,1376.00,1382.22,2953540000,1382.22 +2006-10-24,1377.02,1377.78,1372.42,1377.38,2876890000,1377.38 +2006-10-23,1368.58,1377.40,1363.94,1377.02,2480430000,1377.02 +2006-10-20,1366.94,1368.66,1362.10,1368.60,2526410000,1368.60 +2006-10-19,1365.95,1368.09,1362.06,1366.96,2619830000,1366.96 +2006-10-18,1363.93,1372.87,1360.95,1365.80,2658840000,1365.80 +2006-10-17,1369.05,1369.05,1356.87,1364.05,2519620000,1364.05 +2006-10-16,1365.61,1370.20,1364.48,1369.06,2305920000,1369.06 +2006-10-13,1362.82,1366.63,1360.50,1365.62,2482920000,1365.62 +2006-10-12,1349.94,1363.76,1349.94,1362.83,2514350000,1362.83 +2006-10-11,1353.28,1353.97,1343.57,1349.95,2521000000,1349.95 +2006-10-10,1350.62,1354.23,1348.60,1353.42,2376140000,1353.42 +2006-10-09,1349.58,1352.69,1346.55,1350.66,1935170000,1350.66 +2006-10-06,1353.22,1353.22,1344.21,1349.59,2523000000,1349.59 +2006-10-05,1349.84,1353.79,1347.75,1353.22,2817240000,1353.22 +2006-10-04,1333.81,1350.20,1331.48,1350.20,3019880000,1350.20 +2006-10-03,1331.32,1338.31,1327.10,1334.11,2682690000,1334.11 +2006-10-02,1335.82,1338.54,1330.28,1331.32,2154480000,1331.32 +2006-09-29,1339.15,1339.88,1335.64,1335.85,2273430000,1335.85 +2006-09-28,1336.56,1340.28,1333.75,1338.88,2397820000,1338.88 +2006-09-27,1336.12,1340.08,1333.54,1336.59,2749190000,1336.59 +2006-09-26,1326.35,1336.60,1325.30,1336.35,2673350000,1336.35 +2006-09-25,1314.78,1329.35,1311.58,1326.37,2710240000,1326.37 +2006-09-22,1318.03,1318.03,1310.94,1314.78,2162880000,1314.78 +2006-09-21,1324.89,1328.19,1315.45,1318.03,2627440000,1318.03 +2006-09-20,1318.28,1328.53,1318.28,1325.18,2543070000,1325.18 +2006-09-19,1321.17,1322.04,1312.17,1317.64,2390850000,1317.64 +2006-09-18,1319.85,1324.87,1318.16,1321.18,2325080000,1321.18 +2006-09-15,1316.28,1324.65,1316.28,1319.66,3198030000,1319.66 +2006-09-14,1318.00,1318.00,1313.25,1316.28,2351220000,1316.28 +2006-09-13,1312.74,1319.92,1311.12,1318.07,2597220000,1318.07 +2006-09-12,1299.53,1314.28,1299.53,1313.00,2791580000,1313.00 +2006-09-11,1298.86,1302.36,1290.93,1299.54,2506430000,1299.54 +2006-09-08,1294.02,1300.14,1294.02,1298.92,2132890000,1298.92 +2006-09-07,1300.21,1301.25,1292.13,1294.02,2325850000,1294.02 +2006-09-06,1313.04,1313.04,1299.28,1300.26,2329870000,1300.26 +2006-09-05,1310.94,1314.67,1308.82,1313.25,2114480000,1313.25 +2006-09-01,1303.80,1312.03,1303.80,1311.01,1800520000,1311.01 +2006-08-31,1304.25,1306.11,1302.45,1303.82,1974540000,1303.82 +2006-08-30,1303.70,1306.74,1302.15,1305.37,2060690000,1305.37 +2006-08-29,1301.57,1305.02,1295.29,1304.28,2093720000,1304.28 +2006-08-28,1295.09,1305.02,1293.97,1301.78,1834920000,1301.78 +2006-08-25,1295.92,1298.88,1292.39,1295.09,1667580000,1295.09 +2006-08-24,1292.97,1297.23,1291.40,1296.06,1930320000,1296.06 +2006-08-23,1298.73,1301.50,1289.82,1292.99,1893670000,1292.99 +2006-08-22,1297.52,1302.49,1294.44,1298.82,1908740000,1298.82 +2006-08-21,1302.30,1302.30,1295.51,1297.52,1759240000,1297.52 +2006-08-18,1297.48,1302.30,1293.57,1302.30,2033910000,1302.30 +2006-08-17,1295.37,1300.78,1292.71,1297.48,2458340000,1297.48 +2006-08-16,1285.27,1296.21,1285.27,1295.43,2554570000,1295.43 +2006-08-15,1268.19,1286.23,1268.19,1285.58,2334100000,1285.58 +2006-08-14,1266.67,1278.90,1266.67,1268.21,2118020000,1268.21 +2006-08-11,1271.64,1271.64,1262.08,1266.74,2004540000,1266.74 +2006-08-10,1265.72,1272.55,1261.30,1271.81,2402190000,1271.81 +2006-08-09,1271.13,1283.74,1264.73,1265.95,2555180000,1265.95 +2006-08-08,1275.67,1282.75,1268.37,1271.48,2457840000,1271.48 +2006-08-07,1279.31,1279.31,1273.00,1275.77,2045660000,1275.77 +2006-08-04,1280.26,1292.92,1273.82,1279.36,2530970000,1279.36 +2006-08-03,1278.22,1283.96,1271.25,1280.27,2728440000,1280.27 +2006-08-02,1270.73,1283.42,1270.73,1277.41,2610750000,1277.41 +2006-08-01,1278.53,1278.66,1265.71,1270.92,2527690000,1270.92 +2006-07-31,1278.53,1278.66,1274.31,1276.66,2461300000,1276.66 +2006-07-28,1263.15,1280.42,1263.15,1278.55,2480420000,1278.55 +2006-07-27,1268.20,1275.85,1261.92,1263.20,2776710000,1263.20 +2006-07-26,1268.87,1273.89,1261.94,1268.40,2667710000,1268.40 +2006-07-25,1260.91,1272.39,1257.19,1268.88,2563930000,1268.88 +2006-07-24,1240.25,1262.50,1240.25,1260.91,2312720000,1260.91 +2006-07-21,1249.12,1250.96,1238.72,1240.29,2704090000,1240.29 +2006-07-20,1259.81,1262.56,1249.13,1249.13,2345580000,1249.13 +2006-07-19,1236.74,1261.81,1236.74,1259.81,2701980000,1259.81 +2006-07-18,1234.48,1239.86,1224.54,1236.86,2481750000,1236.86 +2006-07-17,1236.20,1240.07,1231.49,1234.49,2146410000,1234.49 +2006-07-14,1242.29,1242.70,1228.45,1236.20,2467120000,1236.20 +2006-07-13,1258.58,1258.58,1241.43,1242.28,2545760000,1242.28 +2006-07-12,1272.39,1273.31,1257.29,1258.60,2250450000,1258.60 +2006-07-11,1267.26,1273.64,1259.65,1272.43,2310850000,1272.43 +2006-07-10,1265.46,1274.06,1264.46,1267.34,1854590000,1267.34 +2006-07-07,1274.08,1275.38,1263.13,1265.48,1988150000,1265.48 +2006-07-06,1270.58,1278.32,1270.58,1274.08,2009160000,1274.08 +2006-07-05,1280.05,1280.05,1265.91,1270.91,2165070000,1270.91 +2006-07-03,1270.06,1280.38,1270.06,1280.19,1114470000,1280.19 +2006-06-30,1272.86,1276.30,1270.20,1270.20,3049560000,1270.20 +2006-06-29,1245.94,1272.88,1245.94,1272.87,2621250000,1272.87 +2006-06-28,1238.99,1247.06,1237.59,1246.00,2085490000,1246.00 +2006-06-27,1250.55,1253.37,1238.94,1239.20,2203130000,1239.20 +2006-06-26,1244.50,1250.92,1243.68,1250.56,1878580000,1250.56 +2006-06-23,1245.59,1253.13,1241.43,1244.50,2017270000,1244.50 +2006-06-22,1251.92,1251.92,1241.53,1245.60,2148180000,1245.60 +2006-06-21,1240.09,1257.96,1240.09,1252.20,2361230000,1252.20 +2006-06-20,1240.12,1249.01,1238.87,1240.12,2232950000,1240.12 +2006-06-19,1251.54,1255.93,1237.17,1240.13,2517200000,1240.13 +2006-06-16,1256.16,1256.27,1246.33,1251.54,2783390000,1251.54 +2006-06-15,1230.01,1258.64,1230.01,1256.16,2775480000,1256.16 +2006-06-14,1223.66,1231.46,1219.29,1230.04,2667990000,1230.04 +2006-06-13,1236.08,1243.37,1222.52,1223.69,3215770000,1223.69 +2006-06-12,1252.27,1255.22,1236.43,1237.44,2247010000,1237.44 +2006-06-09,1257.93,1262.58,1250.03,1252.30,2214000000,1252.30 +2006-06-08,1256.08,1259.85,1235.18,1257.93,3543790000,1257.93 +2006-06-07,1263.61,1272.47,1255.77,1256.15,2644170000,1256.15 +2006-06-06,1265.23,1269.88,1254.46,1263.85,2697650000,1263.85 +2006-06-05,1288.16,1288.16,1264.66,1265.29,2313470000,1265.29 +2006-06-02,1285.71,1290.68,1280.22,1288.22,2295540000,1288.22 +2006-06-01,1270.05,1285.71,1269.19,1285.71,2360160000,1285.71 +2006-05-31,1259.38,1270.09,1259.38,1270.09,2692160000,1270.09 +2006-05-30,1280.04,1280.04,1259.87,1259.87,2176190000,1259.87 +2006-05-26,1272.71,1280.54,1272.50,1280.16,1814020000,1280.16 +2006-05-25,1258.41,1273.26,1258.41,1272.88,2372730000,1272.88 +2006-05-24,1256.56,1264.53,1245.34,1258.57,2999030000,1258.57 +2006-05-23,1262.06,1273.67,1256.15,1256.58,2605250000,1256.58 +2006-05-22,1267.03,1268.77,1252.98,1262.07,2773010000,1262.07 +2006-05-19,1261.81,1272.15,1256.28,1267.03,2982300000,1267.03 +2006-05-18,1270.25,1274.89,1261.75,1261.81,2537490000,1261.81 +2006-05-17,1291.73,1291.73,1267.31,1270.32,2830200000,1270.32 +2006-05-16,1294.50,1297.88,1288.51,1292.08,2386210000,1292.08 +2006-05-15,1291.19,1294.81,1284.51,1294.50,2505660000,1294.50 +2006-05-12,1305.88,1305.88,1290.38,1291.24,2567970000,1291.24 +2006-05-11,1322.63,1322.63,1303.45,1305.92,2531520000,1305.92 +2006-05-10,1324.57,1325.51,1317.44,1322.85,2268550000,1322.85 +2006-05-09,1324.66,1326.60,1322.48,1325.14,2157290000,1325.14 +2006-05-08,1325.76,1326.70,1322.87,1324.66,2151300000,1324.66 +2006-05-05,1312.25,1326.53,1312.25,1325.76,2294760000,1325.76 +2006-05-04,1307.85,1315.14,1307.85,1312.25,2431450000,1312.25 +2006-05-03,1313.21,1313.47,1303.92,1308.12,2395230000,1308.12 +2006-05-02,1305.19,1313.66,1305.19,1313.21,2403470000,1313.21 +2006-05-01,1310.61,1317.21,1303.46,1305.19,2437040000,1305.19 +2006-04-28,1309.72,1316.04,1306.16,1310.61,2419920000,1310.61 +2006-04-27,1305.41,1315.00,1295.57,1309.72,2772010000,1309.72 +2006-04-26,1301.74,1310.97,1301.74,1305.41,2502690000,1305.41 +2006-04-25,1308.11,1310.79,1299.17,1301.74,2366380000,1301.74 +2006-04-24,1311.28,1311.28,1303.79,1308.11,2117330000,1308.11 +2006-04-21,1311.46,1317.67,1306.59,1311.28,2392630000,1311.28 +2006-04-20,1309.93,1318.16,1306.38,1311.46,2512920000,1311.46 +2006-04-19,1307.65,1310.39,1302.79,1309.93,2447310000,1309.93 +2006-04-18,1285.33,1309.02,1285.33,1307.28,2595440000,1307.28 +2006-04-17,1289.12,1292.45,1280.74,1285.33,1794650000,1285.33 +2006-04-13,1288.12,1292.09,1283.37,1289.12,1891940000,1289.12 +2006-04-12,1286.57,1290.93,1286.45,1288.12,1938100000,1288.12 +2006-04-11,1296.60,1300.71,1282.96,1286.57,2232880000,1286.57 +2006-04-10,1295.51,1300.74,1293.17,1296.62,1898320000,1296.62 +2006-04-07,1309.04,1314.07,1294.18,1295.50,2082470000,1295.50 +2006-04-06,1311.56,1311.99,1302.44,1309.04,2281680000,1309.04 +2006-04-05,1305.93,1312.81,1304.82,1311.56,2420020000,1311.56 +2006-04-04,1297.81,1307.55,1294.71,1305.93,2147660000,1305.93 +2006-04-03,1302.88,1309.19,1296.65,1297.81,2494080000,1297.81 +2006-03-31,1300.25,1303.00,1294.87,1294.87,2236710000,1294.87 +2006-03-30,1302.89,1310.15,1296.72,1300.25,2294560000,1300.25 +2006-03-29,1293.23,1305.60,1293.23,1302.89,2143540000,1302.89 +2006-03-28,1301.61,1306.24,1291.84,1293.23,2148580000,1293.23 +2006-03-27,1302.95,1303.74,1299.09,1301.61,2029700000,1301.61 +2006-03-24,1301.67,1306.53,1298.89,1302.95,2326070000,1302.95 +2006-03-23,1305.04,1305.04,1298.11,1301.67,1980940000,1301.67 +2006-03-22,1297.23,1305.97,1295.81,1305.04,2039810000,1305.04 +2006-03-21,1305.08,1310.88,1295.82,1297.23,2147370000,1297.23 +2006-03-20,1307.25,1310.00,1303.59,1305.08,1976830000,1305.08 +2006-03-17,1305.33,1309.79,1305.32,1307.25,2549620000,1307.25 +2006-03-16,1303.02,1310.45,1303.02,1305.33,2292180000,1305.33 +2006-03-15,1297.48,1304.40,1294.97,1303.02,2293000000,1303.02 +2006-03-14,1284.13,1298.14,1282.67,1297.48,2165270000,1297.48 +2006-03-13,1281.58,1287.37,1281.58,1284.13,2070330000,1284.13 +2006-03-10,1272.23,1284.37,1271.11,1281.42,2123450000,1281.42 +2006-03-09,1278.47,1282.74,1272.23,1272.23,2140110000,1272.23 +2006-03-08,1275.88,1280.33,1268.42,1278.47,2442870000,1278.47 +2006-03-07,1278.26,1278.26,1271.11,1275.88,2268050000,1275.88 +2006-03-06,1287.23,1288.23,1275.67,1278.26,2280190000,1278.26 +2006-03-03,1289.14,1297.33,1284.20,1287.23,2152950000,1287.23 +2006-03-02,1291.24,1291.24,1283.21,1289.14,2494590000,1289.14 +2006-03-01,1280.66,1291.80,1280.66,1291.24,2308320000,1291.24 +2006-02-28,1294.12,1294.12,1278.66,1280.66,2370860000,1280.66 +2006-02-27,1289.43,1297.57,1289.43,1294.12,1975320000,1294.12 +2006-02-24,1287.79,1292.11,1285.62,1289.43,1933010000,1289.43 +2006-02-23,1292.67,1293.84,1285.14,1287.79,2144210000,1287.79 +2006-02-22,1283.03,1294.17,1283.03,1292.67,2222380000,1292.67 +2006-02-21,1287.24,1291.92,1281.33,1283.03,2104320000,1283.03 +2006-02-17,1289.38,1289.47,1284.07,1287.24,2128260000,1287.24 +2006-02-16,1280.00,1289.39,1280.00,1289.38,2251490000,1289.38 +2006-02-15,1275.53,1281.00,1271.06,1280.00,2317590000,1280.00 +2006-02-14,1262.86,1278.21,1260.80,1275.53,2437940000,1275.53 +2006-02-13,1266.99,1266.99,1258.34,1262.86,1850080000,1262.86 +2006-02-10,1263.82,1269.89,1254.98,1266.99,2290050000,1266.99 +2006-02-09,1265.65,1274.56,1262.80,1263.78,2441920000,1263.78 +2006-02-08,1254.78,1266.47,1254.78,1265.65,2456860000,1265.65 +2006-02-07,1265.02,1265.78,1253.61,1254.78,2366370000,1254.78 +2006-02-06,1264.03,1267.04,1261.62,1265.02,2132360000,1265.02 +2006-02-03,1270.84,1270.87,1261.02,1264.03,2282210000,1264.03 +2006-02-02,1282.46,1282.46,1267.72,1270.84,2565300000,1270.84 +2006-02-01,1280.08,1283.33,1277.57,1282.46,2589410000,1282.46 +2006-01-31,1285.20,1285.20,1276.85,1280.08,2708310000,1280.08 +2006-01-30,1283.72,1287.94,1283.51,1285.19,2282730000,1285.19 +2006-01-27,1273.83,1286.38,1273.83,1283.72,2623620000,1283.72 +2006-01-26,1264.68,1276.44,1264.68,1273.83,2856780000,1273.83 +2006-01-25,1266.86,1271.87,1259.42,1264.68,2617060000,1264.68 +2006-01-24,1263.82,1271.47,1263.82,1266.86,2608720000,1266.86 +2006-01-23,1261.49,1268.19,1261.49,1263.82,2256070000,1263.82 +2006-01-20,1285.04,1285.04,1260.92,1261.49,2845810000,1261.49 +2006-01-19,1277.93,1287.79,1277.93,1285.04,2444020000,1285.04 +2006-01-18,1282.93,1282.93,1272.08,1277.93,2233200000,1277.93 +2006-01-17,1287.61,1287.61,1278.61,1283.03,2179970000,1283.03 +2006-01-13,1286.06,1288.96,1282.78,1287.61,2206510000,1287.61 +2006-01-12,1294.18,1294.18,1285.04,1286.06,2318350000,1286.06 +2006-01-11,1289.72,1294.90,1288.12,1294.18,2406130000,1294.18 +2006-01-10,1290.15,1290.15,1283.76,1289.69,2373080000,1289.69 +2006-01-09,1285.45,1290.78,1284.82,1290.15,2301490000,1290.15 +2006-01-06,1273.48,1286.09,1273.48,1285.45,2446560000,1285.45 +2006-01-05,1273.46,1276.91,1270.30,1273.48,2433340000,1273.48 +2006-01-04,1268.80,1275.37,1267.74,1273.46,2515330000,1273.46 +2006-01-03,1248.29,1270.22,1245.74,1268.80,2554570000,1268.80 +2005-12-30,1254.42,1254.42,1246.59,1248.29,1443500000,1248.29 +2005-12-29,1258.17,1260.61,1254.18,1254.42,1382540000,1254.42 +2005-12-28,1256.54,1261.10,1256.54,1258.17,1422360000,1258.17 +2005-12-27,1268.66,1271.83,1256.54,1256.54,1540470000,1256.54 +2005-12-23,1268.12,1269.76,1265.92,1268.66,1285810000,1268.66 +2005-12-22,1262.79,1268.19,1262.50,1268.12,1888500000,1268.12 +2005-12-21,1259.62,1269.37,1259.62,1262.79,2065170000,1262.79 +2005-12-20,1259.92,1263.86,1257.21,1259.62,1996690000,1259.62 +2005-12-19,1267.32,1270.51,1259.28,1259.92,2208810000,1259.92 +2005-12-16,1270.94,1275.24,1267.32,1267.32,2584190000,1267.32 +2005-12-15,1272.74,1275.17,1267.74,1270.94,2180590000,1270.94 +2005-12-14,1267.43,1275.80,1267.07,1272.74,2145520000,1272.74 +2005-12-13,1260.43,1272.11,1258.56,1267.43,2390020000,1267.43 +2005-12-12,1259.37,1263.86,1255.52,1260.43,1876550000,1260.43 +2005-12-09,1255.84,1263.08,1254.24,1259.37,1896290000,1259.37 +2005-12-08,1257.37,1263.36,1250.91,1255.84,2178300000,1255.84 +2005-12-07,1263.70,1264.85,1253.02,1257.37,2093830000,1257.37 +2005-12-06,1262.09,1272.89,1262.09,1263.70,2110740000,1263.70 +2005-12-05,1265.08,1265.08,1258.12,1262.09,2325840000,1262.09 +2005-12-02,1264.67,1266.85,1261.42,1265.08,2125580000,1265.08 +2005-12-01,1249.48,1266.17,1249.48,1264.67,2614830000,1264.67 +2005-11-30,1257.48,1260.93,1249.39,1249.48,2374690000,1249.48 +2005-11-29,1257.46,1266.18,1257.46,1257.48,2268340000,1257.48 +2005-11-28,1268.25,1268.44,1257.17,1257.46,2016900000,1257.46 +2005-11-25,1265.61,1268.78,1265.54,1268.25,724940000,1268.25 +2005-11-23,1261.23,1270.64,1259.51,1265.61,1985400000,1265.61 +2005-11-22,1254.85,1261.90,1251.40,1261.23,2291420000,1261.23 +2005-11-21,1248.27,1255.89,1246.90,1254.85,2117350000,1254.85 +2005-11-18,1242.80,1249.58,1240.71,1248.27,2453290000,1248.27 +2005-11-17,1231.21,1242.96,1231.21,1242.80,2298040000,1242.80 +2005-11-16,1229.01,1232.24,1227.18,1231.21,2121580000,1231.21 +2005-11-15,1233.76,1237.94,1226.41,1229.01,2359370000,1229.01 +2005-11-14,1234.72,1237.20,1231.78,1233.76,1899780000,1233.76 +2005-11-11,1230.96,1235.70,1230.72,1234.72,1773140000,1234.72 +2005-11-10,1220.65,1232.41,1215.05,1230.96,2378460000,1230.96 +2005-11-09,1218.59,1226.59,1216.53,1220.65,2214460000,1220.65 +2005-11-08,1222.81,1222.81,1216.08,1218.59,1965050000,1218.59 +2005-11-07,1220.14,1224.18,1217.29,1222.81,1987580000,1222.81 +2005-11-04,1219.94,1222.52,1214.45,1220.14,2050510000,1220.14 +2005-11-03,1214.76,1224.70,1214.76,1219.94,2716630000,1219.94 +2005-11-02,1202.76,1215.17,1201.07,1214.76,2648090000,1214.76 +2005-11-01,1207.01,1207.34,1201.66,1202.76,2457850000,1202.76 +2005-10-31,1198.41,1211.43,1198.41,1207.01,2567470000,1207.01 +2005-10-28,1178.90,1198.41,1178.90,1198.41,2379400000,1198.41 +2005-10-27,1191.38,1192.65,1178.89,1178.90,2395370000,1178.90 +2005-10-26,1196.54,1204.01,1191.38,1191.38,2467750000,1191.38 +2005-10-25,1199.38,1201.30,1189.29,1196.54,2312470000,1196.54 +2005-10-24,1179.59,1199.39,1179.59,1199.38,2197790000,1199.38 +2005-10-21,1177.80,1186.46,1174.92,1179.59,2470920000,1179.59 +2005-10-20,1195.76,1197.30,1173.30,1177.80,2617250000,1177.80 +2005-10-19,1178.14,1195.76,1170.55,1195.76,2703590000,1195.76 +2005-10-18,1190.10,1190.10,1178.13,1178.14,2197010000,1178.14 +2005-10-17,1186.57,1191.21,1184.48,1190.10,2054570000,1190.10 +2005-10-14,1176.84,1187.13,1175.44,1186.57,2188940000,1186.57 +2005-10-13,1177.68,1179.56,1168.20,1176.84,2351150000,1176.84 +2005-10-12,1184.87,1190.02,1173.65,1177.68,2491280000,1177.68 +2005-10-11,1187.33,1193.10,1183.16,1184.87,2299040000,1184.87 +2005-10-10,1195.90,1196.52,1186.12,1187.33,2195990000,1187.33 +2005-10-07,1191.49,1199.71,1191.46,1195.90,2126080000,1195.90 +2005-10-06,1196.39,1202.14,1181.92,1191.49,2792030000,1191.49 +2005-10-05,1214.47,1214.47,1196.25,1196.39,2546780000,1196.39 +2005-10-04,1226.70,1229.88,1214.02,1214.47,2341420000,1214.47 +2005-10-03,1228.81,1233.34,1225.15,1226.70,2097490000,1226.70 +2005-09-30,1227.68,1229.57,1225.22,1228.81,2097520000,1228.81 +2005-09-29,1216.89,1228.70,1211.54,1227.68,2176120000,1227.68 +2005-09-28,1215.66,1220.98,1212.72,1216.89,2106980000,1216.89 +2005-09-27,1215.63,1220.17,1211.11,1215.66,1976270000,1215.66 +2005-09-26,1215.29,1222.56,1211.84,1215.63,2022220000,1215.63 +2005-09-23,1214.62,1218.83,1209.80,1215.29,1973020000,1215.29 +2005-09-22,1210.20,1216.64,1205.35,1214.62,2424720000,1214.62 +2005-09-21,1221.34,1221.52,1209.89,1210.20,2548150000,1210.20 +2005-09-20,1231.02,1236.49,1220.07,1221.34,2319250000,1221.34 +2005-09-19,1237.91,1237.91,1227.65,1231.02,2076540000,1231.02 +2005-09-16,1228.42,1237.95,1228.42,1237.91,3152470000,1237.91 +2005-09-15,1227.16,1231.88,1224.85,1227.73,2079340000,1227.73 +2005-09-14,1231.20,1234.74,1226.16,1227.16,1986750000,1227.16 +2005-09-13,1240.57,1240.57,1231.20,1231.20,2082360000,1231.20 +2005-09-12,1241.48,1242.60,1239.15,1240.56,1938050000,1240.56 +2005-09-09,1231.67,1243.13,1231.67,1241.48,1992560000,1241.48 +2005-09-08,1236.36,1236.36,1229.51,1231.67,1955380000,1231.67 +2005-09-07,1233.39,1237.06,1230.93,1236.36,2067700000,1236.36 +2005-09-06,1218.02,1233.61,1218.02,1233.39,1932090000,1233.39 +2005-09-02,1221.59,1224.45,1217.75,1218.02,1640160000,1218.02 +2005-09-01,1220.33,1227.29,1216.18,1221.59,2229860000,1221.59 +2005-08-31,1208.41,1220.36,1204.40,1220.33,2365510000,1220.33 +2005-08-30,1212.28,1212.28,1201.07,1208.41,1916470000,1208.41 +2005-08-29,1205.10,1214.28,1201.53,1212.28,1599450000,1212.28 +2005-08-26,1212.40,1212.40,1204.23,1205.10,1541090000,1205.10 +2005-08-25,1209.59,1213.73,1209.57,1212.37,1571110000,1212.37 +2005-08-24,1217.57,1224.15,1209.37,1209.59,1930800000,1209.59 +2005-08-23,1221.73,1223.04,1214.44,1217.59,1678620000,1217.59 +2005-08-22,1219.71,1228.96,1216.47,1221.73,1621330000,1221.73 +2005-08-19,1219.02,1225.08,1219.02,1219.71,1558790000,1219.71 +2005-08-18,1220.24,1222.64,1215.93,1219.02,1808170000,1219.02 +2005-08-17,1219.34,1225.63,1218.07,1220.24,1859150000,1220.24 +2005-08-16,1233.87,1233.87,1219.05,1219.34,1820410000,1219.34 +2005-08-15,1230.40,1236.24,1226.20,1233.87,1562880000,1233.87 +2005-08-12,1237.81,1237.81,1225.87,1230.39,1709300000,1230.39 +2005-08-11,1229.13,1237.81,1228.33,1237.81,1941560000,1237.81 +2005-08-10,1231.38,1242.69,1226.58,1229.13,2172320000,1229.13 +2005-08-09,1223.13,1234.11,1223.13,1231.38,1897520000,1231.38 +2005-08-08,1226.42,1232.28,1222.67,1223.13,1804140000,1223.13 +2005-08-05,1235.86,1235.86,1225.62,1226.42,1930280000,1226.42 +2005-08-04,1245.04,1245.04,1235.15,1235.86,1981220000,1235.86 +2005-08-03,1244.12,1245.86,1240.57,1245.04,1999980000,1245.04 +2005-08-02,1235.35,1244.69,1235.35,1244.12,2043120000,1244.12 +2005-08-01,1234.18,1239.10,1233.80,1235.35,1716870000,1235.35 +2005-07-29,1243.72,1245.04,1234.18,1234.18,1789600000,1234.18 +2005-07-28,1236.79,1245.15,1235.81,1243.72,2001680000,1243.72 +2005-07-27,1231.16,1237.64,1230.15,1236.79,1945800000,1236.79 +2005-07-26,1229.03,1234.42,1229.03,1231.16,1934180000,1231.16 +2005-07-25,1233.68,1238.36,1228.15,1229.03,1717580000,1229.03 +2005-07-22,1227.04,1234.19,1226.15,1233.68,1766990000,1233.68 +2005-07-21,1235.20,1235.83,1224.70,1227.04,2129840000,1227.04 +2005-07-20,1229.35,1236.56,1222.91,1235.20,2063340000,1235.20 +2005-07-19,1221.13,1230.34,1221.13,1229.35,2041280000,1229.35 +2005-07-18,1227.92,1227.92,1221.13,1221.13,1582100000,1221.13 +2005-07-15,1226.50,1229.53,1223.50,1227.92,1716400000,1227.92 +2005-07-14,1223.29,1233.16,1223.29,1226.50,2048710000,1226.50 +2005-07-13,1222.21,1224.46,1219.64,1223.29,1812500000,1223.29 +2005-07-12,1219.44,1225.54,1216.60,1222.21,1932010000,1222.21 +2005-07-11,1211.86,1220.03,1211.86,1219.44,1846300000,1219.44 +2005-07-08,1197.87,1212.73,1197.20,1211.86,1900810000,1211.86 +2005-07-07,1194.94,1198.46,1183.55,1197.87,1952440000,1197.87 +2005-07-06,1204.99,1206.11,1194.78,1194.94,1883470000,1194.94 +2005-07-05,1194.44,1206.34,1192.49,1204.99,1805820000,1204.99 +2005-07-01,1191.33,1197.89,1191.33,1194.44,1593820000,1194.44 +2005-06-30,1199.85,1203.27,1190.51,1191.33,2109490000,1191.33 +2005-06-29,1201.57,1204.07,1198.70,1199.85,1769280000,1199.85 +2005-06-28,1190.69,1202.54,1190.69,1201.57,1772410000,1201.57 +2005-06-27,1191.57,1194.33,1188.30,1190.69,1738620000,1190.69 +2005-06-24,1200.73,1200.90,1191.45,1191.57,2418800000,1191.57 +2005-06-23,1213.88,1216.45,1200.72,1200.73,2029920000,1200.73 +2005-06-22,1213.61,1219.59,1211.69,1213.88,1823250000,1213.88 +2005-06-21,1216.10,1217.13,1211.86,1213.61,1720700000,1213.61 +2005-06-20,1216.96,1219.10,1210.65,1216.10,1714530000,1216.10 +2005-06-17,1210.93,1219.55,1210.93,1216.96,2407370000,1216.96 +2005-06-16,1206.55,1212.10,1205.47,1210.96,1776040000,1210.96 +2005-06-15,1203.91,1208.08,1198.66,1206.58,1840440000,1206.58 +2005-06-14,1200.82,1207.53,1200.18,1203.91,1698150000,1203.91 +2005-06-13,1198.11,1206.03,1194.51,1200.82,1661350000,1200.82 +2005-06-10,1200.93,1202.79,1192.64,1198.11,1664180000,1198.11 +2005-06-09,1194.67,1201.86,1191.09,1200.93,1824120000,1200.93 +2005-06-08,1197.26,1201.97,1193.33,1194.67,1715490000,1194.67 +2005-06-07,1197.51,1208.85,1197.26,1197.26,1851370000,1197.26 +2005-06-06,1196.02,1198.78,1192.75,1197.51,1547120000,1197.51 +2005-06-03,1204.29,1205.09,1194.55,1196.02,1627520000,1196.02 +2005-06-02,1202.27,1204.67,1198.42,1204.29,1813790000,1204.29 +2005-06-01,1191.50,1205.64,1191.03,1202.22,1810100000,1202.22 +2005-05-31,1198.78,1198.78,1191.50,1191.50,1840680000,1191.50 +2005-05-27,1197.62,1199.56,1195.28,1198.78,1381430000,1198.78 +2005-05-26,1190.01,1198.95,1190.01,1197.62,1654110000,1197.62 +2005-05-25,1194.07,1194.07,1185.96,1190.01,1742180000,1190.01 +2005-05-24,1193.86,1195.29,1189.87,1194.07,1681000000,1194.07 +2005-05-23,1189.28,1197.44,1188.76,1193.86,1681170000,1193.86 +2005-05-20,1191.08,1191.22,1185.19,1189.28,1631750000,1189.28 +2005-05-19,1185.56,1191.09,1184.49,1191.08,1775860000,1191.08 +2005-05-18,1173.80,1187.90,1173.80,1185.56,2266320000,1185.56 +2005-05-17,1165.69,1174.35,1159.86,1173.80,1887260000,1173.80 +2005-05-16,1154.05,1165.75,1153.64,1165.69,1856860000,1165.69 +2005-05-13,1159.36,1163.75,1146.18,1154.05,2188590000,1154.05 +2005-05-12,1171.11,1173.37,1157.76,1159.36,1995290000,1159.36 +2005-05-11,1166.22,1171.77,1157.71,1171.11,1834970000,1171.11 +2005-05-10,1178.84,1178.84,1162.98,1166.22,1889660000,1166.22 +2005-05-09,1171.35,1178.87,1169.38,1178.84,1857020000,1178.84 +2005-05-06,1172.63,1177.75,1170.50,1171.35,1707200000,1171.35 +2005-05-05,1175.65,1178.62,1166.77,1172.63,1997100000,1172.63 +2005-05-04,1161.17,1176.01,1161.17,1175.65,2306480000,1175.65 +2005-05-03,1162.16,1166.89,1156.71,1161.17,2167020000,1161.17 +2005-05-02,1156.85,1162.87,1154.71,1162.16,1980040000,1162.16 +2005-04-29,1143.22,1156.97,1139.19,1156.85,2362360000,1156.85 +2005-04-28,1156.38,1156.38,1143.22,1143.22,2182270000,1143.22 +2005-04-27,1151.74,1159.87,1144.42,1156.38,2151520000,1156.38 +2005-04-26,1162.10,1164.80,1151.83,1151.83,1959740000,1151.83 +2005-04-25,1152.12,1164.05,1152.12,1162.10,1795030000,1162.10 +2005-04-22,1159.95,1159.95,1142.95,1152.12,2045880000,1152.12 +2005-04-21,1137.50,1159.95,1137.50,1159.95,2308560000,1159.95 +2005-04-20,1152.78,1155.50,1136.15,1137.50,2217050000,1137.50 +2005-04-19,1145.98,1154.67,1145.98,1152.78,2142700000,1152.78 +2005-04-18,1142.62,1148.92,1139.80,1145.98,2180670000,1145.98 +2005-04-15,1162.05,1162.05,1141.92,1142.62,2689960000,1142.62 +2005-04-14,1173.79,1174.67,1161.70,1162.05,2355040000,1162.05 +2005-04-13,1187.76,1187.76,1171.40,1173.79,2049740000,1173.79 +2005-04-12,1181.21,1190.17,1170.85,1187.76,1979830000,1187.76 +2005-04-11,1181.20,1184.07,1178.69,1181.21,1525310000,1181.21 +2005-04-08,1191.14,1191.75,1181.13,1181.20,1661330000,1181.20 +2005-04-07,1184.07,1191.88,1183.81,1191.14,1900620000,1191.14 +2005-04-06,1181.39,1189.34,1181.39,1184.07,1797400000,1184.07 +2005-04-05,1176.12,1183.56,1176.12,1181.39,1870800000,1181.39 +2005-04-04,1172.79,1178.61,1167.72,1176.12,2079770000,1176.12 +2005-04-01,1180.59,1189.80,1169.91,1172.92,2168690000,1172.92 +2005-03-31,1181.41,1184.53,1179.49,1180.59,2214230000,1180.59 +2005-03-30,1165.36,1181.54,1165.36,1181.41,2097110000,1181.41 +2005-03-29,1174.28,1179.39,1163.69,1165.36,2223250000,1165.36 +2005-03-28,1171.42,1179.91,1171.42,1174.28,1746220000,1174.28 +2005-03-24,1172.53,1180.11,1171.42,1171.42,1721720000,1171.42 +2005-03-23,1171.71,1176.26,1168.70,1172.53,2246870000,1172.53 +2005-03-22,1183.78,1189.59,1171.63,1171.71,2114470000,1171.71 +2005-03-21,1189.65,1189.65,1178.82,1183.78,1819440000,1183.78 +2005-03-18,1190.21,1191.98,1182.78,1189.65,2344370000,1189.65 +2005-03-17,1188.07,1193.28,1186.34,1190.21,1581930000,1190.21 +2005-03-16,1197.75,1197.75,1185.61,1188.07,1653190000,1188.07 +2005-03-15,1206.83,1210.54,1197.75,1197.75,1513530000,1197.75 +2005-03-14,1200.08,1206.83,1199.51,1206.83,1437430000,1206.83 +2005-03-11,1209.25,1213.04,1198.15,1200.08,1449820000,1200.08 +2005-03-10,1207.01,1211.23,1201.41,1209.25,1604020000,1209.25 +2005-03-09,1219.43,1219.43,1206.66,1207.01,1704970000,1207.01 +2005-03-08,1225.31,1225.69,1218.57,1219.43,1523090000,1219.43 +2005-03-07,1222.12,1229.11,1222.12,1225.31,1488830000,1225.31 +2005-03-04,1210.47,1224.76,1210.47,1222.12,1636820000,1222.12 +2005-03-03,1210.08,1215.72,1204.45,1210.47,1616240000,1210.47 +2005-03-02,1210.41,1215.79,1204.22,1210.08,1568540000,1210.08 +2005-03-01,1203.60,1212.25,1203.60,1210.41,1708060000,1210.41 +2005-02-28,1211.37,1211.37,1198.13,1203.60,1795480000,1203.60 +2005-02-25,1200.20,1212.15,1199.61,1211.37,1523680000,1211.37 +2005-02-24,1190.80,1200.42,1187.80,1200.20,1518750000,1200.20 +2005-02-23,1184.16,1193.52,1184.16,1190.80,1501090000,1190.80 +2005-02-22,1201.59,1202.48,1184.16,1184.16,1744940000,1184.16 +2005-02-18,1200.75,1202.92,1197.35,1201.59,1551200000,1201.59 +2005-02-17,1210.34,1211.33,1200.74,1200.75,1580120000,1200.75 +2005-02-16,1210.12,1212.44,1205.06,1210.34,1490100000,1210.34 +2005-02-15,1206.14,1212.44,1205.52,1210.12,1527080000,1210.12 +2005-02-14,1205.30,1206.93,1203.59,1206.14,1290180000,1206.14 +2005-02-11,1197.01,1208.38,1193.28,1205.30,1562300000,1205.30 +2005-02-10,1191.99,1198.75,1191.54,1197.01,1491670000,1197.01 +2005-02-09,1202.30,1203.83,1191.54,1191.99,1511040000,1191.99 +2005-02-08,1201.72,1205.11,1200.16,1202.30,1416170000,1202.30 +2005-02-07,1203.03,1204.15,1199.27,1201.72,1347270000,1201.72 +2005-02-04,1189.89,1203.47,1189.67,1203.03,1648160000,1203.03 +2005-02-03,1193.19,1193.19,1185.64,1189.89,1554460000,1189.89 +2005-02-02,1189.41,1195.25,1188.92,1193.19,1561740000,1193.19 +2005-02-01,1181.27,1190.39,1180.95,1189.41,1681980000,1189.41 +2005-01-31,1171.36,1182.07,1171.36,1181.27,1679800000,1181.27 +2005-01-28,1174.55,1175.61,1166.25,1171.36,1641800000,1171.36 +2005-01-27,1174.07,1177.50,1170.15,1174.55,1600600000,1174.55 +2005-01-26,1168.41,1175.96,1168.41,1174.07,1635900000,1174.07 +2005-01-25,1163.75,1174.30,1163.75,1168.41,1610400000,1168.41 +2005-01-24,1167.87,1173.03,1163.75,1163.75,1494600000,1163.75 +2005-01-21,1175.41,1179.45,1167.82,1167.87,1643500000,1167.87 +2005-01-20,1184.63,1184.63,1173.42,1175.41,1692000000,1175.41 +2005-01-19,1195.98,1195.98,1184.41,1184.63,1498700000,1184.63 +2005-01-18,1184.52,1195.98,1180.10,1195.98,1596800000,1195.98 +2005-01-14,1177.45,1185.21,1177.45,1184.52,1335400000,1184.52 +2005-01-13,1187.70,1187.70,1175.81,1177.45,1510300000,1177.45 +2005-01-12,1182.99,1187.92,1175.64,1187.70,1562100000,1187.70 +2005-01-11,1190.25,1190.25,1180.43,1182.99,1488800000,1182.99 +2005-01-10,1186.19,1194.78,1184.80,1190.25,1490400000,1190.25 +2005-01-07,1187.89,1192.20,1182.16,1186.19,1477900000,1186.19 +2005-01-06,1183.74,1191.63,1183.27,1187.89,1569100000,1187.89 +2005-01-05,1188.05,1192.73,1183.72,1183.74,1738900000,1183.74 +2005-01-04,1202.08,1205.84,1185.39,1188.05,1721000000,1188.05 +2005-01-03,1211.92,1217.80,1200.32,1202.08,1510800000,1202.08 +2004-12-31,1213.55,1217.33,1211.65,1211.92,786900000,1211.92 +2004-12-30,1213.45,1216.47,1213.41,1213.55,829800000,1213.55 +2004-12-29,1213.54,1213.85,1210.95,1213.45,925900000,1213.45 +2004-12-28,1204.92,1213.54,1204.92,1213.54,983000000,1213.54 +2004-12-27,1210.13,1214.13,1204.92,1204.92,922000000,1204.92 +2004-12-23,1209.57,1213.66,1208.71,1210.13,956100000,1210.13 +2004-12-22,1205.45,1211.42,1203.85,1209.57,1390800000,1209.57 +2004-12-21,1194.65,1205.93,1194.65,1205.45,1483700000,1205.45 +2004-12-20,1194.20,1203.43,1193.36,1194.65,1422800000,1194.65 +2004-12-17,1203.21,1203.21,1193.49,1194.20,2335000000,1194.20 +2004-12-16,1205.72,1207.97,1198.41,1203.21,1793900000,1203.21 +2004-12-15,1203.38,1206.61,1199.44,1205.72,1695800000,1205.72 +2004-12-14,1198.68,1205.29,1197.84,1203.38,1544400000,1203.38 +2004-12-13,1188.00,1198.74,1188.00,1198.68,1436100000,1198.68 +2004-12-10,1189.24,1191.45,1185.24,1188.00,1443700000,1188.00 +2004-12-09,1182.81,1190.51,1173.79,1189.24,1624700000,1189.24 +2004-12-08,1177.07,1184.05,1177.07,1182.81,1525200000,1182.81 +2004-12-07,1190.25,1192.17,1177.07,1177.07,1533900000,1177.07 +2004-12-06,1191.17,1192.41,1185.18,1190.25,1354400000,1190.25 +2004-12-03,1190.33,1197.46,1187.71,1191.17,1566700000,1191.17 +2004-12-02,1191.37,1194.80,1186.72,1190.33,1774900000,1190.33 +2004-12-01,1173.78,1191.37,1173.78,1191.37,1772800000,1191.37 +2004-11-30,1178.57,1178.66,1173.81,1173.82,1553500000,1173.82 +2004-11-29,1182.65,1186.94,1172.37,1178.57,1378500000,1178.57 +2004-11-26,1181.76,1186.62,1181.08,1182.65,504580000,1182.65 +2004-11-24,1176.94,1182.46,1176.94,1181.76,1149600000,1181.76 +2004-11-23,1177.24,1179.52,1171.41,1176.94,1428300000,1176.94 +2004-11-22,1170.34,1178.18,1167.89,1177.24,1392700000,1177.24 +2004-11-19,1183.55,1184.00,1169.19,1170.34,1526600000,1170.34 +2004-11-18,1181.94,1184.90,1180.15,1183.55,1456700000,1183.55 +2004-11-17,1175.43,1188.46,1175.43,1181.94,1684200000,1181.94 +2004-11-16,1183.81,1183.81,1175.32,1175.43,1364400000,1175.43 +2004-11-15,1184.17,1184.48,1179.85,1183.81,1453300000,1183.81 +2004-11-12,1173.48,1184.17,1171.43,1184.17,1531600000,1184.17 +2004-11-11,1162.91,1174.80,1162.91,1173.48,1393000000,1173.48 +2004-11-10,1164.08,1169.25,1162.51,1162.91,1504300000,1162.91 +2004-11-09,1164.89,1168.96,1162.48,1164.08,1450800000,1164.08 +2004-11-08,1166.17,1166.77,1162.32,1164.89,1358700000,1164.89 +2004-11-05,1161.67,1170.87,1160.66,1166.17,1724400000,1166.17 +2004-11-04,1143.20,1161.67,1142.34,1161.67,1782700000,1161.67 +2004-11-03,1130.54,1147.57,1130.54,1143.20,1767500000,1143.20 +2004-11-02,1130.51,1140.48,1128.12,1130.56,1659000000,1130.56 +2004-11-01,1130.20,1133.41,1127.60,1130.51,1395900000,1130.51 +2004-10-29,1127.44,1131.40,1124.62,1130.20,1500800000,1130.20 +2004-10-28,1125.34,1130.67,1120.60,1127.44,1628200000,1127.44 +2004-10-27,1111.09,1126.29,1107.43,1125.40,1741900000,1125.40 +2004-10-26,1094.81,1111.10,1094.81,1111.09,1685400000,1111.09 +2004-10-25,1095.74,1096.81,1090.29,1094.80,1380500000,1094.80 +2004-10-22,1106.49,1108.14,1095.47,1095.74,1469600000,1095.74 +2004-10-21,1103.66,1108.87,1098.47,1106.49,1673000000,1106.49 +2004-10-20,1103.23,1104.09,1094.25,1103.66,1685700000,1103.66 +2004-10-19,1114.02,1117.96,1103.15,1103.23,1737500000,1103.23 +2004-10-18,1108.20,1114.46,1103.33,1114.02,1373300000,1114.02 +2004-10-15,1103.29,1113.17,1102.14,1108.20,1645100000,1108.20 +2004-10-14,1113.65,1114.96,1102.06,1103.29,1489500000,1103.29 +2004-10-13,1121.84,1127.01,1109.63,1113.65,1546200000,1113.65 +2004-10-12,1124.39,1124.39,1115.77,1121.84,1320100000,1121.84 +2004-10-11,1122.14,1126.20,1122.14,1124.39,943800000,1124.39 +2004-10-08,1130.65,1132.92,1120.19,1122.14,1291600000,1122.14 +2004-10-07,1142.05,1142.05,1130.50,1130.65,1447500000,1130.65 +2004-10-06,1134.48,1142.05,1132.94,1142.05,1416700000,1142.05 +2004-10-05,1135.17,1137.87,1132.03,1134.48,1418400000,1134.48 +2004-10-04,1131.50,1140.13,1131.50,1135.17,1534000000,1135.17 +2004-10-01,1114.58,1131.64,1114.58,1131.50,1582200000,1131.50 +2004-09-30,1114.80,1116.31,1109.68,1114.58,1748000000,1114.58 +2004-09-29,1110.06,1114.80,1107.42,1114.80,1402900000,1114.80 +2004-09-28,1103.52,1111.77,1101.29,1110.06,1396600000,1110.06 +2004-09-27,1110.11,1110.11,1103.24,1103.52,1263500000,1103.52 +2004-09-24,1108.36,1113.81,1108.36,1110.11,1255400000,1110.11 +2004-09-23,1113.56,1113.61,1108.05,1108.36,1286300000,1108.36 +2004-09-22,1129.30,1129.30,1112.67,1113.56,1379900000,1113.56 +2004-09-21,1122.20,1131.54,1122.20,1129.30,1325000000,1129.30 +2004-09-20,1128.55,1128.55,1120.34,1122.20,1197600000,1122.20 +2004-09-17,1123.50,1130.14,1123.50,1128.55,1422600000,1128.55 +2004-09-16,1120.37,1126.06,1120.37,1123.50,1113900000,1123.50 +2004-09-15,1128.33,1128.33,1119.82,1120.37,1256000000,1120.37 +2004-09-14,1125.82,1129.46,1124.72,1128.33,1204500000,1128.33 +2004-09-13,1123.92,1129.78,1123.35,1125.82,1299800000,1125.82 +2004-09-10,1118.38,1125.26,1114.39,1123.92,1261200000,1123.92 +2004-09-09,1116.27,1121.30,1113.62,1118.38,1371300000,1118.38 +2004-09-08,1121.30,1123.05,1116.27,1116.27,1246300000,1116.27 +2004-09-07,1113.63,1124.08,1113.63,1121.30,1214400000,1121.30 +2004-09-03,1118.31,1120.80,1113.57,1113.63,924170000,1113.63 +2004-09-02,1105.91,1119.11,1105.60,1118.31,1118400000,1118.31 +2004-09-01,1104.24,1109.24,1099.18,1105.91,1142100000,1105.91 +2004-08-31,1099.15,1104.24,1094.72,1104.24,1138200000,1104.24 +2004-08-30,1107.77,1107.77,1099.15,1099.15,843100000,1099.15 +2004-08-27,1105.09,1109.68,1104.62,1107.77,845400000,1107.77 +2004-08-26,1104.96,1106.78,1102.46,1105.09,1023600000,1105.09 +2004-08-25,1096.19,1106.29,1093.24,1104.96,1192200000,1104.96 +2004-08-24,1095.68,1100.94,1092.82,1096.19,1092500000,1096.19 +2004-08-23,1098.35,1101.40,1094.73,1095.68,1021900000,1095.68 +2004-08-20,1091.23,1100.26,1089.57,1098.35,1199900000,1098.35 +2004-08-19,1095.17,1095.17,1086.28,1091.23,1249400000,1091.23 +2004-08-18,1081.71,1095.17,1078.93,1095.17,1282500000,1095.17 +2004-08-17,1079.34,1086.78,1079.34,1081.71,1267800000,1081.71 +2004-08-16,1064.80,1080.66,1064.80,1079.34,1206200000,1079.34 +2004-08-13,1063.23,1067.58,1060.72,1064.80,1175100000,1064.80 +2004-08-12,1075.79,1075.79,1062.82,1063.23,1405100000,1063.23 +2004-08-11,1079.04,1079.04,1065.92,1075.79,1410400000,1075.79 +2004-08-10,1065.22,1079.04,1065.22,1079.04,1245600000,1079.04 +2004-08-09,1063.97,1069.46,1063.97,1065.22,1086000000,1065.22 +2004-08-06,1080.70,1080.70,1062.23,1063.97,1521000000,1063.97 +2004-08-05,1098.63,1098.79,1079.98,1080.70,1397400000,1080.70 +2004-08-04,1099.69,1102.45,1092.40,1098.63,1369200000,1098.63 +2004-08-03,1106.62,1106.62,1099.26,1099.69,1338300000,1099.69 +2004-08-02,1101.72,1108.60,1097.34,1106.62,1276000000,1106.62 +2004-07-30,1100.43,1103.73,1096.96,1101.72,1298200000,1101.72 +2004-07-29,1095.42,1103.51,1095.42,1100.43,1530100000,1100.43 +2004-07-28,1094.83,1098.84,1082.17,1095.42,1554300000,1095.42 +2004-07-27,1084.07,1096.65,1084.07,1094.83,1610800000,1094.83 +2004-07-26,1086.20,1089.82,1078.78,1084.07,1413400000,1084.07 +2004-07-23,1096.84,1096.84,1083.56,1086.20,1337500000,1086.20 +2004-07-22,1093.88,1099.66,1084.16,1096.84,1680800000,1096.84 +2004-07-21,1108.67,1116.27,1093.88,1093.88,1679500000,1093.88 +2004-07-20,1100.90,1108.88,1099.10,1108.67,1445800000,1108.67 +2004-07-19,1101.39,1105.52,1096.55,1100.90,1319900000,1100.90 +2004-07-16,1106.69,1112.17,1101.07,1101.39,1450300000,1101.39 +2004-07-15,1111.47,1114.63,1106.67,1106.69,1408700000,1106.69 +2004-07-14,1115.14,1119.60,1107.83,1111.47,1462000000,1111.47 +2004-07-13,1114.35,1116.30,1112.99,1115.14,1199700000,1115.14 +2004-07-12,1112.81,1116.11,1106.71,1114.35,1114600000,1114.35 +2004-07-09,1109.11,1115.57,1109.11,1112.81,1186300000,1112.81 +2004-07-08,1118.33,1119.12,1108.72,1109.11,1401100000,1109.11 +2004-07-07,1116.21,1122.37,1114.92,1118.33,1328600000,1118.33 +2004-07-06,1125.38,1125.38,1113.21,1116.21,1283300000,1116.21 +2004-07-02,1128.94,1129.15,1123.26,1125.38,1085000000,1125.38 +2004-07-01,1140.84,1140.84,1123.06,1128.94,1495700000,1128.94 +2004-06-30,1136.20,1144.20,1133.62,1140.84,1473800000,1140.84 +2004-06-29,1133.35,1138.26,1131.81,1136.20,1375000000,1136.20 +2004-06-28,1134.43,1142.60,1131.72,1133.35,1354600000,1133.35 +2004-06-25,1140.65,1145.97,1134.24,1134.43,1812900000,1134.43 +2004-06-24,1144.06,1146.34,1139.94,1140.65,1394900000,1140.65 +2004-06-23,1134.41,1145.15,1131.73,1144.06,1444200000,1144.06 +2004-06-22,1130.30,1135.05,1124.37,1134.41,1382300000,1134.41 +2004-06-21,1135.02,1138.05,1129.64,1130.30,1123900000,1130.30 +2004-06-18,1132.05,1138.96,1129.83,1135.02,1500600000,1135.02 +2004-06-17,1133.56,1133.56,1126.89,1132.05,1296700000,1132.05 +2004-06-16,1132.01,1135.28,1130.55,1133.56,1168400000,1133.56 +2004-06-15,1125.29,1137.36,1125.29,1132.01,1345900000,1132.01 +2004-06-14,1136.47,1136.47,1122.16,1125.29,1179400000,1125.29 +2004-06-10,1131.33,1136.47,1131.33,1136.47,1160600000,1136.47 +2004-06-09,1142.18,1142.18,1131.17,1131.33,1276800000,1131.33 +2004-06-08,1140.42,1142.18,1135.45,1142.18,1190300000,1142.18 +2004-06-07,1122.50,1140.54,1122.50,1140.42,1211800000,1140.42 +2004-06-04,1116.64,1129.17,1116.64,1122.50,1115300000,1122.50 +2004-06-03,1124.99,1125.31,1116.57,1116.64,1232400000,1116.64 +2004-06-02,1121.20,1128.10,1118.64,1124.99,1251700000,1124.99 +2004-06-01,1120.68,1122.70,1113.32,1121.20,1238000000,1121.20 +2004-05-28,1121.28,1122.69,1118.10,1120.68,1172600000,1120.68 +2004-05-27,1114.94,1123.95,1114.86,1121.28,1447500000,1121.28 +2004-05-26,1113.05,1116.71,1109.91,1114.94,1369400000,1114.94 +2004-05-25,1095.41,1113.80,1090.74,1113.05,1545700000,1113.05 +2004-05-24,1093.56,1101.28,1091.77,1095.41,1227500000,1095.41 +2004-05-21,1089.19,1099.64,1089.19,1093.56,1258600000,1093.56 +2004-05-20,1088.68,1092.62,1085.43,1089.19,1211000000,1089.19 +2004-05-19,1091.49,1105.93,1088.49,1088.68,1548600000,1088.68 +2004-05-18,1084.10,1094.10,1084.10,1091.49,1353000000,1091.49 +2004-05-17,1095.70,1095.70,1079.36,1084.10,1430100000,1084.10 +2004-05-14,1096.44,1102.10,1088.24,1095.70,1335900000,1095.70 +2004-05-13,1097.28,1102.77,1091.76,1096.44,1411100000,1096.44 +2004-05-12,1095.45,1097.55,1076.32,1097.28,1697600000,1097.28 +2004-05-11,1087.12,1095.69,1087.12,1095.45,1533800000,1095.45 +2004-05-10,1098.70,1098.70,1079.63,1087.12,1918400000,1087.12 +2004-05-07,1113.99,1117.30,1098.63,1098.70,1653600000,1098.70 +2004-05-06,1121.53,1121.53,1106.30,1113.99,1509300000,1113.99 +2004-05-05,1119.55,1125.07,1117.90,1121.53,1469000000,1121.53 +2004-05-04,1117.49,1127.74,1112.89,1119.55,1662100000,1119.55 +2004-05-03,1107.30,1118.72,1107.30,1117.49,1571600000,1117.49 +2004-04-30,1113.89,1119.26,1107.23,1107.30,1634700000,1107.30 +2004-04-29,1122.41,1128.80,1108.04,1113.89,1859000000,1113.89 +2004-04-28,1138.11,1138.11,1121.70,1122.41,1855600000,1122.41 +2004-04-27,1135.53,1146.56,1135.53,1138.11,1518000000,1138.11 +2004-04-26,1140.60,1145.08,1132.91,1135.53,1290600000,1135.53 +2004-04-23,1139.93,1141.92,1134.81,1140.60,1396100000,1140.60 +2004-04-22,1124.09,1142.77,1121.95,1139.93,1826700000,1139.93 +2004-04-21,1118.15,1125.72,1116.03,1124.09,1738100000,1124.09 +2004-04-20,1135.82,1139.26,1118.09,1118.15,1508500000,1118.15 +2004-04-19,1134.56,1136.18,1129.84,1135.82,1194900000,1135.82 +2004-04-16,1128.84,1136.80,1126.90,1134.61,1487800000,1134.61 +2004-04-15,1128.17,1134.08,1120.75,1128.84,1568700000,1128.84 +2004-04-14,1129.44,1132.52,1122.15,1128.17,1547700000,1128.17 +2004-04-13,1145.20,1147.78,1127.70,1129.44,1423200000,1129.44 +2004-04-12,1139.32,1147.29,1139.32,1145.20,1102400000,1145.20 +2004-04-08,1140.53,1148.97,1134.52,1139.32,1199800000,1139.32 +2004-04-07,1148.16,1148.16,1138.41,1140.53,1458800000,1140.53 +2004-04-06,1150.57,1150.57,1143.30,1148.16,1397700000,1148.16 +2004-04-05,1141.81,1150.57,1141.64,1150.57,1413700000,1150.57 +2004-04-02,1132.17,1144.81,1132.17,1141.81,1629200000,1141.81 +2004-04-01,1126.21,1135.67,1126.20,1132.17,1560700000,1132.17 +2004-03-31,1127.00,1130.83,1121.46,1126.21,1560700000,1126.21 +2004-03-30,1122.47,1127.60,1119.66,1127.00,1332400000,1127.00 +2004-03-29,1108.06,1124.37,1108.06,1122.47,1405500000,1122.47 +2004-03-26,1109.19,1115.27,1106.13,1108.06,1319100000,1108.06 +2004-03-25,1091.33,1110.38,1091.33,1109.19,1471700000,1109.19 +2004-03-24,1093.95,1098.32,1087.16,1091.33,1527800000,1091.33 +2004-03-23,1095.40,1101.52,1091.57,1093.95,1458200000,1093.95 +2004-03-22,1109.78,1109.78,1089.54,1095.40,1452300000,1095.40 +2004-03-19,1122.32,1122.72,1109.69,1109.78,1457400000,1109.78 +2004-03-18,1123.75,1125.50,1113.25,1122.32,1369200000,1122.32 +2004-03-17,1110.70,1125.76,1110.70,1123.75,1490100000,1123.75 +2004-03-16,1104.49,1113.76,1102.61,1110.70,1500700000,1110.70 +2004-03-15,1120.57,1120.57,1103.36,1104.49,1600600000,1104.49 +2004-03-12,1106.78,1120.63,1106.78,1120.57,1388500000,1120.57 +2004-03-11,1123.89,1125.96,1105.87,1106.78,1889900000,1106.78 +2004-03-10,1140.58,1141.45,1122.53,1123.89,1648400000,1123.89 +2004-03-09,1147.20,1147.32,1136.84,1140.58,1499400000,1140.58 +2004-03-08,1156.86,1159.94,1146.97,1147.20,1254400000,1147.20 +2004-03-05,1154.87,1163.23,1148.77,1156.86,1398200000,1156.86 +2004-03-04,1151.03,1154.97,1149.81,1154.87,1265800000,1154.87 +2004-03-03,1149.10,1152.44,1143.78,1151.03,1334500000,1151.03 +2004-03-02,1155.97,1156.54,1147.31,1149.10,1476000000,1149.10 +2004-03-01,1144.94,1157.45,1144.94,1155.97,1497100000,1155.97 +2004-02-27,1145.80,1151.68,1141.80,1144.94,1540400000,1144.94 +2004-02-26,1143.67,1147.23,1138.62,1144.91,1383900000,1144.91 +2004-02-25,1139.09,1145.24,1138.96,1143.67,1360700000,1143.67 +2004-02-24,1140.99,1144.54,1134.43,1139.09,1543600000,1139.09 +2004-02-23,1144.11,1146.69,1136.98,1140.99,1380400000,1140.99 +2004-02-20,1147.06,1149.81,1139.00,1144.11,1479600000,1144.11 +2004-02-19,1151.82,1158.57,1146.85,1147.06,1562800000,1147.06 +2004-02-18,1156.99,1157.40,1149.54,1151.82,1382400000,1151.82 +2004-02-17,1145.81,1158.98,1145.81,1156.99,1396500000,1156.99 +2004-02-13,1152.11,1156.88,1143.24,1145.81,1329200000,1145.81 +2004-02-12,1157.76,1157.76,1151.44,1152.11,1464300000,1152.11 +2004-02-11,1145.54,1158.89,1142.33,1157.76,1699300000,1157.76 +2004-02-10,1139.81,1147.02,1138.70,1145.54,1403900000,1145.54 +2004-02-09,1142.76,1144.46,1139.21,1139.81,1303500000,1139.81 +2004-02-06,1128.59,1142.79,1128.39,1142.76,1477600000,1142.76 +2004-02-05,1126.52,1131.17,1124.44,1128.59,1566600000,1128.59 +2004-02-04,1136.03,1136.03,1124.74,1126.52,1634800000,1126.52 +2004-02-03,1135.26,1137.44,1131.33,1136.03,1476900000,1136.03 +2004-02-02,1131.13,1142.45,1127.87,1135.26,1599200000,1135.26 +2004-01-30,1134.11,1134.17,1127.73,1131.13,1635000000,1131.13 +2004-01-29,1128.48,1134.39,1122.38,1134.11,1921900000,1134.11 +2004-01-28,1144.05,1149.14,1126.50,1128.48,1842000000,1128.48 +2004-01-27,1155.37,1155.37,1144.05,1144.05,1673100000,1144.05 +2004-01-26,1141.55,1155.38,1141.00,1155.37,1480600000,1155.37 +2004-01-23,1143.94,1150.31,1136.85,1141.55,1561200000,1141.55 +2004-01-22,1147.62,1150.51,1143.01,1143.94,1693700000,1143.94 +2004-01-21,1138.77,1149.21,1134.62,1147.62,1757600000,1147.62 +2004-01-20,1139.83,1142.93,1135.40,1138.77,1698200000,1138.77 +2004-01-16,1132.05,1139.83,1132.05,1139.83,1721100000,1139.83 +2004-01-15,1130.52,1137.11,1124.54,1132.05,1695000000,1132.05 +2004-01-14,1121.22,1130.75,1121.22,1130.52,1514600000,1130.52 +2004-01-13,1127.23,1129.07,1115.19,1121.22,1595900000,1121.22 +2004-01-12,1121.86,1127.85,1120.90,1127.23,1510200000,1127.23 +2004-01-09,1131.92,1131.92,1120.90,1121.86,1720700000,1121.86 +2004-01-08,1126.33,1131.92,1124.91,1131.92,1868400000,1131.92 +2004-01-07,1123.67,1126.33,1116.45,1126.33,1704900000,1126.33 +2004-01-06,1122.22,1124.46,1118.44,1123.67,1494500000,1123.67 +2004-01-05,1108.48,1122.22,1108.48,1122.22,1578200000,1122.22 +2004-01-02,1111.92,1118.85,1105.08,1108.48,1153200000,1108.48 +2003-12-31,1109.64,1112.56,1106.21,1111.92,1027500000,1111.92 +2003-12-30,1109.48,1109.75,1106.41,1109.64,1012600000,1109.64 +2003-12-29,1095.89,1109.48,1095.89,1109.48,1058800000,1109.48 +2003-12-26,1094.04,1098.47,1094.04,1095.89,356070000,1095.89 +2003-12-24,1096.02,1096.40,1092.73,1094.04,518060000,1094.04 +2003-12-23,1092.94,1096.95,1091.73,1096.02,1145300000,1096.02 +2003-12-22,1088.66,1092.94,1086.14,1092.94,1251700000,1092.94 +2003-12-19,1089.18,1091.06,1084.19,1088.66,1657300000,1088.66 +2003-12-18,1076.48,1089.50,1076.48,1089.18,1579900000,1089.18 +2003-12-17,1075.13,1076.54,1071.14,1076.48,1441700000,1076.48 +2003-12-16,1068.04,1075.94,1068.04,1075.13,1547900000,1075.13 +2003-12-15,1074.14,1082.79,1068.00,1068.04,1520800000,1068.04 +2003-12-12,1071.21,1074.76,1067.64,1074.14,1223100000,1074.14 +2003-12-11,1059.05,1073.63,1059.05,1071.21,1441100000,1071.21 +2003-12-10,1060.18,1063.02,1053.41,1059.05,1444000000,1059.05 +2003-12-09,1069.30,1071.94,1059.16,1060.18,1465500000,1060.18 +2003-12-08,1061.50,1069.59,1060.93,1069.30,1218900000,1069.30 +2003-12-05,1069.72,1069.72,1060.09,1061.50,1265900000,1061.50 +2003-12-04,1064.73,1070.37,1063.15,1069.72,1463100000,1069.72 +2003-12-03,1066.62,1074.30,1064.63,1064.73,1441700000,1064.73 +2003-12-02,1070.12,1071.22,1065.22,1066.62,1383200000,1066.62 +2003-12-01,1058.20,1070.47,1058.20,1070.12,1375000000,1070.12 +2003-11-28,1058.45,1060.63,1056.77,1058.20,487220000,1058.20 +2003-11-26,1053.89,1058.45,1048.28,1058.45,1097700000,1058.45 +2003-11-25,1052.08,1058.05,1049.31,1053.89,1333700000,1053.89 +2003-11-24,1035.28,1052.08,1035.28,1052.08,1302800000,1052.08 +2003-11-21,1033.65,1037.57,1031.20,1035.28,1273800000,1035.28 +2003-11-20,1042.44,1046.48,1033.42,1033.65,1326700000,1033.65 +2003-11-19,1034.15,1043.95,1034.15,1042.44,1326200000,1042.44 +2003-11-18,1043.63,1048.77,1034.00,1034.15,1354300000,1034.15 +2003-11-17,1050.35,1050.35,1035.28,1043.63,1374300000,1043.63 +2003-11-14,1058.41,1063.65,1048.11,1050.35,1356100000,1050.35 +2003-11-13,1058.56,1059.62,1052.96,1058.41,1383000000,1058.41 +2003-11-12,1046.57,1059.10,1046.57,1058.53,1349300000,1058.53 +2003-11-11,1047.11,1048.23,1043.46,1046.57,1162500000,1046.57 +2003-11-10,1053.21,1053.65,1045.58,1047.11,1243600000,1047.11 +2003-11-07,1058.05,1062.39,1052.17,1053.21,1440500000,1053.21 +2003-11-06,1051.81,1058.94,1046.93,1058.05,1453900000,1058.05 +2003-11-05,1053.25,1054.54,1044.88,1051.81,1401800000,1051.81 +2003-11-04,1059.02,1059.02,1051.70,1053.25,1417600000,1053.25 +2003-11-03,1050.71,1061.44,1050.71,1059.02,1378200000,1059.02 +2003-10-31,1046.94,1053.09,1046.94,1050.71,1498900000,1050.71 +2003-10-30,1048.11,1052.81,1043.82,1046.94,1629700000,1046.94 +2003-10-29,1046.79,1049.83,1043.35,1048.11,1562600000,1048.11 +2003-10-28,1031.13,1046.79,1031.13,1046.79,1629200000,1046.79 +2003-10-27,1028.91,1037.75,1028.91,1031.13,1371800000,1031.13 +2003-10-24,1033.77,1033.77,1018.32,1028.91,1420300000,1028.91 +2003-10-23,1030.36,1035.44,1025.89,1033.77,1604300000,1033.77 +2003-10-22,1046.03,1046.03,1028.39,1030.36,1647200000,1030.36 +2003-10-21,1044.68,1048.57,1042.59,1046.03,1498000000,1046.03 +2003-10-20,1039.32,1044.69,1036.13,1044.68,1172600000,1044.68 +2003-10-17,1050.07,1051.89,1036.57,1039.32,1352000000,1039.32 +2003-10-16,1046.76,1052.94,1044.04,1050.07,1417700000,1050.07 +2003-10-15,1049.48,1053.79,1043.15,1046.76,1521100000,1046.76 +2003-10-14,1045.35,1049.49,1040.84,1049.48,1271900000,1049.48 +2003-10-13,1038.06,1048.90,1038.06,1045.35,1040500000,1045.35 +2003-10-10,1038.73,1040.84,1035.74,1038.06,1108100000,1038.06 +2003-10-09,1033.78,1048.28,1033.78,1038.73,1578700000,1038.73 +2003-10-08,1039.25,1040.06,1030.96,1033.78,1262500000,1033.78 +2003-10-07,1034.35,1039.25,1026.27,1039.25,1279500000,1039.25 +2003-10-06,1029.85,1036.48,1029.15,1034.35,1025800000,1034.35 +2003-10-03,1020.24,1039.31,1020.24,1029.85,1570500000,1029.85 +2003-10-02,1018.22,1021.87,1013.38,1020.24,1269300000,1020.24 +2003-10-01,995.97,1018.22,995.97,1018.22,1566300000,1018.22 +2003-09-30,1006.58,1006.58,990.36,995.97,1590500000,995.97 +2003-09-29,996.85,1006.89,995.31,1006.58,1366500000,1006.58 +2003-09-26,1003.27,1003.45,996.08,996.85,1472500000,996.85 +2003-09-25,1009.38,1015.97,1003.26,1003.27,1530000000,1003.27 +2003-09-24,1029.03,1029.83,1008.93,1009.38,1556000000,1009.38 +2003-09-23,1022.82,1030.12,1021.54,1029.03,1301700000,1029.03 +2003-09-22,1036.30,1036.30,1018.30,1022.82,1278800000,1022.82 +2003-09-19,1039.58,1040.29,1031.89,1036.30,1518600000,1036.30 +2003-09-18,1025.97,1040.16,1025.75,1039.58,1498800000,1039.58 +2003-09-17,1029.32,1031.34,1024.53,1025.97,1338210000,1025.97 +2003-09-16,1014.81,1029.66,1014.81,1029.32,1403200000,1029.32 +2003-09-15,1018.63,1019.79,1013.59,1014.81,1151300000,1014.81 +2003-09-12,1016.42,1019.65,1007.71,1018.63,1236700000,1018.63 +2003-09-11,1010.92,1020.88,1010.92,1016.42,1335900000,1016.42 +2003-09-10,1023.17,1023.17,1009.74,1010.92,1582100000,1010.92 +2003-09-09,1031.64,1031.64,1021.14,1023.17,1414800000,1023.17 +2003-09-08,1021.39,1032.41,1021.39,1031.64,1299300000,1031.64 +2003-09-05,1027.97,1029.21,1018.19,1021.39,1465200000,1021.39 +2003-09-04,1026.27,1029.17,1022.19,1027.97,1453900000,1027.97 +2003-09-03,1021.99,1029.34,1021.99,1026.27,1675600000,1026.27 +2003-09-02,1008.01,1022.59,1005.73,1021.99,1470500000,1021.99 +2003-08-29,1002.84,1008.85,999.52,1008.01,945100000,1008.01 +2003-08-28,996.79,1004.12,991.42,1002.84,1165200000,1002.84 +2003-08-27,996.73,998.05,993.33,996.79,1051400000,996.79 +2003-08-26,993.71,997.93,983.57,996.73,1178700000,996.73 +2003-08-25,993.06,993.71,987.91,993.71,971700000,993.71 +2003-08-22,1003.27,1011.01,992.62,993.06,1308900000,993.06 +2003-08-21,1000.30,1009.53,999.33,1003.27,1407100000,1003.27 +2003-08-20,1002.35,1003.54,996.62,1000.30,1210800000,1000.30 +2003-08-19,999.74,1003.30,995.30,1002.35,1300600000,1002.35 +2003-08-18,990.67,1000.35,990.67,999.74,1127600000,999.74 +2003-08-15,990.51,992.39,987.10,990.67,636370000,990.67 +2003-08-14,984.03,991.91,980.36,990.51,1186800000,990.51 +2003-08-13,990.35,992.50,980.85,984.03,1208800000,984.03 +2003-08-12,980.59,990.41,979.90,990.35,1132300000,990.35 +2003-08-11,977.59,985.46,974.21,980.59,1022200000,980.59 +2003-08-08,974.12,980.57,973.83,977.59,1086600000,977.59 +2003-08-07,967.08,974.89,963.82,974.12,1389300000,974.12 +2003-08-06,965.46,975.74,960.84,967.08,1491000000,967.08 +2003-08-05,982.82,982.82,964.97,965.46,1351700000,965.46 +2003-08-04,980.15,985.75,966.79,982.82,1318700000,982.82 +2003-08-01,990.31,990.31,978.86,980.15,1390600000,980.15 +2003-07-31,987.49,1004.59,987.49,990.31,1608000000,990.31 +2003-07-30,989.28,992.62,985.96,987.49,1391900000,987.49 +2003-07-29,996.52,998.64,984.15,989.28,1508900000,989.28 +2003-07-28,998.68,1000.68,993.59,996.52,1328600000,996.52 +2003-07-25,981.60,998.71,977.49,998.68,1397500000,998.68 +2003-07-24,988.61,998.89,981.07,981.60,1559000000,981.60 +2003-07-23,988.11,989.86,979.79,988.61,1362700000,988.61 +2003-07-22,978.80,990.29,976.08,988.11,1439700000,988.11 +2003-07-21,993.32,993.32,975.63,978.80,1254200000,978.80 +2003-07-18,981.73,994.25,981.71,993.32,1365200000,993.32 +2003-07-17,994.00,994.00,978.60,981.73,1661400000,981.73 +2003-07-16,1000.42,1003.47,989.30,994.09,1662000000,994.09 +2003-07-15,1003.86,1009.61,996.67,1000.42,1518600000,1000.42 +2003-07-14,998.14,1015.41,998.14,1003.86,1448900000,1003.86 +2003-07-11,988.70,1000.86,988.70,998.14,1212700000,998.14 +2003-07-10,1002.21,1002.21,983.63,988.70,1465700000,988.70 +2003-07-09,1007.84,1010.43,998.17,1002.21,1618000000,1002.21 +2003-07-08,1004.42,1008.92,998.73,1007.84,1565700000,1007.84 +2003-07-07,985.70,1005.56,985.70,1004.42,1429100000,1004.42 +2003-07-03,993.75,995.00,983.34,985.70,775900000,985.70 +2003-07-02,982.32,993.78,982.32,993.75,1519300000,993.75 +2003-07-01,974.50,983.26,962.10,982.32,1460200000,982.32 +2003-06-30,976.22,983.61,973.60,974.50,1587200000,974.50 +2003-06-27,985.82,988.88,974.29,976.22,1267800000,976.22 +2003-06-26,975.32,986.53,973.80,985.82,1387400000,985.82 +2003-06-25,983.45,991.64,974.86,975.32,1459200000,975.32 +2003-06-24,981.64,987.84,979.08,983.45,1388300000,983.45 +2003-06-23,995.69,995.69,977.40,981.64,1398100000,981.64 +2003-06-20,994.70,1002.09,993.36,995.69,1698000000,995.69 +2003-06-19,1010.09,1011.22,993.08,994.70,1530100000,994.70 +2003-06-18,1011.66,1015.12,1004.61,1010.09,1488900000,1010.09 +2003-06-17,1010.74,1015.33,1007.04,1011.66,1479700000,1011.66 +2003-06-16,988.61,1010.86,988.61,1010.74,1345900000,1010.74 +2003-06-13,998.51,1000.92,984.27,988.61,1271600000,988.61 +2003-06-12,997.48,1002.74,991.27,998.51,1553100000,998.51 +2003-06-11,984.84,997.48,981.61,997.48,1520000000,997.48 +2003-06-10,975.93,984.84,975.93,984.84,1275400000,984.84 +2003-06-09,987.76,987.76,972.59,975.93,1307000000,975.93 +2003-06-06,990.14,1007.69,986.01,987.76,1837200000,987.76 +2003-06-05,986.24,990.14,978.13,990.14,1693100000,990.14 +2003-06-04,971.56,987.85,970.72,986.24,1618700000,986.24 +2003-06-03,967.00,973.02,964.47,971.56,1450200000,971.56 +2003-06-02,963.59,979.11,963.59,967.00,1662500000,967.00 +2003-05-30,949.64,965.38,949.64,963.59,1688800000,963.59 +2003-05-29,953.22,962.08,946.23,949.64,1685800000,949.64 +2003-05-28,951.48,959.39,950.12,953.22,1559000000,953.22 +2003-05-27,933.22,952.76,927.33,951.48,1532000000,951.48 +2003-05-23,931.87,935.20,927.42,933.22,1201000000,933.22 +2003-05-22,923.42,935.30,922.54,931.87,1448500000,931.87 +2003-05-21,919.73,923.85,914.91,923.42,1457800000,923.42 +2003-05-20,920.77,925.34,912.05,919.73,1505300000,919.73 +2003-05-19,944.30,944.30,920.23,920.77,1375700000,920.77 +2003-05-16,946.67,948.65,938.60,944.30,1505500000,944.30 +2003-05-15,939.28,948.23,938.79,946.67,1508700000,946.67 +2003-05-14,942.30,947.29,935.24,939.28,1401800000,939.28 +2003-05-13,945.11,947.51,938.91,942.30,1418100000,942.30 +2003-05-12,933.41,946.84,929.30,945.11,1378800000,945.11 +2003-05-09,920.27,933.77,920.27,933.41,1326100000,933.41 +2003-05-08,929.62,929.62,919.72,920.27,1379600000,920.27 +2003-05-07,934.39,937.22,926.41,929.62,1531900000,929.62 +2003-05-06,926.55,939.61,926.38,934.39,1649600000,934.39 +2003-05-05,930.08,933.88,924.55,926.55,1446300000,926.55 +2003-05-02,916.30,930.56,912.35,930.08,1554300000,930.08 +2003-05-01,916.92,919.68,902.83,916.30,1397500000,916.30 +2003-04-30,917.84,922.01,911.70,916.92,1788510000,916.92 +2003-04-29,914.84,924.24,911.10,917.84,1525600000,917.84 +2003-04-28,898.81,918.15,898.81,914.84,1273000000,914.84 +2003-04-25,911.43,911.43,897.52,898.81,1335800000,898.81 +2003-04-24,919.02,919.02,906.69,911.43,1648100000,911.43 +2003-04-23,911.37,919.74,909.89,919.02,1667200000,919.02 +2003-04-22,892.01,911.74,886.70,911.37,1631200000,911.37 +2003-04-21,893.58,898.01,888.17,892.01,1118700000,892.01 +2003-04-17,879.91,893.83,879.20,893.58,1430600000,893.58 +2003-04-16,890.81,896.77,877.93,879.91,1587600000,879.91 +2003-04-15,885.23,891.27,881.85,890.81,1460200000,890.81 +2003-04-14,868.30,885.26,868.30,885.23,1131000000,885.23 +2003-04-11,871.58,883.34,865.92,868.30,1141600000,868.30 +2003-04-10,865.99,871.78,862.76,871.58,1275300000,871.58 +2003-04-09,878.29,887.35,865.72,865.99,1293700000,865.99 +2003-04-08,879.93,883.11,874.68,878.29,1235400000,878.29 +2003-04-07,878.85,904.89,878.85,879.93,1494000000,879.93 +2003-04-04,876.45,882.73,874.23,878.85,1241200000,878.85 +2003-04-03,880.90,885.89,876.12,876.45,1339500000,876.45 +2003-04-02,858.48,884.57,858.48,880.90,1589800000,880.90 +2003-04-01,848.18,861.28,847.85,858.48,1461600000,858.48 +2003-03-31,863.50,863.50,843.68,848.18,1495500000,848.18 +2003-03-28,868.52,869.88,860.83,863.50,1227000000,863.50 +2003-03-27,869.95,874.15,858.09,868.52,1232900000,868.52 +2003-03-26,874.74,875.80,866.47,869.95,1319700000,869.95 +2003-03-25,864.23,879.87,862.59,874.74,1333400000,874.74 +2003-03-24,895.79,895.79,862.02,864.23,1293000000,864.23 +2003-03-21,875.84,895.90,875.84,895.79,1883710000,895.79 +2003-03-20,874.02,879.60,859.01,875.67,1439100000,875.67 +2003-03-19,866.45,874.99,861.21,874.02,1473400000,874.02 +2003-03-18,862.79,866.94,857.36,866.45,1555100000,866.45 +2003-03-17,833.27,862.79,827.17,862.79,1700420000,862.79 +2003-03-14,831.89,841.39,828.26,833.27,1541900000,833.27 +2003-03-13,804.19,832.02,804.19,831.90,1816300000,831.90 +2003-03-12,800.73,804.19,788.90,804.19,1620000000,804.19 +2003-03-11,807.48,814.25,800.30,800.73,1427700000,800.73 +2003-03-10,828.89,828.89,806.57,807.48,1255000000,807.48 +2003-03-07,822.10,829.55,811.23,828.89,1368500000,828.89 +2003-03-06,829.85,829.85,819.85,822.10,1299200000,822.10 +2003-03-05,821.99,829.87,819.00,829.85,1332700000,829.85 +2003-03-04,834.81,835.43,821.96,821.99,1256600000,821.99 +2003-03-03,841.15,852.34,832.74,834.81,1208900000,834.81 +2003-02-28,837.28,847.00,837.28,841.15,1373300000,841.15 +2003-02-27,827.55,842.19,827.55,837.28,1287800000,837.28 +2003-02-26,838.57,840.10,826.68,827.55,1374400000,827.55 +2003-02-25,832.58,839.55,818.54,838.57,1483700000,838.57 +2003-02-24,848.17,848.17,832.16,832.58,1229200000,832.58 +2003-02-21,837.10,852.28,831.48,848.17,1398200000,848.17 +2003-02-20,845.13,849.37,836.56,837.10,1194100000,837.10 +2003-02-19,851.17,851.17,838.79,845.13,1075600000,845.13 +2003-02-18,834.89,852.87,834.89,851.17,1250800000,851.17 +2003-02-14,817.37,834.89,815.03,834.89,1404600000,834.89 +2003-02-13,818.68,821.25,806.29,817.37,1489300000,817.37 +2003-02-12,829.20,832.12,818.49,818.68,1260500000,818.68 +2003-02-11,835.97,843.02,825.09,829.20,1307000000,829.20 +2003-02-10,829.69,837.16,823.53,835.97,1238200000,835.97 +2003-02-07,838.15,845.73,826.70,829.69,1276800000,829.69 +2003-02-06,843.59,844.23,833.25,838.15,1430900000,838.15 +2003-02-05,848.20,861.63,842.11,843.59,1450800000,843.59 +2003-02-04,860.32,860.32,840.19,848.20,1451600000,848.20 +2003-02-03,855.70,864.64,855.70,860.32,1258500000,860.32 +2003-01-31,844.61,858.33,840.34,855.70,1578530000,855.70 +2003-01-30,864.36,865.48,843.74,844.61,1510300000,844.61 +2003-01-29,858.54,868.72,845.86,864.36,1595400000,864.36 +2003-01-28,847.48,860.76,847.48,858.54,1459100000,858.54 +2003-01-27,861.40,863.95,844.25,847.48,1435900000,847.48 +2003-01-24,887.34,887.34,859.71,861.40,1574800000,861.40 +2003-01-23,878.36,890.25,876.89,887.34,1744550000,887.34 +2003-01-22,887.62,889.74,877.64,878.36,1560800000,878.36 +2003-01-21,901.78,906.00,887.62,887.62,1335200000,887.62 +2003-01-17,914.60,914.60,899.02,901.78,1358200000,901.78 +2003-01-16,918.22,926.03,911.98,914.60,1534600000,914.60 +2003-01-15,931.66,932.59,916.70,918.22,1432100000,918.22 +2003-01-14,926.26,931.66,921.72,931.66,1379400000,931.66 +2003-01-13,927.57,935.05,922.05,926.26,1396300000,926.26 +2003-01-10,927.58,932.89,917.66,927.57,1485400000,927.57 +2003-01-09,909.93,928.31,909.93,927.57,1560300000,927.57 +2003-01-08,922.93,922.93,908.32,909.93,1467600000,909.93 +2003-01-07,929.01,930.81,919.93,922.93,1545200000,922.93 +2003-01-06,908.59,931.77,908.59,929.01,1435900000,929.01 +2003-01-03,909.03,911.25,903.07,908.59,1130800000,908.59 +2003-01-02,879.82,909.03,879.82,909.03,1229200000,909.03 +2002-12-31,879.39,881.93,869.45,879.82,1088500000,879.82 +2002-12-30,875.40,882.10,870.23,879.39,1057800000,879.39 +2002-12-27,889.66,890.46,873.62,875.40,758400000,875.40 +2002-12-26,892.47,903.89,887.48,889.66,721100000,889.66 +2002-12-24,897.38,897.38,892.29,892.47,458310000,892.47 +2002-12-23,895.74,902.43,892.26,897.38,1112100000,897.38 +2002-12-20,884.25,897.79,884.25,895.76,1782730000,895.76 +2002-12-19,890.02,899.19,880.32,884.25,1385900000,884.25 +2002-12-18,902.99,902.99,887.82,891.12,1446200000,891.12 +2002-12-17,910.40,911.22,901.74,902.99,1251800000,902.99 +2002-12-16,889.48,910.42,889.48,910.40,1271600000,910.40 +2002-12-13,901.58,901.58,888.48,889.48,1330800000,889.48 +2002-12-12,904.96,908.37,897.00,901.58,1255300000,901.58 +2002-12-11,904.45,909.94,896.48,904.96,1285100000,904.96 +2002-12-10,892.00,904.95,892.00,904.45,1286600000,904.45 +2002-12-09,912.23,912.23,891.97,892.00,1320800000,892.00 +2002-12-06,906.55,915.48,895.96,912.23,1241100000,912.23 +2002-12-05,917.58,921.49,905.90,906.55,1250200000,906.55 +2002-12-04,920.75,925.25,909.51,917.58,1588900000,917.58 +2002-12-03,934.53,934.53,918.73,920.75,1488400000,920.75 +2002-12-02,936.31,954.28,927.72,934.53,1612000000,934.53 +2002-11-29,938.87,941.82,935.58,936.31,643460000,936.31 +2002-11-27,913.31,940.41,913.31,938.87,1350300000,938.87 +2002-11-26,932.87,932.87,912.10,913.31,1543600000,913.31 +2002-11-25,930.55,937.15,923.31,932.87,1574000000,932.87 +2002-11-22,933.76,937.28,928.41,930.55,1626800000,930.55 +2002-11-21,914.15,935.13,914.15,933.76,2415100000,933.76 +2002-11-20,896.74,915.01,894.93,914.15,1517300000,914.15 +2002-11-19,900.36,905.45,893.09,896.74,1337400000,896.74 +2002-11-18,909.83,915.91,899.48,900.36,1282600000,900.36 +2002-11-15,904.27,910.21,895.35,909.83,1400100000,909.83 +2002-11-14,882.53,904.27,882.53,904.27,1519000000,904.27 +2002-11-13,882.95,892.51,872.05,882.53,1463400000,882.53 +2002-11-12,876.19,894.30,876.19,882.95,1377100000,882.95 +2002-11-11,894.74,894.74,874.63,876.19,1113000000,876.19 +2002-11-08,902.65,910.11,891.62,894.74,1446500000,894.74 +2002-11-07,923.76,923.76,898.68,902.65,1466900000,902.65 +2002-11-06,915.39,925.66,905.00,923.76,1674000000,923.76 +2002-11-05,908.35,915.83,904.91,915.39,1354100000,915.39 +2002-11-04,900.96,924.58,900.96,908.35,1645900000,908.35 +2002-11-01,885.76,903.42,877.71,900.96,1450400000,900.96 +2002-10-31,890.71,898.83,879.75,885.76,1641300000,885.76 +2002-10-30,882.15,895.28,879.19,890.71,1422300000,890.71 +2002-10-29,890.23,890.64,867.91,882.15,1529700000,882.15 +2002-10-28,897.65,907.44,886.15,890.23,1382600000,890.23 +2002-10-25,882.50,897.71,877.03,897.65,1340400000,897.65 +2002-10-24,896.14,902.94,879.00,882.50,1700570000,882.50 +2002-10-23,890.16,896.14,873.82,896.14,1593900000,896.14 +2002-10-22,899.72,899.72,882.40,890.16,1549200000,890.16 +2002-10-21,884.39,900.69,873.06,899.72,1447000000,899.72 +2002-10-18,879.20,886.68,866.58,884.39,1423100000,884.39 +2002-10-17,860.02,885.35,860.02,879.20,1780390000,879.20 +2002-10-16,881.27,881.27,856.28,860.02,1585000000,860.02 +2002-10-15,841.44,881.27,841.44,881.27,1956000000,881.27 +2002-10-14,835.32,844.39,828.37,841.44,1200300000,841.44 +2002-10-11,803.92,843.27,803.92,835.32,1854130000,835.32 +2002-10-10,776.76,806.51,768.63,803.92,2090230000,803.92 +2002-10-09,798.55,798.55,775.80,776.76,1885030000,776.76 +2002-10-08,785.28,808.86,779.50,798.55,1938430000,798.55 +2002-10-07,800.58,808.21,782.96,785.28,1576500000,785.28 +2002-10-04,818.95,825.90,794.10,800.58,1835930000,800.58 +2002-10-03,827.91,840.02,817.25,818.95,1674500000,818.95 +2002-10-02,843.77,851.93,826.50,827.91,1668900000,827.91 +2002-10-01,815.28,847.93,812.82,847.91,1780900000,847.91 +2002-09-30,827.37,827.37,800.20,815.28,1721870000,815.28 +2002-09-27,854.95,854.95,826.84,827.37,1507300000,827.37 +2002-09-26,839.66,856.60,839.66,854.95,1650000000,854.95 +2002-09-25,819.27,844.22,818.46,839.66,1651500000,839.66 +2002-09-24,833.70,833.70,817.38,819.29,1670240000,819.29 +2002-09-23,845.39,845.39,825.76,833.70,1381100000,833.70 +2002-09-20,843.32,849.32,839.09,845.39,1792800000,845.39 +2002-09-19,869.46,869.46,843.09,843.32,1524000000,843.32 +2002-09-18,873.52,878.45,857.39,869.46,1501000000,869.46 +2002-09-17,891.10,902.68,872.38,873.52,1448600000,873.52 +2002-09-16,889.81,891.84,878.91,891.10,1001400000,891.10 +2002-09-13,886.91,892.75,877.05,889.81,1271000000,889.81 +2002-09-12,909.45,909.45,884.84,886.91,1191600000,886.91 +2002-09-11,910.63,924.02,908.47,909.45,846600000,909.45 +2002-09-10,902.96,909.89,900.50,909.58,1186400000,909.58 +2002-09-09,893.92,907.34,882.92,902.96,1130600000,902.96 +2002-09-06,879.15,899.07,879.15,893.92,1184500000,893.92 +2002-09-05,893.40,893.40,870.50,879.15,1401300000,879.15 +2002-09-04,878.02,896.10,875.73,893.40,1372100000,893.40 +2002-09-03,916.07,916.07,877.51,878.02,1289800000,878.02 +2002-08-30,917.80,928.15,910.17,916.07,929900000,916.07 +2002-08-29,917.87,924.59,903.33,917.80,1271100000,917.80 +2002-08-28,934.82,934.82,913.21,917.87,1146600000,917.87 +2002-08-27,947.95,955.82,930.36,934.82,1307700000,934.82 +2002-08-26,940.86,950.80,930.42,947.95,1016900000,947.95 +2002-08-23,962.70,962.70,937.17,940.86,1071500000,940.86 +2002-08-22,949.36,965.00,946.43,962.70,1373000000,962.70 +2002-08-21,937.43,951.59,931.32,949.36,1353100000,949.36 +2002-08-20,950.70,950.70,931.86,937.43,1308500000,937.43 +2002-08-19,928.77,951.17,927.21,950.70,1299800000,950.70 +2002-08-16,930.25,935.38,916.21,928.77,1265300000,928.77 +2002-08-15,919.62,933.29,918.17,930.25,1505100000,930.25 +2002-08-14,884.21,920.21,876.20,919.62,1533800000,919.62 +2002-08-13,903.80,911.71,883.62,884.21,1297700000,884.21 +2002-08-12,908.64,908.64,892.38,903.80,1036500000,903.80 +2002-08-09,898.73,913.95,890.77,908.64,1294900000,908.64 +2002-08-08,876.77,905.84,875.17,905.46,1646700000,905.46 +2002-08-07,859.57,878.74,854.15,876.77,1490400000,876.77 +2002-08-06,834.60,874.44,834.60,859.57,1514100000,859.57 +2002-08-05,864.24,864.24,833.44,834.60,1425500000,834.60 +2002-08-02,884.40,884.72,853.95,864.24,1538100000,864.24 +2002-08-01,911.62,911.62,882.48,884.66,1672200000,884.66 +2002-07-31,902.78,911.64,889.88,911.62,2049360000,911.62 +2002-07-30,898.96,909.81,884.70,902.78,1826090000,902.78 +2002-07-29,852.84,898.96,852.84,898.96,1778650000,898.96 +2002-07-26,838.68,852.85,835.92,852.84,1796100000,852.84 +2002-07-25,843.42,853.83,816.11,838.68,2424700000,838.68 +2002-07-24,797.71,844.32,775.68,843.43,2775560000,843.43 +2002-07-23,819.85,827.69,796.13,797.70,2441020000,797.70 +2002-07-22,847.76,854.13,813.26,819.85,2248060000,819.85 +2002-07-19,881.56,881.56,842.07,847.75,2654100000,847.75 +2002-07-18,905.45,907.80,880.60,881.56,1736300000,881.56 +2002-07-17,901.05,926.52,895.03,906.04,2566500000,906.04 +2002-07-16,917.93,918.65,897.13,900.94,1843700000,900.94 +2002-07-15,921.39,921.39,876.46,917.93,2574800000,917.93 +2002-07-12,927.37,934.31,913.71,921.39,1607400000,921.39 +2002-07-11,920.47,929.16,900.94,927.37,2080480000,927.37 +2002-07-10,952.83,956.34,920.29,920.47,1816900000,920.47 +2002-07-09,976.98,979.63,951.71,952.83,1348900000,952.83 +2002-07-08,989.03,993.56,972.91,976.98,1184400000,976.98 +2002-07-05,953.99,989.07,953.99,989.03,699400000,989.03 +2002-07-03,948.09,954.30,934.87,953.99,1527800000,953.99 +2002-07-02,968.65,968.65,945.54,948.09,1823000000,948.09 +2002-07-01,989.82,994.46,967.43,968.65,1425500000,968.65 +2002-06-28,990.64,1001.79,988.31,989.82,2117000000,989.82 +2002-06-27,973.53,990.67,963.74,990.64,1908600000,990.64 +2002-06-26,976.14,977.43,952.92,973.53,2014290000,973.53 +2002-06-25,992.72,1005.88,974.21,976.14,1513700000,976.14 +2002-06-24,989.14,1002.11,970.85,992.72,1552600000,992.72 +2002-06-21,1006.29,1006.29,985.65,989.14,1497200000,989.14 +2002-06-20,1019.99,1023.33,1004.59,1006.29,1389700000,1006.29 +2002-06-19,1037.14,1037.61,1017.88,1019.99,1336100000,1019.99 +2002-06-18,1036.17,1040.83,1030.92,1037.14,1193100000,1037.14 +2002-06-17,1007.27,1036.17,1007.27,1036.17,1236600000,1036.17 +2002-06-14,1009.56,1009.56,981.63,1007.27,1549000000,1007.27 +2002-06-13,1020.26,1023.47,1008.12,1009.56,1405500000,1009.56 +2002-06-12,1013.26,1021.85,1002.58,1020.26,1795720000,1020.26 +2002-06-11,1030.74,1039.04,1012.94,1013.60,1212400000,1013.60 +2002-06-10,1027.53,1038.18,1025.45,1030.74,1226200000,1030.74 +2002-06-07,1029.15,1033.02,1012.49,1027.53,1341300000,1027.53 +2002-06-06,1049.90,1049.90,1026.91,1029.15,1601500000,1029.15 +2002-06-05,1040.69,1050.11,1038.84,1049.90,1300100000,1049.90 +2002-06-04,1040.68,1046.06,1030.52,1040.69,1466600000,1040.69 +2002-06-03,1067.14,1070.74,1039.90,1040.68,1324300000,1040.68 +2002-05-31,1064.66,1079.93,1064.66,1067.14,1277300000,1067.14 +2002-05-30,1067.66,1069.50,1054.26,1064.66,1286600000,1064.66 +2002-05-29,1074.55,1074.83,1067.66,1067.66,1081800000,1067.66 +2002-05-28,1083.82,1085.98,1070.31,1074.55,996500000,1074.55 +2002-05-24,1097.08,1097.08,1082.19,1083.82,885400000,1083.82 +2002-05-23,1086.02,1097.10,1080.55,1097.08,1192900000,1097.08 +2002-05-22,1079.88,1086.02,1075.64,1086.02,1136300000,1086.02 +2002-05-21,1091.88,1099.55,1079.08,1079.88,1200500000,1079.88 +2002-05-20,1106.59,1106.59,1090.61,1091.88,989800000,1091.88 +2002-05-17,1098.23,1106.59,1096.77,1106.59,1274400000,1106.59 +2002-05-16,1091.07,1099.29,1089.17,1098.23,1256600000,1098.23 +2002-05-15,1097.28,1104.23,1088.94,1091.07,1420200000,1091.07 +2002-05-14,1074.56,1097.71,1074.56,1097.28,1414500000,1097.28 +2002-05-13,1054.99,1074.84,1053.90,1074.56,1088600000,1074.56 +2002-05-10,1073.01,1075.43,1053.93,1054.99,1171900000,1054.99 +2002-05-09,1088.85,1088.85,1072.23,1073.01,1153000000,1073.01 +2002-05-08,1049.49,1088.92,1049.49,1088.85,1502000000,1088.85 +2002-05-07,1052.67,1058.67,1048.96,1049.49,1354700000,1049.49 +2002-05-06,1073.43,1075.96,1052.65,1052.67,1122600000,1052.67 +2002-05-03,1084.56,1084.56,1068.89,1073.43,1284500000,1073.43 +2002-05-02,1086.46,1091.42,1079.46,1084.56,1364000000,1084.56 +2002-05-01,1076.92,1088.32,1065.29,1086.46,1451400000,1086.46 +2002-04-30,1065.45,1082.62,1063.46,1076.92,1628600000,1076.92 +2002-04-29,1076.32,1078.95,1063.62,1065.45,1314700000,1065.45 +2002-04-26,1091.48,1096.77,1076.31,1076.32,1374200000,1076.32 +2002-04-25,1093.14,1094.36,1084.81,1091.48,1517400000,1091.48 +2002-04-24,1100.96,1108.46,1092.51,1093.14,1373200000,1093.14 +2002-04-23,1107.83,1111.17,1098.94,1100.96,1388500000,1100.96 +2002-04-22,1125.17,1125.17,1105.62,1107.83,1181800000,1107.83 +2002-04-19,1124.47,1128.82,1122.59,1125.17,1185000000,1125.17 +2002-04-18,1126.07,1130.49,1109.29,1124.47,1359300000,1124.47 +2002-04-17,1128.37,1133.00,1123.37,1126.07,1376900000,1126.07 +2002-04-16,1102.55,1129.40,1102.55,1128.37,1341300000,1128.37 +2002-04-15,1111.01,1114.86,1099.41,1102.55,1120400000,1102.55 +2002-04-12,1103.69,1112.77,1102.74,1111.01,1282100000,1111.01 +2002-04-11,1130.47,1130.47,1102.42,1103.69,1505600000,1103.69 +2002-04-10,1117.80,1131.76,1117.80,1130.47,1447900000,1130.47 +2002-04-09,1125.29,1128.29,1116.73,1117.80,1235400000,1117.80 +2002-04-08,1122.73,1125.41,1111.79,1125.29,1095300000,1125.29 +2002-04-05,1126.34,1133.31,1119.49,1122.73,1110200000,1122.73 +2002-04-04,1125.40,1130.45,1120.06,1126.34,1283800000,1126.34 +2002-04-03,1136.76,1138.85,1119.68,1125.40,1219700000,1125.40 +2002-04-02,1146.54,1146.54,1135.71,1136.76,1176700000,1136.76 +2002-04-01,1147.39,1147.84,1132.87,1146.54,1050900000,1146.54 +2002-03-28,1144.58,1154.45,1144.58,1147.39,1147600000,1147.39 +2002-03-27,1138.49,1146.95,1135.33,1144.58,1180100000,1144.58 +2002-03-26,1131.87,1147.00,1131.61,1138.49,1223600000,1138.49 +2002-03-25,1148.70,1151.04,1131.87,1131.87,1057900000,1131.87 +2002-03-22,1153.59,1156.49,1144.60,1148.70,1243300000,1148.70 +2002-03-21,1151.85,1155.10,1139.48,1153.59,1339200000,1153.59 +2002-03-20,1170.29,1170.29,1151.61,1151.85,1304900000,1151.85 +2002-03-19,1165.55,1173.94,1165.55,1170.29,1255000000,1170.29 +2002-03-18,1166.16,1172.73,1159.14,1165.55,1169500000,1165.55 +2002-03-15,1153.04,1166.48,1153.04,1166.16,1493900000,1166.16 +2002-03-14,1154.09,1157.83,1151.08,1153.04,1208800000,1153.04 +2002-03-13,1165.58,1165.58,1151.01,1154.09,1354000000,1154.09 +2002-03-12,1168.26,1168.26,1154.34,1165.58,1304400000,1165.58 +2002-03-11,1164.31,1173.03,1159.58,1168.26,1210200000,1168.26 +2002-03-08,1157.54,1172.76,1157.54,1164.31,1412000000,1164.31 +2002-03-07,1162.77,1167.94,1150.69,1157.54,1517400000,1157.54 +2002-03-06,1146.14,1165.29,1145.11,1162.77,1541300000,1162.77 +2002-03-05,1153.84,1157.74,1144.78,1146.14,1549300000,1146.14 +2002-03-04,1131.78,1153.84,1130.93,1153.84,1594300000,1153.84 +2002-03-01,1106.73,1131.79,1106.73,1131.78,1456500000,1131.78 +2002-02-28,1109.89,1121.57,1106.73,1106.73,1392200000,1106.73 +2002-02-27,1109.38,1123.06,1102.26,1109.89,1393800000,1109.89 +2002-02-26,1109.43,1115.05,1101.72,1109.38,1309200000,1109.38 +2002-02-25,1089.84,1112.71,1089.84,1109.43,1367400000,1109.43 +2002-02-22,1080.95,1093.93,1074.39,1089.84,1411000000,1089.84 +2002-02-21,1097.98,1101.50,1080.24,1080.95,1381600000,1080.95 +2002-02-20,1083.34,1098.32,1074.36,1097.98,1438900000,1097.98 +2002-02-19,1104.18,1104.18,1082.24,1083.34,1189900000,1083.34 +2002-02-15,1116.48,1117.09,1103.23,1104.18,1359200000,1104.18 +2002-02-14,1118.51,1124.72,1112.30,1116.48,1272500000,1116.48 +2002-02-13,1107.50,1120.56,1107.50,1118.51,1215900000,1118.51 +2002-02-12,1111.94,1112.68,1102.98,1107.50,1094200000,1107.50 +2002-02-11,1096.22,1112.01,1094.68,1111.94,1159400000,1111.94 +2002-02-08,1080.17,1096.30,1079.91,1096.22,1371900000,1096.22 +2002-02-07,1083.51,1094.03,1078.44,1080.17,1441600000,1080.17 +2002-02-06,1090.02,1093.58,1077.78,1083.51,1665800000,1083.51 +2002-02-05,1094.44,1100.96,1082.58,1090.02,1778300000,1090.02 +2002-02-04,1122.20,1122.20,1092.25,1094.44,1437600000,1094.44 +2002-02-01,1130.20,1130.20,1118.51,1122.20,1367200000,1122.20 +2002-01-31,1113.57,1130.21,1113.30,1130.20,1557000000,1130.20 +2002-01-30,1100.64,1113.79,1081.66,1113.57,2019600000,1113.57 +2002-01-29,1133.06,1137.47,1098.74,1100.64,1812000000,1100.64 +2002-01-28,1133.28,1138.63,1126.66,1133.06,1186800000,1133.06 +2002-01-25,1132.15,1138.31,1127.82,1133.28,1345100000,1133.28 +2002-01-24,1128.18,1139.50,1128.18,1132.15,1552800000,1132.15 +2002-01-23,1119.31,1131.94,1117.43,1128.18,1479200000,1128.18 +2002-01-22,1127.58,1135.26,1117.91,1119.31,1311600000,1119.31 +2002-01-18,1138.88,1138.88,1124.45,1127.58,1333300000,1127.58 +2002-01-17,1127.57,1139.27,1127.57,1138.88,1380100000,1138.88 +2002-01-16,1146.19,1146.19,1127.49,1127.57,1482500000,1127.57 +2002-01-15,1138.41,1148.81,1136.88,1146.19,1386900000,1146.19 +2002-01-14,1145.60,1145.60,1138.15,1138.41,1286400000,1138.41 +2002-01-11,1156.55,1159.41,1145.45,1145.60,1211900000,1145.60 +2002-01-10,1155.14,1159.93,1150.85,1156.55,1299000000,1156.55 +2002-01-09,1160.71,1174.26,1151.89,1155.14,1452000000,1155.14 +2002-01-08,1164.89,1167.60,1157.46,1160.71,1258800000,1160.71 +2002-01-07,1172.51,1176.97,1163.55,1164.89,1308300000,1164.89 +2002-01-04,1165.27,1176.55,1163.42,1172.51,1513000000,1172.51 +2002-01-03,1154.67,1165.27,1154.01,1165.27,1398900000,1165.27 +2002-01-02,1148.08,1154.67,1136.23,1154.67,1171000000,1154.67 +2001-12-31,1161.02,1161.16,1148.04,1148.08,943600000,1148.08 +2001-12-28,1157.13,1164.64,1157.13,1161.02,917400000,1161.02 +2001-12-27,1149.37,1157.13,1149.37,1157.13,876300000,1157.13 +2001-12-26,1144.65,1159.18,1144.65,1149.37,791100000,1149.37 +2001-12-24,1144.89,1147.83,1144.62,1144.65,439670000,1144.65 +2001-12-21,1139.93,1147.46,1139.93,1144.89,1694000000,1144.89 +2001-12-20,1149.56,1151.42,1139.93,1139.93,1490500000,1139.93 +2001-12-19,1142.92,1152.44,1134.75,1149.56,1484900000,1149.56 +2001-12-18,1134.36,1145.10,1134.36,1142.92,1354000000,1142.92 +2001-12-17,1123.09,1137.30,1122.66,1134.36,1260400000,1134.36 +2001-12-14,1119.38,1128.28,1114.53,1123.09,1306800000,1123.09 +2001-12-13,1137.07,1137.07,1117.85,1119.38,1511500000,1119.38 +2001-12-12,1136.76,1141.58,1126.01,1137.07,1449700000,1137.07 +2001-12-11,1139.93,1150.89,1134.32,1136.76,1367200000,1136.76 +2001-12-10,1158.31,1158.31,1139.66,1139.93,1218700000,1139.93 +2001-12-07,1167.10,1167.10,1152.66,1158.31,1248200000,1158.31 +2001-12-06,1170.35,1173.35,1164.43,1167.10,1487900000,1167.10 +2001-12-05,1143.77,1173.62,1143.77,1170.35,1765300000,1170.35 +2001-12-04,1129.90,1144.80,1128.86,1144.80,1318500000,1144.80 +2001-12-03,1139.45,1139.45,1125.78,1129.90,1202900000,1129.90 +2001-11-30,1140.20,1143.57,1135.89,1139.45,1343600000,1139.45 +2001-11-29,1128.52,1140.40,1125.51,1140.20,1375700000,1140.20 +2001-11-28,1149.50,1149.50,1128.29,1128.52,1423700000,1128.52 +2001-11-27,1157.42,1163.38,1140.81,1149.50,1288000000,1149.50 +2001-11-26,1150.34,1157.88,1146.17,1157.42,1129800000,1157.42 +2001-11-23,1137.03,1151.05,1135.90,1150.34,410300000,1150.34 +2001-11-21,1142.66,1142.66,1129.78,1137.03,1029300000,1137.03 +2001-11-20,1151.06,1152.45,1142.17,1142.66,1330200000,1142.66 +2001-11-19,1138.65,1151.06,1138.65,1151.06,1316800000,1151.06 +2001-11-16,1142.24,1143.52,1129.92,1138.65,1337400000,1138.65 +2001-11-15,1141.21,1146.46,1135.06,1142.24,1454500000,1142.24 +2001-11-14,1139.09,1148.28,1132.87,1141.21,1443400000,1141.21 +2001-11-13,1118.33,1139.14,1118.33,1139.09,1370100000,1139.09 +2001-11-12,1120.31,1121.71,1098.32,1118.33,991600000,1118.33 +2001-11-09,1118.54,1123.02,1111.13,1120.31,1093800000,1120.31 +2001-11-08,1115.80,1135.75,1115.42,1118.54,1517500000,1118.54 +2001-11-07,1118.86,1126.62,1112.98,1115.80,1411300000,1115.80 +2001-11-06,1102.84,1119.73,1095.36,1118.86,1356000000,1118.86 +2001-11-05,1087.20,1106.72,1087.20,1102.84,1267700000,1102.84 +2001-11-02,1084.10,1089.63,1075.58,1087.20,1121900000,1087.20 +2001-11-01,1059.78,1085.61,1054.31,1084.10,1317400000,1084.10 +2001-10-31,1059.79,1074.79,1057.55,1059.78,1352500000,1059.78 +2001-10-30,1078.30,1078.30,1053.61,1059.79,1297400000,1059.79 +2001-10-29,1104.61,1104.61,1078.30,1078.30,1106100000,1078.30 +2001-10-26,1100.09,1110.61,1094.24,1104.61,1244500000,1104.61 +2001-10-25,1085.20,1100.09,1065.64,1100.09,1364400000,1100.09 +2001-10-24,1084.78,1090.26,1079.98,1085.20,1336200000,1085.20 +2001-10-23,1089.90,1098.99,1081.53,1084.78,1317300000,1084.78 +2001-10-22,1073.48,1090.57,1070.79,1089.90,1105700000,1089.90 +2001-10-19,1068.61,1075.52,1057.24,1073.48,1294900000,1073.48 +2001-10-18,1077.09,1077.94,1064.54,1068.61,1262900000,1068.61 +2001-10-17,1097.54,1107.12,1076.57,1077.09,1452200000,1077.09 +2001-10-16,1089.98,1101.66,1087.13,1097.54,1210500000,1097.54 +2001-10-15,1091.65,1091.65,1078.19,1089.98,1024700000,1089.98 +2001-10-12,1097.43,1097.43,1072.15,1091.65,1331400000,1091.65 +2001-10-11,1080.99,1099.16,1080.99,1097.43,1704580000,1097.43 +2001-10-10,1056.75,1081.62,1052.76,1080.99,1312400000,1080.99 +2001-10-09,1062.44,1063.37,1053.83,1056.75,1227800000,1056.75 +2001-10-08,1071.37,1071.37,1056.88,1062.44,979000000,1062.44 +2001-10-05,1069.62,1072.35,1053.50,1071.38,1301700000,1071.38 +2001-10-04,1072.28,1084.12,1067.82,1069.63,1609100000,1069.63 +2001-10-03,1051.33,1075.38,1041.48,1072.28,1650600000,1072.28 +2001-10-02,1038.55,1051.33,1034.47,1051.33,1289800000,1051.33 +2001-10-01,1040.94,1040.94,1026.76,1038.55,1175600000,1038.55 +2001-09-28,1018.61,1040.94,1018.61,1040.94,1631500000,1040.94 +2001-09-27,1007.04,1018.92,998.24,1018.61,1467000000,1018.61 +2001-09-26,1012.27,1020.29,1002.62,1007.04,1519100000,1007.04 +2001-09-25,1003.45,1017.14,998.33,1012.27,1613800000,1012.27 +2001-09-24,965.80,1008.44,965.80,1003.45,1746600000,1003.45 +2001-09-21,984.54,984.54,944.75,965.80,2317300000,965.80 +2001-09-20,1016.10,1016.10,984.49,984.54,2004800000,984.54 +2001-09-19,1032.74,1038.91,984.62,1016.10,2120550000,1016.10 +2001-09-18,1038.77,1046.42,1029.25,1032.74,1650410000,1032.74 +2001-09-17,1092.54,1092.54,1037.46,1038.77,2330830000,1038.77 +2001-09-10,1085.78,1096.94,1073.15,1092.54,1276600000,1092.54 +2001-09-07,1106.40,1106.40,1082.12,1085.78,1424300000,1085.78 +2001-09-06,1131.74,1131.74,1105.83,1106.40,1359700000,1106.40 +2001-09-05,1132.94,1135.52,1114.86,1131.74,1384500000,1131.74 +2001-09-04,1133.58,1155.40,1129.06,1132.94,1178300000,1132.94 +2001-08-31,1129.03,1141.83,1126.38,1133.58,920100000,1133.58 +2001-08-30,1148.60,1151.75,1124.87,1129.03,1157000000,1129.03 +2001-08-29,1161.51,1166.97,1147.38,1148.56,963700000,1148.56 +2001-08-28,1179.21,1179.66,1161.17,1161.51,987100000,1161.51 +2001-08-27,1184.93,1186.85,1178.07,1179.21,842600000,1179.21 +2001-08-24,1162.09,1185.15,1162.09,1184.93,1043600000,1184.93 +2001-08-23,1165.31,1169.86,1160.96,1162.09,986200000,1162.09 +2001-08-22,1157.26,1168.56,1153.34,1165.31,1110800000,1165.31 +2001-08-21,1171.41,1179.85,1156.56,1157.26,1041600000,1157.26 +2001-08-20,1161.97,1171.41,1160.94,1171.41,897100000,1171.41 +2001-08-17,1181.66,1181.66,1156.07,1161.97,974300000,1161.97 +2001-08-16,1178.02,1181.80,1166.08,1181.66,1055400000,1181.66 +2001-08-15,1186.73,1191.21,1177.61,1178.02,1065600000,1178.02 +2001-08-14,1191.29,1198.79,1184.26,1186.73,964600000,1186.73 +2001-08-13,1190.16,1193.82,1185.12,1191.29,837600000,1191.29 +2001-08-10,1183.43,1193.33,1169.55,1190.16,960900000,1190.16 +2001-08-09,1183.53,1184.71,1174.68,1183.43,1104200000,1183.43 +2001-08-08,1204.40,1206.79,1181.27,1183.53,1124600000,1183.53 +2001-08-07,1200.47,1207.56,1195.64,1204.40,1012000000,1204.40 +2001-08-06,1214.35,1214.35,1197.35,1200.48,811700000,1200.48 +2001-08-03,1220.75,1220.75,1205.31,1214.35,939900000,1214.35 +2001-08-02,1215.93,1226.27,1215.31,1220.75,1218300000,1220.75 +2001-08-01,1211.23,1223.04,1211.23,1215.93,1340300000,1215.93 +2001-07-31,1204.52,1222.74,1204.52,1211.23,1129200000,1211.23 +2001-07-30,1205.82,1209.05,1200.41,1204.52,909100000,1204.52 +2001-07-27,1202.93,1209.26,1195.99,1205.82,1015300000,1205.82 +2001-07-26,1190.49,1204.18,1182.65,1202.93,1213900000,1202.93 +2001-07-25,1171.65,1190.52,1171.28,1190.49,1280700000,1190.49 +2001-07-24,1191.03,1191.03,1165.54,1171.65,1198700000,1171.65 +2001-07-23,1210.85,1215.22,1190.50,1191.03,986900000,1191.03 +2001-07-20,1215.02,1215.69,1207.04,1210.85,1170900000,1210.85 +2001-07-19,1207.71,1225.04,1205.80,1215.02,1343500000,1215.02 +2001-07-18,1214.44,1214.44,1198.33,1207.71,1316300000,1207.71 +2001-07-17,1202.45,1215.36,1196.14,1214.44,1238100000,1214.44 +2001-07-16,1215.68,1219.63,1200.05,1202.45,1039800000,1202.45 +2001-07-13,1208.14,1218.54,1203.61,1215.68,1121700000,1215.68 +2001-07-12,1180.18,1210.25,1180.18,1208.14,1394000000,1208.14 +2001-07-11,1181.52,1184.93,1168.46,1180.18,1384100000,1180.18 +2001-07-10,1198.78,1203.43,1179.93,1181.52,1263800000,1181.52 +2001-07-09,1190.59,1201.76,1189.75,1198.78,1045700000,1198.78 +2001-07-06,1219.24,1219.24,1188.74,1190.59,1056700000,1190.59 +2001-07-05,1234.45,1234.45,1219.15,1219.24,934900000,1219.24 +2001-07-03,1236.71,1236.71,1229.43,1234.45,622110000,1234.45 +2001-07-02,1224.42,1239.78,1224.03,1236.72,1128300000,1236.72 +2001-06-29,1226.20,1237.29,1221.14,1224.38,1832360000,1224.38 +2001-06-28,1211.07,1234.44,1211.07,1226.20,1327300000,1226.20 +2001-06-27,1216.76,1219.92,1207.29,1211.07,1162100000,1211.07 +2001-06-26,1218.60,1220.70,1204.64,1216.76,1198900000,1216.76 +2001-06-25,1225.35,1231.50,1213.60,1218.60,1050100000,1218.60 +2001-06-22,1237.04,1237.73,1221.41,1225.35,1189200000,1225.35 +2001-06-21,1223.14,1240.24,1220.25,1237.04,1546820000,1237.04 +2001-06-20,1212.58,1225.61,1210.07,1223.14,1350100000,1223.14 +2001-06-19,1208.43,1226.11,1207.71,1212.58,1184900000,1212.58 +2001-06-18,1214.36,1221.23,1208.33,1208.43,1111600000,1208.43 +2001-06-15,1219.87,1221.50,1203.03,1214.36,1635550000,1214.36 +2001-06-14,1241.60,1241.60,1218.90,1219.87,1242900000,1219.87 +2001-06-13,1255.85,1259.75,1241.59,1241.60,1063600000,1241.60 +2001-06-12,1254.39,1261.00,1235.75,1255.85,1136500000,1255.85 +2001-06-11,1264.96,1264.96,1249.23,1254.39,870100000,1254.39 +2001-06-08,1276.96,1277.11,1259.99,1264.96,726200000,1264.96 +2001-06-07,1270.03,1277.08,1265.08,1276.96,1089600000,1276.96 +2001-06-06,1283.57,1283.85,1269.01,1270.03,1061900000,1270.03 +2001-06-05,1267.11,1286.62,1267.11,1283.57,1116800000,1283.57 +2001-06-04,1260.67,1267.17,1256.36,1267.11,836500000,1267.11 +2001-06-01,1255.82,1265.34,1246.88,1260.67,1015000000,1260.67 +2001-05-31,1248.08,1261.91,1248.07,1255.82,1226600000,1255.82 +2001-05-30,1267.93,1267.93,1245.96,1248.08,1158600000,1248.08 +2001-05-29,1277.89,1278.42,1265.41,1267.93,1026000000,1267.93 +2001-05-25,1293.17,1293.17,1276.42,1277.89,828100000,1277.89 +2001-05-24,1289.05,1295.04,1281.22,1293.17,1100700000,1293.17 +2001-05-23,1309.38,1309.38,1288.70,1289.05,1134800000,1289.05 +2001-05-22,1312.83,1315.93,1306.89,1309.38,1260400000,1309.38 +2001-05-21,1291.96,1312.95,1287.87,1312.83,1174900000,1312.83 +2001-05-18,1288.49,1292.06,1281.15,1291.96,1130800000,1291.96 +2001-05-17,1284.99,1296.48,1282.65,1288.49,1355600000,1288.49 +2001-05-16,1249.44,1286.39,1243.02,1284.99,1405300000,1284.99 +2001-05-15,1248.92,1257.45,1245.36,1249.44,1071800000,1249.44 +2001-05-14,1245.67,1249.68,1241.02,1248.92,858200000,1248.92 +2001-05-11,1255.18,1259.84,1240.79,1245.67,906200000,1245.67 +2001-05-10,1255.54,1268.14,1254.56,1255.18,1056700000,1255.18 +2001-05-09,1261.20,1261.65,1247.83,1255.54,1132400000,1255.54 +2001-05-08,1266.71,1267.01,1253.00,1261.20,1006300000,1261.20 +2001-05-07,1266.61,1270.00,1259.19,1263.51,949000000,1263.51 +2001-05-04,1248.58,1267.51,1232.00,1266.61,1082100000,1266.61 +2001-05-03,1267.43,1267.43,1239.88,1248.58,1137900000,1248.58 +2001-05-02,1266.44,1272.93,1257.70,1267.43,1342200000,1267.43 +2001-05-01,1249.46,1266.47,1243.55,1266.44,1181300000,1266.44 +2001-04-30,1253.05,1269.30,1243.99,1249.46,1266800000,1249.46 +2001-04-27,1234.52,1253.07,1234.52,1253.05,1091300000,1253.05 +2001-04-26,1228.75,1248.30,1228.75,1234.52,1345200000,1234.52 +2001-04-25,1209.47,1232.36,1207.38,1228.75,1203600000,1228.75 +2001-04-24,1224.36,1233.54,1208.89,1209.47,1216500000,1209.47 +2001-04-23,1242.98,1242.98,1217.47,1224.36,1012600000,1224.36 +2001-04-20,1253.70,1253.70,1234.41,1242.98,1338700000,1242.98 +2001-04-19,1238.16,1253.71,1233.39,1253.69,1486800000,1253.69 +2001-04-18,1191.81,1248.42,1191.81,1238.16,1918900000,1238.16 +2001-04-17,1179.68,1192.25,1168.90,1191.81,1109600000,1191.81 +2001-04-16,1183.50,1184.64,1167.38,1179.68,913900000,1179.68 +2001-04-12,1165.89,1183.51,1157.73,1183.50,1102000000,1183.50 +2001-04-11,1168.38,1182.24,1160.26,1165.89,1290300000,1165.89 +2001-04-10,1137.59,1173.92,1137.59,1168.38,1349600000,1168.38 +2001-04-09,1128.43,1146.13,1126.38,1137.59,1062800000,1137.59 +2001-04-06,1151.44,1151.44,1119.29,1128.43,1266800000,1128.43 +2001-04-05,1103.25,1151.47,1103.25,1151.44,1368000000,1151.44 +2001-04-04,1106.46,1117.50,1091.99,1103.25,1425590000,1103.25 +2001-04-03,1145.87,1145.87,1100.19,1106.46,1386100000,1106.46 +2001-04-02,1160.33,1169.51,1137.51,1145.87,1254900000,1145.87 +2001-03-30,1147.95,1162.80,1143.83,1160.33,1280800000,1160.33 +2001-03-29,1153.29,1161.69,1136.26,1147.95,1234500000,1147.95 +2001-03-28,1182.17,1182.17,1147.83,1153.29,1333400000,1153.29 +2001-03-27,1152.69,1183.35,1150.96,1182.17,1314200000,1182.17 +2001-03-26,1139.83,1160.02,1139.83,1152.69,1114000000,1152.69 +2001-03-23,1117.58,1141.83,1117.58,1139.83,1364900000,1139.83 +2001-03-22,1122.14,1124.27,1081.19,1117.58,1723950000,1117.58 +2001-03-21,1142.62,1149.39,1118.74,1122.14,1346300000,1122.14 +2001-03-20,1170.81,1180.56,1142.19,1142.62,1235900000,1142.62 +2001-03-19,1150.53,1173.50,1147.18,1170.81,1126200000,1170.81 +2001-03-16,1173.56,1173.56,1148.64,1150.53,1543560000,1150.53 +2001-03-15,1166.71,1182.04,1166.71,1173.56,1259500000,1173.56 +2001-03-14,1197.66,1197.66,1155.35,1166.71,1397400000,1166.71 +2001-03-13,1180.16,1197.83,1171.50,1197.66,1360900000,1197.66 +2001-03-12,1233.42,1233.42,1176.78,1180.16,1229000000,1180.16 +2001-03-09,1264.74,1264.74,1228.42,1233.42,1085900000,1233.42 +2001-03-08,1261.89,1266.50,1257.60,1264.74,1114100000,1264.74 +2001-03-07,1253.80,1263.86,1253.80,1261.89,1132200000,1261.89 +2001-03-06,1241.41,1267.42,1241.41,1253.80,1091800000,1253.80 +2001-03-05,1234.18,1242.55,1234.04,1241.41,929200000,1241.41 +2001-03-02,1241.23,1251.01,1219.74,1234.18,1294000000,1234.18 +2001-03-01,1239.94,1241.36,1214.50,1241.23,1294900000,1241.23 +2001-02-28,1257.94,1263.47,1229.65,1239.94,1225300000,1239.94 +2001-02-27,1267.65,1272.76,1252.26,1257.94,1114100000,1257.94 +2001-02-26,1245.86,1267.69,1241.71,1267.65,1130800000,1267.65 +2001-02-23,1252.82,1252.82,1215.44,1245.86,1231300000,1245.86 +2001-02-22,1255.27,1259.94,1228.33,1252.82,1365900000,1252.82 +2001-02-21,1278.94,1282.97,1253.16,1255.27,1208500000,1255.27 +2001-02-20,1301.53,1307.16,1278.44,1278.94,1112200000,1278.94 +2001-02-16,1326.61,1326.61,1293.18,1301.53,1257200000,1301.53 +2001-02-15,1315.92,1331.29,1315.92,1326.61,1153700000,1326.61 +2001-02-14,1318.80,1320.73,1304.72,1315.92,1150300000,1315.92 +2001-02-13,1330.31,1336.62,1317.51,1318.80,1075200000,1318.80 +2001-02-12,1314.76,1330.96,1313.64,1330.31,1039100000,1330.31 +2001-02-09,1332.53,1332.53,1309.98,1314.76,1075500000,1314.76 +2001-02-08,1341.10,1350.32,1332.42,1332.53,1107200000,1332.53 +2001-02-07,1352.26,1352.26,1334.26,1340.89,1158300000,1340.89 +2001-02-06,1354.31,1363.55,1350.04,1352.26,1059600000,1352.26 +2001-02-05,1349.47,1354.56,1344.48,1354.31,1013000000,1354.31 +2001-02-02,1373.47,1376.38,1348.72,1349.47,1048400000,1349.47 +2001-02-01,1366.01,1373.50,1359.34,1373.47,1118800000,1373.47 +2001-01-31,1373.73,1383.37,1364.66,1366.01,1295300000,1366.01 +2001-01-30,1364.17,1375.68,1356.20,1373.73,1149800000,1373.73 +2001-01-29,1354.92,1365.54,1350.36,1364.17,1053100000,1364.17 +2001-01-26,1357.51,1357.51,1342.75,1354.95,1098000000,1354.95 +2001-01-25,1364.30,1367.35,1354.63,1357.51,1258000000,1357.51 +2001-01-24,1360.40,1369.75,1357.28,1364.30,1309000000,1364.30 +2001-01-23,1342.90,1362.90,1339.63,1360.40,1232600000,1360.40 +2001-01-22,1342.54,1353.62,1333.84,1342.90,1164000000,1342.90 +2001-01-19,1347.97,1354.55,1336.74,1342.54,1407800000,1342.54 +2001-01-18,1329.89,1352.71,1327.41,1347.97,1445000000,1347.97 +2001-01-17,1326.65,1346.92,1325.41,1329.47,1349100000,1329.47 +2001-01-16,1318.32,1327.81,1313.33,1326.65,1205700000,1326.65 +2001-01-12,1326.82,1333.21,1311.59,1318.55,1276000000,1318.55 +2001-01-11,1313.27,1332.19,1309.72,1326.82,1411200000,1326.82 +2001-01-10,1300.80,1313.76,1287.28,1313.27,1296500000,1313.27 +2001-01-09,1295.86,1311.72,1295.14,1300.80,1191300000,1300.80 +2001-01-08,1298.35,1298.35,1276.29,1295.86,1115500000,1295.86 +2001-01-05,1333.34,1334.77,1294.95,1298.35,1430800000,1298.35 +2001-01-04,1347.56,1350.24,1329.14,1333.34,2131000000,1333.34 +2001-01-03,1283.27,1347.76,1274.62,1347.56,1880700000,1347.56 +2001-01-02,1320.28,1320.28,1276.05,1283.27,1129400000,1283.27 +2000-12-29,1334.22,1340.10,1317.51,1320.28,1035500000,1320.28 +2000-12-28,1328.92,1335.93,1325.78,1334.22,1015300000,1334.22 +2000-12-27,1315.19,1332.03,1310.96,1328.92,1092700000,1328.92 +2000-12-26,1305.97,1315.94,1301.64,1315.19,806500000,1315.19 +2000-12-22,1274.86,1305.97,1274.86,1305.95,1087100000,1305.95 +2000-12-21,1264.74,1285.31,1254.07,1274.86,1449900000,1274.86 +2000-12-20,1305.60,1305.60,1261.16,1264.74,1421600000,1264.74 +2000-12-19,1322.96,1346.44,1305.20,1305.60,1324900000,1305.60 +2000-12-18,1312.15,1332.32,1312.15,1322.74,1189900000,1322.74 +2000-12-15,1340.93,1340.93,1305.38,1312.15,1561100000,1312.15 +2000-12-14,1359.99,1359.99,1340.48,1340.93,1061300000,1340.93 +2000-12-13,1371.18,1385.82,1358.48,1359.99,1195100000,1359.99 +2000-12-12,1380.20,1380.27,1370.27,1371.18,1083400000,1371.18 +2000-12-11,1369.89,1389.05,1364.14,1380.20,1202400000,1380.20 +2000-12-08,1343.55,1380.33,1343.55,1369.89,1358300000,1369.89 +2000-12-07,1351.46,1353.50,1339.26,1343.55,1128000000,1343.55 +2000-12-06,1376.54,1376.54,1346.15,1351.46,1399300000,1351.46 +2000-12-05,1324.97,1376.56,1324.97,1376.54,900300000,1376.54 +2000-12-04,1315.18,1332.06,1310.23,1324.97,1103000000,1324.97 +2000-12-01,1314.95,1334.67,1307.02,1315.23,1195200000,1315.23 +2000-11-30,1341.91,1341.91,1294.90,1314.95,1186530000,1314.95 +2000-11-29,1336.09,1352.38,1329.28,1341.93,402100000,1341.93 +2000-11-28,1348.97,1358.81,1334.97,1336.09,1028200000,1336.09 +2000-11-27,1341.77,1362.50,1341.77,1348.97,946100000,1348.97 +2000-11-24,1322.36,1343.83,1322.36,1341.77,404870000,1341.77 +2000-11-22,1347.35,1347.35,1321.89,1322.36,963200000,1322.36 +2000-11-21,1342.62,1355.87,1333.62,1347.35,1137100000,1347.35 +2000-11-20,1367.72,1367.72,1341.67,1342.62,955800000,1342.62 +2000-11-17,1372.32,1384.85,1355.55,1367.72,1070400000,1367.72 +2000-11-16,1389.81,1394.76,1370.39,1372.32,956300000,1372.32 +2000-11-15,1382.95,1395.96,1374.75,1389.81,1066800000,1389.81 +2000-11-14,1351.26,1390.06,1351.26,1382.95,1118800000,1382.95 +2000-11-13,1365.98,1365.98,1328.62,1351.26,1129300000,1351.26 +2000-11-10,1400.14,1400.14,1365.97,1365.98,962500000,1365.98 +2000-11-09,1409.28,1409.28,1369.68,1400.14,1111000000,1400.14 +2000-11-08,1431.87,1437.28,1408.78,1409.28,909300000,1409.28 +2000-11-07,1432.19,1436.22,1423.26,1431.87,880900000,1431.87 +2000-11-06,1428.76,1438.46,1427.72,1432.19,930900000,1432.19 +2000-11-03,1428.32,1433.21,1420.92,1426.69,997700000,1426.69 +2000-11-02,1421.22,1433.40,1421.22,1428.32,1167700000,1428.32 +2000-11-01,1429.40,1429.60,1410.45,1421.22,1206800000,1421.22 +2000-10-31,1398.66,1432.22,1398.66,1429.40,1366400000,1429.40 +2000-10-30,1379.58,1406.36,1376.86,1398.66,1186500000,1398.66 +2000-10-27,1364.44,1384.57,1364.13,1379.58,1086300000,1379.58 +2000-10-26,1364.90,1372.72,1337.81,1364.44,1303800000,1364.44 +2000-10-25,1398.13,1398.13,1362.21,1364.90,1315600000,1364.90 +2000-10-24,1395.78,1415.64,1388.13,1398.13,1158600000,1398.13 +2000-10-23,1396.93,1406.96,1387.75,1395.78,1046800000,1395.78 +2000-10-20,1388.76,1408.47,1382.19,1396.93,1177400000,1396.93 +2000-10-19,1342.13,1389.93,1342.13,1388.76,1297900000,1388.76 +2000-10-18,1349.97,1356.65,1305.79,1342.13,1441700000,1342.13 +2000-10-17,1374.62,1380.99,1342.34,1349.97,1161500000,1349.97 +2000-10-16,1374.17,1379.48,1365.06,1374.62,1005400000,1374.62 +2000-10-13,1329.78,1374.17,1327.08,1374.17,1223900000,1374.17 +2000-10-12,1364.59,1374.93,1328.06,1329.78,1388600000,1329.78 +2000-10-11,1387.02,1387.02,1349.67,1364.59,1387500000,1364.59 +2000-10-10,1402.03,1408.83,1383.85,1387.02,1044000000,1387.02 +2000-10-09,1408.99,1409.69,1392.48,1402.03,716600000,1402.03 +2000-10-06,1436.28,1443.30,1397.06,1408.99,1150100000,1408.99 +2000-10-05,1434.32,1444.17,1431.80,1436.28,1176100000,1436.28 +2000-10-04,1426.46,1439.99,1416.31,1434.32,1167400000,1434.32 +2000-10-03,1436.23,1454.82,1425.28,1426.46,1098100000,1426.46 +2000-10-02,1436.52,1445.60,1429.83,1436.23,1051200000,1436.23 +2000-09-29,1458.29,1458.29,1436.29,1436.51,1197100000,1436.51 +2000-09-28,1426.57,1461.69,1425.78,1458.29,1206200000,1458.29 +2000-09-27,1427.21,1437.22,1419.44,1426.57,1174700000,1426.57 +2000-09-26,1439.03,1448.04,1425.25,1427.21,1106600000,1427.21 +2000-09-25,1448.72,1457.42,1435.93,1439.03,982400000,1439.03 +2000-09-22,1449.05,1449.05,1421.88,1448.72,1185500000,1448.72 +2000-09-21,1451.34,1452.77,1436.30,1449.05,1105400000,1449.05 +2000-09-20,1459.90,1460.49,1430.95,1451.34,1104000000,1451.34 +2000-09-19,1444.51,1461.16,1444.51,1459.90,1024900000,1459.90 +2000-09-18,1465.81,1467.77,1441.92,1444.51,962500000,1444.51 +2000-09-15,1480.87,1480.96,1460.22,1465.81,1268400000,1465.81 +2000-09-14,1484.91,1494.16,1476.73,1480.87,1014000000,1480.87 +2000-09-13,1481.99,1487.45,1473.61,1484.91,1068300000,1484.91 +2000-09-12,1489.26,1496.93,1479.67,1481.99,991200000,1481.99 +2000-09-11,1494.50,1506.76,1483.01,1489.26,899300000,1489.26 +2000-09-08,1502.51,1502.51,1489.88,1494.50,961000000,1494.50 +2000-09-07,1492.25,1505.34,1492.25,1502.51,985500000,1502.51 +2000-09-06,1507.08,1512.61,1492.12,1492.25,995100000,1492.25 +2000-09-05,1520.77,1520.77,1504.21,1507.08,838500000,1507.08 +2000-09-01,1517.68,1530.09,1515.53,1520.77,767700000,1520.77 +2000-08-31,1502.59,1525.21,1502.59,1517.68,1056600000,1517.68 +2000-08-30,1509.84,1510.49,1500.09,1502.59,818400000,1502.59 +2000-08-29,1514.09,1514.81,1505.46,1509.84,795600000,1509.84 +2000-08-28,1506.45,1523.95,1506.45,1514.09,733600000,1514.09 +2000-08-25,1508.31,1513.47,1505.09,1506.45,685600000,1506.45 +2000-08-24,1505.97,1511.16,1501.25,1508.31,837100000,1508.31 +2000-08-23,1498.13,1507.20,1489.52,1505.97,871000000,1505.97 +2000-08-22,1499.48,1508.45,1497.42,1498.13,818800000,1498.13 +2000-08-21,1491.72,1502.84,1491.13,1499.48,731600000,1499.48 +2000-08-18,1496.07,1499.47,1488.99,1491.72,821400000,1491.72 +2000-08-17,1479.85,1499.32,1479.85,1496.07,922400000,1496.07 +2000-08-16,1484.43,1496.09,1475.74,1479.85,929800000,1479.85 +2000-08-15,1491.56,1493.12,1482.74,1484.43,895900000,1484.43 +2000-08-14,1471.84,1491.64,1468.56,1491.56,783800000,1491.56 +2000-08-11,1460.25,1475.72,1453.06,1471.84,835500000,1471.84 +2000-08-10,1472.87,1475.15,1459.89,1460.25,940800000,1460.25 +2000-08-09,1482.80,1490.33,1471.16,1472.87,1054000000,1472.87 +2000-08-08,1479.32,1484.52,1472.61,1482.80,992200000,1482.80 +2000-08-07,1462.93,1480.80,1460.72,1479.32,854800000,1479.32 +2000-08-04,1452.56,1462.93,1451.31,1462.93,956000000,1462.93 +2000-08-03,1438.70,1454.19,1425.43,1452.56,1095600000,1452.56 +2000-08-02,1438.10,1451.59,1433.49,1438.70,994500000,1438.70 +2000-08-01,1430.83,1443.54,1428.96,1438.10,938700000,1438.10 +2000-07-31,1419.89,1437.65,1418.71,1430.83,952600000,1430.83 +2000-07-28,1449.62,1456.68,1413.89,1419.89,980000000,1419.89 +2000-07-27,1452.42,1464.91,1445.33,1449.62,1156400000,1449.62 +2000-07-26,1474.47,1474.47,1452.42,1452.42,1235800000,1452.42 +2000-07-25,1464.29,1476.23,1464.29,1474.47,969400000,1474.47 +2000-07-24,1480.19,1485.88,1463.80,1464.29,880300000,1464.29 +2000-07-21,1495.57,1495.57,1477.91,1480.19,968300000,1480.19 +2000-07-20,1481.96,1501.92,1481.96,1495.57,1064600000,1495.57 +2000-07-19,1493.74,1495.63,1479.92,1481.96,909400000,1481.96 +2000-07-18,1510.49,1510.49,1491.35,1493.74,908300000,1493.74 +2000-07-17,1509.98,1517.32,1505.26,1510.49,906000000,1510.49 +2000-07-14,1495.84,1509.99,1494.56,1509.98,960600000,1509.98 +2000-07-13,1492.92,1501.39,1489.65,1495.84,1026800000,1495.84 +2000-07-12,1480.88,1497.69,1480.88,1492.92,1001200000,1492.92 +2000-07-11,1475.62,1488.77,1470.48,1480.88,980500000,1480.88 +2000-07-10,1478.90,1486.56,1474.76,1475.62,838700000,1475.62 +2000-07-07,1456.67,1484.12,1456.67,1478.90,931700000,1478.90 +2000-07-06,1446.23,1461.65,1439.56,1456.67,947300000,1456.67 +2000-07-05,1469.54,1469.54,1442.45,1446.23,1019300000,1446.23 +2000-07-03,1454.60,1469.58,1450.85,1469.54,451900000,1469.54 +2000-06-30,1442.39,1454.68,1438.71,1454.60,1459700000,1454.60 +2000-06-29,1454.82,1455.14,1434.63,1442.39,1110900000,1442.39 +2000-06-28,1450.55,1467.63,1450.55,1454.82,1095100000,1454.82 +2000-06-27,1455.31,1463.35,1450.55,1450.55,1042500000,1450.55 +2000-06-26,1441.48,1459.66,1441.48,1455.31,889000000,1455.31 +2000-06-23,1452.18,1459.94,1438.31,1441.48,847600000,1441.48 +2000-06-22,1479.13,1479.13,1448.03,1452.18,1022700000,1452.18 +2000-06-21,1475.95,1482.19,1468.00,1479.13,1009600000,1479.13 +2000-06-20,1486.00,1487.32,1470.18,1475.95,1031500000,1475.95 +2000-06-19,1464.46,1488.93,1459.05,1486.00,921700000,1486.00 +2000-06-16,1478.73,1480.77,1460.42,1464.46,1250800000,1464.46 +2000-06-15,1470.54,1482.04,1464.62,1478.73,1011400000,1478.73 +2000-06-14,1469.44,1483.62,1467.71,1470.54,929700000,1470.54 +2000-06-13,1446.00,1470.42,1442.38,1469.44,935900000,1469.44 +2000-06-12,1456.95,1462.93,1445.99,1446.00,774100000,1446.00 +2000-06-09,1461.67,1472.67,1454.96,1456.95,786000000,1456.95 +2000-06-08,1471.36,1475.65,1456.49,1461.67,854300000,1461.67 +2000-06-07,1457.84,1474.64,1455.06,1471.36,854600000,1471.36 +2000-06-06,1467.63,1471.36,1454.74,1457.84,950100000,1457.84 +2000-06-05,1477.26,1477.28,1464.68,1467.63,838600000,1467.63 +2000-06-02,1448.81,1483.23,1448.81,1477.26,1162400000,1477.26 +2000-06-01,1420.60,1448.81,1420.60,1448.81,960100000,1448.81 +2000-05-31,1422.44,1434.49,1415.50,1420.60,960500000,1420.60 +2000-05-30,1378.02,1422.45,1378.02,1422.45,844200000,1422.45 +2000-05-26,1381.52,1391.42,1369.75,1378.02,722600000,1378.02 +2000-05-25,1399.05,1411.65,1373.93,1381.52,984500000,1381.52 +2000-05-24,1373.86,1401.75,1361.09,1399.05,1152300000,1399.05 +2000-05-23,1400.72,1403.77,1373.43,1373.86,869900000,1373.86 +2000-05-22,1406.95,1410.55,1368.73,1400.72,869000000,1400.72 +2000-05-19,1437.21,1437.21,1401.74,1406.95,853700000,1406.95 +2000-05-18,1447.80,1458.04,1436.59,1437.21,807900000,1437.21 +2000-05-17,1466.04,1466.04,1441.67,1447.80,820500000,1447.80 +2000-05-16,1452.36,1470.40,1450.76,1466.04,955500000,1466.04 +2000-05-15,1420.96,1452.39,1416.54,1452.36,854600000,1452.36 +2000-05-12,1407.81,1430.13,1407.81,1420.96,858200000,1420.96 +2000-05-11,1383.05,1410.26,1383.05,1407.81,953600000,1407.81 +2000-05-10,1412.14,1412.14,1375.14,1383.05,1006400000,1383.05 +2000-05-09,1424.17,1430.28,1401.85,1412.14,896600000,1412.14 +2000-05-08,1432.63,1432.63,1417.05,1424.17,787600000,1424.17 +2000-05-05,1409.57,1436.03,1405.08,1432.63,805500000,1432.63 +2000-05-04,1415.10,1420.99,1404.94,1409.57,925800000,1409.57 +2000-05-03,1446.29,1446.29,1398.36,1415.10,991600000,1415.10 +2000-05-02,1468.25,1468.25,1445.22,1446.29,1011500000,1446.29 +2000-05-01,1452.43,1481.51,1452.43,1468.25,966300000,1468.25 +2000-04-28,1464.92,1473.62,1448.15,1452.43,984600000,1452.43 +2000-04-27,1460.99,1469.21,1434.81,1464.92,1111000000,1464.92 +2000-04-26,1477.44,1482.94,1456.98,1460.99,999600000,1460.99 +2000-04-25,1429.86,1477.67,1429.86,1477.44,1071100000,1477.44 +2000-04-24,1434.54,1434.54,1407.13,1429.86,868700000,1429.86 +2000-04-20,1427.47,1435.49,1422.08,1434.54,896200000,1434.54 +2000-04-19,1441.61,1447.69,1424.26,1427.47,1001400000,1427.47 +2000-04-18,1401.44,1441.61,1397.81,1441.61,1109400000,1441.61 +2000-04-17,1356.56,1401.53,1346.50,1401.44,1204700000,1401.44 +2000-04-14,1440.51,1440.51,1339.40,1356.56,1279700000,1356.56 +2000-04-13,1467.17,1477.52,1439.34,1440.51,1032000000,1440.51 +2000-04-12,1500.59,1509.08,1466.15,1467.17,1175900000,1467.17 +2000-04-11,1504.46,1512.80,1486.78,1500.59,971400000,1500.59 +2000-04-10,1516.35,1527.19,1503.35,1504.46,853700000,1504.46 +2000-04-07,1501.34,1518.68,1501.34,1516.35,891600000,1516.35 +2000-04-06,1487.37,1511.76,1487.37,1501.34,1008000000,1501.34 +2000-04-05,1494.73,1506.55,1478.05,1487.37,1110300000,1487.37 +2000-04-04,1505.98,1526.45,1416.41,1494.73,1515460000,1494.73 +2000-04-03,1498.58,1507.19,1486.96,1505.97,1021700000,1505.97 +2000-03-31,1487.92,1519.81,1484.38,1498.58,1227400000,1498.58 +2000-03-30,1508.52,1517.38,1474.63,1487.92,1193400000,1487.92 +2000-03-29,1507.73,1521.45,1497.45,1508.52,1061900000,1508.52 +2000-03-28,1523.86,1527.36,1507.09,1507.73,959100000,1507.73 +2000-03-27,1527.46,1534.63,1518.46,1523.86,901000000,1523.86 +2000-03-24,1527.35,1552.87,1516.83,1527.46,1052200000,1527.46 +2000-03-23,1500.64,1532.50,1492.39,1527.35,1078300000,1527.35 +2000-03-22,1493.87,1505.08,1487.33,1500.64,1075000000,1500.64 +2000-03-21,1456.63,1493.92,1446.06,1493.87,1065900000,1493.87 +2000-03-20,1464.47,1470.30,1448.49,1456.63,920800000,1456.63 +2000-03-17,1458.47,1477.33,1453.32,1464.47,1295100000,1464.47 +2000-03-16,1392.15,1458.47,1392.15,1458.47,1482300000,1458.47 +2000-03-15,1359.15,1397.99,1356.99,1392.14,1302800000,1392.14 +2000-03-14,1383.62,1395.15,1359.15,1359.15,1094000000,1359.15 +2000-03-13,1395.07,1398.39,1364.84,1383.62,1016100000,1383.62 +2000-03-10,1401.69,1413.46,1392.07,1395.07,1138800000,1395.07 +2000-03-09,1366.70,1401.82,1357.88,1401.69,1123000000,1401.69 +2000-03-08,1355.62,1373.79,1346.62,1366.70,1203000000,1366.70 +2000-03-07,1391.28,1399.21,1349.99,1355.62,1314100000,1355.62 +2000-03-06,1409.17,1409.74,1384.75,1391.28,1029000000,1391.28 +2000-03-03,1381.76,1410.88,1381.76,1409.17,1150300000,1409.17 +2000-03-02,1379.19,1386.56,1370.35,1381.76,1198600000,1381.76 +2000-03-01,1366.42,1383.46,1366.42,1379.19,1274100000,1379.19 +2000-02-29,1348.05,1369.63,1348.05,1366.42,1204300000,1366.42 +2000-02-28,1333.36,1360.82,1325.07,1348.05,1026500000,1348.05 +2000-02-25,1353.43,1362.14,1329.15,1333.36,1065200000,1333.36 +2000-02-24,1360.69,1364.80,1329.88,1353.43,1215000000,1353.43 +2000-02-23,1352.17,1370.11,1342.44,1360.69,993700000,1360.69 +2000-02-22,1346.09,1358.11,1331.88,1352.17,980000000,1352.17 +2000-02-18,1388.26,1388.59,1345.32,1346.09,1042300000,1346.09 +2000-02-17,1387.67,1399.88,1380.07,1388.26,1034800000,1388.26 +2000-02-16,1402.05,1404.55,1385.58,1387.67,1018800000,1387.67 +2000-02-15,1389.94,1407.72,1376.25,1402.05,1092100000,1402.05 +2000-02-14,1387.12,1394.93,1380.53,1389.94,927300000,1389.94 +2000-02-11,1416.83,1416.83,1378.89,1387.12,1025700000,1387.12 +2000-02-10,1411.70,1422.10,1406.43,1416.83,1058800000,1416.83 +2000-02-09,1441.72,1444.55,1411.65,1411.71,1050500000,1411.71 +2000-02-08,1424.24,1441.83,1424.24,1441.72,1047700000,1441.72 +2000-02-07,1424.37,1427.15,1413.33,1424.24,918100000,1424.24 +2000-02-04,1424.97,1435.91,1420.63,1424.37,1045100000,1424.37 +2000-02-03,1409.12,1425.78,1398.52,1424.97,1146500000,1424.97 +2000-02-02,1409.28,1420.61,1403.49,1409.12,1038600000,1409.12 +2000-02-01,1394.46,1412.49,1384.79,1409.28,981000000,1409.28 +2000-01-31,1360.16,1394.48,1350.14,1394.46,993800000,1394.46 +2000-01-28,1398.56,1398.56,1356.20,1360.16,1095800000,1360.16 +2000-01-27,1404.09,1418.86,1370.99,1398.56,1129500000,1398.56 +2000-01-26,1410.03,1412.73,1400.16,1404.09,1117300000,1404.09 +2000-01-25,1401.53,1414.26,1388.49,1410.03,1073700000,1410.03 +2000-01-24,1441.36,1454.09,1395.42,1401.53,1115800000,1401.53 +2000-01-21,1445.57,1453.18,1439.60,1441.36,1209800000,1441.36 +2000-01-20,1455.90,1465.71,1438.54,1445.57,1100700000,1445.57 +2000-01-19,1455.14,1461.39,1448.68,1455.90,1087800000,1455.90 +2000-01-18,1465.15,1465.15,1451.30,1455.14,1056700000,1455.14 +2000-01-14,1449.68,1473.00,1449.68,1465.15,1085900000,1465.15 +2000-01-13,1432.25,1454.20,1432.25,1449.68,1030400000,1449.68 +2000-01-12,1438.56,1442.60,1427.08,1432.25,974600000,1432.25 +2000-01-11,1457.60,1458.66,1434.42,1438.56,1014000000,1438.56 +2000-01-10,1441.47,1464.36,1441.47,1457.60,1064800000,1457.60 +2000-01-07,1403.45,1441.47,1400.73,1441.47,1225200000,1441.47 +2000-01-06,1402.11,1411.90,1392.10,1403.45,1092300000,1403.45 +2000-01-05,1399.42,1413.27,1377.68,1402.11,1085500000,1402.11 +2000-01-04,1455.22,1455.22,1397.43,1399.42,1009000000,1399.42 +2000-01-03,1469.25,1478.00,1438.36,1455.22,931800000,1455.22 +1999-12-31,1464.47,1472.42,1458.19,1469.25,374050000,1469.25 +1999-12-30,1463.46,1473.10,1462.60,1464.47,554680000,1464.47 +1999-12-29,1457.66,1467.47,1457.66,1463.46,567860000,1463.46 +1999-12-28,1457.09,1462.68,1452.78,1457.66,655400000,1457.66 +1999-12-27,1458.34,1463.19,1450.83,1457.10,722600000,1457.10 +1999-12-23,1436.13,1461.44,1436.13,1458.34,728600000,1458.34 +1999-12-22,1433.43,1440.02,1429.13,1436.13,850000000,1436.13 +1999-12-21,1418.09,1436.47,1414.80,1433.43,963500000,1433.43 +1999-12-20,1421.03,1429.16,1411.10,1418.09,904600000,1418.09 +1999-12-17,1418.78,1431.77,1418.78,1421.03,1349800000,1421.03 +1999-12-16,1413.32,1423.11,1408.35,1418.78,1070300000,1418.78 +1999-12-15,1403.17,1417.40,1396.20,1413.33,1033900000,1413.33 +1999-12-14,1415.22,1418.30,1401.59,1403.17,1027800000,1403.17 +1999-12-13,1417.04,1421.58,1410.10,1415.22,977600000,1415.22 +1999-12-10,1408.11,1421.58,1405.65,1417.04,987200000,1417.04 +1999-12-09,1403.88,1418.43,1391.47,1408.11,1122100000,1408.11 +1999-12-08,1409.17,1415.66,1403.88,1403.88,957000000,1403.88 +1999-12-07,1423.33,1426.81,1409.17,1409.17,1085800000,1409.17 +1999-12-06,1433.30,1434.15,1418.25,1423.33,916800000,1423.33 +1999-12-03,1409.04,1447.42,1409.04,1433.30,1006400000,1433.30 +1999-12-02,1397.72,1409.04,1397.72,1409.04,900700000,1409.04 +1999-12-01,1388.91,1400.12,1387.38,1397.72,884000000,1397.72 +1999-11-30,1407.83,1410.59,1386.95,1388.91,951500000,1388.91 +1999-11-29,1416.62,1416.62,1404.15,1407.83,866100000,1407.83 +1999-11-26,1417.08,1425.24,1416.14,1416.62,312120000,1416.62 +1999-11-24,1404.64,1419.71,1399.17,1417.08,734800000,1417.08 +1999-11-23,1420.94,1423.91,1402.20,1404.64,926100000,1404.64 +1999-11-22,1422.00,1425.00,1412.40,1420.94,873500000,1420.94 +1999-11-19,1424.94,1424.94,1417.54,1422.00,893800000,1422.00 +1999-11-18,1410.71,1425.31,1410.71,1424.94,1022800000,1424.94 +1999-11-17,1420.07,1423.44,1410.69,1410.71,960000000,1410.71 +1999-11-16,1394.39,1420.36,1394.39,1420.07,942200000,1420.07 +1999-11-15,1396.06,1398.58,1392.28,1394.39,795700000,1394.39 +1999-11-12,1381.46,1396.12,1368.54,1396.06,900200000,1396.06 +1999-11-11,1373.46,1382.12,1372.19,1381.46,891300000,1381.46 +1999-11-10,1365.28,1379.18,1359.98,1373.46,984700000,1373.46 +1999-11-09,1377.01,1383.81,1361.45,1365.28,854300000,1365.28 +1999-11-08,1370.23,1380.78,1365.87,1377.01,806800000,1377.01 +1999-11-05,1362.64,1387.48,1362.64,1370.23,1007300000,1370.23 +1999-11-04,1354.93,1369.41,1354.93,1362.64,981700000,1362.64 +1999-11-03,1347.74,1360.33,1347.74,1354.93,914400000,1354.93 +1999-11-02,1354.12,1369.32,1346.41,1347.74,904500000,1347.74 +1999-11-01,1362.93,1367.30,1354.05,1354.12,861000000,1354.12 +1999-10-29,1342.44,1373.17,1342.44,1362.93,1120500000,1362.93 +1999-10-28,1296.71,1342.47,1296.71,1342.44,1135100000,1342.44 +1999-10-27,1281.91,1299.39,1280.48,1296.71,950100000,1296.71 +1999-10-26,1293.63,1303.46,1281.86,1281.91,878300000,1281.91 +1999-10-25,1301.65,1301.68,1286.07,1293.63,777000000,1293.63 +1999-10-22,1283.61,1308.81,1283.61,1301.65,959200000,1301.65 +1999-10-21,1289.43,1289.43,1265.61,1283.61,1012500000,1283.61 +1999-10-20,1261.32,1289.44,1261.32,1289.43,928800000,1289.43 +1999-10-19,1254.13,1279.32,1254.13,1261.32,905700000,1261.32 +1999-10-18,1247.41,1254.13,1233.70,1254.13,818700000,1254.13 +1999-10-15,1283.42,1283.42,1245.39,1247.41,912600000,1247.41 +1999-10-14,1285.55,1289.63,1267.62,1283.42,892300000,1283.42 +1999-10-13,1313.04,1313.04,1282.80,1285.55,821500000,1285.55 +1999-10-12,1335.21,1335.21,1311.80,1313.04,778300000,1313.04 +1999-10-11,1336.02,1339.23,1332.96,1335.21,655900000,1335.21 +1999-10-08,1317.64,1336.61,1311.88,1336.02,897300000,1336.02 +1999-10-07,1325.40,1328.05,1314.13,1317.64,827800000,1317.64 +1999-10-06,1301.35,1325.46,1301.35,1325.40,895200000,1325.40 +1999-10-05,1304.60,1316.41,1286.44,1301.35,965700000,1301.35 +1999-10-04,1282.81,1304.60,1282.81,1304.60,803300000,1304.60 +1999-10-01,1282.71,1283.17,1265.78,1282.81,896200000,1282.81 +1999-09-30,1268.37,1291.31,1268.37,1282.71,1017600000,1282.71 +1999-09-29,1282.20,1288.83,1268.16,1268.37,856000000,1268.37 +1999-09-28,1283.31,1285.55,1256.26,1282.20,885400000,1282.20 +1999-09-27,1277.36,1295.03,1277.36,1283.31,780600000,1283.31 +1999-09-24,1280.41,1281.17,1263.84,1277.36,872800000,1277.36 +1999-09-23,1310.51,1315.25,1277.30,1280.41,890800000,1280.41 +1999-09-22,1307.58,1316.18,1297.81,1310.51,822200000,1310.51 +1999-09-21,1335.52,1335.53,1301.97,1307.58,817300000,1307.58 +1999-09-20,1335.42,1338.38,1330.61,1335.53,568000000,1335.53 +1999-09-17,1318.48,1337.59,1318.48,1335.42,861900000,1335.42 +1999-09-16,1317.97,1322.51,1299.97,1318.48,739000000,1318.48 +1999-09-15,1336.29,1347.21,1317.97,1317.97,787300000,1317.97 +1999-09-14,1344.13,1344.18,1330.61,1336.29,734500000,1336.29 +1999-09-13,1351.66,1351.66,1341.70,1344.13,657900000,1344.13 +1999-09-10,1347.66,1357.62,1346.20,1351.66,808500000,1351.66 +1999-09-09,1344.15,1347.66,1333.91,1347.66,773900000,1347.66 +1999-09-08,1350.45,1355.18,1337.36,1344.15,791200000,1344.15 +1999-09-07,1357.24,1361.39,1349.59,1350.45,715300000,1350.45 +1999-09-03,1319.11,1357.74,1319.11,1357.24,663200000,1357.24 +1999-09-02,1331.07,1331.07,1304.88,1319.11,687100000,1319.11 +1999-09-01,1320.41,1331.18,1320.39,1331.07,708200000,1331.07 +1999-08-31,1324.02,1333.27,1306.96,1320.41,861700000,1320.41 +1999-08-30,1348.27,1350.70,1322.80,1324.02,597900000,1324.02 +1999-08-27,1362.01,1365.63,1347.35,1348.27,570050000,1348.27 +1999-08-26,1381.79,1381.79,1361.53,1362.01,719000000,1362.01 +1999-08-25,1363.50,1382.84,1359.20,1381.79,864600000,1381.79 +1999-08-24,1360.22,1373.32,1353.63,1363.50,732700000,1363.50 +1999-08-23,1336.61,1360.24,1336.61,1360.22,682600000,1360.22 +1999-08-20,1323.59,1336.61,1323.59,1336.61,661200000,1336.61 +1999-08-19,1332.84,1332.84,1315.35,1323.59,684200000,1323.59 +1999-08-18,1344.16,1344.16,1332.13,1332.84,682800000,1332.84 +1999-08-17,1330.77,1344.16,1328.76,1344.16,691500000,1344.16 +1999-08-16,1327.68,1331.05,1320.51,1330.77,583550000,1330.77 +1999-08-13,1298.16,1327.72,1298.16,1327.68,691700000,1327.68 +1999-08-12,1301.93,1313.61,1298.06,1298.16,745600000,1298.16 +1999-08-11,1281.43,1301.93,1281.43,1301.93,792300000,1301.93 +1999-08-10,1297.80,1298.62,1267.73,1281.43,836200000,1281.43 +1999-08-09,1300.29,1306.68,1295.99,1297.80,684300000,1297.80 +1999-08-06,1313.71,1316.74,1293.19,1300.29,698900000,1300.29 +1999-08-05,1305.33,1313.71,1287.23,1313.71,859300000,1313.71 +1999-08-04,1322.18,1330.16,1304.50,1305.33,789300000,1305.33 +1999-08-03,1328.05,1336.13,1314.91,1322.18,739600000,1322.18 +1999-08-02,1328.72,1344.69,1325.21,1328.05,649550000,1328.05 +1999-07-30,1341.03,1350.92,1328.49,1328.72,736800000,1328.72 +1999-07-29,1365.40,1365.40,1332.82,1341.03,770100000,1341.03 +1999-07-28,1362.84,1370.53,1355.54,1365.40,690900000,1365.40 +1999-07-27,1347.75,1368.70,1347.75,1362.84,723800000,1362.84 +1999-07-26,1356.94,1358.61,1346.20,1347.76,613450000,1347.76 +1999-07-23,1360.97,1367.41,1349.91,1356.94,630580000,1356.94 +1999-07-22,1379.29,1379.29,1353.98,1360.97,771700000,1360.97 +1999-07-21,1377.10,1386.66,1372.63,1379.29,785500000,1379.29 +1999-07-20,1407.65,1407.65,1375.15,1377.10,754800000,1377.10 +1999-07-19,1418.78,1420.33,1404.56,1407.65,642330000,1407.65 +1999-07-16,1409.62,1418.78,1407.07,1418.78,714100000,1418.78 +1999-07-15,1398.17,1409.84,1398.17,1409.62,818800000,1409.62 +1999-07-14,1393.56,1400.05,1386.51,1398.17,756100000,1398.17 +1999-07-13,1399.10,1399.10,1386.84,1393.56,736000000,1393.56 +1999-07-12,1403.28,1406.82,1394.70,1399.10,685300000,1399.10 +1999-07-09,1394.42,1403.28,1394.42,1403.28,701000000,1403.28 +1999-07-08,1395.86,1403.25,1386.69,1394.42,830600000,1394.42 +1999-07-07,1388.12,1395.88,1384.95,1395.86,791200000,1395.86 +1999-07-06,1391.22,1405.29,1387.08,1388.12,722900000,1388.12 +1999-07-02,1380.96,1391.22,1379.57,1391.22,613570000,1391.22 +1999-07-01,1372.71,1382.80,1360.80,1380.96,843400000,1380.96 +1999-06-30,1351.45,1372.93,1338.78,1372.71,1117000000,1372.71 +1999-06-29,1331.35,1351.51,1328.40,1351.45,820100000,1351.45 +1999-06-28,1315.31,1333.68,1315.31,1331.35,652910000,1331.35 +1999-06-25,1315.78,1329.13,1312.64,1315.31,623460000,1315.31 +1999-06-24,1333.06,1333.06,1308.47,1315.78,690400000,1315.78 +1999-06-23,1335.87,1335.88,1322.55,1333.06,731800000,1333.06 +1999-06-22,1349.00,1351.12,1335.52,1335.88,716500000,1335.88 +1999-06-21,1342.84,1349.06,1337.63,1349.00,686600000,1349.00 +1999-06-18,1339.90,1344.48,1333.52,1342.84,914500000,1342.84 +1999-06-17,1330.41,1343.54,1322.75,1339.90,700300000,1339.90 +1999-06-16,1301.16,1332.83,1301.16,1330.41,806800000,1330.41 +1999-06-15,1294.00,1310.76,1294.00,1301.16,696600000,1301.16 +1999-06-14,1293.64,1301.99,1292.20,1294.00,669400000,1294.00 +1999-06-11,1302.82,1311.97,1287.88,1293.64,698200000,1293.64 +1999-06-10,1318.64,1318.64,1293.28,1302.82,716500000,1302.82 +1999-06-09,1317.33,1326.01,1314.73,1318.64,662000000,1318.64 +1999-06-08,1334.52,1334.52,1312.83,1317.33,685900000,1317.33 +1999-06-07,1327.75,1336.42,1325.89,1334.52,664300000,1334.52 +1999-06-04,1299.54,1327.75,1299.54,1327.75,694500000,1327.75 +1999-06-03,1294.81,1304.15,1294.20,1299.54,719600000,1299.54 +1999-06-02,1294.26,1297.10,1277.47,1294.81,728000000,1294.81 +1999-06-01,1301.84,1301.84,1281.44,1294.26,683800000,1294.26 +1999-05-28,1281.41,1304.00,1281.41,1301.84,649960000,1301.84 +1999-05-27,1304.76,1304.76,1277.31,1281.41,811400000,1281.41 +1999-05-26,1284.40,1304.85,1278.43,1304.76,870800000,1304.76 +1999-05-25,1306.65,1317.52,1284.38,1284.40,826700000,1284.40 +1999-05-24,1330.29,1333.02,1303.53,1306.65,754700000,1306.65 +1999-05-21,1338.83,1340.88,1326.19,1330.29,686600000,1330.29 +1999-05-20,1344.23,1350.49,1338.83,1338.83,752200000,1338.83 +1999-05-19,1333.32,1344.23,1327.05,1344.23,801100000,1344.23 +1999-05-18,1339.49,1345.44,1323.46,1333.32,753400000,1333.32 +1999-05-17,1337.80,1339.95,1321.19,1339.49,665500000,1339.49 +1999-05-14,1367.56,1367.56,1332.63,1337.80,727800000,1337.80 +1999-05-13,1364.00,1375.98,1364.00,1367.56,796900000,1367.56 +1999-05-12,1355.61,1367.36,1333.10,1364.00,825500000,1364.00 +1999-05-11,1340.30,1360.00,1340.30,1355.61,836100000,1355.61 +1999-05-10,1345.00,1352.01,1334.00,1340.30,773300000,1340.30 +1999-05-07,1332.05,1345.99,1332.05,1345.00,814900000,1345.00 +1999-05-06,1347.31,1348.36,1322.56,1332.05,875400000,1332.05 +1999-05-05,1332.00,1347.32,1317.44,1347.31,913500000,1347.31 +1999-05-04,1354.63,1354.64,1330.64,1332.00,933100000,1332.00 +1999-05-03,1335.18,1354.63,1329.01,1354.63,811400000,1354.63 +1999-04-30,1342.83,1351.83,1314.58,1335.18,936500000,1335.18 +1999-04-29,1350.91,1356.75,1336.81,1342.83,1003600000,1342.83 +1999-04-28,1362.80,1368.62,1348.29,1350.91,951700000,1350.91 +1999-04-27,1360.04,1371.56,1356.55,1362.80,891700000,1362.80 +1999-04-26,1356.85,1363.56,1353.72,1360.04,712000000,1360.04 +1999-04-23,1358.83,1363.65,1348.45,1356.85,744900000,1356.85 +1999-04-22,1336.12,1358.84,1336.12,1358.82,927900000,1358.82 +1999-04-21,1306.17,1336.12,1301.84,1336.12,920000000,1336.12 +1999-04-20,1289.48,1306.30,1284.21,1306.17,985400000,1306.17 +1999-04-19,1319.00,1340.10,1284.48,1289.48,1214400000,1289.48 +1999-04-16,1322.86,1325.03,1311.40,1319.00,1002300000,1319.00 +1999-04-15,1328.44,1332.41,1308.38,1322.85,1089800000,1322.85 +1999-04-14,1349.82,1357.24,1326.41,1328.44,952000000,1328.44 +1999-04-13,1358.64,1362.38,1344.03,1349.82,810900000,1349.82 +1999-04-12,1348.35,1358.69,1333.48,1358.63,810800000,1358.63 +1999-04-09,1343.98,1351.22,1335.24,1348.35,716100000,1348.35 +1999-04-08,1326.89,1344.08,1321.60,1343.98,850500000,1343.98 +1999-04-07,1317.89,1329.58,1312.59,1326.89,816400000,1326.89 +1999-04-06,1321.12,1326.76,1311.07,1317.89,787500000,1317.89 +1999-04-05,1293.72,1321.12,1293.72,1321.12,695800000,1321.12 +1999-04-01,1286.37,1294.54,1282.56,1293.72,703000000,1293.72 +1999-03-31,1300.75,1313.60,1285.87,1286.37,924300000,1286.37 +1999-03-30,1310.17,1310.17,1295.47,1300.75,729000000,1300.75 +1999-03-29,1282.80,1311.76,1282.80,1310.17,747900000,1310.17 +1999-03-26,1289.99,1289.99,1277.25,1282.80,707200000,1282.80 +1999-03-25,1268.59,1289.99,1268.59,1289.99,784200000,1289.99 +1999-03-24,1262.14,1269.02,1256.43,1268.59,761900000,1268.59 +1999-03-23,1297.01,1297.01,1257.46,1262.14,811300000,1262.14 +1999-03-22,1299.29,1303.84,1294.26,1297.01,658200000,1297.01 +1999-03-19,1316.55,1323.82,1298.92,1299.29,914700000,1299.29 +1999-03-18,1297.82,1317.62,1294.75,1316.55,831000000,1316.55 +1999-03-17,1306.38,1306.55,1292.63,1297.82,752300000,1297.82 +1999-03-16,1307.26,1311.11,1302.29,1306.38,751900000,1306.38 +1999-03-15,1294.59,1307.47,1291.03,1307.26,727200000,1307.26 +1999-03-12,1297.68,1304.42,1289.17,1294.59,825800000,1294.59 +1999-03-11,1286.84,1306.43,1286.84,1297.68,904800000,1297.68 +1999-03-10,1279.84,1287.02,1275.16,1286.84,841900000,1286.84 +1999-03-09,1282.73,1293.74,1275.11,1279.84,803700000,1279.84 +1999-03-08,1275.47,1282.74,1271.58,1282.73,714600000,1282.73 +1999-03-05,1246.64,1275.73,1246.64,1275.47,834900000,1275.47 +1999-03-04,1227.70,1247.74,1227.70,1246.64,770900000,1246.64 +1999-03-03,1225.50,1231.63,1216.03,1227.70,751700000,1227.70 +1999-03-02,1236.16,1248.31,1221.87,1225.50,753600000,1225.50 +1999-03-01,1238.33,1238.70,1221.88,1236.16,699500000,1236.16 +1999-02-26,1245.02,1246.73,1226.24,1238.33,784600000,1238.33 +1999-02-25,1253.41,1253.41,1225.01,1245.02,740500000,1245.02 +1999-02-24,1271.18,1283.84,1251.94,1253.41,782000000,1253.41 +1999-02-23,1272.14,1280.38,1263.36,1271.18,781100000,1271.18 +1999-02-22,1239.22,1272.22,1239.22,1272.14,718500000,1272.14 +1999-02-19,1237.28,1247.91,1232.03,1239.22,700000000,1239.22 +1999-02-18,1224.03,1239.13,1220.70,1237.28,742400000,1237.28 +1999-02-17,1241.87,1249.31,1220.92,1224.03,735100000,1224.03 +1999-02-16,1230.13,1252.17,1230.13,1241.87,653760000,1241.87 +1999-02-12,1254.04,1254.04,1225.53,1230.13,691500000,1230.13 +1999-02-11,1223.55,1254.05,1223.19,1254.04,815800000,1254.04 +1999-02-10,1216.14,1226.78,1211.89,1223.55,721400000,1223.55 +1999-02-09,1243.77,1243.97,1215.63,1216.14,736000000,1216.14 +1999-02-08,1239.40,1246.93,1231.98,1243.77,705400000,1243.77 +1999-02-05,1248.49,1251.86,1232.28,1239.40,872000000,1239.40 +1999-02-04,1272.07,1272.23,1248.36,1248.49,854400000,1248.49 +1999-02-03,1261.99,1276.04,1255.27,1272.07,876500000,1272.07 +1999-02-02,1273.00,1273.49,1247.56,1261.99,845500000,1261.99 +1999-02-01,1279.64,1283.75,1271.31,1273.00,799400000,1273.00 +1999-01-29,1265.37,1280.37,1255.18,1279.64,917000000,1279.64 +1999-01-28,1243.17,1266.40,1243.17,1265.37,848800000,1265.37 +1999-01-27,1252.31,1262.61,1242.82,1243.17,893800000,1243.17 +1999-01-26,1233.98,1253.25,1233.98,1252.31,896400000,1252.31 +1999-01-25,1225.19,1233.98,1219.46,1233.98,723900000,1233.98 +1999-01-22,1235.16,1236.41,1217.97,1225.19,785900000,1225.19 +1999-01-21,1256.62,1256.94,1232.19,1235.16,871800000,1235.16 +1999-01-20,1252.00,1274.07,1251.54,1256.62,905700000,1256.62 +1999-01-19,1243.26,1253.27,1234.91,1252.00,785500000,1252.00 +1999-01-15,1212.19,1243.26,1212.19,1243.26,798100000,1243.26 +1999-01-14,1234.40,1236.81,1209.54,1212.19,797200000,1212.19 +1999-01-13,1239.51,1247.75,1205.46,1234.40,931500000,1234.40 +1999-01-12,1263.88,1264.45,1238.29,1239.51,800200000,1239.51 +1999-01-11,1275.09,1276.22,1253.34,1263.88,818000000,1263.88 +1999-01-08,1269.73,1278.24,1261.82,1275.09,937800000,1275.09 +1999-01-07,1272.34,1272.34,1257.68,1269.73,863000000,1269.73 +1999-01-06,1244.78,1272.50,1244.78,1272.34,986900000,1272.34 +1999-01-05,1228.10,1246.11,1228.10,1244.78,775000000,1244.78 +1999-01-04,1229.23,1248.81,1219.10,1228.10,877000000,1228.10 +1998-12-31,1231.93,1237.18,1224.96,1229.23,719200000,1229.23 +1998-12-30,1241.81,1244.93,1231.20,1231.93,594220000,1231.93 +1998-12-29,1225.49,1241.86,1220.78,1241.81,586490000,1241.81 +1998-12-28,1226.27,1231.52,1221.17,1225.49,531560000,1225.49 +1998-12-24,1228.54,1229.72,1224.85,1226.27,246980000,1226.27 +1998-12-23,1203.57,1229.89,1203.57,1228.54,697500000,1228.54 +1998-12-22,1202.84,1209.22,1192.72,1203.57,680500000,1203.57 +1998-12-21,1188.03,1210.88,1188.03,1202.84,744800000,1202.84 +1998-12-18,1179.98,1188.89,1178.27,1188.03,839600000,1188.03 +1998-12-17,1161.94,1180.03,1161.94,1179.98,739400000,1179.98 +1998-12-16,1162.83,1166.29,1154.69,1161.94,725500000,1161.94 +1998-12-15,1141.20,1162.83,1141.20,1162.83,777900000,1162.83 +1998-12-14,1166.46,1166.46,1136.89,1141.20,741800000,1141.20 +1998-12-11,1165.02,1167.89,1153.19,1166.46,688900000,1166.46 +1998-12-10,1183.49,1183.77,1163.75,1165.02,748600000,1165.02 +1998-12-09,1181.38,1185.22,1175.89,1183.49,694200000,1183.49 +1998-12-08,1187.70,1193.53,1172.78,1181.38,727700000,1181.38 +1998-12-07,1176.74,1188.96,1176.71,1187.70,671200000,1187.70 +1998-12-04,1150.14,1176.74,1150.14,1176.74,709700000,1176.74 +1998-12-03,1171.25,1176.99,1149.61,1150.14,799100000,1150.14 +1998-12-02,1175.28,1175.28,1157.76,1171.25,727400000,1171.25 +1998-12-01,1163.63,1175.89,1150.31,1175.28,789200000,1175.28 +1998-11-30,1192.33,1192.72,1163.63,1163.63,687900000,1163.63 +1998-11-27,1186.87,1192.97,1186.83,1192.33,256950000,1192.33 +1998-11-25,1182.99,1187.16,1179.37,1186.87,583580000,1186.87 +1998-11-24,1188.21,1191.30,1181.81,1182.99,766200000,1182.99 +1998-11-23,1163.55,1188.21,1163.55,1188.21,774100000,1188.21 +1998-11-20,1152.61,1163.55,1152.61,1163.55,721200000,1163.55 +1998-11-19,1144.48,1155.10,1144.42,1152.61,671000000,1152.61 +1998-11-18,1139.32,1144.52,1133.07,1144.48,652510000,1144.48 +1998-11-17,1135.87,1151.71,1129.67,1139.32,705200000,1139.32 +1998-11-16,1125.72,1138.72,1125.72,1135.87,615580000,1135.87 +1998-11-13,1117.69,1126.34,1116.76,1125.72,602270000,1125.72 +1998-11-12,1120.97,1126.57,1115.55,1117.69,662300000,1117.69 +1998-11-11,1128.26,1136.25,1117.40,1120.97,715700000,1120.97 +1998-11-10,1130.20,1135.37,1122.80,1128.26,671300000,1128.26 +1998-11-09,1141.01,1141.01,1123.17,1130.20,592990000,1130.20 +1998-11-06,1133.85,1141.30,1131.18,1141.01,683100000,1141.01 +1998-11-05,1118.67,1133.88,1109.55,1133.85,770200000,1133.85 +1998-11-04,1110.84,1127.18,1110.59,1118.67,861100000,1118.67 +1998-11-03,1111.60,1115.02,1106.42,1110.84,704300000,1110.84 +1998-11-02,1098.67,1114.44,1098.67,1111.60,753800000,1111.60 +1998-10-30,1085.93,1103.78,1085.93,1098.67,785000000,1098.67 +1998-10-29,1068.09,1086.11,1065.95,1085.93,699400000,1085.93 +1998-10-28,1065.34,1072.79,1059.65,1068.09,677500000,1068.09 +1998-10-27,1072.32,1087.08,1063.06,1065.34,764500000,1065.34 +1998-10-26,1070.67,1081.23,1068.17,1072.32,609910000,1072.32 +1998-10-23,1078.48,1078.48,1067.43,1070.67,637640000,1070.67 +1998-10-22,1069.92,1080.43,1061.47,1078.48,754900000,1078.48 +1998-10-21,1063.93,1073.61,1058.08,1069.92,745100000,1069.92 +1998-10-20,1062.39,1084.06,1060.61,1063.93,958200000,1063.93 +1998-10-19,1056.42,1065.21,1054.23,1062.39,738600000,1062.39 +1998-10-16,1047.49,1062.65,1047.49,1056.42,1042200000,1056.42 +1998-10-15,1005.53,1053.09,1000.12,1047.49,937600000,1047.49 +1998-10-14,994.80,1014.42,987.80,1005.53,791200000,1005.53 +1998-10-13,997.71,1000.78,987.55,994.80,733300000,994.80 +1998-10-12,984.39,1010.71,984.39,997.71,691100000,997.71 +1998-10-09,959.44,984.42,953.04,984.39,878100000,984.39 +1998-10-08,970.68,970.68,923.32,959.44,1114600000,959.44 +1998-10-07,984.59,995.66,957.15,970.68,977000000,970.68 +1998-10-06,988.56,1008.77,974.81,984.59,845700000,984.59 +1998-10-05,1002.60,1002.60,964.72,988.56,817500000,988.56 +1998-10-02,986.39,1005.45,971.69,1002.60,902900000,1002.60 +1998-10-01,1017.01,1017.01,981.29,986.39,899700000,986.39 +1998-09-30,1049.02,1049.02,1015.73,1017.01,800100000,1017.01 +1998-09-29,1048.69,1056.31,1039.88,1049.02,760100000,1049.02 +1998-09-28,1044.75,1061.46,1042.23,1048.69,690500000,1048.69 +1998-09-25,1042.72,1051.89,1028.49,1044.75,736800000,1044.75 +1998-09-24,1066.09,1066.11,1033.04,1042.72,805900000,1042.72 +1998-09-23,1029.63,1066.09,1029.63,1066.09,899700000,1066.09 +1998-09-22,1023.89,1033.89,1021.96,1029.63,694900000,1029.63 +1998-09-21,1020.09,1026.02,993.82,1023.89,609880000,1023.89 +1998-09-18,1018.87,1022.01,1011.86,1020.09,794700000,1020.09 +1998-09-17,1045.48,1045.48,1016.05,1018.87,694500000,1018.87 +1998-09-16,1037.68,1046.07,1029.31,1045.48,797500000,1045.48 +1998-09-15,1029.72,1037.90,1021.42,1037.68,724600000,1037.68 +1998-09-14,1009.06,1038.38,1009.06,1029.72,714400000,1029.72 +1998-09-11,980.19,1009.06,969.71,1009.06,819100000,1009.06 +1998-09-10,1006.20,1006.20,968.64,980.19,880300000,980.19 +1998-09-09,1023.46,1027.72,1004.56,1006.20,704300000,1006.20 +1998-09-08,973.89,1023.46,973.89,1023.46,814800000,1023.46 +1998-09-04,982.26,991.41,956.51,973.89,780300000,973.89 +1998-09-03,990.47,990.47,969.32,982.26,880500000,982.26 +1998-09-02,994.26,1013.19,988.40,990.48,894600000,990.48 +1998-09-01,957.28,1000.71,939.98,994.26,1216600000,994.26 +1998-08-31,1027.14,1033.47,957.28,957.28,917500000,957.28 +1998-08-28,1042.59,1051.80,1021.04,1027.14,840300000,1027.14 +1998-08-27,1084.19,1084.19,1037.61,1042.59,938600000,1042.59 +1998-08-26,1092.85,1092.85,1075.91,1084.19,674100000,1084.19 +1998-08-25,1088.14,1106.64,1085.53,1092.85,664900000,1092.85 +1998-08-24,1081.24,1093.82,1081.24,1088.14,558100000,1088.14 +1998-08-21,1091.60,1091.60,1054.92,1081.24,725700000,1081.24 +1998-08-20,1098.06,1098.79,1089.55,1091.60,621630000,1091.60 +1998-08-19,1101.20,1106.32,1094.93,1098.06,633630000,1098.06 +1998-08-18,1083.67,1101.72,1083.67,1101.20,690600000,1101.20 +1998-08-17,1062.75,1083.67,1055.08,1083.67,584380000,1083.67 +1998-08-14,1074.91,1083.92,1057.22,1062.75,644030000,1062.75 +1998-08-13,1084.22,1091.50,1074.91,1074.91,660700000,1074.91 +1998-08-12,1068.98,1084.70,1068.98,1084.22,711700000,1084.22 +1998-08-11,1083.14,1083.14,1054.00,1068.98,774400000,1068.98 +1998-08-10,1089.45,1092.82,1081.76,1083.14,579180000,1083.14 +1998-08-07,1089.63,1102.54,1084.72,1089.45,759100000,1089.45 +1998-08-06,1081.43,1090.95,1074.94,1089.63,768400000,1089.63 +1998-08-05,1072.12,1084.80,1057.35,1081.43,851600000,1081.43 +1998-08-04,1112.44,1119.73,1071.82,1072.12,852600000,1072.12 +1998-08-03,1120.67,1121.79,1110.39,1112.44,620400000,1112.44 +1998-07-31,1142.95,1142.97,1114.30,1120.67,645910000,1120.67 +1998-07-30,1125.21,1143.07,1125.21,1142.95,687400000,1142.95 +1998-07-29,1130.24,1138.56,1121.98,1125.21,644350000,1125.21 +1998-07-28,1147.27,1147.27,1119.44,1130.24,703600000,1130.24 +1998-07-27,1140.80,1147.27,1128.19,1147.27,619990000,1147.27 +1998-07-24,1139.75,1150.14,1129.11,1140.80,698600000,1140.80 +1998-07-23,1164.08,1164.35,1139.75,1139.75,741600000,1139.75 +1998-07-22,1165.07,1167.67,1155.20,1164.08,739800000,1164.08 +1998-07-21,1184.10,1187.37,1163.05,1165.07,659700000,1165.07 +1998-07-20,1186.75,1190.58,1179.19,1184.10,560580000,1184.10 +1998-07-17,1183.99,1188.10,1182.42,1186.75,618030000,1186.75 +1998-07-16,1174.81,1184.02,1170.40,1183.99,677800000,1183.99 +1998-07-15,1177.58,1181.48,1174.73,1174.81,723900000,1174.81 +1998-07-14,1165.19,1179.76,1165.19,1177.58,700300000,1177.58 +1998-07-13,1164.33,1166.98,1160.21,1165.19,574880000,1165.19 +1998-07-10,1158.57,1166.93,1150.88,1164.33,576080000,1164.33 +1998-07-09,1166.38,1166.38,1156.03,1158.56,663600000,1158.56 +1998-07-08,1154.66,1166.89,1154.66,1166.38,607230000,1166.38 +1998-07-07,1157.33,1159.81,1152.85,1154.66,624890000,1154.66 +1998-07-06,1146.42,1157.33,1145.03,1157.33,514750000,1157.33 +1998-07-02,1148.56,1148.56,1142.99,1146.42,510210000,1146.42 +1998-07-01,1133.84,1148.56,1133.84,1148.56,701600000,1148.56 +1998-06-30,1138.49,1140.80,1131.98,1133.84,757200000,1133.84 +1998-06-29,1133.20,1145.15,1133.20,1138.49,564350000,1138.49 +1998-06-26,1129.28,1136.83,1129.28,1133.20,520050000,1133.20 +1998-06-25,1132.88,1142.04,1127.60,1129.28,669900000,1129.28 +1998-06-24,1119.49,1134.40,1115.10,1132.88,714900000,1132.88 +1998-06-23,1103.21,1119.49,1103.21,1119.49,657100000,1119.49 +1998-06-22,1100.65,1109.01,1099.42,1103.21,531550000,1103.21 +1998-06-19,1106.37,1111.25,1097.10,1100.65,715500000,1100.65 +1998-06-18,1107.11,1109.36,1103.71,1106.37,590440000,1106.37 +1998-06-17,1087.59,1112.87,1087.58,1107.11,744400000,1107.11 +1998-06-16,1077.01,1087.59,1074.67,1087.59,664600000,1087.59 +1998-06-15,1098.84,1098.84,1077.01,1077.01,595820000,1077.01 +1998-06-12,1094.58,1098.84,1080.83,1098.84,633300000,1098.84 +1998-06-11,1112.28,1114.20,1094.28,1094.58,627470000,1094.58 +1998-06-10,1118.41,1126.00,1110.27,1112.28,609410000,1112.28 +1998-06-09,1115.72,1119.92,1111.31,1118.41,563610000,1118.41 +1998-06-08,1113.86,1119.70,1113.31,1115.72,543390000,1115.72 +1998-06-05,1095.10,1113.88,1094.83,1113.86,558440000,1113.86 +1998-06-04,1082.73,1095.93,1078.10,1094.83,577470000,1094.83 +1998-06-03,1093.22,1097.43,1081.09,1082.73,584480000,1082.73 +1998-06-02,1090.98,1098.71,1089.67,1093.22,590930000,1093.22 +1998-06-01,1090.82,1097.85,1084.22,1090.98,537660000,1090.98 +1998-05-29,1097.60,1104.16,1090.82,1090.82,556780000,1090.82 +1998-05-28,1092.23,1099.73,1089.06,1097.60,588900000,1097.60 +1998-05-27,1094.02,1094.44,1074.39,1092.23,682040000,1092.23 +1998-05-26,1110.47,1116.79,1094.01,1094.02,541410000,1094.02 +1998-05-22,1114.64,1116.89,1107.99,1110.47,444070000,1110.47 +1998-05-21,1119.06,1124.45,1111.94,1114.64,551970000,1114.64 +1998-05-20,1109.52,1119.08,1107.51,1119.06,587240000,1119.06 +1998-05-19,1105.82,1113.50,1105.82,1109.52,566020000,1109.52 +1998-05-18,1108.73,1112.44,1097.99,1105.82,519100000,1105.82 +1998-05-15,1117.37,1118.66,1107.11,1108.73,621990000,1108.73 +1998-05-14,1118.86,1124.03,1112.43,1117.37,578380000,1117.37 +1998-05-13,1115.79,1122.22,1114.93,1118.86,600010000,1118.86 +1998-05-12,1106.64,1115.96,1102.78,1115.79,604420000,1115.79 +1998-05-11,1108.14,1119.13,1103.72,1106.64,560840000,1106.64 +1998-05-08,1095.14,1111.42,1094.53,1108.14,567890000,1108.14 +1998-05-07,1104.92,1105.58,1094.59,1095.14,582240000,1095.14 +1998-05-06,1115.50,1118.39,1104.64,1104.92,606540000,1104.92 +1998-05-05,1122.07,1122.07,1111.16,1115.50,583630000,1115.50 +1998-05-04,1121.00,1130.52,1121.00,1122.07,551700000,1122.07 +1998-05-01,1111.75,1121.02,1111.75,1121.00,581970000,1121.00 +1998-04-30,1094.63,1116.97,1094.63,1111.75,695600000,1111.75 +1998-04-29,1085.11,1098.24,1084.65,1094.62,638790000,1094.62 +1998-04-28,1086.54,1095.94,1081.49,1085.11,678600000,1085.11 +1998-04-27,1107.90,1107.90,1076.70,1086.54,685960000,1086.54 +1998-04-24,1119.58,1122.81,1104.77,1107.90,633890000,1107.90 +1998-04-23,1130.54,1130.54,1117.49,1119.58,653190000,1119.58 +1998-04-22,1126.67,1132.98,1126.29,1130.54,696740000,1130.54 +1998-04-21,1123.65,1129.65,1119.54,1126.67,675640000,1126.67 +1998-04-20,1122.72,1124.88,1118.43,1123.65,595190000,1123.65 +1998-04-17,1108.17,1122.72,1104.95,1122.72,672290000,1122.72 +1998-04-16,1119.32,1119.32,1105.27,1108.17,699570000,1108.17 +1998-04-15,1115.75,1119.90,1112.24,1119.32,685020000,1119.32 +1998-04-14,1109.69,1115.95,1109.48,1115.75,613730000,1115.75 +1998-04-13,1110.67,1110.75,1100.60,1109.69,564480000,1109.69 +1998-04-09,1101.65,1111.45,1101.65,1110.67,548940000,1110.67 +1998-04-08,1109.55,1111.60,1098.21,1101.65,616330000,1101.65 +1998-04-07,1121.38,1121.38,1102.44,1109.55,670760000,1109.55 +1998-04-06,1122.70,1131.99,1121.37,1121.38,625810000,1121.38 +1998-04-03,1120.01,1126.36,1118.12,1122.70,653880000,1122.70 +1998-04-02,1108.15,1121.01,1107.89,1120.01,674340000,1120.01 +1998-04-01,1101.75,1109.19,1095.29,1108.15,677310000,1108.15 +1998-03-31,1093.55,1110.13,1093.55,1101.75,674930000,1101.75 +1998-03-30,1095.44,1099.10,1090.02,1093.60,497400000,1093.60 +1998-03-27,1100.80,1107.18,1091.14,1095.44,582190000,1095.44 +1998-03-26,1101.93,1106.28,1097.00,1100.80,606770000,1100.80 +1998-03-25,1105.65,1113.07,1092.84,1101.93,676550000,1101.93 +1998-03-24,1095.55,1106.75,1095.55,1105.65,605720000,1105.65 +1998-03-23,1099.16,1101.16,1094.25,1095.55,631350000,1095.55 +1998-03-20,1089.74,1101.04,1089.39,1099.16,717310000,1099.16 +1998-03-19,1085.52,1089.74,1084.30,1089.74,598240000,1089.74 +1998-03-18,1080.45,1085.52,1077.77,1085.52,632690000,1085.52 +1998-03-17,1079.27,1080.52,1073.29,1080.45,680960000,1080.45 +1998-03-16,1068.61,1079.46,1068.61,1079.27,548980000,1079.27 +1998-03-13,1069.92,1075.86,1066.57,1068.61,597800000,1068.61 +1998-03-12,1068.47,1071.87,1063.54,1069.92,594940000,1069.92 +1998-03-11,1064.25,1069.18,1064.22,1068.47,655260000,1068.47 +1998-03-10,1052.31,1064.59,1052.31,1064.25,631920000,1064.25 +1998-03-09,1055.69,1058.55,1050.02,1052.31,624700000,1052.31 +1998-03-06,1035.05,1055.69,1035.05,1055.69,665500000,1055.69 +1998-03-05,1047.33,1047.33,1030.87,1035.05,648270000,1035.05 +1998-03-04,1052.02,1052.02,1042.74,1047.33,644280000,1047.33 +1998-03-03,1047.70,1052.02,1043.41,1052.02,612360000,1052.02 +1998-03-02,1049.34,1053.98,1044.70,1047.70,591470000,1047.70 +1998-02-27,1048.67,1051.66,1044.40,1049.34,574480000,1049.34 +1998-02-26,1042.90,1048.68,1039.85,1048.67,646280000,1048.67 +1998-02-25,1030.56,1045.79,1030.56,1042.90,611350000,1042.90 +1998-02-24,1038.14,1038.73,1028.89,1030.56,589880000,1030.56 +1998-02-23,1034.21,1038.68,1031.76,1038.14,550730000,1038.14 +1998-02-20,1028.28,1034.21,1022.69,1034.21,594300000,1034.21 +1998-02-19,1032.08,1032.93,1026.62,1028.28,581820000,1028.28 +1998-02-18,1022.76,1032.08,1021.70,1032.08,606000000,1032.08 +1998-02-17,1020.09,1028.02,1020.09,1022.76,605890000,1022.76 +1998-02-13,1024.14,1024.14,1017.71,1020.09,531940000,1020.09 +1998-02-12,1020.01,1026.30,1008.55,1024.14,611480000,1024.14 +1998-02-11,1019.01,1020.71,1016.38,1020.01,599300000,1020.01 +1998-02-10,1010.74,1022.15,1010.71,1019.01,642800000,1019.01 +1998-02-09,1012.46,1015.33,1006.28,1010.74,524810000,1010.74 +1998-02-06,1003.54,1013.07,1003.36,1012.46,569650000,1012.46 +1998-02-05,1006.90,1013.51,1000.27,1003.54,703980000,1003.54 +1998-02-04,1006.00,1009.52,999.43,1006.90,695420000,1006.90 +1998-02-03,1001.27,1006.13,996.90,1006.00,692120000,1006.00 +1998-02-02,980.28,1002.48,980.28,1001.27,724320000,1001.27 +1998-01-30,985.49,987.41,979.63,980.28,613380000,980.28 +1998-01-29,977.46,992.65,975.21,985.49,750760000,985.49 +1998-01-28,969.02,978.63,969.02,977.46,708470000,977.46 +1998-01-27,956.95,973.23,956.26,969.02,679140000,969.02 +1998-01-26,957.59,963.04,954.24,956.95,555080000,956.95 +1998-01-23,963.04,966.44,950.86,957.59,635770000,957.59 +1998-01-22,970.81,970.81,959.49,963.04,646570000,963.04 +1998-01-21,978.60,978.60,963.29,970.81,626160000,970.81 +1998-01-20,961.51,978.60,961.48,978.60,644790000,978.60 +1998-01-16,950.73,965.12,950.73,961.51,670080000,961.51 +1998-01-15,957.94,957.94,950.27,950.73,569050000,950.73 +1998-01-14,952.12,958.12,948.00,957.94,603280000,957.94 +1998-01-13,939.21,952.14,939.21,952.12,646740000,952.12 +1998-01-12,927.69,939.25,912.83,939.21,705450000,939.21 +1998-01-09,956.05,956.05,921.72,927.69,746420000,927.69 +1998-01-08,964.00,964.00,955.04,956.05,652140000,956.05 +1998-01-07,966.58,966.58,952.67,964.00,667390000,964.00 +1998-01-06,977.07,977.07,962.68,966.58,618360000,966.58 +1998-01-05,975.04,982.63,969.00,977.07,628070000,977.07 +1998-01-02,970.43,975.04,965.73,975.04,366730000,975.04 +1997-12-31,970.84,975.02,967.41,970.43,467280000,970.43 +1997-12-30,953.35,970.84,953.35,970.84,499500000,970.84 +1997-12-29,936.46,953.95,936.46,953.35,443160000,953.35 +1997-12-26,932.70,939.99,932.70,936.46,154900000,936.46 +1997-12-24,939.13,942.88,932.70,932.70,265980000,932.70 +1997-12-23,953.70,954.51,938.91,939.13,515070000,939.13 +1997-12-22,946.78,956.73,946.25,953.70,530670000,953.70 +1997-12-19,955.30,955.30,924.92,946.78,793200000,946.78 +1997-12-18,965.54,965.54,950.55,955.30,618870000,955.30 +1997-12-17,968.04,974.30,964.25,965.54,618900000,965.54 +1997-12-16,963.39,973.00,963.39,968.04,623320000,968.04 +1997-12-15,953.39,965.96,953.39,963.39,597150000,963.39 +1997-12-12,954.94,961.32,947.00,953.39,579280000,953.39 +1997-12-11,969.79,969.79,951.89,954.94,631770000,954.94 +1997-12-10,975.78,975.78,962.68,969.79,602290000,969.79 +1997-12-09,982.37,982.37,973.81,975.78,539130000,975.78 +1997-12-08,983.79,985.67,979.57,982.37,490320000,982.37 +1997-12-05,973.10,986.25,969.10,983.79,563590000,983.79 +1997-12-04,976.77,983.36,971.37,973.10,633470000,973.10 +1997-12-03,971.68,980.81,966.16,976.77,624610000,976.77 +1997-12-02,974.78,976.20,969.83,971.68,576120000,971.68 +1997-12-01,955.40,974.77,955.40,974.77,590300000,974.77 +1997-11-28,951.64,959.13,951.64,955.40,189070000,955.40 +1997-11-26,950.82,956.47,950.82,951.64,487750000,951.64 +1997-11-25,946.67,954.47,944.71,950.82,587890000,950.82 +1997-11-24,963.09,963.09,945.22,946.67,514920000,946.67 +1997-11-21,958.98,964.55,954.60,963.09,611000000,963.09 +1997-11-20,944.59,961.83,944.59,958.98,602610000,958.98 +1997-11-19,938.23,947.28,934.83,944.59,542720000,944.59 +1997-11-18,946.20,947.65,937.43,938.23,521380000,938.23 +1997-11-17,928.35,949.66,928.35,946.20,576540000,946.20 +1997-11-14,916.66,930.44,915.34,928.35,635760000,928.35 +1997-11-13,905.96,917.79,900.61,916.66,653960000,916.66 +1997-11-12,923.78,923.88,905.34,905.96,585340000,905.96 +1997-11-11,921.13,928.29,919.63,923.78,435660000,923.78 +1997-11-10,927.51,935.90,920.26,921.13,464140000,921.13 +1997-11-07,938.03,938.03,915.39,927.51,569980000,927.51 +1997-11-06,942.76,942.85,934.16,938.03,522890000,938.03 +1997-11-05,940.76,949.62,938.16,942.76,565680000,942.76 +1997-11-04,938.99,941.40,932.66,940.76,541590000,940.76 +1997-11-03,914.62,939.02,914.62,938.99,564740000,938.99 +1997-10-31,903.68,919.93,903.68,914.62,638070000,914.62 +1997-10-30,919.16,923.28,903.68,903.68,712230000,903.68 +1997-10-29,921.85,935.24,913.88,919.16,777660000,919.16 +1997-10-28,876.99,923.09,855.27,921.85,1202550000,921.85 +1997-10-27,941.64,941.64,876.73,876.99,693730000,876.99 +1997-10-24,950.69,960.04,937.55,941.64,677630000,941.64 +1997-10-23,968.49,968.49,944.16,950.69,673270000,950.69 +1997-10-22,972.28,972.61,965.66,968.49,613490000,968.49 +1997-10-21,955.61,972.56,955.61,972.28,582310000,972.28 +1997-10-20,944.16,955.72,941.43,955.61,483880000,955.61 +1997-10-17,955.23,955.23,931.58,944.16,624980000,944.16 +1997-10-16,965.72,973.38,950.77,955.25,597010000,955.25 +1997-10-15,970.28,970.28,962.75,965.72,505310000,965.72 +1997-10-14,968.10,972.86,961.87,970.28,510330000,970.28 +1997-10-13,966.98,973.46,966.95,968.10,354800000,968.10 +1997-10-10,970.62,970.62,963.42,966.98,500680000,966.98 +1997-10-09,973.84,974.72,963.34,970.62,551840000,970.62 +1997-10-08,983.12,983.12,968.65,973.84,573110000,973.84 +1997-10-07,972.69,983.12,971.95,983.12,551970000,983.12 +1997-10-06,965.03,974.16,965.03,972.69,495620000,972.69 +1997-10-03,960.46,975.47,955.13,965.03,623370000,965.03 +1997-10-02,955.41,960.46,952.94,960.46,474760000,960.46 +1997-10-01,947.28,956.71,947.28,955.41,598660000,955.41 +1997-09-30,953.34,955.17,947.28,947.28,587500000,947.28 +1997-09-29,945.22,953.96,941.94,953.34,477100000,953.34 +1997-09-26,937.91,946.44,937.91,945.22,505340000,945.22 +1997-09-25,944.48,947.00,937.38,937.91,524880000,937.91 +1997-09-24,951.93,959.78,944.07,944.48,639460000,944.48 +1997-09-23,955.43,955.78,948.07,951.93,522930000,951.93 +1997-09-22,950.51,960.59,950.51,955.43,490900000,955.43 +1997-09-19,947.29,952.35,943.90,950.51,631040000,950.51 +1997-09-18,943.00,958.19,943.00,947.29,566830000,947.29 +1997-09-17,945.64,950.29,941.99,943.00,590550000,943.00 +1997-09-16,919.77,947.66,919.77,945.64,636380000,945.64 +1997-09-15,923.91,928.90,919.41,919.77,468030000,919.77 +1997-09-12,912.59,925.05,906.70,923.91,544150000,923.91 +1997-09-11,919.03,919.03,902.56,912.59,575020000,912.59 +1997-09-10,933.62,933.62,918.76,919.03,517620000,919.03 +1997-09-09,931.20,938.90,927.28,933.62,502200000,933.62 +1997-09-08,929.05,936.50,929.05,931.20,466430000,931.20 +1997-09-05,930.87,940.37,924.05,929.05,536400000,929.05 +1997-09-04,927.86,933.36,925.59,930.87,559310000,930.87 +1997-09-03,927.58,935.90,926.87,927.86,549060000,927.86 +1997-09-02,899.47,927.58,899.47,927.58,491870000,927.58 +1997-08-29,903.67,907.28,896.82,899.47,413910000,899.47 +1997-08-28,913.70,915.90,898.65,903.67,486300000,903.67 +1997-08-27,913.02,916.23,903.83,913.70,492150000,913.70 +1997-08-26,920.16,922.47,911.72,913.02,449110000,913.02 +1997-08-25,923.55,930.93,917.29,920.16,388990000,920.16 +1997-08-22,925.05,925.05,905.42,923.54,460160000,923.54 +1997-08-21,939.35,939.47,921.35,925.05,499000000,925.05 +1997-08-20,926.01,939.35,924.58,939.35,521270000,939.35 +1997-08-19,912.49,926.01,912.49,926.01,545630000,926.01 +1997-08-18,900.81,912.57,893.34,912.49,514330000,912.49 +1997-08-15,924.77,924.77,900.81,900.81,537820000,900.81 +1997-08-14,922.02,930.07,916.92,924.77,530460000,924.77 +1997-08-13,926.53,935.77,916.54,922.02,587210000,922.02 +1997-08-12,937.00,942.99,925.66,926.53,499310000,926.53 +1997-08-11,933.54,938.50,925.39,937.00,480340000,937.00 +1997-08-08,951.19,951.19,925.74,933.54,563420000,933.54 +1997-08-07,960.32,964.17,950.87,951.19,576030000,951.19 +1997-08-06,952.37,962.43,949.45,960.32,565200000,960.32 +1997-08-05,950.30,954.21,948.92,952.37,525710000,952.37 +1997-08-04,947.14,953.18,943.60,950.30,456000000,950.30 +1997-08-01,954.29,955.35,939.04,947.14,513750000,947.14 +1997-07-31,952.29,957.73,948.89,954.31,547830000,954.31 +1997-07-30,942.29,953.98,941.98,952.29,568470000,952.29 +1997-07-29,936.45,942.96,932.56,942.29,544540000,942.29 +1997-07-28,938.79,942.97,935.19,936.45,466920000,936.45 +1997-07-25,940.30,945.65,936.09,938.79,521510000,938.79 +1997-07-24,936.56,941.51,926.91,940.30,571020000,940.30 +1997-07-23,933.98,941.80,933.98,936.56,616930000,936.56 +1997-07-22,912.94,934.38,912.94,933.98,579590000,933.98 +1997-07-21,915.30,915.38,907.12,912.94,459500000,912.94 +1997-07-18,931.61,931.61,912.90,915.30,589710000,915.30 +1997-07-17,936.59,936.96,927.90,931.61,629250000,931.61 +1997-07-16,925.76,939.32,925.76,936.59,647390000,936.59 +1997-07-15,918.38,926.15,914.52,925.76,598370000,925.76 +1997-07-14,916.68,921.78,912.02,918.38,485960000,918.38 +1997-07-11,913.78,919.74,913.11,916.68,500050000,916.68 +1997-07-10,907.54,916.54,904.31,913.78,551340000,913.78 +1997-07-09,918.75,922.03,902.48,907.54,589110000,907.54 +1997-07-08,912.20,918.76,911.56,918.75,526010000,918.75 +1997-07-07,916.92,923.26,909.69,912.20,518780000,912.20 +1997-07-03,904.03,917.82,904.03,916.92,374680000,916.92 +1997-07-02,891.03,904.05,891.03,904.03,526970000,904.03 +1997-07-01,885.14,893.88,884.54,891.03,544190000,891.03 +1997-06-30,887.30,892.62,879.82,885.14,561540000,885.14 +1997-06-27,883.68,894.70,883.68,887.30,472540000,887.30 +1997-06-26,888.99,893.21,879.32,883.68,499780000,883.68 +1997-06-25,896.34,902.09,882.24,888.99,603040000,888.99 +1997-06-24,878.62,896.75,878.62,896.34,542650000,896.34 +1997-06-23,898.70,898.70,878.43,878.62,492940000,878.62 +1997-06-20,897.99,901.77,897.77,898.70,653110000,898.70 +1997-06-19,889.06,900.09,888.99,897.99,536940000,897.99 +1997-06-18,894.42,894.42,887.03,889.06,491740000,889.06 +1997-06-17,893.90,897.60,886.19,894.42,543010000,894.42 +1997-06-16,893.27,895.17,891.21,893.90,414280000,893.90 +1997-06-13,883.48,894.69,883.48,893.27,575810000,893.27 +1997-06-12,869.57,884.34,869.01,883.46,592730000,883.46 +1997-06-11,865.27,870.66,865.15,869.57,513740000,869.57 +1997-06-10,862.91,870.05,862.18,865.27,526980000,865.27 +1997-06-09,858.01,865.14,858.01,862.91,465810000,862.91 +1997-06-06,843.43,859.24,843.36,858.01,488940000,858.01 +1997-06-05,840.11,848.89,840.11,843.43,452610000,843.43 +1997-06-04,845.48,845.55,838.82,840.11,466690000,840.11 +1997-06-03,846.36,850.56,841.51,845.48,527120000,845.48 +1997-06-02,848.28,851.34,844.61,846.36,435950000,846.36 +1997-05-30,844.08,851.87,831.87,848.28,537200000,848.28 +1997-05-29,847.21,848.96,842.61,844.08,462600000,844.08 +1997-05-28,849.71,850.95,843.21,847.21,487340000,847.21 +1997-05-27,847.03,851.53,840.96,849.71,436150000,849.71 +1997-05-23,835.66,848.49,835.66,847.03,417030000,847.03 +1997-05-22,839.35,841.91,833.86,835.66,426940000,835.66 +1997-05-21,841.66,846.87,835.22,839.35,540730000,839.35 +1997-05-20,833.27,841.96,826.41,841.66,450850000,841.66 +1997-05-19,829.75,835.92,828.87,833.27,345140000,833.27 +1997-05-16,841.88,841.88,829.15,829.75,486780000,829.75 +1997-05-15,836.04,842.45,833.34,841.88,458170000,841.88 +1997-05-14,833.13,841.29,833.13,836.04,504960000,836.04 +1997-05-13,837.66,838.49,829.12,833.13,489760000,833.13 +1997-05-12,824.78,838.56,824.78,837.66,459370000,837.66 +1997-05-09,820.26,827.69,815.78,824.78,455690000,824.78 +1997-05-08,815.62,829.09,811.84,820.26,534120000,820.26 +1997-05-07,827.76,827.76,814.70,815.62,500580000,815.62 +1997-05-06,830.24,832.29,824.70,827.76,603680000,827.76 +1997-05-05,812.97,830.29,811.80,830.29,549410000,830.29 +1997-05-02,798.53,812.99,798.53,812.97,499770000,812.97 +1997-05-01,801.34,802.95,793.21,798.53,460380000,798.53 +1997-04-30,794.05,804.13,791.21,801.34,556070000,801.34 +1997-04-29,772.96,794.44,772.96,794.05,547690000,794.05 +1997-04-28,765.37,773.89,763.30,772.96,404470000,772.96 +1997-04-25,771.18,771.18,764.63,765.37,414350000,765.37 +1997-04-24,773.64,779.89,769.72,771.18,493640000,771.18 +1997-04-23,774.61,778.19,771.90,773.64,489350000,773.64 +1997-04-22,760.37,774.64,759.90,774.61,507500000,774.61 +1997-04-21,766.34,767.39,756.38,760.37,397300000,760.37 +1997-04-18,761.77,767.93,761.77,766.34,468940000,766.34 +1997-04-17,763.53,768.55,760.49,761.77,503760000,761.77 +1997-04-16,754.72,763.53,751.99,763.53,498820000,763.53 +1997-04-15,743.73,754.72,743.73,754.72,507370000,754.72 +1997-04-14,737.65,743.73,733.54,743.73,406800000,743.73 +1997-04-11,758.34,758.34,737.64,737.65,444380000,737.65 +1997-04-10,760.60,763.73,757.65,758.34,421790000,758.34 +1997-04-09,766.12,769.53,759.15,760.60,451500000,760.60 +1997-04-08,762.13,766.25,758.36,766.12,450790000,766.12 +1997-04-07,757.90,764.82,757.90,762.13,453790000,762.13 +1997-04-04,750.32,757.90,744.04,757.90,544580000,757.90 +1997-04-03,750.11,751.04,744.40,750.32,498010000,750.32 +1997-04-02,759.64,759.65,747.59,750.11,478210000,750.11 +1997-04-01,757.12,761.49,751.26,759.64,515770000,759.64 +1997-03-31,773.88,773.88,756.13,757.12,555880000,757.12 +1997-03-27,790.50,792.58,767.32,773.88,476790000,773.88 +1997-03-26,789.07,794.89,786.77,790.50,506670000,790.50 +1997-03-25,790.89,798.11,788.39,789.07,487520000,789.07 +1997-03-24,784.10,791.01,780.79,790.89,451970000,790.89 +1997-03-21,782.65,786.44,782.65,784.10,638760000,784.10 +1997-03-20,785.77,786.29,778.04,782.65,497480000,782.65 +1997-03-19,789.66,791.59,780.03,785.77,535580000,785.77 +1997-03-18,795.71,797.18,785.47,789.66,467330000,789.66 +1997-03-17,793.17,796.28,782.98,795.71,495260000,795.71 +1997-03-14,789.56,796.88,789.56,793.17,491540000,793.17 +1997-03-13,804.26,804.26,789.44,789.56,507560000,789.56 +1997-03-12,811.34,811.34,801.07,804.26,490200000,804.26 +1997-03-11,813.65,814.90,810.77,811.34,493250000,811.34 +1997-03-10,804.97,813.66,803.66,813.65,468780000,813.65 +1997-03-07,798.56,808.19,798.56,804.97,508270000,804.97 +1997-03-06,801.99,804.11,797.50,798.56,540310000,798.56 +1997-03-05,790.95,801.99,790.95,801.99,532500000,801.99 +1997-03-04,795.31,798.93,789.98,790.95,537890000,790.95 +1997-03-03,790.82,795.31,785.66,795.31,437220000,795.31 +1997-02-28,795.07,795.70,788.50,790.82,508280000,790.82 +1997-02-27,805.68,805.68,795.06,795.07,464660000,795.07 +1997-02-26,812.10,812.70,798.13,805.68,573920000,805.68 +1997-02-25,810.28,812.85,807.65,812.03,527450000,812.03 +1997-02-24,801.77,810.64,798.42,810.28,462450000,810.28 +1997-02-21,802.80,804.94,799.99,801.77,478450000,801.77 +1997-02-20,812.49,812.49,800.35,802.80,492220000,802.80 +1997-02-19,816.29,817.68,811.20,812.49,519350000,812.49 +1997-02-18,808.48,816.29,806.34,816.29,474110000,816.29 +1997-02-14,811.82,812.20,808.15,808.48,491540000,808.48 +1997-02-13,802.77,812.93,802.77,811.82,593710000,811.82 +1997-02-12,789.59,802.77,789.59,802.77,563890000,802.77 +1997-02-11,785.43,789.60,780.95,789.59,483090000,789.59 +1997-02-10,789.56,793.46,784.69,785.43,471590000,785.43 +1997-02-07,780.15,789.72,778.19,789.56,540910000,789.56 +1997-02-06,778.28,780.35,774.45,780.15,519660000,780.15 +1997-02-05,789.26,792.71,773.43,778.28,580520000,778.28 +1997-02-04,786.73,789.28,783.68,789.26,506530000,789.26 +1997-02-03,786.16,787.14,783.12,786.73,463600000,786.73 +1997-01-31,784.17,791.86,784.17,786.16,578550000,786.16 +1997-01-30,772.50,784.17,772.50,784.17,524160000,784.17 +1997-01-29,765.02,772.70,765.02,772.50,498390000,772.50 +1997-01-28,765.02,776.32,761.75,765.02,541580000,765.02 +1997-01-27,770.52,771.43,764.18,765.02,445760000,765.02 +1997-01-24,777.56,778.21,768.17,770.52,542920000,770.52 +1997-01-23,786.23,794.67,776.64,777.56,685070000,777.56 +1997-01-22,782.72,786.23,779.56,786.23,589230000,786.23 +1997-01-21,776.70,783.72,772.00,782.72,571280000,782.72 +1997-01-20,776.17,780.08,774.19,776.70,440470000,776.70 +1997-01-17,769.75,776.37,769.72,776.17,534640000,776.17 +1997-01-16,767.20,772.05,765.25,769.75,537290000,769.75 +1997-01-15,768.86,770.95,763.72,767.20,524990000,767.20 +1997-01-14,759.51,772.04,759.51,768.86,531600000,768.86 +1997-01-13,759.50,762.85,756.69,759.51,445400000,759.51 +1997-01-10,754.85,759.65,746.92,759.50,545850000,759.50 +1997-01-09,748.41,757.68,748.41,754.85,555370000,754.85 +1997-01-08,753.23,755.72,747.71,748.41,557510000,748.41 +1997-01-07,747.65,753.26,742.18,753.23,538220000,753.23 +1997-01-06,748.03,753.31,743.82,747.65,531350000,747.65 +1997-01-03,737.01,748.24,737.01,748.03,452970000,748.03 +1997-01-02,740.74,742.81,729.55,737.01,463230000,737.01 +1996-12-31,753.85,753.95,740.74,740.74,399760000,740.74 +1996-12-30,756.79,759.20,752.73,753.85,339060000,753.85 +1996-12-27,755.82,758.75,754.82,756.79,253810000,756.79 +1996-12-26,751.03,757.07,751.02,755.82,254630000,755.82 +1996-12-24,746.92,751.03,746.92,751.03,165140000,751.03 +1996-12-23,748.87,750.40,743.28,746.92,343280000,746.92 +1996-12-20,745.76,755.41,745.76,748.87,654340000,748.87 +1996-12-19,731.54,746.06,731.54,745.76,526410000,745.76 +1996-12-18,726.04,732.76,726.04,731.54,500490000,731.54 +1996-12-17,720.98,727.67,716.69,726.04,519840000,726.04 +1996-12-16,728.64,732.68,719.40,720.98,447560000,720.98 +1996-12-13,729.33,731.40,721.97,728.64,458540000,728.64 +1996-12-12,740.73,744.86,729.30,729.30,492920000,729.30 +1996-12-11,747.54,747.54,732.75,740.73,494210000,740.73 +1996-12-10,749.76,753.43,747.02,747.54,446120000,747.54 +1996-12-09,739.60,749.76,739.60,749.76,381570000,749.76 +1996-12-06,744.38,744.38,726.89,739.60,500860000,739.60 +1996-12-05,745.10,747.65,742.61,744.38,483710000,744.38 +1996-12-04,748.28,748.40,738.46,745.10,498240000,745.10 +1996-12-03,756.56,761.75,747.58,748.28,516160000,748.28 +1996-12-02,757.02,757.03,751.49,756.56,412520000,756.56 +1996-11-29,755.00,758.27,755.00,757.02,14990000,757.02 +1996-11-27,755.96,757.30,753.18,755.00,377780000,755.00 +1996-11-26,757.03,762.12,752.83,755.96,527380000,755.96 +1996-11-25,748.73,757.05,747.99,757.03,475260000,757.03 +1996-11-22,742.75,748.73,742.75,748.73,525210000,748.73 +1996-11-21,743.95,745.20,741.08,742.75,464430000,742.75 +1996-11-20,742.16,746.99,740.40,743.95,497900000,743.95 +1996-11-19,737.02,742.18,736.87,742.16,461980000,742.16 +1996-11-18,737.62,739.24,734.39,737.02,388520000,737.02 +1996-11-15,735.88,741.92,735.15,737.62,529100000,737.62 +1996-11-14,731.13,735.99,729.20,735.88,480350000,735.88 +1996-11-13,729.56,732.11,728.03,731.13,429840000,731.13 +1996-11-12,731.87,733.04,728.20,729.56,471740000,729.56 +1996-11-11,730.82,732.60,729.94,731.87,353960000,731.87 +1996-11-08,727.65,730.82,725.22,730.82,402320000,730.82 +1996-11-07,724.59,729.49,722.23,727.65,502530000,727.65 +1996-11-06,714.14,724.60,712.83,724.59,509600000,724.59 +1996-11-05,706.73,714.56,706.73,714.14,486660000,714.14 +1996-11-04,703.77,707.02,702.84,706.73,398790000,706.73 +1996-11-01,705.27,708.60,701.30,703.77,465510000,703.77 +1996-10-31,700.90,706.61,700.35,705.27,482840000,705.27 +1996-10-30,701.50,703.44,700.05,700.90,437770000,700.90 +1996-10-29,697.26,703.25,696.22,701.50,443890000,701.50 +1996-10-28,700.92,705.40,697.25,697.26,383620000,697.26 +1996-10-25,702.29,704.11,700.53,700.92,367640000,700.92 +1996-10-24,707.27,708.25,702.11,702.29,418970000,702.29 +1996-10-23,706.57,707.31,700.98,707.27,442170000,707.27 +1996-10-22,709.85,709.85,704.55,706.57,410790000,706.57 +1996-10-21,710.82,714.10,707.71,709.85,414630000,709.85 +1996-10-18,706.99,711.04,706.11,710.82,473020000,710.82 +1996-10-17,705.00,708.52,704.76,706.99,478550000,706.99 +1996-10-16,702.57,704.42,699.15,704.41,441410000,704.41 +1996-10-15,703.54,708.07,699.07,702.57,458980000,702.57 +1996-10-14,700.66,705.16,700.66,703.54,322000000,703.54 +1996-10-11,694.61,700.67,694.61,700.66,396050000,700.66 +1996-10-10,696.74,696.82,693.34,694.61,394950000,694.61 +1996-10-09,700.64,702.36,694.42,696.74,408450000,696.74 +1996-10-08,703.34,705.76,699.88,700.64,435070000,700.64 +1996-10-07,701.46,704.17,701.39,703.34,380750000,703.34 +1996-10-04,692.78,701.74,692.78,701.46,463940000,701.46 +1996-10-03,694.01,694.81,691.78,692.78,386500000,692.78 +1996-10-02,689.08,694.82,689.08,694.01,440130000,694.01 +1996-10-01,687.31,689.54,684.44,689.08,421550000,689.08 +1996-09-30,686.19,690.11,686.03,687.33,388570000,687.33 +1996-09-27,685.86,687.11,683.73,686.19,414760000,686.19 +1996-09-26,685.83,690.15,683.77,685.86,500870000,685.86 +1996-09-25,685.61,688.26,684.92,685.83,451710000,685.83 +1996-09-24,686.48,690.88,683.54,685.61,460150000,685.61 +1996-09-23,687.03,687.03,681.01,686.48,297760000,686.48 +1996-09-20,683.00,687.07,683.00,687.03,519420000,687.03 +1996-09-19,681.47,684.07,679.06,683.00,398580000,683.00 +1996-09-18,682.94,683.77,679.75,681.47,396600000,681.47 +1996-09-17,683.98,685.80,679.96,682.94,449850000,682.94 +1996-09-16,680.54,686.48,680.53,683.98,430080000,683.98 +1996-09-13,671.15,681.39,671.15,680.54,488360000,680.54 +1996-09-12,667.28,673.07,667.28,671.15,398820000,671.15 +1996-09-11,663.81,667.73,661.79,667.28,376880000,667.28 +1996-09-10,663.76,665.57,661.55,663.81,372960000,663.81 +1996-09-09,655.68,663.77,655.68,663.76,311530000,663.76 +1996-09-06,649.44,658.21,649.44,655.68,348710000,655.68 +1996-09-05,655.61,655.61,648.89,649.44,361430000,649.44 +1996-09-04,654.72,655.82,652.93,655.61,351290000,655.61 +1996-09-03,651.99,655.13,643.97,654.72,345740000,654.72 +1996-08-30,657.40,657.71,650.52,651.99,258380000,651.99 +1996-08-29,664.81,664.81,655.35,657.40,321120000,657.40 +1996-08-28,666.40,667.41,664.39,664.81,296440000,664.81 +1996-08-27,663.88,666.40,663.50,666.40,310520000,666.40 +1996-08-26,667.03,667.03,662.36,663.88,281430000,663.88 +1996-08-23,670.68,670.68,664.93,667.03,308010000,667.03 +1996-08-22,665.07,670.68,664.88,670.68,354950000,670.68 +1996-08-21,665.69,665.69,662.16,665.07,348820000,665.07 +1996-08-20,666.58,666.99,665.15,665.69,334960000,665.69 +1996-08-19,665.21,667.12,665.00,666.58,294080000,666.58 +1996-08-16,662.28,666.34,662.26,665.21,337650000,665.21 +1996-08-15,662.05,664.18,660.64,662.28,323950000,662.28 +1996-08-14,660.20,662.42,658.47,662.05,343460000,662.05 +1996-08-13,665.77,665.77,659.13,660.20,362470000,660.20 +1996-08-12,662.10,665.77,658.95,665.77,312170000,665.77 +1996-08-09,662.59,665.37,660.31,662.10,327280000,662.10 +1996-08-08,664.16,664.17,661.28,662.59,334570000,662.59 +1996-08-07,662.38,664.61,660.00,664.16,394340000,664.16 +1996-08-06,660.23,662.75,656.83,662.38,347290000,662.38 +1996-08-05,662.49,663.64,659.03,660.23,307240000,660.23 +1996-08-02,650.02,662.49,650.02,662.49,442080000,662.49 +1996-08-01,639.95,650.66,639.49,650.02,439110000,650.02 +1996-07-31,635.26,640.54,633.74,639.95,403560000,639.95 +1996-07-30,630.91,635.26,629.22,635.26,341090000,635.26 +1996-07-29,635.90,635.90,630.90,630.91,281560000,630.91 +1996-07-26,631.17,636.23,631.17,635.90,349900000,635.90 +1996-07-25,626.65,633.57,626.65,631.17,405390000,631.17 +1996-07-24,626.19,629.10,616.43,626.65,463030000,626.65 +1996-07-23,633.79,637.70,625.65,626.87,421900000,626.87 +1996-07-22,638.73,638.73,630.38,633.77,327300000,633.77 +1996-07-19,643.51,643.51,635.50,638.73,408070000,638.73 +1996-07-18,634.07,644.44,633.29,643.56,474460000,643.56 +1996-07-17,628.37,636.61,628.37,634.07,513830000,634.07 +1996-07-16,629.80,631.99,605.88,628.37,682980000,628.37 +1996-07-15,646.19,646.19,629.69,629.80,419020000,629.80 +1996-07-12,645.67,647.64,640.21,646.19,396740000,646.19 +1996-07-11,656.06,656.06,639.52,645.67,520470000,645.67 +1996-07-10,654.75,656.27,648.39,656.06,421350000,656.06 +1996-07-09,652.54,656.60,652.54,654.75,400170000,654.75 +1996-07-08,657.44,657.65,651.13,652.54,367560000,652.54 +1996-07-05,672.40,672.40,657.41,657.44,181470000,657.44 +1996-07-03,673.61,673.64,670.21,672.40,336260000,672.40 +1996-07-02,675.88,675.88,672.55,673.61,388000000,673.61 +1996-07-01,670.63,675.88,670.63,675.88,345750000,675.88 +1996-06-28,668.55,672.68,668.55,670.63,470460000,670.63 +1996-06-27,664.39,668.90,661.56,668.55,405580000,668.55 +1996-06-26,668.48,668.49,663.67,664.39,386520000,664.39 +1996-06-25,668.85,670.65,667.29,668.48,391900000,668.48 +1996-06-24,666.84,671.07,666.84,668.85,333840000,668.85 +1996-06-21,662.10,666.84,662.10,666.84,520340000,666.84 +1996-06-20,661.96,664.96,658.75,662.10,441060000,662.10 +1996-06-19,662.06,665.62,661.21,661.96,383610000,661.96 +1996-06-18,665.16,666.36,661.34,662.06,373290000,662.06 +1996-06-17,665.85,668.27,664.09,665.16,298410000,665.16 +1996-06-14,667.92,668.40,664.35,665.85,390630000,665.85 +1996-06-13,669.04,670.54,665.49,667.92,397620000,667.92 +1996-06-12,670.97,673.67,668.77,669.04,397190000,669.04 +1996-06-11,672.16,676.72,669.94,670.97,405390000,670.97 +1996-06-10,673.31,673.61,670.15,672.16,337480000,672.16 +1996-06-07,673.03,673.31,662.48,673.31,445710000,673.31 +1996-06-06,678.44,680.32,673.02,673.03,466940000,673.03 +1996-06-05,672.56,678.45,672.09,678.44,380360000,678.44 +1996-06-04,667.68,672.60,667.68,672.56,386040000,672.56 +1996-06-03,669.12,669.12,665.19,667.68,318470000,667.68 +1996-05-31,671.70,673.46,667.00,669.12,351750000,669.12 +1996-05-30,667.93,673.51,664.56,671.70,381960000,671.70 +1996-05-29,672.23,673.73,666.09,667.93,346730000,667.93 +1996-05-28,678.51,679.98,671.52,672.23,341480000,672.23 +1996-05-24,676.00,679.72,676.00,678.51,329150000,678.51 +1996-05-23,678.42,681.10,673.45,676.00,431850000,676.00 +1996-05-22,672.76,678.42,671.23,678.42,423670000,678.42 +1996-05-21,673.15,675.56,672.26,672.76,409610000,672.76 +1996-05-20,668.91,673.66,667.64,673.15,385000000,673.15 +1996-05-17,664.85,669.84,664.85,668.91,429140000,668.91 +1996-05-16,665.42,667.11,662.79,664.85,392070000,664.85 +1996-05-15,665.60,669.82,664.46,665.42,447790000,665.42 +1996-05-14,661.51,666.96,661.51,665.60,460440000,665.60 +1996-05-13,652.09,662.16,652.09,661.51,394180000,661.51 +1996-05-10,645.44,653.00,645.44,652.09,428370000,652.09 +1996-05-09,644.77,647.95,643.18,645.44,404310000,645.44 +1996-05-08,638.26,644.79,630.07,644.77,495460000,644.77 +1996-05-07,640.81,641.40,636.96,638.26,410770000,638.26 +1996-05-06,641.63,644.64,636.19,640.81,375820000,640.81 +1996-05-03,643.38,648.45,640.23,641.63,434010000,641.63 +1996-05-02,654.58,654.58,642.13,643.38,442960000,643.38 +1996-05-01,654.17,656.44,652.26,654.58,404620000,654.58 +1996-04-30,654.16,654.59,651.05,654.17,393390000,654.17 +1996-04-29,653.46,654.71,651.60,654.16,344030000,654.16 +1996-04-26,652.87,656.43,651.96,653.46,402530000,653.46 +1996-04-25,650.17,654.18,647.06,652.87,462120000,652.87 +1996-04-24,651.58,653.37,648.25,650.17,494220000,650.17 +1996-04-23,647.89,651.59,647.70,651.58,452690000,651.58 +1996-04-22,645.07,650.91,645.07,647.89,395370000,647.89 +1996-04-19,643.61,647.32,643.61,645.07,435690000,645.07 +1996-04-18,641.61,644.66,640.76,643.61,415150000,643.61 +1996-04-17,645.00,645.00,638.71,641.61,465200000,641.61 +1996-04-16,642.49,645.57,642.15,645.00,453310000,645.00 +1996-04-15,636.71,642.49,636.71,642.49,346370000,642.49 +1996-04-12,631.18,637.14,631.18,636.71,413270000,636.71 +1996-04-11,633.50,635.26,624.14,631.18,519710000,631.18 +1996-04-10,642.19,642.78,631.76,633.50,475150000,633.50 +1996-04-09,644.24,646.33,640.84,642.19,426790000,642.19 +1996-04-08,655.86,655.86,638.04,644.24,411810000,644.24 +1996-04-04,655.88,656.68,654.89,655.86,383400000,655.86 +1996-04-03,655.26,655.89,651.81,655.88,386620000,655.88 +1996-04-02,653.73,655.27,652.81,655.26,406640000,655.26 +1996-04-01,645.50,653.87,645.50,653.73,392120000,653.73 +1996-03-29,648.94,650.96,644.89,645.50,413510000,645.50 +1996-03-28,648.91,649.58,646.36,648.94,370750000,648.94 +1996-03-27,652.97,653.94,647.60,648.91,406280000,648.91 +1996-03-26,650.04,654.31,648.15,652.97,400090000,652.97 +1996-03-25,650.62,655.50,648.82,650.04,336700000,650.04 +1996-03-22,649.19,652.08,649.19,650.62,329390000,650.62 +1996-03-21,649.98,651.54,648.10,649.19,367180000,649.19 +1996-03-20,651.69,653.13,645.57,649.98,409780000,649.98 +1996-03-19,652.65,656.18,649.80,651.69,438300000,651.69 +1996-03-18,641.43,652.65,641.43,652.65,437100000,652.65 +1996-03-15,640.87,642.87,638.35,641.43,529970000,641.43 +1996-03-14,638.55,644.17,638.55,640.87,492630000,640.87 +1996-03-13,637.09,640.52,635.19,638.55,413030000,638.55 +1996-03-12,640.02,640.02,628.82,637.09,454980000,637.09 +1996-03-11,633.50,640.41,629.95,640.02,449500000,640.02 +1996-03-08,653.65,653.65,627.63,633.50,546550000,633.50 +1996-03-07,652.00,653.65,649.54,653.65,425790000,653.65 +1996-03-06,655.79,656.97,651.61,652.00,428220000,652.00 +1996-03-05,650.81,655.80,648.77,655.79,445700000,655.79 +1996-03-04,644.37,653.54,644.37,650.81,417270000,650.81 +1996-03-01,640.43,644.38,635.00,644.37,471480000,644.37 +1996-02-29,644.75,646.95,639.01,640.43,453170000,640.43 +1996-02-28,647.24,654.39,643.99,644.75,447790000,644.75 +1996-02-27,650.46,650.62,643.87,647.24,431340000,647.24 +1996-02-26,659.08,659.08,650.16,650.46,399330000,650.46 +1996-02-23,658.86,663.00,652.25,659.08,443130000,659.08 +1996-02-22,648.10,659.75,648.10,658.86,485470000,658.86 +1996-02-21,640.65,648.11,640.65,648.10,431220000,648.10 +1996-02-20,647.98,647.98,638.79,640.65,395910000,640.65 +1996-02-16,651.32,651.42,646.99,647.98,445570000,647.98 +1996-02-15,655.58,656.84,651.15,651.32,415320000,651.32 +1996-02-14,660.51,661.53,654.36,655.58,421790000,655.58 +1996-02-13,661.45,664.23,657.92,660.51,441540000,660.51 +1996-02-12,656.37,662.95,656.34,661.45,397890000,661.45 +1996-02-09,656.07,661.08,653.64,656.37,477640000,656.37 +1996-02-08,649.93,656.54,647.93,656.07,474970000,656.07 +1996-02-07,646.33,649.93,645.59,649.93,462730000,649.93 +1996-02-06,641.43,646.67,639.68,646.33,465940000,646.33 +1996-02-05,635.84,641.43,633.71,641.43,377760000,641.43 +1996-02-02,638.46,639.26,634.29,635.84,420020000,635.84 +1996-02-01,636.02,638.46,634.54,638.46,461430000,638.46 +1996-01-31,630.15,636.18,629.48,636.02,472210000,636.02 +1996-01-30,624.22,630.29,624.22,630.15,464350000,630.15 +1996-01-29,621.62,624.22,621.42,624.22,363330000,624.22 +1996-01-26,617.03,621.70,615.26,621.62,385700000,621.62 +1996-01-25,619.96,620.15,616.62,617.03,453270000,617.03 +1996-01-24,612.79,619.96,612.79,619.96,476380000,619.96 +1996-01-23,613.40,613.40,610.65,612.79,416910000,612.79 +1996-01-22,611.83,613.45,610.95,613.40,398040000,613.40 +1996-01-19,608.24,612.92,606.76,611.83,497720000,611.83 +1996-01-18,606.37,608.27,604.12,608.24,450410000,608.24 +1996-01-17,608.44,609.93,604.70,606.37,458720000,606.37 +1996-01-16,599.82,608.44,599.05,608.44,425220000,608.44 +1996-01-15,601.81,603.43,598.47,599.82,306180000,599.82 +1996-01-12,602.69,604.80,597.46,601.81,383400000,601.81 +1996-01-11,598.48,602.71,597.54,602.69,408800000,602.69 +1996-01-10,609.45,609.45,597.29,598.48,496830000,598.48 +1996-01-09,618.46,619.15,608.21,609.45,417400000,609.45 +1996-01-08,616.71,618.46,616.49,618.46,130360000,618.46 +1996-01-05,617.70,617.70,612.02,616.71,437110000,616.71 +1996-01-04,621.32,624.49,613.96,617.70,512580000,617.70 +1996-01-03,620.73,623.25,619.56,621.32,468950000,621.32 +1996-01-02,615.93,620.74,613.17,620.73,364180000,620.73 +1995-12-29,614.12,615.93,612.36,615.93,321250000,615.93 +1995-12-28,614.53,615.50,612.40,614.12,288660000,614.12 +1995-12-27,614.30,615.73,613.75,614.53,252300000,614.53 +1995-12-26,611.96,614.50,611.96,614.30,217280000,614.30 +1995-12-22,610.49,613.50,610.45,611.95,289600000,611.95 +1995-12-21,605.94,610.52,605.94,610.49,415810000,610.49 +1995-12-20,611.93,614.27,605.93,605.94,437680000,605.94 +1995-12-19,606.81,611.94,605.05,611.93,478280000,611.93 +1995-12-18,616.34,616.34,606.13,606.81,426270000,606.81 +1995-12-15,616.92,617.72,614.46,616.34,636800000,616.34 +1995-12-14,621.69,622.88,616.13,616.92,465300000,616.92 +1995-12-13,618.78,622.02,618.27,621.69,415290000,621.69 +1995-12-12,619.52,619.55,617.68,618.78,349860000,618.78 +1995-12-11,617.48,620.90,617.14,619.52,342070000,619.52 +1995-12-08,616.17,617.82,614.32,617.48,327900000,617.48 +1995-12-07,620.18,620.19,615.21,616.17,379260000,616.17 +1995-12-06,617.68,621.11,616.69,620.18,417780000,620.18 +1995-12-05,613.68,618.48,613.14,617.68,437360000,617.68 +1995-12-04,606.98,613.83,606.84,613.68,405480000,613.68 +1995-12-01,605.37,608.11,605.37,606.98,393310000,606.98 +1995-11-30,607.64,608.69,605.37,605.37,440050000,605.37 +1995-11-29,606.45,607.66,605.47,607.64,398280000,607.64 +1995-11-28,601.32,606.45,599.02,606.45,408860000,606.45 +1995-11-27,599.97,603.35,599.97,601.32,359130000,601.32 +1995-11-24,598.40,600.24,598.40,599.97,125870000,599.97 +1995-11-22,600.24,600.71,598.40,598.40,404980000,598.40 +1995-11-21,596.85,600.28,595.42,600.24,408320000,600.24 +1995-11-20,600.07,600.40,596.17,596.85,333150000,596.85 +1995-11-17,597.34,600.14,597.30,600.07,437200000,600.07 +1995-11-16,593.96,597.91,593.52,597.34,423280000,597.34 +1995-11-15,589.29,593.97,588.36,593.96,376100000,593.96 +1995-11-14,592.30,592.30,588.98,589.29,354420000,589.29 +1995-11-13,592.72,593.72,590.58,592.30,295840000,592.30 +1995-11-10,593.26,593.26,590.39,592.72,298690000,592.72 +1995-11-09,591.71,593.90,590.89,593.26,380760000,593.26 +1995-11-08,586.32,591.71,586.32,591.71,359780000,591.71 +1995-11-07,588.46,588.46,584.24,586.32,364680000,586.32 +1995-11-06,590.57,590.64,588.31,588.46,309100000,588.46 +1995-11-03,589.72,590.57,588.65,590.57,348500000,590.57 +1995-11-02,584.22,589.72,584.22,589.72,397070000,589.72 +1995-11-01,581.50,584.24,581.04,584.22,378090000,584.22 +1995-10-31,583.25,586.71,581.50,581.50,377390000,581.50 +1995-10-30,579.70,583.79,579.70,583.25,319160000,583.25 +1995-10-27,576.72,579.71,573.21,579.70,379230000,579.70 +1995-10-26,582.47,582.63,572.53,576.72,464270000,576.72 +1995-10-25,586.54,587.19,581.41,582.47,433620000,582.47 +1995-10-24,585.06,587.31,584.75,586.54,415540000,586.54 +1995-10-23,587.46,587.46,583.73,585.06,330750000,585.06 +1995-10-20,590.65,590.66,586.78,587.46,389360000,587.46 +1995-10-19,587.44,590.66,586.34,590.65,406620000,590.65 +1995-10-18,586.78,589.77,586.27,587.44,411270000,587.44 +1995-10-17,583.03,586.78,581.90,586.78,356380000,586.78 +1995-10-16,584.50,584.86,582.63,583.03,300750000,583.03 +1995-10-13,583.10,587.39,583.10,584.50,374680000,584.50 +1995-10-12,579.46,583.12,579.46,583.10,344060000,583.10 +1995-10-11,577.52,579.52,577.08,579.46,340740000,579.46 +1995-10-10,578.37,578.37,571.55,577.52,412710000,577.52 +1995-10-09,582.49,582.49,576.35,578.37,275320000,578.37 +1995-10-06,582.63,584.54,582.10,582.49,313680000,582.49 +1995-10-05,581.47,582.63,579.58,582.63,367480000,582.63 +1995-10-04,582.34,582.34,579.91,581.47,339380000,581.47 +1995-10-03,581.72,582.34,578.48,582.34,385940000,582.34 +1995-10-02,584.41,585.05,580.54,581.72,304990000,581.72 +1995-09-29,585.87,587.61,584.00,584.41,335250000,584.41 +1995-09-28,581.04,585.88,580.69,585.87,367720000,585.87 +1995-09-27,581.41,581.42,574.68,581.04,411300000,581.04 +1995-09-26,581.81,584.66,580.65,581.41,363630000,581.41 +1995-09-25,581.73,582.14,579.50,581.81,273120000,581.81 +1995-09-22,583.00,583.00,578.25,581.73,370790000,581.73 +1995-09-21,586.77,586.79,580.91,583.00,367100000,583.00 +1995-09-20,584.20,586.77,584.18,586.77,400050000,586.77 +1995-09-19,582.78,584.24,580.75,584.20,371170000,584.20 +1995-09-18,583.35,583.37,579.36,582.77,326090000,582.77 +1995-09-15,583.61,585.07,581.79,583.35,459370000,583.35 +1995-09-14,578.77,583.99,578.77,583.61,382880000,583.61 +1995-09-13,576.51,579.72,575.47,578.77,384380000,578.77 +1995-09-12,573.91,576.51,573.11,576.51,344540000,576.51 +1995-09-11,572.68,575.15,572.68,573.91,296840000,573.91 +1995-09-08,570.29,572.68,569.27,572.68,317940000,572.68 +1995-09-07,570.17,571.11,569.23,570.29,321720000,570.29 +1995-09-06,569.17,570.53,569.00,570.17,369540000,570.17 +1995-09-05,563.86,569.20,563.84,569.17,332670000,569.17 +1995-09-01,561.88,564.62,561.01,563.84,256730000,563.84 +1995-08-31,561.09,562.36,560.49,561.88,300920000,561.88 +1995-08-30,560.00,561.52,559.49,560.92,329840000,560.92 +1995-08-29,559.05,560.01,555.71,560.00,311290000,560.00 +1995-08-28,560.10,562.22,557.99,559.05,267860000,559.05 +1995-08-25,557.46,561.31,557.46,560.10,255990000,560.10 +1995-08-24,557.14,558.63,555.20,557.46,299200000,557.46 +1995-08-23,559.52,560.00,557.08,557.14,291890000,557.14 +1995-08-22,558.11,559.52,555.87,559.52,290890000,559.52 +1995-08-21,559.21,563.34,557.89,558.11,303200000,558.11 +1995-08-18,559.04,561.24,558.34,559.21,320490000,559.21 +1995-08-17,559.97,559.97,557.42,559.04,354460000,559.04 +1995-08-16,558.57,559.98,557.37,559.97,390170000,559.97 +1995-08-15,559.74,559.98,555.22,558.57,330070000,558.57 +1995-08-14,555.11,559.74,554.76,559.74,264920000,559.74 +1995-08-11,557.45,558.50,553.04,555.11,267850000,555.11 +1995-08-10,559.71,560.63,556.05,557.45,306660000,557.45 +1995-08-09,560.39,561.59,559.29,559.71,303390000,559.71 +1995-08-08,560.03,561.53,558.32,560.39,306090000,560.39 +1995-08-07,558.94,561.24,558.94,560.03,277050000,560.03 +1995-08-04,558.75,559.57,557.91,558.94,314740000,558.94 +1995-08-03,558.80,558.80,554.10,558.75,353110000,558.75 +1995-08-02,559.64,565.62,557.87,558.80,374330000,558.80 +1995-08-01,562.06,562.11,556.67,559.64,332210000,559.64 +1995-07-31,562.93,563.49,560.06,562.06,291950000,562.06 +1995-07-28,565.22,565.40,562.04,562.93,311590000,562.93 +1995-07-27,561.61,565.33,561.61,565.22,356570000,565.22 +1995-07-26,561.10,563.78,560.85,561.61,393470000,561.61 +1995-07-25,556.63,561.75,556.34,561.10,373200000,561.10 +1995-07-24,553.62,557.21,553.62,556.63,315300000,556.63 +1995-07-21,553.34,554.73,550.91,553.62,431830000,553.62 +1995-07-20,550.98,554.43,549.10,553.54,383380000,553.54 +1995-07-19,556.58,558.46,542.51,550.98,489850000,550.98 +1995-07-18,562.55,562.72,556.86,558.46,372230000,558.46 +1995-07-17,560.34,562.94,559.45,562.72,322540000,562.72 +1995-07-14,561.00,561.00,556.41,559.89,312930000,559.89 +1995-07-13,560.89,562.00,559.07,561.00,387500000,561.00 +1995-07-12,555.27,561.56,554.27,560.89,416360000,560.89 +1995-07-11,556.78,557.19,553.80,554.78,376770000,554.78 +1995-07-10,556.37,558.48,555.77,557.19,409700000,557.19 +1995-07-07,553.90,556.57,553.05,556.37,466540000,556.37 +1995-07-06,547.26,553.99,546.59,553.99,420500000,553.99 +1995-07-05,547.09,549.98,546.28,547.26,357850000,547.26 +1995-07-03,544.75,547.10,544.43,547.09,117900000,547.09 +1995-06-30,543.87,546.82,543.51,544.75,311650000,544.75 +1995-06-29,544.73,546.25,540.79,543.87,313080000,543.87 +1995-06-28,542.43,546.33,540.72,544.73,368060000,544.73 +1995-06-27,544.11,547.07,542.19,542.43,346950000,542.43 +1995-06-26,549.71,549.79,544.06,544.13,296720000,544.13 +1995-06-23,551.07,551.07,548.23,549.71,321660000,549.71 +1995-06-22,543.98,551.07,543.98,551.07,421000000,551.07 +1995-06-21,544.98,545.93,543.90,543.98,398210000,543.98 +1995-06-20,545.22,545.44,543.43,544.98,382370000,544.98 +1995-06-19,539.83,545.22,539.83,545.22,322990000,545.22 +1995-06-16,537.51,539.98,537.12,539.83,442740000,539.83 +1995-06-15,536.48,539.07,535.56,537.12,334700000,537.12 +1995-06-14,536.05,536.48,533.83,536.47,330770000,536.47 +1995-06-13,530.88,536.23,530.88,536.05,339660000,536.05 +1995-06-12,527.94,532.54,527.94,530.88,289920000,530.88 +1995-06-09,532.35,532.35,526.00,527.94,327570000,527.94 +1995-06-08,533.13,533.56,531.65,532.35,289880000,532.35 +1995-06-07,535.55,535.55,531.66,533.13,327790000,533.13 +1995-06-06,535.60,537.09,535.14,535.55,340490000,535.55 +1995-06-05,532.51,537.73,532.47,535.60,337520000,535.60 +1995-06-02,533.49,536.91,529.55,532.51,366000000,532.51 +1995-06-01,533.40,534.21,530.05,533.49,345920000,533.49 +1995-05-31,523.70,533.41,522.17,533.40,358180000,533.40 +1995-05-30,523.65,525.58,521.38,523.58,283020000,523.58 +1995-05-26,528.59,528.59,522.51,523.65,291220000,523.65 +1995-05-25,528.37,529.04,524.89,528.59,341820000,528.59 +1995-05-24,528.59,531.91,525.57,528.61,391770000,528.61 +1995-05-23,523.65,528.59,523.65,528.59,362690000,528.59 +1995-05-22,519.19,524.34,519.19,523.65,285600000,523.65 +1995-05-19,519.58,519.58,517.07,519.19,354010000,519.19 +1995-05-18,526.88,526.88,519.58,519.58,351900000,519.58 +1995-05-17,528.19,528.42,525.38,527.07,347930000,527.07 +1995-05-16,527.74,529.08,526.45,528.19,366180000,528.19 +1995-05-15,525.55,527.74,525.00,527.74,316240000,527.74 +1995-05-12,524.37,527.05,523.30,525.55,361000000,525.55 +1995-05-11,524.33,524.89,522.70,524.37,339900000,524.37 +1995-05-10,523.74,524.40,521.53,524.36,381990000,524.36 +1995-05-09,523.96,525.99,521.79,523.56,361300000,523.56 +1995-05-08,520.09,525.15,519.14,523.96,291810000,523.96 +1995-05-05,520.75,522.35,518.28,520.12,342380000,520.12 +1995-05-04,520.48,525.40,519.44,520.54,434990000,520.54 +1995-05-03,514.93,520.54,514.86,520.48,392370000,520.48 +1995-05-02,514.23,515.18,513.03,514.86,302560000,514.86 +1995-05-01,514.76,515.60,513.42,514.26,296830000,514.26 +1995-04-28,513.64,515.29,510.90,514.71,320440000,514.71 +1995-04-27,512.70,513.62,511.63,513.55,350850000,513.55 +1995-04-26,511.99,513.04,510.47,512.66,350810000,512.66 +1995-04-25,512.80,513.54,511.32,512.10,351790000,512.10 +1995-04-24,508.49,513.02,507.44,512.89,326280000,512.89 +1995-04-21,505.63,508.49,505.63,508.49,403250000,508.49 +1995-04-20,504.92,506.50,503.44,505.29,368450000,505.29 +1995-04-19,505.37,505.89,501.19,504.92,378050000,504.92 +1995-04-18,506.43,507.65,504.12,505.37,344680000,505.37 +1995-04-17,509.23,512.03,505.43,506.13,333930000,506.13 +1995-04-13,507.19,509.83,507.17,509.23,301580000,509.23 +1995-04-12,505.59,507.17,505.07,507.17,327880000,507.17 +1995-04-11,507.24,508.85,505.29,505.53,310660000,505.53 +1995-04-10,506.30,507.01,504.61,507.01,260980000,507.01 +1995-04-07,506.13,507.19,503.59,506.42,314760000,506.42 +1995-04-06,505.63,507.10,505.00,506.08,320460000,506.08 +1995-04-05,505.27,505.57,503.17,505.57,315170000,505.57 +1995-04-04,501.85,505.26,501.85,505.24,330580000,505.24 +1995-04-03,500.70,501.91,500.20,501.85,296430000,501.85 +1995-03-31,501.94,502.22,495.70,500.71,353060000,500.71 +1995-03-30,503.17,504.66,501.00,502.22,362940000,502.22 +1995-03-29,503.92,508.15,500.96,503.12,385940000,503.12 +1995-03-28,503.19,503.91,501.83,503.90,320360000,503.90 +1995-03-27,500.97,503.20,500.93,503.20,296270000,503.20 +1995-03-24,496.07,500.97,496.07,500.97,358370000,500.97 +1995-03-23,495.67,496.77,494.19,495.95,318530000,495.95 +1995-03-22,495.07,495.67,493.67,495.67,313120000,495.67 +1995-03-21,496.15,499.19,494.04,495.07,367110000,495.07 +1995-03-20,495.52,496.61,495.27,496.14,301740000,496.14 +1995-03-17,495.43,496.67,494.95,495.52,417380000,495.52 +1995-03-16,491.87,495.74,491.78,495.41,336670000,495.41 +1995-03-15,492.89,492.89,490.83,491.88,309540000,491.88 +1995-03-14,490.05,493.69,490.05,492.89,346160000,492.89 +1995-03-13,489.57,491.28,489.35,490.05,275280000,490.05 +1995-03-10,483.16,490.37,483.16,489.57,382940000,489.57 +1995-03-09,483.14,483.74,482.05,483.16,319320000,483.16 +1995-03-08,482.12,484.08,481.57,483.14,349780000,483.14 +1995-03-07,485.63,485.63,479.70,482.12,355550000,482.12 +1995-03-06,485.42,485.70,481.52,485.63,298870000,485.63 +1995-03-03,485.13,485.42,483.07,485.42,330840000,485.42 +1995-03-02,485.65,485.71,483.19,485.13,330030000,485.13 +1995-03-01,487.39,487.83,484.92,485.65,362600000,485.65 +1995-02-28,483.81,487.44,483.77,487.39,317220000,487.39 +1995-02-27,488.26,488.26,483.18,483.81,285790000,483.81 +1995-02-24,486.82,488.28,485.70,488.11,302930000,488.11 +1995-02-23,485.07,489.19,485.07,486.91,394280000,486.91 +1995-02-22,482.74,486.15,482.45,485.07,339460000,485.07 +1995-02-21,481.95,483.26,481.94,482.72,308090000,482.72 +1995-02-17,485.15,485.22,481.97,481.97,347970000,481.97 +1995-02-16,484.56,485.22,483.05,485.22,360990000,485.22 +1995-02-15,482.55,485.54,481.77,484.54,378040000,484.54 +1995-02-14,481.65,482.94,480.89,482.55,300720000,482.55 +1995-02-13,481.46,482.86,481.07,481.65,256270000,481.65 +1995-02-10,480.19,481.96,479.53,481.46,295600000,481.46 +1995-02-09,481.19,482.00,479.91,480.19,325570000,480.19 +1995-02-08,480.81,482.60,480.40,481.19,318430000,481.19 +1995-02-07,481.14,481.32,479.69,480.81,314660000,480.81 +1995-02-06,478.64,481.95,478.36,481.14,325660000,481.14 +1995-02-03,472.78,479.91,472.78,478.65,441000000,478.65 +1995-02-02,470.40,472.79,469.95,472.79,322110000,472.79 +1995-02-01,470.42,472.75,469.29,470.40,395310000,470.40 +1995-01-31,468.51,471.03,468.18,470.42,411590000,470.42 +1995-01-30,470.39,470.52,467.49,468.51,318550000,468.51 +1995-01-27,468.32,471.36,468.32,470.39,339510000,470.39 +1995-01-26,467.44,468.62,466.90,468.32,304730000,468.32 +1995-01-25,465.86,469.51,464.40,467.44,342610000,467.44 +1995-01-24,465.81,466.88,465.47,465.86,315430000,465.86 +1995-01-23,464.78,466.23,461.14,465.82,325830000,465.82 +1995-01-20,466.95,466.99,463.99,464.78,378190000,464.78 +1995-01-19,469.72,469.72,466.40,466.95,297220000,466.95 +1995-01-18,470.05,470.43,468.03,469.71,344660000,469.71 +1995-01-17,469.38,470.15,468.19,470.05,331520000,470.05 +1995-01-16,465.97,470.39,465.97,469.38,315810000,469.38 +1995-01-13,461.64,466.43,461.64,465.97,336740000,465.97 +1995-01-12,461.64,461.93,460.63,461.64,313040000,461.64 +1995-01-11,461.68,463.61,458.65,461.66,346310000,461.66 +1995-01-10,460.90,464.59,460.90,461.68,352450000,461.68 +1995-01-09,460.67,461.77,459.74,460.83,278790000,460.83 +1995-01-06,460.38,462.49,459.47,460.68,308070000,460.68 +1995-01-05,460.73,461.30,459.75,460.34,309050000,460.34 +1995-01-04,459.13,460.72,457.56,460.71,319510000,460.71 +1995-01-03,459.21,459.27,457.20,459.11,262450000,459.11 +1994-12-30,461.17,462.12,459.24,459.27,256260000,459.27 +1994-12-29,460.92,461.81,460.36,461.17,250650000,461.17 +1994-12-28,462.47,462.49,459.00,460.86,246260000,460.86 +1994-12-27,459.85,462.73,459.85,462.47,211180000,462.47 +1994-12-23,459.70,461.32,459.39,459.83,196540000,459.83 +1994-12-22,459.62,461.21,459.33,459.68,340330000,459.68 +1994-12-21,457.24,461.70,457.17,459.61,379130000,459.61 +1994-12-20,458.08,458.45,456.37,457.10,326530000,457.10 +1994-12-19,458.78,458.78,456.64,457.91,271850000,457.91 +1994-12-16,455.35,458.80,455.35,458.80,481860000,458.80 +1994-12-15,454.97,456.84,454.50,455.34,332790000,455.34 +1994-12-14,450.05,456.16,450.05,454.97,355000000,454.97 +1994-12-13,449.52,451.69,449.43,450.15,307110000,450.15 +1994-12-12,446.95,449.48,445.62,449.47,285730000,449.47 +1994-12-09,445.45,446.98,442.88,446.96,336440000,446.96 +1994-12-08,451.23,452.06,444.59,445.45,362290000,445.45 +1994-12-07,453.11,453.11,450.01,451.23,283490000,451.23 +1994-12-06,453.29,453.93,450.35,453.11,298930000,453.11 +1994-12-05,453.30,455.04,452.06,453.32,258490000,453.32 +1994-12-02,448.92,453.31,448.00,453.30,284750000,453.30 +1994-12-01,453.55,453.91,447.97,448.92,285920000,448.92 +1994-11-30,455.17,457.13,453.27,453.69,298650000,453.69 +1994-11-29,454.23,455.17,452.14,455.17,286620000,455.17 +1994-11-28,452.26,454.19,451.04,454.16,265480000,454.16 +1994-11-25,449.94,452.87,449.94,452.29,118290000,452.29 +1994-11-23,450.01,450.61,444.18,449.93,430760000,449.93 +1994-11-22,457.95,458.03,450.08,450.09,387270000,450.09 +1994-11-21,461.69,463.41,457.55,458.30,293030000,458.30 +1994-11-18,463.60,463.84,460.25,461.47,356730000,461.47 +1994-11-17,465.71,465.83,461.47,463.57,323190000,463.57 +1994-11-16,465.06,466.25,464.28,465.62,296980000,465.62 +1994-11-15,466.04,468.51,462.95,465.03,336450000,465.03 +1994-11-14,462.44,466.29,462.35,466.04,260380000,466.04 +1994-11-11,464.17,464.17,461.45,462.35,220800000,462.35 +1994-11-10,465.40,467.79,463.73,464.37,280910000,464.37 +1994-11-09,465.65,469.95,463.46,465.40,337780000,465.40 +1994-11-08,463.08,467.54,463.07,465.65,290860000,465.65 +1994-11-07,462.31,463.56,461.25,463.07,255030000,463.07 +1994-11-04,467.96,469.28,462.28,462.28,280560000,462.28 +1994-11-03,466.50,468.64,466.40,467.91,285170000,467.91 +1994-11-02,468.41,470.92,466.36,466.51,331360000,466.51 +1994-11-01,472.26,472.26,467.64,468.42,314940000,468.42 +1994-10-31,473.76,474.74,472.33,472.35,302820000,472.35 +1994-10-28,465.84,473.78,465.80,473.77,381450000,473.77 +1994-10-27,462.68,465.85,462.62,465.85,327790000,465.85 +1994-10-26,461.55,463.77,461.22,462.62,322570000,462.62 +1994-10-25,460.83,461.95,458.26,461.53,326110000,461.53 +1994-10-24,464.89,466.37,460.80,460.83,282800000,460.83 +1994-10-21,466.69,466.69,463.83,464.89,315310000,464.89 +1994-10-20,470.37,470.37,465.39,466.85,331460000,466.85 +1994-10-19,467.69,471.43,465.96,470.28,317030000,470.28 +1994-10-18,469.02,469.19,466.54,467.66,259730000,467.66 +1994-10-17,469.11,469.88,468.16,468.96,238490000,468.96 +1994-10-14,467.78,469.53,466.11,469.10,251770000,469.10 +1994-10-13,465.56,471.30,465.56,467.79,337900000,467.79 +1994-10-12,465.78,466.70,464.79,465.47,269550000,465.47 +1994-10-11,459.04,466.34,459.04,465.79,355540000,465.79 +1994-10-10,455.12,459.29,455.12,459.04,213110000,459.04 +1994-10-07,452.37,455.67,452.13,455.10,284230000,455.10 +1994-10-06,453.52,454.49,452.13,452.36,272620000,452.36 +1994-10-05,454.59,454.59,449.27,453.52,359670000,453.52 +1994-10-04,461.77,462.46,454.03,454.59,325620000,454.59 +1994-10-03,462.69,463.31,460.33,461.74,269130000,461.74 +1994-09-30,462.27,465.30,461.91,462.71,291900000,462.71 +1994-09-29,464.84,464.84,461.51,462.24,302280000,462.24 +1994-09-28,462.10,465.55,462.10,464.84,330020000,464.84 +1994-09-27,460.82,462.75,459.83,462.05,290330000,462.05 +1994-09-26,459.65,460.87,459.31,460.82,272530000,460.82 +1994-09-23,461.27,462.14,459.01,459.67,300060000,459.67 +1994-09-22,461.45,463.22,460.96,461.27,305210000,461.27 +1994-09-21,463.42,464.01,458.47,461.46,351830000,461.46 +1994-09-20,470.83,470.83,463.36,463.36,326050000,463.36 +1994-09-19,471.21,473.15,470.68,470.85,277110000,470.85 +1994-09-16,474.81,474.81,470.06,471.19,410750000,471.19 +1994-09-15,468.80,474.81,468.79,474.81,281920000,474.81 +1994-09-14,467.55,468.86,466.82,468.80,297480000,468.80 +1994-09-13,466.27,468.76,466.27,467.51,293370000,467.51 +1994-09-12,468.18,468.42,466.15,466.21,244680000,466.21 +1994-09-09,473.13,473.13,466.55,468.18,293360000,468.18 +1994-09-08,470.96,473.40,470.86,473.14,295010000,473.14 +1994-09-07,471.86,472.41,470.20,470.99,290330000,470.99 +1994-09-06,471.00,471.92,469.64,471.86,199670000,471.86 +1994-09-02,473.20,474.89,470.67,470.99,216150000,470.99 +1994-09-01,475.49,475.49,471.74,473.17,282830000,473.17 +1994-08-31,476.07,477.59,474.43,475.49,354650000,475.49 +1994-08-30,474.59,476.61,473.56,476.07,294520000,476.07 +1994-08-29,473.89,477.14,473.89,474.59,266080000,474.59 +1994-08-26,468.08,474.65,468.08,473.80,305120000,473.80 +1994-08-25,469.07,470.12,467.64,468.08,284230000,468.08 +1994-08-24,464.51,469.05,464.51,469.03,310510000,469.03 +1994-08-23,462.39,466.58,462.39,464.51,307240000,464.51 +1994-08-22,463.61,463.61,461.46,462.32,235870000,462.32 +1994-08-19,463.25,464.37,461.81,463.68,276630000,463.68 +1994-08-18,465.10,465.10,462.30,463.17,287330000,463.17 +1994-08-17,465.11,465.91,464.57,465.17,309250000,465.17 +1994-08-16,461.22,465.20,459.89,465.01,306640000,465.01 +1994-08-15,461.97,463.34,461.21,461.23,223210000,461.23 +1994-08-12,458.88,462.27,458.88,461.94,249280000,461.94 +1994-08-11,460.31,461.41,456.88,458.88,275690000,458.88 +1994-08-10,457.98,460.48,457.98,460.30,279500000,460.30 +1994-08-09,457.89,458.16,456.66,457.92,259140000,457.92 +1994-08-08,457.08,458.30,457.01,457.89,217680000,457.89 +1994-08-05,458.34,458.34,456.08,457.09,230270000,457.09 +1994-08-04,461.45,461.49,458.40,458.40,289150000,458.40 +1994-08-03,460.65,461.46,459.51,461.45,283840000,461.45 +1994-08-02,461.01,462.77,459.70,460.56,294740000,460.56 +1994-08-01,458.28,461.01,458.08,461.01,258180000,461.01 +1994-07-29,454.25,459.33,454.25,458.26,269560000,458.26 +1994-07-28,452.57,454.93,452.30,454.24,245990000,454.24 +1994-07-27,453.36,453.38,451.36,452.57,251680000,452.57 +1994-07-26,454.25,454.25,452.78,453.36,232670000,453.36 +1994-07-25,453.10,454.32,452.76,454.25,213470000,454.25 +1994-07-22,452.61,454.03,452.33,453.11,261600000,453.11 +1994-07-21,451.60,453.22,451.00,452.61,292120000,452.61 +1994-07-20,453.89,454.16,450.69,451.60,267840000,451.60 +1994-07-19,455.22,455.30,453.86,453.86,251530000,453.86 +1994-07-18,454.41,455.71,453.26,455.22,227460000,455.22 +1994-07-15,453.28,454.33,452.80,454.16,275860000,454.16 +1994-07-14,448.73,454.33,448.73,453.41,322330000,453.41 +1994-07-13,448.03,450.06,447.97,448.73,265840000,448.73 +1994-07-12,448.02,448.16,444.65,447.95,252250000,447.95 +1994-07-11,449.56,450.24,445.27,448.06,222970000,448.06 +1994-07-08,448.38,449.75,446.53,449.55,236520000,449.55 +1994-07-07,446.15,448.64,446.15,448.38,259740000,448.38 +1994-07-06,446.29,447.28,444.18,446.13,236230000,446.13 +1994-07-05,446.20,447.62,445.14,446.37,195410000,446.37 +1994-07-01,444.27,446.45,443.58,446.20,199030000,446.20 +1994-06-30,447.63,448.61,443.66,444.27,293410000,444.27 +1994-06-29,446.05,449.83,446.04,447.63,264430000,447.63 +1994-06-28,447.36,448.47,443.08,446.07,267740000,446.07 +1994-06-27,442.78,447.76,439.83,447.31,250080000,447.31 +1994-06-24,449.63,449.63,442.51,442.80,261260000,442.80 +1994-06-23,453.09,454.16,449.43,449.63,256480000,449.63 +1994-06-22,451.40,453.91,451.40,453.09,251110000,453.09 +1994-06-21,455.48,455.48,449.45,451.34,298730000,451.34 +1994-06-20,458.45,458.45,454.46,455.48,229520000,455.48 +1994-06-17,461.93,462.16,458.44,458.45,373450000,458.45 +1994-06-16,460.61,461.93,459.80,461.93,256390000,461.93 +1994-06-15,462.38,463.23,459.95,460.61,269740000,460.61 +1994-06-14,459.10,462.52,459.10,462.37,288550000,462.37 +1994-06-13,458.67,459.36,457.18,459.10,243640000,459.10 +1994-06-10,457.86,459.48,457.36,458.67,222480000,458.67 +1994-06-09,457.06,457.87,455.86,457.86,252870000,457.86 +1994-06-08,458.21,459.74,455.43,457.06,256000000,457.06 +1994-06-07,458.88,459.46,457.65,458.21,234680000,458.21 +1994-06-06,460.13,461.87,458.85,458.88,259080000,458.88 +1994-06-03,457.65,460.86,456.27,460.13,271490000,460.13 +1994-06-02,457.62,458.50,457.26,457.65,271630000,457.65 +1994-06-01,456.50,458.29,453.99,457.63,279910000,457.63 +1994-05-31,457.32,457.61,455.16,456.50,216700000,456.50 +1994-05-27,457.03,457.33,454.67,457.33,186430000,457.33 +1994-05-26,456.33,457.77,455.79,457.06,255740000,457.06 +1994-05-25,454.84,456.34,452.20,456.34,254420000,456.34 +1994-05-24,453.21,456.77,453.21,454.81,280040000,454.81 +1994-05-23,454.92,454.92,451.79,453.20,249420000,453.20 +1994-05-20,456.48,456.48,454.22,454.92,295180000,454.92 +1994-05-19,453.69,456.88,453.00,456.48,303680000,456.48 +1994-05-18,449.39,454.45,448.87,453.69,337670000,453.69 +1994-05-17,444.49,449.37,443.70,449.37,311280000,449.37 +1994-05-16,444.15,445.82,443.62,444.49,234700000,444.49 +1994-05-13,443.62,444.72,441.21,444.14,252070000,444.14 +1994-05-12,441.50,444.80,441.50,443.75,272770000,443.75 +1994-05-11,446.03,446.03,440.78,441.49,277400000,441.49 +1994-05-10,442.37,446.84,442.37,446.01,297660000,446.01 +1994-05-09,447.82,447.82,441.84,442.32,250870000,442.32 +1994-05-06,451.37,451.37,445.64,447.82,291910000,447.82 +1994-05-05,451.72,452.82,450.72,451.38,255690000,451.38 +1994-05-04,453.04,453.11,449.87,451.72,267940000,451.72 +1994-05-03,453.06,453.98,450.51,453.03,288270000,453.03 +1994-05-02,450.91,453.57,449.05,453.02,296130000,453.02 +1994-04-29,449.07,451.35,447.91,450.91,293970000,450.91 +1994-04-28,451.84,452.23,447.97,449.10,325200000,449.10 +1994-04-26,452.71,452.79,450.66,451.87,288120000,451.87 +1994-04-25,447.64,452.71,447.58,452.71,262320000,452.71 +1994-04-22,448.73,449.96,447.16,447.63,295710000,447.63 +1994-04-21,441.96,449.14,441.96,448.73,378770000,448.73 +1994-04-20,442.54,445.01,439.40,441.96,366540000,441.96 +1994-04-19,442.54,444.82,438.83,442.54,323280000,442.54 +1994-04-18,446.27,447.87,441.48,442.46,271470000,442.46 +1994-04-15,446.38,447.85,445.81,446.18,309550000,446.18 +1994-04-14,446.26,447.55,443.57,446.38,275130000,446.38 +1994-04-13,447.63,448.57,442.62,446.26,278030000,446.26 +1994-04-12,449.83,450.80,447.33,447.57,257990000,447.57 +1994-04-11,447.12,450.34,447.10,449.87,243180000,449.87 +1994-04-08,450.89,450.89,445.51,447.10,264090000,447.10 +1994-04-07,448.11,451.10,446.38,450.88,289280000,450.88 +1994-04-06,448.29,449.63,444.98,448.05,302000000,448.05 +1994-04-05,439.14,448.29,439.14,448.29,365990000,448.29 +1994-04-04,445.66,445.66,435.86,438.92,344390000,438.92 +1994-03-31,445.55,447.16,436.16,445.77,403580000,445.77 +1994-03-30,452.48,452.49,445.55,445.55,390520000,445.55 +1994-03-29,460.00,460.32,452.43,452.48,305360000,452.48 +1994-03-28,460.58,461.12,456.10,460.00,287350000,460.00 +1994-03-25,464.35,465.29,460.58,460.58,249640000,460.58 +1994-03-24,468.57,468.57,462.41,464.35,303740000,464.35 +1994-03-23,468.89,470.38,468.52,468.54,281500000,468.54 +1994-03-22,468.40,470.47,467.88,468.80,282240000,468.80 +1994-03-21,471.06,471.06,467.23,468.54,247380000,468.54 +1994-03-18,470.89,471.09,467.83,471.06,462240000,471.06 +1994-03-17,469.42,471.05,468.62,470.90,303930000,470.90 +1994-03-16,467.04,469.85,465.48,469.42,307640000,469.42 +1994-03-15,467.39,468.99,466.04,467.01,303750000,467.01 +1994-03-14,466.44,467.60,466.08,467.39,260150000,467.39 +1994-03-11,463.86,466.61,462.54,466.44,303890000,466.44 +1994-03-10,467.08,467.29,462.46,463.90,369370000,463.90 +1994-03-09,465.94,467.42,463.40,467.06,309810000,467.06 +1994-03-08,466.92,467.79,465.02,465.88,298110000,465.88 +1994-03-07,464.74,468.07,464.74,466.91,285590000,466.91 +1994-03-04,463.03,466.16,462.41,464.74,311850000,464.74 +1994-03-03,464.81,464.83,462.50,463.01,291790000,463.01 +1994-03-02,464.40,464.87,457.49,464.81,361130000,464.81 +1994-03-01,467.19,467.43,462.02,464.44,304450000,464.44 +1994-02-28,466.07,469.16,466.07,467.14,268690000,467.14 +1994-02-25,464.33,466.48,464.33,466.07,273680000,466.07 +1994-02-24,470.65,470.65,464.26,464.26,342940000,464.26 +1994-02-23,471.48,472.41,469.47,470.69,309910000,470.69 +1994-02-22,467.69,471.65,467.58,471.46,270900000,471.46 +1994-02-18,470.29,471.09,466.07,467.69,293210000,467.69 +1994-02-17,472.79,475.12,468.44,470.34,340030000,470.34 +1994-02-16,472.53,474.16,471.94,472.79,295450000,472.79 +1994-02-15,470.23,473.41,470.23,472.52,306790000,472.52 +1994-02-14,470.18,471.99,469.05,470.23,263190000,470.23 +1994-02-11,468.93,471.13,466.89,470.18,213740000,470.18 +1994-02-10,472.81,473.13,468.91,468.93,327250000,468.93 +1994-02-09,471.05,473.41,471.05,472.77,332670000,472.77 +1994-02-08,471.76,472.33,469.50,471.05,318180000,471.05 +1994-02-07,469.81,472.09,467.57,471.76,348270000,471.76 +1994-02-04,480.68,481.02,469.28,469.81,378380000,469.81 +1994-02-03,481.96,481.96,478.71,480.71,318350000,480.71 +1994-02-02,479.62,482.23,479.57,482.00,328960000,482.00 +1994-02-01,481.60,481.64,479.18,479.62,322510000,479.62 +1994-01-31,478.70,482.85,478.70,481.61,322870000,481.61 +1994-01-28,477.05,479.75,477.05,478.70,313140000,478.70 +1994-01-27,473.20,477.52,473.20,477.05,346500000,477.05 +1994-01-26,470.92,473.44,470.72,473.20,304660000,473.20 +1994-01-25,471.97,472.56,470.27,470.92,326120000,470.92 +1994-01-24,474.72,475.20,471.49,471.97,296900000,471.97 +1994-01-21,474.98,475.56,473.72,474.72,346350000,474.72 +1994-01-20,474.30,475.00,473.42,474.98,310450000,474.98 +1994-01-19,474.25,474.70,472.21,474.30,311370000,474.30 +1994-01-18,473.30,475.19,473.29,474.25,308840000,474.25 +1994-01-17,474.91,474.91,472.84,473.30,233980000,473.30 +1994-01-14,472.50,475.32,472.50,474.91,304920000,474.91 +1994-01-13,474.17,474.17,471.80,472.47,277970000,472.47 +1994-01-12,474.13,475.06,472.14,474.17,310690000,474.17 +1994-01-11,475.27,475.28,473.27,474.13,305490000,474.13 +1994-01-10,469.90,475.27,469.55,475.27,319490000,475.27 +1994-01-07,467.09,470.26,467.03,469.90,324920000,469.90 +1994-01-06,467.55,469.00,467.02,467.12,365960000,467.12 +1994-01-05,466.89,467.82,465.92,467.55,400030000,467.55 +1994-01-04,465.44,466.89,464.44,466.89,326600000,466.89 +1994-01-03,466.51,466.94,464.36,465.44,270140000,465.44 +1993-12-31,468.66,470.75,466.45,466.45,168590000,466.45 +1993-12-30,470.58,470.58,468.09,468.64,195860000,468.64 +1993-12-29,470.88,471.29,469.87,470.58,269570000,470.58 +1993-12-28,470.61,471.05,469.43,470.94,200960000,470.94 +1993-12-27,467.40,470.55,467.35,470.54,171200000,470.54 +1993-12-23,467.30,468.97,467.30,467.38,227240000,467.38 +1993-12-22,465.08,467.38,465.08,467.32,272440000,467.32 +1993-12-21,465.84,465.92,464.03,465.30,273370000,465.30 +1993-12-20,466.38,466.90,465.53,465.85,255900000,465.85 +1993-12-17,463.34,466.38,463.34,466.38,363750000,466.38 +1993-12-16,461.86,463.98,461.86,463.34,284620000,463.34 +1993-12-15,463.06,463.69,461.84,461.84,331770000,461.84 +1993-12-14,465.73,466.12,462.46,463.06,275050000,463.06 +1993-12-13,463.93,465.71,462.71,465.70,256580000,465.70 +1993-12-10,464.18,464.87,462.66,463.93,245620000,463.93 +1993-12-09,466.29,466.54,463.87,464.18,287570000,464.18 +1993-12-08,465.88,466.73,465.42,466.29,314460000,466.29 +1993-12-07,466.43,466.77,465.44,466.76,285690000,466.76 +1993-12-06,464.89,466.89,464.40,466.43,292370000,466.43 +1993-12-03,463.13,464.89,462.67,464.89,268360000,464.89 +1993-12-02,461.89,463.22,461.45,463.11,256370000,463.11 +1993-12-01,461.93,464.47,461.63,461.89,293870000,461.89 +1993-11-30,461.90,463.62,460.45,461.79,286660000,461.79 +1993-11-29,463.06,464.83,461.83,461.90,272710000,461.90 +1993-11-26,462.36,463.63,462.36,463.06,90220000,463.06 +1993-11-24,461.03,462.90,461.03,462.36,230630000,462.36 +1993-11-23,459.13,461.77,458.47,461.03,260400000,461.03 +1993-11-22,462.60,462.60,457.08,459.13,280130000,459.13 +1993-11-19,463.59,463.60,460.03,462.60,302970000,462.60 +1993-11-18,464.83,464.88,461.73,463.62,313490000,463.62 +1993-11-17,466.74,467.24,462.73,464.81,316940000,464.81 +1993-11-16,463.75,466.74,462.97,466.74,303980000,466.74 +1993-11-15,465.39,466.13,463.01,463.75,251030000,463.75 +1993-11-12,462.64,465.84,462.64,465.39,326240000,465.39 +1993-11-11,463.72,464.96,462.49,462.64,283820000,462.64 +1993-11-10,460.40,463.72,459.57,463.72,283450000,463.72 +1993-11-09,460.21,463.42,460.21,460.33,276360000,460.33 +1993-11-08,459.57,461.54,458.78,460.21,234340000,460.21 +1993-11-05,457.49,459.63,454.36,459.57,336890000,459.57 +1993-11-04,463.02,463.16,457.26,457.49,323430000,457.49 +1993-11-03,468.44,468.61,460.95,463.02,342110000,463.02 +1993-11-02,469.10,469.10,466.20,468.44,304780000,468.44 +1993-11-01,467.83,469.11,467.33,469.10,256030000,469.10 +1993-10-29,467.72,468.20,467.37,467.83,270570000,467.83 +1993-10-28,464.52,468.76,464.52,467.73,301220000,467.73 +1993-10-27,464.30,464.61,463.36,464.61,279830000,464.61 +1993-10-26,464.20,464.32,462.65,464.30,284530000,464.30 +1993-10-25,463.27,464.49,462.05,464.20,260310000,464.20 +1993-10-22,465.36,467.82,463.27,463.27,301440000,463.27 +1993-10-21,466.06,466.64,464.38,465.36,289600000,465.36 +1993-10-20,466.21,466.87,464.54,466.07,305670000,466.07 +1993-10-19,468.41,468.64,464.80,466.21,304400000,466.21 +1993-10-18,469.50,470.04,468.02,468.45,329580000,468.45 +1993-10-15,466.83,471.10,466.83,469.50,366110000,469.50 +1993-10-14,461.55,466.83,461.55,466.83,352530000,466.83 +1993-10-13,461.12,461.98,460.76,461.49,290930000,461.49 +1993-10-12,461.04,462.47,460.73,461.12,263970000,461.12 +1993-10-11,460.31,461.87,460.31,460.88,183060000,460.88 +1993-10-08,459.18,460.99,456.40,460.31,243600000,460.31 +1993-10-07,460.71,461.13,459.08,459.18,255210000,459.18 +1993-10-06,461.24,462.60,460.26,460.74,277070000,460.74 +1993-10-05,461.34,463.15,459.45,461.20,294570000,461.20 +1993-10-04,461.28,461.80,460.02,461.34,229380000,461.34 +1993-10-01,458.93,461.48,458.35,461.28,256880000,461.28 +1993-09-30,460.11,460.56,458.28,458.93,280980000,458.93 +1993-09-29,461.60,462.17,459.51,460.11,277690000,460.11 +1993-09-28,461.84,462.08,460.91,461.53,243320000,461.53 +1993-09-27,457.63,461.81,457.63,461.80,244920000,461.80 +1993-09-24,457.74,458.56,456.92,457.63,248270000,457.63 +1993-09-23,456.25,458.69,456.25,457.74,275350000,457.74 +1993-09-22,452.94,456.92,452.94,456.20,298960000,456.20 +1993-09-21,455.05,455.80,449.64,452.95,300310000,452.95 +1993-09-20,458.84,459.91,455.00,455.05,231130000,455.05 +1993-09-17,459.43,459.43,457.09,458.83,381370000,458.83 +1993-09-16,461.54,461.54,459.00,459.43,229700000,459.43 +1993-09-15,459.90,461.96,456.31,461.60,294410000,461.60 +1993-09-14,461.93,461.93,458.15,459.90,258650000,459.90 +1993-09-13,461.70,463.38,461.41,462.06,244970000,462.06 +1993-09-10,457.49,461.86,457.49,461.72,269950000,461.72 +1993-09-09,456.65,458.11,455.17,457.50,258070000,457.50 +1993-09-08,458.52,458.53,453.75,456.65,283100000,456.65 +1993-09-07,461.34,462.07,457.95,458.52,229500000,458.52 +1993-09-03,461.30,462.05,459.91,461.34,197160000,461.34 +1993-09-02,463.13,463.54,461.07,461.30,259870000,461.30 +1993-09-01,463.55,463.80,461.77,463.15,245040000,463.15 +1993-08-31,461.90,463.56,461.29,463.56,252830000,463.56 +1993-08-30,460.54,462.58,460.28,461.90,194180000,461.90 +1993-08-27,461.05,461.05,459.19,460.54,196140000,460.54 +1993-08-26,460.04,462.87,458.82,461.04,254070000,461.04 +1993-08-25,459.75,462.04,459.30,460.13,301650000,460.13 +1993-08-24,455.23,459.77,455.04,459.77,270700000,459.77 +1993-08-23,456.12,456.12,454.29,455.23,212500000,455.23 +1993-08-20,456.51,456.68,454.60,456.16,276800000,456.16 +1993-08-19,456.01,456.76,455.20,456.43,293330000,456.43 +1993-08-18,453.21,456.99,453.21,456.04,312940000,456.04 +1993-08-17,452.38,453.70,451.96,453.13,261320000,453.13 +1993-08-16,450.25,453.41,450.25,452.38,233640000,452.38 +1993-08-13,448.97,450.25,448.97,450.14,214370000,450.14 +1993-08-12,450.47,451.63,447.53,448.96,278530000,448.96 +1993-08-11,449.60,451.00,449.60,450.46,268330000,450.46 +1993-08-10,450.71,450.71,449.10,449.45,255520000,449.45 +1993-08-09,448.68,451.51,448.31,450.72,232750000,450.72 +1993-08-06,448.13,449.26,447.87,448.68,221170000,448.68 +1993-08-05,448.55,449.61,446.94,448.13,261900000,448.13 +1993-08-04,449.27,449.72,447.93,448.54,230040000,448.54 +1993-08-03,450.15,450.43,447.59,449.27,253110000,449.27 +1993-08-02,448.13,450.15,448.03,450.15,230380000,450.15 +1993-07-30,450.19,450.22,446.98,448.13,254420000,448.13 +1993-07-29,447.19,450.77,447.19,450.24,261240000,450.24 +1993-07-28,448.25,448.61,446.59,447.19,273100000,447.19 +1993-07-27,449.00,449.44,446.76,448.24,256750000,448.24 +1993-07-26,447.06,449.50,447.04,449.09,222580000,449.09 +1993-07-23,444.54,447.10,444.54,447.10,222170000,447.10 +1993-07-22,447.18,447.23,443.72,444.51,249630000,444.51 +1993-07-21,447.28,447.50,445.84,447.18,278590000,447.18 +1993-07-20,446.03,447.63,443.71,447.31,277420000,447.31 +1993-07-19,445.75,446.78,444.83,446.03,216370000,446.03 +1993-07-16,449.07,449.08,445.66,445.75,263100000,445.75 +1993-07-15,450.09,450.12,447.26,449.22,277810000,449.22 +1993-07-14,448.08,451.12,448.08,450.08,297430000,450.08 +1993-07-13,449.00,450.70,448.07,448.09,236720000,448.09 +1993-07-12,448.13,449.11,447.71,448.98,202310000,448.98 +1993-07-09,448.64,448.94,446.74,448.11,235210000,448.11 +1993-07-08,442.84,448.64,442.84,448.64,282910000,448.64 +1993-07-07,441.40,443.63,441.40,442.83,253170000,442.83 +1993-07-06,445.86,446.87,441.42,441.43,234810000,441.43 +1993-07-02,449.02,449.02,445.20,445.84,220750000,445.84 +1993-07-01,450.54,451.15,448.71,449.02,292040000,449.02 +1993-06-30,450.69,451.47,450.15,450.53,281120000,450.53 +1993-06-29,451.89,451.90,449.67,450.69,276310000,450.69 +1993-06-28,447.60,451.90,447.60,451.85,242090000,451.85 +1993-06-25,446.62,448.64,446.62,447.60,210430000,447.60 +1993-06-24,443.04,447.21,442.50,446.62,267450000,446.62 +1993-06-23,445.96,445.96,443.19,443.19,278260000,443.19 +1993-06-22,446.25,446.29,444.94,445.93,259530000,445.93 +1993-06-21,443.68,446.22,443.68,446.22,223650000,446.22 +1993-06-18,448.54,448.59,443.68,443.68,300500000,443.68 +1993-06-17,447.43,448.98,446.91,448.54,239810000,448.54 +1993-06-16,446.27,447.43,443.61,447.43,267500000,447.43 +1993-06-15,447.73,448.28,446.18,446.27,234110000,446.27 +1993-06-14,447.26,448.64,447.23,447.71,210440000,447.71 +1993-06-11,445.38,448.19,445.38,447.26,256750000,447.26 +1993-06-10,445.78,446.22,444.09,445.38,232600000,445.38 +1993-06-09,444.71,447.39,444.66,445.78,249030000,445.78 +1993-06-08,447.65,447.65,444.31,444.71,240640000,444.71 +1993-06-07,450.07,450.75,447.32,447.69,236920000,447.69 +1993-06-04,452.43,452.43,448.92,450.06,226440000,450.06 +1993-06-03,453.84,453.85,451.12,452.49,285570000,452.49 +1993-06-02,453.83,454.53,452.68,453.85,295560000,453.85 +1993-06-01,450.23,455.63,450.23,453.83,229690000,453.83 +1993-05-28,452.41,452.41,447.67,450.19,207820000,450.19 +1993-05-27,453.44,454.55,451.14,452.41,300810000,452.41 +1993-05-26,448.85,453.51,448.82,453.44,274230000,453.44 +1993-05-25,448.00,449.04,447.70,448.85,222090000,448.85 +1993-05-24,445.84,448.44,445.26,448.00,197990000,448.00 +1993-05-21,450.59,450.59,444.89,445.84,279120000,445.84 +1993-05-20,447.57,450.59,447.36,450.59,289160000,450.59 +1993-05-19,440.32,447.86,436.86,447.57,342420000,447.57 +1993-05-18,440.39,441.26,437.95,440.32,264300000,440.32 +1993-05-17,439.56,440.38,437.83,440.37,227580000,440.37 +1993-05-14,439.22,439.82,438.10,439.56,252910000,439.56 +1993-05-13,444.75,444.75,439.23,439.23,293920000,439.23 +1993-05-12,444.32,445.16,442.87,444.80,255680000,444.80 +1993-05-11,442.80,444.57,441.52,444.36,218480000,444.36 +1993-05-10,442.34,445.42,442.05,442.80,235580000,442.80 +1993-05-07,443.28,443.70,441.69,442.31,223570000,442.31 +1993-05-06,444.60,444.81,442.90,443.26,255460000,443.26 +1993-05-05,443.98,446.09,443.76,444.52,274240000,444.52 +1993-05-04,442.58,445.19,442.45,444.05,268310000,444.05 +1993-05-03,440.19,442.59,438.25,442.46,224970000,442.46 +1993-04-30,438.89,442.29,438.89,440.19,247460000,440.19 +1993-04-29,438.02,438.96,435.59,438.89,249760000,438.89 +1993-04-28,438.01,438.80,436.68,438.02,267980000,438.02 +1993-04-27,433.52,438.02,433.14,438.01,284140000,438.01 +1993-04-26,437.03,438.35,432.30,433.54,283260000,433.54 +1993-04-23,439.49,439.49,436.82,437.03,259810000,437.03 +1993-04-22,443.55,445.73,439.46,439.46,310390000,439.46 +1993-04-21,445.09,445.77,443.08,443.63,287300000,443.63 +1993-04-20,447.46,447.46,441.81,445.10,317990000,445.10 +1993-04-19,448.94,449.14,445.85,447.46,244710000,447.46 +1993-04-16,448.41,449.39,447.67,448.94,305160000,448.94 +1993-04-15,448.60,449.11,446.39,448.40,259500000,448.40 +1993-04-14,449.22,450.00,448.02,448.66,257340000,448.66 +1993-04-13,448.41,450.40,447.66,449.22,286690000,449.22 +1993-04-12,441.84,448.37,441.84,448.37,259690000,448.37 +1993-04-08,442.71,443.77,440.02,441.84,284370000,441.84 +1993-04-07,441.16,442.73,440.50,442.73,300000000,442.73 +1993-04-06,442.29,443.38,439.48,441.16,293680000,441.16 +1993-04-05,441.42,442.43,440.53,442.29,296080000,442.29 +1993-04-02,450.28,450.28,440.71,441.39,323330000,441.39 +1993-04-01,451.67,452.63,449.60,450.30,234530000,450.30 +1993-03-31,451.97,454.88,451.67,451.67,279190000,451.67 +1993-03-30,450.79,452.06,449.63,451.97,231190000,451.97 +1993-03-29,447.76,452.81,447.75,450.77,199970000,450.77 +1993-03-26,450.91,452.09,447.69,447.78,226650000,447.78 +1993-03-25,448.09,451.75,447.93,450.88,251530000,450.88 +1993-03-24,448.71,450.90,446.10,448.07,274300000,448.07 +1993-03-23,448.88,449.80,448.30,448.76,232730000,448.76 +1993-03-22,450.17,450.17,446.08,448.88,233190000,448.88 +1993-03-19,451.90,453.32,449.91,450.18,339660000,450.18 +1993-03-18,448.36,452.39,448.36,451.89,241180000,451.89 +1993-03-17,451.36,451.36,447.99,448.31,241270000,448.31 +1993-03-16,451.43,452.36,451.01,451.37,218820000,451.37 +1993-03-15,449.83,451.43,449.40,451.43,195930000,451.43 +1993-03-12,453.70,453.70,447.04,449.83,255420000,449.83 +1993-03-11,456.35,456.76,453.48,453.72,257060000,453.72 +1993-03-10,454.40,456.34,452.70,456.33,255610000,456.33 +1993-03-09,454.67,455.52,453.68,454.40,290670000,454.40 +1993-03-08,446.12,454.71,446.12,454.71,275290000,454.71 +1993-03-05,447.34,449.59,445.56,446.11,253480000,446.11 +1993-03-04,449.26,449.52,446.72,447.34,234220000,447.34 +1993-03-03,447.90,450.00,447.73,449.26,277380000,449.26 +1993-03-02,442.00,447.91,441.07,447.90,269750000,447.90 +1993-03-01,443.38,444.18,441.34,442.01,232460000,442.01 +1993-02-26,442.34,443.77,440.98,443.38,234160000,443.38 +1993-02-25,440.70,442.34,439.67,442.34,252860000,442.34 +1993-02-24,434.76,440.87,434.68,440.87,316750000,440.87 +1993-02-23,435.34,436.84,432.41,434.80,329060000,434.80 +1993-02-22,434.21,436.49,433.53,435.24,311570000,435.24 +1993-02-19,431.93,434.26,431.68,434.22,310700000,434.22 +1993-02-18,433.30,437.79,428.25,431.90,311180000,431.90 +1993-02-17,433.93,433.97,430.92,433.30,302210000,433.30 +1993-02-16,444.53,444.53,433.47,433.91,332850000,433.91 +1993-02-12,447.66,447.70,444.58,444.58,216810000,444.58 +1993-02-11,446.21,449.36,446.21,447.66,257190000,447.66 +1993-02-10,445.33,446.37,444.24,446.23,251910000,446.23 +1993-02-09,448.04,448.04,444.52,445.33,240410000,445.33 +1993-02-08,448.94,450.04,447.70,447.85,243400000,447.85 +1993-02-05,449.56,449.56,446.95,448.93,324710000,448.93 +1993-02-04,447.20,449.86,447.20,449.56,351140000,449.56 +1993-02-03,442.56,447.35,442.56,447.20,345410000,447.20 +1993-02-02,442.52,442.87,440.76,442.55,271560000,442.55 +1993-02-01,438.78,442.52,438.78,442.52,238570000,442.52 +1993-01-29,438.67,438.93,436.91,438.78,247200000,438.78 +1993-01-28,438.13,439.14,437.30,438.66,256980000,438.66 +1993-01-27,439.95,440.04,436.82,438.11,277020000,438.11 +1993-01-26,440.05,442.66,439.54,439.95,314110000,439.95 +1993-01-25,436.11,440.53,436.11,440.01,288740000,440.01 +1993-01-22,435.49,437.81,435.49,436.11,293320000,436.11 +1993-01-21,433.37,435.75,432.48,435.49,257620000,435.49 +1993-01-20,435.14,436.23,433.37,433.37,268790000,433.37 +1993-01-19,436.84,437.70,434.59,435.13,283240000,435.13 +1993-01-18,437.13,437.13,435.92,436.84,196030000,436.84 +1993-01-15,435.87,439.49,435.84,437.15,309720000,437.15 +1993-01-14,433.08,435.96,433.08,435.94,281040000,435.94 +1993-01-13,431.03,433.44,429.99,433.03,245360000,433.03 +1993-01-12,430.95,431.39,428.19,431.04,239410000,431.04 +1993-01-11,429.04,431.04,429.01,430.95,217150000,430.95 +1993-01-08,430.73,430.73,426.88,429.05,263470000,429.05 +1993-01-07,434.52,435.46,429.76,430.73,304850000,430.73 +1993-01-06,434.34,435.17,432.52,434.52,295240000,434.52 +1993-01-05,435.38,435.40,433.55,434.34,240350000,434.34 +1993-01-04,435.70,437.32,434.48,435.38,201210000,435.38 +1992-12-31,438.82,439.59,435.71,435.71,165910000,435.71 +1992-12-30,437.98,439.37,437.12,438.82,183930000,438.82 +1992-12-29,439.15,442.65,437.60,437.98,213660000,437.98 +1992-12-28,439.77,439.77,437.26,439.15,143970000,439.15 +1992-12-24,439.03,439.81,439.03,439.77,95240000,439.77 +1992-12-23,440.29,441.11,439.03,439.03,234140000,439.03 +1992-12-22,440.70,441.64,438.25,440.31,250430000,440.31 +1992-12-21,441.26,441.26,439.65,440.70,224680000,440.70 +1992-12-18,435.46,441.29,435.46,441.28,389300000,441.28 +1992-12-17,431.52,435.44,431.46,435.43,251640000,435.43 +1992-12-16,432.58,434.22,430.88,431.52,242130000,431.52 +1992-12-15,432.82,433.66,431.92,432.57,227770000,432.57 +1992-12-14,433.73,435.26,432.83,432.84,187040000,432.84 +1992-12-11,434.64,434.64,433.34,433.73,164510000,433.73 +1992-12-10,435.66,435.66,432.65,434.64,240640000,434.64 +1992-12-09,436.99,436.99,433.98,435.65,230060000,435.65 +1992-12-08,435.31,436.99,434.68,436.99,234330000,436.99 +1992-12-07,432.06,435.31,432.06,435.31,217700000,435.31 +1992-12-04,429.93,432.89,429.74,432.06,234960000,432.06 +1992-12-03,429.98,430.99,428.80,429.91,238050000,429.91 +1992-12-02,430.78,430.87,428.61,429.89,247010000,429.89 +1992-12-01,431.35,431.47,429.20,430.78,259050000,430.78 +1992-11-30,430.19,431.53,429.36,431.35,230150000,431.35 +1992-11-27,429.19,431.93,429.17,430.16,106020000,430.16 +1992-11-25,427.59,429.41,427.58,429.19,207700000,429.19 +1992-11-24,425.14,429.31,424.83,427.59,241540000,427.59 +1992-11-23,426.65,426.65,424.95,425.12,192530000,425.12 +1992-11-20,423.61,426.98,423.61,426.65,257460000,426.65 +1992-11-19,422.86,423.61,422.50,423.61,218720000,423.61 +1992-11-18,419.27,423.49,419.24,422.85,219080000,422.85 +1992-11-17,420.63,420.97,418.31,419.27,187660000,419.27 +1992-11-16,422.44,422.44,420.35,420.68,173600000,420.68 +1992-11-13,422.89,422.91,421.04,422.43,192950000,422.43 +1992-11-12,422.20,423.10,421.70,422.87,226010000,422.87 +1992-11-11,418.62,422.33,418.40,422.20,243750000,422.20 +1992-11-10,418.59,419.71,417.98,418.62,223180000,418.62 +1992-11-09,417.58,420.13,416.79,418.59,197560000,418.59 +1992-11-06,418.35,418.35,417.01,417.58,205310000,417.58 +1992-11-05,417.08,418.40,415.58,418.34,219730000,418.34 +1992-11-04,419.91,421.07,416.61,417.11,194400000,417.11 +1992-11-03,422.75,422.81,418.59,419.92,208140000,419.92 +1992-11-02,418.66,422.75,418.12,422.75,203280000,422.75 +1992-10-30,420.86,421.13,418.54,418.68,201930000,418.68 +1992-10-29,420.15,421.16,419.83,420.86,206550000,420.86 +1992-10-28,418.49,420.13,417.56,420.13,203910000,420.13 +1992-10-27,418.18,419.20,416.97,418.49,201730000,418.49 +1992-10-26,414.09,418.17,413.71,418.16,188060000,418.16 +1992-10-23,414.90,416.23,413.68,414.10,199060000,414.10 +1992-10-22,415.67,416.81,413.10,414.90,216400000,414.90 +1992-10-21,415.53,416.15,414.54,415.67,219100000,415.67 +1992-10-20,414.98,417.98,414.49,415.48,258210000,415.48 +1992-10-19,411.73,414.98,410.66,414.98,222150000,414.98 +1992-10-16,409.60,411.73,407.43,411.73,235920000,411.73 +1992-10-15,409.34,411.03,407.92,409.60,213590000,409.60 +1992-10-14,409.30,411.52,407.86,409.37,175900000,409.37 +1992-10-13,407.44,410.64,406.83,409.30,186650000,409.30 +1992-10-12,402.66,407.44,402.66,407.44,126670000,407.44 +1992-10-09,407.75,407.75,402.42,402.66,178940000,402.66 +1992-10-08,404.29,408.04,404.29,407.75,205000000,407.75 +1992-10-07,407.17,408.60,403.91,404.25,184380000,404.25 +1992-10-06,407.57,408.56,404.84,407.18,203500000,407.18 +1992-10-05,410.47,410.47,396.80,407.57,286550000,407.57 +1992-10-02,416.29,416.35,410.45,410.47,188030000,410.47 +1992-10-01,417.80,418.67,415.46,416.29,204780000,416.29 +1992-09-30,416.79,418.58,416.67,417.80,184470000,417.80 +1992-09-29,416.62,417.38,415.34,416.80,170750000,416.80 +1992-09-28,414.35,416.62,413.00,416.62,158760000,416.62 +1992-09-25,418.47,418.63,412.71,414.35,213670000,414.35 +1992-09-24,417.46,419.01,417.46,418.47,187960000,418.47 +1992-09-23,417.14,417.88,416.00,417.44,205700000,417.44 +1992-09-22,422.14,422.14,417.13,417.14,188810000,417.14 +1992-09-21,422.90,422.90,421.18,422.14,153940000,422.14 +1992-09-18,419.92,422.93,419.92,422.93,237440000,422.93 +1992-09-17,419.92,421.43,419.62,419.93,188270000,419.93 +1992-09-16,419.71,422.44,417.77,419.92,231450000,419.92 +1992-09-15,425.22,425.22,419.54,419.77,211860000,419.77 +1992-09-14,419.65,425.27,419.65,425.27,250940000,425.27 +1992-09-11,419.95,420.58,419.13,419.58,180560000,419.58 +1992-09-10,416.34,420.52,416.34,419.95,221990000,419.95 +1992-09-09,414.44,416.44,414.44,416.36,178800000,416.36 +1992-09-08,417.08,417.18,414.30,414.44,161440000,414.44 +1992-09-04,417.98,418.62,416.76,417.08,124380000,417.08 +1992-09-03,417.98,420.31,417.49,417.98,212500000,417.98 +1992-09-02,416.07,418.28,415.31,417.98,187480000,417.98 +1992-09-01,414.03,416.07,413.35,416.07,172680000,416.07 +1992-08-31,414.87,415.29,413.76,414.03,161480000,414.03 +1992-08-28,413.54,414.95,413.38,414.84,152260000,414.84 +1992-08-27,413.51,415.83,413.51,413.53,178600000,413.53 +1992-08-26,411.65,413.61,410.53,413.51,171860000,413.51 +1992-08-25,410.73,411.64,408.30,411.61,202760000,411.61 +1992-08-24,414.80,414.80,410.07,410.72,165690000,410.72 +1992-08-21,418.27,420.35,413.58,414.85,204800000,414.85 +1992-08-20,418.19,418.85,416.93,418.26,183420000,418.26 +1992-08-19,421.34,421.62,418.19,418.19,187070000,418.19 +1992-08-18,420.74,421.40,419.78,421.34,171750000,421.34 +1992-08-17,419.89,421.89,419.44,420.74,152830000,420.74 +1992-08-14,417.74,420.40,417.74,419.91,166820000,419.91 +1992-08-13,417.78,419.88,416.40,417.73,185750000,417.73 +1992-08-12,418.89,419.75,416.43,417.78,176560000,417.78 +1992-08-11,419.45,419.72,416.53,418.90,173940000,418.90 +1992-08-10,418.87,419.42,417.04,419.42,142480000,419.42 +1992-08-07,420.59,423.45,418.51,418.88,190640000,418.88 +1992-08-06,422.19,422.36,420.26,420.59,181440000,420.59 +1992-08-05,424.35,424.35,421.92,422.19,172450000,422.19 +1992-08-04,425.09,425.14,423.10,424.36,166760000,424.36 +1992-08-03,424.19,425.09,422.84,425.09,164460000,425.09 +1992-07-31,423.92,424.80,422.46,424.21,172920000,424.21 +1992-07-30,422.20,423.94,421.57,423.92,193410000,423.92 +1992-07-29,417.52,423.02,417.52,422.23,275850000,422.23 +1992-07-28,411.55,417.55,411.55,417.52,218060000,417.52 +1992-07-27,411.60,412.67,411.27,411.54,164700000,411.54 +1992-07-24,412.07,412.07,409.93,411.60,163890000,411.60 +1992-07-23,410.93,412.08,409.81,412.08,175490000,412.08 +1992-07-22,413.74,413.74,409.95,410.93,190160000,410.93 +1992-07-21,413.75,414.92,413.10,413.76,173760000,413.76 +1992-07-20,415.62,415.62,410.72,413.75,165760000,413.75 +1992-07-17,417.54,417.54,412.96,415.62,192120000,415.62 +1992-07-16,417.04,417.93,414.79,417.54,206900000,417.54 +1992-07-15,417.68,417.81,416.29,417.10,206560000,417.10 +1992-07-14,414.86,417.69,414.33,417.68,195570000,417.68 +1992-07-13,414.62,415.86,413.93,414.87,148870000,414.87 +1992-07-10,414.23,415.88,413.34,414.62,164770000,414.62 +1992-07-09,410.28,414.69,410.26,414.23,207980000,414.23 +1992-07-08,409.15,410.28,407.20,410.28,201030000,410.28 +1992-07-07,413.83,415.33,408.58,409.16,226050000,409.16 +1992-07-06,411.77,413.84,410.46,413.84,186920000,413.84 +1992-07-02,412.88,415.71,410.07,411.77,220200000,411.77 +1992-07-01,408.20,412.88,408.20,412.88,214250000,412.88 +1992-06-30,408.94,409.63,407.85,408.14,195530000,408.14 +1992-06-29,403.47,408.96,403.47,408.94,176750000,408.94 +1992-06-26,403.12,403.51,401.94,403.45,154430000,403.45 +1992-06-25,403.83,405.53,402.01,403.12,182960000,403.12 +1992-06-24,404.05,404.76,403.26,403.84,193870000,403.84 +1992-06-23,403.40,405.41,403.40,404.04,189190000,404.04 +1992-06-22,403.64,403.64,399.92,403.40,169370000,403.40 +1992-06-19,400.96,404.23,400.96,403.67,233460000,403.67 +1992-06-18,402.26,402.68,400.51,400.96,225600000,400.96 +1992-06-17,408.33,408.33,401.98,402.26,227760000,402.26 +1992-06-16,410.29,411.40,408.32,408.32,194400000,408.32 +1992-06-15,409.76,411.68,408.13,410.29,164080000,410.29 +1992-06-12,409.08,411.86,409.08,409.76,181860000,409.76 +1992-06-11,407.25,409.05,406.11,409.05,204780000,409.05 +1992-06-10,410.06,410.10,406.81,407.25,210750000,407.25 +1992-06-09,413.40,413.56,409.30,410.06,191170000,410.06 +1992-06-08,413.48,413.95,412.03,413.36,161240000,413.36 +1992-06-05,413.26,413.85,410.97,413.48,199050000,413.48 +1992-06-04,414.60,414.98,412.97,413.26,204450000,413.26 +1992-06-03,413.50,416.54,413.04,414.59,215770000,414.59 +1992-06-02,417.30,417.30,413.50,413.50,202560000,413.50 +1992-06-01,415.35,417.30,412.44,417.30,180800000,417.30 +1992-05-29,416.74,418.36,415.35,415.35,204010000,415.35 +1992-05-28,412.17,416.77,411.81,416.74,195300000,416.74 +1992-05-27,411.41,412.68,411.06,412.17,182240000,412.17 +1992-05-26,414.02,414.02,410.23,411.41,197700000,411.41 +1992-05-22,412.61,414.82,412.60,414.02,146710000,414.02 +1992-05-21,415.40,415.41,411.57,412.60,184860000,412.60 +1992-05-20,416.37,416.83,415.37,415.39,198180000,415.39 +1992-05-19,412.82,416.51,412.26,416.37,187130000,416.37 +1992-05-18,410.13,413.34,410.13,412.81,151380000,412.81 +1992-05-15,413.14,413.14,409.85,410.09,192740000,410.09 +1992-05-14,416.45,416.52,411.82,413.14,189150000,413.14 +1992-05-13,416.29,417.04,415.86,416.45,175850000,416.45 +1992-05-12,418.49,418.68,414.69,416.29,192870000,416.29 +1992-05-11,416.05,418.75,416.05,418.49,155730000,418.49 +1992-05-08,415.87,416.85,414.41,416.05,168720000,416.05 +1992-05-07,416.79,416.84,415.38,415.85,168980000,415.85 +1992-05-06,416.84,418.48,416.40,416.79,199950000,416.79 +1992-05-05,416.91,418.53,415.77,416.84,200550000,416.84 +1992-05-04,412.54,417.84,412.54,416.91,174540000,416.91 +1992-05-01,414.95,415.21,409.87,412.53,177390000,412.53 +1992-04-30,412.02,414.95,412.02,414.95,223590000,414.95 +1992-04-29,409.11,412.31,409.11,412.02,206780000,412.02 +1992-04-28,408.45,409.69,406.33,409.11,189220000,409.11 +1992-04-27,409.03,409.60,407.64,408.45,172900000,408.45 +1992-04-24,411.60,412.48,408.74,409.02,199310000,409.02 +1992-04-23,409.81,411.60,406.86,411.60,235860000,411.60 +1992-04-22,410.26,411.30,409.23,409.81,218850000,409.81 +1992-04-21,410.16,411.09,408.20,410.26,214460000,410.26 +1992-04-20,416.05,416.05,407.93,410.18,191980000,410.18 +1992-04-16,416.28,416.28,413.40,416.04,233230000,416.04 +1992-04-15,412.39,416.28,412.39,416.28,229710000,416.28 +1992-04-14,406.08,413.86,406.08,412.39,231130000,412.39 +1992-04-13,404.28,406.08,403.90,406.08,143140000,406.08 +1992-04-10,400.59,405.12,400.59,404.29,199530000,404.29 +1992-04-09,394.50,401.04,394.50,400.64,231430000,400.64 +1992-04-08,398.05,398.05,392.41,394.50,249280000,394.50 +1992-04-07,405.59,405.75,397.97,398.06,205210000,398.06 +1992-04-06,401.54,405.93,401.52,405.59,179910000,405.59 +1992-04-03,400.50,401.59,398.21,401.55,188580000,401.55 +1992-04-02,404.17,404.63,399.28,400.50,185210000,400.50 +1992-04-01,403.67,404.50,400.75,404.23,186530000,404.23 +1992-03-31,403.00,405.21,402.22,403.69,182360000,403.69 +1992-03-30,403.50,404.30,402.97,403.00,133990000,403.00 +1992-03-27,407.86,407.86,402.87,403.50,166140000,403.50 +1992-03-26,407.52,409.44,406.75,407.86,176720000,407.86 +1992-03-25,408.88,409.87,407.52,407.52,192650000,407.52 +1992-03-24,409.91,411.43,407.99,408.88,191610000,408.88 +1992-03-23,411.29,411.29,408.87,409.91,157050000,409.91 +1992-03-20,409.80,411.30,408.53,411.30,246210000,411.30 +1992-03-19,409.15,410.57,409.12,409.80,197310000,409.80 +1992-03-18,409.58,410.84,408.23,409.15,191720000,409.15 +1992-03-17,406.39,409.72,406.39,409.58,187250000,409.58 +1992-03-16,405.85,406.40,403.55,406.39,155950000,406.39 +1992-03-13,403.92,406.69,403.92,405.84,177900000,405.84 +1992-03-12,404.03,404.72,401.94,403.89,180310000,403.89 +1992-03-11,406.88,407.02,402.64,404.03,186330000,404.03 +1992-03-10,405.21,409.16,405.21,406.89,203000000,406.89 +1992-03-09,404.45,405.64,404.25,405.21,160650000,405.21 +1992-03-06,406.51,407.51,403.65,404.44,185190000,404.44 +1992-03-05,409.33,409.33,405.42,406.51,205770000,406.51 +1992-03-04,412.86,413.27,409.33,409.33,206860000,409.33 +1992-03-03,412.45,413.78,411.88,412.85,200890000,412.85 +1992-03-02,412.68,413.74,411.52,412.45,180380000,412.45 +1992-02-28,413.86,416.07,411.80,412.70,202320000,412.70 +1992-02-27,415.35,415.99,413.47,413.86,215110000,413.86 +1992-02-26,410.48,415.35,410.48,415.35,241500000,415.35 +1992-02-25,412.27,412.27,408.02,410.45,210350000,410.45 +1992-02-24,411.46,412.94,410.34,412.27,177540000,412.27 +1992-02-21,413.90,414.26,409.72,411.43,261650000,411.43 +1992-02-20,408.26,413.90,408.26,413.90,270650000,413.90 +1992-02-19,407.38,408.70,406.54,408.26,232970000,408.26 +1992-02-18,412.48,413.27,406.34,407.38,234300000,407.38 +1992-02-14,413.69,413.84,411.20,412.48,215110000,412.48 +1992-02-13,417.13,417.77,412.07,413.69,229360000,413.69 +1992-02-12,413.77,418.08,413.36,417.13,237630000,417.13 +1992-02-11,413.77,414.38,412.24,413.76,200130000,413.76 +1992-02-10,411.07,413.77,411.07,413.77,184410000,413.77 +1992-02-07,413.82,415.29,408.04,411.09,231120000,411.09 +1992-02-06,413.87,414.55,411.93,413.82,242050000,413.82 +1992-02-05,413.88,416.17,413.18,413.84,262440000,413.84 +1992-02-04,409.60,413.85,409.28,413.85,233680000,413.85 +1992-02-03,408.79,409.95,407.45,409.53,185290000,409.53 +1992-01-31,411.65,412.63,408.64,408.78,197620000,408.78 +1992-01-30,410.34,412.17,409.26,411.62,194680000,411.62 +1992-01-29,414.96,417.83,409.17,410.34,248940000,410.34 +1992-01-28,414.98,416.41,414.54,414.96,218400000,414.96 +1992-01-27,415.44,416.84,414.48,414.99,190970000,414.99 +1992-01-24,414.96,417.27,414.29,415.48,213630000,415.48 +1992-01-23,418.13,419.78,414.36,414.96,234580000,414.96 +1992-01-22,412.65,418.13,412.49,418.13,228140000,418.13 +1992-01-21,416.36,416.39,411.32,412.64,218750000,412.64 +1992-01-20,418.86,418.86,415.80,416.36,180900000,416.36 +1992-01-17,418.20,419.45,416.00,418.86,287370000,418.86 +1992-01-16,420.77,420.85,415.37,418.21,336240000,418.21 +1992-01-15,420.45,421.18,418.79,420.77,314830000,420.77 +1992-01-14,414.34,420.44,414.32,420.44,265900000,420.44 +1992-01-13,415.05,415.36,413.54,414.34,200270000,414.34 +1992-01-10,417.62,417.62,413.31,415.10,236130000,415.10 +1992-01-09,418.09,420.50,415.85,417.61,292350000,417.61 +1992-01-08,417.36,420.23,415.02,418.10,290750000,418.10 +1992-01-07,417.96,417.96,415.20,417.40,252780000,417.40 +1992-01-06,419.31,419.44,416.92,417.96,251210000,417.96 +1992-01-03,417.27,419.79,416.16,419.34,224270000,419.34 +1992-01-02,417.03,417.27,411.04,417.26,207570000,417.26 +1991-12-31,415.14,418.32,412.73,417.09,247080000,417.09 +1991-12-30,406.49,415.14,406.49,415.14,245600000,415.14 +1991-12-27,404.84,406.58,404.59,406.46,157950000,406.46 +1991-12-26,399.33,404.92,399.31,404.84,149230000,404.84 +1991-12-24,396.82,401.79,396.82,399.33,162640000,399.33 +1991-12-23,387.05,397.44,386.96,396.82,228900000,396.82 +1991-12-20,382.52,388.24,382.52,387.04,316140000,387.04 +1991-12-19,383.46,383.46,380.64,382.52,199330000,382.52 +1991-12-18,382.74,383.51,380.88,383.48,192410000,383.48 +1991-12-17,384.46,385.05,382.60,382.74,191310000,382.74 +1991-12-16,384.48,385.84,384.37,384.46,173080000,384.46 +1991-12-13,381.55,385.04,381.55,384.47,194470000,384.47 +1991-12-12,377.70,381.62,377.70,381.55,192950000,381.55 +1991-12-11,377.90,379.42,374.78,377.70,207430000,377.70 +1991-12-10,378.26,379.57,376.64,377.90,192920000,377.90 +1991-12-09,379.09,381.42,377.67,378.26,174760000,378.26 +1991-12-06,377.39,382.39,375.41,379.10,199160000,379.10 +1991-12-05,380.07,380.07,376.58,377.39,166350000,377.39 +1991-12-04,380.96,381.51,378.07,380.07,187960000,380.07 +1991-12-03,381.40,381.48,379.92,380.96,187230000,380.96 +1991-12-02,375.11,381.40,371.36,381.40,188410000,381.40 +1991-11-29,376.55,376.55,374.65,375.22,76830000,375.22 +1991-11-27,377.96,378.11,375.98,376.55,167720000,376.55 +1991-11-26,375.34,378.29,371.63,377.96,213810000,377.96 +1991-11-25,376.14,377.07,374.00,375.34,175870000,375.34 +1991-11-22,380.05,380.05,374.52,376.14,188240000,376.14 +1991-11-21,378.53,381.12,377.41,380.06,195130000,380.06 +1991-11-20,379.42,381.51,377.84,378.53,192760000,378.53 +1991-11-19,385.24,385.24,374.90,379.42,243880000,379.42 +1991-11-18,382.62,385.40,379.70,385.24,241940000,385.24 +1991-11-15,397.15,397.16,382.62,382.62,239690000,382.62 +1991-11-14,397.41,398.22,395.85,397.15,200030000,397.15 +1991-11-13,396.74,397.42,394.01,397.41,184480000,397.41 +1991-11-12,393.12,397.13,393.12,396.74,198610000,396.74 +1991-11-11,392.90,393.57,392.32,393.12,128920000,393.12 +1991-11-08,393.72,396.43,392.42,392.89,183260000,392.89 +1991-11-07,389.97,393.72,389.97,393.72,205480000,393.72 +1991-11-06,388.71,389.97,387.58,389.97,167440000,389.97 +1991-11-05,390.28,392.17,388.19,388.71,172090000,388.71 +1991-11-04,391.29,391.29,388.09,390.28,155660000,390.28 +1991-11-01,392.46,395.10,389.67,391.32,205780000,391.32 +1991-10-31,392.96,392.96,391.58,392.45,179680000,392.45 +1991-10-30,391.48,393.11,390.78,392.96,195400000,392.96 +1991-10-29,389.52,391.70,386.88,391.48,192810000,391.48 +1991-10-28,384.20,389.52,384.20,389.52,161630000,389.52 +1991-10-25,385.07,386.13,382.97,384.20,167310000,384.20 +1991-10-24,387.94,388.32,383.45,385.07,179040000,385.07 +1991-10-23,387.83,389.08,386.52,387.94,185390000,387.94 +1991-10-22,390.02,391.20,387.40,387.83,194160000,387.83 +1991-10-21,392.49,392.49,388.96,390.02,154140000,390.02 +1991-10-18,391.92,392.80,391.77,392.50,204090000,392.50 +1991-10-17,392.79,393.81,390.32,391.92,206030000,391.92 +1991-10-16,391.01,393.29,390.14,392.80,225380000,392.80 +1991-10-15,386.47,391.50,385.95,391.01,213540000,391.01 +1991-10-14,381.45,386.47,381.45,386.47,130120000,386.47 +1991-10-11,380.55,381.46,379.90,381.45,148850000,381.45 +1991-10-10,376.80,380.55,376.11,380.55,164240000,380.55 +1991-10-09,380.57,380.57,376.35,376.80,186710000,376.80 +1991-10-08,379.50,381.23,379.18,380.67,177120000,380.67 +1991-10-07,381.22,381.27,379.07,379.50,148430000,379.50 +1991-10-04,384.47,385.19,381.24,381.25,164000000,381.25 +1991-10-03,388.23,388.23,384.47,384.47,174360000,384.47 +1991-10-02,389.20,390.03,387.62,388.26,166380000,388.26 +1991-10-01,387.86,389.56,387.86,389.20,163570000,389.20 +1991-09-30,385.91,388.29,384.32,387.86,146780000,387.86 +1991-09-27,386.49,389.09,384.87,385.90,160660000,385.90 +1991-09-26,386.87,388.39,385.30,386.49,158980000,386.49 +1991-09-25,387.72,388.25,385.99,386.88,153910000,386.88 +1991-09-24,385.92,388.13,384.46,387.71,170350000,387.71 +1991-09-23,387.90,388.55,385.76,385.92,145940000,385.92 +1991-09-20,387.56,388.82,386.49,387.92,254520000,387.92 +1991-09-19,386.94,389.42,386.27,387.56,211010000,387.56 +1991-09-18,385.49,386.94,384.28,386.94,141340000,386.94 +1991-09-17,385.78,387.13,384.97,385.50,168340000,385.50 +1991-09-16,383.59,385.79,382.77,385.78,172560000,385.78 +1991-09-13,387.16,387.95,382.85,383.59,169630000,383.59 +1991-09-12,385.09,387.34,385.09,387.34,160420000,387.34 +1991-09-11,384.56,385.60,383.59,385.09,148000000,385.09 +1991-09-10,388.57,388.63,383.78,384.56,143390000,384.56 +1991-09-09,389.11,389.34,387.88,388.57,115100000,388.57 +1991-09-06,389.14,390.71,387.36,389.10,166560000,389.10 +1991-09-05,389.97,390.97,388.49,389.14,162380000,389.14 +1991-09-04,392.15,392.62,388.68,389.97,157520000,389.97 +1991-09-03,395.43,397.62,392.10,392.15,153600000,392.15 +1991-08-30,396.47,396.47,393.60,395.43,143440000,395.43 +1991-08-29,396.65,396.82,395.14,396.47,154150000,396.47 +1991-08-28,393.06,396.64,393.05,396.64,169890000,396.64 +1991-08-27,393.85,393.87,391.77,393.06,144670000,393.06 +1991-08-26,394.17,394.39,392.75,393.85,130570000,393.85 +1991-08-23,391.33,395.34,390.69,394.17,188870000,394.17 +1991-08-22,390.59,391.98,390.21,391.33,173090000,391.33 +1991-08-21,379.55,390.59,379.55,390.59,232690000,390.59 +1991-08-20,376.47,380.35,376.47,379.43,184260000,379.43 +1991-08-19,385.58,385.58,374.09,376.47,230350000,376.47 +1991-08-16,389.33,390.41,383.16,385.58,189480000,385.58 +1991-08-15,389.91,391.92,389.29,389.33,174690000,389.33 +1991-08-14,389.62,391.85,389.13,389.90,124230000,389.90 +1991-08-13,388.02,392.12,388.02,389.62,212760000,389.62 +1991-08-12,387.11,388.17,385.90,388.02,145440000,388.02 +1991-08-09,389.32,389.89,387.04,387.12,143740000,387.12 +1991-08-08,390.56,391.80,388.15,389.32,163890000,389.32 +1991-08-07,390.62,391.59,389.86,390.56,172220000,390.56 +1991-08-06,385.06,390.80,384.29,390.62,174460000,390.62 +1991-08-05,387.17,387.17,384.48,385.06,128050000,385.06 +1991-08-02,387.12,389.56,386.05,387.18,162270000,387.18 +1991-08-01,387.81,387.95,386.48,387.12,170610000,387.12 +1991-07-31,386.69,387.81,386.19,387.81,166830000,387.81 +1991-07-30,383.15,386.92,383.15,386.69,169010000,386.69 +1991-07-29,380.93,383.15,380.45,383.15,136000000,383.15 +1991-07-26,380.96,381.76,379.81,380.93,127760000,380.93 +1991-07-25,378.64,381.13,378.15,380.96,145800000,380.96 +1991-07-24,379.42,380.46,378.29,378.64,158700000,378.64 +1991-07-23,382.88,384.86,379.39,379.42,160190000,379.42 +1991-07-22,384.21,384.55,381.84,382.88,149050000,382.88 +1991-07-19,385.38,385.83,383.65,384.22,190700000,384.22 +1991-07-18,381.18,385.37,381.18,385.37,200930000,385.37 +1991-07-17,381.50,382.86,381.13,381.18,195460000,381.18 +1991-07-16,382.39,382.94,380.80,381.54,182990000,381.54 +1991-07-15,380.28,383.00,380.24,382.39,161750000,382.39 +1991-07-12,376.97,381.41,375.79,380.25,174770000,380.25 +1991-07-11,375.73,377.68,375.51,376.97,157930000,376.97 +1991-07-10,376.11,380.35,375.20,375.74,178290000,375.74 +1991-07-09,377.94,378.58,375.37,376.11,151820000,376.11 +1991-07-08,374.09,377.94,370.92,377.94,138330000,377.94 +1991-07-05,373.34,375.51,372.17,374.08,69910000,374.08 +1991-07-03,377.47,377.47,372.08,373.33,140580000,373.33 +1991-07-02,377.92,377.93,376.62,377.47,157290000,377.47 +1991-07-01,371.18,377.92,371.18,377.92,167480000,377.92 +1991-06-28,374.40,374.40,367.98,371.16,163770000,371.16 +1991-06-27,371.59,374.40,371.59,374.40,163080000,374.40 +1991-06-26,370.65,372.73,368.34,371.59,187170000,371.59 +1991-06-25,370.94,372.62,369.56,370.65,155710000,370.65 +1991-06-24,377.74,377.74,370.73,370.94,137940000,370.94 +1991-06-21,375.42,377.75,375.33,377.75,193310000,377.75 +1991-06-20,375.09,376.29,373.87,375.42,163980000,375.42 +1991-06-19,378.57,378.57,374.36,375.09,156440000,375.09 +1991-06-18,380.13,381.83,377.99,378.59,155200000,378.59 +1991-06-17,382.30,382.31,380.13,380.13,134230000,380.13 +1991-06-14,377.63,382.30,377.63,382.29,167950000,382.29 +1991-06-13,376.65,377.90,376.08,377.63,145650000,377.63 +1991-06-12,381.05,381.05,374.46,376.65,166140000,376.65 +1991-06-11,378.57,381.63,378.57,381.05,161610000,381.05 +1991-06-10,379.43,379.75,377.95,378.57,127720000,378.57 +1991-06-07,383.63,383.63,378.76,379.43,169570000,379.43 +1991-06-06,385.10,385.85,383.13,383.63,168260000,383.63 +1991-06-05,387.74,388.23,384.45,385.09,186560000,385.09 +1991-06-04,388.06,388.06,385.14,387.74,180450000,387.74 +1991-06-03,389.81,389.81,386.97,388.06,173990000,388.06 +1991-05-31,386.96,389.85,385.01,389.83,232040000,389.83 +1991-05-30,382.79,388.17,382.50,386.96,234440000,386.96 +1991-05-29,381.94,383.66,381.37,382.79,188450000,382.79 +1991-05-28,377.49,382.10,377.12,381.94,162350000,381.94 +1991-05-24,374.97,378.08,374.97,377.49,124640000,377.49 +1991-05-23,376.19,378.07,373.55,374.96,173080000,374.96 +1991-05-22,375.35,376.50,374.40,376.19,159310000,376.19 +1991-05-21,372.28,376.66,372.28,375.35,176620000,375.35 +1991-05-20,372.39,373.65,371.26,372.28,109510000,372.28 +1991-05-17,372.19,373.01,369.44,372.39,174210000,372.39 +1991-05-16,368.57,372.51,368.57,372.19,154460000,372.19 +1991-05-15,371.55,372.47,365.83,368.57,193110000,368.57 +1991-05-14,375.51,375.53,370.82,371.62,207890000,371.62 +1991-05-13,375.74,377.02,374.62,376.76,129620000,376.76 +1991-05-10,383.26,383.91,375.61,375.74,172730000,375.74 +1991-05-09,378.51,383.56,378.51,383.25,180460000,383.25 +1991-05-08,377.33,379.26,376.21,378.51,157240000,378.51 +1991-05-07,380.08,380.91,377.31,377.32,153290000,377.32 +1991-05-06,380.78,380.78,377.86,380.08,129110000,380.08 +1991-05-03,380.52,381.00,378.82,380.80,158150000,380.80 +1991-05-02,380.29,382.14,379.82,380.52,187090000,380.52 +1991-05-01,375.35,380.46,375.27,380.29,181900000,380.29 +1991-04-30,373.66,377.86,373.01,375.34,206230000,375.34 +1991-04-29,379.01,380.96,373.66,373.66,149860000,373.66 +1991-04-26,379.25,380.11,376.77,379.02,154550000,379.02 +1991-04-25,382.89,382.89,378.43,379.25,166940000,379.25 +1991-04-24,381.76,383.02,379.99,382.76,166800000,382.76 +1991-04-23,380.95,383.55,379.67,381.76,167840000,381.76 +1991-04-22,384.19,384.19,380.16,380.95,164410000,380.95 +1991-04-19,388.46,388.46,383.90,384.20,195520000,384.20 +1991-04-18,390.45,390.97,388.13,388.46,217410000,388.46 +1991-04-17,387.62,391.26,387.30,390.45,246930000,390.45 +1991-04-16,381.19,387.62,379.64,387.62,214480000,387.62 +1991-04-15,380.40,382.32,378.78,381.19,161800000,381.19 +1991-04-12,377.65,381.07,376.89,380.40,198610000,380.40 +1991-04-11,373.15,379.53,373.15,377.63,196570000,377.63 +1991-04-10,373.57,374.83,371.21,373.15,167940000,373.15 +1991-04-09,378.65,379.02,373.11,373.56,169940000,373.56 +1991-04-08,375.35,378.76,374.69,378.66,138580000,378.66 +1991-04-05,379.78,381.12,374.15,375.36,187410000,375.36 +1991-04-04,378.94,381.88,377.05,379.77,198120000,379.77 +1991-04-03,379.50,381.56,378.49,378.94,213720000,378.94 +1991-04-02,371.30,379.50,371.30,379.50,189530000,379.50 +1991-04-01,375.22,375.22,370.27,371.30,144010000,371.30 +1991-03-28,375.35,376.60,374.40,375.22,150750000,375.22 +1991-03-27,376.28,378.48,374.73,375.35,201830000,375.35 +1991-03-26,369.83,376.30,369.37,376.30,198720000,376.30 +1991-03-25,367.48,371.31,367.46,369.83,153920000,369.83 +1991-03-22,366.58,368.22,365.58,367.48,160890000,367.48 +1991-03-21,367.94,371.01,366.51,366.58,199830000,366.58 +1991-03-20,366.59,368.85,365.80,367.92,196810000,367.92 +1991-03-19,372.11,372.11,366.54,366.59,177070000,366.59 +1991-03-18,373.59,374.09,369.46,372.11,163100000,372.11 +1991-03-15,373.50,374.58,370.21,373.59,237650000,373.59 +1991-03-14,374.59,378.28,371.76,373.50,232070000,373.50 +1991-03-13,370.03,374.65,370.03,374.57,176000000,374.57 +1991-03-12,372.96,374.35,369.55,370.03,176440000,370.03 +1991-03-11,374.94,375.10,372.52,372.96,161600000,372.96 +1991-03-08,375.91,378.69,374.43,374.95,206850000,374.95 +1991-03-07,376.16,377.49,375.58,375.91,197060000,375.91 +1991-03-06,376.72,379.66,375.02,376.17,262290000,376.17 +1991-03-05,369.33,377.89,369.33,376.72,253700000,376.72 +1991-03-04,370.47,371.99,369.07,369.33,199830000,369.33 +1991-03-01,367.07,370.47,363.73,370.47,221510000,370.47 +1991-02-28,367.73,369.91,365.95,367.07,223010000,367.07 +1991-02-27,362.81,368.38,362.81,367.74,211410000,367.74 +1991-02-26,367.26,367.26,362.19,362.81,164170000,362.81 +1991-02-25,365.65,370.19,365.16,367.26,193820000,367.26 +1991-02-22,364.97,370.96,364.23,365.65,218760000,365.65 +1991-02-21,365.14,366.79,364.50,364.97,180770000,364.97 +1991-02-20,369.37,369.37,364.38,365.14,185680000,365.14 +1991-02-19,369.06,370.11,367.05,369.39,189900000,369.39 +1991-02-15,364.23,369.49,364.23,369.06,228480000,369.06 +1991-02-14,369.02,370.26,362.77,364.22,230750000,364.22 +1991-02-13,365.50,369.49,364.64,369.02,209960000,369.02 +1991-02-12,368.58,370.54,365.50,365.50,256160000,365.50 +1991-02-11,359.36,368.58,359.32,368.58,265350000,368.58 +1991-02-08,356.52,359.35,356.02,359.35,187830000,359.35 +1991-02-07,358.07,363.43,355.53,356.52,292190000,356.52 +1991-02-06,351.26,358.07,349.58,358.07,276940000,358.07 +1991-02-05,348.34,351.84,347.21,351.26,290570000,351.26 +1991-02-04,343.05,348.71,342.96,348.34,250750000,348.34 +1991-02-01,343.91,344.90,340.37,343.05,246670000,343.05 +1991-01-31,340.92,343.93,340.47,343.93,204520000,343.93 +1991-01-30,335.80,340.91,335.71,340.91,226790000,340.91 +1991-01-29,336.03,336.03,334.26,335.84,155740000,335.84 +1991-01-28,336.06,337.41,335.81,336.03,141270000,336.03 +1991-01-25,334.78,336.92,334.20,336.07,194350000,336.07 +1991-01-24,330.21,335.83,330.19,334.78,223150000,334.78 +1991-01-23,328.30,331.04,327.93,330.21,168620000,330.21 +1991-01-22,331.06,331.26,327.83,328.31,177060000,328.31 +1991-01-21,332.23,332.23,328.87,331.06,136290000,331.06 +1991-01-18,327.93,332.23,327.08,332.23,226770000,332.23 +1991-01-17,316.25,327.97,316.25,327.97,319080000,327.97 +1991-01-16,313.73,316.94,312.94,316.17,134560000,316.17 +1991-01-15,312.49,313.73,311.84,313.73,110000000,313.73 +1991-01-14,315.23,315.23,309.35,312.49,120830000,312.49 +1991-01-11,314.53,315.24,313.59,315.23,123050000,315.23 +1991-01-10,311.51,314.77,311.51,314.53,124510000,314.53 +1991-01-09,314.90,320.73,310.93,311.49,191100000,311.49 +1991-01-08,315.44,316.97,313.79,314.90,143390000,314.90 +1991-01-07,320.97,320.97,315.44,315.44,130610000,315.44 +1991-01-04,321.91,322.35,318.87,321.00,140820000,321.00 +1991-01-03,326.46,326.53,321.90,321.91,141450000,321.91 +1991-01-02,330.20,330.75,326.45,326.45,126280000,326.45 +1990-12-31,328.71,330.23,327.50,330.22,114130000,330.22 +1990-12-28,328.29,328.72,327.24,328.72,111030000,328.72 +1990-12-27,330.85,331.04,328.23,328.29,102900000,328.29 +1990-12-26,329.89,331.69,329.89,330.85,78730000,330.85 +1990-12-24,331.74,331.74,329.16,329.90,57200000,329.90 +1990-12-21,330.12,332.47,330.12,331.75,233400000,331.75 +1990-12-20,330.20,330.74,326.94,330.12,174700000,330.12 +1990-12-19,330.04,330.80,329.39,330.20,180380000,330.20 +1990-12-18,326.02,330.43,325.75,330.05,176460000,330.05 +1990-12-17,326.82,326.82,324.46,326.02,118560000,326.02 +1990-12-14,329.34,329.34,325.16,326.82,151010000,326.82 +1990-12-13,330.14,330.58,328.77,329.34,162110000,329.34 +1990-12-12,326.44,330.36,326.44,330.19,182270000,330.19 +1990-12-11,328.88,328.88,325.65,326.44,145330000,326.44 +1990-12-10,327.75,328.97,326.15,328.89,138650000,328.89 +1990-12-07,329.09,329.39,326.39,327.75,164950000,327.75 +1990-12-06,329.94,333.98,328.37,329.07,256380000,329.07 +1990-12-05,326.36,329.92,325.66,329.92,205820000,329.92 +1990-12-04,324.11,326.77,321.97,326.35,185820000,326.35 +1990-12-03,322.23,324.90,322.23,324.10,177000000,324.10 +1990-11-30,316.42,323.02,315.42,322.22,192350000,322.22 +1990-11-29,317.95,317.95,315.03,316.42,140920000,316.42 +1990-11-28,318.11,319.96,317.62,317.95,145490000,317.95 +1990-11-27,316.51,318.69,315.80,318.10,147590000,318.10 +1990-11-26,315.08,316.51,311.48,316.51,131540000,316.51 +1990-11-23,316.03,317.30,315.06,315.10,63350000,315.10 +1990-11-21,315.31,316.15,312.42,316.03,140660000,316.03 +1990-11-20,319.34,319.34,315.31,315.31,161170000,315.31 +1990-11-19,317.15,319.39,317.15,319.34,140950000,319.34 +1990-11-16,317.02,318.80,314.99,317.12,165440000,317.12 +1990-11-15,320.40,320.40,316.13,317.02,151370000,317.02 +1990-11-14,317.66,321.70,317.23,320.40,179310000,320.40 +1990-11-13,319.48,319.48,317.26,317.67,160240000,317.67 +1990-11-12,313.74,319.77,313.73,319.48,161390000,319.48 +1990-11-09,307.61,313.78,307.61,313.74,145160000,313.74 +1990-11-08,306.01,309.77,305.03,307.61,155570000,307.61 +1990-11-07,311.62,311.62,305.79,306.01,149130000,306.01 +1990-11-06,314.59,314.76,311.43,311.62,142660000,311.62 +1990-11-05,311.85,314.61,311.41,314.59,147510000,314.59 +1990-11-02,307.02,311.94,306.88,311.85,168700000,311.85 +1990-11-01,303.99,307.27,301.61,307.02,159270000,307.02 +1990-10-31,304.06,305.70,302.33,304.00,156060000,304.00 +1990-10-30,301.88,304.36,299.44,304.06,153450000,304.06 +1990-10-29,304.74,307.41,300.69,301.88,133980000,301.88 +1990-10-26,310.17,310.17,304.71,304.71,130190000,304.71 +1990-10-25,312.60,313.71,309.70,310.17,141460000,310.17 +1990-10-24,312.36,313.51,310.74,312.60,149290000,312.60 +1990-10-23,314.76,315.06,312.06,312.36,146300000,312.36 +1990-10-22,312.48,315.83,310.47,314.76,152650000,314.76 +1990-10-19,305.74,312.48,305.74,312.48,221480000,312.48 +1990-10-18,298.75,305.74,298.75,305.74,204110000,305.74 +1990-10-17,298.92,301.50,297.79,298.76,161260000,298.76 +1990-10-16,303.23,304.34,298.12,298.92,149570000,298.92 +1990-10-15,300.03,304.79,296.41,303.23,164980000,303.23 +1990-10-12,295.45,301.68,295.22,300.03,187940000,300.03 +1990-10-11,300.39,301.45,294.51,295.46,180060000,295.46 +1990-10-10,305.09,306.43,299.21,300.39,169190000,300.39 +1990-10-09,313.46,313.46,305.09,305.10,145610000,305.10 +1990-10-08,311.50,315.03,311.50,313.48,99470000,313.48 +1990-10-05,312.69,314.79,305.76,311.50,153380000,311.50 +1990-10-04,311.40,313.40,308.59,312.69,145410000,312.69 +1990-10-03,315.21,316.26,310.70,311.40,135490000,311.40 +1990-10-02,314.94,319.69,314.94,315.21,188360000,315.21 +1990-10-01,306.10,314.94,306.10,314.94,202210000,314.94 +1990-09-28,300.97,306.05,295.98,306.05,201010000,306.05 +1990-09-27,305.06,307.47,299.10,300.97,182690000,300.97 +1990-09-26,308.26,308.28,303.05,305.06,155570000,305.06 +1990-09-25,305.46,308.27,304.23,308.26,155940000,308.26 +1990-09-24,311.30,311.30,303.58,304.59,164070000,304.59 +1990-09-21,311.53,312.17,307.98,311.32,201050000,311.32 +1990-09-20,316.60,316.60,310.55,311.48,145100000,311.48 +1990-09-19,318.60,319.35,316.25,316.60,147530000,316.60 +1990-09-18,317.77,318.85,314.27,318.60,141130000,318.60 +1990-09-17,316.83,318.05,315.21,317.77,110600000,317.77 +1990-09-14,318.65,318.65,314.76,316.83,133390000,316.83 +1990-09-13,322.51,322.51,318.02,318.65,123390000,318.65 +1990-09-12,321.04,322.55,319.60,322.54,129890000,322.54 +1990-09-11,321.63,322.18,319.60,321.04,113220000,321.04 +1990-09-10,323.42,326.53,320.31,321.63,119730000,321.63 +1990-09-07,320.46,324.18,319.71,323.40,123800000,323.40 +1990-09-06,324.39,324.39,319.37,320.46,125620000,320.46 +1990-09-05,323.09,324.52,320.99,324.39,120610000,324.39 +1990-09-04,322.56,323.09,319.11,323.09,92940000,323.09 +1990-08-31,318.71,322.57,316.59,322.56,96480000,322.56 +1990-08-30,324.19,324.57,317.82,318.71,120890000,318.71 +1990-08-29,321.34,325.83,320.87,324.19,134240000,324.19 +1990-08-28,321.44,322.20,320.25,321.34,127660000,321.34 +1990-08-27,311.55,323.11,311.55,321.44,160150000,321.44 +1990-08-24,307.06,311.65,306.18,311.51,199040000,311.51 +1990-08-23,316.55,316.55,306.56,307.06,250440000,307.06 +1990-08-22,321.86,324.15,316.55,316.55,175550000,316.55 +1990-08-21,328.51,328.51,318.78,321.86,194630000,321.86 +1990-08-20,327.83,329.90,327.07,328.51,129630000,328.51 +1990-08-17,332.36,332.36,324.63,327.83,212560000,327.83 +1990-08-16,340.06,340.06,332.39,332.39,138850000,332.39 +1990-08-15,339.39,341.92,339.38,340.06,136710000,340.06 +1990-08-14,338.84,340.96,337.19,339.39,130320000,339.39 +1990-08-13,335.39,338.88,332.02,338.84,122820000,338.84 +1990-08-10,339.90,339.90,334.22,335.52,145340000,335.52 +1990-08-09,338.35,340.56,337.56,339.94,155810000,339.94 +1990-08-08,334.83,339.21,334.83,338.35,190400000,338.35 +1990-08-07,334.43,338.63,332.22,334.83,231580000,334.83 +1990-08-06,344.86,344.86,333.27,334.43,240400000,334.43 +1990-08-03,351.48,351.48,338.20,344.86,295880000,344.86 +1990-08-02,355.52,355.52,349.73,351.48,253090000,351.48 +1990-08-01,356.15,357.35,353.82,355.52,178260000,355.52 +1990-07-31,355.55,357.54,353.91,356.15,175380000,356.15 +1990-07-30,353.44,355.55,351.15,355.55,146470000,355.55 +1990-07-27,355.90,355.94,352.14,353.44,149070000,353.44 +1990-07-26,357.09,357.47,353.95,355.91,155040000,355.91 +1990-07-25,355.79,357.52,354.80,357.09,163530000,357.09 +1990-07-24,355.31,356.09,351.46,355.79,181920000,355.79 +1990-07-23,361.61,361.61,350.09,355.31,209030000,355.31 +1990-07-20,365.32,366.64,361.58,361.61,177810000,361.61 +1990-07-19,364.22,365.32,361.29,365.32,161990000,365.32 +1990-07-18,367.52,367.52,362.95,364.22,168760000,364.22 +1990-07-17,368.95,369.40,364.99,367.52,176790000,367.52 +1990-07-16,367.31,369.78,367.31,368.95,149430000,368.95 +1990-07-13,365.45,369.68,365.45,367.31,215600000,367.31 +1990-07-12,361.23,365.46,360.57,365.44,213180000,365.44 +1990-07-11,356.49,361.23,356.49,361.23,162220000,361.23 +1990-07-10,359.52,359.74,356.41,356.49,147630000,356.49 +1990-07-09,358.42,360.05,358.11,359.52,119390000,359.52 +1990-07-06,355.69,359.02,354.64,358.42,111730000,358.42 +1990-07-05,360.16,360.16,354.86,355.68,128320000,355.68 +1990-07-03,359.54,360.73,359.44,360.16,130050000,360.16 +1990-07-02,358.02,359.58,357.54,359.54,130200000,359.54 +1990-06-29,357.64,359.09,357.30,358.02,145510000,358.02 +1990-06-28,355.16,357.63,355.16,357.63,136120000,357.63 +1990-06-27,352.06,355.89,351.23,355.14,146620000,355.14 +1990-06-26,352.32,356.09,351.85,352.06,141420000,352.06 +1990-06-25,355.42,356.41,351.91,352.31,133100000,352.31 +1990-06-22,360.52,363.20,355.31,355.43,172570000,355.43 +1990-06-21,359.10,360.88,357.63,360.47,138570000,360.47 +1990-06-20,358.47,359.91,357.00,359.10,137420000,359.10 +1990-06-19,356.88,358.90,356.18,358.47,134930000,358.47 +1990-06-18,362.91,362.91,356.88,356.88,133470000,356.88 +1990-06-15,362.89,363.14,360.71,362.91,205130000,362.91 +1990-06-14,364.90,364.90,361.64,362.90,135770000,362.90 +1990-06-13,366.25,367.09,364.51,364.90,158910000,364.90 +1990-06-12,361.63,367.27,361.15,366.25,157100000,366.25 +1990-06-11,358.71,361.63,357.70,361.63,119550000,361.63 +1990-06-08,363.15,363.49,357.68,358.71,142600000,358.71 +1990-06-07,365.92,365.92,361.60,363.15,160360000,363.15 +1990-06-06,366.64,366.64,364.42,364.96,164030000,364.96 +1990-06-05,367.40,368.78,365.49,366.64,199720000,366.64 +1990-06-04,363.16,367.85,362.43,367.40,175520000,367.40 +1990-06-01,361.26,363.52,361.21,363.16,187860000,363.16 +1990-05-31,360.86,361.84,360.23,361.23,165690000,361.23 +1990-05-30,360.65,362.26,360.00,360.86,199540000,360.86 +1990-05-29,354.58,360.65,354.55,360.65,137410000,360.65 +1990-05-25,358.41,358.41,354.32,354.58,120250000,354.58 +1990-05-24,359.29,359.56,357.87,358.41,155140000,358.41 +1990-05-23,358.43,359.29,356.99,359.29,172330000,359.29 +1990-05-22,358.00,360.50,356.09,358.43,203350000,358.43 +1990-05-21,354.64,359.07,353.78,358.00,166280000,358.00 +1990-05-18,354.47,354.64,352.52,354.64,162520000,354.64 +1990-05-17,354.00,356.92,354.00,354.47,164770000,354.47 +1990-05-16,354.27,354.68,351.95,354.00,159810000,354.00 +1990-05-15,354.75,355.09,352.84,354.28,165730000,354.28 +1990-05-14,352.00,358.41,351.95,354.75,225410000,354.75 +1990-05-11,343.82,352.31,343.82,352.00,234040000,352.00 +1990-05-10,342.87,344.98,342.77,343.82,158460000,343.82 +1990-05-09,342.01,343.08,340.90,342.86,152220000,342.86 +1990-05-08,340.53,342.03,340.17,342.01,144230000,342.01 +1990-05-07,338.39,341.07,338.11,340.53,132760000,340.53 +1990-05-04,335.58,338.46,335.17,338.39,140550000,338.39 +1990-05-03,334.48,337.02,334.47,335.57,145560000,335.57 +1990-05-02,332.25,334.48,332.15,334.48,141610000,334.48 +1990-05-01,330.80,332.83,330.80,332.25,149020000,332.25 +1990-04-30,329.11,331.31,327.76,330.80,122750000,330.80 +1990-04-27,332.92,333.57,328.71,329.11,130630000,329.11 +1990-04-26,332.03,333.76,330.67,332.92,141330000,332.92 +1990-04-25,330.36,332.74,330.36,332.03,133480000,332.03 +1990-04-24,331.05,332.97,329.71,330.36,137360000,330.36 +1990-04-23,335.12,335.12,330.09,331.05,136150000,331.05 +1990-04-20,338.09,338.52,333.41,335.12,174260000,335.12 +1990-04-19,340.72,340.72,337.59,338.09,152930000,338.09 +1990-04-18,344.68,345.33,340.11,340.72,147130000,340.72 +1990-04-17,344.74,345.19,342.06,344.68,127990000,344.68 +1990-04-16,344.34,347.30,344.10,344.74,142810000,344.74 +1990-04-12,341.92,344.79,341.91,344.34,142470000,344.34 +1990-04-11,342.07,343.00,341.26,341.92,141080000,341.92 +1990-04-10,341.37,342.41,340.62,342.07,136020000,342.07 +1990-04-09,340.08,341.83,339.88,341.37,114970000,341.37 +1990-04-06,340.73,341.73,338.94,340.08,137490000,340.08 +1990-04-05,341.09,342.85,340.63,340.73,144170000,340.73 +1990-04-04,343.64,344.12,340.40,341.09,159530000,341.09 +1990-04-03,338.70,343.76,338.70,343.64,154310000,343.64 +1990-04-02,339.94,339.94,336.33,338.70,124360000,338.70 +1990-03-30,340.79,341.41,338.21,339.94,139340000,339.94 +1990-03-29,342.00,342.07,339.77,340.79,132190000,340.79 +1990-03-28,341.50,342.58,340.60,342.00,142300000,342.00 +1990-03-27,337.63,341.50,337.03,341.50,131610000,341.50 +1990-03-26,337.22,339.74,337.22,337.63,116110000,337.63 +1990-03-23,335.69,337.58,335.69,337.22,132070000,337.22 +1990-03-22,339.74,339.77,333.62,335.69,175930000,335.69 +1990-03-21,341.57,342.34,339.56,339.74,130990000,339.74 +1990-03-20,343.53,344.49,340.87,341.57,177320000,341.57 +1990-03-19,341.91,343.76,339.12,343.53,142300000,343.53 +1990-03-16,338.07,341.91,338.07,341.91,222520000,341.91 +1990-03-15,336.87,338.91,336.87,338.07,144410000,338.07 +1990-03-14,336.00,337.63,334.93,336.87,145060000,336.87 +1990-03-13,338.67,338.67,335.36,336.00,145440000,336.00 +1990-03-12,337.93,339.08,336.14,338.67,114790000,338.67 +1990-03-09,340.12,340.27,336.84,337.93,150410000,337.93 +1990-03-08,336.95,340.66,336.95,340.27,170900000,340.27 +1990-03-07,337.93,338.84,336.33,336.95,163580000,336.95 +1990-03-06,333.74,337.93,333.57,337.93,143640000,337.93 +1990-03-05,335.54,336.38,333.49,333.74,140110000,333.74 +1990-03-02,332.74,335.54,332.72,335.54,164330000,335.54 +1990-03-01,331.89,334.40,331.08,332.74,157930000,332.74 +1990-02-28,330.26,333.48,330.16,331.89,184400000,331.89 +1990-02-27,328.68,331.94,328.47,330.26,152590000,330.26 +1990-02-26,324.16,328.67,323.98,328.67,148900000,328.67 +1990-02-23,325.70,326.15,322.10,324.15,148490000,324.15 +1990-02-22,327.67,330.98,325.70,325.70,184320000,325.70 +1990-02-21,327.91,328.17,324.47,327.67,159240000,327.67 +1990-02-20,332.72,332.72,326.26,327.99,147300000,327.99 +1990-02-16,334.89,335.64,332.42,332.72,166840000,332.72 +1990-02-15,332.01,335.21,331.61,334.89,174620000,334.89 +1990-02-14,331.02,333.20,330.64,332.01,138530000,332.01 +1990-02-13,330.08,331.61,327.92,331.02,144490000,331.02 +1990-02-12,333.62,333.62,329.97,330.08,118390000,330.08 +1990-02-09,333.02,334.60,332.41,333.62,146910000,333.62 +1990-02-08,333.75,336.09,332.00,332.96,176240000,332.96 +1990-02-07,329.66,333.76,326.55,333.75,186710000,333.75 +1990-02-06,331.85,331.86,328.20,329.66,134070000,329.66 +1990-02-05,330.92,332.16,330.45,331.85,130950000,331.85 +1990-02-02,328.79,332.10,328.09,330.92,164400000,330.92 +1990-02-01,329.08,329.86,327.76,328.79,154580000,328.79 +1990-01-31,322.98,329.08,322.98,329.08,189660000,329.08 +1990-01-30,325.20,325.73,319.83,322.98,186030000,322.98 +1990-01-29,325.80,327.31,321.79,325.20,150770000,325.20 +1990-01-26,326.09,328.58,321.44,325.80,198190000,325.80 +1990-01-25,330.26,332.33,325.33,326.08,172270000,326.08 +1990-01-24,331.61,331.71,324.17,330.26,207830000,330.26 +1990-01-23,330.38,332.76,328.67,331.61,179300000,331.61 +1990-01-22,339.14,339.96,330.28,330.38,148380000,330.38 +1990-01-19,338.19,340.48,338.19,339.15,185590000,339.15 +1990-01-18,337.40,338.38,333.98,338.19,178590000,338.19 +1990-01-17,340.77,342.01,336.26,337.40,170470000,337.40 +1990-01-16,337.00,340.75,333.37,340.75,186070000,340.75 +1990-01-15,339.93,339.94,336.57,337.00,140590000,337.00 +1990-01-12,348.53,348.53,339.49,339.93,183880000,339.93 +1990-01-11,347.31,350.14,347.31,348.53,154390000,348.53 +1990-01-10,349.62,349.62,344.32,347.31,175990000,347.31 +1990-01-09,353.83,354.17,349.61,349.62,155210000,349.62 +1990-01-08,352.20,354.24,350.54,353.79,140110000,353.79 +1990-01-05,355.67,355.67,351.35,352.20,158530000,352.20 +1990-01-04,358.76,358.76,352.89,355.67,177000000,355.67 +1990-01-03,359.69,360.59,357.89,358.76,192330000,358.76 +1990-01-02,353.40,359.69,351.98,359.69,162070000,359.69 +1989-12-29,350.68,353.41,350.67,353.40,145940000,353.40 +1989-12-28,348.80,350.68,348.76,350.67,128030000,350.67 +1989-12-27,346.84,349.12,346.81,348.81,133740000,348.81 +1989-12-26,347.42,347.87,346.53,346.81,77610000,346.81 +1989-12-22,344.78,347.53,344.76,347.42,120980000,347.42 +1989-12-21,342.84,345.03,342.84,344.78,175150000,344.78 +1989-12-20,342.50,343.70,341.79,342.84,176520000,342.84 +1989-12-19,343.69,343.74,339.63,342.46,186060000,342.46 +1989-12-18,350.14,350.88,342.19,343.69,184750000,343.69 +1989-12-15,350.97,351.86,346.08,350.14,240390000,350.14 +1989-12-14,352.74,352.75,350.08,350.93,178700000,350.93 +1989-12-13,351.70,354.10,351.65,352.75,184660000,352.75 +1989-12-12,348.56,352.21,348.41,351.73,176820000,351.73 +1989-12-11,348.68,348.74,346.39,348.56,147130000,348.56 +1989-12-08,347.60,349.60,347.59,348.69,144910000,348.69 +1989-12-07,348.55,349.84,346.00,347.59,161980000,347.59 +1989-12-06,349.58,349.94,347.91,348.55,145850000,348.55 +1989-12-05,351.41,352.24,349.58,349.58,154640000,349.58 +1989-12-04,350.63,351.51,350.32,351.41,150360000,351.41 +1989-12-01,346.01,351.88,345.99,350.63,199200000,350.63 +1989-11-30,343.60,346.50,343.57,345.99,153200000,345.99 +1989-11-29,345.77,345.77,343.36,343.60,147270000,343.60 +1989-11-28,345.61,346.33,344.41,345.77,153770000,345.77 +1989-11-27,343.98,346.24,343.97,345.61,149390000,345.61 +1989-11-24,341.92,344.24,341.91,343.97,86290000,343.97 +1989-11-22,339.59,341.92,339.59,341.91,145730000,341.91 +1989-11-21,339.35,340.21,337.53,339.59,147900000,339.59 +1989-11-20,341.61,341.90,338.29,339.35,128170000,339.35 +1989-11-17,340.58,342.24,339.85,341.61,151020000,341.61 +1989-11-16,340.54,341.02,338.93,340.58,148370000,340.58 +1989-11-15,338.00,340.54,337.14,340.54,155130000,340.54 +1989-11-14,339.55,340.41,337.06,337.99,143170000,337.99 +1989-11-13,339.08,340.51,337.93,339.55,140750000,339.55 +1989-11-10,336.57,339.10,336.57,339.10,131800000,339.10 +1989-11-09,338.15,338.73,336.21,336.57,143390000,336.57 +1989-11-08,334.81,339.41,334.81,338.15,170150000,338.15 +1989-11-07,332.61,334.82,330.91,334.81,163000000,334.81 +1989-11-06,337.61,337.62,332.33,332.61,135480000,332.61 +1989-11-03,338.48,339.67,337.37,337.62,131500000,337.62 +1989-11-02,341.20,341.20,336.61,338.48,152440000,338.48 +1989-11-01,340.36,341.74,339.79,341.20,154240000,341.20 +1989-10-31,335.08,340.86,335.07,340.36,176100000,340.36 +1989-10-30,335.06,337.04,334.48,335.07,126630000,335.07 +1989-10-27,337.93,337.97,333.26,335.06,170330000,335.06 +1989-10-26,342.50,342.50,337.20,337.93,175240000,337.93 +1989-10-25,343.70,344.51,341.96,342.50,155650000,342.50 +1989-10-24,344.83,344.83,335.13,343.70,237960000,343.70 +1989-10-23,347.11,348.19,344.22,344.83,135860000,344.83 +1989-10-20,347.04,347.57,344.47,347.16,164830000,347.16 +1989-10-19,341.76,348.82,341.76,347.13,198120000,347.13 +1989-10-18,341.16,343.39,339.03,341.76,166900000,341.76 +1989-10-17,342.84,342.85,335.69,341.16,224070000,341.16 +1989-10-16,333.65,342.87,327.12,342.85,416290000,342.85 +1989-10-13,355.39,355.53,332.81,333.65,251170000,333.65 +1989-10-12,356.99,356.99,354.91,355.39,160120000,355.39 +1989-10-11,359.13,359.13,356.08,356.99,164070000,356.99 +1989-10-10,359.80,360.44,358.11,359.13,147560000,359.13 +1989-10-09,358.76,359.86,358.06,359.80,86810000,359.80 +1989-10-06,356.97,359.05,356.97,358.78,172520000,358.78 +1989-10-05,356.94,357.63,356.28,356.97,177890000,356.97 +1989-10-04,354.71,357.49,354.71,356.94,194590000,356.94 +1989-10-03,350.87,354.73,350.85,354.71,182550000,354.71 +1989-10-02,349.15,350.99,348.35,350.87,127410000,350.87 +1989-09-29,348.60,350.31,348.12,349.15,155300000,349.15 +1989-09-28,345.10,348.61,345.10,348.60,164240000,348.60 +1989-09-27,344.33,345.47,342.85,345.10,158400000,345.10 +1989-09-26,344.23,347.02,344.13,344.33,158350000,344.33 +1989-09-25,347.05,347.05,343.70,344.23,121130000,344.23 +1989-09-22,345.70,347.57,345.69,347.05,133350000,347.05 +1989-09-21,346.47,348.46,344.96,345.70,146930000,345.70 +1989-09-20,346.55,347.27,346.18,346.47,136640000,346.47 +1989-09-19,346.73,348.17,346.44,346.55,141610000,346.55 +1989-09-18,345.06,346.84,344.60,346.73,136940000,346.73 +1989-09-15,343.16,345.06,341.37,345.06,234860000,345.06 +1989-09-14,345.46,345.61,342.55,343.16,149250000,343.16 +1989-09-13,348.70,350.10,345.46,345.46,175330000,345.46 +1989-09-12,347.66,349.46,347.50,348.70,142140000,348.70 +1989-09-11,348.76,348.76,345.91,347.66,126020000,347.66 +1989-09-08,348.35,349.18,345.74,348.76,154090000,348.76 +1989-09-07,349.24,350.31,348.15,348.35,160160000,348.35 +1989-09-06,352.56,352.56,347.98,349.24,161800000,349.24 +1989-09-05,353.73,354.13,351.82,352.56,145180000,352.56 +1989-09-01,351.45,353.90,350.88,353.73,133300000,353.73 +1989-08-31,350.65,351.45,350.21,351.45,144820000,351.45 +1989-08-30,349.84,352.27,348.66,350.65,174350000,350.65 +1989-08-29,352.09,352.12,348.86,349.84,175210000,349.84 +1989-08-28,350.52,352.09,349.08,352.09,131180000,352.09 +1989-08-25,351.52,352.73,350.09,350.52,165930000,350.52 +1989-08-24,344.70,351.52,344.70,351.52,225520000,351.52 +1989-08-23,341.19,344.80,341.19,344.70,159640000,344.70 +1989-08-22,340.67,341.25,339.00,341.19,141930000,341.19 +1989-08-21,346.03,346.25,340.55,340.67,136800000,340.67 +1989-08-18,344.45,346.03,343.89,346.03,145810000,346.03 +1989-08-17,345.66,346.39,342.97,344.45,157560000,344.45 +1989-08-16,344.71,346.37,344.71,345.66,150060000,345.66 +1989-08-15,343.06,345.03,343.05,344.71,148770000,344.71 +1989-08-14,344.71,345.44,341.96,343.06,142010000,343.06 +1989-08-11,348.28,351.18,344.01,344.74,197550000,344.74 +1989-08-10,346.94,349.78,345.31,348.25,198660000,348.25 +1989-08-09,349.30,351.00,346.86,346.94,209900000,346.94 +1989-08-08,349.41,349.84,348.28,349.35,200340000,349.35 +1989-08-07,343.92,349.42,343.91,349.41,197580000,349.41 +1989-08-04,344.74,345.42,342.60,343.92,169750000,343.92 +1989-08-03,344.34,345.22,343.81,344.74,168690000,344.74 +1989-08-02,343.75,344.34,342.47,344.34,181760000,344.34 +1989-08-01,346.08,347.99,342.93,343.75,225280000,343.75 +1989-07-31,342.13,346.08,342.02,346.08,166650000,346.08 +1989-07-28,341.94,342.96,341.30,342.15,180610000,342.15 +1989-07-27,338.05,342.00,338.05,341.99,213680000,341.99 +1989-07-26,333.88,338.05,333.19,338.05,188270000,338.05 +1989-07-25,333.67,336.29,332.60,333.88,179270000,333.88 +1989-07-24,335.90,335.90,333.44,333.67,136260000,333.67 +1989-07-21,333.50,335.91,332.46,335.90,174880000,335.90 +1989-07-20,335.74,337.40,333.22,333.51,204590000,333.51 +1989-07-19,331.37,335.73,331.35,335.73,215740000,335.73 +1989-07-18,332.42,332.44,330.75,331.35,152350000,331.35 +1989-07-17,331.78,333.02,331.02,332.44,131960000,332.44 +1989-07-14,329.96,331.89,327.13,331.84,183480000,331.84 +1989-07-13,329.81,330.37,329.08,329.95,153820000,329.95 +1989-07-12,328.78,330.39,327.92,329.81,160550000,329.81 +1989-07-11,327.07,330.42,327.07,328.78,171590000,328.78 +1989-07-10,324.93,327.07,324.91,327.07,131870000,327.07 +1989-07-07,321.55,325.87,321.08,324.91,166430000,324.91 +1989-07-06,320.64,321.55,320.45,321.55,140450000,321.55 +1989-07-05,319.23,321.22,317.26,320.64,127710000,320.64 +1989-07-03,317.98,319.27,317.27,319.23,68870000,319.23 +1989-06-30,319.67,319.97,314.38,317.98,170490000,317.98 +1989-06-29,325.81,325.81,319.54,319.68,167100000,319.68 +1989-06-28,328.44,328.44,324.30,325.81,158470000,325.81 +1989-06-27,326.60,329.19,326.59,328.44,171090000,328.44 +1989-06-26,328.00,328.15,326.31,326.60,143600000,326.60 +1989-06-23,322.32,328.00,322.32,328.00,198720000,328.00 +1989-06-22,320.48,322.34,320.20,322.32,176510000,322.32 +1989-06-21,321.25,321.87,319.25,320.48,168830000,320.48 +1989-06-20,321.89,322.78,321.03,321.25,167650000,321.25 +1989-06-19,321.35,321.89,320.40,321.89,130720000,321.89 +1989-06-16,319.96,321.36,318.69,321.35,244510000,321.35 +1989-06-15,323.83,323.83,319.21,320.08,179480000,320.08 +1989-06-14,323.91,324.89,322.80,323.83,170540000,323.83 +1989-06-13,326.24,326.24,322.96,323.91,164870000,323.91 +1989-06-12,326.69,326.69,323.73,326.24,151460000,326.24 +1989-06-09,326.75,327.32,325.16,326.69,173240000,326.69 +1989-06-08,326.95,327.37,325.92,326.75,212310000,326.75 +1989-06-07,324.24,327.39,324.24,326.95,213710000,326.95 +1989-06-06,322.03,324.48,321.27,324.24,187570000,324.24 +1989-06-05,325.52,325.93,322.02,322.03,163420000,322.03 +1989-06-02,321.97,325.63,321.97,325.52,229140000,325.52 +1989-06-01,320.51,322.57,320.01,321.97,223160000,321.97 +1989-05-31,319.05,321.30,318.68,320.52,162530000,320.52 +1989-05-30,321.59,322.53,317.83,319.05,151780000,319.05 +1989-05-26,319.17,321.59,319.14,321.59,143120000,321.59 +1989-05-25,319.14,319.60,318.42,319.17,154470000,319.17 +1989-05-24,318.32,319.14,317.58,319.14,178600000,319.14 +1989-05-23,321.98,321.98,318.20,318.32,187690000,318.32 +1989-05-22,321.24,323.06,320.45,321.98,185010000,321.98 +1989-05-19,317.97,321.38,317.97,321.24,242410000,321.24 +1989-05-18,317.48,318.52,316.54,317.97,177480000,317.97 +1989-05-17,315.28,317.94,315.11,317.48,191210000,317.48 +1989-05-16,316.16,316.16,314.99,315.28,173100000,315.28 +1989-05-15,313.84,316.16,313.84,316.16,179350000,316.16 +1989-05-12,306.95,313.84,306.95,313.84,221490000,313.84 +1989-05-11,305.80,307.34,305.80,306.95,151620000,306.95 +1989-05-10,305.19,306.25,304.85,305.80,146000000,305.80 +1989-05-09,306.00,306.99,304.06,305.19,150090000,305.19 +1989-05-08,307.61,307.61,304.74,306.00,135130000,306.00 +1989-05-05,307.77,310.69,306.98,307.61,180810000,307.61 +1989-05-04,308.16,308.40,307.32,307.77,153130000,307.77 +1989-05-03,308.12,308.52,307.11,308.16,171690000,308.16 +1989-05-02,309.13,310.45,308.12,308.12,172560000,308.12 +1989-05-01,309.64,309.64,307.40,309.12,138050000,309.12 +1989-04-28,309.58,309.65,308.48,309.64,158390000,309.64 +1989-04-27,306.93,310.45,306.93,309.58,191170000,309.58 +1989-04-26,306.78,307.30,306.07,306.93,146090000,306.93 +1989-04-25,308.69,309.65,306.74,306.75,165430000,306.75 +1989-04-24,309.61,309.61,307.83,308.69,142100000,308.69 +1989-04-21,306.19,309.61,306.19,309.61,187310000,309.61 +1989-04-20,307.15,307.96,304.53,306.19,175970000,306.19 +1989-04-19,306.02,307.68,305.36,307.15,191510000,307.15 +1989-04-18,301.72,306.25,301.72,306.02,208650000,306.02 +1989-04-17,301.36,302.01,300.71,301.72,128540000,301.72 +1989-04-14,296.40,301.38,296.40,301.36,169780000,301.36 +1989-04-13,298.99,299.00,296.27,296.40,141590000,296.40 +1989-04-12,298.49,299.81,298.49,298.99,165200000,298.99 +1989-04-11,297.11,298.87,297.11,298.49,146830000,298.49 +1989-04-10,297.16,297.94,296.85,297.11,123990000,297.11 +1989-04-07,295.29,297.62,294.35,297.16,156950000,297.16 +1989-04-06,296.22,296.24,294.52,295.29,146530000,295.29 +1989-04-05,295.31,296.43,295.28,296.24,165880000,296.24 +1989-04-04,296.40,296.40,294.72,295.31,160680000,295.31 +1989-04-03,294.87,297.04,294.62,296.39,164660000,296.39 +1989-03-31,292.52,294.96,292.52,294.87,170960000,294.87 +1989-03-30,292.35,293.80,291.50,292.52,159950000,292.52 +1989-03-29,291.59,292.75,291.42,292.35,144240000,292.35 +1989-03-28,290.57,292.32,290.57,291.59,146420000,291.59 +1989-03-27,288.98,290.57,288.07,290.57,112960000,290.57 +1989-03-23,290.49,291.51,288.56,288.98,153750000,288.98 +1989-03-22,291.33,291.46,289.90,290.49,146570000,290.49 +1989-03-21,289.92,292.38,289.92,291.33,142010000,291.33 +1989-03-20,292.69,292.69,288.56,289.92,151260000,289.92 +1989-03-17,299.44,299.44,291.08,292.69,242900000,292.69 +1989-03-16,296.67,299.99,296.66,299.44,196040000,299.44 +1989-03-15,295.14,296.78,295.14,296.67,167070000,296.67 +1989-03-14,295.32,296.29,294.63,295.14,139970000,295.14 +1989-03-13,292.88,296.18,292.88,295.32,140460000,295.32 +1989-03-10,293.93,293.93,291.60,292.88,146830000,292.88 +1989-03-09,294.08,294.69,293.85,293.93,143160000,293.93 +1989-03-08,293.87,295.62,293.51,294.08,167620000,294.08 +1989-03-07,294.81,295.16,293.50,293.87,172500000,293.87 +1989-03-06,291.20,294.81,291.18,294.81,168880000,294.81 +1989-03-03,289.94,291.18,289.44,291.18,151790000,291.18 +1989-03-02,287.11,290.32,287.11,289.95,161980000,289.95 +1989-03-01,288.86,290.28,286.46,287.11,177210000,287.11 +1989-02-28,287.82,289.42,287.63,288.86,147430000,288.86 +1989-02-27,287.13,288.12,286.26,287.82,139900000,287.82 +1989-02-24,292.05,292.05,287.13,287.13,160680000,287.13 +1989-02-23,290.91,292.05,289.83,292.05,150370000,292.05 +1989-02-22,295.98,295.98,290.76,290.91,163140000,290.91 +1989-02-21,296.76,297.04,295.16,295.98,141950000,295.98 +1989-02-17,294.81,297.12,294.69,296.76,159520000,296.76 +1989-02-16,294.24,295.15,294.22,294.81,177450000,294.81 +1989-02-15,291.81,294.42,291.49,294.24,154220000,294.24 +1989-02-14,292.54,294.37,291.41,291.81,150610000,291.81 +1989-02-13,292.02,293.07,290.88,292.54,143520000,292.54 +1989-02-10,296.06,296.06,291.96,292.02,173560000,292.02 +1989-02-09,298.65,298.79,295.16,296.06,224220000,296.06 +1989-02-08,299.62,300.57,298.41,298.65,189420000,298.65 +1989-02-07,296.04,300.34,295.78,299.63,217260000,299.63 +1989-02-06,296.97,296.99,294.96,296.04,150980000,296.04 +1989-02-03,296.84,297.66,296.15,296.97,172980000,296.97 +1989-02-02,297.09,297.92,295.81,296.84,183430000,296.84 +1989-02-01,297.47,298.33,296.22,297.09,215640000,297.09 +1989-01-31,294.99,297.51,293.57,297.47,194050000,297.47 +1989-01-30,293.82,295.13,293.54,294.99,167830000,294.99 +1989-01-27,291.69,296.08,291.69,293.82,254870000,293.82 +1989-01-26,289.14,292.62,288.13,291.69,212250000,291.69 +1989-01-25,288.49,289.15,287.97,289.14,183610000,289.14 +1989-01-24,284.50,288.49,284.50,288.49,189620000,288.49 +1989-01-23,287.85,287.98,284.50,284.50,141640000,284.50 +1989-01-20,286.90,287.04,285.75,286.63,166120000,286.63 +1989-01-19,286.53,287.90,286.14,286.91,192030000,286.91 +1989-01-18,283.55,286.87,282.65,286.53,187450000,286.53 +1989-01-17,284.14,284.14,283.06,283.55,143930000,283.55 +1989-01-16,283.87,284.88,283.63,284.14,117380000,284.14 +1989-01-13,283.17,284.12,282.71,283.87,132320000,283.87 +1989-01-12,282.01,284.63,282.01,283.17,183000000,283.17 +1989-01-11,280.38,282.01,280.21,282.01,148950000,282.01 +1989-01-10,280.98,281.58,279.44,280.38,140420000,280.38 +1989-01-09,280.67,281.89,280.32,280.98,163180000,280.98 +1989-01-06,280.01,282.06,280.01,280.67,161330000,280.67 +1989-01-05,279.43,281.51,279.43,280.01,174040000,280.01 +1989-01-04,275.31,279.75,275.31,279.43,149700000,279.43 +1989-01-03,277.72,277.72,273.81,275.31,128500000,275.31 +1988-12-30,279.39,279.78,277.72,277.72,127210000,277.72 +1988-12-29,277.08,279.42,277.08,279.40,131290000,279.40 +1988-12-28,276.83,277.55,276.17,277.08,110630000,277.08 +1988-12-27,277.87,278.09,276.74,276.83,87490000,276.83 +1988-12-23,276.87,277.99,276.87,277.87,81760000,277.87 +1988-12-22,277.38,277.89,276.86,276.87,150510000,276.87 +1988-12-21,277.47,277.83,276.30,277.38,147250000,277.38 +1988-12-20,278.91,280.45,277.47,277.47,161090000,277.47 +1988-12-19,276.29,279.31,275.61,278.91,162250000,278.91 +1988-12-16,274.28,276.29,274.28,276.29,196480000,276.29 +1988-12-15,275.32,275.62,274.01,274.28,136820000,274.28 +1988-12-14,276.31,276.31,274.58,275.31,132350000,275.31 +1988-12-13,276.52,276.52,274.58,276.31,132340000,276.31 +1988-12-12,277.03,278.82,276.52,276.52,124160000,276.52 +1988-12-09,276.57,277.82,276.34,277.03,133770000,277.03 +1988-12-08,278.13,278.13,276.55,276.59,124150000,276.59 +1988-12-07,277.59,279.01,277.34,278.13,148360000,278.13 +1988-12-06,274.93,277.89,274.62,277.59,158340000,277.59 +1988-12-05,274.93,275.62,271.81,274.93,144660000,274.93 +1988-12-02,272.49,272.49,270.47,271.81,124610000,271.81 +1988-12-01,273.68,273.70,272.27,272.49,129380000,272.49 +1988-11-30,270.91,274.36,270.90,273.70,157810000,273.70 +1988-11-29,268.60,271.31,268.13,270.91,127420000,270.91 +1988-11-28,267.22,268.98,266.97,268.64,123480000,268.64 +1988-11-25,268.99,269.00,266.47,267.23,72090000,267.23 +1988-11-23,267.22,269.56,267.21,269.00,112010000,269.00 +1988-11-22,266.19,267.85,265.42,267.21,127000000,267.21 +1988-11-21,266.35,266.47,263.41,266.22,120430000,266.22 +1988-11-18,264.60,266.62,264.60,266.47,119320000,266.47 +1988-11-17,264.61,265.63,263.45,264.60,141280000,264.60 +1988-11-16,268.41,268.41,262.85,263.82,161710000,263.82 +1988-11-15,267.73,268.75,267.72,268.34,115170000,268.34 +1988-11-14,267.93,269.25,266.79,267.72,142900000,267.72 +1988-11-11,273.65,273.69,267.92,267.92,135500000,267.92 +1988-11-10,273.32,274.37,272.98,273.69,128920000,273.69 +1988-11-09,275.14,275.15,272.15,273.33,153140000,273.33 +1988-11-08,273.95,275.80,273.93,275.15,141660000,275.15 +1988-11-07,276.30,276.31,273.62,273.93,133870000,273.93 +1988-11-04,279.11,279.20,276.31,276.31,143580000,276.31 +1988-11-03,279.04,280.37,279.04,279.20,152980000,279.20 +1988-11-02,279.07,279.45,277.08,279.06,161300000,279.06 +1988-11-01,278.97,279.57,278.01,279.06,151250000,279.06 +1988-10-31,278.54,279.39,277.14,278.97,143460000,278.97 +1988-10-28,277.29,279.48,277.28,278.53,146300000,278.53 +1988-10-27,281.35,281.38,276.00,277.28,196540000,277.28 +1988-10-26,282.37,282.52,280.54,281.38,181550000,281.38 +1988-10-25,282.28,282.84,281.87,282.38,155190000,282.38 +1988-10-24,283.63,283.95,282.28,282.28,170590000,282.28 +1988-10-21,282.88,283.66,281.16,283.66,195410000,283.66 +1988-10-20,276.97,282.88,276.93,282.88,189580000,282.88 +1988-10-19,279.40,280.53,274.41,276.97,186350000,276.97 +1988-10-18,276.43,279.39,276.41,279.38,162500000,279.38 +1988-10-17,275.48,276.65,275.01,276.41,119290000,276.41 +1988-10-14,275.27,277.01,274.08,275.50,160240000,275.50 +1988-10-13,273.95,275.83,273.39,275.22,154530000,275.22 +1988-10-12,277.91,277.93,273.05,273.98,154840000,273.98 +1988-10-11,278.15,278.24,276.33,277.93,140900000,277.93 +1988-10-10,278.06,278.69,277.10,278.24,124660000,278.24 +1988-10-07,272.38,278.07,272.37,278.07,216390000,278.07 +1988-10-06,271.87,272.39,271.30,272.39,153570000,272.39 +1988-10-05,270.63,272.45,270.08,271.86,175130000,271.86 +1988-10-04,271.37,271.79,270.34,270.62,157760000,270.62 +1988-10-03,271.89,271.91,268.84,271.38,130380000,271.38 +1988-09-30,272.55,274.87,271.66,271.91,175750000,271.91 +1988-09-29,269.09,273.02,269.08,272.59,155790000,272.59 +1988-09-28,268.22,269.08,267.77,269.08,113720000,269.08 +1988-09-27,268.89,269.36,268.01,268.26,113010000,268.26 +1988-09-26,269.77,269.80,268.61,268.88,116420000,268.88 +1988-09-23,269.16,270.31,268.28,269.76,145100000,269.76 +1988-09-22,270.19,270.58,268.26,269.18,150670000,269.18 +1988-09-21,269.76,270.64,269.48,270.16,127400000,270.16 +1988-09-20,268.83,270.07,268.50,269.73,142220000,269.73 +1988-09-19,270.64,270.65,267.41,268.82,135770000,268.82 +1988-09-16,268.13,270.81,267.33,270.65,211110000,270.65 +1988-09-15,269.30,269.78,268.03,268.13,161210000,268.13 +1988-09-14,267.50,269.47,267.41,269.31,177220000,269.31 +1988-09-13,266.45,267.43,265.22,267.43,162490000,267.43 +1988-09-12,266.85,267.64,266.22,266.47,114880000,266.47 +1988-09-09,265.88,268.26,263.66,266.84,141540000,266.84 +1988-09-08,265.87,266.54,264.88,265.88,149380000,265.88 +1988-09-07,265.62,266.98,264.93,265.87,139590000,265.87 +1988-09-06,264.42,265.94,264.40,265.59,122250000,265.59 +1988-09-02,258.35,264.90,258.35,264.48,159840000,264.48 +1988-09-01,261.52,261.52,256.98,258.35,144090000,258.35 +1988-08-31,262.51,263.80,261.21,261.52,130480000,261.52 +1988-08-30,262.33,263.18,261.53,262.51,108720000,262.51 +1988-08-29,259.68,262.56,259.68,262.33,99280000,262.33 +1988-08-26,259.18,260.15,258.87,259.68,89240000,259.68 +1988-08-25,261.10,261.13,257.56,259.18,127640000,259.18 +1988-08-24,257.16,261.13,257.09,261.13,127800000,261.13 +1988-08-23,256.99,257.86,256.53,257.09,119540000,257.09 +1988-08-22,260.24,260.71,256.94,256.98,122250000,256.98 +1988-08-19,261.05,262.27,260.23,260.24,122370000,260.24 +1988-08-18,260.76,262.76,260.75,261.03,139820000,261.03 +1988-08-17,260.57,261.84,259.33,260.77,169500000,260.77 +1988-08-16,258.68,262.61,257.50,260.56,162790000,260.56 +1988-08-15,262.49,262.55,258.68,258.69,128560000,258.69 +1988-08-12,262.70,262.94,261.37,262.55,176960000,262.55 +1988-08-11,261.92,262.77,260.34,262.75,173000000,262.75 +1988-08-10,266.43,266.49,261.03,261.90,200950000,261.90 +1988-08-09,270.00,270.20,265.06,266.49,200710000,266.49 +1988-08-08,271.13,272.47,269.93,269.98,148800000,269.98 +1988-08-05,271.70,271.93,270.08,271.15,113400000,271.15 +1988-08-04,273.00,274.20,271.77,271.93,157240000,271.93 +1988-08-03,272.03,273.42,271.15,272.98,203590000,272.98 +1988-08-02,272.19,273.68,270.37,272.06,166660000,272.06 +1988-08-01,272.03,272.80,271.21,272.21,138170000,272.21 +1988-07-29,266.04,272.02,266.02,272.02,192340000,272.02 +1988-07-28,262.52,266.55,262.50,266.02,154570000,266.02 +1988-07-27,265.18,265.83,262.48,262.50,135890000,262.50 +1988-07-26,264.70,266.09,264.32,265.19,121960000,265.19 +1988-07-25,263.49,265.17,263.03,264.68,215140000,264.68 +1988-07-22,266.65,266.66,263.29,263.50,148880000,263.50 +1988-07-21,269.99,270.00,266.66,266.66,149460000,266.66 +1988-07-20,268.52,270.24,268.47,270.00,151990000,270.00 +1988-07-19,270.49,271.21,267.01,268.47,144110000,268.47 +1988-07-18,271.99,272.05,268.66,270.51,156210000,270.51 +1988-07-15,270.23,272.06,269.53,272.05,199710000,272.05 +1988-07-14,269.33,270.69,268.58,270.26,172410000,270.26 +1988-07-13,267.87,269.46,266.12,269.32,218930000,269.32 +1988-07-12,270.54,270.70,266.96,267.85,161650000,267.85 +1988-07-11,270.03,271.64,270.02,270.55,123300000,270.55 +1988-07-08,271.76,272.31,269.86,270.02,136070000,270.02 +1988-07-07,272.00,272.05,269.31,271.78,156100000,271.78 +1988-07-06,275.80,276.36,269.92,272.02,189630000,272.02 +1988-07-05,271.78,275.81,270.51,275.81,171790000,275.81 +1988-07-01,273.50,273.80,270.78,271.78,238330000,271.78 +1988-06-30,271.00,273.51,270.97,273.50,227410000,273.50 +1988-06-29,272.32,273.01,269.49,270.98,159590000,270.98 +1988-06-28,269.07,272.80,269.06,272.31,152370000,272.31 +1988-06-27,273.78,273.79,268.85,269.06,264410000,269.06 +1988-06-24,274.81,275.19,273.53,273.78,179880000,273.78 +1988-06-23,275.62,275.89,274.26,274.82,185770000,274.82 +1988-06-22,271.69,276.88,271.67,275.66,217510000,275.66 +1988-06-21,268.95,271.67,267.52,271.67,155060000,271.67 +1988-06-20,270.67,270.68,268.59,268.94,116750000,268.94 +1988-06-17,269.79,270.77,268.09,270.68,343920000,270.68 +1988-06-16,274.44,274.45,268.76,269.77,161550000,269.77 +1988-06-15,274.29,274.45,272.75,274.45,150260000,274.45 +1988-06-14,271.58,276.14,271.44,274.30,227150000,274.30 +1988-06-13,271.28,271.94,270.53,271.43,125310000,271.43 +1988-06-10,270.22,273.21,270.20,271.26,155710000,271.26 +1988-06-09,271.50,272.29,270.19,270.20,235160000,270.20 +1988-06-08,265.32,272.01,265.17,271.52,310030000,271.52 +1988-06-07,267.02,267.28,264.50,265.17,168710000,265.17 +1988-06-06,266.46,267.05,264.97,267.05,152460000,267.05 +1988-06-03,265.34,267.11,264.42,266.45,189600000,266.45 +1988-06-02,266.65,266.71,264.12,265.33,193540000,265.33 +1988-06-01,262.16,267.43,262.10,266.69,234560000,266.69 +1988-05-31,253.44,262.16,253.42,262.16,247610000,262.16 +1988-05-27,254.62,254.63,252.74,253.42,133590000,253.42 +1988-05-26,253.75,254.98,253.52,254.63,164260000,254.63 +1988-05-25,253.52,255.34,253.51,253.76,138310000,253.76 +1988-05-24,250.84,253.51,250.83,253.51,139930000,253.51 +1988-05-23,253.00,253.02,249.82,250.83,102640000,250.83 +1988-05-20,252.61,253.70,251.79,253.02,120600000,253.02 +1988-05-19,251.36,252.57,248.85,252.57,165160000,252.57 +1988-05-18,255.40,255.67,250.73,251.35,209420000,251.35 +1988-05-17,258.72,260.20,255.35,255.39,133850000,255.39 +1988-05-16,256.75,258.71,256.28,258.71,155010000,258.71 +1988-05-13,253.88,256.83,253.85,256.78,147240000,256.78 +1988-05-12,253.32,254.87,253.31,253.85,143880000,253.85 +1988-05-11,257.60,257.62,252.32,253.31,176720000,253.31 +1988-05-10,256.53,258.30,255.93,257.62,131200000,257.62 +1988-05-09,257.47,258.22,255.45,256.54,166320000,256.54 +1988-05-06,258.80,260.31,257.03,257.48,129080000,257.48 +1988-05-05,260.30,260.32,258.13,258.79,171840000,258.79 +1988-05-04,263.05,263.23,260.31,260.32,141320000,260.32 +1988-05-03,261.55,263.70,261.55,263.00,176920000,263.00 +1988-05-02,261.36,261.56,259.99,261.56,136470000,261.56 +1988-04-29,262.59,262.61,259.97,261.33,135620000,261.33 +1988-04-28,263.79,263.80,262.22,262.61,128680000,262.61 +1988-04-27,263.94,265.09,263.45,263.80,133810000,263.80 +1988-04-26,262.45,265.06,262.18,263.93,152300000,263.93 +1988-04-25,260.15,263.29,260.14,262.51,156950000,262.51 +1988-04-22,256.45,261.16,256.42,260.14,152520000,260.14 +1988-04-21,256.15,260.44,254.71,256.42,168440000,256.42 +1988-04-20,257.91,258.54,256.12,256.13,147590000,256.13 +1988-04-19,259.24,262.38,257.91,257.92,161910000,257.92 +1988-04-18,259.75,259.81,258.03,259.21,144650000,259.21 +1988-04-15,259.74,260.39,255.97,259.77,234160000,259.77 +1988-04-14,271.55,271.57,259.37,259.75,211810000,259.75 +1988-04-13,271.33,271.70,269.23,271.58,185120000,271.58 +1988-04-12,269.88,272.05,269.66,271.37,146400000,271.37 +1988-04-11,269.43,270.41,268.61,270.16,146370000,270.16 +1988-04-08,266.15,270.22,266.11,269.43,169300000,269.43 +1988-04-07,265.51,267.32,265.22,266.16,177840000,266.16 +1988-04-06,258.52,265.50,258.22,265.49,189760000,265.49 +1988-04-05,256.10,258.52,256.03,258.51,135290000,258.51 +1988-04-04,258.89,259.06,255.68,256.09,182240000,256.09 +1988-03-31,258.03,259.03,256.16,258.89,139870000,258.89 +1988-03-30,260.06,261.59,257.92,258.07,151810000,258.07 +1988-03-29,258.11,260.86,258.06,260.07,152690000,260.07 +1988-03-28,258.50,258.51,256.07,258.06,142820000,258.06 +1988-03-25,263.34,263.44,258.12,258.51,163170000,258.51 +1988-03-24,268.91,268.91,262.48,263.35,184910000,263.35 +1988-03-23,268.81,269.79,268.01,268.91,167370000,268.91 +1988-03-22,268.73,269.61,267.90,268.84,142000000,268.84 +1988-03-21,271.10,271.12,267.42,268.74,128830000,268.74 +1988-03-18,271.22,272.64,269.76,271.12,245750000,271.12 +1988-03-17,268.66,271.22,268.65,271.22,211920000,271.22 +1988-03-16,266.11,268.68,264.81,268.65,153590000,268.65 +1988-03-15,266.34,266.41,264.92,266.13,133170000,266.13 +1988-03-14,264.93,266.55,264.52,266.37,131890000,266.37 +1988-03-11,263.85,264.94,261.27,264.94,200020000,264.94 +1988-03-10,269.07,269.35,263.80,263.84,197260000,263.84 +1988-03-09,269.46,270.76,268.65,269.06,210900000,269.06 +1988-03-08,267.38,270.06,267.38,269.43,237680000,269.43 +1988-03-07,267.28,267.69,265.94,267.38,152980000,267.38 +1988-03-04,267.87,268.40,264.72,267.30,201410000,267.30 +1988-03-03,267.98,268.40,266.82,267.88,203310000,267.88 +1988-03-02,267.23,268.75,267.00,267.98,199630000,267.98 +1988-03-01,267.82,267.95,265.39,267.22,199990000,267.22 +1988-02-29,262.46,267.82,262.46,267.82,236050000,267.82 +1988-02-26,261.56,263.00,261.38,262.46,158060000,262.46 +1988-02-25,264.39,267.75,261.05,261.58,213490000,261.58 +1988-02-24,265.01,266.25,263.87,264.43,212730000,264.43 +1988-02-23,265.62,266.12,263.11,265.02,192260000,265.02 +1988-02-22,261.60,266.06,260.88,265.64,178930000,265.64 +1988-02-19,257.90,261.61,257.62,261.61,180300000,261.61 +1988-02-18,258.82,259.60,256.90,257.91,151430000,257.91 +1988-02-17,259.94,261.47,257.83,259.21,176830000,259.21 +1988-02-16,257.61,259.84,256.57,259.83,135380000,259.83 +1988-02-12,255.95,258.86,255.85,257.63,177190000,257.63 +1988-02-11,256.63,257.77,255.12,255.95,200760000,255.95 +1988-02-10,251.74,256.92,251.72,256.66,187980000,256.66 +1988-02-09,249.11,251.72,248.66,251.72,162350000,251.72 +1988-02-08,250.95,250.96,247.82,249.10,168850000,249.10 +1988-02-05,252.22,253.85,250.90,250.96,161310000,250.96 +1988-02-04,252.20,253.03,250.34,252.21,186490000,252.21 +1988-02-03,255.56,256.98,250.56,252.21,237270000,252.21 +1988-02-02,255.05,256.08,252.80,255.57,164920000,255.57 +1988-02-01,257.05,258.27,254.93,255.04,210660000,255.04 +1988-01-29,253.31,257.07,252.70,257.07,211880000,257.07 +1988-01-28,249.39,253.66,249.38,253.29,166430000,253.29 +1988-01-27,249.58,253.02,248.50,249.38,176360000,249.38 +1988-01-26,252.13,252.17,249.10,249.57,138380000,249.57 +1988-01-25,246.53,252.87,246.50,252.17,275250000,252.17 +1988-01-22,243.14,246.50,243.14,246.50,147050000,246.50 +1988-01-21,242.65,244.25,240.17,243.14,158080000,243.14 +1988-01-20,249.31,249.32,241.14,242.63,181660000,242.63 +1988-01-19,251.84,253.33,248.75,249.32,153550000,249.32 +1988-01-18,252.05,252.86,249.98,251.88,135100000,251.88 +1988-01-15,246.02,253.65,245.88,252.05,197940000,252.05 +1988-01-14,245.83,247.00,243.97,245.88,140570000,245.88 +1988-01-13,245.41,249.25,241.41,245.81,154020000,245.81 +1988-01-12,247.44,247.49,240.46,245.42,165730000,245.42 +1988-01-11,243.38,247.51,241.07,247.49,158980000,247.49 +1988-01-08,261.05,261.07,242.95,243.40,197300000,243.40 +1988-01-07,258.87,261.32,256.18,261.07,175360000,261.07 +1988-01-06,258.64,259.79,257.18,258.89,169730000,258.89 +1988-01-05,255.95,261.78,255.95,258.63,209520000,258.63 +1988-01-04,247.10,256.44,247.08,255.94,181810000,255.94 +1987-12-31,247.84,247.86,245.22,247.08,170140000,247.08 +1987-12-30,244.63,248.06,244.59,247.86,149230000,247.86 +1987-12-29,245.58,245.88,244.28,244.59,111580000,244.59 +1987-12-28,252.01,252.02,244.19,245.57,131220000,245.57 +1987-12-24,253.13,253.16,251.68,252.03,108800000,252.03 +1987-12-23,249.96,253.35,249.95,253.16,203110000,253.16 +1987-12-22,249.56,249.97,247.01,249.95,192650000,249.95 +1987-12-21,249.14,250.25,248.30,249.54,161790000,249.54 +1987-12-18,243.01,249.18,243.01,249.16,276220000,249.16 +1987-12-17,248.08,248.60,242.96,242.98,191780000,242.98 +1987-12-16,242.81,248.11,242.80,248.08,193820000,248.08 +1987-12-15,242.19,245.59,241.31,242.81,214970000,242.81 +1987-12-14,235.30,242.34,235.04,242.19,187680000,242.19 +1987-12-11,233.60,235.48,233.35,235.32,151680000,235.32 +1987-12-10,238.89,240.05,233.40,233.57,188960000,233.57 +1987-12-09,234.91,240.09,233.83,238.89,231430000,238.89 +1987-12-08,228.77,234.92,228.69,234.91,227310000,234.91 +1987-12-07,223.98,228.77,223.92,228.76,146660000,228.76 +1987-12-04,225.20,225.77,221.24,223.92,184800000,223.92 +1987-12-03,233.46,233.90,225.21,225.21,204160000,225.21 +1987-12-02,232.01,234.56,230.31,233.45,148890000,233.45 +1987-12-01,230.32,234.02,230.30,232.00,149870000,232.00 +1987-11-30,240.27,240.34,225.75,230.30,268910000,230.30 +1987-11-27,244.11,244.12,240.34,240.34,86360000,240.34 +1987-11-25,246.42,246.54,244.08,244.10,139780000,244.10 +1987-11-24,242.98,247.90,242.98,246.39,199520000,246.39 +1987-11-23,242.00,242.99,240.50,242.99,143160000,242.99 +1987-11-20,240.04,242.01,235.89,242.00,189170000,242.00 +1987-11-19,245.54,245.55,239.70,240.05,157140000,240.05 +1987-11-18,243.09,245.55,240.67,245.55,158270000,245.55 +1987-11-17,246.73,246.76,240.81,243.04,148240000,243.04 +1987-11-16,245.69,249.54,244.98,246.76,164340000,246.76 +1987-11-13,248.54,249.42,245.64,245.64,174920000,245.64 +1987-11-12,241.93,249.90,241.90,248.52,206280000,248.52 +1987-11-11,239.01,243.86,239.00,241.90,147850000,241.90 +1987-11-10,243.14,243.17,237.64,239.00,184310000,239.00 +1987-11-09,250.41,250.41,243.01,243.17,160690000,243.17 +1987-11-06,254.49,257.21,249.68,250.41,228290000,250.41 +1987-11-05,248.93,256.09,247.72,254.48,226000000,254.48 +1987-11-04,250.81,251.00,246.34,248.96,202500000,248.96 +1987-11-03,255.75,255.75,242.78,250.82,227800000,250.82 +1987-11-02,251.73,255.75,249.15,255.75,176000000,255.75 +1987-10-30,244.77,254.04,244.77,251.79,303400000,251.79 +1987-10-29,233.31,246.69,233.28,244.77,258100000,244.77 +1987-10-28,233.19,238.58,226.26,233.28,279400000,233.28 +1987-10-27,227.67,237.81,227.67,233.19,260200000,233.19 +1987-10-26,248.20,248.22,227.26,227.67,308800000,227.67 +1987-10-23,248.29,250.70,242.76,248.22,245600000,248.22 +1987-10-22,258.24,258.38,242.99,248.25,392200000,248.25 +1987-10-21,236.83,259.27,236.83,258.38,449600000,258.38 +1987-10-20,225.06,245.62,216.46,236.83,608100000,236.83 +1987-10-19,282.70,282.70,224.83,224.84,604300000,224.84 +1987-10-16,298.08,298.92,281.52,282.70,338500000,282.70 +1987-10-15,305.21,305.23,298.07,298.08,263200000,298.08 +1987-10-14,314.52,314.52,304.78,305.23,207400000,305.23 +1987-10-13,309.39,314.53,309.39,314.52,172900000,314.52 +1987-10-12,311.07,311.07,306.76,309.39,141900000,309.39 +1987-10-09,314.16,315.04,310.97,311.07,158300000,311.07 +1987-10-08,318.54,319.34,312.02,314.16,198700000,314.16 +1987-10-07,319.22,319.39,315.78,318.54,186300000,318.54 +1987-10-06,328.08,328.08,319.17,319.22,175600000,319.22 +1987-10-05,328.07,328.57,326.09,328.08,159700000,328.08 +1987-10-02,327.33,328.94,327.22,328.07,189100000,328.07 +1987-10-01,321.83,327.34,321.83,327.33,193200000,327.33 +1987-09-30,321.69,322.53,320.16,321.83,183100000,321.83 +1987-09-29,323.20,324.63,320.27,321.69,173500000,321.69 +1987-09-28,320.16,325.33,320.16,323.20,188100000,323.20 +1987-09-25,319.72,320.55,318.10,320.16,138000000,320.16 +1987-09-24,321.09,322.01,319.12,319.72,162200000,319.72 +1987-09-23,319.49,321.83,319.12,321.19,220300000,321.19 +1987-09-22,310.54,319.51,308.69,319.50,209500000,319.50 +1987-09-21,314.92,317.66,310.12,310.54,170100000,310.54 +1987-09-18,314.98,316.99,314.86,314.86,188100000,314.86 +1987-09-17,314.94,316.08,313.45,314.93,150700000,314.93 +1987-09-16,317.75,319.50,314.61,314.86,195700000,314.86 +1987-09-15,323.07,323.08,317.63,317.74,136200000,317.74 +1987-09-14,322.02,323.81,320.40,323.08,154400000,323.08 +1987-09-11,317.14,322.45,317.13,321.98,178000000,321.98 +1987-09-10,313.92,317.59,313.92,317.13,179800000,317.13 +1987-09-09,313.60,315.41,312.29,313.92,164900000,313.92 +1987-09-08,316.68,316.70,308.56,313.56,242900000,313.56 +1987-09-04,320.21,322.03,316.53,316.70,129100000,316.70 +1987-09-03,321.47,324.29,317.39,320.21,165200000,320.21 +1987-09-02,323.40,324.53,318.76,321.68,199900000,321.68 +1987-09-01,329.81,332.18,322.83,323.40,193500000,323.40 +1987-08-31,327.03,330.09,326.99,329.80,165800000,329.80 +1987-08-28,331.37,331.38,327.03,327.04,156300000,327.04 +1987-08-27,334.56,334.57,331.10,331.38,163600000,331.38 +1987-08-26,336.77,337.39,334.46,334.57,196200000,334.57 +1987-08-25,333.37,337.89,333.33,336.77,213500000,336.77 +1987-08-24,335.89,335.90,331.92,333.33,149400000,333.33 +1987-08-21,334.85,336.37,334.30,335.90,189600000,335.90 +1987-08-20,331.49,335.19,329.83,334.84,196600000,334.84 +1987-08-19,329.26,329.89,326.54,329.83,180900000,329.83 +1987-08-18,334.10,334.11,326.43,329.25,198400000,329.25 +1987-08-17,333.98,335.43,332.88,334.11,166100000,334.11 +1987-08-14,334.63,336.08,332.63,333.99,196100000,333.99 +1987-08-13,332.38,335.52,332.38,334.65,217100000,334.65 +1987-08-12,333.32,334.57,331.06,332.39,235800000,332.39 +1987-08-11,328.02,333.40,328.00,333.33,278100000,333.33 +1987-08-10,322.98,328.00,322.95,328.00,187200000,328.00 +1987-08-07,322.10,324.15,321.82,323.00,212700000,323.00 +1987-08-06,318.49,322.09,317.50,322.09,192000000,322.09 +1987-08-05,316.25,319.74,316.23,318.45,192700000,318.45 +1987-08-04,317.59,318.25,314.51,316.23,166500000,316.23 +1987-08-03,318.62,320.26,316.52,317.57,207800000,317.57 +1987-07-31,318.05,318.85,317.56,318.66,181900000,318.66 +1987-07-30,315.69,318.53,315.65,318.05,208000000,318.05 +1987-07-29,312.34,315.65,311.73,315.65,196200000,315.65 +1987-07-28,310.65,312.33,310.28,312.33,172600000,312.33 +1987-07-27,309.30,310.70,308.61,310.65,152000000,310.65 +1987-07-24,307.82,309.28,307.78,309.27,158400000,309.27 +1987-07-23,308.50,309.63,306.10,307.81,163700000,307.81 +1987-07-22,308.56,309.12,307.22,308.47,174700000,308.47 +1987-07-21,311.36,312.41,307.51,308.55,186600000,308.55 +1987-07-20,314.56,314.59,311.24,311.39,168100000,311.39 +1987-07-17,312.71,314.59,312.38,314.59,210000000,314.59 +1987-07-16,311.00,312.83,310.42,312.70,210900000,312.70 +1987-07-15,310.67,312.08,309.07,310.42,202300000,310.42 +1987-07-14,307.67,310.69,307.46,310.68,185900000,310.68 +1987-07-13,308.41,308.41,305.49,307.63,152500000,307.63 +1987-07-10,307.55,308.40,306.96,308.37,172100000,308.37 +1987-07-09,308.30,309.56,307.42,307.52,195400000,307.52 +1987-07-08,307.41,308.48,306.01,308.29,207500000,308.29 +1987-07-07,304.91,308.63,304.73,307.40,200700000,307.40 +1987-07-06,305.64,306.75,304.23,304.92,155000000,304.92 +1987-07-02,302.96,306.34,302.94,305.63,154900000,305.63 +1987-07-01,303.99,304.00,302.53,302.94,157000000,302.94 +1987-06-30,307.89,308.00,303.01,304.00,165500000,304.00 +1987-06-29,307.15,308.15,306.75,307.90,142500000,307.90 +1987-06-26,308.94,308.96,306.36,307.16,150500000,307.16 +1987-06-25,306.87,309.44,306.86,308.96,173500000,308.96 +1987-06-24,308.44,308.91,306.32,306.86,153800000,306.86 +1987-06-23,309.66,310.27,307.48,308.43,194200000,308.43 +1987-06-22,306.98,310.20,306.97,309.65,178200000,309.65 +1987-06-19,305.71,306.97,305.55,306.97,220500000,306.97 +1987-06-18,304.78,306.13,303.38,305.69,168600000,305.69 +1987-06-17,304.77,305.74,304.03,304.81,184700000,304.81 +1987-06-16,303.12,304.86,302.60,304.76,157800000,304.76 +1987-06-15,301.62,304.11,301.62,303.14,156900000,303.14 +1987-06-12,298.77,302.26,298.73,301.62,175100000,301.62 +1987-06-11,297.50,298.94,297.47,298.73,138900000,298.73 +1987-06-10,297.28,300.81,295.66,297.47,197400000,297.47 +1987-06-09,296.72,297.59,295.90,297.28,164200000,297.28 +1987-06-08,293.46,297.03,291.55,296.72,136400000,296.72 +1987-06-05,295.11,295.11,292.80,293.45,129100000,293.45 +1987-06-04,293.46,295.09,292.76,295.09,140300000,295.09 +1987-06-03,288.56,293.47,288.56,293.47,164200000,293.47 +1987-06-02,289.82,290.94,286.93,288.46,153400000,288.46 +1987-06-01,290.12,291.96,289.23,289.83,149300000,289.83 +1987-05-29,290.77,292.87,289.70,290.10,153500000,290.10 +1987-05-28,288.73,291.50,286.33,290.76,153800000,290.76 +1987-05-27,289.07,290.78,288.19,288.73,171400000,288.73 +1987-05-26,282.16,289.11,282.16,289.11,152500000,289.11 +1987-05-22,280.17,283.33,280.17,282.16,135800000,282.16 +1987-05-21,278.23,282.31,278.21,280.17,164800000,280.17 +1987-05-20,279.62,280.89,277.01,278.21,206800000,278.21 +1987-05-19,286.66,287.39,278.83,279.62,175400000,279.62 +1987-05-18,287.43,287.43,282.57,286.65,174200000,286.65 +1987-05-15,294.23,294.24,287.11,287.43,180800000,287.43 +1987-05-14,293.98,295.10,292.95,294.24,152000000,294.24 +1987-05-13,293.31,294.54,290.74,293.98,171000000,293.98 +1987-05-12,291.57,293.30,290.18,293.30,155300000,293.30 +1987-05-11,293.37,298.69,291.55,291.57,203700000,291.57 +1987-05-08,294.73,296.18,291.73,293.37,161900000,293.37 +1987-05-07,295.45,296.80,294.07,294.71,215200000,294.71 +1987-05-06,295.35,296.19,293.60,295.47,196600000,295.47 +1987-05-05,289.36,295.40,289.34,295.34,192300000,295.34 +1987-05-04,288.02,289.99,286.39,289.36,140600000,289.36 +1987-05-01,286.99,289.71,286.52,288.03,160100000,288.03 +1987-04-30,284.58,290.08,284.57,288.36,183100000,288.36 +1987-04-29,282.58,286.42,282.58,284.57,173600000,284.57 +1987-04-28,281.83,285.95,281.83,282.51,180100000,282.51 +1987-04-27,281.52,284.45,276.22,281.83,222700000,281.83 +1987-04-24,286.81,286.82,281.18,281.52,178000000,281.52 +1987-04-23,287.19,289.12,284.28,286.82,173900000,286.82 +1987-04-22,293.05,293.46,286.98,287.19,185900000,287.19 +1987-04-21,285.88,293.07,282.89,293.07,191300000,293.07 +1987-04-20,286.91,288.36,284.55,286.09,139100000,286.09 +1987-04-16,284.45,289.57,284.44,286.91,189600000,286.91 +1987-04-15,279.17,285.14,279.16,284.44,198200000,284.44 +1987-04-14,285.61,285.62,275.67,279.16,266500000,279.16 +1987-04-13,292.48,293.36,285.62,285.62,181000000,285.62 +1987-04-10,292.82,293.74,290.94,292.49,169500000,292.49 +1987-04-09,297.25,297.71,291.50,292.86,180300000,292.86 +1987-04-08,296.72,299.20,295.18,297.26,179800000,297.26 +1987-04-07,301.94,303.65,296.67,296.69,186400000,296.69 +1987-04-06,300.46,302.21,300.41,301.95,173700000,301.95 +1987-04-03,293.64,301.30,292.30,300.41,213400000,300.41 +1987-04-02,292.41,294.47,292.02,293.63,183000000,293.63 +1987-04-01,291.59,292.38,288.34,292.38,182600000,292.38 +1987-03-31,289.21,291.87,289.07,291.70,171800000,291.70 +1987-03-30,296.10,296.13,286.69,289.20,208400000,289.20 +1987-03-27,300.96,301.41,296.06,296.13,184400000,296.13 +1987-03-26,300.39,302.72,300.38,300.93,196000000,300.93 +1987-03-25,301.52,301.85,299.36,300.38,171300000,300.38 +1987-03-24,301.17,301.92,300.14,301.64,189900000,301.64 +1987-03-23,298.16,301.17,297.50,301.16,189100000,301.16 +1987-03-20,294.08,298.17,294.08,298.17,234000000,298.17 +1987-03-19,292.73,294.46,292.26,294.08,166100000,294.08 +1987-03-18,292.49,294.58,290.87,292.78,198100000,292.78 +1987-03-17,288.09,292.47,287.96,292.47,177300000,292.47 +1987-03-16,289.88,289.89,286.64,288.23,134900000,288.23 +1987-03-13,291.22,291.79,289.88,289.89,150900000,289.89 +1987-03-12,290.33,291.91,289.66,291.22,174500000,291.22 +1987-03-11,290.87,292.51,289.33,290.31,186900000,290.31 +1987-03-10,288.30,290.87,287.89,290.86,174800000,290.86 +1987-03-09,290.66,290.66,287.12,288.30,165400000,288.30 +1987-03-06,290.52,290.67,288.77,290.66,181600000,290.66 +1987-03-05,288.62,291.24,288.60,290.52,205400000,290.52 +1987-03-04,284.12,288.62,284.12,288.62,198400000,288.62 +1987-03-03,283.00,284.19,282.92,284.12,149200000,284.12 +1987-03-02,284.17,284.83,282.30,283.00,156700000,283.00 +1987-02-27,282.96,284.55,282.77,284.20,142800000,284.20 +1987-02-26,284.00,284.40,280.73,282.96,165800000,282.96 +1987-02-25,282.88,285.35,282.14,284.00,184100000,284.00 +1987-02-24,282.38,283.33,281.45,282.88,151300000,282.88 +1987-02-23,285.48,285.50,279.37,282.38,170500000,282.38 +1987-02-20,285.57,285.98,284.31,285.48,175800000,285.48 +1987-02-19,285.42,286.24,283.84,285.57,181500000,285.57 +1987-02-18,285.49,287.55,282.97,285.42,218200000,285.42 +1987-02-17,279.70,285.49,279.70,285.49,187800000,285.49 +1987-02-13,275.62,280.91,275.01,279.70,184400000,279.70 +1987-02-12,277.54,278.04,273.89,275.62,200400000,275.62 +1987-02-11,275.07,277.71,274.71,277.54,172400000,277.54 +1987-02-10,278.16,278.16,273.49,275.07,168300000,275.07 +1987-02-09,280.04,280.04,277.24,278.16,143300000,278.16 +1987-02-06,281.16,281.79,279.87,280.04,184100000,280.04 +1987-02-05,279.64,282.26,278.66,281.16,256700000,281.16 +1987-02-04,275.99,279.65,275.35,279.64,222400000,279.64 +1987-02-03,276.45,277.83,275.84,275.99,198100000,275.99 +1987-02-02,274.08,277.35,273.16,276.45,177400000,276.45 +1987-01-30,274.24,274.24,271.38,274.08,163400000,274.08 +1987-01-29,275.40,276.85,272.54,274.24,205300000,274.24 +1987-01-28,273.75,275.71,273.03,275.40,195800000,275.40 +1987-01-27,269.61,274.31,269.61,273.75,192300000,273.75 +1987-01-26,270.10,270.40,267.73,269.61,138900000,269.61 +1987-01-23,273.91,280.96,268.41,270.10,302400000,270.10 +1987-01-22,267.84,274.05,267.32,273.91,188700000,273.91 +1987-01-21,269.04,270.87,267.35,267.84,184200000,267.84 +1987-01-20,269.34,271.03,267.65,269.04,224800000,269.04 +1987-01-19,266.26,269.34,264.00,269.34,162800000,269.34 +1987-01-16,265.46,267.24,264.31,266.28,218400000,266.28 +1987-01-15,262.65,266.68,262.64,265.49,253100000,265.49 +1987-01-14,259.95,262.72,259.62,262.64,214200000,262.64 +1987-01-13,260.30,260.45,259.21,259.95,170900000,259.95 +1987-01-12,258.72,261.36,257.92,260.30,184200000,260.30 +1987-01-09,257.26,259.20,256.11,258.73,193000000,258.73 +1987-01-08,255.36,257.28,254.97,257.28,194500000,257.28 +1987-01-07,252.78,255.72,252.65,255.33,190900000,255.33 +1987-01-06,252.20,253.99,252.14,252.78,189300000,252.78 +1987-01-05,246.45,252.57,246.45,252.19,181900000,252.19 +1987-01-02,242.17,246.45,242.17,246.45,91880000,246.45 +1986-12-31,243.37,244.03,241.28,242.17,139200000,242.17 +1986-12-30,244.66,244.67,243.04,243.37,126200000,243.37 +1986-12-29,246.90,246.92,244.31,244.67,99800000,244.67 +1986-12-26,246.75,247.09,246.73,246.92,48860000,246.92 +1986-12-24,246.34,247.22,246.02,246.75,95410000,246.75 +1986-12-23,248.75,248.75,245.85,246.34,188700000,246.34 +1986-12-22,249.73,249.73,247.45,248.75,157600000,248.75 +1986-12-19,246.79,249.96,245.89,249.73,244700000,249.73 +1986-12-18,247.56,247.81,246.45,246.78,155400000,246.78 +1986-12-17,250.01,250.04,247.19,247.56,148800000,247.56 +1986-12-16,248.21,250.04,247.40,250.04,157000000,250.04 +1986-12-15,247.31,248.23,244.92,248.21,148200000,248.21 +1986-12-12,248.17,248.31,247.02,247.35,126600000,247.35 +1986-12-11,250.97,250.98,247.15,248.17,136000000,248.17 +1986-12-10,249.28,251.53,248.94,250.96,139700000,250.96 +1986-12-09,251.16,251.27,249.25,249.28,128700000,249.28 +1986-12-08,251.16,252.36,248.82,251.16,159000000,251.16 +1986-12-05,253.05,253.89,250.71,251.17,139800000,251.17 +1986-12-04,253.85,254.42,252.88,253.04,156900000,253.04 +1986-12-03,254.00,254.87,253.24,253.85,200100000,253.85 +1986-12-02,249.06,254.00,249.05,254.00,230400000,254.00 +1986-12-01,249.22,249.22,245.72,249.05,133800000,249.05 +1986-11-28,248.82,249.22,248.07,249.22,93530000,249.22 +1986-11-26,248.14,248.90,247.73,248.77,152000000,248.77 +1986-11-25,247.44,248.18,246.30,248.17,154600000,248.17 +1986-11-24,245.86,248.00,245.21,247.45,150800000,247.45 +1986-11-21,242.03,246.38,241.97,245.86,200700000,245.86 +1986-11-20,237.66,242.05,237.66,242.05,158100000,242.05 +1986-11-19,236.77,237.94,235.51,237.66,183300000,237.66 +1986-11-18,243.20,243.23,236.65,236.78,185300000,236.78 +1986-11-17,244.50,244.80,242.29,243.21,133300000,243.21 +1986-11-14,243.01,244.51,241.96,244.50,172100000,244.50 +1986-11-13,246.63,246.66,242.98,243.02,164000000,243.02 +1986-11-12,247.06,247.67,245.68,246.64,162200000,246.64 +1986-11-11,246.15,247.10,246.12,247.08,118500000,247.08 +1986-11-10,245.75,246.22,244.68,246.13,120200000,246.13 +1986-11-07,245.85,246.13,244.92,245.77,142300000,245.77 +1986-11-06,246.54,246.90,244.30,245.87,165300000,245.87 +1986-11-05,246.09,247.05,245.21,246.58,183200000,246.58 +1986-11-04,245.80,246.43,244.42,246.20,163200000,246.20 +1986-11-03,243.97,245.80,243.93,245.80,138200000,245.80 +1986-10-31,243.70,244.51,242.95,243.98,147200000,243.98 +1986-10-30,240.97,244.08,240.94,243.71,194200000,243.71 +1986-10-29,239.23,241.00,238.98,240.94,164400000,240.94 +1986-10-28,238.81,240.58,238.77,239.26,145900000,239.26 +1986-10-27,238.22,238.77,236.72,238.77,133200000,238.77 +1986-10-24,239.30,239.65,238.25,238.26,137500000,238.26 +1986-10-23,236.28,239.76,236.26,239.28,150900000,239.28 +1986-10-22,235.89,236.64,235.82,236.26,114000000,236.26 +1986-10-21,236.03,236.49,234.95,235.88,110000000,235.88 +1986-10-20,238.84,238.84,234.78,235.97,109000000,235.97 +1986-10-17,239.50,239.53,237.71,238.84,124100000,238.84 +1986-10-16,238.83,240.18,238.80,239.53,156900000,239.53 +1986-10-15,235.36,239.03,235.27,238.80,144300000,238.80 +1986-10-14,235.90,236.37,234.37,235.37,116800000,235.37 +1986-10-13,235.52,235.91,235.02,235.91,54990000,235.91 +1986-10-10,235.84,236.27,235.31,235.48,105100000,235.48 +1986-10-09,236.67,238.20,235.72,235.85,153400000,235.85 +1986-10-08,234.41,236.84,233.68,236.68,141700000,236.68 +1986-10-07,234.74,235.18,233.46,234.41,125100000,234.41 +1986-10-06,233.71,235.34,233.17,234.78,88250000,234.78 +1986-10-03,233.92,236.16,232.79,233.71,128100000,233.71 +1986-10-02,233.60,234.33,232.77,233.92,128100000,233.92 +1986-10-01,231.32,234.62,231.32,233.60,143600000,233.60 +1986-09-30,229.91,233.01,229.91,231.32,124900000,231.32 +1986-09-29,232.23,232.23,228.08,229.91,115600000,229.91 +1986-09-26,231.83,233.68,230.64,232.23,115300000,232.23 +1986-09-25,231.83,236.28,230.67,231.83,134300000,231.83 +1986-09-24,235.66,237.06,235.53,236.28,134600000,236.28 +1986-09-23,234.96,235.88,234.50,235.67,132600000,235.67 +1986-09-22,232.20,234.93,232.20,234.93,126100000,234.93 +1986-09-19,232.30,232.31,230.69,232.21,153900000,232.21 +1986-09-18,231.67,232.87,230.57,232.31,132200000,232.31 +1986-09-17,231.73,233.81,231.38,231.68,141000000,231.68 +1986-09-16,231.93,231.94,228.32,231.72,131200000,231.72 +1986-09-15,230.67,232.82,229.44,231.94,155600000,231.94 +1986-09-12,235.18,235.45,228.74,230.67,240500000,230.67 +1986-09-11,247.06,247.06,234.67,235.18,237600000,235.18 +1986-09-10,247.67,247.76,246.11,247.06,140300000,247.06 +1986-09-09,248.14,250.21,246.94,247.67,137500000,247.67 +1986-09-08,250.47,250.47,247.02,248.14,153300000,248.14 +1986-09-05,253.83,254.13,250.33,250.47,180600000,250.47 +1986-09-04,250.08,254.01,250.03,253.83,189400000,253.83 +1986-09-03,248.52,250.08,247.59,250.08,154300000,250.08 +1986-09-02,252.93,253.30,248.14,248.52,135500000,248.52 +1986-08-29,252.84,254.07,251.73,252.93,125300000,252.93 +1986-08-28,253.30,253.67,251.91,252.84,125100000,252.84 +1986-08-27,252.84,254.24,252.66,253.30,143300000,253.30 +1986-08-26,247.81,252.91,247.81,252.84,156600000,252.84 +1986-08-25,250.19,250.26,247.76,247.81,104400000,247.81 +1986-08-22,249.67,250.61,249.27,250.19,118100000,250.19 +1986-08-21,249.77,250.45,249.11,249.67,135200000,249.67 +1986-08-20,246.53,249.77,246.51,249.77,156600000,249.77 +1986-08-19,247.38,247.42,245.82,246.51,109300000,246.51 +1986-08-18,247.15,247.83,245.48,247.38,112800000,247.38 +1986-08-15,246.25,247.15,245.70,247.15,123500000,247.15 +1986-08-14,245.67,246.79,245.53,246.25,123800000,246.25 +1986-08-13,243.34,246.51,243.06,245.67,156400000,245.67 +1986-08-12,240.68,243.37,240.35,243.34,131700000,243.34 +1986-08-11,236.88,241.20,236.87,240.68,125600000,240.68 +1986-08-08,237.04,238.06,236.37,236.88,106300000,236.88 +1986-08-07,236.84,238.02,236.31,237.04,122400000,237.04 +1986-08-06,237.03,237.35,235.48,236.84,127500000,236.84 +1986-08-05,235.99,238.31,235.97,237.03,153100000,237.03 +1986-08-04,234.91,236.86,231.92,235.99,130000000,235.99 +1986-08-01,236.12,236.89,234.59,234.91,114900000,234.91 +1986-07-31,236.59,236.92,235.89,236.12,112700000,236.12 +1986-07-30,234.57,237.38,233.07,236.59,146700000,236.59 +1986-07-29,235.72,236.01,234.40,234.55,115700000,234.55 +1986-07-28,240.20,240.25,235.23,236.01,128000000,236.01 +1986-07-25,237.99,240.36,237.95,240.22,132000000,240.22 +1986-07-24,238.69,239.05,237.32,237.95,134700000,237.95 +1986-07-23,238.19,239.25,238.17,238.67,133300000,238.67 +1986-07-22,236.24,238.42,235.92,238.18,138500000,238.18 +1986-07-21,236.36,236.45,235.53,236.24,106300000,236.24 +1986-07-18,236.07,238.22,233.94,236.36,149700000,236.36 +1986-07-17,235.01,236.65,235.01,236.07,132400000,236.07 +1986-07-16,233.66,236.19,233.66,235.01,160800000,235.01 +1986-07-15,238.09,238.12,233.60,233.66,184000000,233.66 +1986-07-14,242.22,242.22,238.04,238.11,123200000,238.11 +1986-07-11,243.01,243.48,241.68,242.22,124500000,242.22 +1986-07-10,242.82,243.44,239.66,243.01,146200000,243.01 +1986-07-09,241.59,243.07,241.46,242.82,142900000,242.82 +1986-07-08,244.05,244.06,239.07,241.59,174100000,241.59 +1986-07-07,251.79,251.81,243.63,244.05,138200000,244.05 +1986-07-03,252.70,252.94,251.23,251.79,108300000,251.79 +1986-07-02,252.04,253.20,251.79,252.70,150000000,252.70 +1986-07-01,250.67,252.04,250.53,252.04,147700000,252.04 +1986-06-30,249.60,251.81,249.60,250.84,135100000,250.84 +1986-06-27,248.74,249.74,248.74,249.60,123800000,249.60 +1986-06-26,248.93,249.43,247.72,248.74,134100000,248.74 +1986-06-25,247.03,250.13,247.03,248.93,161800000,248.93 +1986-06-24,245.26,248.26,244.53,247.03,140600000,247.03 +1986-06-23,247.58,247.58,244.45,245.26,123800000,245.26 +1986-06-20,244.06,247.60,243.98,247.58,149100000,247.58 +1986-06-19,244.99,245.80,244.05,244.06,129000000,244.06 +1986-06-18,244.35,245.25,242.57,244.99,117000000,244.99 +1986-06-17,246.13,246.26,243.60,244.35,123100000,244.35 +1986-06-16,245.73,246.50,245.17,246.13,112100000,246.13 +1986-06-13,241.71,245.91,241.71,245.73,141200000,245.73 +1986-06-12,241.24,241.64,240.70,241.49,109100000,241.49 +1986-06-11,239.58,241.13,239.21,241.13,127400000,241.13 +1986-06-10,239.96,240.08,238.23,239.58,125000000,239.58 +1986-06-09,245.67,245.67,239.68,239.96,123300000,239.96 +1986-06-06,245.65,246.07,244.43,245.67,110900000,245.67 +1986-06-05,243.94,245.66,243.41,245.65,110900000,245.65 +1986-06-04,245.51,246.30,242.59,243.94,117000000,243.94 +1986-06-03,245.04,245.51,243.67,245.51,114700000,245.51 +1986-06-02,246.04,247.74,243.83,245.04,120600000,245.04 +1986-05-30,247.98,249.19,246.43,247.35,151200000,247.35 +1986-05-29,246.63,248.32,245.29,247.98,135700000,247.98 +1986-05-28,244.75,247.40,244.75,246.63,159600000,246.63 +1986-05-27,241.35,244.76,241.35,244.75,121200000,244.75 +1986-05-23,240.12,242.16,240.12,241.35,130200000,241.35 +1986-05-22,235.45,240.25,235.45,240.12,144900000,240.12 +1986-05-21,236.11,236.83,235.45,235.45,117100000,235.45 +1986-05-20,233.20,236.12,232.58,236.11,113000000,236.11 +1986-05-19,232.76,233.54,232.41,233.20,85840000,233.20 +1986-05-16,234.43,234.43,232.26,232.76,113500000,232.76 +1986-05-15,237.54,237.54,233.93,234.43,131600000,234.43 +1986-05-14,236.41,237.54,235.85,237.54,132100000,237.54 +1986-05-13,237.58,237.87,236.02,236.41,119200000,236.41 +1986-05-12,237.85,238.53,237.02,237.58,125400000,237.58 +1986-05-09,237.13,238.01,235.85,237.85,137400000,237.85 +1986-05-08,236.08,237.96,236.08,237.13,136000000,237.13 +1986-05-07,236.56,237.24,233.98,236.08,129900000,236.08 +1986-05-06,237.73,238.28,236.26,237.24,121200000,237.24 +1986-05-05,234.79,237.73,234.79,237.73,102400000,237.73 +1986-05-02,235.16,236.52,234.15,234.79,126300000,234.79 +1986-05-01,235.52,236.01,234.21,235.16,146500000,235.16 +1986-04-30,240.52,240.52,235.26,235.52,147500000,235.52 +1986-04-29,243.08,243.57,239.23,240.51,148800000,240.51 +1986-04-28,242.29,243.08,241.23,243.08,123900000,243.08 +1986-04-25,242.02,242.80,240.91,242.29,142300000,242.29 +1986-04-24,241.75,243.13,241.65,242.02,146600000,242.02 +1986-04-23,242.42,242.42,240.08,241.75,149700000,241.75 +1986-04-22,244.74,245.47,241.30,242.42,161500000,242.42 +1986-04-21,242.38,244.78,241.88,244.74,136100000,244.74 +1986-04-18,243.03,243.47,241.74,242.38,153600000,242.38 +1986-04-17,242.22,243.36,241.89,243.03,161400000,243.03 +1986-04-16,237.73,242.57,237.73,242.22,173800000,242.22 +1986-04-15,237.28,238.09,236.64,237.73,123700000,237.73 +1986-04-14,235.97,237.48,235.43,237.28,106700000,237.28 +1986-04-11,236.44,237.85,235.13,235.97,139400000,235.97 +1986-04-10,233.75,236.54,233.75,236.44,184800000,236.44 +1986-04-09,233.52,235.57,232.13,233.75,156300000,233.75 +1986-04-08,228.63,233.70,228.63,233.52,146300000,233.52 +1986-04-07,228.69,228.83,226.30,228.63,129800000,228.63 +1986-04-04,232.47,232.56,228.32,228.69,147300000,228.69 +1986-04-03,235.71,236.42,232.07,232.47,148200000,232.47 +1986-04-02,235.14,235.71,233.40,235.71,145300000,235.71 +1986-04-01,238.90,239.10,234.57,235.14,167400000,235.14 +1986-03-31,238.97,239.86,238.08,238.90,134400000,238.90 +1986-03-27,237.30,240.11,237.30,238.97,178100000,238.97 +1986-03-26,234.72,237.79,234.71,237.30,161500000,237.30 +1986-03-25,235.33,235.33,233.62,234.72,139300000,234.72 +1986-03-24,233.34,235.33,232.92,235.33,143800000,235.33 +1986-03-21,236.54,237.35,233.29,233.34,199100000,233.34 +1986-03-20,235.60,237.09,235.60,236.54,148000000,236.54 +1986-03-19,235.78,236.52,235.13,235.60,150000000,235.60 +1986-03-18,234.67,236.52,234.14,235.78,148000000,235.78 +1986-03-17,236.55,236.55,233.69,234.67,137500000,234.67 +1986-03-14,233.19,236.55,232.58,236.55,181900000,236.55 +1986-03-13,232.54,233.89,231.27,233.19,171500000,233.19 +1986-03-12,231.69,234.70,231.68,232.54,210300000,232.54 +1986-03-11,226.58,231.81,226.58,231.69,187300000,231.69 +1986-03-10,225.57,226.98,225.36,226.58,129900000,226.58 +1986-03-07,225.13,226.33,224.44,225.57,163200000,225.57 +1986-03-06,224.39,225.50,224.13,225.13,159000000,225.13 +1986-03-05,224.14,224.37,222.18,224.34,154600000,224.34 +1986-03-04,225.42,227.33,223.94,224.38,174500000,224.38 +1986-03-03,226.92,226.92,224.41,225.42,142700000,225.42 +1986-02-28,226.77,227.92,225.42,226.92,191700000,226.92 +1986-02-27,224.04,226.88,223.41,226.77,181700000,226.77 +1986-02-26,223.72,224.59,223.15,224.04,158000000,224.04 +1986-02-25,224.34,224.40,222.63,223.79,148000000,223.79 +1986-02-24,224.58,225.29,223.31,224.34,144700000,224.34 +1986-02-21,222.22,224.62,222.22,224.62,177600000,224.62 +1986-02-20,219.76,222.22,219.22,222.22,139700000,222.22 +1986-02-19,222.45,222.96,219.73,219.76,152000000,219.76 +1986-02-18,219.76,222.45,219.26,222.45,160200000,222.45 +1986-02-14,217.40,219.76,217.22,219.76,155600000,219.76 +1986-02-13,215.97,217.41,215.38,217.40,136500000,217.40 +1986-02-12,215.92,216.28,215.13,215.97,136400000,215.97 +1986-02-11,216.24,216.67,215.54,215.92,141300000,215.92 +1986-02-10,214.56,216.24,214.47,216.24,129900000,216.24 +1986-02-07,213.47,215.27,211.13,214.56,144400000,214.56 +1986-02-06,212.96,214.51,212.60,213.47,146100000,213.47 +1986-02-05,212.84,213.03,211.21,212.96,134300000,212.96 +1986-02-04,213.96,214.57,210.82,212.79,175700000,212.79 +1986-02-03,211.78,214.18,211.60,213.96,145300000,213.96 +1986-01-31,209.33,212.42,209.19,211.78,143500000,211.78 +1986-01-30,210.29,211.54,209.15,209.33,125300000,209.33 +1986-01-29,209.81,212.36,209.81,210.29,193800000,210.29 +1986-01-28,207.42,209.82,207.40,209.81,145700000,209.81 +1986-01-27,206.43,207.69,206.43,207.39,122900000,207.39 +1986-01-24,204.25,206.43,204.25,206.43,128900000,206.43 +1986-01-23,203.49,204.43,202.60,204.25,130300000,204.25 +1986-01-22,205.79,206.03,203.41,203.49,131200000,203.49 +1986-01-21,207.53,207.78,205.05,205.79,128300000,205.79 +1986-01-20,208.43,208.43,206.62,207.53,85340000,207.53 +1986-01-17,209.17,209.40,207.59,208.43,132100000,208.43 +1986-01-16,208.26,209.18,207.61,209.17,130500000,209.17 +1986-01-15,206.64,208.27,206.64,208.26,122400000,208.26 +1986-01-14,206.72,207.37,206.06,206.64,113900000,206.64 +1986-01-13,205.96,206.83,205.52,206.72,108700000,206.72 +1986-01-10,206.11,207.33,205.52,205.96,122800000,205.96 +1986-01-09,207.97,207.97,204.51,206.11,176500000,206.11 +1986-01-08,213.80,214.57,207.49,207.97,180300000,207.97 +1986-01-07,210.65,213.80,210.65,213.80,153000000,213.80 +1986-01-06,210.88,210.98,209.93,210.65,99610000,210.65 +1986-01-03,209.59,210.88,209.51,210.88,105000000,210.88 +1986-01-02,211.28,211.28,208.93,209.59,98960000,209.59 +1985-12-31,210.68,211.61,210.68,211.28,112700000,211.28 +1985-12-30,209.61,210.70,209.17,210.68,91970000,210.68 +1985-12-27,207.65,209.62,207.65,209.61,81560000,209.61 +1985-12-26,207.14,207.76,207.05,207.65,62050000,207.65 +1985-12-24,208.57,208.57,206.44,207.14,78300000,207.14 +1985-12-23,210.57,210.94,208.44,208.57,107900000,208.57 +1985-12-20,210.02,211.77,210.02,210.94,170300000,210.94 +1985-12-19,209.81,210.13,209.25,210.02,130200000,210.02 +1985-12-18,210.65,211.23,209.24,209.81,137900000,209.81 +1985-12-17,212.02,212.45,210.58,210.65,155200000,210.65 +1985-12-16,209.94,213.08,209.91,212.02,176000000,212.02 +1985-12-13,206.73,210.31,206.73,209.94,177900000,209.94 +1985-12-12,206.31,207.65,205.83,206.73,170500000,206.73 +1985-12-11,204.39,206.68,204.17,206.31,178500000,206.31 +1985-12-10,204.25,205.16,203.68,204.39,156500000,204.39 +1985-12-09,202.99,204.65,202.98,204.25,144000000,204.25 +1985-12-06,203.88,203.88,202.45,202.99,125500000,202.99 +1985-12-05,204.23,205.86,203.79,203.88,181000000,203.88 +1985-12-04,200.86,204.23,200.86,204.23,153200000,204.23 +1985-12-03,200.46,200.98,200.10,200.86,109700000,200.86 +1985-12-02,202.17,202.19,200.20,200.46,103500000,200.46 +1985-11-29,202.54,203.40,201.92,202.17,84060000,202.17 +1985-11-27,200.67,202.65,200.67,202.54,143700000,202.54 +1985-11-26,200.35,201.16,200.11,200.67,123100000,200.67 +1985-11-25,201.52,201.52,200.08,200.35,91710000,200.35 +1985-11-22,201.41,202.01,201.05,201.52,133800000,201.52 +1985-11-21,198.99,201.43,198.99,201.41,150300000,201.41 +1985-11-20,198.67,199.20,198.52,198.99,105100000,198.99 +1985-11-19,198.71,199.52,198.01,198.67,126100000,198.67 +1985-11-18,198.11,198.71,197.51,198.71,108400000,198.71 +1985-11-15,199.06,199.58,197.90,198.11,130200000,198.11 +1985-11-14,197.10,199.19,196.88,199.06,124900000,199.06 +1985-11-13,198.08,198.11,196.91,197.10,109700000,197.10 +1985-11-12,197.28,198.66,196.97,198.08,170800000,198.08 +1985-11-11,193.72,197.29,193.70,197.28,126500000,197.28 +1985-11-08,192.62,193.97,192.53,193.72,115000000,193.72 +1985-11-07,192.78,192.96,192.16,192.62,119000000,192.62 +1985-11-06,192.37,193.01,191.83,192.76,129500000,192.76 +1985-11-05,191.25,192.43,190.99,192.37,119200000,192.37 +1985-11-04,191.45,191.96,190.66,191.25,104900000,191.25 +1985-11-01,189.82,191.53,189.37,191.53,129400000,191.53 +1985-10-31,190.07,190.15,189.35,189.82,121500000,189.82 +1985-10-30,189.23,190.09,189.14,190.07,120400000,190.07 +1985-10-29,187.76,189.78,187.76,189.23,110600000,189.23 +1985-10-28,187.52,187.76,186.93,187.76,97880000,187.76 +1985-10-25,188.50,188.51,187.32,187.52,101800000,187.52 +1985-10-24,189.09,189.45,188.41,188.50,123100000,188.50 +1985-10-23,188.04,189.09,188.04,189.09,121700000,189.09 +1985-10-22,186.96,188.56,186.96,188.04,111300000,188.04 +1985-10-21,187.04,187.30,186.79,186.96,95680000,186.96 +1985-10-18,187.66,188.11,186.89,187.04,107100000,187.04 +1985-10-17,187.98,188.52,187.42,187.66,140500000,187.66 +1985-10-16,186.08,187.98,186.08,187.98,117400000,187.98 +1985-10-15,186.37,187.16,185.66,186.08,110400000,186.08 +1985-10-14,184.31,186.37,184.28,186.37,78540000,186.37 +1985-10-11,182.78,184.28,182.61,184.28,96370000,184.28 +1985-10-10,182.52,182.79,182.05,182.78,90910000,182.78 +1985-10-09,181.87,183.27,181.87,182.52,99140000,182.52 +1985-10-08,181.87,182.30,181.16,181.87,97170000,181.87 +1985-10-07,183.22,183.22,181.30,181.87,95550000,181.87 +1985-10-04,184.36,184.36,182.65,183.22,101200000,183.22 +1985-10-03,184.06,185.17,183.59,184.36,127500000,184.36 +1985-10-02,185.07,185.94,184.06,184.06,147300000,184.06 +1985-10-01,182.06,185.08,182.02,185.07,130200000,185.07 +1985-09-30,181.30,182.08,181.22,182.08,103600000,182.08 +1985-09-26,180.66,181.29,179.45,181.29,106100000,181.29 +1985-09-25,182.62,182.62,180.62,180.66,92120000,180.66 +1985-09-24,184.30,184.30,182.42,182.62,97870000,182.62 +1985-09-23,182.05,184.65,182.05,184.30,104800000,184.30 +1985-09-20,183.39,183.99,182.04,182.05,101400000,182.05 +1985-09-19,181.71,183.40,181.71,183.39,100300000,183.39 +1985-09-18,181.36,181.83,180.81,181.71,105700000,181.71 +1985-09-17,182.88,182.88,180.78,181.36,111900000,181.36 +1985-09-16,182.91,182.91,182.45,182.88,66700000,182.88 +1985-09-13,183.69,184.19,182.05,182.91,111400000,182.91 +1985-09-12,185.03,185.21,183.49,183.69,107100000,183.69 +1985-09-11,186.90,186.90,184.79,185.03,100400000,185.03 +1985-09-10,188.25,188.26,186.50,186.90,104700000,186.90 +1985-09-09,188.24,188.80,187.90,188.25,89850000,188.25 +1985-09-06,187.27,188.43,187.27,188.24,95040000,188.24 +1985-09-05,187.37,187.52,186.89,187.27,94480000,187.27 +1985-09-04,187.91,187.92,186.97,187.37,85510000,187.37 +1985-09-03,188.63,188.63,187.38,187.91,81190000,187.91 +1985-08-30,188.93,189.13,188.00,188.63,81620000,188.63 +1985-08-29,188.73,188.94,188.38,188.93,85660000,188.93 +1985-08-28,188.10,188.83,187.90,188.83,88530000,188.83 +1985-08-27,187.31,188.10,187.31,188.10,82140000,188.10 +1985-08-26,187.17,187.44,186.46,187.31,70290000,187.31 +1985-08-23,187.22,187.35,186.59,187.17,75270000,187.17 +1985-08-22,189.11,189.23,187.20,187.36,90600000,187.36 +1985-08-21,188.08,189.16,188.08,189.16,94880000,189.16 +1985-08-20,186.38,188.27,186.38,188.08,91230000,188.08 +1985-08-19,186.10,186.82,186.10,186.38,67930000,186.38 +1985-08-16,187.26,187.26,186.10,186.10,87910000,186.10 +1985-08-15,187.41,187.74,186.62,187.26,86100000,187.26 +1985-08-14,187.30,187.87,187.30,187.41,85780000,187.41 +1985-08-13,187.63,188.15,186.51,187.30,80300000,187.30 +1985-08-12,188.32,188.32,187.43,187.63,77340000,187.63 +1985-08-09,188.95,189.05,188.11,188.32,81750000,188.32 +1985-08-08,187.68,188.96,187.68,188.95,102900000,188.95 +1985-08-07,187.93,187.93,187.39,187.68,100000000,187.68 +1985-08-06,190.62,190.72,187.87,187.93,104000000,187.93 +1985-08-05,191.48,191.48,189.95,190.62,79610000,190.62 +1985-08-02,192.11,192.11,191.27,191.48,87860000,191.48 +1985-08-01,190.92,192.17,190.91,192.11,121500000,192.11 +1985-07-31,189.93,191.33,189.93,190.92,124200000,190.92 +1985-07-30,189.62,190.05,189.30,189.93,102300000,189.93 +1985-07-29,192.40,192.42,189.53,189.60,95960000,189.60 +1985-07-26,192.06,192.78,191.58,192.40,107000000,192.40 +1985-07-25,191.58,192.23,191.17,192.06,123300000,192.06 +1985-07-24,192.55,192.55,190.66,191.58,128600000,191.58 +1985-07-23,194.35,194.98,192.28,192.55,143600000,192.55 +1985-07-22,195.13,195.13,193.58,194.35,93540000,194.35 +1985-07-19,194.38,195.13,194.28,195.13,114800000,195.13 +1985-07-18,195.65,195.65,194.34,194.38,131400000,194.38 +1985-07-17,194.86,196.07,194.72,195.65,159900000,195.65 +1985-07-16,192.72,194.72,192.72,194.72,132500000,194.72 +1985-07-15,193.29,193.84,192.55,192.72,103900000,192.72 +1985-07-12,192.94,193.32,192.64,193.29,120300000,193.29 +1985-07-11,192.37,192.95,192.28,192.94,122800000,192.94 +1985-07-10,191.05,192.37,190.99,192.37,108200000,192.37 +1985-07-09,191.93,191.93,190.81,191.05,99060000,191.05 +1985-07-08,192.47,192.52,191.26,191.93,83670000,191.93 +1985-07-05,191.45,192.67,191.45,192.52,62450000,192.52 +1985-07-03,192.01,192.08,191.37,191.45,98410000,191.45 +1985-07-02,192.43,192.63,191.84,192.01,111100000,192.01 +1985-07-01,191.85,192.43,191.17,192.43,96080000,192.43 +1985-06-28,191.23,191.85,191.04,191.85,105200000,191.85 +1985-06-27,190.06,191.36,190.06,191.23,106700000,191.23 +1985-06-26,189.74,190.26,189.44,190.06,94130000,190.06 +1985-06-25,189.15,190.96,189.15,189.74,115700000,189.74 +1985-06-24,188.77,189.61,187.84,189.15,96040000,189.15 +1985-06-21,186.73,189.66,186.43,189.61,125400000,189.61 +1985-06-20,186.63,186.74,185.97,186.73,87500000,186.73 +1985-06-19,187.34,187.98,186.63,186.63,108300000,186.63 +1985-06-18,186.53,187.65,186.51,187.34,106900000,187.34 +1985-06-17,187.10,187.10,185.98,186.53,82170000,186.53 +1985-06-14,185.33,187.10,185.33,187.10,93090000,187.10 +1985-06-13,187.61,187.61,185.03,185.33,107000000,185.33 +1985-06-12,189.04,189.04,187.59,187.61,97700000,187.61 +1985-06-11,189.51,189.61,188.78,189.04,102100000,189.04 +1985-06-10,189.68,189.68,188.82,189.51,87940000,189.51 +1985-06-07,191.06,191.29,189.55,189.68,99630000,189.68 +1985-06-06,189.75,191.06,189.13,191.06,117200000,191.06 +1985-06-05,190.04,191.02,190.04,190.16,143900000,190.16 +1985-06-04,189.32,190.27,188.88,190.04,115400000,190.04 +1985-06-03,189.55,190.36,188.93,189.32,125000000,189.32 +1985-05-31,187.75,189.59,187.45,189.55,134100000,189.55 +1985-05-30,187.68,188.04,187.09,187.75,108300000,187.75 +1985-05-29,187.86,187.86,187.11,187.68,96540000,187.68 +1985-05-28,188.29,188.94,187.38,187.86,90600000,187.86 +1985-05-24,187.60,188.29,187.29,188.29,85970000,188.29 +1985-05-23,188.56,188.56,187.45,187.60,101000000,187.60 +1985-05-22,189.64,189.64,187.71,188.56,101400000,188.56 +1985-05-21,189.72,189.81,188.78,189.64,130200000,189.64 +1985-05-20,187.42,189.98,187.42,189.72,146300000,189.72 +1985-05-17,185.66,187.94,185.47,187.42,124600000,187.42 +1985-05-16,184.54,185.74,184.54,185.66,99420000,185.66 +1985-05-15,183.87,185.43,183.86,184.54,106100000,184.54 +1985-05-14,184.61,185.17,183.65,183.87,97360000,183.87 +1985-05-13,184.28,184.61,184.19,184.61,85830000,184.61 +1985-05-10,181.92,184.74,181.92,184.28,140300000,184.28 +1985-05-09,180.62,181.97,180.62,181.92,111000000,181.92 +1985-05-08,180.76,180.76,179.96,180.62,101300000,180.62 +1985-05-07,179.99,181.09,179.87,180.76,100200000,180.76 +1985-05-06,180.08,180.56,179.82,179.99,85650000,179.99 +1985-05-03,179.01,180.30,179.01,180.08,94870000,180.08 +1985-05-02,178.37,179.01,178.37,179.01,107700000,179.01 +1985-05-01,179.83,180.04,178.35,178.37,101600000,178.37 +1985-04-30,180.63,180.63,178.86,179.83,111800000,179.83 +1985-04-29,182.18,182.34,180.62,180.63,88860000,180.63 +1985-04-26,183.43,183.61,182.11,182.18,86570000,182.18 +1985-04-25,182.26,183.43,182.12,183.43,108600000,183.43 +1985-04-24,181.88,182.27,181.74,182.26,99600000,182.26 +1985-04-23,180.70,181.97,180.34,181.88,108900000,181.88 +1985-04-22,181.11,181.23,180.25,180.70,79930000,180.70 +1985-04-19,180.84,181.25,180.42,181.11,81110000,181.11 +1985-04-18,181.68,182.56,180.75,180.84,100600000,180.84 +1985-04-17,181.20,181.91,181.14,181.68,96020000,181.68 +1985-04-16,180.92,181.78,180.19,181.20,98480000,181.20 +1985-04-15,180.54,181.15,180.45,180.92,80660000,180.92 +1985-04-12,180.19,180.55,180.06,180.54,86220000,180.54 +1985-04-11,179.42,180.91,179.42,180.19,108400000,180.19 +1985-04-10,178.21,179.90,178.21,179.42,108200000,179.42 +1985-04-09,178.03,178.67,177.97,178.21,83980000,178.21 +1985-04-08,179.03,179.46,177.86,178.03,79960000,178.03 +1985-04-04,179.11,179.13,178.29,179.03,86910000,179.03 +1985-04-03,180.53,180.53,178.64,179.11,95480000,179.11 +1985-04-02,181.27,181.86,180.28,180.53,101700000,180.53 +1985-04-01,180.66,181.27,180.43,181.27,89900000,181.27 +1985-03-29,179.54,180.66,179.54,180.66,101400000,180.66 +1985-03-28,179.54,180.60,179.43,179.54,99780000,179.54 +1985-03-27,178.43,179.80,178.43,179.54,101000000,179.54 +1985-03-26,177.97,178.86,177.88,178.43,89930000,178.43 +1985-03-25,179.04,179.04,177.85,177.97,74040000,177.97 +1985-03-22,179.35,179.92,178.86,179.04,99250000,179.04 +1985-03-21,179.08,180.22,178.89,179.35,95930000,179.35 +1985-03-20,179.54,179.78,178.79,179.08,107500000,179.08 +1985-03-19,176.88,179.56,176.87,179.54,119200000,179.54 +1985-03-18,176.53,177.66,176.53,176.88,94020000,176.88 +1985-03-15,177.84,178.41,176.53,176.53,105200000,176.53 +1985-03-14,178.19,178.53,177.61,177.84,103400000,177.84 +1985-03-13,179.66,179.96,178.02,178.19,101700000,178.19 +1985-03-12,178.79,180.14,178.70,179.66,92840000,179.66 +1985-03-11,179.10,179.46,178.15,178.79,84110000,178.79 +1985-03-08,179.51,179.97,179.07,179.10,96390000,179.10 +1985-03-07,180.65,180.65,179.44,179.51,112100000,179.51 +1985-03-06,182.23,182.25,180.59,180.65,116900000,180.65 +1985-03-05,182.06,182.65,181.42,182.23,116400000,182.23 +1985-03-04,183.23,183.41,181.40,182.06,102100000,182.06 +1985-03-01,181.18,183.89,181.16,183.23,139900000,183.23 +1985-02-28,180.71,181.21,180.33,181.18,100700000,181.18 +1985-02-27,181.17,181.87,180.50,180.71,107700000,180.71 +1985-02-26,179.23,181.58,179.16,181.17,114200000,181.17 +1985-02-25,179.36,179.36,178.13,179.23,89740000,179.23 +1985-02-22,180.19,180.41,179.23,179.36,93680000,179.36 +1985-02-21,181.18,181.18,180.02,180.19,104000000,180.19 +1985-02-20,181.33,182.10,180.64,181.18,118200000,181.18 +1985-02-19,181.60,181.61,180.95,181.33,90400000,181.33 +1985-02-15,182.41,182.65,181.23,181.60,106500000,181.60 +1985-02-14,183.35,183.95,182.39,182.41,139700000,182.41 +1985-02-13,180.56,183.86,180.50,183.35,142500000,183.35 +1985-02-12,180.51,180.75,179.45,180.56,111100000,180.56 +1985-02-11,182.19,182.19,180.11,180.51,104000000,180.51 +1985-02-08,181.82,182.39,181.67,182.19,116500000,182.19 +1985-02-07,180.43,181.96,180.43,181.82,151700000,181.82 +1985-02-06,180.61,181.50,180.32,180.43,141000000,180.43 +1985-02-05,180.35,181.53,180.07,180.61,143900000,180.61 +1985-02-04,178.63,180.35,177.75,180.35,113700000,180.35 +1985-02-01,179.63,179.63,178.44,178.63,105400000,178.63 +1985-01-31,179.39,179.83,178.56,179.63,132500000,179.63 +1985-01-30,179.18,180.27,179.05,179.39,170000000,179.39 +1985-01-29,177.40,179.19,176.58,179.18,115700000,179.18 +1985-01-28,177.35,178.19,176.56,177.40,128400000,177.40 +1985-01-25,176.71,177.75,176.54,177.35,122400000,177.35 +1985-01-24,177.30,178.16,176.56,176.71,160700000,176.71 +1985-01-23,175.48,177.30,175.15,177.30,144400000,177.30 +1985-01-22,175.23,176.63,175.14,175.48,174800000,175.48 +1985-01-21,171.32,175.45,171.31,175.23,146800000,175.23 +1985-01-18,170.73,171.42,170.66,171.32,104700000,171.32 +1985-01-17,171.19,171.34,170.22,170.73,113600000,170.73 +1985-01-16,170.81,171.94,170.41,171.19,135500000,171.19 +1985-01-15,170.51,171.82,170.40,170.81,155300000,170.81 +1985-01-14,167.91,170.55,167.58,170.51,124900000,170.51 +1985-01-11,168.31,168.72,167.58,167.91,107600000,167.91 +1985-01-10,165.18,168.31,164.99,168.31,124700000,168.31 +1985-01-09,163.99,165.57,163.99,165.18,99230000,165.18 +1985-01-08,164.24,164.59,163.91,163.99,92110000,163.99 +1985-01-07,163.68,164.71,163.68,164.24,86190000,164.24 +1985-01-04,164.55,164.55,163.36,163.68,77480000,163.68 +1985-01-03,165.37,166.11,164.38,164.57,88880000,164.57 +1985-01-02,167.20,167.20,165.19,165.37,67820000,165.37 +1984-12-31,166.26,167.34,166.06,167.24,80260000,167.24 +1984-12-28,165.75,166.32,165.67,166.26,77070000,166.26 +1984-12-27,166.47,166.50,165.62,165.75,70100000,165.75 +1984-12-26,166.76,166.76,166.29,166.47,46700000,166.47 +1984-12-24,165.51,166.93,165.50,166.76,55550000,166.76 +1984-12-21,166.34,166.38,164.62,165.51,101200000,165.51 +1984-12-20,167.16,167.58,166.29,166.38,93220000,166.38 +1984-12-19,168.11,169.03,166.84,167.16,139600000,167.16 +1984-12-18,163.61,168.11,163.61,168.11,169000000,168.11 +1984-12-17,162.69,163.63,162.44,163.61,89490000,163.61 +1984-12-14,161.81,163.53,161.63,162.69,95060000,162.69 +1984-12-13,162.63,162.92,161.54,161.81,80850000,161.81 +1984-12-12,163.07,163.18,162.55,162.63,78710000,162.63 +1984-12-11,162.83,163.18,162.56,163.07,80240000,163.07 +1984-12-10,162.26,163.32,161.54,162.83,81140000,162.83 +1984-12-07,162.76,163.31,162.26,162.26,81000000,162.26 +1984-12-06,162.10,163.11,161.76,162.76,96560000,162.76 +1984-12-05,163.38,163.40,161.93,162.10,88700000,162.10 +1984-12-04,162.82,163.91,162.82,163.38,81250000,163.38 +1984-12-03,163.58,163.58,162.29,162.82,95300000,162.82 +1984-11-30,163.91,163.91,162.99,163.58,77580000,163.58 +1984-11-29,165.02,165.02,163.78,163.91,75860000,163.91 +1984-11-28,166.29,166.90,164.97,165.02,86300000,165.02 +1984-11-27,165.55,166.85,165.07,166.29,95470000,166.29 +1984-11-26,166.92,166.92,165.37,165.55,76520000,165.55 +1984-11-23,164.52,166.92,164.52,166.92,73910000,166.92 +1984-11-21,164.18,164.68,163.29,164.51,81620000,164.51 +1984-11-20,163.10,164.47,163.10,164.18,83240000,164.18 +1984-11-19,164.10,164.34,163.03,163.09,69730000,163.09 +1984-11-16,165.89,166.24,164.09,164.10,83140000,164.10 +1984-11-15,165.99,166.49,165.61,165.89,81530000,165.89 +1984-11-14,165.97,166.43,165.39,165.99,73940000,165.99 +1984-11-13,167.36,167.38,165.79,165.97,69790000,165.97 +1984-11-12,167.65,167.65,166.67,167.36,55610000,167.36 +1984-11-09,168.68,169.46,167.44,167.60,83620000,167.60 +1984-11-08,169.19,169.27,168.27,168.68,88580000,168.68 +1984-11-07,170.41,170.41,168.44,169.17,110800000,169.17 +1984-11-06,168.58,170.41,168.58,170.41,101200000,170.41 +1984-11-05,167.42,168.65,167.33,168.58,84730000,168.58 +1984-11-02,167.49,167.95,167.24,167.42,96810000,167.42 +1984-11-01,166.09,167.83,166.09,167.49,107300000,167.49 +1984-10-31,166.74,166.95,165.99,166.09,91890000,166.09 +1984-10-30,164.78,167.33,164.78,166.84,95200000,166.84 +1984-10-29,165.29,165.29,164.67,164.78,63200000,164.78 +1984-10-26,166.31,166.31,164.93,165.29,83900000,165.29 +1984-10-25,167.20,167.62,166.17,166.31,92760000,166.31 +1984-10-24,167.09,167.54,166.82,167.20,91620000,167.20 +1984-10-23,167.36,168.27,166.83,167.09,92260000,167.09 +1984-10-22,167.96,168.36,167.26,167.36,81020000,167.36 +1984-10-19,168.08,169.62,167.31,167.96,186900000,167.96 +1984-10-18,164.14,168.10,163.80,168.10,149500000,168.10 +1984-10-17,164.78,165.04,163.71,164.14,99740000,164.14 +1984-10-16,165.78,165.78,164.66,164.78,82930000,164.78 +1984-10-15,164.18,166.15,164.09,165.77,87590000,165.77 +1984-10-12,162.78,164.47,162.78,164.18,92190000,164.18 +1984-10-11,162.11,162.87,162.00,162.78,87020000,162.78 +1984-10-10,161.67,162.12,160.02,162.11,94270000,162.11 +1984-10-09,162.13,162.84,161.62,161.67,76840000,161.67 +1984-10-08,162.68,162.68,161.80,162.13,46360000,162.13 +1984-10-05,162.92,163.32,162.51,162.68,82950000,162.68 +1984-10-04,162.44,163.22,162.44,162.92,76700000,162.92 +1984-10-03,163.59,163.59,162.20,162.44,92400000,162.44 +1984-10-02,164.62,165.24,163.55,163.59,89360000,163.59 +1984-10-01,166.10,166.10,164.48,164.62,73630000,164.62 +1984-09-28,166.96,166.96,165.77,166.10,78950000,166.10 +1984-09-27,166.75,167.18,166.33,166.96,88880000,166.96 +1984-09-26,165.62,167.20,165.61,166.28,100200000,166.28 +1984-09-25,165.28,165.97,164.45,165.62,86250000,165.62 +1984-09-24,165.67,166.12,164.98,165.28,76380000,165.28 +1984-09-21,167.47,168.67,165.66,165.67,120600000,165.67 +1984-09-20,166.94,167.47,166.70,167.47,92030000,167.47 +1984-09-19,167.65,168.76,166.89,166.94,119900000,166.94 +1984-09-18,168.87,168.87,167.64,167.65,107700000,167.65 +1984-09-17,168.78,169.37,167.99,168.87,88790000,168.87 +1984-09-14,167.94,169.65,167.94,168.78,137400000,168.78 +1984-09-13,164.68,167.94,164.68,167.94,110500000,167.94 +1984-09-12,164.45,164.81,164.14,164.68,77980000,164.68 +1984-09-11,165.22,166.17,164.28,164.45,101300000,164.45 +1984-09-10,164.37,165.05,163.06,164.26,74410000,164.26 +1984-09-07,165.65,166.31,164.22,164.37,84110000,164.37 +1984-09-06,164.29,165.95,164.29,165.65,91920000,165.65 +1984-09-05,164.88,164.88,163.84,164.29,69250000,164.29 +1984-09-04,166.68,166.68,164.73,164.88,62110000,164.88 +1984-08-31,166.60,166.68,165.78,166.68,57460000,166.68 +1984-08-30,167.10,167.19,166.55,166.60,70840000,166.60 +1984-08-29,167.40,168.21,167.03,167.09,90660000,167.09 +1984-08-28,166.44,167.43,166.21,167.40,70560000,167.40 +1984-08-27,167.51,167.51,165.81,166.44,57660000,166.44 +1984-08-24,167.12,167.52,167.12,167.51,69640000,167.51 +1984-08-23,167.06,167.78,166.61,167.12,83130000,167.12 +1984-08-22,167.83,168.80,166.92,167.06,116000000,167.06 +1984-08-21,164.94,168.22,164.93,167.83,128100000,167.83 +1984-08-20,164.14,164.94,163.76,164.94,75450000,164.94 +1984-08-17,164.30,164.61,163.78,164.14,71500000,164.14 +1984-08-16,162.80,164.42,162.75,163.77,93610000,163.77 +1984-08-15,164.42,164.42,162.75,162.80,91880000,162.80 +1984-08-14,165.43,166.09,164.28,164.42,81470000,164.42 +1984-08-13,164.84,165.49,163.98,165.43,77960000,165.43 +1984-08-10,165.54,168.59,165.24,165.42,171000000,165.42 +1984-08-09,161.75,165.88,161.47,165.54,131100000,165.54 +1984-08-08,162.71,163.87,161.75,161.75,121200000,161.75 +1984-08-07,162.60,163.58,160.81,162.72,127900000,162.72 +1984-08-06,162.35,165.27,162.09,162.60,203000000,162.60 +1984-08-03,160.28,162.56,158.00,162.35,236500000,162.35 +1984-08-02,154.08,157.99,154.08,157.99,172800000,157.99 +1984-08-01,150.66,154.08,150.66,154.08,127500000,154.08 +1984-07-31,150.19,150.77,149.65,150.66,86910000,150.66 +1984-07-30,151.19,151.19,150.14,150.19,72330000,150.19 +1984-07-27,150.08,151.38,149.99,151.19,101350000,151.19 +1984-07-26,148.83,150.16,148.83,150.08,90410000,150.08 +1984-07-25,147.82,149.30,147.26,148.83,90520000,148.83 +1984-07-24,148.95,149.28,147.78,147.82,74370000,147.82 +1984-07-23,149.55,149.55,147.85,148.95,77990000,148.95 +1984-07-20,150.37,150.58,149.07,149.55,79090000,149.55 +1984-07-19,151.40,151.40,150.27,150.37,85230000,150.37 +1984-07-18,152.38,152.38,151.11,151.40,76640000,151.40 +1984-07-17,151.60,152.60,151.26,152.38,82890000,152.38 +1984-07-16,150.88,151.60,150.01,151.60,73420000,151.60 +1984-07-13,150.03,151.16,150.03,150.88,75480000,150.88 +1984-07-12,150.56,151.06,149.63,150.03,86050000,150.03 +1984-07-11,152.89,152.89,150.55,150.56,89540000,150.56 +1984-07-10,153.36,153.53,152.57,152.89,74010000,152.89 +1984-07-09,152.24,153.53,151.44,153.36,74830000,153.36 +1984-07-06,152.76,152.76,151.63,152.24,65850000,152.24 +1984-07-05,153.70,153.87,152.71,152.76,66100000,152.76 +1984-07-03,153.20,153.86,153.10,153.70,69960000,153.70 +1984-07-02,153.16,153.22,152.44,153.20,69230000,153.20 +1984-06-29,152.84,154.08,152.82,153.18,90770000,153.18 +1984-06-28,151.64,153.07,151.62,152.84,77660000,152.84 +1984-06-27,152.71,152.88,151.30,151.64,78400000,151.64 +1984-06-26,153.97,153.97,152.47,152.71,82600000,152.71 +1984-06-25,154.46,154.67,153.86,153.97,72850000,153.97 +1984-06-22,154.51,154.92,153.89,154.46,98400000,154.46 +1984-06-21,154.84,155.64,154.05,154.51,123380000,154.51 +1984-06-20,151.89,154.84,150.96,154.84,99090000,154.84 +1984-06-19,151.73,153.00,151.73,152.61,98000000,152.61 +1984-06-18,149.03,151.92,148.53,151.73,94900000,151.73 +1984-06-15,150.49,150.71,149.02,149.03,85460000,149.03 +1984-06-14,152.12,152.14,150.31,150.39,79120000,150.39 +1984-06-13,152.19,152.85,151.86,152.13,67510000,152.13 +1984-06-12,153.06,153.07,151.61,152.19,84660000,152.19 +1984-06-11,155.17,155.17,153.00,153.06,69050000,153.06 +1984-06-08,154.92,155.40,154.57,155.17,67840000,155.17 +1984-06-07,155.01,155.11,154.36,154.92,82120000,154.92 +1984-06-06,153.65,155.03,153.38,155.01,83440000,155.01 +1984-06-05,154.34,154.34,153.28,153.65,84840000,153.65 +1984-06-04,153.24,155.10,153.24,154.34,96740000,154.34 +1984-06-01,150.55,153.24,150.55,153.24,96040000,153.24 +1984-05-31,150.35,150.69,149.76,150.55,81890000,150.55 +1984-05-30,150.29,151.43,148.68,150.35,105660000,150.35 +1984-05-29,151.62,151.86,149.95,150.29,69060000,150.29 +1984-05-25,151.23,152.02,150.85,151.62,78190000,151.62 +1984-05-24,153.15,153.15,150.80,151.23,99040000,151.23 +1984-05-23,153.88,154.02,153.10,153.15,82690000,153.15 +1984-05-22,154.73,154.73,152.99,153.88,88030000,153.88 +1984-05-21,155.78,156.11,154.63,154.73,73380000,154.73 +1984-05-18,156.57,156.77,155.24,155.78,81270000,155.78 +1984-05-17,157.99,157.99,156.15,156.57,90310000,156.57 +1984-05-16,158.00,158.41,157.83,157.99,89210000,157.99 +1984-05-15,157.50,158.27,157.29,158.00,88250000,158.00 +1984-05-14,158.49,158.49,157.20,157.50,64900000,157.50 +1984-05-11,160.00,160.00,157.42,158.49,82780000,158.49 +1984-05-10,160.11,160.45,159.61,160.00,101810000,160.00 +1984-05-09,160.52,161.31,159.39,160.11,100590000,160.11 +1984-05-08,159.47,160.52,159.14,160.52,81610000,160.52 +1984-05-07,159.11,159.48,158.63,159.47,72760000,159.47 +1984-05-04,161.20,161.20,158.93,159.11,98580000,159.11 +1984-05-03,161.90,161.90,160.95,161.20,91910000,161.20 +1984-05-02,161.68,162.11,161.41,161.90,107080000,161.90 +1984-05-01,160.05,161.69,160.05,161.68,110550000,161.68 +1984-04-30,159.89,160.43,159.30,160.05,72740000,160.05 +1984-04-27,160.30,160.69,159.77,159.89,88530000,159.89 +1984-04-26,158.65,160.50,158.65,160.30,98000000,160.30 +1984-04-25,158.07,158.77,157.80,158.65,83520000,158.65 +1984-04-24,156.80,158.38,156.61,158.07,87060000,158.07 +1984-04-23,158.02,158.05,156.79,156.80,73080000,156.80 +1984-04-19,157.90,158.02,157.10,158.02,75860000,158.02 +1984-04-18,158.97,158.97,157.64,157.90,85040000,157.90 +1984-04-17,158.32,159.59,158.32,158.97,98150000,158.97 +1984-04-16,157.31,158.35,156.49,158.32,73870000,158.32 +1984-04-13,157.73,158.87,157.13,157.31,99620000,157.31 +1984-04-12,155.00,157.74,154.17,157.73,96330000,157.73 +1984-04-11,155.93,156.31,154.90,155.00,80280000,155.00 +1984-04-10,155.45,156.57,155.45,155.87,78990000,155.87 +1984-04-09,155.48,155.86,154.71,155.45,71570000,155.45 +1984-04-06,155.04,155.48,154.12,155.48,86620000,155.48 +1984-04-05,157.54,158.10,154.96,155.04,101750000,155.04 +1984-04-04,157.66,158.11,157.29,157.54,92860000,157.54 +1984-04-03,157.99,158.27,157.17,157.66,87980000,157.66 +1984-04-02,159.18,159.87,157.63,157.98,85680000,157.98 +1984-03-30,159.52,159.52,158.92,159.18,71590000,159.18 +1984-03-29,159.88,160.46,159.52,159.52,81470000,159.52 +1984-03-28,157.30,159.90,157.30,159.88,104870000,159.88 +1984-03-27,156.67,157.30,156.61,157.30,73670000,157.30 +1984-03-26,156.86,157.18,156.31,156.67,69070000,156.67 +1984-03-23,156.69,156.92,156.02,156.86,79760000,156.86 +1984-03-22,158.66,158.67,156.61,156.69,87340000,156.69 +1984-03-21,158.86,159.26,158.59,158.66,87170000,158.66 +1984-03-20,157.78,159.17,157.78,158.86,86460000,158.86 +1984-03-19,159.27,159.27,157.28,157.78,64060000,157.78 +1984-03-16,157.41,160.45,157.41,159.27,118000000,159.27 +1984-03-15,156.78,158.05,156.73,157.41,79520000,157.41 +1984-03-14,156.78,157.17,156.22,156.77,77250000,156.77 +1984-03-13,156.34,157.93,156.34,156.78,102600000,156.78 +1984-03-12,154.35,156.35,154.35,156.34,84470000,156.34 +1984-03-09,155.12,155.19,153.77,154.35,73170000,154.35 +1984-03-08,154.57,155.80,154.35,155.19,80630000,155.19 +1984-03-07,156.25,156.25,153.81,154.57,90080000,154.57 +1984-03-06,157.89,158.37,156.21,156.25,83590000,156.25 +1984-03-05,159.24,159.24,157.59,157.89,69870000,157.89 +1984-03-02,158.19,159.90,158.19,159.24,108270000,159.24 +1984-03-01,157.06,158.19,156.77,158.19,82010000,158.19 +1984-02-29,156.82,158.27,156.41,157.06,92810000,157.06 +1984-02-28,159.30,159.30,156.59,156.82,91010000,156.82 +1984-02-27,157.51,159.58,157.08,159.30,99140000,159.30 +1984-02-24,154.31,157.51,154.29,157.51,102620000,157.51 +1984-02-23,154.02,154.45,152.13,154.29,100220000,154.29 +1984-02-22,154.52,155.10,153.94,154.31,90080000,154.31 +1984-02-21,155.71,155.74,154.47,154.64,71890000,154.64 +1984-02-17,156.13,156.80,155.51,155.74,76600000,155.74 +1984-02-16,155.94,156.44,155.44,156.13,81750000,156.13 +1984-02-15,156.61,157.48,156.10,156.25,94870000,156.25 +1984-02-14,154.95,156.61,154.95,156.61,91800000,156.61 +1984-02-13,156.30,156.32,154.13,154.95,78460000,154.95 +1984-02-10,155.42,156.52,155.42,156.30,92220000,156.30 +1984-02-09,155.85,156.17,154.30,155.42,128190000,155.42 +1984-02-08,158.74,159.07,155.67,155.85,96890000,155.85 +1984-02-07,157.91,158.81,157.01,158.74,107640000,158.74 +1984-02-06,160.91,160.91,158.02,158.08,109090000,158.08 +1984-02-03,163.44,163.98,160.82,160.91,109100000,160.91 +1984-02-02,162.74,163.36,162.24,163.36,111330000,163.36 +1984-02-01,163.41,164.00,162.27,162.74,107100000,162.74 +1984-01-31,162.87,163.60,162.03,163.41,113510000,163.41 +1984-01-30,164.40,164.67,162.40,162.87,103120000,162.87 +1984-01-27,164.24,164.33,163.07,163.94,103720000,163.94 +1984-01-26,164.84,165.55,164.12,164.24,111100000,164.24 +1984-01-25,165.94,167.12,164.74,164.84,113470000,164.84 +1984-01-24,164.87,166.35,164.84,165.94,103050000,165.94 +1984-01-23,166.21,166.21,164.83,164.87,82010000,164.87 +1984-01-20,167.04,167.06,165.87,166.21,93360000,166.21 +1984-01-19,167.55,167.65,166.67,167.04,98340000,167.04 +1984-01-18,167.83,168.34,167.02,167.55,109010000,167.55 +1984-01-17,167.18,167.84,167.01,167.83,92750000,167.83 +1984-01-16,167.02,167.55,166.77,167.18,93790000,167.18 +1984-01-13,167.75,168.59,166.64,167.02,101790000,167.02 +1984-01-12,167.79,168.40,167.68,167.75,99410000,167.75 +1984-01-11,167.95,168.07,167.27,167.80,98660000,167.80 +1984-01-10,168.90,169.54,167.87,167.95,109570000,167.95 +1984-01-09,169.18,169.46,168.48,168.90,107100000,168.90 +1984-01-06,168.81,169.31,168.49,169.28,137590000,169.28 +1984-01-05,166.78,169.10,166.78,168.81,159990000,168.81 +1984-01-04,164.09,166.78,164.04,166.78,112980000,166.78 +1984-01-03,164.93,164.93,163.98,164.04,71340000,164.04 +1983-12-30,164.86,165.05,164.58,164.93,71840000,164.93 +1983-12-29,165.33,165.84,164.83,164.86,86560000,164.86 +1983-12-28,164.69,165.34,164.30,165.34,85660000,165.34 +1983-12-27,163.22,164.76,163.22,164.76,63800000,164.76 +1983-12-23,163.27,163.31,162.90,163.22,62710000,163.22 +1983-12-22,163.56,164.18,163.17,163.53,106260000,163.53 +1983-12-21,162.00,163.57,161.99,163.56,108080000,163.56 +1983-12-20,162.33,162.80,161.64,162.00,83740000,162.00 +1983-12-19,162.34,162.88,162.27,162.32,75180000,162.32 +1983-12-16,161.69,162.39,161.58,162.39,81030000,162.39 +1983-12-15,163.33,163.33,161.66,161.66,88300000,161.66 +1983-12-14,164.93,164.93,163.25,163.33,85430000,163.33 +1983-12-13,165.62,165.63,164.85,164.93,93500000,164.93 +1983-12-12,165.13,165.62,164.99,165.62,77340000,165.62 +1983-12-09,165.20,165.29,164.50,165.08,98280000,165.08 +1983-12-08,165.91,166.01,164.86,165.20,96530000,165.20 +1983-12-07,165.47,166.34,165.35,165.91,105670000,165.91 +1983-12-06,165.77,165.93,165.34,165.47,89690000,165.47 +1983-12-05,165.44,165.79,164.71,165.76,88330000,165.76 +1983-12-02,166.49,166.70,165.25,165.44,93960000,165.44 +1983-12-01,166.37,166.77,166.08,166.49,106970000,166.49 +1983-11-30,167.91,168.07,166.33,166.40,120130000,166.40 +1983-11-29,166.54,167.92,166.17,167.91,100460000,167.91 +1983-11-28,167.20,167.22,166.21,166.54,78210000,166.54 +1983-11-25,167.02,167.20,166.73,167.18,57820000,167.18 +1983-11-23,166.88,167.21,166.26,166.96,108080000,166.96 +1983-11-22,166.05,167.26,166.05,166.84,117550000,166.84 +1983-11-21,165.04,166.05,165.00,166.05,97740000,166.05 +1983-11-18,166.08,166.13,164.50,165.09,88280000,165.09 +1983-11-17,166.08,166.49,165.51,166.13,80740000,166.13 +1983-11-16,165.36,166.41,165.34,166.08,83380000,166.08 +1983-11-15,166.58,166.59,165.28,165.36,77840000,165.36 +1983-11-14,166.29,167.58,166.27,166.58,86880000,166.58 +1983-11-11,164.41,166.30,164.34,166.29,74270000,166.29 +1983-11-10,163.99,164.71,163.97,164.41,88730000,164.41 +1983-11-09,161.74,163.97,161.74,163.97,83100000,163.97 +1983-11-08,161.91,162.15,161.63,161.76,64900000,161.76 +1983-11-07,162.42,162.56,161.84,161.91,69400000,161.91 +1983-11-04,162.68,163.45,162.22,162.44,72080000,162.44 +1983-11-03,164.84,164.85,163.42,163.45,85350000,163.45 +1983-11-02,165.21,165.21,163.55,164.84,95210000,164.84 +1983-11-01,163.55,163.66,162.37,163.66,84460000,163.66 +1983-10-31,163.37,164.58,162.86,163.55,79460000,163.55 +1983-10-28,164.89,165.19,163.23,163.37,81180000,163.37 +1983-10-27,165.31,165.38,164.41,164.84,79570000,164.84 +1983-10-26,166.49,166.65,165.36,165.38,79570000,165.38 +1983-10-25,166.00,167.15,166.00,166.47,82530000,166.47 +1983-10-24,165.85,165.99,163.85,165.99,85420000,165.99 +1983-10-21,166.97,167.23,164.98,165.95,91640000,165.95 +1983-10-20,166.77,167.35,166.44,166.98,86000000,166.98 +1983-10-19,167.81,167.81,165.67,166.73,107790000,166.73 +1983-10-18,170.41,170.41,167.67,167.81,91080000,167.81 +1983-10-17,169.85,171.18,169.63,170.43,77730000,170.43 +1983-10-14,169.88,169.99,169.18,169.86,71600000,169.86 +1983-10-13,169.63,170.12,169.13,169.87,67750000,169.87 +1983-10-12,170.34,170.84,169.34,169.62,75630000,169.62 +1983-10-11,172.59,172.59,170.34,170.34,79510000,170.34 +1983-10-10,170.77,172.65,170.05,172.65,67050000,172.65 +1983-10-07,170.32,171.10,170.31,170.80,103630000,170.80 +1983-10-06,167.76,170.28,167.76,170.28,118270000,170.28 +1983-10-05,166.29,167.74,165.92,167.74,101710000,167.74 +1983-10-04,165.81,166.80,165.81,166.27,90270000,166.27 +1983-10-03,165.99,166.07,164.93,165.81,77230000,165.81 +1983-09-30,167.23,167.23,165.63,166.07,70860000,166.07 +1983-09-29,168.02,168.35,167.23,167.23,73730000,167.23 +1983-09-28,168.42,168.53,167.52,168.00,75820000,168.00 +1983-09-27,170.02,170.02,167.95,168.43,81100000,168.43 +1983-09-26,169.53,170.41,169.16,170.07,86400000,170.07 +1983-09-23,169.76,170.17,168.88,169.51,93180000,169.51 +1983-09-22,168.40,169.78,168.22,169.76,97050000,169.76 +1983-09-21,169.27,169.30,168.21,168.41,91280000,168.41 +1983-09-20,167.64,169.38,167.64,169.24,103050000,169.24 +1983-09-19,166.27,168.09,166.26,167.62,85630000,167.62 +1983-09-16,164.42,166.57,164.39,166.25,75530000,166.25 +1983-09-15,165.39,165.58,164.38,164.38,70420000,164.38 +1983-09-14,164.80,165.42,164.63,165.35,73370000,165.35 +1983-09-13,165.48,165.48,164.17,164.80,73970000,164.80 +1983-09-12,166.95,169.20,165.27,165.48,114020000,165.48 +1983-09-09,167.77,167.77,166.91,166.92,77990000,166.92 +1983-09-08,167.96,168.14,167.12,167.77,79250000,167.77 +1983-09-07,167.90,168.48,167.46,167.96,94240000,167.96 +1983-09-06,165.20,167.90,165.03,167.89,87500000,167.89 +1983-09-02,164.25,165.07,164.21,165.00,59300000,165.00 +1983-09-01,164.40,164.66,163.95,164.23,76120000,164.23 +1983-08-31,162.55,164.40,162.32,164.40,80800000,164.40 +1983-08-30,162.25,163.13,162.11,162.58,62370000,162.58 +1983-08-29,162.14,162.32,160.97,162.25,53030000,162.25 +1983-08-26,160.85,162.16,160.25,162.14,61650000,162.14 +1983-08-25,161.27,161.28,159.96,160.84,70140000,160.84 +1983-08-24,162.77,162.77,161.20,161.25,72200000,161.25 +1983-08-23,164.33,164.33,162.54,162.77,66800000,162.77 +1983-08-22,164.18,165.64,163.77,164.34,76420000,164.34 +1983-08-19,163.58,164.27,163.22,163.98,58950000,163.98 +1983-08-18,165.29,165.91,163.55,163.55,82280000,163.55 +1983-08-17,163.58,165.40,163.43,165.29,87800000,165.29 +1983-08-16,163.74,163.84,162.72,163.41,71780000,163.41 +1983-08-15,162.22,164.76,162.22,163.70,83200000,163.70 +1983-08-12,161.55,162.60,161.55,162.16,71840000,162.16 +1983-08-11,161.55,162.14,161.41,161.54,70630000,161.54 +1983-08-10,160.11,161.77,159.47,161.54,82900000,161.54 +1983-08-09,159.20,160.14,158.50,160.13,81420000,160.13 +1983-08-08,161.73,161.73,159.18,159.18,71460000,159.18 +1983-08-05,161.33,161.88,160.89,161.74,67850000,161.74 +1983-08-04,163.28,163.42,159.63,161.33,100870000,161.33 +1983-08-03,162.01,163.44,161.52,163.44,80370000,163.44 +1983-08-02,162.06,163.04,161.97,162.01,74460000,162.01 +1983-08-01,162.34,162.78,161.55,162.04,77210000,162.04 +1983-07-29,165.03,165.03,161.50,162.56,95240000,162.56 +1983-07-28,167.32,167.79,164.99,165.04,78410000,165.04 +1983-07-27,170.68,170.72,167.49,167.59,99290000,167.59 +1983-07-26,169.62,170.63,169.26,170.53,91280000,170.53 +1983-07-25,167.67,169.74,167.63,169.53,73680000,169.53 +1983-07-22,168.51,169.08,168.40,168.89,68850000,168.89 +1983-07-21,169.29,169.80,168.33,169.06,101830000,169.06 +1983-07-20,164.89,169.29,164.89,169.29,109310000,169.29 +1983-07-19,163.95,165.18,163.95,164.82,74030000,164.82 +1983-07-18,164.28,164.29,163.30,163.95,69110000,163.95 +1983-07-15,166.01,166.04,164.03,164.29,63160000,164.29 +1983-07-14,165.61,166.96,165.61,166.01,83500000,166.01 +1983-07-13,165.00,165.68,164.77,165.46,68900000,165.46 +1983-07-12,168.05,168.05,165.51,165.53,70220000,165.53 +1983-07-11,167.09,168.11,167.09,168.11,61610000,168.11 +1983-07-08,167.56,167.98,166.95,167.08,66520000,167.08 +1983-07-07,168.48,169.15,167.08,167.56,97130000,167.56 +1983-07-06,166.71,168.88,166.49,168.48,85670000,168.48 +1983-07-05,166.55,168.80,165.80,166.60,67320000,166.60 +1983-07-01,168.11,168.64,167.77,168.64,65110000,168.64 +1983-06-30,167.64,167.64,167.64,167.64,76310000,167.64 +1983-06-29,165.78,166.64,165.43,166.64,81580000,166.64 +1983-06-28,168.45,168.81,165.67,165.68,82730000,165.68 +1983-06-27,170.40,170.46,168.32,168.46,69360000,168.46 +1983-06-24,170.57,170.69,170.03,170.41,80810000,170.41 +1983-06-23,170.99,171.00,170.13,170.57,89590000,170.57 +1983-06-22,170.53,171.60,170.42,170.99,110270000,170.99 +1983-06-21,169.03,170.60,168.25,170.53,102880000,170.53 +1983-06-20,169.13,170.10,168.59,169.02,84270000,169.02 +1983-06-17,169.11,169.64,168.60,169.13,93630000,169.13 +1983-06-16,167.11,169.38,167.11,169.14,124560000,169.14 +1983-06-15,165.52,167.12,165.07,167.12,93410000,167.12 +1983-06-14,164.87,165.93,164.87,165.53,97710000,165.53 +1983-06-13,162.70,164.84,162.70,164.84,90700000,164.84 +1983-06-10,161.86,162.76,161.86,162.68,78470000,162.68 +1983-06-09,161.37,161.92,160.80,161.83,87440000,161.83 +1983-06-08,162.78,162.78,161.35,161.36,96600000,161.36 +1983-06-07,164.84,164.93,162.77,162.77,88550000,162.77 +1983-06-06,164.43,165.09,163.75,164.83,87670000,164.83 +1983-06-03,163.96,164.79,163.96,164.42,83110000,164.42 +1983-06-02,162.56,164.00,162.56,163.98,89750000,163.98 +1983-06-01,162.38,162.64,161.33,162.55,84460000,162.55 +1983-05-31,164.44,164.44,162.12,162.39,73910000,162.39 +1983-05-27,165.49,165.49,164.33,164.46,76290000,164.46 +1983-05-26,166.22,166.39,165.27,165.48,94980000,165.48 +1983-05-25,165.54,166.21,164.79,166.21,121050000,166.21 +1983-05-24,163.45,165.59,163.45,165.54,109850000,165.54 +1983-05-23,162.06,163.50,160.29,163.43,84960000,163.43 +1983-05-20,161.97,162.14,161.25,162.14,73150000,162.14 +1983-05-19,163.27,163.61,161.98,161.99,83260000,161.99 +1983-05-18,163.73,165.18,163.16,163.27,99780000,163.27 +1983-05-17,163.40,163.71,162.55,163.71,79510000,163.71 +1983-05-16,164.90,164.90,162.33,163.40,76250000,163.40 +1983-05-13,164.26,165.23,164.26,164.91,83110000,164.91 +1983-05-12,164.98,165.35,163.82,164.25,84060000,164.25 +1983-05-11,165.95,166.30,164.53,164.96,99820000,164.96 +1983-05-10,165.82,166.40,165.74,165.95,104010000,165.95 +1983-05-09,166.10,166.46,164.90,165.81,93670000,165.81 +1983-05-06,164.30,166.99,164.30,166.10,128200000,166.10 +1983-05-05,163.35,164.30,163.35,164.28,107860000,164.28 +1983-05-04,162.38,163.64,162.38,163.31,101690000,163.31 +1983-05-03,162.10,162.35,160.80,162.34,89550000,162.34 +1983-05-02,164.41,164.42,161.99,162.11,88170000,162.11 +1983-04-29,162.97,164.43,162.72,164.43,105750000,164.43 +1983-04-28,161.44,162.96,161.44,162.95,94410000,162.95 +1983-04-27,161.85,162.77,160.76,161.44,118140000,161.44 +1983-04-26,158.81,161.81,158.07,161.81,91210000,161.81 +1983-04-25,160.43,160.83,158.72,158.81,90150000,158.81 +1983-04-22,160.04,160.76,160.02,160.42,92270000,160.42 +1983-04-21,160.73,161.08,159.96,160.05,106170000,160.05 +1983-04-20,158.71,160.83,158.71,160.71,110240000,160.71 +1983-04-19,159.74,159.74,158.54,158.71,91210000,158.71 +1983-04-18,158.75,159.75,158.41,159.74,88560000,159.74 +1983-04-15,158.11,158.75,158.11,158.75,89590000,158.75 +1983-04-14,156.80,158.12,156.55,158.12,90160000,158.12 +1983-04-13,155.82,157.22,155.82,156.77,100520000,156.77 +1983-04-12,155.15,155.82,154.78,155.82,79900000,155.82 +1983-04-11,152.87,155.14,152.87,155.14,81440000,155.14 +1983-04-08,151.77,152.85,151.39,152.85,67710000,152.85 +1983-04-07,151.04,151.76,150.81,151.76,69480000,151.76 +1983-04-06,151.90,151.90,150.17,151.04,77140000,151.04 +1983-04-05,153.04,153.92,151.81,151.90,76810000,151.90 +1983-04-04,152.92,153.02,152.23,153.02,66010000,153.02 +1983-03-31,153.41,155.02,152.86,152.96,100570000,152.96 +1983-03-30,151.60,153.39,151.60,153.39,75800000,153.39 +1983-03-29,151.85,152.46,151.42,151.59,65300000,151.59 +1983-03-28,152.67,152.67,151.56,151.85,58510000,151.85 +1983-03-25,153.37,153.71,152.30,152.67,77330000,152.67 +1983-03-24,152.82,153.78,152.82,153.37,92340000,153.37 +1983-03-23,150.65,152.98,150.65,152.81,94980000,152.81 +1983-03-22,151.21,151.59,150.60,150.66,79610000,150.66 +1983-03-21,149.82,151.20,149.32,151.19,72160000,151.19 +1983-03-18,149.59,150.29,149.56,149.90,75110000,149.90 +1983-03-17,149.80,149.80,149.12,149.59,70290000,149.59 +1983-03-16,151.36,151.62,149.78,149.81,83570000,149.81 +1983-03-15,150.83,151.37,150.40,151.37,62410000,151.37 +1983-03-14,151.28,151.30,150.24,150.83,61890000,150.83 +1983-03-11,151.75,151.75,150.65,151.24,67240000,151.24 +1983-03-10,152.87,154.01,151.75,151.80,95410000,151.80 +1983-03-09,151.25,152.87,150.84,152.87,84250000,152.87 +1983-03-08,153.63,153.63,151.26,151.26,79410000,151.26 +1983-03-07,153.67,154.00,152.65,153.67,84020000,153.67 +1983-03-04,153.47,153.67,152.53,153.67,90930000,153.67 +1983-03-03,152.31,154.16,152.31,153.48,114440000,153.48 +1983-03-02,150.91,152.63,150.91,152.30,112600000,152.30 +1983-03-01,148.07,150.88,148.07,150.88,103750000,150.88 +1983-02-28,149.74,149.74,147.81,148.06,83750000,148.06 +1983-02-25,149.60,150.88,149.60,149.74,100970000,149.74 +1983-02-24,146.80,149.67,146.80,149.60,113220000,149.60 +1983-02-23,145.47,146.79,145.40,146.79,84100000,146.79 +1983-02-22,148.01,148.11,145.42,145.48,84080000,145.48 +1983-02-18,147.44,148.29,147.21,148.00,77420000,148.00 +1983-02-17,147.43,147.57,143.84,147.44,74930000,147.44 +1983-02-16,148.31,148.66,147.41,147.43,82100000,147.43 +1983-02-15,148.94,149.41,148.13,148.30,89040000,148.30 +1983-02-14,147.71,149.14,147.40,148.93,72640000,148.93 +1983-02-11,147.51,148.81,147.18,147.65,86700000,147.65 +1983-02-10,145.04,147.75,145.04,147.50,93510000,147.50 +1983-02-09,145.70,145.83,144.09,145.00,84520000,145.00 +1983-02-08,146.93,147.21,145.52,145.70,76580000,145.70 +1983-02-07,146.14,147.42,146.14,146.93,86030000,146.93 +1983-02-04,144.26,146.14,144.14,146.14,87000000,146.14 +1983-02-03,143.25,144.43,143.25,144.26,78890000,144.26 +1983-02-02,142.95,143.52,141.90,143.23,77220000,143.23 +1983-02-01,145.29,145.29,142.96,142.96,82750000,142.96 +1983-01-31,144.51,145.30,143.93,145.30,67140000,145.30 +1983-01-28,144.31,145.47,144.25,144.51,89490000,144.51 +1983-01-27,141.54,144.30,141.54,144.27,88120000,144.27 +1983-01-26,141.77,142.16,141.16,141.54,73720000,141.54 +1983-01-25,139.98,141.75,139.98,141.75,79740000,141.75 +1983-01-24,143.84,143.84,139.10,139.97,90800000,139.97 +1983-01-21,146.30,146.30,143.25,143.85,77110000,143.85 +1983-01-20,145.29,146.62,145.29,146.29,82790000,146.29 +1983-01-19,146.40,146.45,144.51,145.27,80900000,145.27 +1983-01-18,146.71,146.74,145.52,146.40,78380000,146.40 +1983-01-17,146.65,147.90,146.64,146.72,89210000,146.72 +1983-01-14,145.72,147.12,145.72,146.65,86480000,146.65 +1983-01-13,146.67,146.94,145.67,145.73,77030000,145.73 +1983-01-12,145.76,148.36,145.76,146.69,109850000,146.69 +1983-01-11,146.79,146.83,145.38,145.78,98250000,145.78 +1983-01-10,145.19,147.25,144.58,146.78,101890000,146.78 +1983-01-07,145.27,146.46,145.15,145.18,127290000,145.18 +1983-01-06,142.01,145.77,142.01,145.27,129410000,145.27 +1983-01-05,141.35,142.60,141.15,141.96,95390000,141.96 +1983-01-04,138.33,141.36,138.08,141.36,75530000,141.36 +1983-01-03,140.65,141.33,138.20,138.34,59080000,138.34 +1982-12-31,140.34,140.78,140.27,140.64,42110000,140.64 +1982-12-30,141.24,141.68,140.22,140.33,56380000,140.33 +1982-12-29,140.77,141.73,140.68,141.24,54810000,141.24 +1982-12-28,142.18,142.34,140.75,140.77,58610000,140.77 +1982-12-27,139.73,142.32,139.72,142.17,64690000,142.17 +1982-12-23,138.84,139.94,138.84,139.72,62880000,139.72 +1982-12-22,138.63,139.69,138.60,138.83,83470000,138.83 +1982-12-21,136.24,139.27,136.07,138.61,78010000,138.61 +1982-12-20,137.49,137.84,136.19,136.25,62210000,136.25 +1982-12-17,135.35,137.71,135.35,137.49,76010000,137.49 +1982-12-16,135.22,135.78,134.79,135.30,73680000,135.30 +1982-12-15,137.40,137.40,135.12,135.24,81030000,135.24 +1982-12-14,139.99,142.50,137.34,137.40,98380000,137.40 +1982-12-13,139.57,140.12,139.50,139.95,63140000,139.95 +1982-12-10,139.99,141.15,139.35,139.57,86430000,139.57 +1982-12-09,141.80,141.80,139.92,140.00,90320000,140.00 +1982-12-08,142.71,143.58,141.82,141.82,97430000,141.82 +1982-12-07,141.79,143.68,141.79,142.72,111620000,142.72 +1982-12-06,138.70,141.77,138.01,141.77,83880000,141.77 +1982-12-03,138.87,139.59,138.59,138.69,71540000,138.69 +1982-12-02,138.72,139.63,138.66,138.82,77600000,138.82 +1982-12-01,138.56,140.37,138.35,138.72,107850000,138.72 +1982-11-30,134.20,138.53,134.19,138.53,93470000,138.53 +1982-11-29,134.89,135.29,133.69,134.20,61080000,134.20 +1982-11-26,133.89,134.88,133.89,134.88,38810000,134.88 +1982-11-24,132.92,133.88,132.92,133.88,67220000,133.88 +1982-11-23,134.21,134.28,132.89,132.93,72920000,132.93 +1982-11-22,137.03,137.10,134.21,134.22,74960000,134.22 +1982-11-19,138.35,138.93,137.00,137.02,70310000,137.02 +1982-11-18,137.93,138.78,137.47,138.34,77620000,138.34 +1982-11-17,135.47,137.93,135.47,137.93,84440000,137.93 +1982-11-16,136.97,136.97,134.05,135.42,102910000,135.42 +1982-11-15,139.54,139.54,137.00,137.03,78900000,137.03 +1982-11-12,141.75,141.85,139.53,139.53,95080000,139.53 +1982-11-11,141.15,141.75,139.88,141.75,78410000,141.75 +1982-11-10,143.04,144.36,140.80,141.16,113240000,141.16 +1982-11-09,140.48,143.16,140.46,143.02,111220000,143.02 +1982-11-08,142.12,142.12,139.98,140.44,75240000,140.44 +1982-11-05,141.85,142.43,141.32,142.16,96550000,142.16 +1982-11-04,142.85,143.99,141.65,141.85,149350000,141.85 +1982-11-03,137.53,142.88,137.53,142.87,137010000,142.87 +1982-11-02,135.48,138.51,135.48,137.49,104770000,137.49 +1982-11-01,133.72,136.03,133.22,135.47,73530000,135.47 +1982-10-29,133.54,134.02,132.64,133.72,74830000,133.72 +1982-10-28,135.28,135.42,133.59,133.59,73590000,133.59 +1982-10-27,134.48,135.92,134.48,135.29,81670000,135.29 +1982-10-26,133.29,134.48,131.50,134.48,102080000,134.48 +1982-10-25,138.81,138.81,133.32,133.32,83720000,133.32 +1982-10-22,139.06,140.40,138.75,138.83,101120000,138.83 +1982-10-21,139.23,140.27,137.63,139.06,122460000,139.06 +1982-10-20,136.58,139.23,136.37,139.23,98680000,139.23 +1982-10-19,136.73,137.96,135.72,136.58,100850000,136.58 +1982-10-18,133.59,136.73,133.59,136.73,83790000,136.73 +1982-10-15,134.55,134.61,133.28,133.57,80290000,133.57 +1982-10-14,136.71,136.89,134.55,134.57,107530000,134.57 +1982-10-13,134.42,137.97,134.14,136.71,139800000,136.71 +1982-10-12,134.48,135.85,133.59,134.44,126310000,134.44 +1982-10-11,131.06,135.53,131.06,134.47,138530000,134.47 +1982-10-08,128.79,131.11,128.79,131.05,122250000,131.05 +1982-10-07,125.99,128.96,125.99,128.80,147070000,128.80 +1982-10-06,122.00,125.97,122.00,125.97,93570000,125.97 +1982-10-05,121.60,122.73,121.60,121.98,69770000,121.98 +1982-10-04,121.97,121.97,120.56,121.51,55650000,121.51 +1982-10-01,120.40,121.97,120.15,121.97,65000000,121.97 +1982-09-30,121.62,121.62,120.14,120.42,62610000,120.42 +1982-09-29,123.24,123.24,121.28,121.63,62550000,121.63 +1982-09-28,123.62,124.16,123.21,123.24,65900000,123.24 +1982-09-27,123.32,123.62,122.75,123.62,44840000,123.62 +1982-09-24,123.79,123.80,123.11,123.32,54600000,123.32 +1982-09-23,123.99,124.19,122.96,123.81,68260000,123.81 +1982-09-22,124.90,126.43,123.99,123.99,113150000,123.99 +1982-09-21,122.51,124.91,122.51,124.88,82920000,124.88 +1982-09-20,122.54,122.54,121.48,122.51,58520000,122.51 +1982-09-17,123.76,123.76,122.34,122.55,63950000,122.55 +1982-09-16,124.28,124.88,123.65,123.77,78900000,123.77 +1982-09-15,123.09,124.81,122.72,124.29,69680000,124.29 +1982-09-14,122.27,123.69,122.27,123.10,83070000,123.10 +1982-09-13,120.94,122.24,120.25,122.24,59520000,122.24 +1982-09-10,121.97,121.98,120.27,120.97,71080000,120.97 +1982-09-09,122.19,123.22,121.90,121.97,73090000,121.97 +1982-09-08,121.33,123.11,121.19,122.20,77960000,122.20 +1982-09-07,122.68,122.68,121.19,121.37,68960000,121.37 +1982-09-03,120.31,123.64,120.31,122.68,130910000,122.68 +1982-09-02,118.24,120.32,117.84,120.29,74740000,120.29 +1982-09-01,119.52,120.05,117.98,118.25,82830000,118.25 +1982-08-31,117.65,119.60,117.65,119.51,86360000,119.51 +1982-08-30,117.05,117.66,115.79,117.66,59560000,117.66 +1982-08-27,117.38,118.56,116.63,117.11,74410000,117.11 +1982-08-26,117.57,120.26,117.57,118.55,137330000,118.55 +1982-08-25,115.35,118.12,115.11,117.58,106200000,117.58 +1982-08-24,116.11,116.39,115.08,115.35,121650000,115.35 +1982-08-23,113.02,116.11,112.65,116.11,110310000,116.11 +1982-08-20,109.19,113.02,109.19,113.02,95890000,113.02 +1982-08-19,108.53,109.86,108.34,109.16,78270000,109.16 +1982-08-18,109.04,111.58,108.46,108.54,132690000,108.54 +1982-08-17,105.40,109.04,104.09,109.04,92860000,109.04 +1982-08-16,103.86,105.52,103.86,104.09,55420000,104.09 +1982-08-13,102.42,103.85,102.40,103.85,44720000,103.85 +1982-08-12,102.60,103.22,102.39,102.42,50080000,102.42 +1982-08-11,102.83,103.01,102.48,102.60,49040000,102.60 +1982-08-10,103.11,103.84,102.82,102.84,52680000,102.84 +1982-08-09,103.69,103.69,102.20,103.08,54560000,103.08 +1982-08-06,105.16,105.16,103.67,103.71,48660000,103.71 +1982-08-05,106.10,106.10,104.76,105.16,54700000,105.16 +1982-08-04,107.83,107.83,106.11,106.14,53440000,106.14 +1982-08-03,108.98,109.43,107.81,107.83,60480000,107.83 +1982-08-02,107.71,109.09,107.11,108.98,53460000,108.98 +1982-07-30,107.35,107.95,107.01,107.09,39270000,107.09 +1982-07-29,107.42,107.92,106.62,107.72,55680000,107.72 +1982-07-28,109.42,109.42,107.53,107.74,53830000,107.74 +1982-07-27,110.26,110.35,109.36,109.43,45740000,109.43 +1982-07-26,110.66,111.16,110.29,110.36,37740000,110.36 +1982-07-23,111.46,111.58,111.05,111.17,47280000,111.17 +1982-07-22,110.95,112.02,110.94,111.48,53870000,111.48 +1982-07-21,112.15,112.39,111.38,111.42,66770000,111.42 +1982-07-20,111.11,111.56,110.35,111.54,61060000,111.54 +1982-07-19,111.75,111.78,110.66,110.73,53030000,110.73 +1982-07-16,110.16,111.48,110.16,111.07,58740000,111.07 +1982-07-15,110.83,110.95,110.27,110.47,61090000,110.47 +1982-07-14,109.68,110.44,109.08,110.44,58160000,110.44 +1982-07-13,109.19,110.07,109.19,109.45,66170000,109.45 +1982-07-12,109.48,109.62,108.89,109.57,74690000,109.57 +1982-07-09,108.23,108.97,107.56,108.83,65870000,108.83 +1982-07-08,106.85,107.53,105.57,107.53,63270000,107.53 +1982-07-07,107.08,107.61,106.99,107.22,46920000,107.22 +1982-07-06,107.27,107.67,106.74,107.29,44350000,107.29 +1982-07-02,108.10,108.71,107.60,107.65,43760000,107.65 +1982-07-01,109.52,109.63,108.62,108.71,47900000,108.71 +1982-06-30,110.95,111.00,109.50,109.61,65280000,109.61 +1982-06-29,110.26,110.57,109.68,110.21,46990000,110.21 +1982-06-28,109.30,110.45,109.17,110.26,40700000,110.26 +1982-06-25,109.56,109.83,109.09,109.14,38740000,109.14 +1982-06-24,110.25,110.92,109.79,109.83,55860000,109.83 +1982-06-23,108.59,110.14,108.09,110.14,62710000,110.14 +1982-06-22,107.25,108.30,107.17,108.30,55290000,108.30 +1982-06-21,107.28,107.88,107.01,107.20,50370000,107.20 +1982-06-18,107.60,107.60,107.07,107.28,53800000,107.28 +1982-06-17,108.01,108.85,107.48,107.60,49230000,107.60 +1982-06-16,110.10,110.13,108.82,108.87,56280000,108.87 +1982-06-15,109.63,109.96,108.98,109.69,44970000,109.69 +1982-06-14,110.50,111.22,109.90,109.96,40100000,109.96 +1982-06-11,111.11,111.48,109.65,111.24,68610000,111.24 +1982-06-10,109.35,109.70,108.96,109.61,50950000,109.61 +1982-06-09,109.46,109.63,108.53,108.99,55770000,108.99 +1982-06-08,110.33,110.33,109.60,109.63,46820000,109.63 +1982-06-07,109.59,110.59,109.42,110.12,44630000,110.12 +1982-06-04,111.66,111.85,110.02,110.09,44110000,110.09 +1982-06-03,112.04,112.48,111.45,111.86,48450000,111.86 +1982-06-02,111.74,112.19,111.55,112.04,49220000,112.04 +1982-06-01,111.97,112.07,111.66,111.68,41650000,111.68 +1982-05-28,112.79,112.80,111.66,111.88,43900000,111.88 +1982-05-27,113.11,113.12,112.58,112.66,44730000,112.66 +1982-05-26,113.68,114.40,112.88,113.11,51250000,113.11 +1982-05-25,115.50,115.51,114.40,114.40,44010000,114.40 +1982-05-24,114.46,114.86,114.24,114.79,38510000,114.79 +1982-05-21,115.03,115.13,114.60,114.89,45260000,114.89 +1982-05-20,114.85,115.07,114.37,114.59,48330000,114.59 +1982-05-19,115.61,115.96,114.82,114.89,48840000,114.89 +1982-05-18,116.35,116.70,115.71,115.84,48970000,115.84 +1982-05-17,117.62,118.02,116.66,116.71,45600000,116.71 +1982-05-14,118.20,118.40,118.01,118.01,49900000,118.01 +1982-05-13,119.08,119.20,118.13,118.22,58230000,118.22 +1982-05-12,119.89,119.92,118.76,119.17,59210000,119.17 +1982-05-11,118.54,119.59,118.32,119.42,54680000,119.42 +1982-05-10,119.08,119.49,118.37,118.38,46300000,118.38 +1982-05-07,119.08,119.89,118.71,119.47,67130000,119.47 +1982-05-06,118.82,118.83,117.68,118.68,67540000,118.68 +1982-05-05,117.85,118.05,117.31,117.67,58860000,117.67 +1982-05-04,117.41,117.64,116.85,117.46,58720000,117.46 +1982-05-03,115.96,116.82,115.91,116.82,46490000,116.82 +1982-04-30,116.21,116.78,116.07,116.44,48200000,116.44 +1982-04-29,116.40,117.24,116.11,116.14,51330000,116.14 +1982-04-28,117.83,118.05,116.94,117.26,50530000,117.26 +1982-04-27,119.07,119.26,117.73,118.00,56480000,118.00 +1982-04-26,118.94,119.33,118.25,119.26,60500000,119.26 +1982-04-23,118.02,118.64,117.19,118.64,71840000,118.64 +1982-04-22,115.72,117.25,115.72,117.19,64470000,117.19 +1982-04-21,115.48,115.87,115.30,115.72,57820000,115.72 +1982-04-20,115.80,117.14,114.83,115.44,54610000,115.44 +1982-04-19,116.81,118.16,115.83,116.70,58470000,116.70 +1982-04-16,116.35,117.70,115.68,116.81,55890000,116.81 +1982-04-15,115.83,116.86,115.02,116.35,45700000,116.35 +1982-04-14,115.99,116.69,114.80,115.83,45150000,115.83 +1982-04-13,116.00,117.12,115.16,115.99,48660000,115.99 +1982-04-12,116.22,117.02,115.16,116.00,46520000,116.00 +1982-04-08,115.46,116.94,114.94,116.22,60190000,116.22 +1982-04-07,115.36,116.45,114.58,115.46,53130000,115.46 +1982-04-06,114.73,115.92,113.70,115.36,43200000,115.36 +1982-04-05,115.12,115.90,113.94,114.73,46900000,114.73 +1982-04-02,113.79,115.79,113.65,115.12,59800000,115.12 +1982-04-01,111.96,114.22,111.48,113.79,57100000,113.79 +1982-03-31,112.27,113.17,111.32,111.96,43300000,111.96 +1982-03-30,112.30,113.09,111.30,112.27,43900000,112.27 +1982-03-29,111.94,112.82,110.90,112.30,37100000,112.30 +1982-03-26,113.21,113.43,111.26,111.94,42400000,111.94 +1982-03-25,112.97,114.26,112.02,113.21,51970000,113.21 +1982-03-24,113.55,114.31,112.23,112.97,49380000,112.97 +1982-03-23,112.77,114.51,112.29,113.55,67130000,113.55 +1982-03-22,110.71,113.35,110.71,112.77,57610000,112.77 +1982-03-19,110.30,111.59,109.64,110.61,46250000,110.61 +1982-03-18,109.08,111.02,108.85,110.30,54270000,110.30 +1982-03-17,109.28,110.10,108.11,109.08,48900000,109.08 +1982-03-16,109.45,110.92,108.57,109.28,48900000,109.28 +1982-03-15,108.61,109.99,107.47,109.45,43370000,109.45 +1982-03-12,109.36,109.72,104.46,108.61,49600000,108.61 +1982-03-11,109.41,110.87,108.38,109.36,52960000,109.36 +1982-03-10,108.83,110.98,108.09,109.41,59440000,109.41 +1982-03-09,107.34,109.88,106.17,108.83,76060000,108.83 +1982-03-08,109.34,111.06,107.03,107.34,67330000,107.34 +1982-03-05,109.88,110.90,108.31,109.34,67440000,109.34 +1982-03-04,110.92,111.78,108.77,109.88,74340000,109.88 +1982-03-03,112.51,112.51,109.98,110.92,70230000,110.92 +1982-03-02,113.31,114.80,112.03,112.68,63800000,112.68 +1982-03-01,113.11,114.32,111.86,113.31,53010000,113.31 +1982-02-26,113.21,114.01,112.04,113.11,43840000,113.11 +1982-02-25,113.47,114.86,112.44,113.21,54160000,113.21 +1982-02-24,111.51,113.88,110.71,113.47,64800000,113.47 +1982-02-23,111.59,112.46,110.03,111.51,60100000,111.51 +1982-02-22,113.22,114.90,111.20,111.59,58310000,111.59 +1982-02-19,113.82,114.58,112.33,113.22,51340000,113.22 +1982-02-18,113.69,115.04,112.97,113.82,60810000,113.82 +1982-02-17,114.06,115.09,112.97,113.69,47660000,113.69 +1982-02-16,114.38,114.63,112.06,114.06,48880000,114.06 +1982-02-12,114.43,115.39,113.70,114.38,37070000,114.38 +1982-02-11,114.66,115.59,113.41,114.43,46730000,114.43 +1982-02-10,113.68,115.62,113.45,114.66,46620000,114.66 +1982-02-09,114.63,115.15,112.82,113.68,54420000,113.68 +1982-02-08,117.04,117.04,114.20,114.63,48500000,114.63 +1982-02-05,116.42,118.26,115.74,117.26,53350000,117.26 +1982-02-04,116.48,117.49,114.88,116.42,53300000,116.42 +1982-02-03,118.01,118.67,116.04,116.48,49560000,116.48 +1982-02-02,117.78,119.15,116.91,118.01,45020000,118.01 +1982-02-01,119.81,119.81,117.14,117.78,47720000,117.78 +1982-01-29,118.92,121.38,118.64,120.40,73400000,120.40 +1982-01-28,116.10,119.35,116.10,118.92,66690000,118.92 +1982-01-27,115.19,116.60,114.38,115.74,50060000,115.74 +1982-01-26,115.41,116.60,114.49,115.19,44870000,115.19 +1982-01-25,115.38,115.93,113.63,115.41,43170000,115.41 +1982-01-22,115.75,116.53,114.58,115.38,44370000,115.38 +1982-01-21,115.27,116.92,114.60,115.75,48610000,115.75 +1982-01-20,115.97,116.64,114.29,115.27,48860000,115.27 +1982-01-19,117.22,118.15,115.52,115.97,45070000,115.97 +1982-01-18,116.33,117.69,114.85,117.22,44920000,117.22 +1982-01-15,115.54,117.14,115.10,116.33,43310000,116.33 +1982-01-14,114.88,116.30,114.07,115.54,42940000,115.54 +1982-01-13,116.30,117.46,114.24,114.88,49130000,114.88 +1982-01-12,116.78,117.49,115.18,116.30,49800000,116.30 +1982-01-11,119.55,120.34,116.47,116.78,51900000,116.78 +1982-01-08,118.93,120.59,118.55,119.55,42050000,119.55 +1982-01-07,119.18,119.88,117.70,118.93,43410000,118.93 +1982-01-06,120.05,120.45,117.99,119.18,51510000,119.18 +1982-01-05,122.61,122.61,119.57,120.05,47510000,120.05 +1982-01-04,122.55,123.72,121.48,122.74,36760000,122.74 +1981-12-31,122.30,123.42,121.57,122.55,40780000,122.55 +1981-12-30,121.67,123.11,121.04,122.30,42960000,122.30 +1981-12-29,122.27,122.90,121.12,121.67,35300000,121.67 +1981-12-28,122.54,123.36,121.73,122.27,28320000,122.27 +1981-12-24,122.31,123.06,121.57,122.54,23940000,122.54 +1981-12-23,122.88,123.59,121.58,122.31,42910000,122.31 +1981-12-22,123.34,124.17,122.19,122.88,48320000,122.88 +1981-12-21,124.00,124.71,122.67,123.34,41290000,123.34 +1981-12-18,123.12,124.87,122.56,124.00,50940000,124.00 +1981-12-17,122.42,123.79,121.82,123.12,47230000,123.12 +1981-12-16,122.99,123.66,121.73,122.42,42770000,122.42 +1981-12-15,122.78,123.78,121.83,122.99,44130000,122.99 +1981-12-14,124.37,124.37,122.17,122.78,44740000,122.78 +1981-12-11,125.71,126.26,124.32,124.93,45850000,124.93 +1981-12-10,125.48,126.54,124.60,125.71,47020000,125.71 +1981-12-09,124.82,126.08,124.09,125.48,44810000,125.48 +1981-12-08,125.19,125.75,123.52,124.82,45140000,124.82 +1981-12-07,126.26,126.91,124.67,125.19,45720000,125.19 +1981-12-04,125.12,127.32,125.12,126.26,55040000,126.26 +1981-12-03,124.69,125.84,123.63,125.12,43770000,125.12 +1981-12-02,126.10,126.45,124.18,124.69,44510000,124.69 +1981-12-01,126.35,127.30,124.84,126.10,53980000,126.10 +1981-11-30,125.09,126.97,124.18,126.35,47580000,126.35 +1981-11-27,124.05,125.71,123.63,125.09,32770000,125.09 +1981-11-25,123.51,125.29,123.07,124.05,58570000,124.05 +1981-11-24,121.60,124.04,121.22,123.51,53200000,123.51 +1981-11-23,121.71,123.09,120.76,121.60,45250000,121.60 +1981-11-20,120.71,122.59,120.13,121.71,52010000,121.71 +1981-11-19,120.26,121.67,119.42,120.71,48890000,120.71 +1981-11-18,121.15,121.66,119.61,120.26,49980000,120.26 +1981-11-17,120.24,121.78,119.50,121.15,43190000,121.15 +1981-11-16,121.64,121.64,119.13,120.24,43740000,120.24 +1981-11-13,123.19,123.61,121.06,121.67,45550000,121.67 +1981-11-12,122.92,124.71,122.19,123.19,55720000,123.19 +1981-11-11,122.70,123.82,121.51,122.92,41920000,122.92 +1981-11-10,123.29,124.69,122.01,122.70,53940000,122.70 +1981-11-09,122.67,124.13,121.59,123.29,48310000,123.29 +1981-11-06,123.54,124.03,121.85,122.67,43270000,122.67 +1981-11-05,124.74,125.80,122.98,123.54,50860000,123.54 +1981-11-04,124.80,126.00,123.64,124.74,53450000,124.74 +1981-11-03,124.20,125.52,123.14,124.80,54620000,124.80 +1981-11-02,122.35,125.14,122.35,124.20,65100000,124.20 +1981-10-30,119.06,122.53,118.43,121.89,59570000,121.89 +1981-10-29,119.45,120.37,118.14,119.06,40070000,119.06 +1981-10-28,119.29,120.96,118.39,119.45,48100000,119.45 +1981-10-27,118.16,120.43,117.80,119.29,53030000,119.29 +1981-10-26,118.60,119.00,116.81,118.16,38210000,118.16 +1981-10-23,119.64,119.92,117.78,118.60,41990000,118.60 +1981-10-22,120.10,120.78,118.48,119.64,40630000,119.64 +1981-10-21,120.28,121.94,119.35,120.10,48490000,120.10 +1981-10-20,118.98,121.29,118.78,120.28,51530000,120.28 +1981-10-19,119.19,119.85,117.58,118.98,41590000,118.98 +1981-10-16,119.71,120.46,118.38,119.19,37800000,119.19 +1981-10-15,118.80,120.58,118.01,119.71,42830000,119.71 +1981-10-14,120.78,120.97,118.38,118.80,40260000,118.80 +1981-10-13,121.21,122.37,119.96,120.78,43360000,120.78 +1981-10-12,121.45,122.37,120.17,121.21,30030000,121.21 +1981-10-09,122.31,123.28,120.63,121.45,50060000,121.45 +1981-10-08,121.31,123.08,120.23,122.31,47090000,122.31 +1981-10-07,119.39,121.87,119.09,121.31,50030000,121.31 +1981-10-06,119.51,121.39,118.08,119.39,45460000,119.39 +1981-10-05,119.36,121.54,118.61,119.51,51290000,119.51 +1981-10-02,117.08,120.16,117.07,119.36,54540000,119.36 +1981-10-01,116.18,117.66,115.00,117.08,41600000,117.08 +1981-09-30,115.94,117.05,114.60,116.18,40700000,116.18 +1981-09-29,115.53,117.75,114.75,115.94,49800000,115.94 +1981-09-28,112.77,115.83,110.19,115.53,61320000,115.53 +1981-09-25,114.69,114.69,111.64,112.77,54390000,112.77 +1981-09-24,115.65,117.47,114.32,115.01,48880000,115.01 +1981-09-23,116.68,116.68,113.60,115.65,52700000,115.65 +1981-09-22,117.24,118.19,115.93,116.68,46830000,116.68 +1981-09-21,116.26,118.07,115.04,117.24,44570000,117.24 +1981-09-18,117.15,117.69,115.18,116.26,47350000,116.26 +1981-09-17,118.87,119.87,116.63,117.15,48300000,117.15 +1981-09-16,119.77,120.00,117.89,118.87,43660000,118.87 +1981-09-15,120.66,121.77,119.27,119.77,38580000,119.77 +1981-09-14,121.61,122.00,119.67,120.66,34040000,120.66 +1981-09-11,120.14,122.13,119.29,121.61,42170000,121.61 +1981-09-10,118.40,122.18,118.33,120.14,47430000,120.14 +1981-09-09,117.98,119.49,116.87,118.40,43910000,118.40 +1981-09-08,120.07,120.12,116.85,117.98,47340000,117.98 +1981-09-04,121.24,121.54,119.24,120.07,42760000,120.07 +1981-09-03,123.49,124.16,120.82,121.24,41730000,121.24 +1981-09-02,123.02,124.58,122.54,123.49,37570000,123.49 +1981-09-01,122.79,123.92,121.59,123.02,45110000,123.02 +1981-08-31,124.08,125.58,122.29,122.79,40360000,122.79 +1981-08-28,123.51,125.09,122.85,124.08,38020000,124.08 +1981-08-27,124.96,125.31,122.90,123.51,43900000,123.51 +1981-08-26,125.13,126.17,123.99,124.96,39980000,124.96 +1981-08-25,125.50,125.77,123.00,125.13,54600000,125.13 +1981-08-24,128.59,128.59,125.02,125.50,46750000,125.50 +1981-08-21,130.69,131.06,128.70,129.23,37670000,129.23 +1981-08-20,130.49,131.74,129.84,130.69,38270000,130.69 +1981-08-19,130.11,131.20,128.99,130.49,39390000,130.49 +1981-08-18,131.22,131.73,129.10,130.11,47270000,130.11 +1981-08-17,132.49,133.02,130.75,131.22,40840000,131.22 +1981-08-14,133.51,134.33,131.91,132.49,42580000,132.49 +1981-08-13,133.40,134.58,132.53,133.51,42460000,133.51 +1981-08-12,133.85,135.18,132.73,133.40,53650000,133.40 +1981-08-11,132.54,134.63,132.09,133.85,52600000,133.85 +1981-08-10,131.75,133.32,130.83,132.54,38370000,132.54 +1981-08-07,132.64,133.04,130.96,131.75,38370000,131.75 +1981-08-06,132.67,134.04,131.74,132.64,52070000,132.64 +1981-08-05,131.18,133.39,130.76,132.67,54290000,132.67 +1981-08-04,130.48,131.66,129.43,131.18,39460000,131.18 +1981-08-03,130.92,131.74,129.42,130.48,39650000,130.48 +1981-07-31,130.01,131.78,129.60,130.92,43480000,130.92 +1981-07-30,129.16,130.68,128.56,130.01,41560000,130.01 +1981-07-29,129.14,130.09,128.37,129.16,37610000,129.16 +1981-07-28,129.90,130.44,128.28,129.14,38160000,129.14 +1981-07-27,128.46,130.61,128.43,129.90,39610000,129.90 +1981-07-24,127.40,129.31,127.11,128.46,38880000,128.46 +1981-07-23,127.13,128.26,125.96,127.40,41790000,127.40 +1981-07-22,128.34,129.72,126.70,127.13,47500000,127.13 +1981-07-21,128.72,129.60,127.08,128.34,47280000,128.34 +1981-07-20,130.60,130.60,127.98,128.72,40240000,128.72 +1981-07-17,130.34,131.60,129.49,130.76,42780000,130.76 +1981-07-16,130.23,131.41,129.30,130.34,39010000,130.34 +1981-07-15,129.65,131.59,128.89,130.23,48950000,130.23 +1981-07-14,129.64,130.78,128.14,129.65,45230000,129.65 +1981-07-13,129.37,130.82,128.79,129.64,38100000,129.64 +1981-07-10,129.30,130.43,128.38,129.37,39950000,129.37 +1981-07-09,128.32,130.08,127.57,129.30,45510000,129.30 +1981-07-08,128.24,129.57,126.95,128.32,46000000,128.32 +1981-07-07,127.37,129.60,126.39,128.24,53560000,128.24 +1981-07-06,128.64,128.99,126.44,127.37,44590000,127.37 +1981-07-02,129.77,130.48,127.84,128.64,45100000,128.64 +1981-07-01,131.21,131.69,129.04,129.77,49080000,129.77 +1981-06-30,131.89,132.67,130.31,131.21,41550000,131.21 +1981-06-29,132.56,133.50,131.20,131.89,37930000,131.89 +1981-06-26,132.81,133.75,131.71,132.56,39240000,132.56 +1981-06-25,132.66,134.30,131.78,132.81,43920000,132.81 +1981-06-24,133.35,133.90,131.65,132.66,46650000,132.66 +1981-06-23,131.95,133.98,131.16,133.35,51840000,133.35 +1981-06-22,132.27,133.54,131.10,131.95,41790000,131.95 +1981-06-19,131.64,133.27,130.49,132.27,46430000,132.27 +1981-06-18,133.32,133.98,130.94,131.64,48400000,131.64 +1981-06-17,132.15,133.98,130.81,133.32,55470000,133.32 +1981-06-16,133.61,134.00,131.29,132.15,57780000,132.15 +1981-06-15,133.49,135.67,132.78,133.61,63350000,133.61 +1981-06-12,133.75,135.09,132.40,133.49,60790000,133.49 +1981-06-11,132.32,134.31,131.58,133.75,59530000,133.75 +1981-06-10,131.97,133.49,131.04,132.32,53200000,132.32 +1981-06-09,132.24,133.30,130.94,131.97,44600000,131.97 +1981-06-08,132.22,133.68,131.29,132.24,41580000,132.24 +1981-06-05,130.96,132.98,130.17,132.22,47180000,132.22 +1981-06-04,130.71,132.21,129.72,130.96,48940000,130.96 +1981-06-03,130.62,131.37,128.77,130.71,54700000,130.71 +1981-06-02,132.41,132.96,129.84,130.62,53930000,130.62 +1981-06-01,132.59,134.62,131.49,132.41,62170000,132.41 +1981-05-29,133.45,134.36,131.52,132.59,51580000,132.59 +1981-05-28,133.77,134.92,132.00,133.45,59500000,133.45 +1981-05-27,132.77,134.65,131.85,133.77,58730000,133.77 +1981-05-26,131.33,133.30,130.64,132.77,42760000,132.77 +1981-05-22,131.75,132.65,130.42,131.33,40710000,131.33 +1981-05-21,132.00,133.03,130.70,131.75,46820000,131.75 +1981-05-20,132.09,133.03,130.59,132.00,42370000,132.00 +1981-05-19,132.54,133.22,130.78,132.09,42220000,132.09 +1981-05-18,132.17,133.65,131.49,132.54,42510000,132.54 +1981-05-15,131.28,133.21,130.75,132.17,45460000,132.17 +1981-05-14,130.55,132.15,129.91,131.28,42750000,131.28 +1981-05-13,130.72,131.96,129.53,130.55,42600000,130.55 +1981-05-12,129.71,131.17,128.78,130.72,40440000,130.72 +1981-05-11,131.66,132.23,129.11,129.71,37640000,129.71 +1981-05-08,131.67,132.69,130.84,131.66,41860000,131.66 +1981-05-07,130.78,132.41,130.21,131.67,42590000,131.67 +1981-05-06,130.32,132.38,130.09,130.78,47100000,130.78 +1981-05-05,130.67,131.33,128.93,130.32,49000000,130.32 +1981-05-04,131.78,131.78,129.61,130.67,40430000,130.67 +1981-05-01,132.81,134.17,131.43,132.72,48360000,132.72 +1981-04-30,133.05,134.44,131.85,132.81,47970000,132.81 +1981-04-29,134.33,134.69,131.82,133.05,53340000,133.05 +1981-04-28,135.48,136.09,133.10,134.33,58210000,134.33 +1981-04-27,135.14,136.56,134.13,135.48,51080000,135.48 +1981-04-24,133.94,136.00,132.88,135.14,60000000,135.14 +1981-04-23,134.14,135.90,132.90,133.94,64200000,133.94 +1981-04-22,134.23,135.54,132.72,134.14,60660000,134.14 +1981-04-21,135.45,136.38,133.49,134.23,60280000,134.23 +1981-04-20,134.70,136.25,133.19,135.45,51020000,135.45 +1981-04-16,134.17,135.82,133.43,134.70,52950000,134.70 +1981-04-15,132.68,134.79,132.20,134.17,56040000,134.17 +1981-04-14,133.15,134.03,131.58,132.68,48350000,132.68 +1981-04-13,134.51,134.91,132.24,133.15,49860000,133.15 +1981-04-10,134.67,136.23,133.18,134.51,58130000,134.51 +1981-04-09,134.31,135.80,132.59,134.67,59520000,134.67 +1981-04-08,133.91,135.34,133.26,134.31,48000000,134.31 +1981-04-07,133.93,135.27,132.96,133.91,44540000,133.91 +1981-04-06,135.49,135.61,132.91,133.93,43190000,133.93 +1981-04-03,136.32,137.04,134.67,135.49,48680000,135.49 +1981-04-02,136.57,137.72,135.16,136.32,52570000,136.32 +1981-04-01,136.00,137.56,135.04,136.57,54880000,136.57 +1981-03-31,134.68,137.15,134.68,136.00,50980000,136.00 +1981-03-30,134.65,135.87,133.51,134.28,33500000,134.28 +1981-03-27,136.27,136.89,133.91,134.65,46930000,134.65 +1981-03-26,137.11,138.38,135.29,136.27,60370000,136.27 +1981-03-25,134.67,137.32,133.92,137.11,56320000,137.11 +1981-03-24,135.69,137.40,134.10,134.67,66400000,134.67 +1981-03-23,134.08,136.50,133.41,135.69,57880000,135.69 +1981-03-20,133.46,135.29,132.50,134.08,61980000,134.08 +1981-03-19,134.22,135.37,132.37,133.46,62440000,133.46 +1981-03-18,133.92,135.66,132.80,134.22,55740000,134.22 +1981-03-17,134.68,136.09,132.80,133.92,65920000,133.92 +1981-03-16,133.11,135.35,132.10,134.68,49940000,134.68 +1981-03-13,133.19,135.53,132.39,133.11,68290000,133.11 +1981-03-12,129.95,133.56,129.76,133.19,54640000,133.19 +1981-03-11,130.46,131.20,128.72,129.95,47390000,129.95 +1981-03-10,131.12,132.64,129.72,130.46,56610000,130.46 +1981-03-09,129.85,131.94,129.39,131.12,46180000,131.12 +1981-03-06,129.93,131.18,128.56,129.85,43940000,129.85 +1981-03-05,130.86,131.82,129.25,129.93,45380000,129.93 +1981-03-04,130.56,132.07,129.57,130.86,47260000,130.86 +1981-03-03,132.01,132.72,129.66,130.56,48730000,130.56 +1981-03-02,131.27,132.96,130.15,132.01,47710000,132.01 +1981-02-27,130.10,132.02,129.35,131.27,53210000,131.27 +1981-02-26,128.52,130.93,128.02,130.10,60300000,130.10 +1981-02-25,127.39,129.21,125.77,128.52,45710000,128.52 +1981-02-24,127.35,128.76,126.49,127.39,43960000,127.39 +1981-02-23,126.58,128.28,125.69,127.35,39590000,127.35 +1981-02-20,126.61,127.65,124.66,126.58,41900000,126.58 +1981-02-19,128.48,129.07,125.98,126.61,41630000,126.61 +1981-02-18,127.81,129.25,127.09,128.48,40410000,128.48 +1981-02-17,126.98,128.75,126.43,127.81,37940000,127.81 +1981-02-13,127.48,128.34,126.04,126.98,33360000,126.98 +1981-02-12,128.24,128.95,126.78,127.48,34700000,127.48 +1981-02-11,129.24,129.92,127.60,128.24,37770000,128.24 +1981-02-10,129.27,130.19,128.05,129.24,40820000,129.24 +1981-02-09,130.60,131.39,128.61,129.27,38330000,129.27 +1981-02-06,129.63,131.81,129.03,130.60,45820000,130.60 +1981-02-05,128.59,130.49,127.99,129.63,45320000,129.63 +1981-02-04,128.46,129.71,127.29,128.59,45520000,128.59 +1981-02-03,126.91,128.92,125.89,128.46,45950000,128.46 +1981-02-02,129.48,129.48,125.82,126.91,44070000,126.91 +1981-01-30,130.24,131.65,128.61,129.55,41160000,129.55 +1981-01-29,130.34,131.78,128.97,130.24,38170000,130.24 +1981-01-28,131.12,132.41,129.82,130.34,36690000,130.34 +1981-01-27,129.84,131.95,129.32,131.12,42260000,131.12 +1981-01-26,130.23,131.18,128.57,129.84,35380000,129.84 +1981-01-23,130.26,131.34,129.00,130.23,37220000,130.23 +1981-01-22,131.36,132.08,129.23,130.26,39880000,130.26 +1981-01-21,131.65,132.48,129.93,131.36,39190000,131.36 +1981-01-20,134.37,135.30,131.26,131.65,41750000,131.65 +1981-01-19,134.77,135.86,133.51,134.37,36470000,134.37 +1981-01-16,134.22,135.91,133.35,134.77,43260000,134.77 +1981-01-15,133.47,135.15,132.44,134.22,39640000,134.22 +1981-01-14,133.29,135.25,132.65,133.47,41390000,133.47 +1981-01-13,133.52,134.27,131.69,133.29,40890000,133.29 +1981-01-12,133.48,135.88,132.79,133.52,48760000,133.52 +1981-01-09,133.06,134.76,131.71,133.48,50190000,133.48 +1981-01-08,135.08,136.10,131.96,133.06,55350000,133.06 +1981-01-07,136.02,136.02,132.30,135.08,92890000,135.08 +1981-01-06,137.97,140.32,135.78,138.12,67400000,138.12 +1981-01-05,136.34,139.24,135.86,137.97,58710000,137.97 +1981-01-02,135.76,137.10,134.61,136.34,28870000,136.34 +1980-12-31,135.33,136.76,134.29,135.76,41210000,135.76 +1980-12-30,135.03,136.51,134.04,135.33,39750000,135.33 +1980-12-29,136.57,137.51,134.36,135.03,36060000,135.03 +1980-12-26,135.88,137.02,135.20,136.57,16130000,136.57 +1980-12-24,135.30,136.55,134.15,135.88,29490000,135.88 +1980-12-23,135.78,137.48,134.01,135.30,55260000,135.30 +1980-12-22,133.70,136.68,132.88,135.78,51950000,135.78 +1980-12-19,133.00,134.00,131.80,133.70,50770000,133.70 +1980-12-18,132.89,135.90,131.89,133.00,69570000,133.00 +1980-12-17,130.60,133.59,130.22,132.89,50800000,132.89 +1980-12-16,129.45,131.22,128.33,130.60,41630000,130.60 +1980-12-15,129.23,131.33,128.64,129.45,39700000,129.45 +1980-12-12,127.36,129.98,127.15,129.23,39530000,129.23 +1980-12-11,128.26,128.73,125.32,127.36,60220000,127.36 +1980-12-10,130.48,131.99,127.94,128.26,49860000,128.26 +1980-12-09,130.61,131.92,128.77,130.48,53220000,130.48 +1980-12-08,133.19,133.19,129.71,130.61,53390000,130.61 +1980-12-05,136.37,136.37,132.91,134.03,51990000,134.03 +1980-12-04,136.71,138.40,135.09,136.48,51170000,136.48 +1980-12-03,136.97,138.09,135.43,136.71,43430000,136.71 +1980-12-02,137.21,138.11,134.37,136.97,52340000,136.97 +1980-12-01,140.52,140.66,136.75,137.21,48180000,137.21 +1980-11-28,140.17,141.54,139.00,140.52,34240000,140.52 +1980-11-26,139.33,141.96,138.60,140.17,55340000,140.17 +1980-11-25,138.31,140.83,137.42,139.33,55840000,139.33 +1980-11-24,139.11,139.36,136.36,138.31,51120000,138.31 +1980-11-21,140.40,141.24,138.10,139.11,55950000,139.11 +1980-11-20,139.06,141.24,137.79,140.40,60180000,140.40 +1980-11-19,139.70,141.76,138.06,139.06,69230000,139.06 +1980-11-18,137.91,140.92,137.91,139.70,70380000,139.70 +1980-11-17,137.15,138.46,134.90,137.75,50260000,137.75 +1980-11-14,136.49,138.96,135.12,137.15,71630000,137.15 +1980-11-13,134.59,137.21,134.12,136.49,69340000,136.49 +1980-11-12,131.33,135.12,131.33,134.59,58500000,134.59 +1980-11-11,129.48,132.30,129.48,131.26,41520000,131.26 +1980-11-10,129.18,130.51,128.19,129.48,35720000,129.48 +1980-11-07,128.91,130.08,127.74,129.18,40070000,129.18 +1980-11-06,131.30,131.30,128.23,128.91,48890000,128.91 +1980-11-05,130.77,135.65,130.77,131.33,84080000,131.33 +1980-11-03,127.47,129.85,127.23,129.04,35820000,129.04 +1980-10-31,126.29,128.24,125.29,127.47,40110000,127.47 +1980-10-30,127.91,128.71,125.78,126.29,39060000,126.29 +1980-10-29,128.05,129.91,127.07,127.91,37200000,127.91 +1980-10-28,127.88,128.86,126.36,128.05,40300000,128.05 +1980-10-27,129.85,129.94,127.34,127.88,34430000,127.88 +1980-10-24,129.53,130.55,128.04,129.85,41050000,129.85 +1980-10-23,131.92,132.54,128.87,129.53,49200000,129.53 +1980-10-22,131.84,132.97,130.62,131.92,43060000,131.92 +1980-10-21,132.61,134.01,130.78,131.84,51220000,131.84 +1980-10-20,131.52,133.21,130.04,132.61,40910000,132.61 +1980-10-17,132.22,133.07,130.22,131.52,43920000,131.52 +1980-10-16,133.70,135.88,131.64,132.22,65450000,132.22 +1980-10-15,132.02,134.35,131.59,133.70,48260000,133.70 +1980-10-14,132.03,133.57,131.16,132.02,48830000,132.02 +1980-10-13,130.29,132.46,129.37,132.03,31360000,132.03 +1980-10-10,131.04,132.15,129.58,130.29,44040000,130.29 +1980-10-09,131.65,132.65,130.25,131.04,43980000,131.04 +1980-10-08,131.00,132.78,130.28,131.65,46580000,131.65 +1980-10-07,131.73,132.88,130.10,131.00,50310000,131.00 +1980-10-06,129.35,132.38,129.35,131.73,50130000,131.73 +1980-10-03,128.09,130.44,127.65,129.33,47510000,129.33 +1980-10-02,127.13,128.82,126.04,128.09,46160000,128.09 +1980-10-01,125.46,127.88,124.66,127.13,48720000,127.13 +1980-09-30,123.54,126.09,123.54,125.46,40290000,125.46 +1980-09-29,125.41,125.41,122.87,123.54,46410000,123.54 +1980-09-26,128.17,128.17,125.29,126.35,49460000,126.35 +1980-09-25,130.37,131.53,128.13,128.72,49510000,128.72 +1980-09-24,129.43,131.34,128.45,130.37,56860000,130.37 +1980-09-23,130.40,132.17,128.55,129.43,64390000,129.43 +1980-09-22,129.25,130.99,127.89,130.40,53140000,130.40 +1980-09-19,128.40,130.33,127.57,129.25,53780000,129.25 +1980-09-18,128.87,130.38,127.63,128.40,63390000,128.40 +1980-09-17,126.74,129.68,126.37,128.87,63990000,128.87 +1980-09-16,125.67,127.78,125.15,126.74,57290000,126.74 +1980-09-15,125.54,126.35,124.09,125.67,44630000,125.67 +1980-09-12,125.66,126.75,124.72,125.54,47180000,125.54 +1980-09-11,124.81,126.48,124.19,125.66,44770000,125.66 +1980-09-10,124.07,125.95,123.60,124.81,51430000,124.81 +1980-09-09,123.31,124.52,121.94,124.07,44460000,124.07 +1980-09-08,124.88,125.67,122.78,123.31,42050000,123.31 +1980-09-05,125.42,126.12,124.08,124.88,37990000,124.88 +1980-09-04,126.12,127.70,124.42,125.42,59030000,125.42 +1980-09-03,123.87,126.43,123.87,126.12,52370000,126.12 +1980-09-02,122.38,124.36,121.79,123.74,35290000,123.74 +1980-08-29,122.08,123.01,121.06,122.38,33510000,122.38 +1980-08-28,123.52,123.91,121.61,122.08,39890000,122.08 +1980-08-27,124.84,124.98,122.93,123.52,44000000,123.52 +1980-08-26,125.16,126.29,124.01,124.84,41700000,124.84 +1980-08-25,126.02,126.28,124.65,125.16,35400000,125.16 +1980-08-22,125.46,127.78,125.18,126.02,58210000,126.02 +1980-08-21,123.77,125.99,123.61,125.46,50770000,125.46 +1980-08-20,122.60,124.27,121.91,123.77,42560000,123.77 +1980-08-19,123.39,124.00,121.97,122.60,41930000,122.60 +1980-08-18,125.28,125.28,122.82,123.39,41890000,123.39 +1980-08-15,125.25,126.61,124.57,125.72,47780000,125.72 +1980-08-14,123.28,125.62,122.68,125.25,47700000,125.25 +1980-08-13,123.79,124.67,122.49,123.28,44350000,123.28 +1980-08-12,124.78,125.78,123.29,123.79,52050000,123.79 +1980-08-11,123.61,125.31,122.85,124.78,44690000,124.78 +1980-08-08,123.30,125.23,122.82,123.61,58860000,123.61 +1980-08-07,121.66,123.84,121.66,123.30,61820000,123.30 +1980-08-06,120.74,122.01,119.94,121.55,45050000,121.55 +1980-08-05,120.98,122.09,119.96,120.74,45510000,120.74 +1980-08-04,121.21,121.63,119.42,120.98,41550000,120.98 +1980-08-01,121.67,122.38,120.08,121.21,46440000,121.21 +1980-07-31,122.23,122.34,119.40,121.67,54610000,121.67 +1980-07-30,122.40,123.93,121.16,122.23,58060000,122.23 +1980-07-29,121.43,122.99,120.76,122.40,44840000,122.40 +1980-07-28,120.78,122.02,119.78,121.43,35330000,121.43 +1980-07-25,121.79,121.96,119.94,120.78,36250000,120.78 +1980-07-24,121.93,122.98,120.83,121.79,42420000,121.79 +1980-07-23,122.19,123.26,120.93,121.93,45890000,121.93 +1980-07-22,122.51,123.90,121.38,122.19,52230000,122.19 +1980-07-21,122.04,123.15,120.85,122.51,42750000,122.51 +1980-07-18,121.44,123.19,120.88,122.04,58040000,122.04 +1980-07-17,119.63,121.84,119.43,121.44,48850000,121.44 +1980-07-16,119.30,120.87,118.54,119.63,49140000,119.63 +1980-07-15,120.01,121.56,118.85,119.30,60920000,119.30 +1980-07-14,117.84,120.37,117.45,120.01,45500000,120.01 +1980-07-11,116.95,118.38,116.29,117.84,38310000,117.84 +1980-07-10,117.98,118.57,116.38,116.95,43730000,116.95 +1980-07-09,117.84,119.52,117.10,117.98,52010000,117.98 +1980-07-08,118.29,119.11,117.07,117.84,45830000,117.84 +1980-07-07,117.46,118.85,116.96,118.29,42540000,118.29 +1980-07-03,115.68,117.80,115.49,117.46,47230000,117.46 +1980-07-02,114.93,116.44,114.36,115.68,42950000,115.68 +1980-07-01,114.24,115.45,113.54,114.93,34340000,114.93 +1980-06-30,116.00,116.04,113.55,114.24,29910000,114.24 +1980-06-27,116.19,116.93,115.06,116.00,33110000,116.00 +1980-06-26,116.72,117.98,115.58,116.19,45110000,116.19 +1980-06-25,115.14,117.37,115.07,116.72,46500000,116.72 +1980-06-24,114.51,115.75,113.76,115.14,37730000,115.14 +1980-06-23,114.06,115.28,113.35,114.51,34180000,114.51 +1980-06-20,114.66,114.90,113.12,114.06,36530000,114.06 +1980-06-19,116.26,116.81,114.36,114.66,38280000,114.66 +1980-06-18,116.03,116.84,114.77,116.26,41960000,116.26 +1980-06-17,116.09,117.16,115.13,116.03,41990000,116.03 +1980-06-16,115.81,116.80,114.78,116.09,36190000,116.09 +1980-06-13,115.52,116.94,114.67,115.81,41880000,115.81 +1980-06-12,116.02,117.01,114.28,115.52,47300000,115.52 +1980-06-11,114.66,116.64,114.22,116.02,43800000,116.02 +1980-06-10,113.71,115.50,113.17,114.66,42030000,114.66 +1980-06-09,113.20,114.51,112.68,113.71,36820000,113.71 +1980-06-06,112.78,114.01,112.11,113.20,37230000,113.20 +1980-06-05,112.61,114.38,111.89,112.78,49070000,112.78 +1980-06-04,110.51,113.45,110.22,112.61,44180000,112.61 +1980-06-03,110.76,111.63,109.77,110.51,33150000,110.51 +1980-06-02,111.24,112.15,110.06,110.76,32710000,110.76 +1980-05-30,110.27,111.55,108.87,111.24,34820000,111.24 +1980-05-29,112.06,112.64,109.86,110.27,42000000,110.27 +1980-05-28,111.40,112.72,110.42,112.06,38580000,112.06 +1980-05-27,110.62,112.30,110.35,111.40,40810000,111.40 +1980-05-23,109.01,111.37,109.01,110.62,45790000,110.62 +1980-05-22,107.72,109.73,107.34,109.01,41040000,109.01 +1980-05-21,107.62,108.31,106.54,107.72,34830000,107.72 +1980-05-20,107.67,108.39,106.75,107.62,31800000,107.62 +1980-05-19,107.35,108.43,106.51,107.67,30970000,107.67 +1980-05-16,106.99,107.89,106.25,107.35,31710000,107.35 +1980-05-15,106.85,107.99,106.07,106.99,41120000,106.99 +1980-05-14,106.30,107.89,106.00,106.85,40840000,106.85 +1980-05-13,104.78,106.76,104.44,106.30,35460000,106.30 +1980-05-12,104.72,105.48,103.50,104.78,28220000,104.78 +1980-05-09,106.13,106.20,104.18,104.72,30280000,104.72 +1980-05-08,107.18,108.02,105.50,106.13,39280000,106.13 +1980-05-07,106.25,108.12,105.83,107.18,42600000,107.18 +1980-05-06,106.38,107.83,105.36,106.25,40160000,106.25 +1980-05-05,105.58,106.83,104.64,106.38,34090000,106.38 +1980-05-02,105.46,106.25,104.61,105.58,28040000,105.58 +1980-05-01,106.29,106.86,104.72,105.46,32480000,105.46 +1980-04-30,105.86,106.72,104.50,106.29,30850000,106.29 +1980-04-29,105.64,106.70,104.86,105.86,27940000,105.86 +1980-04-28,105.16,106.79,104.64,105.64,30600000,105.64 +1980-04-25,104.40,105.57,103.02,105.16,28590000,105.16 +1980-04-24,103.73,105.43,102.93,104.40,35790000,104.40 +1980-04-23,103.43,105.11,102.81,103.73,42620000,103.73 +1980-04-22,100.81,104.02,100.81,103.43,47920000,103.43 +1980-04-21,100.55,101.26,98.95,99.80,27560000,99.80 +1980-04-18,101.05,102.07,99.97,100.55,26880000,100.55 +1980-04-17,101.54,102.21,100.12,101.05,32770000,101.05 +1980-04-16,102.63,104.42,101.13,101.54,39730000,101.54 +1980-04-15,102.84,103.94,101.85,102.63,26670000,102.63 +1980-04-14,103.79,103.92,102.08,102.84,23060000,102.84 +1980-04-11,104.08,105.15,103.20,103.79,29960000,103.79 +1980-04-10,103.11,105.00,102.81,104.08,33940000,104.08 +1980-04-09,101.20,103.60,101.01,103.11,33020000,103.11 +1980-04-08,100.19,101.88,99.23,101.20,31700000,101.20 +1980-04-07,102.15,102.27,99.73,100.19,29130000,100.19 +1980-04-03,102.68,103.34,101.31,102.15,27970000,102.15 +1980-04-02,102.18,103.87,101.45,102.68,35210000,102.68 +1980-04-01,102.09,103.28,100.85,102.18,32230000,102.18 +1980-03-31,100.68,102.65,100.02,102.09,35840000,102.09 +1980-03-28,98.22,101.43,97.72,100.68,46720000,100.68 +1980-03-27,98.68,99.58,94.23,98.22,63680000,98.22 +1980-03-26,99.19,101.22,98.10,98.68,37370000,98.68 +1980-03-25,99.28,100.58,97.89,99.19,43790000,99.19 +1980-03-24,102.18,102.18,98.88,99.28,39230000,99.28 +1980-03-21,103.12,103.73,101.55,102.31,32220000,102.31 +1980-03-20,104.31,105.17,102.52,103.12,32580000,103.12 +1980-03-19,104.10,105.72,103.35,104.31,36520000,104.31 +1980-03-18,102.26,104.71,101.14,104.10,47340000,104.10 +1980-03-17,105.23,105.23,101.82,102.26,37020000,102.26 +1980-03-14,105.62,106.49,104.01,105.43,35180000,105.43 +1980-03-13,106.87,107.55,105.10,105.62,33070000,105.62 +1980-03-12,107.78,108.40,105.42,106.87,37990000,106.87 +1980-03-11,106.51,108.54,106.18,107.78,41350000,107.78 +1980-03-10,106.90,107.86,104.92,106.51,43750000,106.51 +1980-03-07,108.65,108.96,105.99,106.90,50950000,106.90 +1980-03-06,111.13,111.29,107.85,108.65,49610000,108.65 +1980-03-05,112.78,113.94,110.58,111.13,49240000,111.13 +1980-03-04,112.50,113.41,110.83,112.78,44310000,112.78 +1980-03-03,113.66,114.34,112.01,112.50,38690000,112.50 +1980-02-29,112.35,114.12,111.77,113.66,38810000,113.66 +1980-02-28,112.38,113.70,111.33,112.35,40330000,112.35 +1980-02-27,113.98,115.12,111.91,112.38,46430000,112.38 +1980-02-26,113.33,114.76,112.30,113.98,40000000,113.98 +1980-02-25,114.93,114.93,112.62,113.33,39140000,113.33 +1980-02-22,115.28,116.46,113.43,115.04,48210000,115.04 +1980-02-21,116.47,117.90,114.44,115.28,51530000,115.28 +1980-02-20,114.60,117.18,114.06,116.47,44340000,116.47 +1980-02-19,115.41,115.67,113.35,114.60,39480000,114.60 +1980-02-15,116.70,116.70,114.12,115.41,46680000,115.41 +1980-02-14,118.44,119.30,116.04,116.72,50540000,116.72 +1980-02-13,117.90,120.22,117.57,118.44,65230000,118.44 +1980-02-12,117.12,118.41,115.75,117.90,48090000,117.90 +1980-02-11,117.95,119.05,116.31,117.12,58660000,117.12 +1980-02-08,116.28,118.66,115.72,117.95,57860000,117.95 +1980-02-07,115.72,117.87,115.22,116.28,57690000,116.28 +1980-02-06,114.66,116.57,113.65,115.72,51950000,115.72 +1980-02-05,114.37,115.25,112.15,114.66,41880000,114.66 +1980-02-04,115.12,116.01,113.83,114.37,43070000,114.37 +1980-02-01,114.16,115.54,113.13,115.12,46610000,115.12 +1980-01-31,115.20,117.17,113.78,114.16,65900000,114.16 +1980-01-30,114.07,115.85,113.37,115.20,51170000,115.20 +1980-01-29,114.85,115.77,113.03,114.07,55480000,114.07 +1980-01-28,113.61,115.65,112.93,114.85,53620000,114.85 +1980-01-25,113.70,114.45,112.36,113.61,47100000,113.61 +1980-01-24,113.44,115.27,112.95,113.70,59070000,113.70 +1980-01-23,111.51,113.93,110.93,113.44,50730000,113.44 +1980-01-22,112.10,113.10,110.92,111.51,50620000,111.51 +1980-01-21,111.07,112.90,110.66,112.10,48040000,112.10 +1980-01-18,110.70,111.74,109.88,111.07,47150000,111.07 +1980-01-17,111.05,112.01,109.81,110.70,54170000,110.70 +1980-01-16,111.14,112.90,110.38,111.05,67700000,111.05 +1980-01-15,110.38,111.93,109.45,111.14,52320000,111.14 +1980-01-14,109.92,111.44,109.34,110.38,52930000,110.38 +1980-01-11,109.89,111.16,108.89,109.92,52890000,109.92 +1980-01-10,109.05,110.86,108.47,109.89,55980000,109.89 +1980-01-09,108.95,111.09,108.41,109.05,65260000,109.05 +1980-01-08,106.81,109.29,106.29,108.95,53390000,108.95 +1980-01-07,106.52,107.80,105.80,106.81,44500000,106.81 +1980-01-04,105.22,107.08,105.09,106.52,39130000,106.52 +1980-01-03,105.76,106.08,103.26,105.22,50480000,105.22 +1980-01-02,107.94,108.43,105.29,105.76,40610000,105.76 +1979-12-31,107.84,108.53,107.26,107.94,31530000,107.94 +1979-12-28,107.96,108.61,107.16,107.84,34430000,107.84 +1979-12-27,107.78,108.50,107.14,107.96,31410000,107.96 +1979-12-26,107.66,108.37,107.06,107.78,24960000,107.78 +1979-12-24,107.59,108.08,106.80,107.66,19150000,107.66 +1979-12-21,108.26,108.76,106.99,107.59,36160000,107.59 +1979-12-20,108.20,109.24,107.40,108.26,40380000,108.26 +1979-12-19,108.30,108.79,107.02,108.20,41780000,108.20 +1979-12-18,109.33,109.83,107.83,108.30,43310000,108.30 +1979-12-17,108.92,110.33,108.36,109.33,43830000,109.33 +1979-12-14,107.67,109.49,107.37,108.92,41800000,108.92 +1979-12-13,107.52,108.29,106.68,107.67,36690000,107.67 +1979-12-12,107.49,108.32,106.78,107.52,34630000,107.52 +1979-12-11,107.67,108.58,106.79,107.49,36160000,107.49 +1979-12-10,107.52,108.27,106.65,107.67,32270000,107.67 +1979-12-07,108.00,109.24,106.55,107.52,42370000,107.52 +1979-12-06,107.25,108.47,106.71,108.00,37510000,108.00 +1979-12-05,106.79,108.36,106.60,107.25,39300000,107.25 +1979-12-04,105.83,107.25,105.66,106.79,33510000,106.79 +1979-12-03,106.16,106.65,105.07,105.83,29030000,105.83 +1979-11-30,106.81,107.16,105.56,106.16,30480000,106.16 +1979-11-29,106.77,107.84,106.17,106.81,33550000,106.81 +1979-11-28,106.38,107.55,105.29,106.77,39690000,106.77 +1979-11-27,106.80,107.89,105.64,106.38,45140000,106.38 +1979-11-26,104.83,107.44,104.83,106.80,47940000,106.80 +1979-11-23,103.89,105.13,103.56,104.67,23300000,104.67 +1979-11-21,103.69,104.23,102.04,103.89,37020000,103.89 +1979-11-20,104.23,105.11,103.14,103.69,35010000,103.69 +1979-11-19,103.79,105.08,103.17,104.23,33090000,104.23 +1979-11-16,104.13,104.72,103.07,103.79,30060000,103.79 +1979-11-15,103.39,104.94,103.10,104.13,32380000,104.13 +1979-11-14,102.94,104.13,101.91,103.39,30970000,103.39 +1979-11-13,103.51,104.21,102.42,102.94,29240000,102.94 +1979-11-12,101.51,103.72,101.27,103.51,26640000,103.51 +1979-11-09,100.58,102.18,100.58,101.51,30060000,101.51 +1979-11-08,99.87,101.00,99.49,100.30,26270000,100.30 +1979-11-07,100.97,100.97,99.42,99.87,30830000,99.87 +1979-11-06,101.82,102.01,100.77,101.20,21960000,101.20 +1979-11-05,102.51,102.66,101.24,101.82,20470000,101.82 +1979-11-02,102.57,103.21,101.92,102.51,23670000,102.51 +1979-11-01,101.82,103.07,101.10,102.57,25880000,102.57 +1979-10-31,102.67,103.16,101.38,101.82,27780000,101.82 +1979-10-30,100.71,102.83,100.41,102.67,28890000,102.67 +1979-10-29,100.57,101.56,100.13,100.71,22720000,100.71 +1979-10-26,100.00,101.31,99.59,100.57,29660000,100.57 +1979-10-25,100.44,101.39,99.56,100.00,28440000,100.00 +1979-10-24,100.28,101.45,99.66,100.44,31480000,100.44 +1979-10-23,100.71,101.44,99.61,100.28,32910000,100.28 +1979-10-22,101.38,101.38,99.06,100.71,45240000,100.71 +1979-10-19,103.58,103.58,101.24,101.60,42430000,101.60 +1979-10-18,103.39,104.62,102.92,103.61,29590000,103.61 +1979-10-17,103.19,104.54,102.74,103.39,29650000,103.39 +1979-10-16,103.36,104.37,102.52,103.19,33770000,103.19 +1979-10-15,104.49,104.74,102.69,103.36,34850000,103.36 +1979-10-12,105.05,106.20,104.01,104.49,36390000,104.49 +1979-10-11,105.30,106.33,103.70,105.05,47530000,105.05 +1979-10-10,106.23,106.23,102.31,105.30,81620000,105.30 +1979-10-09,109.43,109.43,106.04,106.63,55560000,106.63 +1979-10-08,111.27,111.83,109.65,109.88,32610000,109.88 +1979-10-05,110.17,112.16,110.16,111.27,48250000,111.27 +1979-10-04,109.59,110.81,109.14,110.17,38800000,110.17 +1979-10-03,109.59,110.43,108.88,109.59,36470000,109.59 +1979-10-02,108.56,110.08,108.03,109.59,38310000,109.59 +1979-10-01,109.19,109.19,107.70,108.56,24980000,108.56 +1979-09-28,110.21,110.67,108.70,109.32,35950000,109.32 +1979-09-27,109.96,110.75,109.19,110.21,33110000,110.21 +1979-09-26,109.68,111.25,109.37,109.96,37700000,109.96 +1979-09-25,109.61,110.19,108.27,109.68,32410000,109.68 +1979-09-24,110.47,110.90,109.16,109.61,33790000,109.61 +1979-09-21,110.51,111.58,109.46,110.47,52380000,110.47 +1979-09-20,108.28,110.69,107.59,110.51,45100000,110.51 +1979-09-19,108.00,109.02,107.52,108.28,35370000,108.28 +1979-09-18,108.84,109.00,107.32,108.00,38750000,108.00 +1979-09-17,108.76,110.06,108.40,108.84,37610000,108.84 +1979-09-14,107.85,109.48,107.42,108.76,41980000,108.76 +1979-09-13,107.82,108.53,107.06,107.85,35240000,107.85 +1979-09-12,107.51,108.41,106.72,107.82,39350000,107.82 +1979-09-11,108.17,108.83,106.80,107.51,42530000,107.51 +1979-09-10,107.66,108.71,107.21,108.17,32980000,108.17 +1979-09-07,106.85,108.09,106.30,107.66,34360000,107.66 +1979-09-06,106.40,107.61,105.97,106.85,30330000,106.85 +1979-09-05,107.19,107.19,105.38,106.40,41650000,106.40 +1979-09-04,109.32,109.41,107.22,107.44,33350000,107.44 +1979-08-31,109.02,109.80,108.58,109.32,26370000,109.32 +1979-08-30,109.02,109.59,108.40,109.02,29300000,109.02 +1979-08-29,109.02,109.59,108.36,109.02,30810000,109.02 +1979-08-28,109.14,109.65,108.47,109.02,29430000,109.02 +1979-08-27,108.60,109.84,108.12,109.14,32050000,109.14 +1979-08-24,108.63,109.11,107.65,108.60,32730000,108.60 +1979-08-23,108.99,109.59,108.12,108.63,35710000,108.63 +1979-08-22,108.91,109.56,108.09,108.99,38450000,108.99 +1979-08-21,108.83,109.68,108.17,108.91,38860000,108.91 +1979-08-20,108.30,109.32,107.69,108.83,32300000,108.83 +1979-08-17,108.09,108.94,107.25,108.30,31630000,108.30 +1979-08-16,108.25,109.18,107.38,108.09,47000000,108.09 +1979-08-15,107.52,108.64,106.75,108.25,46130000,108.25 +1979-08-14,107.42,108.03,106.60,107.52,40910000,107.52 +1979-08-13,106.40,107.90,106.28,107.42,41980000,107.42 +1979-08-10,105.49,106.79,104.81,106.40,36740000,106.40 +1979-08-09,105.98,106.25,104.89,105.49,34630000,105.49 +1979-08-08,105.65,106.84,105.20,105.98,44970000,105.98 +1979-08-07,104.30,106.23,104.12,105.65,45410000,105.65 +1979-08-06,104.04,104.66,103.27,104.30,27190000,104.30 +1979-08-03,104.10,104.56,103.36,104.04,28160000,104.04 +1979-08-02,104.17,105.02,103.59,104.10,37720000,104.10 +1979-08-01,103.81,104.57,103.14,104.17,36570000,104.17 +1979-07-31,103.15,104.26,102.89,103.81,34360000,103.81 +1979-07-30,103.10,103.63,102.42,103.15,28640000,103.15 +1979-07-27,103.10,103.50,102.29,103.10,27760000,103.10 +1979-07-26,103.08,103.63,102.34,103.10,32270000,103.10 +1979-07-25,101.97,103.44,101.85,103.08,34890000,103.08 +1979-07-24,101.59,102.50,101.14,101.97,29690000,101.97 +1979-07-23,101.82,102.13,100.84,101.59,26860000,101.59 +1979-07-20,101.61,102.32,101.06,101.82,26360000,101.82 +1979-07-19,101.69,102.42,101.04,101.61,26780000,101.61 +1979-07-18,101.83,102.06,100.35,101.69,35950000,101.69 +1979-07-17,102.74,103.06,101.27,101.83,34270000,101.83 +1979-07-16,102.32,103.20,101.81,102.74,26620000,102.74 +1979-07-13,102.69,102.99,101.49,102.32,33080000,102.32 +1979-07-12,103.64,103.72,102.22,102.69,31780000,102.69 +1979-07-11,104.20,104.34,102.87,103.64,36650000,103.64 +1979-07-10,104.47,105.17,103.52,104.20,39730000,104.20 +1979-07-09,103.62,105.07,103.36,104.47,42460000,104.47 +1979-07-06,102.43,103.91,102.12,103.62,38570000,103.62 +1979-07-05,102.09,102.88,101.59,102.43,30290000,102.43 +1979-07-03,101.99,102.57,101.31,102.09,31670000,102.09 +1979-07-02,102.91,103.00,101.45,101.99,32060000,101.99 +1979-06-29,102.80,103.67,102.04,102.91,34690000,102.91 +1979-06-28,102.27,103.46,101.91,102.80,38470000,102.80 +1979-06-27,101.66,102.95,101.29,102.27,36720000,102.27 +1979-06-26,102.09,102.09,101.22,101.66,34680000,101.66 +1979-06-25,102.64,102.91,101.45,102.09,31330000,102.09 +1979-06-22,102.09,103.16,101.91,102.64,36410000,102.64 +1979-06-21,101.63,102.74,101.20,102.09,36490000,102.09 +1979-06-20,101.58,102.19,100.93,101.63,33790000,101.63 +1979-06-19,101.56,102.28,100.91,101.58,30780000,101.58 +1979-06-18,102.09,102.48,101.05,101.56,30970000,101.56 +1979-06-15,102.20,102.78,101.38,102.09,40740000,102.09 +1979-06-14,102.31,102.63,101.04,102.20,37850000,102.20 +1979-06-13,102.85,103.58,101.83,102.31,40740000,102.31 +1979-06-12,101.91,103.64,101.81,102.85,45450000,102.85 +1979-06-11,101.49,102.24,100.91,101.91,28270000,101.91 +1979-06-08,101.79,102.23,100.91,101.49,31470000,101.49 +1979-06-07,101.30,102.54,101.15,101.79,43380000,101.79 +1979-06-06,100.62,101.96,100.38,101.30,39830000,101.30 +1979-06-05,99.32,101.07,99.17,100.62,35050000,100.62 +1979-06-04,99.17,99.76,98.61,99.32,24040000,99.32 +1979-06-01,99.08,99.70,98.57,99.17,24560000,99.17 +1979-05-31,99.11,99.61,98.29,99.08,30300000,99.08 +1979-05-30,100.05,100.25,98.79,99.11,29250000,99.11 +1979-05-29,100.22,100.76,99.56,100.05,27040000,100.05 +1979-05-25,99.93,100.68,99.52,100.22,27810000,100.22 +1979-05-24,99.89,100.44,99.14,99.93,25710000,99.93 +1979-05-23,100.51,101.31,99.63,99.89,30390000,99.89 +1979-05-22,100.14,100.93,99.45,100.51,30400000,100.51 +1979-05-21,99.93,100.75,99.37,100.14,25550000,100.14 +1979-05-18,99.94,100.73,99.33,99.93,26590000,99.93 +1979-05-17,98.42,100.22,98.29,99.94,30550000,99.94 +1979-05-16,98.14,98.80,97.49,98.42,28350000,98.42 +1979-05-15,98.06,98.90,97.60,98.14,26190000,98.14 +1979-05-14,98.52,98.95,97.71,98.06,22450000,98.06 +1979-05-11,98.52,99.03,97.92,98.52,24010000,98.52 +1979-05-10,99.46,99.63,98.22,98.52,25230000,98.52 +1979-05-09,99.17,100.01,98.50,99.46,27670000,99.46 +1979-05-08,99.02,99.56,97.98,99.17,32720000,99.17 +1979-05-07,100.37,100.37,98.78,99.02,30480000,99.02 +1979-05-04,101.81,102.08,100.42,100.69,30630000,100.69 +1979-05-03,101.72,102.57,101.25,101.81,30870000,101.81 +1979-05-02,101.68,102.28,101.00,101.72,30510000,101.72 +1979-05-01,101.76,102.50,101.22,101.68,31040000,101.68 +1979-04-30,101.80,102.24,100.91,101.76,26440000,101.76 +1979-04-27,102.01,102.32,101.04,101.80,29610000,101.80 +1979-04-26,102.50,102.91,101.58,102.01,32400000,102.01 +1979-04-25,102.20,103.07,101.79,102.50,31750000,102.50 +1979-04-24,101.57,103.02,101.39,102.20,35540000,102.20 +1979-04-23,101.23,102.00,100.68,101.57,25610000,101.57 +1979-04-20,101.28,101.81,100.46,101.23,28830000,101.23 +1979-04-19,101.70,102.40,100.88,101.28,31150000,101.28 +1979-04-18,101.24,102.23,100.96,101.70,29510000,101.70 +1979-04-17,101.12,101.94,100.65,101.24,29260000,101.24 +1979-04-16,102.00,102.02,100.67,101.12,28050000,101.12 +1979-04-12,102.31,102.77,101.51,102.00,26780000,102.00 +1979-04-11,103.34,103.77,101.92,102.31,32900000,102.31 +1979-04-10,102.87,103.83,102.42,103.34,31900000,103.34 +1979-04-09,103.18,103.56,102.28,102.87,27230000,102.87 +1979-04-06,103.26,103.95,102.58,103.18,34710000,103.18 +1979-04-05,102.65,103.60,102.16,103.26,34520000,103.26 +1979-04-04,102.40,103.73,102.16,102.65,41940000,102.65 +1979-04-03,100.90,102.67,100.81,102.40,33530000,102.40 +1979-04-02,101.56,101.56,100.14,100.90,28990000,100.90 +1979-03-30,102.03,102.51,101.03,101.59,29970000,101.59 +1979-03-29,102.12,102.78,101.43,102.03,28510000,102.03 +1979-03-28,102.48,103.31,101.74,102.12,39920000,102.12 +1979-03-27,101.04,102.71,100.81,102.48,32940000,102.48 +1979-03-26,101.60,101.77,100.60,101.04,23430000,101.04 +1979-03-23,101.67,102.37,101.02,101.60,33570000,101.60 +1979-03-22,101.25,102.41,101.04,101.67,34380000,101.67 +1979-03-21,100.50,101.48,99.87,101.25,31120000,101.25 +1979-03-20,101.06,101.34,100.01,100.50,27180000,100.50 +1979-03-19,100.69,101.94,100.35,101.06,34620000,101.06 +1979-03-16,99.86,101.16,99.53,100.69,31770000,100.69 +1979-03-15,99.71,100.57,99.11,99.86,29370000,99.86 +1979-03-14,99.84,100.43,99.23,99.71,24630000,99.71 +1979-03-13,99.67,100.66,99.13,99.84,31170000,99.84 +1979-03-12,99.54,100.04,98.56,99.67,25740000,99.67 +1979-03-09,99.58,100.58,99.12,99.54,33410000,99.54 +1979-03-08,98.44,99.82,98.10,99.58,32000000,99.58 +1979-03-07,97.87,99.23,97.67,98.44,28930000,98.44 +1979-03-06,98.06,98.53,97.36,97.87,24490000,97.87 +1979-03-05,97.03,98.64,97.03,98.06,25690000,98.06 +1979-03-02,96.90,97.55,96.44,96.97,23130000,96.97 +1979-03-01,96.28,97.28,95.98,96.90,23830000,96.90 +1979-02-28,96.13,96.69,95.38,96.28,25090000,96.28 +1979-02-27,97.65,97.65,95.69,96.13,31470000,96.13 +1979-02-26,97.78,98.28,97.20,97.67,22620000,97.67 +1979-02-23,98.33,98.50,97.29,97.78,22750000,97.78 +1979-02-22,99.07,99.21,97.88,98.33,26290000,98.33 +1979-02-21,99.42,100.07,98.69,99.07,26050000,99.07 +1979-02-20,98.67,99.67,98.26,99.42,22010000,99.42 +1979-02-16,98.73,99.23,98.11,98.67,21110000,98.67 +1979-02-15,98.87,99.13,97.96,98.73,22550000,98.73 +1979-02-14,98.93,99.64,98.21,98.87,27220000,98.87 +1979-02-13,98.25,99.58,98.25,98.93,28470000,98.93 +1979-02-12,97.87,98.55,97.05,98.20,20610000,98.20 +1979-02-09,97.65,98.50,97.28,97.87,24320000,97.87 +1979-02-08,97.16,98.11,96.82,97.65,23360000,97.65 +1979-02-07,98.05,98.07,96.51,97.16,28450000,97.16 +1979-02-06,98.09,98.74,97.48,98.05,23570000,98.05 +1979-02-05,99.07,99.07,97.57,98.09,26490000,98.09 +1979-02-02,99.96,100.52,99.10,99.50,25350000,99.50 +1979-02-01,99.93,100.38,99.01,99.96,27930000,99.96 +1979-01-31,101.05,101.41,99.47,99.93,30330000,99.93 +1979-01-30,101.55,102.07,100.68,101.05,26910000,101.05 +1979-01-29,101.86,102.33,100.99,101.55,24170000,101.55 +1979-01-26,101.19,102.59,101.03,101.86,34230000,101.86 +1979-01-25,100.16,101.66,99.99,101.19,31440000,101.19 +1979-01-24,100.60,101.31,99.67,100.16,31730000,100.16 +1979-01-23,99.90,101.05,99.35,100.60,30130000,100.60 +1979-01-22,99.75,100.35,98.90,99.90,24390000,99.90 +1979-01-19,99.72,100.57,99.22,99.75,26800000,99.75 +1979-01-18,99.48,100.35,98.91,99.72,27260000,99.72 +1979-01-17,99.46,100.00,98.33,99.48,25310000,99.48 +1979-01-16,100.69,100.88,99.11,99.46,30340000,99.46 +1979-01-15,99.93,101.13,99.58,100.69,27520000,100.69 +1979-01-12,99.32,100.91,99.32,99.93,37120000,99.93 +1979-01-11,98.77,99.41,97.95,99.10,24580000,99.10 +1979-01-10,99.33,99.75,98.28,98.77,24990000,98.77 +1979-01-09,98.80,99.96,98.62,99.33,27340000,99.33 +1979-01-08,99.13,99.30,97.83,98.80,21440000,98.80 +1979-01-05,98.58,99.79,98.25,99.13,28890000,99.13 +1979-01-04,97.80,99.42,97.52,98.58,33290000,98.58 +1979-01-03,96.81,98.54,96.81,97.80,29180000,97.80 +1979-01-02,96.11,96.96,95.22,96.73,18340000,96.73 +1978-12-29,96.28,97.03,95.48,96.11,30030000,96.11 +1978-12-28,96.66,97.19,95.82,96.28,25440000,96.28 +1978-12-27,97.51,97.51,96.15,96.66,23580000,96.66 +1978-12-26,96.31,97.89,95.99,97.52,21470000,97.52 +1978-12-22,94.77,96.62,94.77,96.31,23790000,96.31 +1978-12-21,94.68,95.66,94.11,94.71,28670000,94.71 +1978-12-20,94.24,95.20,93.70,94.68,26520000,94.68 +1978-12-19,93.44,94.85,93.05,94.24,25960000,94.24 +1978-12-18,94.33,94.33,92.64,93.44,32900000,93.44 +1978-12-15,96.04,96.28,94.88,95.33,23620000,95.33 +1978-12-14,96.06,96.44,95.20,96.04,20840000,96.04 +1978-12-13,96.59,97.07,95.59,96.06,22480000,96.06 +1978-12-12,97.11,97.58,96.27,96.59,22210000,96.59 +1978-12-11,96.63,97.56,96.07,97.11,21000000,97.11 +1978-12-08,97.08,97.48,96.14,96.63,18560000,96.63 +1978-12-07,97.49,98.10,96.58,97.08,21170000,97.08 +1978-12-06,97.44,98.58,96.83,97.49,29680000,97.49 +1978-12-05,96.15,97.70,95.88,97.44,25670000,97.44 +1978-12-04,96.28,96.96,95.37,96.15,22020000,96.15 +1978-12-01,95.01,96.69,95.01,96.28,26830000,96.28 +1978-11-30,93.75,94.94,93.29,94.70,19900000,94.70 +1978-11-29,94.92,94.92,93.48,93.75,21160000,93.75 +1978-11-28,95.99,96.51,94.88,95.15,22740000,95.15 +1978-11-27,95.79,96.52,95.17,95.99,19790000,95.99 +1978-11-24,95.48,96.17,94.98,95.79,14590000,95.79 +1978-11-22,95.01,95.91,94.54,95.48,20010000,95.48 +1978-11-21,95.25,95.83,94.49,95.01,20750000,95.01 +1978-11-20,94.42,95.86,94.29,95.25,24440000,95.25 +1978-11-17,93.71,95.03,93.59,94.42,25170000,94.42 +1978-11-16,92.71,94.08,92.59,93.71,21340000,93.71 +1978-11-15,92.49,94.00,92.29,92.71,26280000,92.71 +1978-11-14,93.13,93.53,91.77,92.49,30610000,92.49 +1978-11-13,94.77,94.90,92.96,93.13,20960000,93.13 +1978-11-10,94.42,95.39,93.94,94.77,16750000,94.77 +1978-11-09,94.45,95.50,93.81,94.42,23320000,94.42 +1978-11-08,93.85,94.74,92.89,94.45,23560000,94.45 +1978-11-07,94.75,94.75,93.14,93.85,25320000,93.85 +1978-11-06,96.18,96.49,94.84,95.19,20450000,95.19 +1978-11-03,95.61,96.98,94.78,96.18,25990000,96.18 +1978-11-02,96.85,97.31,94.84,95.61,41030000,95.61 +1978-11-01,94.13,97.41,94.13,96.85,50450000,96.85 +1978-10-31,95.06,95.80,92.72,93.15,42720000,93.15 +1978-10-30,94.59,95.49,91.65,95.06,59480000,95.06 +1978-10-27,96.03,96.62,94.30,94.59,40360000,94.59 +1978-10-26,97.31,97.71,95.59,96.03,31990000,96.03 +1978-10-25,97.49,98.56,96.33,97.31,31380000,97.31 +1978-10-24,98.18,98.95,97.13,97.49,28880000,97.49 +1978-10-23,97.95,98.84,96.63,98.18,36090000,98.18 +1978-10-20,99.26,99.26,97.12,97.95,43670000,97.95 +1978-10-19,100.49,101.03,99.04,99.33,31810000,99.33 +1978-10-18,101.26,101.76,99.89,100.49,32940000,100.49 +1978-10-17,102.35,102.35,100.47,101.26,37870000,101.26 +1978-10-16,104.63,104.63,102.43,102.61,24600000,102.61 +1978-10-13,104.88,105.34,104.07,104.66,21920000,104.66 +1978-10-12,105.39,106.23,104.42,104.88,30170000,104.88 +1978-10-11,104.46,105.64,103.80,105.39,21740000,105.39 +1978-10-10,104.59,105.36,103.90,104.46,25470000,104.46 +1978-10-09,103.52,104.89,103.31,104.59,19720000,104.59 +1978-10-06,103.27,104.23,102.82,103.52,27380000,103.52 +1978-10-05,103.06,104.10,102.54,103.27,27820000,103.27 +1978-10-04,102.60,103.36,101.76,103.06,25090000,103.06 +1978-10-03,102.96,103.56,102.18,102.60,22540000,102.60 +1978-10-02,102.54,103.42,102.13,102.96,18700000,102.96 +1978-09-29,101.96,103.08,101.65,102.54,23610000,102.54 +1978-09-28,101.66,102.38,100.94,101.96,24390000,101.96 +1978-09-27,102.62,103.44,101.33,101.66,28370000,101.66 +1978-09-26,101.86,103.15,101.58,102.62,26330000,102.62 +1978-09-25,101.84,102.36,101.05,101.86,20970000,101.86 +1978-09-22,101.90,102.69,101.13,101.84,27960000,101.84 +1978-09-21,101.73,102.54,100.66,101.90,33640000,101.90 +1978-09-20,102.53,103.29,101.28,101.73,35080000,101.73 +1978-09-19,103.21,103.82,102.12,102.53,31660000,102.53 +1978-09-18,104.12,105.03,102.75,103.21,35860000,103.21 +1978-09-15,105.10,105.12,103.56,104.12,37290000,104.12 +1978-09-14,106.34,106.62,104.77,105.10,37400000,105.10 +1978-09-13,106.99,107.85,105.87,106.34,43340000,106.34 +1978-09-12,106.98,107.48,106.02,106.99,34400000,106.99 +1978-09-11,106.79,108.05,106.42,106.98,39670000,106.98 +1978-09-08,105.50,107.19,105.50,106.79,42170000,106.79 +1978-09-07,105.38,106.49,104.76,105.42,40310000,105.42 +1978-09-06,104.51,106.19,104.51,105.38,42600000,105.38 +1978-09-05,103.68,104.83,103.31,104.49,32170000,104.49 +1978-09-01,103.29,104.27,102.73,103.68,35070000,103.68 +1978-08-31,103.50,104.05,102.63,103.29,33850000,103.29 +1978-08-30,103.39,104.26,102.70,103.50,37750000,103.50 +1978-08-29,103.96,104.34,102.92,103.39,33780000,103.39 +1978-08-28,104.90,105.14,103.61,103.96,31760000,103.96 +1978-08-25,105.08,105.68,104.24,104.90,36190000,104.90 +1978-08-24,104.91,105.86,104.29,105.08,38500000,105.08 +1978-08-23,104.31,105.68,104.12,104.91,39630000,104.91 +1978-08-22,103.89,104.79,103.14,104.31,29620000,104.31 +1978-08-21,104.73,105.20,103.44,103.89,29440000,103.89 +1978-08-18,105.08,105.98,104.23,104.73,34650000,104.73 +1978-08-17,104.65,106.27,104.34,105.08,45270000,105.08 +1978-08-16,103.85,105.15,103.41,104.65,36120000,104.65 +1978-08-15,103.97,104.38,102.86,103.85,29760000,103.85 +1978-08-14,103.96,104.98,103.40,103.97,32320000,103.97 +1978-08-11,103.66,104.67,102.85,103.96,33550000,103.96 +1978-08-10,104.50,105.11,103.10,103.66,39760000,103.66 +1978-08-09,104.01,105.72,103.70,104.50,48800000,104.50 +1978-08-08,103.55,104.35,102.60,104.01,34290000,104.01 +1978-08-07,103.92,104.84,103.03,103.55,33350000,103.55 +1978-08-04,103.51,104.67,102.75,103.92,37910000,103.92 +1978-08-03,102.92,105.41,102.82,103.51,66370000,103.51 +1978-08-02,100.66,103.21,100.18,102.92,47470000,102.92 +1978-08-01,100.68,101.46,99.95,100.66,34810000,100.66 +1978-07-31,100.00,101.18,99.37,100.68,33990000,100.68 +1978-07-28,99.54,100.51,98.90,100.00,33390000,100.00 +1978-07-27,99.08,100.17,98.60,99.54,33970000,99.54 +1978-07-26,99.08,99.08,99.08,99.08,36830000,99.08 +1978-07-25,97.72,98.73,97.20,98.44,25400000,98.44 +1978-07-24,97.75,98.13,96.72,97.72,23280000,97.72 +1978-07-21,98.03,98.57,97.02,97.75,26060000,97.75 +1978-07-20,98.12,99.18,97.49,98.03,33350000,98.03 +1978-07-19,96.87,98.41,96.71,98.12,30850000,98.12 +1978-07-18,97.78,97.98,96.52,96.87,22860000,96.87 +1978-07-17,97.58,98.84,97.24,97.78,29180000,97.78 +1978-07-14,96.25,97.88,95.89,97.58,28370000,97.58 +1978-07-13,96.24,96.66,95.42,96.25,23620000,96.25 +1978-07-12,95.93,96.83,95.50,96.24,26640000,96.24 +1978-07-11,95.27,96.49,94.92,95.93,27470000,95.93 +1978-07-10,94.89,95.67,94.28,95.27,22470000,95.27 +1978-07-07,94.32,95.32,94.02,94.89,23480000,94.89 +1978-07-06,94.27,94.83,93.59,94.32,24990000,94.32 +1978-07-05,95.09,95.20,93.78,94.27,23730000,94.27 +1978-07-03,95.53,95.65,94.62,95.09,11560000,95.09 +1978-06-30,95.57,95.96,94.87,95.53,18100000,95.53 +1978-06-29,95.40,96.26,95.00,95.57,21660000,95.57 +1978-06-28,94.98,95.79,94.44,95.40,23260000,95.40 +1978-06-27,94.60,95.48,93.99,94.98,29280000,94.98 +1978-06-26,95.85,96.06,94.31,94.60,29250000,94.60 +1978-06-23,96.24,96.98,95.49,95.85,28530000,95.85 +1978-06-22,96.01,96.76,95.52,96.24,27160000,96.24 +1978-06-21,96.51,96.74,95.42,96.01,29100000,96.01 +1978-06-20,97.49,97.78,96.15,96.51,27920000,96.51 +1978-06-19,97.42,97.94,96.53,97.49,25500000,97.49 +1978-06-16,98.34,98.59,97.10,97.42,27690000,97.42 +1978-06-15,99.48,99.54,97.97,98.34,29280000,98.34 +1978-06-14,99.57,100.68,98.89,99.48,37290000,99.48 +1978-06-13,99.55,99.98,98.43,99.57,30760000,99.57 +1978-06-12,99.93,100.60,99.16,99.55,24440000,99.55 +1978-06-09,100.21,100.71,99.30,99.93,32470000,99.93 +1978-06-08,100.12,101.21,99.55,100.21,39380000,100.21 +1978-06-07,100.32,100.81,99.36,100.12,33060000,100.12 +1978-06-06,99.95,101.84,99.90,100.32,51970000,100.32 +1978-06-05,98.14,100.27,97.97,99.95,39580000,99.95 +1978-06-02,97.35,98.52,97.01,98.14,31860000,98.14 +1978-06-01,97.24,97.95,96.63,97.35,28750000,97.35 +1978-05-31,96.86,97.97,96.50,97.24,29070000,97.24 +1978-05-30,96.58,97.23,95.95,96.86,21040000,96.86 +1978-05-26,96.80,97.14,96.01,96.58,21410000,96.58 +1978-05-25,97.08,97.80,96.30,96.80,28410000,96.80 +1978-05-24,97.74,97.74,96.27,97.08,31450000,97.08 +1978-05-23,99.09,99.17,97.53,98.05,33230000,98.05 +1978-05-22,98.12,99.43,97.65,99.09,28680000,99.09 +1978-05-19,98.62,99.06,97.42,98.12,34360000,98.12 +1978-05-18,99.60,100.04,98.19,98.62,42270000,98.62 +1978-05-17,99.35,100.32,98.63,99.60,45490000,99.60 +1978-05-16,98.76,100.16,98.61,99.35,48170000,99.35 +1978-05-15,98.07,99.11,97.40,98.76,33890000,98.76 +1978-05-12,97.20,98.89,97.14,98.07,46600000,98.07 +1978-05-11,95.92,97.47,95.60,97.20,36630000,97.20 +1978-05-10,95.90,96.69,95.35,95.92,33330000,95.92 +1978-05-09,96.19,96.68,95.33,95.90,30860000,95.90 +1978-05-08,96.53,97.50,95.82,96.19,34680000,96.19 +1978-05-05,95.93,97.44,95.56,96.53,42680000,96.53 +1978-05-04,96.26,96.43,94.57,95.93,37520000,95.93 +1978-05-03,97.25,97.61,95.84,96.26,37560000,96.26 +1978-05-02,97.67,98.11,96.44,97.25,41400000,97.25 +1978-05-01,96.83,98.30,96.41,97.67,37020000,97.67 +1978-04-28,95.86,97.10,95.24,96.83,32850000,96.83 +1978-04-27,96.82,96.93,95.30,95.86,35470000,95.86 +1978-04-26,96.64,97.75,95.96,96.82,44430000,96.82 +1978-04-25,96.05,97.91,96.05,96.64,55800000,96.64 +1978-04-24,94.34,96.00,94.08,95.77,34510000,95.77 +1978-04-21,94.54,95.09,93.71,94.34,31540000,94.34 +1978-04-20,93.97,95.71,93.97,94.54,43230000,94.54 +1978-04-19,93.43,94.48,92.75,93.86,35060000,93.86 +1978-04-18,94.45,94.72,92.87,93.43,38950000,93.43 +1978-04-17,93.60,95.89,93.60,94.45,63510000,94.45 +1978-04-14,91.40,93.31,91.40,92.92,52280000,92.92 +1978-04-13,90.11,91.27,89.82,90.98,31580000,90.98 +1978-04-12,90.25,90.78,89.65,90.11,26210000,90.11 +1978-04-11,90.49,90.79,89.77,90.25,24300000,90.25 +1978-04-10,90.17,90.88,89.73,90.49,25740000,90.49 +1978-04-07,89.79,90.59,89.39,90.17,25160000,90.17 +1978-04-06,89.64,90.46,89.31,89.79,27360000,89.79 +1978-04-05,88.86,89.91,88.62,89.64,27260000,89.64 +1978-04-04,88.46,89.18,88.16,88.86,20130000,88.86 +1978-04-03,89.20,89.20,88.07,88.46,20230000,88.46 +1978-03-31,89.41,89.64,88.68,89.21,20130000,89.21 +1978-03-30,89.64,89.89,88.97,89.41,20460000,89.41 +1978-03-29,89.50,90.17,89.14,89.64,25450000,89.64 +1978-03-28,88.87,89.76,88.47,89.50,21600000,89.50 +1978-03-27,89.36,89.50,88.51,88.87,18870000,88.87 +1978-03-23,89.47,89.90,88.83,89.36,21290000,89.36 +1978-03-22,89.79,90.07,88.99,89.47,21950000,89.47 +1978-03-21,90.82,91.06,89.50,89.79,24410000,89.79 +1978-03-20,90.20,91.35,90.10,90.82,28360000,90.82 +1978-03-17,89.51,90.52,89.17,90.20,28470000,90.20 +1978-03-16,89.12,89.77,88.58,89.51,25400000,89.51 +1978-03-15,89.35,89.73,88.52,89.12,23340000,89.12 +1978-03-14,88.95,89.62,88.21,89.35,24300000,89.35 +1978-03-13,88.88,89.77,88.48,88.95,24070000,88.95 +1978-03-10,87.89,89.25,87.82,88.88,27090000,88.88 +1978-03-09,87.84,88.49,87.34,87.89,21820000,87.89 +1978-03-08,87.36,88.08,86.97,87.84,22030000,87.84 +1978-03-07,86.90,87.63,86.55,87.36,19900000,87.36 +1978-03-06,87.45,87.52,86.48,86.90,17230000,86.90 +1978-03-03,87.32,87.98,86.83,87.45,20120000,87.45 +1978-03-02,87.19,87.81,86.69,87.32,20280000,87.32 +1978-03-01,87.04,87.63,86.45,87.19,21010000,87.19 +1978-02-28,87.72,87.76,86.58,87.04,19750000,87.04 +1978-02-27,88.49,88.97,87.49,87.72,19990000,87.72 +1978-02-24,87.66,88.87,87.66,88.49,22510000,88.49 +1978-02-23,87.56,87.92,86.83,87.64,18720000,87.64 +1978-02-22,87.59,88.15,87.19,87.56,18450000,87.56 +1978-02-21,87.96,88.19,87.09,87.59,21890000,87.59 +1978-02-17,88.08,88.70,87.55,87.96,18500000,87.96 +1978-02-16,88.77,88.77,87.64,88.08,21570000,88.08 +1978-02-15,89.04,89.40,88.30,88.83,20170000,88.83 +1978-02-14,89.86,89.89,88.70,89.04,20470000,89.04 +1978-02-13,90.08,90.30,89.38,89.86,16810000,89.86 +1978-02-10,90.30,90.69,89.56,90.08,19480000,90.08 +1978-02-09,90.83,90.96,89.84,90.30,17940000,90.30 +1978-02-08,90.33,91.32,90.09,90.83,21300000,90.83 +1978-02-07,89.50,90.53,89.38,90.33,14730000,90.33 +1978-02-06,89.62,89.85,88.95,89.50,11630000,89.50 +1978-02-03,90.13,90.32,89.19,89.62,19400000,89.62 +1978-02-02,89.93,90.91,89.54,90.13,23050000,90.13 +1978-02-01,89.25,90.24,88.82,89.93,22240000,89.93 +1978-01-31,89.34,89.92,88.61,89.25,19870000,89.25 +1978-01-30,88.58,89.67,88.26,89.34,17400000,89.34 +1978-01-27,88.58,89.10,88.02,88.58,17600000,88.58 +1978-01-26,89.39,89.79,88.31,88.58,19600000,88.58 +1978-01-25,89.25,89.94,88.83,89.39,18690000,89.39 +1978-01-24,89.24,89.80,88.67,89.25,18690000,89.25 +1978-01-23,89.89,90.08,88.81,89.24,19380000,89.24 +1978-01-20,90.09,90.27,89.41,89.89,7580000,89.89 +1978-01-19,90.56,91.04,89.74,90.09,21500000,90.09 +1978-01-18,89.88,90.86,89.59,90.56,21390000,90.56 +1978-01-17,89.43,90.31,89.05,89.88,19360000,89.88 +1978-01-16,89.69,90.11,88.88,89.43,18760000,89.43 +1978-01-13,89.82,90.47,89.26,89.69,18010000,89.69 +1978-01-12,89.74,90.60,89.25,89.82,22730000,89.82 +1978-01-11,90.17,90.70,89.23,89.74,22880000,89.74 +1978-01-10,90.64,91.29,89.72,90.17,25180000,90.17 +1978-01-09,91.48,91.48,89.97,90.64,27990000,90.64 +1978-01-06,92.66,92.66,91.05,91.62,26150000,91.62 +1978-01-05,93.52,94.53,92.51,92.74,23570000,92.74 +1978-01-04,93.82,94.10,92.57,93.52,24090000,93.52 +1978-01-03,95.10,95.15,93.49,93.82,17720000,93.82 +1977-12-30,94.94,95.67,94.44,95.10,23560000,95.10 +1977-12-29,94.75,95.43,94.10,94.94,23610000,94.94 +1977-12-28,94.69,95.20,93.99,94.75,19630000,94.75 +1977-12-27,94.69,95.21,94.09,94.69,16750000,94.69 +1977-12-23,93.80,94.99,93.75,94.69,20080000,94.69 +1977-12-22,93.05,94.37,93.05,93.80,28100000,93.80 +1977-12-21,92.50,93.58,92.20,93.05,24510000,93.05 +1977-12-20,92.69,93.00,91.76,92.50,23250000,92.50 +1977-12-19,93.40,93.71,92.42,92.69,21150000,92.69 +1977-12-16,93.55,94.04,92.93,93.40,20270000,93.40 +1977-12-15,94.03,94.42,93.23,93.55,21610000,93.55 +1977-12-14,93.56,94.26,92.94,94.03,22110000,94.03 +1977-12-13,93.63,94.04,92.90,93.56,19190000,93.56 +1977-12-12,93.65,94.29,93.18,93.63,18180000,93.63 +1977-12-09,92.96,94.11,92.77,93.65,19210000,93.65 +1977-12-08,92.78,93.76,92.51,92.96,20400000,92.96 +1977-12-07,92.83,93.39,92.15,92.78,21050000,92.78 +1977-12-06,94.09,94.09,92.44,92.83,23770000,92.83 +1977-12-05,94.67,95.01,93.91,94.27,19160000,94.27 +1977-12-02,94.69,95.25,94.08,94.67,21160000,94.67 +1977-12-01,94.83,95.45,94.23,94.69,24220000,94.69 +1977-11-30,94.55,95.17,93.78,94.83,22670000,94.83 +1977-11-29,96.04,96.09,94.28,94.55,22950000,94.55 +1977-11-28,96.69,96.98,95.67,96.04,21570000,96.04 +1977-11-25,96.49,97.11,95.86,96.69,17910000,96.69 +1977-11-23,96.09,96.94,95.60,96.49,29150000,96.49 +1977-11-22,95.25,96.52,95.05,96.09,28600000,96.09 +1977-11-21,95.33,95.77,94.59,95.25,20110000,95.25 +1977-11-18,95.16,95.88,94.70,95.33,23930000,95.33 +1977-11-17,95.45,95.88,94.59,95.16,25110000,95.16 +1977-11-16,95.93,96.47,95.06,95.45,24950000,95.45 +1977-11-15,95.32,96.47,94.73,95.93,27740000,95.93 +1977-11-14,95.98,96.38,94.91,95.32,23220000,95.32 +1977-11-11,95.10,96.49,95.10,95.98,35260000,95.98 +1977-11-10,92.98,95.10,92.69,94.71,31980000,94.71 +1977-11-09,92.46,93.27,92.01,92.98,21330000,92.98 +1977-11-08,92.29,92.97,91.82,92.46,19210000,92.46 +1977-11-07,91.58,92.70,91.32,92.29,21270000,92.29 +1977-11-04,90.76,91.97,90.72,91.58,21700000,91.58 +1977-11-03,90.71,91.18,90.01,90.76,18090000,90.76 +1977-11-02,91.35,91.59,90.29,90.71,20760000,90.71 +1977-11-01,92.19,92.19,91.00,91.35,17170000,91.35 +1977-10-31,92.61,93.03,91.85,92.34,17070000,92.34 +1977-10-28,92.34,93.13,91.88,92.61,18050000,92.61 +1977-10-27,92.10,93.15,91.54,92.34,21920000,92.34 +1977-10-26,91.00,92.46,90.44,92.10,24860000,92.10 +1977-10-25,91.63,91.71,90.20,91.00,23590000,91.00 +1977-10-24,92.32,92.62,91.36,91.63,19210000,91.63 +1977-10-21,92.67,92.99,91.80,92.32,20230000,92.32 +1977-10-20,92.38,93.12,91.60,92.67,20520000,92.67 +1977-10-19,93.46,93.71,92.07,92.38,22030000,92.38 +1977-10-18,93.47,94.19,93.01,93.46,20130000,93.46 +1977-10-17,93.56,94.03,92.87,93.47,17340000,93.47 +1977-10-14,93.46,94.19,92.88,93.56,20410000,93.56 +1977-10-13,94.04,94.32,92.89,93.46,23870000,93.46 +1977-10-12,94.82,94.82,93.40,94.04,22440000,94.04 +1977-10-11,95.75,95.97,94.73,94.93,17870000,94.93 +1977-10-10,95.97,96.15,95.32,95.75,10580000,95.75 +1977-10-07,96.05,96.51,95.48,95.97,16250000,95.97 +1977-10-06,95.68,96.45,95.30,96.05,18490000,96.05 +1977-10-05,96.03,96.36,95.20,95.68,18300000,95.68 +1977-10-04,96.74,97.27,95.73,96.03,20850000,96.03 +1977-10-03,96.53,97.11,95.86,96.74,19460000,96.74 +1977-09-30,95.85,96.85,95.66,96.53,21170000,96.53 +1977-09-29,95.31,96.28,95.09,95.85,21160000,95.85 +1977-09-28,95.24,95.91,94.73,95.31,17960000,95.31 +1977-09-27,95.38,96.01,94.76,95.24,19080000,95.24 +1977-09-26,95.04,95.68,94.44,95.38,18230000,95.38 +1977-09-23,95.09,95.69,94.60,95.04,18760000,95.04 +1977-09-22,95.10,95.61,94.51,95.09,16660000,95.09 +1977-09-21,95.89,96.52,94.83,95.10,22200000,95.10 +1977-09-20,95.85,96.29,95.23,95.89,19030000,95.89 +1977-09-19,96.48,96.59,95.46,95.85,16890000,95.85 +1977-09-16,96.80,97.30,96.05,96.48,18340000,96.48 +1977-09-15,96.55,97.31,96.15,96.80,18230000,96.80 +1977-09-14,96.09,96.88,95.66,96.55,17330000,96.55 +1977-09-13,96.03,96.56,95.48,96.09,14900000,96.09 +1977-09-12,96.37,96.64,95.37,96.03,18700000,96.03 +1977-09-09,97.10,97.10,95.97,96.37,18100000,96.37 +1977-09-08,98.01,98.43,97.01,97.28,18290000,97.28 +1977-09-07,97.71,98.38,97.33,98.01,18070000,98.01 +1977-09-06,97.45,98.13,96.93,97.71,16130000,97.71 +1977-09-02,96.83,97.76,96.51,97.45,15620000,97.45 +1977-09-01,96.77,97.54,96.35,96.83,18820000,96.83 +1977-08-31,96.38,97.00,95.59,96.77,19080000,96.77 +1977-08-30,96.92,97.55,96.04,96.38,18220000,96.38 +1977-08-29,96.06,97.25,95.93,96.92,15280000,96.92 +1977-08-26,96.15,96.42,95.04,96.06,18480000,96.06 +1977-08-25,97.18,97.18,95.81,96.15,19400000,96.15 +1977-08-24,97.62,97.99,96.77,97.23,18170000,97.23 +1977-08-23,97.79,98.52,97.18,97.62,20290000,97.62 +1977-08-22,97.51,98.29,96.84,97.79,17870000,97.79 +1977-08-19,97.68,98.29,96.78,97.51,20800000,97.51 +1977-08-18,97.74,98.69,97.21,97.68,21040000,97.68 +1977-08-17,97.73,98.40,97.12,97.74,20920000,97.74 +1977-08-16,98.18,98.60,97.35,97.73,19340000,97.73 +1977-08-15,97.88,98.56,97.14,98.18,15750000,98.18 +1977-08-12,98.16,98.51,97.31,97.88,16870000,97.88 +1977-08-11,98.92,99.45,97.90,98.16,21740000,98.16 +1977-08-10,98.05,99.06,97.67,98.92,18280000,98.92 +1977-08-09,97.99,98.63,97.48,98.05,19900000,98.05 +1977-08-08,98.76,98.86,97.68,97.99,15870000,97.99 +1977-08-05,98.74,99.44,98.31,98.76,19940000,98.76 +1977-08-04,98.37,99.19,97.79,98.74,18870000,98.74 +1977-08-03,98.50,98.86,97.53,98.37,21710000,98.37 +1977-08-02,99.12,99.27,98.14,98.50,17910000,98.50 +1977-08-01,98.85,99.84,98.46,99.12,17920000,99.12 +1977-07-29,98.79,99.21,97.71,98.85,20350000,98.85 +1977-07-28,98.64,99.36,97.78,98.79,26340000,98.79 +1977-07-27,100.27,100.29,98.31,98.64,26440000,98.64 +1977-07-26,100.85,100.92,99.72,100.27,21390000,100.27 +1977-07-25,101.67,101.85,100.46,100.85,20430000,100.85 +1977-07-22,101.59,102.28,101.02,101.67,23110000,101.67 +1977-07-21,101.73,102.19,100.85,101.59,26880000,101.59 +1977-07-20,101.79,102.57,101.14,101.73,29380000,101.73 +1977-07-19,100.95,102.17,100.68,101.79,31930000,101.79 +1977-07-18,100.18,101.40,99.94,100.95,29890000,100.95 +1977-07-15,99.59,100.68,99.28,100.18,29120000,100.18 +1977-07-13,99.45,99.99,98.83,99.59,23160000,99.59 +1977-07-12,99.55,100.01,98.81,99.45,22470000,99.45 +1977-07-11,99.79,100.16,98.90,99.55,19790000,99.55 +1977-07-08,99.93,100.62,99.37,99.79,23820000,99.79 +1977-07-07,99.58,100.30,99.12,99.93,21740000,99.93 +1977-07-06,100.09,100.41,99.20,99.58,21230000,99.58 +1977-07-05,100.10,100.72,99.62,100.09,16850000,100.09 +1977-07-01,100.48,100.76,99.63,100.10,18160000,100.10 +1977-06-30,100.11,100.88,99.68,100.48,19410000,100.48 +1977-06-29,100.14,100.49,99.30,100.11,19000000,100.11 +1977-06-28,100.98,101.36,99.87,100.14,22670000,100.14 +1977-06-27,101.19,101.63,100.47,100.98,19870000,100.98 +1977-06-24,100.62,101.65,100.41,101.19,27490000,101.19 +1977-06-23,100.46,101.10,99.88,100.62,24330000,100.62 +1977-06-22,100.74,101.07,99.90,100.46,25070000,100.46 +1977-06-21,100.42,101.41,100.16,100.74,29730000,100.74 +1977-06-20,99.97,100.76,99.56,100.42,22950000,100.42 +1977-06-17,99.85,100.47,99.34,99.97,21960000,99.97 +1977-06-16,99.61,100.33,98.91,99.85,24310000,99.85 +1977-06-15,99.86,100.31,99.12,99.61,22640000,99.61 +1977-06-14,98.76,100.12,98.76,99.86,25390000,99.86 +1977-06-13,98.46,99.21,98.06,98.74,20250000,98.74 +1977-06-10,98.14,98.86,97.68,98.46,20630000,98.46 +1977-06-09,98.20,98.62,97.51,98.14,19940000,98.14 +1977-06-08,97.73,98.75,97.49,98.20,22200000,98.20 +1977-06-07,97.23,98.01,96.60,97.73,21110000,97.73 +1977-06-06,97.69,98.26,96.89,97.23,18930000,97.23 +1977-06-03,96.74,98.12,96.55,97.69,20330000,97.69 +1977-06-02,96.93,97.53,96.23,96.74,18620000,96.74 +1977-06-01,96.12,97.27,95.89,96.93,18320000,96.93 +1977-05-31,96.27,96.75,95.52,96.12,17800000,96.12 +1977-05-27,97.01,97.26,95.92,96.27,15730000,96.27 +1977-05-26,96.77,97.47,96.20,97.01,18620000,97.01 +1977-05-25,97.67,98.14,96.50,96.77,20710000,96.77 +1977-05-24,98.15,98.25,97.00,97.67,20050000,97.67 +1977-05-23,99.35,99.35,97.88,98.15,18290000,98.15 +1977-05-20,99.88,100.12,98.91,99.45,18950000,99.45 +1977-05-19,100.30,100.74,99.49,99.88,21280000,99.88 +1977-05-18,99.77,100.93,99.58,100.30,27800000,100.30 +1977-05-17,99.47,100.11,98.76,99.77,22290000,99.77 +1977-05-16,99.03,99.98,98.79,99.47,21170000,99.47 +1977-05-13,98.73,99.52,98.37,99.03,19780000,99.03 +1977-05-12,98.78,99.25,97.91,98.73,21980000,98.73 +1977-05-11,99.47,99.77,98.40,98.78,18980000,98.78 +1977-05-10,99.18,100.09,98.82,99.47,21090000,99.47 +1977-05-09,99.49,99.78,98.66,99.18,15230000,99.18 +1977-05-06,100.11,100.20,98.95,99.49,19370000,99.49 +1977-05-05,99.96,100.79,99.28,100.11,23450000,100.11 +1977-05-04,99.43,100.56,98.90,99.96,23330000,99.96 +1977-05-03,98.93,99.96,98.72,99.43,21950000,99.43 +1977-05-02,98.44,99.26,97.97,98.93,17970000,98.93 +1977-04-29,98.20,98.87,97.58,98.44,18330000,98.44 +1977-04-28,97.96,98.77,97.47,98.20,18370000,98.20 +1977-04-27,97.11,98.47,96.90,97.96,20590000,97.96 +1977-04-26,97.15,97.94,96.53,97.11,20040000,97.11 +1977-04-25,98.32,98.32,96.54,97.15,20440000,97.15 +1977-04-22,99.67,99.67,98.08,98.44,20700000,98.44 +1977-04-21,100.40,101.20,99.35,99.75,22740000,99.75 +1977-04-20,100.07,100.98,99.49,100.40,25090000,100.40 +1977-04-19,100.54,100.81,99.58,100.07,19510000,100.07 +1977-04-18,101.04,101.36,100.09,100.54,17830000,100.54 +1977-04-15,101.00,101.63,100.35,101.04,20230000,101.04 +1977-04-14,100.42,102.07,100.42,101.00,30490000,101.00 +1977-04-13,100.15,100.72,99.02,100.16,21800000,100.16 +1977-04-12,98.97,100.58,98.97,100.15,23760000,100.15 +1977-04-11,98.35,99.37,98.08,98.88,17650000,98.88 +1977-04-07,97.91,98.65,97.48,98.35,17260000,98.35 +1977-04-06,98.01,98.61,97.45,97.91,16600000,97.91 +1977-04-05,98.23,98.60,97.43,98.01,18330000,98.01 +1977-04-04,99.21,99.50,97.98,98.23,16250000,98.23 +1977-04-01,98.42,99.57,98.38,99.21,17050000,99.21 +1977-03-31,98.54,99.14,97.80,98.42,16510000,98.42 +1977-03-30,99.69,99.99,98.18,98.54,18810000,98.54 +1977-03-29,99.00,100.12,98.95,99.69,17030000,99.69 +1977-03-28,99.06,99.54,98.35,99.00,16710000,99.00 +1977-03-25,99.70,100.05,98.71,99.06,16550000,99.06 +1977-03-24,100.20,100.60,99.26,99.70,19650000,99.70 +1977-03-23,101.00,101.42,99.88,100.20,19360000,100.20 +1977-03-22,101.31,101.58,100.35,101.00,18660000,101.00 +1977-03-21,101.86,102.13,100.92,101.31,18040000,101.31 +1977-03-18,102.08,102.61,101.39,101.86,19840000,101.86 +1977-03-17,102.17,102.58,101.28,102.08,20700000,102.08 +1977-03-16,101.98,102.70,101.52,102.17,22140000,102.17 +1977-03-15,101.42,102.61,101.34,101.98,23940000,101.98 +1977-03-14,100.65,101.75,100.24,101.42,19290000,101.42 +1977-03-11,100.67,101.37,100.14,100.65,18230000,100.65 +1977-03-10,100.10,100.96,99.49,100.67,18620000,100.67 +1977-03-09,100.87,100.89,99.63,100.10,19680000,100.10 +1977-03-08,101.25,101.85,100.48,100.87,19520000,100.87 +1977-03-07,101.20,101.77,100.64,101.25,17410000,101.25 +1977-03-04,100.88,101.67,100.52,101.20,18950000,101.20 +1977-03-03,100.39,101.28,100.01,100.88,17560000,100.88 +1977-03-02,100.66,101.24,99.97,100.39,18010000,100.39 +1977-03-01,99.82,101.03,99.65,100.66,19480000,100.66 +1977-02-28,99.48,100.06,98.91,99.82,16220000,99.82 +1977-02-25,99.60,100.02,98.82,99.48,17610000,99.48 +1977-02-24,100.19,100.42,99.18,99.60,19730000,99.60 +1977-02-23,100.49,100.95,99.78,100.19,18240000,100.19 +1977-02-22,100.49,101.22,99.94,100.49,17730000,100.49 +1977-02-18,100.92,101.13,99.95,100.49,18040000,100.49 +1977-02-17,101.50,101.76,100.43,100.92,19040000,100.92 +1977-02-16,101.04,102.22,100.68,101.50,23430000,101.50 +1977-02-15,100.74,101.67,100.35,101.04,21620000,101.04 +1977-02-14,100.22,101.06,99.51,100.74,19230000,100.74 +1977-02-11,100.82,101.18,99.74,100.22,20510000,100.22 +1977-02-10,100.73,101.51,100.16,100.82,22340000,100.82 +1977-02-09,101.60,101.88,100.12,100.73,23640000,100.73 +1977-02-08,101.89,102.65,101.16,101.60,24040000,101.60 +1977-02-07,101.88,102.43,101.25,101.89,20700000,101.89 +1977-02-04,101.85,102.71,101.30,101.88,23130000,101.88 +1977-02-03,102.36,102.57,101.28,101.85,23790000,101.85 +1977-02-02,102.54,103.32,101.89,102.36,25700000,102.36 +1977-02-01,102.03,103.06,101.57,102.54,23700000,102.54 +1977-01-31,101.93,102.44,100.91,102.03,22920000,102.03 +1977-01-28,101.79,102.61,101.08,101.93,22700000,101.93 +1977-01-27,102.34,102.81,101.27,101.79,24360000,101.79 +1977-01-26,103.13,103.48,101.84,102.34,27840000,102.34 +1977-01-25,103.25,104.08,102.42,103.13,26340000,103.13 +1977-01-24,103.32,104.06,102.50,103.25,22890000,103.25 +1977-01-21,102.97,103.91,102.35,103.32,23930000,103.32 +1977-01-20,103.85,104.45,102.50,102.97,26520000,102.97 +1977-01-19,103.32,104.38,102.83,103.85,27120000,103.85 +1977-01-18,103.73,104.29,102.71,103.32,24380000,103.32 +1977-01-17,104.01,104.37,103.04,103.73,21060000,103.73 +1977-01-14,104.20,104.71,103.37,104.01,24480000,104.01 +1977-01-13,103.40,104.60,103.21,104.20,24780000,104.20 +1977-01-12,104.12,104.18,102.75,103.40,22670000,103.40 +1977-01-11,105.20,105.60,103.76,104.12,24100000,104.12 +1977-01-10,105.01,105.75,104.46,105.20,20860000,105.20 +1977-01-07,105.02,105.59,104.30,105.01,21720000,105.01 +1977-01-06,104.76,105.86,104.40,105.02,23920000,105.02 +1977-01-05,105.70,106.07,104.33,104.76,25010000,104.76 +1977-01-04,107.00,107.31,105.40,105.70,22740000,105.70 +1977-01-03,107.46,107.97,106.42,107.00,21280000,107.00 +1976-12-31,106.88,107.82,106.55,107.46,19170000,107.46 +1976-12-30,106.34,107.41,105.97,106.88,23700000,106.88 +1976-12-29,106.77,107.17,105.83,106.34,21910000,106.34 +1976-12-28,106.06,107.36,105.90,106.77,25790000,106.77 +1976-12-27,104.84,106.31,104.58,106.06,20130000,106.06 +1976-12-23,104.71,105.49,104.09,104.84,24560000,104.84 +1976-12-22,104.22,105.59,104.03,104.71,26970000,104.71 +1976-12-21,103.65,104.66,102.99,104.22,24390000,104.22 +1976-12-20,104.26,104.63,103.21,103.65,20690000,103.65 +1976-12-17,104.80,105.60,103.89,104.26,23870000,104.26 +1976-12-16,105.14,105.53,104.07,104.80,23920000,104.80 +1976-12-15,105.07,105.89,104.33,105.14,28300000,105.14 +1976-12-14,104.63,105.44,103.80,105.07,25130000,105.07 +1976-12-13,104.70,105.33,103.94,104.63,24830000,104.63 +1976-12-10,104.51,105.36,103.90,104.70,25960000,104.70 +1976-12-09,104.08,105.27,103.71,104.51,31800000,104.51 +1976-12-08,103.49,104.40,102.94,104.08,24560000,104.08 +1976-12-07,103.56,104.40,102.96,103.49,26140000,103.49 +1976-12-06,102.76,104.15,102.53,103.56,24830000,103.56 +1976-12-03,102.12,103.31,101.75,102.76,22640000,102.76 +1976-12-02,102.49,103.30,101.70,102.12,23300000,102.12 +1976-12-01,102.10,103.03,101.62,102.49,21960000,102.49 +1976-11-30,102.44,102.72,101.46,102.10,17030000,102.10 +1976-11-29,103.15,103.46,102.07,102.44,18750000,102.44 +1976-11-26,102.41,103.51,102.13,103.15,15000000,103.15 +1976-11-24,101.96,102.85,101.41,102.41,20420000,102.41 +1976-11-23,102.59,102.90,101.50,101.96,19090000,101.96 +1976-11-22,101.92,103.15,101.63,102.59,20930000,102.59 +1976-11-19,101.89,102.77,101.17,101.92,24550000,101.92 +1976-11-18,100.61,102.22,100.49,101.89,24000000,101.89 +1976-11-17,100.04,101.32,99.64,100.61,19900000,100.61 +1976-11-16,99.90,101.12,99.44,100.04,21020000,100.04 +1976-11-15,99.24,100.16,98.53,99.90,16710000,99.90 +1976-11-12,99.64,99.95,98.51,99.24,15550000,99.24 +1976-11-11,98.81,99.89,98.35,99.64,13230000,99.64 +1976-11-10,99.32,99.98,98.18,98.81,18890000,98.81 +1976-11-09,99.60,100.21,98.38,99.32,19210000,99.32 +1976-11-08,100.62,100.62,99.10,99.60,16520000,99.60 +1976-11-05,102.41,102.70,100.48,100.82,20780000,100.82 +1976-11-04,101.92,103.16,101.40,102.41,21700000,102.41 +1976-11-03,102.49,102.49,100.73,101.92,19350000,101.92 +1976-11-01,102.90,103.78,102.19,103.10,18390000,103.10 +1976-10-29,101.61,103.10,101.15,102.90,17030000,102.90 +1976-10-28,101.76,102.50,101.12,101.61,16920000,101.61 +1976-10-27,101.06,102.12,100.61,101.76,15790000,101.76 +1976-10-26,100.07,101.50,99.91,101.06,15490000,101.06 +1976-10-25,99.96,100.60,99.21,100.07,13310000,100.07 +1976-10-22,100.77,100.93,99.24,99.96,17870000,99.96 +1976-10-21,101.74,102.32,100.49,100.77,17980000,100.77 +1976-10-20,101.45,102.23,100.81,101.74,15860000,101.74 +1976-10-19,101.47,102.04,100.42,101.45,16200000,101.45 +1976-10-18,100.88,101.99,100.62,101.47,15710000,101.47 +1976-10-15,100.85,101.50,100.02,100.88,16210000,100.88 +1976-10-14,102.12,102.14,100.28,100.85,18610000,100.85 +1976-10-13,100.81,102.44,100.54,102.12,21690000,102.12 +1976-10-12,101.64,102.19,100.38,100.81,18210000,100.81 +1976-10-11,102.48,102.48,100.98,101.64,14620000,101.64 +1976-10-08,103.54,104.00,102.24,102.56,16740000,102.56 +1976-10-07,102.97,103.90,102.16,103.54,19830000,103.54 +1976-10-06,103.23,103.72,102.05,102.97,20870000,102.97 +1976-10-05,104.03,104.25,102.51,103.23,19200000,103.23 +1976-10-04,104.17,104.62,103.42,104.03,12630000,104.03 +1976-10-01,105.24,105.75,103.60,104.17,20620000,104.17 +1976-09-30,105.37,105.84,104.57,105.24,14700000,105.24 +1976-09-29,105.92,106.45,104.83,105.37,18090000,105.37 +1976-09-28,107.27,107.54,105.61,105.92,20440000,105.92 +1976-09-27,106.80,107.70,106.35,107.27,17430000,107.27 +1976-09-24,106.92,107.36,106.03,106.80,17400000,106.80 +1976-09-23,107.46,107.96,106.40,106.92,24210000,106.92 +1976-09-22,107.83,108.72,106.92,107.46,32970000,107.46 +1976-09-21,106.32,108.13,106.09,107.83,30300000,107.83 +1976-09-20,106.27,107.20,105.74,106.32,21730000,106.32 +1976-09-17,105.34,106.81,105.14,106.27,28270000,106.27 +1976-09-16,104.25,105.59,103.84,105.34,19620000,105.34 +1976-09-15,103.94,104.70,103.28,104.25,17570000,104.25 +1976-09-14,104.29,104.50,103.31,103.94,15550000,103.94 +1976-09-13,104.65,105.29,103.88,104.29,16100000,104.29 +1976-09-10,104.40,105.03,103.79,104.65,16930000,104.65 +1976-09-09,104.94,105.12,103.91,104.40,16540000,104.40 +1976-09-08,105.03,105.73,104.34,104.94,19750000,104.94 +1976-09-07,104.30,105.31,103.93,105.03,16310000,105.03 +1976-09-03,103.92,104.63,103.36,104.30,13280000,104.30 +1976-09-02,104.06,104.84,103.47,103.92,18920000,103.92 +1976-09-01,102.91,104.30,102.60,104.06,18640000,104.06 +1976-08-31,102.07,103.38,101.94,102.91,15480000,102.91 +1976-08-30,101.48,102.51,101.22,102.07,11140000,102.07 +1976-08-27,101.32,101.90,100.55,101.48,12120000,101.48 +1976-08-26,102.03,102.59,101.01,101.32,15270000,101.32 +1976-08-25,101.27,102.41,100.43,102.03,17400000,102.03 +1976-08-24,101.96,102.65,100.98,101.27,16740000,101.27 +1976-08-23,102.37,102.49,101.04,101.96,15450000,101.96 +1976-08-20,103.31,103.31,101.96,102.37,14920000,102.37 +1976-08-19,104.56,104.74,103.01,103.39,17230000,103.39 +1976-08-18,104.80,105.41,104.12,104.56,17150000,104.56 +1976-08-17,104.43,105.25,103.98,104.80,18500000,104.80 +1976-08-16,104.25,104.99,103.74,104.43,16210000,104.43 +1976-08-13,104.22,104.79,103.61,104.25,13930000,104.25 +1976-08-12,104.06,104.64,103.38,104.22,15560000,104.22 +1976-08-11,104.41,105.24,103.73,104.06,18710000,104.06 +1976-08-10,103.49,104.71,103.21,104.41,16690000,104.41 +1976-08-09,103.79,104.02,103.01,103.49,11700000,103.49 +1976-08-06,103.85,104.25,103.10,103.79,13930000,103.79 +1976-08-05,104.43,104.76,103.48,103.85,15530000,103.85 +1976-08-04,104.14,105.18,103.72,104.43,20650000,104.43 +1976-08-03,103.19,104.49,102.79,104.14,18500000,104.14 +1976-08-02,103.44,103.98,102.64,103.19,13870000,103.19 +1976-07-30,102.93,103.88,102.47,103.44,14830000,103.44 +1976-07-29,103.05,103.59,102.36,102.93,13330000,102.93 +1976-07-28,103.48,103.58,102.31,103.05,16000000,103.05 +1976-07-27,104.07,104.51,103.13,103.48,15580000,103.48 +1976-07-26,104.06,104.69,103.46,104.07,13530000,104.07 +1976-07-23,103.93,104.71,103.49,104.06,15870000,104.06 +1976-07-22,103.82,104.42,103.15,103.93,15600000,103.93 +1976-07-21,103.72,104.56,103.21,103.82,18350000,103.82 +1976-07-20,104.29,104.57,103.05,103.72,18810000,103.72 +1976-07-19,104.68,105.32,103.84,104.29,18200000,104.29 +1976-07-16,105.20,105.27,103.87,104.68,20450000,104.68 +1976-07-15,105.95,106.25,104.76,105.20,20400000,105.20 +1976-07-14,105.67,106.61,105.05,105.95,23840000,105.95 +1976-07-13,105.90,106.78,105.15,105.67,27550000,105.67 +1976-07-12,104.98,106.30,104.74,105.90,23750000,105.90 +1976-07-09,103.98,105.41,103.80,104.98,23500000,104.98 +1976-07-08,103.83,104.75,103.44,103.98,21710000,103.98 +1976-07-07,103.54,104.23,102.80,103.83,18470000,103.83 +1976-07-06,104.11,104.67,103.19,103.54,16130000,103.54 +1976-07-02,103.59,104.53,103.13,104.11,16730000,104.11 +1976-07-01,104.28,104.98,103.14,103.59,21130000,103.59 +1976-06-30,103.86,105.07,103.52,104.28,23830000,104.28 +1976-06-29,103.43,104.33,102.95,103.86,19620000,103.86 +1976-06-28,103.72,104.35,102.97,103.43,17490000,103.43 +1976-06-25,103.79,104.54,103.17,103.72,17830000,103.72 +1976-06-24,103.25,104.37,102.90,103.79,19850000,103.79 +1976-06-23,103.47,103.90,102.40,103.25,17530000,103.25 +1976-06-22,104.28,104.82,103.16,103.47,21150000,103.47 +1976-06-21,103.76,104.73,103.18,104.28,18930000,104.28 +1976-06-18,103.61,104.80,103.06,103.76,25720000,103.76 +1976-06-17,102.01,104.12,101.97,103.61,27810000,103.61 +1976-06-16,101.46,102.65,100.96,102.01,21620000,102.01 +1976-06-15,101.95,102.39,100.84,101.46,18440000,101.46 +1976-06-14,101.00,102.51,101.00,101.95,21250000,101.95 +1976-06-11,99.56,101.22,99.38,100.92,19470000,100.92 +1976-06-10,98.74,99.98,98.55,99.56,16100000,99.56 +1976-06-09,98.80,99.49,98.23,98.74,14560000,98.74 +1976-06-08,98.63,99.71,98.32,98.80,16660000,98.80 +1976-06-07,99.15,99.39,97.97,98.63,14510000,98.63 +1976-06-04,100.13,100.27,98.79,99.15,15960000,99.15 +1976-06-03,100.22,101.10,99.68,100.13,18900000,100.13 +1976-06-02,99.85,100.69,99.26,100.22,16120000,100.22 +1976-06-01,100.18,100.74,99.36,99.85,13880000,99.85 +1976-05-28,99.38,100.64,99.00,100.18,16860000,100.18 +1976-05-27,99.34,99.77,98.26,99.38,15310000,99.38 +1976-05-26,99.49,100.14,98.65,99.34,16750000,99.34 +1976-05-25,99.44,100.02,98.48,99.49,18770000,99.49 +1976-05-24,101.07,101.07,99.11,99.44,16560000,99.44 +1976-05-21,102.00,102.34,100.81,101.26,18730000,101.26 +1976-05-20,101.18,102.53,100.69,102.00,22560000,102.00 +1976-05-19,101.26,102.01,100.55,101.18,18450000,101.18 +1976-05-18,101.09,102.00,100.72,101.26,17410000,101.26 +1976-05-17,101.34,101.71,100.41,101.09,14720000,101.09 +1976-05-14,102.16,102.23,100.82,101.34,16800000,101.34 +1976-05-13,102.77,103.03,101.73,102.16,16730000,102.16 +1976-05-12,102.95,103.55,102.14,102.77,18510000,102.77 +1976-05-11,103.10,103.99,102.39,102.95,23590000,102.95 +1976-05-10,101.88,103.51,101.76,103.10,22760000,103.10 +1976-05-07,101.16,102.27,100.77,101.88,17810000,101.88 +1976-05-06,100.88,101.70,100.31,101.16,16200000,101.16 +1976-05-05,101.46,101.92,100.45,100.88,14970000,100.88 +1976-05-04,100.92,101.93,100.29,101.46,17240000,101.46 +1976-05-03,101.64,101.73,100.14,100.92,15180000,100.92 +1976-04-30,102.13,102.65,101.16,101.64,14530000,101.64 +1976-04-29,102.13,102.97,101.45,102.13,17740000,102.13 +1976-04-28,101.86,102.46,100.91,102.13,15790000,102.13 +1976-04-27,102.43,103.18,101.51,101.86,17760000,101.86 +1976-04-26,102.29,102.80,101.36,102.43,15520000,102.43 +1976-04-23,102.98,103.21,101.70,102.29,17000000,102.29 +1976-04-22,103.32,104.04,102.52,102.98,20220000,102.98 +1976-04-21,102.87,104.03,102.30,103.32,26600000,103.32 +1976-04-20,101.44,103.32,101.42,102.87,23500000,102.87 +1976-04-19,100.67,101.83,100.32,101.44,16500000,101.44 +1976-04-15,100.31,101.18,99.73,100.67,15100000,100.67 +1976-04-14,101.05,101.77,99.98,100.31,18440000,100.31 +1976-04-13,100.20,101.39,99.64,101.05,15990000,101.05 +1976-04-12,100.35,101.30,99.57,100.20,16030000,100.20 +1976-04-09,101.28,101.74,99.87,100.35,19050000,100.35 +1976-04-08,102.21,102.38,100.53,101.28,20860000,101.28 +1976-04-07,103.36,103.85,101.92,102.21,20190000,102.21 +1976-04-06,103.51,104.63,102.93,103.36,24170000,103.36 +1976-04-05,102.32,104.13,102.32,103.51,21940000,103.51 +1976-04-02,102.24,102.76,101.23,102.25,17420000,102.25 +1976-04-01,102.77,103.24,101.50,102.24,17910000,102.24 +1976-03-31,102.01,103.08,101.60,102.77,17520000,102.77 +1976-03-30,102.41,103.36,101.25,102.01,17930000,102.01 +1976-03-29,102.85,103.36,101.99,102.41,16100000,102.41 +1976-03-26,102.85,103.65,102.20,102.85,18510000,102.85 +1976-03-25,103.42,104.00,102.19,102.85,22510000,102.85 +1976-03-24,102.51,104.39,102.51,103.42,32610000,103.42 +1976-03-23,100.71,102.54,100.32,102.24,22450000,102.24 +1976-03-22,100.58,101.53,100.14,100.71,19410000,100.71 +1976-03-19,100.45,101.23,99.70,100.58,18090000,100.58 +1976-03-18,100.86,101.37,99.73,100.45,20330000,100.45 +1976-03-17,100.92,102.01,100.28,100.86,26190000,100.86 +1976-03-16,99.80,101.25,99.38,100.92,22780000,100.92 +1976-03-15,100.86,100.90,99.24,99.80,19570000,99.80 +1976-03-12,101.89,102.46,100.49,100.86,26020000,100.86 +1976-03-11,100.94,102.41,100.62,101.89,27300000,101.89 +1976-03-10,100.58,101.80,99.98,100.94,24900000,100.94 +1976-03-09,100.19,101.90,99.95,100.58,31770000,100.58 +1976-03-08,99.11,100.71,98.93,100.19,25060000,100.19 +1976-03-05,98.92,99.88,98.23,99.11,23030000,99.11 +1976-03-04,99.98,100.40,98.49,98.92,24410000,98.92 +1976-03-03,100.58,100.97,99.23,99.98,25450000,99.98 +1976-03-02,100.02,101.26,99.61,100.58,25590000,100.58 +1976-03-01,99.71,100.64,98.67,100.02,22070000,100.02 +1976-02-27,100.11,100.53,98.60,99.71,26940000,99.71 +1976-02-26,101.69,102.36,99.74,100.11,34320000,100.11 +1976-02-25,102.03,102.71,100.69,101.69,34680000,101.69 +1976-02-24,101.61,102.92,101.03,102.03,34380000,102.03 +1976-02-23,102.10,102.54,100.69,101.61,31460000,101.61 +1976-02-20,101.41,103.07,101.18,102.10,44510000,102.10 +1976-02-19,99.94,101.92,99.94,101.41,39210000,101.41 +1976-02-18,99.05,100.43,98.50,99.85,29900000,99.85 +1976-02-17,99.67,100.25,98.56,99.05,25460000,99.05 +1976-02-13,100.25,100.66,99.01,99.67,23870000,99.67 +1976-02-12,100.77,101.55,99.82,100.25,28610000,100.25 +1976-02-11,100.47,101.80,100.10,100.77,32300000,100.77 +1976-02-10,99.62,100.96,99.11,100.47,27660000,100.47 +1976-02-09,99.46,100.66,98.77,99.62,25340000,99.62 +1976-02-06,100.39,100.53,98.64,99.46,27360000,99.46 +1976-02-05,101.91,102.30,100.06,100.39,33780000,100.39 +1976-02-04,101.18,102.57,100.70,101.91,38270000,101.91 +1976-02-03,100.87,101.97,99.58,101.18,34080000,101.18 +1976-02-02,100.86,101.39,99.74,100.87,24000000,100.87 +1976-01-30,100.11,101.99,99.94,100.86,38510000,100.86 +1976-01-29,98.53,100.54,98.32,100.11,29800000,100.11 +1976-01-28,99.07,99.64,97.66,98.53,27370000,98.53 +1976-01-27,99.68,100.52,98.28,99.07,32070000,99.07 +1976-01-26,99.21,100.75,98.92,99.68,34470000,99.68 +1976-01-23,98.04,99.88,97.68,99.21,33640000,99.21 +1976-01-22,98.24,98.79,97.07,98.04,27420000,98.04 +1976-01-21,98.86,99.24,97.12,98.24,34470000,98.24 +1976-01-20,98.32,99.44,97.43,98.86,36690000,98.86 +1976-01-19,97.00,98.84,96.36,98.32,29450000,98.32 +1976-01-16,96.61,97.73,95.84,97.00,25940000,97.00 +1976-01-15,97.13,98.34,96.15,96.61,38450000,96.61 +1976-01-14,95.57,97.47,94.91,97.13,30340000,97.13 +1976-01-13,96.33,97.39,95.11,95.57,34530000,95.57 +1976-01-12,94.95,96.76,94.38,96.33,30440000,96.33 +1976-01-09,94.58,95.71,94.05,94.95,26510000,94.95 +1976-01-08,93.95,95.47,93.41,94.58,29030000,94.58 +1976-01-07,93.53,95.15,92.91,93.95,33170000,93.95 +1976-01-06,92.58,94.18,92.37,93.53,31270000,93.53 +1976-01-05,90.90,92.84,90.85,92.58,21960000,92.58 +1976-01-02,90.19,91.18,89.81,90.90,10300000,90.90 +1975-12-31,89.77,90.75,89.17,90.19,16970000,90.19 +1975-12-30,90.13,90.55,89.20,89.77,16040000,89.77 +1975-12-29,90.25,91.09,89.63,90.13,17070000,90.13 +1975-12-26,89.46,90.45,89.25,90.25,10020000,90.25 +1975-12-24,88.73,89.84,88.73,89.46,11150000,89.46 +1975-12-23,88.14,89.23,87.64,88.73,17750000,88.73 +1975-12-22,88.80,89.13,87.74,88.14,15340000,88.14 +1975-12-19,89.43,89.81,88.39,88.80,17720000,88.80 +1975-12-18,89.15,90.09,88.62,89.43,18040000,89.43 +1975-12-17,88.93,89.80,88.46,89.15,16560000,89.15 +1975-12-16,88.09,89.49,87.78,88.93,18350000,88.93 +1975-12-15,87.83,88.64,87.32,88.09,13960000,88.09 +1975-12-12,87.80,88.22,87.05,87.83,13100000,87.83 +1975-12-11,88.08,88.79,87.41,87.80,15300000,87.80 +1975-12-10,87.30,88.39,86.91,88.08,15680000,88.08 +1975-12-09,87.07,87.80,86.16,87.30,16040000,87.30 +1975-12-08,86.82,87.75,86.15,87.07,14150000,87.07 +1975-12-05,87.84,88.38,86.54,86.82,14050000,86.82 +1975-12-04,87.60,88.39,86.68,87.84,16380000,87.84 +1975-12-03,88.83,88.83,87.08,87.60,21320000,87.60 +1975-12-02,90.67,90.81,89.08,89.33,17930000,89.33 +1975-12-01,91.24,91.90,90.33,90.67,16050000,90.67 +1975-11-28,90.94,91.74,90.44,91.24,12870000,91.24 +1975-11-26,90.71,91.58,90.17,90.94,18780000,90.94 +1975-11-25,89.70,91.10,89.66,90.71,17490000,90.71 +1975-11-24,89.53,90.17,88.65,89.70,13930000,89.70 +1975-11-21,89.64,90.23,88.79,89.53,14110000,89.53 +1975-11-20,89.98,90.68,89.09,89.64,16460000,89.64 +1975-11-19,91.00,91.28,89.47,89.98,16820000,89.98 +1975-11-18,91.46,92.30,90.60,91.00,20760000,91.00 +1975-11-17,90.97,91.99,90.50,91.46,17660000,91.46 +1975-11-14,91.04,91.59,90.19,90.97,16460000,90.97 +1975-11-13,91.19,92.33,90.56,91.04,25070000,91.04 +1975-11-12,89.87,91.63,89.80,91.19,23960000,91.19 +1975-11-11,89.34,90.47,89.04,89.87,14640000,89.87 +1975-11-10,89.33,89.98,88.35,89.34,14910000,89.34 +1975-11-07,89.55,90.18,88.67,89.33,15930000,89.33 +1975-11-06,89.15,90.15,88.16,89.55,18600000,89.55 +1975-11-05,88.51,90.08,88.32,89.15,17390000,89.15 +1975-11-04,88.09,89.03,87.63,88.51,11570000,88.51 +1975-11-03,89.04,89.21,87.78,88.09,11400000,88.09 +1975-10-31,89.31,89.80,88.35,89.04,12910000,89.04 +1975-10-30,89.39,90.20,88.70,89.31,15080000,89.31 +1975-10-29,90.51,90.61,88.89,89.39,16110000,89.39 +1975-10-28,89.73,91.01,89.40,90.51,17060000,90.51 +1975-10-27,89.83,90.40,88.85,89.73,13100000,89.73 +1975-10-24,91.24,91.52,89.46,89.83,18120000,89.83 +1975-10-23,90.71,91.75,90.09,91.24,17900000,91.24 +1975-10-22,90.56,91.38,89.77,90.71,16060000,90.71 +1975-10-21,89.82,91.43,89.79,90.56,20800000,90.56 +1975-10-20,88.86,90.14,88.43,89.82,13250000,89.82 +1975-10-17,89.37,89.87,88.08,88.86,15650000,88.86 +1975-10-16,89.23,90.73,88.90,89.37,18910000,89.37 +1975-10-15,89.28,90.07,88.50,89.23,14440000,89.23 +1975-10-14,89.46,90.80,88.81,89.28,19960000,89.28 +1975-10-13,88.21,89.67,87.73,89.46,12020000,89.46 +1975-10-10,88.37,89.17,87.44,88.21,14880000,88.21 +1975-10-09,87.94,89.42,87.60,88.37,17770000,88.37 +1975-10-08,86.77,88.46,86.34,87.94,17800000,87.94 +1975-10-07,86.88,87.32,85.56,86.77,13530000,86.77 +1975-10-06,85.98,87.64,85.98,86.88,15470000,86.88 +1975-10-03,83.88,86.21,83.88,85.95,16360000,85.95 +1975-10-02,82.93,84.33,82.82,83.82,14290000,83.82 +1975-10-01,83.87,85.45,82.57,82.93,14070000,82.93 +1975-09-30,85.01,85.01,83.44,83.87,12520000,83.87 +1975-09-29,86.19,86.38,84.74,85.03,10580000,85.03 +1975-09-26,85.64,86.86,85.13,86.19,12570000,86.19 +1975-09-25,85.74,86.41,84.79,85.64,12890000,85.64 +1975-09-24,85.03,86.70,85.03,85.74,16060000,85.74 +1975-09-23,85.07,85.51,83.80,84.94,12800000,84.94 +1975-09-22,85.88,86.70,84.70,85.07,14750000,85.07 +1975-09-19,84.26,86.39,84.26,85.88,20830000,85.88 +1975-09-18,82.37,84.34,82.23,84.06,14560000,84.06 +1975-09-17,82.09,82.93,81.57,82.37,12190000,82.37 +1975-09-16,82.88,83.43,81.79,82.09,13090000,82.09 +1975-09-15,83.30,83.49,82.29,82.88,8670000,82.88 +1975-09-12,83.45,84.47,82.84,83.30,12230000,83.30 +1975-09-11,83.79,84.30,82.88,83.45,11100000,83.45 +1975-09-10,84.59,84.59,83.00,83.79,14780000,83.79 +1975-09-09,85.89,86.73,84.37,84.60,15790000,84.60 +1975-09-08,85.62,86.31,84.89,85.89,11500000,85.89 +1975-09-05,86.20,86.49,85.19,85.62,11680000,85.62 +1975-09-04,86.03,86.91,85.29,86.20,12810000,86.20 +1975-09-03,85.48,86.38,84.62,86.03,12260000,86.03 +1975-09-02,86.88,87.42,85.21,85.48,11460000,85.48 +1975-08-29,86.40,87.73,86.10,86.88,15480000,86.88 +1975-08-28,84.68,86.64,84.68,86.40,14530000,86.40 +1975-08-27,83.96,84.79,83.35,84.43,11100000,84.43 +1975-08-26,85.06,85.40,83.65,83.96,11350000,83.96 +1975-08-25,84.28,85.58,84.06,85.06,11250000,85.06 +1975-08-22,83.07,84.61,82.79,84.28,13050000,84.28 +1975-08-21,83.22,84.15,82.21,83.07,16610000,83.07 +1975-08-20,84.78,84.78,82.76,83.22,18630000,83.22 +1975-08-19,86.20,86.47,84.66,84.95,14990000,84.95 +1975-08-18,86.36,87.21,85.76,86.20,10810000,86.20 +1975-08-15,85.60,86.76,85.33,86.36,10610000,86.36 +1975-08-14,85.97,86.34,85.02,85.60,12460000,85.60 +1975-08-13,87.12,87.41,85.61,85.97,12000000,85.97 +1975-08-12,86.55,88.17,86.49,87.12,14510000,87.12 +1975-08-11,86.02,86.89,85.34,86.55,12350000,86.55 +1975-08-08,86.30,87.00,85.52,86.02,11660000,86.02 +1975-08-07,86.25,87.24,85.69,86.30,12390000,86.30 +1975-08-06,86.23,87.04,85.34,86.25,16280000,86.25 +1975-08-05,87.15,87.81,85.89,86.23,15470000,86.23 +1975-08-04,87.99,88.17,86.68,87.15,12620000,87.15 +1975-08-01,88.75,89.04,87.46,87.99,13320000,87.99 +1975-07-31,88.83,90.07,88.31,88.75,14540000,88.75 +1975-07-30,88.19,89.49,87.68,88.83,16150000,88.83 +1975-07-29,88.69,89.91,87.71,88.19,19000000,88.19 +1975-07-28,89.29,89.68,88.02,88.69,14850000,88.69 +1975-07-25,90.07,90.72,88.72,89.29,15110000,89.29 +1975-07-24,90.18,90.95,88.90,90.07,20550000,90.07 +1975-07-23,91.45,92.15,89.83,90.18,20150000,90.18 +1975-07-22,92.44,92.49,90.63,91.45,20660000,91.45 +1975-07-21,93.20,93.93,92.03,92.44,16690000,92.44 +1975-07-18,93.63,93.96,92.39,93.20,16870000,93.20 +1975-07-17,94.61,95.03,92.99,93.63,21420000,93.63 +1975-07-16,95.61,96.37,94.20,94.61,25250000,94.61 +1975-07-15,95.19,96.58,94.71,95.61,28340000,95.61 +1975-07-14,94.66,95.76,94.04,95.19,21900000,95.19 +1975-07-11,94.81,95.69,93.83,94.66,22210000,94.66 +1975-07-10,94.80,96.19,94.25,94.81,28880000,94.81 +1975-07-09,93.39,95.22,93.38,94.80,26350000,94.80 +1975-07-08,93.54,94.03,92.51,93.39,18990000,93.39 +1975-07-07,94.36,94.82,93.16,93.54,15850000,93.54 +1975-07-03,94.18,95.04,93.49,94.36,19000000,94.36 +1975-07-02,94.85,94.91,93.37,94.18,18530000,94.18 +1975-07-01,95.19,95.73,94.13,94.85,20390000,94.85 +1975-06-30,94.81,95.85,94.30,95.19,19430000,95.19 +1975-06-27,94.81,95.66,94.10,94.81,18820000,94.81 +1975-06-26,94.62,95.72,93.88,94.81,24560000,94.81 +1975-06-25,94.19,95.29,93.53,94.62,21610000,94.62 +1975-06-24,93.62,95.23,93.31,94.19,26620000,94.19 +1975-06-23,92.61,93.98,91.81,93.62,20720000,93.62 +1975-06-20,92.02,93.75,91.83,92.61,26260000,92.61 +1975-06-19,90.39,92.37,90.12,92.02,21450000,92.02 +1975-06-18,90.58,91.07,89.60,90.39,15590000,90.39 +1975-06-17,91.46,92.22,90.17,90.58,19440000,90.58 +1975-06-16,90.52,91.85,90.12,91.46,16660000,91.46 +1975-06-13,90.08,91.06,89.30,90.52,16300000,90.52 +1975-06-12,90.55,91.36,89.64,90.08,15970000,90.08 +1975-06-11,90.44,91.67,90.00,90.55,18230000,90.55 +1975-06-10,91.21,91.21,89.46,90.44,21130000,90.44 +1975-06-09,92.48,92.87,90.91,91.21,20670000,91.21 +1975-06-06,92.69,93.60,91.75,92.48,22230000,92.48 +1975-06-05,92.60,93.16,91.41,92.69,21610000,92.69 +1975-06-04,92.89,93.61,91.82,92.60,24900000,92.60 +1975-06-03,92.58,93.76,91.88,92.89,26560000,92.89 +1975-06-02,91.32,93.41,91.32,92.58,28240000,92.58 +1975-05-30,89.87,91.62,89.87,91.15,22670000,91.15 +1975-05-29,89.71,90.59,88.83,89.68,18570000,89.68 +1975-05-28,90.34,91.14,89.07,89.71,21850000,89.71 +1975-05-27,90.58,91.29,89.60,90.34,17050000,90.34 +1975-05-23,89.39,91.02,89.30,90.58,17870000,90.58 +1975-05-22,89.06,90.30,88.35,89.39,17610000,89.39 +1975-05-21,90.07,90.25,88.47,89.06,17640000,89.06 +1975-05-20,90.53,91.45,89.58,90.07,18310000,90.07 +1975-05-19,90.43,91.07,88.98,90.53,17870000,90.53 +1975-05-16,91.41,91.59,89.74,90.43,16630000,90.43 +1975-05-15,92.27,93.51,90.94,91.41,27690000,91.41 +1975-05-14,91.58,93.23,91.17,92.27,29050000,92.27 +1975-05-13,90.61,92.26,89.99,91.58,24950000,91.58 +1975-05-12,90.53,91.67,89.91,90.61,22410000,90.61 +1975-05-09,89.56,91.24,89.33,90.53,28440000,90.53 +1975-05-08,89.08,90.13,88.23,89.56,22980000,89.56 +1975-05-07,88.64,89.75,87.60,89.08,22250000,89.08 +1975-05-06,90.08,90.86,88.15,88.64,25410000,88.64 +1975-05-05,89.22,90.82,88.26,90.08,22370000,90.08 +1975-05-02,88.10,89.98,87.91,89.22,25210000,89.22 +1975-05-01,87.30,89.10,86.94,88.10,20660000,88.10 +1975-04-30,85.64,87.61,85.00,87.30,18060000,87.30 +1975-04-29,86.23,86.79,85.04,85.64,17740000,85.64 +1975-04-28,86.62,87.33,85.54,86.23,17850000,86.23 +1975-04-25,86.04,87.50,85.62,86.62,20260000,86.62 +1975-04-24,86.12,86.92,85.00,86.04,19050000,86.04 +1975-04-23,87.09,87.42,85.65,86.12,20040000,86.12 +1975-04-22,87.23,88.64,86.58,87.09,26120000,87.09 +1975-04-21,86.30,87.99,85.92,87.23,23960000,87.23 +1975-04-18,87.25,87.59,85.53,86.30,26610000,86.30 +1975-04-17,86.60,88.79,86.43,87.25,32650000,87.25 +1975-04-16,86.30,87.10,84.93,86.60,22970000,86.60 +1975-04-15,85.60,87.24,85.03,86.30,29620000,86.30 +1975-04-14,84.18,86.12,83.98,85.60,26800000,85.60 +1975-04-11,83.77,84.68,82.93,84.18,20160000,84.18 +1975-04-10,82.84,84.70,82.68,83.77,24990000,83.77 +1975-04-09,80.99,83.22,80.91,82.84,18120000,82.84 +1975-04-08,80.35,81.65,80.13,80.99,14320000,80.99 +1975-04-07,80.88,81.11,79.66,80.35,13860000,80.35 +1975-04-04,81.51,81.90,80.29,80.88,14170000,80.88 +1975-04-03,82.43,82.84,80.88,81.51,13920000,81.51 +1975-04-02,82.64,83.57,81.80,82.43,15600000,82.43 +1975-04-01,83.36,83.59,81.98,82.64,14480000,82.64 +1975-03-31,83.85,84.62,82.84,83.36,16270000,83.36 +1975-03-27,83.59,84.88,83.04,83.85,18300000,83.85 +1975-03-26,82.16,84.24,82.16,83.59,18580000,83.59 +1975-03-25,81.42,82.67,80.08,82.06,18500000,82.06 +1975-03-24,82.39,82.39,80.60,81.42,17810000,81.42 +1975-03-21,83.61,84.11,82.52,83.39,15940000,83.39 +1975-03-20,84.34,85.30,83.02,83.61,20960000,83.61 +1975-03-19,85.13,85.17,83.43,84.34,19030000,84.34 +1975-03-18,86.01,87.08,84.75,85.13,29180000,85.13 +1975-03-17,84.76,86.52,84.39,86.01,26780000,86.01 +1975-03-14,83.74,85.43,83.50,84.76,24840000,84.76 +1975-03-13,83.59,84.26,82.52,83.74,18620000,83.74 +1975-03-12,84.36,84.73,82.87,83.59,21560000,83.59 +1975-03-11,84.95,85.89,83.80,84.36,31280000,84.36 +1975-03-10,84.30,85.47,83.43,84.95,25890000,84.95 +1975-03-07,83.69,85.14,83.25,84.30,25930000,84.30 +1975-03-06,83.90,84.17,81.94,83.69,21780000,83.69 +1975-03-05,83.56,84.71,82.16,83.90,24120000,83.90 +1975-03-04,83.03,85.43,82.85,83.56,34140000,83.56 +1975-03-03,81.59,83.46,81.32,83.03,24100000,83.03 +1975-02-28,80.77,82.02,80.07,81.59,17560000,81.59 +1975-02-27,80.37,81.64,80.06,80.77,16430000,80.77 +1975-02-26,79.53,80.89,78.91,80.37,18790000,80.37 +1975-02-25,81.09,81.09,79.05,79.53,20910000,79.53 +1975-02-24,82.62,82.71,80.87,81.44,19150000,81.44 +1975-02-21,82.21,83.56,81.72,82.62,24440000,82.62 +1975-02-20,81.44,82.78,80.82,82.21,22260000,82.21 +1975-02-19,80.93,81.94,79.83,81.44,21930000,81.44 +1975-02-18,81.50,82.45,80.16,80.93,23990000,80.93 +1975-02-14,81.01,82.33,80.13,81.50,23290000,81.50 +1975-02-13,79.98,82.53,79.98,81.01,35160000,81.01 +1975-02-12,78.58,80.21,77.94,79.92,19790000,79.92 +1975-02-11,78.36,79.07,77.38,78.58,16470000,78.58 +1975-02-10,78.63,79.40,77.77,78.36,16120000,78.36 +1975-02-07,78.56,79.12,77.00,78.63,19060000,78.63 +1975-02-06,78.95,80.72,78.09,78.56,32020000,78.56 +1975-02-05,77.61,79.40,76.81,78.95,25830000,78.95 +1975-02-04,77.82,78.37,76.00,77.61,25040000,77.61 +1975-02-03,76.98,78.55,76.36,77.82,25400000,77.82 +1975-01-31,76.21,77.72,75.41,76.98,24640000,76.98 +1975-01-30,77.26,78.69,75.82,76.21,29740000,76.21 +1975-01-29,76.03,78.03,75.23,77.26,27410000,77.26 +1975-01-28,75.37,77.59,75.36,76.03,31760000,76.03 +1975-01-27,73.76,76.03,73.76,75.37,32130000,75.37 +1975-01-24,72.07,73.57,71.55,72.98,20670000,72.98 +1975-01-23,71.74,73.11,71.09,72.07,17960000,72.07 +1975-01-22,70.70,71.97,69.86,71.74,15330000,71.74 +1975-01-21,71.08,72.04,70.25,70.70,14780000,70.70 +1975-01-20,70.96,71.46,69.80,71.08,13450000,71.08 +1975-01-17,72.05,72.36,70.56,70.96,14260000,70.96 +1975-01-16,72.14,72.93,71.26,72.05,17110000,72.05 +1975-01-15,71.68,72.77,70.45,72.14,16580000,72.14 +1975-01-14,72.31,72.70,71.02,71.68,16610000,71.68 +1975-01-13,72.61,73.81,71.83,72.31,19780000,72.31 +1975-01-10,71.60,73.75,71.60,72.61,25890000,72.61 +1975-01-09,70.04,71.42,69.04,71.17,16340000,71.17 +1975-01-08,71.02,71.53,69.65,70.04,15600000,70.04 +1975-01-07,71.07,71.75,69.92,71.02,14890000,71.02 +1975-01-06,70.71,72.24,70.33,71.07,17550000,71.07 +1975-01-03,70.23,71.64,69.29,70.71,15270000,70.71 +1975-01-02,68.65,70.92,68.65,70.23,14800000,70.23 +1974-12-31,67.16,69.04,67.15,68.56,20970000,68.56 +1974-12-30,67.14,67.65,66.23,67.16,18520000,67.16 +1974-12-27,67.44,67.99,66.49,67.14,13060000,67.14 +1974-12-26,66.88,68.19,66.62,67.44,11810000,67.44 +1974-12-24,65.96,67.25,65.86,66.88,9540000,66.88 +1974-12-23,66.91,67.18,65.34,65.96,18040000,65.96 +1974-12-20,67.65,67.93,66.36,66.91,15840000,66.91 +1974-12-19,67.90,68.62,66.93,67.65,15900000,67.65 +1974-12-18,67.58,69.01,67.30,67.90,18050000,67.90 +1974-12-17,66.46,67.92,65.86,67.58,16880000,67.58 +1974-12-16,67.07,67.74,66.02,66.46,15370000,66.46 +1974-12-13,67.45,68.15,66.32,67.07,14000000,67.07 +1974-12-12,67.67,68.61,66.56,67.45,15390000,67.45 +1974-12-11,67.28,69.03,66.83,67.67,15700000,67.67 +1974-12-10,65.88,68.17,65.88,67.28,15690000,67.28 +1974-12-09,65.01,66.29,64.13,65.60,14660000,65.60 +1974-12-06,66.13,66.20,64.40,65.01,15500000,65.01 +1974-12-05,67.41,68.00,65.90,66.13,12890000,66.13 +1974-12-04,67.17,68.32,66.61,67.41,12580000,67.41 +1974-12-03,68.11,68.13,66.62,67.17,13620000,67.17 +1974-12-02,69.80,69.80,67.81,68.11,11140000,68.11 +1974-11-29,69.94,70.49,69.18,69.97,7400000,69.97 +1974-11-27,69.47,71.31,69.17,69.94,14810000,69.94 +1974-11-26,68.83,70.36,68.19,69.47,13600000,69.47 +1974-11-25,68.90,69.68,67.79,68.83,11300000,68.83 +1974-11-22,68.24,70.00,68.24,68.90,13020000,68.90 +1974-11-21,67.90,68.94,66.85,68.18,13820000,68.18 +1974-11-20,68.20,69.25,67.36,67.90,12430000,67.90 +1974-11-19,69.27,69.71,67.66,68.20,15720000,68.20 +1974-11-18,71.10,71.10,68.95,69.27,15230000,69.27 +1974-11-15,73.06,73.27,71.41,71.91,12480000,71.91 +1974-11-14,73.35,74.54,72.53,73.06,13540000,73.06 +1974-11-13,73.67,74.25,72.32,73.35,16040000,73.35 +1974-11-12,75.15,75.59,73.34,73.67,15040000,73.67 +1974-11-11,74.91,75.70,74.04,75.15,13220000,75.15 +1974-11-08,75.21,76.00,74.01,74.91,15890000,74.91 +1974-11-07,74.75,76.30,73.85,75.21,17150000,75.21 +1974-11-06,75.11,77.41,74.23,74.75,23930000,74.75 +1974-11-05,73.08,75.36,72.49,75.11,15960000,75.11 +1974-11-04,73.80,73.80,71.93,73.08,12740000,73.08 +1974-11-01,73.90,74.85,72.68,73.88,13470000,73.88 +1974-10-31,74.31,75.90,73.15,73.90,18840000,73.90 +1974-10-30,72.83,75.45,72.40,74.31,20130000,74.31 +1974-10-29,70.49,73.19,70.49,72.83,15610000,72.83 +1974-10-28,70.12,70.67,68.89,70.09,10540000,70.09 +1974-10-25,70.22,71.59,69.46,70.12,12650000,70.12 +1974-10-24,70.98,70.98,68.80,70.22,14910000,70.22 +1974-10-23,72.81,72.81,70.40,71.03,14200000,71.03 +1974-10-22,73.50,75.09,72.55,73.13,18930000,73.13 +1974-10-21,72.28,73.92,71.24,73.50,14500000,73.50 +1974-10-18,71.20,73.34,71.20,72.28,16460000,72.28 +1974-10-17,70.33,72.00,69.41,71.17,14470000,71.17 +1974-10-16,71.44,71.98,69.54,70.33,14790000,70.33 +1974-10-15,72.74,73.35,70.61,71.44,17390000,71.44 +1974-10-14,71.17,74.43,71.17,72.74,19770000,72.74 +1974-10-11,69.79,71.99,68.80,71.14,20090000,71.14 +1974-10-10,68.30,71.48,68.30,69.79,26360000,69.79 +1974-10-09,64.84,68.15,63.74,67.82,18820000,67.82 +1974-10-08,64.95,66.07,63.95,64.84,15460000,64.84 +1974-10-07,62.78,65.40,62.78,64.95,15000000,64.95 +1974-10-04,62.28,63.23,60.96,62.34,15910000,62.34 +1974-10-03,63.38,63.48,61.66,62.28,13150000,62.28 +1974-10-02,63.39,64.62,62.74,63.38,12230000,63.38 +1974-10-01,63.54,64.37,61.75,63.39,16890000,63.39 +1974-09-30,64.85,64.85,62.52,63.54,15000000,63.54 +1974-09-27,66.46,67.09,64.58,64.94,12320000,64.94 +1974-09-26,67.40,67.40,65.79,66.46,9060000,66.46 +1974-09-25,68.02,69.77,66.86,67.57,17620000,67.57 +1974-09-24,69.03,69.03,67.42,68.02,9840000,68.02 +1974-09-23,70.14,71.02,68.79,69.42,12130000,69.42 +1974-09-20,70.09,71.12,68.62,70.14,16250000,70.14 +1974-09-19,68.36,70.76,68.36,70.09,17000000,70.09 +1974-09-18,67.38,68.14,65.92,67.72,11760000,67.72 +1974-09-17,66.45,68.84,66.45,67.38,13730000,67.38 +1974-09-16,65.20,66.92,64.15,66.26,18370000,66.26 +1974-09-13,66.71,66.91,64.74,65.20,16070000,65.20 +1974-09-12,68.54,68.54,66.22,66.71,16920000,66.71 +1974-09-11,69.24,70.00,68.22,68.55,11820000,68.55 +1974-09-10,69.72,70.47,68.55,69.24,11980000,69.24 +1974-09-09,71.35,71.35,69.38,69.72,11160000,69.72 +1974-09-06,70.87,72.42,70.08,71.42,15130000,71.42 +1974-09-05,68.69,71.30,68.65,70.87,14210000,70.87 +1974-09-04,69.85,69.85,67.64,68.69,16930000,68.69 +1974-09-03,72.15,73.01,70.28,70.52,12750000,70.52 +1974-08-30,70.22,72.68,70.22,72.15,16230000,72.15 +1974-08-29,70.76,71.22,69.37,69.99,13690000,69.99 +1974-08-28,70.94,72.17,70.13,70.76,16670000,70.76 +1974-08-27,72.16,72.50,70.50,70.94,12970000,70.94 +1974-08-26,71.55,73.17,70.42,72.16,14630000,72.16 +1974-08-23,72.80,73.71,70.75,71.55,13590000,71.55 +1974-08-22,73.51,74.05,71.61,72.80,15690000,72.80 +1974-08-21,74.95,75.50,73.16,73.51,11650000,73.51 +1974-08-20,74.57,76.11,73.82,74.95,13820000,74.95 +1974-08-19,75.65,75.65,73.78,74.57,11670000,74.57 +1974-08-16,76.30,77.02,75.29,75.67,10510000,75.67 +1974-08-15,76.73,77.52,75.19,76.30,11130000,76.30 +1974-08-14,76.73,76.73,76.73,76.73,11750000,76.73 +1974-08-13,79.75,79.95,77.83,78.49,10140000,78.49 +1974-08-12,80.86,81.26,79.30,79.75,7780000,79.75 +1974-08-09,81.57,81.88,80.11,80.86,10160000,80.86 +1974-08-08,82.65,83.53,80.86,81.57,16060000,81.57 +1974-08-07,80.52,82.93,80.13,82.65,13380000,82.65 +1974-08-06,79.78,82.65,79.78,80.52,15770000,80.52 +1974-08-05,78.59,80.31,78.03,79.29,11230000,79.29 +1974-08-02,78.75,79.39,77.84,78.59,10110000,78.59 +1974-08-01,79.31,80.02,77.97,78.75,11470000,78.75 +1974-07-31,80.50,80.82,78.96,79.31,10960000,79.31 +1974-07-30,80.94,81.52,79.58,80.50,11360000,80.50 +1974-07-29,82.02,82.02,80.22,80.94,11560000,80.94 +1974-07-26,83.98,84.17,82.00,82.40,10420000,82.40 +1974-07-25,84.99,85.67,83.13,83.98,13310000,83.98 +1974-07-24,84.65,85.64,83.61,84.99,12870000,84.99 +1974-07-23,83.81,85.63,83.67,84.65,12910000,84.65 +1974-07-22,83.54,84.44,82.59,83.81,9290000,83.81 +1974-07-19,83.78,84.67,82.87,83.54,11080000,83.54 +1974-07-18,83.70,85.39,83.13,83.78,13980000,83.78 +1974-07-17,82.81,84.13,81.70,83.70,11320000,83.70 +1974-07-16,83.78,83.85,82.14,82.81,9920000,82.81 +1974-07-15,83.15,84.89,82.65,83.78,13560000,83.78 +1974-07-12,80.97,83.65,80.97,83.15,17770000,83.15 +1974-07-11,79.99,81.08,79.08,79.89,14640000,79.89 +1974-07-10,81.48,82.22,79.74,79.99,13490000,79.99 +1974-07-09,81.09,82.50,80.35,81.48,15580000,81.48 +1974-07-08,83.13,83.13,80.48,81.09,15510000,81.09 +1974-07-05,84.25,84.45,83.17,83.66,7400000,83.66 +1974-07-03,84.30,85.15,83.46,84.25,13430000,84.25 +1974-07-02,86.02,86.26,83.98,84.30,13460000,84.30 +1974-07-01,86.00,86.89,85.32,86.02,10270000,86.02 +1974-06-28,86.31,86.78,85.13,86.00,12010000,86.00 +1974-06-27,87.61,87.61,85.88,86.31,12650000,86.31 +1974-06-26,88.98,89.12,87.30,87.61,11410000,87.61 +1974-06-25,87.69,89.48,87.67,88.98,11920000,88.98 +1974-06-24,87.46,88.38,86.70,87.69,9960000,87.69 +1974-06-21,88.21,88.31,86.77,87.46,11830000,87.46 +1974-06-20,88.84,89.35,87.80,88.21,11990000,88.21 +1974-06-19,89.45,89.80,88.39,88.84,10550000,88.84 +1974-06-18,90.04,90.53,88.92,89.45,10110000,89.45 +1974-06-17,91.30,91.34,89.63,90.04,9680000,90.04 +1974-06-14,92.23,92.23,90.73,91.30,10030000,91.30 +1974-06-13,92.06,93.33,91.48,92.34,11540000,92.34 +1974-06-12,92.28,92.61,90.89,92.06,11150000,92.06 +1974-06-11,93.10,93.57,91.76,92.28,12380000,92.28 +1974-06-10,92.55,93.64,91.53,93.10,13540000,93.10 +1974-06-07,91.96,93.76,91.74,92.55,19020000,92.55 +1974-06-06,90.31,92.31,89.71,91.96,13360000,91.96 +1974-06-05,90.14,91.42,89.04,90.31,13680000,90.31 +1974-06-04,89.10,91.13,89.09,90.14,16040000,90.14 +1974-06-03,87.28,89.40,86.78,89.10,12490000,89.10 +1974-05-31,87.43,88.02,86.19,87.28,10810000,87.28 +1974-05-30,86.89,88.09,85.87,87.43,13580000,87.43 +1974-05-29,88.37,88.84,86.52,86.89,12300000,86.89 +1974-05-28,88.58,89.37,87.69,88.37,10580000,88.37 +1974-05-24,87.29,89.27,87.20,88.58,13740000,88.58 +1974-05-23,87.09,87.98,86.12,87.29,14770000,87.29 +1974-05-22,87.91,88.79,86.72,87.09,15450000,87.09 +1974-05-21,87.86,88.98,87.19,87.91,12190000,87.91 +1974-05-20,88.21,89.09,87.19,87.86,10550000,87.86 +1974-05-17,89.53,89.53,87.67,88.21,13870000,88.21 +1974-05-16,90.45,91.31,89.36,89.72,12090000,89.72 +1974-05-15,90.69,91.22,89.65,90.45,11240000,90.45 +1974-05-14,90.66,91.68,90.05,90.69,10880000,90.69 +1974-05-13,91.47,91.72,89.91,90.66,11290000,90.66 +1974-05-10,92.96,93.57,91.03,91.47,15270000,91.47 +1974-05-09,91.64,93.49,91.27,92.96,14710000,92.96 +1974-05-08,91.46,92.34,90.71,91.64,11850000,91.64 +1974-05-07,91.12,92.36,90.69,91.46,10710000,91.46 +1974-05-06,91.29,91.60,90.13,91.12,9450000,91.12 +1974-05-03,92.09,92.27,90.59,91.29,11080000,91.29 +1974-05-02,92.22,93.59,91.46,92.09,13620000,92.09 +1974-05-01,90.31,93.03,89.82,92.22,15120000,92.22 +1974-04-30,90.00,91.09,89.38,90.31,10980000,90.31 +1974-04-29,90.18,90.78,89.02,90.00,10170000,90.00 +1974-04-26,89.57,91.10,89.06,90.18,13250000,90.18 +1974-04-25,90.30,90.53,88.62,89.57,15870000,89.57 +1974-04-24,91.81,91.82,89.91,90.30,16010000,90.30 +1974-04-23,93.38,93.51,91.53,91.81,14110000,91.81 +1974-04-22,93.75,94.12,92.71,93.38,10520000,93.38 +1974-04-19,94.77,94.77,93.20,93.75,10710000,93.75 +1974-04-18,94.36,95.42,93.75,94.78,12470000,94.78 +1974-04-17,93.66,95.04,93.12,94.36,14020000,94.36 +1974-04-16,92.05,94.06,92.05,93.66,14530000,93.66 +1974-04-15,92.12,92.94,91.49,92.05,10130000,92.05 +1974-04-11,92.40,92.92,91.55,92.12,9970000,92.12 +1974-04-10,92.61,93.52,91.89,92.40,11160000,92.40 +1974-04-09,92.03,93.28,91.61,92.61,11330000,92.61 +1974-04-08,93.00,93.00,91.50,92.03,10740000,92.03 +1974-04-05,94.24,94.24,92.55,93.01,11670000,93.01 +1974-04-04,94.33,95.14,93.55,94.33,11650000,94.33 +1974-04-03,93.35,94.70,92.94,94.33,11500000,94.33 +1974-04-02,93.25,94.15,92.59,93.35,12010000,93.35 +1974-04-01,93.98,94.68,92.82,93.25,11470000,93.25 +1974-03-29,94.82,95.12,93.44,93.98,12150000,93.98 +1974-03-28,96.20,96.20,94.36,94.82,14940000,94.82 +1974-03-27,97.95,98.26,96.32,96.59,11690000,96.59 +1974-03-26,97.64,98.66,97.11,97.95,11840000,97.95 +1974-03-25,97.27,98.02,95.69,97.64,10540000,97.64 +1974-03-22,97.34,98.04,96.35,97.27,11930000,97.27 +1974-03-21,97.57,98.59,96.82,97.34,12950000,97.34 +1974-03-20,97.23,98.22,96.67,97.57,12960000,97.57 +1974-03-19,98.05,98.20,96.63,97.23,12800000,97.23 +1974-03-18,99.28,99.71,97.62,98.05,14010000,98.05 +1974-03-15,99.65,99.99,98.22,99.28,14500000,99.28 +1974-03-14,99.74,101.05,98.80,99.65,19770000,99.65 +1974-03-13,99.15,100.73,98.72,99.74,16820000,99.74 +1974-03-12,98.88,100.02,97.97,99.15,17250000,99.15 +1974-03-11,97.78,99.40,96.38,98.88,18470000,98.88 +1974-03-08,96.94,98.28,95.77,97.78,16210000,97.78 +1974-03-07,97.98,98.20,96.37,96.94,14500000,96.94 +1974-03-06,97.32,98.57,96.54,97.98,19140000,97.98 +1974-03-05,95.98,98.17,95.98,97.32,21980000,97.32 +1974-03-04,95.53,95.95,94.19,95.53,12270000,95.53 +1974-03-01,96.22,96.40,94.81,95.53,12880000,95.53 +1974-02-28,96.40,96.98,95.20,96.22,13680000,96.22 +1974-02-27,96.00,97.43,95.49,96.40,18730000,96.40 +1974-02-26,95.03,96.38,94.20,96.00,15860000,96.00 +1974-02-25,95.39,95.96,94.24,95.03,12900000,95.03 +1974-02-22,94.71,96.19,94.08,95.39,16360000,95.39 +1974-02-21,93.44,95.19,93.20,94.71,13930000,94.71 +1974-02-20,92.12,93.92,91.34,93.44,11670000,93.44 +1974-02-19,92.27,94.44,91.68,92.12,15940000,92.12 +1974-02-15,90.95,92.98,90.62,92.27,12640000,92.27 +1974-02-14,90.98,91.89,90.17,90.95,12230000,90.95 +1974-02-13,90.94,92.13,90.37,90.98,10990000,90.98 +1974-02-12,90.66,91.60,89.53,90.94,12920000,90.94 +1974-02-11,92.33,92.54,90.26,90.66,12930000,90.66 +1974-02-08,93.30,93.79,91.87,92.33,12990000,92.33 +1974-02-07,93.26,94.09,92.43,93.30,11750000,93.30 +1974-02-06,93.00,94.09,92.37,93.26,11610000,93.26 +1974-02-05,93.29,94.17,92.26,93.00,12820000,93.00 +1974-02-04,94.89,94.89,92.74,93.29,14380000,93.29 +1974-02-01,96.57,96.63,94.66,95.32,12480000,95.32 +1974-01-31,97.06,98.06,96.11,96.57,14020000,96.57 +1974-01-30,96.02,97.90,96.02,97.06,16790000,97.06 +1974-01-29,96.09,96.81,94.97,96.01,12850000,96.01 +1974-01-28,96.63,97.32,95.37,96.09,13410000,96.09 +1974-01-25,96.82,97.64,95.68,96.63,14860000,96.63 +1974-01-24,97.07,97.75,95.49,96.82,15980000,96.82 +1974-01-23,96.55,98.11,95.88,97.07,16890000,97.07 +1974-01-22,95.40,97.41,94.92,96.55,17330000,96.55 +1974-01-21,95.56,95.96,93.23,95.40,15630000,95.40 +1974-01-18,97.30,97.63,95.00,95.56,16470000,95.56 +1974-01-17,95.67,98.35,95.67,97.30,21040000,97.30 +1974-01-16,94.23,96.20,93.78,95.67,14930000,95.67 +1974-01-15,93.42,95.26,92.84,94.23,13250000,94.23 +1974-01-14,93.66,95.24,92.35,93.42,14610000,93.42 +1974-01-11,92.39,94.57,91.75,93.66,15140000,93.66 +1974-01-10,93.42,94.63,91.62,92.39,16120000,92.39 +1974-01-09,95.40,95.40,92.63,93.42,18070000,93.42 +1974-01-08,98.07,98.26,95.58,96.12,18080000,96.12 +1974-01-07,98.90,99.31,96.86,98.07,19070000,98.07 +1974-01-04,99.80,100.70,97.70,98.90,21700000,98.90 +1974-01-03,98.02,100.94,98.02,99.80,24850000,99.80 +1974-01-02,97.55,98.38,96.25,97.68,12060000,97.68 +1973-12-31,97.54,98.30,95.95,97.55,23470000,97.55 +1973-12-28,97.74,98.76,96.41,97.54,21310000,97.54 +1973-12-27,96.00,98.53,96.00,97.74,22720000,97.74 +1973-12-26,93.87,96.52,93.87,95.74,18620000,95.74 +1973-12-24,93.54,93.77,91.68,92.90,11540000,92.90 +1973-12-21,94.55,95.11,92.70,93.54,18680000,93.54 +1973-12-20,94.82,96.26,93.51,94.55,17340000,94.55 +1973-12-19,94.74,96.83,93.81,94.82,20670000,94.82 +1973-12-18,92.75,95.41,92.18,94.74,19490000,94.74 +1973-12-17,93.29,94.00,91.87,92.75,12930000,92.75 +1973-12-14,92.38,94.53,91.05,93.29,20000000,93.29 +1973-12-13,93.57,94.68,91.64,92.38,18130000,92.38 +1973-12-12,95.52,95.52,92.90,93.57,18190000,93.57 +1973-12-11,97.95,99.09,95.62,96.04,20100000,96.04 +1973-12-10,96.51,98.58,95.44,97.95,18590000,97.95 +1973-12-07,94.49,97.58,94.49,96.51,23230000,96.51 +1973-12-06,92.16,94.89,91.68,94.42,23260000,94.42 +1973-12-05,93.59,93.93,91.55,92.16,19180000,92.16 +1973-12-04,93.90,95.23,92.60,93.59,19030000,93.59 +1973-12-03,95.83,95.83,92.92,93.90,17900000,93.90 +1973-11-30,97.31,97.55,95.40,95.96,15380000,95.96 +1973-11-29,97.65,98.72,96.01,97.31,18870000,97.31 +1973-11-28,95.70,98.40,95.22,97.65,19990000,97.65 +1973-11-27,96.58,97.70,94.88,95.70,19750000,95.70 +1973-11-26,98.64,98.64,95.79,96.58,19830000,96.58 +1973-11-23,99.76,100.49,98.59,99.44,11470000,99.44 +1973-11-21,98.66,101.33,97.87,99.76,24260000,99.76 +1973-11-20,100.65,100.65,97.64,98.66,23960000,98.66 +1973-11-19,103.65,103.65,100.37,100.71,16700000,100.71 +1973-11-16,102.43,105.41,101.77,103.88,22510000,103.88 +1973-11-15,102.45,103.85,100.69,102.43,24530000,102.43 +1973-11-14,104.36,105.25,101.87,102.45,22710000,102.45 +1973-11-13,104.44,105.42,102.91,104.36,20310000,104.36 +1973-11-12,105.30,105.75,103.12,104.44,19250000,104.44 +1973-11-09,107.02,107.27,104.77,105.30,17320000,105.30 +1973-11-08,106.10,108.45,106.10,107.02,19650000,107.02 +1973-11-07,104.96,106.72,104.53,105.80,16570000,105.80 +1973-11-06,105.52,107.00,104.52,104.96,16430000,104.96 +1973-11-05,106.97,106.97,104.87,105.52,17150000,105.52 +1973-11-02,107.69,108.35,106.33,107.07,16340000,107.07 +1973-11-01,108.29,109.20,106.88,107.69,16920000,107.69 +1973-10-31,109.33,109.82,107.64,108.29,17890000,108.29 +1973-10-30,111.15,111.30,108.95,109.33,17580000,109.33 +1973-10-29,111.38,112.56,110.52,111.15,17960000,111.15 +1973-10-26,110.50,112.31,110.08,111.38,17800000,111.38 +1973-10-25,110.27,111.33,108.85,110.50,15580000,110.50 +1973-10-24,109.75,110.98,109.03,110.27,15840000,110.27 +1973-10-23,109.16,110.91,107.40,109.75,17230000,109.75 +1973-10-22,110.22,110.56,108.18,109.16,14290000,109.16 +1973-10-19,110.01,111.56,109.30,110.22,17880000,110.22 +1973-10-18,109.97,111.43,108.97,110.01,19210000,110.01 +1973-10-17,110.19,111.41,109.19,109.97,18600000,109.97 +1973-10-16,110.05,110.80,108.50,110.19,18780000,110.19 +1973-10-15,111.32,111.32,109.29,110.05,16160000,110.05 +1973-10-12,111.09,112.82,110.52,111.44,22730000,111.44 +1973-10-11,109.22,111.77,108.96,111.09,20740000,111.09 +1973-10-10,110.13,111.31,108.51,109.22,19010000,109.22 +1973-10-09,110.23,111.19,109.05,110.13,19440000,110.13 +1973-10-08,109.85,110.93,108.02,110.23,18990000,110.23 +1973-10-05,108.41,110.46,107.76,109.85,18820000,109.85 +1973-10-04,108.78,109.53,107.30,108.41,19730000,108.41 +1973-10-03,108.79,109.95,107.74,108.78,22040000,108.78 +1973-10-02,108.21,109.46,107.48,108.79,20770000,108.79 +1973-10-01,108.43,108.98,107.08,108.21,15830000,108.21 +1973-09-28,109.08,109.42,107.48,108.43,16300000,108.43 +1973-09-27,108.83,110.45,108.02,109.08,23660000,109.08 +1973-09-26,108.05,109.61,107.43,108.83,21130000,108.83 +1973-09-25,107.36,108.79,106.50,108.05,21530000,108.05 +1973-09-24,107.20,108.36,106.21,107.36,19490000,107.36 +1973-09-21,106.76,108.02,105.43,107.20,23760000,107.20 +1973-09-20,105.88,107.55,105.32,106.76,25960000,106.76 +1973-09-19,103.80,106.43,103.80,105.88,24570000,105.88 +1973-09-18,104.15,104.62,102.41,103.77,16400000,103.77 +1973-09-17,104.44,105.41,103.21,104.15,15100000,104.15 +1973-09-14,103.36,104.75,102.66,104.44,13760000,104.44 +1973-09-13,103.06,104.09,102.37,103.36,11670000,103.36 +1973-09-12,103.22,103.98,102.15,103.06,12040000,103.06 +1973-09-11,103.85,104.09,102.13,103.22,12690000,103.22 +1973-09-10,104.76,105.12,103.33,103.85,11620000,103.85 +1973-09-07,105.15,105.87,104.04,104.76,14930000,104.76 +1973-09-06,104.64,105.95,104.05,105.15,15670000,105.15 +1973-09-05,104.51,105.33,103.60,104.64,14580000,104.64 +1973-09-04,104.25,105.35,103.60,104.51,14210000,104.51 +1973-08-31,103.88,104.72,103.15,104.25,10530000,104.25 +1973-08-30,104.03,104.84,103.29,103.88,12100000,103.88 +1973-08-29,103.02,104.92,102.69,104.03,15690000,104.03 +1973-08-28,102.42,103.66,102.06,103.02,11810000,103.02 +1973-08-27,101.62,102.82,101.09,102.42,9740000,102.42 +1973-08-24,101.91,102.65,100.88,101.62,11200000,101.62 +1973-08-23,100.62,102.50,100.62,101.91,11390000,101.91 +1973-08-22,100.89,101.39,99.74,100.53,10770000,100.53 +1973-08-21,101.61,102.10,100.51,100.89,11480000,100.89 +1973-08-20,102.31,102.54,101.11,101.61,8970000,101.61 +1973-08-17,102.29,102.98,101.38,102.31,11110000,102.31 +1973-08-16,103.01,103.97,101.85,102.29,12990000,102.29 +1973-08-15,102.71,103.79,101.92,103.01,12040000,103.01 +1973-08-14,103.71,104.29,102.34,102.71,11740000,102.71 +1973-08-13,104.77,104.83,103.13,103.71,11330000,103.71 +1973-08-10,105.61,106.03,104.21,104.77,10870000,104.77 +1973-08-09,105.55,106.65,104.89,105.61,12880000,105.61 +1973-08-08,106.55,106.73,105.04,105.55,12440000,105.55 +1973-08-07,106.73,107.57,105.87,106.55,13510000,106.55 +1973-08-06,106.49,107.54,105.45,106.73,12320000,106.73 +1973-08-03,106.67,107.17,105.68,106.49,9940000,106.49 +1973-08-02,106.83,107.38,105.51,106.67,16080000,106.67 +1973-08-01,108.17,108.17,106.29,106.83,13530000,106.83 +1973-07-31,109.25,110.09,107.89,108.22,13530000,108.22 +1973-07-30,109.59,110.12,108.24,109.25,11170000,109.25 +1973-07-27,109.85,110.49,108.70,109.59,12910000,109.59 +1973-07-26,109.64,111.04,108.51,109.85,18410000,109.85 +1973-07-25,108.14,110.76,107.92,109.64,22220000,109.64 +1973-07-24,107.52,108.63,106.31,108.14,16280000,108.14 +1973-07-23,107.14,108.42,106.54,107.52,15580000,107.52 +1973-07-20,106.55,108.02,105.95,107.14,16300000,107.14 +1973-07-19,106.35,107.58,105.06,106.55,18650000,106.55 +1973-07-18,105.72,107.05,104.73,106.35,17020000,106.35 +1973-07-17,105.67,107.28,104.99,105.72,18750000,105.72 +1973-07-16,104.09,106.01,103.42,105.67,12920000,105.67 +1973-07-13,105.50,105.80,103.66,104.09,11390000,104.09 +1973-07-12,105.80,106.62,104.38,105.50,16400000,105.50 +1973-07-11,103.64,106.21,103.64,105.80,18730000,105.80 +1973-07-10,102.26,104.20,102.26,103.52,15090000,103.52 +1973-07-09,101.28,102.45,100.44,102.14,11560000,102.14 +1973-07-06,101.78,102.22,100.67,101.28,9980000,101.28 +1973-07-05,101.87,102.48,100.80,101.78,10500000,101.78 +1973-07-03,102.90,103.02,101.14,101.87,10560000,101.87 +1973-07-02,104.10,104.10,102.44,102.90,9830000,102.90 +1973-06-29,104.69,105.30,103.68,104.26,10770000,104.26 +1973-06-28,103.62,105.17,103.18,104.69,12760000,104.69 +1973-06-27,103.30,104.23,102.29,103.62,12660000,103.62 +1973-06-26,102.25,103.78,101.45,103.30,14040000,103.30 +1973-06-25,103.64,103.64,101.71,102.25,11670000,102.25 +1973-06-22,103.21,105.66,103.07,103.70,18470000,103.70 +1973-06-21,104.44,104.77,102.84,103.21,11630000,103.21 +1973-06-20,103.99,105.13,103.51,104.44,10600000,104.44 +1973-06-19,103.60,104.96,102.46,103.99,12970000,103.99 +1973-06-18,104.96,104.96,103.08,103.60,11460000,103.60 +1973-06-15,106.21,106.21,104.37,105.10,11970000,105.10 +1973-06-14,107.60,108.27,105.83,106.40,13210000,106.40 +1973-06-13,108.29,109.52,107.08,107.60,15700000,107.60 +1973-06-12,106.70,108.78,106.40,108.29,13840000,108.29 +1973-06-11,107.03,107.79,106.11,106.70,9940000,106.70 +1973-06-08,105.84,107.75,105.60,107.03,14050000,107.03 +1973-06-07,104.31,106.39,104.19,105.84,14160000,105.84 +1973-06-06,104.62,105.78,103.60,104.31,13080000,104.31 +1973-06-05,102.97,105.27,102.61,104.62,14080000,104.62 +1973-06-04,103.93,103.98,102.33,102.97,11230000,102.97 +1973-06-01,104.95,105.04,103.31,103.93,10410000,103.93 +1973-05-31,105.91,106.30,104.35,104.95,12190000,104.95 +1973-05-30,107.51,107.64,105.48,105.91,11730000,105.91 +1973-05-29,107.94,108.58,106.77,107.51,11300000,107.51 +1973-05-25,107.14,108.86,106.08,107.94,19270000,107.94 +1973-05-24,104.07,107.44,103.59,107.14,17310000,107.14 +1973-05-23,103.58,105.10,102.82,104.07,14950000,104.07 +1973-05-22,102.73,105.04,102.58,103.58,18020000,103.58 +1973-05-21,103.77,103.77,101.36,102.73,20690000,102.73 +1973-05-18,105.41,105.41,103.18,103.86,17080000,103.86 +1973-05-17,106.43,106.82,105.15,105.56,13060000,105.56 +1973-05-16,106.57,107.61,105.49,106.43,13800000,106.43 +1973-05-15,105.90,107.16,104.12,106.57,18530000,106.57 +1973-05-14,107.74,107.74,105.52,105.90,13520000,105.90 +1973-05-11,109.49,109.49,107.70,108.17,12980000,108.17 +1973-05-10,110.44,110.86,108.86,109.54,13520000,109.54 +1973-05-09,111.25,112.25,109.97,110.44,16050000,110.44 +1973-05-08,110.53,111.72,109.46,111.25,13730000,111.25 +1973-05-07,111.00,111.38,109.68,110.53,12500000,110.53 +1973-05-04,110.22,111.99,109.89,111.00,19510000,111.00 +1973-05-03,108.43,110.64,106.81,110.22,17760000,110.22 +1973-05-02,107.10,109.06,106.95,108.43,14380000,108.43 +1973-05-01,106.97,108.00,105.34,107.10,15380000,107.10 +1973-04-30,107.23,107.90,105.44,106.97,14820000,106.97 +1973-04-27,108.89,109.28,106.76,107.23,13730000,107.23 +1973-04-26,108.34,109.66,107.14,108.89,16210000,108.89 +1973-04-25,109.82,109.82,107.79,108.34,15960000,108.34 +1973-04-24,111.57,111.89,109.64,109.99,13830000,109.99 +1973-04-23,112.17,112.66,110.91,111.57,12580000,111.57 +1973-04-19,111.54,112.93,111.06,112.17,14560000,112.17 +1973-04-18,110.94,112.03,109.99,111.54,13890000,111.54 +1973-04-17,111.44,111.81,110.19,110.94,12830000,110.94 +1973-04-16,112.08,112.61,110.91,111.44,11350000,111.44 +1973-04-13,112.58,112.91,111.23,112.08,14390000,112.08 +1973-04-12,112.68,113.65,111.83,112.58,16360000,112.58 +1973-04-11,112.21,113.27,111.21,112.68,14890000,112.68 +1973-04-10,110.92,112.85,110.92,112.21,16770000,112.21 +1973-04-09,109.28,111.24,108.74,110.86,13740000,110.86 +1973-04-06,108.52,110.04,108.22,109.28,13890000,109.28 +1973-04-05,108.77,109.15,107.44,108.52,12750000,108.52 +1973-04-04,109.24,109.96,108.10,108.77,11890000,108.77 +1973-04-03,110.18,110.35,108.47,109.24,12910000,109.24 +1973-04-02,111.52,111.70,109.68,110.18,10640000,110.18 +1973-03-30,112.71,112.87,110.89,111.52,13740000,111.52 +1973-03-29,111.62,113.22,111.07,112.71,16050000,112.71 +1973-03-28,111.56,112.47,110.54,111.62,15850000,111.62 +1973-03-27,109.95,112.07,109.95,111.56,17500000,111.56 +1973-03-26,108.88,110.40,108.29,109.84,14980000,109.84 +1973-03-23,108.84,109.97,107.41,108.88,18470000,108.88 +1973-03-22,110.39,110.39,108.19,108.84,17130000,108.84 +1973-03-21,111.95,112.81,110.17,110.49,16080000,110.49 +1973-03-20,112.17,112.68,111.02,111.95,13250000,111.95 +1973-03-19,113.50,113.50,111.65,112.17,12460000,112.17 +1973-03-16,114.12,114.62,112.84,113.54,15130000,113.54 +1973-03-15,114.98,115.47,113.77,114.12,14450000,114.12 +1973-03-14,114.48,115.61,113.97,114.98,14460000,114.98 +1973-03-13,113.86,115.05,113.32,114.48,14210000,114.48 +1973-03-12,113.79,114.80,113.25,113.86,13810000,113.86 +1973-03-09,114.23,114.55,112.93,113.79,14070000,113.79 +1973-03-08,114.45,115.23,113.57,114.23,15100000,114.23 +1973-03-07,114.10,115.12,112.83,114.45,19310000,114.45 +1973-03-06,112.68,114.71,112.57,114.10,17710000,114.10 +1973-03-05,112.28,113.43,111.33,112.68,13720000,112.68 +1973-03-02,111.05,112.62,109.45,112.28,17710000,112.28 +1973-03-01,111.68,112.98,110.68,111.05,18210000,111.05 +1973-02-28,110.90,112.21,109.80,111.68,17950000,111.68 +1973-02-27,112.19,112.90,110.50,110.90,16130000,110.90 +1973-02-26,113.16,113.26,111.15,112.19,15860000,112.19 +1973-02-23,114.44,114.67,112.77,113.16,15450000,113.16 +1973-02-22,114.69,115.20,113.44,114.44,14570000,114.44 +1973-02-21,115.40,116.01,114.13,114.69,14880000,114.69 +1973-02-20,114.98,116.26,114.57,115.40,14020000,115.40 +1973-02-16,114.45,115.47,113.73,114.98,13320000,114.98 +1973-02-15,115.10,115.68,113.70,114.45,13940000,114.45 +1973-02-14,116.78,116.92,114.52,115.10,16520000,115.10 +1973-02-13,116.09,118.98,116.09,116.78,25320000,116.78 +1973-02-12,114.69,116.66,114.69,116.06,16130000,116.06 +1973-02-09,113.16,115.20,113.08,114.68,19260000,114.68 +1973-02-08,113.66,114.05,111.85,113.16,18440000,113.16 +1973-02-07,114.45,115.48,113.24,113.66,17960000,113.66 +1973-02-06,114.23,115.33,113.45,114.45,15720000,114.45 +1973-02-05,114.35,115.15,113.62,114.23,14580000,114.23 +1973-02-02,114.76,115.40,113.45,114.35,17470000,114.35 +1973-02-01,116.03,117.01,114.26,114.76,20670000,114.76 +1973-01-31,115.83,116.84,115.05,116.03,14870000,116.03 +1973-01-30,116.01,117.11,115.26,115.83,15270000,115.83 +1973-01-29,116.45,117.18,115.13,116.01,14680000,116.01 +1973-01-26,116.73,117.29,114.97,116.45,21130000,116.45 +1973-01-24,118.22,119.04,116.09,116.73,20870000,116.73 +1973-01-23,118.21,119.00,116.84,118.22,19060000,118.22 +1973-01-22,118.78,119.63,117.72,118.21,15570000,118.21 +1973-01-19,118.85,119.45,117.46,118.78,17020000,118.78 +1973-01-18,118.68,119.93,118.15,118.85,17810000,118.85 +1973-01-17,118.14,119.35,117.61,118.68,17680000,118.68 +1973-01-16,118.44,119.17,117.04,118.14,19170000,118.14 +1973-01-15,119.30,120.82,118.04,118.44,21520000,118.44 +1973-01-12,120.24,121.27,118.69,119.30,22230000,119.30 +1973-01-11,119.43,121.74,119.01,120.24,25050000,120.24 +1973-01-10,119.73,120.44,118.78,119.43,20880000,119.43 +1973-01-09,119.85,120.40,118.89,119.73,16830000,119.73 +1973-01-08,119.87,120.55,119.04,119.85,16840000,119.85 +1973-01-05,119.40,120.71,118.88,119.87,19330000,119.87 +1973-01-04,119.57,120.17,118.12,119.40,20230000,119.40 +1973-01-03,119.10,120.45,118.69,119.57,20620000,119.57 +1973-01-02,118.06,119.90,118.06,119.10,17090000,119.10 +1972-12-29,116.93,118.77,116.70,118.05,27550000,118.05 +1972-12-27,116.30,117.55,115.89,116.93,19100000,116.93 +1972-12-26,115.83,116.87,115.54,116.30,11120000,116.30 +1972-12-22,115.11,116.40,114.78,115.83,12540000,115.83 +1972-12-21,115.95,116.60,114.63,115.11,18290000,115.11 +1972-12-20,116.34,117.13,115.38,115.95,18490000,115.95 +1972-12-19,116.90,117.37,115.69,116.34,17000000,116.34 +1972-12-18,117.88,117.88,115.89,116.90,17540000,116.90 +1972-12-15,118.24,119.25,117.37,118.26,18300000,118.26 +1972-12-14,118.56,119.19,117.63,118.24,17930000,118.24 +1972-12-13,118.66,119.23,117.77,118.56,16540000,118.56 +1972-12-12,119.12,119.79,118.09,118.66,17040000,118.66 +1972-12-11,118.86,119.78,118.24,119.12,17230000,119.12 +1972-12-08,118.60,119.54,117.92,118.86,18030000,118.86 +1972-12-07,118.01,119.17,117.57,118.60,19320000,118.60 +1972-12-06,117.58,118.56,116.90,118.01,18610000,118.01 +1972-12-05,117.77,118.42,116.89,117.58,17800000,117.58 +1972-12-04,117.38,118.54,116.99,117.77,19730000,117.77 +1972-12-01,116.67,118.18,116.29,117.38,22570000,117.38 +1972-11-30,116.52,117.39,115.74,116.67,19340000,116.67 +1972-11-29,116.47,117.14,115.56,116.52,17380000,116.52 +1972-11-28,116.72,117.48,115.78,116.47,19210000,116.47 +1972-11-27,117.27,117.55,115.66,116.72,18190000,116.72 +1972-11-24,116.90,117.91,116.19,117.27,15760000,117.27 +1972-11-22,116.21,117.61,115.67,116.90,24510000,116.90 +1972-11-21,115.53,116.84,115.04,116.21,22110000,116.21 +1972-11-20,115.49,116.25,114.57,115.53,16680000,115.53 +1972-11-17,115.13,116.23,114.44,115.49,20220000,115.49 +1972-11-16,114.50,115.57,113.73,115.13,19580000,115.13 +1972-11-15,114.95,116.07,113.87,114.50,23270000,114.50 +1972-11-14,113.90,115.41,113.36,114.95,20200000,114.95 +1972-11-13,113.73,114.75,112.91,113.90,17210000,113.90 +1972-11-10,113.50,115.15,112.85,113.73,24360000,113.73 +1972-11-09,113.35,114.11,112.08,113.50,17040000,113.50 +1972-11-08,113.98,115.23,112.77,113.35,24620000,113.35 +1972-11-06,114.22,115.17,112.91,113.98,21330000,113.98 +1972-11-03,113.23,114.81,112.71,114.22,22510000,114.22 +1972-11-02,112.67,113.81,111.96,113.23,20690000,113.23 +1972-11-01,111.58,113.31,111.32,112.67,21360000,112.67 +1972-10-31,110.59,112.05,110.40,111.58,15450000,111.58 +1972-10-30,110.62,111.19,109.66,110.59,11820000,110.59 +1972-10-27,110.99,111.62,109.99,110.62,15470000,110.62 +1972-10-26,110.72,112.26,110.26,110.99,20790000,110.99 +1972-10-25,110.81,111.56,109.96,110.72,17430000,110.72 +1972-10-24,110.35,111.34,109.38,110.81,15240000,110.81 +1972-10-23,109.51,111.10,109.51,110.35,14190000,110.35 +1972-10-20,108.05,109.79,107.59,109.24,15740000,109.24 +1972-10-19,108.19,108.81,107.40,108.05,13850000,108.05 +1972-10-18,107.50,109.11,107.36,108.19,17290000,108.19 +1972-10-17,106.77,108.04,106.27,107.50,13410000,107.50 +1972-10-16,107.92,108.40,106.38,106.77,10940000,106.77 +1972-10-13,108.60,108.88,107.17,107.92,12870000,107.92 +1972-10-12,109.50,109.69,108.03,108.60,13130000,108.60 +1972-10-11,109.99,110.51,108.77,109.50,11900000,109.50 +1972-10-10,109.90,111.11,109.32,109.99,13310000,109.99 +1972-10-09,109.62,110.44,109.28,109.90,7940000,109.90 +1972-10-06,108.89,110.49,107.78,109.62,16630000,109.62 +1972-10-05,110.09,110.52,108.49,108.89,17730000,108.89 +1972-10-04,110.30,111.35,109.58,110.09,16640000,110.09 +1972-10-03,110.16,110.90,109.47,110.30,13090000,110.30 +1972-10-02,110.55,110.98,109.49,110.16,12440000,110.16 +1972-09-29,110.35,110.55,108.05,110.55,16250000,110.55 +1972-09-28,109.66,110.75,108.75,110.35,14710000,110.35 +1972-09-27,108.12,109.92,107.79,109.66,14620000,109.66 +1972-09-26,108.05,108.97,107.35,108.12,13150000,108.12 +1972-09-25,108.52,109.09,107.67,108.05,10920000,108.05 +1972-09-22,108.43,109.20,107.72,108.52,12570000,108.52 +1972-09-21,108.60,109.13,107.75,108.43,11940000,108.43 +1972-09-20,108.55,109.12,107.84,108.60,11980000,108.60 +1972-09-19,108.61,109.57,108.08,108.55,13330000,108.55 +1972-09-18,108.81,109.22,107.86,108.61,8880000,108.61 +1972-09-15,108.93,109.49,108.10,108.81,11690000,108.81 +1972-09-14,108.90,109.64,108.21,108.93,12500000,108.93 +1972-09-13,108.47,109.36,107.84,108.90,13070000,108.90 +1972-09-12,109.51,109.84,107.81,108.47,13560000,108.47 +1972-09-11,110.15,110.57,109.01,109.51,10710000,109.51 +1972-09-08,110.29,110.90,109.67,110.15,10980000,110.15 +1972-09-07,110.55,111.06,109.71,110.29,11090000,110.29 +1972-09-06,111.23,111.38,110.04,110.55,12010000,110.55 +1972-09-05,111.51,112.08,110.75,111.23,10630000,111.23 +1972-09-01,111.09,112.12,110.70,111.51,11600000,111.51 +1972-08-31,110.57,111.52,110.08,111.09,12340000,111.09 +1972-08-30,110.41,111.33,109.90,110.57,12470000,110.57 +1972-08-29,110.23,111.02,109.26,110.41,12300000,110.41 +1972-08-28,110.67,111.24,109.71,110.23,10720000,110.23 +1972-08-25,111.02,111.53,109.78,110.67,13840000,110.67 +1972-08-24,112.26,112.81,110.62,111.02,18280000,111.02 +1972-08-23,112.41,113.27,111.30,112.26,18670000,112.26 +1972-08-22,111.72,113.16,111.28,112.41,18560000,112.41 +1972-08-21,111.76,112.74,110.75,111.72,14290000,111.72 +1972-08-18,111.34,112.53,110.81,111.76,16150000,111.76 +1972-08-17,111.66,112.41,110.72,111.34,14360000,111.34 +1972-08-16,112.06,112.80,110.87,111.66,14950000,111.66 +1972-08-15,112.55,113.04,111.27,112.06,16670000,112.06 +1972-08-14,111.95,113.45,111.66,112.55,18870000,112.55 +1972-08-11,111.05,112.40,110.52,111.95,16570000,111.95 +1972-08-10,110.86,111.68,110.09,111.05,15260000,111.05 +1972-08-09,110.69,111.57,109.98,110.86,15730000,110.86 +1972-08-08,110.61,111.32,109.67,110.69,14550000,110.69 +1972-08-07,110.43,111.38,109.69,110.61,13220000,110.61 +1972-08-04,110.14,111.12,109.37,110.43,15700000,110.43 +1972-08-03,109.29,110.88,108.90,110.14,19970000,110.14 +1972-08-02,108.40,109.85,108.12,109.29,17920000,109.29 +1972-08-01,107.39,108.85,107.06,108.40,15540000,108.40 +1972-07-31,107.38,108.06,106.60,107.39,11120000,107.39 +1972-07-28,107.28,108.03,106.52,107.38,13050000,107.38 +1972-07-27,107.53,108.31,106.61,107.28,13870000,107.28 +1972-07-26,107.60,108.42,106.79,107.53,14130000,107.53 +1972-07-25,107.92,108.88,107.06,107.60,17180000,107.60 +1972-07-24,106.66,108.67,106.63,107.92,18020000,107.92 +1972-07-21,105.81,107.05,104.99,106.66,14010000,106.66 +1972-07-20,106.14,106.68,105.12,105.81,15050000,105.81 +1972-07-19,105.83,107.36,105.47,106.14,17880000,106.14 +1972-07-18,105.88,106.40,104.43,105.83,16820000,105.83 +1972-07-17,106.80,107.37,105.55,105.88,13170000,105.88 +1972-07-14,106.28,107.58,105.77,106.80,13910000,106.80 +1972-07-13,106.89,107.30,105.62,106.28,14740000,106.28 +1972-07-12,107.32,108.15,106.42,106.89,16150000,106.89 +1972-07-11,108.11,108.35,106.87,107.32,12830000,107.32 +1972-07-10,108.69,109.16,107.62,108.11,11700000,108.11 +1972-07-07,109.04,109.66,108.16,108.69,12900000,108.69 +1972-07-06,108.28,110.27,108.28,109.04,19520000,109.04 +1972-07-05,107.49,108.80,107.14,108.10,14710000,108.10 +1972-07-03,107.14,107.95,106.72,107.49,8140000,107.49 +1972-06-30,106.82,107.91,106.40,107.14,12860000,107.14 +1972-06-29,107.02,107.47,105.94,106.82,14610000,106.82 +1972-06-28,107.37,107.87,106.49,107.02,12140000,107.02 +1972-06-27,107.48,108.29,106.70,107.37,13750000,107.37 +1972-06-26,108.23,108.23,106.68,107.48,12720000,107.48 +1972-06-23,108.68,109.33,107.69,108.27,13940000,108.27 +1972-06-22,108.79,109.26,107.62,108.68,13410000,108.68 +1972-06-21,108.56,109.66,107.98,108.79,15510000,108.79 +1972-06-20,108.11,109.12,107.64,108.56,14970000,108.56 +1972-06-19,108.36,108.78,107.37,108.11,11660000,108.11 +1972-06-16,108.44,108.94,107.54,108.36,13010000,108.36 +1972-06-15,108.39,109.52,107.78,108.44,16940000,108.44 +1972-06-14,107.55,109.15,107.38,108.39,18320000,108.39 +1972-06-13,107.01,108.03,106.38,107.55,15710000,107.55 +1972-06-12,106.86,107.92,106.29,107.01,13390000,107.01 +1972-06-09,107.28,107.68,106.30,106.86,12790000,106.86 +1972-06-08,107.65,108.52,106.90,107.28,13820000,107.28 +1972-06-07,108.21,108.52,106.91,107.65,15220000,107.65 +1972-06-06,108.82,109.32,107.71,108.21,15980000,108.21 +1972-06-05,109.73,109.92,108.28,108.82,13450000,108.82 +1972-06-02,109.69,110.51,108.93,109.73,15400000,109.73 +1972-06-01,109.53,110.35,108.97,109.69,14910000,109.69 +1972-05-31,110.35,110.52,108.92,109.53,15230000,109.53 +1972-05-30,110.66,111.48,109.78,110.35,15810000,110.35 +1972-05-26,110.46,111.31,109.84,110.66,15730000,110.66 +1972-05-25,110.31,111.20,109.67,110.46,16480000,110.46 +1972-05-24,109.78,111.07,109.39,110.31,17870000,110.31 +1972-05-23,109.69,110.46,108.91,109.78,16410000,109.78 +1972-05-22,108.98,110.37,108.79,109.69,16030000,109.69 +1972-05-19,107.94,109.59,107.74,108.98,19580000,108.98 +1972-05-18,106.89,108.39,106.72,107.94,17370000,107.94 +1972-05-17,106.66,107.38,106.02,106.89,13600000,106.89 +1972-05-16,106.86,107.55,106.13,106.66,14070000,106.66 +1972-05-15,106.38,107.45,106.06,106.86,13600000,106.86 +1972-05-12,105.77,107.02,105.49,106.38,13990000,106.38 +1972-05-11,105.42,106.45,104.90,105.77,12900000,105.77 +1972-05-10,104.74,106.10,104.43,105.42,13870000,105.42 +1972-05-09,106.06,106.06,103.83,104.74,19910000,104.74 +1972-05-08,106.63,106.81,105.36,106.14,11250000,106.14 +1972-05-05,106.25,107.33,105.70,106.63,13210000,106.63 +1972-05-04,105.99,106.81,105.14,106.25,14790000,106.25 +1972-05-03,106.08,107.24,105.44,105.99,15900000,105.99 +1972-05-02,106.69,107.37,105.55,106.08,15370000,106.08 +1972-05-01,107.67,108.00,106.30,106.69,12880000,106.69 +1972-04-28,107.05,108.28,106.70,107.67,14160000,107.67 +1972-04-27,106.89,107.89,106.42,107.05,15740000,107.05 +1972-04-26,107.12,107.89,106.18,106.89,17710000,106.89 +1972-04-25,108.19,108.29,106.70,107.12,17030000,107.12 +1972-04-24,108.89,109.19,107.62,108.19,14650000,108.19 +1972-04-21,109.04,109.92,108.30,108.89,18200000,108.89 +1972-04-20,109.20,109.69,108.08,109.04,18190000,109.04 +1972-04-19,109.77,110.35,108.71,109.20,19180000,109.20 +1972-04-18,109.51,110.64,109.02,109.77,19410000,109.77 +1972-04-17,109.84,110.22,108.77,109.51,15390000,109.51 +1972-04-14,109.91,110.56,109.07,109.84,17460000,109.84 +1972-04-13,110.18,110.79,109.37,109.91,17990000,109.91 +1972-04-12,109.76,111.11,109.36,110.18,24690000,110.18 +1972-04-11,109.45,110.38,108.76,109.76,19930000,109.76 +1972-04-10,109.62,110.54,108.89,109.45,19470000,109.45 +1972-04-07,109.53,110.15,108.53,109.62,19900000,109.62 +1972-04-06,109.00,110.29,108.53,109.53,22830000,109.53 +1972-04-05,108.12,109.64,107.96,109.00,22960000,109.00 +1972-04-04,107.48,108.62,106.77,108.12,18110000,108.12 +1972-04-03,107.20,108.26,106.75,107.48,14990000,107.48 +1972-03-30,106.49,107.67,106.07,107.20,14360000,107.20 +1972-03-29,107.17,107.41,105.98,106.49,13860000,106.49 +1972-03-28,107.30,108.08,106.22,107.17,15380000,107.17 +1972-03-27,107.52,108.00,106.53,107.30,12180000,107.30 +1972-03-24,107.75,108.36,106.95,107.52,15390000,107.52 +1972-03-23,106.84,108.33,106.67,107.75,18380000,107.75 +1972-03-22,106.69,107.52,106.00,106.84,15400000,106.84 +1972-03-21,107.59,107.68,105.86,106.69,18610000,106.69 +1972-03-20,107.92,108.81,107.18,107.59,16420000,107.59 +1972-03-17,107.50,108.61,106.89,107.92,16040000,107.92 +1972-03-16,107.75,108.22,106.55,107.50,16700000,107.50 +1972-03-15,107.61,108.55,107.09,107.75,19460000,107.75 +1972-03-14,107.33,108.20,106.71,107.61,22370000,107.61 +1972-03-13,108.38,108.52,106.71,107.33,16730000,107.33 +1972-03-10,108.94,109.37,107.77,108.38,19690000,108.38 +1972-03-09,108.96,109.75,108.19,108.94,21460000,108.94 +1972-03-08,108.87,109.68,108.04,108.96,21290000,108.96 +1972-03-07,108.77,109.72,108.02,108.87,22640000,108.87 +1972-03-06,107.94,109.40,107.64,108.77,21000000,108.77 +1972-03-03,107.32,108.51,106.78,107.94,20420000,107.94 +1972-03-02,107.35,108.39,106.63,107.32,22200000,107.32 +1972-03-01,106.57,108.13,106.21,107.35,23670000,107.35 +1972-02-29,106.19,107.16,105.45,106.57,20320000,106.57 +1972-02-28,106.18,107.04,105.37,106.19,18200000,106.19 +1972-02-25,105.45,106.73,105.04,106.18,18180000,106.18 +1972-02-24,105.38,106.24,104.76,105.45,16000000,105.45 +1972-02-23,105.29,106.18,104.72,105.38,16770000,105.38 +1972-02-22,105.28,106.18,104.65,105.29,16670000,105.29 +1972-02-18,105.59,106.01,104.47,105.28,16590000,105.28 +1972-02-17,105.62,106.65,104.96,105.59,22330000,105.59 +1972-02-16,105.03,106.25,104.65,105.62,20670000,105.62 +1972-02-15,104.59,105.59,104.10,105.03,17770000,105.03 +1972-02-14,105.08,105.53,104.03,104.59,15840000,104.59 +1972-02-11,105.59,105.91,104.45,105.08,17850000,105.08 +1972-02-10,105.55,106.69,104.97,105.59,23460000,105.59 +1972-02-09,104.74,106.03,104.36,105.55,19850000,105.55 +1972-02-08,104.54,105.22,103.90,104.74,17390000,104.74 +1972-02-07,104.86,105.46,103.97,104.54,16930000,104.54 +1972-02-04,104.64,105.48,104.05,104.86,17890000,104.86 +1972-02-03,104.68,105.43,103.85,104.64,19880000,104.64 +1972-02-02,104.01,105.41,103.50,104.68,24070000,104.68 +1972-02-01,103.94,104.57,103.10,104.01,19600000,104.01 +1972-01-31,104.16,104.88,103.30,103.94,18250000,103.94 +1972-01-28,103.50,104.98,103.22,104.16,25000000,104.16 +1972-01-27,102.50,103.93,102.20,103.50,20360000,103.50 +1972-01-26,102.70,103.31,101.81,102.50,14940000,102.50 +1972-01-25,102.57,103.59,101.63,102.70,17570000,102.70 +1972-01-24,103.65,104.03,102.20,102.57,15640000,102.57 +1972-01-21,103.88,104.40,102.75,103.65,18810000,103.65 +1972-01-20,103.88,105.00,103.32,103.88,20210000,103.88 +1972-01-19,104.05,104.61,102.83,103.88,18800000,103.88 +1972-01-18,103.70,104.85,103.35,104.05,21070000,104.05 +1972-01-17,103.39,104.24,102.80,103.70,15860000,103.70 +1972-01-14,102.99,103.89,102.41,103.39,14960000,103.39 +1972-01-13,103.59,103.80,102.29,102.99,16410000,102.99 +1972-01-12,103.65,104.66,103.05,103.59,20970000,103.59 +1972-01-11,103.32,104.30,102.85,103.65,17970000,103.65 +1972-01-10,103.47,103.97,102.44,103.32,15320000,103.32 +1972-01-07,103.51,104.29,102.38,103.47,17140000,103.47 +1972-01-06,103.06,104.20,102.66,103.51,21100000,103.51 +1972-01-05,102.09,103.69,101.90,103.06,21350000,103.06 +1972-01-04,101.67,102.59,100.87,102.09,15190000,102.09 +1972-01-03,102.09,102.85,101.19,101.67,12570000,101.67 +1971-12-31,102.09,102.09,102.09,102.09,14040000,102.09 +1971-12-30,101.78,101.78,101.78,101.78,13810000,101.78 +1971-12-29,102.21,102.21,102.21,102.21,17150000,102.21 +1971-12-28,101.95,101.95,101.95,101.95,15090000,101.95 +1971-12-27,100.95,100.95,100.95,100.95,11890000,100.95 +1971-12-23,100.74,100.74,100.74,100.74,16000000,100.74 +1971-12-22,101.18,101.18,101.18,101.18,18930000,101.18 +1971-12-21,101.80,101.80,101.80,101.80,20460000,101.80 +1971-12-20,101.55,101.55,101.55,101.55,23810000,101.55 +1971-12-17,100.26,100.26,100.26,100.26,18270000,100.26 +1971-12-16,99.74,99.74,99.74,99.74,21070000,99.74 +1971-12-15,98.54,98.54,98.54,98.54,16890000,98.54 +1971-12-14,97.67,97.67,97.67,97.67,16070000,97.67 +1971-12-13,97.97,97.97,97.97,97.97,17020000,97.97 +1971-12-10,97.69,97.69,97.69,97.69,17510000,97.69 +1971-12-09,96.96,96.96,96.96,96.96,14710000,96.96 +1971-12-08,96.87,97.65,96.08,96.92,16650000,96.92 +1971-12-07,96.51,97.35,95.40,96.87,15250000,96.87 +1971-12-06,97.06,98.17,96.07,96.51,17480000,96.51 +1971-12-03,95.84,97.57,95.36,97.06,16760000,97.06 +1971-12-02,95.44,96.59,94.73,95.84,17780000,95.84 +1971-12-01,93.99,96.12,93.95,95.44,21040000,95.44 +1971-11-30,93.41,94.43,92.51,93.99,18320000,93.99 +1971-11-29,92.04,94.90,92.04,93.41,18910000,93.41 +1971-11-26,90.33,92.19,90.27,91.94,10870000,91.94 +1971-11-24,90.16,91.14,89.73,90.33,11870000,90.33 +1971-11-23,90.79,91.10,89.34,90.16,16840000,90.16 +1971-11-22,91.61,92.12,90.51,90.79,11390000,90.79 +1971-11-19,92.13,92.38,90.95,91.61,12420000,91.61 +1971-11-18,92.85,93.62,91.88,92.13,13010000,92.13 +1971-11-17,92.71,93.35,91.80,92.85,12840000,92.85 +1971-11-16,91.81,93.15,91.21,92.71,13300000,92.71 +1971-11-15,92.12,92.69,91.38,91.81,9370000,91.81 +1971-11-12,92.12,92.90,90.93,92.12,14540000,92.12 +1971-11-11,93.41,93.54,91.64,92.12,13310000,92.12 +1971-11-10,94.46,94.84,93.10,93.41,13410000,93.41 +1971-11-09,94.39,95.31,93.94,94.46,12080000,94.46 +1971-11-08,94.46,94.97,93.78,94.39,8520000,94.39 +1971-11-05,94.79,95.01,93.64,94.46,10780000,94.46 +1971-11-04,94.91,96.08,94.37,94.79,15750000,94.79 +1971-11-03,93.27,95.31,93.27,94.91,14590000,94.91 +1971-11-02,92.80,93.73,91.84,93.18,13330000,93.18 +1971-11-01,94.23,94.43,92.48,92.80,10960000,92.80 +1971-10-29,93.96,94.71,93.28,94.23,11710000,94.23 +1971-10-28,93.79,94.75,92.96,93.96,15530000,93.96 +1971-10-27,94.74,94.99,93.39,93.79,13480000,93.79 +1971-10-26,95.02,95.02,94.38,94.74,13390000,94.74 +1971-10-25,95.57,95.76,94.57,95.10,7340000,95.10 +1971-10-22,95.60,96.83,94.97,95.57,14560000,95.57 +1971-10-21,95.65,96.33,94.59,95.60,14990000,95.60 +1971-10-20,97.00,97.45,95.23,95.65,16340000,95.65 +1971-10-19,97.35,97.66,96.05,97.00,13040000,97.00 +1971-10-18,97.79,98.33,96.98,97.35,10420000,97.35 +1971-10-15,98.13,98.45,97.03,97.79,13120000,97.79 +1971-10-14,99.03,99.25,97.74,98.13,12870000,98.13 +1971-10-13,99.57,100.08,98.61,99.03,13540000,99.03 +1971-10-12,99.21,100.20,98.62,99.57,14340000,99.57 +1971-10-11,99.36,99.62,98.58,99.21,7800000,99.21 +1971-10-08,100.02,100.30,98.87,99.36,13870000,99.36 +1971-10-07,99.82,100.96,99.42,100.02,17780000,100.02 +1971-10-06,99.11,100.13,98.49,99.82,15630000,99.82 +1971-10-05,99.21,99.78,98.34,99.11,12360000,99.11 +1971-10-04,98.93,100.04,98.62,99.21,14570000,99.21 +1971-10-01,98.34,99.49,97.96,98.93,13400000,98.93 +1971-09-30,97.90,98.97,97.48,98.34,13490000,98.34 +1971-09-29,97.88,98.51,97.29,97.90,8580000,97.90 +1971-09-28,97.62,98.55,97.12,97.88,11250000,97.88 +1971-09-27,98.15,98.41,96.97,97.62,10220000,97.62 +1971-09-24,98.38,99.35,97.78,98.15,13460000,98.15 +1971-09-23,98.47,99.12,97.61,98.38,13250000,98.38 +1971-09-22,99.34,99.72,98.15,98.47,14250000,98.47 +1971-09-21,99.68,100.08,98.71,99.34,10640000,99.34 +1971-09-20,99.96,100.40,99.14,99.68,9540000,99.68 +1971-09-17,99.66,100.52,99.26,99.96,11020000,99.96 +1971-09-16,99.77,100.35,99.07,99.66,10550000,99.66 +1971-09-15,99.34,100.24,98.79,99.77,11080000,99.77 +1971-09-14,100.07,100.35,98.99,99.34,11410000,99.34 +1971-09-13,100.42,100.84,99.49,100.07,10000000,100.07 +1971-09-10,100.80,101.01,99.69,100.42,11380000,100.42 +1971-09-09,101.34,101.88,100.38,100.80,15790000,100.80 +1971-09-08,101.15,101.94,100.52,101.34,14230000,101.34 +1971-09-07,100.69,102.25,100.43,101.15,17080000,101.15 +1971-09-03,99.29,100.93,99.10,100.69,14040000,100.69 +1971-09-02,99.07,99.80,98.52,99.29,10690000,99.29 +1971-09-01,99.03,99.84,98.50,99.07,10770000,99.07 +1971-08-31,99.52,99.76,98.32,99.03,10430000,99.03 +1971-08-30,100.48,100.89,99.17,99.52,11140000,99.52 +1971-08-27,100.24,101.22,99.76,100.48,12490000,100.48 +1971-08-26,100.41,101.12,99.40,100.24,13990000,100.24 +1971-08-25,100.40,101.51,99.77,100.41,18280000,100.41 +1971-08-24,99.25,101.02,99.15,100.40,18700000,100.40 +1971-08-23,98.33,99.96,98.09,99.25,13040000,99.25 +1971-08-20,98.16,98.94,97.52,98.33,11890000,98.33 +1971-08-19,98.60,99.07,97.35,98.16,14190000,98.16 +1971-08-18,99.99,100.19,98.06,98.60,20680000,98.60 +1971-08-17,98.76,101.00,98.49,99.99,26790000,99.99 +1971-08-16,97.90,100.96,97.90,98.76,31730000,98.76 +1971-08-13,96.00,96.53,95.19,95.69,9960000,95.69 +1971-08-12,94.81,96.50,94.81,96.00,15910000,96.00 +1971-08-11,93.54,95.06,93.35,94.66,11370000,94.66 +1971-08-10,93.53,94.13,92.81,93.54,9460000,93.54 +1971-08-09,94.25,94.55,93.17,93.53,8110000,93.53 +1971-08-06,94.09,94.91,93.63,94.25,9490000,94.25 +1971-08-05,93.89,94.89,93.33,94.09,12100000,94.09 +1971-08-04,94.51,95.34,93.35,93.89,15410000,93.89 +1971-08-03,95.96,96.11,94.06,94.51,13490000,94.51 +1971-08-02,95.58,96.76,95.22,95.96,11870000,95.96 +1971-07-30,96.02,96.78,95.08,95.58,12970000,95.58 +1971-07-29,97.07,97.22,95.37,96.02,14570000,96.02 +1971-07-28,97.78,98.15,96.51,97.07,13940000,97.07 +1971-07-27,98.14,98.99,97.42,97.78,11560000,97.78 +1971-07-26,98.94,99.47,96.67,98.14,9930000,98.14 +1971-07-23,99.11,99.60,98.26,98.94,12370000,98.94 +1971-07-22,99.28,99.82,98.50,99.11,12570000,99.11 +1971-07-21,99.32,100.00,98.74,99.28,11920000,99.28 +1971-07-20,98.93,100.01,98.60,99.32,12540000,99.32 +1971-07-19,99.11,99.57,98.11,98.93,11430000,98.93 +1971-07-16,99.28,100.35,98.64,99.11,13870000,99.11 +1971-07-15,99.22,100.48,98.76,99.28,13080000,99.28 +1971-07-14,99.50,99.83,98.23,99.22,14360000,99.22 +1971-07-13,100.82,101.06,99.07,99.50,13540000,99.50 +1971-07-12,100.69,101.52,100.19,100.82,12020000,100.82 +1971-07-09,100.34,101.33,99.86,100.69,12640000,100.69 +1971-07-08,100.04,101.03,99.59,100.34,13920000,100.34 +1971-07-07,99.76,100.83,99.25,100.04,14520000,100.04 +1971-07-06,99.78,100.35,99.10,99.76,10440000,99.76 +1971-07-02,99.78,100.31,99.09,99.78,9960000,99.78 +1971-07-01,99.16,100.65,99.16,99.78,13090000,99.78 +1971-06-30,98.82,100.29,98.68,98.70,15410000,98.70 +1971-06-29,97.74,99.39,97.61,98.82,14460000,98.82 +1971-06-28,97.99,98.48,97.02,97.74,9810000,97.74 +1971-06-25,98.13,98.66,97.33,97.99,10580000,97.99 +1971-06-24,98.41,99.00,97.59,98.13,11360000,98.13 +1971-06-23,97.59,98.95,97.36,98.41,12640000,98.41 +1971-06-22,97.87,98.66,96.92,97.59,15200000,97.59 +1971-06-21,98.97,99.18,97.22,97.87,16490000,97.87 +1971-06-18,100.50,100.63,98.65,98.97,15040000,98.97 +1971-06-17,100.52,101.37,99.87,100.50,13980000,100.50 +1971-06-16,100.32,101.29,99.68,100.52,14300000,100.52 +1971-06-15,100.22,101.10,99.45,100.32,13550000,100.32 +1971-06-14,101.07,101.28,99.78,100.22,11530000,100.22 +1971-06-11,100.64,101.71,100.18,101.07,12270000,101.07 +1971-06-10,100.29,101.23,99.78,100.64,12450000,100.64 +1971-06-09,100.32,100.97,99.28,100.29,14250000,100.29 +1971-06-08,101.09,101.50,99.91,100.32,13610000,100.32 +1971-06-07,101.30,102.02,100.55,101.09,13800000,101.09 +1971-06-04,101.01,101.88,100.43,101.30,14400000,101.30 +1971-06-03,100.96,102.07,100.30,101.01,18790000,101.01 +1971-06-02,100.20,101.53,99.89,100.96,17740000,100.96 +1971-06-01,99.63,100.76,99.22,100.20,11930000,100.20 +1971-05-28,99.40,100.17,98.68,99.63,11760000,99.63 +1971-05-27,99.59,100.14,98.78,99.40,12610000,99.40 +1971-05-26,99.47,100.49,98.93,99.59,13550000,99.59 +1971-05-25,100.13,100.39,98.73,99.47,16050000,99.47 +1971-05-24,100.99,101.24,99.72,100.13,12060000,100.13 +1971-05-21,101.31,101.84,100.41,100.99,12090000,100.99 +1971-05-20,101.07,102.17,100.61,101.31,11740000,101.31 +1971-05-19,100.83,101.75,100.30,101.07,17640000,101.07 +1971-05-18,100.69,101.62,99.68,100.83,17640000,100.83 +1971-05-17,102.08,102.08,100.25,100.69,15980000,100.69 +1971-05-14,102.69,103.17,101.65,102.21,16430000,102.21 +1971-05-13,102.90,103.57,101.98,102.69,17640000,102.69 +1971-05-12,102.62,103.57,102.12,102.90,15140000,102.90 +1971-05-11,102.36,103.37,101.50,102.62,17730000,102.62 +1971-05-10,102.87,103.15,101.71,102.36,12810000,102.36 +1971-05-07,103.23,103.50,101.86,102.87,16490000,102.87 +1971-05-06,103.78,104.42,102.80,103.23,19300000,103.23 +1971-05-05,103.79,104.28,102.68,103.78,17270000,103.78 +1971-05-04,103.29,104.36,102.71,103.79,17310000,103.79 +1971-05-03,103.95,104.11,102.37,103.29,16120000,103.29 +1971-04-30,104.63,104.96,103.25,103.95,17490000,103.95 +1971-04-29,104.77,105.58,103.90,104.63,20340000,104.63 +1971-04-28,104.59,105.60,103.85,104.77,24820000,104.77 +1971-04-27,103.94,105.07,103.23,104.59,21250000,104.59 +1971-04-26,104.05,104.83,103.19,103.94,18860000,103.94 +1971-04-23,103.56,104.63,102.79,104.05,20150000,104.05 +1971-04-22,103.36,104.27,102.58,103.56,19270000,103.56 +1971-04-21,103.61,104.16,102.55,103.36,17040000,103.36 +1971-04-20,104.01,104.58,103.06,103.61,17880000,103.61 +1971-04-19,103.49,104.63,103.09,104.01,17730000,104.01 +1971-04-16,103.52,104.18,102.68,103.49,18280000,103.49 +1971-04-15,103.37,104.40,102.76,103.52,22540000,103.52 +1971-04-14,102.98,104.01,102.28,103.37,19440000,103.37 +1971-04-13,102.88,103.96,102.25,102.98,23200000,102.98 +1971-04-12,102.10,103.54,101.75,102.88,19410000,102.88 +1971-04-08,101.98,102.86,101.30,102.10,17590000,102.10 +1971-04-07,101.51,102.87,101.13,101.98,22270000,101.98 +1971-04-06,100.79,102.11,100.30,101.51,19990000,101.51 +1971-04-05,100.56,101.41,99.88,100.79,16040000,100.79 +1971-04-02,100.39,101.23,99.86,100.56,14520000,100.56 +1971-04-01,100.31,100.99,99.63,100.39,13470000,100.39 +1971-03-31,100.26,101.05,99.69,100.31,17610000,100.31 +1971-03-30,100.03,100.86,99.41,100.26,15430000,100.26 +1971-03-29,99.95,100.74,99.36,100.03,13650000,100.03 +1971-03-26,99.61,100.65,99.18,99.95,15560000,99.95 +1971-03-25,99.62,100.03,98.36,99.61,15870000,99.61 +1971-03-24,100.28,100.63,99.15,99.62,15770000,99.62 +1971-03-23,100.62,101.06,99.62,100.28,16470000,100.28 +1971-03-22,101.01,101.46,100.08,100.62,14290000,100.62 +1971-03-19,101.19,101.74,100.35,101.01,15150000,101.01 +1971-03-18,101.12,102.03,100.43,101.19,17910000,101.19 +1971-03-17,101.21,101.66,99.98,101.12,17070000,101.12 +1971-03-16,100.71,101.94,100.36,101.21,22270000,101.21 +1971-03-15,99.57,101.15,99.12,100.71,18920000,100.71 +1971-03-12,99.39,100.09,98.64,99.57,14680000,99.57 +1971-03-11,99.30,100.29,98.57,99.39,19830000,99.39 +1971-03-10,99.46,100.10,98.63,99.30,17220000,99.30 +1971-03-09,99.38,100.31,98.72,99.46,20490000,99.46 +1971-03-08,98.96,99.44,98.42,99.38,19340000,99.38 +1971-03-05,97.92,99.49,97.82,98.96,22430000,98.96 +1971-03-04,96.95,98.38,96.90,97.92,17350000,97.92 +1971-03-03,96.98,97.54,96.30,96.95,14680000,96.95 +1971-03-02,97.00,97.60,96.32,96.98,14870000,96.98 +1971-03-01,96.75,97.48,96.11,97.00,13020000,97.00 +1971-02-26,96.96,97.54,95.84,96.75,17250000,96.75 +1971-02-25,96.73,97.71,96.08,96.96,16200000,96.96 +1971-02-24,96.09,97.34,95.86,96.73,15930000,96.73 +1971-02-23,95.72,96.67,94.92,96.09,15080000,96.09 +1971-02-22,96.65,96.65,94.97,95.72,15840000,95.72 +1971-02-19,97.56,97.79,96.25,96.74,17860000,96.74 +1971-02-18,98.20,98.60,96.96,97.56,16650000,97.56 +1971-02-17,98.66,99.32,97.32,98.20,18720000,98.20 +1971-02-16,98.43,99.59,97.85,98.66,21350000,98.66 +1971-02-12,97.91,98.96,97.56,98.43,18470000,98.43 +1971-02-11,97.39,98.49,96.99,97.91,19260000,97.91 +1971-02-10,97.51,97.97,96.23,97.39,19040000,97.39 +1971-02-09,97.45,98.50,96.90,97.51,28250000,97.51 +1971-02-08,96.93,98.04,96.13,97.45,25590000,97.45 +1971-02-05,96.62,97.58,95.84,96.93,20480000,96.93 +1971-02-04,96.63,97.26,95.69,96.62,20860000,96.62 +1971-02-03,96.43,97.19,95.58,96.63,21680000,96.63 +1971-02-02,96.42,97.19,95.60,96.43,22030000,96.43 +1971-02-01,95.88,97.05,95.38,96.42,20650000,96.42 +1971-01-29,95.21,96.49,94.79,95.88,20960000,95.88 +1971-01-28,94.89,95.78,94.12,95.21,18840000,95.21 +1971-01-27,95.59,95.78,93.96,94.89,20640000,94.89 +1971-01-26,95.28,96.36,94.69,95.59,21380000,95.59 +1971-01-25,94.88,95.93,94.16,95.28,19050000,95.28 +1971-01-22,94.19,95.53,93.96,94.88,21680000,94.88 +1971-01-21,93.78,94.69,93.15,94.19,19060000,94.19 +1971-01-20,93.76,94.53,93.07,93.78,18330000,93.78 +1971-01-19,93.41,94.28,92.85,93.76,15800000,93.76 +1971-01-18,93.03,94.11,92.63,93.41,15400000,93.41 +1971-01-15,92.80,93.94,92.25,93.03,18010000,93.03 +1971-01-14,92.56,93.36,91.67,92.80,17600000,92.80 +1971-01-13,92.72,93.66,91.88,92.56,19070000,92.56 +1971-01-12,91.98,93.28,91.63,92.72,17820000,92.72 +1971-01-11,92.19,92.67,90.99,91.98,14720000,91.98 +1971-01-08,92.38,93.02,91.60,92.19,14100000,92.19 +1971-01-07,92.35,93.26,91.75,92.38,16460000,92.38 +1971-01-06,91.80,93.00,91.50,92.35,16960000,92.35 +1971-01-05,91.15,92.28,90.69,91.80,12600000,91.80 +1971-01-04,92.15,92.19,90.64,91.15,10010000,91.15 +1970-12-31,92.27,92.79,91.36,92.15,13390000,92.15 +1970-12-30,92.08,92.99,91.60,92.27,19140000,92.27 +1970-12-29,91.09,92.38,90.73,92.08,17750000,92.08 +1970-12-28,90.61,91.49,90.28,91.09,12290000,91.09 +1970-12-24,90.10,91.08,89.81,90.61,12140000,90.61 +1970-12-23,90.04,90.86,89.35,90.10,15400000,90.10 +1970-12-22,89.94,90.84,89.35,90.04,14510000,90.04 +1970-12-21,90.22,90.77,89.36,89.94,12690000,89.94 +1970-12-18,90.04,90.77,89.42,90.22,14360000,90.22 +1970-12-17,89.72,90.61,89.31,90.04,13660000,90.04 +1970-12-16,89.66,90.22,88.77,89.72,14240000,89.72 +1970-12-15,89.80,90.32,88.93,89.66,13420000,89.66 +1970-12-14,90.26,90.81,89.28,89.80,13810000,89.80 +1970-12-11,89.92,90.93,89.44,90.26,15790000,90.26 +1970-12-10,89.54,90.87,89.01,89.92,14610000,89.92 +1970-12-09,89.47,90.03,88.48,89.54,13550000,89.54 +1970-12-08,89.94,90.47,88.87,89.47,14370000,89.47 +1970-12-07,89.46,90.39,88.76,89.94,15530000,89.94 +1970-12-04,88.90,89.89,88.12,89.46,15980000,89.46 +1970-12-03,88.48,89.87,88.11,88.90,20480000,88.90 +1970-12-02,87.47,88.83,86.72,88.48,17960000,88.48 +1970-12-01,87.20,88.61,86.11,87.47,20170000,87.47 +1970-11-30,85.93,87.60,85.79,87.20,17700000,87.20 +1970-11-27,85.09,86.21,84.67,85.93,10130000,85.93 +1970-11-25,84.78,85.70,84.35,85.09,13490000,85.09 +1970-11-24,84.24,85.18,83.59,84.78,12560000,84.78 +1970-11-23,83.72,84.92,83.47,84.24,12720000,84.24 +1970-11-20,82.91,84.06,82.49,83.72,10920000,83.72 +1970-11-19,82.79,83.48,82.23,82.91,9280000,82.91 +1970-11-18,83.47,83.53,82.41,82.79,9850000,82.79 +1970-11-17,83.24,84.17,82.81,83.47,9450000,83.47 +1970-11-16,83.37,83.75,82.34,83.24,9160000,83.24 +1970-11-13,84.15,84.33,82.92,83.37,11890000,83.37 +1970-11-12,85.03,85.54,83.81,84.15,12520000,84.15 +1970-11-11,84.79,86.24,84.69,85.03,13520000,85.03 +1970-11-10,84.67,85.69,84.18,84.79,12030000,84.79 +1970-11-09,84.22,85.27,83.82,84.67,10890000,84.67 +1970-11-06,84.10,84.73,83.55,84.22,9970000,84.22 +1970-11-05,84.39,84.79,83.53,84.10,10800000,84.10 +1970-11-04,84.22,85.26,83.82,84.39,12180000,84.39 +1970-11-03,83.51,84.77,83.21,84.22,11760000,84.22 +1970-11-02,83.25,83.99,82.66,83.51,9470000,83.51 +1970-10-30,83.36,83.80,82.52,83.25,10520000,83.25 +1970-10-29,83.43,84.10,82.82,83.36,10440000,83.36 +1970-10-28,83.12,83.81,82.29,83.43,10660000,83.43 +1970-10-27,83.31,83.73,82.52,83.12,9680000,83.12 +1970-10-26,83.77,84.26,82.89,83.31,9200000,83.31 +1970-10-23,83.38,84.30,82.91,83.77,10270000,83.77 +1970-10-22,83.66,84.04,82.77,83.38,9000000,83.38 +1970-10-21,83.64,84.72,83.21,83.66,11330000,83.66 +1970-10-20,83.15,84.19,82.62,83.64,10630000,83.64 +1970-10-19,84.28,84.29,82.81,83.15,9890000,83.15 +1970-10-16,84.65,85.21,83.83,84.28,11300000,84.28 +1970-10-15,84.19,85.28,83.82,84.65,11250000,84.65 +1970-10-14,84.06,84.83,83.42,84.19,9920000,84.19 +1970-10-13,84.17,84.70,83.24,84.06,9500000,84.06 +1970-10-12,85.05,85.05,83.58,84.17,8570000,84.17 +1970-10-09,85.95,86.25,84.54,85.08,13980000,85.08 +1970-10-08,86.89,87.37,85.55,85.95,14500000,85.95 +1970-10-07,86.85,87.47,85.55,86.89,15610000,86.89 +1970-10-06,86.47,87.75,86.04,86.85,20240000,86.85 +1970-10-05,85.16,86.99,85.01,86.47,19760000,86.47 +1970-10-02,84.32,85.56,84.06,85.16,15420000,85.16 +1970-10-01,84.30,84.70,83.46,84.32,9700000,84.32 +1970-09-30,83.86,84.99,82.78,84.30,14830000,84.30 +1970-09-29,83.91,84.57,83.11,83.86,17880000,83.86 +1970-09-28,82.83,84.56,82.61,83.91,14390000,83.91 +1970-09-25,81.66,83.60,81.41,82.83,20470000,82.83 +1970-09-24,81.91,82.24,80.82,81.66,21340000,81.66 +1970-09-23,81.86,83.15,81.52,81.91,16940000,81.91 +1970-09-22,81.91,82.24,80.82,81.86,12110000,81.86 +1970-09-21,82.62,83.15,81.52,81.91,12540000,81.91 +1970-09-18,82.29,83.50,81.77,82.62,15900000,82.62 +1970-09-17,81.79,83.09,81.51,82.29,15530000,82.29 +1970-09-16,81.36,82.57,80.61,81.79,12090000,81.79 +1970-09-15,82.07,82.11,80.75,81.36,9830000,81.36 +1970-09-14,82.52,83.13,81.43,82.07,11900000,82.07 +1970-09-11,82.30,83.19,81.81,82.52,12140000,82.52 +1970-09-10,82.79,82.98,81.62,82.30,11900000,82.30 +1970-09-09,83.04,83.78,81.90,82.79,16250000,82.79 +1970-09-08,82.83,83.69,81.48,83.04,17110000,83.04 +1970-09-04,82.09,83.42,81.79,82.83,15360000,82.83 +1970-09-03,80.96,82.63,80.88,82.09,14110000,82.09 +1970-09-02,80.95,81.35,79.95,80.96,9710000,80.96 +1970-09-01,81.52,81.80,80.43,80.95,10960000,80.95 +1970-08-31,81.86,82.33,80.95,81.52,10740000,81.52 +1970-08-28,81.08,82.47,80.69,81.86,13820000,81.86 +1970-08-27,81.21,81.91,80.13,81.08,12440000,81.08 +1970-08-26,81.12,82.26,80.60,81.21,15970000,81.21 +1970-08-25,80.99,81.81,79.69,81.12,17520000,81.12 +1970-08-24,79.41,81.62,79.41,80.99,18910000,80.99 +1970-08-21,77.84,79.60,77.46,79.24,13420000,79.24 +1970-08-20,76.96,77.99,76.30,77.84,10170000,77.84 +1970-08-19,76.20,77.58,76.01,76.96,9870000,76.96 +1970-08-18,75.33,76.79,75.30,76.20,9500000,76.20 +1970-08-17,75.18,75.79,74.52,75.33,6940000,75.33 +1970-08-14,74.76,75.74,74.39,75.18,7850000,75.18 +1970-08-13,75.42,75.69,74.13,74.76,8640000,74.76 +1970-08-12,75.82,76.24,75.04,75.42,7440000,75.42 +1970-08-11,76.20,76.33,75.16,75.82,7330000,75.82 +1970-08-10,77.28,77.40,75.72,76.20,7580000,76.20 +1970-08-07,77.08,78.09,76.46,77.28,9370000,77.28 +1970-08-06,77.18,77.68,76.39,77.08,7560000,77.08 +1970-08-05,77.19,77.86,76.59,77.18,7660000,77.18 +1970-08-04,77.02,77.56,76.12,77.19,8310000,77.19 +1970-08-03,78.05,78.24,76.56,77.02,7650000,77.02 +1970-07-31,78.07,79.03,77.44,78.05,11640000,78.05 +1970-07-30,78.04,78.66,77.36,78.07,10430000,78.07 +1970-07-29,77.77,78.81,77.28,78.04,12580000,78.04 +1970-07-28,77.65,78.35,76.96,77.77,9040000,77.77 +1970-07-27,77.82,78.27,77.07,77.65,7460000,77.65 +1970-07-24,78.00,78.48,76.96,77.82,9520000,77.82 +1970-07-23,77.03,78.51,76.46,78.00,12460000,78.00 +1970-07-22,76.98,78.20,76.22,77.03,12460000,77.03 +1970-07-21,77.79,77.94,76.39,76.98,9940000,76.98 +1970-07-20,77.69,78.72,77.04,77.79,11660000,77.79 +1970-07-17,76.37,78.23,76.37,77.69,13870000,77.69 +1970-07-16,75.23,77.09,75.12,76.34,12200000,76.34 +1970-07-15,74.42,75.68,74.06,75.23,8860000,75.23 +1970-07-14,74.55,75.04,73.78,74.42,7360000,74.42 +1970-07-13,74.45,75.37,73.83,74.55,7450000,74.55 +1970-07-10,74.06,75.21,73.49,74.45,10160000,74.45 +1970-07-09,73.00,74.77,72.88,74.06,12820000,74.06 +1970-07-08,71.23,73.30,70.99,73.00,10970000,73.00 +1970-07-07,71.78,72.32,70.69,71.23,10470000,71.23 +1970-07-06,72.92,73.12,71.38,71.78,9340000,71.78 +1970-07-02,72.94,73.92,72.43,72.92,8440000,72.92 +1970-07-01,72.72,73.66,72.11,72.94,8610000,72.94 +1970-06-30,72.89,73.89,72.25,72.72,9280000,72.72 +1970-06-29,73.47,73.86,72.34,72.89,8770000,72.89 +1970-06-26,74.02,74.68,73.09,73.47,9160000,73.47 +1970-06-25,73.97,74.93,73.30,74.02,8200000,74.02 +1970-06-24,74.76,75.42,73.40,73.97,12630000,73.97 +1970-06-23,76.64,76.83,74.52,74.76,10790000,74.76 +1970-06-22,77.05,77.43,75.61,76.64,8700000,76.64 +1970-06-19,76.51,78.05,76.31,77.05,10980000,77.05 +1970-06-18,76.00,77.17,74.99,76.51,8870000,76.51 +1970-06-17,76.15,78.04,75.63,76.00,9870000,76.00 +1970-06-16,74.58,76.76,74.21,76.15,11330000,76.15 +1970-06-15,73.88,75.27,73.67,74.58,6920000,74.58 +1970-06-12,74.45,74.84,73.25,73.88,8890000,73.88 +1970-06-11,75.48,75.52,73.96,74.45,7770000,74.45 +1970-06-10,76.25,76.62,74.92,75.48,7240000,75.48 +1970-06-09,76.29,79.96,75.58,76.25,7050000,76.25 +1970-06-08,76.17,77.37,75.30,76.29,8040000,76.29 +1970-06-05,77.36,77.48,75.25,76.17,12450000,76.17 +1970-06-04,78.52,79.42,76.99,77.36,14380000,77.36 +1970-06-03,77.84,79.22,76.97,78.52,16600000,78.52 +1970-06-02,77.84,78.73,76.51,77.84,13480000,77.84 +1970-06-01,76.55,78.40,75.84,77.84,15020000,77.84 +1970-05-29,74.61,76.92,73.53,76.55,14630000,76.55 +1970-05-28,72.77,75.44,72.59,74.61,18910000,74.61 +1970-05-27,69.37,73.22,69.37,72.77,17460000,72.77 +1970-05-26,70.25,71.17,68.61,69.29,17030000,69.29 +1970-05-25,72.16,72.16,69.92,70.25,12660000,70.25 +1970-05-22,72.16,73.42,71.42,72.25,12170000,72.25 +1970-05-21,73.51,73.51,70.94,72.16,16710000,72.16 +1970-05-20,75.35,75.35,73.25,73.52,13020000,73.52 +1970-05-19,76.96,77.20,75.21,75.46,9480000,75.46 +1970-05-18,76.90,77.68,76.07,76.96,8280000,76.96 +1970-05-15,75.44,77.42,74.59,76.90,14570000,76.90 +1970-05-14,76.53,76.64,74.03,75.44,13920000,75.44 +1970-05-13,77.75,77.75,75.92,76.53,10720000,76.53 +1970-05-12,78.60,79.15,77.06,77.85,10850000,77.85 +1970-05-11,79.44,79.72,78.29,78.60,6650000,78.60 +1970-05-08,79.83,80.15,78.71,79.44,6930000,79.44 +1970-05-07,79.47,80.60,78.89,79.83,9530000,79.83 +1970-05-06,78.60,80.91,78.23,79.47,14380000,79.47 +1970-05-05,79.37,79.83,78.02,78.60,10580000,78.60 +1970-05-04,81.28,81.28,78.85,79.37,11450000,79.37 +1970-05-01,81.52,82.32,80.27,81.44,8290000,81.44 +1970-04-30,81.81,82.57,80.76,81.52,9880000,81.52 +1970-04-29,80.27,83.23,79.31,81.81,15800000,81.81 +1970-04-28,81.46,82.16,79.86,80.27,12620000,80.27 +1970-04-27,82.77,83.08,81.08,81.46,10240000,81.46 +1970-04-24,83.04,83.62,81.96,82.77,10410000,82.77 +1970-04-23,84.27,84.30,82.61,83.04,11050000,83.04 +1970-04-22,85.38,85.51,83.84,84.27,10780000,84.27 +1970-04-21,85.83,86.54,84.99,85.38,8490000,85.38 +1970-04-20,85.67,86.36,84.99,85.83,8280000,85.83 +1970-04-17,85.88,86.36,84.75,85.67,10990000,85.67 +1970-04-16,86.73,87.13,85.51,85.88,10250000,85.88 +1970-04-15,86.89,87.71,86.53,86.73,9410000,86.73 +1970-04-14,87.64,87.73,86.01,86.89,10840000,86.89 +1970-04-13,88.24,88.67,87.15,87.64,8810000,87.64 +1970-04-10,88.53,89.14,87.82,88.24,10020000,88.24 +1970-04-09,88.49,89.32,87.96,88.53,9060000,88.53 +1970-04-08,88.52,89.09,87.83,88.49,9070000,88.49 +1970-04-07,88.76,89.31,87.94,88.52,8490000,88.52 +1970-04-06,89.39,89.61,88.15,88.76,8380000,88.76 +1970-04-03,89.79,90.16,88.81,89.39,9920000,89.39 +1970-04-02,90.07,90.70,89.28,89.79,10520000,89.79 +1970-04-01,89.63,90.62,89.30,90.07,9810000,90.07 +1970-03-31,89.63,90.17,88.85,89.63,8370000,89.63 +1970-03-30,89.92,90.41,88.91,89.63,9600000,89.63 +1970-03-26,89.77,90.65,89.18,89.92,11350000,89.92 +1970-03-25,88.11,91.07,88.11,89.77,17500000,89.77 +1970-03-24,86.99,88.43,86.90,87.98,8840000,87.98 +1970-03-23,87.06,87.64,86.19,86.99,7330000,86.99 +1970-03-20,87.42,87.77,86.43,87.06,7910000,87.06 +1970-03-19,87.54,88.20,86.88,87.42,8930000,87.42 +1970-03-18,87.29,88.28,86.93,87.54,9790000,87.54 +1970-03-17,86.91,87.86,86.36,87.29,9090000,87.29 +1970-03-16,87.86,87.97,86.39,86.91,8910000,86.91 +1970-03-13,88.33,89.43,87.29,87.86,9560000,87.86 +1970-03-12,88.69,89.09,87.68,88.33,9140000,88.33 +1970-03-11,88.75,89.58,88.11,88.69,9180000,88.69 +1970-03-10,88.51,89.41,87.89,88.75,9450000,88.75 +1970-03-09,89.43,89.43,87.94,88.51,9760000,88.51 +1970-03-06,90.00,90.36,88.84,89.44,10980000,89.44 +1970-03-05,90.04,90.99,89.38,90.00,11370000,90.00 +1970-03-04,90.23,91.05,89.32,90.04,11850000,90.04 +1970-03-03,89.71,90.67,88.96,90.23,11700000,90.23 +1970-03-02,89.50,90.80,88.92,89.71,12270000,89.71 +1970-02-27,88.90,90.33,88.42,89.50,12890000,89.50 +1970-02-26,89.35,89.63,87.63,88.90,11540000,88.90 +1970-02-25,87.99,89.80,87.11,89.35,13210000,89.35 +1970-02-24,88.03,88.91,87.28,87.99,10810000,87.99 +1970-02-20,87.76,88.74,86.87,88.03,10790000,88.03 +1970-02-19,87.44,88.70,86.94,87.76,12890000,87.76 +1970-02-18,86.37,88.07,86.19,87.44,11950000,87.44 +1970-02-17,86.47,87.08,85.57,86.37,10140000,86.37 +1970-02-16,86.54,87.30,85.80,86.47,19780000,86.47 +1970-02-13,86.73,87.30,85.71,86.54,11060000,86.54 +1970-02-12,86.94,87.54,85.93,86.73,10010000,86.73 +1970-02-11,86.10,87.38,85.30,86.94,12260000,86.94 +1970-02-10,87.01,87.40,85.58,86.10,10110000,86.10 +1970-02-09,86.33,87.85,86.16,87.01,10830000,87.01 +1970-02-06,85.90,86.88,85.23,86.33,10150000,86.33 +1970-02-05,86.24,86.62,84.95,85.90,9430000,85.90 +1970-02-04,86.77,87.66,85.59,86.24,11040000,86.24 +1970-02-03,85.75,87.54,84.64,86.77,16050000,86.77 +1970-02-02,85.02,86.76,84.76,85.75,13440000,85.75 +1970-01-30,85.69,86.33,84.42,85.02,12320000,85.02 +1970-01-29,86.79,87.09,85.02,85.69,12210000,85.69 +1970-01-28,87.62,88.24,86.44,86.79,10510000,86.79 +1970-01-27,88.17,88.54,86.92,87.62,9630000,87.62 +1970-01-26,89.23,89.23,87.49,88.17,10670000,88.17 +1970-01-23,90.04,90.45,88.74,89.37,11000000,89.37 +1970-01-22,89.95,90.80,89.20,90.04,11050000,90.04 +1970-01-21,89.83,90.61,89.20,89.95,9880000,89.95 +1970-01-20,89.65,90.45,88.64,89.83,11050000,89.83 +1970-01-19,90.72,90.72,89.14,89.65,9500000,89.65 +1970-01-16,91.68,92.49,90.36,90.92,11940000,90.92 +1970-01-15,91.65,92.35,90.73,91.68,11120000,91.68 +1970-01-14,91.92,92.40,90.88,91.65,10380000,91.65 +1970-01-13,91.70,92.61,90.99,91.92,9870000,91.92 +1970-01-12,92.40,92.67,91.20,91.70,8900000,91.70 +1970-01-09,92.68,93.25,91.82,92.40,9380000,92.40 +1970-01-08,92.63,93.47,91.99,92.68,10670000,92.68 +1970-01-07,92.82,93.38,91.93,92.63,10010000,92.63 +1970-01-06,93.46,93.81,92.13,92.82,11460000,92.82 +1970-01-05,93.00,94.25,92.53,93.46,11490000,93.46 +1970-01-02,92.06,93.54,91.79,93.00,8050000,93.00 +1969-12-31,91.60,92.94,91.15,92.06,19380000,92.06 +1969-12-30,91.25,92.20,90.47,91.60,15790000,91.60 +1969-12-29,91.89,92.49,90.66,91.25,12500000,91.25 +1969-12-26,91.18,92.30,90.94,91.89,6750000,91.89 +1969-12-24,90.23,91.89,89.93,91.18,11670000,91.18 +1969-12-23,90.58,91.13,89.40,90.23,13890000,90.23 +1969-12-22,91.38,92.03,90.10,90.58,12680000,90.58 +1969-12-19,90.61,92.34,90.33,91.38,15420000,91.38 +1969-12-18,89.20,91.15,88.62,90.61,15950000,90.61 +1969-12-17,89.72,90.32,88.94,89.20,12840000,89.20 +1969-12-16,90.54,91.05,89.23,89.72,11880000,89.72 +1969-12-15,90.81,91.42,89.96,90.54,11100000,90.54 +1969-12-12,90.52,91.67,90.05,90.81,11630000,90.81 +1969-12-11,90.48,91.37,89.74,90.52,10430000,90.52 +1969-12-10,90.55,91.22,89.33,90.48,12590000,90.48 +1969-12-09,90.84,91.79,89.93,90.55,12290000,90.55 +1969-12-08,91.73,92.05,90.29,90.84,9990000,90.84 +1969-12-05,91.95,92.91,91.14,91.73,11150000,91.73 +1969-12-04,91.65,92.45,90.36,91.95,13230000,91.95 +1969-12-03,92.65,93.05,91.25,91.65,11300000,91.65 +1969-12-02,93.22,93.54,91.95,92.65,9940000,92.65 +1969-12-01,93.81,94.47,92.78,93.22,9950000,93.22 +1969-11-28,93.27,94.41,92.88,93.81,8550000,93.81 +1969-11-26,92.94,93.85,92.24,93.27,10630000,93.27 +1969-11-25,93.24,94.17,92.38,92.94,11560000,92.94 +1969-11-24,94.32,94.43,92.63,93.24,10940000,93.24 +1969-11-21,94.91,95.34,93.87,94.32,9840000,94.32 +1969-11-20,95.90,95.94,94.12,94.91,12010000,94.91 +1969-11-19,96.39,96.95,95.36,95.90,11240000,95.90 +1969-11-18,96.41,97.00,95.57,96.39,11010000,96.39 +1969-11-17,97.07,97.36,95.82,96.41,10120000,96.41 +1969-11-14,97.42,97.44,96.36,97.07,10580000,97.07 +1969-11-13,97.89,98.34,96.54,97.42,12090000,97.42 +1969-11-12,98.07,98.72,97.28,97.89,12480000,97.89 +1969-11-11,98.33,98.79,97.45,98.07,10080000,98.07 +1969-11-10,98.26,99.23,97.65,98.33,12490000,98.33 +1969-11-07,97.67,99.01,97.18,98.26,13280000,98.26 +1969-11-06,97.64,98.31,96.80,97.67,11110000,97.67 +1969-11-05,97.21,98.39,96.75,97.64,12110000,97.64 +1969-11-04,97.15,97.82,95.84,97.21,12340000,97.21 +1969-11-03,97.12,97.82,96.19,97.15,11140000,97.15 +1969-10-31,96.93,98.03,96.33,97.12,13100000,97.12 +1969-10-30,96.81,97.47,95.61,96.93,12820000,96.93 +1969-10-29,97.66,97.92,96.26,96.81,12380000,96.81 +1969-10-28,97.97,98.55,97.02,97.66,12410000,97.66 +1969-10-27,98.12,98.78,97.49,97.97,12160000,97.97 +1969-10-24,97.46,98.83,96.97,98.12,15430000,98.12 +1969-10-23,97.83,98.39,96.46,97.46,14780000,97.46 +1969-10-22,97.20,98.61,96.56,97.83,19320000,97.83 +1969-10-21,96.46,97.84,95.86,97.20,16460000,97.20 +1969-10-20,96.26,97.17,95.29,96.46,13540000,96.46 +1969-10-17,96.37,97.24,95.38,96.26,13740000,96.26 +1969-10-16,95.72,97.54,95.05,96.37,19500000,96.37 +1969-10-15,95.70,96.56,94.65,95.72,15740000,95.72 +1969-10-14,94.55,96.53,94.32,95.70,19950000,95.70 +1969-10-13,93.56,94.86,93.20,94.55,13620000,94.55 +1969-10-10,93.03,94.19,92.60,93.56,12210000,93.56 +1969-10-09,92.67,93.55,91.75,93.03,10420000,93.03 +1969-10-08,93.09,93.56,92.04,92.67,10370000,92.67 +1969-10-07,93.38,94.03,92.59,93.09,10050000,93.09 +1969-10-06,93.19,93.99,92.50,93.38,9180000,93.38 +1969-10-03,93.24,94.39,92.65,93.19,12410000,93.19 +1969-10-02,92.52,93.63,91.66,93.24,11430000,93.24 +1969-10-01,93.12,93.51,92.12,92.52,9090000,92.52 +1969-09-30,93.41,94.05,92.55,93.12,9180000,93.12 +1969-09-29,94.16,94.45,92.62,93.41,10170000,93.41 +1969-09-26,94.77,95.23,93.53,94.16,9680000,94.16 +1969-09-25,95.50,95.92,94.28,94.77,10690000,94.77 +1969-09-24,95.63,96.20,94.75,95.50,11320000,95.50 +1969-09-23,95.63,96.62,94.86,95.63,13030000,95.63 +1969-09-22,95.19,96.13,94.58,95.63,9280000,95.63 +1969-09-19,94.90,95.92,94.35,95.19,12270000,95.19 +1969-09-18,94.76,95.53,94.05,94.90,11170000,94.90 +1969-09-17,94.95,95.70,94.04,94.76,10980000,94.76 +1969-09-16,94.87,95.73,94.06,94.95,11160000,94.95 +1969-09-15,94.13,95.61,93.73,94.87,10680000,94.87 +1969-09-12,94.22,95.04,93.26,94.13,10800000,94.13 +1969-09-11,94.95,95.77,93.72,94.22,12370000,94.22 +1969-09-10,93.38,95.35,93.23,94.95,11490000,94.95 +1969-09-09,92.70,93.94,91.77,93.38,10980000,93.38 +1969-09-08,93.64,93.76,92.35,92.70,8310000,92.70 +1969-09-05,94.20,94.51,93.09,93.64,8890000,93.64 +1969-09-04,94.98,95.20,93.66,94.20,9380000,94.20 +1969-09-03,95.54,96.11,94.38,94.98,8760000,94.98 +1969-09-02,95.51,96.31,94.85,95.54,8560000,95.54 +1969-08-29,94.89,95.51,94.46,95.51,8850000,95.51 +1969-08-28,94.49,95.38,94.04,94.89,7730000,94.89 +1969-08-27,94.30,95.16,93.76,94.49,9100000,94.49 +1969-08-26,94.93,95.04,93.65,94.30,8910000,94.30 +1969-08-25,95.92,96.13,94.52,94.93,8410000,94.93 +1969-08-22,95.35,96.43,94.91,95.92,10140000,95.92 +1969-08-21,95.07,95.87,94.56,95.35,8420000,95.35 +1969-08-20,95.07,95.64,94.25,95.07,9680000,95.07 +1969-08-19,94.57,95.18,93.95,95.07,12640000,95.07 +1969-08-18,94.00,95.00,93.51,94.57,9420000,94.57 +1969-08-15,93.34,94.50,92.92,94.00,10210000,94.00 +1969-08-14,92.70,93.87,92.32,93.34,9690000,93.34 +1969-08-13,92.63,93.26,91.48,92.70,9910000,92.70 +1969-08-12,93.36,93.66,92.19,92.63,7870000,92.63 +1969-08-11,93.94,94.24,92.77,93.36,6680000,93.36 +1969-08-08,93.99,94.63,93.29,93.94,8760000,93.94 +1969-08-07,93.92,94.77,93.17,93.99,9450000,93.99 +1969-08-06,93.41,94.76,93.02,93.92,11100000,93.92 +1969-08-05,92.99,94.02,92.13,93.41,8940000,93.41 +1969-08-04,93.47,94.42,92.29,92.99,10700000,92.99 +1969-08-01,91.92,94.19,91.92,93.47,15070000,93.47 +1969-07-31,89.96,92.40,89.96,91.83,14160000,91.83 +1969-07-30,89.48,90.82,88.04,89.93,15580000,89.93 +1969-07-29,90.21,91.56,89.06,89.48,13630000,89.48 +1969-07-28,91.91,91.91,89.83,90.21,11800000,90.21 +1969-07-25,92.80,93.28,91.54,92.06,9800000,92.06 +1969-07-24,93.12,93.87,92.29,92.80,9750000,92.80 +1969-07-23,93.52,93.99,92.07,93.12,11680000,93.12 +1969-07-22,94.95,95.45,93.15,93.52,9780000,93.52 +1969-07-18,95.76,95.84,94.18,94.95,8590000,94.95 +1969-07-17,95.18,96.71,95.07,95.76,10450000,95.76 +1969-07-16,94.24,95.83,94.22,95.18,10470000,95.18 +1969-07-15,94.55,95.00,93.11,94.24,11110000,94.24 +1969-07-14,95.77,96.17,94.20,94.55,8310000,94.55 +1969-07-11,95.38,96.65,94.81,95.77,11730000,95.77 +1969-07-10,96.88,97.04,95.03,95.38,11450000,95.38 +1969-07-09,97.63,97.85,96.33,96.88,9320000,96.88 +1969-07-08,98.98,98.98,97.15,97.63,9320000,97.63 +1969-07-07,99.61,100.33,98.45,99.03,9970000,99.03 +1969-07-03,98.94,100.25,98.62,99.61,10110000,99.61 +1969-07-02,98.08,99.50,97.81,98.94,11350000,98.94 +1969-07-01,97.71,98.66,97.13,98.08,9890000,98.08 +1969-06-30,97.33,98.64,96.82,97.71,8640000,97.71 +1969-06-27,97.25,98.15,96.65,97.33,9020000,97.33 +1969-06-26,97.01,97.91,95.97,97.25,10310000,97.25 +1969-06-25,97.32,98.30,96.56,97.01,10490000,97.01 +1969-06-24,96.29,98.04,96.29,97.32,11460000,97.32 +1969-06-23,96.67,97.17,95.21,96.23,12900000,96.23 +1969-06-20,97.24,98.22,96.29,96.67,11360000,96.67 +1969-06-19,97.81,98.38,96.61,97.24,11160000,97.24 +1969-06-18,97.95,99.20,97.45,97.81,11290000,97.81 +1969-06-17,98.32,98.71,96.88,97.95,12210000,97.95 +1969-06-16,98.65,99.64,97.91,98.32,10400000,98.32 +1969-06-13,98.26,99.51,97.59,98.65,13070000,98.65 +1969-06-12,99.05,99.78,97.96,98.26,11790000,98.26 +1969-06-11,100.42,100.71,99.02,99.05,13640000,99.05 +1969-06-10,101.20,101.76,100.02,100.42,10660000,100.42 +1969-06-09,102.12,102.16,100.54,101.20,10650000,101.20 +1969-06-06,102.76,103.41,101.68,102.12,12520000,102.12 +1969-06-05,102.59,103.45,102.05,102.76,12350000,102.76 +1969-06-04,102.63,103.45,102.07,102.59,10840000,102.59 +1969-06-03,102.94,103.60,102.09,102.63,11190000,102.63 +1969-06-02,103.46,103.75,102.40,102.94,9180000,102.94 +1969-05-29,103.26,104.27,102.76,103.46,11770000,103.46 +1969-05-28,103.57,103.91,102.29,103.26,11330000,103.26 +1969-05-27,104.36,104.68,103.12,103.57,10580000,103.57 +1969-05-26,104.59,105.14,103.80,104.36,9030000,104.36 +1969-05-23,104.60,105.32,103.78,104.59,10900000,104.59 +1969-05-22,104.47,105.66,103.92,104.60,13710000,104.60 +1969-05-21,104.04,105.03,103.37,104.47,12100000,104.47 +1969-05-20,104.97,105.16,103.56,104.04,10280000,104.04 +1969-05-19,105.94,106.15,104.52,104.97,9790000,104.97 +1969-05-16,105.85,106.59,105.18,105.94,12280000,105.94 +1969-05-15,106.16,106.69,105.08,105.85,11930000,105.85 +1969-05-14,105.34,106.74,105.07,106.16,14360000,106.16 +1969-05-13,104.89,105.91,104.31,105.34,12910000,105.34 +1969-05-12,105.05,105.65,104.12,104.89,10550000,104.89 +1969-05-09,105.10,106.01,104.35,105.05,12530000,105.05 +1969-05-08,104.67,105.74,104.10,105.10,13050000,105.10 +1969-05-07,104.86,105.59,103.83,104.67,14030000,104.67 +1969-05-06,104.37,105.50,103.84,104.86,14700000,104.86 +1969-05-05,104.00,105.08,103.48,104.37,13300000,104.37 +1969-05-02,103.51,104.63,102.98,104.00,13070000,104.00 +1969-05-01,103.69,104.59,102.74,103.51,14380000,103.51 +1969-04-30,102.79,104.56,102.50,103.69,19350000,103.69 +1969-04-29,102.03,103.31,101.51,102.79,14730000,102.79 +1969-04-28,101.72,102.65,100.97,102.03,11120000,102.03 +1969-04-25,101.27,102.29,100.81,101.72,12480000,101.72 +1969-04-24,100.80,101.80,100.21,101.27,11340000,101.27 +1969-04-23,100.78,101.77,100.15,100.80,12220000,100.80 +1969-04-22,100.56,101.29,99.52,100.78,10250000,100.78 +1969-04-21,101.24,101.68,100.11,100.56,10010000,100.56 +1969-04-18,100.78,102.09,100.30,101.24,10850000,101.24 +1969-04-17,100.63,101.41,99.99,100.78,9360000,100.78 +1969-04-16,101.53,101.78,100.16,100.63,9680000,100.63 +1969-04-15,101.57,102.15,100.76,101.53,9610000,101.53 +1969-04-14,101.65,102.40,101.02,101.57,8990000,101.57 +1969-04-11,101.55,102.28,100.97,101.65,10650000,101.65 +1969-04-10,101.02,102.22,100.73,101.55,12200000,101.55 +1969-04-09,100.14,101.44,99.88,101.02,12530000,101.02 +1969-04-08,99.89,101.27,99.35,100.14,9360000,100.14 +1969-04-07,100.63,100.63,99.08,99.89,9430000,99.89 +1969-04-03,100.78,101.30,99.87,100.68,10300000,100.68 +1969-04-02,101.42,101.65,100.61,100.78,10110000,100.78 +1969-04-01,101.51,102.45,100.84,101.42,12360000,101.42 +1969-03-28,101.10,102.35,100.73,101.51,12430000,101.51 +1969-03-27,100.39,101.81,100.03,101.10,11900000,101.10 +1969-03-26,99.66,100.86,99.24,100.39,11030000,100.39 +1969-03-25,99.50,100.30,98.88,99.66,9820000,99.66 +1969-03-24,99.63,100.16,98.85,99.50,8110000,99.50 +1969-03-21,99.84,100.37,98.88,99.63,9830000,99.63 +1969-03-20,99.21,100.39,98.90,99.84,10260000,99.84 +1969-03-19,98.49,99.70,98.03,99.21,9740000,99.21 +1969-03-18,98.25,99.41,97.83,98.49,11210000,98.49 +1969-03-17,98.00,98.71,97.06,98.25,9150000,98.25 +1969-03-14,98.39,98.70,97.40,98.00,8640000,98.00 +1969-03-13,99.05,99.35,97.82,98.39,10030000,98.39 +1969-03-12,99.32,99.87,98.35,99.05,8720000,99.05 +1969-03-11,98.99,100.14,98.58,99.32,9870000,99.32 +1969-03-10,98.65,99.47,97.87,98.99,8920000,98.99 +1969-03-07,98.70,99.13,97.32,98.65,10830000,98.65 +1969-03-06,99.71,99.93,98.11,98.70,9670000,98.70 +1969-03-05,99.32,100.48,98.95,99.71,11370000,99.71 +1969-03-04,98.38,99.76,98.17,99.32,9320000,99.32 +1969-03-03,98.13,99.08,97.61,98.38,8260000,98.38 +1969-02-28,98.14,99.02,97.53,98.13,8990000,98.13 +1969-02-27,98.45,99.00,97.50,98.14,9670000,98.14 +1969-02-26,97.98,99.10,97.36,98.45,9540000,98.45 +1969-02-25,98.60,99.65,97.50,97.98,9540000,97.98 +1969-02-24,99.79,100.07,98.09,98.60,12730000,98.60 +1969-02-20,100.65,101.03,99.29,99.79,10990000,99.79 +1969-02-19,101.40,102.07,100.30,100.65,10390000,100.65 +1969-02-18,102.27,102.27,100.58,101.40,12490000,101.40 +1969-02-17,103.61,104.03,102.04,102.44,11670000,102.44 +1969-02-14,103.71,104.37,102.88,103.61,11460000,103.61 +1969-02-13,103.63,104.36,102.86,103.71,12010000,103.71 +1969-02-12,103.65,104.34,102.98,103.63,11530000,103.63 +1969-02-11,103.53,104.61,102.96,103.65,12320000,103.65 +1969-02-07,103.54,104.22,102.50,103.53,12780000,103.53 +1969-02-06,103.20,104.30,102.55,103.54,12570000,103.54 +1969-02-05,102.92,103.84,102.26,103.20,13750000,103.20 +1969-02-04,102.89,103.59,102.15,102.92,12550000,102.92 +1969-02-03,103.01,103.75,102.04,102.89,12510000,102.89 +1969-01-31,102.55,103.64,102.08,103.01,12020000,103.01 +1969-01-30,102.51,103.33,101.73,102.55,13010000,102.55 +1969-01-29,102.41,103.31,101.69,102.51,11470000,102.51 +1969-01-28,102.40,103.30,101.56,102.41,12070000,102.41 +1969-01-27,102.38,103.15,101.64,102.40,11020000,102.40 +1969-01-24,102.43,103.23,101.71,102.38,12520000,102.38 +1969-01-23,101.98,103.21,101.57,102.43,13140000,102.43 +1969-01-22,101.63,102.55,101.06,101.98,11480000,101.98 +1969-01-21,101.69,102.40,100.88,101.63,10910000,101.63 +1969-01-20,102.03,102.60,101.00,101.69,10950000,101.69 +1969-01-17,102.18,103.06,101.32,102.03,11590000,102.03 +1969-01-16,101.62,103.25,101.27,102.18,13120000,102.18 +1969-01-15,101.13,102.48,100.78,101.62,11810000,101.62 +1969-01-14,100.44,101.63,99.04,101.13,10700000,101.13 +1969-01-13,100.93,101.35,96.63,100.44,11160000,100.44 +1969-01-10,101.22,102.14,100.32,100.93,12680000,100.93 +1969-01-09,100.80,102.09,100.35,101.22,12100000,101.22 +1969-01-08,101.22,102.12,100.14,100.80,13840000,100.80 +1969-01-07,102.47,102.68,100.15,101.22,15740000,101.22 +1969-01-06,103.99,104.36,101.94,102.47,12720000,102.47 +1969-01-03,103.93,104.87,103.17,103.99,12750000,103.99 +1969-01-02,103.86,104.85,103.21,103.93,9800000,103.93 +1968-12-31,103.80,104.61,102.98,103.86,13130000,103.86 +1968-12-30,104.74,104.99,103.09,103.80,12080000,103.80 +1968-12-27,105.15,105.87,104.20,104.74,11200000,104.74 +1968-12-26,105.04,106.03,104.29,105.15,9670000,105.15 +1968-12-24,105.21,105.95,104.37,105.04,11540000,105.04 +1968-12-23,106.34,106.68,104.61,105.21,12970000,105.21 +1968-12-20,106.97,107.98,105.73,106.34,15910000,106.34 +1968-12-19,106.66,107.67,105.10,106.97,19630000,106.97 +1968-12-17,107.10,107.65,105.86,106.66,14700000,106.66 +1968-12-16,107.58,108.40,106.40,107.10,15950000,107.10 +1968-12-13,107.32,108.50,106.56,107.58,16740000,107.58 +1968-12-12,107.39,108.43,106.33,107.32,18160000,107.32 +1968-12-10,107.66,108.33,106.68,107.39,14500000,107.39 +1968-12-09,107.93,108.77,106.89,107.66,15800000,107.66 +1968-12-06,107.67,108.91,106.85,107.93,15320000,107.93 +1968-12-05,108.02,108.90,106.71,107.67,19330000,107.67 +1968-12-03,108.12,108.74,107.02,108.02,15460000,108.02 +1968-12-02,108.37,109.37,107.15,108.12,15390000,108.12 +1968-11-29,107.76,109.09,107.32,108.37,14390000,108.37 +1968-11-27,107.26,108.55,106.59,107.76,16550000,107.76 +1968-11-26,106.48,107.93,106.11,107.26,16360000,107.26 +1968-11-25,106.30,107.29,105.47,106.48,14490000,106.48 +1968-11-22,105.97,106.89,105.21,106.30,15420000,106.30 +1968-11-21,106.14,106.77,104.85,105.97,18320000,105.97 +1968-11-19,105.92,106.84,105.06,106.14,15120000,106.14 +1968-11-18,105.78,106.74,105.05,105.92,14390000,105.92 +1968-11-15,105.20,106.44,104.61,105.78,15040000,105.78 +1968-11-14,105.13,106.01,104.34,105.20,14900000,105.20 +1968-11-13,104.62,105.76,104.08,105.13,15660000,105.13 +1968-11-12,103.95,105.28,103.51,104.62,17250000,104.62 +1968-11-08,103.50,104.59,102.96,103.95,14250000,103.95 +1968-11-07,103.27,104.47,102.31,103.50,11660000,103.50 +1968-11-06,103.10,104.41,102.45,103.27,12640000,103.27 +1968-11-04,103.06,103.69,101.85,103.10,10930000,103.10 +1968-11-01,103.41,104.30,102.36,103.06,14480000,103.06 +1968-10-31,103.30,104.57,102.43,103.41,17650000,103.41 +1968-10-29,103.90,104.50,102.65,103.30,12340000,103.30 +1968-10-28,104.20,104.89,103.16,103.90,11740000,103.90 +1968-10-25,103.84,104.81,103.14,104.20,14150000,104.20 +1968-10-24,104.57,105.15,103.15,103.84,18300000,103.84 +1968-10-22,104.99,105.48,103.84,104.57,13970000,104.57 +1968-10-21,104.82,105.78,104.09,104.99,14380000,104.99 +1968-10-18,104.01,105.34,103.54,104.82,15130000,104.82 +1968-10-17,103.81,105.01,103.81,104.01,21060000,104.01 +1968-10-15,103.32,104.25,102.66,103.53,13410000,103.53 +1968-10-14,103.18,104.03,102.48,103.32,11980000,103.32 +1968-10-11,103.29,103.90,102.39,103.18,12650000,103.18 +1968-10-10,103.74,104.30,102.61,103.29,17000000,103.29 +1968-10-08,103.70,104.45,102.84,103.74,14000000,103.74 +1968-10-07,103.71,104.40,102.93,103.70,12420000,103.70 +1968-10-04,103.22,104.35,102.65,103.71,15350000,103.71 +1968-10-03,102.86,104.13,102.34,103.22,21110000,103.22 +1968-10-01,102.67,103.58,101.80,102.86,15560000,102.86 +1968-09-30,102.31,103.29,101.71,102.67,13610000,102.67 +1968-09-27,102.36,103.07,101.36,102.31,13860000,102.31 +1968-09-26,102.59,103.63,101.59,102.36,18950000,102.36 +1968-09-24,102.24,103.21,101.59,102.59,15210000,102.59 +1968-09-23,101.66,102.82,101.20,102.24,11550000,102.24 +1968-09-20,101.59,102.37,100.81,101.66,14190000,101.66 +1968-09-19,101.50,102.53,100.84,101.59,17910000,101.59 +1968-09-17,101.24,102.18,100.64,101.50,13920000,101.50 +1968-09-16,100.86,102.01,100.33,101.24,13260000,101.24 +1968-09-13,100.52,101.53,99.89,100.86,13070000,100.86 +1968-09-12,100.73,101.40,99.70,100.52,14630000,100.52 +1968-09-10,101.23,101.81,100.12,100.73,11430000,100.73 +1968-09-09,101.20,102.09,100.47,101.23,11890000,101.23 +1968-09-06,100.74,101.88,100.23,101.20,13180000,101.20 +1968-09-05,100.02,101.34,99.63,100.74,12980000,100.74 +1968-09-04,99.32,100.49,98.95,100.02,10040000,100.02 +1968-09-03,98.86,99.89,98.31,99.32,8620000,99.32 +1968-08-30,98.74,99.52,98.20,98.86,8190000,98.86 +1968-08-29,98.81,99.49,97.90,98.74,10940000,98.74 +1968-08-27,98.94,99.61,98.16,98.81,9710000,98.81 +1968-08-26,98.69,99.67,98.29,98.94,9740000,98.94 +1968-08-23,98.70,99.57,97.71,98.69,9890000,98.69 +1968-08-22,98.96,99.58,97.71,98.70,15140000,98.70 +1968-08-20,99.00,99.65,98.08,98.96,10640000,98.96 +1968-08-19,98.68,99.64,98.16,99.00,9900000,99.00 +1968-08-16,98.07,99.21,97.62,98.68,9940000,98.68 +1968-08-15,98.53,99.36,97.48,98.07,12710000,98.07 +1968-08-13,98.01,99.20,97.68,98.53,12730000,98.53 +1968-08-12,97.01,98.49,96.72,98.01,10420000,98.01 +1968-08-09,97.04,97.56,96.11,97.01,8390000,97.01 +1968-08-08,97.25,98.32,96.58,97.04,12920000,97.04 +1968-08-06,96.85,97.82,96.42,97.25,9620000,97.25 +1968-08-05,96.63,97.51,95.95,96.85,8850000,96.85 +1968-08-02,97.28,97.47,95.79,96.63,9860000,96.63 +1968-08-01,97.74,98.82,96.78,97.28,14380000,97.28 +1968-07-30,97.65,98.62,96.84,97.74,10250000,97.74 +1968-07-29,98.34,98.78,96.89,97.65,10940000,97.65 +1968-07-26,97.94,99.14,97.22,98.34,11690000,98.34 +1968-07-25,99.21,100.07,97.43,97.94,16140000,97.94 +1968-07-23,99.33,99.93,97.89,99.21,13570000,99.21 +1968-07-22,100.46,100.88,98.51,99.33,13530000,99.33 +1968-07-19,101.44,101.82,99.80,100.46,14620000,100.46 +1968-07-18,101.70,102.65,100.49,101.44,17420000,101.44 +1968-07-16,102.26,102.72,100.97,101.70,13380000,101.70 +1968-07-15,102.34,103.15,101.44,102.26,13390000,102.26 +1968-07-12,102.39,103.24,101.39,102.34,14810000,102.34 +1968-07-11,102.23,103.67,101.41,102.39,20290000,102.39 +1968-07-09,101.94,102.93,101.19,102.23,16540000,102.23 +1968-07-08,100.91,102.76,100.72,101.94,16860000,101.94 +1968-07-03,99.74,101.36,99.60,100.91,14390000,100.91 +1968-07-02,99.40,100.60,98.60,99.74,13350000,99.74 +1968-07-01,99.58,100.33,98.77,99.40,11280000,99.40 +1968-06-28,99.98,100.63,98.91,99.58,12040000,99.58 +1968-06-27,100.08,101.01,99.11,99.98,15370000,99.98 +1968-06-25,100.39,101.10,99.28,100.08,13200000,100.08 +1968-06-24,100.66,101.48,99.66,100.39,12320000,100.39 +1968-06-21,101.51,101.59,99.80,100.66,13450000,100.66 +1968-06-20,99.99,101.60,99.52,101.51,16290000,101.51 +1968-06-18,100.13,101.09,99.43,99.99,13630000,99.99 +1968-06-17,101.13,101.71,99.43,100.13,12570000,100.13 +1968-06-14,101.25,101.82,99.98,101.13,14690000,101.13 +1968-06-13,101.66,102.84,100.55,101.25,21350000,101.25 +1968-06-11,101.41,102.40,100.74,101.66,15700000,101.66 +1968-06-10,101.27,102.25,100.42,101.41,14640000,101.41 +1968-06-07,100.65,101.89,100.24,101.27,17320000,101.27 +1968-06-06,99.89,101.59,99.50,100.65,16130000,100.65 +1968-06-05,100.38,101.13,99.26,99.89,15590000,99.89 +1968-06-04,99.99,101.26,99.32,100.38,18030000,100.38 +1968-06-03,98.72,100.62,98.72,99.99,14970000,99.99 +1968-05-31,97.92,99.40,97.66,98.68,13090000,98.68 +1968-05-29,97.62,98.74,97.01,97.92,14100000,97.92 +1968-05-28,96.99,98.20,96.41,97.62,13850000,97.62 +1968-05-27,97.15,97.81,96.29,96.99,12720000,96.99 +1968-05-24,96.97,97.73,96.21,97.15,13300000,97.15 +1968-05-23,97.18,97.79,96.38,96.97,12840000,96.97 +1968-05-22,96.93,98.17,96.47,97.18,14200000,97.18 +1968-05-21,96.45,97.52,95.92,96.93,13160000,96.93 +1968-05-20,96.90,97.41,95.80,96.45,11180000,96.45 +1968-05-17,97.60,97.81,96.11,96.90,11830000,96.90 +1968-05-16,98.07,98.69,97.05,97.60,13030000,97.60 +1968-05-15,98.12,98.79,97.32,98.07,13180000,98.07 +1968-05-14,98.19,98.85,97.33,98.12,13160000,98.12 +1968-05-13,98.50,99.10,97.52,98.19,11860000,98.19 +1968-05-10,98.39,99.30,97.76,98.50,11700000,98.50 +1968-05-09,98.91,99.47,97.68,98.39,12890000,98.39 +1968-05-08,98.90,99.74,98.25,98.91,13120000,98.91 +1968-05-07,98.35,99.59,97.86,98.90,13920000,98.90 +1968-05-06,98.66,99.11,97.27,98.35,12160000,98.35 +1968-05-03,98.59,100.19,97.98,98.66,17990000,98.66 +1968-05-02,97.97,99.18,97.53,98.59,14260000,98.59 +1968-05-01,97.46,98.61,96.84,97.97,14440000,97.97 +1968-04-30,97.97,98.17,96.58,97.46,14380000,97.46 +1968-04-29,97.21,98.61,96.81,97.97,12030000,97.97 +1968-04-26,96.62,97.83,96.22,97.21,13500000,97.21 +1968-04-25,96.92,97.48,95.68,96.62,14430000,96.62 +1968-04-24,96.62,97.81,95.98,96.92,14810000,96.92 +1968-04-23,95.68,97.48,95.68,96.62,14010000,96.62 +1968-04-22,95.85,96.07,94.22,95.32,11720000,95.32 +1968-04-19,97.08,97.08,95.15,95.85,14560000,95.85 +1968-04-18,96.81,97.89,96.12,97.08,15890000,97.08 +1968-04-17,96.62,97.40,95.76,96.81,14090000,96.81 +1968-04-16,96.59,97.54,95.72,96.62,15680000,96.62 +1968-04-15,96.53,97.36,95.33,96.59,14220000,96.59 +1968-04-11,95.67,96.93,94.81,96.53,14230000,96.53 +1968-04-10,94.95,97.11,94.74,95.67,20410000,95.67 +1968-04-08,93.29,95.45,93.11,94.95,13010000,94.95 +1968-04-05,93.84,94.51,92.67,93.29,12570000,93.29 +1968-04-04,93.47,94.59,92.63,93.84,14340000,93.84 +1968-04-03,92.64,95.13,92.24,93.47,19290000,93.47 +1968-04-02,92.48,93.44,91.39,92.64,14520000,92.64 +1968-04-01,91.11,93.55,91.11,92.48,17730000,92.48 +1968-03-29,89.57,90.92,89.21,90.20,9000000,90.20 +1968-03-28,89.66,90.40,89.05,89.57,8000000,89.57 +1968-03-27,88.93,90.20,88.88,89.66,8970000,89.66 +1968-03-26,88.33,89.50,88.10,88.93,8670000,88.93 +1968-03-25,88.42,88.88,87.65,88.33,6700000,88.33 +1968-03-22,88.33,89.14,87.50,88.42,9900000,88.42 +1968-03-21,88.98,89.48,88.05,88.33,8580000,88.33 +1968-03-20,88.99,89.65,88.48,88.98,7390000,88.98 +1968-03-19,89.59,90.05,88.61,88.99,7410000,88.99 +1968-03-18,89.11,91.09,89.11,89.59,10800000,89.59 +1968-03-15,88.32,89.75,87.61,89.10,11210000,89.10 +1968-03-14,89.75,89.75,87.81,88.32,11640000,88.32 +1968-03-13,90.23,90.71,89.40,90.03,8990000,90.03 +1968-03-12,90.13,90.78,89.39,90.23,9250000,90.23 +1968-03-11,89.03,90.56,88.81,90.13,9520000,90.13 +1968-03-08,89.10,89.57,88.23,89.03,7410000,89.03 +1968-03-07,89.26,89.98,88.44,89.10,8630000,89.10 +1968-03-06,87.72,89.76,87.64,89.26,9900000,89.26 +1968-03-05,87.92,88.72,86.99,87.72,11440000,87.72 +1968-03-04,89.11,89.33,87.52,87.92,10590000,87.92 +1968-03-01,89.36,89.82,88.58,89.11,8610000,89.11 +1968-02-29,90.08,90.24,88.93,89.36,7700000,89.36 +1968-02-28,90.53,91.19,89.71,90.08,8020000,90.08 +1968-02-27,90.18,90.91,89.56,90.53,7600000,90.53 +1968-02-26,90.89,91.08,89.67,90.18,7810000,90.18 +1968-02-23,91.24,91.80,90.28,90.89,8810000,90.89 +1968-02-21,91.24,91.87,90.54,91.24,9170000,91.24 +1968-02-20,90.31,91.34,89.95,91.24,8800000,91.24 +1968-02-19,89.96,90.87,89.42,90.31,7270000,90.31 +1968-02-16,90.30,90.62,89.28,89.96,9070000,89.96 +1968-02-15,90.30,90.30,90.30,90.30,9770000,90.30 +1968-02-14,89.07,90.60,88.66,90.14,11390000,90.14 +1968-02-13,89.86,90.46,86.73,89.07,10830000,89.07 +1968-02-09,90.90,91.00,89.23,89.86,11850000,89.86 +1968-02-08,92.06,92.40,90.60,90.90,9660000,90.90 +1968-02-07,91.90,92.74,91.48,92.06,8380000,92.06 +1968-02-06,91.87,92.52,91.15,91.90,8560000,91.90 +1968-02-05,92.27,92.72,91.24,91.87,8980000,91.87 +1968-02-02,92.56,93.44,91.69,92.27,10120000,92.27 +1968-02-01,92.24,93.14,91.57,92.56,10590000,92.56 +1968-01-31,92.89,93.26,91.27,92.24,9410000,92.24 +1968-01-30,93.35,93.71,92.18,92.89,10110000,92.89 +1968-01-29,93.45,94.38,92.71,93.35,9950000,93.35 +1968-01-26,93.30,94.34,92.77,93.45,9980000,93.45 +1968-01-25,93.17,94.11,91.96,93.30,12410000,93.30 +1968-01-24,93.66,94.12,92.45,93.17,10570000,93.17 +1968-01-23,94.03,94.66,92.88,93.66,11030000,93.66 +1968-01-22,95.24,95.40,93.55,94.03,10630000,94.03 +1968-01-19,95.56,96.22,94.60,95.24,11950000,95.24 +1968-01-18,95.64,96.66,95.01,95.56,13840000,95.56 +1968-01-17,95.82,96.41,94.78,95.64,12910000,95.64 +1968-01-16,96.42,96.91,95.32,95.82,12340000,95.82 +1968-01-15,96.72,97.46,95.85,96.42,12640000,96.42 +1968-01-12,96.62,97.44,95.87,96.72,13080000,96.72 +1968-01-11,96.52,97.82,95.88,96.62,13220000,96.62 +1968-01-10,96.50,97.26,95.66,96.52,11670000,96.52 +1968-01-09,96.62,97.84,95.89,96.50,13720000,96.50 +1968-01-08,95.94,97.40,95.54,96.62,14260000,96.62 +1968-01-05,95.36,96.66,94.97,95.94,11880000,95.94 +1968-01-04,95.67,96.23,94.31,95.36,13440000,95.36 +1968-01-03,96.11,96.95,95.04,95.67,12650000,95.67 +1968-01-02,96.47,97.33,95.31,96.11,11080000,96.11 +1967-12-29,95.89,96.90,95.85,96.47,14950000,96.47 +1967-12-28,95.91,96.65,94.91,95.89,12530000,95.89 +1967-12-27,95.26,96.42,94.82,95.91,12690000,95.91 +1967-12-26,95.20,96.02,94.61,95.26,9150000,95.26 +1967-12-22,95.38,96.11,94.61,95.20,9570000,95.20 +1967-12-21,95.15,96.25,94.69,95.38,11010000,95.38 +1967-12-20,94.63,95.75,94.17,95.15,11390000,95.15 +1967-12-19,94.77,95.41,94.00,94.63,10610000,94.63 +1967-12-18,95.03,95.88,94.17,94.77,10320000,94.77 +1967-12-15,95.47,96.20,94.51,95.03,11530000,95.03 +1967-12-14,95.34,96.35,94.85,95.47,12310000,95.47 +1967-12-13,95.01,96.00,94.58,95.34,12480000,95.34 +1967-12-12,95.12,95.78,94.34,95.01,10860000,95.01 +1967-12-11,95.42,95.99,94.50,95.12,10500000,95.12 +1967-12-08,95.53,96.25,94.78,95.42,10710000,95.42 +1967-12-07,95.64,96.67,95.04,95.53,12490000,95.53 +1967-12-06,95.23,96.16,94.10,95.64,11940000,95.64 +1967-12-05,95.10,96.27,94.52,95.23,12940000,95.23 +1967-12-04,94.50,95.68,94.09,95.10,11740000,95.10 +1967-12-01,94.00,94.95,93.41,94.50,9740000,94.50 +1967-11-30,94.47,94.94,93.49,94.00,8860000,94.00 +1967-11-29,94.49,95.51,93.85,94.47,11400000,94.47 +1967-11-28,94.17,95.08,93.57,94.49,11040000,94.49 +1967-11-27,93.90,94.80,93.32,94.17,10040000,94.17 +1967-11-24,93.65,94.46,92.74,93.90,9470000,93.90 +1967-11-22,93.10,94.41,92.70,93.65,12180000,93.65 +1967-11-21,91.65,93.71,91.64,93.10,12300000,93.10 +1967-11-20,92.38,92.38,90.09,91.65,12750000,91.65 +1967-11-17,92.60,93.62,92.02,92.82,10050000,92.82 +1967-11-16,91.76,93.28,91.50,92.60,10570000,92.60 +1967-11-15,91.39,92.25,90.44,91.76,10000000,91.76 +1967-11-14,91.97,92.49,90.81,91.39,10350000,91.39 +1967-11-13,92.21,93.23,91.46,91.97,10130000,91.97 +1967-11-10,91.59,92.84,91.29,92.21,9960000,92.21 +1967-11-09,91.14,92.25,90.61,91.59,8890000,91.59 +1967-11-08,91.48,93.07,90.80,91.14,12630000,91.14 +1967-11-06,91.78,92.23,90.39,91.48,10320000,91.48 +1967-11-03,92.34,92.90,91.33,91.78,8800000,91.78 +1967-11-02,92.71,93.69,91.85,92.34,10760000,92.34 +1967-11-01,93.30,94.21,92.45,92.71,10930000,92.71 +1967-10-31,94.79,95.25,93.29,93.30,12020000,93.30 +1967-10-30,94.96,95.67,94.14,94.79,10250000,94.79 +1967-10-27,94.94,95.79,94.31,94.96,9880000,94.96 +1967-10-26,94.52,95.56,93.99,94.94,9920000,94.94 +1967-10-25,94.42,95.18,93.47,94.52,10300000,94.52 +1967-10-24,94.96,95.98,94.05,94.42,11110000,94.42 +1967-10-23,95.38,95.69,93.92,94.96,9680000,94.96 +1967-10-20,95.43,96.12,94.62,95.38,9510000,95.38 +1967-10-19,95.25,96.46,94.86,95.43,11620000,95.43 +1967-10-18,95.00,95.82,94.34,95.25,10500000,95.25 +1967-10-17,95.25,95.92,94.19,95.00,10290000,95.00 +1967-10-16,96.00,96.55,94.85,95.25,9080000,95.25 +1967-10-13,95.75,96.69,95.16,96.00,9040000,96.00 +1967-10-12,96.37,96.70,95.32,95.75,7770000,95.75 +1967-10-11,96.84,97.34,95.70,96.37,11230000,96.37 +1967-10-10,97.51,98.15,96.38,96.84,12000000,96.84 +1967-10-09,97.26,98.25,96.70,97.51,11180000,97.51 +1967-10-06,96.67,97.83,96.34,97.26,9830000,97.26 +1967-10-05,96.43,97.25,95.89,96.67,8490000,96.67 +1967-10-04,96.65,97.47,95.94,96.43,11520000,96.43 +1967-10-03,96.32,97.23,95.75,96.65,10320000,96.65 +1967-10-02,96.71,97.25,95.82,96.32,9240000,96.32 +1967-09-29,96.79,97.37,96.06,96.71,9710000,96.71 +1967-09-28,96.79,97.59,96.19,96.79,10470000,96.79 +1967-09-27,96.76,97.54,96.00,96.79,8810000,96.79 +1967-09-26,97.59,98.20,96.40,96.76,10940000,96.76 +1967-09-25,97.00,98.31,96.74,97.59,10910000,97.59 +1967-09-22,96.75,97.61,96.11,97.00,11160000,97.00 +1967-09-21,96.13,97.50,95.67,96.75,11290000,96.75 +1967-09-20,96.17,96.84,95.39,96.13,10980000,96.13 +1967-09-19,96.53,97.35,95.84,96.17,11540000,96.17 +1967-09-18,96.27,97.31,95.73,96.53,11620000,96.53 +1967-09-15,96.20,96.94,95.47,96.27,10270000,96.27 +1967-09-14,95.99,97.40,95.59,96.20,12220000,96.20 +1967-09-13,94.99,96.62,94.80,95.99,12400000,95.99 +1967-09-12,94.54,95.48,94.01,94.99,9930000,94.99 +1967-09-11,94.36,95.26,93.88,94.54,9170000,94.54 +1967-09-08,94.33,95.04,93.70,94.36,9300000,94.36 +1967-09-07,94.39,94.95,93.70,94.33,8910000,94.33 +1967-09-06,94.21,95.06,93.72,94.39,9550000,94.39 +1967-09-05,93.68,94.70,93.36,94.21,8320000,94.21 +1967-09-01,93.64,94.21,93.00,93.68,7460000,93.68 +1967-08-31,93.07,94.19,92.84,93.64,8840000,93.64 +1967-08-30,92.88,93.67,92.43,93.07,7200000,93.07 +1967-08-29,92.64,93.58,92.17,92.88,6350000,92.88 +1967-08-28,92.70,93.31,92.01,92.64,6270000,92.64 +1967-08-25,93.09,93.38,92.04,92.70,7250000,92.70 +1967-08-24,93.61,94.28,92.77,93.09,7740000,93.09 +1967-08-23,93.74,94.15,92.77,93.61,8760000,93.61 +1967-08-22,94.25,94.72,93.35,93.74,7940000,93.74 +1967-08-21,94.78,95.22,93.79,94.25,8600000,94.25 +1967-08-18,94.63,95.40,94.16,94.78,8250000,94.78 +1967-08-17,94.55,95.33,94.11,94.63,8790000,94.63 +1967-08-16,94.77,95.15,93.93,94.55,8220000,94.55 +1967-08-15,94.64,95.54,94.18,94.77,8710000,94.77 +1967-08-14,95.15,95.40,94.02,94.64,7990000,94.64 +1967-08-11,95.53,95.98,94.62,95.15,8250000,95.15 +1967-08-10,95.78,96.67,95.05,95.53,9040000,95.53 +1967-08-09,95.69,96.47,95.11,95.78,10100000,95.78 +1967-08-08,95.58,96.28,95.04,95.69,8970000,95.69 +1967-08-07,95.83,96.43,95.02,95.58,10160000,95.58 +1967-08-04,95.66,96.54,95.15,95.83,11130000,95.83 +1967-08-03,95.78,96.36,94.42,95.66,13440000,95.66 +1967-08-02,95.37,96.64,95.03,95.78,13510000,95.78 +1967-08-01,94.75,95.84,94.20,95.37,12290000,95.37 +1967-07-31,94.49,95.51,94.01,94.75,10330000,94.75 +1967-07-28,94.35,95.23,93.77,94.49,10900000,94.49 +1967-07-27,94.06,95.19,93.51,94.35,12400000,94.35 +1967-07-26,93.24,94.71,93.12,94.06,11160000,94.06 +1967-07-25,93.73,94.56,93.03,93.24,9890000,93.24 +1967-07-24,94.04,94.68,92.91,93.73,9580000,93.73 +1967-07-21,93.85,94.92,93.24,94.04,11710000,94.04 +1967-07-20,93.65,94.49,93.01,93.85,11160000,93.85 +1967-07-19,93.50,94.40,92.83,93.65,12850000,93.65 +1967-07-18,92.75,94.05,92.30,93.50,12060000,93.50 +1967-07-17,92.74,93.53,92.10,92.75,10390000,92.75 +1967-07-14,92.42,93.35,91.87,92.74,10880000,92.74 +1967-07-13,92.40,93.17,91.82,92.42,10730000,92.42 +1967-07-12,92.48,93.10,91.62,92.40,11240000,92.40 +1967-07-11,92.05,93.16,91.58,92.48,12400000,92.48 +1967-07-10,91.69,92.80,91.11,92.05,12130000,92.05 +1967-07-07,91.32,92.28,90.76,91.69,11540000,91.69 +1967-07-06,91.36,92.03,90.64,91.32,10170000,91.32 +1967-07-05,90.91,91.91,90.56,91.36,9170000,91.36 +1967-07-03,90.64,91.32,90.12,90.91,6040000,90.91 +1967-06-30,90.64,90.64,90.64,90.64,7850000,90.64 +1967-06-29,90.85,90.85,90.85,90.85,9940000,90.85 +1967-06-28,91.31,91.31,91.31,91.31,9310000,91.31 +1967-06-27,91.30,91.30,91.30,91.30,8780000,91.30 +1967-06-26,91.64,91.64,91.64,91.64,9040000,91.64 +1967-06-23,92.00,92.00,92.00,92.00,9130000,92.00 +1967-06-22,91.97,91.97,91.97,91.97,9550000,91.97 +1967-06-21,92.20,92.20,92.20,92.20,9760000,92.20 +1967-06-20,92.48,92.48,92.48,92.48,10350000,92.48 +1967-06-19,92.51,92.51,92.51,92.51,8570000,92.51 +1967-06-16,92.49,93.28,91.98,92.54,10740000,92.54 +1967-06-15,92.40,93.26,91.76,92.49,11240000,92.49 +1967-06-14,92.62,93.21,91.81,92.40,10960000,92.40 +1967-06-13,92.04,93.27,91.65,92.62,11570000,92.62 +1967-06-12,91.56,92.66,91.12,92.04,10230000,92.04 +1967-06-09,91.40,92.26,90.77,91.56,9650000,91.56 +1967-06-08,90.91,91.78,90.24,91.40,8300000,91.40 +1967-06-07,90.23,91.75,89.92,90.91,10170000,90.91 +1967-06-06,88.48,90.59,88.48,90.23,9230000,90.23 +1967-06-05,89.56,89.56,87.19,88.43,11110000,88.43 +1967-06-02,90.23,90.90,89.27,89.79,8070000,89.79 +1967-06-01,89.08,90.76,88.81,90.23,9040000,90.23 +1967-05-31,90.39,90.39,88.71,89.08,8870000,89.08 +1967-05-29,90.98,91.22,89.92,90.49,6590000,90.49 +1967-05-26,91.19,91.70,90.34,90.98,7810000,90.98 +1967-05-25,90.18,91.84,90.04,91.19,8960000,91.19 +1967-05-24,91.23,91.36,89.68,90.18,10290000,90.18 +1967-05-23,91.67,92.07,90.58,91.23,9810000,91.23 +1967-05-22,92.07,92.40,90.83,91.67,9600000,91.67 +1967-05-19,92.53,92.86,91.40,92.07,10560000,92.07 +1967-05-18,92.78,93.30,91.98,92.53,10290000,92.53 +1967-05-17,93.14,93.75,92.34,92.78,9560000,92.78 +1967-05-16,92.71,93.85,92.19,93.14,10700000,93.14 +1967-05-15,93.48,93.75,92.27,92.71,8320000,92.71 +1967-05-12,93.75,94.45,92.94,93.48,10470000,93.48 +1967-05-11,93.35,94.37,92.90,93.75,10320000,93.75 +1967-05-10,93.60,94.04,92.51,93.35,10410000,93.35 +1967-05-09,94.58,95.25,93.28,93.60,10830000,93.60 +1967-05-08,94.44,95.22,93.71,94.58,10330000,94.58 +1967-05-05,94.32,95.14,93.64,94.44,10630000,94.44 +1967-05-04,93.91,94.92,93.41,94.32,12850000,94.32 +1967-05-03,93.67,94.48,92.94,93.91,11550000,93.91 +1967-05-02,93.84,94.42,93.06,93.67,10260000,93.67 +1967-05-01,94.01,94.60,93.08,93.84,9410000,93.84 +1967-04-28,93.81,94.77,93.33,94.01,11200000,94.01 +1967-04-27,93.02,94.25,92.41,93.81,10250000,93.81 +1967-04-26,93.11,93.99,92.44,93.02,10560000,93.02 +1967-04-25,92.62,93.57,92.01,93.11,10420000,93.11 +1967-04-24,92.30,93.45,91.78,92.62,10250000,92.62 +1967-04-21,92.11,92.90,91.48,92.30,10210000,92.30 +1967-04-20,91.94,92.61,91.21,92.11,9690000,92.11 +1967-04-19,91.86,92.73,91.25,91.94,10860000,91.94 +1967-04-18,91.07,92.31,90.70,91.86,10500000,91.86 +1967-04-17,90.43,91.78,90.18,91.07,9070000,91.07 +1967-04-14,89.46,91.08,89.26,90.43,8810000,90.43 +1967-04-13,88.78,89.86,88.49,89.46,7610000,89.46 +1967-04-12,88.88,89.54,88.36,88.78,7750000,88.78 +1967-04-11,88.24,89.34,87.92,88.88,7710000,88.88 +1967-04-10,89.32,89.32,87.86,88.24,8110000,88.24 +1967-04-07,89.94,90.60,88.96,89.36,9090000,89.36 +1967-04-06,89.79,90.74,89.44,89.94,9470000,89.94 +1967-04-05,89.22,90.31,88.92,89.79,8810000,89.79 +1967-04-04,89.24,89.93,88.45,89.22,8750000,89.22 +1967-04-03,90.20,90.37,88.76,89.24,8530000,89.24 +1967-03-31,90.70,91.15,89.75,90.20,8130000,90.20 +1967-03-30,90.73,91.32,90.06,90.70,8340000,90.70 +1967-03-29,90.91,91.45,90.17,90.73,8430000,90.73 +1967-03-28,90.87,91.62,90.23,90.91,8940000,90.91 +1967-03-27,90.94,91.72,90.19,90.87,9260000,90.87 +1967-03-23,90.25,91.51,90.04,90.94,9500000,90.94 +1967-03-22,90.00,90.70,89.17,90.25,8820000,90.25 +1967-03-21,90.20,91.05,89.52,90.00,9820000,90.00 +1967-03-20,90.25,90.87,89.35,90.20,9040000,90.20 +1967-03-17,90.09,90.84,89.39,90.25,10020000,90.25 +1967-03-16,89.19,90.66,89.09,90.09,12170000,90.09 +1967-03-15,88.35,89.60,88.00,89.19,10830000,89.19 +1967-03-14,88.43,89.07,87.58,88.35,10260000,88.35 +1967-03-13,88.89,89.41,87.93,88.43,9910000,88.43 +1967-03-10,88.53,90.37,88.46,88.89,14900000,88.89 +1967-03-09,88.27,89.04,87.70,88.53,10480000,88.53 +1967-03-08,88.16,89.10,87.69,88.27,11070000,88.27 +1967-03-07,88.10,88.74,87.34,88.16,9810000,88.16 +1967-03-06,88.29,89.08,87.46,88.10,10400000,88.10 +1967-03-03,88.16,89.00,87.51,88.29,11100000,88.29 +1967-03-02,87.68,88.85,87.39,88.16,11900000,88.16 +1967-03-01,86.78,88.36,86.67,87.68,11510000,87.68 +1967-02-28,86.46,87.26,85.61,86.78,9970000,86.78 +1967-02-27,87.41,87.61,85.68,86.46,10210000,86.46 +1967-02-24,87.45,88.16,86.76,87.41,9830000,87.41 +1967-02-23,87.34,88.00,86.64,87.45,10010000,87.45 +1967-02-21,87.40,88.01,86.80,87.34,9030000,87.34 +1967-02-20,87.89,88.13,86.65,87.40,8640000,87.40 +1967-02-17,87.86,88.40,87.25,87.89,8530000,87.89 +1967-02-16,88.27,88.80,87.43,87.86,8490000,87.86 +1967-02-15,88.17,89.00,87.62,88.27,10480000,88.27 +1967-02-14,87.58,88.74,87.15,88.17,9760000,88.17 +1967-02-13,87.63,88.19,86.95,87.58,7570000,87.58 +1967-02-10,87.36,88.19,86.79,87.63,8850000,87.63 +1967-02-09,87.72,88.57,86.99,87.36,10970000,87.36 +1967-02-08,86.95,88.25,86.64,87.72,11220000,87.72 +1967-02-07,87.18,87.52,86.48,86.95,6400000,86.95 +1967-02-06,87.36,87.98,86.61,87.18,10680000,87.18 +1967-02-03,86.73,87.97,86.51,87.36,12010000,87.36 +1967-02-02,86.43,87.31,85.87,86.73,10720000,86.73 +1967-02-01,86.61,87.04,85.68,86.43,9580000,86.43 +1967-01-31,86.66,87.46,86.06,86.61,11540000,86.61 +1967-01-30,86.16,87.35,85.84,86.66,10250000,86.66 +1967-01-27,85.81,86.76,85.34,86.16,9690000,86.16 +1967-01-26,85.85,86.66,84.87,85.81,10630000,85.81 +1967-01-25,86.51,87.02,85.47,85.85,10260000,85.85 +1967-01-24,86.39,87.00,85.29,86.51,10430000,86.51 +1967-01-23,86.07,88.17,85.64,86.39,10830000,86.39 +1967-01-20,85.82,86.47,85.07,86.07,9530000,86.07 +1967-01-19,85.79,86.61,85.17,85.82,10230000,85.82 +1967-01-18,85.24,86.36,84.90,85.79,11390000,85.79 +1967-01-17,84.31,85.81,84.03,85.24,11590000,85.24 +1967-01-16,84.53,85.28,83.73,84.31,10280000,84.31 +1967-01-13,83.91,84.90,83.10,84.53,10000000,84.53 +1967-01-12,83.47,84.80,83.11,83.91,12830000,83.91 +1967-01-11,82.81,83.92,81.37,83.47,13230000,83.47 +1967-01-10,82.81,83.54,82.22,82.81,8120000,82.81 +1967-01-09,82.18,83.31,81.78,82.81,9180000,82.81 +1967-01-06,81.60,82.79,81.32,82.18,7830000,82.18 +1967-01-05,80.55,81.93,80.50,81.60,7320000,81.60 +1967-01-04,80.38,81.01,79.43,80.55,6150000,80.55 +1967-01-03,80.33,81.61,79.59,80.38,6100000,80.38 +1966-12-30,80.37,81.14,79.66,80.33,11330000,80.33 +1966-12-29,80.61,81.08,79.84,80.37,7900000,80.37 +1966-12-28,81.00,81.67,80.29,80.61,7160000,80.61 +1966-12-27,81.47,81.84,80.55,81.00,6280000,81.00 +1966-12-23,81.69,82.22,80.97,81.47,7350000,81.47 +1966-12-22,81.38,82.34,81.00,81.69,8560000,81.69 +1966-12-21,80.96,81.91,80.42,81.38,7690000,81.38 +1966-12-20,81.27,81.69,80.31,80.96,6830000,80.96 +1966-12-19,81.58,82.06,80.56,81.27,7340000,81.27 +1966-12-16,81.64,82.21,80.94,81.58,6980000,81.58 +1966-12-15,82.64,82.89,81.20,81.64,7150000,81.64 +1966-12-14,82.73,83.35,81.97,82.64,7470000,82.64 +1966-12-13,83.00,83.88,82.28,82.73,9650000,82.73 +1966-12-12,82.14,83.54,81.94,83.00,9530000,83.00 +1966-12-09,82.05,82.68,81.33,82.14,7650000,82.14 +1966-12-08,81.72,82.72,81.34,82.05,8370000,82.05 +1966-12-07,80.84,82.19,80.59,81.72,8980000,81.72 +1966-12-06,80.24,81.29,79.95,80.84,7670000,80.84 +1966-12-05,80.13,80.81,79.60,80.24,6470000,80.24 +1966-12-02,80.08,81.29,79.49,80.13,6230000,80.13 +1966-12-01,80.45,81.04,79.66,80.08,8480000,80.08 +1966-11-30,80.42,80.90,79.62,80.45,7230000,80.45 +1966-11-29,80.71,81.16,79.94,80.42,7320000,80.42 +1966-11-28,80.85,81.38,79.96,80.71,7630000,80.71 +1966-11-25,80.21,81.37,79.83,80.85,6810000,80.85 +1966-11-23,79.67,80.85,79.39,80.21,7350000,80.21 +1966-11-22,80.09,80.32,78.89,79.67,6430000,79.67 +1966-11-21,81.09,81.09,79.51,80.09,7450000,80.09 +1966-11-18,81.80,82.05,80.79,81.26,6900000,81.26 +1966-11-17,82.37,82.80,81.24,81.80,8900000,81.80 +1966-11-16,81.69,83.01,81.55,82.37,10350000,82.37 +1966-11-15,81.37,82.07,80.82,81.69,7190000,81.69 +1966-11-14,81.94,82.18,80.81,81.37,6540000,81.37 +1966-11-11,81.89,82.36,81.27,81.94,6690000,81.94 +1966-11-10,81.38,82.43,81.00,81.89,8870000,81.89 +1966-11-09,80.73,81.90,80.46,81.38,8390000,81.38 +1966-11-07,80.81,81.48,80.16,80.73,6120000,80.73 +1966-11-04,80.56,81.21,79.64,80.81,6530000,80.81 +1966-11-03,80.88,81.35,79.98,80.56,5860000,80.56 +1966-11-02,80.81,81.68,80.30,80.88,6740000,80.88 +1966-11-01,80.20,81.18,79.79,80.81,6480000,80.81 +1966-10-31,80.24,80.82,79.34,80.20,5860000,80.20 +1966-10-28,80.23,80.91,79.49,80.24,6420000,80.24 +1966-10-27,79.58,80.72,79.28,80.23,6670000,80.23 +1966-10-26,78.90,80.29,78.70,79.58,6760000,79.58 +1966-10-25,78.42,79.22,77.56,78.90,6190000,78.90 +1966-10-24,78.19,79.20,77.73,78.42,5780000,78.42 +1966-10-21,77.84,78.62,77.16,78.19,5690000,78.19 +1966-10-20,78.05,78.96,77.26,77.84,6840000,77.84 +1966-10-19,78.68,79.34,77.54,78.05,6460000,78.05 +1966-10-18,77.47,79.08,77.35,78.68,7180000,78.68 +1966-10-17,76.60,78.41,76.48,77.47,5570000,77.47 +1966-10-14,76.89,77.80,76.01,76.60,5610000,76.60 +1966-10-13,77.04,78.45,76.22,76.89,8680000,76.89 +1966-10-12,74.91,77.26,74.37,77.04,6910000,77.04 +1966-10-11,74.53,76.20,74.22,74.91,8430000,74.91 +1966-10-10,73.20,74.97,72.28,74.53,9630000,74.53 +1966-10-07,74.05,74.67,72.77,73.20,8140000,73.20 +1966-10-06,74.69,75.09,73.47,74.05,8110000,74.05 +1966-10-05,75.10,76.10,74.31,74.69,5880000,74.69 +1966-10-04,74.90,75.76,73.91,75.10,8910000,75.10 +1966-10-03,76.56,76.98,74.71,74.90,6490000,74.90 +1966-09-30,76.31,77.09,75.45,76.56,6170000,76.56 +1966-09-29,77.11,77.28,75.85,76.31,6110000,76.31 +1966-09-28,78.10,78.36,76.70,77.11,5990000,77.11 +1966-09-27,77.86,79.10,77.56,78.10,6300000,78.10 +1966-09-26,77.67,78.34,76.88,77.86,4960000,77.86 +1966-09-23,77.94,78.43,77.15,77.67,4560000,77.67 +1966-09-22,77.71,78.41,76.81,77.94,5760000,77.94 +1966-09-21,79.04,79.15,77.52,77.71,5360000,77.71 +1966-09-20,79.59,79.90,78.57,79.04,4560000,79.04 +1966-09-19,79.99,80.50,79.02,79.59,4920000,79.59 +1966-09-16,80.08,80.81,79.33,79.99,5150000,79.99 +1966-09-15,79.13,80.60,78.87,80.08,6140000,80.08 +1966-09-14,78.32,79.43,77.73,79.13,6250000,79.13 +1966-09-13,77.91,79.16,77.66,78.32,6870000,78.32 +1966-09-12,76.47,78.34,76.47,77.91,6780000,77.91 +1966-09-09,76.05,76.94,75.43,76.29,5280000,76.29 +1966-09-08,76.37,76.95,75.03,76.05,6660000,76.05 +1966-09-07,76.96,77.26,75.77,76.37,5530000,76.37 +1966-09-06,77.42,78.16,76.55,76.96,4350000,76.96 +1966-09-02,77.70,78.20,76.27,77.42,6080000,77.42 +1966-09-01,77.10,78.50,76.66,77.70,6250000,77.70 +1966-08-31,75.98,78.06,75.98,77.10,8690000,77.10 +1966-08-30,74.53,76.46,73.91,75.86,11230000,75.86 +1966-08-29,76.24,76.24,74.18,74.53,10900000,74.53 +1966-08-26,77.85,77.85,76.10,76.41,8190000,76.41 +1966-08-25,79.07,79.79,77.80,78.06,6760000,78.06 +1966-08-24,78.11,79.63,77.92,79.07,7050000,79.07 +1966-08-23,78.24,79.24,77.05,78.11,9830000,78.11 +1966-08-22,79.62,79.88,77.58,78.24,8690000,78.24 +1966-08-19,80.16,80.78,79.24,79.62,7070000,79.62 +1966-08-18,81.18,81.38,79.60,80.16,7000000,80.16 +1966-08-17,81.63,81.90,80.53,81.18,6630000,81.18 +1966-08-16,82.71,82.71,81.26,81.63,6130000,81.63 +1966-08-15,83.17,83.69,82.39,82.74,5680000,82.74 +1966-08-12,83.02,83.88,82.57,83.17,6230000,83.17 +1966-08-11,83.11,83.53,82.34,83.02,5700000,83.02 +1966-08-10,83.49,83.83,82.69,83.11,5290000,83.11 +1966-08-09,83.75,84.36,83.04,83.49,6270000,83.49 +1966-08-08,84.00,84.31,82.97,83.75,4900000,83.75 +1966-08-05,83.93,84.70,83.43,84.00,5500000,84.00 +1966-08-04,83.15,84.54,83.07,83.93,6880000,83.93 +1966-08-03,82.33,83.71,82.30,83.15,6220000,83.15 +1966-08-02,82.31,83.04,81.77,82.33,5710000,82.33 +1966-08-01,83.50,83.50,81.98,82.31,5880000,82.31 +1966-07-29,83.77,84.30,83.10,83.60,5150000,83.60 +1966-07-28,84.10,84.76,83.44,83.77,5680000,83.77 +1966-07-27,83.70,84.83,83.50,84.10,6070000,84.10 +1966-07-26,83.83,84.67,83.05,83.70,7610000,83.70 +1966-07-25,85.41,85.57,83.56,83.83,7050000,83.83 +1966-07-22,85.52,86.11,84.93,85.41,6540000,85.41 +1966-07-21,85.51,86.24,84.77,85.52,6200000,85.52 +1966-07-20,86.33,86.64,85.26,85.51,5470000,85.51 +1966-07-19,86.99,87.17,85.75,86.33,5960000,86.33 +1966-07-18,87.08,87.59,86.42,86.99,5110000,86.99 +1966-07-15,86.82,87.68,86.44,87.08,6090000,87.08 +1966-07-14,86.30,87.34,85.85,86.82,5950000,86.82 +1966-07-13,86.88,87.06,85.83,86.30,5580000,86.30 +1966-07-12,87.45,87.78,86.45,86.88,5180000,86.88 +1966-07-11,87.61,88.19,86.97,87.45,6200000,87.45 +1966-07-08,87.38,88.04,86.85,87.61,6100000,87.61 +1966-07-07,87.06,88.02,86.67,87.38,7200000,87.38 +1966-07-06,85.82,87.38,85.57,87.06,6860000,87.06 +1966-07-05,85.61,86.41,85.09,85.82,4610000,85.82 +1966-07-01,84.74,86.08,84.74,85.61,5200000,85.61 +1966-06-30,84.86,85.37,83.75,84.74,7250000,84.74 +1966-06-29,85.67,85.98,84.52,84.86,6020000,84.86 +1966-06-28,86.08,86.43,85.00,85.67,6280000,85.67 +1966-06-27,86.58,87.31,85.77,86.08,5330000,86.08 +1966-06-24,86.50,87.31,85.68,86.58,7140000,86.58 +1966-06-23,86.85,87.73,86.11,86.50,7930000,86.50 +1966-06-22,86.71,87.38,86.15,86.85,7800000,86.85 +1966-06-21,86.48,87.28,86.07,86.71,6860000,86.71 +1966-06-20,86.51,87.03,85.84,86.48,5940000,86.48 +1966-06-17,86.47,87.11,85.89,86.51,6580000,86.51 +1966-06-16,86.73,87.18,85.88,86.47,6870000,86.47 +1966-06-15,87.07,87.74,86.33,86.73,8520000,86.73 +1966-06-14,86.83,87.57,86.02,87.07,7600000,87.07 +1966-06-13,86.44,87.59,86.20,86.83,7600000,86.83 +1966-06-10,85.50,86.97,85.32,86.44,8240000,86.44 +1966-06-09,84.93,85.98,84.56,85.50,5810000,85.50 +1966-06-08,84.83,85.43,84.31,84.93,4580000,84.93 +1966-06-07,85.42,85.54,84.25,84.83,5040000,84.83 +1966-06-06,86.06,86.28,85.03,85.42,4260000,85.42 +1966-06-03,85.96,86.55,85.43,86.06,4430000,86.06 +1966-06-02,86.10,86.85,85.55,85.96,5080000,85.96 +1966-06-01,86.13,86.65,85.28,86.10,5290000,86.10 +1966-05-31,87.33,87.65,85.80,86.13,5770000,86.13 +1966-05-27,87.07,87.42,86.43,87.33,4790000,87.33 +1966-05-26,87.07,87.88,86.54,87.07,6080000,87.07 +1966-05-25,86.77,87.48,86.05,87.07,5820000,87.07 +1966-05-24,86.20,87.70,86.19,86.77,7210000,86.77 +1966-05-23,85.43,86.91,85.29,86.20,7080000,86.20 +1966-05-20,85.02,85.79,84.21,85.43,6430000,85.43 +1966-05-19,85.12,86.33,84.54,85.02,8640000,85.02 +1966-05-18,83.72,85.64,83.72,85.12,9310000,85.12 +1966-05-17,84.41,85.03,83.18,83.63,9870000,83.63 +1966-05-16,85.47,86.04,83.90,84.41,9260000,84.41 +1966-05-13,86.23,86.31,84.77,85.47,8970000,85.47 +1966-05-12,87.23,87.49,85.72,86.23,8210000,86.23 +1966-05-11,87.08,88.38,86.84,87.23,7470000,87.23 +1966-05-10,86.32,87.88,86.12,87.08,9050000,87.08 +1966-05-09,87.84,87.96,85.92,86.32,9290000,86.32 +1966-05-06,87.93,88.52,86.24,87.84,13110000,87.84 +1966-05-05,89.39,89.77,87.60,87.93,10100000,87.93 +1966-05-04,89.85,90.11,88.54,89.39,9740000,89.39 +1966-05-03,90.90,91.10,89.46,89.85,8020000,89.85 +1966-05-02,91.06,91.75,90.43,90.90,7070000,90.90 +1966-04-29,91.13,91.86,90.57,91.06,7220000,91.06 +1966-04-28,91.76,91.92,90.24,91.13,8310000,91.13 +1966-04-27,91.99,92.49,91.10,91.76,7950000,91.76 +1966-04-26,92.08,92.77,91.47,91.99,7540000,91.99 +1966-04-25,92.27,92.86,91.41,92.08,7270000,92.08 +1966-04-22,92.42,92.87,91.60,92.27,8650000,92.27 +1966-04-21,92.08,93.02,91.78,92.42,9560000,92.42 +1966-04-20,91.57,92.75,91.34,92.08,10530000,92.08 +1966-04-19,91.58,92.31,90.89,91.57,8820000,91.57 +1966-04-18,91.99,92.59,91.09,91.58,9150000,91.58 +1966-04-15,91.87,92.75,91.28,91.99,10270000,91.99 +1966-04-14,91.54,92.80,91.12,91.87,12980000,91.87 +1966-04-13,91.45,92.81,90.73,91.54,10440000,91.54 +1966-04-12,91.79,92.51,90.92,91.45,10500000,91.45 +1966-04-11,91.76,92.60,91.08,91.79,9310000,91.79 +1966-04-07,91.56,92.42,90.99,91.76,9650000,91.76 +1966-04-06,91.31,92.10,90.77,91.56,9040000,91.56 +1966-04-05,90.76,92.04,90.47,91.31,10560000,91.31 +1966-04-04,89.94,91.33,89.92,90.76,9360000,90.76 +1966-04-01,89.23,90.37,88.96,89.94,9050000,89.94 +1966-03-31,88.78,89.70,88.47,89.23,6690000,89.23 +1966-03-30,89.27,89.57,88.31,88.78,7980000,88.78 +1966-03-29,89.62,90.04,88.63,89.27,8300000,89.27 +1966-03-28,89.54,90.41,89.15,89.62,8640000,89.62 +1966-03-25,89.29,90.14,88.96,89.54,7750000,89.54 +1966-03-24,89.13,89.80,88.68,89.29,7880000,89.29 +1966-03-23,89.46,89.80,88.69,89.13,6720000,89.13 +1966-03-22,89.20,90.28,89.01,89.46,8910000,89.46 +1966-03-21,88.53,89.73,88.40,89.20,7230000,89.20 +1966-03-18,88.17,89.23,87.82,88.53,6450000,88.53 +1966-03-17,87.86,88.60,87.45,88.17,5460000,88.17 +1966-03-16,87.35,88.55,87.09,87.86,7330000,87.86 +1966-03-15,87.85,88.20,86.69,87.35,9440000,87.35 +1966-03-14,88.85,88.92,87.56,87.85,7400000,87.85 +1966-03-11,88.96,89.63,88.30,88.85,7000000,88.85 +1966-03-10,88.96,90.14,88.36,88.96,10310000,88.96 +1966-03-09,88.18,89.21,87.96,88.96,7980000,88.96 +1966-03-08,88.04,89.00,87.17,88.18,10120000,88.18 +1966-03-07,89.24,89.39,87.67,88.04,9370000,88.04 +1966-03-04,89.47,90.25,88.72,89.24,9000000,89.24 +1966-03-03,89.15,90.03,88.26,89.47,9900000,89.47 +1966-03-02,90.06,90.65,88.70,89.15,10470000,89.15 +1966-03-01,91.22,91.65,89.76,90.06,11030000,90.06 +1966-02-28,91.14,91.95,90.65,91.22,9910000,91.22 +1966-02-25,90.89,91.88,90.43,91.14,8140000,91.14 +1966-02-24,91.48,91.81,90.45,90.89,7860000,90.89 +1966-02-23,91.87,92.21,90.99,91.48,8080000,91.48 +1966-02-21,92.41,92.83,91.35,91.87,8510000,91.87 +1966-02-18,92.66,93.14,91.80,92.41,8470000,92.41 +1966-02-17,93.16,93.58,92.11,92.66,9330000,92.66 +1966-02-16,93.17,93.74,92.63,93.16,9180000,93.16 +1966-02-15,93.53,94.04,92.67,93.17,8750000,93.17 +1966-02-14,93.81,94.40,93.15,93.53,8360000,93.53 +1966-02-11,93.83,94.52,93.25,93.81,8150000,93.81 +1966-02-10,94.06,94.70,93.32,93.83,9790000,93.83 +1966-02-09,93.55,94.72,93.29,94.06,9760000,94.06 +1966-02-08,93.59,94.29,92.58,93.55,10560000,93.55 +1966-02-07,93.26,94.22,92.85,93.59,8000000,93.59 +1966-02-04,92.65,93.70,92.33,93.26,7560000,93.26 +1966-02-03,92.53,93.67,92.11,92.65,8160000,92.65 +1966-02-02,92.16,92.91,91.32,92.53,8130000,92.53 +1966-02-01,92.88,93.36,91.61,92.16,9090000,92.16 +1966-01-31,93.31,93.77,92.46,92.88,7800000,92.88 +1966-01-28,93.67,94.15,92.84,93.31,9000000,93.31 +1966-01-27,93.70,94.34,93.09,93.67,8970000,93.67 +1966-01-26,93.85,94.53,93.18,93.70,9910000,93.70 +1966-01-25,93.71,94.56,93.24,93.85,9300000,93.85 +1966-01-24,93.47,94.41,93.07,93.71,8780000,93.71 +1966-01-21,93.36,93.97,92.60,93.47,9180000,93.47 +1966-01-20,93.69,94.33,92.87,93.36,8670000,93.36 +1966-01-19,93.95,94.62,93.16,93.69,10230000,93.69 +1966-01-18,93.77,94.64,93.23,93.95,9790000,93.95 +1966-01-17,93.50,94.46,93.10,93.77,9430000,93.77 +1966-01-14,93.36,94.14,92.98,93.50,9210000,93.50 +1966-01-13,93.19,94.00,92.68,93.36,8860000,93.36 +1966-01-12,93.41,93.98,92.80,93.19,8530000,93.19 +1966-01-11,93.33,94.05,92.85,93.41,8910000,93.41 +1966-01-10,93.14,93.94,92.75,93.33,7720000,93.33 +1966-01-07,93.06,93.64,92.47,93.14,7600000,93.14 +1966-01-06,92.85,93.65,92.51,93.06,7880000,93.06 +1966-01-05,92.26,93.33,91.99,92.85,9650000,92.85 +1966-01-04,92.18,93.04,91.68,92.26,7540000,92.26 +1966-01-03,92.43,92.87,91.63,92.18,5950000,92.18 +1965-12-31,92.20,93.05,91.82,92.43,7240000,92.43 +1965-12-30,91.81,92.68,91.52,92.20,7060000,92.20 +1965-12-29,91.53,92.39,91.14,91.81,7610000,91.81 +1965-12-28,91.52,92.13,90.63,91.53,7280000,91.53 +1965-12-27,92.19,92.71,91.28,91.52,5950000,91.52 +1965-12-23,92.29,92.89,91.58,92.19,6870000,92.19 +1965-12-22,92.01,93.07,91.53,92.29,9720000,92.29 +1965-12-21,91.65,92.59,91.24,92.01,8230000,92.01 +1965-12-20,92.08,92.35,91.09,91.65,7350000,91.65 +1965-12-17,92.12,92.76,91.51,92.08,9490000,92.08 +1965-12-16,92.02,92.95,91.53,92.12,9950000,92.12 +1965-12-15,91.88,92.67,91.30,92.02,9560000,92.02 +1965-12-14,91.83,92.59,91.35,91.88,9920000,91.88 +1965-12-13,91.80,92.45,91.27,91.83,8660000,91.83 +1965-12-10,91.56,92.28,91.14,91.80,8740000,91.80 +1965-12-09,91.28,92.06,90.87,91.56,9150000,91.56 +1965-12-08,91.39,92.24,90.84,91.28,10120000,91.28 +1965-12-07,90.59,92.00,90.45,91.39,9340000,91.39 +1965-12-06,91.20,91.20,89.20,90.59,11440000,90.59 +1965-12-03,91.21,91.80,90.53,91.27,8160000,91.27 +1965-12-02,91.50,91.95,90.69,91.21,9070000,91.21 +1965-12-01,91.61,92.26,91.02,91.50,10140000,91.50 +1965-11-30,91.80,92.14,90.81,91.61,8990000,91.61 +1965-11-29,92.03,92.60,91.37,91.80,8760000,91.80 +1965-11-26,91.94,92.65,91.39,92.03,6970000,92.03 +1965-11-24,91.78,92.50,91.14,91.94,7870000,91.94 +1965-11-23,91.64,92.24,91.15,91.78,7150000,91.78 +1965-11-22,92.24,92.48,91.16,91.64,6370000,91.64 +1965-11-19,92.22,92.88,91.73,92.24,6850000,92.24 +1965-11-18,92.60,92.94,91.72,92.22,7040000,92.22 +1965-11-17,92.41,93.28,91.85,92.60,9120000,92.60 +1965-11-16,92.63,93.13,91.90,92.41,8380000,92.41 +1965-11-15,92.55,93.30,92.04,92.63,8310000,92.63 +1965-11-12,92.11,93.07,91.83,92.55,7780000,92.55 +1965-11-11,91.83,92.37,91.31,92.11,5430000,92.11 +1965-11-10,91.93,92.40,91.35,91.83,4860000,91.83 +1965-11-09,92.23,92.65,91.47,91.93,6680000,91.93 +1965-11-08,92.37,92.97,91.63,92.23,7000000,92.23 +1965-11-05,92.46,92.92,91.78,92.37,7310000,92.37 +1965-11-04,92.31,93.07,91.90,92.46,8380000,92.46 +1965-11-03,92.23,92.79,91.62,92.31,7520000,92.31 +1965-11-01,92.42,92.92,91.73,92.23,6340000,92.23 +1965-10-29,92.21,92.94,91.83,92.42,7240000,92.42 +1965-10-28,92.51,92.95,91.60,92.21,7230000,92.21 +1965-10-27,92.20,93.19,91.95,92.51,7670000,92.51 +1965-10-26,91.67,92.63,91.36,92.20,6750000,92.20 +1965-10-25,91.98,92.72,91.34,91.67,7090000,91.67 +1965-10-22,91.94,92.74,91.54,91.98,8960000,91.98 +1965-10-21,91.78,92.51,91.42,91.94,9170000,91.94 +1965-10-20,91.80,92.26,91.12,91.78,8200000,91.78 +1965-10-19,91.68,92.45,91.35,91.80,8620000,91.80 +1965-10-18,91.38,92.28,91.06,91.68,8180000,91.68 +1965-10-15,91.19,92.09,90.76,91.38,7470000,91.38 +1965-10-14,91.34,91.90,90.71,91.19,8580000,91.19 +1965-10-13,91.35,91.81,90.73,91.34,9470000,91.34 +1965-10-12,91.37,91.94,90.83,91.35,9470000,91.35 +1965-10-11,90.85,91.84,90.73,91.37,9600000,91.37 +1965-10-08,90.47,91.31,90.30,90.85,7670000,90.85 +1965-10-07,90.54,91.09,90.09,90.47,6670000,90.47 +1965-10-06,90.63,90.94,89.74,90.54,6010000,90.54 +1965-10-05,90.08,91.02,89.92,90.63,6980000,90.63 +1965-10-04,89.90,90.56,89.47,90.08,5590000,90.08 +1965-10-01,89.96,90.48,89.30,89.90,7470000,89.90 +1965-09-30,90.02,90.71,89.51,89.96,8670000,89.96 +1965-09-29,90.43,91.11,89.56,90.02,10600000,90.02 +1965-09-28,90.65,91.13,89.83,90.43,8750000,90.43 +1965-09-27,90.65,90.65,90.65,90.65,6820000,90.65 +1965-09-24,89.86,90.47,89.13,90.02,7810000,90.02 +1965-09-23,90.22,90.78,89.43,89.86,9990000,89.86 +1965-09-22,89.81,90.67,89.45,90.22,8290000,90.22 +1965-09-21,90.08,90.66,89.43,89.81,7750000,89.81 +1965-09-20,90.05,90.67,89.51,90.08,7040000,90.08 +1965-09-17,90.02,90.47,89.32,90.05,6610000,90.05 +1965-09-16,90.02,90.02,90.02,90.02,7410000,90.02 +1965-09-15,89.03,89.96,88.71,89.52,6220000,89.52 +1965-09-14,89.38,90.01,88.69,89.03,7830000,89.03 +1965-09-13,89.12,89.91,88.77,89.38,7020000,89.38 +1965-09-10,88.89,89.85,88.41,89.12,6650000,89.12 +1965-09-09,88.66,89.46,88.35,88.89,7360000,88.89 +1965-09-08,88.36,89.08,87.93,88.66,6240000,88.66 +1965-09-07,88.06,88.77,87.76,88.36,5750000,88.36 +1965-09-03,87.65,88.41,87.52,88.06,6010000,88.06 +1965-09-02,87.17,87.96,86.98,87.65,6470000,87.65 +1965-09-01,87.17,87.63,86.69,87.17,5890000,87.17 +1965-08-31,87.21,87.79,86.78,87.17,5170000,87.17 +1965-08-30,87.20,87.64,86.76,87.21,4400000,87.21 +1965-08-27,87.14,87.74,86.81,87.20,5570000,87.20 +1965-08-26,86.81,87.52,86.40,87.14,6010000,87.14 +1965-08-25,86.71,87.27,86.33,86.81,6240000,86.81 +1965-08-24,86.56,87.19,86.22,86.71,4740000,86.71 +1965-08-23,86.69,87.10,86.22,86.56,4470000,86.56 +1965-08-20,86.79,87.14,86.21,86.69,4170000,86.69 +1965-08-19,86.99,87.48,86.49,86.79,5000000,86.79 +1965-08-18,87.04,87.57,86.63,86.99,5850000,86.99 +1965-08-17,86.87,87.42,86.48,87.04,4520000,87.04 +1965-08-16,86.77,87.43,86.46,86.87,5270000,86.87 +1965-08-13,86.38,87.14,86.09,86.77,5430000,86.77 +1965-08-12,86.13,86.75,85.85,86.38,5160000,86.38 +1965-08-11,85.87,86.48,85.64,86.13,5030000,86.13 +1965-08-10,85.86,86.31,85.45,85.87,4690000,85.87 +1965-08-09,86.07,86.54,85.52,85.86,4540000,85.86 +1965-08-06,85.79,86.40,85.42,86.07,4200000,86.07 +1965-08-05,85.79,86.28,85.43,85.79,4920000,85.79 +1965-08-04,85.46,86.12,85.22,85.79,4830000,85.79 +1965-08-03,85.42,85.81,84.80,85.46,4640000,85.46 +1965-08-02,85.25,85.87,84.87,85.42,4220000,85.42 +1965-07-30,84.68,85.64,84.64,85.25,5200000,85.25 +1965-07-29,84.03,85.00,83.79,84.68,4690000,84.68 +1965-07-28,83.87,84.52,83.30,84.03,4760000,84.03 +1965-07-27,84.05,84.59,83.58,83.87,4190000,83.87 +1965-07-26,84.07,84.47,83.49,84.05,3790000,84.05 +1965-07-23,83.85,84.52,83.57,84.07,3600000,84.07 +1965-07-22,84.07,84.45,83.53,83.85,3310000,83.85 +1965-07-21,84.55,84.84,83.76,84.07,4350000,84.07 +1965-07-20,85.63,85.85,84.39,84.55,4670000,84.55 +1965-07-19,85.69,86.04,85.21,85.63,3220000,85.63 +1965-07-16,85.72,86.14,85.26,85.69,3520000,85.69 +1965-07-15,85.87,86.47,85.44,85.72,4420000,85.72 +1965-07-14,85.59,86.23,85.18,85.87,4100000,85.87 +1965-07-13,85.69,86.01,85.12,85.59,3260000,85.59 +1965-07-12,85.71,86.08,85.24,85.69,3690000,85.69 +1965-07-09,85.39,86.11,85.11,85.71,4800000,85.71 +1965-07-08,84.67,85.60,84.29,85.39,4380000,85.39 +1965-07-07,84.99,85.14,84.28,84.67,3020000,84.67 +1965-07-06,85.16,85.63,84.57,84.99,3400000,84.99 +1965-07-02,84.48,85.40,84.13,85.16,4260000,85.16 +1965-07-01,84.12,84.64,83.57,84.48,4520000,84.48 +1965-06-30,82.97,84.63,82.97,84.12,6930000,84.12 +1965-06-29,81.60,83.04,80.73,82.41,10450000,82.41 +1965-06-28,83.06,83.34,81.36,81.60,7650000,81.60 +1965-06-25,83.56,83.83,82.60,83.06,5790000,83.06 +1965-06-24,84.67,84.73,83.30,83.56,5840000,83.56 +1965-06-23,85.21,85.59,84.52,84.67,3580000,84.67 +1965-06-22,85.05,85.70,84.76,85.21,3330000,85.21 +1965-06-21,85.34,85.64,84.53,85.05,3280000,85.05 +1965-06-18,85.74,86.10,84.90,85.34,4330000,85.34 +1965-06-17,85.20,86.22,84.98,85.74,5220000,85.74 +1965-06-16,84.58,85.79,84.58,85.20,6290000,85.20 +1965-06-15,84.01,84.86,83.01,84.49,8450000,84.49 +1965-06-14,85.12,85.68,83.64,84.01,5920000,84.01 +1965-06-11,84.73,85.68,84.50,85.12,5350000,85.12 +1965-06-10,85.04,85.82,84.10,84.73,7470000,84.73 +1965-06-09,85.93,86.37,84.75,85.04,7070000,85.04 +1965-06-08,86.88,87.10,85.74,85.93,4660000,85.93 +1965-06-07,87.11,87.45,86.04,86.88,4680000,86.88 +1965-06-04,86.90,87.46,86.36,87.11,4530000,87.11 +1965-06-03,87.09,88.05,86.58,86.90,5720000,86.90 +1965-06-02,87.87,87.87,86.25,87.09,6790000,87.09 +1965-06-01,88.42,88.80,87.88,88.72,4830000,88.72 +1965-05-28,87.84,88.68,87.58,88.42,4270000,88.42 +1965-05-27,88.30,88.36,87.24,87.84,5520000,87.84 +1965-05-26,88.60,89.22,88.04,88.30,5330000,88.30 +1965-05-25,88.09,88.96,87.82,88.60,4950000,88.60 +1965-05-24,88.75,88.89,87.75,88.09,4790000,88.09 +1965-05-21,89.18,89.41,88.40,88.75,4660000,88.75 +1965-05-20,89.67,89.86,88.74,89.18,5750000,89.18 +1965-05-19,89.46,90.15,89.17,89.67,5860000,89.67 +1965-05-18,89.54,89.84,88.87,89.46,5130000,89.46 +1965-05-17,90.10,90.44,89.24,89.54,4980000,89.54 +1965-05-14,90.27,90.66,89.63,90.10,5860000,90.10 +1965-05-13,89.94,90.68,89.68,90.27,6460000,90.27 +1965-05-12,89.55,90.31,89.30,89.94,6310000,89.94 +1965-05-11,89.66,89.98,89.05,89.55,5150000,89.55 +1965-05-10,89.85,90.22,89.22,89.66,5600000,89.66 +1965-05-07,89.92,90.30,89.33,89.85,5820000,89.85 +1965-05-06,89.71,90.57,89.39,89.92,6340000,89.92 +1965-05-05,89.51,90.40,89.14,89.71,6350000,89.71 +1965-05-04,89.23,89.89,88.82,89.51,5720000,89.51 +1965-05-03,89.11,89.68,88.62,89.23,5340000,89.23 +1965-04-30,88.93,89.44,88.50,89.11,5190000,89.11 +1965-04-29,89.00,89.43,88.47,88.93,5510000,88.93 +1965-04-28,89.04,89.48,88.51,89.00,5680000,89.00 +1965-04-27,88.89,89.64,88.71,89.04,6310000,89.04 +1965-04-26,88.88,89.29,88.30,88.89,5410000,88.89 +1965-04-23,88.78,89.41,88.48,88.88,5860000,88.88 +1965-04-22,88.30,89.13,88.12,88.78,5990000,88.78 +1965-04-21,88.46,88.82,87.70,88.30,5590000,88.30 +1965-04-20,88.51,89.07,88.02,88.46,6480000,88.46 +1965-04-19,88.15,88.90,87.90,88.51,5700000,88.51 +1965-04-15,88.24,88.63,87.55,88.15,5830000,88.15 +1965-04-14,88.04,88.65,87.71,88.24,6580000,88.24 +1965-04-13,87.94,88.48,87.54,88.04,6690000,88.04 +1965-04-12,87.56,88.36,87.31,87.94,6040000,87.94 +1965-04-09,87.04,87.87,86.86,87.56,6580000,87.56 +1965-04-08,86.55,87.35,86.34,87.04,5770000,87.04 +1965-04-07,86.50,86.88,86.14,86.55,4430000,86.55 +1965-04-06,86.53,86.91,86.08,86.50,4610000,86.50 +1965-04-05,86.53,87.08,86.14,86.53,4920000,86.53 +1965-04-02,86.32,86.89,86.08,86.53,5060000,86.53 +1965-04-01,86.16,86.73,85.87,86.32,4890000,86.32 +1965-03-31,86.20,86.64,85.83,86.16,4470000,86.16 +1965-03-30,86.03,86.53,85.69,86.20,4270000,86.20 +1965-03-29,86.20,86.66,85.65,86.03,4590000,86.03 +1965-03-26,86.84,87.06,85.96,86.20,5020000,86.20 +1965-03-25,87.09,87.50,86.55,86.84,5460000,86.84 +1965-03-24,86.93,87.55,86.68,87.09,5420000,87.09 +1965-03-23,86.83,87.34,86.45,86.93,4820000,86.93 +1965-03-22,86.84,87.34,86.41,86.83,4920000,86.83 +1965-03-19,86.81,87.37,86.43,86.84,5040000,86.84 +1965-03-18,87.02,87.48,86.50,86.81,4990000,86.81 +1965-03-17,87.13,87.51,86.63,87.02,5120000,87.02 +1965-03-16,87.24,87.61,86.67,87.13,5480000,87.13 +1965-03-15,87.21,87.92,86.82,87.24,6000000,87.24 +1965-03-12,86.90,87.65,86.60,87.21,6370000,87.21 +1965-03-11,86.54,87.29,86.17,86.90,5770000,86.90 +1965-03-10,86.69,87.07,86.20,86.54,5100000,86.54 +1965-03-09,86.83,87.27,86.33,86.69,5210000,86.69 +1965-03-08,86.80,87.28,86.31,86.83,5250000,86.83 +1965-03-05,86.98,87.26,86.00,86.80,6120000,86.80 +1965-03-04,87.26,87.72,86.63,86.98,7300000,86.98 +1965-03-03,87.40,87.83,86.88,87.26,6600000,87.26 +1965-03-02,87.25,87.79,86.84,87.40,5730000,87.40 +1965-03-01,87.43,87.93,86.92,87.25,5780000,87.25 +1965-02-26,87.20,87.84,86.81,87.43,5800000,87.43 +1965-02-25,87.17,87.70,86.70,87.20,6680000,87.20 +1965-02-24,86.64,87.72,86.43,87.17,7160000,87.17 +1965-02-23,86.21,87.01,86.03,86.64,5880000,86.64 +1965-02-19,86.05,86.67,85.71,86.21,5560000,86.21 +1965-02-18,85.77,86.48,85.47,86.05,6060000,86.05 +1965-02-17,85.67,86.25,85.25,85.77,5510000,85.77 +1965-02-16,86.07,86.31,85.33,85.67,5000000,85.67 +1965-02-15,86.17,86.86,85.75,86.07,5760000,86.07 +1965-02-12,85.54,86.48,85.54,86.17,4960000,86.17 +1965-02-11,86.46,86.89,85.40,85.54,5800000,85.54 +1965-02-10,87.24,87.70,86.20,86.46,7210000,86.46 +1965-02-09,86.95,87.64,86.70,87.24,5690000,87.24 +1965-02-08,87.00,87.00,85.95,86.95,6010000,86.95 +1965-02-05,87.57,87.98,86.90,87.29,5690000,87.29 +1965-02-04,87.63,88.06,87.06,87.57,6230000,87.57 +1965-02-03,87.55,88.01,87.07,87.63,6130000,87.63 +1965-02-02,87.58,87.94,87.03,87.55,5460000,87.55 +1965-02-01,87.56,88.01,87.05,87.58,5690000,87.58 +1965-01-29,87.48,88.19,87.18,87.56,6940000,87.56 +1965-01-28,87.23,87.88,86.89,87.48,6730000,87.48 +1965-01-27,86.94,87.67,86.70,87.23,6010000,87.23 +1965-01-26,86.86,87.45,86.51,86.94,5760000,86.94 +1965-01-25,86.74,87.27,86.39,86.86,5370000,86.86 +1965-01-22,86.52,87.15,86.20,86.74,5430000,86.74 +1965-01-21,86.60,86.90,86.02,86.52,4780000,86.52 +1965-01-20,86.63,87.10,86.26,86.60,5550000,86.60 +1965-01-19,86.49,87.09,86.15,86.63,5550000,86.63 +1965-01-18,86.21,87.15,85.99,86.49,5550000,86.49 +1965-01-15,85.84,86.52,85.60,86.21,5340000,86.21 +1965-01-14,85.84,86.38,85.41,85.84,5810000,85.84 +1965-01-13,85.61,86.27,85.35,85.84,6160000,85.84 +1965-01-12,85.40,85.98,85.13,85.61,5400000,85.61 +1965-01-11,85.37,85.81,84.90,85.40,5440000,85.40 +1965-01-08,85.26,85.84,84.91,85.37,5340000,85.37 +1965-01-07,84.89,85.62,84.66,85.26,5080000,85.26 +1965-01-06,84.63,85.38,84.45,84.89,4850000,84.89 +1965-01-05,84.23,85.02,84.02,84.63,4110000,84.63 +1965-01-04,84.75,85.15,83.77,84.23,3930000,84.23 +1964-12-31,84.30,85.18,84.18,84.75,6470000,84.75 +1964-12-30,83.81,84.63,83.63,84.30,5610000,84.30 +1964-12-29,84.07,84.35,83.38,83.81,4450000,83.81 +1964-12-28,84.15,84.58,83.70,84.07,3990000,84.07 +1964-12-24,84.15,84.59,83.74,84.15,3600000,84.15 +1964-12-23,84.33,84.76,83.79,84.15,4470000,84.15 +1964-12-22,84.38,84.88,83.94,84.33,4520000,84.33 +1964-12-21,84.29,84.91,84.11,84.38,4470000,84.38 +1964-12-18,83.90,84.65,83.73,84.29,4630000,84.29 +1964-12-17,83.55,84.24,83.34,83.90,4850000,83.90 +1964-12-16,83.22,83.94,83.00,83.55,4610000,83.55 +1964-12-15,83.45,83.79,82.65,83.22,5340000,83.22 +1964-12-14,83.66,84.17,83.10,83.45,4340000,83.45 +1964-12-11,83.45,84.05,83.09,83.66,4530000,83.66 +1964-12-10,83.46,83.96,82.98,83.45,4790000,83.45 +1964-12-09,84.00,84.24,83.24,83.46,5120000,83.46 +1964-12-08,84.33,84.71,83.69,84.00,4990000,84.00 +1964-12-07,84.35,85.03,84.04,84.33,4770000,84.33 +1964-12-04,84.35,84.35,84.35,84.35,4340000,84.35 +1964-12-03,83.79,84.74,83.71,84.18,4250000,84.18 +1964-12-02,83.55,84.23,83.12,83.79,4930000,83.79 +1964-12-01,84.42,84.56,83.36,83.55,4940000,83.55 +1964-11-30,85.16,85.41,84.10,84.42,4890000,84.42 +1964-11-27,85.44,85.68,84.55,85.16,4070000,85.16 +1964-11-25,85.73,86.18,85.10,85.44,4800000,85.44 +1964-11-24,86.00,86.12,85.15,85.73,5070000,85.73 +1964-11-23,86.28,86.59,85.48,86.00,4860000,86.00 +1964-11-20,86.18,86.80,85.73,86.28,5210000,86.28 +1964-11-19,86.22,86.57,85.60,86.18,5570000,86.18 +1964-11-18,86.03,86.80,85.73,86.22,6560000,86.22 +1964-11-17,85.65,86.55,85.48,86.03,5920000,86.03 +1964-11-16,85.21,85.94,84.88,85.65,4870000,85.65 +1964-11-13,85.19,85.68,84.76,85.21,4860000,85.21 +1964-11-12,85.08,85.63,84.75,85.19,5250000,85.19 +1964-11-11,84.84,85.30,84.49,85.08,3790000,85.08 +1964-11-10,85.19,85.55,84.49,84.84,5020000,84.84 +1964-11-09,85.23,85.72,84.93,85.19,4560000,85.19 +1964-11-06,85.16,85.55,84.65,85.23,4810000,85.23 +1964-11-05,85.14,85.62,84.72,85.16,4380000,85.16 +1964-11-04,85.18,85.90,84.80,85.14,4720000,85.14 +1964-11-02,84.86,85.54,84.51,85.18,4430000,85.18 +1964-10-30,84.73,85.22,84.41,84.86,4120000,84.86 +1964-10-29,84.69,85.15,84.36,84.73,4390000,84.73 +1964-10-28,85.00,85.37,84.43,84.69,4890000,84.69 +1964-10-27,85.00,85.40,84.61,85.00,4470000,85.00 +1964-10-26,85.14,85.70,84.65,85.00,5230000,85.00 +1964-10-23,84.94,85.42,84.57,85.14,3830000,85.14 +1964-10-22,85.10,85.44,84.51,84.94,4670000,84.94 +1964-10-21,85.18,85.64,84.77,85.10,5170000,85.10 +1964-10-20,84.93,85.57,84.56,85.18,5140000,85.18 +1964-10-19,84.83,85.36,84.47,84.93,5010000,84.93 +1964-10-16,84.25,85.10,84.10,84.83,5140000,84.83 +1964-10-15,84.79,84.99,83.65,84.25,6500000,84.25 +1964-10-14,84.96,85.29,84.50,84.79,4530000,84.79 +1964-10-13,85.24,85.57,84.63,84.96,5400000,84.96 +1964-10-12,85.22,85.58,84.88,85.24,4110000,85.24 +1964-10-09,85.04,85.60,84.72,85.22,5290000,85.22 +1964-10-08,84.80,85.40,84.47,85.04,5060000,85.04 +1964-10-07,84.79,85.25,84.42,84.80,5090000,84.80 +1964-10-06,84.74,85.24,84.37,84.79,4820000,84.79 +1964-10-05,84.36,85.25,84.20,84.74,4850000,84.74 +1964-10-02,84.08,84.64,83.71,84.36,4370000,84.36 +1964-10-01,84.18,84.53,83.74,84.08,4470000,84.08 +1964-09-30,84.24,84.66,83.86,84.18,4720000,84.18 +1964-09-29,84.28,84.80,83.84,84.24,5070000,84.24 +1964-09-28,84.21,84.73,83.79,84.28,4810000,84.28 +1964-09-25,84.00,84.62,83.56,84.21,6170000,84.21 +1964-09-24,83.91,84.43,83.45,84.00,5840000,84.00 +1964-09-23,83.89,84.37,83.45,83.91,5920000,83.91 +1964-09-22,83.86,84.44,83.53,83.89,5250000,83.89 +1964-09-21,83.48,84.32,83.41,83.86,5310000,83.86 +1964-09-18,83.79,84.29,83.03,83.48,6160000,83.48 +1964-09-17,83.24,84.18,83.17,83.79,6380000,83.79 +1964-09-16,83.00,83.52,82.57,83.24,4230000,83.24 +1964-09-15,83.22,83.68,82.69,83.00,5690000,83.00 +1964-09-14,83.45,83.89,82.88,83.22,5370000,83.22 +1964-09-11,83.10,83.84,82.79,83.45,5630000,83.45 +1964-09-10,83.05,83.50,82.60,83.10,5470000,83.10 +1964-09-09,82.87,83.51,82.54,83.05,5690000,83.05 +1964-09-08,82.76,83.24,82.46,82.87,4090000,82.87 +1964-09-04,82.56,83.03,82.31,82.76,4210000,82.76 +1964-09-03,82.31,82.83,82.04,82.56,4310000,82.56 +1964-09-02,82.18,82.76,81.95,82.31,4800000,82.31 +1964-09-01,81.83,82.50,81.57,82.18,4650000,82.18 +1964-08-31,81.99,82.48,81.46,81.83,3340000,81.83 +1964-08-28,81.70,82.29,81.54,81.99,3760000,81.99 +1964-08-27,81.32,81.94,81.07,81.70,3560000,81.70 +1964-08-26,81.44,81.74,80.99,81.32,3300000,81.32 +1964-08-25,81.91,82.13,81.20,81.44,3780000,81.44 +1964-08-24,82.07,82.48,81.64,81.91,3790000,81.91 +1964-08-21,81.94,82.43,81.64,82.07,3620000,82.07 +1964-08-20,82.32,82.57,81.60,81.94,3840000,81.94 +1964-08-19,82.40,82.80,81.99,82.32,4160000,82.32 +1964-08-18,82.36,82.79,82.01,82.40,4180000,82.40 +1964-08-17,82.35,82.85,82.02,82.36,3780000,82.36 +1964-08-14,82.41,82.83,82.03,82.35,4080000,82.35 +1964-08-13,82.17,82.87,81.98,82.41,4600000,82.41 +1964-08-12,81.76,82.53,81.60,82.17,4140000,82.17 +1964-08-11,81.78,82.25,81.45,81.76,3450000,81.76 +1964-08-10,81.86,82.23,81.43,81.78,3050000,81.78 +1964-08-07,81.34,82.20,81.19,81.86,3190000,81.86 +1964-08-06,82.09,82.45,81.20,81.34,3940000,81.34 +1964-08-05,81.96,82.41,80.80,82.09,6160000,82.09 +1964-08-04,83.00,83.02,81.68,81.96,4780000,81.96 +1964-08-03,83.18,83.49,82.65,83.00,3780000,83.00 +1964-07-31,83.09,83.57,82.72,83.18,4220000,83.18 +1964-07-30,82.92,83.50,82.63,83.09,4530000,83.09 +1964-07-29,82.85,83.30,82.47,82.92,4050000,82.92 +1964-07-28,83.08,83.30,82.40,82.85,3860000,82.85 +1964-07-27,83.46,83.82,82.82,83.08,4090000,83.08 +1964-07-24,83.48,83.92,83.07,83.46,4210000,83.46 +1964-07-23,83.52,83.91,83.06,83.48,4560000,83.48 +1964-07-22,83.54,83.95,82.96,83.52,4570000,83.52 +1964-07-21,83.74,83.99,83.06,83.54,4570000,83.54 +1964-07-20,84.01,84.33,83.44,83.74,4390000,83.74 +1964-07-17,83.64,84.33,83.37,84.01,4640000,84.01 +1964-07-16,83.34,83.98,83.06,83.64,4640000,83.64 +1964-07-15,83.06,83.67,82.72,83.34,4610000,83.34 +1964-07-14,83.31,83.71,82.72,83.06,4760000,83.06 +1964-07-13,83.36,83.86,82.92,83.31,4800000,83.31 +1964-07-10,83.22,83.99,82.87,83.36,5420000,83.36 +1964-07-09,83.12,83.64,82.74,83.22,5040000,83.22 +1964-07-08,83.12,83.56,82.58,83.12,4760000,83.12 +1964-07-07,82.98,83.53,82.60,83.12,5240000,83.12 +1964-07-06,82.60,83.38,82.37,82.98,5080000,82.98 +1964-07-02,82.27,82.98,82.09,82.60,5230000,82.60 +1964-07-01,81.69,82.51,81.46,82.27,5320000,82.27 +1964-06-30,81.64,82.07,81.19,81.69,4360000,81.69 +1964-06-29,81.46,82.10,81.10,81.64,4380000,81.64 +1964-06-26,81.21,81.78,80.86,81.46,4440000,81.46 +1964-06-25,81.06,81.73,80.75,81.21,5010000,81.21 +1964-06-24,80.77,81.45,80.41,81.06,4840000,81.06 +1964-06-23,81.11,81.43,80.50,80.77,4060000,80.77 +1964-06-22,80.89,81.54,80.66,81.11,4540000,81.11 +1964-06-19,80.79,81.23,80.39,80.89,4050000,80.89 +1964-06-18,80.81,81.34,80.43,80.79,4730000,80.79 +1964-06-17,80.40,81.13,80.22,80.81,5340000,80.81 +1964-06-16,79.97,80.72,79.85,80.40,4590000,80.40 +1964-06-15,79.60,80.33,79.39,79.97,4110000,79.97 +1964-06-12,79.73,80.05,79.19,79.60,3840000,79.60 +1964-06-11,79.44,80.13,79.24,79.73,3620000,79.73 +1964-06-10,79.14,79.84,79.02,79.44,4170000,79.44 +1964-06-09,78.64,79.39,78.15,79.14,4470000,79.14 +1964-06-08,79.02,79.44,78.44,78.64,4010000,78.64 +1964-06-05,78.67,79.45,78.50,79.02,4240000,79.02 +1964-06-04,79.49,79.75,78.44,78.67,4880000,78.67 +1964-06-03,79.70,80.12,79.27,79.49,3990000,79.49 +1964-06-02,80.11,80.60,79.50,79.70,4180000,79.70 +1964-06-01,80.37,80.83,79.83,80.11,4300000,80.11 +1964-05-28,80.26,80.75,79.88,80.37,4560000,80.37 +1964-05-27,80.39,80.72,79.78,80.26,4450000,80.26 +1964-05-26,80.56,80.94,80.12,80.39,4290000,80.39 +1964-05-25,80.73,81.16,80.21,80.56,3990000,80.56 +1964-05-22,80.94,81.15,80.36,80.73,4640000,80.73 +1964-05-21,80.66,81.49,80.36,80.94,5350000,80.94 +1964-05-20,80.30,81.02,80.09,80.66,4790000,80.66 +1964-05-19,80.72,81.04,79.96,80.30,4360000,80.30 +1964-05-18,81.10,81.47,80.42,80.72,4590000,80.72 +1964-05-15,80.86,81.45,80.49,81.10,5070000,81.10 +1964-05-14,80.97,81.28,80.37,80.86,4720000,80.86 +1964-05-13,81.16,81.65,80.66,80.97,5890000,80.97 +1964-05-12,80.90,81.81,80.66,81.16,5200000,81.16 +1964-05-11,81.00,81.51,80.58,80.90,4490000,80.90 +1964-05-08,81.00,81.00,81.00,81.00,4910000,81.00 +1964-05-07,81.06,81.72,80.67,81.15,5600000,81.15 +1964-05-06,80.88,81.57,80.53,81.06,5560000,81.06 +1964-05-05,80.47,81.20,79.99,80.88,5340000,80.88 +1964-05-04,80.17,81.01,79.87,80.47,5360000,80.47 +1964-05-01,79.46,80.47,79.46,80.17,5990000,80.17 +1964-04-30,79.70,80.08,79.08,79.46,5690000,79.46 +1964-04-29,79.90,80.60,79.29,79.70,6200000,79.70 +1964-04-28,79.35,80.26,79.14,79.90,4790000,79.90 +1964-04-27,79.75,80.01,78.90,79.35,5070000,79.35 +1964-04-24,80.38,80.62,79.45,79.75,5610000,79.75 +1964-04-23,80.49,81.20,80.09,80.38,6690000,80.38 +1964-04-22,80.54,80.92,80.06,80.49,5390000,80.49 +1964-04-21,80.50,80.98,80.05,80.54,5750000,80.54 +1964-04-20,80.55,81.04,80.11,80.50,5560000,80.50 +1964-04-17,80.20,80.98,79.99,80.55,6030000,80.55 +1964-04-16,80.09,80.62,79.73,80.20,5240000,80.20 +1964-04-15,79.99,80.50,79.63,80.09,5270000,80.09 +1964-04-14,79.77,80.37,79.46,79.99,5120000,79.99 +1964-04-13,79.85,80.30,79.42,79.77,5330000,79.77 +1964-04-10,79.70,80.26,79.43,79.85,4990000,79.85 +1964-04-09,79.75,80.23,79.36,79.70,5300000,79.70 +1964-04-08,79.74,80.17,79.26,79.75,5380000,79.75 +1964-04-07,80.02,80.44,79.41,79.74,5900000,79.74 +1964-04-06,79.94,80.45,79.55,80.02,5840000,80.02 +1964-04-03,79.70,80.37,79.45,79.94,5990000,79.94 +1964-04-02,79.24,80.09,79.13,79.70,6840000,79.70 +1964-04-01,78.98,79.58,78.67,79.24,5510000,79.24 +1964-03-31,79.14,79.51,78.57,78.98,5270000,78.98 +1964-03-30,79.19,79.67,78.75,79.14,6060000,79.14 +1964-03-26,78.98,79.58,78.67,79.19,5760000,79.19 +1964-03-25,78.79,79.33,78.17,78.98,5420000,78.98 +1964-03-24,78.93,79.34,78.51,78.79,5210000,78.79 +1964-03-23,78.92,79.33,78.45,78.93,4940000,78.93 +1964-03-20,79.30,79.35,78.92,78.92,5020000,78.92 +1964-03-19,79.38,79.85,78.94,79.30,5670000,79.30 +1964-03-18,79.32,79.89,78.90,79.38,5890000,79.38 +1964-03-17,79.14,79.65,78.77,79.32,5480000,79.32 +1964-03-16,79.14,79.60,78.72,79.14,5140000,79.14 +1964-03-13,79.08,79.59,78.74,79.14,5660000,79.14 +1964-03-12,78.95,79.41,78.55,79.08,5290000,79.08 +1964-03-11,78.59,79.42,78.45,78.95,6180000,78.95 +1964-03-10,78.33,78.90,77.95,78.59,5500000,78.59 +1964-03-09,78.31,78.88,77.95,78.33,5510000,78.33 +1964-03-06,78.06,78.60,77.85,78.31,4790000,78.31 +1964-03-05,78.07,78.44,77.58,78.06,4680000,78.06 +1964-03-04,78.22,78.70,77.70,78.07,5250000,78.07 +1964-03-03,77.97,78.66,77.69,78.22,5350000,78.22 +1964-03-02,77.80,78.38,77.50,77.97,5690000,77.97 +1964-02-28,77.62,78.06,77.20,77.80,4980000,77.80 +1964-02-27,77.87,78.29,77.38,77.62,5420000,77.62 +1964-02-26,77.68,78.13,77.33,77.87,5350000,77.87 +1964-02-25,77.68,78.31,77.19,77.68,5010000,77.68 +1964-02-24,77.62,78.16,77.27,77.68,5630000,77.68 +1964-02-20,77.55,77.99,77.16,77.62,4690000,77.62 +1964-02-19,77.47,77.98,77.13,77.55,4280000,77.55 +1964-02-18,77.46,77.90,77.00,77.47,4660000,77.47 +1964-02-17,77.48,77.93,77.04,77.46,4780000,77.46 +1964-02-14,77.52,77.82,77.02,77.48,4360000,77.48 +1964-02-13,77.57,77.93,77.10,77.52,4820000,77.52 +1964-02-12,77.33,77.88,77.14,77.57,4650000,77.57 +1964-02-11,77.05,77.65,76.81,77.33,4040000,77.33 +1964-02-10,77.18,77.77,76.83,77.05,4150000,77.05 +1964-02-07,76.93,77.51,76.66,77.18,4710000,77.18 +1964-02-06,76.75,77.26,76.47,76.93,4110000,76.93 +1964-02-05,76.88,77.28,76.36,76.75,4010000,76.75 +1964-02-04,76.97,77.31,76.46,76.88,4320000,76.88 +1964-02-03,77.04,77.55,76.53,76.97,4140000,76.97 +1964-01-31,76.70,77.37,76.39,77.04,4000000,77.04 +1964-01-30,76.63,77.20,76.26,76.70,4230000,76.70 +1964-01-29,77.10,77.36,76.33,76.63,4450000,76.63 +1964-01-28,77.08,77.56,76.63,77.10,4720000,77.10 +1964-01-27,77.11,77.78,76.64,77.08,5240000,77.08 +1964-01-24,77.09,77.56,76.58,77.11,5080000,77.11 +1964-01-23,77.03,77.62,76.67,77.09,5380000,77.09 +1964-01-22,76.62,77.62,76.45,77.03,5430000,77.03 +1964-01-21,76.41,76.99,75.87,76.62,4800000,76.62 +1964-01-20,76.56,77.19,76.02,76.41,5570000,76.41 +1964-01-17,76.55,77.09,76.02,76.56,5600000,76.56 +1964-01-16,76.64,77.21,76.05,76.55,6200000,76.55 +1964-01-15,76.36,77.06,75.96,76.64,6750000,76.64 +1964-01-14,76.22,76.85,75.88,76.36,6500000,76.36 +1964-01-13,76.24,76.71,75.78,76.22,5440000,76.22 +1964-01-10,76.28,76.67,75.74,76.24,5260000,76.24 +1964-01-09,76.00,76.64,75.60,76.28,5180000,76.28 +1964-01-08,75.69,76.35,75.39,76.00,5380000,76.00 +1964-01-07,75.67,76.24,75.25,75.69,5700000,75.69 +1964-01-06,75.50,76.12,75.18,75.67,5480000,75.67 +1964-01-03,75.43,76.04,75.09,75.50,5550000,75.50 +1964-01-02,75.02,75.79,74.82,75.43,4680000,75.43 +1963-12-31,74.56,75.36,74.40,75.02,6730000,75.02 +1963-12-30,74.44,74.94,74.13,74.56,4930000,74.56 +1963-12-27,74.32,74.91,74.09,74.44,4360000,74.44 +1963-12-26,73.97,74.63,73.74,74.32,3700000,74.32 +1963-12-24,73.81,74.48,73.44,73.97,3970000,73.97 +1963-12-23,74.28,74.45,73.49,73.81,4540000,73.81 +1963-12-20,74.40,74.75,73.85,74.28,4600000,74.28 +1963-12-19,74.63,74.92,74.08,74.40,4410000,74.40 +1963-12-18,74.74,75.21,74.25,74.63,6000000,74.63 +1963-12-17,74.30,75.08,74.07,74.74,5140000,74.74 +1963-12-16,74.06,74.66,73.78,74.30,4280000,74.30 +1963-12-13,73.91,74.39,73.68,74.06,4290000,74.06 +1963-12-12,73.90,74.31,73.58,73.91,4220000,73.91 +1963-12-11,73.99,74.37,73.58,73.90,4400000,73.90 +1963-12-10,73.96,74.48,73.40,73.99,4560000,73.99 +1963-12-09,74.00,74.41,73.56,73.96,4430000,73.96 +1963-12-06,74.28,74.63,73.62,74.00,4830000,74.00 +1963-12-05,73.80,74.57,73.45,74.28,5190000,74.28 +1963-12-04,73.62,74.18,73.21,73.80,4790000,73.80 +1963-12-03,73.66,74.01,73.14,73.62,4520000,73.62 +1963-12-02,73.23,74.08,73.02,73.66,4770000,73.66 +1963-11-29,72.25,73.47,72.05,73.23,4810000,73.23 +1963-11-27,72.38,72.78,71.76,72.25,5210000,72.25 +1963-11-26,71.40,72.74,71.40,72.38,9320000,72.38 +1963-11-22,71.62,72.17,69.48,69.61,6630000,69.61 +1963-11-21,72.56,72.86,71.40,71.62,5670000,71.62 +1963-11-20,71.90,73.14,71.49,72.56,5330000,72.56 +1963-11-19,71.83,72.61,71.42,71.90,4430000,71.90 +1963-11-18,72.35,72.52,71.42,71.83,4730000,71.83 +1963-11-15,72.95,73.20,72.09,72.35,4790000,72.35 +1963-11-14,73.29,73.53,72.63,72.95,4610000,72.95 +1963-11-13,73.23,73.67,72.89,73.29,4710000,73.29 +1963-11-12,73.23,73.23,73.23,73.23,4610000,73.23 +1963-11-11,73.52,73.52,73.52,73.52,3970000,73.52 +1963-11-08,73.06,73.66,72.80,73.36,4570000,73.36 +1963-11-07,72.81,73.48,72.58,73.06,4320000,73.06 +1963-11-06,73.45,73.47,72.33,72.81,5600000,72.81 +1963-11-04,73.83,74.27,73.09,73.45,5440000,73.45 +1963-11-01,74.01,74.44,73.47,73.83,5240000,73.83 +1963-10-31,73.80,74.35,73.25,74.01,5030000,74.01 +1963-10-30,74.46,74.59,73.43,73.80,5170000,73.80 +1963-10-29,74.48,75.18,73.97,74.46,6100000,74.46 +1963-10-28,74.01,75.15,73.75,74.48,7150000,74.48 +1963-10-25,73.28,74.41,73.06,74.01,6390000,74.01 +1963-10-24,73.00,73.73,72.74,73.28,6280000,73.28 +1963-10-23,72.96,73.55,72.59,73.00,5830000,73.00 +1963-10-22,73.38,73.55,72.48,72.96,6420000,72.96 +1963-10-21,73.32,73.87,73.03,73.38,5450000,73.38 +1963-10-18,73.26,73.74,72.85,73.32,5830000,73.32 +1963-10-17,72.97,73.77,72.84,73.26,6790000,73.26 +1963-10-16,72.40,73.20,72.08,72.97,5570000,72.97 +1963-10-15,72.30,72.79,71.99,72.40,4550000,72.40 +1963-10-14,72.27,72.43,71.85,72.30,4270000,72.30 +1963-10-11,72.20,72.71,71.87,72.27,4740000,72.27 +1963-10-10,71.87,72.52,71.60,72.20,4470000,72.20 +1963-10-09,71.98,71.98,71.60,71.87,5520000,71.87 +1963-10-08,72.70,73.14,72.24,72.60,4920000,72.60 +1963-10-07,72.85,73.27,72.39,72.70,4050000,72.70 +1963-10-04,72.83,73.19,72.46,72.85,5120000,72.85 +1963-10-03,72.30,73.10,72.10,72.83,4510000,72.83 +1963-10-02,72.22,72.67,71.92,72.30,3780000,72.30 +1963-10-01,71.70,72.65,71.57,72.22,4420000,72.22 +1963-09-30,72.13,72.37,71.28,71.70,3730000,71.70 +1963-09-27,72.27,72.60,71.60,72.13,4350000,72.13 +1963-09-26,72.89,73.07,72.01,72.27,5100000,72.27 +1963-09-25,73.30,73.87,72.58,72.89,6340000,72.89 +1963-09-24,72.96,73.67,72.59,73.30,5520000,73.30 +1963-09-23,73.30,73.53,72.62,72.96,5140000,72.96 +1963-09-20,73.22,73.71,72.92,73.30,5310000,73.30 +1963-09-19,72.80,73.47,72.61,73.22,4080000,73.22 +1963-09-18,73.12,73.44,72.51,72.80,5070000,72.80 +1963-09-17,73.07,73.64,72.79,73.12,4950000,73.12 +1963-09-16,73.17,73.63,72.80,73.07,4740000,73.07 +1963-09-13,73.15,73.59,72.82,73.17,5230000,73.17 +1963-09-12,73.20,73.60,72.72,73.15,5560000,73.15 +1963-09-11,72.99,73.79,72.83,73.20,6670000,73.20 +1963-09-10,72.58,73.27,72.25,72.99,5310000,72.99 +1963-09-09,72.84,73.23,72.26,72.58,5020000,72.58 +1963-09-06,73.00,73.51,72.51,72.84,7160000,72.84 +1963-09-05,72.64,73.19,72.15,73.00,5700000,73.00 +1963-09-04,72.66,73.18,72.32,72.64,6070000,72.64 +1963-09-03,72.50,73.09,72.30,72.66,5570000,72.66 +1963-08-30,72.16,72.71,71.88,72.50,4560000,72.50 +1963-08-29,72.04,72.56,71.83,72.16,5110000,72.16 +1963-08-28,71.52,72.39,71.49,72.04,5120000,72.04 +1963-08-27,71.91,72.04,71.27,71.52,4080000,71.52 +1963-08-26,71.76,72.30,71.57,71.91,4700000,71.91 +1963-08-23,71.54,72.14,71.33,71.76,4880000,71.76 +1963-08-22,71.29,71.81,70.95,71.54,4540000,71.54 +1963-08-21,71.38,71.73,71.00,71.29,3820000,71.29 +1963-08-20,71.44,71.91,71.03,71.38,3660000,71.38 +1963-08-19,71.49,71.92,71.15,71.44,3650000,71.44 +1963-08-16,71.38,71.95,71.05,71.49,4130000,71.49 +1963-08-15,71.07,71.71,70.81,71.38,4980000,71.38 +1963-08-14,70.79,71.32,70.39,71.07,4420000,71.07 +1963-08-13,70.59,71.09,70.32,70.79,4450000,70.79 +1963-08-12,70.48,71.00,70.19,70.59,4770000,70.59 +1963-08-09,70.02,70.65,69.83,70.48,4050000,70.48 +1963-08-08,69.96,70.31,69.58,70.02,3460000,70.02 +1963-08-07,70.17,70.53,69.69,69.96,3790000,69.96 +1963-08-06,69.71,70.40,69.57,70.17,3760000,70.17 +1963-08-05,69.30,69.97,69.20,69.71,3370000,69.71 +1963-08-02,69.07,69.56,68.86,69.30,2940000,69.30 +1963-08-01,69.13,69.47,68.64,69.07,3410000,69.07 +1963-07-31,69.24,69.83,68.91,69.13,3960000,69.13 +1963-07-30,68.67,69.45,68.58,69.24,3550000,69.24 +1963-07-29,68.54,68.96,68.32,68.67,2840000,68.67 +1963-07-26,68.26,68.76,68.03,68.54,2510000,68.54 +1963-07-25,68.28,68.92,68.02,68.26,3710000,68.26 +1963-07-24,67.91,68.54,67.76,68.28,2810000,68.28 +1963-07-23,67.90,68.57,67.65,67.91,3500000,67.91 +1963-07-22,68.35,68.60,67.54,67.90,3700000,67.90 +1963-07-19,68.49,68.70,67.90,68.35,3340000,68.35 +1963-07-18,68.93,69.27,68.34,68.49,3710000,68.49 +1963-07-17,69.14,69.53,68.68,68.93,3940000,68.93 +1963-07-16,69.20,69.51,68.85,69.14,3000000,69.14 +1963-07-15,69.64,69.73,68.97,69.20,3290000,69.20 +1963-07-12,69.76,70.13,69.36,69.64,3660000,69.64 +1963-07-11,69.89,70.30,69.52,69.76,4100000,69.76 +1963-07-10,70.04,70.31,69.56,69.89,3730000,69.89 +1963-07-09,69.74,70.39,69.55,70.04,3830000,70.04 +1963-07-08,70.22,70.35,69.47,69.74,3290000,69.74 +1963-07-05,69.94,70.48,69.78,70.22,2910000,70.22 +1963-07-03,69.46,70.28,69.42,69.94,4030000,69.94 +1963-07-02,68.86,69.72,68.74,69.46,3540000,69.46 +1963-07-01,69.37,69.53,68.58,68.86,3360000,68.86 +1963-06-28,69.07,69.68,68.93,69.37,3020000,69.37 +1963-06-27,69.41,69.81,68.78,69.07,4540000,69.07 +1963-06-26,70.04,70.10,69.17,69.41,4500000,69.41 +1963-06-25,70.20,70.51,69.75,70.04,4120000,70.04 +1963-06-24,70.25,70.67,69.84,70.20,3700000,70.20 +1963-06-21,70.01,70.57,69.79,70.25,4190000,70.25 +1963-06-20,70.09,70.36,69.31,70.01,4970000,70.01 +1963-06-19,70.02,70.47,69.75,70.09,3970000,70.09 +1963-06-18,69.95,70.43,69.63,70.02,3910000,70.02 +1963-06-17,69.95,69.95,69.95,69.95,3510000,69.95 +1963-06-14,70.23,70.60,69.87,70.25,3840000,70.25 +1963-06-13,70.41,70.85,69.98,70.23,4690000,70.23 +1963-06-12,70.03,70.81,69.91,70.41,5210000,70.41 +1963-06-11,69.94,70.41,69.58,70.03,4390000,70.03 +1963-06-10,70.41,70.51,69.57,69.94,4690000,69.94 +1963-06-07,70.58,70.98,70.10,70.41,5110000,70.41 +1963-06-06,70.53,70.95,70.11,70.58,4990000,70.58 +1963-06-05,70.70,71.17,70.17,70.53,5860000,70.53 +1963-06-04,70.69,71.08,70.20,70.70,5970000,70.70 +1963-06-03,70.80,71.24,70.39,70.69,5400000,70.69 +1963-05-31,70.33,71.14,70.27,70.80,4680000,70.80 +1963-05-29,70.01,70.65,69.86,70.33,4320000,70.33 +1963-05-28,69.87,70.41,69.55,70.01,3860000,70.01 +1963-05-27,70.02,70.27,69.48,69.87,3760000,69.87 +1963-05-24,70.10,70.44,69.66,70.02,4320000,70.02 +1963-05-23,70.14,70.53,69.79,70.10,4400000,70.10 +1963-05-22,70.14,70.68,69.82,70.14,5560000,70.14 +1963-05-21,69.96,70.51,69.62,70.14,5570000,70.14 +1963-05-20,70.29,70.48,69.59,69.96,4710000,69.96 +1963-05-17,70.25,70.63,69.83,70.29,4410000,70.29 +1963-05-16,70.43,70.81,69.91,70.25,5640000,70.25 +1963-05-15,70.21,70.77,69.87,70.43,5650000,70.43 +1963-05-14,70.48,70.73,69.92,70.21,4740000,70.21 +1963-05-13,70.52,70.89,70.11,70.48,4920000,70.48 +1963-05-10,70.35,70.81,69.99,70.52,5260000,70.52 +1963-05-09,70.01,70.74,69.86,70.35,5600000,70.35 +1963-05-08,69.44,70.24,69.23,70.01,5140000,70.01 +1963-05-07,69.53,69.92,69.03,69.44,4140000,69.44 +1963-05-06,70.03,70.31,69.32,69.53,4090000,69.53 +1963-05-03,70.17,70.51,69.78,70.03,4760000,70.03 +1963-05-02,69.97,70.50,69.75,70.17,4480000,70.17 +1963-05-01,69.80,70.43,69.61,69.97,5060000,69.97 +1963-04-30,69.65,70.18,69.26,69.80,4680000,69.80 +1963-04-29,69.70,70.04,69.26,69.65,3980000,69.65 +1963-04-26,69.76,70.11,69.23,69.70,4490000,69.70 +1963-04-25,69.72,70.08,69.25,69.76,5070000,69.76 +1963-04-24,69.53,70.12,69.34,69.72,5910000,69.72 +1963-04-23,69.30,69.83,68.95,69.53,5220000,69.53 +1963-04-22,69.23,69.82,69.01,69.30,5180000,69.30 +1963-04-19,68.89,69.46,68.60,69.23,4660000,69.23 +1963-04-18,68.92,69.34,68.56,68.89,4770000,68.89 +1963-04-17,69.14,69.37,68.47,68.92,5220000,68.92 +1963-04-16,69.09,69.61,68.66,69.14,5570000,69.14 +1963-04-15,68.77,69.56,68.58,69.09,5930000,69.09 +1963-04-11,68.29,69.07,67.97,68.77,5250000,68.77 +1963-04-10,68.45,68.89,67.66,68.29,5880000,68.29 +1963-04-09,68.52,68.84,68.03,68.45,5090000,68.45 +1963-04-08,68.28,68.91,68.05,68.52,5940000,68.52 +1963-04-05,67.85,68.46,67.46,68.28,5240000,68.28 +1963-04-04,67.36,68.12,67.28,67.85,5300000,67.85 +1963-04-03,66.84,67.55,66.63,67.36,4660000,67.36 +1963-04-02,66.85,67.36,66.51,66.84,4360000,66.84 +1963-04-01,66.57,67.18,66.23,66.85,3890000,66.85 +1963-03-29,66.58,66.90,66.23,66.57,3390000,66.57 +1963-03-28,66.68,67.01,66.32,66.58,3890000,66.58 +1963-03-27,66.40,66.93,66.21,66.68,4270000,66.68 +1963-03-26,66.21,66.73,66.01,66.40,4100000,66.40 +1963-03-25,66.19,66.60,65.92,66.21,3700000,66.21 +1963-03-22,65.85,66.44,65.68,66.19,3820000,66.19 +1963-03-21,65.95,66.25,65.60,65.85,3220000,65.85 +1963-03-20,65.47,66.15,65.30,65.95,3690000,65.95 +1963-03-19,65.61,65.85,65.19,65.47,3180000,65.47 +1963-03-18,65.93,66.17,65.36,65.61,3250000,65.61 +1963-03-15,65.60,66.22,65.39,65.93,3400000,65.93 +1963-03-14,65.91,66.21,65.39,65.60,3540000,65.60 +1963-03-13,65.67,66.27,65.54,65.91,4120000,65.91 +1963-03-12,65.51,65.97,65.26,65.67,3350000,65.67 +1963-03-11,65.33,65.86,65.11,65.51,3180000,65.51 +1963-03-08,65.26,65.74,65.03,65.33,3360000,65.33 +1963-03-07,64.85,65.60,64.81,65.26,3350000,65.26 +1963-03-06,64.74,65.06,64.31,64.85,3100000,64.85 +1963-03-05,64.72,65.27,64.41,64.74,3280000,64.74 +1963-03-04,64.10,65.08,63.88,64.72,3650000,64.72 +1963-03-01,64.29,64.75,63.80,64.10,3920000,64.10 +1963-02-28,65.01,65.14,64.08,64.29,4090000,64.29 +1963-02-27,65.47,65.74,64.86,65.01,3680000,65.01 +1963-02-26,65.46,65.86,65.06,65.47,3670000,65.47 +1963-02-25,65.92,66.09,65.24,65.46,3680000,65.46 +1963-02-21,65.83,66.23,65.36,65.92,3980000,65.92 +1963-02-20,66.20,66.28,65.44,65.83,4120000,65.83 +1963-02-19,66.52,66.67,65.92,66.20,4130000,66.20 +1963-02-18,66.41,66.96,66.10,66.52,4700000,66.52 +1963-02-15,66.35,66.74,65.96,66.41,4410000,66.41 +1963-02-14,66.15,66.75,65.93,66.35,5640000,66.35 +1963-02-13,65.83,66.53,65.56,66.15,4960000,66.15 +1963-02-12,65.76,66.01,65.16,65.83,3710000,65.83 +1963-02-11,66.17,66.41,65.50,65.76,3880000,65.76 +1963-02-08,66.17,66.45,65.65,66.17,3890000,66.17 +1963-02-07,66.40,66.81,65.91,66.17,4240000,66.17 +1963-02-06,66.11,66.76,65.88,66.40,4340000,66.40 +1963-02-05,66.17,66.35,65.38,66.11,4050000,66.11 +1963-02-04,66.31,66.66,65.89,66.17,3670000,66.17 +1963-02-01,66.31,66.31,66.31,66.31,4280000,66.31 +1963-01-31,65.85,66.45,65.51,66.20,4270000,66.20 +1963-01-30,66.23,66.33,65.55,65.85,3740000,65.85 +1963-01-29,66.24,66.58,65.83,66.23,4360000,66.23 +1963-01-28,65.92,66.59,65.77,66.24,4720000,66.24 +1963-01-25,65.75,66.23,65.38,65.92,4770000,65.92 +1963-01-24,65.62,66.09,65.33,65.75,4810000,65.75 +1963-01-23,65.44,65.91,65.23,65.62,4820000,65.62 +1963-01-22,65.28,65.80,65.03,65.44,4810000,65.44 +1963-01-21,65.18,65.52,64.64,65.28,4090000,65.28 +1963-01-18,65.13,65.70,64.86,65.18,4760000,65.18 +1963-01-17,64.67,65.40,64.35,65.13,5230000,65.13 +1963-01-16,65.11,65.25,64.42,64.67,4260000,64.67 +1963-01-15,65.20,65.62,64.82,65.11,5930000,65.11 +1963-01-14,64.85,65.50,64.61,65.20,5000000,65.20 +1963-01-11,64.71,65.10,64.31,64.85,4410000,64.85 +1963-01-10,64.59,65.16,64.33,64.71,4520000,64.71 +1963-01-09,64.74,65.22,64.32,64.59,5110000,64.59 +1963-01-08,64.12,64.98,64.00,64.74,5410000,64.74 +1963-01-07,64.13,64.59,63.67,64.12,4440000,64.12 +1963-01-04,63.72,64.45,63.57,64.13,5400000,64.13 +1963-01-03,62.69,63.89,62.67,63.72,4570000,63.72 +1963-01-02,63.10,63.39,62.32,62.69,2540000,62.69 +1962-12-31,62.96,63.43,62.68,63.10,5420000,63.10 +1962-12-28,62.93,63.25,62.53,62.96,4140000,62.96 +1962-12-27,63.02,63.41,62.67,62.93,3670000,62.93 +1962-12-26,62.63,63.32,62.56,63.02,3370000,63.02 +1962-12-24,62.64,63.03,62.19,62.63,3180000,62.63 +1962-12-21,62.82,63.13,62.26,62.64,3470000,62.64 +1962-12-20,62.58,63.28,62.44,62.82,4220000,62.82 +1962-12-19,62.07,62.81,61.72,62.58,4000000,62.58 +1962-12-18,62.37,62.66,61.78,62.07,3620000,62.07 +1962-12-17,62.57,62.95,62.14,62.37,3590000,62.37 +1962-12-14,62.42,62.83,61.96,62.57,3280000,62.57 +1962-12-13,62.63,63.07,62.09,62.42,3380000,62.42 +1962-12-12,62.32,63.16,62.13,62.63,3760000,62.63 +1962-12-11,62.27,62.58,61.72,62.32,3700000,62.32 +1962-12-10,63.06,63.35,61.96,62.27,4270000,62.27 +1962-12-07,62.93,63.43,62.45,63.06,3900000,63.06 +1962-12-06,62.39,63.36,62.28,62.93,4600000,62.93 +1962-12-05,62.64,63.50,62.37,62.39,6280000,62.39 +1962-12-04,61.94,62.93,61.77,62.64,5210000,62.64 +1962-12-03,62.26,62.45,61.28,61.94,3810000,61.94 +1962-11-30,62.41,62.78,61.78,62.26,4570000,62.26 +1962-11-29,62.12,62.72,61.69,62.41,5810000,62.41 +1962-11-28,61.73,62.48,61.51,62.12,5980000,62.12 +1962-11-27,61.36,62.04,60.98,61.73,5500000,61.73 +1962-11-26,61.54,62.13,60.95,61.36,5650000,61.36 +1962-11-23,60.81,62.03,60.66,61.54,5660000,61.54 +1962-11-21,60.45,61.18,60.19,60.81,5100000,60.81 +1962-11-20,59.82,60.63,59.57,60.45,4290000,60.45 +1962-11-19,60.16,60.42,59.46,59.82,3410000,59.82 +1962-11-16,59.97,60.46,59.46,60.16,4000000,60.16 +1962-11-15,60.16,60.67,59.74,59.97,5050000,59.97 +1962-11-14,59.46,60.41,59.18,60.16,5090000,60.16 +1962-11-13,59.59,60.06,59.06,59.46,4550000,59.46 +1962-11-12,58.78,60.00,58.59,59.59,5090000,59.59 +1962-11-09,58.32,58.99,57.90,58.78,4340000,58.78 +1962-11-08,58.71,59.12,58.09,58.32,4160000,58.32 +1962-11-07,58.35,59.11,57.76,58.71,4580000,58.71 +1962-11-05,57.75,58.70,57.69,58.35,4320000,58.35 +1962-11-02,57.12,58.19,56.78,57.75,5470000,57.75 +1962-11-01,56.52,57.31,55.90,57.12,3400000,57.12 +1962-10-31,56.54,57.00,56.19,56.52,3090000,56.52 +1962-10-30,55.72,56.84,55.52,56.54,3830000,56.54 +1962-10-29,55.34,56.38,55.34,55.72,4280000,55.72 +1962-10-26,54.69,54.96,54.08,54.54,2580000,54.54 +1962-10-25,55.17,55.17,53.82,54.69,3950000,54.69 +1962-10-24,53.49,55.44,52.55,55.21,6720000,55.21 +1962-10-23,54.96,55.19,53.24,53.49,6110000,53.49 +1962-10-22,55.48,55.48,54.38,54.96,5690000,54.96 +1962-10-19,56.34,56.54,55.34,55.59,4650000,55.59 +1962-10-18,56.89,57.02,56.18,56.34,3280000,56.34 +1962-10-17,57.08,57.23,56.37,56.89,3240000,56.89 +1962-10-16,57.27,57.63,56.87,57.08,2860000,57.08 +1962-10-15,56.95,57.50,56.66,57.27,2640000,57.27 +1962-10-12,57.05,57.21,56.66,56.95,2020000,56.95 +1962-10-11,57.24,57.46,56.78,57.05,2460000,57.05 +1962-10-10,57.20,57.83,56.96,57.24,3040000,57.24 +1962-10-09,57.07,57.40,56.71,57.20,2340000,57.20 +1962-10-08,57.07,57.41,56.68,57.07,1950000,57.07 +1962-10-05,56.70,57.30,56.55,57.07,2730000,57.07 +1962-10-04,56.16,56.84,55.90,56.70,2530000,56.70 +1962-10-03,56.10,56.71,55.84,56.16,2610000,56.16 +1962-10-02,55.49,56.46,55.31,56.10,3000000,56.10 +1962-10-01,56.27,56.31,55.26,55.49,3090000,55.49 +1962-09-28,55.77,56.58,55.59,56.27,2850000,56.27 +1962-09-27,56.15,56.55,55.53,55.77,3540000,55.77 +1962-09-26,56.96,57.29,55.92,56.15,3550000,56.15 +1962-09-25,56.63,57.22,56.12,56.96,3620000,56.96 +1962-09-24,57.45,57.45,56.30,56.63,5000000,56.63 +1962-09-21,58.54,58.64,57.43,57.69,4280000,57.69 +1962-09-20,58.95,59.29,58.33,58.54,3350000,58.54 +1962-09-19,59.03,59.26,58.59,58.95,2950000,58.95 +1962-09-18,59.08,59.54,58.77,59.03,3690000,59.03 +1962-09-17,58.89,59.42,58.65,59.08,3330000,59.08 +1962-09-14,58.70,59.14,58.40,58.89,2880000,58.89 +1962-09-13,58.84,59.18,58.46,58.70,3100000,58.70 +1962-09-12,58.59,59.06,58.40,58.84,3100000,58.84 +1962-09-11,58.45,58.93,58.17,58.59,3040000,58.59 +1962-09-10,58.38,58.64,57.88,58.45,2520000,58.45 +1962-09-07,58.36,58.90,58.09,58.38,2890000,58.38 +1962-09-06,58.12,58.60,57.72,58.36,3180000,58.36 +1962-09-05,58.56,58.77,57.95,58.12,3050000,58.12 +1962-09-04,59.12,59.49,58.44,58.56,2970000,58.56 +1962-08-31,58.68,59.25,58.45,59.12,2830000,59.12 +1962-08-30,58.66,59.06,58.39,58.68,2260000,58.68 +1962-08-29,58.79,58.96,58.17,58.66,2900000,58.66 +1962-08-28,59.55,59.61,58.66,58.79,3180000,58.79 +1962-08-27,59.58,59.94,59.24,59.55,3140000,59.55 +1962-08-24,59.70,59.92,59.18,59.58,2890000,59.58 +1962-08-23,59.78,60.33,59.47,59.70,4770000,59.70 +1962-08-22,59.12,59.93,58.91,59.78,4520000,59.78 +1962-08-21,59.37,59.66,58.90,59.12,3730000,59.12 +1962-08-20,59.01,59.72,58.90,59.37,4580000,59.37 +1962-08-17,58.64,59.24,58.43,59.01,3430000,59.01 +1962-08-16,58.66,59.11,58.24,58.64,4180000,58.64 +1962-08-15,58.25,59.11,58.22,58.66,4880000,58.66 +1962-08-14,57.63,58.43,57.41,58.25,3640000,58.25 +1962-08-13,57.55,57.90,57.22,57.63,2670000,57.63 +1962-08-10,57.57,57.85,57.16,57.55,2470000,57.55 +1962-08-09,57.51,57.88,57.19,57.57,2670000,57.57 +1962-08-08,57.36,57.64,56.76,57.51,3080000,57.51 +1962-08-07,57.75,57.81,57.07,57.36,2970000,57.36 +1962-08-06,58.12,58.35,57.54,57.75,3110000,57.75 +1962-08-03,57.98,58.32,57.63,58.12,5990000,58.12 +1962-08-02,57.75,58.20,57.38,57.98,3410000,57.98 +1962-08-01,58.23,58.30,57.51,57.75,3100000,57.75 +1962-07-31,57.83,58.58,57.74,58.23,4190000,58.23 +1962-07-30,57.20,57.98,57.08,57.83,3200000,57.83 +1962-07-27,56.77,57.36,56.56,57.20,2890000,57.20 +1962-07-26,56.46,57.18,56.16,56.77,2790000,56.77 +1962-07-25,56.36,56.67,55.78,56.46,2910000,56.46 +1962-07-24,56.80,56.93,56.14,56.36,2560000,56.36 +1962-07-23,56.81,57.32,56.53,56.80,2770000,56.80 +1962-07-20,56.42,57.09,56.27,56.81,2610000,56.81 +1962-07-19,56.20,56.95,55.96,56.42,3090000,56.42 +1962-07-18,56.78,56.81,55.86,56.20,3620000,56.20 +1962-07-17,57.83,57.96,56.68,56.78,3500000,56.78 +1962-07-16,57.83,58.10,57.18,57.83,3130000,57.83 +1962-07-13,58.03,58.18,57.23,57.83,3380000,57.83 +1962-07-12,57.73,58.67,57.59,58.03,5370000,58.03 +1962-07-11,57.20,57.95,56.77,57.73,4250000,57.73 +1962-07-10,56.99,58.36,56.99,57.20,7120000,57.20 +1962-07-09,56.17,56.73,55.54,56.55,2950000,56.55 +1962-07-06,56.73,56.73,55.64,56.17,3110000,56.17 +1962-07-05,56.49,57.10,56.15,56.81,3350000,56.81 +1962-07-03,55.86,56.74,55.57,56.49,3920000,56.49 +1962-07-02,54.75,56.02,54.47,55.86,3450000,55.86 +1962-06-29,54.41,55.47,54.20,54.75,4720000,54.75 +1962-06-28,52.98,54.64,52.98,54.41,5440000,54.41 +1962-06-27,52.32,52.83,51.77,52.60,3890000,52.60 +1962-06-26,52.45,53.58,52.10,52.32,4630000,52.32 +1962-06-25,52.68,52.96,51.35,52.45,7090000,52.45 +1962-06-22,53.59,53.78,52.48,52.68,5640000,52.68 +1962-06-21,54.78,54.78,53.50,53.59,4560000,53.59 +1962-06-20,55.54,55.92,54.66,54.78,3360000,54.78 +1962-06-19,55.74,55.88,54.98,55.54,2680000,55.54 +1962-06-18,55.89,56.53,54.97,55.74,4580000,55.74 +1962-06-15,54.33,55.96,53.66,55.89,7130000,55.89 +1962-06-14,55.50,56.00,54.12,54.33,6240000,54.33 +1962-06-13,56.34,56.80,55.24,55.50,5850000,55.50 +1962-06-12,57.66,57.66,56.23,56.34,4690000,56.34 +1962-06-11,58.45,58.58,57.51,57.82,2870000,57.82 +1962-06-08,58.40,58.97,58.14,58.45,2560000,58.45 +1962-06-07,58.39,58.90,58.00,58.40,2760000,58.40 +1962-06-06,57.64,59.17,57.64,58.39,4190000,58.39 +1962-06-05,57.27,58.42,56.33,57.57,6140000,57.57 +1962-06-04,59.12,59.12,57.14,57.27,5380000,57.27 +1962-06-01,59.63,59.96,58.52,59.38,5760000,59.38 +1962-05-31,58.80,60.82,58.80,59.63,10710000,59.63 +1962-05-29,55.50,58.29,53.13,58.08,14750000,58.08 +1962-05-28,59.15,59.15,55.42,55.50,9350000,55.50 +1962-05-25,60.62,60.98,59.00,59.47,6380000,59.47 +1962-05-24,61.11,61.79,60.36,60.62,5250000,60.62 +1962-05-23,62.34,62.42,60.90,61.11,5450000,61.11 +1962-05-22,63.59,63.69,62.26,62.34,3640000,62.34 +1962-05-21,63.82,64.00,63.21,63.59,2260000,63.59 +1962-05-18,63.93,64.14,63.29,63.82,2490000,63.82 +1962-05-17,64.27,64.41,63.38,63.93,2950000,63.93 +1962-05-16,64.29,64.88,63.82,64.27,3360000,64.27 +1962-05-15,63.41,64.87,63.41,64.29,4780000,64.29 +1962-05-14,62.65,63.31,61.11,63.10,5990000,63.10 +1962-05-11,63.57,64.10,62.44,62.65,4510000,62.65 +1962-05-10,64.26,64.39,62.99,63.57,4730000,63.57 +1962-05-09,65.17,65.17,64.02,64.26,3670000,64.26 +1962-05-08,66.02,66.13,64.88,65.17,3020000,65.17 +1962-05-07,66.24,66.56,65.66,66.02,2530000,66.02 +1962-05-04,66.53,66.80,65.80,66.24,3010000,66.24 +1962-05-03,65.99,66.93,65.81,66.53,3320000,66.53 +1962-05-02,65.70,66.67,65.56,65.99,3780000,65.99 +1962-05-01,65.24,65.94,63.76,65.70,5100000,65.70 +1962-04-30,66.30,66.90,64.95,65.24,4150000,65.24 +1962-04-27,67.05,67.61,65.99,66.30,4140000,66.30 +1962-04-26,67.71,67.97,66.92,67.05,3650000,67.05 +1962-04-25,68.46,68.58,67.53,67.71,3340000,67.71 +1962-04-24,68.53,68.91,68.16,68.46,3040000,68.46 +1962-04-23,68.59,69.01,68.17,68.53,3240000,68.53 +1962-04-19,68.27,68.90,68.07,68.59,3100000,68.59 +1962-04-18,67.90,68.72,67.83,68.27,3350000,68.27 +1962-04-17,67.60,68.20,67.24,67.90,2940000,67.90 +1962-04-16,67.90,68.19,67.21,67.60,3070000,67.60 +1962-04-13,67.90,68.11,67.03,67.90,3470000,67.90 +1962-04-12,68.41,68.43,67.47,67.90,3320000,67.90 +1962-04-11,68.56,69.26,68.24,68.41,3240000,68.41 +1962-04-10,68.31,68.80,67.94,68.56,2880000,68.56 +1962-04-09,68.84,69.02,68.09,68.31,3020000,68.31 +1962-04-06,68.91,69.42,68.58,68.84,2730000,68.84 +1962-04-05,68.49,69.09,68.12,68.91,3130000,68.91 +1962-04-04,68.81,69.22,68.33,68.49,3290000,68.49 +1962-04-03,69.37,69.53,68.53,68.81,3350000,68.81 +1962-04-02,69.55,69.82,69.13,69.37,2790000,69.37 +1962-03-30,70.01,70.09,69.16,69.55,2950000,69.55 +1962-03-29,70.04,70.50,69.81,70.01,2870000,70.01 +1962-03-28,69.70,70.33,69.54,70.04,2940000,70.04 +1962-03-27,69.89,70.20,69.41,69.70,3090000,69.70 +1962-03-26,70.45,70.63,69.73,69.89,3040000,69.89 +1962-03-23,70.40,70.78,70.12,70.45,3050000,70.45 +1962-03-22,70.51,70.84,70.14,70.40,3130000,70.40 +1962-03-21,70.66,70.93,70.16,70.51,3360000,70.51 +1962-03-20,70.85,71.08,70.40,70.66,3060000,70.66 +1962-03-19,70.94,71.31,70.53,70.85,3220000,70.85 +1962-03-16,71.06,71.34,70.67,70.94,3060000,70.94 +1962-03-15,70.91,71.44,70.59,71.06,3250000,71.06 +1962-03-14,70.60,71.25,70.48,70.91,3670000,70.91 +1962-03-13,70.40,70.86,70.06,70.60,3200000,70.60 +1962-03-12,70.42,70.76,70.02,70.40,3280000,70.40 +1962-03-09,70.19,70.71,70.00,70.42,3340000,70.42 +1962-03-08,69.69,70.37,69.40,70.19,3210000,70.19 +1962-03-07,69.78,70.07,69.37,69.69,2890000,69.69 +1962-03-06,70.01,70.24,69.46,69.78,2870000,69.78 +1962-03-05,70.16,70.48,69.65,70.01,3020000,70.01 +1962-03-02,70.16,70.16,69.75,70.16,2980000,70.16 +1962-03-01,69.96,70.60,69.76,70.20,2960000,70.20 +1962-02-28,69.89,70.42,69.57,69.96,3030000,69.96 +1962-02-27,69.76,70.32,69.48,69.89,3110000,69.89 +1962-02-26,70.16,70.33,69.44,69.76,2910000,69.76 +1962-02-23,70.32,70.57,69.73,70.16,3230000,70.16 +1962-02-21,70.66,70.97,70.12,70.32,3310000,70.32 +1962-02-20,70.41,70.91,70.13,70.66,3300000,70.66 +1962-02-19,70.59,70.96,70.12,70.41,3350000,70.41 +1962-02-16,70.74,71.13,70.27,70.59,3700000,70.59 +1962-02-15,70.42,71.06,70.23,70.74,3470000,70.74 +1962-02-14,70.45,70.79,70.03,70.42,3630000,70.42 +1962-02-13,70.46,70.89,70.07,70.45,3400000,70.45 +1962-02-12,70.48,70.81,70.14,70.46,2620000,70.46 +1962-02-09,70.58,70.83,69.93,70.48,3370000,70.48 +1962-02-08,70.42,70.95,70.16,70.58,3810000,70.58 +1962-02-07,69.96,70.67,69.78,70.42,4140000,70.42 +1962-02-06,69.88,70.32,69.41,69.96,3650000,69.96 +1962-02-05,69.81,70.30,69.42,69.88,3890000,69.88 +1962-02-02,69.26,70.02,69.02,69.81,3950000,69.81 +1962-02-01,68.84,69.65,68.56,69.26,4260000,69.26 +1962-01-31,68.17,69.09,68.12,68.84,3840000,68.84 +1962-01-30,67.90,68.65,67.62,68.17,3520000,68.17 +1962-01-29,68.13,68.50,67.55,67.90,3050000,67.90 +1962-01-26,68.35,68.67,67.83,68.13,3330000,68.13 +1962-01-25,68.40,69.05,68.10,68.35,3560000,68.35 +1962-01-24,68.29,68.68,67.55,68.40,3760000,68.40 +1962-01-23,68.81,68.96,68.00,68.29,3350000,68.29 +1962-01-22,68.75,69.37,68.45,68.81,3810000,68.81 +1962-01-19,68.39,70.08,68.14,68.75,3800000,68.75 +1962-01-18,68.32,68.73,67.75,68.39,3460000,68.39 +1962-01-17,69.07,69.31,68.13,68.32,3780000,68.32 +1962-01-16,69.47,69.61,68.68,69.07,3650000,69.07 +1962-01-15,69.61,69.96,69.06,69.47,3450000,69.47 +1962-01-12,69.37,70.17,69.23,69.61,3730000,69.61 +1962-01-11,68.96,69.54,68.57,69.37,3390000,69.37 +1962-01-10,69.15,69.58,68.62,68.96,3300000,68.96 +1962-01-09,69.12,69.93,68.83,69.15,3600000,69.15 +1962-01-08,69.66,69.84,68.17,69.12,4620000,69.12 +1962-01-05,70.64,70.84,69.35,69.66,4630000,69.66 +1962-01-04,71.13,71.62,70.45,70.64,4450000,70.64 +1962-01-03,70.96,71.48,70.38,71.13,3590000,71.13 +1962-01-02,71.55,71.96,70.71,70.96,3120000,70.96 +1961-12-29,71.55,71.55,71.55,71.55,5370000,71.55 +1961-12-28,71.69,71.69,71.69,71.69,4530000,71.69 +1961-12-27,71.65,71.65,71.65,71.65,4170000,71.65 +1961-12-26,71.02,71.02,71.02,71.02,3180000,71.02 +1961-12-22,70.91,70.91,70.91,70.91,3390000,70.91 +1961-12-21,70.86,70.86,70.86,70.86,3440000,70.86 +1961-12-20,71.12,71.12,71.12,71.12,3640000,71.12 +1961-12-19,71.26,71.26,71.26,71.26,3440000,71.26 +1961-12-18,71.76,71.76,71.76,71.76,3810000,71.76 +1961-12-15,72.01,72.01,72.01,72.01,3710000,72.01 +1961-12-14,71.98,71.98,71.98,71.98,4350000,71.98 +1961-12-13,72.53,72.53,72.53,72.53,4890000,72.53 +1961-12-12,72.64,72.64,72.64,72.64,4680000,72.64 +1961-12-11,72.39,72.39,72.39,72.39,4360000,72.39 +1961-12-08,72.04,72.04,72.04,72.04,4010000,72.04 +1961-12-07,71.70,71.70,71.70,71.70,3900000,71.70 +1961-12-06,71.99,71.99,71.99,71.99,4200000,71.99 +1961-12-05,71.93,71.93,71.93,71.93,4330000,71.93 +1961-12-04,72.01,72.01,72.01,72.01,4560000,72.01 +1961-12-01,71.78,71.78,71.78,71.78,4420000,71.78 +1961-11-30,71.32,71.32,71.32,71.32,4210000,71.32 +1961-11-29,71.70,71.70,71.70,71.70,4550000,71.70 +1961-11-28,71.75,71.75,71.75,71.75,4360000,71.75 +1961-11-27,71.85,71.85,71.85,71.85,4700000,71.85 +1961-11-24,71.84,71.84,71.84,71.84,4020000,71.84 +1961-11-22,71.70,71.70,71.70,71.70,4500000,71.70 +1961-11-21,71.78,71.78,71.78,71.78,4890000,71.78 +1961-11-20,71.72,71.72,71.72,71.72,4190000,71.72 +1961-11-17,71.62,71.62,71.62,71.62,3960000,71.62 +1961-11-16,71.62,71.62,71.62,71.62,3980000,71.62 +1961-11-15,71.67,71.67,71.67,71.67,4660000,71.67 +1961-11-14,71.66,71.66,71.66,71.66,4750000,71.66 +1961-11-13,71.27,71.27,71.27,71.27,4540000,71.27 +1961-11-10,71.07,71.07,71.07,71.07,4180000,71.07 +1961-11-09,70.77,70.77,70.77,70.77,4680000,70.77 +1961-11-08,70.87,70.87,70.87,70.87,6090000,70.87 +1961-11-06,70.01,70.01,70.01,70.01,4340000,70.01 +1961-11-03,69.47,69.47,69.47,69.47,4070000,69.47 +1961-11-02,69.11,69.11,69.11,69.11,3890000,69.11 +1961-11-01,68.73,68.73,68.73,68.73,3210000,68.73 +1961-10-31,68.62,68.62,68.62,68.62,3350000,68.62 +1961-10-30,68.42,68.42,68.42,68.42,3430000,68.42 +1961-10-27,68.34,68.34,68.34,68.34,3200000,68.34 +1961-10-26,68.46,68.46,68.46,68.46,3330000,68.46 +1961-10-25,68.34,68.34,68.34,68.34,3590000,68.34 +1961-10-24,67.98,67.98,67.98,67.98,3430000,67.98 +1961-10-23,68.06,68.06,68.06,68.06,3440000,68.06 +1961-10-20,68.00,68.00,68.00,68.00,3470000,68.00 +1961-10-19,68.45,68.45,68.45,68.45,3850000,68.45 +1961-10-18,68.21,68.21,68.21,68.21,3520000,68.21 +1961-10-17,67.87,67.87,67.87,67.87,3110000,67.87 +1961-10-16,67.85,67.85,67.85,67.85,2840000,67.85 +1961-10-13,68.04,68.04,68.04,68.04,3090000,68.04 +1961-10-12,68.16,68.16,68.16,68.16,3060000,68.16 +1961-10-11,68.17,68.17,68.17,68.17,3670000,68.17 +1961-10-10,68.11,68.11,68.11,68.11,3430000,68.11 +1961-10-09,67.94,67.94,67.94,67.94,2920000,67.94 +1961-10-06,66.97,66.97,66.97,66.97,3470000,66.97 +1961-10-05,67.77,67.77,67.77,67.77,3920000,67.77 +1961-10-04,67.18,67.18,67.18,67.18,3380000,67.18 +1961-10-03,66.73,66.73,66.73,66.73,2680000,66.73 +1961-10-02,66.77,66.77,66.77,66.77,2800000,66.77 +1961-09-29,66.73,66.73,66.73,66.73,3060000,66.73 +1961-09-28,66.58,66.58,66.58,66.58,3000000,66.58 +1961-09-27,66.47,66.47,66.47,66.47,3440000,66.47 +1961-09-26,65.78,65.78,65.78,65.78,3320000,65.78 +1961-09-25,65.77,65.77,65.77,65.77,3700000,65.77 +1961-09-22,66.72,66.72,66.72,66.72,3070000,66.72 +1961-09-21,66.99,66.99,66.99,66.99,3340000,66.99 +1961-09-20,66.96,66.96,66.96,66.96,2700000,66.96 +1961-09-19,66.08,66.08,66.08,66.08,3260000,66.08 +1961-09-18,67.21,67.21,67.21,67.21,3550000,67.21 +1961-09-15,67.65,67.65,67.65,67.65,3130000,67.65 +1961-09-14,67.53,67.53,67.53,67.53,2920000,67.53 +1961-09-13,68.01,68.01,68.01,68.01,3110000,68.01 +1961-09-12,67.96,67.96,67.96,67.96,2950000,67.96 +1961-09-11,67.28,67.28,67.28,67.28,2790000,67.28 +1961-09-08,67.88,67.88,67.88,67.88,3430000,67.88 +1961-09-07,68.35,68.35,68.35,68.35,3900000,68.35 +1961-09-06,68.46,68.46,68.46,68.46,3440000,68.46 +1961-09-05,67.96,67.96,67.96,67.96,3000000,67.96 +1961-09-01,68.19,68.19,68.19,68.19,2710000,68.19 +1961-08-31,68.07,68.07,68.07,68.07,2920000,68.07 +1961-08-30,67.81,67.81,67.81,67.81,3220000,67.81 +1961-08-29,67.55,67.55,67.55,67.55,3160000,67.55 +1961-08-28,67.70,67.70,67.70,67.70,3150000,67.70 +1961-08-25,67.67,67.67,67.67,67.67,3050000,67.67 +1961-08-24,67.59,67.59,67.59,67.59,3090000,67.59 +1961-08-23,67.98,67.98,67.98,67.98,3550000,67.98 +1961-08-22,68.44,68.44,68.44,68.44,3640000,68.44 +1961-08-21,68.43,68.43,68.43,68.43,3880000,68.43 +1961-08-18,68.29,68.29,68.29,68.29,4030000,68.29 +1961-08-17,68.11,68.11,68.11,68.11,4130000,68.11 +1961-08-16,67.73,67.73,67.73,67.73,3430000,67.73 +1961-08-15,67.55,67.55,67.55,67.55,3320000,67.55 +1961-08-14,67.72,67.72,67.72,67.72,3120000,67.72 +1961-08-11,68.06,68.06,68.06,68.06,3260000,68.06 +1961-08-10,67.95,67.95,67.95,67.95,3570000,67.95 +1961-08-09,67.74,67.74,67.74,67.74,3710000,67.74 +1961-08-08,67.82,67.82,67.82,67.82,4050000,67.82 +1961-08-07,67.67,67.67,67.67,67.67,3560000,67.67 +1961-08-04,67.68,67.68,67.68,67.68,3710000,67.68 +1961-08-03,67.29,67.29,67.29,67.29,3650000,67.29 +1961-08-02,66.94,66.94,66.94,66.94,4300000,66.94 +1961-08-01,67.37,67.37,67.37,67.37,3990000,67.37 +1961-07-31,66.76,66.76,66.76,66.76,3170000,66.76 +1961-07-28,66.71,66.71,66.71,66.71,3610000,66.71 +1961-07-27,66.61,66.61,66.61,66.61,4170000,66.61 +1961-07-26,65.84,65.84,65.84,65.84,4070000,65.84 +1961-07-25,65.23,65.23,65.23,65.23,3010000,65.23 +1961-07-24,64.87,64.87,64.87,64.87,2490000,64.87 +1961-07-21,64.86,64.86,64.86,64.86,2360000,64.86 +1961-07-20,64.71,64.71,64.71,64.71,2530000,64.71 +1961-07-19,64.70,64.70,64.70,64.70,2940000,64.70 +1961-07-18,64.41,64.41,64.41,64.41,3010000,64.41 +1961-07-17,64.79,64.79,64.79,64.79,2690000,64.79 +1961-07-14,65.28,65.28,65.28,65.28,2760000,65.28 +1961-07-13,64.86,64.86,64.86,64.86,2670000,64.86 +1961-07-12,65.32,65.32,65.32,65.32,3070000,65.32 +1961-07-11,65.69,65.69,65.69,65.69,3160000,65.69 +1961-07-10,65.71,65.71,65.71,65.71,3180000,65.71 +1961-07-07,65.77,65.77,65.77,65.77,3030000,65.77 +1961-07-06,65.81,65.81,65.81,65.81,3470000,65.81 +1961-07-05,65.63,65.63,65.63,65.63,3270000,65.63 +1961-07-03,65.21,65.21,65.21,65.21,2180000,65.21 +1961-06-30,64.64,64.64,64.64,64.64,2380000,64.64 +1961-06-29,64.52,64.52,64.52,64.52,2560000,64.52 +1961-06-28,64.59,64.59,64.59,64.59,2830000,64.59 +1961-06-27,64.47,64.47,64.47,64.47,3090000,64.47 +1961-06-26,64.47,64.47,64.47,64.47,2690000,64.47 +1961-06-23,65.16,65.16,65.16,65.16,2720000,65.16 +1961-06-22,64.90,64.90,64.90,64.90,2880000,64.90 +1961-06-21,65.14,65.14,65.14,65.14,3210000,65.14 +1961-06-20,65.15,65.15,65.15,65.15,3280000,65.15 +1961-06-19,64.58,64.58,64.58,64.58,3980000,64.58 +1961-06-16,65.18,65.18,65.18,65.18,3380000,65.18 +1961-06-15,65.69,65.69,65.69,65.69,3220000,65.69 +1961-06-14,65.98,65.98,65.98,65.98,3430000,65.98 +1961-06-13,65.80,65.80,65.80,65.80,3030000,65.80 +1961-06-12,66.15,66.15,66.15,66.15,3260000,66.15 +1961-06-09,66.66,66.66,66.66,66.66,3520000,66.66 +1961-06-08,66.67,66.67,66.67,66.67,3810000,66.67 +1961-06-07,65.64,65.64,65.64,65.64,3980000,65.64 +1961-06-06,66.89,66.89,66.89,66.89,4250000,66.89 +1961-06-05,67.08,67.08,67.08,67.08,4150000,67.08 +1961-06-02,66.73,66.73,66.73,66.73,3670000,66.73 +1961-06-01,66.56,66.56,66.56,66.56,3770000,66.56 +1961-05-31,66.56,66.56,66.56,66.56,4320000,66.56 +1961-05-26,66.43,66.43,66.43,66.43,3780000,66.43 +1961-05-25,66.01,66.01,66.01,66.01,3760000,66.01 +1961-05-24,66.26,66.26,66.26,66.26,3970000,66.26 +1961-05-23,66.68,66.68,66.68,66.68,3660000,66.68 +1961-05-22,66.85,66.85,66.85,66.85,4070000,66.85 +1961-05-19,67.27,67.27,67.27,67.27,4200000,67.27 +1961-05-18,66.99,66.99,66.99,66.99,4610000,66.99 +1961-05-17,67.39,67.39,67.39,67.39,5520000,67.39 +1961-05-16,67.08,67.08,67.08,67.08,5110000,67.08 +1961-05-15,66.83,66.83,66.83,66.83,4840000,66.83 +1961-05-12,66.50,66.50,66.50,66.50,4840000,66.50 +1961-05-11,66.39,66.39,66.39,66.39,5170000,66.39 +1961-05-10,66.41,66.41,66.41,66.41,5450000,66.41 +1961-05-09,66.47,66.47,66.47,66.47,5380000,66.47 +1961-05-08,66.41,66.41,66.41,66.41,5170000,66.41 +1961-05-05,66.52,66.52,66.52,66.52,4980000,66.52 +1961-05-04,66.44,66.44,66.44,66.44,5350000,66.44 +1961-05-03,66.18,66.18,66.18,66.18,4940000,66.18 +1961-05-02,65.64,65.64,65.64,65.64,4110000,65.64 +1961-05-01,65.17,65.17,65.17,65.17,3710000,65.17 +1961-04-28,65.31,65.31,65.31,65.31,3710000,65.31 +1961-04-27,65.46,65.46,65.46,65.46,4450000,65.46 +1961-04-26,65.55,65.55,65.55,65.55,4980000,65.55 +1961-04-25,65.30,65.30,65.30,65.30,4670000,65.30 +1961-04-24,64.40,64.40,64.40,64.40,4590000,64.40 +1961-04-21,65.77,65.77,65.77,65.77,4340000,65.77 +1961-04-20,65.82,65.82,65.82,65.82,4810000,65.82 +1961-04-19,65.81,65.81,65.81,65.81,4870000,65.81 +1961-04-18,66.20,66.20,66.20,66.20,4830000,66.20 +1961-04-17,68.68,68.68,68.68,68.68,5860000,68.68 +1961-04-14,66.37,66.37,66.37,66.37,5240000,66.37 +1961-04-13,66.26,66.26,66.26,66.26,4770000,66.26 +1961-04-12,66.31,66.31,66.31,66.31,4870000,66.31 +1961-04-11,66.62,66.62,66.62,66.62,5230000,66.62 +1961-04-10,66.53,66.53,66.53,66.53,5550000,66.53 +1961-04-07,65.96,65.96,65.96,65.96,5100000,65.96 +1961-04-06,65.61,65.61,65.61,65.61,4910000,65.61 +1961-04-05,65.46,65.46,65.46,65.46,5430000,65.46 +1961-04-04,65.66,65.66,65.66,65.66,7080000,65.66 +1961-04-03,65.60,65.60,65.60,65.60,6470000,65.60 +1961-03-30,65.06,65.06,65.06,65.06,5610000,65.06 +1961-03-29,64.93,64.93,64.93,64.93,5330000,64.93 +1961-03-28,64.38,64.38,64.38,64.38,4630000,64.38 +1961-03-27,64.35,64.35,64.35,64.35,4190000,64.35 +1961-03-24,64.42,64.42,64.42,64.42,4390000,64.42 +1961-03-23,64.53,64.53,64.53,64.53,2170000,64.53 +1961-03-22,64.70,64.70,64.70,64.70,5840000,64.70 +1961-03-21,64.74,64.74,64.74,64.74,5800000,64.74 +1961-03-20,64.86,64.86,64.86,64.86,5780000,64.86 +1961-03-17,64.00,64.00,64.00,64.00,5960000,64.00 +1961-03-16,64.21,64.21,64.21,64.21,5610000,64.21 +1961-03-15,63.57,63.57,63.57,63.57,4900000,63.57 +1961-03-14,63.38,63.38,63.38,63.38,4900000,63.38 +1961-03-13,63.66,63.66,63.66,63.66,5080000,63.66 +1961-03-10,63.48,63.48,63.48,63.48,5950000,63.48 +1961-03-09,63.50,63.50,63.50,63.50,6010000,63.50 +1961-03-08,63.44,63.44,63.44,63.44,5910000,63.44 +1961-03-07,63.47,63.47,63.47,63.47,5540000,63.47 +1961-03-06,64.05,64.05,64.05,64.05,5650000,64.05 +1961-03-03,63.95,63.95,63.95,63.95,5530000,63.95 +1961-03-02,63.85,63.85,63.85,63.85,5300000,63.85 +1961-03-01,63.43,63.43,63.43,63.43,4970000,63.43 +1961-02-28,63.44,63.44,63.44,63.44,5830000,63.44 +1961-02-27,63.30,63.30,63.30,63.30,5470000,63.30 +1961-02-24,62.84,62.84,62.84,62.84,5330000,62.84 +1961-02-23,62.59,62.59,62.59,62.59,5620000,62.59 +1961-02-21,62.36,62.36,62.36,62.36,5070000,62.36 +1961-02-20,62.32,62.32,62.32,62.32,4680000,62.32 +1961-02-17,62.10,62.10,62.10,62.10,4640000,62.10 +1961-02-16,62.30,62.30,62.30,62.30,5070000,62.30 +1961-02-15,61.92,61.92,61.92,61.92,5200000,61.92 +1961-02-14,61.41,61.41,61.41,61.41,4490000,61.41 +1961-02-13,61.14,61.14,61.14,61.14,3560000,61.14 +1961-02-10,61.50,61.50,61.50,61.50,4840000,61.50 +1961-02-09,62.02,62.02,62.02,62.02,5590000,62.02 +1961-02-08,62.21,62.21,62.21,62.21,4940000,62.21 +1961-02-07,61.65,61.65,61.65,61.65,4020000,61.65 +1961-02-06,61.76,61.76,61.76,61.76,3890000,61.76 +1961-02-03,62.22,62.22,62.22,62.22,5210000,62.22 +1961-02-02,62.30,62.30,62.30,62.30,4900000,62.30 +1961-02-01,61.90,61.90,61.90,61.90,4380000,61.90 +1961-01-31,61.78,61.78,61.78,61.78,4690000,61.78 +1961-01-30,61.97,61.97,61.97,61.97,5190000,61.97 +1961-01-27,61.24,61.24,61.24,61.24,4510000,61.24 +1961-01-26,60.62,60.62,60.62,60.62,4110000,60.62 +1961-01-25,60.53,60.53,60.53,60.53,4470000,60.53 +1961-01-24,60.45,60.45,60.45,60.45,4280000,60.45 +1961-01-23,60.29,60.29,60.29,60.29,4450000,60.29 +1961-01-20,59.96,59.96,59.96,59.96,3270000,59.96 +1961-01-19,59.77,59.77,59.77,59.77,4740000,59.77 +1961-01-18,59.68,59.68,59.68,59.68,4390000,59.68 +1961-01-17,59.64,59.64,59.64,59.64,3830000,59.64 +1961-01-16,59.58,59.58,59.58,59.58,4510000,59.58 +1961-01-13,59.60,59.60,59.60,59.60,4520000,59.60 +1961-01-12,59.32,59.32,59.32,59.32,4270000,59.32 +1961-01-11,59.14,59.14,59.14,59.14,4370000,59.14 +1961-01-10,58.97,58.97,58.97,58.97,4840000,58.97 +1961-01-09,58.81,58.81,58.81,58.81,4210000,58.81 +1961-01-06,58.40,58.40,58.40,58.40,3620000,58.40 +1961-01-05,58.57,58.57,58.57,58.57,4130000,58.57 +1961-01-04,58.36,58.36,58.36,58.36,3840000,58.36 +1961-01-03,57.57,57.57,57.57,57.57,2770000,57.57 +1960-12-30,58.11,58.11,58.11,58.11,5300000,58.11 +1960-12-29,58.05,58.05,58.05,58.05,4340000,58.05 +1960-12-28,57.78,57.78,57.78,57.78,3620000,57.78 +1960-12-27,57.52,57.52,57.52,57.52,3270000,57.52 +1960-12-23,57.44,57.44,57.44,57.44,3580000,57.44 +1960-12-22,57.39,57.39,57.39,57.39,3820000,57.39 +1960-12-21,57.55,57.55,57.55,57.55,4060000,57.55 +1960-12-20,57.09,57.09,57.09,57.09,3340000,57.09 +1960-12-19,57.13,57.13,57.13,57.13,3630000,57.13 +1960-12-16,57.20,57.20,57.20,57.20,3770000,57.20 +1960-12-15,56.68,56.68,56.68,56.68,3660000,56.68 +1960-12-14,56.84,56.84,56.84,56.84,3880000,56.84 +1960-12-13,56.88,56.88,56.88,56.88,3500000,56.88 +1960-12-12,56.85,56.85,56.85,56.85,3020000,56.85 +1960-12-09,56.65,56.65,56.65,56.65,4460000,56.65 +1960-12-08,56.15,56.15,56.15,56.15,3540000,56.15 +1960-12-07,56.02,56.02,56.02,56.02,3660000,56.02 +1960-12-06,55.47,55.47,55.47,55.47,3360000,55.47 +1960-12-05,55.31,55.31,55.31,55.31,3290000,55.31 +1960-12-02,55.39,55.39,55.39,55.39,3140000,55.39 +1960-12-01,55.30,55.30,55.30,55.30,3090000,55.30 +1960-11-30,55.54,55.54,55.54,55.54,3080000,55.54 +1960-11-29,55.83,55.83,55.83,55.83,3630000,55.83 +1960-11-28,56.03,56.03,56.03,56.03,3860000,56.03 +1960-11-25,56.13,56.13,56.13,56.13,3190000,56.13 +1960-11-23,55.80,55.80,55.80,55.80,3000000,55.80 +1960-11-22,55.72,55.72,55.72,55.72,3430000,55.72 +1960-11-21,55.93,55.93,55.93,55.93,3090000,55.93 +1960-11-18,55.82,55.82,55.82,55.82,2760000,55.82 +1960-11-17,55.55,55.55,55.55,55.55,2450000,55.55 +1960-11-16,55.70,55.70,55.70,55.70,3110000,55.70 +1960-11-15,55.81,55.81,55.81,55.81,2990000,55.81 +1960-11-14,55.59,55.59,55.59,55.59,2660000,55.59 +1960-11-11,55.87,55.87,55.87,55.87,2730000,55.87 +1960-11-10,56.43,56.43,56.43,56.43,4030000,56.43 +1960-11-09,55.35,55.35,55.35,55.35,3450000,55.35 +1960-11-07,55.11,55.11,55.11,55.11,3540000,55.11 +1960-11-04,54.90,54.90,54.90,54.90,3050000,54.90 +1960-11-03,54.43,54.43,54.43,54.43,2580000,54.43 +1960-11-02,54.22,54.22,54.22,54.22,2780000,54.22 +1960-11-01,53.94,53.94,53.94,53.94,2600000,53.94 +1960-10-31,53.39,53.39,53.39,53.39,2460000,53.39 +1960-10-28,53.41,53.41,53.41,53.41,2490000,53.41 +1960-10-27,53.62,53.62,53.62,53.62,2900000,53.62 +1960-10-26,53.05,53.05,53.05,53.05,3020000,53.05 +1960-10-25,52.20,52.20,52.20,52.20,3030000,52.20 +1960-10-24,52.70,52.70,52.70,52.70,4420000,52.70 +1960-10-21,53.72,53.72,53.72,53.72,3090000,53.72 +1960-10-20,53.86,53.86,53.86,53.86,2910000,53.86 +1960-10-19,54.25,54.25,54.25,54.25,2410000,54.25 +1960-10-18,54.35,54.35,54.35,54.35,2220000,54.35 +1960-10-17,54.63,54.63,54.63,54.63,2280000,54.63 +1960-10-14,54.86,54.86,54.86,54.86,2470000,54.86 +1960-10-13,54.57,54.57,54.57,54.57,2220000,54.57 +1960-10-12,54.15,54.15,54.15,54.15,1890000,54.15 +1960-10-11,54.22,54.22,54.22,54.22,2350000,54.22 +1960-10-10,54.14,54.14,54.14,54.14,2030000,54.14 +1960-10-07,54.03,54.03,54.03,54.03,2530000,54.03 +1960-10-06,53.72,53.72,53.72,53.72,2510000,53.72 +1960-10-05,53.39,53.39,53.39,53.39,2650000,53.39 +1960-10-04,52.99,52.99,52.99,52.99,2270000,52.99 +1960-10-03,53.36,53.36,53.36,53.36,2220000,53.36 +1960-09-30,53.52,53.52,53.52,53.52,3370000,53.52 +1960-09-29,52.62,52.62,52.62,52.62,2850000,52.62 +1960-09-28,52.48,52.48,52.48,52.48,3520000,52.48 +1960-09-27,52.94,52.94,52.94,52.94,3170000,52.94 +1960-09-26,53.06,53.06,53.06,53.06,3930000,53.06 +1960-09-23,53.90,53.90,53.90,53.90,2580000,53.90 +1960-09-22,54.36,54.36,54.36,54.36,1970000,54.36 +1960-09-21,54.57,54.57,54.57,54.57,2930000,54.57 +1960-09-20,54.01,54.01,54.01,54.01,3660000,54.01 +1960-09-19,53.86,53.86,53.86,53.86,3790000,53.86 +1960-09-16,55.11,55.11,55.11,55.11,2340000,55.11 +1960-09-15,55.22,55.22,55.22,55.22,2870000,55.22 +1960-09-14,55.44,55.44,55.44,55.44,2530000,55.44 +1960-09-13,55.83,55.83,55.83,55.83,2180000,55.83 +1960-09-12,55.72,55.72,55.72,55.72,2160000,55.72 +1960-09-09,56.11,56.11,56.11,56.11,2750000,56.11 +1960-09-08,55.74,55.74,55.74,55.74,2670000,55.74 +1960-09-07,55.79,55.79,55.79,55.79,2850000,55.79 +1960-09-06,56.49,56.49,56.49,56.49,2580000,56.49 +1960-09-02,57.00,57.00,57.00,57.00,2680000,57.00 +1960-09-01,57.09,57.09,57.09,57.09,3460000,57.09 +1960-08-31,56.96,56.96,56.96,56.96,3130000,56.96 +1960-08-30,56.84,56.84,56.84,56.84,2890000,56.84 +1960-08-29,57.44,57.44,57.44,57.44,2780000,57.44 +1960-08-26,57.60,57.60,57.60,57.60,2780000,57.60 +1960-08-25,57.79,57.79,57.79,57.79,2680000,57.79 +1960-08-24,58.07,58.07,58.07,58.07,3500000,58.07 +1960-08-23,57.75,57.75,57.75,57.75,3560000,57.75 +1960-08-22,57.19,57.19,57.19,57.19,2760000,57.19 +1960-08-19,57.01,57.01,57.01,57.01,2570000,57.01 +1960-08-18,56.81,56.81,56.81,56.81,2890000,56.81 +1960-08-17,56.84,56.84,56.84,56.84,3090000,56.84 +1960-08-16,56.72,56.72,56.72,56.72,2710000,56.72 +1960-08-15,56.61,56.61,56.61,56.61,2450000,56.61 +1960-08-12,56.66,56.66,56.66,56.66,3160000,56.66 +1960-08-11,56.28,56.28,56.28,56.28,3070000,56.28 +1960-08-10,56.07,56.07,56.07,56.07,2810000,56.07 +1960-08-09,55.84,55.84,55.84,55.84,2700000,55.84 +1960-08-08,55.52,55.52,55.52,55.52,2960000,55.52 +1960-08-05,55.44,55.44,55.44,55.44,3000000,55.44 +1960-08-04,54.89,54.89,54.89,54.89,2840000,54.89 +1960-08-03,54.72,54.72,54.72,54.72,2470000,54.72 +1960-08-02,55.04,55.04,55.04,55.04,2090000,55.04 +1960-08-01,55.53,55.53,55.53,55.53,2440000,55.53 +1960-07-29,55.51,55.51,55.51,55.51,2730000,55.51 +1960-07-28,54.57,54.57,54.57,54.57,3020000,54.57 +1960-07-27,54.17,54.17,54.17,54.17,2560000,54.17 +1960-07-26,54.51,54.51,54.51,54.51,2720000,54.51 +1960-07-25,54.18,54.18,54.18,54.18,2840000,54.18 +1960-07-22,54.72,54.72,54.72,54.72,2850000,54.72 +1960-07-21,55.10,55.10,55.10,55.10,2510000,55.10 +1960-07-20,55.61,55.61,55.61,55.61,2370000,55.61 +1960-07-19,55.70,55.70,55.70,55.70,2490000,55.70 +1960-07-18,55.70,55.70,55.70,55.70,2350000,55.70 +1960-07-15,56.05,56.05,56.05,56.05,2140000,56.05 +1960-07-14,56.12,56.12,56.12,56.12,2480000,56.12 +1960-07-13,56.10,56.10,56.10,56.10,2590000,56.10 +1960-07-12,56.25,56.25,56.25,56.25,2860000,56.25 +1960-07-11,56.87,56.87,56.87,56.87,2920000,56.87 +1960-07-08,57.38,57.38,57.38,57.38,3010000,57.38 +1960-07-07,57.24,57.24,57.24,57.24,3050000,57.24 +1960-07-06,56.94,56.94,56.94,56.94,2970000,56.94 +1960-07-05,57.02,57.02,57.02,57.02,2780000,57.02 +1960-07-01,57.06,57.06,57.06,57.06,2620000,57.06 +1960-06-30,56.92,56.92,56.92,56.92,2940000,56.92 +1960-06-29,56.94,56.94,56.94,56.94,3160000,56.94 +1960-06-28,56.94,56.94,56.94,56.94,3120000,56.94 +1960-06-27,57.33,57.33,57.33,57.33,2960000,57.33 +1960-06-24,57.68,57.68,57.68,57.68,3220000,57.68 +1960-06-23,57.59,57.59,57.59,57.59,3620000,57.59 +1960-06-22,57.28,57.28,57.28,57.28,3600000,57.28 +1960-06-21,57.11,57.11,57.11,57.11,3860000,57.11 +1960-06-20,57.16,57.16,57.16,57.16,3970000,57.16 +1960-06-17,57.44,57.44,57.44,57.44,3920000,57.44 +1960-06-16,57.50,57.50,57.50,57.50,3540000,57.50 +1960-06-15,57.57,57.57,57.57,57.57,3630000,57.57 +1960-06-14,57.91,57.91,57.91,57.91,3430000,57.91 +1960-06-13,57.99,57.99,57.99,57.99,3180000,57.99 +1960-06-10,57.97,57.97,57.97,57.97,2940000,57.97 +1960-06-09,58.00,58.00,58.00,58.00,3820000,58.00 +1960-06-08,57.89,57.89,57.89,57.89,3800000,57.89 +1960-06-07,57.43,57.43,57.43,57.43,3710000,57.43 +1960-06-06,56.89,56.89,56.89,56.89,3220000,56.89 +1960-06-03,56.23,56.23,56.23,56.23,3340000,56.23 +1960-06-02,56.13,56.13,56.13,56.13,3730000,56.13 +1960-06-01,55.89,55.89,55.89,55.89,3770000,55.89 +1960-05-31,55.83,55.83,55.83,55.83,3750000,55.83 +1960-05-27,55.74,55.74,55.74,55.74,3040000,55.74 +1960-05-26,55.71,55.71,55.71,55.71,3720000,55.71 +1960-05-25,55.67,55.67,55.67,55.67,3440000,55.67 +1960-05-24,55.70,55.70,55.70,55.70,3240000,55.70 +1960-05-23,55.76,55.76,55.76,55.76,2530000,55.76 +1960-05-20,55.73,55.73,55.73,55.73,3170000,55.73 +1960-05-19,55.68,55.68,55.68,55.68,3700000,55.68 +1960-05-18,55.44,55.44,55.44,55.44,5240000,55.44 +1960-05-17,55.46,55.46,55.46,55.46,4080000,55.46 +1960-05-16,55.25,55.25,55.25,55.25,3530000,55.25 +1960-05-13,55.30,55.30,55.30,55.30,3750000,55.30 +1960-05-12,54.85,54.85,54.85,54.85,3220000,54.85 +1960-05-11,54.57,54.57,54.57,54.57,2900000,54.57 +1960-05-10,54.42,54.42,54.42,54.42,2870000,54.42 +1960-05-09,54.80,54.80,54.80,54.80,2670000,54.80 +1960-05-06,54.75,54.75,54.75,54.75,2560000,54.75 +1960-05-05,54.86,54.86,54.86,54.86,2670000,54.86 +1960-05-04,55.04,55.04,55.04,55.04,2870000,55.04 +1960-05-03,54.83,54.83,54.83,54.83,2910000,54.83 +1960-05-02,54.13,54.13,54.13,54.13,2930000,54.13 +1960-04-29,54.37,54.37,54.37,54.37,2850000,54.37 +1960-04-28,54.56,54.56,54.56,54.56,3190000,54.56 +1960-04-27,55.04,55.04,55.04,55.04,3020000,55.04 +1960-04-26,55.04,55.04,55.04,55.04,2940000,55.04 +1960-04-25,54.86,54.86,54.86,54.86,2980000,54.86 +1960-04-22,55.42,55.42,55.42,55.42,2850000,55.42 +1960-04-21,55.59,55.59,55.59,55.59,2700000,55.59 +1960-04-20,55.44,55.44,55.44,55.44,3150000,55.44 +1960-04-19,56.13,56.13,56.13,56.13,3080000,56.13 +1960-04-18,56.59,56.59,56.59,56.59,3200000,56.59 +1960-04-14,56.43,56.43,56.43,56.43,2730000,56.43 +1960-04-13,56.30,56.30,56.30,56.30,2730000,56.30 +1960-04-12,56.30,56.30,56.30,56.30,2470000,56.30 +1960-04-11,56.17,56.17,56.17,56.17,2520000,56.17 +1960-04-08,56.39,56.39,56.39,56.39,2820000,56.39 +1960-04-07,56.52,56.52,56.52,56.52,3070000,56.52 +1960-04-06,56.51,56.51,56.51,56.51,3450000,56.51 +1960-04-05,55.37,55.37,55.37,55.37,2840000,55.37 +1960-04-04,55.54,55.54,55.54,55.54,2450000,55.54 +1960-04-01,55.43,55.43,55.43,55.43,2260000,55.43 +1960-03-31,55.34,55.34,55.34,55.34,2690000,55.34 +1960-03-30,55.66,55.66,55.66,55.66,2450000,55.66 +1960-03-29,55.78,55.78,55.78,55.78,2320000,55.78 +1960-03-28,55.86,55.86,55.86,55.86,2500000,55.86 +1960-03-25,55.98,55.98,55.98,55.98,2640000,55.98 +1960-03-24,55.98,55.98,55.98,55.98,2940000,55.98 +1960-03-23,55.74,55.74,55.74,55.74,3020000,55.74 +1960-03-22,55.29,55.29,55.29,55.29,2490000,55.29 +1960-03-21,55.07,55.07,55.07,55.07,2500000,55.07 +1960-03-18,55.01,55.01,55.01,55.01,2620000,55.01 +1960-03-17,54.96,54.96,54.96,54.96,2140000,54.96 +1960-03-16,55.04,55.04,55.04,55.04,2960000,55.04 +1960-03-15,54.74,54.74,54.74,54.74,2690000,54.74 +1960-03-14,54.32,54.32,54.32,54.32,2530000,54.32 +1960-03-11,54.24,54.24,54.24,54.24,2770000,54.24 +1960-03-10,53.83,53.83,53.83,53.83,3350000,53.83 +1960-03-09,54.04,54.04,54.04,54.04,3580000,54.04 +1960-03-08,53.47,53.47,53.47,53.47,3370000,53.47 +1960-03-07,54.02,54.02,54.02,54.02,2900000,54.02 +1960-03-04,54.57,54.57,54.57,54.57,4060000,54.57 +1960-03-03,54.78,54.78,54.78,54.78,3160000,54.78 +1960-03-02,55.62,55.62,55.62,55.62,3110000,55.62 +1960-03-01,56.01,56.01,56.01,56.01,2920000,56.01 +1960-02-29,56.12,56.12,56.12,56.12,2990000,56.12 +1960-02-26,56.16,56.16,56.16,56.16,3380000,56.16 +1960-02-25,55.93,55.93,55.93,55.93,3600000,55.93 +1960-02-24,55.74,55.74,55.74,55.74,2740000,55.74 +1960-02-23,55.94,55.94,55.94,55.94,2960000,55.94 +1960-02-19,56.24,56.24,56.24,56.24,3230000,56.24 +1960-02-18,55.80,55.80,55.80,55.80,3800000,55.80 +1960-02-17,55.03,55.03,55.03,55.03,4210000,55.03 +1960-02-16,54.73,54.73,54.73,54.73,3270000,54.73 +1960-02-15,55.17,55.17,55.17,55.17,2780000,55.17 +1960-02-12,55.46,55.46,55.46,55.46,2230000,55.46 +1960-02-11,55.18,55.18,55.18,55.18,2610000,55.18 +1960-02-10,55.49,55.49,55.49,55.49,2440000,55.49 +1960-02-09,55.84,55.84,55.84,55.84,2860000,55.84 +1960-02-08,55.32,55.32,55.32,55.32,3350000,55.32 +1960-02-05,55.98,55.98,55.98,55.98,2530000,55.98 +1960-02-04,56.27,56.27,56.27,56.27,2600000,56.27 +1960-02-03,56.32,56.32,56.32,56.32,3020000,56.32 +1960-02-02,56.82,56.82,56.82,56.82,3080000,56.82 +1960-02-01,55.96,55.96,55.96,55.96,2820000,55.96 +1960-01-29,55.61,55.61,55.61,55.61,3060000,55.61 +1960-01-28,56.13,56.13,56.13,56.13,2630000,56.13 +1960-01-27,56.72,56.72,56.72,56.72,2460000,56.72 +1960-01-26,56.86,56.86,56.86,56.86,3060000,56.86 +1960-01-25,56.78,56.78,56.78,56.78,2790000,56.78 +1960-01-22,57.38,57.38,57.38,57.38,2690000,57.38 +1960-01-21,57.21,57.21,57.21,57.21,2700000,57.21 +1960-01-20,57.07,57.07,57.07,57.07,2720000,57.07 +1960-01-19,57.27,57.27,57.27,57.27,3100000,57.27 +1960-01-18,57.89,57.89,57.89,57.89,3020000,57.89 +1960-01-15,58.38,58.38,58.38,58.38,3400000,58.38 +1960-01-14,58.40,58.40,58.40,58.40,3560000,58.40 +1960-01-13,58.08,58.08,58.08,58.08,3470000,58.08 +1960-01-12,58.41,58.41,58.41,58.41,3760000,58.41 +1960-01-11,58.77,58.77,58.77,58.77,3470000,58.77 +1960-01-08,59.50,59.50,59.50,59.50,3290000,59.50 +1960-01-07,59.69,59.69,59.69,59.69,3310000,59.69 +1960-01-06,60.13,60.13,60.13,60.13,3730000,60.13 +1960-01-05,60.39,60.39,60.39,60.39,3710000,60.39 +1960-01-04,59.91,59.91,59.91,59.91,3990000,59.91 +1959-12-31,59.89,59.89,59.89,59.89,3810000,59.89 +1959-12-30,59.77,59.77,59.77,59.77,3680000,59.77 +1959-12-29,59.30,59.30,59.30,59.30,3020000,59.30 +1959-12-28,58.98,58.98,58.98,58.98,2830000,58.98 +1959-12-24,59.00,59.00,59.00,59.00,2320000,59.00 +1959-12-23,58.96,58.96,58.96,58.96,2890000,58.96 +1959-12-22,59.14,59.14,59.14,59.14,2930000,59.14 +1959-12-21,59.21,59.21,59.21,59.21,3290000,59.21 +1959-12-18,59.14,59.14,59.14,59.14,3230000,59.14 +1959-12-17,58.86,58.86,58.86,58.86,3040000,58.86 +1959-12-16,58.97,58.97,58.97,58.97,3270000,58.97 +1959-12-15,58.90,58.90,58.90,58.90,3450000,58.90 +1959-12-14,59.04,59.04,59.04,59.04,3100000,59.04 +1959-12-11,58.88,58.88,58.88,58.88,2910000,58.88 +1959-12-10,59.02,59.02,59.02,59.02,3170000,59.02 +1959-12-09,58.97,58.97,58.97,58.97,3430000,58.97 +1959-12-08,59.34,59.34,59.34,59.34,3870000,59.34 +1959-12-07,58.96,58.96,58.96,58.96,3620000,58.96 +1959-12-04,58.85,58.85,58.85,58.85,3590000,58.85 +1959-12-03,58.73,58.73,58.73,58.73,3280000,58.73 +1959-12-02,58.60,58.60,58.60,58.60,3490000,58.60 +1959-12-01,58.70,58.70,58.70,58.70,3990000,58.70 +1959-11-30,58.28,58.28,58.28,58.28,3670000,58.28 +1959-11-27,57.70,57.70,57.70,57.70,3030000,57.70 +1959-11-25,57.44,57.44,57.44,57.44,3550000,57.44 +1959-11-24,57.35,57.35,57.35,57.35,3650000,57.35 +1959-11-23,57.08,57.08,57.08,57.08,3400000,57.08 +1959-11-20,56.97,56.97,56.97,56.97,2960000,56.97 +1959-11-19,56.94,56.94,56.94,56.94,3230000,56.94 +1959-11-18,56.99,56.99,56.99,56.99,3660000,56.99 +1959-11-17,56.38,56.38,56.38,56.38,3570000,56.38 +1959-11-16,56.22,56.22,56.22,56.22,3710000,56.22 +1959-11-13,56.85,56.85,56.85,56.85,3050000,56.85 +1959-11-12,57.17,57.17,57.17,57.17,3600000,57.17 +1959-11-11,57.49,57.49,57.49,57.49,2820000,57.49 +1959-11-10,57.48,57.48,57.48,57.48,3020000,57.48 +1959-11-09,57.50,57.50,57.50,57.50,3700000,57.50 +1959-11-06,57.60,57.60,57.60,57.60,3450000,57.60 +1959-11-05,57.32,57.32,57.32,57.32,3170000,57.32 +1959-11-04,57.26,57.26,57.26,57.26,3940000,57.26 +1959-11-02,57.41,57.41,57.41,57.41,3320000,57.41 +1959-10-30,57.52,57.52,57.52,57.52,3560000,57.52 +1959-10-29,57.41,57.41,57.41,57.41,3890000,57.41 +1959-10-28,57.46,57.46,57.46,57.46,3920000,57.46 +1959-10-27,57.42,57.42,57.42,57.42,4160000,57.42 +1959-10-26,56.94,56.94,56.94,56.94,3580000,56.94 +1959-10-23,56.56,56.56,56.56,56.56,2880000,56.56 +1959-10-22,56.00,56.00,56.00,56.00,3060000,56.00 +1959-10-21,56.55,56.55,56.55,56.55,2730000,56.55 +1959-10-20,56.66,56.66,56.66,56.66,2740000,56.66 +1959-10-19,57.01,57.01,57.01,57.01,2470000,57.01 +1959-10-16,57.33,57.33,57.33,57.33,2760000,57.33 +1959-10-15,56.87,56.87,56.87,56.87,2190000,56.87 +1959-10-14,56.71,56.71,56.71,56.71,2320000,56.71 +1959-10-13,57.16,57.16,57.16,57.16,2530000,57.16 +1959-10-12,57.32,57.32,57.32,57.32,1750000,57.32 +1959-10-09,57.00,57.00,57.00,57.00,2540000,57.00 +1959-10-08,56.81,56.81,56.81,56.81,2510000,56.81 +1959-10-07,56.94,56.94,56.94,56.94,2380000,56.94 +1959-10-06,57.09,57.09,57.09,57.09,2330000,57.09 +1959-10-05,57.14,57.14,57.14,57.14,2100000,57.14 +1959-10-02,57.20,57.20,57.20,57.20,2270000,57.20 +1959-10-01,56.94,56.94,56.94,56.94,2660000,56.94 +1959-09-30,56.88,56.88,56.88,56.88,2850000,56.88 +1959-09-29,57.51,57.51,57.51,57.51,3220000,57.51 +1959-09-28,57.15,57.15,57.15,57.15,2640000,57.15 +1959-09-25,56.73,56.73,56.73,56.73,3280000,56.73 +1959-09-24,56.78,56.78,56.78,56.78,3480000,56.78 +1959-09-23,55.82,55.82,55.82,55.82,3010000,55.82 +1959-09-22,55.14,55.14,55.14,55.14,3000000,55.14 +1959-09-21,55.27,55.27,55.27,55.27,3240000,55.27 +1959-09-18,56.19,56.19,56.19,56.19,2530000,56.19 +1959-09-17,56.41,56.41,56.41,56.41,2090000,56.41 +1959-09-16,56.72,56.72,56.72,56.72,2180000,56.72 +1959-09-15,56.68,56.68,56.68,56.68,2830000,56.68 +1959-09-14,56.99,56.99,56.99,56.99,2590000,56.99 +1959-09-11,57.41,57.41,57.41,57.41,2640000,57.41 +1959-09-10,56.99,56.99,56.99,56.99,2520000,56.99 +1959-09-09,57.29,57.29,57.29,57.29,3030000,57.29 +1959-09-08,57.70,57.70,57.70,57.70,2940000,57.70 +1959-09-04,58.54,58.54,58.54,58.54,2300000,58.54 +1959-09-03,58.26,58.26,58.26,58.26,2330000,58.26 +1959-09-02,58.92,58.92,58.92,58.92,2370000,58.92 +1959-09-01,58.87,58.87,58.87,58.87,2430000,58.87 +1959-08-31,59.60,59.60,59.60,59.60,2140000,59.60 +1959-08-28,59.60,59.60,59.60,59.60,1930000,59.60 +1959-08-27,59.58,59.58,59.58,59.58,2550000,59.58 +1959-08-26,59.07,59.07,59.07,59.07,2210000,59.07 +1959-08-25,58.99,58.99,58.99,58.99,1960000,58.99 +1959-08-24,58.87,58.87,58.87,58.87,1860000,58.87 +1959-08-21,59.08,59.08,59.08,59.08,2000000,59.08 +1959-08-20,59.14,59.14,59.14,59.14,2450000,59.14 +1959-08-19,58.27,58.27,58.27,58.27,3050000,58.27 +1959-08-18,58.62,58.62,58.62,58.62,2280000,58.62 +1959-08-17,59.17,59.17,59.17,59.17,1980000,59.17 +1959-08-14,59.29,59.29,59.29,59.29,1990000,59.29 +1959-08-13,59.15,59.15,59.15,59.15,2020000,59.15 +1959-08-12,59.25,59.25,59.25,59.25,2700000,59.25 +1959-08-11,59.39,59.39,59.39,59.39,2980000,59.39 +1959-08-10,58.62,58.62,58.62,58.62,4190000,58.62 +1959-08-07,59.87,59.87,59.87,59.87,2580000,59.87 +1959-08-06,60.24,60.24,60.24,60.24,2610000,60.24 +1959-08-05,60.30,60.30,60.30,60.30,2630000,60.30 +1959-08-04,60.61,60.61,60.61,60.61,2530000,60.61 +1959-08-03,60.71,60.71,60.71,60.71,2410000,60.71 +1959-07-31,60.51,60.51,60.51,60.51,2270000,60.51 +1959-07-30,60.50,60.50,60.50,60.50,3240000,60.50 +1959-07-29,60.62,60.62,60.62,60.62,3460000,60.62 +1959-07-28,60.32,60.32,60.32,60.32,3190000,60.32 +1959-07-27,60.02,60.02,60.02,60.02,2910000,60.02 +1959-07-24,59.65,59.65,59.65,59.65,2720000,59.65 +1959-07-23,59.67,59.67,59.67,59.67,3310000,59.67 +1959-07-22,59.61,59.61,59.61,59.61,3310000,59.61 +1959-07-21,59.41,59.41,59.41,59.41,2950000,59.41 +1959-07-20,58.91,58.91,58.91,58.91,2500000,58.91 +1959-07-17,59.19,59.19,59.19,59.19,2510000,59.19 +1959-07-16,59.41,59.41,59.41,59.41,3170000,59.41 +1959-07-15,59.59,59.59,59.59,59.59,3280000,59.59 +1959-07-14,59.55,59.55,59.55,59.55,3230000,59.55 +1959-07-13,59.41,59.41,59.41,59.41,3360000,59.41 +1959-07-10,59.91,59.91,59.91,59.91,3600000,59.91 +1959-07-09,59.97,59.97,59.97,59.97,3560000,59.97 +1959-07-08,60.03,60.03,60.03,60.03,4010000,60.03 +1959-07-07,60.01,60.01,60.01,60.01,3840000,60.01 +1959-07-06,59.65,59.65,59.65,59.65,3720000,59.65 +1959-07-02,59.28,59.28,59.28,59.28,3610000,59.28 +1959-07-01,58.97,58.97,58.97,58.97,3150000,58.97 +1959-06-30,58.47,58.47,58.47,58.47,3200000,58.47 +1959-06-29,58.37,58.37,58.37,58.37,3000000,58.37 +1959-06-26,57.98,57.98,57.98,57.98,3100000,57.98 +1959-06-25,57.73,57.73,57.73,57.73,3250000,57.73 +1959-06-24,57.41,57.41,57.41,57.41,3180000,57.41 +1959-06-23,57.12,57.12,57.12,57.12,2600000,57.12 +1959-06-22,57.13,57.13,57.13,57.13,2630000,57.13 +1959-06-19,57.13,57.13,57.13,57.13,2260000,57.13 +1959-06-18,57.05,57.05,57.05,57.05,3150000,57.05 +1959-06-17,57.09,57.09,57.09,57.09,2850000,57.09 +1959-06-16,56.56,56.56,56.56,56.56,2440000,56.56 +1959-06-15,56.99,56.99,56.99,56.99,2410000,56.99 +1959-06-12,57.29,57.29,57.29,57.29,2580000,57.29 +1959-06-11,57.25,57.25,57.25,57.25,3120000,57.25 +1959-06-10,57.19,57.19,57.19,57.19,3310000,57.19 +1959-06-09,56.36,56.36,56.36,56.36,3490000,56.36 +1959-06-08,56.76,56.76,56.76,56.76,2970000,56.76 +1959-06-05,57.51,57.51,57.51,57.51,2800000,57.51 +1959-06-04,57.63,57.63,57.63,57.63,3210000,57.63 +1959-06-03,58.25,58.25,58.25,58.25,2910000,58.25 +1959-06-02,58.23,58.23,58.23,58.23,3120000,58.23 +1959-06-01,58.63,58.63,58.63,58.63,2730000,58.63 +1959-05-29,58.68,58.68,58.68,58.68,2790000,58.68 +1959-05-28,58.39,58.39,58.39,58.39,2970000,58.39 +1959-05-27,58.19,58.19,58.19,58.19,2940000,58.19 +1959-05-26,58.09,58.09,58.09,58.09,2910000,58.09 +1959-05-25,58.18,58.18,58.18,58.18,3260000,58.18 +1959-05-22,58.33,58.33,58.33,58.33,3030000,58.33 +1959-05-21,58.14,58.14,58.14,58.14,3230000,58.14 +1959-05-20,58.09,58.09,58.09,58.09,3550000,58.09 +1959-05-19,58.32,58.32,58.32,58.32,3170000,58.32 +1959-05-18,58.15,58.15,58.15,58.15,2970000,58.15 +1959-05-15,58.16,58.16,58.16,58.16,3510000,58.16 +1959-05-14,58.37,58.37,58.37,58.37,3660000,58.37 +1959-05-13,57.97,57.97,57.97,57.97,3540000,57.97 +1959-05-12,57.96,57.96,57.96,57.96,3550000,57.96 +1959-05-11,57.96,57.96,57.96,57.96,3860000,57.96 +1959-05-08,57.32,57.32,57.32,57.32,3930000,57.32 +1959-05-07,56.88,56.88,56.88,56.88,4530000,56.88 +1959-05-06,57.61,57.61,57.61,57.61,4110000,57.61 +1959-05-05,57.75,57.75,57.75,57.75,3360000,57.75 +1959-05-04,57.65,57.65,57.65,57.65,3060000,57.65 +1959-05-01,57.65,57.65,57.65,57.65,3020000,57.65 +1959-04-30,57.59,57.59,57.59,57.59,3510000,57.59 +1959-04-29,57.69,57.69,57.69,57.69,3470000,57.69 +1959-04-28,57.92,57.92,57.92,57.92,3920000,57.92 +1959-04-27,58.14,58.14,58.14,58.14,3850000,58.14 +1959-04-24,57.96,57.96,57.96,57.96,3790000,57.96 +1959-04-23,57.60,57.60,57.60,57.60,3310000,57.60 +1959-04-22,57.73,57.73,57.73,57.73,3430000,57.73 +1959-04-21,58.11,58.11,58.11,58.11,3650000,58.11 +1959-04-20,58.17,58.17,58.17,58.17,3610000,58.17 +1959-04-17,57.92,57.92,57.92,57.92,3870000,57.92 +1959-04-16,57.43,57.43,57.43,57.43,3790000,57.43 +1959-04-15,56.96,56.96,56.96,56.96,3680000,56.96 +1959-04-14,56.71,56.71,56.71,56.71,3320000,56.71 +1959-04-13,56.43,56.43,56.43,56.43,3140000,56.43 +1959-04-10,56.22,56.22,56.22,56.22,3000000,56.22 +1959-04-09,56.17,56.17,56.17,56.17,2830000,56.17 +1959-04-08,56.21,56.21,56.21,56.21,3260000,56.21 +1959-04-07,56.48,56.48,56.48,56.48,3020000,56.48 +1959-04-06,56.60,56.60,56.60,56.60,3510000,56.60 +1959-04-03,56.44,56.44,56.44,56.44,3680000,56.44 +1959-04-02,56.00,56.00,56.00,56.00,3220000,56.00 +1959-04-01,55.69,55.69,55.69,55.69,2980000,55.69 +1959-03-31,55.44,55.44,55.44,55.44,2820000,55.44 +1959-03-30,55.45,55.45,55.45,55.45,2940000,55.45 +1959-03-26,55.76,55.76,55.76,55.76,2900000,55.76 +1959-03-25,55.88,55.88,55.88,55.88,3280000,55.88 +1959-03-24,55.96,55.96,55.96,55.96,3000000,55.96 +1959-03-23,55.87,55.87,55.87,55.87,3700000,55.87 +1959-03-20,56.39,56.39,56.39,56.39,3770000,56.39 +1959-03-19,56.34,56.34,56.34,56.34,4150000,56.34 +1959-03-18,56.39,56.39,56.39,56.39,4530000,56.39 +1959-03-17,56.52,56.52,56.52,56.52,4730000,56.52 +1959-03-16,56.06,56.06,56.06,56.06,4420000,56.06 +1959-03-13,56.67,56.67,56.67,56.67,4880000,56.67 +1959-03-12,56.60,56.60,56.60,56.60,4690000,56.60 +1959-03-11,56.35,56.35,56.35,56.35,4160000,56.35 +1959-03-10,56.31,56.31,56.31,56.31,3920000,56.31 +1959-03-09,56.15,56.15,56.15,56.15,3530000,56.15 +1959-03-06,56.21,56.21,56.21,56.21,3930000,56.21 +1959-03-05,56.43,56.43,56.43,56.43,3930000,56.43 +1959-03-04,56.35,56.35,56.35,56.35,4150000,56.35 +1959-03-03,56.25,56.25,56.25,56.25,4790000,56.25 +1959-03-02,55.73,55.73,55.73,55.73,4210000,55.73 +1959-02-27,55.41,55.41,55.41,55.41,4300000,55.41 +1959-02-26,55.34,55.34,55.34,55.34,3930000,55.34 +1959-02-25,55.24,55.24,55.24,55.24,3780000,55.24 +1959-02-24,55.48,55.48,55.48,55.48,4340000,55.48 +1959-02-20,55.52,55.52,55.52,55.52,4190000,55.52 +1959-02-19,55.50,55.50,55.50,55.50,4160000,55.50 +1959-02-18,54.30,54.30,54.30,54.30,3480000,54.30 +1959-02-17,54.29,54.29,54.29,54.29,3190000,54.29 +1959-02-16,54.50,54.50,54.50,54.50,3480000,54.50 +1959-02-13,54.42,54.42,54.42,54.42,3070000,54.42 +1959-02-12,54.00,54.00,54.00,54.00,2630000,54.00 +1959-02-11,54.35,54.35,54.35,54.35,3000000,54.35 +1959-02-10,54.32,54.32,54.32,54.32,2960000,54.32 +1959-02-09,53.58,53.58,53.58,53.58,3130000,53.58 +1959-02-06,54.37,54.37,54.37,54.37,3010000,54.37 +1959-02-05,54.81,54.81,54.81,54.81,3140000,54.81 +1959-02-04,55.06,55.06,55.06,55.06,3170000,55.06 +1959-02-03,55.28,55.28,55.28,55.28,3220000,55.28 +1959-02-02,55.21,55.21,55.21,55.21,3610000,55.21 +1959-01-30,55.45,55.45,55.45,55.45,3600000,55.45 +1959-01-29,55.20,55.20,55.20,55.20,3470000,55.20 +1959-01-28,55.16,55.16,55.16,55.16,4190000,55.16 +1959-01-27,55.78,55.78,55.78,55.78,3480000,55.78 +1959-01-26,55.77,55.77,55.77,55.77,3980000,55.77 +1959-01-23,56.00,56.00,56.00,56.00,3600000,56.00 +1959-01-22,55.97,55.97,55.97,55.97,4250000,55.97 +1959-01-21,56.04,56.04,56.04,56.04,3940000,56.04 +1959-01-20,55.72,55.72,55.72,55.72,3680000,55.72 +1959-01-19,55.68,55.68,55.68,55.68,3840000,55.68 +1959-01-16,55.81,55.81,55.81,55.81,4300000,55.81 +1959-01-15,55.83,55.83,55.83,55.83,4500000,55.83 +1959-01-14,55.62,55.62,55.62,55.62,4090000,55.62 +1959-01-13,55.47,55.47,55.47,55.47,3790000,55.47 +1959-01-12,55.78,55.78,55.78,55.78,4320000,55.78 +1959-01-09,55.77,55.77,55.77,55.77,4760000,55.77 +1959-01-08,55.40,55.40,55.40,55.40,4030000,55.40 +1959-01-07,54.89,54.89,54.89,54.89,4140000,54.89 +1959-01-06,55.59,55.59,55.59,55.59,3690000,55.59 +1959-01-05,55.66,55.66,55.66,55.66,4210000,55.66 +1959-01-02,55.44,55.44,55.44,55.44,3380000,55.44 +1958-12-31,55.21,55.21,55.21,55.21,3970000,55.21 +1958-12-30,54.93,54.93,54.93,54.93,3900000,54.93 +1958-12-29,54.74,54.74,54.74,54.74,3790000,54.74 +1958-12-24,54.11,54.11,54.11,54.11,3050000,54.11 +1958-12-23,53.42,53.42,53.42,53.42,2870000,53.42 +1958-12-22,53.71,53.71,53.71,53.71,3030000,53.71 +1958-12-19,54.07,54.07,54.07,54.07,3540000,54.07 +1958-12-18,54.15,54.15,54.15,54.15,3900000,54.15 +1958-12-17,53.92,53.92,53.92,53.92,3900000,53.92 +1958-12-16,53.57,53.57,53.57,53.57,3970000,53.57 +1958-12-15,53.37,53.37,53.37,53.37,3340000,53.37 +1958-12-12,53.22,53.22,53.22,53.22,3140000,53.22 +1958-12-11,53.35,53.35,53.35,53.35,4250000,53.35 +1958-12-10,53.46,53.46,53.46,53.46,4340000,53.46 +1958-12-09,52.82,52.82,52.82,52.82,3790000,52.82 +1958-12-08,52.46,52.46,52.46,52.46,3590000,52.46 +1958-12-05,52.46,52.46,52.46,52.46,3360000,52.46 +1958-12-04,52.55,52.55,52.55,52.55,3630000,52.55 +1958-12-03,52.53,52.53,52.53,52.53,3460000,52.53 +1958-12-02,52.46,52.46,52.46,52.46,3320000,52.46 +1958-12-01,52.69,52.69,52.69,52.69,3800000,52.69 +1958-11-28,52.48,52.48,52.48,52.48,4120000,52.48 +1958-11-26,51.90,51.90,51.90,51.90,4090000,51.90 +1958-11-25,51.02,51.02,51.02,51.02,3940000,51.02 +1958-11-24,52.03,52.03,52.03,52.03,4770000,52.03 +1958-11-21,52.70,52.70,52.70,52.70,3950000,52.70 +1958-11-20,53.21,53.21,53.21,53.21,4320000,53.21 +1958-11-19,53.20,53.20,53.20,53.20,4090000,53.20 +1958-11-18,53.13,53.13,53.13,53.13,3820000,53.13 +1958-11-17,53.24,53.24,53.24,53.24,4540000,53.24 +1958-11-14,53.09,53.09,53.09,53.09,4390000,53.09 +1958-11-13,52.83,52.83,52.83,52.83,4200000,52.83 +1958-11-12,53.05,53.05,53.05,53.05,4440000,53.05 +1958-11-11,52.98,52.98,52.98,52.98,4040000,52.98 +1958-11-10,52.57,52.57,52.57,52.57,3730000,52.57 +1958-11-07,52.26,52.26,52.26,52.26,3700000,52.26 +1958-11-06,52.45,52.45,52.45,52.45,4890000,52.45 +1958-11-05,52.03,52.03,52.03,52.03,4080000,52.03 +1958-11-03,51.56,51.56,51.56,51.56,3240000,51.56 +1958-10-31,51.33,51.33,51.33,51.33,3920000,51.33 +1958-10-30,51.27,51.27,51.27,51.27,4360000,51.27 +1958-10-29,51.07,51.07,51.07,51.07,4790000,51.07 +1958-10-28,50.58,50.58,50.58,50.58,3670000,50.58 +1958-10-27,50.42,50.42,50.42,50.42,3980000,50.42 +1958-10-24,50.81,50.81,50.81,50.81,3770000,50.81 +1958-10-23,50.97,50.97,50.97,50.97,3610000,50.97 +1958-10-22,51.07,51.07,51.07,51.07,3500000,51.07 +1958-10-21,51.27,51.27,51.27,51.27,4010000,51.27 +1958-10-20,51.27,51.27,51.27,51.27,4560000,51.27 +1958-10-17,51.46,51.46,51.46,51.46,5360000,51.46 +1958-10-16,50.94,50.94,50.94,50.94,4560000,50.94 +1958-10-15,50.58,50.58,50.58,50.58,4810000,50.58 +1958-10-14,51.26,51.26,51.26,51.26,5110000,51.26 +1958-10-13,51.62,51.62,51.62,51.62,4550000,51.62 +1958-10-10,51.39,51.39,51.39,51.39,4610000,51.39 +1958-10-09,51.05,51.05,51.05,51.05,3670000,51.05 +1958-10-08,51.06,51.06,51.06,51.06,3680000,51.06 +1958-10-07,51.07,51.07,51.07,51.07,3570000,51.07 +1958-10-06,51.07,51.07,51.07,51.07,3570000,51.07 +1958-10-03,50.37,50.37,50.37,50.37,3830000,50.37 +1958-10-02,50.17,50.17,50.17,50.17,3750000,50.17 +1958-10-01,49.98,49.98,49.98,49.98,3780000,49.98 +1958-09-30,50.06,50.06,50.06,50.06,4160000,50.06 +1958-09-29,49.87,49.87,49.87,49.87,3680000,49.87 +1958-09-26,49.66,49.66,49.66,49.66,3420000,49.66 +1958-09-25,49.57,49.57,49.57,49.57,4490000,49.57 +1958-09-24,49.78,49.78,49.78,49.78,3120000,49.78 +1958-09-23,49.56,49.56,49.56,49.56,3950000,49.56 +1958-09-22,49.20,49.20,49.20,49.20,3490000,49.20 +1958-09-19,49.40,49.40,49.40,49.40,3880000,49.40 +1958-09-18,49.38,49.38,49.38,49.38,3460000,49.38 +1958-09-17,49.35,49.35,49.35,49.35,3790000,49.35 +1958-09-16,49.35,49.35,49.35,49.35,3940000,49.35 +1958-09-15,48.96,48.96,48.96,48.96,3040000,48.96 +1958-09-12,48.53,48.53,48.53,48.53,3100000,48.53 +1958-09-11,48.64,48.64,48.64,48.64,3300000,48.64 +1958-09-10,48.31,48.31,48.31,48.31,2820000,48.31 +1958-09-09,48.46,48.46,48.46,48.46,3480000,48.46 +1958-09-08,48.13,48.13,48.13,48.13,3030000,48.13 +1958-09-05,47.97,47.97,47.97,47.97,2520000,47.97 +1958-09-04,48.10,48.10,48.10,48.10,3100000,48.10 +1958-09-03,48.18,48.18,48.18,48.18,3240000,48.18 +1958-09-02,48.00,48.00,48.00,48.00,2930000,48.00 +1958-08-29,47.75,47.75,47.75,47.75,2260000,47.75 +1958-08-28,47.66,47.66,47.66,47.66,2540000,47.66 +1958-08-27,47.91,47.91,47.91,47.91,3250000,47.91 +1958-08-26,47.90,47.90,47.90,47.90,2910000,47.90 +1958-08-25,47.74,47.74,47.74,47.74,2610000,47.74 +1958-08-22,47.73,47.73,47.73,47.73,2660000,47.73 +1958-08-21,47.63,47.63,47.63,47.63,2500000,47.63 +1958-08-20,47.32,47.32,47.32,47.32,2460000,47.32 +1958-08-19,47.30,47.30,47.30,47.30,2250000,47.30 +1958-08-18,47.22,47.22,47.22,47.22,2390000,47.22 +1958-08-15,47.50,47.50,47.50,47.50,2960000,47.50 +1958-08-14,47.91,47.91,47.91,47.91,3370000,47.91 +1958-08-13,47.81,47.81,47.81,47.81,2790000,47.81 +1958-08-12,47.73,47.73,47.73,47.73,2600000,47.73 +1958-08-11,48.16,48.16,48.16,48.16,2870000,48.16 +1958-08-08,48.05,48.05,48.05,48.05,3650000,48.05 +1958-08-07,47.77,47.77,47.77,47.77,3200000,47.77 +1958-08-06,47.46,47.46,47.46,47.46,3440000,47.46 +1958-08-05,47.75,47.75,47.75,47.75,4210000,47.75 +1958-08-04,47.94,47.94,47.94,47.94,4000000,47.94 +1958-08-01,47.49,47.49,47.49,47.49,3380000,47.49 +1958-07-31,47.19,47.19,47.19,47.19,4440000,47.19 +1958-07-30,47.09,47.09,47.09,47.09,3680000,47.09 +1958-07-29,46.96,46.96,46.96,46.96,3310000,46.96 +1958-07-28,47.15,47.15,47.15,47.15,3940000,47.15 +1958-07-25,46.97,46.97,46.97,46.97,4430000,46.97 +1958-07-24,46.65,46.65,46.65,46.65,3740000,46.65 +1958-07-23,46.40,46.40,46.40,46.40,3550000,46.40 +1958-07-22,46.41,46.41,46.41,46.41,3420000,46.41 +1958-07-21,46.33,46.33,46.33,46.33,3440000,46.33 +1958-07-18,45.77,45.77,45.77,45.77,3350000,45.77 +1958-07-17,45.55,45.55,45.55,45.55,3180000,45.55 +1958-07-16,45.25,45.25,45.25,45.25,3240000,45.25 +1958-07-15,45.11,45.11,45.11,45.11,3090000,45.11 +1958-07-14,45.14,45.14,45.14,45.14,2540000,45.14 +1958-07-11,45.72,45.72,45.72,45.72,2400000,45.72 +1958-07-10,45.42,45.42,45.42,45.42,2510000,45.42 +1958-07-09,45.25,45.25,45.25,45.25,2630000,45.25 +1958-07-08,45.40,45.40,45.40,45.40,2430000,45.40 +1958-07-07,45.62,45.62,45.62,45.62,2510000,45.62 +1958-07-03,45.47,45.47,45.47,45.47,2630000,45.47 +1958-07-02,45.32,45.32,45.32,45.32,2370000,45.32 +1958-07-01,45.28,45.28,45.28,45.28,2600000,45.28 +1958-06-30,45.24,45.24,45.24,45.24,2820000,45.24 +1958-06-27,44.90,44.90,44.90,44.90,2800000,44.90 +1958-06-26,44.84,44.84,44.84,44.84,2910000,44.84 +1958-06-25,44.63,44.63,44.63,44.63,2720000,44.63 +1958-06-24,44.52,44.52,44.52,44.52,2560000,44.52 +1958-06-23,44.69,44.69,44.69,44.69,2340000,44.69 +1958-06-20,44.85,44.85,44.85,44.85,2590000,44.85 +1958-06-19,44.61,44.61,44.61,44.61,2690000,44.61 +1958-06-18,45.34,45.34,45.34,45.34,2640000,45.34 +1958-06-17,44.94,44.94,44.94,44.94,2950000,44.94 +1958-06-16,45.18,45.18,45.18,45.18,2870000,45.18 +1958-06-13,45.02,45.02,45.02,45.02,3100000,45.02 +1958-06-12,44.75,44.75,44.75,44.75,2760000,44.75 +1958-06-11,44.49,44.49,44.49,44.49,2570000,44.49 +1958-06-10,44.48,44.48,44.48,44.48,2390000,44.48 +1958-06-09,44.57,44.57,44.57,44.57,2380000,44.57 +1958-06-06,44.64,44.64,44.64,44.64,2680000,44.64 +1958-06-05,44.55,44.55,44.55,44.55,2600000,44.55 +1958-06-04,44.50,44.50,44.50,44.50,2690000,44.50 +1958-06-03,44.46,44.46,44.46,44.46,2780000,44.46 +1958-06-02,44.31,44.31,44.31,44.31,2770000,44.31 +1958-05-29,44.09,44.09,44.09,44.09,2350000,44.09 +1958-05-28,43.85,43.85,43.85,43.85,2260000,43.85 +1958-05-27,43.79,43.79,43.79,43.79,2180000,43.79 +1958-05-26,43.85,43.85,43.85,43.85,2500000,43.85 +1958-05-23,43.87,43.87,43.87,43.87,2570000,43.87 +1958-05-22,43.78,43.78,43.78,43.78,2950000,43.78 +1958-05-21,43.55,43.55,43.55,43.55,2580000,43.55 +1958-05-20,43.61,43.61,43.61,43.61,2500000,43.61 +1958-05-19,43.24,43.24,43.24,43.24,1910000,43.24 +1958-05-16,43.36,43.36,43.36,43.36,2030000,43.36 +1958-05-15,43.34,43.34,43.34,43.34,2470000,43.34 +1958-05-14,43.12,43.12,43.12,43.12,3060000,43.12 +1958-05-13,43.62,43.62,43.62,43.62,2940000,43.62 +1958-05-12,43.75,43.75,43.75,43.75,2780000,43.75 +1958-05-09,44.09,44.09,44.09,44.09,2760000,44.09 +1958-05-08,43.99,43.99,43.99,43.99,2790000,43.99 +1958-05-07,43.93,43.93,43.93,43.93,2770000,43.93 +1958-05-06,44.01,44.01,44.01,44.01,3110000,44.01 +1958-05-05,43.79,43.79,43.79,43.79,2670000,43.79 +1958-05-02,43.69,43.69,43.69,43.69,2290000,43.69 +1958-05-01,43.54,43.54,43.54,43.54,2630000,43.54 +1958-04-30,43.44,43.44,43.44,43.44,2900000,43.44 +1958-04-29,43.00,43.00,43.00,43.00,2190000,43.00 +1958-04-28,43.22,43.22,43.22,43.22,2400000,43.22 +1958-04-25,43.36,43.36,43.36,43.36,3020000,43.36 +1958-04-24,43.14,43.14,43.14,43.14,2870000,43.14 +1958-04-23,42.80,42.80,42.80,42.80,2720000,42.80 +1958-04-22,42.80,42.80,42.80,42.80,2440000,42.80 +1958-04-21,42.93,42.93,42.93,42.93,2550000,42.93 +1958-04-18,42.71,42.71,42.71,42.71,2700000,42.71 +1958-04-17,42.25,42.25,42.25,42.25,2500000,42.25 +1958-04-16,42.10,42.10,42.10,42.10,2240000,42.10 +1958-04-15,42.43,42.43,42.43,42.43,2590000,42.43 +1958-04-14,42.00,42.00,42.00,42.00,2180000,42.00 +1958-04-11,41.74,41.74,41.74,41.74,2060000,41.74 +1958-04-10,41.70,41.70,41.70,41.70,2000000,41.70 +1958-04-09,41.65,41.65,41.65,41.65,2040000,41.65 +1958-04-08,41.43,41.43,41.43,41.43,2190000,41.43 +1958-04-07,41.33,41.33,41.33,41.33,2090000,41.33 +1958-04-03,41.48,41.48,41.48,41.48,2130000,41.48 +1958-04-02,41.60,41.60,41.60,41.60,2390000,41.60 +1958-04-01,41.93,41.93,41.93,41.93,2070000,41.93 +1958-03-31,42.10,42.10,42.10,42.10,2050000,42.10 +1958-03-28,42.20,42.20,42.20,42.20,1930000,42.20 +1958-03-27,42.17,42.17,42.17,42.17,2140000,42.17 +1958-03-26,42.30,42.30,42.30,42.30,1990000,42.30 +1958-03-25,42.44,42.44,42.44,42.44,2210000,42.44 +1958-03-24,42.58,42.58,42.58,42.58,2580000,42.58 +1958-03-21,42.42,42.42,42.42,42.42,2430000,42.42 +1958-03-20,42.11,42.11,42.11,42.11,2280000,42.11 +1958-03-19,42.09,42.09,42.09,42.09,2410000,42.09 +1958-03-18,41.89,41.89,41.89,41.89,2070000,41.89 +1958-03-17,42.04,42.04,42.04,42.04,2130000,42.04 +1958-03-14,42.33,42.33,42.33,42.33,2150000,42.33 +1958-03-13,42.46,42.46,42.46,42.46,2830000,42.46 +1958-03-12,42.41,42.41,42.41,42.41,2420000,42.41 +1958-03-11,42.51,42.51,42.51,42.51,2640000,42.51 +1958-03-10,42.21,42.21,42.21,42.21,1980000,42.21 +1958-03-07,42.07,42.07,42.07,42.07,2130000,42.07 +1958-03-06,42.00,42.00,42.00,42.00,2470000,42.00 +1958-03-05,41.47,41.47,41.47,41.47,2020000,41.47 +1958-03-04,41.35,41.35,41.35,41.35,2010000,41.35 +1958-03-03,41.13,41.13,41.13,41.13,1810000,41.13 +1958-02-28,40.84,40.84,40.84,40.84,1580000,40.84 +1958-02-27,40.68,40.68,40.68,40.68,1670000,40.68 +1958-02-26,40.92,40.92,40.92,40.92,1880000,40.92 +1958-02-25,40.61,40.61,40.61,40.61,1920000,40.61 +1958-02-24,40.65,40.65,40.65,40.65,1570000,40.65 +1958-02-21,40.88,40.88,40.88,40.88,1700000,40.88 +1958-02-20,40.91,40.91,40.91,40.91,2060000,40.91 +1958-02-19,41.15,41.15,41.15,41.15,2070000,41.15 +1958-02-18,41.17,41.17,41.17,41.17,1680000,41.17 +1958-02-17,41.11,41.11,41.11,41.11,1700000,41.11 +1958-02-14,41.33,41.33,41.33,41.33,2070000,41.33 +1958-02-13,40.94,40.94,40.94,40.94,1880000,40.94 +1958-02-12,40.93,40.93,40.93,40.93,2030000,40.93 +1958-02-11,41.11,41.11,41.11,41.11,2110000,41.11 +1958-02-10,41.48,41.48,41.48,41.48,1900000,41.48 +1958-02-07,41.73,41.73,41.73,41.73,2220000,41.73 +1958-02-06,42.10,42.10,42.10,42.10,2210000,42.10 +1958-02-05,42.19,42.19,42.19,42.19,2480000,42.19 +1958-02-04,42.46,42.46,42.46,42.46,2970000,42.46 +1958-02-03,42.04,42.04,42.04,42.04,2490000,42.04 +1958-01-31,41.70,41.70,41.70,41.70,2030000,41.70 +1958-01-30,41.68,41.68,41.68,41.68,2150000,41.68 +1958-01-29,41.88,41.88,41.88,41.88,2220000,41.88 +1958-01-28,41.63,41.63,41.63,41.63,2030000,41.63 +1958-01-27,41.59,41.59,41.59,41.59,2320000,41.59 +1958-01-24,41.71,41.71,41.71,41.71,2830000,41.71 +1958-01-23,41.36,41.36,41.36,41.36,1910000,41.36 +1958-01-22,41.20,41.20,41.20,41.20,2390000,41.20 +1958-01-21,41.30,41.30,41.30,41.30,2160000,41.30 +1958-01-20,41.35,41.35,41.35,41.35,2310000,41.35 +1958-01-17,41.10,41.10,41.10,41.10,2200000,41.10 +1958-01-16,41.06,41.06,41.06,41.06,3950000,41.06 +1958-01-15,40.99,40.99,40.99,40.99,2080000,40.99 +1958-01-14,40.67,40.67,40.67,40.67,2010000,40.67 +1958-01-13,40.49,40.49,40.49,40.49,1860000,40.49 +1958-01-10,40.37,40.37,40.37,40.37,2010000,40.37 +1958-01-09,40.75,40.75,40.75,40.75,2180000,40.75 +1958-01-08,40.99,40.99,40.99,40.99,2230000,40.99 +1958-01-07,41.00,41.00,41.00,41.00,2220000,41.00 +1958-01-06,40.68,40.68,40.68,40.68,2500000,40.68 +1958-01-03,40.87,40.87,40.87,40.87,2440000,40.87 +1958-01-02,40.33,40.33,40.33,40.33,1800000,40.33 +1957-12-31,39.99,39.99,39.99,39.99,5070000,39.99 +1957-12-30,39.58,39.58,39.58,39.58,3750000,39.58 +1957-12-27,39.78,39.78,39.78,39.78,2620000,39.78 +1957-12-26,39.92,39.92,39.92,39.92,2280000,39.92 +1957-12-24,39.52,39.52,39.52,39.52,2220000,39.52 +1957-12-23,39.48,39.48,39.48,39.48,2790000,39.48 +1957-12-20,39.48,39.48,39.48,39.48,2500000,39.48 +1957-12-19,39.80,39.80,39.80,39.80,2740000,39.80 +1957-12-18,39.38,39.38,39.38,39.38,2750000,39.38 +1957-12-17,39.42,39.42,39.42,39.42,2820000,39.42 +1957-12-16,40.12,40.12,40.12,40.12,2350000,40.12 +1957-12-13,40.73,40.73,40.73,40.73,2310000,40.73 +1957-12-12,40.55,40.55,40.55,40.55,2330000,40.55 +1957-12-11,40.51,40.51,40.51,40.51,2240000,40.51 +1957-12-10,40.56,40.56,40.56,40.56,2360000,40.56 +1957-12-09,40.92,40.92,40.92,40.92,2230000,40.92 +1957-12-06,41.31,41.31,41.31,41.31,2350000,41.31 +1957-12-05,41.52,41.52,41.52,41.52,2020000,41.52 +1957-12-04,41.54,41.54,41.54,41.54,2220000,41.54 +1957-12-03,41.37,41.37,41.37,41.37,2060000,41.37 +1957-12-02,41.36,41.36,41.36,41.36,2430000,41.36 +1957-11-29,41.72,41.72,41.72,41.72,2740000,41.72 +1957-11-27,41.25,41.25,41.25,41.25,3330000,41.25 +1957-11-26,40.09,40.09,40.09,40.09,3650000,40.09 +1957-11-25,41.18,41.18,41.18,41.18,2600000,41.18 +1957-11-22,40.87,40.87,40.87,40.87,2850000,40.87 +1957-11-21,40.48,40.48,40.48,40.48,2900000,40.48 +1957-11-20,39.92,39.92,39.92,39.92,2400000,39.92 +1957-11-19,39.81,39.81,39.81,39.81,2240000,39.81 +1957-11-18,40.04,40.04,40.04,40.04,2110000,40.04 +1957-11-15,40.37,40.37,40.37,40.37,3510000,40.37 +1957-11-14,39.44,39.44,39.44,39.44,2450000,39.44 +1957-11-13,39.55,39.55,39.55,39.55,2120000,39.55 +1957-11-12,39.60,39.60,39.60,39.60,2050000,39.60 +1957-11-11,40.18,40.18,40.18,40.18,1540000,40.18 +1957-11-08,40.19,40.19,40.19,40.19,2140000,40.19 +1957-11-07,40.67,40.67,40.67,40.67,2580000,40.67 +1957-11-06,40.43,40.43,40.43,40.43,2550000,40.43 +1957-11-04,40.37,40.37,40.37,40.37,2380000,40.37 +1957-11-01,40.44,40.44,40.44,40.44,2060000,40.44 +1957-10-31,41.06,41.06,41.06,41.06,2170000,41.06 +1957-10-30,41.02,41.02,41.02,41.02,2060000,41.02 +1957-10-29,40.69,40.69,40.69,40.69,1860000,40.69 +1957-10-28,40.42,40.42,40.42,40.42,1800000,40.42 +1957-10-25,40.59,40.59,40.59,40.59,2400000,40.59 +1957-10-24,40.71,40.71,40.71,40.71,4030000,40.71 +1957-10-23,40.73,40.73,40.73,40.73,4600000,40.73 +1957-10-22,38.98,38.98,38.98,38.98,5090000,38.98 +1957-10-21,39.15,39.15,39.15,39.15,4670000,39.15 +1957-10-18,40.33,40.33,40.33,40.33,2670000,40.33 +1957-10-17,40.65,40.65,40.65,40.65,3060000,40.65 +1957-10-16,41.33,41.33,41.33,41.33,2050000,41.33 +1957-10-15,41.67,41.67,41.67,41.67,2620000,41.67 +1957-10-14,41.24,41.24,41.24,41.24,2770000,41.24 +1957-10-11,40.94,40.94,40.94,40.94,4460000,40.94 +1957-10-10,40.96,40.96,40.96,40.96,3300000,40.96 +1957-10-09,41.99,41.99,41.99,41.99,2120000,41.99 +1957-10-08,41.95,41.95,41.95,41.95,3190000,41.95 +1957-10-07,42.22,42.22,42.22,42.22,2490000,42.22 +1957-10-04,42.79,42.79,42.79,42.79,1520000,42.79 +1957-10-03,43.14,43.14,43.14,43.14,1590000,43.14 +1957-10-02,43.10,43.10,43.10,43.10,1760000,43.10 +1957-10-01,42.76,42.76,42.76,42.76,1680000,42.76 +1957-09-30,42.42,42.42,42.42,42.42,1520000,42.42 +1957-09-27,42.55,42.55,42.55,42.55,1750000,42.55 +1957-09-26,42.57,42.57,42.57,42.57,2130000,42.57 +1957-09-25,42.98,42.98,42.98,42.98,2770000,42.98 +1957-09-24,42.98,42.98,42.98,42.98,2840000,42.98 +1957-09-23,42.69,42.69,42.69,42.69,3160000,42.69 +1957-09-20,43.69,43.69,43.69,43.69,2340000,43.69 +1957-09-19,44.40,44.40,44.40,44.40,1520000,44.40 +1957-09-18,44.69,44.69,44.69,44.69,1540000,44.69 +1957-09-17,44.64,44.64,44.64,44.64,1490000,44.64 +1957-09-16,44.58,44.58,44.58,44.58,1290000,44.58 +1957-09-13,44.80,44.80,44.80,44.80,1620000,44.80 +1957-09-12,44.82,44.82,44.82,44.82,2010000,44.82 +1957-09-11,44.26,44.26,44.26,44.26,2130000,44.26 +1957-09-10,43.87,43.87,43.87,43.87,1870000,43.87 +1957-09-09,44.28,44.28,44.28,44.28,1420000,44.28 +1957-09-06,44.68,44.68,44.68,44.68,1320000,44.68 +1957-09-05,44.82,44.82,44.82,44.82,1420000,44.82 +1957-09-04,45.05,45.05,45.05,45.05,1260000,45.05 +1957-09-03,45.44,45.44,45.44,45.44,1490000,45.44 +1957-08-30,45.22,45.22,45.22,45.22,1600000,45.22 +1957-08-29,44.46,44.46,44.46,44.46,1630000,44.46 +1957-08-28,44.64,44.64,44.64,44.64,1840000,44.64 +1957-08-27,44.61,44.61,44.61,44.61,2250000,44.61 +1957-08-26,43.89,43.89,43.89,43.89,2680000,43.89 +1957-08-23,44.51,44.51,44.51,44.51,1960000,44.51 +1957-08-22,45.16,45.16,45.16,45.16,1500000,45.16 +1957-08-21,45.49,45.49,45.49,45.49,1720000,45.49 +1957-08-20,45.29,45.29,45.29,45.29,2700000,45.29 +1957-08-19,44.91,44.91,44.91,44.91,2040000,44.91 +1957-08-16,45.83,45.83,45.83,45.83,1470000,45.83 +1957-08-15,45.75,45.75,45.75,45.75,2040000,45.75 +1957-08-14,45.73,45.73,45.73,45.73,2040000,45.73 +1957-08-13,46.30,46.30,46.30,46.30,1580000,46.30 +1957-08-12,46.33,46.33,46.33,46.33,1650000,46.33 +1957-08-09,46.92,46.92,46.92,46.92,1570000,46.92 +1957-08-08,46.90,46.90,46.90,46.90,1690000,46.90 +1957-08-07,47.03,47.03,47.03,47.03,2460000,47.03 +1957-08-06,46.67,46.67,46.67,46.67,1910000,46.67 +1957-08-05,47.26,47.26,47.26,47.26,1790000,47.26 +1957-08-02,47.68,47.68,47.68,47.68,1610000,47.68 +1957-08-01,47.79,47.79,47.79,47.79,1660000,47.79 +1957-07-31,47.91,47.91,47.91,47.91,1830000,47.91 +1957-07-30,47.92,47.92,47.92,47.92,1780000,47.92 +1957-07-29,47.92,47.92,47.92,47.92,1990000,47.92 +1957-07-26,48.45,48.45,48.45,48.45,1710000,48.45 +1957-07-25,48.61,48.61,48.61,48.61,1800000,48.61 +1957-07-24,48.61,48.61,48.61,48.61,1730000,48.61 +1957-07-23,48.56,48.56,48.56,48.56,1840000,48.56 +1957-07-22,48.47,48.47,48.47,48.47,1950000,48.47 +1957-07-19,48.58,48.58,48.58,48.58,1930000,48.58 +1957-07-18,48.53,48.53,48.53,48.53,2130000,48.53 +1957-07-17,48.58,48.58,48.58,48.58,2060000,48.58 +1957-07-16,48.88,48.88,48.88,48.88,2510000,48.88 +1957-07-15,49.13,49.13,49.13,49.13,2480000,49.13 +1957-07-12,49.08,49.08,49.08,49.08,2240000,49.08 +1957-07-11,48.86,48.86,48.86,48.86,2830000,48.86 +1957-07-10,49.00,49.00,49.00,49.00,2880000,49.00 +1957-07-09,48.90,48.90,48.90,48.90,2450000,48.90 +1957-07-08,48.90,48.90,48.90,48.90,2840000,48.90 +1957-07-05,48.69,48.69,48.69,48.69,2240000,48.69 +1957-07-03,48.46,48.46,48.46,48.46,2720000,48.46 +1957-07-02,47.90,47.90,47.90,47.90,2450000,47.90 +1957-07-01,47.43,47.43,47.43,47.43,1840000,47.43 +1957-06-28,47.37,47.37,47.37,47.37,1770000,47.37 +1957-06-27,47.26,47.26,47.26,47.26,1800000,47.26 +1957-06-26,47.09,47.09,47.09,47.09,1870000,47.09 +1957-06-25,47.15,47.15,47.15,47.15,2000000,47.15 +1957-06-24,46.78,46.78,46.78,46.78,2040000,46.78 +1957-06-21,47.15,47.15,47.15,47.15,1970000,47.15 +1957-06-20,47.43,47.43,47.43,47.43,2050000,47.43 +1957-06-19,47.72,47.72,47.72,47.72,2220000,47.72 +1957-06-18,48.04,48.04,48.04,48.04,2440000,48.04 +1957-06-17,48.24,48.24,48.24,48.24,2220000,48.24 +1957-06-14,48.15,48.15,48.15,48.15,2090000,48.15 +1957-06-13,48.14,48.14,48.14,48.14,2630000,48.14 +1957-06-12,48.05,48.05,48.05,48.05,2600000,48.05 +1957-06-11,47.94,47.94,47.94,47.94,2850000,47.94 +1957-06-10,47.90,47.90,47.90,47.90,2050000,47.90 +1957-06-07,47.85,47.85,47.85,47.85,2380000,47.85 +1957-06-06,47.80,47.80,47.80,47.80,2300000,47.80 +1957-06-05,47.27,47.27,47.27,47.27,1940000,47.27 +1957-06-04,47.28,47.28,47.28,47.28,2200000,47.28 +1957-06-03,47.37,47.37,47.37,47.37,2050000,47.37 +1957-05-31,47.43,47.43,47.43,47.43,2050000,47.43 +1957-05-29,47.11,47.11,47.11,47.11,2270000,47.11 +1957-05-28,46.69,46.69,46.69,46.69,2070000,46.69 +1957-05-27,46.78,46.78,46.78,46.78,2290000,46.78 +1957-05-24,47.21,47.21,47.21,47.21,2340000,47.21 +1957-05-23,47.15,47.15,47.15,47.15,2110000,47.15 +1957-05-22,47.14,47.14,47.14,47.14,2060000,47.14 +1957-05-21,47.33,47.33,47.33,47.33,2370000,47.33 +1957-05-20,47.35,47.35,47.35,47.35,2300000,47.35 +1957-05-17,47.15,47.15,47.15,47.15,2510000,47.15 +1957-05-16,47.02,47.02,47.02,47.02,2690000,47.02 +1957-05-15,46.83,46.83,46.83,46.83,2590000,46.83 +1957-05-14,46.67,46.67,46.67,46.67,2580000,46.67 +1957-05-13,46.88,46.88,46.88,46.88,2720000,46.88 +1957-05-10,46.59,46.59,46.59,46.59,2430000,46.59 +1957-05-09,46.36,46.36,46.36,46.36,2520000,46.36 +1957-05-08,46.31,46.31,46.31,46.31,2590000,46.31 +1957-05-07,46.13,46.13,46.13,46.13,2300000,46.13 +1957-05-06,46.27,46.27,46.27,46.27,2210000,46.27 +1957-05-03,46.34,46.34,46.34,46.34,2390000,46.34 +1957-05-02,46.39,46.39,46.39,46.39,2860000,46.39 +1957-05-01,46.02,46.02,46.02,46.02,2310000,46.02 +1957-04-30,45.74,45.74,45.74,45.74,2200000,45.74 +1957-04-29,45.73,45.73,45.73,45.73,2290000,45.73 +1957-04-26,45.50,45.50,45.50,45.50,2380000,45.50 +1957-04-25,45.56,45.56,45.56,45.56,2640000,45.56 +1957-04-24,45.72,45.72,45.72,45.72,2990000,45.72 +1957-04-23,45.65,45.65,45.65,45.65,2840000,45.65 +1957-04-22,45.48,45.48,45.48,45.48,2560000,45.48 +1957-04-18,45.41,45.41,45.41,45.41,2480000,45.41 +1957-04-17,45.08,45.08,45.08,45.08,2290000,45.08 +1957-04-16,45.02,45.02,45.02,45.02,1890000,45.02 +1957-04-15,44.95,44.95,44.95,44.95,2010000,44.95 +1957-04-12,44.98,44.98,44.98,44.98,2370000,44.98 +1957-04-11,44.98,44.98,44.98,44.98,2350000,44.98 +1957-04-10,44.98,44.98,44.98,44.98,2920000,44.98 +1957-04-09,44.79,44.79,44.79,44.79,2400000,44.79 +1957-04-08,44.39,44.39,44.39,44.39,1950000,44.39 +1957-04-05,44.49,44.49,44.49,44.49,1830000,44.49 +1957-04-04,44.44,44.44,44.44,44.44,1820000,44.44 +1957-04-03,44.54,44.54,44.54,44.54,2160000,44.54 +1957-04-02,44.42,44.42,44.42,44.42,2300000,44.42 +1957-04-01,44.14,44.14,44.14,44.14,1620000,44.14 +1957-03-29,44.11,44.11,44.11,44.11,1650000,44.11 +1957-03-28,44.18,44.18,44.18,44.18,1930000,44.18 +1957-03-27,44.09,44.09,44.09,44.09,1710000,44.09 +1957-03-26,43.91,43.91,43.91,43.91,1660000,43.91 +1957-03-25,43.88,43.88,43.88,43.88,1590000,43.88 +1957-03-22,44.06,44.06,44.06,44.06,1610000,44.06 +1957-03-21,44.11,44.11,44.11,44.11,1630000,44.11 +1957-03-20,44.10,44.10,44.10,44.10,1830000,44.10 +1957-03-19,44.04,44.04,44.04,44.04,1540000,44.04 +1957-03-18,43.85,43.85,43.85,43.85,1450000,43.85 +1957-03-15,44.05,44.05,44.05,44.05,1600000,44.05 +1957-03-14,44.07,44.07,44.07,44.07,1580000,44.07 +1957-03-13,44.04,44.04,44.04,44.04,1840000,44.04 +1957-03-12,43.75,43.75,43.75,43.75,1600000,43.75 +1957-03-11,43.78,43.78,43.78,43.78,1650000,43.78 +1957-03-08,44.07,44.07,44.07,44.07,1630000,44.07 +1957-03-07,44.21,44.21,44.21,44.21,1830000,44.21 +1957-03-06,44.23,44.23,44.23,44.23,1840000,44.23 +1957-03-05,44.22,44.22,44.22,44.22,1860000,44.22 +1957-03-04,44.06,44.06,44.06,44.06,1890000,44.06 +1957-03-01,43.74,43.74,43.74,43.74,1700000,43.74 +1957-02-28,43.26,43.26,43.26,43.26,1620000,43.26 +1957-02-27,43.41,43.41,43.41,43.41,1620000,43.41 +1957-02-26,43.45,43.45,43.45,43.45,1580000,43.45 +1957-02-25,43.38,43.38,43.38,43.38,1710000,43.38 +1957-02-21,43.48,43.48,43.48,43.48,1680000,43.48 +1957-02-20,43.63,43.63,43.63,43.63,1790000,43.63 +1957-02-19,43.49,43.49,43.49,43.49,1670000,43.49 +1957-02-18,43.46,43.46,43.46,43.46,1800000,43.46 +1957-02-15,43.51,43.51,43.51,43.51,2060000,43.51 +1957-02-14,42.99,42.99,42.99,42.99,2220000,42.99 +1957-02-13,43.04,43.04,43.04,43.04,2380000,43.04 +1957-02-12,42.39,42.39,42.39,42.39,2550000,42.39 +1957-02-11,42.57,42.57,42.57,42.57,2740000,42.57 +1957-02-08,43.32,43.32,43.32,43.32,2120000,43.32 +1957-02-07,43.62,43.62,43.62,43.62,1840000,43.62 +1957-02-06,43.82,43.82,43.82,43.82,2110000,43.82 +1957-02-05,43.89,43.89,43.89,43.89,2610000,43.89 +1957-02-04,44.53,44.53,44.53,44.53,1750000,44.53 +1957-02-01,44.62,44.62,44.62,44.62,1680000,44.62 +1957-01-31,44.72,44.72,44.72,44.72,1920000,44.72 +1957-01-30,44.91,44.91,44.91,44.91,1950000,44.91 +1957-01-29,44.71,44.71,44.71,44.71,1800000,44.71 +1957-01-28,44.49,44.49,44.49,44.49,1700000,44.49 +1957-01-25,44.82,44.82,44.82,44.82,2010000,44.82 +1957-01-24,45.03,45.03,45.03,45.03,1910000,45.03 +1957-01-23,44.87,44.87,44.87,44.87,1920000,44.87 +1957-01-22,44.53,44.53,44.53,44.53,1920000,44.53 +1957-01-21,44.40,44.40,44.40,44.40,2740000,44.40 +1957-01-18,44.64,44.64,44.64,44.64,2400000,44.64 +1957-01-17,45.22,45.22,45.22,45.22,2140000,45.22 +1957-01-16,45.23,45.23,45.23,45.23,2210000,45.23 +1957-01-15,45.18,45.18,45.18,45.18,2370000,45.18 +1957-01-14,45.86,45.86,45.86,45.86,2350000,45.86 +1957-01-11,46.18,46.18,46.18,46.18,2340000,46.18 +1957-01-10,46.27,46.27,46.27,46.27,2470000,46.27 +1957-01-09,46.16,46.16,46.16,46.16,2330000,46.16 +1957-01-08,46.25,46.25,46.25,46.25,2230000,46.25 +1957-01-07,46.42,46.42,46.42,46.42,2500000,46.42 +1957-01-04,46.66,46.66,46.66,46.66,2710000,46.66 +1957-01-03,46.60,46.60,46.60,46.60,2260000,46.60 +1957-01-02,46.20,46.20,46.20,46.20,1960000,46.20 +1956-12-31,46.67,46.67,46.67,46.67,3680000,46.67 +1956-12-28,46.56,46.56,46.56,46.56,2790000,46.56 +1956-12-27,46.35,46.35,46.35,46.35,2420000,46.35 +1956-12-26,46.39,46.39,46.39,46.39,2440000,46.39 +1956-12-21,46.37,46.37,46.37,46.37,2380000,46.37 +1956-12-20,46.07,46.07,46.07,46.07,2060000,46.07 +1956-12-19,46.43,46.43,46.43,46.43,1900000,46.43 +1956-12-18,46.54,46.54,46.54,46.54,2370000,46.54 +1956-12-17,46.54,46.54,46.54,46.54,2500000,46.54 +1956-12-14,46.54,46.54,46.54,46.54,2450000,46.54 +1956-12-13,46.50,46.50,46.50,46.50,2370000,46.50 +1956-12-12,46.13,46.13,46.13,46.13,2180000,46.13 +1956-12-11,46.48,46.48,46.48,46.48,2210000,46.48 +1956-12-10,46.80,46.80,46.80,46.80,2600000,46.80 +1956-12-07,47.04,47.04,47.04,47.04,2400000,47.04 +1956-12-06,46.81,46.81,46.81,46.81,2470000,46.81 +1956-12-05,46.39,46.39,46.39,46.39,2360000,46.39 +1956-12-04,45.84,45.84,45.84,45.84,2180000,45.84 +1956-12-03,45.98,45.98,45.98,45.98,2570000,45.98 +1956-11-30,45.08,45.08,45.08,45.08,2300000,45.08 +1956-11-29,44.38,44.38,44.38,44.38,2440000,44.38 +1956-11-28,44.43,44.43,44.43,44.43,2190000,44.43 +1956-11-27,44.91,44.91,44.91,44.91,2130000,44.91 +1956-11-26,44.87,44.87,44.87,44.87,2230000,44.87 +1956-11-23,45.14,45.14,45.14,45.14,1880000,45.14 +1956-11-21,44.67,44.67,44.67,44.67,2310000,44.67 +1956-11-20,44.89,44.89,44.89,44.89,2240000,44.89 +1956-11-19,45.29,45.29,45.29,45.29,2560000,45.29 +1956-11-16,45.74,45.74,45.74,45.74,1820000,45.74 +1956-11-15,45.72,45.72,45.72,45.72,2210000,45.72 +1956-11-14,46.01,46.01,46.01,46.01,2290000,46.01 +1956-11-13,46.27,46.27,46.27,46.27,2140000,46.27 +1956-11-12,46.49,46.49,46.49,46.49,1600000,46.49 +1956-11-09,46.34,46.34,46.34,46.34,1690000,46.34 +1956-11-08,46.73,46.73,46.73,46.73,1970000,46.73 +1956-11-07,47.11,47.11,47.11,47.11,2650000,47.11 +1956-11-05,47.60,47.60,47.60,47.60,2830000,47.60 +1956-11-02,46.98,46.98,46.98,46.98,2180000,46.98 +1956-11-01,46.52,46.52,46.52,46.52,1890000,46.52 +1956-10-31,45.58,45.58,45.58,45.58,2280000,45.58 +1956-10-30,46.37,46.37,46.37,46.37,1830000,46.37 +1956-10-29,46.40,46.40,46.40,46.40,2420000,46.40 +1956-10-26,46.27,46.27,46.27,46.27,1800000,46.27 +1956-10-25,45.85,45.85,45.85,45.85,1580000,45.85 +1956-10-24,45.93,45.93,45.93,45.93,1640000,45.93 +1956-10-23,46.12,46.12,46.12,46.12,1390000,46.12 +1956-10-22,46.23,46.23,46.23,46.23,1430000,46.23 +1956-10-19,46.24,46.24,46.24,46.24,1720000,46.24 +1956-10-18,46.34,46.34,46.34,46.34,1640000,46.34 +1956-10-17,46.26,46.26,46.26,46.26,1640000,46.26 +1956-10-16,46.62,46.62,46.62,46.62,1580000,46.62 +1956-10-15,46.86,46.86,46.86,46.86,1610000,46.86 +1956-10-12,47.00,47.00,47.00,47.00,1330000,47.00 +1956-10-11,46.81,46.81,46.81,46.81,1760000,46.81 +1956-10-10,46.84,46.84,46.84,46.84,1620000,46.84 +1956-10-09,46.20,46.20,46.20,46.20,1220000,46.20 +1956-10-08,46.43,46.43,46.43,46.43,1450000,46.43 +1956-10-05,46.45,46.45,46.45,46.45,1580000,46.45 +1956-10-04,46.29,46.29,46.29,46.29,1600000,46.29 +1956-10-03,46.28,46.28,46.28,46.28,2180000,46.28 +1956-10-02,45.52,45.52,45.52,45.52,2400000,45.52 +1956-10-01,44.70,44.70,44.70,44.70,2600000,44.70 +1956-09-28,45.35,45.35,45.35,45.35,1720000,45.35 +1956-09-27,45.60,45.60,45.60,45.60,1770000,45.60 +1956-09-26,45.82,45.82,45.82,45.82,2370000,45.82 +1956-09-25,45.75,45.75,45.75,45.75,2100000,45.75 +1956-09-24,46.40,46.40,46.40,46.40,1840000,46.40 +1956-09-21,46.58,46.58,46.58,46.58,2110000,46.58 +1956-09-20,46.21,46.21,46.21,46.21,2150000,46.21 +1956-09-19,46.24,46.24,46.24,46.24,2040000,46.24 +1956-09-18,46.79,46.79,46.79,46.79,2200000,46.79 +1956-09-17,47.10,47.10,47.10,47.10,1940000,47.10 +1956-09-14,47.21,47.21,47.21,47.21,2110000,47.21 +1956-09-13,46.09,46.09,46.09,46.09,2000000,46.09 +1956-09-12,47.05,47.05,47.05,47.05,1930000,47.05 +1956-09-11,47.38,47.38,47.38,47.38,1920000,47.38 +1956-09-10,47.56,47.56,47.56,47.56,1860000,47.56 +1956-09-07,47.81,47.81,47.81,47.81,1690000,47.81 +1956-09-06,48.10,48.10,48.10,48.10,1550000,48.10 +1956-09-05,48.02,48.02,48.02,48.02,2130000,48.02 +1956-09-04,47.89,47.89,47.89,47.89,1790000,47.89 +1956-08-31,47.51,47.51,47.51,47.51,1620000,47.51 +1956-08-30,46.94,46.94,46.94,46.94,2050000,46.94 +1956-08-29,47.36,47.36,47.36,47.36,1530000,47.36 +1956-08-28,47.57,47.57,47.57,47.57,1400000,47.57 +1956-08-27,47.66,47.66,47.66,47.66,1420000,47.66 +1956-08-24,47.95,47.95,47.95,47.95,1530000,47.95 +1956-08-23,48.00,48.00,48.00,48.00,1590000,48.00 +1956-08-22,47.42,47.42,47.42,47.42,1570000,47.42 +1956-08-21,47.89,47.89,47.89,47.89,2440000,47.89 +1956-08-20,48.25,48.25,48.25,48.25,1770000,48.25 +1956-08-17,48.82,48.82,48.82,48.82,1720000,48.82 +1956-08-16,48.88,48.88,48.88,48.88,1790000,48.88 +1956-08-15,48.99,48.99,48.99,48.99,2000000,48.99 +1956-08-14,48.00,48.00,48.00,48.00,1790000,48.00 +1956-08-13,48.58,48.58,48.58,48.58,1730000,48.58 +1956-08-10,49.09,49.09,49.09,49.09,2040000,49.09 +1956-08-09,49.32,49.32,49.32,49.32,2550000,49.32 +1956-08-08,49.36,49.36,49.36,49.36,2480000,49.36 +1956-08-07,49.16,49.16,49.16,49.16,2180000,49.16 +1956-08-06,48.96,48.96,48.96,48.96,2280000,48.96 +1956-08-03,49.64,49.64,49.64,49.64,2210000,49.64 +1956-08-02,49.64,49.64,49.64,49.64,2530000,49.64 +1956-08-01,49.62,49.62,49.62,49.62,2230000,49.62 +1956-07-31,49.39,49.39,49.39,49.39,2520000,49.39 +1956-07-30,49.00,49.00,49.00,49.00,2100000,49.00 +1956-07-27,49.08,49.08,49.08,49.08,2240000,49.08 +1956-07-26,49.48,49.48,49.48,49.48,2060000,49.48 +1956-07-25,49.44,49.44,49.44,49.44,2220000,49.44 +1956-07-24,49.33,49.33,49.33,49.33,2040000,49.33 +1956-07-23,49.33,49.33,49.33,49.33,1970000,49.33 +1956-07-20,49.35,49.35,49.35,49.35,2020000,49.35 +1956-07-19,49.32,49.32,49.32,49.32,1950000,49.32 +1956-07-18,49.30,49.30,49.30,49.30,2530000,49.30 +1956-07-17,49.31,49.31,49.31,49.31,2520000,49.31 +1956-07-16,49.14,49.14,49.14,49.14,2260000,49.14 +1956-07-13,48.72,48.72,48.72,48.72,2020000,48.72 +1956-07-12,48.58,48.58,48.58,48.58,2180000,48.58 +1956-07-11,48.69,48.69,48.69,48.69,2520000,48.69 +1956-07-10,48.54,48.54,48.54,48.54,2450000,48.54 +1956-07-09,48.25,48.25,48.25,48.25,2180000,48.25 +1956-07-06,48.04,48.04,48.04,48.04,2180000,48.04 +1956-07-05,47.80,47.80,47.80,47.80,2240000,47.80 +1956-07-03,47.32,47.32,47.32,47.32,1840000,47.32 +1956-07-02,46.93,46.93,46.93,46.93,1610000,46.93 +1956-06-29,46.97,46.97,46.97,46.97,1780000,46.97 +1956-06-28,47.13,47.13,47.13,47.13,1900000,47.13 +1956-06-27,47.07,47.07,47.07,47.07,2090000,47.07 +1956-06-26,46.72,46.72,46.72,46.72,1730000,46.72 +1956-06-25,46.41,46.41,46.41,46.41,1500000,46.41 +1956-06-22,46.59,46.59,46.59,46.59,1630000,46.59 +1956-06-21,46.73,46.73,46.73,46.73,1820000,46.73 +1956-06-20,46.41,46.41,46.41,46.41,1670000,46.41 +1956-06-19,46.22,46.22,46.22,46.22,1430000,46.22 +1956-06-18,46.17,46.17,46.17,46.17,1440000,46.17 +1956-06-15,46.37,46.37,46.37,46.37,1550000,46.37 +1956-06-14,46.31,46.31,46.31,46.31,1670000,46.31 +1956-06-13,46.42,46.42,46.42,46.42,1760000,46.42 +1956-06-12,46.36,46.36,46.36,46.36,1900000,46.36 +1956-06-11,45.71,45.71,45.71,45.71,2000000,45.71 +1956-06-08,45.14,45.14,45.14,45.14,3630000,45.14 +1956-06-07,45.99,45.99,45.99,45.99,1630000,45.99 +1956-06-06,45.63,45.63,45.63,45.63,1460000,45.63 +1956-06-05,45.86,45.86,45.86,45.86,1650000,45.86 +1956-06-04,45.85,45.85,45.85,45.85,1500000,45.85 +1956-06-01,45.58,45.58,45.58,45.58,1440000,45.58 +1956-05-31,45.20,45.20,45.20,45.20,2020000,45.20 +1956-05-29,45.11,45.11,45.11,45.11,2430000,45.11 +1956-05-28,44.10,44.10,44.10,44.10,2780000,44.10 +1956-05-25,44.62,44.62,44.62,44.62,2570000,44.62 +1956-05-24,44.60,44.60,44.60,44.60,2600000,44.60 +1956-05-23,45.02,45.02,45.02,45.02,2140000,45.02 +1956-05-22,45.26,45.26,45.26,45.26,2290000,45.26 +1956-05-21,45.99,45.99,45.99,45.99,1940000,45.99 +1956-05-18,46.39,46.39,46.39,46.39,2020000,46.39 +1956-05-17,46.61,46.61,46.61,46.61,1970000,46.61 +1956-05-16,46.05,46.05,46.05,46.05,2080000,46.05 +1956-05-15,46.37,46.37,46.37,46.37,2650000,46.37 +1956-05-14,46.86,46.86,46.86,46.86,2440000,46.86 +1956-05-11,47.12,47.12,47.12,47.12,2450000,47.12 +1956-05-10,47.16,47.16,47.16,47.16,2850000,47.16 +1956-05-09,47.94,47.94,47.94,47.94,2550000,47.94 +1956-05-08,48.02,48.02,48.02,48.02,2440000,48.02 +1956-05-07,48.22,48.22,48.22,48.22,2550000,48.22 +1956-05-04,48.51,48.51,48.51,48.51,2860000,48.51 +1956-05-03,48.34,48.34,48.34,48.34,2640000,48.34 +1956-05-02,48.17,48.17,48.17,48.17,2440000,48.17 +1956-05-01,48.16,48.16,48.16,48.16,2500000,48.16 +1956-04-30,48.38,48.38,48.38,48.38,2730000,48.38 +1956-04-27,47.99,47.99,47.99,47.99,2760000,47.99 +1956-04-26,47.49,47.49,47.49,47.49,2630000,47.49 +1956-04-25,47.09,47.09,47.09,47.09,2270000,47.09 +1956-04-24,47.26,47.26,47.26,47.26,2500000,47.26 +1956-04-23,47.65,47.65,47.65,47.65,2440000,47.65 +1956-04-20,47.76,47.76,47.76,47.76,2320000,47.76 +1956-04-19,47.57,47.57,47.57,47.57,2210000,47.57 +1956-04-18,47.74,47.74,47.74,47.74,2470000,47.74 +1956-04-17,47.93,47.93,47.93,47.93,2330000,47.93 +1956-04-16,47.96,47.96,47.96,47.96,2310000,47.96 +1956-04-13,47.95,47.95,47.95,47.95,2450000,47.95 +1956-04-12,48.02,48.02,48.02,48.02,2700000,48.02 +1956-04-11,48.31,48.31,48.31,48.31,2440000,48.31 +1956-04-10,47.93,47.93,47.93,47.93,2590000,47.93 +1956-04-09,48.61,48.61,48.61,48.61,2760000,48.61 +1956-04-06,48.85,48.85,48.85,48.85,2600000,48.85 +1956-04-05,48.57,48.57,48.57,48.57,2950000,48.57 +1956-04-04,48.80,48.80,48.80,48.80,2760000,48.80 +1956-04-03,48.53,48.53,48.53,48.53,2760000,48.53 +1956-04-02,48.70,48.70,48.70,48.70,3120000,48.70 +1956-03-29,48.48,48.48,48.48,48.48,3480000,48.48 +1956-03-28,48.51,48.51,48.51,48.51,2610000,48.51 +1956-03-27,48.25,48.25,48.25,48.25,2540000,48.25 +1956-03-26,48.62,48.62,48.62,48.62,2720000,48.62 +1956-03-23,48.83,48.83,48.83,48.83,2980000,48.83 +1956-03-22,48.72,48.72,48.72,48.72,2650000,48.72 +1956-03-21,48.23,48.23,48.23,48.23,2930000,48.23 +1956-03-20,48.87,48.87,48.87,48.87,2960000,48.87 +1956-03-19,48.59,48.59,48.59,48.59,2570000,48.59 +1956-03-16,48.14,48.14,48.14,48.14,3120000,48.14 +1956-03-15,47.99,47.99,47.99,47.99,3270000,47.99 +1956-03-14,47.53,47.53,47.53,47.53,3140000,47.53 +1956-03-13,47.06,47.06,47.06,47.06,2790000,47.06 +1956-03-12,47.13,47.13,47.13,47.13,3110000,47.13 +1956-03-09,46.70,46.70,46.70,46.70,3430000,46.70 +1956-03-08,46.12,46.12,46.12,46.12,2500000,46.12 +1956-03-07,46.01,46.01,46.01,46.01,2380000,46.01 +1956-03-06,46.04,46.04,46.04,46.04,2770000,46.04 +1956-03-05,46.06,46.06,46.06,46.06,3090000,46.06 +1956-03-02,45.81,45.81,45.81,45.81,2860000,45.81 +1956-03-01,45.54,45.54,45.54,45.54,2410000,45.54 +1956-02-29,45.34,45.34,45.34,45.34,3900000,45.34 +1956-02-28,45.43,45.43,45.43,45.43,2540000,45.43 +1956-02-27,45.27,45.27,45.27,45.27,2440000,45.27 +1956-02-24,45.32,45.32,45.32,45.32,2890000,45.32 +1956-02-23,44.95,44.95,44.95,44.95,2900000,44.95 +1956-02-21,44.56,44.56,44.56,44.56,2240000,44.56 +1956-02-20,44.45,44.45,44.45,44.45,2530000,44.45 +1956-02-17,44.52,44.52,44.52,44.52,2840000,44.52 +1956-02-16,43.82,43.82,43.82,43.82,1750000,43.82 +1956-02-15,44.04,44.04,44.04,44.04,3000000,44.04 +1956-02-14,43.42,43.42,43.42,43.42,1590000,43.42 +1956-02-13,43.58,43.58,43.58,43.58,1420000,43.58 +1956-02-10,43.64,43.64,43.64,43.64,1770000,43.64 +1956-02-09,43.66,43.66,43.66,43.66,2080000,43.66 +1956-02-08,44.16,44.16,44.16,44.16,2170000,44.16 +1956-02-07,44.60,44.60,44.60,44.60,2060000,44.60 +1956-02-06,44.81,44.81,44.81,44.81,2230000,44.81 +1956-02-03,44.78,44.78,44.78,44.78,2110000,44.78 +1956-02-02,44.22,44.22,44.22,44.22,1900000,44.22 +1956-02-01,44.03,44.03,44.03,44.03,2010000,44.03 +1956-01-31,43.82,43.82,43.82,43.82,1900000,43.82 +1956-01-30,43.50,43.50,43.50,43.50,1830000,43.50 +1956-01-27,43.35,43.35,43.35,43.35,1950000,43.35 +1956-01-26,43.46,43.46,43.46,43.46,1840000,43.46 +1956-01-25,43.72,43.72,43.72,43.72,1950000,43.72 +1956-01-24,43.65,43.65,43.65,43.65,2160000,43.65 +1956-01-23,43.11,43.11,43.11,43.11,2720000,43.11 +1956-01-20,43.22,43.22,43.22,43.22,2430000,43.22 +1956-01-19,43.72,43.72,43.72,43.72,2500000,43.72 +1956-01-18,44.17,44.17,44.17,44.17,2110000,44.17 +1956-01-17,44.47,44.47,44.47,44.47,2050000,44.47 +1956-01-16,44.14,44.14,44.14,44.14,2260000,44.14 +1956-01-13,44.67,44.67,44.67,44.67,2120000,44.67 +1956-01-12,44.75,44.75,44.75,44.75,2330000,44.75 +1956-01-11,44.38,44.38,44.38,44.38,2310000,44.38 +1956-01-10,44.16,44.16,44.16,44.16,2640000,44.16 +1956-01-09,44.51,44.51,44.51,44.51,2700000,44.51 +1956-01-06,45.14,45.14,45.14,45.14,2570000,45.14 +1956-01-05,44.95,44.95,44.95,44.95,2110000,44.95 +1956-01-04,45.00,45.00,45.00,45.00,2290000,45.00 +1956-01-03,45.16,45.16,45.16,45.16,2390000,45.16 +1955-12-30,45.48,45.48,45.48,45.48,2820000,45.48 +1955-12-29,45.15,45.15,45.15,45.15,2190000,45.15 +1955-12-28,45.05,45.05,45.05,45.05,1990000,45.05 +1955-12-27,45.22,45.22,45.22,45.22,2010000,45.22 +1955-12-23,45.50,45.50,45.50,45.50,2090000,45.50 +1955-12-22,45.41,45.41,45.41,45.41,2650000,45.41 +1955-12-21,45.84,45.84,45.84,45.84,2540000,45.84 +1955-12-20,44.95,44.95,44.95,44.95,2280000,44.95 +1955-12-19,45.02,45.02,45.02,45.02,2380000,45.02 +1955-12-16,45.13,45.13,45.13,45.13,2310000,45.13 +1955-12-15,45.06,45.06,45.06,45.06,2260000,45.06 +1955-12-14,45.07,45.07,45.07,45.07,2670000,45.07 +1955-12-13,45.45,45.45,45.45,45.45,2430000,45.45 +1955-12-12,45.42,45.42,45.42,45.42,2510000,45.42 +1955-12-09,45.89,45.89,45.89,45.89,2660000,45.89 +1955-12-08,45.82,45.82,45.82,45.82,2970000,45.82 +1955-12-07,45.55,45.55,45.55,45.55,2480000,45.55 +1955-12-06,45.70,45.70,45.70,45.70,2540000,45.70 +1955-12-05,45.70,45.70,45.70,45.70,2440000,45.70 +1955-12-02,45.44,45.44,45.44,45.44,2400000,45.44 +1955-12-01,45.35,45.35,45.35,45.35,2370000,45.35 +1955-11-30,45.51,45.51,45.51,45.51,2900000,45.51 +1955-11-29,45.56,45.56,45.56,45.56,2370000,45.56 +1955-11-28,45.38,45.38,45.38,45.38,2460000,45.38 +1955-11-25,45.68,45.68,45.68,45.68,2190000,45.68 +1955-11-23,45.72,45.72,45.72,45.72,2550000,45.72 +1955-11-22,45.66,45.66,45.66,45.66,2270000,45.66 +1955-11-21,45.22,45.22,45.22,45.22,1960000,45.22 +1955-11-18,45.54,45.54,45.54,45.54,2320000,45.54 +1955-11-17,45.59,45.59,45.59,45.59,2310000,45.59 +1955-11-16,45.91,45.91,45.91,45.91,2460000,45.91 +1955-11-15,46.21,46.21,46.21,46.21,2560000,46.21 +1955-11-14,46.41,46.41,46.41,46.41,2760000,46.41 +1955-11-11,45.24,45.24,45.24,45.24,2000000,45.24 +1955-11-10,44.72,44.72,44.72,44.72,2550000,44.72 +1955-11-09,44.61,44.61,44.61,44.61,2580000,44.61 +1955-11-07,44.15,44.15,44.15,44.15,2230000,44.15 +1955-11-04,43.96,43.96,43.96,43.96,2430000,43.96 +1955-11-03,43.24,43.24,43.24,43.24,2260000,43.24 +1955-11-02,42.35,42.35,42.35,42.35,1610000,42.35 +1955-11-01,42.28,42.28,42.28,42.28,1590000,42.28 +1955-10-31,42.34,42.34,42.34,42.34,1800000,42.34 +1955-10-28,42.37,42.37,42.37,42.37,1720000,42.37 +1955-10-27,42.34,42.34,42.34,42.34,1830000,42.34 +1955-10-26,42.29,42.29,42.29,42.29,1660000,42.29 +1955-10-25,42.63,42.63,42.63,42.63,1950000,42.63 +1955-10-24,42.91,42.91,42.91,42.91,1820000,42.91 +1955-10-21,42.59,42.59,42.59,42.59,1710000,42.59 +1955-10-20,42.59,42.59,42.59,42.59,2160000,42.59 +1955-10-19,42.07,42.07,42.07,42.07,1760000,42.07 +1955-10-18,41.65,41.65,41.65,41.65,1550000,41.65 +1955-10-17,41.35,41.35,41.35,41.35,1480000,41.35 +1955-10-14,41.22,41.22,41.22,41.22,1640000,41.22 +1955-10-13,41.39,41.39,41.39,41.39,1980000,41.39 +1955-10-12,41.52,41.52,41.52,41.52,1900000,41.52 +1955-10-11,40.80,40.80,40.80,40.80,3590000,40.80 +1955-10-10,41.15,41.15,41.15,41.15,3100000,41.15 +1955-10-07,42.38,42.38,42.38,42.38,2150000,42.38 +1955-10-06,42.70,42.70,42.70,42.70,1690000,42.70 +1955-10-05,42.99,42.99,42.99,42.99,1920000,42.99 +1955-10-04,42.82,42.82,42.82,42.82,2020000,42.82 +1955-10-03,42.49,42.49,42.49,42.49,2720000,42.49 +1955-09-30,43.67,43.67,43.67,43.67,2140000,43.67 +1955-09-29,44.03,44.03,44.03,44.03,2560000,44.03 +1955-09-28,44.31,44.31,44.31,44.31,3780000,44.31 +1955-09-27,43.58,43.58,43.58,43.58,5500000,43.58 +1955-09-26,42.61,42.61,42.61,42.61,7720000,42.61 +1955-09-23,45.63,45.63,45.63,45.63,2540000,45.63 +1955-09-22,45.39,45.39,45.39,45.39,2550000,45.39 +1955-09-21,45.39,45.39,45.39,45.39,2460000,45.39 +1955-09-20,45.13,45.13,45.13,45.13,2090000,45.13 +1955-09-19,45.16,45.16,45.16,45.16,2390000,45.16 +1955-09-16,45.09,45.09,45.09,45.09,2540000,45.09 +1955-09-15,44.75,44.75,44.75,44.75,2890000,44.75 +1955-09-14,44.99,44.99,44.99,44.99,2570000,44.99 +1955-09-13,44.80,44.80,44.80,44.80,2580000,44.80 +1955-09-12,44.19,44.19,44.19,44.19,2520000,44.19 +1955-09-09,43.89,43.89,43.89,43.89,2480000,43.89 +1955-09-08,43.88,43.88,43.88,43.88,2470000,43.88 +1955-09-07,43.85,43.85,43.85,43.85,2380000,43.85 +1955-09-06,43.86,43.86,43.86,43.86,2360000,43.86 +1955-09-02,43.60,43.60,43.60,43.60,1700000,43.60 +1955-09-01,43.37,43.37,43.37,43.37,1860000,43.37 +1955-08-31,43.18,43.18,43.18,43.18,1850000,43.18 +1955-08-30,42.92,42.92,42.92,42.92,1740000,42.92 +1955-08-29,42.96,42.96,42.96,42.96,1910000,42.96 +1955-08-26,42.99,42.99,42.99,42.99,2200000,42.99 +1955-08-25,42.80,42.80,42.80,42.80,2120000,42.80 +1955-08-24,42.61,42.61,42.61,42.61,2140000,42.61 +1955-08-23,42.55,42.55,42.55,42.55,1890000,42.55 +1955-08-22,41.98,41.98,41.98,41.98,1430000,41.98 +1955-08-19,42.02,42.02,42.02,42.02,1400000,42.02 +1955-08-18,41.84,41.84,41.84,41.84,1560000,41.84 +1955-08-17,41.90,41.90,41.90,41.90,1570000,41.90 +1955-08-16,41.86,41.86,41.86,41.86,1520000,41.86 +1955-08-15,42.17,42.17,42.17,42.17,1230000,42.17 +1955-08-12,42.21,42.21,42.21,42.21,1530000,42.21 +1955-08-11,42.13,42.13,42.13,42.13,1620000,42.13 +1955-08-10,41.74,41.74,41.74,41.74,1580000,41.74 +1955-08-09,41.75,41.75,41.75,41.75,2240000,41.75 +1955-08-08,42.31,42.31,42.31,42.31,1730000,42.31 +1955-08-05,42.56,42.56,42.56,42.56,1690000,42.56 +1955-08-04,42.36,42.36,42.36,42.36,2210000,42.36 +1955-08-03,43.09,43.09,43.09,43.09,2190000,43.09 +1955-08-02,43.03,43.03,43.03,43.03,2260000,43.03 +1955-08-01,42.93,42.93,42.93,42.93,2190000,42.93 +1955-07-29,43.52,43.52,43.52,43.52,2070000,43.52 +1955-07-28,43.50,43.50,43.50,43.50,2090000,43.50 +1955-07-27,43.76,43.76,43.76,43.76,2170000,43.76 +1955-07-26,43.58,43.58,43.58,43.58,2340000,43.58 +1955-07-25,43.48,43.48,43.48,43.48,2500000,43.48 +1955-07-22,43.00,43.00,43.00,43.00,2500000,43.00 +1955-07-21,42.64,42.64,42.64,42.64,2530000,42.64 +1955-07-20,42.23,42.23,42.23,42.23,2080000,42.23 +1955-07-19,42.10,42.10,42.10,42.10,2300000,42.10 +1955-07-18,42.36,42.36,42.36,42.36,2160000,42.36 +1955-07-15,42.40,42.40,42.40,42.40,2230000,42.40 +1955-07-14,42.25,42.25,42.25,42.25,1980000,42.25 +1955-07-13,42.24,42.24,42.24,42.24,2360000,42.24 +1955-07-12,42.75,42.75,42.75,42.75,2630000,42.75 +1955-07-11,42.75,42.75,42.75,42.75,2420000,42.75 +1955-07-08,42.64,42.64,42.64,42.64,2450000,42.64 +1955-07-07,42.58,42.58,42.58,42.58,3300000,42.58 +1955-07-06,43.18,43.18,43.18,43.18,3140000,43.18 +1955-07-05,41.69,41.69,41.69,41.69,2680000,41.69 +1955-07-01,41.19,41.19,41.19,41.19,2540000,41.19 +1955-06-30,41.03,41.03,41.03,41.03,2370000,41.03 +1955-06-29,40.79,40.79,40.79,40.79,2180000,40.79 +1955-06-28,40.77,40.77,40.77,40.77,2180000,40.77 +1955-06-27,40.99,40.99,40.99,40.99,2250000,40.99 +1955-06-24,40.96,40.96,40.96,40.96,2410000,40.96 +1955-06-23,40.75,40.75,40.75,40.75,2900000,40.75 +1955-06-22,40.60,40.60,40.60,40.60,3010000,40.60 +1955-06-21,40.51,40.51,40.51,40.51,2720000,40.51 +1955-06-20,40.14,40.14,40.14,40.14,2490000,40.14 +1955-06-17,40.10,40.10,40.10,40.10,2340000,40.10 +1955-06-16,39.96,39.96,39.96,39.96,2760000,39.96 +1955-06-15,39.89,39.89,39.89,39.89,2650000,39.89 +1955-06-14,39.67,39.67,39.67,39.67,2860000,39.67 +1955-06-13,39.62,39.62,39.62,39.62,2770000,39.62 +1955-06-10,39.25,39.25,39.25,39.25,2470000,39.25 +1955-06-09,39.01,39.01,39.01,39.01,2960000,39.01 +1955-06-08,39.22,39.22,39.22,39.22,3300000,39.22 +1955-06-07,39.96,39.96,39.96,39.96,3230000,39.96 +1955-06-06,39.69,39.69,39.69,39.69,2560000,39.69 +1955-06-03,38.37,38.37,38.37,38.37,2590000,38.37 +1955-06-02,38.01,38.01,38.01,38.01,2610000,38.01 +1955-06-01,37.96,37.96,37.96,37.96,2510000,37.96 +1955-05-31,37.91,37.91,37.91,37.91,1990000,37.91 +1955-05-27,37.93,37.93,37.93,37.93,2220000,37.93 +1955-05-26,37.85,37.85,37.85,37.85,2260000,37.85 +1955-05-25,37.60,37.60,37.60,37.60,2100000,37.60 +1955-05-24,37.46,37.46,37.46,37.46,1650000,37.46 +1955-05-23,37.48,37.48,37.48,37.48,1900000,37.48 +1955-05-20,37.74,37.74,37.74,37.74,2240000,37.74 +1955-05-19,37.49,37.49,37.49,37.49,2380000,37.49 +1955-05-18,37.28,37.28,37.28,37.28,2010000,37.28 +1955-05-17,36.97,36.97,36.97,36.97,1900000,36.97 +1955-05-16,37.02,37.02,37.02,37.02,2160000,37.02 +1955-05-13,37.44,37.44,37.44,37.44,1860000,37.44 +1955-05-12,37.20,37.20,37.20,37.20,2830000,37.20 +1955-05-11,37.42,37.42,37.42,37.42,2120000,37.42 +1955-05-10,37.85,37.85,37.85,37.85,2150000,37.85 +1955-05-09,37.93,37.93,37.93,37.93,2090000,37.93 +1955-05-06,37.89,37.89,37.89,37.89,2250000,37.89 +1955-05-05,37.82,37.82,37.82,37.82,2270000,37.82 +1955-05-04,37.64,37.64,37.64,37.64,2220000,37.64 +1955-05-03,37.70,37.70,37.70,37.70,2630000,37.70 +1955-05-02,38.04,38.04,38.04,38.04,2220000,38.04 +1955-04-29,37.96,37.96,37.96,37.96,2230000,37.96 +1955-04-28,37.68,37.68,37.68,37.68,2550000,37.68 +1955-04-27,38.11,38.11,38.11,38.11,2660000,38.11 +1955-04-26,38.31,38.31,38.31,38.31,2720000,38.31 +1955-04-25,38.11,38.11,38.11,38.11,2720000,38.11 +1955-04-22,38.01,38.01,38.01,38.01,2800000,38.01 +1955-04-21,38.32,38.32,38.32,38.32,2810000,38.32 +1955-04-20,38.28,38.28,38.28,38.28,3090000,38.28 +1955-04-19,38.22,38.22,38.22,38.22,2700000,38.22 +1955-04-18,38.27,38.27,38.27,38.27,3080000,38.27 +1955-04-15,37.96,37.96,37.96,37.96,3180000,37.96 +1955-04-14,37.79,37.79,37.79,37.79,2890000,37.79 +1955-04-13,37.71,37.71,37.71,37.71,2820000,37.71 +1955-04-12,37.66,37.66,37.66,37.66,2770000,37.66 +1955-04-11,37.44,37.44,37.44,37.44,2680000,37.44 +1955-04-07,37.34,37.34,37.34,37.34,2330000,37.34 +1955-04-06,37.17,37.17,37.17,37.17,2500000,37.17 +1955-04-05,36.98,36.98,36.98,36.98,2100000,36.98 +1955-04-04,36.83,36.83,36.83,36.83,2500000,36.83 +1955-04-01,36.95,36.95,36.95,36.95,2660000,36.95 +1955-03-31,36.58,36.58,36.58,36.58,2680000,36.58 +1955-03-30,36.52,36.52,36.52,36.52,3410000,36.52 +1955-03-29,36.85,36.85,36.85,36.85,2770000,36.85 +1955-03-28,36.83,36.83,36.83,36.83,2540000,36.83 +1955-03-25,36.96,36.96,36.96,36.96,2540000,36.96 +1955-03-24,36.93,36.93,36.93,36.93,3170000,36.93 +1955-03-23,36.64,36.64,36.64,36.64,2730000,36.64 +1955-03-22,36.17,36.17,36.17,36.17,1910000,36.17 +1955-03-21,35.95,35.95,35.95,35.95,2020000,35.95 +1955-03-18,36.18,36.18,36.18,36.18,2050000,36.18 +1955-03-17,36.12,36.12,36.12,36.12,2200000,36.12 +1955-03-16,35.98,35.98,35.98,35.98,2900000,35.98 +1955-03-15,35.71,35.71,35.71,35.71,3160000,35.71 +1955-03-14,34.96,34.96,34.96,34.96,4220000,34.96 +1955-03-11,35.82,35.82,35.82,35.82,3040000,35.82 +1955-03-10,36.45,36.45,36.45,36.45,2760000,36.45 +1955-03-09,36.22,36.22,36.22,36.22,3590000,36.22 +1955-03-08,36.58,36.58,36.58,36.58,3160000,36.58 +1955-03-07,37.28,37.28,37.28,37.28,2630000,37.28 +1955-03-04,37.52,37.52,37.52,37.52,2770000,37.52 +1955-03-03,37.29,37.29,37.29,37.29,3330000,37.29 +1955-03-02,37.15,37.15,37.15,37.15,3370000,37.15 +1955-03-01,36.83,36.83,36.83,36.83,2830000,36.83 +1955-02-28,36.76,36.76,36.76,36.76,2620000,36.76 +1955-02-25,36.57,36.57,36.57,36.57,2540000,36.57 +1955-02-24,36.62,36.62,36.62,36.62,2920000,36.62 +1955-02-23,36.82,36.82,36.82,36.82,3030000,36.82 +1955-02-21,36.85,36.85,36.85,36.85,3010000,36.85 +1955-02-18,36.89,36.89,36.89,36.89,3660000,36.89 +1955-02-17,36.84,36.84,36.84,36.84,3030000,36.84 +1955-02-16,36.77,36.77,36.77,36.77,3660000,36.77 +1955-02-15,36.89,36.89,36.89,36.89,3510000,36.89 +1955-02-14,36.89,36.89,36.89,36.89,2950000,36.89 +1955-02-11,37.15,37.15,37.15,37.15,3260000,37.15 +1955-02-10,37.08,37.08,37.08,37.08,3460000,37.08 +1955-02-09,36.75,36.75,36.75,36.75,3360000,36.75 +1955-02-08,36.46,36.46,36.46,36.46,3400000,36.46 +1955-02-07,36.96,36.96,36.96,36.96,3610000,36.96 +1955-02-04,36.96,36.96,36.96,36.96,3370000,36.96 +1955-02-03,36.44,36.44,36.44,36.44,2890000,36.44 +1955-02-02,36.61,36.61,36.61,36.61,3210000,36.61 +1955-02-01,36.72,36.72,36.72,36.72,3320000,36.72 +1955-01-31,36.63,36.63,36.63,36.63,3500000,36.63 +1955-01-28,36.19,36.19,36.19,36.19,3290000,36.19 +1955-01-27,35.99,35.99,35.99,35.99,3500000,35.99 +1955-01-26,35.95,35.95,35.95,35.95,3860000,35.95 +1955-01-25,35.51,35.51,35.51,35.51,3230000,35.51 +1955-01-24,35.52,35.52,35.52,35.52,2910000,35.52 +1955-01-21,35.44,35.44,35.44,35.44,2690000,35.44 +1955-01-20,35.13,35.13,35.13,35.13,2210000,35.13 +1955-01-19,34.96,34.96,34.96,34.96,2760000,34.96 +1955-01-18,34.80,34.80,34.80,34.80,3020000,34.80 +1955-01-17,34.58,34.58,34.58,34.58,3360000,34.58 +1955-01-14,35.28,35.28,35.28,35.28,2630000,35.28 +1955-01-13,35.43,35.43,35.43,35.43,3350000,35.43 +1955-01-12,35.58,35.58,35.58,35.58,3400000,35.58 +1955-01-11,35.68,35.68,35.68,35.68,3680000,35.68 +1955-01-10,35.79,35.79,35.79,35.79,4300000,35.79 +1955-01-07,35.33,35.33,35.33,35.33,4030000,35.33 +1955-01-06,35.04,35.04,35.04,35.04,5300000,35.04 +1955-01-05,35.52,35.52,35.52,35.52,4640000,35.52 +1955-01-04,36.42,36.42,36.42,36.42,4420000,36.42 +1955-01-03,36.75,36.75,36.75,36.75,4570000,36.75 +1954-12-31,35.98,35.98,35.98,35.98,3840000,35.98 +1954-12-30,35.74,35.74,35.74,35.74,3590000,35.74 +1954-12-29,35.74,35.74,35.74,35.74,4430000,35.74 +1954-12-28,35.43,35.43,35.43,35.43,3660000,35.43 +1954-12-27,35.07,35.07,35.07,35.07,2970000,35.07 +1954-12-23,35.37,35.37,35.37,35.37,3310000,35.37 +1954-12-22,35.34,35.34,35.34,35.34,3460000,35.34 +1954-12-21,35.38,35.38,35.38,35.38,3630000,35.38 +1954-12-20,35.33,35.33,35.33,35.33,3770000,35.33 +1954-12-17,35.92,35.92,35.92,35.92,3730000,35.92 +1954-12-16,34.93,34.93,34.93,34.93,3390000,34.93 +1954-12-15,34.56,34.56,34.56,34.56,2740000,34.56 +1954-12-14,34.35,34.35,34.35,34.35,2650000,34.35 +1954-12-13,34.59,34.59,34.59,34.59,2750000,34.59 +1954-12-10,34.56,34.56,34.56,34.56,3250000,34.56 +1954-12-09,34.69,34.69,34.69,34.69,3300000,34.69 +1954-12-08,34.86,34.86,34.86,34.86,4150000,34.86 +1954-12-07,34.92,34.92,34.92,34.92,3820000,34.92 +1954-12-06,34.76,34.76,34.76,34.76,3960000,34.76 +1954-12-03,34.49,34.49,34.49,34.49,3790000,34.49 +1954-12-02,34.18,34.18,34.18,34.18,3190000,34.18 +1954-12-01,33.99,33.99,33.99,33.99,3100000,33.99 +1954-11-30,34.24,34.24,34.24,34.24,3440000,34.24 +1954-11-29,34.54,34.54,34.54,34.54,3300000,34.54 +1954-11-26,34.55,34.55,34.55,34.55,3010000,34.55 +1954-11-24,34.22,34.22,34.22,34.22,3990000,34.22 +1954-11-23,34.03,34.03,34.03,34.03,3690000,34.03 +1954-11-22,33.58,33.58,33.58,33.58,3000000,33.58 +1954-11-19,33.45,33.45,33.45,33.45,3130000,33.45 +1954-11-18,33.44,33.44,33.44,33.44,3530000,33.44 +1954-11-17,33.63,33.63,33.63,33.63,3830000,33.63 +1954-11-16,33.57,33.57,33.57,33.57,3260000,33.57 +1954-11-15,33.47,33.47,33.47,33.47,3080000,33.47 +1954-11-12,33.54,33.54,33.54,33.54,3720000,33.54 +1954-11-11,33.47,33.47,33.47,33.47,2960000,33.47 +1954-11-10,33.18,33.18,33.18,33.18,2070000,33.18 +1954-11-09,33.15,33.15,33.15,33.15,3240000,33.15 +1954-11-08,33.02,33.02,33.02,33.02,3180000,33.02 +1954-11-05,32.71,32.71,32.71,32.71,2950000,32.71 +1954-11-04,32.82,32.82,32.82,32.82,3140000,32.82 +1954-11-03,32.44,32.44,32.44,32.44,2700000,32.44 +1954-11-01,31.79,31.79,31.79,31.79,1790000,31.79 +1954-10-29,31.68,31.68,31.68,31.68,1900000,31.68 +1954-10-28,31.88,31.88,31.88,31.88,2190000,31.88 +1954-10-27,32.02,32.02,32.02,32.02,2030000,32.02 +1954-10-26,31.94,31.94,31.94,31.94,2010000,31.94 +1954-10-25,31.96,31.96,31.96,31.96,2340000,31.96 +1954-10-22,32.13,32.13,32.13,32.13,2080000,32.13 +1954-10-21,32.13,32.13,32.13,32.13,2320000,32.13 +1954-10-20,32.17,32.17,32.17,32.17,2380000,32.17 +1954-10-19,31.91,31.91,31.91,31.91,1900000,31.91 +1954-10-18,31.83,31.83,31.83,31.83,1790000,31.83 +1954-10-15,31.71,31.71,31.71,31.71,2250000,31.71 +1954-10-14,31.88,31.88,31.88,31.88,2540000,31.88 +1954-10-13,32.27,32.27,32.27,32.27,2070000,32.27 +1954-10-12,32.28,32.28,32.28,32.28,1620000,32.28 +1954-10-11,32.41,32.41,32.41,32.41,2100000,32.41 +1954-10-08,32.67,32.67,32.67,32.67,2120000,32.67 +1954-10-07,32.69,32.69,32.69,32.69,1810000,32.69 +1954-10-06,32.76,32.76,32.76,32.76,2570000,32.76 +1954-10-05,32.63,32.63,32.63,32.63,2300000,32.63 +1954-10-04,32.47,32.47,32.47,32.47,2000000,32.47 +1954-10-01,32.29,32.29,32.29,32.29,1850000,32.29 +1954-09-30,32.31,32.31,32.31,32.31,1840000,32.31 +1954-09-29,32.50,32.50,32.50,32.50,1810000,32.50 +1954-09-28,32.69,32.69,32.69,32.69,1800000,32.69 +1954-09-27,32.53,32.53,32.53,32.53,2190000,32.53 +1954-09-24,32.40,32.40,32.40,32.40,2340000,32.40 +1954-09-23,32.18,32.18,32.18,32.18,2340000,32.18 +1954-09-22,32.00,32.00,32.00,32.00,2260000,32.00 +1954-09-21,31.79,31.79,31.79,31.79,1770000,31.79 +1954-09-20,31.57,31.57,31.57,31.57,2060000,31.57 +1954-09-17,31.71,31.71,31.71,31.71,2250000,31.71 +1954-09-16,31.46,31.46,31.46,31.46,1880000,31.46 +1954-09-15,31.29,31.29,31.29,31.29,2110000,31.29 +1954-09-14,31.28,31.28,31.28,31.28,2120000,31.28 +1954-09-13,31.12,31.12,31.12,31.12,2030000,31.12 +1954-09-10,30.84,30.84,30.84,30.84,1870000,30.84 +1954-09-09,30.73,30.73,30.73,30.73,1700000,30.73 +1954-09-08,30.68,30.68,30.68,30.68,1970000,30.68 +1954-09-07,30.66,30.66,30.66,30.66,1860000,30.66 +1954-09-03,30.50,30.50,30.50,30.50,1630000,30.50 +1954-09-02,30.27,30.27,30.27,30.27,1600000,30.27 +1954-09-01,30.04,30.04,30.04,30.04,1790000,30.04 +1954-08-31,29.83,29.83,29.83,29.83,2640000,29.83 +1954-08-30,30.35,30.35,30.35,30.35,1950000,30.35 +1954-08-27,30.66,30.66,30.66,30.66,1740000,30.66 +1954-08-26,30.57,30.57,30.57,30.57,2060000,30.57 +1954-08-25,30.65,30.65,30.65,30.65,2280000,30.65 +1954-08-24,30.87,30.87,30.87,30.87,2000000,30.87 +1954-08-23,31.00,31.00,31.00,31.00,2020000,31.00 +1954-08-20,31.21,31.21,31.21,31.21,2110000,31.21 +1954-08-19,31.16,31.16,31.16,31.16,2320000,31.16 +1954-08-18,31.09,31.09,31.09,31.09,2390000,31.09 +1954-08-17,31.12,31.12,31.12,31.12,2900000,31.12 +1954-08-16,31.05,31.05,31.05,31.05,2760000,31.05 +1954-08-13,30.72,30.72,30.72,30.72,2500000,30.72 +1954-08-12,30.59,30.59,30.59,30.59,2680000,30.59 +1954-08-11,30.72,30.72,30.72,30.72,3440000,30.72 +1954-08-10,30.37,30.37,30.37,30.37,2890000,30.37 +1954-08-09,30.12,30.12,30.12,30.12,2280000,30.12 +1954-08-06,30.38,30.38,30.38,30.38,3350000,30.38 +1954-08-05,30.77,30.77,30.77,30.77,3150000,30.77 +1954-08-04,30.90,30.90,30.90,30.90,3620000,30.90 +1954-08-03,30.93,30.93,30.93,30.93,2970000,30.93 +1954-08-02,30.99,30.99,30.99,30.99,2850000,30.99 +1954-07-30,30.88,30.88,30.88,30.88,2800000,30.88 +1954-07-29,30.69,30.69,30.69,30.69,2710000,30.69 +1954-07-28,30.58,30.58,30.58,30.58,2740000,30.58 +1954-07-27,30.52,30.52,30.52,30.52,2690000,30.52 +1954-07-26,30.34,30.34,30.34,30.34,2110000,30.34 +1954-07-23,30.31,30.31,30.31,30.31,2520000,30.31 +1954-07-22,30.27,30.27,30.27,30.27,2890000,30.27 +1954-07-21,30.03,30.03,30.03,30.03,2510000,30.03 +1954-07-20,29.84,29.84,29.84,29.84,2580000,29.84 +1954-07-19,29.98,29.98,29.98,29.98,2370000,29.98 +1954-07-16,30.06,30.06,30.06,30.06,2540000,30.06 +1954-07-15,30.19,30.19,30.19,30.19,3000000,30.19 +1954-07-14,30.09,30.09,30.09,30.09,2520000,30.09 +1954-07-13,30.02,30.02,30.02,30.02,2430000,30.02 +1954-07-12,30.12,30.12,30.12,30.12,2330000,30.12 +1954-07-09,30.14,30.14,30.14,30.14,2240000,30.14 +1954-07-08,29.94,29.94,29.94,29.94,2080000,29.94 +1954-07-07,29.94,29.94,29.94,29.94,2380000,29.94 +1954-07-06,29.92,29.92,29.92,29.92,2560000,29.92 +1954-07-02,29.59,29.59,29.59,29.59,1980000,29.59 +1954-07-01,29.21,29.21,29.21,29.21,1860000,29.21 +1954-06-30,29.21,29.21,29.21,29.21,1950000,29.21 +1954-06-29,29.43,29.43,29.43,29.43,2580000,29.43 +1954-06-28,29.28,29.28,29.28,29.28,1890000,29.28 +1954-06-25,29.20,29.20,29.20,29.20,2060000,29.20 +1954-06-24,29.26,29.26,29.26,29.26,2260000,29.26 +1954-06-23,29.13,29.13,29.13,29.13,2090000,29.13 +1954-06-22,29.08,29.08,29.08,29.08,2100000,29.08 +1954-06-21,29.06,29.06,29.06,29.06,1820000,29.06 +1954-06-18,29.04,29.04,29.04,29.04,1580000,29.04 +1954-06-17,28.96,28.96,28.96,28.96,1810000,28.96 +1954-06-16,29.04,29.04,29.04,29.04,2070000,29.04 +1954-06-15,28.83,28.83,28.83,28.83,1630000,28.83 +1954-06-14,28.62,28.62,28.62,28.62,1420000,28.62 +1954-06-11,28.58,28.58,28.58,28.58,1630000,28.58 +1954-06-10,28.34,28.34,28.34,28.34,1610000,28.34 +1954-06-09,28.15,28.15,28.15,28.15,2360000,28.15 +1954-06-08,28.34,28.34,28.34,28.34,2540000,28.34 +1954-06-07,28.99,28.99,28.99,28.99,1520000,28.99 +1954-06-04,29.10,29.10,29.10,29.10,1720000,29.10 +1954-06-03,29.15,29.15,29.15,29.15,1810000,29.15 +1954-06-02,29.16,29.16,29.16,29.16,1930000,29.16 +1954-06-01,29.19,29.19,29.19,29.19,1850000,29.19 +1954-05-28,29.19,29.19,29.19,29.19,1940000,29.19 +1954-05-27,29.05,29.05,29.05,29.05,2230000,29.05 +1954-05-26,29.17,29.17,29.17,29.17,2180000,29.17 +1954-05-25,28.93,28.93,28.93,28.93,2050000,28.93 +1954-05-24,29.00,29.00,29.00,29.00,2330000,29.00 +1954-05-21,28.99,28.99,28.99,28.99,2620000,28.99 +1954-05-20,28.82,28.82,28.82,28.82,2070000,28.82 +1954-05-19,28.72,28.72,28.72,28.72,2170000,28.72 +1954-05-18,28.85,28.85,28.85,28.85,2250000,28.85 +1954-05-17,28.84,28.84,28.84,28.84,2040000,28.84 +1954-05-14,28.80,28.80,28.80,28.80,1970000,28.80 +1954-05-13,28.56,28.56,28.56,28.56,2340000,28.56 +1954-05-12,28.72,28.72,28.72,28.72,2210000,28.72 +1954-05-11,28.49,28.49,28.49,28.49,1770000,28.49 +1954-05-10,28.62,28.62,28.62,28.62,1800000,28.62 +1954-05-07,28.65,28.65,28.65,28.65,2070000,28.65 +1954-05-06,28.51,28.51,28.51,28.51,1980000,28.51 +1954-05-05,28.29,28.29,28.29,28.29,2020000,28.29 +1954-05-04,28.28,28.28,28.28,28.28,1990000,28.28 +1954-05-03,28.21,28.21,28.21,28.21,1870000,28.21 +1954-04-30,28.26,28.26,28.26,28.26,2450000,28.26 +1954-04-29,28.18,28.18,28.18,28.18,2150000,28.18 +1954-04-28,27.76,27.76,27.76,27.76,2120000,27.76 +1954-04-27,27.71,27.71,27.71,27.71,1970000,27.71 +1954-04-26,27.88,27.88,27.88,27.88,2150000,27.88 +1954-04-23,27.78,27.78,27.78,27.78,1990000,27.78 +1954-04-22,27.68,27.68,27.68,27.68,1750000,27.68 +1954-04-21,27.64,27.64,27.64,27.64,1870000,27.64 +1954-04-20,27.75,27.75,27.75,27.75,1860000,27.75 +1954-04-19,27.76,27.76,27.76,27.76,2430000,27.76 +1954-04-15,27.94,27.94,27.94,27.94,2200000,27.94 +1954-04-14,27.85,27.85,27.85,27.85,2330000,27.85 +1954-04-13,27.64,27.64,27.64,27.64,2020000,27.64 +1954-04-12,27.57,27.57,27.57,27.57,1790000,27.57 +1954-04-09,27.38,27.38,27.38,27.38,2360000,27.38 +1954-04-08,27.38,27.38,27.38,27.38,2300000,27.38 +1954-04-07,27.11,27.11,27.11,27.11,1830000,27.11 +1954-04-06,27.01,27.01,27.01,27.01,2120000,27.01 +1954-04-05,27.26,27.26,27.26,27.26,1710000,27.26 +1954-04-02,27.21,27.21,27.21,27.21,1830000,27.21 +1954-04-01,27.17,27.17,27.17,27.17,2270000,27.17 +1954-03-31,26.94,26.94,26.94,26.94,2690000,26.94 +1954-03-30,26.69,26.69,26.69,26.69,2130000,26.69 +1954-03-29,26.66,26.66,26.66,26.66,1870000,26.66 +1954-03-26,26.56,26.56,26.56,26.56,1550000,26.56 +1954-03-25,26.42,26.42,26.42,26.42,1720000,26.42 +1954-03-24,26.47,26.47,26.47,26.47,1900000,26.47 +1954-03-23,26.60,26.60,26.60,26.60,2180000,26.60 +1954-03-22,26.79,26.79,26.79,26.79,1800000,26.79 +1954-03-19,26.81,26.81,26.81,26.81,1930000,26.81 +1954-03-18,26.73,26.73,26.73,26.73,2020000,26.73 +1954-03-17,26.62,26.62,26.62,26.62,1740000,26.62 +1954-03-16,26.56,26.56,26.56,26.56,1540000,26.56 +1954-03-15,26.57,26.57,26.57,26.57,1680000,26.57 +1954-03-12,26.69,26.69,26.69,26.69,1980000,26.69 +1954-03-11,26.69,26.69,26.69,26.69,2050000,26.69 +1954-03-10,26.57,26.57,26.57,26.57,1870000,26.57 +1954-03-09,26.51,26.51,26.51,26.51,1630000,26.51 +1954-03-08,26.45,26.45,26.45,26.45,1650000,26.45 +1954-03-05,26.52,26.52,26.52,26.52,2030000,26.52 +1954-03-04,26.41,26.41,26.41,26.41,1830000,26.41 +1954-03-03,26.32,26.32,26.32,26.32,2240000,26.32 +1954-03-02,26.32,26.32,26.32,26.32,1980000,26.32 +1954-03-01,26.25,26.25,26.25,26.25,2040000,26.25 +1954-02-26,26.15,26.15,26.15,26.15,1910000,26.15 +1954-02-25,25.91,25.91,25.91,25.91,1470000,25.91 +1954-02-24,25.83,25.83,25.83,25.83,1350000,25.83 +1954-02-23,25.83,25.83,25.83,25.83,1470000,25.83 +1954-02-19,25.92,25.92,25.92,25.92,1510000,25.92 +1954-02-18,25.86,25.86,25.86,25.86,1500000,25.86 +1954-02-17,25.86,25.86,25.86,25.86,1740000,25.86 +1954-02-16,25.81,25.81,25.81,25.81,1870000,25.81 +1954-02-15,26.04,26.04,26.04,26.04,2080000,26.04 +1954-02-12,26.12,26.12,26.12,26.12,1730000,26.12 +1954-02-11,26.06,26.06,26.06,26.06,1860000,26.06 +1954-02-10,26.14,26.14,26.14,26.14,1790000,26.14 +1954-02-09,26.17,26.17,26.17,26.17,1880000,26.17 +1954-02-08,26.23,26.23,26.23,26.23,2180000,26.23 +1954-02-05,26.30,26.30,26.30,26.30,2030000,26.30 +1954-02-04,26.20,26.20,26.20,26.20,2040000,26.20 +1954-02-03,26.01,26.01,26.01,26.01,1690000,26.01 +1954-02-02,25.92,25.92,25.92,25.92,1420000,25.92 +1954-02-01,25.99,25.99,25.99,25.99,1740000,25.99 +1954-01-29,26.08,26.08,26.08,26.08,1950000,26.08 +1954-01-28,26.02,26.02,26.02,26.02,1730000,26.02 +1954-01-27,26.01,26.01,26.01,26.01,2020000,26.01 +1954-01-26,26.09,26.09,26.09,26.09,2120000,26.09 +1954-01-25,25.93,25.93,25.93,25.93,1860000,25.93 +1954-01-22,25.85,25.85,25.85,25.85,1890000,25.85 +1954-01-21,25.79,25.79,25.79,25.79,1780000,25.79 +1954-01-20,25.75,25.75,25.75,25.75,1960000,25.75 +1954-01-19,25.68,25.68,25.68,25.68,1840000,25.68 +1954-01-18,25.43,25.43,25.43,25.43,1580000,25.43 +1954-01-15,25.43,25.43,25.43,25.43,2180000,25.43 +1954-01-14,25.19,25.19,25.19,25.19,1530000,25.19 +1954-01-13,25.07,25.07,25.07,25.07,1420000,25.07 +1954-01-12,24.93,24.93,24.93,24.93,1250000,24.93 +1954-01-11,24.80,24.80,24.80,24.80,1220000,24.80 +1954-01-08,24.93,24.93,24.93,24.93,1260000,24.93 +1954-01-07,25.06,25.06,25.06,25.06,1540000,25.06 +1954-01-06,25.14,25.14,25.14,25.14,1460000,25.14 +1954-01-05,25.10,25.10,25.10,25.10,1520000,25.10 +1954-01-04,24.95,24.95,24.95,24.95,1310000,24.95 +1953-12-31,24.81,24.81,24.81,24.81,2490000,24.81 +1953-12-30,24.76,24.76,24.76,24.76,2050000,24.76 +1953-12-29,24.55,24.55,24.55,24.55,2140000,24.55 +1953-12-28,24.71,24.71,24.71,24.71,1570000,24.71 +1953-12-24,24.80,24.80,24.80,24.80,1270000,24.80 +1953-12-23,24.69,24.69,24.69,24.69,1570000,24.69 +1953-12-22,24.76,24.76,24.76,24.76,1720000,24.76 +1953-12-21,24.95,24.95,24.95,24.95,1690000,24.95 +1953-12-18,24.99,24.99,24.99,24.99,1550000,24.99 +1953-12-17,24.94,24.94,24.94,24.94,1600000,24.94 +1953-12-16,24.96,24.96,24.96,24.96,1880000,24.96 +1953-12-15,24.71,24.71,24.71,24.71,1450000,24.71 +1953-12-14,24.69,24.69,24.69,24.69,1540000,24.69 +1953-12-11,24.76,24.76,24.76,24.76,1440000,24.76 +1953-12-10,24.78,24.78,24.78,24.78,1420000,24.78 +1953-12-09,24.84,24.84,24.84,24.84,1410000,24.84 +1953-12-08,24.87,24.87,24.87,24.87,1390000,24.87 +1953-12-07,24.95,24.95,24.95,24.95,1410000,24.95 +1953-12-04,24.98,24.98,24.98,24.98,1390000,24.98 +1953-12-03,24.97,24.97,24.97,24.97,1740000,24.97 +1953-12-02,24.95,24.95,24.95,24.95,1850000,24.95 +1953-12-01,24.78,24.78,24.78,24.78,1580000,24.78 +1953-11-30,24.76,24.76,24.76,24.76,1960000,24.76 +1953-11-27,24.66,24.66,24.66,24.66,1600000,24.66 +1953-11-25,24.52,24.52,24.52,24.52,1540000,24.52 +1953-11-24,24.50,24.50,24.50,24.50,1470000,24.50 +1953-11-23,24.36,24.36,24.36,24.36,1410000,24.36 +1953-11-20,24.44,24.44,24.44,24.44,1300000,24.44 +1953-11-19,24.40,24.40,24.40,24.40,1420000,24.40 +1953-11-18,24.29,24.29,24.29,24.29,1250000,24.29 +1953-11-17,24.25,24.25,24.25,24.25,1250000,24.25 +1953-11-16,24.38,24.38,24.38,24.38,1490000,24.38 +1953-11-13,24.54,24.54,24.54,24.54,1540000,24.54 +1953-11-12,24.46,24.46,24.46,24.46,1390000,24.46 +1953-11-10,24.37,24.37,24.37,24.37,1340000,24.37 +1953-11-09,24.66,24.66,24.66,24.66,1440000,24.66 +1953-11-06,24.61,24.61,24.61,24.61,1700000,24.61 +1953-11-05,24.64,24.64,24.64,24.64,1720000,24.64 +1953-11-04,24.51,24.51,24.51,24.51,1480000,24.51 +1953-11-02,24.66,24.66,24.66,24.66,1340000,24.66 +1953-10-30,24.54,24.54,24.54,24.54,1400000,24.54 +1953-10-29,24.58,24.58,24.58,24.58,1610000,24.58 +1953-10-28,24.29,24.29,24.29,24.29,1260000,24.29 +1953-10-27,24.26,24.26,24.26,24.26,1170000,24.26 +1953-10-26,24.31,24.31,24.31,24.31,1340000,24.31 +1953-10-23,24.35,24.35,24.35,24.35,1330000,24.35 +1953-10-22,24.30,24.30,24.30,24.30,1330000,24.30 +1953-10-21,24.19,24.19,24.19,24.19,1320000,24.19 +1953-10-20,24.17,24.17,24.17,24.17,1280000,24.17 +1953-10-19,24.16,24.16,24.16,24.16,1190000,24.16 +1953-10-16,24.14,24.14,24.14,24.14,1620000,24.14 +1953-10-15,23.95,23.95,23.95,23.95,1710000,23.95 +1953-10-14,23.68,23.68,23.68,23.68,1290000,23.68 +1953-10-13,23.57,23.57,23.57,23.57,1130000,23.57 +1953-10-09,23.66,23.66,23.66,23.66,900000,23.66 +1953-10-08,23.62,23.62,23.62,23.62,960000,23.62 +1953-10-07,23.58,23.58,23.58,23.58,1010000,23.58 +1953-10-06,23.39,23.39,23.39,23.39,1100000,23.39 +1953-10-05,23.48,23.48,23.48,23.48,930000,23.48 +1953-10-02,23.59,23.59,23.59,23.59,890000,23.59 +1953-10-01,23.49,23.49,23.49,23.49,940000,23.49 +1953-09-30,23.35,23.35,23.35,23.35,940000,23.35 +1953-09-29,23.49,23.49,23.49,23.49,1170000,23.49 +1953-09-28,23.45,23.45,23.45,23.45,1150000,23.45 +1953-09-25,23.30,23.30,23.30,23.30,910000,23.30 +1953-09-24,23.24,23.24,23.24,23.24,1020000,23.24 +1953-09-23,23.23,23.23,23.23,23.23,1240000,23.23 +1953-09-22,23.20,23.20,23.20,23.20,1300000,23.20 +1953-09-21,22.88,22.88,22.88,22.88,1070000,22.88 +1953-09-18,22.95,22.95,22.95,22.95,1190000,22.95 +1953-09-17,23.07,23.07,23.07,23.07,1290000,23.07 +1953-09-16,23.01,23.01,23.01,23.01,1570000,23.01 +1953-09-15,22.90,22.90,22.90,22.90,2850000,22.90 +1953-09-14,22.71,22.71,22.71,22.71,2550000,22.71 +1953-09-11,23.14,23.14,23.14,23.14,1930000,23.14 +1953-09-10,23.41,23.41,23.41,23.41,1010000,23.41 +1953-09-09,23.65,23.65,23.65,23.65,860000,23.65 +1953-09-08,23.61,23.61,23.61,23.61,740000,23.61 +1953-09-04,23.57,23.57,23.57,23.57,770000,23.57 +1953-09-03,23.51,23.51,23.51,23.51,900000,23.51 +1953-09-02,23.56,23.56,23.56,23.56,1110000,23.56 +1953-09-01,23.42,23.42,23.42,23.42,1580000,23.42 +1953-08-31,23.32,23.32,23.32,23.32,2190000,23.32 +1953-08-28,23.74,23.74,23.74,23.74,1060000,23.74 +1953-08-27,23.79,23.79,23.79,23.79,1290000,23.79 +1953-08-26,23.86,23.86,23.86,23.86,1060000,23.86 +1953-08-25,23.93,23.93,23.93,23.93,1470000,23.93 +1953-08-24,24.09,24.09,24.09,24.09,1320000,24.09 +1953-08-21,24.35,24.35,24.35,24.35,850000,24.35 +1953-08-20,24.29,24.29,24.29,24.29,860000,24.29 +1953-08-19,24.31,24.31,24.31,24.31,1400000,24.31 +1953-08-18,24.46,24.46,24.46,24.46,1030000,24.46 +1953-08-17,24.56,24.56,24.56,24.56,910000,24.56 +1953-08-14,24.62,24.62,24.62,24.62,1000000,24.62 +1953-08-13,24.73,24.73,24.73,24.73,1040000,24.73 +1953-08-12,24.78,24.78,24.78,24.78,990000,24.78 +1953-08-11,24.72,24.72,24.72,24.72,940000,24.72 +1953-08-10,24.75,24.75,24.75,24.75,1090000,24.75 +1953-08-07,24.78,24.78,24.78,24.78,950000,24.78 +1953-08-06,24.80,24.80,24.80,24.80,1200000,24.80 +1953-08-05,24.68,24.68,24.68,24.68,1080000,24.68 +1953-08-04,24.78,24.78,24.78,24.78,1000000,24.78 +1953-08-03,24.84,24.84,24.84,24.84,1160000,24.84 +1953-07-31,24.75,24.75,24.75,24.75,1320000,24.75 +1953-07-30,24.49,24.49,24.49,24.49,1200000,24.49 +1953-07-29,24.26,24.26,24.26,24.26,1000000,24.26 +1953-07-28,24.11,24.11,24.11,24.11,1080000,24.11 +1953-07-27,24.07,24.07,24.07,24.07,1210000,24.07 +1953-07-24,24.23,24.23,24.23,24.23,890000,24.23 +1953-07-23,24.23,24.23,24.23,24.23,1000000,24.23 +1953-07-22,24.19,24.19,24.19,24.19,900000,24.19 +1953-07-21,24.16,24.16,24.16,24.16,850000,24.16 +1953-07-20,24.22,24.22,24.22,24.22,830000,24.22 +1953-07-17,24.35,24.35,24.35,24.35,840000,24.35 +1953-07-16,24.18,24.18,24.18,24.18,790000,24.18 +1953-07-15,24.15,24.15,24.15,24.15,840000,24.15 +1953-07-14,24.08,24.08,24.08,24.08,1030000,24.08 +1953-07-13,24.17,24.17,24.17,24.17,1120000,24.17 +1953-07-10,24.41,24.41,24.41,24.41,860000,24.41 +1953-07-09,24.43,24.43,24.43,24.43,910000,24.43 +1953-07-08,24.50,24.50,24.50,24.50,950000,24.50 +1953-07-07,24.51,24.51,24.51,24.51,1030000,24.51 +1953-07-06,24.38,24.38,24.38,24.38,820000,24.38 +1953-07-03,24.36,24.36,24.36,24.36,830000,24.36 +1953-07-02,24.31,24.31,24.31,24.31,1030000,24.31 +1953-07-01,24.24,24.24,24.24,24.24,910000,24.24 +1953-06-30,24.14,24.14,24.14,24.14,820000,24.14 +1953-06-29,24.14,24.14,24.14,24.14,800000,24.14 +1953-06-26,24.21,24.21,24.21,24.21,830000,24.21 +1953-06-25,24.19,24.19,24.19,24.19,1160000,24.19 +1953-06-24,24.09,24.09,24.09,24.09,1030000,24.09 +1953-06-23,24.12,24.12,24.12,24.12,1050000,24.12 +1953-06-22,23.96,23.96,23.96,23.96,1030000,23.96 +1953-06-19,23.84,23.84,23.84,23.84,890000,23.84 +1953-06-18,23.84,23.84,23.84,23.84,1010000,23.84 +1953-06-17,23.85,23.85,23.85,23.85,1150000,23.85 +1953-06-16,23.55,23.55,23.55,23.55,1370000,23.55 +1953-06-15,23.62,23.62,23.62,23.62,1090000,23.62 +1953-06-12,23.82,23.82,23.82,23.82,920000,23.82 +1953-06-11,23.75,23.75,23.75,23.75,1220000,23.75 +1953-06-10,23.54,23.54,23.54,23.54,1960000,23.54 +1953-06-09,23.60,23.60,23.60,23.60,2200000,23.60 +1953-06-08,24.01,24.01,24.01,24.01,1000000,24.01 +1953-06-05,24.09,24.09,24.09,24.09,1160000,24.09 +1953-06-04,24.03,24.03,24.03,24.03,1400000,24.03 +1953-06-03,24.18,24.18,24.18,24.18,1050000,24.18 +1953-06-02,24.22,24.22,24.22,24.22,1450000,24.22 +1953-06-01,24.15,24.15,24.15,24.15,1490000,24.15 +1953-05-29,24.54,24.54,24.54,24.54,920000,24.54 +1953-05-28,24.46,24.46,24.46,24.46,1240000,24.46 +1953-05-27,24.64,24.64,24.64,24.64,1330000,24.64 +1953-05-26,24.87,24.87,24.87,24.87,1160000,24.87 +1953-05-25,24.99,24.99,24.99,24.99,1180000,24.99 +1953-05-22,25.03,25.03,25.03,25.03,1350000,25.03 +1953-05-21,25.06,25.06,25.06,25.06,1590000,25.06 +1953-05-20,24.93,24.93,24.93,24.93,1690000,24.93 +1953-05-19,24.70,24.70,24.70,24.70,1120000,24.70 +1953-05-18,24.75,24.75,24.75,24.75,1080000,24.75 +1953-05-15,24.84,24.84,24.84,24.84,1200000,24.84 +1953-05-14,24.85,24.85,24.85,24.85,1210000,24.85 +1953-05-13,24.71,24.71,24.71,24.71,1120000,24.71 +1953-05-12,24.74,24.74,24.74,24.74,1080000,24.74 +1953-05-11,24.91,24.91,24.91,24.91,1010000,24.91 +1953-05-08,24.90,24.90,24.90,24.90,1220000,24.90 +1953-05-07,24.90,24.90,24.90,24.90,1110000,24.90 +1953-05-06,25.00,25.00,25.00,25.00,1110000,25.00 +1953-05-05,25.03,25.03,25.03,25.03,1290000,25.03 +1953-05-04,25.00,25.00,25.00,25.00,1520000,25.00 +1953-05-01,24.73,24.73,24.73,24.73,1200000,24.73 +1953-04-30,24.62,24.62,24.62,24.62,1140000,24.62 +1953-04-29,24.68,24.68,24.68,24.68,1310000,24.68 +1953-04-28,24.52,24.52,24.52,24.52,1330000,24.52 +1953-04-27,24.34,24.34,24.34,24.34,1400000,24.34 +1953-04-24,24.20,24.20,24.20,24.20,1780000,24.20 +1953-04-23,24.19,24.19,24.19,24.19,1920000,24.19 +1953-04-22,24.46,24.46,24.46,24.46,1390000,24.46 +1953-04-21,24.67,24.67,24.67,24.67,1250000,24.67 +1953-04-20,24.73,24.73,24.73,24.73,1520000,24.73 +1953-04-17,24.62,24.62,24.62,24.62,1430000,24.62 +1953-04-16,24.91,24.91,24.91,24.91,1310000,24.91 +1953-04-15,24.96,24.96,24.96,24.96,1580000,24.96 +1953-04-14,24.86,24.86,24.86,24.86,1480000,24.86 +1953-04-13,24.77,24.77,24.77,24.77,1280000,24.77 +1953-04-10,24.82,24.82,24.82,24.82,1360000,24.82 +1953-04-09,24.88,24.88,24.88,24.88,1520000,24.88 +1953-04-08,24.93,24.93,24.93,24.93,1860000,24.93 +1953-04-07,24.71,24.71,24.71,24.71,2500000,24.71 +1953-04-06,24.61,24.61,24.61,24.61,3050000,24.61 +1953-04-02,25.23,25.23,25.23,25.23,1720000,25.23 +1953-04-01,25.25,25.25,25.25,25.25,2240000,25.25 +1953-03-31,25.29,25.29,25.29,25.29,3120000,25.29 +1953-03-30,25.61,25.61,25.61,25.61,2740000,25.61 +1953-03-27,25.99,25.99,25.99,25.99,1640000,25.99 +1953-03-26,25.95,25.95,25.95,25.95,2000000,25.95 +1953-03-25,26.10,26.10,26.10,26.10,2320000,26.10 +1953-03-24,26.17,26.17,26.17,26.17,1970000,26.17 +1953-03-23,26.02,26.02,26.02,26.02,1750000,26.02 +1953-03-20,26.18,26.18,26.18,26.18,1730000,26.18 +1953-03-19,26.22,26.22,26.22,26.22,1840000,26.22 +1953-03-18,26.24,26.24,26.24,26.24,2110000,26.24 +1953-03-17,26.33,26.33,26.33,26.33,2110000,26.33 +1953-03-16,26.22,26.22,26.22,26.22,1770000,26.22 +1953-03-13,26.18,26.18,26.18,26.18,1760000,26.18 +1953-03-12,26.13,26.13,26.13,26.13,1780000,26.13 +1953-03-11,26.12,26.12,26.12,26.12,1890000,26.12 +1953-03-10,25.91,25.91,25.91,25.91,1530000,25.91 +1953-03-09,25.83,25.83,25.83,25.83,1600000,25.83 +1953-03-06,25.84,25.84,25.84,25.84,1690000,25.84 +1953-03-05,25.79,25.79,25.79,25.79,1540000,25.79 +1953-03-04,25.78,25.78,25.78,25.78,2010000,25.78 +1953-03-03,26.00,26.00,26.00,26.00,1850000,26.00 +1953-03-02,25.93,25.93,25.93,25.93,1760000,25.93 +1953-02-27,25.90,25.90,25.90,25.90,1990000,25.90 +1953-02-26,25.95,25.95,25.95,25.95,2290000,25.95 +1953-02-25,25.91,25.91,25.91,25.91,2360000,25.91 +1953-02-24,25.75,25.75,25.75,25.75,2300000,25.75 +1953-02-20,25.63,25.63,25.63,25.63,1400000,25.63 +1953-02-19,25.57,25.57,25.57,25.57,1390000,25.57 +1953-02-18,25.48,25.48,25.48,25.48,1220000,25.48 +1953-02-17,25.50,25.50,25.50,25.50,1290000,25.50 +1953-02-16,25.65,25.65,25.65,25.65,1330000,25.65 +1953-02-13,25.74,25.74,25.74,25.74,1350000,25.74 +1953-02-11,25.64,25.64,25.64,25.64,1240000,25.64 +1953-02-10,25.62,25.62,25.62,25.62,1350000,25.62 +1953-02-09,25.69,25.69,25.69,25.69,1780000,25.69 +1953-02-06,26.51,26.51,26.51,26.51,1870000,26.51 +1953-02-05,26.15,26.15,26.15,26.15,1900000,26.15 +1953-02-04,26.42,26.42,26.42,26.42,1660000,26.42 +1953-02-03,26.54,26.54,26.54,26.54,1560000,26.54 +1953-02-02,26.51,26.51,26.51,26.51,1890000,26.51 +1953-01-30,26.38,26.38,26.38,26.38,1760000,26.38 +1953-01-29,26.20,26.20,26.20,26.20,1830000,26.20 +1953-01-28,26.13,26.13,26.13,26.13,1640000,26.13 +1953-01-27,26.05,26.05,26.05,26.05,1550000,26.05 +1953-01-26,26.02,26.02,26.02,26.02,1420000,26.02 +1953-01-23,26.07,26.07,26.07,26.07,1340000,26.07 +1953-01-22,26.12,26.12,26.12,26.12,1380000,26.12 +1953-01-21,26.09,26.09,26.09,26.09,1300000,26.09 +1953-01-20,26.14,26.14,26.14,26.14,1490000,26.14 +1953-01-19,26.01,26.01,26.01,26.01,1360000,26.01 +1953-01-16,26.02,26.02,26.02,26.02,1710000,26.02 +1953-01-15,26.13,26.13,26.13,26.13,1450000,26.13 +1953-01-14,26.08,26.08,26.08,26.08,1370000,26.08 +1953-01-13,26.02,26.02,26.02,26.02,1680000,26.02 +1953-01-12,25.86,25.86,25.86,25.86,1500000,25.86 +1953-01-09,26.08,26.08,26.08,26.08,2080000,26.08 +1953-01-08,26.33,26.33,26.33,26.33,1780000,26.33 +1953-01-07,26.37,26.37,26.37,26.37,1760000,26.37 +1953-01-06,26.48,26.48,26.48,26.48,2080000,26.48 +1953-01-05,26.66,26.66,26.66,26.66,2130000,26.66 +1953-01-02,26.54,26.54,26.54,26.54,1450000,26.54 +1952-12-31,26.57,26.57,26.57,26.57,2050000,26.57 +1952-12-30,26.59,26.59,26.59,26.59,2070000,26.59 +1952-12-29,26.40,26.40,26.40,26.40,1820000,26.40 +1952-12-26,26.25,26.25,26.25,26.25,1290000,26.25 +1952-12-24,26.21,26.21,26.21,26.21,1510000,26.21 +1952-12-23,26.19,26.19,26.19,26.19,2100000,26.19 +1952-12-22,26.30,26.30,26.30,26.30,2100000,26.30 +1952-12-19,26.15,26.15,26.15,26.15,2050000,26.15 +1952-12-18,26.03,26.03,26.03,26.03,1860000,26.03 +1952-12-17,26.04,26.04,26.04,26.04,1700000,26.04 +1952-12-16,26.07,26.07,26.07,26.07,1980000,26.07 +1952-12-15,26.04,26.04,26.04,26.04,1940000,26.04 +1952-12-12,26.04,26.04,26.04,26.04,2030000,26.04 +1952-12-11,25.96,25.96,25.96,25.96,1790000,25.96 +1952-12-10,25.98,25.98,25.98,25.98,1880000,25.98 +1952-12-09,25.93,25.93,25.93,25.93,2120000,25.93 +1952-12-08,25.76,25.76,25.76,25.76,1790000,25.76 +1952-12-05,25.62,25.62,25.62,25.62,1510000,25.62 +1952-12-04,25.61,25.61,25.61,25.61,1570000,25.61 +1952-12-03,25.71,25.71,25.71,25.71,1610000,25.71 +1952-12-02,25.74,25.74,25.74,25.74,1610000,25.74 +1952-12-01,25.68,25.68,25.68,25.68,2100000,25.68 +1952-11-28,25.66,25.66,25.66,25.66,2160000,25.66 +1952-11-26,25.52,25.52,25.52,25.52,1920000,25.52 +1952-11-25,25.36,25.36,25.36,25.36,1930000,25.36 +1952-11-24,25.42,25.42,25.42,25.42,2100000,25.42 +1952-11-21,25.27,25.27,25.27,25.27,1760000,25.27 +1952-11-20,25.28,25.28,25.28,25.28,1740000,25.28 +1952-11-19,25.33,25.33,25.33,25.33,2350000,25.33 +1952-11-18,25.16,25.16,25.16,25.16,2250000,25.16 +1952-11-17,24.80,24.80,24.80,24.80,1490000,24.80 +1952-11-14,24.75,24.75,24.75,24.75,1700000,24.75 +1952-11-13,24.71,24.71,24.71,24.71,1330000,24.71 +1952-11-12,24.65,24.65,24.65,24.65,1490000,24.65 +1952-11-10,24.77,24.77,24.77,24.77,1360000,24.77 +1952-11-07,24.78,24.78,24.78,24.78,1540000,24.78 +1952-11-06,24.77,24.77,24.77,24.77,1390000,24.77 +1952-11-05,24.67,24.67,24.67,24.67,2030000,24.67 +1952-11-03,24.60,24.60,24.60,24.60,1670000,24.60 +1952-10-31,24.52,24.52,24.52,24.52,1760000,24.52 +1952-10-30,24.15,24.15,24.15,24.15,1090000,24.15 +1952-10-29,24.15,24.15,24.15,24.15,1020000,24.15 +1952-10-28,24.13,24.13,24.13,24.13,1080000,24.13 +1952-10-27,24.09,24.09,24.09,24.09,1000000,24.09 +1952-10-24,24.03,24.03,24.03,24.03,1060000,24.03 +1952-10-23,23.87,23.87,23.87,23.87,1260000,23.87 +1952-10-22,23.80,23.80,23.80,23.80,1160000,23.80 +1952-10-21,24.07,24.07,24.07,24.07,990000,24.07 +1952-10-20,24.13,24.13,24.13,24.13,1050000,24.13 +1952-10-17,24.20,24.20,24.20,24.20,1360000,24.20 +1952-10-16,23.91,23.91,23.91,23.91,1730000,23.91 +1952-10-15,24.06,24.06,24.06,24.06,1730000,24.06 +1952-10-14,24.48,24.48,24.48,24.48,1130000,24.48 +1952-10-10,24.55,24.55,24.55,24.55,1070000,24.55 +1952-10-09,24.57,24.57,24.57,24.57,1090000,24.57 +1952-10-08,24.58,24.58,24.58,24.58,1260000,24.58 +1952-10-07,24.40,24.40,24.40,24.40,950000,24.40 +1952-10-06,24.44,24.44,24.44,24.44,1070000,24.44 +1952-10-03,24.50,24.50,24.50,24.50,980000,24.50 +1952-10-02,24.52,24.52,24.52,24.52,1040000,24.52 +1952-10-01,24.48,24.48,24.48,24.48,1060000,24.48 +1952-09-30,24.54,24.54,24.54,24.54,1120000,24.54 +1952-09-29,24.68,24.68,24.68,24.68,970000,24.68 +1952-09-26,24.73,24.73,24.73,24.73,1180000,24.73 +1952-09-25,24.81,24.81,24.81,24.81,1210000,24.81 +1952-09-24,24.79,24.79,24.79,24.79,1390000,24.79 +1952-09-23,24.70,24.70,24.70,24.70,1240000,24.70 +1952-09-22,24.59,24.59,24.59,24.59,1160000,24.59 +1952-09-19,24.57,24.57,24.57,24.57,1150000,24.57 +1952-09-18,24.51,24.51,24.51,24.51,1030000,24.51 +1952-09-17,24.58,24.58,24.58,24.58,1000000,24.58 +1952-09-16,24.53,24.53,24.53,24.53,1140000,24.53 +1952-09-15,24.45,24.45,24.45,24.45,1100000,24.45 +1952-09-12,24.71,24.71,24.71,24.71,1040000,24.71 +1952-09-11,24.72,24.72,24.72,24.72,970000,24.72 +1952-09-10,24.69,24.69,24.69,24.69,1590000,24.69 +1952-09-09,24.86,24.86,24.86,24.86,1310000,24.86 +1952-09-08,25.11,25.11,25.11,25.11,1170000,25.11 +1952-09-05,25.21,25.21,25.21,25.21,1040000,25.21 +1952-09-04,25.24,25.24,25.24,25.24,1120000,25.24 +1952-09-03,25.25,25.25,25.25,25.25,1200000,25.25 +1952-09-02,25.15,25.15,25.15,25.15,970000,25.15 +1952-08-29,25.03,25.03,25.03,25.03,890000,25.03 +1952-08-28,24.97,24.97,24.97,24.97,980000,24.97 +1952-08-27,24.94,24.94,24.94,24.94,930000,24.94 +1952-08-26,24.83,24.83,24.83,24.83,890000,24.83 +1952-08-25,24.87,24.87,24.87,24.87,840000,24.87 +1952-08-22,24.99,24.99,24.99,24.99,910000,24.99 +1952-08-21,24.98,24.98,24.98,24.98,800000,24.98 +1952-08-20,24.95,24.95,24.95,24.95,960000,24.95 +1952-08-19,24.89,24.89,24.89,24.89,980000,24.89 +1952-08-18,24.94,24.94,24.94,24.94,1090000,24.94 +1952-08-15,25.20,25.20,25.20,25.20,890000,25.20 +1952-08-14,25.28,25.28,25.28,25.28,930000,25.28 +1952-08-13,25.28,25.28,25.28,25.28,990000,25.28 +1952-08-12,25.31,25.31,25.31,25.31,1110000,25.31 +1952-08-11,25.52,25.52,25.52,25.52,1160000,25.52 +1952-08-08,25.55,25.55,25.55,25.55,1170000,25.55 +1952-08-07,25.52,25.52,25.52,25.52,1180000,25.52 +1952-08-06,25.44,25.44,25.44,25.44,1140000,25.44 +1952-08-05,25.46,25.46,25.46,25.46,1050000,25.46 +1952-08-04,25.43,25.43,25.43,25.43,950000,25.43 +1952-08-01,25.45,25.45,25.45,25.45,1050000,25.45 +1952-07-31,25.40,25.40,25.40,25.40,1230000,25.40 +1952-07-30,25.37,25.37,25.37,25.37,1240000,25.37 +1952-07-29,25.26,25.26,25.26,25.26,1010000,25.26 +1952-07-28,25.20,25.20,25.20,25.20,1030000,25.20 +1952-07-25,25.16,25.16,25.16,25.16,1130000,25.16 +1952-07-24,25.24,25.24,25.24,25.24,1270000,25.24 +1952-07-23,25.11,25.11,25.11,25.11,1020000,25.11 +1952-07-22,25.00,25.00,25.00,25.00,910000,25.00 +1952-07-21,24.95,24.95,24.95,24.95,780000,24.95 +1952-07-18,24.85,24.85,24.85,24.85,1020000,24.85 +1952-07-17,25.05,25.05,25.05,25.05,1010000,25.05 +1952-07-16,25.16,25.16,25.16,25.16,1120000,25.16 +1952-07-15,25.16,25.16,25.16,25.16,1220000,25.16 +1952-07-14,25.03,25.03,25.03,25.03,1090000,25.03 +1952-07-11,24.98,24.98,24.98,24.98,1040000,24.98 +1952-07-10,24.81,24.81,24.81,24.81,1010000,24.81 +1952-07-09,24.86,24.86,24.86,24.86,1120000,24.86 +1952-07-08,24.96,24.96,24.96,24.96,850000,24.96 +1952-07-07,24.97,24.97,24.97,24.97,1080000,24.97 +1952-07-03,25.05,25.05,25.05,25.05,1150000,25.05 +1952-07-02,25.06,25.06,25.06,25.06,1320000,25.06 +1952-07-01,25.12,25.12,25.12,25.12,1450000,25.12 +1952-06-30,24.96,24.96,24.96,24.96,1380000,24.96 +1952-06-27,24.83,24.83,24.83,24.83,1210000,24.83 +1952-06-26,24.75,24.75,24.75,24.75,1190000,24.75 +1952-06-25,24.66,24.66,24.66,24.66,1230000,24.66 +1952-06-24,24.60,24.60,24.60,24.60,1200000,24.60 +1952-06-23,24.56,24.56,24.56,24.56,1200000,24.56 +1952-06-20,24.59,24.59,24.59,24.59,1190000,24.59 +1952-06-19,24.51,24.51,24.51,24.51,1320000,24.51 +1952-06-18,24.43,24.43,24.43,24.43,1270000,24.43 +1952-06-17,24.33,24.33,24.33,24.33,920000,24.33 +1952-06-16,24.30,24.30,24.30,24.30,980000,24.30 +1952-06-13,24.37,24.37,24.37,24.37,1130000,24.37 +1952-06-12,24.31,24.31,24.31,24.31,1370000,24.31 +1952-06-11,24.31,24.31,24.31,24.31,1190000,24.31 +1952-06-10,24.23,24.23,24.23,24.23,1220000,24.23 +1952-06-09,24.37,24.37,24.37,24.37,1270000,24.37 +1952-06-06,24.26,24.26,24.26,24.26,1520000,24.26 +1952-06-05,24.10,24.10,24.10,24.10,1410000,24.10 +1952-06-04,23.95,23.95,23.95,23.95,1200000,23.95 +1952-06-03,23.78,23.78,23.78,23.78,940000,23.78 +1952-06-02,23.80,23.80,23.80,23.80,1190000,23.80 +1952-05-29,23.86,23.86,23.86,23.86,1100000,23.86 +1952-05-28,23.84,23.84,23.84,23.84,1130000,23.84 +1952-05-27,23.88,23.88,23.88,23.88,1040000,23.88 +1952-05-26,23.94,23.94,23.94,23.94,940000,23.94 +1952-05-23,23.89,23.89,23.89,23.89,1150000,23.89 +1952-05-22,23.91,23.91,23.91,23.91,1360000,23.91 +1952-05-21,23.78,23.78,23.78,23.78,1210000,23.78 +1952-05-20,23.74,23.74,23.74,23.74,1150000,23.74 +1952-05-19,23.61,23.61,23.61,23.61,780000,23.61 +1952-05-16,23.56,23.56,23.56,23.56,910000,23.56 +1952-05-15,23.60,23.60,23.60,23.60,1050000,23.60 +1952-05-14,23.68,23.68,23.68,23.68,950000,23.68 +1952-05-13,23.78,23.78,23.78,23.78,890000,23.78 +1952-05-12,23.75,23.75,23.75,23.75,800000,23.75 +1952-05-09,23.84,23.84,23.84,23.84,960000,23.84 +1952-05-08,23.86,23.86,23.86,23.86,1230000,23.86 +1952-05-07,23.81,23.81,23.81,23.81,1120000,23.81 +1952-05-06,23.67,23.67,23.67,23.67,1120000,23.67 +1952-05-05,23.66,23.66,23.66,23.66,860000,23.66 +1952-05-02,23.56,23.56,23.56,23.56,1300000,23.56 +1952-05-01,23.17,23.17,23.17,23.17,1400000,23.17 +1952-04-30,23.32,23.32,23.32,23.32,1000000,23.32 +1952-04-29,23.49,23.49,23.49,23.49,1170000,23.49 +1952-04-28,23.55,23.55,23.55,23.55,980000,23.55 +1952-04-25,23.54,23.54,23.54,23.54,1240000,23.54 +1952-04-24,23.43,23.43,23.43,23.43,1580000,23.43 +1952-04-23,23.48,23.48,23.48,23.48,1090000,23.48 +1952-04-22,23.58,23.58,23.58,23.58,1240000,23.58 +1952-04-21,23.69,23.69,23.69,23.69,1110000,23.69 +1952-04-18,23.50,23.50,23.50,23.50,1240000,23.50 +1952-04-17,23.41,23.41,23.41,23.41,1620000,23.41 +1952-04-16,23.58,23.58,23.58,23.58,1400000,23.58 +1952-04-15,23.65,23.65,23.65,23.65,1720000,23.65 +1952-04-14,23.95,23.95,23.95,23.95,1790000,23.95 +1952-04-10,24.11,24.11,24.11,24.11,1130000,24.11 +1952-04-09,23.94,23.94,23.94,23.94,980000,23.94 +1952-04-08,23.91,23.91,23.91,23.91,1090000,23.91 +1952-04-07,23.80,23.80,23.80,23.80,1230000,23.80 +1952-04-04,24.02,24.02,24.02,24.02,1190000,24.02 +1952-04-03,24.12,24.12,24.12,24.12,1280000,24.12 +1952-04-02,24.12,24.12,24.12,24.12,1260000,24.12 +1952-04-01,24.18,24.18,24.18,24.18,1720000,24.18 +1952-03-31,24.37,24.37,24.37,24.37,1680000,24.37 +1952-03-28,24.18,24.18,24.18,24.18,1560000,24.18 +1952-03-27,23.99,23.99,23.99,23.99,1370000,23.99 +1952-03-26,23.78,23.78,23.78,23.78,1030000,23.78 +1952-03-25,23.79,23.79,23.79,23.79,1060000,23.79 +1952-03-24,23.93,23.93,23.93,23.93,1040000,23.93 +1952-03-21,23.93,23.93,23.93,23.93,1290000,23.93 +1952-03-20,23.89,23.89,23.89,23.89,1240000,23.89 +1952-03-19,23.82,23.82,23.82,23.82,1090000,23.82 +1952-03-18,23.87,23.87,23.87,23.87,1170000,23.87 +1952-03-17,23.92,23.92,23.92,23.92,1150000,23.92 +1952-03-14,23.75,23.75,23.75,23.75,1350000,23.75 +1952-03-13,23.75,23.75,23.75,23.75,1270000,23.75 +1952-03-12,23.73,23.73,23.73,23.73,1310000,23.73 +1952-03-11,23.62,23.62,23.62,23.62,1210000,23.62 +1952-03-10,23.60,23.60,23.60,23.60,1170000,23.60 +1952-03-07,23.72,23.72,23.72,23.72,1410000,23.72 +1952-03-06,23.69,23.69,23.69,23.69,1210000,23.69 +1952-03-05,23.71,23.71,23.71,23.71,1380000,23.71 +1952-03-04,23.68,23.68,23.68,23.68,1570000,23.68 +1952-03-03,23.29,23.29,23.29,23.29,1020000,23.29 +1952-02-29,23.26,23.26,23.26,23.26,1000000,23.26 +1952-02-28,23.29,23.29,23.29,23.29,1150000,23.29 +1952-02-27,23.18,23.18,23.18,23.18,1260000,23.18 +1952-02-26,23.15,23.15,23.15,23.15,1080000,23.15 +1952-02-25,23.23,23.23,23.23,23.23,1200000,23.23 +1952-02-21,23.16,23.16,23.16,23.16,1360000,23.16 +1952-02-20,23.09,23.09,23.09,23.09,1970000,23.09 +1952-02-19,23.36,23.36,23.36,23.36,1630000,23.36 +1952-02-18,23.74,23.74,23.74,23.74,1140000,23.74 +1952-02-15,23.86,23.86,23.86,23.86,1200000,23.86 +1952-02-14,23.87,23.87,23.87,23.87,1340000,23.87 +1952-02-13,23.92,23.92,23.92,23.92,1300000,23.92 +1952-02-11,24.11,24.11,24.11,24.11,1140000,24.11 +1952-02-08,24.24,24.24,24.24,24.24,1350000,24.24 +1952-02-07,24.11,24.11,24.11,24.11,1170000,24.11 +1952-02-06,24.18,24.18,24.18,24.18,1310000,24.18 +1952-02-05,24.11,24.11,24.11,24.11,1590000,24.11 +1952-02-04,24.12,24.12,24.12,24.12,1640000,24.12 +1952-02-01,24.30,24.30,24.30,24.30,1350000,24.30 +1952-01-31,24.14,24.14,24.14,24.14,1810000,24.14 +1952-01-30,24.23,24.23,24.23,24.23,1880000,24.23 +1952-01-29,24.57,24.57,24.57,24.57,1730000,24.57 +1952-01-28,24.61,24.61,24.61,24.61,1590000,24.61 +1952-01-25,24.55,24.55,24.55,24.55,1650000,24.55 +1952-01-24,24.56,24.56,24.56,24.56,1570000,24.56 +1952-01-23,24.54,24.54,24.54,24.54,1680000,24.54 +1952-01-22,24.66,24.66,24.66,24.66,1920000,24.66 +1952-01-21,24.46,24.46,24.46,24.46,1730000,24.46 +1952-01-18,24.25,24.25,24.25,24.25,1740000,24.25 +1952-01-17,24.20,24.20,24.20,24.20,1590000,24.20 +1952-01-16,24.09,24.09,24.09,24.09,1430000,24.09 +1952-01-15,24.06,24.06,24.06,24.06,1340000,24.06 +1952-01-14,24.16,24.16,24.16,24.16,1510000,24.16 +1952-01-11,23.98,23.98,23.98,23.98,1760000,23.98 +1952-01-10,23.86,23.86,23.86,23.86,1520000,23.86 +1952-01-09,23.74,23.74,23.74,23.74,1370000,23.74 +1952-01-08,23.82,23.82,23.82,23.82,1390000,23.82 +1952-01-07,23.91,23.91,23.91,23.91,1540000,23.91 +1952-01-04,23.92,23.92,23.92,23.92,1480000,23.92 +1952-01-03,23.88,23.88,23.88,23.88,1220000,23.88 +1952-01-02,23.80,23.80,23.80,23.80,1070000,23.80 +1951-12-31,23.77,23.77,23.77,23.77,1440000,23.77 +1951-12-28,23.69,23.69,23.69,23.69,1470000,23.69 +1951-12-27,23.65,23.65,23.65,23.65,1460000,23.65 +1951-12-26,23.44,23.44,23.44,23.44,1520000,23.44 +1951-12-24,23.54,23.54,23.54,23.54,680000,23.54 +1951-12-21,23.51,23.51,23.51,23.51,1250000,23.51 +1951-12-20,23.57,23.57,23.57,23.57,1340000,23.57 +1951-12-19,23.57,23.57,23.57,23.57,1510000,23.57 +1951-12-18,23.49,23.49,23.49,23.49,1290000,23.49 +1951-12-17,23.41,23.41,23.41,23.41,1220000,23.41 +1951-12-14,23.37,23.37,23.37,23.37,1360000,23.37 +1951-12-13,23.39,23.39,23.39,23.39,1380000,23.39 +1951-12-12,23.37,23.37,23.37,23.37,1280000,23.37 +1951-12-11,23.30,23.30,23.30,23.30,1360000,23.30 +1951-12-10,23.42,23.42,23.42,23.42,1340000,23.42 +1951-12-07,23.38,23.38,23.38,23.38,1990000,23.38 +1951-12-06,23.34,23.34,23.34,23.34,1840000,23.34 +1951-12-05,23.07,23.07,23.07,23.07,1330000,23.07 +1951-12-04,23.14,23.14,23.14,23.14,1280000,23.14 +1951-12-03,23.01,23.01,23.01,23.01,1220000,23.01 +1951-11-30,22.88,22.88,22.88,22.88,1530000,22.88 +1951-11-29,22.67,22.67,22.67,22.67,1070000,22.67 +1951-11-28,22.61,22.61,22.61,22.61,1150000,22.61 +1951-11-27,22.66,22.66,22.66,22.66,1310000,22.66 +1951-11-26,22.43,22.43,22.43,22.43,1180000,22.43 +1951-11-23,22.40,22.40,22.40,22.40,1210000,22.40 +1951-11-21,22.64,22.64,22.64,22.64,1090000,22.64 +1951-11-20,22.68,22.68,22.68,22.68,1130000,22.68 +1951-11-19,22.73,22.73,22.73,22.73,1030000,22.73 +1951-11-16,22.82,22.82,22.82,22.82,1140000,22.82 +1951-11-15,22.84,22.84,22.84,22.84,1200000,22.84 +1951-11-14,22.85,22.85,22.85,22.85,1220000,22.85 +1951-11-13,22.79,22.79,22.79,22.79,1160000,22.79 +1951-11-09,22.75,22.75,22.75,22.75,1470000,22.75 +1951-11-08,22.47,22.47,22.47,22.47,1410000,22.47 +1951-11-07,22.49,22.49,22.49,22.49,1490000,22.49 +1951-11-05,22.82,22.82,22.82,22.82,1130000,22.82 +1951-11-02,22.93,22.93,22.93,22.93,1230000,22.93 +1951-11-01,23.10,23.10,23.10,23.10,1430000,23.10 +1951-10-31,22.94,22.94,22.94,22.94,1490000,22.94 +1951-10-30,22.66,22.66,22.66,22.66,1530000,22.66 +1951-10-29,22.69,22.69,22.69,22.69,1780000,22.69 +1951-10-26,22.81,22.81,22.81,22.81,1710000,22.81 +1951-10-25,22.96,22.96,22.96,22.96,1360000,22.96 +1951-10-24,23.03,23.03,23.03,23.03,1670000,23.03 +1951-10-23,22.84,22.84,22.84,22.84,2110000,22.84 +1951-10-22,22.75,22.75,22.75,22.75,2690000,22.75 +1951-10-19,23.32,23.32,23.32,23.32,1990000,23.32 +1951-10-18,23.67,23.67,23.67,23.67,1450000,23.67 +1951-10-17,23.69,23.69,23.69,23.69,1460000,23.69 +1951-10-16,23.77,23.77,23.77,23.77,1730000,23.77 +1951-10-15,23.85,23.85,23.85,23.85,1720000,23.85 +1951-10-11,23.70,23.70,23.70,23.70,1760000,23.70 +1951-10-10,23.61,23.61,23.61,23.61,1320000,23.61 +1951-10-09,23.65,23.65,23.65,23.65,1750000,23.65 +1951-10-08,23.75,23.75,23.75,23.75,1860000,23.75 +1951-10-05,23.78,23.78,23.78,23.78,2080000,23.78 +1951-10-04,23.72,23.72,23.72,23.72,1810000,23.72 +1951-10-03,23.79,23.79,23.79,23.79,2780000,23.79 +1951-10-02,23.64,23.64,23.64,23.64,1870000,23.64 +1951-10-01,23.47,23.47,23.47,23.47,1330000,23.47 +1951-09-28,23.26,23.26,23.26,23.26,1390000,23.26 +1951-09-27,23.27,23.27,23.27,23.27,1540000,23.27 +1951-09-26,23.40,23.40,23.40,23.40,1520000,23.40 +1951-09-25,23.38,23.38,23.38,23.38,1740000,23.38 +1951-09-24,23.30,23.30,23.30,23.30,1630000,23.30 +1951-09-21,23.40,23.40,23.40,23.40,2180000,23.40 +1951-09-20,23.57,23.57,23.57,23.57,2100000,23.57 +1951-09-19,23.59,23.59,23.59,23.59,2070000,23.59 +1951-09-18,23.59,23.59,23.59,23.59,2030000,23.59 +1951-09-17,23.62,23.62,23.62,23.62,1800000,23.62 +1951-09-14,23.69,23.69,23.69,23.69,2170000,23.69 +1951-09-13,23.71,23.71,23.71,23.71,2350000,23.71 +1951-09-12,23.60,23.60,23.60,23.60,2180000,23.60 +1951-09-11,23.50,23.50,23.50,23.50,2040000,23.50 +1951-09-10,23.62,23.62,23.62,23.62,2190000,23.62 +1951-09-07,23.53,23.53,23.53,23.53,1970000,23.53 +1951-09-06,23.47,23.47,23.47,23.47,2150000,23.47 +1951-09-05,23.42,23.42,23.42,23.42,1850000,23.42 +1951-09-04,23.28,23.28,23.28,23.28,1520000,23.28 +1951-08-31,23.28,23.28,23.28,23.28,1530000,23.28 +1951-08-30,23.24,23.24,23.24,23.24,1950000,23.24 +1951-08-29,23.08,23.08,23.08,23.08,1520000,23.08 +1951-08-28,22.90,22.90,22.90,22.90,1280000,22.90 +1951-08-27,22.85,22.85,22.85,22.85,1080000,22.85 +1951-08-24,22.88,22.88,22.88,22.88,1210000,22.88 +1951-08-23,22.90,22.90,22.90,22.90,1230000,22.90 +1951-08-22,22.75,22.75,22.75,22.75,1130000,22.75 +1951-08-21,22.83,22.83,22.83,22.83,1400000,22.83 +1951-08-20,22.93,22.93,22.93,22.93,1130000,22.93 +1951-08-17,22.94,22.94,22.94,22.94,1620000,22.94 +1951-08-16,22.87,22.87,22.87,22.87,1750000,22.87 +1951-08-15,22.79,22.79,22.79,22.79,1340000,22.79 +1951-08-14,22.70,22.70,22.70,22.70,1180000,22.70 +1951-08-13,22.80,22.80,22.80,22.80,1320000,22.80 +1951-08-10,22.79,22.79,22.79,22.79,1260000,22.79 +1951-08-09,22.84,22.84,22.84,22.84,1500000,22.84 +1951-08-08,22.93,22.93,22.93,22.93,1410000,22.93 +1951-08-07,23.03,23.03,23.03,23.03,1810000,23.03 +1951-08-06,23.01,23.01,23.01,23.01,1600000,23.01 +1951-08-03,22.85,22.85,22.85,22.85,1570000,22.85 +1951-08-02,22.82,22.82,22.82,22.82,2130000,22.82 +1951-08-01,22.51,22.51,22.51,22.51,1680000,22.51 +1951-07-31,22.40,22.40,22.40,22.40,1550000,22.40 +1951-07-30,22.63,22.63,22.63,22.63,1600000,22.63 +1951-07-27,22.53,22.53,22.53,22.53,1450000,22.53 +1951-07-26,22.47,22.47,22.47,22.47,1480000,22.47 +1951-07-25,22.32,22.32,22.32,22.32,1870000,22.32 +1951-07-24,22.44,22.44,22.44,22.44,1740000,22.44 +1951-07-23,22.10,22.10,22.10,22.10,1320000,22.10 +1951-07-20,21.88,21.88,21.88,21.88,1390000,21.88 +1951-07-19,21.84,21.84,21.84,21.84,1120000,21.84 +1951-07-18,21.88,21.88,21.88,21.88,1370000,21.88 +1951-07-17,21.92,21.92,21.92,21.92,1280000,21.92 +1951-07-16,21.73,21.73,21.73,21.73,1200000,21.73 +1951-07-13,21.98,21.98,21.98,21.98,1320000,21.98 +1951-07-12,21.80,21.80,21.80,21.80,1050000,21.80 +1951-07-11,21.68,21.68,21.68,21.68,970000,21.68 +1951-07-10,21.63,21.63,21.63,21.63,990000,21.63 +1951-07-09,21.73,21.73,21.73,21.73,1110000,21.73 +1951-07-06,21.64,21.64,21.64,21.64,1170000,21.64 +1951-07-05,21.64,21.64,21.64,21.64,1410000,21.64 +1951-07-03,21.23,21.23,21.23,21.23,1250000,21.23 +1951-07-02,21.10,21.10,21.10,21.10,1350000,21.10 +1951-06-29,20.96,20.96,20.96,20.96,1730000,20.96 +1951-06-28,21.10,21.10,21.10,21.10,1940000,21.10 +1951-06-27,21.37,21.37,21.37,21.37,1360000,21.37 +1951-06-26,21.30,21.30,21.30,21.30,1260000,21.30 +1951-06-25,21.29,21.29,21.29,21.29,2440000,21.29 +1951-06-22,21.55,21.55,21.55,21.55,1340000,21.55 +1951-06-21,21.78,21.78,21.78,21.78,1100000,21.78 +1951-06-20,21.91,21.91,21.91,21.91,1120000,21.91 +1951-06-19,22.02,22.02,22.02,22.02,1100000,22.02 +1951-06-18,22.05,22.05,22.05,22.05,1050000,22.05 +1951-06-15,22.04,22.04,22.04,22.04,1370000,22.04 +1951-06-14,21.84,21.84,21.84,21.84,1300000,21.84 +1951-06-13,21.55,21.55,21.55,21.55,1060000,21.55 +1951-06-12,21.52,21.52,21.52,21.52,1200000,21.52 +1951-06-11,21.61,21.61,21.61,21.61,1220000,21.61 +1951-06-08,21.49,21.49,21.49,21.49,1000000,21.49 +1951-06-07,21.56,21.56,21.56,21.56,1340000,21.56 +1951-06-06,21.48,21.48,21.48,21.48,1200000,21.48 +1951-06-05,21.33,21.33,21.33,21.33,1180000,21.33 +1951-06-04,21.24,21.24,21.24,21.24,1100000,21.24 +1951-06-01,21.48,21.48,21.48,21.48,9810000,21.48 +1951-05-31,21.52,21.52,21.52,21.52,1220000,21.52 +1951-05-29,21.35,21.35,21.35,21.35,1190000,21.35 +1951-05-28,21.21,21.21,21.21,21.21,1240000,21.21 +1951-05-25,21.03,21.03,21.03,21.03,1210000,21.03 +1951-05-24,21.05,21.05,21.05,21.05,2580000,21.05 +1951-05-23,21.16,21.16,21.16,21.16,1540000,21.16 +1951-05-22,21.36,21.36,21.36,21.36,1440000,21.36 +1951-05-21,21.46,21.46,21.46,21.46,1580000,21.46 +1951-05-18,21.51,21.51,21.51,21.51,1660000,21.51 +1951-05-17,21.91,21.91,21.91,21.91,1370000,21.91 +1951-05-16,21.69,21.69,21.69,21.69,1660000,21.69 +1951-05-15,21.76,21.76,21.76,21.76,2020000,21.76 +1951-05-14,22.18,22.18,22.18,22.18,1250000,22.18 +1951-05-11,22.33,22.33,22.33,22.33,1640000,22.33 +1951-05-10,22.51,22.51,22.51,22.51,1660000,22.51 +1951-05-09,22.64,22.64,22.64,22.64,1960000,22.64 +1951-05-08,22.61,22.61,22.61,22.61,1600000,22.61 +1951-05-07,22.63,22.63,22.63,22.63,1580000,22.63 +1951-05-04,22.77,22.77,22.77,22.77,2050000,22.77 +1951-05-03,22.81,22.81,22.81,22.81,2060000,22.81 +1951-05-02,22.62,22.62,22.62,22.62,1900000,22.62 +1951-05-01,22.53,22.53,22.53,22.53,1760000,22.53 +1951-04-30,22.43,22.43,22.43,22.43,1790000,22.43 +1951-04-27,22.39,22.39,22.39,22.39,2120000,22.39 +1951-04-26,22.16,22.16,22.16,22.16,1800000,22.16 +1951-04-25,21.97,21.97,21.97,21.97,1520000,21.97 +1951-04-24,21.96,21.96,21.96,21.96,1420000,21.96 +1951-04-23,22.05,22.05,22.05,22.05,1160000,22.05 +1951-04-20,22.04,22.04,22.04,22.04,940000,22.04 +1951-04-19,22.04,22.04,22.04,22.04,1520000,22.04 +1951-04-18,22.13,22.13,22.13,22.13,1780000,22.13 +1951-04-17,22.09,22.09,22.09,22.09,1470000,22.09 +1951-04-16,22.04,22.04,22.04,22.04,1730000,22.04 +1951-04-13,22.09,22.09,22.09,22.09,2120000,22.09 +1951-04-12,21.83,21.83,21.83,21.83,1530000,21.83 +1951-04-11,21.64,21.64,21.64,21.64,1420000,21.64 +1951-04-10,21.65,21.65,21.65,21.65,1280000,21.65 +1951-04-09,21.68,21.68,21.68,21.68,1110000,21.68 +1951-04-06,21.72,21.72,21.72,21.72,1450000,21.72 +1951-04-05,21.69,21.69,21.69,21.69,1790000,21.69 +1951-04-04,21.40,21.40,21.40,21.40,1300000,21.40 +1951-04-03,21.26,21.26,21.26,21.26,1220000,21.26 +1951-04-02,21.32,21.32,21.32,21.32,1280000,21.32 +1951-03-30,21.48,21.48,21.48,21.48,1150000,21.48 +1951-03-29,21.33,21.33,21.33,21.33,1300000,21.33 +1951-03-28,21.26,21.26,21.26,21.26,1770000,21.26 +1951-03-27,21.51,21.51,21.51,21.51,1250000,21.51 +1951-03-26,21.53,21.53,21.53,21.53,1230000,21.53 +1951-03-22,21.73,21.73,21.73,21.73,1290000,21.73 +1951-03-21,21.64,21.64,21.64,21.64,1310000,21.64 +1951-03-20,21.52,21.52,21.52,21.52,1020000,21.52 +1951-03-19,21.56,21.56,21.56,21.56,1120000,21.56 +1951-03-16,21.64,21.64,21.64,21.64,1660000,21.64 +1951-03-15,21.29,21.29,21.29,21.29,2070000,21.29 +1951-03-14,21.25,21.25,21.25,21.25,2110000,21.25 +1951-03-13,21.41,21.41,21.41,21.41,2330000,21.41 +1951-03-12,21.70,21.70,21.70,21.70,1640000,21.70 +1951-03-09,21.95,21.95,21.95,21.95,1610000,21.95 +1951-03-08,21.95,21.95,21.95,21.95,1440000,21.95 +1951-03-07,21.86,21.86,21.86,21.86,1770000,21.86 +1951-03-06,21.79,21.79,21.79,21.79,1490000,21.79 +1951-03-05,21.79,21.79,21.79,21.79,1690000,21.79 +1951-03-02,21.93,21.93,21.93,21.93,1570000,21.93 +1951-03-01,21.85,21.85,21.85,21.85,1610000,21.85 +1951-02-28,21.80,21.80,21.80,21.80,1640000,21.80 +1951-02-27,21.76,21.76,21.76,21.76,1680000,21.76 +1951-02-26,21.93,21.93,21.93,21.93,1650000,21.93 +1951-02-23,21.92,21.92,21.92,21.92,1540000,21.92 +1951-02-21,21.86,21.86,21.86,21.86,1670000,21.86 +1951-02-20,21.79,21.79,21.79,21.79,2010000,21.79 +1951-02-19,21.83,21.83,21.83,21.83,1910000,21.83 +1951-02-16,22.13,22.13,22.13,22.13,1860000,22.13 +1951-02-15,22.00,22.00,22.00,22.00,1700000,22.00 +1951-02-14,22.12,22.12,22.12,22.12,2050000,22.12 +1951-02-13,22.18,22.18,22.18,22.18,2400000,22.18 +1951-02-09,22.17,22.17,22.17,22.17,2550000,22.17 +1951-02-08,22.09,22.09,22.09,22.09,2120000,22.09 +1951-02-07,21.99,21.99,21.99,21.99,2020000,21.99 +1951-02-06,22.12,22.12,22.12,22.12,2370000,22.12 +1951-02-05,22.20,22.20,22.20,22.20,2680000,22.20 +1951-02-02,21.96,21.96,21.96,21.96,3030000,21.96 +1951-02-01,21.77,21.77,21.77,21.77,2380000,21.77 +1951-01-31,21.66,21.66,21.66,21.66,2340000,21.66 +1951-01-30,21.74,21.74,21.74,21.74,2480000,21.74 +1951-01-29,21.67,21.67,21.67,21.67,2630000,21.67 +1951-01-26,21.26,21.26,21.26,21.26,2230000,21.26 +1951-01-25,21.03,21.03,21.03,21.03,2520000,21.03 +1951-01-24,21.16,21.16,21.16,21.16,1990000,21.16 +1951-01-23,21.26,21.26,21.26,21.26,2080000,21.26 +1951-01-22,21.18,21.18,21.18,21.18,2570000,21.18 +1951-01-19,21.36,21.36,21.36,21.36,3170000,21.36 +1951-01-18,21.40,21.40,21.40,21.40,3490000,21.40 +1951-01-17,21.55,21.55,21.55,21.55,3880000,21.55 +1951-01-16,21.46,21.46,21.46,21.46,3740000,21.46 +1951-01-15,21.30,21.30,21.30,21.30,2830000,21.30 +1951-01-12,21.11,21.11,21.11,21.11,2950000,21.11 +1951-01-11,21.19,21.19,21.19,21.19,3490000,21.19 +1951-01-10,20.85,20.85,20.85,20.85,3270000,20.85 +1951-01-09,21.12,21.12,21.12,21.12,3800000,21.12 +1951-01-08,21.00,21.00,21.00,21.00,2780000,21.00 +1951-01-05,20.87,20.87,20.87,20.87,3390000,20.87 +1951-01-04,20.87,20.87,20.87,20.87,3390000,20.87 +1951-01-03,20.69,20.69,20.69,20.69,3370000,20.69 +1951-01-02,20.77,20.77,20.77,20.77,3030000,20.77 +1950-12-29,20.43,20.43,20.43,20.43,3440000,20.43 +1950-12-28,20.38,20.38,20.38,20.38,3560000,20.38 +1950-12-27,20.30,20.30,20.30,20.30,2940000,20.30 +1950-12-26,19.92,19.92,19.92,19.92,2660000,19.92 +1950-12-22,20.07,20.07,20.07,20.07,2720000,20.07 +1950-12-21,19.98,19.98,19.98,19.98,3990000,19.98 +1950-12-20,19.97,19.97,19.97,19.97,3510000,19.97 +1950-12-19,19.96,19.96,19.96,19.96,3650000,19.96 +1950-12-18,19.85,19.85,19.85,19.85,4500000,19.85 +1950-12-15,19.33,19.33,19.33,19.33,2420000,19.33 +1950-12-14,19.43,19.43,19.43,19.43,2660000,19.43 +1950-12-13,19.67,19.67,19.67,19.67,2030000,19.67 +1950-12-12,19.68,19.68,19.68,19.68,2140000,19.68 +1950-12-11,19.72,19.72,19.72,19.72,2600000,19.72 +1950-12-08,19.40,19.40,19.40,19.40,2310000,19.40 +1950-12-07,19.40,19.40,19.40,19.40,1810000,19.40 +1950-12-06,19.45,19.45,19.45,19.45,2010000,19.45 +1950-12-05,19.31,19.31,19.31,19.31,1940000,19.31 +1950-12-04,19.00,19.00,19.00,19.00,2510000,19.00 +1950-12-01,19.66,19.66,19.66,19.66,1870000,19.66 +1950-11-30,19.51,19.51,19.51,19.51,2080000,19.51 +1950-11-29,19.37,19.37,19.37,19.37,2770000,19.37 +1950-11-28,19.56,19.56,19.56,19.56,2970000,19.56 +1950-11-27,20.18,20.18,20.18,20.18,1740000,20.18 +1950-11-24,20.32,20.32,20.32,20.32,2620000,20.32 +1950-11-22,20.16,20.16,20.16,20.16,2730000,20.16 +1950-11-21,19.88,19.88,19.88,19.88,2010000,19.88 +1950-11-20,19.93,19.93,19.93,19.93,2250000,19.93 +1950-11-17,19.86,19.86,19.86,19.86,2130000,19.86 +1950-11-16,19.72,19.72,19.72,19.72,1760000,19.72 +1950-11-15,19.82,19.82,19.82,19.82,1620000,19.82 +1950-11-14,19.86,19.86,19.86,19.86,1780000,19.86 +1950-11-13,20.01,20.01,20.01,20.01,1630000,20.01 +1950-11-10,19.94,19.94,19.94,19.94,1640000,19.94 +1950-11-09,19.79,19.79,19.79,19.79,1760000,19.79 +1950-11-08,19.56,19.56,19.56,19.56,1850000,19.56 +1950-11-06,19.36,19.36,19.36,19.36,2580000,19.36 +1950-11-03,19.85,19.85,19.85,19.85,1560000,19.85 +1950-11-02,19.73,19.73,19.73,19.73,1580000,19.73 +1950-11-01,19.56,19.56,19.56,19.56,1780000,19.56 +1950-10-31,19.53,19.53,19.53,19.53,2010000,19.53 +1950-10-30,19.61,19.61,19.61,19.61,1790000,19.61 +1950-10-27,19.77,19.77,19.77,19.77,1800000,19.77 +1950-10-26,19.61,19.61,19.61,19.61,3000000,19.61 +1950-10-25,20.05,20.05,20.05,20.05,1930000,20.05 +1950-10-24,20.08,20.08,20.08,20.08,1790000,20.08 +1950-10-23,19.96,19.96,19.96,19.96,1850000,19.96 +1950-10-20,19.96,19.96,19.96,19.96,1840000,19.96 +1950-10-19,20.02,20.02,20.02,20.02,2250000,20.02 +1950-10-18,20.01,20.01,20.01,20.01,2410000,20.01 +1950-10-17,19.89,19.89,19.89,19.89,2010000,19.89 +1950-10-16,19.71,19.71,19.71,19.71,1630000,19.71 +1950-10-13,19.85,19.85,19.85,19.85,2030000,19.85 +1950-10-11,19.86,19.86,19.86,19.86,2200000,19.86 +1950-10-10,19.78,19.78,19.78,19.78,1870000,19.78 +1950-10-09,20.00,20.00,20.00,20.00,2330000,20.00 +1950-10-06,20.12,20.12,20.12,20.12,2360000,20.12 +1950-10-05,19.89,19.89,19.89,19.89,2490000,19.89 +1950-10-04,20.00,20.00,20.00,20.00,2920000,20.00 +1950-10-03,19.66,19.66,19.66,19.66,2480000,19.66 +1950-10-02,19.69,19.69,19.69,19.69,2200000,19.69 +1950-09-29,19.45,19.45,19.45,19.45,1800000,19.45 +1950-09-28,19.42,19.42,19.42,19.42,2200000,19.42 +1950-09-27,19.41,19.41,19.41,19.41,2360000,19.41 +1950-09-26,19.14,19.14,19.14,19.14,2280000,19.14 +1950-09-25,19.42,19.42,19.42,19.42,2020000,19.42 +1950-09-22,19.44,19.44,19.44,19.44,2510000,19.44 +1950-09-21,19.37,19.37,19.37,19.37,1650000,19.37 +1950-09-20,19.21,19.21,19.21,19.21,2100000,19.21 +1950-09-19,19.31,19.31,19.31,19.31,1590000,19.31 +1950-09-18,19.37,19.37,19.37,19.37,2040000,19.37 +1950-09-15,19.29,19.29,19.29,19.29,2410000,19.29 +1950-09-14,19.18,19.18,19.18,19.18,2350000,19.18 +1950-09-13,19.09,19.09,19.09,19.09,2600000,19.09 +1950-09-12,18.87,18.87,18.87,18.87,1680000,18.87 +1950-09-11,18.61,18.61,18.61,18.61,1860000,18.61 +1950-09-08,18.75,18.75,18.75,18.75,1960000,18.75 +1950-09-07,18.59,18.59,18.59,18.59,1340000,18.59 +1950-09-06,18.54,18.54,18.54,18.54,1300000,18.54 +1950-09-05,18.68,18.68,18.68,18.68,1250000,18.68 +1950-09-01,18.55,18.55,18.55,18.55,1290000,18.55 +1950-08-31,18.42,18.42,18.42,18.42,1140000,18.42 +1950-08-30,18.43,18.43,18.43,18.43,1490000,18.43 +1950-08-29,18.54,18.54,18.54,18.54,1890000,18.54 +1950-08-28,18.53,18.53,18.53,18.53,1300000,18.53 +1950-08-25,18.54,18.54,18.54,18.54,1610000,18.54 +1950-08-24,18.79,18.79,18.79,18.79,1620000,18.79 +1950-08-23,18.82,18.82,18.82,18.82,1580000,18.82 +1950-08-22,18.68,18.68,18.68,18.68,1550000,18.68 +1950-08-21,18.70,18.70,18.70,18.70,1840000,18.70 +1950-08-18,18.68,18.68,18.68,18.68,1780000,18.68 +1950-08-17,18.54,18.54,18.54,18.54,2170000,18.54 +1950-08-16,18.34,18.34,18.34,18.34,1770000,18.34 +1950-08-15,18.32,18.32,18.32,18.32,1330000,18.32 +1950-08-14,18.29,18.29,18.29,18.29,1280000,18.29 +1950-08-11,18.28,18.28,18.28,18.28,1680000,18.28 +1950-08-10,18.48,18.48,18.48,18.48,1870000,18.48 +1950-08-09,18.61,18.61,18.61,18.61,1760000,18.61 +1950-08-08,18.46,18.46,18.46,18.46,2180000,18.46 +1950-08-07,18.41,18.41,18.41,18.41,1850000,18.41 +1950-08-04,18.14,18.14,18.14,18.14,1600000,18.14 +1950-08-03,17.99,17.99,17.99,17.99,1660000,17.99 +1950-08-02,17.95,17.95,17.95,17.95,1980000,17.95 +1950-08-01,18.02,18.02,18.02,18.02,1970000,18.02 +1950-07-31,17.84,17.84,17.84,17.84,1590000,17.84 +1950-07-28,17.69,17.69,17.69,17.69,2050000,17.69 +1950-07-27,17.50,17.50,17.50,17.50,2300000,17.50 +1950-07-26,17.27,17.27,17.27,17.27,2460000,17.27 +1950-07-25,17.23,17.23,17.23,17.23,2770000,17.23 +1950-07-24,17.48,17.48,17.48,17.48,2300000,17.48 +1950-07-21,17.59,17.59,17.59,17.59,2810000,17.59 +1950-07-20,17.61,17.61,17.61,17.61,3160000,17.61 +1950-07-19,17.36,17.36,17.36,17.36,2430000,17.36 +1950-07-18,17.06,17.06,17.06,17.06,1820000,17.06 +1950-07-17,16.68,16.68,16.68,16.68,1520000,16.68 +1950-07-14,16.87,16.87,16.87,16.87,1900000,16.87 +1950-07-13,16.69,16.69,16.69,16.69,2660000,16.69 +1950-07-12,16.87,16.87,16.87,16.87,3200000,16.87 +1950-07-11,17.32,17.32,17.32,17.32,3250000,17.32 +1950-07-10,17.59,17.59,17.59,17.59,1960000,17.59 +1950-07-07,17.67,17.67,17.67,17.67,1870000,17.67 +1950-07-06,17.91,17.91,17.91,17.91,1570000,17.91 +1950-07-05,17.81,17.81,17.81,17.81,1400000,17.81 +1950-07-03,17.64,17.64,17.64,17.64,1550000,17.64 +1950-06-30,17.69,17.69,17.69,17.69,2660000,17.69 +1950-06-29,17.44,17.44,17.44,17.44,3040000,17.44 +1950-06-28,18.11,18.11,18.11,18.11,2600000,18.11 +1950-06-27,17.91,17.91,17.91,17.91,4860000,17.91 +1950-06-26,18.11,18.11,18.11,18.11,3950000,18.11 +1950-06-23,19.14,19.14,19.14,19.14,1700000,19.14 +1950-06-22,19.16,19.16,19.16,19.16,1830000,19.16 +1950-06-21,19.00,19.00,19.00,19.00,1750000,19.00 +1950-06-20,18.83,18.83,18.83,18.83,1470000,18.83 +1950-06-19,18.92,18.92,18.92,18.92,1290000,18.92 +1950-06-16,18.97,18.97,18.97,18.97,1180000,18.97 +1950-06-15,18.93,18.93,18.93,18.93,1530000,18.93 +1950-06-14,18.98,18.98,18.98,18.98,1650000,18.98 +1950-06-13,19.25,19.25,19.25,19.25,1790000,19.25 +1950-06-12,19.40,19.40,19.40,19.40,1790000,19.40 +1950-06-09,19.26,19.26,19.26,19.26,2130000,19.26 +1950-06-08,19.14,19.14,19.14,19.14,1780000,19.14 +1950-06-07,18.93,18.93,18.93,18.93,1750000,18.93 +1950-06-06,18.88,18.88,18.88,18.88,2250000,18.88 +1950-06-05,18.60,18.60,18.60,18.60,1630000,18.60 +1950-06-02,18.79,18.79,18.79,18.79,1450000,18.79 +1950-06-01,18.77,18.77,18.77,18.77,1580000,18.77 +1950-05-31,18.78,18.78,18.78,18.78,1530000,18.78 +1950-05-29,18.72,18.72,18.72,18.72,1110000,18.72 +1950-05-26,18.67,18.67,18.67,18.67,1330000,18.67 +1950-05-25,18.69,18.69,18.69,18.69,1480000,18.69 +1950-05-24,18.69,18.69,18.69,18.69,1850000,18.69 +1950-05-23,18.71,18.71,18.71,18.71,1460000,18.71 +1950-05-22,18.60,18.60,18.60,18.60,1620000,18.60 +1950-05-19,18.68,18.68,18.68,18.68,2110000,18.68 +1950-05-18,18.56,18.56,18.56,18.56,5240000,18.56 +1950-05-17,18.52,18.52,18.52,18.52,2020000,18.52 +1950-05-16,18.44,18.44,18.44,18.44,1730000,18.44 +1950-05-15,18.26,18.26,18.26,18.26,1220000,18.26 +1950-05-12,18.18,18.18,18.18,18.18,1790000,18.18 +1950-05-11,18.29,18.29,18.29,18.29,1750000,18.29 +1950-05-10,18.29,18.29,18.29,18.29,1880000,18.29 +1950-05-09,18.27,18.27,18.27,18.27,1720000,18.27 +1950-05-08,18.27,18.27,18.27,18.27,1680000,18.27 +1950-05-05,18.22,18.22,18.22,18.22,1800000,18.22 +1950-05-04,18.12,18.12,18.12,18.12,2150000,18.12 +1950-05-03,18.27,18.27,18.27,18.27,2120000,18.27 +1950-05-02,18.11,18.11,18.11,18.11,2250000,18.11 +1950-05-01,18.22,18.22,18.22,18.22,2390000,18.22 +1950-04-28,17.96,17.96,17.96,17.96,2190000,17.96 +1950-04-27,17.86,17.86,17.86,17.86,2070000,17.86 +1950-04-26,17.76,17.76,17.76,17.76,1880000,17.76 +1950-04-25,17.83,17.83,17.83,17.83,1830000,17.83 +1950-04-24,17.83,17.83,17.83,17.83,2310000,17.83 +1950-04-21,17.96,17.96,17.96,17.96,2710000,17.96 +1950-04-20,17.93,17.93,17.93,17.93,2590000,17.93 +1950-04-19,18.05,18.05,18.05,18.05,2950000,18.05 +1950-04-18,18.03,18.03,18.03,18.03,3320000,18.03 +1950-04-17,17.88,17.88,17.88,17.88,2520000,17.88 +1950-04-14,17.96,17.96,17.96,17.96,2750000,17.96 +1950-04-13,17.98,17.98,17.98,17.98,2410000,17.98 +1950-04-12,17.94,17.94,17.94,17.94,2010000,17.94 +1950-04-11,17.75,17.75,17.75,17.75,2010000,17.75 +1950-04-10,17.85,17.85,17.85,17.85,2070000,17.85 +1950-04-06,17.78,17.78,17.78,17.78,2000000,17.78 +1950-04-05,17.63,17.63,17.63,17.63,1430000,17.63 +1950-04-04,17.55,17.55,17.55,17.55,2010000,17.55 +1950-04-03,17.53,17.53,17.53,17.53,1570000,17.53 +1950-03-31,17.29,17.29,17.29,17.29,1880000,17.29 +1950-03-30,17.30,17.30,17.30,17.30,2370000,17.30 +1950-03-29,17.44,17.44,17.44,17.44,2090000,17.44 +1950-03-28,17.53,17.53,17.53,17.53,1780000,17.53 +1950-03-27,17.46,17.46,17.46,17.46,1930000,17.46 +1950-03-24,17.56,17.56,17.56,17.56,1570000,17.56 +1950-03-23,17.56,17.56,17.56,17.56,2020000,17.56 +1950-03-22,17.55,17.55,17.55,17.55,2010000,17.55 +1950-03-21,17.45,17.45,17.45,17.45,1400000,17.45 +1950-03-20,17.44,17.44,17.44,17.44,1430000,17.44 +1950-03-17,17.45,17.45,17.45,17.45,1600000,17.45 +1950-03-16,17.49,17.49,17.49,17.49,2060000,17.49 +1950-03-15,17.45,17.45,17.45,17.45,1830000,17.45 +1950-03-14,17.25,17.25,17.25,17.25,1140000,17.25 +1950-03-13,17.12,17.12,17.12,17.12,1060000,17.12 +1950-03-10,17.09,17.09,17.09,17.09,1260000,17.09 +1950-03-09,17.07,17.07,17.07,17.07,1330000,17.07 +1950-03-08,17.19,17.19,17.19,17.19,1360000,17.19 +1950-03-07,17.20,17.20,17.20,17.20,1590000,17.20 +1950-03-06,17.32,17.32,17.32,17.32,1470000,17.32 +1950-03-03,17.29,17.29,17.29,17.29,1520000,17.29 +1950-03-02,17.23,17.23,17.23,17.23,1340000,17.23 +1950-03-01,17.24,17.24,17.24,17.24,1410000,17.24 +1950-02-28,17.22,17.22,17.22,17.22,1310000,17.22 +1950-02-27,17.28,17.28,17.28,17.28,1410000,17.28 +1950-02-24,17.28,17.28,17.28,17.28,1710000,17.28 +1950-02-23,17.21,17.21,17.21,17.21,1310000,17.21 +1950-02-21,17.17,17.17,17.17,17.17,1260000,17.17 +1950-02-20,17.20,17.20,17.20,17.20,1420000,17.20 +1950-02-17,17.15,17.15,17.15,17.15,1940000,17.15 +1950-02-16,16.99,16.99,16.99,16.99,1920000,16.99 +1950-02-15,17.06,17.06,17.06,17.06,1730000,17.06 +1950-02-14,17.06,17.06,17.06,17.06,2210000,17.06 +1950-02-10,17.24,17.24,17.24,17.24,1790000,17.24 +1950-02-09,17.28,17.28,17.28,17.28,1810000,17.28 +1950-02-08,17.21,17.21,17.21,17.21,1470000,17.21 +1950-02-07,17.23,17.23,17.23,17.23,1360000,17.23 +1950-02-06,17.32,17.32,17.32,17.32,1490000,17.32 +1950-02-03,17.29,17.29,17.29,17.29,2210000,17.29 +1950-02-02,17.23,17.23,17.23,17.23,2040000,17.23 +1950-02-01,17.05,17.05,17.05,17.05,1810000,17.05 +1950-01-31,17.05,17.05,17.05,17.05,1690000,17.05 +1950-01-30,17.02,17.02,17.02,17.02,1640000,17.02 +1950-01-27,16.82,16.82,16.82,16.82,1250000,16.82 +1950-01-26,16.73,16.73,16.73,16.73,1150000,16.73 +1950-01-25,16.74,16.74,16.74,16.74,1700000,16.74 +1950-01-24,16.86,16.86,16.86,16.86,1250000,16.86 +1950-01-23,16.92,16.92,16.92,16.92,1340000,16.92 +1950-01-20,16.90,16.90,16.90,16.90,1440000,16.90 +1950-01-19,16.87,16.87,16.87,16.87,1170000,16.87 +1950-01-18,16.85,16.85,16.85,16.85,1570000,16.85 +1950-01-17,16.86,16.86,16.86,16.86,1790000,16.86 +1950-01-16,16.72,16.72,16.72,16.72,1460000,16.72 +1950-01-13,16.67,16.67,16.67,16.67,3330000,16.67 +1950-01-12,16.76,16.76,16.76,16.76,2970000,16.76 +1950-01-11,17.09,17.09,17.09,17.09,2630000,17.09 +1950-01-10,17.03,17.03,17.03,17.03,2160000,17.03 +1950-01-09,17.08,17.08,17.08,17.08,2520000,17.08 +1950-01-06,16.98,16.98,16.98,16.98,2010000,16.98 +1950-01-05,16.93,16.93,16.93,16.93,2550000,16.93 +1950-01-04,16.85,16.85,16.85,16.85,1890000,16.85 +1950-01-03,16.66,16.66,16.66,16.66,1260000,16.66 diff --git a/statsmodels/sandbox/examples/run_all.py b/statsmodels/sandbox/examples/run_all.py new file mode 100644 index 0000000..85ebff6 --- /dev/null +++ b/statsmodels/sandbox/examples/run_all.py @@ -0,0 +1,36 @@ +'''run all examples to make sure we don't get an exception + +Note: +If an example contaings plt.show(), then all plot windows have to be closed +manually, at least in my setup. + +uncomment plt.show() to show all plot windows + +''' +from statsmodels.compat.python import input +stop_on_error = True + + +filelist = ['example_pca.py', 'example_sysreg.py', 'example_mle.py', +# 'example_gam.py', # exclude, currently we are not working on it + 'example_pca_regression.py'] + +cont = input("""Are you sure you want to run all of the examples? +This is done mainly to check that they are up to date. +(y/n) >>> """) +if 'y' in cont.lower(): + for run_all_f in filelist: + try: + print("Executing example file", run_all_f) + print("-----------------------" + "-"*len(run_all_f)) + exec(open(run_all_f).read()) + except: + #f might be overwritten in the executed file + print("*********************") + print("ERROR in example file", run_all_f) + print("**********************" + "*"*len(run_all_f)) + if stop_on_error: + raise +#plt.show() +#plt.close('all') +#close doesn't work because I never get here without closing plots manually diff --git a/statsmodels/sandbox/examples/thirdparty/ex_ratereturn.py b/statsmodels/sandbox/examples/thirdparty/ex_ratereturn.py new file mode 100644 index 0000000..c6501ff --- /dev/null +++ b/statsmodels/sandbox/examples/thirdparty/ex_ratereturn.py @@ -0,0 +1,146 @@ +# -*- coding: utf-8 -*- +"""Playing with correlation of DJ-30 stock returns + +this uses pickled data that needs to be created with findow.py +to see graphs, uncomment plt.show() + + +Created on Sat Jan 30 16:30:18 2010 +Author: josef-pktd +""" + +import numpy as np +import matplotlib.finance as fin +import matplotlib.pyplot as plt +import datetime as dt + +import pandas as pa +from statsmodels.compat.python import cPickle + +import statsmodels.api as sm +import statsmodels.sandbox as sb +import statsmodels.sandbox.tools as sbtools + +from statsmodels.graphics.correlation import plot_corr, plot_corr_grid + +try: + rrdm = cPickle.load(file('dj30rr','rb')) +except Exception: #blanket for any unpickling error + print("Error with unpickling, a new pickle file can be created with findow_1") + raise + +ticksym = rrdm.columns.tolist() +rr = rrdm.values[1:400] + +rrcorr = np.corrcoef(rr, rowvar=0) + + +plot_corr(rrcorr, xnames=ticksym) +nvars = rrcorr.shape[0] +plt.figure() +plt.hist(rrcorr[np.triu_indices(nvars,1)]) +plt.title('Correlation Coefficients') + +xreda, facta, evaa, evea = sbtools.pcasvd(rr) +evallcs = (evaa).cumsum() +print(evallcs/evallcs[-1]) +xred, fact, eva, eve = sbtools.pcasvd(rr, keepdim=4) +pcacorr = np.corrcoef(xred, rowvar=0) + +plot_corr(pcacorr, xnames=ticksym, title='Correlation PCA') + +resid = rr-xred +residcorr = np.corrcoef(resid, rowvar=0) +plot_corr(residcorr, xnames=ticksym, title='Correlation Residuals') + +plt.matshow(residcorr) +plt.imshow(residcorr, cmap=plt.cm.jet, interpolation='nearest', + extent=(0,30,0,30), vmin=-1.0, vmax=1.0) +plt.colorbar() + +normcolor = (0,1) #False #True +fig = plt.figure() +ax = fig.add_subplot(2,2,1) +plot_corr(rrcorr, xnames=ticksym, normcolor=normcolor, ax=ax) +ax2 = fig.add_subplot(2,2,3) +#pcacorr = np.corrcoef(xred, rowvar=0) +plot_corr(pcacorr, xnames=ticksym, title='Correlation PCA', + normcolor=normcolor, ax=ax2) +ax3 = fig.add_subplot(2,2,4) +plot_corr(residcorr, xnames=ticksym, title='Correlation Residuals', + normcolor=normcolor, ax=ax3) + +import matplotlib as mpl +images = [c for ax in fig.axes for c in ax.get_children() if isinstance(c, mpl.image.AxesImage)] +print(images) +print(ax.get_children()) +#cax = fig.add_subplot(2,2,2) +#[0.85, 0.1, 0.075, 0.8] +fig. subplots_adjust(bottom=0.1, right=0.9, top=0.9) +cax = fig.add_axes([0.9, 0.1, 0.025, 0.8]) +fig.colorbar(images[0], cax=cax) +fig.savefig('corrmatrixgrid.png', dpi=120) + +has_sklearn = True +try: + import sklearn +except ImportError: + has_sklearn = False + print('sklearn not available') + + +def cov2corr(cov): + std_ = np.sqrt(np.diag(cov)) + corr = cov / np.outer(std_, std_) + return corr + +if has_sklearn: + from sklearn.covariance import LedoitWolf, OAS, MCD + + lw = LedoitWolf(store_precision=False) + lw.fit(rr, assume_centered=False) + cov_lw = lw.covariance_ + corr_lw = cov2corr(cov_lw) + + oas = OAS(store_precision=False) + oas.fit(rr, assume_centered=False) + cov_oas = oas.covariance_ + corr_oas = cov2corr(cov_oas) + + mcd = MCD()#.fit(rr, reweight=None) + mcd.fit(rr, assume_centered=False) + cov_mcd = mcd.covariance_ + corr_mcd = cov2corr(cov_mcd) + + titles = ['raw correlation', 'lw', 'oas', 'mcd'] + normcolor = None + fig = plt.figure() + for i, c in enumerate([rrcorr, corr_lw, corr_oas, corr_mcd]): + #for i, c in enumerate([np.cov(rr, rowvar=0), cov_lw, cov_oas, cov_mcd]): + ax = fig.add_subplot(2,2,i+1) + plot_corr(c, xnames=None, title=titles[i], + normcolor=normcolor, ax=ax) + + images = [c for ax in fig.axes for c in ax.get_children() if isinstance(c, mpl.image.AxesImage)] + fig. subplots_adjust(bottom=0.1, right=0.9, top=0.9) + cax = fig.add_axes([0.9, 0.1, 0.025, 0.8]) + fig.colorbar(images[0], cax=cax) + + corrli = [rrcorr, corr_lw, corr_oas, corr_mcd, pcacorr] + diffssq = np.array([[((ci-cj)**2).sum() for ci in corrli] + for cj in corrli]) + diffsabs = np.array([[np.max(np.abs(ci-cj)) for ci in corrli] + for cj in corrli]) + print(diffssq) + print('\nmaxabs') + print(diffsabs) + fig.savefig('corrmatrix_sklearn.png', dpi=120) + + fig2 = plot_corr_grid(corrli+[residcorr], ncols=3, + titles=titles+['pca', 'pca-residual'], + xnames=[], ynames=[]) + fig2.savefig('corrmatrix_sklearn_2.png', dpi=120) + +#plt.show() +#plt.close('all') + diff --git a/statsmodels/sandbox/examples/thirdparty/findow_0.py b/statsmodels/sandbox/examples/thirdparty/findow_0.py new file mode 100644 index 0000000..d644be5 --- /dev/null +++ b/statsmodels/sandbox/examples/thirdparty/findow_0.py @@ -0,0 +1,81 @@ +# -*- coding: utf-8 -*- +"""A quick look at volatility of stock returns for 2009 + +Just an exercise to find my way around the pandas methods. +Shows the daily rate of return, the square of it (volatility) and +a 5 day moving average of the volatility. +No guarantee for correctness. +Assumes no missing values. +colors of lines in graphs are not great + +uses DataFrame and WidePanel to hold data downloaded from yahoo using matplotlib. +I haven't figured out storage, so the download happens at each run +of the script. + +getquotes is from pandas\examples\finance.py + +Created on Sat Jan 30 16:30:18 2010 +Author: josef-pktd +""" +from statsmodels.compat.python import lzip +import numpy as np +import matplotlib.finance as fin +import matplotlib.pyplot as plt +import datetime as dt + +import pandas as pa + + +def getquotes(symbol, start, end): + quotes = fin.quotes_historical_yahoo(symbol, start, end) + dates, open, close, high, low, volume = lzip(*quotes) + + data = { + 'open' : open, + 'close' : close, + 'high' : high, + 'low' : low, + 'volume' : volume + } + + dates = pa.Index([dt.datetime.fromordinal(int(d)) for d in dates]) + return pa.DataFrame(data, index=dates) + + +start_date = dt.datetime(2009, 1, 1) +end_date = dt.datetime(2010, 1, 1) + +mysym = ['msft', 'ibm', 'goog'] +indexsym = ['gspc', 'dji'] + + +# download data +dmall = {} +for sy in mysym: + dmall[sy] = getquotes(sy, start_date, end_date) + +# combine into WidePanel +pawp = pa.WidePanel.fromDict(dmall) +print(pawp.values.shape) + +# select closing prices +paclose = pawp.getMinorXS('close') + +# take log and first difference over time +paclose_ratereturn = paclose.apply(np.log).diff() +plt.figure() +paclose_ratereturn.plot() +plt.title('daily rate of return') + +# square the returns +paclose_ratereturn_vol = paclose_ratereturn.apply(lambda x:np.power(x,2)) +plt.figure() +plt.title('volatility (with 5 day moving average') +paclose_ratereturn_vol.plot() + +# use convolution to get moving average +paclose_ratereturn_vol_mov = paclose_ratereturn_vol.apply( + lambda x:np.convolve(x,np.ones(5)/5.,'same')) +paclose_ratereturn_vol_mov.plot() + +#plt.show() diff --git a/statsmodels/sandbox/examples/thirdparty/findow_1.py b/statsmodels/sandbox/examples/thirdparty/findow_1.py new file mode 100644 index 0000000..12fe932 --- /dev/null +++ b/statsmodels/sandbox/examples/thirdparty/findow_1.py @@ -0,0 +1,93 @@ +# -*- coding: utf-8 -*- +"""A quick look at volatility of stock returns for 2009 + +Just an exercise to find my way around the pandas methods. +Shows the daily rate of return, the square of it (volatility) and +a 5 day moving average of the volatility. +No guarantee for correctness. +Assumes no missing values. +colors of lines in graphs are not great + +uses DataFrame and WidePanel to hold data downloaded from yahoo using matplotlib. +I haven't figured out storage, so the download happens at each run +of the script. + +getquotes is from pandas\examples\finance.py + +Created on Sat Jan 30 16:30:18 2010 +Author: josef-pktd +""" +from statsmodels.compat.python import lzip +import numpy as np +import matplotlib.finance as fin +import matplotlib.pyplot as plt +import datetime as dt + +import pandas as pa + + +def getquotes(symbol, start, end): + quotes = fin.quotes_historical_yahoo(symbol, start, end) + dates, open, close, high, low, volume = lzip(*quotes) + + data = { + 'open' : open, + 'close' : close, + 'high' : high, + 'low' : low, + 'volume' : volume + } + + dates = pa.Index([dt.datetime.fromordinal(int(d)) for d in dates]) + return pa.DataFrame(data, index=dates) + + +start_date = dt.datetime(2007, 1, 1) +end_date = dt.datetime(2009, 12, 31) + +dj30 = ['MMM', 'AA', 'AXP', 'T', 'BAC', 'BA', 'CAT', 'CVX', 'CSCO', + 'KO', 'DD', 'XOM', 'GE', 'HPQ', 'HD', 'INTC', 'IBM', 'JNJ', + 'JPM', 'KFT', 'MCD', 'MRK', 'MSFT', 'PFE', 'PG', 'TRV', + 'UTX', 'VZ', 'WMT', 'DIS'] +mysym = ['msft', 'ibm', 'goog'] +indexsym = ['gspc', 'dji'] + + +# download data +dmall = {} +for sy in dj30: + dmall[sy] = getquotes(sy, start_date, end_date) + +# combine into WidePanel +pawp = pa.WidePanel.fromDict(dmall) +print(pawp.values.shape) + +# select closing prices +paclose = pawp.getMinorXS('close') + +# take log and first difference over time +paclose_ratereturn = paclose.apply(np.log).diff() + +import os +if not os.path.exists('dj30rr'): + #if pandas is updated, then sometimes unpickling fails, and need to save again + paclose_ratereturn.save('dj30rr') + +plt.figure() +paclose_ratereturn.plot() +plt.title('daily rate of return') + +# square the returns +paclose_ratereturn_vol = paclose_ratereturn.apply(lambda x:np.power(x,2)) +plt.figure() +plt.title('volatility (with 5 day moving average') +paclose_ratereturn_vol.plot() + +# use convolution to get moving average +paclose_ratereturn_vol_mov = paclose_ratereturn_vol.apply( + lambda x:np.convolve(x,np.ones(5)/5.,'same')) +paclose_ratereturn_vol_mov.plot() + + + +#plt.show() diff --git a/statsmodels/sandbox/examples/thirdparty/try_interchange.py b/statsmodels/sandbox/examples/thirdparty/try_interchange.py new file mode 100644 index 0000000..8c6d1c2 --- /dev/null +++ b/statsmodels/sandbox/examples/thirdparty/try_interchange.py @@ -0,0 +1,75 @@ +# -*- coding: utf-8 -*- +"""groupmean, groupby in pandas, la and tabular from a scikits.timeseries + +after a question on the scipy-user mailing list I tried to do +groupmeans, which in this case are duplicate dates, in the 3 packages. + +I'm using the versions that I had installed, which are all based on +repository checkout, but are not fully up-to-date + +some brief comments + +* la.larry and pandas.DataFrame require unique labels/index so + groups have to represented in a separate data structure +* pandas is missing GroupBy in the docs, but the docstring is helpful +* both la and pandas handle datetime objects as object arrays +* tabular requires conversion to structured dtype, but easy helper + functions or methods are available in scikits.timeseries and tabular + +* not too bad for a first try + +Created on Sat Jan 30 08:33:11 2010 +Author: josef-pktd +""" +from statsmodels.compat.python import lrange, zip +import numpy as np +import scikits.timeseries as ts + +s = ts.time_series([1,2,3,4,5], + dates=ts.date_array(["2001-01","2001-01", + "2001-02","2001-03","2001-03"],freq="M")) + +print('\nUsing la') +import la + +dta = la.larry(s.data, label=[lrange(len(s.data))]) +dat = la.larry(s.dates.tolist(), label=[lrange(len(s.data))]) +s2 = ts.time_series(dta.group_mean(dat).x,dates=ts.date_array(dat.x,freq="M")) +s2u = ts.remove_duplicated_dates(s2) +print(repr(s)) +print(dat) +print(repr(s2)) +print(repr(s2u)) + +print('\nUsing pandas') +import pandas +pdta = pandas.DataFrame(s.data, np.arange(len(s.data)), [1]) +pa = pdta.groupby(dict(zip(np.arange(len(s.data)), + s.dates.tolist()))).aggregate(np.mean) +s3 = ts.time_series(pa.values.ravel(), + dates=ts.date_array(pa.index.tolist(),freq="M")) + +print(pa) +print(repr(s3)) + +print('\nUsing tabular') +import tabular as tb +X = tb.tabarray(array=s.torecords(), dtype=s.torecords().dtype) +tabx = X.aggregate(On=['_dates'], AggFuncDict={'_data':np.mean,'_mask':np.all}) +s4 = ts.time_series(tabx['_data'],dates=ts.date_array(tabx['_dates'],freq="M")) +print(tabx) +print(repr(s4)) + +from finance import * #hack to make it run as standalone +#after running pandas/examples/finance.py +larmsft = la.larry(msft.values, [msft.index.tolist(), msft.columns.tolist()]) +laribm = la.larry(ibm.values, [ibm.index.tolist(), ibm.columns.tolist()]) +lar1 = la.larry(np.dstack((msft.values,ibm.values)), [ibm.index.tolist(), ibm.columns.tolist(), ['msft', 'ibm']]) +print(lar1.mean(0)) + + +y = la.larry([[1.0, 2.0], [3.0, 4.0]], [['a', 'b'], ['c', 'd']]) +ysr = np.empty(y.x.shape[0],dtype=([('index','S1')]+[(i,np.float) for i in y.label[1]])) +ysr['index'] = y.label[0] +for i in ysr.dtype.names[1:]: + ysr[i] = y[y.labelindex(i, axis=1)].x diff --git a/statsmodels/sandbox/examples/try_gmm_other.py b/statsmodels/sandbox/examples/try_gmm_other.py new file mode 100644 index 0000000..53948a2 --- /dev/null +++ b/statsmodels/sandbox/examples/try_gmm_other.py @@ -0,0 +1,142 @@ + +import numpy as np +from scipy import stats + +from statsmodels.regression.linear_model import OLS +from statsmodels.tools import tools +from statsmodels.sandbox.regression.gmm import IV2SLS, IVGMM, DistQuantilesGMM, spec_hausman + +from statsmodels.sandbox.regression import gmm + + + +if __name__ == '__main__': + import statsmodels.api as sm + examples = ['ivols', 'distquant'][:] + + if 'ivols' in examples: + exampledata = ['ols', 'iv', 'ivfake'][1] + nobs = nsample = 500 + sige = 3 + corrfactor = 0.025 + + + x = np.linspace(0,10, nobs) + X = tools.add_constant(np.column_stack((x, x**2)), prepend=False) + beta = np.array([1, 0.1, 10]) + + def sample_ols(exog): + endog = np.dot(exog, beta) + sige*np.random.normal(size=nobs) + return endog, exog, None + + def sample_iv(exog): + print('using iv example') + X = exog.copy() + e = sige * np.random.normal(size=nobs) + endog = np.dot(X, beta) + e + exog[:,0] = X[:,0] + corrfactor * e + z0 = X[:,0] + np.random.normal(size=nobs) + z1 = X.sum(1) + np.random.normal(size=nobs) + z2 = X[:,1] + z3 = (np.dot(X, np.array([2,1, 0])) + + sige/2. * np.random.normal(size=nobs)) + z4 = X[:,1] + np.random.normal(size=nobs) + instrument = np.column_stack([z0, z1, z2, z3, z4, X[:,-1]]) + return endog, exog, instrument + + def sample_ivfake(exog): + X = exog + e = sige * np.random.normal(size=nobs) + endog = np.dot(X, beta) + e + #X[:,0] += 0.01 * e + #z1 = X.sum(1) + np.random.normal(size=nobs) + #z2 = X[:,1] + z3 = (np.dot(X, np.array([2,1, 0])) + + sige/2. * np.random.normal(size=nobs)) + z4 = X[:,1] + np.random.normal(size=nobs) + instrument = np.column_stack([X[:,:2], z3, z4, X[:,-1]]) #last is constant + return endog, exog, instrument + + + if exampledata == 'ols': + endog, exog, _ = sample_ols(X) + instrument = exog + elif exampledata == 'iv': + endog, exog, instrument = sample_iv(X) + elif exampledata == 'ivfake': + endog, exog, instrument = sample_ivfake(X) + + + #using GMM and IV2SLS classes + #---------------------------- + + mod = gmm.IVGMM(endog, exog, instrument, nmoms=instrument.shape[1]) + res = mod.fit() + modgmmols = gmm.IVGMM(endog, exog, exog, nmoms=exog.shape[1]) + resgmmols = modgmmols.fit() + #the next is the same as IV2SLS, (Z'Z)^{-1} as weighting matrix + modgmmiv = gmm.IVGMM(endog, exog, instrument, nmoms=instrument.shape[1]) #same as mod + resgmmiv = modgmmiv.fitgmm(np.ones(exog.shape[1], float), + weights=np.linalg.inv(np.dot(instrument.T, instrument))) + modls = gmm.IV2SLS(endog, exog, instrument) + resls = modls.fit() + modols = OLS(endog, exog) + resols = modols.fit() + + print('\nIV case') + print('params') + print('IV2SLS', resls.params) + print('GMMIV ', resgmmiv) # .params + print('GMM ', res.params) + print('diff ', res.params - resls.params) + print('OLS ', resols.params) + print('GMMOLS', resgmmols.params) + + print('\nbse') + print('IV2SLS', resls.bse) + print('GMM ', res.bse) #bse currently only attached to model not results + print('diff ', res.bse - resls.bse) + print('%-diff', resls.bse / res.bse * 100 - 100) + print('OLS ', resols.bse) + print('GMMOLS', resgmmols.bse) + #print 'GMMiv', modgmmiv.bse + + print("Hausman's specification test") + print(resls.spec_hausman()) + print(spec_hausman(resols.params, res.params, resols.cov_params(), + res.cov_params())) + print(spec_hausman(resgmmols.params, res.params, resgmmols.cov_params(), + res.cov_params())) + + + if 'distquant' in examples: + + + #estimating distribution parameters from quantiles + #------------------------------------------------- + + #example taken from distribution_estimators.py + gparrvs = stats.genpareto.rvs(2, size=5000) + x0p = [1., gparrvs.min()-5, 1] + + moddist = gmm.DistQuantilesGMM(gparrvs, None, None, distfn=stats.genpareto) + #produces non-sense because optimal weighting matrix calculations don't + #apply to this case + #resgp = moddist.fit() #now with 'cov': LinAlgError: Singular matrix + pit1, wit1 = moddist.fititer([1.5,0,1.5], maxiter=1) + print(pit1) + p1 = moddist.fitgmm([1.5,0,1.5]) + print(p1) + moddist2 = gmm.DistQuantilesGMM(gparrvs, None, None, distfn=stats.genpareto, + pquant=np.linspace(0.01,0.99,10)) + pit1a, wit1a = moddist2.fititer([1.5,0,1.5], maxiter=1) + print(pit1a) + p1a = moddist2.fitgmm([1.5,0,1.5]) + print(p1a) + #Note: pit1a and p1a are the same and almost the same (1e-5) as + # fitquantilesgmm version (functions instead of class) + res1b = moddist2.fitonce([1.5,0,1.5]) + print(res1b.params) + print(res1b.bse) #they look much too large + print(np.sqrt(np.diag(res1b._cov_params))) + diff --git a/statsmodels/sandbox/examples/try_multiols.py b/statsmodels/sandbox/examples/try_multiols.py new file mode 100644 index 0000000..13d66a6 --- /dev/null +++ b/statsmodels/sandbox/examples/try_multiols.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +""" + +Created on Sun May 26 13:23:40 2013 + +Author: Josef Perktold, based on Enrico Giampieri's multiOLS +""" + +#import numpy as np +import pandas as pd + +import statsmodels.api as sm +from statsmodels.sandbox.multilinear import multiOLS, multigroup + +data = sm.datasets.longley.load_pandas() +df = data.exog +df['TOTEMP'] = data.endog + +#This will perform the specified linear model on all the +#other columns of the dataframe +res0 = multiOLS('GNP + 1', df) + +#This select only a certain subset of the columns +res = multiOLS('GNP + 0', df, ['GNPDEFL', 'TOTEMP', 'POP']) +print(res.to_string()) + + +url = "http://vincentarelbundock.github.com/" +url = url + "Rdatasets/csv/HistData/Guerry.csv" +df = pd.read_csv(url, index_col=1) #'dept') + +#evaluate the relationship between the various parameters whith the Wealth +pvals = multiOLS('Wealth', df)['adj_pvals', '_f_test'] + +#define the groups +groups = {} +groups['crime'] = ['Crime_prop', 'Infanticide', + 'Crime_parents', 'Desertion', 'Crime_pers'] +groups['religion'] = ['Donation_clergy', 'Clergy', 'Donations'] +groups['wealth'] = ['Commerce', 'Lottery', 'Instruction', 'Literacy'] + +#do the analysis of the significance +res3 = multigroup(pvals < 0.05, groups) +print(res3) diff --git a/statsmodels/sandbox/examples/try_quantile_regression.py b/statsmodels/sandbox/examples/try_quantile_regression.py new file mode 100644 index 0000000..19bb1c2 --- /dev/null +++ b/statsmodels/sandbox/examples/try_quantile_regression.py @@ -0,0 +1,49 @@ +'''Example to illustrate Quantile Regression + +Author: Josef Perktold + +''' + +import numpy as np +from statsmodels.compat.python import zip +import statsmodels.api as sm + +from statsmodels.regression.quantile_regression import QuantReg +sige = 5 +nobs, k_vars = 500, 5 +x = np.random.randn(nobs, k_vars) +#x[:,0] = 1 +y = x.sum(1) + sige * (np.random.randn(nobs)/2 + 1)**3 +p = 0.5 +exog = np.column_stack((np.ones(nobs), x)) +res_qr = QuantReg(y, exog).fit(p) + +res_qr2 = QuantReg(y, exog).fit(0.25) +res_qr3 = QuantReg(y, exog).fit(0.75) +res_ols = sm.OLS(y, exog).fit() + + +##print 'ols ', res_ols.params +##print '0.25', res_qr2 +##print '0.5 ', res_qr +##print '0.75', res_qr3 + +params = [res_ols.params, res_qr2.params, res_qr.params, res_qr3.params] +labels = ['ols', 'qr 0.25', 'qr 0.5', 'qr 0.75'] + +import matplotlib.pyplot as plt +#sortidx = np.argsort(y) +fitted_ols = np.dot(res_ols.model.exog, params[0]) +sortidx = np.argsort(fitted_ols) +x_sorted = res_ols.model.exog[sortidx] +fitted_ols = np.dot(x_sorted, params[0]) +plt.figure() +plt.plot(y[sortidx], 'o', alpha=0.75) +for lab, beta in zip(['ols', 'qr 0.25', 'qr 0.5', 'qr 0.75'], params): + print('%-8s'%lab, np.round(beta, 4)) + fitted = np.dot(x_sorted, beta) + lw = 2 if lab == 'ols' else 1 + plt.plot(fitted, lw=lw, label=lab) +plt.legend() + +plt.show() diff --git a/statsmodels/sandbox/examples/try_quantile_regression1.py b/statsmodels/sandbox/examples/try_quantile_regression1.py new file mode 100644 index 0000000..4a162f1 --- /dev/null +++ b/statsmodels/sandbox/examples/try_quantile_regression1.py @@ -0,0 +1,45 @@ +'''Example to illustrate Quantile Regression + +Author: Josef Perktold + +polynomial regression with systematic deviations above + +''' + +import numpy as np +from statsmodels.compat.python import zip +from scipy import stats +import statsmodels.api as sm + +from statsmodels.regression.quantile_regression import QuantReg + +sige = 0.1 +nobs, k_vars = 500, 3 +x = np.random.uniform(-1, 1, size=nobs) +x.sort() +exog = np.vander(x, k_vars+1)[:,::-1] +mix = 0.1 * stats.norm.pdf(x[:,None], loc=np.linspace(-0.5, 0.75, 4), scale=0.01).sum(1) +y = exog.sum(1) + mix + sige * (np.random.randn(nobs)/2 + 1)**3 + +p = 0.5 +res_qr = QuantReg(y, exog).fit(p) +res_qr2 = QuantReg(y, exog).fit(0.1) +res_qr3 = QuantReg(y, exog).fit(0.75) +res_ols = sm.OLS(y, exog).fit() + +params = [res_ols.params, res_qr2.params, res_qr.params, res_qr3.params] +labels = ['ols', 'qr 0.1', 'qr 0.5', 'qr 0.75'] + +import matplotlib.pyplot as plt + +plt.figure() +plt.plot(x, y, '.', alpha=0.5) +for lab, beta in zip(['ols', 'qr 0.1', 'qr 0.5', 'qr 0.75'], params): + print('%-8s'%lab, np.round(beta, 4)) + fitted = np.dot(exog, beta) + lw = 2 + plt.plot(x, fitted, lw=lw, label=lab) +plt.legend() +plt.title('Quantile Regression') + +plt.show() diff --git a/statsmodels/sandbox/examples/try_smoothers.py b/statsmodels/sandbox/examples/try_smoothers.py new file mode 100644 index 0000000..81a12c9 --- /dev/null +++ b/statsmodels/sandbox/examples/try_smoothers.py @@ -0,0 +1,99 @@ +# -*- coding: utf-8 -*- +""" +Created on Tue Nov 01 15:17:52 2011 + +Author: Mike +Author: Josef + +mainly script for checking Kernel Regression +""" +import numpy as np + +if __name__ == "__main__": + #from statsmodels.sandbox.nonparametric import smoothers as s + from statsmodels.sandbox.nonparametric import smoothers, kernels + import matplotlib.pyplot as plt + #from numpy import sin, array, random + + import time + np.random.seed(500) + nobs = 250 + sig_fac = 0.5 + #x = np.random.normal(size=nobs) + x = np.random.uniform(-2, 2, size=nobs) + #y = np.array([np.sin(i*5)/i + 2*i + (3+i)*np.random.normal() for i in x]) + y = np.sin(x*5)/x + 2*x + sig_fac * (3+x)*np.random.normal(size=nobs) + + K = kernels.Biweight(0.25) + K2 = kernels.CustomKernel(lambda x: (1 - x*x)**2, 0.25, domain = [-1.0, + 1.0]) + + KS = smoothers.KernelSmoother(x, y, K) + KS2 = smoothers.KernelSmoother(x, y, K2) + + + KSx = np.arange(-3, 3, 0.1) + start = time.time() + KSy = KS.conf(KSx) + KVar = KS.std(KSx) + print(time.time() - start) # This should be significantly quicker... + start = time.time() # + KS2y = KS2.conf(KSx) # + K2Var = KS2.std(KSx) # + print(time.time() - start) # ...than this. + + KSConfIntx, KSConfInty = KS.conf(15) + + print("Norm const should be 0.9375") + print(K2.norm_const) + + print("L2 Norms Should Match:") + print(K.L2Norm) + print(K2.L2Norm) + + print("Fit values should match:") + #print zip(KSy, KS2y) + print(KSy[28]) + print(KS2y[28]) + + print("Var values should match:") + #print zip(KVar, K2Var) + print(KVar[39]) + print(K2Var[39]) + + fig = plt.figure() + ax = fig.add_subplot(221) + ax.plot(x, y, "+") + ax.plot(KSx, KSy, "-o") + #ax.set_ylim(-20, 30) + ax2 = fig.add_subplot(222) + ax2.plot(KSx, KVar, "-o") + + ax3 = fig.add_subplot(223) + ax3.plot(x, y, "+") + ax3.plot(KSx, KS2y, "-o") + #ax3.set_ylim(-20, 30) + ax4 = fig.add_subplot(224) + ax4.plot(KSx, K2Var, "-o") + + fig2 = plt.figure() + ax5 = fig2.add_subplot(111) + ax5.plot(x, y, "+") + ax5.plot(KSConfIntx, KSConfInty, "-o") + + import statsmodels.nonparametric.smoothers_lowess as lo + ys = lo.lowess(y, x) + ax5.plot(ys[:,0], ys[:,1], 'b-') + ys2 = lo.lowess(y, x, frac=0.25) + ax5.plot(ys2[:,0], ys2[:,1], 'b--', lw=2) + + #need to sort for matplolib plot ? + xind = np.argsort(x) + pmod = smoothers.PolySmoother(5, x[xind]) + pmod.fit(y[xind]) + + yp = pmod(x[xind]) + ax5.plot(x[xind], yp, 'k-') + ax5.set_title('Kernel regression, lowess - blue, polysmooth - black') + + #plt.show() diff --git a/statsmodels/sandbox/formula.py b/statsmodels/sandbox/formula.py new file mode 100644 index 0000000..e3f43f3 --- /dev/null +++ b/statsmodels/sandbox/formula.py @@ -0,0 +1,766 @@ +""" +Provides the basic classes needed to specify statistical models. + + + +namespace : dictionary + mapping from names to data, used to associate data to a formula or term + + +""" +from statsmodels.compat.collections import OrderedDict +from statsmodels.compat.python import (iterkeys, lrange, callable, string_types, + itervalues, range) +import copy +import numpy as np + +__docformat__ = 'restructuredtext' + +default_namespace = {} + +class Term(object): + """ + This class is very simple: it is just a named term in a model formula. + + It is also callable: by default it namespace[self.name], where namespace + defaults to formula.default_namespace. + When called in an instance of formula, + the namespace used is that formula's namespace. + + Inheritance of the namespace under +,*,- operations: + ---------------------------------------------------- + + By default, the namespace is empty, which means it must be + specified before evaluating the design matrix. + + When it is unambiguous, the namespaces of objects are derived from the + context. + + Rules: + ------ + + i) "X * I", "X + I", "X**i": these inherit X's namespace + ii) "F.main_effect()": this inherits the Factor F's namespace + iii) "A-B": this inherits A's namespace + iv) if A.namespace == B.namespace, then A+B inherits this namespace + v) if A.namespace == B.namespace, then A*B inherits this namespace + + Equality of namespaces: + ----------------------- + + This is done by comparing the namespaces directly, if + an exception is raised in the check of equality, they are + assumed not to be equal. + """ + + def __pow__(self, power): + """ + Raise the quantitative term's values to an integer power, i.e. + polynomial. + """ + + try: + power = float(power) + except: + raise ValueError('expecting a float') + + if power == int(power): + name = '%s^%d' % (self.name, int(power)) + else: + name = '%s^%0.2f' % (self.name, power) + + value = Quantitative(name, func=self, transform=lambda x: np.power(x, power)) + value.power = power + value.namespace = self.namespace + return value + + def __init__(self, name, func=None, termname=None): + + self.name = name + self.__namespace = None + if termname is None: + self.termname = name + else: + self.termname = termname + + if not isinstance(self.termname, string_types): + raise ValueError('expecting a string for termname') + if func: + self.func = func + + # Namespace in which self.name will be looked up in, if needed + + def _get_namespace(self): + if isinstance(self.__namespace, np.ndarray): + return self.__namespace + else: return self.__namespace or default_namespace + + def _set_namespace(self, value): self.__namespace = value + def _del_namespace(self): del self.__namespace + namespace = property(_get_namespace, _set_namespace, _del_namespace) + + def __str__(self): + """ + '' % self.termname + """ + return '' % self.termname + + def __add__(self, other): + """ + Formula(self) + Formula(other) + """ + fother = Formula(other, namespace=other.namespace) + f = fother + self + if _namespace_equal(fother.namespace, self.namespace): + f.namespace = self.namespace + return f + + def __mul__(self, other): + """ + Formula(self) * Formula(other) + """ + + if isinstance(other, Term) and other.name is 'intercept': + f = Formula(self, namespace=self.namespace) + elif self.name is 'intercept': + f = Formula(other, namespace=other.namespace) + else: + other = Formula(other, namespace=other.namespace) + f = other * self + if _namespace_equal(other.namespace, self.namespace): + f.namespace = self.namespace + return f + + def names(self): + """ + Return the names of the columns in design associated to the terms, + i.e. len(self.names()) = self().shape[0]. + """ + if isinstance(self.name, string_types): + return [self.name] + else: + return list(self.name) + + def __call__(self, *args, **kw): + """ + Return the columns associated to self in a design matrix. + If the term has no 'func' attribute, it returns + ``self.namespace[self.termname]`` + else, it returns + ``self.func(*args, **kw)`` + """ + + if not hasattr(self, 'func'): + val = self.namespace[self.termname] + else: + val = self.func + if callable(val): + if isinstance(val, (Term, Formula)): + val = copy.copy(val) + val.namespace = self.namespace + val = val(*args, **kw) + + val = np.asarray(val) + return np.squeeze(val) + +class Factor(Term): + """A categorical factor.""" + + def __init__(self, termname, keys, ordinal=False): + """ + Factor is initialized with keys, representing all valid + levels of the factor. + + If ordinal is False, keys can have repeats: set(keys) is what is + used. + + If ordinal is True, the order is taken from the keys, and + there should be no repeats. + """ + + if not ordinal: + self.keys = list(set(keys)) + self.keys.sort() + else: + self.keys = keys + if len(set(keys)) != len(list(keys)): + raise ValueError('keys for ordinal Factor should be unique, in increasing order') + self._name = termname + self.termname = termname + self.ordinal = ordinal + + if self.ordinal: + name = self.termname + else: + name = ['(%s==%s)' % (self.termname, str(key)) for key in self.keys] + + Term.__init__(self, name, termname=self.termname, func=self.get_columns) + + def get_columns(self, *args, **kw): + """ + Calling function for factor instance. + """ + + v = self.namespace[self._name] + while True: + if callable(v): + if isinstance(v, (Term, Formula)): + v = copy.copy(v) + v.namespace = self.namespace + v = v(*args, **kw) + else: break + + n = len(v) + + if self.ordinal: + col = [float(self.keys.index(v[i])) for i in range(n)] + return np.array(col) + + else: + value = [] + for key in self.keys: + col = [float((v[i] == key)) for i in range(n)] + value.append(col) + return np.array(value) + + def values(self, *args, **kw): + """ + Return the keys of the factor, rather than the columns of the design + matrix. + """ + + del(self.func) + val = self(*args, **kw) + self.func = self.get_columns + return val + + def verify(self, values): + """ + Verify that all values correspond to valid keys in self. + """ + s = set(values) + if not s.issubset(self.keys): + raise ValueError('unknown keys in values') + + def __add__(self, other): + """ + Formula(self) + Formula(other) + + When adding \'intercept\' to a factor, this just returns + + Formula(self, namespace=self.namespace) + + """ + + if isinstance(other, Term) and other.name is 'intercept': + return Formula(self, namespace=self.namespace) + else: + return Term.__add__(self, other) + + def main_effect(self, reference=None): + """ + Return the 'main effect' columns of a factor, choosing + an optional reference key. + + The reference key can be one of the keys of the Factor, + or an integer, representing which column to remove. + It defaults to 0. + + """ + + names = self.names() + + if reference is None: + reference = 0 + else: + try: + reference = self.keys.index(reference) + except ValueError: + reference = int(reference) + + def maineffect_func(value, reference=reference): + rvalue = [] + keep = lrange(value.shape[0]) + keep.pop(reference) + for i in range(len(keep)): + rvalue.append(value[keep[i]] - value[reference]) + return np.array(rvalue) + + keep = lrange(len(self.names())) + keep.pop(reference) + __names = self.names() + _names = ['%s-%s' % (__names[keep[i]], __names[reference]) for i in range(len(keep))] + value = Quantitative(_names, func=self, + termname='%s:maineffect' % self.termname, + transform=maineffect_func) + value.namespace = self.namespace + return value + + def __getitem__(self, key): + """ + Retrieve the column corresponding to key in a Formula. + + Parameters + ---------- + key : Factor key + one of the Factor's keys + + Returns + ------- + ndarray corresponding to key, when evaluated in current namespace + """ + if not self.ordinal: + i = self.names().index('(%s==%s)' % (self.termname, str(key))) + return self()[i] + else: + v = self.namespace[self._name] + return np.array([(vv == key) for vv in v]).astype(np.float) + + +class Quantitative(Term): + """ + A subclass of term that can be used to apply point transformations + of another term, i.e. to take powers: + + >>> import numpy as np + >>> from nipy.fixes.scipy.stats.models import formula + >>> X = np.linspace(0,10,101) + >>> x = formula.Term('X') + >>> x.namespace={'X':X} + >>> x2 = x**2 + >>> print np.allclose(x()**2, x2()) + True + >>> x3 = formula.Quantitative('x2', func=x, transform=lambda x: x**2) + >>> x3.namespace = x.namespace + >>> print np.allclose(x()**2, x3()) + True + + """ + + def __init__(self, name, func=None, termname=None, transform=lambda x: x): + self.transform = transform + Term.__init__(self, name, func=func, termname=termname) + + def __call__(self, *args, **kw): + """ + A quantitative is just like term, except there is an additional + transformation: self.transform. + + """ + return self.transform(Term.__call__(self, *args, **kw)) + +class Formula(object): + """ + A formula object for manipulating design matrices in regression models, + essentially consisting of a list of term instances. + + The object supports addition and multiplication which correspond + to concatenation and pairwise multiplication, respectively, + of the columns of the two formulas. + + """ + + def _get_namespace(self): + if isinstance(self.__namespace, np.ndarray): + return self.__namespace + else: return self.__namespace or default_namespace + + def _set_namespace(self, value): self.__namespace = value + def _del_namespace(self): del self.__namespace + namespace = property(_get_namespace, _set_namespace, _del_namespace) + + def _terms_changed(self): + self._names = self.names() + self._termnames = self.termnames() + + def __init__(self, termlist, namespace=default_namespace): + """ + Create a formula from either: + i. a `formula` object + ii. a sequence of `term` instances + iii. one `term` + """ + + + self.__namespace = namespace + if isinstance(termlist, Formula): + self.terms = copy.copy(list(termlist.terms)) + elif isinstance(termlist, list): + self.terms = termlist + elif isinstance(termlist, Term): + self.terms = [termlist] + else: + raise ValueError + + self._terms_changed() + + def __str__(self): + """ + String representation of list of termnames of a formula. + """ + value = [] + for term in self.terms: + value += [term.termname] + return '' % ' + '.join(value) + + def __call__(self, *args, **kw): + + """ + Create (transpose) of the design matrix of the formula within + namespace. Extra arguments are passed to each term instance. If + the formula just contains an intercept, then the keyword + argument 'nrow' indicates the number of rows (observations). + """ + + if 'namespace' in kw: + namespace = kw['namespace'] + else: + namespace = self.namespace + + + allvals = [] + intercept = False + iindex = 0 + for t in self.terms: + t = copy.copy(t) + t.namespace = namespace + val = t(*args, **kw) + + isintercept = False + if hasattr(t, "termname"): + if t.termname == 'intercept': + intercept = True + isintercept = True + interceptindex = iindex + allvals.append(None) + + if val.ndim == 1 and not isintercept: + val.shape = (1, val.shape[0]) + allvals.append(val) + elif not isintercept: + allvals.append(val) + iindex += 1 + + if not intercept: + try: + allvals = np.concatenate(allvals) + except: + pass + else: + nrow = kw.get('nrow', -1) + if allvals != []: + if interceptindex > 0: + n = allvals[0].shape[1] + else: + n = allvals[1].shape[1] + allvals[interceptindex] = np.ones((1,n), np.float64) + allvals = np.concatenate(allvals) + elif nrow <= 1: + raise ValueError('with only intercept in formula, keyword \'nrow\' argument needed') + else: + allvals = I(nrow=nrow) + allvals.shape = (1,) + allvals.shape + return np.squeeze(allvals) + + def hasterm(self, query_term): + """ + Determine whether a given term is in a formula. + """ + + if not isinstance(query_term, Formula): + if isinstance(query_term, string_types): + try: + query = self[query_term] + return query.termname in self.termnames() + except: + return False + elif isinstance(query_term, Term): + return query_term.termname in self.termnames() + elif len(query_term.terms) == 1: + query_term = query_term.terms[0] + return query_term.termname in self.termnames() + else: + raise ValueError('more than one term passed to hasterm') + + def __getitem__(self, name): + t = self.termnames() + if name in t: + return self.terms[t.index(name)] + else: + raise KeyError('formula has no such term: %s' % repr(name)) + + def termcolumns(self, query_term, dict=False): + """ + Return a list of the indices of all columns associated + to a given term. + """ + + if self.hasterm(query_term): + names = query_term.names() + value = OrderedDict() + for name in names: + value[name] = self._names.index(name) + else: + raise ValueError('term not in formula') + if dict: + return value + else: + return list(itervalues(value)) + + def names(self): + """ + Return a list of the names in the formula. The order of the + names corresponds to the order of the columns when self + is evaluated. + """ + + allnames = [] + for term in self.terms: + allnames += term.names() + return allnames + + def termnames(self): + """ + Return a list of the term names in the formula. These + are the names of each term instance in self. + """ + + names = [] + for term in self.terms: + names += [term.termname] + return names + + def design(self, *args, **kw): + """ + ``transpose(self(*args, **kw))`` + """ + return self(*args, **kw).T + + def __mul__(self, other, nested=False): + """ + This returns a formula whose columns are the pairwise + product of the columns of self and other. + + TO DO: check for nesting relationship. Should not be too difficult. + """ + + other = Formula(other) + + selftermnames = self.termnames() + othertermnames = other.termnames() + + I = len(selftermnames) + J = len(othertermnames) + + terms = [] + termnames = [] + + for i in range(I): + for j in range(J): + termname = '%s*%s' % (str(selftermnames[i]), str(othertermnames[j])) + pieces = sorted(termname.split('*')) + termname = '*'.join(pieces) + termnames.append(termname) + + selfnames = self.terms[i].names() + othernames = other.terms[j].names() + + if self.terms[i].name is 'intercept': + _term = other.terms[j] + _term.namespace = other.namespace + elif other.terms[j].name is 'intercept': + _term = self.terms[i] + _term.namespace = self.namespace + else: + names = [] + + d1 = len(selfnames) + d2 = len(othernames) + + for r in range(d1): + for s in range(d2): + name = '%s*%s' % (str(selfnames[r]), str(othernames[s])) + pieces = sorted(name.split('*')) + name = '*'.join(pieces) + names.append(name) + + def product_func(value, d1=d1, d2=d2): + + out = [] + for r in range(d1): + for s in range(d2): + out.append(value[r] * value[d1+s]) + return np.array(out) + + cself = copy.copy(self.terms[i]) + cother = copy.copy(other.terms[j]) + sumterms = cself + cother + sumterms.terms = [cself, cother] # enforce the order we want + + _term = Quantitative(names, func=sumterms, + termname=termname, + transform=product_func) + + if _namespace_equal(self.namespace, other.namespace): + _term.namespace = self.namespace + + terms.append(_term) + + return Formula(terms) + + def __add__(self, other): + + """ + Return a formula whose columns are the + concatenation of the columns of self and other. + + terms in the formula are sorted alphabetically. + """ + + def _delist(x): + if isinstance(x, list): + return x[0] + else: + return x + + other = Formula(other) + terms = self.terms + other.terms + pieces = sorted([(_delist(term.name), term) for term in terms], key=lambda x: x[0]) + terms = [piece[1] for piece in pieces] + f = Formula(terms) + if _namespace_equal(self.namespace, other.namespace): + f.namespace = self.namespace + return f + + def __sub__(self, other): + + """ + Return a formula with all terms in other removed from self. + If other contains term instances not in formula, this + function does not raise an exception. + """ + + other = Formula(other) + terms = copy.copy(self.terms) + + for term in other.terms: + for i in range(len(terms)): + if terms[i].termname == term.termname: + terms.pop(i) + break + f = Formula(terms) + f.namespace = self.namespace + return f + +def isnested(A, B, namespace=None): + """ + Is factor B nested within factor A or vice versa: a very crude test + which depends on the namespace. + + If they are nested, returns (True, F) where F is the finest + level of the relationship. Otherwise, returns (False, None) + + """ + + if namespace is not None: + A = copy.copy(A); A.namespace = namespace + B = copy.copy(B); B.namespace = namespace + + a = A(values=True)[0] + b = B(values=True)[0] + + if len(a) != len(b): + raise ValueError('A() and B() should be sequences of the same length') + + nA = len(set(a)) + nB = len(set(b)) + n = max(nA, nB) + + AB = [(a[i],b[i]) for i in range(len(a))] + nAB = len(set(AB)) + + if nAB == n: + if nA > nB: + F = A + else: + F = B + return (True, F) + else: + return (False, None) + +def _intercept_fn(nrow=1, **extra): + return np.ones((1,nrow)) + +I = Term('intercept', func=_intercept_fn) +I.__doc__ = """ +Intercept term in a formula. If intercept is the +only term in the formula, then a keyword argument +\'nrow\' is needed. + +>>> from nipy.fixes.scipy.stats.models.formula import Formula, I +>>> I() +array(1.0) +>>> I(nrow=5) +array([ 1., 1., 1., 1., 1.]) +>>> f=Formula(I) +>>> f(nrow=5) +array([1, 1, 1, 1, 1]) + +""" + +def interactions(terms, order=[1,2]): + """ + Output all pairwise interactions of given order of a + sequence of terms. + + The argument order is a sequence specifying which order + of interactions should be generated -- the default + creates main effects and two-way interactions. If order + is an integer, it is changed to range(1,order+1), so + order=3 is equivalent to order=[1,2,3], generating + all one, two and three-way interactions. + + If any entry of order is greater than len(terms), it is + effectively treated as len(terms). + + >>> print interactions([Term(l) for l in ['a', 'b', 'c']]) + + >>> + >>> print interactions([Term(l) for l in ['a', 'b', 'c']], order=list(range(5))) + + >>> + + """ + l = len(terms) + + values = {} + + if np.asarray(order).shape == (): + order = lrange(1, int(order)+1) + + # First order + + for o in order: + I = np.indices((l,)*(o)) + I.shape = (I.shape[0], np.product(I.shape[1:])) + for m in range(I.shape[1]): + + # only keep combinations that have unique entries + + if (np.unique(I[:,m]).shape == I[:,m].shape and + np.alltrue(np.equal(np.sort(I[:,m]), I[:,m]))): + ll = [terms[j] for j in I[:,m]] + v = ll[0] + for ii in range(len(ll)-1): + v *= ll[ii+1] + values[tuple(I[:,m])] = v + + key = list(iterkeys(values))[0] + value = values[key]; del(values[key]) + + for v in itervalues(values): + value += v + return value + +def _namespace_equal(space1, space2): + return space1 is space2 diff --git a/statsmodels/sandbox/gam.py b/statsmodels/sandbox/gam.py new file mode 100644 index 0000000..f9d259b --- /dev/null +++ b/statsmodels/sandbox/gam.py @@ -0,0 +1,434 @@ +""" +Generalized additive models + + + +Requirements for smoothers +-------------------------- + +smooth(y, weights=xxx) : ? no return ? alias for fit +predict(x=None) : smoothed values, fittedvalues or for new exog +df_fit() : degress of freedom of fit ? + + +Notes +----- +- using PolySmoother works for AdditiveModel, and GAM with Poisson and Binomial +- testfailure with Gamma, no other families tested +- there is still an indeterminacy in the split up of the constant across + components (smoothers) and alpha, sum, i.e. constant, looks good. + - role of offset, that I haven't tried to figure out yet + +Refactoring +----------- +currently result is attached to model instead of other way around +split up Result in class for AdditiveModel and for GAM, +subclass GLMResults, needs verification that result statistics are appropriate +how much inheritance, double inheritance? +renamings and cleanup +interface to other smoothers, scipy splines + +basic unittests as support for refactoring exist, but we should have a test +case for gamma and the others. Advantage of PolySmoother is that we can +benchmark against the parametric GLM results. + +""" + +# JP: +# changes: use PolySmoother instead of crashing bspline +# TODO: check/catalogue required interface of a smoother +# TODO: replace default smoother by corresponding function to initialize +# other smoothers +# TODO: fix iteration, don't define class with iterator methods, use looping; +# add maximum iteration and other optional stop criteria +# fixed some of the dimension problems in PolySmoother, +# now graph for example looks good +# NOTE: example script is now in examples folder +#update: I did some of the above, see module docstring + +from statsmodels.compat.python import next, range +import numpy as np + +from statsmodels.genmod import families +from statsmodels.sandbox.nonparametric.smoothers import PolySmoother +from statsmodels.genmod.generalized_linear_model import GLM +from statsmodels.tools.sm_exceptions import IterationLimitWarning, iteration_limit_doc + +import warnings + +DEBUG = False + +def default_smoother(x, s_arg=None): + ''' + + ''' +# _x = x.copy() +# _x.sort() + _x = np.sort(x) + n = x.shape[0] + # taken form smooth.spline in R + + #if n < 50: + if n < 500: + nknots = n + else: + a1 = np.log(50) / np.log(2) + a2 = np.log(100) / np.log(2) + a3 = np.log(140) / np.log(2) + a4 = np.log(200) / np.log(2) + if n < 200: + nknots = 2**(a1 + (a2 - a1) * (n - 50)/150.) + elif n < 800: + nknots = 2**(a2 + (a3 - a2) * (n - 200)/600.) + elif n < 3200: + nknots = 2**(a3 + (a4 - a3) * (n - 800)/2400.) + else: + nknots = 200 + (n - 3200.)**0.2 + knots = _x[np.linspace(0, n-1, nknots).astype(np.int32)] + + #s = SmoothingSpline(knots, x=x.copy()) + #when I set order=2, I get nans in the GAM prediction + if s_arg is None: + order = 3 #what about knots? need smoother *args or **kwds + else: + order = s_arg + s = PolySmoother(order, x=x.copy()) #TODO: change order, why copy? +# s.gram(d=2) +# s.target_df = 5 + return s + +class Offset(object): + + def __init__(self, fn, offset): + self.fn = fn + self.offset = offset + + def __call__(self, *args, **kw): + return self.fn(*args, **kw) + self.offset + +class Results(object): + + def __init__(self, Y, alpha, exog, smoothers, family, offset): + self.nobs, self.k_vars = exog.shape #assumes exog is 2d + #weird: If I put the previous line after the definition of self.mu, + # then the attributed don't get added + self.Y = Y + self.alpha = alpha + self.smoothers = smoothers + self.offset = offset + self.family = family + self.exog = exog + self.offset = offset + self.mu = self.linkinversepredict(exog) #TODO: remove __call__ + + + + def __call__(self, exog): + '''expected value ? check new GLM, same as mu for given exog + maybe remove this + ''' + return self.linkinversepredict(exog) + + def linkinversepredict(self, exog): #TODO what's the name in GLM + '''expected value ? check new GLM, same as mu for given exog + ''' + return self.family.link.inverse(self.predict(exog)) + + def predict(self, exog): + '''predict response, sum of smoothed components + TODO: What's this in the case of GLM, corresponds to X*beta ? + ''' + #note: sum is here over axis=0, + #TODO: transpose in smoothed and sum over axis=1 + + #BUG: there is some inconsistent orientation somewhere + #temporary hack, won't work for 1d + #print dir(self) + #print 'self.nobs, self.k_vars', self.nobs, self.k_vars + exog_smoothed = self.smoothed(exog) + #print 'exog_smoothed.shape', exog_smoothed.shape + if exog_smoothed.shape[0] == self.k_vars: + import warnings + warnings.warn("old orientation, colvars, will go away", + FutureWarning) + return np.sum(self.smoothed(exog), axis=0) + self.alpha + if exog_smoothed.shape[1] == self.k_vars: + return np.sum(exog_smoothed, axis=1) + self.alpha + else: + raise ValueError('shape mismatch in predict') + + def smoothed(self, exog): + '''get smoothed prediction for each component + + ''' + #bug: with exog in predict I get a shape error + #print 'smoothed', exog.shape, self.smoothers[0].predict(exog).shape + #there was a mistake exog didn't have column index i + return np.array([self.smoothers[i].predict(exog[:,i]) + self.offset[i] + #shouldn't be a mistake because exog[:,i] is attached to smoother, but + #it is for different exog + #return np.array([self.smoothers[i].predict() + self.offset[i] + for i in range(exog.shape[1])]).T + + def smoothed_demeaned(self, exog): + components = self.smoothed(exog) + means = components.mean(0) + constant = means.sum() + self.alpha + components_demeaned = components - means + return components_demeaned, constant + +class AdditiveModel(object): + '''additive model with non-parametric, smoothed components + + Parameters + ---------- + exog : ndarray + smoothers : None or list of smoother instances + smoother instances not yet checked + weights : None or ndarray + family : None or family instance + I think only used because of shared results with GAM and subclassing. + If None, then Gaussian is used. + ''' + + def __init__(self, exog, smoothers=None, weights=None, family=None): + self.exog = exog + if not weights is None: + self.weights = weights + else: + self.weights = np.ones(self.exog.shape[0]) + + self.smoothers = smoothers or [default_smoother(exog[:,i]) for i in range(exog.shape[1])] + + #TODO: why do we set here df, refactoring temporary? + for i in range(exog.shape[1]): + self.smoothers[i].df = 10 + + if family is None: + self.family = families.Gaussian() + else: + self.family = family + #self.family = families.Gaussian() + + def _iter__(self): + '''initialize iteration ?, should be removed + + ''' + self.iter = 0 + self.dev = np.inf + return self + + def next(self): + '''internal calculation for one fit iteration + + BUG: I think this does not improve, what is supposed to improve + offset doesn't seem to be used, neither an old alpha + The smoothers keep coef/params from previous iteration + ''' + _results = self.results + Y = self.results.Y + mu = _results.predict(self.exog) + #TODO offset is never used ? + offset = np.zeros(self.exog.shape[1], np.float64) + alpha = (Y * self.weights).sum() / self.weights.sum() + for i in range(self.exog.shape[1]): + tmp = self.smoothers[i].predict() + #TODO: check what smooth needs to do + #smooth (alias for fit, fit given x to new y and attach + #print 'next shape', (Y - alpha - mu + tmp).shape + bad = np.isnan(Y - alpha - mu + tmp).any() + if bad: #temporary assert while debugging + print(Y, alpha, mu, tmp) + raise ValueError("nan encountered") + #self.smoothers[i].smooth(Y - alpha - mu + tmp, + self.smoothers[i].smooth(Y - mu + tmp, + weights=self.weights) + tmp2 = self.smoothers[i].predict() #fittedvalues of previous smooth/fit + self.results.offset[i] = -(tmp2*self.weights).sum() / self.weights.sum() + #self.offset used in smoothed + if DEBUG: + print(self.smoothers[i].params) + mu += tmp2 - tmp + #change setting offset here: tests still pass, offset equal to constant + #in component ??? what's the effect of offset + offset = self.results.offset + #print self.iter + #self.iter += 1 #missing incrementing of iter counter NOT + return Results(Y, alpha, self.exog, self.smoothers, self.family, offset) + + def cont(self): + '''condition to continue iteration loop + + Parameters + ---------- + tol + + Returns + ------- + cont : bool + If true, then iteration should be continued. + + ''' + self.iter += 1 #moved here to always count, not necessary + if DEBUG: + print(self.iter, self.results.Y.shape) + print(self.results.predict(self.exog).shape, self.weights.shape) + curdev = (((self.results.Y - self.results.predict(self.exog))**2) * self.weights).sum() + + if self.iter > self.maxiter: #kill it, no max iterationoption + return False + if np.fabs((self.dev - curdev) / curdev) < self.rtol: + self.dev = curdev + return False + + #self.iter += 1 + self.dev = curdev + return True + + def df_resid(self): + '''degrees of freedom of residuals, ddof is sum of all smoothers df + ''' + return self.results.Y.shape[0] - np.array([self.smoothers[i].df_fit() for i in range(self.exog.shape[1])]).sum() + + def estimate_scale(self): + '''estimate standard deviation of residuals + ''' + #TODO: remove use of self.results.__call__ + return ((self.results.Y - self.results(self.exog))**2).sum() / self.df_resid() + + def fit(self, Y, rtol=1.0e-06, maxiter=30): + '''fit the model to a given endogenous variable Y + + This needs to change for consistency with statsmodels + + ''' + self.rtol = rtol + self.maxiter = maxiter + #iter(self) # what does this do? anything? + self._iter__() + mu = 0 + alpha = (Y * self.weights).sum() / self.weights.sum() + + offset = np.zeros(self.exog.shape[1], np.float64) + + for i in range(self.exog.shape[1]): + self.smoothers[i].smooth(Y - alpha - mu, + weights=self.weights) + tmp = self.smoothers[i].predict() + offset[i] = (tmp * self.weights).sum() / self.weights.sum() + tmp -= tmp.sum() + mu += tmp + + self.results = Results(Y, alpha, self.exog, self.smoothers, self.family, offset) + + while self.cont(): + self.results = self.next() + + if self.iter >= self.maxiter: + warnings.warn(iteration_limit_doc, IterationLimitWarning) + + return self.results + +class Model(GLM, AdditiveModel): +#class Model(AdditiveModel): + #TODO: what does GLM do? Is it actually used ? + #only used in __init__, dropping it doesn't change results + #but where gets family attached now? - weird, it's Gaussian in this case now + #also where is the link defined? + #AdditiveModel overwrites family and sets it to Gaussian - corrected + + #I think both GLM and AdditiveModel subclassing is only used in __init__ + + #niter = 2 + +# def __init__(self, exog, smoothers=None, family=family.Gaussian()): +# GLM.__init__(self, exog, family=family) +# AdditiveModel.__init__(self, exog, smoothers=smoothers) +# self.family = family + def __init__(self, endog, exog, smoothers=None, family=families.Gaussian()): + #self.family = family + #TODO: inconsistent super __init__ + AdditiveModel.__init__(self, exog, smoothers=smoothers, family=family) + GLM.__init__(self, endog, exog, family=family) + assert self.family is family #make sure we got the right family + + def next(self): + _results = self.results + Y = _results.Y + if np.isnan(self.weights).all(): + print("nanweights1") + + _results.mu = self.family.link.inverse(_results.predict(self.exog)) + #eta = _results.predict(self.exog) + #_results.mu = self.family.fitted(eta) + weights = self.family.weights(_results.mu) + if np.isnan(weights).all(): + self.weights = weights + print("nanweights2") + self.weights = weights + if DEBUG: + print('deriv isnan', np.isnan(self.family.link.deriv(_results.mu)).any()) + + #Z = _results.predict(self.exog) + \ + Z = _results.predict(self.exog) + \ + self.family.link.deriv(_results.mu) * (Y - _results.mu) #- _results.alpha #?added alpha + + m = AdditiveModel(self.exog, smoothers=self.smoothers, + weights=self.weights, family=self.family) + + #TODO: I don't know what the next two lines do, Z, Y ? which is endog? + #Y is original endog, Z is endog for the next step in the iterative solver + + _results = m.fit(Z) + self.history.append([Z, _results.predict(self.exog)]) + _results.Y = Y + _results.mu = self.family.link.inverse(_results.predict(self.exog)) + self.iter += 1 + self.results = _results + + return _results + + def estimate_scale(self, Y=None): + """ + Return Pearson\'s X^2 estimate of scale. + """ + + if Y is None: + Y = self.Y + resid = Y - self.results.mu + return (np.power(resid, 2) / self.family.variance(self.results.mu)).sum() \ + / self.df_resid #TODO check this + #/ AdditiveModel.df_resid(self) #what is the class doing here? + + + def fit(self, Y, rtol=1.0e-06, maxiter=30): + + self.rtol = rtol + self.maxiter = maxiter + + self.Y = np.asarray(Y, np.float64) + + self.history = [] + + #iter(self) + self._iter__() + + #TODO code duplication with next? + alpha = self.Y.mean() + mu0 = self.family.starting_mu(Y) + #Z = self.family.link(alpha) + self.family.link.deriv(alpha) * (Y - alpha) + Z = self.family.link(alpha) + self.family.link.deriv(alpha) * (Y - mu0) + m = AdditiveModel(self.exog, smoothers=self.smoothers, family=self.family) + self.results = m.fit(Z) + self.results.mu = self.family.link.inverse(self.results.predict(self.exog)) + self.results.Y = Y + + while self.cont(): + self.results = self.next() + self.scale = self.results.scale = self.estimate_scale() + + if self.iter >= self.maxiter: + import warnings + warnings.warn(iteration_limit_doc, IterationLimitWarning) + + return self.results diff --git a/statsmodels/sandbox/infotheo.py b/statsmodels/sandbox/infotheo.py new file mode 100644 index 0000000..2db4727 --- /dev/null +++ b/statsmodels/sandbox/infotheo.py @@ -0,0 +1,519 @@ +""" +Information Theoretic and Entropy Measures + +References +---------- +Golan, As. 2008. "Information and Entropy Econometrics -- A Review and + Synthesis." Foundations And Trends in Econometrics 2(1-2), 1-145. + +Golan, A., Judge, G., and Miller, D. 1996. Maximum Entropy Econometrics. + Wiley & Sons, Chichester. +""" +#For MillerMadow correction +#Miller, G. 1955. Note on the bias of information estimates. Info. Theory +# Psychol. Prob. Methods II-B:95-100. + +#For ChaoShen method +#Chao, A., and T.-J. Shen. 2003. Nonparametric estimation of Shannon's index of diversity when +#there are unseen species in sample. Environ. Ecol. Stat. 10:429-443. +#Good, I. J. 1953. The population frequencies of species and the estimation of population parameters. +#Biometrika 40:237-264. +#Horvitz, D.G., and D. J. Thompson. 1952. A generalization of sampling without replacement from a finute universe. J. Am. Stat. Assoc. 47:663-685. + +#For NSB method +#Nemenman, I., F. Shafee, and W. Bialek. 2002. Entropy and inference, revisited. In: Dietterich, T., +#S. Becker, Z. Gharamani, eds. Advances in Neural Information Processing Systems 14: 471-478. +#Cambridge (Massachusetts): MIT Press. + +#For shrinkage method +#Dougherty, J., Kohavi, R., and Sahami, M. (1995). Supervised and unsupervised discretization of +#continuous features. In International Conference on Machine Learning. +#Yang, Y. and Webb, G. I. (2003). Discretization for naive-bayes learning: managing discretization +#bias and variance. Technical Report 2003/131 School of Computer Science and Software Engineer- +#ing, Monash University. + +from statsmodels.compat.python import range, lzip, lmap +from scipy import stats +import numpy as np +from matplotlib import pyplot as plt +from scipy.misc import logsumexp as sp_logsumexp + +#TODO: change these to use maxentutils so that over/underflow is handled +#with the logsumexp. + + +def logsumexp(a, axis=None): + """ + Compute the log of the sum of exponentials log(e^{a_1}+...e^{a_n}) of a + + Avoids numerical overflow. + + Parameters + ---------- + a : array-like + The vector to exponentiate and sum + axis : int, optional + The axis along which to apply the operation. Defaults is None. + + Returns + ------- + sum(log(exp(a))) + + Notes + ----- + This function was taken from the mailing list + http://mail.scipy.org/pipermail/scipy-user/2009-October/022931.html + + This should be superceded by the ufunc when it is finished. + """ + if axis is None: + # Use the scipy.maxentropy version. + return sp_logsumexp(a) + a = np.asarray(a) + shp = list(a.shape) + shp[axis] = 1 + a_max = a.max(axis=axis) + s = np.log(np.exp(a - a_max.reshape(shp)).sum(axis=axis)) + lse = a_max + s + return lse + + +def _isproperdist(X): + """ + Checks to see if `X` is a proper probability distribution + """ + X = np.asarray(X) + if not np.allclose(np.sum(X), 1) or not np.all(X>=0) or not np.all(X<=1): + return False + else: + return True + +def discretize(X, method="ef", nbins=None): + """ + Discretize `X` + + Parameters + ---------- + bins : int, optional + Number of bins. Default is floor(sqrt(N)) + method : string + "ef" is equal-frequency binning + "ew" is equal-width binning + + Examples + -------- + """ + nobs = len(X) + if nbins == None: + nbins = np.floor(np.sqrt(nobs)) + if method == "ef": + discrete = np.ceil(nbins * stats.rankdata(X)/nobs) + if method == "ew": + width = np.max(X) - np.min(X) + width = np.floor(width/nbins) + svec, ivec = stats.fastsort(X) + discrete = np.zeros(nobs) + binnum = 1 + base = svec[0] + discrete[ivec[0]] = binnum + for i in range(1,nobs): + if svec[i] < base + width: + discrete[ivec[i]] = binnum + else: + base = svec[i] + binnum += 1 + discrete[ivec[i]] = binnum + return discrete +#TODO: looks okay but needs more robust tests for corner cases + + + +def logbasechange(a,b): + """ + There is a one-to-one transformation of the entropy value from + a log base b to a log base a : + + H_{b}(X)=log_{b}(a)[H_{a}(X)] + + Returns + ------- + log_{b}(a) + """ + return np.log(b)/np.log(a) + +def natstobits(X): + """ + Converts from nats to bits + """ + return logbasechange(np.e, 2) * X + +def bitstonats(X): + """ + Converts from bits to nats + """ + return logbasechange(2, np.e) * X + +#TODO: make this entropy, and then have different measures as +#a method +def shannonentropy(px, logbase=2): + """ + This is Shannon's entropy + + Parameters + ----------- + logbase, int or np.e + The base of the log + px : 1d or 2d array_like + Can be a discrete probability distribution, a 2d joint distribution, + or a sequence of probabilities. + + Returns + ----- + For log base 2 (bits) given a discrete distribution + H(p) = sum(px * log2(1/px) = -sum(pk*log2(px)) = E[log2(1/p(X))] + + For log base 2 (bits) given a joint distribution + H(px,py) = -sum_{k,j}*w_{kj}log2(w_{kj}) + + Notes + ----- + shannonentropy(0) is defined as 0 + """ +#TODO: haven't defined the px,py case? + px = np.asarray(px) + if not np.all(px <= 1) or not np.all(px >= 0): + raise ValueError("px does not define proper distribution") + entropy = -np.sum(np.nan_to_num(px*np.log2(px))) + if logbase != 2: + return logbasechange(2,logbase) * entropy + else: + return entropy + +# Shannon's information content +def shannoninfo(px, logbase=2): + """ + Shannon's information + + Parameters + ---------- + px : float or array-like + `px` is a discrete probability distribution + + Returns + ------- + For logbase = 2 + np.log2(px) + """ + px = np.asarray(px) + if not np.all(px <= 1) or not np.all(px >= 0): + raise ValueError("px does not define proper distribution") + if logbase != 2: + return - logbasechange(2,logbase) * np.log2(px) + else: + return - np.log2(px) + +def condentropy(px, py, pxpy=None, logbase=2): + """ + Return the conditional entropy of X given Y. + + Parameters + ---------- + px : array-like + py : array-like + pxpy : array-like, optional + If pxpy is None, the distributions are assumed to be independent + and conendtropy(px,py) = shannonentropy(px) + logbase : int or np.e + + Returns + ------- + sum_{kj}log(q_{j}/w_{kj} + + where q_{j} = Y[j] + and w_kj = X[k,j] + """ + if not _isproperdist(px) or not _isproperdist(py): + raise ValueError("px or py is not a proper probability distribution") + if pxpy != None and not _isproperdist(pxpy): + raise ValueError("pxpy is not a proper joint distribtion") + if pxpy == None: + pxpy = np.outer(py,px) + condent = np.sum(pxpy * np.nan_to_num(np.log2(py/pxpy))) + if logbase == 2: + return condent + else: + return logbasechange(2, logbase) * condent + +def mutualinfo(px,py,pxpy, logbase=2): + """ + Returns the mutual information between X and Y. + + Parameters + ---------- + px : array-like + Discrete probability distribution of random variable X + py : array-like + Discrete probability distribution of random variable Y + pxpy : 2d array-like + The joint probability distribution of random variables X and Y. + Note that if X and Y are independent then the mutual information + is zero. + logbase : int or np.e, optional + Default is 2 (bits) + + Returns + ------- + shannonentropy(px) - condentropy(px,py,pxpy) + """ + if not _isproperdist(px) or not _isproperdist(py): + raise ValueError("px or py is not a proper probability distribution") + if pxpy != None and not _isproperdist(pxpy): + raise ValueError("pxpy is not a proper joint distribtion") + if pxpy == None: + pxpy = np.outer(py,px) + return shannonentropy(px, logbase=logbase) - condentropy(px,py,pxpy, + logbase=logbase) + +def corrent(px,py,pxpy,logbase=2): + """ + An information theoretic correlation measure. + + Reflects linear and nonlinear correlation between two random variables + X and Y, characterized by the discrete probability distributions px and py + respectively. + + Parameters + ---------- + px : array-like + Discrete probability distribution of random variable X + py : array-like + Discrete probability distribution of random variable Y + pxpy : 2d array-like, optional + Joint probability distribution of X and Y. If pxpy is None, X and Y + are assumed to be independent. + logbase : int or np.e, optional + Default is 2 (bits) + + Returns + ------- + mutualinfo(px,py,pxpy,logbase=logbase)/shannonentropy(py,logbase=logbase) + + Notes + ----- + This is also equivalent to + + corrent(px,py,pxpy) = 1 - condent(px,py,pxpy)/shannonentropy(py) + """ + if not _isproperdist(px) or not _isproperdist(py): + raise ValueError("px or py is not a proper probability distribution") + if pxpy != None and not _isproperdist(pxpy): + raise ValueError("pxpy is not a proper joint distribtion") + if pxpy == None: + pxpy = np.outer(py,px) + + return mutualinfo(px,py,pxpy,logbase=logbase)/shannonentropy(py, + logbase=logbase) + +def covent(px,py,pxpy,logbase=2): + """ + An information theoretic covariance measure. + + Reflects linear and nonlinear correlation between two random variables + X and Y, characterized by the discrete probability distributions px and py + respectively. + + Parameters + ---------- + px : array-like + Discrete probability distribution of random variable X + py : array-like + Discrete probability distribution of random variable Y + pxpy : 2d array-like, optional + Joint probability distribution of X and Y. If pxpy is None, X and Y + are assumed to be independent. + logbase : int or np.e, optional + Default is 2 (bits) + + Returns + ------- + condent(px,py,pxpy,logbase=logbase) + condent(py,px,pxpy, + logbase=logbase) + + Notes + ----- + This is also equivalent to + + covent(px,py,pxpy) = condent(px,py,pxpy) + condent(py,px,pxpy) + """ + if not _isproperdist(px) or not _isproperdist(py): + raise ValueError("px or py is not a proper probability distribution") + if pxpy != None and not _isproperdist(pxpy): + raise ValueError("pxpy is not a proper joint distribtion") + if pxpy == None: + pxpy = np.outer(py,px) + + return condent(px,py,pxpy,logbase=logbase) + condent(py,px,pxpy, + logbase=logbase) + + +#### Generalized Entropies #### + +def renyientropy(px,alpha=1,logbase=2,measure='R'): + """ + Renyi's generalized entropy + + Parameters + ---------- + px : array-like + Discrete probability distribution of random variable X. Note that + px is assumed to be a proper probability distribution. + logbase : int or np.e, optional + Default is 2 (bits) + alpha : float or inf + The order of the entropy. The default is 1, which in the limit + is just Shannon's entropy. 2 is Renyi (Collision) entropy. If + the string "inf" or numpy.inf is specified the min-entropy is returned. + measure : str, optional + The type of entropy measure desired. 'R' returns Renyi entropy + measure. 'T' returns the Tsallis entropy measure. + + Returns + ------- + 1/(1-alpha)*log(sum(px**alpha)) + + In the limit as alpha -> 1, Shannon's entropy is returned. + + In the limit as alpha -> inf, min-entropy is returned. + """ +#TODO:finish returns +#TODO:add checks for measure + if not _isproperdist(px): + raise ValueError("px is not a proper probability distribution") + alpha = float(alpha) + if alpha == 1: + genent = shannonentropy(px) + if logbase != 2: + return logbasechange(2, logbase) * genent + return genent + elif 'inf' in string(alpha).lower() or alpha == np.inf: + return -np.log(np.max(px)) + + # gets here if alpha != (1 or inf) + px = px**alpha + genent = np.log(px.sum()) + if logbase == 2: + return 1/(1-alpha) * genent + else: + return 1/(1-alpha) * logbasechange(2, logbase) * genent + +#TODO: before completing this, need to rethink the organization of +# (relative) entropy measures, ie., all put into one function +# and have kwdargs, etc.? +def gencrossentropy(px,py,pxpy,alpha=1,logbase=2, measure='T'): + """ + Generalized cross-entropy measures. + + Parameters + ---------- + px : array-like + Discrete probability distribution of random variable X + py : array-like + Discrete probability distribution of random variable Y + pxpy : 2d array-like, optional + Joint probability distribution of X and Y. If pxpy is None, X and Y + are assumed to be independent. + logbase : int or np.e, optional + Default is 2 (bits) + measure : str, optional + The measure is the type of generalized cross-entropy desired. 'T' is + the cross-entropy version of the Tsallis measure. 'CR' is Cressie-Read + measure. + + """ + + +if __name__ == "__main__": + print("From Golan (2008) \"Information and Entropy Econometrics -- A Review \ +and Synthesis") + print("Table 3.1") + # Examples from Golan (2008) + + X = [.2,.2,.2,.2,.2] + Y = [.322,.072,.511,.091,.004] + + for i in X: + print(shannoninfo(i)) + for i in Y: + print(shannoninfo(i)) + print(shannonentropy(X)) + print(shannonentropy(Y)) + + p = [1e-5,1e-4,.001,.01,.1,.15,.2,.25,.3,.35,.4,.45,.5] + + plt.subplot(111) + plt.ylabel("Information") + plt.xlabel("Probability") + x = np.linspace(0,1,100001) + plt.plot(x, shannoninfo(x)) +# plt.show() + + plt.subplot(111) + plt.ylabel("Entropy") + plt.xlabel("Probability") + x = np.linspace(0,1,101) + plt.plot(x, lmap(shannonentropy, lzip(x,1-x))) +# plt.show() + + # define a joint probability distribution + # from Golan (2008) table 3.3 + w = np.array([[0,0,1./3],[1/9.,1/9.,1/9.],[1/18.,1/9.,1/6.]]) + # table 3.4 + px = w.sum(0) + py = w.sum(1) + H_X = shannonentropy(px) + H_Y = shannonentropy(py) + H_XY = shannonentropy(w) + H_XgivenY = condentropy(px,py,w) + H_YgivenX = condentropy(py,px,w) +# note that cross-entropy is not a distance measure as the following shows + D_YX = logbasechange(2,np.e)*stats.entropy(px, py) + D_XY = logbasechange(2,np.e)*stats.entropy(py, px) + I_XY = mutualinfo(px,py,w) + print("Table 3.3") + print(H_X,H_Y, H_XY, H_XgivenY, H_YgivenX, D_YX, D_XY, I_XY) + + print("discretize functions") + X=np.array([21.2,44.5,31.0,19.5,40.6,38.7,11.1,15.8,31.9,25.8,20.2,14.2, + 24.0,21.0,11.3,18.0,16.3,22.2,7.8,27.8,16.3,35.1,14.9,17.1,28.2,16.4, + 16.5,46.0,9.5,18.8,32.1,26.1,16.1,7.3,21.4,20.0,29.3,14.9,8.3,22.5, + 12.8,26.9,25.5,22.9,11.2,20.7,26.2,9.3,10.8,15.6]) + discX = discretize(X) + #CF: R's infotheo +#TODO: compare to pyentropy quantize? + print + print("Example in section 3.6 of Golan, using table 3.3") + print("Bounding errors using Fano's inequality") + print("H(P_{e}) + P_{e}log(K-1) >= H(X|Y)") + print("or, a weaker inequality") + print("P_{e} >= [H(X|Y) - 1]/log(K)") + print("P(x) = %s" % px) + print("X = 3 has the highest probability, so this is the estimate Xhat") + pe = 1 - px[2] + print("The probability of error Pe is 1 - p(X=3) = %0.4g" % pe) + H_pe = shannonentropy([pe,1-pe]) + print("H(Pe) = %0.4g and K=3" % H_pe) + print("H(Pe) + Pe*log(K-1) = %0.4g >= H(X|Y) = %0.4g" % \ + (H_pe+pe*np.log2(2), H_XgivenY)) + print("or using the weaker inequality") + print("Pe = %0.4g >= [H(X) - 1]/log(K) = %0.4g" % (pe, (H_X - 1)/np.log2(3))) + print("Consider now, table 3.5, where there is additional information") + print("The conditional probabilities of P(X|Y=y) are ") + w2 = np.array([[0.,0.,1.],[1/3.,1/3.,1/3.],[1/6.,1/3.,1/2.]]) + print(w2) +# not a proper distribution? + print("The probability of error given this information is") + print("Pe = [H(X|Y) -1]/log(K) = %0.4g" % ((np.mean([0,shannonentropy(w2[1]),shannonentropy(w2[2])])-1)/np.log2(3))) + print("such that more information lowers the error") + +### Stochastic processes + markovchain = np.array([[.553,.284,.163],[.465,.312,.223],[.420,.322,.258]]) diff --git a/statsmodels/sandbox/km_class.py b/statsmodels/sandbox/km_class.py new file mode 100644 index 0000000..d63478e --- /dev/null +++ b/statsmodels/sandbox/km_class.py @@ -0,0 +1,240 @@ +#a class for the Kaplan-Meier estimator +from statsmodels.compat.python import range +import numpy as np +from math import sqrt +import matplotlib.pyplot as plt + +class KAPLAN_MEIER(object): + def __init__(self, data, timesIn, groupIn, censoringIn): + raise RuntimeError('Newer version of Kaplan-Meier class available in survival2.py') + #store the inputs + self.data = data + self.timesIn = timesIn + self.groupIn = groupIn + self.censoringIn = censoringIn + + def fit(self): + #split the data into groups based on the predicting variable + #get a set of all the groups + groups = list(set(self.data[:,self.groupIn])) + #create an empty list to store the data for different groups + groupList = [] + #create an empty list for each group and add it to groups + for i in range(len(groups)): + groupList.append([]) + #iterate through all the groups in groups + for i in range(len(groups)): + #iterate though the rows of dataArray + for j in range(len(self.data)): + #test if this row has the correct group + if self.data[j,self.groupIn] == groups[i]: + #add the row to groupList + groupList[i].append(self.data[j]) + #create an empty list to store the times for each group + timeList = [] + #iterate through all the groups + for i in range(len(groupList)): + #create an empty list + times = [] + #iterate through all the rows of the group + for j in range(len(groupList[i])): + #get a list of all the times in the group + times.append(groupList[i][j][self.timesIn]) + #get a sorted set of the times and store it in timeList + times = list(sorted(set(times))) + timeList.append(times) + #get a list of the number at risk and events at each time + #create an empty list to store the results in + timeCounts = [] + #create an empty list to hold points for plotting + points = [] + #create a list for points where censoring occurs + censoredPoints = [] + #iterate trough each group + for i in range(len(groupList)): + #initialize a variable to estimate the survival function + survival = 1 + #initialize a variable to estimate the variance of + #the survival function + varSum = 0 + #initialize a counter for the number at risk + riskCounter = len(groupList[i]) + #create a list for the counts for this group + counts = [] + ##create a list for points to plot + x = [] + y = [] + #iterate through the list of times + for j in range(len(timeList[i])): + if j != 0: + if j == 1: + #add an indicator to tell if the time + #starts a new group + groupInd = 1 + #add (0,1) to the list of points + x.append(0) + y.append(1) + #add the point time to the right of that + x.append(timeList[i][j-1]) + y.append(1) + #add the point below that at survival + x.append(timeList[i][j-1]) + y.append(survival) + #add the survival to y + y.append(survival) + else: + groupInd = 0 + #add survival twice to y + y.append(survival) + y.append(survival) + #add the time twice to x + x.append(timeList[i][j-1]) + x.append(timeList[i][j-1]) + #add each censored time, number of censorings and + #its survival to censoredPoints + censoredPoints.append([timeList[i][j-1], + censoringNum,survival,groupInd]) + #add the count to the list + counts.append([timeList[i][j-1],riskCounter, + eventCounter,survival, + sqrt(((survival)**2)*varSum)]) + #increment the number at risk + riskCounter += -1*(riskChange) + #initialize a counter for the change in the number at risk + riskChange = 0 + #initialize a counter to zero + eventCounter = 0 + #intialize a counter to tell when censoring occurs + censoringCounter = 0 + censoringNum = 0 + #iterate through the observations in each group + for k in range(len(groupList[i])): + #check of the observation has the given time + if (groupList[i][k][self.timesIn]) == (timeList[i][j]): + #increment the number at risk counter + riskChange += 1 + #check if this is an event or censoring + if groupList[i][k][self.censoringIn] == 1: + #add 1 to the counter + eventCounter += 1 + else: + censoringNum += 1 + #check if there are any events at this time + if eventCounter != censoringCounter: + censoringCounter = eventCounter + #calculate the estimate of the survival function + survival *= ((float(riskCounter) - + eventCounter)/(riskCounter)) + try: + #calculate the estimate of the variance + varSum += (eventCounter)/((riskCounter) + *(float(riskCounter)- + eventCounter)) + except ZeroDivisionError: + varSum = 0 + #append the last row to counts + counts.append([timeList[i][len(timeList[i])-1], + riskCounter,eventCounter,survival, + sqrt(((survival)**2)*varSum)]) + #add the last time once to x + x.append(timeList[i][len(timeList[i])-1]) + x.append(timeList[i][len(timeList[i])-1]) + #add the last survival twice to y + y.append(survival) + #y.append(survival) + censoredPoints.append([timeList[i][len(timeList[i])-1], + censoringNum,survival,1]) + #add the list for the group to al ist for all the groups + timeCounts.append(np.array(counts)) + points.append([x,y]) + #returns a list of arrays, where each array has as it columns: the time, + #the number at risk, the number of events, the estimated value of the + #survival function at that time, and the estimated standard error at + #that time, in that order + self.results = timeCounts + self.points = points + self.censoredPoints = censoredPoints + + def plot(self): + x = [] + #iterate through the groups + for i in range(len(self.points)): + #plot x and y + plt.plot(np.array(self.points[i][0]),np.array(self.points[i][1])) + #create lists of all the x and y values + x += self.points[i][0] + for j in range(len(self.censoredPoints)): + #check if censoring is occuring + if (self.censoredPoints[j][1] != 0): + #if this is the first censored point + if (self.censoredPoints[j][3] == 1) and (j == 0): + #calculate a distance beyond 1 to place it + #so all the points will fit + dx = ((1./((self.censoredPoints[j][1])+1.)) + *(float(self.censoredPoints[j][0]))) + #iterate through all the censored points at this time + for k in range(self.censoredPoints[j][1]): + #plot a vertical line for censoring + plt.vlines((1+((k+1)*dx)), + self.censoredPoints[j][2]-0.03, + self.censoredPoints[j][2]+0.03) + #if this censored point starts a new group + elif ((self.censoredPoints[j][3] == 1) and + (self.censoredPoints[j-1][3] == 1)): + #calculate a distance beyond 1 to place it + #so all the points will fit + dx = ((1./((self.censoredPoints[j][1])+1.)) + *(float(self.censoredPoints[j][0]))) + #iterate through all the censored points at this time + for k in range(self.censoredPoints[j][1]): + #plot a vertical line for censoring + plt.vlines((1+((k+1)*dx)), + self.censoredPoints[j][2]-0.03, + self.censoredPoints[j][2]+0.03) + #if this is the last censored point + elif j == (len(self.censoredPoints) - 1): + #calculate a distance beyond the previous time + #so that all the points will fit + dx = ((1./((self.censoredPoints[j][1])+1.)) + *(float(self.censoredPoints[j][0]))) + #iterate through all the points at this time + for k in range(self.censoredPoints[j][1]): + #plot a vertical line for censoring + plt.vlines((self.censoredPoints[j-1][0]+((k+1)*dx)), + self.censoredPoints[j][2]-0.03, + self.censoredPoints[j][2]+0.03) + #if this is a point in the middle of the group + else: + #calcuate a distance beyond the current time + #to place the point, so they all fit + dx = ((1./((self.censoredPoints[j][1])+1.)) + *(float(self.censoredPoints[j+1][0]) + - self.censoredPoints[j][0])) + #iterate through all the points at this time + for k in range(self.censoredPoints[j][1]): + #plot a vetical line for censoring + plt.vlines((self.censoredPoints[j][0]+((k+1)*dx)), + self.censoredPoints[j][2]-0.03, + self.censoredPoints[j][2]+0.03) + #set the size of the plot so it extends to the max x and above 1 for y + plt.xlim((0,np.max(x))) + plt.ylim((0,1.05)) + #label the axes + plt.xlabel('time') + plt.ylabel('survival') + plt.show() + + def show_results(self): + #start a string that will be a table of the results + resultsString = '' + #iterate through all the groups + for i in range(len(self.results)): + #label the group and header + resultsString += ('Group {0}\n\n'.format(i) + + 'Time At Risk Events Survival Std. Err\n') + for j in self.results[i]: + #add the results to the string + resultsString += ( + '{0:<9d}{1:<12d}{2:<11d}{3:<13.4f}{4:<6.4f}\n'.format( + int(j[0]),int(j[1]),int(j[2]),j[3],j[4])) + print(resultsString) diff --git a/statsmodels/sandbox/mcevaluate/__init__.py b/statsmodels/sandbox/mcevaluate/__init__.py new file mode 100644 index 0000000..1e26f0c --- /dev/null +++ b/statsmodels/sandbox/mcevaluate/__init__.py @@ -0,0 +1,165 @@ +''' + +Econometrics for a Datarich Environment +======================================= + +Introduction +------------ +In many cases we are performing statistical analysis when many observed variables are +available, when we are in a data rich environment. Machine learning has a wide variety +of tools for dimension reduction and penalization when there are many varibles compared +to the number of observation. Chemometrics has a long tradition of using Partial Least +Squares, NIPALS and similar in these cases. In econometrics the same problem shows up +when there are either many possible regressors, many (weak) instruments or when there are +a large number of moment conditions in GMM. + +This section is intended to collect some models and tools in this area that are relevant +for the statical analysis and econometrics. + +Covariance Matrices +=================== +Several methods are available to reduce the small sample noise in estimated covariance +matrices with many variable. +Some applications: +weighting matrix with many moments, +covariance matrix for portfolio choice + +Dimension Reduction +=================== +Principal Component and Partial Least Squares try to extract the important low dimensional +factors from the data with many variables. + +Regression with many regressors +=============================== +Factor models, selection of regressors and shrinkage and penalization are used to improve +the statistical properties, when the presence of too many regressors leads to over-fitting +and too noisy small sample estimators and statistics. + +Regression with many moments or many instruments +================================================ +The same tools apply and can be used in these two cases. +e.g. Tychonov regularization of weighting matrix in GMM, similar to Ridge regression, the +weighting matrix can be shrunk towards the identity matrix. +Simplest case will be part of GMM. I don't know how much will be standalone +functions. + + +Intended Content +================ + +PLS +--- +what should be available in class? + +Factormodel and supporting helper functions +------------------------------------------- + +PCA based +~~~~~~~~~ +First version based PCA on Stock/Watson and Bai/Ng, and recent papers on the +selection of the number of factors. Not sure about Forni et al. in approach. +Basic support of this needs additional results for PCA, error covariance matrix +of data on reduced factors, required for criteria in Bai/Ng. +Selection criteria based on eigenvalue cutoffs. + +Paper on PCA and structural breaks. Could add additional results during +find_nfact to test for parameter stability. I haven't read the paper yet. + +Idea: for forecasting, use up to h-step ahead endogenous variables to directly +get the forecasts. + +Asymptotic results and distribution: not too much idea yet. +Standard OLS results are conditional on factors, paper by Haerdle (abstract +seems to suggest that this is ok, Park 2009). + +Simulation: add function to simulate DGP of Bai/Ng and recent extension. +Sensitivity of selection criteria to heteroscedasticity and autocorrelation. + +Bai, J. & Ng, S., 2002. Determining the Number of Factors in + Approximate Factor Models. Econometrica, 70(1), pp.191-221. + +Kapetanios, G., 2010. A Testing Procedure for Determining the Number + of Factors in Approximate Factor Models With Large Datasets. Journal + of Business and Economic Statistics, 28(3), pp.397-409. + +Onatski, A., 2010. Determining the Number of Factors from Empirical + Distribution of Eigenvalues. Review of Economics and Statistics, + 92(4), pp.1004-1016. + +Alessi, L., Barigozzi, M. & Capasso, M., 2010. Improved penalization + for determining the number of factors in approximate factor models. + Statistics & Probability Letters, 80(23-24), pp.1806-1813. + +Breitung, J. & Eickmeier, S., Testing for structural breaks in dynamic + factor models. Journal of Econometrics, In Press, Accepted Manuscript. + Available at: + http://www.sciencedirect.com/science/article/B6VC0-51G3W92-1/2/f45ce2332443374fd770e42e5a68ddb4 + [Accessed November 15, 2010]. + +Croux, C., Renault, E. & Werker, B., 2004. Dynamic factor models. + Journal of Econometrics, 119(2), pp.223-230. + +Forni, M. et al., 2009. Opening the Black Box: Structural Factor + Models with Large Cross Sections. Econometric Theory, 25(05), + pp.1319-1347. + +Forni, M. et al., 2000. The Generalized Dynamic-Factor Model: + Identification and Estimation. Review of Economics and Statistics, + 82(4), pp.540-554. + +Forni, M. & Lippi, M., The general dynamic factor model: One-sided + representation results. Journal of Econometrics, In Press, Accepted + Manuscript. Available at: + http://www.sciencedirect.com/science/article/B6VC0-51FNPJN-1/2/4fcdd0cfb66e3050ff5d19bf2752ed19 + [Accessed November 15, 2010]. + +Kapetanios, G., 2010. A Testing Procedure for Determining the Number + of Factors in Approximate Factor Models With Large Datasets. Journal + of Business and Economic Statistics, 28(3), pp.397-409. + +Onatski, A., 2010. Determining the Number of Factors from Empirical + Distribution of Eigenvalues. Review of Economics and Statistics, + 92(4), pp.1004-1016. + +Park, B.U. et al., 2009. Time Series Modelling With Semiparametric + Factor Dynamics. Journal of the American Statistical Association, + 104(485), pp.284-298. + + + +other factor algorithm +~~~~~~~~~~~~~~~~~~~~~~ +PLS should fit in reasonably well. + +Bai/Ng have a recent paper, where they compare LASSO, PCA, and similar, individual +and in combination. +Check how much we can use scikits.learn for this. + + +miscellaneous +~~~~~~~~~~~~~ +Time series modeling of factors for prediction, ARMA, VARMA. +SUR and correlation structure +What about sandwich estimation, robust covariance matrices? +Similarity to Factor-Garch and Go-Garch +Updating: incremental PCA, ...? + + +TODO next +========= +MVOLS : OLS with multivariate endogenous and identical exogenous variables. + rewrite and expand current varma_process.VAR +PCA : write a class after all, and/or adjust the current donated class + and keep adding required statistics, e.g. + residual variance, projection of X on k-factors, ... updating ? +FactorModelUnivariate : started, does basic principal component regression, + based on standard information criteria, not Bai/Ng adjusted +FactorModelMultivariate : follow pattern for univariate version and use + MVOLS + + + + + + +''' diff --git a/statsmodels/sandbox/mcevaluate/arma.py b/statsmodels/sandbox/mcevaluate/arma.py new file mode 100644 index 0000000..0ccf60d --- /dev/null +++ b/statsmodels/sandbox/mcevaluate/arma.py @@ -0,0 +1,147 @@ + +import numpy as np +from statsmodels.tsa.arima_process import arma_generate_sample +from statsmodels.tsa.arma_mle import Arma + + +#TODO: still refactoring problem with cov_x +#copied from sandbox.tsa.arima.py +def mcarma22(niter=10, nsample=1000, ar=None, ma=None, sig=0.5): + '''run Monte Carlo for ARMA(2,2) + + DGP parameters currently hard coded + also sample size `nsample` + + was not a self contained function, used instances from outer scope + now corrected + + ''' + #nsample = 1000 + #ar = [1.0, 0, 0] + if ar is None: + ar = [1.0, -0.55, -0.1] + #ma = [1.0, 0, 0] + if ma is None: + ma = [1.0, 0.3, 0.2] + results = [] + results_bse = [] + for _ in range(niter): + y2 = arma_generate_sample(ar,ma,nsample+1000, sig)[-nsample:] + y2 -= y2.mean() + arest2 = Arma(y2) + rhohat2a, cov_x2a, infodict, mesg, ier = arest2.fit((2,2)) + results.append(rhohat2a) + err2a = arest2.geterrors(rhohat2a) + sige2a = np.sqrt(np.dot(err2a,err2a)/nsample) + #print('sige2a', sige2a, + #print('cov_x2a.shape', cov_x2a.shape + #results_bse.append(sige2a * np.sqrt(np.diag(cov_x2a))) + if not cov_x2a is None: + results_bse.append(sige2a * np.sqrt(np.diag(cov_x2a))) + else: + results_bse.append(np.nan + np.zeros_like(rhohat2a)) + return np.r_[ar[1:], ma[1:]], np.array(results), np.array(results_bse) + +def mc_summary(res, rt=None): + if rt is None: + rt = np.zeros(res.shape[1]) + nanrows = np.isnan(res).any(1) + print('fractions of iterations with nans', nanrows.mean()) + res = res[~nanrows] + print('RMSE') + print(np.sqrt(((res-rt)**2).mean(0))) + print('mean bias') + print((res-rt).mean(0)) + print('median bias') + print(np.median((res-rt),0)) + print('median bias percent') + print(np.median((res-rt)/rt*100,0)) + print('median absolute error') + print(np.median(np.abs(res-rt),0)) + print('positive error fraction') + print((res > rt).mean(0)) + + +if __name__ == '__main__': + +#short version +# true, est, bse = mcarma22(niter=50) +# print(true +# #print(est +# print(est.mean(0) + + ''' niter 50, sample size=1000, 2 runs + [-0.55 -0.1 0.3 0.2 ] + [-0.542401 -0.09904305 0.30840599 0.2052473 ] + + [-0.55 -0.1 0.3 0.2 ] + [-0.54681176 -0.09742921 0.2996297 0.20624258] + + + niter=50, sample size=200, 3 runs + [-0.55 -0.1 0.3 0.2 ] + [-0.64669489 -0.01134491 0.19972259 0.20634019] + + [-0.55 -0.1 0.3 0.2 ] + [-0.53141595 -0.10653234 0.32297968 0.20505973] + + [-0.55 -0.1 0.3 0.2 ] + [-0.50244588 -0.125455 0.33867488 0.19498214] + + niter=50, sample size=100, 5 runs --> ar1 too low, ma1 too high + [-0.55 -0.1 0.3 0.2 ] + [-0.35715008 -0.23392766 0.48771794 0.21901059] + + [-0.55 -0.1 0.3 0.2 ] + [-0.3554852 -0.21581914 0.51744748 0.24759245] + + [-0.55 -0.1 0.3 0.2 ] + [-0.3737861 -0.24665911 0.48031939 0.17274438] + + [-0.55 -0.1 0.3 0.2 ] + [-0.30015385 -0.27705506 0.56168199 0.21995759] + + [-0.55 -0.1 0.3 0.2 ] + [-0.35879991 -0.22999604 0.4761953 0.19670835] + + new version, with burnin 1000 in DGP and demean + [-0.55 -0.1 0.3 0.2 ] + [-0.56770228 -0.00076025 0.25621825 0.24492449] + + [-0.55 -0.1 0.3 0.2 ] + [-0.27598305 -0.2312364 0.57599134 0.23582417] + + [-0.55 -0.1 0.3 0.2 ] + [-0.38059051 -0.17413628 0.45147109 0.20046776] + + [-0.55 -0.1 0.3 0.2 ] + [-0.47789765 -0.08650743 0.3554441 0.24196087] + ''' + + ar = [1.0, -0.55, -0.1] + ma = [1.0, 0.3, 0.2] + nsample = 200 + + + + run_mc = True#False + if run_mc: + for sig in [0.1, 0.5, 1.]: + import time + t0 = time.time() + rt, res_rho, res_bse = mcarma22(niter=100, sig=sig) + print('\nResults for Monte Carlo') + print('true') + print(rt) + print('nsample =', nsample, 'sigma = ', sig) + print('elapsed time for Monte Carlo', time.time()-t0) + # 20 seconds for ARMA(2,2), 1000 iterations with 1000 observations + #sige2a = np.sqrt(np.dot(err2a,err2a)/nsample) + #print('\nbse of one sample' + #print(sige2a * np.sqrt(np.diag(cov_x2a)) + print('\nMC of rho versus true') + mc_summary(res_rho, rt) + print('\nMC of bse versus zero') # this implies inf in percent + mc_summary(res_bse) + print('\nMC of bse versus std') + mc_summary(res_bse, res_rho.std(0)) diff --git a/statsmodels/sandbox/mcevaluate/mcresuts_arma1.txt b/statsmodels/sandbox/mcevaluate/mcresuts_arma1.txt new file mode 100644 index 0000000..6bf97da --- /dev/null +++ b/statsmodels/sandbox/mcevaluate/mcresuts_arma1.txt @@ -0,0 +1,325 @@ +MonteCarlo for Arma(2,2) fit with conditional least squares +=========================================================== + + +Comments: +--------- +scikits.statsmodels.tsa.arma_mle.Arma.fit((2,0,2)) +niter=100 +didn't use seed +some strange inf in median bias percent and +positive error fraction equal to 1 + + +Sample Size 1000 +---------------- +Results for Monte Carlo +true +[-0.55 -0.1 0.3 0.2 ] +nsample = 1000 sigma = 0.1 +elapsed time for Monte Carlo 3.67199993134 + +MC of rho versus true +fractions of iterations with nans 0.0 +RMSE +[ 0.20193839 0.1609546 0.19646184 0.03923539] +mean bias +[-0.00186601 0.00542719 -0.00533277 0.00676964] +median bias +[-0.00810009 0.01230101 -0.01806484 0.0026727 ] +median bias percent +[ 1.47274338 -12.30101426 -6.02161246 1.33634779] +median absolute error +[ 0.12849263 0.0892165 0.11939251 0.02566005] +positive error fraction +[ 0.49 0.52 0.48 0.54] + +MC of bse versus zero +fractions of iterations with nans 0.0 +RMSE +[ 0.18967743 0.1526568 0.18747709 0.0399396 ] +mean bias +[ 0.18424688 0.14866981 0.18194085 0.03985427] +median bias +[ 0.18197743 0.14733603 0.17935651 0.03915853] +median bias percent +[ Inf Inf Inf Inf] +median absolute error +[ 0.18197743 0.14733603 0.17935651 0.03915853] +positive error fraction +[ 1. 1. 1. 1.] + +MC of bse versus std +fractions of iterations with nans 0.0 +RMSE +[ 0.04840765 0.03674317 0.04747574 0.00287514] +mean bias +[-0.01768289 -0.01219327 -0.0144486 0.0012073 ] +median bias +[-0.01995233 -0.01352704 -0.01703294 0.00051156] +median bias percent +[-9.88082703 -8.40904072 -8.67304431 1.3236821 ] +median absolute error +[ 0.03143609 0.02330123 0.03006728 0.00095056] +positive error fraction +[ 0.31 0.31 0.35 0.65] + +Results for Monte Carlo +true +[-0.55 -0.1 0.3 0.2 ] +nsample = 1000 sigma = 0.5 +elapsed time for Monte Carlo 3.53200006485 + +MC of rho versus true +fractions of iterations with nans 0.0 +RMSE +[ 0.23357913 0.18306959 0.23336364 0.04347842] +mean bias +[-0.01220215 0.01449933 -0.00740801 0.00400656] +median bias +[ 0.00474757 -0.00285192 -0.00179209 0.00881695] +median bias percent +[-0.86319392 2.85192134 -0.59736288 4.40847694] +median absolute error +[ 0.14260379 0.10966381 0.1388728 0.02879121] +positive error fraction +[ 0.51 0.49 0.5 0.59] + +MC of bse versus zero +fractions of iterations with nans 0.0 +RMSE +[ 0.19115836 0.15300091 0.18899884 0.04041533] +mean bias +[ 0.18636096 0.14958803 0.18410379 0.04029974] +median bias +[ 0.17674161 0.14286746 0.17423869 0.03952101] +median bias percent +[ Inf Inf Inf Inf] +median absolute error +[ 0.17674161 0.14286746 0.17423869 0.03952101] +positive error fraction +[ 1. 1. 1. 1.] + +MC of bse versus std +fractions of iterations with nans 0.0 +RMSE +[ 0.0633297 0.04599496 0.06512538 0.004277 ] +mean bias +[-0.04689923 -0.03290647 -0.04914224 -0.00299369] +median bias +[-0.05651859 -0.03962704 -0.05900734 -0.00377242] +median bias percent +[-24.22984657 -21.71410167 -25.29832734 -8.71360165] +median absolute error +[ 0.05810372 0.04048892 0.06100925 0.00383568] +positive error fraction +[ 0.13 0.11 0.11 0.1 ] + +Results for Monte Carlo +true +[-0.55 -0.1 0.3 0.2 ] +nsample = 1000 sigma = 1.0 +elapsed time for Monte Carlo 3.78200006485 + +MC of rho versus true +fractions of iterations with nans 0.0 +RMSE +[ 0.23501983 0.18658536 0.23630675 0.04845701] +mean bias +[-0.0638577 0.0559638 -0.06116445 -0.00201522] +median bias +[-0.02571522 0.01710684 -0.02476506 -0.00040966] +median bias percent +[ 4.6754946 -17.10684152 -8.25501939 -0.20482813] +median absolute error +[ 0.13186172 0.11635244 0.1391435 0.03325726] +positive error fraction +[ 0.45 0.52 0.46 0.5 ] + +MC of bse versus zero +fractions of iterations with nans 0.0 +RMSE +[ 0.2057234 0.16345869 0.20369599 0.04110316] +mean bias +[ 0.19816783 0.15783531 0.19595057 0.04093056] +median bias +[ 0.18616527 0.14688067 0.18394698 0.03953418] +median bias percent +[ Inf Inf Inf Inf] +median absolute error +[ 0.18616527 0.14688067 0.18394698 0.03953418] +positive error fraction +[ 1. 1. 1. 1.] + +MC of bse versus std +fractions of iterations with nans 0.0 +RMSE +[ 0.06193706 0.04704427 0.06433453 0.00837719] +mean bias +[-0.02801022 -0.02015949 -0.03230322 -0.00748453] +median bias +[-0.04001279 -0.03111413 -0.04430681 -0.00888091] +median bias percent +[-17.69083491 -17.48036125 -19.41120455 -18.3432625 ] +median absolute error +[ 0.05454876 0.03993081 0.05735269 0.00892246] +positive error fraction +[ 0.24 0.21 0.2 0.07] + + +Sample Size 200 +--------------- +Results for Monte Carlo +true +[-0.55 -0.1 0.3 0.2 ] +nsample = 200 sigma = 0.1 +elapsed time for Monte Carlo 3.76600003242 + +MC of rho versus true +fractions of iterations with nans 0.0 +RMSE +[ 0.23797307 0.18908967 0.24248704 0.04532965] +mean bias +[-0.02240914 0.02006369 -0.02856247 0.00419784] +median bias +[ 0.0132667 -0.01695 -0.00779267 0.00943245] +median bias percent +[ -2.41212746 16.94999813 -2.5975563 4.71622452] +median absolute error +[ 0.14314755 0.10134399 0.13262758 0.02681113] +positive error fraction +[ 0.53 0.49 0.48 0.57] + +MC of bse versus zero +fractions of iterations with nans 0.0 +RMSE +[ 0.18994719 0.1524025 0.18777651 0.0401027 ] +mean bias +[ 0.18437936 0.14841141 0.18216825 0.03997125] +median bias +[ 0.18044553 0.14526126 0.17764634 0.03921749] +median bias percent +[ Inf Inf Inf Inf] +median absolute error +[ 0.18044553 0.14526126 0.17764634 0.03921749] +positive error fraction +[ 1. 1. 1. 1.] + +MC of bse versus std +fractions of iterations with nans 0.0 +RMSE +[ 0.0696006 0.05262689 0.07424492 0.00609829] +mean bias +[-0.05253626 -0.0396108 -0.05863073 -0.00516361] +median bias +[-0.0564701 -0.04276095 -0.06315264 -0.00591737] +median bias percent +[-23.83553085 -22.74250075 -26.22629031 -13.11041727] +median absolute error +[ 0.05851016 0.04572261 0.0646474 0.00594597] +positive error fraction +[ 0.11 0.13 0.1 0.04] + +Results for Monte Carlo +true +[-0.55 -0.1 0.3 0.2 ] +nsample = 200 sigma = 0.5 +elapsed time for Monte Carlo 3.86000013351 + +MC of rho versus true +fractions of iterations with nans 0.0 +RMSE +[ 0.21997161 0.17584013 0.22184246 0.04268358] +mean bias +[-0.04259758 0.03350341 -0.05393998 -0.01056256] +median bias +[-0.02365517 0.01051654 -0.04060612 -0.00710624] +median bias percent +[ 4.3009406 -10.51654169 -13.53537431 -3.55312073] +median absolute error +[ 0.13186161 0.1056892 0.13501117 0.02523291] +positive error fraction +[ 0.45 0.55 0.42 0.42] + +MC of bse versus zero +fractions of iterations with nans 0.0 +RMSE +[ 0.21373305 0.17013489 0.21176584 0.04080147] +mean bias +[ 0.20622114 0.16464733 0.20408995 0.04068523] +median bias +[ 0.19022777 0.15274254 0.1879751 0.03969161] +median bias percent +[ Inf Inf Inf Inf] +median absolute error +[ 0.19022777 0.15274254 0.1879751 0.03969161] +positive error fraction +[ 1. 1. 1. 1.] + +MC of bse versus std +fractions of iterations with nans 0.0 +RMSE +[ 0.05697861 0.0435968 0.05757744 0.00314984] +mean bias +[-0.00958654 -0.00797153 -0.01109498 -0.00067079] +median bias +[-0.02557991 -0.01987633 -0.02720983 -0.00166441] +median bias percent +[-11.85310581 -11.5145739 -12.64485773 -4.02458691] +median absolute error +[ 0.03635737 0.0292344 0.03793175 0.00238808] +positive error fraction +[ 0.31 0.29 0.3 0.28] + +Results for Monte Carlo +true +[-0.55 -0.1 0.3 0.2 ] +nsample = 200 sigma = 1.0 +elapsed time for Monte Carlo 3.59400010109 + +MC of rho versus true +fractions of iterations with nans 0.0 +RMSE +[ 0.22232599 0.17545665 0.21586404 0.04731953] +mean bias +[-0.02145001 0.02789994 -0.01930862 0.00418517] +median bias +[ 0.00685442 0.01411879 0.01616525 0.01340016] +median bias percent +[ -1.24625802 -14.11879188 5.38841584 6.70007966] +median absolute error +[ 0.1010917 0.09510124 0.10884815 0.02735024] +positive error fraction +[ 0.51 0.54 0.51 0.64] + +MC of bse versus zero +fractions of iterations with nans 0.0 +RMSE +[ 0.19090008 0.15218083 0.18870297 0.04077881] +mean bias +[ 0.1863764 0.14894541 0.18407595 0.04063975] +median bias +[ 0.17861243 0.14324048 0.17665358 0.03948681] +median bias percent +[ Inf Inf Inf Inf] +median absolute error +[ 0.17861243 0.14324048 0.17665358 0.03948681] +positive error fraction +[ 1. 1. 1. 1.] + +MC of bse versus std +fractions of iterations with nans 0.0 +RMSE +[ 0.05408839 0.03954405 0.0517791 0.00731427] +mean bias +[-0.03491242 -0.02427881 -0.03092279 -0.00649433] +median bias +[-0.04267639 -0.02998373 -0.03834516 -0.00764727] +median bias percent +[-19.2853791 -17.30920408 -17.83506488 -16.22449948] +median absolute error +[ 0.04673299 0.03434164 0.0433639 0.00769409] +positive error fraction +[ 0.13 0.14 0.16 0.07] + + diff --git a/statsmodels/sandbox/mle.py b/statsmodels/sandbox/mle.py new file mode 100644 index 0000000..cdf4321 --- /dev/null +++ b/statsmodels/sandbox/mle.py @@ -0,0 +1,65 @@ +'''What's the origin of this file? It is not ours. +Does not run because of missing mtx files, now included + +changes: JP corrections to imports so it runs, comment out print +''' +from __future__ import print_function +import numpy as np +from numpy import dot, outer, random, argsort +from scipy import io, linalg, optimize +from scipy.sparse import eye as speye +import matplotlib.pyplot as plt + +def R(v): + rq = dot(v.T,A*v)/dot(v.T,B*v) + res = (A*v-rq*B*v)/linalg.norm(B*v) + data.append(linalg.norm(res)) + return rq + +def Rp(v): + """ Gradient """ + result = 2*(A*v-R(v)*B*v)/dot(v.T,B*v) + #print "Rp: ", result + return result + +def Rpp(v): + """ Hessian """ + result = 2*(A-R(v)*B-outer(B*v,Rp(v))-outer(Rp(v),B*v))/dot(v.T,B*v) + #print "Rpp: ", result + return result + + +A = io.mmread('nos4.mtx') # clustered eigenvalues +#B = io.mmread('bcsstm02.mtx.gz') +#A = io.mmread('bcsstk06.mtx.gz') # clustered eigenvalues +#B = io.mmread('bcsstm06.mtx.gz') +n = A.shape[0] +B = speye(n,n) +random.seed(1) +v_0=random.rand(n) + +print("try fmin_bfgs") +full_output = 1 +data=[] +v,fopt, gopt, Hopt, func_calls, grad_calls, warnflag, allvecs = \ + optimize.fmin_bfgs(R,v_0,fprime=Rp,full_output=full_output,retall=1) +if warnflag == 0: + plt.semilogy(np.arange(0,len(data)),data) + print('Rayleigh quotient BFGS',R(v)) + + +print("fmin_bfgs OK") + +print("try fmin_ncg") + +# +# WARNING: the program may hangs if fmin_ncg is used +# +data=[] +v,fopt, fcalls, gcalls, hcalls, warnflag, allvecs = \ + optimize.fmin_ncg(R,v_0,fprime=Rp,fhess=Rpp,full_output=full_output,retall=1) +if warnflag==0: + plt.figure() + plt.semilogy(np.arange(0,len(data)),data) + print('Rayleigh quotient NCG',R(v)) + diff --git a/statsmodels/sandbox/mlogitmath.lyx b/statsmodels/sandbox/mlogitmath.lyx new file mode 100644 index 0000000..198b7ee --- /dev/null +++ b/statsmodels/sandbox/mlogitmath.lyx @@ -0,0 +1,219 @@ +#LyX 1.6.2 created this file. For more info see http://www.lyx.org/ +\lyxformat 345 +\begin_document +\begin_header +\textclass article +\use_default_options true +\language english +\inputencoding auto +\font_roman default +\font_sans default +\font_typewriter default +\font_default_family default +\font_sc false +\font_osf false +\font_sf_scale 100 +\font_tt_scale 100 + +\graphics default +\paperfontsize default +\use_hyperref false +\papersize default +\use_geometry false +\use_amsmath 1 +\use_esint 1 +\cite_engine basic +\use_bibtopic false +\paperorientation portrait +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\defskip medskip +\quotes_language english +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\author "" +\author "" +\end_header + +\begin_body + +\begin_layout Standard +Notes on mlogit. +\end_layout + +\begin_layout Standard +Assume that +\begin_inset Formula $J=3$ +\end_inset + +, so that there are +\begin_inset Formula $2$ +\end_inset + + vectors of parameters for +\begin_inset Formula $J-1$ +\end_inset + +. + For now the parameters are passed around as +\begin_inset Formula \[ +\left[\beta_{1}^{\prime}\beta_{2}^{\prime}\right]\] + +\end_inset + + +\end_layout + +\begin_layout Standard +So if +\begin_inset Formula $K=3$ +\end_inset + + (including the constant), then the matrix of parameters is +\begin_inset Formula \[ +\left[\begin{array}{cc} +b_{10} & b_{20}\\ +b_{11} & b_{21}\\ +b_{12} & b_{22}\end{array}\right]^{\prime}\] + +\end_inset + + +\end_layout + +\begin_layout Standard +(changed to rows and added prime above, so this all changes and the score + is also just transposed and flattend along the zero axis.) This is flattened + along the zero axis for the sake of the solvers. + So that it is passed internally as +\begin_inset Formula \[ +\left[\begin{array}{cccccc} +b_{10} & b_{20} & b_{11} & b_{21} & b_{12} & b_{22}\end{array}\right]\] + +\end_inset + +Now the matrix of score vectors is +\begin_inset Formula \[ +\left[\begin{array}{cc} +\frac{\partial\ln L}{\partial b_{10}} & \frac{\partial\ln L}{\partial b_{20}}\\ +\frac{\partial\ln L}{\partial b_{11}} & \frac{\partial\ln L}{\partial b_{21}}\\ +\frac{\partial\ln L}{\partial b_{12}} & \frac{\partial\ln L}{\partial b_{22}}\end{array}\right]\] + +\end_inset + + +\end_layout + +\begin_layout Standard +In Dhrymes notation, this would be column vectors +\begin_inset Formula $\left(\partial\ln L/\partial\beta_{j}\right)^{\prime}\text{ for }j=1,2$ +\end_inset + + in our example. + So, our Jacobian is actually transposed vis-a-vis the more traditional + notation. + So that the solvers can handle this, though, it gets flattened but the + score gets flattened along the first axis to make things easier, which + is going to make things tricky. + Now, in traditional notation, the Hessian would be +\begin_inset Formula \[ +\frac{\partial^{2}\ln L}{\partial\beta_{j}\partial\beta_{j}}=\frac{\partial}{\partial\beta_{j}}\vec{\left[\left(\frac{\partial\ln L}{\partial\beta_{j}}\right)\right]}\] + +\end_inset + + +\end_layout + +\begin_layout Standard +where +\begin_inset Formula $\vec{}$ +\end_inset + + denotes a vectorized matrix, i.e., for a +\begin_inset Formula $n\times m$ +\end_inset + + matrix +\begin_inset Formula $X$ +\end_inset + +, +\begin_inset Formula $\vec{X}=\left(x_{\cdot1}^{\prime},x_{\cdot2}^{\prime},...,x_{\cdot m}^{\prime}\right)^{\prime}$ +\end_inset + + such that +\begin_inset Formula $x_{\cdot1}$ +\end_inset + + is the first +\begin_inset Formula $n$ +\end_inset + + elements of column 1 of +\begin_inset Formula $X$ +\end_inset + +. + This matrix is +\begin_inset Formula $mn\times n$ +\end_inset + +. + In our case +\begin_inset Formula $\ln L$ +\end_inset + + is a scalar so +\begin_inset Formula $m=1$ +\end_inset + +, so each second derivative is +\begin_inset Formula $n\times n$ +\end_inset + + and +\begin_inset Formula $n=K=3$ +\end_inset + + in our example. + Given our score +\begin_inset Quotes eld +\end_inset + +matrix, +\begin_inset Quotes erd +\end_inset + + our Hessian will look like +\begin_inset Formula \[ +H=\left[\begin{array}{cc} +\frac{\partial\ln L}{\partial\beta_{1}\partial\beta_{1}} & \frac{\partial\ln L}{\partial\beta_{1}\partial\beta_{2}}\\ +\frac{\partial\ln L}{\partial\beta_{2}\partial\beta_{1}} & \frac{\partial\ln L}{\partial\beta_{2}\partial\beta_{2}}\end{array}\right]\] + +\end_inset + + +\begin_inset Formula \[ +H=\left[\begin{array}{cccccc} +\frac{\partial^{2}\ln L}{\partial b_{10}\partial b_{10}} & \frac{\partial^{2}\ln L}{\partial b_{10}\partial b_{11}} & \frac{\partial^{2}\ln L}{\partial b_{10}\partial b_{12}} & \frac{\partial^{2}\ln L}{\partial b_{10}\partial b_{20}} & \frac{\partial^{2}\ln L}{\partial b_{10}\partial b_{21}} & \frac{\partial^{2}\ln L}{\partial b_{10}\partial b_{22}}\\ +\frac{\partial\ln L}{\partial b_{11}\partial b_{10}} & \frac{\partial\ln L}{\partial b_{11}\partial b_{11}} & \frac{\partial\ln L}{\partial b_{11}\partial b_{12}} & \frac{\partial\ln L}{\partial b_{11}\partial b_{20}} & \frac{\partial\ln L}{\partial b_{11}\partial b_{21}} & \frac{\partial\ln L}{\partial b_{11}\partial b_{22}}\\ +\frac{\partial\ln L}{\partial b_{12}\partial b_{10}} & \frac{\partial\ln L}{\partial b_{12}\partial b_{11}} & \frac{\partial\ln L}{\partial b_{12}\partial b_{12}} & \frac{\partial\ln L}{\partial b_{12}\partial b_{20}} & \frac{\partial\ln L}{\partial b_{12}\partial b_{21}} & \frac{\partial\ln L}{\partial b_{12}\partial b_{22}}\\ +\frac{\partial^{2}\ln L}{\partial b_{20}\partial b_{10}} & \frac{\partial^{2}\ln L}{\partial b_{20}\partial b_{11}} & \frac{\partial^{2}\ln L}{\partial b_{20}\partial b_{12}} & \frac{\partial^{2}\ln L}{\partial b_{20}\partial b_{20}} & \frac{\partial^{2}\ln L}{\partial b_{20}\partial b_{21}} & \frac{\partial^{2}\ln L}{\partial b_{20}\partial b_{22}}\\ +\frac{\partial\ln L}{\partial b_{21}\partial b_{10}} & \frac{\partial\ln L}{\partial b_{21}\partial b_{11}} & \frac{\partial\ln L}{\partial b_{21}\partial b_{12}} & \frac{\partial\ln L}{\partial b_{21}\partial b_{20}} & \frac{\partial\ln L}{\partial b_{21}\partial b_{21}} & \frac{\partial\ln L}{\partial b_{21}\partial b_{22}}\\ +\frac{\partial\ln L}{\partial b_{22}\partial b_{10}} & \frac{\partial\ln L}{\partial b_{22}\partial b_{11}} & \frac{\partial\ln L}{\partial b_{22}\partial b_{12}} & \frac{\partial\ln L}{\partial b_{22}\partial b_{20}} & \frac{\partial\ln L}{\partial b_{22}\partial b_{21}} & \frac{\partial\ln L}{\partial b_{22}\partial b_{22}}\end{array}\right]\] + +\end_inset + + +\end_layout + +\begin_layout Standard +But since our Jacobian is a row vector that alternate +\end_layout + +\end_body +\end_document diff --git a/statsmodels/sandbox/multilinear.py b/statsmodels/sandbox/multilinear.py new file mode 100644 index 0000000..89e419f --- /dev/null +++ b/statsmodels/sandbox/multilinear.py @@ -0,0 +1,326 @@ +"""Analyze a set of multiple variables with a linear models + +multiOLS: + take a model and test it on a series of variables defined over a + pandas dataset, returning a summary for each variable + +multigroup: + take a boolean vector and the definition of several groups of variables + and test if the group has a fraction of true values higher than the + rest. It allows to test if the variables in the group are significantly + more significant than outside the group. +""" + +from statsmodels.compat.pandas import sort_values +from statsmodels.compat.python import iteritems, string_types +from patsy import dmatrix +import pandas as pd +from statsmodels.api import OLS +from statsmodels.api import stats +import numpy as np +import logging + +def _model2dataframe(model_endog, model_exog, model_type=OLS, **kwargs): + """return a series containing the summary of a linear model + + All the exceding parameters will be redirected to the linear model + """ + # create the linear model and perform the fit + model_result = model_type(model_endog, model_exog, **kwargs).fit() + # keeps track of some global statistics + statistics = pd.Series({'r2': model_result.rsquared, + 'adj_r2': model_result.rsquared_adj}) + # put them togher with the result for each term + result_df = pd.DataFrame({'params': model_result.params, + 'pvals': model_result.pvalues, + 'std': model_result.bse, + 'statistics': statistics}) + # add the complexive results for f-value and the total p-value + fisher_df = pd.DataFrame({'params': {'_f_test': model_result.fvalue}, + 'pvals': {'_f_test': model_result.f_pvalue}}) + # merge them and unstack to obtain a hierarchically indexed series + res_series = pd.concat([result_df, fisher_df]).unstack() + return res_series.dropna() + + +def multiOLS(model, dataframe, column_list=None, method='fdr_bh', + alpha=0.05, subset=None, model_type=OLS, **kwargs): + """apply a linear model to several endogenous variables on a dataframe + + Take a linear model definition via formula and a dataframe that will be + the environment of the model, and apply the linear model to a subset + (or all) of the columns of the dataframe. It will return a dataframe + with part of the information from the linear model summary. + + Parameters + ---------- + model : string + formula description of the model + dataframe : pandas.dataframe + dataframe where the model will be evaluated + column_list : list of strings, optional + Names of the columns to analyze with the model. + If None (Default) it will perform the function on all the + eligible columns (numerical type and not in the model definition) + model_type : model class, optional + The type of model to be used. The default is the linear model. + Can be any linear model (OLS, WLS, GLS, etc..) + method: string, optional + the method used to perform the pvalue correction for multiple testing. + default is the Benjamini/Hochberg, other available methods are: + + `bonferroni` : one-step correction + `sidak` : on-step correction + `holm-sidak` : + `holm` : + `simes-hochberg` : + `hommel` : + `fdr_bh` : Benjamini/Hochberg + `fdr_by` : Benjamini/Yekutieli + + alpha: float, optional + the significance level used for the pvalue correction (default 0.05) + subset: boolean array + the selected rows to be used in the regression + + all the other parameters will be directed to the model creation. + + Returns + ------- + summary : pandas.DataFrame + a dataframe containing an extract from the summary of the model + obtained for each columns. It will give the model complexive f test + result and p-value, and the regression value and standard deviarion + for each of the regressors. The Dataframe has a hierachical column + structure, divided as: + + - params: contains the parameters resulting from the models. Has + an additional column named _f_test containing the result of the + F test. + - pval: the pvalue results of the models. Has the _f_test column + for the significativity of the whole test. + - adj_pval: the corrected pvalues via the multitest function. + - std: uncertainties of the model parameters + - statistics: contains the r squared statistics and the adjusted + r squared. + + Notes + ----- + The main application of this function is on system biology to perform + a linear model testing of a lot of different parameters, like the + different genetic expression of several genes. + + See Also + -------- + statsmodels.stats.multitest + contains several functions to perform the multiple p-value correction + + Examples + -------- + Using the longley data as dataframe example + + >>> import statsmodels.api as sm + >>> data = sm.datasets.longley.load_pandas() + >>> df = data.exog + >>> df['TOTEMP'] = data.endog + + This will perform the specified linear model on all the + other columns of the dataframe + >>> multiOLS('GNP + 1', df) + + This select only a certain subset of the columns + >>> multiOLS('GNP + 0', df, ['GNPDEFL', 'TOTEMP', 'POP']) + + It is possible to specify a trasformation also on the target column, + conforming to the patsy formula specification + >>> multiOLS('GNP + 0', df, ['I(GNPDEFL**2)', 'center(TOTEMP)']) + + It is possible to specify the subset of the dataframe + on which perform the analysis + >> multiOLS('GNP + 1', df, subset=df.GNPDEFL > 90) + + Even a single column name can be given without enclosing it in a list + >>> multiOLS('GNP + 0', df, 'GNPDEFL') + """ + # data normalization + # if None take all the numerical columns that aren't present in the model + # it's not waterproof but is a good enough criterion for everyday use + if column_list is None: + column_list = [name for name in dataframe.columns + if dataframe[name].dtype != object and name not in model] + # if it's a single string transform it in a single element list + if isinstance(column_list, string_types): + column_list = [column_list] + if subset is not None: + dataframe = dataframe.ix[subset] + # perform each model and retrieve the statistics + col_results = {} + # as the model will use always the same endogenous variables + # we can create them once and reuse + model_exog = dmatrix(model, data=dataframe, return_type="dataframe") + for col_name in column_list: + # it will try to interpret the column name as a valid dataframe + # index as it can be several times faster. If it fails it + # interpret it as a patsy formula (for example for centering) + try: + model_endog = dataframe[col_name] + except KeyError: + model_endog = dmatrix(col_name + ' + 0', data=dataframe) + # retrieve the result and store them + res = _model2dataframe(model_endog, model_exog, model_type, **kwargs) + col_results[col_name] = res + # mangle them togheter and sort by complexive p-value + summary = pd.DataFrame(col_results) + # order by the p-value: the most useful model first! + summary = sort_values(summary.T, [('pvals', '_f_test')]) + summary.index.name = 'endogenous vars' + # implementing the pvalue correction method + smt = stats.multipletests + for (key1, key2) in summary: + if key1 != 'pvals': + continue + p_values = summary[key1, key2] + corrected = smt(p_values, method=method, alpha=alpha)[1] + # extend the dataframe of results with the column + # of the corrected p_values + summary['adj_' + key1, key2] = corrected + return summary + + +def _test_group(pvalues, group_name, group, exact=True): + """test if the objects in the group are different from the general set. + + The test is performed on the pvalues set (ad a pandas series) over + the group specified via a fisher exact test. + """ + from scipy.stats import fisher_exact, chi2_contingency + + totals = 1.0 * len(pvalues) + total_significant = 1.0 * np.sum(pvalues) + cross_index = [c for c in group if c in pvalues.index] + missing = [c for c in group if c not in pvalues.index] + if missing: + s = ('the test is not well defined if the group ' + 'has elements not presents in the significativity ' + 'array. group name: {}, missing elements: {}') + logging.warning(s.format(group_name, missing)) + # how many are significant and not in the group + group_total = 1.0 * len(cross_index) + group_sign = 1.0 * len([c for c in cross_index if pvalues[c]]) + group_nonsign = 1.0 * (group_total - group_sign) + # how many are significant and not outside the group + extern_sign = 1.0 * (total_significant - group_sign) + extern_nonsign = 1.0 * (totals - total_significant - group_nonsign) + # make the fisher test or the chi squared + test = fisher_exact if exact else chi2_contingency + table = [[extern_nonsign, extern_sign], [group_nonsign, group_sign]] + pvalue = test(np.array(table))[1] + # is the group more represented or less? + part = group_sign, group_nonsign, extern_sign, extern_nonsign + #increase = (group_sign / group_total) > (total_significant / totals) + increase = np.log((totals * group_sign) + / (total_significant * group_total)) + return pvalue, increase, part + + +def multigroup(pvals, groups, exact=True, keep_all=True, alpha=0.05): + """Test if the given groups are different from the total partition. + + Given a boolean array test if each group has a proportion of positives + different than the complexive proportion. + The test can be done as an exact Fisher test or approximated as a + Chi squared test for more speed. + + Parameters + ---------- + pvals: pandas series of boolean + the significativity of the variables under analysis + groups: dict of list + the name of each category of variables under exam. + each one is a list of the variables included + exact: boolean, optional + If True (default) use the fisher exact test, otherwise + use the chi squared test for contingencies tables. + For high number of elements in the array the fisher test can + be significantly slower than the chi squared. + keep_all: boolean, optional + if False it will drop those groups where the fraction + of positive is below the expected result. If True (default) + it will keep all the significant results. + alpha: float, optional + the significativity level for the pvalue correction + on the whole set of groups (not inside the groups themselves). + + Returns + ------- + result_df: pandas dataframe + for each group returns: + + pvals - the fisher p value of the test + adj_pvals - the adjusted pvals + increase - the log of the odd ratio between the + internal significant ratio versus the external one + _in_sign - significative elements inside the group + _in_non - non significative elements inside the group + _out_sign - significative elements outside the group + _out_non - non significative elements outside the group + + Notes + ----- + This test allow to see if a category of variables is generally better + suited to be described for the model. For example to see if a predictor + gives more information on demographic or economical parameters, + by creating two groups containing the endogenous variables of each + category. + + This function is conceived for medical dataset with a lot of variables + that can be easily grouped into functional groups. This is because + The significativity of a group require a rather large number of + composing elements. + + Examples + -------- + A toy example on a real dataset, the Guerry dataset from R + >>> url = "http://vincentarelbundock.github.com/" + >>> url = url + "Rdatasets/csv/HistData/Guerry.csv" + >>> df = pd.read_csv(url, index_col='dept') + + evaluate the relationship between the variuos paramenters whith the Wealth + >>> pvals = multiOLS('Wealth', df)['adj_pvals', '_f_test'] + + define the groups + >>> groups = {} + >>> groups['crime'] = ['Crime_prop', 'Infanticide', + ... 'Crime_parents', 'Desertion', 'Crime_pers'] + >>> groups['religion'] = ['Donation_clergy', 'Clergy', 'Donations'] + >>> groups['wealth'] = ['Commerce', 'Lottery', 'Instruction', 'Literacy'] + + do the analysis of the significativity + >>> multigroup(pvals < 0.05, groups) + """ + pvals = pd.Series(pvals) + if not (set(pvals.unique()) <= set([False, True])): + raise ValueError("the series should be binary") + if hasattr(pvals.index, 'is_unique') and not pvals.index.is_unique: + raise ValueError("series with duplicated index is not accepted") + results = {'pvals': {}, + 'increase': {}, + '_in_sign': {}, + '_in_non': {}, + '_out_sign': {}, + '_out_non': {}} + for group_name, group_list in iteritems(groups): + res = _test_group(pvals, group_name, group_list, exact) + results['pvals'][group_name] = res[0] + results['increase'][group_name] = res[1] + results['_in_sign'][group_name] = res[2][0] + results['_in_non'][group_name] = res[2][1] + results['_out_sign'][group_name] = res[2][2] + results['_out_non'][group_name] = res[2][3] + result_df = sort_values(pd.DataFrame(results), 'pvals') + if not keep_all: + result_df = result_df[result_df.increase] + smt = stats.multipletests + corrected = smt(result_df['pvals'], method='fdr_bh', alpha=alpha)[1] + result_df['adj_pvals'] = corrected + return result_df diff --git a/statsmodels/sandbox/nonparametric/__init__.py b/statsmodels/sandbox/nonparametric/__init__.py new file mode 100644 index 0000000..633f866 --- /dev/null +++ b/statsmodels/sandbox/nonparametric/__init__.py @@ -0,0 +1,2 @@ +# -*- coding: utf-8 -*- + diff --git a/statsmodels/sandbox/nonparametric/densityorthopoly.py b/statsmodels/sandbox/nonparametric/densityorthopoly.py new file mode 100644 index 0000000..983251c --- /dev/null +++ b/statsmodels/sandbox/nonparametric/densityorthopoly.py @@ -0,0 +1,570 @@ +# -*- coding: cp1252 -*- +# some cut and paste characters are not ASCII +'''density estimation based on orthogonal polynomials + + +Author: Josef Perktold +Created: 2011-05017 +License: BSD + +2 versions work: based on Fourier, FPoly, and chebychev T, ChebyTPoly +also hermite polynomials, HPoly, works +other versions need normalization + + +TODO: + +* check fourier case again: base is orthonormal, + but needs offsetfact = 0 and doesn't integrate to 1, rescaled looks good +* hermite: works but DensityOrthoPoly requires currently finite bounds + I use it with offsettfactor 0.5 in example +* not implemented methods: + - add bonafide density correction + - add transformation to domain of polynomial base - DONE + possible problem: what is the behavior at the boundary, + offsetfact requires more work, check different cases, add as option + moved to polynomial class by default, as attribute +* convert examples to test cases +* need examples with large density on boundary, beta ? +* organize poly classes in separate module, check new numpy.polynomials, + polyvander +* MISE measures, order selection, ... + +enhancements: + * other polynomial bases: especially for open and half open support + * wavelets + * local or piecewise approximations + + +''' +from __future__ import print_function +from statsmodels.compat.python import zip +from scipy import stats, integrate +import numpy as np + + + +sqr2 = np.sqrt(2.) + +class FPoly(object): + '''Orthonormal (for weight=1) Fourier Polynomial on [0,1] + + orthonormal polynomial but density needs corfactor that I don't see what + it is analytically + + parameterization on [0,1] from + + Sam Efromovich: Orthogonal series density estimation, + 2010 John Wiley & Sons, Inc. WIREs Comp Stat 2010 2 467–476 + + + ''' + + def __init__(self, order): + self.order = order + self.domain = (0, 1) + self.intdomain = self.domain + + def __call__(self, x): + if self.order == 0: + return np.ones_like(x) + else: + return sqr2 * np.cos(np.pi * self.order * x) + +class F2Poly(object): + '''Orthogonal (for weight=1) Fourier Polynomial on [0,pi] + + is orthogonal but first component doesn't square-integrate to 1 + final result seems to need a correction factor of sqrt(pi) + _corfactor = sqrt(pi) from integrating the density + + Parameterization on [0, pi] from + + Peter Hall, Cross-Validation and the Smoothing of Orthogonal Series Density + Estimators, JOURNAL OF MULTIVARIATE ANALYSIS 21, 189-206 (1987) + + ''' + + def __init__(self, order): + self.order = order + self.domain = (0, np.pi) + self.intdomain = self.domain + self.offsetfactor = 0 + + def __call__(self, x): + if self.order == 0: + return np.ones_like(x) / np.sqrt(np.pi) + else: + return sqr2 * np.cos(self.order * x) / np.sqrt(np.pi) + +class ChebyTPoly(object): + '''Orthonormal (for weight=1) Chebychev Polynomial on (-1,1) + + + Notes + ----- + integration requires to stay away from boundary, offsetfactor > 0 + maybe this implies that we cannot use it for densities that are > 0 at + boundary ??? + + or maybe there is a mistake close to the boundary, sometimes integration works. + + ''' + + def __init__(self, order): + self.order = order + from scipy.special import chebyt + self.poly = chebyt(order) + self.domain = (-1, 1) + self.intdomain = (-1+1e-6, 1-1e-6) + #not sure if I need this, in integration nans are possible on the boundary + self.offsetfactor = 0.01 #required for integration + + + def __call__(self, x): + if self.order == 0: + return np.ones_like(x) / (1-x**2)**(1/4.) /np.sqrt(np.pi) + + else: + return self.poly(x) / (1-x**2)**(1/4.) /np.sqrt(np.pi) *np.sqrt(2) + + + +from scipy.misc import factorial +from scipy import special + +logpi2 = np.log(np.pi)/2 + +class HPoly(object): + '''Orthonormal (for weight=1) Hermite Polynomial, uses finite bounds + + for current use with DensityOrthoPoly domain is defined as [-6,6] + + ''' + def __init__(self, order): + self.order = order + from scipy.special import hermite + self.poly = hermite(order) + self.domain = (-6, +6) + self.offsetfactor = 0.5 # note this is + + def __call__(self, x): + k = self.order + + lnfact = -(1./2)*(k*np.log(2.) + special.gammaln(k+1) + logpi2) - x*x/2 + fact = np.exp(lnfact) + + return self.poly(x) * fact + +def polyvander(x, polybase, order=5): + polyarr = np.column_stack([polybase(i)(x) for i in range(order)]) + return polyarr + +def inner_cont(polys, lower, upper, weight=None): + '''inner product of continuous function (with weight=1) + + Parameters + ---------- + polys : list of callables + polynomial instances + lower : float + lower integration limit + upper : float + upper integration limit + weight : callable or None + weighting function + + Returns + ------- + innp : ndarray + symmetric 2d square array with innerproduct of all function pairs + err : ndarray + numerical error estimate from scipy.integrate.quad, same dimension as innp + + Examples + -------- + >>> from scipy.special import chebyt + >>> polys = [chebyt(i) for i in range(4)] + >>> r, e = inner_cont(polys, -1, 1) + >>> r + array([[ 2. , 0. , -0.66666667, 0. ], + [ 0. , 0.66666667, 0. , -0.4 ], + [-0.66666667, 0. , 0.93333333, 0. ], + [ 0. , -0.4 , 0. , 0.97142857]]) + + ''' + n_polys = len(polys) + innerprod = np.empty((n_polys, n_polys)) + innerprod.fill(np.nan) + interr = np.zeros((n_polys, n_polys)) + + for i in range(n_polys): + for j in range(i+1): + p1 = polys[i] + p2 = polys[j] + if not weight is None: + innp, err = integrate.quad(lambda x: p1(x)*p2(x)*weight(x), + lower, upper) + else: + innp, err = integrate.quad(lambda x: p1(x)*p2(x), lower, upper) + innerprod[i,j] = innp + interr[i,j] = err + if not i == j: + innerprod[j,i] = innp + interr[j,i] = err + + return innerprod, interr + + +def is_orthonormal_cont(polys, lower, upper, rtol=0, atol=1e-08): + '''check whether functions are orthonormal + + Parameters + ---------- + polys : list of polynomials or function + + Returns + ------- + is_orthonormal : bool + is False if the innerproducts are not close to 0 or 1 + + Notes + ----- + this stops as soon as the first deviation from orthonormality is found. + + Examples + -------- + >>> from scipy.special import chebyt + >>> polys = [chebyt(i) for i in range(4)] + >>> r, e = inner_cont(polys, -1, 1) + >>> r + array([[ 2. , 0. , -0.66666667, 0. ], + [ 0. , 0.66666667, 0. , -0.4 ], + [-0.66666667, 0. , 0.93333333, 0. ], + [ 0. , -0.4 , 0. , 0.97142857]]) + >>> is_orthonormal_cont(polys, -1, 1, atol=1e-6) + False + + >>> polys = [ChebyTPoly(i) for i in range(4)] + >>> r, e = inner_cont(polys, -1, 1) + >>> r + array([[ 1.00000000e+00, 0.00000000e+00, -9.31270888e-14, + 0.00000000e+00], + [ 0.00000000e+00, 1.00000000e+00, 0.00000000e+00, + -9.47850712e-15], + [ -9.31270888e-14, 0.00000000e+00, 1.00000000e+00, + 0.00000000e+00], + [ 0.00000000e+00, -9.47850712e-15, 0.00000000e+00, + 1.00000000e+00]]) + >>> is_orthonormal_cont(polys, -1, 1, atol=1e-6) + True + + ''' + for i in range(len(polys)): + for j in range(i+1): + p1 = polys[i] + p2 = polys[j] + innerprod = integrate.quad(lambda x: p1(x)*p2(x), lower, upper)[0] + #print i,j, innerprod + if not np.allclose(innerprod, i==j, rtol=rtol, atol=atol): + return False + return True + + + +#new versions + + +class DensityOrthoPoly(object): + '''Univariate density estimation by orthonormal series expansion + + + Uses an orthonormal polynomial basis to approximate a univariate density. + + + currently all arguments can be given to fit, I might change it to requiring + arguments in __init__ instead. + ''' + + def __init__(self, polybase=None, order=5): + if not polybase is None: + self.polybase = polybase + self.polys = polys = [polybase(i) for i in range(order)] + #try: + #self.offsetfac = 0.05 + #self.offsetfac = polys[0].offsetfactor #polys maybe not defined yet + self._corfactor = 1 + self._corshift = 0 + + + def fit(self, x, polybase=None, order=5, limits=None): + '''estimate the orthogonal polynomial approximation to the density + + ''' + if polybase is None: + polys = self.polys[:order] + else: + self.polybase = polybase + self.polys = polys = [polybase(i) for i in range(order)] + + #move to init ? + if not hasattr(self, 'offsetfac'): + self.offsetfac = polys[0].offsetfactor + + + xmin, xmax = x.min(), x.max() + if limits is None: + self.offset = offset = (xmax - xmin) * self.offsetfac + limits = self.limits = (xmin - offset, xmax + offset) + + interval_length = limits[1] - limits[0] + xinterval = xmax - xmin + # need to cover (half-)open intervalls + self.shrink = 1. / interval_length #xinterval/interval_length + offset = (interval_length - xinterval ) / 2. + self.shift = xmin - offset + + self.x = x = self._transform(x) + + coeffs = [(p(x)).mean() for p in polys] + self.coeffs = coeffs + self.polys = polys + self._verify() #verify that it is a proper density + + return self #coeffs, polys + + def evaluate(self, xeval, order=None): + xeval = self._transform(xeval) + if order is None: + order = len(self.polys) + res = sum(c*p(xeval) for c, p in zip(self.coeffs, self.polys)[:order]) + res = self._correction(res) + return res + + def __call__(self, xeval): + '''alias for evaluate, except no order argument''' + return self.evaluate(xeval) + + def _verify(self): + '''check for bona fide density correction + + currently only checks that density integrates to 1 + +` non-negativity - NotImplementedYet + ''' + #watch out for circular/recursive usage + + #evaluate uses domain of data, we stay offset away from bounds + intdomain = self.limits #self.polys[0].intdomain + self._corfactor = 1./integrate.quad(self.evaluate, *intdomain)[0] + #self._corshift = 0 + #self._corfactor + return self._corfactor + + + + def _correction(self, x): + '''bona fide density correction + + affine shift of density to make it into a proper density + + ''' + if self._corfactor != 1: + x *= self._corfactor + + if self._corshift != 0: + x += self._corshift + + return x + + def _transform(self, x): # limits=None): + '''transform observation to the domain of the density + + + uses shrink and shift attribute which are set in fit to stay + + + ''' + + #use domain from first instance + #class doesn't have domain self.polybase.domain[0] AttributeError + domain = self.polys[0].domain + + ilen = (domain[1] - domain[0]) + shift = self.shift - domain[0]/self.shrink/ilen + shrink = self.shrink * ilen + + return (x - shift) * shrink + + +#old version as a simple function +def density_orthopoly(x, polybase, order=5, xeval=None): + from scipy.special import legendre, hermitenorm, chebyt, chebyu, hermite + #polybase = legendre #chebyt #hermitenorm# + #polybase = chebyt + #polybase = FPoly + #polybase = ChtPoly + #polybase = hermite + #polybase = HPoly + + if xeval is None: + xeval = np.linspace(x.min(),x.max(),50) + + #polys = [legendre(i) for i in range(order)] + polys = [polybase(i) for i in range(order)] + #coeffs = [(p(x)*(1-x**2)**(-1/2.)).mean() for p in polys] + #coeffs = [(p(x)*np.exp(-x*x)).mean() for p in polys] + coeffs = [(p(x)).mean() for p in polys] + res = sum(c*p(xeval) for c, p in zip(coeffs, polys)) + #res *= (1-xeval**2)**(-1/2.) + #res *= np.exp(-xeval**2./2) + return res, xeval, coeffs, polys + + + +if __name__ == '__main__': + + examples = ['chebyt', 'fourier', 'hermite']#[2] + + nobs = 10000 + + import matplotlib.pyplot as plt + from statsmodels.sandbox.distributions.mixture_rvs import ( + mixture_rvs, MixtureDistribution) + + #np.random.seed(12345) +## obs_dist = mixture_rvs([1/3.,2/3.], size=nobs, dist=[stats.norm, stats.norm], +## kwargs = (dict(loc=-1,scale=.5),dict(loc=1,scale=.75))) + mix_kwds = (dict(loc=-0.5,scale=.5),dict(loc=1,scale=.2)) + obs_dist = mixture_rvs([1/3.,2/3.], size=nobs, dist=[stats.norm, stats.norm], + kwargs=mix_kwds) + mix = MixtureDistribution() + + #obs_dist = np.random.randn(nobs)/4. #np.sqrt(2) + + + if "chebyt_" in examples: # needed for Cheby example below + #obs_dist = np.clip(obs_dist, -2, 2)/2.01 + #chebyt [0,1] + obs_dist = obs_dist[(obs_dist>-2) & (obs_dist<2)]/2.0 #/4. + 2/4.0 + #fourier [0,1] + #obs_dist = obs_dist[(obs_dist>-2) & (obs_dist<2)]/4. + 2/4.0 + f_hat, grid, coeffs, polys = density_orthopoly(obs_dist, ChebyTPoly, order=20, xeval=None) + #f_hat /= f_hat.sum() * (grid.max() - grid.min())/len(grid) + f_hat0 = f_hat + from scipy import integrate + fint = integrate.trapz(f_hat, grid)# dx=(grid.max() - grid.min())/len(grid)) + #f_hat -= fint/2. + print('f_hat.min()', f_hat.min()) + f_hat = (f_hat - f_hat.min()) #/ f_hat.max() - f_hat.min + fint2 = integrate.trapz(f_hat, grid)# dx=(grid.max() - grid.min())/len(grid)) + print('fint2', fint, fint2) + f_hat /= fint2 + + # note that this uses a *huge* grid by default + #f_hat, grid = kdensityfft(emp_dist, kernel="gauss", bw="scott") + + # check the plot + + doplot = 0 + if doplot: + plt.hist(obs_dist, bins=50, normed=True, color='red') + plt.plot(grid, f_hat, lw=2, color='black') + plt.plot(grid, f_hat0, lw=2, color='g') + plt.show() + + for i,p in enumerate(polys[:5]): + for j,p2 in enumerate(polys[:5]): + print(i,j,integrate.quad(lambda x: p(x)*p2(x), -1,1)[0]) + + for p in polys: + print(integrate.quad(lambda x: p(x)**2, -1,1)) + + + #examples using the new class + + if "chebyt" in examples: + dop = DensityOrthoPoly().fit(obs_dist, ChebyTPoly, order=20) + grid = np.linspace(obs_dist.min(), obs_dist.max()) + xf = dop(grid) + #print('np.max(np.abs(xf - f_hat0))', np.max(np.abs(xf - f_hat0)) + dopint = integrate.quad(dop, *dop.limits)[0] + print('dop F integral', dopint) + mpdf = mix.pdf(grid, [1/3.,2/3.], dist=[stats.norm, stats.norm], + kwargs=mix_kwds) + + doplot = 1 + if doplot: + plt.figure() + plt.hist(obs_dist, bins=50, normed=True, color='red') + plt.plot(grid, xf, lw=2, color='black') + plt.plot(grid, mpdf, lw=2, color='green') + plt.title('using Chebychev polynomials') + #plt.show() + + if "fourier" in examples: + dop = DensityOrthoPoly() + dop.offsetfac = 0.5 + dop = dop.fit(obs_dist, F2Poly, order=30) + grid = np.linspace(obs_dist.min(), obs_dist.max()) + xf = dop(grid) + #print(np.max(np.abs(xf - f_hat0)) + dopint = integrate.quad(dop, *dop.limits)[0] + print('dop F integral', dopint) + mpdf = mix.pdf(grid, [1/3.,2/3.], dist=[stats.norm, stats.norm], + kwargs=mix_kwds) + + doplot = 1 + if doplot: + plt.figure() + plt.hist(obs_dist, bins=50, normed=True, color='red') + plt.title('using Fourier polynomials') + plt.plot(grid, xf, lw=2, color='black') + plt.plot(grid, mpdf, lw=2, color='green') + #plt.show() + + #check orthonormality: + print(np.max(np.abs(inner_cont(dop.polys[:5], 0, 1)[0] -np.eye(5)))) + + if "hermite" in examples: + dop = DensityOrthoPoly() + dop.offsetfac = 0 + dop = dop.fit(obs_dist, HPoly, order=20) + grid = np.linspace(obs_dist.min(), obs_dist.max()) + xf = dop(grid) + #print(np.max(np.abs(xf - f_hat0)) + dopint = integrate.quad(dop, *dop.limits)[0] + print('dop F integral', dopint) + + mpdf = mix.pdf(grid, [1/3.,2/3.], dist=[stats.norm, stats.norm], + kwargs=mix_kwds) + + doplot = 1 + if doplot: + plt.figure() + plt.hist(obs_dist, bins=50, normed=True, color='red') + plt.plot(grid, xf, lw=2, color='black') + plt.plot(grid, mpdf, lw=2, color='green') + plt.title('using Hermite polynomials') + plt.show() + + #check orthonormality: + print(np.max(np.abs(inner_cont(dop.polys[:5], 0, 1)[0] -np.eye(5)))) + + + #check orthonormality + + hpolys = [HPoly(i) for i in range(5)] + inn = inner_cont(hpolys, -6, 6)[0] + print(np.max(np.abs(inn - np.eye(5)))) + print((inn*100000).astype(int)) + + from scipy.special import hermite, chebyt + htpolys = [hermite(i) for i in range(5)] + innt = inner_cont(htpolys, -10, 10)[0] + print((innt*100000).astype(int)) + + polysc = [chebyt(i) for i in range(4)] + r, e = inner_cont(polysc, -1, 1, weight=lambda x: (1-x*x)**(-1/2.)) + print(np.max(np.abs(r - np.diag(np.diag(r))))) + diff --git a/statsmodels/sandbox/nonparametric/dgp_examples.py b/statsmodels/sandbox/nonparametric/dgp_examples.py new file mode 100644 index 0000000..9d1e2fe --- /dev/null +++ b/statsmodels/sandbox/nonparametric/dgp_examples.py @@ -0,0 +1,213 @@ +# -*- coding: utf-8 -*- +"""Examples of non-linear functions for non-parametric regression + +Created on Sat Jan 05 20:21:22 2013 + +Author: Josef Perktold +""" + +import numpy as np + +## Functions + +def fg1(x): + '''Fan and Gijbels example function 1 + + ''' + return x + 2 * np.exp(-16 * x**2) + +def fg1eu(x): + '''Eubank similar to Fan and Gijbels example function 1 + + ''' + return x + 0.5 * np.exp(-50 * (x - 0.5)**2) + +def fg2(x): + '''Fan and Gijbels example function 2 + + ''' + return np.sin(2 * x) + 2 * np.exp(-16 * x**2) + +def func1(x): + '''made up example with sin, square + + ''' + return np.sin(x * 5) / x + 2. * x - 1. * x**2 + +## Classes with Data Generating Processes + +doc = {'description': +'''Base Class for Univariate non-linear example + + Does not work on it's own. + needs additional at least self.func +''', +'ref': ''} + +class _UnivariateFunction(object): + #Base Class for Univariate non-linear example. + #Does not work on it's own. needs additionally at least self.func + __doc__ = '''%(description)s + + Parameters + ---------- + nobs : int + number of observations to simulate + x : None or 1d array + If x is given then it is used for the exogenous variable instead of + creating a random sample + distr_x : None or distribution instance + Only used if x is None. The rvs method is used to create a random + sample of the exogenous (explanatory) variable. + distr_noise : None or distribution instance + The rvs method is used to create a random sample of the errors. + + Attributes + ---------- + x : ndarray, 1-D + exogenous or explanatory variable. x is sorted. + y : ndarray, 1-D + endogenous or response variable + y_true : ndarray, 1-D + expected values of endogenous or response variable, i.e. values of y + without noise + func : callable + underlying function (defined by subclass) + + %(ref)s + ''' #% doc + + def __init__(self, nobs=200, x=None, distr_x=None, distr_noise=None): + + if x is None: + if distr_x is None: + x = np.random.normal(loc=0, scale=self.s_x, size=nobs) + else: + x = distr_x.rvs(size=nobs) + x.sort() + + self.x = x + + if distr_noise is None: + noise = np.random.normal(loc=0, scale=self.s_noise, size=nobs) + else: + noise = distr_noise.rvs(size=nobs) + + if hasattr(self, 'het_scale'): + noise *= self.het_scale(self.x) + + #self.func = fg1 + self.y_true = y_true = self.func(x) + self.y = y_true + noise + + + def plot(self, scatter=True, ax=None): + '''plot the mean function and optionally the scatter of the sample + + Parameters + ---------- + scatter: bool + If true, then add scatterpoints of sample to plot. + ax : None or matplotlib axis instance + If None, then a matplotlib.pyplot figure is created, otherwise + the given axis, ax, is used. + + Returns + ------- + fig : matplotlib figure + This is either the created figure instance or the one associated + with ax if ax is given. + + ''' + if ax is None: + import matplotlib.pyplot as plt + fig = plt.figure() + ax = fig.add_subplot(1, 1, 1) + + if scatter: + ax.plot(self.x, self.y, 'o', alpha=0.5) + + xx = np.linspace(self.x.min(), self.x.max(), 100) + ax.plot(xx, self.func(xx), lw=2, color='b', label='dgp mean') + return ax.figure + +doc = {'description': +'''Fan and Gijbels example function 1 + +linear trend plus a hump +''', +'ref': +''' +References +---------- +Fan, Jianqing, and Irene Gijbels. 1992. "Variable Bandwidth and Local +Linear Regression Smoothers." +The Annals of Statistics 20 (4) (December): 2008-2036. doi:10.2307/2242378. + +'''} + +class UnivariateFanGijbels1(_UnivariateFunction): + __doc__ = _UnivariateFunction.__doc__ % doc + + + def __init__(self, nobs=200, x=None, distr_x=None, distr_noise=None): + self.s_x = 1. + self.s_noise = 0.7 + self.func = fg1 + super(self.__class__, self).__init__(nobs=nobs, x=x, + distr_x=distr_x, + distr_noise=distr_noise) + +doc['description'] =\ +'''Fan and Gijbels example function 2 + +sin plus a hump +''' + +class UnivariateFanGijbels2(_UnivariateFunction): + __doc__ = _UnivariateFunction.__doc__ % doc + + def __init__(self, nobs=200, x=None, distr_x=None, distr_noise=None): + self.s_x = 1. + self.s_noise = 0.5 + self.func = fg2 + super(self.__class__, self).__init__(nobs=nobs, x=x, + distr_x=distr_x, + distr_noise=distr_noise) + +class UnivariateFanGijbels1EU(_UnivariateFunction): + ''' + + Eubank p.179f + ''' + + def __init__(self, nobs=50, x=None, distr_x=None, distr_noise=None): + if distr_x is None: + from scipy import stats + distr_x = stats.uniform + self.s_noise = 0.15 + self.func = fg1eu + super(self.__class__, self).__init__(nobs=nobs, x=x, + distr_x=distr_x, + distr_noise=distr_noise) + +class UnivariateFunc1(_UnivariateFunction): + ''' + + made up, with sin and quadratic trend + ''' + + def __init__(self, nobs=200, x=None, distr_x=None, distr_noise=None): + if x is None and distr_x is None: + from scipy import stats + distr_x = stats.uniform(-2, 4) + else: + nobs = x.shape[0] + self.s_noise = 2. + self.func = func1 + super(UnivariateFunc1, self).__init__(nobs=nobs, x=x, + distr_x=distr_x, + distr_noise=distr_noise) + + def het_scale(self, x): + return np.sqrt(np.abs(3+x)) diff --git a/statsmodels/sandbox/nonparametric/kde2.py b/statsmodels/sandbox/nonparametric/kde2.py new file mode 100644 index 0000000..7dab02f --- /dev/null +++ b/statsmodels/sandbox/nonparametric/kde2.py @@ -0,0 +1,114 @@ +# -*- coding: utf-8 -*- +from __future__ import print_function +from statsmodels.compat.python import lzip, zip +import numpy as np +from . import kernels + + +#TODO: should this be a function? +class KDE(object): + """ + Kernel Density Estimator + + Parameters + ---------- + x : array-like + N-dimensional array from which the density is to be estimated + kernel : Kernel Class + Should be a class from * + + """ + #TODO: amend docs for Nd case? + def __init__(self, x, kernel=None): + x = np.asarray(x) + if x.ndim == 1: + x = x[:,None] + + nobs, n_series = x.shape + + if kernel is None: + kernel = kernels.Gaussian() # no meaningful bandwidth yet + + if n_series > 1: + if isinstance( kernel, kernels.CustomKernel ): + kernel = kernels.NdKernel(n_series, kernels = kernel) + + self.kernel = kernel + self.n = n_series #TODO change attribute + self.x = x + + def density(self, x): + return self.kernel.density(self.x, x) + + def __call__(self, x, h="scott"): + return np.array([self.density(xx) for xx in x]) + + def evaluate(self, x, h="silverman"): + density = self.kernel.density + return np.array([density(xx) for xx in x]) + + +if __name__ == "__main__": + from numpy import random + import matplotlib.pyplot as plt + import statsmodels.nonparametric.bandwidths as bw + from statsmodels.sandbox.nonparametric.testdata import kdetest + + # 1-D case + random.seed(142) + x = random.standard_t(4.2, size = 50) + h = bw.bw_silverman(x) + #NOTE: try to do it with convolution + support = np.linspace(-10,10,512) + + + kern = kernels.Gaussian(h = h) + kde = KDE( x, kern) + print(kde.density(1.015469)) + print(0.2034675) + Xs = np.arange(-10,10,0.1) + + fig = plt.figure() + ax = fig.add_subplot(111) + ax.plot(Xs, kde(Xs), "-") + ax.set_ylim(-10, 10) + ax.set_ylim(0,0.4) + + + # 2-D case + x = lzip(kdetest.faithfulData["eruptions"], kdetest.faithfulData["waiting"]) + x = np.array(x) + x = (x - x.mean(0))/x.std(0) + nobs = x.shape[0] + H = kdetest.Hpi + kern = kernels.NdKernel( 2 ) + kde = KDE( x, kern ) + print(kde.density( np.matrix( [1,2 ]))) #.T + plt.figure() + plt.plot(x[:,0], x[:,1], 'o') + + + n_grid = 50 + xsp = np.linspace(x.min(0)[0], x.max(0)[0], n_grid) + ysp = np.linspace(x.min(0)[1], x.max(0)[1], n_grid) +# xsorted = np.sort(x) +# xlow = xsorted[nobs/4] +# xupp = xsorted[3*nobs/4] +# xsp = np.linspace(xlow[0], xupp[0], n_grid) +# ysp = np.linspace(xlow[1], xupp[1], n_grid) + xr, yr = np.meshgrid(xsp, ysp) + kde_vals = np.array([kde.density( np.matrix( [xi, yi ]) ) for xi, yi in + zip(xr.ravel(), yr.ravel())]) + plt.contour(xsp, ysp, kde_vals.reshape(n_grid, n_grid)) + + plt.show() + + + # 5 D case +# random.seed(142) +# mu = [1.0, 4.0, 3.5, -2.4, 0.0] +# sigma = np.matrix( +# [[ 0.6 - 0.1*abs(i-j) if i != j else 1.0 for j in xrange(5)] for i in xrange(5)]) +# x = random.multivariate_normal(mu, sigma, size = 100) +# kern = kernel.Gaussian() +# kde = KernelEstimate( x, kern ) diff --git a/statsmodels/sandbox/nonparametric/kdecovclass.py b/statsmodels/sandbox/nonparametric/kdecovclass.py new file mode 100644 index 0000000..54611f0 --- /dev/null +++ b/statsmodels/sandbox/nonparametric/kdecovclass.py @@ -0,0 +1,163 @@ +'''subclassing kde + +Author: josef pktd +''' + +import numpy as np +import scipy +from scipy import stats +import matplotlib.pylab as plt + +class gaussian_kde_set_covariance(stats.gaussian_kde): + ''' + from Anne Archibald in mailinglist: + http://www.nabble.com/Width-of-the-gaussian-in-stats.kde.gaussian_kde---td19558924.html#a19558924 + ''' + def __init__(self, dataset, covariance): + self.covariance = covariance + scipy.stats.gaussian_kde.__init__(self, dataset) + + def _compute_covariance(self): + self.inv_cov = np.linalg.inv(self.covariance) + self._norm_factor = sqrt(np.linalg.det(2*np.pi*self.covariance)) * self.n + + +class gaussian_kde_covfact(stats.gaussian_kde): + def __init__(self, dataset, covfact = 'scotts'): + self.covfact = covfact + scipy.stats.gaussian_kde.__init__(self, dataset) + + def _compute_covariance_(self): + '''not used''' + self.inv_cov = np.linalg.inv(self.covariance) + self._norm_factor = sqrt(np.linalg.det(2*np.pi*self.covariance)) * self.n + + def covariance_factor(self): + if self.covfact in ['sc', 'scotts']: + return self.scotts_factor() + if self.covfact in ['si', 'silverman']: + return self.silverman_factor() + elif self.covfact: + return float(self.covfact) + else: + raise ValueError('covariance factor has to be scotts, silverman or a number') + + def reset_covfact(self, covfact): + self.covfact = covfact + self.covariance_factor() + self._compute_covariance() + +def plotkde(covfact): + gkde.reset_covfact(covfact) + kdepdf = gkde.evaluate(ind) + plt.figure() + # plot histgram of sample + plt.hist(xn, bins=20, normed=1) + # plot estimated density + plt.plot(ind, kdepdf, label='kde', color="g") + # plot data generating density + plt.plot(ind, alpha * stats.norm.pdf(ind, loc=mlow) + + (1-alpha) * stats.norm.pdf(ind, loc=mhigh), + color="r", label='DGP: normal mix') + plt.title('Kernel Density Estimation - ' + str(gkde.covfact)) + plt.legend() + +from numpy.testing import assert_array_almost_equal, \ + assert_almost_equal, assert_ +def test_kde_1d(): + np.random.seed(8765678) + n_basesample = 500 + xn = np.random.randn(n_basesample) + xnmean = xn.mean() + xnstd = xn.std(ddof=1) + print(xnmean, xnstd) + + # get kde for original sample + gkde = stats.gaussian_kde(xn) + + # evaluate the density funtion for the kde for some points + xs = np.linspace(-7,7,501) + kdepdf = gkde.evaluate(xs) + normpdf = stats.norm.pdf(xs, loc=xnmean, scale=xnstd) + print('MSE', np.sum((kdepdf - normpdf)**2)) + print('axabserror', np.max(np.abs(kdepdf - normpdf))) + intervall = xs[1] - xs[0] + assert_(np.sum((kdepdf - normpdf)**2)*intervall < 0.01) + #assert_array_almost_equal(kdepdf, normpdf, decimal=2) + print(gkde.integrate_gaussian(0.0, 1.0)) + print(gkde.integrate_box_1d(-np.inf, 0.0)) + print(gkde.integrate_box_1d(0.0, np.inf)) + print(gkde.integrate_box_1d(-np.inf, xnmean)) + print(gkde.integrate_box_1d(xnmean, np.inf)) + + assert_almost_equal(gkde.integrate_box_1d(xnmean, np.inf), 0.5, decimal=1) + assert_almost_equal(gkde.integrate_box_1d(-np.inf, xnmean), 0.5, decimal=1) + assert_almost_equal(gkde.integrate_box(xnmean, np.inf), 0.5, decimal=1) + assert_almost_equal(gkde.integrate_box(-np.inf, xnmean), 0.5, decimal=1) + + assert_almost_equal(gkde.integrate_kde(gkde), + (kdepdf**2).sum()*intervall, decimal=2) + assert_almost_equal(gkde.integrate_gaussian(xnmean, xnstd**2), + (kdepdf*normpdf).sum()*intervall, decimal=2) +## assert_almost_equal(gkde.integrate_gaussian(0.0, 1.0), +## (kdepdf*normpdf).sum()*intervall, decimal=2) + + + + +if __name__ == '__main__': + # generate a sample + n_basesample = 1000 + np.random.seed(8765678) + alpha = 0.6 #weight for (prob of) lower distribution + mlow, mhigh = (-3,3) #mean locations for gaussian mixture + xn = np.concatenate([mlow + np.random.randn(alpha * n_basesample), + mhigh + np.random.randn((1-alpha) * n_basesample)]) + + # get kde for original sample + #gkde = stats.gaussian_kde(xn) + gkde = gaussian_kde_covfact(xn, 0.1) + # evaluate the density funtion for the kde for some points + ind = np.linspace(-7,7,101) + kdepdf = gkde.evaluate(ind) + + plt.figure() + # plot histgram of sample + plt.hist(xn, bins=20, normed=1) + # plot estimated density + plt.plot(ind, kdepdf, label='kde', color="g") + # plot data generating density + plt.plot(ind, alpha * stats.norm.pdf(ind, loc=mlow) + + (1-alpha) * stats.norm.pdf(ind, loc=mhigh), + color="r", label='DGP: normal mix') + plt.title('Kernel Density Estimation') + plt.legend() + + gkde = gaussian_kde_covfact(xn, 'scotts') + kdepdf = gkde.evaluate(ind) + plt.figure() + # plot histgram of sample + plt.hist(xn, bins=20, normed=1) + # plot estimated density + plt.plot(ind, kdepdf, label='kde', color="g") + # plot data generating density + plt.plot(ind, alpha * stats.norm.pdf(ind, loc=mlow) + + (1-alpha) * stats.norm.pdf(ind, loc=mhigh), + color="r", label='DGP: normal mix') + plt.title('Kernel Density Estimation') + plt.legend() + #plt.show() + for cv in ['scotts', 'silverman', 0.05, 0.1, 0.5]: + plotkde(cv) + + test_kde_1d() + + + np.random.seed(8765678) + n_basesample = 1000 + xn = np.random.randn(n_basesample) + xnmean = xn.mean() + xnstd = xn.std(ddof=1) + + # get kde for original sample + gkde = stats.gaussian_kde(xn) diff --git a/statsmodels/sandbox/nonparametric/kernel_extras.py b/statsmodels/sandbox/nonparametric/kernel_extras.py new file mode 100644 index 0000000..b161e39 --- /dev/null +++ b/statsmodels/sandbox/nonparametric/kernel_extras.py @@ -0,0 +1,416 @@ +""" +Multivariate Conditional and Unconditional Kernel Density Estimation +with Mixed Data Types + +References +---------- +[1] Racine, J., Li, Q. Nonparametric econometrics: theory and practice. + Princeton University Press. (2007) +[2] Racine, Jeff. "Nonparametric Econometrics: A Primer," Foundation + and Trends in Econometrics: Vol 3: No 1, pp1-88. (2008) + http://dx.doi.org/10.1561/0800000009 +[3] Racine, J., Li, Q. "Nonparametric Estimation of Distributions + with Categorical and Continuous Data." Working Paper. (2000) +[4] Racine, J. Li, Q. "Kernel Estimation of Multivariate Conditional + Distributions Annals of Economics and Finance 5, 211-235 (2004) +[5] Liu, R., Yang, L. "Kernel estimation of multivariate + cumulative distribution function." + Journal of Nonparametric Statistics (2008) +[6] Li, R., Ju, G. "Nonparametric Estimation of Multivariate CDF + with Categorical and Continuous Data." Working Paper +[7] Li, Q., Racine, J. "Cross-validated local linear nonparametric + regression" Statistica Sinica 14(2004), pp. 485-512 +[8] Racine, J.: "Consistent Significance Testing for Nonparametric + Regression" Journal of Business & Economics Statistics +[9] Racine, J., Hart, J., Li, Q., "Testing the Significance of + Categorical Predictor Variables in Nonparametric Regression + Models", 2006, Econometric Reviews 25, 523-544 + +""" + +# TODO: make default behavior efficient=True above a certain n_obs + +from statsmodels.compat.python import range, next +import numpy as np +from scipy import optimize +from scipy.stats.mstats import mquantiles + +from statsmodels.nonparametric.api import KDEMultivariate, KernelReg +from statsmodels.nonparametric._kernel_base import \ + gpke, LeaveOneOut, _get_type_pos, _adjust_shape + + +__all__ = ['SingleIndexModel', 'SemiLinear', 'TestFForm'] + + +class TestFForm(object): + """ + Nonparametric test for functional form. + + Parameters + ---------- + endog: list + Dependent variable (training set) + exog: list of array_like objects + The independent (right-hand-side) variables + bw: array_like, str + Bandwidths for exog or specify method for bandwidth selection + fform: function + The functional form ``y = g(b, x)`` to be tested. Takes as inputs + the RHS variables `exog` and the coefficients ``b`` (betas) + and returns a fitted ``y_hat``. + var_type: str + The type of the independent `exog` variables: + + - c: continuous + - o: ordered + - u: unordered + + estimator: function + Must return the estimated coefficients b (betas). Takes as inputs + ``(endog, exog)``. E.g. least square estimator:: + + lambda (x,y): np.dot(np.pinv(np.dot(x.T, x)), np.dot(x.T, y)) + + References + ---------- + See Racine, J.: "Consistent Significance Testing for Nonparametric + Regression" Journal of Business \& Economics Statistics. + + See chapter 12 in [1] pp. 355-357. + + """ + def __init__(self, endog, exog, bw, var_type, fform, estimator, nboot=100): + self.endog = endog + self.exog = exog + self.var_type = var_type + self.fform = fform + self.estimator = estimator + self.nboot = nboot + self.bw = KDEMultivariate(exog, bw=bw, var_type=var_type).bw + self.sig = self._compute_sig() + + def _compute_sig(self): + Y = self.endog + X = self.exog + b = self.estimator(Y, X) + m = self.fform(X, b) + n = np.shape(X)[0] + resid = Y - m + resid = resid - np.mean(resid) # center residuals + self.test_stat = self._compute_test_stat(resid) + sqrt5 = np.sqrt(5.) + fct1 = (1 - sqrt5) / 2. + fct2 = (1 + sqrt5) / 2. + u1 = fct1 * resid + u2 = fct2 * resid + r = fct2 / sqrt5 + I_dist = np.empty((self.nboot,1)) + for j in range(self.nboot): + u_boot = u2.copy() + + prob = np.random.uniform(0,1, size = (n,)) + ind = prob < r + u_boot[ind] = u1[ind] + Y_boot = m + u_boot + b_hat = self.estimator(Y_boot, X) + m_hat = self.fform(X, b_hat) + u_boot_hat = Y_boot - m_hat + I_dist[j] = self._compute_test_stat(u_boot_hat) + + self.boots_results = I_dist + sig = "Not Significant" + if self.test_stat > mquantiles(I_dist, 0.9): + sig = "*" + if self.test_stat > mquantiles(I_dist, 0.95): + sig = "**" + if self.test_stat > mquantiles(I_dist, 0.99): + sig = "***" + return sig + + def _compute_test_stat(self, u): + n = np.shape(u)[0] + XLOO = LeaveOneOut(self.exog) + uLOO = LeaveOneOut(u[:,None]).__iter__() + I = 0 + S2 = 0 + for i, X_not_i in enumerate(XLOO): + u_j = next(uLOO) + u_j = np.squeeze(u_j) + # See Bootstrapping procedure on p. 357 in [1] + K = gpke(self.bw, data=-X_not_i, data_predict=-self.exog[i, :], + var_type=self.var_type, tosum=False) + f_i = (u[i] * u_j * K) + assert u_j.shape == K.shape + I += f_i.sum() # See eq. 12.7 on p. 355 in [1] + S2 += (f_i**2).sum() # See Theorem 12.1 on p.356 in [1] + assert np.size(I) == 1 + assert np.size(S2) == 1 + + I *= 1. / (n * (n - 1)) + ix_cont = _get_type_pos(self.var_type)[0] + hp = self.bw[ix_cont].prod() + S2 *= 2 * hp / (n * (n - 1)) + T = n * I * np.sqrt(hp / S2) + return T + + +class SingleIndexModel(KernelReg): + """ + Single index semiparametric model ``y = g(X * b) + e``. + + Parameters + ---------- + endog: array_like + The dependent variable + exog: array_like + The independent variable(s) + var_type: str + The type of variables in X: + + - c: continuous + - o: ordered + - u: unordered + + Attributes + ---------- + b: array_like + The linear coefficients b (betas) + bw: array_like + Bandwidths + + Methods + ------- + fit(): Computes the fitted values ``E[Y|X] = g(X * b)`` + and the marginal effects ``dY/dX``. + + References + ---------- + See chapter on semiparametric models in [1] + + Notes + ----- + This model resembles the binary choice models. The user knows + that X and b interact linearly, but ``g(X * b)`` is unknown. + In the parametric binary choice models the user usually assumes + some distribution of g() such as normal or logistic. + + """ + def __init__(self, endog, exog, var_type): + self.var_type = var_type + self.K = len(var_type) + self.var_type = self.var_type[0] + self.endog = _adjust_shape(endog, 1) + self.exog = _adjust_shape(exog, self.K) + self.nobs = np.shape(self.exog)[0] + self.data_type = self.var_type + self.func = self._est_loc_linear + + self.b, self.bw = self._est_b_bw() + + def _est_b_bw(self): + params0 = np.random.uniform(size=(self.K + 1, )) + b_bw = optimize.fmin(self.cv_loo, params0, disp=0) + b = b_bw[0:self.K] + bw = b_bw[self.K:] + bw = self._set_bw_bounds(bw) + return b, bw + + def cv_loo(self, params): + # See p. 254 in Textbook + params = np.asarray(params) + b = params[0 : self.K] + bw = params[self.K:] + LOO_X = LeaveOneOut(self.exog) + LOO_Y = LeaveOneOut(self.endog).__iter__() + L = 0 + for i, X_not_i in enumerate(LOO_X): + Y = next(LOO_Y) + #print b.shape, np.dot(self.exog[i:i+1, :], b).shape, bw, + G = self.func(bw, endog=Y, exog=-np.dot(X_not_i, b)[:,None], + #data_predict=-b*self.exog[i, :])[0] + data_predict=-np.dot(self.exog[i:i+1, :], b))[0] + #print G.shape + L += (self.endog[i] - G) ** 2 + + # Note: There might be a way to vectorize this. See p.72 in [1] + return L / self.nobs + + def fit(self, data_predict=None): + if data_predict is None: + data_predict = self.exog + else: + data_predict = _adjust_shape(data_predict, self.K) + + N_data_predict = np.shape(data_predict)[0] + mean = np.empty((N_data_predict,)) + mfx = np.empty((N_data_predict, self.K)) + for i in range(N_data_predict): + mean_mfx = self.func(self.bw, self.endog, + np.dot(self.exog, self.b)[:,None], + data_predict=np.dot(data_predict[i:i+1, :],self.b)) + mean[i] = mean_mfx[0] + mfx_c = np.squeeze(mean_mfx[1]) + mfx[i, :] = mfx_c + + return mean, mfx + + def __repr__(self): + """Provide something sane to print.""" + repr = "Single Index Model \n" + repr += "Number of variables: K = " + str(self.K) + "\n" + repr += "Number of samples: nobs = " + str(self.nobs) + "\n" + repr += "Variable types: " + self.var_type + "\n" + repr += "BW selection method: cv_ls" + "\n" + repr += "Estimator type: local constant" + "\n" + return repr + + +class SemiLinear(KernelReg): + """ + Semiparametric partially linear model, ``Y = Xb + g(Z) + e``. + + Parameters + ---------- + endog: array_like + The dependent variable + exog: array_like + The linear component in the regression + exog_nonparametric: array_like + The nonparametric component in the regression + var_type: str + The type of the variables in the nonparametric component; + + - c: continuous + - o: ordered + - u: unordered + + k_linear : int + The number of variables that comprise the linear component. + + Attributes + ---------- + bw: array_like + Bandwidths for the nonparametric component exog_nonparametric + b: array_like + Coefficients in the linear component + nobs : int + The number of observations. + k_linear : int + The number of variables that comprise the linear component. + + Methods + ------- + fit(): Returns the fitted mean and marginal effects dy/dz + + Notes + ----- + This model uses only the local constant regression estimator + + References + ---------- + See chapter on Semiparametric Models in [1] + """ + + def __init__(self, endog, exog, exog_nonparametric, var_type, k_linear): + self.endog = _adjust_shape(endog, 1) + self.exog = _adjust_shape(exog, k_linear) + self.K = len(var_type) + self.exog_nonparametric = _adjust_shape(exog_nonparametric, self.K) + self.k_linear = k_linear + self.nobs = np.shape(self.exog)[0] + self.var_type = var_type + self.data_type = self.var_type + self.func = self._est_loc_linear + + self.b, self.bw = self._est_b_bw() + + def _est_b_bw(self): + """ + Computes the (beta) coefficients and the bandwidths. + + Minimizes ``cv_loo`` with respect to ``b`` and ``bw``. + """ + params0 = np.random.uniform(size=(self.k_linear + self.K, )) + b_bw = optimize.fmin(self.cv_loo, params0, disp=0) + b = b_bw[0 : self.k_linear] + bw = b_bw[self.k_linear:] + #bw = self._set_bw_bounds(np.asarray(bw)) + return b, bw + + def cv_loo(self, params): + """ + Similar to the cross validation leave-one-out estimator. + + Modified to reflect the linear components. + + Parameters + ---------- + params: array_like + Vector consisting of the coefficients (b) and the bandwidths (bw). + The first ``k_linear`` elements are the coefficients. + + Returns + ------- + L: float + The value of the objective function + + References + ---------- + See p.254 in [1] + """ + params = np.asarray(params) + b = params[0 : self.k_linear] + bw = params[self.k_linear:] + LOO_X = LeaveOneOut(self.exog) + LOO_Y = LeaveOneOut(self.endog).__iter__() + LOO_Z = LeaveOneOut(self.exog_nonparametric).__iter__() + Xb = np.dot(self.exog, b)[:,None] + L = 0 + for ii, X_not_i in enumerate(LOO_X): + Y = next(LOO_Y) + Z = next(LOO_Z) + Xb_j = np.dot(X_not_i, b)[:,None] + Yx = Y - Xb_j + G = self.func(bw, endog=Yx, exog=-Z, + data_predict=-self.exog_nonparametric[ii, :])[0] + lt = Xb[ii, :] #.sum() # linear term + L += (self.endog[ii] - lt - G) ** 2 + + return L + + def fit(self, exog_predict=None, exog_nonparametric_predict=None): + """Computes fitted values and marginal effects""" + + if exog_predict is None: + exog_predict = self.exog + else: + exog_predict = _adjust_shape(exog_predict, self.k_linear) + + if exog_nonparametric_predict is None: + exog_nonparametric_predict = self.exog_nonparametric + else: + exog_nonparametric_predict = _adjust_shape(exog_nonparametric_predict, self.K) + + N_data_predict = np.shape(exog_nonparametric_predict)[0] + mean = np.empty((N_data_predict,)) + mfx = np.empty((N_data_predict, self.K)) + Y = self.endog - np.dot(exog_predict, self.b)[:,None] + for i in range(N_data_predict): + mean_mfx = self.func(self.bw, Y, self.exog_nonparametric, + data_predict=exog_nonparametric_predict[i, :]) + mean[i] = mean_mfx[0] + mfx_c = np.squeeze(mean_mfx[1]) + mfx[i, :] = mfx_c + + return mean, mfx + + def __repr__(self): + """Provide something sane to print.""" + repr = "Semiparamatric Partially Linear Model \n" + repr += "Number of variables: K = " + str(self.K) + "\n" + repr += "Number of samples: N = " + str(self.nobs) + "\n" + repr += "Variable types: " + self.var_type + "\n" + repr += "BW selection method: cv_ls" + "\n" + repr += "Estimator type: local constant" + "\n" + return repr diff --git a/statsmodels/sandbox/nonparametric/kernels.py b/statsmodels/sandbox/nonparametric/kernels.py new file mode 100644 index 0000000..8aee167 --- /dev/null +++ b/statsmodels/sandbox/nonparametric/kernels.py @@ -0,0 +1,566 @@ +# -*- coding: utf-8 -*- + +""" +This models contains the Kernels for Kernel smoothing. + +Hopefully in the future they may be reused/extended for other kernel based +method + +References: +---------- + +Pointwise Kernel Confidence Bounds +(smoothconf) +http://fedc.wiwi.hu-berlin.de/xplore/ebooks/html/anr/anrhtmlframe62.html +""" + +# pylint: disable-msg=C0103 +# pylint: disable-msg=W0142 +# pylint: disable-msg=E1101 +# pylint: disable-msg=E0611 +from statsmodels.compat.python import lzip, lfilter, callable, zip +import numpy as np +import scipy.integrate +from scipy.misc import factorial +from numpy import exp, multiply, square, divide, subtract, inf + + +class NdKernel(object): + """Generic N-dimensial kernel + + Parameters + ---------- + n : int + The number of series for kernel estimates + kernels : list + kernels + + Can be constructed from either + a) a list of n kernels which will be treated as + indepent marginals on a gaussian copula (specified by H) + or b) a single univariate kernel which will be applied radially to the + mahalanobis distance defined by H. + + In the case of the Gaussian these are both equivalent, and the second constructiong + is prefered. + """ + def __init__(self, n, kernels = None, H = None): + if kernels is None: + kernels = Gaussian() + + self._kernels = kernels + self.weights = None + + if H is None: + H = np.matrix( np.identity(n)) + + self._H = H + self._Hrootinv = np.linalg.cholesky( H.I ) + + def getH(self): + """Getter for kernel bandwidth, H""" + return self._H + + def setH(self, value): + """Setter for kernel bandwidth, H""" + self._H = value + + H = property(getH, setH, doc="Kernel bandwidth matrix") + + def density(self, xs, x): + + n = len(xs) + #xs = self.in_domain( xs, xs, x )[0] + + if len(xs)>0: ## Need to do product of marginal distributions + #w = np.sum([self(self._Hrootinv * (xx-x).T ) for xx in xs])/n + #vectorized doesn't work: + if self.weights is not None: + w = np.mean(self((xs-x) * self._Hrootinv).T * self.weights)/sum(self.weights) + else: + w = np.mean(self((xs-x) * self._Hrootinv )) #transposed + #w = np.mean([self(xd) for xd in ((xs-x) * self._Hrootinv)] ) #transposed + return w + else: + return np.nan + + def _kernweight(self, x ): + """returns the kernel weight for the independent multivariate kernel""" + if isinstance( self._kernels, CustomKernel ): + ## Radial case + #d = x.T * x + #x is matrix, 2d, element wise sqrt looks wrong + #d = np.sqrt( x.T * x ) + x = np.asarray(x) + #d = np.sqrt( (x * x).sum(-1) ) + d = (x * x).sum(-1) + return self._kernels( np.asarray(d) ) + + def __call__(self, x): + """ + This simply returns the value of the kernel function at x + + Does the same as weight if the function is normalised + """ + return self._kernweight(x) + + +class CustomKernel(object): + """ + Generic 1D Kernel object. + Can be constructed by selecting a standard named Kernel, + or providing a lambda expression and domain. + The domain allows some algorithms to run faster for finite domain kernels. + """ + # MC: Not sure how this will look in the end - or even still exist. + # Main purpose of this is to allow custom kernels and to allow speed up + # from finite support. + + def __init__(self, shape, h = 1.0, domain = None, norm = None): + """ + shape should be a function taking and returning numeric type. + + For sanity it should always return positive or zero but this isn't + enforced in case you want to do weird things. Bear in mind that the + statistical tests etc. may not be valid for non-positive kernels. + + The bandwidth of the kernel is supplied as h. + + You may specify a domain as a list of 2 values [min, max], in which case + kernel will be treated as zero outside these values. This will speed up + calculation. + + You may also specify the normalisation constant for the supplied Kernel. + If you do this number will be stored and used as the normalisation + without calculation. It is recommended you do this if you know the + constant, to speed up calculation. In particular if the shape function + provided is already normalised you should provide norm = 1.0. + + Warning: I think several calculations assume that the kernel is + normalized. No tests for non-normalized kernel. + """ + self._normconst = norm # a value or None, if None, then calculate + self.domain = domain + self.weights = None + if callable(shape): + self._shape = shape + else: + raise TypeError("shape must be a callable object/function") + self._h = h + self._L2Norm = None + self._kernel_var = None + self._normal_reference_constant = None + self._order = None + + def geth(self): + """Getter for kernel bandwidth, h""" + return self._h + def seth(self, value): + """Setter for kernel bandwidth, h""" + self._h = value + h = property(geth, seth, doc="Kernel Bandwidth") + + def in_domain(self, xs, ys, x): + """ + Returns the filtered (xs, ys) based on the Kernel domain centred on x + """ + # Disable black-list functions: filter used for speed instead of + # list-comprehension + # pylint: disable-msg=W0141 + def isInDomain(xy): + """Used for filter to check if point is in the domain""" + u = (xy[0]-x)/self.h + return u >= self.domain[0] and u <= self.domain[1] + + if self.domain is None: + return (xs, ys) + else: + filtered = lfilter(isInDomain, lzip(xs, ys)) + if len(filtered) > 0: + xs, ys = lzip(*filtered) + return (xs, ys) + else: + return ([], []) + + def density(self, xs, x): + """Returns the kernel density estimate for point x based on x-values + xs + """ + xs = np.asarray(xs) + n = len(xs) # before in_domain? + if self.weights is not None: + xs, weights = self.in_domain( xs, self.weights, x ) + else: + xs = self.in_domain( xs, xs, x )[0] + xs = np.asarray(xs) + #print 'len(xs)', len(xs), x + if xs.ndim == 1: + xs = xs[:,None] + if len(xs)>0: + h = self.h + if self.weights is not None: + w = 1 / h * np.sum(self((xs-x)/h).T * weights, axis=1) + else: + w = 1. / (h * n) * np.sum(self((xs-x)/h), axis=0) + return w + else: + return np.nan + + def density_var(self, density, nobs): + """approximate pointwise variance for kernel density + + not verified + + Parameters + ---------- + density : array_lie + pdf of the kernel density + nobs : int + number of observations used in the KDE estimation + + Returns + ------- + kde_var : ndarray + estimated variance of the density estimate + + Notes + ----- + This uses the asymptotic normal approximation to the distribution of + the density estimate. + """ + return np.asarray(density) * self.L2Norm / self.h / nobs + + def density_confint(self, density, nobs, alpha=0.05): + """approximate pointwise confidence interval for kernel density + + The confidence interval is centered at the estimated density and + ignores the bias of the density estimate. + + not verified + + Parameters + ---------- + density : array_lie + pdf of the kernel density + nobs : int + number of observations used in the KDE estimation + + Returns + ------- + conf_int : ndarray + estimated confidence interval of the density estimate, lower bound + in first column and upper bound in second column + + Notes + ----- + This uses the asymptotic normal approximation to the distribution of + the density estimate. The lower bound can be negative for density + values close to zero. + + """ + from scipy import stats + crit = stats.norm.isf(alpha / 2.) + density = np.asarray(density) + half_width = crit * np.sqrt(self.density_var(density, nobs)) + conf_int = np.column_stack((density - half_width, density + half_width)) + return conf_int + + def smooth(self, xs, ys, x): + """Returns the kernel smoothing estimate for point x based on x-values + xs and y-values ys. + Not expected to be called by the user. + """ + xs, ys = self.in_domain(xs, ys, x) + + if len(xs)>0: + w = np.sum(self((xs-x)/self.h)) + #TODO: change the below to broadcasting when shape is sorted + v = np.sum([yy*self((xx-x)/self.h) for xx, yy in zip(xs, ys)]) + return v / w + else: + return np.nan + + def smoothvar(self, xs, ys, x): + """Returns the kernel smoothing estimate of the variance at point x. + """ + xs, ys = self.in_domain(xs, ys, x) + + if len(xs) > 0: + fittedvals = np.array([self.smooth(xs, ys, xx) for xx in xs]) + sqresid = square( subtract(ys, fittedvals) ) + w = np.sum(self((xs-x)/self.h)) + v = np.sum([rr*self((xx-x)/self.h) for xx, rr in zip(xs, sqresid)]) + return v / w + else: + return np.nan + + def smoothconf(self, xs, ys, x, alpha=0.05): + """Returns the kernel smoothing estimate with confidence 1sigma bounds + """ + xs, ys = self.in_domain(xs, ys, x) + + if len(xs) > 0: + fittedvals = np.array([self.smooth(xs, ys, xx) for xx in xs]) + #fittedvals = self.smooth(xs, ys, x) # x or xs in Haerdle + sqresid = square( + subtract(ys, fittedvals) + ) + w = np.sum(self((xs-x)/self.h)) + #var = sqresid.sum() / (len(sqresid) - 0) # nonlocal var ? JP just trying + v = np.sum([rr*self((xx-x)/self.h) for xx, rr in zip(xs, sqresid)]) + var = v / w + sd = np.sqrt(var) + K = self.L2Norm + yhat = self.smooth(xs, ys, x) + from scipy import stats + crit = stats.norm.isf(alpha / 2) + err = crit * sd * np.sqrt(K) / np.sqrt(w * self.h * self.norm_const) + return (yhat - err, yhat, yhat + err) + else: + return (np.nan, np.nan, np.nan) + + @property + def L2Norm(self): + """Returns the integral of the square of the kernal from -inf to inf""" + if self._L2Norm is None: + L2Func = lambda x: (self.norm_const*self._shape(x))**2 + if self.domain is None: + self._L2Norm = scipy.integrate.quad(L2Func, -inf, inf)[0] + else: + self._L2Norm = scipy.integrate.quad(L2Func, self.domain[0], + self.domain[1])[0] + return self._L2Norm + + @property + def norm_const(self): + """ + Normalising constant for kernel (integral from -inf to inf) + """ + if self._normconst is None: + if self.domain is None: + quadres = scipy.integrate.quad(self._shape, -inf, inf) + else: + quadres = scipy.integrate.quad(self._shape, self.domain[0], + self.domain[1]) + self._normconst = 1.0/(quadres[0]) + return self._normconst + + @property + def kernel_var(self): + """Returns the second moment of the kernel""" + if self._kernel_var is None: + func = lambda x: x**2 * self.norm_const * self._shape(x) + if self.domain is None: + self._kernel_var = scipy.integrate.quad(func, -inf, inf)[0] + else: + self._kernel_var = scipy.integrate.quad(func, self.domain[0], + self.domain[1])[0] + return self._kernel_var + + def moments(self, n): + + if n > 2: + msg = "Only first and second moment currently implemented" + raise NotImplementedError(msg) + + if n == 1: + return 0 + + if n == 2: + return self.kernel_var + + @property + def normal_reference_constant(self): + """ + Constant used for silverman normal reference asymtotic bandwidth + calculation. + + C = 2((pi^(1/2)*(nu!)^3 R(k))/(2nu(2nu)!kap_nu(k)^2))^(1/(2nu+1)) + nu = kernel order + kap_nu = nu'th moment of kernel + R = kernel roughness (square of L^2 norm) + + Note: L2Norm property returns square of norm. + """ + nu = self._order + + if not nu == 2: + msg = "Only implemented for second order kernels" + raise NotImplementedError(msg) + + if self._normal_reference_constant is None: + C = np.pi**(.5) * factorial(nu)**3 * self.L2Norm + C /= (2 * nu * factorial(2 * nu) * self.moments(nu)**2) + C = 2*C**(1.0/(2*nu+1)) + self._normal_reference_constant = C + + return self._normal_reference_constant + + + def weight(self, x): + """This returns the normalised weight at distance x""" + return self.norm_const*self._shape(x) + + def __call__(self, x): + """ + This simply returns the value of the kernel function at x + + Does the same as weight if the function is normalised + """ + return self._shape(x) + + +class Uniform(CustomKernel): + def __init__(self, h=1.0): + CustomKernel.__init__(self, shape=lambda x: 0.5 * np.ones(x.shape), h=h, + domain=[-1.0, 1.0], norm = 1.0) + self._L2Norm = 0.5 + self._kernel_var = 1. / 3 + self._order = 2 + + +class Triangular(CustomKernel): + def __init__(self, h=1.0): + CustomKernel.__init__(self, shape=lambda x: 1 - abs(x), h=h, + domain=[-1.0, 1.0], norm = 1.0) + self._L2Norm = 2.0/3.0 + self._kernel_var = 1. / 6 + self._order = 2 + + +class Epanechnikov(CustomKernel): + def __init__(self, h=1.0): + CustomKernel.__init__(self, shape=lambda x: 0.75*(1 - x*x), h=h, + domain=[-1.0, 1.0], norm = 1.0) + self._L2Norm = 0.6 + self._kernel_var = 0.2 + self._order = 2 + + +class Biweight(CustomKernel): + def __init__(self, h=1.0): + CustomKernel.__init__(self, shape=lambda x: 0.9375*(1 - x*x)**2, h=h, + domain=[-1.0, 1.0], norm = 1.0) + self._L2Norm = 5.0/7.0 + self._kernel_var = 1. / 7 + self._order = 2 + + def smooth(self, xs, ys, x): + """Returns the kernel smoothing estimate for point x based on x-values + xs and y-values ys. + Not expected to be called by the user. + + Special implementation optimised for Biweight. + """ + xs, ys = self.in_domain(xs, ys, x) + + if len(xs) > 0: + w = np.sum(square(subtract(1, square(divide(subtract(xs, x), + self.h))))) + v = np.sum(multiply(ys, square(subtract(1, square(divide( + subtract(xs, x), self.h)))))) + return v / w + else: + return np.nan + + def smoothvar(self, xs, ys, x): + """ + Returns the kernel smoothing estimate of the variance at point x. + """ + xs, ys = self.in_domain(xs, ys, x) + + if len(xs) > 0: + fittedvals = np.array([self.smooth(xs, ys, xx) for xx in xs]) + rs = square(subtract(ys, fittedvals)) + w = np.sum(square(subtract(1.0, square(divide(subtract(xs, x), + self.h))))) + v = np.sum(multiply(rs, square(subtract(1, square(divide( + subtract(xs, x), self.h)))))) + return v / w + else: + return np.nan + + def smoothconf_(self, xs, ys, x): + """Returns the kernel smoothing estimate with confidence 1sigma bounds + """ + xs, ys = self.in_domain(xs, ys, x) + + if len(xs) > 0: + fittedvals = np.array([self.smooth(xs, ys, xx) for xx in xs]) + rs = square(subtract(ys, fittedvals)) + w = np.sum(square(subtract(1.0, square(divide(subtract(xs, x), + self.h))))) + v = np.sum(multiply(rs, square(subtract(1, square(divide( + subtract(xs, x), self.h)))))) + var = v / w + sd = np.sqrt(var) + K = self.L2Norm + yhat = self.smooth(xs, ys, x) + err = sd * K / np.sqrt(0.9375 * w * self.h) + return (yhat - err, yhat, yhat + err) + else: + return (np.nan, np.nan, np.nan) + +class Triweight(CustomKernel): + def __init__(self, h=1.0): + CustomKernel.__init__(self, shape=lambda x: 1.09375*(1 - x*x)**3, h=h, + domain=[-1.0, 1.0], norm = 1.0) + self._L2Norm = 350.0/429.0 + self._kernel_var = 1. / 9 + self._order = 2 + + +class Gaussian(CustomKernel): + """ + Gaussian (Normal) Kernel + + K(u) = 1 / (sqrt(2*pi)) exp(-0.5 u**2) + """ + def __init__(self, h=1.0): + CustomKernel.__init__(self, shape = lambda x: 0.3989422804014327 * + np.exp(-x**2/2.0), h = h, domain = None, norm = 1.0) + self._L2Norm = 1.0/(2.0*np.sqrt(np.pi)) + self._kernel_var = 1.0 + self._order = 2 + + def smooth(self, xs, ys, x): + """Returns the kernel smoothing estimate for point x based on x-values + xs and y-values ys. + Not expected to be called by the user. + + Special implementation optimised for Gaussian. + """ + w = np.sum(exp(multiply(square(divide(subtract(xs, x), + self.h)),-0.5))) + v = np.sum(multiply(ys, exp(multiply(square(divide(subtract(xs, x), + self.h)), -0.5)))) + return v/w + +class Cosine(CustomKernel): + """ + Cosine Kernel + + K(u) = pi/4 cos(0.5 * pi * u) between -1.0 and 1.0 + """ + def __init__(self, h=1.0): + CustomKernel.__init__(self, shape=lambda x: 0.78539816339744828 * + np.cos(np.pi/2.0 * x), h=h, domain=[-1.0, 1.0], norm = 1.0) + self._L2Norm = np.pi**2/16.0 + self._kernel_var = 0.1894305308612978 # = 1 - 8 / np.pi**2 + self._order = 2 + + +class Cosine2(CustomKernel): + """ + Cosine2 Kernel + + K(u) = 1 + cos(2 * pi * u) between -0.5 and 0.5 + + Note: this is the same Cosine kernel that Stata uses + """ + def __init__(self, h=1.0): + CustomKernel.__init__(self, shape=lambda x: 1 + np.cos(2.0 * np.pi * x) + , h=h, domain=[-0.5, 0.5], norm = 1.0) + self._L2Norm = 1.5 + self._kernel_var = 0.03267274151216444 # = 1/12. - 0.5 / np.pi**2 + self._order = 2 diff --git a/statsmodels/sandbox/nonparametric/smoothers.py b/statsmodels/sandbox/nonparametric/smoothers.py new file mode 100644 index 0000000..519fbf5 --- /dev/null +++ b/statsmodels/sandbox/nonparametric/smoothers.py @@ -0,0 +1,409 @@ +""" +This module contains scatterplot smoothers, that is classes +who generate a smooth fit of a set of (x,y) pairs. +""" + +# pylint: disable-msg=C0103 +# pylint: disable-msg=W0142 +# pylint: disable-msg=E0611 +# pylint: disable-msg=E1101 +from __future__ import print_function +from statsmodels.compat.python import long + +import numpy as np +from . import kernels +#import numbers +#from scipy.linalg import solveh_banded +#from scipy.optimize import golden + +#from models import _hbspline # Need to alter setup to be able to import + # extension from models or drop for scipy +#from models.bspline import BSpline, _band2array + +class KernelSmoother(object): + """ + 1D Kernel Density Regression/Kernel Smoother + + Requires: + x - array_like of x values + y - array_like of y values + Kernel - Kernel object, Default is Gaussian. + """ + def __init__(self, x, y, Kernel = None): + if Kernel is None: + Kernel = kernels.Gaussian() + self.Kernel = Kernel + self.x = np.array(x) + self.y = np.array(y) + + def fit(self): + pass + + def __call__(self, x): + return np.array([self.predict(xx) for xx in x]) + + def predict(self, x): + """ + Returns the kernel smoothed prediction at x + + If x is a real number then a single value is returned. + + Otherwise an attempt is made to cast x to numpy.ndarray and an array of + corresponding y-points is returned. + """ + if np.size(x) == 1: # if isinstance(x, numbers.Real): + return self.Kernel.smooth(self.x, self.y, x) + else: + return np.array([self.Kernel.smooth(self.x, self.y, xx) for xx + in np.array(x)]) + + def conf(self, x): + """ + Returns the fitted curve and 1-sigma upper and lower point-wise + confidence. + These bounds are based on variance only, and do not include the bias. + If the bandwidth is much larger than the curvature of the underlying + funtion then the bias could be large. + + x is the points on which you want to evaluate the fit and the errors. + + Alternatively if x is specified as a positive integer, then the fit and + confidence bands points will be returned after every + xth sample point - so they are closer together where the data + is denser. + """ + if isinstance(x, (int, long)): + sorted_x = np.array(self.x) + sorted_x.sort() + confx = sorted_x[::x] + conffit = self.conf(confx) + return (confx, conffit) + else: + return np.array([self.Kernel.smoothconf(self.x, self.y, xx) + for xx in x]) + + + def var(self, x): + return np.array([self.Kernel.smoothvar(self.x, self.y, xx) for xx in x]) + + def std(self, x): + return np.sqrt(self.var(x)) + +class PolySmoother(object): + """ + Polynomial smoother up to a given order. + Fit based on weighted least squares. + + The x values can be specified at instantiation or when called. + + This is a 3 liner with OLS or WLS, see test. + It's here as a test smoother for GAM + + """ + #JP: heavily adjusted to work as plugin replacement for bspline + # smoother in gam.py initalized by function default_smoother + # Only fixed exceptions, I didn't check whether it is statistically + # correctand I think it is not, there are still be some dimension + # problems, and there were some dimension problems initially. + # TODO: undo adjustments and fix dimensions correctly + # comment: this is just like polyfit with initialization options + # and additional results (OLS on polynomial of x (x is 1d?)) + + + def __init__(self, order, x=None): + #order = 4 # set this because we get knots instead of order + self.order = order + + #print order, x.shape + self.coef = np.zeros((order+1,), np.float64) + if x is not None: + if x.ndim > 1: + print('Warning: 2d x detected in PolySmoother init, shape:', x.shape) + x=x[0,:] #check orientation + self.X = np.array([x**i for i in range(order+1)]).T + + def df_fit(self): + '''alias of df_model for backwards compatibility + ''' + return self.df_model() + + def df_model(self): + """ + Degrees of freedom used in the fit. + """ + return self.order + 1 + + def gram(self, d=None): + #fake for spline imitation + pass + + def smooth(self,*args, **kwds): + '''alias for fit, for backwards compatibility, + + do we need it with different behavior than fit? + + ''' + return self.fit(*args, **kwds) + + def df_resid(self): + """ + Residual degrees of freedom from last fit. + """ + return self.N - self.order - 1 + + def __call__(self, x=None): + return self.predict(x=x) + + + def predict(self, x=None): + + if x is not None: + #if x.ndim > 1: x=x[0,:] #why this this should select column not row + if x.ndim > 1: + print('Warning: 2d x detected in PolySmoother predict, shape:', x.shape) + x=x[:,0] #TODO: check and clean this up + X = np.array([(x**i) for i in range(self.order+1)]) + else: X = self.X + #return np.squeeze(np.dot(X.T, self.coef)) + #need to check what dimension this is supposed to be + if X.shape[1] == self.coef.shape[0]: + return np.squeeze(np.dot(X, self.coef))#[0] + else: + return np.squeeze(np.dot(X.T, self.coef))#[0] + + def fit(self, y, x=None, weights=None): + self.N = y.shape[0] + if y.ndim == 1: + y = y[:,None] + if weights is None or np.isnan(weights).all(): + weights = 1 + _w = 1 + else: + _w = np.sqrt(weights)[:,None] + if x is None: + if not hasattr(self, "X"): + raise ValueError("x needed to fit PolySmoother") + else: + if x.ndim > 1: + print('Warning: 2d x detected in PolySmoother predict, shape:', x.shape) + #x=x[0,:] #TODO: check orientation, row or col + self.X = np.array([(x**i) for i in range(self.order+1)]).T + #print _w.shape + + X = self.X * _w + + _y = y * _w#[:,None] + #self.coef = np.dot(L.pinv(X).T, _y[:,None]) + #self.coef = np.dot(L.pinv(X), _y) + self.coef = np.linalg.lstsq(X, _y)[0] + self.params = np.squeeze(self.coef) + + + + + + + + + + + + + + + + + + + + +# comment out for now to remove dependency on _hbspline + +##class SmoothingSpline(BSpline): +## +## penmax = 30. +## +## def fit(self, y, x=None, weights=None, pen=0.): +## banded = True +## +## if x is None: +## x = self.tau[(self.M-1):-(self.M-1)] # internal knots +## +## if pen == 0.: # can't use cholesky for singular matrices +## banded = False +## +## if x.shape != y.shape: +## raise ValueError('x and y shape do not agree, by default x are the Bspline\'s internal knots') +## +## bt = self.basis(x) +## if pen >= self.penmax: +## pen = self.penmax +## +## if weights is None: +## weights = np.array(1.) +## +## wmean = weights.mean() +## _w = np.sqrt(weights / wmean) +## bt *= _w +## +## # throw out rows with zeros (this happens at boundary points!) +## +## mask = np.flatnonzero(1 - np.alltrue(np.equal(bt, 0), axis=0)) +## +## bt = bt[:, mask] +## y = y[mask] +## +## self.df_total = y.shape[0] +## +## if bt.shape[1] != y.shape[0]: +## raise ValueError("some x values are outside range of B-spline knots") +## bty = np.dot(bt, _w * y) +## self.N = y.shape[0] +## if not banded: +## self.btb = np.dot(bt, bt.T) +## _g = _band2array(self.g, lower=1, symmetric=True) +## self.coef, _, self.rank = L.lstsq(self.btb + pen*_g, bty)[0:3] +## self.rank = min(self.rank, self.btb.shape[0]) +## else: +## self.btb = np.zeros(self.g.shape, np.float64) +## nband, nbasis = self.g.shape +## for i in range(nbasis): +## for k in range(min(nband, nbasis-i)): +## self.btb[k, i] = (bt[i] * bt[i+k]).sum() +## +## bty.shape = (1, bty.shape[0]) +## self.chol, self.coef = solveh_banded(self.btb + +## pen*self.g, +## bty, lower=1) +## +## self.coef = np.squeeze(self.coef) +## self.resid = np.sqrt(wmean) * (y * _w - np.dot(self.coef, bt)) +## self.pen = pen +## +## def gcv(self): +## """ +## Generalized cross-validation score of current fit. +## """ +## +## norm_resid = (self.resid**2).sum() +## return norm_resid / (self.df_total - self.trace()) +## +## def df_resid(self): +## """ +## self.N - self.trace() +## +## where self.N is the number of observations of last fit. +## """ +## +## return self.N - self.trace() +## +## def df_fit(self): +## """ +## = self.trace() +## +## How many degrees of freedom used in the fit? +## """ +## return self.trace() +## +## def trace(self): +## """ +## Trace of the smoothing matrix S(pen) +## """ +## +## if self.pen > 0: +## _invband = _hbspline.invband(self.chol.copy()) +## tr = _trace_symbanded(_invband, self.btb, lower=1) +## return tr +## else: +## return self.rank +## +##class SmoothingSplineFixedDF(SmoothingSpline): +## """ +## Fit smoothing spline with approximately df degrees of freedom +## used in the fit, i.e. so that self.trace() is approximately df. +## +## In general, df must be greater than the dimension of the null space +## of the Gram inner product. For cubic smoothing splines, this means +## that df > 2. +## """ +## +## target_df = 5 +## +## def __init__(self, knots, order=4, coef=None, M=None, target_df=None): +## if target_df is not None: +## self.target_df = target_df +## BSpline.__init__(self, knots, order=order, coef=coef, M=M) +## self.target_reached = False +## +## def fit(self, y, x=None, df=None, weights=None, tol=1.0e-03): +## +## df = df or self.target_df +## +## apen, bpen = 0, 1.0e-03 +## olddf = y.shape[0] - self.m +## +## if not self.target_reached: +## while True: +## curpen = 0.5 * (apen + bpen) +## SmoothingSpline.fit(self, y, x=x, weights=weights, pen=curpen) +## curdf = self.trace() +## if curdf > df: +## apen, bpen = curpen, 2 * curpen +## else: +## apen, bpen = apen, curpen +## if apen >= self.penmax: +## raise ValueError("penalty too large, try setting penmax higher or decreasing df") +## if np.fabs(curdf - df) / df < tol: +## self.target_reached = True +## break +## else: +## SmoothingSpline.fit(self, y, x=x, weights=weights, pen=self.pen) +## +##class SmoothingSplineGCV(SmoothingSpline): +## +## """ +## Fit smoothing spline trying to optimize GCV. +## +## Try to find a bracketing interval for scipy.optimize.golden +## based on bracket. +## +## It is probably best to use target_df instead, as it is +## sometimes difficult to find a bracketing interval. +## +## """ +## +## def fit(self, y, x=None, weights=None, tol=1.0e-03, +## bracket=(0,1.0e-03)): +## +## def _gcv(pen, y, x): +## SmoothingSpline.fit(y, x=x, pen=np.exp(pen), weights=weights) +## a = self.gcv() +## return a +## +## a = golden(_gcv, args=(y,x), brack=(-100,20), tol=tol) +## +##def _trace_symbanded(a,b, lower=0): +## """ +## Compute the trace(a*b) for two upper or lower banded real symmetric matrices. +## """ +## +## if lower: +## t = _zero_triband(a * b, lower=1) +## return t[0].sum() + 2 * t[1:].sum() +## else: +## t = _zero_triband(a * b, lower=0) +## return t[-1].sum() + 2 * t[:-1].sum() +## +## +## +##def _zero_triband(a, lower=0): +## """ +## Zero out unnecessary elements of a real symmetric banded matrix. +## """ +## +## nrow, ncol = a.shape +## if lower: +## for i in range(nrow): a[i,(ncol-i):] = 0. +## else: +## for i in range(nrow): a[i,0:i] = 0. +## return a diff --git a/statsmodels/sandbox/nonparametric/testdata.py b/statsmodels/sandbox/nonparametric/testdata.py new file mode 100644 index 0000000..1b77ab0 --- /dev/null +++ b/statsmodels/sandbox/nonparametric/testdata.py @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- +""" +Created on Fri Mar 04 07:36:28 2011 + +@author: Mike +""" + +import numpy as np + +class kdetest(object): + + + Hpi = np.matrix([[ 0.05163034, 0.5098923 ], + [0.50989228, 8.8822365 ]]) + + + faithfulData = dict( + eruptions = [3.6, 1.8, 3.333, 2.283, 4.533, 2.883, 4.7, 3.6, 1.95, 4.35, 1.833, 3.917, + 4.2, 1.75, 4.7, 2.167, 1.75, 4.8, 1.6, 4.25, 1.8, 1.75, 3.45, 3.067, 4.533, + 3.6, 1.967, 4.083, 3.85, 4.433, 4.3, 4.467, 3.367, 4.033, 3.833, 2.017, 1.867, + 4.833, 1.833, 4.783, 4.35, 1.883, 4.567, 1.75, 4.533, 3.317, 3.833, 2.1, 4.633, + 2, 4.8, 4.716, 1.833, 4.833, 1.733, 4.883, 3.717, 1.667, 4.567, 4.317, 2.233, 4.5, + 1.75, 4.8, 1.817, 4.4, 4.167, 4.7, 2.067, 4.7, 4.033, 1.967, 4.5, 4, 1.983, 5.067, + 2.017, 4.567, 3.883, 3.6, 4.133, 4.333, 4.1, 2.633, 4.067, 4.933, 3.95, 4.517, 2.167, + 4, 2.2, 4.333, 1.867, 4.817, 1.833, 4.3, 4.667, 3.75, 1.867, 4.9, 2.483, 4.367, 2.1, 4.5, + 4.05, 1.867, 4.7, 1.783, 4.85, 3.683, 4.733, 2.3, 4.9, 4.417, 1.7, 4.633, 2.317, 4.6, + 1.817, 4.417, 2.617, 4.067, 4.25, 1.967, 4.6, 3.767, 1.917, 4.5, 2.267, 4.65, 1.867, + 4.167, 2.8, 4.333, 1.833, 4.383, 1.883, 4.933, 2.033, 3.733, 4.233, 2.233, 4.533, + 4.817, 4.333, 1.983, 4.633, 2.017, 5.1, 1.8, 5.033, 4, 2.4, 4.6, 3.567, 4, 4.5, 4.083, + 1.8, 3.967, 2.2, 4.15, 2, 3.833, 3.5, 4.583, 2.367, 5, 1.933, 4.617, 1.917, 2.083, + 4.583, 3.333, 4.167, 4.333, 4.5, 2.417, 4, 4.167, 1.883, 4.583, 4.25, 3.767, 2.033, + 4.433, 4.083, 1.833, 4.417, 2.183, 4.8, 1.833, 4.8, 4.1, 3.966, 4.233, 3.5, 4.366, + 2.25, 4.667, 2.1, 4.35, 4.133, 1.867, 4.6, 1.783, 4.367, 3.85, 1.933, 4.5, 2.383, + 4.7, 1.867, 3.833, 3.417, 4.233, 2.4, 4.8, 2, 4.15, 1.867, 4.267, 1.75, 4.483, 4, + 4.117, 4.083, 4.267, 3.917, 4.55, 4.083, 2.417, 4.183, 2.217, 4.45, 1.883, 1.85, + 4.283, 3.95, 2.333, 4.15, 2.35, 4.933, 2.9, 4.583, 3.833, 2.083, 4.367, 2.133, 4.35, + 2.2, 4.45, 3.567, 4.5, 4.15, 3.817, 3.917, 4.45, 2, 4.283, 4.767, 4.533, 1.85, 4.25, + 1.983, 2.25, 4.75, 4.117, 2.15, 4.417, 1.817, 4.467], + waiting = [79, 54, 74, 62, 85, 55, 88, 85, 51, 85, 54, 84, 78, 47, 83, 52, + 62, 84, 52, 79, 51, 47, 78, 69, 74, 83, 55, 76, 78, 79, 73, 77, + 66, 80, 74, 52, 48, 80, 59, 90, 80, 58, 84, 58, 73, 83, 64, 53, + 82, 59, 75, 90, 54, 80, 54, 83, 71, 64, 77, 81, 59, 84, 48, 82, + 60, 92, 78, 78, 65, 73, 82, 56, 79, 71, 62, 76, 60, 78, 76, 83, + 75, 82, 70, 65, 73, 88, 76, 80, 48, 86, 60, 90, 50, 78, 63, 72, + 84, 75, 51, 82, 62, 88, 49, 83, 81, 47, 84, 52, 86, 81, 75, 59, + 89, 79, 59, 81, 50, 85, 59, 87, 53, 69, 77, 56, 88, 81, 45, 82, + 55, 90, 45, 83, 56, 89, 46, 82, 51, 86, 53, 79, 81, 60, 82, 77, + 76, 59, 80, 49, 96, 53, 77, 77, 65, 81, 71, 70, 81, 93, 53, 89, + 45, 86, 58, 78, 66, 76, 63, 88, 52, 93, 49, 57, 77, 68, 81, 81, + 73, 50, 85, 74, 55, 77, 83, 83, 51, 78, 84, 46, 83, 55, 81, 57, + 76, 84, 77, 81, 87, 77, 51, 78, 60, 82, 91, 53, 78, 46, 77, 84, + 49, 83, 71, 80, 49, 75, 64, 76, 53, 94, 55, 76, 50, 82, 54, 75, + 78, 79, 78, 78, 70, 79, 70, 54, 86, 50, 90, 54, 54, 77, 79, 64, + 75, 47, 86, 63, 85, 82, 57, 82, 67, 74, 54, 83, 73, 73, 88, 80, + 71, 83, 56, 79, 78, 84, 58, 83, 43, 60, 75, 81, 46, 90, 46, 74] + ) diff --git a/statsmodels/sandbox/nonparametric/tests/__init__.py b/statsmodels/sandbox/nonparametric/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/sandbox/nonparametric/tests/ex_gam_am_new.py b/statsmodels/sandbox/nonparametric/tests/ex_gam_am_new.py new file mode 100644 index 0000000..254e05e --- /dev/null +++ b/statsmodels/sandbox/nonparametric/tests/ex_gam_am_new.py @@ -0,0 +1,96 @@ +# -*- coding: utf-8 -*- +"""Example for gam.AdditiveModel and PolynomialSmoother + +This example was written as a test case. +The data generating process is chosen so the parameters are well identified +and estimated. + +Created on Fri Nov 04 13:45:43 2011 + +Author: Josef Perktold + +""" +from __future__ import print_function +from statsmodels.compat.python import lrange, zip +import time + +import numpy as np +#import matplotlib.pyplot as plt +from numpy.testing import assert_almost_equal + +from scipy import stats + +from statsmodels.sandbox.gam import AdditiveModel +from statsmodels.sandbox.gam import Model as GAM #? +from statsmodels.genmod import families +from statsmodels.genmod.generalized_linear_model import GLM +from statsmodels.regression.linear_model import OLS, WLS + +np.random.seed(8765993) +#seed is chosen for nice result, not randomly +#other seeds are pretty off in the prediction + +#DGP: simple polynomial +order = 3 +sigma_noise = 0.5 +nobs = 1000 #1000 #with 1000, OLS and Additivemodel aggree in params at 2 decimals +lb, ub = -3.5, 4#2.5 +x1 = np.linspace(lb, ub, nobs) +x2 = np.sin(2*x1) +x = np.column_stack((x1/x1.max()*2, x2)) +exog = (x[:,:,None]**np.arange(order+1)[None, None, :]).reshape(nobs, -1) +idx = lrange((order+1)*2) +del idx[order+1] +exog_reduced = exog[:,idx] #remove duplicate constant +y_true = exog.sum(1) / 2. +z = y_true #alias check +d = x +y = y_true + sigma_noise * np.random.randn(nobs) + +example = 1 + +if example == 1: + m = AdditiveModel(d) + m.fit(y) + + y_pred = m.results.predict(d) + + +for ss in m.smoothers: + print(ss.params) + +res_ols = OLS(y, exog_reduced).fit() +print(res_ols.params) + +#assert_almost_equal(y_pred, res_ols.fittedvalues, 3) + +if example > 0: + import matplotlib.pyplot as plt + + plt.figure() + plt.plot(exog) + + y_pred = m.results.mu# + m.results.alpha #m.results.predict(d) + plt.figure() + plt.subplot(2,2,1) + plt.plot(y, '.', alpha=0.25) + plt.plot(y_true, 'k-', label='true') + + plt.plot(res_ols.fittedvalues, 'g-', label='OLS', lw=2, alpha=-.7) + plt.plot(y_pred, 'r-', label='AM') + plt.legend(loc='upper left') + plt.title('gam.AdditiveModel') + + counter = 2 + for ii, xx in zip(['z', 'x1', 'x2'], [z, x[:,0], x[:,1]]): + sortidx = np.argsort(xx) + #plt.figure() + plt.subplot(2, 2, counter) + plt.plot(xx[sortidx], y[sortidx], '.', alpha=0.25) + plt.plot(xx[sortidx], y_true[sortidx], 'k.', label='true', lw=2) + plt.plot(xx[sortidx], y_pred[sortidx], 'r.', label='AM') + plt.legend(loc='upper left') + plt.title('gam.AdditiveModel ' + ii) + counter += 1 + + plt.show() \ No newline at end of file diff --git a/statsmodels/sandbox/nonparametric/tests/ex_gam_new.py b/statsmodels/sandbox/nonparametric/tests/ex_gam_new.py new file mode 100644 index 0000000..d1a912a --- /dev/null +++ b/statsmodels/sandbox/nonparametric/tests/ex_gam_new.py @@ -0,0 +1,136 @@ +# -*- coding: utf-8 -*- +"""Example for GAM with Poisson Model and PolynomialSmoother + +This example was written as a test case. +The data generating process is chosen so the parameters are well identified +and estimated. + +Created on Fri Nov 04 13:45:43 2011 + +Author: Josef Perktold +""" +from __future__ import print_function +from statsmodels.compat.python import lrange, zip +import time + +import numpy as np +#import matplotlib.pyplot as plt + +np.seterr(all='raise') + +from scipy import stats + +from statsmodels.sandbox.gam import AdditiveModel +from statsmodels.sandbox.gam import Model as GAM #? +from statsmodels.genmod.families import family +from statsmodels.genmod.generalized_linear_model import GLM + +np.random.seed(8765993) +#seed is chosen for nice result, not randomly +#other seeds are pretty off in the prediction or end in overflow + +#DGP: simple polynomial +order = 3 +sigma_noise = 0.1 +nobs = 1000 +#lb, ub = -0.75, 3#1.5#0.75 #2.5 +lb, ub = -3.5, 3 +x1 = np.linspace(lb, ub, nobs) +x2 = np.sin(2*x1) +x = np.column_stack((x1/x1.max()*1, 1.*x2)) +exog = (x[:,:,None]**np.arange(order+1)[None, None, :]).reshape(nobs, -1) +idx = lrange((order+1)*2) +del idx[order+1] +exog_reduced = exog[:,idx] #remove duplicate constant +y_true = exog.sum(1) #/ 4. +z = y_true #alias check +d = x +y = y_true + sigma_noise * np.random.randn(nobs) + +example = 3 + +if example == 2: + print("binomial") + f = family.Binomial() + mu_true = f.link.inverse(z) + #b = np.asarray([scipy.stats.bernoulli.rvs(p) for p in f.link.inverse(y)]) + b = np.asarray([stats.bernoulli.rvs(p) for p in f.link.inverse(z)]) + b.shape = y.shape + m = GAM(b, d, family=f) + toc = time.time() + m.fit(b) + tic = time.time() + print(tic-toc) + #for plotting + yp = f.link.inverse(y) + p = b + + +if example == 3: + print("Poisson") + f = family.Poisson() + #y = y/y.max() * 3 + yp = f.link.inverse(z) + #p = np.asarray([scipy.stats.poisson.rvs(p) for p in f.link.inverse(y)], float) + p = np.asarray([stats.poisson.rvs(p) for p in f.link.inverse(z)], float) + p.shape = y.shape + m = GAM(p, d, family=f) + toc = time.time() + m.fit(p) + tic = time.time() + print(tic-toc) + +for ss in m.smoothers: + print(ss.params) + +if example > 1: + import matplotlib.pyplot as plt + plt.figure() + for i in np.array(m.history[2:15:3]): plt.plot(i.T) + + plt.figure() + plt.plot(exog) + #plt.plot(p, '.', lw=2) + plt.plot(y_true, lw=2) + + y_pred = m.results.mu # + m.results.alpha #m.results.predict(d) + plt.figure() + plt.subplot(2,2,1) + plt.plot(p, '.') + plt.plot(yp, 'b-', label='true') + plt.plot(y_pred, 'r-', label='GAM') + plt.legend(loc='upper left') + plt.title('gam.GAM Poisson') + + counter = 2 + for ii, xx in zip(['z', 'x1', 'x2'], [z, x[:,0], x[:,1]]): + sortidx = np.argsort(xx) + #plt.figure() + plt.subplot(2, 2, counter) + plt.plot(xx[sortidx], p[sortidx], 'k.', alpha=0.5) + plt.plot(xx[sortidx], yp[sortidx], 'b.', label='true') + plt.plot(xx[sortidx], y_pred[sortidx], 'r.', label='GAM') + plt.legend(loc='upper left') + plt.title('gam.GAM Poisson ' + ii) + counter += 1 + + res = GLM(p, exog_reduced, family=f).fit() + + #plot component, compared to true component + x1 = x[:,0] + x2 = x[:,1] + f1 = exog[:,:order+1].sum(1) - 1 #take out constant + f2 = exog[:,order+1:].sum(1) - 1 + plt.figure() + #Note: need to correct for constant which is indeterminatedly distributed + #plt.plot(x1, m.smoothers[0](x1)-m.smoothers[0].params[0]+1, 'r') + #better would be subtract f(0) m.smoothers[0](np.array([0])) + plt.plot(x1, f1, linewidth=2) + plt.plot(x1, m.smoothers[0](x1)-m.smoothers[0].params[0], 'r') + + plt.figure() + plt.plot(x2, f2, linewidth=2) + plt.plot(x2, m.smoothers[1](x2)-m.smoothers[1].params[0], 'r') + + + plt.show() \ No newline at end of file diff --git a/statsmodels/sandbox/nonparametric/tests/ex_smoothers.py b/statsmodels/sandbox/nonparametric/tests/ex_smoothers.py new file mode 100644 index 0000000..5de93aa --- /dev/null +++ b/statsmodels/sandbox/nonparametric/tests/ex_smoothers.py @@ -0,0 +1,64 @@ +# -*- coding: utf-8 -*- +""" +Created on Fri Nov 04 10:51:39 2011 + +@author: josef +""" +from __future__ import print_function +import numpy as np +from numpy.testing import assert_almost_equal, assert_equal + +from statsmodels.sandbox.nonparametric import smoothers, kernels +from statsmodels.regression.linear_model import OLS, WLS + + +#DGP: simple polynomial +order = 3 +sigma_noise = 0.5 +nobs = 100 +lb, ub = -1, 2 +x = np.linspace(lb, ub, nobs) +x = np.sin(x) +exog = x[:,None]**np.arange(order+1) +y_true = exog.sum(1) +y = y_true + sigma_noise * np.random.randn(nobs) + + + +#xind = np.argsort(x) +pmod = smoothers.PolySmoother(2, x) +pmod.fit(y) #no return +y_pred = pmod.predict(x) +error = y - y_pred +mse = (error*error).mean() +print(mse) +res_ols = OLS(y, exog[:,:3]).fit() +print(np.squeeze(pmod.coef) - res_ols.params) + + +weights = np.ones(nobs) +weights[:nobs//3] = 0.1 +weights[-nobs//5:] = 2 + +pmodw = smoothers.PolySmoother(2, x) +pmodw.fit(y, weights=weights) #no return +y_predw = pmodw.predict(x) +error = y - y_predw +mse = (error*error).mean() +print(mse) +res_wls = WLS(y, exog[:,:3], weights=weights).fit() +print(np.squeeze(pmodw.coef) - res_wls.params) + + + +doplot = 1 +if doplot: + import matplotlib.pyplot as plt + plt.plot(y, '.') + plt.plot(y_true, 'b-', label='true') + plt.plot(y_pred, '-', label='poly') + plt.plot(y_predw, '-', label='poly -w') + plt.legend(loc='upper left') + + plt.close() + #plt.show() diff --git a/statsmodels/sandbox/nonparametric/tests/test_kernel_extras.py b/statsmodels/sandbox/nonparametric/tests/test_kernel_extras.py new file mode 100644 index 0000000..1b83737 --- /dev/null +++ b/statsmodels/sandbox/nonparametric/tests/test_kernel_extras.py @@ -0,0 +1,80 @@ +from unittest import TestCase + +import numpy as np +import numpy.testing as npt + +from statsmodels.sandbox.nonparametric.kernel_extras import SemiLinear + + +class KernelExtrasTestBase(TestCase): + @classmethod + def setup_class(cls): + nobs = 60 + np.random.seed(123456) + cls.o = np.random.binomial(2, 0.7, size=(nobs, 1)) + cls.o2 = np.random.binomial(3, 0.7, size=(nobs, 1)) + cls.c1 = np.random.normal(size=(nobs, 1)) + cls.c2 = np.random.normal(10, 1, size=(nobs, 1)) + cls.c3 = np.random.normal(10, 2, size=(nobs, 1)) + cls.noise = np.random.normal(size=(nobs, 1)) + b0 = 0.3 + b1 = 1.2 + b2 = 3.7 # regression coefficients + cls.y = b0 + b1 * cls.c1 + b2 * cls.c2 + cls.noise + cls.y2 = b0 + b1 * cls.c1 + b2 * cls.c2 + cls.o + cls.noise + # Italy data from R's np package (the first 50 obs) R>> data (Italy) + + cls.Italy_gdp = \ + [8.556, 12.262, 9.587, 8.119, 5.537, 6.796, 8.638, + 6.483, 6.212, 5.111, 6.001, 7.027, 4.616, 3.922, + 4.688, 3.957, 3.159, 3.763, 3.829, 5.242, 6.275, + 8.518, 11.542, 9.348, 8.02, 5.527, 6.865, 8.666, + 6.672, 6.289, 5.286, 6.271, 7.94, 4.72, 4.357, + 4.672, 3.883, 3.065, 3.489, 3.635, 5.443, 6.302, + 9.054, 12.485, 9.896, 8.33, 6.161, 7.055, 8.717, + 6.95] + + cls.Italy_year = \ + [1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, + 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1951, 1952, + 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, + 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1953, 1953, + 1953, 1953, 1953, 1953, 1953, 1953] + + # OECD panel data from NP R>> data(oecdpanel) + cls.growth = \ + [-0.0017584, 0.00740688, 0.03424461, 0.03848719, 0.02932506, + 0.03769199, 0.0466038, 0.00199456, 0.03679607, 0.01917304, + -0.00221, 0.00787269, 0.03441118, -0.0109228, 0.02043064, + -0.0307962, 0.02008947, 0.00580313, 0.00344502, 0.04706358, + 0.03585851, 0.01464953, 0.04525762, 0.04109222, -0.0087903, + 0.04087915, 0.04551403, 0.036916, 0.00369293, 0.0718669, + 0.02577732, -0.0130759, -0.01656641, 0.00676429, 0.08833017, + 0.05092105, 0.02005877, 0.00183858, 0.03903173, 0.05832116, + 0.0494571, 0.02078484, 0.09213897, 0.0070534, 0.08677202, + 0.06830603, -0.00041, 0.0002856, 0.03421225, -0.0036825] + + cls.oecd = \ + [0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0] + + +class TestSemiLinear(KernelExtrasTestBase): + + def test_basic(self): + nobs = 300 + np.random.seed(1234) + C1 = np.random.normal(0,2, size=(nobs, )) + C2 = np.random.normal(2, 1, size=(nobs, )) + e = np.random.normal(size=(nobs, )) + b1 = 1.3 + b2 = -0.7 + Y = b1 * C1 + np.exp(b2 * C2) + e + model = SemiLinear(endog=[Y], exog=[C1], exog_nonparametric=[C2], + var_type='c', k_linear=1) + b_hat = np.squeeze(model.b) + # Only tests for the linear part of the regression + # Currently doesn't work well with the nonparametric part + # Needs some more work + npt.assert_allclose(b1, b_hat, rtol=0.1) diff --git a/statsmodels/sandbox/nonparametric/tests/test_smoothers.py b/statsmodels/sandbox/nonparametric/tests/test_smoothers.py new file mode 100644 index 0000000..7d46e9c --- /dev/null +++ b/statsmodels/sandbox/nonparametric/tests/test_smoothers.py @@ -0,0 +1,108 @@ +# -*- coding: utf-8 -*- +""" +Created on Fri Nov 04 10:51:39 2011 + +Author: Josef Perktold +License: BSD-3 +""" + +import numpy as np +from numpy.testing import assert_almost_equal, assert_equal + +from statsmodels.sandbox.nonparametric import smoothers, kernels +from statsmodels.regression.linear_model import OLS, WLS + + +class CheckSmoother(object): + + def test_predict(self): + assert_almost_equal(self.res_ps.predict(self.x), + self.res2.fittedvalues, decimal=13) + assert_almost_equal(self.res_ps.predict(self.x[:10]), + self.res2.fittedvalues[:10], decimal=13) + + def test_coef(self): + #TODO: check dim of coef + assert_almost_equal(self.res_ps.coef.ravel(), + self.res2.params, decimal=14) + + def test_df(self): + #TODO: make into attributes + assert_equal(self.res_ps.df_model(), self.res2.df_model+1) #with const + assert_equal(self.res_ps.df_fit(), self.res2.df_model+1) #alias + assert_equal(self.res_ps.df_resid(), self.res2.df_resid) + + + +class BasePolySmoother(object): + + def __init__(self): + #DGP: simple polynomial + order = 3 + sigma_noise = 0.5 + nobs = 100 + lb, ub = -1, 2 + self.x = x = np.linspace(lb, ub, nobs) + self.exog = exog = x[:,None]**np.arange(order+1) + y_true = exog.sum(1) + np.random.seed(987567) + self.y = y = y_true + sigma_noise * np.random.randn(nobs) + + +class TestPolySmoother1(BasePolySmoother, CheckSmoother): + + def __init__(self): + super(self.__class__, self).__init__() #initialize DGP + + y, x, exog = self.y, self.x, self.exog + + #use order = 2 in regression + pmod = smoothers.PolySmoother(2, x) + pmod.fit(y) #no return + + self.res_ps = pmod + self.res2 = OLS(y, exog[:,:2+1]).fit() + +class TestPolySmoother2(BasePolySmoother, CheckSmoother): + + def __init__(self): + super(self.__class__, self).__init__() #initialize DGP + + y, x, exog = self.y, self.x, self.exog + + #use order = 3 in regression + pmod = smoothers.PolySmoother(3, x) + #pmod.fit(y) #no return + pmod.smooth(y) #no return, use alias for fit + + self.res_ps = pmod + self.res2 = OLS(y, exog[:,:3+1]).fit() + +class TestPolySmoother3(BasePolySmoother, CheckSmoother): + + def __init__(self): + super(self.__class__, self).__init__() #initialize DGP + + y, x, exog = self.y, self.x, self.exog + nobs = y.shape[0] + weights = np.ones(nobs) + weights[:nobs//3] = 0.1 + weights[-nobs//5:] = 2 + + #use order = 2 in regression + pmod = smoothers.PolySmoother(2, x) + pmod.fit(y, weights=weights) #no return + + self.res_ps = pmod + self.res2 = WLS(y, exog[:,:2+1], weights=weights).fit() + + +if __name__ == '__main__': + t1 = TestPolySmoother1() + t1.test_predict() + t1.test_coef() + t1.test_df + + t3 = TestPolySmoother3() + t3.test_predict() + diff --git a/statsmodels/sandbox/nos4.mtx b/statsmodels/sandbox/nos4.mtx new file mode 100644 index 0000000..977c10e --- /dev/null +++ b/statsmodels/sandbox/nos4.mtx @@ -0,0 +1,349 @@ +%%MatrixMarket matrix coordinate real symmetric +100 100 347 +1 1 1.7155418000000e-01 +2 1 3.5777088000000e-02 +3 1 -1.0000000000000e-01 +13 1 -7.1554176000000e-02 +14 1 -3.5777088000000e-02 +2 2 4.1788854000000e-01 +12 2 -2.0000000000000e-01 +13 2 -3.5777088000000e-02 +14 2 -1.7888544000000e-02 +3 3 3.4310835000000e-01 +5 3 -1.0000000000000e-01 +4 4 4.3577709000000e-01 +14 4 -2.0000000000000e-01 +5 5 3.4310835000000e-01 +7 5 -1.0000000000000e-01 +13 5 -7.1554176000000e-02 +14 5 3.5777088000000e-02 +17 5 -7.1554176000000e-02 +18 5 -3.5777088000000e-02 +6 6 4.3577709000000e-01 +13 6 3.5777088000000e-02 +14 6 -1.7888544000000e-02 +16 6 -2.0000000000000e-01 +17 6 -3.5777088000000e-02 +18 6 -1.7888544000000e-02 +7 7 3.4310835000000e-01 +9 7 -1.0000000000000e-01 +8 8 4.3577709000000e-01 +18 8 -2.0000000000000e-01 +9 9 1.7155418000000e-01 +10 9 -3.5777088000000e-02 +17 9 -7.1554176000000e-02 +18 9 3.5777088000000e-02 +10 10 4.1788854000000e-01 +17 10 3.5777088000000e-02 +18 10 -1.7888544000000e-02 +20 10 -2.0000000000000e-01 +11 11 1.7155418000000e-01 +12 11 3.5777088000000e-02 +13 11 -1.0000000000000e-01 +23 11 -7.1554176000000e-02 +24 11 -3.5777088000000e-02 +12 12 4.1788854000000e-01 +22 12 -2.0000000000000e-01 +23 12 -3.5777088000000e-02 +24 12 -1.7888544000000e-02 +13 13 3.4310835000000e-01 +15 13 -1.0000000000000e-01 +14 14 4.3577709000000e-01 +24 14 -2.0000000000000e-01 +15 15 3.4310835000000e-01 +17 15 -1.0000000000000e-01 +23 15 -7.1554176000000e-02 +24 15 3.5777088000000e-02 +27 15 -7.1554176000000e-02 +28 15 -3.5777088000000e-02 +16 16 4.3577709000000e-01 +23 16 3.5777088000000e-02 +24 16 -1.7888544000000e-02 +26 16 -2.0000000000000e-01 +27 16 -3.5777088000000e-02 +28 16 -1.7888544000000e-02 +17 17 3.4310835000000e-01 +19 17 -1.0000000000000e-01 +18 18 4.3577709000000e-01 +28 18 -2.0000000000000e-01 +19 19 1.7155418000000e-01 +20 19 -3.5777088000000e-02 +27 19 -7.1554176000000e-02 +28 19 3.5777088000000e-02 +20 20 4.1788854000000e-01 +27 20 3.5777088000000e-02 +28 20 -1.7888544000000e-02 +30 20 -2.0000000000000e-01 +21 21 1.7155418000000e-01 +22 21 3.5777088000000e-02 +23 21 -1.0000000000000e-01 +33 21 -7.1554176000000e-02 +34 21 -3.5777088000000e-02 +22 22 4.1788854000000e-01 +32 22 -2.0000000000000e-01 +33 22 -3.5777088000000e-02 +34 22 -1.7888544000000e-02 +23 23 3.4310835000000e-01 +25 23 -1.0000000000000e-01 +24 24 4.3577709000000e-01 +34 24 -2.0000000000000e-01 +25 25 3.4310835000000e-01 +27 25 -1.0000000000000e-01 +33 25 -7.1554176000000e-02 +34 25 3.5777088000000e-02 +37 25 -7.1554176000000e-02 +38 25 -3.5777088000000e-02 +26 26 4.3577709000000e-01 +33 26 3.5777088000000e-02 +34 26 -1.7888544000000e-02 +36 26 -2.0000000000000e-01 +37 26 -3.5777088000000e-02 +38 26 -1.7888544000000e-02 +27 27 3.4310835000000e-01 +29 27 -1.0000000000000e-01 +28 28 4.3577709000000e-01 +38 28 -2.0000000000000e-01 +29 29 1.7155418000000e-01 +30 29 -3.5777088000000e-02 +37 29 -7.1554176000000e-02 +38 29 3.5777088000000e-02 +30 30 4.1788854000000e-01 +37 30 3.5777088000000e-02 +38 30 -1.7888544000000e-02 +40 30 -2.0000000000000e-01 +31 31 1.7155418000000e-01 +32 31 3.5777088000000e-02 +33 31 -1.0000000000000e-01 +43 31 -7.1554176000000e-02 +44 31 -3.5777088000000e-02 +32 32 4.1788854000000e-01 +42 32 -2.0000000000000e-01 +43 32 -3.5777088000000e-02 +44 32 -1.7888544000000e-02 +33 33 3.4310835000000e-01 +35 33 -1.0000000000000e-01 +34 34 4.3577709000000e-01 +44 34 -2.0000000000000e-01 +35 35 3.4310835000000e-01 +37 35 -1.0000000000000e-01 +43 35 -7.1554176000000e-02 +44 35 3.5777088000000e-02 +47 35 -7.1554176000000e-02 +48 35 -3.5777088000000e-02 +36 36 4.3577709000000e-01 +43 36 3.5777088000000e-02 +44 36 -1.7888544000000e-02 +46 36 -2.0000000000000e-01 +47 36 -3.5777088000000e-02 +48 36 -1.7888544000000e-02 +37 37 3.4310835000000e-01 +39 37 -1.0000000000000e-01 +38 38 4.3577709000000e-01 +48 38 -2.0000000000000e-01 +39 39 1.7155418000000e-01 +40 39 -3.5777088000000e-02 +47 39 -7.1554176000000e-02 +48 39 3.5777088000000e-02 +40 40 4.1788854000000e-01 +47 40 3.5777088000000e-02 +48 40 -1.7888544000000e-02 +50 40 -2.0000000000000e-01 +41 41 1.7155418000000e-01 +42 41 3.5777088000000e-02 +43 41 -1.0000000000000e-01 +53 41 -7.1554176000000e-02 +54 41 -3.5777088000000e-02 +42 42 4.1788854000000e-01 +52 42 -2.0000000000000e-01 +53 42 -3.5777088000000e-02 +54 42 -1.7888544000000e-02 +43 43 3.4310835000000e-01 +45 43 -1.0000000000000e-01 +44 44 4.3577709000000e-01 +54 44 -2.0000000000000e-01 +45 45 3.4310835000000e-01 +47 45 -1.0000000000000e-01 +53 45 -7.1554176000000e-02 +54 45 3.5777088000000e-02 +57 45 -7.1554176000000e-02 +58 45 -3.5777088000000e-02 +46 46 4.3577709000000e-01 +53 46 3.5777088000000e-02 +54 46 -1.7888544000000e-02 +56 46 -2.0000000000000e-01 +57 46 -3.5777088000000e-02 +58 46 -1.7888544000000e-02 +47 47 3.4310835000000e-01 +49 47 -1.0000000000000e-01 +48 48 4.3577709000000e-01 +58 48 -2.0000000000000e-01 +49 49 1.7155418000000e-01 +50 49 -3.5777088000000e-02 +57 49 -7.1554176000000e-02 +58 49 3.5777088000000e-02 +50 50 4.1788854000000e-01 +57 50 3.5777088000000e-02 +58 50 -1.7888544000000e-02 +60 50 -2.0000000000000e-01 +51 51 1.7155418000000e-01 +52 51 3.5777088000000e-02 +53 51 -1.0000000000000e-01 +63 51 -7.1554176000000e-02 +64 51 -3.5777088000000e-02 +52 52 4.1788854000000e-01 +62 52 -2.0000000000000e-01 +63 52 -3.5777088000000e-02 +64 52 -1.7888544000000e-02 +53 53 3.4310835000000e-01 +55 53 -1.0000000000000e-01 +54 54 4.3577709000000e-01 +64 54 -2.0000000000000e-01 +55 55 3.4310835000000e-01 +57 55 -1.0000000000000e-01 +63 55 -7.1554176000000e-02 +64 55 3.5777088000000e-02 +67 55 -7.1554176000000e-02 +68 55 -3.5777088000000e-02 +56 56 4.3577709000000e-01 +63 56 3.5777088000000e-02 +64 56 -1.7888544000000e-02 +66 56 -2.0000000000000e-01 +67 56 -3.5777088000000e-02 +68 56 -1.7888544000000e-02 +57 57 3.4310835000000e-01 +59 57 -1.0000000000000e-01 +58 58 4.3577709000000e-01 +68 58 -2.0000000000000e-01 +59 59 1.7155418000000e-01 +60 59 -3.5777088000000e-02 +67 59 -7.1554176000000e-02 +68 59 3.5777088000000e-02 +60 60 4.1788854000000e-01 +67 60 3.5777088000000e-02 +68 60 -1.7888544000000e-02 +70 60 -2.0000000000000e-01 +61 61 1.7155418000000e-01 +62 61 3.5777088000000e-02 +63 61 -1.0000000000000e-01 +73 61 -7.1554176000000e-02 +74 61 -3.5777088000000e-02 +62 62 4.1788854000000e-01 +72 62 -2.0000000000000e-01 +73 62 -3.5777088000000e-02 +74 62 -1.7888544000000e-02 +63 63 3.4310835000000e-01 +65 63 -1.0000000000000e-01 +64 64 4.3577709000000e-01 +74 64 -2.0000000000000e-01 +65 65 3.4310835000000e-01 +67 65 -1.0000000000000e-01 +73 65 -7.1554176000000e-02 +74 65 3.5777088000000e-02 +77 65 -7.1554176000000e-02 +78 65 -3.5777088000000e-02 +66 66 4.3577709000000e-01 +73 66 3.5777088000000e-02 +74 66 -1.7888544000000e-02 +76 66 -2.0000000000000e-01 +77 66 -3.5777088000000e-02 +78 66 -1.7888544000000e-02 +67 67 3.4310835000000e-01 +69 67 -1.0000000000000e-01 +68 68 4.3577709000000e-01 +78 68 -2.0000000000000e-01 +69 69 1.7155418000000e-01 +70 69 -3.5777088000000e-02 +77 69 -7.1554176000000e-02 +78 69 3.5777088000000e-02 +70 70 4.1788854000000e-01 +77 70 3.5777088000000e-02 +78 70 -1.7888544000000e-02 +80 70 -2.0000000000000e-01 +71 71 1.7155418000000e-01 +72 71 3.5777088000000e-02 +73 71 -1.0000000000000e-01 +83 71 -7.1554176000000e-02 +84 71 -3.5777088000000e-02 +72 72 4.1788854000000e-01 +82 72 -2.0000000000000e-01 +83 72 -3.5777088000000e-02 +84 72 -1.7888544000000e-02 +73 73 3.4310835000000e-01 +75 73 -1.0000000000000e-01 +74 74 4.3577709000000e-01 +84 74 -2.0000000000000e-01 +75 75 3.4310835000000e-01 +77 75 -1.0000000000000e-01 +83 75 -7.1554176000000e-02 +84 75 3.5777088000000e-02 +87 75 -7.1554176000000e-02 +88 75 -3.5777088000000e-02 +76 76 4.3577709000000e-01 +83 76 3.5777088000000e-02 +84 76 -1.7888544000000e-02 +86 76 -2.0000000000000e-01 +87 76 -3.5777088000000e-02 +88 76 -1.7888544000000e-02 +77 77 3.4310835000000e-01 +79 77 -1.0000000000000e-01 +78 78 4.3577709000000e-01 +88 78 -2.0000000000000e-01 +79 79 1.7155418000000e-01 +80 79 -3.5777088000000e-02 +87 79 -7.1554176000000e-02 +88 79 3.5777088000000e-02 +80 80 4.1788854000000e-01 +87 80 3.5777088000000e-02 +88 80 -1.7888544000000e-02 +90 80 -2.0000000000000e-01 +81 81 1.7155418000000e-01 +82 81 3.5777088000000e-02 +83 81 -1.0000000000000e-01 +93 81 -7.1554176000000e-02 +94 81 -3.5777088000000e-02 +82 82 4.1788854000000e-01 +92 82 -2.0000000000000e-01 +93 82 -3.5777088000000e-02 +94 82 -1.7888544000000e-02 +83 83 3.4310835000000e-01 +85 83 -1.0000000000000e-01 +84 84 4.3577709000000e-01 +94 84 -2.0000000000000e-01 +85 85 3.4310835000000e-01 +87 85 -1.0000000000000e-01 +93 85 -7.1554176000000e-02 +94 85 3.5777088000000e-02 +97 85 -7.1554176000000e-02 +98 85 -3.5777088000000e-02 +86 86 4.3577709000000e-01 +93 86 3.5777088000000e-02 +94 86 -1.7888544000000e-02 +96 86 -2.0000000000000e-01 +97 86 -3.5777088000000e-02 +98 86 -1.7888544000000e-02 +87 87 3.4310835000000e-01 +89 87 -1.0000000000000e-01 +88 88 4.3577709000000e-01 +98 88 -2.0000000000000e-01 +89 89 1.7155418000000e-01 +90 89 -3.5777088000000e-02 +97 89 -7.1554176000000e-02 +98 89 3.5777088000000e-02 +90 90 4.1788854000000e-01 +97 90 3.5777088000000e-02 +98 90 -1.7888544000000e-02 +100 90 -2.0000000000000e-01 +91 91 1.0000000000000e-01 +93 91 -1.0000000000000e-01 +92 92 2.0000000000000e-01 +93 93 3.4310835000000e-01 +95 93 -1.0000000000000e-01 +94 94 2.3577709000000e-01 +95 95 2.0000000000000e-01 +97 95 -1.0000000000000e-01 +96 96 2.0000000000000e-01 +97 97 3.4310835000000e-01 +99 97 -1.0000000000000e-01 +98 98 2.3577709000000e-01 +99 99 1.0000000000000e-01 +100 100 2.0000000000000e-01 diff --git a/statsmodels/sandbox/panel/__init__.py b/statsmodels/sandbox/panel/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/sandbox/panel/correlation_structures.py b/statsmodels/sandbox/panel/correlation_structures.py new file mode 100644 index 0000000..aa78851 --- /dev/null +++ b/statsmodels/sandbox/panel/correlation_structures.py @@ -0,0 +1,205 @@ +# -*- coding: utf-8 -*- +"""Correlation and Covariance Structures + +Created on Sat Dec 17 20:46:05 2011 + +Author: Josef Perktold +License: BSD-3 + + +Reference +--------- +quick reading of some section on mixed effects models in S-plus and of +outline for GEE. + +""" + +import numpy as np + +def corr_equi(k_vars, rho): + '''create equicorrelated correlation matrix with rho on off diagonal + + Parameters + ---------- + k_vars : int + number of variables, correlation matrix will be (k_vars, k_vars) + rho : float + correlation between any two random variables + + Returns + ------- + corr : ndarray (k_vars, k_vars) + correlation matrix + + ''' + corr = np.empty((k_vars, k_vars)) + corr.fill(rho) + corr[np.diag_indices_from(corr)] = 1 + return corr + +def corr_ar(k_vars, ar): + '''create autoregressive correlation matrix + + This might be MA, not AR, process if used for residual process - check + + Parameters + ---------- + ar : array_like, 1d + AR lag-polynomial including 1 for lag 0 + + + ''' + from scipy.linalg import toeplitz + if len(ar) < k_vars: + ar_ = np.zeros(k_vars) + ar_[:len(ar)] = ar + ar = ar_ + + return toeplitz(ar) + + +def corr_arma(k_vars, ar, ma): + '''create arma correlation matrix + + converts arma to autoregressive lag-polynomial with k_var lags + + ar and arma might need to be switched for generating residual process + + Parameters + ---------- + ar : array_like, 1d + AR lag-polynomial including 1 for lag 0 + ma : array_like, 1d + MA lag-polynomial + + ''' + from scipy.linalg import toeplitz + from statsmodels.tsa.arima_process import arma2ar + + ar = arma2ar(ar, ma, nobs=k_vars)[:k_vars] #bug in arma2ar + + return toeplitz(ar) + + +def corr2cov(corr, std): + '''convert correlation matrix to covariance matrix + + Parameters + ---------- + corr : ndarray, (k_vars, k_vars) + correlation matrix + std : ndarray, (k_vars,) or scalar + standard deviation for the vector of random variables. If scalar, then + it is assumed that all variables have the same scale given by std. + + ''' + if np.size(std) == 1: + std = std*np.ones(corr.shape[0]) + cov = corr * std[:,None] * std[None, :] #same as outer product + return cov + + +def whiten_ar(x, ar_coefs): + """ + Whiten a series of columns according to an AR(p) covariance structure. + + This drops the initial conditions (Cochran-Orcut ?) + Uses loop, so for short ar polynomials only, use lfilter otherwise + + This needs to improve, option on method, full additional to conditional + + Parameters + ---------- + x : array-like, (nobs,) or (nobs, k_vars) + The data to be whitened along axis 0 + ar_coefs : array + coefficients of AR lag- polynomial, TODO: ar or ar_coefs? + + Returns + ------- + x_new : ndarray + transformed array + + """ + + rho = ar_coefs + + x = np.array(x, np.float64) #make copy + #_x = x.copy() + #dimension handling is not DRY + # I think previous code worked for 2d because of single index rows in np + if x.ndim == 2: + rho = rho[:, None] + for i in range(self.order): + _x[(i+1):] = _x[(i+1):] - rho[i] * x[0:-(i+1)] + + return _x[self.order:] + + +def yule_walker_acov(acov, order=1, method="unbiased", df=None, inv=False): + """ + Estimate AR(p) parameters from acovf using Yule-Walker equation. + + + Parameters + ---------- + acov : array-like, 1d + auto-covariance + order : integer, optional + The order of the autoregressive process. Default is 1. + inv : bool + If inv is True the inverse of R is also returned. Default is False. + + Returns + ------- + rho : ndarray + The estimated autoregressive coefficients + sigma + TODO + Rinv : ndarray + inverse of the Toepliz matrix + + """ + + + R = toeplitz(r[:-1]) + + rho = np.linalg.solve(R, r[1:]) + sigmasq = r[0] - (r[1:]*rho).sum() + if inv == True: + return rho, np.sqrt(sigmasq), np.linalg.inv(R) + else: + return rho, np.sqrt(sigmasq) + + +class ARCovariance(object): + ''' + experimental class for Covariance of AR process + classmethod? staticmethods? + ''' + + def __init__(self, ar=None, ar_coefs=None, sigma=1.): + if ar is not None: + self.ar = ar + self.ar_coefs = -ar[1:] + self.k_lags = len(ar) + elif ar_coefs is not None: + self.arcoefs = ar_coefs + self.ar = np.hstack(([1], -ar_coefs)) + self.k_lags = len(self.ar) + + @classmethod + def fit(cls, cov, order, **kwds): + rho, sigma = yule_walker_acov(cov, order=order, **kwds) + return cls(ar_coefs=rho) + + def whiten(self, x): + return whiten_ar(x, self.ar_coefs) + + def corr(self, k_vars=None): + if k_vars is None: + k_vars = len(self.ar) #this could move into corr_arr + return corr_ar(k_vars, self.ar) + + def cov(self, k_vars=None): + return cov2corr(corr(self, k_vars=None), self.sigma) diff --git a/statsmodels/sandbox/panel/mixed.py b/statsmodels/sandbox/panel/mixed.py new file mode 100644 index 0000000..1b5590e --- /dev/null +++ b/statsmodels/sandbox/panel/mixed.py @@ -0,0 +1,673 @@ +""" +Mixed effects models + +Author: Jonathan Taylor +Author: Josef Perktold +License: BSD-3 + + +Notes +------ + +It's pretty slow if the model is misspecified, in my first example convergence +in loglike is not reached within 2000 iterations. Added stop criteria based +on convergence of parameters instead. + +With correctly specified model, convergence is fast, in 6 iterations in +example. + +""" +from __future__ import print_function +import numpy as np +import numpy.linalg as L + +from statsmodels.base.model import LikelihoodModelResults +from statsmodels.tools.decorators import cache_readonly + +class Unit(object): + """ + Individual experimental unit for + EM implementation of (repeated measures) + mixed effects model. + + \'Maximum Likelihood Computations with Repeated Measures: + Application of the EM Algorithm\' + + Nan Laird; Nicholas Lange; Daniel Stram + + Journal of the American Statistical Association, + Vol. 82, No. 397. (Mar., 1987), pp. 97-105. + + + Parameters + ---------- + endog : ndarray, (nobs,) + response, endogenous variable + exog_fe : ndarray, (nobs, k_vars_fe) + explanatory variables as regressors or fixed effects, + should include exog_re to correct mean of random + coefficients, see Notes + exog_re : ndarray, (nobs, k_vars_re) + explanatory variables or random effects or coefficients + + Notes + ----- + If the exog_re variables are not included in exog_fe, then the + mean of the random constants or coefficients are not centered. + The covariance matrix of the random parameter estimates are not + centered in this case. (That's how it looks to me. JP) + + """ + + + def __init__(self, endog, exog_fe, exog_re): + + self.Y = endog + self.X = exog_fe + self.Z = exog_re + self.n = endog.shape[0] + + def _compute_S(self, D, sigma): + """covariance of observations (nobs_i, nobs_i) (JP check) + Display (3.3) from Laird, Lange, Stram (see help(Unit)) + """ + self.S = (np.identity(self.n) * sigma**2 + + np.dot(self.Z, np.dot(D, self.Z.T))) + + def _compute_W(self): + """inverse covariance of observations (nobs_i, nobs_i) (JP check) + Display (3.2) from Laird, Lange, Stram (see help(Unit)) + """ + self.W = L.inv(self.S) + + def compute_P(self, Sinv): + """projection matrix (nobs_i, nobs_i) (M in regression ?) (JP check, guessing) + Display (3.10) from Laird, Lange, Stram (see help(Unit)) + + W - W X Sinv X' W' + """ + t = np.dot(self.W, self.X) + self.P = self.W - np.dot(np.dot(t, Sinv), t.T) + + def _compute_r(self, alpha): + """residual after removing fixed effects + + Display (3.5) from Laird, Lange, Stram (see help(Unit)) + """ + self.r = self.Y - np.dot(self.X, alpha) + + def _compute_b(self, D): + """coefficients for random effects/coefficients + Display (3.4) from Laird, Lange, Stram (see help(Unit)) + + D Z' W r + """ + self.b = np.dot(D, np.dot(np.dot(self.Z.T, self.W), self.r)) + + def fit(self, a, D, sigma): + """ + Compute unit specific parameters in + Laird, Lange, Stram (see help(Unit)). + + Displays (3.2)-(3.5). + """ + + self._compute_S(D, sigma) #random effect plus error covariance + self._compute_W() #inv(S) + self._compute_r(a) #residual after removing fixed effects/exogs + self._compute_b(D) #? coefficients on random exog, Z ? + + def compute_xtwy(self): + """ + Utility function to compute X^tWY (transposed ?) for Unit instance. + """ + return np.dot(np.dot(self.W, self.Y), self.X) #is this transposed ? + + def compute_xtwx(self): + """ + Utility function to compute X^tWX for Unit instance. + """ + return np.dot(np.dot(self.X.T, self.W), self.X) + + def cov_random(self, D, Sinv=None): + """ + Approximate covariance of estimates of random effects. Just after + Display (3.10) in Laird, Lange, Stram (see help(Unit)). + + D - D' Z' P Z D + + Notes + ----- + In example where the mean of the random coefficient is not zero, this + is not a covariance but a non-centered moment. (proof by example) + + """ + if Sinv is not None: + self.compute_P(Sinv) + t = np.dot(self.Z, D) + return D - np.dot(np.dot(t.T, self.P), t) + + def logL(self, a, ML=False): + """ + Individual contributions to the log-likelihood, tries to return REML + contribution by default though this requires estimated + fixed effect a to be passed as an argument. + + no constant with pi included + + a is not used if ML=true (should be a=None in signature) + If ML is false, then the residuals are calculated for the given fixed + effects parameters a. + """ + + if ML: + return (np.log(L.det(self.W)) - (self.r * np.dot(self.W, self.r)).sum()) / 2. + else: + if a is None: + raise ValueError('need fixed effect a for REML contribution to log-likelihood') + r = self.Y - np.dot(self.X, a) + return (np.log(L.det(self.W)) - (r * np.dot(self.W, r)).sum()) / 2. + + def deviance(self, ML=False): + '''deviance defined as 2 times the negative loglikelihood + + ''' + return - 2 * self.logL(ML=ML) + + +class OneWayMixed(object): + + """ + Model for + EM implementation of (repeated measures) + mixed effects model. + + \'Maximum Likelihood Computations with Repeated Measures: + Application of the EM Algorithm\' + + Nan Laird; Nicholas Lange; Daniel Stram + + Journal of the American Statistical Association, + Vol. 82, No. 397. (Mar., 1987), pp. 97-105. + + + Parameters + ---------- + units : list of units + the data for the individual units should be attached to the units + response, fixed and random : formula expression, called as argument to Formula + + + *available results and alias* + + (subject to renaming, and coversion to cached attributes) + + params() -> self.a : coefficient for fixed effects or exog + cov_params() -> self.Sinv : covariance estimate of fixed effects/exog + bse() : standard deviation of params + + cov_random -> self.D : estimate of random effects covariance + params_random_units -> [self.units[...].b] : random coefficient for each unit + + + *attributes* + + (others) + + self.m : number of units + self.p : k_vars_fixed + self.q : k_vars_random + self.N : nobs (total) + + + Notes + ----- + Fit returns a result instance, but not all results that use the inherited + methods have been checked. + + Parameters need to change: drop formula and we require a naming convention for + the units (currently Y,X,Z). - endog, exog_fe, endog_re ? + + logL does not include constant, e.g. sqrt(pi) + llf is for MLE not for REML + + + convergence criteria for iteration + Currently convergence in the iterative solver is reached if either the loglikelihood + *or* the fixed effects parameter don't change above tolerance. + + In some examples, the fixed effects parameters converged to 1e-5 within 150 iterations + while the log likelihood did not converge within 2000 iterations. This might be + the case if the fixed effects parameters are well estimated, but there are still + changes in the random effects. If params_rtol and params_atol are set at a higher + level, then the random effects might not be estimated to a very high precision. + + The above was with a misspecified model, without a constant. With a + correctly specified model convergence is fast, within a few iterations + (6 in example). + + """ + + def __init__(self, units): + self.units = units + self.m = len(self.units) + self.n_units = self.m + + self.N = sum(unit.X.shape[0] for unit in self.units) + self.nobs = self.N #alias for now + + # Determine size of fixed effects + d = self.units[0].X + self.p = d.shape[1] # d.shape = p + self.k_exog_fe = self.p #alias for now + self.a = np.zeros(self.p, np.float64) + + # Determine size of D, and sensible initial estimates + # of sigma and D + d = self.units[0].Z + self.q = d.shape[1] # Z.shape = q + self.k_exog_re = self.q #alias for now + self.D = np.zeros((self.q,)*2, np.float64) + self.sigma = 1. + + self.dev = np.inf #initialize for iterations, move it? + + def _compute_a(self): + """fixed effects parameters + + Display (3.1) of + Laird, Lange, Stram (see help(Mixed)). + + """ + + for unit in self.units: + unit.fit(self.a, self.D, self.sigma) + + S = sum([unit.compute_xtwx() for unit in self.units]) + Y = sum([unit.compute_xtwy() for unit in self.units]) + + self.Sinv = L.pinv(S) + self.a = np.dot(self.Sinv, Y) + + def _compute_sigma(self, ML=False): + """ + Estimate sigma. If ML is True, return the ML estimate of sigma, + else return the REML estimate. + + If ML, this is (3.6) in Laird, Lange, Stram (see help(Mixed)), + otherwise it corresponds to (3.8). + + sigma is the standard deviation of the noise (residual) + + """ + sigmasq = 0. + for unit in self.units: + if ML: + W = unit.W + else: + unit.compute_P(self.Sinv) + W = unit.P + t = unit.r - np.dot(unit.Z, unit.b) + sigmasq += np.power(t, 2).sum() + sigmasq += self.sigma**2 * np.trace(np.identity(unit.n) - + self.sigma**2 * W) + self.sigma = np.sqrt(sigmasq / self.N) + + def _compute_D(self, ML=False): + """ + Estimate random effects covariance D. + If ML is True, return the ML estimate of sigma, + else return the REML estimate. + + If ML, this is (3.7) in Laird, Lange, Stram (see help(Mixed)), + otherwise it corresponds to (3.9). + + """ + D = 0. + for unit in self.units: + if ML: + W = unit.W + else: + unit.compute_P(self.Sinv) + W = unit.P + D += np.multiply.outer(unit.b, unit.b) + t = np.dot(unit.Z, self.D) + D += self.D - np.dot(np.dot(t.T, W), t) + + self.D = D / self.m + + def cov_fixed(self): + """ + Approximate covariance of estimates of fixed effects. + + Just after Display (3.10) in Laird, Lange, Stram (see help(Mixed)). + """ + return self.Sinv + + #----------- alias (JP) move to results class ? + + def cov_random(self): + """ + Estimate random effects covariance D. + + If ML is True, return the ML estimate of sigma, else return the REML estimate. + + see _compute_D, alias for self.D + """ + return self.D + + @property + def params(self): + ''' + estimated coefficients for exogeneous variables or fixed effects + + see _compute_a, alias for self.a + ''' + return self.a + + @property + def params_random_units(self): + '''random coefficients for each unit + + ''' + return np.array([unit.b for unit in self.units]) + + def cov_params(self): + ''' + estimated covariance for coefficients for exogeneous variables or fixed effects + + see cov_fixed, and Sinv in _compute_a + ''' + return self.cov_fixed() + + + @property + def bse(self): + ''' + standard errors of estimated coefficients for exogeneous variables (fixed) + + ''' + return np.sqrt(np.diag(self.cov_params())) + + #----------- end alias + + def deviance(self, ML=False): + '''deviance defined as 2 times the negative loglikelihood + + ''' + return -2 * self.logL(ML=ML) + + + def logL(self, ML=False): + """ + Return log-likelihood, REML by default. + + """ + #I don't know what the difference between REML and ML is here. + logL = 0. + + for unit in self.units: + logL += unit.logL(a=self.a, ML=ML) + if not ML: + logL += np.log(L.det(self.Sinv)) / 2 + return logL + + def initialize(self): + S = sum([np.dot(unit.X.T, unit.X) for unit in self.units]) + Y = sum([np.dot(unit.X.T, unit.Y) for unit in self.units]) + self.a = L.lstsq(S, Y)[0] + + D = 0 + t = 0 + sigmasq = 0 + for unit in self.units: + unit.r = unit.Y - np.dot(unit.X, self.a) + if self.q > 1: + unit.b = L.lstsq(unit.Z, unit.r)[0] + else: + Z = unit.Z.reshape((unit.Z.shape[0], 1)) + unit.b = L.lstsq(Z, unit.r)[0] + + sigmasq += (np.power(unit.Y, 2).sum() - + (self.a * np.dot(unit.X.T, unit.Y)).sum() - + (unit.b * np.dot(unit.Z.T, unit.r)).sum()) + D += np.multiply.outer(unit.b, unit.b) + t += L.pinv(np.dot(unit.Z.T, unit.Z)) + + #TODO: JP added df_resid check + self.df_resid = (self.N - (self.m - 1) * self.q - self.p) + sigmasq /= (self.N - (self.m - 1) * self.q - self.p) + self.sigma = np.sqrt(sigmasq) + self.D = (D - sigmasq * t) / self.m + + def cont(self, ML=False, rtol=1.0e-05, params_rtol=1e-5, params_atol=1e-4): + '''convergence check for iterative estimation + + ''' + + self.dev, old = self.deviance(ML=ML), self.dev + + #self.history.append(np.hstack((self.dev, self.a))) + self.history['llf'].append(self.dev) + self.history['params'].append(self.a.copy()) + self.history['D'].append(self.D.copy()) + + if np.fabs((self.dev - old) / self.dev) < rtol: #why is there times `*`? + #print np.fabs((self.dev - old)), self.dev, old + self.termination = 'llf' + return False + + #break if parameters converged + #TODO: check termination conditions, OR or AND + if np.all(np.abs(self.a - self._a_old) < (params_rtol * self.a + params_atol)): + self.termination = 'params' + return False + + self._a_old = self.a.copy() + return True + + def fit(self, maxiter=100, ML=False, rtol=1.0e-05, params_rtol=1e-6, params_atol=1e-6): + + #initialize for convergence criteria + self._a_old = np.inf * self.a + self.history = {'llf':[], 'params':[], 'D':[]} + + for i in range(maxiter): + self._compute_a() #a, Sinv : params, cov_params of fixed exog + self._compute_sigma(ML=ML) #sigma MLE or REML of sigma ? + self._compute_D(ML=ML) #D : covariance of random effects, MLE or REML + if not self.cont(ML=ML, rtol=rtol, params_rtol=params_rtol, + params_atol=params_atol): + break + else: #if end of loop is reached without break + self.termination = 'maxiter' + print('Warning: maximum number of iterations reached') + + self.iterations = i + + results = OneWayMixedResults(self) + #compatibility functions for fixed effects/exog + results.scale = 1 + results.normalized_cov_params = self.cov_params() + + return results + + +class OneWayMixedResults(LikelihoodModelResults): + '''Results class for OneWayMixed models + + ''' + def __init__(self, model): + #TODO: check, change initialization to more standard pattern + self.model = model + self.params = model.params + + + #need to overwrite this because we don't have a standard + #model.loglike yet + #TODO: what todo about REML loglike, logL is not normalized + @cache_readonly + def llf(self): + return self.model.logL(ML=True) + + @property + def params_random_units(self): + return self.model.params_random_units + + def cov_random(self): + return self.model.cov_random() + + def mean_random(self, idx='lastexog'): + if idx == 'lastexog': + meanr = self.params[-self.model.k_exog_re:] + elif isinstance(idx, list): + if not len(idx) == self.model.k_exog_re: + raise ValueError('length of idx different from k_exog_re') + else: + meanr = self.params[idx] + else: + meanr = np.zeros(self.model.k_exog_re) + + return meanr + + def std_random(self): + return np.sqrt(np.diag(self.cov_random())) + + def plot_random_univariate(self, bins=None, use_loc=True): + '''create plot of marginal distribution of random effects + + Parameters + ---------- + bins : int or bin edges + option for bins in matplotlibs hist method. Current default is not + very sophisticated. All distributions use the same setting for + bins. + use_loc : bool + If True, then the distribution with mean given by the fixed + effect is used. + + Returns + ------- + fig : matplotlib figure instance + figure with subplots + + Notes + ----- + What can make this fancier? + + Bin edges will not make sense if loc or scale differ across random + effect distributions. + + ''' + #outsource this + import matplotlib.pyplot as plt + from scipy.stats import norm as normal + fig = plt.figure() + k = self.model.k_exog_re + if k > 3: + rows, cols = int(np.ceil(k * 0.5)), 2 + else: + rows, cols = k, 1 + if bins is None: + #bins = self.model.n_units // 20 #TODO: just roughly, check + # bins = np.sqrt(self.model.n_units) + bins = 5 + 2 * self.model.n_units**(1./3.) + + if use_loc: + loc = self.mean_random() + else: + loc = [0]*k + + scale = self.std_random() + + for ii in range(k): + ax = fig.add_subplot(rows, cols, ii) + + freq, bins_, _ = ax.hist(loc[ii] + self.params_random_units[:,ii], + bins=bins, normed=True) + points = np.linspace(bins_[0], bins_[-1], 200) + + #ax.plot(points, normal.pdf(points, loc=loc, scale=scale)) + #loc of sample is approx. zero, with Z appended to X + #alternative, add fixed to mean + ax.set_title('Random Effect %d Marginal Distribution' % ii) + ax.plot(points, + normal.pdf(points, loc=loc[ii], scale=scale[ii]), + 'r') + + return fig + + def plot_scatter_pairs(self, idx1, idx2, title=None, ax=None): + '''create scatter plot of two random effects + + Parameters + ---------- + idx1, idx2 : int + indices of the two random effects to display, corresponding to + columns of exog_re + title : None or string + If None, then a default title is added + ax : None or matplotlib axis instance + If None, then a figure with one axis is created and returned. + If ax is not None, then the scatter plot is created on it, and + this axis instance is returned. + + Returns + ------- + ax_or_fig : axis or figure instance + see ax parameter + + Notes + ----- + Still needs ellipse from estimated parameters + + ''' + import matplotlib.pyplot as plt + if ax is None: + fig = plt.figure() + ax = fig.add_subplot(1,1,1) + ax_or_fig = fig + + re1 = self.params_random_units[:,idx1] + re2 = self.params_random_units[:,idx2] + ax.plot(re1, re2, 'o', alpha=0.75) + if title is None: + title = 'Random Effects %d and %d' % (idx1, idx2) + ax.set_title(title) + ax_or_fig = ax + + return ax_or_fig + + def plot_scatter_all_pairs(self, title=None): + from statsmodels.graphics.plot_grids import scatter_ellipse + if self.model.k_exog_re < 2: + raise ValueError('less than two variables available') + + return scatter_ellipse(self.params_random_units, + ell_kwds={'color':'r'}) + #ell_kwds not implemented yet + +# #note I have written this already as helper function, get it +# import matplotlib.pyplot as plt +# #from scipy.stats import norm as normal +# fig = plt.figure() +# k = self.model.k_exog_re +# n_plots = k * (k - 1) // 2 +# if n_plots > 3: +# rows, cols = int(np.ceil(n_plots * 0.5)), 2 +# else: +# rows, cols = n_plots, 1 +# +# count = 1 +# for ii in range(k): +# for jj in range(ii): +# ax = fig.add_subplot(rows, cols, count) +# self.plot_scatter_pairs(ii, jj, title=None, ax=ax) +# count += 1 +# +# return fig + + +if __name__ == '__main__': + #see examples/ex_mixed_lls_1.py + pass diff --git a/statsmodels/sandbox/panel/panel_short.py b/statsmodels/sandbox/panel/panel_short.py new file mode 100644 index 0000000..73327a6 --- /dev/null +++ b/statsmodels/sandbox/panel/panel_short.py @@ -0,0 +1,247 @@ +# -*- coding: utf-8 -*- +"""Panel data analysis for short T and large N + +Created on Sat Dec 17 19:32:00 2011 + +Author: Josef Perktold +License: BSD-3 + + +starting from scratch before looking at references again +just a stub to get the basic structure for group handling +target outsource as much as possible for reuse + +Notes +----- + +this is the basic version using a loop over individuals which will be more +widely applicable. Depending on the special cases, there will be faster +implementations possible (sparse, kroneker, ...) + +the only two group specific methods or get_within_cov and whiten + +""" + +import numpy as np +from statsmodels.regression.linear_model import OLS, GLS +from statsmodels.tools.grouputils import Group, GroupSorted + +#not used +class Unit(object): + + def __init__(endog, exog): + self.endog = endog + self.exog = exog + + +def sum_outer_product_loop(x, group_iter): + '''sum outerproduct dot(x_i, x_i.T) over individuals + + loop version + + ''' + + mom = 0 + for g in group_iter(): + x_g = x[g] + #print 'x_g.shape', x_g.shape + mom += np.outer(x_g, x_g) + + return mom + +def sum_outer_product_balanced(x, n_groups): + '''sum outerproduct dot(x_i, x_i.T) over individuals + + where x_i is (nobs_i, 1), and result is (nobs_i, nobs_i) + + reshape-dot version, for x.ndim=1 only + + ''' + xrs = x.reshape(-1, n_groups, order='F') + return np.dot(xrs, xrs.T) #should be (nobs_i, nobs_i) + + #x.reshape(n_groups, nobs_i, k_vars) #, order='F') + #... ? this is getting 3-dimensional dot, tensordot? + #needs (n_groups, k_vars, k_vars) array with sum over groups + #NOT + #I only need this for x is 1d, i.e. residual + + +def whiten_individuals_loop(x, transform, group_iter): + '''apply linear transform for each individual + + loop version + ''' + + #Note: figure out dimension of transformed variable + #so we can pre-allocate + x_new = [] + for g in group_iter(): + x_g = x[g] + x_new.append(np.dot(transform, x_g)) + + return np.concatenate(x_new) #np.vstack(x_new) #or np.array(x_new) #check shape + + + +class ShortPanelGLS2(object): + '''Short Panel with general intertemporal within correlation + + assumes data is stacked by individuals, panel is balanced and + within correlation structure is identical across individuals. + + It looks like this can just inherit GLS and overwrite whiten + ''' + + def __init__(self, endog, exog, group): + self.endog = endog + self.exog = exog + self.group = GroupSorted(group) + self.n_groups = self.group.n_groups + #self.nobs_group = #list for unbalanced? + + def fit_ols(self): + self.res_pooled = OLS(self.endog, self.exog).fit() + return self.res_pooled #return or not + + def get_within_cov(self, resid): + #central moment or not? + mom = sum_outer_product_loop(resid, self.group.group_iter) + return mom / self.n_groups #df correction ? + + def whiten_groups(self, x, cholsigmainv_i): + #from scipy import sparse #use sparse + wx = whiten_individuals_loop(x, cholsigmainv_i, self.group.group_iter) + return wx + + def fit(self): + res_pooled = self.fit_ols() #get starting estimate + sigma_i = self.get_within_cov(res_pooled.resid) + self.cholsigmainv_i = np.linalg.cholesky(np.linalg.pinv(sigma_i)).T + wendog = self.whiten_groups(self.endog, self.cholsigmainv_i) + wexog = self.whiten_groups(self.exog, self.cholsigmainv_i) + #print wendog.shape, wexog.shape + self.res1 = OLS(wendog, wexog).fit() + return self.res1 + +class ShortPanelGLS(GLS): + '''Short Panel with general intertemporal within correlation + + assumes data is stacked by individuals, panel is balanced and + within correlation structure is identical across individuals. + + It looks like this can just inherit GLS and overwrite whiten + ''' + + def __init__(self, endog, exog, group, sigma_i=None): + self.group = GroupSorted(group) + self.n_groups = self.group.n_groups + #self.nobs_group = #list for unbalanced? + nobs_i = len(endog) / self.n_groups #endog might later not be an ndarray + #balanced only for now, + #which is a requirement anyway in this case (full cov) + #needs to change for parameterized sigma_i + + # + if sigma_i is None: + sigma_i = np.eye(int(nobs_i)) + self.cholsigmainv_i = np.linalg.cholesky(np.linalg.pinv(sigma_i)).T + + #super is taking care of endog, exog and sigma + super(self.__class__, self).__init__(endog, exog, sigma=None) + + def get_within_cov(self, resid): + #central moment or not? + mom = sum_outer_product_loop(resid, self.group.group_iter) + return mom / self.n_groups #df correction ? + + def whiten_groups(self, x, cholsigmainv_i): + #from scipy import sparse #use sparse + wx = whiten_individuals_loop(x, cholsigmainv_i, self.group.group_iter) + return wx + + def _fit_ols(self): + #used as starting estimate in old explicity version + self.res_pooled = OLS(self.endog, self.exog).fit() + return self.res_pooled #return or not + + def _fit_old(self): + #old explicit version + res_pooled = self._fit_ols() #get starting estimate + sigma_i = self.get_within_cov(res_pooled.resid) + self.cholsigmainv_i = np.linalg.cholesky(np.linalg.pinv(sigma_i)).T + wendog = self.whiten_groups(self.endog, self.cholsigmainv_i) + wexog = self.whiten_groups(self.exog, self.cholsigmainv_i) + self.res1 = OLS(wendog, wexog).fit() + return self.res1 + + def whiten(self, x): + #whiten x by groups, will be applied to endog and exog + wx = whiten_individuals_loop(x, self.cholsigmainv_i, self.group.group_iter) + return wx + + #copied from GLSHet and adjusted (boiler plate?) + def fit_iterative(self, maxiter=3): + """ + Perform an iterative two-step procedure to estimate the GLS model. + + Parameters + ---------- + maxiter : integer, optional + the number of iterations + + Notes + ----- + maxiter=1: returns the estimated based on given weights + maxiter=2: performs a second estimation with the updated weights, + this is 2-step estimation + maxiter>2: iteratively estimate and update the weights + + TODO: possible extension stop iteration if change in parameter + estimates is smaller than x_tol + + Repeated calls to fit_iterative, will do one redundant pinv_wexog + calculation. Calling fit_iterative(maxiter) once does not do any + redundant recalculations (whitening or calculating pinv_wexog). + + """ + #Note: in contrast to GLSHet, we don't have an auxilliary regression here + # might be needed if there is more structure in cov_i + + #because we only have the loop we are not attaching the ols_pooled + #initial estimate anymore compared to original version + + if maxiter < 1: + raise ValueError('maxiter needs to be at least 1') + + import collections + self.history = collections.defaultdict(list) #not really necessary + + for i in range(maxiter): + #pinv_wexog is cached, delete it to force recalculation + if hasattr(self, 'pinv_wexog'): + del self.pinv_wexog + + #fit with current cov, GLS, i.e. OLS on whitened endog, exog + results = self.fit() + self.history['self_params'].append(results.params) + + if not i == maxiter-1: #skip for last iteration, could break instead + #print 'ols', + self.results_old = results #store previous results for debugging + + #get cov from residuals of previous regression + sigma_i = self.get_within_cov(results.resid) + self.cholsigmainv_i = np.linalg.cholesky(np.linalg.pinv(sigma_i)).T + + #calculate new whitened endog and exog + self.initialize() + + #note results is the wrapper, results._results is the results instance + #results._results.results_residual_regression = res_resid + return results + + +if __name__ == '__main__': + + pass diff --git a/statsmodels/sandbox/panel/panelmod.py b/statsmodels/sandbox/panel/panelmod.py new file mode 100644 index 0000000..70bed20 --- /dev/null +++ b/statsmodels/sandbox/panel/panelmod.py @@ -0,0 +1,439 @@ +""" +Sandbox Panel Estimators + +References +----------- + +Baltagi, Badi H. `Econometric Analysis of Panel Data.` 4th ed. Wiley, 2008. +""" +from __future__ import print_function +from statsmodels.compat.python import range, reduce +from statsmodels.tools.tools import categorical +from statsmodels.regression.linear_model import GLS, WLS +import numpy as np + +__all__ = ["PanelModel"] + +from pandas import Panel + + +def group(X): + """ + Returns unique numeric values for groups without sorting. + + Examples + -------- + >>> X = np.array(['a','a','b','c','b','c']) + >>> group(X) + >>> g + array([ 0., 0., 1., 2., 1., 2.]) + """ + uniq_dict = {} + group = np.zeros(len(X)) + for i in range(len(X)): + if not X[i] in uniq_dict: + uniq_dict.update({X[i] : len(uniq_dict)}) + group[i] = uniq_dict[X[i]] + return group + +def repanel_cov(groups, sigmas): + '''calculate error covariance matrix for random effects model + + Parameters + ---------- + groups : array, (nobs, nre) or (nobs,) + array of group/category observations + sigma : array, (nre+1,) + array of standard deviations of random effects, + last element is the standard deviation of the + idiosyncratic error + + Returns + ------- + omega : array, (nobs, nobs) + covariance matrix of error + omegainv : array, (nobs, nobs) + inverse covariance matrix of error + omegainvsqrt : array, (nobs, nobs) + squareroot inverse covariance matrix of error + such that omega = omegainvsqrt * omegainvsqrt.T + + Notes + ----- + This does not use sparse matrices and constructs nobs by nobs + matrices. Also, omegainvsqrt is not sparse, i.e. elements are non-zero + ''' + + if groups.ndim == 1: + groups = groups[:,None] + nobs, nre = groups.shape + omega = sigmas[-1]*np.eye(nobs) + for igr in range(nre): + group = groups[:,igr:igr+1] + groupuniq = np.unique(group) + dummygr = sigmas[igr] * (group == groupuniq).astype(float) + omega += np.dot(dummygr, dummygr.T) + ev, evec = np.linalg.eigh(omega) #eig doesn't work + omegainv = np.dot(evec, (1/ev * evec).T) + omegainvhalf = evec/np.sqrt(ev) + return omega, omegainv, omegainvhalf + + + +class PanelData(Panel): + pass + +class PanelModel(object): + """ + An abstract statistical model class for panel (longitudinal) datasets. + + Parameters + --------- + endog : array-like or str + If a pandas object is used then endog should be the name of the + endogenous variable as a string. +# exog +# panel_arr +# time_arr + panel_data : pandas.Panel object + + Notes + ----- + If a pandas object is supplied it is assumed that the major_axis is time + and that the minor_axis has the panel variable. + """ + def __init__(self, endog=None, exog=None, panel=None, time=None, + xtnames=None, equation=None, panel_data=None): + if panel_data == None: +# if endog == None and exog == None and panel == None and \ +# time == None: +# raise ValueError("If pandel_data is False then endog, exog, \ +#panel_arr, and time_arr cannot be None.") + self.initialize(endog, exog, panel, time, xtnames, equation) +# elif aspandas != False: +# if not isinstance(endog, str): +# raise ValueError("If a pandas object is supplied then endog \ +#must be a string containing the name of the endogenous variable") +# if not isinstance(aspandas, Panel): +# raise ValueError("Only pandas.Panel objects are supported") +# self.initialize_pandas(endog, aspandas, panel_name) + + + def initialize(self, endog, exog, panel, time, xtnames, equation): + """ + Initialize plain array model. + + See PanelModel + """ +#TODO: for now, we are going assume a constant, and then make the first +#panel the base, add a flag for this.... + + # get names + names = equation.split(" ") + self.endog_name = names[0] + exog_names = names[1:] # this makes the order matter in the array + self.panel_name = xtnames[0] + self.time_name = xtnames[1] + + + novar = exog.var(0) == 0 + if True in novar: + cons_index = np.where(novar == 1)[0][0] # constant col. num + exog_names.insert(cons_index, 'cons') + + self._cons_index = novar # used again in fit_fixed + self.exog_names = exog_names + self.endog = np.squeeze(np.asarray(endog)) + exog = np.asarray(exog) + self.exog = exog + self.panel = np.asarray(panel) + self.time = np.asarray(time) + + self.paneluniq = np.unique(panel) + self.timeuniq = np.unique(time) +#TODO: this structure can possibly be extracted somewhat to deal with +#names in general + +#TODO: add some dimension checks, etc. + +# def initialize_pandas(self, endog, aspandas): +# """ +# Initialize pandas objects. +# +# See PanelModel. +# """ +# self.aspandas = aspandas +# endog = aspandas[endog].values +# self.endog = np.squeeze(endog) +# exog_name = aspandas.columns.tolist() +# exog_name.remove(endog) +# self.exog = aspandas.filterItems(exog_name).values +#TODO: can the above be simplified to slice notation? +# if panel_name != None: +# self.panel_name = panel_name +# self.exog_name = exog_name +# self.endog_name = endog +# self.time_arr = aspandas.major_axis + #TODO: is time always handled correctly in fromRecords? +# self.panel_arr = aspandas.minor_axis +#TODO: all of this might need to be refactored to explicitly rely (internally) +# on the pandas LongPanel structure for speed and convenience. +# not sure this part is finished... + +#TODO: doesn't conform to new initialize + def initialize_pandas(self, panel_data, endog_name, exog_name): + self.panel_data = panel_data + endog = panel_data[endog_name].values # does this create a copy? + self.endog = np.squeeze(endog) + if exog_name == None: + exog_name = panel_data.columns.tolist() + exog_name.remove(endog_name) + self.exog = panel_data.filterItems(exog_name).values # copy? + self._exog_name = exog_name + self._endog_name = endog_name + self._timeseries = panel_data.major_axis # might not need these + self._panelseries = panel_data.minor_axis + +#TODO: this could be pulled out and just have a by kwd that takes +# the panel or time array +#TODO: this also needs to be expanded for 'twoway' + def _group_mean(self, X, index='oneway', counts=False, dummies=False): + """ + Get group means of X by time or by panel. + + index default is panel + """ + if index == 'oneway': + Y = self.panel + uniq = self.paneluniq + elif index == 'time': + Y = self.time + uniq = self.timeuniq + else: + raise ValueError("index %s not understood" % index) + print(Y, uniq, uniq[:,None], len(Y), len(uniq), len(uniq[:,None]), + index) + #TODO: use sparse matrices + dummy = (Y == uniq[:,None]).astype(float) + if X.ndim > 1: + mean = np.dot(dummy,X)/dummy.sum(1)[:,None] + else: + mean = np.dot(dummy,X)/dummy.sum(1) + if counts == False and dummies == False: + return mean + elif counts == True and dummies == False: + return mean, dummy.sum(1) + elif counts == True and dummies == True: + return mean, dummy.sum(1), dummy + elif counts == False and dummies == True: + return mean, dummy + +#TODO: Use kwd arguments or have fit_method methods? + def fit(self, model=None, method=None, effects='oneway'): + """ + method : LSDV, demeaned, MLE, GLS, BE, FE, optional + model : + between + fixed + random + pooled + [gmm] + effects : + oneway + time + twoway + femethod : demeaned (only one implemented) + WLS + remethod : + swar - + amemiya + nerlove + walhus + + + Notes + ------ + This is unfinished. None of the method arguments work yet. + Only oneway effects should work. + """ + if method: # get rid of this with default + method = method.lower() + model = model.lower() + if method and method not in ["lsdv", "demeaned", "mle", "gls", "be", + "fe"]: # get rid of if method with default + raise ValueError("%s not a valid method" % method) +# if method == "lsdv": +# self.fit_lsdv(model) + if model == 'pooled': + return GLS(self.endog, self.exog).fit() + if model == 'between': + return self._fit_btwn(method, effects) + if model == 'fixed': + return self._fit_fixed(method, effects) + +# def fit_lsdv(self, effects): +# """ +# Fit using least squares dummy variables. +# +# Notes +# ----- +# Should only be used for small `nobs`. +# """ +# pdummies = None +# tdummies = None + + def _fit_btwn(self, method, effects): + # group mean regression or WLS + if effects != "twoway": + endog = self._group_mean(self.endog, index=effects) + exog = self._group_mean(self.exog, index=effects) + else: + raise ValueError("%s effects is not valid for the between \ +estimator" % s) + befit = GLS(endog, exog).fit() + return befit + + def _fit_fixed(self, method, effects): + endog = self.endog + exog = self.exog + demeantwice = False + if effects in ["oneway","twoways"]: + if effects == "twoways": + demeantwice = True + effects = "oneway" + endog_mean, counts = self._group_mean(endog, index=effects, + counts=True) + exog_mean = self._group_mean(exog, index=effects) + counts = counts.astype(int) + endog = endog - np.repeat(endog_mean, counts) + exog = exog - np.repeat(exog_mean, counts, axis=0) + if demeantwice or effects == "time": + endog_mean, dummies = self._group_mean(endog, index="time", + dummies=True) + exog_mean = self._group_mean(exog, index="time") + # This allows unbalanced panels + endog = endog - np.dot(endog_mean, dummies) + exog = exog - np.dot(dummies.T, exog_mean) + fefit = GLS(endog, exog[:,-self._cons_index]).fit() +#TODO: might fail with one regressor + return fefit + + + + +class SURPanel(PanelModel): + pass + +class SEMPanel(PanelModel): + pass + +class DynamicPanel(PanelModel): + pass + +if __name__ == "__main__": + import pandas + from pandas import Panel + import statsmodels.api as sm + import numpy.lib.recfunctions as nprf + + data = sm.datasets.grunfeld.load() + # Baltagi doesn't include American Steel + endog = data.endog[:-20] + fullexog = data.exog[:-20] +# fullexog.sort(order=['firm','year']) + panel_arr = nprf.append_fields(fullexog, 'investment', endog, float, + usemask=False) + + panel_df = pandas.DataFrame(panel_arr) + panel_panda = panel_df.set_index(['year', 'firm']).to_panel() + + + # the most cumbersome way of doing it as far as preprocessing by hand + exog = fullexog[['value','capital']].view(float).reshape(-1,2) + exog = sm.add_constant(exog, prepend=False) + panel = group(fullexog['firm']) + year = fullexog['year'] + panel_mod = PanelModel(endog, exog, panel, year, xtnames=['firm','year'], + equation='invest value capital') +# note that equation doesn't actually do anything but name the variables + panel_ols = panel_mod.fit(model='pooled') + + panel_be = panel_mod.fit(model='between', effects='oneway') + panel_fe = panel_mod.fit(model='fixed', effects='oneway') + + panel_bet = panel_mod.fit(model='between', effects='time') + panel_fet = panel_mod.fit(model='fixed', effects='time') + + panel_fe2 = panel_mod.fit(model='fixed', effects='twoways') + + +#see also Baltagi (3rd edt) 3.3 THE RANDOM EFFECTS MODEL p.35 +#for explicit formulas for spectral decomposition +#but this works also for unbalanced panel +# +#I also just saw: 9.4.2 The Random Effects Model p.176 which is +#partially almost the same as I did +# +#this needs to use sparse matrices for larger datasets +# +#""" +# +#import numpy as np +# + + groups = np.array([0,0,0,1,1,2,2,2]) + nobs = groups.shape[0] + groupuniq = np.unique(groups) + periods = np.array([0,1,2,1,2,0,1,2]) + perioduniq = np.unique(periods) + + dummygr = (groups[:,None] == groupuniq).astype(float) + dummype = (periods[:,None] == perioduniq).astype(float) + + sigma = 1. + sigmagr = np.sqrt(2.) + sigmape = np.sqrt(3.) + + #dummyall = np.c_[sigma*np.ones((nobs,1)), sigmagr*dummygr, + # sigmape*dummype] + #exclude constant ? + dummyall = np.c_[sigmagr*dummygr, sigmape*dummype] + # omega is the error variance-covariance matrix for the stacked + # observations + omega = np.dot(dummyall, dummyall.T) + sigma* np.eye(nobs) + print(omega) + print(np.linalg.cholesky(omega)) + ev, evec = np.linalg.eigh(omega) #eig doesn't work + omegainv = np.dot(evec, (1/ev * evec).T) + omegainv2 = np.linalg.inv(omega) + omegacomp = np.dot(evec, (ev * evec).T) + print(np.max(np.abs(omegacomp - omega))) + #check + #print(np.dot(omegainv,omega) + print(np.max(np.abs(np.dot(omegainv,omega) - np.eye(nobs)))) + omegainvhalf = evec/np.sqrt(ev) #not sure whether ev shouldn't be column + print(np.max(np.abs(np.dot(omegainvhalf,omegainvhalf.T) - omegainv))) + + # now we can use omegainvhalf in GLS (instead of the cholesky) + + + + + + + + + sigmas2 = np.array([sigmagr, sigmape, sigma]) + groups2 = np.column_stack((groups, periods)) + omega_, omegainv_, omegainvhalf_ = repanel_cov(groups2, sigmas2) + print(np.max(np.abs(omega_ - omega))) + print(np.max(np.abs(omegainv_ - omegainv))) + print(np.max(np.abs(omegainvhalf_ - omegainvhalf))) + + # notation Baltagi (3rd) section 9.4.1 (Fixed Effects Model) + Pgr = reduce(np.dot,[dummygr, + np.linalg.inv(np.dot(dummygr.T, dummygr)),dummygr.T]) + Qgr = np.eye(nobs) - Pgr + # within group effect: np.dot(Qgr, groups) + # but this is not memory efficient, compared to groupstats + print(np.max(np.abs(np.dot(Qgr, groups)))) diff --git a/statsmodels/sandbox/panel/random_panel.py b/statsmodels/sandbox/panel/random_panel.py new file mode 100644 index 0000000..e210188 --- /dev/null +++ b/statsmodels/sandbox/panel/random_panel.py @@ -0,0 +1,157 @@ +# -*- coding: utf-8 -*- +"""Generate a random process with panel structure + +Created on Sat Dec 17 22:15:27 2011 + +Author: Josef Perktold + + +Notes +----- +* written with unbalanced panels in mind, but not flexible enough yet +* need more shortcuts and options for balanced panel +* need to add random intercept or coefficients +* only one-way (repeated measures) so far + +""" + +import numpy as np +from . import correlation_structures as cs + + +class PanelSample(object): + '''data generating process for panel with within correlation + + allows various within correlation structures, but no random intercept yet + + Parameters + ---------- + nobs : int + total number of observations + k_vars : int + number of explanatory variables to create in exog, including constant + n_groups int + number of groups in balanced sample + exog : None or ndarray + default is None, in which case a exog is created + within : bool + If True (default), then the exog vary within a group. If False, then + only variation across groups is used. + TODO: this option needs more work + corr_structure : ndarray or ?? + Default is np.eye. + corr_args : tuple + arguments for the corr_structure + scale : float + scale of noise, standard deviation of normal distribution + seed : None or int + If seed is given, then this is used to create the random numbers for + the sample. + + Notes + ----- + The behavior for panel robust covariance estimators seems to differ by + a large amount by whether exog have mostly within group or across group + variation. I do not understand why this should be the case from the theory, + and this would warrant more investigation. + + This is just used in one example so far and needs more usage to see what + will be useful to add. + + ''' + + def __init__(self, nobs, k_vars, n_groups, exog=None, within=True, + corr_structure=np.eye, corr_args=(), scale=1, seed=None): + + + nobs_i = nobs//n_groups + nobs = nobs_i * n_groups #make balanced + self.nobs = nobs + self.nobs_i = nobs_i + self.n_groups = n_groups + self.k_vars = k_vars + self.corr_structure = corr_structure + self.groups = np.repeat(np.arange(n_groups), nobs_i) + + self.group_indices = np.arange(n_groups+1) * nobs_i #check +1 + + if exog is None: + if within: + #t = np.tile(np.linspace(-1,1,nobs_i), n_groups) + t = np.tile(np.linspace(0, 2, nobs_i), n_groups) + #rs2 = np.random.RandomState(9876) + #t = 1 + 0.3 * rs2.randn(nobs_i * n_groups) + #mix within and across variation + #t += np.repeat(np.linspace(-1,1,nobs_i), n_groups) + else: + #no within group variation, + t = np.repeat(np.linspace(-1,1,nobs_i), n_groups) + + exog = t[:,None]**np.arange(k_vars) + + self.exog = exog + #self.y_true = exog.sum(1) #all coefficients equal 1, + #moved to make random coefficients + #initialize + self.y_true = None + self.beta = None + + if seed is None: + seed = np.random.randint(0, 999999) + + self.seed = seed + self.random_state = np.random.RandomState(seed) + + #this makes overwriting difficult, move to method? + self.std = scale * np.ones(nobs_i) + corr = self.corr_structure(nobs_i, *corr_args) + self.cov = cs.corr2cov(corr, self.std) + self.group_means = np.zeros(n_groups) + + + def get_y_true(self): + if self.beta is None: + self.y_true = self.exog.sum(1) + else: + self.y_true = np.dot(self.exog, self.beta) + + + def generate_panel(self): + ''' + generate endog for a random panel dataset with within correlation + + ''' + + random = self.random_state + + if self.y_true is None: + self.get_y_true() + + nobs_i = self.nobs_i + n_groups = self.n_groups + + use_balanced = True + if use_balanced: #much faster for balanced case + noise = self.random_state.multivariate_normal(np.zeros(nobs_i), + self.cov, + size=n_groups).ravel() + #need to add self.group_means + noise += np.repeat(self.group_means, nobs_i) + else: + noise = np.empty(self.nobs, np.float64) + noise.fill(np.nan) + for ii in range(self.n_groups): + #print ii, + idx, idxupp = self.group_indices[ii:ii+2] + #print idx, idxupp + mean_i = self.group_means[ii] + noise[idx:idxupp] = self.random_state.multivariate_normal( + mean_i * np.ones(self.nobs_i), self.cov) + + endog = self.y_true + noise + return endog + + +if __name__ == '__main__': + pass + diff --git a/statsmodels/sandbox/panel/sandwich_covariance.py b/statsmodels/sandbox/panel/sandwich_covariance.py new file mode 100644 index 0000000..05d28c0 --- /dev/null +++ b/statsmodels/sandbox/panel/sandwich_covariance.py @@ -0,0 +1,15 @@ +'''temporary compatibility module + +TODO: remove in 0.5.0 +''' + +from statsmodels.stats.sandwich_covariance import * +#from statsmodels.stats.moment_helpers import se_cov + +#not in __all__ + +def cov_hac_simple(results, nlags=None, weights_func=weights_bartlett, + use_correction=True): + c = cov_hac(results, nlags=nlags, weights_func=weights_func, + use_correction=use_correction) + return c, se_cov(c) diff --git a/statsmodels/sandbox/panel/sandwich_covariance_generic.py b/statsmodels/sandbox/panel/sandwich_covariance_generic.py new file mode 100644 index 0000000..d3f0f70 --- /dev/null +++ b/statsmodels/sandbox/panel/sandwich_covariance_generic.py @@ -0,0 +1,124 @@ +# -*- coding: utf-8 -*- +"""covariance with (nobs,nobs) loop and general kernel + +This is a general implementation that is not efficient for any special cases. +kernel is currently only for one continuous variable and any number of +categorical groups. + +No spatial example, continuous is interpreted as time + +Created on Wed Nov 30 08:20:44 2011 + +Author: Josef Perktold +License: BSD-3 + +""" +from statsmodels.compat.python import range +import numpy as np + +def kernel(d1, d2, r=None, weights=None): + '''general product kernel + + hardcoded split for the example: + cat1 is continuous (time), other categories are discrete + + weights is e.g. Bartlett for cat1 + r is (0,1) indicator vector for boolean weights 1{d1_i == d2_i} + + returns boolean if no continuous weights are used + ''' + + diff = d1 - d2 + if (weights is None) or (r[0] == 0): + #time is irrelevant or treated as categorical + return np.all((r * diff) == 0) #return bool + else: + #time uses continuous kernel, all other categorical + return weights[diff] * np.all((r[1:] * diff[1:]) == 0) + + +def aggregate_cov(x, d, r=None, weights=None): + '''sum of outer procuct over groups and time selected by r + + This is for a generic reference implementation, it uses a nobs-nobs double + loop. + + Parameters + ---------- + x : ndarray, (nobs,) or (nobs, k_vars) + data, for robust standard error calculation, this is array of x_i * u_i + d : ndarray, (nobs, n_groups) + integer group labels, each column contains group (or time) indices + r : ndarray, (n_groups,) + indicator for which groups to include. If r[i] is zero, then + this group is ignored. If r[i] is not zero, then the cluster robust + standard errors include this group. + weights : ndarray + weights if the first group dimension uses a HAC kernel + + Returns + ------- + cov : ndarray (k_vars, k_vars) or scalar + covariance matrix aggregates over group kernels + count : int + number of terms added in sum, mainly returned for cross-checking + + Notes + ----- + This uses `kernel` to calculate the weighted distance between two + observations. + + ''' + + nobs = x.shape[0] #either 1d or 2d with obs in rows + #next is not needed yet +# if x.ndim == 2: +# kvars = x.shape[1] +# else: +# kvars = 1 + + count = 0 #count non-zero pairs for cross checking, not needed + res = 0 * np.outer(x[0], x[0]) #get output shape + + for ii in range(nobs): + for jj in range(nobs): + w = kernel(d[ii], d[jj], r=r, weights=weights) + if w: #true or non-zero + res += w * np.outer(x[0], x[0]) + count *= 1 + + return res, count + +def weights_bartlett(nlags): + #with lag zero, nlags is the highest lag included + return 1 - np.arange(nlags+1)/(nlags+1.) + +#------- examples, cases: hardcoded for d is time and two categorical groups +def S_all_hac(x, d, nlags=1): + '''HAC independent of categorical group membership + ''' + r = np.zeros(d.shape[1]) + r[0] = 1 + weights = weights_bartlett(nlags) + return aggregate_cov(x, d, r=r, weights=weights) + +def S_within_hac(x, d, nlags=1, groupidx=1): + '''HAC for observations within a categorical group + ''' + r = np.zeros(d.shape[1]) + r[0] = 1 + r[groupidx] = 1 + weights = weights_bartlett(nlags) + return aggregate_cov(x, d, r=r, weights=weights) + +def S_cluster(x, d, groupidx=[1]): + r = np.zeros(d.shape[1]) + r[groupidx] = 1 + return aggregate_cov(x, d, r=r, weights=None) + +def S_white(x, d): + '''simple white heteroscedasticity robust covariance + note: calculating this way is very inefficient, just for cross-checking + ''' + r = np.ones(d.shape[1]) #only points on diagonal + return aggregate_cov(x, d, r=r, weights=None) diff --git a/statsmodels/sandbox/panel/tests/__init__.py b/statsmodels/sandbox/panel/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/sandbox/panel/tests/test_random_panel.py b/statsmodels/sandbox/panel/tests/test_random_panel.py new file mode 100644 index 0000000..c0342bb --- /dev/null +++ b/statsmodels/sandbox/panel/tests/test_random_panel.py @@ -0,0 +1,146 @@ +# -*- coding: utf-8 -*- +"""Test for short_panel and panel sandwich + +Created on Fri May 18 13:05:47 2012 + +Author: Josef Perktold + +moved example from main of random_panel +""" + +import numpy as np +from numpy.testing import assert_almost_equal +import numpy.testing as npt +import statsmodels.tools.eval_measures as em +from statsmodels.stats.moment_helpers import cov2corr, se_cov +from statsmodels.regression.linear_model import OLS + +from statsmodels.sandbox.panel.panel_short import ShortPanelGLS, ShortPanelGLS2 +from statsmodels.sandbox.panel.random_panel import PanelSample +import statsmodels.sandbox.panel.correlation_structures as cs +import statsmodels.stats.sandwich_covariance as sw + +def assert_maxabs(actual, expected, value): + npt.assert_array_less(em.maxabs(actual, expected, None), value) + + +def test_short_panel(): + #this checks that some basic statistical properties are satisfied by the + #results, not verified results against other packages + #Note: the ranking of robust bse is different if within=True + #I added within keyword to PanelSample to be able to use old example + #if within is False, then there is no within group variation in exog. + nobs = 100 + nobs_i = 5 + n_groups = nobs // nobs_i + k_vars = 3 + + dgp = PanelSample(nobs, k_vars, n_groups, corr_structure=cs.corr_arma, + corr_args=([1], [1., -0.9],), seed=377769, within=False) + #print 'seed', dgp.seed + y = dgp.generate_panel() + noise = y - dgp.y_true + + #test dgp + + dgp_cov_e = np.array( + [[ 1. , 0.9 , 0.81 , 0.729 , 0.6561], + [ 0.9 , 1. , 0.9 , 0.81 , 0.729 ], + [ 0.81 , 0.9 , 1. , 0.9 , 0.81 ], + [ 0.729 , 0.81 , 0.9 , 1. , 0.9 ], + [ 0.6561, 0.729 , 0.81 , 0.9 , 1. ]]) + + npt.assert_almost_equal(dgp.cov, dgp_cov_e, 13) + + cov_noise = np.cov(noise.reshape(-1,n_groups, order='F')) + corr_noise = cov2corr(cov_noise) + npt.assert_almost_equal(corr_noise, dgp.cov, 1) + + #estimate panel model + mod2 = ShortPanelGLS(y, dgp.exog, dgp.groups) + res2 = mod2.fit_iterative(2) + + + #whitened residual should be uncorrelated + corr_wresid = np.corrcoef(res2.wresid.reshape(-1,n_groups, order='F')) + assert_maxabs(corr_wresid, np.eye(5), 0.1) + + #residual should have same correlation as dgp + corr_resid = np.corrcoef(res2.resid.reshape(-1,n_groups, order='F')) + assert_maxabs(corr_resid, dgp.cov, 0.1) + + assert_almost_equal(res2.resid.std(),1, decimal=0) + + y_pred = np.dot(mod2.exog, res2.params) + assert_almost_equal(res2.fittedvalues, y_pred, 13) + + + #compare with OLS + + res2_ols = mod2._fit_ols() + npt.assert_(mod2.res_pooled is res2_ols) + + res2_ols = mod2.res_pooled #TODO: BUG: requires call to _fit_ols + + #fitting once is the same as OLS + #note: I need to create new instance, otherwise it continuous fitting + mod1 = ShortPanelGLS(y, dgp.exog, dgp.groups) + res1 = mod1.fit_iterative(1) + + assert_almost_equal(res1.params, res2_ols.params, decimal=13) + assert_almost_equal(res1.bse, res2_ols.bse, decimal=13) + + res_ols = OLS(y, dgp.exog).fit() + assert_almost_equal(res1.params, res_ols.params, decimal=13) + assert_almost_equal(res1.bse, res_ols.bse, decimal=13) + + + #compare with old version + mod_old = ShortPanelGLS2(y, dgp.exog, dgp.groups) + res_old = mod_old.fit() + + assert_almost_equal(res2.params, res_old.params, decimal=13) + assert_almost_equal(res2.bse, res_old.bse, decimal=13) + + + mod5 = ShortPanelGLS(y, dgp.exog, dgp.groups) + res5 = mod5.fit_iterative(5) + + #make sure it's different + #npt.assert_array_less(0.009, em.maxabs(res5.bse, res2.bse)) + + cov_clu = sw.cov_cluster(mod2.res_pooled, dgp.groups.astype(int)) + clubse = se_cov(cov_clu) + pnwbse = se_cov(sw.cov_nw_panel(mod2.res_pooled, 4, mod2.group.groupidx)) + bser = np.vstack((res2.bse, res5.bse, clubse, pnwbse)) + bser_mean = np.mean(bser, axis=0) + + #cov_cluster close to robust and PanelGLS + #is up to 24% larger than mean of bser + #npt.assert_array_less(0, clubse / bser_mean - 1) + npt.assert_array_less(clubse / bser_mean - 1, 0.25) + #cov_nw_panel close to robust and PanelGLS + npt.assert_array_less(pnwbse / bser_mean - 1, 0.1) + #OLS underestimates bse, robust at least 60% larger + npt.assert_array_less(0.6, bser_mean / res_ols.bse - 1) + + #cov_hac_panel with uniform_kernel is the same as cov_cluster for balanced + #panel with full length kernel + #I fixe default correction to be equal + cov_uni = sw.cov_nw_panel(mod2.res_pooled, 4, mod2.group.groupidx, + weights_func=sw.weights_uniform, + use_correction='c') + assert_almost_equal(cov_uni, cov_clu, decimal=13) + + #without correction + cov_clu2 = sw.cov_cluster(mod2.res_pooled, dgp.groups.astype(int), + use_correction=False) + cov_uni2 = sw.cov_nw_panel(mod2.res_pooled, 4, mod2.group.groupidx, + weights_func=sw.weights_uniform, + use_correction=False) + assert_almost_equal(cov_uni2, cov_clu2, decimal=13) + + cov_white = sw.cov_white_simple(mod2.res_pooled) + cov_pnw0 = sw.cov_nw_panel(mod2.res_pooled, 0, mod2.group.groupidx, + use_correction='hac') + assert_almost_equal(cov_pnw0, cov_white, decimal=13) diff --git a/statsmodels/sandbox/pca.py b/statsmodels/sandbox/pca.py new file mode 100644 index 0000000..bfae79c --- /dev/null +++ b/statsmodels/sandbox/pca.py @@ -0,0 +1,227 @@ +#Copyright (c) 2008 Erik Tollerud (etolleru@uci.edu) + +from statsmodels.compat.python import zip +import numpy as np +from math import pi + +class Pca(object): + """ + A basic class for Principal Component Analysis (PCA). + + p is the number of dimensions, while N is the number of data points + """ + _colors=('r','g','b','c','y','m','k') #defaults + + def __calc(self): + A = self.A + M=A-np.mean(A,axis=0) + N=M/np.std(M,axis=0) + + self.M = M + self.N = N + self._eig = None + + def __init__(self,data,names=None): + """ + p X N matrix input + """ + A = np.array(data).T + n,p = A.shape + self.n,self.p = n,p + if p > n: + from warnings import warn + warn('p > n - intentional?', RuntimeWarning) + self.A = A + self._origA=A.copy() + + self.__calc() + + self._colors= np.tile(self._colors,int((p-1)/len(self._colors))+1)[:p] + if names is not None and len(names) != p: + raise ValueError('names must match data dimension') + self.names = None if names is None else tuple([str(n) for n in names]) + + + def getCovarianceMatrix(self): + """ + returns the covariance matrix for the dataset + """ + return np.cov(self.N.T) + + def getEigensystem(self): + """ + returns a tuple of (eigenvalues,eigenvectors) for the data set. + """ + if self._eig is None: + res = np.linalg.eig(self.getCovarianceMatrix()) + sorti=np.argsort(res[0])[::-1] + res=(res[0][sorti],res[1][:,sorti]) + self._eig=res + return self._eig + + def getEigenvalues(self): + return self.getEigensystem()[0] + + def getEigenvectors(self): + return self.getEigensystem()[1] + + def getEnergies(self): + """ + "energies" are just normalized eigenvectors + """ + v=self.getEigenvalues() + return v/np.sum(v) + + def plot2d(self,ix=0,iy=1,clf=True): + """ + Generates a 2-dimensional plot of the data set and principle components + using matplotlib. + + ix specifies which p-dimension to put on the x-axis of the plot + and iy specifies which to put on the y-axis (0-indexed) + """ + import matplotlib.pyplot as plt + x,y=self.N[:,ix],self.N[:,iy] + if clf: + plt.clf() + plt.scatter(x,y) + vals,evs=self.getEigensystem() + #evx,evy=evs[:,ix],evs[:,iy] + xl,xu=plt.xlim() + yl,yu=plt.ylim() + dx,dy=(xu-xl),(yu-yl) + for val,vec,c in zip(vals,evs.T,self._colors): + plt.arrow(0,0,val*vec[ix],val*vec[iy],head_width=0.05*(dx*dy/4)**0.5,fc=c,ec=c) + #plt.arrow(0,0,vals[ix]*evs[ix,ix],vals[ix]*evs[iy,ix],head_width=0.05*(dx*dy/4)**0.5,fc='g',ec='g') + #plt.arrow(0,0,vals[iy]*evs[ix,iy],vals[iy]*evs[iy,iy],head_width=0.05*(dx*dy/4)**0.5,fc='r',ec='r') + if self.names is not None: + plt.xlabel('$'+self.names[ix]+'/\\sigma$') + plt.ylabel('$'+self.names[iy]+'/\\sigma$') + + def plot3d(self,ix=0,iy=1,iz=2,clf=True): + """ + Generates a 3-dimensional plot of the data set and principle components + using mayavi. + + ix, iy, and iz specify which of the input p-dimensions to place on each of + the x,y,z axes, respectively (0-indexed). + """ + import enthought.mayavi.mlab as M + if clf: + M.clf() + z3=np.zeros(3) + v=(self.getEigenvectors()*self.getEigenvalues()) + M.quiver3d(z3,z3,z3,v[ix],v[iy],v[iz],scale_factor=5) + M.points3d(self.N[:,ix],self.N[:,iy],self.N[:,iz],scale_factor=0.3) + if self.names: + M.axes(xlabel=self.names[ix]+'/sigma',ylabel=self.names[iy]+'/sigma',zlabel=self.names[iz]+'/sigma') + else: + M.axes() + + def sigclip(self,sigs): + """ + clips out all data points that are more than a certain number + of standard deviations from the mean. + + sigs can be either a single value or a length-p sequence that + specifies the number of standard deviations along each of the + p dimensions. + """ + if np.isscalar(sigs): + sigs=sigs*np.ones(self.N.shape[1]) + sigs = sigs*np.std(self.N,axis=1) + n = self.N.shape[0] + m = np.all(np.abs(self.N) < sigs,axis=1) + self.A=self.A[m] + self.__calc() + return n-sum(m) + + def reset(self): + self.A = self._origA.copy() + self.__calc() + + + def project(self,vals=None,enthresh=None,nPCs=None,cumen=None): + """ + projects the normalized values onto the components + + enthresh, nPCs, and cumen determine how many PCs to use + + if vals is None, the normalized data vectors are the values to project. + Otherwise, it should be convertable to a p x N array + + returns n,p(>threshold) dimension array + """ + nonnones = sum([e != None for e in (enthresh,nPCs,cumen)]) + if nonnones == 0: + m = slice(None) + elif nonnones > 1: + raise ValueError("can't specify more than one threshold") + else: + if enthresh is not None: + m = self.energies() > enthresh + elif nPCs is not None: + m = slice(None,nPCs) + elif cumen is not None: + m = np.cumsum(self.energies()) < cumen + else: + raise RuntimeError('Should be unreachable') + + if vals is None: + vals = self.N.T + else: + vals = np.array(vals,copy=False) + if self.N.T.shape[0] != vals.shape[0]: + raise ValueError("shape for vals doesn't match") + proj = np.matrix(self.getEigenvectors()).T*vals + return proj[m].T + + def deproject(self,A,normed=True): + """ + input is an n X q array, where q <= p + + output is p X n + """ + A=np.atleast_2d(A) + n,q = A.shape + p = self.A.shape[1] + if q > p : + raise ValueError("q > p") + + evinv=np.linalg.inv(np.matrix(self.getEigenvectors()).T) + + zs = np.zeros((n,p)) + zs[:,:q]=A + + proj = evinv*zs.T + + if normed: + return np.array(proj.T).T + else: + mns=np.mean(self.A,axis=0) + sds=np.std(self.M,axis=0) + return (np.array(proj.T)*sds+mns).T + + def subtractPC(self,pc,vals=None): + """ + pc can be a scalar or any sequence of pc indecies + + if vals is None, the source data is self.A, else whatever is in vals + (which must be p x m) + """ + if vals is None: + vals = self.A + else: + vals = vals.T + if vals.shape[1]!= self.A.shape[1]: + raise ValueError("vals don't have the correct number of components") + + pcs=self.project() + zpcs=np.zeros_like(pcs) + zpcs[:,pc]=pcs[:,pc] + upc=self.deproject(zpcs,False) + + A = vals.T-upc + B = A.T*np.std(self.M,axis=0) + return B+np.mean(self.A,axis=0) + diff --git a/statsmodels/sandbox/predict_functional.py b/statsmodels/sandbox/predict_functional.py new file mode 100644 index 0000000..86cc171 --- /dev/null +++ b/statsmodels/sandbox/predict_functional.py @@ -0,0 +1,441 @@ +import pandas as pd +import patsy +import numpy as np +import warnings + +from statsmodels.tools.sm_exceptions import ValueWarning + +""" +A predict-like function that constructs means and pointwise or +simultaneous confidence bands for the function f(x) = E[Y | X*=x, +X1=x1, ...], where X* is the focus variable and X1, X2, ... are +non-focus variables. This is especially useful when conducting a +functional regression in which the role of x is modeled with b-splines +or other basis functions. +""" + +_predict_functional_doc =\ + """ + Predictions and contrasts of a fitted model as a function of a given covariate. + + The value of the focus variable varies along a sequence of its + quantiles, calculated from the data used to fit the model. The + other variables are held constant either at given values, or at + values obtained by applying given summary functions to the data + used to fit the model. Optionally, a second specification of the + non-focus variables is provided and the contrast between the two + specifications is returned. + + Parameters + ---------- + result : statsmodels result object + A results object for the fitted model. + focus_var : string + The name of the 'focus variable'. + summaries : dict-like + A map from names of non-focus variables to summary functions. + Each summary function is applied to the data used to fit the + model, to obtain a value at which the variable is held fixed. + values : dict-like + Values at which a given non-focus variable is held fixed. + summaries2 : dict-like + A second set of summary functions used to define a contrast. + values2 : dict-like + A second set of fixed values used to define a contrast. + alpha : float + `1 - alpha` is the coverage probability. + ci_method : string + The method for constructing the confidence band, one of + 'pointwise', 'scheffe', and 'simultaneous'. + num_points : integer + The number of equally-spaced quantile points where the + prediction is made. + exog : array-like + Explicitly provide points to cover with the confidence band. + exog2 : array-like + Explicitly provide points to contrast to `exog` in a functional + confidence band. + kwargs : + Arguments passed to the `predict` method. + + Returns + ------- + pred : array-like + The predicted mean values. + cb : array-like + An array with two columns, containing respectively the lower + and upper limits of a confidence band. + fvals : array-like + The values of the focus variable at which the prediction is + made. + + Notes + ----- + All variables in the model except for the focus variable should be + included as a key in either `summaries` or `values` (unless `exog` + is provided). + + If `summaries2` and `values2` are not provided, the returned value + contains predicted conditional means for the outcome as the focus + variable varies, with the other variables fixed as specified. + + If `summaries2` and/or `values2` is provided, two sets of + predicted conditional means are calculated, and the returned value + is the contrast between them. + + If `exog` is provided, then the rows should contain a sequence of + values approximating a continuous path through the domain of the + covariates. For example, if Z(s) is the covariate expressed as a + function of s, then the rows of exog may approximate Z(g(s)) for + some continuous function g. If `exog` is provided then neither of + the summaries or values arguments should be provided. If `exog2` + is also provided, then the returned value is a contrast between + the functionas defined by `exog` and `exog2`. + + Examples + -------- + Fit a model using a formula in which the predictors are age + (modeled with splines), ethnicity (which is categorical), gender, + and income. Then we obtain the fitted mean values as a function + of age for females with mean income and the most common + ethnicity. + + >>> model = sm.OLS.from_formula('y ~ bs(age, df=4) + C(ethnicity) + gender + income', data) + >>> result = model.fit() + >>> mode = lambda x : x.value_counts().argmax() + >>> summaries = {'income': np.mean, ethnicity=mode} + >>> values = {'gender': 'female'} + >>> pr, cb, x = predict_functional(result, 'age', summaries, values) + + Fit a model using arrays. Plot the means as a function of x3, + holding x1 fixed at its mean value in the data used to fit the + model, and holding x2 fixed at 1. + + >>> model = sm.OLS(y ,x) + >>> result = model.fit() + >>> summaries = {'x1': np.mean} + >>> values = {'x2': 1} + >>> pr, cb, x = predict_functional(result, 'x3', summaries, values) + + Fit a model usng a formula and construct a contrast comparing the + female and male predicted mean functions. + + >>> model = sm.OLS.from_formula('y ~ bs(age, df=4) + gender', data) + >>> result = model.fit() + >>> values = {'gender': 'female'} + >>> values2 = {'gender': 'male'} + >>> pr, cb, x = predict_functional(result, 'age', values=values, values2=values2) + """ + + +def _make_exog_from_formula(result, focus_var, summaries, values, num_points): + """ + Create dataframes for exploring a fitted model as a function of one variable. + + This works for models fit with a formula. + + Returns + ------- + dexog : data frame + A data frame in which the focus variable varies and the other variables + are fixed at specified or computed values. + fexog : data frame + The data frame `dexog` processed through the model formula. + """ + + model = result.model + exog = model.data.frame + + if summaries is None: + summaries = {} + if values is None: + values = {} + + if exog[focus_var].dtype is np.dtype('O'): + raise ValueError('focus variable may not have object type') + + colnames = list(summaries.keys()) + list(values.keys()) + [focus_var] + dtypes = [exog[x].dtype for x in colnames] + + # Check for variables whose values are not set either through + # `values` or `summaries`. Since the model data frame can contain + # extra variables not referenced in the formula RHS, this may not + # be a problem, so just warn. There is no obvious way to extract + # from a formula all the variable names that it references. + varl = set(exog.columns.tolist()) - set([model.endog_names]) + unmatched = varl - set(colnames) + unmatched = list(unmatched) + if len(unmatched) > 0: + warnings.warn("%s in data frame but not in summaries or values." + % ", ".join(["'%s'" % x for x in unmatched]), + ValueWarning) + + # Initialize at zero so each column can be converted to any dtype. + ix = range(num_points) + fexog = pd.DataFrame(index=ix, columns=colnames) + for d, x in zip(dtypes, colnames): + fexog[x] = pd.Series(index=ix, dtype=d) + + # The values of the 'focus variable' are a sequence of percentiles + pctls = np.linspace(0, 100, num_points).tolist() + fvals = np.percentile(exog[focus_var], pctls) + fvals = np.asarray(fvals) + fexog.loc[:, focus_var] = fvals + + # The values of the other variables may be given by summary functions... + for ky in summaries.keys(): + fexog.loc[:, ky] = summaries[ky](exog.loc[:, ky]) + + # or they may be provided as given values. + for ky in values.keys(): + fexog.loc[:, ky] = values[ky] + + dexog = patsy.dmatrix(model.data.design_info.builder, fexog, return_type='dataframe') + return dexog, fexog, fvals + + +def _make_exog_from_arrays(result, focus_var, summaries, values, num_points): + """ + Create dataframes for exploring a fitted model as a function of one variable. + + This works for models fit without a formula. + + Returns + ------- + exog : data frame + A data frame in which the focus variable varies and the other variables + are fixed at specified or computed values. + """ + + model = result.model + model_exog = model.exog + exog_names = model.exog_names + + if summaries is None: + summaries = {} + if values is None: + values = {} + + exog = np.zeros((num_points, model_exog.shape[1])) + + # Check for variables whose values are not set either through + # `values` or `summaries`. + colnames = list(values.keys()) + list(summaries.keys()) + [focus_var] + unmatched = set(exog_names) - set(colnames) + unmatched = list(unmatched) + if len(unmatched) > 0: + warnings.warn("%s in model but not in `summaries` or `values`." + % ", ".join(["'%s'" % x for x in unmatched]), + ValueWarning) + + # The values of the 'focus variable' are a sequence of percentiles + pctls = np.linspace(0, 100, num_points).tolist() + ix = exog_names.index(focus_var) + fvals = np.percentile(model_exog[:, ix], pctls) + exog[:, ix] = fvals + + # The values of the other variables may be given by summary functions... + for ky in summaries.keys(): + ix = exog_names.index(ky) + exog[:, ix] = summaries[ky](model_exog[:, ix]) + + # or they may be provided as given values. + for ky in values.keys(): + ix = exog_names.index(ky) + exog[:, ix] = values[ky] + + return exog, fvals + + +def _make_exog(result, focus_var, summaries, values, num_points): + + # Branch depending on whether the model was fit with a formula. + if hasattr(result.model.data, "frame"): + dexog, fexog, fvals = _make_exog_from_formula(result, focus_var, + summaries, values, num_points) + else: + exog, fvals = _make_exog_from_arrays(result, focus_var, summaries, + values, num_points) + dexog, fexog = exog, exog + + return dexog, fexog, fvals + + +def _check_args(values, summaries, values2, summaries2): + + if values is None: + values = {} + if values2 is None: + values2 = {} + if summaries is None: + summaries = {} + if summaries2 is None: + summaries2 = {} + + for (s,v) in (summaries, values), (summaries2, values2): + ky = set(v.keys()) & set(s.keys()) + ky = list(ky) + if len(ky) > 0: + raise ValueError("One or more variable names are contained in both `summaries` and `values`:" + + ", ".join(ky)) + + return values, summaries, values2, summaries2 + + +def predict_functional(result, focus_var, summaries=None, values=None, + summaries2=None, values2=None, alpha=0.05, + ci_method="pointwise", linear=True, num_points=10, + exog=None, exog2=None, **kwargs): + # docstring attached below + + if ci_method not in ("pointwise", "scheffe", "simultaneous"): + raise ValueError('confidence band method must be one of `pointwise`, `scheffe`, and `simultaneous`.') + + contrast = (values2 is not None) or (summaries2 is not None) + + if contrast and not linear: + raise ValueError("`linear` must be True for computing contrasts") + + model = result.model + if exog is not None: + + if any(x is not None for x in [summaries, summaries2, values, values2]): + raise ValueError("if `exog` is provided then do not provide `summaries` or `values`") + + fexog = exog + dexog = patsy.dmatrix(model.data.design_info.builder, + fexog, return_type='dataframe') + fvals = exog[focus_var] + + if exog2 is not None: + fexog2 = exog + dexog2 = patsy.dmatrix(model.data.design_info.builder, + fexog2, return_type='dataframe') + fvals2 = fvals + + else: + + values, summaries, values2, summaries2 = _check_args(values, + summaries, values2, summaries2) + + dexog, fexog, fvals = _make_exog(result, focus_var, summaries, values, num_points) + + if len(summaries2) + len(values2) > 0: + dexog2, fexog2, fvals2 = _make_exog(result, focus_var, summaries2, values2, num_points) + + from statsmodels.genmod.generalized_linear_model import GLM + from statsmodels.genmod.generalized_estimating_equations import GEE + if isinstance(result.model, (GLM, GEE)): + kwargs_pred = kwargs.copy() + kwargs_pred.update({"linear": True}) + else: + kwargs_pred = kwargs + + pred = result.predict(exog=fexog, **kwargs_pred) + if contrast: + pred2 = result.predict(exog=fexog2, **kwargs_pred) + pred = pred - pred2 + dexog = dexog - dexog2 + + if ci_method == 'pointwise': + + t_test = result.t_test(dexog) + cb = t_test.conf_int(alpha=alpha) + + elif ci_method == 'scheffe': + + t_test = result.t_test(dexog) + sd = t_test.sd + cb = np.zeros((num_points, 2)) + + # Scheffe's method + from scipy.stats.distributions import f as fdist + df1 = result.model.exog.shape[1] + df2 = result.model.exog.shape[0] - df1 + qf = fdist.cdf(1 - alpha, df1, df2) + fx = sd * np.sqrt(df1 * qf) + cb[:, 0] = pred - fx + cb[:, 1] = pred + fx + + elif ci_method == 'simultaneous': + + sigma, c = _glm_basic_scr(result, dexog, alpha) + cb = np.zeros((dexog.shape[0], 2)) + cb[:, 0] = pred - c*sigma + cb[:, 1] = pred + c*sigma + + if not linear: + # May need to support other models with link-like functions. + link = result.family.link + pred = link.inverse(pred) + cb = link.inverse(cb) + + return pred, cb, fvals + +predict_functional.__doc__ = _predict_functional_doc + +def _glm_basic_scr(result, exog, alpha): + """ + The basic SCR from (Sun et al. Annals of Statistics 2000). + + Computes simultaneous confidence regions (SCR). + + Parameters + ---------- + result : results instance + The fitted GLM results instance + exog : array-like + The exog values spanning the interval + alpha : float + `1 - alpha` is the coverage probability. + + Returns + ------- + An array with two columns, containing the lower and upper + confidence bounds, respectively. + + Notes + ----- + The rows of `exog` should be a sequence of covariate values + obtained by taking one 'free variable' x and varying it over an + interval. The matrix `exog` is thus the basis functions and any + other covariates evaluated as x varies. + """ + + model = result.model + n = model.exog.shape[0] + + # Get the Hessian without recomputing. + cov = result.cov_params() + hess = np.linalg.inv(cov) + + # Proposition 3.1 of Sun et al. + A = hess / n + B = np.linalg.cholesky(A).T # Upper Cholesky triangle + + # The variance and SD of the linear predictor at each row of exog. + sigma2 = (np.dot(exog, cov) * exog).sum(1) + sigma = np.sqrt(sigma2) + + # Calculate kappa_0 (formula 42 from Sun et al) + bz = np.linalg.solve(B.T, exog.T).T + bz /= np.sqrt(n) + bz /= sigma[:, None] + bzd = np.diff(bz, 1, axis=0) + bzdn = (bzd**2).sum(1) + kappa_0 = np.sqrt(bzdn).sum() + + from scipy.stats.distributions import norm + + # The root of this function is the multiplier for the confidence + # band, see Sun et al. equation 35. + def func(c): + return kappa_0 * np.exp(-c**2/2) / np.pi + 2*(1 - norm.cdf(c)) - alpha + + from scipy.optimize import brentq + + c, rslt = brentq(func, 1, 10, full_output=True) + if rslt.converged == False: + raise ValueError("Root finding error in basic SCR") + + return sigma, c diff --git a/statsmodels/sandbox/regression/__init__.py b/statsmodels/sandbox/regression/__init__.py new file mode 100644 index 0000000..a704400 --- /dev/null +++ b/statsmodels/sandbox/regression/__init__.py @@ -0,0 +1,5 @@ + + + +#from anova_nistcertified import anova_oneway, anova_ols +#from predstd import wls_prediction_std diff --git a/statsmodels/sandbox/regression/anova_nistcertified.py b/statsmodels/sandbox/regression/anova_nistcertified.py new file mode 100644 index 0000000..8c617d1 --- /dev/null +++ b/statsmodels/sandbox/regression/anova_nistcertified.py @@ -0,0 +1,105 @@ +'''calculating anova and verifying with NIST test data + +compares my implementations, stats.f_oneway and anova using statsmodels.OLS +''' +from __future__ import print_function +from statsmodels.compat.python import lmap +import os +import numpy as np +from scipy import stats + +filenameli = ['SiRstv.dat', 'SmLs01.dat', 'SmLs02.dat', 'SmLs03.dat', 'AtmWtAg.dat', + 'SmLs04.dat', 'SmLs05.dat', 'SmLs06.dat', 'SmLs07.dat', 'SmLs08.dat', + 'SmLs09.dat'] +##filename = 'SmLs03.dat' #'SiRstv.dat' #'SmLs09.dat'#, 'AtmWtAg.dat' #'SmLs07.dat' + + +##path = __file__ +##print(locals().keys() +###print(path + + +def getnist(filename): + fname = os.path.abspath(os.path.join('./data', filename)) + content = file(fname,'r').read().split('\n') + data = [line.split() for line in content[60:]] + certified = [line.split() for line in content[40:48] if line] + dataf = np.loadtxt(fname, skiprows=60) + y,x = dataf.T + y = y.astype(int) + caty = np.unique(y) + f = float(certified[0][-1]) + R2 = float(certified[2][-1]) + resstd = float(certified[4][-1]) + dfbn = int(certified[0][-4]) + dfwn = int(certified[1][-3]) # dfbn->dfwn is this correct + prob = stats.f.sf(f,dfbn,dfwn) + return y, x, np.array([f, prob, R2, resstd]), certified, caty + + +from .try_catdata import groupsstats_dummy, groupstatsbin + + +def anova_oneway(y, x, seq=0): + # new version to match NIST + # no generalization or checking of arguments, tested only for 1d + yrvs = y[:,np.newaxis] #- min(y) + #subracting mean increases numerical accuracy for NIST test data sets + xrvs = x[:,np.newaxis] - x.mean() #for 1d#- 1e12 trick for 'SmLs09.dat' + + meang, varg, xdevmeangr, countg = groupsstats_dummy(yrvs[:,:1], xrvs[:,:1])#, seq=0) + #the following does not work as replacement + #gcount, gmean , meanarr, withinvar, withinvararr = groupstatsbin(y, x)#, seq=0) + sswn = np.dot(xdevmeangr.T,xdevmeangr) + ssbn = np.dot((meang-xrvs.mean())**2, countg.T) + nobs = yrvs.shape[0] + ncat = meang.shape[1] + dfbn = ncat - 1 + dfwn = nobs - ncat + msb = ssbn/float(dfbn) + msw = sswn/float(dfwn) + f = msb/msw + prob = stats.f.sf(f,dfbn,dfwn) + R2 = (ssbn/(sswn+ssbn)) #R-squared + resstd = np.sqrt(msw) #residual standard deviation + #print(f, prob + def _fix2scalar(z): # return number + if np.shape(z) == (1, 1): return z[0,0] + else: return z + f, prob, R2, resstd = lmap(_fix2scalar, (f, prob, R2, resstd)) + return f, prob, R2, resstd + +import statsmodels.api as sm +from .try_ols_anova import data2dummy + +def anova_ols(y, x): + X = sm.add_constant(data2dummy(x), prepend=False) + res = sm.OLS(y, X).fit() + return res.fvalue, res.f_pvalue, res.rsquared, np.sqrt(res.mse_resid) + + + +if __name__ == '__main__': + print('\n using new ANOVA anova_oneway') + print('f, prob, R2, resstd') + for fn in filenameli: + print(fn) + y, x, cert, certified, caty = getnist(fn) + res = anova_oneway(y, x) + print(np.array(res) - cert) + + print('\n using stats ANOVA f_oneway') + for fn in filenameli: + print(fn) + y, x, cert, certified, caty = getnist(fn) + xlist = [x[y==ii] for ii in caty] + res = stats.f_oneway(*xlist) + print(np.array(res) - cert[:2]) + + print('\n using statsmodels.OLS') + print('f, prob, R2, resstd') + for fn in filenameli[:]: + print(fn) + y, x, cert, certified, caty = getnist(fn) + res = anova_ols(x, y) + print(np.array(res) - cert) diff --git a/statsmodels/sandbox/regression/ar_panel.py b/statsmodels/sandbox/regression/ar_panel.py new file mode 100644 index 0000000..702d03f --- /dev/null +++ b/statsmodels/sandbox/regression/ar_panel.py @@ -0,0 +1,114 @@ +'''Paneldata model with fixed effect (constants) and AR(1) errors + +checking fast evaluation of groupar1filter +quickly written to try out grouparfilter without python loops + +maybe the example has MA(1) not AR(1) errors, I'm not sure and changed this. + +results look good, I'm also differencing the dummy variable (constants) ??? +e.g. nobs = 35 +true 0.6, 10, 20, 30 (alpha, mean_0, mean_1, mean_2) +estimate 0.369453125 [ 10.14646929 19.87135086 30.12706505] + +Currently minimizes ssr but could switch to minimize llf, i.e. conditional MLE. +This should correspond to iterative FGLS, where data are AR(1) transformed +similar to GLSAR ? +Result statistic from GLS return by OLS on transformed data should be +asymptotically correct (check) + +Could be extended to AR(p) errors, but then requires panel with larger T + +''' + + +from __future__ import print_function +import numpy as np +from scipy import optimize + +from statsmodels.regression.linear_model import OLS + + +class PanelAR1(object): + def __init__(self, endog, exog=None, groups=None): + #take this from a super class, no checking is done here + nobs = endog.shape[0] + self.endog = endog + if not exog is None: + self.exog = exog + + self.groups_start = (np.diff(groups)!=0) + self.groups_valid = ~self.groups_start + + def ar1filter(self, xy, alpha): + #print(alpha,) + return (xy[1:] - alpha * xy[:-1])[self.groups_valid] + + def fit_conditional(self, alpha): + y = self.ar1filter(self.endog, alpha) + x = self.ar1filter(self.exog, alpha) + res = OLS(y, x).fit() + return res.ssr #res.llf + + + def fit(self): + alpha0 = 0.1 #startvalue + func = self.fit_conditional + fitres = optimize.fmin(func, alpha0) + + # fit_conditional only returns ssr for now + alpha = fitres[0] + y = self.ar1filter(self.endog, alpha) + x = self.ar1filter(self.exog, alpha) + reso = OLS(y, x).fit() + + return fitres, reso + +if __name__ == '__main__': + + #------------ developement code for groupar1filter and example + groups = np.array([0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2, + 2,2,2,2,2,2,2,2]) + nobs = len(groups) + data0 = np.arange(nobs) + + data = np.arange(1,nobs+1) - 0.5*np.arange(nobs) + 0.1*np.random.randn(nobs) + + y00 = 0.5*np.random.randn(nobs+1) + + # I don't think a trend is handled yet + data = np.arange(nobs) + y00[1:] + 0.2*y00[:-1] + 0.1*np.random.randn(nobs) + #Are these AR(1) or MA(1) errors ??? + data = y00[1:] + 0.6*y00[:-1] #+ 0.1*np.random.randn(nobs) + + group_codes = np.unique(groups) + group_dummy = (groups[:,None] == group_codes).astype(int) + + groups_start = (np.diff(groups)!=0) + groups_valid = (np.diff(groups)==0) #this applies to y with length for AR(1) + #could use np.nonzero for index instead + + y = data + np.dot(group_dummy, np.array([10, 20, 30])) + y0 = data0 + np.dot(group_dummy, np.array([10, 20, 30])) + + print(groups_valid) + print(np.diff(y)[groups_valid]) + + alpha = 1 #test with 1 + print((y0[1:] - alpha*y0[:-1])[groups_valid]) + alpha = 0.2 #test with 1 + print((y0[1:] - alpha*y0[:-1] + 0.001)[groups_valid]) + #this is now AR(1) for each group separately + + + #------------ + + #fitting the example + + exog = np.ones(nobs) + exog = group_dummy + mod = PanelAR1(y, exog, groups=groups) + #mod = PanelAR1(data, exog, groups=groups) #data doesn't contain different means + #print(mod.ar1filter(mod.endog, 1)) + resa, reso = mod.fit() + print(resa[0], reso.params) + diff --git a/statsmodels/sandbox/regression/data/AtmWtAg.dat b/statsmodels/sandbox/regression/data/AtmWtAg.dat new file mode 100644 index 0000000..3053756 --- /dev/null +++ b/statsmodels/sandbox/regression/data/AtmWtAg.dat @@ -0,0 +1,108 @@ +NIST/ITL StRD +Dataset Name: AtmWtAg (AtmWtAg.dat) + + +File Format: ASCII + Certified Values (lines 41 to 47) + Data (lines 61 to 108) + + +Procedure: Analysis of Variance + + +Reference: Powell, L.J., Murphy, T.J. and Gramlich, J.W. (1982). + "The Absolute Isotopic Abundance & Atomic Weight + of a Reference Sample of Silver". + NBS Journal of Research, 87, pp. 9-19. + + +Data: 1 Factor + 2 Treatments + 24 Replicates/Cell + 48 Observations + 7 Constant Leading Digits + Average Level of Difficulty + Observed Data + + +Model: 3 Parameters (mu, tau_1, tau_2) + y_{ij} = mu + tau_i + epsilon_{ij} + + + + + + +Certified Values: + +Source of Sums of Mean +Variation df Squares Squares F Statistic + + +Between Instrument 1 3.63834187500000E-09 3.63834187500000E-09 1.59467335677930E+01 +Within Instrument 46 1.04951729166667E-08 2.28155932971014E-10 + + Certified R-Squared 2.57426544538321E-01 + + Certified Residual + Standard Deviation 1.51048314446410E-05 + + + + + + + + + + + +Data: Instrument AgWt + 1 107.8681568 + 1 107.8681465 + 1 107.8681572 + 1 107.8681785 + 1 107.8681446 + 1 107.8681903 + 1 107.8681526 + 1 107.8681494 + 1 107.8681616 + 1 107.8681587 + 1 107.8681519 + 1 107.8681486 + 1 107.8681419 + 1 107.8681569 + 1 107.8681508 + 1 107.8681672 + 1 107.8681385 + 1 107.8681518 + 1 107.8681662 + 1 107.8681424 + 1 107.8681360 + 1 107.8681333 + 1 107.8681610 + 1 107.8681477 + 2 107.8681079 + 2 107.8681344 + 2 107.8681513 + 2 107.8681197 + 2 107.8681604 + 2 107.8681385 + 2 107.8681642 + 2 107.8681365 + 2 107.8681151 + 2 107.8681082 + 2 107.8681517 + 2 107.8681448 + 2 107.8681198 + 2 107.8681482 + 2 107.8681334 + 2 107.8681609 + 2 107.8681101 + 2 107.8681512 + 2 107.8681469 + 2 107.8681360 + 2 107.8681254 + 2 107.8681261 + 2 107.8681450 + 2 107.8681368 diff --git a/statsmodels/sandbox/regression/data/Longley.dat b/statsmodels/sandbox/regression/data/Longley.dat new file mode 100644 index 0000000..133567c --- /dev/null +++ b/statsmodels/sandbox/regression/data/Longley.dat @@ -0,0 +1,76 @@ +NIST/ITL StRD +Dataset Name: Longley (Longley.dat) + +File Format: ASCII + Certified Values (lines 31 to 51) + Data (lines 61 to 76) + +Procedure: Linear Least Squares Regression + +Reference: Longley, J. W. (1967). + An Appraisal of Least Squares Programs for the + Electronic Computer from the Viewpoint of the User. + Journal of the American Statistical Association, 62, pp. 819-841. + +Data: 1 Response Variable (y) + 6 Predictor Variable (x) + 16 Observations + Higher Level of Difficulty + Observed Data + +Model: Polynomial Class + 7 Parameters (B0,B1,...,B7) + + y = B0 + B1*x1 + B2*x2 + B3*x3 + B4*x4 + B5*x5 + B6*x6 + e + + Certified Regression Statistics + + Standard Deviation + Parameter Estimate of Estimate + + B0 -3482258.63459582 890420.383607373 + B1 15.0618722713733 84.9149257747669 + B2 -0.358191792925910E-01 0.334910077722432E-01 + B3 -2.02022980381683 0.488399681651699 + B4 -1.03322686717359 0.214274163161675 + B5 -0.511041056535807E-01 0.226073200069370 + B6 1829.15146461355 455.478499142212 + + Residual + Standard Deviation 304.854073561965 + + R-Squared 0.995479004577296 + + + Certified Analysis of Variance Table + +Source of Degrees of Sums of Mean +Variation Freedom Squares Squares F Statistic + +Regression 6 184172401.944494 30695400.3240823 330.285339234588 +Residual 9 836424.055505915 92936.0061673238 + + + + + + + + +Data: y x1 x2 x3 x4 x5 x6 + 60323 83.0 234289 2356 1590 107608 1947 + 61122 88.5 259426 2325 1456 108632 1948 + 60171 88.2 258054 3682 1616 109773 1949 + 61187 89.5 284599 3351 1650 110929 1950 + 63221 96.2 328975 2099 3099 112075 1951 + 63639 98.1 346999 1932 3594 113270 1952 + 64989 99.0 365385 1870 3547 115094 1953 + 63761 100.0 363112 3578 3350 116219 1954 + 66019 101.2 397469 2904 3048 117388 1955 + 67857 104.6 419180 2822 2857 118734 1956 + 68169 108.4 442769 2936 2798 120445 1957 + 66513 110.8 444546 4681 2637 121950 1958 + 68655 112.6 482704 3813 2552 123366 1959 + 69564 114.2 502601 3931 2514 125368 1960 + 69331 115.7 518173 4806 2572 127852 1961 + 70551 116.9 554894 4007 2827 130081 1962 diff --git a/statsmodels/sandbox/regression/data/SiRstv.dat b/statsmodels/sandbox/regression/data/SiRstv.dat new file mode 100644 index 0000000..18ea897 --- /dev/null +++ b/statsmodels/sandbox/regression/data/SiRstv.dat @@ -0,0 +1,85 @@ +NIST/ITL StRD +Dataset Name: SiRstv (SiRstv.dat) + + +File Format: ASCII + Certified Values (lines 41 to 47) + Data (lines 61 to 85) + + +Procedure: Analysis of Variance + + +Reference: Ehrstein, James and Croarkin, M. Carroll. + Unpublished NIST dataset. + + +Data: 1 Factor + 5 Treatments + 5 Replicates/Cell + 25 Observations + 3 Constant Leading Digits + Lower Level of Difficulty + Observed Data + + +Model: 6 Parameters (mu,tau_1, ... , tau_5) + y_{ij} = mu + tau_i + epsilon_{ij} + + + + + + + + +Certified Values: + +Source of Sums of Mean +Variation df Squares Squares F Statistic + +Between Instrument 4 5.11462616000000E-02 1.27865654000000E-02 1.18046237440255E+00 +Within Instrument 20 2.16636560000000E-01 1.08318280000000E-02 + + Certified R-Squared 1.90999039051129E-01 + + Certified Residual + Standard Deviation 1.04076068334656E-01 + + + + + + + + + + + + +Data: Instrument Resistance + 1 196.3052 + 1 196.1240 + 1 196.1890 + 1 196.2569 + 1 196.3403 + 2 196.3042 + 2 196.3825 + 2 196.1669 + 2 196.3257 + 2 196.0422 + 3 196.1303 + 3 196.2005 + 3 196.2889 + 3 196.0343 + 3 196.1811 + 4 196.2795 + 4 196.1748 + 4 196.1494 + 4 196.1485 + 4 195.9885 + 5 196.2119 + 5 196.1051 + 5 196.1850 + 5 196.0052 + 5 196.2090 diff --git a/statsmodels/sandbox/regression/data/SmLs01.dat b/statsmodels/sandbox/regression/data/SmLs01.dat new file mode 100644 index 0000000..945b24b --- /dev/null +++ b/statsmodels/sandbox/regression/data/SmLs01.dat @@ -0,0 +1,249 @@ +NIST/ITL StRD +Dataset Name: SmLs01 (SmLs01.dat) + + +File Format: ASCII + Certified Values (lines 41 to 47) + Data (lines 61 to 249) + + +Procedure: Analysis of Variance + + +Reference: Simon, Stephen D. and Lesage, James P. (1989). + "Assessing the Accuracy of ANOVA Calculations in + Statistical Software". + Computational Statistics & Data Analysis, 8, pp. 325-332. + + +Data: 1 Factor + 9 Treatments + 21 Replicates/Cell + 189 Observations + 1 Constant Leading Digit + Lower Level of Difficulty + Generated Data + + +Model: 10 Parameters (mu,tau_1, ... , tau_9) + y_{ij} = mu + tau_i + epsilon_{ij} + + + + + + +Certified Values: + +Source of Sums of Mean +Variation df Squares Squares F Statistic + +Between Treatment 8 1.68000000000000E+00 2.10000000000000E-01 2.10000000000000E+01 +Within Treatment 180 1.80000000000000E+00 1.00000000000000E-02 + + Certified R-Squared 4.82758620689655E-01 + + Certified Residual + Standard Deviation 1.00000000000000E-01 + + + + + + + + + + + + +Data: Treatment Response + 1 1.4 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 2 1.3 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 3 1.5 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 4 1.3 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 5 1.5 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 6 1.3 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 7 1.5 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 8 1.3 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 9 1.5 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 diff --git a/statsmodels/sandbox/regression/data/SmLs02.dat b/statsmodels/sandbox/regression/data/SmLs02.dat new file mode 100644 index 0000000..ee76633 --- /dev/null +++ b/statsmodels/sandbox/regression/data/SmLs02.dat @@ -0,0 +1,1869 @@ +NIST/ITL StRD +Dataset Name: SmLs02 (SmLs02.dat) + + +File Format: ASCII + Certified Values (lines 41 to 47) + Data (lines 61 to 1869) + + +Procedure: Analysis of Variance + + +Reference: Simon, Stephen D. and Lesage, James P. (1989). + "Assessing the Accuracy of ANOVA Calculations in + Statistical Software". + Computational Statistics & Data Analysis, 8, pp. 325-332. + + +Data: 1 Factor + 9 Treatments + 201 Replicates/Cell + 1809 Observations + 1 Constant Leading Digit + Lower Level of Difficulty + Generated Data + + +Model: 10 Parameters (mu,tau_1, ... , tau_9) + y_{ij} = mu + tau_i + epsilon_{ij} + + + + + + +Certified Values: + +Source of Sums of Mean +Variation df Squares Squares F Statistic + +Between Treatment 8 1.60800000000000E+01 2.01000000000000E+00 2.01000000000000E+02 +Within Treatment 1800 1.80000000000000E+01 1.00000000000000E-02 + + Certified R-Squared 4.71830985915493E-01 + + Certified Residual + Standard Deviation 1.00000000000000E-01 + + + + + + + + + + + + +Data: Treatment Response + 1 1.4 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 2 1.3 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 3 1.5 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 4 1.3 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 5 1.5 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 6 1.3 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 7 1.5 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 8 1.3 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 9 1.5 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 diff --git a/statsmodels/sandbox/regression/data/SmLs03.dat b/statsmodels/sandbox/regression/data/SmLs03.dat new file mode 100644 index 0000000..55dfa23 --- /dev/null +++ b/statsmodels/sandbox/regression/data/SmLs03.dat @@ -0,0 +1,18069 @@ +NIST/ITL StRD +Dataset Name: SmLs03 (SmLs03.dat) + + +File Format: ASCII + Certified Values (lines 41 to 47) + Data (lines 61 to 18069) + + +Procedure: Analysis of Variance + + +Reference: Simon, Stephen D. and Lesage, James P. (1989). + "Assessing the Accuracy of ANOVA Calculations in + Statistical Software". + Computational Statistics & Data Analysis, 8, pp. 325-332. + + +Data: 1 Factor + 9 Treatments + 2001 Replicates/Cell + 18009 Observations + 1 Constant Leading Digit + Lower Level of Difficulty + Generated Data + + +Model: 10 Parameters (mu,tau_1, ... , tau_9) + y_{ij} = mu + tau_i + epsilon_{ij} + + + + + + +Certified Values: + +Source of Sums of Mean +Variation df Squares Squares F Statistic + +Between Treatment 8 1.60080000000000E+02 2.00100000000000E+01 2.00100000000000E+03 +Within Treatment 18000 1.80000000000000E+02 1.00000000000000E-02 + + Certified R-Squared 4.70712773465067E-01 + + Certified Residual + Standard Deviation 1.00000000000000E-01 + + + + + + + + + + + + +Data: Treatment Response + 1 1.4 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 1 1.3 + 1 1.5 + 2 1.3 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 2 1.2 + 2 1.4 + 3 1.5 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 3 1.4 + 3 1.6 + 4 1.3 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 4 1.2 + 4 1.4 + 5 1.5 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 5 1.4 + 5 1.6 + 6 1.3 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 6 1.2 + 6 1.4 + 7 1.5 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 7 1.4 + 7 1.6 + 8 1.3 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 8 1.2 + 8 1.4 + 9 1.5 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 + 9 1.4 + 9 1.6 diff --git a/statsmodels/sandbox/regression/data/SmLs04.dat b/statsmodels/sandbox/regression/data/SmLs04.dat new file mode 100644 index 0000000..6a2a9fc --- /dev/null +++ b/statsmodels/sandbox/regression/data/SmLs04.dat @@ -0,0 +1,249 @@ +NIST/ITL StRD +Dataset Name: SmLs04 (SmLs04.dat) + + +File Format: ASCII + Certified Values (lines 41 to 47) + Data (lines 61 to 249) + + +Procedure: Analysis of Variance + + +Reference: Simon, Stephen D. and Lesage, James P. (1989). + "Assessing the Accuracy of ANOVA Calculations in + Statistical Software". + Computational Statistics & Data Analysis, 8, pp. 325-332. + + +Data: 1 Factor + 9 Treatments + 21 Replicates/Cell + 189 Observations + 7 Constant Leading Digits + Average Level of Difficulty + Generated Data + + +Model: 10 Parameters (mu,tau_1, ... , tau_9) + y_{ij} = mu + tau_i + epsilon_{ij} + + + + + + +Certified Values: + +Source of Sums of Mean +Variation df Squares Squares F Statistic + +Between Treatment 8 1.68000000000000E+00 2.10000000000000E-01 2.10000000000000E+01 +Within Treatment 180 1.80000000000000E+00 1.00000000000000E-02 + + Certified R-Squared 4.82758620689655E-01 + + Certified Residual + Standard Deviation 1.00000000000000E-01 + + + + + + + + + + + + +Data: Treatment Response + 1 1000000.4 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 2 1000000.3 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 3 1000000.5 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 4 1000000.3 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 5 1000000.5 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 6 1000000.3 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 7 1000000.5 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 8 1000000.3 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 9 1000000.5 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 diff --git a/statsmodels/sandbox/regression/data/SmLs05.dat b/statsmodels/sandbox/regression/data/SmLs05.dat new file mode 100644 index 0000000..fe11c40 --- /dev/null +++ b/statsmodels/sandbox/regression/data/SmLs05.dat @@ -0,0 +1,1869 @@ +NIST/ITL StRD +Dataset Name: SmLs05 (SmLs05.dat) + + +File Format: ASCII + Certified Values (lines 41 to 47) + Data (lines 61 to 1869) + + +Procedure: Analysis of Variance + + +Reference: Simon, Stephen D. and Lesage, James P. (1989). + "Assessing the Accuracy of ANOVA Calculations in + Statistical Software". + Computational Statistics & Data Analysis, 8, pp. 325-332. + + +Data: 1 Factor + 9 Treatments + 201 Replicates/Cell + 1809 Observations + 7 Constant Leading Digits + Average Level of Difficulty + Generated Data + + +Model: 10 Parameters (mu,tau_1, ... , tau_9) + y_{ij} = mu + tau_i + epsilon_{ij} + + + + + + +Certified Values: + +Source of Sums of Mean +Variation df Squares Squares F Statistic + +Between Treatment 8 1.60800000000000E+01 2.01000000000000E+00 2.01000000000000E+02 +Within Treatment 1800 1.80000000000000E+01 1.00000000000000E-02 + + Certified R-Squared 4.71830985915493E-01 + + Certified Residual + Standard Deviation 1.00000000000000E-01 + + + + + + + + + + + + +Data: Treatment Response + 1 1000000.4 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 2 1000000.3 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 3 1000000.5 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 4 1000000.3 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 5 1000000.5 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 6 1000000.3 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 7 1000000.5 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 8 1000000.3 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 9 1000000.5 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 diff --git a/statsmodels/sandbox/regression/data/SmLs06.dat b/statsmodels/sandbox/regression/data/SmLs06.dat new file mode 100644 index 0000000..602e4fb --- /dev/null +++ b/statsmodels/sandbox/regression/data/SmLs06.dat @@ -0,0 +1,18069 @@ +NIST/ITL StRD +Dataset Name: SmLs06 (SmLs06.dat) + + +File Format: ASCII + Certified Values (lines 41 to 47) + Data (lines 61 to 18069) + + +Procedure: Analysis of Variance + + +Reference: Simon, Stephen D. and Lesage, James P. (1989). + "Assessing the Accuracy of ANOVA Calculations in + Statistical Software". + Computational Statistics & Data Analysis, 8, pp. 325-332. + + +Data: 1 Factor + 9 Treatments + 2001 Replicates/Cell + 18009 Observations + 7 Constant Leading Digits + Average Level of Difficulty + Generated Data + + +Model: 10 Parameters (mu,tau_1, ... , tau_9) + y_{ij} = mu + tau_i + epsilon_{ij} + + + + + + +Certified Values: + +Source of Sums of Mean +Variation df Squares Squares F Statistic + +Between Treatment 8 1.60080000000000E+02 2.00100000000000E+01 2.00100000000000E+03 +Within Treatment 18000 1.80000000000000E+02 1.00000000000000E-02 + + Certified R-Squared 4.70712773465067E-01 + + Certified Residual + Standard Deviation 1.00000000000000E-01 + + + + + + + + + + + + +Data: Treatment Response + 1 1000000.4 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 1 1000000.3 + 1 1000000.5 + 2 1000000.3 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 2 1000000.2 + 2 1000000.4 + 3 1000000.5 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 3 1000000.4 + 3 1000000.6 + 4 1000000.3 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 4 1000000.2 + 4 1000000.4 + 5 1000000.5 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 5 1000000.4 + 5 1000000.6 + 6 1000000.3 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 6 1000000.2 + 6 1000000.4 + 7 1000000.5 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 7 1000000.4 + 7 1000000.6 + 8 1000000.3 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 8 1000000.2 + 8 1000000.4 + 9 1000000.5 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 + 9 1000000.4 + 9 1000000.6 diff --git a/statsmodels/sandbox/regression/data/SmLs07.dat b/statsmodels/sandbox/regression/data/SmLs07.dat new file mode 100644 index 0000000..deeac95 --- /dev/null +++ b/statsmodels/sandbox/regression/data/SmLs07.dat @@ -0,0 +1,249 @@ +NIST/ITL StRD +Dataset Name: SmLs07 (SmLs07.dat) + + +File Format: ASCII + Certified Values (lines 41 to 47) + Data (lines 61 to 249) + + +Procedure: Analysis of Variance + + +Reference: Simon, Stephen D. and Lesage, James P. (1989). + "Assessing the Accuracy of ANOVA Calculations in + Statistical Software". + Computational Statistics & Data Analysis, 8, pp. 325-332. + + +Data: 1 Factor + 9 Treatments + 21 Replicates/Cell + 189 Observations + 13 Constant Leading Digits + Higher Level of Difficulty + Generated Data + + +Model: 10 Parameters (mu,tau_1, ... , tau_9) + y_{ij} = mu + tau_i + epsilon_{ij} + + + + + + +Certified Values: + +Source of Sums of Mean +Variation df Squares Squares F Statistic + +Between Treatment 8 1.68000000000000E+00 2.10000000000000E-01 2.10000000000000E+01 +Within Treatment 180 1.80000000000000E+00 1.00000000000000E-02 + + Certified R-Squared 4.82758620689655E-01 + + Certified Residual + Standard Deviation 1.00000000000000E-01 + + + + + + + + + + + + +Data: Treatment Response + 1 1000000000000.4 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 2 1000000000000.3 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 3 1000000000000.5 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 4 1000000000000.3 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 5 1000000000000.5 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 6 1000000000000.3 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 7 1000000000000.5 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 8 1000000000000.3 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 9 1000000000000.5 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 diff --git a/statsmodels/sandbox/regression/data/SmLs08.dat b/statsmodels/sandbox/regression/data/SmLs08.dat new file mode 100644 index 0000000..c5ee643 --- /dev/null +++ b/statsmodels/sandbox/regression/data/SmLs08.dat @@ -0,0 +1,1869 @@ +NIST/ITL StRD +Dataset Name: SmLs08 (SmLs08.dat) + + +File Format: ASCII + Certified Values (lines 41 to 47) + Data (lines 61 to 1869) + + +Procedure: Analysis of Variance + + +Reference: Simon, Stephen D. and Lesage, James P. (1989). + "Assessing the Accuracy of ANOVA Calculations in + Statistical Software". + Computational Statistics & Data Analysis, 8, pp. 325-332. + + +Data: 1 Factor + 9 Treatments + 201 Replicates/Cell + 1809 Observations + 13 Constant Leading Digits + Higher Level of Difficulty + Generated Data + + +Model: 10 Parameters (mu,tau_1, ... , tau_9) + y_{ij} = mu + tau_i + epsilon_{ij} + + + + + + +Certified Values: + +Source of Sums of Mean +Variation df Squares Squares F Statistic + +Between Treatment 8 1.60800000000000E+01 2.01000000000000E+00 2.01000000000000E+02 +Within Treatment 1800 1.80000000000000E+01 1.00000000000000E-02 + + Certified R-Squared 4.71830985915493E-01 + + Certified Residual + Standard Deviation 1.00000000000000E-01 + + + + + + + + + + + + +Data: Treatment Response + 1 1000000000000.4 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 2 1000000000000.3 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 3 1000000000000.5 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 4 1000000000000.3 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 5 1000000000000.5 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 6 1000000000000.3 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 7 1000000000000.5 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 8 1000000000000.3 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 9 1000000000000.5 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 diff --git a/statsmodels/sandbox/regression/data/SmLs09.dat b/statsmodels/sandbox/regression/data/SmLs09.dat new file mode 100644 index 0000000..887905e --- /dev/null +++ b/statsmodels/sandbox/regression/data/SmLs09.dat @@ -0,0 +1,18069 @@ +NIST/ITL StRD +Dataset Name: SmLs09 (SmLs09.dat) + + +File Format: ASCII + Certified Values (lines 41 to 47) + Data (lines 61 to 18069) + + +Procedure: Analysis of Variance + + +Reference: Simon, Stephen D. and Lesage, James P. (1989). + "Assessing the Accuracy of ANOVA Calculations in + Statistical Software". + Computational Statistics & Data Analysis, 8, pp. 325-332. + + +Data: 1 Factor + 9 Treatments + 2001 Replicates/Cell + 18009 Observations + 13 Constant Leading Digits + Higher Level of Difficulty + Generated Data + + +Model: 10 Parameters (mu,tau_1, ... , tau_9) + y_{ij} = mu + tau_i + epsilon_{ij} + + + + + + +Certified Values: + +Source of Sums of Mean +Variation df Squares Squares F Statistic + +Between Treatment 8 1.60080000000000E+02 2.00100000000000E+01 2.00100000000000E+03 +Within Treatment 18000 1.80000000000000E+02 1.00000000000000E-02 + + Certified R-Squared 4.70712773465067E-01 + + Certified Residual + Standard Deviation 1.00000000000000E-01 + + + + + + + + + + + + +Data: Treatment Response + 1 1000000000000.4 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 1 1000000000000.3 + 1 1000000000000.5 + 2 1000000000000.3 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 2 1000000000000.2 + 2 1000000000000.4 + 3 1000000000000.5 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 3 1000000000000.4 + 3 1000000000000.6 + 4 1000000000000.3 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 4 1000000000000.2 + 4 1000000000000.4 + 5 1000000000000.5 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 5 1000000000000.4 + 5 1000000000000.6 + 6 1000000000000.3 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 6 1000000000000.2 + 6 1000000000000.4 + 7 1000000000000.5 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 7 1000000000000.4 + 7 1000000000000.6 + 8 1000000000000.3 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 8 1000000000000.2 + 8 1000000000000.4 + 9 1000000000000.5 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 + 9 1000000000000.4 + 9 1000000000000.6 diff --git a/statsmodels/sandbox/regression/example_kernridge.py b/statsmodels/sandbox/regression/example_kernridge.py new file mode 100644 index 0000000..ab85f2a --- /dev/null +++ b/statsmodels/sandbox/regression/example_kernridge.py @@ -0,0 +1,34 @@ + + +import numpy as np +import matplotlib.pyplot as plt +from .kernridgeregress_class import GaussProcess, kernel_euclid + + +m,k = 50,4 +upper = 6 +scale = 10 +xs = np.linspace(1,upper,m)[:,np.newaxis] +#xs1 = xs1a*np.ones((1,4)) + 1/(1.0+np.exp(np.random.randn(m,k))) +#xs1 /= np.std(xs1[::k,:],0) # normalize scale, could use cov to normalize +##y1true = np.sum(np.sin(xs1)+np.sqrt(xs1),1)[:,np.newaxis] +xs1 = np.sin(xs)#[:,np.newaxis] +y1true = np.sum(xs1 + 0.01*np.sqrt(np.abs(xs1)),1)[:,np.newaxis] +y1 = y1true + 0.10 * np.random.randn(m,1) + +stride = 3 #use only some points as trainig points e.g 2 means every 2nd +xstrain = xs1[::stride,:] +ystrain = y1[::stride,:] +xstrain = np.r_[xs1[:m/2,:], xs1[m/2+10:,:]] +ystrain = np.r_[y1[:m/2,:], y1[m/2+10:,:]] +index = np.hstack((np.arange(m/2), np.arange(m/2+10,m))) +gp1 = GaussProcess(xstrain, ystrain, kernel=kernel_euclid, + ridgecoeff=5*1e-4) +yhatr1 = gp1.predict(xs1) +plt.figure() +plt.plot(y1true, y1,'bo',y1true, yhatr1,'r.') +plt.title('euclid kernel: true y versus noisy y and estimated y') +plt.figure() +plt.plot(index,ystrain.ravel(),'bo-',y1true,'go-',yhatr1,'r.-') +plt.title('euclid kernel: true (green), noisy (blue) and estimated (red) '+ + 'observations') diff --git a/statsmodels/sandbox/regression/gmm.py b/statsmodels/sandbox/regression/gmm.py new file mode 100644 index 0000000..e3fe0d7 --- /dev/null +++ b/statsmodels/sandbox/regression/gmm.py @@ -0,0 +1,1801 @@ +'''Generalized Method of Moments, GMM, and Two-Stage Least Squares for +instrumental variables IV2SLS + + + +Issues +------ +* number of parameters, nparams, and starting values for parameters + Where to put them? start was initially taken from global scope (bug) +* When optimal weighting matrix cannot be calculated numerically + In DistQuantilesGMM, we only have one row of moment conditions, not a + moment condition for each observation, calculation for cov of moments + breaks down. iter=1 works (weights is identity matrix) + -> need method to do one iteration with an identity matrix or an + analytical weighting matrix given as parameter. + -> add result statistics for this case, e.g. cov_params, I have it in the + standalone function (and in calc_covparams which is a copy of it), + but not tested yet. + DONE `fitonce` in DistQuantilesGMM, params are the same as in direct call to fitgmm + move it to GMM class (once it's clearer for which cases I need this.) +* GMM doesn't know anything about the underlying model, e.g. y = X beta + u or panel + data model. It would be good if we can reuse methods from regressions, e.g. + predict, fitted values, calculating the error term, and some result statistics. + What's the best way to do this, multiple inheritance, outsourcing the functions, + mixins or delegation (a model creates a GMM instance just for estimation). + + +Unclear +------- +* dof in Hausman + - based on rank + - differs between IV2SLS method and function used with GMM or (IV2SLS) + - with GMM, covariance matrix difference has negative eigenvalues in iv example, ??? +* jtest/jval + - I'm not sure about the normalization (multiply or divide by nobs) in jtest. + need a test case. Scaling of jval is irrelevant for estimation. + jval in jtest looks to large in example, but I have no idea about the size +* bse for fitonce look too large (no time for checking now) + formula for calc_cov_params for the case without optimal weighting matrix + is wrong. I don't have an estimate for omega in that case. And I'm confusing + between weights and omega, which are *not* the same in this case. + + + +Author: josef-pktd +License: BSD (3-clause) + +''' + + +from __future__ import print_function +from statsmodels.compat.python import lrange +from statsmodels.compat.numpy import np_matrix_rank + +import numpy as np +from scipy import optimize, stats + +from statsmodels.tools.numdiff import approx_fprime, approx_hess +from statsmodels.base.model import (Model, + LikelihoodModel, LikelihoodModelResults) +from statsmodels.regression.linear_model import (OLS, RegressionResults, + RegressionResultsWrapper) +import statsmodels.stats.sandwich_covariance as smcov +from statsmodels.tools.decorators import (resettable_cache, cache_readonly) +from statsmodels.tools.tools import _ensure_2d + +DEBUG = 0 + +def maxabs(x): + '''just a shortcut to np.abs(x).max() + ''' + return np.abs(x).max() + + +class IV2SLS(LikelihoodModel): + """ + Instrumental variables estimation using Two-Stage Least-Squares (2SLS) + + + Parameters + ---------- + endog: array + Endogenous variable, 1-dimensional or 2-dimensional array nobs by 1 + exog : array + Explanatory variables, 1-dimensional or 2-dimensional array nobs by k + instruments : array + Instruments for explanatory variables. Must contain both exog + variables that are not being instrumented and instruments + + Notes + ----- + All variables in exog are instrumented in the calculations. If variables + in exog are not supposed to be instrumented, then these variables + must also to be included in the instrument array. + + Degrees of freedom in the calculation of the standard errors uses + `df_resid = (nobs - k_vars)`. + (This corresponds to the `small` option in Stata's ivreg2.) + """ + + def __init__(self, endog, exog, instrument=None): + self.instrument, self.instrument_names = _ensure_2d(instrument, True) + super(IV2SLS, self).__init__(endog, exog) + # where is this supposed to be handled + # Note: Greene p.77/78 dof correction is not necessary (because only + # asy results), but most packages do it anyway + self.df_resid = self.exog.shape[0] - self.exog.shape[1] + #self.df_model = float(self.rank - self.k_constant) + self.df_model = float(self.exog.shape[1] - self.k_constant) + + def initialize(self): + self.wendog = self.endog + self.wexog = self.exog + + def whiten(self, X): + pass + + def fit(self): + '''estimate model using 2SLS IV regression + + Returns + ------- + results : instance of RegressionResults + regression result + + Notes + ----- + This returns a generic RegressioResults instance as defined for the + linear models. + + Parameter estimates and covariance are correct, but other results + haven't been tested yet, to seee whether they apply without changes. + + ''' + #Greene 5th edt., p.78 section 5.4 + #move this maybe + y,x,z = self.endog, self.exog, self.instrument + # TODO: this uses "textbook" calculation, improve linalg + ztz = np.dot(z.T, z) + ztx = np.dot(z.T, x) + self.xhatparams = xhatparams = np.linalg.solve(ztz, ztx) + #print 'x.T.shape, xhatparams.shape', x.shape, xhatparams.shape + F = xhat = np.dot(z, xhatparams) + FtF = np.dot(F.T, F) + self.xhatprod = FtF #store for Housman specification test + Ftx = np.dot(F.T, x) + Fty = np.dot(F.T, y) + params = np.linalg.solve(FtF, Fty) + Ftxinv = np.linalg.inv(Ftx) + self.normalized_cov_params = np.dot(Ftxinv.T, np.dot(FtF, Ftxinv)) + + lfit = IVRegressionResults(self, params, + normalized_cov_params=self.normalized_cov_params) + + lfit.exog_hat_params = xhatparams + lfit.exog_hat = xhat # TODO: do we want to store this, might be large + self._results = lfit # TODO : remove this + self._results_ols2nd = OLS(y, xhat).fit() + + return RegressionResultsWrapper(lfit) + + #copied from GLS, because I subclass currently LikelihoodModel and not GLS + def predict(self, params, exog=None): + """ + Return linear predicted values from a design matrix. + + Parameters + ---------- + exog : array-like + Design / exogenous data + params : array-like, optional after fit has been called + Parameters of a linear model + + Returns + ------- + An array of fitted values + + Notes + ----- + If the model as not yet been fit, params is not optional. + """ + if exog is None: + exog = self.exog + return np.dot(exog, params) + #JP: this doesn't look correct for GLMAR + #SS: it needs its own predict method + if self._results is None and params is None: + raise ValueError("If the model has not been fit, then you must specify the params argument.") + if self._results is not None: + return np.dot(exog, self._results.params) + else: + return np.dot(exog, params) + + + +class IVRegressionResults(RegressionResults): + """ + Results class for for an OLS model. + + Most of the methods and attributes are inherited from RegressionResults. + The special methods that are only available for OLS are: + + - get_influence + - outlier_test + - el_test + - conf_int_el + + See Also + -------- + RegressionResults + + """ + + @cache_readonly + def fvalue(self): + k_vars = len(self.params) + restriction = np.eye(k_vars) + idx_noconstant = lrange(k_vars) + del idx_noconstant[self.model.data.const_idx] + fval = self.f_test(restriction[idx_noconstant]).fvalue # without constant + return fval + + + def spec_hausman(self, dof=None): + '''Hausman's specification test + + + See Also + -------- + spec_hausman : generic function for Hausman's specification test + + ''' + #use normalized cov_params for OLS + + endog, exog = self.model.endog, self.model.exog + resols = OLS(endog, exog).fit() + normalized_cov_params_ols = resols.model.normalized_cov_params + # Stata `ivendog` doesn't use df correction for se + #se2 = resols.mse_resid #* resols.df_resid * 1. / len(endog) + se2 = resols.ssr / len(endog) + + params_diff = self.params - resols.params + + cov_diff = np.linalg.pinv(self.model.xhatprod) - normalized_cov_params_ols + #TODO: the following is very inefficient, solves problem (svd) twice + #use linalg.lstsq or svd directly + #cov_diff will very often be in-definite (singular) + if not dof: + dof = np_matrix_rank(cov_diff) + cov_diffpinv = np.linalg.pinv(cov_diff) + H = np.dot(params_diff, np.dot(cov_diffpinv, params_diff))/se2 + pval = stats.chi2.sf(H, dof) + + return H, pval, dof + + +# copied from regression results with small changes, no llf + def summary(self, yname=None, xname=None, title=None, alpha=.05): + """Summarize the Regression Results + + Parameters + ----------- + yname : string, optional + Default is `y` + xname : list of strings, optional + Default is `var_##` for ## in p the number of regressors + title : string, optional + Title for the top table. If not None, then this replaces the + default title + alpha : float + significance level for the confidence intervals + + Returns + ------- + smry : Summary instance + this holds the summary tables and text, which can be printed or + converted to various output formats. + + See Also + -------- + statsmodels.iolib.summary.Summary : class to hold summary + results + + """ + + #TODO: import where we need it (for now), add as cached attributes + from statsmodels.stats.stattools import (jarque_bera, + omni_normtest, durbin_watson) + jb, jbpv, skew, kurtosis = jarque_bera(self.wresid) + omni, omnipv = omni_normtest(self.wresid) + + #TODO: reuse condno from somewhere else ? + #condno = np.linalg.cond(np.dot(self.wexog.T, self.wexog)) + wexog = self.model.wexog + eigvals = np.linalg.linalg.eigvalsh(np.dot(wexog.T, wexog)) + eigvals = np.sort(eigvals) #in increasing order + condno = np.sqrt(eigvals[-1]/eigvals[0]) + + # TODO: check what is valid. + # box-pierce, breusch-pagan, durbin's h are not with endogenous on rhs + # use Cumby Huizinga 1992 instead + self.diagn = dict(jb=jb, jbpv=jbpv, skew=skew, kurtosis=kurtosis, + omni=omni, omnipv=omnipv, condno=condno, + mineigval=eigvals[0]) + + #TODO not used yet + #diagn_left_header = ['Models stats'] + #diagn_right_header = ['Residual stats'] + + #TODO: requiring list/iterable is a bit annoying + #need more control over formatting + #TODO: default don't work if it's not identically spelled + + top_left = [('Dep. Variable:', None), + ('Model:', None), + ('Method:', ['Two Stage']), + ('', ['Least Squares']), + ('Date:', None), + ('Time:', None), + ('No. Observations:', None), + ('Df Residuals:', None), #[self.df_resid]), #TODO: spelling + ('Df Model:', None), #[self.df_model]) + ] + + top_right = [('R-squared:', ["%#8.3f" % self.rsquared]), + ('Adj. R-squared:', ["%#8.3f" % self.rsquared_adj]), + ('F-statistic:', ["%#8.4g" % self.fvalue] ), + ('Prob (F-statistic):', ["%#6.3g" % self.f_pvalue]), + #('Log-Likelihood:', None), #["%#6.4g" % self.llf]), + #('AIC:', ["%#8.4g" % self.aic]), + #('BIC:', ["%#8.4g" % self.bic]) + ] + + diagn_left = [('Omnibus:', ["%#6.3f" % omni]), + ('Prob(Omnibus):', ["%#6.3f" % omnipv]), + ('Skew:', ["%#6.3f" % skew]), + ('Kurtosis:', ["%#6.3f" % kurtosis]) + ] + + diagn_right = [('Durbin-Watson:', ["%#8.3f" % durbin_watson(self.wresid)]), + ('Jarque-Bera (JB):', ["%#8.3f" % jb]), + ('Prob(JB):', ["%#8.3g" % jbpv]), + ('Cond. No.', ["%#8.3g" % condno]) + ] + + + if title is None: + title = self.model.__class__.__name__ + ' ' + "Regression Results" + + #create summary table instance + from statsmodels.iolib.summary import Summary + smry = Summary() + smry.add_table_2cols(self, gleft=top_left, gright=top_right, + yname=yname, xname=xname, title=title) + smry.add_table_params(self, yname=yname, xname=xname, alpha=alpha, + use_t=True) + + smry.add_table_2cols(self, gleft=diagn_left, gright=diagn_right, + yname=yname, xname=xname, + title="") + + + + return smry + + + + +############# classes for Generalized Method of Moments GMM + +_gmm_options = '''\ + +Options for GMM +--------------- + +Type of GMM +~~~~~~~~~~~ + + - one-step + - iterated + - CUE : not tested yet + +weight matrix +~~~~~~~~~~~~~ + + - `weights_method` : string, defines method for robust + Options here are similar to :mod:`statsmodels.stats.robust_covariance` + default is heteroscedasticity consistent, HC0 + + currently available methods are + + - `cov` : HC0, optionally with degrees of freedom correction + - `hac` : + - `iid` : untested, only for Z*u case, IV cases with u as error indep of Z + - `ac` : not available yet + - `cluster` : not connected yet + - others from robust_covariance + +other arguments: + + - `wargs` : tuple or dict, required arguments for weights_method + + - `centered` : bool, + indicates whether moments are centered for the calculation of the weights + and covariance matrix, applies to all weight_methods + - `ddof` : int + degrees of freedom correction, applies currently only to `cov` + - maxlag : int + number of lags to include in HAC calculation , applies only to `hac` + - others not yet, e.g. groups for cluster robust + +covariance matrix +~~~~~~~~~~~~~~~~~ + +The same options as for weight matrix also apply to the calculation of the +estimate of the covariance matrix of the parameter estimates. +The additional option is + + - `has_optimal_weights`: If true, then the calculation of the covariance + matrix assumes that we have optimal GMM with :math:`W = S^{-1}`. + Default is True. + TODO: do we want to have a different default after `onestep`? + + +''' + +class GMM(Model): + ''' + Class for estimation by Generalized Method of Moments + + needs to be subclassed, where the subclass defined the moment conditions + `momcond` + + Parameters + ---------- + endog : array + endogenous variable, see notes + exog : array + array of exogenous variables, see notes + instrument : array + array of instruments, see notes + nmoms : None or int + number of moment conditions, if None then it is set equal to the + number of columns of instruments. Mainly needed to determin the shape + or size of start parameters and starting weighting matrix. + kwds : anything + this is mainly if additional variables need to be stored for the + calculations of the moment conditions + + Returns + ------- + *Attributes* + results : instance of GMMResults + currently just a storage class for params and cov_params without it's + own methods + bse : property + return bse + + + + Notes + ----- + The GMM class only uses the moment conditions and does not use any data + directly. endog, exog, instrument and kwds in the creation of the class + instance are only used to store them for access in the moment conditions. + Which of this are required and how they are used depends on the moment + conditions of the subclass. + + Warning: + + Options for various methods have not been fully implemented and + are still missing in several methods. + + + TODO: + currently onestep (maxiter=0) still produces an updated estimate of bse + and cov_params. + + ''' + + results_class = 'GMMResults' + + def __init__(self, endog, exog, instrument, k_moms=None, k_params=None, + missing='none', **kwds): + ''' + maybe drop and use mixin instead + + TODO: GMM doesn't really care about the data, just the moment conditions + ''' + instrument = self._check_inputs(instrument, endog) # attaches if needed + super(GMM, self).__init__(endog, exog, missing=missing, + instrument=instrument) +# self.endog = endog +# self.exog = exog +# self.instrument = instrument + self.nobs = endog.shape[0] + if k_moms is not None: + self.nmoms = k_moms + elif instrument is not None: + self.nmoms = instrument.shape[1] + else: + self.nmoms = np.nan + + if k_params is not None: + self.k_params = k_params + elif instrument is not None: + self.k_params = exog.shape[1] + else: + self.k_params = np.nan + + self.__dict__.update(kwds) + self.epsilon_iter = 1e-6 + + def _check_inputs(self, instrument, endog): + if instrument is not None: + offset = np.asarray(instrument) + if offset.shape[0] != endog.shape[0]: + raise ValueError("instrument is not the same length as endog") + return instrument + + def _fix_param_names(self, params, param_names=None): + # TODO: this is a temporary fix, need + xnames = self.data.xnames + + if not param_names is None: + if len(params) == len(param_names): + self.data.xnames = param_names + else: + raise ValueError('param_names has the wrong length') + + else: + if len(params) < len(xnames): + # cut in front for poisson multiplicative + self.data.xnames = xnames[-len(params):] + elif len(params) > len(xnames): + # cut at the end + self.data.xnames = xnames[:len(params)] + + def fit(self, start_params=None, maxiter=10, inv_weights=None, + weights_method='cov', wargs=(), + has_optimal_weights=True, + optim_method='bfgs', optim_args=None): + ''' + Estimate parameters using GMM and return GMMResults + + TODO: weight and covariance arguments still need to be made consistent + with similar options in other models, + see RegressionResult.get_robustcov_results + + Parameters + ---------- + start_params : array (optional) + starting value for parameters ub minimization. If None then + fitstart method is called for the starting values. + maxiter : int or 'cue' + Number of iterations in iterated GMM. The onestep estimate can be + obtained with maxiter=0 or 1. If maxiter is large, then the + iteration will stop either at maxiter or on convergence of the + parameters (TODO: no options for convergence criteria yet.) + If `maxiter == 'cue'`, the the continuously updated GMM is + calculated which updates the weight matrix during the minimization + of the GMM objective function. The CUE estimation uses the onestep + parameters as starting values. + inv_weights : None or ndarray + inverse of the starting weighting matrix. If inv_weights are not + given then the method `start_weights` is used which depends on + the subclass, for IV subclasses `inv_weights = z'z` where `z` are + the instruments, otherwise an identity matrix is used. + weights_method : string, defines method for robust + Options here are similar to :mod:`statsmodels.stats.robust_covariance` + default is heteroscedasticity consistent, HC0 + + currently available methods are + + - `cov` : HC0, optionally with degrees of freedom correction + - `hac` : + - `iid` : untested, only for Z*u case, IV cases with u as error indep of Z + - `ac` : not available yet + - `cluster` : not connected yet + - others from robust_covariance + + wargs` : tuple or dict, + required and optional arguments for weights_method + + - `centered` : bool, + indicates whether moments are centered for the calculation of the weights + and covariance matrix, applies to all weight_methods + - `ddof` : int + degrees of freedom correction, applies currently only to `cov` + - `maxlag` : int + number of lags to include in HAC calculation , applies only to `hac` + - others not yet, e.g. groups for cluster robust + + has_optimal_weights: If true, then the calculation of the covariance + matrix assumes that we have optimal GMM with :math:`W = S^{-1}`. + Default is True. + TODO: do we want to have a different default after `onestep`? + optim_method : string, default is 'bfgs' + numerical optimization method. Currently not all optimizers that + are available in LikelihoodModels are connected. + optim_args : dict + keyword arguments for the numerical optimizer. + + Returns + ------- + results : instance of GMMResults + this is also attached as attribute results + + Notes + ----- + + Warning: One-step estimation, `maxiter` either 0 or 1, still has + problems (at least compared to Stata's gmm). + By default it uses a heteroscedasticity robust covariance matrix, but + uses the assumption that the weight matrix is optimal. + See options for cov_params in the results instance. + + The same options as for weight matrix also apply to the calculation of + the estimate of the covariance matrix of the parameter estimates. + + ''' + # TODO: add check for correct wargs keys + # currently a misspelled key is not detected, + # because I'm still adding options + + # TODO: check repeated calls to fit with different options + # arguments are dictionaries, i.e. mutable + # unit test if anything is stale or spilled over. + + #bug: where does start come from ??? + start = start_params # alias for renaming + if start is None: + start = self.fitstart() #TODO: temporary hack + + if inv_weights is None: + inv_weights + + if optim_args is None: + optim_args = {} + if not 'disp' in optim_args: + optim_args['disp'] = 1 + + if maxiter == 0 or maxiter == 'cue': + if inv_weights is not None: + weights = np.linalg.pinv(inv_weights) + else: + # let start_weights handle the inv=False for maxiter=0 + weights = self.start_weights(inv=False) + + params = self.fitgmm(start, weights=weights, + optim_method=optim_method, optim_args=optim_args) + weights_ = weights # temporary alias used in jval + else: + params, weights = self.fititer(start, + maxiter=maxiter, + start_invweights=inv_weights, + weights_method=weights_method, + wargs=wargs, + optim_method=optim_method, + optim_args=optim_args) + # TODO weights returned by fititer is inv_weights - not true anymore + # weights_ currently not necessary and used anymore + weights_ = np.linalg.pinv(weights) + + if maxiter == 'cue': + #we have params from maxiter= 0 as starting value + # TODO: need to give weights options to gmmobjective_cu + params = self.fitgmm_cu(params, + optim_method=optim_method, + optim_args=optim_args) + # weights is stored as attribute + weights = self._weights_cu + + #TODO: use Bunch instead ? + options_other = {'weights_method':weights_method, + 'has_optimal_weights':has_optimal_weights, + 'optim_method':optim_method} + + # check that we have the right number of xnames + self._fix_param_names(params, param_names=None) + results = results_class_dict[self.results_class]( + model = self, + params = params, + weights = weights, + wargs = wargs, + options_other = options_other, + optim_args = optim_args) + + self.results = results # FIXME: remove, still keeping it temporarily + return results + + def fitgmm(self, start, weights=None, optim_method='bfgs', optim_args=None): + '''estimate parameters using GMM + + Parameters + ---------- + start : array_like + starting values for minimization + weights : array + weighting matrix for moment conditions. If weights is None, then + the identity matrix is used + + + Returns + ------- + paramest : array + estimated parameters + + Notes + ----- + todo: add fixed parameter option, not here ??? + + uses scipy.optimize.fmin + + ''' +## if not fixed is None: #fixed not defined in this version +## raise NotImplementedError + + # TODO: should start_weights only be in `fit` + if weights is None: + weights = self.start_weights(inv=False) + + if optim_args is None: + optim_args = {} + + if optim_method == 'nm': + optimizer = optimize.fmin + elif optim_method == 'bfgs': + optimizer = optimize.fmin_bfgs + # TODO: add score + optim_args['fprime'] = self.score #lambda params: self.score(params, weights) + elif optim_method == 'ncg': + optimizer = optimize.fmin_ncg + optim_args['fprime'] = self.score + elif optim_method == 'cg': + optimizer = optimize.fmin_cg + optim_args['fprime'] = self.score + elif optim_method == 'fmin_l_bfgs_b': + optimizer = optimize.fmin_l_bfgs_b + optim_args['fprime'] = self.score + elif optim_method == 'powell': + optimizer = optimize.fmin_powell + elif optim_method == 'slsqp': + optimizer = optimize.fmin_slsqp + else: + raise ValueError('optimizer method not available') + + if DEBUG: + print(np.linalg.det(weights)) + + #TODO: add other optimization options and results + return optimizer(self.gmmobjective, start, args=(weights,), + **optim_args) + + + def fitgmm_cu(self, start, optim_method='bfgs', optim_args=None): + '''estimate parameters using continuously updating GMM + + Parameters + ---------- + start : array_like + starting values for minimization + + Returns + ------- + paramest : array + estimated parameters + + Notes + ----- + todo: add fixed parameter option, not here ??? + + uses scipy.optimize.fmin + + ''' +## if not fixed is None: #fixed not defined in this version +## raise NotImplementedError + + if optim_args is None: + optim_args = {} + + if optim_method == 'nm': + optimizer = optimize.fmin + elif optim_method == 'bfgs': + optimizer = optimize.fmin_bfgs + optim_args['fprime'] = self.score_cu + elif optim_method == 'ncg': + optimizer = optimize.fmin_ncg + else: + raise ValueError('optimizer method not available') + + #TODO: add other optimization options and results + return optimizer(self.gmmobjective_cu, start, args=(), **optim_args) + + def start_weights(self, inv=True): + return np.eye(self.nmoms) + + def gmmobjective(self, params, weights): + ''' + objective function for GMM minimization + + Parameters + ---------- + params : array + parameter values at which objective is evaluated + weights : array + weighting matrix + + Returns + ------- + jval : float + value of objective function + + ''' + moms = self.momcond_mean(params) + return np.dot(np.dot(moms, weights), moms) + #moms = self.momcond(params) + #return np.dot(np.dot(moms.mean(0),weights), moms.mean(0)) + + + def gmmobjective_cu(self, params, weights_method='cov', + wargs=()): + ''' + objective function for continuously updating GMM minimization + + Parameters + ---------- + params : array + parameter values at which objective is evaluated + + Returns + ------- + jval : float + value of objective function + + ''' + moms = self.momcond(params) + inv_weights = self.calc_weightmatrix(moms, weights_method=weights_method, + wargs=wargs) + weights = np.linalg.pinv(inv_weights) + self._weights_cu = weights # store if we need it later + return np.dot(np.dot(moms.mean(0), weights), moms.mean(0)) + + + def fititer(self, start, maxiter=2, start_invweights=None, + weights_method='cov', wargs=(), optim_method='bfgs', + optim_args=None): + '''iterative estimation with updating of optimal weighting matrix + + stopping criteria are maxiter or change in parameter estimate less + than self.epsilon_iter, with default 1e-6. + + Parameters + ---------- + start : array + starting value for parameters + maxiter : int + maximum number of iterations + start_weights : array (nmoms, nmoms) + initial weighting matrix; if None, then the identity matrix + is used + weights_method : {'cov', ...} + method to use to estimate the optimal weighting matrix, + see calc_weightmatrix for details + + Returns + ------- + params : array + estimated parameters + weights : array + optimal weighting matrix calculated with final parameter + estimates + + Notes + ----- + + + + + ''' + self.history = [] + momcond = self.momcond + + if start_invweights is None: + w = self.start_weights(inv=True) + else: + w = start_invweights + + #call fitgmm function + #args = (self.endog, self.exog, self.instrument) + #args is not used in the method version + winv_new = w + for it in range(maxiter): + winv = winv_new + w = np.linalg.pinv(winv) + #this is still calling function not method +## resgmm = fitgmm(momcond, (), start, weights=winv, fixed=None, +## weightsoptimal=False) + resgmm = self.fitgmm(start, weights=w, optim_method=optim_method, + optim_args=optim_args) + + moms = momcond(resgmm) + # the following is S = cov_moments + winv_new = self.calc_weightmatrix(moms, + weights_method=weights_method, + wargs=wargs, params=resgmm) + + if it > 2 and maxabs(resgmm - start) < self.epsilon_iter: + #check rule for early stopping + # TODO: set has_optimal_weights = True + break + + start = resgmm + return resgmm, w + + + def calc_weightmatrix(self, moms, weights_method='cov', wargs=(), + params=None): + ''' + calculate omega or the weighting matrix + + Parameters + ---------- + moms : array, (nobs, nmoms) + moment conditions for all observations evaluated at a parameter + value + weights_method : string 'cov' + If method='cov' is cov then the matrix is calculated as simple + covariance of the moment conditions. + see fit method for available aoptions for the weight and covariance + matrix + wargs : tuple or dict + parameters that are required by some kernel methods to + estimate the long-run covariance. Not used yet. + + Returns + ------- + w : array (nmoms, nmoms) + estimate for the weighting matrix or covariance of the moment + condition + + + Notes + ----- + + currently a constant cutoff window is used + TODO: implement long-run cov estimators, kernel-based + + Newey-West + Andrews + Andrews-Moy???? + + References + ---------- + Greene + Hansen, Bruce + + ''' + nobs, k_moms = moms.shape + # TODO: wargs are tuple or dict ? + if DEBUG: + print(' momcov wargs', wargs) + + centered = not ('centered' in wargs and not wargs['centered']) + if not centered: + # caller doesn't want centered moment conditions + moms_ = moms + else: + moms_ = moms - moms.mean() + + # TODO: store this outside to avoid doing this inside optimization loop + # TODO: subclasses need to be able to add weights_methods, and remove + # IVGMM can have homoscedastic (OLS), + # some options won't make sense in some cases + # possible add all here and allow subclasses to define a list + # TODO: should other weights_methods also have `ddof` + if weights_method == 'cov': + w = np.dot(moms_.T, moms_) + if 'ddof' in wargs: + # caller requests degrees of freedom correction + if wargs['ddof'] == 'k_params': + w /= (nobs - self.k_params) + else: + if DEBUG: + print(' momcov ddof', wargs['ddof']) + w /= (nobs - wargs['ddof']) + else: + # default: divide by nobs + w /= nobs + + elif weights_method == 'flatkernel': + #uniform cut-off window + # This was a trial version, can use HAC with flatkernel + if not 'maxlag' in wargs: + raise ValueError('flatkernel requires maxlag') + + maxlag = wargs['maxlag'] + h = np.ones(maxlag + 1) + w = np.dot(moms_.T, moms_)/nobs + for i in range(1,maxlag+1): + w += (h[i] * np.dot(moms_[i:].T, moms_[:-i]) / (nobs-i)) + + elif weights_method == 'hac': + maxlag = wargs['maxlag'] + if 'kernel' in wargs: + weights_func = wargs['kernel'] + else: + weights_func = smcov.weights_bartlett + wargs['kernel'] = weights_func + + w = smcov.S_hac_simple(moms_, nlags=maxlag, + weights_func=weights_func) + w /= nobs #(nobs - self.k_params) + + elif weights_method == 'iid': + # only when we have instruments and residual mom = Z * u + # TODO: problem we don't have params in argument + # I cannot keep everything in here w/o params as argument + u = self.get_error(params) + + if centered: + # Note: I'm not centering instruments, + # shouldn't we always center u? Ok, with centered as default + u -= u.mean(0) #demean inplace, we don't need original u + + instrument = self.instrument + w = np.dot(instrument.T, instrument).dot(np.dot(u.T, u)) / nobs + if 'ddof' in wargs: + # caller requests degrees of freedom correction + if wargs['ddof'] == 'k_params': + w /= (nobs - self.k_params) + else: + # assume ddof is a number + if DEBUG: + print(' momcov ddof', wargs['ddof']) + w /= (nobs - wargs['ddof']) + else: + # default: divide by nobs + w /= nobs + + else: + raise ValueError('weight method not available') + + return w + + + def momcond_mean(self, params): + ''' + mean of moment conditions, + + ''' + + momcond = self.momcond(params) + self.nobs_moms, self.k_moms = momcond.shape + return momcond.mean(0) + + + def gradient_momcond(self, params, epsilon=1e-4, centered=True): + '''gradient of moment conditions + + Parameters + ---------- + params : ndarray + parameter at which the moment conditions are evaluated + epsilon : float + stepsize for finite difference calculation + centered : bool + This refers to the finite difference calculation. If `centered` + is true, then the centered finite difference calculation is + used. Otherwise the one-sided forward differences are used. + + TODO: looks like not used yet + missing argument `weights` + + ''' + + momcond = self.momcond_mean + + # TODO: approx_fprime has centered keyword + if centered: + gradmoms = (approx_fprime(params, momcond, epsilon=epsilon) + + approx_fprime(params, momcond, epsilon=-epsilon))/2 + else: + gradmoms = approx_fprime(params, momcond, epsilon=epsilon) + + return gradmoms + + def score(self, params, weights, epsilon=None, centered=True): + + deriv = approx_fprime(params, self.gmmobjective, args=(weights,), + centered=centered, epsilon=epsilon) + + return deriv + + def score_cu(self, params, epsilon=None, centered=True): + + deriv = approx_fprime(params, self.gmmobjective_cu, args=(), + centered=centered, epsilon=epsilon) + + return deriv + + +# TODO: wrong superclass, I want tvalues, ... right now +class GMMResults(LikelihoodModelResults): + '''just a storage class right now''' + + use_t = False + + def __init__(self, *args, **kwds): + self.__dict__.update(kwds) + + self.nobs = self.model.nobs + self.df_resid = np.inf + + self.cov_params_default = self._cov_params() + + + @cache_readonly + def q(self): + return self.model.gmmobjective(self.params, self.weights) + + + @cache_readonly + def jval(self): + # nobs_moms attached by momcond_mean + return self.q * self.model.nobs_moms + + + def _cov_params(self, **kwds): + + #TODO add options ???) + # this should use by default whatever options have been specified in + # fit + + # TODO: don't do this when we want to change options +# if hasattr(self, '_cov_params'): +# #replace with decorator later +# return self._cov_params + + # set defaults based on fit arguments + if not 'wargs' in kwds: + # Note: we don't check the keys in wargs, use either all or nothing + kwds['wargs'] = self.wargs + if not 'weights_method' in kwds: + kwds['weights_method'] = self.options_other['weights_method'] + if not 'has_optimal_weights' in kwds: + kwds['has_optimal_weights'] = self.options_other['has_optimal_weights'] + + gradmoms = self.model.gradient_momcond(self.params) + moms = self.model.momcond(self.params) + covparams = self.calc_cov_params(moms, gradmoms, **kwds) + + return covparams + + + def calc_cov_params(self, moms, gradmoms, weights=None, use_weights=False, + has_optimal_weights=True, + weights_method='cov', wargs=()): + '''calculate covariance of parameter estimates + + not all options tried out yet + + If weights matrix is given, then the formula use to calculate cov_params + depends on whether has_optimal_weights is true. + If no weights are given, then the weight matrix is calculated with + the given method, and has_optimal_weights is assumed to be true. + + (API Note: The latter assumption could be changed if we allow for + has_optimal_weights=None.) + + ''' + + nobs = moms.shape[0] + + if weights is None: + #omegahat = self.model.calc_weightmatrix(moms, method=method, wargs=wargs) + #has_optimal_weights = True + #add other options, Barzen, ... longrun var estimators + # TODO: this might still be inv_weights after fititer + weights = self.weights + else: + pass + #omegahat = weights #2 different names used, + #TODO: this is wrong, I need an estimate for omega + + if use_weights: + omegahat = weights + else: + omegahat = self.model.calc_weightmatrix( + moms, + weights_method=weights_method, + wargs=wargs, + params=self.params) + + + if has_optimal_weights: #has_optimal_weights: + # TOD0 make has_optimal_weights depend on convergence or iter >2 + cov = np.linalg.inv(np.dot(gradmoms.T, + np.dot(np.linalg.inv(omegahat), gradmoms))) + else: + gw = np.dot(gradmoms.T, weights) + gwginv = np.linalg.inv(np.dot(gw, gradmoms)) + cov = np.dot(np.dot(gwginv, np.dot(np.dot(gw, omegahat), gw.T)), gwginv) + #cov /= nobs + + return cov/nobs + + @property + def bse_(self): + '''standard error of the parameter estimates + ''' + return self.get_bse() + + def get_bse(self, **kwds): + '''standard error of the parameter estimates with options + + Parameters + ---------- + kwds : optional keywords + options for calculating cov_params + + Returns + ------- + bse : ndarray + estimated standard error of parameter estimates + + ''' + return np.sqrt(np.diag(self.cov_params(**kwds))) + + def jtest(self): + '''overidentification test + + I guess this is missing a division by nobs, + what's the normalization in jval ? + ''' + + jstat = self.jval + nparams = self.params.size #self.nparams + df = self.model.nmoms - nparams + return jstat, stats.chi2.sf(jstat, df), df + + + def compare_j(self, other): + '''overidentification test for comparing two nested gmm estimates + + This assumes that some moment restrictions have been dropped in one + of the GMM estimates relative to the other. + + Not tested yet + + We are comparing two separately estimated models, that use different + weighting matrices. It is not guaranteed that the resulting + difference is positive. + + TODO: Check in which cases Stata programs use the same weigths + + ''' + jstat1 = self.jval + k_moms1 = self.model.nmoms + jstat2 = other.jval + k_moms2 = other.model.nmoms + jdiff = jstat1 - jstat2 + df = k_moms1 - k_moms2 + if df < 0: + # possible nested in other way, TODO allow this or not + # flip sign instead of absolute + df = - df + jdiff = - jdiff + return jdiff, stats.chi2.sf(jdiff, df), df + + + def summary(self, yname=None, xname=None, title=None, alpha=.05): + """Summarize the Regression Results + + Parameters + ----------- + yname : string, optional + Default is `y` + xname : list of strings, optional + Default is `var_##` for ## in p the number of regressors + title : string, optional + Title for the top table. If not None, then this replaces the + default title + alpha : float + significance level for the confidence intervals + + Returns + ------- + smry : Summary instance + this holds the summary tables and text, which can be printed or + converted to various output formats. + + See Also + -------- + statsmodels.iolib.summary.Summary : class to hold summary + results + + """ + #TODO: add a summary text for options that have been used + + jvalue, jpvalue, jdf = self.jtest() + + top_left = [('Dep. Variable:', None), + ('Model:', None), + ('Method:', ['GMM']), + ('Date:', None), + ('Time:', None), + ('No. Observations:', None), + #('Df Residuals:', None), #[self.df_resid]), #TODO: spelling + #('Df Model:', None), #[self.df_model]) + ] + + top_right = [#('R-squared:', ["%#8.3f" % self.rsquared]), + #('Adj. R-squared:', ["%#8.3f" % self.rsquared_adj]), + ('Hansen J:', ["%#8.4g" % jvalue] ), + ('Prob (Hansen J):', ["%#6.3g" % jpvalue]), + #('F-statistic:', ["%#8.4g" % self.fvalue] ), + #('Prob (F-statistic):', ["%#6.3g" % self.f_pvalue]), + #('Log-Likelihood:', None), #["%#6.4g" % self.llf]), + #('AIC:', ["%#8.4g" % self.aic]), + #('BIC:', ["%#8.4g" % self.bic]) + ] + + if title is None: + title = self.model.__class__.__name__ + ' ' + "Results" + + #create summary table instance + from statsmodels.iolib.summary import Summary + smry = Summary() + smry.add_table_2cols(self, gleft=top_left, gright=top_right, + yname=yname, xname=xname, title=title) + smry.add_table_params(self, yname=yname, xname=xname, alpha=alpha, + use_t=False) + + return smry + + + +class IVGMM(GMM): + ''' + Basic class for instrumental variables estimation using GMM + + A linear function for the conditional mean is defined as default but the + methods should be overwritten by subclasses, currently `LinearIVGMM` and + `NonlinearIVGMM` are implemented as subclasses. + + See Also + -------- + LinearIVGMM + NonlinearIVGMM + + ''' + + results_class = 'IVGMMResults' + + def fitstart(self): + return np.zeros(self.exog.shape[1]) + + + def start_weights(self, inv=True): + zz = np.dot(self.instrument.T, self.instrument) + nobs = self.instrument.shape[0] + if inv: + return zz / nobs + else: + return np.linalg.pinv(zz / nobs) + + + def get_error(self, params): + return self.endog - self.predict(params) + + + def predict(self, params, exog=None): + + if exog is None: + exog = self.exog + + return np.dot(exog, params) + + def momcond(self, params): + instrument = self.instrument + return instrument * self.get_error(params)[:,None] + + +class LinearIVGMM(IVGMM): + """class for linear instrumental variables models estimated with GMM + + Uses closed form expression instead of nonlinear optimizers for each step + of the iterative GMM. + + The model is assumed to have the following moment condition + + E( z * (y - x beta)) = 0 + + Where `y` is the dependent endogenous variable, `x` are the explanatory + variables and `z` are the instruments. Variables in `x` that are exogenous + need also be included in `z`. + + Notation Warning: our name `exog` stands for the explanatory variables, + and includes both exogenous and explanatory variables that are endogenous, + i.e. included endogenous variables + + Parameters + ---------- + endog : array_like + dependent endogenous variable + exog : array_like + explanatory, right hand side variables, including explanatory variables + that are endogenous + instruments : array_like + Instrumental variables, variables that are exogenous to the error + in the linear model containing both included and excluded exogenous + variables + + + """ + + def fitgmm(self, start, weights=None, optim_method=None, **kwds): + '''estimate parameters using GMM for linear model + + Uses closed form expression instead of nonlinear optimizers + + Parameters + ---------- + start : not used + starting values for minimization, not used, only for consistency + of method signature + weights : array + weighting matrix for moment conditions. If weights is None, then + the identity matrix is used + optim_method : not used, + optimization method, not used, only for consistency of method + signature + **kwds : keyword arguments + not used, will be silently ignored (for compatibility with generic) + + + Returns + ------- + paramest : array + estimated parameters + + ''' +## if not fixed is None: #fixed not defined in this version +## raise NotImplementedError + + # TODO: should start_weights only be in `fit` + if weights is None: + weights = self.start_weights(inv=False) + + y, x, z = self.endog, self.exog, self.instrument + + zTx = np.dot(z.T, x) + zTy = np.dot(z.T, y) + # normal equation, solved with pinv + part0 = zTx.T.dot(weights) + part1 = part0.dot(zTx) + part2 = part0.dot(zTy) + params = np.linalg.pinv(part1).dot(part2) + + return params + + + def predict(self, params, exog=None): + if exog is None: + exog = self.exog + + return np.dot(exog, params) + + + def gradient_momcond(self, params, **kwds): + # **kwds for compatibility not used + + x, z = self.exog, self.instrument + gradmoms = -np.dot(z.T, x) / self.nobs + + return gradmoms + + def score(self, params, weights, **kwds): + # **kwds for compatibility, not used + # Note: I coud use general formula with gradient_momcond instead + + x, z = self.exog, self.instrument + nobs = z.shape[0] + + u = self.get_errors(params) + score = -2 * np.dot(x.T, z).dot(weights.dot(np.dot(z.T, u))) + score /= nobs * nobs + + return score + + + +class NonlinearIVGMM(IVGMM): + """ + Class for non-linear instrumental variables estimation wusing GMM + + The model is assumed to have the following moment condition + + E[ z * (y - f(X, beta)] = 0 + + Where `y` is the dependent endogenous variable, `x` are the explanatory + variables and `z` are the instruments. Variables in `x` that are exogenous + need also be included in z. `f` is a nonlinear function. + + Notation Warning: our name `exog` stands for the explanatory variables, + and includes both exogenous and explanatory variables that are endogenous, + i.e. included endogenous variables + + Parameters + ---------- + endog : array_like + dependent endogenous variable + exog : array_like + explanatory, right hand side variables, including explanatory variables + that are endogenous. + instruments : array_like + Instrumental variables, variables that are exogenous to the error + in the linear model containing both included and excluded exogenous + variables + func : callable + function for the mean or conditional expectation of the endogenous + variable. The function will be called with parameters and the array of + explanatory, right hand side variables, `func(params, exog)` + + Notes + ----- + This class uses numerical differences to obtain the derivative of the + objective function. If the jacobian of the conditional mean function, `func` + is available, then it can be used by subclassing this class and defining + a method `jac_func`. + + TODO: check required signature of jac_error and jac_func + + """ + # This should be reversed: + # NonlinearIVGMM is IVGMM and need LinearIVGMM as special case (fit, predict) + + + def fitstart(self): + #might not make sense for more general functions + return np.zeros(self.exog.shape[1]) + + + def __init__(self, endog, exog, instrument, func, **kwds): + self.func = func + super(NonlinearIVGMM, self).__init__(endog, exog, instrument, **kwds) + + + def predict(self, params, exog=None): + if exog is None: + exog = self.exog + + return self.func(params, exog) + + #---------- the following a semi-general versions, + # TODO: move to higher class after testing + + def jac_func(self, params, weights, args=None, centered=True, epsilon=None): + + # TODO: Why are ther weights in the signature - copy-paste error? + deriv = approx_fprime(params, self.func, args=(self.exog,), + centered=centered, epsilon=epsilon) + + return deriv + + + def jac_error(self, params, weights, args=None, centered=True, + epsilon=None): + + jac_func = self.jac_func(params, weights, args=None, centered=True, + epsilon=None) + + return -jac_func + + + def score(self, params, weights, **kwds): + # **kwds for compatibility not used + # Note: I coud use general formula with gradient_momcond instead + + z = self.instrument + nobs = z.shape[0] + + jac_u = self.jac_error(params, weights, args=None, epsilon=None, + centered=True) + x = -jac_u # alias, plays the same role as X in linear model + + u = self.get_error(params) + + score = -2 * np.dot(np.dot(x.T, z), weights).dot(np.dot(z.T, u)) + score /= nobs * nobs + + return score + + +class IVGMMResults(GMMResults): + + + # this assumes that we have an additive error model `(y - f(x, params))` + + @cache_readonly + def fittedvalues(self): + return self.model.predict(self.params) + + + @cache_readonly + def resid(self): + return self.model.endog - self.fittedvalues + + + @cache_readonly + def ssr(self): + return (self.resid * self.resid).sum(0) + + + + +def spec_hausman(params_e, params_i, cov_params_e, cov_params_i, dof=None): + '''Hausmans specification test + + Parameters + ---------- + params_e : array + efficient and consistent under Null hypothesis, + inconsistent under alternative hypothesis + params_i: array + consistent under Null hypothesis, + consistent under alternative hypothesis + cov_params_e : array, 2d + covariance matrix of parameter estimates for params_e + cov_params_i : array, 2d + covariance matrix of parameter estimates for params_i + + example instrumental variables OLS estimator is `e`, IV estimator is `i` + + + Notes + ----- + + Todos,Issues + - check dof calculations and verify for linear case + - check one-sided hypothesis + + + References + ---------- + Greene section 5.5 p.82/83 + + + ''' + params_diff = (params_i - params_e) + cov_diff = cov_params_i - cov_params_e + #TODO: the following is very inefficient, solves problem (svd) twice + #use linalg.lstsq or svd directly + #cov_diff will very often be in-definite (singular) + if not dof: + dof = np_matrix_rank(cov_diff) + cov_diffpinv = np.linalg.pinv(cov_diff) + H = np.dot(params_diff, np.dot(cov_diffpinv, params_diff)) + pval = stats.chi2.sf(H, dof) + + evals = np.linalg.eigvalsh(cov_diff) + + return H, pval, dof, evals + + + + +########### + +class DistQuantilesGMM(GMM): + ''' + Estimate distribution parameters by GMM based on matching quantiles + + Currently mainly to try out different requirements for GMM when we cannot + calculate the optimal weighting matrix. + + ''' + + def __init__(self, endog, exog, instrument, **kwds): + #TODO: something wrong with super + super(DistQuantilesGMM, self).__init__(endog, exog, instrument) + #self.func = func + self.epsilon_iter = 1e-5 + + self.distfn = kwds['distfn'] + #done by super doesn't work yet + #TypeError: super does not take keyword arguments + self.endog = endog + + #make this optional for fit + if not 'pquant' in kwds: + self.pquant = pquant = np.array([0.01, 0.05,0.1,0.4,0.6,0.9,0.95,0.99]) + else: + self.pquant = pquant = kwds['pquant'] + + #TODO: vectorize this: use edf + self.xquant = np.array([stats.scoreatpercentile(endog, p) for p + in pquant*100]) + self.nmoms = len(self.pquant) + + #TODOcopied from GMM, make super work + self.endog = endog + self.exog = exog + self.instrument = instrument + self.results = GMMResults(model=self) + #self.__dict__.update(kwds) + self.epsilon_iter = 1e-6 + + def fitstart(self): + #todo: replace with or add call to distfn._fitstart + # added but not used during testing, avoid Travis + distfn = self.distfn + if hasattr(distfn, '_fitstart'): + start = distfn._fitstart(self.endog) + else: + start = [1]*distfn.numargs + [0.,1.] + + return np.asarray(start) + + def momcond(self, params): #drop distfn as argument + #, mom2, quantile=None, shape=None + '''moment conditions for estimating distribution parameters by matching + quantiles, defines as many moment conditions as quantiles. + + Returns + ------- + difference : array + difference between theoretical and empirical quantiles + + Notes + ----- + This can be used for method of moments or for generalized method of + moments. + + ''' + #this check looks redundant/unused know + if len(params) == 2: + loc, scale = params + elif len(params) == 3: + shape, loc, scale = params + else: + #raise NotImplementedError + pass #see whether this might work, seems to work for beta with 2 shape args + + #mom2diff = np.array(distfn.stats(*params)) - mom2 + #if not quantile is None: + pq, xq = self.pquant, self.xquant + #ppfdiff = distfn.ppf(pq, alpha) + cdfdiff = self.distfn.cdf(xq, *params) - pq + #return np.concatenate([mom2diff, cdfdiff[:1]]) + return np.atleast_2d(cdfdiff) + + def fitonce(self, start=None, weights=None, has_optimal_weights=False): + '''fit without estimating an optimal weighting matrix and return results + + This is a convenience function that calls fitgmm and covparams with + a given weight matrix or the identity weight matrix. + This is useful if the optimal weight matrix is know (or is analytically + given) or if an optimal weight matrix cannot be calculated. + + (Developer Notes: this function could go into GMM, but is needed in this + class, at least at the moment.) + + Parameters + ---------- + + + Returns + ------- + results : GMMResult instance + result instance with params and _cov_params attached + + See Also + -------- + fitgmm + cov_params + + ''' + if weights is None: + weights = np.eye(self.nmoms) + params = self.fitgmm(start=start) + # TODO: rewrite this old hack, should use fitgmm or fit maxiter=0 + self.results.params = params #required before call to self.cov_params + self.results.wargs = {} #required before call to self.cov_params + self.results.options_other = {'weights_method':'cov'} + # TODO: which weights_method? There shouldn't be any needed ? + _cov_params = self.results.cov_params(weights=weights, + has_optimal_weights=has_optimal_weights) + + self.results.weights = weights + self.results.jval = self.gmmobjective(params, weights) + self.results.options_other.update({'has_optimal_weights':has_optimal_weights}) + + return self.results + + +results_class_dict = {'GMMResults': GMMResults, + 'IVGMMResults': IVGMMResults, + 'DistQuantilesGMM': GMMResults} #TODO: should be a default + diff --git a/statsmodels/sandbox/regression/kernridgeregress_class.py b/statsmodels/sandbox/regression/kernridgeregress_class.py new file mode 100644 index 0000000..9e2899a --- /dev/null +++ b/statsmodels/sandbox/regression/kernridgeregress_class.py @@ -0,0 +1,209 @@ +'''Kernel Ridge Regression for local non-parametric regression''' + + +import numpy as np +from scipy import spatial as ssp +from numpy.testing import assert_equal +import matplotlib.pylab as plt + +def plt_closeall(n=10): + '''close a number of open matplotlib windows''' + for i in range(n): plt.close() + +def kernel_rbf(x,y,scale=1, **kwds): + #scale = kwds.get('scale',1) + dist = ssp.minkowski_distance_p(x[:,np.newaxis,:],y[np.newaxis,:,:],2) + return np.exp(-0.5/scale*(dist)) + +def kernel_euclid(x,y,p=2, **kwds): + return ssp.minkowski_distance(x[:,np.newaxis,:],y[np.newaxis,:,:],p) + +class GaussProcess(object): + '''class to perform kernel ridge regression (gaussian process) + + Warning: this class is memory intensive, it creates nobs x nobs distance + matrix and its inverse, where nobs is the number of rows (observations). + See sparse version for larger number of observations + + + Notes + ----- + + Todo: + * normalize multidimensional x array on demand, either by var or cov + * add confidence band + * automatic selection or proposal of smoothing parameters + + Note: this is different from kernel smoothing regression, + see for example http://en.wikipedia.org/wiki/Kernel_smoother + + In this version of the kernel ridge regression, the training points + are fitted exactly. + Needs a fast version for leave-one-out regression, for fitting each + observation on all the other points. + This version could be numerically improved for the calculation for many + different values of the ridge coefficient. see also short summary by + Isabelle Guyon (ETHZ) in a manuscript KernelRidge.pdf + + Needs verification and possibly additional statistical results or + summary statistics for interpretation, but this is a problem with + non-parametric, non-linear methods. + + Reference + --------- + + Rasmussen, C.E. and C.K.I. Williams, 2006, Gaussian Processes for Machine + Learning, the MIT Press, www.GaussianProcess.org/gpal, chapter 2 + + a short summary of the kernel ridge regression is at + http://www.ics.uci.edu/~welling/teaching/KernelsICS273B/Kernel-Ridge.pdf + ''' + + def __init__(self, x, y=None, kernel=kernel_rbf, + scale=0.5, ridgecoeff = 1e-10, **kwds ): + ''' + Parameters + ---------- + x : 2d array (N,K) + data array of explanatory variables, columns represent variables + rows represent observations + y : 2d array (N,1) (optional) + endogenous variable that should be fitted or predicted + can alternatively be specified as parameter to fit method + kernel : function, default: kernel_rbf + kernel: (x1,x2)->kernel matrix is a function that takes as parameter + two column arrays and return the kernel or distance matrix + scale : float (optional) + smoothing parameter for the rbf kernel + ridgecoeff : float (optional) + coefficient that is multiplied with the identity matrix in the + ridge regression + + Notes + ----- + After initialization, kernel matrix is calculated and if y is given + as parameter then also the linear regression parameter and the + fitted or estimated y values, yest, are calculated. yest is available + as an attribute in this case. + + Both scale and the ridge coefficient smooth the fitted curve. + + ''' + + self.x = x + self.kernel = kernel + self.scale = scale + self.ridgecoeff = ridgecoeff + self.distxsample = kernel(x,x,scale=scale) + self.Kinv = np.linalg.inv(self.distxsample + + np.eye(*self.distxsample.shape)*ridgecoeff) + if not y is None: + self.y = y + self.yest = self.fit(y) + + + def fit(self,y): + '''fit the training explanatory variables to a sample ouput variable''' + self.parest = np.dot(self.Kinv, y) #self.kernel(y,y,scale=self.scale)) + yhat = np.dot(self.distxsample,self.parest) + return yhat + +## print ds33.shape +## ds33_2 = kernel(x,x[::k,:],scale=scale) +## dsinv = np.linalg.inv(ds33+np.eye(*distxsample.shape)*ridgecoeff) +## B = np.dot(dsinv,y[::k,:]) + def predict(self,x): + '''predict new y values for a given array of explanatory variables''' + self.xpredict = x + distxpredict = self.kernel(x, self.x, scale=self.scale) + self.ypredict = np.dot(distxpredict, self.parest) + return self.ypredict + + def plot(self, y, plt=plt ): + '''some basic plots''' + #todo return proper graph handles + plt.figure(); + plt.plot(self.x,self.y, 'bo-', self.x, self.yest, 'r.-') + plt.title('sample (training) points') + plt.figure() + plt.plot(self.xpredict,y,'bo-',self.xpredict,self.ypredict,'r.-') + plt.title('all points') + + + +def example1(): + m,k = 500,4 + upper = 6 + scale=10 + xs1a = np.linspace(1,upper,m)[:,np.newaxis] + xs1 = xs1a*np.ones((1,4)) + 1/(1.0+np.exp(np.random.randn(m,k))) + xs1 /= np.std(xs1[::k,:],0) # normalize scale, could use cov to normalize + y1true = np.sum(np.sin(xs1)+np.sqrt(xs1),1)[:,np.newaxis] + y1 = y1true + 0.250 * np.random.randn(m,1) + + stride = 2 #use only some points as trainig points e.g 2 means every 2nd + gp1 = GaussProcess(xs1[::stride,:],y1[::stride,:], kernel=kernel_euclid, + ridgecoeff=1e-10) + yhatr1 = gp1.predict(xs1) + plt.figure() + plt.plot(y1true, y1,'bo',y1true, yhatr1,'r.') + plt.title('euclid kernel: true y versus noisy y and estimated y') + plt.figure() + plt.plot(y1,'bo-',y1true,'go-',yhatr1,'r.-') + plt.title('euclid kernel: true (green), noisy (blue) and estimated (red) '+ + 'observations') + + gp2 = GaussProcess(xs1[::stride,:],y1[::stride,:], kernel=kernel_rbf, + scale=scale, ridgecoeff=1e-1) + yhatr2 = gp2.predict(xs1) + plt.figure() + plt.plot(y1true, y1,'bo',y1true, yhatr2,'r.') + plt.title('rbf kernel: true versus noisy (blue) and estimated (red) observations') + plt.figure() + plt.plot(y1,'bo-',y1true,'go-',yhatr2,'r.-') + plt.title('rbf kernel: true (green), noisy (blue) and estimated (red) '+ + 'observations') + #gp2.plot(y1) + + +def example2(m=100, scale=0.01, stride=2): + #m,k = 100,1 + upper = 6 + xs1 = np.linspace(1,upper,m)[:,np.newaxis] + y1true = np.sum(np.sin(xs1**2),1)[:,np.newaxis]/xs1 + y1 = y1true + 0.05*np.random.randn(m,1) + + ridgecoeff = 1e-10 + #stride = 2 #use only some points as trainig points e.g 2 means every 2nd + gp1 = GaussProcess(xs1[::stride,:],y1[::stride,:], kernel=kernel_euclid, + ridgecoeff=1e-10) + yhatr1 = gp1.predict(xs1) + plt.figure() + plt.plot(y1true, y1,'bo',y1true, yhatr1,'r.') + plt.title('euclid kernel: true versus noisy (blue) and estimated (red) observations') + plt.figure() + plt.plot(y1,'bo-',y1true,'go-',yhatr1,'r.-') + plt.title('euclid kernel: true (green), noisy (blue) and estimated (red) '+ + 'observations') + + gp2 = GaussProcess(xs1[::stride,:],y1[::stride,:], kernel=kernel_rbf, + scale=scale, ridgecoeff=1e-2) + yhatr2 = gp2.predict(xs1) + plt.figure() + plt.plot(y1true, y1,'bo',y1true, yhatr2,'r.') + plt.title('rbf kernel: true versus noisy (blue) and estimated (red) observations') + plt.figure() + plt.plot(y1,'bo-',y1true,'go-',yhatr2,'r.-') + plt.title('rbf kernel: true (green), noisy (blue) and estimated (red) '+ + 'observations') + #gp2.plot(y1) + +if __name__ == '__main__': + example2() + #example2(m=1000, scale=0.01) + #example2(m=100, scale=0.5) # oversmoothing + #example2(m=2000, scale=0.005) # this looks good for rbf, zoom in + #example2(m=200, scale=0.01,stride=4) + example1() + #plt.show() + #plt_closeall() # use this to close the open figure windows diff --git a/statsmodels/sandbox/regression/notes_runmnl.txt b/statsmodels/sandbox/regression/notes_runmnl.txt new file mode 100644 index 0000000..ca4a54f --- /dev/null +++ b/statsmodels/sandbox/regression/notes_runmnl.txt @@ -0,0 +1,34 @@ + + + + +access to data and parameters by branch and leaves +-------------------------------------------------- + +* this could be used in a similar way in other system estimators +* dictionary access to data per equation, branch, leaf + * alternative dictionary of individual variables used in equations + * memory: temporary copies while using linalg, or permanent copies +* outsource acces into call-back function or method +* with a parser the dictionaries could be created from a formula +* similar applies for accessing parameters from the params array in optimization (MLE, GMM) + when there are identical parameters across equations or leaves + * in latest version use dictionary mapping coefficient/parameter names to index into params + +global/outer-scope variables +---------------------------- + +* for nested logit I need to access params and store, change probabilites from the branch +* need variables in a scope outside of the recursion +* nested function or save params and probs in instance attribute + + +constraint estimation as alternative and extension +-------------------------------------------------- + +* cross-equation and within equation restrictions on parameters could also be directly + imposed, instead of relying on the dictionary +* no idea yet on how to encode this +* might be easier to use constraint optimizer and keep constraints (partially) separate from + the parameterization in the likelihood calculations + diff --git a/statsmodels/sandbox/regression/ols_anova_original.py b/statsmodels/sandbox/regression/ols_anova_original.py new file mode 100644 index 0000000..ce32a8e --- /dev/null +++ b/statsmodels/sandbox/regression/ols_anova_original.py @@ -0,0 +1,334 @@ +''' convenience functions for ANOVA type analysis with OLS + +Note: statistical results of ANOVA are not checked, OLS is +checked but not whether the reported results are the ones used +in ANOVA + +''' + +from __future__ import print_function +import numpy as np +#from scipy import stats +from statsmodels.compat.python import lmap +import statsmodels.api as sm + + +dt_b = np.dtype([('breed', int), ('sex', int), ('litter', int), + ('pen', int), ('pig', int), ('age', float), + ('bage', float), ('y', float)]) +''' too much work using structured masked arrays +dta = np.mafromtxt('dftest3.data', dtype=dt_b) + +dta_use = np.ma.column_stack[[dta[col] for col in 'y sex age'.split()]] +''' + + +dta = np.genfromtxt('dftest3.data') +print(dta.shape) +mask = np.isnan(dta) +print("rows with missing values", mask.any(1).sum()) +vars = dict((v[0], (idx, v[1])) for idx, v in enumerate(( + ('breed', int), ('sex', int), ('litter', int), + ('pen', int), ('pig', int), ('age', float), + ('bage', float), ('y', float)))) + +datavarnames = 'y sex age'.split() +#possible to avoid temporary array ? +dta_use = dta[:, [vars[col][0] for col in datavarnames]] +keeprows = ~np.isnan(dta_use).any(1) +print('number of complete observations', keeprows.sum()) +dta_used = dta_use[keeprows,:] + +varsused = dict((k, [dta_used[:,idx], idx, vars[k][1]]) for idx, k in enumerate(datavarnames)) + +# use function for dummy +#sexgroups = np.unique(dta_used[:,1]) +#sexdummy = (dta_used[:,1][:, None] == sexgroups).astype(int) + +def data2dummy(x, returnall=False): + '''convert array of categories to dummy variables + by default drops dummy variable for last category + uses ravel, 1d only''' + x = x.ravel() + groups = np.unique(x) + if returnall: + return (x[:, None] == groups).astype(int) + else: + return (x[:, None] == groups).astype(int)[:,:-1] + +def data2proddummy(x): + '''creates product dummy variables from 2 columns of 2d array + + drops last dummy variable, but not from each category + singular with simple dummy variable but not with constant + + quickly written, no safeguards + + ''' + #brute force, assumes x is 2d + #replace with encoding if possible + groups = np.unique(lmap(tuple, x.tolist())) + #includes singularity with additive factors + return (x==groups[:,None,:]).all(-1).T.astype(int)[:,:-1] + +def data2groupcont(x1,x2): + '''create dummy continuous variable + + Parameters + ---------- + x1 : 1d array + label or group array + x2 : 1d array (float) + continuous variable + + Notes + ----- + useful for group specific slope coefficients in regression + ''' + if x2.ndim == 1: + x2 = x2[:,None] + dummy = data2dummy(x1, returnall=True) + return dummy * x2 + +sexdummy = data2dummy(dta_used[:,1]) +factors = ['sex'] +for k in factors: + varsused[k][0] = data2dummy(varsused[k][0]) + +products = [('sex', 'age')] +for k in products: + varsused[''.join(k)] = data2proddummy(np.c_[varsused[k[0]][0],varsused[k[1]][0]]) + +# make dictionary of variables with dummies as one variable +#vars_to_use = {name: data or dummy variables} + +X_b0 = np.c_[sexdummy, dta_used[:,2], np.ones((dta_used.shape[0],1))] +y_b0 = dta_used[:,0] +res_b0 = sm.OLS(y_b0, X_b0).results +print(res_b0.params) +print(res_b0.ssr) + +anova_str0 = ''' +ANOVA statistics (model sum of squares excludes constant) +Source DF Sum Squares Mean Square F Value Pr > F +Model %(df_model)i %(ess)f %(mse_model)f %(fvalue)f %(f_pvalue)f +Error %(df_resid)i %(ssr)f %(mse_resid)f +CTotal %(nobs)i %(uncentered_tss)f %(mse_total)f + +R squared %(rsquared)f +''' + +anova_str = ''' +ANOVA statistics (model sum of squares includes constant) +Source DF Sum Squares Mean Square F Value Pr > F +Model %(df_model)i %(ssmwithmean)f %(mse_model)f %(fvalue)f %(f_pvalue)f +Error %(df_resid)i %(ssr)f %(mse_resid)f +CTotal %(nobs)i %(uncentered_tss)f %(mse_total)f + +R squared %(rsquared)f +''' + +#print(anova_str % dict([('df_model', res.df_model)]) +#anovares = ['df_model' , 'df_resid' + +def anovadict(res): + '''update regression results dictionary with ANOVA specific statistics + + not checked for completeness + ''' + ad = {} + ad.update(res.__dict__) + anova_attr = ['df_model', 'df_resid', 'ess', 'ssr','uncentered_tss', + 'mse_model', 'mse_resid', 'mse_total', 'fvalue', 'f_pvalue', + 'rsquared'] + for key in anova_attr: + ad[key] = getattr(res, key) + ad['nobs'] = res.model.nobs + ad['ssmwithmean'] = res.uncentered_tss - res.ssr + return ad + + +print(anova_str0 % anovadict(res_b0)) +#the following leaves the constant in, not with NIST regression +#but something fishy with res.ess negative in examples +print(anova_str % anovadict(res_b0)) + +print('using sex only') +X2 = np.c_[sexdummy, np.ones((dta_used.shape[0],1))] +res2 = sm.OLS(y_b0, X2).results +print(res2.params) +print(res2.ssr) +print(anova_str % anovadict(res2)) + +print('using age only') +X3 = np.c_[ dta_used[:,2], np.ones((dta_used.shape[0],1))] +res3 = sm.OLS(y_b0, X3).results +print(res3.params) +print(res3.ssr) +print(anova_str % anovadict(res3)) + + +def form2design(ss, data): + '''convert string formula to data dictionary + + ss : string + * I : add constant + * varname : for simple varnames data is used as is + * F:varname : create dummy variables for factor varname + * P:varname1*varname2 : create product dummy variables for + varnames + * G:varname1*varname2 : create product between factor and + continuous variable + data : dict or structured array + data set, access of variables by name as in dictionaries + + Returns + ------- + vars : dictionary + dictionary of variables with converted dummy variables + names : list + list of names, product (P:) and grouped continuous + variables (G:) have name by joining individual names + sorted according to input + + Examples + -------- + >>> xx, n = form2design('I a F:b P:c*d G:c*f', testdata) + >>> xx.keys() + ['a', 'b', 'const', 'cf', 'cd'] + >>> n + ['const', 'a', 'b', 'cd', 'cf'] + + Notes + ----- + + with sorted dict, separate name list wouldn't be necessary + ''' + vars = {} + names = [] + for item in ss.split(): + if item == 'I': + vars['const'] = np.ones(data.shape[0]) + names.append('const') + elif not ':' in item: + vars[item] = data[item] + names.append(item) + elif item[:2] == 'F:': + v = item.split(':')[1] + vars[v] = data2dummy(data[v]) + names.append(v) + elif item[:2] == 'P:': + v = item.split(':')[1].split('*') + vars[''.join(v)] = data2proddummy(np.c_[data[v[0]],data[v[1]]]) + names.append(''.join(v)) + elif item[:2] == 'G:': + v = item.split(':')[1].split('*') + vars[''.join(v)] = data2groupcont(data[v[0]], data[v[1]]) + names.append(''.join(v)) + else: + raise ValueError('unknown expression in formula') + return vars, names + +nobs = 1000 +testdataint = np.random.randint(3, size=(nobs,4)).view([('a',int),('b',int),('c',int),('d',int)]) +testdatacont = np.random.normal( size=(nobs,2)).view([('e',float), ('f',float)]) +import numpy.lib.recfunctions +dt2 = numpy.lib.recfunctions.zip_descr((testdataint, testdatacont),flatten=True) +# concatenate structured arrays +testdata = np.empty((nobs,1), dt2) +for name in testdataint.dtype.names: + testdata[name] = testdataint[name] +for name in testdatacont.dtype.names: + testdata[name] = testdatacont[name] + + +#print(form2design('a',testdata)) + +if 0: + xx, n = form2design('F:a',testdata) + print(xx) + print(form2design('P:a*b',testdata)) + print(data2proddummy((np.c_[testdata['a'],testdata['b']]))) + + xx, names = form2design('a F:b P:c*d',testdata) + +#xx, names = form2design('I a F:b F:c F:d P:c*d',testdata) +xx, names = form2design('I a F:b P:c*d', testdata) +xx, names = form2design('I a F:b P:c*d G:a*e f', testdata) + + +X = np.column_stack([xx[nn] for nn in names]) +# simple test version: all coefficients equal to one +y = X.sum(1) + 0.01*np.random.normal(size=(nobs)) +rest1 = sm.OLS(y,X).results +print(rest1.params) +print(anova_str % anovadict(rest1)) + +def dropname(ss, li): + '''drop names from a list of strings, + names to drop are in space delimeted list + does not change original list + ''' + newli = li[:] + for item in ss.split(): + newli.remove(item) + return newli + +X = np.column_stack([xx[nn] for nn in dropname('ae f', names)]) +# simple test version: all coefficients equal to one +y = X.sum(1) + 0.01*np.random.normal(size=(nobs)) +rest1 = sm.OLS(y,X).results +print(rest1.params) +print(anova_str % anovadict(rest1)) + + +# Example: from Bruce +# ------------------- + +# read data set and drop rows with missing data +dta = np.genfromtxt('dftest3.data', dt_b,missing='.', usemask=True) +print('missing', [dta.mask[k].sum() for k in dta.dtype.names]) +m = dta.mask.view(bool) +droprows = m.reshape(-1,len(dta.dtype.names)).any(1) +# get complete data as plain structured array +# maybe doesn't work with masked arrays +dta_use_b1 = dta[~droprows,:].data +print(dta_use_b1.shape) +print(dta_use_b1.dtype) + +#Example b1: variables from Bruce's glm + +# prepare data and dummy variables +xx_b1, names_b1 = form2design('I F:sex age', dta_use_b1) +# create design matrix +X_b1 = np.column_stack([xx_b1[nn] for nn in dropname('', names_b1)]) +y_b1 = dta_use_b1['y'] +# estimate using OLS +rest_b1 = sm.OLS(y_b1, X_b1).results +# print(results) +print(rest_b1.params) +print(anova_str % anovadict(rest_b1)) +#compare with original version only in original version +print(anova_str % anovadict(res_b0)) + +# Example: use all variables except pig identifier + +allexog = ' '.join(dta.dtype.names[:-1]) +#'breed sex litter pen pig age bage' + +xx_b1a, names_b1a = form2design('I F:breed F:sex F:litter F:pen age bage', dta_use_b1) +X_b1a = np.column_stack([xx_b1a[nn] for nn in dropname('', names_b1a)]) +y_b1a = dta_use_b1['y'] +rest_b1a = sm.OLS(y_b1a, X_b1a).results +print(rest_b1a.params) +print(anova_str % anovadict(rest_b1a)) + +for dropn in names_b1a: + print('\nResults dropping', dropn) + X_b1a_ = np.column_stack([xx_b1a[nn] for nn in dropname(dropn, names_b1a)]) + y_b1a_ = dta_use_b1['y'] + rest_b1a_ = sm.OLS(y_b1a_, X_b1a_).results + #print(rest_b1a_.params + print(anova_str % anovadict(rest_b1a_)) + + diff --git a/statsmodels/sandbox/regression/onewaygls.py b/statsmodels/sandbox/regression/onewaygls.py new file mode 100644 index 0000000..7db0921 --- /dev/null +++ b/statsmodels/sandbox/regression/onewaygls.py @@ -0,0 +1,382 @@ +# -*- coding: utf-8 -*- +""" +F test for null hypothesis that coefficients in several regressions are the same + +* implemented by creating groupdummies*exog and testing appropriate contrast + matrices +* similar to test for structural change in all variables at predefined break points +* allows only one group variable +* currently tests for change in all exog variables +* allows for heterogscedasticity, error variance varies across groups +* does not work if there is a group with only a single observation + +TODO +---- + +* generalize anova structure, + - structural break in only some variables + - compare structural breaks in several exog versus constant only + - fast way to construct comparisons +* print anova style results +* add all pairwise comparison tests (DONE) with and without Bonferroni correction +* add additional test, likelihood-ratio, lagrange-multiplier, wald ? +* test for heteroscedasticity, equality of variances + - how? + - like lagrange-multiplier in stattools heteroscedasticity tests +* permutation or bootstrap test statistic or pvalues + + +References +---------- + +Greene: section 7.4 Modeling and Testing for a Structural Break + is not the same because I use a different normalization, which looks easier + for more than 2 groups/subperiods + +after looking at Greene: +* my version assumes that all groups are large enough to estimate the coefficients +* in sections 7.4.2 and 7.5.3, predictive tests can also be used when there are + insufficient (nobs>> res.contrasts.keys() + [(0, 1), 1, 'all', 3, (1, 2), 2, (1, 3), (2, 3), (0, 3), (0, 2)] + + The keys are based on the original names or labels of the groups. + + TODO: keys can be numpy scalars and then the keys cannot be sorted + + + + ''' + if not hasattr(self, 'weights'): + self.fitbygroups() + groupdummy = (self.groupsint[:,None] == self.uniqueint).astype(int) + #order of dummy variables by variable - not used + #dummyexog = self.exog[:,:,None]*groupdummy[:,None,1:] + #order of dummy variables by grous - used + dummyexog = self.exog[:,None,:]*groupdummy[:,1:,None] + exog = np.c_[self.exog, dummyexog.reshape(self.exog.shape[0],-1)] #self.nobs ?? + #Notes: I changed to drop first group from dummy + #instead I want one full set dummies + if self.het: + weights = self.weights + res = WLS(self.endog, exog, weights=weights).fit() + else: + res = OLS(self.endog, exog).fit() + self.lsjoint = res + contrasts = {} + nvars = self.exog.shape[1] + nparams = exog.shape[1] + ndummies = nparams - nvars + contrasts['all'] = np.c_[np.zeros((ndummies, nvars)), np.eye(ndummies)] + for groupind, group in enumerate(self.unique[1:]): #need enumerate if groups != groupsint + groupind = groupind + 1 + contr = np.zeros((nvars, nparams)) + contr[:,nvars*groupind:nvars*(groupind+1)] = np.eye(nvars) + contrasts[group] = contr + #save also for pairs, see next + contrasts[(self.unique[0], group)] = contr + + #Note: I'm keeping some duplication for testing + pairs = np.triu_indices(len(self.unique),1) + for ind1,ind2 in zip(*pairs): #replace with group1, group2 in sorted(keys) + if ind1 == 0: + continue # need comparison with benchmark/normalization group separate + g1 = self.unique[ind1] + g2 = self.unique[ind2] + group = (g1, g2) + contr = np.zeros((nvars, nparams)) + contr[:,nvars*ind1:nvars*(ind1+1)] = np.eye(nvars) + contr[:,nvars*ind2:nvars*(ind2+1)] = -np.eye(nvars) + contrasts[group] = contr + + + self.contrasts = contrasts + + def fitpooled(self): + '''fit the pooled model, which assumes there are no differences across groups + ''' + if self.het: + if not hasattr(self, 'weights'): + self.fitbygroups() + weights = self.weights + res = WLS(self.endog, self.exog, weights=weights).fit() + else: + res = OLS(self.endog, self.exog).fit() + self.lspooled = res + + def ftest_summary(self): + '''run all ftests on the joint model + + Returns + ------- + fres : str + a string that lists the results of all individual f-tests + summarytable : list of tuples + contains (pair, (fvalue, pvalue,df_denom, df_num)) for each f-test + + Note + ---- + This are the raw results and not formatted for nice printing. + + ''' + if not hasattr(self, 'lsjoint'): + self.fitjoint() + txt = [] + summarytable = [] + + txt.append('F-test for equality of coefficients across groups') + fres = self.lsjoint.f_test(self.contrasts['all']) + txt.append(fres.__str__()) + summarytable.append(('all',(fres.fvalue, fres.pvalue, fres.df_denom, fres.df_num))) + +# for group in self.unique[1:]: #replace with group1, group2 in sorted(keys) +# txt.append('F-test for equality of coefficients between group' +# ' %s and group %s' % (group, '0')) +# fres = self.lsjoint.f_test(self.contrasts[group]) +# txt.append(fres.__str__()) +# summarytable.append((group,(fres.fvalue, fres.pvalue, fres.df_denom, fres.df_num))) + pairs = np.triu_indices(len(self.unique),1) + for ind1,ind2 in zip(*pairs): #replace with group1, group2 in sorted(keys) + g1 = self.unique[ind1] + g2 = self.unique[ind2] + txt.append('F-test for equality of coefficients between group' + ' %s and group %s' % (g1, g2)) + group = (g1, g2) + fres = self.lsjoint.f_test(self.contrasts[group]) + txt.append(fres.__str__()) + summarytable.append((group,(fres.fvalue, fres.pvalue, fres.df_denom, fres.df_num))) + + self.summarytable = summarytable + return '\n'.join(txt), summarytable + + + def print_summary(res): + '''printable string of summary + + ''' + groupind = res.groups + #res.fitjoint() #not really necessary, because called by ftest_summary + if hasattr(res, 'self.summarytable'): + summtable = self.summarytable + else: + _, summtable = res.ftest_summary() + txt = '' + #print ft[0] #skip because table is nicer + templ = \ +'''Table of F-tests for overall or pairwise equality of coefficients' +%(tab)s + + +Notes: p-values are not corrected for many tests + (no Bonferroni correction) + * : reject at 5%% uncorrected confidence level +Null hypothesis: all or pairwise coefficient are the same' +Alternative hypothesis: all coefficients are different' + + +Comparison with stats.f_oneway +%(statsfow)s + + +Likelihood Ratio Test +%(lrtest)s +Null model: pooled all coefficients are the same across groups,' +Alternative model: all coefficients are allowed to be different' +not verified but looks close to f-test result' + + +Ols parameters by group from individual, separate ols regressions' +%(olsbg)s +for group in sorted(res.olsbygroup): + r = res.olsbygroup[group] + print group, r.params + + +Check for heteroscedasticity, ' +variance and standard deviation for individual regressions' +%(grh)s +variance ', res.sigmabygroup +standard dev', np.sqrt(res.sigmabygroup) +''' + + from statsmodels.iolib import SimpleTable + resvals = {} + resvals['tab'] = str(SimpleTable([(['%r'%(row[0],)] + + list(row[1]) + + ['*']*(row[1][1]>0.5).item() ) for row in summtable], + headers=['pair', 'F-statistic','p-value','df_denom', + 'df_num'])) + resvals['statsfow'] = str(stats.f_oneway(*[res.endog[groupind==gr] for gr in + res.unique])) + #resvals['lrtest'] = str(res.lr_test()) + resvals['lrtest'] = str(SimpleTable([res.lr_test()], + headers=['likelihood ratio', 'p-value', 'df'] )) + + resvals['olsbg'] = str(SimpleTable([[group] + + res.olsbygroup[group].params.tolist() + for group in sorted(res.olsbygroup)])) + resvals['grh'] = str(SimpleTable(np.vstack([res.sigmabygroup, + np.sqrt(res.sigmabygroup)]), + headers=res.unique.tolist())) + + return templ % resvals + + + + # a variation of this has been added to RegressionResults as compare_lr + def lr_test(self): + '''generic likelihood ration test between nested models + + \begin{align} D & = -2(\ln(\text{likelihood for null model}) - \ln(\text{likelihood for alternative model})) \\ & = -2\ln\left( \frac{\text{likelihood for null model}}{\text{likelihood for alternative model}} \right). \end{align} + + is distributed as chisquare with df equal to difference in number of parameters or equivalently + difference in residual degrees of freedom (sign?) + + TODO: put into separate function + ''' + if not hasattr(self, 'lsjoint'): + self.fitjoint() + if not hasattr(self, 'lspooled'): + self.fitpooled() + loglikejoint = self.lsjoint.llf + loglikepooled = self.lspooled.llf + lrstat = -2*(loglikepooled - loglikejoint) #??? check sign + lrdf = self.lspooled.df_resid - self.lsjoint.df_resid + lrpval = stats.chi2.sf(lrstat, lrdf) + + return lrstat, lrpval, lrdf + diff --git a/statsmodels/sandbox/regression/penalized.py b/statsmodels/sandbox/regression/penalized.py new file mode 100644 index 0000000..5c13224 --- /dev/null +++ b/statsmodels/sandbox/regression/penalized.py @@ -0,0 +1,364 @@ +# -*- coding: utf-8 -*- +"""linear model with Theil prior probabilistic restrictions, generalized Ridge + +Created on Tue Dec 20 00:10:10 2011 + +Author: Josef Perktold +License: BSD-3 + +open issues +* selection of smoothing factor, strength of prior, cross validation +* GLS, does this really work this way +* None of inherited results have been checked yet, + I'm not sure if any need to be adjusted or if only interpretation changes + One question is which results are based on likelihood (residuals) and which + are based on "posterior" as for example bse and cov_params + +* helper functions to construct priors? +* increasing penalization for ordered regressors, e.g. polynomials + +* compare with random/mixed effects/coefficient, like estimated priors + + + +there is something fishy with the result instance, some things, e.g. +normalized_cov_params, don't look like they update correctly as we +search over lambda -> some stale state again ? + +I added df_model to result class using the hatmatrix, but df_model is defined +in model instance not in result instance. -> not clear where refactoring should +occur. df_resid doesn't get updated correctly. +problem with definition of df_model, it has 1 subtracted for constant + + + +""" +from __future__ import print_function +from statsmodels.compat.python import lrange +import numpy as np +import statsmodels.base.model as base +from statsmodels.regression.linear_model import OLS, GLS, RegressionResults + + +def atleast_2dcols(x): + x = np.asarray(x) + if x.ndim == 1: + x = x[:,None] + return x + + + +class TheilGLS(GLS): + '''GLS with probabilistic restrictions + + essentially Bayes with informative prior + + note: I'm making up the GLS part, might work only for OLS + + ''' + + + def __init__(self, endog, exog, r_matrix, q_matrix=None, sigma_prior=None, sigma=None): + self.r_matrix = np.asarray(r_matrix) + self.q_matrix = atleast_2dcols(q_matrix) + if np.size(sigma_prior) == 1: + sigma_prior = sigma_prior * np.eye(self.r_matrix.shape[0]) #no numerical shortcuts + + self.sigma_prior = sigma_prior + self.sigma_prior_inv = np.linalg.pinv(sigma_prior) #or inv + super(self.__class__, self).__init__(endog, exog, sigma=sigma) + + + def fit(self, lambd=1.): + #this does duplicate transformation, but I need resid not wresid + res_gls = GLS(self.endog, self.exog, sigma=self.sigma).fit() + self.res_gls = res_gls + sigma2_e = res_gls.mse_resid + + r_matrix = self.r_matrix + q_matrix = self.q_matrix + sigma_prior_inv = self.sigma_prior_inv + x = self.wexog + y = self.wendog[:,None] + #why are sigma2_e * lambd multiplied, not ratio? + #larger lambd -> stronger prior (it's not the variance) + #print('lambd inside fit', lambd + xpx = np.dot(x.T, x) + \ + sigma2_e * lambd * np.dot(r_matrix.T, np.dot(sigma_prior_inv, r_matrix)) + xpy = np.dot(x.T, y) + \ + sigma2_e * lambd * np.dot(r_matrix.T, np.dot(sigma_prior_inv, q_matrix)) + #xpy = xpy[:,None] + + xpxi = np.linalg.pinv(xpx) + params = np.dot(xpxi, xpy) #or solve + params = np.squeeze(params) + self.normalized_cov_params = xpxi #why attach it to self, i.e. model? + + lfit = TheilRegressionResults(self, params, + normalized_cov_params=xpxi) + + lfit.penalization_factor = lambd + return lfit + + def fit_minic(self): + #this doesn't make sense, since number of parameters stays unchanged + #need leave-one-out, gcv; or some penalization for weak priors + #added extra penalization for lambd + def get_bic(lambd): + #return self.fit(lambd).bic #+lambd #+ 1./lambd #added 1/lambd for checking + #return self.fit(lambd).gcv() + #return self.fit(lambd).cv() + return self.fit(lambd).aicc() + + from scipy import optimize + lambd = optimize.fmin(get_bic, 1.) + return lambd + +#TODO: +#I need the hatmatrix in the model if I want to do iterative fitting, e.g. GCV +#move to model or use it from a results instance inside the model, +# each call to fit returns results instance + +class TheilRegressionResults(RegressionResults): + + #cache + def hatmatrix_diag(self): + ''' + + diag(X' xpxi X) + + where xpxi = (X'X + lambd * sigma_prior)^{-1} + + Notes + ----- + + uses wexog, so this includes weights or sigma - check this case + + not clear whether I need to multiply by sigmahalf, i.e. + + (W^{-0.5} X) (X' W X)^{-1} (W^{-0.5} X)' or + (W X) (X' W X)^{-1} (W X)' + + projection y_hat = H y or in terms of transformed variables (W^{-0.5} y) + + might be wrong for WLS and GLS case + ''' + xpxi = self.model.normalized_cov_params + #something fishy with self.normalized_cov_params in result, doesn't update + #print(self.model.wexog.shape, np.dot(xpxi, self.model.wexog.T).shape + return (self.model.wexog * np.dot(xpxi, self.model.wexog.T).T).sum(1) + + def hatmatrix_trace(self): + return self.hatmatrix_diag().sum() + + #this doesn't update df_resid + @property #needs to be property or attribute (no call) + def df_model(self): + return self.hatmatrix_trace() + + #Note: mse_resid uses df_resid not nobs-k_vars, which might differ if df_model, tr(H), is used + #in paper for gcv ess/nobs is used instead of mse_resid + def gcv(self): + return self.mse_resid / (1. - self.hatmatrix_trace() / self.nobs)**2 + + def cv(self): + return ((self.resid / (1. - self.hatmatrix_diag()))**2).sum() / self.nobs + + def aicc(self): + aic = np.log(self.mse_resid) + 1 + aic += 2 * (1. + self.hatmatrix_trace()) / (self.nobs - self.hatmatrix_trace() -2) + return aic + + +#contrast/restriction matrices, temporary location + +def coef_restriction_meandiff(n_coeffs, n_vars=None, position=0): + + reduced = np.eye(n_coeffs) - 1./n_coeffs + if n_vars is None: + return reduced + else: + full = np.zeros((n_coeffs, n_vars)) + full[:, position:position+n_coeffs] = reduced + return full + +def coef_restriction_diffbase(n_coeffs, n_vars=None, position=0, base_idx=0): + + reduced = -np.eye(n_coeffs) #make all rows, drop one row later + reduced[:, base_idx] = 1 + + keep = lrange(n_coeffs) + del keep[base_idx] + reduced = np.take(reduced, keep, axis=0) + + if n_vars is None: + return reduced + else: + full = np.zeros((n_coeffs-1, n_vars)) + full[:, position:position+n_coeffs] = reduced + return full + +def next_odd(d): + return d + (1 - d % 2) + +def coef_restriction_diffseq(n_coeffs, degree=1, n_vars=None, position=0, base_idx=0): + #check boundaries, returns "valid" ? + + if degree == 1: + diff_coeffs = [-1, 1] + n_points = 2 + elif degree > 1: + from scipy import misc + n_points = next_odd(degree + 1) #next odd integer after degree+1 + diff_coeffs = misc.central_diff_weights(n_points, ndiv=degree) + + dff = np.concatenate((diff_coeffs, np.zeros(n_coeffs - len(diff_coeffs)))) + from scipy import linalg + reduced = linalg.toeplitz(dff, np.zeros(n_coeffs - len(diff_coeffs) + 1)).T + #reduced = np.kron(np.eye(n_coeffs-n_points), diff_coeffs) + + if n_vars is None: + return reduced + else: + full = np.zeros((n_coeffs-1, n_vars)) + full[:, position:position+n_coeffs] = reduced + return full + + +## +## R = np.c_[np.zeros((n_groups, k_vars-1)), np.eye(n_groups)] +## r = np.zeros(n_groups) +## R = np.c_[np.zeros((n_groups-1, k_vars)), +## np.eye(n_groups-1)-1./n_groups * np.ones((n_groups-1, n_groups-1))] + + + +if __name__ == '__main__': + + import numpy as np + import statsmodels.api as sm + + examples = [2] + + np.random.seed(765367) + np.random.seed(97653679) + nsample = 100 + x = np.linspace(0,10, nsample) + X = sm.add_constant(np.column_stack((x, x**2, (x/5.)**3)), prepend=True) + beta = np.array([10, 1, 0.1, 0.5]) + y = np.dot(X, beta) + np.random.normal(size=nsample) + + res_ols = sm.OLS(y, X).fit() + + R = [[0, 0, 0 , 1]] + r = [0] #, 0, 0 , 0] + lambd = 1 #1e-4 + mod = TheilGLS(y, X, r_matrix=R, q_matrix=r, sigma_prior=lambd) + res = mod.fit() + print(res_ols.params) + print(res.params) + + #example 2 + #I need more flexible penalization in example, the penalization should + #get stronger for higher order terms + #np.random.seed(1) + nobs = 200 + k_vars = 10 + k_true = 6 + sig_e = 0.25 #0.5 + x = np.linspace(-2,2, nobs) + #X = sm.add_constant(np.column_stack((x, x**2, (x/5.)**3)), prepend=True) + X = (x/x.max())[:,None]**np.arange(k_vars) + beta = np.zeros(k_vars) + beta[:k_true] = np.array([1, -2, 0.5, 1.5, -0.1, 0.1])[:k_true] + y_true = np.dot(X, beta) + y = y_true + sig_e * np.random.normal(size=nobs) + + res_ols = sm.OLS(y, X).fit() + + #R = np.c_[np.zeros((k_vars-4, 4)), np.eye(k_vars-4)] # has two large true coefficients penalized + not_penalized = 4 + R = np.c_[np.zeros((k_vars-not_penalized, not_penalized)), np.eye(k_vars-not_penalized)] + #increasingly strong penalization + R = np.c_[np.zeros((k_vars-not_penalized, not_penalized)), np.diag((1+2*np.arange(k_vars-not_penalized)))] + r = np.zeros(k_vars-not_penalized) +## R = -coef_restriction_diffseq(6, 1, n_vars=10, position=4) #doesn't make sense for polynomial +## R = np.vstack((R, np.zeros(R.shape[1]))) +## R[-1,-1] = 1 + r = np.zeros(R.shape[0]) + lambd = 2 #1e-4 + mod = TheilGLS(y, X, r_matrix=R, q_matrix=r, sigma_prior=lambd) + res = mod.fit() + print(res_ols.params) + print(res.params) + + res_bic = mod.fit_minic() #this will just return zero + res = mod.fit(res_bic) + + print(res_bic) + for lambd in np.linspace(0, 80, 21): + res_l = mod.fit(lambd) + #print(lambd, res_l.params[-2:], res_l.bic, res_l.bic + 1./lambd, res.df_model + print((lambd, res_l.params[-2:], res_l.bic, res.df_model, np.trace(res.normalized_cov_params))) + + + import matplotlib.pyplot as plt + plt.figure() + plt.plot(beta, 'k-o', label='true') + plt.plot(res_ols.params, '-o', label='ols') + plt.plot(res.params, '-o', label='theil') + plt.legend() + plt.title('Polynomial fitting: estimated coefficients') + + plt.figure() + plt.plot(y, 'o') + plt.plot(y_true, 'k-', label='true') + plt.plot(res_ols.fittedvalues, '-', label='ols') + plt.plot(res.fittedvalues, '-', label='theil') + plt.legend() + plt.title('Polynomial fitting: fitted values') + #plt.show() + + if 3 in examples: + #example 3 + nobs = 600 + nobs_i = 20 + n_groups = nobs // nobs_i + k_vars = 3 + + from statsmodels.sandbox.panel.random_panel import PanelSample + dgp = PanelSample(nobs, k_vars, n_groups) + dgp.group_means = 2 + np.random.randn(n_groups) #add random intercept + print('seed', dgp.seed) + y = dgp.generate_panel() + X = np.column_stack((dgp.exog[:,1:], + dgp.groups[:,None] == np.arange(n_groups))) + res_ols = sm.OLS(y, X).fit() + R = np.c_[np.zeros((n_groups, k_vars-1)), np.eye(n_groups)] + r = np.zeros(n_groups) + R = np.c_[np.zeros((n_groups-1, k_vars)), + np.eye(n_groups-1)-1./n_groups * np.ones((n_groups-1, n_groups-1))] + r = np.zeros(n_groups-1) + R[:, k_vars-1] = -1 + + lambd = 1 #1e-4 + mod = TheilGLS(y, X, r_matrix=R, q_matrix=r, sigma_prior=lambd) + res = mod.fit() + print(res.params) + + params_l = [] + for lambd in np.linspace(0, 20, 21): + params_l.append(mod.fit(5.*lambd).params) + + params_l = np.array(params_l) + + plt.figure() + plt.plot(params_l.T) + plt.title('Panel Data with random intercept: shrinkage to being equal') + plt.xlabel('parameter index') + plt.figure() + plt.plot(params_l[:,k_vars:]) + plt.title('Panel Data with random intercept: shrinkage to being equal') + plt.xlabel('strength of prior') + + #plt.show() diff --git a/statsmodels/sandbox/regression/predstd.py b/statsmodels/sandbox/regression/predstd.py new file mode 100644 index 0000000..31ef7f9 --- /dev/null +++ b/statsmodels/sandbox/regression/predstd.py @@ -0,0 +1,101 @@ +'''Additional functions + +prediction standard errors and confidence intervals + + +A: josef pktd +''' + +import numpy as np +from scipy import stats + +def atleast_2dcol(x): + ''' convert array_like to 2d from 1d or 0d + + not tested because not used + ''' + x = np.asarray(x) + if (x.ndim == 1): + x = x[:, None] + elif (x.ndim == 0): + x = np.atleast_2d(x) + elif (x.ndim > 0): + raise ValueError('too many dimensions') + return x + + +def wls_prediction_std(res, exog=None, weights=None, alpha=0.05): + '''calculate standard deviation and confidence interval for prediction + + applies to WLS and OLS, not to general GLS, + that is independently but not identically distributed observations + + Parameters + ---------- + res : regression result instance + results of WLS or OLS regression required attributes see notes + exog : array_like (optional) + exogenous variables for points to predict + weights : scalar or array_like (optional) + weights as defined for WLS (inverse of variance of observation) + alpha : float (default: alpha = 0.05) + confidence level for two-sided hypothesis + + Returns + ------- + predstd : array_like, 1d + standard error of prediction + same length as rows of exog + interval_l, interval_u : array_like + lower und upper confidence bounds + + Notes + ----- + The result instance needs to have at least the following + res.model.predict() : predicted values or + res.fittedvalues : values used in estimation + res.cov_params() : covariance matrix of parameter estimates + + If exog is 1d, then it is interpreted as one observation, + i.e. a row vector. + + testing status: not compared with other packages + + References + ---------- + + Greene p.111 for OLS, extended to WLS by analogy + + ''' + # work around current bug: + # fit doesn't attach results to model, predict broken + #res.model.results + + covb = res.cov_params() + if exog is None: + exog = res.model.exog + predicted = res.fittedvalues + if weights is None: + weights = res.model.weights + else: + exog = np.atleast_2d(exog) + if covb.shape[1] != exog.shape[1]: + raise ValueError('wrong shape of exog') + predicted = res.model.predict(res.params, exog) + if weights is None: + weights = 1. + else: + weights = np.asarray(weights) + if weights.size > 1 and len(weights) != exog.shape[0]: + raise ValueError('weights and exog do not have matching shape') + + + # full covariance: + #predvar = res3.mse_resid + np.diag(np.dot(X2,np.dot(covb,X2.T))) + # predication variance only + predvar = res.mse_resid/weights + (exog * np.dot(covb, exog.T).T).sum(1) + predstd = np.sqrt(predvar) + tppf = stats.t.isf(alpha/2., res.df_resid) + interval_u = predicted + tppf * predstd + interval_l = predicted - tppf * predstd + return predstd, interval_l, interval_u diff --git a/statsmodels/sandbox/regression/runmnl.py b/statsmodels/sandbox/regression/runmnl.py new file mode 100644 index 0000000..28476e3 --- /dev/null +++ b/statsmodels/sandbox/regression/runmnl.py @@ -0,0 +1,374 @@ +'''conditional logit and nested conditional logit + +nested conditional logit is supposed to be the random utility version +(RU2 and maybe RU1) + +References: +----------- +currently based on: +Greene, Econometric Analysis, 5th edition and draft (?) +Hess, Florian, 2002, Structural Choice analysis with nested logit models, + The Stats Journal 2(3) pp 227-252 + +not yet used: +Silberhorn Nadja, Yasemin Boztug, Lutz Hildebrandt, 2008, Estimation with the + nested logit model: specifications and software particularities, + OR Spectrum +Koppelman, Frank S., and Chandra Bhat with technical support from Vaneet Sethi, + Sriram Subramanian, Vincent Bernardin and Jian Zhang, 2006, + A Self Instructing Course in Mode Choice Modeling: Multinomial and + Nested Logit Models + +Author: josef-pktd +License: BSD (simplified) +''' + +from __future__ import print_function +from statsmodels.compat.python import zip +import numpy as np +import numpy.lib.recfunctions as recf + +class TryCLogit(object): + ''' + Conditional Logit, data handling test + + Parameters + ---------- + + endog : array (nobs,nchoices) + dummy encoding of realized choices + exog_bychoices : list of arrays + explanatory variables, one array of exog for each choice. Variables + with common coefficients have to be first in each array + ncommon : int + number of explanatory variables with common coefficients + + Notes + ----- + + Utility for choice j is given by + + $V_j = X_j * beta + Z * gamma_j$ + + where X_j contains generic variables (terminology Hess) that have the same + coefficient across choices, and Z are variables, like individual-specific + variables that have different coefficients across variables. + + If there are choice specific constants, then they should be contained in Z. + For identification, the constant of one choice should be dropped. + + + ''' + + def __init__(self, endog, exog_bychoices, ncommon): + self.endog = endog + self.exog_bychoices = exog_bychoices + self.ncommon = ncommon + self.nobs, self.nchoices = endog.shape + self.nchoices = len(exog_bychoices) + + #TODO: rename beta to params and include inclusive values for nested CL + betaind = [exog_bychoices[ii].shape[1]-ncommon for ii in range(4)] + zi = np.r_[[ncommon], ncommon + np.array(betaind).cumsum()] + beta_indices = [np.r_[np.array([0, 1]),z[zi[ii]:zi[ii+1]]] + for ii in range(len(zi)-1)] + self.beta_indices = beta_indices + + #for testing only + beta = np.arange(7) + betaidx_bychoices = [beta[idx] for idx in beta_indices] + + + def xbetas(self, params): + '''these are the V_i + ''' + + res = np.empty((self.nobs, self.nchoices)) + for choiceind in range(self.nchoices): + res[:,choiceind] = np.dot(self.exog_bychoices[choiceind], + params[self.beta_indices[choiceind]]) + return res + + def loglike(self, params): + #normalization ? + xb = self.xbetas(params) + expxb = np.exp(xb) + sumexpxb = expxb.sum(1)#[:,None] + probs = expxb/expxb.sum(1)[:,None] #we don't really need this for all + loglike = (self.endog * np.log(probs)).sum(1) + #is this the same: YES + #self.logliketest = (self.endog * xb).sum(1) - np.log(sumexpxb) + #if self.endog where index then xb[self.endog] + return -loglike.sum() #return sum for now not for each observation + + def fit(self, start_params=None): + if start_params is None: + start_params = np.zeros(6) # need better np.zeros(6) + return optimize.fmin(self.loglike, start_params, maxfun=10000) + + +class TryNCLogit(object): + ''' + Nested Conditional Logit (RUNMNL), data handling test + + unfinished, doesn't do anything yet + + ''' + + def __init__(self, endog, exog_bychoices, ncommon): + self.endog = endog + self.exog_bychoices = exog_bychoices + self.ncommon = ncommon + self.nobs, self.nchoices = endog.shape + self.nchoices = len(exog_bychoices) + + + #TODO rename beta to params and include inclusive values for nested CL + betaind = [exog_bychoices[ii].shape[1]-ncommon for ii in range(4)] + zi = np.r_[[ncommon], ncommon + np.array(betaind).cumsum()] + beta_indices = [np.r_[np.array([0, 1]),z[zi[ii]:zi[ii+1]]] + for ii in range(len(zi)-1)] + self.beta_indices = beta_indices + + #for testing only + beta = np.arange(7) + betaidx_bychoices = [beta[idx] for idx in beta_indices] + + + def xbetas(self, params): + '''these are the V_i + ''' + + res = np.empty((self.nobs, self.nchoices)) + for choiceind in range(self.nchoices): + res[:,choiceind] = np.dot(self.exog_bychoices[choiceind], + params[self.beta_indices[choiceind]]) + return res + + def loglike_leafbranch(self, params, tau): + #normalization ? + #check/change naming for tau + xb = self.xbetas(params) + expxb = np.exp(xb/tau) + sumexpxb = expxb.sum(1)#[:,None] + logsumexpxb = np.log(sumexpxb) + #loglike = (self.endog * xb).sum(1) - logsumexpxb + probs = expxb/sumexpxb[:,None] + return probs, logsumexpxp + #if self.endog where index then xb[self.endog] + #return -loglike.sum() #return sum for now not for each observation + + def loglike_branch(self, params, tau): + #not yet sure how to keep track of branches during walking of tree + ivs = [] + for b in branches: + probs, iv = loglike_leafbranch(self, params, tau) + ivs.append(iv) + + #ivs = np.array(ivs) #note ivs is (nobs,nbranchchoices) + ivs = np.column_stack(ivs) # this way ? + exptiv = np.exp(tau*ivs) + sumexptiv = exptiv.sum(1) + logsumexpxb = np.log(sumexpxb) + probs = exptiv/sumexptiv[:,None] + + +####### obsolete version to try out attaching data, +####### new in treewalkerclass.py, copy new version to replace this +####### problem with bzr I will disconnect history when copying +testxb = 0 #global to class +class RU2NMNL(object): + '''Nested Multinomial Logit with Random Utility 2 parameterization + + ''' + + def __init__(self, endog, exog, tree, paramsind): + self.endog = endog + self.datadict = exog + self.tree = tree + self.paramsind = paramsind + + self.branchsum = '' + self.probs = {} + + + def calc_prob(self, tree, keys=None): + '''walking a tree bottom-up based on dictionary + ''' + endog = self.endog + datadict = self.datadict + paramsind = self.paramsind + branchsum = self.branchsum + + + if isinstance(tree, tuple): #assumes leaves are int for choice index + name, subtree = tree + print(name, datadict[name]) + print('subtree', subtree) + keys = [] + if testxb: + branchsum = datadict[name] + else: + branchsum = name #0 + for b in subtree: + print(b) + #branchsum += branch2(b) + branchsum = branchsum + self.calc_prob(b, keys) + print('branchsum', branchsum, keys) + for k in keys: + self.probs[k] = self.probs[k] + ['*' + name + '-prob'] + + else: + keys.append(tree) + self.probs[tree] = [tree + '-prob' + + '(%s)' % ', '.join(self.paramsind[tree])] + if testxb: + leavessum = sum((datadict[bi] for bi in tree)) + print('final branch with', tree, ''.join(tree), leavessum) #sum(tree) + return leavessum #sum(xb[tree]) + else: + return ''.join(tree) #sum(tree) + + print('working on branch', tree, branchsum) + return branchsum + + + +#Trying out ways to handle data +#------------------------------ + +#travel data from Greene +dta = np.genfromtxt('TableF23-2.txt', skip_header=1, + names='Mode Ttme Invc Invt GC Hinc PSize'.split()) + +endog = dta['Mode'].reshape(-1,4).copy() #I don't want a view +nobs, nchoices = endog.shape +datafloat = dta.view(float).reshape(-1,7) +exog = datafloat[:,1:].reshape(-1,6*nchoices).copy() #I don't want a view + +print(endog.sum(0)) +varnames = dta.dtype.names +print(varnames[1:]) +modes = ['Air', 'Train', 'Bus', 'Car'] +print(exog.mean(0).reshape(nchoices, -1)) # Greene Table 23.23 + + + + +#try dummy encoding for individual-specific variables +exog_choice_names = ['GC', 'Ttme'] +exog_choice = np.column_stack([dta[name] for name in exog_choice_names]) +exog_choice = exog_choice.reshape(-1,len(exog_choice_names)*nchoices) +exog_choice = np.c_[endog, exog_choice] # add constant dummy + +exog_individual = dta['Hinc'][:,None] + +#exog2 = np.c_[exog_choice, exog_individual*endog] + +# we can also overwrite and select in original datafloat +# e.g. Hinc*endog{choice) + +choice_index = np.arange(dta.shape[0]) % nchoices +hinca = dta['Hinc']*(choice_index==0) +dta2=recf.append_fields(dta, ['Hinca'],[hinca], usemask=False) + + +#another version + +xi = [] +for ii in range(4): + xi.append(datafloat[choice_index==ii]) + +#one more +dta1 = recf.append_fields(dta, ['Const'],[np.ones(dta.shape[0])], usemask=False) + +xivar = [['GC', 'Ttme', 'Const', 'Hinc'], + ['GC', 'Ttme', 'Const'], + ['GC', 'Ttme', 'Const'], + ['GC', 'Ttme']] #need to drop one constant + +xi = [] +for ii in range(4): + xi.append(dta1[xivar[ii]][choice_index==ii]) + #this doesn't change sequence of columns, bug report by Skipper I think + +ncommon = 2 +betaind = [len(xi[ii].dtype.names)-ncommon for ii in range(4)] +zi=np.r_[[ncommon], ncommon+np.array(betaind).cumsum()] +z=np.arange(7) #what is n? +betaindices = [np.r_[np.array([0, 1]),z[zi[ii]:zi[ii+1]]] + for ii in range(len(zi)-1)] + +beta = np.arange(7) +betai = [beta[idx] for idx in betaindices] + + + + +#examples for TryCLogit +#---------------------- + + +#get exogs as float +xifloat = [xx.view(float).reshape(nobs,-1) for xx in xi] +clogit = TryCLogit(endog, xifloat, 2) +from scipy import optimize + +debug = 0 +if debug: + res = optimize.fmin(clogit.loglike, np.ones(6)) +#estimated parameters from Greene: +tab2324 = [-0.15501, -0.09612, 0.01329, 5.2074, 3.8690, 3.1632] +if debug: + res2 = optimize.fmin(clogit.loglike, tab2324) + +res3 = optimize.fmin(clogit.loglike, np.zeros(6),maxfun=10000) +#this has same numbers as Greene table 23.24, but different sequence +#coefficient on GC is exactly 10% of Greene's +#TODO: get better starting values +''' +Optimization terminated successfully. + Current function value: 199.128369 + Iterations: 957 + Function evaluations: 1456 +array([-0.0961246 , -0.0155019 , 0.01328757, 5.20741244, 3.86905293, + 3.16319074]) +''' +res3corr = res3[[1, 0, 2, 3, 4, 5]] +res3corr[0] *= 10 +print(res3corr - tab2324) # diff 1e-5 to 1e-6 +#199.128369 - 199.1284 #llf same up to print(precision of Greene + +print(clogit.fit()) + + +tree0 = ('top', + [('Fly',['Air']), + ('Ground', ['Train', 'Car', 'Bus']) + ] + ) + +datadict = dict(zip(['Air', 'Train', 'Bus', 'Car'], + [xifloat[i]for i in range(4)])) + +#for testing only (mock that returns it's own name +datadict = dict(zip(['Air', 'Train', 'Bus', 'Car'], + ['Airdata', 'Traindata', 'Busdata', 'Cardata'])) + +datadict.update({'top' : [], + 'Fly' : [], + 'Ground': []}) + +paramsind = {'top' : [], + 'Fly' : [], + 'Ground': [], + 'Air' : ['GC', 'Ttme', 'ConstA', 'Hinc'], + 'Train' : ['GC', 'Ttme', 'ConstT'], + 'Bus' : ['GC', 'Ttme', 'ConstB'], + 'Car' : ['GC', 'Ttme'] + } + +modru = RU2NMNL(endog, datadict, tree0, paramsind) +print(modru.calc_prob(modru.tree)) +print('\nmodru.probs') +print(modru.probs) diff --git a/statsmodels/sandbox/regression/sympy_diff.py b/statsmodels/sandbox/regression/sympy_diff.py new file mode 100644 index 0000000..ad0686d --- /dev/null +++ b/statsmodels/sandbox/regression/sympy_diff.py @@ -0,0 +1,61 @@ +# -*- coding: utf-8 -*- +""" +Created on Sat Mar 13 07:56:22 2010 + +Author: josef-pktd +""" +from __future__ import print_function +import sympy as sy + + +def pdf(x, mu, sigma): + """Return the probability density function as an expression in x""" + #x = sy.sympify(x) + return 1/(sigma*sy.sqrt(2*sy.pi)) * sy.exp(-(x-mu)**2 / (2*sigma**2)) + +def cdf(x, mu, sigma): + """Return the cumulative density function as an expression in x""" + #x = sy.sympify(x) + return (1+sy.erf((x-mu)/(sigma*sy.sqrt(2))))/2 + + +mu = sy.Symbol('mu') +sigma = sy.Symbol('sigma') +sigma2 = sy.Symbol('sigma2') +x = sy.Symbol('x') +y = sy.Symbol('y') +df = sy.Symbol('df') +s = sy.Symbol('s') + +dldxnorm = sy.log(pdf(x, mu,sigma)).diff(x) +print(sy.simplify(dldxnorm)) +print(sy.diff(sy.log(sy.gamma((s+1)/2)),s)) + +print(sy.diff((df+1)/2. * sy.log(1+df/(df-2)), df)) + +#standard t distribution, not verified +tllf1 = sy.log(sy.gamma((df+1)/2.)) - sy.log(sy.gamma(df/2.)) - 0.5*sy.log((df)*sy.pi) +tllf2 = (df+1.)/2. * sy.log(1. + (y-mu)**2/(df)/sigma2) + 0.5 * sy.log(sigma2) +tllf2std = (df+1.)/2. * sy.log(1. + y**2/df) + 0.5 +tllf = tllf1 - tllf2 +print(tllf1.diff(df)) +print(tllf2.diff(y)) +dlddf = (tllf1-tllf2).diff(df) +print(dlddf) +print(sy.cse(dlddf)) +print('\n derivative of loglike of t distribution wrt df') +for k,v in sy.cse(dlddf)[0]: print(k,'=',v) +print(sy.cse(dlddf)[1][0]) + +print('\nstandard t distribution, dll_df, dll_dy') +tllfstd = tllf1 - tllf2std +print(tllfstd.diff(df)) +print(tllfstd.diff(y)) + +print('\n') + +print(dlddf.subs(dict(y=1,mu=1,sigma2=1.5,df=10.0001))) +print(dlddf.subs(dict(y=1,mu=1,sigma2=1.5,df=10.0001)).evalf()) +# Note: derivatives of nested function doesn't work in sympy +# at least not higher order derivatives (second or larger) +# looks like print(failure diff --git a/statsmodels/sandbox/regression/tests/__init__.py b/statsmodels/sandbox/regression/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/sandbox/regression/tests/griliches76.dta b/statsmodels/sandbox/regression/tests/griliches76.dta new file mode 100644 index 0000000000000000000000000000000000000000..bd58a9375f1c04790f587a7795b9539340d00d27 GIT binary patch literal 64736 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 cH!B?K2oakC&+r<|G8)u9{>OV literal 0 HcmV?d00001 diff --git a/statsmodels/sandbox/regression/tests/racd10data_with_transformed.csv b/statsmodels/sandbox/regression/tests/racd10data_with_transformed.csv new file mode 100644 index 0000000..7c021c5 --- /dev/null +++ b/statsmodels/sandbox/regression/tests/racd10data_with_transformed.csv @@ -0,0 +1,3630 @@ +offer,ssiratio,age,educyr,physician,nonphysician,medicaid,private,female,phylim,actlim,income,totchr,insured,age2,linc,bh,docvis,ldocvis,ldocvisa,docbin,aget,aget2,incomet +0,.3945056,85,15,4,0,0,1,1,0,0,27.883,3,1,7225,3.328017,0,4,1.386294,1.386294,1,4,16,2.7882999 +0,1,83,8,6,0,0,0,1,1,1,11.628,2,0,6889,2.453416,1,6,1.791759,1.791759,1,3.6,12.96,1.1628 +0,1,82,11,2,1,1,0,1,1,0,3.456,2,0,6724,1.240112,1,2,.6931472,.6931472,1,3.4,11.56,.34560001 +0,.2051624,77,13,11,9,0,1,0,0,0,38.974,3,1,5929,3.662895,0,11,2.397895,2.397895,1,2.4,5.76,3.8973999 +0,.216923,76,14,3,5,0,1,1,0,0,36.861,1,1,5776,3.607154,0,3,1.098612,1.098612,1,2.2,4.84,3.6861 +0,.2192556,69,12,2,4,0,0,0,0,0,34.12,1,0,4761,3.529884,0,2,.6931472,.6931472,1,.8,.64,3.4119999 +0,.2261829,66,12,0,0,0,0,1,0,0,33.075,0,0,4356,3.498778,0,0,,-4.60517,0,.2,.04,3.3075001 +0,.3823529,71,12,5,12,0,1,1,1,1,18.224,2,1,5041,2.90274,0,5,1.609438,1.609438,1,1.2,1.44,1.8224001 +0,0,75,9,4,0,1,0,1,1,0,17.152,2,0,5625,2.842115,1,4,1.386294,1.386294,1,2,4,1.7152 +0,1,69,10,5,0,0,0,0,0,0,19.374,2,0,4761,2.963932,1,5,1.609438,1.609438,1,.8,.64,1.9374001 +0,.3383562,76,12,2,1,0,1,1,0,0,11.68,2,1,5776,2.457878,0,2,.6931472,.6931472,1,2.2,4.84,1.168 +0,.3074274,71,12,3,0,1,0,1,1,0,12.198,2,0,5041,2.501272,1,3,1.098612,1.098612,1,1.2,1.44,1.2198 +0,.9873618,80,10,3,0,1,0,0,1,1,3.798,1,0,6400,1.334475,1,3,1.098612,1.098612,1,3,9,.37980001 +0,0,85,10,1,0,0,0,1,0,0,5,3,0,7225,1.609438,1,1,0,0,1,4,16,.5 +0,.46875,68,9,6,0,0,1,1,1,0,32,3,1,4624,3.465736,1,6,1.791759,1.791759,1,.6,.36,3.2 +0,.9984547,73,16,5,2,0,1,0,1,0,8.413,1,1,5329,2.129778,0,5,1.609438,1.609438,1,1.6,2.56,.84130001 +0,0,80,1,3,0,1,0,0,0,1,7,2,0,6400,1.94591,1,3,1.098612,1.098612,1,3,9,.7 +0,1,70,16,9,2,0,0,1,1,1,12,4,0,4900,2.484907,0,9,2.197225,2.197225,1,1,1,1.2 +0,.351299,68,11,2,3,0,0,1,0,0,16.012,1,0,4624,2.773338,1,2,.6931472,.6931472,1,.6,.36,1.6011999 +0,.351299,72,10,0,1,0,0,0,0,0,16.012,0,0,5184,2.773338,1,0,,-4.60517,0,1.4,1.96,1.6011999 +0,.245058,85,12,9,5,0,1,0,0,0,36.726,3,1,7225,3.603485,0,9,2.197225,2.197225,1,4,16,3.6726002 +0,.2270949,73,16,1,1,0,1,1,0,0,39.631,1,1,5329,3.679612,0,1,0,0,1,1.6,2.56,3.9631001 +0,.4736643,85,4,4,1,1,0,1,1,1,10.556,3,0,7225,2.356694,0,4,1.386294,1.386294,1,4,16,1.0556 +0,.5123531,85,12,4,1,0,1,0,0,0,22.383,1,1,7225,3.108302,0,4,1.386294,1.386294,1,4,16,2.2382999 +0,1,78,13,2,7,0,0,1,0,0,9.8,1,0,6084,2.282382,0,2,.6931472,.6931472,1,2.6,6.76,.98000002 +0,1,72,12,5,1,0,1,0,0,0,9.8,4,1,5184,2.282382,0,5,1.609438,1.609438,1,1.4,1.96,.98000002 +0,.2068084,65,12,9,1,0,1,0,0,0,65.684,3,1,4225,4.184855,0,9,2.197225,2.197225,1,0,0,6.5683998 +0,.0254657,75,14,7,0,0,0,0,0,0,312.46,0,0,5625,5.744476,0,7,1.94591,1.94591,1,2,4,31.245999 +0,.6504864,72,9,5,3,0,1,0,1,1,19.53,4,1,5184,2.971952,0,5,1.609438,1.609438,1,1.4,1.96,1.9530001 +0,.6504864,72,8,8,0,0,1,1,1,1,19.53,5,1,5184,2.971952,0,8,2.079442,2.079442,1,1.4,1.96,1.9530001 +0,.9469697,79,16,4,3,0,1,0,0,0,11.088,2,1,6241,2.405864,0,4,1.386294,1.386294,1,2.8,7.84,1.1088 +0,.1286073,84,16,9,15,0,1,1,1,0,68.021,2,1,7056,4.219817,0,9,2.197225,2.197225,1,3.8,14.44,6.8021004 +0,.9402713,71,6,1,0,0,0,0,0,0,9.878,1,0,5041,2.29031,1,1,0,0,1,1.2,1.44,.98780003 +0,.6088895,70,11,5,0,0,0,1,1,0,15.254,2,0,4900,2.724842,1,5,1.609438,1.609438,1,1,1,1.5254 +0,.862069,68,14,4,0,0,1,1,0,0,14.5,2,1,4624,2.674149,0,4,1.386294,1.386294,1,.6,.36,1.45 +0,1,85,10,9,0,1,0,1,1,1,9.6,3,0,7225,2.261763,0,9,2.197225,2.197225,1,4,16,.96000004 +0,.3569516,68,14,5,9,0,0,1,0,0,16.809,1,0,4624,2.821914,0,5,1.609438,1.609438,1,.6,.36,1.6809 +0,0,78,12,1,0,1,0,0,0,0,0,1,0,6084,,1,1,0,0,1,2.6,6.76,0 +0,0,76,16,15,6,1,0,1,0,0,5.7,1,0,5776,1.740466,0,15,2.70805,2.70805,1,2.2,4.84,.56999998 +0,0,85,8,5,0,0,0,1,1,1,12.3,3,0,7225,2.509599,1,5,1.609438,1.609438,1,4,16,1.23 +0,.8527919,85,8,5,7,0,1,1,0,0,9.85,3,1,7225,2.287472,1,5,1.609438,1.609438,1,4,16,.98500004 +0,.6743637,74,12,2,2,0,1,1,1,1,15.244,0,1,5476,2.724186,0,2,.6931472,.6931472,1,1.8,3.24,1.5244 +0,.6292906,67,6,0,0,1,0,1,0,0,17.48,0,0,4489,2.861057,1,0,,-4.60517,0,.4,.16,1.748 +0,1,75,15,9,34,0,1,1,0,0,12,3,1,5625,2.484907,0,9,2.197225,2.197225,1,2,4,1.2 +0,0,83,6,6,0,0,0,1,1,1,0,2,0,6889,,1,6,1.791759,1.791759,1,3.6,12.96,0 +0,1,67,14,7,9,1,0,1,1,1,7.2,4,0,4489,1.974081,1,7,1.94591,1.94591,1,.4,.16,.71999998 +0,.6816075,72,14,20,9,0,0,0,1,0,18.339,3,0,5184,2.90903,0,20,2.995732,2.995732,1,1.4,1.96,1.8339001 +0,.6816075,70,12,5,2,0,0,1,0,0,18.339,2,0,4900,2.90903,0,5,1.609438,1.609438,1,1,1,1.8339001 +0,1,77,2,5,0,0,1,0,1,1,7.116,3,1,5929,1.962346,1,5,1.609438,1.609438,1,2.4,5.76,.71160002 +0,1,75,8,0,0,0,0,1,0,0,7.116,0,0,5625,1.962346,1,0,,-4.60517,0,2,4,.71160002 +0,1,66,9,5,2,1,0,1,1,1,6.972,3,0,4356,1.941902,1,5,1.609438,1.609438,1,.2,.04,.69720001 +0,1,84,10,4,0,1,0,1,1,1,6.864,1,0,7056,1.92629,1,4,1.386294,1.386294,1,3.8,14.44,.68639998 +0,1,81,8,13,1,0,1,1,1,0,3.2,1,1,6561,1.163151,0,13,2.564949,2.564949,1,3.2,10.24,.32 +0,.6928796,66,12,18,13,0,1,1,1,1,26.094,6,1,4356,3.261705,0,18,2.890372,2.890372,1,.2,.04,2.6094 +0,.4085579,71,14,12,6,0,0,0,1,1,24.305,3,0,5041,3.190682,0,12,2.484907,2.484907,1,1.2,1.44,2.4305 +0,.4085579,72,14,11,10,0,0,1,1,0,24.305,4,0,5184,3.190682,0,11,2.397895,2.397895,1,1.4,1.96,2.4305 +0,0,70,5,5,0,1,0,1,1,1,14.71,6,0,4900,2.688528,1,5,1.609438,1.609438,1,1,1,1.471 +0,.3280559,66,14,6,1,0,0,0,0,0,66.51,3,0,4356,4.197352,0,6,1.791759,1.791759,1,.2,.04,6.6510002 +0,.4218074,71,8,6,1,0,0,0,0,0,28.449,3,0,5041,3.348113,1,6,1.791759,1.791759,1,1.2,1.44,2.8448999 +0,0,76,8,6,0,0,0,1,0,0,.515,0,0,5776,-.6635884,0,6,1.791759,1.791759,1,2.2,4.84,.0515 +0,1,74,8,10,3,0,0,0,0,0,8.125,1,0,5476,2.094946,0,10,2.302585,2.302585,1,1.8,3.24,.8125 +0,1,73,13,5,3,0,0,1,0,0,8.125,2,0,5329,2.094946,0,5,1.609438,1.609438,1,1.6,2.56,.8125 +0,.5759445,66,12,3,0,0,1,1,0,0,23.346,0,1,4356,3.150426,0,3,1.098612,1.098612,1,.2,.04,2.3346001 +0,.5759445,65,12,8,1,0,1,0,0,0,23.346,1,1,4225,3.150426,0,8,2.079442,2.079442,1,0,0,2.3346001 +0,0,66,10,0,0,1,0,1,1,0,0,0,0,4356,,1,0,,-4.60517,0,.2,.04,0 +0,1,70,6,3,1,0,1,1,1,1,9,2,1,4900,2.197225,0,3,1.098612,1.098612,1,1,1,.9 +0,.6050013,70,5,8,0,0,0,0,1,1,14.876,6,0,4900,2.699749,0,8,2.079442,2.079442,1,1,1,1.4876 +0,.496758,66,12,0,0,0,0,0,0,0,19.124,0,0,4356,2.950944,1,0,,-4.60517,0,.2,.04,1.9124001 +0,.8,73,12,3,1,0,1,1,1,1,9,1,1,5329,2.197225,0,3,1.098612,1.098612,1,1.6,2.56,.9 +0,.677915,74,11,8,3,0,1,0,1,1,13.276,2,1,5476,2.585958,0,8,2.079442,2.079442,1,1.8,3.24,1.3276 +0,.8256881,74,12,5,1,0,1,1,0,0,10.9,2,1,5476,2.388763,0,5,1.609438,1.609438,1,1.8,3.24,1.09 +0,.5929359,77,14,2,12,0,1,1,0,0,15.968,0,1,5929,2.770587,0,2,.6931472,.6931472,1,2.4,5.76,1.5968 +0,.4027153,71,3,8,0,1,0,1,1,0,13.111,3,0,5041,2.573452,1,8,2.079442,2.079442,1,1.2,1.44,1.3111 +0,.1581424,83,17,10,0,0,0,1,0,0,75.881,1,0,6889,4.329166,0,10,2.302585,2.302585,1,3.6,12.96,7.5880997 +0,.2911996,74,16,22,1,0,1,0,1,0,74.928,3,1,5476,4.316528,0,22,3.091043,3.091043,1,1.8,3.24,7.4928001 +0,0,80,17,3,0,0,1,1,1,0,37.5,2,1,6400,3.624341,0,3,1.098612,1.098612,1,3,9,3.75 +0,.961149,80,12,6,2,0,1,1,1,0,10.862,2,1,6400,2.385271,0,6,1.791759,1.791759,1,3,9,1.0862 +0,.5858906,67,12,5,0,0,1,0,0,0,20.823,1,1,4489,3.036058,0,5,1.609438,1.609438,1,.4,.16,2.0823 +0,1,69,6,7,0,1,0,1,0,0,4.8,2,0,4761,1.568616,1,7,1.94591,1.94591,1,.8,.64,.48000002 +0,.0956158,65,17,12,22,0,1,0,0,0,83.595,2,1,4225,4.425984,0,12,2.484907,2.484907,1,0,0,8.3595001 +0,.8205128,77,2,4,11,0,0,1,0,0,11.7,1,0,5929,2.459589,0,4,1.386294,1.386294,1,2.4,5.76,1.17 +0,.3534662,65,0,10,0,0,0,1,1,1,13.444,1,0,4225,2.598533,1,10,2.302585,2.302585,1,0,0,1.3444 +0,.9118541,76,6,4,73,1,0,1,1,1,13.16,1,0,5776,2.577182,1,4,1.386294,1.386294,1,2.2,4.84,1.316 +0,0,69,16,11,2,0,1,1,0,0,28.971,1,1,4761,3.366295,0,11,2.397895,2.397895,1,.8,.64,2.8971001 +0,0,85,6,0,0,0,0,1,1,1,0,2,0,7225,,1,0,,-4.60517,0,4,16,0 +0,0,85,2,1,0,0,0,0,0,0,0,1,0,7225,,1,1,0,0,1,4,16,0 +0,.247992,67,12,2,0,0,0,1,1,1,11.952,3,0,4489,2.480899,1,2,.6931472,.6931472,1,.4,.16,1.1952 +0,.75,85,14,0,0,0,0,1,1,1,16,2,0,7225,2.772589,0,0,,-4.60517,0,4,16,1.6 +0,.6232687,70,10,15,1,0,1,0,1,1,18.05,2,1,4900,2.893146,0,15,2.70805,2.70805,1,1,1,1.8049999 +0,.6232687,67,13,9,1,0,1,1,0,1,18.05,4,1,4489,2.893146,0,9,2.197225,2.197225,1,.4,.16,1.8049999 +0,1,69,12,6,0,1,0,1,0,1,8.1,0,0,4761,2.091864,1,6,1.791759,1.791759,1,.8,.64,.81000004 +0,.9976247,73,11,5,0,0,1,1,1,0,8.42,1,1,5329,2.13061,0,5,1.609438,1.609438,1,1.6,2.56,.84200001 +0,.9976247,70,11,0,0,0,1,0,0,0,8.42,1,1,4900,2.13061,0,0,,-4.60517,0,1,1,.84200001 +0,.7692308,66,12,9,1,0,0,1,0,0,6.5,0,0,4356,1.871802,0,9,2.197225,2.197225,1,.2,.04,.65 +1,.3913043,67,11,2,0,0,1,1,0,0,27.6,2,1,4489,3.317816,1,2,.6931472,.6931472,1,.4,.16,2.76 +0,.824332,80,12,11,5,1,0,1,1,1,7.036,3,0,6400,1.95104,1,11,2.397895,2.397895,1,3,9,.70359998 +0,0,65,17,6,3,0,1,1,1,0,26.6,3,1,4225,3.280911,0,6,1.791759,1.791759,1,0,0,2.66 +0,1,73,8,17,0,1,0,1,1,1,6,1,0,5329,1.791759,1,17,2.833213,2.833213,1,1.6,2.56,.6 +0,.8594112,84,13,13,2,0,1,1,1,1,12.092,2,1,7056,2.492544,0,13,2.564949,2.564949,1,3.8,14.44,1.2092 +0,.9259259,85,12,3,0,0,1,1,1,1,16.2,3,1,7225,2.785011,0,3,1.098612,1.098612,1,4,16,1.6200001 +0,.6036058,85,17,14,0,0,0,0,0,0,24.294,1,0,7225,3.190229,0,14,2.639057,2.639057,1,4,16,2.4294001 +0,0,83,8,2,0,1,0,1,1,1,6.4,2,0,6889,1.856298,1,2,.6931472,.6931472,1,3.6,12.96,.64000001 +0,.5,80,5,2,0,1,0,1,0,0,15,4,0,6400,2.70805,0,2,.6931472,.6931472,1,3,9,1.5 +0,.5333334,66,12,3,6,0,1,1,1,0,15.75,1,1,4356,2.75684,0,3,1.098612,1.098612,1,.2,.04,1.575 +0,.1371652,67,12,3,2,0,1,0,0,0,61.24,2,1,4489,4.1148,0,3,1.098612,1.098612,1,.4,.16,6.1240002 +0,0,81,5,6,0,1,0,1,1,1,0,5,0,6561,,1,6,1.791759,1.791759,1,3.2,10.24,0 +0,.2105352,69,1,3,0,1,0,0,0,1,11.827,2,0,4761,2.470385,1,3,1.098612,1.098612,1,.8,.64,1.1827 +0,.5482456,85,12,8,0,0,0,0,1,0,18.24,2,0,7225,2.903617,0,8,2.079442,2.079442,1,4,16,1.824 +0,.5482456,78,12,4,0,0,0,1,1,0,18.24,0,0,6084,2.903617,0,4,1.386294,1.386294,1,2.6,6.76,1.824 +0,1,84,12,2,1,0,1,1,0,0,4.524,0,1,7056,1.509397,1,2,.6931472,.6931472,1,3.8,14.44,.45240002 +0,.8788546,78,12,15,12,1,0,1,0,0,7.264,3,0,6084,1.982931,1,15,2.70805,2.70805,1,2.6,6.76,.72639999 +0,.2222609,75,12,6,8,0,0,1,1,1,57.446,3,0,5625,4.050845,0,6,1.791759,1.791759,1,2,4,5.7445999 +0,0,76,15,10,2,0,1,0,0,0,8.2,1,1,5776,2.104134,0,10,2.302585,2.302585,1,2.2,4.84,.81999998 +0,.0866864,73,16,2,10,0,0,1,0,0,83.058,1,0,5329,4.419539,0,2,.6931472,.6931472,1,1.6,2.56,8.3057999 +0,0,85,6,5,19,1,0,1,1,1,20.413,3,0,7225,3.016172,1,5,1.609438,1.609438,1,4,16,2.0413 +0,.3570153,73,16,1,1,0,1,0,0,0,28.01,1,1,5329,3.332561,0,1,0,0,1,1.6,2.56,2.801 +0,.2100577,71,17,2,0,0,1,1,1,1,7.974,2,1,5041,2.076186,1,2,.6931472,.6931472,1,1.2,1.44,.7974 +0,.0476123,75,17,1,0,0,1,0,0,0,35.18,4,1,5625,3.560478,0,1,0,0,1,2,4,3.518 +0,.7710367,79,12,2,0,0,1,1,1,1,16.186,3,1,6241,2.784147,0,2,.6931472,.6931472,1,2.8,7.84,1.6186001 +0,1,68,6,7,0,1,0,1,0,0,4.572,1,0,4624,1.519951,0,7,1.94591,1.94591,1,.6,.36,.4572 +0,.999493,71,12,2,0,0,1,0,0,0,13.807,0,1,5041,2.625176,0,2,.6931472,.6931472,1,1.2,1.44,1.3807 +0,.999493,66,12,10,11,0,1,1,0,0,13.807,2,1,4356,2.625176,0,10,2.302585,2.302585,1,.2,.04,1.3807 +0,.7964758,85,10,8,0,0,0,1,1,1,22.7,2,0,7225,3.122365,0,8,2.079442,2.079442,1,4,16,2.2700001 +0,.326207,67,13,1,0,0,1,0,0,0,28.252,1,1,4489,3.341164,0,1,0,0,1,.4,.16,2.8252001 +0,1,72,4,20,2,0,1,1,0,0,10,2,1,5184,2.302585,1,20,2.995732,2.995732,1,1.4,1.96,1 +0,.4494526,70,13,0,0,0,0,1,0,0,31.149,1,0,4900,3.438782,0,0,,-4.60517,0,1,1,3.1149 +0,.4218519,75,16,0,0,0,0,0,0,0,33.187,0,0,5625,3.502158,0,0,,-4.60517,0,2,4,3.3187 +0,0,77,13,5,1,0,1,0,1,1,6.291,2,1,5929,1.83912,0,5,1.609438,1.609438,1,2.4,5.76,.62909999 +0,.7762282,73,10,5,2,0,1,1,0,0,28.109,2,1,5329,3.33609,0,5,1.609438,1.609438,1,1.6,2.56,2.8108999 +0,.661562,81,10,3,0,1,0,1,1,1,7.836,3,0,6561,2.058728,0,3,1.098612,1.098612,1,3.2,10.24,.7836 +0,0,79,12,6,0,0,0,1,1,1,0,1,0,6241,,0,6,1.791759,1.791759,1,2.8,7.84,0 +0,1,80,16,13,0,0,0,0,0,0,10,2,0,6400,2.302585,0,13,2.564949,2.564949,1,3,9,1 +0,1,77,16,10,2,0,0,1,0,0,10,1,0,5929,2.302585,0,10,2.302585,2.302585,1,2.4,5.76,1 +0,.3498088,70,7,3,1,0,1,0,1,1,50.742,2,1,4900,3.926754,1,3,1.098612,1.098612,1,1,1,5.0742001 +0,0,66,12,23,9,0,1,1,0,0,60.005,3,1,4356,4.094428,0,23,3.135494,3.135494,1,.2,.04,6.0005001 +0,.2666577,72,12,39,3,0,1,0,1,1,81.824,1,1,5184,4.404571,0,39,3.663562,3.663562,1,1.4,1.96,8.1823997 +0,0,69,6,1,0,0,0,1,0,0,0,0,0,4761,,1,1,0,0,1,.8,.64,0 +0,.8571429,74,8,1,0,0,0,1,0,0,5.6,1,0,5476,1.722767,0,1,0,0,1,1.8,3.24,.55999999 +0,.8335183,75,16,18,2,0,0,0,1,1,5.406,4,0,5625,1.687509,0,18,2.890372,2.890372,1,2,4,.54060001 +0,.8335183,75,12,11,0,0,0,1,1,1,5.406,1,0,5625,1.687509,0,11,2.397895,2.397895,1,2,4,.54060001 +0,.9940999,85,12,2,0,1,0,1,1,1,8.305,0,0,7225,2.116858,1,2,.6931472,.6931472,1,4,16,.83050003 +0,.5037783,85,12,9,0,0,0,1,0,0,9.528,2,0,7225,2.254235,1,9,2.197225,2.197225,1,4,16,.95279999 +0,.3315738,73,16,21,90,0,1,0,0,1,37.699,4,1,5329,3.629634,0,21,3.044523,3.044523,1,1.6,2.56,3.7699001 +0,.3315738,73,16,3,32,0,1,1,1,0,37.699,0,1,5329,3.629634,0,3,1.098612,1.098612,1,1.6,2.56,3.7699001 +0,0,70,6,0,0,1,0,0,0,0,0,0,0,4900,,1,0,,-4.60517,0,1,1,0 +0,0,65,0,2,0,0,0,1,0,0,0,2,0,4225,,1,2,.6931472,.6931472,1,0,0,0 +0,0,78,0,4,0,0,0,1,1,1,0,1,0,6084,,1,4,1.386294,1.386294,1,2.6,6.76,0 +0,.3588647,84,8,18,7,0,1,1,1,1,55.174,3,1,7056,4.010492,0,18,2.890372,2.890372,1,3.8,14.44,5.5174 +0,.9991436,68,12,3,0,0,0,0,1,1,14.012,1,0,4624,2.639914,0,3,1.098612,1.098612,1,.6,.36,1.4012 +0,.9991436,67,12,12,1,0,0,1,1,1,14.012,2,0,4489,2.639914,0,12,2.484907,2.484907,1,.4,.16,1.4012 +0,.4652673,72,17,10,19,0,1,0,0,0,23.105,2,1,5184,3.140049,0,10,2.302585,2.302585,1,1.4,1.96,2.3105 +0,.4652673,70,12,2,0,0,1,1,0,0,23.105,1,1,4900,3.140049,0,2,.6931472,.6931472,1,1,1,2.3105 +0,0,70,7,3,0,0,1,0,0,0,25.539,1,1,4900,3.240207,1,3,1.098612,1.098612,1,1,1,2.5539 +0,0,65,13,2,0,0,1,0,0,0,38.727,2,1,4225,3.656537,0,2,.6931472,.6931472,1,0,0,3.8727001 +0,.2075472,72,8,6,0,0,1,1,0,0,53,3,1,5184,3.970292,1,6,1.791759,1.791759,1,1.4,1.96,5.3 +0,.2226552,85,12,7,1,0,0,1,1,1,53.895,3,0,7225,3.987038,0,7,1.94591,1.94591,1,4,16,5.3895 +0,.1456725,85,12,5,0,0,1,0,0,0,48.053,1,1,7225,3.872305,0,5,1.609438,1.609438,1,4,16,4.8053001 +0,1,69,17,2,0,0,1,0,0,0,10.668,1,1,4761,2.367249,1,2,.6931472,.6931472,1,.8,.64,1.0668 +0,.4098621,65,12,13,16,0,1,0,0,1,52.869,2,1,4225,3.967817,0,13,2.564949,2.564949,1,0,0,5.2868999 +0,1,85,12,3,0,1,0,1,1,1,9,3,0,7225,2.197225,1,3,1.098612,1.098612,1,4,16,.9 +0,.8041958,85,4,14,5,1,0,1,1,1,6.864,4,0,7225,1.92629,0,14,2.639057,2.639057,1,4,16,.68639998 +0,1,75,9,1,2,1,0,1,1,1,8.316,2,0,5625,2.118181,0,1,0,0,1,2,4,.8316 +0,.426694,69,12,15,6,0,1,1,0,0,51.135,4,1,4761,3.934469,0,15,2.70805,2.70805,1,.8,.64,5.1134998 +0,0,73,10,2,0,0,1,0,0,0,38.916,2,1,5329,3.661406,0,2,.6931472,.6931472,1,1.6,2.56,3.8916 +0,.8582942,73,12,2,0,0,1,0,0,0,22.582,1,1,5329,3.117153,0,2,.6931472,.6931472,1,1.6,2.56,2.2582001 +0,.8582942,67,15,0,0,0,1,1,1,0,22.582,0,1,4489,3.117153,0,0,,-4.60517,0,.4,.16,2.2582001 +0,0,70,14,0,0,0,1,1,1,1,19.624,2,1,4900,2.976753,0,0,,-4.60517,0,1,1,1.9624001 +0,.3035121,77,16,18,1,0,1,0,0,0,34.595,0,1,5929,3.543709,0,18,2.890372,2.890372,1,2.4,5.76,3.4595001 +0,.3154764,81,14,11,0,0,1,1,0,0,33.283,2,1,6561,3.505047,0,11,2.397895,2.397895,1,3.2,10.24,3.3283001 +0,.6936463,80,12,2,0,0,1,1,0,0,16.321,1,1,6400,2.792453,0,2,.6931472,.6931472,1,3,9,1.6320999 +0,0,84,2,15,0,1,0,0,1,1,5.088,5,0,7056,1.626885,1,15,2.70805,2.70805,1,3.8,14.44,.50879998 +0,0,80,4,24,0,1,0,1,1,1,5.088,3,0,6400,1.626885,1,24,3.178054,3.178054,1,3,9,.50879998 +0,.6929824,72,10,13,12,0,1,1,0,0,11.4,1,1,5184,2.433613,0,13,2.564949,2.564949,1,1.4,1.96,1.14 +0,.6929824,76,6,2,0,0,1,0,0,0,11.4,1,1,5776,2.433613,0,2,.6931472,.6931472,1,2.2,4.84,1.14 +0,0,67,17,18,2,0,1,0,0,0,22.396,1,1,4489,3.108882,0,18,2.890372,2.890372,1,.4,.16,2.2396 +0,0,67,17,9,3,0,1,1,1,0,141.928,0,1,4489,4.95532,0,9,2.197225,2.197225,1,.4,.16,14.192799 +0,.4860312,66,12,0,1,0,1,0,0,0,26.953,0,1,4356,3.294095,0,0,,-4.60517,0,.2,.04,2.6952999 +0,.3198789,66,14,3,2,0,1,1,0,0,40.953,1,1,4356,3.712425,0,3,1.098612,1.098612,1,.2,.04,4.0952999 +0,.6163436,85,10,2,0,0,0,0,0,1,16.043,0,0,7225,2.775273,0,2,.6931472,.6931472,1,4,16,1.6042999 +0,1,76,11,8,1,0,1,0,1,1,18.075,3,1,5776,2.89453,1,8,2.079442,2.079442,1,2.2,4.84,1.8075001 +0,.9607843,69,16,4,0,0,1,0,0,0,10.2,0,1,4761,2.322388,0,4,1.386294,1.386294,1,.8,.64,1.02 +0,.8266181,85,10,0,0,0,1,1,1,1,11.541,1,1,7225,2.445906,0,0,,-4.60517,0,4,16,1.1541 +0,0,71,6,6,0,0,1,1,1,0,0,3,1,5041,,1,6,1.791759,1.791759,1,1.2,1.44,0 +0,0,74,12,4,0,0,1,0,0,1,0,3,1,5476,,1,4,1.386294,1.386294,1,1.8,3.24,0 +0,.4034317,73,11,4,4,0,1,0,0,0,29.373,0,1,5329,3.380076,0,4,1.386294,1.386294,1,1.6,2.56,2.9372999 +0,.8861138,72,12,10,0,0,1,1,0,0,13.373,2,1,5184,2.593238,0,10,2.302585,2.302585,1,1.4,1.96,1.3373 +0,.9556451,85,17,11,7,0,1,0,1,1,12.4,1,1,7225,2.517696,0,11,2.397895,2.397895,1,4,16,1.24 +0,.9556451,85,17,7,6,0,1,1,0,1,12.4,1,1,7225,2.517696,0,7,1.94591,1.94591,1,4,16,1.24 +0,.1031907,65,13,27,13,0,1,0,1,1,24.227,1,1,4225,3.187468,0,27,3.295837,3.295837,1,0,0,2.4226999 +0,.3573875,72,16,7,5,0,1,1,1,0,33.577,3,1,5184,3.513841,1,7,1.94591,1.94591,1,1.4,1.96,3.3577 +0,.058054,77,17,11,8,0,0,1,1,1,44.183,4,0,5929,3.78834,0,11,2.397895,2.397895,1,2.4,5.76,4.4182999 +0,.2155172,82,16,3,1,0,0,1,0,0,13.92,1,0,6724,2.633327,0,3,1.098612,1.098612,1,3.4,11.56,1.392 +0,.2155172,84,17,8,1,0,0,0,0,0,13.92,2,0,7056,2.633327,0,8,2.079442,2.079442,1,3.8,14.44,1.392 +0,.1733169,80,12,2,10,0,1,1,0,0,51.928,2,1,6400,3.949858,0,2,.6931472,.6931472,1,3,9,5.1928001 +0,0,79,10,13,0,1,0,1,1,0,6.768,4,0,6241,1.912206,1,13,2.564949,2.564949,1,2.8,7.84,.67680001 +0,.8538252,77,6,6,0,1,0,0,1,1,8.784,2,0,5929,2.172932,1,6,1.791759,1.791759,1,2.4,5.76,.87840004 +0,0,83,14,35,14,0,1,0,1,1,39,3,1,6889,3.663562,0,35,3.555348,3.555348,1,3.6,12.96,3.9 +0,.9890591,80,11,5,3,0,1,1,0,0,18.28,2,1,6400,2.905807,0,5,1.609438,1.609438,1,3,9,1.8280001 +0,.3410641,76,7,7,1,0,1,1,1,0,17.592,3,1,5776,2.867444,0,7,1.94591,1.94591,1,2.2,4.84,1.7591999 +0,0,76,15,18,0,1,0,1,1,1,.7,4,0,5776,-.356675,0,18,2.890372,2.890372,1,2.2,4.84,.07 +1,.096731,66,15,5,1,0,1,0,0,0,100.795,0,1,4356,4.613089,0,5,1.609438,1.609438,1,.2,.04,10.0795 +0,.4347826,83,8,1,1,0,1,1,0,0,9.2,0,1,6889,2.219203,0,1,0,0,1,3.6,12.96,.91999998 +0,1,81,12,1,0,0,0,0,0,0,11.25,0,0,6561,2.420368,0,1,0,0,1,3.2,10.24,1.125 +0,1,74,11,10,22,0,0,1,1,1,11.25,1,0,5476,2.420368,0,10,2.302585,2.302585,1,1.8,3.24,1.125 +0,.8467259,65,12,2,0,0,1,1,0,0,11.026,1,1,4225,2.400256,1,2,.6931472,.6931472,1,0,0,1.1026 +0,.8467259,67,12,9,0,0,1,0,1,0,11.026,2,1,4489,2.400256,1,9,2.197225,2.197225,1,.4,.16,1.1026 +0,.576356,84,16,0,43,0,0,1,1,1,22.382,3,0,7056,3.108257,0,0,,-4.60517,0,3.8,14.44,2.2382 +0,.6805179,83,12,1,1,0,1,0,1,1,26.568,1,1,6889,3.279707,0,1,0,0,1,3.6,12.96,2.6568001 +0,.9312488,84,9,13,1,0,1,0,1,1,10.618,2,1,7056,2.362551,0,13,2.564949,2.564949,1,3.8,14.44,1.0618 +0,.5100098,85,15,19,1,0,1,0,1,1,12.188,3,1,7225,2.500452,0,19,2.944439,2.944439,1,4,16,1.2188 +0,.3650672,73,12,10,0,0,1,1,0,0,17.027,2,1,5329,2.8348,0,10,2.302585,2.302585,1,1.6,2.56,1.7027 +0,.4907975,79,13,14,7,0,0,1,1,0,24.45,3,0,6241,3.19663,0,14,2.639057,2.639057,1,2.8,7.84,2.4450001 +0,.2656292,74,14,8,3,0,1,1,0,0,74.54,1,1,5476,4.311336,0,8,2.079442,2.079442,1,1.8,3.24,7.4540001 +0,0,78,5,2,0,1,0,1,1,1,6.062,1,0,6084,1.80204,1,2,.6931472,.6931472,1,2.6,6.76,.60619998 +0,0,71,1,6,0,0,0,0,0,0,0,3,0,5041,,1,6,1.791759,1.791759,1,1.2,1.44,0 +0,0,72,6,11,0,0,0,0,0,0,0,2,0,5184,,1,11,2.397895,2.397895,1,1.4,1.96,0 +0,0,73,4,5,0,0,0,1,0,0,0,2,0,5329,,1,5,1.609438,1.609438,1,1.6,2.56,0 +0,.2218484,85,12,4,1,0,0,1,0,0,54.091,1,0,7225,3.990668,0,4,1.386294,1.386294,1,4,16,5.4091 +0,0,69,14,2,0,0,0,1,0,0,21,0,0,4761,3.044523,0,2,.6931472,.6931472,1,.8,.64,2.1 +0,0,77,14,3,0,0,0,0,0,0,43,1,0,5929,3.7612,0,3,1.098612,1.098612,1,2.4,5.76,4.3 +0,.3804797,74,0,14,4,1,0,1,1,1,14.508,2,0,5476,2.6747,0,14,2.639057,2.639057,1,1.8,3.24,1.4508 +0,.2322795,78,16,0,0,0,0,1,1,0,40.899,2,0,6084,3.711106,0,0,,-4.60517,0,2.6,6.76,4.0898998 +0,0,85,4,6,0,0,0,1,1,0,11.472,2,0,7225,2.439909,1,6,1.791759,1.791759,1,4,16,1.1472 +0,.1837512,75,12,3,0,0,0,0,0,0,38.612,1,0,5625,3.653563,0,3,1.098612,1.098612,1,2,4,3.8612 +0,.1824752,79,12,1,62,0,0,1,0,0,38.882,2,0,6241,3.660532,0,1,0,0,1,2.8,7.84,3.8882 +0,.4753902,68,17,6,2,0,1,0,1,0,8.33,1,1,4624,2.119864,0,6,1.791759,1.791759,1,.6,.36,.83299999 +0,.4448938,65,14,5,1,0,1,1,0,0,8.901,0,1,4225,2.186164,0,5,1.609438,1.609438,1,0,0,.8901 +0,1,75,16,13,0,0,0,0,0,1,6.25,4,0,5625,1.832582,1,13,2.564949,2.564949,1,2,4,.625 +0,.9974269,66,12,10,1,0,1,0,0,0,19.432,3,1,4356,2.966921,0,10,2.302585,2.302585,1,.2,.04,1.9431999 +0,0,65,12,17,0,0,1,1,1,0,26.051,3,1,4225,3.260056,0,17,2.833213,2.833213,1,0,0,2.6051001 +0,.4825001,85,12,0,0,0,1,1,1,1,26.943,0,1,7225,3.293724,0,0,,-4.60517,0,4,16,2.6943001 +0,.6197067,83,12,9,10,0,1,1,1,1,14.523,1,1,6889,2.675734,0,9,2.197225,2.197225,1,3.6,12.96,1.4523 +0,.6197067,83,12,6,6,0,1,0,1,0,14.523,1,1,6889,2.675734,0,6,1.791759,1.791759,1,3.6,12.96,1.4523 +0,.6567785,71,8,15,1,0,0,1,1,1,18.271,5,0,5041,2.905315,0,15,2.70805,2.70805,1,1.2,1.44,1.8271 +0,.7058349,65,5,8,6,0,1,0,1,0,14.876,1,1,4225,2.699749,0,8,2.079442,2.079442,1,0,0,1.4876 +0,.6116208,75,6,15,0,0,1,0,0,0,8.829,2,1,5625,2.178042,0,15,2.70805,2.70805,1,2,4,.88290005 +0,1,68,5,0,0,0,0,0,0,0,6.564,0,0,4624,1.8816,0,0,,-4.60517,0,.6,.36,.65640001 +0,.9066183,65,8,3,0,1,0,0,0,1,13.236,3,0,4225,2.58294,0,3,1.098612,1.098612,1,0,0,1.3236 +0,0,81,6,12,0,1,0,1,0,0,0,2,0,6561,,0,12,2.484907,2.484907,1,3.2,10.24,0 +0,.8552632,73,11,17,4,1,0,1,1,1,7.6,3,0,5329,2.028148,0,17,2.833213,2.833213,1,1.6,2.56,.75999999 +0,1,83,2,6,0,0,0,1,1,1,6.889,2,0,6889,1.929926,1,6,1.791759,1.791759,1,3.6,12.96,.68889999 +0,.1666667,65,14,7,0,1,0,0,1,0,21,3,0,4225,3.044523,1,7,1.94591,1.94591,1,0,0,2.1 +1,.0610687,72,12,3,1,0,1,0,0,0,32.75,4,1,5184,3.488903,0,3,1.098612,1.098612,1,1.4,1.96,3.275 +0,.1891591,72,17,4,0,0,1,0,0,0,47.579,2,1,5184,3.862391,0,4,1.386294,1.386294,1,1.4,1.96,4.7578999 +0,.3610581,75,15,2,0,0,1,0,0,0,27.785,0,1,5625,3.324496,0,2,.6931472,.6931472,1,2,4,2.7785 +0,.3610581,76,16,2,2,0,1,1,0,0,27.785,0,1,5776,3.324496,0,2,.6931472,.6931472,1,2.2,4.84,2.7785 +0,.3846154,76,8,11,3,1,0,1,1,1,10.4,3,0,5776,2.341806,0,11,2.397895,2.397895,1,2.2,4.84,1.04 +0,.1353363,67,16,38,0,0,0,0,0,0,51.723,1,0,4489,3.945903,0,38,3.637586,3.637586,1,.4,.16,5.1723 +0,.9979559,80,12,3,0,0,0,1,0,0,9.295,0,0,6400,2.229477,0,3,1.098612,1.098612,1,3,9,.92950001 +0,.9281678,80,11,15,0,0,1,1,0,0,20.882,2,1,6400,3.038888,0,15,2.70805,2.70805,1,3,9,2.0882 +0,.9281678,85,8,1,0,0,1,0,1,1,20.882,5,1,7225,3.038888,0,1,0,0,1,4,16,2.0882 +0,0,74,13,13,2,0,1,0,0,0,12.6,3,1,5476,2.533697,0,13,2.564949,2.564949,1,1.8,3.24,1.26 +0,.6339231,72,12,16,4,0,1,1,1,1,34.419,2,1,5184,3.538609,0,16,2.772589,2.772589,1,1.4,1.96,3.4418999 +0,.5702001,84,13,2,0,0,0,0,0,0,12.443,2,0,7056,2.521158,0,2,.6931472,.6931472,1,3.8,14.44,1.2443 +0,.5702001,77,13,2,0,0,0,1,0,0,12.443,1,0,5929,2.521158,0,2,.6931472,.6931472,1,2.4,5.76,1.2443 +0,.2654408,70,12,15,31,0,1,0,1,0,48.945,3,1,4900,3.890697,0,15,2.70805,2.70805,1,1,1,4.8945 +0,.1798651,72,17,3,3,0,1,0,1,0,59.767,1,1,5184,4.090454,0,3,1.098612,1.098612,1,1.4,1.96,5.9766998 +0,.188039,69,16,3,7,0,1,1,0,0,57.169,0,1,4761,4.046012,0,3,1.098612,1.098612,1,.8,.64,5.7168999 +0,.9309967,72,12,20,0,0,1,1,1,1,10.956,5,1,5184,2.393887,0,20,2.995732,2.995732,1,1.4,1.96,1.0956 +0,1,75,8,6,0,0,0,1,0,0,9,1,0,5625,2.197225,0,6,1.791759,1.791759,1,2,4,.9 +0,.9957455,73,12,12,1,0,1,0,0,0,11.047,4,1,5329,2.402159,0,12,2.484907,2.484907,1,1.6,2.56,1.1047 +0,.3157345,73,12,8,4,0,0,0,0,0,21.062,2,0,5329,3.047471,0,8,2.079442,2.079442,1,1.6,2.56,2.1062 +0,.3122359,69,13,0,3,0,0,1,0,0,21.298,0,0,4761,3.058613,0,0,,-4.60517,0,.8,.64,2.1298 +0,.3585657,69,12,3,1,0,1,1,0,0,25.1,1,1,4761,3.222868,0,3,1.098612,1.098612,1,.8,.64,2.51 +0,.3585657,71,9,5,0,0,1,0,0,0,25.1,2,1,5041,3.222868,0,5,1.609438,1.609438,1,1.2,1.44,2.51 +0,.6710712,79,12,9,10,0,1,1,1,1,26.942,2,1,6241,3.293686,0,9,2.197225,2.197225,1,2.8,7.84,2.6941999 +0,.2096267,76,12,3,5,0,1,1,1,0,62.015,0,1,5776,4.127376,0,3,1.098612,1.098612,1,2.2,4.84,6.2014999 +0,1,74,13,1,1,1,0,1,1,1,8.004,0,0,5476,2.079941,0,1,0,0,1,1.8,3.24,.80039997 +0,.250561,78,12,13,2,0,1,1,0,0,45.897,1,1,6084,3.8264,0,13,2.564949,2.564949,1,2.6,6.76,4.5896999 +0,1,77,8,0,0,0,0,1,1,1,6,2,0,5929,1.791759,0,0,,-4.60517,0,2.4,5.76,.6 +0,.2243326,78,11,5,0,0,1,1,0,0,53.492,1,1,6084,3.979532,0,5,1.609438,1.609438,1,2.6,6.76,5.3492001 +0,1,70,11,0,0,1,0,1,0,1,5.94,1,0,4900,1.781709,0,0,,-4.60517,0,1,1,.59400001 +0,.2252337,82,7,14,3,0,1,0,1,0,26.639,4,1,6724,3.282376,0,14,2.639057,2.639057,1,3.4,11.56,2.6639 +0,1,82,11,1,0,0,0,1,1,0,11.54,2,0,6724,2.445819,1,1,0,0,1,3.4,11.56,1.154 +0,1,66,8,0,0,0,0,0,0,0,9.396,0,0,4356,2.240284,0,0,,-4.60517,0,.2,.04,.93959999 +0,1,66,15,4,0,0,0,0,0,0,8.676,4,0,4356,2.160561,1,4,1.386294,1.386294,1,.2,.04,.86759996 +0,1,66,13,5,0,1,0,1,1,1,8.676,2,0,4356,2.160561,1,5,1.609438,1.609438,1,.2,.04,.86759996 +0,1,85,9,3,0,0,0,1,1,1,13,1,0,7225,2.564949,0,3,1.098612,1.098612,1,4,16,1.3 +0,.3031507,72,17,11,5,0,0,1,1,0,43.292,2,0,5184,3.767968,0,11,2.397895,2.397895,1,1.4,1.96,4.3292 +0,1,84,13,3,3,0,0,0,1,0,9.928,4,0,7056,2.295359,0,3,1.098612,1.098612,1,3.8,14.44,.99280005 +0,1,82,8,0,0,0,0,1,0,0,12,0,0,6724,2.484907,0,0,,-4.60517,0,3.4,11.56,1.2 +0,0,79,11,3,2,0,0,0,1,0,7.5,1,0,6241,2.014903,0,3,1.098612,1.098612,1,2.8,7.84,.75 +0,0,75,11,1,0,1,0,1,0,0,7.5,0,0,5625,2.014903,0,1,0,0,1,2,4,.75 +0,.464792,85,2,11,0,0,1,0,1,1,21.515,3,1,7225,3.06875,1,11,2.397895,2.397895,1,4,16,2.1514999 +0,.6676905,78,3,14,0,0,1,1,1,1,14.977,2,1,6084,2.706516,1,14,2.639057,2.639057,1,2.6,6.76,1.4977 +0,.7361963,74,12,10,2,0,1,0,0,1,8.15,0,1,5476,2.098018,0,10,2.302585,2.302585,1,1.8,3.24,.81499996 +0,.229982,73,12,15,4,0,1,1,1,1,26.089,4,1,5329,3.261514,0,15,2.70805,2.70805,1,1.6,2.56,2.6089001 +0,1,85,14,3,4,0,0,1,1,1,8.144,2,0,7225,2.097281,0,3,1.098612,1.098612,1,4,16,.81440001 +0,.3333333,66,9,0,0,0,0,0,0,0,18.75,1,0,4356,2.931194,1,0,,-4.60517,0,.2,.04,1.875 +0,1,85,6,6,0,0,0,1,1,1,11.124,1,0,7225,2.409105,0,6,1.791759,1.791759,1,4,16,1.1124 +0,1,71,14,8,0,0,1,1,0,0,12.5,0,1,5041,2.525729,0,8,2.079442,2.079442,1,1.2,1.44,1.25 +0,.3319348,71,16,18,0,0,1,0,0,0,37.658,1,1,5041,3.628546,0,18,2.890372,2.890372,1,1.2,1.44,3.7658001 +0,.3399626,83,14,18,8,0,0,1,1,1,29.415,5,0,6889,3.381505,0,18,2.890372,2.890372,1,3.6,12.96,2.9415001 +0,.3374427,68,15,14,5,0,0,1,1,1,19.63,4,0,4624,2.977059,0,14,2.639057,2.639057,1,.6,.36,1.9629999 +0,.7816092,72,16,2,1,0,0,0,0,0,13.05,1,0,5184,2.568788,0,2,.6931472,.6931472,1,1.4,1.96,1.305 +0,.7816092,71,14,5,1,0,0,1,1,0,13.05,1,0,5041,2.568788,0,5,1.609438,1.609438,1,1.2,1.44,1.305 +0,0,85,5,15,1,1,0,0,1,0,9.459,2,0,7225,2.246967,0,15,2.70805,2.70805,1,4,16,.94589996 +0,0,77,0,11,0,1,0,1,1,0,9.459,3,0,5929,2.246967,0,11,2.397895,2.397895,1,2.4,5.76,.94589996 +0,0,67,11,6,6,1,0,1,0,0,.958,2,0,4489,-.0429075,1,6,1.791759,1.791759,1,.4,.16,.0958 +0,1,68,6,6,0,0,0,0,0,0,5.166,2,0,4624,1.642099,1,6,1.791759,1.791759,1,.6,.36,.51659999 +0,1,65,4,4,0,0,0,1,0,0,5.166,1,0,4225,1.642099,1,4,1.386294,1.386294,1,0,0,.51659999 +0,1,73,11,3,0,0,1,1,0,0,10.584,0,1,5329,2.359343,1,3,1.098612,1.098612,1,1.6,2.56,1.0584 +0,.7675526,79,12,0,0,0,0,1,0,0,10.084,1,0,6241,2.31095,0,0,,-4.60517,0,2.8,7.84,1.0084 +0,.5607477,76,16,4,0,0,1,0,0,0,10.7,0,1,5776,2.370244,0,4,1.386294,1.386294,1,2.2,4.84,1.07 +0,.5607477,68,12,16,6,0,1,1,1,1,10.7,3,1,4624,2.370244,0,16,2.772589,2.772589,1,.6,.36,1.07 +0,.2110632,82,12,17,5,0,0,1,1,1,34.113,3,0,6724,3.529679,0,17,2.833213,2.833213,1,3.4,11.56,3.4112999 +0,.4240429,78,12,6,8,0,1,1,1,1,20.347,1,1,6084,3.012933,0,6,1.791759,1.791759,1,2.6,6.76,2.0347 +0,0,73,8,2,0,1,0,1,1,1,7.831,3,0,5329,2.05809,1,2,.6931472,.6931472,1,1.6,2.56,.78309999 +0,.8602254,69,12,2,0,0,0,1,0,0,22.894,2,0,4761,3.130875,0,2,.6931472,.6931472,1,.8,.64,2.2893999 +0,1,84,12,11,0,0,0,1,1,1,9.552,4,0,7056,2.256751,0,11,2.397895,2.397895,1,3.8,14.44,.9552 +0,.3598539,67,11,11,0,0,1,1,1,0,27.111,3,1,4489,3.29994,0,11,2.397895,2.397895,1,.4,.16,2.7111 +0,1,69,6,13,1,1,0,1,0,0,7.716,3,0,4761,2.043296,1,13,2.564949,2.564949,1,.8,.64,.77160001 +0,.18,78,8,18,0,0,1,0,0,0,25,2,1,6084,3.218876,1,18,2.890372,2.890372,1,2.6,6.76,2.5 +0,.375,66,8,7,3,0,1,1,0,0,12,1,1,4356,2.484907,0,7,1.94591,1.94591,1,.2,.04,1.2 +0,0,84,16,9,3,0,0,0,1,1,15.558,1,0,7056,2.744575,0,9,2.197225,2.197225,1,3.8,14.44,1.5558 +0,0,67,0,9,37,1,0,1,1,1,4.5,5,0,4489,1.504077,0,9,2.197225,2.197225,1,.4,.16,.45 +0,0,80,10,2,2,1,0,1,0,0,7.5,1,0,6400,2.014903,0,2,.6931472,.6931472,1,3,9,.75 +0,.3902439,71,12,0,0,0,0,0,0,1,27.06,0,0,5041,3.298057,0,0,,-4.60517,0,1.2,1.44,2.7059999 +0,.7216036,81,17,1,0,1,0,0,1,0,5.388,1,0,6561,1.684174,1,1,0,0,1,3.2,10.24,.5388 +0,1,80,0,2,0,1,0,1,1,1,8.69,2,0,6400,2.162173,0,2,.6931472,.6931472,1,3,9,.86899996 +0,1,75,6,0,0,1,0,0,0,0,6,1,0,5625,1.791759,1,0,,-4.60517,0,2,4,.6 +0,.3520894,80,12,33,18,0,1,1,1,0,35.775,5,1,6400,3.577249,0,33,3.496508,3.496508,1,3,9,3.5775002 +0,1,84,11,27,2,0,0,1,0,0,12,2,0,7056,2.484907,0,27,3.295837,3.295837,1,3.8,14.44,1.2 +0,.9114587,85,17,12,0,0,0,1,1,1,13.745,5,0,7225,2.620675,0,12,2.484907,2.484907,1,4,16,1.3745 +0,.2707483,66,11,1,0,0,1,0,0,0,54.848,3,1,4356,4.004566,0,1,0,0,1,.2,.04,5.4848 +0,.35,85,9,0,0,0,1,0,0,0,40,0,1,7225,3.688879,0,0,,-4.60517,0,4,16,4 +0,.5333334,68,7,32,11,0,1,0,1,1,9.375,4,1,4624,2.238047,0,32,3.465736,3.465736,1,.6,.36,.9375 +0,.5333334,66,11,38,18,0,1,1,0,1,9.375,5,1,4356,2.238047,0,38,3.637586,3.637586,1,.2,.04,.9375 +0,0,82,12,32,0,1,0,0,1,1,5.7,5,0,6724,1.740466,0,32,3.465736,3.465736,1,3.4,11.56,.56999998 +0,0,83,16,27,4,1,0,1,1,1,5.7,4,0,6889,1.740466,0,27,3.295837,3.295837,1,3.6,12.96,.56999998 +0,.9564635,74,12,5,2,0,1,1,1,1,14.93,2,1,5476,2.703373,0,5,1.609438,1.609438,1,1.8,3.24,1.493 +0,0,69,12,7,0,0,0,1,0,0,16.758,2,0,4761,2.818876,1,7,1.94591,1.94591,1,.8,.64,1.6757999 +0,.221325,83,13,16,26,0,1,1,1,0,33.435,2,1,6889,3.509603,0,16,2.772589,2.772589,1,3.6,12.96,3.3435001 +0,.2996776,73,12,2,2,0,1,1,0,0,66.071,0,1,5329,4.19073,0,2,.6931472,.6931472,1,1.6,2.56,6.6070999 +0,.623409,72,17,7,1,0,1,1,0,0,19.249,0,1,5184,2.957459,0,7,1.94591,1.94591,1,1.4,1.96,1.9249001 +0,1,73,12,18,2,0,1,1,1,1,10,4,1,5329,2.302585,1,18,2.890372,2.890372,1,1.6,2.56,1 +0,.4421156,68,12,7,0,0,1,0,0,0,24.428,0,1,4624,3.19573,0,7,1.94591,1.94591,1,.6,.36,2.4427999 +0,0,78,14,3,3,0,0,0,1,0,6.675,1,0,6084,1.898369,0,3,1.098612,1.098612,1,2.6,6.76,.66750002 +0,0,74,12,2,2,0,0,1,0,0,6.675,1,0,5476,1.898369,0,2,.6931472,.6931472,1,1.8,3.24,.66750002 +0,.3409091,79,12,4,0,0,1,1,1,1,26.4,1,1,6241,3.273364,0,4,1.386294,1.386294,1,2.8,7.84,2.64 +0,1,85,12,4,0,0,0,0,1,0,9.6,2,0,7225,2.261763,0,4,1.386294,1.386294,1,4,16,.96000004 +1,0,65,17,0,0,0,1,0,0,0,35.976,1,1,4225,3.582852,0,0,,-4.60517,0,0,0,3.5976002 +0,0,80,11,4,0,0,0,1,1,1,0,1,0,6400,,0,4,1.386294,1.386294,1,3,9,0 +0,.3186813,73,6,7,0,1,0,1,1,1,6.552,3,0,5329,1.87977,1,7,1.94591,1.94591,1,1.6,2.56,.6552 +0,.8157895,71,4,5,0,1,0,1,1,1,7.6,2,0,5041,2.028148,0,5,1.609438,1.609438,1,1.2,1.44,.75999999 +1,.037685,65,12,4,0,0,1,0,0,0,124.665,1,1,4225,4.82563,0,4,1.386294,1.386294,1,0,0,12.4665 +0,.2323769,66,12,3,1,0,1,1,0,0,28.23,1,1,4356,3.340385,0,3,1.098612,1.098612,1,.2,.04,2.823 +0,1,71,8,3,0,0,0,0,1,1,7.5,1,0,5041,2.014903,1,3,1.098612,1.098612,1,1.2,1.44,.75 +0,.5,71,14,0,0,0,0,1,0,0,15,0,0,5041,2.70805,1,0,,-4.60517,0,1.2,1.44,1.5 +0,.83167,78,4,0,0,0,1,0,1,0,9.018,1,1,6084,2.199223,1,0,,-4.60517,0,2.6,6.76,.90179996 +0,.2838973,73,8,5,0,0,1,1,0,0,26.418,2,1,5329,3.274045,1,5,1.609438,1.609438,1,1.6,2.56,2.6417999 +0,.1667546,76,10,9,0,0,1,1,0,0,43.615,1,1,5776,3.775401,0,9,2.197225,2.197225,1,2.2,4.84,4.3615002 +0,1,74,12,2,0,0,0,1,1,1,13,2,0,5476,2.564949,0,2,.6931472,.6931472,1,1.8,3.24,1.3 +0,.2602656,74,12,4,3,0,1,1,0,0,21.163,2,1,5476,3.052254,0,4,1.386294,1.386294,1,1.8,3.24,2.1163 +0,0,82,12,11,0,0,0,1,1,1,0,5,0,6724,,1,11,2.397895,2.397895,1,3.4,11.56,0 +0,1,69,11,1,3,0,1,1,0,0,6.25,1,1,4761,1.832582,0,1,0,0,1,.8,.64,.625 +0,1,69,8,8,0,0,1,0,1,0,6.25,0,1,4761,1.832582,0,8,2.079442,2.079442,1,.8,.64,.625 +0,0,76,12,1,0,0,0,1,0,0,0,1,0,5776,,0,1,0,0,1,2.2,4.84,0 +0,.6748367,73,12,6,1,0,1,1,0,0,18.523,1,1,5329,2.919013,0,6,1.791759,1.791759,1,1.6,2.56,1.8523001 +0,.2066742,79,16,3,5,0,0,1,0,0,36.289,2,0,6241,3.591515,0,3,1.098612,1.098612,1,2.8,7.84,3.6289001 +0,.1952972,78,16,16,5,0,0,0,0,0,38.403,3,0,6084,3.648136,0,16,2.772589,2.772589,1,2.6,6.76,3.8403 +0,.6548514,66,9,3,9,0,1,1,0,0,11.172,1,1,4356,2.413411,0,3,1.098612,1.098612,1,.2,.04,1.1172 +0,.9867514,85,12,2,0,0,0,1,1,1,7.548,1,0,7225,2.021283,0,2,.6931472,.6931472,1,4,16,.75479999 +0,0,85,12,11,0,0,0,1,1,0,2,1,0,7225,.6931472,1,11,2.397895,2.397895,1,4,16,.2 +0,.962963,85,10,4,0,0,0,1,1,1,8.1,2,0,7225,2.091864,0,4,1.386294,1.386294,1,4,16,.81000004 +0,.3398567,85,10,5,0,0,1,0,1,1,35.309,3,1,7225,3.564138,0,5,1.609438,1.609438,1,4,16,3.5308998 +0,.655308,67,7,11,1,0,1,0,0,0,16.023,2,1,4489,2.774025,1,11,2.397895,2.397895,1,.4,.16,1.6023001 +0,.655308,66,11,3,0,0,1,1,0,0,16.023,0,1,4356,2.774025,1,3,1.098612,1.098612,1,.2,.04,1.6023001 +0,0,70,9,15,0,0,1,1,0,0,0,4,1,4900,,0,15,2.70805,2.70805,1,1,1,0 +0,.8540479,76,11,7,7,0,1,0,0,0,7.016,2,1,5776,1.948193,0,7,1.94591,1.94591,1,2.2,4.84,.70159998 +0,.8540479,74,12,4,14,0,1,1,1,0,7.016,3,1,5476,1.948193,0,4,1.386294,1.386294,1,1.8,3.24,.70159998 +0,.9419712,67,11,7,3,0,1,0,0,0,20.576,4,1,4489,3.024125,0,7,1.94591,1.94591,1,.4,.16,2.0576 +1,0,66,11,16,3,0,1,1,1,0,20.661,2,1,4356,3.028248,0,16,2.772589,2.772589,1,.2,.04,2.0660999 +0,.9337124,81,12,9,5,0,1,1,1,1,6.683,3,1,6561,1.899567,0,9,2.197225,2.197225,1,3.2,10.24,.66830001 +0,.744186,67,15,3,0,0,1,0,0,0,10.75,2,1,4489,2.374906,1,3,1.098612,1.098612,1,.4,.16,1.075 +0,.5423729,67,12,4,0,0,1,1,0,0,14.75,3,1,4489,2.691243,1,4,1.386294,1.386294,1,.4,.16,1.475 +0,.5701191,69,12,8,0,0,0,1,1,0,17.891,2,0,4761,2.884298,0,8,2.079442,2.079442,1,.8,.64,1.7891001 +0,.8528746,69,7,0,0,0,1,0,1,1,8.836,1,1,4761,2.178834,0,0,,-4.60517,0,.8,.64,.88360004 +1,0,65,10,11,0,0,1,1,1,0,17.68,2,1,4225,2.872434,1,11,2.397895,2.397895,1,0,0,1.768 +0,1,73,12,0,1,1,0,1,0,0,8.5,2,0,5329,2.140066,1,0,,-4.60517,0,1.6,2.56,.85 +0,.3536164,79,11,15,1,0,1,1,1,1,36.763,2,1,6241,3.604492,0,15,2.70805,2.70805,1,2.8,7.84,3.6763 +0,.5893617,68,12,48,35,0,0,1,1,1,9.4,4,0,4624,2.24071,0,48,3.871201,3.871201,1,.6,.36,.93999996 +0,.7368421,73,12,7,0,0,0,1,0,0,11.4,1,0,5329,2.433613,0,7,1.94591,1.94591,1,1.6,2.56,1.14 +0,.3579706,79,8,13,2,0,0,0,1,1,12.772,3,0,6241,2.547255,0,13,2.564949,2.564949,1,2.8,7.84,1.2772 +0,.1438356,72,12,0,0,0,0,0,0,0,58.4,2,0,5184,4.067316,0,0,,-4.60517,0,1.4,1.96,5.8400002 +0,1,71,12,59,0,0,0,1,1,0,8.4,3,0,5041,2.128232,0,59,4.077538,4.077538,1,1.2,1.44,.83999996 +0,0,65,0,2,0,1,0,0,1,1,10.245,2,0,4225,2.32679,0,2,.6931472,.6931472,1,0,0,1.0245 +0,.3308656,66,17,5,2,0,1,0,0,0,54.841,1,1,4356,4.004438,1,5,1.609438,1.609438,1,.2,.04,5.4841 +0,1,69,12,3,0,0,1,0,0,0,7.2,1,1,4761,1.974081,1,3,1.098612,1.098612,1,.8,.64,.71999998 +1,.0816576,66,17,2,20,0,1,1,0,0,135.811,1,1,4356,4.911264,1,2,.6931472,.6931472,1,.2,.04,13.5811 +0,.2009891,73,17,5,0,0,1,0,0,0,41.047,0,1,5329,3.714718,0,5,1.609438,1.609438,1,1.6,2.56,4.1047001 +0,.2200176,74,15,14,0,0,1,1,1,1,37.497,5,1,5476,3.624261,0,14,2.639057,2.639057,1,1.8,3.24,3.7497002 +0,1,69,11,7,0,1,0,0,1,1,4.998,4,0,4761,1.609038,1,7,1.94591,1.94591,1,.8,.64,.49980001 +0,1,71,5,12,3,1,0,1,1,1,4.998,4,0,5041,1.609038,1,12,2.484907,2.484907,1,1.2,1.44,.49980001 +0,1,72,10,1,0,0,0,0,0,0,6,2,0,5184,1.791759,0,1,0,0,1,1.4,1.96,.6 +0,.4218241,78,16,4,4,0,0,0,0,0,14.736,1,0,6084,2.690294,0,4,1.386294,1.386294,1,2.6,6.76,1.4736 +0,.4218241,74,12,6,4,0,0,1,1,0,14.736,0,0,5476,2.690294,0,6,1.791759,1.791759,1,1.8,3.24,1.4736 +0,1,78,4,7,36,0,1,1,1,0,12,4,1,6084,2.484907,1,7,1.94591,1.94591,1,2.6,6.76,1.2 +0,1,67,8,0,0,0,0,0,0,0,10.601,1,0,4489,2.360948,0,0,,-4.60517,0,.4,.16,1.0601 +1,0,66,12,20,21,0,1,0,1,0,34.036,3,1,4356,3.527419,0,20,2.995732,2.995732,1,.2,.04,3.4035999 +0,0,66,17,4,12,0,1,1,0,0,97.275,0,1,4356,4.577542,0,4,1.386294,1.386294,1,.2,.04,9.7275002 +0,.0856655,79,17,8,0,0,1,0,0,0,146.862,3,1,6241,4.989493,0,8,2.079442,2.079442,1,2.8,7.84,14.6862 +0,.9996668,85,12,4,1,0,1,1,1,1,15.005,3,1,7225,2.708384,0,4,1.386294,1.386294,1,4,16,1.5005 +0,1,72,7,9,0,1,0,1,1,1,7.2,4,0,5184,1.974081,1,9,2.197225,2.197225,1,1.4,1.96,.71999998 +0,.6940268,72,14,3,1,0,1,0,0,0,21.613,1,1,5184,3.073295,0,3,1.098612,1.098612,1,1.4,1.96,2.1613001 +0,.6940268,65,13,15,0,0,1,1,1,1,21.613,4,1,4225,3.073295,0,15,2.70805,2.70805,1,0,0,2.1613001 +0,.9215686,68,12,13,28,1,0,0,1,1,7.344,3,0,4624,1.993884,0,13,2.564949,2.564949,1,.6,.36,.73439999 +0,.8170866,70,11,12,0,0,1,1,1,0,17.183,4,1,4900,2.84392,0,12,2.484907,2.484907,1,1,1,1.7183001 +0,.9386252,67,12,3,0,0,0,1,0,0,9.776,2,0,4489,2.27993,0,3,1.098612,1.098612,1,.4,.16,.9776 +0,1,72,8,3,0,0,1,1,0,1,7.44,0,1,5184,2.006871,0,3,1.098612,1.098612,1,1.4,1.96,.74400001 +0,.1614733,77,17,4,10,0,0,1,0,0,49.55,2,0,5929,3.902982,1,4,1.386294,1.386294,1,2.4,5.76,4.9549999 +0,.5186049,73,12,3,0,0,0,0,0,0,23.139,2,0,5329,3.14152,0,3,1.098612,1.098612,1,1.6,2.56,2.3139 +0,0,74,17,7,0,1,0,0,0,0,9.459,3,0,5476,2.246967,0,7,1.94591,1.94591,1,1.8,3.24,.94589996 +0,.3985122,78,10,7,1,0,0,1,1,1,15.056,2,0,6084,2.711776,0,7,1.94591,1.94591,1,2.6,6.76,1.5056 +0,.9186992,68,9,0,0,0,0,1,0,1,3.69,0,0,4624,1.305627,1,0,,-4.60517,0,.6,.36,.36900001 +0,.9186992,84,5,6,0,0,0,0,1,1,3.69,1,0,7056,1.305627,1,6,1.791759,1.791759,1,3.8,14.44,.36900001 +0,.6415191,72,17,6,0,0,1,0,0,0,7.794,3,1,5184,2.053354,0,6,1.791759,1.791759,1,1.4,1.96,.77940001 +0,.6415191,68,16,7,0,0,1,1,0,0,7.794,3,1,4624,2.053354,0,7,1.94591,1.94591,1,.6,.36,.77940001 +0,.9051173,73,8,3,1,0,0,1,1,1,11.256,2,0,5329,2.420901,1,3,1.098612,1.098612,1,1.6,2.56,1.1256 +0,.1331854,69,13,1,1,0,1,0,0,0,112.625,0,1,4761,4.724064,0,1,0,0,1,.8,.64,11.2625 +0,.6936416,69,13,0,1,0,1,1,0,0,21.625,0,1,4761,3.07385,0,0,,-4.60517,0,.8,.64,2.1625 +0,.5015051,82,3,3,0,1,0,1,1,1,13.288,2,0,6724,2.586861,1,3,1.098612,1.098612,1,3.4,11.56,1.3288 +0,.9688668,80,9,10,2,0,1,0,0,0,9.636,1,1,6400,2.265506,0,10,2.302585,2.302585,1,3,9,.96359997 +0,.9688668,72,2,4,1,0,1,1,1,0,9.636,2,1,5184,2.265506,0,4,1.386294,1.386294,1,1.4,1.96,.96359997 +0,.3642313,75,13,1,0,0,0,0,0,0,30.563,2,0,5625,3.41979,0,1,0,0,1,2,4,3.0563 +0,.5531653,74,12,2,2,0,0,0,0,0,16.27,2,0,5476,2.789323,0,2,.6931472,.6931472,1,1.8,3.24,1.627 +0,.5531653,71,12,2,0,0,0,1,0,0,16.27,0,0,5041,2.789323,0,2,.6931472,.6931472,1,1.2,1.44,1.627 +0,.7995121,76,12,8,5,0,0,1,1,0,11.477,3,0,5776,2.440345,0,8,2.079442,2.079442,1,2.2,4.84,1.1477 +0,.0905888,80,13,5,16,0,0,1,1,0,31.792,2,0,6400,3.459215,0,5,1.609438,1.609438,1,3,9,3.1792 +0,0,69,12,5,0,0,0,0,0,0,10,1,0,4761,2.302585,1,5,1.609438,1.609438,1,.8,.64,1 +0,.3533868,79,9,0,0,0,0,1,0,0,35.372,2,0,6241,3.565921,0,0,,-4.60517,0,2.8,7.84,3.5372002 +0,.4869263,74,11,1,0,0,1,1,1,0,29.984,1,1,5476,3.400664,0,1,0,0,1,1.8,3.24,2.9983999 +0,.6455778,67,14,3,0,0,1,1,1,0,17.039,1,1,4489,2.835505,0,3,1.098612,1.098612,1,.4,.16,1.7039 +0,1,76,8,4,1,0,0,0,0,1,8,4,0,5776,2.079442,0,4,1.386294,1.386294,1,2.2,4.84,.8 +0,.4211674,76,4,4,0,1,0,0,0,0,20.182,1,0,5776,3.004791,0,4,1.386294,1.386294,1,2.2,4.84,2.0181999 +0,.5862069,75,14,8,0,1,0,0,1,1,14.5,3,0,5625,2.674149,0,8,2.079442,2.079442,1,2,4,1.45 +0,.7738096,75,12,2,0,0,1,1,0,0,8.4,1,1,5625,2.128232,0,2,.6931472,.6931472,1,2,4,.83999996 +0,.7738096,77,12,9,0,0,1,0,0,0,8.4,1,1,5929,2.128232,0,9,2.197225,2.197225,1,2.4,5.76,.83999996 +0,.6315789,67,17,5,2,0,1,1,0,0,12.35,2,1,4489,2.513656,0,5,1.609438,1.609438,1,.4,.16,1.235 +0,.6315789,69,17,11,18,0,1,0,0,0,12.35,3,1,4761,2.513656,0,11,2.397895,2.397895,1,.8,.64,1.235 +0,.9656652,85,14,23,15,0,0,0,1,1,5.825,2,0,7225,1.762159,0,23,3.135494,3.135494,1,4,16,.58249998 +0,.9656652,85,12,15,187,0,0,1,1,1,5.825,3,0,7225,1.762159,0,15,2.70805,2.70805,1,4,16,.58249998 +1,.2152389,65,12,17,1,0,1,1,1,0,23.23,3,1,4225,3.145445,0,17,2.833213,2.833213,1,0,0,2.323 +0,.4468932,80,7,0,0,0,0,0,0,0,16.335,1,0,6400,2.79331,0,0,,-4.60517,0,3,9,1.6334999 +0,.3364055,76,6,9,4,0,0,1,0,0,21.7,6,0,5776,3.077312,0,9,2.197225,2.197225,1,2.2,4.84,2.1700001 +0,.1629236,69,11,21,0,0,1,0,1,0,39.184,3,1,4761,3.668268,1,21,3.044523,3.044523,1,.8,.64,3.9183998 +0,0,71,13,4,2,0,0,0,1,0,13.455,3,0,5041,2.599351,0,4,1.386294,1.386294,1,1.2,1.44,1.3455 +0,0,78,6,8,3,0,0,1,1,0,13.047,1,0,6084,2.568558,0,8,2.079442,2.079442,1,2.6,6.76,1.3047 +0,.5910925,80,12,5,4,0,1,1,1,0,14.123,5,1,6400,2.647805,1,5,1.609438,1.609438,1,3,9,1.4123 +0,0,79,12,4,24,0,0,1,1,0,0,2,0,6241,,0,4,1.386294,1.386294,1,2.8,7.84,0 +0,0,85,0,3,0,1,0,1,1,1,9.185,1,0,7225,2.217572,1,3,1.098612,1.098612,1,4,16,.91850004 +0,0,69,3,0,0,0,0,1,0,1,9.185,1,0,4761,2.217572,1,0,,-4.60517,0,.8,.64,.91850004 +0,.3788517,76,12,24,3,0,1,0,0,0,23.756,3,1,5776,3.167835,0,24,3.178054,3.178054,1,2.2,4.84,2.3756001 +0,.3788517,72,12,9,5,0,1,1,0,0,23.756,1,1,5184,3.167835,0,9,2.197225,2.197225,1,1.4,1.96,2.3756001 +0,.165818,77,12,29,0,0,1,1,0,0,44.778,2,1,5929,3.801717,0,29,3.367296,3.367296,1,2.4,5.76,4.4778 +0,.076722,85,16,13,1,0,1,0,1,1,96.778,2,1,7225,4.57242,0,13,2.564949,2.564949,1,4,16,9.6778 +0,.6705819,82,9,2,0,0,1,0,0,0,11.238,2,1,6724,2.419301,0,2,.6931472,.6931472,1,3.4,11.56,1.1238 +0,.3601138,85,12,9,0,0,1,1,1,1,27.769,2,1,7225,3.32392,0,9,2.197225,2.197225,1,4,16,2.7768999 +0,.8644807,76,5,9,0,0,0,0,1,1,12.382,1,0,5776,2.516244,1,9,2.197225,2.197225,1,2.2,4.84,1.2382 +0,.345551,72,12,0,0,0,0,1,0,0,24.309,1,0,5184,3.190847,0,0,,-4.60517,0,1.4,1.96,2.4309 +0,.3513883,85,10,2,0,0,0,1,1,0,38.789,2,0,7225,3.658137,0,2,.6931472,.6931472,1,4,16,3.8789001 +0,.4736842,78,14,1,0,0,1,0,0,0,19,1,1,6084,2.944439,0,1,0,0,1,2.6,6.76,1.9 +0,.4736842,74,14,2,0,0,1,1,0,0,19,4,1,5476,2.944439,0,2,.6931472,.6931472,1,1.8,3.24,1.9 +0,0,73,9,1,0,0,1,1,0,0,.455,0,1,5329,-.7874578,0,1,0,0,1,1.6,2.56,.0455 +0,0,77,14,3,3,0,0,0,0,0,.455,0,0,5929,-.7874578,0,3,1.098612,1.098612,1,2.4,5.76,.0455 +1,0,67,12,0,0,0,1,1,0,0,14.56,0,1,4489,2.678278,0,0,,-4.60517,0,.4,.16,1.456 +0,.9599376,70,9,10,0,1,0,1,1,1,1.922,3,0,4900,.6533663,1,10,2.302585,2.302585,1,1,1,.19220001 +0,.9164678,82,12,15,3,0,0,1,0,0,8.38,2,0,6724,2.125848,0,15,2.70805,2.70805,1,3.4,11.56,.83800001 +0,.4179861,85,16,2,1,0,0,1,1,1,47.37,2,0,7225,3.857989,0,2,.6931472,.6931472,1,4,16,4.7369999 +0,.8979592,85,12,8,18,0,1,1,0,0,14.7,2,1,7225,2.687847,0,8,2.079442,2.079442,1,4,16,1.47 +0,1,77,17,1,0,0,1,0,0,0,3.6,1,1,5929,1.280934,1,1,0,0,1,2.4,5.76,.35999999 +0,1,67,17,1,0,0,1,1,0,0,3.6,2,1,4489,1.280934,1,1,0,0,1,.4,.16,.35999999 +0,1,67,11,7,0,0,0,1,1,1,5,3,0,4489,1.609438,0,7,1.94591,1.94591,1,.4,.16,.5 +0,.6542751,74,4,11,0,0,0,1,1,1,6.456,5,0,5476,1.86501,1,11,2.397895,2.397895,1,1.8,3.24,.64559999 +0,.9460581,85,7,2,0,1,0,1,1,1,4.82,4,0,7225,1.572774,0,2,.6931472,.6931472,1,4,16,.48200002 +0,.5357143,83,13,3,5,0,0,1,0,1,22.4,2,0,6889,3.109061,0,3,1.098612,1.098612,1,3.6,12.96,2.24 +0,.5967382,65,12,4,0,0,0,0,0,0,23.729,0,0,4225,3.166698,0,4,1.386294,1.386294,1,0,0,2.3729 +0,1,69,12,18,6,0,1,1,0,0,6,3,1,4761,1.791759,0,18,2.890372,2.890372,1,.8,.64,.6 +0,.3123808,75,12,3,9,0,1,1,1,1,28.827,1,1,5625,3.361312,0,3,1.098612,1.098612,1,2,4,2.8827 +0,.0547914,67,12,4,0,0,1,0,0,0,52.928,1,1,4489,3.968933,0,4,1.386294,1.386294,1,.4,.16,5.2928001 +0,.4676806,69,17,8,1,0,1,1,1,0,21.04,1,1,4761,3.046425,1,8,2.079442,2.079442,1,.8,.64,2.1040001 +0,0,71,12,18,0,1,0,1,1,1,6.78,3,0,5041,1.913977,1,18,2.890372,2.890372,1,1.2,1.44,.67800002 +1,.0962849,65,12,3,0,0,1,0,0,0,67.508,2,1,4225,4.212246,0,3,1.098612,1.098612,1,0,0,6.7508003 +0,0,65,12,2,0,1,0,1,1,1,0,4,0,4225,,1,2,.6931472,.6931472,1,0,0,0 +0,.4546584,71,11,9,23,1,0,1,1,0,12.88,2,0,5041,2.555676,0,9,2.197225,2.197225,1,1.2,1.44,1.288 +0,.4777505,80,12,3,0,0,1,1,0,0,29.304,2,1,6400,3.377724,1,3,1.098612,1.098612,1,3,9,2.9304001 +0,1,69,12,0,0,0,0,1,0,0,6.5,0,0,4761,1.871802,1,0,,-4.60517,0,.8,.64,.65 +0,.7767857,79,10,8,0,0,1,1,0,0,13.44,2,1,6241,2.598235,0,8,2.079442,2.079442,1,2.8,7.84,1.344 +0,1,65,6,2,0,0,0,1,0,0,8.5,1,0,4225,2.140066,1,2,.6931472,.6931472,1,0,0,.85 +0,.9989594,67,12,8,1,0,0,1,0,0,9.61,2,0,4489,2.262804,0,8,2.079442,2.079442,1,.4,.16,.96099997 +0,.4032597,68,10,1,0,0,0,0,0,0,23.806,1,0,4624,3.169938,0,1,0,0,1,.6,.36,2.3806 +0,0,71,3,4,0,1,0,1,0,0,0,1,0,5041,,1,4,1.386294,1.386294,1,1.2,1.44,0 +0,.4049236,79,12,6,0,0,1,1,0,0,23.56,0,1,6241,3.15955,0,6,1.791759,1.791759,1,2.8,7.84,2.3559999 +0,.3321367,83,14,28,2,0,0,1,1,0,27.856,4,0,6889,3.327048,0,28,3.332205,3.332205,1,3.6,12.96,2.7856001 +0,.0857841,85,16,6,4,0,1,1,1,0,69.943,2,1,7225,4.247681,1,6,1.791759,1.791759,1,4,16,6.9943001 +0,.2232969,65,9,0,0,0,0,0,0,0,21.196,0,0,4225,3.053813,1,0,,-4.60517,0,0,0,2.1195999 +0,1,67,3,0,0,0,0,1,0,0,4.733,0,0,4489,1.554559,1,0,,-4.60517,0,.4,.16,.47329998 +0,1,76,16,6,0,0,1,1,0,0,10.2,2,1,5776,2.322388,0,6,1.791759,1.791759,1,2.2,4.84,1.02 +0,.2301654,79,17,3,4,0,1,0,1,0,84.209,1,1,6241,4.433302,0,3,1.098612,1.098612,1,2.8,7.84,8.4209 +0,1,85,4,14,1,0,0,1,1,1,6.5,3,0,7225,1.871802,0,14,2.639057,2.639057,1,4,16,.65 +0,0,70,12,5,0,0,1,1,1,1,0,3,1,4900,,0,5,1.609438,1.609438,1,1,1,0 +0,0,84,12,10,1,0,1,1,1,0,25.162,2,1,7056,3.225335,0,10,2.302585,2.302585,1,3.8,14.44,2.5162001 +0,.6,67,7,1,0,1,0,0,1,1,6,2,0,4489,1.791759,1,1,0,0,1,.4,.16,.6 +0,.9165553,80,9,2,2,0,1,1,0,0,10.474,1,1,6400,2.348896,0,2,.6931472,.6931472,1,3,9,1.0474 +0,1,68,9,0,0,0,0,0,0,0,3.744,0,0,4624,1.320155,1,0,,-4.60517,0,.6,.36,.3744 +0,.5948023,74,16,7,2,0,0,0,1,1,10.928,2,0,5476,2.391328,0,7,1.94591,1.94591,1,1.8,3.24,1.0928 +0,.9606858,71,14,6,1,0,0,1,1,1,6.766,1,0,5041,1.91191,1,6,1.791759,1.791759,1,1.2,1.44,.67659998 +0,.5238234,80,12,12,3,0,0,1,1,1,37.799,1,0,6400,3.632283,0,12,2.484907,2.484907,1,3,9,3.7799 +0,.4026764,66,11,2,1,1,0,0,1,1,9.864,2,0,4356,2.288892,1,2,.6931472,.6931472,1,.2,.04,.98640003 +0,1,76,12,6,0,0,1,0,1,1,6.224,2,1,5776,1.828413,1,6,1.791759,1.791759,1,2.2,4.84,.6224 +0,.3653302,80,12,0,0,0,1,1,0,0,21.898,2,1,6400,3.086395,0,0,,-4.60517,0,3,9,2.1898001 +0,1,75,5,5,0,0,0,1,0,0,9.717,1,0,5625,2.273877,1,5,1.609438,1.609438,1,2,4,.9717 +0,0,77,0,20,0,1,0,1,1,1,6,4,0,5929,1.791759,1,20,2.995732,2.995732,1,2.4,5.76,.6 +0,.8766337,76,12,3,0,0,1,1,0,0,12.548,1,1,5776,2.529561,1,3,1.098612,1.098612,1,2.2,4.84,1.2548 +0,.3744057,85,14,9,1,0,1,0,0,0,19.981,2,1,7225,2.994782,0,9,2.197225,2.197225,1,4,16,1.9981001 +0,.3744057,83,13,21,7,0,1,1,0,0,19.981,2,1,6889,2.994782,0,21,3.044523,3.044523,1,3.6,12.96,1.9981001 +0,1,81,3,0,0,1,0,1,0,0,4.416,0,0,6561,1.485234,1,0,,-4.60517,0,3.2,10.24,.44159999 +0,.6682746,73,8,17,1,1,0,0,1,1,13.475,2,0,5329,2.600836,0,17,2.833213,2.833213,1,1.6,2.56,1.3475 +0,.6799613,73,9,3,0,0,1,0,1,1,12.411,2,1,5329,2.518583,0,3,1.098612,1.098612,1,1.6,2.56,1.2411 +0,.6799613,69,9,1,0,0,1,1,0,0,12.411,3,1,4761,2.518583,0,1,0,0,1,.8,.64,1.2411 +0,.1821995,76,15,12,1,0,1,1,0,1,62.942,5,1,5776,4.142214,0,12,2.484907,2.484907,1,2.2,4.84,6.2942001 +0,.9649123,74,13,2,0,0,1,0,0,0,11.4,1,1,5476,2.433613,0,2,.6931472,.6931472,1,1.8,3.24,1.14 +0,.5820722,70,9,1,0,0,0,0,0,0,15.462,1,0,4900,2.738385,0,1,0,0,1,1,1,1.5462 +0,.5820722,70,8,3,0,0,0,1,1,0,15.462,1,0,4900,2.738385,0,3,1.098612,1.098612,1,1,1,1.5462 +0,.5109363,84,4,6,0,0,1,0,1,1,19.705,4,1,7056,2.980872,0,6,1.791759,1.791759,1,3.8,14.44,1.9705 +0,0,72,16,2,1,0,0,0,0,0,10.766,1,0,5184,2.376393,0,2,.6931472,.6931472,1,1.4,1.96,1.0766 +0,.9072581,79,11,2,1,0,0,0,0,0,6.2,1,0,6241,1.824549,0,2,.6931472,.6931472,1,2.8,7.84,.61999998 +0,.9072581,79,11,4,2,0,0,1,0,0,6.2,2,0,6241,1.824549,0,4,1.386294,1.386294,1,2.8,7.84,.61999998 +0,1,67,6,0,0,0,0,0,1,1,9,0,0,4489,2.197225,0,0,,-4.60517,0,.4,.16,.9 +0,.7252933,65,10,11,6,0,1,0,0,0,30.083,4,1,4225,3.40396,0,11,2.397895,2.397895,1,0,0,3.0083 +0,.3056405,68,12,6,4,0,0,1,0,0,35.99,0,0,4624,3.583241,1,6,1.791759,1.791759,1,.6,.36,3.5990002 +0,.5490196,80,12,1,0,0,1,1,1,0,25.5,2,1,6400,3.238678,0,1,0,0,1,3,9,2.55 +0,.2156779,73,14,3,0,0,0,0,0,0,46.792,0,0,5329,3.845712,0,3,1.098612,1.098612,1,1.6,2.56,4.6792 +0,.2742988,71,13,9,4,0,0,1,0,0,36.792,1,0,5041,3.60528,0,9,2.197225,2.197225,1,1.2,1.44,3.6792 +0,.1287763,82,16,3,0,0,1,0,1,1,66.301,3,1,6724,4.194205,0,3,1.098612,1.098612,1,3.4,11.56,6.6301003 +0,.1863948,73,12,8,0,0,1,1,0,0,45.806,0,1,5329,3.824415,0,8,2.079442,2.079442,1,1.6,2.56,4.5806 +1,.1381009,69,17,0,0,0,1,1,1,1,86.893,2,1,4761,4.464677,0,0,,-4.60517,0,.8,.64,8.6892998 +0,.2477876,83,16,2,1,0,0,0,1,1,28.25,2,0,6889,3.341094,0,2,.6931472,.6931472,1,3.6,12.96,2.825 +0,.6222222,77,12,3,2,0,0,1,0,0,11.25,2,0,5929,2.420368,0,3,1.098612,1.098612,1,2.4,5.76,1.125 +0,1,70,9,6,1,1,0,1,1,1,6.624,2,0,4900,1.890699,1,6,1.791759,1.791759,1,1,1,.66240001 +0,.7643312,71,10,19,0,0,0,1,1,1,15.7,2,0,5041,2.753661,0,19,2.944439,2.944439,1,1.2,1.44,1.57 +0,.7088608,70,13,2,0,0,1,0,0,0,7.9,1,1,4900,2.066863,1,2,.6931472,.6931472,1,1,1,.79000001 +0,.9716599,81,7,18,4,0,1,1,1,1,7.41,3,1,6561,2.002831,0,18,2.890372,2.890372,1,3.2,10.24,.74099998 +0,1,68,16,4,0,0,0,0,0,0,21.669,2,0,4624,3.075883,0,4,1.386294,1.386294,1,.6,.36,2.1669001 +0,0,66,12,4,0,0,0,1,0,0,49.495,3,0,4356,3.901872,0,4,1.386294,1.386294,1,.2,.04,4.9494999 +0,.1761071,85,13,4,1,0,1,1,1,1,14.565,1,1,7225,2.678621,0,4,1.386294,1.386294,1,4,16,1.4565 +0,.3226572,76,5,3,0,1,0,0,1,1,10.116,1,0,5776,2.314118,1,3,1.098612,1.098612,1,2.2,4.84,1.0116 +0,.9459872,72,12,3,1,0,1,1,0,0,9.831,0,1,5184,2.285541,0,3,1.098612,1.098612,1,1.4,1.96,.98310003 +0,.6409336,85,7,1,0,0,1,0,1,1,22.28,1,1,7225,3.103689,0,1,0,0,1,4,16,2.2280001 +0,0,76,4,3,0,1,0,0,1,1,9.311,1,0,5776,2.231196,1,3,1.098612,1.098612,1,2.2,4.84,.93109999 +0,0,71,3,7,0,1,0,1,0,0,2.76,1,0,5041,1.015231,1,7,1.94591,1.94591,1,1.2,1.44,.276 +0,.3545863,75,15,14,9,0,1,0,1,0,50.989,3,1,5625,3.93161,0,14,2.639057,2.639057,1,2,4,5.0988998 +0,1,70,8,22,44,0,0,0,1,1,3.852,5,0,4900,1.348593,1,22,3.091043,3.091043,1,1,1,.3852 +0,.9988014,68,16,16,1,0,1,1,1,0,15.018,5,1,4624,2.709249,0,16,2.772589,2.772589,1,.6,.36,1.5018 +0,.9988014,68,12,7,0,0,1,0,0,0,15.018,2,1,4624,2.709249,0,7,1.94591,1.94591,1,.6,.36,1.5018 +0,1,77,11,11,22,1,0,1,1,0,8.76,5,0,5929,2.170196,1,11,2.397895,2.397895,1,2.4,5.76,.87600002 +0,1,83,0,2,0,0,0,0,0,0,2.5,3,0,6889,.9162908,1,2,.6931472,.6931472,1,3.6,12.96,.25 +0,1,82,0,0,0,0,0,1,0,0,2.5,2,0,6724,.9162908,1,0,,-4.60517,0,3.4,11.56,.25 +1,.1934444,73,12,5,2,0,1,1,0,0,48.386,3,1,5329,3.87921,1,5,1.609438,1.609438,1,1.6,2.56,4.8386002 +0,1,73,14,5,3,0,0,0,0,0,21.669,2,0,5329,3.075883,0,5,1.609438,1.609438,1,1.6,2.56,2.1669001 +0,1,68,14,0,0,0,0,1,0,0,21.669,0,0,4624,3.075883,0,0,,-4.60517,0,.6,.36,2.1669001 +0,0,69,17,19,2,0,0,1,0,0,39.103,2,0,4761,3.666199,0,19,2.944439,2.944439,1,.8,.64,3.9103001 +0,0,85,13,9,1,0,1,1,1,1,0,1,1,7225,,0,9,2.197225,2.197225,1,4,16,0 +0,1,85,10,2,0,0,1,0,1,1,21.669,2,1,7225,3.075883,0,2,.6931472,.6931472,1,4,16,2.1669001 +0,.3833866,75,13,26,1,0,1,0,1,1,31.3,4,1,5625,3.443618,0,26,3.258096,3.258096,1,2,4,3.1299999 +0,.8847297,76,12,12,1,0,1,0,1,0,9.083,3,1,5776,2.206404,0,12,2.484907,2.484907,1,2.2,4.84,.90830002 +0,.6596076,67,12,2,1,0,1,1,1,0,12.183,3,1,4489,2.500041,0,2,.6931472,.6931472,1,.4,.16,1.2183 +0,.0515927,67,17,0,0,0,1,0,0,0,146.862,0,1,4489,4.989493,0,0,,-4.60517,0,.4,.16,14.6862 +0,1,71,8,8,0,0,1,0,1,0,10,2,1,5041,2.302585,0,8,2.079442,2.079442,1,1.2,1.44,1 +0,0,65,9,12,1,0,0,1,0,0,9.337,0,0,4225,2.233985,1,12,2.484907,2.484907,1,0,0,.93369999 +0,0,66,16,2,0,0,1,0,0,0,173.436,1,1,4356,5.155808,0,2,.6931472,.6931472,1,.2,.04,17.3436 +0,1,85,12,0,0,0,0,0,0,0,11.25,1,0,7225,2.420368,0,0,,-4.60517,0,4,16,1.125 +0,1,85,17,3,0,0,0,1,0,0,11.25,1,0,7225,2.420368,0,3,1.098612,1.098612,1,4,16,1.125 +0,.5368655,74,11,3,0,0,0,1,0,0,21.592,1,0,5476,3.072323,0,3,1.098612,1.098612,1,1.8,3.24,2.1591999 +0,1,80,6,23,0,1,0,0,0,0,3.25,2,0,6400,1.178655,1,23,3.135494,3.135494,1,3,9,.325 +0,1,74,6,14,1,1,0,1,1,1,3.25,2,0,5476,1.178655,1,14,2.639057,2.639057,1,1.8,3.24,.325 +0,.1133983,65,8,0,13,0,0,1,0,0,21.958,0,0,4225,3.089132,0,0,,-4.60517,0,0,0,2.1958 +0,.1752507,82,6,1,8,0,0,1,1,0,41.084,2,0,6724,3.715619,0,1,0,0,1,3.4,11.56,4.1084 +0,.9880952,73,12,3,0,0,0,1,0,0,8.4,0,0,5329,2.128232,0,3,1.098612,1.098612,1,1.6,2.56,.83999996 +0,.4363636,69,16,7,1,0,1,0,0,1,22,3,1,4761,3.091043,0,7,1.94591,1.94591,1,.8,.64,2.2 +0,.4363636,66,12,3,0,0,1,1,0,0,22,1,1,4356,3.091043,0,3,1.098612,1.098612,1,.2,.04,2.2 +0,1,66,12,2,0,1,0,1,0,0,19.694,2,0,4356,2.980314,0,2,.6931472,.6931472,1,.2,.04,1.9694 +0,0,77,12,13,0,0,0,1,0,0,.982,3,0,5929,-.018164,1,13,2.564949,2.564949,1,2.4,5.76,.0982 +0,0,69,17,3,0,0,1,1,0,0,122.349,1,1,4761,4.806878,0,3,1.098612,1.098612,1,.8,.64,12.2349 +0,1,68,0,3,0,0,1,0,1,1,3.6,2,1,4624,1.280934,1,3,1.098612,1.098612,1,.6,.36,.35999999 +0,0,76,7,7,0,1,0,1,1,1,15.966,2,0,5776,2.770461,1,7,1.94591,1.94591,1,2.2,4.84,1.5966 +0,.9973404,85,8,19,2,0,0,0,0,0,7.52,3,0,7225,2.017566,0,19,2.944439,2.944439,1,4,16,.752 +0,1,85,8,14,11,1,0,1,1,1,13.5,5,0,7225,2.60269,0,14,2.639057,2.639057,1,4,16,1.35 +0,.3116184,73,12,5,0,0,1,0,0,0,30.486,3,1,5329,3.417268,0,5,1.609438,1.609438,1,1.6,2.56,3.0486 +0,.2527268,73,12,3,0,0,1,1,0,0,37.59,1,1,5329,3.626738,0,3,1.098612,1.098612,1,1.6,2.56,3.759 +0,.6962025,85,10,7,1,0,1,1,0,0,15.8,2,1,7225,2.76001,0,7,1.94591,1.94591,1,4,16,1.58 +0,0,70,13,7,15,0,1,0,0,0,0,1,1,4900,,0,7,1.94591,1.94591,1,1,1,0 +1,0,66,14,11,1,0,1,1,1,0,26.84,1,1,4356,3.289893,0,11,2.397895,2.397895,1,.2,.04,2.684 +0,0,78,11,6,4,0,1,1,1,0,7,0,1,6084,1.94591,1,6,1.791759,1.791759,1,2.6,6.76,.7 +0,.6574985,66,10,9,1,0,0,1,1,1,15.343,1,0,4356,2.730659,0,9,2.197225,2.197225,1,.2,.04,1.5343 +0,.5458387,73,14,4,1,0,0,1,0,0,35.494,3,0,5329,3.569364,1,4,1.386294,1.386294,1,1.6,2.56,3.5493999 +0,.0924749,71,17,21,3,0,1,0,1,1,43.255,0,1,5041,3.767113,0,21,3.044523,3.044523,1,1.2,1.44,4.3255001 +0,.8238929,70,13,5,1,0,1,1,0,0,4.855,2,1,4900,1.580009,0,5,1.609438,1.609438,1,1,1,.4855 +0,1,76,7,0,0,0,0,1,0,0,6,0,0,5776,1.791759,1,0,,-4.60517,0,2.2,4.84,.6 +0,.5714286,85,12,10,9,0,1,1,1,1,16.8,4,1,7225,2.821379,0,10,2.302585,2.302585,1,4,16,1.6799999 +0,0,84,8,0,0,0,0,1,1,1,0,3,0,7056,,1,0,,-4.60517,0,3.8,14.44,0 +0,1,65,11,2,0,1,0,1,1,1,8,1,0,4225,2.079442,1,2,.6931472,.6931472,1,0,0,.8 +0,.3969211,82,14,16,14,0,1,1,1,0,30.011,4,1,6724,3.401564,0,16,2.772589,2.772589,1,3.4,11.56,3.0011 +0,0,85,3,9,0,1,0,1,1,1,9.185,3,0,7225,2.217572,1,9,2.197225,2.197225,1,4,16,.91850004 +0,.7034483,80,1,6,0,1,0,0,0,0,14.5,1,0,6400,2.674149,1,6,1.791759,1.791759,1,3,9,1.45 +0,.7034483,77,3,8,34,1,0,1,0,1,14.5,2,0,5929,2.674149,1,8,2.079442,2.079442,1,2.4,5.76,1.45 +0,.9671848,70,8,16,1,1,0,1,1,1,6.948,3,0,4900,1.938454,0,16,2.772589,2.772589,1,1,1,.6948 +0,0,82,16,15,0,0,0,0,0,0,0,1,0,6724,,0,15,2.70805,2.70805,1,3.4,11.56,0 +0,0,79,15,8,3,0,0,1,0,0,0,2,0,6241,,0,8,2.079442,2.079442,1,2.8,7.84,0 +1,.1420118,72,12,11,0,0,1,0,1,0,33.8,0,1,5184,3.520461,0,11,2.397895,2.397895,1,1.4,1.96,3.3799999 +0,.608156,81,3,7,0,0,0,1,0,1,6.768,2,0,6561,1.912206,1,7,1.94591,1.94591,1,3.2,10.24,.67680001 +0,.2706293,73,12,7,0,0,0,1,0,0,40.646,1,0,5329,3.704901,0,7,1.94591,1.94591,1,1.6,2.56,4.0646 +0,.8205048,80,13,4,0,0,1,1,1,1,12.797,4,1,6400,2.549211,0,4,1.386294,1.386294,1,3,9,1.2797 +0,.9753695,78,12,4,0,0,0,1,1,0,2.03,2,0,6084,.7080358,1,4,1.386294,1.386294,1,2.6,6.76,.203 +0,.2222222,66,13,11,1,0,0,0,0,0,54,2,0,4356,3.988984,0,11,2.397895,2.397895,1,.2,.04,5.4 +0,.2392169,68,17,9,2,0,1,0,0,0,48.015,3,1,4624,3.871513,0,9,2.197225,2.197225,1,.6,.36,4.8014999 +0,.1963822,70,16,19,6,0,1,1,1,0,58.488,6,1,4900,4.068821,0,19,2.944439,2.944439,1,1,1,5.8487999 +0,.5060753,71,14,5,0,1,0,1,1,0,13.168,2,0,5041,2.57779,1,5,1.609438,1.609438,1,1.2,1.44,1.3168 +0,1,68,3,19,9,0,0,1,0,0,3.7,1,0,4624,1.308333,1,19,2.944439,2.944439,1,.6,.36,.37 +0,.4805195,74,3,1,0,0,0,0,0,0,7.7,0,0,5476,2.04122,1,1,0,0,1,1.8,3.24,.76999998 +0,.1800855,76,12,2,0,0,1,0,0,0,66.635,0,1,5776,4.19923,0,2,.6931472,.6931472,1,2.2,4.84,6.6635002 +0,.4837067,72,17,10,2,0,0,0,1,0,9.82,1,0,5184,2.284421,0,10,2.302585,2.302585,1,1.4,1.96,.98199997 +0,.4837067,71,13,5,0,0,0,1,0,0,9.82,2,0,5041,2.284421,0,5,1.609438,1.609438,1,1.2,1.44,.98199997 +0,1,75,12,6,2,0,0,1,0,0,11.124,3,0,5625,2.409105,1,6,1.791759,1.791759,1,2,4,1.1124 +0,0,66,8,2,0,0,0,1,0,0,.72,2,0,4356,-.328504,0,2,.6931472,.6931472,1,.2,.04,.072 +0,.9511964,73,8,8,2,0,0,0,1,1,14.753,3,0,5329,2.691447,0,8,2.079442,2.079442,1,1.6,2.56,1.4753 +0,.972973,85,5,9,0,0,1,1,1,1,7.4,4,1,7225,2.00148,0,9,2.197225,2.197225,1,4,16,.74000001 +0,.7944502,85,8,3,0,0,1,1,1,1,11.676,2,1,7225,2.457536,0,3,1.098612,1.098612,1,4,16,1.1676 +0,1,66,2,30,1,1,0,0,1,1,9.6,5,0,4356,2.261763,0,30,3.401197,3.401197,1,.2,.04,.96000004 +0,1,69,15,16,0,0,1,1,1,1,5.4,3,1,4761,1.686399,1,16,2.772589,2.772589,1,.8,.64,.54000001 +0,.4655453,66,14,10,3,0,1,1,0,0,22.769,2,1,4356,3.1254,0,10,2.302585,2.302585,1,.2,.04,2.2768999 +0,1,72,10,9,1,0,1,1,0,0,11.096,1,1,5184,2.406585,0,9,2.197225,2.197225,1,1.4,1.96,1.1096 +0,.9981834,82,12,4,0,0,0,1,1,1,10.459,2,0,6724,2.347463,0,4,1.386294,1.386294,1,3.4,11.56,1.0459 +0,.4019546,73,4,0,0,0,0,0,0,1,12.688,2,0,5329,2.540657,1,0,,-4.60517,0,1.6,2.56,1.2688 +0,0,66,2,0,0,0,0,0,0,0,10.868,0,0,4356,2.385823,1,0,,-4.60517,0,.2,.04,1.0868 +0,.4850131,70,12,5,0,0,1,1,1,0,30.927,1,1,4900,3.43163,0,5,1.609438,1.609438,1,1,1,3.0927 +0,1,81,12,12,0,1,0,1,1,0,7.5,3,0,6561,2.014903,1,12,2.484907,2.484907,1,3.2,10.24,.75 +1,0,69,17,1,40,0,1,1,0,0,36.46,1,1,4761,3.596216,0,1,0,0,1,.8,.64,3.6459999 +0,.3075725,69,9,12,0,0,1,0,1,0,26.966,1,1,4761,3.294577,0,12,2.484907,2.484907,1,.8,.64,2.6966 +0,.3781583,82,12,9,1,0,0,1,0,1,23.826,3,0,6724,3.170777,0,9,2.197225,2.197225,1,3.4,11.56,2.3826 +0,.3746673,85,12,7,0,0,0,0,1,1,24.048,1,0,7225,3.180052,0,7,1.94591,1.94591,1,4,16,2.4048 +0,.6083189,85,9,0,0,1,0,1,1,1,6.924,2,0,7225,1.934994,1,0,,-4.60517,0,4,16,.69239998 +0,.7675716,71,12,11,1,0,0,0,0,1,16.134,3,0,5041,2.780929,0,11,2.397895,2.397895,1,1.2,1.44,1.6134001 +0,1,79,11,12,0,0,0,1,0,0,5.04,3,0,6241,1.617406,1,12,2.484907,2.484907,1,2.8,7.84,.504 +0,.4431143,76,16,0,0,0,0,1,0,0,21.552,0,0,5776,3.070469,0,0,,-4.60517,0,2.2,4.84,2.1552 +0,.2279137,77,12,8,1,0,1,0,0,0,86.875,2,1,5929,4.46447,0,8,2.079442,2.079442,1,2.4,5.76,8.6875 +0,.6484641,73,12,14,19,0,1,1,1,0,14.65,6,1,5329,2.68444,0,14,2.639057,2.639057,1,1.6,2.56,1.465 +0,.6484641,76,12,21,6,0,1,0,0,0,14.65,1,1,5776,2.68444,0,21,3.044523,3.044523,1,2.2,4.84,1.465 +0,.9347624,82,12,15,10,0,1,1,0,0,12.876,3,1,6724,2.555365,0,15,2.70805,2.70805,1,3.4,11.56,1.2876 +0,.7919405,85,14,8,3,0,1,1,0,0,22.83,4,1,7225,3.128075,0,8,2.079442,2.079442,1,4,16,2.283 +0,0,67,10,22,5,1,0,0,1,1,0,4,0,4489,,0,22,3.091043,3.091043,1,.4,.16,0 +0,0,65,10,5,0,1,0,1,1,1,0,3,0,4225,,0,5,1.609438,1.609438,1,0,0,0 +0,.8486563,74,12,1,0,0,1,0,0,0,7.07,2,1,5476,1.95586,1,1,0,0,1,1.8,3.24,.70700002 +0,.8486563,70,12,2,0,0,1,1,0,0,7.07,2,1,4900,1.95586,1,2,.6931472,.6931472,1,1,1,.70700002 +0,.5364239,66,12,19,0,1,0,1,1,1,15.1,5,0,4356,2.714695,1,19,2.944439,2.944439,1,.2,.04,1.51 +0,1,72,13,1,1,0,0,1,0,0,11,1,0,5184,2.397895,0,1,0,0,1,1.4,1.96,1.1 +0,.9995456,67,13,3,1,0,0,0,0,0,11.005,2,0,4489,2.39835,0,3,1.098612,1.098612,1,.4,.16,1.1005 +0,1,72,11,4,1,0,0,1,1,1,9.6,4,0,5184,2.261763,0,4,1.386294,1.386294,1,1.4,1.96,.96000004 +0,.4066418,68,11,0,0,0,0,0,1,1,29.51,1,0,4624,3.384729,0,0,,-4.60517,0,.6,.36,2.951 +0,.9259949,65,14,1,0,0,1,0,0,0,20.931,1,1,4225,3.041231,0,1,0,0,1,0,0,2.0931 +0,.5,75,2,6,0,0,0,1,0,0,19.2,1,0,5625,2.95491,1,6,1.791759,1.791759,1,2,4,1.9200001 +0,.3813535,66,10,3,8,0,0,0,0,0,17.569,1,0,4356,2.866136,1,3,1.098612,1.098612,1,.2,.04,1.7569 +0,.7810226,80,12,4,1,0,0,0,1,1,10.307,1,0,6400,2.332823,0,4,1.386294,1.386294,1,3,9,1.0307 +0,.7810226,73,14,0,62,0,0,1,0,0,10.307,1,0,5329,2.332823,0,0,,-4.60517,0,1.6,2.56,1.0307 +1,0,65,12,17,6,0,1,1,1,0,13.767,6,1,4225,2.622274,0,17,2.833213,2.833213,1,0,0,1.3767 +0,1,82,12,2,0,0,1,0,1,1,8.724,2,1,6724,2.166078,0,2,.6931472,.6931472,1,3.4,11.56,.8724 +0,.7636364,85,5,13,0,0,1,1,1,1,11,2,1,7225,2.397895,0,13,2.564949,2.564949,1,4,16,1.1 +0,0,75,3,1,0,1,0,1,0,0,0,2,0,5625,,0,1,0,0,1,2,4,0 +0,.3658307,82,7,13,0,1,0,1,1,1,15.909,4,0,6724,2.766885,1,13,2.564949,2.564949,1,3.4,11.56,1.5909 +0,.2795279,74,12,2,1,0,0,1,0,0,45.076,0,0,5476,3.80835,0,2,.6931472,.6931472,1,1.8,3.24,4.5076 +0,0,66,14,12,2,0,1,0,0,0,.9,1,1,4356,-.1053605,0,12,2.484907,2.484907,1,.2,.04,.09 +0,.9179431,67,9,13,0,0,1,1,0,0,10.968,2,1,4489,2.394982,0,13,2.564949,2.564949,1,.4,.16,1.0968 +0,.7954866,71,9,0,0,1,0,0,0,0,8.508,0,0,5041,2.141007,0,0,,-4.60517,0,1.2,1.44,.85080004 +0,1,74,10,11,0,1,0,1,1,1,6.648,5,0,5476,1.894316,0,11,2.397895,2.397895,1,1.8,3.24,.66479998 +0,.8333333,85,12,3,3,0,1,0,1,1,16.8,2,1,7225,2.821379,0,3,1.098612,1.098612,1,4,16,1.6799999 +0,.0412037,85,14,5,0,0,0,0,0,0,72.809,2,0,7225,4.287839,0,5,1.609438,1.609438,1,4,16,7.2808998 +0,.0607374,85,14,4,0,0,0,1,0,0,49.393,0,0,7225,3.899809,0,4,1.386294,1.386294,1,4,16,4.9393002 +0,.0910326,85,16,9,1,0,1,0,1,0,58.144,1,1,7225,4.062922,0,9,2.197225,2.197225,1,4,16,5.8144001 +0,.2762185,68,16,3,1,0,1,0,0,0,14.608,1,1,4624,2.681569,0,3,1.098612,1.098612,1,.6,.36,1.4608 +0,1,83,12,3,0,0,0,1,1,1,8.7,3,0,6889,2.163323,1,3,1.098612,1.098612,1,3.6,12.96,.86999998 +0,.8162665,85,8,8,0,1,0,1,1,1,8.164,5,0,7225,2.099734,1,8,2.079442,2.079442,1,4,16,.81639996 +0,.2636928,70,3,1,0,1,0,1,0,0,18.203,3,0,4900,2.901586,1,1,0,0,1,1,1,1.8202999 +0,1,72,4,14,1,0,1,0,1,1,10,5,1,5184,2.302585,0,14,2.639057,2.639057,1,1.4,1.96,1 +0,0,84,12,3,0,0,1,1,1,1,0,1,1,7056,,1,3,1.098612,1.098612,1,3.8,14.44,0 +0,1,77,14,8,0,0,1,0,1,1,10.8,1,1,5929,2.379546,0,8,2.079442,2.079442,1,2.4,5.76,1.08 +0,.2967895,74,14,2,1,0,0,1,0,0,48.061,1,0,5476,3.872471,0,2,.6931472,.6931472,1,1.8,3.24,4.8061001 +0,.699523,72,14,2,0,0,1,0,0,0,15.725,1,1,5184,2.755252,0,2,.6931472,.6931472,1,1.4,1.96,1.5725 +0,.8799878,81,12,7,1,1,0,1,1,1,6.591,4,0,6561,1.885705,1,7,1.94591,1.94591,1,3.2,10.24,.65910001 +0,.661901,67,0,1,0,0,0,1,1,0,11.331,0,0,4489,2.427542,1,1,0,0,1,.4,.16,1.1331 +1,.5758157,72,11,3,12,0,1,1,1,0,15.63,3,1,5184,2.749192,0,3,1.098612,1.098612,1,1.4,1.96,1.563 +0,.4229045,69,17,9,1,0,1,1,0,0,35.469,2,1,4761,3.568659,0,9,2.197225,2.197225,1,.8,.64,3.5469002 +0,.7475083,76,12,5,13,0,1,1,0,0,7.525,2,1,5776,2.018231,0,5,1.609438,1.609438,1,2.2,4.84,.75250001 +0,.7475083,79,12,11,9,0,1,0,0,0,7.525,1,1,6241,2.018231,0,11,2.397895,2.397895,1,2.8,7.84,.75250001 +0,.4023497,85,17,1,0,0,0,1,1,1,24.854,1,0,7225,3.213019,0,1,0,0,1,4,16,2.4854 +0,.8739946,74,10,1,0,0,0,0,0,0,8.952,0,0,5476,2.191877,0,1,0,0,1,1.8,3.24,.89519997 +0,1,66,10,9,1,1,0,1,1,1,6.457,6,0,4356,1.865165,0,9,2.197225,2.197225,1,.2,.04,.64569998 +0,1,72,8,1,3,0,0,0,1,1,6.457,2,0,5184,1.865165,0,1,0,0,1,1.4,1.96,.64569998 +0,.6043165,71,13,8,1,0,1,1,0,0,13.9,2,1,5041,2.631889,0,8,2.079442,2.079442,1,1.2,1.44,1.39 +0,.6043165,79,12,5,2,0,1,0,1,0,13.9,5,1,6241,2.631889,0,5,1.609438,1.609438,1,2.8,7.84,1.39 +0,0,67,7,3,0,0,1,0,0,1,0,0,1,4489,,1,3,1.098612,1.098612,1,.4,.16,0 +0,0,69,11,22,7,0,1,1,1,0,25,2,1,4761,3.218876,1,22,3.091043,3.091043,1,.8,.64,2.5 +0,1,65,10,15,0,1,0,0,0,1,2.49,1,0,4225,.9122827,1,15,2.70805,2.70805,1,0,0,.249 +0,.3478261,82,12,3,1,0,1,0,1,1,10.35,2,1,6724,2.336987,0,3,1.098612,1.098612,1,3.4,11.56,1.035 +0,.3478261,85,10,3,1,0,1,1,1,1,10.35,1,1,7225,2.336987,0,3,1.098612,1.098612,1,4,16,1.035 +0,.9882353,85,14,0,0,0,0,1,0,0,8.5,0,0,7225,2.140066,0,0,,-4.60517,0,4,16,.85 +0,.1181303,66,1,14,0,0,0,0,0,0,46.017,1,0,4356,3.829011,1,14,2.639057,2.639057,1,.2,.04,4.6016998 +0,.5968379,70,7,16,0,0,0,1,1,1,9.108,2,0,4900,2.209153,1,16,2.772589,2.772589,1,1,1,.91079998 +0,1,85,9,2,0,1,0,1,1,1,6,7,0,7225,1.791759,0,2,.6931472,.6931472,1,4,16,.6 +0,.9987708,69,16,13,24,0,1,0,0,0,6.508,1,1,4761,1.873032,0,13,2.564949,2.564949,1,.8,.64,.65079999 +0,.9987708,68,13,11,5,0,1,1,0,0,6.508,2,1,4624,1.873032,0,11,2.397895,2.397895,1,.6,.36,.65079999 +0,.4592624,77,9,11,4,0,0,1,0,0,28.524,4,0,5929,3.350746,1,11,2.397895,2.397895,1,2.4,5.76,2.8524 +1,0,65,17,0,2,0,1,0,0,0,146.416,0,1,4225,4.986452,0,0,,-4.60517,0,0,0,14.6416 +0,.3192735,72,12,4,1,0,1,0,0,0,30.062,1,1,5184,3.403262,0,4,1.386294,1.386294,1,1.4,1.96,3.0062 +0,.4020441,72,12,5,2,0,1,1,0,0,23.873,5,1,5184,3.172748,0,5,1.609438,1.609438,1,1.4,1.96,2.3872999 +0,1,76,8,23,0,0,0,1,1,1,3.2,3,0,5776,1.163151,0,23,3.135494,3.135494,1,2.2,4.84,.32 +0,.3918256,77,9,25,1,0,1,1,0,0,11.01,4,1,5929,2.398804,0,25,3.218876,3.218876,1,2.4,5.76,1.101 +0,.3918256,82,6,19,0,0,1,0,1,1,11.01,1,1,6724,2.398804,0,19,2.944439,2.944439,1,3.4,11.56,1.101 +0,.4625525,81,14,19,16,0,0,1,0,0,25.943,1,0,6561,3.255902,0,19,2.944439,2.944439,1,3.2,10.24,2.5943001 +0,1,85,12,4,0,0,0,1,1,0,9,1,0,7225,2.197225,0,4,1.386294,1.386294,1,4,16,.9 +0,.7142857,71,8,14,8,0,0,1,1,1,13.125,3,0,5041,2.574519,0,14,2.639057,2.639057,1,1.2,1.44,1.3125 +0,.7142857,74,10,5,2,0,0,0,1,1,13.125,3,0,5476,2.574519,0,5,1.609438,1.609438,1,1.8,3.24,1.3125 +0,.968258,85,9,11,0,0,1,1,1,1,11.877,4,1,7225,2.474604,0,11,2.397895,2.397895,1,4,16,1.1877 +0,.8317631,74,12,5,3,0,1,0,1,0,14.86,2,1,5476,2.698673,0,5,1.609438,1.609438,1,1.8,3.24,1.486 +0,.8317631,76,12,1,0,0,1,1,0,0,14.86,0,1,5776,2.698673,0,1,0,0,1,2.2,4.84,1.486 +0,.3979624,80,16,8,0,0,1,0,0,0,31.41,5,1,6400,3.447126,0,8,2.079442,2.079442,1,3,9,3.141 +0,.4255754,80,17,4,0,0,1,1,1,1,29.372,4,1,6400,3.380042,0,4,1.386294,1.386294,1,3,9,2.9372 +0,0,73,12,0,0,0,0,0,0,1,6.624,0,0,5329,1.890699,0,0,,-4.60517,0,1.6,2.56,.66240001 +0,.1831334,69,16,0,13,0,1,0,0,0,54.605,1,1,4761,4.000125,0,0,,-4.60517,0,.8,.64,5.4605 +0,.9933775,67,12,0,1,0,1,1,0,0,15.1,2,1,4489,2.714695,0,0,,-4.60517,0,.4,.16,1.51 +0,.2295082,69,11,10,0,0,1,1,1,0,15.25,3,1,4761,2.72458,0,10,2.302585,2.302585,1,.8,.64,1.525 +0,.6551,79,14,12,5,0,1,1,0,0,19.539,1,1,6241,2.972412,0,12,2.484907,2.484907,1,2.8,7.84,1.9539 +0,.6855069,65,13,1,3,0,1,0,1,0,31.829,2,1,4225,3.460378,0,1,0,0,1,0,0,3.1829 +0,.6675568,68,11,4,0,0,1,0,1,1,17.976,2,1,4624,2.889038,1,4,1.386294,1.386294,1,.6,.36,1.7976 +0,1,73,12,23,0,1,0,0,0,0,7.2,3,0,5329,1.974081,0,23,3.135494,3.135494,1,1.6,2.56,.71999998 +0,.3174705,69,16,3,0,0,1,1,0,0,62.368,1,1,4761,4.133052,0,3,1.098612,1.098612,1,.8,.64,6.2368 +0,.5142944,85,11,10,8,0,0,0,0,1,19.833,2,0,7225,2.987347,0,10,2.302585,2.302585,1,4,16,1.9833 +0,1,65,12,7,4,1,0,0,1,1,10,6,0,4225,2.302585,0,7,1.94591,1.94591,1,0,0,1 +0,1,68,12,15,1,1,0,1,1,1,6.5,0,0,4624,1.871802,1,15,2.70805,2.70805,1,.6,.36,.65 +0,.9844134,68,8,1,1,0,1,0,1,1,9.752,2,1,4624,2.277472,1,1,0,0,1,.6,.36,.97519999 +0,.9556187,72,9,5,1,0,1,0,0,0,11.266,1,1,5184,2.421789,0,5,1.609438,1.609438,1,1.4,1.96,1.1266 +0,.9556187,80,8,0,1,0,1,1,0,0,11.266,0,1,6400,2.421789,0,0,,-4.60517,0,3,9,1.1266 +0,.1527669,66,17,0,0,0,1,0,0,0,81.824,0,1,4356,4.404571,0,0,,-4.60517,0,.2,.04,8.1823997 +0,.9473684,66,12,3,12,0,1,0,0,0,11.875,3,1,4356,2.474435,0,3,1.098612,1.098612,1,.2,.04,1.1875 +0,.2231076,66,2,2,2,0,1,0,0,0,62.75,1,1,4356,4.139159,0,2,.6931472,.6931472,1,.2,.04,6.275 +0,.3931556,81,12,5,0,0,1,1,1,0,10.052,1,1,6561,2.307772,0,5,1.609438,1.609438,1,3.2,10.24,1.0052 +0,1,70,11,1,0,1,0,1,1,1,3.708,0,0,4900,1.310493,1,1,0,0,1,1,1,.37079999 +0,0,65,9,14,0,1,0,1,0,0,1.644,3,0,4225,.4971323,1,14,2.639057,2.639057,1,0,0,.16440001 +0,0,76,10,0,10,0,0,1,0,0,7,0,0,5776,1.94591,1,0,,-4.60517,0,2.2,4.84,.7 +0,.2151733,81,12,1,0,0,1,1,0,0,30.58,2,1,6561,3.420346,0,1,0,0,1,3.2,10.24,3.058 +0,.1150428,81,16,6,6,0,1,1,0,1,18.567,0,1,6561,2.921386,1,6,1.791759,1.791759,1,3.2,10.24,1.8566999 +0,.250823,66,12,0,2,0,1,0,0,0,51.032,0,1,4356,3.932453,0,0,,-4.60517,0,.2,.04,5.1032001 +0,1,71,9,0,0,0,1,1,0,0,11.976,0,1,5041,2.482905,0,0,,-4.60517,0,1.2,1.44,1.1976 +1,0,65,12,6,0,1,0,0,0,0,0,1,0,4225,,1,6,1.791759,1.791759,1,0,0,0 +0,.5,67,12,5,1,0,1,1,0,1,14.4,2,1,4489,2.667228,0,5,1.609438,1.609438,1,.4,.16,1.44 +0,.9975512,79,12,4,0,0,1,1,0,0,7.759,0,1,6241,2.048853,0,4,1.386294,1.386294,1,2.8,7.84,.77589998 +0,.833887,83,12,6,2,0,0,1,1,1,14.448,5,0,6889,2.670556,0,6,1.791759,1.791759,1,3.6,12.96,1.4448 +0,.8811787,67,12,0,0,0,0,0,0,0,10.52,0,0,4489,2.353278,1,0,,-4.60517,0,.4,.16,1.052 +0,1,66,12,14,1,0,0,1,0,0,9.27,2,0,4356,2.226784,1,14,2.639057,2.639057,1,.2,.04,.92700005 +0,0,67,12,5,0,1,0,1,0,0,7.831,4,0,4489,2.05809,0,5,1.609438,1.609438,1,.4,.16,.78309999 +0,.3962617,76,10,11,0,1,0,1,1,1,6.42,6,0,5776,1.859418,1,11,2.397895,2.397895,1,2.2,4.84,.64200001 +0,0,83,14,3,1,0,0,0,1,1,0,2,0,6889,,0,3,1.098612,1.098612,1,3.6,12.96,0 +0,0,83,11,4,0,0,0,1,1,1,0,2,0,6889,,0,4,1.386294,1.386294,1,3.6,12.96,0 +0,.3821656,72,10,13,0,0,0,1,1,1,25.12,4,0,5184,3.223664,1,13,2.564949,2.564949,1,1.4,1.96,2.5120001 +0,.4519765,65,9,2,0,0,1,0,0,0,18.72,0,1,4225,2.929592,0,2,.6931472,.6931472,1,0,0,1.8719999 +0,.4519765,67,12,2,0,0,1,1,0,0,18.72,0,1,4489,2.929592,0,2,.6931472,.6931472,1,.4,.16,1.8719999 +0,1,82,12,1,0,0,0,1,1,1,11.496,4,0,6724,2.441999,0,1,0,0,1,3.4,11.56,1.1496 +0,.9776186,66,12,0,3,0,0,0,0,0,8.936,1,0,4356,2.190088,0,0,,-4.60517,0,.2,.04,.89359999 +0,1,68,12,6,0,1,0,1,1,1,7.926,4,0,4624,2.070148,0,6,1.791759,1.791759,1,.6,.36,.79260001 +0,.5865485,74,12,14,0,0,1,0,1,0,15.344,3,1,5476,2.730725,0,14,2.639057,2.639057,1,1.8,3.24,1.5344 +0,0,71,13,16,3,0,1,1,0,0,6.344,3,1,5041,1.84751,0,16,2.772589,2.772589,1,1.2,1.44,.63439999 +0,1,85,9,2,0,0,1,1,0,0,9,0,1,7225,2.197225,1,2,.6931472,.6931472,1,4,16,.9 +0,1,67,12,4,0,0,0,1,0,0,6.6,1,0,4489,1.88707,1,4,1.386294,1.386294,1,.4,.16,.65999999 +0,0,71,13,0,0,0,0,1,0,0,6,0,0,5041,1.791759,1,0,,-4.60517,0,1.2,1.44,.6 +0,.9258285,72,12,10,4,0,0,0,0,0,23.567,1,0,5184,3.159847,0,10,2.302585,2.302585,1,1.4,1.96,2.3566999 +0,0,67,9,12,0,0,0,1,0,0,2.211,0,0,4489,.7934449,0,12,2.484907,2.484907,1,.4,.16,.2211 +0,.36,76,9,3,0,0,0,1,1,0,12.5,1,0,5776,2.525729,1,3,1.098612,1.098612,1,2.2,4.84,1.25 +0,.8648649,81,12,4,2,0,0,1,1,1,11.1,3,0,6561,2.406945,0,4,1.386294,1.386294,1,3.2,10.24,1.11 +0,1,80,12,8,1,0,1,1,0,0,9.928,2,1,6400,2.295359,0,8,2.079442,2.079442,1,3,9,.99280005 +0,0,73,17,5,3,0,1,0,0,0,24.455,1,1,5329,3.196835,0,5,1.609438,1.609438,1,1.6,2.56,2.4455 +0,0,70,15,6,10,0,1,1,0,0,16.976,1,1,4900,2.8318,0,6,1.791759,1.791759,1,1,1,1.6976 +0,.7895816,69,5,1,0,1,0,0,0,1,9.752,1,0,4761,2.277472,0,1,0,0,1,.8,.64,.97519999 +0,.3104318,85,8,2,0,0,1,0,0,0,46.387,2,1,7225,3.837019,0,2,.6931472,.6931472,1,4,16,4.6387001 +0,.3452343,76,8,3,2,0,1,0,1,0,34.759,3,1,5776,3.548439,0,3,1.098612,1.098612,1,2.2,4.84,3.4758999 +0,.28,67,11,6,1,0,1,1,0,1,25,2,1,4489,3.218876,0,6,1.791759,1.791759,1,.4,.16,2.5 +0,1,71,12,5,1,0,1,1,1,1,9,2,1,5041,2.197225,0,5,1.609438,1.609438,1,1.2,1.44,.9 +0,0,68,17,17,1,0,1,0,0,0,32.97,3,1,4624,3.495598,0,17,2.833213,2.833213,1,.6,.36,3.2970001 +0,.3005126,67,14,6,2,0,1,1,1,0,28.285,1,1,4489,3.342332,0,6,1.791759,1.791759,1,.4,.16,2.8285 +0,.4628772,85,12,3,1,0,1,1,1,1,21.604,2,1,7225,3.072879,0,3,1.098612,1.098612,1,4,16,2.1604 +0,1,81,6,1,0,1,0,1,1,1,3.708,3,0,6561,1.310493,1,1,0,0,1,3.2,10.24,.37079999 +0,.8986784,76,5,15,0,0,1,1,1,1,11.35,3,1,5776,2.429218,0,15,2.70805,2.70805,1,2.2,4.84,1.135 +0,.4770986,71,12,16,16,0,1,1,0,0,27.793,4,1,5041,3.324784,0,16,2.772589,2.772589,1,1.2,1.44,2.7792999 +0,.4907092,68,16,4,0,0,1,0,1,1,30.568,3,1,4624,3.419954,1,4,1.386294,1.386294,1,.6,.36,3.0568001 +1,0,65,12,7,0,0,1,1,0,0,9,2,1,4225,2.197225,0,7,1.94591,1.94591,1,0,0,.9 +0,.8938429,69,12,35,5,0,0,0,1,0,5.652,4,0,4761,1.732009,0,35,3.555348,3.555348,1,.8,.64,.5652 +0,1,67,16,7,0,1,0,1,1,1,7.8,4,0,4489,2.054124,1,7,1.94591,1.94591,1,.4,.16,.78000002 +0,.3414446,74,14,5,0,0,1,1,1,0,43.931,0,1,5476,3.78262,0,5,1.609438,1.609438,1,1.8,3.24,4.3931 +0,1,85,10,0,0,0,0,1,1,1,9.6,3,0,7225,2.261763,0,0,,-4.60517,0,4,16,.96000004 +0,.1861881,70,16,12,0,0,1,1,0,0,59.123,2,1,4900,4.07962,1,12,2.484907,2.484907,1,1,1,5.9123001 +0,0,65,12,4,2,1,0,1,1,1,0,2,0,4225,,1,4,1.386294,1.386294,1,0,0,0 +1,.5454546,69,12,16,5,0,1,1,0,0,22,2,1,4761,3.091043,0,16,2.772589,2.772589,1,.8,.64,2.2 +1,.2934783,68,9,6,0,0,1,0,1,1,42.32,3,1,4624,3.74526,0,6,1.791759,1.791759,1,.6,.36,4.232 +0,.7462686,85,12,5,4,0,1,0,1,1,13.4,0,1,7225,2.595255,0,5,1.609438,1.609438,1,4,16,1.34 +0,.5988024,69,6,12,1,1,0,1,1,0,10.02,2,0,4761,2.304583,1,12,2.484907,2.484907,1,.8,.64,1.002 +0,.9982639,73,12,7,1,0,0,0,1,1,11.52,4,0,5329,2.444085,0,7,1.94591,1.94591,1,1.6,2.56,1.152 +0,.7780083,72,14,7,1,0,0,1,0,0,12.05,1,0,5184,2.489065,0,7,1.94591,1.94591,1,1.4,1.96,1.205 +0,.7780083,79,14,2,0,0,0,0,0,0,12.05,1,0,6241,2.489065,0,2,.6931472,.6931472,1,2.8,7.84,1.205 +0,1,85,17,2,1,0,0,1,1,1,19.694,2,0,7225,2.980314,0,2,.6931472,.6931472,1,4,16,1.9694 +0,1,74,3,13,0,0,0,0,1,1,12.5,3,0,5476,2.525729,1,13,2.564949,2.564949,1,1.8,3.24,1.25 +1,.2730188,66,9,19,2,0,1,1,1,0,33.364,5,1,4356,3.507478,0,19,2.944439,2.944439,1,.2,.04,3.3363998 +0,1,70,9,14,4,0,1,0,1,1,9.109,5,1,4900,2.209263,0,14,2.639057,2.639057,1,1,1,.91090002 +0,.9881423,85,8,4,0,0,1,1,0,0,9.108,1,1,7225,2.209153,0,4,1.386294,1.386294,1,4,16,.91079998 +0,.5005182,70,16,11,0,0,0,1,0,0,39.559,3,0,4900,3.677793,0,11,2.397895,2.397895,1,1,1,3.9558998 +0,.867443,70,12,0,0,0,0,1,0,0,16.144,1,0,4900,2.781549,0,0,,-4.60517,0,1,1,1.6143999 +0,.2384478,74,14,5,2,0,1,1,0,0,39.841,2,1,5476,3.684896,0,5,1.609438,1.609438,1,1.8,3.24,3.9841 +0,.9761791,68,12,3,0,0,0,0,0,0,8.396,1,0,4624,2.127755,1,3,1.098612,1.098612,1,.6,.36,.83959999 +1,0,67,15,2,4,0,1,0,1,0,60.543,2,1,4489,4.103354,0,2,.6931472,.6931472,1,.4,.16,6.0542999 +1,.4444444,75,12,2,0,0,1,1,0,0,21.6,2,1,5625,3.072693,0,2,.6931472,.6931472,1,2,4,2.16 +0,.2376775,84,10,8,0,0,0,0,1,1,35.342,0,0,7056,3.565072,0,8,2.079442,2.079442,1,3.8,14.44,3.5341999 +0,.6943357,66,12,6,0,0,1,0,0,0,19.155,3,1,4356,2.952564,0,6,1.791759,1.791759,1,.2,.04,1.9155001 +0,1,76,8,8,0,0,0,0,1,1,9.168,2,0,5776,2.215719,1,8,2.079442,2.079442,1,2.2,4.84,.91680002 +0,.8051746,69,3,2,0,1,0,1,0,0,6.416,1,0,4761,1.858795,1,2,.6931472,.6931472,1,.8,.64,.64159999 +0,.5794078,81,3,11,0,1,0,0,0,0,8.916,1,0,6561,2.187847,1,11,2.397895,2.397895,1,3.2,10.24,.89160004 +0,.7087827,78,13,7,6,0,0,1,1,1,12.98,2,0,6084,2.56341,0,7,1.94591,1.94591,1,2.6,6.76,1.298 +0,.2661083,69,17,10,5,0,1,0,0,0,72.835,1,1,4761,4.288197,0,10,2.302585,2.302585,1,.8,.64,7.2834999 +0,0,67,13,17,26,0,1,1,1,0,53.454,3,1,4489,3.978822,0,17,2.833213,2.833213,1,.4,.16,5.3453999 +1,.5185185,72,10,0,0,0,1,1,0,0,16.2,0,1,5184,2.785011,1,0,,-4.60517,0,1.4,1.96,1.6200001 +0,.5702136,80,12,12,1,0,1,1,0,0,20.694,3,1,6400,3.029844,1,12,2.484907,2.484907,1,3,9,2.0694 +0,.6575342,65,12,1,0,0,1,0,0,0,14.6,2,1,4225,2.681021,1,1,0,0,1,0,0,1.46 +0,.703139,84,12,4,2,0,1,1,1,0,12.265,1,1,7056,2.50675,0,4,1.386294,1.386294,1,3.8,14.44,1.2265 +0,1,72,13,0,0,0,0,0,1,1,8,2,0,5184,2.079442,1,0,,-4.60517,0,1.4,1.96,.8 +0,.3553163,79,17,17,16,0,0,0,1,1,55.725,4,0,6241,4.020429,0,17,2.833213,2.833213,1,2.8,7.84,5.5724998 +0,.2389915,74,17,27,13,0,1,1,0,0,50.211,5,1,5476,3.916234,0,27,3.295837,3.295837,1,1.8,3.24,5.0210999 +0,.8325933,70,12,20,1,0,0,1,1,1,11.26,4,0,4900,2.421257,0,20,2.995732,2.995732,1,1,1,1.126 +0,.8325933,71,12,33,7,0,0,0,1,1,11.26,5,0,5041,2.421257,0,33,3.496508,3.496508,1,1.2,1.44,1.126 +0,0,74,17,24,0,0,1,0,0,0,146.416,0,1,5476,4.986452,0,24,3.178054,3.178054,1,1.8,3.24,14.6416 +0,0,72,14,1,0,0,1,1,0,0,48.128,0,1,5184,3.873864,0,1,0,0,1,1.4,1.96,4.8127998 +0,.9982636,69,13,10,0,0,1,0,0,0,11.518,3,1,4761,2.443911,0,10,2.302585,2.302585,1,.8,.64,1.1518 +0,.9982636,67,12,9,2,0,1,1,1,1,11.518,3,1,4489,2.443911,0,9,2.197225,2.197225,1,.4,.16,1.1518 +0,.1918389,67,12,3,1,0,0,0,0,0,25.021,2,0,4489,3.219715,0,3,1.098612,1.098612,1,.4,.16,2.5021 +0,1,74,9,0,0,1,0,1,1,0,8,1,0,5476,2.079442,0,0,,-4.60517,0,1.8,3.24,.8 +0,1,69,12,27,1,0,1,1,1,1,8,4,1,4761,2.079442,0,27,3.295837,3.295837,1,.8,.64,.8 +0,.3614458,70,13,7,4,0,1,1,0,0,54.78,2,1,4900,4.003325,0,7,1.94591,1.94591,1,1,1,5.4779999 +0,.5862676,79,12,11,0,1,0,1,0,1,6.816,2,0,6241,1.919273,1,11,2.397895,2.397895,1,2.8,7.84,.6816 +0,.2470179,69,1,14,17,0,1,1,0,0,39.066,2,1,4761,3.665253,1,14,2.639057,2.639057,1,.8,.64,3.9066002 +0,.2213811,65,17,3,0,0,1,0,0,0,43.59,0,1,4225,3.774828,0,3,1.098612,1.098612,1,0,0,4.359 +0,.2239441,78,16,8,50,0,1,0,1,1,66.981,4,1,6084,4.204409,0,8,2.079442,2.079442,1,2.6,6.76,6.6981003 +0,.9473684,85,10,9,3,0,0,1,0,0,9.5,3,0,7225,2.251292,0,9,2.197225,2.197225,1,4,16,.95 +0,.4310345,77,12,5,0,1,0,1,0,0,13.92,2,0,5929,2.633327,1,5,1.609438,1.609438,1,2.4,5.76,1.392 +0,1,73,8,9,1,0,1,1,1,0,14.2,1,1,5329,2.653242,1,9,2.197225,2.197225,1,1.6,2.56,1.42 +0,1,76,11,6,1,0,1,0,0,0,11.25,1,1,5776,2.420368,0,6,1.791759,1.791759,1,2.2,4.84,1.125 +0,1,73,12,4,5,0,1,1,0,0,11.25,3,1,5329,2.420368,0,4,1.386294,1.386294,1,1.6,2.56,1.125 +0,.6794872,81,10,11,0,1,0,1,1,1,7.8,1,0,6561,2.054124,1,11,2.397895,2.397895,1,3.2,10.24,.78000002 +0,.2796834,71,14,5,1,1,0,0,0,0,18.95,0,0,5041,2.941804,1,5,1.609438,1.609438,1,1.2,1.44,1.8950001 +0,.068718,83,17,1,19,0,1,0,0,0,13.097,0,1,6889,2.572383,0,1,0,0,1,3.6,12.96,1.3097 +0,.8049922,81,3,3,1,0,0,1,1,1,10.256,3,0,6561,2.327863,1,3,1.098612,1.098612,1,3.2,10.24,1.0256 +0,.9661543,81,11,6,2,0,1,1,1,1,14.507,1,1,6561,2.674631,0,6,1.791759,1.791759,1,3.2,10.24,1.4507 +0,1,75,9,3,0,1,0,1,1,1,6.2,3,0,5625,1.824549,1,3,1.098612,1.098612,1,2,4,.61999998 +0,.5945946,70,6,2,0,0,1,0,0,0,18.5,0,1,4900,2.917771,0,2,.6931472,.6931472,1,1,1,1.85 +0,.4202898,73,3,13,0,0,0,0,1,0,13.8,0,0,5329,2.624669,0,13,2.564949,2.564949,1,1.6,2.56,1.38 +0,.6170213,65,1,17,0,0,0,1,0,0,9.4,4,0,4225,2.24071,0,17,2.833213,2.833213,1,0,0,.93999996 +0,0,66,3,12,9,1,0,1,0,0,0,3,0,4356,,1,12,2.484907,2.484907,1,.2,.04,0 +0,.974077,83,11,22,0,0,1,1,1,0,14.003,1,1,6889,2.639271,0,22,3.091043,3.091043,1,3.6,12.96,1.4003 +0,.2144373,85,12,5,11,0,1,1,1,1,22.151,3,1,7225,3.097883,0,5,1.609438,1.609438,1,4,16,2.2150999 +0,.1963702,85,8,5,1,0,1,0,1,1,24.189,3,1,7225,3.185898,0,5,1.609438,1.609438,1,4,16,2.4188999 +0,.5515695,72,6,0,1,0,0,0,0,0,9.366,2,0,5184,2.237086,1,0,,-4.60517,0,1.4,1.96,.93660002 +0,.5515695,71,12,1,0,0,0,1,0,0,9.366,1,0,5041,2.237086,1,1,0,0,1,1.2,1.44,.93660002 +0,.7058824,72,8,7,1,0,0,1,1,0,10.2,2,0,5184,2.322388,0,7,1.94591,1.94591,1,1.4,1.96,1.02 +0,.993592,78,12,8,0,0,1,0,0,0,19.507,3,1,6084,2.970773,0,8,2.079442,2.079442,1,2.6,6.76,1.9507 +1,0,71,17,8,0,0,1,1,0,0,28.125,1,1,5041,3.336659,0,8,2.079442,2.079442,1,1.2,1.44,2.8125 +0,.3202277,78,12,18,3,0,1,1,0,0,33.726,2,1,6084,3.518269,1,18,2.890372,2.890372,1,2.6,6.76,3.3726002 +0,.3769826,65,16,8,0,0,1,0,1,0,57.878,3,1,4225,4.058337,0,8,2.079442,2.079442,1,0,0,5.7877998 +0,1,65,11,3,0,1,0,0,1,1,6.336,0,0,4225,1.846248,1,3,1.098612,1.098612,1,0,0,.6336 +0,1,81,12,11,0,1,0,1,1,1,7.2,6,0,6561,1.974081,1,11,2.397895,2.397895,1,3.2,10.24,.71999998 +0,.4977038,82,17,0,0,1,0,1,1,1,13.936,1,0,6724,2.634475,0,0,,-4.60517,0,3.4,11.56,1.3936 +0,.8571429,79,11,32,1,1,0,1,1,1,6.888,4,0,6241,1.929781,0,32,3.465736,3.465736,1,2.8,7.84,.6888 +0,.7772021,71,16,11,4,0,0,1,0,0,1.158,3,0,5041,.1466944,0,11,2.397895,2.397895,1,1.2,1.44,.1158 +0,.7772021,72,16,14,3,0,0,0,0,0,1.158,2,0,5184,.1466944,0,14,2.639057,2.639057,1,1.4,1.96,.1158 +0,1,85,12,0,0,0,0,1,1,1,5.755,3,0,7225,1.750069,1,0,,-4.60517,0,4,16,.57550001 +0,1,73,12,6,0,0,1,0,1,0,10,3,1,5329,2.302585,0,6,1.791759,1.791759,1,1.6,2.56,1 +0,1,67,12,5,7,0,1,1,1,1,10,3,1,4489,2.302585,0,5,1.609438,1.609438,1,.4,.16,1 +0,.3877453,66,12,4,0,0,1,1,0,0,29.197,0,1,4356,3.374066,0,4,1.386294,1.386294,1,.2,.04,2.9197001 +0,0,73,2,4,0,1,0,1,1,0,3.5,2,0,5329,1.252763,1,4,1.386294,1.386294,1,1.6,2.56,.35 +0,0,75,6,3,0,1,0,0,0,0,8.4,2,0,5625,2.128232,1,3,1.098612,1.098612,1,2,4,.83999996 +0,.8883625,81,12,9,1,0,1,1,0,0,10.131,1,1,6561,2.3156,0,9,2.197225,2.197225,1,3.2,10.24,1.0131 +0,.8883625,81,14,13,2,0,1,0,0,0,10.131,1,1,6561,2.3156,0,13,2.564949,2.564949,1,3.2,10.24,1.0131 +0,.562766,66,12,26,41,0,0,1,0,0,38.771,2,0,4356,3.657673,0,26,3.258096,3.258096,1,.2,.04,3.8771 +0,1,85,5,4,0,0,0,1,1,0,9,1,0,7225,2.197225,0,4,1.386294,1.386294,1,4,16,.9 +0,.999643,85,13,5,15,0,1,1,1,1,14.005,5,1,7225,2.639414,0,5,1.609438,1.609438,1,4,16,1.4005 +0,.4846128,85,10,11,0,0,1,1,1,1,20.829,5,1,7225,3.036346,0,11,2.397895,2.397895,1,4,16,2.0829 +0,.9627507,81,12,8,0,0,0,1,1,0,8.725,2,0,6561,2.166193,1,8,2.079442,2.079442,1,3.2,10.24,.87250004 +0,1,76,12,24,0,1,0,1,1,1,8.4,4,0,5776,2.128232,1,24,3.178054,3.178054,1,2.2,4.84,.83999996 +0,.4487307,72,14,0,0,0,1,0,0,0,21.153,0,1,5184,3.051782,0,0,,-4.60517,0,1.4,1.96,2.1153 +0,.7391304,66,12,15,7,0,0,0,0,0,11.5,2,0,4356,2.442347,1,15,2.70805,2.70805,1,.2,.04,1.15 +0,1,72,6,7,1,1,0,0,1,1,7.5,3,0,5184,2.014903,1,7,1.94591,1.94591,1,1.4,1.96,.75 +0,.9882353,79,12,8,2,0,0,1,0,0,8.5,2,0,6241,2.140066,0,8,2.079442,2.079442,1,2.8,7.84,.85 +0,1,83,12,13,0,0,1,0,0,0,12,2,1,6889,2.484907,0,13,2.564949,2.564949,1,3.6,12.96,1.2 +0,.4,80,5,19,7,1,0,1,1,1,6,1,0,6400,1.791759,1,19,2.944439,2.944439,1,3,9,.6 +0,.7629336,70,15,3,4,0,1,1,0,0,23.698,0,1,4900,3.165391,0,3,1.098612,1.098612,1,1,1,2.3698 +0,0,69,13,12,0,0,1,0,0,0,28.921,3,1,4761,3.364568,0,12,2.484907,2.484907,1,.8,.64,2.8921 +0,0,69,12,6,1,0,1,1,0,0,.07,2,1,4761,-2.65926,0,6,1.791759,1.791759,1,.8,.64,.007 +0,0,66,12,0,0,0,1,0,0,0,10.5,0,1,4356,2.351375,0,0,,-4.60517,0,.2,.04,1.05 +0,.9433962,85,12,13,3,0,1,0,1,0,13.25,3,1,7225,2.583997,0,13,2.564949,2.564949,1,4,16,1.325 +0,.9433962,85,16,5,1,0,1,1,0,0,13.25,2,1,7225,2.583997,0,5,1.609438,1.609438,1,4,16,1.325 +0,.5529772,85,12,17,2,0,1,0,1,1,9.136,4,1,7225,2.212223,0,17,2.833213,2.833213,1,4,16,.91359997 +0,.3811992,81,8,3,8,0,0,0,0,0,26.233,1,0,6561,3.267018,0,3,1.098612,1.098612,1,3.2,10.24,2.6233 +0,.3780575,84,12,4,2,0,0,1,0,0,26.451,0,0,7056,3.275294,0,4,1.386294,1.386294,1,3.8,14.44,2.6451 +0,.4830408,68,12,3,0,0,1,1,0,0,30.308,1,1,4624,3.411412,0,3,1.098612,1.098612,1,.6,.36,3.0308001 +0,0,73,8,1,0,0,0,1,0,0,8.489,1,0,5329,2.138771,1,1,0,0,1,1.6,2.56,.84890003 +0,1,77,11,10,1,0,1,0,0,0,21.669,2,1,5929,3.075883,0,10,2.302585,2.302585,1,2.4,5.76,2.1669001 +0,1,74,12,1,0,0,1,1,0,0,21.669,1,1,5476,3.075883,0,1,0,0,1,1.8,3.24,2.1669001 +0,0,85,4,12,0,1,0,1,1,1,1.794,2,0,7225,.5844478,1,12,2.484907,2.484907,1,4,16,.1794 +0,.1121932,82,12,7,1,0,0,1,0,0,25.67,2,0,6724,3.245323,0,7,1.94591,1.94591,1,3.4,11.56,2.567 +0,.4343891,73,8,0,1,0,0,1,0,0,17.68,0,0,5329,2.872434,1,0,,-4.60517,0,1.6,2.56,1.768 +0,.0745342,68,16,4,5,0,1,0,0,0,24.15,0,1,4624,3.184284,0,4,1.386294,1.386294,1,.6,.36,2.415 +0,.3919214,71,13,8,25,0,0,0,1,1,31.639,2,0,5041,3.454391,0,8,2.079442,2.079442,1,1.2,1.44,3.1639 +0,.3411487,84,14,9,0,0,1,1,0,0,24.183,2,1,7056,3.18565,0,9,2.197225,2.197225,1,3.8,14.44,2.4183001 +0,.3411487,85,16,6,0,0,1,0,0,0,24.183,2,1,7225,3.18565,0,6,1.791759,1.791759,1,4,16,2.4183001 +0,1,76,5,2,0,1,0,1,1,1,6.5,2,0,5776,1.871802,0,2,.6931472,.6931472,1,2.2,4.84,.65 +0,0,66,2,5,0,1,0,0,1,1,10.605,2,0,4356,2.361326,1,5,1.609438,1.609438,1,.2,.04,1.0605 +0,0,67,4,4,0,1,0,0,0,1,6.396,2,0,4489,1.855673,1,4,1.386294,1.386294,1,.4,.16,.63959999 +1,.198752,70,12,12,0,0,1,1,1,0,64.905,2,1,4900,4.172925,0,12,2.484907,2.484907,1,1,1,6.4904999 +0,0,82,14,4,0,0,1,1,1,1,1.446,4,1,6724,.3688011,0,4,1.386294,1.386294,1,3.4,11.56,.1446 +0,0,71,17,0,0,0,1,0,0,0,1.446,0,1,5041,.3688011,0,0,,-4.60517,0,1.2,1.44,.1446 +0,.748924,70,12,0,0,0,1,1,0,0,13.94,0,1,4900,2.634762,0,0,,-4.60517,0,1,1,1.394 +0,1,74,10,8,0,1,0,1,1,1,8.032,4,0,5476,2.083434,1,8,2.079442,2.079442,1,1.8,3.24,.80319996 +0,.4956858,68,9,4,0,1,0,1,1,1,13.444,3,0,4624,2.598533,1,4,1.386294,1.386294,1,.6,.36,1.3444 +0,.173913,70,12,2,3,0,1,0,1,0,46,2,1,4900,3.828641,0,2,.6931472,.6931472,1,1,1,4.6 +0,0,67,12,0,3,0,1,1,0,1,14,3,1,4489,2.639057,0,0,,-4.60517,0,.4,.16,1.4 +0,1,74,3,5,0,1,0,0,1,1,7.6,4,0,5476,2.028148,1,5,1.609438,1.609438,1,1.8,3.24,.75999999 +0,1,77,6,13,0,1,0,1,1,1,6.5,5,0,5929,1.871802,0,13,2.564949,2.564949,1,2.4,5.76,.65 +0,0,66,6,22,0,1,0,0,1,1,0,3,0,4356,,0,22,3.091043,3.091043,1,.2,.04,0 +0,.4,85,10,0,0,0,0,1,1,1,12,1,0,7225,2.484907,0,0,,-4.60517,0,4,16,1.2 +0,0,85,7,11,0,1,0,1,1,1,9.185,3,0,7225,2.217572,1,11,2.397895,2.397895,1,4,16,.91850004 +0,0,76,11,5,0,1,0,1,1,1,3,4,0,5776,1.098612,1,5,1.609438,1.609438,1,2.2,4.84,.3 +0,0,77,12,8,0,1,0,1,0,0,3.96,4,0,5929,1.376244,1,8,2.079442,2.079442,1,2.4,5.76,.396 +0,1,80,8,14,0,1,0,1,1,1,6.5,4,0,6400,1.871802,0,14,2.639057,2.639057,1,3,9,.65 +0,1,85,12,12,1,0,1,1,0,0,7,3,1,7225,1.94591,0,12,2.484907,2.484907,1,4,16,.7 +0,.9125475,82,12,3,0,0,0,0,1,0,6.575,1,0,6724,1.883275,0,3,1.098612,1.098612,1,3.4,11.56,.65749998 +0,.9125475,79,12,7,2,0,0,1,1,1,6.575,1,0,6241,1.883275,0,7,1.94591,1.94591,1,2.8,7.84,.65749998 +0,.9637681,79,12,15,9,0,0,1,1,1,8.28,1,0,6241,2.113843,0,15,2.70805,2.70805,1,2.8,7.84,.82799997 +0,.6244907,67,14,3,0,0,1,1,0,0,27.243,3,1,4489,3.304797,1,3,1.098612,1.098612,1,.4,.16,2.7243 +0,1,65,9,0,0,0,0,0,0,1,3.6,0,0,4225,1.280934,1,0,,-4.60517,0,0,0,.35999999 +0,.3757145,70,11,32,21,0,0,1,1,1,18.546,3,0,4900,2.920254,0,32,3.465736,3.465736,1,1,1,1.8546 +0,0,80,8,8,6,1,0,1,1,1,5.952,3,0,6400,1.783727,1,8,2.079442,2.079442,1,3,9,.59520001 +0,.1951702,68,10,2,3,0,1,1,0,0,9.607,1,1,4624,2.262492,0,2,.6931472,.6931472,1,.6,.36,.96070004 +0,.1951702,75,7,0,0,0,1,0,0,0,9.607,0,1,5625,2.262492,0,0,,-4.60517,0,2,4,.96070004 +0,.7909604,67,12,19,17,0,0,0,0,0,8.85,2,0,4489,2.180418,0,19,2.944439,2.944439,1,.4,.16,.88500004 +0,0,78,16,4,0,0,0,1,1,1,11.859,2,0,6084,2.473087,0,4,1.386294,1.386294,1,2.6,6.76,1.1859 +0,.4827934,75,12,9,1,0,0,1,1,1,29.727,3,0,5625,3.392056,0,9,2.197225,2.197225,1,2,4,2.9726999 +0,.8551881,80,12,5,0,0,1,1,1,0,14.032,2,1,6400,2.64134,0,5,1.609438,1.609438,1,3,9,1.4032 +1,.6962333,72,12,0,0,0,0,1,1,0,13.168,3,0,5184,2.57779,1,0,,-4.60517,0,1.4,1.96,1.3168 +0,.6374248,71,12,10,2,0,1,0,1,0,14.135,2,1,5041,2.648654,0,10,2.302585,2.302585,1,1.2,1.44,1.4135 +0,.3506494,73,16,15,1,1,0,1,1,0,15.4,3,0,5329,2.734367,0,15,2.70805,2.70805,1,1.6,2.56,1.54 +0,1,70,10,11,0,0,0,1,0,0,10.5,3,0,4900,2.351375,0,11,2.397895,2.397895,1,1,1,1.05 +0,.7307692,78,8,7,0,0,0,1,1,1,13,3,0,6084,2.564949,0,7,1.94591,1.94591,1,2.6,6.76,1.3 +0,.7307692,79,12,11,0,0,0,0,1,1,13,3,0,6241,2.564949,0,11,2.397895,2.397895,1,2.8,7.84,1.3 +0,.6576271,67,8,1,0,1,0,0,0,1,7.08,3,0,4489,1.957274,1,1,0,0,1,.4,.16,.70799999 +0,.8252664,69,8,2,0,0,0,1,1,0,6.57,2,0,4761,1.882514,1,2,.6931472,.6931472,1,.8,.64,.65700002 +0,.8651488,66,12,12,0,1,0,0,1,1,6.852,3,0,4356,1.924541,0,12,2.484907,2.484907,1,.2,.04,.68520002 +0,.3415884,85,12,3,0,0,1,0,1,0,35.13,3,1,7225,3.559056,0,3,1.098612,1.098612,1,4,16,3.5130001 +0,.3011564,71,16,1,2,0,0,1,0,0,12.452,0,0,5041,2.521881,0,1,0,0,1,1.2,1.44,1.2452 +0,3.210616,82,15,0,0,0,0,0,0,0,1.168,0,0,6724,.1552929,0,0,,-4.60517,0,3.4,11.56,.1168 +0,.5691519,77,7,2,0,0,0,0,1,1,26.355,0,0,5929,3.271658,0,2,.6931472,.6931472,1,2.4,5.76,2.6355 +0,.1964508,78,7,5,0,0,0,1,0,0,76.355,2,0,6084,4.335393,0,5,1.609438,1.609438,1,2.6,6.76,7.6355003 +0,.5714286,85,8,0,0,1,0,1,1,1,7,2,0,7225,1.94591,0,0,,-4.60517,0,4,16,.7 +0,.9836066,67,10,2,4,0,1,1,0,0,9.15,1,1,4489,2.213754,0,2,.6931472,.6931472,1,.4,.16,.91499996 +0,0,66,12,4,0,0,1,0,0,0,.888,1,1,4356,-.1187835,0,4,1.386294,1.386294,1,.2,.04,.0888 +0,.5294118,74,2,4,12,1,0,1,1,0,17,2,0,5476,2.833213,1,4,1.386294,1.386294,1,1.8,3.24,1.7 +0,1,75,12,1,0,1,0,1,1,1,8,3,0,5625,2.079442,1,1,0,0,1,2,4,.8 +0,1,84,12,6,1,0,0,0,0,0,4.032,3,0,7056,1.394263,0,6,1.791759,1.791759,1,3.8,14.44,.40320001 +0,.1078623,75,17,8,1,0,1,0,0,0,111.253,3,1,5625,4.711807,0,8,2.079442,2.079442,1,2,4,11.1253 +0,0,73,17,5,5,0,1,0,0,0,142.232,1,1,5329,4.957459,1,5,1.609438,1.609438,1,1.6,2.56,14.223199 +0,1,80,11,3,0,1,0,1,1,1,10,1,0,6400,2.302585,1,3,1.098612,1.098612,1,3,9,1 +0,.75,78,11,6,1,0,0,1,1,1,12,3,0,6084,2.484907,0,6,1.791759,1.791759,1,2.6,6.76,1.2 +0,.6240602,65,11,0,0,1,0,0,0,0,3.99,1,0,4225,1.383791,0,0,,-4.60517,0,0,0,.399 +0,1,73,11,24,21,0,0,1,0,0,10.601,2,0,5329,2.360948,0,24,3.178054,3.178054,1,1.6,2.56,1.0601 +0,.9464334,75,12,12,1,0,0,0,0,0,11.201,3,0,5625,2.416003,0,12,2.484907,2.484907,1,2,4,1.1201 +0,1,75,2,0,0,1,0,0,1,1,4.524,1,0,5625,1.509397,1,0,,-4.60517,0,2,4,.45240002 +0,1,81,9,1,0,0,0,1,0,0,3.708,1,0,6561,1.310493,1,1,0,0,1,3.2,10.24,.37079999 +0,1,73,10,1,0,0,0,1,1,0,8.736,3,0,5329,2.167452,1,1,0,0,1,1.6,2.56,.87360001 +0,.2166454,78,9,16,1,0,0,0,1,1,13.349,5,0,6084,2.591441,1,16,2.772589,2.772589,1,2.6,6.76,1.3349 +0,1,85,7,19,4,0,1,0,1,0,12.07,4,1,7225,2.490723,0,19,2.944439,2.944439,1,4,16,1.207 +0,1,80,8,13,4,0,1,1,1,0,12.07,4,1,6400,2.490723,0,13,2.564949,2.564949,1,3,9,1.207 +0,0,67,9,11,12,0,1,0,1,0,0,1,1,4489,,1,11,2.397895,2.397895,1,.4,.16,0 +0,1,66,12,6,0,0,0,1,1,1,8.7,5,0,4356,2.163323,1,6,1.791759,1.791759,1,.2,.04,.86999998 +0,.3179487,67,12,0,0,0,1,0,0,0,29.25,0,1,4489,3.37588,0,0,,-4.60517,0,.4,.16,2.925 +0,.5299146,66,12,2,1,0,1,1,0,0,17.55,0,1,4356,2.865054,0,2,.6931472,.6931472,1,.2,.04,1.7549999 +0,1,85,8,6,1,0,0,1,1,1,12,4,0,7225,2.484907,0,6,1.791759,1.791759,1,4,16,1.2 +0,1,74,6,1,1,0,0,1,0,0,5.4,0,0,5476,1.686399,1,1,0,0,1,1.8,3.24,.54000001 +0,.9370629,74,9,10,0,1,0,1,0,0,6.864,2,0,5476,1.92629,1,10,2.302585,2.302585,1,1.8,3.24,.68639998 +0,1,77,6,1,0,0,0,1,1,1,8,1,0,5929,2.079442,1,1,0,0,1,2.4,5.76,.8 +0,.3948171,85,16,6,59,0,1,1,1,0,31.488,2,1,7225,3.449607,0,6,1.791759,1.791759,1,4,16,3.1488001 +0,.6593407,69,12,4,1,0,1,1,0,0,18.2,1,1,4761,2.901422,0,4,1.386294,1.386294,1,.8,.64,1.8200001 +0,.4201681,84,17,5,0,0,1,0,0,0,35.7,2,1,7056,3.575151,0,5,1.609438,1.609438,1,3.8,14.44,3.5700001 +0,.5124261,66,12,0,2,0,1,1,0,0,27.563,1,1,4356,3.316474,0,0,,-4.60517,0,.2,.04,2.7563 +0,1,75,6,3,0,0,1,0,1,1,6,2,1,5625,1.791759,0,3,1.098612,1.098612,1,2,4,.6 +0,.3471419,73,11,4,0,0,1,1,0,0,17.284,0,1,5329,2.849781,0,4,1.386294,1.386294,1,1.6,2.56,1.7284 +0,.1431803,77,16,3,0,0,0,1,0,0,34.921,1,0,5929,3.553088,1,3,1.098612,1.098612,1,2.4,5.76,3.4921001 +0,0,72,14,9,3,0,1,1,1,0,.445,1,1,5184,-.809681,0,9,2.197225,2.197225,1,1.4,1.96,.0445 +0,0,85,8,5,0,0,0,1,1,1,5.64,1,0,7225,1.729884,0,5,1.609438,1.609438,1,4,16,.56399999 +0,1,72,10,11,15,1,0,0,1,1,12.912,3,0,5184,2.558157,0,11,2.397895,2.397895,1,1.4,1.96,1.2912 +0,.6456473,66,12,8,0,0,1,1,0,1,9.293,4,1,4356,2.229261,0,8,2.079442,2.079442,1,.2,.04,.92930002 +0,.6456473,71,12,12,0,0,1,0,0,1,9.293,1,1,5041,2.229261,0,12,2.484907,2.484907,1,1.2,1.44,.92930002 +0,1,72,11,18,0,0,0,1,1,1,5,5,0,5184,1.609438,1,18,2.890372,2.890372,1,1.4,1.96,.5 +0,.9995372,85,12,8,0,0,1,1,1,1,10.805,3,1,7225,2.380009,0,8,2.079442,2.079442,1,4,16,1.0805 +0,.2164301,81,17,26,3,0,1,1,1,1,43.968,1,1,6561,3.783462,0,26,3.258096,3.258096,1,3.2,10.24,4.3967999 +0,.8790323,67,10,0,1,0,1,0,0,0,12.4,0,1,4489,2.517696,0,0,,-4.60517,0,.4,.16,1.24 +0,0,78,2,10,0,1,0,0,1,1,6.768,5,0,6084,1.912206,1,10,2.302585,2.302585,1,2.6,6.76,.67680001 +0,1,84,14,5,9,0,1,1,0,0,5,2,1,7056,1.609438,0,5,1.609438,1.609438,1,3.8,14.44,.5 +0,1,69,12,5,1,1,0,1,1,1,6,2,0,4761,1.791759,0,5,1.609438,1.609438,1,.8,.64,.6 +0,.1968654,69,12,22,3,0,1,0,1,1,15.696,4,1,4761,2.753406,0,22,3.091043,3.091043,1,.8,.64,1.5696 +0,.1968654,68,12,3,3,0,1,1,0,0,15.696,2,1,4624,2.753406,0,3,1.098612,1.098612,1,.6,.36,1.5696 +0,.8655914,82,6,13,0,0,0,1,1,0,7.44,2,0,6724,2.006871,0,13,2.564949,2.564949,1,3.4,11.56,.74400001 +0,.3573629,82,16,3,1,0,1,1,0,0,40.575,1,1,6724,3.703152,0,3,1.098612,1.098612,1,3.4,11.56,4.0575001 +0,.3538052,72,14,11,0,0,1,0,1,0,40.983,3,1,5184,3.713157,0,11,2.397895,2.397895,1,1.4,1.96,4.0983002 +0,.996038,82,8,3,0,0,1,1,1,1,5.048,3,1,6724,1.618992,0,3,1.098612,1.098612,1,3.4,11.56,.50479999 +0,0,79,10,5,0,0,1,1,1,0,0,3,1,6241,,0,5,1.609438,1.609438,1,2.8,7.84,0 +0,0,71,8,0,0,0,0,0,0,0,0,0,0,5041,,0,0,,-4.60517,0,1.2,1.44,0 +0,1,65,5,0,12,0,0,1,0,0,2.988,3,0,4225,1.094604,1,0,,-4.60517,0,0,0,.29879999 +0,1,65,7,2,0,0,0,0,1,1,13,1,0,4225,2.564949,1,2,.6931472,.6931472,1,0,0,1.3 +0,.8086802,65,12,4,0,0,1,0,0,0,26.981,0,1,4225,3.295133,0,4,1.386294,1.386294,1,0,0,2.6981001 +0,1,72,2,6,6,0,0,1,0,0,.676,1,0,5184,-.3915622,1,6,1.791759,1.791759,1,1.4,1.96,.0676 +0,1,76,1,12,0,0,0,0,0,0,.676,1,0,5776,-.3915622,1,12,2.484907,2.484907,1,2.2,4.84,.0676 +0,.9431818,68,16,6,0,0,0,0,1,1,8.8,1,0,4624,2.174752,0,6,1.791759,1.791759,1,.6,.36,.88000002 +0,.9777211,67,12,8,0,0,1,0,0,0,11.76,1,1,4489,2.464704,0,8,2.079442,2.079442,1,.4,.16,1.176 +0,.9989575,67,11,7,0,0,0,1,0,0,11.51,0,0,4489,2.443216,0,7,1.94591,1.94591,1,.4,.16,1.151 +0,0,78,16,8,9,0,1,0,1,1,4.585,2,1,6084,1.52279,0,8,2.079442,2.079442,1,2.6,6.76,.4585 +0,0,76,12,13,8,0,1,1,1,1,4.585,4,1,5776,1.52279,0,13,2.564949,2.564949,1,2.2,4.84,.4585 +0,0,75,12,0,1,0,1,0,0,0,11.875,0,1,5625,2.474435,1,0,,-4.60517,0,2,4,1.1875 +0,.1441441,73,9,4,0,0,1,1,0,0,13.875,2,1,5329,2.630089,1,4,1.386294,1.386294,1,1.6,2.56,1.3875 +0,.9473684,85,8,5,0,0,1,1,1,1,9.5,1,1,7225,2.251292,0,5,1.609438,1.609438,1,4,16,.95 +0,0,66,8,11,0,1,0,1,0,0,7.831,3,0,4356,2.05809,1,11,2.397895,2.397895,1,.2,.04,.78309999 +0,.4573034,68,10,2,2,0,1,1,1,1,21.36,4,1,4624,3.06152,0,2,.6931472,.6931472,1,.6,.36,2.1360001 +0,.0572327,77,10,12,0,0,0,0,1,1,32.761,5,0,5929,3.489239,0,12,2.484907,2.484907,1,2.4,5.76,3.2761002 +0,.0577189,76,8,14,0,0,0,1,1,1,32.485,2,0,5776,3.480778,0,14,2.639057,2.639057,1,2.2,4.84,3.2485001 +0,.9546817,82,8,2,5,0,0,1,1,1,11.011,3,0,6724,2.398895,0,2,.6931472,.6931472,1,3.4,11.56,1.1011 +0,.9887218,70,14,3,0,0,0,0,1,0,9.576,4,0,4900,2.25926,0,3,1.098612,1.098612,1,1,1,.95760002 +0,1,71,12,2,0,0,0,0,1,1,31.064,2,0,5041,3.436049,0,2,.6931472,.6931472,1,1.2,1.44,3.1063999 +0,.6166938,68,12,4,0,0,0,0,0,1,17.216,1,0,4624,2.845839,0,4,1.386294,1.386294,1,.6,.36,1.7216 +0,.6166938,65,12,5,0,0,0,1,0,0,17.216,1,0,4225,2.845839,0,5,1.609438,1.609438,1,0,0,1.7216 +0,1,84,8,0,0,0,1,0,0,0,7.2,0,1,7056,1.974081,0,0,,-4.60517,0,3.8,14.44,.71999998 +0,1,75,12,0,0,0,1,1,1,1,11.972,2,1,5625,2.482571,0,0,,-4.60517,0,2,4,1.1972 +0,.9785429,77,12,0,0,0,1,1,0,0,19.807,0,1,5929,2.986035,0,0,,-4.60517,0,2.4,5.76,1.9806999 +0,.25,85,12,0,5,0,1,1,1,1,32,3,1,7225,3.465736,0,0,,-4.60517,0,4,16,3.2 +0,.7382199,75,12,17,4,1,0,0,0,0,9.168,1,0,5625,2.215719,0,17,2.833213,2.833213,1,2,4,.91680002 +0,1,73,9,10,1,0,1,1,0,0,8,3,1,5329,2.079442,0,10,2.302585,2.302585,1,1.6,2.56,.8 +0,.8392857,73,2,0,0,1,0,0,0,0,11.2,0,0,5329,2.415914,1,0,,-4.60517,0,1.6,2.56,1.12 +0,0,67,17,11,1,0,1,0,1,0,51.807,0,1,4489,3.947525,0,11,2.397895,2.397895,1,.4,.16,5.1806999 +0,1,74,12,0,0,0,0,1,0,0,8.724,1,0,5476,2.166078,0,0,,-4.60517,0,1.8,3.24,.8724 +0,1,85,14,4,1,0,0,1,0,1,7.2,2,0,7225,1.974081,1,4,1.386294,1.386294,1,4,16,.71999998 +0,.6678322,85,4,10,0,1,0,0,1,1,6.864,2,0,7225,1.92629,1,10,2.302585,2.302585,1,4,16,.68639998 +0,.3627636,85,15,5,1,0,1,0,1,1,54.581,1,1,7225,3.999686,0,5,1.609438,1.609438,1,4,16,5.4581001 +0,.9390315,77,8,0,1,0,0,0,0,0,13.712,2,0,5929,2.618271,1,0,,-4.60517,0,2.4,5.76,1.3712 +0,.695753,68,17,16,3,0,1,0,0,0,6.899,1,1,4624,1.931376,1,16,2.772589,2.772589,1,.6,.36,.68990002 +0,.0544406,76,17,9,13,0,1,1,1,1,40.411,3,1,5776,3.699102,1,9,2.197225,2.197225,1,2.2,4.84,4.0410999 +0,.7797203,67,12,16,0,1,0,1,1,1,6.864,4,0,4489,1.92629,0,16,2.772589,2.772589,1,.4,.16,.68639998 +0,.4729763,71,12,10,13,0,1,1,0,0,20.297,0,1,5041,3.010473,0,10,2.302585,2.302585,1,1.2,1.44,2.0297001 +0,.7218045,81,14,0,0,0,0,1,0,0,13.3,0,0,6561,2.587764,0,0,,-4.60517,0,3.2,10.24,1.33 +0,0,72,10,7,1,1,0,1,1,1,0,3,0,5184,,1,7,1.94591,1.94591,1,1.4,1.96,0 +0,.3891601,84,2,8,2,0,1,1,0,0,28.266,1,1,7056,3.34166,0,8,2.079442,2.079442,1,3.8,14.44,2.8266001 +0,0,68,8,4,0,1,0,0,1,1,0,1,0,4624,,1,4,1.386294,1.386294,1,.6,.36,0 +0,.3251728,67,16,6,3,0,0,0,0,0,24.59,1,0,4489,3.20234,0,6,1.791759,1.791759,1,.4,.16,2.459 +0,.339605,66,15,4,6,0,0,1,0,0,23.545,4,0,4356,3.158913,0,4,1.386294,1.386294,1,.2,.04,2.3545 +0,.3327556,78,16,4,0,0,1,0,1,1,28.85,4,1,6084,3.36211,1,4,1.386294,1.386294,1,2.6,6.76,2.885 +0,0,73,15,4,0,0,1,1,0,0,19.25,2,1,5329,2.957511,1,4,1.386294,1.386294,1,1.6,2.56,1.925 +0,.0191397,65,17,2,1,0,1,1,1,0,63.324,2,1,4225,4.148264,1,2,.6931472,.6931472,1,0,0,6.3324001 +0,1,83,9,8,0,0,1,0,0,0,6,2,1,6889,1.791759,1,8,2.079442,2.079442,1,3.6,12.96,.6 +0,.5042391,77,13,16,0,0,1,0,0,0,27.364,2,1,5929,3.309228,0,16,2.772589,2.772589,1,2.4,5.76,2.7364 +0,1,81,10,8,0,1,0,1,1,0,6.84,3,0,6561,1.922788,0,8,2.079442,2.079442,1,3.2,10.24,.68400002 +0,.4381883,65,10,1,0,0,0,0,0,0,19.252,0,0,4225,2.957615,0,1,0,0,1,0,0,1.9252001 +0,.2992383,77,11,7,0,0,1,0,0,0,3.676,2,1,5929,1.301825,0,7,1.94591,1.94591,1,2.4,5.76,.36760001 +0,.2992383,73,12,26,0,0,1,1,0,0,3.676,0,1,5329,1.301825,0,26,3.258096,3.258096,1,1.6,2.56,.36760001 +0,.4202323,73,17,17,1,0,1,0,0,0,26.176,3,1,5329,3.264843,0,17,2.833213,2.833213,1,1.6,2.56,2.6176001 +0,.4746494,69,12,4,2,0,1,1,0,0,23.175,2,1,4761,3.143074,0,4,1.386294,1.386294,1,.8,.64,2.3174999 +0,.296857,66,17,16,15,0,1,0,0,1,26.949,3,1,4356,3.293946,0,16,2.772589,2.772589,1,.2,.04,2.6948999 +0,.3211304,66,14,4,1,0,1,1,0,0,24.912,0,1,4356,3.21535,0,4,1.386294,1.386294,1,.2,.04,2.4912001 +0,0,82,11,4,0,0,1,0,0,0,0,1,1,6724,,0,4,1.386294,1.386294,1,3.4,11.56,0 +0,.5296988,67,6,0,0,0,0,1,0,0,16.802,0,0,4489,2.821498,0,0,,-4.60517,0,.4,.16,1.6802 +0,.8976587,82,8,8,14,0,0,0,1,1,9.781,1,0,6724,2.280442,0,8,2.079442,2.079442,1,3.4,11.56,.97810001 +0,.9777283,81,7,8,1,0,0,1,1,0,8.98,1,0,6561,2.195,0,8,2.079442,2.079442,1,3.2,10.24,.89799995 +0,.1850035,74,15,24,32,0,0,0,0,1,58.107,3,0,5476,4.062286,0,24,3.178054,3.178054,1,1.8,3.24,5.8106998 +0,.1863117,73,13,27,26,0,0,1,1,0,57.699,3,0,5329,4.05524,0,27,3.295837,3.295837,1,1.6,2.56,5.7699001 +0,0,76,10,13,1,0,1,1,1,1,8.5,4,1,5776,2.140066,0,13,2.564949,2.564949,1,2.2,4.84,.85 +0,0,72,6,4,0,1,0,1,1,1,7.831,4,0,5184,2.05809,1,4,1.386294,1.386294,1,1.4,1.96,.78309999 +0,.2514037,66,17,1,40,0,1,1,1,0,47.732,1,1,4356,3.865602,0,1,0,0,1,.2,.04,4.7731998 +0,1,78,12,10,5,1,0,0,1,1,8.001,3,0,6084,2.079566,0,10,2.302585,2.302585,1,2.6,6.76,.80010004 +0,1,85,4,14,0,1,0,1,1,1,6.224,4,0,7225,1.828413,1,14,2.639057,2.639057,1,4,16,.6224 +0,.36,79,8,1,0,0,0,1,1,0,12.5,1,0,6241,2.525729,1,1,0,0,1,2.8,7.84,1.25 +0,.9811938,85,9,0,0,0,1,0,0,0,6.115,0,1,7225,1.810745,0,0,,-4.60517,0,4,16,.61149998 +0,1,65,12,22,0,0,1,0,1,1,2.5,4,1,4225,.9162908,0,22,3.091043,3.091043,1,0,0,.25 +0,1,74,9,0,0,0,1,0,0,0,4,0,1,5476,1.386294,1,0,,-4.60517,0,1.8,3.24,.4 +0,.9267476,75,14,19,6,0,0,1,1,1,9.556,3,0,5625,2.257169,0,19,2.944439,2.944439,1,2,4,.95559998 +0,.852459,66,12,3,0,0,0,1,1,1,15.25,1,0,4356,2.72458,0,3,1.098612,1.098612,1,.2,.04,1.525 +0,.9836066,81,13,5,0,0,1,0,0,0,12.2,1,1,6561,2.501436,0,5,1.609438,1.609438,1,3.2,10.24,1.22 +0,.7142857,80,12,3,0,0,1,1,1,0,14,0,1,6400,2.639057,0,3,1.098612,1.098612,1,3,9,1.4 +0,1,85,14,0,0,0,0,1,1,1,12,0,0,7225,2.484907,0,0,,-4.60517,0,4,16,1.2 +0,.632737,68,12,11,1,0,0,0,0,0,30.632,2,0,4624,3.422045,0,11,2.397895,2.397895,1,.6,.36,3.0632 +0,1,77,8,8,0,0,0,1,1,1,10,2,0,5929,2.302585,1,8,2.079442,2.079442,1,2.4,5.76,1 +0,1,66,11,0,0,0,1,1,0,0,9,0,1,4356,2.197225,1,0,,-4.60517,0,.2,.04,.9 +1,.4449921,70,15,4,5,0,1,0,0,0,29.214,1,1,4900,3.374648,0,4,1.386294,1.386294,1,1,1,2.9214001 +0,.9838051,71,14,5,5,0,1,1,0,0,13.214,1,1,5041,2.581277,0,5,1.609438,1.609438,1,1.2,1.44,1.3214 +0,.7380952,78,12,29,0,0,1,1,1,1,12.6,3,1,6084,2.533697,0,29,3.367296,3.367296,1,2.6,6.76,1.26 +0,1,69,5,4,0,0,0,0,0,1,8.868,3,0,4761,2.182449,0,4,1.386294,1.386294,1,.8,.64,.8868 +0,1,70,8,7,2,1,0,1,1,1,8.868,3,0,4900,2.182449,0,7,1.94591,1.94591,1,1,1,.8868 +0,0,68,7,3,0,1,0,1,1,1,0,2,0,4624,,0,3,1.098612,1.098612,1,.6,.36,0 +0,.5247324,73,12,7,0,0,0,0,0,0,28.586,0,0,5329,3.352917,0,7,1.94591,1.94591,1,1.6,2.56,2.8586 +0,0,83,8,3,1,0,1,1,1,0,0,4,1,6889,,0,3,1.098612,1.098612,1,3.6,12.96,0 +1,.3140513,66,12,0,2,0,1,1,0,0,39.484,1,1,4356,3.675895,1,0,,-4.60517,0,.2,.04,3.9484001 +0,.2325461,71,12,7,0,0,1,0,0,0,38.702,0,1,5041,3.655891,0,7,1.94591,1.94591,1,1.2,1.44,3.8702 +0,.2325461,70,12,8,0,0,1,1,0,0,38.702,1,1,4900,3.655891,0,8,2.079442,2.079442,1,1,1,3.8702 +0,0,65,9,0,0,0,0,0,0,0,22,1,0,4225,3.091043,1,0,,-4.60517,0,0,0,2.2 +0,.8571429,81,12,3,0,0,1,1,1,1,7,2,1,6561,1.94591,0,3,1.098612,1.098612,1,3.2,10.24,.7 +0,.2215944,76,14,11,1,0,1,0,1,0,54.153,1,1,5776,3.991813,0,11,2.397895,2.397895,1,2.2,4.84,5.4153 +0,0,85,12,19,0,1,0,1,1,1,8,5,0,7225,2.079442,0,19,2.944439,2.944439,1,4,16,.8 +0,0,79,16,4,0,0,1,1,0,0,26.995,2,1,6241,3.295652,0,4,1.386294,1.386294,1,2.8,7.84,2.6995001 +0,.304013,80,12,12,2,0,1,0,0,0,44.406,1,1,6400,3.793375,0,12,2.484907,2.484907,1,3,9,4.4405998 +1,.2103918,71,12,0,0,0,1,1,0,0,64.166,0,1,5041,4.161473,0,0,,-4.60517,0,1.2,1.44,6.4166 +0,1,81,16,5,0,0,0,0,0,0,7,2,0,6561,1.94591,0,5,1.609438,1.609438,1,3.2,10.24,.7 +0,1,74,12,8,0,0,0,1,1,0,7,3,0,5476,1.94591,0,8,2.079442,2.079442,1,1.8,3.24,.7 +0,1,85,6,2,0,0,1,1,0,0,11.532,0,1,7225,2.445126,0,2,.6931472,.6931472,1,4,16,1.1532 +0,1,69,5,3,0,0,0,0,0,0,3.6,1,0,4761,1.280934,1,3,1.098612,1.098612,1,.8,.64,.35999999 +0,.2168675,73,1,7,0,0,0,1,0,0,16.6,2,0,5329,2.809403,1,7,1.94591,1.94591,1,1.6,2.56,1.66 +0,.0978576,65,17,8,1,0,1,0,0,0,69.407,1,1,4225,4.239988,0,8,2.079442,2.079442,1,0,0,6.9406998 +0,0,78,8,0,0,0,0,1,0,0,0,0,0,6084,,0,0,,-4.60517,0,2.6,6.76,0 +0,.2015869,70,14,3,1,0,1,0,0,0,18.275,0,1,4900,2.905534,0,3,1.098612,1.098612,1,1,1,1.8275 +0,.2015869,66,12,4,1,0,1,1,0,0,18.275,1,1,4356,2.905534,0,4,1.386294,1.386294,1,.2,.04,1.8275 +0,.3908285,85,12,4,0,0,0,1,1,1,15.352,3,0,7225,2.731246,0,4,1.386294,1.386294,1,4,16,1.5352 +0,.9952607,85,12,3,3,0,1,0,1,1,10.55,4,1,7225,2.356126,0,3,1.098612,1.098612,1,4,16,1.055 +0,.9952607,85,13,1,3,0,1,1,1,1,10.55,1,1,7225,2.356126,0,1,0,0,1,4,16,1.055 +0,.4128726,81,17,9,3,0,1,1,0,0,35.362,0,1,6561,3.565638,0,9,2.197225,2.197225,1,3.2,10.24,3.5362 +0,1,77,12,7,4,0,0,1,1,1,8.76,4,0,5929,2.170196,0,7,1.94591,1.94591,1,2.4,5.76,.87600002 +0,1,69,12,5,0,0,1,0,0,0,9.8,2,1,4761,2.282382,0,5,1.609438,1.609438,1,.8,.64,.98000002 +0,1,65,8,8,0,1,0,0,1,1,5.1,3,0,4225,1.629241,1,8,2.079442,2.079442,1,0,0,.50999999 +0,1,66,10,6,5,1,0,1,0,1,5,2,0,4356,1.609438,0,6,1.791759,1.791759,1,.2,.04,.5 +0,.5714286,68,16,6,2,0,1,0,0,0,21.35,2,1,4624,3.061052,0,6,1.791759,1.791759,1,.6,.36,2.135 +0,.2903183,85,12,2,1,0,1,1,1,1,68.201,3,1,7225,4.222459,0,2,.6931472,.6931472,1,4,16,6.8200996 +0,.1643365,81,16,12,0,0,0,1,0,0,59.439,4,0,6561,4.08495,0,12,2.484907,2.484907,1,3.2,10.24,5.9438999 +0,1,76,9,2,0,1,0,1,1,1,7,0,0,5776,1.94591,0,2,.6931472,.6931472,1,2.2,4.84,.7 +0,1,72,0,0,0,0,1,0,0,0,6.25,0,1,5184,1.832582,1,0,,-4.60517,0,1.4,1.96,.625 +0,.4135469,70,12,1,1,0,1,0,0,0,22.972,2,1,4900,3.134276,0,1,0,0,1,1,1,2.2972 +0,0,78,11,1,1,1,0,1,0,0,0,3,0,6084,,1,1,0,0,1,2.6,6.76,0 +0,.8275862,71,12,0,0,0,0,1,0,0,11.6,1,0,5041,2.451005,1,0,,-4.60517,0,1.2,1.44,1.16 +0,.6363636,66,14,34,0,0,1,1,1,1,13.2,4,1,4356,2.580217,1,34,3.526361,3.526361,1,.2,.04,1.32 +0,.3396226,79,5,5,1,0,0,0,0,0,10.6,2,0,6241,2.360854,0,5,1.609438,1.609438,1,2.8,7.84,1.06 +0,.3396226,72,12,0,0,0,0,1,0,0,10.6,0,0,5184,2.360854,0,0,,-4.60517,0,1.4,1.96,1.06 +0,.7289523,69,12,4,0,0,1,0,0,0,29.932,2,1,4761,3.398928,0,4,1.386294,1.386294,1,.8,.64,2.9931999 +0,.2166625,78,12,0,0,0,0,0,0,0,43.847,0,0,6084,3.780706,0,0,,-4.60517,0,2.6,6.76,4.3847 +0,1,83,1,4,0,0,1,0,0,1,19.694,4,1,6889,2.980314,0,4,1.386294,1.386294,1,3.6,12.96,1.9694 +0,1,78,14,6,0,0,0,0,0,0,12,1,0,6084,2.484907,0,6,1.791759,1.791759,1,2.6,6.76,1.2 +0,.541213,70,12,15,1,0,1,0,0,0,23.791,4,1,4900,3.169307,0,15,2.70805,2.70805,1,1,1,2.3791 +0,0,79,6,11,16,1,0,1,0,0,9.185,2,0,6241,2.217572,1,11,2.397895,2.397895,1,2.8,7.84,.91850004 +0,.2576877,69,12,0,0,0,1,1,0,0,23.284,0,1,4761,3.147766,0,0,,-4.60517,0,.8,.64,2.3284 +0,.2819019,66,12,0,5,0,1,0,0,0,21.284,1,1,4356,3.057956,0,0,,-4.60517,0,.2,.04,2.1284 +0,0,77,6,13,0,0,1,1,1,0,0,2,1,5929,,1,13,2.564949,2.564949,1,2.4,5.76,0 +0,0,81,12,4,0,1,0,1,1,1,8.712,2,0,6561,2.164701,1,4,1.386294,1.386294,1,3.2,10.24,.87119999 +0,.4998605,77,12,3,1,0,0,0,1,0,21.506,1,0,5929,3.068332,0,3,1.098612,1.098612,1,2.4,5.76,2.1506001 +0,.4998605,70,17,1,0,0,0,1,0,0,21.506,0,0,4900,3.068332,0,1,0,0,1,1,1,2.1506001 +0,.4825422,66,12,3,0,0,1,1,0,0,20.392,1,1,4356,3.015143,1,3,1.098612,1.098612,1,.2,.04,2.0392 +0,1,66,9,5,0,0,0,0,1,0,2.49,2,0,4356,.9122827,0,5,1.609438,1.609438,1,.2,.04,.249 +0,.7453416,85,9,0,0,0,0,0,0,0,8.05,1,0,7225,2.085672,1,0,,-4.60517,0,4,16,.80500002 +0,.1815431,79,9,2,0,0,0,1,0,0,33.05,1,0,6241,3.498022,1,2,.6931472,.6931472,1,2.8,7.84,3.3049999 +0,1,76,11,6,0,0,0,0,1,0,8.494,2,0,5776,2.13936,0,6,1.791759,1.791759,1,2.2,4.84,.84940004 +0,1,70,8,3,0,0,0,1,1,1,8.494,0,0,4900,2.13936,0,3,1.098612,1.098612,1,1,1,.84940004 +0,1,70,12,2,0,0,1,0,0,0,10,1,1,4900,2.302585,0,2,.6931472,.6931472,1,1,1,1 +0,.891647,75,12,21,0,0,1,1,1,0,14.019,1,1,5625,2.640414,0,21,3.044523,3.044523,1,2,4,1.4019 +1,.2777778,67,14,2,0,0,1,1,0,0,36,4,1,4489,3.583519,0,2,.6931472,.6931472,1,.4,.16,3.6 +0,.7872064,71,6,2,3,0,1,0,0,0,27.717,2,1,5041,3.322046,0,2,.6931472,.6931472,1,1.2,1.44,2.7716999 +0,1,77,11,2,6,0,0,1,0,0,10.2,1,0,5929,2.322388,1,2,.6931472,.6931472,1,2.4,5.76,1.02 +0,.8709122,74,11,24,14,0,0,1,1,1,13.944,5,0,5476,2.635049,0,24,3.178054,3.178054,1,1.8,3.24,1.3944 +0,1,65,14,5,1,0,1,0,0,0,4.698,2,1,4225,1.547137,0,5,1.609438,1.609438,1,0,0,.4698 +0,1,69,12,6,1,0,1,1,1,0,4.698,2,1,4761,1.547137,0,6,1.791759,1.791759,1,.8,.64,.4698 +1,.6599104,66,14,16,1,0,1,0,1,1,12.729,4,1,4356,2.543883,0,16,2.772589,2.772589,1,.2,.04,1.2729 +0,.3799075,68,16,5,8,0,1,1,0,0,31.355,2,1,4624,3.445374,0,5,1.609438,1.609438,1,.6,.36,3.1355 +0,0,67,3,14,0,1,0,0,1,1,6,3,0,4489,1.791759,1,14,2.639057,2.639057,1,.4,.16,.6 +0,.5,72,11,6,0,1,0,1,1,1,14.4,3,0,5184,2.667228,1,6,1.791759,1.791759,1,1.4,1.96,1.44 +0,1,69,12,1,0,0,0,1,0,0,6,1,0,4761,1.791759,0,1,0,0,1,.8,.64,.6 +0,.7106599,80,15,2,1,0,0,1,0,0,19.7,1,0,6400,2.980619,0,2,.6931472,.6931472,1,3,9,1.9700001 +0,.974026,68,10,20,1,0,1,0,1,1,12.32,7,1,4624,2.511224,0,20,2.995732,2.995732,1,.6,.36,1.232 +0,1,65,14,10,4,0,1,0,0,0,21.669,6,1,4225,3.075883,0,10,2.302585,2.302585,1,0,0,2.1669001 +0,.6785795,70,16,2,0,0,0,0,0,0,22.049,1,0,4900,3.093267,0,2,.6931472,.6931472,1,1,1,2.2049 +0,0,66,16,1,1,0,0,1,0,0,21.131,0,0,4356,3.050741,0,1,0,0,1,.2,.04,2.1131001 +0,0,68,10,1,0,1,0,1,1,1,6.36,4,0,4624,1.850028,1,1,0,0,1,.6,.36,.63600001 +0,.1610858,75,16,8,6,0,0,1,0,0,56.293,0,0,5625,4.03057,0,8,2.079442,2.079442,1,2,4,5.6292999 +0,1,68,8,6,0,1,0,1,1,1,8.148,4,0,4624,2.097772,1,6,1.791759,1.791759,1,.6,.36,.81479998 +0,.1877151,80,15,7,2,0,0,0,0,0,47.945,1,0,6400,3.870054,0,7,1.94591,1.94591,1,3,9,4.7945 +0,.1832173,74,15,4,4,0,0,1,0,0,49.122,2,0,5476,3.894307,0,4,1.386294,1.386294,1,1.8,3.24,4.9122002 +0,.5074854,76,10,5,0,1,0,1,1,0,11.823,1,0,5776,2.470047,0,5,1.609438,1.609438,1,2.2,4.84,1.1823 +0,1,68,8,9,0,1,0,1,1,1,6.5,2,0,4624,1.871802,0,9,2.197225,2.197225,1,.6,.36,.65 +0,.3284522,66,13,1,7,0,1,0,0,0,36.535,1,1,4356,3.598271,0,1,0,0,1,.2,.04,3.6535 +0,.471235,66,12,2,16,0,1,1,0,0,25.465,0,1,4356,3.237305,0,2,.6931472,.6931472,1,.2,.04,2.5465 +0,.652404,69,16,6,0,0,0,0,0,0,33.444,1,0,4761,3.509872,0,6,1.791759,1.791759,1,.8,.64,3.3444 +0,0,67,12,6,1,0,0,1,0,0,11.625,2,0,4489,2.453158,0,6,1.791759,1.791759,1,.4,.16,1.1625 +0,.3947773,68,6,10,0,0,1,1,1,0,23.436,1,1,4624,3.154273,0,10,2.302585,2.302585,1,.6,.36,2.3436001 +0,.7331711,77,12,3,1,0,0,1,0,0,24.66,3,0,5929,3.205183,0,3,1.098612,1.098612,1,2.4,5.76,2.466 +0,.3186097,67,12,3,1,0,1,0,0,0,34.525,2,1,4489,3.541684,0,3,1.098612,1.098612,1,.4,.16,3.4525002 +0,.8458904,72,10,9,5,1,0,1,1,0,7.008,1,0,5184,1.947052,0,9,2.197225,2.197225,1,1.4,1.96,.70079999 +0,0,68,6,0,0,0,0,0,0,0,2.5,0,0,4624,.9162908,1,0,,-4.60517,0,.6,.36,.25 +0,0,66,6,2,1,1,0,1,0,0,20,1,0,4356,2.995732,1,2,.6931472,.6931472,1,.2,.04,2 +0,0,85,4,15,0,1,0,1,1,1,4.416,2,0,7225,1.485234,1,15,2.70805,2.70805,1,4,16,.44159999 +0,.3376367,65,10,3,0,0,1,0,0,0,26.878,1,1,4225,3.291308,1,3,1.098612,1.098612,1,0,0,2.6878 +0,.9501148,82,7,7,10,0,0,1,1,1,12.188,2,0,6724,2.500452,0,7,1.94591,1.94591,1,3.4,11.56,1.2188 +0,.2875817,67,12,7,2,0,1,0,0,0,38.25,4,1,4489,3.644144,0,7,1.94591,1.94591,1,.4,.16,3.825 +0,.8673469,85,8,3,0,0,1,1,0,0,9.8,1,1,7225,2.282382,0,3,1.098612,1.098612,1,4,16,.98000002 +0,.7857143,76,10,32,0,1,0,1,1,1,7,3,0,5776,1.94591,1,32,3.465736,3.465736,1,2.2,4.84,.7 +0,.1252257,79,17,3,6,0,1,0,0,0,42.651,0,1,6241,3.753051,0,3,1.098612,1.098612,1,2.8,7.84,4.2651001 +0,.1511361,79,15,11,7,0,1,1,1,1,35.339,3,1,6241,3.564987,0,11,2.397895,2.397895,1,2.8,7.84,3.5339001 +0,.85695,70,11,4,0,0,1,1,1,0,8.892,3,1,4900,2.185152,0,4,1.386294,1.386294,1,1,1,.88920002 +0,.85695,75,7,6,0,0,1,0,1,0,8.892,2,1,5625,2.185152,0,6,1.791759,1.791759,1,2,4,.88920002 +0,1,73,10,4,1,0,0,1,1,1,10.5,2,0,5329,2.351375,0,4,1.386294,1.386294,1,1.6,2.56,1.05 +0,.6044553,73,11,10,0,0,1,0,0,0,14.724,2,1,5329,2.689479,0,10,2.302585,2.302585,1,1.6,2.56,1.4724 +0,.6435643,85,9,11,7,0,0,0,1,0,20.2,4,0,7225,3.005683,0,11,2.397895,2.397895,1,4,16,2.0200001 +0,.523077,70,12,1,1,0,1,0,1,1,16.25,1,1,4900,2.788093,0,1,0,0,1,1,1,1.625 +0,.2956522,70,12,1,0,0,1,1,0,0,28.75,2,1,4900,3.358638,0,1,0,0,1,1,1,2.875 +0,1,84,2,10,16,1,0,1,1,1,15,3,0,7056,2.70805,1,10,2.302585,2.302585,1,3.8,14.44,1.5 +0,1,85,12,0,0,0,0,1,1,1,8.364,1,0,7225,2.123937,1,0,,-4.60517,0,4,16,.83640003 +0,.8333333,82,10,1,6,0,0,1,0,0,12,1,0,6724,2.484907,0,1,0,0,1,3.4,11.56,1.2 +0,.625,71,3,4,1,1,0,0,0,1,4,3,0,5041,1.386294,1,4,1.386294,1.386294,1,1.2,1.44,.4 +0,.3225806,66,5,3,0,1,0,1,1,1,7.75,4,0,4356,2.047693,1,3,1.098612,1.098612,1,.2,.04,.775 +0,1,85,11,1,0,0,0,1,1,1,6.24,2,0,7225,1.83098,0,1,0,0,1,4,16,.62399998 +0,0,71,12,2,0,0,1,1,0,0,1.5,1,1,5041,.4054651,0,2,.6931472,.6931472,1,1.2,1.44,.15 +1,0,76,16,6,0,0,1,0,0,0,66.5,2,1,5776,4.197202,0,6,1.791759,1.791759,1,2.2,4.84,6.65 +0,.9562639,71,12,1,1,0,1,1,1,0,13.49,2,1,5041,2.601949,0,1,0,0,1,1.2,1.44,1.349 +0,1,85,8,8,1,0,1,0,0,0,10.088,2,1,7225,2.311347,0,8,2.079442,2.079442,1,4,16,1.0088 +0,.3939394,85,11,3,2,0,1,1,0,0,9.9,1,1,7225,2.292535,0,3,1.098612,1.098612,1,4,16,.98999996 +0,.4017226,76,15,2,1,0,0,1,1,0,29.722,0,0,5776,3.391887,0,2,.6931472,.6931472,1,2.2,4.84,2.9722 +1,.3925234,66,11,9,1,1,0,1,1,0,12.84,5,0,4356,2.552565,1,9,2.197225,2.197225,1,.2,.04,1.284 +0,.4653417,73,17,20,3,0,1,0,0,0,10.315,3,1,5329,2.333599,0,20,2.995732,2.995732,1,1.6,2.56,1.0315 +0,.375,68,12,1,0,0,1,1,1,0,16,2,1,4624,2.772589,0,1,0,0,1,.6,.36,1.6 +0,1,83,11,13,0,1,0,1,1,1,7.404,4,0,6889,2.00202,0,13,2.564949,2.564949,1,3.6,12.96,.74039998 +0,0,85,12,7,0,1,0,1,1,1,6.768,3,0,7225,1.912206,1,7,1.94591,1.94591,1,4,16,.67680001 +0,1,85,8,5,0,0,0,1,1,0,9.6,1,0,7225,2.261763,0,5,1.609438,1.609438,1,4,16,.96000004 +0,.1643609,77,16,6,5,0,0,0,0,0,69.968,3,0,5929,4.248038,0,6,1.791759,1.791759,1,2.4,5.76,6.9968002 +0,.1764913,76,14,1,6,0,0,1,0,0,65.159,2,0,5776,4.17683,0,1,0,0,1,2.2,4.84,6.5158997 +0,1,79,16,3,0,0,1,1,1,1,10,0,1,6241,2.302585,0,3,1.098612,1.098612,1,2.8,7.84,1 +0,.1699411,65,12,2,0,0,1,0,0,0,50.9,1,1,4225,3.929863,0,2,.6931472,.6931472,1,0,0,5.0900002 +0,.2431748,74,16,9,1,0,0,1,1,0,16.593,3,0,5476,2.808981,0,9,2.197225,2.197225,1,1.8,3.24,1.6593 +0,.2529146,77,17,11,2,0,1,0,0,0,15.954,0,1,5929,2.76971,0,11,2.397895,2.397895,1,2.4,5.76,1.5954 +0,1,73,12,11,0,0,0,0,1,0,8.724,3,0,5329,2.166078,0,11,2.397895,2.397895,1,1.6,2.56,.8724 +0,.5172414,77,14,4,0,0,0,0,1,1,14.5,2,0,5929,2.674149,0,4,1.386294,1.386294,1,2.4,5.76,1.45 +0,1,67,6,2,0,1,0,1,0,0,10.8,2,0,4489,2.379546,1,2,.6931472,.6931472,1,.4,.16,1.08 +0,.9817385,73,11,5,0,0,0,1,1,1,8.214,3,0,5329,2.10584,0,5,1.609438,1.609438,1,1.6,2.56,.82139997 +0,.4666667,74,16,2,0,0,1,0,0,0,22.5,0,1,5476,3.113515,0,2,.6931472,.6931472,1,1.8,3.24,2.25 +0,.4666667,69,14,1,0,0,1,1,0,0,22.5,0,1,4761,3.113515,0,1,0,0,1,.8,.64,2.25 +0,.5,81,9,4,0,0,0,1,1,1,24,2,0,6561,3.178054,0,4,1.386294,1.386294,1,3.2,10.24,2.4 +0,.5425649,71,14,6,0,0,1,0,0,0,27.37,1,1,5041,3.309448,0,6,1.791759,1.791759,1,1.2,1.44,2.7370001 +0,.3414368,70,17,13,7,0,1,1,1,1,29.288,4,1,4900,3.377178,0,13,2.564949,2.564949,1,1,1,2.9288 +0,.3384477,71,15,1,1,0,1,0,0,0,44.32,1,1,5041,3.791436,0,1,0,0,1,1.2,1.44,4.432 +0,.7175452,76,12,4,3,0,1,1,1,0,15.252,0,1,5776,2.724711,0,4,1.386294,1.386294,1,2.2,4.84,1.5252 +0,0,74,0,17,0,1,0,1,1,1,6,0,0,5476,1.791759,1,17,2.833213,2.833213,1,1.8,3.24,.6 +0,.4077418,82,12,13,0,0,1,1,0,0,26.919,1,1,6724,3.292832,0,13,2.564949,2.564949,1,3.4,11.56,2.6919001 +0,0,71,2,24,0,1,0,0,0,1,0,4,0,5041,,1,24,3.178054,3.178054,1,1.2,1.44,0 +0,.4875819,70,12,8,0,1,0,0,1,1,19.689,5,0,4900,2.98006,0,8,2.079442,2.079442,1,1,1,1.9688999 +0,.4434191,69,8,0,1,0,0,1,0,0,24.708,2,0,4761,3.207127,1,0,,-4.60517,0,.8,.64,2.4708 +0,.0549819,80,12,9,4,0,1,1,1,1,18.206,4,1,6400,2.901751,0,9,2.197225,2.197225,1,3,9,1.8205999 +0,1,75,9,4,0,0,1,0,0,1,2.952,3,1,5625,1.082483,0,4,1.386294,1.386294,1,2,4,.29519999 +0,1,82,8,12,0,1,0,1,1,1,5.4,3,0,6724,1.686399,0,12,2.484907,2.484907,1,3.4,11.56,.54000001 +0,0,72,3,2,0,0,0,0,0,0,0,2,0,5184,,1,2,.6931472,.6931472,1,1.4,1.96,0 +0,.9487666,79,11,12,0,1,0,1,1,1,6.324,3,0,6241,1.844352,1,12,2.484907,2.484907,1,2.8,7.84,.63239999 +0,0,85,0,0,0,1,0,1,1,1,9.337,2,0,7225,2.233985,1,0,,-4.60517,0,4,16,.93369999 +0,.4138793,65,17,12,5,0,1,1,0,0,24.007,0,1,4225,3.178345,0,12,2.484907,2.484907,1,0,0,2.4007 +0,.1181552,71,12,0,7,0,1,0,0,0,76.171,0,1,5041,4.332981,0,0,,-4.60517,0,1.2,1.44,7.6170998 +0,.537037,81,8,35,0,0,1,1,1,1,19.44,4,1,6561,2.967333,0,35,3.555348,3.555348,1,3.2,10.24,1.9440001 +0,0,81,15,3,0,0,1,1,1,0,.2,4,1,6561,-1.609438,0,3,1.098612,1.098612,1,3.2,10.24,.02 +1,.1579682,65,7,1,0,0,1,0,1,0,70.951,1,1,4225,4.26199,1,1,0,0,1,0,0,7.0950996 +0,.7954546,75,14,0,0,0,1,1,0,0,13.2,1,1,5625,2.580217,0,0,,-4.60517,0,2,4,1.32 +0,.8223684,81,12,15,1,0,1,1,1,1,15.2,1,1,6561,2.721295,0,15,2.70805,2.70805,1,3.2,10.24,1.52 +0,.626476,69,12,3,0,1,0,1,0,0,14.481,0,0,4761,2.672837,1,3,1.098612,1.098612,1,.8,.64,1.4481 +0,.4034425,71,10,4,8,0,1,1,0,0,24.633,0,1,5041,3.204087,0,4,1.386294,1.386294,1,1.2,1.44,2.4632999 +0,.4069115,70,10,1,4,0,1,0,0,0,24.423,1,1,4900,3.195525,0,1,0,0,1,1,1,2.4423 +0,.9974269,66,12,5,0,0,1,0,0,0,19.432,2,1,4356,2.966921,0,5,1.609438,1.609438,1,.2,.04,1.9431999 +0,.1935484,66,10,0,2,0,1,1,0,0,31,0,1,4356,3.433987,0,0,,-4.60517,0,.2,.04,3.1 +0,.1935484,69,10,4,0,0,1,0,0,0,31,0,1,4761,3.433987,0,4,1.386294,1.386294,1,.8,.64,3.1 +0,.880971,77,10,5,2,0,1,0,0,0,12.77,2,1,5929,2.547099,0,5,1.609438,1.609438,1,2.4,5.76,1.277 +0,.880971,75,11,7,4,0,1,1,0,0,12.77,0,1,5625,2.547099,0,7,1.94591,1.94591,1,2,4,1.277 +0,.7377599,70,12,1,0,0,1,0,0,0,14.91,0,1,4900,2.702032,0,1,0,0,1,1,1,1.491 +0,.7377599,66,12,1,0,0,1,1,1,0,14.91,1,1,4356,2.702032,0,1,0,0,1,.2,.04,1.491 +0,0,66,2,1,0,0,1,1,0,0,11.016,0,1,4356,2.399349,1,1,0,0,1,.2,.04,1.1016 +0,.2083816,74,15,6,7,0,1,1,0,0,43.19,1,1,5476,3.765609,0,6,1.791759,1.791759,1,1.8,3.24,4.3189999 +0,.2037905,75,17,10,5,0,1,0,0,0,44.163,1,1,5625,3.787887,0,10,2.302585,2.302585,1,2,4,4.4162998 +0,.2614137,73,12,9,2,0,1,0,0,0,25.408,2,1,5329,3.235064,0,9,2.197225,2.197225,1,1.6,2.56,2.5408001 +0,.2656694,68,12,9,0,0,1,1,1,0,25.001,1,1,4624,3.218916,0,9,2.197225,2.197225,1,.6,.36,2.5000999 +0,.9130752,73,12,0,0,0,1,1,0,0,13.69,0,1,5329,2.616666,0,0,,-4.60517,0,1.6,2.56,1.369 +0,.2223811,83,13,0,6,0,0,0,1,0,62.955,1,0,6889,4.14242,0,0,,-4.60517,0,3.6,12.96,6.2955002 +0,.4390244,73,16,21,4,0,1,0,1,0,20.5,3,1,5329,3.020425,0,21,3.044523,3.044523,1,1.6,2.56,2.05 +0,.4390244,74,12,2,1,0,1,1,0,0,20.5,2,1,5476,3.020425,0,2,.6931472,.6931472,1,1.8,3.24,2.05 +0,.8918485,85,12,3,1,0,0,1,1,1,16.819,3,0,7225,2.822509,0,3,1.098612,1.098612,1,4,16,1.6819 +0,0,65,11,6,3,0,0,1,0,0,23.4,1,0,4225,3.152736,0,6,1.791759,1.791759,1,0,0,2.34 +0,0,68,12,0,0,0,1,0,0,0,19.297,1,1,4624,2.95995,0,0,,-4.60517,0,.6,.36,1.9297001 +0,0,67,13,1,4,0,1,1,0,0,12.821,1,1,4489,2.551085,0,1,0,0,1,.4,.16,1.2821 +1,.2164502,78,12,1,0,0,1,1,0,0,36.96,1,1,6084,3.609836,1,1,0,0,1,2.6,6.76,3.6959999 +1,.4328358,65,6,6,1,0,1,0,1,1,33.5,4,1,4225,3.511545,0,6,1.791759,1.791759,1,0,0,3.35 +0,.9050593,79,12,14,32,0,0,1,0,0,11.049,3,0,6241,2.40234,0,14,2.639057,2.639057,1,2.8,7.84,1.1049 +0,.167336,66,12,4,2,0,1,0,1,0,35.856,1,1,4356,3.579511,1,4,1.386294,1.386294,1,.2,.04,3.5855999 +0,0,75,14,8,0,1,0,1,0,0,5.544,2,0,5625,1.712716,1,8,2.079442,2.079442,1,2,4,.55440001 +0,.5647559,67,16,12,3,0,1,1,0,0,14.13,2,1,4489,2.6483,0,12,2.484907,2.484907,1,.4,.16,1.413 +0,.2206126,69,17,5,4,0,1,0,0,0,36.172,1,1,4761,3.588285,0,5,1.609438,1.609438,1,.8,.64,3.6172001 +0,0,73,12,4,0,0,0,1,1,0,.75,3,0,5329,-.2876821,1,4,1.386294,1.386294,1,1.6,2.56,.075 +0,0,67,8,5,0,0,0,1,0,0,1.926,1,0,4489,.6554453,0,5,1.609438,1.609438,1,.4,.16,.1926 +0,.8709634,75,4,0,0,0,0,0,0,0,14.926,0,0,5625,2.703105,0,0,,-4.60517,0,2,4,1.4926 +0,.9969096,75,11,15,0,0,1,1,1,1,10.031,3,1,5625,2.30568,0,15,2.70805,2.70805,1,2,4,1.0031 +0,.3674676,81,12,1,3,0,1,1,1,1,34.833,2,1,6561,3.550565,0,1,0,0,1,3.2,10.24,3.4833 +0,.3666886,83,12,11,4,0,0,0,1,0,34.907,1,0,6889,3.552687,0,11,2.397895,2.397895,1,3.6,12.96,3.4907001 +0,.43478,77,11,6,1,0,0,0,0,0,50.184,0,0,5929,3.915696,0,6,1.791759,1.791759,1,2.4,5.76,5.0183998 +0,.785782,73,13,27,7,0,1,0,1,1,12.66,5,1,5329,2.538447,0,27,3.295837,3.295837,1,1.6,2.56,1.266 +0,.5590062,79,17,13,58,0,1,0,1,1,16.1,3,1,6241,2.778819,0,13,2.564949,2.564949,1,2.8,7.84,1.61 +0,.5590062,75,14,8,1,0,1,1,1,1,16.1,2,1,5625,2.778819,0,8,2.079442,2.079442,1,2,4,1.61 +0,.2240449,66,12,3,1,0,0,1,0,0,4.633,2,0,4356,1.533205,0,3,1.098612,1.098612,1,.2,.04,.46329999 +0,.159992,68,16,5,0,0,1,1,0,0,60.003,3,1,4624,4.094395,1,5,1.609438,1.609438,1,.6,.36,6.0002998 +0,.7914398,66,14,6,5,0,0,1,1,0,15.794,0,0,4356,2.75963,0,6,1.791759,1.791759,1,.2,.04,1.5794 +0,1,65,8,10,3,0,0,1,1,1,2.988,2,0,4225,1.094604,1,10,2.302585,2.302585,1,0,0,.29879999 +0,.8571429,74,5,0,0,1,0,1,0,0,7,0,0,5476,1.94591,1,0,,-4.60517,0,1.8,3.24,.7 +0,0,85,11,2,0,1,0,1,1,1,0,2,0,7225,,0,2,.6931472,.6931472,1,4,16,0 +0,.6075949,83,6,4,1,0,1,0,1,0,15.8,2,1,6889,2.76001,0,4,1.386294,1.386294,1,3.6,12.96,1.58 +0,.6075949,80,12,21,10,0,1,1,1,0,15.8,3,1,6400,2.76001,0,21,3.044523,3.044523,1,3,9,1.58 +0,.9694245,85,8,14,1,1,0,1,1,1,6.672,4,0,7225,1.89792,0,14,2.639057,2.639057,1,4,16,.66719999 +0,.5865922,66,3,0,0,0,0,0,0,0,14.32,2,0,4356,2.661657,1,0,,-4.60517,0,.2,.04,1.432 +0,.1679167,78,16,6,2,0,1,0,1,0,35.732,2,1,6084,3.576047,0,6,1.791759,1.791759,1,2.6,6.76,3.5731998 +0,.1798238,76,15,8,12,0,1,1,1,0,33.366,4,1,5776,3.507537,0,8,2.079442,2.079442,1,2.2,4.84,3.3366001 +0,.2977254,80,16,15,3,0,1,0,0,0,41.985,0,1,6400,3.737312,0,15,2.70805,2.70805,1,3,9,4.1985001 +0,.300647,79,13,15,4,0,0,1,1,1,41.577,4,0,6241,3.727547,0,15,2.70805,2.70805,1,2.8,7.84,4.1577 +0,.2756184,66,3,0,0,1,0,0,0,0,8.49,3,0,4356,2.138889,1,0,,-4.60517,0,.2,.04,.84899998 +0,0,68,12,10,1,0,1,1,0,0,31.603,2,1,4624,3.453252,0,10,2.302585,2.302585,1,.6,.36,3.1603001 +0,.5454546,66,7,2,0,1,0,1,1,1,9.9,2,0,4356,2.292535,0,2,.6931472,.6931472,1,.2,.04,.98999996 +0,.2976633,75,8,1,0,0,1,0,0,0,40.314,0,1,5625,3.696699,1,1,0,0,1,2,4,4.0313999 +0,.6923077,82,13,5,3,0,1,1,1,0,13,3,1,6724,2.564949,0,5,1.609438,1.609438,1,3.4,11.56,1.3 +0,1,75,8,5,0,1,0,1,0,0,4.8,1,0,5625,1.568616,1,5,1.609438,1.609438,1,2,4,.48000002 +0,.8163266,81,16,9,21,0,1,0,0,0,9.8,0,1,6561,2.282382,0,9,2.197225,2.197225,1,3.2,10.24,.98000002 +0,.8163266,79,12,41,5,0,1,1,1,1,9.8,1,1,6241,2.282382,0,41,3.713572,3.713572,1,2.8,7.84,.98000002 +1,.0625,65,7,1,0,0,1,0,0,0,19.2,1,1,4225,2.95491,0,1,0,0,1,0,0,1.9200001 +0,.6930007,84,13,3,0,0,1,1,1,1,11.544,0,1,7056,2.446166,0,3,1.098612,1.098612,1,3.8,14.44,1.1544 +0,.5549103,71,12,1,3,0,1,1,0,0,23.247,0,1,5041,3.146176,0,1,0,0,1,1.2,1.44,2.3247 +0,.6741573,72,14,6,4,0,0,1,0,0,13.35,2,0,5184,2.591516,0,6,1.791759,1.791759,1,1.4,1.96,1.335 +0,.315093,74,16,7,0,0,1,0,0,0,28.563,2,1,5476,3.352112,0,7,1.94591,1.94591,1,1.8,3.24,2.8563 +1,.4382818,75,11,6,0,0,1,0,0,0,41.252,1,1,5625,3.7197,0,6,1.791759,1.791759,1,2,4,4.1251999 +0,.2681913,73,16,24,15,0,1,1,0,0,26.455,4,1,5329,3.275445,0,24,3.178054,3.178054,1,1.6,2.56,2.6455 +0,.2643049,81,17,13,4,0,1,0,0,0,26.844,2,1,6561,3.290042,0,13,2.564949,2.564949,1,3.2,10.24,2.6844 +0,0,67,9,9,0,0,1,0,1,1,26,3,1,4489,3.258096,0,9,2.197225,2.197225,1,.4,.16,2.6 +0,1,85,8,4,0,0,1,1,1,1,12,4,1,7225,2.484907,0,4,1.386294,1.386294,1,4,16,1.2 +1,.2483642,65,6,5,0,0,1,0,0,0,36.986,2,1,4225,3.610539,1,5,1.609438,1.609438,1,0,0,3.6986 +0,.8286327,85,8,0,0,0,0,1,1,0,5.602,1,0,7225,1.723124,1,0,,-4.60517,0,4,16,.56020002 +0,.628443,83,14,10,1,0,0,1,1,0,13.796,2,0,6889,2.624379,0,10,2.302585,2.302585,1,3.6,12.96,1.3796 +0,0,83,7,2,0,1,0,0,0,0,8.007,1,0,6889,2.080316,0,2,.6931472,.6931472,1,3.6,12.96,.8007 +0,.2714932,78,8,0,0,0,1,0,0,0,55.25,1,1,6084,4.011868,0,0,,-4.60517,0,2.6,6.76,5.525 +0,.0839563,80,15,1,0,0,1,1,0,0,153.437,1,1,6400,5.03329,0,1,0,0,1,3,9,15.3437 +0,.984665,85,9,10,0,1,0,0,1,1,6.195,4,0,7225,1.823743,1,10,2.302585,2.302585,1,4,16,.61950002 +0,.9757634,85,11,8,0,0,0,1,0,0,8.252,2,0,7225,2.110456,0,8,2.079442,2.079442,1,4,16,.82519999 +0,.500775,82,12,4,4,0,0,1,0,0,16.774,1,0,6724,2.81983,0,4,1.386294,1.386294,1,3.4,11.56,1.6774 +0,.9944994,66,12,4,2,0,1,1,0,0,18.18,2,1,4356,2.900322,0,4,1.386294,1.386294,1,.2,.04,1.818 +0,.2488646,77,8,15,1,0,0,0,0,0,48.219,1,0,5929,3.875753,0,15,2.70805,2.70805,1,2.4,5.76,4.8219002 +0,.5086963,67,17,6,1,0,0,0,0,0,42.892,2,0,4489,3.758685,0,6,1.791759,1.791759,1,.4,.16,4.2891998 +0,.516475,68,14,7,1,0,0,1,0,0,42.246,2,0,4624,3.74351,0,7,1.94591,1.94591,1,.6,.36,4.2245998 +0,.3026024,82,12,5,7,0,1,1,1,1,19.828,3,1,6724,2.987095,1,5,1.609438,1.609438,1,3.4,11.56,1.9827999 +0,1,85,12,2,7,0,1,1,1,1,11,3,1,7225,2.397895,0,2,.6931472,.6931472,1,4,16,1.1 +0,.467495,80,8,1,0,1,0,1,1,1,4.507,1,0,6400,1.505632,0,1,0,0,1,3,9,.4507 +0,0,80,17,2,0,0,1,1,1,1,0,2,1,6400,,1,2,.6931472,.6931472,1,3,9,0 +0,.3506416,69,12,2,0,0,0,1,0,0,51.748,1,0,4761,3.946386,1,2,.6931472,.6931472,1,.8,.64,5.1748001 +0,1,75,8,5,0,0,1,1,0,0,8,1,1,5625,2.079442,1,5,1.609438,1.609438,1,2,4,.8 +0,.9643977,85,12,2,0,0,1,1,1,1,12.443,4,1,7225,2.521158,0,2,.6931472,.6931472,1,4,16,1.2443 +0,.4458432,76,14,8,1,0,1,0,1,0,30.504,3,1,5776,3.417858,0,8,2.079442,2.079442,1,2.2,4.84,3.0504 +0,.4249469,74,13,15,8,0,1,1,0,0,32.004,1,1,5476,3.465861,0,15,2.70805,2.70805,1,1.8,3.24,3.2004002 +0,.4400848,76,4,0,0,0,0,0,0,0,5.658,0,0,5776,1.73307,1,0,,-4.60517,0,2.2,4.84,.5658 +0,.775,73,3,4,0,0,0,1,0,0,10,4,0,5329,2.302585,1,4,1.386294,1.386294,1,1.6,2.56,1 +0,.775,76,4,0,0,0,0,0,0,0,10,0,0,5776,2.302585,1,0,,-4.60517,0,2.2,4.84,1 +0,.2735026,79,16,25,5,0,1,0,1,1,40.219,4,1,6241,3.69434,0,25,3.218876,3.218876,1,2.8,7.84,4.0219002 +0,.9707329,85,14,8,2,0,0,1,1,1,8.542,4,0,7225,2.144995,0,8,2.079442,2.079442,1,4,16,.85419998 +0,.5517454,67,12,8,0,0,1,0,1,1,35.694,2,1,4489,3.574983,0,8,2.079442,2.079442,1,.4,.16,3.5694 +0,.8696597,85,14,1,0,0,1,1,1,0,9.199,1,1,7225,2.219095,0,1,0,0,1,4,16,.91990004 +1,0,72,4,1,0,0,1,0,0,0,27.068,2,1,5184,3.298352,0,1,0,0,1,1.4,1.96,2.7068001 +1,.2803176,67,14,6,0,0,1,0,1,0,69.143,0,1,4489,4.236177,0,6,1.791759,1.791759,1,.4,.16,6.9142998 +0,0,85,12,1,0,0,1,1,1,1,0,0,1,7225,,0,1,0,0,1,4,16,0 +0,1,82,12,19,0,1,0,1,1,1,3.708,6,0,6724,1.310493,1,19,2.944439,2.944439,1,3.4,11.56,.37079999 +0,.1194487,65,10,18,4,0,1,1,1,1,11.754,1,1,4225,2.464194,0,18,2.890372,2.890372,1,0,0,1.1754 +0,0,69,17,5,5,0,1,1,1,0,100.141,2,1,4761,4.606579,0,5,1.609438,1.609438,1,.8,.64,10.0141 +0,.48504,85,15,6,0,0,1,1,0,0,19.619,0,1,7225,2.976498,0,6,1.791759,1.791759,1,4,16,1.9618999 +0,1,74,9,0,0,0,0,1,1,1,5.04,3,0,5476,1.617406,1,0,,-4.60517,0,1.8,3.24,.504 +0,.965251,79,6,12,0,1,0,0,0,0,6.216,1,0,6241,1.827127,1,12,2.484907,2.484907,1,2.8,7.84,.62160001 +0,.845815,70,12,31,3,0,0,0,0,0,11.35,1,0,4900,2.429218,0,31,3.433987,3.433987,1,1,1,1.135 +0,.845815,71,12,0,0,0,0,1,0,0,11.35,0,0,5041,2.429218,0,0,,-4.60517,0,1.2,1.44,1.135 +0,1,75,9,7,5,1,0,1,1,1,3.2,3,0,5625,1.163151,0,7,1.94591,1.94591,1,2,4,.32 +0,0,76,10,9,1,1,0,1,1,0,7.2,2,0,5776,1.974081,0,9,2.197225,2.197225,1,2.2,4.84,.71999998 +0,0,80,7,8,0,0,0,1,0,0,6.164,2,0,6400,1.818726,1,8,2.079442,2.079442,1,3,9,.6164 +0,0,71,8,14,1,0,0,1,0,0,5.888,2,0,5041,1.772916,1,14,2.639057,2.639057,1,1.2,1.44,.5888 +0,.612503,72,9,5,0,0,1,1,0,0,12.653,2,1,5184,2.537894,1,5,1.609438,1.609438,1,1.4,1.96,1.2653 +0,.612503,79,8,3,0,0,1,0,0,0,12.653,1,1,6241,2.537894,1,3,1.098612,1.098612,1,2.8,7.84,1.2653 +0,0,85,6,19,0,1,0,0,1,0,4.8,1,0,7225,1.568616,1,19,2.944439,2.944439,1,4,16,.48000002 +0,0,82,11,12,0,1,0,1,1,0,4.8,5,0,6724,1.568616,1,12,2.484907,2.484907,1,3.4,11.56,.48000002 +1,.1967222,68,15,9,0,0,1,0,0,0,72.488,1,1,4624,4.283421,0,9,2.197225,2.197225,1,.6,.36,7.2487999 +0,1,72,3,3,0,1,0,0,0,0,6.8,2,0,5184,1.916923,1,3,1.098612,1.098612,1,1.4,1.96,.68000002 +0,.3333333,75,11,8,2,0,1,1,0,0,37.5,0,1,5625,3.624341,0,8,2.079442,2.079442,1,2,4,3.75 +0,1,80,10,10,3,0,1,0,0,0,12.5,1,1,6400,2.525729,0,10,2.302585,2.302585,1,3,9,1.25 +0,.3972713,76,16,37,2,0,1,0,1,1,49.84,5,1,5776,3.908818,0,37,3.610918,3.610918,1,2.2,4.84,4.984 +0,.5938864,70,11,9,0,0,1,0,1,1,17.175,4,1,4900,2.843455,0,9,2.197225,2.197225,1,1,1,1.7174999 +0,.5006135,67,10,7,2,0,1,1,1,1,20.375,3,1,4489,3.014309,0,7,1.94591,1.94591,1,.4,.16,2.0375 +0,.266159,67,16,9,4,0,1,0,0,0,54.103,3,1,4489,3.99089,0,9,2.197225,2.197225,1,.4,.16,5.4103001 +0,.9422907,80,12,2,15,0,0,1,0,0,14.729,2,0,6400,2.689818,0,2,.6931472,.6931472,1,3,9,1.4729 +0,.8440413,68,12,11,3,0,1,1,0,0,7.938,2,1,4624,2.071661,1,11,2.397895,2.397895,1,.6,.36,.79380002 +0,0,65,17,12,5,0,1,0,0,0,0,2,1,4225,,0,12,2.484907,2.484907,1,0,0,0 +0,.5,70,11,7,0,1,0,0,1,0,17.4,0,0,4900,2.85647,0,7,1.94591,1.94591,1,1,1,1.74 +0,.6503497,80,8,12,0,0,0,0,1,1,8.58,2,0,6400,2.149434,0,12,2.484907,2.484907,1,3,9,.85799999 +0,0,76,9,18,3,0,1,0,0,0,16.256,1,1,5776,2.788462,0,18,2.890372,2.890372,1,2.2,4.84,1.6256001 +0,0,73,12,5,2,0,1,1,0,0,14.204,1,1,5329,2.653524,0,5,1.609438,1.609438,1,1.6,2.56,1.4204 +0,.3377483,72,12,4,0,0,1,0,1,1,22.65,3,1,5184,3.12016,1,4,1.386294,1.386294,1,1.4,1.96,2.265 +0,.3377483,73,13,2,1,0,1,1,1,1,22.65,3,1,5329,3.12016,1,2,.6931472,.6931472,1,1.6,2.56,2.265 +0,0,70,8,9,0,0,1,0,0,0,17.438,3,1,4900,2.858652,1,9,2.197225,2.197225,1,1,1,1.7438 +0,.8230088,85,12,6,0,0,1,1,1,1,11.3,0,1,7225,2.424803,0,6,1.791759,1.791759,1,4,16,1.13 +0,.5575221,72,8,6,2,0,1,1,1,1,13.56,3,1,5184,2.607124,0,6,1.791759,1.791759,1,1.4,1.96,1.356 +0,.7587013,65,12,0,0,0,1,0,0,0,11.119,3,1,4225,2.408655,0,0,,-4.60517,0,0,0,1.1119 +0,.3983942,69,16,4,0,0,0,0,0,0,32.631,0,0,4761,3.485263,0,4,1.386294,1.386294,1,.8,.64,3.2631001 +0,.1831549,68,16,4,2,0,1,0,0,0,46.245,1,1,4624,3.833953,0,4,1.386294,1.386294,1,.6,.36,4.6244999 +0,1,72,2,0,0,1,0,1,0,0,7,2,0,5184,1.94591,1,0,,-4.60517,0,1.4,1.96,.7 +0,.3116172,65,17,21,1,0,1,0,0,0,46.018,3,1,4225,3.829033,0,21,3.044523,3.044523,1,0,0,4.6018002 +0,.3116172,65,13,3,2,0,1,1,0,0,46.018,3,1,4225,3.829033,0,3,1.098612,1.098612,1,0,0,4.6018002 +0,.8453039,65,6,3,0,1,0,0,1,1,8.688,4,0,4225,2.161943,0,3,1.098612,1.098612,1,0,0,.86879997 +0,1,77,5,8,1,0,0,1,1,1,7.404,2,0,5929,2.00202,0,8,2.079442,2.079442,1,2.4,5.76,.74039998 +0,.8058297,77,12,12,51,0,0,0,0,0,10.841,1,0,5929,2.383335,0,12,2.484907,2.484907,1,2.4,5.76,1.0841 +0,.8058297,78,13,9,9,0,0,1,1,0,10.841,2,0,6084,2.383335,0,9,2.197225,2.197225,1,2.6,6.76,1.0841 +0,.8240563,73,3,6,0,1,0,1,1,1,9.378,2,0,5329,2.238367,1,6,1.791759,1.791759,1,1.6,2.56,.93780003 +0,.8022923,81,11,9,1,1,0,1,1,1,13.96,4,0,6561,2.636196,0,9,2.197225,2.197225,1,3.2,10.24,1.396 +0,0,79,11,9,0,0,1,1,1,1,.425,4,1,6241,-.8556661,0,9,2.197225,2.197225,1,2.8,7.84,.0425 +0,0,85,9,1,0,0,1,0,1,0,.425,3,1,7225,-.8556661,0,1,0,0,1,4,16,.0425 +0,.4611249,71,8,4,0,0,1,0,0,0,42.032,3,1,5041,3.738431,0,4,1.386294,1.386294,1,1.2,1.44,4.2032001 +0,1,66,12,1,0,0,0,1,1,0,12,1,0,4356,2.484907,0,1,0,0,1,.2,.04,1.2 +0,1,85,9,13,0,1,0,1,1,1,5.904,2,0,7225,1.77563,0,13,2.564949,2.564949,1,4,16,.59039998 +0,.2124078,68,12,6,8,0,1,1,1,0,17.344,3,1,4624,2.853247,0,6,1.791759,1.791759,1,.6,.36,1.7344 +0,.1667798,65,12,3,1,0,1,0,0,1,22.089,3,1,4225,3.09508,0,3,1.098612,1.098612,1,0,0,2.2089001 +0,.9749303,83,7,7,0,1,0,0,1,1,4.308,2,0,6889,1.460474,1,7,1.94591,1.94591,1,3.6,12.96,.43080001 +0,.4127358,77,9,14,0,1,0,1,1,0,10.176,1,0,5929,2.320032,1,14,2.639057,2.639057,1,2.4,5.76,1.0176 +0,1,81,7,4,0,1,0,1,0,0,6.624,0,0,6561,1.890699,1,4,1.386294,1.386294,1,3.2,10.24,.66240001 +0,1,85,2,3,0,0,0,0,1,0,9,3,0,7225,2.197225,1,3,1.098612,1.098612,1,4,16,.9 +0,.4865983,80,12,1,0,0,1,0,1,1,24.661,3,1,6400,3.205223,0,1,0,0,1,3,9,2.4660999 +0,.2540466,74,12,5,1,0,1,0,1,0,39.725,1,1,5476,3.681981,0,5,1.609438,1.609438,1,1.8,3.24,3.9724998 +0,.2633337,70,13,16,2,0,1,1,1,0,38.324,1,1,4900,3.646076,0,16,2.772589,2.772589,1,1,1,3.8324001 +0,1,74,16,4,2,0,0,1,0,0,8.4,2,0,5476,2.128232,1,4,1.386294,1.386294,1,1.8,3.24,.83999996 +0,1,77,7,4,0,0,0,0,0,0,.676,0,0,5929,-.3915622,1,4,1.386294,1.386294,1,2.4,5.76,.0676 +0,1,71,7,4,17,0,0,1,0,0,.676,2,0,5041,-.3915622,1,4,1.386294,1.386294,1,1.2,1.44,.0676 +0,.390301,72,16,14,42,0,1,1,0,0,55.903,0,1,5184,4.023618,0,14,2.639057,2.639057,1,1.4,1.96,5.5903 +0,0,70,17,17,15,0,1,0,1,1,42.603,2,1,4900,3.751925,0,17,2.833213,2.833213,1,1,1,4.2603001 +0,0,85,1,3,0,1,0,0,1,1,0,0,0,7225,,0,3,1.098612,1.098612,1,4,16,0 +0,0,76,1,2,0,1,0,1,1,1,0,2,0,5776,,0,2,.6931472,.6931472,1,2.2,4.84,0 +0,.4411326,85,0,4,2,1,0,1,1,1,21.472,4,0,7225,3.06675,0,4,1.386294,1.386294,1,4,16,2.1472 +0,1,66,11,0,0,0,1,0,0,0,8.032,0,1,4356,2.083434,1,0,,-4.60517,0,.2,.04,.80319996 +0,1,71,8,6,1,1,0,0,0,0,6,2,0,5041,1.791759,1,6,1.791759,1.791759,1,1.2,1.44,.6 +0,.3810472,69,12,11,1,0,0,1,0,0,28.112,2,0,4761,3.336196,0,11,2.397895,2.397895,1,.8,.64,2.8112 +0,1,71,12,13,5,0,1,0,1,0,11.316,2,1,5041,2.426218,0,13,2.564949,2.564949,1,1.2,1.44,1.1316 +0,1,76,14,4,0,0,0,0,0,0,10,2,0,5776,2.302585,0,4,1.386294,1.386294,1,2.2,4.84,1 +0,1,67,12,0,0,0,0,1,0,0,10,0,0,4489,2.302585,0,0,,-4.60517,0,.4,.16,1 +0,.4,76,11,13,10,0,0,0,0,0,30,1,0,5776,3.401197,0,13,2.564949,2.564949,1,2.2,4.84,3 +0,.7117065,85,14,16,1,0,0,0,1,1,20.604,1,0,7225,3.025485,0,16,2.772589,2.772589,1,4,16,2.0604 +0,1,74,12,1,0,0,0,1,0,0,17.689,1,0,5476,2.872943,1,1,0,0,1,1.8,3.24,1.7688999 +0,0,79,7,2,0,0,1,0,0,0,6.09,1,1,6241,1.806648,0,2,.6931472,.6931472,1,2.8,7.84,.60900002 +0,.8700674,85,12,9,162,0,1,0,1,1,20.78,3,1,7225,3.033991,0,9,2.197225,2.197225,1,4,16,2.0780001 +0,.952381,78,6,7,0,0,0,0,1,0,8.4,4,0,6084,2.128232,0,7,1.94591,1.94591,1,2.6,6.76,.83999996 +0,1,72,7,2,0,0,0,0,0,0,9.472,1,0,5184,2.24834,0,2,.6931472,.6931472,1,1.4,1.96,.94720001 +0,.6570477,68,9,1,0,0,0,1,0,0,14.416,1,0,4624,2.668339,0,1,0,0,1,.6,.36,1.4416 +0,.3650428,72,13,5,12,0,1,0,0,0,23.011,1,1,5184,3.135972,0,5,1.609438,1.609438,1,1.4,1.96,2.3011 +0,.3650428,69,12,0,1,0,1,1,0,0,23.011,0,1,4761,3.135972,0,0,,-4.60517,0,.8,.64,2.3011 +0,1,73,8,0,0,0,0,1,1,0,8,0,0,5329,2.079442,1,0,,-4.60517,0,1.6,2.56,.8 +0,.5354474,80,12,27,4,0,1,0,1,1,17.66,2,1,6400,2.871302,0,27,3.295837,3.295837,1,3,9,1.766 +0,.5354474,79,12,14,10,0,1,1,1,1,17.66,4,1,6241,2.871302,0,14,2.639057,2.639057,1,2.8,7.84,1.766 +0,.0480077,74,17,4,2,0,1,0,1,0,141.894,2,1,5476,4.955081,0,4,1.386294,1.386294,1,1.8,3.24,14.1894 +0,0,68,13,30,0,1,0,1,1,1,0,6,0,4624,,1,30,3.401197,3.401197,1,.6,.36,0 +0,1,82,4,7,0,1,0,1,0,0,9,1,0,6724,2.197225,1,7,1.94591,1.94591,1,3.4,11.56,.9 +1,.0373651,65,12,2,0,0,1,0,1,1,148.133,2,1,4225,4.99811,0,2,.6931472,.6931472,1,0,0,14.8133 +0,.3583861,85,12,4,1,0,0,0,1,0,2.528,2,0,7225,.9274285,0,4,1.386294,1.386294,1,4,16,.25280001 +0,.3583861,83,12,0,2,0,0,1,1,0,2.528,1,0,6889,.9274285,0,0,,-4.60517,0,3.6,12.96,.25280001 +0,.720403,76,12,16,0,0,1,1,1,0,9.528,2,1,5776,2.254235,0,16,2.772589,2.772589,1,2.2,4.84,.95279999 +0,1,73,8,4,1,1,0,1,1,1,6.5,2,0,5329,1.871802,1,4,1.386294,1.386294,1,1.6,2.56,.65 +1,.1753243,66,16,0,0,0,1,0,0,0,79.795,1,1,4356,4.379461,0,0,,-4.60517,0,.2,.04,7.9794998 +1,0,65,11,11,0,0,1,0,0,0,15.288,0,1,4225,2.727068,0,11,2.397895,2.397895,1,0,0,1.5288 +0,.4545014,65,12,6,0,0,1,1,1,0,18.561,0,1,4225,2.921063,0,6,1.791759,1.791759,1,0,0,1.8561001 +0,.7953196,81,10,22,3,0,1,1,1,0,22.733,4,1,6561,3.123818,0,22,3.091043,3.091043,1,3.2,10.24,2.2733 +0,.75,79,14,16,13,0,1,1,1,1,3.6,2,1,6241,1.280934,0,16,2.772589,2.772589,1,2.8,7.84,.35999999 +0,.75,79,14,9,18,0,1,0,0,0,3.6,2,1,6241,1.280934,0,9,2.197225,2.197225,1,2.8,7.84,.35999999 +0,.1519644,85,17,9,2,0,1,1,1,0,43.168,4,1,7225,3.7651,0,9,2.197225,2.197225,1,4,16,4.3167999 +0,.3090249,66,12,11,0,0,1,1,0,0,47.103,3,1,4356,3.852337,0,11,2.397895,2.397895,1,.2,.04,4.7103001 +0,1,85,16,0,0,0,1,1,1,1,7.2,0,1,7225,1.974081,0,0,,-4.60517,0,4,16,.71999998 +0,1,76,10,0,0,1,0,1,1,0,3.228,0,0,5776,1.171863,1,0,,-4.60517,0,2.2,4.84,.32279999 +0,.1468692,67,16,0,0,0,1,0,0,0,61.279,0,1,4489,4.115437,0,0,,-4.60517,0,.4,.16,6.1278999 +0,.1207454,67,16,20,8,0,1,1,1,0,74.537,3,1,4489,4.311296,0,20,2.995732,2.995732,1,.4,.16,7.4537003 +0,.3589744,83,12,6,0,1,0,1,1,0,9.36,1,0,6889,2.236445,1,6,1.791759,1.791759,1,3.6,12.96,.93599997 +0,0,76,3,6,0,1,0,1,0,0,0,3,0,5776,,0,6,1.791759,1.791759,1,2.2,4.84,0 +0,.9448819,82,12,4,0,0,0,1,1,0,15.24,2,0,6724,2.723923,0,4,1.386294,1.386294,1,3.4,11.56,1.524 +0,0,76,7,9,0,0,0,1,0,0,0,2,0,5776,,0,9,2.197225,2.197225,1,2.2,4.84,0 +0,.9771987,74,12,3,2,0,1,0,0,0,15.35,1,1,5476,2.731116,0,3,1.098612,1.098612,1,1.8,3.24,1.535 +0,.9771987,70,10,2,3,0,0,1,1,0,15.35,0,0,4900,2.731116,0,2,.6931472,.6931472,1,1,1,1.535 +0,0,70,3,10,0,1,0,0,1,1,6.5,4,0,4900,1.871802,1,10,2.302585,2.302585,1,1,1,.65 +0,1,66,8,1,0,1,0,1,1,0,9.928,3,0,4356,2.295359,0,1,0,0,1,.2,.04,.99280005 +0,.6777212,71,16,4,1,0,1,0,0,0,12.182,4,1,5041,2.499959,1,4,1.386294,1.386294,1,1.2,1.44,1.2182 +0,.6621201,79,12,25,25,0,1,1,1,1,15.103,5,1,6241,2.714893,0,25,3.218876,3.218876,1,2.8,7.84,1.5103 +0,1,76,10,5,0,0,0,1,0,0,7.404,3,0,5776,2.00202,0,5,1.609438,1.609438,1,2.2,4.84,.74039998 +0,.5345775,74,14,7,1,1,0,1,1,0,27.648,3,0,5476,3.319553,1,7,1.94591,1.94591,1,1.8,3.24,2.7648001 +0,.3030624,66,15,1,1,0,1,1,0,0,35.821,0,1,4356,3.578534,0,1,0,0,1,.2,.04,3.5820999 +0,1,67,8,5,0,0,0,0,1,1,11,4,0,4489,2.397895,0,5,1.609438,1.609438,1,.4,.16,1.1 +0,.7443082,78,9,0,0,1,0,0,1,0,6.852,1,0,6084,1.924541,1,0,,-4.60517,0,2.6,6.76,.68520002 +0,.768295,85,8,9,0,0,0,1,1,1,15.619,5,0,7225,2.748488,0,9,2.197225,2.197225,1,4,16,1.5619 +0,.4783763,85,8,20,2,0,0,0,1,1,21.088,3,0,7225,3.048704,0,20,2.995732,2.995732,1,4,16,2.1087999 +0,.621118,77,8,13,5,0,0,1,0,0,7.728,1,0,5929,2.04485,0,13,2.564949,2.564949,1,2.4,5.76,.77280002 +0,.5776418,74,10,20,1,0,0,1,0,0,14.715,1,0,5476,2.688867,0,20,2.995732,2.995732,1,1.8,3.24,1.4715 +0,.5776418,78,12,4,0,0,0,0,0,0,14.715,1,0,6084,2.688867,0,4,1.386294,1.386294,1,2.6,6.76,1.4715 +0,0,67,16,22,0,0,1,1,0,0,87.96,0,1,4489,4.476882,0,22,3.091043,3.091043,1,.4,.16,8.7959999 +0,.9840764,74,8,9,1,0,1,0,0,0,12.56,2,1,5476,2.530517,0,9,2.197225,2.197225,1,1.8,3.24,1.256 +0,.9840764,72,12,12,1,0,1,1,0,0,12.56,2,1,5184,2.530517,0,12,2.484907,2.484907,1,1.4,1.96,1.256 +0,.9746193,76,14,4,6,0,0,1,0,0,9.85,0,0,5776,2.287472,0,4,1.386294,1.386294,1,2.2,4.84,.98500004 +0,.3975375,65,12,4,1,0,1,0,0,0,36.223,1,1,4225,3.589694,0,4,1.386294,1.386294,1,0,0,3.6223 +0,.9062515,68,11,11,1,0,1,0,1,1,21.387,2,1,4624,3.062783,0,11,2.397895,2.397895,1,.6,.36,2.1386999 +0,.2636436,68,12,4,1,0,1,0,0,0,37.93,1,1,4624,3.635742,0,4,1.386294,1.386294,1,.6,.36,3.793 +0,.263727,66,13,4,2,0,1,1,0,0,37.918,2,1,4356,3.635426,0,4,1.386294,1.386294,1,.2,.04,3.7917999 +0,1,71,1,18,48,0,1,0,1,1,9.5,5,1,5041,2.251292,0,18,2.890372,2.890372,1,1.2,1.44,.95 +0,.8566533,85,2,3,0,1,0,0,1,0,7.004,2,0,7225,1.946481,1,3,1.098612,1.098612,1,4,16,.70040002 +0,.3822855,85,12,15,0,0,1,1,1,1,34.006,0,1,7225,3.526537,0,15,2.70805,2.70805,1,4,16,3.4006001 +0,0,70,13,5,13,0,0,1,0,0,22.695,1,0,4900,3.122145,0,5,1.609438,1.609438,1,1,1,2.2695 +0,0,66,14,0,0,0,1,0,0,0,0,0,1,4356,,1,0,,-4.60517,0,.2,.04,0 +0,.0383823,65,16,10,0,0,1,0,0,0,172.371,1,1,4225,5.149649,0,10,2.302585,2.302585,1,0,0,17.2371 +0,.1099524,65,16,4,0,0,1,1,0,0,72.304,0,1,4225,4.280879,0,4,1.386294,1.386294,1,0,0,7.2304001 +0,.4286939,74,7,18,3,1,0,1,1,1,13.996,2,0,5476,2.638772,0,18,2.890372,2.890372,1,1.8,3.24,1.3996 +0,.8415841,79,13,4,2,0,1,1,1,1,12.625,3,1,6241,2.535679,0,4,1.386294,1.386294,1,2.8,7.84,1.2625 +0,.8034027,84,12,2,0,0,1,0,0,0,13.225,2,1,7056,2.582109,0,2,.6931472,.6931472,1,3.8,14.44,1.3225 +0,.8634538,84,7,2,1,0,0,1,1,1,8.964,5,0,7056,2.193217,0,2,.6931472,.6931472,1,3.8,14.44,.89639997 +0,0,74,4,5,2,0,1,0,1,1,5.58,1,1,5476,1.719189,1,5,1.609438,1.609438,1,1.8,3.24,.55799999 +0,.8609272,77,11,11,12,0,1,1,0,1,7.55,4,1,5929,2.021548,0,11,2.397895,2.397895,1,2.4,5.76,.75500002 +0,.8609272,75,11,5,6,0,1,0,1,1,7.55,2,1,5625,2.021548,0,5,1.609438,1.609438,1,2,4,.75500002 +0,.9876543,82,12,14,0,0,1,0,0,0,5.67,1,1,6724,1.735189,0,14,2.639057,2.639057,1,3.4,11.56,.56700001 +0,.9876543,85,12,5,0,0,1,1,1,1,5.67,2,1,7225,1.735189,0,5,1.609438,1.609438,1,4,16,.56700001 +0,1,74,9,20,3,0,1,1,1,0,9.7,5,1,5476,2.272126,0,20,2.995732,2.995732,1,1.8,3.24,.96999998 +0,1,74,9,17,13,0,1,0,1,1,9.7,5,1,5476,2.272126,0,17,2.833213,2.833213,1,1.8,3.24,.96999998 +0,.9968848,79,12,6,0,0,0,1,1,0,11.235,3,0,6241,2.419034,0,6,1.791759,1.791759,1,2.8,7.84,1.1235 +0,1,65,11,1,0,0,1,0,0,0,9,1,1,4225,2.197225,0,1,0,0,1,0,0,.9 +0,0,72,4,9,0,1,0,1,0,0,.009,3,0,5184,-4.710531,1,9,2.197225,2.197225,1,1.4,1.96,.0009 +0,.6608949,77,12,7,0,0,1,1,1,1,15.131,2,1,5929,2.716746,0,7,1.94591,1.94591,1,2.4,5.76,1.5131 +0,.638796,65,6,5,0,0,0,1,1,1,14.95,5,0,4225,2.704711,1,5,1.609438,1.609438,1,0,0,1.495 +0,.3588607,65,6,2,0,0,0,0,0,1,26.612,2,0,4225,3.281362,1,2,.6931472,.6931472,1,0,0,2.6612 +0,.3706141,65,10,4,2,1,0,1,1,1,19.751,2,0,4225,2.983204,1,4,1.386294,1.386294,1,0,0,1.9750999 +0,1,68,12,2,0,1,0,1,1,1,6,4,0,4624,1.791759,0,2,.6931472,.6931472,1,.6,.36,.6 +0,.3739949,78,14,11,14,0,0,1,1,0,32.086,4,0,6084,3.46842,0,11,2.397895,2.397895,1,2.6,6.76,3.2085999 +0,1,68,11,1,0,1,0,0,0,0,6.72,2,0,4624,1.905088,1,1,0,0,1,.6,.36,.67199998 +0,.5635303,65,8,4,1,0,1,0,0,0,13.71,3,1,4225,2.618125,0,4,1.386294,1.386294,1,0,0,1.371 +0,.2769816,68,12,11,1,0,1,0,1,1,51.498,3,1,4624,3.941543,0,11,2.397895,2.397895,1,.6,.36,5.1498001 +0,.3968872,72,13,4,0,0,0,1,1,0,25.7,2,0,5184,3.246491,0,4,1.386294,1.386294,1,1.4,1.96,2.5700001 +0,.3968872,74,16,3,0,0,0,0,0,1,25.7,1,0,5476,3.246491,0,3,1.098612,1.098612,1,1.8,3.24,2.5700001 +0,.7821724,72,11,5,0,0,0,1,1,1,6.776,4,0,5184,1.913387,1,5,1.609438,1.609438,1,1.4,1.96,.6776 +0,.3455551,67,14,7,1,0,1,1,1,0,27.492,1,1,4489,3.313895,0,7,1.94591,1.94591,1,.4,.16,2.7492001 +0,.3455551,68,17,3,0,0,1,0,1,0,27.492,2,1,4624,3.313895,0,3,1.098612,1.098612,1,.6,.36,2.7492001 +0,.771857,79,4,13,0,0,1,0,0,0,9.402,3,1,6241,2.240922,0,13,2.564949,2.564949,1,2.8,7.84,.94020004 +0,.771857,78,4,12,5,0,1,1,1,1,9.402,6,1,6084,2.240922,0,12,2.484907,2.484907,1,2.6,6.76,.94020004 +0,0,65,10,18,6,0,1,0,1,1,21.054,2,1,4225,3.047091,0,18,2.890372,2.890372,1,0,0,2.1054001 +0,.5250722,85,7,5,0,0,1,1,1,1,26.663,1,1,7225,3.283277,0,5,1.609438,1.609438,1,4,16,2.6663 +0,.8167032,78,16,6,17,0,1,0,1,1,23.732,4,1,6084,3.166824,0,6,1.791759,1.791759,1,2.6,6.76,2.3732 +1,0,66,17,2,5,0,1,1,0,0,55.35,1,1,4356,4.013677,0,2,.6931472,.6931472,1,.2,.04,5.5349998 +0,1,82,12,3,1,0,0,1,0,0,6,2,0,6724,1.791759,0,3,1.098612,1.098612,1,3.4,11.56,.6 +0,.4317602,69,12,4,0,0,1,0,1,1,50.535,2,1,4761,3.922666,0,4,1.386294,1.386294,1,.8,.64,5.0535 +0,.0116515,82,11,3,0,0,0,0,0,0,124.447,2,0,6724,4.82388,0,3,1.098612,1.098612,1,3.4,11.56,12.4447 +0,.0358529,83,11,3,2,0,0,1,0,0,40.443,0,0,6889,3.699894,0,3,1.098612,1.098612,1,3.6,12.96,4.0443001 +0,0,65,4,0,0,1,0,0,0,0,13.24,0,0,4225,2.583242,1,0,,-4.60517,0,0,0,1.324 +0,.9536785,73,16,10,0,0,0,0,0,0,14.68,2,0,5329,2.686486,0,10,2.302585,2.302585,1,1.6,2.56,1.468 +0,.9536785,69,12,4,0,0,0,1,1,1,14.68,2,0,4761,2.686486,0,4,1.386294,1.386294,1,.8,.64,1.468 +0,0,81,8,8,0,0,0,1,0,0,9,2,0,6561,2.197225,0,8,2.079442,2.079442,1,3.2,10.24,.9 +0,.2853776,65,17,3,0,0,1,0,1,0,36.068,3,1,4225,3.585406,0,3,1.098612,1.098612,1,0,0,3.6068001 +0,.5645942,85,12,3,0,0,1,1,0,0,32.023,2,1,7225,3.466454,0,3,1.098612,1.098612,1,4,16,3.2022999 +0,1,80,12,5,1,0,0,1,1,1,7.2,4,0,6400,1.974081,0,5,1.609438,1.609438,1,3,9,.71999998 +0,.1565251,71,14,8,0,0,1,0,1,0,25.555,5,1,5041,3.240833,1,8,2.079442,2.079442,1,1.2,1.44,2.5555 +0,.1537752,68,12,4,3,0,1,1,0,0,26.012,0,1,4624,3.258558,1,4,1.386294,1.386294,1,.6,.36,2.6011999 +0,1,84,3,15,3,0,0,1,1,1,5,1,0,7056,1.609438,0,15,2.70805,2.70805,1,3.8,14.44,.5 +0,0,78,3,3,0,1,0,0,1,1,18,3,0,6084,2.890372,1,3,1.098612,1.098612,1,2.6,6.76,1.8 +0,.8233216,78,6,9,0,1,0,0,1,1,5.094,2,0,6084,1.628063,0,9,2.197225,2.197225,1,2.6,6.76,.50939999 +0,.8233216,76,10,12,0,1,0,1,1,1,5.094,3,0,5776,1.628063,0,12,2.484907,2.484907,1,2.2,4.84,.50939999 +0,1,67,7,2,0,1,0,0,1,1,4.638,3,0,4489,1.534283,1,2,.6931472,.6931472,1,.4,.16,.4638 +0,1,71,3,14,0,1,0,1,1,1,4.638,3,0,5041,1.534283,1,14,2.639057,2.639057,1,1.2,1.44,.4638 +0,0,80,9,6,2,1,0,1,1,1,9.48,1,0,6400,2.249184,0,6,1.791759,1.791759,1,3,9,.94799995 +0,.3579482,71,17,11,8,0,1,0,0,0,27.937,1,1,5041,3.329952,0,11,2.397895,2.397895,1,1.2,1.44,2.7937 +0,.3861153,70,15,6,0,0,1,1,0,0,25.899,1,1,4900,3.254204,0,6,1.791759,1.791759,1,1,1,2.5899 +0,.4402124,68,12,8,1,0,0,0,0,0,22.789,1,0,4624,3.126278,0,8,2.079442,2.079442,1,.6,.36,2.2789 +0,.4402124,65,12,1,2,0,1,1,0,0,22.789,2,1,4225,3.126278,0,1,0,0,1,0,0,2.2789 +0,.4070477,69,10,0,0,0,0,1,0,0,17.197,1,0,4761,2.844735,1,0,,-4.60517,0,.8,.64,1.7197001 +0,1,67,9,1,0,0,0,0,0,0,6.5,1,0,4489,1.871802,1,1,0,0,1,.4,.16,.65 +0,.6298646,78,12,6,4,0,1,1,0,0,22.227,0,1,6084,3.101308,0,6,1.791759,1.791759,1,2.6,6.76,2.2226999 +0,.3703704,65,12,4,1,0,1,0,0,0,16.2,2,1,4225,2.785011,0,4,1.386294,1.386294,1,0,0,1.6200001 +0,.0573099,70,10,4,1,0,1,0,0,0,17.449,2,1,4900,2.859282,1,4,1.386294,1.386294,1,1,1,1.7448999 +0,.0609607,72,9,1,0,0,1,1,0,0,16.404,0,1,5184,2.797525,1,1,0,0,1,1.4,1.96,1.6403999 +0,1,78,8,47,0,1,0,1,1,1,7.404,3,0,6084,2.00202,0,47,3.850147,3.850147,1,2.6,6.76,.74039998 +0,.4722351,74,12,9,0,0,1,1,1,0,23.717,3,1,5476,3.166192,0,9,2.197225,2.197225,1,1.8,3.24,2.3716999 +0,.4,67,12,0,0,0,0,0,0,0,30,0,0,4489,3.401197,0,0,,-4.60517,0,.4,.16,3 +0,.4684439,65,10,8,3,0,0,1,1,1,11.741,2,0,4225,2.463087,0,8,2.079442,2.079442,1,0,0,1.1741 +0,1,66,8,0,0,0,1,0,0,0,9.6,0,1,4356,2.261763,1,0,,-4.60517,0,.2,.04,.96000004 +0,1,69,8,5,0,0,1,1,0,1,9.6,2,1,4761,2.261763,1,5,1.609438,1.609438,1,.8,.64,.96000004 +0,0,78,1,10,0,1,0,0,0,1,3.5,3,0,6084,1.252763,1,10,2.302585,2.302585,1,2.6,6.76,.35 +0,0,81,3,4,0,1,0,1,1,1,2.2,2,0,6561,.7884574,1,4,1.386294,1.386294,1,3.2,10.24,.22 +0,.1685309,68,8,7,1,1,0,1,1,1,19.937,5,0,4624,2.992577,1,7,1.94591,1.94591,1,.6,.36,1.9937 +0,.6855817,72,7,11,5,0,0,0,1,1,13.358,3,0,5184,2.592115,0,11,2.397895,2.397895,1,1.4,1.96,1.3358 +0,.6855817,69,11,1,0,0,0,1,0,0,13.358,1,0,4761,2.592115,0,1,0,0,1,.8,.64,1.3358 +0,.6987044,76,14,1,0,0,0,1,1,0,13.276,1,0,5776,2.585958,0,1,0,0,1,2.2,4.84,1.3276 +0,.7333333,65,13,1,0,1,0,1,1,0,15,0,0,4225,2.70805,0,1,0,0,1,0,0,1.5 +0,.8431822,65,13,22,1,0,1,1,1,1,17.007,6,1,4225,2.833625,1,22,3.091043,3.091043,1,0,0,1.7007 +0,.2057684,71,17,9,14,0,1,0,1,0,58.318,4,1,5041,4.065911,0,9,2.197225,2.197225,1,1.2,1.44,5.8318001 +0,.5146333,68,8,1,1,0,0,0,0,0,20.057,0,0,4624,2.998578,0,1,0,0,1,.6,.36,2.0056999 +0,.5146333,68,12,5,4,0,0,1,0,0,20.057,4,0,4624,2.998578,0,5,1.609438,1.609438,1,.6,.36,2.0056999 +1,.0740416,65,12,2,1,0,1,1,0,0,56.968,2,1,4225,4.04249,0,2,.6931472,.6931472,1,0,0,5.6967999 +0,.9489576,84,10,8,0,0,0,1,1,1,13.91,3,0,7056,2.632608,0,8,2.079442,2.079442,1,3.8,14.44,1.391 +0,.7360515,85,6,0,0,0,0,1,0,0,5.592,1,0,7225,1.721337,1,0,,-4.60517,0,4,16,.5592 +0,.6193815,84,12,17,19,0,1,1,0,0,18.399,2,1,7056,2.912296,0,17,2.833213,2.833213,1,3.8,14.44,1.8399 +0,.4583478,81,17,2,4,0,1,0,1,1,20.179,0,1,6561,3.004642,0,2,.6931472,.6931472,1,3.2,10.24,2.0179001 +0,.4819949,85,14,3,4,0,1,1,1,1,19.189,3,1,7225,2.954337,0,3,1.098612,1.098612,1,4,16,1.9188999 +0,.6369209,77,16,22,2,0,1,0,0,0,34.257,1,1,5929,3.533891,0,22,3.091043,3.091043,1,2.4,5.76,3.4257 +0,.6369209,80,12,17,7,0,1,1,1,1,34.257,2,1,6400,3.533891,0,17,2.833213,2.833213,1,3,9,3.4257 +0,1,70,6,0,0,1,0,1,0,0,4.416,0,0,4900,1.485234,1,0,,-4.60517,0,1,1,.44159999 +0,.4495413,65,10,0,0,0,0,0,0,0,21.8,1,0,4225,3.08191,0,0,,-4.60517,0,0,0,2.1799999 +0,.6885998,69,14,2,1,0,1,1,0,0,13.07,2,1,4761,2.570319,0,2,.6931472,.6931472,1,.8,.64,1.307 +0,1,67,16,7,4,0,0,1,1,1,6.3,2,0,4489,1.84055,1,7,1.94591,1.94591,1,.4,.16,.63000002 +0,1,84,14,2,0,0,1,0,0,0,10.232,1,1,7056,2.32552,0,2,.6931472,.6931472,1,3.8,14.44,1.0232 +0,.7377755,85,16,47,19,0,1,0,1,1,11.841,5,1,7225,2.471568,0,47,3.850147,3.850147,1,4,16,1.1841 +0,.7377755,84,12,39,27,0,1,1,1,1,11.841,3,1,7056,2.471568,0,39,3.663562,3.663562,1,3.8,14.44,1.1841 +0,.9454545,68,8,15,36,0,0,0,1,1,13.75,1,0,4624,2.621039,0,15,2.70805,2.70805,1,.6,.36,1.375 +0,0,65,8,6,4,0,1,1,0,0,2.3,1,1,4225,.8329091,0,6,1.791759,1.791759,1,0,0,.23 +0,0,73,16,7,0,0,1,1,1,0,.12,2,1,5329,-2.120264,0,7,1.94591,1.94591,1,1.6,2.56,.012 +0,.2471933,81,17,9,2,0,1,1,0,0,48.545,1,1,6561,3.882491,0,9,2.197225,2.197225,1,3.2,10.24,4.8544998 +0,.075697,82,16,8,9,0,1,1,1,0,256.1,1,1,6724,5.545568,0,8,2.079442,2.079442,1,3.4,11.56,25.610001 +0,.2153443,79,16,11,4,0,1,0,1,0,51.081,3,1,6241,3.933413,0,11,2.397895,2.397895,1,2.8,7.84,5.1081001 +0,1,85,11,3,0,0,0,1,0,0,6.768,0,0,7225,1.912206,0,3,1.098612,1.098612,1,4,16,.67680001 +0,.0711763,71,12,5,0,0,1,0,0,1,37.934,1,1,5041,3.635848,0,5,1.609438,1.609438,1,1.2,1.44,3.7933998 +0,.1329329,69,12,5,0,0,1,1,0,0,20.311,2,1,4761,3.011163,0,5,1.609438,1.609438,1,.8,.64,2.0311001 +0,0,80,12,6,0,0,0,1,0,0,17,3,0,6400,2.833213,0,6,1.791759,1.791759,1,3,9,1.7 +0,1,77,11,3,0,0,1,0,1,1,12.876,3,1,5929,2.555365,1,3,1.098612,1.098612,1,2.4,5.76,1.2876 +0,.390625,75,14,8,1,0,0,1,1,0,2.24,4,0,5625,.8064759,0,8,2.079442,2.079442,1,2,4,.224 +0,.390625,75,14,18,0,0,0,0,0,0,2.24,3,0,5625,.8064759,0,18,2.890372,2.890372,1,2,4,.224 +0,.4,78,12,0,0,0,0,0,0,0,12,0,0,6084,2.484907,0,0,,-4.60517,0,2.6,6.76,1.2 +0,.0633327,78,17,1,0,0,0,0,0,0,126.317,1,0,6084,4.838795,1,1,0,0,1,2.6,6.76,12.6317 +0,.3241754,76,17,0,4,0,0,1,1,0,24.678,0,0,5776,3.205912,1,0,,-4.60517,0,2.2,4.84,2.4677999 +0,.3216591,65,12,3,2,0,0,1,1,0,14.562,4,0,4225,2.678415,0,3,1.098612,1.098612,1,0,0,1.4562 +0,0,65,6,1,0,0,1,1,0,0,20.965,1,1,4225,3.042854,0,1,0,0,1,0,0,2.0965 +0,.1001982,65,17,8,6,0,1,0,0,0,105.461,2,1,4225,4.658341,0,8,2.079442,2.079442,1,0,0,10.5461 +0,0,65,17,14,3,0,1,1,0,0,43.352,1,1,4225,3.769353,0,14,2.639057,2.639057,1,0,0,4.3352001 +0,0,65,12,4,0,0,1,0,0,0,8.102,2,1,4225,2.092111,1,4,1.386294,1.386294,1,0,0,.81020002 +0,.1436782,65,15,3,0,0,1,1,0,0,20.88,1,1,4225,3.038792,1,3,1.098612,1.098612,1,0,0,2.0879999 +0,.1274334,65,8,6,0,0,1,0,0,0,44.023,0,1,4225,3.784712,0,6,1.791759,1.791759,1,0,0,4.4022999 +0,0,65,17,0,0,0,0,0,0,0,6.792,0,0,4225,1.915745,0,0,,-4.60517,0,0,0,.67919998 +0,1,65,15,5,1,0,1,0,0,0,8.4,2,1,4225,2.128232,0,5,1.609438,1.609438,1,0,0,.83999996 +0,.2507343,85,12,0,1,0,1,1,1,1,27.918,0,1,7225,3.329272,0,0,,-4.60517,0,4,16,2.7917999 +0,1,65,12,1,1,0,1,0,0,0,17.714,0,1,4225,2.874355,1,1,0,0,1,0,0,1.7714001 +0,.7079208,65,10,20,3,0,1,1,0,0,25.654,1,1,4225,3.244699,0,20,2.995732,2.995732,1,0,0,2.5653999 +0,.1570999,65,14,4,0,0,1,0,0,0,114.424,3,1,4225,4.739911,1,4,1.386294,1.386294,1,0,0,11.4424 +0,0,67,3,7,0,0,0,0,0,0,1.058,2,0,4489,.0563803,1,7,1.94591,1.94591,1,.4,.16,.1058 +0,0,65,4,7,1,0,1,1,1,0,0,4,1,4225,,0,7,1.94591,1.94591,1,0,0,0 +0,0,65,17,8,4,0,1,1,0,0,5.53,1,1,4225,1.710188,0,8,2.079442,2.079442,1,0,0,.55300002 +0,.5085995,65,0,1,0,1,0,1,0,1,12.21,0,0,4225,2.502255,1,1,0,0,1,0,0,1.221 +0,.2362254,66,13,15,0,0,1,1,0,0,38.658,3,1,4356,3.654754,0,15,2.70805,2.70805,1,.2,.04,3.8658001 +0,.2860159,65,12,7,3,0,1,1,1,0,29.369,1,1,4225,3.37994,0,7,1.94591,1.94591,1,0,0,2.9368999 +0,0,75,9,1,0,0,0,1,0,0,0,1,0,5625,,0,1,0,0,1,2,4,0 +0,.3860606,68,12,5,26,0,1,0,0,0,19.427,1,1,4624,2.966664,0,5,1.609438,1.609438,1,.6,.36,1.9427 +0,.2399832,65,16,3,0,0,0,1,0,0,28.577,0,0,4225,3.352602,0,3,1.098612,1.098612,1,0,0,2.8577 +0,1,76,1,0,0,1,0,1,1,1,16.885,3,0,5776,2.826426,1,0,,-4.60517,0,2.2,4.84,1.6885 +0,0,65,12,1,0,0,1,0,0,0,12.34,0,1,4225,2.512846,0,1,0,0,1,0,0,1.234 +0,0,65,12,1,0,0,1,1,0,0,10.6,0,1,4225,2.360854,0,1,0,0,1,0,0,1.06 +0,.6237006,65,12,2,0,0,1,0,0,0,19.24,1,1,4225,2.956991,0,2,.6931472,.6931472,1,0,0,1.924 +0,.9970675,65,16,2,0,0,1,0,1,0,8.525,1,1,4225,2.143003,0,2,.6931472,.6931472,1,0,0,.85249996 +0,1,65,11,1,0,0,0,1,0,0,8.88,1,0,4225,2.183802,0,1,0,0,1,0,0,.88800001 +0,0,65,10,0,0,0,0,0,0,0,0,0,0,4225,,0,0,,-4.60517,0,0,0,0 +0,.5181615,65,13,18,4,0,1,0,0,0,19.299,2,1,4225,2.960053,0,18,2.890372,2.890372,1,0,0,1.9299 +0,0,65,15,2,1,0,1,1,0,0,37.6,0,1,4225,3.627004,0,2,.6931472,.6931472,1,0,0,3.7599998 +0,.2690058,65,17,6,0,0,1,1,0,0,34.2,0,1,4225,3.532226,0,6,1.791759,1.791759,1,0,0,3.4200001 +0,0,65,11,0,0,0,1,0,0,0,22.22,2,1,4225,3.100993,0,0,,-4.60517,0,0,0,2.2219999 +0,.3432592,65,11,2,0,0,1,1,1,0,34.959,0,1,4225,3.554176,0,2,.6931472,.6931472,1,0,0,3.4959 +0,.2547448,65,12,1,0,0,1,1,0,0,31.561,1,1,4225,3.451922,0,1,0,0,1,0,0,3.1561001 +0,.847064,65,8,7,0,0,1,1,0,0,6.761,1,1,4225,1.911171,1,7,1.94591,1.94591,1,0,0,.67610002 +0,.3433594,65,13,3,0,0,1,0,0,0,7.281,0,1,4225,1.985268,1,3,1.098612,1.098612,1,0,0,.72810001 +0,0,65,12,3,5,0,1,1,0,0,0,3,1,4225,,0,3,1.098612,1.098612,1,0,0,0 +0,0,65,12,1,2,0,0,0,1,0,12.361,2,0,4225,2.514546,0,1,0,0,1,0,0,1.2361 +0,0,65,12,6,0,0,1,1,0,0,31.9,3,1,4225,3.462606,0,6,1.791759,1.791759,1,0,0,3.19 +0,.4075691,65,15,0,0,0,0,0,0,0,20.61,0,0,4225,3.025776,0,0,,-4.60517,0,0,0,2.0610001 +0,1,81,14,1,0,0,0,1,1,1,5.017,0,0,6561,1.612832,1,1,0,0,1,3.2,10.24,.50170002 +0,.4733105,65,11,2,0,0,0,0,0,0,19.015,0,0,4225,2.945228,1,2,.6931472,.6931472,1,0,0,1.9014999 +0,.3586754,65,1,4,0,1,0,0,0,0,15.008,1,0,4225,2.708583,1,4,1.386294,1.386294,1,0,0,1.5008 +0,.3137255,65,14,3,0,0,1,1,0,0,30.6,1,1,4225,3.421,0,3,1.098612,1.098612,1,0,0,3.06 +0,.0635459,65,16,1,1,0,1,1,0,0,56.652,0,1,4225,4.036927,0,1,0,0,1,0,0,5.6652 +0,.6504065,87,8,2,0,0,0,1,1,1,11.07,2,0,7569,2.404239,0,2,.6931472,.6931472,1,4.4,19.36,1.107 +0,.0444044,67,16,4,0,0,1,1,0,0,64.881,1,1,4489,4.172555,1,4,1.386294,1.386294,1,.4,.16,6.4880997 +0,.2775263,71,16,0,0,0,1,0,0,0,10.381,1,1,5041,2.339977,1,0,,-4.60517,0,1.2,1.44,1.0381 +0,.1209629,70,17,10,0,0,1,0,0,0,57.869,1,1,4900,4.058182,0,10,2.302585,2.302585,1,1,1,5.7868999 +0,.0722625,68,17,6,1,0,1,1,0,0,96.869,4,1,4624,4.573359,0,6,1.791759,1.791759,1,.6,.36,9.6869003 +0,.286803,65,12,6,0,0,1,1,0,0,48.814,2,1,4225,3.888017,0,6,1.791759,1.791759,1,0,0,4.8813999 +0,0,65,15,8,0,0,1,0,1,0,.069,3,1,4225,-2.673649,0,8,2.079442,2.079442,1,0,0,.0069 +0,.3257754,65,12,4,0,0,1,0,0,0,38.37,1,1,4225,3.647276,0,4,1.386294,1.386294,1,0,0,3.8369999 +0,0,65,17,4,1,0,1,1,0,0,67.299,2,1,4225,4.209146,0,4,1.386294,1.386294,1,0,0,6.7299004 +0,0,65,12,5,3,0,1,1,0,0,36.114,0,1,4225,3.586681,0,5,1.609438,1.609438,1,0,0,3.6113998 +0,.8010088,65,2,0,0,0,0,0,0,0,14.473,0,0,4225,2.672285,1,0,,-4.60517,0,0,0,1.4473 +0,.988842,84,10,0,0,0,0,1,0,0,7.349,2,0,7056,1.994564,1,0,,-4.60517,0,3.8,14.44,.7349 +0,.0174706,65,17,0,0,0,1,0,0,0,152.599,1,1,4225,5.027813,0,0,,-4.60517,0,0,0,15.2599 +0,.2915697,65,4,2,0,0,1,1,0,0,19.762,2,1,4225,2.983761,1,2,.6931472,.6931472,1,0,0,1.9761999 +0,.3800906,67,12,7,0,0,1,0,0,0,46.36,3,1,4489,3.836437,1,7,1.94591,1.94591,1,.4,.16,4.6360001 +0,0,65,16,2,2,0,1,1,0,0,19.589,2,1,4225,2.974968,0,2,.6931472,.6931472,1,0,0,1.9589001 +0,.0726722,65,12,4,1,0,1,1,0,0,33.025,0,1,4225,3.497265,0,4,1.386294,1.386294,1,0,0,3.3025002 +0,0,65,12,7,0,0,0,1,0,0,24.183,1,0,4225,3.18565,0,7,1.94591,1.94591,1,0,0,2.4183001 +0,1,73,8,2,0,0,1,0,0,0,1.4,2,1,5329,.3364722,0,2,.6931472,.6931472,1,1.6,2.56,.14 +0,.6021769,65,12,3,1,0,1,0,0,0,17.548,1,1,4225,2.86494,0,3,1.098612,1.098612,1,0,0,1.7548 +0,.15489,65,12,0,1,0,1,1,0,0,26.309,2,1,4225,3.269911,0,0,,-4.60517,0,0,0,2.6309 +0,1,65,12,5,0,0,1,1,0,0,7,2,1,4225,1.94591,0,5,1.609438,1.609438,1,0,0,.7 +0,.0991736,66,12,0,0,0,1,0,0,0,78.65,1,1,4356,4.365008,0,0,,-4.60517,0,.2,.04,7.8650002 +0,0,65,17,0,0,0,1,1,0,0,21,0,1,4225,3.044523,0,0,,-4.60517,0,0,0,2.1 +0,0,65,12,5,12,0,1,0,0,0,46.817,1,1,4225,3.846246,0,5,1.609438,1.609438,1,0,0,4.6817001 +0,.4483227,65,12,17,0,0,1,1,0,1,15.471,3,1,4225,2.738967,0,17,2.833213,2.833213,1,0,0,1.5471 +0,1,66,11,0,0,1,0,1,0,0,8.412,2,0,4356,2.129659,0,0,,-4.60517,0,.2,.04,.84119997 +0,.2849931,65,10,18,1,0,1,1,0,0,28.127,4,1,4225,3.33673,0,18,2.890372,2.890372,1,0,0,2.8127001 +0,.7227273,65,6,6,0,0,0,0,0,0,13.64,4,0,4225,2.613007,1,6,1.791759,1.791759,1,0,0,1.364 +0,0,65,12,3,0,0,0,0,0,0,70.2,2,0,4225,4.251348,0,3,1.098612,1.098612,1,0,0,7.0199997 +0,.1529663,66,12,5,0,0,0,1,0,0,22.907,0,0,4356,3.131443,0,5,1.609438,1.609438,1,.2,.04,2.2907 +0,0,65,15,7,0,1,0,1,1,1,1.8,0,0,4225,.5877866,1,7,1.94591,1.94591,1,0,0,.18 +0,.2600974,65,12,3,1,0,0,0,0,0,53.826,1,0,4225,3.985757,1,3,1.098612,1.098612,1,0,0,5.3826 +0,0,65,9,4,0,0,0,1,1,1,0,3,0,4225,,0,4,1.386294,1.386294,1,0,0,0 +0,0,65,12,2,0,0,1,1,0,0,0,1,1,4225,,1,2,.6931472,.6931472,1,0,0,0 +0,1,65,10,8,1,0,1,1,0,0,9.546,2,1,4225,2.256122,1,8,2.079442,2.079442,1,0,0,.95459995 +0,.9733703,86,12,2,1,0,0,1,1,1,18.776,3,0,7396,2.93258,0,2,.6931472,.6931472,1,4.2,17.64,1.8775999 +0,1,65,16,6,0,0,1,0,0,0,10.412,1,1,4225,2.342959,0,6,1.791759,1.791759,1,0,0,1.0412 +0,0,65,5,9,0,1,0,0,1,1,4.584,2,0,4225,1.522572,1,9,2.197225,2.197225,1,0,0,.45840001 +0,0,68,16,4,0,0,1,0,0,0,27.5,3,1,4624,3.314186,1,4,1.386294,1.386294,1,.6,.36,2.75 +0,.2614322,65,12,0,0,0,1,0,0,0,45.901,0,1,4225,3.826487,0,0,,-4.60517,0,0,0,4.5901001 +0,0,65,13,2,0,0,1,1,0,0,23.853,0,1,4225,3.17191,0,2,.6931472,.6931472,1,0,0,2.3853001 +0,.851606,65,16,10,1,0,0,1,0,0,11.146,2,0,4225,2.411081,0,10,2.302585,2.302585,1,0,0,1.1146 +0,1,81,12,3,8,0,1,0,0,0,5.736,2,1,6561,1.746762,0,3,1.098612,1.098612,1,3.2,10.24,.57360001 +0,1,71,8,2,0,0,0,0,1,1,12.61,2,0,5041,2.53449,0,2,.6931472,.6931472,1,1.2,1.44,1.261 +0,.8753415,78,11,3,0,0,0,0,0,0,6.955,1,0,6084,1.939461,0,3,1.098612,1.098612,1,2.6,6.76,.69549999 +0,.3820549,76,12,3,0,0,0,1,1,1,12.137,0,0,5776,2.496259,0,3,1.098612,1.098612,1,2.2,4.84,1.2137 +0,0,67,12,5,0,0,1,0,1,1,0,1,1,4489,,0,5,1.609438,1.609438,1,.4,.16,0 +0,.4773903,89,8,4,4,0,0,1,1,1,20.876,3,0,7921,3.0386,0,4,1.386294,1.386294,1,4.8,23.04,2.0875999 +0,.1125004,74,16,3,5,0,0,0,0,0,31.111,1,0,5476,3.437562,0,3,1.098612,1.098612,1,1.8,3.24,3.1111 +0,.1125004,75,12,1,0,0,0,1,0,0,31.111,1,0,5625,3.437562,0,1,0,0,1,2,4,3.1111 +0,1,78,12,11,1,0,1,1,1,1,12.231,4,1,6084,2.503974,0,11,2.397895,2.397895,1,2.6,6.76,1.2231 +0,1,70,13,4,1,0,0,1,1,1,11,1,0,4900,2.397895,0,4,1.386294,1.386294,1,1,1,1.1 +0,.4535673,90,13,0,0,0,0,1,1,0,14.591,3,0,8100,2.680405,0,0,,-4.60517,0,5,25,1.4591 +0,1,82,6,1,0,1,0,1,1,1,7.593,3,0,6724,2.027227,1,1,0,0,1,3.4,11.56,.75929999 +0,0,72,8,21,0,0,0,0,1,0,2.448,3,0,5184,.8952714,0,21,3.044523,3.044523,1,1.4,1.96,.2448 +0,.983296,83,12,2,0,0,0,1,0,0,4.909,0,0,6889,1.59107,0,2,.6931472,.6931472,1,3.6,12.96,.49089999 +0,.9651192,88,8,3,2,0,1,0,1,0,3.899,2,1,7744,1.36072,0,3,1.098612,1.098612,1,4.6,21.16,.38989999 +0,.4549272,78,12,9,1,0,0,0,1,1,14.288,2,0,6084,2.65942,0,9,2.197225,2.197225,1,2.6,6.76,1.4288 +0,1,84,0,12,0,1,0,0,1,1,5.545,2,0,7056,1.712897,1,12,2.484907,2.484907,1,3.8,14.44,.55450001 +0,.5482724,90,0,0,0,1,0,1,0,0,13.776,1,0,8100,2.622928,0,0,,-4.60517,0,5,25,1.3776 +0,1,70,14,1,0,0,0,1,0,0,7.865,0,0,4900,2.062423,0,1,0,0,1,1,1,.78649998 +0,.8917198,80,12,21,0,0,1,1,0,0,15.7,2,1,6400,2.753661,0,21,3.044523,3.044523,1,3,9,1.57 +0,.9984307,86,13,4,0,0,0,1,1,1,8.284,3,0,7396,2.114326,0,4,1.386294,1.386294,1,4.2,17.64,.82840004 +0,1,70,6,4,1,1,0,0,1,1,17.886,3,0,4900,2.884018,0,4,1.386294,1.386294,1,1,1,1.7886 +0,.4924895,71,16,6,3,0,1,0,0,0,20.305,0,1,5041,3.010867,0,6,1.791759,1.791759,1,1.2,1.44,2.0305 +0,.4924895,71,16,11,9,0,1,1,0,0,20.305,3,1,5041,3.010867,0,11,2.397895,2.397895,1,1.2,1.44,2.0305 +0,0,69,12,0,0,0,0,1,0,0,0,0,0,4761,,0,0,,-4.60517,0,.8,.64,0 +0,1,67,11,2,1,0,0,0,1,1,13.247,3,0,4489,2.583771,1,2,.6931472,.6931472,1,.4,.16,1.3247 +0,1,79,10,4,0,0,1,1,1,1,9.546,2,1,6241,2.256122,0,4,1.386294,1.386294,1,2.8,7.84,.95459995 +0,1,69,12,0,0,0,0,1,0,0,7.403,0,0,4761,2.001885,0,0,,-4.60517,0,.8,.64,.74029999 +0,.8870637,89,10,3,0,0,0,0,1,1,9.74,1,0,7921,2.276241,0,3,1.098612,1.098612,1,4.8,23.04,.97399998 +0,.3024575,74,10,5,0,0,1,0,0,0,26.45,1,1,5476,3.275256,0,5,1.609438,1.609438,1,1.8,3.24,2.6450001 +0,0,66,15,4,0,0,1,0,1,0,1.5,0,1,4356,.4054651,0,4,1.386294,1.386294,1,.2,.04,.15 +0,1,70,5,2,0,0,0,0,0,0,4.136,1,0,4900,1.419729,1,2,.6931472,.6931472,1,1,1,.41360002 +0,1,67,12,6,0,0,1,1,0,0,4.136,1,1,4489,1.419729,1,6,1.791759,1.791759,1,.4,.16,.41360002 +0,.2307692,78,8,8,1,0,1,0,1,1,6.5,3,1,6084,1.871802,0,8,2.079442,2.079442,1,2.6,6.76,.65 +0,0,90,14,7,0,0,0,1,1,0,7,3,0,8100,1.94591,0,7,1.94591,1.94591,1,5,25,.7 +0,.1460051,74,10,7,5,0,1,1,0,0,36.985,2,1,5476,3.610512,0,7,1.94591,1.94591,1,1.8,3.24,3.6985001 +0,.3768933,67,5,9,0,1,0,1,0,0,12.412,4,0,4489,2.518664,1,9,2.197225,2.197225,1,.4,.16,1.2412 +0,.99492,78,9,9,0,1,0,0,1,1,5.315,2,0,6084,1.670533,0,9,2.197225,2.197225,1,2.6,6.76,.53150001 +0,.7513854,73,10,3,0,0,0,1,0,0,14.617,3,0,5329,2.682185,0,3,1.098612,1.098612,1,1.6,2.56,1.4617 +0,.8856881,84,12,8,1,0,1,1,1,1,5.45,1,1,7056,1.695616,0,8,2.079442,2.079442,1,3.8,14.44,.54499998 +0,.997517,82,9,3,0,0,0,1,1,0,10.874,1,0,6724,2.386374,0,3,1.098612,1.098612,1,3.4,11.56,1.0874 +0,0,88,14,20,0,0,1,1,1,0,20.089,2,1,7744,3.000172,0,20,2.995732,2.995732,1,4.6,21.16,2.0089001 +0,.6204095,87,12,3,0,0,1,0,1,1,18.217,0,1,7569,2.902355,0,3,1.098612,1.098612,1,4.4,19.36,1.8216999 +0,.2447254,68,14,40,1,0,1,0,0,0,73.086,2,1,4624,4.291637,0,40,3.688879,3.688879,1,.6,.36,7.3085999 +0,0,71,17,5,0,0,1,1,0,0,41.753,0,1,5041,3.731771,0,5,1.609438,1.609438,1,1.2,1.44,4.1752998 +0,.5206282,86,2,6,0,0,0,0,1,1,8.023,2,0,7396,2.082312,1,6,1.791759,1.791759,1,4.2,17.64,.80229998 +0,.3595711,77,11,9,0,0,1,1,1,1,15.296,1,1,5929,2.727591,0,9,2.197225,2.197225,1,2.4,5.76,1.5296 +0,.2683182,85,12,4,0,0,1,0,0,0,28.701,2,1,7225,3.356932,0,4,1.386294,1.386294,1,4,16,2.8701 +0,.2683182,83,8,3,2,0,1,1,0,0,28.701,1,1,6889,3.356932,0,3,1.098612,1.098612,1,3.6,12.96,2.8701 +0,.8333333,67,14,10,2,0,1,0,1,1,10.8,6,1,4489,2.379546,0,10,2.302585,2.302585,1,.4,.16,1.08 +0,.8333333,69,6,8,1,0,1,1,1,1,10.8,4,1,4761,2.379546,0,8,2.079442,2.079442,1,.8,.64,1.08 +0,1,77,6,2,1,0,0,1,0,0,5.017,0,0,5929,1.612832,1,2,.6931472,.6931472,1,2.4,5.76,.50170002 +0,.9958506,88,7,0,0,0,0,0,1,1,9.64,2,0,7744,2.265921,0,0,,-4.60517,0,4.6,21.16,.96400003 +0,1,81,17,13,1,0,1,1,1,1,9.6,2,1,6561,2.261763,0,13,2.564949,2.564949,1,3.2,10.24,.96000004 +0,1,90,13,6,1,1,0,1,1,0,8.597,2,0,8100,2.151413,0,6,1.791759,1.791759,1,5,25,.85970001 +0,.9929578,76,5,7,0,0,0,0,1,0,2.84,2,0,5776,1.043804,0,7,1.94591,1.94591,1,2.2,4.84,.28399999 +0,1,77,2,2,0,1,0,1,0,0,10.305,1,0,5929,2.332629,1,2,.6931472,.6931472,1,2.4,5.76,1.0305 +0,.851441,75,12,1,0,1,0,1,0,0,10.097,0,0,5625,2.312238,0,1,0,0,1,2,4,1.0097 +0,.5978545,82,12,10,3,0,0,1,0,0,30.203,3,0,6724,3.407941,0,10,2.302585,2.302585,1,3.4,11.56,3.0202999 +0,1,67,12,0,0,0,0,0,0,0,13.559,0,0,4489,2.60705,0,0,,-4.60517,0,.4,.16,1.3559 +0,.9985576,81,15,2,0,0,1,1,1,1,9.013,1,1,6561,2.198668,0,2,.6931472,.6931472,1,3.2,10.24,.90129995 +0,1,78,11,8,0,0,1,1,1,1,12.61,1,1,6084,2.53449,0,8,2.079442,2.079442,1,2.6,6.76,1.261 +0,.7465964,74,10,24,4,0,1,0,0,1,11.385,3,1,5476,2.432297,0,24,3.178054,3.178054,1,1.8,3.24,1.1385 +0,.9731374,73,12,0,0,0,1,0,1,1,9.865,2,1,5329,2.288993,0,0,,-4.60517,0,1.6,2.56,.98649998 +0,.9414718,81,12,6,0,0,0,1,0,1,6.373,4,0,6561,1.85207,0,6,1.791759,1.791759,1,3.2,10.24,.63730001 +0,0,76,14,10,0,0,1,1,0,1,8.251,0,1,5776,2.110334,0,10,2.302585,2.302585,1,2.2,4.84,.82510004 +0,0,70,14,54,0,0,1,0,1,1,8.251,3,1,4900,2.110334,0,54,3.988984,3.988984,1,1,1,.82510004 +0,.2512226,70,17,9,1,0,1,1,1,1,39.67,3,1,4900,3.680595,0,9,2.197225,2.197225,1,1,1,3.9669998 +0,0,66,10,28,1,0,1,1,0,0,36,0,1,4356,3.583519,0,28,3.332205,3.332205,1,.2,.04,3.6 +0,1,87,12,1,0,0,0,1,0,0,6.265,3,0,7569,1.834979,1,1,0,0,1,4.4,19.36,.62649999 +0,.884865,80,12,0,0,0,1,1,0,0,12.481,0,1,6400,2.524208,0,0,,-4.60517,0,3,9,1.2481 +0,.987961,82,7,0,0,0,0,1,1,1,7.891,2,0,6724,2.065723,0,0,,-4.60517,0,3.4,11.56,.78909998 +0,.8744535,86,16,2,0,0,1,0,0,0,16.01,1,1,7396,2.773214,0,2,.6931472,.6931472,1,4.2,17.64,1.601 +0,.8744535,80,12,8,3,0,1,1,1,0,16.01,1,1,6400,2.773214,0,8,2.079442,2.079442,1,3,9,1.601 +0,.7192806,90,12,2,1,0,1,1,1,1,9.953,1,1,8100,2.297874,0,2,.6931472,.6931472,1,5,25,.99530001 +0,.9893993,85,8,2,0,0,1,0,0,0,14.15,2,1,7225,2.649715,0,2,.6931472,.6931472,1,4,16,1.415 +0,.9893993,87,5,2,0,0,1,1,1,1,14.15,2,1,7569,2.649715,0,2,.6931472,.6931472,1,4.4,19.36,1.415 +0,0,80,10,1,1,0,0,1,0,0,0,1,0,6400,,0,1,0,0,1,3,9,0 +0,1,67,6,0,0,0,0,0,1,1,5.499,2,0,4489,1.704566,0,0,,-4.60517,0,.4,.16,.54990001 +0,.7744697,90,9,4,0,1,0,1,1,0,5.374,1,0,8100,1.681573,1,4,1.386294,1.386294,1,5,25,.53740001 +0,.9904762,76,14,2,0,0,0,1,0,0,8.61,0,0,5776,2.152924,1,2,.6931472,.6931472,1,2.2,4.84,.86099997 +0,.9333766,76,11,4,0,0,1,0,0,0,9.261,1,1,5776,2.225812,0,4,1.386294,1.386294,1,2.2,4.84,.92609997 +0,.9333766,74,10,1,1,0,1,1,0,0,9.261,1,1,5476,2.225812,1,1,0,0,1,1.8,3.24,.92609997 +0,0,80,11,0,0,0,0,1,1,1,2.079,0,0,6400,.731887,0,0,,-4.60517,0,3,9,.2079 +0,.1988636,81,12,10,0,0,1,0,1,1,17.6,3,1,6561,2.867899,0,10,2.302585,2.302585,1,3.2,10.24,1.76 +0,.665979,78,13,7,3,0,1,0,0,0,10.179,1,1,6084,2.320327,0,7,1.94591,1.94591,1,2.6,6.76,1.0179 +0,.3470833,78,8,11,66,0,0,1,1,1,16.097,1,0,6084,2.778633,0,11,2.397895,2.397895,1,2.6,6.76,1.6097 +0,0,70,12,0,0,0,0,0,0,0,93.318,1,0,4900,4.536013,0,0,,-4.60517,0,1,1,9.3318001 +0,0,68,12,9,0,0,0,1,0,0,0,0,0,4624,,0,9,2.197225,2.197225,1,.6,.36,0 +0,.9857061,90,15,2,0,0,0,1,0,0,10.494,1,0,8100,2.350804,0,2,.6931472,.6931472,1,5,25,1.0494 +0,.3776979,68,13,8,0,0,1,0,0,0,5.56,0,1,4624,1.715598,0,8,2.079442,2.079442,1,.6,.36,.55599999 +0,.6873039,68,12,5,0,0,0,1,0,0,8.286,3,0,4624,2.114567,1,5,1.609438,1.609438,1,.6,.36,.82860003 +0,.9929078,81,12,5,0,0,0,1,0,0,14.1,1,0,6561,2.646175,0,5,1.609438,1.609438,1,3.2,10.24,1.41 +0,0,78,17,10,0,0,1,0,1,0,52,2,1,6084,3.951244,0,10,2.302585,2.302585,1,2.6,6.76,5.2 +0,0,74,16,25,2,0,1,1,1,0,0,3,1,5476,,0,25,3.218876,3.218876,1,1.8,3.24,0 +0,.8255345,72,14,9,4,0,1,1,0,0,13.378,0,1,5184,2.593611,0,9,2.197225,2.197225,1,1.4,1.96,1.3378 +1,.2367327,68,12,0,0,0,1,0,0,0,48.578,2,1,4624,3.883171,0,0,,-4.60517,0,.6,.36,4.8577999 +0,.3314599,67,12,3,0,0,1,1,0,0,34.695,2,1,4489,3.546596,0,3,1.098612,1.098612,1,.4,.16,3.4695 +0,0,77,10,8,0,1,0,0,0,1,7.5,2,0,5929,2.014903,0,8,2.079442,2.079442,1,2.4,5.76,.75 +0,0,76,10,8,0,1,0,1,1,1,2.43,3,0,5776,.8878913,0,8,2.079442,2.079442,1,2.2,4.84,.24300001 +0,.2493298,66,12,13,0,0,0,1,1,1,37.3,2,0,4356,3.618993,0,13,2.564949,2.564949,1,.2,.04,3.7299999 +0,1,72,12,5,0,0,0,0,0,0,9.3,2,0,5184,2.230014,0,5,1.609438,1.609438,1,1.4,1.96,.93000002 +0,1,78,13,0,0,0,1,1,0,0,10,1,1,6084,2.302585,1,0,,-4.60517,0,2.6,6.76,1 +0,.4964539,80,12,6,0,0,1,1,1,1,14.1,1,1,6400,2.646175,0,6,1.791759,1.791759,1,3,9,1.41 +1,0,65,17,4,0,0,1,1,0,0,52.05,1,1,4225,3.952205,1,4,1.386294,1.386294,1,0,0,5.2049999 +0,.3869043,77,3,1,0,0,0,0,0,0,12.233,1,0,5929,2.504137,1,1,0,0,1,2.4,5.76,1.2233 +0,.5579394,70,0,8,0,0,0,1,1,0,8.483,4,0,4900,2.138064,1,8,2.079442,2.079442,1,1,1,.84829998 +0,.2595691,68,16,6,4,0,1,1,0,0,50.083,0,1,4624,3.913682,0,6,1.791759,1.791759,1,.6,.36,5.0083 +0,1,70,9,12,22,0,0,1,1,1,6.93,1,0,4900,1.93586,0,12,2.484907,2.484907,1,1,1,.69299998 +0,1,75,12,1,0,0,0,0,0,0,6.93,1,0,5625,1.93586,0,1,0,0,1,2,4,.69299998 +0,.4736842,68,12,14,1,0,1,1,0,1,22.8,1,1,4624,3.12676,0,14,2.639057,2.639057,1,.6,.36,2.2799999 +0,.4018754,77,10,4,1,0,0,0,1,1,29.86,2,0,5929,3.39652,1,4,1.386294,1.386294,1,2.4,5.76,2.9860001 +0,0,65,9,2,0,1,0,1,1,1,0,2,0,4225,,0,2,.6931472,.6931472,1,0,0,0 +0,0,72,0,2,0,0,0,1,0,0,0,2,0,5184,,1,2,.6931472,.6931472,1,1.4,1.96,0 +0,.3496072,75,10,9,0,0,1,0,0,0,24.313,2,1,5625,3.191011,0,9,2.197225,2.197225,1,2,4,2.4313 +0,.6384737,72,10,5,0,0,1,1,0,0,13.313,1,1,5184,2.588741,0,5,1.609438,1.609438,1,1.4,1.96,1.3313 +0,.782021,80,12,3,1,0,1,1,0,0,9.322,1,1,6400,2.232377,0,3,1.098612,1.098612,1,3,9,.93219995 +0,.1562663,69,12,3,1,0,1,1,0,0,19.198,0,1,4761,2.954806,0,3,1.098612,1.098612,1,.8,.64,1.9198 +0,.2846975,65,17,18,9,0,1,0,1,1,28.1,4,1,4225,3.33577,0,18,2.890372,2.890372,1,0,0,2.81 +0,.5863039,72,12,14,0,0,1,1,1,0,8.528,1,1,5184,2.143355,0,14,2.639057,2.639057,1,1.4,1.96,.85279999 +0,.9756098,66,13,9,2,1,0,1,1,1,4.1,3,0,4356,1.410987,0,9,2.197225,2.197225,1,.2,.04,.40999999 +0,1,68,13,6,1,0,0,1,1,1,8.364,3,0,4624,2.123937,0,6,1.791759,1.791759,1,.6,.36,.83640003 +0,.3564357,68,16,20,0,0,1,0,1,1,20.2,4,1,4624,3.005683,0,20,2.995732,2.995732,1,.6,.36,2.0200001 +0,.4434653,72,12,6,0,0,0,1,0,0,14.071,2,0,5184,2.644116,0,6,1.791759,1.791759,1,1.4,1.96,1.4071 +0,.2848818,82,12,12,1,0,0,1,1,1,37.068,2,0,6724,3.612754,0,12,2.484907,2.484907,1,3.4,11.56,3.7068001 +0,.0853914,67,16,4,1,0,1,1,0,0,127.062,0,1,4489,4.844675,0,4,1.386294,1.386294,1,.4,.16,12.7062 +0,.0927683,74,17,0,0,0,1,0,0,0,116.958,1,1,5476,4.761815,0,0,,-4.60517,0,1.8,3.24,11.6958 +0,.3506494,66,12,14,1,0,0,1,1,1,30.8,2,0,4356,3.427515,1,14,2.639057,2.639057,1,.2,.04,3.0799999 +0,.1015043,73,11,11,56,0,1,1,1,1,33.437,3,1,5329,3.509663,0,11,2.397895,2.397895,1,1.6,2.56,3.3437 +0,.7137031,71,9,4,0,0,0,1,0,0,9.808,4,0,5041,2.283198,1,4,1.386294,1.386294,1,1.2,1.44,.98079996 +0,0,80,14,1,1,0,1,0,1,1,.023,1,1,6400,-3.772261,0,1,0,0,1,3,9,.0023 +0,.1479582,69,12,0,0,0,0,0,0,0,10.138,0,0,4761,2.316291,0,0,,-4.60517,0,.8,.64,1.0138 +0,1,71,8,0,0,0,0,1,1,1,1.5,3,0,5041,.4054651,0,0,,-4.60517,0,1.2,1.44,.15 +0,.4615385,74,14,6,2,0,1,0,0,0,2.6,2,1,5476,.9555114,0,6,1.791759,1.791759,1,1.8,3.24,.25999999 +0,.4615385,70,12,1,3,0,1,1,0,0,2.6,0,1,4900,.9555114,0,1,0,0,1,1,1,.25999999 +0,.9180328,85,13,11,0,0,0,1,1,1,9.15,2,0,7225,2.213754,0,11,2.397895,2.397895,1,4,16,.91499996 +0,.2897967,84,12,0,2,0,1,1,1,1,24.845,0,1,7056,3.212656,0,0,,-4.60517,0,3.8,14.44,2.4844999 +0,.9836066,84,2,1,0,0,0,1,0,0,12.2,1,0,7056,2.501436,1,1,0,0,1,3.8,14.44,1.22 +0,.1778305,79,16,0,0,0,1,1,0,0,16.87,0,1,6241,2.825537,0,0,,-4.60517,0,2.8,7.84,1.6870001 +0,.3333333,79,15,1,0,0,0,0,1,1,22.5,3,0,6241,3.113515,0,1,0,0,1,2.8,7.84,2.25 +0,.5,78,12,2,0,0,0,1,1,1,15,2,0,6084,2.70805,0,2,.6931472,.6931472,1,2.6,6.76,1.5 +0,.6114886,74,8,15,0,0,0,0,0,0,32.38,2,0,5476,3.477541,0,15,2.70805,2.70805,1,1.8,3.24,3.2380001 +0,.9131871,68,4,0,0,1,0,0,0,0,9.987,0,0,4624,2.301284,1,0,,-4.60517,0,.6,.36,.99870005 +1,.1086573,70,6,1,0,0,1,0,1,1,36.813,0,1,4900,3.605851,1,1,0,0,1,1,1,3.6813 +0,1,72,12,17,24,0,1,1,1,1,4,3,1,5184,1.386294,1,17,2.833213,2.833213,1,1.4,1.96,.4 +0,.4177449,71,12,11,2,0,1,0,1,0,43.28,4,1,5041,3.767691,0,11,2.397895,2.397895,1,1.2,1.44,4.3279999 +0,.6175842,71,12,4,1,0,1,1,1,0,12.625,1,1,5041,2.535679,1,4,1.386294,1.386294,1,1.2,1.44,1.2625 +0,.9258402,82,8,1,3,1,0,1,1,0,10.801,1,0,6724,2.379639,0,1,0,0,1,3.4,11.56,1.0801 +0,.5,85,13,12,11,0,1,1,1,0,22,1,1,7225,3.091043,0,12,2.484907,2.484907,1,4,16,2.2 +0,.5001563,81,12,19,1,0,1,0,0,0,15.995,4,1,6561,2.772276,0,19,2.944439,2.944439,1,3.2,10.24,1.5995 +0,.5001563,73,14,6,6,0,1,1,0,0,15.995,2,1,5329,2.772276,0,6,1.791759,1.791759,1,1.6,2.56,1.5995 +0,.1696281,85,14,4,1,0,1,1,1,1,23.581,1,1,7225,3.160441,0,4,1.386294,1.386294,1,4,16,2.3580999 +0,.7344633,75,16,8,0,0,1,0,1,0,8.85,2,1,5625,2.180418,0,8,2.079442,2.079442,1,2,4,.88500004 +0,.7344633,70,16,5,0,0,1,1,0,0,8.85,1,1,4900,2.180418,0,5,1.609438,1.609438,1,1,1,.88500004 +0,1,70,10,1,1,0,0,0,0,0,10.44,2,0,4900,2.345644,0,1,0,0,1,1,1,1.044 +0,.8207363,85,12,12,24,0,0,1,1,1,22.029,4,0,7225,3.09236,0,12,2.484907,2.484907,1,4,16,2.2028999 +0,0,66,16,9,0,0,0,0,0,0,5,1,0,4356,1.609438,0,9,2.197225,2.197225,1,.2,.04,.5 +0,1,79,12,3,1,0,1,0,0,0,8,1,1,6241,2.079442,1,3,1.098612,1.098612,1,2.8,7.84,.8 +0,1,65,11,3,1,1,0,0,0,0,8,2,0,4225,2.079442,0,3,1.098612,1.098612,1,0,0,.8 +0,.4694836,68,11,12,0,0,0,1,1,0,15.336,0,0,4624,2.730203,1,12,2.484907,2.484907,1,.6,.36,1.5336 +0,.234375,82,12,15,3,0,1,1,0,0,51.2,2,1,6724,3.93574,0,15,2.70805,2.70805,1,3.4,11.56,5.1200001 +0,.4178855,80,16,3,0,0,0,1,0,0,21.537,1,0,6400,3.069772,0,3,1.098612,1.098612,1,3,9,2.1537001 +0,.4542701,84,17,23,1,0,1,0,0,1,19.812,2,1,7056,2.986288,0,23,3.135494,3.135494,1,3.8,14.44,1.9812 +0,1,78,14,19,18,0,0,1,1,0,12,2,0,6084,2.484907,0,19,2.944439,2.944439,1,2.6,6.76,1.2 +0,1,76,17,44,2,1,0,0,0,0,5.237,3,0,5776,1.655749,1,44,3.78419,3.78419,1,2.2,4.84,.5237 +0,1,70,11,14,0,1,0,1,0,0,5.237,1,0,4900,1.655749,1,14,2.639057,2.639057,1,1,1,.5237 +0,.9874592,79,9,4,4,0,0,1,0,0,10.127,2,0,6241,2.315205,0,4,1.386294,1.386294,1,2.8,7.84,1.0127 +0,.3351308,68,16,2,0,0,1,0,1,1,32.823,2,1,4624,3.49113,0,2,.6931472,.6931472,1,.6,.36,3.2823002 +0,.220562,75,17,5,0,0,0,0,0,0,29.715,3,0,5625,3.391652,0,5,1.609438,1.609438,1,2,4,2.9715 +0,.4343562,68,17,2,2,0,0,1,0,0,15.089,2,0,4624,2.713966,0,2,.6931472,.6931472,1,.6,.36,1.5089 +0,.2649484,83,13,9,0,0,0,1,0,0,33.833,2,0,6889,3.521437,0,9,2.197225,2.197225,1,3.6,12.96,3.3833 +0,1,68,6,5,0,1,0,0,0,0,6,0,0,4624,1.791759,0,5,1.609438,1.609438,1,.6,.36,.6 +0,1,85,8,5,0,0,0,0,1,0,10.092,3,0,7225,2.311743,0,5,1.609438,1.609438,1,4,16,1.0092 +0,0,71,0,4,0,1,0,1,0,0,0,1,0,5041,,1,4,1.386294,1.386294,1,1.2,1.44,0 +0,1,66,12,23,2,0,0,1,1,1,9,3,0,4356,2.197225,0,23,3.135494,3.135494,1,.2,.04,.9 +0,.5294118,70,14,4,1,0,0,0,1,0,17,0,0,4900,2.833213,0,4,1.386294,1.386294,1,1,1,1.7 +0,.9651429,79,12,0,0,0,0,0,0,0,20.082,1,0,6241,2.999824,0,0,,-4.60517,0,2.8,7.84,2.0082001 +0,.7845504,69,12,20,10,0,1,0,1,1,8.285,4,1,4761,2.114447,0,20,2.995732,2.995732,1,.8,.64,.82849998 +0,.7845504,68,15,5,1,0,1,1,1,1,8.285,2,1,4624,2.114447,0,5,1.609438,1.609438,1,.6,.36,.82849998 +1,0,68,17,3,0,0,1,1,0,0,81.994,0,1,4624,4.406646,0,3,1.098612,1.098612,1,.6,.36,8.1994003 +0,1,67,8,4,2,0,1,0,1,0,5,3,1,4489,1.609438,0,4,1.386294,1.386294,1,.4,.16,.5 +0,0,85,12,5,0,0,0,1,0,0,12.5,0,0,7225,2.525729,0,5,1.609438,1.609438,1,4,16,1.25 +0,.5515832,76,15,3,2,0,1,1,1,0,24.475,1,1,5776,3.197652,0,3,1.098612,1.098612,1,2.2,4.84,2.4475 +0,.5425609,79,17,17,4,0,1,0,1,0,24.882,1,1,6241,3.214145,0,17,2.833213,2.833213,1,2.8,7.84,2.4882 +0,.2480254,77,16,7,3,0,1,1,1,1,57.607,2,1,5929,4.053644,0,7,1.94591,1.94591,1,2.4,5.76,5.7606998 +0,1,72,8,8,1,0,1,1,0,0,11.25,3,1,5184,2.420368,0,8,2.079442,2.079442,1,1.4,1.96,1.125 +0,1,79,12,7,34,0,1,0,0,0,11.25,2,1,6241,2.420368,0,7,1.94591,1.94591,1,2.8,7.84,1.125 +0,.2215616,65,17,2,0,0,1,0,0,0,54.161,1,1,4225,3.991961,0,2,.6931472,.6931472,1,0,0,5.4160999 +0,.1666667,73,9,2,0,0,0,0,0,0,36,1,0,5329,3.583519,1,2,.6931472,.6931472,1,1.6,2.56,3.6 +0,1,72,10,5,2,0,0,1,1,0,6,2,0,5184,1.791759,1,5,1.609438,1.609438,1,1.4,1.96,.6 +0,1,66,10,1,1,0,1,1,1,1,9,0,1,4356,2.197225,0,1,0,0,1,.2,.04,.9 +0,.1581981,83,12,8,1,0,1,0,1,0,22.377,2,1,6889,3.108034,1,8,2.079442,2.079442,1,3.6,12.96,2.2377001 +0,.2084437,79,10,6,2,0,1,1,1,1,16.983,4,1,6241,2.832213,1,6,1.791759,1.791759,1,2.8,7.84,1.6983 +0,.780085,75,8,0,5,1,0,0,1,1,8.476,2,0,5625,2.137239,0,0,,-4.60517,0,2,4,.84759998 +0,.780085,69,11,2,2,1,0,1,1,1,8.476,3,0,4761,2.137239,0,2,.6931472,.6931472,1,.8,.64,.84759998 +0,.4240329,75,17,11,7,0,1,0,0,0,15.329,3,1,5625,2.729747,0,11,2.397895,2.397895,1,2,4,1.5329 +0,.2606464,74,14,6,3,0,1,1,1,0,24.938,3,1,5476,3.216393,0,6,1.791759,1.791759,1,1.8,3.24,2.4938 +0,.9848485,76,13,7,2,0,1,1,1,1,6.6,2,1,5776,1.88707,0,7,1.94591,1.94591,1,2.2,4.84,.65999999 +0,.9848485,77,16,23,2,0,1,0,0,0,6.6,2,1,5929,1.88707,0,23,3.135494,3.135494,1,2.4,5.76,.65999999 +0,.482509,71,10,3,0,0,1,0,1,1,16.58,2,1,5041,2.808197,0,3,1.098612,1.098612,1,1.2,1.44,1.658 +0,.482509,66,14,7,0,0,1,1,0,0,16.58,0,1,4356,2.808197,0,7,1.94591,1.94591,1,.2,.04,1.658 +0,.1702761,65,14,2,4,0,1,1,1,0,18.147,2,1,4225,2.898505,0,2,.6931472,.6931472,1,0,0,1.8146999 +0,.1702761,66,16,4,21,0,1,0,1,0,18.147,2,1,4356,2.898505,0,4,1.386294,1.386294,1,.2,.04,1.8146999 +0,.1958328,76,12,43,6,0,1,0,1,1,22.029,4,1,5776,3.09236,0,43,3.7612,3.7612,1,2.2,4.84,2.2028999 +0,.2157863,75,12,4,4,0,1,1,0,0,19.992,1,1,5625,2.995332,0,4,1.386294,1.386294,1,2,4,1.9992001 +0,.9976307,66,12,6,8,0,0,0,1,1,8.019,5,0,4356,2.081814,1,6,1.791759,1.791759,1,.2,.04,.80190001 +0,0,68,10,0,0,0,0,0,0,0,11.293,1,0,4624,2.424183,0,0,,-4.60517,0,.6,.36,1.1293 +0,0,65,12,2,0,0,1,1,0,0,37.713,2,1,4225,3.630005,0,2,.6931472,.6931472,1,0,0,3.7713001 +0,.4874165,71,12,7,7,0,1,1,0,0,15.576,1,1,5041,2.745731,0,7,1.94591,1.94591,1,1.2,1.44,1.5576 +0,1,79,2,5,0,1,0,1,1,1,6,2,0,6241,1.791759,1,5,1.609438,1.609438,1,2.8,7.84,.6 +0,.3692308,71,6,9,0,1,0,1,1,1,12.415,5,0,5041,2.518905,1,9,2.197225,2.197225,1,1.2,1.44,1.2415 +0,.1540942,77,17,6,2,0,0,0,0,0,42.182,1,0,5929,3.741994,0,6,1.791759,1.791759,1,2.4,5.76,4.2181999 +0,.1462317,76,17,0,0,0,0,1,0,0,44.45,0,0,5776,3.794365,0,0,,-4.60517,0,2.2,4.84,4.4450001 +0,.2647059,71,17,0,0,0,1,0,0,0,34,1,1,5041,3.526361,0,0,,-4.60517,0,1.2,1.44,3.4 +0,.2647059,67,12,6,0,0,1,1,0,0,34,3,1,4489,3.526361,0,6,1.791759,1.791759,1,.4,.16,3.4 +1,.3922688,67,12,6,0,0,1,0,0,0,49.41,4,1,4489,3.900153,0,6,1.791759,1.791759,1,.4,.16,4.941 +0,.8911434,74,12,7,0,0,0,1,0,0,14.588,3,0,5476,2.680199,0,7,1.94591,1.94591,1,1.8,3.24,1.4588 +0,.9663392,71,2,7,0,1,0,1,0,0,6.209,3,0,5041,1.826,1,7,1.94591,1.94591,1,1.2,1.44,.62090001 +0,.8140008,78,13,16,6,0,1,1,0,0,17.199,2,1,6084,2.844851,0,16,2.772589,2.772589,1,2.6,6.76,1.7198999 +0,.9322034,85,10,14,2,0,1,0,1,1,8.85,1,1,7225,2.180418,0,14,2.639057,2.639057,1,4,16,.88500004 +0,.9322034,83,8,10,0,0,1,1,1,1,8.85,4,1,6889,2.180418,0,10,2.302585,2.302585,1,3.6,12.96,.88500004 +1,0,65,8,3,0,0,1,0,0,0,14.286,1,1,4225,2.65928,1,3,1.098612,1.098612,1,0,0,1.4286 +0,.261872,85,17,5,5,0,1,1,1,1,54.561,3,1,7225,3.999319,0,5,1.609438,1.609438,1,4,16,5.4561001 +0,.3839865,76,17,5,8,0,1,1,1,1,33.147,3,1,5776,3.500952,0,5,1.609438,1.609438,1,2.2,4.84,3.3146999 +0,1,77,6,5,0,1,0,1,1,1,2.107,1,0,5929,.7452652,1,5,1.609438,1.609438,1,2.4,5.76,.21070001 +0,1,74,3,3,0,1,0,0,1,1,2.107,2,0,5476,.7452652,1,3,1.098612,1.098612,1,1.8,3.24,.21070001 +0,.5646012,85,14,5,2,0,0,1,1,1,35.069,0,0,7225,3.557317,0,5,1.609438,1.609438,1,4,16,3.5069 +0,0,74,12,22,1,0,0,1,1,0,.38,1,0,5476,-.967584,1,22,3.091043,3.091043,1,1.8,3.24,.038 +0,.584342,72,10,13,1,0,1,0,1,0,16.771,4,1,5184,2.819651,0,13,2.564949,2.564949,1,1.4,1.96,1.6771 +0,.584342,67,12,0,0,0,1,1,0,0,16.771,0,1,4489,2.819651,0,0,,-4.60517,0,.4,.16,1.6771 +0,.8346549,73,11,7,2,0,1,1,0,0,11.981,1,1,5329,2.483322,0,7,1.94591,1.94591,1,1.6,2.56,1.1981 +0,1,69,8,0,0,1,0,1,1,0,2.64,0,0,4761,.9707789,1,0,,-4.60517,0,.8,.64,.26400001 +0,.3467601,85,8,8,1,0,1,1,1,1,28.55,3,1,7225,3.351657,0,8,2.079442,2.079442,1,4,16,2.8549999 +0,0,70,13,3,1,0,1,0,0,0,50,1,1,4900,3.912023,0,3,1.098612,1.098612,1,1,1,5 +0,0,66,13,16,4,0,1,1,1,1,-1,3,1,4356,,0,16,2.772589,2.772589,1,.2,.04,-.1 +0,.738202,78,12,13,1,0,0,0,1,0,11.379,0,0,6084,2.43177,0,13,2.564949,2.564949,1,2.6,6.76,1.1379 +0,.5128518,76,9,14,12,0,0,1,1,0,16.379,5,0,5776,2.796,0,14,2.639057,2.639057,1,2.2,4.84,1.6379 +0,1.268346,72,16,13,0,0,1,0,0,0,11.038,3,1,5184,2.401344,0,13,2.564949,2.564949,1,1.4,1.96,1.1038 +0,.4,66,13,1,0,0,0,1,0,0,25,1,0,4356,3.218876,1,1,0,0,1,.2,.04,2.5 +0,.3688268,72,16,4,2,0,0,1,0,0,27.113,2,0,5184,3.300013,0,4,1.386294,1.386294,1,1.4,1.96,2.7113001 +0,.3633589,75,16,0,0,0,0,0,0,0,27.521,0,0,5625,3.314949,0,0,,-4.60517,0,2,4,2.7521 +0,.7635438,79,12,14,6,0,1,1,1,0,16.502,1,1,6241,2.803482,0,14,2.639057,2.639057,1,2.8,7.84,1.6502001 +0,.5833333,84,9,3,0,0,1,1,1,1,24,1,1,7056,3.178054,0,3,1.098612,1.098612,1,3.8,14.44,2.4 +0,1,78,12,7,2,0,0,1,1,1,12,4,0,6084,2.484907,1,7,1.94591,1.94591,1,2.6,6.76,1.2 +0,.9069768,81,6,9,1,0,0,0,0,0,10.75,3,0,6561,2.374906,0,9,2.197225,2.197225,1,3.2,10.24,1.075 +0,.9069768,78,11,8,3,0,0,1,1,0,10.75,2,0,6084,2.374906,0,8,2.079442,2.079442,1,2.6,6.76,1.075 +0,.8518689,70,10,1,1,0,1,0,1,0,13.002,1,1,4900,2.565103,0,1,0,0,1,1,1,1.3002 +0,.8518689,70,10,4,1,0,1,1,0,0,13.002,2,1,4900,2.565103,0,4,1.386294,1.386294,1,1,1,1.3002 +0,.5335556,83,6,10,0,0,0,0,1,1,11.995,1,0,6889,2.48449,0,10,2.302585,2.302585,1,3.6,12.96,1.1995 +0,.5335556,83,3,5,0,1,0,1,1,1,11.995,2,0,6889,2.48449,0,5,1.609438,1.609438,1,3.6,12.96,1.1995 +0,0,79,12,3,10,0,0,1,1,0,0,0,0,6241,,0,3,1.098612,1.098612,1,2.8,7.84,0 +0,1,74,12,9,12,1,0,1,1,1,7.572,2,0,5476,2.024457,1,9,2.197225,2.197225,1,1.8,3.24,.7572 +0,.3652941,79,16,4,3,0,0,1,0,0,34.219,2,0,6241,3.532781,0,4,1.386294,1.386294,1,2.8,7.84,3.4219002 +0,.0666807,72,11,5,2,0,1,1,1,1,23.83,2,1,5184,3.170945,0,5,1.609438,1.609438,1,1.4,1.96,2.383 +0,0,66,12,9,9,1,0,1,1,1,7.056,3,0,4356,1.953878,1,9,2.197225,2.197225,1,.2,.04,.70560002 +0,0,67,10,3,0,0,1,1,0,1,0,2,1,4489,,0,3,1.098612,1.098612,1,.4,.16,0 +0,0,75,17,28,0,0,1,0,0,0,37,2,1,5625,3.610918,1,28,3.332205,3.332205,1,2,4,3.7 +0,1,76,12,14,0,0,0,1,0,0,10,2,0,5776,2.302585,1,14,2.639057,2.639057,1,2.2,4.84,1 +0,.1575177,81,13,7,2,0,1,0,1,1,75.801,2,1,6561,4.328112,0,7,1.94591,1.94591,1,3.2,10.24,7.5801003 +0,.9933775,66,6,6,1,0,0,0,1,1,14.496,2,0,4356,2.673873,0,6,1.791759,1.791759,1,.2,.04,1.4496 +0,1,75,12,15,1,0,0,1,1,1,14,1,0,5625,2.639057,1,15,2.70805,2.70805,1,2,4,1.4 +0,0,68,11,13,0,0,0,1,0,0,21.09,1,0,4624,3.048799,1,13,2.564949,2.564949,1,.6,.36,2.109 +1,.6221223,79,11,32,5,0,1,1,1,0,16.897,4,1,6241,2.827136,0,32,3.465736,3.465736,1,2.8,7.84,1.6896999 +0,.2713102,74,12,4,0,0,1,0,1,0,20.272,0,1,5476,3.009241,0,4,1.386294,1.386294,1,1.8,3.24,2.0271999 +0,.2713102,74,12,2,0,0,1,1,0,0,20.272,2,1,5476,3.009241,0,2,.6931472,.6931472,1,1.8,3.24,2.0271999 +1,0,69,17,10,0,0,0,0,0,0,17.8,1,0,4761,2.879198,1,10,2.302585,2.302585,1,.8,.64,1.7799999 +0,.4020695,75,12,6,0,1,0,1,1,1,33.825,3,0,5625,3.5212,0,6,1.791759,1.791759,1,2,4,3.3825001 +0,.9836779,65,17,21,0,0,1,0,0,0,18.38,1,1,4225,2.911263,0,21,3.044523,3.044523,1,0,0,1.8379999 +0,0,67,13,0,0,0,0,0,0,0,16,0,0,4489,2.772589,1,0,,-4.60517,0,.4,.16,1.6 +0,.3838772,74,12,15,0,0,1,0,1,0,26.05,3,1,5476,3.260018,0,15,2.70805,2.70805,1,1.8,3.24,2.6049999 +0,.2877698,69,14,3,0,0,1,1,0,0,34.75,0,1,4761,3.54818,0,3,1.098612,1.098612,1,.8,.64,3.475 +0,0,68,5,3,0,0,1,1,0,0,7,1,1,4624,1.94591,1,3,1.098612,1.098612,1,.6,.36,.7 +1,.1479446,71,13,9,4,0,1,0,0,0,47.315,3,1,5041,3.856827,0,9,2.197225,2.197225,1,1.2,1.44,4.7314999 +1,.1493684,69,12,1,0,0,1,1,0,0,46.864,0,1,4761,3.84725,0,1,0,0,1,.8,.64,4.6863998 +0,.1515152,72,11,4,1,0,1,1,1,0,66,3,1,5184,4.189655,0,4,1.386294,1.386294,1,1.4,1.96,6.6 +0,.4469027,72,10,20,4,1,0,1,1,1,2.712,5,0,5184,.9976863,0,20,2.995732,2.995732,1,1.4,1.96,.27119999 +0,1,77,12,3,0,0,0,1,1,1,7.2,2,0,5929,1.974081,0,3,1.098612,1.098612,1,2.4,5.76,.71999998 +0,0,67,1,3,0,1,0,1,0,0,4,2,0,4489,1.386294,1,3,1.098612,1.098612,1,.4,.16,.4 +0,.8536586,75,13,2,3,0,0,1,0,0,8.2,1,0,5625,2.104134,0,2,.6931472,.6931472,1,2,4,.81999998 +0,.8536586,80,12,11,8,0,0,0,1,0,8.2,1,0,6400,2.104134,0,11,2.397895,2.397895,1,3,9,.81999998 +0,.3571676,75,12,1,0,0,0,0,0,0,60.669,1,0,5625,4.105433,0,1,0,0,1,2,4,6.0668999 +0,.1732361,75,12,0,2,0,0,0,0,0,111.882,0,0,5625,4.717445,0,0,,-4.60517,0,2,4,11.1882 +0,.388822,72,15,0,5,0,0,1,0,0,49.848,3,0,5184,3.908978,0,0,,-4.60517,0,1.4,1.96,4.9848 +0,.3983657,77,12,4,2,0,1,0,0,0,24.475,2,1,5929,3.197652,0,4,1.386294,1.386294,1,2.4,5.76,2.4475 +0,.3983657,75,12,10,3,0,1,1,1,1,24.475,1,1,5625,3.197652,0,10,2.302585,2.302585,1,2,4,2.4475 +0,.1568628,74,16,1,1,0,1,0,0,0,51,0,1,5476,3.931826,1,1,0,0,1,1.8,3.24,5.1 +0,.4705882,72,12,1,0,0,1,1,0,0,17,1,1,5184,2.833213,1,1,0,0,1,1.4,1.96,1.7 +0,1,85,6,6,0,1,0,0,1,1,4.85,1,0,7225,1.578979,1,6,1.791759,1.791759,1,4,16,.48499999 +0,1,83,6,8,2,1,0,1,1,1,4.85,3,0,6889,1.578979,1,8,2.079442,2.079442,1,3.6,12.96,.48499999 +0,.3406337,83,12,3,0,0,0,1,1,1,33.925,4,0,6889,3.524152,0,3,1.098612,1.098612,1,3.6,12.96,3.3924999 +0,.2532435,70,14,8,3,0,1,0,0,0,54.493,1,1,4900,3.998072,0,8,2.079442,2.079442,1,1,1,5.4493 +0,.2195786,84,12,1,2,0,0,1,1,1,49.554,3,0,7056,3.903063,0,1,0,0,1,3.8,14.44,4.9554001 +0,0,85,8,9,0,0,0,1,1,1,11,2,0,7225,2.397895,1,9,2.197225,2.197225,1,4,16,1.1 +0,.9619338,72,14,9,3,0,1,1,1,0,8.853,4,1,5184,2.180756,0,9,2.197225,2.197225,1,1.4,1.96,.88529997 +0,.9433962,72,11,12,4,0,1,0,1,1,10.6,3,1,5184,2.360854,0,12,2.484907,2.484907,1,1.4,1.96,1.06 +1,.0071381,65,16,2,0,0,1,0,0,0,173.436,0,1,4225,5.155808,0,2,.6931472,.6931472,1,0,0,17.3436 +0,.4090909,85,6,6,0,0,1,1,1,1,22,2,1,7225,3.091043,0,6,1.791759,1.791759,1,4,16,2.2 +0,1,67,12,7,0,0,0,1,1,0,10,2,0,4489,2.302585,1,7,1.94591,1.94591,1,.4,.16,1 +0,1,75,12,10,0,0,0,0,0,0,10,2,0,5625,2.302585,0,10,2.302585,2.302585,1,2,4,1 +0,.6622517,76,8,2,6,0,0,0,0,0,13.59,1,0,5776,2.609334,0,2,.6931472,.6931472,1,2.2,4.84,1.359 +0,.6622517,81,10,4,1,0,0,1,1,0,13.59,3,0,6561,2.609334,0,4,1.386294,1.386294,1,3.2,10.24,1.359 +0,.40571,77,14,8,12,0,0,0,0,0,26.62,0,0,5929,3.281663,0,8,2.079442,2.079442,1,2.4,5.76,2.6620001 +0,1,65,14,1,0,1,0,0,0,0,3.12,0,0,4225,1.137833,1,1,0,0,1,0,0,.31199999 +0,.127193,67,17,9,17,0,0,0,0,0,106.704,2,0,4489,4.670059,0,9,2.197225,2.197225,1,.4,.16,10.6704 +0,.8287085,75,8,18,1,0,1,1,0,0,8.757,0,1,5625,2.169853,0,18,2.890372,2.890372,1,2,4,.8757 +0,.8287085,76,8,22,3,0,1,0,1,0,8.757,0,1,5776,2.169853,0,22,3.091043,3.091043,1,2.2,4.84,.8757 +0,.2391033,71,12,2,2,0,0,0,0,0,39.209,1,0,5041,3.668906,0,2,.6931472,.6931472,1,1.2,1.44,3.9209 +0,.4693367,70,12,5,11,0,0,1,0,0,19.975,3,0,4900,2.994482,0,5,1.609438,1.609438,1,1,1,1.9975 +0,.5,85,0,6,1,1,0,1,1,1,17.16,2,0,7225,2.842581,1,6,1.791759,1.791759,1,4,16,1.716 +0,.6132712,83,14,9,0,1,0,0,0,1,24.459,3,0,6889,3.196998,0,9,2.197225,2.197225,1,3.6,12.96,2.4459 +0,0,79,14,7,0,1,0,1,1,0,9.459,2,0,6241,2.246967,0,7,1.94591,1.94591,1,2.8,7.84,.94589996 +1,.4316547,81,12,20,7,0,0,1,1,0,27.8,2,0,6561,3.325036,0,20,2.995732,2.995732,1,3.2,10.24,2.7799999 +0,.4507255,74,12,2,1,0,0,1,1,1,43.694,3,0,5476,3.777211,0,2,.6931472,.6931472,1,1.8,3.24,4.3694 +0,.5233645,65,8,2,0,0,1,0,1,1,26.75,1,1,4225,3.286535,0,2,.6931472,.6931472,1,0,0,2.675 +0,.3653706,83,13,3,0,0,1,1,1,0,49.484,1,1,6889,3.901649,0,3,1.098612,1.098612,1,3.6,12.96,4.9484001 +0,.9302326,85,9,5,1,0,1,1,0,0,8.6,1,1,7225,2.151762,0,5,1.609438,1.609438,1,4,16,.86000004 +0,.620091,77,13,2,0,0,0,0,0,0,19.352,3,0,5929,2.962796,0,2,.6931472,.6931472,1,2.4,5.76,1.9351999 +0,.620091,72,11,0,1,0,0,1,0,0,19.352,0,0,5184,2.962796,0,0,,-4.60517,0,1.4,1.96,1.9351999 +0,.99905,67,9,6,2,0,0,0,1,1,12.632,2,0,4489,2.536233,0,6,1.791759,1.791759,1,.4,.16,1.2632 +0,.6450216,69,14,3,5,1,0,1,1,1,8.316,4,0,4761,2.118181,0,3,1.098612,1.098612,1,.8,.64,.8316 +1,.2344707,65,12,8,1,0,1,1,0,0,27.432,1,1,4225,3.31171,0,8,2.079442,2.079442,1,0,0,2.7431999 +0,1,79,11,4,0,0,0,0,0,0,10.074,1,0,6241,2.309958,0,4,1.386294,1.386294,1,2.8,7.84,1.0074 +0,1,68,12,12,0,0,0,1,0,0,10.074,4,0,4624,2.309958,0,12,2.484907,2.484907,1,.6,.36,1.0074 +0,.7528231,82,14,3,0,0,1,1,0,0,12.752,2,1,6724,2.545688,0,3,1.098612,1.098612,1,3.4,11.56,1.2752 +0,.204244,66,12,4,0,0,1,1,0,0,37.7,1,1,4356,3.62966,0,4,1.386294,1.386294,1,.2,.04,3.7700001 +0,1,76,7,14,1,1,0,0,1,1,7.428,5,0,5776,2.005257,0,14,2.639057,2.639057,1,2.2,4.84,.7428 +0,.4090909,85,16,27,4,0,0,0,1,1,22,2,0,7225,3.091043,0,27,3.295837,3.295837,1,4,16,2.2 +0,0,83,14,1,0,0,0,1,1,1,0,1,0,6889,,0,1,0,0,1,3.6,12.96,0 +0,.8857404,82,12,2,1,1,0,1,1,0,13.128,4,0,6724,2.574747,0,2,.6931472,.6931472,1,3.4,11.56,1.3128 +0,.6282997,65,12,6,0,0,1,0,1,1,22.919,1,1,4225,3.131966,0,6,1.791759,1.791759,1,0,0,2.2919001 +0,.5611286,73,14,6,1,0,1,1,1,1,19.14,5,1,5329,2.95178,0,6,1.791759,1.791759,1,1.6,2.56,1.9139999 +0,.5481069,85,16,10,0,0,0,1,1,1,23.718,4,0,7225,3.166234,0,10,2.302585,2.302585,1,4,16,2.3718 +0,.6327779,71,7,9,3,0,1,1,1,1,18.964,5,1,5041,2.942543,0,9,2.197225,2.197225,1,1.2,1.44,1.8964001 +0,.6327779,79,8,8,0,0,1,0,1,1,18.964,2,1,6241,2.942543,0,8,2.079442,2.079442,1,2.8,7.84,1.8964001 +0,0,79,16,7,4,0,1,1,1,0,0,3,1,6241,,1,7,1.94591,1.94591,1,2.8,7.84,0 +0,.6518132,78,9,0,0,0,0,1,0,0,16.876,2,0,6084,2.825892,0,0,,-4.60517,0,2.6,6.76,1.6875999 +0,.4090583,66,16,14,11,0,1,0,0,0,47.382,1,1,4356,3.858243,0,14,2.639057,2.639057,1,.2,.04,4.7382 +0,.716472,78,12,10,0,0,1,0,1,1,27.052,2,1,6084,3.297761,0,10,2.302585,2.302585,1,2.6,6.76,2.7052 +0,0,72,2,2,1,1,0,0,1,0,3.6,2,0,5184,1.280934,0,2,.6931472,.6931472,1,1.4,1.96,.35999999 +0,.5063506,65,12,3,0,0,1,1,1,0,38.894,1,1,4225,3.66084,0,3,1.098612,1.098612,1,0,0,3.8894001 +0,0,79,12,10,1,0,1,0,1,1,13.163,1,1,6241,2.57741,0,10,2.302585,2.302585,1,2.8,7.84,1.3163 +0,0,74,12,13,1,0,1,1,1,0,40.265,0,1,5476,3.695482,0,13,2.564949,2.564949,1,1.8,3.24,4.0264999 +0,.7069949,72,12,13,0,0,0,1,1,1,13.324,2,0,5184,2.589567,0,13,2.564949,2.564949,1,1.4,1.96,1.3324 +0,.0888674,85,14,2,0,0,1,1,0,0,78.769,1,1,7225,4.366519,0,2,.6931472,.6931472,1,4,16,7.8768997 +0,.1780808,85,17,2,0,0,1,0,0,0,39.308,1,1,7225,3.671428,0,2,.6931472,.6931472,1,4,16,3.9307999 +0,.8852201,80,10,8,0,0,1,1,1,1,15.264,3,1,6400,2.725497,0,8,2.079442,2.079442,1,3,9,1.5264 +0,1,71,16,9,4,1,0,1,1,0,9.408,2,0,5041,2.24156,0,9,2.197225,2.197225,1,1.2,1.44,.9408 +0,.4736842,80,9,7,0,0,0,1,0,0,19,2,0,6400,2.944439,1,7,1.94591,1.94591,1,3,9,1.9 +0,.2931626,66,12,5,7,0,1,1,0,0,32.337,6,1,4356,3.476212,0,5,1.609438,1.609438,1,.2,.04,3.2337002 +0,0,85,12,4,0,0,0,0,0,0,0,1,0,7225,,0,4,1.386294,1.386294,1,4,16,0 +0,0,83,12,6,0,0,0,1,0,0,0,1,0,6889,,0,6,1.791759,1.791759,1,3.6,12.96,0 +1,.3674338,74,8,0,1,0,0,0,0,0,15.513,0,0,5476,2.741678,0,0,,-4.60517,0,1.8,3.24,1.5513 +0,.8802395,81,12,1,1,0,1,1,0,0,16.7,1,1,6561,2.815409,0,1,0,0,1,3.2,10.24,1.6700001 +0,0,72,7,6,0,0,1,1,1,0,3.75,3,1,5184,1.321756,1,6,1.791759,1.791759,1,1.4,1.96,.375 +0,0,76,4,9,0,0,1,0,1,0,15,2,1,5776,2.70805,0,9,2.197225,2.197225,1,2.2,4.84,1.5 +0,.5662514,76,12,3,6,0,0,1,0,0,7.947,3,0,5776,2.072794,0,3,1.098612,1.098612,1,2.2,4.84,.7947 +0,1,65,10,4,0,0,0,1,0,0,10,0,0,4225,2.302585,0,4,1.386294,1.386294,1,0,0,1 +0,.5194805,67,11,1,1,0,1,0,0,0,19.25,0,1,4489,2.957511,0,1,0,0,1,.4,.16,1.925 +0,.623053,66,12,4,0,0,1,1,0,0,16.05,0,1,4356,2.775709,0,4,1.386294,1.386294,1,.2,.04,1.6049999 +0,0,68,0,1,0,1,0,1,1,0,.047,1,0,4624,-3.057608,0,1,0,0,1,.6,.36,.0047 +0,.1331927,85,13,6,1,0,0,1,1,0,18.019,2,0,7225,2.891427,0,6,1.791759,1.791759,1,4,16,1.8018999 +0,1,83,14,2,0,0,1,1,1,1,12.948,0,1,6889,2.560941,0,2,.6931472,.6931472,1,3.6,12.96,1.2948 +0,.6383403,74,17,4,6,0,1,0,0,0,15.039,2,1,5476,2.710647,0,4,1.386294,1.386294,1,1.8,3.24,1.5039 +0,.5839771,74,15,3,6,0,1,1,0,0,16.439,1,1,5476,2.799657,0,3,1.098612,1.098612,1,1.8,3.24,1.6438999 +0,.5629929,74,12,8,0,0,1,0,1,0,4.945,1,1,5476,1.598377,0,8,2.079442,2.079442,1,1.8,3.24,.49450002 +0,0,73,8,2,0,1,0,1,0,1,6.768,2,0,5329,1.912206,1,2,.6931472,.6931472,1,1.6,2.56,.67680001 +0,.5741532,85,12,15,2,0,1,1,1,0,13.58,4,1,7225,2.608598,1,15,2.70805,2.70805,1,4,16,1.358 +0,.8971962,71,7,2,0,0,1,0,0,0,10.7,1,1,5041,2.370244,0,2,.6931472,.6931472,1,1.2,1.44,1.07 +0,1,71,15,7,17,0,1,0,1,1,8.676,1,1,5041,2.160561,1,7,1.94591,1.94591,1,1.2,1.44,.86759996 +0,1,69,13,1,1,0,1,1,0,0,8.676,2,1,4761,2.160561,1,1,0,0,1,.8,.64,.86759996 +0,1,75,8,1,0,0,0,1,0,0,6,1,0,5625,1.791759,1,1,0,0,1,2,4,.6 +0,.9551605,78,16,2,0,0,1,1,1,1,3.769,2,1,6084,1.32681,0,2,.6931472,.6931472,1,2.6,6.76,.37690001 +0,.625,83,8,4,0,0,0,1,0,0,14.4,1,0,6889,2.667228,0,4,1.386294,1.386294,1,3.6,12.96,1.44 +0,1,85,7,7,0,1,0,1,1,1,8.032,2,0,7225,2.083434,1,7,1.94591,1.94591,1,4,16,.80319996 +0,.837508,81,17,5,28,0,1,0,1,0,14.013,2,1,6561,2.639985,0,5,1.609438,1.609438,1,3.2,10.24,1.4013 +0,.3347324,79,12,5,2,0,1,0,0,0,38.837,2,1,6241,3.659374,0,5,1.609438,1.609438,1,2.8,7.84,3.8837002 +0,.5,67,13,17,2,0,0,1,0,0,30,2,0,4489,3.401197,0,17,2.833213,2.833213,1,.4,.16,3 +0,.6582412,81,10,9,4,0,1,1,1,1,15.192,4,1,6561,2.720769,0,9,2.197225,2.197225,1,3.2,10.24,1.5192 +0,.3087806,75,12,8,0,0,1,0,0,0,17.812,3,1,5625,2.879872,0,8,2.079442,2.079442,1,2,4,1.7812 +0,.3087806,73,12,2,5,0,1,1,1,0,17.812,5,1,5329,2.879872,0,2,.6931472,.6931472,1,1.6,2.56,1.7812 +0,.1565969,74,6,18,0,1,0,1,0,0,15.045,3,0,5476,2.711046,1,18,2.890372,2.890372,1,1.8,3.24,1.5045 +0,.3231888,81,14,14,10,0,0,1,1,0,11.139,1,0,6561,2.410452,0,14,2.639057,2.639057,1,3.2,10.24,1.1139 +0,0,68,12,8,1,0,0,1,1,0,9.855,2,0,4624,2.287979,0,8,2.079442,2.079442,1,.6,.36,.98549995 +0,0,74,8,11,0,0,0,0,0,0,7.956,2,0,5476,2.073926,0,11,2.397895,2.397895,1,1.8,3.24,.79559999 +0,.2877773,72,16,8,3,0,0,0,0,0,38.224,0,0,5184,3.643464,0,8,2.079442,2.079442,1,1.4,1.96,3.8223999 +0,.3041951,70,12,2,0,0,0,1,0,0,36.161,2,0,4900,3.587981,0,2,.6931472,.6931472,1,1,1,3.6160999 +0,0,76,12,10,0,1,0,1,1,1,18.146,5,0,5776,2.89845,0,10,2.302585,2.302585,1,2.2,4.84,1.8146 +0,0,76,11,15,0,0,0,1,0,0,0,3,0,5776,,0,15,2.70805,2.70805,1,2.2,4.84,0 +0,1,71,14,3,0,0,1,0,0,0,4.032,3,1,5041,1.394263,0,3,1.098612,1.098612,1,1.2,1.44,.40320001 +0,1,68,9,4,0,0,1,1,0,0,4.032,0,1,4624,1.394263,0,4,1.386294,1.386294,1,.6,.36,.40320001 +0,.821898,67,12,3,3,0,1,0,1,1,23.582,1,1,4489,3.160484,0,3,1.098612,1.098612,1,.4,.16,2.3582001 +0,.6666667,65,12,4,16,0,0,1,1,1,18,3,0,4225,2.890372,0,4,1.386294,1.386294,1,0,0,1.8 +0,.6666667,78,16,7,0,0,0,1,0,0,14.4,2,0,6084,2.667228,1,7,1.94591,1.94591,1,2.6,6.76,1.44 +0,0,67,3,2,0,1,0,1,0,0,6,1,0,4489,1.791759,1,2,.6931472,.6931472,1,.4,.16,.6 +0,.3305421,77,14,3,0,0,1,1,0,0,36.304,0,1,5929,3.591928,0,3,1.098612,1.098612,1,2.4,5.76,3.6304001 +0,.95165,81,8,5,7,0,0,1,1,0,10.424,2,0,6561,2.344111,0,5,1.609438,1.609438,1,3.2,10.24,1.0424 +0,.2749344,72,12,0,5,0,1,1,0,0,23.642,2,1,5184,3.163025,0,0,,-4.60517,0,1.4,1.96,2.3642 +0,.4333333,74,12,1,5,0,1,0,0,0,15,1,1,5476,2.70805,0,1,0,0,1,1.8,3.24,1.5 +0,0,74,15,8,23,0,1,1,1,1,22.108,1,1,5476,3.09594,0,8,2.079442,2.079442,1,1.8,3.24,2.2108 +0,.8348106,75,5,5,0,0,1,1,1,1,9.928,3,1,5625,2.295359,0,5,1.609438,1.609438,1,2,4,.99280005 +0,0,66,4,0,0,1,0,0,0,0,0,0,0,4356,,1,0,,-4.60517,0,.2,.04,0 +1,0,68,12,2,0,0,1,0,0,0,11.7,1,1,4624,2.459589,1,2,.6931472,.6931472,1,.6,.36,1.17 +0,0,69,12,2,0,0,1,1,0,0,9.724,0,1,4761,2.274597,1,2,.6931472,.6931472,1,.8,.64,.9724 +0,.1220488,80,17,2,20,0,0,0,1,0,99.96,1,0,6400,4.60477,1,2,.6931472,.6931472,1,3,9,9.9959999 +0,.6666667,71,17,2,4,0,1,1,0,0,18.3,0,1,5041,2.906901,1,2,.6931472,.6931472,1,1.2,1.44,1.8299999 +0,.985058,78,12,2,0,0,1,0,0,0,19.676,2,1,6084,2.9794,0,2,.6931472,.6931472,1,2.6,6.76,1.9676001 +0,.985058,76,12,0,0,0,0,1,0,0,19.676,0,0,5776,2.9794,0,0,,-4.60517,0,2.2,4.84,1.9676001 +0,.2118831,76,15,5,0,0,1,0,0,0,22.654,1,1,5776,3.120336,0,5,1.609438,1.609438,1,2.2,4.84,2.2653999 +0,.6670412,73,13,1,0,0,0,1,0,0,14.239,1,0,5329,2.655985,0,1,0,0,1,1.6,2.56,1.4239 +0,.6670412,73,14,3,0,0,0,0,0,0,14.239,2,0,5329,2.655985,0,3,1.098612,1.098612,1,1.6,2.56,1.4239 +0,0,65,6,4,0,0,0,0,0,0,18.267,1,0,4225,2.905096,1,4,1.386294,1.386294,1,0,0,1.8267 +0,1,77,12,4,0,0,0,0,0,0,7.2,2,0,5929,1.974081,1,4,1.386294,1.386294,1,2.4,5.76,.71999998 +0,1,77,4,1,0,0,0,1,0,0,7.2,5,0,5929,1.974081,1,1,0,0,1,2.4,5.76,.71999998 +0,1,84,0,2,0,0,0,1,1,1,12,1,0,7056,2.484907,1,2,.6931472,.6931472,1,3.8,14.44,1.2 +0,0,81,11,2,0,1,0,1,0,0,7,2,0,6561,1.94591,1,2,.6931472,.6931472,1,3.2,10.24,.7 +0,.4265302,85,12,4,0,0,0,1,0,0,28.134,1,0,7225,3.336979,0,4,1.386294,1.386294,1,4,16,2.8134001 +0,1,85,16,12,8,0,1,1,1,1,7.046,3,1,7225,1.95246,0,12,2.484907,2.484907,1,4,16,.7046 +0,.25,65,8,11,0,0,0,1,0,0,24,4,0,4225,3.178054,1,11,2.397895,2.397895,1,0,0,2.4 +0,.368932,72,12,1,1,0,1,0,0,0,25.75,1,1,5184,3.248435,0,1,0,0,1,1.4,1.96,2.575 +0,.2657343,70,12,1,1,0,1,1,0,0,35.75,2,1,4900,3.57655,0,1,0,0,1,1,1,3.575 +0,.2368947,85,17,0,0,0,1,1,1,1,29.549,0,1,7225,3.38605,1,0,,-4.60517,0,4,16,2.9549 +0,0,74,12,0,0,0,0,1,0,1,0,1,0,5476,,0,0,,-4.60517,0,1.8,3.24,0 +0,1,82,14,11,0,1,0,1,1,0,6.552,1,0,6724,1.87977,0,11,2.397895,2.397895,1,3.4,11.56,.6552 +0,1,77,10,4,0,0,0,0,1,0,5.047,0,0,5929,1.618794,0,4,1.386294,1.386294,1,2.4,5.76,.50469999 +0,1,72,12,1,0,0,0,1,1,1,5.047,1,0,5184,1.618794,0,1,0,0,1,1.4,1.96,.50469999 +0,.3333412,71,17,5,0,0,1,0,0,0,42.191,2,1,5041,3.742207,0,5,1.609438,1.609438,1,1.2,1.44,4.2191002 +0,1,85,11,1,1,0,0,1,0,1,11.11,0,0,7225,2.407845,0,1,0,0,1,4,16,1.111 +0,.2345999,71,17,1,1,0,0,1,1,0,84.399,1,0,5041,4.435555,0,1,0,0,1,1.2,1.44,8.4399002 +0,.6284929,78,12,8,8,0,1,0,1,1,13.098,4,1,6084,2.572459,0,8,2.079442,2.079442,1,2.6,6.76,1.3098 +0,.6284929,70,12,7,1,0,1,1,0,0,13.098,2,1,4900,2.572459,0,7,1.94591,1.94591,1,1,1,1.3098 +0,.9945582,69,16,10,3,0,1,1,1,0,7.718,2,1,4761,2.043555,0,10,2.302585,2.302585,1,.8,.64,.77179999 +0,1,76,5,2,0,1,0,0,0,1,8.5,1,0,5776,2.140066,1,2,.6931472,.6931472,1,2.2,4.84,.85 +0,.8717949,78,6,2,0,1,0,1,1,1,9.75,3,0,6084,2.277267,1,2,.6931472,.6931472,1,2.6,6.76,.975 +0,.9715288,75,8,18,0,0,1,1,1,1,14.822,4,1,5625,2.696113,0,18,2.890372,2.890372,1,2,4,1.4822 +0,.1936296,69,12,0,0,0,1,0,0,0,10.329,2,1,4761,2.334955,0,0,,-4.60517,0,.8,.64,1.0329 +0,0,78,3,5,1,0,0,1,1,1,0,3,0,6084,,1,5,1.609438,1.609438,1,2.6,6.76,0 +0,.975,77,7,7,0,0,0,0,0,0,4,1,0,5929,1.386294,0,7,1.94591,1.94591,1,2.4,5.76,.4 +0,.207013,65,12,0,2,0,0,1,1,1,31.399,0,0,4225,3.446776,0,0,,-4.60517,0,0,0,3.1399 +0,1,73,15,8,1,0,1,1,0,0,14.52,2,1,5329,2.675527,0,8,2.079442,2.079442,1,1.6,2.56,1.452 +0,.9993812,73,12,8,11,0,1,0,0,0,19.394,2,1,5329,2.964964,0,8,2.079442,2.079442,1,1.6,2.56,1.9393999 +0,.9993812,73,17,3,2,0,1,1,0,0,19.394,1,1,5329,2.964964,0,3,1.098612,1.098612,1,1.6,2.56,1.9393999 +0,.6123385,83,15,11,2,0,0,0,1,1,23.99,3,0,6889,3.177637,0,11,2.397895,2.397895,1,3.6,12.96,2.399 +0,0,71,3,13,0,1,0,1,1,0,5.7,3,0,5041,1.740466,1,13,2.564949,2.564949,1,1.2,1.44,.56999998 +0,0,85,2,3,0,1,0,0,1,0,5.7,1,0,7225,1.740466,1,3,1.098612,1.098612,1,4,16,.56999998 +0,.2092196,71,12,12,1,1,0,1,1,1,14.339,1,0,5041,2.662983,1,12,2.484907,2.484907,1,1.2,1.44,1.4339 +0,.6,65,8,7,0,0,1,0,0,0,25,4,1,4225,3.218876,0,7,1.94591,1.94591,1,0,0,2.5 +0,0,78,10,0,0,0,1,0,0,0,47.334,1,1,6084,3.857229,0,0,,-4.60517,0,2.6,6.76,4.7334 +0,0,75,10,8,0,0,1,1,0,0,12.334,1,1,5625,2.51236,0,8,2.079442,2.079442,1,2,4,1.2334 +0,.709607,65,8,23,1,0,1,0,1,1,18.32,1,1,4225,2.907993,0,23,3.135494,3.135494,1,0,0,1.832 +0,.2858193,65,16,9,1,0,1,0,0,0,48.982,1,1,4225,3.891453,0,9,2.197225,2.197225,1,0,0,4.8981998 +0,0,70,14,7,0,0,1,0,0,0,25,1,1,4900,3.218876,1,7,1.94591,1.94591,1,1,1,2.5 +0,.6092917,67,11,3,2,0,0,1,0,0,13.13,1,0,4489,2.5749,0,3,1.098612,1.098612,1,.4,.16,1.313 +0,.4523393,85,4,6,4,1,0,1,1,1,14.299,2,0,7225,2.66019,0,6,1.791759,1.791759,1,4,16,1.4299 +0,.5237808,85,6,8,0,1,0,0,1,1,16.589,2,0,7225,2.80874,0,8,2.079442,2.079442,1,4,16,1.6589001 +0,1,83,8,1,1,0,0,1,1,0,9.2,2,0,6889,2.219203,1,1,0,0,1,3.6,12.96,.91999998 +0,.2388535,81,4,7,0,1,0,1,0,0,15.7,2,0,6561,2.753661,1,7,1.94591,1.94591,1,3.2,10.24,1.57 +0,1,77,12,2,0,0,0,1,0,0,10,3,0,5929,2.302585,1,2,.6931472,.6931472,1,2.4,5.76,1 +0,.5034261,71,13,10,1,0,0,1,1,0,21.453,3,0,5041,3.065865,0,10,2.302585,2.302585,1,1.2,1.44,2.1452999 +0,.9202454,77,7,0,0,0,0,0,0,1,8.15,2,0,5929,2.098018,1,0,,-4.60517,0,2.4,5.76,.81499996 +0,.7109005,76,8,1,1,0,0,1,1,1,10.55,3,0,5776,2.356126,1,1,0,0,1,2.2,4.84,1.055 +0,.0884861,65,16,0,0,0,0,1,0,0,28.14,0,0,4225,3.337192,0,0,,-4.60517,0,0,0,2.8139999 +0,1,70,8,8,0,1,0,0,0,0,6.8,3,0,4900,1.916923,0,8,2.079442,2.079442,1,1,1,.68000002 +0,1,77,8,3,0,1,0,0,1,1,7,2,0,5929,1.94591,1,3,1.098612,1.098612,1,2.4,5.76,.7 +0,.9578544,73,12,3,4,0,0,0,0,0,6.525,0,0,5329,1.875641,0,3,1.098612,1.098612,1,1.6,2.56,.65250001 +0,1,85,12,2,0,0,0,1,1,1,5.18,2,0,7225,1.644805,0,2,.6931472,.6931472,1,4,16,.51799998 +0,0,71,1,4,0,1,0,1,1,0,1.308,3,0,5041,.2684992,1,4,1.386294,1.386294,1,1.2,1.44,.1308 +0,1,75,8,3,0,0,1,1,1,0,11.532,3,1,5625,2.445126,0,3,1.098612,1.098612,1,2,4,1.1532 +0,.9090909,84,11,16,0,1,0,1,1,1,6.864,4,0,7056,1.92629,0,16,2.772589,2.772589,1,3.8,14.44,.68639998 +1,.2852776,68,17,5,0,0,1,1,0,0,49.075,1,1,4624,3.89335,1,5,1.609438,1.609438,1,.6,.36,4.9075001 +0,0,69,11,17,3,1,0,1,1,1,6.624,4,0,4761,1.890699,1,17,2.833213,2.833213,1,.8,.64,.66240001 +0,.2223281,85,12,2,0,0,1,1,1,1,37.782,2,1,7225,3.631833,0,2,.6931472,.6931472,1,4,16,3.7782001 +0,.095774,84,8,22,0,0,1,1,1,1,25.059,3,1,7056,3.221233,1,22,3.091043,3.091043,1,3.8,14.44,2.5059 +0,.4,73,12,1,0,0,0,1,1,1,15,3,0,5329,2.70805,0,1,0,0,1,1.6,2.56,1.5 +0,1,85,8,0,1,0,0,1,1,1,11.58,1,0,7225,2.44928,1,0,,-4.60517,0,4,16,1.158 +0,1,73,14,8,19,1,0,1,0,1,8.032,1,0,5329,2.083434,1,8,2.079442,2.079442,1,1.6,2.56,.80319996 +0,0,85,12,3,0,0,1,0,1,0,0,1,1,7225,,0,3,1.098612,1.098612,1,4,16,0 +0,.974578,76,14,13,10,0,0,0,1,1,9.834,3,0,5776,2.285846,0,13,2.564949,2.564949,1,2.2,4.84,.98339996 +0,.974578,76,16,2,7,0,0,1,1,1,9.834,3,0,5776,2.285846,0,2,.6931472,.6931472,1,2.2,4.84,.98339996 +0,.3047851,67,12,3,1,0,1,1,0,0,32.81,0,1,4489,3.490733,0,3,1.098612,1.098612,1,.4,.16,3.2810001 +0,1,84,12,5,3,0,0,0,1,1,14.556,2,0,7056,2.678003,0,5,1.609438,1.609438,1,3.8,14.44,1.4556 +0,1,82,13,0,10,0,0,1,0,0,14.52,0,0,6724,2.675527,0,0,,-4.60517,0,3.4,11.56,1.452 +0,.0231474,66,16,16,0,0,1,0,0,0,159.802,1,1,4356,5.073936,0,16,2.772589,2.772589,1,.2,.04,15.9802 +0,.305154,65,12,2,0,0,1,1,0,0,36.729,1,1,4225,3.603567,0,2,.6931472,.6931472,1,0,0,3.6729 +0,0,75,6,3,0,0,1,1,1,1,9.4,3,1,5625,2.24071,1,3,1.098612,1.098612,1,2,4,.93999996 +0,0,71,10,0,0,1,0,0,0,0,7.957,0,0,5041,2.074052,1,0,,-4.60517,0,1.2,1.44,.79569998 +0,.9811321,83,5,6,2,1,0,1,1,1,6.996,2,0,6889,1.945338,0,6,1.791759,1.791759,1,3.6,12.96,.69959998 +0,0,78,4,2,0,0,0,0,1,1,0,1,0,6084,,1,2,.6931472,.6931472,1,2.6,6.76,0 +0,0,72,5,4,0,0,0,1,0,0,0,2,0,5184,,1,4,1.386294,1.386294,1,1.4,1.96,0 +0,.7614041,68,2,14,4,0,0,0,0,0,24.728,2,0,4624,3.207936,1,14,2.639057,2.639057,1,.6,.36,2.4728001 +0,0,65,3,12,0,0,0,1,0,0,0,1,0,4225,,1,12,2.484907,2.484907,1,0,0,0 +0,.997391,78,17,10,1,0,1,0,1,1,5.366,4,1,6084,1.680083,1,10,2.302585,2.302585,1,2.6,6.76,.53660002 +0,.997391,74,12,8,1,0,1,1,1,1,5.366,4,1,5476,1.680083,1,8,2.079442,2.079442,1,1.8,3.24,.53660002 +0,.830133,82,12,15,11,0,0,1,0,0,16.248,4,0,6724,2.78797,0,15,2.70805,2.70805,1,3.4,11.56,1.6247999 +0,.4615385,84,11,8,0,0,0,1,0,0,26,3,0,7056,3.258096,0,8,2.079442,2.079442,1,3.8,14.44,2.6 +0,.7349682,72,17,43,2,0,1,0,1,0,29.687,3,1,5184,3.390709,0,43,3.7612,3.7612,1,1.4,1.96,2.9687 +0,.7349682,72,16,2,1,0,1,1,1,0,29.687,1,1,5184,3.390709,0,2,.6931472,.6931472,1,1.4,1.96,2.9687 +0,1,83,1,1,15,0,0,0,1,1,8,0,0,6889,2.079442,1,1,0,0,1,3.6,12.96,.8 +0,.0877938,67,12,9,45,0,1,1,0,0,140.249,2,1,4489,4.943419,0,9,2.197225,2.197225,1,.4,.16,14.024899 +0,0,76,12,2,3,0,1,1,0,0,30.439,1,1,5776,3.415725,0,2,.6931472,.6931472,1,2.2,4.84,3.0438999 +0,.6712418,85,11,5,3,0,0,1,1,0,7.723,4,0,7225,2.044203,0,5,1.609438,1.609438,1,4,16,.7723 +0,0,71,9,0,0,1,0,0,0,0,9.459,0,0,5041,2.246967,1,0,,-4.60517,0,1.2,1.44,.94589996 +0,0,69,6,14,1,1,0,1,1,1,9.459,2,0,4761,2.246967,1,14,2.639057,2.639057,1,.8,.64,.94589996 +0,.9393939,81,12,0,0,0,0,1,0,0,9.9,1,0,6561,2.292535,1,0,,-4.60517,0,3.2,10.24,.98999996 +0,.9393939,80,12,0,0,0,0,0,0,0,9.9,0,0,6400,2.292535,1,0,,-4.60517,0,3,9,.98999996 +0,0,80,0,3,1,1,0,1,1,1,0,3,0,6400,,1,3,1.098612,1.098612,1,3,9,0 +0,1,67,12,8,1,1,0,1,0,0,8.4,1,0,4489,2.128232,1,8,2.079442,2.079442,1,.4,.16,.83999996 +0,.9560839,74,12,4,4,0,1,0,1,1,15.689,1,1,5476,2.75296,0,4,1.386294,1.386294,1,1.8,3.24,1.5689 +0,.084246,85,7,20,1,1,0,0,1,1,29.675,4,0,7225,3.390305,0,20,2.995732,2.995732,1,4,16,2.9674999 +0,.562017,80,8,4,2,0,0,1,1,0,12.811,1,0,6400,2.550304,0,4,1.386294,1.386294,1,3,9,1.2811 +0,1,75,12,7,0,1,0,0,0,0,6,0,0,5625,1.791759,1,7,1.94591,1.94591,1,2,4,.6 +0,.4929792,73,14,9,24,0,0,0,0,0,12.463,1,0,5329,2.522764,1,9,2.197225,2.197225,1,1.6,2.56,1.2463 +0,.4929792,70,13,6,3,0,0,1,0,0,12.463,4,0,4900,2.522764,1,6,1.791759,1.791759,1,1,1,1.2463 +0,.6435643,72,8,0,0,0,0,0,0,0,10.1,0,0,5184,2.312536,0,0,,-4.60517,0,1.4,1.96,1.01 +0,0,82,3,3,0,0,0,1,1,1,0,2,0,6724,,0,3,1.098612,1.098612,1,3.4,11.56,0 +0,.1393088,75,13,0,0,0,0,1,0,0,71.783,0,0,5625,4.273648,0,0,,-4.60517,0,2,4,7.1782997 +0,.9124088,69,3,0,0,1,0,0,1,0,6.576,0,0,4761,1.883427,0,0,,-4.60517,0,.8,.64,.65760002 +0,.4430769,70,12,4,2,0,1,1,0,0,32.5,1,1,4900,3.48124,0,4,1.386294,1.386294,1,1,1,3.25 +0,0,75,17,4,3,0,1,1,0,0,39.046,0,1,5625,3.664741,0,4,1.386294,1.386294,1,2,4,3.9046001 +0,1,75,3,7,0,1,0,1,0,1,6.3,1,0,5625,1.84055,1,7,1.94591,1.94591,1,2,4,.63000002 +0,.4667445,79,12,5,1,0,1,0,1,0,20.568,2,1,6241,3.023736,0,5,1.609438,1.609438,1,2.8,7.84,2.0568001 +0,0,66,0,13,0,1,0,0,1,1,9.459,1,0,4356,2.246967,0,13,2.564949,2.564949,1,.2,.04,.94589996 +0,0,66,11,0,0,0,0,1,0,0,14.4,1,0,4356,2.667228,0,0,,-4.60517,0,.2,.04,1.44 +0,.4549027,68,8,0,0,0,1,0,0,0,10.433,0,1,4624,2.344974,0,0,,-4.60517,0,.6,.36,1.0433 +0,.8852826,68,9,3,5,0,1,1,0,0,5.361,1,1,4624,1.679151,0,3,1.098612,1.098612,1,.6,.36,.53610001 +0,1,75,8,0,0,0,1,0,0,0,10,1,1,5625,2.302585,1,0,,-4.60517,0,2,4,1 +0,1,67,10,4,2,0,1,1,0,0,10,0,1,4489,2.302585,1,4,1.386294,1.386294,1,.4,.16,1 +0,.8985507,79,12,1,3,0,0,0,1,0,8.625,3,0,6241,2.154665,1,1,0,0,1,2.8,7.84,.8625 +0,.8985507,71,11,1,0,0,0,1,0,0,8.625,2,0,5041,2.154665,1,1,0,0,1,1.2,1.44,.8625 +0,.6723443,66,12,11,6,0,0,0,0,0,22.31,3,0,4356,3.105035,0,11,2.397895,2.397895,1,.2,.04,2.2309999 +0,1,85,5,2,0,1,0,1,1,0,6,2,0,7225,1.791759,1,2,.6931472,.6931472,1,4,16,.6 +0,.1418842,79,16,2,1,0,0,0,1,0,7.048,2,0,6241,1.952744,0,2,.6931472,.6931472,1,2.8,7.84,.70479999 +0,.1418842,77,14,4,2,0,0,1,1,0,7.048,1,0,5929,1.952744,0,4,1.386294,1.386294,1,2.4,5.76,.70479999 +0,.0426133,71,16,3,0,0,1,0,0,0,41.067,0,1,5041,3.715205,0,3,1.098612,1.098612,1,1.2,1.44,4.1067001 +0,.0326346,67,12,4,16,0,1,1,1,0,53.624,3,1,4489,3.981997,0,4,1.386294,1.386294,1,.4,.16,5.3624001 +0,.9222661,71,12,23,6,0,1,1,1,1,15.18,3,1,5041,2.719979,0,23,3.135494,3.135494,1,1.2,1.44,1.518 +0,0,70,12,2,0,1,0,0,0,0,0,0,0,4900,,0,2,.6931472,.6931472,1,1,1,0 +0,1,65,8,7,0,1,0,1,1,0,8.664,2,0,4225,2.159176,1,7,1.94591,1.94591,1,0,0,.86639996 +0,.0108572,83,17,1,0,0,1,0,1,0,138.341,0,1,6889,4.929722,0,1,0,0,1,3.6,12.96,13.8341 +0,.0601478,83,17,7,7,0,1,1,1,0,29.095,3,1,6889,3.370566,0,7,1.94591,1.94591,1,3.6,12.96,2.9094999 +0,.3947369,85,12,8,13,0,1,0,0,0,7.6,0,1,7225,2.028148,0,8,2.079442,2.079442,1,4,16,.75999999 +0,.1569434,85,17,3,0,0,0,1,1,0,63.233,0,0,7225,4.146826,0,3,1.098612,1.098612,1,4,16,6.3233002 +0,.4098361,67,12,4,0,0,0,1,1,0,24.4,1,0,4489,3.194583,0,4,1.386294,1.386294,1,.4,.16,2.44 +0,0,85,12,3,3,0,0,0,0,0,1.2,1,0,7225,.1823216,0,3,1.098612,1.098612,1,4,16,.12 +0,0,85,12,6,0,0,0,1,1,0,1.2,2,0,7225,.1823216,0,6,1.791759,1.791759,1,4,16,.12 +0,1,85,8,10,0,1,0,0,0,1,6,3,0,7225,1.791759,0,10,2.302585,2.302585,1,4,16,.6 +0,0,71,12,15,2,0,1,1,0,0,19.6,2,1,5041,2.97553,0,15,2.70805,2.70805,1,1.2,1.44,1.96 +0,.106218,85,13,3,2,0,0,1,1,1,15.6,0,0,7225,2.747271,0,3,1.098612,1.098612,1,4,16,1.56 +0,.5,74,8,7,0,0,0,1,0,1,14,3,0,5476,2.639057,1,7,1.94591,1.94591,1,1.8,3.24,1.4 +0,1,76,8,3,0,0,1,0,1,1,4.698,2,1,5776,1.547137,0,3,1.098612,1.098612,1,2.2,4.84,.4698 +0,1,76,14,0,0,0,1,1,0,0,4.698,2,1,5776,1.547137,0,0,,-4.60517,0,2.2,4.84,.4698 +0,.3846154,83,12,0,0,0,0,1,0,0,15.6,0,0,6889,2.747271,1,0,,-4.60517,0,3.6,12.96,1.56 +0,.5479452,70,12,5,3,0,0,1,1,0,21.9,2,0,4900,3.086487,0,5,1.609438,1.609438,1,1,1,2.19 +0,.9108955,73,16,22,0,0,0,0,1,1,8.967,4,0,5329,2.193551,0,22,3.091043,3.091043,1,1.6,2.56,.8967 +0,.9108955,74,12,7,21,0,0,1,1,1,8.967,3,0,5476,2.193551,0,7,1.94591,1.94591,1,1.8,3.24,.8967 +0,1,73,12,7,0,0,0,1,0,0,12,1,0,5329,2.484907,0,7,1.94591,1.94591,1,1.6,2.56,1.2 +0,.7857453,82,12,3,1,0,0,1,1,1,23.01,4,0,6724,3.135929,0,3,1.098612,1.098612,1,3.4,11.56,2.301 +0,.4272251,83,12,8,5,0,1,1,0,0,23.875,2,1,6889,3.172832,0,8,2.079442,2.079442,1,3.6,12.96,2.3875 +0,0,67,10,9,0,1,0,1,1,1,0,2,0,4489,,1,9,2.197225,2.197225,1,.4,.16,0 +0,.7750629,75,11,7,1,0,0,0,0,0,12.319,1,0,5625,2.511143,0,7,1.94591,1.94591,1,2,4,1.2319 +0,.7750629,73,12,7,3,0,0,1,1,1,12.319,7,0,5329,2.511143,0,7,1.94591,1.94591,1,1.6,2.56,1.2319 +0,1,78,11,14,0,0,0,1,1,1,11.52,3,0,6084,2.444085,1,14,2.639057,2.639057,1,2.6,6.76,1.152 +0,0,78,9,4,0,1,0,1,1,1,6.624,2,0,6084,1.890699,1,4,1.386294,1.386294,1,2.6,6.76,.66240001 +0,.8994471,74,15,4,0,0,0,0,0,0,9.766,2,0,5476,2.278907,0,4,1.386294,1.386294,1,1.8,3.24,.97659998 +0,.5394771,80,8,5,1,0,1,0,0,0,15.756,3,1,6400,2.757221,0,5,1.609438,1.609438,1,3,9,1.5756 +0,.5394771,71,12,3,0,0,1,1,0,0,15.756,2,1,5041,2.757221,0,3,1.098612,1.098612,1,1.2,1.44,1.5756 +0,.2358079,85,12,7,0,0,1,1,1,0,45.8,0,1,7225,3.824284,0,7,1.94591,1.94591,1,4,16,4.5799999 +0,.6412723,80,16,13,1,0,1,0,0,0,15.594,4,1,6400,2.746886,0,13,2.564949,2.564949,1,3,9,1.5594 +0,.6412723,78,13,30,0,0,1,1,1,1,15.594,6,1,6084,2.746886,0,30,3.401197,3.401197,1,2.6,6.76,1.5594 +1,.0531993,66,11,0,0,0,1,1,0,0,75.189,3,1,4356,4.320005,1,0,,-4.60517,0,.2,.04,7.5189003 +0,0,71,12,6,0,1,0,1,0,0,.099,3,0,5041,-2.312635,0,6,1.791759,1.791759,1,1.2,1.44,.0099 +0,0,67,14,11,0,1,0,0,1,1,9.801,2,0,4489,2.282484,0,11,2.397895,2.397895,1,.4,.16,.98009996 +0,.3738379,71,9,24,21,0,1,1,1,1,30.334,2,1,5041,3.412269,0,24,3.178054,3.178054,1,1.2,1.44,3.0334 +0,.2984841,69,12,3,18,0,1,1,0,1,29.422,5,1,4761,3.381743,0,3,1.098612,1.098612,1,.8,.64,2.9422001 +0,1,79,12,25,8,0,1,0,1,0,7.02,4,1,6241,1.948763,0,25,3.218876,3.218876,1,2.8,7.84,.702 +0,.8693888,74,12,12,4,0,0,1,1,0,11.829,2,0,5476,2.470554,1,12,2.484907,2.484907,1,1.8,3.24,1.1829 +0,.8693888,78,12,12,3,0,0,0,0,0,11.829,1,0,6084,2.470554,1,12,2.484907,2.484907,1,2.6,6.76,1.1829 +0,1,74,12,0,0,0,0,1,0,0,12,0,0,5476,2.484907,0,0,,-4.60517,0,1.8,3.24,1.2 +0,1,69,9,4,17,0,0,1,1,1,9.024,2,0,4761,2.199888,0,4,1.386294,1.386294,1,.8,.64,.90240002 +0,.7348587,75,9,3,1,0,1,0,0,0,11.888,1,1,5625,2.475529,0,3,1.098612,1.098612,1,2,4,1.1888 +0,.7348587,70,12,12,3,0,1,1,0,0,11.888,0,1,4900,2.475529,0,12,2.484907,2.484907,1,1,1,1.1888 +0,0,73,17,12,24,0,1,1,1,1,34.328,3,1,5329,3.535961,0,12,2.484907,2.484907,1,1.6,2.56,3.4327999 +0,.3517662,76,17,4,2,0,1,0,0,0,62.027,2,1,5776,4.12757,0,4,1.386294,1.386294,1,2.2,4.84,6.2027 +0,.8094406,69,12,1,2,1,0,1,0,0,6.864,0,0,4761,1.92629,0,1,0,0,1,.8,.64,.68639998 +0,1,67,8,3,0,0,0,1,0,0,8.9,0,0,4489,2.186051,1,3,1.098612,1.098612,1,.4,.16,.88999996 +0,1,76,4,3,0,1,0,1,0,0,9,1,0,5776,2.197225,1,3,1.098612,1.098612,1,2.2,4.84,.9 +0,.1797753,76,12,4,0,0,0,0,0,0,22.25,0,0,5776,3.102342,0,4,1.386294,1.386294,1,2.2,4.84,2.225 +0,.9411765,72,10,1,0,0,0,1,0,0,4.25,0,0,5184,1.446919,0,1,0,0,1,1.4,1.96,.425 +0,.9765625,85,12,30,8,0,1,1,1,1,7.68,3,1,7225,2.03862,0,30,3.401197,3.401197,1,4,16,.76799998 +0,.5720548,67,12,7,2,0,0,0,1,1,23.725,1,0,4489,3.166529,0,7,1.94591,1.94591,1,.4,.16,2.3725 +0,0,72,14,1,0,1,0,0,0,1,15.869,1,0,5184,2.764368,0,1,0,0,1,1.4,1.96,1.5869 +0,1,77,12,2,0,0,0,0,0,0,19.694,1,0,5929,2.980314,0,2,.6931472,.6931472,1,2.4,5.76,1.9694 +0,.3529412,78,12,0,0,0,0,1,0,0,17,0,0,6084,2.833213,0,0,,-4.60517,0,2.6,6.76,1.7 +1,0,82,8,5,0,0,1,0,1,0,27.305,1,1,6724,3.30707,0,5,1.609438,1.609438,1,3.4,11.56,2.7305 +0,.6377119,65,6,5,0,1,0,1,1,1,5.664,2,0,4225,1.73413,1,5,1.609438,1.609438,1,0,0,.5664 +0,1,67,12,9,0,1,0,0,1,1,10.753,3,0,4489,2.375185,0,9,2.197225,2.197225,1,.4,.16,1.0753 +0,.3051956,74,11,11,1,0,0,1,0,1,16.514,3,0,5476,2.804209,1,11,2.397895,2.397895,1,1.8,3.24,1.6514 +1,.4824015,65,11,17,0,0,1,0,0,0,39.208,4,1,4225,3.668881,1,17,2.833213,2.833213,1,0,0,3.9208 +0,0,73,13,17,1,0,0,1,0,0,10.98,3,0,5329,2.396075,0,17,2.833213,2.833213,1,1.6,2.56,1.098 +0,.5439476,67,11,1,0,0,0,0,0,0,20.752,1,0,4489,3.032643,0,1,0,0,1,.4,.16,2.0752001 +0,.4869715,68,12,3,1,0,0,1,0,1,23.18,2,0,4624,3.14329,0,3,1.098612,1.098612,1,.6,.36,2.318 +0,.2543958,72,17,15,4,0,1,1,1,1,53.46,2,1,5184,3.978934,0,15,2.70805,2.70805,1,1.4,1.96,5.3459999 +0,1,76,12,6,0,0,0,0,1,1,11.88,1,0,5776,2.474856,0,6,1.791759,1.791759,1,2.2,4.84,1.188 +0,.7420232,72,12,8,0,0,1,1,1,0,16.172,1,1,5184,2.783281,1,8,2.079442,2.079442,1,1.4,1.96,1.6172001 +0,.625,73,12,2,0,0,0,1,0,0,12,1,0,5329,2.484907,1,2,.6931472,.6931472,1,1.6,2.56,1.2 +0,.625,70,14,12,1,0,0,0,0,0,12,1,0,4900,2.484907,1,12,2.484907,2.484907,1,1,1,1.2 +0,.5765913,85,12,9,2,0,0,1,1,0,24.572,2,0,7225,3.201608,0,9,2.197225,2.197225,1,4,16,2.4572001 +0,.5481749,74,14,6,0,0,1,1,0,1,15.506,3,1,5476,2.741227,0,6,1.791759,1.791759,1,1.8,3.24,1.5506 +0,.5481749,73,10,7,0,0,1,0,1,1,15.506,2,1,5329,2.741227,0,7,1.94591,1.94591,1,1.6,2.56,1.5506 +0,.4280237,65,17,23,2,0,1,0,1,1,33.643,4,1,4225,3.515805,0,23,3.135494,3.135494,1,0,0,3.3643002 +0,.4915872,74,12,6,6,0,0,1,1,0,21.396,4,0,5476,3.063204,0,6,1.791759,1.791759,1,1.8,3.24,2.1396 +0,.4823001,76,16,8,0,0,0,0,0,0,21.808,0,0,5776,3.082277,0,8,2.079442,2.079442,1,2.2,4.84,2.1808001 +0,.1525424,74,13,2,1,1,0,0,0,0,59,1,0,5476,4.077538,0,2,.6931472,.6931472,1,1.8,3.24,5.9 +0,1,69,12,0,0,1,0,1,1,0,9,0,0,4761,2.197225,0,0,,-4.60517,0,.8,.64,.9 +0,1,80,11,5,0,0,0,1,0,0,8.736,2,0,6400,2.167452,1,5,1.609438,1.609438,1,3,9,.87360001 +0,.999643,79,12,2,3,0,0,1,0,0,14.005,1,0,6241,2.639414,0,2,.6931472,.6931472,1,2.8,7.84,1.4005 +0,.4868174,67,15,0,0,0,0,0,0,0,20.747,1,0,4489,3.032402,0,0,,-4.60517,0,.4,.16,2.0747 +0,.4868174,65,12,0,2,0,1,1,0,0,20.747,0,1,4225,3.032402,0,0,,-4.60517,0,0,0,2.0747 +0,1,85,12,0,0,0,0,1,0,0,9,1,0,7225,2.197225,0,0,,-4.60517,0,4,16,.9 +0,.6572419,76,12,3,0,0,0,1,0,0,7.498,0,0,5776,2.014636,0,3,1.098612,1.098612,1,2.2,4.84,.74980001 +0,.4462555,76,12,1,0,0,1,0,0,0,11.043,0,1,5776,2.401797,0,1,0,0,1,2.2,4.84,1.1043 +0,.299086,77,14,6,2,0,1,0,1,0,41.794,4,1,5929,3.732753,0,6,1.791759,1.791759,1,2.4,5.76,4.1793999 +0,.306756,73,12,2,0,0,1,1,1,0,40.749,3,1,5329,3.707431,0,2,.6931472,.6931472,1,1.6,2.56,4.0749001 +0,.4033614,68,17,5,11,0,1,0,1,0,29.75,1,1,4624,3.392829,0,5,1.609438,1.609438,1,.6,.36,2.975 +0,1,70,3,3,0,1,0,0,0,0,4.08,1,0,4900,1.406097,0,3,1.098612,1.098612,1,1,1,.40799999 +0,1,71,6,5,0,1,0,1,1,0,4.08,2,0,5041,1.406097,0,5,1.609438,1.609438,1,1.2,1.44,.40799999 +0,.6306556,85,16,1,0,0,0,1,1,1,12.996,0,0,7225,2.564642,1,1,0,0,1,4,16,1.2996 +0,.5,77,11,10,3,0,0,1,0,0,28,3,0,5929,3.332205,0,10,2.302585,2.302585,1,2.4,5.76,2.8 +0,.7552447,68,11,1,0,0,1,1,1,0,14.3,2,1,4624,2.660259,1,1,0,0,1,.6,.36,1.43 +0,.3569134,67,16,34,10,0,1,0,1,0,28.018,3,1,4489,3.332847,0,34,3.526361,3.526361,1,.4,.16,2.8018 +0,.1830241,72,16,2,11,0,0,0,0,0,68.297,1,0,5184,4.223866,1,2,.6931472,.6931472,1,1.4,1.96,6.8296997 +0,.2955292,66,14,1,1,0,0,1,0,0,42.297,0,0,4356,3.744716,1,1,0,0,1,.2,.04,4.2297001 +0,.1063421,66,17,2,0,0,1,1,0,0,33.853,1,1,4356,3.522028,0,2,.6931472,.6931472,1,.2,.04,3.3853001 +0,.0717517,73,17,6,0,0,1,0,0,0,50.173,1,1,5329,3.915477,0,6,1.791759,1.791759,1,1.6,2.56,5.0173 +0,.8382019,81,11,24,4,0,0,0,1,0,11.434,2,0,6561,2.436591,0,24,3.178054,3.178054,1,3.2,10.24,1.1434 +0,.8382019,75,12,6,1,0,0,1,0,0,11.434,2,0,5625,2.436591,0,6,1.791759,1.791759,1,2,4,1.1434 +1,.0542005,66,12,6,0,0,1,0,0,0,101.475,1,1,4356,4.619812,0,6,1.791759,1.791759,1,.2,.04,10.1475 +0,.1093635,65,12,1,3,0,1,1,0,0,50.291,1,1,4225,3.917826,0,1,0,0,1,0,0,5.0291 +0,.2564102,84,7,11,0,0,1,1,1,0,11.7,2,1,7056,2.459589,1,11,2.397895,2.397895,1,3.8,14.44,1.17 +1,.3356643,68,10,3,1,0,1,0,0,0,28.6,0,1,4624,3.353407,1,3,1.098612,1.098612,1,.6,.36,2.86 +1,0,65,12,0,0,0,1,1,1,0,19,1,1,4225,2.944439,1,0,,-4.60517,0,0,0,1.9 +0,1,77,12,1,0,0,1,0,0,0,4.416,3,1,5929,1.485234,1,1,0,0,1,2.4,5.76,.44159999 +0,0,72,16,17,7,0,1,1,1,1,11.303,2,1,5184,2.425068,0,17,2.833213,2.833213,1,1.4,1.96,1.1303 +0,.4343891,81,10,2,2,0,1,1,1,0,17.68,1,1,6561,2.872434,0,2,.6931472,.6931472,1,3.2,10.24,1.768 +0,.3181818,77,8,6,0,0,0,0,0,0,22,2,0,5929,3.091043,0,6,1.791759,1.791759,1,2.4,5.76,2.2 +0,.6511628,72,8,10,0,0,0,1,0,0,10.75,2,0,5184,2.374906,0,10,2.302585,2.302585,1,1.4,1.96,1.075 +0,0,76,8,9,0,0,0,1,1,0,6,3,0,5776,1.791759,1,9,2.197225,2.197225,1,2.2,4.84,.6 +0,.127921,84,14,3,0,1,0,0,1,1,50.625,1,0,7056,3.924446,0,3,1.098612,1.098612,1,3.8,14.44,5.0625 +0,0,69,14,0,0,0,0,1,0,0,0,0,0,4761,,0,0,,-4.60517,0,.8,.64,0 +0,.2208943,78,16,0,0,0,0,1,0,0,54.053,3,0,6084,3.989965,0,0,,-4.60517,0,2.6,6.76,5.4053001 +0,.6802561,73,10,4,0,0,1,1,1,0,20.457,2,1,5329,3.018325,0,4,1.386294,1.386294,1,1.6,2.56,2.0457001 +0,.504166,75,12,15,0,0,1,1,1,0,18.843,1,1,5625,2.936141,0,15,2.70805,2.70805,1,2,4,1.8843 +0,.504166,75,13,4,0,0,1,0,1,0,18.843,0,1,5625,2.936141,0,4,1.386294,1.386294,1,2,4,1.8843 +0,.364722,68,9,12,0,1,0,0,1,1,16.747,3,0,4624,2.818219,1,12,2.484907,2.484907,1,.6,.36,1.6747 +0,.0098326,68,17,0,1,0,1,0,0,0,135.773,0,1,4624,4.910985,1,0,,-4.60517,0,.6,.36,13.577299 +0,.9897606,85,11,1,0,0,1,1,0,1,14.161,2,1,7225,2.650492,0,1,0,0,1,4,16,1.4161 +0,1,75,8,3,0,0,0,1,0,0,6.5,1,0,5625,1.871802,0,3,1.098612,1.098612,1,2,4,.65 +0,.7179487,73,12,11,1,0,0,1,0,0,19.5,1,0,5329,2.970414,0,11,2.397895,2.397895,1,1.6,2.56,1.95 +0,.862641,72,10,11,28,0,1,0,1,0,7.535,3,1,5184,2.019559,0,11,2.397895,2.397895,1,1.4,1.96,.75349998 +1,.2516053,68,12,0,0,0,1,0,0,0,70.547,0,1,4624,4.256279,1,0,,-4.60517,0,.6,.36,7.0546997 +0,1,83,8,5,0,1,0,1,1,1,13,4,0,6889,2.564949,1,5,1.609438,1.609438,1,3.6,12.96,1.3 +0,.1556165,74,10,1,0,0,1,0,0,0,45.188,2,1,5476,3.810832,0,1,0,0,1,1.8,3.24,4.5188 +0,.4091226,72,12,5,0,0,1,1,0,0,17.188,1,1,5184,2.844211,0,5,1.609438,1.609438,1,1.4,1.96,1.7188 +0,1,76,14,13,24,0,0,0,1,1,10.092,1,0,5776,2.311743,0,13,2.564949,2.564949,1,2.2,4.84,1.0092 +0,0,78,12,7,0,0,1,0,0,0,10.2,0,1,6084,2.322388,0,7,1.94591,1.94591,1,2.6,6.76,1.02 +0,0,77,12,2,0,0,1,1,0,0,10.2,0,1,5929,2.322388,0,2,.6931472,.6931472,1,2.4,5.76,1.02 +0,0,70,4,7,0,1,0,0,0,0,6.6,4,0,4900,1.88707,1,7,1.94591,1.94591,1,1,1,.65999999 +0,.1667324,70,16,5,7,0,1,1,0,0,50.746,1,1,4900,3.926833,0,5,1.609438,1.609438,1,1,1,5.0745998 +0,.1539343,75,17,3,0,0,1,0,0,0,54.965,0,1,5625,4.006697,0,3,1.098612,1.098612,1,2,4,5.4965 +0,1,67,9,1,0,0,0,0,0,0,9.168,0,0,4489,2.215719,1,1,0,0,1,.4,.16,.91680002 +0,.3767407,84,13,2,3,0,0,1,0,0,2.657,1,0,7056,.9771977,0,2,.6931472,.6931472,1,3.8,14.44,.26570001 +0,1,74,12,3,1,0,1,0,0,0,15,0,1,5476,2.70805,1,3,1.098612,1.098612,1,1.8,3.24,1.5 +0,.8163266,80,12,8,1,0,1,0,0,1,9.8,3,1,6400,2.282382,0,8,2.079442,2.079442,1,3,9,.98000002 +0,.8163266,78,16,0,1,0,1,1,1,1,9.8,1,1,6084,2.282382,0,0,,-4.60517,0,2.6,6.76,.98000002 +0,.9464116,79,12,7,6,0,1,1,1,1,11.551,2,1,6241,2.446772,0,7,1.94591,1.94591,1,2.8,7.84,1.1551 +0,.8997095,68,11,10,2,0,0,1,1,1,11.706,2,0,4624,2.460102,0,10,2.302585,2.302585,1,.6,.36,1.1706 +0,0,78,12,1,0,1,0,0,0,0,4.5,3,0,6084,1.504077,1,1,0,0,1,2.6,6.76,.45 +0,0,74,8,1,0,1,0,1,1,1,4.5,2,0,5476,1.504077,1,1,0,0,1,1.8,3.24,.45 +0,0,77,8,1,0,0,1,0,1,0,.336,0,1,5929,-1.090644,0,1,0,0,1,2.4,5.76,.0336 +0,.58,76,9,13,0,0,0,1,1,1,10.8,3,0,5776,2.379546,0,13,2.564949,2.564949,1,2.2,4.84,1.08 +0,.1949981,71,14,22,2,0,1,0,1,0,63.016,3,1,5041,4.143389,0,22,3.091043,3.091043,1,1.2,1.44,6.3015999 +0,1,67,12,16,1,0,0,1,1,1,5.334,3,0,4489,1.674101,1,16,2.772589,2.772589,1,.4,.16,.53340001 +0,.1962906,75,12,3,0,0,0,0,0,0,27.174,0,0,5625,3.302261,1,3,1.098612,1.098612,1,2,4,2.7174 +0,.4521951,74,16,4,3,0,1,1,1,1,24.6,4,1,5476,3.202746,1,4,1.386294,1.386294,1,1.8,3.24,2.46 +0,.2077665,74,12,2,0,0,0,0,1,1,20.215,2,0,5476,3.006425,0,2,.6931472,.6931472,1,1.8,3.24,2.0215 +0,.2077665,76,11,7,2,0,0,1,1,1,20.215,2,0,5776,3.006425,0,7,1.94591,1.94591,1,2.2,4.84,2.0215 +0,1,69,12,16,9,0,0,1,1,1,9.636,3,0,4761,2.265506,0,16,2.772589,2.772589,1,.8,.64,.96359997 +0,.676285,76,13,1,5,0,1,1,1,1,13.308,2,1,5776,2.588365,0,1,0,0,1,2.2,4.84,1.3308 +0,.5249904,72,9,22,2,0,0,1,1,1,15.726,7,0,5184,2.755315,0,22,3.091043,3.091043,1,1.4,1.96,1.5726 +0,.5249904,72,14,3,1,0,0,0,0,0,15.726,1,0,5184,2.755315,0,3,1.098612,1.098612,1,1.4,1.96,1.5726 +0,.0359032,77,12,7,0,0,1,0,0,0,83.558,2,1,5929,4.425541,0,7,1.94591,1.94591,1,2.4,5.76,8.3557999 +0,.0843692,77,16,6,16,0,1,1,1,0,35.558,3,1,5929,3.571165,0,6,1.791759,1.791759,1,2.4,5.76,3.5557999 +0,.3051643,72,13,13,2,0,1,1,0,0,42.6,0,1,5184,3.751854,0,13,2.564949,2.564949,1,1.4,1.96,4.2599998 +0,0,66,14,5,1,0,1,0,1,0,1.8,3,1,4356,.5877866,0,5,1.609438,1.609438,1,.2,.04,.18 +0,1,85,7,5,0,1,0,1,1,1,4.656,4,0,7225,1.538157,1,5,1.609438,1.609438,1,4,16,.46560001 +0,.5384616,79,12,8,1,1,0,1,0,0,13,2,0,6241,2.564949,0,8,2.079442,2.079442,1,2.8,7.84,1.3 +0,.8419337,73,10,2,0,1,0,1,1,0,7.364,2,0,5329,1.996603,1,2,.6931472,.6931472,1,1.6,2.56,.73639998 +0,1,83,12,2,2,1,0,1,1,1,9.36,6,0,6889,2.236445,1,2,.6931472,.6931472,1,3.6,12.96,.93599997 +0,.9913793,82,12,6,0,0,0,1,1,1,5.8,3,0,6724,1.757858,0,6,1.791759,1.791759,1,3.4,11.56,.58000002 +0,.9913793,73,10,2,0,0,0,0,0,0,5.8,2,0,5329,1.757858,0,2,.6931472,.6931472,1,1.6,2.56,.58000002 +0,.4390619,65,12,1,1,0,1,0,0,0,27.331,0,1,4225,3.308022,0,1,0,0,1,0,0,2.7330999 +0,.8940545,82,8,6,0,0,1,1,0,0,13.422,1,1,6724,2.596895,0,6,1.791759,1.791759,1,3.4,11.56,1.3422 +0,0,76,16,7,0,1,0,1,1,1,0,3,0,5776,,1,7,1.94591,1.94591,1,2.2,4.84,0 +0,.2448525,84,12,9,18,0,1,1,1,1,55.707,1,1,7056,4.020106,0,9,2.197225,2.197225,1,3.8,14.44,5.5707001 +0,0,72,17,19,1,0,1,0,1,0,146.416,2,1,5184,4.986452,0,19,2.944439,2.944439,1,1.4,1.96,14.6416 +0,0,77,17,1,3,0,1,1,0,0,0,0,1,5929,,0,1,0,0,1,2.4,5.76,0 +0,.4943203,76,10,5,1,0,1,1,0,0,8.011,0,1,5776,2.080816,0,5,1.609438,1.609438,1,2.2,4.84,.80109997 +0,1,66,6,15,0,0,0,1,1,1,5.28,4,0,4356,1.663926,1,15,2.70805,2.70805,1,.2,.04,.52800002 +0,.450252,78,12,2,1,0,0,1,1,0,21.428,2,0,6084,3.064698,0,2,.6931472,.6931472,1,2.6,6.76,2.1427999 +0,.2268148,79,12,4,0,0,0,0,0,0,55.79,1,0,6241,4.021595,0,4,1.386294,1.386294,1,2.8,7.84,5.5790001 +0,.2028762,72,16,12,4,0,0,1,0,0,62.373,3,0,5184,4.133132,0,12,2.484907,2.484907,1,1.4,1.96,6.2373001 +0,.9290323,72,5,9,2,0,0,1,1,1,15.5,3,0,5184,2.74084,0,9,2.197225,2.197225,1,1.4,1.96,1.55 +0,1,85,11,5,4,0,0,0,1,1,11,1,0,7225,2.397895,0,5,1.609438,1.609438,1,4,16,1.1 +0,.5756097,67,17,1,5,0,1,0,1,1,10.25,0,1,4489,2.327278,0,1,0,0,1,.4,.16,1.025 +0,.2543353,78,10,1,1,0,1,0,0,0,43.25,1,1,6084,3.766997,0,1,0,0,1,2.6,6.76,4.325 +0,.2543353,74,12,16,2,0,1,1,1,1,43.25,1,1,5476,3.766997,0,16,2.772589,2.772589,1,1.8,3.24,4.325 +0,.2243807,68,17,4,1,0,1,0,0,0,97.241,1,1,4624,4.577192,0,4,1.386294,1.386294,1,.6,.36,9.7240997 +0,0,65,16,13,0,0,1,1,0,0,76.87,1,1,4225,4.342116,0,13,2.564949,2.564949,1,0,0,7.6870003 +0,1,71,7,3,0,1,0,1,1,1,7.584,2,0,5041,2.026041,1,3,1.098612,1.098612,1,1.2,1.44,.75840001 +0,.8450704,71,5,1,7,1,0,1,1,1,7.1,3,0,5041,1.960095,0,1,0,0,1,1.2,1.44,.70999999 +1,.2808219,65,10,1,0,0,1,1,0,0,29.2,1,1,4225,3.374169,0,1,0,0,1,0,0,2.9200001 +0,.7818608,66,9,1,0,1,0,1,0,0,15.348,2,0,4356,2.730985,0,1,0,0,1,.2,.04,1.5348 +0,0,77,3,10,0,1,0,0,1,0,.93,2,0,5929,-.0725707,1,10,2.302585,2.302585,1,2.4,5.76,.093 +0,0,76,3,7,0,1,0,1,1,0,7.17,1,0,5776,1.969906,1,7,1.94591,1.94591,1,2.2,4.84,.71700001 +0,1,72,12,5,0,0,1,0,1,1,15,3,1,5184,2.70805,0,5,1.609438,1.609438,1,1.4,1.96,1.5 +0,.3816631,81,0,16,0,0,0,1,0,0,28.14,2,0,6561,3.337192,1,16,2.772589,2.772589,1,3.2,10.24,2.8139999 +0,.8546512,81,12,2,1,0,1,1,1,1,10.32,1,1,6561,2.334084,0,2,.6931472,.6931472,1,3.2,10.24,1.032 +0,1,70,16,5,0,1,0,1,1,0,11.124,2,0,4900,2.409105,0,5,1.609438,1.609438,1,1,1,1.1124 +0,.5,69,12,7,0,1,0,1,0,0,21.6,0,0,4761,3.072693,0,7,1.94591,1.94591,1,.8,.64,2.16 +0,1,72,12,0,10,0,0,0,0,0,6.8,1,0,5184,1.916923,0,0,,-4.60517,0,1.4,1.96,.68000002 +0,.3589744,85,12,0,0,0,0,1,0,0,23.4,0,0,7225,3.152736,0,0,,-4.60517,0,4,16,2.34 +0,1,85,4,1,0,0,0,0,0,0,8.4,2,0,7225,2.128232,0,1,0,0,1,4,16,.83999996 +0,0,67,11,6,8,0,1,1,0,1,2.052,3,1,4489,.718815,0,6,1.791759,1.791759,1,.4,.16,.2052 +0,.2119115,65,16,0,0,0,1,1,0,0,52.89,1,1,4225,3.968214,0,0,,-4.60517,0,0,0,5.2889999 +0,0,67,12,14,5,0,1,1,1,0,2.1,3,1,4489,.7419373,0,14,2.639057,2.639057,1,.4,.16,.20999999 +0,0,71,14,1,0,0,1,0,0,0,27.715,2,1,5041,3.321974,0,1,0,0,1,1.2,1.44,2.7715 +0,.2863102,71,16,1,1,1,0,1,1,0,39.314,1,0,5041,3.671581,0,1,0,0,1,1.2,1.44,3.9313999 +0,0,74,8,4,0,1,0,1,1,1,6.4,1,0,5476,1.856298,1,4,1.386294,1.386294,1,1.8,3.24,.64000001 +0,.316039,85,16,29,0,0,1,0,0,0,37.97,1,1,7225,3.636796,0,29,3.367296,3.367296,1,4,16,3.7970001 +0,.5157298,76,12,5,0,0,0,1,1,1,23.268,3,0,5776,3.147079,0,5,1.609438,1.609438,1,2.2,4.84,2.3268 +0,.5157298,76,15,14,0,0,0,0,1,0,23.268,3,0,5776,3.147079,0,14,2.639057,2.639057,1,2.2,4.84,2.3268 +0,.5197073,79,14,7,8,0,0,1,1,0,24.052,1,0,6241,3.180218,0,7,1.94591,1.94591,1,2.8,7.84,2.4052 +0,.5197073,82,14,13,0,0,0,0,0,0,24.052,2,0,6724,3.180218,0,13,2.564949,2.564949,1,3.4,11.56,2.4052 +0,.5122387,69,10,13,1,0,1,0,1,1,22.388,5,1,4761,3.108525,0,13,2.564949,2.564949,1,.8,.64,2.2388 +0,.5122387,71,12,0,0,0,1,1,0,0,22.388,1,1,5041,3.108525,0,0,,-4.60517,0,1.2,1.44,2.2388 +0,.2741659,80,12,11,1,0,1,0,1,1,35.008,6,1,6400,3.555577,0,11,2.397895,2.397895,1,3,9,3.5007999 +0,.2639496,70,17,3,1,0,1,1,0,0,36.363,1,1,4900,3.593552,0,3,1.098612,1.098612,1,1,1,3.6362999 +0,.1388717,74,12,6,0,0,0,0,0,0,32.404,0,0,5476,3.478282,0,6,1.791759,1.791759,1,1.8,3.24,3.2403999 +0,.3052296,75,12,4,3,0,0,1,0,0,14.743,3,0,5625,2.690768,0,4,1.386294,1.386294,1,2,4,1.4743 +0,0,80,4,9,0,1,0,1,1,0,8.222,1,0,6400,2.106813,1,9,2.197225,2.197225,1,3,9,.82220001 +0,0,74,4,11,0,0,1,0,0,0,14.43,1,1,5476,2.669309,1,11,2.397895,2.397895,1,1.8,3.24,1.443 +0,0,69,12,7,0,0,1,1,0,0,5.421,1,1,4761,1.69028,1,7,1.94591,1.94591,1,.8,.64,.5421 +0,1,85,12,10,2,0,0,1,1,1,13,2,0,7225,2.564949,0,10,2.302585,2.302585,1,4,16,1.3 +0,.2427947,80,17,9,5,0,1,0,1,0,35.009,3,1,6400,3.555605,0,9,2.197225,2.197225,1,3,9,3.5008999 +0,.2444777,73,13,9,2,0,1,1,0,0,34.768,1,1,5329,3.548697,0,9,2.197225,2.197225,1,1.6,2.56,3.4768002 +0,1,83,4,2,0,1,0,0,1,0,7.2,4,0,6889,1.974081,0,2,.6931472,.6931472,1,3.6,12.96,.71999998 +0,.7560722,72,12,5,1,0,1,0,0,0,10.581,1,1,5184,2.35906,0,5,1.609438,1.609438,1,1.4,1.96,1.0581 +0,.7960199,72,16,13,1,0,1,1,0,0,10.05,0,1,5184,2.307573,0,13,2.564949,2.564949,1,1.4,1.96,1.005 +1,.3134937,76,14,12,1,0,1,0,1,1,22.329,1,1,5776,3.105886,0,12,2.484907,2.484907,1,2.2,4.84,2.2329 +0,.3888889,65,14,13,2,0,1,1,1,1,18,4,1,4225,2.890372,0,13,2.564949,2.564949,1,0,0,1.8 +0,.701641,65,13,7,0,0,1,1,1,0,10.055,1,1,4225,2.30807,0,7,1.94591,1.94591,1,0,0,1.0055 +0,1,71,12,1,2,0,0,1,1,1,7.5,2,0,5041,2.014903,1,1,0,0,1,1.2,1.44,.75 +0,.1598054,76,17,7,2,0,1,0,0,0,20.963,2,1,5776,3.042759,0,7,1.94591,1.94591,1,2.2,4.84,2.0962999 +0,0,65,17,18,9,0,1,1,0,0,15.575,1,1,4225,2.745667,0,18,2.890372,2.890372,1,0,0,1.5575 +0,.9433962,85,8,4,0,0,1,1,1,0,10.6,2,1,7225,2.360854,0,4,1.386294,1.386294,1,4,16,1.06 +0,.1749621,81,12,3,1,0,1,1,1,1,36.968,2,1,6561,3.610053,0,3,1.098612,1.098612,1,3.2,10.24,3.6967999 +0,1,76,6,6,0,0,0,1,1,1,7.5,2,0,5776,2.014903,1,6,1.791759,1.791759,1,2.2,4.84,.75 +0,.3749531,85,12,4,1,0,0,1,1,1,32.004,1,0,7225,3.465861,0,4,1.386294,1.386294,1,4,16,3.2004002 +0,1,84,15,8,0,0,0,1,0,0,19.694,2,0,7056,2.980314,0,8,2.079442,2.079442,1,3.8,14.44,1.9694 +0,.9451321,77,6,0,0,0,1,0,0,0,11.391,1,1,5929,2.432824,0,0,,-4.60517,0,2.4,5.76,1.1391 +0,1,75,3,5,0,1,0,1,1,1,11,3,0,5625,2.397895,1,5,1.609438,1.609438,1,2,4,1.1 +0,0,74,8,0,0,1,0,1,0,0,2.819,0,0,5476,1.036382,1,0,,-4.60517,0,1.8,3.24,.2819 +0,1,85,12,10,0,0,1,1,1,1,11.4,4,1,7225,2.433613,0,10,2.302585,2.302585,1,4,16,1.14 +0,.228737,79,16,3,1,0,1,0,0,0,51.439,0,1,6241,3.940397,0,3,1.098612,1.098612,1,2.8,7.84,5.1438999 +0,.2052722,72,17,3,5,0,1,1,1,0,57.319,1,1,5184,4.048632,0,3,1.098612,1.098612,1,1.4,1.96,5.7319 +0,.8398682,85,12,8,1,0,1,1,0,0,17.598,2,1,7225,2.867785,1,8,2.079442,2.079442,1,4,16,1.7598 +0,1,75,9,4,1,0,0,1,1,0,14,1,0,5625,2.639057,1,4,1.386294,1.386294,1,2,4,1.4 +0,.4615385,67,12,0,0,1,0,0,0,0,26,0,0,4489,3.258096,1,0,,-4.60517,0,.4,.16,2.6 +0,.5,72,6,0,0,0,0,0,0,0,19.784,0,0,5184,2.984874,0,0,,-4.60517,0,1.4,1.96,1.9784 +0,.4897959,75,12,3,1,0,0,0,1,1,14.7,3,0,5625,2.687847,0,3,1.098612,1.098612,1,2,4,1.47 +0,.6465043,85,10,13,0,0,1,0,1,0,15.276,3,1,7225,2.726283,0,13,2.564949,2.564949,1,4,16,1.5276 +0,.6465043,85,12,9,0,0,1,1,0,1,15.276,5,1,7225,2.726283,0,9,2.197225,2.197225,1,4,16,1.5276 +0,0,83,13,0,0,0,0,0,0,0,15,0,0,6889,2.70805,1,0,,-4.60517,0,3.6,12.96,1.5 +0,0,69,6,1,0,0,0,0,0,0,16.019,1,0,4761,2.773776,1,1,0,0,1,.8,.64,1.6018999 +0,1,79,14,3,0,0,0,0,1,1,7,3,0,6241,1.94591,1,3,1.098612,1.098612,1,2.8,7.84,.7 +0,1,77,12,1,0,0,0,0,1,0,2.764,1,0,5929,1.016679,1,1,0,0,1,2.4,5.76,.27639999 +0,1,73,8,4,0,0,0,1,0,0,2.764,0,0,5329,1.016679,1,4,1.386294,1.386294,1,1.6,2.56,.27639999 +0,.8587998,74,12,0,0,0,1,1,0,0,9.915,0,1,5476,2.294049,0,0,,-4.60517,0,1.8,3.24,.9915 +0,.3833691,75,11,3,0,0,0,0,0,0,21.911,3,0,5625,3.086989,0,3,1.098612,1.098612,1,2,4,2.1910999 +0,.1325423,71,12,0,0,0,0,1,0,0,63.376,0,0,5041,4.149085,0,0,,-4.60517,0,1.2,1.44,6.3375999 +0,.7635829,72,12,2,0,0,0,1,0,0,8.172,3,0,5184,2.100714,0,2,.6931472,.6931472,1,1.4,1.96,.81719999 +0,.5,75,10,4,0,1,0,1,1,1,6.8,2,0,5625,1.916923,0,4,1.386294,1.386294,1,2,4,.68000002 +0,0,75,3,5,0,1,0,1,1,0,.165,1,0,5625,-1.80181,1,5,1.609438,1.609438,1,2,4,.0165 +0,.7058824,82,12,0,0,0,0,1,1,0,17,0,0,6724,2.833213,0,0,,-4.60517,0,3.4,11.56,1.7 +0,1,78,4,1,0,1,0,1,1,1,7,3,0,6084,1.94591,0,1,0,0,1,2.6,6.76,.7 +0,.8281787,81,12,0,0,0,0,0,0,0,6.402,1,0,6561,1.85661,0,0,,-4.60517,0,3.2,10.24,.6402 +0,.8281787,71,15,7,0,0,1,1,1,0,6.402,4,1,5041,1.85661,0,7,1.94591,1.94591,1,1.2,1.44,.6402 +0,.5393086,83,12,15,6,0,1,1,1,1,26.699,3,1,6889,3.284626,0,15,2.70805,2.70805,1,3.6,12.96,2.6698999 +0,0,74,10,0,0,0,0,1,1,1,8.489,1,0,5476,2.138771,1,0,,-4.60517,0,1.8,3.24,.84890003 +0,.3241387,68,12,2,0,0,1,0,0,0,54.017,1,1,4624,3.989299,1,2,.6931472,.6931472,1,.6,.36,5.4016998 +0,.9,71,10,7,0,0,0,1,0,0,8,2,0,5041,2.079442,0,7,1.94591,1.94591,1,1.2,1.44,.8 +0,.9,76,4,7,0,0,0,0,0,0,8,2,0,5776,2.079442,0,7,1.94591,1.94591,1,2.2,4.84,.8 +0,0,65,12,3,0,0,1,1,0,0,23.279,2,1,4225,3.147552,0,3,1.098612,1.098612,1,0,0,2.3278999 +0,.8443109,67,12,2,0,0,1,0,0,0,22.956,2,1,4489,3.133579,0,2,.6931472,.6931472,1,.4,.16,2.2955999 +0,0,75,6,4,0,0,0,0,0,0,16,2,0,5625,2.772589,1,4,1.386294,1.386294,1,2,4,1.6 +0,0,78,0,9,0,0,0,1,1,0,0,1,0,6084,,1,9,2.197225,2.197225,1,2.6,6.76,0 +0,.1486886,77,17,14,2,0,0,1,1,0,72.635,1,0,5929,4.285447,0,14,2.639057,2.639057,1,2.4,5.76,7.2635002 +0,.2797203,67,12,11,0,0,1,1,0,0,28.6,1,1,4489,3.353407,0,11,2.397895,2.397895,1,.4,.16,2.86 +0,.2797203,74,12,24,4,0,1,0,1,1,28.6,5,1,5476,3.353407,0,24,3.178054,3.178054,1,1.8,3.24,2.86 +0,0,65,12,0,0,0,1,1,0,0,19.954,0,1,4225,2.99343,0,0,,-4.60517,0,0,0,1.9954 +0,1,78,11,7,0,0,1,0,0,1,8.4,3,1,6084,2.128232,1,7,1.94591,1.94591,1,2.6,6.76,.83999996 +1,0,68,17,1,6,0,1,1,1,0,47,1,1,4624,3.850147,0,1,0,0,1,.6,.36,4.7 +0,1,80,16,1,0,0,0,1,1,0,11.58,0,0,6400,2.44928,0,1,0,0,1,3,9,1.158 +1,0,67,6,0,0,0,1,1,0,0,9.984,1,1,4489,2.300984,1,0,,-4.60517,0,.4,.16,.99840002 +0,0,77,0,6,0,0,0,0,1,1,0,3,0,5929,,1,6,1.791759,1.791759,1,2.4,5.76,0 +0,.3278509,70,14,8,1,0,1,0,1,0,18.301,1,1,4900,2.906956,0,8,2.079442,2.079442,1,1,1,1.8301001 +0,.2420136,67,12,1,0,0,1,1,0,0,24.792,1,1,4489,3.210521,0,1,0,0,1,.4,.16,2.4792 +0,.9281768,67,12,0,1,0,0,0,0,0,9.05,0,0,4489,2.202765,0,0,,-4.60517,0,.4,.16,.90500002 +0,.7518797,78,12,0,0,0,0,1,0,0,6.65,2,0,6084,1.894617,1,0,,-4.60517,0,2.6,6.76,.66500001 +0,1,83,10,1,0,0,0,1,0,0,7.596,3,0,6889,2.027622,1,1,0,0,1,3.6,12.96,.75960002 +0,.3097622,71,17,15,2,0,1,0,0,1,63.92,2,1,5041,4.157632,0,15,2.70805,2.70805,1,1.2,1.44,6.3919998 +0,.9560035,84,9,5,3,0,1,1,0,0,10.069,3,1,7056,2.309461,0,5,1.609438,1.609438,1,3.8,14.44,1.0069 +0,1,73,0,0,0,0,0,1,0,1,12,0,0,5329,2.484907,1,0,,-4.60517,0,1.6,2.56,1.2 +0,.5096661,65,12,5,0,0,1,0,1,1,28.45,1,1,4225,3.348148,1,5,1.609438,1.609438,1,0,0,2.8450001 +0,1,67,16,9,0,0,1,0,0,0,11.25,2,1,4489,2.420368,0,9,2.197225,2.197225,1,.4,.16,1.125 +0,1,67,12,1,0,0,1,1,0,0,11.25,0,1,4489,2.420368,0,1,0,0,1,.4,.16,1.125 +0,.7407407,78,10,17,14,0,0,1,1,1,13.5,4,0,6084,2.60269,0,17,2.833213,2.833213,1,2.6,6.76,1.35 +0,.2469678,76,16,13,0,0,1,0,0,0,36.442,0,1,5776,3.595722,0,13,2.564949,2.564949,1,2.2,4.84,3.6442001 +0,.2589928,73,16,8,16,0,1,1,0,0,34.75,2,1,5329,3.54818,0,8,2.079442,2.079442,1,1.6,2.56,3.475 +0,.6967213,75,14,14,1,0,1,0,0,0,12.2,3,1,5625,2.501436,0,14,2.639057,2.639057,1,2,4,1.22 +0,.7391304,74,13,13,19,0,1,1,0,0,11.5,2,1,5476,2.442347,0,13,2.564949,2.564949,1,1.8,3.24,1.15 +0,.5901228,68,12,1,1,0,1,1,0,0,21.504,1,1,4624,3.068239,0,1,0,0,1,.6,.36,2.1504 +0,.9910966,69,14,0,0,0,1,0,0,0,12.804,0,1,4761,2.549758,0,0,,-4.60517,0,.8,.64,1.2804 +0,0,72,11,4,1,0,0,1,0,1,.25,3,0,5184,-1.386294,0,4,1.386294,1.386294,1,1.4,1.96,.025 +0,.8784446,85,16,10,10,0,1,0,1,1,22.064,2,1,7225,3.093947,0,10,2.302585,2.302585,1,4,16,2.2063999 +0,0,66,13,4,2,0,1,1,0,0,2.683,1,1,4356,.9869356,0,4,1.386294,1.386294,1,.2,.04,.26830001 +0,.7243712,68,17,1,2,0,0,0,1,1,26.757,2,0,4624,3.286796,0,1,0,0,1,.6,.36,2.6757 +0,0,65,17,1,0,0,0,1,0,0,7.626,3,0,4225,2.031564,0,1,0,0,1,0,0,.76259999 +0,.8144138,85,12,9,2,0,0,1,1,1,12.932,1,0,7225,2.559705,0,9,2.197225,2.197225,1,4,16,1.2932 +0,0,85,9,1,0,0,0,0,1,1,18.55,1,0,7225,2.92047,0,1,0,0,1,4,16,1.8549999 +0,.2363601,71,16,4,0,0,0,0,1,1,15.231,2,0,5041,2.723333,0,4,1.386294,1.386294,1,1.2,1.44,1.5231 +1,.0833758,69,16,11,0,0,1,1,0,0,43.178,2,1,4761,3.765331,0,11,2.397895,2.397895,1,.8,.64,4.3178001 +0,.6206896,79,14,4,6,0,1,1,1,0,14.5,3,1,6241,2.674149,0,4,1.386294,1.386294,1,2.8,7.84,1.45 +0,.497946,66,17,0,0,0,1,0,0,0,24.099,1,1,4356,3.18217,0,0,,-4.60517,0,.2,.04,2.4099001 +0,.497946,65,16,7,2,0,0,1,0,0,24.099,2,0,4225,3.18217,0,7,1.94591,1.94591,1,0,0,2.4099001 +0,0,70,6,0,0,0,0,0,0,1,0,2,0,4900,,1,0,,-4.60517,0,1,1,0 +0,.4903697,73,13,1,0,0,1,1,0,0,44.495,1,1,5329,3.795377,0,1,0,0,1,1.6,2.56,4.4494999 +0,0,65,13,4,0,0,1,0,1,0,22.352,2,1,4225,3.106916,0,4,1.386294,1.386294,1,0,0,2.2351999 +0,.999001,68,12,7,1,0,1,1,0,0,14.014,3,1,4624,2.640057,0,7,1.94591,1.94591,1,.6,.36,1.4014 +0,0,80,12,17,0,0,1,0,1,1,15.6,2,1,6400,2.747271,1,17,2.833213,2.833213,1,3,9,1.56 +0,.752809,65,12,21,0,1,0,1,1,1,8.544,6,0,4225,2.145229,0,21,3.044523,3.044523,1,0,0,.85439997 +0,.8954992,85,11,14,1,0,0,1,0,0,12.842,3,0,7225,2.552721,0,14,2.639057,2.639057,1,4,16,1.2842 +0,.2307914,71,11,4,0,0,1,1,1,0,51.995,1,1,5041,3.951148,1,4,1.386294,1.386294,1,1.2,1.44,5.1994999 +0,1,80,8,6,20,0,0,1,1,0,9.068,2,0,6400,2.204752,0,6,1.791759,1.791759,1,3,9,.90679998 +0,.7820647,75,13,6,0,0,1,1,0,0,11.508,0,1,5625,2.443043,0,6,1.791759,1.791759,1,2,4,1.1508 +0,.306193,75,8,11,7,0,1,0,0,0,30.373,1,1,5625,3.413554,0,11,2.397895,2.397895,1,2,4,3.0372999 +0,1,74,12,11,2,0,1,1,0,0,9.3,2,1,5476,2.230014,0,11,2.397895,2.397895,1,1.8,3.24,.93000002 +0,.4975827,66,12,1,1,0,1,1,0,0,43.85,1,1,4356,3.780775,0,1,0,0,1,.2,.04,4.3849998 +0,0,78,7,6,0,0,0,1,1,1,9.337,2,0,6084,2.233985,1,6,1.791759,1.791759,1,2.6,6.76,.93369999 +0,1,77,8,3,0,0,0,1,1,1,7.464,1,0,5929,2.010092,0,3,1.098612,1.098612,1,2.4,5.76,.74640002 +0,1,78,12,1,0,0,1,0,1,0,21.669,0,1,6084,3.075883,0,1,0,0,1,2.6,6.76,2.1669001 +0,1,74,12,4,0,0,1,1,1,0,21.669,2,1,5476,3.075883,0,4,1.386294,1.386294,1,1.8,3.24,2.1669001 +1,.2425271,69,15,20,7,0,1,1,1,1,49.479,2,1,4761,3.901548,0,20,2.995732,2.995732,1,.8,.64,4.9479 +0,1,72,8,1,0,0,1,1,0,0,9.6,0,1,5184,2.261763,0,1,0,0,1,1.4,1.96,.96000004 +0,.194699,78,16,9,5,0,1,0,1,0,38.521,3,1,6084,3.651204,0,9,2.197225,2.197225,1,2.6,6.76,3.8521 +0,.2105795,68,14,7,4,0,0,1,0,0,35.616,0,0,4624,3.572795,0,7,1.94591,1.94591,1,.6,.36,3.5616001 +0,0,65,5,5,0,0,0,1,0,0,0,0,0,4225,,0,5,1.609438,1.609438,1,0,0,0 +0,.9389287,72,8,6,7,0,0,1,0,0,17.848,2,0,5184,2.881891,1,6,1.791759,1.791759,1,1.4,1.96,1.7848 +0,.4826188,68,10,8,4,1,0,1,1,1,13.808,4,0,4624,2.625248,0,8,2.079442,2.079442,1,.6,.36,1.3808 +0,.5311228,75,17,35,3,0,0,1,1,0,27.022,2,0,5625,3.296651,0,35,3.555348,3.555348,1,2,4,2.7021999 +0,1,71,14,17,0,1,0,0,0,0,6.6,3,0,5041,1.88707,0,17,2.833213,2.833213,1,1.2,1.44,.65999999 +0,1,71,14,14,0,1,0,1,0,0,6.6,1,0,5041,1.88707,0,14,2.639057,2.639057,1,1.2,1.44,.65999999 +0,.8064516,77,8,1,0,0,0,0,1,0,13.64,0,0,5929,2.613007,0,1,0,0,1,2.4,5.76,1.364 +0,1,85,6,2,1,0,1,0,1,1,10.8,1,1,7225,2.379546,0,2,.6931472,.6931472,1,4,16,1.08 +0,.32,85,12,11,0,0,1,0,1,0,15,3,1,7225,2.70805,0,11,2.397895,2.397895,1,4,16,1.5 +0,.32,81,12,1,0,0,1,1,1,0,15,0,1,6561,2.70805,0,1,0,0,1,3.2,10.24,1.5 +0,1,74,11,7,0,0,1,1,0,0,14,0,1,5476,2.639057,0,7,1.94591,1.94591,1,1.8,3.24,1.4 +0,.4596164,72,17,9,2,0,1,0,0,0,23.933,2,1,5184,3.175258,0,9,2.197225,2.197225,1,1.4,1.96,2.3933001 +0,.4596164,71,17,14,1,0,1,1,0,0,23.933,1,1,5041,3.175258,0,14,2.639057,2.639057,1,1.2,1.44,2.3933001 +0,1,70,0,3,0,0,0,1,0,0,6.24,0,0,4900,1.83098,1,3,1.098612,1.098612,1,1,1,.62399998 +0,.9033392,85,12,2,0,0,1,1,1,1,11.38,2,1,7225,2.431857,0,2,.6931472,.6931472,1,4,16,1.138 +0,0,81,6,6,0,0,0,0,1,1,15.55,1,0,6561,2.744061,1,6,1.791759,1.791759,1,3.2,10.24,1.555 +0,.5346879,68,13,12,2,0,0,1,0,0,14.962,1,0,4624,2.705514,0,12,2.484907,2.484907,1,.6,.36,1.4962 +0,.7197481,72,12,4,3,0,0,0,0,0,11.115,1,0,5184,2.408296,0,4,1.386294,1.386294,1,1.4,1.96,1.1115 +0,.5483549,72,8,8,0,0,1,1,1,0,20.06,4,1,5184,2.998728,0,8,2.079442,2.079442,1,1.4,1.96,2.0059999 +0,.3013651,67,12,11,2,0,1,1,0,0,40.436,1,1,4489,3.69972,0,11,2.397895,2.397895,1,.4,.16,4.0436001 +0,.4331106,73,12,13,1,0,1,0,0,0,28.136,1,1,5329,3.33705,0,13,2.564949,2.564949,1,1.6,2.56,2.8136 +0,1,72,14,7,1,0,1,0,1,0,19.694,3,1,5184,2.980314,0,7,1.94591,1.94591,1,1.4,1.96,1.9694 +0,.0693022,70,16,13,26,0,0,1,1,1,145.349,3,0,4900,4.979138,0,13,2.564949,2.564949,1,1,1,14.5349 +0,.9010942,81,10,2,0,0,0,1,1,1,9.322,1,0,6561,2.232377,0,2,.6931472,.6931472,1,3.2,10.24,.93219995 +0,.4869489,74,9,27,4,0,0,0,1,1,13.677,3,0,5476,2.615716,0,27,3.295837,3.295837,1,1.8,3.24,1.3677 +0,.4869489,74,12,7,0,0,0,1,0,0,13.677,1,0,5476,2.615716,0,7,1.94591,1.94591,1,1.8,3.24,1.3677 +0,.2995721,81,12,2,1,0,0,1,0,0,28.04,2,0,6561,3.333632,0,2,.6931472,.6931472,1,3.2,10.24,2.8040001 +0,.3409091,74,10,2,0,0,0,1,1,0,13.2,2,0,5476,2.580217,1,2,.6931472,.6931472,1,1.8,3.24,1.32 +0,.097351,79,12,12,13,0,1,0,0,0,122.649,2,1,6241,4.809327,0,12,2.484907,2.484907,1,2.8,7.84,12.2649 +0,.729927,70,16,15,3,0,1,1,1,0,17.81,3,1,4900,2.87976,0,15,2.70805,2.70805,1,1,1,1.7809999 +1,.124912,68,13,0,0,0,1,0,0,0,88.062,1,1,4624,4.478041,0,0,,-4.60517,0,.6,.36,8.8061996 +0,1,84,12,0,0,0,0,1,0,0,6.84,1,0,7056,1.922788,0,0,,-4.60517,0,3.8,14.44,.68400002 +1,.0549451,65,17,2,0,0,1,0,0,0,54.6,1,1,4225,4.000034,0,2,.6931472,.6931472,1,0,0,5.4599998 +0,.70915,71,17,11,1,1,0,0,0,0,10.153,2,0,5041,2.317769,0,11,2.397895,2.397895,1,1.2,1.44,1.0153 +0,1,70,11,5,0,0,0,1,1,1,21.669,3,0,4900,3.075883,0,5,1.609438,1.609438,1,1,1,2.1669001 +0,1,73,8,7,1,0,0,0,0,1,21.669,1,0,5329,3.075883,0,7,1.94591,1.94591,1,1.6,2.56,2.1669001 +0,.6326314,78,15,11,2,0,0,1,1,1,19.803,2,0,6084,2.985833,0,11,2.397895,2.397895,1,2.6,6.76,1.9802999 +0,1,74,6,3,0,0,1,0,1,0,6.203,1,1,5476,1.825033,0,3,1.098612,1.098612,1,1.8,3.24,.62030001 +0,.2563086,65,17,3,1,0,1,0,0,0,26.987,0,1,4225,3.295355,0,3,1.098612,1.098612,1,0,0,2.6987 +0,.2563086,66,15,3,0,0,1,1,0,0,26.987,1,1,4356,3.295355,0,3,1.098612,1.098612,1,.2,.04,2.6987 +0,.1262743,70,17,5,2,0,1,0,0,0,118.789,1,1,4900,4.777349,1,5,1.609438,1.609438,1,1,1,11.8789 +0,1,85,4,3,0,0,0,1,1,1,10.092,4,0,7225,2.311743,1,3,1.098612,1.098612,1,4,16,1.0092 +0,.7263923,69,12,8,6,0,0,1,1,0,11.977,3,0,4761,2.482988,0,8,2.079442,2.079442,1,.8,.64,1.1977 +0,0,65,11,2,0,0,1,0,0,0,26.148,0,1,4225,3.263773,0,2,.6931472,.6931472,1,0,0,2.6148001 +0,.6,72,12,15,2,0,1,1,1,1,12.5,3,1,5184,2.525729,0,15,2.70805,2.70805,1,1.4,1.96,1.25 +0,.3064091,66,12,11,12,0,1,0,1,1,21.22,3,1,4356,3.054944,0,11,2.397895,2.397895,1,.2,.04,2.1219999 +0,1,83,0,2,0,0,0,1,1,0,8.7,1,0,6889,2.163323,0,2,.6931472,.6931472,1,3.6,12.96,.86999998 +0,.3482074,81,16,14,0,0,1,1,1,0,38.77,3,1,6561,3.657647,0,14,2.639057,2.639057,1,3.2,10.24,3.877 +0,.1883687,78,16,17,2,0,1,0,0,0,50.433,0,1,6084,3.920646,0,17,2.833213,2.833213,1,2.6,6.76,5.0432999 +0,.5555556,76,12,2,4,0,1,1,0,0,17.1,0,1,5776,2.839078,0,2,.6931472,.6931472,1,2.2,4.84,1.71 +0,1,78,12,12,1,0,0,0,1,1,19.694,5,0,6084,2.980314,0,12,2.484907,2.484907,1,2.6,6.76,1.9694 +0,.2026764,65,12,5,6,0,1,1,1,0,64.862,2,1,4225,4.172262,0,5,1.609438,1.609438,1,0,0,6.4862 +0,.1888115,65,16,5,0,0,1,0,0,0,69.625,0,1,4225,4.243124,0,5,1.609438,1.609438,1,0,0,6.9625 +0,.251497,67,13,1,0,0,1,0,0,0,33.4,1,1,4489,3.508556,0,1,0,0,1,.4,.16,3.3400002 +0,1,66,12,5,0,0,0,1,1,1,8.4,2,0,4356,2.128232,0,5,1.609438,1.609438,1,.2,.04,.83999996 +0,.6607929,70,9,3,0,0,0,0,0,0,13.62,2,0,4900,2.611539,0,3,1.098612,1.098612,1,1,1,1.362 +0,.9799347,66,17,4,0,0,0,0,0,0,8.572,4,0,4356,2.148501,0,4,1.386294,1.386294,1,.2,.04,.85719995 +0,.618047,76,15,15,5,0,1,1,1,0,12.944,1,1,5776,2.560632,0,15,2.70805,2.70805,1,2.2,4.84,1.2944 +0,.2745716,75,12,14,0,1,0,1,1,1,10.795,5,0,5625,2.379083,1,14,2.639057,2.639057,1,2,4,1.0795 +0,.7692308,69,12,12,0,0,1,1,1,0,15.6,2,1,4761,2.747271,0,12,2.484907,2.484907,1,.8,.64,1.56 +0,.5542734,74,16,6,17,0,0,1,0,0,20.019,1,0,5476,2.996682,0,6,1.791759,1.791759,1,1.8,3.24,2.0018999 +0,.8780488,74,12,5,0,0,1,0,0,0,8.2,2,1,5476,2.104134,0,5,1.609438,1.609438,1,1.8,3.24,.81999998 +0,.8780488,65,9,3,1,0,1,1,1,1,8.2,2,1,4225,2.104134,0,3,1.098612,1.098612,1,0,0,.81999998 +0,.9803922,80,7,5,0,1,0,1,1,1,6.12,3,0,6400,1.811562,1,5,1.609438,1.609438,1,3,9,.61199999 +0,.5682204,65,12,12,6,0,1,0,0,0,34.11,1,1,4225,3.529591,0,12,2.484907,2.484907,1,0,0,3.4110001 +0,.70385,67,10,2,4,0,1,1,1,1,10.13,2,1,4489,2.315501,0,2,.6931472,.6931472,1,.4,.16,1.013 +0,1,66,10,4,0,0,0,1,0,0,14,0,0,4356,2.639057,1,4,1.386294,1.386294,1,.2,.04,1.4 +0,.6726457,85,12,9,1,0,1,1,0,0,22.3,1,1,7225,3.104587,0,9,2.197225,2.197225,1,4,16,2.2299999 +0,.4511278,73,17,7,0,0,1,0,0,0,26.6,1,1,5329,3.280911,0,7,1.94591,1.94591,1,1.6,2.56,2.66 +0,.4511278,70,12,13,8,0,1,1,1,0,26.6,2,1,4900,3.280911,0,13,2.564949,2.564949,1,1,1,2.66 +0,0,70,3,0,0,1,0,0,0,0,.56,0,0,4900,-.5798185,1,0,,-4.60517,0,1,1,.056 +0,1,76,12,11,0,0,0,1,1,1,7.98,2,0,5776,2.076938,0,11,2.397895,2.397895,1,2.2,4.84,.798 +0,.7725175,73,14,15,4,0,0,1,0,0,23.404,1,0,5329,3.152907,0,15,2.70805,2.70805,1,1.6,2.56,2.3403999 +0,0,80,6,11,0,1,0,1,1,1,9.185,2,0,6400,2.217572,0,11,2.397895,2.397895,1,3,9,.91850004 +1,.4590164,66,12,4,0,0,1,0,0,0,18.3,2,1,4356,2.906901,0,4,1.386294,1.386294,1,.2,.04,1.8299999 +0,.814433,69,12,3,2,0,0,0,0,0,12.61,2,0,4761,2.53449,0,3,1.098612,1.098612,1,.8,.64,1.261 +0,.6175587,72,12,7,6,0,0,1,1,0,16.63,0,0,5184,2.811208,0,7,1.94591,1.94591,1,1.4,1.96,1.6629999 +0,1,74,12,9,5,0,0,1,0,0,7.056,3,0,5476,1.953878,0,9,2.197225,2.197225,1,1.8,3.24,.70560002 +0,0,66,17,0,0,0,1,1,0,0,36.038,2,1,4356,3.584574,1,0,,-4.60517,0,.2,.04,3.6037998 +0,.3630691,76,16,4,14,0,1,0,0,0,37.183,3,1,5776,3.615852,0,4,1.386294,1.386294,1,2.2,4.84,3.7182999 +0,.3670972,67,17,7,5,0,1,1,1,0,36.775,3,1,4489,3.604818,0,7,1.94591,1.94591,1,.4,.16,3.6775002 +0,0,80,3,1,0,0,0,0,0,0,3.895,1,0,6400,1.359694,1,1,0,0,1,3,9,.3895 +0,0,65,12,5,0,0,0,1,0,0,50.12,2,0,4225,3.91442,1,5,1.609438,1.609438,1,0,0,5.0119999 +0,1,72,10,1,0,1,0,1,1,1,6.9,1,0,5184,1.931521,0,1,0,0,1,1.4,1.96,.69000001 +0,1,65,11,2,0,1,0,0,1,1,6.96,3,0,4225,1.940179,0,2,.6931472,.6931472,1,0,0,.696 +0,.23807,85,12,4,0,0,0,0,1,1,18.902,0,0,7225,2.939268,1,4,1.386294,1.386294,1,4,16,1.8902 +0,.9210647,73,12,0,0,0,0,1,1,1,10.857,1,0,5329,2.38481,0,0,,-4.60517,0,1.6,2.56,1.0857 +1,.2499375,69,11,17,0,0,1,1,1,1,40.01,4,1,4761,3.689129,1,17,2.833213,2.833213,1,.8,.64,4.0009998 +0,.2620087,68,10,6,0,0,0,0,0,0,36.64,1,0,4624,3.60114,1,6,1.791759,1.791759,1,.6,.36,3.6639999 +0,.3789298,85,12,3,2,1,0,0,1,1,24.015,1,0,7225,3.178679,0,3,1.098612,1.098612,1,4,16,2.4014999 +0,.1343009,71,8,10,16,0,1,1,1,1,34.311,3,1,5041,3.535466,0,10,2.302585,2.302585,1,1.2,1.44,3.4311001 +0,.7530658,76,11,1,0,0,1,1,0,0,25.116,2,1,5776,3.223505,1,1,0,0,1,2.2,4.84,2.5115999 +0,.9615384,85,10,9,2,0,1,1,0,1,15.6,4,1,7225,2.747271,0,9,2.197225,2.197225,1,4,16,1.56 +0,0,85,10,3,23,0,0,1,1,0,8.096,3,0,7225,2.09137,0,3,1.098612,1.098612,1,4,16,.80959997 +0,0,78,8,1,8,0,0,0,0,0,13.216,1,0,6084,2.581428,0,1,0,0,1,2.6,6.76,1.3216 +0,.4675985,85,17,10,5,0,0,0,1,0,29.119,4,0,7225,3.371391,0,10,2.302585,2.302585,1,4,16,2.9118999 +0,.4642979,70,16,3,21,0,0,1,0,0,29.326,2,0,4900,3.378474,0,3,1.098612,1.098612,1,1,1,2.9326 +0,1,69,12,10,0,0,1,0,0,0,21.669,2,1,4761,3.075883,0,10,2.302585,2.302585,1,.8,.64,2.1669001 +0,1,65,10,0,0,0,0,1,0,0,10.44,0,0,4225,2.345644,1,0,,-4.60517,0,0,0,1.044 +0,.1664971,80,12,1,0,0,1,1,1,1,86.488,1,1,6400,4.460006,0,1,0,0,1,3,9,8.6487999 +0,.3392781,65,12,5,2,0,1,1,0,0,16.429,0,1,4225,2.799048,0,5,1.609438,1.609438,1,0,0,1.6429001 +1,.3123288,75,10,4,0,0,0,0,0,0,36.5,2,0,5625,3.597312,0,4,1.386294,1.386294,1,2,4,3.65 +0,1,82,12,0,0,0,0,1,0,0,7.98,1,0,6724,2.076938,0,0,,-4.60517,0,3.4,11.56,.798 +0,.3552215,81,12,9,1,0,1,1,1,0,15.168,1,1,6561,2.719188,0,9,2.197225,2.197225,1,3.2,10.24,1.5168 +0,.7690972,85,8,37,8,1,0,1,1,1,6.912,3,0,7225,1.933259,1,37,3.610918,3.610918,1,4,16,.69120002 +0,.3214143,66,8,16,0,0,1,1,0,0,30.092,1,1,4356,3.404259,0,16,2.772589,2.772589,1,.2,.04,3.0091999 +0,1,85,12,23,0,1,0,1,1,1,9.6,3,0,7225,2.261763,0,23,3.135494,3.135494,1,4,16,.96000004 +0,1,69,6,0,0,1,0,0,0,0,3.6,1,0,4761,1.280934,0,0,,-4.60517,0,.8,.64,.35999999 +1,0,68,6,0,0,0,1,1,0,0,18.72,1,1,4624,2.929592,0,0,,-4.60517,0,.6,.36,1.8719999 +0,0,69,4,2,0,0,0,0,0,0,13,0,0,4761,2.564949,1,2,.6931472,.6931472,1,.8,.64,1.3 +0,.9957514,84,7,12,1,0,1,1,1,1,7.532,2,1,7056,2.019161,0,12,2.484907,2.484907,1,3.8,14.44,.75320001 +0,0,73,12,7,0,1,0,0,0,0,6,2,0,5329,1.791759,1,7,1.94591,1.94591,1,1.6,2.56,.6 +0,0,69,12,7,1,1,0,1,1,0,6,3,0,4761,1.791759,1,7,1.94591,1.94591,1,.8,.64,.6 +0,1,68,11,11,0,1,0,0,1,1,11,5,0,4624,2.397895,0,11,2.397895,2.397895,1,.6,.36,1.1 +0,1,85,8,3,0,0,0,0,0,0,10.244,1,0,7225,2.326692,0,3,1.098612,1.098612,1,4,16,1.0244 +0,.2801398,73,17,4,0,0,0,1,0,0,70.679,2,0,5329,4.258149,0,4,1.386294,1.386294,1,1.6,2.56,7.0679001 +0,0,85,12,10,1,0,1,0,0,0,26.25,1,1,7225,3.267666,0,10,2.302585,2.302585,1,4,16,2.625 +0,0,85,14,14,0,0,1,1,1,1,1.25,3,1,7225,.2231435,0,14,2.639057,2.639057,1,4,16,.125 +0,.5736765,72,12,3,0,0,1,1,1,0,24.404,2,1,5184,3.194747,0,3,1.098612,1.098612,1,1.4,1.96,2.4403999 +0,1,67,14,6,26,1,0,0,1,1,2,4,0,4489,.6931472,1,6,1.791759,1.791759,1,.4,.16,.2 +0,1,66,6,6,1,1,0,1,1,1,2,4,0,4356,.6931472,1,6,1.791759,1.791759,1,.2,.04,.2 +0,.3305785,68,12,7,0,0,1,0,0,0,24.2,2,1,4624,3.186353,0,7,1.94591,1.94591,1,.6,.36,2.4200001 +0,1,72,4,2,0,1,0,1,1,1,4.642,4,0,5184,1.535145,1,2,.6931472,.6931472,1,1.4,1.96,.46420002 +0,.3798827,70,12,7,11,0,1,0,1,0,35.969,1,1,4900,3.582658,0,7,1.94591,1.94591,1,1,1,3.5969002 +0,.3653846,65,14,0,3,0,0,0,0,0,20.8,1,0,4225,3.034953,0,0,,-4.60517,0,0,0,2.0799999 +0,1,82,9,6,0,1,0,1,0,0,6.924,3,0,6724,1.934994,1,6,1.791759,1.791759,1,3.4,11.56,.69239998 +1,.5074425,68,6,0,0,0,1,0,0,0,29.56,0,1,4624,3.386422,0,0,,-4.60517,0,.6,.36,2.9559999 +0,.3813882,85,7,4,2,0,1,1,0,0,18.354,2,1,7225,2.909847,0,4,1.386294,1.386294,1,4,16,1.8354 +0,.9764938,73,8,1,0,0,0,1,1,1,11.146,2,0,5329,2.411081,0,1,0,0,1,1.6,2.56,1.1146 +0,0,78,0,4,0,1,0,1,1,0,0,2,0,6084,,1,4,1.386294,1.386294,1,2.6,6.76,0 +0,.3248945,69,10,4,0,0,1,0,1,1,23.7,0,1,4761,3.165475,1,4,1.386294,1.386294,1,.8,.64,2.3700001 +0,.0721529,71,17,0,0,0,1,0,0,0,76.227,2,1,5041,4.333716,0,0,,-4.60517,0,1.2,1.44,7.6226997 +0,.0740192,77,17,2,0,0,1,1,1,1,74.305,3,1,5929,4.308178,0,2,.6931472,.6931472,1,2.4,5.76,7.4305 +0,1,85,8,4,1,1,0,1,1,1,9.2,2,0,7225,2.219203,1,4,1.386294,1.386294,1,4,16,.91999998 +0,.4545455,85,12,4,0,0,1,1,1,0,22,1,1,7225,3.091043,0,4,1.386294,1.386294,1,4,16,2.2 +0,.4689587,85,12,28,0,1,0,0,1,1,20.215,3,0,7225,3.006425,0,28,3.332205,3.332205,1,4,16,2.0215 +0,0,71,5,1,0,0,0,1,1,1,0,0,0,5041,,1,1,0,0,1,1.2,1.44,0 +0,.8777285,67,17,5,4,0,1,0,0,0,22.082,0,1,4489,3.094763,0,5,1.609438,1.609438,1,.4,.16,2.2082001 +0,.1820812,71,12,2,1,0,1,0,0,0,59.446,1,1,5041,4.085068,0,2,.6931472,.6931472,1,1.2,1.44,5.9445999 +0,.2553252,71,12,11,3,0,1,1,0,0,42.393,4,1,5041,3.746983,0,11,2.397895,2.397895,1,1.2,1.44,4.2393002 +0,.6777695,77,12,3,3,0,1,1,0,0,13.45,1,1,5929,2.598979,0,3,1.098612,1.098612,1,2.4,5.76,1.345 +0,.6777695,79,12,4,4,0,1,0,1,0,13.45,2,1,6241,2.598979,0,4,1.386294,1.386294,1,2.8,7.84,1.345 +0,.2873578,68,13,1,2,0,1,1,0,0,46.416,1,1,4624,3.837644,0,1,0,0,1,.6,.36,4.6416 +0,0,71,11,6,2,0,1,1,1,0,0,4,1,5041,,1,6,1.791759,1.791759,1,1.2,1.44,0 +1,.0091268,85,16,3,0,0,1,0,0,0,162.05,2,1,7225,5.087905,0,3,1.098612,1.098612,1,4,16,16.205 +0,.2930477,79,12,2,0,0,1,1,1,0,4.948,0,1,6241,1.598983,0,2,.6931472,.6931472,1,2.8,7.84,.4948 +0,.4458772,68,16,0,0,0,1,1,0,0,48.935,0,1,4624,3.890493,0,0,,-4.60517,0,.6,.36,4.8935001 +0,.4458772,69,16,15,12,0,1,0,1,1,48.935,4,1,4761,3.890493,0,15,2.70805,2.70805,1,.8,.64,4.8935001 +0,.7831326,80,15,0,0,0,1,1,1,0,8.3,0,1,6400,2.116256,0,0,,-4.60517,0,3,9,.83000002 +0,.1221363,77,14,3,5,0,0,1,0,0,57.313,2,0,5929,4.048527,0,3,1.098612,1.098612,1,2.4,5.76,5.7313 +0,.9195402,79,9,1,13,0,0,1,1,0,8.7,2,0,6241,2.163323,0,1,0,0,1,2.8,7.84,.86999998 +0,.4115824,73,9,3,0,0,1,0,0,0,20.652,3,1,5329,3.027812,0,3,1.098612,1.098612,1,1.6,2.56,2.0652 +0,.5925926,77,8,1,1,0,1,0,0,0,16.2,0,1,5929,2.785011,0,1,0,0,1,2.4,5.76,1.6200001 +0,.5925926,73,8,0,1,0,1,1,0,0,16.2,0,1,5329,2.785011,0,0,,-4.60517,0,1.6,2.56,1.6200001 +0,.6524009,84,12,17,1,0,0,0,1,1,11.496,2,0,7056,2.441999,0,17,2.833213,2.833213,1,3.8,14.44,1.1496 +0,.4652028,77,10,8,0,0,0,1,0,0,16.122,3,0,5929,2.780185,0,8,2.079442,2.079442,1,2.4,5.76,1.6122 +0,.796748,70,12,2,1,0,0,0,0,0,12.3,2,0,4900,2.509599,0,2,.6931472,.6931472,1,1,1,1.23 +0,.4250033,71,12,2,0,0,0,0,1,0,15.294,1,0,5041,2.727461,0,2,.6931472,.6931472,1,1.2,1.44,1.5294 +0,.4250033,75,12,7,10,0,0,1,0,0,15.294,1,0,5625,2.727461,0,7,1.94591,1.94591,1,2,4,1.5294 +0,.2474023,77,16,6,1,0,0,1,0,0,38.399,1,0,5929,3.648031,0,6,1.791759,1.791759,1,2.4,5.76,3.8398998 +0,.2349333,75,14,16,1,0,0,0,1,1,40.437,2,0,5625,3.699745,0,16,2.772589,2.772589,1,2,4,4.0437 +0,1,85,15,1,0,0,0,1,1,0,10.98,0,0,7225,2.396075,0,1,0,0,1,4,16,1.098 +0,0,68,0,0,0,1,0,0,0,0,3,0,0,4624,1.098612,1,0,,-4.60517,0,.6,.36,.3 +0,0,70,3,0,0,1,0,1,0,0,.564,0,0,4900,-.572701,1,0,,-4.60517,0,1,1,.0564 +0,0,81,3,14,4,1,0,1,1,1,3.2,6,0,6561,1.163151,1,14,2.639057,2.639057,1,3.2,10.24,.32 +0,0,77,12,9,5,0,0,1,0,0,32.831,0,0,5929,3.491373,0,9,2.197225,2.197225,1,2.4,5.76,3.2831001 +0,0,73,12,3,2,0,0,1,0,0,12,3,0,5329,2.484907,1,3,1.098612,1.098612,1,1.6,2.56,1.2 +0,.969744,74,3,1,0,1,0,1,0,1,5.156,1,0,5476,1.640161,1,1,0,0,1,1.8,3.24,.51560001 +0,.7843137,75,14,4,0,0,0,1,1,1,7.65,4,0,5625,2.034706,1,4,1.386294,1.386294,1,2,4,.76500001 +0,.1314291,72,12,7,2,0,1,1,1,1,22.826,3,1,5184,3.1279,0,7,1.94591,1.94591,1,1.4,1.96,2.2826 +0,0,68,14,5,2,0,1,0,1,1,27.473,5,1,4624,3.313204,1,5,1.609438,1.609438,1,.6,.36,2.7473 +0,.5428391,81,12,6,8,0,0,1,0,0,22.106,1,0,6561,3.095849,0,6,1.791759,1.791759,1,3.2,10.24,2.2106001 +0,.1242236,76,12,15,1,0,0,1,0,0,16.1,1,0,5776,2.778819,1,15,2.70805,2.70805,1,2.2,4.84,1.61 +0,.7607656,75,5,16,16,0,1,1,1,1,12.54,4,1,5625,2.528924,0,16,2.772589,2.772589,1,2,4,1.254 +0,.8275862,77,9,16,2,0,0,1,1,1,14.5,5,0,5929,2.674149,0,16,2.772589,2.772589,1,2.4,5.76,1.45 +0,.5604575,76,0,10,0,1,0,1,1,1,7.344,4,0,5776,1.993884,1,10,2.302585,2.302585,1,2.2,4.84,.73439999 +0,1,85,6,4,0,0,0,0,1,1,5.79,4,0,7225,1.756132,1,4,1.386294,1.386294,1,4,16,.579 +0,1,71,3,6,0,0,0,1,1,1,5.79,3,0,5041,1.756132,1,6,1.791759,1.791759,1,1.2,1.44,.579 +0,.9679977,73,12,7,0,0,1,0,1,1,10.593,3,1,5329,2.360193,0,7,1.94591,1.94591,1,1.6,2.56,1.0593 +0,.8149738,73,12,12,9,0,1,1,1,1,12.582,2,1,5329,2.532267,0,12,2.484907,2.484907,1,1.6,2.56,1.2582 +0,.412093,70,16,4,1,0,0,1,0,0,26.693,0,0,4900,3.284401,0,4,1.386294,1.386294,1,1,1,2.6693001 +0,.412093,73,14,4,0,0,0,0,0,0,26.693,1,0,5329,3.284401,0,4,1.386294,1.386294,1,1.6,2.56,2.6693001 +0,.6831032,65,17,6,0,0,1,0,0,0,31.941,1,1,4225,3.463891,0,6,1.791759,1.791759,1,0,0,3.1941 +0,.5830217,65,15,4,33,0,1,0,1,0,33.961,2,1,4225,3.525213,0,4,1.386294,1.386294,1,0,0,3.3960999 +0,1,72,12,0,0,0,1,1,0,0,9.6,0,1,5184,2.261763,0,0,,-4.60517,0,1.4,1.96,.96000004 +0,1,72,16,6,2,0,1,0,1,1,9.6,4,1,5184,2.261763,0,6,1.791759,1.791759,1,1.4,1.96,.96000004 +0,1,71,13,6,0,1,0,1,1,1,4.38,0,0,5041,1.477049,1,6,1.791759,1.791759,1,1.2,1.44,.43800001 +0,1,85,11,8,0,1,0,1,1,1,7.572,1,0,7225,2.024457,1,8,2.079442,2.079442,1,4,16,.7572 +0,1,66,9,3,0,0,0,1,0,0,6,1,0,4356,1.791759,1,3,1.098612,1.098612,1,.2,.04,.6 +0,1,77,12,10,0,0,0,0,0,0,6,1,0,5929,1.791759,1,10,2.302585,2.302585,1,2.4,5.76,.6 +0,.186607,72,12,1,1,0,1,1,0,0,37.512,1,1,5184,3.624661,0,1,0,0,1,1.4,1.96,3.7512001 +0,.1610417,73,16,4,3,0,1,0,1,0,43.467,0,1,5329,3.772002,0,4,1.386294,1.386294,1,1.6,2.56,4.3466999 +0,.5178281,66,12,6,7,0,0,1,1,1,13.518,1,0,4356,2.604022,0,6,1.791759,1.791759,1,.2,.04,1.3518 +0,0,71,16,13,31,0,1,1,1,1,28.247,2,1,5041,3.340987,0,13,2.564949,2.564949,1,1.2,1.44,2.8247 +0,.3677454,68,16,9,4,0,1,1,0,0,29.912,2,1,4624,3.39826,0,9,2.197225,2.197225,1,.6,.36,2.9912001 +0,.3677454,84,17,0,0,0,1,0,1,1,29.912,3,1,7056,3.39826,0,0,,-4.60517,0,3.8,14.44,2.9912001 +0,.1225553,69,14,5,0,0,1,1,0,0,58.749,1,1,4761,4.073274,0,5,1.609438,1.609438,1,.8,.64,5.8749001 +0,.4040404,70,14,2,5,0,1,1,1,1,19.8,0,1,4900,2.985682,0,2,.6931472,.6931472,1,1,1,1.9799999 +0,.4571429,75,16,16,41,0,1,0,1,0,17.5,1,1,5625,2.862201,0,16,2.772589,2.772589,1,2,4,1.75 +0,.3583036,67,12,14,1,0,0,1,0,0,50.46,1,0,4489,3.921181,0,14,2.639057,2.639057,1,.4,.16,5.0459999 +0,0,80,8,0,0,0,1,1,1,1,6.532,1,1,6400,1.876713,0,0,,-4.60517,0,3,9,.65320001 +0,.9956514,72,10,4,0,0,0,1,0,0,10.578,0,0,5184,2.358776,0,4,1.386294,1.386294,1,1.4,1.96,1.0578 +0,.4688166,85,8,8,1,0,1,1,1,1,42.234,2,1,7225,3.743226,0,8,2.079442,2.079442,1,4,16,4.2234001 +0,.2504069,65,17,4,1,0,1,1,1,1,39.935,2,1,4225,3.687253,0,4,1.386294,1.386294,1,0,0,3.9935001 +0,.69675,70,11,4,4,0,0,1,0,0,21.385,1,0,4900,3.06269,0,4,1.386294,1.386294,1,1,1,2.1385 +0,.6666667,79,5,2,0,1,0,1,0,0,7.2,2,0,6241,1.974081,0,2,.6931472,.6931472,1,2.8,7.84,.71999998 +0,.291932,80,12,16,16,0,1,0,0,0,37.68,2,1,6400,3.629129,0,16,2.772589,2.772589,1,3,9,3.768 +0,.2894661,78,17,8,0,0,1,1,0,0,38.001,2,1,6084,3.637612,0,8,2.079442,2.079442,1,2.6,6.76,3.8000999 +0,.0954875,71,17,12,8,0,1,0,0,0,73.308,4,1,5041,4.29467,0,12,2.484907,2.484907,1,1.2,1.44,7.3307999 +0,.9937888,68,12,8,0,0,1,0,0,0,8.05,3,1,4624,2.085672,0,8,2.079442,2.079442,1,.6,.36,.80500002 +0,.7402598,85,16,3,0,0,1,1,1,1,7.7,3,1,7225,2.04122,0,3,1.098612,1.098612,1,4,16,.76999998 +0,.25,76,7,5,0,0,0,0,0,0,16,3,0,5776,2.772589,1,5,1.609438,1.609438,1,2.2,4.84,1.6 +0,.25,73,12,4,0,0,0,1,1,1,16,4,0,5329,2.772589,1,4,1.386294,1.386294,1,1.6,2.56,1.6 +0,.8857508,70,17,4,1,0,0,0,0,0,21.882,1,0,4900,3.085664,0,4,1.386294,1.386294,1,1,1,2.1882 +0,0,83,2,7,0,0,0,1,1,1,9.185,2,0,6889,2.217572,1,7,1.94591,1.94591,1,3.6,12.96,.91850004 +0,.9205087,85,12,1,0,0,1,1,1,1,12.58,1,1,7225,2.532108,0,1,0,0,1,4,16,1.258 +0,0,81,5,4,4,1,0,0,1,1,0,2,0,6561,,1,4,1.386294,1.386294,1,3.2,10.24,0 +0,0,68,1,13,0,1,0,1,1,1,3.75,3,0,4624,1.321756,1,13,2.564949,2.564949,1,.6,.36,.375 +0,1,73,9,10,0,0,1,1,0,0,11.304,2,1,5329,2.425157,0,10,2.302585,2.302585,1,1.6,2.56,1.1304 +0,.4180606,65,16,6,2,0,1,0,0,0,52.191,1,1,4225,3.95491,0,6,1.791759,1.791759,1,0,0,5.2191002 +0,0,77,12,12,0,1,0,1,1,1,14,2,0,5929,2.639057,1,12,2.484907,2.484907,1,2.4,5.76,1.4 +0,1,80,11,1,1,0,1,1,1,0,7.34,2,1,6400,1.993339,0,1,0,0,1,3,9,.73400002 +0,.2760271,82,14,0,1,0,1,1,0,0,43.474,0,1,6724,3.772163,0,0,,-4.60517,0,3.4,11.56,4.3473999 +0,1,83,13,0,1,0,0,0,0,0,9,1,0,6889,2.197225,1,0,,-4.60517,0,3.6,12.96,.9 +0,1,66,14,4,0,0,1,1,0,0,5,0,1,4356,1.609438,1,4,1.386294,1.386294,1,.2,.04,.5 +0,.0909091,67,8,1,0,0,1,0,0,0,55,1,1,4489,4.007333,1,1,0,0,1,.4,.16,5.5 +0,.8134589,71,12,13,0,0,0,0,0,0,11.472,3,0,5041,2.439909,0,13,2.564949,2.564949,1,1.2,1.44,1.1472 +0,.4912024,85,9,9,0,0,1,1,1,1,16.368,2,1,7225,2.795328,0,9,2.197225,2.197225,1,4,16,1.6368 +0,.1575423,75,4,1,0,0,1,0,0,0,53.319,1,1,5625,3.976293,1,1,0,0,1,2,4,5.3319 +0,1,84,9,5,0,1,0,1,1,0,6.924,3,0,7056,1.934994,1,5,1.609438,1.609438,1,3.8,14.44,.69239998 +0,1,75,8,6,3,0,1,1,0,0,11.11,3,1,5625,2.407845,0,6,1.791759,1.791759,1,2,4,1.111 +0,.6293706,79,12,14,1,0,1,1,0,1,7.15,3,1,6241,1.967112,0,14,2.639057,2.639057,1,2.8,7.84,.71500001 +0,.6293706,78,16,33,6,0,1,0,0,0,7.15,5,1,6084,1.967112,0,33,3.496508,3.496508,1,2.6,6.76,.71500001 +0,.0652511,70,12,4,3,0,1,0,0,0,76.627,1,1,4900,4.33895,0,4,1.386294,1.386294,1,1,1,7.6626999 +0,.1753648,69,15,6,6,0,0,1,0,0,28.512,0,0,4761,3.350325,0,6,1.791759,1.791759,1,.8,.64,2.8511999 +0,.7599487,72,16,3,0,0,0,0,0,0,7.79,0,0,5184,2.052841,0,3,1.098612,1.098612,1,1.4,1.96,.779 +0,.3327712,65,12,0,0,0,0,1,0,0,17.79,0,0,4225,2.878637,1,0,,-4.60517,0,0,0,1.7790001 +0,.5517454,76,7,2,0,0,0,0,0,0,35.694,1,0,5776,3.574983,0,2,.6931472,.6931472,1,2.2,4.84,3.5694 +0,.223465,76,12,2,0,0,1,0,1,0,51.319,1,1,5776,3.938061,0,2,.6931472,.6931472,1,2.2,4.84,5.1319 +1,0,65,16,2,0,0,1,1,0,0,17.114,1,1,4225,2.839897,1,2,.6931472,.6931472,1,0,0,1.7114 +0,.5296167,73,11,6,2,1,0,1,1,1,6.888,1,0,5329,1.929781,1,6,1.791759,1.791759,1,1.6,2.56,.6888 +1,0,68,17,0,0,0,1,0,0,0,38,1,1,4624,3.637586,0,0,,-4.60517,0,.6,.36,3.8 +0,.365211,70,13,0,0,0,1,1,0,0,38.334,0,1,4900,3.646337,0,0,,-4.60517,0,1,1,3.8334 +0,.7868853,80,12,17,0,0,1,0,0,0,15.25,2,1,6400,2.72458,0,17,2.833213,2.833213,1,3,9,1.525 +0,.7868853,76,13,15,4,0,1,1,1,0,15.25,4,1,5776,2.72458,0,15,2.70805,2.70805,1,2.2,4.84,1.525 +0,.4883935,69,12,5,1,0,0,1,1,0,17.404,1,0,4761,2.8567,0,5,1.609438,1.609438,1,.8,.64,1.7403999 +0,.4653454,67,13,7,0,0,0,0,0,0,18.266,1,0,4489,2.905041,0,7,1.94591,1.94591,1,.4,.16,1.8266001 +0,.3846154,71,13,0,0,0,0,0,0,0,26,1,0,5041,3.258096,0,0,,-4.60517,0,1.2,1.44,2.6 +0,1,69,12,3,0,0,0,1,0,0,10,1,0,4761,2.302585,0,3,1.098612,1.098612,1,.8,.64,1 +0,1,85,0,2,0,1,0,1,0,0,6.24,1,0,7225,1.83098,0,2,.6931472,.6931472,1,4,16,.62399998 +0,1,72,9,9,0,0,1,1,1,1,9.068,1,1,5184,2.204752,0,9,2.197225,2.197225,1,1.4,1.96,.90679998 +0,1,75,12,7,10,0,0,1,0,0,11.762,1,0,5625,2.464874,0,7,1.94591,1.94591,1,2,4,1.1762 +0,1,75,13,29,25,0,0,0,1,1,11.762,3,0,5625,2.464874,0,29,3.367296,3.367296,1,2,4,1.1762 +0,1,85,3,8,0,1,0,1,1,1,9.096,6,0,7225,2.207835,0,8,2.079442,2.079442,1,4,16,.90959997 +0,.4477006,85,8,2,12,0,1,0,1,0,22.18,1,1,7225,3.099191,0,2,.6931472,.6931472,1,4,16,2.218 +0,.6882552,76,8,3,0,0,0,1,0,0,14.483,1,0,5776,2.672976,0,3,1.098612,1.098612,1,2.2,4.84,1.4483 +0,1,76,16,15,0,1,0,0,0,0,4.704,5,0,5776,1.548413,0,15,2.70805,2.70805,1,2.2,4.84,.4704 +0,.9901074,78,16,14,0,1,0,1,1,1,4.751,1,0,6084,1.558355,0,14,2.639057,2.639057,1,2.6,6.76,.47509999 +0,.8410413,85,12,3,1,0,1,0,1,0,10.487,2,1,7225,2.350137,0,3,1.098612,1.098612,1,4,16,1.0487 +0,.8410413,85,10,7,0,0,1,1,0,0,10.487,2,1,7225,2.350137,0,7,1.94591,1.94591,1,4,16,1.0487 +0,.2646295,71,12,35,19,1,0,1,1,1,12.697,5,0,5041,2.541366,1,35,3.555348,3.555348,1,1.2,1.44,1.2697 +0,.633671,71,12,1,0,0,1,0,1,1,9.082,3,1,5041,2.206294,1,1,0,0,1,1.2,1.44,.90819998 +0,1,84,4,5,1,0,0,1,1,1,5.755,2,0,7056,1.750069,1,5,1.609438,1.609438,1,3.8,14.44,.57550001 +0,0,66,9,12,0,1,0,1,0,0,6,2,0,4356,1.791759,1,12,2.484907,2.484907,1,.2,.04,.6 +0,.5,83,6,12,0,1,0,1,1,1,12,4,0,6889,2.484907,1,12,2.484907,2.484907,1,3.6,12.96,1.2 +0,1,83,13,5,0,0,0,1,1,1,7,2,0,6889,1.94591,0,5,1.609438,1.609438,1,3.6,12.96,.7 +0,.9090909,72,12,3,3,0,1,1,0,0,13.2,0,1,5184,2.580217,0,3,1.098612,1.098612,1,1.4,1.96,1.32 +0,.5,72,8,1,20,0,1,0,1,1,28,4,1,5184,3.332205,0,1,0,0,1,1.4,1.96,2.8 +0,.672,78,10,13,0,0,1,1,1,1,12.5,3,1,6084,2.525729,0,13,2.564949,2.564949,1,2.6,6.76,1.25 +0,0,66,10,2,0,0,0,1,0,0,6.5,1,0,4356,1.871802,1,2,.6931472,.6931472,1,.2,.04,.65 +0,0,77,12,10,0,0,0,0,1,1,6.5,4,0,5929,1.871802,0,10,2.302585,2.302585,1,2.4,5.76,.65 +0,.5989011,71,14,6,3,0,1,1,0,0,18.2,1,1,5041,2.901422,0,6,1.791759,1.791759,1,1.2,1.44,1.8200001 +0,.6845399,75,12,1,0,0,1,0,0,0,18.538,0,1,5625,2.919823,0,1,0,0,1,2,4,1.8538 +0,.863853,72,12,5,6,0,1,1,1,0,14.69,1,1,5184,2.687167,0,5,1.609438,1.609438,1,1.4,1.96,1.469 +0,1,82,0,4,0,1,0,0,1,0,10,1,0,6724,2.302585,0,4,1.386294,1.386294,1,3.4,11.56,1 +0,.5691816,72,11,7,0,0,1,0,1,0,16.594,2,1,5184,2.809041,0,7,1.94591,1.94591,1,1.4,1.96,1.6594 +0,.5691816,70,8,13,0,0,1,1,1,1,16.594,4,1,4900,2.809041,0,13,2.564949,2.564949,1,1,1,1.6594 +0,0,75,12,0,0,0,1,0,1,1,2.931,1,1,5625,1.075344,1,0,,-4.60517,0,2,4,.2931 +0,1,67,16,10,4,0,1,0,0,0,4.032,3,1,4489,1.394263,0,10,2.302585,2.302585,1,.4,.16,.40320001 +0,1,67,16,6,0,0,1,1,0,0,4.032,0,1,4489,1.394263,0,6,1.791759,1.791759,1,.4,.16,.40320001 +0,.9944994,85,12,5,0,0,0,1,1,1,18.18,3,0,7225,2.900322,0,5,1.609438,1.609438,1,4,16,1.818 +0,.9839292,72,14,0,0,0,1,0,0,0,9.147,2,1,5184,2.213426,0,0,,-4.60517,0,1.4,1.96,.91470003 +0,.9839292,75,12,1,1,0,1,1,1,0,9.147,4,1,5625,2.213426,0,1,0,0,1,2,4,.91470003 +0,.9480037,77,16,4,1,0,1,0,0,0,8.616,0,1,5929,2.153621,0,4,1.386294,1.386294,1,2.4,5.76,.86160002 +0,.9480037,74,12,9,6,0,1,1,0,1,8.616,1,1,5476,2.153621,0,9,2.197225,2.197225,1,1.8,3.24,.86160002 +0,1,66,12,14,0,0,0,1,0,0,9.6,2,0,4356,2.261763,0,14,2.639057,2.639057,1,.2,.04,.96000004 +0,.976234,75,12,8,0,0,0,1,1,1,10.94,2,0,5625,2.392426,0,8,2.079442,2.079442,1,2,4,1.094 +0,.4293642,72,12,13,1,0,1,0,0,0,50.817,3,1,5184,3.928231,0,13,2.564949,2.564949,1,1.4,1.96,5.0817001 +0,.8409091,75,12,0,0,0,0,0,0,0,8.8,0,0,5625,2.174752,0,0,,-4.60517,0,2,4,.88000002 +0,.3769571,81,13,4,2,0,0,1,1,0,30.083,1,0,6561,3.40396,0,4,1.386294,1.386294,1,3.2,10.24,3.0083 +0,.8378668,85,12,10,1,0,0,0,1,1,14.007,3,0,7225,2.639557,0,10,2.302585,2.302585,1,4,16,1.4007 +0,.9174504,78,16,0,0,0,0,0,1,0,9.57,2,0,6084,2.258633,0,0,,-4.60517,0,2.6,6.76,.95699997 +0,.9174504,73,13,4,15,0,1,1,1,0,9.57,2,1,5329,2.258633,0,4,1.386294,1.386294,1,1.6,2.56,.95699997 +0,.6486486,77,13,20,2,0,1,0,1,1,18.5,5,1,5929,2.917771,0,20,2.995732,2.995732,1,2.4,5.76,1.85 +0,.6486486,75,12,15,1,0,0,1,1,1,18.5,2,0,5625,2.917771,0,15,2.70805,2.70805,1,2,4,1.85 +0,.1992852,75,17,8,6,0,0,1,0,0,75.269,3,0,5625,4.321068,0,8,2.079442,2.079442,1,2,4,7.5268997 +0,1,75,8,17,0,0,0,0,1,0,7.5,3,0,5625,2.014903,0,17,2.833213,2.833213,1,2,4,.75 +0,1,75,8,1,0,0,0,1,0,0,7.5,0,0,5625,2.014903,0,1,0,0,1,2,4,.75 +1,.446495,76,13,2,0,0,1,0,0,0,20.157,1,1,5776,3.003551,0,2,.6931472,.6931472,1,2.2,4.84,2.0157 +0,.446495,75,12,2,0,0,0,1,0,0,20.157,2,0,5625,3.003551,0,2,.6931472,.6931472,1,2,4,2.0157 +1,.4257866,65,12,6,0,0,1,1,0,0,23.392,0,1,4225,3.152394,0,6,1.791759,1.791759,1,0,0,2.3392 +0,.6904004,76,12,3,0,0,0,0,0,0,16.657,0,0,5776,2.81283,1,3,1.098612,1.098612,1,2.2,4.84,1.6657 +0,.9986258,78,6,4,0,0,1,1,1,1,10.915,3,1,6084,2.390138,0,4,1.386294,1.386294,1,2.6,6.76,1.0915 +0,.3751759,84,12,4,0,0,1,0,1,1,31.985,1,1,7056,3.465267,0,4,1.386294,1.386294,1,3.8,14.44,3.1985001 +0,0,84,1,9,0,1,0,1,1,1,6.396,2,0,7056,1.855673,1,9,2.197225,2.197225,1,3.8,14.44,.63959999 +0,.4761905,72,12,20,53,0,1,0,1,1,21,2,1,5184,3.044523,0,20,2.995732,2.995732,1,1.4,1.96,2.1 +0,.2304785,69,16,2,2,0,1,1,0,0,43.388,3,1,4761,3.770183,0,2,.6931472,.6931472,1,.8,.64,4.3388 +0,.8648649,85,16,14,0,0,1,0,0,1,14.8,2,1,7225,2.694627,0,14,2.639057,2.639057,1,4,16,1.48 +0,0,83,10,2,0,0,0,0,1,0,1.632,1,0,6889,.4898062,1,2,.6931472,.6931472,1,3.6,12.96,.1632 +0,0,81,4,4,0,0,0,1,0,0,1.632,2,0,6561,.4898062,1,4,1.386294,1.386294,1,3.2,10.24,.1632 +1,.0520728,65,17,1,1,0,1,0,0,0,59.34,0,1,4225,4.083283,0,1,0,0,1,0,0,5.934 +0,1,84,14,1,2,0,1,1,1,0,12,2,1,7056,2.484907,0,1,0,0,1,3.8,14.44,1.2 +0,.3839644,65,12,4,3,0,1,0,0,0,23.635,0,1,4225,3.162729,0,4,1.386294,1.386294,1,0,0,2.3635 +0,.5614035,80,16,9,9,0,1,0,0,0,4.275,2,1,6400,1.452784,0,9,2.197225,2.197225,1,3,9,.42750001 +0,.5614035,80,13,0,0,0,1,1,0,0,4.275,0,1,6400,1.452784,0,0,,-4.60517,0,3,9,.42750001 +0,.9495549,75,12,12,11,0,0,1,0,0,8.425,3,0,5625,2.131203,0,12,2.484907,2.484907,1,2,4,.84250002 +0,.1443392,76,17,9,3,0,0,0,0,0,55.425,2,0,5776,4.015031,0,9,2.197225,2.197225,1,2.2,4.84,5.5424999 +0,.4694836,71,16,0,0,1,0,0,0,0,12.78,1,0,5041,2.547881,0,0,,-4.60517,0,1.2,1.44,1.278 +0,.4516129,66,16,0,0,0,1,0,0,0,15.5,0,1,4356,2.74084,1,0,,-4.60517,0,.2,.04,1.55 +0,1,85,9,4,0,0,0,0,1,1,9.684,2,0,7225,2.270475,0,4,1.386294,1.386294,1,4,16,.9684 +0,0,67,8,6,0,1,0,0,0,0,.1,1,0,4489,-2.302585,0,6,1.791759,1.791759,1,.4,.16,.01 +0,.5371587,78,14,4,0,0,1,0,1,0,15.824,1,1,6084,2.761528,0,4,1.386294,1.386294,1,2.6,6.76,1.5824 +0,.5371587,75,13,7,0,0,1,1,1,0,15.824,0,1,5625,2.761528,0,7,1.94591,1.94591,1,2,4,1.5824 +0,.942029,71,12,1,0,0,0,1,0,0,13.8,2,0,5041,2.624669,0,1,0,0,1,1.2,1.44,1.38 +0,.4674486,79,13,10,0,0,1,1,1,0,23.532,2,1,6241,3.158361,0,10,2.302585,2.302585,1,2.8,7.84,2.3532 +0,.8553013,72,15,0,1,0,1,1,0,0,7.602,0,1,5184,2.028411,0,0,,-4.60517,0,1.4,1.96,.76020002 +0,.9985866,83,13,14,16,0,0,1,1,0,11.32,2,0,6889,2.426571,0,14,2.639057,2.639057,1,3.6,12.96,1.132 +0,.2329412,80,16,27,0,0,0,0,0,0,17,3,0,6400,2.833213,0,27,3.295837,3.295837,1,3,9,1.7 +0,.5351351,71,14,10,0,0,0,1,0,0,7.4,0,0,5041,2.00148,0,10,2.302585,2.302585,1,1.2,1.44,.74000001 +0,.2071108,66,16,3,1,0,1,1,0,0,40.558,0,1,4356,3.702733,1,3,1.098612,1.098612,1,.2,.04,4.0557999 +0,.3568315,69,16,2,3,0,1,0,0,0,38.769,2,1,4761,3.657621,0,2,.6931472,.6931472,1,.8,.64,3.8769001 +0,.4549763,85,9,8,1,0,1,0,0,1,10.55,1,1,7225,2.356126,0,8,2.079442,2.079442,1,4,16,1.055 +0,.4549763,85,12,3,2,0,1,1,1,1,10.55,3,1,7225,2.356126,0,3,1.098612,1.098612,1,4,16,1.055 +0,.2224919,76,0,2,0,1,0,1,0,0,31.318,1,0,5776,3.444193,1,2,.6931472,.6931472,1,2.2,4.84,3.1318001 +1,.2053571,68,12,6,15,0,1,1,1,1,56,2,1,4624,4.025352,0,6,1.791759,1.791759,1,.6,.36,5.6 +0,0,67,12,2,0,1,0,1,1,1,7.831,4,0,4489,2.05809,1,2,.6931472,.6931472,1,.4,.16,.78309999 +0,.5371723,71,14,0,0,0,0,1,0,0,9.308,1,0,5041,2.230874,0,0,,-4.60517,0,1.2,1.44,.93079996 +0,.4474401,70,16,6,3,1,0,1,1,1,13.946,1,0,4900,2.635193,0,6,1.791759,1.791759,1,1,1,1.3946 +0,1,70,12,5,12,0,0,0,1,1,9.3,2,0,4900,2.230014,0,5,1.609438,1.609438,1,1,1,.93000002 +0,1,68,17,0,54,0,0,1,1,1,9.3,2,0,4624,2.230014,0,0,,-4.60517,0,.6,.36,.93000002 +0,.1258178,85,17,2,1,0,0,1,1,1,95.376,0,0,7225,4.557827,0,2,.6931472,.6931472,1,4,16,9.5375999 +0,.9771763,68,8,4,1,0,0,0,0,0,8.719,2,0,4624,2.165504,0,4,1.386294,1.386294,1,.6,.36,.87189999 +0,.9771763,70,12,1,4,0,0,1,0,0,8.719,2,0,4900,2.165504,0,1,0,0,1,1,1,.87189999 +0,.6661388,74,12,1,0,0,1,1,0,0,12.628,0,1,5476,2.535917,0,1,0,0,1,1.8,3.24,1.2628 +0,1,67,14,5,6,0,0,0,0,0,21.669,3,0,4489,3.075883,0,5,1.609438,1.609438,1,.4,.16,2.1669001 +0,0,67,15,3,0,0,0,1,0,0,15.64,1,0,4489,2.749832,0,3,1.098612,1.098612,1,.4,.16,1.564 +0,0,70,12,4,0,0,0,0,0,0,3.17,2,0,4900,1.153732,0,4,1.386294,1.386294,1,1,1,.31700001 +0,0,71,12,16,0,0,0,1,0,0,3.17,1,0,5041,1.153732,0,16,2.772589,2.772589,1,1.2,1.44,.31700001 +0,.9992006,68,14,8,4,0,0,1,1,0,15.012,3,0,4624,2.70885,0,8,2.079442,2.079442,1,.6,.36,1.5012 +1,.1662533,70,17,7,0,0,1,0,0,0,72.179,1,1,4900,4.279149,0,7,1.94591,1.94591,1,1,1,7.2179001 +0,.765111,76,15,11,6,0,0,1,1,1,10.456,2,0,5776,2.347176,0,11,2.397895,2.397895,1,2.2,4.84,1.0456 +0,.765111,72,13,2,2,0,0,0,0,1,10.456,1,0,5184,2.347176,0,2,.6931472,.6931472,1,1.4,1.96,1.0456 +0,.1875,85,15,7,1,0,1,1,1,0,16,2,1,7225,2.772589,1,7,1.94591,1.94591,1,4,16,1.6 +0,.1474281,70,12,2,0,0,1,0,1,1,43.411,1,1,4900,3.770713,0,2,.6931472,.6931472,1,1,1,4.3410999 +0,.085289,65,12,8,0,0,1,1,1,1,75.039,3,1,4225,4.318008,0,8,2.079442,2.079442,1,0,0,7.5039001 +0,0,74,5,3,1,1,0,1,1,0,0,0,0,5476,,1,3,1.098612,1.098612,1,1.8,3.24,0 +0,.9286973,70,8,0,0,0,0,0,0,0,6.241,1,0,4900,1.83114,1,0,,-4.60517,0,1,1,.62410002 +1,.391581,66,10,4,1,0,1,1,1,0,30.645,3,1,4356,3.42247,0,4,1.386294,1.386294,1,.2,.04,3.0645 +0,0,76,5,4,8,0,0,0,1,0,4.05,0,0,5776,1.398717,1,4,1.386294,1.386294,1,2.2,4.84,.40500002 +0,0,68,5,5,9,0,0,1,0,0,4.05,4,0,4624,1.398717,1,5,1.609438,1.609438,1,.6,.36,.40500002 +0,1,78,10,2,0,0,0,1,1,1,4.5,3,0,6084,1.504077,1,2,.6931472,.6931472,1,2.6,6.76,.45 +0,.4366549,69,16,7,2,0,1,0,0,0,31.21,2,1,4761,3.440738,0,7,1.94591,1.94591,1,.8,.64,3.1209999 +0,0,66,12,5,0,0,0,1,0,0,8.805,4,0,4356,2.17532,1,5,1.609438,1.609438,1,.2,.04,.88050003 +0,.861244,73,12,14,7,1,0,1,1,0,6.479,3,0,5329,1.868566,1,14,2.639057,2.639057,1,1.6,2.56,.64790001 +0,0,77,6,0,0,1,0,1,0,1,8.44,1,0,5929,2.132982,0,0,,-4.60517,0,2.4,5.76,.84399996 +0,0,70,12,0,0,1,0,0,0,0,1.8,1,0,4900,.5877866,1,0,,-4.60517,0,1,1,.18 +0,0,65,12,0,0,1,0,1,0,0,.624,0,0,4225,-.4716049,1,0,,-4.60517,0,0,0,.0624 +0,.2792159,81,11,7,0,1,0,0,0,0,17.191,0,0,6561,2.844386,0,7,1.94591,1.94591,1,3.2,10.24,1.7191 +0,0,84,12,3,1,0,0,0,0,0,2.25,1,0,7056,.8109302,0,3,1.098612,1.098612,1,3.8,14.44,.225 +0,0,79,12,9,2,0,0,1,0,0,2.25,2,0,6241,.8109302,0,9,2.197225,2.197225,1,2.8,7.84,.225 +0,.9274526,67,12,10,0,0,0,0,0,0,9.704,3,0,4489,2.272538,0,10,2.302585,2.302585,1,.4,.16,.97040005 +0,.9274526,68,16,6,1,0,0,1,0,0,9.704,1,0,4624,2.272538,0,6,1.791759,1.791759,1,.6,.36,.97040005 +0,1,85,8,4,0,0,0,1,1,1,3.2,1,0,7225,1.163151,0,4,1.386294,1.386294,1,4,16,.32 +0,.7670117,78,17,10,2,0,1,1,0,0,23.572,1,1,6084,3.16006,0,10,2.302585,2.302585,1,2.6,6.76,2.3572001 +0,.8475837,77,12,11,21,0,1,0,1,0,7.801,1,1,5929,2.054252,0,11,2.397895,2.397895,1,2.4,5.76,.78010001 +1,.2378332,68,12,12,2,0,1,1,0,0,27.801,0,1,4624,3.325072,0,12,2.484907,2.484907,1,.6,.36,2.7801001 +0,.2831349,68,11,2,5,0,0,0,0,0,68.455,1,0,4624,4.226177,0,2,.6931472,.6931472,1,.6,.36,6.8455002 +0,1,65,13,1,0,0,0,1,0,0,8.4,0,0,4225,2.128232,0,1,0,0,1,0,0,.83999996 +0,1,69,9,8,0,0,0,0,0,0,8.4,1,0,4761,2.128232,0,8,2.079442,2.079442,1,.8,.64,.83999996 +0,1,66,9,1,1,0,0,0,0,0,3.75,0,0,4356,1.321756,1,1,0,0,1,.2,.04,.375 +0,1,70,6,5,0,1,0,1,0,0,9,0,0,4900,2.197225,1,5,1.609438,1.609438,1,1,1,.9 +0,0,82,11,2,1,0,0,0,1,1,7.266,2,0,6724,1.983206,0,2,.6931472,.6931472,1,3.4,11.56,.72659998 +0,0,84,12,8,9,0,0,1,1,1,7.266,1,0,7056,1.983206,0,8,2.079442,2.079442,1,3.8,14.44,.72659998 +0,.4256451,71,16,4,0,0,0,0,0,0,22.554,2,0,5041,3.115912,1,4,1.386294,1.386294,1,1.2,1.44,2.2554001 +0,.5146349,72,17,7,0,0,0,1,1,1,18.654,3,0,5184,2.926061,1,7,1.94591,1.94591,1,1.4,1.96,1.8653999 +0,.363346,85,12,10,1,0,1,1,1,1,25.045,2,1,7225,3.220674,0,10,2.302585,2.302585,1,4,16,2.5045 +0,1,85,8,2,1,0,0,1,1,1,8.9,1,0,7225,2.186051,0,2,.6931472,.6931472,1,4,16,.88999996 +1,.3713738,73,12,4,6,0,1,0,1,0,52.19,2,1,5329,3.954891,0,4,1.386294,1.386294,1,1.6,2.56,5.2189999 +1,.3700992,65,12,23,1,0,1,1,1,1,40.427,3,1,4225,3.699498,0,23,3.135494,3.135494,1,0,0,4.0426998 +0,1,67,7,0,0,0,0,0,1,1,13.5,0,0,4489,2.60269,0,0,,-4.60517,0,.4,.16,1.35 +0,.2750203,85,7,7,1,0,0,0,0,0,2.458,0,0,7225,.899348,0,7,1.94591,1.94591,1,4,16,.24579999 +0,.2750203,83,8,21,1,0,0,1,1,1,2.458,2,0,6889,.899348,0,21,3.044523,3.044523,1,3.6,12.96,.24579999 +0,1,83,14,8,3,0,1,1,1,1,12,3,1,6889,2.484907,0,8,2.079442,2.079442,1,3.6,12.96,1.2 +0,.7012385,76,12,0,0,0,1,0,1,1,17.683,0,1,5776,2.872604,0,0,,-4.60517,0,2.2,4.84,1.7683001 +0,.2651603,76,10,6,9,0,1,1,1,0,31.909,4,1,5776,3.462888,0,6,1.791759,1.791759,1,2.2,4.84,3.1909 +0,.256425,73,14,3,2,0,1,0,0,0,32.996,1,1,5329,3.496386,0,3,1.098612,1.098612,1,1.6,2.56,3.2995998 +0,1,74,11,3,6,0,1,1,1,0,5.9,1,1,5476,1.774952,0,3,1.098612,1.098612,1,1.8,3.24,.59000001 +0,1,75,16,0,1,0,1,0,0,0,5.9,0,1,5625,1.774952,0,0,,-4.60517,0,2,4,.59000001 +0,.8552632,84,8,1,11,0,0,0,1,1,7.6,3,0,7056,2.028148,0,1,0,0,1,3.8,14.44,.75999999 +0,.8552632,67,12,4,20,0,0,1,0,0,7.6,0,0,4489,2.028148,0,4,1.386294,1.386294,1,.4,.16,.75999999 +0,1,76,12,5,1,0,1,1,1,1,8,3,1,5776,2.079442,0,5,1.609438,1.609438,1,2.2,4.84,.8 +0,.3185328,72,3,15,0,1,0,1,0,1,24.864,3,0,5184,3.213421,1,15,2.70805,2.70805,1,1.4,1.96,2.4864 +0,1,76,2,0,0,1,0,1,0,1,7.68,2,0,5776,2.03862,1,0,,-4.60517,0,2.2,4.84,.76799998 +0,.9977863,66,12,11,1,0,0,0,0,0,19.425,1,0,4356,2.966561,0,11,2.397895,2.397895,1,.2,.04,1.9424999 +0,.1360726,75,16,4,2,0,1,0,0,0,37.48,2,1,5625,3.623807,0,4,1.386294,1.386294,1,2,4,3.748 +0,.1348957,74,16,6,4,0,1,1,1,0,37.807,2,1,5476,3.632494,0,6,1.791759,1.791759,1,1.8,3.24,3.7806999 +0,1,68,12,0,0,0,1,0,0,0,5.047,0,1,4624,1.618794,0,0,,-4.60517,0,.6,.36,.50469999 +0,1,71,14,2,0,0,1,1,0,0,5.047,1,1,5041,1.618794,0,2,.6931472,.6931472,1,1.2,1.44,.50469999 +0,.9884027,85,10,0,0,0,0,0,0,0,5.691,0,0,7225,1.738886,0,0,,-4.60517,0,4,16,.5691 +0,.9884027,84,9,1,0,0,0,1,0,0,5.691,1,0,7056,1.738886,0,1,0,0,1,3.8,14.44,.5691 +0,.3254855,70,12,10,0,0,1,1,1,0,18.434,2,1,4900,2.914197,0,10,2.302585,2.302585,1,1,1,1.8434 +0,1,74,10,8,2,0,0,1,1,0,4.998,3,0,5476,1.609038,1,8,2.079442,2.079442,1,1.8,3.24,.49980001 +0,1,79,8,1,0,0,1,0,0,0,4.998,1,1,6241,1.609038,1,1,0,0,1,2.8,7.84,.49980001 +0,.3207547,83,17,22,41,0,1,0,1,1,26.5,4,1,6889,3.277145,0,22,3.091043,3.091043,1,3.6,12.96,2.65 +0,.3207547,81,17,4,2,0,1,1,0,1,26.5,2,1,6561,3.277145,0,4,1.386294,1.386294,1,3.2,10.24,2.65 +0,1,85,8,5,1,1,0,1,1,1,10.98,3,0,7225,2.396075,0,5,1.609438,1.609438,1,4,16,1.098 +0,1,69,3,6,1,1,0,0,1,1,8.676,1,0,4761,2.160561,0,6,1.791759,1.791759,1,.8,.64,.86759996 +0,.6532619,85,12,1,0,0,1,1,0,0,11.389,0,1,7225,2.432648,0,1,0,0,1,4,16,1.1389 +0,.6226415,65,16,2,0,0,0,0,0,0,31.8,2,0,4225,3.459466,0,2,.6931472,.6931472,1,0,0,3.1799999 +0,.9510771,82,10,21,23,0,1,0,1,0,20.379,2,1,6724,3.014505,0,21,3.044523,3.044523,1,3.4,11.56,2.0379 +0,.1775285,85,16,10,2,0,1,0,1,0,56.329,1,1,7225,4.031209,0,10,2.302585,2.302585,1,4,16,5.6328999 +0,.5310956,85,15,0,0,0,1,1,0,0,18.829,0,1,7225,2.935398,0,0,,-4.60517,0,4,16,1.8829 +0,.9225566,65,11,5,0,0,0,0,0,0,19.369,1,0,4225,2.963674,1,5,1.609438,1.609438,1,0,0,1.9368999 +0,1,79,3,30,1,0,0,1,1,0,7.2,4,0,6241,1.974081,0,30,3.401197,3.401197,1,2.8,7.84,.71999998 +0,0,80,12,16,13,1,0,1,1,1,8.175,3,0,6400,2.101081,0,16,2.772589,2.772589,1,3,9,.81750002 +0,.4908109,71,10,16,0,1,0,1,1,1,18.337,3,0,5041,2.908921,1,16,2.772589,2.772589,1,1.2,1.44,1.8337 +0,.4883303,65,8,9,0,1,0,1,1,1,6.684,2,0,4225,1.899717,1,9,2.197225,2.197225,1,0,0,.6684 +0,.5661362,69,12,10,2,0,1,1,1,0,19.165,2,1,4761,2.953086,0,10,2.302585,2.302585,1,.8,.64,1.9165001 +0,.4720059,72,17,4,8,0,1,0,1,0,22.987,2,1,5184,3.134929,0,4,1.386294,1.386294,1,1.4,1.96,2.2987 +0,.248227,67,16,11,1,0,1,0,0,0,28.2,2,1,4489,3.339322,0,11,2.397895,2.397895,1,.4,.16,2.8200001 +0,1,66,4,4,0,1,0,1,1,1,5.736,5,0,4356,1.746762,1,4,1.386294,1.386294,1,.2,.04,.57360001 +0,1,71,6,1,0,1,0,0,1,1,5.736,2,0,5041,1.746762,1,1,0,0,1,1.2,1.44,.57360001 +0,0,67,6,2,0,0,0,1,1,1,6,5,0,4489,1.791759,1,2,.6931472,.6931472,1,.4,.16,.6 +1,.0395213,68,12,12,4,0,1,0,0,0,164.519,1,1,4624,5.103026,0,12,2.484907,2.484907,1,.6,.36,16.4519 +0,.4896791,66,12,2,0,0,1,1,0,0,13.274,1,1,4356,2.585807,0,2,.6931472,.6931472,1,.2,.04,1.3274 +0,.4075235,72,12,11,22,0,1,1,0,0,31.9,1,1,5184,3.462606,0,11,2.397895,2.397895,1,1.4,1.96,3.19 +0,.4075235,74,14,1,0,0,1,0,1,0,31.9,0,1,5476,3.462606,0,1,0,0,1,1.8,3.24,3.19 +0,.6681756,77,10,3,0,0,1,0,0,0,4.418,2,1,5929,1.485687,0,3,1.098612,1.098612,1,2.4,5.76,.44180002 +0,1,75,8,4,0,0,1,1,0,0,2.952,3,1,5625,1.082483,0,4,1.386294,1.386294,1,2,4,.29519999 +0,0,78,0,3,0,0,0,1,1,1,9.185,2,0,6084,2.217572,1,3,1.098612,1.098612,1,2.6,6.76,.91850004 +0,.1000628,74,17,23,8,0,1,0,0,0,50.968,1,1,5476,3.931198,0,23,3.135494,3.135494,1,1.8,3.24,5.0967999 +0,.1100039,72,16,21,23,0,1,1,0,0,46.362,2,1,5184,3.83648,0,21,3.044523,3.044523,1,1.4,1.96,4.6362 +0,0,85,4,17,1,1,0,0,1,0,0,2,0,7225,,1,17,2.833213,2.833213,1,4,16,0 +0,0,68,8,2,0,1,0,1,0,0,6.624,0,0,4624,1.890699,1,2,.6931472,.6931472,1,.6,.36,.66240001 +0,.4705492,71,16,13,13,0,0,0,0,0,18.064,3,0,5041,2.893921,0,13,2.564949,2.564949,1,1.2,1.44,1.8063999 +0,.4705492,69,12,2,1,0,0,1,0,0,18.064,1,0,4761,2.893921,0,2,.6931472,.6931472,1,.8,.64,1.8063999 +0,.1727116,83,11,1,0,0,1,1,0,0,43.425,1,1,6889,3.771035,0,1,0,0,1,3.6,12.96,4.3424999 +0,1,74,12,9,0,0,0,0,0,0,10,1,0,5476,2.302585,1,9,2.197225,2.197225,1,1.8,3.24,1 +0,1,68,16,6,0,0,0,1,0,0,10,1,0,4624,2.302585,1,6,1.791759,1.791759,1,.6,.36,1 +0,.8697494,79,12,8,3,0,1,0,0,0,5.666,3,1,6241,1.734483,0,8,2.079442,2.079442,1,2.8,7.84,.56659999 +0,.9941497,77,12,13,10,0,1,1,0,0,4.957,3,1,5929,1.600801,0,13,2.564949,2.564949,1,2.4,5.76,.49569998 +0,.8408408,75,12,0,1,0,0,0,1,1,8.325,0,0,5625,2.119263,0,0,,-4.60517,0,2,4,.83249998 +0,.8327502,74,14,12,2,0,0,1,0,0,1.429,3,0,5476,.3569749,0,12,2.484907,2.484907,1,1.8,3.24,.1429 +0,.0231387,75,12,1,0,0,0,0,0,0,51.429,1,0,5625,3.940202,0,1,0,0,1,2,4,5.1429001 +0,.9626556,81,3,13,1,0,0,1,1,1,2.892,3,0,6561,1.061948,0,13,2.564949,2.564949,1,3.2,10.24,.2892 +0,.4189944,72,14,3,3,0,0,0,1,0,17.9,3,0,5184,2.884801,0,3,1.098612,1.098612,1,1.4,1.96,1.79 +0,1,72,12,14,6,0,0,1,0,0,7.5,2,0,5184,2.014903,0,14,2.639057,2.639057,1,1.4,1.96,.75 +0,1,72,12,8,5,0,1,1,1,1,19.694,5,1,5184,2.980314,0,8,2.079442,2.079442,1,1.4,1.96,1.9694 +0,.0828655,70,14,9,13,0,1,0,0,0,48.271,2,1,4900,3.876831,0,9,2.197225,2.197225,1,1,1,4.8271 +0,.9445983,82,9,7,2,0,1,1,1,0,14.44,1,1,6724,2.670002,0,7,1.94591,1.94591,1,3.4,11.56,1.444 +1,.0672646,67,10,0,0,0,1,0,0,0,66.9,0,1,4489,4.203199,0,0,,-4.60517,0,.4,.16,6.6900002 +0,.5308124,84,12,6,0,0,0,0,0,0,19.781,3,0,7056,2.984722,0,6,1.791759,1.791759,1,3.8,14.44,1.9781 +0,.755814,80,4,8,0,1,0,1,1,1,5.16,3,0,6400,1.640936,0,8,2.079442,2.079442,1,3,9,.51599998 +0,0,65,17,0,0,0,0,0,0,0,13,1,0,4225,2.564949,0,0,,-4.60517,0,0,0,1.3 +0,0,65,16,7,1,1,0,1,1,0,0,4,0,4225,,0,7,1.94591,1.94591,1,0,0,0 +0,.9574468,85,12,4,0,0,1,0,1,1,5.875,4,1,7225,1.770706,0,4,1.386294,1.386294,1,4,16,.5875 +0,1,85,10,11,4,0,0,1,0,1,11.25,2,0,7225,2.420368,0,11,2.397895,2.397895,1,4,16,1.125 +0,1,85,4,0,0,0,0,0,1,1,11.25,4,0,7225,2.420368,0,0,,-4.60517,0,4,16,1.125 +0,.9333333,68,16,7,2,0,1,0,0,0,9,1,1,4624,2.197225,0,7,1.94591,1.94591,1,.6,.36,.9 +0,.4916421,80,8,14,3,0,1,0,0,0,24.408,3,1,6400,3.194911,0,14,2.639057,2.639057,1,3,9,2.4408001 +0,.5687041,75,16,5,1,0,1,1,1,1,34.816,1,1,5625,3.550077,0,5,1.609438,1.609438,1,2,4,3.4816002 +0,.7843137,75,10,4,0,0,1,0,1,1,15.3,1,1,5625,2.727853,0,4,1.386294,1.386294,1,2,4,1.53 +0,.7843137,75,10,7,2,0,1,1,1,1,15.3,3,1,5625,2.727853,0,7,1.94591,1.94591,1,2,4,1.53 +0,1,85,0,2,0,0,0,0,1,1,6.5,2,0,7225,1.871802,0,2,.6931472,.6931472,1,4,16,.65 +0,.442357,82,12,8,0,0,0,1,1,1,11.71,3,0,6724,2.460443,0,8,2.079442,2.079442,1,3.4,11.56,1.171 +0,.4704356,71,1,8,7,0,0,0,0,0,16.963,3,0,5041,2.831034,0,8,2.079442,2.079442,1,1.2,1.44,1.6962999 +0,.2377057,82,14,30,2,0,0,0,1,1,40.588,4,0,6724,3.703472,0,30,3.401197,3.401197,1,3.4,11.56,4.0588001 +0,.5675777,72,10,16,2,0,0,1,0,1,16.026,2,0,5184,2.774212,0,16,2.772589,2.772589,1,1.4,1.96,1.6025999 +0,0,72,17,0,0,0,0,0,0,0,2.557,0,0,5184,.9388347,1,0,,-4.60517,0,1.4,1.96,.25569999 +0,0,72,16,1,0,0,0,1,0,0,2.557,0,0,5184,.9388347,1,1,0,0,1,1.4,1.96,.25569999 +0,.8602151,75,5,16,0,1,0,0,1,1,9.3,4,0,5625,2.230014,0,16,2.772589,2.772589,1,2,4,.93000002 +0,1,71,11,15,0,0,0,1,1,1,11.28,4,0,5041,2.423031,1,15,2.70805,2.70805,1,1.2,1.44,1.128 +0,.8776844,73,10,1,0,0,0,0,0,0,12.852,3,0,5329,2.553499,1,1,0,0,1,1.6,2.56,1.2852 +0,.721848,85,11,0,0,1,0,1,1,1,10.39,1,0,7225,2.340844,1,0,,-4.60517,0,4,16,1.039 +0,.6510967,77,17,8,8,0,1,0,0,0,29.908,2,1,5929,3.398126,1,8,2.079442,2.079442,1,2.4,5.76,2.9908001 +0,1,79,14,21,1,0,1,1,1,0,6.6,4,1,6241,1.88707,1,21,3.044523,3.044523,1,2.8,7.84,.65999999 +0,1,85,11,11,1,0,1,1,0,0,14.556,3,1,7225,2.678003,0,11,2.397895,2.397895,1,4,16,1.4556 +0,.0900563,71,12,8,3,0,1,1,1,0,26.65,3,1,5041,3.282789,0,8,2.079442,2.079442,1,1.2,1.44,2.665 +0,.9056604,71,15,40,8,0,1,0,1,0,2.65,4,1,5041,.9745597,0,40,3.688879,3.688879,1,1.2,1.44,.26500001 +0,.1846552,73,16,12,2,0,1,0,0,0,54.155,0,1,5329,3.99185,0,12,2.484907,2.484907,1,1.6,2.56,5.4154999 +0,.1922227,74,16,3,10,0,1,1,0,1,52.023,1,1,5476,3.951686,0,3,1.098612,1.098612,1,1.8,3.24,5.2022999 +0,0,65,12,11,0,0,0,1,0,0,0,2,0,4225,,1,11,2.397895,2.397895,1,0,0,0 +0,.0778637,70,16,11,3,0,0,0,0,0,153.743,2,0,4900,5.035282,0,11,2.397895,2.397895,1,1,1,15.3743 +0,1,65,9,4,1,0,0,1,0,0,5.237,2,0,4225,1.655749,1,4,1.386294,1.386294,1,0,0,.5237 +0,1,71,3,2,0,0,0,0,0,0,5.237,1,0,5041,1.655749,1,2,.6931472,.6931472,1,1.2,1.44,.5237 +0,.4137931,67,13,17,0,0,1,0,1,1,29,2,1,4489,3.367296,0,17,2.833213,2.833213,1,.4,.16,2.9 +0,.3950519,77,17,5,2,0,1,0,0,0,50.12,1,1,5929,3.91442,0,5,1.609438,1.609438,1,2.4,5.76,5.0119999 +0,.1096598,72,12,19,0,0,0,1,1,0,30.394,5,0,5184,3.414245,0,19,2.944439,2.944439,1,1.4,1.96,3.0393999 +0,.1209405,77,12,1,1,0,0,0,0,0,27.559,0,0,5929,3.316329,0,1,0,0,1,2.4,5.76,2.7559 +0,.2932014,75,12,5,82,0,1,0,1,0,46.289,3,1,5625,3.834904,0,5,1.609438,1.609438,1,2,4,4.6289001 +0,1,85,5,6,0,0,0,1,1,1,10.404,2,0,7225,2.34219,1,6,1.791759,1.791759,1,4,16,1.0404 +1,.097217,65,16,4,0,0,1,1,0,0,77.147,2,1,4225,4.345713,0,4,1.386294,1.386294,1,0,0,7.7147003 +0,0,66,12,1,1,1,0,0,0,0,23.605,1,0,4356,3.161458,1,1,0,0,1,.2,.04,2.3605 +0,.8795837,74,12,29,0,0,1,0,0,1,12.108,3,1,5476,2.493866,0,29,3.367296,3.367296,1,1.8,3.24,1.2108 +0,.3316583,85,12,4,1,0,0,0,1,1,59.7,0,0,7225,4.089332,0,4,1.386294,1.386294,1,4,16,5.9700001 +0,.196536,76,13,12,0,0,1,0,1,0,24.423,1,1,5776,3.195525,0,12,2.484907,2.484907,1,2.2,4.84,2.4423 +0,.196536,80,12,5,1,0,1,1,1,0,24.423,1,1,6400,3.195525,0,5,1.609438,1.609438,1,3,9,2.4423 +0,1,78,9,3,22,0,0,1,0,1,8.676,0,0,6084,2.160561,1,3,1.098612,1.098612,1,2.6,6.76,.86759996 +0,1,82,13,2,0,0,0,0,1,1,8.676,3,0,6724,2.160561,1,2,.6931472,.6931472,1,3.4,11.56,.86759996 +0,0,66,16,1,1,1,0,0,0,0,0,1,0,4356,,0,1,0,0,1,.2,.04,0 +0,.551714,67,10,2,4,0,1,1,0,1,27.188,2,1,4489,3.302776,0,2,.6931472,.6931472,1,.4,.16,2.7188 +0,.2839457,73,12,1,0,0,1,1,0,0,35.218,0,1,5329,3.561557,0,1,0,0,1,1.6,2.56,3.5217999 +0,1,73,8,2,0,0,0,0,0,0,9.36,0,0,5329,2.236445,0,2,.6931472,.6931472,1,1.6,2.56,.93599997 +0,.0974188,69,12,14,1,0,1,1,1,1,24.02,3,1,4761,3.178887,1,14,2.639057,2.639057,1,.8,.64,2.402 +0,0,68,10,2,0,1,0,1,1,1,7.831,1,0,4624,2.05809,1,2,.6931472,.6931472,1,.6,.36,.78309999 +0,.5641026,73,16,5,1,0,1,0,0,0,19.5,2,1,5329,2.970414,0,5,1.609438,1.609438,1,1.6,2.56,1.95 +0,1,73,12,5,0,0,1,1,0,0,9.5,3,1,5329,2.251292,0,5,1.609438,1.609438,1,1.6,2.56,.95 +0,.1743119,74,9,4,0,0,1,0,0,0,54.5,1,1,5476,3.998201,0,4,1.386294,1.386294,1,1.8,3.24,5.45 +0,.058075,66,12,2,8,0,1,0,0,0,28.842,2,1,4356,3.361833,0,2,.6931472,.6931472,1,.2,.04,2.8841999 +0,.0589063,67,12,4,2,0,1,1,0,0,28.435,3,1,4489,3.347621,0,4,1.386294,1.386294,1,.4,.16,2.8434999 +0,1,73,4,0,0,0,0,1,0,0,13,2,0,5329,2.564949,0,0,,-4.60517,0,1.6,2.56,1.3 +0,.5079365,65,16,4,3,0,1,0,0,0,23.625,1,1,4225,3.162305,0,4,1.386294,1.386294,1,0,0,2.3625 +0,.3406452,85,12,10,2,0,0,1,1,1,58.125,2,0,7225,4.062596,0,10,2.302585,2.302585,1,4,16,5.8125 +0,1,76,12,8,0,1,0,1,1,0,8.7,1,0,5776,2.163323,0,8,2.079442,2.079442,1,2.2,4.84,.86999998 +0,.3718323,71,12,4,3,0,0,1,0,0,17.481,1,0,5041,2.861115,0,4,1.386294,1.386294,1,1.2,1.44,1.7481001 +0,.2768196,73,7,6,0,0,0,0,1,0,23.481,1,0,5329,3.156192,0,6,1.791759,1.791759,1,1.6,2.56,2.3481001 +0,0,80,14,11,0,0,1,0,1,0,20.803,0,1,6400,3.035097,1,11,2.397895,2.397895,1,3,9,2.0802999 +0,0,71,16,6,0,0,1,1,1,0,0,2,1,5041,,1,6,1.791759,1.791759,1,1.2,1.44,0 +0,.2589244,85,14,8,1,1,0,1,1,1,21.458,1,0,7225,3.066097,0,8,2.079442,2.079442,1,4,16,2.1458 +0,.3277463,68,4,7,0,0,0,0,0,1,16.586,0,0,4624,2.808559,1,7,1.94591,1.94591,1,.6,.36,1.6586 +0,1,67,6,5,0,0,0,1,0,0,5.436,1,0,4489,1.693043,1,5,1.609438,1.609438,1,.4,.16,.54359999 +0,.6644518,85,12,0,12,0,1,0,1,0,21.672,2,1,7225,3.076021,0,0,,-4.60517,0,4,16,2.1672001 +0,.7425743,78,12,4,0,1,0,1,1,1,8.08,5,0,6084,2.089392,0,4,1.386294,1.386294,1,2.6,6.76,.80799999 +0,.6888889,85,12,2,1,0,1,1,1,0,11.25,2,1,7225,2.420368,0,2,.6931472,.6931472,1,4,16,1.125 +1,.6504065,72,12,4,3,0,0,0,1,0,12.3,0,0,5184,2.509599,0,4,1.386294,1.386294,1,1.4,1.96,1.23 +0,.5925926,76,14,5,10,0,0,1,1,0,13.5,1,0,5776,2.60269,0,5,1.609438,1.609438,1,2.2,4.84,1.35 +0,1,84,12,10,14,0,0,0,1,0,14.5,2,0,7056,2.674149,0,10,2.302585,2.302585,1,3.8,14.44,1.45 +0,.6540027,71,12,14,2,0,1,0,1,1,16.214,0,1,5041,2.785875,0,14,2.639057,2.639057,1,1.2,1.44,1.6214001 +0,.4472118,72,12,7,6,0,1,1,0,0,29.069,4,1,5184,3.369672,0,7,1.94591,1.94591,1,1.4,1.96,2.9069 +0,0,80,8,0,0,0,1,0,1,1,.964,0,1,6400,-.036664,0,0,,-4.60517,0,3,9,.0964 +0,.3333333,75,12,4,5,1,0,0,0,0,12.096,2,0,5625,2.492875,0,4,1.386294,1.386294,1,2,4,1.2096 +0,1,69,12,8,10,1,0,1,1,1,4.032,3,0,4761,1.394263,0,8,2.079442,2.079442,1,.8,.64,.40320001 +0,.2312155,78,11,15,25,0,1,1,1,1,56.19,6,1,6084,4.028739,0,15,2.70805,2.70805,1,2.6,6.76,5.6189999 +0,.1720326,75,6,9,0,1,0,1,0,0,14.474,2,0,5625,2.672354,1,9,2.197225,2.197225,1,2,4,1.4474 +0,.1758225,70,12,2,0,0,1,1,0,0,25.594,0,1,4900,3.242358,0,2,.6931472,.6931472,1,1,1,2.5594 +0,.2036752,74,12,5,1,0,0,0,0,0,22.094,1,0,5476,3.095306,0,5,1.609438,1.609438,1,1.8,3.24,2.2094 +0,.382975,69,12,2,0,0,1,1,1,0,22.931,2,1,4761,3.13249,0,2,.6931472,.6931472,1,.8,.64,2.2931 +0,.9905553,73,8,10,3,0,0,0,0,1,5.294,2,0,5329,1.666574,0,10,2.302585,2.302585,1,1.6,2.56,.52940001 +0,.4643174,71,12,1,1,0,0,1,0,0,11.294,2,0,5041,2.424272,0,1,0,0,1,1.2,1.44,1.1294 +0,1,84,3,11,1,0,0,0,1,1,5.166,3,0,7056,1.642099,1,11,2.397895,2.397895,1,3.8,14.44,.51659999 +0,1,81,4,19,1,1,0,1,1,1,5.166,5,0,6561,1.642099,1,19,2.944439,2.944439,1,3.2,10.24,.51659999 +1,0,65,12,5,0,0,1,1,1,0,31,2,1,4225,3.433987,1,5,1.609438,1.609438,1,0,0,3.1 +0,0,82,4,2,0,1,0,1,1,1,0,1,0,6724,,0,2,.6931472,.6931472,1,3.4,11.56,0 +0,.4482759,81,8,5,0,0,1,1,0,0,14.5,4,1,6561,2.674149,0,5,1.609438,1.609438,1,3.2,10.24,1.45 +0,1,67,10,4,2,0,0,0,0,0,11.762,0,0,4489,2.464874,0,4,1.386294,1.386294,1,.4,.16,1.1762 +0,1,66,12,3,3,0,0,1,1,1,11.762,1,0,4356,2.464874,0,3,1.098612,1.098612,1,.2,.04,1.1762 +0,.9027778,84,12,7,1,0,1,1,0,0,14.4,1,1,7056,2.667228,0,7,1.94591,1.94591,1,3.8,14.44,1.44 +0,0,80,12,0,0,0,0,0,0,0,2.5,0,0,6400,.9162908,1,0,,-4.60517,0,3,9,.25 +0,0,75,12,1,0,0,0,1,0,0,2.5,1,0,5625,.9162908,1,1,0,0,1,2,4,.25 +0,.1556077,65,17,3,6,0,1,1,0,0,77.117,3,1,4225,4.345324,0,3,1.098612,1.098612,1,0,0,7.7116997 +0,1,68,12,0,0,0,0,1,0,1,8.032,2,0,4624,2.083434,1,0,,-4.60517,0,.6,.36,.80319996 +0,.5,65,12,3,2,1,0,1,0,0,15,4,0,4225,2.70805,1,3,1.098612,1.098612,1,0,0,1.5 +0,1,81,7,0,0,0,0,1,0,0,19.694,2,0,6561,2.980314,0,0,,-4.60517,0,3.2,10.24,1.9694 +0,.1252767,82,17,4,2,0,1,0,0,0,71.841,1,1,6724,4.274456,0,4,1.386294,1.386294,1,3.4,11.56,7.1841003 +0,.1815541,78,12,5,2,0,1,1,0,0,49.572,2,1,6084,3.903426,0,5,1.609438,1.609438,1,2.6,6.76,4.9571999 +0,.5011985,72,12,2,2,0,0,0,0,0,22.945,1,0,5184,3.1331,0,2,.6931472,.6931472,1,1.4,1.96,2.2945 +0,.1106259,65,11,4,3,0,1,1,0,0,103.954,1,1,4225,4.643949,0,4,1.386294,1.386294,1,0,0,10.3954 +0,1,70,12,4,0,0,1,1,0,0,10.584,1,1,4900,2.359343,1,4,1.386294,1.386294,1,1,1,1.0584 +0,.3045294,77,12,4,1,0,1,1,0,0,31.13,4,1,5929,3.438172,0,4,1.386294,1.386294,1,2.4,5.76,3.1129999 +0,.9593496,80,12,1,0,0,0,0,0,0,14.76,2,0,6400,2.691921,0,1,0,0,1,3,9,1.476 +0,.6431096,83,14,2,0,0,1,0,0,0,14.15,0,1,6889,2.649715,0,2,.6931472,.6931472,1,3.6,12.96,1.415 +0,.6431096,80,12,12,4,0,1,1,0,0,14.15,1,1,6400,2.649715,0,12,2.484907,2.484907,1,3,9,1.415 +0,.3865631,66,16,3,2,0,0,0,1,0,25.869,1,0,4356,3.253045,0,3,1.098612,1.098612,1,.2,.04,2.5868999 +0,.7235569,82,14,2,2,0,1,1,1,0,12.82,2,1,6724,2.551006,0,2,.6931472,.6931472,1,3.4,11.56,1.282 +0,0,75,9,9,0,1,0,1,1,1,6,4,0,5625,1.791759,1,9,2.197225,2.197225,1,2,4,.6 +0,0,85,0,7,0,1,0,0,1,1,0,3,0,7225,,1,7,1.94591,1.94591,1,4,16,0 +0,.3508399,65,14,6,5,0,1,1,0,0,56.436,2,1,4225,4.033107,0,6,1.791759,1.791759,1,0,0,5.6436001 +0,.1914894,85,6,1,0,0,0,1,0,0,23.5,1,0,7225,3.157,0,1,0,0,1,4,16,2.35 +0,.7570254,85,8,50,5,0,1,0,1,1,5.231,1,1,7225,1.654602,0,50,3.912023,3.912023,1,4,16,.52309999 +0,.7570254,83,12,13,4,0,1,1,1,1,5.231,5,1,6889,1.654602,0,13,2.564949,2.564949,1,3.6,12.96,.52309999 +0,.6065319,83,12,2,0,0,1,0,1,1,16.075,1,1,6889,2.777265,0,2,.6931472,.6931472,1,3.6,12.96,1.6075001 +0,.6065319,73,13,2,0,0,1,1,0,0,16.075,0,1,5329,2.777265,0,2,.6931472,.6931472,1,1.6,2.56,1.6075001 +0,0,75,10,8,0,0,1,1,1,1,.1,4,1,5625,-2.302585,0,8,2.079442,2.079442,1,2,4,.01 +0,.9948671,76,9,4,0,0,1,0,0,0,19.482,2,1,5776,2.969491,0,4,1.386294,1.386294,1,2.2,4.84,1.9482 +0,.341637,75,11,3,3,0,1,1,0,0,28.1,5,1,5625,3.33577,0,3,1.098612,1.098612,1,2,4,2.81 +0,.341637,77,12,9,0,0,1,0,0,0,28.1,2,1,5929,3.33577,0,9,2.197225,2.197225,1,2.4,5.76,2.81 +0,1,76,12,5,0,1,0,0,1,0,8.494,2,0,5776,2.13936,0,5,1.609438,1.609438,1,2.2,4.84,.84940004 +0,1,75,12,0,0,1,0,1,1,0,8.494,1,0,5625,2.13936,0,0,,-4.60517,0,2,4,.84940004 +0,1,65,8,7,0,0,0,0,1,1,7.2,1,0,4225,1.974081,0,7,1.94591,1.94591,1,0,0,.71999998 +0,1,78,3,9,0,1,0,0,1,1,4.296,3,0,6084,1.457684,1,9,2.197225,2.197225,1,2.6,6.76,.4296 +0,1,78,3,9,2,1,0,1,1,1,4.296,3,0,6084,1.457684,1,9,2.197225,2.197225,1,2.6,6.76,.4296 +0,.8,72,6,19,0,1,0,0,1,0,12,1,0,5184,2.484907,1,19,2.944439,2.944439,1,1.4,1.96,1.2 +0,1,69,2,4,1,0,0,1,1,0,6,2,0,4761,1.791759,1,4,1.386294,1.386294,1,.8,.64,.6 +0,.3072422,75,16,10,0,0,1,0,0,0,18.116,3,1,5625,2.896796,0,10,2.302585,2.302585,1,2,4,1.8115999 +0,.6105748,76,16,12,0,0,1,1,0,0,9.116,2,1,5776,2.210031,0,12,2.484907,2.484907,1,2.2,4.84,.91160002 +0,0,82,10,6,0,1,0,1,1,0,6.868,0,0,6724,1.926873,1,6,1.791759,1.791759,1,3.4,11.56,.6868 +0,1,73,10,0,0,0,1,1,0,0,9.492,0,1,5329,2.250449,0,0,,-4.60517,0,1.6,2.56,.94919996 +0,.1623192,77,12,2,0,0,0,1,0,0,61.607,2,0,5929,4.120776,0,2,.6931472,.6931472,1,2.4,5.76,6.1606998 +0,1,85,16,6,5,0,0,1,1,1,7.046,3,0,7225,1.95246,0,6,1.791759,1.791759,1,4,16,.7046 +0,.1307944,80,12,10,1,0,1,1,0,0,18.013,3,1,6400,2.891094,0,10,2.302585,2.302585,1,3,9,1.8013 +0,.6541649,81,13,40,4,0,1,1,1,0,18.344,3,1,6561,2.909302,0,40,3.688879,3.688879,1,3.2,10.24,1.8344 +0,0,85,12,1,0,0,0,1,1,1,0,2,0,7225,,0,1,0,0,1,4,16,0 +0,.7675775,72,12,11,0,0,0,1,1,0,6.514,2,0,5184,1.873954,0,11,2.397895,2.397895,1,1.4,1.96,.65139999 +0,.1428803,72,17,8,63,0,1,1,1,1,37.045,3,1,5184,3.612133,1,8,2.079442,2.079442,1,1.4,1.96,3.7044998 +0,1,70,8,10,1,0,0,1,0,0,9.5,1,0,4900,2.251292,0,10,2.302585,2.302585,1,1,1,.95 +0,1,71,14,9,3,0,0,1,0,0,14.962,1,0,5041,2.705514,0,9,2.197225,2.197225,1,1.2,1.44,1.4962 +0,1,71,14,0,0,0,0,0,1,1,14.5,1,0,5041,2.674149,0,0,,-4.60517,0,1.2,1.44,1.45 +0,.53926,84,11,13,0,0,1,1,0,0,40.461,2,1,7056,3.700339,0,13,2.564949,2.564949,1,3.8,14.44,4.0460999 +0,.717772,84,15,34,0,0,1,1,1,0,13.932,3,1,7056,2.634188,0,34,3.526361,3.526361,1,3.8,14.44,1.3932 +0,0,72,12,5,0,1,0,1,1,0,6.768,1,0,5184,1.912206,0,5,1.609438,1.609438,1,1.4,1.96,.67680001 +0,.1935484,76,12,40,84,0,1,0,0,0,18.6,0,1,5776,2.923162,1,40,3.688879,3.688879,1,2.2,4.84,1.86 +0,.1935484,74,12,5,0,0,1,1,0,0,18.6,1,1,5476,2.923162,1,5,1.609438,1.609438,1,1.8,3.24,1.86 +0,.8695652,82,12,3,3,0,1,0,1,1,9.2,2,1,6724,2.219203,0,3,1.098612,1.098612,1,3.4,11.56,.91999998 +0,1,66,8,5,0,0,1,1,1,0,5,3,1,4356,1.609438,1,5,1.609438,1.609438,1,.2,.04,.5 +1,0,69,9,0,0,0,1,0,0,0,39,1,1,4761,3.663562,1,0,,-4.60517,0,.8,.64,3.9 +0,.6881129,69,0,5,0,1,0,1,0,0,5.813,2,0,4761,1.760097,1,5,1.609438,1.609438,1,.8,.64,.58130002 +0,.694156,73,12,13,16,0,0,1,0,1,16.564,2,0,5329,2.807232,0,13,2.564949,2.564949,1,1.6,2.56,1.6563999 +0,.3222251,73,16,7,5,0,1,0,1,0,11.433,1,1,5329,2.436504,0,7,1.94591,1.94591,1,1.6,2.56,1.1433 +0,.3222251,70,13,2,4,0,1,1,0,0,11.433,2,1,4900,2.436504,0,2,.6931472,.6931472,1,1,1,1.1433 +0,.1682294,69,12,5,8,0,0,1,0,0,66.124,0,0,4761,4.191532,0,5,1.609438,1.609438,1,.8,.64,6.6124001 +0,.3141937,80,14,16,0,1,0,1,1,1,12.731,1,0,6400,2.54404,0,16,2.772589,2.772589,1,3,9,1.2731 +0,1,69,4,0,0,0,0,1,0,0,5,0,0,4761,1.609438,1,0,,-4.60517,0,.8,.64,.5 +0,.84246,81,12,4,4,0,0,1,0,0,14.244,1,0,6561,2.656336,0,4,1.386294,1.386294,1,3.2,10.24,1.4244 +0,0,85,8,3,0,0,0,1,1,0,8.917,2,0,7225,2.187959,0,3,1.098612,1.098612,1,4,16,.89169998 +0,.1049663,75,13,5,2,0,1,0,0,0,61.696,1,1,5625,4.122219,0,5,1.609438,1.609438,1,2,4,6.1695999 +0,.9016393,76,10,2,0,0,0,1,1,1,12.2,1,0,5776,2.501436,1,2,.6931472,.6931472,1,2.2,4.84,1.22 +0,1,77,7,2,0,0,0,1,1,1,10,2,0,5929,2.302585,0,2,.6931472,.6931472,1,2.4,5.76,1 +0,.7941031,79,12,6,2,0,1,0,0,0,12.142,3,1,6241,2.49667,0,6,1.791759,1.791759,1,2.8,7.84,1.2142 +0,.7941031,78,12,4,3,0,1,1,0,0,12.142,4,1,6084,2.49667,1,4,1.386294,1.386294,1,2.6,6.76,1.2142 +0,.9728622,76,11,3,1,0,1,1,0,0,9.765,3,1,5776,2.278805,0,3,1.098612,1.098612,1,2.2,4.84,.97650003 +0,1,85,13,4,0,0,1,1,1,1,10.8,2,1,7225,2.379546,0,4,1.386294,1.386294,1,4,16,1.08 +0,.4978096,78,16,16,2,0,1,1,1,1,30.132,2,1,6084,3.405588,0,16,2.772589,2.772589,1,2.6,6.76,3.0132 +0,0,73,11,3,0,0,0,0,0,0,9.337,2,0,5329,2.233985,1,3,1.098612,1.098612,1,1.6,2.56,.93369999 +0,1,69,15,2,0,0,0,1,1,0,9.55,3,0,4761,2.256541,0,2,.6931472,.6931472,1,.8,.64,.95500002 +0,1,79,8,1,0,0,1,1,1,0,11.11,2,1,6241,2.407845,0,1,0,0,1,2.8,7.84,1.111 +0,.2534212,72,17,6,0,0,0,1,1,1,59.19,1,0,5184,4.080752,0,6,1.791759,1.791759,1,1.4,1.96,5.9189999 +0,1,85,10,2,0,0,0,1,1,1,8.7,2,0,7225,2.163323,0,2,.6931472,.6931472,1,4,16,.86999998 +0,1,74,11,16,3,0,1,0,1,1,10.8,5,1,5476,2.379546,1,16,2.772589,2.772589,1,1.8,3.24,1.08 +0,.1376535,66,13,1,0,0,1,1,0,0,86.972,0,1,4356,4.465586,0,1,0,0,1,.2,.04,8.6972 +0,.8229128,74,0,0,0,0,0,0,0,0,10.876,0,0,5476,2.386559,1,0,,-4.60517,0,1.8,3.24,1.0876 +0,.8229128,70,0,5,0,0,0,1,0,0,10.876,0,0,4900,2.386559,1,5,1.609438,1.609438,1,1,1,1.0876 +0,.4173878,85,6,0,1,0,1,0,0,1,9.823,2,1,7225,2.284727,0,0,,-4.60517,0,4,16,.9823 +0,.4173878,85,8,2,3,0,1,1,1,1,9.823,4,1,7225,2.284727,0,2,.6931472,.6931472,1,4,16,.9823 +0,0,67,9,0,0,1,0,1,0,0,2.2,0,0,4489,.7884574,1,0,,-4.60517,0,.4,.16,.22 +0,.3303965,65,16,3,9,0,1,0,0,0,36.32,3,1,4225,3.592369,0,3,1.098612,1.098612,1,0,0,3.632 +0,0,74,1,2,0,0,0,0,0,0,9.459,1,0,5476,2.246967,0,2,.6931472,.6931472,1,1.8,3.24,.94589996 +0,0,65,0,1,0,0,0,1,1,0,.698,1,0,4225,-.3595362,0,1,0,0,1,0,0,.0698 +0,.7151899,81,8,11,0,0,1,1,1,1,25.28,4,1,6561,3.230014,0,11,2.397895,2.397895,1,3.2,10.24,2.5280001 +0,1,74,12,13,0,0,0,1,1,1,12,3,0,5476,2.484907,1,13,2.564949,2.564949,1,1.8,3.24,1.2 +0,.5,75,8,3,0,1,0,1,0,0,18,2,0,5625,2.890372,1,3,1.098612,1.098612,1,2,4,1.8 +0,.5,79,6,1,0,1,0,0,0,0,12,1,0,6241,2.484907,1,1,0,0,1,2.8,7.84,1.2 +0,.6578212,85,2,2,0,0,1,0,1,1,17.184,0,1,7225,2.843979,0,2,.6931472,.6931472,1,4,16,1.7184 +0,1,84,9,11,0,1,0,1,1,1,10.656,1,0,7056,2.366123,0,11,2.397895,2.397895,1,3.8,14.44,1.0656 +0,.1572533,83,12,11,10,0,1,0,1,1,30.524,3,1,6889,3.418513,0,11,2.397895,2.397895,1,3.6,12.96,3.0524 +0,.1468384,80,17,6,6,0,1,1,0,0,32.689,2,1,6400,3.487039,0,6,1.791759,1.791759,1,3,9,3.2688999 +0,.9508455,83,8,4,0,0,0,1,0,0,10.172,2,0,6889,2.319639,0,4,1.386294,1.386294,1,3.6,12.96,1.0172 +0,0,78,6,4,0,0,0,1,0,0,10,0,0,6084,2.302585,0,4,1.386294,1.386294,1,2.6,6.76,1 +0,.8888889,79,12,7,1,0,0,0,1,1,9,1,0,6241,2.197225,0,7,1.94591,1.94591,1,2.8,7.84,.9 +0,.8888889,68,12,1,0,0,0,1,0,0,9,0,0,4624,2.197225,0,1,0,0,1,.6,.36,.9 +0,.6632894,66,8,2,0,0,0,0,1,0,32.669,0,0,4356,3.486427,0,2,.6931472,.6931472,1,.2,.04,3.2668999 +0,.8350711,70,12,0,0,0,0,0,1,0,23.21,2,0,4900,3.144583,0,0,,-4.60517,0,1,1,2.3209999 +1,.2462312,68,12,2,9,0,1,0,0,0,39.8,1,1,4624,3.683867,0,2,.6931472,.6931472,1,.6,.36,3.9799999 +0,1,71,12,9,0,0,1,1,1,1,9.8,1,1,5041,2.282382,0,9,2.197225,2.197225,1,1.2,1.44,.98000002 +0,.3700818,68,17,10,5,0,1,1,1,0,25.67,3,1,4624,3.245323,0,10,2.302585,2.302585,1,.6,.36,2.567 +0,.3700818,68,17,2,3,0,1,0,0,0,25.67,0,1,4624,3.245323,0,2,.6931472,.6931472,1,.6,.36,2.567 +0,.3126411,67,12,8,2,0,1,1,0,0,28.787,3,1,4489,3.359924,0,8,2.079442,2.079442,1,.4,.16,2.8787001 +0,.3126411,83,16,16,3,0,1,0,0,0,28.787,1,1,6889,3.359924,0,16,2.772589,2.772589,1,3.6,12.96,2.8787001 +0,.75,75,10,7,0,1,0,1,1,1,7.2,4,0,5625,1.974081,0,7,1.94591,1.94591,1,2,4,.71999998 +0,.9989578,72,8,7,2,1,0,1,1,1,7.676,4,0,5184,2.038099,0,7,1.94591,1.94591,1,1.4,1.96,.76760001 +0,.5348837,66,12,13,1,0,1,1,1,0,21.5,3,1,4356,3.068053,1,13,2.564949,2.564949,1,.2,.04,2.15 +0,.5348837,71,12,1,0,0,1,0,1,0,21.5,1,1,5041,3.068053,1,1,0,0,1,1.2,1.44,2.15 +0,.9109731,70,2,2,3,1,0,1,1,1,5.796,4,0,4900,1.757168,1,2,.6931472,.6931472,1,1,1,.5796 +0,0,76,10,6,1,1,0,1,0,0,1.164,2,0,5776,.1518624,1,6,1.791759,1.791759,1,2.2,4.84,.1164 +0,0,70,6,2,0,1,0,0,0,0,0,1,0,4900,,1,2,.6931472,.6931472,1,1,1,0 +0,.4814815,67,12,3,2,0,0,0,0,0,27,3,0,4489,3.295837,0,3,1.098612,1.098612,1,.4,.16,2.7 +0,0,71,13,48,0,0,1,1,0,1,.309,3,1,5041,-1.174414,0,48,3.871201,3.871201,1,1.2,1.44,.0309 +1,0,73,13,0,0,0,1,0,0,0,52.309,1,1,5329,3.957168,0,0,,-4.60517,0,1.6,2.56,5.2308998 +0,.9268718,81,12,3,2,1,0,1,1,0,8.027,2,0,6561,2.082811,0,3,1.098612,1.098612,1,3.2,10.24,.80270004 +0,.7371007,73,6,4,0,1,0,1,1,1,8.14,2,0,5329,2.09679,1,4,1.386294,1.386294,1,1.6,2.56,.81400003 +0,1,71,14,3,0,0,0,1,0,0,7.2,0,0,5041,1.974081,0,3,1.098612,1.098612,1,1.2,1.44,.71999998 +0,.1206677,72,12,2,3,0,1,0,1,0,74.585,0,1,5184,4.311939,0,2,.6931472,.6931472,1,1.4,1.96,7.4584999 +0,.3592097,70,12,7,2,0,1,1,0,0,25.055,1,1,4900,3.221073,0,7,1.94591,1.94591,1,1,1,2.5055 +0,.4,84,2,4,0,1,0,0,1,1,12.5,5,0,7056,2.525729,0,4,1.386294,1.386294,1,3.8,14.44,1.25 +0,.5714286,66,0,13,1,1,0,1,1,1,8.75,4,0,4356,2.169054,1,13,2.564949,2.564949,1,.2,.04,.875 +0,0,78,6,5,0,0,0,1,1,1,0,3,0,6084,,1,5,1.609438,1.609438,1,2.6,6.76,0 +0,0,67,12,0,0,0,1,1,0,0,21.6,2,1,4489,3.072693,1,0,,-4.60517,0,.4,.16,2.16 +0,.9686099,73,17,2,0,0,1,0,0,1,5.575,2,1,5329,1.718292,0,2,.6931472,.6931472,1,1.6,2.56,.55749998 +1,.115942,68,17,1,0,0,1,1,0,0,46.575,2,1,4624,3.841064,0,1,0,0,1,.6,.36,4.6575001 +0,1,70,16,15,3,0,1,1,0,0,8.7,1,1,4900,2.163323,0,15,2.70805,2.70805,1,1,1,.86999998 +0,.3161977,74,15,1,0,0,0,0,0,0,33.264,1,0,5476,3.504476,0,1,0,0,1,1.8,3.24,3.3264 +0,.3170842,71,13,2,0,0,0,1,0,0,33.171,0,0,5041,3.501676,0,2,.6931472,.6931472,1,1.2,1.44,3.3171001 +0,1,73,8,2,0,0,0,0,0,0,15,0,0,5329,2.70805,1,2,.6931472,.6931472,1,1.6,2.56,1.5 +0,.7107801,85,8,29,2,0,0,0,0,0,11.818,2,0,7225,2.469624,0,29,3.367296,3.367296,1,4,16,1.1818 +0,.7107801,85,8,8,0,0,0,1,0,0,11.818,2,0,7225,2.469624,0,8,2.079442,2.079442,1,4,16,1.1818 +0,.4397081,72,16,7,5,0,0,1,0,0,30.966,2,0,5184,3.43289,0,7,1.94591,1.94591,1,1.4,1.96,3.0966 +0,.4397081,76,17,6,0,0,0,0,1,0,30.966,3,0,5776,3.43289,0,6,1.791759,1.791759,1,2.2,4.84,3.0966 +0,.7065217,76,14,3,0,0,0,0,0,0,18.4,2,0,5776,2.912351,0,3,1.098612,1.098612,1,2.2,4.84,1.84 +0,.8648649,75,12,0,0,0,0,0,1,1,14.8,0,0,5625,2.694627,0,0,,-4.60517,0,2,4,1.48 +0,.8648649,71,12,0,0,0,0,1,0,0,14.8,0,0,5041,2.694627,0,0,,-4.60517,0,1.2,1.44,1.48 +0,1,70,7,2,0,0,0,1,0,0,6,2,0,4900,1.791759,1,2,.6931472,.6931472,1,1,1,.6 +0,1,79,8,1,0,0,0,1,1,1,8.364,1,0,6241,2.123937,1,1,0,0,1,2.8,7.84,.83640003 +0,.6666667,72,17,11,0,0,1,1,0,0,18,4,1,5184,2.890372,0,11,2.397895,2.397895,1,1.4,1.96,1.8 +0,1,73,16,19,0,0,1,0,1,1,12,1,1,5329,2.484907,0,19,2.944439,2.944439,1,1.6,2.56,1.2 +0,.6290507,73,8,9,0,0,0,0,1,1,20.984,4,0,5329,3.04376,0,9,2.197225,2.197225,1,1.6,2.56,2.0983999 +1,.244898,70,12,8,1,0,1,0,0,0,49,3,1,4900,3.89182,1,8,2.079442,2.079442,1,1,1,4.9 +0,1,72,12,13,53,0,1,1,0,0,21.669,2,1,5184,3.075883,0,13,2.564949,2.564949,1,1.4,1.96,2.1669001 +0,1,83,12,0,0,0,1,0,0,0,21.669,1,1,6889,3.075883,0,0,,-4.60517,0,3.6,12.96,2.1669001 +0,.9986131,72,7,2,0,0,0,0,1,1,7.21,1,0,5184,1.975469,0,2,.6931472,.6931472,1,1.4,1.96,.721 +0,.9986131,72,9,2,0,1,0,1,1,1,7.21,3,0,5184,1.975469,0,2,.6931472,.6931472,1,1.4,1.96,.721 +0,.6428571,84,13,7,3,0,0,1,0,0,14,1,0,7056,2.639057,1,7,1.94591,1.94591,1,3.8,14.44,1.4 +0,.9394145,67,12,6,0,0,1,0,0,0,20.632,0,1,4489,3.026843,0,6,1.791759,1.791759,1,.4,.16,2.0632 +0,.1106093,65,15,7,19,0,1,1,0,0,21.698,3,1,4225,3.07722,0,7,1.94591,1.94591,1,0,0,2.1698 +0,.974026,69,14,5,0,0,0,0,0,0,6.16,3,0,4761,1.818077,0,5,1.609438,1.609438,1,.8,.64,.61599998 +0,.7777778,74,3,0,0,0,0,0,0,0,4.5,0,0,5476,1.504077,1,0,,-4.60517,0,1.8,3.24,.45 +0,1,82,6,20,0,1,0,1,1,1,6.42,2,0,6724,1.859418,1,20,2.995732,2.995732,1,3.4,11.56,.64200001 +0,0,69,6,10,0,1,0,1,0,1,6.768,3,0,4761,1.912206,1,10,2.302585,2.302585,1,.8,.64,.67680001 +0,0,85,12,5,1,1,0,1,1,1,6.768,1,0,7225,1.912206,1,5,1.609438,1.609438,1,4,16,.67680001 +0,.16392,65,17,5,27,0,1,1,1,0,79.307,2,1,4225,4.373326,0,5,1.609438,1.609438,1,0,0,7.9306999 +0,.3243243,66,16,4,2,0,1,1,1,0,37,2,1,4356,3.610918,0,4,1.386294,1.386294,1,.2,.04,3.7 +0,.6288896,79,9,4,4,0,0,1,0,1,6.106,3,0,6241,1.809272,0,4,1.386294,1.386294,1,2.8,7.84,.61059999 +0,.2651762,81,12,4,0,0,1,1,0,0,24.512,0,1,6561,3.199163,0,4,1.386294,1.386294,1,3.2,10.24,2.4511999 +0,.2642814,81,12,2,0,0,1,0,0,0,24.595,1,1,6561,3.202543,0,2,.6931472,.6931472,1,3.2,10.24,2.4594999 +0,1,79,13,3,0,0,0,1,0,0,19.694,2,0,6241,2.980314,0,3,1.098612,1.098612,1,2.8,7.84,1.9694 +0,.187911,77,11,15,20,0,1,1,1,0,57.474,4,1,5929,4.051332,0,15,2.70805,2.70805,1,2.4,5.76,5.7473999 +0,.5,71,6,8,0,0,0,0,0,0,16.86,3,0,5041,2.824944,0,8,2.079442,2.079442,1,1.2,1.44,1.6860001 +0,.9237875,65,12,2,0,0,1,1,1,1,10.825,0,1,4225,2.381858,1,2,.6931472,.6931472,1,0,0,1.0825 +0,0,78,5,5,0,1,0,1,0,0,6,1,0,6084,1.791759,1,5,1.609438,1.609438,1,2.6,6.76,.6 +0,.5,70,8,3,3,0,1,0,1,1,19.2,1,1,4900,2.95491,0,3,1.098612,1.098612,1,1,1,1.9200001 +0,1,85,7,2,0,0,0,1,1,0,6.72,2,0,7225,1.905088,1,2,.6931472,.6931472,1,4,16,.67199998 +0,.4894763,85,12,5,1,0,1,0,0,0,18.387,0,1,7225,2.911644,0,5,1.609438,1.609438,1,4,16,1.8386999 +0,.4894763,71,12,4,12,0,0,1,0,0,18.387,2,0,5041,2.911644,0,4,1.386294,1.386294,1,1.2,1.44,1.8386999 +0,.8333333,75,12,1,0,0,0,0,0,0,15,3,0,5625,2.70805,1,1,0,0,1,2,4,1.5 +0,.4186046,65,12,16,3,0,1,1,1,0,34.4,3,1,4225,3.538057,0,16,2.772589,2.772589,1,0,0,3.4400002 +0,.2566159,75,12,23,2,0,0,0,1,1,24.94,2,0,5625,3.216473,0,23,3.135494,3.135494,1,2,4,2.4940001 +0,.5383265,81,11,11,1,1,0,0,1,1,10.254,2,0,6561,2.327668,0,11,2.397895,2.397895,1,3.2,10.24,1.0254 +0,1,85,6,7,0,0,0,1,1,1,6,3,0,7225,1.791759,0,7,1.94591,1.94591,1,4,16,.6 +0,.2231202,72,14,6,46,0,1,0,1,1,40.337,3,1,5184,3.697269,0,6,1.791759,1.791759,1,1.4,1.96,4.0337002 +0,.3114187,72,14,0,1,0,1,1,1,1,28.9,2,1,5184,3.363842,0,0,,-4.60517,0,1.4,1.96,2.89 +0,.0890769,70,14,3,11,0,0,1,0,0,44.905,1,0,4900,3.804549,0,3,1.098612,1.098612,1,1,1,4.4904999 +0,0,85,2,4,0,1,0,1,1,0,0,2,0,7225,,1,4,1.386294,1.386294,1,4,16,0 +0,.4713548,71,12,19,1,0,0,1,1,1,16.268,4,0,5041,2.7892,0,19,2.944439,2.944439,1,1.2,1.44,1.6268 +0,0,76,7,3,0,0,1,0,0,0,36.983,1,1,5776,3.610458,1,3,1.098612,1.098612,1,2.2,4.84,3.6983002 +0,.5050393,85,8,4,0,0,0,1,1,1,25.202,2,0,7225,3.226923,0,4,1.386294,1.386294,1,4,16,2.5202 +0,1,85,16,0,0,0,1,1,0,0,9.6,0,1,7225,2.261763,0,0,,-4.60517,0,4,16,.96000004 +0,1,85,12,0,0,0,1,0,1,1,10.092,1,1,7225,2.311743,0,0,,-4.60517,0,4,16,1.0092 +0,.6896552,77,15,18,10,0,0,1,1,1,14.5,5,0,5929,2.674149,1,18,2.890372,2.890372,1,2.4,5.76,1.45 +0,.6896552,76,12,10,1,0,0,0,1,1,14.5,4,0,5776,2.674149,0,10,2.302585,2.302585,1,2.2,4.84,1.45 +0,.9615384,85,10,2,0,0,1,1,1,0,5.2,2,1,7225,1.648659,1,2,.6931472,.6931472,1,4,16,.51999998 +0,.4685813,71,12,0,0,0,1,0,0,0,30.014,0,1,5041,3.401664,0,0,,-4.60517,0,1.2,1.44,3.0014 +0,0,65,12,1,0,0,1,1,0,0,29.25,0,1,4225,3.37588,0,1,0,0,1,0,0,2.925 +0,.2808813,66,13,5,2,0,0,1,0,0,32.042,2,0,4356,3.467047,0,5,1.609438,1.609438,1,.2,.04,3.2042 +0,.3822955,65,12,2,3,0,1,0,0,0,23.542,2,1,4225,3.158786,0,2,.6931472,.6931472,1,0,0,2.3542 +0,1,65,9,0,0,0,0,0,1,1,6.24,1,0,4225,1.83098,0,0,,-4.60517,0,0,0,.62399998 +0,.4309392,68,12,1,0,0,1,0,1,0,18.1,1,1,4624,2.895912,0,1,0,0,1,.6,.36,1.81 +0,.6446281,72,13,1,2,0,1,1,0,0,12.1,2,1,5184,2.493206,0,1,0,0,1,1.4,1.96,1.21 +0,0,74,16,3,0,0,1,0,1,1,42.272,2,1,5476,3.744125,0,3,1.098612,1.098612,1,1.8,3.24,4.2271999 +0,0,75,14,0,0,0,1,1,1,1,34.111,2,1,5625,3.52962,0,0,,-4.60517,0,2,4,3.4111 +0,.4545455,75,13,17,3,0,1,1,0,0,13.2,0,1,5625,2.580217,0,17,2.833213,2.833213,1,2,4,1.32 +0,.8910891,73,12,6,0,0,0,1,0,0,10.1,0,0,5329,2.312536,0,6,1.791759,1.791759,1,1.6,2.56,1.01 +0,.8910891,75,11,2,0,0,0,0,0,0,10.1,0,0,5625,2.312536,0,2,.6931472,.6931472,1,2,4,1.01 +0,.3783672,85,5,4,1,0,1,0,1,1,28.956,4,1,7225,3.365777,1,4,1.386294,1.386294,1,4,16,2.8955999 +0,.2126819,73,13,0,0,0,0,0,0,0,32.913,0,0,5329,3.493868,1,0,,-4.60517,0,1.6,2.56,3.2912998 +0,0,70,12,4,7,0,1,1,1,0,4.24,3,1,4900,1.444563,0,4,1.386294,1.386294,1,1,1,.42399998 +0,.4157581,68,12,4,0,0,0,1,1,0,27.516,2,0,4624,3.314768,0,4,1.386294,1.386294,1,.6,.36,2.7516001 +0,1,70,9,12,0,0,1,0,1,1,9,3,1,4900,2.197225,1,12,2.484907,2.484907,1,1,1,.9 +0,.206862,66,17,3,24,0,1,0,0,0,95.716,2,1,4356,4.561386,0,3,1.098612,1.098612,1,.2,.04,9.5716003 +0,.2532971,66,12,21,7,0,0,1,1,1,59.219,4,0,4356,4.081243,0,21,3.044523,3.044523,1,.2,.04,5.9219002 +0,.5916452,70,15,11,0,0,1,0,0,0,19.079,4,1,4900,2.948588,0,11,2.397895,2.397895,1,1,1,1.9079 +0,.5916452,71,12,4,4,0,1,1,0,0,19.079,3,1,5041,2.948588,0,4,1.386294,1.386294,1,1.2,1.44,1.9079 +0,1,76,12,7,1,0,1,1,1,1,10.462,4,1,5776,2.34775,0,7,1.94591,1.94591,1,2.2,4.84,1.0462 +0,.625,81,7,14,1,0,1,0,1,1,15,3,1,6561,2.70805,0,14,2.639057,2.639057,1,3.2,10.24,1.5 +0,.5769231,72,12,9,0,0,1,1,1,1,16.25,4,1,5184,2.788093,0,9,2.197225,2.197225,1,1.4,1.96,1.625 +0,.3109151,68,13,0,0,1,0,0,1,0,21.768,1,0,4624,3.080441,0,0,,-4.60517,0,.6,.36,2.1768 +0,0,85,8,11,0,0,1,1,1,1,.802,4,1,7225,-.2206467,0,11,2.397895,2.397895,1,4,16,.0802 +0,.722393,83,8,7,4,0,1,0,0,0,13.339,1,1,6889,2.590692,0,7,1.94591,1.94591,1,3.6,12.96,1.3339 +0,.722393,77,12,7,1,0,1,1,1,0,13.339,0,1,5929,2.590692,0,7,1.94591,1.94591,1,2.4,5.76,1.3339 +0,.3792188,78,12,31,2,0,1,0,1,1,23.733,4,1,6084,3.166867,0,31,3.433987,3.433987,1,2.6,6.76,2.3733 +0,.3741581,72,12,1,2,0,1,1,0,0,24.054,0,1,5184,3.180301,0,1,0,0,1,1.4,1.96,2.4054001 +0,0,65,13,1,0,0,1,1,0,0,.1,3,1,4225,-2.302585,1,1,0,0,1,0,0,.01 +1,0,67,14,0,0,0,1,0,0,0,33.986,0,1,4489,3.525949,1,0,,-4.60517,0,.4,.16,3.3986 +0,0,85,14,4,0,0,1,1,0,0,9.997,3,1,7225,2.302285,0,4,1.386294,1.386294,1,4,16,.99969997 +1,.1489514,69,12,0,0,0,1,0,0,0,25.176,0,1,4761,3.225891,1,0,,-4.60517,0,.8,.64,2.5176001 +0,.7894737,67,12,0,0,0,0,1,0,0,4.75,0,0,4489,1.558145,1,0,,-4.60517,0,.4,.16,.475 +0,.4316833,66,17,5,0,0,1,0,0,0,50.544,0,1,4356,3.922844,0,5,1.609438,1.609438,1,.2,.04,5.0543999 +0,0,66,16,4,1,0,1,1,0,0,54.347,0,1,4356,3.995389,0,4,1.386294,1.386294,1,.2,.04,5.4347 +0,.7848346,76,4,0,0,0,1,0,0,0,8.282,1,1,5776,2.114084,0,0,,-4.60517,0,2.2,4.84,.82819996 +0,.7848346,72,4,3,0,0,1,1,1,0,8.282,2,1,5184,2.114084,0,3,1.098612,1.098612,1,1.4,1.96,.82819996 +0,1,68,12,22,11,0,1,1,1,0,12,2,1,4624,2.484907,0,22,3.091043,3.091043,1,.6,.36,1.2 +0,.9084584,82,12,16,3,0,1,1,1,1,10.924,2,1,6724,2.390962,0,16,2.772589,2.772589,1,3.4,11.56,1.0924 +0,.5,76,9,0,0,0,0,0,1,0,24,0,0,5776,3.178054,1,0,,-4.60517,0,2.2,4.84,2.4 +0,1,71,11,3,0,0,1,1,1,0,6.432,2,1,5041,1.861286,0,3,1.098612,1.098612,1,1.2,1.44,.64320002 +0,.618047,85,12,8,0,0,1,1,1,0,12.944,3,1,7225,2.560632,0,8,2.079442,2.079442,1,4,16,1.2944 +0,0,75,12,11,0,0,0,1,1,0,9.784,3,0,5625,2.280748,0,11,2.397895,2.397895,1,2,4,.97840004 +0,0,79,12,3,0,0,0,0,1,0,9.784,2,0,6241,2.280748,0,3,1.098612,1.098612,1,2.8,7.84,.97840004 +0,.7424577,71,10,18,0,0,0,1,1,1,16.308,3,0,5041,2.791656,0,18,2.890372,2.890372,1,1.2,1.44,1.6308001 +0,1,73,5,0,15,0,1,0,0,0,8.689,0,1,5329,2.162058,0,0,,-4.60517,0,1.6,2.56,.86890001 +0,.3997765,71,6,7,0,0,1,0,1,0,32.208,2,1,5041,3.472215,1,7,1.94591,1.94591,1,1.2,1.44,3.2208 +0,.9777382,75,6,9,4,0,1,1,1,1,8.984,1,1,5625,2.195445,0,9,2.197225,2.197225,1,2,4,.89840002 +0,1,85,4,0,0,0,0,0,1,1,10,0,0,7225,2.302585,1,0,,-4.60517,0,4,16,1 +0,0,67,17,5,0,0,0,1,0,0,71.607,0,0,4489,4.271193,1,5,1.609438,1.609438,1,.4,.16,7.1607002 +0,0,69,12,2,0,0,1,0,0,0,.681,1,1,4761,-.384193,1,2,.6931472,.6931472,1,.8,.64,.0681 +0,1,69,12,2,0,0,0,1,0,0,13,1,0,4761,2.564949,0,2,.6931472,.6931472,1,.8,.64,1.3 +0,1,70,8,17,0,1,0,1,1,1,6,4,0,4900,1.791759,1,17,2.833213,2.833213,1,1,1,.6 +0,1,75,8,4,0,0,0,0,1,1,9,1,0,5625,2.197225,1,4,1.386294,1.386294,1,2,4,.9 +0,.7216495,85,10,6,6,0,1,1,1,1,19.4,2,1,7225,2.965273,0,6,1.791759,1.791759,1,4,16,1.94 +0,1,65,3,9,1,0,0,1,1,1,5.436,5,0,4225,1.693043,1,9,2.197225,2.197225,1,0,0,.54359999 +0,.3724053,69,3,4,0,0,0,0,1,1,14.597,2,0,4761,2.680816,1,4,1.386294,1.386294,1,.8,.64,1.4597 +0,.8305489,78,7,7,11,0,0,1,0,0,10.475,4,0,6084,2.348991,1,7,1.94591,1.94591,1,2.6,6.76,1.0475 +0,1,85,8,1,0,0,0,1,1,1,7,1,0,7225,1.94591,0,1,0,0,1,4,16,.7 +0,.8014247,72,17,0,0,0,0,0,1,0,8.984,1,0,5184,2.195445,1,0,,-4.60517,0,1.4,1.96,.89840002 +0,.0696921,69,16,19,4,0,1,0,0,0,73.179,2,1,4761,4.292909,0,19,2.944439,2.944439,1,.8,.64,7.3179001 +0,.3869793,71,17,30,12,0,1,1,1,1,13.179,3,1,5041,2.578625,0,30,3.401197,3.401197,1,1.2,1.44,1.3179 +0,.2297752,68,17,1,0,0,1,1,0,0,54.401,1,1,4624,3.996382,0,1,0,0,1,.6,.36,5.4401001 +0,.2297752,69,17,19,7,0,1,0,1,1,54.401,2,1,4761,3.996382,0,19,2.944439,2.944439,1,.8,.64,5.4401001 +0,.7604252,77,14,7,0,0,1,1,1,0,9.784,1,1,5929,2.280748,0,7,1.94591,1.94591,1,2.4,5.76,.97840004 +0,1,72,4,7,1,0,0,1,0,0,9.356,1,0,5184,2.236018,1,7,1.94591,1.94591,1,1.4,1.96,.93559999 +0,.4762785,69,3,10,2,0,0,1,0,0,9.738,1,0,4761,2.276036,1,10,2.302585,2.302585,1,.8,.64,.97379999 +0,.8111228,73,3,5,0,0,0,0,0,1,5.718,3,0,5329,1.743619,1,5,1.609438,1.609438,1,1.6,2.56,.57179999 +0,0,77,8,7,1,1,0,1,1,0,0,3,0,5929,,0,7,1.94591,1.94591,1,2.4,5.76,0 +0,.8136857,82,8,10,0,0,0,1,1,1,11.808,1,0,6724,2.468777,0,10,2.302585,2.302585,1,3.4,11.56,1.1808 +0,0,70,0,6,1,1,0,1,0,0,5,0,0,4900,1.609438,1,6,1.791759,1.791759,1,1,1,.5 +0,0,73,0,0,0,1,0,0,0,0,5,0,0,5329,1.609438,1,0,,-4.60517,0,1.6,2.56,.5 +0,.2565407,85,10,17,2,0,0,1,1,1,14.945,3,0,7225,2.704377,0,17,2.833213,2.833213,1,4,16,1.4945 +0,.1551812,81,14,3,2,0,1,1,0,0,41.429,1,1,6561,3.723981,0,3,1.098612,1.098612,1,3.2,10.24,4.1429001 +0,0,85,10,0,0,0,0,1,0,0,0,0,0,7225,,0,0,,-4.60517,0,4,16,0 +0,0,70,4,0,0,0,0,1,0,0,0,0,0,4900,,1,0,,-4.60517,0,1,1,0 +1,.1898734,65,6,3,0,0,1,0,1,0,18.96,1,1,4225,2.942332,0,3,1.098612,1.098612,1,0,0,1.8959999 +0,.9638554,83,12,10,4,1,0,1,1,1,8.3,1,0,6889,2.116256,0,10,2.302585,2.302585,1,3.6,12.96,.83000002 +0,1,83,13,3,0,0,1,0,0,0,11.25,0,1,6889,2.420368,0,3,1.098612,1.098612,1,3.6,12.96,1.125 +0,1,80,11,2,4,0,1,1,0,0,11.25,2,1,6400,2.420368,0,2,.6931472,.6931472,1,3,9,1.125 +0,.7407407,71,16,18,8,0,0,0,1,0,20.25,3,0,5041,3.008155,0,18,2.890372,2.890372,1,1.2,1.44,2.025 +0,.852459,79,12,12,0,0,0,0,0,0,9.15,2,0,6241,2.213754,0,12,2.484907,2.484907,1,2.8,7.84,.91499996 +0,.852459,80,13,23,0,0,0,1,1,1,9.15,2,0,6400,2.213754,0,23,3.135494,3.135494,1,3,9,.91499996 +1,.2695652,66,10,2,1,0,1,0,1,1,28.75,3,1,4356,3.358638,1,2,.6931472,.6931472,1,.2,.04,2.875 +0,0,69,1,4,2,0,0,0,1,0,0,2,0,4761,,1,4,1.386294,1.386294,1,.8,.64,0 +0,0,74,17,5,3,0,1,1,1,0,75.513,1,1,5476,4.324305,0,5,1.609438,1.609438,1,1.8,3.24,7.5513 +1,.1256301,71,16,6,3,0,1,0,0,0,63.679,1,1,5041,4.153855,0,6,1.791759,1.791759,1,1.2,1.44,6.3679001 +0,.3690207,70,16,8,18,0,1,1,0,0,21.679,1,1,4900,3.076344,0,8,2.079442,2.079442,1,1,1,2.1679001 +0,.262687,73,17,3,0,0,1,0,0,0,30.957,2,1,5329,3.432599,0,3,1.098612,1.098612,1,1.6,2.56,3.0957001 +0,.869082,74,17,3,2,0,1,1,0,0,9.357,1,1,5476,2.236125,0,3,1.098612,1.098612,1,1.8,3.24,.93570004 +0,.4700778,68,12,5,4,0,1,1,0,0,27.655,2,1,4624,3.319807,0,5,1.609438,1.609438,1,.6,.36,2.7655001 +0,.8695652,74,17,7,1,0,1,1,0,0,5.75,0,1,5476,1.7492,0,7,1.94591,1.94591,1,1.8,3.24,.575 +0,.0572017,70,17,16,6,0,1,0,0,0,87.41,1,1,4900,4.47061,0,16,2.772589,2.772589,1,1,1,8.7410004 +0,.3590759,85,16,8,1,0,1,0,1,1,37.875,4,1,7225,3.634291,0,8,2.079442,2.079442,1,4,16,3.7875 +0,0,65,17,7,9,0,0,0,0,0,30.02,0,0,4225,3.401864,0,7,1.94591,1.94591,1,0,0,3.002 +0,.4426955,80,16,11,6,0,1,0,0,0,20.33,2,1,6400,3.012098,0,11,2.397895,2.397895,1,3,9,2.033 +0,.4391101,78,15,8,2,0,1,1,1,0,20.496,4,1,6084,3.02023,0,8,2.079442,2.079442,1,2.6,6.76,2.0496 +0,.628051,81,14,5,2,0,1,1,0,0,21.304,0,1,6561,3.058895,0,5,1.609438,1.609438,1,3.2,10.24,2.1304001 +0,.5,84,11,15,1,1,0,1,1,1,18.288,3,0,7056,2.906245,0,15,2.70805,2.70805,1,3.8,14.44,1.8288 +0,.8454039,65,16,3,0,0,1,0,0,0,17.743,0,1,4225,2.875991,0,3,1.098612,1.098612,1,0,0,1.7743 +0,.9871408,68,14,2,1,0,1,0,0,0,14.231,3,1,4624,2.655423,0,2,.6931472,.6931472,1,.6,.36,1.4231 +0,.3877551,78,12,5,1,0,0,0,0,1,29.4,1,0,6084,3.380995,0,5,1.609438,1.609438,1,2.6,6.76,2.94 +0,.4696506,79,15,7,0,0,1,1,1,0,42.159,4,1,6241,3.741448,0,7,1.94591,1.94591,1,2.8,7.84,4.2159 +0,0,80,11,3,1,1,0,1,0,0,9.185,1,0,6400,2.217572,1,3,1.098612,1.098612,1,3,9,.91850004 +0,.2462172,85,17,2,0,0,0,1,1,1,44.676,1,0,7225,3.799436,0,2,.6931472,.6931472,1,4,16,4.4675999 +0,.6745065,72,16,21,9,0,1,0,1,1,14.286,2,1,5184,2.65928,0,21,3.044523,3.044523,1,1.4,1.96,1.4286 +0,.6745065,72,12,15,17,0,1,1,0,0,14.286,2,1,5184,2.65928,0,15,2.70805,2.70805,1,1.4,1.96,1.4286 +0,.1584828,72,17,0,0,1,0,0,0,0,37.859,0,0,5184,3.633869,1,0,,-4.60517,0,1.4,1.96,3.7859001 +0,.3877551,84,12,2,0,0,1,0,0,0,24.5,0,1,7056,3.198673,0,2,.6931472,.6931472,1,3.8,14.44,2.45 +0,1,70,13,2,0,0,1,1,1,1,9.5,1,1,4900,2.251292,0,2,.6931472,.6931472,1,1,1,.95 +0,1,74,0,3,0,1,0,1,0,0,9,1,0,5476,2.197225,0,3,1.098612,1.098612,1,1.8,3.24,.9 +0,1,71,5,0,0,1,0,0,0,0,3.7,0,0,5041,1.308333,1,0,,-4.60517,0,1.2,1.44,.37 +0,1,67,5,0,0,1,0,1,0,0,3.7,2,0,4489,1.308333,1,0,,-4.60517,0,.4,.16,.37 +0,.3130912,79,16,15,12,0,1,0,0,0,23.894,3,1,6241,3.173627,0,15,2.70805,2.70805,1,2.8,7.84,2.3893999 +0,.3130912,79,13,6,4,0,1,1,1,0,23.894,1,1,6241,3.173627,0,6,1.791759,1.791759,1,2.8,7.84,2.3893999 +0,.6225026,77,12,20,14,0,1,0,0,0,19.971,2,1,5929,2.994281,0,20,2.995732,2.995732,1,2.4,5.76,1.9971001 +0,0,73,12,9,1,0,1,1,0,0,7.539,3,1,5329,2.02009,0,9,2.197225,2.197225,1,1.6,2.56,.7539 +0,.4774972,69,9,3,1,0,1,1,0,0,18.22,1,1,4761,2.90252,0,3,1.098612,1.098612,1,.8,.64,1.8219999 +0,0,66,16,20,0,1,0,1,0,0,11.176,4,0,4356,2.413769,0,20,2.995732,2.995732,1,.2,.04,1.1176 +0,0,68,16,8,0,1,0,0,0,0,11.176,1,0,4624,2.413769,0,8,2.079442,2.079442,1,.6,.36,1.1176 +0,.3383141,73,14,8,8,0,1,0,0,0,24.829,3,1,5329,3.212012,0,8,2.079442,2.079442,1,1.6,2.56,2.4829 +0,.3383141,72,12,6,2,0,1,1,0,0,24.829,1,1,5184,3.212012,0,6,1.791759,1.791759,1,1.4,1.96,2.4829 +0,1,72,8,4,3,1,0,1,1,1,7,3,0,5184,1.94591,1,4,1.386294,1.386294,1,1.4,1.96,.7 +0,.5,78,12,42,0,1,0,1,1,1,15,5,0,6084,2.70805,1,42,3.73767,3.73767,1,2.6,6.76,1.5 +0,.6608444,76,12,7,12,0,1,0,0,0,15.916,3,1,5776,2.767325,0,7,1.94591,1.94591,1,2.2,4.84,1.5916 +0,.6608444,82,12,7,10,0,1,1,0,0,15.916,4,1,6724,2.767325,0,7,1.94591,1.94591,1,3.4,11.56,1.5916 +0,.0955099,65,12,0,0,0,0,0,0,0,24.877,0,0,4225,3.213944,0,0,,-4.60517,0,0,0,2.4877001 +0,1,78,12,0,0,0,1,1,0,0,9,0,1,6084,2.197225,0,0,,-4.60517,0,2.6,6.76,.9 +0,.7042254,80,12,1,0,0,1,0,0,0,17.75,1,1,6400,2.876385,0,1,0,0,1,3,9,1.775 +0,.7042254,78,12,2,0,0,1,1,0,0,17.75,1,1,6084,2.876385,0,2,.6931472,.6931472,1,2.6,6.76,1.775 +0,.3052951,77,14,18,4,0,0,1,1,0,40.944,2,0,5929,3.712205,0,18,2.890372,2.890372,1,2.4,5.76,4.0944 +0,.2477995,73,17,3,1,0,0,0,0,0,50.444,1,0,5329,3.920864,0,3,1.098612,1.098612,1,1.6,2.56,5.0444 +0,.2636436,75,12,4,0,0,0,1,0,0,42.694,1,0,5625,3.754058,0,4,1.386294,1.386294,1,2,4,4.2694 +0,.7653586,85,12,9,1,0,1,1,0,0,17.482,0,1,7225,2.861172,0,9,2.197225,2.197225,1,4,16,1.7482 +0,.6640998,71,15,4,2,0,0,0,1,1,32.855,2,0,5041,3.492104,0,4,1.386294,1.386294,1,1.2,1.44,3.2855 +0,1,78,10,14,3,1,0,1,1,1,7.2,2,0,6084,1.974081,0,14,2.639057,2.639057,1,2.6,6.76,.71999998 +0,1,85,12,7,0,0,0,0,1,1,6.8,4,0,7225,1.916923,0,7,1.94591,1.94591,1,4,16,.68000002 +0,.9415584,68,15,30,3,0,1,0,1,1,15.4,3,1,4624,2.734367,0,30,3.401197,3.401197,1,.6,.36,1.54 +0,.3096375,78,14,24,1,0,0,1,1,0,31.004,3,0,6084,3.434116,0,24,3.178054,3.178054,1,2.6,6.76,3.1004 +0,.9881423,75,16,0,0,0,0,0,0,0,11.132,2,0,5625,2.409824,0,0,,-4.60517,0,2,4,1.1132 +0,.8440279,67,12,12,5,0,1,0,1,1,16.644,2,1,4489,2.81205,0,12,2.484907,2.484907,1,.4,.16,1.6643999 +0,.3560527,80,12,3,3,0,0,1,1,0,23.915,2,0,6400,3.174506,0,3,1.098612,1.098612,1,3,9,2.3915001 +0,.9977432,82,8,1,0,0,1,1,0,1,8.419,1,1,6724,2.130491,0,1,0,0,1,3.4,11.56,.84189997 +0,0,85,12,25,17,0,0,1,1,1,0,4,0,7225,,0,25,3.218876,3.218876,1,4,16,0 +0,.2912621,72,14,8,5,0,0,0,0,0,15.45,4,0,5184,2.737609,0,8,2.079442,2.079442,1,1.4,1.96,1.545 +0,.2912621,67,12,0,1,0,0,1,0,0,15.45,2,0,4489,2.737609,0,0,,-4.60517,0,.4,.16,1.545 +0,0,73,0,0,0,1,0,1,0,0,8.489,0,0,5329,2.138771,1,0,,-4.60517,0,1.6,2.56,.84890003 +0,.3634447,81,9,6,3,0,1,0,1,1,24.664,2,1,6561,3.205345,0,6,1.791759,1.791759,1,3.2,10.24,2.4664 +0,0,79,11,6,0,0,0,1,0,0,33.501,2,0,6241,3.511575,0,6,1.791759,1.791759,1,2.8,7.84,3.3500999 +0,0,66,12,14,0,0,0,0,1,1,1.26,3,0,4356,.2311117,0,14,2.639057,2.639057,1,.2,.04,.126 +0,0,71,12,6,7,1,0,1,1,1,21.605,8,0,5041,3.072925,0,6,1.791759,1.791759,1,1.2,1.44,2.1605 +0,1,80,12,6,0,0,0,1,0,0,4.698,1,0,6400,1.547137,0,6,1.791759,1.791759,1,3,9,.4698 +0,1,78,10,4,0,0,0,0,0,0,4.698,0,0,6084,1.547137,0,4,1.386294,1.386294,1,2.6,6.76,.4698 +0,1,82,15,3,0,0,1,1,1,0,9.36,2,1,6724,2.236445,0,3,1.098612,1.098612,1,3.4,11.56,.93599997 +0,.6159589,84,14,4,0,0,1,0,0,0,21.43,1,1,7056,3.064792,0,4,1.386294,1.386294,1,3.8,14.44,2.143 +0,.5764033,79,9,1,1,0,0,0,0,0,25.156,0,0,6241,3.225096,0,1,0,0,1,2.8,7.84,2.5156 +0,.7297297,65,11,1,3,0,1,1,0,0,12.58,1,1,4225,2.532108,0,1,0,0,1,0,0,1.258 +0,.5,74,12,3,12,0,1,1,0,0,24,0,1,5476,3.178054,0,3,1.098612,1.098612,1,1.8,3.24,2.4 +0,.2727273,85,16,0,1,0,0,1,0,0,22,1,0,7225,3.091043,1,0,,-4.60517,0,4,16,2.2 +1,0,66,10,5,1,0,1,1,0,0,40.61,2,1,4356,3.704014,0,5,1.609438,1.609438,1,.2,.04,4.0610001 +0,.9694878,70,16,18,2,0,1,0,0,1,19.992,3,1,4900,2.995332,0,18,2.890372,2.890372,1,1,1,1.9992001 +0,1,68,12,0,0,0,0,0,0,0,3.5,1,0,4624,1.252763,0,0,,-4.60517,0,.6,.36,.35 +0,.35,75,12,5,0,0,0,1,0,0,17.52,4,0,5625,2.863343,1,5,1.609438,1.609438,1,2,4,1.752 +0,.4347826,75,13,2,1,0,1,1,0,0,13.8,2,1,5625,2.624669,0,2,.6931472,.6931472,1,2,4,1.38 +0,.8436584,82,15,2,0,0,0,1,0,0,9.895,3,0,6724,2.29203,1,2,.6931472,.6931472,1,3.4,11.56,.98950005 +0,0,69,12,0,0,0,0,1,0,0,19.76,0,0,4761,2.98366,0,0,,-4.60517,0,.8,.64,1.976 +0,0,74,11,3,9,0,0,0,1,1,0,1,0,5476,,0,3,1.098612,1.098612,1,1.8,3.24,0 +1,.1093656,68,12,3,6,0,1,0,0,0,163.662,3,1,4624,5.097803,0,3,1.098612,1.098612,1,.6,.36,16.3662 +0,.9881423,79,13,4,0,0,1,1,0,0,15.18,1,1,6241,2.719979,0,4,1.386294,1.386294,1,2.8,7.84,1.518 +0,0,81,16,8,1,0,1,1,0,0,0,0,1,6561,,0,8,2.079442,2.079442,1,3.2,10.24,0 +0,1,71,11,2,1,1,0,1,0,0,9.024,3,0,5041,2.199888,0,2,.6931472,.6931472,1,1.2,1.44,.90240002 +0,.2666667,85,6,1,0,0,0,0,0,0,22.5,1,0,7225,3.113515,0,1,0,0,1,4,16,2.25 +0,.8,78,3,2,0,1,0,1,0,0,7.5,2,0,6084,2.014903,0,2,.6931472,.6931472,1,2.6,6.76,.75 +0,.3687044,79,12,2,2,0,1,1,0,0,27.122,2,1,6241,3.300345,0,2,.6931472,.6931472,1,2.8,7.84,2.7122 +1,.3752932,67,2,1,0,0,0,0,1,0,24.301,2,0,4489,3.190517,1,1,0,0,1,.4,.16,2.4301001 +1,.2220443,66,15,6,0,0,1,1,0,0,88.694,3,1,4356,4.485192,0,6,1.791759,1.791759,1,.2,.04,8.8694 +0,0,75,15,5,1,0,1,1,1,0,26.2,3,1,5625,3.265759,0,5,1.609438,1.609438,1,2,4,2.6200001 +0,0,81,12,7,1,0,1,0,0,0,1.2,2,1,6561,.1823216,0,7,1.94591,1.94591,1,3.2,10.24,.12 +0,.3594128,77,11,11,0,0,0,0,0,0,26.432,0,0,5929,3.274575,0,11,2.397895,2.397895,1,2.4,5.76,2.6431999 +1,.2402913,78,16,7,5,0,1,0,1,0,54.101,2,1,6084,3.990853,0,7,1.94591,1.94591,1,2.6,6.76,5.4101002 +0,.5,77,3,0,0,0,0,1,0,0,24,0,0,5929,3.178054,1,0,,-4.60517,0,2.4,5.76,2.4 +0,.4120602,66,14,6,0,0,1,0,0,0,52.951,1,1,4356,3.969367,0,6,1.791759,1.791759,1,.2,.04,5.2951 +0,1,68,12,10,2,0,0,1,1,1,12,2,0,4624,2.484907,0,10,2.302585,2.302585,1,.6,.36,1.2 +0,.9509371,65,11,1,0,0,1,0,0,0,20.382,0,1,4225,3.014652,0,1,0,0,1,0,0,2.0382 +0,.2034284,67,11,1,11,0,1,0,0,0,47.427,2,1,4489,3.859192,0,1,0,0,1,.4,.16,4.7426998 +0,.4937256,70,12,0,0,0,1,0,1,0,24.305,1,1,4900,3.190682,0,0,,-4.60517,0,1,1,2.4305 +0,.4872898,70,17,0,0,0,1,1,0,0,24.626,1,1,4900,3.203803,0,0,,-4.60517,0,1,1,2.4625999 +0,0,65,12,2,0,0,1,0,0,0,18.629,1,1,4225,2.92472,0,2,.6931472,.6931472,1,0,0,1.8629 +0,.3759274,70,0,23,5,0,0,1,1,1,7.278,4,0,4900,1.984856,1,23,3.135494,3.135494,1,1,1,.72779999 +0,.927835,77,10,0,1,1,0,1,0,0,9.7,0,0,5929,2.272126,0,0,,-4.60517,0,2.4,5.76,.96999998 +0,0,85,12,5,6,0,1,1,1,1,30.663,3,1,7225,3.423057,0,5,1.609438,1.609438,1,4,16,3.0663 +0,.3575482,70,9,6,0,1,0,1,1,1,17.62,1,0,4900,2.869035,1,6,1.791759,1.791759,1,1,1,1.7620001 +0,.45909,68,17,1,18,0,1,1,0,0,19.604,0,1,4624,2.975734,0,1,0,0,1,.6,.36,1.9604 +0,.5958686,73,12,4,0,0,1,0,0,0,15.104,0,1,5329,2.71496,0,4,1.386294,1.386294,1,1.6,2.56,1.5104 +0,.8421053,79,4,8,0,0,1,1,0,0,9.5,2,1,6241,2.251292,0,8,2.079442,2.079442,1,2.8,7.84,.95 +0,.2791438,69,12,4,1,0,1,0,1,0,78.164,1,1,4761,4.358809,0,4,1.386294,1.386294,1,.8,.64,7.8164001 +0,1,77,6,15,0,1,0,1,1,1,11.11,3,0,5929,2.407845,0,15,2.70805,2.70805,1,2.4,5.76,1.111 +0,1.07882,74,16,2,5,0,1,1,1,0,13.626,3,1,5476,2.61198,0,2,.6931472,.6931472,1,1.8,3.24,1.3626 +0,.5901639,83,8,11,0,0,1,1,1,1,12.2,0,1,6889,2.501436,0,11,2.397895,2.397895,1,3.6,12.96,1.22 +0,0,73,12,0,0,0,0,1,0,0,10,0,0,5329,2.302585,0,0,,-4.60517,0,1.6,2.56,1 +0,.939281,72,12,5,0,1,0,1,1,0,8.317,2,0,5184,2.118302,0,5,1.609438,1.609438,1,1.4,1.96,.83170004 +0,.5203898,67,12,1,3,0,1,0,1,0,26.68,2,1,4489,3.283914,1,1,0,0,1,.4,.16,2.668 +0,0,68,10,1,0,0,1,1,0,0,12.796,2,1,4624,2.549133,1,1,0,0,1,.6,.36,1.2796 +0,.9086162,75,13,44,0,0,0,0,1,1,9.575,4,0,5625,2.259156,1,44,3.78419,3.78419,1,2,4,.95749998 +0,.9086162,74,12,8,0,0,0,1,1,1,9.575,5,0,5476,2.259156,1,8,2.079442,2.079442,1,1.8,3.24,.95749998 +0,0,75,9,2,0,0,0,1,1,1,7.831,5,0,5625,2.05809,1,2,.6931472,.6931472,1,2,4,.78309999 +0,.583532,65,16,14,4,0,1,0,1,0,20.136,4,1,4225,3.002509,0,14,2.639057,2.639057,1,0,0,2.0136 +0,.583532,65,13,17,0,0,1,1,1,0,20.136,3,1,4225,3.002509,0,17,2.833213,2.833213,1,0,0,2.0136 +0,.7856707,66,15,22,35,0,0,1,1,0,18.033,2,0,4356,2.892204,0,22,3.091043,3.091043,1,.2,.04,1.8033001 +0,.2264816,71,12,1,3,0,0,1,0,0,23.843,0,0,5041,3.171491,0,1,0,0,1,1.2,1.44,2.3843 +0,.1212434,72,17,6,0,0,1,0,0,0,65.983,2,1,5184,4.189397,0,6,1.791759,1.791759,1,1.4,1.96,6.5983002 +0,.7950204,85,13,1,7,0,1,1,1,0,18.636,3,1,7225,2.925095,0,1,0,0,1,4,16,1.8636 +0,.8661339,67,10,6,0,1,0,0,1,1,8.008,3,0,4489,2.080441,0,6,1.791759,1.791759,1,.4,.16,.80080004 +0,1,85,12,7,4,0,1,1,1,1,13,3,1,7225,2.564949,0,7,1.94591,1.94591,1,4,16,1.3 +0,.7653061,74,16,8,0,0,1,1,0,0,19.6,1,1,5476,2.97553,0,8,2.079442,2.079442,1,1.8,3.24,1.96 +0,.2729258,69,14,2,1,0,1,0,0,0,54.96,0,1,4761,4.006606,0,2,.6931472,.6931472,1,.8,.64,5.4959999 +0,1,78,6,8,0,1,0,1,1,1,8.4,4,0,6084,2.128232,1,8,2.079442,2.079442,1,2.6,6.76,.83999996 +0,.952381,78,8,1,0,0,1,0,0,0,5.25,2,1,6084,1.658228,0,1,0,0,1,2.6,6.76,.525 +0,.952381,75,8,1,0,0,1,1,0,0,5.25,3,1,5625,1.658228,0,1,0,0,1,2,4,.525 +0,1,74,8,16,1,0,1,1,1,1,6.24,2,1,5476,1.83098,0,16,2.772589,2.772589,1,1.8,3.24,.62399998 +0,.2564505,83,17,12,0,1,0,1,1,1,21.665,4,0,6889,3.075698,0,12,2.484907,2.484907,1,3.6,12.96,2.1665001 +0,.0751904,76,12,10,22,0,1,1,1,0,31.121,3,1,5776,3.437883,0,10,2.302585,2.302585,1,2.2,4.84,3.1121 +0,0,77,1,3,0,0,0,1,1,0,5.294,1,0,5929,1.666574,1,3,1.098612,1.098612,1,2.4,5.76,.52940001 +0,1,73,12,2,0,0,0,0,0,0,9.5,1,0,5329,2.251292,0,2,.6931472,.6931472,1,1.6,2.56,.95 +0,1,69,12,4,2,0,0,1,0,0,9.5,1,0,4761,2.251292,0,4,1.386294,1.386294,1,.8,.64,.95 +0,.2487657,74,16,1,2,0,1,1,1,0,26.129,1,1,5476,3.263046,0,1,0,0,1,1.8,3.24,2.6129 +0,.2239761,69,16,9,0,0,1,1,0,0,18.752,1,1,4761,2.9313,0,9,2.197225,2.197225,1,.8,.64,1.8752001 +0,1,81,12,5,10,0,0,1,1,0,6,3,0,6561,1.791759,0,5,1.609438,1.609438,1,3.2,10.24,.6 +0,1,66,12,4,35,0,1,1,1,1,8.49,2,1,4356,2.138889,0,4,1.386294,1.386294,1,.2,.04,.84899998 +0,1,73,12,1,0,0,0,0,1,1,8.49,1,0,5329,2.138889,0,1,0,0,1,1.6,2.56,.84899998 +0,.872093,72,13,6,9,0,1,1,0,0,17.2,2,1,5184,2.844909,0,6,1.791759,1.791759,1,1.4,1.96,1.7200001 +0,0,69,13,2,0,0,0,1,0,0,0,2,0,4761,,1,2,.6931472,.6931472,1,.8,.64,0 +1,.0588235,70,15,6,3,0,1,0,0,0,85,3,1,4900,4.442651,0,6,1.791759,1.791759,1,1,1,8.5 +0,.2766473,85,8,3,0,0,0,0,1,0,35.482,3,0,7225,3.569026,0,3,1.098612,1.098612,1,4,16,3.5481998 +0,1,70,6,9,2,1,0,0,0,0,5.334,3,0,4900,1.674101,1,9,2.197225,2.197225,1,1,1,.53340001 +0,.3105899,70,0,36,1,0,1,1,1,0,22.512,3,1,4900,3.114048,1,36,3.583519,3.583519,1,1,1,2.2511999 +0,.3353715,75,13,8,4,0,0,0,0,0,30.092,0,0,5625,3.404259,0,8,2.079442,2.079442,1,2,4,3.0091999 +0,0,73,16,4,0,0,1,0,0,0,13.6,0,1,5329,2.61007,0,4,1.386294,1.386294,1,1.6,2.56,1.36 +0,0,69,12,7,0,0,1,1,0,0,9.6,2,1,4761,2.261763,0,7,1.94591,1.94591,1,.8,.64,.96000004 +0,.2235217,69,17,6,5,0,0,0,1,0,88.582,1,0,4761,4.483929,0,6,1.791759,1.791759,1,.8,.64,8.8582001 +0,.7602082,84,12,4,7,0,0,1,0,0,14.596,2,0,7056,2.680748,0,4,1.386294,1.386294,1,3.8,14.44,1.4596 +0,1,72,10,20,3,0,0,1,1,0,14.4,2,0,5184,2.667228,0,20,2.995732,2.995732,1,1.4,1.96,1.44 +0,.6666667,83,12,6,1,0,1,0,0,0,15,1,1,6889,2.70805,0,6,1.791759,1.791759,1,3.6,12.96,1.5 +0,.2022443,72,16,2,2,0,0,0,1,0,53.648,1,0,5184,3.982444,0,2,.6931472,.6931472,1,1.4,1.96,5.3647999 +0,1,68,9,13,0,1,0,1,1,1,5,3,0,4624,1.609438,1,13,2.564949,2.564949,1,.6,.36,.5 +1,.1299376,69,16,4,0,0,1,1,1,1,38.48,2,1,4761,3.650139,1,4,1.386294,1.386294,1,.8,.64,3.848 +0,1,85,7,3,0,0,0,1,1,0,7,1,0,7225,1.94591,0,3,1.098612,1.098612,1,4,16,.7 +0,1,70,12,3,0,0,1,1,1,0,10,3,1,4900,2.302585,0,3,1.098612,1.098612,1,1,1,1 +0,.4817636,85,7,15,0,0,0,0,1,1,17.328,3,0,7225,2.852324,1,15,2.70805,2.70805,1,4,16,1.7327999 +0,.9647189,80,12,16,1,0,1,0,1,1,7.256,3,1,6400,1.981829,0,16,2.772589,2.772589,1,3,9,.7256 +0,.9647189,83,10,12,24,0,1,1,1,1,7.256,5,1,6889,1.981829,0,12,2.484907,2.484907,1,3.6,12.96,.7256 +0,.1044776,81,16,14,4,0,1,0,1,0,33.5,1,1,6561,3.511545,0,14,2.639057,2.639057,1,3.2,10.24,3.35 +0,.1044776,76,13,6,6,0,0,1,0,0,33.5,0,0,5776,3.511545,0,6,1.791759,1.791759,1,2.2,4.84,3.35 +0,.9545454,81,12,6,0,0,1,0,1,1,8.8,2,1,6561,2.174752,0,6,1.791759,1.791759,1,3.2,10.24,.88000002 +0,1,83,12,4,0,0,0,1,1,1,7.2,5,0,6889,1.974081,0,4,1.386294,1.386294,1,3.6,12.96,.71999998 +0,0,67,3,1,1,1,0,0,1,1,7.2,5,0,4489,1.974081,0,1,0,0,1,.4,.16,.71999998 +0,.6622925,76,13,6,0,0,0,1,0,0,10.364,2,0,5776,2.338338,0,6,1.791759,1.791759,1,2.2,4.84,1.0364 +0,0,73,8,1,1,0,1,0,0,0,16,0,1,5329,2.772589,1,1,0,0,1,1.6,2.56,1.6 +0,.8128599,69,8,0,0,1,0,0,0,0,5.21,0,0,4761,1.65058,0,0,,-4.60517,0,.8,.64,.521 +0,.8779631,66,14,5,5,0,1,1,0,0,17.085,1,1,4356,2.838201,0,5,1.609438,1.609438,1,.2,.04,1.7084999 +0,.3971119,72,12,2,0,1,0,0,1,1,6.648,4,0,5184,1.894316,1,2,.6931472,.6931472,1,1.4,1.96,.66479998 +0,.2895529,67,6,12,49,1,0,0,1,1,12.951,1,0,4489,2.561173,1,12,2.484907,2.484907,1,.4,.16,1.2951 +0,.1833651,66,3,9,1,1,0,1,0,1,20.451,1,0,4356,3.018032,1,9,2.197225,2.197225,1,.2,.04,2.0451 +1,.0887311,66,17,1,0,0,1,0,0,0,84.525,3,1,4356,4.437047,1,1,0,0,1,.2,.04,8.4525002 +0,.6091371,76,6,2,0,0,0,1,1,0,11.82,1,0,5776,2.469793,0,2,.6931472,.6931472,1,2.2,4.84,1.182 +0,1,83,11,26,0,0,1,1,1,1,11.592,3,1,6889,2.450315,0,26,3.258096,3.258096,1,3.6,12.96,1.1592 +0,.736508,69,10,10,0,0,0,1,0,0,18.9,0,0,4761,2.939162,0,10,2.302585,2.302585,1,.8,.64,1.89 +0,.2228164,65,14,4,0,0,1,0,1,1,62.832,2,1,4225,4.140464,0,4,1.386294,1.386294,1,0,0,6.2832001 +0,.9863014,65,12,2,1,0,1,1,0,0,7.3,0,1,4225,1.987874,0,2,.6931472,.6931472,1,0,0,.73000002 +0,.1728608,75,12,11,11,0,0,1,0,0,40.495,2,0,5625,3.701179,0,11,2.397895,2.397895,1,2,4,4.0494999 +0,.1715014,76,16,14,3,0,1,0,0,0,40.816,2,1,5776,3.709074,0,14,2.639057,2.639057,1,2.2,4.84,4.0816002 +0,.5327869,71,12,5,1,0,0,1,0,0,12.2,2,0,5041,2.501436,0,5,1.609438,1.609438,1,1.2,1.44,1.22 +0,.1316749,79,14,9,0,0,1,0,1,1,49.364,2,1,6241,3.899221,0,9,2.197225,2.197225,1,2.8,7.84,4.9363998 +0,.7033898,85,8,4,1,0,1,1,1,1,3.54,2,1,7225,1.264127,0,4,1.386294,1.386294,1,4,16,.354 +0,.3362475,70,17,9,1,0,1,0,0,0,2.974,1,1,4900,1.089908,0,9,2.197225,2.197225,1,1,1,.2974 +0,.3362475,71,15,3,1,0,1,1,0,0,2.974,0,1,5041,1.089908,0,3,1.098612,1.098612,1,1.2,1.44,.2974 +0,.6138589,71,14,2,2,0,1,0,0,0,35.544,2,1,5041,3.570771,0,2,.6931472,.6931472,1,1.2,1.44,3.5543999 +0,0,85,12,9,0,0,1,0,0,0,0,1,1,7225,,0,9,2.197225,2.197225,1,4,16,0 +0,0,81,12,6,0,0,1,1,0,0,0,2,1,6561,,0,6,1.791759,1.791759,1,3.2,10.24,0 +0,.2421525,65,13,5,1,1,0,1,1,1,17.84,3,0,4225,2.881443,1,5,1.609438,1.609438,1,0,0,1.784 +0,.4154981,76,14,14,1,0,0,1,0,0,28.881,1,0,5776,3.363184,0,14,2.639057,2.639057,1,2.2,4.84,2.8881001 +0,.387822,67,14,2,3,0,1,0,0,0,35.671,1,1,4489,3.574338,0,2,.6931472,.6931472,1,.4,.16,3.5671001 +0,0,66,12,9,4,0,1,1,0,0,21.837,2,1,4356,3.083606,0,9,2.197225,2.197225,1,.2,.04,2.1837 +0,.2727273,67,12,4,2,0,0,1,0,0,22,1,0,4489,3.091043,1,4,1.386294,1.386294,1,.4,.16,2.2 +0,0,65,14,0,0,0,0,0,1,0,49.72,1,0,4225,3.906407,1,0,,-4.60517,0,0,0,4.9720001 +0,.5164319,75,12,10,0,0,1,1,1,1,21.3,2,1,5625,3.058707,0,10,2.302585,2.302585,1,2,4,2.1299999 +0,.8695652,84,12,2,2,0,0,1,0,0,11.5,1,0,7056,2.442347,0,2,.6931472,.6931472,1,3.8,14.44,1.15 +0,1,71,5,11,2,0,1,1,1,1,8.7,3,1,5041,2.163323,0,11,2.397895,2.397895,1,1.2,1.44,.86999998 +0,1,83,8,3,0,0,0,1,1,0,9.024,1,0,6889,2.199888,0,3,1.098612,1.098612,1,3.6,12.96,.90240002 +1,0,65,12,3,0,0,0,1,0,0,8.06,2,0,4225,2.086914,0,3,1.098612,1.098612,1,0,0,.80600004 +0,.3057424,67,12,13,10,0,1,0,0,0,17.989,3,1,4489,2.88976,0,13,2.564949,2.564949,1,.4,.16,1.7989 +0,.3643644,85,5,5,0,1,0,1,1,1,23.976,4,0,7225,3.177053,1,5,1.609438,1.609438,1,4,16,2.3976 +0,.7215634,70,16,5,1,0,1,1,1,0,17.961,1,1,4900,2.888203,0,5,1.609438,1.609438,1,1,1,1.7961 +0,1,83,6,2,0,0,0,0,0,1,4.95,2,0,6889,1.599388,1,2,.6931472,.6931472,1,3.6,12.96,.49499998 +0,1,85,12,15,7,1,0,1,1,1,8.16,3,0,7225,2.099244,0,15,2.70805,2.70805,1,4,16,.81599998 +0,.9745293,72,9,8,2,0,1,1,1,1,13.545,6,1,5184,2.606018,0,8,2.079442,2.079442,1,1.4,1.96,1.3545 +0,.8374771,80,13,6,3,0,1,1,0,0,11.463,2,1,6400,2.439125,0,6,1.791759,1.791759,1,3,9,1.1463 +0,1,67,3,14,2,0,0,1,1,1,8.5,2,0,4489,2.140066,1,14,2.639057,2.639057,1,.4,.16,.85 +0,1,65,4,10,0,0,0,0,1,1,8.5,1,0,4225,2.140066,1,10,2.302585,2.302585,1,0,0,.85 diff --git a/statsmodels/sandbox/regression/tests/results_gmm_griliches.py b/statsmodels/sandbox/regression/tests/results_gmm_griliches.py new file mode 100644 index 0000000..9ee6eeb --- /dev/null +++ b/statsmodels/sandbox/regression/tests/results_gmm_griliches.py @@ -0,0 +1,280 @@ +'''Results for GMM estimation with Stata gmm + +autogenerated, but edited +''' + +import numpy as np + +# gmm twostep + +est = dict( + rank = 13, + N = 758, + Q = .0153053843867424, + J = 11.60148136515076, + J_df = 2, + k_1 = 13, + converged = 1, + has_xtinst = 0, + type = 1, + n_eq = 1, + k = 13, + n_moments = 15, + k_aux = 13, + k_eq_model = 0, + k_eq = 13, + cmdline = "gmm (lw - {xb:s iq expr tenure rns smsa dyear*} - {b0}), instruments(expr tenure rns smsa dyear* med kww age mrt)", + cmd = "gmm", + estat_cmd = "gmm_estat", + predict = "gmm_p", + marginsnotok = "_ALL", + eqnames = "1", + technique = "gn", + winit = "Unadjusted", + estimator = "twostep", + wmatrix = "robust", + vce = "robust", + vcetype = "Robust", + params = "xb_s xb_iq xb_expr xb_tenure xb_rns xb_smsa xb_dyear_67 xb_dyear_68 xb_dyear_69 xb_dyear_70 xb_dyear_71 xb_dyear_73 b0", + inst_1 = "expr tenure rns smsa dyear_67 dyear_68 dyear_69 dyear_70 dyear_71 dyear_73 med kww age mrt _cons", + params_1 = "xb_s xb_iq xb_expr xb_tenure xb_rns xb_smsa xb_dyear_67 xb_dyear_68 xb_dyear_69 xb_dyear_70 xb_dyear_71 xb_dyear_73 b0", + sexp_1 = "lw - ({xb_s} *s + {xb_iq} *iq + {xb_expr} *expr + {xb_tenure} *tenure + {xb_rns} *rns + {xb_smsa} *smsa + {xb_dyear_67} *dyear_67 + {xb_dyear_68} *dyear_68 + {xb_dyear_69} *dyear_69 + {xb_dyear_70} *dyear_70 + {xb_dyear_71} *dyear_71 + {xb_dyear_73} *dyear_73) - {b0}", + properties = "b V", + ) + +params_table = np.array([ + .17579576802018, .02085135579518, 8.4309034744314, 3.430065999e-17, + .1349278616328, .21666367440756, np.nan, 1.9599639845401, + 0, -.00928615655842, .00491818692744, -1.8881259893969, + .05900903858228, -.01892562580544, .00035331268861, np.nan, + 1.9599639845401, 0, .05028275907275, .00810402250669, + 6.2046667603925, 5.481292387e-10, .03439916682973, .06616635131577, + np.nan, 1.9599639845401, 0, .04252138311466, + .00956014552889, 4.4477757149388, 8.676405373e-06, .02378384219108, + .06125892403824, np.nan, 1.9599639845401, 0, + -.10409306762507, .03372997947655, -3.0860696994324, .00202821272955, + -.17020261259839, -.03798352265175, np.nan, 1.9599639845401, + 0, .12475123236049, .03098732229429, 4.0258797186699, + .00005676270037, .06401719668634, .18548526803464, np.nan, + 1.9599639845401, 0, -.0530431735239, .05178756424595, + -1.0242453819993, .30571938841786, -.15454493429301, .04845858724521, + np.nan, 1.9599639845401, 0, .045954590377, + .0500069437958, .91896418554698, .35811430537838, -.05205721843969, + .14396639919369, np.nan, 1.9599639845401, 0, + .15548006235586, .04801256009054, 3.238320599082, .00120235613037, + .06137717377284, .24958295093889, np.nan, 1.9599639845401, + 0, .16698745541498, .06133412154231, 2.7225865670836, + .00647730609718, .04677478616864, .28720012466132, np.nan, + 1.9599639845401, 0, .08464846645187, .05581696231774, + 1.516536603515, .12938372202927, -.02475076941733, .19404770232108, + np.nan, 1.9599639845401, 0, .0996068440051, + .06123938652803, 1.6265160324477, .10383992558646, -.02042014802516, + .21963383603536, np.nan, 1.9599639845401, 0, + 4.0039243732137, .33647541282379, 11.899604608883, 1.189091957e-32, + 3.3444446823958, 4.6634040640315, np.nan, 1.9599639845401, + 0]).reshape(13,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = '_cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons'.split() + +cov = np.array([ + .0004347790385, -.00007935266682, .00002810133321, .00001482865838, + -.00017806902959, -6.657494262e-06, -.00011587283596, -.00018806600631, + -.00012201035826, -.00008278800394, -.00031494508432, -.00063549805233, + .00264135978484, -.00007935266682, .00002418856265, 4.931157962e-06, + -.00001114070074, .00006618982562, -.0000220304377, 4.705098991e-07, + .00003206383766, -.00002261417242, -.00006024150154, -.00001412826237, + .00001471698858, -.00144299517314, .00002810133321, 4.931157962e-06, + .00006567518079, -.00002036677634, .00005210753053, -.00003295500811, + .00003592276303, .00008754309097, .00003052996731, .00001691178156, + -.00008575591893, -.00013143657018, -.00094318538399, .00001482865838, + -.00001114070074, -.00002036677634, .00009139638253, -.00003771101246, + 7.851603106e-06, .00008478298315, .00006722294295, .00011231163007, + .0001007216652, .00011202284802, .00009437878507, .00075643538833, + -.00017806902959, .00006618982562, .00005210753053, -.00003771101246, + .00113771151549, .0001300530702, .00018006693931, .00018772842105, + -9.500874246e-06, .00001633701903, -.00005338908155, .00008260866257, + -.00499436928105, -6.657494262e-06, -.0000220304377, -.00003295500811, + 7.851603106e-06, .0001300530702, .00096021414297, .00005702363753, + .00011167528598, .00025281311283, .00010653704891, .00030212216421, + .000307795004, .00157107924026, -.00011587283596, 4.705098991e-07, + .00003592276303, .00008478298315, .00018006693931, .00005702363753, + .00268195181053, .00085892679447, .00091106709634, .00096277498668, + .00090313286214, .00102719488714, .00034624154943, -.00018806600631, + .00003206383766, .00008754309097, .00006722294295, .00018772842105, + .00011167528598, .00085892679447, .0025006944278, .00092531815147, + .00088200162521, .00082339570405, .00095012566921, -.0020631120951, + -.00012201035826, -.00002261417242, .00003052996731, .00011231163007, + -9.500874246e-06, .00025281311283, .00091106709634, .00092531815147, + .00230520592645, .00118209509709, .00111002620771, .00129242901685, + .00256100032752, -.00008278800394, -.00006024150154, .00001691178156, + .0001007216652, .00001633701903, .00010653704891, .00096277498668, + .00088200162521, .00118209509709, .00376187446537, .00124524263644, + .00155856745623, .00599140534858, -.00031494508432, -.00001412826237, + -.00008575591893, .00011202284802, -.00005338908155, .00030212216421, + .00090313286214, .00082339570405, .00111002620771, .00124524263644, + .00311553328238, .00184297728198, .00431291320555, -.00063549805233, + .00001471698858, -.00013143657018, .00009437878507, .00008260866257, + .000307795004, .00102719488714, .00095012566921, .00129242901685, + .00155856745623, .00184297728198, .00375026246233, .00538820067052, + .00264135978484, -.00144299517314, -.00094318538399, .00075643538833, + -.00499436928105, .00157107924026, .00034624154943, -.0020631120951, + .00256100032752, .00599140534858, .00431291320555, .00538820067052, + .11321570343494]).reshape(13,13) + +cov_colnames = '_cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons'.split() + +cov_rownames = '_cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons'.split() + +class Bunch(dict): + def __init__(self, **kw): + dict.__init__(self, kw) + self.__dict__ = self + + for i,att in enumerate(['params', 'bse', 'tvalues', 'pvalues']): + self[att] = self.params_table[:,i] + + +results_twostep = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) + +# begin gmm onestep + +est = dict( + rank = 13, + N = 758, + Q = .0175043949471787, + J = 13.26833136996146, + J_df = 2, + k_1 = 13, + converged = 1, + has_xtinst = 0, + type = 1, + n_eq = 1, + k = 13, + n_moments = 15, + k_aux = 13, + k_eq_model = 0, + k_eq = 13, + cmdline = "gmm (lw - {xb:s iq expr tenure rns smsa dyear*} - {b0}), instruments(expr tenure rns smsa dyear* med kww age mrt) onestep", + cmd = "gmm", + estat_cmd = "gmm_estat", + predict = "gmm_p", + marginsnotok = "_ALL", + eqnames = "1", + technique = "gn", + winit = "Unadjusted", + estimator = "onestep", + wmatrix = "robust", + vce = "robust", + vcetype = "Robust", + params = "xb_s xb_iq xb_expr xb_tenure xb_rns xb_smsa xb_dyear_67 xb_dyear_68 xb_dyear_69 xb_dyear_70 xb_dyear_71 xb_dyear_73 b0", + inst_1 = "expr tenure rns smsa dyear_67 dyear_68 dyear_69 dyear_70 dyear_71 dyear_73 med kww age mrt _cons", + params_1 = "xb_s xb_iq xb_expr xb_tenure xb_rns xb_smsa xb_dyear_67 xb_dyear_68 xb_dyear_69 xb_dyear_70 xb_dyear_71 xb_dyear_73 b0", + sexp_1 = "lw - ({xb_s} *s + {xb_iq} *iq + {xb_expr} *expr + {xb_tenure} *tenure + {xb_rns} *rns + {xb_smsa} *smsa + {xb_dyear_67} *dyear_67 + {xb_dyear_68} *dyear_68 + {xb_dyear_69} *dyear_69 + {xb_dyear_70} *dyear_70 + {xb_dyear_71} *dyear_71 + {xb_dyear_73} *dyear_73) - {b0}", + properties = "b V", + ) + +params_table = np.array([ + .1724253119448, .02073946970972, 8.3138727440057, 9.262847838e-17, + .13177669825528, .21307392563431, np.nan, 1.9599639845401, + 0, -.00909883104783, .00488623921543, -1.8621337692816, + .06258423710802, -.01867568392991, .00047802183425, np.nan, + 1.9599639845401, 0, .04928948974112, .00804979771953, + 6.1230718408647, 9.178828333e-10, .033512176128, .06506680335423, + np.nan, 1.9599639845401, 0, .04221709210829, + .00946363451925, 4.4609808232133, 8.158539147e-06, .0236687092877, + .06076547492887, np.nan, 1.9599639845401, 0, + -.10179345005432, .0337105276595, -3.0196338390938, .00253080446805, + -.16786487016678, -.03572202994187, np.nan, 1.9599639845401, + 0, .12611094948071, .0308113805617, 4.0929989887401, + .00004258295784, .06572175326583, .18650014569559, np.nan, + 1.9599639845401, 0, -.0596171062088, .05171372339438, + -1.1528295062831, .24898037089783, -.16097414156825, .04173992915064, + np.nan, 1.9599639845401, 0, .04867955998567, + .04981322392381, .97724170714436, .32844950450919, -.04895256485883, + .14631168483017, np.nan, 1.9599639845401, 0, + .15281763323761, .04792849748935, 3.188450321681, .00143037585682, + .05887950432536, .24675576214986, np.nan, 1.9599639845401, + 0, .17443605153365, .06112514589814, 2.8537527227227, + .00432061472141, .05463296702353, .29423913604377, np.nan, + 1.9599639845401, 0, .0916659665856, .0554618025144, + 1.6527765494425, .09837634840443, -.01703716886029, .20036910203149, + np.nan, 1.9599639845401, 0, .09323976498299, + .06084900556261, 1.5323137021041, .125445041459, -.02602209441479, + .21250162438078, np.nan, 1.9599639845401, 0, + 4.0335098954259, .33503289261392, 12.03914595954, 2.212341104e-33, + 3.3768574922664, 4.6901622985855, np.nan, 1.9599639845401, + 0]).reshape(13,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = '_cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons'.split() + +cov = np.array([ + .00043012560384, -.00007821948168, .00002814664044, .00001470659469, + -.00018137297337, -8.404214163e-06, -.000116495836, -.00019098604401, + -.00012670601919, -.00008672920733, -.00031350033095, -.00062509206531, + .00258704275396, -.00007821948168, .00002387533367, 4.911669728e-06, + -.00001098678322, .00006618473561, -.00002158670034, 8.107545213e-07, + .00003255315461, -.00002143051924, -.0000597535309, -.00001402380853, + .00001385883996, -.00142630446035, .00002814664044, 4.911669728e-06, + .00006479924333, -.00001977796199, .00005110284341, -.00003232809926, + .00003557970376, .00008581782553, .00002961847494, .00001478700432, + -.00008727552546, -.00012994173168, -.00094120116335, .00001470659469, + -.00001098678322, -.00001977796199, .00008956037831, -.00003784800308, + 7.059546860e-06, .00008151950631, .00006348047144, .00010852497856, + .00009624187488, .00010823787214, .00009132957164, .00074787094553, + -.00018137297337, .00006618473561, .00005110284341, -.00003784800308, + .00113639967508, .00013313518183, .00019039509438, .0002000965573, + 7.191780465e-06, .00002329093697, -.00005087978271, .00009086571425, + -.00495748724374, -8.404214163e-06, -.00002158670034, -.00003232809926, + 7.059546860e-06, .00013313518183, .00094934117212, .00006195450052, + .00011810217311, .00025505395817, .00011081126685, .00030134673539, + .00030676742472, .00155300401754, -.000116495836, 8.107545213e-07, + .00003557970376, .00008151950631, .00019039509438, .00006195450052, + .00267430918731, .00086135304709, .00092017339035, .00095567351479, + .000887006474, .00102883960359, .0003167617596, -.00019098604401, + .00003255315461, .00008581782553, .00006348047144, .0002000965573, + .00011810217311, .00086135304709, .00248135727768, .0009302682109, + .0008777378644, .00081079994623, .00094288525746, -.00207087031796, + -.00012670601919, -.00002143051924, .00002961847494, .00010852497856, + 7.191780465e-06, .00025505395817, .00092017339035, .0009302682109, + .00229714087159, .00117701812554, .00109484405919, .00129252524238, + .00250083573173, -.00008672920733, -.0000597535309, .00001478700432, + .00009624187488, .00002329093697, .00011081126685, .00095567351479, + .0008777378644, .00117701812554, .00373628346107, .00123495172035, + .00154490399953, .00600809353679, -.00031350033095, -.00001402380853, + -.00008727552546, .00010823787214, -.00005087978271, .00030134673539, + .000887006474, .00081079994623, .00109484405919, .00123495172035, + .00307601153815, .0018118788444, .00430884303498, -.00062509206531, + .00001385883996, -.00012994173168, .00009132957164, .00009086571425, + .00030676742472, .00102883960359, .00094288525746, .00129252524238, + .00154490399953, .0018118788444, .00370260147796, .00534911865442, + .00258704275396, -.00142630446035, -.00094120116335, .00074787094553, + -.00495748724374, .00155300401754, .0003167617596, -.00207087031796, + .00250083573173, .00600809353679, .00430884303498, .00534911865442, + .11224703913325]).reshape(13,13) + +cov_colnames = '_cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons'.split() + +cov_rownames = '_cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons'.split() + + +results_onestep = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) diff --git a/statsmodels/sandbox/regression/tests/results_gmm_griliches_iter.py b/statsmodels/sandbox/regression/tests/results_gmm_griliches_iter.py new file mode 100644 index 0000000..9a4652d --- /dev/null +++ b/statsmodels/sandbox/regression/tests/results_gmm_griliches_iter.py @@ -0,0 +1,141 @@ +import numpy as np + +est = dict( + rank = 13, + N = 758, + Q = .0150568875809373, + J = 11.41312078635046, + J_df = 2, + k_1 = 13, + converged = 1, + has_xtinst = 0, + type = 1, + n_eq = 1, + k = 13, + n_moments = 15, + k_aux = 13, + k_eq_model = 0, + ic = 6, + k_eq = 13, + cmdline = "gmm (lw - {xb:s iq expr tenure rns smsa dyear*} - {b0}) , instruments(expr tenure rns smsa dyear* med kww age mrt) igmm", + cmd = "gmm", + estat_cmd = "gmm_estat", + predict = "gmm_p", + marginsnotok = "_ALL", + eqnames = "1", + technique = "gn", + winit = "Unadjusted", + estimator = "igmm", + wmatrix = "robust", + vce = "robust", + vcetype = "Robust", + params = "xb_s xb_iq xb_expr xb_tenure xb_rns xb_smsa xb_dyear_67 xb_dyear_68 xb_dyear_69 xb_dyear_70 xb_dyear_71 xb_dyear_73 b0", + inst_1 = "expr tenure rns smsa dyear_67 dyear_68 dyear_69 dyear_70 dyear_71 dyear_73 med kww age mrt _cons", + params_1 = "xb_s xb_iq xb_expr xb_tenure xb_rns xb_smsa xb_dyear_67 xb_dyear_68 xb_dyear_69 xb_dyear_70 xb_dyear_71 xb_dyear_73 b0", + sexp_1 = "lw - ({xb_s} *s + {xb_iq} *iq + {xb_expr} *expr + {xb_tenure} *tenure + {xb_rns} *rns + {xb_smsa} *smsa + {xb_dyear_67} *dyear_67 + {xb_dyear_68} *dyear_68 + {xb_dyear_69} *dyear_69 + {xb_dyear_70} *dyear_70 + {xb_dyear_71} *dyear_71 + {xb_dyear_73} *dyear_73) - {b0}", + properties = "b V", + ) + +params_table = np.array([ + .17587739850768, .02085563162829, 8.4330890400415, 3.366583555e-17, + .1350011116414, .21675368537396, np.nan, 1.9599639845401, + 0, -.00928586712743, .00491894287617, -1.88777697997, + .05905589683705, -.01892681800673, .00035508375188, np.nan, + 1.9599639845401, 0, .05031651549731, .00810558790493, + 6.2076330659127, 5.378855978e-10, .03442985513012, .0662031758645, + np.nan, 1.9599639845401, 0, .04246235782951, + .00956418082077, 4.4397276280375, 9.007280073e-06, .02371690787918, + .06120780777985, np.nan, 1.9599639845401, 0, + -.1039476753865, .03373281188749, -3.0815004611293, .00205960157647, + -.17006277178325, -.03783257898975, np.nan, 1.9599639845401, + 0, .12477256813508, .03099244898605, 4.0259021864082, + .0000567572801, .06402848432973, .18551665194043, np.nan, + 1.9599639845401, 0, -.05297127223127, .0517946935923, + -1.0227162003936, .30644204936546, -.15448700626247, .04854446179993, + np.nan, 1.9599639845401, 0, .04564516152971, + .05001865637643, .91256272831865, .36147256434055, -.05238960352318, + .1436799265826, np.nan, 1.9599639845401, 0, + .15574543741982, .04802004585645, 3.2433421218593, .00118136262363, + .06162787700523, .24986299783442, np.nan, 1.9599639845401, + 0, .16681173496168, .06134387289984, 2.7192892635594, + .00654223677971, .0465799534058, .28704351651757, np.nan, + 1.9599639845401, 0, .08417610675323, .05582688740597, + 1.507805838092, .13160422753823, -.02524258193145, .19359479543791, + np.nan, 1.9599639845401, 0, .09964580476612, + .06124947866865, 1.6268841291727, .10376170930541, -.02040096749628, + .21969257702853, np.nan, 1.9599639845401, 0, + 4.0027753075622, .33649589464938, 11.895465505554, 1.249543428e-32, + 3.3432554731038, 4.6622951420205, np.nan, 1.9599639845401, + 0]).reshape(13,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = '_cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons'.split() + +cov = np.array([ + .00043495737061, -.00007938790704, .00002809207919, .00001486824321, + -.00017806650894, -6.696078938e-06, -.00011595347261, -.00018816769626, + -.00012205118386, -.00008281236274, -.00031504876539, -.00063574245306, + .00264272738846, -.00007938790704, .00002419599902, 4.932871670e-06, + -.00001114848619, .00006618803917, -.00002202930782, 4.808220835e-07, + .00003206765662, -.00002261059773, -.00006024105579, -.00001412126593, + .00001474591556, -.00144330101198, .00002809207919, 4.932871670e-06, + .00006570055528, -.0000203894891, .00005213529923, -.00003297805448, + .00003595284891, .00008758906787, .00003058926358, .00001696423798, + -.00008568569767, -.00013140753648, -.00094326672008, .00001486824321, + -.00001114848619, -.0000203894891, .00009147355477, -.00003774547245, + 7.828122784e-06, .00008484461309, .00006729820252, .00011236802193, + .00010082715772, .00011217081931, .00009440153548, .00075659901252, + -.00017806650894, .00006618803917, .00005213529923, -.00003774547245, + .00113790259784, .00013005865302, .00018021354375, .00018779266096, + -9.435310865e-06, .0000165483542, -.00005323328914, .00008265052168, + -.00499436873124, -6.696078938e-06, -.00002202930782, -.00003297805448, + 7.828122784e-06, .00013005865302, .00096053189415, .00005704546746, + .00011160225767, .00025285680201, .00010656723202, .00030213005331, + .00030792696913, .00157128168902, -.00011595347261, 4.808220835e-07, + .00003595284891, .00008484461309, .00018021354375, .00005704546746, + .00268269028432, .00085942321667, .00091151417222, .00096327250114, + .00090372304081, .00102768195348, .00034563629591, -.00018816769626, + .00003206765662, .00008758906787, .00006729820252, .00018779266096, + .00011160225767, .00085942321667, .0025018659857, .00092591134763, + .00088266305412, .0008241186538, .00095084381197, -.00206285154639, + -.00012205118386, -.00002261059773, .00003058926358, .00011236802193, + -9.435310865e-06, .00025285680201, .00091151417222, .00092591134763, + .00230592480406, .00118265696692, .0011106470199, .00129290662149, + .00256049741814, -.00008281236274, -.00006024105579, .00001696423798, + .00010082715772, .0000165483542, .00010656723202, .00096327250114, + .00088266305412, .00118265696692, .00376307074235, .00124584145426, + .00155915431219, .00599086304364, -.00031504876539, -.00001412126593, + -.00008568569767, .00011217081931, -.00005323328914, .00030213005331, + .00090372304081, .0008241186538, .0011106470199, .00124584145426, + .00311664135744, .0018437604357, .00431259131307, -.00063574245306, + .00001474591556, -.00013140753648, .00009440153548, .00008265052168, + .00030792696913, .00102768195348, .00095084381197, .00129290662149, + .00155915431219, .0018437604357, .00375149863718, .00538769349865, + .00264272738846, -.00144330101198, -.00094326672008, .00075659901252, + -.00499436873124, .00157128168902, .00034563629591, -.00206285154639, + .00256049741814, .00599086304364, .00431259131307, .00538769349865, + .11322948711589]).reshape(13,13) + +cov_colnames = '_cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons'.split() + +cov_rownames = '_cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons'.split() + +class Bunch(dict): + def __init__(self, **kw): + dict.__init__(self, kw) + self.__dict__ = self + + for i,att in enumerate(['params', 'bse', 'tvalues', 'pvalues']): + self[att] = self.params_table[:,i] + + +results = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) diff --git a/statsmodels/sandbox/regression/tests/results_gmm_poisson.py b/statsmodels/sandbox/regression/tests/results_gmm_poisson.py new file mode 100644 index 0000000..ef55350 --- /dev/null +++ b/statsmodels/sandbox/regression/tests/results_gmm_poisson.py @@ -0,0 +1,582 @@ +import numpy as np + +est = dict( + rank = 8, + N = 3629, + Q = 4.59536484786e-20, + J = 1.66765790329e-16, + J_df = 0, + k_1 = 8, + converged = 1, + has_xtinst = 0, + type = 1, + n_eq = 1, + k = 8, + n_moments = 8, + k_aux = 8, + k_eq_model = 0, + k_eq = 8, + cmdline = "gmm ( docvis - exp({xb:private medicaid aget aget2 educyr actlim totchr}+{b0})), instruments(incomet ssiratio aget aget2 educyr actlim totchr) onestep vce(robust)", + cmd = "gmm", + estat_cmd = "gmm_estat", + predict = "gmm_p", + marginsnotok = "_ALL", + eqnames = "1", + technique = "gn", + winit = "Unadjusted", + estimator = "onestep", + wmatrix = "robust", + vce = "robust", + vcetype = "Robust", + params = "xb_private xb_medicaid xb_aget xb_aget2 xb_educyr xb_actlim xb_totchr b0", + inst_1 = "incomet ssiratio aget aget2 educyr actlim totchr _cons", + params_1 = "xb_private xb_medicaid xb_aget xb_aget2 xb_educyr xb_actlim xb_totchr b0", + sexp_1 = "docvis - exp( ({xb_private} *private + {xb_medicaid} *medicaid + {xb_aget} *aget + {xb_aget2} *aget2 + {xb_educyr} *educyr + {xb_actlim} *actlim + {xb_totchr} *totchr) + {b0} )", + properties = "b V", + ) + +params_table = np.array([ + .62093805844748, .35860052573857, 1.731559252928, .08335206643438, + -.08190605683724, 1.3237821737322, np.nan, 1.9599639845401, + 0, .68895699568302, .43817618784254, 1.5723286997298, + .11587434043505, -.1698525513714, 1.5477665427374, np.nan, + 1.9599639845401, 0, .25750627258076, .05009451793791, + 5.1404082358855, 2.741421857e-07, .15932282159956, .35568972356197, + np.nan, 1.9599639845401, 0, -.05352997420414, + .01103202674353, -4.8522339048464, 1.220785200e-06, -.07515234929795, + -.03190759911034, np.nan, 1.9599639845401, 0, + .03106248018916, .01032090201131, 3.0096671933432, .00261534090329, + .01083388395902, .05129107641931, np.nan, 1.9599639845401, + 0, .14175365608301, .0494498280382, 2.8666157539212, + .00414886404159, .04483377408643, .23867353807958, np.nan, + 1.9599639845401, 0, .23128095221422, .01565221628818, + 14.776243054406, 2.084750820e-49, .20060317201116, .26195873241727, + np.nan, 1.9599639845401, 0, .34763567088735, + .31615794015526, 1.0995633091379, .27152243570261, -.27202250524333, + .96729384701803, np.nan, 1.9599639845401, 0 + ]).reshape(8,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = '_cons _cons _cons _cons _cons _cons _cons _cons'.split() + +cov = np.array([ + .12859433705998, .13265896898444, .00910916927048, -.00144786113189, + -.00037337560793, -.00152379041042, -.00336772308907, -.09899309651531, + .13265896898444, .19199837159222, .00979636564963, -.00135323134276, + .00180599814286, -.00930935415071, -.00460031335865, -.13429156867927, + .00910916927048, .00979636564963, .00250946072743, -.00052373946978, + 5.155389870e-07, -.00016461502154, -.00025816911604, -.00869892550441, + -.00144786113189, -.00135323134276, -.00052373946978, .00012170561407, + 8.334416260e-06, -.00002526568199, .00003797456789, .00131001446811, + -.00037337560793, .00180599814286, 5.155389870e-07, 8.334416260e-06, + .00010652101833, -.00026856403693, -.00003344387872, -.00122933496346, + -.00152379041042, -.00930935415071, -.00016461502154, -.00002526568199, + -.00026856403693, .00244528549301, .00003610001892, .00527355381855, + -.00336772308907, -.00460031335865, -.00025816911604, .00003797456789, + -.00003344387872, .00003610001892, .00024499187473, .00300075896709, + -.09899309651531, -.13429156867927, -.00869892550441, .00131001446811, + -.00122933496346, .00527355381855, .00300075896709, .09995584312322 + ]).reshape(8,8) + +cov_colnames = '_cons _cons _cons _cons _cons _cons _cons _cons'.split() + +cov_rownames = '_cons _cons _cons _cons _cons _cons _cons _cons'.split() + +class Bunch(dict): + def __init__(self, **kw): + dict.__init__(self, kw) + self.__dict__ = self + + for i,att in enumerate(['params', 'bse', 'tvalues', 'pvalues']): + self[att] = self.params_table[:,i] + + +results_addonestep = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) + +import numpy as np + +est = dict( + rank = 8, + N = 3629, + Q = 6.09567389485e-33, + J = 2.21212005644e-29, + J_df = 0, + k_1 = 8, + converged = 1, + has_xtinst = 0, + type = 1, + n_eq = 1, + k = 8, + n_moments = 8, + k_aux = 8, + k_eq_model = 0, + k_eq = 8, + cmdline = "gmm ( docvis - exp({xb:private medicaid aget aget2 educyr actlim totchr}+{b0})), instruments(incomet ssiratio aget aget2 educyr actlim totchr) twostep vce(robust)", + cmd = "gmm", + estat_cmd = "gmm_estat", + predict = "gmm_p", + marginsnotok = "_ALL", + eqnames = "1", + technique = "gn", + winit = "Unadjusted", + estimator = "twostep", + wmatrix = "robust", + vce = "robust", + vcetype = "Robust", + params = "xb_private xb_medicaid xb_aget xb_aget2 xb_educyr xb_actlim xb_totchr b0", + inst_1 = "incomet ssiratio aget aget2 educyr actlim totchr _cons", + params_1 = "xb_private xb_medicaid xb_aget xb_aget2 xb_educyr xb_actlim xb_totchr b0", + sexp_1 = "docvis - exp( ({xb_private} *private + {xb_medicaid} *medicaid + {xb_aget} *aget + {xb_aget2} *aget2 + {xb_educyr} *educyr + {xb_actlim} *actlim + {xb_totchr} *totchr) + {b0} )", + properties = "b V", + ) + +params_table = np.array([ + .6209380584426, .35860052570457, 1.7315592530786, .08335206640755, + -.08190605677548, 1.3237821736607, np.nan, 1.9599639845401, + 0, .68895699501744, .43817618789764, 1.5723286980131, + .11587434083298, -.16985255214498, 1.5477665421799, np.nan, + 1.9599639845401, 0, .25750627271754, .05009451794125, + 5.1404082382732, 2.741421823e-07, .15932282172979, .35568972370529, + np.nan, 1.9599639845401, 0, -.05352997423123, + .01103202674378, -4.8522339071944, 1.220785186e-06, -.07515234932551, + -.03190759913694, np.nan, 1.9599639845401, 0, + .03106248018903, .01032090201422, 3.0096671924822, .0026153409107, + .01083388395319, .05129107642488, np.nan, 1.9599639845401, + 0, .14175365616691, .04944982804302, 2.8666157553386, + .00414886402301, .04483377416089, .23867353817294, np.nan, + 1.9599639845401, 0, .23128095224221, .01565221628892, + 14.776243055497, 2.084750786e-49, .20060317203771, .26195873244672, + np.nan, 1.9599639845401, 0, .34763567064032, + .31615794015859, 1.099563308345, .27152243604826, -.27202250549689, + .96729384677754, np.nan, 1.9599639845401, 0 + ]).reshape(8,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = '_cons _cons _cons _cons _cons _cons _cons _cons'.split() + +cov = np.array([ + .12859433703559, .1326589689683, .00910916927021, -.00144786113188, + -.00037337560766, -.00152379040753, -.00336772308885, -.09899309649807, + .1326589689683, .1919983716405, .00979636565235, -.00135323134324, + .00180599814488, -.00930935415256, -.00460031335946, -.13429156869395, + .00910916927021, .00979636565235, .00250946072777, -.00052373946983, + 5.155391569e-07, -.00016461502162, -.00025816911611, -.00869892550672, + -.00144786113188, -.00135323134324, -.00052373946983, .00012170561408, + 8.334416227e-06, -.00002526568198, .0000379745679, .00131001446858, + -.00037337560766, .00180599814488, 5.155391569e-07, 8.334416227e-06, + .00010652101839, -.00026856403706, -.00003344387875, -.00122933496459, + -.00152379040753, -.00930935415256, -.00016461502162, -.00002526568198, + -.00026856403706, .00244528549348, .00003610001887, .00527355381795, + -.00336772308885, -.00460031335946, -.00025816911611, .0000379745679, + -.00003344387875, .00003610001887, .00024499187475, .00300075896724, + -.09899309649807, -.13429156869395, -.00869892550672, .00131001446858, + -.00122933496459, .00527355381795, .00300075896724, .09995584312533 + ]).reshape(8,8) + +cov_colnames = '_cons _cons _cons _cons _cons _cons _cons _cons'.split() + +cov_rownames = '_cons _cons _cons _cons _cons _cons _cons _cons'.split() + +results_addtwostep = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) + +import numpy as np + +est = dict( + rank = 8, + N = 3629, + Q = .0002538911897719, + J = .9213711276820714, + J_df = 1, + k_1 = 8, + converged = 1, + has_xtinst = 0, + type = 1, + n_eq = 1, + k = 8, + n_moments = 9, + k_aux = 8, + k_eq_model = 0, + k_eq = 8, + cmdline = "gmm ( (docvis / exp({xb:private medicaid aget aget2 educyr actlim totchr}+{b0})) - 1), instruments(income ssiratio medicaid aget aget2 educyr actlim totchr) onestep vce(robust)", + cmd = "gmm", + estat_cmd = "gmm_estat", + predict = "gmm_p", + marginsnotok = "_ALL", + eqnames = "1", + technique = "gn", + winit = "Unadjusted", + estimator = "onestep", + wmatrix = "robust", + vce = "robust", + vcetype = "Robust", + params = "xb_private xb_medicaid xb_aget xb_aget2 xb_educyr xb_actlim xb_totchr b0", + inst_1 = "income ssiratio medicaid aget aget2 educyr actlim totchr _cons", + params_1 = "xb_private xb_medicaid xb_aget xb_aget2 xb_educyr xb_actlim xb_totchr b0", + sexp_1 = "(docvis / exp( ({xb_private} *private + {xb_medicaid} *medicaid + {xb_aget} *aget + {xb_aget2} *aget2 + {xb_educyr} *educyr + {xb_actlim} *actlim + {xb_totchr} *totchr) + {b0} )) - 1", + properties = "b V", + ) + +params_table = np.array([ + .67045580921478, .25039046077656, 2.6776411814389, .00741425985435, + .17969952402034, 1.1612120944092, np.nan, 1.9599639845401, + 0, .28551241628798, .10358919281318, 2.7561988710819, + .00584774303307, .08248132918657, .4885435033894, np.nan, + 1.9599639845401, 0, .2672004738793, .05203985579809, + 5.1345352476769, 2.828420839e-07, .16520423075439, .36919671700421, + np.nan, 1.9599639845401, 0, -.0560702624564, + .01191485946838, -4.7059105149509, 2.527353692e-06, -.07942295789528, + -.03271756701753, np.nan, 1.9599639845401, 0, + .01448379701656, .00782559934942, 1.8508227127214, .06419506241955, + -.00085409586574, .02982168989887, np.nan, 1.9599639845401, + 0, .18130374188096, .0382173439987, 4.7440173206998, + 2.095209222e-06, .10639912405874, .25620835970318, np.nan, + 1.9599639845401, 0, .28146161235562, .01380395117777, + 20.389931022715, 2.054354003e-92, .25440636520284, .30851685950839, + np.nan, 1.9599639845401, 0, .51399857133918, + .10262653035745, 5.0084375799215, 5.487366567e-07, .31285426798028, + .71514287469808, np.nan, 1.9599639845401, 0 + ]).reshape(8,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = '_cons _cons _cons _cons _cons _cons _cons _cons'.split() + +cov = np.array([ + .0626953828479, .02323594786658, .00535172023578, -.00103050587759, + -.00154311442856, .00154515839603, -.00043159973572, -.01570852578318, + .02323594786658, .01073072086769, .00207768328305, -.00039713375955, + -.00049396171685, .00027652302157, -.00020408147523, -.00701276303887, + .00535172023578, .00207768328305, .00270814659149, -.00059652725999, + -.00012298559534, .00021079055266, -.00004341699196, -.0031278522429, + -.00103050587759, -.00039713375955, -.00059652725999, .00014196387615, + .00002481291175, -.00006035908648, .00001093157006, .00059187926133, + -.00154311442856, -.00049396171685, -.00012298559534, .00002481291175, + .00006124000518, -.00001857594061, .00001436652009, .00008106194688, + .00154515839603, .00027652302157, .00021079055266, -.00006035908648, + -.00001857594061, .00146056538231, -.00016708887634, -.00074321753343, + -.00043159973572, -.00020408147523, -.00004341699196, .00001093157006, + .00001436652009, -.00016708887634, .00019054906812, -.00028024031412, + -.01570852578318, -.00701276303887, -.0031278522429, .00059187926133, + .00008106194688, -.00074321753343, -.00028024031412, .01053220473321 + ]).reshape(8,8) + +cov_colnames = '_cons _cons _cons _cons _cons _cons _cons _cons'.split() + +cov_rownames = '_cons _cons _cons _cons _cons _cons _cons _cons'.split() + + +results_multonestep = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) + +import numpy as np + +est = dict( + rank = 8, + N = 3629, + Q = .0002589826272982, + J = .9398479544653281, + J_df = 1, + k_1 = 8, + converged = 1, + has_xtinst = 0, + type = 1, + n_eq = 1, + k = 8, + n_moments = 9, + k_aux = 8, + k_eq_model = 0, + k_eq = 8, + cmdline = "gmm ( (docvis / exp({xb:private medicaid aget aget2 educyr actlim totchr}+{b0})) - 1), instruments(income ssiratio medicaid aget aget2 educyr actlim totchr) twostep vce(robust)", + cmd = "gmm", + estat_cmd = "gmm_estat", + predict = "gmm_p", + marginsnotok = "_ALL", + eqnames = "1", + technique = "gn", + winit = "Unadjusted", + estimator = "twostep", + wmatrix = "robust", + vce = "robust", + vcetype = "Robust", + params = "xb_private xb_medicaid xb_aget xb_aget2 xb_educyr xb_actlim xb_totchr b0", + inst_1 = "income ssiratio medicaid aget aget2 educyr actlim totchr _cons", + params_1 = "xb_private xb_medicaid xb_aget xb_aget2 xb_educyr xb_actlim xb_totchr b0", + sexp_1 = "(docvis / exp( ({xb_private} *private + {xb_medicaid} *medicaid + {xb_aget} *aget + {xb_aget2} *aget2 + {xb_educyr} *educyr + {xb_actlim} *actlim + {xb_totchr} *totchr) + {b0} )) - 1", + properties = "b V", + ) + +params_table = np.array([ + .67815288158883, .25053953449054, 2.7067699433856, .00679413212727, + .18710441728393, 1.1692013458937, np.nan, 1.9599639845401, + 0, .28872837589732, .1032733938985, 2.7957672833051, + .00517766683505, .08631624329503, .49114050849961, np.nan, + 1.9599639845401, 0, .27067071818542, .05199695467114, + 5.2055109745809, 1.934635127e-07, .16875855972422, .37258287664662, + np.nan, 1.9599639845401, 0, -.05690856524563, + .01189861686254, -4.7827882772482, 1.728801925e-06, -.08022942576205, + -.03358770472921, np.nan, 1.9599639845401, 0, + .01438118999252, .00783219080428, 1.8361644081315, .06633334485657, + -.00096962190392, .02973200188896, np.nan, 1.9599639845401, + 0, .18038262255626, .03826653224544, 4.7138481584715, + 2.430818311e-06, .10538159754195, .25538364757056, np.nan, + 1.9599639845401, 0, .28251027986119, .01378475918788, + 20.494393555287, 2.415775858e-93, .25549264831739, .30952791140498, + np.nan, 1.9599639845401, 0, .5077134442587, + .10235830367214, 4.9601588346456, 7.043556343e-07, .30709485554269, + .7083320329747, np.nan, 1.9599639845401, 0 + ]).reshape(8,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = '_cons _cons _cons _cons _cons _cons _cons _cons'.split() + +cov = np.array([ + .06277005834274, .02315710174743, .00533574120292, -.00102544979294, + -.00154463417995, .0015508406274, -.00043796451278, -.01559999387335, + .02315710174743, .01066539388732, .00206217803508, -.00039331197813, + -.00049172930967, .00027603135609, -.00020644763374, -.00694810289238, + .00533574120292, .00206217803508, .00270368329507, -.0005950942106, + -.00012276584915, .00021462173623, -.00004681980342, -.00310767551047, + -.00102544979294, -.00039331197813, -.0005950942106, .00014157708324, + .00002474211336, -.00006134660609, .00001178280314, .00058658157366, + -.00154463417995, -.00049172930967, -.00012276584915, .00002474211336, + .00006134321279, -.00001855941375, .00001443470174, .0000776612477, + .0015508406274, .00027603135609, .00021462173623, -.00006134660609, + -.00001855941375, .00146432749009, -.00016643326394, -.00074847803836, + -.00043796451278, -.00020644763374, -.00004681980342, .00001178280314, + .00001443470174, -.00016643326394, .00019001958587, -.00027573517109, + -.01559999387335, -.00694810289238, -.00310767551047, .00058658157366, + .0000776612477, -.00074847803836, -.00027573517109, .01047722233064 + ]).reshape(8,8) + +cov_colnames = '_cons _cons _cons _cons _cons _cons _cons _cons'.split() + +cov_rownames = '_cons _cons _cons _cons _cons _cons _cons _cons'.split() + +results_multtwostep = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) + + +import numpy as np + +est = dict( + rank = 8, + N = 3629, + Q = .0002590497181628, + J = .940091427212973, + J_df = 1, + k_1 = 8, + converged = 1, + has_xtinst = 0, + type = 1, + n_eq = 1, + k = 8, + n_moments = 9, + k_aux = 8, + k_eq_model = 0, + k_eq = 8, + cmdline = "gmm ( (docvis / exp({xb:private medicaid aget aget2 educyr actlim totchr}+{b0})) - 1), instruments(income ssiratio medicaid aget aget2 educyr actlim totchr) twostep wmatrix(robust) vce(unadjusted) center", + cmd = "gmm", + estat_cmd = "gmm_estat", + predict = "gmm_p", + marginsnotok = "_ALL", + eqnames = "1", + technique = "gn", + winit = "Unadjusted", + estimator = "twostep", + wmatrix = "robust", + vce = "unadjusted", + params = "xb_private xb_medicaid xb_aget xb_aget2 xb_educyr xb_actlim xb_totchr b0", + inst_1 = "income ssiratio medicaid aget aget2 educyr actlim totchr _cons", + params_1 = "xb_private xb_medicaid xb_aget xb_aget2 xb_educyr xb_actlim xb_totchr b0", + sexp_1 = "(docvis / exp( ({xb_private} *private + {xb_medicaid} *medicaid + {xb_aget} *aget + {xb_aget2} *aget2 + {xb_educyr} *educyr + {xb_actlim} *actlim + {xb_totchr} *totchr) + {b0} )) - 1", + properties = "b V", + ) + +params_table = np.array([ + .67815486150911, .25018082946574, 2.7106587781218, .00671496899138, + .1878094461339, 1.1685002768843, np.nan, 1.9599639845401, + 0, .28872920226215, .10311429027815, 2.8000891193967, + .00510884999633, .08662890702558, .49082949749873, np.nan, + 1.9599639845401, 0, .27067161407481, .0518802415232, + 5.2172388972735, 1.816099638e-07, .16898820918009, .37235501896953, + np.nan, 1.9599639845401, 0, -.05690878166227, + .0118728670827, -4.7931793783164, 1.641587211e-06, -.08017917353758, + -.03363838978695, np.nan, 1.9599639845401, 0, + .01438116368432, .00781887593806, 1.8392878718448, .0658728559523, + -.00094355155385, .0297058789225, np.nan, 1.9599639845401, + 0, .18038238197017, .03819661477822, 4.7224703816696, + 2.329970297e-06, .10551839267351, .25524637126682, np.nan, + 1.9599639845401, 0, .28251055147828, .01376659609161, + 20.521452768591, 1.385109204e-93, .25552851894901, .30949258400755, + np.nan, 1.9599639845401, 0, .50771182444237, + .10208891085993, 4.9732318639284, 6.584582712e-07, .30762123593598, + .70780241294876, np.nan, 1.9599639845401, 0 + ]).reshape(8,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = 'xb_private xb_medicaid xb_aget xb_aget2 xb_educyr xb_actlim xb_totchr b0'.split() + +cov = np.array([ + .06259044743217, .02308524749042, .00531802921719, -.0010223122446, + -.00154027662468, .00154945994717, -.00043816683551, -.01554486097815, + .02308524749042, .01063255685957, .00205438168765, -.00039193802388, + -.00049039628782, .0002760841411, -.0002064504141, -.00691934867666, + .00531802921719, .00205438168765, .00269155946051, -.00059250696972, + -.00012247118567, .00021403084056, -.00004749600121, -.00308951213731, + -.0010223122446, -.00039193802388, -.00059250696972, .00014096497276, + .00002468288871, -.00006115240604, .00001190303672, .00058327928125, + -.00154027662468, -.00049039628782, -.00012247118567, .00002468288871, + .00006113482093, -.00001854325518, .00001439868646, .00007784185009, + .00154945994717, .0002760841411, .00021403084056, -.00006115240604, + -.00001854325518, .00145898138052, -.00016596475072, -.00074697007542, + -.00043816683551, -.0002064504141, -.00004749600121, .00001190303672, + .00001439868646, -.00016596475072, .00018951916795, -.00027350320218, + -.01554486097815, -.00691934867666, -.00308951213731, .00058327928125, + .00007784185009, -.00074697007542, -.00027350320218, .01042214572057 + ]).reshape(8,8) + +cov_colnames = 'xb_private xb_medicaid xb_aget xb_aget2 xb_educyr xb_actlim xb_totchr b0'.split() + +cov_rownames = 'xb_private xb_medicaid xb_aget xb_aget2 xb_educyr xb_actlim xb_totchr b0'.split() + + +results_multtwostepdefault = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) + + +import numpy as np + +est = dict( + rank = 8, + N = 3629, + Q = .0002590497181628, + J = .940091427212973, + J_df = 1, + k_1 = 8, + converged = 1, + has_xtinst = 0, + type = 1, + n_eq = 1, + k = 8, + n_moments = 9, + k_aux = 8, + k_eq_model = 0, + k_eq = 8, + cmdline = "gmm ( (docvis / exp({xb:private medicaid aget aget2 educyr actlim totchr}+{b0})) - 1), instruments(income ssiratio medicaid aget aget2 educyr actlim totchr) twostep wmatrix(robust) center", + cmd = "gmm", + estat_cmd = "gmm_estat", + predict = "gmm_p", + marginsnotok = "_ALL", + eqnames = "1", + technique = "gn", + winit = "Unadjusted", + estimator = "twostep", + wmatrix = "robust", + vce = "robust", + vcetype = "Robust", + params = "xb_private xb_medicaid xb_aget xb_aget2 xb_educyr xb_actlim xb_totchr b0", + inst_1 = "income ssiratio medicaid aget aget2 educyr actlim totchr _cons", + params_1 = "xb_private xb_medicaid xb_aget xb_aget2 xb_educyr xb_actlim xb_totchr b0", + sexp_1 = "(docvis / exp( ({xb_private} *private + {xb_medicaid} *medicaid + {xb_aget} *aget + {xb_aget2} *aget2 + {xb_educyr} *educyr + {xb_actlim} *actlim + {xb_totchr} *totchr) + {b0} )) - 1", + properties = "b V", + ) + +params_table = np.array([ + .67815486150911, .25053960844836, 2.7067770469869, .00679398676131, + .18710625224955, 1.1692034707687, np.nan, 1.9599639845401, + 0, .28872920226215, .10327332768441, 2.7957770775479, + .00517750993835, .08631719943712, .49114120508719, np.nan, + 1.9599639845401, 0, .27067161407481, .05199697557915, + 5.2055261110869, 1.934477426e-07, .16875941463467, .37258381351495, + np.nan, 1.9599639845401, 0, -.05690878166227, + .01189862079945, -4.7828048831437, 1.728659059e-06, -.08022964989488, + -.03358791342965, np.nan, 1.9599639845401, 0, + .01438116368432, .00783219272776, 1.8361605982125, .06633390816397, + -.00096965198207, .02973197935072, np.nan, 1.9599639845401, + 0, .18038238197017, .03826654814775, 4.71383991244, + 2.430916736e-06, .10538132578791, .25538343815243, np.nan, + 1.9599639845401, 0, .28251055147828, .01378476509846, + 20.494404471929, 2.415234157e-93, .25549290834996, .3095281946066, + np.nan, 1.9599639845401, 0, .50771182444237, + .10235828870929, 4.960143734762, 7.044103886e-07, .307093265053, + .70833038383174, np.nan, 1.9599639845401, 0 + ]).reshape(8,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = '_cons _cons _cons _cons _cons _cons _cons _cons'.split() + +cov = np.array([ + .06277009540146, .02315708886727, .00533574465012, -.0010254503134, + -.00154463481696, .00155084007911, -.00043796389511, -.01559997980204, + .02315708886727, .01066538021101, .00206217721135, -.00039331175814, + -.00049172883672, .00027603038575, -.00020644729789, -.00694809209467, + .00533574465012, .00206217721135, .00270368546938, -.00059509464294, + -.000122765895, .00021462183651, -.00004681968717, -.003107676362, + -.0010254503134, -.00039331175814, -.00059509464294, .00014157717693, + .00002474211983, -.00006134664668, .00001178278294, .00058658166731, + -.00154463481696, -.00049172883672, -.000122765895, .00002474211983, + .00006134324292, -.00001855938213, .00001443468876, .00007766055925, + .00155084007911, .00027603038575, .00021462183651, -.00006134664668, + -.00001855938213, .00146432870714, -.00016643336248, -.00074847778305, + -.00043796389511, -.00020644729789, -.00004681968717, .00001178278294, + .00001443468876, -.00016643336248, .00019001974882, -.00027573582025, + -.01559997980204, -.00694809209467, -.003107676362, .00058658166731, + .00007766055925, -.00074847778305, -.00027573582025, .0104772192675 + ]).reshape(8,8) + +cov_colnames = '_cons _cons _cons _cons _cons _cons _cons _cons'.split() + +cov_rownames = '_cons _cons _cons _cons _cons _cons _cons _cons'.split() + + +results_multtwostepcenter = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) diff --git a/statsmodels/sandbox/regression/tests/results_ivreg2_griliches.py b/statsmodels/sandbox/regression/tests/results_ivreg2_griliches.py new file mode 100644 index 0000000..9fbabc0 --- /dev/null +++ b/statsmodels/sandbox/regression/tests/results_ivreg2_griliches.py @@ -0,0 +1,828 @@ +import numpy as np + +est = dict( + N = 758, + inexog_ct = 10, + exexog_ct = 4, + endog_ct = 2, + partial_ct = 0, + df_m = 12, + sdofminus = 0, + dofminus = 0, + r2 = .2279825291623523, + rmse = .3766456260250817, + rss = 107.5313411236999, + mss = 31.75480871825532, + r2_a = .2155473484240278, + F = 37.63903370585436, + Fp = 1.04881083780e-68, + Fdf1 = 12, + Fdf2 = 745, + yy = 24652.2466174172, + yyc = 139.2861498419552, + r2u = .9956380713371686, + partialcons = 0, + cons = 1, + cdf = 12.55161416131593, + widstat = 12.55161416131593, + cd = .0675726199801665, + idp = 2.15251425210e-10, + iddf = 3, + idstat = 47.97804382236573, + sarganp = .0013146751383334, + sargandf = 2, + sargan = 13.26833137393004, + jp = .0013146751383334, + jdf = 2, + j = 13.26833137393004, + ll = -335.4059158173529, + rankV = 13, + rankxx = 13, + rankzz = 15, + r2c = .2279825291623523, + hacsubtitleV = "Statistics consistent for homoskedasticity only", + hacsubtitleB = "Estimates efficient for homoskedasticity only", + title = "IV (2SLS) estimation", + predict = "ivreg2_p", + version = "02.2.08", + cmdline = "ivreg2 lw expr tenure rns smsa dyear* (s iq = med kww age mrt)", + cmd = "ivreg2", + model = "iv", + depvar = "lw", + partialsmall = "small", + exexog = "med kww age mrt", + inexog = "expr tenure rns smsa dyear_67 dyear_68 dyear_69 dyear_70 dyear_71 dyear_73", + insts = "med kww age mrt expr tenure rns smsa dyear_67 dyear_68 dyear_69 dyear_70 dyear_71 dyear_73", + instd = "s iq", + properties = "b V", + ) + +params_table = np.array([ + .17242531190423, .02073807855911, 8.3144304527925, 9.219394861e-17, + .13177942481982, .21307119898864, np.nan, 1.9599639845401, + 0, -.00909883103476, .00470440157185, -1.9341101935687, + .05309958088226, -.01831928868441, .00012162661488, np.nan, + 1.9599639845401, 0, .04928948974574, .008154589406, + 6.0443864542646, 1.499796319e-09, .03330678820126, .06527219129022, + np.nan, 1.9599639845401, 0, .04221709210309, + .00884287446052, 4.774136768712, 1.804797032e-06, .02488537664065, + .05954880756552, np.nan, 1.9599639845401, 0, + -.10179345001799, .03417647128271, -2.9784657747708, .00289695381119, + -.16877810285078, -.03480879718521, np.nan, 1.9599639845401, + 0, .12611094946923, .03092747922238, 4.0776342799379, + .00004549625503, .06549420406076, .18672769487769, np.nan, + 1.9599639845401, 0, -.05961710621535, .05529546018534, + -1.0781555305902, .28096435347028, -.16799421668718, .04876000425648, + np.nan, 1.9599639845401, 0, .04867955999401, + .05201609347935, .93585574651683, .34934746462842, -.05327010984199, + .15062922983, np.nan, 1.9599639845401, 0, + .15281763322545, .0515629903814, 2.9637077309732, .0030395682829, + .05175602914272, .25387923730817, np.nan, 1.9599639845401, + 0, .17443605148569, .05975759031645, 2.9190610023255, + .00351087511908, .05731332666255, .29155877630882, np.nan, + 1.9599639845401, 0, .09166596656323, .05414400395495, + 1.6930031003894, .09045487706511, -.01445433116727, .19778626429372, + np.nan, 1.9599639845401, 0, .09323976497853, + .0571819085978, 1.6305815469428, .10297864547348, -.01883471644041, + .20531424639747, np.nan, 1.9599639845401, 0, + 4.0335098946211, .31542152364325, 12.787681221092, 1.921209213e-37, + 3.4152950683316, 4.6517247209107, np.nan, 1.9599639845401, + 0]).reshape(13,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = 's iq expr tenure rns smsa dyear_67 dyear_68 dyear_69 dyear_70 dyear_71 dyear_73 _cons'.split() + +cov = np.array([ + .00043006790232, -.00007669911732, .00003390383154, .00001947510761, + -.00014211117725, .00001984430949, .00001313809086, -.00010726217801, + -.0000934373525, .00003291577926, -.00026067342405, -.00058025280789, + .00230075400852, -.00007669911732, .00002213139415, 4.388754481e-06, + -8.774272042e-06, .00005855699916, -.00001627155824, -.00001175114527, + .00001447038262, -.00001630144788, -.00007254738147, -.0000221423658, + .00001715527313, -.00125964216852, .00003390383154, 4.388754481e-06, + .00006649732838, -.00001561989737, .00003340985346, -6.286271714e-06, + .00004284715305, .00006535720207, .00002474647562, 2.348670591e-06, + -.00012774309302, -.00013889592824, -.00097053265371, .00001947510761, + -8.774272042e-06, -.00001561989737, .00007819642872, -.00001656102532, + -1.454183906e-06, .00006415542548, .0000658729123, .00007759572764, + .00006755177717, .00006035533972, .00007925563165, .00048915076309, + -.00014211117725, .00005855699916, .00003340985346, -.00001656102532, + .00116803118934, .00009910080232, .00010687488928, .0000916567869, + -.00004794231232, -.00018139826234, -.00013904727086, -.00016941373862, + -.00453388036786, .00001984430949, -.00001627155824, -6.286271714e-06, + -1.454183906e-06, .00009910080232, .00095650897105, 2.293607157e-06, + -4.175180521e-06, .00008023363682, .0000277191399, .00011455631826, + 7.627834100e-06, .00071035658346, .00001313809086, -.00001175114527, + .00004284715305, .00006415542548, .00010687488928, 2.293607157e-06, + .00305758791711, .00082806878751, .00084056268139, .00086879959596, + .00072687243235, .00079702544855, .00005969922435, -.00010726217801, + .00001447038262, .00006535720207, .0000658729123, .0000916567869, + -4.175180521e-06, .00082806878751, .00270567398085, .00090000327564, + .0008652672979, .00075215815711, .00093055832029, -.0011308128858, + -.0000934373525, -.00001630144788, .00002474647562, .00007759572764, + -.00004794231232, .00008023363682, .00084056268139, .00090000327564, + .00265874197707, .00106768253686, .00097403133741, .00118960267354, + .00179874271988, .00003291577926, -.00007254738147, 2.348670591e-06, + .00006755177717, -.00018139826234, .0000277191399, .00086879959596, + .0008652672979, .00106768253686, .00357096960043, .00115404290469, + .00134956217212, .00598978065251, -.00026067342405, -.0000221423658, + -.00012774309302, .00006035533972, -.00013904727086, .00011455631826, + .00072687243235, .00075215815711, .00097403133741, .00115404290469, + .00293157316427, .00171538928992, .0048030008792, -.00058025280789, + .00001715527313, -.00013889592824, .00007925563165, -.00016941373862, + 7.627834100e-06, .00079702544855, .00093055832029, .00118960267354, + .00134956217212, .00171538928992, .00326977067089, .00483241607215, + .00230075400852, -.00125964216852, -.00097053265371, .00048915076309, + -.00453388036786, .00071035658346, .00005969922435, -.0011308128858, + .00179874271988, .00598978065251, .0048030008792, .00483241607215, + .09949073757743]).reshape(13,13) + +cov_colnames = 's iq expr tenure rns smsa dyear_67 dyear_68 dyear_69 dyear_70 dyear_71 dyear_73 _cons'.split() + +cov_rownames = 's iq expr tenure rns smsa dyear_67 dyear_68 dyear_69 dyear_70 dyear_71 dyear_73 _cons'.split() + +class Bunch(dict): + def __init__(self, **kw): + dict.__init__(self, kw) + self.__dict__ = self + + for i,att in enumerate(['params', 'bse', 'tvalues', 'pvalues']): + self[att] = self.params_table[:,i] + + +results = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) + +import numpy as np + +est = dict( + N = 758, + inexog_ct = 10, + exexog_ct = 4, + endog_ct = 2, + partial_ct = 0, + df_m = 12, + sdofminus = 0, + dofminus = 0, + r2 = .2279825291623523, + rmse = .3766456260250817, + rss = 107.5313411236999, + mss = 31.75480871825532, + r2_a = .2155473484240278, + F = 40.08955571761713, + Fp = 1.50331141073e-72, + Fdf1 = 12, + Fdf2 = 745, + yy = 24652.2466174172, + yyc = 139.2861498419552, + r2u = .9956380713371686, + partialcons = 0, + cons = 1, + cdf = 12.55161416131593, + widstat = 11.46142788662503, + cd = .0675726199801665, + idp = 6.77658650925e-09, + iddf = 3, + idstat = 40.92698219921901, + jp = .0030253131145893, + jdf = 2, + j = 11.60148136780177, + ll = -335.4059158173529, + rankV = 13, + rankS = 15, + rankxx = 13, + rankzz = 15, + r2c = .2279825291623523, + hacsubtitleV = "Statistics robust to heteroskedasticity", + hacsubtitleB = "Estimates efficient for homoskedasticity only", + title = "IV (2SLS) estimation", + predict = "ivreg2_p", + version = "02.2.08", + cmdline = "ivreg2 lw expr tenure rns smsa dyear* (s iq = med kww age mrt), robust", + cmd = "ivreg2", + model = "iv", + depvar = "lw", + vcetype = "Robust", + partialsmall = "small", + exexog = "med kww age mrt", + inexog = "expr tenure rns smsa dyear_67 dyear_68 dyear_69 dyear_70 dyear_71 dyear_73", + insts = "med kww age mrt expr tenure rns smsa dyear_67 dyear_68 dyear_69 dyear_70 dyear_71 dyear_73", + instd = "s iq", + properties = "b V", + ) + +params_table = np.array([ + .17242531190423, .02073946970741, 8.3138727429773, 9.262847918e-17, + .13177669821925, .21307392558922, np.nan, 1.9599639845401, + 0, -.00909883103476, .00488623921475, -1.862133766863, + .06258423744885, -.01867568391553, .000478021846, np.nan, + 1.9599639845401, 0, .04928948974574, .00804979771814, + 6.1230718424932, 9.178828239e-10, .03351217613534, .06506680335614, + np.nan, 1.9599639845401, 0, .04221709210309, + .00946363451747, 4.4609808235038, 8.158539136e-06, .02366870928599, + .06076547492018, np.nan, 1.9599639845401, 0, + -.10179345001799, .03371052765435, -3.0196338384772, .0025308044732, + -.16786487012036, -.03572202991563, np.nan, 1.9599639845401, + 0, .12611094946923, .03081138055695, 4.0929989889975, + .0000425829578, .06572175326364, .18650014567481, np.nan, + 1.9599639845401, 0, -.05961710621535, .05171372338658, + -1.1528295065836, .24898037077447, -.16097414155951, .04173992912881, + np.nan, 1.9599639845401, 0, .04867955999401, + .04981322391886, .97724170740882, .32844950437829, -.04895256484079, + .14631168482881, np.nan, 1.9599639845401, 0, + .15281763322545, .04792849748217, 3.1884503219051, .00143037585571, + .05887950432728, .24675576212361, np.nan, 1.9599639845401, + 0, .17443605148569, .06112514588945, 2.8537527223437, + .00432061472656, .0546329669926, .29423913597877, np.nan, + 1.9599639845401, 0, .09166596656323, .05546180250571, + 1.6527765492979, .09837634843385, -.01703716886563, .20036910199209, + np.nan, 1.9599639845401, 0, .09323976497853, + .06084900555321, 1.5323137022675, .12544504141872, -.02602209440084, + .21250162435791, np.nan, 1.9599639845401, 0, + 4.0335098946211, .33503289255951, 12.039145959093, 2.212341116e-33, + 3.3768574915682, 4.6901622976741, np.nan, 1.9599639845401, + 0]).reshape(13,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = 's iq expr tenure rns smsa dyear_67 dyear_68 dyear_69 dyear_70 dyear_71 dyear_73 _cons'.split() + +cov = np.array([ + .00043012560374, -.00007821948167, .00002814664043, .00001470659468, + -.0001813729733, -8.404214148e-06, -.00011649583596, -.000190986044, + -.0001267060192, -.00008672920729, -.00031350033086, -.00062509206513, + .00258704275336, -.00007821948167, .00002387533366, 4.911669726e-06, + -.00001098678321, .00006618473559, -.00002158670033, 8.107545182e-07, + .00003255315461, -.00002143051923, -.00005975353088, -.00001402380853, + .00001385883995, -.00142630445991, .00002814664043, 4.911669726e-06, + .0000647992433, -.00001977796198, .00005110284339, -.00003232809925, + .00003557970375, .00008581782551, .00002961847493, .00001478700432, + -.00008727552542, -.00012994173162, -.000941201163, .00001470659468, + -.00001098678321, -.00001977796198, .00008956037828, -.00003784800305, + 7.059546852e-06, .0000815195063, .00006348047141, .00010852497853, + .00009624187487, .0001082378721, .0000913295716, .00074787094515, + -.0001813729733, .00006618473559, .00005110284339, -.00003784800305, + .00113639967473, .0001331351818, .00019039509428, .00020009655722, + 7.191780470e-06, .00002329093699, -.00005087978262, .00009086571417, + -.0049574872418, -8.404214148e-06, -.00002158670033, -.00003232809925, + 7.059546852e-06, .0001331351818, .00094934117183, .00006195450043, + .00011810217306, .00025505395801, .00011081126682, .0003013467353, + .00030676742453, .00155300401661, -.00011649583596, 8.107545182e-07, + .00003557970375, .0000815195063, .00019039509428, .00006195450043, + .0026743091865, .00086135304687, .00092017339013, .00095567351458, + .00088700647379, .00102883960334, .00031676175972, -.000190986044, + .00003255315461, .00008581782551, .00006348047141, .00020009655722, + .00011810217306, .00086135304687, .00248135727719, .00093026821071, + .00087773786421, .00081079994607, .0009428852573, -.00207087031744, + -.0001267060192, -.00002143051923, .00002961847493, .00010852497853, + 7.191780470e-06, .00025505395801, .00092017339013, .00093026821071, + .0022971408709, .00117701812528, .00109484405896, .00129252524214, + .00250083573092, -.00008672920729, -.00005975353088, .00001478700432, + .00009624187487, .00002329093699, .00011081126682, .00095567351458, + .00087773786421, .00117701812528, .00373628346001, .00123495172003, + .00154490399913, .00600809353497, -.00031350033086, -.00001402380853, + -.00008727552542, .0001082378721, -.00005087978262, .0003013467353, + .00088700647379, .00081079994607, .00109484405896, .00123495172003, + .00307601153718, .00181187884386, .00430884303329, -.00062509206513, + .00001385883995, -.00012994173162, .0000913295716, .00009086571417, + .00030676742453, .00102883960334, .0009428852573, .00129252524214, + .00154490399913, .00181187884386, .00370260147681, .00534911865268, + .00258704275336, -.00142630445991, -.000941201163, .00074787094515, + -.0049574872418, .00155300401661, .00031676175972, -.00207087031744, + .00250083573092, .00600809353497, .00430884303329, .00534911865268, + .11224703909679]).reshape(13,13) + +cov_colnames = 's iq expr tenure rns smsa dyear_67 dyear_68 dyear_69 dyear_70 dyear_71 dyear_73 _cons'.split() + +cov_rownames = 's iq expr tenure rns smsa dyear_67 dyear_68 dyear_69 dyear_70 dyear_71 dyear_73 _cons'.split() + +class Bunch(dict): + def __init__(self, **kw): + dict.__init__(self, kw) + self.__dict__ = self + + for i,att in enumerate(['params', 'bse', 'tvalues', 'pvalues']): + self[att] = self.params_table[:,i] + + +results_robust = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) + +import numpy as np + +est = dict( + N = 758, + inexog_ct = 10, + exexog_ct = 4, + endog_ct = 2, + partial_ct = 0, + df_r = 745, + df_m = 12, + sdofminus = 0, + dofminus = 0, + r2 = .2279825291623523, + rmse = .3799175840045295, + rss = 107.5313411236999, + mss = 31.75480871825532, + r2_a = .2155473484240278, + F = 37.63903370585438, + Fp = 1.04881083780e-68, + Fdf1 = 12, + Fdf2 = 745, + yy = 24652.2466174172, + yyc = 139.2861498419552, + partialcons = 0, + cons = 1, + cdf = 12.55161416131593, + widstat = 12.55161416131593, + cd = .0675726199801665, + idp = 2.15251425210e-10, + iddf = 3, + idstat = 47.97804382236573, + sarganp = .0013146751383334, + sargandf = 2, + sargan = 13.26833137393004, + jp = .0013146751383334, + jdf = 2, + j = 13.26833137393004, + ll = -335.4059158173529, + rankV = 13, + rankxx = 13, + rankzz = 15, + r2c = .2279825291623523, + r2u = .9956380713371686, + hacsubtitleV = "Statistics consistent for homoskedasticity only", + hacsubtitleB = "Estimates efficient for homoskedasticity only", + title = "IV (2SLS) estimation", + predict = "ivreg2_p", + version = "02.2.08", + cmdline = "ivreg2 lw expr tenure rns smsa dyear* (s iq = med kww age mrt), small", + cmd = "ivreg2", + model = "iv", + depvar = "lw", + partialsmall = "small", + small = "small", + exexog = "med kww age mrt", + inexog = "expr tenure rns smsa dyear_67 dyear_68 dyear_69 dyear_70 dyear_71 dyear_73", + insts = "med kww age mrt expr tenure rns smsa dyear_67 dyear_68 dyear_69 dyear_70 dyear_71 dyear_73", + instd = "s iq", + properties = "b V", + ) + +params_table = np.array([ + .17242531190423, .02091823230823, 8.2428242197305, 7.570254109e-16, + .13135961443277, .2134910093757, 745, 1.9631533327653, + 0, -.00909883103476, .00474526917577, -1.917453088061, + .055562500369, -.01841452203205, .00021685996252, 745, + 1.9631533327653, 0, .04928948974574, .00822542913447, + 5.9923304839106, 3.219967401e-09, .03314171112698, .0654372683645, + 745, 1.9631533327653, 0, .04221709210309, + .00891969338965, 4.7330205488974, 2.647391010e-06, .02470636629795, + .05972781790823, 745, 1.9631533327653, 0, + -.10179345001799, .03447336568476, -2.9528143828148, .00324794122176, + -.16946995275367, -.03411694728232, 745, 1.9631533327653, + 0, .12611094946923, .03119614930755, 4.0425165370872, + .00005838098525, .06486812498666, .18735377395179, 745, + 1.9631533327653, 0, -.05961710621535, .05577581734252, + -1.0688701493919, .28547438462206, -.16911358791902, .04987937548832, + 745, 1.9631533327653, 0, .04867955999401, + .05246796245209, .92779589141575, .35381393703187, -.05432309535722, + .15168221534524, 745, 1.9631533327653, 0, + .15281763322545, .0520109232025, 2.9381834394759, .00340336072573, + .05071221600025, .25492305045064, 745, 1.9631533327653, + 0, .17443605148569, .06027671044146, 2.8939212211172, + .00391575116799, .0561036264944, .29276847647697, 745, + 1.9631533327653, 0, .09166596656323, .05461435829744, + 1.678422477547, .09368402236573, -.01555039294523, .19888232607168, + 745, 1.9631533327653, 0, .09323976497853, + .05767865351978, 1.6165385162217, .10640126701552, -.01999227590824, + .20647180586531, 745, 1.9631533327653, 0, + 4.0335098946211, .31816162176165, 12.677550083784, 1.723599587e-33, + 3.4089098465017, 4.6581099427405, 745, 1.9631533327653, + 0]).reshape(13,9) + +params_table_colnames = 'b se t pvalue ll ul df crit eform'.split() + +params_table_rownames = 's iq expr tenure rns smsa dyear_67 dyear_68 dyear_69 dyear_70 dyear_71 dyear_73 _cons'.split() + +cov = np.array([ + .0004375724429, -.00007803749118, .00003449544203, .0000198149417, + -.00014459096961, .00002019058603, .00001336734613, -.00010913386703, + -.00009506780295, .00003349014856, -.00026522208782, -.00059037802467, + .0023409013939, -.00007803749118, .00002251757955, 4.465336774e-06, + -8.927380145e-06, .00005957879915, -.00001655549147, -.00001195619881, + .00001472288594, -.00001658590268, -.00007381330893, -.00002252874265, + .00001745462689, -.00128162250166, .00003449544203, 4.465336774e-06, + .00006765768445, -.00001589245933, .00003399284419, -6.395965046e-06, + .0000435948215, .00006649766331, .00002517829331, 2.389654105e-06, + -.00012997216713, -.00014131961558, -.00098746812283, .0000198149417, + -8.927380145e-06, -.00001589245933, .00007956093017, -.00001685000965, + -1.479558927e-06, .00006527491612, .00006702237252, .00007894974705, + .00006873053302, .00006140852014, .00008063861583, .00049768627977, + -.00014459096961, .00005957879915, .00003399284419, -.00001685000965, + .00118841294164, .00010083007806, .00010873982024, .00009325616707, + -.00004877888958, -.00018456360114, -.00014147359908, -.00017236995151, + -.00461299505884, .00002019058603, -.00001655549147, -6.395965046e-06, + -1.479558927e-06, .00010083007806, .00097319973162, 2.333629833e-06, + -4.248036020e-06, .00008163368686, .00002820282959, .00011655528757, + 7.760937245e-06, .00072275206747, .00001336734613, -.00001195619881, + .0000435948215, .00006527491612, .00010873982024, 2.333629833e-06, + .00311094180023, .00084251830998, .00085523021811, .00088395985737, + .00073955611238, .00081093327517, .00006074095578, -.00010913386703, + .00001472288594, .00006649766331, .00006702237252, .00009325616707, + -4.248036020e-06, .00084251830998, .00275288708387, .00091570803079, + .00088036592189, .00076528306455, .00094679625072, -.00115054519119, + -.00009506780295, -.00001658590268, .00002517829331, .00007894974705, + -.00004877888958, .00008163368686, .00085523021811, .00091570803079, + .00270513613238, .00108631323884, .00099102785739, .001210360841, + .00183013017674, .00003349014856, -.00007381330893, 2.389654105e-06, + .00006873053302, -.00018456360114, .00002820282959, .00088395985737, + .00088036592189, .00108631323884, .00363328182164, .00117418056612, + .00137311157915, .0060943003149, -.00026522208782, -.00002252874265, + -.00012997216713, .00006140852014, -.00014147359908, .00011655528757, + .00073955611238, .00076528306455, .00099102785739, .00117418056612, + .00298272813224, .00174532225739, .0048868116328, -.00059037802467, + .00001745462689, -.00014131961558, .00008063861583, -.00017236995151, + 7.760937245e-06, .00081093327517, .00094679625072, .001210360841, + .00137311157915, .00174532225739, .00332682707186, .00491674011099, + .0023409013939, -.00128162250166, -.00098746812283, .00049768627977, + -.00461299505884, .00072275206747, .00006074095578, -.00115054519119, + .00183013017674, .0060943003149, .0048868116328, .00491674011099, + .101226817562]).reshape(13,13) + +cov_colnames = 's iq expr tenure rns smsa dyear_67 dyear_68 dyear_69 dyear_70 dyear_71 dyear_73 _cons'.split() + +cov_rownames = 's iq expr tenure rns smsa dyear_67 dyear_68 dyear_69 dyear_70 dyear_71 dyear_73 _cons'.split() + +class Bunch(dict): + def __init__(self, **kw): + dict.__init__(self, kw) + self.__dict__ = self + + for i,att in enumerate(['params', 'bse', 'tvalues', 'pvalues']): + self[att] = self.params_table[:,i] + +# not autogenerated +# calculated with `ivendog` after ivreg2 +hausman = dict( + df_r = 743, + df = 2, + WHFp = 1.47099195224e-16, + WHF = 38.30408858936179, + DWHp = 4.12270104038e-16, + DWH = 70.84970589405181 + ) + +results_small = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + hausman = hausman, + **est + ) + + + +import numpy as np + +est = dict( + N = 758, + inexog_ct = 10, + exexog_ct = 4, + endog_ct = 2, + partial_ct = 0, + df_r = 745, + df_m = 12, + sdofminus = 0, + dofminus = 0, + r2 = .2279825291623523, + rmse = .3799175840045295, + rss = 107.5313411236999, + mss = 31.75480871825532, + r2_a = .2155473484240278, + F = 40.08955571761724, + Fp = 1.50331141073e-72, + Fdf1 = 12, + Fdf2 = 745, + yy = 24652.2466174172, + yyc = 139.2861498419552, + partialcons = 0, + cons = 1, + cdf = 12.55161416131593, + widstat = 11.46142788662503, + cd = .0675726199801665, + idp = 6.77658650925e-09, + iddf = 3, + idstat = 40.92698219921901, + jp = .0030253131145893, + jdf = 2, + j = 11.60148136780177, + ll = -335.4059158173529, + rankV = 13, + rankS = 15, + rankxx = 13, + rankzz = 15, + r2c = .2279825291623523, + r2u = .9956380713371686, + hacsubtitleV = "Statistics robust to heteroskedasticity", + hacsubtitleB = "Estimates efficient for homoskedasticity only", + title = "IV (2SLS) estimation", + predict = "ivreg2_p", + version = "02.2.08", + cmdline = "ivreg2 lw expr tenure rns smsa dyear* (s iq = med kww age mrt), small robust", + cmd = "ivreg2", + model = "iv", + depvar = "lw", + vcetype = "Robust", + partialsmall = "small", + small = "small", + exexog = "med kww age mrt", + inexog = "expr tenure rns smsa dyear_67 dyear_68 dyear_69 dyear_70 dyear_71 dyear_73", + insts = "med kww age mrt expr tenure rns smsa dyear_67 dyear_68 dyear_69 dyear_70 dyear_71 dyear_73", + instd = "s iq", + properties = "b V", + ) + +params_table = np.array([ + .17242531190423, .02091963554158, 8.2422713130704, 7.602390656e-16, + .13135685967055, .21349376413792, 745, 1.9631533327653, + 0, -.00909883103476, .00492868646034, -1.8460965427549, + .06527471189517, -.01877459828554, .00057693621602, 745, + 1.9631533327653, 0, .04928948974574, .00811972711081, + 6.0703382112603, 2.032123371e-09, .03334922040701, .06522975908447, + 745, 1.9631533327653, 0, .04221709210309, + .0095458460509, 4.4225615915015, .00001120706314, .0234771326142, + .06095705159197, 745, 1.9631533327653, 0, + -.10179345001799, .0340033743578, -2.9936278954812, .00284801771574, + -.16854728771377, -.03503961232222, 745, 1.9631533327653, + 0, .12611094946923, .03107904208149, 4.057748920915, + .00005477891606, .0650980244278, .18712387451065, 745, + 1.9631533327653, 0, -.05961710621535, .05216296564028, + -1.1429010119263, .25344683532742, -.16202100605898, .04278679362828, + 745, 1.9631533327653, 0, .04867955999401, + .05024595634484, .96882542467533, .33294671206223, -.04996095666234, + .14732007665036, 745, 1.9631533327653, 0, + .15281763322545, .04834485710231, 3.1609904834768, .00163599246861, + .05790926588299, .24772600056791, 745, 1.9631533327653, + 0, .17443605148569, .06165614610562, 2.8291753945643, + .00479228267652, .05339558277297, .2954765201984, 745, + 1.9631533327653, 0, .09166596656323, .05594360469515, + 1.638542368922, .10173082236229, -.01815990744096, .20149184056742, + 745, 1.9631533327653, 0, .09323976497853, + .06137760691084, 1.5191169820938, .12915730016675, -.02725388858564, + .21373341854271, 745, 1.9631533327653, 0, + 4.0335098946211, .33794335658841, 11.935461419748, 3.577808889e-30, + 3.3700752678487, 4.6969445213936, 745, 1.9631533327653, + 0]).reshape(13,9) + +params_table_colnames = 'b se t pvalue ll ul df crit eform'.split() + +params_table_rownames = 's iq expr tenure rns smsa dyear_67 dyear_68 dyear_69 dyear_70 dyear_71 dyear_73 _cons'.split() + +cov = np.array([ + .00043763115119, -.00007958438537, .00002863778986, .00001496321982, + -.00018453787082, -8.550864865e-06, -.0001185286492, -.00019431868638, + -.00012891699672, -.00008824260285, -.00031897080643, -.0006359997119, + .00263218578127, -.00007958438537, .00002429195022, 4.997376715e-06, + -.00001117849889, .00006733963701, -.00002196338101, 8.249019125e-07, + .00003312119623, -.0000218044746, -.00006079620995, -.00001426851928, + .00001410067206, -.00145119299411, .00002863778986, 4.997376715e-06, + .00006592996835, -.00002012308078, .00005199457086, -.00003289221373, + .00003620055764, .00008731531776, .00003013530738, .00001504503258, + -.00008879845405, -.00013220917123, -.00095762480745, .00001496321982, + -.00001117849889, -.00002012308078, .00009112317683, -.000038508438, + 7.182733576e-06, .00008294199433, .00006458818434, .00011041870299, + .00009792126329, .00011012658665, .00009292324197, .00076092104218, + -.00018453787082, .00006733963701, .00005199457086, -.000038508438, + .00115622946772, .00013545834604, .00019371742478, .000203588175, + 7.317274626e-06, .00002369735603, -.00005176761775, .00009245129039, + -.00504399373059, -8.550864865e-06, -.00002196338101, -.00003289221373, + 7.182733576e-06, .00013545834604, .0009659068567, .00006303558567, + .00012016301635, .00025950456399, .00011274488624, .00030660513471, + .00031212041314, .00158010341555, -.0001185286492, 8.249019125e-07, + .00003620055764, .00008294199433, .00019371742478, .00006303558567, + .00272097498439, .0008763833685, .000936230107, .00097234969671, + .0009024844391, .00104679250917, .00032228914613, -.00019431868638, + .00003312119623, .00008731531776, .00006458818434, .000203588175, + .00012016301635, .0008763833685, .00252465612901, .00094650107881, + .0008930540954, .00082494813305, .00095933828863, -.00210700630956, + -.00012891699672, -.0000218044746, .00003013530738, .00011041870299, + 7.317274626e-06, .00025950456399, .000936230107, .00094650107881, + .00233722520824, .0011975566966, .00111394872039, .00131507937389, + .00254447447521, -.00008824260285, -.00006079620995, .00001504503258, + .00009792126329, .00002369735603, .00011274488624, .00097234969671, + .0008930540954, .0011975566966, .0038014803526, .00125650121313, + .00157186205549, .00611293275102, -.00031897080643, -.00001426851928, + -.00008879845405, .00011012658665, -.00005176761775, .00030660513471, + .0009024844391, .00082494813305, .00111394872039, .00125650121313, + .00312968690629, .00184349552167, .0043840308983, -.0006359997119, + .00001410067206, -.00013220917123, .00009292324197, .00009245129039, + .00031212041314, .00104679250917, .00095933828863, .00131507937389, + .00157186205549, .00184349552167, .0037672106301, .00544245897816, + .00263218578127, -.00145119299411, -.00095762480745, .00076092104218, + -.00504399373059, .00158010341555, .00032228914613, -.00210700630956, + .00254447447521, .00611293275102, .0043840308983, .00544245897816, + .11420571226224]).reshape(13,13) + +cov_colnames = 's iq expr tenure rns smsa dyear_67 dyear_68 dyear_69 dyear_70 dyear_71 dyear_73 _cons'.split() + +cov_rownames = 's iq expr tenure rns smsa dyear_67 dyear_68 dyear_69 dyear_70 dyear_71 dyear_73 _cons'.split() + +class Bunch(dict): + def __init__(self, **kw): + dict.__init__(self, kw) + self.__dict__ = self + + for i,att in enumerate(['params', 'bse', 'tvalues', 'pvalues']): + self[att] = self.params_table[:,i] + + +results_small_robust = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) + +import numpy as np + +est = dict( + N = 758, + inexog_ct = 10, + exexog_ct = 4, + endog_ct = 2, + partial_ct = 0, + df_m = 12, + sdofminus = 0, + dofminus = 0, + r2 = .2168305947462866, + rmse = .3793562300139549, + rss = 109.0846511318037, + mss = 30.20149871015154, + r2_a = .2042157855341463, + F = 41.97598961240392, + Fp = 1.89290505854e-75, + Fdf1 = 12, + Fdf2 = 745, + yy = 24652.2466174172, + yyc = 139.2861498419552, + r2u = .995575062475047, + partialcons = 0, + cons = 1, + cdf = 12.55161416131593, + widstat = 11.46142788662503, + cd = .0675726199801665, + idp = 6.77658650925e-09, + iddf = 3, + idstat = 40.92698219921901, + jp = .0030253131145893, + jdf = 2, + j = 11.60148136780177, + ll = -340.8414755627023, + rankV = 13, + rankS = 15, + rankxx = 13, + rankzz = 15, + r2c = .2168305947462866, + hacsubtitleV = "Statistics robust to heteroskedasticity", + hacsubtitleB = "Estimates efficient for arbitrary heteroskedasticity", + title = "2-Step GMM estimation", + predict = "ivreg2_p", + version = "02.2.08", + cmdline = "ivreg2 lw expr tenure rns smsa dyear* (s iq = med kww age mrt), gmm2s robust", + cmd = "ivreg2", + model = "gmm2s", + depvar = "lw", + vcetype = "Robust", + partialsmall = "small", + exexog = "med kww age mrt", + inexog = "expr tenure rns smsa dyear_67 dyear_68 dyear_69 dyear_70 dyear_71 dyear_73", + insts = "med kww age mrt expr tenure rns smsa dyear_67 dyear_68 dyear_69 dyear_70 dyear_71 dyear_73", + instd = "s iq", + properties = "b V", + ) + +params_table = np.array([ + .17579576800916, .02067662557145, 8.5021498020418, 1.861114268e-17, + .13527032656731, .21632120945101, np.nan, 1.9599639845401, + 0, -.00928615655484, .00488241935929, -1.9019579989933, + .05717664576009, -.01885552265647, .00028320954679, np.nan, + 1.9599639845401, 0, .0502827590727, .00804384217519, + 6.251087226427, 4.076051363e-10, .03451711811201, .06604840003339, + np.nan, 1.9599639845401, 0, .04252138311207, + .00945488880069, 4.4972906618407, 6.882486994e-06, .0239901415849, + .06105262463925, np.nan, 1.9599639845401, 0, + -.10409306761385, .03352385821237, -3.105044382255, .00190250475151, + -.16979862233293, -.03838751289477, np.nan, 1.9599639845401, + 0, .12475123235604, .03077474836143, 4.0536881371349, + .00005041641801, .06443383393436, .18506863077773, np.nan, + 1.9599639845401, 0, -.05304317352459, .05146091261443, + -1.0307468490116, .30265954893659, -.15390470886044, .04781836181126, + np.nan, 1.9599639845401, 0, .04595459037414, + .04957352345681, .92699867126001, .35392722417214, -.05120773018796, + .14311691093625, np.nan, 1.9599639845401, 0, + .15548006234452, .04763105506, 3.264258206094, .00109751095685, + .06212490988128, .24883521480777, np.nan, 1.9599639845401, + 0, .16698745539298, .06100058345996, 2.7374730850337, + .00619131861175, .04742850877554, .28654640201043, np.nan, + 1.9599639845401, 0, .08464846645323, .05540348923564, + 1.5278544297672, .12654868468826, -.02394037706648, .19323730997294, + np.nan, 1.9599639845401, 0, .09960684400937, + .06070338085689, 1.6408780302402, .10082273637942, -.01936959620995, + .2185832842287, np.nan, 1.9599639845401, 0, + 4.0039243729942, .33484233500232, 11.957640819123, 5.922056626e-33, + 3.3476454558904, 4.6602032900981, np.nan, 1.9599639845401, + 0]).reshape(13,9) + +params_table_colnames = 'b se z pvalue ll ul df crit eform'.split() + +params_table_rownames = 's iq expr tenure rns smsa dyear_67 dyear_68 dyear_69 dyear_70 dyear_71 dyear_73 _cons'.split() + +cov = np.array([ + .00042752284502, -.00007792910934, .00002799053689, .00001411255161, + -.00017627354771, -6.164167361e-06, -.00011238067476, -.0001840592946, + -.00012075971225, -.00008045016526, -.00030956302647, -.00062213915849, + .0025864317125, -.00007792910934, .0000238380188, 4.908457545e-06, + -.0000109083863, .00006550360735, -.00002187678826, 4.129956698e-08, + .00003161755605, -.00002236410253, -.00006047183643, -.0000144130349, + .00001326368633, -.00142544425011, .00002799053689, 4.908457545e-06, + .00006470339694, -.00001976276105, .00005093819277, -.0000323622135, + .00003452531659, .00008555059005, .0000288422901, .00001508898973, + -.00008682961428, -.00013087868262, -.00093791708189, .00001411255161, + -.0000109083863, -.00001976276105, .00008939492223, -.00003640760589, + 7.669817608e-06, .00008322349071, .00006546263505, .00011054793547, + .00009771882719, .00010901321979, .0000926582973, .00074577978354, + -.00017627354771, .00006550360735, .00005093819277, -.00003640760589, + .00112384906944, .00012782990916, .0001752536517, .00018281146997, + -.00001062129812, .0000105829103, -.00005745271672, .00007901951626, + -.00493822443862, -6.164167361e-06, -.00002187678826, -.0000323622135, + 7.669817608e-06, .00012782990916, .00094708513671, .00005587818268, + .0001108109152, .00024772966236, .00010526192189, .00029836672951, + .0003020559345, .00155999842113, -.00011238067476, 4.129956698e-08, + .00003452531659, .00008322349071, .0001752536517, .00005587818268, + .00264822552711, .00084013008538, .00089372787896, .00094462335409, + .00088393735147, .00100740924129, .00036769011237, -.0001840592946, + .00003161755605, .00008555059005, .00006546263505, .00018281146997, + .0001108109152, .00084013008538, .00245753422792, .00090550111616, + .00086043845508, .00080197738555, .00092623266791, -.00204303139567, + -.00012075971225, -.00002236410253, .0000288422901, .00011054793547, + -.00001062129812, .00024772966236, .00089372787896, .00090550111616, + .00226871740613, .00116169566043, .00108859648529, .00127118636737, + .00254572878148, -.00008045016526, -.00006047183643, .00001508898973, + .00009771882719, .0000105829103, .00010526192189, .00094462335409, + .00086043845508, .00116169566043, .00372107118246, .00122563410541, + .00153681917159, .00601243235865, -.00030956302647, -.0000144130349, + -.00008682961428, .00010901321979, -.00005745271672, .00029836672951, + .00088393735147, .00080197738555, .00108859648529, .00122563410541, + .00306954661948, .00181011399651, .00430171295221, -.00062213915849, + .00001326368633, -.00013087868262, .0000926582973, .00007901951626, + .0003020559345, .00100740924129, .00092623266791, .00127118636737, + .00153681917159, .00181011399651, .00368490044746, .00539258837124, + .0025864317125, -.00142544425011, -.00093791708189, .00074577978354, + -.00493822443862, .00155999842113, .00036769011237, -.00204303139567, + .00254572878148, .00601243235865, .00430171295221, .00539258837124, + .11211938930981]).reshape(13,13) + +cov_colnames = 's iq expr tenure rns smsa dyear_67 dyear_68 dyear_69 dyear_70 dyear_71 dyear_73 _cons'.split() + +cov_rownames = 's iq expr tenure rns smsa dyear_67 dyear_68 dyear_69 dyear_70 dyear_71 dyear_73 _cons'.split() + +class Bunch(dict): + def __init__(self, **kw): + dict.__init__(self, kw) + self.__dict__ = self + + for i,att in enumerate(['params', 'bse', 'tvalues', 'pvalues']): + self[att] = self.params_table[:,i] + + +results_gmm2s_robust = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + **est + ) diff --git a/statsmodels/sandbox/regression/tests/test_gmm.py b/statsmodels/sandbox/regression/tests/test_gmm.py new file mode 100644 index 0000000..e58006d --- /dev/null +++ b/statsmodels/sandbox/regression/tests/test_gmm.py @@ -0,0 +1,743 @@ +# -*- coding: utf-8 -*- +""" + +Created on Fri Oct 04 13:19:01 2013 + +Author: Josef Perktold +""" +from __future__ import print_function +from statsmodels.compat.python import lrange, lmap + +import numpy as np +from numpy.testing import assert_allclose, assert_almost_equal, assert_equal +import pandas as pd + +from statsmodels import iolib +from statsmodels.tools.tools import add_constant +from statsmodels.regression.linear_model import OLS +import statsmodels.sandbox.regression.gmm as gmm + + +def get_griliches76_data(): + import os + curdir = os.path.split(__file__)[0] + path = os.path.join(curdir, 'griliches76.dta') + griliches76_data = iolib.genfromdta(path, missing_flt=np.NaN, pandas=True) + + # create year dummies + years = griliches76_data['year'].unique() + N = griliches76_data.shape[0] + + for yr in years: + griliches76_data['D_%i' %yr] = np.zeros(N) + for i in range(N): + if griliches76_data.ix[i, 'year'] == yr: + griliches76_data.ix[i, 'D_%i' %yr] = 1 + else: + pass + + griliches76_data['const'] = 1 + + X = add_constant(griliches76_data[['s', 'iq', 'expr', 'tenure', 'rns', + 'smsa', 'D_67', 'D_68', 'D_69', 'D_70', + 'D_71', 'D_73']], + prepend=True) # for R comparison + #prepend=False) # for Stata comparison + + Z = add_constant(griliches76_data[['expr', 'tenure', 'rns', 'smsa', \ + 'D_67', 'D_68', 'D_69', 'D_70', 'D_71', + 'D_73', 'med', 'kww', 'age', 'mrt']]) + Y = griliches76_data['lw'] + + return Y, X, Z + +# use module global to load only once +yg_df, xg_df, zg_df = get_griliches76_data() + +endog = np.asarray(yg_df, dtype=float) # TODO: why is yg_df float32 +exog, instrument = lmap(np.asarray, [xg_df, zg_df]) + +assert exog.dtype == np.float64 +assert instrument.dtype == np.float64 + + +# from R +#----------------- +varnames = np.array(["(Intercept)", "s", "iq", "expr", "tenure", "rns", "smsa", "D_67", "D_68", "D_69", "D_70", + "D_71", "D_73"]) +params = np.array([ 4.03350989, 0.17242531, -0.00909883, 0.04928949, 0.04221709, + -0.10179345, 0.12611095, -0.05961711, 0.04867956, 0.15281763, + 0.17443605, 0.09166597, 0.09323977]) +bse = np.array([ 0.31816162, 0.02091823, 0.00474527, 0.00822543, 0.00891969, + 0.03447337, 0.03119615, 0.05577582, 0.05246796, 0.05201092, + 0.06027671, 0.05461436, 0.05767865]) +tvalues = np.array([ 12.6775501, 8.2428242, -1.9174531, 5.9923305, 4.7330205, + -2.9528144, 4.0425165, -1.0688701, 0.9277959, 2.9381834, + 2.8939212, 1.6784225, 1.6165385]) +pvalues = np.array([ 1.72360000e-33, 7.57025400e-16, 5.55625000e-02, + 3.21996700e-09, 2.64739100e-06, 3.24794100e-03, + 5.83809900e-05, 2.85474400e-01, 3.53813900e-01, + 3.40336100e-03, 3.91575100e-03, 9.36840200e-02, + 1.06401300e-01]) + #----------------- + +def test_iv2sls_r(): + + mod = gmm.IV2SLS(endog, exog, instrument) + res = mod.fit() + + # print(res.params) + # print(res.params - params) + + n, k = exog.shape + + assert_allclose(res.params, params, rtol=1e-7, atol=1e-9) + # TODO: check df correction + #assert_allclose(res.bse * np.sqrt((n - k) / (n - k - 1.)), bse, + assert_allclose(res.bse, bse, rtol=0, atol=3e-7) + + + +def test_ivgmm0_r(): + n, k = exog.shape + nobs, k_instr = instrument.shape + + w0inv = np.dot(instrument.T, instrument) / nobs + w0 = np.linalg.inv(w0inv) + + mod = gmm.IVGMM(endog, exog, instrument) + res = mod.fit(np.ones(exog.shape[1], float), maxiter=0, inv_weights=w0inv, + optim_method='bfgs', + optim_args={'gtol':1e-8, 'disp': 0}) + + + assert_allclose(res.params, params, rtol=1e-4, atol=1e-4) + # TODO : res.bse and bse are not the same, rtol=0.09 is large in this case + #res.bse is still robust?, bse is not a sandwich ? + assert_allclose(res.bse, bse, rtol=0.09, atol=0) + + score = res.model.score(res.params, w0) + assert_allclose(score, np.zeros(score.shape), rtol=0, atol=5e-6) # atol=1e-8) ?? + + +def test_ivgmm1_stata(): + + # copied constant to the beginning + params_stata = np.array( + [ 4.0335099 , 0.17242531, -0.00909883, 0.04928949, 0.04221709, + -0.10179345, 0.12611095, -0.05961711, 0.04867956, 0.15281763, + 0.17443605, 0.09166597, 0.09323976]) + + # robust bse with gmm onestep + bse_stata = np.array( + [ 0.33503289, 0.02073947, 0.00488624, 0.0080498 , 0.00946363, + 0.03371053, 0.03081138, 0.05171372, 0.04981322, 0.0479285 , + 0.06112515, 0.0554618 , 0.06084901]) + + n, k = exog.shape + nobs, k_instr = instrument.shape + + w0inv = np.dot(instrument.T, instrument) / nobs + w0 = np.linalg.inv(w0inv) + start = OLS(endog, exog).fit().params + + mod = gmm.IVGMM(endog, exog, instrument) + res = mod.fit(start, maxiter=1, inv_weights=w0inv, optim_method='bfgs', optim_args={'gtol':1e-6, 'disp': 0}) + + +# move constant to end for Stata +idx = lrange(len(params)) +idx = idx[1:] + idx[:1] +exog_st = exog[:, idx] + + +class TestGMMOLS(object): + + @classmethod + def setup_class(self): + exog = exog_st # with const at end + res_ols = OLS(endog, exog).fit() + + # use exog as instrument + nobs, k_instr = exog.shape + w0inv = np.dot(exog.T, exog) / nobs + #w0 = np.linalg.inv(w0inv) + + mod = gmm.IVGMM(endog, exog, exog) + res = mod.fit(np.ones(exog.shape[1], float), maxiter=0, inv_weights=w0inv, + optim_method='bfgs', optim_args={'gtol':1e-6, 'disp': 0}) + + self.res1 = res + self.res2 = res_ols + + + def test_basic(self): + res1, res2 = self.res1, self.res2 + # test both absolute and relative difference + assert_allclose(res1.params, res2.params, rtol=5e-4, atol=0) + assert_allclose(res1.params, res2.params, rtol=0, atol=1e-5) + + n = res1.model.exog.shape[0] + dffac = 1#np.sqrt((n - 1.) / n) # currently different df in cov calculation + assert_allclose(res1.bse * dffac, res2.HC0_se, rtol=5e-6, atol=0) + assert_allclose(res1.bse * dffac, res2.HC0_se, rtol=0, atol=1e-7) + + + def test_other(self): + res1, res2 = self.res1, self.res2 + + + + +class CheckGMM(object): + + params_tol = [5e-6, 5e-6] + bse_tol = [5e-7, 5e-7] + + def test_basic(self): + res1, res2 = self.res1, self.res2 + # test both absolute and relative difference + rtol, atol = self.params_tol + assert_allclose(res1.params, res2.params, rtol=rtol, atol=0) + assert_allclose(res1.params, res2.params, rtol=0, atol=atol) + + n = res1.model.exog.shape[0] + dffac = 1 #np.sqrt((n - 1.) / n) # currently different df in cov calculation + rtol, atol = self.bse_tol + assert_allclose(res1.bse * dffac, res2.bse, rtol=rtol, atol=0) + assert_allclose(res1.bse * dffac, res2.bse, rtol=0, atol=atol) + + #skip temporarily + def _est_other(self): + res1, res2 = self.res1, self.res2 + assert_allclose(res1.q, res2.Q, rtol=5e-6, atol=0) + assert_allclose(res1.jval, res2.J, rtol=5e-5, atol=0) + + + def test_hypothesis(self): + res1, res2 = self.res1, self.res2 + restriction = np.eye(len(res1.params)) + res_t = res1.t_test(restriction) + assert_allclose(res_t.tvalue, res1.tvalues, rtol=1e-12, atol=0) + assert_allclose(res_t.pvalue, res1.pvalues, rtol=1e-12, atol=0) + rtol, atol = self.bse_tol + assert_allclose(res_t.tvalue, res2.tvalues, rtol=rtol*10, atol=atol) + assert_allclose(res_t.pvalue, res2.pvalues, rtol=rtol*10, atol=atol) + + res_f = res1.f_test(restriction[:-1]) # without constant + # comparison with fvalue is not possible, those are not defined + # assert_allclose(res_f.fvalue, res1.fvalue, rtol=1e-12, atol=0) + # assert_allclose(res_f.pvalue, res1.f_pvalue, rtol=1e-12, atol=0) + # assert_allclose(res_f.fvalue, res2.F, rtol=1e-10, atol=0) + # assert_allclose(res_f.pvalue, res2.Fp, rtol=1e-08, atol=0) + + # Smoke test for Wald + res_wald = res1.wald_test(restriction[:-1]) + + +class TestGMMSt1(CheckGMM): + + @classmethod + def setup_class(self): + #self.bse_tol = [5e-7, 5e-7] + # compare to Stata default options, iterative GMM + exog = exog_st # with const at end + start = OLS(endog, exog).fit().params + nobs, k_instr = instrument.shape + w0inv = np.dot(instrument.T, instrument) / nobs + #w0 = np.linalg.inv(w0inv) + + mod = gmm.IVGMM(endog, exog, instrument) + res10 = mod.fit(start, maxiter=10, inv_weights=w0inv, + optim_method='bfgs', optim_args={'gtol':1e-6, 'disp': 0}, + wargs={'centered':False}) + self.res1 = res10 + + from .results_gmm_griliches_iter import results + self.res2 = results + +class TestGMMStTwostep(CheckGMM): + #compares has_optimal_weights=True with Stata's has_optimal_weights=False + + @classmethod + def setup_class(self): + # compare to Stata default options, twostep GMM + self.params_tol = [5e-5, 5e-6] + self.bse_tol = [5e-6, 5e-7] + exog = exog_st # with const at end + start = OLS(endog, exog).fit().params + nobs, k_instr = instrument.shape + w0inv = np.dot(instrument.T, instrument) / nobs + #w0 = np.linalg.inv(w0inv) + + mod = gmm.IVGMM(endog, exog, instrument) + res10 = mod.fit(start, maxiter=2, inv_weights=w0inv, + optim_method='bfgs', optim_args={'gtol':1e-6, 'disp': 0}, + wargs={'centered':False}) + self.res1 = res10 + + from .results_gmm_griliches import results_twostep as results + self.res2 = results + + +class TestGMMStTwostepNO(CheckGMM): + #with Stata default `has_optimal_weights=False` + + @classmethod + def setup_class(self): + # compare to Stata default options, twostep GMM + self.params_tol = [5e-5, 5e-6] + self.bse_tol = [1e-6, 5e-5] + exog = exog_st # with const at end + start = OLS(endog, exog).fit().params + nobs, k_instr = instrument.shape + w0inv = np.dot(instrument.T, instrument) / nobs + #w0 = np.linalg.inv(w0inv) + + mod = gmm.IVGMM(endog, exog, instrument) + res10 = mod.fit(start, maxiter=2, inv_weights=w0inv, + optim_method='bfgs', optim_args={'gtol':1e-6, 'disp': 0}, + wargs={'centered':False}, has_optimal_weights=False) + self.res1 = res10 + + from .results_gmm_griliches import results_twostep as results + self.res2 = results + + +class TestGMMStOnestep(CheckGMM): + + @classmethod + def setup_class(self): + # compare to Stata default options, onestep GMM + self.params_tol = [5e-4, 5e-5] + self.bse_tol = [7e-3, 5e-4] + exog = exog_st # with const at end + start = OLS(endog, exog).fit().params + nobs, k_instr = instrument.shape + w0inv = np.dot(instrument.T, instrument) / nobs + #w0 = np.linalg.inv(w0inv) + + mod = gmm.IVGMM(endog, exog, instrument) + res = mod.fit(start, maxiter=0, inv_weights=w0inv, + optim_method='bfgs', + optim_args={'gtol':1e-6, 'disp': 0}) + self.res1 = res + + from .results_gmm_griliches import results_onestep as results + self.res2 = results + + def test_bse_other(self): + res1, res2 = self.res1, self.res2 + # try other versions for bse, + # TODO: next two produce the same as before (looks like) + bse = np.sqrt(np.diag((res1._cov_params(has_optimal_weights=False)))) + #weights=res1.weights)))) + # TODO: doesn't look different + #assert_allclose(res1.bse, res2.bse, rtol=5e-06, atol=0) + #nobs = instrument.shape[0] + #w0inv = np.dot(instrument.T, instrument) / nobs + q = self.res1.model.gmmobjective(self.res1.params, np.linalg.inv(self.res1.weights)) + #assert_allclose(q, res2.Q, rtol=5e-6, atol=0) + +class TestGMMStOnestepNO(CheckGMM): + # matches Stats's defaults wargs={'centered':False}, has_optimal_weights=False + + @classmethod + def setup_class(self): + # compare to Stata default options, onestep GMM + self.params_tol = [1e-5, 1e-6] + self.bse_tol = [5e-6, 5e-7] + exog = exog_st # with const at end + start = OLS(endog, exog).fit().params + nobs, k_instr = instrument.shape + w0inv = np.dot(instrument.T, instrument) / nobs + #w0 = np.linalg.inv(w0inv) + + mod = gmm.IVGMM(endog, exog, instrument) + res = mod.fit(start, maxiter=0, inv_weights=w0inv, + optim_method='bfgs', optim_args={'gtol':1e-6, 'disp': 0}, + wargs={'centered':False}, has_optimal_weights=False) + self.res1 = res + + from .results_gmm_griliches import results_onestep as results + self.res2 = results + +class TestGMMStOneiter(CheckGMM): + + @classmethod + def setup_class(self): + # compare to Stata default options, onestep GMM + # this uses maxiter=1, one iteration in loop + self.params_tol = [5e-4, 5e-5] + self.bse_tol = [7e-3, 5e-4] + exog = exog_st # with const at end + start = OLS(endog, exog).fit().params + nobs, k_instr = instrument.shape + w0inv = np.dot(instrument.T, instrument) / nobs + #w0 = np.linalg.inv(w0inv) + + mod = gmm.IVGMM(endog, exog, instrument) + res = mod.fit(start, maxiter=1, inv_weights=w0inv, + optim_method='bfgs', optim_args={'gtol':1e-6, 'disp': 0}) + self.res1 = res + + from .results_gmm_griliches import results_onestep as results + self.res2 = results + + + def test_bse_other(self): + res1, res2 = self.res1, self.res2 + + moms = res1.model.momcond(res1.params) + w = res1.model.calc_weightmatrix(moms) + # try other versions for bse, + # TODO: next two produce the same as before (looks like) + bse = np.sqrt(np.diag((res1._cov_params(has_optimal_weights=False, + weights=res1.weights)))) + # TODO: doesn't look different + #assert_allclose(res1.bse, res2.bse, rtol=5e-06, atol=0) + bse = np.sqrt(np.diag((res1._cov_params(has_optimal_weights=False, + #use_weights=True #weights=w + )))) + #assert_allclose(res1.bse, res2.bse, rtol=5e-06, atol=0) + + #This doesn't replicate Stata oneway either + nobs = instrument.shape[0] + w0inv = np.dot(instrument.T, instrument) / nobs + q = self.res1.model.gmmobjective(self.res1.params, w)#self.res1.weights) + #assert_allclose(q, res2.Q, rtol=5e-6, atol=0) + + +class TestGMMStOneiterNO(CheckGMM): + + @classmethod + def setup_class(self): + # compare to Stata default options, onestep GMM + # this uses maxiter=1, one iteration in loop + self.params_tol = [1e-5, 1e-6] + self.bse_tol = [5e-6, 5e-7] + exog = exog_st # with const at end + start = OLS(endog, exog).fit().params + nobs, k_instr = instrument.shape + w0inv = np.dot(instrument.T, instrument) / nobs + #w0 = np.linalg.inv(w0inv) + + mod = gmm.IVGMM(endog, exog, instrument) + res = mod.fit(start, maxiter=1, inv_weights=w0inv, + optim_method='bfgs', optim_args={'gtol':1e-6, 'disp': 0}, + wargs={'centered':False}, has_optimal_weights=False) + self.res1 = res + + from .results_gmm_griliches import results_onestep as results + self.res2 = results + + +#------------ Crosscheck subclasses + +class TestGMMStOneiterNO_Linear(CheckGMM): + + @classmethod + def setup_class(self): + # compare to Stata default options, onestep GMM + # this uses maxiter=1, one iteration in loop + self.params_tol = [5e-9, 1e-9] + self.bse_tol = [5e-10, 1e-10] + exog = exog_st # with const at end + start = OLS(endog, exog).fit().params + nobs, k_instr = instrument.shape + w0inv = np.dot(instrument.T, instrument) / nobs + #w0 = np.linalg.inv(w0inv) + + mod = gmm.LinearIVGMM(endog, exog, instrument) + res = mod.fit(start, maxiter=1, inv_weights=w0inv, + optim_method='bfgs', optim_args={'gtol':1e-8, 'disp': 0}, + wargs={'centered':False}, has_optimal_weights=False) + self.res1 = res + + mod = gmm.IVGMM(endog, exog, instrument) + res = mod.fit(start, maxiter=1, inv_weights=w0inv, + optim_method='bfgs', optim_args={'gtol':1e-6, 'disp': 0}, + wargs={'centered':False}, has_optimal_weights=False) + self.res3 = res + + from .results_gmm_griliches import results_onestep as results + self.res2 = results + + +class TestGMMStOneiterNO_Nonlinear(CheckGMM): + + @classmethod + def setup_class(self): + # compare to Stata default options, onestep GMM + # this uses maxiter=1, one iteration in loop + self.params_tol = [5e-5, 5e-6] + self.bse_tol = [5e-6, 1e-1] + exog = exog_st # with const at end + start = OLS(endog, exog).fit().params + nobs, k_instr = instrument.shape + w0inv = np.dot(instrument.T, instrument) / nobs + #w0 = np.linalg.inv(w0inv) + + def func(params, exog): + return np.dot(exog, params) + + mod = gmm.NonlinearIVGMM(endog, exog, instrument, func) + res = mod.fit(start, maxiter=1, inv_weights=w0inv, + optim_method='bfgs', optim_args={'gtol':1e-8, 'disp': 0}, + wargs={'centered':False}, has_optimal_weights=False) + self.res1 = res + + mod = gmm.IVGMM(endog, exog, instrument) + res = mod.fit(start, maxiter=1, inv_weights=w0inv, + optim_method='bfgs', optim_args={'gtol':1e-6, 'disp': 0}, + wargs={'centered':False}, has_optimal_weights=False) + self.res3 = res + + from .results_gmm_griliches import results_onestep as results + self.res2 = results + + + def test_score(self): + params = self.res1.params * 1.1 + weights = self.res1.weights + sc1 = self.res1.model.score(params, weights) + sc2 = super(self.res1.model.__class__, self.res1.model).score(params, + weights) + assert_allclose(sc1, sc2, rtol=1e-6, atol=0) + assert_allclose(sc1, sc2, rtol=0, atol=1e-7) + + # score at optimum + sc1 = self.res1.model.score(self.res1.params, weights) + assert_allclose(sc1, np.zeros(len(params)), rtol=0, atol=1e-8) + + + +class TestGMMStOneiterOLS_Linear(CheckGMM): + + @classmethod + def setup_class(self): + # replicating OLS by GMM - high agreement + self.params_tol = [1e-11, 1e-12] + self.bse_tol = [1e-12, 1e-12] + exog = exog_st # with const at end + res_ols = OLS(endog, exog).fit() + #Note: start is irrelevant but required + start = np.ones(len(res_ols.params)) + nobs, k_instr = instrument.shape + w0inv = np.dot(exog.T, exog) / nobs + #w0 = np.linalg.inv(w0inv) + + mod = gmm.LinearIVGMM(endog, exog, exog) + res = mod.fit(start, maxiter=0, inv_weights=w0inv, + #optim_method='bfgs', optim_args={'gtol':1e-6, 'disp': 0}, + optim_args={'disp': 0}, + weights_method='iid', + wargs={'centered':False, 'ddof':'k_params'}, + has_optimal_weights=True) + + # fix use of t distribution see #2495 comment + res.use_t = True + res.df_resid = res.nobs - len(res.params) + self.res1 = res + + #from .results_gmm_griliches import results_onestep as results + #self.res2 = results + self.res2 = res_ols + + +#------------------ + +class TestGMMSt2(object): + # this looks like an old version, trying out different comparisons + # of options with Stats + + @classmethod + def setup_class(self): + # compare to Stata default options, iterative GMM + exog = exog_st # with const at end + start = OLS(endog, exog).fit().params + nobs, k_instr = instrument.shape + w0inv = np.dot(instrument.T, instrument) / nobs + #w0 = np.linalg.inv(w0inv) + + mod = gmm.IVGMM(endog, exog, instrument) + res = mod.fit(start, maxiter=2, inv_weights=w0inv, + wargs={'ddof':0, 'centered':False}, + optim_method='bfgs', optim_args={'gtol':1e-6, 'disp': 0}) + self.res1 = res + + from .results_ivreg2_griliches import results_gmm2s_robust as results + self.res2 = results + + # TODO: remove after testing, compare bse from 1 iteration + # see test_basic + mod = gmm.IVGMM(endog, exog, instrument) + res = mod.fit(start, maxiter=1, inv_weights=w0inv, + wargs={'ddof':0, 'centered':False}, + optim_method='bfgs', optim_args={'gtol':1e-6, 'disp': 0}) + self.res3 = res + + + def test_basic(self): + res1, res2 = self.res1, self.res2 + # test both absolute and relative difference + assert_allclose(res1.params, res2.params, rtol=5e-05, atol=0) + assert_allclose(res1.params, res2.params, rtol=0, atol=5e-06) + + n = res1.model.exog.shape[0] + # TODO: check df correction np.sqrt(745./758 )*res1.bse matches better + dffact = np.sqrt(745. / 758 ) + assert_allclose(res1.bse * dffact, res2.bse, rtol=5e-03, atol=0) + assert_allclose(res1.bse * dffact, res2.bse, rtol=0, atol=5e-03) + + # try other versions for bse, + # TODO: next two produce the same as before (looks like) + bse = np.sqrt(np.diag((res1._cov_params(has_optimal_weights=True, + weights=res1.weights)))) + assert_allclose(res1.bse, res2.bse, rtol=5e-01, atol=0) + + bse = np.sqrt(np.diag((res1._cov_params(has_optimal_weights=True, + weights=res1.weights, + use_weights=True)))) + assert_allclose(res1.bse, res2.bse, rtol=5e-02, atol=0) + + # TODO: resolve this + # try bse from previous step, is closer to Stata + # guess: Stata ivreg2 doesn't calc for bse update after final iteration + # need better test case, bse difference is close to numerical optimization precision + assert_allclose(self.res3.bse, res2.bse, rtol=5e-05, atol=0) + assert_allclose(self.res3.bse, res2.bse, rtol=0, atol=5e-06) + + + + # TODO; tvalues are not available yet, no inheritance + #assert_allclose(res1.tvalues, res2.tvalues, rtol=5e-10, atol=0) + + + + +class CheckIV2SLS(object): + + def test_basic(self): + res1, res2 = self.res1, self.res2 + # test both absolute and relative difference + assert_allclose(res1.params, res2.params, rtol=1e-9, atol=0) + assert_allclose(res1.params, res2.params, rtol=0, atol=1e-10) + + n = res1.model.exog.shape[0] + assert_allclose(res1.bse, res2.bse, rtol=1e-10, atol=0) + assert_allclose(res1.bse, res2.bse, rtol=0, atol=1e-11) + + assert_allclose(res1.tvalues, res2.tvalues, rtol=5e-10, atol=0) + + + def test_other(self): + res1, res2 = self.res1, self.res2 + assert_allclose(res1.rsquared, res2.r2, rtol=1e-7, atol=0) + assert_allclose(res1.rsquared_adj, res2.r2_a, rtol=1e-7, atol=0) + + # TODO: why is fvalue different, IV2SLS uses inherited linear + assert_allclose(res1.fvalue, res2.F, rtol=1e-10, atol=0) + assert_allclose(res1.f_pvalue, res2.Fp, rtol=1e-8, atol=0) + assert_allclose(np.sqrt(res1.mse_resid), res2.rmse, rtol=1e-10, atol=0) + assert_allclose(res1.ssr, res2.rss, rtol=1e-10, atol=0) + assert_allclose(res1.uncentered_tss, res2.yy, rtol=1e-10, atol=0) + assert_allclose(res1.centered_tss, res2.yyc, rtol=1e-10, atol=0) + assert_allclose(res1.ess, res2.mss, rtol=1e-9, atol=0) + + assert_equal(res1.df_model, res2.df_m) + assert_equal(res1.df_resid, res2.df_r) + + # TODO: llf raise NotImplementedError + #assert_allclose(res1.llf, res2.ll, rtol=1e-10, atol=0) + + + def test_hypothesis(self): + res1, res2 = self.res1, self.res2 + restriction = np.eye(len(res1.params)) + res_t = res1.t_test(restriction) + assert_allclose(res_t.tvalue, res1.tvalues, rtol=1e-12, atol=0) + assert_allclose(res_t.pvalue, res1.pvalues, rtol=1e-12, atol=0) + res_f = res1.f_test(restriction[:-1]) # without constant + # TODO res1.fvalue problem, see issue #1104 + assert_allclose(res_f.fvalue, res1.fvalue, rtol=1e-12, atol=0) + assert_allclose(res_f.pvalue, res1.f_pvalue, rtol=1e-12, atol=0) + assert_allclose(res_f.fvalue, res2.F, rtol=1e-10, atol=0) + assert_allclose(res_f.pvalue, res2.Fp, rtol=1e-08, atol=0) + + + def test_hausman(self): + res1, res2 = self.res1, self.res2 + hausm = res1.spec_hausman() + # hausman uses se2 = ssr / nobs, no df correction + assert_allclose(hausm[0], res2.hausman['DWH'], rtol=1e-11, atol=0) + assert_allclose(hausm[1], res2.hausman['DWHp'], rtol=1e-10, atol=1e-25) + + def test_smoke(self): + res1 = self.res1 + res1.summary() + + + +class TestIV2SLSSt1(CheckIV2SLS): + + @classmethod + def setup_class(self): + exog = exog_st # with const at end + start = OLS(endog, exog).fit().params + nobs, k_instr = instrument.shape + + mod = gmm.IV2SLS(endog, exog, instrument) + res = mod.fit() + self.res1 = res + + from .results_ivreg2_griliches import results_small as results + self.res2 = results + + + # See GH #2720 + def test_input_dimensions(self): + rs = np.random.RandomState(1234) + x = rs.randn(200, 2) + z = rs.randn(200) + x[:, 0] = np.sqrt(0.5) * x[:, 0] + np.sqrt(0.5) * z + z = np.column_stack((x[:, [1]], z[:, None])) + e = np.sqrt(0.5) * rs.randn(200) + np.sqrt(0.5) * x[:, 0] + + y_1d = y = x[:, 0] + x[:, 1] + e + y_2d = y[:, None] + y_series = pd.Series(y) + y_df = pd.DataFrame(y_series) + x_1d = x[:, 0] + x_2d = x + x_df = pd.DataFrame(x) + x_df_single = x_df.iloc[:, [0]] + x_series = x_df.iloc[:, 0] + z_2d = z + z_series = pd.Series(z[:, 1]) + z_1d = z_series.values + z_df = pd.DataFrame(z) + + ys = (y_df, y_series, y_2d, y_1d) + xs = (x_2d, x_1d, x_df_single, x_df, x_series) + zs = (z_1d, z_2d, z_series, z_df) + res2 = gmm.IV2SLS(y_1d, x_2d, z_2d).fit() + res1 = gmm.IV2SLS(y_1d, x_1d, z_1d).fit() + res1_2sintr = gmm.IV2SLS(y_1d, x_1d, z_2d).fit() + + + for _y in ys: + for _x in xs: + for _z in zs: + x_1d = np.size(_x) == _x.shape[0] + z_1d = np.size(_z) == _z.shape[0] + if z_1d and not x_1d: + continue + res = gmm.IV2SLS(_y, _x, _z).fit() + if z_1d: + assert_allclose(res.params, res1.params) + elif x_1d and not z_1d: + assert_allclose(res.params, res1_2sintr.params) + else: + assert_allclose(res.params, res2.params) + diff --git a/statsmodels/sandbox/regression/tests/test_gmm_poisson.py b/statsmodels/sandbox/regression/tests/test_gmm_poisson.py new file mode 100644 index 0000000..637abc8 --- /dev/null +++ b/statsmodels/sandbox/regression/tests/test_gmm_poisson.py @@ -0,0 +1,409 @@ +''' + +TestGMMMultTwostepDefault() has lower precision + +''' + +from statsmodels.compat.python import lmap +import numpy as np +from numpy.testing.decorators import skipif +import pandas +import scipy +from scipy import stats + +from statsmodels.regression.linear_model import OLS +from statsmodels.sandbox.regression import gmm + +from numpy.testing import assert_allclose, assert_equal +from statsmodels.compat.scipy import NumpyVersion + + +def get_data(): + import os + curdir = os.path.split(__file__)[0] + dt = pandas.read_csv(os.path.join(curdir, 'racd10data_with_transformed.csv')) + + # Transformations compared to original data + ##dt3['income'] /= 10. + ##dt3['aget'] = (dt3['age'] - dt3['age'].min()) / 5. + ##dt3['aget2'] = dt3['aget']**2 + + # How do we do this with pandas + mask = ~((np.asarray(dt['private']) == 1) & (dt['medicaid'] == 1)) + mask = mask & (dt['docvis'] <= 70) + dt3 = dt[mask] + dt3['const'] = 1 # add constant + return dt3 + +DATA = get_data() + +#------------- moment conditions for example + +def moment_exponential_add(params, exog, exp=True): + + if not np.isfinite(params).all(): + print("invalid params", params) + + # moment condition without instrument + if exp: + predicted = np.exp(np.dot(exog, params)) + #if not np.isfinite(predicted).all(): + #print "invalid predicted", predicted + #raise RuntimeError('invalid predicted') + predicted = np.clip(predicted, 0, 1e100) # try to avoid inf + else: + predicted = np.dot(exog, params) + + return predicted + + +def moment_exponential_mult(params, data, exp=True): + # multiplicative error model + + endog = data[:,0] + exog = data[:,1:] + + if not np.isfinite(params).all(): + print("invalid params", params) + + # moment condition without instrument + if exp: + predicted = np.exp(np.dot(exog, params)) + predicted = np.clip(predicted, 0, 1e100) # avoid inf + resid = endog / predicted - 1 + if not np.isfinite(resid).all(): + print("invalid resid", resid) + + else: + resid = endog - np.dot(exog, params) + + return resid + +#------------------- test classes + +# copied from test_gmm.py, with changes +class CheckGMM(object): + + # default tolerance, overwritten by subclasses + params_tol = [5e-6, 5e-6] + bse_tol = [5e-7, 5e-7] + q_tol = [5e-6, 1e-9] + j_tol = [5e-5, 1e-9] + + def test_basic(self): + res1, res2 = self.res1, self.res2 + # test both absolute and relative difference + rtol, atol = self.params_tol + assert_allclose(res1.params, res2.params, rtol=rtol, atol=0) + assert_allclose(res1.params, res2.params, rtol=0, atol=atol) + + rtol, atol = self.bse_tol + assert_allclose(res1.bse, res2.bse, rtol=rtol, atol=0) + assert_allclose(res1.bse, res2.bse, rtol=0, atol=atol) + + def test_other(self): + res1, res2 = self.res1, self.res2 + rtol, atol = self.q_tol + assert_allclose(res1.q, res2.Q, rtol=atol, atol=rtol) + rtol, atol = self.j_tol + assert_allclose(res1.jval, res2.J, rtol=atol, atol=rtol) + + j, jpval, jdf = res1.jtest() + # j and jval should be the same + assert_allclose(res1.jval, res2.J, rtol=13, atol=13) + #pvalue is not saved in Stata results + pval = stats.chi2.sf(res2.J, res2.J_df) + #assert_allclose(jpval, pval, rtol=1e-4, atol=1e-6) + assert_allclose(jpval, pval, rtol=rtol, atol=atol) + assert_equal(jdf, res2.J_df) + + + def test_smoke(self): + res1 = self.res1 + res1.summary() + + +class TestGMMAddOnestep(CheckGMM): + + @classmethod + def setup_class(self): + XLISTEXOG2 = 'aget aget2 educyr actlim totchr'.split() + + endog_name = 'docvis' + exog_names = 'private medicaid'.split() + XLISTEXOG2 + ['const'] + instrument_names = 'income ssiratio'.split() + XLISTEXOG2 + ['const'] + + endog = DATA[endog_name] + exog = DATA[exog_names] + instrument = DATA[instrument_names] + + asarray = lambda x: np.asarray(x, float) + endog, exog, instrument = lmap(asarray, [endog, exog, instrument]) + + + self.bse_tol = [5e-6, 5e-7] + q_tol = [0.04, 0] + # compare to Stata default options, iterative GMM + # with const at end + start = OLS(np.log(endog+1), exog).fit().params + nobs, k_instr = instrument.shape + w0inv = np.dot(instrument.T, instrument) / nobs + + mod = gmm.NonlinearIVGMM(endog, exog, instrument, moment_exponential_add) + res0 = mod.fit(start, maxiter=0, inv_weights=w0inv, + optim_method='bfgs', optim_args={'gtol':1e-8, 'disp': 0}, + wargs={'centered':False}) + self.res1 = res0 + + from .results_gmm_poisson import results_addonestep as results + self.res2 = results + + +class TestGMMAddTwostep(CheckGMM): + + @classmethod + def setup_class(self): + XLISTEXOG2 = 'aget aget2 educyr actlim totchr'.split() + + endog_name = 'docvis' + exog_names = 'private medicaid'.split() + XLISTEXOG2 + ['const'] + instrument_names = 'income ssiratio'.split() + XLISTEXOG2 + ['const'] + + endog = DATA[endog_name] + exog = DATA[exog_names] + instrument = DATA[instrument_names] + + asarray = lambda x: np.asarray(x, float) + endog, exog, instrument = lmap(asarray, [endog, exog, instrument]) + + + self.bse_tol = [5e-6, 5e-7] + # compare to Stata default options, iterative GMM + # with const at end + start = OLS(np.log(endog+1), exog).fit().params + nobs, k_instr = instrument.shape + w0inv = np.dot(instrument.T, instrument) / nobs + + mod = gmm.NonlinearIVGMM(endog, exog, instrument, moment_exponential_add) + res0 = mod.fit(start, maxiter=2, inv_weights=w0inv, + optim_method='bfgs', optim_args={'gtol':1e-8, 'disp': 0}, + wargs={'centered':False}, has_optimal_weights=False) + self.res1 = res0 + + from .results_gmm_poisson import results_addtwostep as results + self.res2 = results + + +class TestGMMMultOnestep(CheckGMM): + #compares has_optimal_weights=True with Stata's has_optimal_weights=False + + @classmethod + def setup_class(self): + # compare to Stata default options, twostep GMM + XLISTEXOG2 = 'aget aget2 educyr actlim totchr'.split() + + endog_name = 'docvis' + exog_names = 'private medicaid'.split() + XLISTEXOG2 + ['const'] + instrument_names = 'income medicaid ssiratio'.split() + XLISTEXOG2 + ['const'] + + endog = DATA[endog_name] + exog = DATA[exog_names] + instrument = DATA[instrument_names] + + asarray = lambda x: np.asarray(x, float) + endog, exog, instrument = lmap(asarray, [endog, exog, instrument]) + + # Need to add all data into exog + endog_ = np.zeros(len(endog)) + exog_ = np.column_stack((endog, exog)) + + + self.bse_tol = [5e-6, 5e-7] + self.q_tol = [0.04, 0] + self.j_tol = [0.04, 0] + # compare to Stata default options, iterative GMM + # with const at end + start = OLS(endog, exog).fit().params + nobs, k_instr = instrument.shape + w0inv = np.dot(instrument.T, instrument) / nobs + + mod = gmm.NonlinearIVGMM(endog_, exog_, instrument, moment_exponential_mult) + res0 = mod.fit(start, maxiter=0, inv_weights=w0inv, + optim_method='bfgs', optim_args={'gtol':1e-8, 'disp': 0}, + wargs={'centered':False}, has_optimal_weights=False) + self.res1 = res0 + + from .results_gmm_poisson import results_multonestep as results + self.res2 = results + +class TestGMMMultTwostep(CheckGMM): + #compares has_optimal_weights=True with Stata's has_optimal_weights=False + + @classmethod + def setup_class(self): + # compare to Stata default options, twostep GMM + XLISTEXOG2 = 'aget aget2 educyr actlim totchr'.split() + + endog_name = 'docvis' + exog_names = 'private medicaid'.split() + XLISTEXOG2 + ['const'] + instrument_names = 'income medicaid ssiratio'.split() + XLISTEXOG2 + ['const'] + + endog = DATA[endog_name] + exog = DATA[exog_names] + instrument = DATA[instrument_names] + + asarray = lambda x: np.asarray(x, float) + endog, exog, instrument = lmap(asarray, [endog, exog, instrument]) + + # Need to add all data into exog + endog_ = np.zeros(len(endog)) + exog_ = np.column_stack((endog, exog)) + + + self.bse_tol = [5e-6, 5e-7] + # compare to Stata default options, iterative GMM + # with const at end + start = OLS(endog, exog).fit().params + nobs, k_instr = instrument.shape + w0inv = np.dot(instrument.T, instrument) / nobs + + mod = gmm.NonlinearIVGMM(endog_, exog_, instrument, moment_exponential_mult) + res0 = mod.fit(start, maxiter=2, inv_weights=w0inv, + optim_method='bfgs', optim_args={'gtol':1e-8, 'disp': 0}, + wargs={'centered':False}, has_optimal_weights=False) + self.res1 = res0 + + from .results_gmm_poisson import results_multtwostep as results + self.res2 = results + + +class TestGMMMultTwostepDefault(CheckGMM): + # compares my defaults with the same options in Stata + # agreement is not very high, maybe vce(unadjusted) is different after all + + @classmethod + def setup_class(self): + # compare to Stata default options, twostep GMM + XLISTEXOG2 = 'aget aget2 educyr actlim totchr'.split() + + endog_name = 'docvis' + exog_names = 'private medicaid'.split() + XLISTEXOG2 + ['const'] + instrument_names = 'income medicaid ssiratio'.split() + XLISTEXOG2 + ['const'] + + endog = DATA[endog_name] + exog = DATA[exog_names] + instrument = DATA[instrument_names] + + asarray = lambda x: np.asarray(x, float) + endog, exog, instrument = lmap(asarray, [endog, exog, instrument]) + + # Need to add all data into exog + endog_ = np.zeros(len(endog)) + exog_ = np.column_stack((endog, exog)) + + + self.bse_tol = [0.004, 5e-4] + self.params_tol = [5e-5, 5e-5] + # compare to Stata default options, iterative GMM + # with const at end + start = OLS(endog, exog).fit().params + nobs, k_instr = instrument.shape + w0inv = np.dot(instrument.T, instrument) / nobs + + mod = gmm.NonlinearIVGMM(endog_, exog_, instrument, moment_exponential_mult) + res0 = mod.fit(start, maxiter=2, inv_weights=w0inv, + optim_method='bfgs', optim_args={'gtol':1e-8, 'disp': 0}, + #wargs={'centered':True}, has_optimal_weights=True + ) + self.res1 = res0 + + from .results_gmm_poisson import results_multtwostepdefault as results + self.res2 = results + + +class TestGMMMultTwostepCenter(CheckGMM): + #compares my defaults with the same options in Stata + + @classmethod + def setup_class(self): + # compare to Stata default options, twostep GMM + XLISTEXOG2 = 'aget aget2 educyr actlim totchr'.split() + + endog_name = 'docvis' + exog_names = 'private medicaid'.split() + XLISTEXOG2 + ['const'] + instrument_names = 'income medicaid ssiratio'.split() + XLISTEXOG2 + ['const'] + + endog = DATA[endog_name] + exog = DATA[exog_names] + instrument = DATA[instrument_names] + + asarray = lambda x: np.asarray(x, float) + endog, exog, instrument = lmap(asarray, [endog, exog, instrument]) + + # Need to add all data into exog + endog_ = np.zeros(len(endog)) + exog_ = np.column_stack((endog, exog)) + + + self.bse_tol = [5e-4, 5e-5] + self.params_tol = [5e-5, 5e-5] + q_tol = [5e-5, 1e-8] + # compare to Stata default options, iterative GMM + # with const at end + start = OLS(endog, exog).fit().params + nobs, k_instr = instrument.shape + w0inv = np.dot(instrument.T, instrument) / nobs + + mod = gmm.NonlinearIVGMM(endog_, exog_, instrument, moment_exponential_mult) + res0 = mod.fit(start, maxiter=2, inv_weights=w0inv, + optim_method='bfgs', optim_args={'gtol':1e-8, 'disp': 0}, + wargs={'centered':True}, has_optimal_weights=False + ) + self.res1 = res0 + + from .results_gmm_poisson import results_multtwostepcenter as results + self.res2 = results + + def test_more(self): + + # from Stata `overid` + J_df = 1 + J_p = 0.332254330027383 + J = 0.940091427212973 + + j, jpval, jdf = self.res1.jtest() + + assert_allclose(jpval, J_p, rtol=5e-5, atol=0) + + + +if __name__ == '__main__': + tt = TestGMMAddOnestep() + tt.setup_class() + tt.test_basic() + tt.test_other() + + tt = TestGMMAddTwostep() + tt.setup_class() + tt.test_basic() + tt.test_other() + + tt = TestGMMMultOnestep() + tt.setup_class() + tt.test_basic() + #tt.test_other() + + tt = TestGMMMultTwostep() + tt.setup_class() + tt.test_basic() + tt.test_other() + + tt = TestGMMMultTwostepDefault() + tt.setup_class() + tt.test_basic() + tt.test_other() + + tt = TestGMMMultTwostepCenter() + tt.setup_class() + tt.test_basic() + tt.test_other() diff --git a/statsmodels/sandbox/regression/tools.py b/statsmodels/sandbox/regression/tools.py new file mode 100644 index 0000000..7efb28d --- /dev/null +++ b/statsmodels/sandbox/regression/tools.py @@ -0,0 +1,401 @@ +'''gradient/Jacobian of normal and t loglikelihood + +use chain rule + +normal derivative wrt mu, sigma and beta + +new version: loc-scale distributions, derivative wrt loc, scale + +also includes "standardized" t distribution (for use in GARCH) + +TODO: +* use sympy for derivative of loglike wrt shape parameters + it works for df of t distribution dlog(gamma(a))da = polygamma(0,a) check + polygamma is available in scipy.special +* get loc-scale example to work with mean = X*b +* write some full unit test examples + +A: josef-pktd + +''' + +from __future__ import print_function +import numpy as np +from scipy import special +from scipy.special import gammaln + + +def norm_lls(y, params): + '''normal loglikelihood given observations and mean mu and variance sigma2 + + Parameters + ---------- + y : array, 1d + normally distributed random variable + params: array, (nobs, 2) + array of mean, variance (mu, sigma2) with observations in rows + + Returns + ------- + lls : array + contribution to loglikelihood for each observation + ''' + + mu, sigma2 = params.T + lls = -0.5*(np.log(2*np.pi) + np.log(sigma2) + (y-mu)**2/sigma2) + return lls + +def norm_lls_grad(y, params): + '''Jacobian of normal loglikelihood wrt mean mu and variance sigma2 + + Parameters + ---------- + y : array, 1d + normally distributed random variable + params: array, (nobs, 2) + array of mean, variance (mu, sigma2) with observations in rows + + Returns + ------- + grad : array (nobs, 2) + derivative of loglikelihood for each observation wrt mean in first + column, and wrt variance in second column + + Notes + ----- + this is actually the derivative wrt sigma not sigma**2, but evaluated + with parameter sigma2 = sigma**2 + + ''' + mu, sigma2 = params.T + dllsdmu = (y-mu)/sigma2 + dllsdsigma2 = ((y-mu)**2/sigma2 - 1)/np.sqrt(sigma2) + return np.column_stack((dllsdmu, dllsdsigma2)) + + +def mean_grad(x, beta): + '''gradient/Jacobian for d (x*beta)/ d beta + ''' + return x + +def normgrad(y, x, params): + '''Jacobian of normal loglikelihood wrt mean mu and variance sigma2 + + Parameters + ---------- + y : array, 1d + normally distributed random variable with mean x*beta, and variance sigma2 + x : array, 2d + explanatory variables, observation in rows, variables in columns + params: array_like, (nvars + 1) + array of coefficients and variance (beta, sigma2) + + Returns + ------- + grad : array (nobs, 2) + derivative of loglikelihood for each observation wrt mean in first + column, and wrt scale (sigma) in second column + assume params = (beta, sigma2) + + Notes + ----- + TODO: for heteroscedasticity need sigma to be a 1d array + + ''' + beta = params[:-1] + sigma2 = params[-1]*np.ones((len(y),1)) + dmudbeta = mean_grad(x, beta) + mu = np.dot(x, beta) + #print(beta, sigma2) + params2 = np.column_stack((mu,sigma2)) + dllsdms = norm_lls_grad(y,params2) + grad = np.column_stack((dllsdms[:,:1]*dmudbeta, dllsdms[:,:1])) + return grad + + + +def tstd_lls(y, params, df): + '''t loglikelihood given observations and mean mu and variance sigma2 = 1 + + Parameters + ---------- + y : array, 1d + normally distributed random variable + params: array, (nobs, 2) + array of mean, variance (mu, sigma2) with observations in rows + df : integer + degrees of freedom of the t distribution + + Returns + ------- + lls : array + contribution to loglikelihood for each observation + + Notes + ----- + parameterized for garch + ''' + + mu, sigma2 = params.T + df = df*1.0 + #lls = gammaln((df+1)/2.) - gammaln(df/2.) - 0.5*np.log((df-2)*np.pi) + #lls -= (df+1)/2. * np.log(1. + (y-mu)**2/(df-2.)/sigma2) + 0.5 * np.log(sigma2) + lls = gammaln((df+1)/2.) - gammaln(df/2.) - 0.5*np.log((df-2)*np.pi) + lls -= (df+1)/2. * np.log(1. + (y-mu)**2/(df-2)/sigma2) + 0.5 * np.log(sigma2) + + return lls + +def norm_dlldy(y): + '''derivative of log pdf of standard normal with respect to y + ''' + return -y + +def ts_dlldy(y, df): + '''derivative of log pdf of standardized (?) t with respect to y + + Notes + ----- + parameterized for garch, with mean 0 and variance 1 + ''' + #(df+1)/2. / (1 + y**2/(df-2.)) * 2.*y/(df-2.) + #return -(df+1)/(df-2.) / (1 + y**2/(df-2.)) * y + return -(df+1)/(df) / (1 + y**2/(df)) * y + +def tstd_pdf(x, df): + '''pdf for standardized (not standard) t distribution, variance is one + + ''' + + r = np.array(df*1.0) + Px = np.exp(special.gammaln((r+1)/2.)-special.gammaln(r/2.))/np.sqrt((r-2)*pi) + Px /= (1+(x**2)/(r-2))**((r+1)/2.) + return Px + +def ts_lls(y, params, df): + '''t loglikelihood given observations and mean mu and variance sigma2 = 1 + + Parameters + ---------- + y : array, 1d + normally distributed random variable + params: array, (nobs, 2) + array of mean, variance (mu, sigma2) with observations in rows + df : integer + degrees of freedom of the t distribution + + Returns + ------- + lls : array + contribution to loglikelihood for each observation + + Notes + ----- + parameterized for garch + normalized/rescaled so that sigma2 is the variance + + >>> df = 10; sigma = 1. + >>> stats.t.stats(df, loc=0., scale=sigma.*np.sqrt((df-2.)/df)) + (array(0.0), array(1.0)) + >>> sigma = np.sqrt(2.) + >>> stats.t.stats(df, loc=0., scale=sigma*np.sqrt((df-2.)/df)) + (array(0.0), array(2.0)) + ''' + print(y, params, df) + mu, sigma2 = params.T + df = df*1.0 + #lls = gammaln((df+1)/2.) - gammaln(df/2.) - 0.5*np.log((df-2)*np.pi) + #lls -= (df+1)/2. * np.log(1. + (y-mu)**2/(df-2.)/sigma2) + 0.5 * np.log(sigma2) + lls = gammaln((df+1)/2.) - gammaln(df/2.) - 0.5*np.log((df)*np.pi) + lls -= (df+1.)/2. * np.log(1. + (y-mu)**2/(df)/sigma2) + 0.5 * np.log(sigma2) + return lls + + +def ts_dlldy(y, df): + '''derivative of log pdf of standard t with respect to y + + Parameters + ---------- + y : array_like + data points of random variable at which loglike is evaluated + df : array_like + degrees of freedom,shape parameters of log-likelihood function + of t distribution + + Returns + ------- + dlldy : array + derivative of loglikelihood wrt random variable y evaluated at the + points given in y + + Notes + ----- + with mean 0 and scale 1, but variance is df/(df-2) + + ''' + df = df*1. + #(df+1)/2. / (1 + y**2/(df-2.)) * 2.*y/(df-2.) + #return -(df+1)/(df-2.) / (1 + y**2/(df-2.)) * y + return -(df+1)/(df) / (1 + y**2/(df)) * y + +def tstd_dlldy(y, df): + '''derivative of log pdf of standardized t with respect to y + + Parameters + ---------- + y : array_like + data points of random variable at which loglike is evaluated + df : array_like + degrees of freedom,shape parameters of log-likelihood function + of t distribution + + Returns + ------- + dlldy : array + derivative of loglikelihood wrt random variable y evaluated at the + points given in y + + + Notes + ----- + parameterized for garch, standardized to variance=1 + ''' + #(df+1)/2. / (1 + y**2/(df-2.)) * 2.*y/(df-2.) + return -(df+1)/(df-2.) / (1 + y**2/(df-2.)) * y + #return (df+1)/(df) / (1 + y**2/(df)) * y + +def locscale_grad(y, loc, scale, dlldy, *args): + '''derivative of log-likelihood with respect to location and scale + + Parameters + ---------- + y : array_like + data points of random variable at which loglike is evaluated + loc : float + location parameter of distribution + scale : float + scale parameter of distribution + dlldy : function + derivative of loglikelihood fuction wrt. random variable x + args : array_like + shape parameters of log-likelihood function + + Returns + ------- + dlldloc : array + derivative of loglikelihood wrt location evaluated at the + points given in y + dlldscale : array + derivative of loglikelihood wrt scale evaluated at the + points given in y + + ''' + yst = (y-loc)/scale #ystandardized + dlldloc = -dlldy(yst, *args) / scale + dlldscale = -1./scale - dlldy(yst, *args) * (y-loc)/scale**2 + return dlldloc, dlldscale + +if __name__ == '__main__': + verbose = 0 + if verbose: + sig = 0.1 + beta = np.ones(2) + rvs = np.random.randn(10,3) + x = rvs[:,1:] + y = np.dot(x,beta) + sig*rvs[:,0] + + params = [1,1,1] + print(normgrad(y, x, params)) + + dllfdbeta = (y-np.dot(x, beta))[:,None]*x #for sigma = 1 + print(dllfdbeta) + + print(locscale_grad(y, np.dot(x, beta), 1, norm_dlldy)) + print(y-np.dot(x, beta)) + + from scipy import stats, misc + + def llt(y,loc,scale,df): + return np.log(stats.t.pdf(y, df, loc=loc, scale=scale)) + def lltloc(loc,y,scale,df): + return np.log(stats.t.pdf(y, df, loc=loc, scale=scale)) + def lltscale(scale,y,loc,df): + return np.log(stats.t.pdf(y, df, loc=loc, scale=scale)) + + def llnorm(y,loc,scale): + return np.log(stats.norm.pdf(y, loc=loc, scale=scale)) + def llnormloc(loc,y,scale): + return np.log(stats.norm.pdf(y, loc=loc, scale=scale)) + def llnormscale(scale,y,loc): + return np.log(stats.norm.pdf(y, loc=loc, scale=scale)) + + if verbose: + print('\ngradient of t') + print(misc.derivative(llt, 1, dx=1e-6, n=1, args=(0,1,10), order=3)) + print('t ', locscale_grad(1, 0, 1, tstd_dlldy, 10)) + print('ts', locscale_grad(1, 0, 1, ts_dlldy, 10)) + print(misc.derivative(llt, 1.5, dx=1e-10, n=1, args=(0,1,20), order=3),) + print('ts', locscale_grad(1.5, 0, 1, ts_dlldy, 20)) + print(misc.derivative(llt, 1.5, dx=1e-10, n=1, args=(0,2,20), order=3),) + print('ts', locscale_grad(1.5, 0, 2, ts_dlldy, 20)) + print(misc.derivative(llt, 1.5, dx=1e-10, n=1, args=(1,2,20), order=3),) + print('ts', locscale_grad(1.5, 1, 2, ts_dlldy, 20)) + print(misc.derivative(lltloc, 1, dx=1e-10, n=1, args=(1.5,2,20), order=3),) + print(misc.derivative(lltscale, 2, dx=1e-10, n=1, args=(1.5,1,20), order=3)) + y,loc,scale,df = 1.5, 1, 2, 20 + print('ts', locscale_grad(y,loc,scale, ts_dlldy, 20)) + print(misc.derivative(lltloc, loc, dx=1e-10, n=1, args=(y,scale,df), order=3),) + print(misc.derivative(lltscale, scale, dx=1e-10, n=1, args=(y,loc,df), order=3)) + + print('\ngradient of norm') + print(misc.derivative(llnorm, 1, dx=1e-6, n=1, args=(0,1), order=3)) + print(locscale_grad(1, 0, 1, norm_dlldy)) + y,loc,scale = 1.5, 1, 2 + print('ts', locscale_grad(y,loc,scale, norm_dlldy)) + print(misc.derivative(llnormloc, loc, dx=1e-10, n=1, args=(y,scale), order=3),) + print(misc.derivative(llnormscale, scale, dx=1e-10, n=1, args=(y,loc), order=3)) + y,loc,scale = 1.5, 0, 1 + print('ts', locscale_grad(y,loc,scale, norm_dlldy)) + print(misc.derivative(llnormloc, loc, dx=1e-10, n=1, args=(y,scale), order=3),) + print(misc.derivative(llnormscale, scale, dx=1e-10, n=1, args=(y,loc), order=3)) + #print('still something wrong with handling of scale and variance' + #looks ok now + print('\nloglike of t') + print(tstd_lls(1, np.array([0,1]), 100), llt(1,0,1,100), 'differently standardized') + print(tstd_lls(1, np.array([0,1]), 10), llt(1,0,1,10), 'differently standardized') + print(ts_lls(1, np.array([0,1]), 10), llt(1,0,1,10)) + print(tstd_lls(1, np.array([0,1.*10./8.]), 10), llt(1.,0,1.,10)) + print(ts_lls(1, np.array([0,1]), 100), llt(1,0,1,100)) + + print(tstd_lls(1, np.array([0,1]), 10), llt(1,0,1.*np.sqrt(8/10.),10)) + + + from numpy.testing import assert_almost_equal + params =[(0, 1), (1.,1.), (0.,2.), ( 1., 2.)] + yt = np.linspace(-2.,2.,11) + for loc,scale in params: + dlldlo = misc.derivative(llnormloc, loc, dx=1e-10, n=1, args=(yt,scale), order=3) + dlldsc = misc.derivative(llnormscale, scale, dx=1e-10, n=1, args=(yt,loc), order=3) + gr = locscale_grad(yt, loc, scale, norm_dlldy) + assert_almost_equal(dlldlo, gr[0], 5, err_msg='deriv loc') + assert_almost_equal(dlldsc, gr[1], 5, err_msg='deriv scale') + for df in [3, 10, 100]: + for loc,scale in params: + dlldlo = misc.derivative(lltloc, loc, dx=1e-10, n=1, args=(yt,scale,df), order=3) + dlldsc = misc.derivative(lltscale, scale, dx=1e-10, n=1, args=(yt,loc,df), order=3) + gr = locscale_grad(yt, loc, scale, ts_dlldy, df) + assert_almost_equal(dlldlo, gr[0], 4, err_msg='deriv loc') + assert_almost_equal(dlldsc, gr[1], 4, err_msg='deriv scale') + assert_almost_equal(ts_lls(yt, np.array([loc, scale**2]), df), + llt(yt,loc,scale,df), 5, + err_msg='loglike') + assert_almost_equal(tstd_lls(yt, np.array([loc, scale**2]), df), + llt(yt,loc,scale*np.sqrt((df-2.)/df),df), 5, + err_msg='loglike') + + + + + + + + diff --git a/statsmodels/sandbox/regression/treewalkerclass.py b/statsmodels/sandbox/regression/treewalkerclass.py new file mode 100644 index 0000000..106c871 --- /dev/null +++ b/statsmodels/sandbox/regression/treewalkerclass.py @@ -0,0 +1,620 @@ +''' + +Formulas +-------- + +This follows mostly Greene notation (in slides) +partially ignoring factors tau or mu for now, ADDED +(if all tau==1, then runmnl==clogit) + +leaf k probability : + +Prob(k|j) = exp(b_k * X_k / mu_j)/ sum_{i in L(j)} (exp(b_i * X_i / mu_j) + +branch j probabilities : + +Prob(j) = exp(b_j * X_j + mu*IV_j )/ sum_{i in NB(j)} (exp(b_i * X_i + mu_i*IV_i) + +inclusive value of branch j : + +IV_j = log( sum_{i in L(j)} (exp(b_i * X_i / mu_j) ) + +this is the log of the denominator of the leaf probabilities + +L(j) : leaves at branch j, where k is child of j +NB(j) : set of j and it's siblings + +Design +------ + +* splitting calculation transmission between returns and changes to + instance.probs + - probability for each leaf is in instance.probs + - inclusive values and contribution of exog on branch level need to be + added separately. handed up the tree through returns +* question: should params array be accessed directly through + `self.recursionparams[self.parinddict[name]]` or should the dictionary + return the values of the params, e.g. `self.params_node_dict[name]`. + The second would be easier for fixing tau=1 for degenerate branches. + The easiest might be to do the latter only for the taus and default to 1 if + the key ('tau_'+branchname) is not found. I also need to exclude tau for + degenerate branches from params, but then I cannot change them from the + outside for testing and experimentation. (?) +* SAS manual describes restrictions on tau (though their model is a bit + different), e.g. equal tau across sibling branches, fixed tau. The also + allow linear and non-linear (? not sure) restriction on params, the + regression coefficients. Related to previous issue, callback without access + to the underlying array, where params_node_dict returns the actual params + value would provide more flexibility to impose different kinds of restrictions. + + + +bugs/problems +------------- + +* singleton branches return zero to `top`, not a value + I'm not sure what they are supposed to return, given the split between returns + and instance.probs DONE +* Why does 'Air' (singleton branch) get probability exactly 0.5 ? DONE + +TODO +---- +* add tau, normalization for nested logit, currently tau is 1 (clogit) + taus also needs to become part of params MOSTLY DONE +* add effect of branch level explanatory variables DONE +* write a generic multinomial logit that takes arbitrary probabilities, this + would be the same for MNL, clogit and runmnl, + delegate calculation of probabilities +* test on actual data, + - tau=1 replicate clogit numbers, + - transport example from Greene tests 1-level tree and degenerate sub-trees + - test example for multi-level trees ??? +* starting values: Greene mentiones that the starting values for the nested + version come from the (non-nested) MNL version. SPSS uses constant equal + (? check transformation) to sample frequencies and zeros for slope + coefficient as starting values for (non-nested) MNL +* associated test statistics + - (I don't think I will fight with the gradient or hessian of the log-like.) + - basic MLE statistics can be generic + - tests specific to the model (?) +* nice printouts since I'm currently collecting a lot of information in the tree + recursion and everything has names + +The only parts that are really necessary to get a functional nested logit are +adding the taus (DONE) and the MLE wrapper class. The rest are enhancements. + +I added fake tau, one fixed tau for all branches. (OBSOLETE) +It's not clear where the tau for leaf should be added either at +original assignment of self.probs, or as part of the one-step-down +probability correction in the bottom branches. The second would be +cleaner (would make treatment of leaves and branches more symmetric, +but requires that initial assignment in the leaf only does +initialization. e.g self.probs = 1. ??? + +DONE added taus + +still todo: +- tau for degenerate branches are not identified, set to 1 for MLE +- rename parinddict to paramsinddict + + +Author: Josef Perktold +License : BSD (3-clause) +''' +from __future__ import print_function +from statsmodels.compat.python import lzip, iteritems, itervalues, lrange, zip +import numpy as np +from pprint import pprint + +def randintw(w, size=1): + '''generate integer random variables given probabilties + + useful because it can be used as index into any array or sequence type + + Parameters + ---------- + w : 1d array_like + sequence of weights, probabilites. The weights are normalized to add + to one. + size : int or tuple of ints + shape of output array + + Returns + ------- + rvs : array of shape given by size + random variables each distributed according to the same discrete + distribution defined by (normalized) w. + + Examples + -------- + >>> np.random.seed(0) + >>> randintw([0.4, 0.4, 0.2], size=(2,6)) + array([[1, 1, 1, 1, 1, 1], + [1, 2, 2, 0, 1, 1]]) + + >>> np.bincount(randintw([0.6, 0.4, 0.0], size=3000))/3000. + array([ 0.59566667, 0.40433333]) + + ''' + #from Charles Harris, numpy mailing list + from numpy.random import random + p = np.cumsum(w)/np.sum(w) + rvs = p.searchsorted(random(np.prod(size))).reshape(size) + return rvs + +def getbranches(tree): + ''' + walk tree to get list of branches + + Parameters + ---------- + tree : list of tuples + tree as defined for RU2NMNL + + Returns + ------- + branch : list + list of all branch names + + ''' + if isinstance(tree, tuple): + name, subtree = tree + a = [name] + for st in subtree: + a.extend(getbranches(st)) + return a + return [] + +def getnodes(tree): + ''' + walk tree to get list of branches and list of leaves + + Parameters + ---------- + tree : list of tuples + tree as defined for RU2NMNL + + Returns + ------- + branch : list + list of all branch names + leaves : list + list of all leaves names + + ''' + if isinstance(tree, tuple): + name, subtree = tree + ab = [name] + al = [] + #degenerate branches + if len(subtree) == 1: + adeg = [name] + else: + adeg = [] + + for st in subtree: + b, l, d = getnodes(st) + ab.extend(b) + al.extend(l) + adeg.extend(d) + return ab, al, adeg + return [], [tree], [] + + +testxb = 2 #global to class to return strings instead of numbers + +class RU2NMNL(object): + '''Nested Multinomial Logit with Random Utility 2 parameterization + + + Parameters + ---------- + endog : array + not used in this part + exog : dict_like + dictionary access to data where keys correspond to branch and leaf + names. The values are the data arrays for the exog in that node. + tree : nested tuples and lists + each branch, tree or subtree, is defined by a tuple + (branch_name, [subtree1, subtree2, ..., subtreek]) + Bottom branches have as subtrees the list of leaf names. + paramsind : dictionary + dictionary that maps branch and leaf names to the names of parameters, + the coefficients for exogs) + + Methods + ------- + get_probs + + Attributes + ---------- + branches + leaves + paramsnames + parinddict + + Notes + ----- + endog needs to be encoded so it is consistent with self.leaves, which + defines the columns for the probability array. The ordering in leaves is + determined by the ordering of the tree. + In the dummy encoding of endog, the columns of endog need to have the + same order as self.leaves. In the integer encoding, the integer for a + choice has to correspond to the index in self.leaves. + (This could be made more robust, by handling the endog encoding internally + by leaf names, if endog is defined as categorical variable with + associated category level names.) + + ''' + + def __init__(self, endog, exog, tree, paramsind): + self.endog = endog + self.datadict = exog + self.tree = tree + self.paramsind = paramsind + + self.branchsum = '' + self.probs = {} + self.probstxt = {} + self.branchleaves = {} + self.branchvalues = {} #just to keep track of returns by branches + self.branchsums = {} + self.bprobs = {} + self.branches, self.leaves, self.branches_degenerate = getnodes(tree) + self.nbranches = len(self.branches) + + #copied over but not quite sure yet + #unique, parameter array names, + #sorted alphabetically, order is/should be only internal + + self.paramsnames = (sorted(set([i for j in itervalues(paramsind) + for i in j])) + + ['tau_%s' % bname for bname in self.branches]) + + self.nparams = len(self.paramsnames) + + #mapping coefficient names to indices to unique/parameter array + self.paramsidx = dict((name, idx) for (idx,name) in + enumerate(self.paramsnames)) + + #mapping branch and leaf names to index in parameter array + self.parinddict = dict((k, [self.paramsidx[j] for j in v]) + for k,v in iteritems(self.paramsind)) + + self.recursionparams = 1. + np.arange(len(self.paramsnames)) + #for testing that individual parameters are used in the right place + self.recursionparams = np.zeros(len(self.paramsnames)) + #self.recursionparams[2] = 1 + self.recursionparams[-self.nbranches:] = 1 #values for tau's + #self.recursionparams[-2] = 2 + + + def get_probs(self, params): + ''' + obtain the probability array given an array of parameters + + This is the function that can be called by loglike or other methods + that need the probabilities as function of the params. + + Parameters + ---------- + params : 1d array, (nparams,) + coefficients and tau that parameterize the model. The required + length can be obtained by nparams. (and will depend on the number + of degenerate leaves - not yet) + + Returns + ------- + probs : array, (nobs, nchoices) + probabilites for all choices for each observation. The order + is available by attribute leaves. See note in docstring of class + + + + ''' + self.recursionparams = params + self.calc_prob(self.tree) + probs_array = np.array([self.probs[leaf] for leaf in self.leaves]) + return probs_array + #what's the ordering? Should be the same as sequence in tree. + #TODO: need a check/assert that this sequence is the same as the + # encoding in endog + + + def calc_prob(self, tree, parent=None): + '''walking a tree bottom-up based on dictionary + ''' + + #0.5#2 #placeholder for now + #should be tau=self.taus[name] but as part of params for optimization + endog = self.endog + datadict = self.datadict + paramsind = self.paramsind + branchsum = self.branchsum + + + if isinstance(tree, tuple): #assumes leaves are int for choice index + + name, subtree = tree + self.branchleaves[name] = [] #register branch in dictionary + + tau = self.recursionparams[self.paramsidx['tau_'+name]] + if DEBUG: + print('----------- starting next branch-----------') + print(name, datadict[name], 'tau=', tau) + print('subtree', subtree) + branchvalue = [] + if testxb == 2: + branchsum = 0 + elif testxb == 1: + branchsum = datadict[name] + else: + branchsum = name + for b in subtree: + if DEBUG: + print(b) + bv = self.calc_prob(b, name) + bv = np.exp(bv/tau) #this shouldn't be here, when adding branch data + branchvalue.append(bv) + branchsum = branchsum + bv + self.branchvalues[name] = branchvalue #keep track what was returned + + if DEBUG: + print('----------- returning to branch-----------') + print(name) + print('branchsum in branch', name, branchsum) + + if parent: + if DEBUG: + print('parent', parent) + self.branchleaves[parent].extend(self.branchleaves[name]) + if 0: #not name == 'top': # not used anymore !!! ??? + #if not name == 'top': + #TODO: do I need this only on the lowest branches ? + tmpsum = 0 + for k in self.branchleaves[name]: + #similar to this is now also in return branch values + #depends on what will be returned + tmpsum += self.probs[k] + iv = np.log(tmpsum) + + for k in self.branchleaves[name]: + self.probstxt[k] = self.probstxt[k] + ['*' + name + '-prob' + + '(%s)' % ', '.join(self.paramsind[name])] + + #TODO: does this use the denominator twice now + self.probs[k] = self.probs[k] / tmpsum + if np.size(self.datadict[name])>0: + #not used yet, might have to move one indentation level + #self.probs[k] = self.probs[k] / tmpsum +## np.exp(-self.datadict[name] * +## np.sum(self.recursionparams[self.parinddict[name]])) + if DEBUG: + print('self.datadict[name], self.probs[k]') + print(self.datadict[name], self.probs[k]) + #if not name == 'top': + # self.probs[k] = self.probs[k] * np.exp( iv) + + #walk one level down again to add branch probs to instance.probs + self.bprobs[name] = [] + for bidx, b in enumerate(subtree): + if DEBUG: + print('repr(b)', repr(b), bidx) + #if len(b) == 1: #TODO: skip leaves, check this + if not isinstance(b, tuple): # isinstance(b, str): + #TODO: replace this with a check for branch (tuple) instead + #this implies name is a bottom branch, + #possible to add special things here + self.bprobs[name].append(self.probs[b]) + #TODO: need tau possibly here + self.probs[b] = self.probs[b] / branchsum + if DEBUG: + print('*********** branchsum at bottom branch', branchsum) + #self.bprobs[name].append(self.probs[b]) + else: + bname = b[0] + branchsum2 = sum(self.branchvalues[name]) + assert np.abs(branchsum - branchsum2).sum() < 1e-8 + bprob = branchvalue[bidx]/branchsum + self.bprobs[name].append(bprob) + + for k in self.branchleaves[bname]: + + if DEBUG: + print('branchprob', bname, k, bprob, branchsum) + #temporary hack with maximum to avoid zeros + self.probs[k] = self.probs[k] * np.maximum(bprob, 1e-4) + + + if DEBUG: + print('working on branch', tree, branchsum) + if testxb<2: + return branchsum + else: #this is the relevant part + self.branchsums[name] = branchsum + if np.size(self.datadict[name])>0: + branchxb = np.sum(self.datadict[name] * + self.recursionparams[self.parinddict[name]]) + else: + branchxb = 0 + if not name=='top': + tau = self.recursionparams[self.paramsidx['tau_'+name]] + else: + tau = 1 + iv = branchxb + tau * branchsum #which tau: name or parent??? + return branchxb + tau * np.log(branchsum) #iv + #branchsum is now IV, TODO: add effect of branch variables + + else: + tau = self.recursionparams[self.paramsidx['tau_'+parent]] + if DEBUG: + print('parent', parent) + self.branchleaves[parent].append(tree) # register leave with parent + self.probstxt[tree] = [tree + '-prob' + + '(%s)' % ', '.join(self.paramsind[tree])] + #this is not yet a prob, not normalized to 1, it is exp(x*b) + leafprob = np.exp(np.sum(self.datadict[tree] * + self.recursionparams[self.parinddict[tree]]) + / tau) # fake tau for now, wrong spot ??? + #it seems I get the same answer with and without tau here + self.probs[tree] = leafprob #= 1 #try initialization only + #TODO: where should I add tau in the leaves + + if testxb == 2: + return np.log(leafprob) + elif testxb == 1: + leavessum = np.array(datadict[tree]) # sum((datadict[bi] for bi in datadict[tree])) + if DEBUG: + print('final branch with', tree, ''.join(tree), leavessum) #sum(tree) + return leavessum #sum(xb[tree]) + elif testxb == 0: + return ''.join(tree) #sum(tree) + + + +if __name__ == '__main__': + DEBUG = 0 + + endog = 5 # dummy place holder + + + ############## Example similar to Greene + + #get pickled data + #endog3, xifloat3 = cPickle.load(open('xifloat2.pickle','rb')) + + + tree0 = ('top', + [('Fly',['Air']), + ('Ground', ['Train', 'Car', 'Bus']) + ] + ) + + ''' this is with real data from Greene's clogit example + datadict = dict(zip(['Air', 'Train', 'Bus', 'Car'], + [xifloat[i]for i in range(4)])) + ''' + + #for testing only (mock that returns it's own name + datadict = dict(zip(['Air', 'Train', 'Bus', 'Car'], + ['Airdata', 'Traindata', 'Busdata', 'Cardata'])) + + if testxb: + datadict = dict(zip(['Air', 'Train', 'Bus', 'Car'], + np.arange(4))) + + datadict.update({'top' : [], + 'Fly' : [], + 'Ground': []}) + + paramsind = {'top' : [], + 'Fly' : [], + 'Ground': [], + 'Air' : ['GC', 'Ttme', 'ConstA', 'Hinc'], + 'Train' : ['GC', 'Ttme', 'ConstT'], + 'Bus' : ['GC', 'Ttme', 'ConstB'], + 'Car' : ['GC', 'Ttme'] + } + + modru = RU2NMNL(endog, datadict, tree0, paramsind) + modru.recursionparams[-1] = 2 + modru.recursionparams[1] = 1 + + print('Example 1') + print('---------\n') + print(modru.calc_prob(modru.tree)) + + print('Tree') + pprint(modru.tree) + print('\nmodru.probs') + pprint(modru.probs) + + + + ############## example with many layers + + tree2 = ('top', + [('B1',['a','b']), + ('B2', + [('B21',['c', 'd']), + ('B22',['e', 'f', 'g']) + ] + ), + ('B3',['h']) + ] + ) + + #Note: dict looses ordering + paramsind2 = { + 'B1': [], + 'a': ['consta', 'p'], + 'b': ['constb', 'p'], + 'B2': ['const2', 'x2'], + 'B21': [], + 'c': ['constc', 'p', 'time'], + 'd': ['constd', 'p', 'time'], + 'B22': ['x22'], + 'e': ['conste', 'p', 'hince'], + 'f': ['constf', 'p', 'hincf'], + 'g': [ 'p', 'hincg'], + 'B3': [], + 'h': ['consth', 'p', 'h'], + 'top': []} + + + datadict2 = dict([i for i in zip('abcdefgh',lrange(8))]) + datadict2.update({'top':1000, 'B1':100, 'B2':200, 'B21':21,'B22':22, 'B3':300}) + ''' + >>> pprint(datadict2) + {'B1': 100, + 'B2': 200, + 'B21': 21, + 'B22': 22, + 'B3': 300, + 'a': 0.5, + 'b': 1, + 'c': 2, + 'd': 3, + 'e': 4, + 'f': 5, + 'g': 6, + 'h': 7, + 'top': 1000} + ''' + + + modru2 = RU2NMNL(endog, datadict2, tree2, paramsind2) + modru2.recursionparams[-3] = 2 + modru2.recursionparams[3] = 1 + print('\n\nExample 2') + print('---------\n') + print(modru2.calc_prob(modru2.tree)) + print('Tree') + pprint(modru2.tree) + print('\nmodru.probs') + pprint(modru2.probs) + + + print('sum of probs', sum(list(itervalues(modru2.probs)))) + print('branchvalues') + print(modru2.branchvalues) + print(modru.branchvalues) + + print('branch probabilities') + print(modru.bprobs) + + print('degenerate branches') + print(modru.branches_degenerate) + + ''' + >>> modru.bprobs + {'Fly': [], 'top': [0.0016714179077931082, 0.99832858209220687], 'Ground': []} + >>> modru2.bprobs + {'top': [0.25000000000000006, 0.62499999999999989, 0.12500000000000003], 'B22': [], 'B21': [], 'B1': [], 'B2': [0.40000000000000008, 0.59999999999999998], 'B3': []} + ''' + + params1 = np.array([ 0., 1., 0., 0., 0., 0., 1., 1., 2.]) + print(modru.get_probs(params1)) + params2 = np.array([ 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., + 0., 0., 0., 0., 0., 1., 1., 1., 2., 1., 1.]) + print(modru2.get_probs(params2)) #raises IndexError diff --git a/statsmodels/sandbox/regression/try_catdata.py b/statsmodels/sandbox/regression/try_catdata.py new file mode 100644 index 0000000..2d2627c --- /dev/null +++ b/statsmodels/sandbox/regression/try_catdata.py @@ -0,0 +1,132 @@ +from statsmodels.compat.python import lrange +import numpy as np +#from numpy import linalg as npla +from scipy import stats, optimize + +''' +Working with categorical data +============================= + +use of dummy variables, group statistics, within and between statistics +examples for efficient matrix algebra + +dummy versions require that the number of unique groups or categories is not too large +group statistics with scipy.ndimage can handle large number of observations and groups +scipy.ndimage stats is missing count + +new: np.bincount can also be used for calculating values per label +''' + +from scipy import ndimage + +#problem: ndimage does not allow axis argument, +# calculates mean or var corresponding to axis=None in np.mean, np.var +# useless for multivariate application + +def labelmeanfilter(y, x): + # requires integer labels + # from mailing list scipy-user 2009-02-11 + labelsunique = np.arange(np.max(y)+1) + labelmeans = np.array(ndimage.mean(x, labels=y, index=labelsunique)) + # returns label means for each original observation + return labelmeans[y] + +#groupcount: i.e. number of observation by group/label +#np.array(ndimage.histogram(yrvs[:,0],0,10,1,labels=yrvs[:,0],index=np.unique(yrvs[:,0]))) + +def labelmeanfilter_nd(y, x): + # requires integer labels + # from mailing list scipy-user 2009-02-11 + # adjusted for 2d x with column variables + + labelsunique = np.arange(np.max(y)+1) + labmeansdata = [] + labmeans = [] + + for xx in x.T: + labelmeans = np.array(ndimage.mean(xx, labels=y, index=labelsunique)) + labmeansdata.append(labelmeans[y]) + labmeans.append(labelmeans) + # group count: + labelcount = np.array(ndimage.histogram(y, labelsunique[0], labelsunique[-1]+1, + 1, labels=y, index=labelsunique)) + + # returns array of lable/group counts and of label/group means + # and label/group means for each original observation + return labelcount, np.array(labmeans), np.array(labmeansdata).T + +def labelmeanfilter_str(ys, x): + # works also for string labels in ys, but requires 1D + # from mailing list scipy-user 2009-02-11 + unil, unilinv = np.unique(ys, return_index=False, return_inverse=True) + labelmeans = np.array(ndimage.mean(x, labels=unilinv, index=np.arange(np.max(unil)+1))) + arr3 = labelmeans[unilinv] + return arr3 + +def groupstatsbin(factors, values): + '''uses np.bincount, assumes factors/labels are integers + ''' + n = len(factors) + ix,rind = np.unique(factors, return_inverse=1) + gcount = np.bincount(rind) + gmean = np.bincount(rind, weights=values)/ (1.0*gcount) + meanarr = gmean[rind] + withinvar = np.bincount(rind, weights=(values-meanarr)**2) / (1.0*gcount) + withinvararr = withinvar[rind] + return gcount, gmean , meanarr, withinvar, withinvararr + + +def convertlabels(ys, indices=None): + '''convert labels based on multiple variables or string labels to unique + index labels 0,1,2,...,nk-1 where nk is the number of distinct labels + ''' + if indices == None: + ylabel = ys + else: + idx = np.array(indices) + if idx.size > 1 and ys.ndim == 2: + ylabel = np.array(['@%s@'%ii[:2].tostring() for ii in ys])[:,np.newaxis] + #alternative + ## if ys[:,idx].dtype.kind == 'S': + ## ylabel = nd.array([' '.join(ii[:2]) for ii in ys])[:,np.newaxis] + else: + # there might be a problem here + ylabel = ys + + unil, unilinv = np.unique(ylabel, return_index=False, return_inverse=True) + return unilinv, np.arange(len(unil)), unil + +def groupsstats_1d(y, x, labelsunique): + '''use ndimage to get fast mean and variance''' + labelmeans = np.array(ndimage.mean(x, labels=y, index=labelsunique)) + labelvars = np.array(ndimage.var(x, labels=y, index=labelsunique)) + return labelmeans, labelvars + +def cat2dummy(y, nonseq=0): + if nonseq or (y.ndim == 2 and y.shape[1] > 1): + ycat, uniques, unitransl = convertlabels(y, lrange(y.shape[1])) + else: + ycat = y.copy() + ymin = y.min() + uniques = np.arange(ymin,y.max()+1) + if ycat.ndim == 1: + ycat = ycat[:,np.newaxis] + # this builds matrix nobs*ncat + dummy = (ycat == uniques).astype(int) + return dummy + +def groupsstats_dummy(y, x, nonseq=0): + if x.ndim == 1: + # use groupsstats_1d + x = x[:,np.newaxis] + dummy = cat2dummy(y, nonseq=nonseq) + countgr = dummy.sum(0, dtype=float) + meangr = np.dot(x.T,dummy)/countgr + meandata = np.dot(dummy,meangr.T) # category/group means as array in shape of x + xdevmeangr = x - meandata # deviation from category/group mean + vargr = np.dot((xdevmeangr * xdevmeangr).T, dummy) / countgr + return meangr, vargr, xdevmeangr, countgr + + +if __name__ == '__main__': + pass diff --git a/statsmodels/sandbox/regression/try_ols_anova.py b/statsmodels/sandbox/regression/try_ols_anova.py new file mode 100644 index 0000000..905c1a0 --- /dev/null +++ b/statsmodels/sandbox/regression/try_ols_anova.py @@ -0,0 +1,288 @@ +''' convenience functions for ANOVA type analysis with OLS + +Note: statistical results of ANOVA are not checked, OLS is +checked but not whether the reported results are the ones used +in ANOVA + +includes form2design for creating dummy variables + +TODO: + * ... + * + +''' + +from __future__ import print_function +from statsmodels.compat.python import lmap +import numpy as np +#from scipy import stats +import statsmodels.api as sm + +def data2dummy(x, returnall=False): + '''convert array of categories to dummy variables + by default drops dummy variable for last category + uses ravel, 1d only''' + x = x.ravel() + groups = np.unique(x) + if returnall: + return (x[:, None] == groups).astype(int) + else: + return (x[:, None] == groups).astype(int)[:,:-1] + +def data2proddummy(x): + '''creates product dummy variables from 2 columns of 2d array + + drops last dummy variable, but not from each category + singular with simple dummy variable but not with constant + + quickly written, no safeguards + + ''' + #brute force, assumes x is 2d + #replace with encoding if possible + groups = np.unique(lmap(tuple, x.tolist())) + #includes singularity with additive factors + return (x==groups[:,None,:]).all(-1).T.astype(int)[:,:-1] + +def data2groupcont(x1,x2): + '''create dummy continuous variable + + Parameters + ---------- + x1 : 1d array + label or group array + x2 : 1d array (float) + continuous variable + + Notes + ----- + useful for group specific slope coefficients in regression + ''' + if x2.ndim == 1: + x2 = x2[:,None] + dummy = data2dummy(x1, returnall=True) + return dummy * x2 + +# Result strings +#the second leaves the constant in, not with NIST regression +#but something fishy with res.ess negative in examples ? +#not checked if these are all the right ones + +anova_str0 = ''' +ANOVA statistics (model sum of squares excludes constant) +Source DF Sum Squares Mean Square F Value Pr > F +Model %(df_model)i %(ess)f %(mse_model)f %(fvalue)f %(f_pvalue)f +Error %(df_resid)i %(ssr)f %(mse_resid)f +CTotal %(nobs)i %(uncentered_tss)f %(mse_total)f + +R squared %(rsquared)f +''' + +anova_str = ''' +ANOVA statistics (model sum of squares includes constant) +Source DF Sum Squares Mean Square F Value Pr > F +Model %(df_model)i %(ssmwithmean)f %(mse_model)f %(fvalue)f %(f_pvalue)f +Error %(df_resid)i %(ssr)f %(mse_resid)f +CTotal %(nobs)i %(uncentered_tss)f %(mse_total)f + +R squared %(rsquared)f +''' + + +def anovadict(res): + '''update regression results dictionary with ANOVA specific statistics + + not checked for completeness + ''' + ad = {} + ad.update(res.__dict__) #dict doesn't work with cached attributes + anova_attr = ['df_model', 'df_resid', 'ess', 'ssr','uncentered_tss', + 'mse_model', 'mse_resid', 'mse_total', 'fvalue', 'f_pvalue', + 'rsquared'] + for key in anova_attr: + ad[key] = getattr(res, key) + ad['nobs'] = res.model.nobs + ad['ssmwithmean'] = res.uncentered_tss - res.ssr + return ad + + +def form2design(ss, data): + '''convert string formula to data dictionary + + ss : string + * I : add constant + * varname : for simple varnames data is used as is + * F:varname : create dummy variables for factor varname + * P:varname1*varname2 : create product dummy variables for + varnames + * G:varname1*varname2 : create product between factor and + continuous variable + data : dict or structured array + data set, access of variables by name as in dictionaries + + Returns + ------- + vars : dictionary + dictionary of variables with converted dummy variables + names : list + list of names, product (P:) and grouped continuous + variables (G:) have name by joining individual names + sorted according to input + + Examples + -------- + >>> xx, n = form2design('I a F:b P:c*d G:c*f', testdata) + >>> xx.keys() + ['a', 'b', 'const', 'cf', 'cd'] + >>> n + ['const', 'a', 'b', 'cd', 'cf'] + + Notes + ----- + + with sorted dict, separate name list wouldn't be necessary + ''' + vars = {} + names = [] + for item in ss.split(): + if item == 'I': + vars['const'] = np.ones(data.shape[0]) + names.append('const') + elif not ':' in item: + vars[item] = data[item] + names.append(item) + elif item[:2] == 'F:': + v = item.split(':')[1] + vars[v] = data2dummy(data[v]) + names.append(v) + elif item[:2] == 'P:': + v = item.split(':')[1].split('*') + vars[''.join(v)] = data2proddummy(np.c_[data[v[0]],data[v[1]]]) + names.append(''.join(v)) + elif item[:2] == 'G:': + v = item.split(':')[1].split('*') + vars[''.join(v)] = data2groupcont(data[v[0]], data[v[1]]) + names.append(''.join(v)) + else: + raise ValueError('unknown expression in formula') + return vars, names + +def dropname(ss, li): + '''drop names from a list of strings, + names to drop are in space delimeted list + does not change original list + ''' + newli = li[:] + for item in ss.split(): + newli.remove(item) + return newli + +if __name__ == '__main__': + + # Test Example with created data + # ------------------------------ + + nobs = 1000 + testdataint = np.random.randint(3, size=(nobs,4)).view([('a',int),('b',int),('c',int),('d',int)]) + testdatacont = np.random.normal( size=(nobs,2)).view([('e',float), ('f',float)]) + import numpy.lib.recfunctions + dt2 = numpy.lib.recfunctions.zip_descr((testdataint, testdatacont),flatten=True) + # concatenate structured arrays + testdata = np.empty((nobs,1), dt2) + for name in testdataint.dtype.names: + testdata[name] = testdataint[name] + for name in testdatacont.dtype.names: + testdata[name] = testdatacont[name] + + + #print(form2design('a',testdata) + + if 0: # print(only when nobs is small, e.g. nobs=10 + xx, n = form2design('F:a',testdata) + print(xx) + print(form2design('P:a*b',testdata)) + print(data2proddummy((np.c_[testdata['a'],testdata['b']]))) + + xx, names = form2design('a F:b P:c*d',testdata) + + #xx, names = form2design('I a F:b F:c F:d P:c*d',testdata) + xx, names = form2design('I a F:b P:c*d', testdata) + xx, names = form2design('I a F:b P:c*d G:a*e f', testdata) + + + X = np.column_stack([xx[nn] for nn in names]) + # simple test version: all coefficients equal to one + y = X.sum(1) + 0.01*np.random.normal(size=(nobs)) + rest1 = sm.OLS(y,X).fit() #results + print(rest1.params) + print(anova_str % anovadict(rest1)) + + + X = np.column_stack([xx[nn] for nn in dropname('ae f', names)]) + # simple test version: all coefficients equal to one + y = X.sum(1) + 0.01*np.random.normal(size=(nobs)) + rest1 = sm.OLS(y,X).fit() + print(rest1.params) + print(anova_str % anovadict(rest1)) + + + # Example: from Bruce + # ------------------- + + #get data and clean it + #^^^^^^^^^^^^^^^^^^^^^ + + # requires file 'dftest3.data' posted by Bruce + + # read data set and drop rows with missing data + dt_b = np.dtype([('breed', int), ('sex', int), ('litter', int), + ('pen', int), ('pig', int), ('age', float), + ('bage', float), ('y', float)]) + dta = np.genfromtxt('dftest3.data', dt_b,missing='.', usemask=True) + print('missing', [dta.mask[k].sum() for k in dta.dtype.names]) + m = dta.mask.view(bool) + droprows = m.reshape(-1,len(dta.dtype.names)).any(1) + # get complete data as plain structured array + # maybe doesn't work with masked arrays + dta_use_b1 = dta[~droprows,:].data + print(dta_use_b1.shape) + print(dta_use_b1.dtype) + + #Example b1: variables from Bruce's glm + #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + # prepare data and dummy variables + xx_b1, names_b1 = form2design('I F:sex age', dta_use_b1) + # create design matrix + X_b1 = np.column_stack([xx_b1[nn] for nn in dropname('', names_b1)]) + y_b1 = dta_use_b1['y'] + # estimate using OLS + rest_b1 = sm.OLS(y_b1, X_b1).fit() + # print(results) + print(rest_b1.params) + print(anova_str % anovadict(rest_b1)) + #compare with original version only in original version + #print(anova_str % anovadict(res_b0)) + + # Example: use all variables except pig identifier + #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + allexog = ' '.join(dta.dtype.names[:-1]) + #'breed sex litter pen pig age bage' + + xx_b1a, names_b1a = form2design('I F:breed F:sex F:litter F:pen age bage', dta_use_b1) + X_b1a = np.column_stack([xx_b1a[nn] for nn in dropname('', names_b1a)]) + y_b1a = dta_use_b1['y'] + rest_b1a = sm.OLS(y_b1a, X_b1a).fit() + print(rest_b1a.params) + print(anova_str % anovadict(rest_b1a)) + + for dropn in names_b1a: + print(('\nResults dropping', dropn)) + X_b1a_ = np.column_stack([xx_b1a[nn] for nn in dropname(dropn, names_b1a)]) + y_b1a_ = dta_use_b1['y'] + rest_b1a_ = sm.OLS(y_b1a_, X_b1a_).fit() + #print(rest_b1a_.params) + print(anova_str % anovadict(rest_b1a_)) + + diff --git a/statsmodels/sandbox/regression/try_treewalker.py b/statsmodels/sandbox/regression/try_treewalker.py new file mode 100644 index 0000000..4dd982b --- /dev/null +++ b/statsmodels/sandbox/regression/try_treewalker.py @@ -0,0 +1,147 @@ +'''Trying out tree structure for nested logit + +sum is standing for likelihood calculations + +should collect and aggregate likelihood contributions bottom up + +''' +from __future__ import print_function +from statsmodels.compat.python import iteritems, itervalues, lrange, zip, long +import numpy as np + +tree = [[0,1],[[2,3],[4,5,6]],[7]] +#singleton/degenerate branch needs to be list + +xb = 2*np.arange(8) +testxb = 1 #0 + +def branch(tree): + '''walking a tree bottom-up + ''' + + if not isinstance(tree[0], (int, long)): #assumes leaves are int for choice index + branchsum = 0 + for b in tree: + branchsum += branch(b) + else: + print(tree) + print('final branch with', tree, sum(tree)) + if testxb: + return sum(xb[tree]) + else: + return sum(tree) + + print('working on branch', tree, branchsum) + return branchsum + +print(branch(tree)) + + + +#new version that also keeps track of branch name and allows V_j for a branch +# as in Greene, V_j + lamda * IV doesn't look the same as including the +# explanatory variables in leaf X_j, V_j is linear in X, IV is logsumexp of X, + + +testxb = 0#1#0 +def branch2(tree): + '''walking a tree bottom-up based on dictionary + ''' + + + if isinstance(tree, tuple): #assumes leaves are int for choice index + name, subtree = tree + print(name, data2[name]) + print('subtree', subtree) + if testxb: + branchsum = data2[name] + else: + branchsum = name #0 + for b in subtree: + #branchsum += branch2(b) + branchsum = branchsum + branch2(b) + else: + leavessum = sum((data2[bi] for bi in tree)) + print('final branch with', tree, ''.join(tree), leavessum) #sum(tree) + if testxb: + return leavessum #sum(xb[tree]) + else: + return ''.join(tree) #sum(tree) + + print('working on branch', tree, branchsum) + return branchsum + +tree = [[0,1],[[2,3],[4,5,6]],[7]] +tree2 = ('top', + [('B1',['a','b']), + ('B2', + [('B21',['c', 'd']), + ('B22',['e', 'f', 'g']) + ] + ), + ('B3',['h']) + ] + ) + +data2 = dict([i for i in zip('abcdefgh',lrange(8))]) +#data2.update({'top':1000, 'B1':100, 'B2':200, 'B21':300,'B22':400, 'B3':400}) +data2.update({'top':1000, 'B1':100, 'B2':200, 'B21':21,'B22':22, 'B3':300}) + +#data2 +#{'a': 0, 'c': 2, 'b': 1, 'e': 4, 'd': 3, 'g': 6, 'f': 5, 'h': 7, +#'top': 1000, 'B22': 22, 'B21': 21, 'B1': 100, 'B2': 200, 'B3': 300} + +print('\n tree with dictionary data') +print(branch2(tree2)) # results look correct for testxb=0 and 1 + + +#parameters/coefficients map coefficient names to indices, list of indices into +#a 1d params one for each leave and branch + +#Note: dict looses ordering +paramsind = { + 'B1': [], + 'a': ['consta', 'p'], + 'b': ['constb', 'p'], + 'B2': ['const2', 'x2'], + 'B21': [], + 'c': ['consta', 'p', 'time'], + 'd': ['consta', 'p', 'time'], + 'B22': ['x22'], + 'e': ['conste', 'p', 'hince'], + 'f': ['constt', 'p', 'hincf'], + 'g': [ 'p', 'hincg'], + 'B3': [], + 'h': ['consth', 'p', 'h'], + 'top': []} + +#unique, parameter array names, +#sorted alphabetically, order is/should be only internal + +paramsnames = sorted(set([i for j in itervalues(paramsind) for i in j])) + +#mapping coefficient names to indices to unique/parameter array +paramsidx = dict((name, idx) for (idx,name) in enumerate(paramsnames)) + +#mapping branch and leaf names to index in parameter array +inddict = dict((k,[paramsidx[j] for j in v]) for k,v in iteritems(paramsind)) + +''' +>>> paramsnames +['const2', 'consta', 'constb', 'conste', 'consth', 'constt', 'h', 'hince', + 'hincf', 'hincg', 'p', 'time', 'x2', 'x22'] +>>> parmasidx +{'conste': 3, 'consta': 1, 'constb': 2, 'h': 6, 'time': 11, 'consth': 4, + 'p': 10, 'constt': 5, 'const2': 0, 'x2': 12, 'x22': 13, 'hince': 7, + 'hincg': 9, 'hincf': 8} +>>> inddict +{'a': [1, 10], 'c': [1, 10, 11], 'b': [2, 10], 'e': [3, 10, 7], + 'd': [1, 10, 11], 'g': [10, 9], 'f': [5, 10, 8], 'h': [4, 10, 6], + 'top': [], 'B22': [13], 'B21': [], 'B1': [], 'B2': [0, 12], 'B3': []} +>>> paramsind +{'a': ['consta', 'p'], 'c': ['consta', 'p', 'time'], 'b': ['constb', 'p'], + 'e': ['conste', 'p', 'hince'], 'd': ['consta', 'p', 'time'], + 'g': ['p', 'hincg'], 'f': ['constt', 'p', 'hincf'], 'h': ['consth', 'p', 'h'], + 'top': [], 'B22': ['x22'], 'B21': [], 'B1': [], 'B2': ['const2', 'x2'], + 'B3': []} +''' diff --git a/statsmodels/sandbox/rls.py b/statsmodels/sandbox/rls.py new file mode 100644 index 0000000..dcb23fd --- /dev/null +++ b/statsmodels/sandbox/rls.py @@ -0,0 +1,152 @@ +"""Restricted least squares + +from pandas +License: Simplified BSD +""" +from __future__ import print_function +import numpy as np +from statsmodels.regression.linear_model import WLS, GLS, RegressionResults + +class RLS(GLS): + """ + Restricted general least squares model that handles linear constraints + + Parameters + ---------- + endog: array-like + n length array containing the dependent variable + exog: array-like + n-by-p array of independent variables + constr: array-like + k-by-p array of linear constraints + param (0.): array-like or scalar + p-by-1 array (or scalar) of constraint parameters + sigma (None): scalar or array-like + The weighting matrix of the covariance. No scaling by default (OLS). + If sigma is a scalar, then it is converted into an n-by-n diagonal + matrix with sigma as each diagonal element. + If sigma is an n-length array, then it is assumed to be a diagonal + matrix with the given sigma on the diagonal (WLS). + + Notes + ----- + endog = exog * beta + epsilon + weights' * constr * beta = param + + See Greene and Seaks, "The Restricted Least Squares Estimator: + A Pedagogical Note", The Review of Economics and Statistics, 1991. + """ + + def __init__(self, endog, exog, constr, param=0., sigma=None): + N, Q = exog.shape + constr = np.asarray(constr) + if constr.ndim == 1: + K, P = 1, constr.shape[0] + else: + K, P = constr.shape + if Q != P: + raise Exception('Constraints and design do not align') + self.ncoeffs = Q + self.nconstraint = K + self.constraint = constr + if np.isscalar(param) and K > 1: + param = np.ones((K,)) * param + self.param = param + if sigma is None: + sigma = 1. + if np.isscalar(sigma): + sigma = np.ones(N) * sigma + sigma = np.squeeze(sigma) + if sigma.ndim == 1: + self.sigma = np.diag(sigma) + self.cholsigmainv = np.diag(np.sqrt(sigma)) + else: + self.sigma = sigma + self.cholsigmainv = np.linalg.cholesky(np.linalg.pinv(self.sigma)).T + super(GLS, self).__init__(endog, exog) + + _rwexog = None + @property + def rwexog(self): + """Whitened exogenous variables augmented with restrictions""" + if self._rwexog is None: + P = self.ncoeffs + K = self.nconstraint + design = np.zeros((P + K, P + K)) + design[:P, :P] = np.dot(self.wexog.T, self.wexog) #top left + constr = np.reshape(self.constraint, (K, P)) + design[:P, P:] = constr.T #top right partition + design[P:, :P] = constr #bottom left partition + design[P:, P:] = np.zeros((K, K)) #bottom right partition + self._rwexog = design + return self._rwexog + + _inv_rwexog = None + @property + def inv_rwexog(self): + """Inverse of self.rwexog""" + if self._inv_rwexog is None: + self._inv_rwexog = np.linalg.inv(self.rwexog) + return self._inv_rwexog + + _rwendog = None + @property + def rwendog(self): + """Whitened endogenous variable augmented with restriction parameters""" + if self._rwendog is None: + P = self.ncoeffs + K = self.nconstraint + response = np.zeros((P + K,)) + response[:P] = np.dot(self.wexog.T, self.wendog) + response[P:] = self.param + self._rwendog = response + return self._rwendog + + _ncp = None + @property + def rnorm_cov_params(self): + """Parameter covariance under restrictions""" + if self._ncp is None: + P = self.ncoeffs + self._ncp = self.inv_rwexog[:P, :P] + return self._ncp + + _wncp = None + @property + def wrnorm_cov_params(self): + """ + Heteroskedasticity-consistent parameter covariance + Used to calculate White standard errors. + """ + if self._wncp is None: + df = self.df_resid + pred = np.dot(self.wexog, self.coeffs) + eps = np.diag((self.wendog - pred) ** 2) + sigmaSq = np.sum(eps) + pinvX = np.dot(self.rnorm_cov_params, self.wexog.T) + self._wncp = np.dot(np.dot(pinvX, eps), pinvX.T) * df / sigmaSq + return self._wncp + + _coeffs = None + @property + def coeffs(self): + """Estimated parameters""" + if self._coeffs is None: + betaLambda = np.dot(self.inv_rwexog, self.rwendog) + self._coeffs = betaLambda[:self.ncoeffs] + return self._coeffs + + def fit(self): + rncp = self.wrnorm_cov_params + lfit = RegressionResults(self, self.coeffs, normalized_cov_params=rncp) + return lfit + +if __name__=="__main__": + import statsmodels.api as sm + dta = np.genfromtxt('./rlsdata.txt', names=True) + design = np.column_stack((dta['Y'],dta['Y']**2,dta[['NE','NC','W','S']].view(float).reshape(dta.shape[0],-1))) + design = sm.add_constant(design, prepend=True) + rls_mod = RLS(dta['G'],design, constr=[0,0,0,1,1,1,1]) + rls_fit = rls_mod.fit() + print(rls_fit.params) + diff --git a/statsmodels/sandbox/rlsdata.txt b/statsmodels/sandbox/rlsdata.txt new file mode 100644 index 0000000..a7a3d44 --- /dev/null +++ b/statsmodels/sandbox/rlsdata.txt @@ -0,0 +1,50 @@ +G Y NE NC S W +1.62 1550 1 0 0 0 +2.09 3474 1 0 0 0 +2.96 4424 1 0 0 0 +3.5 5444 1 0 0 0 +4.94 6404 1 0 0 0 +6.14 7464 1 0 0 0 +6.43 8919 1 0 0 0 +7 10817 1 0 0 0 +8.24 13287 1 0 0 0 +9.16 17043 1 0 0 0 +10.87 21862 1 0 0 0 +12.17 33892 1 0 0 0 +1.81 1644 0 1 0 0 +2.96 3434 0 1 0 0 +3.81 4474 0 1 0 0 +4.75 5399 0 1 0 0 +5.84 6440 0 1 0 0 +6.38 7401 0 1 0 0 +7.28 8897 0 1 0 0 +8.51 10807 0 1 0 0 +8.44 13213 0 1 0 0 +10.68 17156 0 1 0 0 +10.93 22058 0 1 0 0 +12.76 33926 0 1 0 0 +2.17 1621 0 0 1 0 +3.89 3449 0 0 1 0 +5.09 4436 0 0 1 0 +5.08 5402 0 0 1 0 +6.03 6403 0 0 1 0 +6.73 7406 0 0 1 0 +7.86 8887 0 0 1 0 +9.32 10811 0 0 1 0 +9.4 13238 0 0 1 0 +10.48 16970 0 0 1 0 +11.12 21909 0 0 1 0 +11.81 37702 0 0 1 0 +2.12 1596 0 0 0 1 +3.93 3463 0 0 0 1 +5.02 4478 0 0 0 1 +6.49 5375 0 0 0 1 +5.5 6408 0 0 0 1 +6.67 7390 0 0 0 1 +7.29 8917 0 0 0 1 +8.92 10804 0 0 0 1 +9.52 13268 0 0 0 1 +10.4 17094 0 0 0 1 +11.41 21914 0 0 0 1 +11.61 36618 0 0 0 1 + diff --git a/statsmodels/sandbox/stats/__init__.py b/statsmodels/sandbox/stats/__init__.py new file mode 100644 index 0000000..49b1d30 --- /dev/null +++ b/statsmodels/sandbox/stats/__init__.py @@ -0,0 +1,23 @@ +'''temporary location for enhancements to scipy.stats + +includes +^^^^^^^^ + +* Per Brodtkorb's estimation enhancements to scipy.stats.distributions + - distributions_per.py is copy of scipy.stats.distributions.py with changes + - distributions_profile.py partially extracted classes and functions to + separate code into more managable pieces +* josef's extra distribution and helper functions + - moment helpers + - goodness of fit test + - fitting distributions with some fixed parameters + - find best distribution that fits data: working script +* example and test folders to keep all together + +status +^^^^^^ + +mixed status : from not-working to well-tested + + +''' diff --git a/statsmodels/sandbox/stats/contrast_tools.py b/statsmodels/sandbox/stats/contrast_tools.py new file mode 100644 index 0000000..67d7440 --- /dev/null +++ b/statsmodels/sandbox/stats/contrast_tools.py @@ -0,0 +1,967 @@ +'''functions to work with contrasts for multiple tests + +contrast matrices for comparing all pairs, all levels to reference level, ... +extension to 2-way groups in progress + +TwoWay: class for bringing two-way analysis together and try out +various helper functions + + +Idea for second part +- get all transformation matrices to move in between different full rank + parameterizations +- standardize to one parameterization to get all interesting effects. + +- multivariate normal distribution + - exploit or expand what we have in LikelihoodResults, cov_params, f_test, + t_test, example: resols_dropf_full.cov_params(C2) + - connect to new multiple comparison for contrast matrices, based on + multivariate normal or t distribution (Hothorn, Bretz, Westfall) + +''' + + + +from __future__ import print_function +from statsmodels.compat.python import zip +import numpy as np + +#next 3 functions copied from multicomp.py + +def contrast_allpairs(nm): + '''contrast or restriction matrix for all pairs of nm variables + + Parameters + ---------- + nm : int + + Returns + ------- + contr : ndarray, 2d, (nm*(nm-1)/2, nm) + contrast matrix for all pairwise comparisons + + ''' + contr = [] + for i in range(nm): + for j in range(i+1, nm): + contr_row = np.zeros(nm) + contr_row[i] = 1 + contr_row[j] = -1 + contr.append(contr_row) + return np.array(contr) + +def contrast_all_one(nm): + '''contrast or restriction matrix for all against first comparison + + Parameters + ---------- + nm : int + + Returns + ------- + contr : ndarray, 2d, (nm-1, nm) + contrast matrix for all against first comparisons + + ''' + contr = np.column_stack((np.ones(nm-1), -np.eye(nm-1))) + return contr + +def contrast_diff_mean(nm): + '''contrast or restriction matrix for all against mean comparison + + Parameters + ---------- + nm : int + + Returns + ------- + contr : ndarray, 2d, (nm-1, nm) + contrast matrix for all against mean comparisons + + ''' + return np.eye(nm) - np.ones((nm,nm))/nm + +def signstr(x, noplus=False): + if x in [-1,0,1]: + if not noplus: + return '+' if np.sign(x)>=0 else '-' + else: + return '' if np.sign(x)>=0 else '-' + else: + return str(x) + + +def contrast_labels(contrasts, names, reverse=False): + if reverse: + sl = slice(None, None, -1) + else: + sl = slice(None) + labels = [''.join(['%s%s' % (signstr(c, noplus=True),v) + for c,v in zip(row, names)[sl] if c != 0]) + for row in contrasts] + return labels + +def contrast_product(names1, names2, intgroup1=None, intgroup2=None, pairs=False): + '''build contrast matrices for products of two categorical variables + + this is an experimental script and should be converted to a class + + Parameters + ---------- + names1, names2 : lists of strings + contains the list of level labels for each categorical variable + intgroup1, intgroup2 : ndarrays TODO: this part not tested, finished yet + categorical variable + + + Notes + ----- + This creates a full rank matrix. It does not do all pairwise comparisons, + parameterization is using contrast_all_one to get differences with first + level. + + ? does contrast_all_pairs work as a plugin to get all pairs ? + + ''' + + n1 = len(names1) + n2 = len(names2) + names_prod = ['%s_%s' % (i,j) for i in names1 for j in names2] + ee1 = np.zeros((1,n1)) + ee1[0,0] = 1 + if not pairs: + dd = np.r_[ee1, -contrast_all_one(n1)] + else: + dd = np.r_[ee1, -contrast_allpairs(n1)] + + contrast_prod = np.kron(dd[1:], np.eye(n2)) + names_contrast_prod0 = contrast_labels(contrast_prod, names_prod, reverse=True) + names_contrast_prod = [''.join(['%s%s' % (signstr(c, noplus=True),v) + for c,v in zip(row, names_prod)[::-1] if c != 0]) + for row in contrast_prod] + + ee2 = np.zeros((1,n2)) + ee2[0,0] = 1 + #dd2 = np.r_[ee2, -contrast_all_one(n2)] + if not pairs: + dd2 = np.r_[ee2, -contrast_all_one(n2)] + else: + dd2 = np.r_[ee2, -contrast_allpairs(n2)] + + contrast_prod2 = np.kron(np.eye(n1), dd2[1:]) + names_contrast_prod2 = [''.join(['%s%s' % (signstr(c, noplus=True),v) + for c,v in zip(row, names_prod)[::-1] if c != 0]) + for row in contrast_prod2] + + if (not intgroup1 is None) and (not intgroup1 is None): + d1, _ = dummy_1d(intgroup1) + d2, _ = dummy_1d(intgroup2) + dummy = dummy_product(d1, d2) + else: + dummy = None + + return (names_prod, contrast_prod, names_contrast_prod, + contrast_prod2, names_contrast_prod2, dummy) + + + + + +def dummy_1d(x, varname=None): + '''dummy variable for id integer groups + + Paramters + --------- + x : ndarray, 1d + categorical variable, requires integers if varname is None + varname : string + name of the variable used in labels for category levels + + Returns + ------- + dummy : ndarray, 2d + array of dummy variables, one column for each level of the + category (full set) + labels : list of strings + labels for the columns, i.e. levels of each category + + + Notes + ----- + use tools.categorical instead for more more options + + See Also + -------- + statsmodels.tools.categorical + + Examples + -------- + >>> x = np.array(['F', 'F', 'M', 'M', 'F', 'F', 'M', 'M', 'F', 'F', 'M', 'M'], + dtype='|S1') + >>> dummy_1d(x, varname='gender') + (array([[1, 0], + [1, 0], + [0, 1], + [0, 1], + [1, 0], + [1, 0], + [0, 1], + [0, 1], + [1, 0], + [1, 0], + [0, 1], + [0, 1]]), ['gender_F', 'gender_M']) + + ''' + if varname is None: #assumes integer + labels = ['level_%d' % i for i in range(x.max() + 1)] + return (x[:,None]==np.arange(x.max()+1)).astype(int), labels + else: + grouplabels = np.unique(x) + labels = [varname + '_%s' % str(i) for i in grouplabels] + return (x[:,None]==grouplabels).astype(int), labels + + +def dummy_product(d1, d2, method='full'): + '''dummy variable from product of two dummy variables + + Parameters + ---------- + d1, d2 : ndarray + two dummy variables, assumes full set for methods 'drop-last' + and 'drop-first' + method : {'full', 'drop-last', 'drop-first'} + 'full' returns the full product, encoding of intersection of + categories. + The drop methods provide a difference dummy encoding: + (constant, main effects, interaction effects). The first or last columns + of the dummy variable (i.e. levels) are dropped to get full rank + dummy matrix. + + Returns + ------- + dummy : ndarray + dummy variable for product, see method + + ''' + + if method == 'full': + dd = (d1[:,:,None]*d2[:,None,:]).reshape(d1.shape[0],-1) + elif method == 'drop-last': #same as SAS transreg + d12rl = dummy_product(d1[:,:-1], d2[:,:-1]) + dd = np.column_stack((np.ones(d1.shape[0], int), d1[:,:-1], d2[:,:-1],d12rl)) + #Note: dtype int should preserve dtype of d1 and d2 + elif method == 'drop-first': + d12r = dummy_product(d1[:,1:], d2[:,1:]) + dd = np.column_stack((np.ones(d1.shape[0], int), d1[:,1:], d2[:,1:],d12r)) + else: + raise ValueError('method not recognized') + + return dd + +def dummy_limits(d): + '''start and endpoints of groups in a sorted dummy variable array + + helper function for nested categories + + Examples + -------- + >>> d1 = np.array([[1, 0, 0], + [1, 0, 0], + [1, 0, 0], + [1, 0, 0], + [0, 1, 0], + [0, 1, 0], + [0, 1, 0], + [0, 1, 0], + [0, 0, 1], + [0, 0, 1], + [0, 0, 1], + [0, 0, 1]]) + >>> dummy_limits(d1) + (array([0, 4, 8]), array([ 4, 8, 12])) + + get group slices from an array + + >>> [np.arange(d1.shape[0])[b:e] for b,e in zip(*dummy_limits(d1))] + [array([0, 1, 2, 3]), array([4, 5, 6, 7]), array([ 8, 9, 10, 11])] + >>> [np.arange(d1.shape[0])[b:e] for b,e in zip(*dummy_limits(d1))] + [array([0, 1, 2, 3]), array([4, 5, 6, 7]), array([ 8, 9, 10, 11])] + ''' + nobs, nvars = d.shape + start1, col1 = np.nonzero(np.diff(d,axis=0)==1) + end1, col1_ = np.nonzero(np.diff(d,axis=0)==-1) + cc = np.arange(nvars) + #print(cc, np.r_[[0], col1], np.r_[col1_, [nvars-1]] + if ((not (np.r_[[0], col1] == cc).all()) + or (not (np.r_[col1_, [nvars-1]] == cc).all())): + raise ValueError('dummy variable is not sorted') + + start = np.r_[[0], start1+1] + end = np.r_[end1+1, [nobs]] + return start, end + + + +def dummy_nested(d1, d2, method='full'): + '''unfinished and incomplete mainly copy past dummy_product + dummy variable from product of two dummy variables + + Parameters + ---------- + d1, d2 : ndarray + two dummy variables, d2 is assumed to be nested in d1 + Assumes full set for methods 'drop-last' and 'drop-first'. + method : {'full', 'drop-last', 'drop-first'} + 'full' returns the full product, which in this case is d2. + The drop methods provide an effects encoding: + (constant, main effects, subgroup effects). The first or last columns + of the dummy variable (i.e. levels) are dropped to get full rank + encoding. + + Returns + ------- + dummy : ndarray + dummy variable for product, see method + + ''' + if method == 'full': + return d2 + + start1, end1 = dummy_limits(d1) + start2, end2 = dummy_limits(d2) + first = np.in1d(start2, start1) + last = np.in1d(end2, end1) + equal = (first == last) + col_dropf = ~first*~equal + col_dropl = ~last*~equal + + + if method == 'drop-last': + d12rl = dummy_product(d1[:,:-1], d2[:,:-1]) + dd = np.column_stack((np.ones(d1.shape[0], int), d1[:,:-1], d2[:,col_dropl])) + #Note: dtype int should preserve dtype of d1 and d2 + elif method == 'drop-first': + d12r = dummy_product(d1[:,1:], d2[:,1:]) + dd = np.column_stack((np.ones(d1.shape[0], int), d1[:,1:], d2[:,col_dropf])) + else: + raise ValueError('method not recognized') + + return dd, col_dropf, col_dropl + + +class DummyTransform(object): + '''Conversion between full rank dummy encodings + + + y = X b + u + b = C a + a = C^{-1} b + + y = X C a + u + + define Z = X C, then + + y = Z a + u + + contrasts: + + R_b b = r + + R_a a = R_b C a = r + + where R_a = R_b C + + Here C is the transform matrix, with dot_left and dot_right as the main + methods, and the same for the inverse transform matrix, C^{-1} + + Note: + - The class was mainly written to keep left and right straight. + - No checking is done. + - not sure yet if method names make sense + + + ''' + + def __init__(self, d1, d2): + '''C such that d1 C = d2, with d1 = X, d2 = Z + + should be (x, z) in arguments ? + ''' + self.transf_matrix = np.linalg.lstsq(d1, d2)[0] + self.invtransf_matrix = np.linalg.lstsq(d2, d1)[0] + + def dot_left(self, a): + ''' b = C a + ''' + return np.dot(self.transf_matrix, a) + + def dot_right(self, x): + ''' z = x C + ''' + return np.dot(x, self.transf_matrix) + + def inv_dot_left(self, b): + ''' a = C^{-1} b + ''' + return np.dot(self.invtransf_matrix, b) + + def inv_dot_right(self, z): + ''' x = z C^{-1} + ''' + return np.dot(z, self.invtransf_matrix) + + + + + +def groupmean_d(x, d): + '''groupmeans using dummy variables + + Parameters + ---------- + x : array_like, ndim + data array, tested for 1,2 and 3 dimensions + d : ndarray, 1d + dummy variable, needs to have the same length + as x in axis 0. + + Returns + ------- + groupmeans : ndarray, ndim-1 + means for each group along axis 0, the levels + of the groups are the last axis + + Notes + ----- + This will be memory intensive if there are many levels + in the categorical variable, i.e. many columns in the + dummy variable. In this case it is recommended to use + a more efficient version. + + ''' + x = np.asarray(x) +## if x.ndim == 1: +## nvars = 1 +## else: + nvars = x.ndim + 1 + sli = [slice(None)] + [None]*(nvars-2) + [slice(None)] + return (x[...,None] * d[sli]).sum(0)*1./d.sum(0) + + + +class TwoWay(object): + '''a wrapper class for two way anova type of analysis with OLS + + + currently mainly to bring things together + + Notes + ----- + unclear: adding multiple test might assume block design or orthogonality + + This estimates the full dummy version with OLS. + The drop first dummy representation can be recovered through the + transform method. + + TODO: add more methods, tests, pairwise, multiple, marginal effects + try out what can be added for userfriendly access. + + missing: ANOVA table + + ''' + def __init__(self, endog, factor1, factor2, varnames=None): + self.nobs = factor1.shape[0] + if varnames is None: + vname1 = 'a' + vname2 = 'b' + else: + vname1, vname1 = varnames + + self.d1, self.d1_labels = d1, d1_labels = dummy_1d(factor1, vname1) + self.d2, self.d2_labels = d2, d2_labels = dummy_1d(factor2, vname2) + self.nlevel1 = nlevel1 = d1.shape[1] + self.nlevel2 = nlevel2 = d2.shape[1] + + + #get product dummies + res = contrast_product(d1_labels, d2_labels) + prodlab, C1, C1lab, C2, C2lab, _ = res + self.prod_label, self.C1, self.C1_label, self.C2, self.C2_label, _ = res + dp_full = dummy_product(d1, d2, method='full') + dp_dropf = dummy_product(d1, d2, method='drop-first') + self.transform = DummyTransform(dp_full, dp_dropf) + + #estimate the model + self.nvars = dp_full.shape[1] + self.exog = dp_full + self.resols = sm.OLS(endog, dp_full).fit() + self.params = self.resols.params + + #get transformed parameters, (constant, main, interaction effect) + self.params_dropf = self.transform.inv_dot_left(self.params) + self.start_interaction = 1 + (nlevel1 - 1) + (nlevel2 - 1) + self.n_interaction = self.nvars - self.start_interaction + + #convert to cached property + def r_nointer(self): + '''contrast/restriction matrix for no interaction + ''' + nia = self.n_interaction + R_nointer = np.hstack((np.zeros((nia, self.nvars-nia)), np.eye(nia))) + #inter_direct = resols_full_dropf.tval[-nia:] + R_nointer_transf = self.transform.inv_dot_right(R_nointer) + self.R_nointer_transf = R_nointer_transf + return R_nointer_transf + + def ttest_interaction(self): + '''ttests for no-interaction terms are zero + ''' + #use self.r_nointer instead + nia = self.n_interaction + R_nointer = np.hstack((np.zeros((nia, self.nvars-nia)), np.eye(nia))) + #inter_direct = resols_full_dropf.tval[-nia:] + R_nointer_transf = self.transform.inv_dot_right(R_nointer) + self.R_nointer_transf = R_nointer_transf + t_res = self.resols.t_test(R_nointer_transf) + return t_res + + def ftest_interaction(self): + '''ttests for no-interaction terms are zero + ''' + R_nointer_transf = self.r_nointer() + return self.resols.f_test(R_nointer_transf) + + def ttest_conditional_effect(self, factorind): + if factorind == 1: + return self.resols.t_test(self.C1), self.C1_label + else: + return self.resols.t_test(self.C2), self.C2_label + + def summary_coeff(self): + from statsmodels.iolib import SimpleTable + params_arr = self.params.reshape(self.nlevel1, self.nlevel2) + stubs = self.d1_labels + headers = self.d2_labels + title = 'Estimated Coefficients by factors' + table_fmt = dict( + data_fmts = ["%#10.4g"]*self.nlevel2) + return SimpleTable(params_arr, headers, stubs, title=title, + txt_fmt=table_fmt) + + + + + + + +#--------------- tests + +from numpy.testing import assert_equal + +#TODO: several tests still missing, several are in the example with print + +class TestContrastTools(object): + + def __init__(self): + self.v1name = ['a0', 'a1', 'a2'] + self.v2name = ['b0', 'b1'] + self.d1 = np.array([[1, 0, 0], + [1, 0, 0], + [1, 0, 0], + [1, 0, 0], + [0, 1, 0], + [0, 1, 0], + [0, 1, 0], + [0, 1, 0], + [0, 0, 1], + [0, 0, 1], + [0, 0, 1], + [0, 0, 1]]) + + def test_dummy_1d(self): + x = np.array(['F', 'F', 'M', 'M', 'F', 'F', 'M', 'M', 'F', 'F', 'M', 'M'], + dtype='|S1') + d, labels = (np.array([[1, 0], + [1, 0], + [0, 1], + [0, 1], + [1, 0], + [1, 0], + [0, 1], + [0, 1], + [1, 0], + [1, 0], + [0, 1], + [0, 1]]), ['gender_F', 'gender_M']) + res_d, res_labels = dummy_1d(x, varname='gender') + assert_equal(res_d, d) + assert_equal(res_labels, labels) + + def test_contrast_product(self): + res_cp = contrast_product(self.v1name, self.v2name) + res_t = [0]*6 + res_t[0] = ['a0_b0', 'a0_b1', 'a1_b0', 'a1_b1', 'a2_b0', 'a2_b1'] + res_t[1] = np.array([[-1., 0., 1., 0., 0., 0.], + [ 0., -1., 0., 1., 0., 0.], + [-1., 0., 0., 0., 1., 0.], + [ 0., -1., 0., 0., 0., 1.]]) + res_t[2] = ['a1_b0-a0_b0', 'a1_b1-a0_b1', 'a2_b0-a0_b0', 'a2_b1-a0_b1'] + res_t[3] = np.array([[-1., 1., 0., 0., 0., 0.], + [ 0., 0., -1., 1., 0., 0.], + [ 0., 0., 0., 0., -1., 1.]]) + res_t[4] = ['a0_b1-a0_b0', 'a1_b1-a1_b0', 'a2_b1-a2_b0'] + for ii in range(5): + np.testing.assert_equal(res_cp[ii], res_t[ii], err_msg=str(ii)) + + def test_dummy_limits(self): + b,e = dummy_limits(self.d1) + assert_equal(b, np.array([0, 4, 8])) + assert_equal(e, np.array([ 4, 8, 12])) + + + + +if __name__ == '__main__': + tt = TestContrastTools() + tt.test_contrast_product() + tt.test_dummy_1d() + tt.test_dummy_limits() + + import statsmodels.api as sm + + examples = ['small', 'large', None][1] + + v1name = ['a0', 'a1', 'a2'] + v2name = ['b0', 'b1'] + res_cp = contrast_product(v1name, v2name) + print(res_cp) + + y = np.arange(12) + x1 = np.arange(12)//4 + x2 = np.arange(12)//2%2 + + if 'small' in examples: + d1, d1_labels = dummy_1d(x1) + d2, d2_labels = dummy_1d(x2) + + + if 'large' in examples: + x1 = np.repeat(x1, 5, axis=0) + x2 = np.repeat(x2, 5, axis=0) + + nobs = x1.shape[0] + d1, d1_labels = dummy_1d(x1) + d2, d2_labels = dummy_1d(x2) + + dd_full = dummy_product(d1, d2, method='full') + dd_dropl = dummy_product(d1, d2, method='drop-last') + dd_dropf = dummy_product(d1, d2, method='drop-first') + + #Note: full parameterization of dummies is orthogonal + #np.eye(6)*10 in "large" example + print((np.dot(dd_full.T, dd_full) == np.diag(dd_full.sum(0))).all()) + + #check that transforms work + #generate 3 data sets with the 3 different parameterizations + + effect_size = [1., 0.01][1] + noise_scale = [0.001, 0.1][0] + noise = noise_scale * np.random.randn(nobs) + beta = effect_size * np.arange(1,7) + ydata_full = (dd_full * beta).sum(1) + noise + ydata_dropl = (dd_dropl * beta).sum(1) + noise + ydata_dropf = (dd_dropf * beta).sum(1) + noise + + resols_full_full = sm.OLS(ydata_full, dd_full).fit() + resols_full_dropf = sm.OLS(ydata_full, dd_dropf).fit() + params_f_f = resols_full_full.params + params_f_df = resols_full_dropf.params + + resols_dropf_full = sm.OLS(ydata_dropf, dd_full).fit() + resols_dropf_dropf = sm.OLS(ydata_dropf, dd_dropf).fit() + params_df_f = resols_dropf_full.params + params_df_df = resols_dropf_dropf.params + + + tr_of = np.linalg.lstsq(dd_dropf, dd_full)[0] + tr_fo = np.linalg.lstsq(dd_full, dd_dropf)[0] + print(np.dot(tr_fo, params_df_df) - params_df_f) + print(np.dot(tr_of, params_f_f) - params_f_df) + + transf_f_df = DummyTransform(dd_full, dd_dropf) + print(np.max(np.abs((dd_full - transf_f_df.inv_dot_right(dd_dropf))))) + print(np.max(np.abs((dd_dropf - transf_f_df.dot_right(dd_full))))) + print(np.max(np.abs((params_df_df + - transf_f_df.inv_dot_left(params_df_f))))) + np.max(np.abs((params_f_df + - transf_f_df.inv_dot_left(params_f_f)))) + + prodlab, C1, C1lab, C2, C2lab,_ = contrast_product(v1name, v2name) + + print('\ntvalues for no effect of factor 1') + print('each test is conditional on a level of factor 2') + print(C1lab) + print(resols_dropf_full.t_test(C1).tvalue) + + print('\ntvalues for no effect of factor 2') + print('each test is conditional on a level of factor 1') + print(C2lab) + print(resols_dropf_full.t_test(C2).tvalue) + + #covariance matrix of restrictions C2, note: orthogonal + resols_dropf_full.cov_params(C2) + + #testing for no interaction effect + R_noint = np.hstack((np.zeros((2,4)), np.eye(2))) + inter_direct = resols_full_dropf.tvalues[-2:] + inter_transf = resols_full_full.t_test(transf_f_df.inv_dot_right(R_noint)).tvalue + print(np.max(np.abs((inter_direct - inter_transf)))) + + #now with class version + tw = TwoWay(ydata_dropf, x1, x2) + print(tw.ttest_interaction().tvalue) + print(tw.ttest_interaction().pvalue) + print(tw.ftest_interaction().fvalue) + print(tw.ftest_interaction().pvalue) + print(tw.ttest_conditional_effect(1)[0].tvalue) + print(tw.ttest_conditional_effect(2)[0].tvalue) + print(tw.summary_coeff()) + + + + + + + + + + + + + + + + + +''' documentation for early examples while developing - some have changed already +>>> y = np.arange(12) +>>> y +array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) +>>> x1 = np.arange(12)//4 +>>> x1 +array([0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2]) +>>> x2 = np.arange(12)//2%2 +>>> x2 +array([0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1]) + +>>> d1 = dummy_1d(x1) +>>> d1 +array([[1, 0, 0], + [1, 0, 0], + [1, 0, 0], + [1, 0, 0], + [0, 1, 0], + [0, 1, 0], + [0, 1, 0], + [0, 1, 0], + [0, 0, 1], + [0, 0, 1], + [0, 0, 1], + [0, 0, 1]]) + +>>> d2 = dummy_1d(x2) +>>> d2 +array([[1, 0], + [1, 0], + [0, 1], + [0, 1], + [1, 0], + [1, 0], + [0, 1], + [0, 1], + [1, 0], + [1, 0], + [0, 1], + [0, 1]]) + +>>> d12 = dummy_product(d1, d2) +>>> d12 +array([[1, 0, 0, 0, 0, 0], + [1, 0, 0, 0, 0, 0], + [0, 1, 0, 0, 0, 0], + [0, 1, 0, 0, 0, 0], + [0, 0, 1, 0, 0, 0], + [0, 0, 1, 0, 0, 0], + [0, 0, 0, 1, 0, 0], + [0, 0, 0, 1, 0, 0], + [0, 0, 0, 0, 1, 0], + [0, 0, 0, 0, 1, 0], + [0, 0, 0, 0, 0, 1], + [0, 0, 0, 0, 0, 1]]) + + +>>> d12rl = dummy_product(d1[:,:-1], d2[:,:-1]) +>>> np.column_stack((np.ones(d1.shape[0]), d1[:,:-1], d2[:,:-1],d12rl)) +array([[ 1., 1., 0., 1., 1., 0.], + [ 1., 1., 0., 1., 1., 0.], + [ 1., 1., 0., 0., 0., 0.], + [ 1., 1., 0., 0., 0., 0.], + [ 1., 0., 1., 1., 0., 1.], + [ 1., 0., 1., 1., 0., 1.], + [ 1., 0., 1., 0., 0., 0.], + [ 1., 0., 1., 0., 0., 0.], + [ 1., 0., 0., 1., 0., 0.], + [ 1., 0., 0., 1., 0., 0.], + [ 1., 0., 0., 0., 0., 0.], + [ 1., 0., 0., 0., 0., 0.]]) +''' + + + + +#nprod = ['%s_%s' % (i,j) for i in ['a0', 'a1', 'a2'] for j in ['b0', 'b1']] +#>>> [''.join(['%s%s' % (signstr(c),v) for c,v in zip(row, nprod) if c != 0]) +# for row in np.kron(dd[1:], np.eye(2))] + + + +''' +>>> nprod = ['%s_%s' % (i,j) for i in ['a0', 'a1', 'a2'] for j in ['b0', 'b1']] +>>> nprod +['a0_b0', 'a0_b1', 'a1_b0', 'a1_b1', 'a2_b0', 'a2_b1'] +>>> [''.join(['%s%s' % (signstr(c),v) for c,v in zip(row, nprod) if c != 0]) for row in np.kron(dd[1:], np.eye(2))] +['-a0b0+a1b0', '-a0b1+a1b1', '-a0b0+a2b0', '-a0b1+a2b1'] +>>> [''.join(['%s%s' % (signstr(c),v) for c,v in zip(row, nprod)[::-1] if c != 0]) for row in np.kron(dd[1:], np.eye(2))] +['+a1_b0-a0_b0', '+a1_b1-a0_b1', '+a2_b0-a0_b0', '+a2_b1-a0_b1'] + +>>> np.r_[[[1,0,0,0,0]],contrast_all_one(5)] +array([[ 1., 0., 0., 0., 0.], + [ 1., -1., 0., 0., 0.], + [ 1., 0., -1., 0., 0.], + [ 1., 0., 0., -1., 0.], + [ 1., 0., 0., 0., -1.]]) + +>>> idxprod = [(i,j) for i in range(3) for j in range(2)] +>>> idxprod +[(0, 0), (0, 1), (1, 0), (1, 1), (2, 0), (2, 1)] +>>> np.array(idxprod).reshape(2,3,2,order='F')[:,:,0] +array([[0, 1, 2], + [0, 1, 2]]) +>>> np.array(idxprod).reshape(2,3,2,order='F')[:,:,1] +array([[0, 0, 0], + [1, 1, 1]]) +>>> dd3_ = np.r_[[[0,0,0]],contrast_all_one(3)] + + + +pairwise contrasts and reparameterization + +dd = np.r_[[[1,0,0,0,0]],-contrast_all_one(5)] +>>> dd +array([[ 1., 0., 0., 0., 0.], + [-1., 1., 0., 0., 0.], + [-1., 0., 1., 0., 0.], + [-1., 0., 0., 1., 0.], + [-1., 0., 0., 0., 1.]]) +>>> np.dot(dd.T, np.arange(5)) +array([-10., 1., 2., 3., 4.]) +>>> np.round(np.linalg.inv(dd.T)).astype(int) +array([[1, 1, 1, 1, 1], + [0, 1, 0, 0, 0], + [0, 0, 1, 0, 0], + [0, 0, 0, 1, 0], + [0, 0, 0, 0, 1]]) +>>> np.round(np.linalg.inv(dd)).astype(int) +array([[1, 0, 0, 0, 0], + [1, 1, 0, 0, 0], + [1, 0, 1, 0, 0], + [1, 0, 0, 1, 0], + [1, 0, 0, 0, 1]]) +>>> dd +array([[ 1., 0., 0., 0., 0.], + [-1., 1., 0., 0., 0.], + [-1., 0., 1., 0., 0.], + [-1., 0., 0., 1., 0.], + [-1., 0., 0., 0., 1.]]) +>>> ddinv=np.round(np.linalg.inv(dd.T)).astype(int) +>>> np.dot(ddinv, np.arange(5)) +array([10, 1, 2, 3, 4]) +>>> np.dot(dd, np.arange(5)) +array([ 0., 1., 2., 3., 4.]) +>>> np.dot(dd, 5+np.arange(5)) +array([ 5., 1., 2., 3., 4.]) +>>> ddinv2 = np.round(np.linalg.inv(dd)).astype(int) +>>> np.dot(ddinv2, np.arange(5)) +array([0, 1, 2, 3, 4]) +>>> np.dot(ddinv2, 5+np.arange(5)) +array([ 5, 11, 12, 13, 14]) +>>> np.dot(ddinv2, [5, 0, 0 , 1, 2]) +array([5, 5, 5, 6, 7]) +>>> np.dot(ddinv2, dd) +array([[ 1., 0., 0., 0., 0.], + [ 0., 1., 0., 0., 0.], + [ 0., 0., 1., 0., 0.], + [ 0., 0., 0., 1., 0.], + [ 0., 0., 0., 0., 1.]]) + + + +>>> dd3 = -np.r_[[[1,0,0]],contrast_all_one(3)] +>>> dd2 = -np.r_[[[1,0]],contrast_all_one(2)] +>>> np.kron(np.eye(3), dd2) +array([[-1., 0., 0., 0., 0., 0.], + [-1., 1., 0., 0., 0., 0.], + [ 0., 0., -1., 0., 0., 0.], + [ 0., 0., -1., 1., 0., 0.], + [ 0., 0., 0., 0., -1., 0.], + [ 0., 0., 0., 0., -1., 1.]]) +>>> dd2 +array([[-1., 0.], + [-1., 1.]]) +>>> np.kron(np.eye(3), dd2[1:]) +array([[-1., 1., 0., 0., 0., 0.], + [ 0., 0., -1., 1., 0., 0.], + [ 0., 0., 0., 0., -1., 1.]]) +>>> np.kron(dd[1:], np.eye(2)) +array([[-1., 0., 1., 0., 0., 0.], + [ 0., -1., 0., 1., 0., 0.], + [-1., 0., 0., 0., 1., 0.], + [ 0., -1., 0., 0., 0., 1.]]) + + + +d_ = np.r_[[[1,0,0,0,0]],contrast_all_one(5)] +>>> d_ +array([[ 1., 0., 0., 0., 0.], + [ 1., -1., 0., 0., 0.], + [ 1., 0., -1., 0., 0.], + [ 1., 0., 0., -1., 0.], + [ 1., 0., 0., 0., -1.]]) +>>> np.round(np.linalg.pinv(d_)).astype(int) +array([[ 1, 0, 0, 0, 0], + [ 1, -1, 0, 0, 0], + [ 1, 0, -1, 0, 0], + [ 1, 0, 0, -1, 0], + [ 1, 0, 0, 0, -1]]) +>>> np.linalg.inv(d_).astype(int) +array([[ 1, 0, 0, 0, 0], + [ 1, -1, 0, 0, 0], + [ 1, 0, -1, 0, 0], + [ 1, 0, 0, -1, 0], + [ 1, 0, 0, 0, -1]]) + + +group means + +>>> sli = [slice(None)] + [None]*(3-2) + [slice(None)] +>>> (np.column_stack((y, x1, x2))[...,None] * d1[sli]).sum(0)*1./d1.sum(0) +array([[ 1.5, 5.5, 9.5], + [ 0. , 1. , 2. ], + [ 0.5, 0.5, 0.5]]) + +>>> [(z[:,None] * d1).sum(0)*1./d1.sum(0) for z in np.column_stack((y, x1, x2)).T] +[array([ 1.5, 5.5, 9.5]), array([ 0., 1., 2.]), array([ 0.5, 0.5, 0.5])] +>>> + +''' diff --git a/statsmodels/sandbox/stats/diagnostic.py b/statsmodels/sandbox/stats/diagnostic.py new file mode 100644 index 0000000..95c9ddd --- /dev/null +++ b/statsmodels/sandbox/stats/diagnostic.py @@ -0,0 +1,1628 @@ +# -*- coding: utf-8 -*- +"""Various Statistical Tests + + +Author: josef-pktd +License: BSD-3 + +Notes +----- +Almost fully verified against R or Gretl, not all options are the same. +In many cases of Lagrange multiplier tests both the LM test and the F test is +returned. In some but not all cases, R has the option to choose the test +statistic. Some alternative test statistic results have not been verified. + + +TODO +* refactor to store intermediate results +* how easy is it to attach a test that is a class to a result instance, + for example CompareCox as a method compare_cox(self, other) ? +* StatTestMC has been moved and should be deleted + +missing: + +* pvalues for breaks_hansen +* additional options, compare with R, check where ddof is appropriate +* new tests: + - breaks_ap, more recent breaks tests + - specification tests against nonparametric alternatives + + +""" +from __future__ import print_function +from statsmodels.compat.python import iteritems, lrange, map, long +import numpy as np +from scipy import stats +from statsmodels.regression.linear_model import OLS +from statsmodels.tools.tools import add_constant +from statsmodels.tsa.stattools import acf, adfuller +from statsmodels.tsa.tsatools import lagmat +from statsmodels.compat.numpy import np_matrix_rank + +#get the old signature back so the examples work +def unitroot_adf(x, maxlag=None, trendorder=0, autolag='AIC', store=False): + return adfuller(x, maxlag=maxlag, regression=trendorder, autolag=autolag, + store=store, regresults=False) + + +#TODO: I like the bunch pattern for this too. +class ResultsStore(object): + def __str__(self): + return self._str + + + +class CompareCox(object): + '''Cox Test for non-nested models + + Parameters + ---------- + results_x : Result instance + result instance of first model + results_z : Result instance + result instance of second model + attach : bool + + + Formulas from Greene, section 8.3.4 translated to code + + produces correct results for Example 8.3, Greene + + + ''' + + + def run(self, results_x, results_z, attach=True): + '''run Cox test for non-nested models + + Parameters + ---------- + results_x : Result instance + result instance of first model + results_z : Result instance + result instance of second model + attach : bool + If true, then the intermediate results are attached to the instance. + + Returns + ------- + tstat : float + t statistic for the test that including the fitted values of the + first model in the second model has no effect. + pvalue : float + two-sided pvalue for the t statistic + + Notes + ----- + Tests of non-nested hypothesis might not provide unambiguous answers. + The test should be performed in both directions and it is possible + that both or neither test rejects. see ??? for more information. + + References + ---------- + ??? + + ''' + + if not np.allclose(results_x.model.endog, results_z.model.endog): + raise ValueError('endogenous variables in models are not the same') + nobs = results_x.model.endog.shape[0] + x = results_x.model.exog + z = results_z.model.exog + sigma2_x = results_x.ssr/nobs + sigma2_z = results_z.ssr/nobs + yhat_x = results_x.fittedvalues + yhat_z = results_z.fittedvalues + res_dx = OLS(yhat_x, z).fit() + err_zx = res_dx.resid + res_xzx = OLS(err_zx, x).fit() + err_xzx = res_xzx.resid + + sigma2_zx = sigma2_x + np.dot(err_zx.T, err_zx)/nobs + c01 = nobs/2. * (np.log(sigma2_z) - np.log(sigma2_zx)) + v01 = sigma2_x * np.dot(err_xzx.T, err_xzx) / sigma2_zx**2 + q = c01 / np.sqrt(v01) + pval = 2*stats.norm.sf(np.abs(q)) + + if attach: + self.res_dx = res_dx + self.res_xzx = res_xzx + self.c01 = c01 + self.v01 = v01 + self.q = q + self.pvalue = pval + self.dist = stats.norm + + return q, pval + + def __call__(self, results_x, results_z): + return self.run(results_x, results_z, attach=False) + + +compare_cox = CompareCox() +compare_cox.__doc__ = CompareCox.__doc__ + + +class CompareJ(object): + '''J-Test for comparing non-nested models + + Parameters + ---------- + results_x : Result instance + result instance of first model + results_z : Result instance + result instance of second model + attach : bool + + + From description in Greene, section 8.3.3 + + produces correct results for Example 8.3, Greene - not checked yet + #currently an exception, but I don't have clean reload in python session + + check what results should be attached + + ''' + + + def run(self, results_x, results_z, attach=True): + '''run J-test for non-nested models + + Parameters + ---------- + results_x : Result instance + result instance of first model + results_z : Result instance + result instance of second model + attach : bool + If true, then the intermediate results are attached to the instance. + + Returns + ------- + tstat : float + t statistic for the test that including the fitted values of the + first model in the second model has no effect. + pvalue : float + two-sided pvalue for the t statistic + + Notes + ----- + Tests of non-nested hypothesis might not provide unambiguous answers. + The test should be performed in both directions and it is possible + that both or neither test rejects. see ??? for more information. + + References + ---------- + ??? + + ''' + if not np.allclose(results_x.model.endog, results_z.model.endog): + raise ValueError('endogenous variables in models are not the same') + nobs = results_x.model.endog.shape[0] + y = results_x.model.endog + x = results_x.model.exog + z = results_z.model.exog + #sigma2_x = results_x.ssr/nobs + #sigma2_z = results_z.ssr/nobs + yhat_x = results_x.fittedvalues + #yhat_z = results_z.fittedvalues + res_zx = OLS(y, np.column_stack((yhat_x, z))).fit() + self.res_zx = res_zx #for testing + tstat = res_zx.tvalues[0] + pval = res_zx.pvalues[0] + if attach: + self.res_zx = res_zx + self.dist = stats.t(res_zx.df_resid) + self.teststat = tstat + self.pvalue = pval + + return tstat, pval + + def __call__(self, results_x, results_z): + return self.run(results_x, results_z, attach=False) + + +compare_j = CompareJ() +compare_j.__doc__ = CompareJ.__doc__ + + +def acorr_ljungbox(x, lags=None, boxpierce=False): + '''Ljung-Box test for no autocorrelation + + Parameters + ---------- + x : array_like, 1d + data series, regression residuals when used as diagnostic test + lags : None, int or array_like + If lags is an integer then this is taken to be the largest lag + that is included, the test result is reported for all smaller lag length. + If lags is a list or array, then all lags are included up to the largest + lag in the list, however only the tests for the lags in the list are + reported. + If lags is None, then the default maxlag is 12*(nobs/100)^{1/4} + boxpierce : {False, True} + If true, then additional to the results of the Ljung-Box test also the + Box-Pierce test results are returned + + Returns + ------- + lbvalue : float or array + test statistic + pvalue : float or array + p-value based on chi-square distribution + bpvalue : (optionsal), float or array + test statistic for Box-Pierce test + bppvalue : (optional), float or array + p-value based for Box-Pierce test on chi-square distribution + + Notes + ----- + Ljung-Box and Box-Pierce statistic differ in their scaling of the + autocorrelation function. Ljung-Box test is reported to have better + small sample properties. + + TODO: could be extended to work with more than one series + 1d or nd ? axis ? ravel ? + needs more testing + + ''Verification'' + + Looks correctly sized in Monte Carlo studies. + not yet compared to verified values + + Examples + -------- + see example script + + References + ---------- + Greene + Wikipedia + + ''' + x = np.asarray(x) + nobs = x.shape[0] + if lags is None: + lags = lrange(1,41) #TODO: check default; SS: changed to 40 + elif isinstance(lags, (int, long)): + lags = lrange(1,lags+1) + maxlag = max(lags) + lags = np.asarray(lags) + + acfx = acf(x, nlags=maxlag) # normalize by nobs not (nobs-nlags) + # SS: unbiased=False is default now +# acf2norm = acfx[1:maxlag+1]**2 / (nobs - np.arange(1,maxlag+1)) + acf2norm = acfx[1:maxlag+1]**2 / (nobs - np.arange(1,maxlag+1)) + + qljungbox = nobs * (nobs+2) * np.cumsum(acf2norm)[lags-1] + pval = stats.chi2.sf(qljungbox, lags) + if not boxpierce: + return qljungbox, pval + else: + qboxpierce = nobs * np.cumsum(acfx[1:maxlag+1]**2)[lags-1] + pvalbp = stats.chi2.sf(qboxpierce, lags) + return qljungbox, pval, qboxpierce, pvalbp + +def acorr_lm(x, maxlag=None, autolag='AIC', store=False, regresults=False): + '''Lagrange Multiplier tests for autocorrelation + + This is a generic Lagrange Multiplier test for autocorrelation. I don't + have a reference for it, but it returns Engle's ARCH test if x is the + squared residual array. A variation on it with additional exogenous + variables is the Breusch-Godfrey autocorrelation test. + + Parameters + ---------- + resid : ndarray, (nobs,) + residuals from an estimation, or time series + maxlag : int + highest lag to use + autolag : None or string + If None, then a fixed number of lags given by maxlag is used. + store : bool + If true then the intermediate results are also returned + + Returns + ------- + lm : float + Lagrange multiplier test statistic + lmpval : float + p-value for Lagrange multiplier test + fval : float + fstatistic for F test, alternative version of the same test based on + F test for the parameter restriction + fpval : float + pvalue for F test + resstore : instance (optional) + a class instance that holds intermediate results. Only returned if + store=True + + See Also + -------- + het_arch + acorr_breusch_godfrey + acorr_ljung_box + + ''' + + if regresults: + store = True + + x = np.asarray(x) + nobs = x.shape[0] + if maxlag is None: + #for adf from Greene referencing Schwert 1989 + maxlag = int(np.ceil(12. * np.power(nobs/100., 1/4.)))#nobs//4 #TODO: check default, or do AIC/BIC + + + xdiff = np.diff(x) + # + xdall = lagmat(x[:,None], maxlag, trim='both') + nobs = xdall.shape[0] + xdall = np.c_[np.ones((nobs,1)), xdall] + xshort = x[-nobs:] + + if store: resstore = ResultsStore() + + if autolag: + #search for lag length with highest information criteria + #Note: I use the same number of observations to have comparable IC + results = {} + for mlag in range(1, maxlag+1): + results[mlag] = OLS(xshort, xdall[:,:mlag+1]).fit() + + if autolag.lower() == 'aic': + bestic, icbestlag = min((v.aic,k) for k,v in iteritems(results)) + elif autolag.lower() == 'bic': + icbest, icbestlag = min((v.bic,k) for k,v in iteritems(results)) + else: + raise ValueError("autolag can only be None, 'AIC' or 'BIC'") + + #rerun ols with best ic + xdall = lagmat(x[:,None], icbestlag, trim='both') + nobs = xdall.shape[0] + xdall = np.c_[np.ones((nobs,1)), xdall] + xshort = x[-nobs:] + usedlag = icbestlag + if regresults: + resstore.results = results + else: + usedlag = maxlag + + resols = OLS(xshort, xdall[:,:usedlag+1]).fit() + fval = resols.fvalue + fpval = resols.f_pvalue + lm = nobs * resols.rsquared + lmpval = stats.chi2.sf(lm, usedlag) + # Note: degrees of freedom for LM test is nvars minus constant = usedlags + #return fval, fpval, lm, lmpval + + if store: + resstore.resols = resols + resstore.usedlag = usedlag + return lm, lmpval, fval, fpval, resstore + else: + return lm, lmpval, fval, fpval + +def het_arch(resid, maxlag=None, autolag=None, store=False, regresults=False, + ddof=0): + '''Engle's Test for Autoregressive Conditional Heteroscedasticity (ARCH) + + Parameters + ---------- + resid : ndarray, (nobs,) + residuals from an estimation, or time series + maxlag : int + highest lag to use + autolag : None or string + If None, then a fixed number of lags given by maxlag is used. + store : bool + If true then the intermediate results are also returned + ddof : int + Not Implemented Yet + If the residuals are from a regression, or ARMA estimation, then there + are recommendations to correct the degrees of freedom by the number + of parameters that have been estimated, for example ddof=p+a for an + ARMA(p,q) (need reference, based on discussion on R finance mailinglist) + + Returns + ------- + lm : float + Lagrange multiplier test statistic + lmpval : float + p-value for Lagrange multiplier test + fval : float + fstatistic for F test, alternative version of the same test based on + F test for the parameter restriction + fpval : float + pvalue for F test + resstore : instance (optional) + a class instance that holds intermediate results. Only returned if + store=True + + Notes + ----- + verified agains R:FinTS::ArchTest + + ''' + + return acorr_lm(resid**2, maxlag=maxlag, autolag=autolag, store=store, + regresults=regresults) + + +def acorr_breusch_godfrey(results, nlags=None, store=False): + '''Breusch Godfrey Lagrange Multiplier tests for residual autocorrelation + + Parameters + ---------- + results : Result instance + Estimation results for which the residuals are tested for serial + correlation + nlags : int + Number of lags to include in the auxiliary regression. (nlags is + highest lag) + store : bool + If store is true, then an additional class instance that contains + intermediate results is returned. + + Returns + ------- + lm : float + Lagrange multiplier test statistic + lmpval : float + p-value for Lagrange multiplier test + fval : float + fstatistic for F test, alternative version of the same test based on + F test for the parameter restriction + fpval : float + pvalue for F test + resstore : instance (optional) + a class instance that holds intermediate results. Only returned if + store=True + + Notes + ----- + BG adds lags of residual to exog in the design matrix for the auxiliary + regression with residuals as endog, + see Greene 12.7.1. + + References + ---------- + Greene Econometrics, 5th edition + + ''' + + x = np.asarray(results.resid) + exog_old = results.model.exog + nobs = x.shape[0] + if nlags is None: + #for adf from Greene referencing Schwert 1989 + nlags = np.trunc(12. * np.power(nobs/100., 1/4.))#nobs//4 #TODO: check default, or do AIC/BIC + nlags = int(nlags) + + x = np.concatenate((np.zeros(nlags), x)) + + #xdiff = np.diff(x) + # + xdall = lagmat(x[:,None], nlags, trim='both') + nobs = xdall.shape[0] + xdall = np.c_[np.ones((nobs,1)), xdall] + xshort = x[-nobs:] + exog = np.column_stack((exog_old, xdall)) + k_vars = exog.shape[1] + + if store: resstore = ResultsStore() + + resols = OLS(xshort, exog).fit() + ft = resols.f_test(np.eye(nlags, k_vars, k_vars - nlags)) + fval = ft.fvalue + fpval = ft.pvalue + fval = np.squeeze(fval)[()] #TODO: fix this in ContrastResults + fpval = np.squeeze(fpval)[()] + lm = nobs * resols.rsquared + lmpval = stats.chi2.sf(lm, nlags) + # Note: degrees of freedom for LM test is nvars minus constant = usedlags + #return fval, fpval, lm, lmpval + + if store: + resstore.resols = resols + resstore.usedlag = nlags + return lm, lmpval, fval, fpval, resstore + else: + return lm, lmpval, fval, fpval + + +msg = "Use acorr_breusch_godfrey, acorr_breush_godfrey will be removed " \ + "in 0.9 \n (Note: misspelling missing 'c')," + +acorr_breush_godfrey = np.deprecate(acorr_breusch_godfrey, 'acorr_breush_godfrey', + 'acorr_breusch_godfrey', + msg) + + +def het_breuschpagan(resid, exog_het): + '''Breusch-Pagan Lagrange Multiplier test for heteroscedasticity + + The tests the hypothesis that the residual variance does not depend on + the variables in x in the form + + :math: \sigma_i = \\sigma * f(\\alpha_0 + \\alpha z_i) + + Homoscedasticity implies that $\\alpha=0$ + + + Parameters + ---------- + resid : arraylike, (nobs,) + For the Breusch-Pagan test, this should be the residual of a regression. + If an array is given in exog, then the residuals are calculated by + the an OLS regression or resid on exog. In this case resid should + contain the dependent variable. Exog can be the same as x. + TODO: I dropped the exog option, should I add it back? + exog_het : array_like, (nobs, nvars) + This contains variables that might create data dependent + heteroscedasticity. + + Returns + ------- + lm : float + lagrange multiplier statistic + lm_pvalue :float + p-value of lagrange multiplier test + fvalue : float + f-statistic of the hypothesis that the error variance does not depend + on x + f_pvalue : float + p-value for the f-statistic + + Notes + ----- + Assumes x contains constant (for counting dof and calculation of R^2). + In the general description of LM test, Greene mentions that this test + exaggerates the significance of results in small or moderately large + samples. In this case the F-statistic is preferrable. + + *Verification* + + Chisquare test statistic is exactly (<1e-13) the same result as bptest + in R-stats with defaults (studentize=True). + + Implementation + This is calculated using the generic formula for LM test using $R^2$ + (Greene, section 17.6) and not with the explicit formula + (Greene, section 11.4.3). + The degrees of freedom for the p-value assume x is full rank. + + References + ---------- + http://en.wikipedia.org/wiki/Breusch%E2%80%93Pagan_test + Greene 5th edition + Breusch, Pagan article + + ''' + + x = np.asarray(exog_het) + y = np.asarray(resid)**2 + nobs, nvars = x.shape + resols = OLS(y, x).fit() + fval = resols.fvalue + fpval = resols.f_pvalue + lm = nobs * resols.rsquared + # Note: degrees of freedom for LM test is nvars minus constant + return lm, stats.chi2.sf(lm, nvars-1), fval, fpval + +het_breushpagan = np.deprecate(het_breuschpagan, 'het_breushpagan', 'het_breuschpagan', + "Use het_breuschpagan, het_breushpagan will be " + "removed in 0.9 \n(Note: misspelling missing 'c')") + +def het_white(resid, exog, retres=False): + '''White's Lagrange Multiplier Test for Heteroscedasticity + + Parameters + ---------- + resid : array_like + residuals, square of it is used as endogenous variable + exog : array_like + possible explanatory variables for variance, squares and interaction + terms are included in the auxilliary regression. + resstore : instance (optional) + a class instance that holds intermediate results. Only returned if + store=True + + Returns + ------- + lm : float + lagrange multiplier statistic + lm_pvalue :float + p-value of lagrange multiplier test + fvalue : float + f-statistic of the hypothesis that the error variance does not depend + on x. This is an alternative test variant not the original LM test. + f_pvalue : float + p-value for the f-statistic + + Notes + ----- + assumes x contains constant (for counting dof) + + question: does f-statistic make sense? constant ? + + References + ---------- + Greene section 11.4.1 5th edition p. 222 + now test statistic reproduces Greene 5th, example 11.3 + + ''' + x = np.asarray(exog) + y = np.asarray(resid) + if x.ndim == 1: + raise ValueError('x should have constant and at least one more variable') + nobs, nvars0 = x.shape + i0,i1 = np.triu_indices(nvars0) + exog = x[:,i0]*x[:,i1] + nobs, nvars = exog.shape + assert nvars == nvars0*(nvars0-1)/2. + nvars0 + resols = OLS(y**2, exog).fit() + fval = resols.fvalue + fpval = resols.f_pvalue + lm = nobs * resols.rsquared + # Note: degrees of freedom for LM test is nvars minus constant + #degrees of freedom take possible reduced rank in exog into account + #df_model checks the rank to determine df + #extra calculation that can be removed: + assert resols.df_model == np_matrix_rank(exog) - 1 + lmpval = stats.chi2.sf(lm, resols.df_model) + return lm, lmpval, fval, fpval + +def _het_goldfeldquandt2_old(y, x, idx, split=None, retres=False): + '''test whether variance is the same in 2 subsamples + + Parameters + ---------- + y : array_like + endogenous variable + x : array_like + exogenous variable, regressors + idx : integer + column index of variable according to which observations are + sorted for the split + split : None or integer or float in intervall (0,1) + index at which sample is split. + If 01: + fpval = stats.f.sf(fval, resols1.df_resid, resols2.df_resid) + ordering = 'larger' + else: + fval = 1./fval; + fpval = stats.f.sf(fval, resols2.df_resid, resols1.df_resid) + ordering = 'smaller' + + if retres: + res = ResultsStore() + res.__doc__ = 'Test Results for Goldfeld-Quandt test of heterogeneity' + res.fval = fval + res.fpval = fpval + res.df_fval = (resols2.df_resid, resols1.df_resid) + res.resols1 = resols1 + res.resols2 = resols2 + res.ordering = ordering + res.split = split + #res.__str__ + res._str = '''The Goldfeld-Quandt test for null hypothesis that the +variance in the second subsample is %s than in the first subsample: + F-statistic =%8.4f and p-value =%8.4f''' % (ordering, fval, fpval) + + return res + else: + return fval, fpval + + +class HetGoldfeldQuandt(object): + '''test whether variance is the same in 2 subsamples + + Parameters + ---------- + y : array_like + endogenous variable + x : array_like + exogenous variable, regressors + idx : integer + column index of variable according to which observations are + sorted for the split + split : None or integer or float in intervall (0,1) + index at which sample is split. + If 01: + if alternative.lower() in ['i', 'inc', 'increasing']: + fpval = stats.f.sf(fval, resols1.df_resid, resols2.df_resid) + ordering = 'increasing' + elif alternative.lower() in ['d', 'dec', 'decreasing']: + fval = fval; + fpval = stats.f.sf(1./fval, resols2.df_resid, resols1.df_resid) + ordering = 'decreasing' + elif alternative.lower() in ['2', '2-sided', 'two-sided']: + fpval_sm = stats.f.cdf(fval, resols2.df_resid, resols1.df_resid) + fpval_la = stats.f.sf(fval, resols2.df_resid, resols1.df_resid) + fpval = 2*min(fpval_sm, fpval_la) + ordering = 'two-sided' + else: + raise ValueError('invalid alternative') + + if attach: + res = self + res.__doc__ = 'Test Results for Goldfeld-Quandt test of heterogeneity' + res.fval = fval + res.fpval = fpval + res.df_fval = (resols2.df_resid, resols1.df_resid) + res.resols1 = resols1 + res.resols2 = resols2 + res.ordering = ordering + res.split = split + #res.__str__ + #TODO: check if string works + res._str = '''The Goldfeld-Quandt test for null hypothesis that the + variance in the second subsample is %s than in the first subsample: + F-statistic =%8.4f and p-value =%8.4f''' % (ordering, fval, fpval) + + return fval, fpval, ordering + #return self + + def __str__(self): + try: + return self._str + except AttributeError: + return repr(self) + + #TODO: missing the alternative option in call + def __call__(self, y, x, idx=None, split=None, drop=None, + alternative='increasing'): + return self.run(y, x, idx=idx, split=split, drop=drop, attach=False, + alternative=alternative) + +het_goldfeldquandt = HetGoldfeldQuandt() +het_goldfeldquandt.__doc__ = het_goldfeldquandt.run.__doc__ + +def linear_harvey_collier(res): + '''Harvey Collier test for linearity + + The Null hypothesis is that the regression is correctly modeled as linear. + + Parameters + ---------- + res : Result instance + + Returns + ------- + tvalue : float + test statistic, based on ttest_1sample + pvalue : float + pvalue of the test + + Notes + ----- + TODO: add sort_by option + + This test is a t-test that the mean of the recursive ols residuals is zero. + Calculating the recursive residuals might take some time for large samples. + + ''' + #I think this has different ddof than + #B.H. Baltagi, Econometrics, 2011, chapter 8 + #but it matches Gretl and R:lmtest, pvalue at decimal=13 + rr = recursive_olsresiduals(res, skip=3, alpha=0.95) + from scipy import stats + + return stats.ttest_1samp(rr[3][3:], 0) + +def linear_rainbow(res, frac = 0.5): + '''Rainbow test for linearity + + The Null hypothesis is that the regression is correctly modelled as linear. + The alternative for which the power might be large are convex, check + + Parameters + ---------- + res : Result instance + + Returns + ------- + fstat : float + test statistic based of F test + pvalue : float + pvalue of the test + + ''' + + nobs = res.nobs + endog = res.model.endog + exog = res.model.exog + lowidx = np.ceil(0.5 * (1 - frac) * nobs).astype(int) + uppidx = np.floor(lowidx + frac * nobs).astype(int) + mi_sl = slice(lowidx, uppidx) + res_mi = OLS(endog[mi_sl], exog[mi_sl]).fit() + nobs_mi = res_mi.model.endog.shape[0] + ss_mi = res_mi.ssr + ss = res.ssr + fstat = (ss - ss_mi) / (nobs-nobs_mi) / ss_mi * res_mi.df_resid + from scipy import stats + pval = stats.f.sf(fstat, nobs - nobs_mi, res_mi.df_resid) + return fstat, pval + +def linear_lm(resid, exog, func=None): + '''Lagrange multiplier test for linearity against functional alternative + + limitations: Assumes currently that the first column is integer. + Currently it doesn't check whether the transformed variables contain NaNs, + for example log of negative number. + + Parameters + ---------- + resid : ndarray + residuals of a regression + exog : ndarray + exogenous variables for which linearity is tested + func : callable + If func is None, then squares are used. func needs to take an array + of exog and return an array of transformed variables. + + Returns + ------- + lm : float + Lagrange multiplier test statistic + lm_pval : float + p-value of Lagrange multiplier tes + ftest : ContrastResult instance + the results from the F test variant of this test + + Notes + ----- + written to match Gretl's linearity test. + The test runs an auxilliary regression of the residuals on the combined + original and transformed regressors. + The Null hypothesis is that the linear specification is correct. + + ''' + from scipy import stats + + if func is None: + func = lambda x: np.power(x, 2) + + exog_aux = np.column_stack((exog, func(exog[:,1:]))) + + nobs, k_vars = exog.shape + ls = OLS(resid, exog_aux).fit() + ftest = ls.f_test(np.eye(k_vars - 1, k_vars * 2 - 1, k_vars)) + lm = nobs * ls.rsquared + lm_pval = stats.chi2.sf(lm, k_vars - 1) + return lm, lm_pval, ftest + +def _neweywestcov(resid, x): + ''' + Did not run yet + + from regstats2 :: + + if idx(29) % HAC (Newey West) + L = round(4*(nobs/100)^(2/9)); + % L = nobs^.25; % as an alternative + hhat = repmat(residuals',p,1).*X'; + xuux = hhat*hhat'; + for l = 1:L; + za = hhat(:,(l+1):nobs)*hhat(:,1:nobs-l)'; + w = 1 - l/(L+1); + xuux = xuux + w*(za+za'); + end + d = struct; + d.covb = xtxi*xuux*xtxi; + ''' + nobs = resid.shape[0] #TODO: check this can only be 1d + nlags = int(round(4*(nobs/100.)**(2/9.))) + hhat = resid * x.T + xuux = np.dot(hhat, hhat.T) + for lag in range(nlags): + za = np.dot(hhat[:,lag:nobs], hhat[:,:nobs-lag].T) + w = 1 - lag/(nobs + 1.) + xuux = xuux + np.dot(w, za+za.T) + xtxi = np.linalg.inv(np.dot(x.T, x)) #QR instead? + covbNW = np.dot(xtxi, np.dot(xuux, xtxi)) + + return covbNW + + + +def _recursive_olsresiduals2(olsresults, skip): + '''this is my original version based on Greene and references + + keep for now for comparison and benchmarking + ''' + y = olsresults.model.endog + x = olsresults.model.exog + nobs, nvars = x.shape + rparams = np.nan * np.zeros((nobs,nvars)) + rresid = np.nan * np.zeros((nobs)) + rypred = np.nan * np.zeros((nobs)) + rvarraw = np.nan * np.zeros((nobs)) + + #XTX = np.zeros((nvars,nvars)) + #XTY = np.zeros((nvars)) + + x0 = x[:skip] + y0 = y[:skip] + XTX = np.dot(x0.T, x0) + XTY = np.dot(x0.T, y0) #xi * y #np.dot(xi, y) + beta = np.linalg.solve(XTX, XTY) + rparams[skip-1] = beta + yipred = np.dot(x[skip-1], beta) + rypred[skip-1] = yipred + rresid[skip-1] = y[skip-1] - yipred + rvarraw[skip-1] = 1+np.dot(x[skip-1],np.dot(np.linalg.inv(XTX),x[skip-1])) + for i in range(skip,nobs): + xi = x[i:i+1,:] + yi = y[i] + xxT = np.dot(xi.T, xi) #xi is 2d 1 row + xy = (xi*yi).ravel() # XTY is 1d #np.dot(xi, yi) #np.dot(xi, y) + print(xy.shape, XTY.shape) + print(XTX) + print(XTY) + beta = np.linalg.solve(XTX, XTY) + rparams[i-1] = beta #this is beta based on info up to t-1 + yipred = np.dot(xi, beta) + rypred[i] = yipred + rresid[i] = yi - yipred + rvarraw[i] = 1 + np.dot(xi,np.dot(np.linalg.inv(XTX),xi.T)) + XTX += xxT + XTY += xy + + i = nobs + beta = np.linalg.solve(XTX, XTY) + rparams[i-1] = beta + + rresid_scaled = rresid/np.sqrt(rvarraw) #this is N(0,sigma2) distributed + nrr = nobs-skip + sigma2 = rresid_scaled[skip-1:].var(ddof=1) + rresid_standardized = rresid_scaled/np.sqrt(sigma2) #N(0,1) distributed + rcusum = rresid_standardized[skip-1:].cumsum() + #confidence interval points in Greene p136 looks strange? + #this assumes sum of independent standard normal + #rcusumci = np.sqrt(np.arange(skip,nobs+1))*np.array([[-1.],[+1.]])*stats.norm.sf(0.025) + a = 1.143 #for alpha=0.99 =0.948 for alpha=0.95 + #following taken from Ploberger, + crit = a*np.sqrt(nrr) + rcusumci = (a*np.sqrt(nrr) + a*np.arange(0,nobs-skip)/np.sqrt(nrr)) \ + * np.array([[-1.],[+1.]]) + return (rresid, rparams, rypred, rresid_standardized, rresid_scaled, + rcusum, rcusumci) + + +def recursive_olsresiduals(olsresults, skip=None, lamda=0.0, alpha=0.95): + '''calculate recursive ols with residuals and cusum test statistic + + Parameters + ---------- + olsresults : instance of RegressionResults + uses only endog and exog + skip : int or None + number of observations to use for initial OLS, if None then skip is + set equal to the number of regressors (columns in exog) + lamda : float + weight for Ridge correction to initial (X'X)^{-1} + alpha : {0.95, 0.99} + confidence level of test, currently only two values supported, + used for confidence interval in cusum graph + + Returns + ------- + rresid : array + recursive ols residuals + rparams : array + recursive ols parameter estimates + rypred : array + recursive prediction of endogenous variable + rresid_standardized : array + recursive residuals standardized so that N(0,sigma2) distributed, where + sigma2 is the error variance + rresid_scaled : array + recursive residuals normalize so that N(0,1) distributed + rcusum : array + cumulative residuals for cusum test + rcusumci : array + confidence interval for cusum test, currently hard coded for alpha=0.95 + + + Notes + ----- + It produces same recursive residuals as other version. This version updates + the inverse of the X'X matrix and does not require matrix inversion during + updating. looks efficient but no timing + + Confidence interval in Greene and Brown, Durbin and Evans is the same as + in Ploberger after a little bit of algebra. + + References + ---------- + jplv to check formulas, follows Harvey + BigJudge 5.5.2b for formula for inverse(X'X) updating + Greene section 7.5.2 + + Brown, R. L., J. Durbin, and J. M. Evans. “Techniques for Testing the + Constancy of Regression Relationships over Time.” + Journal of the Royal Statistical Society. Series B (Methodological) 37, + no. 2 (1975): 149-192. + + ''' + + y = olsresults.model.endog + x = olsresults.model.exog + nobs, nvars = x.shape + if skip is None: + skip = nvars + rparams = np.nan * np.zeros((nobs,nvars)) + rresid = np.nan * np.zeros((nobs)) + rypred = np.nan * np.zeros((nobs)) + rvarraw = np.nan * np.zeros((nobs)) + + + #intialize with skip observations + x0 = x[:skip] + y0 = y[:skip] + #add Ridge to start (not in jplv + XTXi = np.linalg.inv(np.dot(x0.T, x0)+lamda*np.eye(nvars)) + XTY = np.dot(x0.T, y0) #xi * y #np.dot(xi, y) + #beta = np.linalg.solve(XTX, XTY) + beta = np.dot(XTXi, XTY) + #print('beta', beta + rparams[skip-1] = beta + yipred = np.dot(x[skip-1], beta) + rypred[skip-1] = yipred + rresid[skip-1] = y[skip-1] - yipred + rvarraw[skip-1] = 1 + np.dot(x[skip-1],np.dot(XTXi, x[skip-1])) + for i in range(skip,nobs): + xi = x[i:i+1,:] + yi = y[i] + #xxT = np.dot(xi.T, xi) #xi is 2d 1 row + xy = (xi*yi).ravel() # XTY is 1d #np.dot(xi, yi) #np.dot(xi, y) + #print(xy.shape, XTY.shape + #print(XTX + #print(XTY + + # get prediction error with previous beta + yipred = np.dot(xi, beta) + rypred[i] = yipred + residi = yi - yipred + rresid[i] = residi + + #update beta and inverse(X'X) + tmp = np.dot(XTXi, xi.T) + ft = 1 + np.dot(xi, tmp) + + XTXi = XTXi - np.dot(tmp,tmp.T) / ft #BigJudge equ 5.5.15 + + #print('beta', beta + beta = beta + (tmp*residi / ft).ravel() #BigJudge equ 5.5.14 +# #version for testing +# XTY += xy +# beta = np.dot(XTXi, XTY) +# print((tmp*yipred / ft).shape +# print('tmp.shape, ft.shape, beta.shape', tmp.shape, ft.shape, beta.shape + rparams[i] = beta + rvarraw[i] = ft + + + + i = nobs + #beta = np.linalg.solve(XTX, XTY) + #rparams[i] = beta + + rresid_scaled = rresid/np.sqrt(rvarraw) #this is N(0,sigma2) distributed + nrr = nobs-skip + #sigma2 = rresid_scaled[skip-1:].var(ddof=1) #var or sum of squares ? + #Greene has var, jplv and Ploberger have sum of squares (Ass.:mean=0) + #Gretl uses: by reverse engineering matching their numbers + sigma2 = rresid_scaled[skip:].var(ddof=1) + rresid_standardized = rresid_scaled/np.sqrt(sigma2) #N(0,1) distributed + rcusum = rresid_standardized[skip-1:].cumsum() + #confidence interval points in Greene p136 looks strange. Cleared up + #this assumes sum of independent standard normal, which does not take into + #account that we make many tests at the same time + #rcusumci = np.sqrt(np.arange(skip,nobs+1))*np.array([[-1.],[+1.]])*stats.norm.sf(0.025) + if alpha == 0.95: + a = 0.948 #for alpha=0.95 + elif alpha == 0.99: + a = 1.143 #for alpha=0.99 + elif alpha == 0.90: + a = 0.850 + else: + raise ValueError('alpha can only be 0.9, 0.95 or 0.99') + + #following taken from Ploberger, + crit = a*np.sqrt(nrr) + rcusumci = (a*np.sqrt(nrr) + 2*a*np.arange(0,nobs-skip)/np.sqrt(nrr)) \ + * np.array([[-1.],[+1.]]) + return (rresid, rparams, rypred, rresid_standardized, rresid_scaled, + rcusum, rcusumci) + + +def breaks_hansen(olsresults): + '''test for model stability, breaks in parameters for ols, Hansen 1992 + + Parameters + ---------- + olsresults : instance of RegressionResults + uses only endog and exog + + Returns + ------- + teststat : float + Hansen's test statistic + crit : structured array + critical values at alpha=0.95 for different nvars + pvalue Not yet + ft, s : arrays + temporary return for debugging, will be removed + + Notes + ----- + looks good in example, maybe not very powerful for small changes in + parameters + + According to Greene, distribution of test statistics depends on nvar but + not on nobs. + + Test statistic is verified against R:strucchange + + References + ---------- + Greene section 7.5.1, notation follows Greene + + ''' + y = olsresults.model.endog + x = olsresults.model.exog + resid = olsresults.resid + nobs, nvars = x.shape + resid2 = resid**2 + ft = np.c_[x*resid[:,None], (resid2 - resid2.mean())] + s = ft.cumsum(0) + assert (np.abs(s[-1]) < 1e10).all() #can be optimized away + F = nobs*(ft[:,:,None]*ft[:,None,:]).sum(0) + S = (s[:,:,None]*s[:,None,:]).sum(0) + H = np.trace(np.dot(np.linalg.inv(F), S)) + crit95 = np.array([(2,1.9),(6,3.75),(15,3.75),(19,4.52)], + dtype = [('nobs',int), ('crit', float)]) + #TODO: get critical values from Bruce Hansens' 1992 paper + return H, crit95, ft, s + +def breaks_cusumolsresid(olsresidual, ddof=0): + '''cusum test for parameter stability based on ols residuals + + Parameters + ---------- + olsresiduals : ndarray + array of residuals from an OLS estimation + ddof : int + number of parameters in the OLS estimation, used as degrees of freedom + correction for error variance. + + Returns + ------- + sup_b : float + test statistic, maximum of absolute value of scaled cumulative OLS + residuals + pval : float + Probability of observing the data under the null hypothesis of no + structural change, based on asymptotic distribution which is a Brownian + Bridge + crit: list + tabulated critical values, for alpha = 1%, 5% and 10% + + Notes + ----- + tested agains R:strucchange + + Not clear: Assumption 2 in Ploberger, Kramer assumes that exog x have + asymptotically zero mean, x.mean(0) = [1, 0, 0, ..., 0] + Is this really necessary? I don't see how it can affect the test statistic + under the null. It does make a difference under the alternative. + Also, the asymptotic distribution of test statistic depends on this. + + From examples it looks like there is little power for standard cusum if + exog (other than constant) have mean zero. + + References + ---------- + Ploberger, Werner, and Walter Kramer. “The Cusum Test with Ols Residuals.” + Econometrica 60, no. 2 (March 1992): 271-285. + + ''' + resid = olsresidual.ravel() + nobs = len(resid) + nobssigma2 = (resid**2).sum() + if ddof > 0: + #print('ddof', ddof, 1. / (nobs - ddof) * nobs + nobssigma2 = nobssigma2 / (nobs - ddof) * nobs + #B is asymptotically a Brownian Bridge + B = resid.cumsum()/np.sqrt(nobssigma2) # use T*sigma directly + sup_b = np.abs(B).max() #asymptotically distributed as standard Brownian Bridge + crit = [(1,1.63), (5, 1.36), (10, 1.22)] + #Note stats.kstwobign.isf(0.1) is distribution of sup.abs of Brownian Bridge + #>>> stats.kstwobign.isf([0.01,0.05,0.1]) + #array([ 1.62762361, 1.35809864, 1.22384787]) + pval = stats.kstwobign.sf(sup_b) + return sup_b, pval, crit + +#def breaks_cusum(recolsresid): +# '''renormalized cusum test for parameter stability based on recursive residuals +# +# +# still incorrect: in PK, the normalization for sigma is by T not T-K +# also the test statistic is asymptotically a Wiener Process, Brownian motion +# not Brownian Bridge +# for testing: result reject should be identical as in standard cusum version +# +# References +# ---------- +# Ploberger, Werner, and Walter Kramer. “The Cusum Test with Ols Residuals.” +# Econometrica 60, no. 2 (March 1992): 271-285. +# +# ''' +# resid = recolsresid.ravel() +# nobssigma2 = (resid**2).sum() +# #B is asymptotically a Brownian Bridge +# B = resid.cumsum()/np.sqrt(nobssigma2) # use T*sigma directly +# nobs = len(resid) +# denom = 1. + 2. * np.arange(nobs)/(nobs-1.) #not sure about limits +# sup_b = np.abs(B/denom).max() +# #asymptotically distributed as standard Brownian Bridge +# crit = [(1,1.63), (5, 1.36), (10, 1.22)] +# #Note stats.kstwobign.isf(0.1) is distribution of sup.abs of Brownian Bridge +# #>>> stats.kstwobign.isf([0.01,0.05,0.1]) +# #array([ 1.62762361, 1.35809864, 1.22384787]) +# pval = stats.kstwobign.sf(sup_b) +# return sup_b, pval, crit + + +def breaks_AP(endog, exog, skip): + '''supLM, expLM and aveLM by Andrews, and Andrews,Ploberger + + p-values by B Hansen + + just idea for computation of sequence of tests with given change point + (Chow tests) + run recursive ols both forward and backward, match the two so they form a + split of the data, calculate sum of squares for residuals and get test + statistic for each breakpoint between skip and nobs-skip + need to put recursive ols (residuals) into separate function + + alternative: B Hansen loops over breakpoints only once and updates + x'x and xe'xe + update: Andrews is based on GMM estimation not OLS, LM test statistic is + easy to compute because it only requires full sample GMM estimate (p.837) + with GMM the test has much wider applicability than just OLS + + + + for testing loop over single breakpoint Chow test function + + ''' + pass + + +#delete when testing is finished +class StatTestMC(object): + """class to run Monte Carlo study on a statistical test''' + + TODO + print(summary, for quantiles and for histogram + draft in trying out script log + + + this has been copied to tools/mctools.py, with improvements + + """ + + def __init__(self, dgp, statistic): + self.dgp = dgp #staticmethod(dgp) #no self + self.statistic = statistic # staticmethod(statistic) #no self + + def run(self, nrepl, statindices=None, dgpargs=[], statsargs=[]): + '''run the actual Monte Carlo and save results + + + ''' + self.nrepl = nrepl + self.statindices = statindices + self.dgpargs = dgpargs + self.statsargs = statsargs + + dgp = self.dgp + statfun = self.statistic # name ? + + #single return statistic + if statindices is None: + self.nreturn = nreturns = 1 + mcres = np.zeros(nrepl) + for ii in range(nrepl-1): + x = dgp(*dgpargs) #(1e-4+np.random.randn(nobs)).cumsum() + mcres[ii] = statfun(x, *statsargs) #unitroot_adf(x, 2,trendorder=0, autolag=None) + #more than one return statistic + else: + self.nreturn = nreturns = len(statindices) + self.mcres = mcres = np.zeros((nrepl, nreturns)) + for ii in range(nrepl-1): + x = dgp(*dgpargs) #(1e-4+np.random.randn(nobs)).cumsum() + ret = statfun(x, *statsargs) + mcres[ii] = [ret[i] for i in statindices] + + self.mcres = mcres + + def histogram(self, idx=None, critval=None): + '''calculate histogram values + + does not do any plotting + ''' + if self.mcres.ndim == 2: + if not idx is None: + mcres = self.mcres[:,idx] + else: + raise ValueError('currently only 1 statistic at a time') + else: + mcres = self.mcres + + if critval is None: + histo = np.histogram(mcres, bins=10) + else: + if not critval[0] == -np.inf: + bins=np.r_[-np.inf, critval, np.inf] + if not critval[0] == -np.inf: + bins=np.r_[bins, np.inf] + histo = np.histogram(mcres, + bins=np.r_[-np.inf, critval, np.inf]) + + self.histo = histo + self.cumhisto = np.cumsum(histo[0])*1./self.nrepl + self.cumhistoreversed = np.cumsum(histo[0][::-1])[::-1]*1./self.nrepl + return histo, self.cumhisto, self.cumhistoreversed + + def quantiles(self, idx=None, frac=[0.01, 0.025, 0.05, 0.1, 0.975]): + '''calculate quantiles of Monte Carlo results + + ''' + + if self.mcres.ndim == 2: + if not idx is None: + mcres = self.mcres[:,idx] + else: + raise ValueError('currently only 1 statistic at a time') + else: + mcres = self.mcres + + self.frac = frac = np.asarray(frac) + self.mcressort = mcressort = np.sort(self.mcres) + return frac, mcressort[(self.nrepl*frac).astype(int)] + +if __name__ == '__main__': + + examples = ['adf'] + if 'adf' in examples: + + x = np.random.randn(20) + print(acorr_ljungbox(x,4)) + print(unitroot_adf(x)) + + nrepl = 100 + nobs = 100 + mcres = np.zeros(nrepl) + for ii in range(nrepl-1): + x = (1e-4+np.random.randn(nobs)).cumsum() + mcres[ii] = unitroot_adf(x, 2,trendorder=0, autolag=None)[0] + + print((mcres<-2.57).sum()) + print(np.histogram(mcres)) + mcressort = np.sort(mcres) + for ratio in [0.01, 0.025, 0.05, 0.1]: + print(ratio, mcressort[int(nrepl*ratio)]) + + print('critical values in Green table 20.5') + print('sample size = 100') + print('with constant') + print('0.01: -19.8, 0.025: -16.3, 0.05: -13.7, 0.01: -11.0, 0.975: 0.47') + + print('0.01: -3.50, 0.025: -3.17, 0.05: -2.90, 0.01: -2.58, 0.975: 0.26') + crvdg = dict([map(float,s.split(':')) for s in ('0.01: -19.8, 0.025: -16.3, 0.05: -13.7, 0.01: -11.0, 0.975: 0.47'.split(','))]) + crvd = dict([map(float,s.split(':')) for s in ('0.01: -3.50, 0.025: -3.17, 0.05: -2.90, 0.01: -2.58, 0.975: 0.26'.split(','))]) + ''' + >>> crvd + {0.050000000000000003: -13.699999999999999, 0.97499999999999998: 0.46999999999999997, 0.025000000000000001: -16.300000000000001, 0.01: -11.0} + >>> sorted(crvd.values()) + [-16.300000000000001, -13.699999999999999, -11.0, 0.46999999999999997] + ''' + + #for trend = 0 + crit_5lags0p05 =-4.41519 + (-14.0406)/nobs + (-12.575)/nobs**2 + print(crit_5lags0p05) + + + adfstat, _,_,resstore = unitroot_adf(x, 2,trendorder=0, autolag=None, store=1) + + print((mcres>crit_5lags0p05).sum()) + + print(resstore.resols.model.exog[-5:]) + print(x[-5:]) + + print(np.histogram(mcres, bins=[-np.inf, -3.5, -3.17, -2.9 , -2.58, 0.26, np.inf])) + + print(mcressort[(nrepl*(np.array([0.01, 0.025, 0.05, 0.1, 0.975]))).astype(int)]) + + + def randwalksim(nobs=100, drift=0.0): + return (drift+np.random.randn(nobs)).cumsum() + + def normalnoisesim(nobs=500, loc=0.0): + return (loc+np.random.randn(nobs)) + + def adf20(x): + return unitroot_adf(x, 2,trendorder=0, autolag=None)[:2] + + print('\nResults with MC class') + mc1 = StatTestMC(randwalksim, adf20) + mc1.run(1000, statindices=[0,1]) + print(mc1.histogram(0, critval=[-3.5, -3.17, -2.9 , -2.58, 0.26])) + print(mc1.quantiles(0)) + + print('\nLjung Box') + + def lb4(x): + s,p = acorr_ljungbox(x, lags=4) + return s[-1], p[-1] + + def lb4(x): + s,p = acorr_ljungbox(x, lags=1) + return s[0], p[0] + + print('Results with MC class') + mc1 = StatTestMC(normalnoisesim, lb4) + mc1.run(1000, statindices=[0,1]) + print(mc1.histogram(1, critval=[0.01, 0.025, 0.05, 0.1, 0.975])) + print(mc1.quantiles(1)) + print(mc1.quantiles(0)) + print(mc1.histogram(0)) + + nobs = 100 + x = np.ones((nobs,2)) + x[:,1] = np.arange(nobs)/20. + y = x.sum(1) + 1.01*(1+1.5*(x[:,1]>10))*np.random.rand(nobs) + print(het_goldfeldquandt(y,x, 1)) + + y = x.sum(1) + 1.01*(1+0.5*(x[:,1]>10))*np.random.rand(nobs) + print(het_goldfeldquandt(y,x, 1)) + + y = x.sum(1) + 1.01*(1-0.5*(x[:,1]>10))*np.random.rand(nobs) + print(het_goldfeldquandt(y,x, 1)) + + print(het_breuschpagan(y,x)) + print(het_white(y,x)) + + f, fp, fo = het_goldfeldquandt(y,x, 1) + print(f, fp) + resgq = het_goldfeldquandt(y,x, 1, retres=True) + print(resgq) + + #this is just a syntax check: + print(_neweywestcov(y, x)) + + resols1 = OLS(y, x).fit() + print(_neweywestcov(resols1.resid, x)) + print(resols1.cov_params()) + print(resols1.HC0_se) + print(resols1.cov_HC0) + + y = x.sum(1) + 10.*(1-0.5*(x[:,1]>10))*np.random.rand(nobs) + print(HetGoldfeldQuandt().run(y,x, 1, alternative='dec')) + + diff --git a/statsmodels/sandbox/stats/ex_newtests.py b/statsmodels/sandbox/stats/ex_newtests.py new file mode 100644 index 0000000..79a7742 --- /dev/null +++ b/statsmodels/sandbox/stats/ex_newtests.py @@ -0,0 +1,33 @@ + +from __future__ import print_function +from .diagnostic import unitroot_adf + +import statsmodels.datasets.macrodata.data as macro + +macrod = macro.load().data + +print(macro.NOTE) + +print(macrod.dtype.names) + +datatrendli = [ + ('realgdp', 1), + ('realcons', 1), + ('realinv', 1), + ('realgovt', 1), + ('realdpi', 1), + ('cpi', 1), + ('m1', 1), + ('tbilrate', 0), + ('unemp',0), + ('pop', 1), + ('infl',0), + ('realint', 0) + ] + +print('%-10s %5s %-8s' % ('variable', 'trend', ' adf')) +for name, torder in datatrendli: + adf_, pval = unitroot_adf(macrod[name], trendorder=torder)[:2] + print('%-10s %5d %8.4f %8.4f' % (name, torder, adf_, pval)) + + diff --git a/statsmodels/sandbox/stats/multicomp.py b/statsmodels/sandbox/stats/multicomp.py new file mode 100644 index 0000000..a099843 --- /dev/null +++ b/statsmodels/sandbox/stats/multicomp.py @@ -0,0 +1,1977 @@ +''' + +from pystatsmodels mailinglist 20100524 + +Notes: + - unfinished, unverified, but most parts seem to work in MonteCarlo + - one example taken from lecture notes looks ok + - needs cases with non-monotonic inequality for test to see difference between + one-step, step-up and step-down procedures + - FDR doesn't look really better then Bonferoni in the MC examples that I tried +update: + - now tested against R, stats and multtest, + I have all of their methods for p-value correction + - getting Hommel was impossible until I found reference for pvalue correction + - now, since I have p-values correction, some of the original tests (rej/norej) + implementation is not really needed anymore. I think I keep it for reference. + Test procedure for Hommel in development session log + - I haven't updated other functions and classes in here. + - multtest has some good helper function according to docs + - still need to update references, the real papers + - fdr with estimated true hypothesis still missing + - multiple comparison procedures incomplete or missing + - I will get multiple comparison for now only for independent case, which might + be conservative in correlated case (?). + + +some References: + +Gibbons, Jean Dickinson and Chakraborti Subhabrata, 2003, Nonparametric Statistical +Inference, Fourth Edition, Marcel Dekker + p.363: 10.4 THE KRUSKAL-WALLIS ONE-WAY ANOVA TEST AND MULTIPLE COMPARISONS + p.367: multiple comparison for kruskal formula used in multicomp.kruskal + +Sheskin, David J., 2004, Handbook of Parametric and Nonparametric Statistical +Procedures, 3rd ed., Chapman&Hall/CRC + Test 21: The Single-Factor Between-Subjects Analysis of Variance + Test 22: The Kruskal-Wallis One-Way Analysis of Variance by Ranks Test + +Zwillinger, Daniel and Stephen Kokoska, 2000, CRC standard probability and +statistics tables and formulae, Chapman&Hall/CRC + 14.9 WILCOXON RANKSUM (MANN WHITNEY) TEST + + +S. Paul Wright, Adjusted P-Values for Simultaneous Inference, Biometrics + Vol. 48, No. 4 (Dec., 1992), pp. 1005-1013, International Biometric Society + Stable URL: http://www.jstor.org/stable/2532694 + (p-value correction for Hommel in appendix) + +for multicomparison + +new book "multiple comparison in R" +Hsu is a good reference but I don't have it. + + +Author: Josef Pktd and example from H Raja and rewrite from Vincent Davis + + +TODO +---- + +* handle exception if empty, shows up only sometimes when running this +- DONE I think + +Traceback (most recent call last): + File "C:\Josef\eclipsegworkspace\statsmodels-josef-experimental-gsoc\scikits\statsmodels\sandbox\stats\multicomp.py", line 711, in + print('sh', multipletests(tpval, alpha=0.05, method='sh') + File "C:\Josef\eclipsegworkspace\statsmodels-josef-experimental-gsoc\scikits\statsmodels\sandbox\stats\multicomp.py", line 241, in multipletests + rejectmax = np.max(np.nonzero(reject)) + File "C:\Programs\Python25\lib\site-packages\numpy\core\fromnumeric.py", line 1765, in amax + return _wrapit(a, 'max', axis, out) + File "C:\Programs\Python25\lib\site-packages\numpy\core\fromnumeric.py", line 37, in _wrapit + result = getattr(asarray(obj),method)(*args, **kwds) +ValueError: zero-size array to ufunc.reduce without identity + +* name of function multipletests, rename to something like pvalue_correction? + + +''' + + +#import xlrd +#import xlwt +from __future__ import print_function +from statsmodels.compat.python import lzip, range, lrange, zip +import scipy.stats +import numpy +import numpy as np +import math +import copy +from scipy import stats +from statsmodels.iolib.table import SimpleTable +from numpy.testing import assert_almost_equal, assert_equal +#temporary circular import +from statsmodels.stats.multitest import multipletests, _ecdf as ecdf, fdrcorrection as fdrcorrection0, fdrcorrection_twostage +from statsmodels.graphics import utils +from statsmodels.tools.sm_exceptions import ValueWarning + +qcrit = ''' + 2 3 4 5 6 7 8 9 10 +5 3.64 5.70 4.60 6.98 5.22 7.80 5.67 8.42 6.03 8.91 6.33 9.32 6.58 9.67 6.80 9.97 6.99 10.24 +6 3.46 5.24 4.34 6.33 4.90 7.03 5.30 7.56 5.63 7.97 5.90 8.32 6.12 8.61 6.32 8.87 6.49 9.10 +7 3.34 4.95 4.16 5.92 4.68 6.54 5.06 7.01 5.36 7.37 5.61 7.68 5.82 7.94 6.00 8.17 6.16 8.37 +8 3.26 4.75 4.04 5.64 4.53 6.20 4.89 6.62 5.17 6.96 5.40 7.24 5.60 7.47 5.77 7.68 5.92 7.86 +9 3.20 4.60 3.95 5.43 4.41 5.96 4.76 6.35 5.02 6.66 5.24 6.91 5.43 7.13 5.59 7.33 5.74 7.49 +10 3.15 4.48 3.88 5.27 4.33 5.77 4.65 6.14 4.91 6.43 5.12 6.67 5.30 6.87 5.46 7.05 5.60 7.21 +11 3.11 4.39 3.82 5.15 4.26 5.62 4.57 5.97 4.82 6.25 5.03 6.48 5.20 6.67 5.35 6.84 5.49 6.99 +12 3.08 4.32 3.77 5.05 4.20 5.50 4.51 5.84 4.75 6.10 4.95 6.32 5.12 6.51 5.27 6.67 5.39 6.81 +13 3.06 4.26 3.73 4.96 4.15 5.40 4.45 5.73 4.69 5.98 4.88 6.19 5.05 6.37 5.19 6.53 5.32 6.67 +14 3.03 4.21 3.70 4.89 4.11 5.32 4.41 5.63 4.64 5.88 4.83 6.08 4.99 6.26 5.13 6.41 5.25 6.54 +15 3.01 4.17 3.67 4.84 4.08 5.25 4.37 5.56 4.59 5.80 4.78 5.99 4.94 6.16 5.08 6.31 5.20 6.44 +16 3.00 4.13 3.65 4.79 4.05 5.19 4.33 5.49 4.56 5.72 4.74 5.92 4.90 6.08 5.03 6.22 5.15 6.35 +17 2.98 4.10 3.63 4.74 4.02 5.14 4.30 5.43 4.52 5.66 4.70 5.85 4.86 6.01 4.99 6.15 5.11 6.27 +18 2.97 4.07 3.61 4.70 4.00 5.09 4.28 5.38 4.49 5.60 4.67 5.79 4.82 5.94 4.96 6.08 5.07 6.20 +19 2.96 4.05 3.59 4.67 3.98 5.05 4.25 5.33 4.47 5.55 4.65 5.73 4.79 5.89 4.92 6.02 5.04 6.14 +20 2.95 4.02 3.58 4.64 3.96 5.02 4.23 5.29 4.45 5.51 4.62 5.69 4.77 5.84 4.90 5.97 5.01 6.09 +24 2.92 3.96 3.53 4.55 3.90 4.91 4.17 5.17 4.37 5.37 4.54 5.54 4.68 5.69 4.81 5.81 4.92 5.92 +30 2.89 3.89 3.49 4.45 3.85 4.80 4.10 5.05 4.30 5.24 4.46 5.40 4.60 5.54 4.72 5.65 4.82 5.76 +40 2.86 3.82 3.44 4.37 3.79 4.70 4.04 4.93 4.23 5.11 4.39 5.26 4.52 5.39 4.63 5.50 4.73 5.60 +60 2.83 3.76 3.40 4.28 3.74 4.59 3.98 4.82 4.16 4.99 4.31 5.13 4.44 5.25 4.55 5.36 4.65 5.45 +120 2.80 3.70 3.36 4.20 3.68 4.50 3.92 4.71 4.10 4.87 4.24 5.01 4.36 5.12 4.47 5.21 4.56 5.30 +infinity 2.77 3.64 3.31 4.12 3.63 4.40 3.86 4.60 4.03 4.76 4.17 4.88 4.29 4.99 4.39 5.08 4.47 5.16 +''' + +res = [line.split() for line in qcrit.replace('infinity','9999').split('\n')] +c=np.array(res[2:-1]).astype(float) +#c[c==9999] = np.inf +ccols = np.arange(2,11) +crows = c[:,0] +cv005 = c[:, 1::2] +cv001 = c[:, 2::2] + +from scipy import interpolate +def get_tukeyQcrit(k, df, alpha=0.05): + ''' + return critical values for Tukey's HSD (Q) + + Parameters + ---------- + k : int in {2, ..., 10} + number of tests + df : int + degrees of freedom of error term + alpha : {0.05, 0.01} + type 1 error, 1-confidence level + + + + not enough error checking for limitations + ''' + if alpha == 0.05: + intp = interpolate.interp1d(crows, cv005[:,k-2]) + elif alpha == 0.01: + intp = interpolate.interp1d(crows, cv001[:,k-2]) + else: + raise ValueError('only implemented for alpha equal to 0.01 and 0.05') + return intp(df) + +def get_tukeyQcrit2(k, df, alpha=0.05): + ''' + return critical values for Tukey's HSD (Q) + + Parameters + ---------- + k : int in {2, ..., 10} + number of tests + df : int + degrees of freedom of error term + alpha : {0.05, 0.01} + type 1 error, 1-confidence level + + + + not enough error checking for limitations + ''' + from statsmodels.stats.libqsturng import qsturng + return qsturng(1-alpha, k, df) + + +def Tukeythreegene(first,second,third): + #Performing the Tukey HSD post-hoc test for three genes +## qwb = xlrd.open_workbook('F:/Lab/bioinformatics/qcrittable.xls') +## #opening the workbook containing the q crit table +## qwb.sheet_names() +## qcrittable = qwb.sheet_by_name(u'Sheet1') + + firstmean = numpy.mean(first) #means of the three arrays + secondmean = numpy.mean(second) + thirdmean = numpy.mean(third) + + firststd = numpy.std(first) #standard deviations of the threearrays + secondstd = numpy.std(second) + thirdstd = numpy.std(third) + + firsts2 = math.pow(firststd,2) #standard deviation squared of the three arrays + seconds2 = math.pow(secondstd,2) + thirds2 = math.pow(thirdstd,2) + + mserrornum = firsts2*2+seconds2*2+thirds2*2 #numerator for mean square error + mserrorden = (len(first)+len(second)+len(third))-3 #denominator for mean square error + mserror = mserrornum/mserrorden #mean square error + + standarderror = math.sqrt(mserror/len(first)) + #standard error, which is square root of mserror and the number of samples in a group + + dftotal = len(first)+len(second)+len(third)-1 #various degrees of freedom + dfgroups = 2 + dferror = dftotal-dfgroups + + qcrit = 0.5 # fix arbitrary#qcrittable.cell(dftotal, 3).value + qcrit = get_tukeyQcrit(3, dftotal, alpha=0.05) + #getting the q critical value, for degrees of freedom total and 3 groups + + qtest3to1 = (math.fabs(thirdmean-firstmean))/standarderror + #calculating q test statistic values + qtest3to2 = (math.fabs(thirdmean-secondmean))/standarderror + qtest2to1 = (math.fabs(secondmean-firstmean))/standarderror + + conclusion = [] + +## print(qcrit + print(qtest3to1) + print(qtest3to2) + print(qtest2to1) + + if(qtest3to1>qcrit): #testing all q test statistic values to q critical values + conclusion.append('3to1null') + else: + conclusion.append('3to1alt') + if(qtest3to2>qcrit): + conclusion.append('3to2null') + else: + conclusion.append('3to2alt') + if(qtest2to1>qcrit): + conclusion.append('2to1null') + else: + conclusion.append('2to1alt') + + return conclusion + + +#rewrite by Vincent +def Tukeythreegene2(genes): #Performing the Tukey HSD post-hoc test for three genes + """gend is a list, ie [first, second, third]""" +# qwb = xlrd.open_workbook('F:/Lab/bioinformatics/qcrittable.xls') + #opening the workbook containing the q crit table +# qwb.sheet_names() +# qcrittable = qwb.sheet_by_name(u'Sheet1') + + means = [] + stds = [] + for gene in genes: + means.append(numpy.mean(gene)) + std.append(numpy.std(gene)) + + #firstmean = numpy.mean(first) #means of the three arrays + #secondmean = numpy.mean(second) + #thirdmean = numpy.mean(third) + + #firststd = numpy.std(first) #standard deviations of the three arrays + #secondstd = numpy.std(second) + #thirdstd = numpy.std(third) + + stds2 = [] + for std in stds: + stds2.append(math.pow(std,2)) + + + #firsts2 = math.pow(firststd,2) #standard deviation squared of the three arrays + #seconds2 = math.pow(secondstd,2) + #thirds2 = math.pow(thirdstd,2) + + #mserrornum = firsts2*2+seconds2*2+thirds2*2 #numerator for mean square error + mserrornum = sum(stds2)*2 + mserrorden = (len(genes[0])+len(genes[1])+len(genes[2]))-3 #denominator for mean square error + mserror = mserrornum/mserrorden #mean square error + + +def catstack(args): + x = np.hstack(args) + labels = np.hstack([k*np.ones(len(arr)) for k,arr in enumerate(args)]) + return x, labels + + + + +def maxzero(x): + '''find all up zero crossings and return the index of the highest + + Not used anymore + + + >>> np.random.seed(12345) + >>> x = np.random.randn(8) + >>> x + array([-0.20470766, 0.47894334, -0.51943872, -0.5557303 , 1.96578057, + 1.39340583, 0.09290788, 0.28174615]) + >>> maxzero(x) + (4, array([1, 4])) + + + no up-zero-crossing at end + + >>> np.random.seed(0) + >>> x = np.random.randn(8) + >>> x + array([ 1.76405235, 0.40015721, 0.97873798, 2.2408932 , 1.86755799, + -0.97727788, 0.95008842, -0.15135721]) + >>> maxzero(x) + (None, array([6])) + ''' + x = np.asarray(x) + cond1 = x[:-1] < 0 + cond2 = x[1:] > 0 + #allzeros = np.nonzero(np.sign(x[:-1])*np.sign(x[1:]) <= 0)[0] + 1 + allzeros = np.nonzero((cond1 & cond2) | (x[1:]==0))[0] + 1 + if x[-1] >=0: + maxz = max(allzeros) + else: + maxz = None + return maxz, allzeros + +def maxzerodown(x): + '''find all up zero crossings and return the index of the highest + + Not used anymore + + >>> np.random.seed(12345) + >>> x = np.random.randn(8) + >>> x + array([-0.20470766, 0.47894334, -0.51943872, -0.5557303 , 1.96578057, + 1.39340583, 0.09290788, 0.28174615]) + >>> maxzero(x) + (4, array([1, 4])) + + + no up-zero-crossing at end + + >>> np.random.seed(0) + >>> x = np.random.randn(8) + >>> x + array([ 1.76405235, 0.40015721, 0.97873798, 2.2408932 , 1.86755799, + -0.97727788, 0.95008842, -0.15135721]) + >>> maxzero(x) + (None, array([6])) +''' + x = np.asarray(x) + cond1 = x[:-1] > 0 + cond2 = x[1:] < 0 + #allzeros = np.nonzero(np.sign(x[:-1])*np.sign(x[1:]) <= 0)[0] + 1 + allzeros = np.nonzero((cond1 & cond2) | (x[1:]==0))[0] + 1 + if x[-1] <=0: + maxz = max(allzeros) + else: + maxz = None + return maxz, allzeros + + + +def rejectionline(n, alpha=0.5): + '''reference line for rejection in multiple tests + + Not used anymore + + from: section 3.2, page 60 + ''' + t = np.arange(n)/float(n) + frej = t/( t * (1-alpha) + alpha) + return frej + + + + + + +#I don't remember what I changed or why 2 versions, +#this follows german diss ??? with rline +#this might be useful if the null hypothesis is not "all effects are zero" +#rename to _bak and working again on fdrcorrection0 +def fdrcorrection_bak(pvals, alpha=0.05, method='indep'): + '''Reject False discovery rate correction for pvalues + + Old version, to be deleted + + + missing: methods that estimate fraction of true hypotheses + + ''' + pvals = np.asarray(pvals) + + + pvals_sortind = np.argsort(pvals) + pvals_sorted = pvals[pvals_sortind] + pecdf = ecdf(pvals_sorted) + if method in ['i', 'indep', 'p', 'poscorr']: + rline = pvals_sorted / alpha + elif method in ['n', 'negcorr']: + cm = np.sum(1./np.arange(1, len(pvals))) + rline = pvals_sorted / alpha * cm + elif method in ['g', 'onegcorr']: #what's this ? german diss + rline = pvals_sorted / (pvals_sorted*(1-alpha) + alpha) + elif method in ['oth', 'o2negcorr']: # other invalid, cut-paste + cm = np.sum(np.arange(len(pvals))) + rline = pvals_sorted / alpha /cm + else: + raise ValueError('method not available') + + reject = pecdf >= rline + if reject.any(): + rejectmax = max(np.nonzero(reject)[0]) + else: + rejectmax = 0 + reject[:rejectmax] = True + return reject[pvals_sortind.argsort()] + +def mcfdr(nrepl=100, nobs=50, ntests=10, ntrue=6, mu=0.5, alpha=0.05, rho=0.): + '''MonteCarlo to test fdrcorrection + ''' + nfalse = ntests - ntrue + locs = np.array([0.]*ntrue + [mu]*(ntests - ntrue)) + results = [] + for i in range(nrepl): + #rvs = locs + stats.norm.rvs(size=(nobs, ntests)) + rvs = locs + randmvn(rho, size=(nobs, ntests)) + tt, tpval = stats.ttest_1samp(rvs, 0) + res = fdrcorrection_bak(np.abs(tpval), alpha=alpha, method='i') + res0 = fdrcorrection0(np.abs(tpval), alpha=alpha) + #res and res0 give the same results + results.append([np.sum(res[:ntrue]), np.sum(res[ntrue:])] + + [np.sum(res0[:ntrue]), np.sum(res0[ntrue:])] + + res.tolist() + + np.sort(tpval).tolist() + + [np.sum(tpval[:ntrue] 1] + ntot = float(len(xranks)); + tiecorrection = 1 - (nties**3 - nties).sum()/(ntot**3 - ntot) + return tiecorrection + + +class GroupsStats(object): + ''' + statistics by groups (another version) + + groupstats as a class with lazy evaluation (not yet - decorators are still + missing) + + written this time as equivalent of scipy.stats.rankdata + gs = GroupsStats(X, useranks=True) + assert_almost_equal(gs.groupmeanfilter, stats.rankdata(X[:,0]), 15) + + TODO: incomplete doc strings + + ''' + + def __init__(self, x, useranks=False, uni=None, intlab=None): + '''descriptive statistics by groups + + Parameters + ---------- + x : array, 2d + first column data, second column group labels + useranks : boolean + if true, then use ranks as data corresponding to the + scipy.stats.rankdata definition (start at 1, ties get mean) + uni, intlab : arrays (optional) + to avoid call to unique, these can be given as inputs + + + ''' + self.x = np.asarray(x) + if intlab is None: + uni, intlab = np.unique(x[:,1], return_inverse=True) + elif uni is None: + uni = np.unique(x[:,1]) + + self.useranks = useranks + + + self.uni = uni + self.intlab = intlab + self.groupnobs = groupnobs = np.bincount(intlab) + + #temporary until separated and made all lazy + self.runbasic(useranks=useranks) + + + + def runbasic_old(self, useranks=False): + #check: refactoring screwed up case useranks=True + + #groupxsum = np.bincount(intlab, weights=X[:,0]) + #groupxmean = groupxsum * 1.0 / groupnobs + x = self.x + if useranks: + self.xx = x[:,1].argsort().argsort() + 1 #rankraw + else: + self.xx = x[:,0] + self.groupsum = groupranksum = np.bincount(self.intlab, weights=self.xx) + #print('groupranksum', groupranksum, groupranksum.shape, self.groupnobs.shape + # start at 1 for stats.rankdata : + self.groupmean = grouprankmean = groupranksum * 1.0 / self.groupnobs # + 1 + self.groupmeanfilter = grouprankmean[self.intlab] + #return grouprankmean[intlab] + + def runbasic(self, useranks=False): + #check: refactoring screwed up case useranks=True + + #groupxsum = np.bincount(intlab, weights=X[:,0]) + #groupxmean = groupxsum * 1.0 / groupnobs + x = self.x + if useranks: + xuni, xintlab = np.unique(x[:,0], return_inverse=True) + ranksraw = x[:,0].argsort().argsort() + 1 #rankraw + self.xx = GroupsStats(np.column_stack([ranksraw, xintlab]), + useranks=False).groupmeanfilter + else: + self.xx = x[:,0] + self.groupsum = groupranksum = np.bincount(self.intlab, weights=self.xx) + #print('groupranksum', groupranksum, groupranksum.shape, self.groupnobs.shape + # start at 1 for stats.rankdata : + self.groupmean = grouprankmean = groupranksum * 1.0 / self.groupnobs # + 1 + self.groupmeanfilter = grouprankmean[self.intlab] + #return grouprankmean[intlab] + + def groupdemean(self): + return self.xx - self.groupmeanfilter + + def groupsswithin(self): + xtmp = self.groupdemean() + return np.bincount(self.intlab, weights=xtmp**2) + + def groupvarwithin(self): + return self.groupsswithin()/(self.groupnobs-1) #.sum() + +class TukeyHSDResults(object): + """Results from Tukey HSD test, with additional plot methods + + Can also compute and plot additional post-hoc evaluations using this + results class. + + Attributes + ---------- + reject : array of boolean, True if we reject Null for group pair + meandiffs : pairwise mean differences + confint : confidence interval for pairwise mean differences + std_pairs : standard deviation of pairwise mean differences + q_crit : critical value of studentized range statistic at given alpha + halfwidths : half widths of simultaneous confidence interval + + Notes + ----- + halfwidths is only available after call to `plot_simultaneous`. + + Other attributes contain information about the data from the + MultiComparison instance: data, df_total, groups, groupsunique, variance. + + """ + def __init__(self, mc_object, results_table, q_crit, reject=None, + meandiffs=None, std_pairs=None, confint=None, df_total=None, + reject2=None, variance=None): + + self._multicomp = mc_object + self._results_table = results_table + self.q_crit = q_crit + self.reject = reject + self.meandiffs = meandiffs + self.std_pairs = std_pairs + self.confint = confint + self.df_total = df_total + self.reject2 = reject2 + self.variance = variance + # Taken out of _multicomp for ease of access for unknowledgeable users + self.data = self._multicomp.data + self.groups =self._multicomp.groups + self.groupsunique = self._multicomp.groupsunique + + def __str__(self): + return str(self._results_table) + + def summary(self): + '''Summary table that can be printed + ''' + return self._results_table + + + def _simultaneous_ci(self): + """Compute simultaneous confidence intervals for comparison of means. + """ + self.halfwidths = simultaneous_ci(self.q_crit, self.variance, + self._multicomp.groupstats.groupnobs, + self._multicomp.pairindices) + + def plot_simultaneous(self, comparison_name=None, ax=None, figsize=(10,6), + xlabel=None, ylabel=None): + """Plot a universal confidence interval of each group mean + + Visiualize significant differences in a plot with one confidence + interval per group instead of all pairwise confidence intervals. + + Parameters + ---------- + comparison_name : string, optional + if provided, plot_intervals will color code all groups that are + significantly different from the comparison_name red, and will + color code insignificant groups gray. Otherwise, all intervals will + just be plotted in black. + ax : matplotlib axis, optional + An axis handle on which to attach the plot. + figsize : tuple, optional + tuple for the size of the figure generated + xlabel : string, optional + Name to be displayed on x axis + ylabel : string, optional + Name to be displayed on y axis + + Returns + ------- + fig : Matplotlib Figure object + handle to figure object containing interval plots + + Notes + ----- + Multiple comparison tests are nice, but lack a good way to be + visualized. If you have, say, 6 groups, showing a graph of the means + between each group will require 15 confidence intervals. + Instead, we can visualize inter-group differences with a single + interval for each group mean. Hochberg et al. [1] first proposed this + idea and used Tukey's Q critical value to compute the interval widths. + Unlike plotting the differences in the means and their respective + confidence intervals, any two pairs can be compared for significance + by looking for overlap. + + References + ---------- + .. [1] Hochberg, Y., and A. C. Tamhane. Multiple Comparison Procedures. + Hoboken, NJ: John Wiley & Sons, 1987. + + Examples + -------- + >>> from statsmodels.examples.try_tukey_hsd import cylinders, cyl_labels + >>> from statsmodels.stats.multicomp import MultiComparison + >>> cardata = MultiComparison(cylinders, cyl_labels) + >>> results = cardata.tukeyhsd() + >>> results.plot_simultaneous() + + + This example shows an example plot comparing significant differences + in group means. Significant differences at the alpha=0.05 level can be + identified by intervals that do not overlap (i.e. USA vs Japan, + USA vs Germany). + + >>> results.plot_simultaneous(comparison_name="USA") + + + Optionally provide one of the group names to color code the plot to + highlight group means different from comparison_name. + + """ + fig, ax1 = utils.create_mpl_ax(ax) + if figsize is not None: + fig.set_size_inches(figsize) + if getattr(self, 'halfwidths', None) is None: + self._simultaneous_ci() + means = self._multicomp.groupstats.groupmean + + + sigidx = [] + nsigidx = [] + minrange = [means[i] - self.halfwidths[i] for i in range(len(means))] + maxrange = [means[i] + self.halfwidths[i] for i in range(len(means))] + + if comparison_name is None: + ax1.errorbar(means, lrange(len(means)), xerr=self.halfwidths, + marker='o', linestyle='None', color='k', ecolor='k') + else: + if comparison_name not in self.groupsunique: + raise ValueError('comparison_name not found in group names.') + midx = np.where(self.groupsunique==comparison_name)[0] + for i in range(len(means)): + if self.groupsunique[i] == comparison_name: + continue + if (min(maxrange[i], maxrange[midx]) - + max(minrange[i], minrange[midx]) < 0): + sigidx.append(i) + else: + nsigidx.append(i) + #Plot the master comparison + ax1.errorbar(means[midx], midx, xerr=self.halfwidths[midx], + marker='o', linestyle='None', color='b', ecolor='b') + ax1.plot([minrange[midx]]*2, [-1, self._multicomp.ngroups], + linestyle='--', color='0.7') + ax1.plot([maxrange[midx]]*2, [-1, self._multicomp.ngroups], + linestyle='--', color='0.7') + #Plot those that are significantly different + if len(sigidx) > 0: + ax1.errorbar(means[sigidx], sigidx, + xerr=self.halfwidths[sigidx], marker='o', + linestyle='None', color='r', ecolor='r') + #Plot those that are not significantly different + if len(nsigidx) > 0: + ax1.errorbar(means[nsigidx], nsigidx, + xerr=self.halfwidths[nsigidx], marker='o', + linestyle='None', color='0.5', ecolor='0.5') + + ax1.set_title('Multiple Comparisons Between All Pairs (Tukey)') + r = np.max(maxrange) - np.min(minrange) + ax1.set_ylim([-1, self._multicomp.ngroups]) + ax1.set_xlim([np.min(minrange) - r / 10., np.max(maxrange) + r / 10.]) + ax1.set_yticklabels(np.insert(self.groupsunique.astype(str), 0, '')) + ax1.set_yticks(np.arange(-1, len(means)+1)) + ax1.set_xlabel(xlabel if xlabel is not None else '') + ax1.set_ylabel(ylabel if ylabel is not None else '') + return fig + + +class MultiComparison(object): + '''Tests for multiple comparisons + + Parameters + ---------- + data : array + independent data samples + groups : array + group labels corresponding to each data point + group_order : list of strings, optional + the desired order for the group mean results to be reported in. If + not specified, results are reported in increasing order. + If group_order does not contain all labels that are in groups, then + only those observations are kept that have a label in group_order. + + ''' + + def __init__(self, data, groups, group_order=None): + + if len(data) != len(groups): + raise ValueError('data has %d elements and groups has %d' % (len(data), len(groups))) + self.data = np.asarray(data) + self.groups = groups = np.asarray(groups) + + # Allow for user-provided sorting of groups + if group_order is None: + self.groupsunique, self.groupintlab = np.unique(groups, + return_inverse=True) + else: + #check if group_order has any names not in groups + for grp in group_order: + if grp not in groups: + raise ValueError( + "group_order value '%s' not found in groups"%grp) + self.groupsunique = np.array(group_order) + self.groupintlab = np.empty(len(data), int) + self.groupintlab.fill(-999) # instead of a nan + count = 0 + for name in self.groupsunique: + idx = np.where(self.groups == name)[0] + count += len(idx) + self.groupintlab[idx] = np.where(self.groupsunique == name)[0] + if count != data.shape[0]: + #raise ValueError('group_order does not contain all groups') + # warn and keep only observations with label in group_order + import warnings + warnings.warn('group_order does not contain all groups:' + + ' dropping observations', ValueWarning) + + mask_keep = self.groupintlab != -999 + self.groupintlab = self.groupintlab[mask_keep] + self.data = self.data[mask_keep] + self.groups = self.groups[mask_keep] + + if len(self.groupsunique) < 2: + raise ValueError('2 or more groups required for multiple comparisons') + + self.datali = [self.data[self.groups == k] for k in self.groupsunique] + self.pairindices = np.triu_indices(len(self.groupsunique), 1) #tuple + self.nobs = self.data.shape[0] + self.ngroups = len(self.groupsunique) + + + def getranks(self): + '''convert data to rankdata and attach + + + This creates rankdata as it is used for non-parametric tests, where + in the case of ties the average rank is assigned. + + + ''' + #bug: the next should use self.groupintlab instead of self.groups + #update: looks fixed + #self.ranks = GroupsStats(np.column_stack([self.data, self.groups]), + self.ranks = GroupsStats(np.column_stack([self.data, self.groupintlab]), + useranks=True) + self.rankdata = self.ranks.groupmeanfilter + + def kruskal(self, pairs=None, multimethod='T'): + ''' + pairwise comparison for kruskal-wallis test + + This is just a reimplementation of scipy.stats.kruskal and does + not yet use a multiple comparison correction. + + ''' + self.getranks() + tot = self.nobs + meanranks = self.ranks.groupmean + groupnobs = self.ranks.groupnobs + + + # simultaneous/separate treatment of multiple tests + f=(tot * (tot + 1.) / 12.) / stats.tiecorrect(self.rankdata) #(xranks) + print('MultiComparison.kruskal') + for i,j in zip(*self.pairindices): + #pdiff = np.abs(mrs[i] - mrs[j]) + pdiff = np.abs(meanranks[i] - meanranks[j]) + se = np.sqrt(f * np.sum(1. / groupnobs[[i,j]] )) #np.array([8,8]))) #Fixme groupnobs[[i,j]] )) + Q = pdiff / se + + # TODO : print(statments, fix + print(i,j, pdiff, se, pdiff / se, pdiff / se > 2.6310) + print(stats.norm.sf(Q) * 2) + return stats.norm.sf(Q) * 2 + + + def allpairtest(self, testfunc, alpha=0.05, method='bonf', pvalidx=1): + '''run a pairwise test on all pairs with multiple test correction + + The statistical test given in testfunc is calculated for all pairs + and the p-values are adjusted by methods in multipletests. The p-value + correction is generic and based only on the p-values, and does not + take any special structure of the hypotheses into account. + + Parameters + ---------- + testfunc : function + A test function for two (independent) samples. It is assumed that + the return value on position pvalidx is the p-value. + alpha : float + familywise error rate + method : string + This specifies the method for the p-value correction. Any method + of multipletests is possible. + pvalidx : int (default: 1) + position of the p-value in the return of testfunc + + Returns + ------- + sumtab : SimpleTable instance + summary table for printing + + errors: TODO: check if this is still wrong, I think it's fixed. + results from multipletests are in different order + pval_corrected can be larger than 1 ??? + ''' + res = [] + for i,j in zip(*self.pairindices): + res.append(testfunc(self.datali[i], self.datali[j])) + res = np.array(res) + reject, pvals_corrected, alphacSidak, alphacBonf = \ + multipletests(res[:, pvalidx], alpha=0.05, method=method) + #print(np.column_stack([res[:,0],res[:,1], reject, pvals_corrected]) + + i1, i2 = self.pairindices + if pvals_corrected is None: + resarr = np.array(lzip(self.groupsunique[i1], self.groupsunique[i2], + np.round(res[:,0],4), + np.round(res[:,1],4), + reject), + dtype=[('group1', object), + ('group2', object), + ('stat',float), + ('pval',float), + ('reject', np.bool8)]) + else: + resarr = np.array(lzip(self.groupsunique[i1], self.groupsunique[i2], + np.round(res[:,0],4), + np.round(res[:,1],4), + np.round(pvals_corrected,4), + reject), + dtype=[('group1', object), + ('group2', object), + ('stat',float), + ('pval',float), + ('pval_corr',float), + ('reject', np.bool8)]) + from statsmodels.iolib.table import SimpleTable + results_table = SimpleTable(resarr, headers=resarr.dtype.names) + results_table.title = ( + 'Test Multiple Comparison %s \n%s%4.2f method=%s' + % (testfunc.__name__, 'FWER=', alpha, method) + + '\nalphacSidak=%4.2f, alphacBonf=%5.3f' + % (alphacSidak, alphacBonf)) + + return results_table, (res, reject, pvals_corrected, + alphacSidak, alphacBonf), resarr + + + def tukeyhsd(self, alpha=0.05): + """Tukey's range test to compare means of all pairs of groups + + Parameters + ---------- + alpha : float, optional + Value of FWER at which to calculate HSD. + + Returns + ------- + results : TukeyHSDResults instance + A results class containing relevant data and some post-hoc + calculations + """ + self.groupstats = GroupsStats( + np.column_stack([self.data, self.groupintlab]), + useranks=False) + + gmeans = self.groupstats.groupmean + gnobs = self.groupstats.groupnobs #var_ = self.groupstats.groupvarwithin() #possibly an error in varcorrection in this case + var_ = np.var(self.groupstats.groupdemean(), ddof=len(gmeans)) + #res contains: 0:(idx1, idx2), 1:reject, 2:meandiffs, 3: std_pairs, 4:confint, 5:q_crit, + #6:df_total, 7:reject2 + res = tukeyhsd(gmeans, gnobs, var_, df=None, alpha=alpha, q_crit=None) + + resarr = np.array(lzip(self.groupsunique[res[0][0]], self.groupsunique[res[0][1]], + np.round(res[2],4), + np.round(res[4][:, 0],4), + np.round(res[4][:, 1],4), + res[1]), + dtype=[('group1', object), + ('group2', object), + ('meandiff',float), + ('lower',float), + ('upper',float), + ('reject', np.bool8)]) + results_table = SimpleTable(resarr, headers=resarr.dtype.names) + results_table.title = 'Multiple Comparison of Means - Tukey HSD,' + \ + 'FWER=%4.2f' % alpha + + return TukeyHSDResults(self, results_table, res[5], res[1], res[2], + res[3], res[4], res[6], res[7], var_) + + + +def rankdata(x): + '''rankdata, equivalent to scipy.stats.rankdata + + just a different implementation, I have not yet compared speed + + ''' + uni, intlab = np.unique(x[:,0], return_inverse=True) + groupnobs = np.bincount(intlab) + groupxsum = np.bincount(intlab, weights=X[:,0]) + groupxmean = groupxsum * 1.0 / groupnobs + + rankraw = x[:,0].argsort().argsort() + groupranksum = np.bincount(intlab, weights=rankraw) + # start at 1 for stats.rankdata : + grouprankmean = groupranksum * 1.0 / groupnobs + 1 + return grouprankmean[intlab] + + +#new + +def compare_ordered(vals, alpha): + '''simple ordered sequential comparison of means + + vals : array_like + means or rankmeans for independent groups + + incomplete, no return, not used yet + ''' + vals = np.asarray(vals) + alphaf = alpha # Notation ? + sortind = np.argsort(vals) + pvals = vals[sortind] + sortrevind = sortind.argsort() + ntests = len(vals) + #alphacSidak = 1 - np.power((1. - alphaf), 1./ntests) + #alphacBonf = alphaf / float(ntests) + v1, v2 = np.triu_indices(ntests, 1) + #v1,v2 have wrong sequence + for i in range(4): + for j in range(4,i, -1): + print(i,j) + + + +def varcorrection_unbalanced(nobs_all, srange=False): + '''correction factor for variance with unequal sample sizes + + this is just a harmonic mean + + Parameters + ---------- + nobs_all : array_like + The number of observations for each sample + srange : bool + if true, then the correction is divided by the number of samples + for the variance of the studentized range statistic + + Returns + ------- + correction : float + Correction factor for variance. + + + Notes + ----- + + variance correction factor is + + 1/k * sum_i 1/n_i + + where k is the number of samples and summation is over i=0,...,k-1. + If all n_i are the same, then the correction factor is 1. + + This needs to be multiplied by the joint variance estimate, means square + error, MSE. To obtain the correction factor for the standard deviation, + square root needs to be taken. + + ''' + nobs_all = np.asarray(nobs_all) + if not srange: + return (1./nobs_all).sum() + else: + return (1./nobs_all).sum()/len(nobs_all) + +def varcorrection_pairs_unbalanced(nobs_all, srange=False): + '''correction factor for variance with unequal sample sizes for all pairs + + this is just a harmonic mean + + Parameters + ---------- + nobs_all : array_like + The number of observations for each sample + srange : bool + if true, then the correction is divided by 2 for the variance of + the studentized range statistic + + Returns + ------- + correction : array + Correction factor for variance. + + + Notes + ----- + + variance correction factor is + + 1/k * sum_i 1/n_i + + where k is the number of samples and summation is over i=0,...,k-1. + If all n_i are the same, then the correction factor is 1. + + This needs to be multiplies by the joint variance estimate, means square + error, MSE. To obtain the correction factor for the standard deviation, + square root needs to be taken. + + For the studentized range statistic, the resulting factor has to be + divided by 2. + + ''' + #TODO: test and replace with broadcasting + n1, n2 = np.meshgrid(nobs_all, nobs_all) + if not srange: + return (1./n1 + 1./n2) + else: + return (1./n1 + 1./n2) / 2. + +def varcorrection_unequal(var_all, nobs_all, df_all): + '''return joint variance from samples with unequal variances and unequal + sample sizes + + something is wrong + + Parameters + ---------- + var_all : array_like + The variance for each sample + nobs_all : array_like + The number of observations for each sample + df_all : array_like + degrees of freedom for each sample + + Returns + ------- + varjoint : float + joint variance. + dfjoint : float + joint Satterthwait's degrees of freedom + + + Notes + ----- + (copy, paste not correct) + variance is + + 1/k * sum_i 1/n_i + + where k is the number of samples and summation is over i=0,...,k-1. + If all n_i are the same, then the correction factor is 1/n. + + This needs to be multiplies by the joint variance estimate, means square + error, MSE. To obtain the correction factor for the standard deviation, + square root needs to be taken. + + This is for variance of mean difference not of studentized range. + ''' + + var_all = np.asarray(var_all) + var_over_n = var_all *1./ nobs_all #avoid integer division + varjoint = var_over_n.sum() + + dfjoint = varjoint**2 / (var_over_n**2 * df_all).sum() + + return varjoint, dfjoint + +def varcorrection_pairs_unequal(var_all, nobs_all, df_all): + '''return joint variance from samples with unequal variances and unequal + sample sizes for all pairs + + something is wrong + + Parameters + ---------- + var_all : array_like + The variance for each sample + nobs_all : array_like + The number of observations for each sample + df_all : array_like + degrees of freedom for each sample + + Returns + ------- + varjoint : array + joint variance. + dfjoint : array + joint Satterthwait's degrees of freedom + + + Notes + ----- + + (copy, paste not correct) + variance is + + 1/k * sum_i 1/n_i + + where k is the number of samples and summation is over i=0,...,k-1. + If all n_i are the same, then the correction factor is 1. + + This needs to be multiplies by the joint variance estimate, means square + error, MSE. To obtain the correction factor for the standard deviation, + square root needs to be taken. + + TODO: something looks wrong with dfjoint, is formula from SPSS + ''' + #TODO: test and replace with broadcasting + v1, v2 = np.meshgrid(var_all, var_all) + n1, n2 = np.meshgrid(nobs_all, nobs_all) + df1, df2 = np.meshgrid(df_all, df_all) + + varjoint = v1/n1 + v2/n2 + + dfjoint = varjoint**2 / (df1 * (v1/n1)**2 + df2 * (v2/n2)**2) + + return varjoint, dfjoint + +def tukeyhsd(mean_all, nobs_all, var_all, df=None, alpha=0.05, q_crit=None): + '''simultaneous Tukey HSD + + + check: instead of sorting, I use absolute value of pairwise differences + in means. That's irrelevant for the test, but maybe reporting actual + differences would be better. + CHANGED: meandiffs are with sign, studentized range uses abs + + q_crit added for testing + + TODO: error in variance calculation when nobs_all is scalar, missing 1/n + + ''' + mean_all = np.asarray(mean_all) + #check if or when other ones need to be arrays + + n_means = len(mean_all) + + if df is None: + df = nobs_all - 1 + + if np.size(df) == 1: # assumes balanced samples with df = n - 1, n_i = n + df_total = n_means * df + df = np.ones(n_means) * df + else: + df_total = np.sum(df) + + if (np.size(nobs_all) == 1) and (np.size(var_all) == 1): + #balanced sample sizes and homogenous variance + var_pairs = 1. * var_all / nobs_all * np.ones((n_means, n_means)) + + elif np.size(var_all) == 1: + #unequal sample sizes and homogenous variance + var_pairs = var_all * varcorrection_pairs_unbalanced(nobs_all, + srange=True) + elif np.size(var_all) > 1: + var_pairs, df_sum = varcorrection_pairs_unequal(nobs_all, var_all, df) + var_pairs /= 2. + #check division by two for studentized range + + else: + raise ValueError('not supposed to be here') + + #meandiffs_ = mean_all[:,None] - mean_all + meandiffs_ = mean_all - mean_all[:,None] #reverse sign, check with R example + std_pairs_ = np.sqrt(var_pairs) + + #select all pairs from upper triangle of matrix + idx1, idx2 = np.triu_indices(n_means, 1) + meandiffs = meandiffs_[idx1, idx2] + std_pairs = std_pairs_[idx1, idx2] + + st_range = np.abs(meandiffs) / std_pairs #studentized range statistic + + df_total_ = max(df_total, 5) #TODO: smallest df in table + if q_crit is None: + q_crit = get_tukeyQcrit2(n_means, df_total, alpha=alpha) + + reject = st_range > q_crit + crit_int = std_pairs * q_crit + reject2 = np.abs(meandiffs) > crit_int + + confint = np.column_stack((meandiffs - crit_int, meandiffs + crit_int)) + + return (idx1, idx2), reject, meandiffs, std_pairs, confint, q_crit, \ + df_total, reject2 + +def simultaneous_ci(q_crit, var, groupnobs, pairindices=None): + """Compute simultaneous confidence intervals for comparison of means. + + q_crit value is generated from tukey hsd test. Variance is considered + across all groups. Returned halfwidths can be thought of as uncertainty + intervals around each group mean. They allow for simultaneous + comparison of pairwise significance among any pairs (by checking for + overlap) + + Parameters + ---------- + q_crit : float + The Q critical value studentized range statistic from Tukey's HSD + var : float + The group variance + groupnobs : array-like object + Number of observations contained in each group. + pairindices : tuple of lists, optional + Indices corresponding to the upper triangle of matrix. Computed + here if not supplied + + Returns + ------- + halfwidths : ndarray + Half the width of each confidence interval for each group given in + groupnobs + + See Also + -------- + MultiComparison : statistics class providing significance tests + tukeyhsd : among other things, computes q_crit value + + References + ---------- + .. [1] Hochberg, Y., and A. C. Tamhane. Multiple Comparison Procedures. + Hoboken, NJ: John Wiley & Sons, 1987.) + """ + # Set initial variables + ng = len(groupnobs) + if pairindices is None: + pairindices = np.triu_indices(ng, 1) + + # Compute dij for all pairwise comparisons ala hochberg p. 95 + gvar = var / groupnobs + + d12 = np.sqrt(gvar[pairindices[0]] + gvar[pairindices[1]]) + + # Create the full d matrix given all known dij vals + d = np.zeros((ng, ng)) + d[pairindices] = d12 + d = d + d.conj().T + + # Compute the two global sums from hochberg eq 3.32 + sum1 = np.sum(d12) + sum2 = np.sum(d, axis=0) + + if (ng > 2): + w = ((ng-1.) * sum2 - sum1) / ((ng - 1.) * (ng - 2.)) + else: + w = sum1 * np.ones((2, 1)) / 2. + + return (q_crit / np.sqrt(2))*w + +def distance_st_range(mean_all, nobs_all, var_all, df=None, triu=False): + '''pairwise distance matrix, outsourced from tukeyhsd + + + + CHANGED: meandiffs are with sign, studentized range uses abs + + q_crit added for testing + + TODO: error in variance calculation when nobs_all is scalar, missing 1/n + + ''' + mean_all = np.asarray(mean_all) + #check if or when other ones need to be arrays + + n_means = len(mean_all) + + if df is None: + df = nobs_all - 1 + + if np.size(df) == 1: # assumes balanced samples with df = n - 1, n_i = n + df_total = n_means * df + else: + df_total = np.sum(df) + + if (np.size(nobs_all) == 1) and (np.size(var_all) == 1): + #balanced sample sizes and homogenous variance + var_pairs = 1. * var_all / nobs_all * np.ones((n_means, n_means)) + + elif np.size(var_all) == 1: + #unequal sample sizes and homogenous variance + var_pairs = var_all * varcorrection_pairs_unbalanced(nobs_all, + srange=True) + elif np.size(var_all) > 1: + var_pairs, df_sum = varcorrection_pairs_unequal(nobs_all, var_all, df) + var_pairs /= 2. + #check division by two for studentized range + + else: + raise ValueError('not supposed to be here') + + #meandiffs_ = mean_all[:,None] - mean_all + meandiffs = mean_all - mean_all[:,None] #reverse sign, check with R example + std_pairs = np.sqrt(var_pairs) + + idx1, idx2 = np.triu_indices(n_means, 1) + if triu: + #select all pairs from upper triangle of matrix + meandiffs = meandiffs_[idx1, idx2] + std_pairs = std_pairs_[idx1, idx2] + + st_range = np.abs(meandiffs) / std_pairs #studentized range statistic + + return st_range, meandiffs, std_pairs, (idx1,idx2) #return square arrays + + +def contrast_allpairs(nm): + '''contrast or restriction matrix for all pairs of nm variables + + Parameters + ---------- + nm : int + + Returns + ------- + contr : ndarray, 2d, (nm*(nm-1)/2, nm) + contrast matrix for all pairwise comparisons + + ''' + contr = [] + for i in range(nm): + for j in range(i+1, nm): + contr_row = np.zeros(nm) + contr_row[i] = 1 + contr_row[j] = -1 + contr.append(contr_row) + return np.array(contr) + +def contrast_all_one(nm): + '''contrast or restriction matrix for all against first comparison + + Parameters + ---------- + nm : int + + Returns + ------- + contr : ndarray, 2d, (nm-1, nm) + contrast matrix for all against first comparisons + + ''' + contr = np.column_stack((np.ones(nm-1), -np.eye(nm-1))) + return contr + +def contrast_diff_mean(nm): + '''contrast or restriction matrix for all against mean comparison + + Parameters + ---------- + nm : int + + Returns + ------- + contr : ndarray, 2d, (nm-1, nm) + contrast matrix for all against mean comparisons + + ''' + return np.eye(nm) - np.ones((nm,nm))/nm + +def tukey_pvalues(std_range, nm, df): + #corrected but very slow with warnings about integration + from statsmodels.sandbox.distributions.multivariate import mvstdtprob + #nm = len(std_range) + contr = contrast_allpairs(nm) + corr = np.dot(contr, contr.T)/2. + tstat = std_range / np.sqrt(2) * np.ones(corr.shape[0]) #need len of all pairs + return multicontrast_pvalues(tstat, corr, df=df) + +def test_tukey_pvalues(): + #testcase with 3 is not good because all pairs has also 3*(3-1)/2=3 elements + res = tukey_pvalues(3.649, 3, 16) #3.649*np.ones(3), 16) + assert_almost_equal(0.05, res[0], 3) + assert_almost_equal(0.05*np.ones(3), res[1], 3) + + +def multicontrast_pvalues(tstat, tcorr, df=None, dist='t', alternative='two-sided'): + '''pvalues for simultaneous tests + + ''' + from statsmodels.sandbox.distributions.multivariate import mvstdtprob + if (df is None) and (dist == 't'): + raise ValueError('df has to be specified for the t-distribution') + tstat = np.asarray(tstat) + ntests = len(tstat) + cc = np.abs(tstat) + pval_global = 1 - mvstdtprob(-cc,cc, tcorr, df) + pvals = [] + for ti in cc: + limits = ti*np.ones(ntests) + pvals.append(1 - mvstdtprob(-cc,cc, tcorr, df)) + + return pval_global, np.asarray(pvals) + + + + + +class StepDown(object): + '''a class for step down methods + + This is currently for simple tree subset descend, similar to homogeneous_subsets, + but checks all leave-one-out subsets instead of assuming an ordered set. + Comment in SAS manual: + SAS only uses interval subsets of the sorted list, which is sufficient for range + tests (maybe also equal variance and balanced sample sizes are required). + For F-test based critical distances, the restriction to intervals is not sufficient. + + This version uses a single critical value of the studentized range distribution + for all comparisons, and is therefore a step-down version of Tukey HSD. + The class is written so it can be subclassed, where the get_distance_matrix and + get_crit are overwritten to obtain other step-down procedures such as REGW. + + iter_subsets can be overwritten, to get a recursion as in the many to one comparison + with a control such as in Dunnet's test. + + + A one-sided right tail test is not covered because the direction of the inequality + is hard coded in check_set. Also Peritz's check of partitions is not possible, but + I have not seen it mentioned in any more recent references. + I have only partially read the step-down procedure for closed tests by Westfall. + + One change to make it more flexible, is to separate out the decision on a subset, + also because the F-based tests, FREGW in SPSS, take information from all elements of + a set and not just pairwise comparisons. I haven't looked at the details of + the F-based tests such as Sheffe yet. It looks like running an F-test on equality + of means in each subset. This would also outsource how pairwise conditions are + combined, any larger or max. This would also imply that the distance matrix cannot + be calculated in advance for tests like the F-based ones. + + + ''' + + def __init__(self, vals, nobs_all, var_all, df=None): + self.vals = vals + self.n_vals = len(vals) + self.nobs_all = nobs_all + self.var_all = var_all + self.df = df + # the following has been moved to run + #self.cache_result = {} + #self.crit = self.getcrit(0.5) #decide where to set alpha, moved to run + #self.accepted = [] #store accepted sets, not unique + + def get_crit(self, alpha): + #currently tukey Q, add others + q_crit = get_tukeyQcrit(self.n_vals, self.df, alpha=alpha) + return q_crit * np.ones(self.n_vals) + + + + def get_distance_matrix(self): + '''studentized range statistic''' + #make into property, decorate + dres = distance_st_range(self.vals, self.nobs_all, self.var_all, df=self.df) + self.distance_matrix = dres[0] + + def iter_subsets(self, indices): + for ii in range(len(indices)): + idxsub = copy.copy(indices) + idxsub.pop(ii) + yield idxsub + + + def check_set(self, indices): + '''check whether pairwise distances of indices satisfy condition + + ''' + indtup = tuple(indices) + if indtup in self.cache_result: + return self.cache_result[indtup] + else: + set_distance_matrix = self.distance_matrix[np.asarray(indices)[:,None], indices] + n_elements = len(indices) + if np.any(set_distance_matrix > self.crit[n_elements-1]): + res = True + else: + res = False + self.cache_result[indtup] = res + return res + + def stepdown(self, indices): + print(indices) + if self.check_set(indices): # larger than critical distance + if (len(indices) > 2): # step down into subsets if more than 2 elements + for subs in self.iter_subsets(indices): + self.stepdown(subs) + else: + self.rejected.append(tuple(indices)) + else: + self.accepted.append(tuple(indices)) + return indices + + def run(self, alpha): + '''main function to run the test, + + could be done in __call__ instead + this could have all the initialization code + + ''' + self.cache_result = {} + self.crit = self.get_crit(alpha) #decide where to set alpha, moved to run + self.accepted = [] #store accepted sets, not unique + self.rejected = [] + self.get_distance_matrix() + self.stepdown(lrange(self.n_vals)) + + return list(set(self.accepted)), list(set(sd.rejected)) + + + + + + +def homogeneous_subsets(vals, dcrit): + '''recursively check all pairs of vals for minimum distance + + step down method as in Newman-Keuls and Ryan procedures. This is not a + closed procedure since not all partitions are checked. + + Parameters + ---------- + vals : array_like + values that are pairwise compared + dcrit : array_like or float + critical distance for rejecting, either float, or 2-dimensional array + with distances on the upper triangle. + + Returns + ------- + rejs : list of pairs + list of pair-indices with (strictly) larger than critical difference + nrejs : list of pairs + list of pair-indices with smaller than critical difference + lli : list of tuples + list of subsets with smaller than critical difference + res : tree + result of all comparisons (for checking) + + + this follows description in SPSS notes on Post-Hoc Tests + + Because of the recursive structure, some comparisons are made several + times, but only unique pairs or sets are returned. + + Examples + -------- + >>> m = [0, 2, 2.5, 3, 6, 8, 9, 9.5,10 ] + >>> rej, nrej, ssli, res = homogeneous_subsets(m, 2) + >>> set_partition(ssli) + ([(5, 6, 7, 8), (1, 2, 3), (4,)], [0]) + >>> [np.array(m)[list(pp)] for pp in set_partition(ssli)[0]] + [array([ 8. , 9. , 9.5, 10. ]), array([ 2. , 2.5, 3. ]), array([ 6.])] + + + ''' + + nvals = len(vals) + indices_ = lrange(nvals) + rejected = [] + subsetsli = [] + if np.size(dcrit) == 1: + dcrit = dcrit*np.ones((nvals, nvals)) #example numbers for experimenting + def subsets(vals, indices_): + '''recursive function for constructing homogeneous subset + + registers rejected and subsetli in outer scope + ''' + i, j = (indices_[0], indices_[-1]) + if vals[-1] - vals[0] > dcrit[i,j]: + rejected.append((indices_[0], indices_[-1])) + return [subsets(vals[:-1], indices_[:-1]), + subsets(vals[1:], indices_[1:]), + (indices_[0], indices_[-1])] + else: + subsetsli.append(tuple(indices_)) + return indices_ + res = subsets(vals, indices_) + + all_pairs = [(i,j) for i in range(nvals) for j in range(nvals-1,i,-1)] + rejs = set(rejected) + not_rejected = list(set(all_pairs) - rejs) + + return list(rejs), not_rejected, list(set(subsetsli)), res + +def set_partition(ssli): + '''extract a partition from a list of tuples + + this should be correctly called select largest disjoint sets. + Begun and Gabriel 1981 don't seem to be bothered by sets of accepted + hypothesis with joint elements, + e.g. maximal_accepted_sets = { {1,2,3}, {2,3,4} } + + This creates a set partition from a list of sets given as tuples. + It tries to find the partition with the largest sets. That is, sets are + included after being sorted by length. + + If the list doesn't include the singletons, then it will be only a + partial partition. Missing items are singletons (I think). + + Examples + -------- + >>> li + [(5, 6, 7, 8), (1, 2, 3), (4, 5), (0, 1)] + >>> set_partition(li) + ([(5, 6, 7, 8), (1, 2, 3)], [0, 4]) + + ''' + part = [] + for s in sorted(list(set(ssli)), key=len)[::-1]: + #print(s, + s_ = set(s).copy() + if not any(set(s_).intersection(set(t)) for t in part): + #print('inside:', s + part.append(s) + #else: print(part + + missing = list(set(i for ll in ssli for i in ll) + - set(i for ll in part for i in ll)) + return part, missing + + +def set_remove_subs(ssli): + '''remove sets that are subsets of another set from a list of tuples + + Parameters + ---------- + ssli : list of tuples + each tuple is considered as a set + + Returns + ------- + part : list of tuples + new list with subset tuples removed, it is sorted by set-length of tuples. The + list contains original tuples, duplicate elements are not removed. + + Examples + -------- + >>> set_remove_subs([(0, 1), (1, 2), (1, 2, 3), (0,)]) + [(1, 2, 3), (0, 1)] + >>> set_remove_subs([(0, 1), (1, 2), (1,1, 1, 2, 3), (0,)]) + [(1, 1, 1, 2, 3), (0, 1)] + + ''' + #TODO: maybe convert all tuples to sets immediately, but I don't need the extra efficiency + part = [] + for s in sorted(list(set(ssli)), key=lambda x: len(set(x)))[::-1]: + #print(s, + #s_ = set(s).copy() + if not any(set(s).issubset(set(t)) for t in part): + #print('inside:', s + part.append(s) + #else: print(part + +## missing = list(set(i for ll in ssli for i in ll) +## - set(i for ll in part for i in ll)) + return part + + + + +if __name__ == '__main__': + + examples = ['tukey', 'tukeycrit', 'fdr', 'fdrmc', 'bonf', 'randmvn', + 'multicompdev', 'None']#[-1] + + if 'tukey' in examples: + #Example Tukey + x = np.array([[0,0,1]]).T + np.random.randn(3, 20) + print(Tukeythreegene(*x)) + + #Example FDR + #------------ + + if ('fdr' in examples) or ('bonf' in examples): + x1 = [1,1,1,0,-1,-1,-1,0,1,1,-1,1] + print(lzip(np.arange(len(x1)), x1)) + print(maxzero(x1)) + #[(0, 1), (1, 1), (2, 1), (3, 0), (4, -1), (5, -1), (6, -1), (7, 0), (8, 1), (9, 1), (10, -1), (11, 1)] + #(11, array([ 3, 7, 11])) + + print(maxzerodown(-np.array(x1))) + + locs = np.linspace(0,1,10) + locs = np.array([0.]*6 + [0.75]*4) + rvs = locs + stats.norm.rvs(size=(20,10)) + tt, tpval = stats.ttest_1samp(rvs, 0) + tpval_sortind = np.argsort(tpval) + tpval_sorted = tpval[tpval_sortind] + + reject = tpval_sorted < ecdf(tpval_sorted)*0.05 + reject2 = max(np.nonzero(reject)) + print(reject) + + res = np.array(lzip(np.round(rvs.mean(0),4),np.round(tpval,4), + reject[tpval_sortind.argsort()]), + dtype=[('mean',float), + ('pval',float), + ('reject', np.bool8)]) + #from statsmodels.iolib import SimpleTable + print(SimpleTable(res, headers=res.dtype.names)) + print(fdrcorrection_bak(tpval, alpha=0.05)) + print(reject) + + print('\nrandom example') + print('bonf', multipletests(tpval, alpha=0.05, method='bonf')) + print('sidak', multipletests(tpval, alpha=0.05, method='sidak')) + print('hs', multipletests(tpval, alpha=0.05, method='hs')) + print('sh', multipletests(tpval, alpha=0.05, method='sh')) + pvals = np.array('0.0020 0.0045 0.0060 0.0080 0.0085 0.0090 0.0175 0.0250 ' + '0.1055 0.5350'.split(), float) + print('\nexample from lecturnotes') + for meth in ['bonf', 'sidak', 'hs', 'sh']: + print(meth) + print(multipletests(pvals, alpha=0.05, method=meth)) + + if 'fdrmc' in examples: + mcres = mcfdr(nobs=100, nrepl=1000, ntests=30, ntrue=30, mu=0.1, alpha=0.05, rho=0.3) + mcmeans = np.array(mcres).mean(0) + print(mcmeans) + print(mcmeans[0]/6., 1-mcmeans[1]/4.) + print(mcmeans[:4], mcmeans[-4:]) + + + if 'randmvn' in examples: + rvsmvn = randmvn(0.8, (5000,5)) + print(np.corrcoef(rvsmvn, rowvar=0)) + print(rvsmvn.var(0)) + + + if 'tukeycrit' in examples: + print(get_tukeyQcrit(8, 8, alpha=0.05), 5.60) + print(get_tukeyQcrit(8, 8, alpha=0.01), 7.47) + + + if 'multicompdev' in examples: + #development of kruskal-wallis multiple-comparison + #example from matlab file exchange + + X = np.array([[7.68, 1], [7.69, 1], [7.70, 1], [7.70, 1], [7.72, 1], + [7.73, 1], [7.73, 1], [7.76, 1], [7.71, 2], [7.73, 2], + [7.74, 2], [7.74, 2], [7.78, 2], [7.78, 2], [7.80, 2], + [7.81, 2], [7.74, 3], [7.75, 3], [7.77, 3], [7.78, 3], + [7.80, 3], [7.81, 3], [7.84, 3], [7.71, 4], [7.71, 4], + [7.74, 4], [7.79, 4], [7.81, 4], [7.85, 4], [7.87, 4], + [7.91, 4]]) + xli = [X[X[:,1]==k,0] for k in range(1,5)] + xranks = stats.rankdata(X[:,0]) + xranksli = [xranks[X[:,1]==k] for k in range(1,5)] + xnobs = np.array([len(x) for x in xli]) + meanranks = [item.mean() for item in xranksli] + sumranks = [item.sum() for item in xranksli] + # equivalent function + #from scipy import special + #-np.sqrt(2.)*special.erfcinv(2-0.5) == stats.norm.isf(0.25) + stats.norm.sf(0.67448975019608171) + stats.norm.isf(0.25) + + mrs = np.sort(meanranks) + v1, v2 = np.triu_indices(4,1) + print('\nsorted rank differences') + print(mrs[v2] - mrs[v1]) + diffidx = np.argsort(mrs[v2] - mrs[v1])[::-1] + mrs[v2[diffidx]] - mrs[v1[diffidx]] + + print('\nkruskal for all pairs') + for i,j in zip(v2[diffidx], v1[diffidx]): + print(i,j, stats.kruskal(xli[i], xli[j])) + mwu, mwupval = stats.mannwhitneyu(xli[i], xli[j], use_continuity=False) + print(mwu, mwupval*2, mwupval*2<0.05/6., mwupval*2<0.1/6.) + + + + + + uni, intlab = np.unique(X[:,0], return_inverse=True) + groupnobs = np.bincount(intlab) + groupxsum = np.bincount(intlab, weights=X[:,0]) + groupxmean = groupxsum * 1.0 / groupnobs + + rankraw = X[:,0].argsort().argsort() + groupranksum = np.bincount(intlab, weights=rankraw) + # start at 1 for stats.rankdata : + grouprankmean = groupranksum * 1.0 / groupnobs + 1 + assert_almost_equal(grouprankmean[intlab], stats.rankdata(X[:,0]), 15) + gs = GroupsStats(X, useranks=True) + print('\ngroupmeanfilter and grouprankmeans') + print(gs.groupmeanfilter) + print(grouprankmean[intlab]) + #the following has changed + #assert_almost_equal(gs.groupmeanfilter, stats.rankdata(X[:,0]), 15) + + xuni, xintlab = np.unique(X[:,0], return_inverse=True) + gs2 = GroupsStats(np.column_stack([X[:,0], xintlab]), useranks=True) + #assert_almost_equal(gs2.groupmeanfilter, stats.rankdata(X[:,0]), 15) + + rankbincount = np.bincount(xranks.astype(int)) + nties = rankbincount[rankbincount > 1] + ntot = float(len(xranks)); + tiecorrection = 1 - (nties**3 - nties).sum()/(ntot**3 - ntot) + assert_almost_equal(tiecorrection, stats.tiecorrect(xranks),15) + print('\ntiecorrection for data and ranks') + print(tiecorrection) + print(tiecorrect(xranks)) + + tot = X.shape[0] + t=500 #168 + f=(tot*(tot+1.)/12.)-(t/(6.*(tot-1.))) + f=(tot*(tot+1.)/12.)/stats.tiecorrect(xranks) + print('\npairs of mean rank differences') + for i,j in zip(v2[diffidx], v1[diffidx]): + #pdiff = np.abs(mrs[i] - mrs[j]) + pdiff = np.abs(meanranks[i] - meanranks[j]) + se = np.sqrt(f * np.sum(1./xnobs[[i,j]] )) #np.array([8,8]))) #Fixme groupnobs[[i,j]] )) + print(i,j, pdiff, se, pdiff/se, pdiff/se>2.6310) + + multicomp = MultiComparison(*X.T) + multicomp.kruskal() + gsr = GroupsStats(X, useranks=True) + + print('\nexamples for kruskal multicomparison') + for i in range(10): + x1, x2 = (np.random.randn(30,2) + np.array([0, 0.5])).T + skw = stats.kruskal(x1, x2) + mc2=MultiComparison(np.r_[x1, x2], np.r_[np.zeros(len(x1)), np.ones(len(x2))]) + newskw = mc2.kruskal() + print(skw, np.sqrt(skw[0]), skw[1]-newskw, (newskw/skw[1]-1)*100) + + tablett, restt, arrtt = multicomp.allpairtest(stats.ttest_ind) + tablemw, resmw, arrmw = multicomp.allpairtest(stats.mannwhitneyu) + print('') + print(tablett) + print('') + print(tablemw) + tablemwhs, resmw, arrmw = multicomp.allpairtest(stats.mannwhitneyu, method='hs') + print('') + print(tablemwhs) + + if 'last' in examples: + xli = (np.random.randn(60,4) + np.array([0, 0, 0.5, 0.5])).T + #Xrvs = np.array(catstack(xli)) + xrvs, xrvsgr = catstack(xli) + multicompr = MultiComparison(xrvs, xrvsgr) + tablett, restt, arrtt = multicompr.allpairtest(stats.ttest_ind) + print(tablett) + + + xli=[[8,10,9,10,9],[7,8,5,8,5],[4,8,7,5,7]] + x,l = catstack(xli) + gs4 = GroupsStats(np.column_stack([x,l])) + print(gs4.groupvarwithin()) + + + #test_tukeyhsd() #moved to test_multi.py + + gmeans = np.array([ 7.71375, 7.76125, 7.78428571, 7.79875]) + gnobs = np.array([8, 8, 7, 8]) + sd = StepDown(gmeans, gnobs, 0.001, [27]) + + #example from BKY + pvals = [0.0001, 0.0004, 0.0019, 0.0095, 0.0201, 0.0278, 0.0298, 0.0344, 0.0459, + 0.3240, 0.4262, 0.5719, 0.6528, 0.7590, 1.000 ] + + #same number of rejection as in BKY paper: + #single step-up:4, two-stage:8, iterated two-step:9 + #also alpha_star is the same as theirs for TST + print(fdrcorrection0(pvals, alpha=0.05, method='indep')) + print(fdrcorrection_twostage(pvals, alpha=0.05, iter=False)) + res_tst = fdrcorrection_twostage(pvals, alpha=0.05, iter=False) + assert_almost_equal([0.047619, 0.0649], res_tst[-1][:2],3) #alpha_star for stage 2 + assert_equal(8, res_tst[0].sum()) + print(fdrcorrection_twostage(pvals, alpha=0.05, iter=True)) + print('fdr_gbs', multipletests(pvals, alpha=0.05, method='fdr_gbs')) + #multicontrast_pvalues(tstat, tcorr, df) + test_tukey_pvalues() + tukey_pvalues(3.649, 3, 16) diff --git a/statsmodels/sandbox/stats/notes_fdr.txt b/statsmodels/sandbox/stats/notes_fdr.txt new file mode 100644 index 0000000..d027c34 --- /dev/null +++ b/statsmodels/sandbox/stats/notes_fdr.txt @@ -0,0 +1,128 @@ + +Multiple Tests and Multiple Comparisons +======================================= + +Introduction +------------ + +generic multiple testing procedures, p-value corrections and fdr don't use +any additional information, only information contained in p-values. +I don't know if there are any underlying assumption, except that the raw +pvalues are uniformly on [0,1] distributed under the null hypothesis. + +fdr for microarray or fmri can use special structure +A special case in general statistical literature is the comparison of means +with specific methods to correct for multiple tests, e.g. Tukey + +(survey by Shaffer + + +General Methods +--------------- + +pvalue correction +~~~~~~~~~~~~~~~~~ + +implemented, + +basic fdr, BH, BY + +multiple testing procedures +~~~~~~~~~~~~~~~~~~~~~~~~~~~ +pvalue correction is not available/implemented, return reject is True/False +for a given confidence level. +(pvalue correction were initially written this way) + + +fdr bky 2-step procedure with estimation of fraction of false hypothesis. + + +Multiple Comparisons +-------------------- + +Tukey, Dunnet, ... +see Hothorn, Bretz, Westfall, University of Munich 2008, working paper, +published in ... + +The general theory in Bretz, Genz and Hothorn, Bretz, Westfall, multcomp, +is based on the distribution of the maximum of the statistics when the +statistics are distributed according to a joint t or normal distribution +distribution. pvalues, whether to reject a hypothesis and joint confidence +intervalls can be obtained directly from integration of the joint t or +normal distribution. + +Scipy does not have the cdf of a multivariate t distribution, but according +to Bretz and Gentz it can be obtained by a univariate integration from +the cdf of the multivariate normal distribution. + +The distribution for Tukey's range statistic is half (?) of the distribution +of the maximum of t-distributed random variables if the underlying means +are assumed to be independently distributed. (my interpretation so far, but +I have not verified the details yet, see ... ) + +Bretz and Genz also have a table with the summary of the contrast matrices +for different tests, like Tukey and Dunnet. These contrast matrices are +implemented in R, but for some of them they are not immediately obvious. + +As an aside, this seems to be related to getting simultaneous confidence +bands for forecasting. But it is not clear to me yet how to define the +confidence bands, I have the articles but have not read them yet. + +The older tests, Tukey, Dunnet and similar assume that the means are +independently normally distributed, and critical values are tabulated for this +case. Newer methods allow for arbitrary correlation (Bretz, Hothorn,...) or +assume a specific structure for simplicity, for example factor structure for +the covariance as in Hsu. The latter is the default approach in SAS. +The tests based on independence are often categorized as post-hoc tests, a good +overview of the formulas is in the SPSS description. + +It is also mentioned in the literature (?) that these multiple comparison tests +loose power if they are only used conditional on the rejection of an overall +F-test + + +TODO: +* finish Tukey, Dunnet because they will be familiar +* add multivariate normal cdf to statsmodels +* try Bretz/Gentz cdf of t distribution form the cdf of the multivariate normal + + + +special cases +------------- + + +nipy.neurospin + +follows + +Schwartzman, A. et al., 2009. Empirical null and false discovery rate +analysis in neuroimaging. NeuroImage, 44(1), pp.71-82. + +test defined for point-wise test on a 2 component mixture distribution. +The probability of an observation to be in the null distribution can be +estimated from the mixture distribution (not sure) +fdr defined on observations not a sample mean +alternative literature: use topological properties of the picture to +correct fdr. + + +TODO +==== + +* fdr_bky and check whether prior q can be used with current pvalue-correction +* multi-comparison: Tukey, convenience classes/methods expand on current +* Monte Carlo +* maybe some resampling, bootstrap, permutation, later +* for the rest I'm not really interested in doing the work: k-FWER, k-FDR, + other estimators for fraction of true or false hypothesis + + + + +multtest (R) +check bootstrap references + +multcomp (R) +contrMat has the contrast matrices for various standard test +function parm parm(coef, vcov, df = 0) can work with only the estimates given diff --git a/statsmodels/sandbox/stats/runs.py b/statsmodels/sandbox/stats/runs.py new file mode 100644 index 0000000..23b2035 --- /dev/null +++ b/statsmodels/sandbox/stats/runs.py @@ -0,0 +1,635 @@ +'''runstest + +formulas for mean and var of runs taken from SAS manual NPAR tests, also idea +for runstest_1samp and runstest_2samp + +Description in NIST handbook and dataplot doesn't explain their expected +values, or variance + +Note: +There are (at least) two definitions of runs used in literature. The classical +definition which is also used here, is that runs are sequences of identical +observations separated by observations with different realizations. +The second definition allows for overlapping runs, or runs where counting a +run is also started after a run of a fixed length of the same kind. + + +TODO +* add one-sided tests where possible or where it makes sense + +''' + +from __future__ import print_function +import numpy as np +from scipy import stats +from scipy.misc import comb +import warnings + +class Runs(object): + '''class for runs in a binary sequence + + + Parameters + ---------- + x : array_like, 1d + data array, + + + Notes + ----- + This was written as a more general class for runs. This has some redundant + calculations when only the runs_test is used. + + TODO: make it lazy + + The runs test could be generalized to more than 1d if there is a use case + for it. + + This should be extended once I figure out what the distribution of runs + of any length k is. + + The exact distribution for the runs test is also available but not yet + verified. + + ''' + + def __init__(self, x): + self.x = np.asarray(x) + + self.runstart = runstart = np.nonzero(np.diff(np.r_[[-np.inf], x, [np.inf]]))[0] + self.runs = runs = np.diff(runstart) + self.runs_sign = runs_sign = x[runstart[:-1]] + self.runs_pos = runs[runs_sign==1] + self.runs_neg = runs[runs_sign==0] + self.runs_freqs = np.bincount(runs) + self.n_runs = len(self.runs) + self.n_pos = (x==1).sum() + + def runs_test(self, correction=True): + '''basic version of runs test + + Parameters + ---------- + correction: bool + Following the SAS manual, for samplesize below 50, the test + statistic is corrected by 0.5. This can be turned off with + correction=False, and was included to match R, tseries, which + does not use any correction. + + pvalue based on normal distribution, with integer correction + + ''' + self.npo = npo = (self.runs_pos).sum() + self.nne = nne = (self.runs_neg).sum() + + #n_r = self.n_runs + n = npo + nne + npn = npo * nne + rmean = 2. * npn / n + 1 + rvar = 2. * npn * (2.*npn - n) / n**2. / (n-1.) + rstd = np.sqrt(rvar) + rdemean = self.n_runs - rmean + if n >= 50 or not correction: + z = rdemean + else: + if rdemean > 0.5: + z = rdemean - 0.5 + elif rdemean < 0.5: + z = rdemean + 0.5 + else: + z = 0. + + z /= rstd + pval = 2 * stats.norm.sf(np.abs(z)) + return z, pval + +def runstest_1samp(x, cutoff='mean', correction=True): + '''use runs test on binary discretized data above/below cutoff + + Parameters + ---------- + x : array_like + data, numeric + cutoff : {'mean', 'median'} or number + This specifies the cutoff to split the data into large and small + values. + correction: bool + Following the SAS manual, for samplesize below 50, the test + statistic is corrected by 0.5. This can be turned off with + correction=False, and was included to match R, tseries, which + does not use any correction. + + Returns + ------- + z_stat : float + test statistic, asymptotically normally distributed + p-value : float + p-value, reject the null hypothesis if it is below an type 1 error + level, alpha . + + ''' + + if cutoff == 'mean': + cutoff = np.mean(x) + elif cutoff == 'median': + cutoff = np.median(x) + xindicator = (x >= cutoff).astype(int) + return Runs(xindicator).runs_test(correction=correction) + +def runstest_2samp(x, y=None, groups=None, correction=True): + '''Wald-Wolfowitz runstest for two samples + + This tests whether two samples come from the same distribution. + + Parameters + ---------- + x : array_like + data, numeric, contains either one group, if y is also given, or + both groups, if additionally a group indicator is provided + y : array_like (optional) + data, numeric + groups : array_like + group labels or indicator the data for both groups is given in a + single 1-dimensional array, x. If group labels are not [0,1], then + correction: bool + Following the SAS manual, for samplesize below 50, the test + statistic is corrected by 0.5. This can be turned off with + correction=False, and was included to match R, tseries, which + does not use any correction. + + Returns + ------- + z_stat : float + test statistic, asymptotically normally distributed + p-value : float + p-value, reject the null hypothesis if it is below an type 1 error + level, alpha . + + + Notes + ----- + Wald-Wolfowitz runs test. + + If there are ties, then then the test statistic and p-value that is + reported, is based on the higher p-value between sorting all tied + observations of the same group + + + This test is intended for continuous distributions + SAS has treatment for ties, but not clear, and sounds more complicated + (minimum and maximum possible runs prevent use of argsort) + (maybe it's not so difficult, idea: add small positive noise to first + one, run test, then to the other, run test, take max(?) p-value - DONE + This gives not the minimum and maximum of the number of runs, but should + be close. Not true, this is close to minimum but far away from maximum. + maximum number of runs would use alternating groups in the ties.) + Maybe adding random noise would be the better approach. + + SAS has exact distribution for sample size <=30, doesn't look standard + but should be easy to add. + + currently two-sided test only + + This has not been verified against a reference implementation. In a short + Monte Carlo simulation where both samples are normally distribute, the test + seems to be correctly sized for larger number of observations (30 or + larger), but conservative (i.e. reject less often than nominal) with a + sample size of 10 in each group. + + See Also + -------- + runs_test_1samp + Runs + RunsProb + + ''' + x = np.asarray(x) + if not y is None: + y = np.asarray(y) + groups = np.concatenate((np.zeros(len(x)), np.ones(len(y)))) + # note reassigning x + x = np.concatenate((x, y)) + gruni = np.arange(2) + elif not groups is None: + gruni = np.unique(groups) + if gruni.size != 2: # pylint: disable=E1103 + raise ValueError('not exactly two groups specified') + #require groups to be numeric ??? + else: + raise ValueError('either y or groups is necessary') + + xargsort = np.argsort(x) + #check for ties + x_sorted = x[xargsort] + x_diff = np.diff(x_sorted) # used for detecting and handling ties + if x_diff.min() == 0: + print('ties detected') #replace with warning + x_mindiff = x_diff[x_diff > 0].min() + eps = x_mindiff/2. + xx = x.copy() #don't change original, just in case + + xx[groups==gruni[0]] += eps + xargsort = np.argsort(xx) + xindicator = groups[xargsort] + z0, p0 = Runs(xindicator).runs_test(correction=correction) + + xx[groups==gruni[0]] -= eps #restore xx = x + xx[groups==gruni[1]] += eps + xargsort = np.argsort(xx) + xindicator = groups[xargsort] + z1, p1 = Runs(xindicator).runs_test(correction=correction) + + idx = np.argmax([p0,p1]) + return [z0, z1][idx], [p0, p1][idx] + + else: + xindicator = groups[xargsort] + return Runs(xindicator).runs_test(correction=correction) + + +class TotalRunsProb(object): + '''class for the probability distribution of total runs + + This is the exact probability distribution for the (Wald-Wolfowitz) + runs test. The random variable is the total number of runs if the + sample has (n0, n1) observations of groups 0 and 1. + + + Notes + ----- + Written as a class so I can store temporary calculations, but I don't + think it matters much. + + Formulas taken from SAS manual for one-sided significance level. + + Could be converted to a full univariate distribution, subclassing + scipy.stats.distributions. + + *Status* + Not verified yet except for mean. + + + + ''' + + def __init__(self, n0, n1): + self.n0 = n0 + self.n1 = n1 + self.n = n = n0 + n1 + self.comball = comb(n, n1) + + def runs_prob_even(self, r): + n0, n1 = self.n0, self.n1 + tmp0 = comb(n0-1, r//2-1) + tmp1 = comb(n1-1, r//2-1) + return tmp0 * tmp1 * 2. / self.comball + + def runs_prob_odd(self, r): + n0, n1 = self.n0, self.n1 + k = (r+1)//2 + tmp0 = comb(n0-1, k-1) + tmp1 = comb(n1-1, k-2) + tmp3 = comb(n0-1, k-2) + tmp4 = comb(n1-1, k-1) + return (tmp0 * tmp1 + tmp3 * tmp4) / self.comball + + def pdf(self, r): + r = np.asarray(r) + r_isodd = np.mod(r, 2) > 0 + r_odd = r[r_isodd] + r_even = r[~r_isodd] + runs_pdf = np.zeros(r.shape) + runs_pdf[r_isodd] = self.runs_prob_odd(r_odd) + runs_pdf[~r_isodd] = self.runs_prob_even(r_even) + return runs_pdf + + + def cdf(self, r): + r_ = np.arange(2,r+1) + cdfval = self.runs_prob_even(r_[::2]).sum() + cdfval += self.runs_prob_odd(r_[1::2]).sum() + return cdfval + + +class RunsProb(object): + '''distribution of success runs of length k or more (classical definition) + + The underlying process is assumed to be a sequence of Bernoulli trials + of a given length n. + + not sure yet, how to interpret or use the distribution for runs + of length k or more. + + Musseli also has longest success run, and waiting time distribution + negative binomial of order k and geometric of order k + + need to compare with Godpole + + need a MonteCarlo function to do some quick tests before doing more + + + ''' + + + + def pdf(self, x, k, n, p): + '''distribution of success runs of length k or more + + Parameters + ---------- + x : float + count of runs of length n + k : int + length of runs + n : int + total number of observations or trials + p : float + probability of success in each Bernoulli trial + + Returns + ------- + pdf : float + probability that x runs of length of k are observed + + Notes + ----- + not yet vectorized + + References + ---------- + Muselli 1996, theorem 3 + ''' + + q = 1-p + m = np.arange(x, (n+1)//(k+1)+1)[:,None] + terms = (-1)**(m-x) * comb(m, x) * p**(m*k) * q**(m-1) \ + * (comb(n - m*k, m - 1) + q * comb(n - m*k, m)) + return terms.sum(0) + + def pdf_nb(self, x, k, n, p): + pass + #y = np.arange(m-1, n-mk+1 + +''' +>>> [np.sum([RunsProb().pdf(xi, k, 16, 10/16.) for xi in range(0,16)]) for k in range(16)] +[0.99999332193894064, 0.99999999999999367, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0] +>>> [(np.arange(0,16) * [RunsProb().pdf(xi, k, 16, 10/16.) for xi in range(0,16)]).sum() for k in range(16)] +[6.9998931510341809, 4.1406249999999929, 2.4414062500000075, 1.4343261718749996, 0.83923339843749856, 0.48875808715820324, 0.28312206268310569, 0.1629814505577086, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] +>>> np.array([(np.arange(0,16) * [RunsProb().pdf(xi, k, 16, 10/16.) for xi in range(0,16)]).sum() for k in range(16)])/11 +array([ 0.63635392, 0.37642045, 0.22194602, 0.13039329, 0.07629395, + 0.04443255, 0.02573837, 0.0148165 , 0. , 0. , + 0. , 0. , 0. , 0. , 0. , 0. ]) +>>> np.diff([(np.arange(0,16) * [RunsProb().pdf(xi, k, 16, 10/16.) for xi in range(0,16)]).sum() for k in range(16)][::-1]) +array([ 0. , 0. , 0. , 0. , 0. , + 0. , 0. , 0.16298145, 0.12014061, 0.20563602, + 0.35047531, 0.59509277, 1.00708008, 1.69921875, 2.85926815]) +''' + + + +def median_test_ksample(x, groups): + '''chisquare test for equality of median/location + + This tests whether all groups have the same fraction of observations + above the median. + + Parameters + ---------- + x : array_like + data values stacked for all groups + groups : array_like + group labels or indicator + + Returns + ------- + stat : float + test statistic + pvalue : float + pvalue from the chisquare distribution + others ???? + currently some test output, table and expected + + ''' + x = np.asarray(x) + gruni = np.unique(groups) + xli = [x[groups==group] for group in gruni] + xmedian = np.median(x) + counts_larger = np.array([(xg > xmedian).sum() for xg in xli]) + counts = np.array([len(xg) for xg in xli]) + counts_smaller = counts - counts_larger + nobs = counts.sum() + n_larger = (x > xmedian).sum() + n_smaller = nobs - n_larger + table = np.vstack((counts_smaller, counts_larger)) + + #the following should be replaced by chisquare_contingency table + expected = np.vstack((counts * 1. / nobs * n_smaller, + counts * 1. / nobs * n_larger)) + + if (expected < 5).any(): + print('Warning: There are cells with less than 5 expected' \ + 'observations. The chisquare distribution might not be a good' \ + 'approximation for the true distribution.') + + #check ddof + return stats.chisquare(table.ravel(), expected.ravel(), ddof=1), table, expected + + + + +def cochrans_q(x): + '''Cochran's Q test for identical effect of k treatments + + Cochran's Q is a k-sample extension of the McNemar test. If there are only + two treatments, then Cochran's Q test and McNemar test are equivalent. + + Test that the probability of success is the same for each treatment. + The alternative is that at least two treatments have a different + probability of success. + + Parameters + ---------- + x : array_like, 2d (N,k) + data with N cases and k variables + + Returns + ------- + q_stat : float + test statistic + pvalue : float + pvalue from the chisquare distribution + + Notes + ----- + In Wikipedia terminology, rows are blocks and columns are treatments. + The number of rows N, should be large for the chisquare distribution to be + a good approximation. + The Null hypothesis of the test is that all treatments have the + same effect. + + References + ---------- + http://en.wikipedia.org/wiki/Cochran_test + SAS Manual for NPAR TESTS + + ''' + + warnings.warn("Deprecated, use stats.cochrans_q instead", DeprecationWarning) + + x = np.asarray(x) + gruni = np.unique(x) + N, k = x.shape + count_row_success = (x==gruni[-1]).sum(1, float) + count_col_success = (x==gruni[-1]).sum(0, float) + count_row_ss = count_row_success.sum() + count_col_ss = count_col_success.sum() + assert count_row_ss == count_col_ss #just a calculation check + + + #this is SAS manual + q_stat = (k-1) * (k * np.sum(count_col_success**2) - count_col_ss**2) \ + / (k * count_row_ss - np.sum(count_row_success**2)) + + #Note: the denominator looks just like k times the variance of the + #columns + + #Wikipedia uses a different, but equivalent expression +## q_stat = (k-1) * (k * np.sum(count_row_success**2) - count_row_ss**2) \ +## / (k * count_col_ss - np.sum(count_col_success**2)) + + return q_stat, stats.chi2.sf(q_stat, k-1) + +def mcnemar(x, y=None, exact=True, correction=True): + '''McNemar test + + Parameters + ---------- + x, y : array_like + two paired data samples. If y is None, then x can be a 2 by 2 + contingency table. x and y can have more than one dimension, then + the results are calculated under the assumption that axis zero + contains the observation for the samples. + exact : bool + If exact is true, then the binomial distribution will be used. + If exact is false, then the chisquare distribution will be used, which + is the approximation to the distribution of the test statistic for + large sample sizes. + correction : bool + If true, then a continuity correction is used for the chisquare + distribution (if exact is false.) + + Returns + ------- + stat : float or int, array + The test statistic is the chisquare statistic if exact is false. If the + exact binomial distribution is used, then this contains the min(n1, n2), + where n1, n2 are cases that are zero in one sample but one in the other + sample. + + pvalue : float or array + p-value of the null hypothesis of equal effects. + + Notes + ----- + This is a special case of Cochran's Q test. The results when the chisquare + distribution is used are identical, except for continuity correction. + + ''' + + warnings.warn("Deprecated, use stats.TableSymmetry instead", DeprecationWarning) + + x = np.asarray(x) + if y is None and x.shape[0] == x.shape[1]: + if x.shape[0] != 2: + raise ValueError('table needs to be 2 by 2') + n1, n2 = x[1, 0], x[0, 1] + else: + # I'm not checking here whether x and y are binary, + # isn't this also paired sign test + n1 = np.sum(x < y, 0) + n2 = np.sum(x > y, 0) + + if exact: + stat = np.minimum(n1, n2) + # binom is symmetric with p=0.5 + pval = stats.binom.cdf(stat, n1 + n2, 0.5) * 2 + pval = np.minimum(pval, 1) # limit to 1 if n1==n2 + else: + corr = int(correction) # convert bool to 0 or 1 + stat = (np.abs(n1 - n2) - corr)**2 / (1. * (n1 + n2)) + df = 1 + pval = stats.chi2.sf(stat, df) + return stat, pval + + +def symmetry_bowker(table): + '''Test for symmetry of a (k, k) square contingency table + + This is an extension of the McNemar test to test the Null hypothesis + that the contingency table is symmetric around the main diagonal, that is + + n_{i, j} = n_{j, i} for all i, j + + Parameters + ---------- + table : array_like, 2d, (k, k) + a square contingency table that contains the count for k categories + in rows and columns. + + Returns + ------- + statistic : float + chisquare test statistic + p-value : float + p-value of the test statistic based on chisquare distribution + df : int + degrees of freedom of the chisquare distribution + + Notes + ----- + Implementation is based on the SAS documentation, R includes it in + `mcnemar.test` if the table is not 2 by 2. + + The pvalue is based on the chisquare distribution which requires that the + sample size is not very small to be a good approximation of the true + distribution. For 2x2 contingency tables exact distribution can be + obtained with `mcnemar` + + See Also + -------- + mcnemar + + + ''' + + warnings.warn("Deprecated, use stats.TableSymmetry instead", DeprecationWarning) + + table = np.asarray(table) + k, k2 = table.shape + if k != k2: + raise ValueError('table needs to be square') + + #low_idx = np.tril_indices(k, -1) # this doesn't have Fortran order + upp_idx = np.triu_indices(k, 1) + + tril = table.T[upp_idx] # lower triangle in column order + triu = table[upp_idx] # upper triangle in row order + + stat = ((tril - triu)**2 / (tril + triu + 1e-20)).sum() + df = k * (k-1) / 2. + pval = stats.chi2.sf(stat, df) + + return stat, pval, df + + +if __name__ == '__main__': + + x1 = np.array([1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1]) + + print(Runs(x1).runs_test()) + print(runstest_1samp(x1, cutoff='mean')) + print(runstest_2samp(np.arange(16,0,-1), groups=x1)) + print(TotalRunsProb(7,9).cdf(11)) + print(median_test_ksample(np.random.randn(100), np.random.randint(0,2,100))) + print(cochrans_q(np.random.randint(0,2,(100,8)))) + diff --git a/statsmodels/sandbox/stats/stats_dhuard.py b/statsmodels/sandbox/stats/stats_dhuard.py new file mode 100644 index 0000000..af1b889 --- /dev/null +++ b/statsmodels/sandbox/stats/stats_dhuard.py @@ -0,0 +1,341 @@ +''' +from David Huard's scipy sandbox, also attached to a ticket and +in the matplotlib-user mailinglist (links ???) + + +Notes +===== + +out of bounds interpolation raises exception and wouldn't be completely +defined :: + +>>> scoreatpercentile(x, [0,25,50,100]) +Traceback (most recent call last): +... + raise ValueError("A value in x_new is below the interpolation " +ValueError: A value in x_new is below the interpolation range. +>>> percentileofscore(x, [-50, 50]) +Traceback (most recent call last): +... + raise ValueError("A value in x_new is below the interpolation " +ValueError: A value in x_new is below the interpolation range. + + +idea +==== + +histogram and empirical interpolated distribution +------------------------------------------------- + +dual constructor +* empirical cdf : cdf on all observations through linear interpolation +* binned cdf : based on histogram +both should work essentially the same, although pdf of empirical has +many spikes, fluctuates a lot +- alternative: binning based on interpolated cdf : example in script +* ppf: quantileatscore based on interpolated cdf +* rvs : generic from ppf +* stats, expectation ? how does integration wrt cdf work - theory? + +Problems +* limits, lower and upper bound of support + does not work or is undefined with empirical cdf and interpolation +* extending bounds ? + matlab has pareto tails for empirical distribution, breaks linearity + +empirical distribution with higher order interpolation +------------------------------------------------------ + +* should work easily enough with interpolating splines +* not piecewise linear +* can use pareto (or other) tails +* ppf how do I get the inverse function of a higher order spline? + Chuck: resample and fit spline to inverse function + this will have an approximation error in the inverse function +* -> doesn't work: higher order spline doesn't preserve monotonicity + see mailing list for response to my question +* pmf from derivative available in spline + +-> forget this and use kernel density estimator instead + + +bootstrap/empirical distribution: +--------------------------------- + +discrete distribution on real line given observations +what's defined? +* cdf : step function +* pmf : points with equal weight 1/nobs +* rvs : resampling +* ppf : quantileatscore on sample? +* moments : from data ? +* expectation ? sum_{all observations x} [func(x) * pmf(x)] +* similar for discrete distribution on real line +* References : ? +* what's the point? most of it is trivial, just for the record ? + + +Created on Monday, May 03, 2010, 11:47:03 AM +Author: josef-pktd, parts based on David Huard +License: BSD + +''' +from __future__ import print_function +import scipy.interpolate as interpolate +import numpy as np + +def scoreatpercentile(data, percentile): + """Return the score at the given percentile of the data. + + Example: + >>> data = randn(100) + >>> scoreatpercentile(data, 50) + + will return the median of sample `data`. + """ + per = np.array(percentile) + cdf = empiricalcdf(data) + interpolator = interpolate.interp1d(np.sort(cdf), np.sort(data)) + return interpolator(per/100.) + +def percentileofscore(data, score): + """Return the percentile-position of score relative to data. + + score: Array of scores at which the percentile is computed. + + Return percentiles (0-100). + + Example + r = randn(50) + x = linspace(-2,2,100) + percentileofscore(r,x) + + Raise an error if the score is outside the range of data. + """ + cdf = empiricalcdf(data) + interpolator = interpolate.interp1d(np.sort(data), np.sort(cdf)) + return interpolator(score)*100. + +def empiricalcdf(data, method='Hazen'): + """Return the empirical cdf. + + Methods available: + Hazen: (i-0.5)/N + Weibull: i/(N+1) + Chegodayev: (i-.3)/(N+.4) + Cunnane: (i-.4)/(N+.2) + Gringorten: (i-.44)/(N+.12) + California: (i-1)/N + + Where i goes from 1 to N. + """ + + i = np.argsort(np.argsort(data)) + 1. + N = len(data) + method = method.lower() + if method == 'hazen': + cdf = (i-0.5)/N + elif method == 'weibull': + cdf = i/(N+1.) + elif method == 'california': + cdf = (i-1.)/N + elif method == 'chegodayev': + cdf = (i-.3)/(N+.4) + elif method == 'cunnane': + cdf = (i-.4)/(N+.2) + elif method == 'gringorten': + cdf = (i-.44)/(N+.12) + else: + raise ValueError('Unknown method. Choose among Weibull, Hazen,' + 'Chegodayev, Cunnane, Gringorten and California.') + + return cdf + + +class HistDist(object): + '''Distribution with piecewise linear cdf, pdf is step function + + can be created from empiricial distribution or from a histogram (not done yet) + + work in progress, not finished + + + ''' + + def __init__(self, data): + self.data = np.atleast_1d(data) + self.binlimit = np.array([self.data.min(), self.data.max()]) + sortind = np.argsort(data) + self._datasorted = data[sortind] + self.ranking = np.argsort(sortind) + + cdf = self.empiricalcdf() + self._empcdfsorted = np.sort(cdf) + self.cdfintp = interpolate.interp1d(self._datasorted, self._empcdfsorted) + self.ppfintp = interpolate.interp1d(self._empcdfsorted, self._datasorted) + + def empiricalcdf(self, data=None, method='Hazen'): + """Return the empirical cdf. + + Methods available: + Hazen: (i-0.5)/N + Weibull: i/(N+1) + Chegodayev: (i-.3)/(N+.4) + Cunnane: (i-.4)/(N+.2) + Gringorten: (i-.44)/(N+.12) + California: (i-1)/N + + Where i goes from 1 to N. + """ + + if data is None: + data = self.data + i = self.ranking + else: + i = np.argsort(np.argsort(data)) + 1. + + N = len(data) + method = method.lower() + if method == 'hazen': + cdf = (i-0.5)/N + elif method == 'weibull': + cdf = i/(N+1.) + elif method == 'california': + cdf = (i-1.)/N + elif method == 'chegodayev': + cdf = (i-.3)/(N+.4) + elif method == 'cunnane': + cdf = (i-.4)/(N+.2) + elif method == 'gringorten': + cdf = (i-.44)/(N+.12) + else: + raise ValueError('Unknown method. Choose among Weibull, Hazen,' + 'Chegodayev, Cunnane, Gringorten and California.') + + return cdf + + + def cdf_emp(self, score): + ''' + this is score in dh + + ''' + return self.cdfintp(score) + #return percentileofscore(self.data, score) + + def ppf_emp(self, quantile): + ''' + this is score in dh + + ''' + return self.ppfintp(quantile) + #return scoreatpercentile(self.data, quantile*100) + + + #from DHuard http://old.nabble.com/matplotlib-f2903.html + def optimize_binning(self, method='Freedman'): + """Find the optimal number of bins and update the bin countaccordingly. + Available methods : Freedman + Scott + """ + + nobs = len(self.data) + if method=='Freedman': + IQR = self.ppf_emp(0.75) - self.ppf_emp(0.25) # Interquantile range(75% -25%) + width = 2* IQR* nobs**(-1./3) + + elif method=='Scott': + width = 3.49 * np.std(self.data) * nobs**(-1./3) + + self.nbin = (self.binlimit.ptp()/width) + return self.nbin + + +#changes: josef-pktd +if __name__ == '__main__': + import matplotlib.pyplot as plt + + nobs = 100 + x = np.random.randn(nobs) + + examples = [2] + if 1 in examples: + empiricalcdf(x) + print(percentileofscore(x, 0.5)) + print(scoreatpercentile(x, 50)) + import matplotlib.pyplot as plt + xsupp = np.linspace(x.min(), x.max()) + pos = percentileofscore(x, xsupp) + plt.plot(xsupp, pos) + #perc = np.linspace(2.5, 97.5) + #plt.plot(scoreatpercentile(x, perc), perc) + plt.plot(scoreatpercentile(x, pos), pos+1) + + + #emp = interpolate.PiecewisePolynomial(np.sort(empiricalcdf(x)), np.sort(x)) + emp=interpolate.InterpolatedUnivariateSpline(np.sort(x),np.sort(empiricalcdf(x)),k=1) + pdfemp = np.array([emp.derivatives(xi)[1] for xi in xsupp]) + plt.figure() + plt.plot(xsupp,pdfemp) + cdf_ongrid = emp(xsupp) + plt.figure() + plt.plot(xsupp, cdf_ongrid) + + #get pdf from interpolated cdf on a regular grid + plt.figure() + plt.step(xsupp[:-1],np.diff(cdf_ongrid)/np.diff(xsupp)) + + #reduce number of bins/steps + xsupp2 = np.linspace(x.min(), x.max(), 25) + plt.figure() + plt.step(xsupp2[:-1],np.diff(emp(xsupp2))/np.diff(xsupp2)) + + #pdf using 25 original observations, every (nobs/25)th + xso = np.sort(x) + xs = xso[::nobs/25] + plt.figure() + plt.step(xs[:-1],np.diff(emp(xs))/np.diff(xs)) + #lower end looks strange + + + histd = HistDist(x) + print(histd.optimize_binning()) + print(histd.cdf_emp(histd.binlimit)) + print(histd.ppf_emp([0.25, 0.5, 0.75])) + print(histd.cdf_emp([-0.5, -0.25, 0, 0.25, 0.5])) + + + xsupp = np.linspace(x.min(), x.max(), 500) + emp=interpolate.InterpolatedUnivariateSpline(np.sort(x),np.sort(empiricalcdf(x)),k=1) + #pdfemp = np.array([emp.derivatives(xi)[1] for xi in xsupp]) + #plt.figure() + #plt.plot(xsupp,pdfemp) + cdf_ongrid = emp(xsupp) + plt.figure() + plt.plot(xsupp, cdf_ongrid) + ppfintp = interpolate.InterpolatedUnivariateSpline(cdf_ongrid,xsupp,k=3) + + ppfs = ppfintp(cdf_ongrid) + plt.plot(ppfs, cdf_ongrid) + #ppfemp=interpolate.InterpolatedUnivariateSpline(np.sort(empiricalcdf(x)),np.sort(x),k=3) + #Don't use interpolating splines for function approximation + #with s=0.03 the spline is monotonic at the evaluated values + ppfemp=interpolate.UnivariateSpline(np.sort(empiricalcdf(x)),np.sort(x),k=3, s=0.03) + ppfe = ppfemp(cdf_ongrid) + plt.plot(ppfe, cdf_ongrid) + + print('negative density') + print('(np.diff(ppfs)).min()', (np.diff(ppfs)).min()) + print('(np.diff(cdf_ongrid)).min()', (np.diff(cdf_ongrid)).min()) + #plt.show() + + + + + + + + + + + diff --git a/statsmodels/sandbox/stats/stats_mstats_short.py b/statsmodels/sandbox/stats/stats_mstats_short.py new file mode 100644 index 0000000..fc00ecf --- /dev/null +++ b/statsmodels/sandbox/stats/stats_mstats_short.py @@ -0,0 +1,383 @@ +'''get versions of mstats percentile functions that also work with non-masked arrays + +uses dispatch to mstats version for difficult cases: + - data is masked array + - data requires nan handling (masknan=True) + - data should be trimmed (limit is non-empty) +handle simple cases directly, which doesn't require apply_along_axis +changes compared to mstats: plotting_positions for n-dim with axis argument +addition: plotting_positions_w1d: with weights, 1d ndarray only + +TODO: +consistency with scipy.stats versions not checked +docstrings from mstats not updated yet +code duplication, better solutions (?) +convert examples to tests +rename alphap, betap for consistency +timing question: one additional argsort versus apply_along_axis +weighted plotting_positions +- I haven't figured out nd version of weighted plotting_positions +- add weighted quantiles + + +''' +from __future__ import print_function +import numpy as np +from numpy import ma +from scipy import stats + +#from numpy.ma import nomask + + + + +#####-------------------------------------------------------------------------- +#---- --- Percentiles --- +#####-------------------------------------------------------------------------- + + +def quantiles(a, prob=list([.25,.5,.75]), alphap=.4, betap=.4, axis=None, + limit=(), masknan=False): + """ + Computes empirical quantiles for a data array. + + Samples quantile are defined by :math:`Q(p) = (1-g).x[i] +g.x[i+1]`, + where :math:`x[j]` is the *j*th order statistic, and + `i = (floor(n*p+m))`, `m=alpha+p*(1-alpha-beta)` and `g = n*p + m - i`. + + Typical values of (alpha,beta) are: + - (0,1) : *p(k) = k/n* : linear interpolation of cdf (R, type 4) + - (.5,.5) : *p(k) = (k+1/2.)/n* : piecewise linear + function (R, type 5) + - (0,0) : *p(k) = k/(n+1)* : (R type 6) + - (1,1) : *p(k) = (k-1)/(n-1)*. In this case, p(k) = mode[F(x[k])]. + That's R default (R type 7) + - (1/3,1/3): *p(k) = (k-1/3)/(n+1/3)*. Then p(k) ~ median[F(x[k])]. + The resulting quantile estimates are approximately median-unbiased + regardless of the distribution of x. (R type 8) + - (3/8,3/8): *p(k) = (k-3/8)/(n+1/4)*. Blom. + The resulting quantile estimates are approximately unbiased + if x is normally distributed (R type 9) + - (.4,.4) : approximately quantile unbiased (Cunnane) + - (.35,.35): APL, used with PWM ?? JP + - (0.35, 0.65): PWM ?? JP p(k) = (k-0.35)/n + + Parameters + ---------- + a : array-like + Input data, as a sequence or array of dimension at most 2. + prob : array-like, optional + List of quantiles to compute. + alpha : float, optional + Plotting positions parameter, default is 0.4. + beta : float, optional + Plotting positions parameter, default is 0.4. + axis : int, optional + Axis along which to perform the trimming. + If None (default), the input array is first flattened. + limit : tuple + Tuple of (lower, upper) values. + Values of `a` outside this closed interval are ignored. + + Returns + ------- + quants : MaskedArray + An array containing the calculated quantiles. + + Examples + -------- + >>> from scipy.stats.mstats import mquantiles + >>> a = np.array([6., 47., 49., 15., 42., 41., 7., 39., 43., 40., 36.]) + >>> mquantiles(a) + array([ 19.2, 40. , 42.8]) + + Using a 2D array, specifying axis and limit. + + >>> data = np.array([[ 6., 7., 1.], + [ 47., 15., 2.], + [ 49., 36., 3.], + [ 15., 39., 4.], + [ 42., 40., -999.], + [ 41., 41., -999.], + [ 7., -999., -999.], + [ 39., -999., -999.], + [ 43., -999., -999.], + [ 40., -999., -999.], + [ 36., -999., -999.]]) + >>> mquantiles(data, axis=0, limit=(0, 50)) + array([[ 19.2 , 14.6 , 1.45], + [ 40. , 37.5 , 2.5 ], + [ 42.8 , 40.05, 3.55]]) + + >>> data[:, 2] = -999. + >>> mquantiles(data, axis=0, limit=(0, 50)) + masked_array(data = + [[19.2 14.6 --] + [40.0 37.5 --] + [42.8 40.05 --]], + mask = + [[False False True] + [False False True] + [False False True]], + fill_value = 1e+20) + + """ + + if isinstance(a, np.ma.MaskedArray): + return stats.mstats.mquantiles(a, prob=prob, alphap=alphap, betap=alphap, axis=axis, + limit=limit) + if limit: + marr = stats.mstats.mquantiles(a, prob=prob, alphap=alphap, betap=alphap, axis=axis, + limit=limit) + return ma.filled(marr, fill_value=np.nan) + if masknan: + nanmask = np.isnan(a) + if nanmask.any(): + marr = ma.array(a, mask=nanmask) + marr = stats.mstats.mquantiles(marr, prob=prob, alphap=alphap, betap=alphap, + axis=axis, limit=limit) + return ma.filled(marr, fill_value=np.nan) + + # Initialization & checks --------- + data = np.asarray(a) + + p = np.array(prob, copy=False, ndmin=1) + m = alphap + p*(1.-alphap-betap) + + isrolled = False + #from _quantiles1d + if (axis is None): + data = data.ravel() #reshape(-1,1) + axis = 0 + else: + axis = np.arange(data.ndim)[axis] + data = np.rollaxis(data, axis) + isrolled = True # keep track, maybe can be removed + + x = np.sort(data, axis=0) + n = x.shape[0] + returnshape = list(data.shape) + returnshape[axis] = p + + #TODO: check these + if n == 0: + return np.empty(len(p), dtype=float) + elif n == 1: + return np.resize(x, p.shape) + aleph = (n*p + m) + k = np.floor(aleph.clip(1, n-1)).astype(int) + ind = [None]*x.ndim + ind[0] = slice(None) + gamma = (aleph-k).clip(0,1)[ind] + q = (1.-gamma)*x[k-1] + gamma*x[k] + if isrolled: + return np.rollaxis(q, 0, axis+1) + else: + return q + +def scoreatpercentile(data, per, limit=(), alphap=.4, betap=.4, axis=0, masknan=None): + """Calculate the score at the given 'per' percentile of the + sequence a. For example, the score at per=50 is the median. + + This function is a shortcut to mquantile + + """ + per = np.asarray(per, float) + if (per < 0).any() or (per > 100.).any(): + raise ValueError("The percentile should be between 0. and 100. !"\ + " (got %s)" % per) + return quantiles(data, prob=[per/100.], alphap=alphap, betap=betap, + limit=limit, axis=axis, masknan=masknan).squeeze() + + +def plotting_positions(data, alpha=0.4, beta=0.4, axis=0, masknan=False): + """Returns the plotting positions (or empirical percentile points) for the + data. + Plotting positions are defined as (i-alpha)/(n+1-alpha-beta), where: + - i is the rank order statistics (starting at 1) + - n is the number of unmasked values along the given axis + - alpha and beta are two parameters. + + Typical values for alpha and beta are: + - (0,1) : *p(k) = k/n* : linear interpolation of cdf (R, type 4) + - (.5,.5) : *p(k) = (k-1/2.)/n* : piecewise linear function (R, type 5) + (Bliss 1967: "Rankit") + - (0,0) : *p(k) = k/(n+1)* : Weibull (R type 6), (Van der Waerden 1952) + - (1,1) : *p(k) = (k-1)/(n-1)*. In this case, p(k) = mode[F(x[k])]. + That's R default (R type 7) + - (1/3,1/3): *p(k) = (k-1/3)/(n+1/3)*. Then p(k) ~ median[F(x[k])]. + The resulting quantile estimates are approximately median-unbiased + regardless of the distribution of x. (R type 8), (Tukey 1962) + - (3/8,3/8): *p(k) = (k-3/8)/(n+1/4)*. + The resulting quantile estimates are approximately unbiased + if x is normally distributed (R type 9) (Blom 1958) + - (.4,.4) : approximately quantile unbiased (Cunnane) + - (.35,.35): APL, used with PWM + + Parameters + ---------- + x : sequence + Input data, as a sequence or array of dimension at most 2. + prob : sequence + List of quantiles to compute. + alpha : {0.4, float} optional + Plotting positions parameter. + beta : {0.4, float} optional + Plotting positions parameter. + + Notes + ----- + I think the adjustments assume that there are no ties in order to be a reasonable + approximation to a continuous density function. TODO: check this + + References + ---------- + unknown, + dates to original papers from Beasley, Erickson, Allison 2009 Behav Genet + """ + if isinstance(data, np.ma.MaskedArray): + if axis is None or data.ndim == 1: + return stats.mstats.plotting_positions(data, alpha=alpha, beta=beta) + else: + return ma.apply_along_axis(stats.mstats.plotting_positions, axis, data, alpha=alpha, beta=beta) + if masknan: + nanmask = np.isnan(data) + if nanmask.any(): + marr = ma.array(data, mask=nanmask) + #code duplication: + if axis is None or data.ndim == 1: + marr = stats.mstats.plotting_positions(marr, alpha=alpha, beta=beta) + else: + marr = ma.apply_along_axis(stats.mstats.plotting_positions, axis, marr, alpha=alpha, beta=beta) + return ma.filled(marr, fill_value=np.nan) + + data = np.asarray(data) + if data.size == 1: # use helper function instead + data = np.atleast_1d(data) + axis = 0 + if axis is None: + data = data.ravel() + axis = 0 + n = data.shape[axis] + if data.ndim == 1: + plpos = np.empty(data.shape, dtype=float) + plpos[data.argsort()] = (np.arange(1,n+1) - alpha)/(n+1.-alpha-beta) + else: + #nd assignment instead of second argsort doesn't look easy + plpos = (data.argsort(axis).argsort(axis) + 1. - alpha)/(n+1.-alpha-beta) + return plpos + +meppf = plotting_positions + +def plotting_positions_w1d(data, weights=None, alpha=0.4, beta=0.4, + method='notnormed'): + '''Weighted plotting positions (or empirical percentile points) for the data. + + observations are weighted and the plotting positions are defined as + (ws-alpha)/(n-alpha-beta), where: + - ws is the weighted rank order statistics or cumulative weighted sum, + normalized to n if method is "normed" + - n is the number of values along the given axis if method is "normed" + and total weight otherwise + - alpha and beta are two parameters. + + wtd.quantile in R package Hmisc seems to use the "notnormed" version. + notnormed coincides with unweighted segment in example, drop "normed" version ? + + + See Also + -------- + plotting_positions : unweighted version that works also with more than one + dimension and has other options + ''' + + x = np.atleast_1d(data) + if x.ndim > 1: + raise ValueError('currently implemented only for 1d') + if weights is None: + weights = np.ones(x.shape) + else: + weights = np.array(weights, float, copy=False, ndmin=1) #atleast_1d(weights) + if weights.shape != x.shape: + raise ValueError('if weights is given, it needs to be the same' + 'shape as data') + n = len(x) + xargsort = x.argsort() + ws = weights[xargsort].cumsum() + res = np.empty(x.shape) + if method == 'normed': + res[xargsort] = (1.*ws/ws[-1]*n-alpha)/(n+1.-alpha-beta) + else: + res[xargsort] = (1.*ws-alpha)/(ws[-1]+1.-alpha-beta) + return res + +def edf_normal_inverse_transformed(x, alpha=3./8, beta=3./8, axis=0): + '''rank based normal inverse transformed cdf + ''' + from scipy import stats + ranks = plotting_positions(data, alpha=alpha, beta=alpha, axis=0, masknan=False) + ranks_transf = stats.norm.ppf(ranks) + return ranks_transf + +if __name__ == '__main__': + + x = np.arange(5) + print(plotting_positions(x)) + x = np.arange(10).reshape(-1,2) + print(plotting_positions(x)) + print(quantiles(x, axis=0)) + print(quantiles(x, axis=None)) + print(quantiles(x, axis=1)) + xm = ma.array(x) + x2 = x.astype(float) + x2[1,0] = np.nan + print(plotting_positions(xm, axis=0)) + + # test 0d, 1d + for sl1 in [slice(None), 0]: + print((plotting_positions(xm[sl1,0]) == plotting_positions(x[sl1,0])).all()) + print((quantiles(xm[sl1,0]) == quantiles(x[sl1,0])).all()) + print((stats.mstats.mquantiles(ma.fix_invalid(x2[sl1,0])) == quantiles(x2[sl1,0], masknan=1)).all()) + + #test 2d + for ax in [0, 1, None, -1]: + print((plotting_positions(xm, axis=ax) == plotting_positions(x, axis=ax)).all()) + print((quantiles(xm, axis=ax) == quantiles(x, axis=ax)).all()) + print((stats.mstats.mquantiles(ma.fix_invalid(x2), axis=ax) == quantiles(x2, axis=ax, masknan=1)).all()) + + #stats version doesn't have axis + print((stats.mstats.plotting_positions(ma.fix_invalid(x2)) == plotting_positions(x2, axis=None, masknan=1)).all()) + + #test 3d + x3 = np.dstack((x,x)).T + for ax in [1,2]: + print((plotting_positions(x3, axis=ax)[0] == plotting_positions(x.T, axis=ax-1)).all()) + + np.testing.assert_equal(plotting_positions(np.arange(10), alpha=0.35, beta=1-0.35), (1+np.arange(10)-0.35)/10) + np.testing.assert_equal(plotting_positions(np.arange(10), alpha=0.4, beta=0.4), (1+np.arange(10)-0.4)/(10+0.2)) + np.testing.assert_equal(plotting_positions(np.arange(10)), (1+np.arange(10)-0.4)/(10+0.2)) + print('') + print(scoreatpercentile(x, [10,90])) + print(plotting_positions_w1d(x[:,0])) + print((plotting_positions_w1d(x[:,0]) == plotting_positions(x[:,0])).all()) + + + #weights versus replicating multiple occurencies of same x value + w1 = [1, 1, 2, 1, 1] + plotexample = 1 + if plotexample: + import matplotlib.pyplot as plt + plt.figure() + plt.title('ppf, cdf values on horizontal axis') + plt.step(plotting_positions_w1d(x[:,0], weights=w1, method='0'), x[:,0], where='post') + plt.step(stats.mstats.plotting_positions(np.repeat(x[:,0],w1,axis=0)),np.repeat(x[:,0],w1,axis=0),where='post') + plt.plot(plotting_positions_w1d(x[:,0], weights=w1, method='0'), x[:,0], '-o') + plt.plot(stats.mstats.plotting_positions(np.repeat(x[:,0],w1,axis=0)),np.repeat(x[:,0],w1,axis=0), '-o') + + plt.figure() + plt.title('cdf, cdf values on vertical axis') + plt.step(x[:,0], plotting_positions_w1d(x[:,0], weights=w1, method='0'),where='post') + plt.step(np.repeat(x[:,0],w1,axis=0), stats.mstats.plotting_positions(np.repeat(x[:,0],w1,axis=0)),where='post') + plt.plot(x[:,0], plotting_positions_w1d(x[:,0], weights=w1, method='0'), '-o') + plt.plot(np.repeat(x[:,0],w1,axis=0), stats.mstats.plotting_positions(np.repeat(x[:,0],w1,axis=0)), '-o') + plt.show() diff --git a/statsmodels/sandbox/stats/tests/__init__.py b/statsmodels/sandbox/stats/tests/__init__.py new file mode 100644 index 0000000..1e26f0c --- /dev/null +++ b/statsmodels/sandbox/stats/tests/__init__.py @@ -0,0 +1,165 @@ +''' + +Econometrics for a Datarich Environment +======================================= + +Introduction +------------ +In many cases we are performing statistical analysis when many observed variables are +available, when we are in a data rich environment. Machine learning has a wide variety +of tools for dimension reduction and penalization when there are many varibles compared +to the number of observation. Chemometrics has a long tradition of using Partial Least +Squares, NIPALS and similar in these cases. In econometrics the same problem shows up +when there are either many possible regressors, many (weak) instruments or when there are +a large number of moment conditions in GMM. + +This section is intended to collect some models and tools in this area that are relevant +for the statical analysis and econometrics. + +Covariance Matrices +=================== +Several methods are available to reduce the small sample noise in estimated covariance +matrices with many variable. +Some applications: +weighting matrix with many moments, +covariance matrix for portfolio choice + +Dimension Reduction +=================== +Principal Component and Partial Least Squares try to extract the important low dimensional +factors from the data with many variables. + +Regression with many regressors +=============================== +Factor models, selection of regressors and shrinkage and penalization are used to improve +the statistical properties, when the presence of too many regressors leads to over-fitting +and too noisy small sample estimators and statistics. + +Regression with many moments or many instruments +================================================ +The same tools apply and can be used in these two cases. +e.g. Tychonov regularization of weighting matrix in GMM, similar to Ridge regression, the +weighting matrix can be shrunk towards the identity matrix. +Simplest case will be part of GMM. I don't know how much will be standalone +functions. + + +Intended Content +================ + +PLS +--- +what should be available in class? + +Factormodel and supporting helper functions +------------------------------------------- + +PCA based +~~~~~~~~~ +First version based PCA on Stock/Watson and Bai/Ng, and recent papers on the +selection of the number of factors. Not sure about Forni et al. in approach. +Basic support of this needs additional results for PCA, error covariance matrix +of data on reduced factors, required for criteria in Bai/Ng. +Selection criteria based on eigenvalue cutoffs. + +Paper on PCA and structural breaks. Could add additional results during +find_nfact to test for parameter stability. I haven't read the paper yet. + +Idea: for forecasting, use up to h-step ahead endogenous variables to directly +get the forecasts. + +Asymptotic results and distribution: not too much idea yet. +Standard OLS results are conditional on factors, paper by Haerdle (abstract +seems to suggest that this is ok, Park 2009). + +Simulation: add function to simulate DGP of Bai/Ng and recent extension. +Sensitivity of selection criteria to heteroscedasticity and autocorrelation. + +Bai, J. & Ng, S., 2002. Determining the Number of Factors in + Approximate Factor Models. Econometrica, 70(1), pp.191-221. + +Kapetanios, G., 2010. A Testing Procedure for Determining the Number + of Factors in Approximate Factor Models With Large Datasets. Journal + of Business and Economic Statistics, 28(3), pp.397-409. + +Onatski, A., 2010. Determining the Number of Factors from Empirical + Distribution of Eigenvalues. Review of Economics and Statistics, + 92(4), pp.1004-1016. + +Alessi, L., Barigozzi, M. & Capasso, M., 2010. Improved penalization + for determining the number of factors in approximate factor models. + Statistics & Probability Letters, 80(23-24), pp.1806-1813. + +Breitung, J. & Eickmeier, S., Testing for structural breaks in dynamic + factor models. Journal of Econometrics, In Press, Accepted Manuscript. + Available at: + http://www.sciencedirect.com/science/article/B6VC0-51G3W92-1/2/f45ce2332443374fd770e42e5a68ddb4 + [Accessed November 15, 2010]. + +Croux, C., Renault, E. & Werker, B., 2004. Dynamic factor models. + Journal of Econometrics, 119(2), pp.223-230. + +Forni, M. et al., 2009. Opening the Black Box: Structural Factor + Models with Large Cross Sections. Econometric Theory, 25(05), + pp.1319-1347. + +Forni, M. et al., 2000. The Generalized Dynamic-Factor Model: + Identification and Estimation. Review of Economics and Statistics, + 82(4), pp.540-554. + +Forni, M. & Lippi, M., The general dynamic factor model: One-sided + representation results. Journal of Econometrics, In Press, Accepted + Manuscript. Available at: + http://www.sciencedirect.com/science/article/B6VC0-51FNPJN-1/2/4fcdd0cfb66e3050ff5d19bf2752ed19 + [Accessed November 15, 2010]. + +Kapetanios, G., 2010. A Testing Procedure for Determining the Number + of Factors in Approximate Factor Models With Large Datasets. Journal + of Business and Economic Statistics, 28(3), pp.397-409. + +Onatski, A., 2010. Determining the Number of Factors from Empirical + Distribution of Eigenvalues. Review of Economics and Statistics, + 92(4), pp.1004-1016. + +Park, B.U. et al., 2009. Time Series Modelling With Semiparametric + Factor Dynamics. Journal of the American Statistical Association, + 104(485), pp.284-298. + + + +other factor algorithm +~~~~~~~~~~~~~~~~~~~~~~ +PLS should fit in reasonably well. + +Bai/Ng have a recent paper, where they compare LASSO, PCA, and similar, individual +and in combination. +Check how much we can use scikits.learn for this. + + +miscellaneous +~~~~~~~~~~~~~ +Time series modeling of factors for prediction, ARMA, VARMA. +SUR and correlation structure +What about sandwich estimation, robust covariance matrices? +Similarity to Factor-Garch and Go-Garch +Updating: incremental PCA, ...? + + +TODO next +========= +MVOLS : OLS with multivariate endogenous and identical exogenous variables. + rewrite and expand current varma_process.VAR +PCA : write a class after all, and/or adjust the current donated class + and keep adding required statistics, e.g. + residual variance, projection of X on k-factors, ... updating ? +FactorModelUnivariate : started, does basic principal component regression, + based on standard information criteria, not Bai/Ng adjusted +FactorModelMultivariate : follow pattern for univariate version and use + MVOLS + + + + + + +''' diff --git a/statsmodels/sandbox/survival.py b/statsmodels/sandbox/survival.py new file mode 100644 index 0000000..83d5ce0 --- /dev/null +++ b/statsmodels/sandbox/survival.py @@ -0,0 +1,18 @@ +import numpy as np + +class SurvivalTime(object): + def __init__(self, time, delta): + self.time, self.delta = time, delta + + def atrisk(self, time): + raise NotImplementedError + +class RightCensored(SurvivalTime): + + def atrisk(self, time): + return np.less_equal.outer(time, self.time) + +class LeftCensored(SurvivalTime): + + def atrisk(self, time): + return np.greater_equal.outer(time, self.time) diff --git a/statsmodels/sandbox/survival2.py b/statsmodels/sandbox/survival2.py new file mode 100644 index 0000000..bbba555 --- /dev/null +++ b/statsmodels/sandbox/survival2.py @@ -0,0 +1,499 @@ +#Kaplan-Meier Estimator + +import numpy as np +import numpy.linalg as la +import matplotlib.pyplot as plt +from scipy import stats +from statsmodels.iolib.table import SimpleTable + +class KaplanMeier(object): + + """ + KaplanMeier(...) + KaplanMeier(data, endog, exog=None, censoring=None) + + Create an object of class KaplanMeier for estimating + Kaplan-Meier survival curves. + + Parameters + ---------- + data: array_like + An array, with observations in each row, and + variables in the columns + + endog: index (starting at zero) of the column + containing the endogenous variable (time) + + exog: index of the column containing the exogenous + variable (must be catagorical). If exog = None, this + is equivalent to a single survival curve + + censoring: index of the column containing an indicator + of whether an observation is an event, or a censored + observation, with 0 for censored, and 1 for an event + + Attributes + ----------- + censorings: List of censorings associated with each unique + time, at each value of exog + + events: List of the number of events at each unique time + for each value of exog + + results: List of arrays containing estimates of the value + value of the survival function and its standard error + at each unique time, for each value of exog + + ts: List of unique times for each value of exog + + Methods + ------- + fit: Calcuate the Kaplan-Meier estimates of the survival + function and its standard error at each time, for each + value of exog + + plot: Plot the survival curves using matplotlib.plyplot + + summary: Display the results of fit in a table. Gives results + for all (including censored) times + + test_diff: Test for difference between survival curves + + Examples + -------- + >>> import statsmodels.api as sm + >>> import matplotlib.pyplot as plt + >>> import numpy as np + >>> from statsmodels.sandbox.survival2 import KaplanMeier + >>> dta = sm.datasets.strikes.load() + >>> dta = dta.values()[-1] + >>> dta[range(5),:] + array([[ 7.00000000e+00, 1.13800000e-02], + [ 9.00000000e+00, 1.13800000e-02], + [ 1.30000000e+01, 1.13800000e-02], + [ 1.40000000e+01, 1.13800000e-02], + [ 2.60000000e+01, 1.13800000e-02]]) + >>> km = KaplanMeier(dta,0) + >>> km.fit() + >>> km.plot() + + Doing + + >>> km.summary() + + will display a table of the estimated survival and standard errors + for each time. The first few lines are + + Kaplan-Meier Curve + ===================================== + Time Survival Std. Err + ------------------------------------- + 1.0 0.983870967742 0.0159984306572 + 2.0 0.91935483871 0.0345807888235 + 3.0 0.854838709677 0.0447374942184 + 4.0 0.838709677419 0.0467104592871 + 5.0 0.822580645161 0.0485169952543 + + Doing + + >>> plt.show() + + will plot the survival curve + + Mutliple survival curves: + + >>> km2 = KaplanMeier(dta,0,exog=1) + >>> km2.fit() + + km2 will estimate a survival curve for each value of industrial + production, the column of dta with index one (1). + + With censoring: + + >>> censoring = np.ones_like(dta[:,0]) + >>> censoring[dta[:,0] > 80] = 0 + >>> dta = np.c_[dta,censoring] + >>> dta[range(5),:] + array([[ 7.00000000e+00, 1.13800000e-02, 1.00000000e+00], + [ 9.00000000e+00, 1.13800000e-02, 1.00000000e+00], + [ 1.30000000e+01, 1.13800000e-02, 1.00000000e+00], + [ 1.40000000e+01, 1.13800000e-02, 1.00000000e+00], + [ 2.60000000e+01, 1.13800000e-02, 1.00000000e+00]]) + + >>> km3 = KaplanMeier(dta,0,exog=1,censoring=2) + >>> km3.fit() + + Test for difference of survival curves + + >>> log_rank = km3.test_diff([0.0645,-0.03957]) + + The zeroth element of log_rank is the chi-square test statistic + for the difference between the survival curves for exog = 0.0645 + and exog = -0.03957, the index one element is the degrees of freedom for + the test, and the index two element is the p-value for the test + + Groups with nan names + + >>> groups = np.ones_like(dta[:,1]) + >>> groups = groups.astype('S4') + >>> groups[dta[:,1] > 0] = 'high' + >>> groups[dta[:,1] <= 0] = 'low' + >>> dta = dta.astype('S4') + >>> dta[:,1] = groups + >>> dta[range(5),:] + array([['7.0', 'high', '1.0'], + ['9.0', 'high', '1.0'], + ['13.0', 'high', '1.0'], + ['14.0', 'high', '1.0'], + ['26.0', 'high', '1.0']], + dtype='|S4') + >>> km4 = KaplanMeier(dta,0,exog=1,censoring=2) + >>> km4.fit() + + """ + + def __init__(self, data, endog, exog=None, censoring=None): + self.exog = exog + self.censoring = censoring + cols = [endog] + self.endog = 0 + if exog != None: + cols.append(exog) + self.exog = 1 + if censoring != None: + cols.append(censoring) + if exog != None: + self.censoring = 2 + else: + self.censoring = 1 + data = data[:,cols] + if data.dtype == float or data.dtype == int: + self.data = data[~np.isnan(data).any(1)] + else: + t = (data[:,self.endog]).astype(float) + if exog != None: + evec = data[:,self.exog] + evec = evec[~np.isnan(t)] + if censoring != None: + cvec = (data[:,self.censoring]).astype(float) + cvec = cvec[~np.isnan(t)] + t = t[~np.isnan(t)] + if censoring != None: + t = t[~np.isnan(cvec)] + if exog != None: + evec = evec[~np.isnan(cvec)] + cvec = cvec[~np.isnan(cvec)] + cols = [t] + if exog != None: + cols.append(evec) + if censoring != None: + cols.append(cvec) + data = (np.array(cols)).transpose() + self.data = data + + def fit(self): + """ + Calculate the Kaplan-Meier estimator of the survival function + """ + self.results = [] + self.ts = [] + self.censorings = [] + self.event = [] + if self.exog == None: + self.fitting_proc(self.data) + else: + groups = np.unique(self.data[:,self.exog]) + self.groups = groups + for g in groups: + group = self.data[self.data[:,self.exog] == g] + self.fitting_proc(group) + + def plot(self): + """ + Plot the estimated survival curves. After using this method + do + + plt.show() + + to display the plot + """ + plt.figure() + if self.exog == None: + self.plotting_proc(0) + else: + for g in range(len(self.groups)): + self.plotting_proc(g) + plt.ylim(ymax=1.05) + plt.ylabel('Survival') + plt.xlabel('Time') + + def summary(self): + """ + Print a set of tables containing the estimates of the survival + function, and its standard errors + """ + if self.exog == None: + self.summary_proc(0) + else: + for g in range(len(self.groups)): + self.summary_proc(g) + + def fitting_proc(self, group): + """ + For internal use + """ + t = ((group[:,self.endog]).astype(float)).astype(int) + if self.censoring == None: + events = np.bincount(t) + t = np.unique(t) + events = events[:,list(t)] + events = events.astype(float) + eventsSum = np.cumsum(events) + eventsSum = np.r_[0,eventsSum] + n = len(group) - eventsSum[:-1] + else: + censoring = ((group[:,self.censoring]).astype(float)).astype(int) + reverseCensoring = -1*(censoring - 1) + events = np.bincount(t,censoring) + censored = np.bincount(t,reverseCensoring) + t = np.unique(t) + censored = censored[:,list(t)] + censored = censored.astype(float) + censoredSum = np.cumsum(censored) + censoredSum = np.r_[0,censoredSum] + events = events[:,list(t)] + events = events.astype(float) + eventsSum = np.cumsum(events) + eventsSum = np.r_[0,eventsSum] + n = len(group) - eventsSum[:-1] - censoredSum[:-1] + (self.censorings).append(censored) + survival = np.cumprod(1-events/n) + var = ((survival*survival) * + np.cumsum(events/(n*(n-events)))) + se = np.sqrt(var) + (self.results).append(np.array([survival,se])) + (self.ts).append(t) + (self.event).append(events) + + def plotting_proc(self, g): + """ + For internal use + """ + survival = self.results[g][0] + t = self.ts[g] + e = (self.event)[g] + if self.censoring != None: + c = self.censorings[g] + csurvival = survival[c != 0] + ct = t[c != 0] + if len(ct) != 0: + plt.vlines(ct,csurvival+0.02,csurvival-0.02) + x = np.repeat(t[e != 0], 2) + y = np.repeat(survival[e != 0], 2) + if self.ts[g][-1] in t[e != 0]: + x = np.r_[0,x] + y = np.r_[1,1,y[:-1]] + else: + x = np.r_[0,x,self.ts[g][-1]] + y = np.r_[1,1,y] + plt.plot(x,y) + + def summary_proc(self, g): + """ + For internal use + """ + if self.exog != None: + myTitle = ('exog = ' + str(self.groups[g]) + '\n') + else: + myTitle = "Kaplan-Meier Curve" + table = np.transpose(self.results[g]) + table = np.c_[np.transpose(self.ts[g]),table] + table = SimpleTable(table, headers=['Time','Survival','Std. Err'], + title = myTitle) + print(table) + + def test_diff(self, groups, rho=None, weight=None): + + """ + test_diff(groups, rho=0) + + Test for difference between survival curves + + Parameters + ---------- + groups: A list of the values for exog to test for difference. + tests the null hypothesis that the survival curves for all + values of exog in groups are equal + + rho: compute the test statistic with weight S(t)^rho, where + S(t) is the pooled estimate for the Kaplan-Meier survival function. + If rho = 0, this is the logrank test, if rho = 0, this is the + Peto and Peto modification to the Gehan-Wilcoxon test. + + weight: User specified function that accepts as its sole arguement + an array of times, and returns an array of weights for each time + to be used in the test + + Returns + ------- + An array whose zeroth element is the chi-square test statistic for + the global null hypothesis, that all survival curves are equal, + the index one element is degrees of freedom for the test, and the + index two element is the p-value for the test. + + Examples + -------- + + >>> import statsmodels.api as sm + >>> import matplotlib.pyplot as plt + >>> import numpy as np + >>> from statsmodels.sandbox.survival2 import KaplanMeier + >>> dta = sm.datasets.strikes.load() + >>> dta = dta.values()[-1] + >>> censoring = np.ones_like(dta[:,0]) + >>> censoring[dta[:,0] > 80] = 0 + >>> dta = np.c_[dta,censoring] + >>> km = KaplanMeier(dta,0,exog=1,censoring=2) + >>> km.fit() + + Test for difference of survival curves + + >>> log_rank = km3.test_diff([0.0645,-0.03957]) + + The zeroth element of log_rank is the chi-square test statistic + for the difference between the survival curves using the log rank test + for exog = 0.0645 and exog = -0.03957, the index one element + is the degrees of freedom for the test, and the index two element + is the p-value for the test + + >>> wilcoxon = km.test_diff([0.0645,-0.03957], rho=1) + + wilcoxon is the equivalent information as log_rank, but for the + Peto and Peto modification to the Gehan-Wilcoxon test. + + User specified weight functions + + >>> log_rank = km3.test_diff([0.0645,-0.03957], weight=np.ones_like) + + This is equivalent to the log rank test + + More than two groups + + >>> log_rank = km.test_diff([0.0645,-0.03957,0.01138]) + + The test can be performed with arbitrarily many groups, so long as + they are all in the column exog + """ + groups = np.asarray(groups) + if self.exog == None: + raise ValueError("Need an exogenous variable for logrank test") + + elif (np.in1d(groups,self.groups)).all(): + data = self.data[np.in1d(self.data[:,self.exog],groups)] + t = ((data[:,self.endog]).astype(float)).astype(int) + tind = np.unique(t) + NK = [] + N = [] + D = [] + Z = [] + if rho != None and weight != None: + raise ValueError("Must use either rho or weights, not both") + + elif rho != None: + s = KaplanMeier(data,self.endog,censoring=self.censoring) + s.fit() + s = (s.results[0][0]) ** (rho) + s = np.r_[1,s[:-1]] + + elif weight != None: + s = weight(tind) + + else: + s = np.ones_like(tind) + + if self.censoring == None: + for g in groups: + dk = np.bincount((t[data[:,self.exog] == g])) + d = np.bincount(t) + if np.max(tind) != len(dk): + dif = np.max(tind) - len(dk) + 1 + dk = np.r_[dk,[0]*dif] + dk = dk[:,list(tind)] + d = d[:,list(tind)] + dk = dk.astype(float) + d = d.astype(float) + dkSum = np.cumsum(dk) + dSum = np.cumsum(d) + dkSum = np.r_[0,dkSum] + dSum = np.r_[0,dSum] + nk = len(data[data[:,self.exog] == g]) - dkSum[:-1] + n = len(data) - dSum[:-1] + d = d[n>1] + dk = dk[n>1] + nk = nk[n>1] + n = n[n>1] + s = s[n>1] + ek = (nk * d)/(n) + Z.append(np.sum(s * (dk - ek))) + NK.append(nk) + N.append(n) + D.append(d) + else: + for g in groups: + censoring = ((data[:,self.censoring]).astype(float)).astype(int) + reverseCensoring = -1*(censoring - 1) + censored = np.bincount(t,reverseCensoring) + ck = np.bincount((t[data[:,self.exog] == g]), + reverseCensoring[data[:,self.exog] == g]) + dk = np.bincount((t[data[:,self.exog] == g]), + censoring[data[:,self.exog] == g]) + d = np.bincount(t,censoring) + if np.max(tind) != len(dk): + dif = np.max(tind) - len(dk) + 1 + dk = np.r_[dk,[0]*dif] + ck = np.r_[ck,[0]*dif] + dk = dk[:,list(tind)] + ck = ck[:,list(tind)] + d = d[:,list(tind)] + dk = dk.astype(float) + d = d.astype(float) + ck = ck.astype(float) + dkSum = np.cumsum(dk) + dSum = np.cumsum(d) + ck = np.cumsum(ck) + ck = np.r_[0,ck] + dkSum = np.r_[0,dkSum] + dSum = np.r_[0,dSum] + censored = censored[:,list(tind)] + censored = censored.astype(float) + censoredSum = np.cumsum(censored) + censoredSum = np.r_[0,censoredSum] + nk = (len(data[data[:,self.exog] == g]) - dkSum[:-1] + - ck[:-1]) + n = len(data) - dSum[:-1] - censoredSum[:-1] + d = d[n>1] + dk = dk[n>1] + nk = nk[n>1] + n = n[n>1] + s = s[n>1] + ek = (nk * d)/(n) + Z.append(np.sum(s * (dk - ek))) + NK.append(nk) + N.append(n) + D.append(d) + Z = np.array(Z) + N = np.array(N) + D = np.array(D) + NK = np.array(NK) + sigma = -1 * np.dot((NK/N) * ((N - D)/(N - 1)) * D + * np.array([(s ** 2)]*len(D)) + ,np.transpose(NK/N)) + np.fill_diagonal(sigma, np.diagonal(np.dot((NK/N) + * ((N - D)/(N - 1)) * D + * np.array([(s ** 2)]*len(D)) + ,np.transpose(1 - (NK/N))))) + chisq = np.dot(np.transpose(Z),np.dot(la.pinv(sigma), Z)) + df = len(groups) - 1 + return np.array([chisq, df, stats.chi2.sf(chisq,df)]) + else: + raise ValueError("groups must be in column exog") diff --git a/statsmodels/sandbox/sysreg.py b/statsmodels/sandbox/sysreg.py new file mode 100644 index 0000000..b8f6cd6 --- /dev/null +++ b/statsmodels/sandbox/sysreg.py @@ -0,0 +1,377 @@ +from statsmodels.compat.python import iterkeys +from statsmodels.regression.linear_model import GLS +import numpy as np +from statsmodels.base.model import LikelihoodModelResults +from scipy import sparse +from statsmodels.compat.numpy import np_matrix_rank + +#http://www.irisa.fr/aladin/wg-statlin/WORKSHOPS/RENNES02/SLIDES/Foschi.pdf + +__all__ = ['SUR', 'Sem2SLS'] + +#probably should have a SystemModel superclass +# TODO: does it make sense of SUR equations to have +# independent endogenous regressors? If so, then +# change docs to LHS = RHS +#TODO: make a dictionary that holds equation specific information +#rather than these cryptic lists? Slower to get a dict value? +#TODO: refine sigma definition +class SUR(object): + """ + Seemingly Unrelated Regression + + Parameters + ---------- + sys : list + [endog1, exog1, endog2, exog2,...] It will be of length 2 x M, + where M is the number of equations endog = exog. + sigma : array-like + M x M array where sigma[i,j] is the covariance between equation i and j + dfk : None, 'dfk1', or 'dfk2' + Default is None. Correction for the degrees of freedom + should be specified for small samples. See the notes for more + information. + + Attributes + ---------- + cholsigmainv : array + The transpose of the Cholesky decomposition of `pinv_wexog` + df_model : array + Model degrees of freedom of each equation. p_{m} - 1 where p is + the number of regressors for each equation m and one is subtracted + for the constant. + df_resid : array + Residual degrees of freedom of each equation. Number of observations + less the number of parameters. + endog : array + The LHS variables for each equation in the system. + It is a M x nobs array where M is the number of equations. + exog : array + The RHS variable for each equation in the system. + It is a nobs x sum(p_{m}) array. Which is just each + RHS array stacked next to each other in columns. + history : dict + Contains the history of fitting the model. Probably not of interest + if the model is fit with `igls` = False. + iterations : int + The number of iterations until convergence if the model is fit + iteratively. + nobs : float + The number of observations of the equations. + normalized_cov_params : array + sum(p_{m}) x sum(p_{m}) array + :math:`\\left[X^{T}\\left(\\Sigma^{-1}\\otimes\\boldsymbol{I}\\right)X\\right]^{-1}` + pinv_wexog : array + The pseudo-inverse of the `wexog` + sigma : array + M x M covariance matrix of the cross-equation disturbances. See notes. + sp_exog : CSR sparse matrix + Contains a block diagonal sparse matrix of the design so that + exog1 ... exogM are on the diagonal. + wendog : array + M * nobs x 1 array of the endogenous variables whitened by + `cholsigmainv` and stacked into a single column. + wexog : array + M*nobs x sum(p_{m}) array of the whitened exogenous variables. + + Notes + ----- + All individual equations are assumed to be well-behaved, homoeskedastic + iid errors. This is basically an extension of GLS, using sparse matrices. + + .. math:: \\Sigma=\\left[\\begin{array}{cccc} + \\sigma_{11} & \\sigma_{12} & \\cdots & \\sigma_{1M}\\\\ + \\sigma_{21} & \\sigma_{22} & \\cdots & \\sigma_{2M}\\\\ + \\vdots & \\vdots & \\ddots & \\vdots\\\\ + \\sigma_{M1} & \\sigma_{M2} & \\cdots & \\sigma_{MM}\\end{array}\\right] + + References + ---------- + Zellner (1962), Greene (2003) + """ +#TODO: Does each equation need nobs to be the same? + def __init__(self, sys, sigma=None, dfk=None): + if len(sys) % 2 != 0: + raise ValueError("sys must be a list of pairs of endogenous and \ +exogenous variables. Got length %s" % len(sys)) + if dfk: + if not dfk.lower() in ['dfk1','dfk2']: + raise ValueError("dfk option %s not understood" % (dfk)) + self._dfk = dfk + M = len(sys[1::2]) + self._M = M +# exog = np.zeros((M,M), dtype=object) +# for i,eq in enumerate(sys[1::2]): +# exog[i,i] = np.asarray(eq) # not sure this exog is needed + # used to compute resids for now + exog = np.column_stack(np.asarray(sys[1::2][i]) for i in range(M)) +# exog = np.vstack(np.asarray(sys[1::2][i]) for i in range(M)) + self.exog = exog # 2d ndarray exog is better +# Endog, might just go ahead and reshape this? + endog = np.asarray(sys[::2]) + self.endog = endog + self.nobs = float(self.endog[0].shape[0]) # assumes all the same length + +# Degrees of Freedom + df_resid = [] + df_model = [] + [df_resid.append(self.nobs - np_matrix_rank(_)) for _ in sys[1::2]] + [df_model.append(np_matrix_rank(_) - 1) for _ in sys[1::2]] + self.df_resid = np.asarray(df_resid) + self.df_model = np.asarray(df_model) + +# "Block-diagonal" sparse matrix of exog + sp_exog = sparse.lil_matrix((int(self.nobs*M), + int(np.sum(self.df_model+1)))) # linked lists to build + self._cols = np.cumsum(np.hstack((0, self.df_model+1))) + for i in range(M): + sp_exog[i*self.nobs:(i+1)*self.nobs, + self._cols[i]:self._cols[i+1]] = sys[1::2][i] + self.sp_exog = sp_exog.tocsr() # cast to compressed for efficiency +# Deal with sigma, check shape earlier if given + if np.any(sigma): + sigma = np.asarray(sigma) # check shape + elif sigma == None: + resids = [] + for i in range(M): + resids.append(GLS(endog[i],exog[:, + self._cols[i]:self._cols[i+1]]).fit().resid) + resids = np.asarray(resids).reshape(M,-1) + sigma = self._compute_sigma(resids) + self.sigma = sigma + self.cholsigmainv = np.linalg.cholesky(np.linalg.pinv(\ + self.sigma)).T + self.initialize() + + def initialize(self): + self.wendog = self.whiten(self.endog) + self.wexog = self.whiten(self.sp_exog) + self.pinv_wexog = np.linalg.pinv(self.wexog) + self.normalized_cov_params = np.dot(self.pinv_wexog, + np.transpose(self.pinv_wexog)) + self.history = {'params' : [np.inf]} + self.iterations = 0 + + def _update_history(self, params): + self.history['params'].append(params) + + def _compute_sigma(self, resids): + """ + Computes the sigma matrix and update the cholesky decomposition. + """ + M = self._M + nobs = self.nobs + sig = np.dot(resids, resids.T) # faster way to do this? + if not self._dfk: + div = nobs + elif self._dfk.lower() == 'dfk1': + div = np.zeros(M**2) + for i in range(M): + for j in range(M): + div[i+j] = ((self.df_model[i]+1) *\ + (self.df_model[j]+1))**(1/2) + div.reshape(M,M) + else: # 'dfk2' error checking is done earlier + div = np.zeros(M**2) + for i in range(M): + for j in range(M): + div[i+j] = nobs - np.max(self.df_model[i]+1, + self.df_model[j]+1) + div.reshape(M,M) +# doesn't handle (#,) + self.cholsigmainv = np.linalg.cholesky(np.linalg.pinv(sig/div)).T + return sig/div + + def whiten(self, X): + """ + SUR whiten method. + + Parameters + ----------- + X : list of arrays + Data to be whitened. + + Returns + ------- + If X is the exogenous RHS of the system. + ``np.dot(np.kron(cholsigmainv,np.eye(M)),np.diag(X))`` + + If X is the endogenous LHS of the system. + + """ + nobs = self.nobs + if X is self.endog: # definitely not a robust check + return np.dot(np.kron(self.cholsigmainv,np.eye(nobs)), + X.reshape(-1,1)) + elif X is self.sp_exog: + return (sparse.kron(self.cholsigmainv, + sparse.eye(nobs,nobs))*X).toarray()#*=dot until cast to array + + def fit(self, igls=False, tol=1e-5, maxiter=100): + """ + igls : bool + Iterate until estimates converge if sigma is None instead of + two-step GLS, which is the default is sigma is None. + + tol : float + + maxiter : int + + Notes + ----- + This ia naive implementation that does not exploit the block + diagonal structure. It should work for ill-conditioned `sigma` + but this is untested. + """ + + if not np.any(self.sigma): + self.sigma = self._compute_sigma(self.endog, self.exog) + M = self._M + beta = np.dot(self.pinv_wexog, self.wendog) + self._update_history(beta) + self.iterations += 1 + if not igls: + sur_fit = SysResults(self, beta, self.normalized_cov_params) + return sur_fit + + conv = self.history['params'] + while igls and (np.any(np.abs(conv[-2] - conv[-1]) > tol)) and \ + (self.iterations < maxiter): + fittedvalues = (self.sp_exog*beta).reshape(M,-1) + resids = self.endog - fittedvalues # don't attach results yet + self.sigma = self._compute_sigma(resids) # need to attach for compute? + self.wendog = self.whiten(self.endog) + self.wexog = self.whiten(self.sp_exog) + self.pinv_wexog = np.linalg.pinv(self.wexog) + self.normalized_cov_params = np.dot(self.pinv_wexog, + np.transpose(self.pinv_wexog)) + beta = np.dot(self.pinv_wexog, self.wendog) + self._update_history(beta) + self.iterations += 1 + sur_fit = SysResults(self, beta, self.normalized_cov_params) + return sur_fit + + def predict(self, design): + pass + +#TODO: Should just have a general 2SLS estimator to subclass +# for IV, FGLS, etc. +# Also should probably have SEM class and estimators as subclasses +class Sem2SLS(object): + """ + Two-Stage Least Squares for Simultaneous equations + + Parameters + ---------- + sys : list + [endog1, exog1, endog2, exog2,...] It will be of length 2 x M, + where M is the number of equations endog = exog. + indep_endog : dict + A dictionary mapping the equation to the column numbers of the + the independent endogenous regressors in each equation. + It is assumed that the system is inputed as broken up into + LHS and RHS. For now, the values of the dict have to be sequences. + Note that the keys for the equations should be zero-indexed. + instruments : array + Array of the exogenous independent variables. + + Notes + ----- + This is unfinished, and the design should be refactored. + Estimation is done by brute force and there is no exploitation of + the structure of the system. + """ + def __init__(self, sys, indep_endog=None, instruments=None): + if len(sys) % 2 != 0: + raise ValueError("sys must be a list of pairs of endogenous and \ +exogenous variables. Got length %s" % len(sys)) + M = len(sys[1::2]) + self._M = M +# The lists are probably a bad idea + self.endog = sys[::2] # these are just list containers + self.exog = sys[1::2] + self._K = [np_matrix_rank(_) for _ in sys[1::2]] +# fullexog = np.column_stack((_ for _ in self.exog)) + + self.instruments = instruments + + # Keep the Y_j's in a container to get IVs + instr_endog = {} + [instr_endog.setdefault(_,[]) for _ in iterkeys(indep_endog)] + + for eq_key in indep_endog: + for varcol in indep_endog[eq_key]: + instr_endog[eq_key].append(self.exog[eq_key][:,varcol]) + # ^ copy needed? +# self._instr_endog = instr_endog + + self._indep_endog = indep_endog + _col_map = np.cumsum(np.hstack((0,self._K))) # starting col no.s +# move this check to whiten since we're not going to build a full exog? + for eq_key in indep_endog: + try: + iter(indep_endog[eq_key]) + except: +# eq_key = [eq_key] + raise TypeError("The values of the indep_exog dict must be\ + iterable. Got type %s for converter %s" % (type(del_col))) +# for del_col in indep_endog[eq_key]: +# fullexog = np.delete(fullexog, _col_map[eq_key]+del_col, 1) +# _col_map[eq_key+1:] -= 1 + +# Josef's example for deleting reoccuring "rows" +# fullexog = np.unique(fullexog.T.view([('',fullexog.dtype)]*\ +# fullexog.shape[0])).view(fullexog.dtype).reshape(\ +# fullexog.shape[0],-1) +# From http://article.gmane.org/gmane.comp.python.numeric.general/32276/ +# Or Jouni' suggetsion of taking a hash: +# http://www.mail-archive.com/numpy-discussion@scipy.org/msg04209.html +# not clear to me how this would work though, only if they are the *same* +# elements? +# self.fullexog = fullexog + self.wexog = self.whiten(instr_endog) + + + def whiten(self, Y): + """ + Runs the first stage of the 2SLS. + + Returns the RHS variables that include the instruments. + """ + wexog = [] + indep_endog = self._indep_endog # this has the col mapping +# fullexog = self.fullexog + instruments = self.instruments + for eq in range(self._M): # need to go through all equations regardless + instr_eq = Y.get(eq, None) # Y has the eq to ind endog array map + newRHS = self.exog[eq].copy() + if instr_eq: + for i,LHS in enumerate(instr_eq): + yhat = GLS(LHS, self.instruments).fit().fittedvalues + newRHS[:,indep_endog[eq][i]] = yhat + # this might fail if there is a one variable column (nobs,) + # in exog + wexog.append(newRHS) + return wexog + + def fit(self): + """ + """ + delta = [] + wexog = self.wexog + endog = self.endog + for j in range(self._M): + delta.append(GLS(endog[j], wexog[j]).fit().params) + return delta + +class SysResults(LikelihoodModelResults): + """ + Not implemented yet. + """ + def __init__(self, model, params, normalized_cov_params=None, scale=1.): + super(SysResults, self).__init__(model, params, + normalized_cov_params, scale) + self._get_results() + + def _get_results(self): + pass diff --git a/statsmodels/sandbox/tests/GreeneEx15_1.s b/statsmodels/sandbox/tests/GreeneEx15_1.s new file mode 100644 index 0000000..ffa1f51 --- /dev/null +++ b/statsmodels/sandbox/tests/GreeneEx15_1.s @@ -0,0 +1,35 @@ +dta <- read.table('/home/skipper/school/MetricsII/Greene\ TableF5-1.txt', header = TRUE) +attach(dta) +library(systemfit) + +demand <- realcons + realinvs + realgovt +c.1 <- realcons[-204] +y.1 <- demand[-204] +yd <- demand[-1] - y.1 +eqConsump <- realcons[-1] ~ demand[-1] + c.1 +eqInvest <- realinvs[-1] ~ tbilrate[-1] + yd +system <- list( Consumption = eqConsump, Investment = eqInvest) +instruments <- ~ realgovt[-1] + tbilrate[-1] + c.1 + y.1 +# 2SLS +greene2sls <- systemfit( system, "2SLS", inst = instruments, methodResidCov = "noDfCor" ) +print(summary(greene2sls)) + +greene3sls <- systemfit( system, "3SLS", inst = instruments, methodResidCov = "noDfCor" ) +print(summary(greene3sls)) + + +# Python code for finding the dynamics +# +# Could have done this in R +# +#gamma = np.array([[1,0,1],[0,1,1],[-.058438620413,-16.5359646223,1]]) +#phi = np.array([[-.99200661799,0,0],[0,0,0],[0,-16.5359646223,0]]) +#Delta = np.dot(-phi,np.linalg.inv(gamma)) +#delta = np.zeros((2,2)) +#delta[0,0]=Delta[0,0] +#delta[0,1]=Delta[0,-1] +#delta[1,0]=Delta[-1,0] +#delta[1,1]=Delta[-1,-1] +#np.eigvals(delta) +#np.max(_) + diff --git a/statsmodels/sandbox/tests/__init__.py b/statsmodels/sandbox/tests/__init__.py new file mode 100644 index 0000000..1e26f0c --- /dev/null +++ b/statsmodels/sandbox/tests/__init__.py @@ -0,0 +1,165 @@ +''' + +Econometrics for a Datarich Environment +======================================= + +Introduction +------------ +In many cases we are performing statistical analysis when many observed variables are +available, when we are in a data rich environment. Machine learning has a wide variety +of tools for dimension reduction and penalization when there are many varibles compared +to the number of observation. Chemometrics has a long tradition of using Partial Least +Squares, NIPALS and similar in these cases. In econometrics the same problem shows up +when there are either many possible regressors, many (weak) instruments or when there are +a large number of moment conditions in GMM. + +This section is intended to collect some models and tools in this area that are relevant +for the statical analysis and econometrics. + +Covariance Matrices +=================== +Several methods are available to reduce the small sample noise in estimated covariance +matrices with many variable. +Some applications: +weighting matrix with many moments, +covariance matrix for portfolio choice + +Dimension Reduction +=================== +Principal Component and Partial Least Squares try to extract the important low dimensional +factors from the data with many variables. + +Regression with many regressors +=============================== +Factor models, selection of regressors and shrinkage and penalization are used to improve +the statistical properties, when the presence of too many regressors leads to over-fitting +and too noisy small sample estimators and statistics. + +Regression with many moments or many instruments +================================================ +The same tools apply and can be used in these two cases. +e.g. Tychonov regularization of weighting matrix in GMM, similar to Ridge regression, the +weighting matrix can be shrunk towards the identity matrix. +Simplest case will be part of GMM. I don't know how much will be standalone +functions. + + +Intended Content +================ + +PLS +--- +what should be available in class? + +Factormodel and supporting helper functions +------------------------------------------- + +PCA based +~~~~~~~~~ +First version based PCA on Stock/Watson and Bai/Ng, and recent papers on the +selection of the number of factors. Not sure about Forni et al. in approach. +Basic support of this needs additional results for PCA, error covariance matrix +of data on reduced factors, required for criteria in Bai/Ng. +Selection criteria based on eigenvalue cutoffs. + +Paper on PCA and structural breaks. Could add additional results during +find_nfact to test for parameter stability. I haven't read the paper yet. + +Idea: for forecasting, use up to h-step ahead endogenous variables to directly +get the forecasts. + +Asymptotic results and distribution: not too much idea yet. +Standard OLS results are conditional on factors, paper by Haerdle (abstract +seems to suggest that this is ok, Park 2009). + +Simulation: add function to simulate DGP of Bai/Ng and recent extension. +Sensitivity of selection criteria to heteroscedasticity and autocorrelation. + +Bai, J. & Ng, S., 2002. Determining the Number of Factors in + Approximate Factor Models. Econometrica, 70(1), pp.191-221. + +Kapetanios, G., 2010. A Testing Procedure for Determining the Number + of Factors in Approximate Factor Models With Large Datasets. Journal + of Business and Economic Statistics, 28(3), pp.397-409. + +Onatski, A., 2010. Determining the Number of Factors from Empirical + Distribution of Eigenvalues. Review of Economics and Statistics, + 92(4), pp.1004-1016. + +Alessi, L., Barigozzi, M. & Capasso, M., 2010. Improved penalization + for determining the number of factors in approximate factor models. + Statistics & Probability Letters, 80(23-24), pp.1806-1813. + +Breitung, J. & Eickmeier, S., Testing for structural breaks in dynamic + factor models. Journal of Econometrics, In Press, Accepted Manuscript. + Available at: + http://www.sciencedirect.com/science/article/B6VC0-51G3W92-1/2/f45ce2332443374fd770e42e5a68ddb4 + [Accessed November 15, 2010]. + +Croux, C., Renault, E. & Werker, B., 2004. Dynamic factor models. + Journal of Econometrics, 119(2), pp.223-230. + +Forni, M. et al., 2009. Opening the Black Box: Structural Factor + Models with Large Cross Sections. Econometric Theory, 25(05), + pp.1319-1347. + +Forni, M. et al., 2000. The Generalized Dynamic-Factor Model: + Identification and Estimation. Review of Economics and Statistics, + 82(4), pp.540-554. + +Forni, M. & Lippi, M., The general dynamic factor model: One-sided + representation results. Journal of Econometrics, In Press, Accepted + Manuscript. Available at: + http://www.sciencedirect.com/science/article/B6VC0-51FNPJN-1/2/4fcdd0cfb66e3050ff5d19bf2752ed19 + [Accessed November 15, 2010]. + +Kapetanios, G., 2010. A Testing Procedure for Determining the Number + of Factors in Approximate Factor Models With Large Datasets. Journal + of Business and Economic Statistics, 28(3), pp.397-409. + +Onatski, A., 2010. Determining the Number of Factors from Empirical + Distribution of Eigenvalues. Review of Economics and Statistics, + 92(4), pp.1004-1016. + +Park, B.U. et al., 2009. Time Series Modelling With Semiparametric + Factor Dynamics. Journal of the American Statistical Association, + 104(485), pp.284-298. + + + +other factor algorithm +~~~~~~~~~~~~~~~~~~~~~~ +PLS should fit in reasonably well. + +Bai/Ng have a recent paper, where they compare LASSO, PCA, and similar, individual +and in combination. +Check how much we can use scikits.learn for this. + + +miscellaneous +~~~~~~~~~~~~~ +Time series modeling of factors for prediction, ARMA, VARMA. +SUR and correlation structure +What about sandwich estimation, robust covariance matrices? +Similarity to Factor-Garch and Go-Garch +Updating: incremental PCA, ...? + + +TODO next +========= +MVOLS : OLS with multivariate endogenous and identical exogenous variables. + rewrite and expand current varma_process.VAR +PCA : write a class after all, and/or adjust the current donated class + and keep adding required statistics, e.g. + residual variance, projection of X on k-factors, ... updating ? +FactorModelUnivariate : started, does basic principal component regression, + based on standard information criteria, not Bai/Ng adjusted +FactorModelMultivariate : follow pattern for univariate version and use + MVOLS + + + + + + +''' diff --git a/statsmodels/sandbox/tests/datamlw.py b/statsmodels/sandbox/tests/datamlw.py new file mode 100644 index 0000000..e1f2cb9 --- /dev/null +++ b/statsmodels/sandbox/tests/datamlw.py @@ -0,0 +1,288 @@ +import numpy as np +from numpy import array + + +class Holder(object): + pass + + +data = Holder() +data.comment = 'generated data, divide by 1000' +data.name = 'data' +data.xo = array([[ -419, -731, -1306, -1294], + [ 6, 529, -200, -437], + [ -27, -833, -6, -564], + [ -304, -273, -502, -739], + [ 1377, -912, 927, 280], + [ -375, -517, -514, 49], + [ 247, -504, 123, -259], + [ 712, 534, -773, 286], + [ 195, -1080, 3256, -178], + [ -854, 75, -706, -1084], + [-1219, -612, -15, -203], + [ 550, -628, -483, -2686], + [ -365, 1376, -1266, 317], + [ -489, 544, -195, 431], + [ -656, 854, 840, -723], + [ 16, -1385, -880, -460], + [ 258, -2252, 96, 54], + [ 2049, -750, -1115, 381], + [ -65, 280, -777, 416], + [ 755, 82, -806, 1027], + [ -39, -170, -2134, 743], + [ -859, 780, 746, -133], + [ 762, 252, -450, -459], + [ -941, -202, 49, -202], + [ -54, 115, 455, 388], + [-1348, 1246, 1430, -480], + [ 229, -535, -1831, 1524], + [ -651, -167, 2116, 483], + [-1249, -1373, 888, -1092], + [ -75, -2162, 486, -496], + [ 2436, -1627, -1069, 162], + [ -63, 560, -601, 587], + [ -60, 1051, -277, 1323], + [ 1329, -1294, 68, 5], + [ 1532, -633, -923, 696], + [ 669, 895, -1762, -375], + [ 1129, -548, 2064, 609], + [ 1320, 573, 2119, 270], + [ -213, -412, -2517, 1685], + [ 73, -979, 1312, -1220], + [-1360, -2107, -237, 1522], + [ -645, 205, -543, -169], + [ -212, 1072, 543, -128], + [ -352, -129, -605, -904], + [ 511, 85, 167, -1914], + [ 1515, 1862, 942, 1622], + [ -465, 623, -495, -89], + [-1396, -979, 1758, 128], + [ -255, -47, 980, 501], + [-1282, -58, -49, -610], + [ -889, -1177, -492, 494], + [ 1415, 1146, 696, -722], + [ 1237, -224, -1609, -64], + [ -528, -1625, 231, 883], + [ -327, 1636, -476, -361], + [ -781, 793, 1882, 234], + [ -506, -561, 1988, -810], + [-1233, 1467, -261, 2164], + [ 53, 1069, 824, 2123], + [-1200, -441, -321, 339], + [ 1606, 298, -995, 1292], + [-1740, -672, -1628, -129], + [-1450, -354, 224, -657], + [-2556, 1006, -706, -1453], + [ -717, -463, 345, -1821], + [ 1056, -38, -420, -455], + [ -523, 565, 425, 1138], + [-1030, -187, 683, 78], + [ -214, -312, -1171, -528], + [ 819, 736, -265, 423], + [ 1339, 351, 1142, 579], + [ -387, -126, -1573, 2346], + [ 969, 2, 327, -134], + [ 163, 227, 90, 2021], + [ 1022, -1076, 174, 304], + [ 1042, 1317, 311, 880], + [ 2018, -840, 295, 2651], + [ -277, 566, 1147, -189], + [ 20, 467, 1262, 263], + [ -663, 1061, -1552, -1159], + [ 1830, 391, 2534, -199], + [ -487, 752, -1061, 351], + [-2138, -556, -367, -457], + [ -868, -411, -559, 726], + [ 1770, 819, -892, -363], + [ 553, -736, -169, -490], + [ 388, -503, 809, -821], + [ -516, -1452, -192, 483], + [ 493, 2904, 1318, 2591], + [ 175, 584, -1001, 1675], + [ 1316, -1596, -460, 1500], + [ 1212, 214, -644, -696], + [ -501, 338, 1197, -841], + [ -587, -469, -1101, 24], + [-1205, 1910, 659, 1232], + [ -150, 398, 594, 394], + [ 34, -663, 235, -334], + [-1580, 647, 239, -351], + [-2177, -345, 1215, -1494], + [ 1923, 329, -152, 1128]]) + +princomp1 = Holder() +princomp1.comment = 'mlab.princomp(x, nout=3)' +princomp1.factors = array([[-0.83487832815382, -1.75681522344645, -0.50882660928949, -0.59661466511045], + [-0.18695786699253, -0.10732909330422, 0.23971799542554, -0.75468286946853], + [-0.57403949255604, -0.39667006607544, -0.7927838094217 , 0.02652621881328], + [-0.60828125251513, -0.75979035898754, -0.20148864200404, -0.40278856050237], + [ 0.55997928601548, 0.88869370546643, -1.55474410845786, 0.23033958281961], + [-0.18023239851961, -0.72398923145328, -0.07056264751117, 0.29292391015376], + [-0.189029743271 , -0.05888596186903, -0.63882208368513, -0.05682951829677], + [ 0.94694345324739, -0.33448036234864, 0.16665867708366, -0.67190948646953], + [-1.355171899399 , 2.58899695901774, -1.53157119606928, 0.93743278678908], + [-1.06797676403358, -1.01894055566289, 0.29181722134698, -0.65261957826524], + [-1.08919199915725, -0.5395876105009 , 0.18846579824378, 0.61935728909742], + [-1.36598849770841, -1.00986627679465, -1.6090477073157 , -1.82708847399443], + [ 0.561511276285 , -0.74919011595195, 1.49872898209738, -0.80588545345232], + [ 0.04805787176428, -0.05522267212748, 0.82943784435024, 0.01537039050312], + [-1.12006939155398, 0.73462770352006, 0.58868274831601, -0.67786987413505], + [-0.26087838474316, -1.33362289066951, -1.02932517860259, 0.24865839951801], + [-0.24666198784909, -0.58247196399204, -1.78971960966265, 1.18908143657302], + [ 1.80675592845666, -0.73341258204636, -1.45012544705912, -0.44875329121288], + [ 0.4794281391435 , -0.57169295903913, 0.48557628591056, -0.11638075289238], + [ 1.39425263398653, -0.3665732682294 , 0.06937942447187, 0.06683559082703], + [ 1.11015707065101, -1.87631329249852, 0.48914958604867, 0.11096926802212], + [-0.85159530389901, 0.68543874135386, 0.86736021483251, -0.17641002537865], + [ 0.34109015314112, -0.25431311542374, -0.36804227540019, -0.95824474920131], + [-0.86253950274987, -0.28796613689709, 0.30820634958709, 0.27228599921917], + [ 0.01266190412089, 0.48559962017667, 0.14020630700546, 0.18517398749337], + [-1.56345869427724, 1.27917754070516, 1.25640847929385, -0.36055181722313], + [ 1.62834293379132, -1.51923809467869, 0.27754976407182, 0.79362967384835], + [-0.94400458067084, 1.77733054371289, 0.03595731772774, 0.96570688640992], + [-2.11906234438329, -0.13226430948321, -0.78992396115366, 0.66362103473975], + [-0.94372331181891, -0.37502966791165, -1.77907324401749, 0.97801542954941], + [ 1.76575198740032, -0.92309597844861, -2.3872195277998 , -0.21817018301121], + [ 0.57418226616373, -0.2925257318724 , 0.71180507312941, -0.13937750314467], + [ 1.01654397566275, 0.28855305878842, 1.25119859389106, 0.11257524396004], + [ 0.58979013567212, -0.06866577243092, -1.74447546690995, 0.13917953157575], + [ 1.62072087150051, -0.5835145063711 , -0.99029357957459, -0.06334029436682], + [ 0.893493925425 , -1.23995040005948, 0.40058503790479, -1.49029669097391], + [ 0.26990527585623, 2.03399854143898, -1.2335089890881 , 0.54010061879979], + [ 0.33504096277444, 2.42394994177782, -0.6643863358332 , -0.42471161848557], + [ 1.69952476943058, -2.1707037237448 , 0.79694026483866, 0.88177267205969], + [-1.41498253257895, 0.65248089992094, -1.40045976465378, -0.12045332880702], + [-0.22640706265253, -0.94114558124915, -0.18868114063537, 2.67652245892778], + [-0.37493712386529, -0.61985213642068, 0.5383582946365 , -0.17931524703276], + [-0.30437796317839, 0.74252786648649, 0.73255373596822, -0.64993745548429], + [-0.68788283675831, -0.84714762684627, -0.10721753874211, -0.59777382822281], + [-1.00667616522842, -0.06670525233919, -0.92973707141688, -1.60742284256649], + [ 1.95220512266515, 2.05751265066695, 0.79640648143073, -0.59608004229343], + [-0.15504464969388, -0.3882079443045 , 0.75049869361395, -0.44163703260023], + [-1.6686863460652 , 0.96325894557423, -0.16453379247258, 1.4560996746313 ], + [-0.25573631707529, 0.88265554068571, 0.08984550855664, 0.53561910563178], + [-1.29430028690793, -0.48042359291447, 0.49318558750269, 0.03689178852848], + [-0.34391235307349, -0.95154811896716, -0.09714022474353, 1.19792361047367], + [ 0.34367523316975, 1.16641214447854, -0.39528838072965, -1.72565643987406], + [ 1.23887392116229, -1.27474554996132, -0.65859544264097, -0.81757560038832], + [-0.17739006831099, -0.29057501559843, -0.62533324788504, 1.7092669546224 ], + [-0.08610919021307, -0.06524996994257, 1.3018284944661 , -1.28219607271255], + [-0.95717735853496, 1.79841555744597, 0.75799149339397, 0.23542916575208], + [-1.70175078442029, 1.33831900642462, -0.73979048943944, 0.26157699746442], + [ 0.84631686421106, 0.32029666775009, 2.51638540556813, 0.90367536744335], + [ 1.22693220256582, 1.45665385966518, 1.27480662666555, 0.78786331120259], + [-0.59251239046609, -0.660398245535 , 0.53258334042042, 0.81248748854679], + [ 2.22723057510913, -0.22856960444805, -0.15586801032885, -0.26957090658609], + [-0.83192612439183, -2.11983096548132, 0.75319973501664, 0.62196293266702], + [-1.577627210601 , -0.3747136286972 , 0.31736538266249, 0.30187577548949], + [-2.28230005998543, -1.17283119424281, 1.83780755209602, -0.75928026219594], + [-1.90574204329052, -0.34197417196464, -0.59978910354131, -0.68240235236779], + [ 0.48132729275936, -0.2524965456322 , -0.75271273075 , -0.89651237903089], + [ 0.26961427953002, 0.62968227134995, 0.99324664633985, 0.59917742452108], + [-0.95910506784013, 0.31907970712369, 0.35568397653203, 0.60155535679072], + [-0.18528259973205, -1.31831013869974, -0.09749195643548, -0.39885348684496], + [ 0.9608404103702 , 0.23727553971573, 0.20695289013955, -0.65281918968052], + [ 0.85302395609555, 1.5303724004181 , -0.56440186223081, -0.27348033453255], + [ 1.72786301913767, -1.14859994931789, 1.16222121440674, 1.39284961909257], + [ 0.37711527308989, 0.47231886947072, -0.69423676772182, -0.53515102147655], + [ 1.35642227654922, 0.53204130038923, 0.69844068787197, 1.04544871561741], + [ 0.57797880484094, 0.08044525072063, -1.32634695941334, 0.35179408060132], + [ 1.29437232500619, 1.07461562326311, 0.54545226737269, -0.6836610122092 ], + [ 2.74736726573105, 0.90881277479338, -0.98342785084735, 1.38171127911719], + [-0.67749479829901, 1.10093727650063, 0.28416704607992, -0.24984509303044], + [-0.24513961858774, 1.32098977907584, 0.16904762754153, 0.00886790270539], + [-0.5392290825383 , -1.43851802284774, 1.0064737206577 , -1.52649870396689], + [ 0.19486366400459, 2.77236000318994, -1.32201258472682, -0.75922390642504], + [ 0.33271229220962, -0.78464273816827, 1.09930224781861, -0.32184679755027], + [-1.72814706427698, -1.09275114767838, 0.7451569579997 , 0.72871211772761], + [-0.035506207751 , -0.72161367235521, 0.52828318684787, 0.87177739169758], + [ 1.31224955134141, -0.22742530984642, -0.44682270809773, -1.72769462581607], + [-0.07125058353119, -0.36850925227739, -1.01188688859296, -0.24962251325969], + [-0.69840680770104, 0.4925285516285 , -1.0255829922787 , -0.36214090052941], + [-0.2530614593082 , -0.68595709316063, -0.56882710610856, 1.25787365685572], + [ 1.93782484285419, 2.67095706598253, 2.4023579082791 , -0.09112046819432], + [ 1.57782156817208, -0.39819017512275, 1.01938038947667, 0.39718992194809], + [ 1.6839282738726 , -0.37808442385434, -1.36566197748227, 1.22029200163339], + [ 0.54652714502605, -0.38206797548206, -0.70554510441189, -1.31224358889695], + [-1.30026063006148, 0.90642495630747, 0.02711437433058, -0.44482098905042], + [-0.1239033493518 , -1.29112252171673, 0.18092802221218, 0.22673242779457], + [ 0.01152882540055, 1.13242883415094, 2.34980443084773, 0.17712319903618], + [-0.0505195424414 , 0.6807219067402 , 0.37771832345982, 0.0842510459176 ], + [-0.44230076745505, -0.07002728477811, -0.6716520563439 , 0.09637247949641], + [-1.31245480585229, -0.01674966464909, 1.21063252882651, -0.03927111631335], + [-2.94268586886381, 0.20925236551048, 0.30321714445262, 0.22027672852006], + [ 2.04121905977187, 0.58496246543101, -0.5192457175416 , -0.37212298770116]]) +princomp1.values = array([[ 1.29489288337888], + [ 1.12722515391348], + [ 0.94682423958163], + [ 0.65890241090379]]) +princomp1.name = 'princomp1' +princomp1.coef = array([[ 0.65989917631713, 0.22621848650964, -0.5882833472413 , -0.40899997165748], + [ 0.15824945056105, 0.3189419948895 , 0.71689623797385, -0.5994104597619 ], + [-0.3488766362785 , 0.90294049788532, -0.17151017930575, 0.1832151967827 ], + [ 0.64635538301471, 0.17832458477678, 0.33251578268108, 0.66321815082225]]) + +princomp2 = Holder() +princomp2.comment = 'mlab.princomp(x[:20,], nout=3)' +princomp2.factors = array([[ 0.74592631465403, -0.92093638563647, 1.10020213969681, -0.20234362115983], + [ 0.40379773814409, -0.23694214086306, -0.53526599590626, 0.48048423978257], + [-0.43826559396565, -0.26267383420164, 0.35939862515391, -0.15176605914773], + [ 0.29427656853499, -0.56363285386285, 0.19525662206552, -0.0384830001072 ], + [-1.4327917748351 , 1.18414191887856, 0.05435949672922, 0.46861687286613], + [ 0.23033214569426, -0.00452237842477, 0.00346120473054, -0.61483888402985], + [-0.40976419499281, 0.10137131352284, 0.02570805136468, 0.06798926306103], + [ 0.83201287149759, 0.82736894861103, -0.35298970920805, 0.49344802383821], + [-3.36634598435507, -0.18324521714611, -1.12118215528184, 0.2057949493723 ], + [ 0.70198992281665, -1.1856449495675 , 0.02465727900177, -0.08333428418838], + [-0.13789069679894, -0.79430992968357, -0.33106496391047, -1.01808298459082], + [-0.10779840884825, -1.41970796854378, 1.55590290358904, 1.34014813517248], + [ 1.8229340670437 , 0.13065838030104, -1.06152350166072, 0.11456488463131], + [ 0.51650051521229, 0.07999783864926, -1.08601194413786, -0.28255247881905], + [-0.24654203558433, -1.02895891025197, -1.34475655787845, 0.52240852619949], + [ 0.03542169335227, -0.01198903021187, 1.12649412049726, -0.60518306798831], + [-1.23945075955452, 0.48778599927278, 1.11522465483282, -0.994827967694 ], + [ 0.30661562766349, 1.91993049714024, 1.08834307939522, 0.61608892787963], + [ 0.8241280516035 , 0.43533554216801, -0.48261931874702, -0.22391158066897], + [ 0.6649139327178 , 1.44597315984982, -0.33359403032613, -0.094219894409 ]]) +princomp2.values = array([[ 1.16965204468073], + [ 0.77687367815155], + [ 0.72297937656591], + [ 0.32548581375971]]) +princomp2.name = 'princomp2' +princomp2.coef = array([[-0.13957162231397, 0.6561182967648 , 0.32256106777669, 0.66781951188167], + [ 0.49534264552989, -0.08241251099014, -0.6919444767593 , 0.51870674049413], + [-0.85614372781797, -0.11427402995055, -0.47665923729502, 0.16357058078438], + [ 0.04661912785591, 0.74138950947638, -0.43584764555793, -0.50813884128056]]) + +princomp3 = Holder() +princomp3.comment = 'mlab.princomp(x[:20,]-x[:20,].mean(0), nout=3)' +princomp3.factors = array([[ 0.74592631465403, -0.92093638563647, 1.10020213969681, -0.20234362115983], + [ 0.40379773814409, -0.23694214086306, -0.53526599590626, 0.48048423978257], + [-0.43826559396565, -0.26267383420164, 0.35939862515391, -0.15176605914773], + [ 0.29427656853499, -0.56363285386285, 0.19525662206552, -0.0384830001072 ], + [-1.4327917748351 , 1.18414191887856, 0.05435949672922, 0.46861687286613], + [ 0.23033214569426, -0.00452237842477, 0.00346120473054, -0.61483888402985], + [-0.40976419499281, 0.10137131352284, 0.02570805136468, 0.06798926306103], + [ 0.83201287149759, 0.82736894861103, -0.35298970920805, 0.49344802383821], + [-3.36634598435507, -0.18324521714611, -1.12118215528184, 0.2057949493723 ], + [ 0.70198992281665, -1.1856449495675 , 0.02465727900177, -0.08333428418838], + [-0.13789069679894, -0.79430992968357, -0.33106496391047, -1.01808298459082], + [-0.10779840884825, -1.41970796854378, 1.55590290358904, 1.34014813517248], + [ 1.8229340670437 , 0.13065838030104, -1.06152350166072, 0.11456488463131], + [ 0.51650051521229, 0.07999783864926, -1.08601194413786, -0.28255247881905], + [-0.24654203558433, -1.02895891025197, -1.34475655787845, 0.52240852619949], + [ 0.03542169335227, -0.01198903021187, 1.12649412049726, -0.60518306798831], + [-1.23945075955452, 0.48778599927278, 1.11522465483282, -0.994827967694 ], + [ 0.30661562766349, 1.91993049714024, 1.08834307939522, 0.61608892787963], + [ 0.8241280516035 , 0.43533554216801, -0.48261931874702, -0.22391158066897], + [ 0.6649139327178 , 1.44597315984982, -0.33359403032613, -0.094219894409 ]]) +princomp3.values = array([[ 1.16965204468073], + [ 0.77687367815155], + [ 0.72297937656591], + [ 0.32548581375971]]) +princomp3.name = 'princomp3' +princomp3.coef = array([[-0.13957162231397, 0.6561182967648 , 0.32256106777669, 0.66781951188167], + [ 0.49534264552989, -0.08241251099014, -0.6919444767593 , 0.51870674049413], + [-0.85614372781797, -0.11427402995055, -0.47665923729502, 0.16357058078438], + [ 0.04661912785591, 0.74138950947638, -0.43584764555793, -0.50813884128056]]) + diff --git a/statsmodels/sandbox/tests/macrodata.s b/statsmodels/sandbox/tests/macrodata.s new file mode 100644 index 0000000..211bd05 --- /dev/null +++ b/statsmodels/sandbox/tests/macrodata.s @@ -0,0 +1,35 @@ +dta <- read.csv('../../datasets/macrodata/macrodata.csv', header = TRUE) +attach(dta) +library(systemfit) + +demand <- realcons + realinv + realgovt +c.1 <- realcons[-203] +y.1 <- demand[-203] +yd <- demand[-1] - y.1 +eqConsump <- realcons[-1] ~ demand[-1] + c.1 +eqInvest <- realinv[-1] ~ tbilrate[-1] + yd +system <- list( Consumption = eqConsump, Investment = eqInvest) +instruments <- ~ realgovt[-1] + tbilrate[-1] + c.1 + y.1 +# 2SLS +greene2sls <- systemfit( system, "2SLS", inst = instruments, methodResidCov = "noDfCor" ) +print(summary(greene2sls)) + +greene3sls <- systemfit( system, "3SLS", inst = instruments, methodResidCov = "noDfCor" ) +print(summary(greene3sls)) + + +# Python code for finding the dynamics +# +# Could have done this in R +# +#gamma = np.array([[1,0,1],[0,1,1],[-.058438620413,-16.5359646223,1]]) +#phi = np.array([[-.99200661799,0,0],[0,0,0],[0,-16.5359646223,0]]) +#Delta = np.dot(-phi,np.linalg.inv(gamma)) +#delta = np.zeros((2,2)) +#delta[0,0]=Delta[0,0] +#delta[0,1]=Delta[0,-1] +#delta[1,0]=Delta[-1,0] +#delta[1,1]=Delta[-1,-1] +#np.eigvals(delta) +#np.max(_) + diff --git a/statsmodels/sandbox/tests/maketests_mlabwrap.py b/statsmodels/sandbox/tests/maketests_mlabwrap.py new file mode 100644 index 0000000..f017d2a --- /dev/null +++ b/statsmodels/sandbox/tests/maketests_mlabwrap.py @@ -0,0 +1,246 @@ +'''generate py modules with test cases and results from mlabwrap + +currently matlab: princomp, garchar, garchma +''' + +import numpy as np +from numpy.testing import assert_array_almost_equal +from numpy import array + + + +xo = array([[ -419, -731, -1306, -1294], + [ 6, 529, -200, -437], + [ -27, -833, -6, -564], + [ -304, -273, -502, -739], + [ 1377, -912, 927, 280], + [ -375, -517, -514, 49], + [ 247, -504, 123, -259], + [ 712, 534, -773, 286], + [ 195, -1080, 3256, -178], + [ -854, 75, -706, -1084], + [-1219, -612, -15, -203], + [ 550, -628, -483, -2686], + [ -365, 1376, -1266, 317], + [ -489, 544, -195, 431], + [ -656, 854, 840, -723], + [ 16, -1385, -880, -460], + [ 258, -2252, 96, 54], + [ 2049, -750, -1115, 381], + [ -65, 280, -777, 416], + [ 755, 82, -806, 1027], + [ -39, -170, -2134, 743], + [ -859, 780, 746, -133], + [ 762, 252, -450, -459], + [ -941, -202, 49, -202], + [ -54, 115, 455, 388], + [-1348, 1246, 1430, -480], + [ 229, -535, -1831, 1524], + [ -651, -167, 2116, 483], + [-1249, -1373, 888, -1092], + [ -75, -2162, 486, -496], + [ 2436, -1627, -1069, 162], + [ -63, 560, -601, 587], + [ -60, 1051, -277, 1323], + [ 1329, -1294, 68, 5], + [ 1532, -633, -923, 696], + [ 669, 895, -1762, -375], + [ 1129, -548, 2064, 609], + [ 1320, 573, 2119, 270], + [ -213, -412, -2517, 1685], + [ 73, -979, 1312, -1220], + [-1360, -2107, -237, 1522], + [ -645, 205, -543, -169], + [ -212, 1072, 543, -128], + [ -352, -129, -605, -904], + [ 511, 85, 167, -1914], + [ 1515, 1862, 942, 1622], + [ -465, 623, -495, -89], + [-1396, -979, 1758, 128], + [ -255, -47, 980, 501], + [-1282, -58, -49, -610], + [ -889, -1177, -492, 494], + [ 1415, 1146, 696, -722], + [ 1237, -224, -1609, -64], + [ -528, -1625, 231, 883], + [ -327, 1636, -476, -361], + [ -781, 793, 1882, 234], + [ -506, -561, 1988, -810], + [-1233, 1467, -261, 2164], + [ 53, 1069, 824, 2123], + [-1200, -441, -321, 339], + [ 1606, 298, -995, 1292], + [-1740, -672, -1628, -129], + [-1450, -354, 224, -657], + [-2556, 1006, -706, -1453], + [ -717, -463, 345, -1821], + [ 1056, -38, -420, -455], + [ -523, 565, 425, 1138], + [-1030, -187, 683, 78], + [ -214, -312, -1171, -528], + [ 819, 736, -265, 423], + [ 1339, 351, 1142, 579], + [ -387, -126, -1573, 2346], + [ 969, 2, 327, -134], + [ 163, 227, 90, 2021], + [ 1022, -1076, 174, 304], + [ 1042, 1317, 311, 880], + [ 2018, -840, 295, 2651], + [ -277, 566, 1147, -189], + [ 20, 467, 1262, 263], + [ -663, 1061, -1552, -1159], + [ 1830, 391, 2534, -199], + [ -487, 752, -1061, 351], + [-2138, -556, -367, -457], + [ -868, -411, -559, 726], + [ 1770, 819, -892, -363], + [ 553, -736, -169, -490], + [ 388, -503, 809, -821], + [ -516, -1452, -192, 483], + [ 493, 2904, 1318, 2591], + [ 175, 584, -1001, 1675], + [ 1316, -1596, -460, 1500], + [ 1212, 214, -644, -696], + [ -501, 338, 1197, -841], + [ -587, -469, -1101, 24], + [-1205, 1910, 659, 1232], + [ -150, 398, 594, 394], + [ 34, -663, 235, -334], + [-1580, 647, 239, -351], + [-2177, -345, 1215, -1494], + [ 1923, 329, -152, 1128]]) + +x = xo/1000. + +class HoldIt(object): + def __init__(self, name): + self.name = name + def save(self, what=None, filename=None, header=True, useinstant=True, + comment=None): + if what is None: + what = (i for i in self.__dict__ if i[0] != '_') + if header: + txt = ['import numpy as np\nfrom numpy import array\n\n'] + if useinstant: + txt.append('class Holder(object):\n pass\n\n') + else: + txt = [] + + if useinstant: + txt.append('%s = Holder()' % self.name) + prefix = '%s.' % self.name + else: + prefix = '' + + if not comment is None: + txt.append("%scomment = '%s'" % (prefix, comment)) + + for x in what: + txt.append('%s%s = %s' % (prefix, x, repr(getattr(self,x)))) + txt.extend(['','']) #add empty lines at end + if not filename is None: + file(filename, 'a+').write('\n'.join(txt)) + return txt + +def generate_princomp(xo, filen='testsave.py'): + # import mlabwrap only when run as script + import mlabwrap + from mlabwrap import mlab + np.set_printoptions(precision=14, linewidth=100) + data = HoldIt('data') + data.xo = xo + data.save(filename='testsave.py', comment='generated data, divide by 1000') + + res_princomp = HoldIt('princomp1') + res_princomp.coef, res_princomp.factors, res_princomp.values = \ + mlab.princomp(x, nout=3) + res_princomp.save(filename=filen, header=False, + comment='mlab.princomp(x, nout=3)') + + res_princomp = HoldIt('princomp2') + res_princomp.coef, res_princomp.factors, res_princomp.values = \ + mlab.princomp(x[:20,], nout=3) + np.set_printoptions(precision=14, linewidth=100) + res_princomp.save(filename=filen, header=False, + comment='mlab.princomp(x[:20,], nout=3)') + + res_princomp = HoldIt('princomp3') + res_princomp.coef, res_princomp.factors, res_princomp.values = \ + mlab.princomp(x[:20,]-x[:20,].mean(0), nout=3) + np.set_printoptions(precision=14, linewidth=100) + res_princomp.save(filename=filen, header=False, + comment='mlab.princomp(x[:20,]-x[:20,].mean(0), nout=3)') + +def generate_armarep(filen='testsave.py'): + # import mlabwrap only when run as script + import mlabwrap + from mlabwrap import mlab + res_armarep = HoldIt('armarep') + res_armarep.ar = np.array([1., -0.5, +0.8]) + res_armarep.ma = np.array([1., -0.6, 0.08]) + + res_armarep.marep = mlab.garchma(-res_armarep.ar[1:], res_armarep.ma[1:], 20) + res_armarep.arrep = mlab.garchar(-res_armarep.ar[1:], res_armarep.ma[1:], 20) + res_armarep.save(filename=filen, header=False, + comment=("''mlab.garchma(-res_armarep.ar[1:], res_armarep.ma[1:], 20)\n" + + "mlab.garchar(-res_armarep.ar[1:], res_armarep.ma[1:], 20)''")) + + + + + +def exampletest(): + from statsmodels.sandbox import tsa + arrep = tsa.arma_impulse_response(res_armarep.ma, res_armarep.ar, nobs=21)[1:] + marep = tsa.arma_impulse_response(res_armarep.ar, res_armarep.ma, nobs=21)[1:] + assert_array_almost_equal(res_armarep.marep.ravel(), marep, 14) + #difference in sign convention to matlab for AR term + assert_array_almost_equal(-res_armarep.arrep.ravel(), arrep, 14) + + +if __name__ == '__main__': + import mlabwrap + from mlabwrap import mlab + + import savedrvs + xo = savedrvs.rvsdata.xar2 + x100 = xo[-100:]/1000. + x1000 = xo/1000. + + filen = 'testsavetls.py' + res_pacf = HoldIt('mlpacf') + res_pacf.comment = 'mlab.parcorr(x, [], 2, nout=3)' + res_pacf.pacf100, res_pacf.lags100, res_pacf.bounds100 = \ + mlab.parcorr(x100, [], 2, nout=3) + res_pacf.pacf1000, res_pacf.lags1000, res_pacf.bounds1000 = \ + mlab.parcorr(x1000, [], 2, nout=3) + res_pacf.save(filename=filen, header=True) + + res_acf = HoldIt('mlacf') + res_acf.comment = 'mlab.autocorr(x, [], 2, nout=3)' + res_acf.acf100, res_acf.lags100, res_acf.bounds100 = \ + mlab.autocorr(x100, [], 2, nout=3) + res_acf.acf1000, res_acf.lags1000, res_acf.bounds1000 = \ + mlab.autocorr(x1000, [], 2, nout=3) + res_acf.save(filename=filen, header=False) + + + res_ccf = HoldIt('mlccf') + res_ccf.comment = 'mlab.crosscorr(x[4:], x[:-4], [], 2, nout=3)' + res_ccf.ccf100, res_ccf.lags100, res_ccf.bounds100 = \ + mlab.crosscorr(x100[4:], x100[:-4], [], 2, nout=3) + res_ccf.ccf1000, res_ccf.lags1000, res_ccf.bounds1000 = \ + mlab.crosscorr(x1000[4:], x1000[:-4], [], 2, nout=3) + res_ccf.save(filename=filen, header=False) + + + res_ywar = HoldIt('mlywar') + res_ywar.comment = "mlab.ar(x100-x100.mean(), 10, 'yw').a.ravel()" + mbaryw = mlab.ar(x100-x100.mean(), 10, 'yw') + res_ywar.arcoef100 = np.array(mbaryw.a.ravel()) + mbaryw = mlab.ar(x1000-x1000.mean(), 20, 'yw') + res_ywar.arcoef1000 = np.array(mbaryw.a.ravel()) + res_ywar.save(filename=filen, header=False) + + + diff --git a/statsmodels/sandbox/tests/model_results.py b/statsmodels/sandbox/tests/model_results.py new file mode 100644 index 0000000..af6d061 --- /dev/null +++ b/statsmodels/sandbox/tests/model_results.py @@ -0,0 +1,10 @@ +""" +This should be merged into statsmodels/tests/model_results.py when things +move out of the sandbox. +""" +import numpy as np + + + + + diff --git a/statsmodels/sandbox/tests/savervs.py b/statsmodels/sandbox/tests/savervs.py new file mode 100644 index 0000000..0f0975f --- /dev/null +++ b/statsmodels/sandbox/tests/savervs.py @@ -0,0 +1,37 @@ +'''generates some ARMA random samples and saves to python module file + +''' + +import numpy as np +from statsmodels.sandbox import tsa +from statsmodels.tsa.arima_process import arma_generate_sample +from .maketests_mlabwrap import HoldIt + +if __name__ == '__main__': + filen = 'savedrvs_tmp.py' + np.set_printoptions(precision=14, linewidth=100) + + + # check arma to return same as random.normal + np.random.seed(10000) + xo = arma_generate_sample([1], [1], nsample=100) + xo2 = np.round(xo*1000).astype(int) + np.random.seed(10000) + rvs = np.random.normal(size=100) + rvs2 = np.round(xo*1000).astype(int) + assert (xo2==rvs2).all() + + nsample = 1000 + data = HoldIt('rvsdata') + + np.random.seed(10000) + xo = arma_generate_sample([1, -0.8, 0.5], [1], nsample=nsample) + data.xar2 = np.round(xo*1000).astype(int) + np.random.seed(10000) + xo = np.random.normal(size=nsample) + data.xnormal = np.round(xo*1000).astype(int) + np.random.seed(10000) + xo = arma_generate_sample([1, -0.8, 0.5, -0.3], [1, 0.3, 0.2], nsample=nsample) + data.xarma32 = np.round(xo*1000).astype(int) + + data.save(filename=filen, comment='generated data, divide by 1000, see savervs') diff --git a/statsmodels/sandbox/tests/sysreg.s b/statsmodels/sandbox/tests/sysreg.s new file mode 100644 index 0000000..ec04c4b --- /dev/null +++ b/statsmodels/sandbox/tests/sysreg.s @@ -0,0 +1,56 @@ +# from the systemfit docs and sem docs +# depends systemfit and its dependencies +# depends sem +# depends on plm +# depends on R >= 2.9.0 (working on 2.9.2 but not on 2.8.1 at least) + +library( systemfit ) +data( "Kmenta" ) +eqDemand <- consump ~ price + income +eqSupply <- consump ~ price + farmPrice + trend +system <- list( demand = eqDemand, supply = eqSupply ) + +## performs OLS on each of the equations in the system +fitols <- systemfit( system, data = Kmenta ) + +# all coefficients +coef( fitols ) +coef( summary ( fitols ) ) + +modReg <- matrix(0,7,6) +colnames( modReg ) <- c( "demIntercept", "demPrice", "demIncome", + "supIntercept", "supPrice2", "supTrend" ) + +# a lot of typing for a model +modReg[ 1, "demIntercept" ] <- 1 +modReg[ 2, "demPrice" ] <- 1 +modReg[ 3, "demIncome" ] <- 1 +modReg[ 4, "supIntercept" ] <- 1 +modReg[ 5, "supPrice2" ] <- 1 +modReg[ 6, "supPrice2" ] <- 1 +modReg[ 7, "supTrend" ] <- 1 +fitols3 <- systemfit( system, data = Kmenta, restrict.regMat = modReg ) +print(coef( fitols3, modified.regMat = TRUE )) +# it seems to me like regMat does the opposite of what it says it does +# in python +# coef1 = np.array([99.8954229, -0.3162988, 0.3346356, 51.9296460, 0.2361566, 0.2361566, 0.2409308]) +# i = np.eye(7,6) +# i[-1,-1] = 1 +# i[-2,-1] = 0 +# i[-2,-2] = 1 +# np.dot(coef,i) # regMat = TRUE? +print(coef( fitols3 )) + +### SUR ### +data("GrunfeldGreene") +library(plm) +GGPanel <- plm.data( GrunfeldGreene, c("firm","year") ) +formulaGrunfeld <- invest ~ value + capital +greeneSUR <- systemfit( formulaGrunfeld, "SUR", data = GGPanel, + methodResidCov = "noDfCor" ) + +#usinvest <- as.matrix(invest[81:100]) +#usvalue <- as.matrix(value +col5tbl14_2 <- lm(invest[81:100] ~ value[81:100] + capital[81:100]) + + diff --git a/statsmodels/sandbox/tests/test_bspline.py.txt b/statsmodels/sandbox/tests/test_bspline.py.txt new file mode 100644 index 0000000..7e1d943 --- /dev/null +++ b/statsmodels/sandbox/tests/test_bspline.py.txt @@ -0,0 +1,55 @@ +import warnings + +import numpy as np +from nipy.testing import * + +bsp = None + +def setup(): + # Suppress warnings during tests to reduce noise + warnings.simplefilter("ignore") + # import bspline module after suppressing UserWarnings + global bsp + import nipy.fixes.scipy.stats.models.bspline as bsp + +def teardown(): + # Clear list of warning filters + warnings.resetwarnings() + + +class TestBSpline(TestCase): + + def test1(self): + b = bsp.BSpline(np.linspace(0,10,11), x=np.linspace(0,10,101)) + old = b._basisx.shape + b.x = np.linspace(0,10,51) + new = b._basisx.shape + self.assertEqual((old[0], 51), new) + + # FIXME: Have no idea what this test does. It's here to simply verify the + # C extension is working (in a technical sense, not functional). + def test_basis(self): + b = bsp.BSpline(np.linspace(0,1,11)) + x = np.array([0.4, 0.5]) + v = b.basis(x, lower=0, upper=13) + t = np.array([[ 0. , 0. ], + [ 0. , 0. ], + [ 0. , 0. ], + [ 0. , 0. ], + [ 0.16666667, 0. ], + [ 0.66666667, 0.16666667], + [ 0.16666667, 0.66666667], + [ 0. , 0.16666667], + [ 0. , 0. ], + [ 0. , 0. ], + [ 0. , 0. ], + [ 0. , 0. ], + [ 0. , 0. ]]) + assert_array_almost_equal(v, t, decimal=6) + + # FIXME: Have no idea what this test does. It's here to simply verify the + # C extension is working (in a technical sense, not functional). + def test_gram(self): + b = bsp.BSpline(np.linspace(0,1,11)) + grm = b.gram() + assert grm.shape == (4, 13) diff --git a/statsmodels/sandbox/tests/test_formula.py b/statsmodels/sandbox/tests/test_formula.py new file mode 100644 index 0000000..d92c686 --- /dev/null +++ b/statsmodels/sandbox/tests/test_formula.py @@ -0,0 +1,314 @@ +""" +Test functions for models.formula +""" + +import string + +import numpy as np +import numpy.random as R +import numpy.linalg as L +from numpy.testing import * + +from statsmodels.sandbox import formula #, contrast #, utils +from statsmodels.sandbox import contrast_old as contrast + + +class TestTerm(TestCase): + + def test_init(self): + t1 = formula.Term("trivial") + sqr = lambda x: x*x + + t2 = formula.Term("not_so_trivial", sqr, "sqr") + + self.assertRaises(ValueError, formula.Term, "name", termname=0) + + + def test_str(self): + t = formula.Term("name") + s = str(t) + + def test_add(self): + t1 = formula.Term("t1") + t2 = formula.Term("t2") + f = t1 + t2 + self.assert_(isinstance(f, formula.Formula)) + self.assert_(f.hasterm(t1)) + self.assert_(f.hasterm(t2)) + + def test_mul(self): + t1 = formula.Term("t1") + t2 = formula.Term("t2") + f = t1 * t2 + self.assert_(isinstance(f, formula.Formula)) + + intercept = formula.Term("intercept") + f = t1 * intercept + self.assertEqual(str(f), str(formula.Formula(t1))) + + f = intercept * t1 + self.assertEqual(str(f), str(formula.Formula(t1))) + +class TestFormula(TestCase): + + def setUp(self): + self.X = R.standard_normal((40,10)) + self.namespace = {} + self.terms = [] + for i in range(10): + name = '%s' % string.ascii_uppercase[i] + self.namespace[name] = self.X[:,i] + self.terms.append(formula.Term(name)) + + self.formula = self.terms[0] + for i in range(1, 10): + self.formula += self.terms[i] + self.formula.namespace = self.namespace + + def test_namespace(self): + space1 = {'X':np.arange(50), 'Y':np.arange(50)*2} + space2 = {'X':np.arange(20), 'Y':np.arange(20)*2} + space3 = {'X':np.arange(30), 'Y':np.arange(30)*2} + X = formula.Term('X') + Y = formula.Term('Y') + + X.namespace = space1 + assert_almost_equal(X(), np.arange(50)) + + Y.namespace = space2 + assert_almost_equal(Y(), np.arange(20)*2) + + f = X + Y + + f.namespace = space1 + self.assertEqual(f().shape, (2,50)) + assert_almost_equal(Y(), np.arange(20)*2) + assert_almost_equal(X(), np.arange(50)) + + f.namespace = space2 + self.assertEqual(f().shape, (2,20)) + assert_almost_equal(Y(), np.arange(20)*2) + assert_almost_equal(X(), np.arange(50)) + + f.namespace = space3 + self.assertEqual(f().shape, (2,30)) + assert_almost_equal(Y(), np.arange(20)*2) + assert_almost_equal(X(), np.arange(50)) + + xx = X**2 + self.assertEqual(xx().shape, (50,)) + + xx.namespace = space3 + self.assertEqual(xx().shape, (30,)) + + xx = X * formula.I + self.assertEqual(xx().shape, (50,)) + xx.namespace = space3 + self.assertEqual(xx().shape, (30,)) + + xx = X * X + self.assertEqual(xx.namespace, X.namespace) + + xx = X + Y + self.assertEqual(xx.namespace, {}) + + Y.namespace = {'X':np.arange(50), 'Y':np.arange(50)*2} + xx = X + Y + self.assertEqual(xx.namespace, {}) + + Y.namespace = X.namespace + xx = X+Y + self.assertEqual(xx.namespace, Y.namespace) + + def test_termcolumns(self): + t1 = formula.Term("A") + t2 = formula.Term("B") + f = t1 + t2 + t1 * t2 + def other(val): + return np.array([3.2*val,4.342*val**2, 5.234*val**3]) + q = formula.Quantitative(['other%d' % i for i in range(1,4)], termname='other', func=t1, transform=other) + f += q + q.namespace = f.namespace = self.formula.namespace + a = q() + b = f() + c = f.termcolumns(q) + b = b[c] + assert_almost_equal(a,b) + + + def test_str(self): + s = str(self.formula) + + def test_call(self): + x = self.formula() + self.assertEquals(np.array(x).shape, (10, 40)) + + def test_design(self): + x = self.formula.design() + self.assertEquals(x.shape, (40, 10)) + + def test_product(self): + prod = self.formula['A'] * self.formula['C'] + f = self.formula + prod + f.namespace = self.namespace + x = f.design() + p = f['A*C'] + p.namespace = self.namespace + col = f.termcolumns(prod, dict=False) + assert_almost_equal(np.squeeze(x[:,col]), self.X[:,0] * self.X[:,2]) + assert_almost_equal(np.squeeze(p()), self.X[:,0] * self.X[:,2]) + + def test_intercept1(self): + prod = self.terms[0] * self.terms[2] + f = self.formula + formula.I + icol = f.names().index('intercept') + f.namespace = self.namespace + assert_almost_equal(f()[icol], np.ones((40,))) + + def test_intercept3(self): + t = self.formula['A'] + t.namespace = self.namespace + prod = t * formula.I + prod.namespace = self.formula.namespace + assert_almost_equal(np.squeeze(prod()), t()) + + def test_contrast1(self): + term = self.terms[0] + self.terms[2] + c = contrast.Contrast(term, self.formula) + col1 = self.formula.termcolumns(self.terms[0], dict=False) + col2 = self.formula.termcolumns(self.terms[1], dict=False) + test = [[1] + [0]*9, [0]*2 + [1] + [0]*7] + assert_almost_equal(c.matrix, test) + + def test_contrast2(self): + dummy = formula.Term('zero') + self.namespace['zero'] = np.zeros((40,), np.float64) + term = dummy + self.terms[2] + c = contrast.Contrast(term, self.formula) + test = [0]*2 + [1] + [0]*7 + assert_almost_equal(c.matrix, test) + + def test_contrast3(self): + X = self.formula.design() + P = np.dot(X, L.pinv(X)) + + dummy = formula.Term('noise') + resid = np.identity(40) - P + self.namespace['noise'] = np.transpose(np.dot(resid, R.standard_normal((40,5)))) + terms = dummy + self.terms[2] + terms.namespace = self.formula.namespace + c = contrast.Contrast(terms, self.formula) + self.assertEquals(c.matrix.shape, (10,)) + + def test_power(self): + + t = self.terms[2] + t2 = t**2 + t.namespace = t2.namespace = self.formula.namespace + assert_almost_equal(t()**2, t2()) + + def test_quantitative(self): + t = self.terms[2] + sint = formula.Quantitative('t', func=t, transform=np.sin) + t.namespace = sint.namespace = self.formula.namespace + assert_almost_equal(np.sin(t()), sint()) + + def test_factor1(self): + f = ['a','b','c']*10 + fac = formula.Factor('ff', f) + fac.namespace = {'ff':f} + self.assertEquals(list(fac.values()), f) + + def test_factor2(self): + f = ['a','b','c']*10 + fac = formula.Factor('ff', f) + fac.namespace = {'ff':f} + self.assertEquals(fac().shape, (3,30)) + + def test_factor3(self): + f = ['a','b','c']*10 + fac = formula.Factor('ff', f) + fac.namespace = {'ff':f} + m = fac.main_effect(reference=1) + m.namespace = fac.namespace + self.assertEquals(m().shape, (2,30)) + + def test_factor4(self): + f = ['a','b','c']*10 + fac = formula.Factor('ff', f) + fac.namespace = {'ff':f} + m = fac.main_effect(reference=2) + m.namespace = fac.namespace + r = np.array([np.identity(3)]*10) + r.shape = (30,3) + r = r.T + _m = np.array([r[0]-r[2],r[1]-r[2]]) + assert_almost_equal(_m, m()) + + def test_factor5(self): + f = ['a','b','c']*3 + fac = formula.Factor('ff', f) + fac.namespace = {'ff':f} + + assert_equal(fac(), [[1,0,0]*3, + [0,1,0]*3, + [0,0,1]*3]) + assert_equal(fac['a'], [1,0,0]*3) + assert_equal(fac['b'], [0,1,0]*3) + assert_equal(fac['c'], [0,0,1]*3) + + + def test_ordinal_factor(self): + f = ['a','b','c']*3 + fac = formula.Factor('ff', ['a','b','c'], ordinal=True) + fac.namespace = {'ff':f} + + assert_equal(fac(), [0,1,2]*3) + assert_equal(fac['a'], [1,0,0]*3) + assert_equal(fac['b'], [0,1,0]*3) + assert_equal(fac['c'], [0,0,1]*3) + + def test_ordinal_factor2(self): + f = ['b','c', 'a']*3 + fac = formula.Factor('ff', ['a','b','c'], ordinal=True) + fac.namespace = {'ff':f} + + assert_equal(fac(), [1,2,0]*3) + assert_equal(fac['a'], [0,0,1]*3) + assert_equal(fac['b'], [1,0,0]*3) + assert_equal(fac['c'], [0,1,0]*3) + + def test_contrast4(self): + + f = self.formula + self.terms[5] + self.terms[5] + f.namespace = self.namespace + estimable = False + + c = contrast.Contrast(self.terms[5], f) + + self.assertEquals(estimable, False) + + def test_interactions(self): + + f = formula.interactions([formula.Term(l) for l in ['a', 'b', 'c']]) + assert_equal(set(f.termnames()), set(['a', 'b', 'c', 'a*b', 'a*c', 'b*c'])) + + f = formula.interactions([formula.Term(l) for l in ['a', 'b', 'c', 'd']], order=3) + assert_equal(set(f.termnames()), set(['a', 'b', 'c', 'd', 'a*b', 'a*c', 'a*d', 'b*c', 'b*d', 'c*d', 'a*b*c', 'a*c*d', 'a*b*d', 'b*c*d'])) + + f = formula.interactions([formula.Term(l) for l in ['a', 'b', 'c', 'd']], order=[1,2,3]) + assert_equal(set(f.termnames()), set(['a', 'b', 'c', 'd', 'a*b', 'a*c', 'a*d', 'b*c', 'b*d', 'c*d', 'a*b*c', 'a*c*d', 'a*b*d', 'b*c*d'])) + + f = formula.interactions([formula.Term(l) for l in ['a', 'b', 'c', 'd']], order=[3]) + assert_equal(set(f.termnames()), set(['a*b*c', 'a*c*d', 'a*b*d', 'b*c*d'])) + + def test_subtract(self): + f = formula.interactions([formula.Term(l) for l in ['a', 'b', 'c']]) + ff = f - f['a*b'] + assert_equal(set(ff.termnames()), set(['a', 'b', 'c', 'a*c', 'b*c'])) + + ff = f - f['a*b'] - f['a*c'] + assert_equal(set(ff.termnames()), set(['a', 'b', 'c', 'b*c'])) + + ff = f - (f['a*b'] + f['a*c']) + assert_equal(set(ff.termnames()), set(['a', 'b', 'c', 'b*c'])) diff --git a/statsmodels/sandbox/tests/test_gam.py b/statsmodels/sandbox/tests/test_gam.py new file mode 100644 index 0000000..166a459 --- /dev/null +++ b/statsmodels/sandbox/tests/test_gam.py @@ -0,0 +1,311 @@ +# -*- coding: utf-8 -*- +"""Tests for gam.AdditiveModel and GAM with Polynomials compared to OLS and GLM + + +Created on Sat Nov 05 14:16:07 2011 + +Author: Josef Perktold +License: BSD + + +Notes +----- + +TODO: TestGAMGamma: has test failure (GLM looks good), + adding log-link didn't help + resolved: gamma doesn't fail anymore after tightening the + convergence criterium (rtol=1e-6) +TODO: TestGAMNegativeBinomial: rvs generation doesn't work, + nbinom needs 2 parameters +TODO: TestGAMGaussianLogLink: test failure, + but maybe precision issue, not completely off + + but something is wrong, either the testcase or with the link + >>> tt3.__class__ + + >>> tt3.res2.mu_pred.mean() + 3.5616368292650766 + >>> tt3.res1.mu_pred.mean() + 3.6144278964707679 + >>> tt3.mu_true.mean() + 34.821904835958122 + >>> + >>> tt3.y_true.mean() + 2.685225067611543 + >>> tt3.res1.y_pred.mean() + 0.52991541684645616 + >>> tt3.res2.y_pred.mean() + 0.44626406889363229 + + + +one possible change +~~~~~~~~~~~~~~~~~~~ +add average, integral based tests, instead of or additional to sup + * for example mean squared error for mu and eta (predict, fittedvalues) + or mean absolute error, what's the scale for this? required precision? + * this will also work for real non-parametric tests + +example: Gamma looks good in average bias and average RMSE (RMISE) + +>>> tt3 = _estGAMGamma() +>>> np.mean((tt3.res2.mu_pred - tt3.mu_true))/tt3.mu_true.mean() +-0.0051829977497423706 +>>> np.mean((tt3.res2.y_pred - tt3.y_true))/tt3.y_true.mean() +0.00015255264651864049 +>>> np.mean((tt3.res1.y_pred - tt3.y_true))/tt3.y_true.mean() +0.00015255538823786711 +>>> np.mean((tt3.res1.mu_pred - tt3.mu_true))/tt3.mu_true.mean() +-0.0051937668989744494 +>>> np.sqrt(np.mean((tt3.res1.mu_pred - tt3.mu_true)**2))/tt3.mu_true.mean() +0.022946118520401692 +>>> np.sqrt(np.mean((tt3.res2.mu_pred - tt3.mu_true)**2))/tt3.mu_true.mean() +0.022953913332599746 +>>> maxabs = lambda x: np.max(np.abs(x)) +>>> maxabs((tt3.res1.mu_pred - tt3.mu_true))/tt3.mu_true.mean() +0.079540546242707733 +>>> maxabs((tt3.res2.mu_pred - tt3.mu_true))/tt3.mu_true.mean() +0.079578857986784574 +>>> maxabs((tt3.res2.y_pred - tt3.y_true))/tt3.y_true.mean() +0.016282852522951426 +>>> maxabs((tt3.res1.y_pred - tt3.y_true))/tt3.y_true.mean() +0.016288391235613865 + + + +""" +from statsmodels.compat.python import get_class, lrange +import numpy as np +from numpy.testing import assert_almost_equal, assert_equal + +from scipy import stats + +from statsmodels.sandbox.gam import AdditiveModel +from statsmodels.sandbox.gam import Model as GAM #? +from statsmodels.genmod.families import family, links +from statsmodels.genmod.generalized_linear_model import GLM +from statsmodels.regression.linear_model import OLS + + +class Dummy(object): + pass + +class CheckAM(object): + + def test_predict(self): + assert_almost_equal(self.res1.y_pred, + self.res2.y_pred, decimal=2) + assert_almost_equal(self.res1.y_predshort, + self.res2.y_pred[:10], decimal=2) + + + def _est_fitted(self): + #check definition of fitted in GLM: eta or mu + assert_almost_equal(self.res1.y_pred, + self.res2.fittedvalues, decimal=2) + assert_almost_equal(self.res1.y_predshort, + self.res2.fittedvalues[:10], decimal=2) + + def test_params(self): + #note: only testing slope coefficients + #constant is far off in example 4 versus 2 + assert_almost_equal(self.res1.params[1:], + self.res2.params[1:], decimal=2) + #constant + assert_almost_equal(self.res1.params[1], + self.res2.params[1], decimal=2) + + def _est_df(self): + #not used yet, copied from PolySmoother tests + assert_equal(self.res_ps.df_model(), self.res2.df_model) + assert_equal(self.res_ps.df_fit(), self.res2.df_model) #alias + assert_equal(self.res_ps.df_resid(), self.res2.df_resid) + +class CheckGAM(CheckAM): + + def test_mu(self): + #problem with scale for precision + assert_almost_equal(self.res1.mu_pred, + self.res2.mu_pred, decimal=0) +# assert_almost_equal(self.res1.y_predshort, +# self.res2.y_pred[:10], decimal=2) + + +class BaseAM(object): + + def __init__(self): + + #DGP: simple polynomial + order = 3 + nobs = 200 + lb, ub = -3.5, 3 + x1 = np.linspace(lb, ub, nobs) + x2 = np.sin(2*x1) + x = np.column_stack((x1/x1.max()*1, 1.*x2)) + exog = (x[:,:,None]**np.arange(order+1)[None, None, :]).reshape(nobs, -1) + idx = lrange((order+1)*2) + del idx[order+1] + exog_reduced = exog[:,idx] #remove duplicate constant + y_true = exog.sum(1) #/ 4. + #z = y_true #alias check + #d = x + + self.nobs = nobs + self.y_true, self.x, self.exog = y_true, x, exog_reduced + + + +class TestAdditiveModel(BaseAM, CheckAM): + + def __init__(self): + super(self.__class__, self).__init__() #initialize DGP + + nobs = self.nobs + y_true, x, exog = self.y_true, self.x, self.exog + + np.random.seed(8765993) + sigma_noise = 0.1 + y = y_true + sigma_noise * np.random.randn(nobs) + + m = AdditiveModel(x) + m.fit(y) + res_gam = m.results #TODO: currently attached to class + + res_ols = OLS(y, exog).fit() + + #Note: there still are some naming inconsistencies + self.res1 = res1 = Dummy() #for gam model + #res2 = Dummy() #for benchmark + self.res2 = res2 = res_ols #reuse existing ols results, will add additional + + res1.y_pred = res_gam.predict(x) + res2.y_pred = res_ols.model.predict(res_ols.params, exog) + res1.y_predshort = res_gam.predict(x[:10]) + + slopes = [i for ss in m.smoothers for i in ss.params[1:]] + + const = res_gam.alpha + sum([ss.params[1] for ss in m.smoothers]) + #print const, slopes + res1.params = np.array([const] + slopes) + + +class BaseGAM(BaseAM, CheckGAM): + + def init(self): + nobs = self.nobs + y_true, x, exog = self.y_true, self.x, self.exog + if not hasattr(self, 'scale'): + scale = 1 + else: + scale = self.scale + + f = self.family + + self.mu_true = mu_true = f.link.inverse(y_true) + + np.random.seed(8765993) + #y_obs = np.asarray([stats.poisson.rvs(p) for p in mu], float) + if issubclass(get_class(self.rvs), stats.rv_discrete): + # Discrete distributions don't take `scale`. + y_obs = self.rvs(mu_true, size=nobs) + else: + y_obs = self.rvs(mu_true, scale=scale, size=nobs) + m = GAM(y_obs, x, family=f) #TODO: y_obs is twice __init__ and fit + m.fit(y_obs, maxiter=100) + res_gam = m.results + self.res_gam = res_gam #attached for debugging + self.mod_gam = m #attached for debugging + + res_glm = GLM(y_obs, exog, family=f).fit() + + #Note: there still are some naming inconsistencies + self.res1 = res1 = Dummy() #for gam model + #res2 = Dummy() #for benchmark + self.res2 = res2 = res_glm #reuse existing glm results, will add additional + + #eta in GLM terminology + res2.y_pred = res_glm.model.predict(res_glm.params, exog, linear=True) + res1.y_pred = res_gam.predict(x) + res1.y_predshort = res_gam.predict(x[:10]) #, linear=True) + + #mu + res2.mu_pred = res_glm.model.predict(res_glm.params, exog, linear=False) + res1.mu_pred = res_gam.mu + + #parameters + slopes = [i for ss in m.smoothers for i in ss.params[1:]] + const = res_gam.alpha + sum([ss.params[1] for ss in m.smoothers]) + res1.params = np.array([const] + slopes) + + +class TestGAMPoisson(BaseGAM): + + def __init__(self): + super(self.__class__, self).__init__() #initialize DGP + + self.family = family.Poisson() + self.rvs = stats.poisson.rvs + + self.init() + +class TestGAMBinomial(BaseGAM): + + def __init__(self): + super(self.__class__, self).__init__() #initialize DGP + + self.family = family.Binomial() + self.rvs = stats.bernoulli.rvs + + self.init() + +class _estGAMGaussianLogLink(BaseGAM): + #test failure, but maybe precision issue, not far off + #>>> np.mean(np.abs(tt.res2.mu_pred - tt.mu_true)) + #0.80409736263199649 + #>>> np.mean(np.abs(tt.res2.mu_pred - tt.mu_true))/tt.mu_true.mean() + #0.023258245077813208 + #>>> np.mean((tt.res2.mu_pred - tt.mu_true)**2)/tt.mu_true.mean() + #0.022989403735692578 + + def __init__(self): + super(self.__class__, self).__init__() #initialize DGP + + self.family = family.Gaussian(links.log) + self.rvs = stats.norm.rvs + self.scale = 5 + + self.init() + + +class TestGAMGamma(BaseGAM): + + def __init__(self): + super(self.__class__, self).__init__() #initialize DGP + + self.family = family.Gamma(links.log) + self.rvs = stats.gamma.rvs + + self.init() + +class _estGAMNegativeBinomial(BaseGAM): + #rvs generation doesn't work, nbinom needs 2 parameters + + def __init__(self): + super(self.__class__, self).__init__() #initialize DGP + + self.family = family.NegativeBinomial() + self.rvs = stats.nbinom.rvs + + self.init() + +if __name__ == '__main__': + t1 = TestAdditiveModel() + t1.test_predict() + t1.test_params() + + for tt in [TestGAMPoisson, TestGAMBinomial, TestGAMGamma, + _estGAMGaussianLogLink]: #, TestGAMNegativeBinomial]: + tt = tt() + tt.test_predict() + tt.test_params() + tt.test_mu diff --git a/statsmodels/sandbox/tests/test_pca.py b/statsmodels/sandbox/tests/test_pca.py new file mode 100644 index 0000000..5ac7af8 --- /dev/null +++ b/statsmodels/sandbox/tests/test_pca.py @@ -0,0 +1,72 @@ +'''tests for pca and arma to ar and ma representation + +compared with matlab princomp, and garchar, garchma + +TODO: +* convert to generators with yield to have individual tests +* incomplete: test relationship of pca-evecs and pinv (adding constant) +''' + +import numpy as np +from numpy.testing import assert_array_almost_equal +from statsmodels.sandbox import tools +from statsmodels.sandbox.tools import pca, pcasvd +from statsmodels.tsa.arima_process import arma_impulse_response + +from .datamlw import * + + +def check_pca_princomp(pcares, princomp): + factors, evals, evecs = pcares[1:] + #res_princomp.coef, res_princomp.factors, res_princomp.values + msign = (evecs/princomp.coef)[0] + assert_array_almost_equal(msign*evecs, princomp.coef, 13) + assert_array_almost_equal(msign*factors, princomp.factors, 13) + assert_array_almost_equal(evals, princomp.values.ravel(), 13) + +def check_pca_svd(pcares, pcasvdres): + xreduced, factors, evals, evecs = pcares + xred_svd, factors_svd, evals_svd, evecs_svd = pcasvdres + assert_array_almost_equal(evals_svd, evals, 14) + msign = (evecs/evecs_svd)[0] + assert_array_almost_equal(msign*evecs_svd, evecs, 13) + assert_array_almost_equal(msign*factors_svd, factors, 13) + assert_array_almost_equal(xred_svd, xreduced, 13) + + +xf = data.xo/1000. + +def test_pca_princomp(): + pcares = pca(xf) + check_pca_princomp(pcares, princomp1) + pcares = pca(xf[:20,:]) + check_pca_princomp(pcares, princomp2) + pcares = pca(xf[:20,:]-xf[:20,:].mean(0)) + check_pca_princomp(pcares, princomp3) + pcares = pca(xf[:20,:]-xf[:20,:].mean(0), demean=0) + check_pca_princomp(pcares, princomp3) + + +def test_pca_svd(): + xreduced, factors, evals, evecs = pca(xf) + factors_wconst = np.c_[factors, np.ones((factors.shape[0],1))] + beta = np.dot(np.linalg.pinv(factors_wconst), xf) + #np.dot(np.linalg.pinv(factors_wconst),x2/1000.).T[:,:4] - evecs + assert_array_almost_equal(beta.T[:,:4], evecs, 14) + + xred_svd, factors_svd, evals_svd, evecs_svd = pcasvd(xf, keepdim=0) + assert_array_almost_equal(evals_svd, evals, 14) + msign = (evecs/evecs_svd)[0] + assert_array_almost_equal(msign*evecs_svd, evecs, 13) + assert_array_almost_equal(msign*factors_svd, factors, 12) + assert_array_almost_equal(xred_svd, xreduced, 13) + + pcares = pca(xf, keepdim=2) + pcasvdres = pcasvd(xf, keepdim=2) + check_pca_svd(pcares, pcasvdres) + +#print np.dot(factors[:,:3], evecs.T[:3,:])[:5] + + +if __name__ == '__main__': + test_pca_svd() diff --git a/statsmodels/sandbox/tests/test_predict_functional.py b/statsmodels/sandbox/tests/test_predict_functional.py new file mode 100644 index 0000000..6294b2d --- /dev/null +++ b/statsmodels/sandbox/tests/test_predict_functional.py @@ -0,0 +1,350 @@ +from statsmodels.sandbox.predict_functional import predict_functional +import numpy as np +import pandas as pd +import statsmodels.api as sm +from numpy.testing import dec + +# If true, the output is written to a multi-page pdf file. +pdf_output = False + +try: + import matplotlib.pyplot as plt + import matplotlib + have_matplotlib = True +except ImportError: + have_matplotlib = False + +def pctl(q): + return lambda x : np.percentile(x, 100 *q) + + +class TestPredFunc(object): + + @classmethod + def setup_class(cls): + if pdf_output: + from matplotlib.backends.backend_pdf import PdfPages + cls.pdf = PdfPages("predict_functional.pdf") + + @classmethod + def teardown_class(cls): + if pdf_output: + cls.pdf.close() + + def close_or_save(self, fig): + if pdf_output: + self.pdf.savefig(fig) + else: + plt.close(fig) + + + @dec.skipif(not have_matplotlib) + def test_formula(self): + + np.random.seed(542) + n = 500 + x1 = np.random.normal(size=n) + x2 = np.random.normal(size=n) + x3 = np.random.normal(size=n) + x4 = np.random.randint(0, 5, size=n) + x4 = np.asarray(["ABCDE"[i] for i in x4]) + x5 = np.random.normal(size=n) + y = 0.3*x2**2 + (x4 == "B") + 0.1*(x4 == "B")*x2**2 + x5 + np.random.normal(size=n) + + df = pd.DataFrame({"y": y, "x1": x1, "x2": x2, "x3": x3, "x4": x4, "x5": x5}) + + fml = "y ~ x1 + bs(x2, df=4) + x3 + x2*x3 + I(x1**2) + C(x4) + C(x4)*bs(x2, df=4) + x5" + model = sm.OLS.from_formula(fml, data=df) + result = model.fit() + + summaries = {"x1": np.mean, "x3": pctl(0.75), "x5": np.mean} + + values = {"x4": "B"} + pr1, ci1, fvals1 = predict_functional(result, "x2", summaries, values) + + values = {"x4": "C"} + pr2, ci2, fvals2 = predict_functional(result, "x2", summaries, values) + + plt.clf() + fig = plt.figure() + ax = plt.axes([0.1, 0.1, 0.7, 0.8]) + plt.plot(fvals1, pr1, '-', label='x4=B') + plt.plot(fvals2, pr2, '-', label='x4=C') + ha, lb = ax.get_legend_handles_labels() + plt.figlegend(ha, lb, "center right") + plt.xlabel("Focus variable", size=15) + plt.ylabel("Fitted mean", size=15) + plt.title("Linear model prediction") + self.close_or_save(fig) + + plt.clf() + fig = plt.figure() + ax = plt.axes([0.1, 0.1, 0.7, 0.8]) + plt.plot(fvals1, pr1, '-', label='x4=B') + plt.fill_between(fvals1, ci1[:, 0], ci1[:, 1], color='grey') + plt.plot(fvals2, pr2, '-', label='x4=C') + plt.fill_between(fvals2, ci2[:, 0], ci2[:, 1], color='grey') + ha, lb = ax.get_legend_handles_labels() + plt.figlegend(ha, lb, "center right") + plt.xlabel("Focus variable", size=15) + plt.ylabel("Fitted mean", size=15) + plt.title("Linear model prediction") + self.close_or_save(fig) + + + @dec.skipif(not have_matplotlib) + def test_lm_contrast(self): + + np.random.seed(542) + n = 200 + x1 = np.random.normal(size=n) + x2 = np.random.normal(size=n) + x3 = np.random.normal(size=n) + y = x1 + 2*x2 + x3 - x1*x2 + x2*x3 + np.random.normal(size=n) + + df = pd.DataFrame({"y": y, "x1": x1, "x2": x2, "x3": x3}) + + fml = "y ~ x1 + x2 + x3 + x1*x2 + x2*x3" + model = sm.OLS.from_formula(fml, data=df) + result = model.fit() + + values = {"x2": 1, "x3": 1} # y = 4 + values2 = {"x2": 0, "x3": 0} # y = x1 + pr, cb, fvals = predict_functional(result, "x1", values=values, + values2=values2, ci_method='scheffe') + + plt.clf() + fig = plt.figure() + ax = plt.axes([0.1, 0.1, 0.67, 0.8]) + plt.plot(fvals, pr, '-', label="Estimate", color='orange', lw=4) + plt.plot(fvals, 4 - fvals, '-', label="Truth", color='lime', lw=4) + plt.fill_between(fvals, cb[:, 0], cb[:, 1], color='grey') + ha, lb = ax.get_legend_handles_labels() + leg = plt.figlegend(ha, lb, "center right") + leg.draw_frame(False) + plt.xlabel("Focus variable", size=15) + plt.ylabel("Mean contrast", size=15) + plt.title("Linear model contrast") + self.close_or_save(fig) + + + @dec.skipif(not have_matplotlib) + def test_glm_formula_contrast(self): + + np.random.seed(542) + n = 50 + x1 = np.random.normal(size=n) + x2 = np.random.normal(size=n) + x3 = np.random.normal(size=n) + mn = 5 + 0.1*x1 + 0.1*x2 + 0.1*x3 - 0.1*x1*x2 + y = np.random.poisson(np.exp(mn), size=len(mn)) + + df = pd.DataFrame({"y": y, "x1": x1, "x2": x2, "x3": x3}) + + fml = "y ~ x1 + x2 + x3 + x1*x2" + model = sm.GLM.from_formula(fml, data=df, family=sm.families.Poisson()) + result = model.fit() + + values = {"x2": 1, "x3": 1} # y = 5.2 + values2 = {"x2": 0, "x3": 0} # y = 5 + 0.1*x1 + pr, cb, fvals = predict_functional(result, "x1", values=values, + values2=values2, ci_method='simultaneous') + + plt.clf() + fig = plt.figure() + ax = plt.axes([0.1, 0.1, 0.67, 0.8]) + plt.plot(fvals, pr, '-', label="Estimate", color='orange', lw=4) + plt.plot(fvals, 0.2 - 0.1*fvals, '-', label="Truth", color='lime', lw=4) + plt.fill_between(fvals, cb[:, 0], cb[:, 1], color='grey') + ha, lb = ax.get_legend_handles_labels() + leg = plt.figlegend(ha, lb, "center right") + leg.draw_frame(False) + plt.xlabel("Focus variable", size=15) + plt.ylabel("Linear predictor contrast", size=15) + plt.title("Poisson regression contrast") + self.close_or_save(fig) + + + @dec.skipif(not have_matplotlib) + def test_scb(self): + + np.random.seed(473) + n = 100 + x = np.random.normal(size=(n,4)) + x[:, 0] = 1 + + for fam_name in "poisson", "binomial", "gaussian": + + if fam_name == "poisson": + y = np.random.poisson(20, size=n) + fam = sm.families.Poisson() + true_mean = 20 + true_lp = np.log(20) + elif fam_name == "binomial": + y = 1 * (np.random.uniform(size=n) < 0.5) + fam = sm.families.Binomial() + true_mean = 0.5 + true_lp = 0 + elif fam_name == "gaussian": + y = np.random.normal(size=n) + fam = sm.families.Gaussian() + true_mean = 0 + true_lp = 0 + + model = sm.GLM(y, x, family=fam) + result = model.fit() + + # CB is for linear predictor or mean response + for linear in False, True: + + true = true_lp if linear else true_mean + + values = {'const': 1, "x2": 0} + summaries = {"x3": np.mean} + pred1, cb1, fvals1 = predict_functional(result, "x1", + values=values, summaries=summaries, linear=linear) + pred2, cb2, fvals2 = predict_functional(result, "x1", + values=values, summaries=summaries, + ci_method='simultaneous', linear=linear) + + plt.clf() + fig = plt.figure() + ax = plt.axes([0.1, 0.1, 0.58, 0.8]) + plt.plot(fvals1, pred1, '-', color='black', label='Estimate') + plt.plot(fvals1, true * np.ones(len(pred1)), '-', color='purple', + label='Truth') + plt.plot(fvals1, cb1[:, 0], color='blue', label='Pointwise CB') + plt.plot(fvals1, cb1[:, 1], color='blue') + plt.plot(fvals2, cb2[:, 0], color='green', label='Simultaneous CB') + plt.plot(fvals2, cb2[:, 1], color='green') + ha, lb = ax.get_legend_handles_labels() + leg = plt.figlegend(ha, lb, "center right") + leg.draw_frame(False) + plt.xlabel("Focus variable", size=15) + if linear: + plt.ylabel("Linear predictor", size=15) + else: + plt.ylabel("Fitted mean", size=15) + plt.title("%s family prediction" % fam_name.capitalize()) + + self.close_or_save(fig) + + + @dec.skipif(not have_matplotlib) + def test_glm_formula(self): + + np.random.seed(542) + n = 500 + x1 = np.random.normal(size=n) + x2 = np.random.normal(size=n) + x3 = np.random.randint(0, 3, size=n) + x3 = np.asarray(["ABC"[i] for i in x3]) + lin_pred = -1 + 0.5*x1**2 + (x3 == "B") + prob = 1 / (1 + np.exp(-lin_pred)) + y = 1 * (np.random.uniform(size=n) < prob) + + df = pd.DataFrame({"y": y, "x1": x1, "x2": x2, "x3": x3}) + + fml = "y ~ x1 + I(x1**2) + x2 + C(x3)" + model = sm.GLM.from_formula(fml, family=sm.families.Binomial(), data=df) + result = model.fit() + summaries = {"x2": np.mean} + + for linear in False, True: + + values = {"x3": "B"} + pr1, ci1, fvals1 = predict_functional(result, "x1", summaries, values, linear=linear) + + values = {"x3": "C"} + pr2, ci2, fvals2 = predict_functional(result, "x1", summaries, values, linear=linear) + + exact1 = -1 + 0.5*fvals1**2 + 1 + exact2 = -1 + 0.5*fvals2**2 + + if not linear: + exact1 = 1 / (1 + np.exp(-exact1)) + exact2 = 1 / (1 + np.exp(-exact2)) + + plt.clf() + fig = plt.figure() + ax = plt.axes([0.1, 0.1, 0.7, 0.8]) + plt.plot(fvals1, pr1, '-', label='x3=B') + plt.plot(fvals2, pr2, '-', label='x3=C') + plt.plot(fvals1, exact1, '-', label='x3=B (exact)') + plt.plot(fvals2, exact2, '-', label='x3=C (exact)') + ha, lb = ax.get_legend_handles_labels() + plt.figlegend(ha, lb, "center right") + plt.xlabel("Focus variable", size=15) + if linear: + plt.ylabel("Fitted linear predictor", size=15) + else: + plt.ylabel("Fitted probability", size=15) + plt.title("Binomial GLM prediction") + self.close_or_save(fig) + + plt.clf() + fig = plt.figure() + ax = plt.axes([0.1, 0.1, 0.7, 0.8]) + plt.plot(fvals1, pr1, '-', label='x3=B', color='orange') + plt.fill_between(fvals1, ci1[:, 0], ci1[:, 1], color='grey') + plt.plot(fvals2, pr2, '-', label='x3=C', color='lime') + plt.fill_between(fvals2, ci2[:, 0], ci2[:, 1], color='grey') + ha, lb = ax.get_legend_handles_labels() + plt.figlegend(ha, lb, "center right") + plt.xlabel("Focus variable", size=15) + if linear: + plt.ylabel("Fitted linear predictor", size=15) + else: + plt.ylabel("Fitted probability", size=15) + plt.title("Binomial GLM prediction") + self.close_or_save(fig) + + + @dec.skipif(not have_matplotlib) + def test_noformula_prediction(self): + + np.random.seed(6434) + n = 200 + x1 = np.random.normal(size=n) + x2 = np.random.normal(size=n) + x3 = np.random.normal(size=n) + y = x1 - x2 + np.random.normal(size=n) + + exog = np.vstack((x1, x2, x3)).T + + model = sm.OLS(y, exog) + result = model.fit() + + summaries = {"x3": pctl(0.75)} + values = {"x2": 1} + pr1, ci1, fvals1 = predict_functional(result, "x1", summaries, values) + + values = {"x2": -1} + pr2, ci2, fvals2 = predict_functional(result, "x1", summaries, values) + + plt.clf() + fig = plt.figure() + ax = plt.axes([0.1, 0.1, 0.7, 0.8]) + plt.plot(fvals1, pr1, '-', label='x2=1', lw=4, alpha=0.6, color='orange') + plt.plot(fvals2, pr2, '-', label='x2=-1', lw=4, alpha=0.6, color='lime') + ha, lb = ax.get_legend_handles_labels() + leg = plt.figlegend(ha, lb, "center right") + leg.draw_frame(False) + plt.xlabel("Focus variable", size=15) + plt.ylabel("Fitted mean", size=15) + plt.title("Linear model prediction") + self.close_or_save(fig) + + plt.clf() + fig = plt.figure() + ax = plt.axes([0.1, 0.1, 0.7, 0.8]) + plt.plot(fvals1, pr1, '-', label='x2=1', lw=4, alpha=0.6, color='orange') + plt.fill_between(fvals1, ci1[:, 0], ci1[:, 1], color='grey') + plt.plot(fvals1, pr2, '-', label='x2=1', lw=4, alpha=0.6, color='lime') + plt.fill_between(fvals2, ci2[:, 0], ci2[:, 1], color='grey') + ha, lb = ax.get_legend_handles_labels() + plt.figlegend(ha, lb, "center right") + plt.xlabel("Focus variable", size=15) + plt.ylabel("Fitted mean", size=15) + plt.title("Linear model prediction") + self.close_or_save(fig) diff --git a/statsmodels/sandbox/tools/TODO.txt b/statsmodels/sandbox/tools/TODO.txt new file mode 100644 index 0000000..6da243a --- /dev/null +++ b/statsmodels/sandbox/tools/TODO.txt @@ -0,0 +1,76 @@ + + + +* make groupstats into a class with additional functions for easy access + use bincount but loop over 2d, or maybe two versions 1d,2d (or nd?) + similar to groupbys + class GroupStats + init with label data + attributes/properties on demand: mean, var, callback, devfrommean, meanarr, vararr + does var need bias option ? yes? + def groupmean(label, data) + def groupvar(label, data) + def groupnormalize(label, data, reweight = True) + + +* ANOVA wrapper usage example + discussed on mailing list and proposed by Skipper + create design matrix + create restriction matrices for F tests, t tests + ? normalization redundant ? + reports ANOVA style + +* maybe: quick helpers for structured arrays and masked arrays + formula for selection of variables + specification for which variable are factors + Anova(y, use='x1;x2;x3', factors='x2', data = dataarray) + or + Anova(y, use='x1; x2:F; x3', data = dataarray) + + masked arrays need row compression + + +* meta object + for variable names, and .... ? + +* OLSR, OLS with linear restriction -> design changes ? + need to overwrite params_cov calculation - move it back to models + +* regression: OLS, WLS + - add prediction + + +* Granger causality test: which test statistic, F test is easiest, LR, Wald ? -> easy + in R: example in Wikipedia + +* get lag matrix helper function to use lagged dependent and lagged independent regressors + +* nonlinear hypothesis tests for the estimate parameters, delta method ? -> easy, but derivatives by hand w/o sympy + +* minimal PCA, PCR, or PLS (NIPALS): interesting also for finance but not urgent -> messy multiplicity of definitions ? + +* non-linear least squares: + use/imitate scipy.interpolate curvefit + full set of results statistics + +* tests -> needed + - GLSAR: check, R's gls + - ARMA: check R for arma, e.g. dynamo, also look more closely at GARCH_UCSD (BSD) and offspring (license ?) + +* other models in draft stage -> requires cleaning + - gaussian process -> might fit in + - multinomial logit -> requires ML, result statistics don't fit into current classes ? + +* stochastic processes, time series -> first step is relatively easy + more simulators, random process generators, for fun and Monte Carlo and testing + estimators to follow + first group GARCH, + continuous time: not until I need them + +* other multivariate analysis + discriminance, factor analysis, more anova: not my business + +* MLE, GMM: big open question -> needs to wait until we have more code that uses it + difference of approaches + - parametric assumptions, distributions fully specified - problem misspecification + - efficient estimation with full information MLE + -> example panel data, yogurt paper diff --git a/statsmodels/sandbox/tools/__init__.py b/statsmodels/sandbox/tools/__init__.py new file mode 100644 index 0000000..dbc2370 --- /dev/null +++ b/statsmodels/sandbox/tools/__init__.py @@ -0,0 +1,10 @@ +'''some helper function for principal component and time series analysis + + +Status +------ +pca : tested against matlab +pcasvd : tested against matlab +''' + +from .tools_pca import * #pca, pcasvd diff --git a/statsmodels/sandbox/tools/cross_val.py b/statsmodels/sandbox/tools/cross_val.py new file mode 100644 index 0000000..aae945d --- /dev/null +++ b/statsmodels/sandbox/tools/cross_val.py @@ -0,0 +1,372 @@ +""" +Utilities for cross validation. + +taken from scikits.learn + +# Author: Alexandre Gramfort , +# Gael Varoquaux +# License: BSD Style. +# $Id$ + +changes to code by josef-pktd: + - docstring formatting: underlines of headers + +""" + +from statsmodels.compat.python import range, lrange +import numpy as np +from itertools import combinations + + +################################################################################ +class LeaveOneOut(object): + """ + Leave-One-Out cross validation iterator: + Provides train/test indexes to split data in train test sets + """ + + def __init__(self, n): + """ + Leave-One-Out cross validation iterator: + Provides train/test indexes to split data in train test sets + + Parameters + ---------- + n: int + Total number of elements + + Examples + -------- + >>> from scikits.learn import cross_val + >>> X = [[1, 2], [3, 4]] + >>> y = [1, 2] + >>> loo = cross_val.LeaveOneOut(2) + >>> for train_index, test_index in loo: + ... print "TRAIN:", train_index, "TEST:", test_index + ... X_train, X_test, y_train, y_test = cross_val.split(train_index, test_index, X, y) + ... print X_train, X_test, y_train, y_test + TRAIN: [False True] TEST: [ True False] + [[3 4]] [[1 2]] [2] [1] + TRAIN: [ True False] TEST: [False True] + [[1 2]] [[3 4]] [1] [2] + """ + self.n = n + + + def __iter__(self): + n = self.n + for i in range(n): + test_index = np.zeros(n, dtype=np.bool) + test_index[i] = True + train_index = np.logical_not(test_index) + yield train_index, test_index + + + def __repr__(self): + return '%s.%s(n=%i)' % (self.__class__.__module__, + self.__class__.__name__, + self.n, + ) + + + +################################################################################ +class LeavePOut(object): + """ + Leave-P-Out cross validation iterator: + Provides train/test indexes to split data in train test sets + + """ + + def __init__(self, n, p): + """ + Leave-P-Out cross validation iterator: + Provides train/test indexes to split data in train test sets + + Parameters + ---------- + n: int + Total number of elements + p: int + Size test sets + + Examples + -------- + >>> from scikits.learn import cross_val + >>> X = [[1, 2], [3, 4], [5, 6], [7, 8]] + >>> y = [1, 2, 3, 4] + >>> lpo = cross_val.LeavePOut(4, 2) + >>> for train_index, test_index in lpo: + ... print "TRAIN:", train_index, "TEST:", test_index + ... X_train, X_test, y_train, y_test = cross_val.split(train_index, test_index, X, y) + TRAIN: [False False True True] TEST: [ True True False False] + TRAIN: [False True False True] TEST: [ True False True False] + TRAIN: [False True True False] TEST: [ True False False True] + TRAIN: [ True False False True] TEST: [False True True False] + TRAIN: [ True False True False] TEST: [False True False True] + TRAIN: [ True True False False] TEST: [False False True True] + """ + self.n = n + self.p = p + + + def __iter__(self): + n = self.n + p = self.p + comb = combinations(lrange(n), p) + for idx in comb: + test_index = np.zeros(n, dtype=np.bool) + test_index[np.array(idx)] = True + train_index = np.logical_not(test_index) + yield train_index, test_index + + + def __repr__(self): + return '%s.%s(n=%i, p=%i)' % ( + self.__class__.__module__, + self.__class__.__name__, + self.n, + self.p, + ) + + +################################################################################ +class KFold(object): + """ + K-Folds cross validation iterator: + Provides train/test indexes to split data in train test sets + """ + + def __init__(self, n, k): + """ + K-Folds cross validation iterator: + Provides train/test indexes to split data in train test sets + + Parameters + ---------- + n: int + Total number of elements + k: int + number of folds + + Examples + -------- + >>> from scikits.learn import cross_val + >>> X = [[1, 2], [3, 4], [1, 2], [3, 4]] + >>> y = [1, 2, 3, 4] + >>> kf = cross_val.KFold(4, k=2) + >>> for train_index, test_index in kf: + ... print "TRAIN:", train_index, "TEST:", test_index + ... X_train, X_test, y_train, y_test = cross_val.split(train_index, test_index, X, y) + TRAIN: [False False True True] TEST: [ True True False False] + TRAIN: [ True True False False] TEST: [False False True True] + + Notes + ----- + All the folds have size trunc(n/k), the last one has the complementary + """ + assert k>0, ValueError('cannot have k below 1') + assert k>> from scikits.learn import cross_val + >>> X = [[1, 2], [3, 4], [5, 6], [7, 8]] + >>> y = [1, 2, 1, 2] + >>> labels = [1, 1, 2, 2] + >>> lol = cross_val.LeaveOneLabelOut(labels) + >>> for train_index, test_index in lol: + ... print "TRAIN:", train_index, "TEST:", test_index + ... X_train, X_test, y_train, y_test = cross_val.split(train_index, \ + test_index, X, y) + ... print X_train, X_test, y_train, y_test + TRAIN: [False False True True] TEST: [ True True False False] + [[5 6] + [7 8]] [[1 2] + [3 4]] [1 2] [1 2] + TRAIN: [ True True False False] TEST: [False False True True] + [[1 2] + [3 4]] [[5 6] + [7 8]] [1 2] [1 2] + + """ + self.labels = labels + + + def __iter__(self): + # We make a copy here to avoid side-effects during iteration + labels = np.array(self.labels, copy=True) + for i in np.unique(labels): + test_index = np.zeros(len(labels), dtype=np.bool) + test_index[labels==i] = True + train_index = np.logical_not(test_index) + yield train_index, test_index + + + def __repr__(self): + return '%s.%s(labels=%s)' % ( + self.__class__.__module__, + self.__class__.__name__, + self.labels, + ) + + +def split(train_indexes, test_indexes, *args): + """ + For each arg return a train and test subsets defined by indexes provided + in train_indexes and test_indexes + """ + ret = [] + for arg in args: + arg = np.asanyarray(arg) + arg_train = arg[train_indexes] + arg_test = arg[test_indexes] + ret.append(arg_train) + ret.append(arg_test) + return ret + +''' + >>> cv = cross_val.LeaveOneLabelOut(X, y) # y making y optional and +possible to add other arrays of the same shape[0] too + >>> for X_train, y_train, X_test, y_test in cv: + ... print np.sqrt((model.fit(X_train, y_train).predict(X_test) +- y_test) ** 2).mean()) +''' + + +################################################################################ +#below: Author: josef-pktd + +class KStepAhead(object): + """ + KStepAhead cross validation iterator: + Provides fit/test indexes to split data in sequential sets + """ + + def __init__(self, n, k=1, start=None, kall=True, return_slice=True): + """ + KStepAhead cross validation iterator: + Provides train/test indexes to split data in train test sets + + Parameters + ---------- + n: int + Total number of elements + k : int + number of steps ahead + start : int + initial size of data for fitting + kall : boolean + if true. all values for up to k-step ahead are included in the test index. + If false, then only the k-th step ahead value is returnd + + + Notes + ----- + I don't think this is really useful, because it can be done with + a very simple loop instead. + Useful as a plugin, but it could return slices instead for faster array access. + + Examples + -------- + >>> from scikits.learn import cross_val + >>> X = [[1, 2], [3, 4]] + >>> y = [1, 2] + >>> loo = cross_val.LeaveOneOut(2) + >>> for train_index, test_index in loo: + ... print "TRAIN:", train_index, "TEST:", test_index + ... X_train, X_test, y_train, y_test = cross_val.split(train_index, test_index, X, y) + ... print X_train, X_test, y_train, y_test + TRAIN: [False True] TEST: [ True False] + [[3 4]] [[1 2]] [2] [1] + TRAIN: [ True False] TEST: [False True] + [[1 2]] [[3 4]] [1] [2] + """ + self.n = n + self.k = k + if start is None: + start = int(np.trunc(n*0.25)) # pick something arbitrary + self.start = start + self.kall = kall + self.return_slice = return_slice + + + def __iter__(self): + n = self.n + k = self.k + start = self.start + if self.return_slice: + for i in range(start, n-k): + train_slice = slice(None, i, None) + if self.kall: + test_slice = slice(i, i+k) + else: + test_slice = slice(i+k-1, i+k) + yield train_slice, test_slice + + else: #for compatibility with other iterators + for i in range(start, n-k): + train_index = np.zeros(n, dtype=np.bool) + train_index[:i] = True + test_index = np.zeros(n, dtype=np.bool) + if self.kall: + test_index[i:i+k] = True # np.logical_not(test_index) + else: + test_index[i+k-1:i+k] = True + #or faster to return np.arange(i,i+k) ? + #returning slice should be faster in this case + yield train_index, test_index + + + def __repr__(self): + return '%s.%s(n=%i)' % (self.__class__.__module__, + self.__class__.__name__, + self.n, + ) + + + diff --git a/statsmodels/sandbox/tools/mctools.py b/statsmodels/sandbox/tools/mctools.py new file mode 100644 index 0000000..a25fc9b --- /dev/null +++ b/statsmodels/sandbox/tools/mctools.py @@ -0,0 +1,529 @@ +'''Helper class for Monte Carlo Studies for (currently) statistical tests + +Most of it should also be usable for Bootstrap, and for MC for estimators. +Takes the sample generator, dgb, and the statistical results, statistic, +as functions in the argument. + + +Author: Josef Perktold (josef-pktd) +License: BSD-3 + + +TODOs, Design +------------- +If we only care about univariate analysis, i.e. marginal if statistics returns +more than one value, the we only need to store the sorted mcres not the +original res. Do we want to extend to multivariate analysis? + +Use distribution function to keep track of MC results, ECDF, non-paramatric? +Large parts are similar to a 2d array of independent multivariate random +variables. Joint distribution is not used (yet). + +I guess this is currently only for one sided test statistics, e.g. for +two-sided tests basend on t or normal distribution use the absolute value. + +''' +from __future__ import print_function +from statsmodels.compat.python import lrange +import numpy as np + +from statsmodels.iolib.table import SimpleTable + +#copied from stattools +class StatTestMC(object): + """class to run Monte Carlo study on a statistical test''' + + TODO + print(summary, for quantiles and for histogram + draft in trying out script log + + Parameters + ---------- + dgp : callable + Function that generates the data to be used in Monte Carlo that should + return a new sample with each call + statistic : callable + Function that calculates the test statistic, which can return either + a single statistic or a 1d array_like (tuple, list, ndarray). + see also statindices in description of run + + Attributes + ---------- + many methods store intermediate results + + self.mcres : ndarray (nrepl, nreturns) or (nrepl, len(statindices)) + Monte Carlo results stored by run + + + Notes + ----- + + .. Warning:: + This is (currently) designed for a single call to run. If run is + called a second time with different arguments, then some attributes might + not be updated, and, therefore, not correspond to the same run. + + .. Warning:: + Under Construction, don't expect stability in Api or implementation + + + Examples + -------- + + Define a function that defines our test statistic: + + def lb(x): + s,p = acorr_ljungbox(x, lags=4) + return np.r_[s, p] + + Note lb returns eight values. + + Define a random sample generator, for example 500 independently, normal + distributed observations in a sample: + + + def normalnoisesim(nobs=500, loc=0.0): + return (loc+np.random.randn(nobs)) + + Create instance and run Monte Carlo. Using statindices=list(range(4)) means that + only the first for values of the return of the statistic (lb) are stored + in the Monte Carlo results. + + mc1 = StatTestMC(normalnoisesim, lb) + mc1.run(5000, statindices=list(range(4))) + + Most of the other methods take an idx which indicates for which columns + the results should be presented, e.g. + + print(mc1.cdf(crit, [1,2,3])[1] + + + """ + + def __init__(self, dgp, statistic): + self.dgp = dgp #staticmethod(dgp) #no self + self.statistic = statistic # staticmethod(statistic) #no self + + def run(self, nrepl, statindices=None, dgpargs=[], statsargs=[]): + '''run the actual Monte Carlo and save results + + Parameters + ---------- + nrepl : int + number of Monte Carlo repetitions + statindices : None or list of integers + determines which values of the return of the statistic + functions are stored in the Monte Carlo. Default None + means the entire return. If statindices is a list of + integers, then it will be used as index into the return. + dgpargs : tuple + optional parameters for the DGP + statsargs : tuple + optional parameters for the statistics function + + Returns + ------- + None, all results are attached + + + ''' + self.nrepl = nrepl + self.statindices = statindices + self.dgpargs = dgpargs + self.statsargs = statsargs + + dgp = self.dgp + statfun = self.statistic # name ? + #introspect len of return of statfun, + #possible problems with ndim>1, check ValueError + mcres0 = statfun(dgp(*dgpargs), *statsargs) + self.nreturn = nreturns = len(np.ravel(mcres0)) + + #single return statistic + if statindices is None: + #self.nreturn = nreturns = 1 + mcres = np.zeros(nrepl) + mcres[0] = mcres0 + for ii in range(1, repl-1, nreturns): + x = dgp(*dgpargs) #(1e-4+np.random.randn(nobs)).cumsum() + #should I ravel? + mcres[ii] = statfun(x, *statsargs) #unitroot_adf(x, 2,trendorder=0, autolag=None) + #more than one return statistic + else: + self.nreturn = nreturns = len(statindices) + self.mcres = mcres = np.zeros((nrepl, nreturns)) + mcres[0] = [mcres0[i] for i in statindices] + for ii in range(1, nrepl-1): + x = dgp(*dgpargs) #(1e-4+np.random.randn(nobs)).cumsum() + ret = statfun(x, *statsargs) + mcres[ii] = [ret[i] for i in statindices] + + self.mcres = mcres + + + def histogram(self, idx=None, critval=None): + '''calculate histogram values + + does not do any plotting + + I don't remember what I wanted here, looks similar to the new cdf + method, but this also does a binned pdf (self.histo) + + + ''' + if self.mcres.ndim == 2: + if not idx is None: + mcres = self.mcres[:,idx] + else: + raise ValueError('currently only 1 statistic at a time') + else: + mcres = self.mcres + + if critval is None: + histo = np.histogram(mcres, bins=10) + else: + if not critval[0] == -np.inf: + bins=np.r_[-np.inf, critval, np.inf] + if not critval[0] == -np.inf: + bins=np.r_[bins, np.inf] + histo = np.histogram(mcres, + bins=np.r_[-np.inf, critval, np.inf]) + + self.histo = histo + self.cumhisto = np.cumsum(histo[0])*1./self.nrepl + self.cumhistoreversed = np.cumsum(histo[0][::-1])[::-1]*1./self.nrepl + return histo, self.cumhisto, self.cumhistoreversed + + #use cache decorator instead + def get_mc_sorted(self): + if not hasattr(self, 'mcressort'): + self.mcressort = np.sort(self.mcres, axis=0) + return self.mcressort + + + def quantiles(self, idx=None, frac=[0.01, 0.025, 0.05, 0.1, 0.975]): + '''calculate quantiles of Monte Carlo results + + similar to ppf + + Parameters + ---------- + idx : None or list of integers + List of indices into the Monte Carlo results (columns) that should + be used in the calculation + frac : array_like, float + Defines which quantiles should be calculated. For example a frac + of 0.1 finds the 10% quantile, x such that cdf(x)=0.1 + + Returns + ------- + frac : ndarray + same values as input, TODO: I should drop this again ? + quantiles : ndarray, (len(frac), len(idx)) + the quantiles with frac in rows and idx variables in columns + + Notes + ----- + + rename to ppf ? make frac required + change sequence idx, frac + + + ''' + + if self.mcres.ndim == 2: + if not idx is None: + mcres = self.mcres[:,idx] + else: + raise ValueError('currently only 1 statistic at a time') + else: + mcres = self.mcres + + self.frac = frac = np.asarray(frac) + + mc_sorted = self.get_mc_sorted()[:,idx] + return frac, mc_sorted[(self.nrepl*frac).astype(int)] + + def cdf(self, x, idx=None): + '''calculate cumulative probabilities of Monte Carlo results + + Parameters + ---------- + idx : None or list of integers + List of indices into the Monte Carlo results (columns) that should + be used in the calculation + frac : array_like, float + Defines which quantiles should be calculated. For example a frac + of 0.1 finds the 10% quantile, x such that cdf(x)=0.1 + + Returns + ------- + x : ndarray + same as input, TODO: I should drop this again ? + probs : ndarray, (len(x), len(idx)) + the quantiles with frac in rows and idx variables in columns + + + + ''' + idx = np.atleast_1d(idx).tolist() #assure iterable, use list ? + +# if self.mcres.ndim == 2: +# if not idx is None: +# mcres = self.mcres[:,idx] +# else: +# raise ValueError('currently only 1 statistic at a time') +# else: +# mcres = self.mcres + + mc_sorted = self.get_mc_sorted() + + x = np.asarray(x) + #TODO:autodetect or explicit option ? + if x.ndim > 1 and x.shape[1]==len(idx): + use_xi = True + else: + use_xi = False + + x_ = x #alias + probs = [] + for i,ix in enumerate(idx): + if use_xi: + x_ = x[:,i] + probs.append(np.searchsorted(mc_sorted[:,ix], x_)/float(self.nrepl)) + probs = np.asarray(probs).T + return x, probs + + def plot_hist(self, idx, distpdf=None, bins=50, ax=None, kwds=None): + '''plot the histogram against a reference distribution + + Parameters + ---------- + idx : None or list of integers + List of indices into the Monte Carlo results (columns) that should + be used in the calculation + distpdf : callable + probability density function of reference distribution + bins : integer or array_like + used unchanged for matplotlibs hist call + ax : TODO: not implemented yet + kwds : None or tuple of dicts + extra keyword options to the calls to the matplotlib functions, + first dictionary is for his, second dictionary for plot of the + reference distribution + + Returns + ------- + None + + + ''' + if kwds is None: + kwds = ({},{}) + if self.mcres.ndim == 2: + if not idx is None: + mcres = self.mcres[:,idx] + else: + raise ValueError('currently only 1 statistic at a time') + else: + mcres = self.mcres + + lsp = np.linspace(mcres.min(), mcres.max(), 100) + + + import matplotlib.pyplot as plt + #I don't want to figure this out now +# if ax=None: +# fig = plt.figure() +# ax = fig.addaxis() + fig = plt.figure() + plt.hist(mcres, bins=bins, normed=True, **kwds[0]) + plt.plot(lsp, distpdf(lsp), 'r', **kwds[1]) + + + def summary_quantiles(self, idx, distppf, frac=[0.01, 0.025, 0.05, 0.1, 0.975], + varnames=None, title=None): + '''summary table for quantiles (critical values) + + Parameters + ---------- + idx : None or list of integers + List of indices into the Monte Carlo results (columns) that should + be used in the calculation + distppf : callable + probability density function of reference distribution + TODO: use `crit` values instead or additional, see summary_cdf + frac : array_like, float + probabilities for which + varnames : None, or list of strings + optional list of variable names, same length as idx + + Returns + ------- + table : instance of SimpleTable + use `print(table` to see results + + ''' + idx = np.atleast_1d(idx) #assure iterable, use list ? + + quant, mcq = self.quantiles(idx, frac=frac) + #not sure whether this will work with single quantile + #crit = stats.chi2([2,4]).ppf(np.atleast_2d(quant).T) + crit = distppf(np.atleast_2d(quant).T) + mml=[] + for i, ix in enumerate(idx): #TODO: hardcoded 2 ? + mml.extend([mcq[:,i], crit[:,i]]) + #mmlar = np.column_stack(mml) + mmlar = np.column_stack([quant] + mml) + #print(mmlar.shape + if title: + title = title +' Quantiles (critical values)' + else: + title='Quantiles (critical values)' + #TODO use stub instead + if varnames is None: + varnames = ['var%d' % i for i in range(mmlar.shape[1]//2)] + headers = ['\nprob'] + ['%s\n%s' % (i, t) for i in varnames for t in ['mc', 'dist']] + return SimpleTable(mmlar, + txt_fmt={'data_fmts': ["%#6.3f"]+["%#10.4f"]*(mmlar.shape[1]-1)}, + title=title, + headers=headers) + + def summary_cdf(self, idx, frac, crit, varnames=None, title=None): + '''summary table for cumulative density function + + + Parameters + ---------- + idx : None or list of integers + List of indices into the Monte Carlo results (columns) that should + be used in the calculation + frac : array_like, float + probabilities for which + crit : array_like + values for which cdf is calculated + varnames : None, or list of strings + optional list of variable names, same length as idx + + Returns + ------- + table : instance of SimpleTable + use `print(table` to see results + + + ''' + idx = np.atleast_1d(idx) #assure iterable, use list ? + + + mml=[] + #TODO:need broadcasting in cdf + for i in range(len(idx)): + #print(i, mc1.cdf(crit[:,i], [idx[i]])[1].ravel() + mml.append(self.cdf(crit[:,i], [idx[i]])[1].ravel()) + #mml = self.cdf(crit, idx)[1] + #mmlar = np.column_stack(mml) + #print(mml[0].shape, np.shape(frac) + mmlar = np.column_stack([frac] + mml) + #print(mmlar.shape + if title: + title = title +' Probabilites' + else: + title='Probabilities' + #TODO use stub instead + #headers = ['\nprob'] + ['var%d\n%s' % (i, t) for i in range(mmlar.shape[1]-1) for t in ['mc']] + + if varnames is None: + varnames = ['var%d' % i for i in range(mmlar.shape[1]-1)] + headers = ['prob'] + varnames + return SimpleTable(mmlar, + txt_fmt={'data_fmts': ["%#6.3f"]+["%#10.4f"]*(np.array(mml).shape[1]-1)}, + title=title, + headers=headers) + + + + + + + + + +if __name__ == '__main__': + from scipy import stats + from statsmodels.iolib.table import SimpleTable + + from statsmodels.sandbox.stats.diagnostic import ( + acorr_ljungbox, unitroot_adf) + + + def randwalksim(nobs=100, drift=0.0): + return (drift+np.random.randn(nobs)).cumsum() + + def normalnoisesim(nobs=500, loc=0.0): + return (loc+np.random.randn(nobs)) + + def adf20(x): + return unitroot_adf(x, 2,trendorder=0, autolag=None) + +# print('\nResults with MC class' +# mc1 = StatTestMC(randwalksim, adf20) +# mc1.run(1000) +# print(mc1.histogram(critval=[-3.5, -3.17, -2.9 , -2.58, 0.26]) +# print(mc1.quantiles() + + print('\nLjung Box') + from statsmodels.sandbox.stats.diagnostic import acorr_ljungbox + + def lb4(x): + s,p = acorr_ljungbox(x, lags=4) + return s[-1], p[-1] + + def lb1(x): + s,p = acorr_ljungbox(x, lags=1) + return s[0], p[0] + + def lb(x): + s,p = acorr_ljungbox(x, lags=4) + return np.r_[s, p] + + print('Results with MC class') + mc1 = StatTestMC(normalnoisesim, lb) + mc1.run(10000, statindices=lrange(8)) + print(mc1.histogram(1, critval=[0.01, 0.025, 0.05, 0.1, 0.975])) + print(mc1.quantiles(1)) + print(mc1.quantiles(0)) + print(mc1.histogram(0)) + + #print(mc1.summary_quantiles([1], stats.chi2([2]).ppf, title='acorr_ljungbox') + print(mc1.summary_quantiles([1,2,3], stats.chi2([2,3,4]).ppf, + varnames=['lag 1', 'lag 2', 'lag 3'], + title='acorr_ljungbox')) + print(mc1.cdf(0.1026, 1)) + print(mc1.cdf(0.7278, 3)) + + print(mc1.cdf(0.7278, [1,2,3])) + frac = [0.01, 0.025, 0.05, 0.1, 0.975] + crit = stats.chi2([2,4]).ppf(np.atleast_2d(frac).T) + print(mc1.summary_cdf([1,3], frac, crit, title='acorr_ljungbox')) + crit = stats.chi2([2,3,4]).ppf(np.atleast_2d(frac).T) + print(mc1.summary_cdf([1,2,3], frac, crit, + varnames=['lag 1', 'lag 2', 'lag 3'], + title='acorr_ljungbox')) + + print(mc1.cdf(crit, [1,2,3])[1].shape) + + #fixed broadcasting in cdf Done 2d only + ''' + >>> mc1.cdf(crit[:,0], [1])[1].shape + (5, 1) + >>> mc1.cdf(crit[:,0], [1,3])[1].shape + (5, 2) + >>> mc1.cdf(crit[:,:], [1,3])[1].shape + (2, 5, 2) + ''' + + doplot=0 + if doplot: + import matplotlib.pyplot as plt + mc1.plot_hist(0,stats.chi2(2).pdf) #which pdf + plt.show() diff --git a/statsmodels/sandbox/tools/tools_pca.py b/statsmodels/sandbox/tools/tools_pca.py new file mode 100644 index 0000000..107c6e4 --- /dev/null +++ b/statsmodels/sandbox/tools/tools_pca.py @@ -0,0 +1,148 @@ +# -*- coding: utf-8 -*- +"""Principal Component Analysis + + +Created on Tue Sep 29 20:11:23 2009 +Author: josef-pktd + +TODO : add class for better reuse of results +""" + +import numpy as np + + +def pca(data, keepdim=0, normalize=0, demean=True): + '''principal components with eigenvector decomposition + similar to princomp in matlab + + Parameters + ---------- + data : ndarray, 2d + data with observations by rows and variables in columns + keepdim : integer + number of eigenvectors to keep + if keepdim is zero, then all eigenvectors are included + normalize : boolean + if true, then eigenvectors are normalized by sqrt of eigenvalues + demean : boolean + if true, then the column mean is subtracted from the data + + Returns + ------- + xreduced : ndarray, 2d, (nobs, nvars) + projection of the data x on the kept eigenvectors + factors : ndarray, 2d, (nobs, nfactors) + factor matrix, given by np.dot(x, evecs) + evals : ndarray, 2d, (nobs, nfactors) + eigenvalues + evecs : ndarray, 2d, (nobs, nfactors) + eigenvectors, normalized if normalize is true + + Notes + ----- + + See Also + -------- + pcasvd : principal component analysis using svd + + ''' + x = np.array(data) + #make copy so original doesn't change, maybe not necessary anymore + if demean: + m = x.mean(0) + else: + m = np.zeros(x.shape[1]) + x -= m + + # Covariance matrix + xcov = np.cov(x, rowvar=0) + + # Compute eigenvalues and sort into descending order + evals, evecs = np.linalg.eig(xcov) + indices = np.argsort(evals) + indices = indices[::-1] + evecs = evecs[:,indices] + evals = evals[indices] + + if keepdim > 0 and keepdim < x.shape[1]: + evecs = evecs[:,:keepdim] + evals = evals[:keepdim] + + if normalize: + #for i in range(shape(evecs)[1]): + # evecs[:,i] / linalg.norm(evecs[:,i]) * sqrt(evals[i]) + evecs = evecs/np.sqrt(evals) #np.sqrt(np.dot(evecs.T, evecs) * evals) + + # get factor matrix + #x = np.dot(evecs.T, x.T) + factors = np.dot(x, evecs) + # get original data from reduced number of components + #xreduced = np.dot(evecs.T, factors) + m + #print x.shape, factors.shape, evecs.shape, m.shape + xreduced = np.dot(factors, evecs.T) + m + return xreduced, factors, evals, evecs + + + +def pcasvd(data, keepdim=0, demean=True): + '''principal components with svd + + Parameters + ---------- + data : ndarray, 2d + data with observations by rows and variables in columns + keepdim : integer + number of eigenvectors to keep + if keepdim is zero, then all eigenvectors are included + demean : boolean + if true, then the column mean is subtracted from the data + + Returns + ------- + xreduced : ndarray, 2d, (nobs, nvars) + projection of the data x on the kept eigenvectors + factors : ndarray, 2d, (nobs, nfactors) + factor matrix, given by np.dot(x, evecs) + evals : ndarray, 2d, (nobs, nfactors) + eigenvalues + evecs : ndarray, 2d, (nobs, nfactors) + eigenvectors, normalized if normalize is true + + See Also + ------- + pca : principal component analysis using eigenvector decomposition + + Notes + ----- + This doesn't have yet the normalize option of pca. + + ''' + nobs, nvars = data.shape + #print nobs, nvars, keepdim + x = np.array(data) + #make copy so original doesn't change + if demean: + m = x.mean(0) + else: + m = 0 +## if keepdim == 0: +## keepdim = nvars +## "print reassigning keepdim to max", keepdim + x -= m + U, s, v = np.linalg.svd(x.T, full_matrices=1) + factors = np.dot(U.T, x.T).T #princomps + if keepdim: + xreduced = np.dot(factors[:,:keepdim], U[:,:keepdim].T) + m + else: + xreduced = data + keepdim = nvars + "print reassigning keepdim to max", keepdim + + # s = evals, U = evecs + # no idea why denominator for s is with minus 1 + evals = s**2/(x.shape[0]-1) + #print keepdim + return xreduced, factors[:,:keepdim], evals[:keepdim], U[:,:keepdim] #, v + + +__all__ = ['pca', 'pcasvd'] diff --git a/statsmodels/sandbox/tools/try_mctools.py b/statsmodels/sandbox/tools/try_mctools.py new file mode 100644 index 0000000..ef9e85c --- /dev/null +++ b/statsmodels/sandbox/tools/try_mctools.py @@ -0,0 +1,70 @@ +# -*- coding: utf-8 -*- +""" +Created on Fri Sep 30 15:20:45 2011 + +@author: josef +""" +from statsmodels.compat.python import lrange +import numpy as np +from scipy import stats +from statsmodels.sandbox.tools.mctools import StatTestMC +from statsmodels.sandbox.stats.diagnostic import ( + acorr_ljungbox, unitroot_adf) + +def normalnoisesim(nobs=500, loc=0.0): + return (loc+np.random.randn(nobs)) + + +def lb(x): + s,p = acorr_ljungbox(x, lags=4) + return np.r_[s, p] + + +mc1 = StatTestMC(normalnoisesim, lb) +mc1.run(5000, statindices=lrange(4)) + +print(mc1.summary_quantiles([1,2,3], stats.chi2([2,3,4]).ppf, + varnames=['lag 1', 'lag 2', 'lag 3'], + title='acorr_ljungbox')) +print('\n\n') + +frac = [0.01, 0.025, 0.05, 0.1, 0.975] +crit = stats.chi2([2,3,4]).ppf(np.atleast_2d(frac).T) +print(mc1.summary_cdf([1,2,3], frac, crit, + varnames=['lag 1', 'lag 2', 'lag 3'], + title='acorr_ljungbox')) +print(mc1.cdf(crit, [1,2,3])[1]) + +#---------------------- + +def randwalksim(nobs=500, drift=0.0): + return (drift+np.random.randn(nobs)).cumsum() + +def adf20(x): + return unitroot_adf(x, 2, trendorder=0, autolag=None) + +print(adf20(np.random.randn(100))) + +mc2 = StatTestMC(randwalksim, adf20) +mc2.run(10000, statindices=[0,1]) +frac = [0.01, 0.05, 0.1] +#bug +crit = np.array([-3.4996365338407074, -2.8918307730370025, -2.5829283377617176])[:,None] +print(mc2.summary_cdf([0], frac, crit, + varnames=['adf'], + title='adf')) +#bug +#crit2 = np.column_stack((crit, frac)) +#print mc2.summary_cdf([0, 1], frac, crit, +# varnames=['adf'], +# title='adf') + +print(mc2.quantiles([0])) +print(mc2.cdf(crit, [0])) + +doplot=1 +if doplot: + import matplotlib.pyplot as plt + mc1.plot_hist([3],stats.chi2([4]).pdf) + plt.title('acorr_ljungbox - MC versus chi2') + plt.show() diff --git a/statsmodels/sandbox/tsa/__init__.py b/statsmodels/sandbox/tsa/__init__.py new file mode 100644 index 0000000..5bf6eee --- /dev/null +++ b/statsmodels/sandbox/tsa/__init__.py @@ -0,0 +1,52 @@ +'''functions and classes time series analysis + + +Status +------ +work in progress + +arima.py +^^^^^^^^ + +ARIMA : initial class, uses conditional least squares, needs merging with new class +arma2ar +arma2ma +arma_acf +arma_acovf +arma_generate_sample +arma_impulse_response +deconvolve +index2lpol +lpol2index +mcarma22 + +movstat.py +^^^^^^^^^^ + +I had tested the next group against matlab, but where are the tests ? +acf +acovf +ccf +ccovf +pacf_ols +pacf_yw + +These hat incorrect array size, were my first implementation, slow compared +to cumsum version in la and cython version in pandas. +These need checking, and merging/comparing with new class MovStats +check_movorder +expandarr +movmean : +movmoment : corrected cutoff +movorder +movvar + + + + +''' + + +#from arima import * +from .movstat import * +#from stattools import * diff --git a/statsmodels/sandbox/tsa/diffusion.py b/statsmodels/sandbox/tsa/diffusion.py new file mode 100644 index 0000000..a2138cb --- /dev/null +++ b/statsmodels/sandbox/tsa/diffusion.py @@ -0,0 +1,591 @@ +'''getting started with diffusions, continuous time stochastic processes + +Author: josef-pktd +License: BSD + + +References +---------- + +An Algorithmic Introduction to Numerical Simulation of Stochastic Differential +Equations +Author(s): Desmond J. Higham +Source: SIAM Review, Vol. 43, No. 3 (Sep., 2001), pp. 525-546 +Published by: Society for Industrial and Applied Mathematics +Stable URL: http://www.jstor.org/stable/3649798 + +http://www.sitmo.com/ especially the formula collection + + +Notes +----- + +OU process: use same trick for ARMA with constant (non-zero mean) and drift +some of the processes have easy multivariate extensions + +*Open Issues* + +include xzero in returned sample or not? currently not + +*TODOS* + +* Milstein from Higham paper, for which processes does it apply +* Maximum Likelihood estimation +* more statistical properties (useful for tests) +* helper functions for display and MonteCarlo summaries (also for testing/checking) +* more processes for the menagerie (e.g. from empirical papers) +* characteristic functions +* transformations, non-linear e.g. log +* special estimators, e.g. Ait Sahalia, empirical characteristic functions +* fft examples +* check naming of methods, "simulate", "sample", "simexact", ... ? + + + +stochastic volatility models: estimation unclear + +finance applications ? option pricing, interest rate models + + +''' +from __future__ import print_function +import numpy as np +from scipy import stats, signal +import matplotlib.pyplot as plt + +#np.random.seed(987656789) + +class Diffusion(object): + '''Wiener Process, Brownian Motion with mu=0 and sigma=1 + ''' + def __init__(self): + pass + + def simulateW(self, nobs=100, T=1, dt=None, nrepl=1): + '''generate sample of Wiener Process + ''' + dt = T*1.0/nobs + t = np.linspace(dt, 1, nobs) + dW = np.sqrt(dt)*np.random.normal(size=(nrepl, nobs)) + W = np.cumsum(dW,1) + self.dW = dW + return W, t + + def expectedsim(self, func, nobs=100, T=1, dt=None, nrepl=1): + '''get expectation of a function of a Wiener Process by simulation + + initially test example from + ''' + W, t = self.simulateW(nobs=nobs, T=T, dt=dt, nrepl=nrepl) + U = func(t, W) + Umean = U.mean(0) + return U, Umean, t + +class AffineDiffusion(Diffusion): + ''' + + differential equation: + + :math:: + dx_t = f(t,x)dt + \sigma(t,x)dW_t + + integral: + + :math:: + x_T = x_0 + \\int_{0}^{T}f(t,S)dt + \\int_0^T \\sigma(t,S)dW_t + + TODO: check definition, affine, what about jump diffusion? + + ''' + + def __init__(self): + pass + + def sim(self, nobs=100, T=1, dt=None, nrepl=1): + # this doesn't look correct if drift or sig depend on x + # see arithmetic BM + W, t = self.simulateW(nobs=nobs, T=T, dt=dt, nrepl=nrepl) + dx = self._drift() + self._sig() * W + x = np.cumsum(dx,1) + xmean = x.mean(0) + return x, xmean, t + + def simEM(self, xzero=None, nobs=100, T=1, dt=None, nrepl=1, Tratio=4): + ''' + + from Higham 2001 + + TODO: reverse parameterization to start with final nobs and DT + TODO: check if I can skip the loop using my way from exactprocess + problem might be Winc (reshape into 3d and sum) + TODO: (later) check memory efficiency for large simulations + ''' + #TODO: reverse parameterization to start with final nobs and DT + nobs = nobs * Tratio # simple way to change parameter + # maybe wrong parameterization, + # drift too large, variance too small ? which dt/Dt + # _drift, _sig independent of dt is wrong + if xzero is None: + xzero = self.xzero + if dt is None: + dt = T*1.0/nobs + W, t = self.simulateW(nobs=nobs, T=T, dt=dt, nrepl=nrepl) + dW = self.dW + t = np.linspace(dt, 1, nobs) + Dt = Tratio*dt; + L = nobs/Tratio; # L EM steps of size Dt = R*dt + Xem = np.zeros((nrepl,L)); # preallocate for efficiency + Xtemp = xzero + Xem[:,0] = xzero + for j in np.arange(1,L): + #Winc = np.sum(dW[:,Tratio*(j-1)+1:Tratio*j],1) + Winc = np.sum(dW[:,np.arange(Tratio*(j-1)+1,Tratio*j)],1) + #Xtemp = Xtemp + Dt*lamda*Xtemp + mu*Xtemp*Winc; + Xtemp = Xtemp + self._drift(x=Xtemp) + self._sig(x=Xtemp) * Winc + #Dt*lamda*Xtemp + mu*Xtemp*Winc; + Xem[:,j] = Xtemp + return Xem + +''' + R = 4; Dt = R*dt; L = N/R; % L EM steps of size Dt = R*dt + Xem = zeros(1,L); % preallocate for efficiency + Xtemp = Xzero; + for j = 1:L + Winc = sum(dW(R*(j-1)+1:R*j)); + Xtemp = Xtemp + Dt*lambda*Xtemp + mu*Xtemp*Winc; + Xem(j) = Xtemp; + end +''' + +class ExactDiffusion(AffineDiffusion): + '''Diffusion that has an exact integral representation + + this is currently mainly for geometric, log processes + + ''' + + def __init__(self): + pass + + def exactprocess(self, xzero, nobs, ddt=1., nrepl=2): + '''ddt : discrete delta t + + + + should be the same as an AR(1) + not tested yet + ''' + t = np.linspace(ddt, nobs*ddt, nobs) + #expnt = np.exp(-self.lambd * t) + expddt = np.exp(-self.lambd * ddt) + normrvs = np.random.normal(size=(nrepl,nobs)) + #do I need lfilter here AR(1) ? if mean reverting lag-coeff<1 + #lfilter doesn't handle 2d arrays, it does? + inc = self._exactconst(expddt) + self._exactstd(expddt) * normrvs + return signal.lfilter([1.], [1.,-expddt], inc) + + def exactdist(self, xzero, t): + expnt = np.exp(-self.lambd * t) + meant = xzero * expnt + self._exactconst(expnt) + stdt = self._exactstd(expnt) + return stats.norm(loc=meant, scale=stdt) + +class ArithmeticBrownian(AffineDiffusion): + ''' + :math:: + dx_t &= \\mu dt + \\sigma dW_t + ''' + + def __init__(self, xzero, mu, sigma): + self.xzero = xzero + self.mu = mu + self.sigma = sigma + + def _drift(self, *args, **kwds): + return self.mu + def _sig(self, *args, **kwds): + return self.sigma + def exactprocess(self, nobs, xzero=None, ddt=1., nrepl=2): + '''ddt : discrete delta t + + not tested yet + ''' + if xzero is None: + xzero = self.xzero + t = np.linspace(ddt, nobs*ddt, nobs) + normrvs = np.random.normal(size=(nrepl,nobs)) + inc = self._drift + self._sigma * np.sqrt(ddt) * normrvs + #return signal.lfilter([1.], [1.,-1], inc) + return xzero + np.cumsum(inc,1) + + def exactdist(self, xzero, t): + expnt = np.exp(-self.lambd * t) + meant = self._drift * t + stdt = self._sigma * np.sqrt(t) + return stats.norm(loc=meant, scale=stdt) + + +class GeometricBrownian(AffineDiffusion): + '''Geometric Brownian Motion + + :math:: + dx_t &= \\mu x_t dt + \\sigma x_t dW_t + + $x_t $ stochastic process of Geometric Brownian motion, + $\mu $ is the drift, + $\sigma $ is the Volatility, + $W$ is the Wiener process (Brownian motion). + + ''' + def __init__(self, xzero, mu, sigma): + self.xzero = xzero + self.mu = mu + self.sigma = sigma + + def _drift(self, *args, **kwds): + x = kwds['x'] + return self.mu * x + def _sig(self, *args, **kwds): + x = kwds['x'] + return self.sigma * x + + +class OUprocess(AffineDiffusion): + '''Ornstein-Uhlenbeck + + :math:: + dx_t&=\\lambda(\\mu - x_t)dt+\\sigma dW_t + + mean reverting process + + + + TODO: move exact higher up in class hierarchy + ''' + def __init__(self, xzero, mu, lambd, sigma): + self.xzero = xzero + self.lambd = lambd + self.mu = mu + self.sigma = sigma + + def _drift(self, *args, **kwds): + x = kwds['x'] + return self.lambd * (self.mu - x) + def _sig(self, *args, **kwds): + x = kwds['x'] + return self.sigma * x + def exact(self, xzero, t, normrvs): + #TODO: aggregate over time for process with observations for all t + # i.e. exact conditional distribution for discrete time increment + # -> exactprocess + #TODO: for single t, return stats.norm -> exactdist + expnt = np.exp(-self.lambd * t) + return (xzero * expnt + self.mu * (1-expnt) + + self.sigma * np.sqrt((1-expnt*expnt)/2./self.lambd) * normrvs) + + def exactprocess(self, xzero, nobs, ddt=1., nrepl=2): + '''ddt : discrete delta t + + should be the same as an AR(1) + not tested yet + # after writing this I saw the same use of lfilter in sitmo + ''' + t = np.linspace(ddt, nobs*ddt, nobs) + expnt = np.exp(-self.lambd * t) + expddt = np.exp(-self.lambd * ddt) + normrvs = np.random.normal(size=(nrepl,nobs)) + #do I need lfilter here AR(1) ? lfilter doesn't handle 2d arrays, it does? + from scipy import signal + #xzero * expnt + inc = ( self.mu * (1-expddt) + + self.sigma * np.sqrt((1-expddt*expddt)/2./self.lambd) * normrvs ) + + return signal.lfilter([1.], [1.,-expddt], inc) + + + def exactdist(self, xzero, t): + #TODO: aggregate over time for process with observations for all t + #TODO: for single t, return stats.norm + expnt = np.exp(-self.lambd * t) + meant = xzero * expnt + self.mu * (1-expnt) + stdt = self.sigma * np.sqrt((1-expnt*expnt)/2./self.lambd) + from scipy import stats + return stats.norm(loc=meant, scale=stdt) + + def fitls(self, data, dt): + '''assumes data is 1d, univariate time series + formula from sitmo + ''' + # brute force, no parameter estimation errors + nobs = len(data)-1 + exog = np.column_stack((np.ones(nobs), data[:-1])) + parest, res, rank, sing = np.linalg.lstsq(exog, data[1:]) + const, slope = parest + errvar = res/(nobs-2.) + lambd = -np.log(slope)/dt + sigma = np.sqrt(-errvar * 2.*np.log(slope)/ (1-slope**2)/dt) + mu = const / (1-slope) + return mu, lambd, sigma + + +class SchwartzOne(ExactDiffusion): + '''the Schwartz type 1 stochastic process + + :math:: + dx_t = \\kappa (\\mu - \\ln x_t) x_t dt + \\sigma x_tdW \\ + + The Schwartz type 1 process is a log of the Ornstein-Uhlenbeck stochastic + process. + + ''' + + def __init__(self, xzero, mu, kappa, sigma): + self.xzero = xzero + self.mu = mu + self.kappa = kappa + self.lambd = kappa #alias until I fix exact + self.sigma = sigma + + def _exactconst(self, expnt): + return (1-expnt) * (self.mu - self.sigma**2 / 2. /self.kappa) + + def _exactstd(self, expnt): + return self.sigma * np.sqrt((1-expnt*expnt)/2./self.kappa) + + def exactprocess(self, xzero, nobs, ddt=1., nrepl=2): + '''uses exact solution for log of process + ''' + lnxzero = np.log(xzero) + lnx = super(self.__class__, self).exactprocess(xzero, nobs, ddt=ddt, nrepl=nrepl) + return np.exp(lnx) + + def exactdist(self, xzero, t): + expnt = np.exp(-self.lambd * t) + #TODO: check this is still wrong, just guessing + meant = np.log(xzero) * expnt + self._exactconst(expnt) + stdt = self._exactstd(expnt) + return stats.lognorm(loc=meant, scale=stdt) + + def fitls(self, data, dt): + '''assumes data is 1d, univariate time series + formula from sitmo + ''' + # brute force, no parameter estimation errors + nobs = len(data)-1 + exog = np.column_stack((np.ones(nobs),np.log(data[:-1]))) + parest, res, rank, sing = np.linalg.lstsq(exog, np.log(data[1:])) + const, slope = parest + errvar = res/(nobs-2.) #check denominator estimate, of sigma too low + kappa = -np.log(slope)/dt + sigma = np.sqrt(errvar * kappa / (1-np.exp(-2*kappa*dt))) + mu = const / (1-np.exp(-kappa*dt)) + sigma**2/2./kappa + if np.shape(mu)== (1,): mu = mu[0] # how to remove scalar array ? + if np.shape(sigma)== (1,): sigma = sigma[0] + #mu, kappa are good, sigma too small + return mu, kappa, sigma + + + +class BrownianBridge(object): + def __init__(self): + pass + + def simulate(self, x0, x1, nobs, nrepl=1, ddt=1., sigma=1.): + nobs=nobs+1 + dt = ddt*1./nobs + t = np.linspace(dt, ddt-dt, nobs) + t = np.linspace(dt, ddt, nobs) + wm = [t/ddt, 1-t/ddt] + #wmi = wm[1] + #wm1 = x1*wm[0] + wmi = 1-dt/(ddt-t) + wm1 = x1*(dt/(ddt-t)) + su = sigma* np.sqrt(t*(1-t)/ddt) + s = sigma* np.sqrt(dt*(ddt-t-dt)/(ddt-t)) + x = np.zeros((nrepl, nobs)) + x[:,0] = x0 + rvs = s*np.random.normal(size=(nrepl,nobs)) + for i in range(1,nobs): + x[:,i] = x[:,i-1]*wmi[i] + wm1[i] + rvs[:,i] + return x, t, su + + +class CompoundPoisson(object): + '''nobs iid compound poisson distributions, not a process in time + ''' + def __init__(self, lambd, randfn=np.random.normal): + if len(lambd) != len(randfn): + raise ValueError('lambd and randfn need to have the same number of elements') + + self.nobj = len(lambd) + self.randfn = randfn + self.lambd = np.asarray(lambd) + + def simulate(self, nobs, nrepl=1): + nobj = self.nobj + x = np.zeros((nrepl, nobs, nobj)) + N = np.random.poisson(self.lambd[None,None,:], size=(nrepl,nobs,nobj)) + for io in range(nobj): + randfnc = self.randfn[io] + + nc = N[:,:,io] + #print nrepl,nobs,nc + #xio = randfnc(size=(nrepl,nobs,np.max(nc))).cumsum(-1)[np.arange(nrepl)[:,None],np.arange(nobs),nc-1] + rvs = randfnc(size=(nrepl,nobs,np.max(nc))) + print('rvs.sum()', rvs.sum(), rvs.shape) + xio = rvs.cumsum(-1)[np.arange(nrepl)[:,None],np.arange(nobs),nc-1] + #print xio.shape + x[:,:,io] = xio + x[N==0] = 0 + return x, N + + + + + + + + + +''' +randn('state',100) % set the state of randn +T = 1; N = 500; dt = T/N; t = [dt:dt:1]; + +M = 1000; % M paths simultaneously +dW = sqrt(dt)*randn(M,N); % increments +W = cumsum(dW,2); % cumulative sum +U = exp(repmat(t,[M 1]) + 0.5*W); +Umean = mean(U); +plot([0,t],[1,Umean],'b-'), hold on % plot mean over M paths +plot([0,t],[ones(5,1),U(1:5,:)],'r--'), hold off % plot 5 individual paths +xlabel('t','FontSize',16) +ylabel('U(t)','FontSize',16,'Rotation',0,'HorizontalAlignment','right') +legend('mean of 1000 paths','5 individual paths',2) + +averr = norm((Umean - exp(9*t/8)),'inf') % sample error +''' + +if __name__ == '__main__': + doplot = 1 + nrepl = 1000 + examples = []#['all'] + + if 'all' in examples: + w = Diffusion() + + # Wiener Process + # ^^^^^^^^^^^^^^ + + ws = w.simulateW(1000, nrepl=nrepl) + if doplot: + plt.figure() + tmp = plt.plot(ws[0].T) + tmp = plt.plot(ws[0].mean(0), linewidth=2) + plt.title('Standard Brownian Motion (Wiener Process)') + + func = lambda t, W: np.exp(t + 0.5*W) + us = w.expectedsim(func, nobs=500, nrepl=nrepl) + if doplot: + plt.figure() + tmp = plt.plot(us[0].T) + tmp = plt.plot(us[1], linewidth=2) + plt.title('Brownian Motion - exp') + #plt.show() + averr = np.linalg.norm(us[1] - np.exp(9*us[2]/8.), np.inf) + print(averr) + #print us[1][:10] + #print np.exp(9.*us[2][:10]/8.) + + # Geometric Brownian + # ^^^^^^^^^^^^^^^^^^ + + gb = GeometricBrownian(xzero=1., mu=0.01, sigma=0.5) + gbs = gb.simEM(nobs=100, nrepl=100) + if doplot: + plt.figure() + tmp = plt.plot(gbs.T) + tmp = plt.plot(gbs.mean(0), linewidth=2) + plt.title('Geometric Brownian') + plt.figure() + tmp = plt.plot(np.log(gbs).T) + tmp = plt.plot(np.log(gbs.mean(0)), linewidth=2) + plt.title('Geometric Brownian - log-transformed') + + ab = ArithmeticBrownian(xzero=1, mu=0.05, sigma=1) + abs = ab.simEM(nobs=100, nrepl=100) + if doplot: + plt.figure() + tmp = plt.plot(abs.T) + tmp = plt.plot(abs.mean(0), linewidth=2) + plt.title('Arithmetic Brownian') + + # Ornstein-Uhlenbeck + # ^^^^^^^^^^^^^^^^^^ + + ou = OUprocess(xzero=2, mu=1, lambd=0.5, sigma=0.1) + ous = ou.simEM() + oue = ou.exact(1, 1, np.random.normal(size=(5,10))) + ou.exact(0, np.linspace(0,10,10/0.1), 0) + ou.exactprocess(0,10) + print(ou.exactprocess(0,10, ddt=0.1,nrepl=10).mean(0)) + #the following looks good, approaches mu + oues = ou.exactprocess(0,100, ddt=0.1,nrepl=100) + if doplot: + plt.figure() + tmp = plt.plot(oues.T) + tmp = plt.plot(oues.mean(0), linewidth=2) + plt.title('Ornstein-Uhlenbeck') + + # SchwartsOne + # ^^^^^^^^^^^ + + so = SchwartzOne(xzero=0, mu=1, kappa=0.5, sigma=0.1) + sos = so.exactprocess(0,50, ddt=0.1,nrepl=100) + print(sos.mean(0)) + print(np.log(sos.mean(0))) + doplot = 1 + if doplot: + plt.figure() + tmp = plt.plot(sos.T) + tmp = plt.plot(sos.mean(0), linewidth=2) + plt.title('Schwartz One') + print(so.fitls(sos[0,:],dt=0.1)) + sos2 = so.exactprocess(0,500, ddt=0.1,nrepl=5) + print('true: mu=1, kappa=0.5, sigma=0.1') + for i in range(5): + print(so.fitls(sos2[i],dt=0.1)) + + + + # Brownian Bridge + # ^^^^^^^^^^^^^^^ + + bb = BrownianBridge() + #bbs = bb.sample(x0, x1, nobs, nrepl=1, ddt=1., sigma=1.) + bbs, t, wm = bb.simulate(0, 0.5, 99, nrepl=500, ddt=1., sigma=0.1) + if doplot: + plt.figure() + tmp = plt.plot(bbs.T) + tmp = plt.plot(bbs.mean(0), linewidth=2) + plt.title('Brownian Bridge') + plt.figure() + plt.plot(wm,'r', label='theoretical') + plt.plot(bbs.std(0), label='simulated') + plt.title('Brownian Bridge - Variance') + plt.legend() + + # Compound Poisson + # ^^^^^^^^^^^^^^^^ + cp = CompoundPoisson([1,1], [np.random.normal,np.random.normal]) + cps = cp.simulate(nobs=20000,nrepl=3) + print(cps[0].sum(-1).sum(-1)) + print(cps[0].sum()) + print(cps[0].mean(-1).mean(-1)) + print(cps[0].mean()) + print(cps[1].size) + print(cps[1].sum()) + #Note Y = sum^{N} X is compound poisson of iid x, then + #E(Y) = E(N)*E(X) eg. eq. (6.37) page 385 in http://ee.stanford.edu/~gray/sp.html + + + #plt.show() diff --git a/statsmodels/sandbox/tsa/diffusion2.py b/statsmodels/sandbox/tsa/diffusion2.py new file mode 100644 index 0000000..26521cc --- /dev/null +++ b/statsmodels/sandbox/tsa/diffusion2.py @@ -0,0 +1,505 @@ +""" Diffusion 2: jump diffusion, stochastic volatility, stochastic time + +Created on Tue Dec 08 15:03:49 2009 + +Author: josef-pktd following Meucci +License: BSD + +contains: + +CIRSubordinatedBrownian +Heston +IG +JumpDiffusionKou +JumpDiffusionMerton +NIG +VG + +References +---------- + +Attilio Meucci, Review of Discrete and Continuous Processes in Finance: Theory and Applications +Bloomberg Portfolio Research Paper No. 2009-02-CLASSROOM July 1, 2009 +http://papers.ssrn.com/sol3/papers.cfm?abstract_id=1373102 + + + + +this is currently mostly a translation from matlab of +http://www.mathworks.com/matlabcentral/fileexchange/23554-review-of-discrete-and-continuous-processes-in-finance +license BSD: + +Copyright (c) 2008, Attilio Meucci +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the distribution + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + + + +TODO: + +* vectorize where possible +* which processes are exactly simulated by finite differences ? +* include or exclude (now) the initial observation ? +* convert to and merge with diffusion.py (part 1 of diffusions) +* which processes can be easily estimated ? + loglike or characteristic function ? +* tests ? check for possible index errors (random indices), graphs look ok +* adjust notation, variable names, more consistent, more pythonic +* delete a few unused lines, cleanup +* docstrings + + +random bug (showed up only once, need fuzz-testing to replicate) + File "...\diffusion2.py", line 375, in + x = jd.simulate(mu,sigma,lambd,a,D,ts,nrepl) + File "...\diffusion2.py", line 129, in simulate + jumps_ts[n] = CumS[Events] +IndexError: index out of bounds + +CumS is empty array, Events == -1 + + +""" + + +import numpy as np +#from scipy import stats # currently only uses np.random +import matplotlib.pyplot as plt + +class JumpDiffusionMerton(object): + ''' + + Example + ------- + mu=.00 # deterministic drift + sig=.20 # Gaussian component + l=3.45 # Poisson process arrival rate + a=0 # drift of log-jump + D=.2 # st.dev of log-jump + + X = JumpDiffusionMerton().simulate(mu,sig,lambd,a,D,ts,nrepl) + + plt.figure() + plt.plot(X.T) + plt.title('Merton jump-diffusion') + + + ''' + + def __init__(self): + pass + + + def simulate(self, m,s,lambd,a,D,ts,nrepl): + + T = ts[-1] # time points + # simulate number of jumps + n_jumps = np.random.poisson(lambd*T, size=(nrepl, 1)) + + jumps=[] + nobs=len(ts) + jumps=np.zeros((nrepl,nobs)) + for j in range(nrepl): + # simulate jump arrival time + t = T*np.random.rand(n_jumps[j])#,1) #uniform + t = np.sort(t,0) + + # simulate jump size + S = a + D*np.random.randn(n_jumps[j],1) + + # put things together + CumS = np.cumsum(S) + jumps_ts = np.zeros(nobs) + for n in range(nobs): + Events = np.sum(t<=ts[n])-1 + #print n, Events, CumS.shape, jumps_ts.shape + jumps_ts[n]=0 + if Events > 0: + jumps_ts[n] = CumS[Events] #TODO: out of bounds see top + + #jumps = np.column_stack((jumps, jumps_ts)) #maybe wrong transl + jumps[j,:] = jumps_ts + + + D_Diff = np.zeros((nrepl,nobs)) + for k in range(nobs): + Dt=ts[k] + if k>1: + Dt=ts[k]-ts[k-1] + D_Diff[:,k]=m*Dt + s*np.sqrt(Dt)*np.random.randn(nrepl) + + x = np.hstack((np.zeros((nrepl,1)),np.cumsum(D_Diff,1)+jumps)) + + return x + +class JumpDiffusionKou(object): + + def __init__(self): + pass + + def simulate(self, m,s,lambd,p,e1,e2,ts,nrepl): + + T=ts[-1] + # simulate number of jumps + N = np.random.poisson(lambd*T,size =(nrepl,1)) + + jumps=[] + nobs=len(ts) + jumps=np.zeros((nrepl,nobs)) + for j in range(nrepl): + # simulate jump arrival time + t=T*np.random.rand(N[j]) + t=np.sort(t) + + # simulate jump size + ww = np.random.binomial(1, p, size=(N[j])) + S = ww * np.random.exponential(e1, size=(N[j])) - \ + (1-ww) * np.random.exponential(e2, N[j]) + + # put things together + CumS = np.cumsum(S) + jumps_ts = np.zeros(nobs) + for n in range(nobs): + Events = sum(t<=ts[n])-1 + jumps_ts[n]=0 + if Events: + jumps_ts[n]=CumS[Events] + + jumps[j,:] = jumps_ts + + D_Diff = np.zeros((nrepl,nobs)) + for k in range(nobs): + Dt=ts[k] + if k>1: + Dt=ts[k]-ts[k-1] + + D_Diff[:,k]=m*Dt + s*np.sqrt(Dt)*np.random.normal(size=nrepl) + + x = np.hstack((np.zeros((nrepl,1)),np.cumsum(D_Diff,1)+jumps)) + return x + + +class VG(object): + '''variance gamma process + ''' + + def __init__(self): + pass + + def simulate(self, m,s,kappa,ts,nrepl): + + T=len(ts) + dXs = np.zeros((nrepl,T)) + for t in range(T): + dt=ts[1]-0 + if t>1: + dt = ts[t]-ts[t-1] + + #print dt/kappa + #TODO: check parameterization of gamrnd, checked looks same as np + + d_tau = kappa * np.random.gamma(dt/kappa,1.,size=(nrepl)) + #print s*np.sqrt(d_tau) + # this raises exception: + #dX = stats.norm.rvs(m*d_tau,(s*np.sqrt(d_tau))) + # np.random.normal requires scale >0 + dX = np.random.normal(loc=m*d_tau, scale=1e-6+s*np.sqrt(d_tau)) + + dXs[:,t] = dX + + x = np.cumsum(dXs,1) + return x + +class IG(object): + '''inverse-Gaussian ??? used by NIG + ''' + + def __init__(self): + pass + + def simulate(self, l,m,nrepl): + + N = np.random.randn(nrepl,1) + Y = N**2 + X = m + (.5*m*m/l)*Y - (.5*m/l)*np.sqrt(4*m*l*Y+m*m*(Y**2)) + U = np.random.rand(nrepl,1) + + ind = U>m/(X+m) + X[ind] = m*m/X[ind] + return X.ravel() + + +class NIG(object): + '''normal-inverse-Gaussian + ''' + + def __init__(self): + pass + + def simulate(self, th,k,s,ts,nrepl): + + T = len(ts) + DXs = np.zeros((nrepl,T)) + for t in range(T): + Dt=ts[1]-0 + if t>1: + Dt=ts[t]-ts[t-1] + + l = 1/k*(Dt**2) + m = Dt + DS = IG().simulate(l,m,nrepl) + N = np.random.randn(nrepl) + + DX = s*N*np.sqrt(DS) + th*DS + #print DS.shape, DX.shape, DXs.shape + DXs[:,t] = DX + + x = np.cumsum(DXs,1) + return x + +class Heston(object): + '''Heston Stochastic Volatility + ''' + + def __init__(self): + pass + + def simulate(self, m, kappa, eta,lambd,r, ts, nrepl,tratio=1.): + T = ts[-1] + nobs = len(ts) + dt = np.zeros(nobs) #/tratio + dt[0] = ts[0]-0 + dt[1:] = np.diff(ts) + + DXs = np.zeros((nrepl,nobs)) + + dB_1 = np.sqrt(dt) * np.random.randn(nrepl,nobs) + dB_2u = np.sqrt(dt) * np.random.randn(nrepl,nobs) + dB_2 = r*dB_1 + np.sqrt(1-r**2)*dB_2u + + vt = eta*np.ones(nrepl) + v=[] + dXs = np.zeros((nrepl,nobs)) + vts = np.zeros((nrepl,nobs)) + for t in range(nobs): + dv = kappa*(eta-vt)*dt[t]+ lambd*np.sqrt(vt)*dB_2[:,t] + dX = m*dt[t] + np.sqrt(vt*dt[t]) * dB_1[:,t] + vt = vt + dv + + vts[:,t] = vt + dXs[:,t] = dX + + x = np.cumsum(dXs,1) + return x, vts + +class CIRSubordinatedBrownian(object): + '''CIR subordinated Brownian Motion + ''' + + def __init__(self): + pass + + def simulate(self, m, kappa, T_dot,lambd,sigma, ts, nrepl): + T = ts[-1] + nobs = len(ts) + dtarr = np.zeros(nobs) #/tratio + dtarr[0] = ts[0]-0 + dtarr[1:] = np.diff(ts) + + DXs = np.zeros((nrepl,nobs)) + + dB = np.sqrt(dtarr) * np.random.randn(nrepl,nobs) + + yt = 1. + dXs = np.zeros((nrepl,nobs)) + dtaus = np.zeros((nrepl,nobs)) + y = np.zeros((nrepl,nobs)) + for t in range(nobs): + dt = dtarr[t] + dy = kappa*(T_dot-yt)*dt + lambd*np.sqrt(yt)*dB[:,t] + yt = np.maximum(yt+dy,1e-10) # keep away from zero ? + + dtau = np.maximum(yt*dt, 1e-6) + dX = np.random.normal(loc=m*dtau, scale=sigma*np.sqrt(dtau)) + + y[:,t] = yt + dtaus[:,t] = dtau + dXs[:,t] = dX + + tau = np.cumsum(dtaus,1) + x = np.cumsum(dXs,1) + return x, tau, y + +def schout2contank(a,b,d): + + th = d*b/np.sqrt(a**2-b**2) + k = 1/(d*np.sqrt(a**2-b**2)) + s = np.sqrt(d/np.sqrt(a**2-b**2)) + return th,k,s + + +if __name__ == '__main__': + + #Merton Jump Diffusion + #^^^^^^^^^^^^^^^^^^^^^ + + # grid of time values at which the process is evaluated + #("0" will be added, too) + nobs = 252.#1000 #252. + ts = np.linspace(1./nobs, 1., nobs) + nrepl=5 # number of simulations + mu=.010 # deterministic drift + sigma = .020 # Gaussian component + lambd = 3.45 *10 # Poisson process arrival rate + a=0 # drift of log-jump + D=.2 # st.dev of log-jump + jd = JumpDiffusionMerton() + x = jd.simulate(mu,sigma,lambd,a,D,ts,nrepl) + plt.figure() + plt.plot(x.T) #Todo + plt.title('Merton jump-diffusion') + + sigma = 0.2 + lambd = 3.45 + x = jd.simulate(mu,sigma,lambd,a,D,ts,nrepl) + plt.figure() + plt.plot(x.T) #Todo + plt.title('Merton jump-diffusion') + + #Kou jump diffusion + #^^^^^^^^^^^^^^^^^^ + + mu=.0 # deterministic drift + lambd=4.25 # Poisson process arrival rate + p=.5 # prob. of up-jump + e1=.2 # parameter of up-jump + e2=.3 # parameter of down-jump + sig=.2 # Gaussian component + + x = JumpDiffusionKou().simulate(mu,sig,lambd,p,e1,e2,ts,nrepl) + + plt.figure() + plt.plot(x.T) #Todo + plt.title('double exponential (Kou jump diffusion)') + + #variance-gamma + #^^^^^^^^^^^^^^ + mu = .1 # deterministic drift in subordinated Brownian motion + kappa = 1. #10. #1 # inverse for gamma shape parameter + sig = 0.5 #.2 # s.dev in subordinated Brownian motion + + x = VG().simulate(mu,sig,kappa,ts,nrepl) + plt.figure() + plt.plot(x.T) #Todo + plt.title('variance gamma') + + + #normal-inverse-Gaussian + #^^^^^^^^^^^^^^^^^^^^^^^ + + # (Schoutens notation) + al = 2.1 + be = 0 + de = 1 + # convert parameters to Cont-Tankov notation + th,k,s = schout2contank(al,be,de) + + x = NIG().simulate(th,k,s,ts,nrepl) + + plt.figure() + plt.plot(x.T) #Todo x-axis + plt.title('normal-inverse-Gaussian') + + #Heston Stochastic Volatility + #^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + m=.0 + kappa = .6 # 2*Kappa*Eta>Lambda^2 + eta = .3**2 + lambd =.25 + r = -.7 + T = 20. + nobs = 252.*T#1000 #252. + tsh = np.linspace(T/nobs, T, nobs) + x, vts = Heston().simulate(m,kappa, eta,lambd,r, tsh, nrepl, tratio=20.) + + plt.figure() + plt.plot(x.T) + plt.title('Heston Stochastic Volatility') + + plt.figure() + plt.plot(np.sqrt(vts).T) + plt.title('Heston Stochastic Volatility - CIR Vol.') + + plt.figure() + plt.subplot(2,1,1) + plt.plot(x[0]) + plt.title('Heston Stochastic Volatility process') + plt.subplot(2,1,2) + plt.plot(np.sqrt(vts[0])) + plt.title('CIR Volatility') + + + #CIR subordinated Brownian + #^^^^^^^^^^^^^^^^^^^^^^^^^ + m=.1 + sigma=.4 + + kappa=.6 # 2*Kappa*T_dot>Lambda^2 + T_dot=1 + lambd=1 + #T=252*10 + #dt=1/252 + #nrepl=2 + T = 10. + nobs = 252.*T#1000 #252. + tsh = np.linspace(T/nobs, T, nobs) + x, tau, y = CIRSubordinatedBrownian().simulate(m, kappa, T_dot,lambd,sigma, tsh, nrepl) + + plt.figure() + plt.plot(tsh, x.T) + plt.title('CIRSubordinatedBrownian process') + + plt.figure() + plt.plot(tsh, y.T) + plt.title('CIRSubordinatedBrownian - CIR') + + plt.figure() + plt.plot(tsh, tau.T) + plt.title('CIRSubordinatedBrownian - stochastic time ') + + plt.figure() + plt.subplot(2,1,1) + plt.plot(tsh, x[0]) + plt.title('CIRSubordinatedBrownian process') + plt.subplot(2,1,2) + plt.plot(tsh, y[0], label='CIR') + plt.plot(tsh, tau[0], label='stoch. time') + plt.legend(loc='upper left') + plt.title('CIRSubordinatedBrownian') + + #plt.show() + + + diff --git a/statsmodels/sandbox/tsa/example_arma.py b/statsmodels/sandbox/tsa/example_arma.py new file mode 100644 index 0000000..44840e4 --- /dev/null +++ b/statsmodels/sandbox/tsa/example_arma.py @@ -0,0 +1,409 @@ +'''trying to verify theoretical acf of arma + +explicit functions for autocovariance functions of ARIMA(1,1), MA(1), MA(2) +plus 3 functions from nitime.utils + +''' +from __future__ import print_function +from statsmodels.compat.python import range +import numpy as np +from numpy.testing import assert_array_almost_equal + +import matplotlib.mlab as mlab + +from statsmodels.tsa.arima_process import arma_generate_sample, arma_impulse_response +from statsmodels.tsa.arima_process import arma_acovf, arma_acf, ARIMA +#from movstat import acf, acovf +#from statsmodels.sandbox.tsa import acf, acovf, pacf +from statsmodels.tsa.stattools import acf, acovf, pacf + +ar = [1., -0.6] +#ar = [1., 0.] +ma = [1., 0.4] +#ma = [1., 0.4, 0.6] +#ma = [1., 0.] +mod = ''#'ma2' +x = arma_generate_sample(ar, ma, 5000) +x_acf = acf(x)[:10] +x_ir = arma_impulse_response(ar, ma) + +#print x_acf[:10] +#print x_ir[:10] +#irc2 = np.correlate(x_ir,x_ir,'full')[len(x_ir)-1:] +#print irc2[:10] +#print irc2[:10]/irc2[0] +#print irc2[:10-1] / irc2[1:10] +#print x_acf[:10-1] / x_acf[1:10] + +# detrend helper from matplotlib.mlab +def detrend(x, key=None): + if key is None or key=='constant': + return detrend_mean(x) + elif key=='linear': + return detrend_linear(x) + +def demean(x, axis=0): + "Return x minus its mean along the specified axis" + x = np.asarray(x) + if axis: + ind = [slice(None)] * axis + ind.append(np.newaxis) + return x - x.mean(axis)[ind] + return x - x.mean(axis) + +def detrend_mean(x): + "Return x minus the mean(x)" + return x - x.mean() + +def detrend_none(x): + "Return x: no detrending" + return x + +def detrend_linear(y): + "Return y minus best fit line; 'linear' detrending " + # This is faster than an algorithm based on linalg.lstsq. + x = np.arange(len(y), dtype=np.float_) + C = np.cov(x, y, bias=1) + b = C[0,1]/C[0,0] + a = y.mean() - b*x.mean() + return y - (b*x + a) + +def acovf_explicit(ar, ma, nobs): + '''add correlation of MA representation explicitely + + ''' + ir = arma_impulse_response(ar, ma) + acovfexpl = [np.dot(ir[:nobs-t], ir[t:nobs]) for t in range(10)] + return acovfexpl + +def acovf_arma11(ar, ma): + # ARMA(1,1) + # Florens et al page 278 + # wrong result ? + # new calculation bigJudge p 311, now the same + a = -ar[1] + b = ma[1] + #rho = [1.] + #rho.append((1-a*b)*(a-b)/(1.+a**2-2*a*b)) + rho = [(1.+b**2+2*a*b)/(1.-a**2)] + rho.append((1+a*b)*(a+b)/(1.-a**2)) + for _ in range(8): + last = rho[-1] + rho.append(a*last) + return np.array(rho) + +# print acf11[:10] +# print acf11[:10] /acf11[0] + +def acovf_ma2(ma): + # MA(2) + # from Greene p616 (with typo), Florens p280 + b1 = -ma[1] + b2 = -ma[2] + rho = np.zeros(10) + rho[0] = (1 + b1**2 + b2**2) + rho[1] = (-b1 + b1*b2) + rho[2] = -b2 + return rho + +# rho2 = rho/rho[0] +# print rho2 +# print irc2[:10]/irc2[0] + +def acovf_ma1(ma): + # MA(1) + # from Greene p616 (with typo), Florens p280 + b = -ma[1] + rho = np.zeros(10) + rho[0] = (1 + b**2) + rho[1] = -b + return rho + +# rho2 = rho/rho[0] +# print rho2 +# print irc2[:10]/irc2[0] + + +ar1 = [1., -0.8] +ar0 = [1., 0.] +ma1 = [1., 0.4] +ma2 = [1., 0.4, 0.6] +ma0 = [1., 0.] + +comparefn = dict( + [('ma1', acovf_ma1), + ('ma2', acovf_ma2), + ('arma11', acovf_arma11), + ('ar1', acovf_arma11)]) + +cases = [('ma1', (ar0, ma1)), + ('ma2', (ar0, ma2)), + ('arma11', (ar1, ma1)), + ('ar1', (ar1, ma0))] + +for c, args in cases: + + ar, ma = args + print('') + print(c, ar, ma) + myacovf = arma_acovf(ar, ma, nobs=10) + myacf = arma_acf(ar, ma, nobs=10) + if c[:2]=='ma': + othacovf = comparefn[c](ma) + else: + othacovf = comparefn[c](ar, ma) + print(myacovf[:5]) + print(othacovf[:5]) + #something broke again, + #for high persistence case eg ar=0.99, nobs of IR has to be large + #made changes to arma_acovf + assert_array_almost_equal(myacovf, othacovf,10) + assert_array_almost_equal(myacf, othacovf/othacovf[0],10) + + +#from nitime.utils +def ar_generator(N=512, sigma=1.): + # this generates a signal u(n) = a1*u(n-1) + a2*u(n-2) + ... + v(n) + # where v(n) is a stationary stochastic process with zero mean + # and variance = sigma + # this sequence is shown to be estimated well by an order 8 AR system + taps = np.array([2.7607, -3.8106, 2.6535, -0.9238]) + v = np.random.normal(size=N, scale=sigma**0.5) + u = np.zeros(N) + P = len(taps) + for l in range(P): + u[l] = v[l] + np.dot(u[:l][::-1], taps[:l]) + for l in range(P,N): + u[l] = v[l] + np.dot(u[l-P:l][::-1], taps) + return u, v, taps + +#JP: small differences to using np.correlate, because assumes mean(s)=0 +# denominator is N, not N-k, biased estimator +# misnomer: (biased) autocovariance not autocorrelation +#from nitime.utils +def autocorr(s, axis=-1): + """Returns the autocorrelation of signal s at all lags. Adheres to the +definition r(k) = E{s(n)s*(n-k)} where E{} is the expectation operator. +""" + N = s.shape[axis] + S = np.fft.fft(s, n=2*N-1, axis=axis) + sxx = np.fft.ifft(S*S.conjugate(), axis=axis).real[:N] + return sxx/N + +#JP: with valid this returns a single value, if x and y have same length +# e.g. norm_corr(x, x) +# using std subtracts mean, but correlate doesn't, requires means are exactly 0 +# biased, no n-k correction for laglength +#from nitime.utils +def norm_corr(x,y,mode = 'valid'): + """Returns the correlation between two ndarrays, by calling np.correlate in +'same' mode and normalizing the result by the std of the arrays and by +their lengths. This results in a correlation = 1 for an auto-correlation""" + + return ( np.correlate(x,y,mode) / + (np.std(x)*np.std(y)*(x.shape[-1])) ) + + + +# from matplotlib axes.py +# note: self is axis +def pltacorr(self, x, **kwargs): + """ + call signature:: + + acorr(x, normed=True, detrend=detrend_none, usevlines=True, + maxlags=10, **kwargs) + + Plot the autocorrelation of *x*. If *normed* = *True*, + normalize the data by the autocorrelation at 0-th lag. *x* is + detrended by the *detrend* callable (default no normalization). + + Data are plotted as ``plot(lags, c, **kwargs)`` + + Return value is a tuple (*lags*, *c*, *line*) where: + + - *lags* are a length 2*maxlags+1 lag vector + + - *c* is the 2*maxlags+1 auto correlation vector + + - *line* is a :class:`~matplotlib.lines.Line2D` instance + returned by :meth:`plot` + + The default *linestyle* is None and the default *marker* is + ``'o'``, though these can be overridden with keyword args. + The cross correlation is performed with + :func:`numpy.correlate` with *mode* = 2. + + If *usevlines* is *True*, :meth:`~matplotlib.axes.Axes.vlines` + rather than :meth:`~matplotlib.axes.Axes.plot` is used to draw + vertical lines from the origin to the acorr. Otherwise, the + plot style is determined by the kwargs, which are + :class:`~matplotlib.lines.Line2D` properties. + + *maxlags* is a positive integer detailing the number of lags + to show. The default value of *None* will return all + :math:`2 \mathrm{len}(x) - 1` lags. + + The return value is a tuple (*lags*, *c*, *linecol*, *b*) + where + + - *linecol* is the + :class:`~matplotlib.collections.LineCollection` + + - *b* is the *x*-axis. + + .. seealso:: + + :meth:`~matplotlib.axes.Axes.plot` or + :meth:`~matplotlib.axes.Axes.vlines` + For documentation on valid kwargs. + + **Example:** + + :func:`~matplotlib.pyplot.xcorr` above, and + :func:`~matplotlib.pyplot.acorr` below. + + **Example:** + + .. plot:: mpl_examples/pylab_examples/xcorr_demo.py + """ + return self.xcorr(x, x, **kwargs) + +def pltxcorr(self, x, y, normed=True, detrend=detrend_none, + usevlines=True, maxlags=10, **kwargs): + """ + call signature:: + + def xcorr(self, x, y, normed=True, detrend=detrend_none, + usevlines=True, maxlags=10, **kwargs): + + Plot the cross correlation between *x* and *y*. If *normed* = + *True*, normalize the data by the cross correlation at 0-th + lag. *x* and y are detrended by the *detrend* callable + (default no normalization). *x* and *y* must be equal length. + + Data are plotted as ``plot(lags, c, **kwargs)`` + + Return value is a tuple (*lags*, *c*, *line*) where: + + - *lags* are a length ``2*maxlags+1`` lag vector + + - *c* is the ``2*maxlags+1`` auto correlation vector + + - *line* is a :class:`~matplotlib.lines.Line2D` instance + returned by :func:`~matplotlib.pyplot.plot`. + + The default *linestyle* is *None* and the default *marker* is + 'o', though these can be overridden with keyword args. The + cross correlation is performed with :func:`numpy.correlate` + with *mode* = 2. + + If *usevlines* is *True*: + + :func:`~matplotlib.pyplot.vlines` + rather than :func:`~matplotlib.pyplot.plot` is used to draw + vertical lines from the origin to the xcorr. Otherwise the + plotstyle is determined by the kwargs, which are + :class:`~matplotlib.lines.Line2D` properties. + + The return value is a tuple (*lags*, *c*, *linecol*, *b*) + where *linecol* is the + :class:`matplotlib.collections.LineCollection` instance and + *b* is the *x*-axis. + + *maxlags* is a positive integer detailing the number of lags to show. + The default value of *None* will return all ``(2*len(x)-1)`` lags. + + **Example:** + + :func:`~matplotlib.pyplot.xcorr` above, and + :func:`~matplotlib.pyplot.acorr` below. + + **Example:** + + .. plot:: mpl_examples/pylab_examples/xcorr_demo.py + """ + + + Nx = len(x) + if Nx!=len(y): + raise ValueError('x and y must be equal length') + + x = detrend(np.asarray(x)) + y = detrend(np.asarray(y)) + + c = np.correlate(x, y, mode=2) + + if normed: c/= np.sqrt(np.dot(x,x) * np.dot(y,y)) + + if maxlags is None: maxlags = Nx - 1 + + if maxlags >= Nx or maxlags < 1: + raise ValueError('maxlags must be None or strictly ' + 'positive < %d'%Nx) + + lags = np.arange(-maxlags,maxlags+1) + c = c[Nx-1-maxlags:Nx+maxlags] + + + if usevlines: + a = self.vlines(lags, [0], c, **kwargs) + b = self.axhline(**kwargs) + kwargs.setdefault('marker', 'o') + kwargs.setdefault('linestyle', 'None') + d = self.plot(lags, c, **kwargs) + else: + + kwargs.setdefault('marker', 'o') + kwargs.setdefault('linestyle', 'None') + a, = self.plot(lags, c, **kwargs) + b = None + return lags, c, a, b + + + + + + +arrvs = ar_generator() +##arma = ARIMA() +##res = arma.fit(arrvs[0], 4, 0) +arma = ARIMA(arrvs[0]) +res = arma.fit((4,0, 0)) + +print(res[0]) + +acf1 = acf(arrvs[0]) +acovf1b = acovf(arrvs[0], unbiased=False) +acf2 = autocorr(arrvs[0]) +acf2m = autocorr(arrvs[0]-arrvs[0].mean()) +print(acf1[:10]) +print(acovf1b[:10]) +print(acf2[:10]) +print(acf2m[:10]) + + +x = arma_generate_sample([1.0, -0.8], [1.0], 500) +print(acf(x)[:20]) +import statsmodels.api as sm +print(sm.regression.yule_walker(x, 10)) + +import matplotlib.pyplot as plt +#ax = plt.axes() +plt.plot(x) +#plt.show() + +plt.figure() +pltxcorr(plt,x,x) +plt.figure() +pltxcorr(plt,x,x, usevlines=False) +plt.figure() +#FIXME: plotacf was moved to graphics/tsaplots.py, and interface changed +plotacf(plt, acf1[:20], np.arange(len(acf1[:20])), usevlines=True) +plt.figure() +ax = plt.subplot(211) +plotacf(ax, acf1[:20], usevlines=True) +ax = plt.subplot(212) +plotacf(ax, acf1[:20], np.arange(len(acf1[:20])), usevlines=False) + +#plt.show() diff --git a/statsmodels/sandbox/tsa/examples/ex_mle_arma.py b/statsmodels/sandbox/tsa/examples/ex_mle_arma.py new file mode 100644 index 0000000..0ebbc50 --- /dev/null +++ b/statsmodels/sandbox/tsa/examples/ex_mle_arma.py @@ -0,0 +1,146 @@ +# -*- coding: utf-8 -*- +""" +TODO: broken because of changes to arguments and import paths +fixing this needs a closer look + +Created on Thu Feb 11 23:41:53 2010 +Author: josef-pktd +copyright: Simplified BSD see license.txt +""" +from __future__ import print_function +import numpy as np +from numpy.testing import assert_almost_equal + +import matplotlib.pyplot as plt + +import numdifftools as ndt + +import statsmodels.api as sm +from statsmodels.sandbox import tsa +from statsmodels.tsa.arma_mle import Arma # local import +from statsmodels.tsa.arima_process import arma_generate_sample + +examples = ['arma'] +if 'arma' in examples: + + print("\nExample 1") + print('----------') + ar = [1.0, -0.8] + ma = [1.0, 0.5] + y1 = arma_generate_sample(ar,ma,1000,0.1) + y1 -= y1.mean() #no mean correction/constant in estimation so far + + arma1 = Arma(y1) + arma1.nar = 1 + arma1.nma = 1 + arma1res = arma1.fit_mle(order=(1,1), method='fmin') + print(arma1res.params) + + #Warning need new instance otherwise results carry over + arma2 = Arma(y1) + arma2.nar = 1 + arma2.nma = 1 + res2 = arma2.fit(method='bfgs') + print(res2.params) + print(res2.model.hessian(res2.params)) + print(ndt.Hessian(arma1.loglike, stepMax=1e-2)(res2.params)) + arest = tsa.arima.ARIMA(y1) + resls = arest.fit((1,0,1)) + print(resls[0]) + print(resls[1]) + + + + print('\nparameter estimate - comparing methods') + print('---------------------------------------') + print('parameter of DGP ar(1), ma(1), sigma_error') + print([-0.8, 0.5, 0.1]) + print('mle with fmin') + print(arma1res.params) + print('mle with bfgs') + print(res2.params) + print('cond. least squares uses optim.leastsq ?') + errls = arest.error_estimate + print(resls[0], np.sqrt(np.dot(errls,errls)/errls.shape[0])) + + err = arma1.geterrors(res2.params) + print('cond least squares parameter cov') + #print(np.dot(err,err)/err.shape[0] * resls[1]) + #errls = arest.error_estimate + print(np.dot(errls,errls)/errls.shape[0] * resls[1]) +# print('fmin hessian') +# print(arma1res.model.optimresults['Hopt'][:2,:2]) + print('bfgs hessian') + print(res2.model.optimresults['Hopt'][:2,:2]) + print('numdifftools inverse hessian') + print(-np.linalg.inv(ndt.Hessian(arma1.loglike, stepMax=1e-2)(res2.params))[:2,:2]) + + print('\nFitting Arma(1,1) to squared data') + arma3 = Arma(y1**2) + res3 = arma3.fit(method='bfgs') + print(res3.params) + + print('\nFitting Arma(3,3) to data from DGP Arma(1,1)') + arma4 = Arma(y1) + arma4.nar = 3 + arma4.nma = 3 + #res4 = arma4.fit(method='bfgs') + res4 = arma4.fit(start_params=[-0.5, -0.1,-0.1,0.2,0.1,0.1,0.5]) + print(res4.params) + print('numdifftools inverse hessian') + pcov = -np.linalg.inv(ndt.Hessian(arma4.loglike, stepMax=1e-2)(res4.params)) + #print(pcov) + print('standard error of parameter estimate from Hessian') + pstd = np.sqrt(np.diag(pcov)) + print(pstd) + print('t-values') + print(res4.params/pstd) + print('eigenvalues of pcov:') + print(np.linalg.eigh(pcov)[0]) + print('sometimes they are negative') + + + print("\nExample 2 - DGP is Arma(3,3)") + print('-----------------------------') + ar = [1.0, -0.6, -0.2, -0.1] + ma = [1.0, 0.5, 0.1, 0.1] + y2 = arest.generate_sample(ar,ma,1000,0.1) + y2 -= y2.mean() #no mean correction/constant in estimation so far + + + print('\nFitting Arma(3,3) to data from DGP Arma(3,3)') + arma4 = Arma(y2) + arma4.nar = 3 + arma4.nma = 3 + #res4 = arma4.fit(method='bfgs') + print('\ntrue parameters') + print('ar', ar[1:]) + print('ma', ma[1:]) + res4 = arma4.fit(start_params=[-0.5, -0.1,-0.1,0.2,0.1,0.1,0.5]) + print(res4.params) + print('numdifftools inverse hessian') + pcov = -np.linalg.inv(ndt.Hessian(arma4.loglike, stepMax=1e-2)(res4.params)) + #print(pcov) + print('standard error of parameter estimate from Hessian') + pstd = np.sqrt(np.diag(pcov)) + print(pstd) + print('t-values') + print(res4.params/pstd) + print('eigenvalues of pcov:') + print(np.linalg.eigh(pcov)[0]) + print('sometimes they are negative') + + arma6 = Arma(y2) + arma6.nar = 3 + arma6.nma = 3 + res6 = arma6.fit(start_params=[-0.5, -0.1,-0.1,0.2,0.1,0.1,0.5], + method='bfgs') + print('\nmle with bfgs') + print(res6.params) + print('pstd with bfgs hessian') + hopt = res6.model.optimresults['Hopt'] + print(np.sqrt(np.diag(hopt))) + + #fmin estimates for coefficients in ARMA(3,3) look good + #but not inverse Hessian, sometimes negative values for variance + diff --git a/statsmodels/sandbox/tsa/examples/ex_mle_garch.py b/statsmodels/sandbox/tsa/examples/ex_mle_garch.py new file mode 100644 index 0000000..ed453df --- /dev/null +++ b/statsmodels/sandbox/tsa/examples/ex_mle_garch.py @@ -0,0 +1,330 @@ +# -*- coding: utf-8 -*- +""" +Created on Fri Feb 12 01:01:50 2010 + +Author: josef-pktd + +latest result +------------- +all are very close +garch0 has different parameterization of constant +ordering of parameters is different + + +seed 2780185 +h.shape (2000,) +Optimization terminated successfully. + Current function value: 2093.813397 + Iterations: 387 + Function evaluations: 676 +ggres.params [-0.6146253 0.1914537 0.01039355 0.78802188] +Optimization terminated successfully. + Current function value: 2093.972953 + Iterations: 201 + Function evaluations: 372 +ggres0.params [-0.61537527 0.19635128 4.00706058] +Warning: Desired error not necessarily achieveddue to precision loss + Current function value: 2093.972953 + Iterations: 51 + Function evaluations: 551 + Gradient evaluations: 110 +ggres0.params [-0.61537855 0.19635265 4.00694669] +Optimization terminated successfully. + Current function value: 2093.751420 + Iterations: 103 + Function evaluations: 187 +[ 0.78671519 0.19692222 0.61457171] +-2093.75141963 + +Final Estimate: + LLH: 2093.750 norm LLH: 2.093750 + omega alpha1 beta1 +0.7867438 0.1970437 0.6145467 + +long run variance comparison +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +R +>>> 0.7867438/(1- 0.1970437- 0.6145467) +4.1757097302897526 +Garch (gjr) asymetric, longrun var ? +>>> 1/(1-0.6146253 - 0.1914537 - 0.01039355) * 0.78802188 +4.2937548579245242 +>>> 1/(1-0.6146253 - 0.1914537 + 0.01039355) * 0.78802188 +3.8569053452140345 +Garch0 +>>> (1-0.61537855 - 0.19635265) * 4.00694669 +0.7543830449902722 +>>> errgjr4.var() #for different random seed +4.0924199964716106 + +todo: add code and verify, check for longer lagpolys + +""" + +from __future__ import print_function +import numpy as np +from numpy.testing import assert_almost_equal + +import matplotlib.pyplot as plt +import numdifftools as ndt + +import statsmodels.api as sm +from statsmodels.sandbox import tsa +from statsmodels.sandbox.tsa.garch import * # local import + + +nobs = 1000 +examples = ['garch', 'rpyfit'] +if 'garch' in examples: + err,h = generate_kindofgarch(nobs, [1.0, -0.95], [1.0, 0.1], mu=0.5) + plt.figure() + plt.subplot(211) + plt.plot(err) + plt.subplot(212) + plt.plot(h) + #plt.show() + + seed = 3842774 #91234 #8837708 + seed = np.random.randint(9999999) + print('seed', seed) + np.random.seed(seed) + ar1 = -0.9 + err,h = generate_garch(nobs, [1.0, ar1], [1.0, 0.50], mu=0.0,scale=0.1) +# plt.figure() +# plt.subplot(211) +# plt.plot(err) +# plt.subplot(212) +# plt.plot(h) +# plt.figure() +# plt.subplot(211) +# plt.plot(err[-400:]) +# plt.subplot(212) +# plt.plot(h[-400:]) + #plt.show() + garchplot(err, h) + garchplot(err[-400:], h[-400:]) + + + np.random.seed(seed) + errgjr,hgjr, etax = generate_gjrgarch(nobs, [1.0, ar1], + [[1,0],[0.5,0]], mu=0.0,scale=0.1) + garchplot(errgjr[:nobs], hgjr[:nobs], 'GJR-GARCH(1,1) Simulation - symmetric') + garchplot(errgjr[-400:nobs], hgjr[-400:nobs], 'GJR-GARCH(1,1) Simulation - symmetric') + + np.random.seed(seed) + errgjr2,hgjr2, etax = generate_gjrgarch(nobs, [1.0, ar1], + [[1,0],[0.1,0.9]], mu=0.0,scale=0.1) + garchplot(errgjr2[:nobs], hgjr2[:nobs], 'GJR-GARCH(1,1) Simulation') + garchplot(errgjr2[-400:nobs], hgjr2[-400:nobs], 'GJR-GARCH(1,1) Simulation') + + np.random.seed(seed) + errgjr3,hgjr3, etax3 = generate_gjrgarch(nobs, [1.0, ar1], + [[1,0],[0.1,0.9],[0.1,0.9],[0.1,0.9]], mu=0.0,scale=0.1) + garchplot(errgjr3[:nobs], hgjr3[:nobs], 'GJR-GARCH(1,3) Simulation') + garchplot(errgjr3[-400:nobs], hgjr3[-400:nobs], 'GJR-GARCH(1,3) Simulation') + + np.random.seed(seed) + errgjr4,hgjr4, etax4 = generate_gjrgarch(nobs, [1.0, ar1], + [[1., 1,0],[0, 0.1,0.9],[0, 0.1,0.9],[0, 0.1,0.9]], + mu=0.0,scale=0.1) + garchplot(errgjr4[:nobs], hgjr4[:nobs], 'GJR-GARCH(1,3) Simulation') + garchplot(errgjr4[-400:nobs], hgjr4[-400:nobs], 'GJR-GARCH(1,3) Simulation') + + varinno = np.zeros(100) + varinno[0] = 1. + errgjr5,hgjr5, etax5 = generate_gjrgarch(100, [1.0, -0.], + [[1., 1,0],[0, 0.1,0.8],[0, 0.05,0.7],[0, 0.01,0.6]], + mu=0.0,scale=0.1, varinnovation=varinno) + garchplot(errgjr5[:20], hgjr5[:20], 'GJR-GARCH(1,3) Simulation') + #garchplot(errgjr4[-400:nobs], hgjr4[-400:nobs], 'GJR-GARCH(1,3) Simulation') + + +#plt.show() +seed = np.random.randint(9999999) # 9188410 +print('seed', seed) + +x = np.arange(20).reshape(10,2) +x3 = np.column_stack((np.ones((x.shape[0],1)),x)) +y, inp = miso_lfilter([1., 0],np.array([[-2.0,3,1],[0.0,0.0,0]]),x3) + +nobs = 1000 +warmup = 1000 +np.random.seed(seed) +ar = [1.0, -0.7]#7, -0.16, -0.1] +#ma = [[1., 1, 0],[0, 0.6,0.1],[0, 0.1,0.1],[0, 0.1,0.1]] +ma = [[1., 0, 0],[0, 0.8,0.0]] #,[0, 0.9,0.0]] +# errgjr4,hgjr4, etax4 = generate_gjrgarch(warmup+nobs, [1.0, -0.99], +# [[1., 1, 0],[0, 0.6,0.1],[0, 0.1,0.1],[0, 0.1,0.1]], +# mu=0.2, scale=0.25) + +errgjr4,hgjr4, etax4 = generate_gjrgarch(warmup+nobs, ar, ma, + mu=0.4, scale=1.01) +errgjr4,hgjr4, etax4 = errgjr4[warmup:], hgjr4[warmup:], etax4[warmup:] +garchplot(errgjr4[:nobs], hgjr4[:nobs], 'GJR-GARCH(1,3) Simulation - DGP') +ggmod = Garch(errgjr4-errgjr4.mean())#hgjr4[:nobs])#-hgjr4.mean()) #errgjr4) +ggmod.nar = 1 +ggmod.nma = 1 +ggmod._start_params = np.array([-0.6, 0.1, 0.2, 0.0]) +ggres = ggmod.fit(start_params=np.array([-0.6, 0.1, 0.2, 0.0]), maxiter=1000) +print('ggres.params', ggres.params) +garchplot(ggmod.errorsest, ggmod.h, title='Garch estimated') + +ggmod0 = Garch0(errgjr4-errgjr4.mean())#hgjr4[:nobs])#-hgjr4.mean()) #errgjr4) +ggmod0.nar = 1 +ggmod.nma = 1 +start_params = np.array([-0.6, 0.2, 0.1]) +ggmod0._start_params = start_params #np.array([-0.6, 0.1, 0.2, 0.0]) +ggres0 = ggmod0.fit(start_params=start_params, maxiter=2000) +print('ggres0.params', ggres0.params) + +ggmod0 = Garch0(errgjr4-errgjr4.mean())#hgjr4[:nobs])#-hgjr4.mean()) #errgjr4) +ggmod0.nar = 1 +ggmod.nma = 1 +start_params = np.array([-0.6, 0.2, 0.1]) +ggmod0._start_params = start_params #np.array([-0.6, 0.1, 0.2, 0.0]) +ggres0 = ggmod0.fit(start_params=start_params, method='bfgs', maxiter=2000) +print('ggres0.params', ggres0.params) + + +g11res = optimize.fmin(lambda params: -loglike_GARCH11(params, errgjr4-errgjr4.mean())[0], [0.93, 0.9, 0.2]) +print(g11res) +llf = loglike_GARCH11(g11res, errgjr4-errgjr4.mean()) +print(llf[0]) + +if 'rpyfit' in examples: + from rpy import r + r.library('fGarch') + f = r.formula('~garch(1, 1)') + fit = r.garchFit(f, data = errgjr4-errgjr4.mean(), include_mean=False) + +if 'rpysim' in examples: + from rpy import r + f = r.formula('~garch(1, 1)') + #fit = r.garchFit(f, data = errgjr4) + x = r.garchSim( n = 500) + print('R acf', tsa.acf(np.power(x,2))[:15]) + arma3 = Arma(np.power(x,2)) + arma3res = arma3.fit(start_params=[-0.2,0.1,0.5],maxiter=5000) + print(arma3res.params) + arma3b = Arma(np.power(x,2)) + arma3bres = arma3b.fit(start_params=[-0.2,0.1,0.5],maxiter=5000, method='bfgs') + print(arma3bres.params) + + xr = r.garchSim( n = 100) + + x = np.asarray(xr) + ggmod = Garch(x-x.mean()) + ggmod.nar = 1 + ggmod.nma = 1 + ggmod._start_params = np.array([-0.6, 0.1, 0.2, 0.0]) + ggres = ggmod.fit(start_params=np.array([-0.6, 0.1, 0.2, 0.0]), maxiter=1000) + print('ggres.params', ggres.params) + + g11res = optimize.fmin(lambda params: -loglike_GARCH11(params, x-x.mean())[0], [0.6, 0.6, 0.2]) + print(g11res) + llf = loglike_GARCH11(g11res, x-x.mean()) + print(llf[0]) + + garchplot(ggmod.errorsest, ggmod.h, title='Garch estimated') + fit = r.garchFit(f, data = x-x.mean(), include_mean=False, trace=False) + print(r.summary(fit)) + +'''based on R default simulation +model = list(omega = 1e-06, alpha = 0.1, beta = 0.8) +nobs = 1000 +(with nobs=500, gjrgarch doesn't do well + +>>> ggres = ggmod.fit(start_params=np.array([-0.6, 0.1, 0.2, 0.0]), maxiter=1000) +Optimization terminated successfully. + Current function value: -448.861335 + Iterations: 385 + Function evaluations: 690 +>>> print('ggres.params', ggres.params +ggres.params [ -7.75090330e-01 1.57714749e-01 -9.60223930e-02 8.76021411e-07] +rearranged +8.76021411e-07 1.57714749e-01(-9.60223930e-02) 7.75090330e-01 + +>>> print(g11res +[ 2.97459808e-06 7.83128600e-01 2.41110860e-01] +>>> llf = loglike_GARCH11(g11res, x-x.mean()) +>>> print(llf[0] +442.603541936 + +Log Likelihood: + -448.9376 normalized: -4.489376 + omega alpha1 beta1 +1.01632e-06 1.02802e-01 7.57537e-01 +''' + + +''' the following is for errgjr4-errgjr4.mean() +ggres.params [-0.54510407 0.22723132 0.06482633 0.82325803] +Final Estimate: + LLH: 2065.56 norm LLH: 2.06556 + mu omega alpha1 beta1 +0.07229732 0.83069480 0.26313883 0.53986167 + +ggres.params [-0.50779163 0.2236606 0.00700036 1.154832 +Final Estimate: + LLH: 2116.084 norm LLH: 2.116084 + mu omega alpha1 beta1 +-4.759227e-17 1.145404e+00 2.288348e-01 5.085949e-01 + +run3 +DGP +0.4/?? 0.8 0.7 +gjrgarch: +ggres.params [-0.45196579 0.2569641 0.02201904 1.11942636] +rearranged +const/omega ma1/alpha1 ar1/beta1 +1.11942636 0.2569641(+0.02201904) 0.45196579 +g11: +[ 1.10262688 0.26680468 0.45724957] +-2055.73912687 +R: +Final Estimate: + LLH: 2055.738 norm LLH: 2.055738 + mu omega alpha1 beta1 +-1.665226e-17 1.102396e+00 2.668712e-01 4.573224e-01 +fit = r.garchFit(f, data = errgjr4-errgjr4.mean()) +rpy.RPy_RException: Error in solve.default(fit$hessian) : + Lapack routine dgesv: system is exactly singular + +run4 +DGP: +mu=0.4, scale=1.01 +ma = [[1., 0, 0],[0, 0.8,0.0]], ar = [1.0, -0.7] +maybe something wrong with simulation + +gjrgarch +ggres.params [-0.50554663 0.24449867 -0.00521004 1.00796791] +rearranged +1.00796791 0.24449867(-0.00521004) 0.50554663 +garch11: +[ 1.01258264 0.24149155 0.50479994] +-2056.3877404 +R include_constant=False +Final Estimate: + LLH: 2056.397 norm LLH: 2.056397 + omega alpha1 beta1 +1.0123560 0.2409589 0.5049154 +''' + + +erro,ho, etaxo = generate_gjrgarch(20, ar, ma, mu=0.04, scale=0.01, + varinnovation = np.ones(20)) + +if 'sp500' in examples: + import tabular as tb + import scikits.timeseries as ts + + a = tb.loadSV(r'C:\Josef\work-oth\gspc_table.csv') + + s = ts.time_series(a[0]['Close'][::-1], + dates=ts.date_array(a[0]['Date'][::-1],freq="D")) + + sp500 = a[0]['Close'][::-1] + sp500r = np.diff(np.log(sp500)) + + +#plt.show() diff --git a/statsmodels/sandbox/tsa/examples/example_var.py b/statsmodels/sandbox/tsa/examples/example_var.py new file mode 100644 index 0000000..ed05e26 --- /dev/null +++ b/statsmodels/sandbox/tsa/examples/example_var.py @@ -0,0 +1,55 @@ +""" +Look at some macro plots, then do some VARs and IRFs. +""" + +import numpy as np +import statsmodels.api as sm +import scikits.timeseries as ts +import scikits.timeseries.lib.plotlib as tplt +from matplotlib import pyplot as plt + +data = sm.datasets.macrodata.load() +data = data.data + + +### Create Timeseries Representations of a few vars + +dates = ts.date_array(start_date=ts.Date('Q', year=1959, quarter=1), + end_date=ts.Date('Q', year=2009, quarter=3)) + +ts_data = data[['realgdp','realcons','cpi']].view(float).reshape(-1,3) +ts_data = np.column_stack((ts_data, (1 - data['unemp']/100) * data['pop'])) +ts_series = ts.time_series(ts_data, dates) + + +fig = tplt.tsfigure() +fsp = fig.add_tsplot(221) +fsp.tsplot(ts_series[:,0],'-') +fsp.set_title("Real GDP") +fsp = fig.add_tsplot(222) +fsp.tsplot(ts_series[:,1],'r-') +fsp.set_title("Real Consumption") +fsp = fig.add_tsplot(223) +fsp.tsplot(ts_series[:,2],'g-') +fsp.set_title("CPI") +fsp = fig.add_tsplot(224) +fsp.tsplot(ts_series[:,3],'y-') +fsp.set_title("Employment") + + + +# Plot real GDP +#plt.subplot(221) +#plt.plot(data['realgdp']) +#plt.title("Real GDP") + +# Plot employment +#plt.subplot(222) + +# Plot cpi +#plt.subplot(223) + +# Plot real consumption +#plt.subplot(224) + +#plt.show() diff --git a/statsmodels/sandbox/tsa/examples/try_ld_nitime.py b/statsmodels/sandbox/tsa/examples/try_ld_nitime.py new file mode 100644 index 0000000..01ba993 --- /dev/null +++ b/statsmodels/sandbox/tsa/examples/try_ld_nitime.py @@ -0,0 +1,56 @@ +'''Levinson Durbin recursion adjusted from nitime + +''' + +from statsmodels.compat.python import range +import numpy as np + +from statsmodels.tsa.stattools import acovf + +def levinson_durbin_nitime(s, order=10, isacov=False): + '''Levinson-Durbin recursion for autoregressive processes + + ''' + #from nitime + +## if sxx is not None and type(sxx) == np.ndarray: +## sxx_m = sxx[:order+1] +## else: +## sxx_m = ut.autocov(s)[:order+1] + if isacov: + sxx_m = s + else: + sxx_m = acovf(s)[:order+1] #not tested + + phi = np.zeros((order+1, order+1), 'd') + sig = np.zeros(order+1) + # initial points for the recursion + phi[1,1] = sxx_m[1]/sxx_m[0] + sig[1] = sxx_m[0] - phi[1,1]*sxx_m[1] + for k in range(2,order+1): + phi[k,k] = (sxx_m[k]-np.dot(phi[1:k,k-1], sxx_m[1:k][::-1]))/sig[k-1] + for j in range(1,k): + phi[j,k] = phi[j,k-1] - phi[k,k]*phi[k-j,k-1] + sig[k] = sig[k-1]*(1 - phi[k,k]**2) + + sigma_v = sig[-1]; arcoefs = phi[1:,-1] + return sigma_v, arcoefs, pacf, phi #return everything + +import nitime.utils as ut + + +sxx=None +order = 10 + +npts = 2048*10 +sigma = 1 +drop_transients = 1024 +coefs = np.array([0.9, -0.5]) + +# Generate AR(2) time series +X, v, _ = ut.ar_generator(npts, sigma, coefs, drop_transients) + +s = X + +import statsmodels.api as sm +sm.tsa.stattools.pacf(X) diff --git a/statsmodels/sandbox/tsa/fftarma.py b/statsmodels/sandbox/tsa/fftarma.py new file mode 100644 index 0000000..8bd2406 --- /dev/null +++ b/statsmodels/sandbox/tsa/fftarma.py @@ -0,0 +1,540 @@ +# -*- coding: utf-8 -*- +""" +Created on Mon Dec 14 19:53:25 2009 + +Author: josef-pktd + +generate arma sample using fft with all the lfilter it looks slow +to get the ma representation first + +apply arma filter (in ar representation) to time series to get white noise +but seems slow to be useful for fast estimation for nobs=10000 + +change/check: instead of using marep, use fft-transform of ar and ma + separately, use ratio check theory is correct and example works + DONE : feels much faster than lfilter + -> use for estimation of ARMA + -> use pade (scipy.misc) approximation to get starting polynomial + from autocorrelation (is autocorrelation of AR(p) related to marep?) + check if pade is fast, not for larger arrays ? + maybe pade doesn't do the right thing for this, not tried yet + scipy.pade([ 1. , 0.6, 0.25, 0.125, 0.0625, 0.1],2) + raises LinAlgError: singular matrix + also doesn't have roots inside unit circle ?? + -> even without initialization, it might be fast for estimation + -> how do I enforce stationarity and invertibility, + need helper function + +get function drop imag if close to zero from numpy/scipy source, where? + +""" + +from __future__ import print_function +import numpy as np +import numpy.fft as fft +#import scipy.fftpack as fft +from scipy import signal +#from try_var_convolve import maxabs +from statsmodels.sandbox.archive.linalg_decomp_1 import OneTimeProperty +from statsmodels.tsa.arima_process import ArmaProcess + + +#trying to convert old experiments to a class + + +class ArmaFft(ArmaProcess): + '''fft tools for arma processes + + This class contains several methods that are providing the same or similar + returns to try out and test different implementations. + + Notes + ----- + TODO: + check whether we don't want to fix maxlags, and create new instance if + maxlag changes. usage for different lengths of timeseries ? + or fix frequency and length for fft + + check default frequencies w, terminology norw n_or_w + + some ffts are currently done without padding with zeros + + returns for spectral density methods needs checking, is it always the power + spectrum hw*hw.conj() + + normalization of the power spectrum, spectral density: not checked yet, for + example no variance of underlying process is used + + ''' + + def __init__(self, ar, ma, n): + #duplicates now that are subclassing ArmaProcess + super(ArmaFft, self).__init__(ar, ma) + + self.ar = np.asarray(ar) + self.ma = np.asarray(ma) + self.nobs = n + #could make the polynomials into cached attributes + self.arpoly = np.polynomial.Polynomial(ar) + self.mapoly = np.polynomial.Polynomial(ma) + self.nar = len(ar) #1d only currently + self.nma = len(ma) + + def padarr(self, arr, maxlag, atend=True): + '''pad 1d array with zeros at end to have length maxlag + function that is a method, no self used + + Parameters + ---------- + arr : array_like, 1d + array that will be padded with zeros + maxlag : int + length of array after padding + atend : boolean + If True (default), then the zeros are added to the end, otherwise + to the front of the array + + Returns + ------- + arrp : ndarray + zero-padded array + + Notes + ----- + This is mainly written to extend coefficient arrays for the lag-polynomials. + It returns a copy. + + ''' + if atend: + return np.r_[arr, np.zeros(maxlag-len(arr))] + else: + return np.r_[np.zeros(maxlag-len(arr)), arr] + + + def pad(self, maxlag): + '''construct AR and MA polynomials that are zero-padded to a common length + + Parameters + ---------- + maxlag : int + new length of lag-polynomials + + Returns + ------- + ar : ndarray + extended AR polynomial coefficients + ma : ndarray + extended AR polynomial coefficients + + ''' + arpad = np.r_[self.ar, np.zeros(maxlag-self.nar)] + mapad = np.r_[self.ma, np.zeros(maxlag-self.nma)] + return arpad, mapad + + def fftar(self, n=None): + '''Fourier transform of AR polynomial, zero-padded at end to n + + Parameters + ---------- + n : int + length of array after zero-padding + + Returns + ------- + fftar : ndarray + fft of zero-padded ar polynomial + ''' + if n is None: + n = len(self.ar) + return fft.fft(self.padarr(self.ar, n)) + + def fftma(self, n): + '''Fourier transform of MA polynomial, zero-padded at end to n + + Parameters + ---------- + n : int + length of array after zero-padding + + Returns + ------- + fftar : ndarray + fft of zero-padded ar polynomial + ''' + if n is None: + n = len(self.ar) + return fft.fft(self.padarr(self.ma, n)) + + #@OneTimeProperty # not while still debugging things + def fftarma(self, n=None): + '''Fourier transform of ARMA polynomial, zero-padded at end to n + + The Fourier transform of the ARMA process is calculated as the ratio + of the fft of the MA polynomial divided by the fft of the AR polynomial. + + Parameters + ---------- + n : int + length of array after zero-padding + + Returns + ------- + fftarma : ndarray + fft of zero-padded arma polynomial + ''' + if n is None: + n = self.nobs + return (self.fftma(n) / self.fftar(n)) + + def spd(self, npos): + '''raw spectral density, returns Fourier transform + + n is number of points in positive spectrum, the actual number of points + is twice as large. different from other spd methods with fft + ''' + n = npos + w = fft.fftfreq(2*n) * 2 * np.pi + hw = self.fftarma(2*n) #not sure, need to check normalization + #return (hw*hw.conj()).real[n//2-1:] * 0.5 / np.pi #doesn't show in plot + return (hw*hw.conj()).real * 0.5 / np.pi, w + + def spdshift(self, n): + '''power spectral density using fftshift + + currently returns two-sided according to fft frequencies, use first half + ''' + #size = s1+s2-1 + mapadded = self.padarr(self.ma, n) + arpadded = self.padarr(self.ar, n) + hw = fft.fft(fft.fftshift(mapadded)) / fft.fft(fft.fftshift(arpadded)) + #return np.abs(spd)[n//2-1:] + w = fft.fftfreq(n) * 2 * np.pi + wslice = slice(n//2-1, None, None) + #return (hw*hw.conj()).real[wslice], w[wslice] + return (hw*hw.conj()).real, w + + def spddirect(self, n): + '''power spectral density using padding to length n done by fft + + currently returns two-sided according to fft frequencies, use first half + ''' + #size = s1+s2-1 + #abs looks wrong + hw = fft.fft(self.ma, n) / fft.fft(self.ar, n) + w = fft.fftfreq(n) * 2 * np.pi + wslice = slice(None, n//2, None) + #return (np.abs(hw)**2)[wslice], w[wslice] + return (np.abs(hw)**2) * 0.5/np.pi, w + + def _spddirect2(self, n): + '''this looks bad, maybe with an fftshift + ''' + #size = s1+s2-1 + hw = (fft.fft(np.r_[self.ma[::-1],self.ma], n) + / fft.fft(np.r_[self.ar[::-1],self.ar], n)) + return (hw*hw.conj()) #.real[n//2-1:] + + def spdroots(self, w): + '''spectral density for frequency using polynomial roots + + builds two arrays (number of roots, number of frequencies) + ''' + return self.spdroots_(self.arroots, self.maroots, w) + + def spdroots_(self, arroots, maroots, w): + '''spectral density for frequency using polynomial roots + + builds two arrays (number of roots, number of frequencies) + + Parameters + ---------- + arroots : ndarray + roots of ar (denominator) lag-polynomial + maroots : ndarray + roots of ma (numerator) lag-polynomial + w : array_like + frequencies for which spd is calculated + + Notes + ----- + this should go into a function + ''' + w = np.atleast_2d(w).T + cosw = np.cos(w) + #Greene 5th edt. p626, section 20.2.7.a. + maroots = 1./maroots + arroots = 1./arroots + num = 1 + maroots**2 - 2* maroots * cosw + den = 1 + arroots**2 - 2* arroots * cosw + #print 'num.shape, den.shape', num.shape, den.shape + hw = 0.5 / np.pi * num.prod(-1) / den.prod(-1) #or use expsumlog + return np.squeeze(hw), w.squeeze() + + def spdpoly(self, w, nma=50): + '''spectral density from MA polynomial representation for ARMA process + + References + ---------- + Cochrane, section 8.3.3 + ''' + mpoly = np.polynomial.Polynomial(self.arma2ma(nma)) + hw = mpoly(np.exp(1j * w)) + spd = np.real_if_close(hw * hw.conj() * 0.5/np.pi) + return spd, w + + def filter(self, x): + ''' + filter a timeseries with the ARMA filter + + padding with zero is missing, in example I needed the padding to get + initial conditions identical to direct filter + + Initial filtered observations differ from filter2 and signal.lfilter, but + at end they are the same. + + See Also + -------- + tsa.filters.fftconvolve + + ''' + n = x.shape[0] + if n == self.fftarma: + fftarma = self.fftarma + else: + fftarma = self.fftma(n) / self.fftar(n) + tmpfft = fftarma * fft.fft(x) + return fft.ifft(tmpfft) + + def filter2(self, x, pad=0): + '''filter a time series using fftconvolve3 with ARMA filter + + padding of x currently works only if x is 1d + in example it produces same observations at beginning as lfilter even + without padding. + + TODO: this returns 1 additional observation at the end + ''' + from statsmodels.tsa.filters import fftconvolve3 + if not pad: + pass + elif pad == 'auto': + #just guessing how much padding + x = self.padarr(x, x.shape[0] + 2*(self.nma+self.nar), atend=False) + else: + x = self.padarr(x, x.shape[0] + int(pad), atend=False) + + return fftconvolve3(x, self.ma, self.ar) + + + def acf2spdfreq(self, acovf, nfreq=100, w=None): + ''' + not really a method + just for comparison, not efficient for large n or long acf + + this is also similarly use in tsa.stattools.periodogram with window + ''' + if w is None: + w = np.linspace(0, np.pi, nfreq)[:, None] + nac = len(acovf) + hw = 0.5 / np.pi * (acovf[0] + + 2 * (acovf[1:] * np.cos(w*np.arange(1,nac))).sum(1)) + return hw + + def invpowerspd(self, n): + '''autocovariance from spectral density + + scaling is correct, but n needs to be large for numerical accuracy + maybe padding with zero in fft would be faster + without slicing it returns 2-sided autocovariance with fftshift + + >>> ArmaFft([1, -0.5], [1., 0.4], 40).invpowerspd(2**8)[:10] + array([ 2.08 , 1.44 , 0.72 , 0.36 , 0.18 , 0.09 , + 0.045 , 0.0225 , 0.01125 , 0.005625]) + >>> ArmaFft([1, -0.5], [1., 0.4], 40).acovf(10) + array([ 2.08 , 1.44 , 0.72 , 0.36 , 0.18 , 0.09 , + 0.045 , 0.0225 , 0.01125 , 0.005625]) + ''' + hw = self.fftarma(n) + return np.real_if_close(fft.ifft(hw*hw.conj()), tol=200)[:n] + + def spdmapoly(self, w, twosided=False): + '''ma only, need division for ar, use LagPolynomial + ''' + if w is None: + w = np.linspace(0, np.pi, nfreq) + return 0.5 / np.pi * self.mapoly(np.exp(w*1j)) + + + def plot4(self, fig=None, nobs=100, nacf=20, nfreq=100): + rvs = self.generate_sample(nsample=100, burnin=500) + acf = self.acf(nacf)[:nacf] #TODO: check return length + pacf = self.pacf(nacf) + w = np.linspace(0, np.pi, nfreq) + spdr, wr = self.spdroots(w) + + if fig is None: + import matplotlib.pyplot as plt + fig = plt.figure() + ax = fig.add_subplot(2,2,1) + ax.plot(rvs) + ax.set_title('Random Sample \nar=%s, ma=%s' % (self.ar, self.ma)) + + ax = fig.add_subplot(2,2,2) + ax.plot(acf) + ax.set_title('Autocorrelation \nar=%s, ma=%rs' % (self.ar, self.ma)) + + ax = fig.add_subplot(2,2,3) + ax.plot(wr, spdr) + ax.set_title('Power Spectrum \nar=%s, ma=%s' % (self.ar, self.ma)) + + ax = fig.add_subplot(2,2,4) + ax.plot(pacf) + ax.set_title('Partial Autocorrelation \nar=%s, ma=%s' % (self.ar, self.ma)) + + return fig + + + + + + + +def spdar1(ar, w): + if np.ndim(ar) == 0: + rho = ar + else: + rho = -ar[1] + return 0.5 / np.pi /(1 + rho*rho - 2 * rho * np.cos(w)) + +if __name__ == '__main__': + def maxabs(x,y): + return np.max(np.abs(x-y)) + nobs = 200 #10000 + ar = [1, 0.0] + ma = [1, 0.0] + ar2 = np.zeros(nobs) + ar2[:2] = [1, -0.9] + + + + uni = np.zeros(nobs) + uni[0]=1. + #arrep = signal.lfilter(ma, ar, ar2) + #marep = signal.lfilter([1],arrep, uni) + # same faster: + arcomb = np.convolve(ar, ar2, mode='same') + marep = signal.lfilter(ma,arcomb, uni) #[len(ma):] + print(marep[:10]) + mafr = fft.fft(marep) + + rvs = np.random.normal(size=nobs) + datafr = fft.fft(rvs) + y = fft.ifft(mafr*datafr) + print(np.corrcoef(np.c_[y[2:], y[1:-1], y[:-2]],rowvar=0)) + + arrep = signal.lfilter([1],marep, uni) + print(arrep[:20]) # roundtrip to ar + arfr = fft.fft(arrep) + yfr = fft.fft(y) + x = fft.ifft(arfr*yfr).real #imag part is e-15 + # the next two are equal, roundtrip works + print(x[:5]) + print(rvs[:5]) + print(np.corrcoef(np.c_[x[2:], x[1:-1], x[:-2]],rowvar=0)) + + + # ARMA filter using fft with ratio of fft of ma/ar lag polynomial + # seems much faster than using lfilter + + #padding, note arcomb is already full length + arcombp = np.zeros(nobs) + arcombp[:len(arcomb)] = arcomb + map_ = np.zeros(nobs) #rename: map was shadowing builtin + map_[:len(ma)] = ma + ar0fr = fft.fft(arcombp) + ma0fr = fft.fft(map_) + y2 = fft.ifft(ma0fr/ar0fr*datafr) + #the next two are (almost) equal in real part, almost zero but different in imag + print(y2[:10]) + print(y[:10]) + print(maxabs(y, y2)) # from chfdiscrete + #1.1282071239631782e-014 + + ar = [1, -0.4] + ma = [1, 0.2] + + arma1 = ArmaFft([1, -0.5,0,0,0,00, -0.7, 0.3], [1, 0.8], nobs) + + nfreq = nobs + w = np.linspace(0, np.pi, nfreq) + w2 = np.linspace(0, 2*np.pi, nfreq) + + import matplotlib.pyplot as plt + plt.close('all') + + plt.figure() + spd1, w1 = arma1.spd(2**10) + print(spd1.shape) + _ = plt.plot(spd1) + plt.title('spd fft complex') + + plt.figure() + spd2, w2 = arma1.spdshift(2**10) + print(spd2.shape) + _ = plt.plot(w2, spd2) + plt.title('spd fft shift') + + plt.figure() + spd3, w3 = arma1.spddirect(2**10) + print(spd3.shape) + _ = plt.plot(w3, spd3) + plt.title('spd fft direct') + + plt.figure() + spd3b = arma1._spddirect2(2**10) + print(spd3b.shape) + _ = plt.plot(spd3b) + plt.title('spd fft direct mirrored') + + plt.figure() + spdr, wr = arma1.spdroots(w) + print(spdr.shape) + plt.plot(w, spdr) + plt.title('spd from roots') + + plt.figure() + spdar1_ = spdar1(arma1.ar, w) + print(spdar1_.shape) + _ = plt.plot(w, spdar1_) + plt.title('spd ar1') + + + plt.figure() + wper, spdper = arma1.periodogram(nfreq) + print(spdper.shape) + _ = plt.plot(w, spdper) + plt.title('periodogram') + + startup = 1000 + rvs = arma1.generate_sample(startup+10000)[startup:] + import matplotlib.mlab as mlb + plt.figure() + sdm, wm = mlb.psd(x) + print('sdm.shape', sdm.shape) + sdm = sdm.ravel() + plt.plot(wm, sdm) + plt.title('matplotlib') + + from nitime.algorithms import LD_AR_est + #yule_AR_est(s, order, Nfreqs) + wnt, spdnt = LD_AR_est(rvs, 10, 512) + plt.figure() + print('spdnt.shape', spdnt.shape) + _ = plt.plot(spdnt.ravel()) + print(spdnt[:10]) + plt.title('nitime') + + fig = plt.figure() + arma1.plot4(fig) + + #plt.show() diff --git a/statsmodels/sandbox/tsa/garch.py b/statsmodels/sandbox/tsa/garch.py new file mode 100644 index 0000000..2f64b61 --- /dev/null +++ b/statsmodels/sandbox/tsa/garch.py @@ -0,0 +1,1555 @@ +'''general non-linear MLE for time series analysis + +idea for general version +------------------------ + +subclass defines geterrors(parameters) besides loglike,... +and covariance matrix of parameter estimates (e.g. from hessian +or outerproduct of jacobian) +update: I don't really need geterrors directly, but get_h the conditional + variance process + +new version Garch0 looks ok, time to clean up and test +no constraints yet +in some cases: "Warning: Maximum number of function evaluations has been exceeded." + +Notes +----- + +idea: cache intermediate design matrix for geterrors so it doesn't need + to be build at each function call + +superclass or result class calculates result statistic based +on errors, loglike, jacobian and cov/hessian + -> aic, bic, ... + -> test statistics, tvalue, fvalue, ... + -> new to add: distribution (mean, cov) of non-linear transformation + -> parameter restrictions or transformation with corrected covparams (?) + -> sse, rss, rsquared ??? are they defined from this in general + -> robust parameter cov ??? + -> additional residual based tests, NW, ... likelihood ratio, lagrange + multiplier tests ??? + +how much can be reused from linear model result classes where + `errorsest = y - X*beta` ? + +for tsa: what's the division of labor between model, result instance + and process + +examples: + * arma: ls and mle look good + * arimax: add exog, especially mean, trend, prefilter, e.g. (1-L) + * arma_t: arma with t distributed errors (just a change in loglike) + * garch: need loglike and (recursive) errorest + * regime switching model without unobserved state, e.g. threshold + + +roadmap for garch: + * simple case + * starting values: garch11 explicit formulas + * arma-garch, assumed separable, blockdiagonal Hessian + * empirical example: DJI, S&P500, MSFT, ??? + * other standard garch: egarch, pgarch, + * non-normal distributions + * other methods: forecast, news impact curves (impulse response) + * analytical gradient, Hessian for basic garch + * cleaner simulation of garch + * result statistics, AIC, ... + * parameter constraints + * try penalization for higher lags + * other garch: regime-switching + +for pgarch (power garch) need transformation of etax given + the parameters, but then misofilter should work + general class aparch (see garch glossary) + +References +---------- + +see notes_references.txt + + +Created on Feb 6, 2010 +@author: "josef pktd" +''' +from __future__ import print_function +from statsmodels.compat.python import zip +import numpy as np +from numpy.testing import assert_almost_equal + +from scipy import optimize, signal + +import matplotlib.pyplot as plt + +import numdifftools as ndt + +from statsmodels.base.model import Model, LikelihoodModelResults +from statsmodels.sandbox import tsa + + +def sumofsq(x, axis=0): + """Helper function to calculate sum of squares along first axis""" + return np.sum(x**2, axis=0) + + +def normloglike(x, mu=0, sigma2=1, returnlls=False, axis=0): + + x = np.asarray(x) + x = np.atleast_1d(x) + if axis is None: + x = x.ravel() + #T,K = x.shape + if x.ndim > 1: + nobs = x.shape[axis] + else: + nobs = len(x) + + x = x - mu # assume can be broadcasted + if returnlls: + #Compute the individual log likelihoods if needed + lls = -0.5*(np.log(2*np.pi) + np.log(sigma2) + x**2/sigma2) + # Use these to comput the LL + LL = np.sum(lls,axis) + return LL, lls + else: + #Compute the log likelihood + #print(np.sum(np.log(sigma2),axis)) + LL = -0.5 * (np.sum(np.log(sigma2),axis) + np.sum((x**2)/sigma2, axis) + nobs*np.log(2*np.pi)) + return LL + +# copied from model.py +class LikelihoodModel(Model): + """ + Likelihood model is a subclass of Model. + """ + + def __init__(self, endog, exog=None): + super(LikelihoodModel, self).__init__(endog, exog) + self.initialize() + + def initialize(self): + """ + Initialize (possibly re-initialize) a Model instance. For + instance, the design matrix of a linear model may change + and some things must be recomputed. + """ + pass +#TODO: if the intent is to re-initialize the model with new data then +# this method needs to take inputs... + + def loglike(self, params): + """ + Log-likelihood of model. + """ + raise NotImplementedError + + def score(self, params): + """ + Score vector of model. + + The gradient of logL with respect to each parameter. + """ + raise NotImplementedError + + def information(self, params): + """ + Fisher information matrix of model + + Returns -Hessian of loglike evaluated at params. + """ + raise NotImplementedError + + def hessian(self, params): + """ + The Hessian matrix of the model + """ + raise NotImplementedError + + def fit(self, start_params=None, method='newton', maxiter=35, tol=1e-08): + """ + Fit method for likelihood based models + + Parameters + ---------- + start_params : array-like, optional + An optional + + method : str + Method can be 'newton', 'bfgs', 'powell', 'cg', or 'ncg'. + The default is newton. See scipy.optimze for more information. + """ + methods = ['newton', 'bfgs', 'powell', 'cg', 'ncg', 'fmin'] + if start_params is None: + start_params = [0]*self.exog.shape[1] # will fail for shape (K,) + if not method in methods: + raise ValueError("Unknown fit method %s" % method) + f = lambda params: -self.loglike(params) + score = lambda params: -self.score(params) +# hess = lambda params: -self.hessian(params) + hess = None +#TODO: can we have a unified framework so that we can just do func = method +# and write one call for each solver? + + if method.lower() == 'newton': + iteration = 0 + start = np.array(start_params) + history = [np.inf, start] + while (iteration < maxiter and np.all(np.abs(history[-1] - \ + history[-2])>tol)): + H = self.hessian(history[-1]) + newparams = history[-1] - np.dot(np.linalg.inv(H), + self.score(history[-1])) + history.append(newparams) + iteration += 1 + mlefit = LikelihoodModelResults(self, newparams) + mlefit.iteration = iteration + elif method == 'bfgs': + score=None + xopt, fopt, gopt, Hopt, func_calls, grad_calls, warnflag = \ + optimize.fmin_bfgs(f, start_params, score, full_output=1, + maxiter=maxiter, gtol=tol) + converge = not warnflag + mlefit = LikelihoodModelResults(self, xopt) + optres = 'xopt, fopt, gopt, Hopt, func_calls, grad_calls, warnflag' + self.optimresults = dict(zip(optres.split(', '),[ + xopt, fopt, gopt, Hopt, func_calls, grad_calls, warnflag])) + elif method == 'ncg': + xopt, fopt, fcalls, gcalls, hcalls, warnflag = \ + optimize.fmin_ncg(f, start_params, score, fhess=hess, + full_output=1, maxiter=maxiter, avextol=tol) + mlefit = LikelihoodModelResults(self, xopt) + converge = not warnflag + elif method == 'fmin': + #fmin(func, x0, args=(), xtol=0.0001, ftol=0.0001, maxiter=None, maxfun=None, full_output=0, disp=1, retall=0, callback=None) + xopt, fopt, niter, funcalls, warnflag = \ + optimize.fmin(f, start_params, + full_output=1, maxiter=maxiter, xtol=tol) + mlefit = LikelihoodModelResults(self, xopt) + converge = not warnflag + self._results = mlefit + return mlefit + + +#TODO: I take it this is only a stub and should be included in another +# model class? +class TSMLEModel(LikelihoodModel): + """ + univariate time series model for estimation with maximum likelihood + + Note: This is not working yet + """ + + def __init__(self, endog, exog=None): + #need to override p,q (nar,nma) correctly + super(TSMLEModel, self).__init__(endog, exog) + #set default arma(1,1) + self.nar = 1 + self.nma = 1 + #self.initialize() + + def geterrors(self, params): + raise NotImplementedError + + def loglike(self, params): + """ + Loglikelihood for timeseries model + + Notes + ----- + needs to be overwritten by subclass + """ + raise NotImplementedError + + + def score(self, params): + """ + Score vector for Arma model + """ + #return None + #print(params + jac = ndt.Jacobian(self.loglike, stepMax=1e-4) + return jac(params)[-1] + + def hessian(self, params): + """ + Hessian of arma model. Currently uses numdifftools + """ + #return None + Hfun = ndt.Jacobian(self.score, stepMax=1e-4) + return Hfun(params)[-1] + + + def fit(self, start_params=None, maxiter=5000, method='fmin', tol=1e-08): + '''estimate model by minimizing negative loglikelihood + + does this need to be overwritten ? + ''' + if start_params is None and hasattr(self, '_start_params'): + start_params = self._start_params + #start_params = np.concatenate((0.05*np.ones(self.nar + self.nma), [1])) + mlefit = super(TSMLEModel, self).fit(start_params=start_params, + maxiter=maxiter, method=method, tol=tol) + return mlefit + +class Garch0(TSMLEModel): + '''Garch model, + + still experimentation stage: + simplified structure, plain garch, no constraints + still looking for the design of the base class + + serious bug: + ar estimate looks ok, ma estimate awful + -> check parameterization of lagpolys and constant + looks ok after adding missing constant + but still difference to garch11 function + corrected initial condition + -> only small differences left between the 3 versions + ar estimate is close to true/DGP model + note constant has different parameterization + but design looks better + + ''' + def __init__(self, endog, exog=None): + #need to override p,q (nar,nma) correctly + super(Garch0, self).__init__(endog, exog) + #set default arma(1,1) + self.nar = 1 + self.nma = 1 + #self.initialize() + # put this in fit (?) or in initialize instead + self._etax = endog**2 + self._icetax = np.atleast_1d(self._etax.mean()) + + def initialize(self): + pass + + def geth(self, params): + ''' + + Parameters + ---------- + params : tuple, (ar, ma) + try to keep the params conversion in loglike + + copied from generate_gjrgarch + needs to be extracted to separate function + ''' + #mu, ar, ma = params + ar, ma, mu = params + + #etax = self.endog #this would be enough for basic garch version + etax = self._etax + mu + icetax = self._icetax #read ic-eta-x, initial condition + + #TODO: where does my go with lfilter ????????????? + # shouldn't matter except for interpretation + + nobs = etax.shape[0] + + #check arguments of lfilter + zi = signal.lfiltic(ma,ar, icetax) + #h = signal.lfilter(ar, ma, etax, zi=zi) #np.atleast_1d(etax[:,1].mean())) + #just guessing: b/c ValueError: BUG: filter coefficient a[0] == 0 not supported yet + h = signal.lfilter(ma, ar, etax, zi=zi)[0] + return h + + + def loglike(self, params): + """ + Loglikelihood for timeseries model + + Notes + ----- + needs to be overwritten by subclass + + make more generic with using function _convertparams + which could also include parameter transformation + _convertparams_in, _convertparams_out + + allow for different distributions t, ged,... + """ + p, q = self.nar, self.nma + ar = np.concatenate(([1], params[:p])) + + # check where constant goes + + #ma = np.zeros((q+1,3)) + #ma[0,0] = params[-1] + #lag coefficients for ma innovation + ma = np.concatenate(([0], params[p:p+q])) + + mu = params[-1] + params = (ar, ma, mu) #(ar, ma) + + h = self.geth(params) + + #temporary safe for debugging: + self.params_converted = params + self.h = h #for testing + + sigma2 = np.maximum(h, 1e-6) + axis = 0 + nobs = len(h) + #this doesn't help for exploding paths + #errorsest[np.isnan(errorsest)] = 100 + axis=0 #no choice of axis + + # same as with y = self.endog, ht = sigma2 + # np.log(stats.norm.pdf(y,scale=np.sqrt(ht))).sum() + llike = -0.5 * (np.sum(np.log(sigma2),axis) + + np.sum(((self.endog)**2)/sigma2, axis) + + nobs*np.log(2*np.pi)) + return llike + +class GarchX(TSMLEModel): + '''Garch model, + + still experimentation stage: + another version, this time with exog and miso_filter + still looking for the design of the base class + + not done yet, just a design idea + * use misofilter as in garch (gjr) + * but take etax = exog + this can include constant, asymetric effect (gjr) and + other explanatory variables (e.g. high-low spread) + + todo: renames + eta -> varprocess + etax -> varprocessx + icetax -> varprocessic (is actually ic of eta/sigma^2) + ''' + def __init__(self, endog, exog=None): + #need to override p,q (nar,nma) correctly + super(Garch0, self).__init__(endog, exog) + #set default arma(1,1) + self.nar = 1 + self.nma = 1 + #self.initialize() + # put this in fit (?) or in initialize instead + #nobs defined in super - verify + #self.nobs = nobs = endog.shape[0] + #add nexog to super + #self.nexog = nexog = exog.shape[1] + self._etax = np.column_stack(np.ones((nobs,1)), endog**2, exog) + self._icetax = np.atleast_1d(self._etax.mean()) + + def initialize(self): + pass + + def convert_mod2params(ar, ma, mu): + pass + + def geth(self, params): + ''' + + Parameters + ---------- + params : tuple, (ar, ma) + try to keep the params conversion in loglike + + copied from generate_gjrgarch + needs to be extracted to separate function + ''' + #mu, ar, ma = params + ar, ma, mu = params + + #etax = self.endog #this would be enough for basic garch version + etax = self._etax + mu + icetax = self._icetax #read ic-eta-x, initial condition + + #TODO: where does my go with lfilter ????????????? + # shouldn't matter except for interpretation + + nobs = self.nobs + +## #check arguments of lfilter +## zi = signal.lfiltic(ma,ar, icetax) +## #h = signal.lfilter(ar, ma, etax, zi=zi) #np.atleast_1d(etax[:,1].mean())) +## #just guessing: b/c ValueError: BUG: filter coefficient a[0] == 0 not supported yet +## h = signal.lfilter(ma, ar, etax, zi=zi)[0] +## + h = miso_lfilter(ar, ma, etax, useic=self._icetax)[0] + #print('h.shape', h.shape + hneg = h<0 + if hneg.any(): + #h[hneg] = 1e-6 + h = np.abs(h) + #todo: raise warning, maybe not during optimization calls + + return h + + + def loglike(self, params): + """ + Loglikelihood for timeseries model + + Notes + ----- + needs to be overwritten by subclass + + make more generic with using function _convertparams + which could also include parameter transformation + _convertparams_in, _convertparams_out + + allow for different distributions t, ged,... + """ + p, q = self.nar, self.nma + ar = np.concatenate(([1], params[:p])) + + # check where constant goes + + #ma = np.zeros((q+1,3)) + #ma[0,0] = params[-1] + #lag coefficients for ma innovation + ma = np.concatenate(([0], params[p:p+q])) + + mu = params[-1] + params = (ar, ma, mu) #(ar, ma) + + h = self.geth(params) + + #temporary safe for debugging: + self.params_converted = params + self.h = h #for testing + + sigma2 = np.maximum(h, 1e-6) + axis = 0 + nobs = len(h) + #this doesn't help for exploding paths + #errorsest[np.isnan(errorsest)] = 100 + axis=0 #no choice of axis + + # same as with y = self.endog, ht = sigma2 + # np.log(stats.norm.pdf(y,scale=np.sqrt(ht))).sum() + llike = -0.5 * (np.sum(np.log(sigma2),axis) + + np.sum(((self.endog)**2)/sigma2, axis) + + nobs*np.log(2*np.pi)) + return llike + + +class Garch(TSMLEModel): + '''Garch model gjrgarch (t-garch) + + still experimentation stage, try with + + ''' + def __init__(self, endog, exog=None): + #need to override p,q (nar,nma) correctly + super(Garch, self).__init__(endog, exog) + #set default arma(1,1) + self.nar = 1 + self.nma = 1 + #self.initialize() + + def initialize(self): + pass + + def geterrors(self, params): + ''' + + Parameters + ---------- + params : tuple, (mu, ar, ma) + try to keep the params conversion in loglike + + copied from generate_gjrgarch + needs to be extracted to separate function + ''' + #mu, ar, ma = params + ar, ma = params + eta = self.endog + nobs = eta.shape[0] + + etax = np.empty((nobs,3)) + etax[:,0] = 1 + etax[:,1:] = (eta**2)[:,None] + etax[eta>0,2] = 0 + #print('etax.shape', etax.shape + h = miso_lfilter(ar, ma, etax, useic=np.atleast_1d(etax[:,1].mean()))[0] + #print('h.shape', h.shape + hneg = h<0 + if hneg.any(): + #h[hneg] = 1e-6 + h = np.abs(h) + + #print('Warning negative variance found' + + #check timing, starting time for h and eta, do they match + #err = np.sqrt(h[:len(eta)])*eta #np.random.standard_t(8, size=len(h)) + # let it break if there is a len/shape mismatch + err = np.sqrt(h)*eta + return err, h, etax + + def loglike(self, params): + """ + Loglikelihood for timeseries model + + Notes + ----- + needs to be overwritten by subclass + """ + p, q = self.nar, self.nma + ar = np.concatenate(([1], params[:p])) + #ar = np.concatenate(([1], -np.abs(params[:p]))) #??? + #better safe than fast and sorry + # + ma = np.zeros((q+1,3)) + ma[0,0] = params[-1] + #lag coefficients for ma innovation + ma[:,1] = np.concatenate(([0], params[p:p+q])) + #delta lag coefficients for negative ma innovation + ma[:,2] = np.concatenate(([0], params[p+q:p+2*q])) + + mu = params[-1] + params = (ar, ma) #(mu, ar, ma) + + errorsest, h, etax = self.geterrors(params) + #temporary safe for debugging + self.params_converted = params + self.errorsest, self.h, self.etax = errorsest, h, etax + #h = h[:-1] #correct this in geterrors + #print('shapes errorsest, h, etax', errorsest.shape, h.shape, etax.shape + sigma2 = np.maximum(h, 1e-6) + axis = 0 + nobs = len(errorsest) + #this doesn't help for exploding paths + #errorsest[np.isnan(errorsest)] = 100 + axis=0 #not used +# muy = errorsest.mean() +# # llike is verified, see below +# # same as with y = errorsest, ht = sigma2 +# # np.log(stats.norm.pdf(y,scale=np.sqrt(ht))).sum() +# llike = -0.5 * (np.sum(np.log(sigma2),axis) +# + np.sum(((errorsest)**2)/sigma2, axis) +# + nobs*np.log(2*np.pi)) +# return llike + muy = errorsest.mean() + # llike is verified, see below + # same as with y = errorsest, ht = sigma2 + # np.log(stats.norm.pdf(y,scale=np.sqrt(ht))).sum() + llike = -0.5 * (np.sum(np.log(sigma2),axis) + + np.sum(((self.endog)**2)/sigma2, axis) + + nobs*np.log(2*np.pi)) + return llike + + +def gjrconvertparams(self, params, nar, nma): + """ + flat to matrix + + Notes + ----- + needs to be overwritten by subclass + """ + p, q = nar, nma + ar = np.concatenate(([1], params[:p])) + #ar = np.concatenate(([1], -np.abs(params[:p]))) #??? + #better safe than fast and sorry + # + ma = np.zeros((q+1,3)) + ma[0,0] = params[-1] + #lag coefficients for ma innovation + ma[:,1] = np.concatenate(([0], params[p:p+q])) + #delta lag coefficients for negative ma innovation + ma[:,2] = np.concatenate(([0], params[p+q:p+2*q])) + + mu = params[-1] + params2 = (ar, ma) #(mu, ar, ma) + return paramsclass + +#TODO: this should be generalized to ARMA? +#can possibly also leverage TSME above +# also note that this is NOT yet general +# it was written for my homework, assumes constant is zero +# and that process is AR(1) +# examples at the end of run as main below +class AR(LikelihoodModel): + """ + Notes + ----- + This is not general, only written for the AR(1) case. + + Fit methods that use super and broyden do not yet work. + """ + def __init__(self, endog, exog=None, nlags=1): + if exog is None: # extend to handle ADL(p,q) model? or subclass? + exog = endog[:-nlags] + endog = endog[nlags:] + super(AR, self).__init__(endog, exog) + self.nobs += nlags # add lags back to nobs for real T + +#TODO: need to fix underscore in Model class. +#Done? + def initialize(self): + pass + + def loglike(self, params): + """ + The unconditional loglikelihood of an AR(p) process + + Notes + ----- + Contains constant term. + """ + nobs = self.nobs + y = self.endog + ylag = self.exog + penalty = self.penalty + if isinstance(params,tuple): + # broyden (all optimize.nonlin return a tuple until rewrite commit) + params = np.asarray(params) + usepenalty=False + if not np.all(np.abs(params)<1) and penalty: + oldparams = params + params = np.array([.9999]) # make it the edge + usepenalty=True + diffsumsq = sumofsq(y-np.dot(ylag,params)) + # concentrating the likelihood means that sigma2 is given by + sigma2 = 1/nobs*(diffsumsq-ylag[0]**2*(1-params**2)) + loglike = -nobs/2 * np.log(2*np.pi) - nobs/2*np.log(sigma2) + \ + .5 * np.log(1-params**2) - .5*diffsumsq/sigma2 -\ + ylag[0]**2 * (1-params**2)/(2*sigma2) + if usepenalty: + # subtract a quadratic penalty since we min the negative of loglike + loglike -= 1000 *(oldparams-.9999)**2 + return loglike + + def score(self, params): + """ + Notes + ----- + Need to generalize for AR(p) and for a constant. + Not correct yet. Returns numerical gradient. Depends on package + numdifftools. + """ + y = self.endog + ylag = self.exog + nobs = self.nobs + diffsumsq = sumofsq(y-np.dot(ylag,params)) + dsdr = 1/nobs * -2 *np.sum(ylag*(y-np.dot(ylag,params))[:,None])+\ + 2*params*ylag[0]**2 + sigma2 = 1/nobs*(diffsumsq-ylag[0]**2*(1-params**2)) + gradient = -nobs/(2*sigma2)*dsdr + params/(1-params**2) + \ + 1/sigma2*np.sum(ylag*(y-np.dot(ylag, params))[:,None])+\ + .5*sigma2**-2*diffsumsq*dsdr+\ + ylag[0]**2*params/sigma2 +\ + ylag[0]**2*(1-params**2)/(2*sigma2**2)*dsdr + if self.penalty: + pass + j = Jacobian(self.loglike) + return j(params) +# return gradient + + + def information(self, params): + """ + Not Implemented Yet + """ + return + + def hessian(self, params): + """ + Returns numerical hessian for now. Depends on numdifftools. + """ + + h = Hessian(self.loglike) + return h(params) + + def fit(self, start_params=None, method='bfgs', maxiter=35, tol=1e-08, + penalty=False): + """ + Fit the unconditional maximum likelihood of an AR(p) process. + + Parameters + ---------- + start_params : array-like, optional + A first guess on the parameters. Defaults is a vector of zeros. + method : str, optional + Unconstrained solvers: + Default is 'bfgs', 'newton' (newton-raphson), 'ncg' + (Note that previous 3 are not recommended at the moment.) + and 'powell' + Constrained solvers: + 'bfgs-b', 'tnc' + See notes. + maxiter : int, optional + The maximum number of function evaluations. Default is 35. + tol = float + The convergence tolerance. Default is 1e-08. + penalty : bool + Whether or not to use a penalty function. Default is False, + though this is ignored at the moment and the penalty is always + used if appropriate. See notes. + + Notes + ----- + The unconstrained solvers use a quadratic penalty (regardless if + penalty kwd is True or False) in order to ensure that the solution + stays within (-1,1). The constrained solvers default to using a bound + of (-.999,.999). + """ + self.penalty = penalty + method = method.lower() +#TODO: allow user-specified penalty function +# if penalty and method not in ['bfgs_b','tnc','cobyla','slsqp']: +# minfunc = lambda params : -self.loglike(params) - \ +# self.penfunc(params) +# else: + minfunc = lambda params: -self.loglike(params) + if method in ['newton', 'bfgs', 'ncg']: + super(AR, self).fit(start_params=start_params, method=method, + maxiter=maxiter, tol=tol) + else: + bounds = [(-.999,.999)] # assume stationarity + if start_params == None: + start_params = np.array([0]) #TODO: assumes AR(1) + if method == 'bfgs-b': + retval = optimize.fmin_l_bfgs_b(minfunc, start_params, + approx_grad=True, bounds=bounds) + self.params, self.llf = retval[0:2] + if method == 'tnc': + retval = optimize.fmin_tnc(minfunc, start_params, + approx_grad=True, bounds = bounds) + self.params = retval[0] + if method == 'powell': + retval = optimize.fmin_powell(minfunc,start_params) + self.params = retval[None] +#TODO: write regression tests for Pauli's branch so that +# new line_search and optimize.nonlin can get put in. +#http://projects.scipy.org/scipy/ticket/791 +# if method == 'broyden': +# retval = optimize.broyden2(minfunc, [.5], verbose=True) +# self.results = retval + + +class Arma(LikelihoodModel): + """ + univariate Autoregressive Moving Average model + + Note: This is not working yet, or does it + this can subclass TSMLEModel + """ + + def __init__(self, endog, exog=None): + #need to override p,q (nar,nma) correctly + super(Arma, self).__init__(endog, exog) + #set default arma(1,1) + self.nar = 1 + self.nma = 1 + #self.initialize() + + def initialize(self): + pass + + def geterrors(self, params): + #copied from sandbox.tsa.arima.ARIMA + p, q = self.nar, self.nma + rhoy = np.concatenate(([1], params[:p])) + rhoe = np.concatenate(([1], params[p:p+q])) + errorsest = signal.lfilter(rhoy, rhoe, self.endog) + return errorsest + + def loglike(self, params): + """ + Loglikelihood for arma model + + Notes + ----- + The ancillary parameter is assumed to be the last element of + the params vector + """ + +# #copied from sandbox.tsa.arima.ARIMA +# p = self.nar +# rhoy = np.concatenate(([1], params[:p])) +# rhoe = np.concatenate(([1], params[p:-1])) +# errorsest = signal.lfilter(rhoy, rhoe, self.endog) + errorsest = self.geterrors(params) + sigma2 = np.maximum(params[-1]**2, 1e-6) + axis = 0 + nobs = len(errorsest) + #this doesn't help for exploding paths + #errorsest[np.isnan(errorsest)] = 100 +# llike = -0.5 * (np.sum(np.log(sigma2),axis) +# + np.sum((errorsest**2)/sigma2, axis) +# + nobs*np.log(2*np.pi)) + llike = -0.5 * (nobs*np.log(sigma2) + + np.sum((errorsest**2)/sigma2, axis) + + nobs*np.log(2*np.pi)) + return llike + + def score(self, params): + """ + Score vector for Arma model + """ + #return None + #print(params + jac = ndt.Jacobian(self.loglike, stepMax=1e-4) + return jac(params)[-1] + + + + def hessian(self, params): + """ + Hessian of arma model. Currently uses numdifftools + """ + #return None + Hfun = ndt.Jacobian(self.score, stepMax=1e-4) + return Hfun(params)[-1] + + + def fit(self, start_params=None, maxiter=5000, method='fmin', tol=1e-08): + if start_params is None: + start_params = np.concatenate((0.05*np.ones(self.nar + self.nma), [1])) + mlefit = super(Arma, self).fit(start_params=start_params, + maxiter=maxiter, method=method, tol=tol) + return mlefit + +def generate_kindofgarch(nobs, ar, ma, mu=1.): + '''simulate garch like process but not squared errors in arma + used for initial trial but produces nice graph + ''' + #garm1, gmam1 = [0.4], [0.2] + #pqmax = 1 +# res = np.zeros(nobs+pqmax) +# rvs = np.random.randn(nobs+pqmax,2) +# for t in range(pqmax,nobs+pqmax): +# res[i] = + #ar = [1.0, -0.99] + #ma = [1.0, 0.5] + #this has the wrong distribution, should be eps**2 + #TODO: use new version tsa.arima.??? instead, has distr option + #arest = tsa.arima.ARIMA() + #arest = tsa.arima.ARIMA #try class method, ARIMA needs data in constructor + from statsmodels.tsa.arima_process import arma_generate_sample + h = arma_generate_sample(ar,ma,nobs,0.1) + #h = np.abs(h) + h = (mu+h)**2 + h = np.exp(h) + err = np.sqrt(h)*np.random.randn(nobs) + return err, h + +def generate_garch(nobs, ar, ma, mu=1., scale=0.1): + '''simulate standard garch + + scale : float + scale/standard deviation of innovation process in GARCH process + ''' + + eta = scale*np.random.randn(nobs) + # copied from armageneratesample + h = signal.lfilter(ma, ar, eta**2) + + # + #h = (mu+h)**2 + #h = np.abs(h) + #h = np.exp(h) + #err = np.sqrt(h)*np.random.randn(nobs) + err = np.sqrt(h)*eta #np.random.standard_t(8, size=nobs) + return err, h + + + +def generate_gjrgarch(nobs, ar, ma, mu=1., scale=0.1, varinnovation=None): + '''simulate gjr garch process + + Parameters + ---------- + ar : array_like, 1d + autoregressive term for variance + ma : array_like, 2d + moving average term for variance, with coefficients for negative + shocks in second column + mu : float + constant in variance law of motion + scale : float + scale/standard deviation of innovation process in GARCH process + + Returns + ------- + err : array 1d, (nobs+?,) + simulated gjr-garch process, + h : array 1d, (nobs+?,) + simulated variance + etax : array 1d, (nobs+?,) + data matrix for constant and ma terms in variance equation + + Notes + ----- + + References + ---------- + + + + ''' + + if varinnovation is None: # rename ? + eta = scale*np.random.randn(nobs) + else: + eta = varinnovation + # copied from armageneratesample + etax = np.empty((nobs,3)) + etax[:,0] = mu + etax[:,1:] = (eta**2)[:,None] + etax[eta>0,2] = 0 + h = miso_lfilter(ar, ma, etax)[0] + + # + #h = (mu+h)**2 + #h = np.abs(h) + #h = np.exp(h) + #err = np.sqrt(h)*np.random.randn(nobs) + #print('h.shape', h.shape) + err = np.sqrt(h[:len(eta)])*eta #np.random.standard_t(8, size=len(h)) + return err, h, etax + +def loglike_GARCH11(params, y): + # Computes the likelihood vector of a GARCH11 + # assumes y is centered + + w = params[0] # constant (1); + alpha = params[1] # coefficient of lagged squared error + beta = params[2] # coefficient of lagged variance + + y2 = y**2; + nobs = y2.shape[0] + ht = np.zeros(nobs); + ht[0] = y2.mean() #sum(y2)/T; + + for i in range(1,nobs): + ht[i] = w + alpha*y2[i-1] + beta * ht[i-1] + + sqrtht = np.sqrt(ht) + x = y/sqrtht + + llvalues = -0.5*np.log(2*np.pi) - np.log(sqrtht) - 0.5*(x**2); + return llvalues.sum(), llvalues, ht + +from statsmodels.tsa.filters.filtertools import miso_lfilter +#copied to statsmodels.tsa.filters.filtertools +def miso_lfilter_old(ar, ma, x, useic=False): #[0.1,0.1]): + ''' + use nd convolution to merge inputs, + then use lfilter to produce output + + arguments for column variables + return currently 1d + + Parameters + ---------- + ar : array_like, 1d, float + autoregressive lag polynomial including lag zero, ar(L)y_t + ma : array_like, same ndim as x, currently 2d + moving average lag polynomial ma(L)x_t + x : array_like, 2d + input data series, time in rows, variables in columns + + Returns + ------- + y : array, 1d + filtered output series + inp : array, 1d + combined input series + + Notes + ----- + currently for 2d inputs only, no choice of axis + Use of signal.lfilter requires that ar lag polynomial contains + floating point numbers + does not cut off invalid starting and final values + + miso_lfilter find array y such that:: + + ar(L)y_t = ma(L)x_t + + with shapes y (nobs,), x (nobs,nvars), ar (narlags,), ma (narlags,nvars) + + ''' + ma = np.asarray(ma) + ar = np.asarray(ar) + #inp = signal.convolve(x, ma, mode='valid') + #inp = signal.convolve(x, ma)[:, (x.shape[1]+1)//2] + #Note: convolve mixes up the variable left-right flip + #I only want the flip in time direction + #this might also be a mistake or problem in other code where I + #switched from correlate to convolve + # correct convolve version, for use with fftconvolve in other cases + inp2 = signal.convolve(x, ma[:,::-1])[:, (x.shape[1]+1)//2] + inp = signal.correlate(x, ma[::-1,:])[:, (x.shape[1]+1)//2] + assert_almost_equal(inp2, inp) + nobs = x.shape[0] + # cut of extra values at end + + #todo initialize also x for correlate + if useic: + return signal.lfilter([1], ar, inp, + #zi=signal.lfilter_ic(np.array([1.,0.]),ar, ic))[0][:nobs], inp[:nobs] + zi=signal.lfiltic(np.array([1.,0.]),ar, useic))[0][:nobs], inp[:nobs] + else: + return signal.lfilter([1], ar, inp)[:nobs], inp[:nobs] + #return signal.lfilter([1], ar, inp), inp + + +def test_misofilter(): + x = np.arange(20).reshape(10,2) + y, inp = miso_lfilter([1., -1],[[1,1],[0,0]], x) + assert_almost_equal(y[:-1], x.sum(1).cumsum(), decimal=15) + inp2 = signal.convolve(np.arange(20),np.ones(2))[1::2] + assert_almost_equal(inp[:-1], inp2, decimal=15) + + inp2 = signal.convolve(np.arange(20),np.ones(4))[1::2] + y, inp = miso_lfilter([1., -1],[[1,1],[1,1]], x) + assert_almost_equal(y, inp2.cumsum(), decimal=15) + assert_almost_equal(inp, inp2, decimal=15) + y, inp = miso_lfilter([1., 0],[[1,1],[1,1]], x) + assert_almost_equal(y, inp2, decimal=15) + assert_almost_equal(inp, inp2, decimal=15) + + x3 = np.column_stack((np.ones((x.shape[0],1)),x)) + y, inp = miso_lfilter([1., 0],np.array([[-2.0,3,1],[0.0,0.0,0]]),x3) + y3 = (x3*np.array([-2,3,1])).sum(1) + assert_almost_equal(y[:-1], y3, decimal=15) + assert_almost_equal(y, inp, decimal=15) + y4 = y3.copy() + y4[1:] += x3[:-1,1] + y, inp = miso_lfilter([1., 0],np.array([[-2.0,3,1],[0.0,1.0,0]]),x3) + assert_almost_equal(y[:-1], y4, decimal=15) + assert_almost_equal(y, inp, decimal=15) + y4 = y3.copy() + y4[1:] += x3[:-1,0] + y, inp = miso_lfilter([1., 0],np.array([[-2.0,3,1],[1.0,0.0,0]]),x3) + assert_almost_equal(y[:-1], y4, decimal=15) + assert_almost_equal(y, inp, decimal=15) + y, inp = miso_lfilter([1., -1],np.array([[-2.0,3,1],[1.0,0.0,0]]),x3) + assert_almost_equal(y[:-1], y4.cumsum(), decimal=15) + y4 = y3.copy() + y4[1:] += x3[:-1,2] + y, inp = miso_lfilter([1., 0],np.array([[-2.0,3,1],[0.0,0.0,1.0]]),x3) + assert_almost_equal(y[:-1], y4, decimal=15) + assert_almost_equal(y, inp, decimal=15) + y, inp = miso_lfilter([1., -1],np.array([[-2.0,3,1],[0.0,0.0,1.0]]),x3) + assert_almost_equal(y[:-1], y4.cumsum(), decimal=15) + + y, inp = miso_lfilter([1., 0],[[1,0],[1,0],[1,0]], x) + yt = np.convolve(x[:,0], [1,1,1]) + assert_almost_equal(y, yt, decimal=15) + assert_almost_equal(inp, yt, decimal=15) + y, inp = miso_lfilter([1., 0],[[0,1],[0,1],[0,1]], x) + yt = np.convolve(x[:,1], [1,1,1]) + assert_almost_equal(y, yt, decimal=15) + assert_almost_equal(inp, yt, decimal=15) + + y, inp = miso_lfilter([1., 0],[[0,1],[0,1],[1,1]], x) + yt = np.convolve(x[:,1], [1,1,1]) + yt[2:] += x[:,0] + assert_almost_equal(y, yt, decimal=15) + assert_almost_equal(inp, yt, decimal=15) + +def test_gjrgarch(): + # test impulse response of gjr simulator + varinno = np.zeros(100) + varinno[0] = 1. + errgjr5,hgjr5, etax5 = generate_gjrgarch(100, [1.0, 0], + [[1., 1,0],[0, 0.1,0.8],[0, 0.05,0.7],[0, 0.01,0.6]], + mu=0.0,scale=0.1, varinnovation=varinno) + ht = np.array([ 1., 0.1, 0.05, 0.01, 0., 0. ]) + assert_almost_equal(hgjr5[:6], ht, decimal=15) + + errgjr5,hgjr5, etax5 = generate_gjrgarch(100, [1.0, -1.0], + [[1., 1,0],[0, 0.1,0.8],[0, 0.05,0.7],[0, 0.01,0.6]], + mu=0.0,scale=0.1, varinnovation=varinno) + assert_almost_equal(hgjr5[:6], ht.cumsum(), decimal=15) + + errgjr5,hgjr5, etax5 = generate_gjrgarch(100, [1.0, 1.0], + [[1., 1,0],[0, 0.1,0.8],[0, 0.05,0.7],[0, 0.01,0.6]], + mu=0.0,scale=0.1, varinnovation=varinno) + ht1 = [0] + for h in ht: ht1.append(h-ht1[-1]) + assert_almost_equal(hgjr5[:6], ht1[1:], decimal=15) + + # negative shock + varinno = np.zeros(100) + varinno[0] = -1. + errgjr5,hgjr5, etax5 = generate_gjrgarch(100, [1.0, 0], + [[1., 1,0],[0, 0.1,0.8],[0, 0.05,0.7],[0, 0.01,0.6]], + mu=0.0,scale=0.1, varinnovation=varinno) + ht = np.array([ 1. , 0.9 , 0.75, 0.61, 0. , 0. ]) + assert_almost_equal(hgjr5[:6], ht, decimal=15) + + errgjr5,hgjr5, etax5 = generate_gjrgarch(100, [1.0, -1.0], + [[1., 1,0],[0, 0.1,0.8],[0, 0.05,0.7],[0, 0.01,0.6]], + mu=0.0,scale=0.1, varinnovation=varinno) + assert_almost_equal(hgjr5[:6], ht.cumsum(), decimal=15) + + errgjr5,hgjr5, etax5 = generate_gjrgarch(100, [1.0, 1.0], + [[1., 1,0],[0, 0.1,0.8],[0, 0.05,0.7],[0, 0.01,0.6]], + mu=0.0,scale=0.1, varinnovation=varinno) + ht1 = [0] + for h in ht: ht1.append(h-ht1[-1]) + assert_almost_equal(hgjr5[:6], ht1[1:], decimal=15) + + +''' +>>> print(signal.correlate(x3, np.array([[-2.0,3,1],[0.0,0.0,0]])[::-1,:],mode='full')[:-1, (x3.shape[1]+1)//2] +[ -1. 7. 15. 23. 31. 39. 47. 55. 63. 71.] +>>> (x3*np.array([-2,3,1])).sum(1) +array([ -1., 7., 15., 23., 31., 39., 47., 55., 63., 71.]) +''' + +def garchplot(err, h, title='Garch simulation'): + plt.figure() + plt.subplot(311) + plt.plot(err) + plt.title(title) + plt.ylabel('y') + plt.subplot(312) + plt.plot(err**2) + plt.ylabel('$y^2$') + plt.subplot(313) + plt.plot(h) + plt.ylabel('conditional variance') + +if __name__ == '__main__': + + #test_misofilter() + #test_gjrgarch() + + examples = ['garch'] + if 'arma' in examples: + arest = tsa.arima.ARIMA() + print("\nExample 1") + ar = [1.0, -0.8] + ma = [1.0, 0.5] + y1 = arest.generate_sample(ar,ma,1000,0.1) + y1 -= y1.mean() #no mean correction/constant in estimation so far + + arma1 = Arma(y1) + arma1.nar = 1 + arma1.nma = 1 + arma1res = arma1.fit(method='fmin') + print(arma1res.params) + + #Warning need new instance otherwise results carry over + arma2 = Arma(y1) + res2 = arma2.fit(method='bfgs') + print(res2.params) + print(res2.model.hessian(res2.params)) + print(ndt.Hessian(arma1.loglike, stepMax=1e-2)(res2.params)) + resls = arest.fit(y1,1,1) + print(resls[0]) + print(resls[1]) + + + + print('\nparameter estimate') + print('parameter of DGP ar(1), ma(1), sigma_error') + print([-0.8, 0.5, 0.1]) + print('mle with fmin') + print(arma1res.params) + print('mle with bfgs') + print(res2.params) + print('cond. least squares uses optim.leastsq ?') + errls = arest.error_estimate + print(resls[0], np.sqrt(np.dot(errls,errls)/errls.shape[0])) + + err = arma1.geterrors(res2.params) + print('cond least squares parameter cov') + #print(np.dot(err,err)/err.shape[0] * resls[1]) + #errls = arest.error_estimate + print(np.dot(errls,errls)/errls.shape[0] * resls[1]) + # print('fmin hessian') + # print(arma1res.model.optimresults['Hopt'][:2,:2]) + print('bfgs hessian') + print(res2.model.optimresults['Hopt'][:2,:2]) + print('numdifftools inverse hessian') + print(-np.linalg.inv(ndt.Hessian(arma1.loglike, stepMax=1e-2)(res2.params))[:2,:2]) + + arma3 = Arma(y1**2) + res3 = arma3.fit(method='bfgs') + print(res3.params) + + nobs = 1000 + + if 'garch' in examples: + err,h = generate_kindofgarch(nobs, [1.0, -0.95], [1.0, 0.1], mu=0.5) + import matplotlib.pyplot as plt + plt.figure() + plt.subplot(211) + plt.plot(err) + plt.subplot(212) + plt.plot(h) + #plt.show() + + seed = 3842774 #91234 #8837708 + seed = np.random.randint(9999999) + print('seed', seed) + np.random.seed(seed) + ar1 = -0.9 + err,h = generate_garch(nobs, [1.0, ar1], [1.0, 0.50], mu=0.0,scale=0.1) + # plt.figure() + # plt.subplot(211) + # plt.plot(err) + # plt.subplot(212) + # plt.plot(h) + # plt.figure() + # plt.subplot(211) + # plt.plot(err[-400:]) + # plt.subplot(212) + # plt.plot(h[-400:]) + #plt.show() + garchplot(err, h) + garchplot(err[-400:], h[-400:]) + + + np.random.seed(seed) + errgjr,hgjr, etax = generate_gjrgarch(nobs, [1.0, ar1], + [[1,0],[0.5,0]], mu=0.0,scale=0.1) + garchplot(errgjr[:nobs], hgjr[:nobs], 'GJR-GARCH(1,1) Simulation - symmetric') + garchplot(errgjr[-400:nobs], hgjr[-400:nobs], 'GJR-GARCH(1,1) Simulation - symmetric') + + np.random.seed(seed) + errgjr2,hgjr2, etax = generate_gjrgarch(nobs, [1.0, ar1], + [[1,0],[0.1,0.9]], mu=0.0,scale=0.1) + garchplot(errgjr2[:nobs], hgjr2[:nobs], 'GJR-GARCH(1,1) Simulation') + garchplot(errgjr2[-400:nobs], hgjr2[-400:nobs], 'GJR-GARCH(1,1) Simulation') + + np.random.seed(seed) + errgjr3,hgjr3, etax3 = generate_gjrgarch(nobs, [1.0, ar1], + [[1,0],[0.1,0.9],[0.1,0.9],[0.1,0.9]], mu=0.0,scale=0.1) + garchplot(errgjr3[:nobs], hgjr3[:nobs], 'GJR-GARCH(1,3) Simulation') + garchplot(errgjr3[-400:nobs], hgjr3[-400:nobs], 'GJR-GARCH(1,3) Simulation') + + np.random.seed(seed) + errgjr4,hgjr4, etax4 = generate_gjrgarch(nobs, [1.0, ar1], + [[1., 1,0],[0, 0.1,0.9],[0, 0.1,0.9],[0, 0.1,0.9]], + mu=0.0,scale=0.1) + garchplot(errgjr4[:nobs], hgjr4[:nobs], 'GJR-GARCH(1,3) Simulation') + garchplot(errgjr4[-400:nobs], hgjr4[-400:nobs], 'GJR-GARCH(1,3) Simulation') + + varinno = np.zeros(100) + varinno[0] = 1. + errgjr5,hgjr5, etax5 = generate_gjrgarch(100, [1.0, -0.], + [[1., 1,0],[0, 0.1,0.8],[0, 0.05,0.7],[0, 0.01,0.6]], + mu=0.0,scale=0.1, varinnovation=varinno) + garchplot(errgjr5[:20], hgjr5[:20], 'GJR-GARCH(1,3) Simulation') + #garchplot(errgjr4[-400:nobs], hgjr4[-400:nobs], 'GJR-GARCH(1,3) Simulation') + + + #plt.show() + seed = np.random.randint(9999999) # 9188410 + print('seed', seed) + + x = np.arange(20).reshape(10,2) + x3 = np.column_stack((np.ones((x.shape[0],1)),x)) + y, inp = miso_lfilter([1., 0],np.array([[-2.0,3,1],[0.0,0.0,0]]),x3) + + nobs = 1000 + warmup = 1000 + np.random.seed(seed) + ar = [1.0, -0.7]#7, -0.16, -0.1] + #ma = [[1., 1, 0],[0, 0.6,0.1],[0, 0.1,0.1],[0, 0.1,0.1]] + ma = [[1., 0, 0],[0, 0.4,0.0]] #,[0, 0.9,0.0]] +# errgjr4,hgjr4, etax4 = generate_gjrgarch(warmup+nobs, [1.0, -0.99], +# [[1., 1, 0],[0, 0.6,0.1],[0, 0.1,0.1],[0, 0.1,0.1]], +# mu=0.2, scale=0.25) + + errgjr4,hgjr4, etax4 = generate_gjrgarch(warmup+nobs, ar, ma, + mu=0.4, scale=1.01) + errgjr4,hgjr4, etax4 = errgjr4[warmup:], hgjr4[warmup:], etax4[warmup:] + garchplot(errgjr4[:nobs], hgjr4[:nobs], 'GJR-GARCH(1,3) Simulation') + ggmod = Garch(errgjr4-errgjr4.mean())#hgjr4[:nobs])#-hgjr4.mean()) #errgjr4) + ggmod.nar = 1 + ggmod.nma = 1 + ggmod._start_params = np.array([-0.6, 0.1, 0.2, 0.0]) + ggres = ggmod.fit(start_params=np.array([-0.6, 0.1, 0.2, 0.0]), maxiter=1000) + print('ggres.params', ggres.params) + garchplot(ggmod.errorsest, ggmod.h) + #plt.show() + + print('Garch11') + print(optimize.fmin(lambda params: -loglike_GARCH11(params, errgjr4-errgjr4.mean())[0], [0.93, 0.9, 0.2])) + + ggmod0 = Garch0(errgjr4-errgjr4.mean())#hgjr4[:nobs])#-hgjr4.mean()) #errgjr4) + ggmod0.nar = 1 + ggmod.nma = 1 + start_params = np.array([-0.6, 0.2, 0.1]) + ggmod0._start_params = start_params #np.array([-0.6, 0.1, 0.2, 0.0]) + ggres0 = ggmod0.fit(start_params=start_params, maxiter=2000) + print('ggres0.params', ggres0.params) + + ggmod0 = Garch0(errgjr4-errgjr4.mean())#hgjr4[:nobs])#-hgjr4.mean()) #errgjr4) + ggmod0.nar = 1 + ggmod.nma = 1 + start_params = np.array([-0.6, 0.2, 0.1]) + ggmod0._start_params = start_params #np.array([-0.6, 0.1, 0.2, 0.0]) + ggres0 = ggmod0.fit(start_params=start_params, method='bfgs', maxiter=2000) + print('ggres0.params', ggres0.params) + + + if 'rpy' in examples: + from rpy import r + f = r.formula('~garch(1, 1)') + #fit = r.garchFit(f, data = errgjr4) + x = r.garchSim( n = 500) + print('R acf', tsa.acf(np.power(x,2))[:15]) + arma3 = Arma(np.power(x,2)) + arma3res = arma3.fit(start_params=[-0.2,0.1,0.5],maxiter=5000) + print(arma3res.params) + arma3b = Arma(np.power(x,2)) + arma3bres = arma3b.fit(start_params=[-0.2,0.1,0.5],maxiter=5000, method='bfgs') + print(arma3bres.params) + + llf = loglike_GARCH11([0.93, 0.9, 0.2], errgjr4) + print(llf[0]) + + erro,ho, etaxo = generate_gjrgarch(20, ar, ma, mu=0.04, scale=0.01, + varinnovation = np.ones(20)) + + + ''' this looks relatively good + + >>> Arma.initialize = lambda x: x + >>> arma3 = Arma(errgjr4**2) + >>> arma3res = arma3.fit() + Warning: Maximum number of function evaluations has been exceeded. + >>> arma3res.params + array([-0.775, -0.583, -0.001]) + >>> arma2.nar + 1 + >>> arma2.nma + 1 + + unit root ? + >>> arma3 = Arma(hgjr4) + >>> arma3res = arma3.fit() + Optimization terminated successfully. + Current function value: -3641.529780 + Iterations: 250 + Function evaluations: 458 + >>> arma3res.params + array([ -1.000e+00, -3.096e-04, 6.343e-03]) + + or maybe not great + >>> arma3res = arma3.fit(start_params=[-0.8,0.1,0.5],maxiter=5000) + Warning: Maximum number of function evaluations has been exceeded. + >>> arma3res.params + array([-0.086, 0.186, -0.001]) + >>> arma3res = arma3.fit(start_params=[-0.8,0.1,0.5],maxiter=5000,method='bfgs') + Divide-by-zero encountered: rhok assumed large + Optimization terminated successfully. + Current function value: -5988.332952 + Iterations: 16 + Function evaluations: 245 + Gradient evaluations: 49 + >>> arma3res.params + array([ -9.995e-01, -9.715e-01, 6.501e-04]) + ''' + + ''' + current problems + persistence in errgjr looks too low, small tsa.acf(errgjr4**2)[:15] + as a consequence the ML estimate has also very little persistence, + estimated ar term is much too small + -> need to compare with R or matlab + + help.search("garch") : ccgarch, garchSim(fGarch), garch(tseries) + HestonNandiGarchFit(fOptions) + + > library('fGarch') + > spec = garchSpec() + > x = garchSim(model = spec@model, n = 500) + > acf(x**2) # has low correlation + but fit has high parameters: + > fit = garchFit(~garch(1, 1), data = x) + + with rpy: + + from rpy import r + r.library('fGarch') + f = r.formula('~garch(1, 1)') + fit = r.garchFit(f, data = errgjr4) + Final Estimate: + LLH: -3198.2 norm LLH: -3.1982 + mu omega alpha1 beta1 + 1.870485e-04 9.437557e-05 3.457349e-02 1.000000e-08 + + second run with ar = [1.0, -0.8] ma = [[1., 0, 0],[0, 1.0,0.0]] + Final Estimate: + LLH: -3979.555 norm LLH: -3.979555 + mu omega alpha1 beta1 + 1.465050e-05 1.641482e-05 1.092600e-01 9.654438e-02 + mine: + >>> ggres.params + array([ -2.000e-06, 3.283e-03, 3.769e-01, -1.000e-06]) + + another rain, same ar, ma + Final Estimate: + LLH: -3956.197 norm LLH: -3.956197 + mu omega alpha1 beta1 + 7.487278e-05 1.171238e-06 1.511080e-03 9.440843e-01 + + every step needs to be compared and tested + + something looks wrong with likelihood function, either a silly + mistake or still some conceptional problems + + * found the silly mistake, I was normalizing the errors before + plugging into espression for likelihood function + + * now gjr garch estimation works and produces results that are very + close to the explicit garch11 estimation + + initial conditions for miso_filter need to be cleaned up + + lots of clean up to to after the bug hunting + + ''' + y = np.random.randn(20) + params = [0.93, 0.9, 0.2] + lls, llt, ht = loglike_GARCH11(params, y) + sigma2 = ht + axis=0 + nobs = len(ht) + llike = -0.5 * (np.sum(np.log(sigma2),axis) + + np.sum((y**2)/sigma2, axis) + + nobs*np.log(2*np.pi)) + print(lls, llike) + #print(np.log(stats.norm.pdf(y,scale=np.sqrt(ht))).sum()) + + + + ''' + >>> optimize.fmin(lambda params: -loglike_GARCH11(params, errgjr4)[0], [0.93, 0.9, 0.2]) + Optimization terminated successfully. + Current function value: 7312.393886 + Iterations: 95 + Function evaluations: 175 + array([ 3.691, 0.072, 0.932]) + >>> ar + [1.0, -0.93000000000000005] + >>> ma + [[1.0, 0, 0], [0, 0.90000000000000002, 0.0]] + ''' + + + np.random.seed(1) + tseries = np.zeros(200) # set first observation + for i in range(1,200): # get 99 more observations based on the given process + error = np.random.randn() + tseries[i] = .9 * tseries[i-1] + .01 * error + + tseries = tseries[100:] + + armodel = AR(tseries) + #armodel.fit(method='bfgs-b') + #armodel.fit(method='tnc') + #powell should be the most robust, see Hamilton 5.7 + armodel.fit(method='powell', penalty=True) + # The below don't work yet + #armodel.fit(method='newton', penalty=True) + #armodel.fit(method='broyden', penalty=True) + print("Unconditional MLE for AR(1) y_t = .9*y_t-1 +.01 * err") + print(armodel.params) diff --git a/statsmodels/sandbox/tsa/movstat.py b/statsmodels/sandbox/tsa/movstat.py new file mode 100644 index 0000000..a8937ad --- /dev/null +++ b/statsmodels/sandbox/tsa/movstat.py @@ -0,0 +1,415 @@ +'''using scipy signal and numpy correlate to calculate some time series +statistics + +original developer notes + +see also scikits.timeseries (movstat is partially inspired by it) +added 2009-08-29 +timeseries moving stats are in c, autocorrelation similar to here +I thought I saw moving stats somewhere in python, maybe not) + + +TODO + +moving statistics +- filters don't handle boundary conditions nicely (correctly ?) +e.g. minimum order filter uses 0 for out of bounds value +-> append and prepend with last resp. first value +- enhance for nd arrays, with axis = 0 + + + +Note: Equivalence for 1D signals +>>> np.all(signal.correlate(x,[1,1,1],'valid')==np.correlate(x,[1,1,1])) +True +>>> np.all(ndimage.filters.correlate(x,[1,1,1], origin = -1)[:-3+1]==np.correlate(x,[1,1,1])) +True + +# multidimensional, but, it looks like it uses common filter across time series, no VAR +ndimage.filters.correlate(np.vstack([x,x]),np.array([[1,1,1],[0,0,0]]), origin = 1) +ndimage.filters.correlate(x,[1,1,1],origin = 1)) +ndimage.filters.correlate(np.vstack([x,x]),np.array([[0.5,0.5,0.5],[0.5,0.5,0.5]]), \ +origin = 1) + +>>> np.all(ndimage.filters.correlate(np.vstack([x,x]),np.array([[1,1,1],[0,0,0]]), origin = 1)[0]==\ +ndimage.filters.correlate(x,[1,1,1],origin = 1)) +True +>>> np.all(ndimage.filters.correlate(np.vstack([x,x]),np.array([[0.5,0.5,0.5],[0.5,0.5,0.5]]), \ +origin = 1)[0]==ndimage.filters.correlate(x,[1,1,1],origin = 1)) + + +update +2009-09-06: cosmetic changes, rearrangements +''' + +from __future__ import print_function +import numpy as np +from scipy import signal + +from numpy.testing import assert_array_equal, assert_array_almost_equal + +import statsmodels.api as sm + + +def expandarr(x,k): + #make it work for 2D or nD with axis + kadd = k + if np.ndim(x) == 2: + kadd = (kadd, np.shape(x)[1]) + return np.r_[np.ones(kadd)*x[0],x,np.ones(kadd)*x[-1]] + +def movorder(x, order = 'med', windsize=3, lag='lagged'): + '''moving order statistics + + Parameters + ---------- + x : array + time series data + order : float or 'med', 'min', 'max' + which order statistic to calculate + windsize : int + window size + lag : 'lagged', 'centered', or 'leading' + location of window relative to current position + + Returns + ------- + filtered array + + + ''' + + #if windsize is even should it raise ValueError + if lag == 'lagged': + lead = windsize//2 + elif lag == 'centered': + lead = 0 + elif lag == 'leading': + lead = -windsize//2 +1 + else: + raise ValueError + if np.isfinite(order) == True: #if np.isnumber(order): + ord = order # note: ord is a builtin function + elif order == 'med': + ord = (windsize - 1)/2 + elif order == 'min': + ord = 0 + elif order == 'max': + ord = windsize - 1 + else: + raise ValueError + + #return signal.order_filter(x,np.ones(windsize),ord)[:-lead] + xext = expandarr(x, windsize) + #np.r_[np.ones(windsize)*x[0],x,np.ones(windsize)*x[-1]] + return signal.order_filter(xext,np.ones(windsize),ord)[windsize-lead:-(windsize+lead)] + +def check_movorder(): + '''graphical test for movorder''' + import matplotlib.pylab as plt + x = np.arange(1,10) + xo = movorder(x, order='max') + assert_array_equal(xo, x) + x = np.arange(10,1,-1) + xo = movorder(x, order='min') + assert_array_equal(xo, x) + assert_array_equal(movorder(x, order='min', lag='centered')[:-1], x[1:]) + + tt = np.linspace(0,2*np.pi,15) + x = np.sin(tt) + 1 + xo = movorder(x, order='max') + plt.figure() + plt.plot(tt,x,'.-',tt,xo,'.-') + plt.title('moving max lagged') + xo = movorder(x, order='max', lag='centered') + plt.figure() + plt.plot(tt,x,'.-',tt,xo,'.-') + plt.title('moving max centered') + xo = movorder(x, order='max', lag='leading') + plt.figure() + plt.plot(tt,x,'.-',tt,xo,'.-') + plt.title('moving max leading') + +# identity filter +##>>> signal.order_filter(x,np.ones(1),0) +##array([ 1., 2., 3., 4., 5., 6., 7., 8., 9.]) +# median filter +##signal.medfilt(np.sin(x), kernel_size=3) +##>>> plt.figure() +## +##>>> x=np.linspace(0,3,100);plt.plot(x,np.sin(x),x,signal.medfilt(np.sin(x), kernel_size=3)) + +# remove old version +##def movmeanvar(x, windowsize=3, valid='same'): +## ''' +## this should also work along axis or at least for columns +## ''' +## n = x.shape[0] +## x = expandarr(x, windowsize - 1) +## takeslice = slice(windowsize-1, n + windowsize-1) +## avgkern = (np.ones(windowsize)/float(windowsize)) +## m = np.correlate(x, avgkern, 'same')#[takeslice] +## print(m.shape) +## print(x.shape) +## xm = x - m +## v = np.correlate(x*x, avgkern, 'same') - m**2 +## v1 = np.correlate(xm*xm, avgkern, valid) #not correct for var of window +###>>> np.correlate(xm*xm,np.array([1,1,1])/3.0,'valid')-np.correlate(xm*xm,np.array([1,1,1])/3.0,'valid')**2 +## return m[takeslice], v[takeslice], v1 + +def movmean(x, windowsize=3, lag='lagged'): + '''moving window mean + + + Parameters + ---------- + x : array + time series data + windsize : int + window size + lag : 'lagged', 'centered', or 'leading' + location of window relative to current position + + Returns + ------- + mk : array + moving mean, with same shape as x + + + Notes + ----- + for leading and lagging the data array x is extended by the closest value of the array + + + ''' + return movmoment(x, 1, windowsize=windowsize, lag=lag) + +def movvar(x, windowsize=3, lag='lagged'): + '''moving window variance + + + Parameters + ---------- + x : array + time series data + windsize : int + window size + lag : 'lagged', 'centered', or 'leading' + location of window relative to current position + + Returns + ------- + mk : array + moving variance, with same shape as x + + + ''' + m1 = movmoment(x, 1, windowsize=windowsize, lag=lag) + m2 = movmoment(x, 2, windowsize=windowsize, lag=lag) + return m2 - m1*m1 + +def movmoment(x, k, windowsize=3, lag='lagged'): + '''non-central moment + + + Parameters + ---------- + x : array + time series data + windsize : int + window size + lag : 'lagged', 'centered', or 'leading' + location of window relative to current position + + Returns + ------- + mk : array + k-th moving non-central moment, with same shape as x + + + Notes + ----- + If data x is 2d, then moving moment is calculated for each + column. + + ''' + + windsize = windowsize + #if windsize is even should it raise ValueError + if lag == 'lagged': + #lead = -0 + windsize #windsize//2 + lead = -0# + (windsize-1) + windsize//2 + sl = slice((windsize-1) or None, -2*(windsize-1) or None) + elif lag == 'centered': + lead = -windsize//2 #0#-1 #+ #(windsize-1) + sl = slice((windsize-1)+windsize//2 or None, -(windsize-1)-windsize//2 or None) + elif lag == 'leading': + #lead = -windsize +1#+1 #+ (windsize-1)#//2 +1 + lead = -windsize +2 #-windsize//2 +1 + sl = slice(2*(windsize-1)+1+lead or None, -(2*(windsize-1)+lead)+1 or None) + else: + raise ValueError + + avgkern = (np.ones(windowsize)/float(windowsize)) + xext = expandarr(x, windsize-1) + #Note: expandarr increases the array size by 2*(windsize-1) + + #sl = slice(2*(windsize-1)+1+lead or None, -(2*(windsize-1)+lead)+1 or None) + print(sl) + + if xext.ndim == 1: + return np.correlate(xext**k, avgkern, 'full')[sl] + #return np.correlate(xext**k, avgkern, 'same')[windsize-lead:-(windsize+lead)] + else: + print(xext.shape) + print(avgkern[:,None].shape) + + # try first with 2d along columns, possibly ndim with axis + return signal.correlate(xext**k, avgkern[:,None], 'full')[sl,:] + + + + + + + +#x=0.5**np.arange(10);xm=x-x.mean();a=np.correlate(xm,[1],'full') +#x=0.5**np.arange(3);np.correlate(x,x,'same') +##>>> x=0.5**np.arange(10);xm=x-x.mean();a=np.correlate(xm,xo,'full') +## +##>>> xo=np.ones(10);d=np.correlate(xo,xo,'full') +##>>> xo +##xo=np.ones(10);d=np.correlate(xo,xo,'full') +##>>> x=np.ones(10);xo=x-x.mean();a=np.correlate(xo,xo,'full') +##>>> xo=np.ones(10);d=np.correlate(xo,xo,'full') +##>>> d +##array([ 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 9., +## 8., 7., 6., 5., 4., 3., 2., 1.]) + + +##def ccovf(): +## pass +## #x=0.5**np.arange(10);xm=x-x.mean();a=np.correlate(xm,xo,'full') + +__all__ = ['movorder', 'movmean', 'movvar', 'movmoment'] + +if __name__ == '__main__': + + print('\ncheckin moving mean and variance') + nobs = 10 + x = np.arange(nobs) + ws = 3 + ave = np.array([ 0., 1/3., 1., 2., 3., 4., 5., 6., 7., 8., + 26/3., 9]) + va = np.array([[ 0. , 0. ], + [ 0.22222222, 0.88888889], + [ 0.66666667, 2.66666667], + [ 0.66666667, 2.66666667], + [ 0.66666667, 2.66666667], + [ 0.66666667, 2.66666667], + [ 0.66666667, 2.66666667], + [ 0.66666667, 2.66666667], + [ 0.66666667, 2.66666667], + [ 0.66666667, 2.66666667], + [ 0.22222222, 0.88888889], + [ 0. , 0. ]]) + ave2d = np.c_[ave, 2*ave] + print(movmean(x, windowsize=ws, lag='lagged')) + print(movvar(x, windowsize=ws, lag='lagged')) + print([np.var(x[i-ws:i]) for i in range(ws, nobs)]) + m1 = movmoment(x, 1, windowsize=3, lag='lagged') + m2 = movmoment(x, 2, windowsize=3, lag='lagged') + print(m1) + print(m2) + print(m2 - m1*m1) + + # this implicitly also tests moment + assert_array_almost_equal(va[ws-1:,0], + movvar(x, windowsize=3, lag='leading')) + assert_array_almost_equal(va[ws//2:-ws//2+1,0], + movvar(x, windowsize=3, lag='centered')) + assert_array_almost_equal(va[:-ws+1,0], + movvar(x, windowsize=ws, lag='lagged')) + + + + print('\nchecking moving moment for 2d (columns only)') + x2d = np.c_[x, 2*x] + print(movmoment(x2d, 1, windowsize=3, lag='centered')) + print(movmean(x2d, windowsize=ws, lag='lagged')) + print(movvar(x2d, windowsize=ws, lag='lagged')) + assert_array_almost_equal(va[ws-1:,:], + movvar(x2d, windowsize=3, lag='leading')) + assert_array_almost_equal(va[ws//2:-ws//2+1,:], + movvar(x2d, windowsize=3, lag='centered')) + assert_array_almost_equal(va[:-ws+1,:], + movvar(x2d, windowsize=ws, lag='lagged')) + + assert_array_almost_equal(ave2d[ws-1:], + movmoment(x2d, 1, windowsize=3, lag='leading')) + assert_array_almost_equal(ave2d[ws//2:-ws//2+1], + movmoment(x2d, 1, windowsize=3, lag='centered')) + assert_array_almost_equal(ave2d[:-ws+1], + movmean(x2d, windowsize=ws, lag='lagged')) + + from scipy import ndimage + print(ndimage.filters.correlate1d(x2d, np.array([1,1,1])/3., axis=0)) + + + #regression test check + + xg = np.array([ 0. , 0.1, 0.3, 0.6, 1. , 1.5, 2.1, 2.8, 3.6, + 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, + 13.5, 14.5, 15.5, 16.5, 17.5, 18.5, 19.5, 20.5, 21.5, + 22.5, 23.5, 24.5, 25.5, 26.5, 27.5, 28.5, 29.5, 30.5, + 31.5, 32.5, 33.5, 34.5, 35.5, 36.5, 37.5, 38.5, 39.5, + 40.5, 41.5, 42.5, 43.5, 44.5, 45.5, 46.5, 47.5, 48.5, + 49.5, 50.5, 51.5, 52.5, 53.5, 54.5, 55.5, 56.5, 57.5, + 58.5, 59.5, 60.5, 61.5, 62.5, 63.5, 64.5, 65.5, 66.5, + 67.5, 68.5, 69.5, 70.5, 71.5, 72.5, 73.5, 74.5, 75.5, + 76.5, 77.5, 78.5, 79.5, 80.5, 81.5, 82.5, 83.5, 84.5, + 85.5, 86.5, 87.5, 88.5, 89.5, 90.5, 91.5, 92.5, 93.5, + 94.5]) + + assert_array_almost_equal(xg, movmean(np.arange(100), 10,'lagged')) + + xd = np.array([ 0.3, 0.6, 1. , 1.5, 2.1, 2.8, 3.6, 4.5, 5.5, + 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, + 15.5, 16.5, 17.5, 18.5, 19.5, 20.5, 21.5, 22.5, 23.5, + 24.5, 25.5, 26.5, 27.5, 28.5, 29.5, 30.5, 31.5, 32.5, + 33.5, 34.5, 35.5, 36.5, 37.5, 38.5, 39.5, 40.5, 41.5, + 42.5, 43.5, 44.5, 45.5, 46.5, 47.5, 48.5, 49.5, 50.5, + 51.5, 52.5, 53.5, 54.5, 55.5, 56.5, 57.5, 58.5, 59.5, + 60.5, 61.5, 62.5, 63.5, 64.5, 65.5, 66.5, 67.5, 68.5, + 69.5, 70.5, 71.5, 72.5, 73.5, 74.5, 75.5, 76.5, 77.5, + 78.5, 79.5, 80.5, 81.5, 82.5, 83.5, 84.5, 85.5, 86.5, + 87.5, 88.5, 89.5, 90.5, 91.5, 92.5, 93.5, 94.5, 95.4, + 96.2, 96.9, 97.5, 98. , 98.4, 98.7, 98.9, 99. ]) + assert_array_almost_equal(xd, movmean(np.arange(100), 10,'leading')) + + xc = np.array([ 1.36363636, 1.90909091, 2.54545455, 3.27272727, + 4.09090909, 5. , 6. , 7. , + 8. , 9. , 10. , 11. , + 12. , 13. , 14. , 15. , + 16. , 17. , 18. , 19. , + 20. , 21. , 22. , 23. , + 24. , 25. , 26. , 27. , + 28. , 29. , 30. , 31. , + 32. , 33. , 34. , 35. , + 36. , 37. , 38. , 39. , + 40. , 41. , 42. , 43. , + 44. , 45. , 46. , 47. , + 48. , 49. , 50. , 51. , + 52. , 53. , 54. , 55. , + 56. , 57. , 58. , 59. , + 60. , 61. , 62. , 63. , + 64. , 65. , 66. , 67. , + 68. , 69. , 70. , 71. , + 72. , 73. , 74. , 75. , + 76. , 77. , 78. , 79. , + 80. , 81. , 82. , 83. , + 84. , 85. , 86. , 87. , + 88. , 89. , 90. , 91. , + 92. , 93. , 94. , 94.90909091, + 95.72727273, 96.45454545, 97.09090909, 97.63636364]) + assert_array_almost_equal(xc, movmean(np.arange(100), 11,'centered')) diff --git a/statsmodels/sandbox/tsa/notes_organize.txt b/statsmodels/sandbox/tsa/notes_organize.txt new file mode 100644 index 0000000..a80820d --- /dev/null +++ b/statsmodels/sandbox/tsa/notes_organize.txt @@ -0,0 +1,227 @@ + + + +scikits.statsmodels.sandbox.tsa.kalmanf +--------------------------------------- +ARMA : ARMA model using the exact Kalman Filter +StateSpaceModel : +kalmanfilter : Returns the negative log-likelihood of y +conditional on the information set +kalmansmooth : +updatematrices : TODO: change API, update names + + +scikits.statsmodels.sandbox.tsa.arima +------------------------------------- + +runs ok, no refactoring bugs +has examples and monte carlo that can be split up into example files + +ARIMA : currently ARMA only, no differencing used - no I +arma2ar : get the AR representation of an ARMA process +arma2ma : get the impulse response function (MA representation) for +ARMA process +arma_acf : theoretical autocovariance function of ARMA process +arma_acovf : theoretical autocovariance function of ARMA process +arma_generate_sample : generate an random sample of an ARMA process +arma_impulse_response : get the impulse response function (MA +representation) for ARMA process +arma_pacf : partial autocorrelation function of an ARMA process +deconvolve : Deconvolves divisor out of signal, division of +polynomials for n terms +index2lpol : expand coefficients to lag poly +lpol2index : remove zeros from lagpolynomial, squeezed +representation with index +mcarma22 : run Monte Carlo for ARMA(2,2) + + +scikits.statsmodels.sandbox.tsa.varma +------------------------------------- + +just filter experiments +needed to fix import for acf example + +VAR : multivariate linear filter +VARMA : multivariate linear filter + +scikits.statsmodels.sandbox.tsa.varma_tools +------------------------------------------- + +Helper and filter functions for VAR and VARMA, and basic VAR class +needed import fix in top of module +maybe rename to varma_process +in "main" example for VarmaPoly, and some Var fit +Var could be used for Granger Causality tests, otherwise it's pretty limited + +Var : + simultaneous OLS estimation +VarmaPoly : class to keep track of Varma polynomial format + working with and transforming VARMA Lag-Polynomials (3d) +ar2full : make reduced lagpolynomial into a right side lagpoly array +ar2lhs : convert full (rhs) lagpolynomial into a reduced, left side +lagpoly array +padone : pad with zeros along one axis, currently only axis=0 +trimone : trim number of array elements along one axis +varfilter : apply an autoregressive filter to a series x +vargenerate : generate an VAR process with errors u +varinversefilter : creates inverse ar filter (MA representation) recursively + + +scikits.statsmodels.sandbox.tsa.try_fi +-------------------------------------- + +(not included by script that generates this list) +various functions to build lag-polynomials for fractional and seasonal integration +and function ar2arma minimizes distance in terms of impulse response function + +move these to a module or rename + +scikits.statsmodels.sandbox.tsa.try_var_convolve.py +--------------------------------------------------- + +(not included by script that generates this list) +two functions: +arfilter : autoregressive filter for 1d, 2d and 3d +fftconvolve : multidimensional filtering using fft + +many examples, but I'm not sure this (fft) is correct +incompletely copied for interpreter session +currently raises exception because a variable (imp) is not defined + +scikits.statsmodels.sandbox.tsa.try_var_convolve.py +--------------------------------------------------- + +(not included by script that generates this list) +includes functions for +detrending, +(theoretical) acovf and similar for special cases +acf plot functions + +(partially copied from matplotlib.mlab) + +currently exception: FIXED +uses arima.ARIMA class without data in constructor, and order now has 3 values and +is keyword with tuple as value + +move plot function to new graphics directory ? + + +scikits.statsmodels.sandbox.regression.mle +------------------------------------------ + +one refactoring bug fixed, because arima.ARIMA needs data, use class method instead +runs without exception, but I didn't look at any results +"main" has quite a lot + +AR : Notes +Arma : univariate Autoregressive Moving Average model +Garch : Garch model gjrgarch (t-garch) +Garch0 : Garch model, +GarchX : Garch model, +LikelihoodModel : Likelihood model is a subclass of Model. +TSMLEModel : univariate time series model for estimation with +maximum likelihood +garchplot : +generate_garch : simulate standard garch +generate_gjrgarch : simulate gjr garch process +generate_kindofgarch : simulate garch like process but not squared +errors in arma +gjrconvertparams : flat to matrix +loglike_GARCH11 : +miso_lfilter : use nd convolution to merge inputs, +normloglike : +test_gjrgarch : +test_misofilter : + +Other +----- +diffusion: continuous time processes, produce nice graphs but parameterization is +a bit inconsistent. + + +script files +============ + +sandbox/tsa/try_arma_more.py +---------------------------- + +imports scikits.talkbox which is not compiled against my current numpy and doesn't +run +contains +arma_periodogram : theoretical periodogram + + +Proposed Structure (preliminary) +================================ + +arima_estimation +---------------- +ARIMA class for estimation, wrapper or containing different estimators +other wrappers: here or in separate ??? + - support for choosing lag-length + + +arma_process +------------ +all theoretical properties for given parameters +simulation method with options: initial conditions, errors, (?) not sure what else + +varma_process +------------- +including VarmaPoly and impulse response functions + +filters +------- +miso_filter (should be in cython eventually) +ar_filter : fast VAR filter with convolution or fft convolution +(not sure what's the relationship between the two) +others ??? + +stattools +--------- +empirical properties +acf, ... + +tsatools +-------- +helper functions +lagmat +detrend ??? + +others, unclear +--------------- +??? + +open questions +============== + +support for exog +---------------- +is incomplete or missing from some implementations +not clear parameterization +- ARMAX A(L)y_t = C(L)x_t + B(L)e_t +- ARMAX-simple A(L)y_t = beta x_t + B(L)e_t + Note: covers previous version by extending x_t + +- ARMA residuals y_t = beta x_t + u_t, and A(L)u_t = B(L)e_t +- ARMAX 2-step A(L)(y_t - beta x_t) = B(L)e_t + Note: looks the same as ARMA residuals, implies + A(L)y_t = A(L)x_t + B(L)e_t + +- ARMAX A(L)(y_t - A^{-1}(L) C(L) x_t) = B(L)e_t + this doesn't look useful, unless we cutoff A^{-1}(L) + +problem: signal.lfilter can only handle ARMAX residuals model (I think) +deterministic trend have ARMAX-simple model, e.g. in unit root tests + + +support for seasonal and "sparse" lag-polynomials +------------------------------------------------- +- fit functions need support for different lag structures, + e.g. zeros, multiplicative +- support for pre-filters, e.g. (seasonal) differencing + + + + + diff --git a/statsmodels/sandbox/tsa/try_arma_more.py b/statsmodels/sandbox/tsa/try_arma_more.py new file mode 100644 index 0000000..56a22c7 --- /dev/null +++ b/statsmodels/sandbox/tsa/try_arma_more.py @@ -0,0 +1,165 @@ +# -*- coding: utf-8 -*- +"""Periodograms for ARMA and time series + +theoretical periodogram of ARMA process and different version +of periodogram estimation + +uses scikits.talkbox and matplotlib + + +Created on Wed Oct 14 23:02:19 2009 + +Author: josef-pktd +""" +from __future__ import print_function +import numpy as np +from scipy import signal, ndimage +import matplotlib.mlab as mlb +import matplotlib.pyplot as plt + +from statsmodels.tsa.arima_process import arma_generate_sample, arma_periodogram +from statsmodels.tsa.stattools import acovf +hastalkbox = False +try: + import scikits.talkbox as stb + import scikits.talkbox.spectral.basic as stbs +except: + hastalkbox = False + +ar = [1., -0.7]#[1,0,0,0,0,0,0,-0.7] +ma = [1., 0.3] + +ar = np.convolve([1.]+[0]*50 +[-0.6], ar) +ar = np.convolve([1., -0.5]+[0]*49 +[-0.3], ar) + +n_startup = 1000 +nobs = 1000 +# throwing away samples at beginning makes sample more "stationary" + +xo = arma_generate_sample(ar,ma,n_startup+nobs) +x = xo[n_startup:] + +#moved to tsa.arima_process +#def arma_periodogram(ar, ma, **kwds): +# '''periodogram for ARMA process given by lag-polynomials ar and ma +# +# Parameters +# ---------- +# ar : array_like +# autoregressive lag-polynomial with leading 1 and lhs sign +# ma : array_like +# moving average lag-polynomial with leading 1 +# kwds : options +# options for scipy.signal.freqz +# default: worN=None, whole=0 +# +# Returns +# ------- +# w : array +# frequencies +# sd : array +# periodogram, spectral density +# +# Notes +# ----- +# Normalization ? +# +# ''' +# w, h = signal.freqz(ma, ar, **kwds) +# sd = np.abs(h)**2/np.sqrt(2*np.pi) +# if np.sum(np.isnan(h)) > 0: +# # this happens with unit root or seasonal unit root' +# print 'Warning: nan in frequency response h' +# return w, sd + +plt.figure() +plt.plot(x) + +rescale = 0 + +w, h = signal.freqz(ma, ar) +sd = np.abs(h)**2/np.sqrt(2*np.pi) + +if np.sum(np.isnan(h)) > 0: + # this happens with unit root or seasonal unit root' + print('Warning: nan in frequency response h') + h[np.isnan(h)] = 1. + rescale = 0 + + + +#replace with signal.order_filter ? +pm = ndimage.filters.maximum_filter(sd, footprint=np.ones(5)) +maxind = np.nonzero(pm == sd) +print('local maxima frequencies') +wmax = w[maxind] +sdmax = sd[maxind] + + +plt.figure() +plt.subplot(2,3,1) +if rescale: + plt.plot(w, sd/sd[0], '-', wmax, sdmax/sd[0], 'o') +# plt.plot(w, sd/sd[0], '-') +# plt.hold() +# plt.plot(wmax, sdmax/sd[0], 'o') +else: + plt.plot(w, sd, '-', wmax, sdmax, 'o') +# plt.hold() +# plt.plot(wmax, sdmax, 'o') + +plt.title('DGP') + +sdm, wm = mlb.psd(x) +sdm = sdm.ravel() +pm = ndimage.filters.maximum_filter(sdm, footprint=np.ones(5)) +maxind = np.nonzero(pm == sdm) + +plt.subplot(2,3,2) +if rescale: + plt.plot(wm,sdm/sdm[0], '-', wm[maxind], sdm[maxind]/sdm[0], 'o') +else: + plt.plot(wm, sdm, '-', wm[maxind], sdm[maxind], 'o') +plt.title('matplotlib') + +if hastalkbox: + sdp, wp = stbs.periodogram(x) + plt.subplot(2,3,3) + + if rescale: + plt.plot(wp,sdp/sdp[0]) + else: + plt.plot(wp, sdp) + plt.title('stbs.periodogram') + +xacov = acovf(x, unbiased=False) +plt.subplot(2,3,4) +plt.plot(xacov) +plt.title('autocovariance') + +nr = len(x)#*2/3 +#xacovfft = np.fft.fft(xacov[:nr], 2*nr-1) +xacovfft = np.fft.fft(np.correlate(x,x,'full')) +#abs(xacovfft)**2 or equivalently +xacovfft = xacovfft * xacovfft.conj() + +plt.subplot(2,3,5) +if rescale: + plt.plot(xacovfft[:nr]/xacovfft[0]) +else: + plt.plot(xacovfft[:nr]) + +plt.title('fft') + +if hastalkbox: + sdpa, wpa = stbs.arspec(x, 50) + plt.subplot(2,3,6) + + if rescale: + plt.plot(wpa,sdpa/sdpa[0]) + else: + plt.plot(wpa, sdpa) + plt.title('stbs.arspec') + + +#plt.show() diff --git a/statsmodels/sandbox/tsa/try_fi.py b/statsmodels/sandbox/tsa/try_fi.py new file mode 100644 index 0000000..cc771e6 --- /dev/null +++ b/statsmodels/sandbox/tsa/try_fi.py @@ -0,0 +1,80 @@ + +''' +using lfilter to get fractional integration polynomial (1-L)^d, d<1 +`ri` is (1-L)^(-d), d<1 + +second part in here is ar2arma + +only examples left + +''' +from __future__ import print_function +import numpy as np +#from numpy.testing import assert_array_almost_equal +from scipy.special import gamma, gammaln +from scipy import signal + +#from statsmodels.sandbox import tsa +from statsmodels.tsa.arima_process import arma_impulse_response + +#-------------------- +# functions have been moved to arima_process +from statsmodels.tsa.arima_process import (lpol_fiar, lpol_fima, lpol_sdiff, + ar2arma) +#----------------------------------- + + + +if __name__ == '__main__': + d = 0.4 + n = 1000 + j = np.arange(n*10) + ri0 = gamma(d+j)/(gamma(j+1)*gamma(d)) + #ri = np.exp(gammaln(d+j) - gammaln(j+1) - gammaln(d)) (d not -d) + ri = lpol_fima(d, n=n) # get_ficoefs(d, n=n) old naming? + riinv = signal.lfilter([1], ri, [1]+[0]*(n-1))#[[5,10,20,25]] + ''' + array([-0.029952 , -0.01100641, -0.00410998, -0.00299859]) + >>> d=0.4; j=np.arange(1000);ri=gamma(d+j)/(gamma(j+1)*gamma(d)) + >>> # (1-L)^d, d<1 is + >>> lfilter([1], ri, [1]+[0]*30) + array([ 1. , -0.4 , -0.12 , -0.064 , -0.0416 , + -0.029952 , -0.0229632 , -0.01837056, -0.01515571, -0.01279816, + -0.01100641, -0.0096056 , -0.00848495, -0.00757118, -0.00681406, + -0.00617808, -0.0056375 , -0.00517324, -0.00477087, -0.00441934, + -0.00410998, -0.00383598, -0.00359188, -0.00337324, -0.00317647, + -0.00299859, -0.00283712, -0.00269001, -0.00255551, -0.00243214, + -0.00231864]) + >>> # verified for points [[5,10,20,25]] at 4 decimals with Bhardwaj, Swanson, Journal of Eonometrics 2006 + ''' + print(lpol_fiar(0.4, n=20)) + print(lpol_fima(-0.4, n=20)) + print(np.sum((lpol_fima(-0.4, n=n)[1:] + riinv[1:])**2)) #different signs + print(np.sum((lpol_fiar(0.4, n=n)[1:] - riinv[1:])**2)) #corrected signs + + #test is now in statsmodels.tsa.tests.test_arima_process + from statsmodels.tsa.tests.test_arima_process import test_fi + test_fi() + + ar_true = [1, -0.4] + ma_true = [1, 0.5] + + + ar_desired = arma_impulse_response(ma_true, ar_true) + ar_app, ma_app, res = ar2arma(ar_desired, 2,1, n=100, mse='ar', start=[0.1]) + print(ar_app, ma_app) + ar_app, ma_app, res = ar2arma(ar_desired, 2,2, n=100, mse='ar', start=[-0.1, 0.1]) + print(ar_app, ma_app) + ar_app, ma_app, res = ar2arma(ar_desired, 2,3, n=100, mse='ar')#, start = [-0.1, 0.1]) + print(ar_app, ma_app) + + slow = 1 + if slow: + ar_desired = lpol_fiar(0.4, n=100) + ar_app, ma_app, res = ar2arma(ar_desired, 3, 1, n=100, mse='ar')#, start = [-0.1, 0.1]) + print(ar_app, ma_app) + ar_app, ma_app, res = ar2arma(ar_desired, 10, 10, n=100, mse='ar')#, start = [-0.1, 0.1]) + print(ar_app, ma_app) + + + diff --git a/statsmodels/sandbox/tsa/try_var_convolve.py b/statsmodels/sandbox/tsa/try_var_convolve.py new file mode 100644 index 0000000..4dacfe7 --- /dev/null +++ b/statsmodels/sandbox/tsa/try_var_convolve.py @@ -0,0 +1,360 @@ +# -*- coding: utf-8 -*- +"""trying out VAR filtering and multidimensional fft + +Note: second half is copy and paste and doesn't run as script +incomplete definitions of variables, some I created in shell + +Created on Thu Jan 07 12:23:40 2010 + +Author: josef-pktd + +update 2010-10-22 +2 arrays were not defined, copied from fft_filter.log.py but I didn't check +what the results are. +Runs now without raising exception +""" +from __future__ import print_function +import numpy as np +from numpy.testing import assert_equal +from scipy import signal +from scipy.signal.signaltools import _centered as trim_centered +_centered = trim_centered + + +x = np.arange(40).reshape((2,20)).T +x = np.arange(60).reshape((3,20)).T +a3f = np.array([[[0.5, 1.], [1., 0.5]], + [[0.5, 1.], [1., 0.5]]]) +a3f = np.ones((2,3,3)) + + +nlags = a3f.shape[0] +ntrim = nlags//2 + +y0 = signal.convolve(x,a3f[:,:,0], mode='valid') +y1 = signal.convolve(x,a3f[:,:,1], mode='valid') +yf = signal.convolve(x[:,:,None],a3f) +y = yf[:,1,:] # +yvalid = yf[ntrim:-ntrim,yf.shape[1]//2,:] +#same result with fftconvolve +#signal.fftconvolve(x[:,:,None],a3f).shape +#signal.fftconvolve(x[:,:,None],a3f)[:,1,:] +print(trim_centered(y, x.shape)) +# this raises an exception: +#print(trim_centered(yf, (x.shape).shape) +assert_equal(yvalid[:,0], y0.ravel()) +assert_equal(yvalid[:,1], y1.ravel()) + +from statsmodels.tsa.filters import arfilter +#copied/moved to statsmodels.tsa.filters +def arfilter_old(x, a): + '''apply an autoregressive filter to a series x + + x can be 2d, a can be 1d, 2d, or 3d + + Parameters + ---------- + x : array_like + data array, 1d or 2d, if 2d then observations in rows + a : array_like + autoregressive filter coefficients, ar lag polynomial + see Notes + + Returns + ------- + y : ndarray, 2d + filtered array, number of columns determined by x and a + + Notes + ----- + + In general form this uses the linear filter :: + + y = a(L)x + + where + x : nobs, nvars + a : nlags, nvars, npoly + + Depending on the shape and dimension of a this uses different + Lag polynomial arrays + + case 1 : a is 1d or (nlags,1) + one lag polynomial is applied to all variables (columns of x) + case 2 : a is 2d, (nlags, nvars) + each series is independently filtered with its own + lag polynomial, uses loop over nvar + case 3 : a is 3d, (nlags, nvars, npoly) + the ith column of the output array is given by the linear filter + defined by the 2d array a[:,:,i], i.e. :: + + y[:,i] = a(.,.,i)(L) * x + y[t,i] = sum_p sum_j a(p,j,i)*x(t-p,j) + for p = 0,...nlags-1, j = 0,...nvars-1, + for all t >= nlags + + + Note: maybe convert to axis=1, Not + + TODO: initial conditions + + ''' + x = np.asarray(x) + a = np.asarray(a) + if x.ndim == 1: + x = x[:,None] + if x.ndim > 2: + raise ValueError('x array has to be 1d or 2d') + nvar = x.shape[1] + nlags = a.shape[0] + ntrim = nlags//2 + # for x is 2d with ncols >1 + + if a.ndim == 1: + # case: identical ar filter (lag polynomial) + return signal.convolve(x, a[:,None], mode='valid') + # alternative: + #return signal.lfilter(a,[1],x.astype(float),axis=0) + elif a.ndim == 2: + if min(a.shape) == 1: + # case: identical ar filter (lag polynomial) + return signal.convolve(x, a, mode='valid') + + # case: independent ar + #(a bit like recserar in gauss, but no x yet) + result = np.zeros((x.shape[0]-nlags+1, nvar)) + for i in range(nvar): + # could also use np.convolve, but easier for swiching to fft + result[:,i] = signal.convolve(x[:,i], a[:,i], mode='valid') + return result + + elif a.ndim == 3: + # case: vector autoregressive with lag matrices +# #not necessary: +# if np.any(a.shape[1:] != nvar): +# raise ValueError('if 3d shape of a has to be (nobs,nvar,nvar)') + yf = signal.convolve(x[:,:,None], a) + yvalid = yf[ntrim:-ntrim, yf.shape[1]//2,:] + return yvalid + +a3f = np.ones((2,3,3)) +y0ar = arfilter(x,a3f[:,:,0]) +print(y0ar, x[1:] + x[:-1]) +yres = arfilter(x,a3f[:,:,:2]) +print(np.all(yres == (x[1:,:].sum(1) + x[:-1].sum(1))[:,None])) + +# don't do these imports, here just for copied fftconvolve +from scipy.fftpack import fft, ifft, ifftshift, fft2, ifft2, fftn, \ + ifftn, fftfreq +from numpy import product,array + +from statsmodels.tsa.filters.filtertools import fftconvolveinv as fftconvolve +#copied/moved to statsmodels.tsa.filters +def fftconvolve_old(in1, in2, in3=None, mode="full"): + """Convolve two N-dimensional arrays using FFT. See convolve. + + copied from scipy.signal.signaltools, but here used to try out inverse filter + doesn't work or I can't get it to work + + 2010-10-23: + looks ok to me for 1d, + from results below with padded data array (fftp) + but it doesn't work for multidimensional inverse filter (fftn) + original signal.fftconvolve also uses fftn + + """ + s1 = array(in1.shape) + s2 = array(in2.shape) + complex_result = (np.issubdtype(in1.dtype, np.complex) or + np.issubdtype(in2.dtype, np.complex)) + size = s1+s2-1 + + # Always use 2**n-sized FFT + fsize = 2**np.ceil(np.log2(size)) + IN1 = fftn(in1,fsize) + #IN1 *= fftn(in2,fsize) #JP: this looks like the only change I made + IN1 /= fftn(in2,fsize) # use inverse filter + # note the inverse is elementwise not matrix inverse + # is this correct, NO doesn't seem to work for VARMA + fslice = tuple([slice(0, int(sz)) for sz in size]) + ret = ifftn(IN1)[fslice].copy() + del IN1 + if not complex_result: + ret = ret.real + if mode == "full": + return ret + elif mode == "same": + if product(s1,axis=0) > product(s2,axis=0): + osize = s1 + else: + osize = s2 + return _centered(ret,osize) + elif mode == "valid": + return _centered(ret,abs(s2-s1)+1) + +yff = fftconvolve(x.astype(float)[:,:,None],a3f) + +rvs = np.random.randn(500) +ar1fft = fftconvolve(rvs,np.array([1,-0.8])) +#ar1fftp = fftconvolve(np.r_[np.zeros(100),rvs,np.zeros(100)],np.array([1,-0.8])) +ar1fftp = fftconvolve(np.r_[np.zeros(100),rvs],np.array([1,-0.8])) +ar1lf = signal.lfilter([1], [1,-0.8], rvs) + +ar1 = np.zeros(501) +for i in range(1,501): + ar1[i] = 0.8*ar1[i-1] + rvs[i-1] + +#the previous looks wrong, is for generating ar with delayed error, +#or maybe for an ma(1) filter, (generating ar and applying ma filter are the same) +#maybe not since it replicates lfilter and fftp +#still strange explanation for convolution +#ok. because this is my fftconvolve, which is an inverse filter (read the namespace!) + +#This is an AR filter +errar1 = np.zeros(501) +for i in range(1,500): + errar1[i] = rvs[i] - 0.8*rvs[i-1] + +#print(ar1[-10:]) +#print(ar1fft[-11:-1]) +#print(ar1lf[-10:]) +#print(ar1[:10]) +#print(ar1fft[1:11]) +#print(ar1lf[:10]) +#print(ar1[100:110]) +#print(ar1fft[100:110]) +#print(ar1lf[100:110]) +# +#arloop - lfilter - fftp (padded) are the same +print('\n compare: \nerrloop - arloop - fft - lfilter - fftp (padded)') +#print(np.column_stack((ar1[1:31],ar1fft[:30], ar1lf[:30])) +print(np.column_stack((errar1[1:31], ar1[1:31],ar1fft[:30], ar1lf[:30], + ar1fftp[100:130]))) + +def maxabs(x,y): + return np.max(np.abs(x-y)) + +print(maxabs(ar1[1:], ar1lf)) #0 +print(maxabs(ar1[1:], ar1fftp[100:-1])) # around 1e-15 + +rvs3 = np.random.randn(500,3) +a3n = np.array([[1,1,1],[-0.8,0.5,0.1]]) +a3n = np.array([[1,1,1],[-0.8,0.0,0.0]]) +a3n = np.array([[1,-1,-1],[-0.8,0.0,0.0]]) +a3n = np.array([[1,0,0],[-0.8,0.0,0.0]]) +a3ne = np.r_[np.ones((1,3)),-0.8*np.eye(3)] +a3ne = np.r_[np.ones((1,3)),-0.8*np.eye(3)] +ar13fft = fftconvolve(rvs3,a3n) + +ar13 = np.zeros((501,3)) +for i in range(1,501): + ar13[i] = np.sum(a3n[1,:]*ar13[i-1]) + rvs[i-1] + +#changes imp was not defined, not sure what it is supposed to be +#copied from a .log file +imp = np.zeros((10,3)) +imp[0]=1 + +a3n = np.array([[1,0,0],[-0.8,0.0,0.0]]) +fftconvolve(np.r_[np.zeros((100,3)),imp],a3n)[100:] +a3n = np.array([[1,0,0],[-0.8,-0.50,0.0]]) +fftconvolve(np.r_[np.zeros((100,3)),imp],a3n)[100:] + +a3n3 = np.array([[[ 1. , 0. , 0. ], + [ 0. , 1. , 0. ], + [ 0. , 0. , 1. ]], + + [[-0.8, 0. , 0. ], + [ 0. , -0.8, 0. ], + [ 0. , 0. , -0.8]]]) + +a3n3 = np.array([[[ 1. , 0.5 , 0. ], + [ 0. , 1. , 0. ], + [ 0. , 0. , 1. ]], + + [[-0.8, 0. , 0. ], + [ 0. , -0.8, 0. ], + [ 0. , 0. , -0.8]]]) +ttt = fftconvolve(np.r_[np.zeros((100,3)),imp][:,:,None],a3n3.T)[100:] +gftt = ttt/ttt[0,:,:] + +a3n3 = np.array([[[ 1. , 0 , 0. ], + [ 0. , 1. , 0. ], + [ 0. , 0. , 1. ]], + + [[-0.8, 0.2 , 0. ], + [ 0 , 0.0, 0. ], + [ 0. , 0. , 0.8]]]) +ttt = fftconvolve(np.r_[np.zeros((100,3)),imp][:,:,None],a3n3)[100:] +gftt = ttt/ttt[0,:,:] +signal.fftconvolve(np.dstack((imp,imp,imp)),a3n3)[1,:,:] + +nobs = 10 +imp = np.zeros((nobs,3)) +imp[1] = 1. +ar13 = np.zeros((nobs+1,3)) +for i in range(1,nobs+1): + ar13[i] = np.dot(a3n3[1,:,:],ar13[i-1]) + imp[i-1] + +a3n3inv = np.zeros((nobs+1,3,3)) +a3n3inv[0,:,:] = a3n3[0] +a3n3inv[1,:,:] = -a3n3[1] +for i in range(2,nobs+1): + a3n3inv[i,:,:] = np.dot(-a3n3[1],a3n3inv[i-1,:,:]) + + +a3n3sy = np.array([[[ 1. , 0 , 0. ], + [ 0. , 1. , 0. ], + [ 0. , 0. , 1. ]], + + [[-0.8, 0.2 , 0. ], + [ 0 , 0.0, 0. ], + [ 0. , 0. , 0.8]]]) + +nobs = 10 +a = np.array([[[ 1. , 0. ], + [ 0. , 1. ]], + + [[-0.8, 0.0 ], + [ -0.1 , -0.8]]]) + + +a2n3inv = np.zeros((nobs+1,2,2)) +a2n3inv[0,:,:] = a[0] +a2n3inv[1,:,:] = -a[1] +for i in range(2,nobs+1): + a2n3inv[i,:,:] = np.dot(-a[1],a2n3inv[i-1,:,:]) + +nobs = 10 +imp = np.zeros((nobs,2)) +imp[0,0] = 1. + +#a2 was missing, copied from .log file, not sure if correct +a2 = np.array([[[ 1. , 0. ], + [ 0. , 1. ]], + + [[-0.8, 0. ], + [0.1, -0.8]]]) + +ar12 = np.zeros((nobs+1,2)) +for i in range(1,nobs+1): + ar12[i] = np.dot(-a2[1,:,:],ar12[i-1]) + imp[i-1] + +u = np.random.randn(10,2) +ar12r = np.zeros((nobs+1,2)) +for i in range(1,nobs+1): + ar12r[i] = np.dot(-a2[1,:,:],ar12r[i-1]) + u[i-1] + +a2inv = np.zeros((nobs+1,2,2)) +a2inv[0,:,:] = a2[0] +a2inv[1,:,:] = -a2[1] +for i in range(2,nobs+1): + a2inv[i,:,:] = np.dot(-a2[1],a2inv[i-1,:,:]) + +import scipy.stats as stats +import numpy as np +nbins = 12 +binProb = np.zeros(nbins) + 1.0/nbins +binSumProb = np.add.accumulate(binProb) +print(binSumProb) +print(stats.gamma.ppf(binSumProb,0.6379,loc=1.6,scale=39.555)) diff --git a/statsmodels/sandbox/tsa/varma.py b/statsmodels/sandbox/tsa/varma.py new file mode 100644 index 0000000..93ac184 --- /dev/null +++ b/statsmodels/sandbox/tsa/varma.py @@ -0,0 +1,176 @@ +'''VAR and VARMA process + +this doesn't actually do much, trying out a version for a time loop + +alternative representation: +* textbook, different blocks in matrices +* Kalman filter +* VAR, VARX and ARX could be calculated with signal.lfilter + only tried some examples, not implemented + +TODO: try minimizing sum of squares of (Y-Yhat) + +Note: filter has smallest lag at end of array and largest lag at beginning, + be careful for asymmetric lags coefficients + check this again if it is consistently used + + +changes +2009-09-08 : separated from movstat.py + +Author : josefpkt +License : BSD +''' + +from __future__ import print_function +import numpy as np +from scipy import signal +#import matplotlib.pylab as plt +from numpy.testing import assert_array_equal, assert_array_almost_equal + + +#NOTE: this just returns that predicted values given the +#B matrix in polynomial form. +#TODO: make sure VAR class returns B/params in this form. +def VAR(x,B, const=0): + ''' multivariate linear filter + + Parameters + ---------- + x: (TxK) array + columns are variables, rows are observations for time period + B: (PxKxK) array + b_t-1 is bottom "row", b_t-P is top "row" when printing + B(:,:,0) is lag polynomial matrix for variable 1 + B(:,:,k) is lag polynomial matrix for variable k + B(p,:,k) is pth lag for variable k + B[p,:,:].T corresponds to A_p in Wikipedia + const: float or array (not tested) + constant added to autoregression + + Returns + ------- + xhat: (TxK) array + filtered, predicted values of x array + + Notes + ----- + xhat(t,i) = sum{_p}sum{_k} { x(t-P:t,:) .* B(:,:,i) } for all i = 0,K-1, for all t=p..T + + xhat does not include the forecasting observation, xhat(T+1), + xhat is 1 row shorter than signal.correlate + + References + ---------- + http://en.wikipedia.org/wiki/Vector_Autoregression + http://en.wikipedia.org/wiki/General_matrix_notation_of_a_VAR(p) + ''' + p = B.shape[0] + T = x.shape[0] + xhat = np.zeros(x.shape) + for t in range(p,T): #[p+2]:# +## print(p,T) +## print(x[t-p:t,:,np.newaxis].shape) +## print(B.shape) + #print(x[t-p:t,:,np.newaxis]) + xhat[t,:] = const + (x[t-p:t,:,np.newaxis]*B).sum(axis=1).sum(axis=0) + return xhat + + +def VARMA(x,B,C, const=0): + ''' multivariate linear filter + + x (TxK) + B (PxKxK) + + xhat(t,i) = sum{_p}sum{_k} { x(t-P:t,:) .* B(:,:,i) } + + sum{_q}sum{_k} { e(t-Q:t,:) .* C(:,:,i) }for all i = 0,K-1 + + ''' + P = B.shape[0] + Q = C.shape[0] + T = x.shape[0] + xhat = np.zeros(x.shape) + e = np.zeros(x.shape) + start = max(P,Q) + for t in range(start,T): #[p+2]:# +## print(p,T +## print(x[t-p:t,:,np.newaxis].shape +## print(B.shape + #print(x[t-p:t,:,np.newaxis] + xhat[t,:] = const + (x[t-P:t,:,np.newaxis]*B).sum(axis=1).sum(axis=0) + \ + (e[t-Q:t,:,np.newaxis]*C).sum(axis=1).sum(axis=0) + e[t,:] = x[t,:] - xhat[t,:] + return xhat, e + + +if __name__ == '__main__': + + + T = 20 + K = 2 + P = 3 + #x = np.arange(10).reshape(5,2) + x = np.column_stack([np.arange(T)]*K) + B = np.ones((P,K,K)) + #B[:,:,1] = 2 + B[:,:,1] = [[0,0],[0,0],[0,1]] + xhat = VAR(x,B) + print(np.all(xhat[P:,0]==np.correlate(x[:-1,0],np.ones(P))*2)) + #print(xhat) + + + T = 20 + K = 2 + Q = 2 + P = 3 + const = 1 + #x = np.arange(10).reshape(5,2) + x = np.column_stack([np.arange(T)]*K) + B = np.ones((P,K,K)) + #B[:,:,1] = 2 + B[:,:,1] = [[0,0],[0,0],[0,1]] + C = np.zeros((Q,K,K)) + xhat1 = VAR(x,B, const=const) + xhat2, err2 = VARMA(x,B,C, const=const) + print(np.all(xhat2 == xhat1)) + print(np.all(xhat2[P:,0] == np.correlate(x[:-1,0],np.ones(P))*2+const)) + + C[1,1,1] = 0.5 + xhat3, err3 = VARMA(x,B,C) + + x = np.r_[np.zeros((P,K)),x] #prepend inital conditions + xhat4, err4 = VARMA(x,B,C) + + C[1,1,1] = 1 + B[:,:,1] = [[0,0],[0,0],[0,1]] + xhat5, err5 = VARMA(x,B,C) + #print(err5) + + #in differences + #VARMA(np.diff(x,axis=0),B,C) + + + #Note: + # * signal correlate applies same filter to all columns if kernel.shape[1] possible to run signal.correlate K times with different filters, + # see the following example, which replicates VAR filter + x0 = np.column_stack([np.arange(T), 2*np.arange(T)]) + B[:,:,0] = np.ones((P,K)) + B[:,:,1] = np.ones((P,K)) + B[1,1,1] = 0 + xhat0 = VAR(x0,B) + xcorr00 = signal.correlate(x0,B[:,:,0])#[:,0] + xcorr01 = signal.correlate(x0,B[:,:,1]) + print(np.all(signal.correlate(x0,B[:,:,0],'valid')[:-1,0]==xhat0[P:,0])) + print(np.all(signal.correlate(x0,B[:,:,1],'valid')[:-1,0]==xhat0[P:,1])) + + #import error + #from movstat import acovf, acf + from statsmodels.tsa.stattools import acovf, acf + aav = acovf(x[:,0]) + print(aav[0] == np.var(x[:,0])) + aac = acf(x[:,0]) + diff --git a/statsmodels/sandbox/utils_old.py b/statsmodels/sandbox/utils_old.py new file mode 100644 index 0000000..359f3c4 --- /dev/null +++ b/statsmodels/sandbox/utils_old.py @@ -0,0 +1,155 @@ +import numpy as np +import numpy.linalg as L +import scipy.interpolate +import scipy.linalg + +__docformat__ = 'restructuredtext' + +def recipr(X): + """ + Return the reciprocal of an array, setting all entries less than or + equal to 0 to 0. Therefore, it presumes that X should be positive in + general. + """ + x = np.maximum(np.asarray(X).astype(np.float64), 0) + return np.greater(x, 0.) / (x + np.less_equal(x, 0.)) + +def mad(a, c=0.6745, axis=0): + """ + Median Absolute Deviation: + + median(abs(a - median(a))) / c + + """ + + _shape = a.shape + a.shape = np.product(a.shape,axis=0) + m = np.median(np.fabs(a - np.median(a))) / c + a.shape = _shape + return m + +def recipr0(X): + """ + Return the reciprocal of an array, setting all entries equal to 0 + as 0. It does not assume that X should be positive in + general. + """ + test = np.equal(np.asarray(X), 0) + return np.where(test, 0, 1. / X) + +def clean0(matrix): + """ + Erase columns of zeros: can save some time in pseudoinverse. + """ + colsum = np.add.reduce(matrix**2, 0) + val = [matrix[:,i] for i in np.flatnonzero(colsum)] + return np.array(np.transpose(val)) + +def rank(X, cond=1.0e-12): + """ + Return the rank of a matrix X based on its generalized inverse, + not the SVD. + """ + X = np.asarray(X) + if len(X.shape) == 2: + D = scipy.linalg.svdvals(X) + return int(np.add.reduce(np.greater(D / D.max(), cond).astype(np.int32))) + else: + return int(not np.alltrue(np.equal(X, 0.))) + +def fullrank(X, r=None): + """ + Return a matrix whose column span is the same as X. + + If the rank of X is known it can be specified as r -- no check + is made to ensure that this really is the rank of X. + + """ + + if r is None: + r = rank(X) + + V, D, U = L.svd(X, full_matrices=0) + order = np.argsort(D) + order = order[::-1] + value = [] + for i in range(r): + value.append(V[:,order[i]]) + return np.asarray(np.transpose(value)).astype(np.float64) + +class StepFunction(object): + """ + A basic step function: values at the ends are handled in the simplest + way possible: everything to the left of x[0] is set to ival; everything + to the right of x[-1] is set to y[-1]. + + Examples + -------- + >>> from numpy import arange + >>> from statsmodels.sandbox.utils_old import StepFunction + >>> + >>> x = arange(20) + >>> y = arange(20) + >>> f = StepFunction(x, y) + >>> + >>> print f(3.2) + 3.0 + >>> print f([[3.2,4.5],[24,-3.1]]) + [[ 3. 4.] + [ 19. 0.]] + """ + + def __init__(self, x, y, ival=0., sorted=False): + + _x = np.asarray(x) + _y = np.asarray(y) + + if _x.shape != _y.shape: + raise ValueError('in StepFunction: x and y do not have the same shape') + if len(_x.shape) != 1: + raise ValueError('in StepFunction: x and y must be 1-dimensional') + + self.x = np.hstack([[-np.inf], _x]) + self.y = np.hstack([[ival], _y]) + + if not sorted: + asort = np.argsort(self.x) + self.x = np.take(self.x, asort, 0) + self.y = np.take(self.y, asort, 0) + self.n = self.x.shape[0] + + def __call__(self, time): + + tind = np.searchsorted(self.x, time) - 1 + _shape = tind.shape + return self.y[tind] + +def ECDF(values): + """ + Return the ECDF of an array as a step function. + """ + x = np.array(values, copy=True) + x.sort() + x.shape = np.product(x.shape,axis=0) + n = x.shape[0] + y = (np.arange(n) + 1.) / n + return StepFunction(x, y) + +def monotone_fn_inverter(fn, x, vectorized=True, **keywords): + """ + Given a monotone function fn (no checking is done to verify monotonicity) + and a set of x values, return an linearly interpolated approximation + to its inverse from its values on x. + """ + + if vectorized: + y = fn(x, **keywords) + else: + y = [] + for _x in x: + y.append(fn(_x, **keywords)) + y = np.array(y) + + a = np.argsort(y) + + return scipy.interpolate.interp1d(y[a], x[a]) diff --git a/statsmodels/src/__init__.py b/statsmodels/src/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/src/blas_lapack.pxd b/statsmodels/src/blas_lapack.pxd new file mode 100644 index 0000000..03c1001 --- /dev/null +++ b/statsmodels/src/blas_lapack.pxd @@ -0,0 +1,881 @@ +cimport numpy as np + +# +# BLAS +# + +ctypedef int sgemm_t( + # Compute C := alpha*A*B + beta*C + char *transa, # {'T','C'}: o(A)=A'; {'N'}: o(A)=A + char *transb, # {'T','C'}: o(B)=B'; {'N'}: o(B)=B + int *m, # Rows of o(A) (and of C) + int *n, # Columns of o(B) (and of C) + int *k, # Columns of o(A) / Rows of o(B) + np.float32_t *alpha, # Scalar multiple + np.float32_t *a, # Matrix A: mxk + int *lda, # The size of the first dimension of A (in memory) + np.float32_t *b, # Matrix B: kxn + int *ldb, # The size of the first dimension of B (in memory) + np.float32_t *beta, # Scalar multiple + np.float32_t *c, # Matrix C: mxn + int *ldc # The size of the first dimension of C (in memory) +) + +ctypedef int sgemv_t( + # Compute C := alpha*A*x + beta*y + char *trans, # {'T','C'}: o(A)=A'; {'N'}: o(A)=A + int *m, # Rows of o(A) + int *n, # Columns of o(A) / min(len(x)) + np.float32_t *alpha, # Scalar multiple + np.float32_t *a, # Matrix A: mxn + int *lda, # The size of the first dimension of A (in memory) + np.float32_t *x, # Vector x, min(len(x)) = n + int *incx, # The increment between elements of x (usually 1) + np.float32_t *beta, # Scalar multiple + np.float32_t *y, # Vector y, min(len(y)) = m + int *incy # The increment between elements of y (usually 1) +) + +ctypedef int ssymm_t( + # SSYMM - perform one of the matrix-matrix operations C := + # alpha*A*B + beta*C, + char *side, # {'L', 'R'}: left, right + char *uplo, # {'U','L'}, upper, lower + int *m, # Rows of C + int *n, # Columns of C + np.float32_t *alpha, # Scalar multiple + np.float32_t *a, # Matrix A + int *lda, # The size of the first dimension of A (in memory) + np.float32_t *b, # Matrix B + int *ldb, # The size of the first dimension of B (in memory) + np.float32_t *beta, # Scalar multiple + np.float32_t *c, # Matrix C + int *ldc, # The size of the first dimension of C (in memory) +) + +ctypedef int ssymv_t( + # SSYMV - perform the matrix-vector operation y := alpha*A*x + # + beta*y, + char *uplo, # {'U','L'}, upper, lower + int *n, # Order of matrix A + np.float32_t *alpha, # Scalar multiple + np.float32_t *a, # Matrix A: mxn + int *lda, # The size of the first dimension of A (in memory) + np.float32_t *x, # Vector x, min(len(x)) = n + int *incx, # The increment between elements of x (usually 1) + np.float32_t *beta, # Scalar multiple + np.float32_t *y, # Vector y, min(len(y)) = n + int *incy, # The increment between elements of y (usually 1) +) + +ctypedef int strmm_t( + # STRMM - perform one of the matrix-matrix operations B := + # alpha*op( A )*B, or B := alpha*B*op( A ), + char *side, # {'L', 'R'}: left, right + char *uplo, # {'U','L'}, upper, lower + char *transa, # {'T','C'}: o(A)=A'; {'N'}: o(A)=A + char *diag, # {'U','N'}: unit triangular or not + int *m, # Rows of B + int *n, # Columns of B + np.float32_t *alpha, # Scalar multiple + np.float32_t *a, # Matrix A + int *lda, # The size of the first dimension of A (in memory) + np.float32_t *b, # Matrix B + int *ldb, # The size of the first dimension of B (in memory) +) + +ctypedef int strmv_t( + # STRMV - perform one of the matrix-vector operations x := + # A*x, or x := A'*x, + char *uplo, # {'U','L'}, upper, lower + char *trans, # {'T','C'}: o(A)=A'; {'N'}: o(A)=A + char *diag, # {'U','N'}: unit triangular or not + int *n, # Order of matrix A + np.float32_t *a, # Matrix A: mxn + int *lda, # The size of the first dimension of A (in memory) + np.float32_t *x, # Vector x, min(len(x)) = n + int *incx, # The increment between elements of x (usually 1) +) + +ctypedef int scopy_t( + int *n, # Number of vector elements to be copied. + np.float32_t *x, # Vector from which to copy. + int *incx, # Increment between elements of x. + np.float32_t *y, # array of dimension (n-1) * |incy| + 1, result vector. + int *incy # Increment between elements of y. +) + +ctypedef int sscal_t( + # SSCAL - BLAS level one, scales a double precision vector + int *n, # Number of elements in the vector. + np.float32_t *alpha, # scalar alpha + np.float32_t *x, # Array of dimension (n-1) * |incx| + 1. Vector to be scaled. + int *incx # Increment between elements of x. +) + +ctypedef int saxpy_t( + # Compute y := alpha*x + y + int *n, # Columns of o(A) / min(len(x)) + np.float32_t *alpha, # Scalar multiple + np.float32_t *x, # Vector x, min(len(x)) = n + int *incx, # The increment between elements of x (usually 1) + np.float32_t *y, # Vector y, min(len(y)) = m + int *incy # The increment between elements of y (usually 1) +) + +ctypedef np.float64_t sdot_t( + # Compute DDOT := x.T * y + int *n, # Length of vectors + np.float32_t *x, # Vector x, min(len(x)) = n + int *incx, # The increment between elements of x (usually 1) + np.float32_t *y, # Vector y, min(len(y)) = m + int *incy # The increment between elements of y (usually 1) +) + +ctypedef int dgemm_t( + # Compute C := alpha*A*B + beta*C + char *transa, # {'T','C'}: o(A)=A'; {'N'}: o(A)=A + char *transb, # {'T','C'}: o(B)=B'; {'N'}: o(B)=B + int *m, # Rows of o(A) (and of C) + int *n, # Columns of o(B) (and of C) + int *k, # Columns of o(A) / Rows of o(B) + np.float64_t *alpha, # Scalar multiple + np.float64_t *a, # Matrix A: mxk + int *lda, # The size of the first dimension of A (in memory) + np.float64_t *b, # Matrix B: kxn + int *ldb, # The size of the first dimension of B (in memory) + np.float64_t *beta, # Scalar multiple + np.float64_t *c, # Matrix C: mxn + int *ldc # The size of the first dimension of C (in memory) +) + +ctypedef int dgemv_t( + # Compute y := alpha*A*x + beta*y + char *trans, # {'T','C'}: o(A)=A'; {'N'}: o(A)=A + int *m, # Rows of A (prior to transpose from *trans) + int *n, # Columns of A / min(len(x)) + np.float64_t *alpha, # Scalar multiple + np.float64_t *a, # Matrix A: mxn + int *lda, # The size of the first dimension of A (in memory) + np.float64_t *x, # Vector x, min(len(x)) = n + int *incx, # The increment between elements of x (usually 1) + np.float64_t *beta, # Scalar multiple + np.float64_t *y, # Vector y, min(len(y)) = m + int *incy # The increment between elements of y (usually 1) +) + +ctypedef int dsymm_t( + # DSYMM - perform one of the matrix-matrix operations C := + # alpha*A*B + beta*C, + char *side, # {'L', 'R'}: left, right + char *uplo, # {'U','L'}, upper, lower + int *m, # Rows of C + int *n, # Columns of C + np.float64_t *alpha, # Scalar multiple + np.float64_t *a, # Matrix A + int *lda, # The size of the first dimension of A (in memory) + np.float64_t *b, # Matrix B + int *ldb, # The size of the first dimension of B (in memory) + np.float64_t *beta, # Scalar multiple + np.float64_t *c, # Matrix C + int *ldc, # The size of the first dimension of C (in memory) +) + +ctypedef int dsymv_t( + # DSYMV - perform the matrix-vector operation y := alpha*A*x + # + beta*y, + char *uplo, # {'U','L'}, upper, lower + int *n, # Order of matrix A + np.float64_t *alpha, # Scalar multiple + np.float64_t *a, # Matrix A: mxn + int *lda, # The size of the first dimension of A (in memory) + np.float64_t *x, # Vector x, min(len(x)) = n + int *incx, # The increment between elements of x (usually 1) + np.float64_t *beta, # Scalar multiple + np.float64_t *y, # Vector y, min(len(y)) = n + int *incy, # The increment between elements of y (usually 1) +) + +ctypedef int dtrmm_t( + # DTRMM - perform one of the matrix-matrix operations B := + # alpha*op( A )*B, or B := alpha*B*op( A ), + char *side, # {'L', 'R'}: left, right + char *uplo, # {'U','L'}, upper, lower + char *transa, # {'T','C'}: o(A)=A'; {'N'}: o(A)=A + char *diag, # {'U','N'}: unit triangular or not + int *m, # Rows of B + int *n, # Columns of B + np.float64_t *alpha, # Scalar multiple + np.float64_t *a, # Matrix A + int *lda, # The size of the first dimension of A (in memory) + np.float64_t *b, # Matrix B + int *ldb, # The size of the first dimension of B (in memory) +) + +ctypedef int dtrmv_t( + # DTRMV - perform one of the matrix-vector operations x := + # A*x, or x := A'*x, + char *uplo, # {'U','L'}, upper, lower + char *trans, # {'T','C'}: o(A)=A'; {'N'}: o(A)=A + char *diag, # {'U','N'}: unit triangular or not + int *n, # Order of matrix A + np.float64_t *a, # Matrix A: mxn + int *lda, # The size of the first dimension of A (in memory) + np.float64_t *x, # Vector x, min(len(x)) = n + int *incx, # The increment between elements of x (usually 1) +) + +ctypedef int dcopy_t( + int *n, # Number of vector elements to be copied. + np.float64_t *x, # Vector from which to copy. + int *incx, # Increment between elements of x. + np.float64_t *y, # array of dimension (n-1) * |incy| + 1, result vector. + int *incy # Increment between elements of y. +) + +ctypedef int dscal_t( + # DSCAL - BLAS level one, scales a double precision vector + int *n, # Number of elements in the vector. + np.float64_t *alpha, # scalar alpha + np.float64_t *x, # Array of dimension (n-1) * |incx| + 1. Vector to be scaled. + int *incx # Increment between elements of x. +) + +ctypedef int daxpy_t( + # Compute y := alpha*x + y + int *n, # Columns of o(A) / min(len(x)) + np.float64_t *alpha, # Scalar multiple + np.float64_t *x, # Vector x, min(len(x)) = n + int *incx, # The increment between elements of x (usually 1) + np.float64_t *y, # Vector y, min(len(y)) = m + int *incy # The increment between elements of y (usually 1) +) + +ctypedef double ddot_t( + # Compute DDOT := x.T * y + int *n, # Length of vectors + np.float64_t *x, # Vector x, min(len(x)) = n + int *incx, # The increment between elements of x (usually 1) + np.float64_t *y, # Vector y, min(len(y)) = m + int *incy # The increment between elements of y (usually 1) +) + +ctypedef int cgemm_t( + # Compute C := alpha*A*B + beta*C + char *transa, # {'T','C'}: o(A)=A'; {'N'}: o(A)=A + char *transb, # {'T','C'}: o(B)=B'; {'N'}: o(B)=B + int *m, # Rows of o(A) (and of C) + int *n, # Columns of o(B) (and of C) + int *k, # Columns of o(A) / Rows of o(B) + np.complex64_t *alpha, # Scalar multiple + np.complex64_t *a, # Matrix A: mxk + int *lda, # The size of the first dimension of A (in memory) + np.complex64_t *b, # Matrix B: kxn + int *ldb, # The size of the first dimension of B (in memory) + np.complex64_t *beta, # Scalar multiple + np.complex64_t *c, # Matrix C: mxn + int *ldc # The size of the first dimension of C (in memory) +) + +ctypedef int cgemv_t( + # Compute C := alpha*A*x + beta*y + char *trans, # {'T','C'}: o(A)=A'; {'N'}: o(A)=A + int *m, # Rows of o(A) + int *n, # Columns of o(A) / min(len(x)) + np.complex64_t *alpha, # Scalar multiple + np.complex64_t *a, # Matrix A: mxn + int *lda, # The size of the first dimension of A (in memory) + np.complex64_t *x, # Vector x, min(len(x)) = n + int *incx, # The increment between elements of x (usually 1) + np.complex64_t *beta, # Scalar multiple + np.complex64_t *y, # Vector y, min(len(y)) = m + int *incy # The increment between elements of y (usually 1) +) + +ctypedef int csymm_t( + # CSYMM - perform one of the matrix-matrix operations C := + # alpha*A*B + beta*C, + char *side, # {'L', 'R'}: left, right + char *uplo, # {'U','L'}, upper, lower + int *m, # Rows of C + int *n, # Columns of C + np.complex64_t *alpha, # Scalar multiple + np.complex64_t *a, # Matrix A + int *lda, # The size of the first dimension of A (in memory) + np.complex64_t *b, # Matrix B + int *ldb, # The size of the first dimension of B (in memory) + np.complex64_t *beta, # Scalar multiple + np.complex64_t *c, # Matrix C + int *ldc, # The size of the first dimension of C (in memory) +) + +ctypedef int csymv_t( + # CSYMV - perform the matrix-vector operation y := alpha*A*x + # + beta*y, + char *uplo, # {'U','L'}, upper, lower + int *n, # Order of matrix A + np.complex64_t *alpha, # Scalar multiple + np.complex64_t *a, # Matrix A: mxn + int *lda, # The size of the first dimension of A (in memory) + np.complex64_t *x, # Vector x, min(len(x)) = n + int *incx, # The increment between elements of x (usually 1) + np.complex64_t *beta, # Scalar multiple + np.complex64_t *y, # Vector y, min(len(y)) = n + int *incy, # The increment between elements of y (usually 1) +) + +ctypedef int ctrmm_t( + # CTRMM - perform one of the matrix-matrix operations B := + # alpha*op( A )*B, or B := alpha*B*op( A ), + char *side, # {'L', 'R'}: left, right + char *uplo, # {'U','L'}, upper, lower + char *transa, # {'T','C'}: o(A)=A'; {'N'}: o(A)=A + char *diag, # {'U','N'}: unit triangular or not + int *m, # Rows of B + int *n, # Columns of B + np.complex64_t *alpha, # Scalar multiple + np.complex64_t *a, # Matrix A + int *lda, # The size of the first dimension of A (in memory) + np.complex64_t *b, # Matrix B + int *ldb, # The size of the first dimension of B (in memory) +) + +ctypedef int ctrmv_t( + # CTRMV - perform one of the matrix-vector operations x := + # A*x, or x := A'*x, + char *uplo, # {'U','L'}, upper, lower + char *trans, # {'T','C'}: o(A)=A'; {'N'}: o(A)=A + char *diag, # {'U','N'}: unit triangular or not + int *n, # Order of matrix A + np.complex64_t *a, # Matrix A: mxn + int *lda, # The size of the first dimension of A (in memory) + np.complex64_t *x, # Vector x, min(len(x)) = n + int *incx, # The increment between elements of x (usually 1) +) + +ctypedef int ccopy_t( + int *n, # Number of vector elements to be copied. + np.complex64_t *x, # Vector from which to copy. + int *incx, # Increment between elements of x. + np.complex64_t *y, # array of dimension (n-1) * |incy| + 1, result vector. + int *incy # Increment between elements of y. +) + +ctypedef int cscal_t( + # CSCAL - BLAS level one, scales a double precision vector + int *n, # Number of elements in the vector. + np.complex64_t *alpha, # scalar alpha + np.complex64_t *x, # Array of dimension (n-1) * |incx| + 1. Vector to be scaled. + int *incx # Increment between elements of x. +) + +ctypedef int caxpy_t( + # Compute y := alpha*x + y + int *n, # Columns of o(A) / min(len(x)) + np.complex64_t *alpha, # Scalar multiple + np.complex64_t *x, # Vector x, min(len(x)) = n + int *incx, # The increment between elements of x (usually 1) + np.complex64_t *y, # Vector y, min(len(y)) = m + int *incy # The increment between elements of y (usually 1) +) + +ctypedef np.complex64_t cdotu_t( + # Compute CDOTU := x.T * y + int *n, # Length of vectors + np.complex64_t *x, # Vector x, min(len(x)) = n + int *incx, # The increment between elements of x (usually 1) + np.complex64_t *y, # Vector y, min(len(y)) = m + int *incy # The increment between elements of y (usually 1) +) + +ctypedef int zgemm_t( + # Compute C := alpha*A*B + beta*C + char *transa, # {'T','C'}: o(A)=A'; {'N'}: o(A)=A + char *transb, # {'T','C'}: o(B)=B'; {'N'}: o(B)=B + int *m, # Rows of o(A) (and of C) + int *n, # Columns of o(B) (and of C) + int *k, # Columns of o(A) / Rows of o(B) + np.complex128_t *alpha, # Scalar multiple + np.complex128_t *a, # Matrix A: mxk + int *lda, # The size of the first dimension of A (in memory) + np.complex128_t *b, # Matrix B: kxn + int *ldb, # The size of the first dimension of B (in memory) + np.complex128_t *beta, # Scalar multiple + np.complex128_t *c, # Matrix C: mxn + int *ldc # The size of the first dimension of C (in memory) +) + +ctypedef int zgemv_t( + # Compute C := alpha*A*x + beta*y + char *trans, # {'T','C'}: o(A)=A'; {'N'}: o(A)=A + int *m, # Rows of o(A) + int *n, # Columns of o(A) / min(len(x)) + np.complex128_t *alpha, # Scalar multiple + np.complex128_t *a, # Matrix A: mxn + int *lda, # The size of the first dimension of A (in memory) + np.complex128_t *x, # Vector x, min(len(x)) = n + int *incx, # The increment between elements of x (usually 1) + np.complex128_t *beta, # Scalar multiple + np.complex128_t *y, # Vector y, min(len(y)) = m + int *incy # The increment between elements of y (usually 1) +) + +ctypedef int zsymm_t( + # ZSYMM - perform one of the matrix-matrix operations C := + # alpha*A*B + beta*C, + char *side, # {'L', 'R'}: left, right + char *uplo, # {'U','L'}, upper, lower + int *m, # Rows of C + int *n, # Columns of C + np.complex128_t *alpha, # Scalar multiple + np.complex128_t *a, # Matrix A + int *lda, # The size of the first dimension of A (in memory) + np.complex128_t *b, # Matrix B + int *ldb, # The size of the first dimension of B (in memory) + np.complex128_t *beta, # Scalar multiple + np.complex128_t *c, # Matrix C + int *ldc, # The size of the first dimension of C (in memory) +) + +ctypedef int zsymv_t( + # ZSYMV - perform the matrix-vector operation y := alpha*A*x + # + beta*y, + char *uplo, # {'U','L'}, upper, lower + int *n, # Order of matrix A + np.complex128_t *alpha, # Scalar multiple + np.complex128_t *a, # Matrix A: mxn + int *lda, # The size of the first dimension of A (in memory) + np.complex128_t *x, # Vector x, min(len(x)) = n + int *incx, # The increment between elements of x (usually 1) + np.complex128_t *beta, # Scalar multiple + np.complex128_t *y, # Vector y, min(len(y)) = n + int *incy, # The increment between elements of y (usually 1) +) + +ctypedef int ztrmm_t( + # ZTRMM - perform one of the matrix-matrix operations B := + # alpha*op( A )*B, or B := alpha*B*op( A ), + char *side, # {'L', 'R'}: left, right + char *uplo, # {'U','L'}, upper, lower + char *transa, # {'T','C'}: o(A)=A'; {'N'}: o(A)=A + char *diag, # {'U','N'}: unit triangular or not + int *m, # Rows of B + int *n, # Columns of B + np.complex128_t *alpha, # Scalar multiple + np.complex128_t *a, # Matrix A + int *lda, # The size of the first dimension of A (in memory) + np.complex128_t *b, # Matrix B + int *ldb, # The size of the first dimension of B (in memory) +) + +ctypedef int ztrmv_t( + # ZTRMV - perform one of the matrix-vector operations x := + # A*x, or x := A'*x, + char *uplo, # {'U','L'}, upper, lower + char *trans, # {'T','C'}: o(A)=A'; {'N'}: o(A)=A + char *diag, # {'U','N'}: unit triangular or not + int *n, # Order of matrix A + np.complex128_t *a, # Matrix A: mxn + int *lda, # The size of the first dimension of A (in memory) + np.complex128_t *x, # Vector x, min(len(x)) = n + int *incx, # The increment between elements of x (usually 1) +) + +ctypedef int zcopy_t( + int *n, # Number of vector elements to be copied. + np.complex128_t *x, # Vector from which to copy. + int *incx, # Increment between elements of x. + np.complex128_t *y, # array of dimension (n-1) * |incy| + 1, result vector. + int *incy # Increment between elements of y. +) + +ctypedef int zscal_t( + # ZSCAL - BLAS level one, scales a double np.complex128_t precision vector + int *n, # Number of elements in the vector. + np.complex128_t *alpha, # scalar alpha + np.complex128_t *x, # Array of dimension (n-1) * |incx| + 1. Vector to be scaled. + int *incx # Increment between elements of x. +) + +ctypedef int zaxpy_t( + # Compute y := alpha*x + y + int *n, # Columns of o(A) / min(len(x)) + np.complex128_t *alpha, # Scalar multiple + np.complex128_t *x, # Vector x, min(len(x)) = n + int *incx, # The increment between elements of x (usually 1) + np.complex128_t *y, # Vector y, min(len(y)) = m + int *incy # The increment between elements of y (usually 1) +) + +ctypedef np.complex128_t zdotu_t( + # Compute ZDOTU := x.T * y + int *n, # Length of vectors + np.complex128_t *x, # Vector x, min(len(x)) = n + int *incx, # The increment between elements of x (usually 1) + np.complex128_t *y, # Vector y, min(len(y)) = m + int *incy # The increment between elements of y (usually 1) +) + +# +# LAPACK +# + +ctypedef int sgetrf_t( + # SGETRF - compute an LU factorization of a general M-by-N + # matrix A using partial pivoting with row interchanges + int *m, # Rows of A + int *n, # Columns of A + np.float32_t *a, # Matrix A: mxn + int *lda, # The size of the first dimension of A (in memory) + int *ipiv, # Matrix P: mxn (the pivot indices) + int *info # 0 if success, otherwise an error code (integer) +) + +ctypedef int sgetri_t( + # SGETRI - compute the inverse of a matrix using the LU fac- + # torization computed by SGETRF + int *n, # Order of A + np.float32_t *a, # Matrix A: nxn (the LUP decomposed matrix from dgetrf) + int *lda, # The size of the first dimension of A (in memory) + int *ipiv, # Matrix P: nxn (the pivot indices from the LUP decomposition) + np.float32_t *work, # Matrix: nxn (a workspace for the inversion, optimal size=nxn) + int *lwork, # Number of elements in the workspace: optimal is n**2 + int *info # 0 if success, otherwise an error code (integer) +) + +ctypedef int sgetrs_t( + # SGETRS - solve a system of linear equations A * X = B or A' + # * X = B with a general N-by-N matrix A using the LU factori- + # zation computed by SGETRF + char *trans, # Specifies the form of the system of equations + int *n, # Order of A + int *nrhs, # The number of right hand sides + np.float32_t *a, # Matrix A: nxn (the LUP decomposed matrix from dgetrf) + int *lda, # The size of the first dimension of A (in memory) + int *ipiv, # Matrix P: nxn (the pivot indices from the LUP decomposition) + np.float32_t *b, # Matrix B: nxnrhs + int *ldb, # The size of the first dimension of B (in memory) + int *info # 0 if success, otherwise an error code (integer) +) + +ctypedef int spotrf_t( + # Compute the Cholesky factorization of a + # real symmetric positive definite matrix A + char *uplo, # 'U': A = U'U and U is stored, 'L': A = LL' and L is stored + int *n, # The order of the matrix A. n >= 0. + np.float32_t *a, # Matrix A: nxn + int *lda, # The size of the first dimension of A (in memory) + int *info # 0 if success, otherwise an error code (integer) +) + +ctypedef int spotri_t( + # SPOTRI - compute the inverse of a real symmetric positive + # definite matrix A using the Cholesky factorization A = + # U**T*U or A = L*L**T computed by SPOTRF + char *uplo, # 'U': A = U'U and U is stored, 'L': A = LL' and L is stored + int *n, # The order of the matrix A. n >= 0. + np.float32_t *a, # Matrix A: nxn + int *lda, # The size of the first dimension of A (in memory) + int *info # 0 if success, otherwise an error code (integer) +) + +ctypedef int spotrs_t( + # SPOTRS - solve a system of linear equations A*X = B with a + # symmetric positive definite matrix A using the Cholesky fac- + # torization A = U**T*U or A = L*L**T computed by SPOTRF + char *uplo, # 'U': A = U'U and U is stored, 'L': A = LL' and L is stored + int *n, # The order of the matrix A. n >= 0. + int *nrhs, # The number of right hand sides + np.float32_t *a, # Matrix A: nxn + int *lda, # The size of the first dimension of A (in memory) + np.float32_t *b, # Matrix B: nxnrhs + int *ldb, # The size of the first dimension of B (in memory) + int *info # 0 if success, otherwise an error code (integer) +) + +ctypedef int strtrs_t( + # STRTRS solves a triangular system of the form + # A * X = B, A**T * X = B, or A**H * X = B, + # where A is a triangular matrix of order N, and B is an N-by-NRHS + # matrix. A check is made to verify that A is nonsingular. + char *uplo, # 'U': A is upper triangular + char *trans, # N: A * X = B; T: A**T * X = B; C: A**H * X = B + char *diag, # {'U','N'}: unit triangular or not + int *n, # The order of the matrix A. n >= 0. + int *nrhs, # The number of right hand sides + np.float32_t *a, # Matrix A: nxn + int *lda, # The size of the first dimension of A (in memory) + np.float32_t *b, # Matrix B: nxnrhs + int *ldb, # The size of the first dimension of B (in memory) + int *info # 0 if success, otherwise an error code (integer) +) + +ctypedef int dgetrf_t( + # DGETRF - compute an LU factorization of a general M-by-N + # matrix A using partial pivoting with row interchanges + int *m, # Rows of A + int *n, # Columns of A + np.float64_t *a, # Matrix A: mxn + int *lda, # The size of the first dimension of A (in memory) + int *ipiv, # Matrix P: mxn (the pivot indices) + int *info # 0 if success, otherwise an error code (integer) +) + +ctypedef int dgetri_t( + # DGETRI - compute the inverse of a matrix using the LU fac- + # torization computed by DGETRF + int *n, # Order of A + np.float64_t *a, # Matrix A: nxn (the LUP decomposed matrix from dgetrf) + int *lda, # The size of the first dimension of A (in memory) + int *ipiv, # Matrix P: nxn (the pivot indices from the LUP decomposition) + np.float64_t *work, # Matrix: nxn (a workspace for the inversion, optimal size=nxn) + int *lwork, # Number of elements in the workspace: optimal is n**2 + int *info # 0 if success, otherwise an error code (integer) +) + +ctypedef int dgetrs_t( + # DGETRS - solve a system of linear equations A * X = B or A' + # * X = B with a general N-by-N matrix A using the LU factori- + # zation computed by DGETRF + char *trans, # Specifies the form of the system of equations + int *n, # Order of A + int *nrhs, # The number of right hand sides + np.float64_t *a, # Matrix A: nxn (the LUP decomposed matrix from dgetrf) + int *lda, # The size of the first dimension of A (in memory) + int *ipiv, # Matrix P: nxn (the pivot indices from the LUP decomposition) + np.float64_t *b, # Matrix B: nxnrhs + int *ldb, # The size of the first dimension of B (in memory) + int *info # 0 if success, otherwise an error code (integer) +) + +ctypedef int dpotrf_t( + # Compute the Cholesky factorization of a + # real symmetric positive definite matrix A + char *uplo, # 'U': A = U'U and U is stored, 'L': A = LL' and L is stored + int *n, # The order of the matrix A. n >= 0. + np.float64_t *a, # Matrix A: nxn + int *lda, # The size of the first dimension of A (in memory) + int *info # 0 if success, otherwise an error code (integer) +) + +ctypedef int dpotri_t( + # DPOTRI - compute the inverse of a real symmetric positive + # definite matrix A using the Cholesky factorization A = + # U**T*U or A = L*L**T computed by DPOTRF + char *uplo, # 'U': A = U'U and U is stored, 'L': A = LL' and L is stored + int *n, # The order of the matrix A. n >= 0. + np.float64_t *a, # Matrix A: nxn + int *lda, # The size of the first dimension of A (in memory) + int *info # 0 if success, otherwise an error code (integer) +) + +ctypedef int dpotrs_t( + # DPOTRS - solve a system of linear equations A*X = B with a + # symmetric positive definite matrix A using the Cholesky fac- + # torization A = U**T*U or A = L*L**T computed by DPOTRF + char *uplo, # 'U': A = U'U and U is stored, 'L': A = LL' and L is stored + int *n, # The order of the matrix A. n >= 0. + int *nrhs, # The number of right hand sides + np.float64_t *a, # Matrix A: nxn + int *lda, # The size of the first dimension of A (in memory) + np.float64_t *b, # Matrix B: nxnrhs + int *ldb, # The size of the first dimension of B (in memory) + int *info # 0 if success, otherwise an error code (integer) +) + +ctypedef int dtrtrs_t( + # DTRTRS solves a triangular system of the form + # A * X = B, A**T * X = B, or A**H * X = B, + # where A is a triangular matrix of order N, and B is an N-by-NRHS + # matrix. A check is made to verify that A is nonsingular. + char *uplo, # 'U': A is upper triangular + char *trans, # N: A * X = B; T: A**T * X = B; C: A**H * X = B + char *diag, # {'U','N'}: unit triangular or not + int *n, # The order of the matrix A. n >= 0. + int *nrhs, # The number of right hand sides + np.float64_t *a, # Matrix A: nxn + int *lda, # The size of the first dimension of A (in memory) + np.float64_t *b, # Matrix B: nxnrhs + int *ldb, # The size of the first dimension of B (in memory) + int *info # 0 if success, otherwise an error code (integer) +) + +ctypedef int cgetrf_t( + # CGETRF - compute an LU factorization of a general M-by-N + # matrix A using partial pivoting with row interchanges + int *m, # Rows of A + int *n, # Columns of A + np.complex64_t *a, # Matrix A: mxn + int *lda, # The size of the first dimension of A (in memory) + int *ipiv, # Matrix P: mxn (the pivot indices) + int *info # 0 if success, otherwise an error code (integer) +) + +ctypedef int cgetri_t( + # CGETRI - compute the inverse of a matrix using the LU fac- + # torization computed by CGETRF + int *n, # Order of A + np.complex64_t *a, # Matrix A: nxn (the LUP decomposed matrix from dgetrf) + int *lda, # The size of the first dimension of A (in memory) + int *ipiv, # Matrix P: nxn (the pivot indices from the LUP decomposition) + np.complex64_t *work, # Matrix: nxn (a workspace for the inversion, optimal size=nxn) + int *lwork, # Number of elements in the workspace: optimal is n**2 + int *info # 0 if success, otherwise an error code (integer) +) + +ctypedef int cgetrs_t( + # CGETRS - solve a system of linear equations A * X = B, A**T + # * X = B, or A**H * X = B with a general N-by-N matrix A + # using the LU factorization computed by CGETRF + char *trans, # Specifies the form of the system of equations + int *n, # Order of A + int *nrhs, # The number of right hand sides + np.complex64_t *a, # Matrix A: nxn (the LUP decomposed matrix from dgetrf) + int *lda, # The size of the first dimension of A (in memory) + int *ipiv, # Matrix P: nxn (the pivot indices from the LUP decomposition) + np.complex64_t *b, # Matrix B: nxnrhs + int *ldb, # The size of the first dimension of B (in memory) + int *info # 0 if success, otherwise an error code (integer) +) + +ctypedef int cpotrf_t( + # Compute the Cholesky factorization of a + # np.complex128_t Hermitian positive definite matrix A + char *uplo, # 'U': A = U'U and U is stored, 'L': A = LL' and L is stored + int *n, # The order of the matrix A. n >= 0. + np.complex64_t *a, # Matrix A: nxn + int *lda, # The size of the first dimension of A (in memory) + int *info # 0 if success, otherwise an error code (integer) +) + +ctypedef int cpotri_t( + # CPOTRI - compute the inverse of a np.complex128_t Hermitian positive + # definite matrix A using the Cholesky factorization A = + # U**T*U or A = L*L**T computed by CPOTRF + char *uplo, # 'U': A = U'U and U is stored, 'L': A = LL' and L is stored + int *n, # The order of the matrix A. n >= 0. + np.complex64_t *a, # Matrix A: nxn + int *lda, # The size of the first dimension of A (in memory) + int *info # 0 if success, otherwise an error code (integer) +) + +ctypedef int cpotrs_t( + # ZPOTRS - solve a system of linear equations A*X = B with a + # Hermitian positive definite matrix A using the Cholesky fac- + # torization A = U**H*U or A = L*L**H computed by ZPOTRF + char *uplo, # 'U': A = U'U and U is stored, 'L': A = LL' and L is stored + int *n, # The order of the matrix A. n >= 0. + int *nrhs, # The number of right hand sides + np.complex64_t *a, # Matrix A: nxn + int *lda, # The size of the first dimension of A (in memory) + np.complex64_t *b, # Matrix B: nxnrhs + int *ldb, # The size of the first dimension of B (in memory) + int *info # 0 if success, otherwise an error code (integer) +) + +ctypedef int ctrtrs_t( + # CTRTRS solves a triangular system of the form + # A * X = B, A**T * X = B, or A**H * X = B, + # where A is a triangular matrix of order N, and B is an N-by-NRHS + # matrix. A check is made to verify that A is nonsingular. + char *uplo, # 'U': A is upper triangular + char *trans, # N: A * X = B; T: A**T * X = B; C: A**H * X = B + char *diag, # {'U','N'}: unit triangular or not + int *n, # The order of the matrix A. n >= 0. + int *nrhs, # The number of right hand sides + np.complex64_t *a, # Matrix A: nxn + int *lda, # The size of the first dimension of A (in memory) + np.complex64_t *b, # Matrix B: nxnrhs + int *ldb, # The size of the first dimension of B (in memory) + int *info # 0 if success, otherwise an error code (integer) +) + +ctypedef int zgetrf_t( + # ZGETRF - compute an LU factorization of a general M-by-N + # matrix A using partial pivoting with row interchanges + int *m, # Rows of A + int *n, # Columns of A + np.complex128_t *a, # Matrix A: mxn + int *lda, # The size of the first dimension of A (in memory) + int *ipiv, # Matrix P: mxn (the pivot indices) + int *info # 0 if success, otherwise an error code (integer) +) + +ctypedef int zgetri_t( + # ZGETRI - compute the inverse of a matrix using the LU fac- + # torization computed by ZGETRF + int *n, # Order of A + np.complex128_t *a, # Matrix A: nxn (the LUP decomposed matrix from dgetrf) + int *lda, # The size of the first dimension of A (in memory) + int *ipiv, # Matrix P: nxn (the pivot indices from the LUP decomposition) + np.complex128_t *work, # Matrix: nxn (a workspace for the inversion, optimal size=nxn) + int *lwork, # Number of elements in the workspace: optimal is n**2 + int *info # 0 if success, otherwise an error code (integer) +) + +ctypedef int zgetrs_t( + # ZGETRS - solve a system of linear equations A * X = B, A**T + # * X = B, or A**H * X = B with a general N-by-N matrix A + # using the LU factorization computed by ZGETRF + char *trans, # Specifies the form of the system of equations + int *n, # Order of A + int *nrhs, # The number of right hand sides + np.complex128_t *a, # Matrix A: nxn (the LUP decomposed matrix from dgetrf) + int *lda, # The size of the first dimension of A (in memory) + int *ipiv, # Matrix P: nxn (the pivot indices from the LUP decomposition) + np.complex128_t *b, # Matrix B: nxnrhs + int *ldb, # The size of the first dimension of B (in memory) + int *info # 0 if success, otherwise an error code (integer) +) + +ctypedef int zpotrf_t( + # Compute the Cholesky factorization of a + # np.complex128_t Hermitian positive definite matrix A + char *uplo, # 'U': A = U'U and U is stored, 'L': A = LL' and L is stored + int *n, # The order of the matrix A. n >= 0. + np.complex128_t *a, # Matrix A: nxn + int *lda, # The size of the first dimension of A (in memory) + int *info # 0 if success, otherwise an error code (integer) +) + +ctypedef int zpotri_t( + # ZPOTRI - compute the inverse of a np.complex128_t Hermitian positive + # definite matrix A using the Cholesky factorization A = + # U**T*U or A = L*L**T computed by ZPOTRF + char *uplo, # 'U': A = U'U and U is stored, 'L': A = LL' and L is stored + int *n, # The order of the matrix A. n >= 0. + np.complex128_t *a, # Matrix A: nxn + int *lda, # The size of the first dimension of A (in memory) + int *info # 0 if success, otherwise an error code (integer) +) + +ctypedef int zpotrs_t( + # ZPOTRS - solve a system of linear equations A*X = B with a + # Hermitian positive definite matrix A using the Cholesky fac- + # torization A = U**H*U or A = L*L**H computed by ZPOTRF + char *uplo, # 'U': A = U'U and U is stored, 'L': A = LL' and L is stored + int *n, # The order of the matrix A. n >= 0. + int *nrhs, # The number of right hand sides + np.complex128_t *a, # Matrix A: nxn + int *lda, # The size of the first dimension of A (in memory) + np.complex128_t *b, # Matrix B: nxnrhs + int *ldb, # The size of the first dimension of B (in memory) + int *info # 0 if success, otherwise an error code (integer) +) + +ctypedef int ztrtrs_t( + # ZTRTRS solves a triangular system of the form + # A * X = B, A**T * X = B, or A**H * X = B, + # where A is a triangular matrix of order N, and B is an N-by-NRHS + # matrix. A check is made to verify that A is nonsingular. + char *uplo, # 'U': A is upper triangular + char *trans, # N: A * X = B; T: A**T * X = B; C: A**H * X = B + char *diag, # {'U','N'}: unit triangular or not + int *n, # The order of the matrix A. n >= 0. + int *nrhs, # The number of right hand sides + np.complex128_t *a, # Matrix A: nxn + int *lda, # The size of the first dimension of A (in memory) + np.complex128_t *b, # Matrix B: nxnrhs + int *ldb, # The size of the first dimension of B (in memory) + int *info # 0 if success, otherwise an error code (integer) +) \ No newline at end of file diff --git a/statsmodels/src/bspline_ext.c b/statsmodels/src/bspline_ext.c new file mode 100644 index 0000000..881af05 --- /dev/null +++ b/statsmodels/src/bspline_ext.c @@ -0,0 +1,134 @@ +#include "Python.h" +#include "numpy/arrayobject.h" + +/* function prototypes */ + +double *bspline(double*, double*, int, double *, int, int, int, int, int); +void bspline_gram(double*, double *, int, int, int, int); +void invband_compute(double*, double *, int, int); + + +static PyObject *BSpline_Invband(PyObject *self, PyObject *args) +{ + + double *data; + double *L_data; + npy_intp *dims_invband; + npy_intp *dims_L; + PyArrayObject *L = NULL; + PyArrayObject *invband = NULL; + + if(!PyArg_ParseTuple(args, "O", &L)) + goto exit; + + dims_L = PyArray_DIMS(L); + L_data = (double *)PyArray_DATA(L); + + dims_invband = calloc(2, sizeof(npy_intp)); + dims_invband[0] = dims_L[0]; + dims_invband[1] = dims_L[1]; + + invband = (PyArrayObject*)PyArray_SimpleNew(2, dims_invband, PyArray_DOUBLE); + data = (double *)PyArray_DATA(invband); + free(dims_invband); + + invband_compute(data, L_data, (int)dims_L[0], (int)dims_L[1]); + +exit: + + return PyErr_Occurred() ? NULL : (PyObject*)Py_BuildValue("O", invband); + +} + + + +static PyObject *BSpline_Gram(PyObject *self, PyObject *args) +{ + + int m; + int dl; + int dr; + double *knots; + double *data; + npy_intp *nknots; + npy_intp *dims_gram; + PyArrayObject *knots_array = NULL; + PyArrayObject *gram_array = NULL; + + if(!PyArg_ParseTuple(args, "Oiii", &knots_array, &m, &dl, &dr)) + goto exit; + + nknots = PyArray_DIMS(knots_array); + knots = (double *)PyArray_DATA(knots_array); + + dims_gram = calloc(2, sizeof(npy_intp)); + dims_gram[0] = (int)nknots[0] - m; + dims_gram[1] = m; + + gram_array = (PyArrayObject*)PyArray_SimpleNew(2, dims_gram, PyArray_DOUBLE); + data = (double *)PyArray_DATA(gram_array); + free(dims_gram); + + bspline_gram(data, knots, (int)nknots[0], m, dl, dr); + +exit: + + return PyErr_Occurred() ? NULL : (PyObject*)Py_BuildValue("O", gram_array); + +} + + +static PyObject *BSpline_Evaluate(PyObject *self, PyObject *args) +{ + + int i; + int upper; + int lower; + int m; + int d; + double *knots; + double *x; + double *data; + npy_intp *nknots; + npy_intp *nx; + npy_intp dims_basis[2]; + PyArrayObject *knots_array = NULL; + PyArrayObject *x_array = NULL; + PyArrayObject *basis_array = NULL; + + if(!PyArg_ParseTuple(args, "OOiiii", &x_array, &knots_array, &m, &d, &lower, &upper)) + goto exit; + + nknots = PyArray_DIMS(knots_array); + nx = PyArray_DIMS(x_array); + + knots = (double *)PyArray_DATA(knots_array); + x = (double *)PyArray_DATA(x_array); + + dims_basis[0] = upper-lower; + dims_basis[1] = (int)nx[0]; + basis_array = (PyArrayObject*)PyArray_SimpleNew(2, dims_basis, PyArray_DOUBLE); + data = (double *)PyArray_DATA(basis_array); + + bspline(data, x, (int)nx[0], knots, (int)nknots[0], m, d, lower, upper); + +exit: + + return PyErr_Occurred() ? NULL : (PyObject*)Py_BuildValue("O", basis_array); + +} + + +static PyMethodDef BSplineMethods[] = +{ + { "evaluate", BSpline_Evaluate, METH_VARARGS, NULL }, + { "gram", BSpline_Gram, METH_VARARGS, NULL }, + { "invband", BSpline_Invband, METH_VARARGS, NULL }, + { NULL, NULL, 0, NULL}, +}; + +PyMODINIT_FUNC init_hbspline(void) +{ + Py_InitModule("_hbspline", BSplineMethods); + import_array(); +} diff --git a/statsmodels/src/bspline_impl.c b/statsmodels/src/bspline_impl.c new file mode 100644 index 0000000..9553bc8 --- /dev/null +++ b/statsmodels/src/bspline_impl.c @@ -0,0 +1,271 @@ + +#include + +/* function prototypes */ + +double *bspline(double *, double *, int, double *, int, int, int, int, int); +double bspline_quad(double *, int, int, int, int, int, int); +double *bspline_prod(double *, int, double *, int, int, int, int, int, int); +void bspline_gram(double *, double *, int, int, int, int); +void invband_compute(double *, double *, int, int); + + +double *bspline(double *output, double *x, int nx, + double *knots, int nknots, + int m, int d, int lower, int upper){ + + int nbasis; + int index, i, j, k; + double *result, *b, *b0, *b1; + double *f0, *f1; + double denom; + + nbasis = upper - lower; + + result = output; + f0 = (double *) malloc(sizeof(double) * nx); + f1 = (double *) malloc(sizeof(double) * nx); + + if (m == 1) { + for(i=0; i= knots[index]) * (x[k] < knots[index+1]); + result++; + } + } + else { + for (k=0; k nknots - 1) { upper = nknots-1; } + + for (k=lower; k 0) { data[j*n+i] = 0;} + } + } + + for (i=n-1; i>=0; i--) { + for (j=1; j <= (m + +#if PY_VERSION_HEX >= 0x03000000 + +void* Capsule_AsVoidPtr(PyObject *obj) +{ + void *ret = PyCapsule_GetPointer(obj, NULL); + if (ret == NULL) { + PyErr_Clear(); + } + return ret; +} + +#else + +void* Capsule_AsVoidPtr(PyObject *ptr) +{ + return PyCObject_AsVoidPtr(ptr); +} + +#endif diff --git a/statsmodels/stats/__init__.py b/statsmodels/stats/__init__.py new file mode 100644 index 0000000..e5f37ff --- /dev/null +++ b/statsmodels/stats/__init__.py @@ -0,0 +1,3 @@ + +from statsmodels import NoseWrapper as Tester +test = Tester().test diff --git a/statsmodels/stats/_adnorm.py b/statsmodels/stats/_adnorm.py new file mode 100644 index 0000000..e1abc2b --- /dev/null +++ b/statsmodels/stats/_adnorm.py @@ -0,0 +1,136 @@ +# -*- coding: utf-8 -*- +""" +Created on Sun Sep 25 21:23:38 2011 + +Author: Josef Perktold and Scipy developers +License : BSD-3 +""" +from __future__ import print_function +from statsmodels.compat.python import range +import numpy as np +from scipy import stats + +from numpy import exp + +def anderson_statistic(x, dist='norm', fit=True, params=(), axis=0): + '''calculate anderson-darling A2 statistic + + Parameters + ---------- + x : array_like + data + dist : 'norm' or callable + null distribution for the test statistic + fit : bool + If True, then the distribution parameters are estimated. + Currently only for 1d data x, except in case dist='norm' + params : tuple + optional distribution parameters if fit is False + axis : integer + If dist is 'norm' or fit is False, then data can be an n-dimensional + and axis specifies the axis of a variable + + Returns + ------- + ad2 : float or ndarray + Anderson-Darling statistic + + + ''' + x = np.asarray(x) + y = np.sort(x, axis=axis) + N = y.shape[axis] + if fit: + if dist == 'norm': + xbar = np.expand_dims(np.mean(x, axis=axis), axis) + s = np.expand_dims(np.std(x, ddof=1, axis=axis), axis) + w = (y-xbar)/s + z = stats.norm.cdf(w) + #print z + elif hasattr(dist, '__call__'): + params = dist.fit(x) + #print params + z = dist.cdf(y, *params) + print(z) + else: + if hasattr(dist, '__call__'): + z = dist.cdf(y, *params) + else: + raise ValueError('if fit is false, then dist needs to be callable') + + i = np.arange(1,N+1) + sl1 = [None]*x.ndim + sl1[axis] = slice(None) + sl2 = [slice(None)]*x.ndim + sl2[axis] = slice(None,None,-1) + S = np.sum((2*i[sl1]-1.0)/N*(np.log(z)+np.log(1-z[sl2])), axis=axis) + A2 = -N-S + return A2 + + +def normal_ad(x, axis=0): + '''Anderson-Darling test for normal distribution unknown mean and variance + + Parameters + ---------- + x : array_like + data array, currently only 1d + + Returns + ------- + ad2 : float + Anderson Darling test statistic + pval : float + pvalue for hypothesis that the data comes from a normal distribution + with unknown mean and variance + + ''' + #ad2 = stats.anderson(x)[0] + ad2 = anderson_statistic(x, dist='norm', fit=True, axis=axis) + n = x.shape[axis] + + ad2a = ad2 * (1 + 0.75/n + 2.25/n**2) + + if np.size(ad2a) == 1: + if (ad2a >= 0.00 and ad2a < 0.200): + pval = 1 - np.exp(-13.436 + 101.14 * ad2a - 223.73 * ad2a**2) + elif ad2a < 0.340: + pval = 1 - np.exp(-8.318 + 42.796 * ad2a - 59.938 * ad2a**2) + elif ad2a < 0.600: + pval = np.exp(0.9177 - 4.279 * ad2a - 1.38 * ad2a**2) + elif ad2a <= 13: + pval = np.exp(1.2937 - 5.709 * ad2a + 0.0186 * ad2a**2) + else: + pval = 0.0 # is < 4.9542108058458799e-31 + + else: + bounds = np.array([0.0, 0.200, 0.340, 0.600]) + + pval0 = lambda ad2a: np.nan*np.ones_like(ad2a) + pval1 = lambda ad2a: 1 - np.exp(-13.436 + 101.14 * ad2a - 223.73 * ad2a**2) + pval2 = lambda ad2a: 1 - np.exp(-8.318 + 42.796 * ad2a - 59.938 * ad2a**2) + pval3 = lambda ad2a: np.exp(0.9177 - 4.279 * ad2a - 1.38 * ad2a**2) + pval4 = lambda ad2a: np.exp(1.2937 - 5.709 * ad2a + 0.0186 * ad2a**2) + + pvalli = [pval0, pval1, pval2, pval3, pval4] + + idx = np.searchsorted(bounds, ad2a, side='right') + pval = np.nan*np.ones_like(ad2a) + for i in range(5): + mask = (idx == i) + pval[mask] = pvalli[i](ad2a[mask]) + + return ad2, pval + + +if __name__ == '__main__': + x = np.array([-0.1184, -1.3403, 0.0063, -0.612 , -0.3869, -0.2313, -2.8485, + -0.2167, 0.4153, 1.8492, -0.3706, 0.9726, -0.1501, -0.0337, + -1.4423, 1.2489, 0.9182, -0.2331, -0.6182, 0.183 ]) + r_res = np.array([0.58672353588821502, 0.1115380760041617]) + ad2, pval = normal_ad(x) + print(ad2, pval) + print(r_res - [ad2, pval]) + + print(anderson_statistic((x-x.mean())/x.std(), dist=stats.norm, fit=0)) + print(anderson_statistic(x, dist=stats.norm, fit=True)) diff --git a/statsmodels/stats/_lilliefors.py b/statsmodels/stats/_lilliefors.py new file mode 100644 index 0000000..c2e7ab6 --- /dev/null +++ b/statsmodels/stats/_lilliefors.py @@ -0,0 +1,364 @@ +# -*- coding: utf-8 -*- +""" +Created on Sat Oct 01 13:16:49 2011 + +Author: Josef Perktold +License: BSD-3 + +pvalues for Lilliefors test are based on formula and table in + +An Analytic Approximation to the Distribution of Lilliefors's Test Statistic for Normality +Author(s): Gerard E. Dallal and Leland WilkinsonSource: The American Statistician, Vol. 40, No. 4 (Nov., 1986), pp. 294-296Published by: American Statistical AssociationStable URL: http://www.jstor.org/stable/2684607 . + +On the Kolmogorov-Smirnov Test for Normality with Mean and Variance +Unknown +Hubert W. Lilliefors +Journal of the American Statistical Association, Vol. 62, No. 318. (Jun., 1967), pp. 399-402. + +""" +from statsmodels.compat.python import string_types +import numpy as np +from scipy.interpolate import interp1d +from scipy import stats + +def ksstat(x, cdf, alternative='two_sided', args=()): + """ + Calculate statistic for the Kolmogorov-Smirnov test for goodness of fit + + This calculates the test statistic for a test of the distribution G(x) of an observed + variable against a given distribution F(x). Under the null + hypothesis the two distributions are identical, G(x)=F(x). The + alternative hypothesis can be either 'two_sided' (default), 'less' + or 'greater'. The KS test is only valid for continuous distributions. + + Parameters + ---------- + x : array_like, 1d + array of observations + cdf : string or callable + string: name of a distribution in scipy.stats + callable: function to evaluate cdf + alternative : 'two_sided' (default), 'less' or 'greater' + defines the alternative hypothesis (see explanation) + args : tuple, sequence + distribution parameters for call to cdf + + + Returns + ------- + D : float + KS test statistic, either D, D+ or D- + + See Also + -------- + scipy.stats.kstest + + Notes + ----- + + In the one-sided test, the alternative is that the empirical + cumulative distribution function of the random variable is "less" + or "greater" than the cumulative distribution function F(x) of the + hypothesis, G(x)<=F(x), resp. G(x)>=F(x). + + In contrast to scipy.stats.kstest, this function only calculates the + statistic which can be used either as distance measure or to implement + case specific p-values. + + """ + nobs = float(len(x)) + + if isinstance(cdf, string_types): + cdf = getattr(stats.distributions, cdf).cdf + elif hasattr(cdf, 'cdf'): + cdf = getattr(cdf, 'cdf') + + x = np.sort(x) + cdfvals = cdf(x, *args) + + if alternative in ['two_sided', 'greater']: + Dplus = (np.arange(1.0, nobs+1)/nobs - cdfvals).max() + if alternative == 'greater': + return Dplus + + if alternative in ['two_sided', 'less']: + Dmin = (cdfvals - np.arange(0.0, nobs)/nobs).max() + if alternative == 'less': + return Dmin + + D = np.max([Dplus,Dmin]) + return D + + +#new version with tabledist +#-------------------------- + +def get_lilliefors_table(): + #function just to keep things together + from .tabledist import TableDist + #for this test alpha is sf probability, i.e. right tail probability + + alpha = np.array([ 0.2 , 0.15 , 0.1 , 0.05 , 0.01 , 0.001])[::-1] + size = np.array([ 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 25, 30, 40, 100, 400, 900], float) + + #critical values, rows are by sample size, columns are by alpha + crit_lf = np.array( [[303, 321, 346, 376, 413, 433], + [289, 303, 319, 343, 397, 439], + [269, 281, 297, 323, 371, 424], + [252, 264, 280, 304, 351, 402], + [239, 250, 265, 288, 333, 384], + [227, 238, 252, 274, 317, 365], + [217, 228, 241, 262, 304, 352], + [208, 218, 231, 251, 291, 338], + [200, 210, 222, 242, 281, 325], + [193, 202, 215, 234, 271, 314], + [187, 196, 208, 226, 262, 305], + [181, 190, 201, 219, 254, 296], + [176, 184, 195, 213, 247, 287], + [171, 179, 190, 207, 240, 279], + [167, 175, 185, 202, 234, 273], + [163, 170, 181, 197, 228, 266], + [159, 166, 176, 192, 223, 260], + [143, 150, 159, 173, 201, 236], + [131, 138, 146, 159, 185, 217], + [115, 120, 128, 139, 162, 189], + [ 74, 77, 82, 89, 104, 122], + [ 37, 39, 41, 45, 52, 61], + [ 25, 26, 28, 30, 35, 42]])[:,::-1] / 1000. + + + lf = TableDist(alpha, size, crit_lf) + + return lf + +lilliefors_table = get_lilliefors_table() + +def pval_lf(Dmax, n): + '''approximate pvalues for Lilliefors test of normality + + This is only valid for pvalues smaller than 0.1 which is not checked in + this function. + + Parameters + ---------- + Dmax : array_like + two-sided Kolmogorov-Smirnov test statistic + n : int or float + sample size + + Returns + ------- + p-value : float or ndarray + pvalue according to approximation formula of Dallal and Wilkinson. + + Notes + ----- + This is mainly a helper function where the calling code should dispatch + on bound violations. Therefore it doesn't check whether the pvalue is in + the valid range. + + Precision for the pvalues is around 2 to 3 decimals. This approximation is + also used by other statistical packages (e.g. R:fBasics) but might not be + the most precise available. + + References + ---------- + DallalWilkinson1986 + + ''' + + #todo: check boundaries, valid range for n and Dmax + if n>100: + Dmax *= (n/100.)**0.49 + n = 100 + pval = np.exp(-7.01256*Dmax**2 *(n + 2.78019) + + 2.99587 * Dmax * np.sqrt(n + 2.78019) - 0.122119 + + 0.974598/np.sqrt(n) + 1.67997/n) + return pval + + +def kstest_normal(x, pvalmethod='approx'): + '''lilliefors test for normality, + + Kolmogorov Smirnov test with estimated mean and variance + + Parameters + ---------- + x : array_like, 1d + data series, sample + pvalmethod : 'approx', 'table' + 'approx' uses the approximation formula of Dalal and Wilkinson, + valid for pvalues < 0.1. If the pvalue is larger than 0.1, then the + result of `table` is returned + 'table' uses the table from Dalal and Wilkinson, which is available + for pvalues between 0.001 and 0.2, and the formula of Lilliefors for + large n (n>900). Values in the table are linearly interpolated. + Values outside the range will be returned as bounds, 0.2 for large and + 0.001 for small pvalues. + + Returns + ------- + ksstat : float + Kolmogorov-Smirnov test statistic with estimated mean and variance. + pvalue : float + If the pvalue is lower than some threshold, e.g. 0.05, then we can + reject the Null hypothesis that the sample comes from a normal + distribution + + Notes + ----- + Reported power to distinguish normal from some other distributions is lower + than with the Anderson-Darling test. + + could be vectorized + + ''' + + x = np.asarray(x) + z = (x-x.mean())/x.std(ddof=1) + nobs = len(z) + + d_ks = ksstat(z, stats.norm.cdf, alternative='two_sided') + + if pvalmethod == 'approx': + pval = pval_lf(d_ks, nobs) + elif pvalmethod == 'table': + #pval = pval_lftable(d_ks, nobs) + pval = lilliefors_table.prob(d_ks, nobs) + + return d_ks, pval + + +lilliefors = kstest_normal + +lillifors = np.deprecate(lilliefors, 'lillifors', 'lilliefors', + "Use lilliefors, lillifors will be " + "removed in 0.9 \n(Note: misspelling missing 'e')") + + +#old version: +#------------ + +tble = '''\ +00 20 15 10 05 01 .1 +4 .303 .321 .346 .376 .413 .433 +5 .289 .303 .319 .343 .397 .439 +6 .269 .281 .297 .323 .371 .424 +7 .252 .264 .280 .304 .351 .402 +8 .239 .250 .265 .288 .333 .384 +9 .227 .238 .252 .274 .317 .365 +10 .217 .228 .241 .262 .304 .352 +11 .208 .218 .231 .251 .291 .338 +12 .200 .210 .222 .242 .281 .325 +13 .193 .202 .215 .234 .271 .314 +14 .187 .196 .208 .226 .262 .305 +15 .181 .190 .201 .219 .254 .296 +16 .176 .184 .195 .213 .247 .287 +17 .171 .179 .190 .207 .240 .279 +18 .167 .175 .185 .202 .234 .273 +19 .163 .170 .181 .197 .228 .266 +20 .159 .166 .176 .192 .223 .260 +25 .143 .150 .159 .173 .201 .236 +30 .131 .138 .146 .159 .185 .217 +40 .115 .120 .128 .139 .162 .189 +100 .074 .077 .082 .089 .104 .122 +400 .037 .039 .041 .045 .052 .061 +900 .025 .026 .028 .030 .035 .042''' + +''' +parr = np.array([line.split() for line in tble.split('\n')],float) +size = parr[1:,0] +alpha = parr[0,1:] / 100. +crit = parr[1:, 1:] + +alpha = np.array([ 0.2 , 0.15 , 0.1 , 0.05 , 0.01 , 0.001]) +size = np.array([ 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 25, 30, 40, 100, 400, 900], float) + +#critical values, rows are by sample size, columns are by alpha +crit_lf = np.array( [[303, 321, 346, 376, 413, 433], + [289, 303, 319, 343, 397, 439], + [269, 281, 297, 323, 371, 424], + [252, 264, 280, 304, 351, 402], + [239, 250, 265, 288, 333, 384], + [227, 238, 252, 274, 317, 365], + [217, 228, 241, 262, 304, 352], + [208, 218, 231, 251, 291, 338], + [200, 210, 222, 242, 281, 325], + [193, 202, 215, 234, 271, 314], + [187, 196, 208, 226, 262, 305], + [181, 190, 201, 219, 254, 296], + [176, 184, 195, 213, 247, 287], + [171, 179, 190, 207, 240, 279], + [167, 175, 185, 202, 234, 273], + [163, 170, 181, 197, 228, 266], + [159, 166, 176, 192, 223, 260], + [143, 150, 159, 173, 201, 236], + [131, 138, 146, 159, 185, 217], + [115, 120, 128, 139, 162, 189], + [ 74, 77, 82, 89, 104, 122], + [ 37, 39, 41, 45, 52, 61], + [ 25, 26, 28, 30, 35, 42]]) / 1000. + +#original Lilliefors paper +crit_greater30 = lambda n: np.array([0.736, 0.768, 0.805, 0.886, 1.031])/np.sqrt(n) +alpha_greater30 = np.array([ 0.2 , 0.15 , 0.1 , 0.05 , 0.01 , 0.001]) + + +n_alpha = 6 +polyn = [interp1d(size, crit[:,i]) for i in range(n_alpha)] + +def critpolys(n): + return np.array([p(n) for p in polyn]) + +def pval_lftable(x, n): + #returns extrem probabilities, 0.001 and 0.2, for out of range + critvals = critpolys(n) + if x < critvals[0]: + return alpha[0] + elif x > critvals[-1]: + return alpha[-1] + else: + return interp1d(critvals, alpha)(x) + +for n in [19, 19.5, 20, 21, 25]: + print critpolys(n) + +print pval_lftable(0.166, 20) +print pval_lftable(0.166, 21) + + + +print 'n=25:', '.103 .052 .010' +print [pval_lf(x, 25) for x in [.159, .173, .201, .236]] + +print 'n=10', '.103 .050 .009' +print [pval_lf(x, 10) for x in [.241, .262, .304, .352]] + + +print 'n=400', '.104 .050 .011' +print [pval_lf(x, 400) for x in crit[-2,2:-1]] +print 'n=900', '.093 .054 .011' +print [pval_lf(x, 900) for x in crit[-1,2:-1]] +print [pval_lftable(x, 400) for x in crit[-2,:]] +print [pval_lftable(x, 300) for x in crit[-3,:]] + +xx = np.random.randn(40) +print kstest_normal(xx) + +xx2 = np.array([ 1.138, -0.325, -1.461, -0.441, -0.005, -0.957, -1.52 , 0.481, + 0.713, 0.175, -1.764, -0.209, -0.681, 0.671, 0.204, 0.403, + -0.165, 1.765, 0.127, -1.261, -0.101, 0.527, 1.114, -0.57 , + -1.172, 0.697, 0.146, 0.704, 0.422, 0.63 , 0.661, 0.025, + 0.177, 0.578, 0.945, 0.211, 0.153, 0.279, 0.35 , 0.396]) + +( 1.138, -0.325, -1.461, -0.441, -0.005, -0.957, -1.52 , 0.481, + 0.713, 0.175, -1.764, -0.209, -0.681, 0.671, 0.204, 0.403, + -0.165, 1.765, 0.127, -1.261, -0.101, 0.527, 1.114, -0.57 , + -1.172, 0.697, 0.146, 0.704, 0.422, 0.63 , 0.661, 0.025, + 0.177, 0.578, 0.945, 0.211, 0.153, 0.279, 0.35 , 0.396) +r_lillieTest = [0.15096827429598147, 0.02225473302348436] +print kstest_normal(xx2), np.array(kstest_normal(xx2)) - r_lillieTest +print kstest_normal(xx2, 'table') +''' diff --git a/statsmodels/stats/anova.py b/statsmodels/stats/anova.py new file mode 100644 index 0000000..ef0396b --- /dev/null +++ b/statsmodels/stats/anova.py @@ -0,0 +1,386 @@ +from statsmodels.compat.python import lrange, lmap +import numpy as np +from scipy import stats +from pandas import DataFrame, Index +from statsmodels.formula.formulatools import (_remove_intercept_patsy, + _has_intercept, _intercept_idx) + +def _get_covariance(model, robust): + if robust is None: + return model.cov_params() + elif robust == "hc0": + se = model.HC0_se + return model.cov_HC0 + elif robust == "hc1": + se = model.HC1_se + return model.cov_HC1 + elif robust == "hc2": + se = model.HC2_se + return model.cov_HC2 + elif robust == "hc3": + se = model.HC3_se + return model.cov_HC3 + else: # pragma: no cover + raise ValueError("robust options %s not understood" % robust) + +#NOTE: these need to take into account weights ! + +def anova_single(model, **kwargs): + """ + ANOVA table for one fitted linear model. + + Parameters + ---------- + model : fitted linear model results instance + A fitted linear model + typ : int or str {1,2,3} or {"I","II","III"} + Type of sum of squares to use. + + **kwargs** + + scale : float + Estimate of variance, If None, will be estimated from the largest + model. Default is None. + test : str {"F", "Chisq", "Cp"} or None + Test statistics to provide. Default is "F". + + Notes + ----- + Use of this function is discouraged. Use anova_lm instead. + """ + test = kwargs.get("test", "F") + scale = kwargs.get("scale", None) + typ = kwargs.get("typ", 1) + robust = kwargs.get("robust", None) + if robust: + robust = robust.lower() + + endog = model.model.endog + exog = model.model.exog + nobs = exog.shape[0] + + response_name = model.model.endog_names + design_info = model.model.data.design_info + exog_names = model.model.exog_names + # +1 for resids + n_rows = (len(design_info.terms) - _has_intercept(design_info) + 1) + + pr_test = "PR(>%s)" % test + names = ['df', 'sum_sq', 'mean_sq', test, pr_test] + + table = DataFrame(np.zeros((n_rows, 5)), columns = names) + + if typ in [1,"I"]: + return anova1_lm_single(model, endog, exog, nobs, design_info, table, + n_rows, test, pr_test, robust) + elif typ in [2, "II"]: + return anova2_lm_single(model, design_info, n_rows, test, pr_test, + robust) + elif typ in [3, "III"]: + return anova3_lm_single(model, design_info, n_rows, test, pr_test, + robust) + elif typ in [4, "IV"]: + raise NotImplemented("Type IV not yet implemented") + else: # pragma: no cover + raise ValueError("Type %s not understood" % str(typ)) + +def anova1_lm_single(model, endog, exog, nobs, design_info, table, n_rows, test, + pr_test, robust): + """ + ANOVA table for one fitted linear model. + + Parameters + ---------- + model : fitted linear model results instance + A fitted linear model + + **kwargs** + + scale : float + Estimate of variance, If None, will be estimated from the largest + model. Default is None. + test : str {"F", "Chisq", "Cp"} or None + Test statistics to provide. Default is "F". + + Notes + ----- + Use of this function is discouraged. Use anova_lm instead. + """ + #maybe we should rethink using pinv > qr in OLS/linear models? + effects = getattr(model, 'effects', None) + if effects is None: + q,r = np.linalg.qr(exog) + effects = np.dot(q.T, endog) + + arr = np.zeros((len(design_info.terms), len(design_info.column_names))) + slices = [design_info.slice(name) for name in design_info.term_names] + for i,slice_ in enumerate(slices): + arr[i, slice_] = 1 + + sum_sq = np.dot(arr, effects**2) + #NOTE: assumes intercept is first column + idx = _intercept_idx(design_info) + sum_sq = sum_sq[~idx] + term_names = np.array(design_info.term_names) # want boolean indexing + term_names = term_names[~idx] + + index = term_names.tolist() + table.index = Index(index + ['Residual']) + table.ix[index, ['df', 'sum_sq']] = np.c_[arr[~idx].sum(1), sum_sq] + if test == 'F': + table.ix[:n_rows, test] = ((table['sum_sq']/table['df'])/ + (model.ssr/model.df_resid)) + table.ix[:n_rows, pr_test] = stats.f.sf(table["F"], table["df"], + model.df_resid) + + # fill in residual + table.ix['Residual', ['sum_sq','df', test, pr_test]] = (model.ssr, + model.df_resid, + np.nan, np.nan) + table['mean_sq'] = table['sum_sq'] / table['df'] + return table + +#NOTE: the below is not agnostic about formula... +def anova2_lm_single(model, design_info, n_rows, test, pr_test, robust): + """ + ANOVA type II table for one fitted linear model. + + Parameters + ---------- + model : fitted linear model results instance + A fitted linear model + + **kwargs** + + scale : float + Estimate of variance, If None, will be estimated from the largest + model. Default is None. + test : str {"F", "Chisq", "Cp"} or None + Test statistics to provide. Default is "F". + + Notes + ----- + Use of this function is discouraged. Use anova_lm instead. + + Type II + Sum of Squares compares marginal contribution of terms. Thus, it is + not particularly useful for models with significant interaction terms. + """ + terms_info = design_info.terms[:] # copy + terms_info = _remove_intercept_patsy(terms_info) + + names = ['sum_sq', 'df', test, pr_test] + + table = DataFrame(np.zeros((n_rows, 4)), columns = names) + cov = _get_covariance(model, None) + robust_cov = _get_covariance(model, robust) + col_order = [] + index = [] + for i, term in enumerate(terms_info): + # grab all varaibles except interaction effects that contain term + # need two hypotheses matrices L1 is most restrictive, ie., term==0 + # L2 is everything except term==0 + cols = design_info.slice(term) + L1 = lrange(cols.start, cols.stop) + L2 = [] + term_set = set(term.factors) + for t in terms_info: # for the term you have + other_set = set(t.factors) + if term_set.issubset(other_set) and not term_set == other_set: + col = design_info.slice(t) + # on a higher order term containing current `term` + L1.extend(lrange(col.start, col.stop)) + L2.extend(lrange(col.start, col.stop)) + + L1 = np.eye(model.model.exog.shape[1])[L1] + L2 = np.eye(model.model.exog.shape[1])[L2] + + if L2.size: + LVL = np.dot(np.dot(L1,robust_cov),L2.T) + from scipy import linalg + orth_compl,_ = linalg.qr(LVL) + r = L1.shape[0] - L2.shape[0] + # L1|2 + # use the non-unique orthogonal completion since L12 is rank r + L12 = np.dot(orth_compl[:,-r:].T, L1) + else: + L12 = L1 + r = L1.shape[0] + #from IPython.core.debugger import Pdb; Pdb().set_trace() + if test == 'F': + f = model.f_test(L12, cov_p=robust_cov) + table.ix[i, test] = test_value = f.fvalue + table.ix[i, pr_test] = f.pvalue + + # need to back out SSR from f_test + table.ix[i, 'df'] = r + col_order.append(cols.start) + index.append(term.name()) + + table.index = Index(index + ['Residual']) + table = table.ix[np.argsort(col_order + [model.model.exog.shape[1]+1])] + # back out sum of squares from f_test + ssr = table[test] * table['df'] * model.ssr/model.df_resid + table['sum_sq'] = ssr + # fill in residual + table.ix['Residual', ['sum_sq','df', test, pr_test]] = (model.ssr, + model.df_resid, + np.nan, np.nan) + + return table + +def anova3_lm_single(model, design_info, n_rows, test, pr_test, robust): + n_rows += _has_intercept(design_info) + terms_info = design_info.terms + + names = ['sum_sq', 'df', test, pr_test] + + table = DataFrame(np.zeros((n_rows, 4)), columns = names) + cov = _get_covariance(model, robust) + col_order = [] + index = [] + for i, term in enumerate(terms_info): + # grab term, hypothesis is that term == 0 + cols = design_info.slice(term) + L1 = np.eye(model.model.exog.shape[1])[cols] + L12 = L1 + r = L1.shape[0] + + if test == 'F': + f = model.f_test(L12, cov_p=cov) + table.ix[i, test] = test_value = f.fvalue + table.ix[i, pr_test] = f.pvalue + + # need to back out SSR from f_test + table.ix[i, 'df'] = r + #col_order.append(cols.start) + index.append(term.name()) + + table.index = Index(index + ['Residual']) + #NOTE: Don't need to sort because terms are an ordered dict now + #table = table.ix[np.argsort(col_order + [model.model.exog.shape[1]+1])] + # back out sum of squares from f_test + ssr = table[test] * table['df'] * model.ssr/model.df_resid + table['sum_sq'] = ssr + # fill in residual + table.ix['Residual', ['sum_sq','df', test, pr_test]] = (model.ssr, + model.df_resid, + np.nan, np.nan) + return table + +def anova_lm(*args, **kwargs): + """ + ANOVA table for one or more fitted linear models. + + Parameters + ---------- + args : fitted linear model results instance + One or more fitted linear models + scale : float + Estimate of variance, If None, will be estimated from the largest + model. Default is None. + test : str {"F", "Chisq", "Cp"} or None + Test statistics to provide. Default is "F". + typ : str or int {"I","II","III"} or {1,2,3} + The type of ANOVA test to perform. See notes. + robust : {None, "hc0", "hc1", "hc2", "hc3"} + Use heteroscedasticity-corrected coefficient covariance matrix. + If robust covariance is desired, it is recommended to use `hc3`. + + Returns + ------- + anova : DataFrame + A DataFrame containing. + + Notes + ----- + Model statistics are given in the order of args. Models must have + been fit using the formula api. + + See Also + -------- + model_results.compare_f_test, model_results.compare_lm_test + + Examples + -------- + >>> import statsmodels.api as sm + >>> from statsmodels.formula.api import ols + >>> moore = sm.datasets.get_rdataset("Moore", "car", cache=True) # load + >>> data = moore.data + >>> data = data.rename(columns={"partner.status" : + ... "partner_status"}) # make name pythonic + >>> moore_lm = ols('conformity ~ C(fcategory, Sum)*C(partner_status, Sum)', + ... data=data).fit() + >>> table = sm.stats.anova_lm(moore_lm, typ=2) # Type 2 ANOVA DataFrame + >>> print(table) + """ + typ = kwargs.get('typ', 1) + + ### Farm Out Single model ANOVA Type I, II, III, and IV ### + + if len(args) == 1: + model = args[0] + return anova_single(model, **kwargs) + + try: + assert typ in [1,"I"] + except: + raise ValueError("Multiple models only supported for type I. " + "Got type %s" % str(typ)) + + ### COMPUTE ANOVA TYPE I ### + + # if given a single model + if len(args) == 1: + return anova_single(*args, **kwargs) + + # received multiple fitted models + + test = kwargs.get("test", "F") + scale = kwargs.get("scale", None) + n_models = len(args) + + model_formula = [] + pr_test = "Pr(>%s)" % test + names = ['df_resid', 'ssr', 'df_diff', 'ss_diff', test, pr_test] + table = DataFrame(np.zeros((n_models, 6)), columns = names) + + if not scale: # assume biggest model is last + scale = args[-1].scale + + table["ssr"] = lmap(getattr, args, ["ssr"]*n_models) + table["df_resid"] = lmap(getattr, args, ["df_resid"]*n_models) + table.ix[1:, "df_diff"] = -np.diff(table["df_resid"].values) + table["ss_diff"] = -table["ssr"].diff() + if test == "F": + table["F"] = table["ss_diff"] / table["df_diff"] / scale + table[pr_test] = stats.f.sf(table["F"], table["df_diff"], + table["df_resid"]) + # for earlier scipy - stats.f.sf(np.nan, 10, 2) -> 0 not nan + table[pr_test][table['F'].isnull()] = np.nan + + return table + + +if __name__ == "__main__": + import pandas + from statsmodels.formula.api import ols + # in R + #library(car) + #write.csv(Moore, "moore.csv", row.names=FALSE) + moore = pandas.read_table('moore.csv', delimiter=",", skiprows=1, + names=['partner_status','conformity', + 'fcategory','fscore']) + moore_lm = ols('conformity ~ C(fcategory, Sum)*C(partner_status, Sum)', + data=moore).fit() + + mooreB = ols('conformity ~ C(partner_status, Sum)', data=moore).fit() + + # for each term you just want to test vs the model without its + # higher-order terms + + # using Monette-Fox slides and Marden class notes for linear algebra / + # orthogonal complement + # https://netfiles.uiuc.edu/jimarden/www/Classes/STAT324/ + + table = anova_lm(moore_lm, typ=2) diff --git a/statsmodels/stats/api.py b/statsmodels/stats/api.py new file mode 100644 index 0000000..41060ea --- /dev/null +++ b/statsmodels/stats/api.py @@ -0,0 +1,61 @@ +# pylint: disable=W0611 +from . import diagnostic +from .diagnostic import ( + acorr_ljungbox, acorr_breusch_godfrey, + CompareCox, compare_cox, CompareJ, compare_j, + HetGoldfeldQuandt, het_goldfeldquandt, + het_breuschpagan, het_white, het_arch, + linear_harvey_collier, linear_rainbow, linear_lm, + breaks_cusumolsresid, breaks_hansen, recursive_olsresiduals, + unitroot_adf, + normal_ad, lilliefors, + # deprecated because of misspelling: + lillifors, het_breushpagan, acorr_breush_godfrey + ) + +from . import multicomp +from .multitest import (multipletests, fdrcorrection, fdrcorrection_twostage) +from .multicomp import tukeyhsd +from . import gof +from .gof import (powerdiscrepancy, gof_chisquare_discrete, + chisquare_effectsize) +from . import stattools +from .stattools import durbin_watson, omni_normtest, jarque_bera + +from . import sandwich_covariance +from .sandwich_covariance import ( + cov_cluster, cov_cluster_2groups, cov_nw_panel, + cov_hac, cov_white_simple, + cov_hc0, cov_hc1, cov_hc2, cov_hc3, + se_cov + ) + +from .weightstats import (DescrStatsW, CompareMeans, ttest_ind, ttost_ind, + ttost_paired, ztest, ztost, zconfint) + +from .proportion import (binom_test_reject_interval, binom_test, + binom_tost, binom_tost_reject_interval, + power_binom_tost, power_ztost_prop, + proportion_confint, proportion_effectsize, + proportions_chisquare, proportions_chisquare_allpairs, + proportions_chisquare_pairscontrol, proportions_ztest, + proportions_ztost) + +from .power import (TTestPower, TTestIndPower, GofChisquarePower, + NormalIndPower, FTestAnovaPower, FTestPower, + tt_solve_power, tt_ind_solve_power, zt_ind_solve_power) + +from .descriptivestats import Describe + +from .anova import anova_lm + +from . import moment_helpers +from .correlation_tools import corr_nearest, corr_clipped, cov_nearest + +from statsmodels.sandbox.stats.runs import (Runs, runstest_1samp, runstest_2samp) + +from statsmodels.stats.contingency_tables import (mcnemar, cochrans_q, + SquareTable, + Table2x2, + Table, + StratifiedTable) diff --git a/statsmodels/stats/base.py b/statsmodels/stats/base.py new file mode 100644 index 0000000..c6d2f3f --- /dev/null +++ b/statsmodels/stats/base.py @@ -0,0 +1,102 @@ +# -*- coding: utf-8 -*- +"""Base classes for statistical test results + +Created on Mon Apr 22 14:03:21 2013 + +Author: Josef Perktold +""" +from statsmodels.compat.python import lzip, zip +import numpy as np + +class AllPairsResults(object): + '''Results class for pairwise comparisons, based on p-values + + Parameters + ---------- + pvals_raw : array_like, 1-D + p-values from a pairwise comparison test + all_pairs : list of tuples + list of indices, one pair for each comparison + multitest_method : string + method that is used by default for p-value correction. This is used + as default by the methods like if the multiple-testing method is not + specified as argument. + levels : None or list of strings + optional names of the levels or groups + n_levels : None or int + If None, then the number of levels or groups is inferred from the + other arguments. It can be explicitly specified, if the inferred + number is incorrect. + + Notes + ----- + This class can also be used for other pairwise comparisons, for example + comparing several treatments to a control (as in Dunnet's test). + + ''' + + + def __init__(self, pvals_raw, all_pairs, multitest_method='hs', + levels=None, n_levels=None): + self.pvals_raw = pvals_raw + self.all_pairs = all_pairs + if n_levels is None: + # for all_pairs nobs*(nobs-1)/2 + #self.n_levels = (1. + np.sqrt(1 + 8 * len(all_pairs))) * 0.5 + self.n_levels = np.max(all_pairs) + 1 + else: + self.n_levels = n_levels + + self.multitest_method = multitest_method + self.levels = levels + if levels is None: + self.all_pairs_names = ['%r' % (pairs,) for pairs in all_pairs] + else: + self.all_pairs_names = ['%s-%s' % (levels[pairs[0]], + levels[pairs[1]]) + for pairs in all_pairs] + + def pval_corrected(self, method=None): + '''p-values corrected for multiple testing problem + + This uses the default p-value correction of the instance stored in + ``self.multitest_method`` if method is None. + + ''' + import statsmodels.stats.multitest as smt + if method is None: + method = self.multitest_method + #TODO: breaks with method=None + return smt.multipletests(self.pvals_raw, method=method)[1] + + def __str__(self): + return self.summary() + + def pval_table(self): + '''create a (n_levels, n_levels) array with corrected p_values + + this needs to improve, similar to R pairwise output + ''' + k = self.n_levels + pvals_mat = np.zeros((k, k)) + # if we don't assume we have all pairs + pvals_mat[lzip(*self.all_pairs)] = self.pval_corrected() + #pvals_mat[np.triu_indices(k, 1)] = self.pval_corrected() + return pvals_mat + + def summary(self): + '''returns text summarizing the results + + uses the default pvalue correction of the instance stored in + ``self.multitest_method`` + ''' + import statsmodels.stats.multitest as smt + maxlevel = max((len(ss) for ss in self.all_pairs_names)) + + text = 'Corrected p-values using %s p-value correction\n\n' % \ + smt.multitest_methods_names[self.multitest_method] + text += 'Pairs' + (' ' * (maxlevel - 5 + 1)) + 'p-values\n' + text += '\n'.join(('%s %6.4g' % (pairs, pv) for (pairs, pv) in + zip(self.all_pairs_names, self.pval_corrected()))) + return text + diff --git a/statsmodels/stats/contingency_tables.py b/statsmodels/stats/contingency_tables.py new file mode 100644 index 0000000..e0de024 --- /dev/null +++ b/statsmodels/stats/contingency_tables.py @@ -0,0 +1,1404 @@ +""" +Methods for analyzing two-way contingency tables (i.e. frequency +tables for observations that are cross-classified with respect to two +categorical variables). + +The main classes are: + + * Table : implements methods that can be applied to any two-way + contingency table. + + * SquareTable : implements methods that can be applied to a square + two-way contingency table. + + * Table2x2 : implements methods that can be applied to a 2x2 + contingency table. + + * StratifiedTable : implements methods that can be applied to a + collection of contingency tables. + +Also contains functions for conducting Mcnemar's test and Cochran's q +test. + +Note that the inference procedures may depend on how the data were +sampled. In general the observed units are independent and +identically distributed. +""" + +from __future__ import division +from statsmodels.tools.decorators import cache_readonly, resettable_cache +import numpy as np +from scipy import stats +import pandas as pd +from statsmodels import iolib +from statsmodels.tools.sm_exceptions import SingularMatrixWarning + + + +def _make_df_square(table): + """ + Reindex a pandas DataFrame so that it becomes square, meaning that + the row and column indices contain the same values, in the same + order. The row and column index are extended to achieve this. + """ + + if not isinstance(table, pd.DataFrame): + return table + + # If the table is not square, make it square + if table.shape[0] != table.shape[1]: + ix = list(set(table.index) | set(table.columns)) + table = table.reindex(ix, axis=0) + table = table.reindex(ix, axis=1) + + # Ensures that the rows and columns are in the same order. + table = table.reindex(table.columns) + + return table + + +class _Bunch(object): + + def __repr__(self): + return "" + + +class Table(object): + """ + Analyses that can be performed on a two-way contingency table. + + Parameters + ---------- + table : array-like + A contingency table. + shift_zeros : boolean + If True and any cell count is zero, add 0.5 to all values + in the table. + + Attributes + ---------- + table_orig : array-like + The original table is cached as `table_orig`. + marginal_probabilities : tuple of two ndarrays + The estimated row and column marginal distributions. + independence_probabilities : ndarray + Estimated cell probabilities under row/column independence. + fittedvalues : ndarray + Fitted values under independence. + resid_pearson : ndarray + The Pearson residuals under row/column independence. + standardized_resids : ndarray + Residuals for the independent row/column model with approximate + unit variance. + chi2_contribs : ndarray + The contribution of each cell to the chi^2 statistic. + local_logodds_ratios : ndarray + The local log odds ratios are calculated for each 2x2 subtable + formed from adjacent rows and columns. + local_oddsratios : ndarray + The local odds ratios are calculated from each 2x2 subtable + formed from adjacent rows and columns. + cumulative_log_oddsratios : ndarray + The cumulative log odds ratio at a given pair of thresholds is + calculated by reducing the table to a 2x2 table based on + dichotomizing the rows and columns at the given thresholds. + The table of cumulative log odds ratios presents all possible + cumulative log odds ratios that can be formed from a given + table. + cumulative_oddsratios : ndarray + The cumulative odds ratios are calculated by reducing the + table to a 2x2 table based on cutting the rows and columns at + a given point. The table of cumulative odds ratios presents + all possible cumulative odds ratios that can be formed from a + given table. + + See also + -------- + statsmodels.graphics.mosaicplot.mosaic + scipy.stats.chi2_contingency + + Notes + ----- + The inference procedures used here are all based on a sampling + model in which the units are independent and identically + distributed, with each unit being classified with respect to two + categorical variables. + + References + ---------- + Definitions of residuals: + https://onlinecourses.science.psu.edu/stat504/node/86 + """ + + def __init__(self, table, shift_zeros=True): + + self.table_orig = table + self.table = np.asarray(table, dtype=np.float64) + + if shift_zeros and (self.table.min() == 0): + self.table = self.table + 0.5 + + + @classmethod + def from_data(cls, data, shift_zeros=True): + """ + Construct a Table object from data. + + Parameters + ---------- + data : array-like + The raw data, from which a contingency table is constructed + using the first two columns. + shift_zeros : boolean + If True and any cell count is zero, add 0.5 to all values + in the table. + + Returns + ------- + A Table instance. + """ + + if isinstance(data, pd.DataFrame): + table = pd.crosstab(data.iloc[:, 0], data.iloc[:, 1]) + else: + table = pd.crosstab(data[:, 0], data[:, 1]) + + return cls(table, shift_zeros) + + + def test_nominal_association(self): + """ + Assess independence for nominal factors. + + Assessment of independence between rows and columns using + chi^2 testing. The rows and columns are treated as nominal + (unordered) categorical variables. + + Returns + ------- + A bunch containing the following attributes: + + statistic : float + The chi^2 test statistic. + df : integer + The degrees of freedom of the reference distribution + pvalue : float + The p-value for the test. + """ + + statistic = np.asarray(self.chi2_contribs).sum() + df = np.prod(np.asarray(self.table.shape) - 1) + pvalue = 1 - stats.chi2.cdf(statistic, df) + b = _Bunch() + b.statistic = statistic + b.df = df + b.pvalue = pvalue + return b + + + def test_ordinal_association(self, row_scores=None, col_scores=None): + """ + Assess independence between two ordinal variables. + + This is the 'linear by linear' association test, which uses + weights or scores to target the test to have more power + against ordered alternatives. + + Parameters + ---------- + row_scores : array-like + An array of numeric row scores + col_scores : array-like + An array of numeric column scores + + Returns + ------- + A bunch with the following attributes: + + statistic : float + The test statistic. + null_mean : float + The expected value of the test statistic under the null + hypothesis. + null_sd : float + The standard deviation of the test statistic under the + null hypothesis. + zscore : float + The Z-score for the test statistic. + pvalue : float + The p-value for the test. + + Notes + ----- + The scores define the trend to which the test is most sensitive. + + Using the default row and column scores gives the + Cochran-Armitage trend test. + """ + + if row_scores is None: + row_scores = np.arange(self.table.shape[0]) + + if col_scores is None: + col_scores = np.arange(self.table.shape[1]) + + if len(row_scores) != self.table.shape[0]: + raise ValueError("The length of `row_scores` must match the first dimension of `table`.") + + if len(col_scores) != self.table.shape[1]: + raise ValueError("The length of `col_scores` must match the second dimension of `table`.") + + # The test statistic + statistic = np.dot(row_scores, np.dot(self.table, col_scores)) + + # Some needed quantities + n_obs = self.table.sum() + rtot = self.table.sum(1) + um = np.dot(row_scores, rtot) + u2m = np.dot(row_scores**2, rtot) + ctot = self.table.sum(0) + vn = np.dot(col_scores, ctot) + v2n = np.dot(col_scores**2, ctot) + + # The null mean and variance of the test statistic + e_stat = um * vn / n_obs + v_stat = (u2m - um**2 / n_obs) * (v2n - vn**2 / n_obs) / (n_obs - 1) + sd_stat = np.sqrt(v_stat) + + zscore = (statistic - e_stat) / sd_stat + pvalue = 2 * stats.norm.cdf(-np.abs(zscore)) + + b = _Bunch() + b.statistic = statistic + b.null_mean = e_stat + b.null_sd = sd_stat + b.zscore = zscore + b.pvalue = pvalue + return b + + + @cache_readonly + def marginal_probabilities(self): + # docstring for cached attributes in init above + + n = self.table.sum() + row = self.table.sum(1) / n + col = self.table.sum(0) / n + + if isinstance(self.table_orig, pd.DataFrame): + row = pd.Series(row, self.table_orig.index) + col = pd.Series(col, self.table_orig.columns) + + return row, col + + + @cache_readonly + def independence_probabilities(self): + # docstring for cached attributes in init above + + row, col = self.marginal_probabilities + itab = np.outer(row, col) + + if isinstance(self.table_orig, pd.DataFrame): + itab = pd.DataFrame(itab, self.table_orig.index, + self.table_orig.columns) + + return itab + + + @cache_readonly + def fittedvalues(self): + # docstring for cached attributes in init above + + probs = self.independence_probabilities + fit = self.table.sum() * probs + return fit + + + @cache_readonly + def resid_pearson(self): + # docstring for cached attributes in init above + + fit = self.fittedvalues + resids = (self.table - fit) / np.sqrt(fit) + return resids + + + @cache_readonly + def standardized_resids(self): + # docstring for cached attributes in init above + + row, col = self.marginal_probabilities + sresids = self.resid_pearson / np.sqrt(np.outer(1 - row, 1 - col)) + return sresids + + + @cache_readonly + def chi2_contribs(self): + # docstring for cached attributes in init above + + return self.resid_pearson**2 + + + @cache_readonly + def local_log_oddsratios(self): + # docstring for cached attributes in init above + + ta = self.table.copy() + a = ta[0:-1, 0:-1] + b = ta[0:-1, 1:] + c = ta[1:, 0:-1] + d = ta[1:, 1:] + tab = np.log(a) + np.log(d) - np.log(b) - np.log(c) + rslt = np.empty(self.table.shape, np.float64) + rslt *= np.nan + rslt[0:-1, 0:-1] = tab + + if isinstance(self.table_orig, pd.DataFrame): + rslt = pd.DataFrame(rslt, index=self.table_orig.index, + columns=self.table_orig.columns) + + return rslt + + + @cache_readonly + def local_oddsratios(self): + # docstring for cached attributes in init above + + return np.exp(self.local_log_oddsratios) + + + @cache_readonly + def cumulative_log_oddsratios(self): + # docstring for cached attributes in init above + + ta = self.table.cumsum(0).cumsum(1) + + a = ta[0:-1, 0:-1] + b = ta[0:-1, -1:] - a + c = ta[-1:, 0:-1] - a + d = ta[-1, -1] - (a + b + c) + + tab = np.log(a) + np.log(d) - np.log(b) - np.log(c) + rslt = np.empty(self.table.shape, np.float64) + rslt *= np.nan + rslt[0:-1, 0:-1] = tab + + if isinstance(self.table_orig, pd.DataFrame): + rslt = pd.DataFrame(rslt, index=self.table_orig.index, + columns=self.table_orig.columns) + + return rslt + + + @cache_readonly + def cumulative_oddsratios(self): + # docstring for cached attributes in init above + + return np.exp(self.cumulative_log_oddsratios) + + + +class SquareTable(Table): + """ + Methods for analyzing a square contingency table. + + Parameters + ---------- + table : array-like + A square contingency table, or DataFrame that is converted + to a square form. + shift_zeros : boolean + If True and any cell count is zero, add 0.5 to all values + in the table. + + These methods should only be used when the rows and columns of the + table have the same categories. If `table` is provided as a + Pandas DataFrame, the row and column indices will be extended to + create a square table. Otherwise the table should be provided in + a square form, with the (implicit) row and column categories + appearing in the same order. + """ + + def __init__(self, table, shift_zeros=True): + table = _make_df_square(table) # Non-pandas passes through + k1, k2 = table.shape + if k1 != k2: + raise ValueError('table must be square') + + super(SquareTable, self).__init__(table, shift_zeros) + + + def symmetry(self, method="bowker"): + """ + Test for symmetry of a joint distribution. + + This procedure tests the null hypothesis that the joint + distribution is symmetric around the main diagonal, that is + + .. math:: + + p_{i, j} = p_{j, i} for all i, j + + Returns + ------- + A bunch with attributes: + + statistic : float + chisquare test statistic + p-value : float + p-value of the test statistic based on chisquare distribution + df : int + degrees of freedom of the chisquare distribution + + Notes + ----- + The implementation is based on the SAS documentation. R includes + it in `mcnemar.test` if the table is not 2 by 2. However a more + direct generalization of the McNemar test to larger tables is + provided by the homogeneity test (TableSymmetry.homogeneity). + + The p-value is based on the chi-square distribution which requires + that the sample size is not very small to be a good approximation + of the true distribution. For 2x2 contingency tables the exact + distribution can be obtained with `mcnemar` + + See Also + -------- + mcnemar + homogeneity + """ + + if method.lower() != "bowker": + raise ValueError("method for symmetry testing must be 'bowker'") + + k = self.table.shape[0] + upp_idx = np.triu_indices(k, 1) + + tril = self.table.T[upp_idx] # lower triangle in column order + triu = self.table[upp_idx] # upper triangle in row order + + statistic = ((tril - triu)**2 / (tril + triu + 1e-20)).sum() + df = k * (k-1) / 2. + pvalue = stats.chi2.sf(statistic, df) + + b = _Bunch() + b.statistic = statistic + b.pvalue = pvalue + b.df = df + + return b + + + def homogeneity(self, method="stuart_maxwell"): + """ + Compare row and column marginal distributions. + + Parameters + ---------- + method : string + Either 'stuart_maxwell' or 'bhapkar', leading to two different + estimates of the covariance matrix for the estimated + difference between the row margins and the column margins. + + Returns a bunch with attributes: + + statistic : float + The chi^2 test statistic + pvalue : float + The p-value of the test statistic + df : integer + The degrees of freedom of the reference distribution + + Notes + ----- + For a 2x2 table this is equivalent to McNemar's test. More + generally the procedure tests the null hypothesis that the + marginal distribution of the row factor is equal to the + marginal distribution of the column factor. For this to be + meaningful, the two factors must have the same sample space + (i.e. the same categories). + """ + + if self.table.shape[0] < 1: + raise ValueError('table is empty') + elif self.table.shape[0] == 1: + b = _Bunch() + b.statistic = 0 + b.pvalue = 1 + b.df = 0 + return b + + method = method.lower() + if method not in ["bhapkar", "stuart_maxwell"]: + raise ValueError("method '%s' for homogeneity not known" % method) + + n_obs = self.table.sum() + pr = self.table.astype(np.float64) / n_obs + + # Compute margins, eliminate last row/column so there is no + # degeneracy + row = pr.sum(1)[0:-1] + col = pr.sum(0)[0:-1] + pr = pr[0:-1, 0:-1] + + # The estimated difference between row and column margins. + d = col - row + + # The degrees of freedom of the chi^2 reference distribution. + df = pr.shape[0] + + if method == "bhapkar": + vmat = -(pr + pr.T) - np.outer(d, d) + dv = col + row - 2*np.diag(pr) - d**2 + np.fill_diagonal(vmat, dv) + elif method == "stuart_maxwell": + vmat = -(pr + pr.T) + dv = row + col - 2*np.diag(pr) + np.fill_diagonal(vmat, dv) + + try: + statistic = n_obs * np.dot(d, np.linalg.solve(vmat, d)) + except np.linalg.LinAlgError: + import warnings + warnings.warn("Unable to invert covariance matrix", + SingularMatrixWarning) + b = _Bunch() + b.statistic = np.nan + b.pvalue = np.nan + b.df = df + return b + + pvalue = 1 - stats.chi2.cdf(statistic, df) + + b = _Bunch() + b.statistic = statistic + b.pvalue = pvalue + b.df = df + + return b + + + def summary(self, alpha=0.05, float_format="%.3f"): + """ + Produce a summary of the analysis. + + Parameters + ---------- + alpha : float + `1 - alpha` is the nominal coverage probability of the interval. + float_format : string + Used to format numeric values in the table. + method : string + The method for producing the confidence interval. Currently + must be 'normal' which uses the normal approximation. + """ + + fmt = float_format + + headers = ["Statistic", "P-value", "DF"] + stubs = ["Symmetry", "Homogeneity"] + sy = self.symmetry() + hm = self.homogeneity() + data = [[fmt % sy.statistic, fmt % sy.pvalue, '%d' % sy.df], + [fmt % hm.statistic, fmt % hm.pvalue, '%d' % hm.df]] + tab = iolib.SimpleTable(data, headers, stubs, data_aligns="r", + table_dec_above='') + + return tab + + + +class Table2x2(SquareTable): + """ + Analyses that can be performed on a 2x2 contingency table. + + Parameters + ---------- + table : array-like + A 2x2 contingency table + shift_zeros : boolean + If true, 0.5 is added to all cells of the table if any cell is + equal to zero. + + Attributes + ---------- + log_oddsratio : float + The log odds ratio of the table. + log_oddsratio_se : float + The asymptotic standard error of the estimated log odds ratio. + oddsratio : float + The odds ratio of the table. + riskratio : float + The ratio between the risk in the first row and the risk in + the second row. Column 0 is interpreted as containing the + number of occurences of the event of interest. + log_riskratio : float + The estimated log risk ratio for the table. + log_riskratio_se : float + The standard error of the estimated log risk ratio for the + table. + + Notes + ----- + The inference procedures used here are all based on a sampling + model in which the units are independent and identically + distributed, with each unit being classified with respect to two + categorical variables. + + Note that for the risk ratio, the analysis is not symmetric with + respect to the rows and columns of the contingency table. The two + rows define population subgroups, column 0 is the number of + 'events', and column 1 is the number of 'non-events'. + """ + + def __init__(self, table, shift_zeros=True): + + if (table.ndim != 2) or (table.shape[0] != 2) or (table.shape[1] != 2): + raise ValueError("Table2x2 takes a 2x2 table as input.") + + super(Table2x2, self).__init__(table, shift_zeros) + + + @classmethod + def from_data(cls, data, shift_zeros=True): + """ + Construct a Table object from data. + + Parameters + ---------- + data : array-like + The raw data, the first column defines the rows and the + second column defines the columns. + shift_zeros : boolean + If True, and if there are any zeros in the contingency + table, add 0.5 to all four cells of the table. + """ + + if isinstance(data, pd.DataFrame): + table = pd.crosstab(data.iloc[:, 0], data.iloc[:, 1]) + else: + table = pd.crosstab(data[:, 0], data[:, 1]) + return cls(table, shift_zeros) + + + @cache_readonly + def log_oddsratio(self): + # docstring for cached attributes in init above + + f = self.table.flatten() + return np.dot(np.log(f), np.r_[1, -1, -1, 1]) + + + @cache_readonly + def oddsratio(self): + # docstring for cached attributes in init above + + return self.table[0, 0] * self.table[1, 1] / (self.table[0, 1] * self.table[1, 0]) + + + @cache_readonly + def log_oddsratio_se(self): + # docstring for cached attributes in init above + + return np.sqrt(np.sum(1 / self.table)) + + + def oddsratio_pvalue(self, null=1): + """ + P-value for a hypothesis test about the odds ratio. + + Parameters + ---------- + null : float + The null value of the odds ratio. + """ + + return self.log_oddsratio_pvalue(np.log(null)) + + + def log_oddsratio_pvalue(self, null=0): + """ + P-value for a hypothesis test about the log odds ratio. + + Parameters + ---------- + null : float + The null value of the log odds ratio. + """ + + zscore = (self.log_oddsratio - null) / self.log_oddsratio_se + pvalue = 2 * stats.norm.cdf(-np.abs(zscore)) + return pvalue + + + def log_oddsratio_confint(self, alpha=0.05, method="normal"): + """ + A confidence level for the log odds ratio. + + Parameters + ---------- + alpha : float + `1 - alpha` is the nominal coverage probability of the + confidence interval. + method : string + The method for producing the confidence interval. Currently + must be 'normal' which uses the normal approximation. + """ + + f = -stats.norm.ppf(alpha / 2) + lor = self.log_oddsratio + se = self.log_oddsratio_se + lcb = lor - f * se + ucb = lor + f * se + return lcb, ucb + + + def oddsratio_confint(self, alpha=0.05, method="normal"): + """ + A confidence interval for the odds ratio. + + Parameters + ---------- + alpha : float + `1 - alpha` is the nominal coverage probability of the + confidence interval. + method : string + The method for producing the confidence interval. Currently + must be 'normal' which uses the normal approximation. + """ + lcb, ucb = self.log_oddsratio_confint(alpha, method=method) + return np.exp(lcb), np.exp(ucb) + + + @cache_readonly + def riskratio(self): + # docstring for cached attributes in init above + + p = self.table[:, 0] / self.table.sum(1) + return p[0] / p[1] + + + @cache_readonly + def log_riskratio(self): + # docstring for cached attributes in init above + + return np.log(self.riskratio) + + + @cache_readonly + def log_riskratio_se(self): + # docstring for cached attributes in init above + + n = self.table.sum(1) + p = self.table[:, 0] / n + va = np.sum((1 - p) / (n*p)) + return np.sqrt(va) + + + def riskratio_pvalue(self, null=1): + """ + p-value for a hypothesis test about the risk ratio. + + Parameters + ---------- + null : float + The null value of the risk ratio. + """ + + return self.log_riskratio_pvalue(np.log(null)) + + + def log_riskratio_pvalue(self, null=0): + """ + p-value for a hypothesis test about the log risk ratio. + + Parameters + ---------- + null : float + The null value of the log risk ratio. + """ + + zscore = (self.log_riskratio - null) / self.log_riskratio_se + pvalue = 2 * stats.norm.cdf(-np.abs(zscore)) + return pvalue + + + def log_riskratio_confint(self, alpha=0.05, method="normal"): + """ + A confidence interval for the log risk ratio. + + Parameters + ---------- + alpha : float + `1 - alpha` is the nominal coverage probability of the + confidence interval. + method : string + The method for producing the confidence interval. Currently + must be 'normal' which uses the normal approximation. + """ + f = -stats.norm.ppf(alpha / 2) + lrr = self.log_riskratio + se = self.log_riskratio_se + lcb = lrr - f * se + ucb = lrr + f * se + return lcb, ucb + + + def riskratio_confint(self, alpha=0.05, method="normal"): + """ + A confidence interval for the risk ratio. + + Parameters + ---------- + alpha : float + `1 - alpha` is the nominal coverage probability of the + confidence interval. + method : string + The method for producing the confidence interval. Currently + must be 'normal' which uses the normal approximation. + """ + lcb, ucb = self.log_riskratio_confint(alpha, method=method) + return np.exp(lcb), np.exp(ucb) + + + def summary(self, alpha=0.05, float_format="%.3f", method="normal"): + """ + Summarizes results for a 2x2 table analysis. + + Parameters + ---------- + alpha : float + `1 - alpha` is the nominal coverage probability of the confidence + intervals. + float_format : string + Used to format the numeric values in the table. + method : string + The method for producing the confidence interval. Currently + must be 'normal' which uses the normal approximation. + """ + + def fmt(x): + if type(x) is str: + return x + return float_format % x + + headers = ["Estimate", "SE", "LCB", "UCB", "p-value"] + stubs = ["Odds ratio", "Log odds ratio", "Risk ratio", "Log risk ratio"] + + lcb1, ucb1 = self.oddsratio_confint(alpha, method) + lcb2, ucb2 = self.log_oddsratio_confint(alpha, method) + lcb3, ucb3 = self.riskratio_confint(alpha, method) + lcb4, ucb4 = self.log_riskratio_confint(alpha, method) + data = [[fmt(x) for x in [self.oddsratio, "", lcb1, ucb1, self.oddsratio_pvalue()]], + [fmt(x) for x in [self.log_oddsratio, self.log_oddsratio_se, lcb2, ucb2, + self.oddsratio_pvalue()]], + [fmt(x) for x in [self.riskratio, "", lcb2, ucb2, self.riskratio_pvalue()]], + [fmt(x) for x in [self.log_riskratio, self.log_riskratio_se, lcb4, ucb4, + self.riskratio_pvalue()]]] + tab = iolib.SimpleTable(data, headers, stubs, data_aligns="r", + table_dec_above='') + return tab + + + +class StratifiedTable(object): + """ + Analyses for a collection of 2x2 contingency tables. + + Such a collection may arise by stratifying a single 2x2 table with + respect to another factor. This class implements the + 'Cochran-Mantel-Haenszel' and 'Breslow-Day' procedures for + analyzing collections of 2x2 contingency tables. + + Parameters + ---------- + tables : list or ndarray + Either a list containing several 2x2 contingency tables, or + a 2x2xk ndarray in which each slice along the third axis is a + 2x2 contingency table. + + Attributes + ---------- + logodds_pooled : float + An estimate of the pooled log odds ratio. This is the + Mantel-Haenszel estimate of an odds ratio that is common to + all the tables. + log_oddsratio_se : float + The estimated standard error of the pooled log odds ratio, + following Robins, Breslow and Greenland (Biometrics + 42:311-323). + oddsratio_pooled : float + An estimate of the pooled odds ratio. This is the + Mantel-Haenszel estimate of an odds ratio that is common to + all tables. + risk_pooled : float + An estimate of the pooled risk ratio. This is an estimate of + a risk ratio that is common to all the tables. + + Notes + ----- + This results are based on a sampling model in which the units are + independent both within and between strata. + """ + + def __init__(self, tables, shift_zeros=False): + + if isinstance(tables, np.ndarray): + sp = tables.shape + if (len(sp) != 3) or (sp[0] != 2) or (sp[1] != 2): + raise ValueError("If an ndarray, argument must be 2x2xn") + table = tables + else: + # Create a data cube + table = np.dstack(tables).astype(np.float64) + + if shift_zeros: + zx = (table == 0).sum(0).sum(0) + ix = np.flatnonzero(zx > 0) + if len(ix) > 0: + table = table.copy() + table[:, :, ix] += 0.5 + + self.table = table + + self._cache = resettable_cache() + + # Quantities to precompute. Table entries are [[a, b], [c, + # d]], 'ad' is 'a * d', 'apb' is 'a + b', 'dma' is 'd - a', + # etc. + self._apb = table[0, 0, :] + table[0, 1, :] + self._apc = table[0, 0, :] + table[1, 0, :] + self._bpd = table[0, 1, :] + table[1, 1, :] + self._cpd = table[1, 0, :] + table[1, 1, :] + self._ad = table[0, 0, :] * table[1, 1, :] + self._bc = table[0, 1, :] * table[1, 0, :] + self._apd = table[0, 0, :] + table[1, 1, :] + self._dma = table[1, 1, :] - table[0, 0, :] + self._n = table.sum(0).sum(0) + + + @classmethod + def from_data(cls, var1, var2, strata, data): + """ + Construct a StratifiedTable object from data. + + Parameters + ---------- + var1 : int or string + The column index or name of `data` containing the variable + defining the rows of the contingency table. The variable + must have only two distinct values. + var2 : int or string + The column index or name of `data` containing the variable + defining the columns of the contingency table. The variable + must have only two distinct values. + strata : int or string + The column index of name of `data` containing the variable + defining the strata. + data : array-like + The raw data. A cross-table for analysis is constructed + from the first two columns. + + Returns + ------- + A StratifiedTable instance. + """ + + if not isinstance(data, pd.DataFrame): + data1 = pd.DataFrame(index=data.index, column=[var1, var2, strata]) + data1.loc[:, var1] = data[:, var1] + data1.loc[:, var2] = data[:, var2] + data1.loc[:, strata] = data[:, strata] + else: + data1 = data[[var1, var2, strata]] + + gb = data1.groupby(strata).groups + tables = [] + for g in gb: + ii = gb[g] + tab = pd.crosstab(data1.loc[ii, var1], data1.loc[ii, var2]) + tables.append(tab) + return cls(tables) + + + def test_null_odds(self, correction=False): + """ + Test that all tables have odds ratio equal to 1. + + This is the 'Mantel-Haenszel' test. + + Parameters + ---------- + correction : boolean + If True, use the continuity correction when calculating the + test statistic. + + Returns + ------- + A bunch containing the chi^2 test statistic and p-value. + """ + + statistic = np.sum(self.table[0, 0, :] - self._apb * self._apc / self._n) + statistic = np.abs(statistic) + if correction: + statistic -= 0.5 + statistic = statistic**2 + denom = self._apb * self._apc * self._bpd * self._cpd + denom /= (self._n**2 * (self._n - 1)) + denom = np.sum(denom) + statistic /= denom + + # df is always 1 + pvalue = 1 - stats.chi2.cdf(statistic, 1) + + b = _Bunch() + b.statistic = statistic + b.pvalue = pvalue + + return b + + + @cache_readonly + def oddsratio_pooled(self): + # doc for cached attributes in init above + + odds_ratio = np.sum(self._ad / self._n) / np.sum(self._bc / self._n) + return odds_ratio + + + @cache_readonly + def logodds_pooled(self): + # doc for cached attributes in init above + + return np.log(self.oddsratio_pooled) + + + @cache_readonly + def risk_pooled(self): + # doc for cached attributes in init above + + acd = self.table[0, 0, :] * self._cpd + cab = self.table[1, 0, :] * self._apb + + rr = np.sum(acd / self._n) / np.sum(cab / self._n) + return rr + + + @cache_readonly + def logodds_pooled_se(self): + # doc for cached attributes in init above + + adns = np.sum(self._ad / self._n) + bcns = np.sum(self._bc / self._n) + lor_va = np.sum(self._apd * self._ad / self._n**2) / adns**2 + mid = self._apd * self._bc / self._n**2 + mid += (1 - self._apd / self._n) * self._ad / self._n + mid = np.sum(mid) + mid /= (adns * bcns) + lor_va += mid + lor_va += np.sum((1 - self._apd / self._n) * self._bc / self._n) / bcns**2 + lor_va /= 2 + lor_se = np.sqrt(lor_va) + return lor_se + + + def logodds_pooled_confint(self, alpha=0.05, method="normal"): + """ + A confidence interval for the pooled log odds ratio. + + Parameters + ---------- + alpha : float + `1 - alpha` is the nominal coverage probability of the + interval. + method : string + The method for producing the confidence interval. Currently + must be 'normal' which uses the normal approximation. + + Returns + ------- + lcb : float + The lower confidence limit. + ucb : float + The upper confidence limit. + """ + + lor = np.log(self.oddsratio_pooled) + lor_se = self.logodds_pooled_se + + f = -stats.norm.ppf(alpha / 2) + + lcb = lor - f * lor_se + ucb = lor + f * lor_se + + return lcb, ucb + + + def oddsratio_pooled_confint(self, alpha=0.05, method="normal"): + """ + A confidence interval for the pooled odds ratio. + + Parameters + ---------- + alpha : float + `1 - alpha` is the nominal coverage probability of the + interval. + method : string + The method for producing the confidence interval. Currently + must be 'normal' which uses the normal approximation. + + Returns + ------- + lcb : float + The lower confidence limit. + ucb : float + The upper confidence limit. + """ + + lcb, ucb = self.logodds_pooled_confint(alpha, method=method) + lcb = np.exp(lcb) + ucb = np.exp(ucb) + return lcb, ucb + + + def test_equal_odds(self, adjust=False): + """ + Test that all odds ratios are identical. + + This is the 'Breslow-Day' testing procedure. + + Parameters + ---------- + adjust : boolean + Use the 'Tarone' adjustment to achieve the chi^2 + asymptotic distribution. + + Returns + ------- + A bunch containing the following attributes: + + statistic : float + The chi^2 test statistic. + p-value : float + The p-value for the test. + """ + + table = self.table + + r = self.oddsratio_pooled + a = 1 - r + b = r * (self._apb + self._apc) + self._dma + c = -r * self._apb * self._apc + + # Expected value of first cell + e11 = (-b + np.sqrt(b**2 - 4*a*c)) / (2*a) + + # Variance of the first cell + v11 = 1 / e11 + 1 / (self._apc - e11) + 1 / (self._apb - e11) + 1 / (self._dma + e11) + v11 = 1 / v11 + + statistic = np.sum((table[0, 0, :] - e11)**2 / v11) + + if adjust: + adj = table[0, 0, :].sum() - e11.sum() + adj = adj**2 + adj /= np.sum(v11) + statistic -= adj + + pvalue = 1 - stats.chi2.cdf(statistic, table.shape[2] - 1) + + b = _Bunch() + b.statistic = statistic + b.pvalue = pvalue + + return b + + + def summary(self, alpha=0.05, float_format="%.3f", method="normal"): + """ + A summary of all the main results. + + Parameters + ---------- + alpha : float + `1 - alpha` is the nominal coverage probability of the + confidence intervals. + float_format : string + Used for formatting numeric values in the summary. + method : string + The method for producing the confidence interval. Currently + must be 'normal' which uses the normal approximation. + """ + + def fmt(x): + if type(x) is str: + return x + return float_format % x + + co_lcb, co_ucb = self.oddsratio_pooled_confint(alpha=alpha, method=method) + clo_lcb, clo_ucb = self.logodds_pooled_confint(alpha=alpha, method=method) + headers = ["Estimate", "LCB", "UCB"] + stubs = ["Pooled odds", "Pooled log odds", "Pooled risk ratio", ""] + data = [[fmt(x) for x in [self.oddsratio_pooled, co_lcb, co_ucb]], + [fmt(x) for x in [self.logodds_pooled, clo_lcb, clo_ucb]], + [fmt(x) for x in [self.risk_pooled, "", ""]], + ['', '', '']] + tab1 = iolib.SimpleTable(data, headers, stubs, data_aligns="r", + table_dec_above='') + + headers = ["Statistic", "P-value", ""] + stubs = ["Test of OR=1", "Test constant OR"] + rslt1 = self.test_null_odds() + rslt2 = self.test_equal_odds() + data = [[fmt(x) for x in [rslt1.statistic, rslt1.pvalue, ""]], + [fmt(x) for x in [rslt2.statistic, rslt2.pvalue, ""]]] + tab2 = iolib.SimpleTable(data, headers, stubs, data_aligns="r") + tab1.extend(tab2) + + headers = ["", "", ""] + stubs = ["Number of tables", "Min n", "Max n", "Avg n", "Total n"] + ss = self.table.sum(0).sum(0) + data = [["%d" % self.table.shape[2], '', ''], + ["%d" % min(ss), '', ''], + ["%d" % max(ss), '', ''], + ["%.0f" % np.mean(ss), '', ''], + ["%d" % sum(ss), '', '', '']] + tab3 = iolib.SimpleTable(data, headers, stubs, data_aligns="r") + tab1.extend(tab3) + + return tab1 + + +def mcnemar(table, exact=True, correction=True): + """ + McNemar test of homogeneity. + + Parameters + ---------- + table : array-like + A square contingency table. + exact : bool + If exact is true, then the binomial distribution will be used. + If exact is false, then the chisquare distribution will be + used, which is the approximation to the distribution of the + test statistic for large sample sizes. + correction : bool + If true, then a continuity correction is used for the chisquare + distribution (if exact is false.) + + Returns + ------- + A bunch with attributes: + + statistic : float or int, array + The test statistic is the chisquare statistic if exact is + false. If the exact binomial distribution is used, then this + contains the min(n1, n2), where n1, n2 are cases that are zero + in one sample but one in the other sample. + pvalue : float or array + p-value of the null hypothesis of equal marginal distributions. + + Notes + ----- + This is a special case of Cochran's Q test, and of the homogeneity + test. The results when the chisquare distribution is used are + identical, except for continuity correction. + """ + + table = _make_df_square(table) + table = np.asarray(table, dtype=np.float64) + n1, n2 = table[0, 1], table[1, 0] + + if exact: + statistic = np.minimum(n1, n2) + # binom is symmetric with p=0.5 + pvalue = stats.binom.cdf(statistic, n1 + n2, 0.5) * 2 + pvalue = np.minimum(pvalue, 1) # limit to 1 if n1==n2 + else: + corr = int(correction) # convert bool to 0 or 1 + statistic = (np.abs(n1 - n2) - corr)**2 / (1. * (n1 + n2)) + df = 1 + pvalue = stats.chi2.sf(statistic, df) + + b = _Bunch() + b.statistic = statistic + b.pvalue = pvalue + return b + + +def cochrans_q(x, return_object=True): + """ + Cochran's Q test for identical binomial proportions. + + Parameters + ---------- + x : array_like, 2d (N, k) + data with N cases and k variables + return_object : boolean + Return values as bunch instead of as individual values. + + Returns + ------- + Returns a bunch containing the following attributes, or the + individual values according to the value of `return_object`. + + statistic : float + test statistic + pvalue : float + pvalue from the chisquare distribution + + Notes + ----- + Cochran's Q is a k-sample extension of the McNemar test. If there + are only two groups, then Cochran's Q test and the McNemar test + are equivalent. + + The procedure tests that the probability of success is the same + for every group. The alternative hypothesis is that at least two + groups have a different probability of success. + + In Wikipedia terminology, rows are blocks and columns are + treatments. The number of rows N, should be large for the + chisquare distribution to be a good approximation. + + The Null hypothesis of the test is that all treatments have the + same effect. + + References + ---------- + http://en.wikipedia.org/wiki/Cochran_test + SAS Manual for NPAR TESTS + """ + + x = np.asarray(x, dtype=np.float64) + gruni = np.unique(x) + N, k = x.shape + count_row_success = (x == gruni[-1]).sum(1, float) + count_col_success = (x == gruni[-1]).sum(0, float) + count_row_ss = count_row_success.sum() + count_col_ss = count_col_success.sum() + assert count_row_ss == count_col_ss #just a calculation check + + # From the SAS manual + q_stat = (k-1) * (k * np.sum(count_col_success**2) - count_col_ss**2) \ + / (k * count_row_ss - np.sum(count_row_success**2)) + + # Note: the denominator looks just like k times the variance of + # the columns + + # Wikipedia uses a different, but equivalent expression + #q_stat = (k-1) * (k * np.sum(count_row_success**2) - count_row_ss**2) \ + # / (k * count_col_ss - np.sum(count_col_success**2)) + + df = k - 1 + pvalue = stats.chi2.sf(q_stat, df) + + if return_object: + b = _Bunch() + b.statistic = q_stat + b.df = df + b.pvalue = pvalue + return b + + return q_stat, pvalue, df diff --git a/statsmodels/stats/contrast.py b/statsmodels/stats/contrast.py new file mode 100644 index 0000000..4970bf9 --- /dev/null +++ b/statsmodels/stats/contrast.py @@ -0,0 +1,412 @@ +from statsmodels.compat.python import range +import numpy as np +from scipy.stats import f as fdist +from scipy.stats import t as student_t +from scipy import stats +from statsmodels.tools.tools import clean0, fullrank +from statsmodels.compat.numpy import np_matrix_rank + + +#TODO: should this be public if it's just a container? +class ContrastResults(object): + """ + Class for results of tests of linear restrictions on coefficients in a model. + + This class functions mainly as a container for `t_test`, `f_test` and + `wald_test` for the parameters of a model. + + The attributes depend on the statistical test and are either based on the + normal, the t, the F or the chisquare distribution. + + """ + + def __init__(self, t=None, F=None, sd=None, effect=None, df_denom=None, + df_num=None, alpha=0.05, **kwds): + + self.effect = effect # Let it be None for F + if F is not None: + self.distribution = 'F' + self.fvalue = F + self.statistic = self.fvalue + self.df_denom = df_denom + self.df_num = df_num + self.dist = fdist + self.dist_args = (df_num, df_denom) + self.pvalue = fdist.sf(F, df_num, df_denom) + elif t is not None: + self.distribution = 't' + self.tvalue = t + self.statistic = t # generic alias + self.sd = sd + self.df_denom = df_denom + self.dist = student_t + self.dist_args = (df_denom,) + self.pvalue = self.dist.sf(np.abs(t), df_denom) * 2 + elif 'statistic' in kwds: + # TODO: currently targeted to normal distribution, and chi2 + self.distribution = kwds['distribution'] + self.statistic = kwds['statistic'] + self.tvalue = value = kwds['statistic'] # keep alias + # TODO: for results instance we decided to use tvalues also for normal + self.sd = sd + self.dist = getattr(stats, self.distribution) + self.dist_args = () + if self.distribution is 'chi2': + self.pvalue = self.dist.sf(self.statistic, df_denom) + else: + "normal" + self.pvalue = self.dist.sf(np.abs(value)) * 2 + + # cleanup + # should we return python scalar? + self.pvalue = np.squeeze(self.pvalue) + + + def conf_int(self, alpha=0.05): + """ + Returns the confidence interval of the value, `effect` of the constraint. + + This is currently only available for t and z tests. + + Parameters + ---------- + alpha : float, optional + The significance level for the confidence interval. + ie., The default `alpha` = .05 returns a 95% confidence interval. + + Returns + ------- + ci : ndarray, (k_constraints, 2) + The array has the lower and the upper limit of the confidence + interval in the columns. + + """ + if self.effect is not None: + # confidence intervals + q = self.dist.ppf(1 - alpha / 2., *self.dist_args) + lower = self.effect - q * self.sd + upper = self.effect + q * self.sd + return np.column_stack((lower, upper)) + else: + raise NotImplementedError('Confidence Interval not available') + + + def __array__(self): + if hasattr(self, "fvalue"): + return self.fvalue + else: + return self.tvalue + + def __str__(self): + return self.summary().__str__() + + + def __repr__(self): + return str(self.__class__) + '\n' + self.__str__() + + + def summary(self, xname=None, alpha=0.05, title=None): + """Summarize the Results of the hypothesis test + + Parameters + ----------- + + xname : list of strings, optional + Default is `c_##` for ## in p the number of regressors + alpha : float + significance level for the confidence intervals. Default is + alpha = 0.05 which implies a confidence level of 95%. + title : string, optional + Title for the params table. If not None, then this replaces the + default title + + Returns + ------- + smry : string or Summary instance + This contains a parameter results table in the case of t or z test + in the same form as the parameter results table in the model + results summary. + For F or Wald test, the return is a string. + + """ + if self.effect is not None: + # TODO: should also add some extra information, e.g. robust cov ? + # TODO: can we infer names for constraints, xname in __init__ ? + if title is None: + title = 'Test for Constraints' + elif title == '': + # don't add any title, + # I think SimpleTable skips on None - check + title = None + # we have everything for a params table + use_t = (self.distribution == 't') + yname='constraints' # Not used in params_frame + if xname is None: + xname = ['c%d'%ii for ii in range(len(self.effect))] + from statsmodels.iolib.summary import summary_params + pvalues = np.atleast_1d(self.pvalue) + summ = summary_params((self, self.effect, self.sd, self.statistic, + pvalues, self.conf_int(alpha)), + yname=yname, xname=xname, use_t=use_t, + title=title, alpha=alpha) + return summ + elif hasattr(self, 'fvalue'): + # TODO: create something nicer for these casee + return '' % \ + (repr(self.fvalue), self.pvalue, self.df_denom, self.df_num) + else: + # generic + return '' % \ + (self.statistic, self.pvalue) + + + def summary_frame(self, xname=None, alpha=0.05): + """Return the parameter table as a pandas DataFrame + + This is only available for t and normal tests + """ + if self.effect is not None: + # we have everything for a params table + use_t = (self.distribution == 't') + yname='constraints' # Not used in params_frame + if xname is None: + xname = ['c%d'%ii for ii in range(len(self.effect))] + from statsmodels.iolib.summary import summary_params_frame + summ = summary_params_frame((self, self.effect, self.sd, + self.statistic,self.pvalue, + self.conf_int(alpha)), yname=yname, + xname=xname, use_t=use_t, + alpha=alpha) + return summ + else: + # TODO: create something nicer + raise NotImplementedError('only available for t and z') + + + +class Contrast(object): + """ + This class is used to construct contrast matrices in regression models. + + They are specified by a (term, design) pair. The term, T, is a linear + combination of columns of the design matrix. The matrix attribute of + Contrast is a contrast matrix C so that + + colspan(dot(D, C)) = colspan(dot(D, dot(pinv(D), T))) + + where pinv(D) is the generalized inverse of D. Further, the matrix + + Tnew = dot(C, D) + + is full rank. The rank attribute is the rank of + + dot(D, dot(pinv(D), T)) + + In a regression model, the contrast tests that E(dot(Tnew, Y)) = 0 + for each column of Tnew. + + Parameters + ---------- + term : array-like + design : array-like + + Attributes + ---------- + contrast_matrix + + Examples + -------- + >>> import statsmodels.api as sm + >>> from statsmodels.stats.contrast import Contrast + >>> import numpy as np + >>> np.random.seed(54321) + >>> X = np.random.standard_normal((40,10)) + # Get a contrast + >>> new_term = np.column_stack((X[:,0], X[:,2])) + >>> c = Contrast(new_term, X) + >>> test = [[1] + [0]*9, [0]*2 + [1] + [0]*7] + >>> np.allclose(c.contrast_matrix, test) + True + + Get another contrast + + >>> P = np.dot(X, np.linalg.pinv(X)) + >>> resid = np.identity(40) - P + >>> noise = np.dot(resid,np.random.standard_normal((40,5))) + >>> new_term2 = np.column_stack((noise,X[:,2])) + >>> c2 = Contrast(new_term2, X) + >>> print(c2.contrast_matrix) + [ -1.26424750e-16 8.59467391e-17 1.56384718e-01 -2.60875560e-17 + -7.77260726e-17 -8.41929574e-18 -7.36359622e-17 -1.39760860e-16 + 1.82976904e-16 -3.75277947e-18] + + Get another contrast + + >>> zero = np.zeros((40,)) + >>> new_term3 = np.column_stack((zero,X[:,2])) + >>> c3 = Contrast(new_term3, X) + >>> test2 = [0]*2 + [1] + [0]*7 + >>> np.allclose(c3.contrast_matrix, test2) + True + + """ + def _get_matrix(self): + """ + Gets the contrast_matrix property + """ + if not hasattr(self, "_contrast_matrix"): + self.compute_matrix() + return self._contrast_matrix + + contrast_matrix = property(_get_matrix) + + def __init__(self, term, design): + self.term = np.asarray(term) + self.design = np.asarray(design) + + def compute_matrix(self): + """ + Construct a contrast matrix C so that + + colspan(dot(D, C)) = colspan(dot(D, dot(pinv(D), T))) + + where pinv(D) is the generalized inverse of D=design. + """ + + T = self.term + if T.ndim == 1: + T = T[:,None] + + self.T = clean0(T) + self.D = self.design + self._contrast_matrix = contrastfromcols(self.T, self.D) + try: + self.rank = self.matrix.shape[1] + except: + self.rank = 1 + +#TODO: fix docstring after usage is settled +def contrastfromcols(L, D, pseudo=None): + """ + From an n x p design matrix D and a matrix L, tries + to determine a p x q contrast matrix C which + determines a contrast of full rank, i.e. the + n x q matrix + + dot(transpose(C), pinv(D)) + + is full rank. + + L must satisfy either L.shape[0] == n or L.shape[1] == p. + + If L.shape[0] == n, then L is thought of as representing + columns in the column space of D. + + If L.shape[1] == p, then L is thought of as what is known + as a contrast matrix. In this case, this function returns an estimable + contrast corresponding to the dot(D, L.T) + + Note that this always produces a meaningful contrast, not always + with the intended properties because q is always non-zero unless + L is identically 0. That is, it produces a contrast that spans + the column space of L (after projection onto the column space of D). + + Parameters + ---------- + L : array-like + D : array-like + """ + L = np.asarray(L) + D = np.asarray(D) + + n, p = D.shape + + if L.shape[0] != n and L.shape[1] != p: + raise ValueError("shape of L and D mismatched") + + if pseudo is None: + pseudo = np.linalg.pinv(D) # D^+ \approx= ((dot(D.T,D))^(-1),D.T) + + if L.shape[0] == n: + C = np.dot(pseudo, L).T + else: + C = L + C = np.dot(pseudo, np.dot(D, C.T)).T + + Lp = np.dot(D, C.T) + + if len(Lp.shape) == 1: + Lp.shape = (n, 1) + + if np_matrix_rank(Lp) != Lp.shape[1]: + Lp = fullrank(Lp) + C = np.dot(pseudo, Lp).T + + return np.squeeze(C) + + +# TODO: this is currently a minimal version, stub +class WaldTestResults(object): + # for F and chi2 tests of joint hypothesis, mainly for vectorized + + def __init__(self, statistic, distribution, dist_args, table=None, + pvalues=None): + self.table = table + + self.distribution = distribution + self.statistic = statistic + #self.sd = sd + self.dist_args = dist_args + + # The following is because I don't know which we want + if table is not None: + self.statistic = table['statistic'].values + self.pvalues = table['pvalue'].values + self.df_constraints = table['df_constraint'].values + if self.distribution == 'F': + self.df_denom = table['df_denom'].values + + else: + if self.distribution is 'chi2': + self.dist = stats.chi2 + self.df_constraints = self.dist_args[0] # assumes tuple + # using dist_args[0] is a bit dangerous, + elif self.distribution is 'F': + self.dist = stats.f + self.df_constraints, self.df_denom = self.dist_args + + else: + raise ValueError('only F and chi2 are possible distribution') + + if pvalues is None: + self.pvalues = self.dist.sf(np.abs(statistic), *dist_args) + else: + self.pvalues = pvalues + + @property + def col_names(self): + """column names for summary table + """ + + pr_test = "P>%s" % self.distribution + col_names = [self.distribution, pr_test, 'df constraint'] + if self.distribution == 'F': + col_names.append('df denom') + return col_names + + def summary_frame(self): + # needs to be a method for consistency + if hasattr(self, '_dframe'): + return self._dframe + # rename the column nambes, but don't copy data + renaming = dict(zip(self.table.columns, self.col_names)) + self.dframe = self.table.rename(columns=renaming) + return self.dframe + + + def __str__(self): + return self.summary_frame().to_string() + + + def __repr__(self): + return str(self.__class__) + '\n' + self.__str__() diff --git a/statsmodels/stats/correlation_tools.py b/statsmodels/stats/correlation_tools.py new file mode 100644 index 0000000..07af540 --- /dev/null +++ b/statsmodels/stats/correlation_tools.py @@ -0,0 +1,867 @@ +# -*- coding: utf-8 -*- +""" + +Created on Fri Aug 17 13:10:52 2012 + +Author: Josef Perktold +License: BSD-3 +""" + +from statsmodels.tools.sm_exceptions import (IterationLimitWarning, + iteration_limit_doc) +import numpy as np +import scipy.sparse as sparse +from scipy.sparse.linalg import svds +from scipy.optimize import fminbound + +def clip_evals(x, value=0): #threshold=0, value=0): + evals, evecs = np.linalg.eigh(x) + clipped = np.any(evals < 0) + x_new = np.dot(evecs * np.maximum(evals, value), evecs.T) + return x_new, clipped + + +def corr_nearest(corr, threshold=1e-15, n_fact=100): + ''' + Find the nearest correlation matrix that is positive semi-definite. + + The function iteratively adjust the correlation matrix by clipping the + eigenvalues of a difference matrix. The diagonal elements are set to one. + + Parameters + ---------- + corr : ndarray, (k, k) + initial correlation matrix + threshold : float + clipping threshold for smallest eigenvalue, see Notes + n_fact : int or float + factor to determine the maximum number of iterations. The maximum + number of iterations is the integer part of the number of columns in + the correlation matrix times n_fact. + + Returns + ------- + corr_new : ndarray, (optional) + corrected correlation matrix + + Notes + ----- + The smallest eigenvalue of the corrected correlation matrix is + approximately equal to the ``threshold``. + If the threshold=0, then the smallest eigenvalue of the correlation matrix + might be negative, but zero within a numerical error, for example in the + range of -1e-16. + + Assumes input correlation matrix is symmetric. + + Stops after the first step if correlation matrix is already positive + semi-definite or positive definite, so that smallest eigenvalue is above + threshold. In this case, the returned array is not the original, but + is equal to it within numerical precision. + + See Also + -------- + corr_clipped + cov_nearest + + ''' + k_vars = corr.shape[0] + if k_vars != corr.shape[1]: + raise ValueError("matrix is not square") + + diff = np.zeros(corr.shape) + x_new = corr.copy() + diag_idx = np.arange(k_vars) + + for ii in range(int(len(corr) * n_fact)): + x_adj = x_new - diff + x_psd, clipped = clip_evals(x_adj, value=threshold) + if not clipped: + x_new = x_psd + break + diff = x_psd - x_adj + x_new = x_psd.copy() + x_new[diag_idx, diag_idx] = 1 + else: + import warnings + warnings.warn(iteration_limit_doc, IterationLimitWarning) + + return x_new + +def corr_clipped(corr, threshold=1e-15): + ''' + Find a near correlation matrix that is positive semi-definite + + This function clips the eigenvalues, replacing eigenvalues smaller than + the threshold by the threshold. The new matrix is normalized, so that the + diagonal elements are one. + Compared to corr_nearest, the distance between the original correlation + matrix and the positive definite correlation matrix is larger, however, + it is much faster since it only computes eigenvalues once. + + Parameters + ---------- + corr : ndarray, (k, k) + initial correlation matrix + threshold : float + clipping threshold for smallest eigenvalue, see Notes + + Returns + ------- + corr_new : ndarray, (optional) + corrected correlation matrix + + + Notes + ----- + The smallest eigenvalue of the corrected correlation matrix is + approximately equal to the ``threshold``. In examples, the + smallest eigenvalue can be by a factor of 10 smaller than the threshold, + e.g. threshold 1e-8 can result in smallest eigenvalue in the range + between 1e-9 and 1e-8. + If the threshold=0, then the smallest eigenvalue of the correlation matrix + might be negative, but zero within a numerical error, for example in the + range of -1e-16. + + Assumes input correlation matrix is symmetric. The diagonal elements of + returned correlation matrix is set to ones. + + If the correlation matrix is already positive semi-definite given the + threshold, then the original correlation matrix is returned. + + ``cov_clipped`` is 40 or more times faster than ``cov_nearest`` in simple + example, but has a slightly larger approximation error. + + See Also + -------- + corr_nearest + cov_nearest + + ''' + x_new, clipped = clip_evals(corr, value=threshold) + if not clipped: + return corr + + #cov2corr + x_std = np.sqrt(np.diag(x_new)) + x_new = x_new / x_std / x_std[:,None] + return x_new + + +def cov_nearest(cov, method='clipped', threshold=1e-15, n_fact=100, + return_all=False): + + ''' + Find the nearest covariance matrix that is postive (semi-) definite + + This leaves the diagonal, i.e. the variance, unchanged + + Parameters + ---------- + cov : ndarray, (k,k) + initial covariance matrix + method : string + if "clipped", then the faster but less accurate ``corr_clipped`` is used. + if "nearest", then ``corr_nearest`` is used + threshold : float + clipping threshold for smallest eigen value, see Notes + nfact : int or float + factor to determine the maximum number of iterations in + ``corr_nearest``. See its doc string + return_all : bool + if False (default), then only the covariance matrix is returned. + If True, then correlation matrix and standard deviation are + additionally returned. + + Returns + ------- + cov_ : ndarray + corrected covariance matrix + corr_ : ndarray, (optional) + corrected correlation matrix + std_ : ndarray, (optional) + standard deviation + + + Notes + ----- + This converts the covariance matrix to a correlation matrix. Then, finds + the nearest correlation matrix that is positive semidefinite and converts + it back to a covariance matrix using the initial standard deviation. + + The smallest eigenvalue of the intermediate correlation matrix is + approximately equal to the ``threshold``. + If the threshold=0, then the smallest eigenvalue of the correlation matrix + might be negative, but zero within a numerical error, for example in the + range of -1e-16. + + Assumes input covariance matrix is symmetric. + + See Also + -------- + corr_nearest + corr_clipped + + ''' + + from statsmodels.stats.moment_helpers import cov2corr, corr2cov + cov_, std_ = cov2corr(cov, return_std=True) + if method == 'clipped': + corr_ = corr_clipped(cov_, threshold=threshold) + elif method == 'nearest': + corr_ = corr_nearest(cov_, threshold=threshold, n_fact=n_fact) + + cov_ = corr2cov(corr_, std_) + + if return_all: + return cov_, corr_, std_ + else: + return cov_ + +def _nmono_linesearch(obj, grad, x, d, obj_hist, M=10, sig1=0.1, + sig2=0.9, gam=1e-4, maxiter=100): + """ + Implements the non-monotone line search of Grippo et al. (1986), + as described in Birgin, Martinez and Raydan (2013). + + Parameters + ---------- + obj : real-valued function + The objective function, to be minimized + grad : vector-valued function + The gradient of the objective function + x : array_like + The starting point for the line search + d : array_like + The search direction + obj_hist : array_like + Objective function history (must contain at least one value) + M : positive integer + Number of previous function points to consider (see references + for details). + sig1 : real + Tuning parameter, see references for details. + sig2 : real + Tuning parameter, see references for details. + gam : real + Tuning parameter, see references for details. + maxiter : positive integer + The maximum number of iterations; returns Nones if convergence + does not occur by this point + + Returns + ------- + alpha : real + The step value + x : Array_like + The function argument at the final step + obval : Real + The function value at the final step + g : Array_like + The gradient at the final step + + Notes + ----- + The basic idea is to take a big step in the direction of the + gradient, even if the function value is not decreased (but there + is a maximum allowed increase in terms of the recent history of + the iterates). + + References + ---------- + Grippo L, Lampariello F, Lucidi S (1986). A Nonmonotone Line + Search Technique for Newton's Method. SIAM Journal on Numerical + Analysis, 23, 707-716. + + E. Birgin, J.M. Martinez, and M. Raydan. Spectral projected + gradient methods: Review and perspectives. Journal of Statistical + Software (preprint). + """ + + alpha = 1. + last_obval = obj(x) + obj_max = max(obj_hist[-M:]) + + for iter in range(maxiter): + + obval = obj(x + alpha*d) + g = grad(x) + gtd = (g * d).sum() + + if obval <= obj_max + gam*alpha*gtd: + return alpha, x + alpha*d, obval, g + + a1 = -0.5*alpha**2*gtd / (obval - last_obval - alpha*gtd) + + if (sig1 <= a1) and (a1 <= sig2*alpha): + alpha = a1 + else: + alpha /= 2. + + last_obval = obval + + return None, None, None, None + + +def _spg_optim(func, grad, start, project, maxiter=1e4, M=10, + ctol=1e-3, maxiter_nmls=200, lam_min=1e-30, + lam_max=1e30, sig1=0.1, sig2=0.9, gam=1e-4): + """ + Implements the spectral projected gradient method for minimizing a + differentiable function on a convex domain. + + Parameters + ---------- + func : real valued function + The objective function to be minimized. + grad : real array-valued function + The gradient of the objective function + start : array_like + The starting point + project : function + In-place projection of the argument to the domain + of func. + ... See notes regarding additional arguments + + Returns + ------- + rslt : Bunch + rslt.params is the final iterate, other fields describe + convergence status. + + Notes + ----- + This can be an effective heuristic algorithm for problems where no + gauranteed algorithm for computing a global minimizer is known. + + There are a number of tuning parameters, but these generally + should not be changed except for `maxiter` (positive integer) and + `ctol` (small positive real). See the Birgin et al reference for + more information about the tuning parameters. + + Reference + --------- + E. Birgin, J.M. Martinez, and M. Raydan. Spectral projected + gradient methods: Review and perspectives. Journal of Statistical + Software (preprint). Available at: + http://www.ime.usp.br/~egbirgin/publications/bmr5.pdf + """ + + lam = min(10*lam_min, lam_max) + + params = start.copy() + gval = grad(params) + + obj_hist = [func(params),] + + for itr in range(int(maxiter)): + + # Check convergence + df = params - gval + project(df) + df -= params + if np.max(np.abs(df)) < ctol: + return Bunch(**{"Converged": True, "params": params, + "objective_values": obj_hist, + "Message": "Converged successfully"}) + + # The line search direction + d = params - lam*gval + project(d) + d -= params + + # Carry out the nonmonotone line search + alpha, params1, fval, gval1 = _nmono_linesearch(func, grad, params, d, + obj_hist, M=M, + sig1=sig1, + sig2=sig2, + gam=gam, + maxiter=maxiter_nmls) + if alpha is None: + return Bunch(**{"Converged": False, "params": params, + "objective_values": obj_hist, + "Message": "Failed in nmono_linesearch"}) + + obj_hist.append(fval) + s = params1 - params + y = gval1 - gval + + sy = (s*y).sum() + if sy <= 0: + lam = lam_max + else: + ss = (s*s).sum() + lam = max(lam_min, min(ss/sy, lam_max)) + + params = params1 + gval = gval1 + + return Bunch(**{"Converged": False, "params": params, + "objective_values": obj_hist, + "Message": "spg_optim did not converge"}) + + +def _project_correlation_factors(X): + """ + Project a matrix into the domain of matrices whose row-wise sums + of squares are less than or equal to 1. + + The input matrix is modified in-place. + """ + nm = np.sqrt((X*X).sum(1)) + ii = np.flatnonzero(nm > 1) + if len(ii) > 0: + X[ii,:] /= nm[ii][:, None] + + +#TODO does this belong in a tools module somewhere? +class Bunch(object): + + def __init__(self, **kwargs): + self.__dict__.update(kwargs) + + + +class FactoredPSDMatrix: + """ + Representation of a positive semidefinite matrix in factored form. + + The representation is constructed based on a vector `diag` and + rectangular matrix `root`, such that the PSD matrix represented by + the class instance is Diag + root * root', where Diag is the + square diagonal matrix with `diag` on its main diagonal. + + Parameters + ---------- + diag : 1d array-like + See above + root : 2d array-like + See above + + Notes + ----- + The matrix is represented internally in the form Diag^{1/2}(I + + factor * scales * factor')Diag^{1/2}, where `Diag` and `scales` + are diagonal matrices, and `factor` is an orthogonal matrix. + """ + + def __init__(self, diag, root): + self.diag = diag + self.root = root + root = root / np.sqrt(diag)[:, None] + u, s, vt = np.linalg.svd(root, 0) + self.factor = u + self.scales = s**2 + + + def to_matrix(self): + """ + Returns the PSD matrix represented by this instance as a full + (square) matrix. + """ + return np.diag(self.diag) + np.dot(self.root, self.root.T) + + + def decorrelate(self, rhs): + """ + Decorrelate the columns of `rhs`. + + Parameters + ---------- + rhs : array-like + A 2 dimensional array with the same number of rows as the + PSD matrix represented by the class instance. + + Returns + ------- + C^{-1/2} * rhs, where C is the covariance matrix represented + by this class instance. + + Notes + ----- + The returned matrix has the identity matrix as its row-wise + population covariance matrix. + + This function exploits the factor structure for efficiency. + """ + + # I + factor * qval * factor' is the inverse square root of + # the covariance matrix in the homogeneous case where diag = + # 1. + qval = -1 + 1 / np.sqrt(1 + self.scales) + + # Decorrelate in the general case. + rhs = rhs / np.sqrt(self.diag)[:, None] + rhs1 = np.dot(self.factor.T, rhs) + rhs1 *= qval[:, None] + rhs1 = np.dot(self.factor, rhs1) + rhs += rhs1 + + return rhs + + def solve(self, rhs): + """ + Solve a linear system of equations with factor-structured + coefficients. + + Parameters + ---------- + rhs : array-like + A 2 dimensional array with the same number of rows as the + PSD matrix represented by the class instance. + + Returns + ------- + C^{-1} * rhs, where C is the covariance matrix represented + by this class instance. + + Notes + ----- + This function exploits the factor structure for efficiency. + """ + + qval = -self.scales / (1 + self.scales) + dr = np.sqrt(self.diag) + rhs = rhs / dr[:, None] + mat = qval[:, None] * np.dot(self.factor.T, rhs) + rhs = rhs + np.dot(self.factor, mat) + return rhs / dr[:, None] + + def logdet(self): + """ + Returns the logarithm of the determinant of a + factor-structured matrix. + """ + + logdet = np.sum(np.log(self.diag)) + logdet += np.sum(np.log(self.scales)) + logdet += np.sum(np.log(1 + 1 / self.scales)) + + return logdet + + + +def corr_nearest_factor(corr, rank, ctol=1e-6, lam_min=1e-30, + lam_max=1e30, maxiter=1000): + """ + Find the nearest correlation matrix with factor structure to a + given square matrix. + + Parameters + ---------- + corr : square array + The target matrix (to which the nearest correlation matrix is + sought). Must be square, but need not be positive + semidefinite. + rank : positive integer + The rank of the factor structure of the solution, i.e., the + number of linearly independent columns of X. + ctol : positive real + Convergence criterion. + lam_min : float + Tuning parameter for spectral projected gradient optimization + (smallest allowed step in the search direction). + lam_max : float + Tuning parameter for spectral projected gradient optimization + (largest allowed step in the search direction). + maxiter : integer + Maximum number of iterations in spectral projected gradient + optimization. + + Returns + ------- + rslt : Bunch + rslt.corr is a FactoredPSDMatrix defining the estimated + correlation structure. Other fields of `rslt` contain + returned values from spg_optim. + + Notes + ----- + A correlation matrix has factor structure if it can be written in + the form I + XX' - diag(XX'), where X is n x k with linearly + independent columns, and with each row having sum of squares at + most equal to 1. The approximation is made in terms of the + Frobenius norm. + + This routine is useful when one has an approximate correlation + matrix that is not positive semidefinite, and there is need to + estimate the inverse, square root, or inverse square root of the + population correlation matrix. The factor structure allows these + tasks to be done without constructing any n x n matrices. + + This is a non-convex problem with no known gauranteed globally + convergent algorithm for computing the solution. Borsdof, Higham + and Raydan (2010) compared several methods for this problem and + found the spectral projected gradient (SPG) method (used here) to + perform best. + + The input matrix `corr` can be a dense numpy array or any scipy + sparse matrix. The latter is useful if the input matrix is + obtained by thresholding a very large sample correlation matrix. + If `corr` is sparse, the calculations are optimized to save + memory, so no working matrix with more than 10^6 elements is + constructed. + + References + ---------- + R Borsdof, N Higham, M Raydan (2010). Computing a nearest + correlation matrix with factor structure. SIAM J Matrix Anal + Appl, 31:5, 2603-2622. + http://eprints.ma.man.ac.uk/1523/01/covered/MIMS_ep2009_87.pdf + + Examples + -------- + Hard thresholding a correlation matrix may result in a matrix that + is not positive semidefinite. We can approximate a hard + thresholded correlation matrix with a PSD matrix as follows, where + `corr` is the input correlation matrix. + + >>> import numpy as np + >>> from statsmodels.stats.correlation_tools import corr_nearest_factor + >>> np.random.seed(1234) + >>> b = 1.5 - np.random.rand(10, 1) + >>> x = np.random.randn(100,1).dot(b.T) + np.random.randn(100,10) + >>> corr = np.corrcoef(x.T) + >>> corr = corr * (np.abs(corr) >= 0.3) + >>> rslt = corr_nearest_factor(corr, 3) + """ + + p, _ = corr.shape + + # Starting values (following the PCA method in BHR). + u,s,vt = svds(corr, rank) + X = u * np.sqrt(s) + nm = np.sqrt((X**2).sum(1)) + ii = np.flatnonzero(nm > 1e-5) + X[ii,:] /= nm[ii][:, None] + + # Zero the diagonal + corr1 = corr.copy() + if type(corr1) == np.ndarray: + np.fill_diagonal(corr1, 0) + elif sparse.issparse(corr1): + corr1.setdiag(np.zeros(corr1.shape[0])) + corr1.eliminate_zeros() + corr1.sort_indices() + else: + raise ValueError("Matrix type not supported") + + # The gradient, from lemma 4.1 of BHR. + def grad(X): + gr = np.dot(X, np.dot(X.T, X)) + if type(corr1) == np.ndarray: + gr -= np.dot(corr1, X) + else: + gr -= corr1.dot(X) + gr -= (X*X).sum(1)[:, None] * X + return 4*gr + + # The objective function (sum of squared deviations between fitted + # and observed arrays). + def func(X): + if type(corr1) == np.ndarray: + M = np.dot(X, X.T) + np.fill_diagonal(M, 0) + M -= corr1 + fval = (M*M).sum() + return fval + else: + fval = 0. + # Control the size of intermediates + max_ws = 1e6 + bs = int(max_ws / X.shape[0]) + ir = 0 + while ir < X.shape[0]: + ir2 = min(ir+bs, X.shape[0]) + u = np.dot(X[ir:ir2, :], X.T) + ii = np.arange(u.shape[0]) + u[ii, ir+ii] = 0 + u -= np.asarray(corr1[ir:ir2, :].todense()) + fval += (u*u).sum() + ir += bs + return fval + + rslt = _spg_optim(func, grad, X, _project_correlation_factors) + root = rslt.params + diag = 1 - (root**2).sum(1) + soln = FactoredPSDMatrix(diag, root) + rslt.corr = soln + del rslt.params + return rslt + + +def cov_nearest_factor_homog(cov, rank): + """ + Approximate an arbitrary square matrix with a factor-structured + matrix of the form k*I + XX'. + + Parameters + ---------- + cov : array-like + The input array, must be square but need not be positive + semidefinite + rank : positive integer + The rank of the fitted factor structure + + Returns + ------- + A FactoredPSDMatrix instance containing the fitted matrix + + Notes + ----- + This routine is useful if one has an estimated covariance matrix + that is not SPD, and the ultimate goal is to estimate the inverse, + square root, or inverse square root of the true covariance + matrix. The factor structure allows these tasks to be performed + without constructing any n x n matrices. + + The calculations use the fact that if k is known, then X can be + determined from the eigen-decomposition of cov - k*I, which can + in turn be easily obtained form the eigen-decomposition of `cov`. + Thus the problem can be reduced to a 1-dimensional search for k + that does not require repeated eigen-decompositions. + + If the input matrix is sparse, then cov - k*I is also sparse, so + the eigen-decomposition can be done effciciently using sparse + routines. + + The one-dimensional search for the optimal value of k is not + convex, so a local minimum could be obtained. + + Examples + -------- + Hard thresholding a covariance matrix may result in a matrix that + is not positive semidefinite. We can approximate a hard + thresholded covariance matrix with a PSD matrix as follows: + + >>> import numpy as np + >>> np.random.seed(1234) + >>> b = 1.5 - np.random.rand(10, 1) + >>> x = np.random.randn(100,1).dot(b.T) + np.random.randn(100,10) + >>> cov = np.cov(x) + >>> cov = cov * (np.abs(cov) >= 0.3) + >>> rslt = cov_nearest_factor_homog(cov, 3) + """ + + m, n = cov.shape + + Q, Lambda, _ = svds(cov, rank) + + if sparse.issparse(cov): + QSQ = np.dot(Q.T, cov.dot(Q)) + ts = cov.diagonal().sum() + tss = cov.dot(cov).diagonal().sum() + else: + QSQ = np.dot(Q.T, np.dot(cov, Q)) + ts = np.trace(cov) + tss = np.trace(np.dot(cov, cov)) + + def fun(k): + Lambda_t = Lambda - k + v = tss + m*(k**2) + np.sum(Lambda_t**2) - 2*k*ts + v += 2*k*np.sum(Lambda_t) - 2*np.sum(np.diag(QSQ) * Lambda_t) + return v + + # Get the optimal decomposition + k_opt = fminbound(fun, 0, 1e5) + Lambda_opt = Lambda - k_opt + fac_opt = Q * np.sqrt(Lambda_opt) + + diag = k_opt * np.ones(m, dtype=np.float64) #- (fac_opt**2).sum(1) + return FactoredPSDMatrix(diag, fac_opt) + +def corr_thresholded(data, minabs=None, max_elt=1e7): + """ + Construct a sparse matrix containing the thresholded row-wise + correlation matrix from a data array. + + Parameters + ---------- + data : array_like + The data from which the row-wise thresholded correlation + matrix is to be computed. + minabs : non-negative real + The threshold value; correlation coefficients smaller in + magnitude than minabs are set to zero. If None, defaults + to 1 / sqrt(n), see Notes for more information. + + Returns + ------- + cormat : sparse.coo_matrix + The thresholded correlation matrix, in COO format. + + Notes + ----- + This is an alternative to C = np.corrcoef(data); C *= (np.abs(C) + >= absmin), suitable for very tall data matrices. + + If the data are jointly Gaussian, the marginal sampling + distributions of the elements of the sample correlation matrix are + approximately Gaussian with standard deviation 1 / sqrt(n). The + default value of `minabs` is thus equal to 1 standard error, which + will set to zero approximately 68% of the estimated correlation + coefficients for which the population value is zero. + + No intermediate matrix with more than `max_elt` values will be + constructed. However memory use could still be high if a large + number of correlation values exceed `minabs` in magnitude. + + The thresholded matrix is returned in COO format, which can easily + be converted to other sparse formats. + + Examples + -------- + Here X is a tall data matrix (e.g. with 100,000 rows and 50 + columns). The row-wise correlation matrix of X is calculated + and stored in sparse form, with all entries smaller than 0.3 + treated as 0. + + >>> import numpy as np + >>> np.random.seed(1234) + >>> b = 1.5 - np.random.rand(10, 1) + >>> x = np.random.randn(100,1).dot(b.T) + np.random.randn(100,10) + >>> cmat = corr_thresholded(x, 0.3) + """ + + nrow, ncol = data.shape + + if minabs is None: + minabs = 1. / float(ncol) + + # Row-standardize the data + data = data.copy() + data -= data.mean(1)[:, None] + sd = data.std(1, ddof=1) + ii = np.flatnonzero(sd > 1e-5) + data[ii, :] /= sd[ii][:, None] + ii = np.flatnonzero(sd <= 1e-5) + data[ii, :] = 0 + + # Number of rows to process in one pass + bs = int(np.floor(max_elt / nrow)) + + ipos_all, jpos_all, cor_values = [], [], [] + + ir = 0 + while ir < nrow: + ir2 = min(data.shape[0], ir + bs) + cm = np.dot(data[ir:ir2,:], data.T) / (ncol - 1) + cma = np.abs(cm) + ipos, jpos = np.nonzero(cma >= minabs) + ipos_all.append(ipos + ir) + jpos_all.append(jpos) + cor_values.append(cm[ipos, jpos]) + ir += bs + + ipos = np.concatenate(ipos_all) + jpos = np.concatenate(jpos_all) + cor_values = np.concatenate(cor_values) + + cmat = sparse.coo_matrix((cor_values, (ipos, jpos)), (nrow, nrow)) + + return cmat + + + +if __name__ == '__main__': + pass diff --git a/statsmodels/stats/descriptivestats.py b/statsmodels/stats/descriptivestats.py new file mode 100644 index 0000000..bad2c7d --- /dev/null +++ b/statsmodels/stats/descriptivestats.py @@ -0,0 +1,394 @@ +from statsmodels.compat.python import lrange, lmap, iterkeys, iteritems +import numpy as np +from scipy import stats +from statsmodels.iolib.table import SimpleTable +from statsmodels.tools.decorators import nottest + +def _kurtosis(a): + '''wrapper for scipy.stats.kurtosis that returns nan instead of raising Error + + missing options + ''' + try: + res = stats.kurtosis(a) + except ValueError: + res = np.nan + return res + +def _skew(a): + '''wrapper for scipy.stats.skew that returns nan instead of raising Error + + missing options + ''' + try: + res = stats.skew(a) + except ValueError: + res = np.nan + return res + +_sign_test_doc = ''' + Signs test. + + Parameters + ---------- + samp : array-like + 1d array. The sample for which you want to perform the signs + test. + mu0 : float + See Notes for the definition of the sign test. mu0 is 0 by + default, but it is common to set it to the median. + + Returns + --------- + M, p-value + + Notes + ----- + The signs test returns + + M = (N(+) - N(-))/2 + + where N(+) is the number of values above `mu0`, N(-) is the number of + values below. Values equal to `mu0` are discarded. + + The p-value for M is calculated using the binomial distrubution + and can be intrepreted the same as for a t-test. The test-statistic + is distributed Binom(min(N(+), N(-)), n_trials, .5) where n_trials + equals N(+) + N(-). + + See Also + --------- + scipy.stats.wilcoxon + ''' + +@nottest +def sign_test(samp, mu0=0): + samp = np.asarray(samp) + pos = np.sum(samp > mu0) + neg = np.sum(samp < mu0) + M = (pos-neg)/2. + p = stats.binom_test(min(pos,neg), pos+neg, .5) + return M, p +sign_test.__doc__ = _sign_test_doc + +class Describe(object): + ''' + Calculates descriptive statistics for data. + + Defaults to a basic set of statistics, "all" can be specified, or a list + can be given. + + Parameters + ---------- + dataset : array-like + 2D dataset for descriptive statistics. + ''' + def __init__(self, dataset): + self.dataset = dataset + + #better if this is initially a list to define order, or use an + # ordered dict. First position is the function + # Second position is the tuple/list of column names/numbers + # third is are the results in order of the columns + self.univariate = dict( + obs = [len, None, None], + mean = [np.mean, None, None], + std = [np.std, None, None], + min = [np.min, None, None], + max = [np.max, None, None], + ptp = [np.ptp, None, None], + var = [np.var, None, None], + mode_val = [self._mode_val, None, None], + mode_bin = [self._mode_bin, None, None], + median = [np.median, None, None], + skew = [stats.skew, None, None], + uss = [lambda x: np.sum(np.asarray(x)**2, axis=0), None, None], + kurtosis = [stats.kurtosis, None, None], + percentiles = [self._percentiles, None, None], + #BUG: not single value + #sign_test_M = [self.sign_test_m, None, None], + #sign_test_P = [self.sign_test_p, None, None] + ) + + #TODO: Basic stats for strings + #self.strings = dict( + #unique = [np.unique, None, None], + #number_uniq = [len( + #most = [ + #least = [ + + #TODO: Multivariate + #self.multivariate = dict( + #corrcoef(x[, y, rowvar, bias]), + #cov(m[, y, rowvar, bias]), + #histogram2d(x, y[, bins, range, normed, weights]) + #) + self._arraytype = None + self._columns_list = None + + def _percentiles(self,x): + p = [stats.scoreatpercentile(x,per) for per in + (1,5,10,25,50,75,90,95,99)] + return p + def _mode_val(self,x): + return stats.mode(x)[0][0] + def _mode_bin(self,x): + return stats.mode(x)[1][0] + + def _array_typer(self): + """if not a sctructured array""" + if not(self.dataset.dtype.names): + """homogeneous dtype array""" + self._arraytype = 'homog' + elif self.dataset.dtype.names: + """structured or rec array""" + self._arraytype = 'sctruct' + else: + assert self._arraytype == 'sctruct' or self._arraytype == 'homog' + + def _is_dtype_like(self, col): + """ + Check whether self.dataset.[col][0] behaves like a string, numbern + unknown. `numpy.lib._iotools._is_string_like` + """ + def string_like(): + #TODO: not sure what the result is if the first item is some type of + # missing value + try: + self.dataset[col][0] + '' + except (TypeError, ValueError): + return False + return True + def number_like(): + try: + self.dataset[col][0] + 1.0 + except (TypeError, ValueError): + return False + return True + if number_like()==True and string_like()==False: + return 'number' + elif number_like()==False and string_like()==True: + return 'string' + else: + assert (number_like()==True or string_like()==True), '\ + Not sure of dtype'+str(self.dataset[col][0]) + + #@property + def summary(self, stats='basic', columns='all', orientation='auto'): + """ + Return a summary of descriptive statistics. + + Parameters + ----------- + stats: list or str + The desired statistics, Accepts 'basic' or 'all' or a list. + 'basic' = ('obs', 'mean', 'std', 'min', 'max') + 'all' = ('obs', 'mean', 'std', 'min', 'max', 'ptp', 'var', + 'mode', 'meadian', 'skew', 'uss', 'kurtosis', + 'percentiles') + columns : list or str + The columns/variables to report the statistics, default is 'all' + If an object with named columns is given, you may specify the + column names. For example + """ + #NOTE + # standard array: Specifiy column numbers (NEED TO TEST) + # percentiles currently broken + # mode requires mode_val and mode_bin separately + if self._arraytype == None: + self._array_typer() + + if stats == 'basic': + stats = ('obs', 'mean', 'std', 'min', 'max') + elif stats == 'all': + #stats = self.univariate.keys() + #dict doesn't keep an order, use full list instead + stats = ['obs', 'mean', 'std', 'min', 'max', 'ptp', 'var', + 'mode_val', 'mode_bin', 'median', 'uss', 'skew', + 'kurtosis', 'percentiles'] + else: + for astat in stats: + pass + #assert astat in self.univariate + + #hack around percentiles multiple output + + #bad naming + import scipy.stats + #BUG: the following has all per the same per=99 + ##perdict = dict(('perc_%2d'%per, [lambda x: + # scipy.stats.scoreatpercentile(x, per), None, None]) + ## for per in (1,5,10,25,50,75,90,95,99)) + + def _fun(per): + return lambda x: scipy.stats.scoreatpercentile(x, per) + + perdict = dict(('perc_%02d'%per, [_fun(per), None, None]) + for per in (1,5,10,25,50,75,90,95,99)) + + if 'percentiles' in stats: + self.univariate.update(perdict) + idx = stats.index('percentiles') + stats[idx:idx+1] = sorted(iterkeys(perdict)) + + + + #JP: this doesn't allow a change in sequence, sequence in stats is + #ignored + #this is just an if condition + if any([aitem[1] for aitem in iteritems(self.univariate) if aitem[0] in + stats]): + if columns == 'all': + self._columns_list = [] + if self._arraytype == 'sctruct': + self._columns_list = self.dataset.dtype.names + #self._columns_list = [col for col in + # self.dataset.dtype.names if + #(self._is_dtype_like(col)=='number')] + else: + self._columns_list = lrange(self.dataset.shape[1]) + else: + self._columns_list = columns + if self._arraytype == 'sctruct': + for col in self._columns_list: + assert (col in self.dataset.dtype.names) + else: + assert self._is_dtype_like(self.dataset) == 'number' + + columstypes = self.dataset.dtype + #TODO: do we need to make sure they dtype is float64 ? + for astat in stats: + calc = self.univariate[astat] + if self._arraytype == 'sctruct': + calc[1] = self._columns_list + calc[2] = [calc[0](self.dataset[col]) for col in + self._columns_list if (self._is_dtype_like(col) == + 'number')] + #calc[2].append([len(np.unique(self.dataset[col])) for col + #in self._columns_list if + #self._is_dtype_like(col)=='string'] + else: + calc[1] = ['Col '+str(col) for col in self._columns_list] + calc[2] = [calc[0](self.dataset[:,col]) for col in + self._columns_list] + return self.print_summary(stats, orientation=orientation) + else: + return self.print_summary(stats, orientation=orientation) + + def print_summary(self, stats, orientation='auto'): + #TODO: need to specify a table formating for the numbers, using defualt + title = 'Summary Statistics' + header = stats + stubs = self.univariate['obs'][1] + data = [[self.univariate[astat][2][col] for astat in stats] for col in + range(len(self.univariate['obs'][2]))] + + if (orientation == 'varcols') or \ + (orientation == 'auto' and len(stubs) < len(header)): + #swap rows and columns + data = lmap(lambda *row: list(row), *data) + header, stubs = stubs, header + + part_fmt = dict(data_fmts = ["%#8.4g"]*(len(header)-1)) + table = SimpleTable(data, + header, + stubs, + title=title, + txt_fmt = part_fmt) + + return table + + + def sign_test(self, samp, mu0=0): + return sign_test(samp, mu0) + sign_test.__doc__ = _sign_test_doc + #TODO: There must be a better way but formating the stats of a fuction that + # returns 2 values is a problem. + #def sign_test_m(samp,mu0=0): + #return self.sign_test(samp,mu0)[0] + #def sign_test_p(samp,mu0=0): + #return self.sign_test(samp,mu0)[1] + +if __name__ == "__main__": + #unittest.main() + t1 = Describe(data4) + #print(t1.summary(stats='all')) + noperc = ['obs', 'mean', 'std', 'min', 'max', 'ptp', #'mode', #'var', + 'median', 'skew', 'uss', 'kurtosis'] + #TODO: mode var raise exception, + #TODO: percentile writes list in cell (?), huge wide format + print(t1.summary(stats=noperc)) + print(t1.summary()) + print(t1.summary( orientation='varcols')) + print(t1.summary(stats=['mean', 'median', 'min', 'max'], orientation=('varcols'))) + print(t1.summary(stats='all')) + + + import unittest + data1 = np.array([(1,2,'a','aa'), + (2,3,'b','bb'), + (2,4,'b','cc')], + dtype = [('alpha',float), ('beta', int), + ('gamma', '|S1'), ('delta', '|S2')]) + data2 = np.array([(1,2), + (2,3), + (2,4)], + dtype = [('alpha',float), ('beta', float)]) + + data3 = np.array([[1,2,4,4], + [2,3,3,3], + [2,4,4,3]], dtype=float) + + data4 = np.array([[1,2,3,4,5,6], + [6,5,4,3,2,1], + [9,9,9,9,9,9]]) + + class TestSimpleTable(unittest.TestCase): + #from statsmodels.iolib.table import SimpleTable, default_txt_fmt + + def test_basic_1(self): + print('test_basic_1') + t1 = Describe(data1) + print(t1.summary()) + + + def test_basic_2(self): + print('test_basic_2') + t2 = Describe(data2) + print(t2.summary()) + + def test_basic_3(self): + print('test_basic_3') + t1 = Describe(data3) + print(t1.summary()) + + def test_basic_4(self): + print('test_basic_4') + t1 = Describe(data4) + print(t1.summary()) + + def test_basic_1a(self): + print('test_basic_1a') + t1 = Describe(data1) + print(t1.summary(stats='basic', columns=['alpha'])) + + def test_basic_1b(self): + print('test_basic_1b') + t1 = Describe(data1) + print(t1.summary(stats='basic', columns='all')) + + def test_basic_2a(self): + print('test_basic_2a') + t2 = Describe(data2) + print(t2.summary(stats='all')) + + def test_basic_3(aself): + t1 = Describe(data3) + print(t1.summary(stats='all')) + + def test_basic_4a(self): + t1 = Describe(data4) + print(t1.summary(stats='all')) + + + diff --git a/statsmodels/stats/diagnostic.py b/statsmodels/stats/diagnostic.py new file mode 100644 index 0000000..78c7fa8 --- /dev/null +++ b/statsmodels/stats/diagnostic.py @@ -0,0 +1,13 @@ +#collect some imports of verified (at least one example) functions +from statsmodels.sandbox.stats.diagnostic import ( + acorr_ljungbox, breaks_cusumolsresid, breaks_hansen, CompareCox, CompareJ, + compare_cox, compare_j, het_breuschpagan, HetGoldfeldQuandt, + het_goldfeldquandt, het_arch, + het_white, recursive_olsresiduals, acorr_breusch_godfrey, + linear_harvey_collier, linear_rainbow, linear_lm, + unitroot_adf, + het_breushpagan, acorr_breush_godfrey # deprecated because of misspelling + ) + +from ._lilliefors import kstest_normal, lilliefors, lillifors # lillifors is deprecated +from ._adnorm import normal_ad diff --git a/statsmodels/stats/gof.py b/statsmodels/stats/gof.py new file mode 100644 index 0000000..1ae102e --- /dev/null +++ b/statsmodels/stats/gof.py @@ -0,0 +1,487 @@ +'''extra statistical function and helper functions + +contains: + +* goodness-of-fit tests + - powerdiscrepancy + - gof_chisquare_discrete + - gof_binning_discrete + + + +Author: Josef Perktold +License : BSD-3 + +changes +------- +2013-02-25 : add chisquare_power, effectsize and "value" + +''' +from statsmodels.compat.python import range, lrange, string_types +import numpy as np +from scipy import stats + + +# copied from regression/stats.utils +def powerdiscrepancy(observed, expected, lambd=0.0, axis=0, ddof=0): + """Calculates power discrepancy, a class of goodness-of-fit tests + as a measure of discrepancy between observed and expected data. + + This contains several goodness-of-fit tests as special cases, see the + describtion of lambd, the exponent of the power discrepancy. The pvalue + is based on the asymptotic chi-square distribution of the test statistic. + + freeman_tukey: + D(x|\theta) = \sum_j (\sqrt{x_j} - \sqrt{e_j})^2 + + Parameters + ---------- + o : Iterable + Observed values + e : Iterable + Expected values + lambd : float or string + * float : exponent `a` for power discrepancy + * 'loglikeratio': a = 0 + * 'freeman_tukey': a = -0.5 + * 'pearson': a = 1 (standard chisquare test statistic) + * 'modified_loglikeratio': a = -1 + * 'cressie_read': a = 2/3 + * 'neyman' : a = -2 (Neyman-modified chisquare, reference from a book?) + axis : int + axis for observations of one series + ddof : int + degrees of freedom correction, + + Returns + ------- + D_obs : Discrepancy of observed values + pvalue : pvalue + + + References + ---------- + Cressie, Noel and Timothy R. C. Read, Multinomial Goodness-of-Fit Tests, + Journal of the Royal Statistical Society. Series B (Methodological), + Vol. 46, No. 3 (1984), pp. 440-464 + + Campbell B. Read: Freeman-Tukey chi-squared goodness-of-fit statistics, + Statistics & Probability Letters 18 (1993) 271-278 + + Nobuhiro Taneichi, Yuri Sekiya, Akio Suzukawa, Asymptotic Approximations + for the Distributions of the Multinomial Goodness-of-Fit Statistics + under Local Alternatives, Journal of Multivariate Analysis 81, 335?359 (2002) + Steele, M. 1,2, C. Hurst 3 and J. Chaseling, Simulated Power of Discrete + Goodness-of-Fit Tests for Likert Type Data + + Examples + -------- + + >>> observed = np.array([ 2., 4., 2., 1., 1.]) + >>> expected = np.array([ 0.2, 0.2, 0.2, 0.2, 0.2]) + + for checking correct dimension with multiple series + + >>> powerdiscrepancy(np.column_stack((observed,observed)).T, 10*expected, lambd='freeman_tukey',axis=1) + (array([[ 2.745166, 2.745166]]), array([[ 0.6013346, 0.6013346]])) + >>> powerdiscrepancy(np.column_stack((observed,observed)).T, 10*expected,axis=1) + (array([[ 2.77258872, 2.77258872]]), array([[ 0.59657359, 0.59657359]])) + >>> powerdiscrepancy(np.column_stack((observed,observed)).T, 10*expected, lambd=0,axis=1) + (array([[ 2.77258872, 2.77258872]]), array([[ 0.59657359, 0.59657359]])) + >>> powerdiscrepancy(np.column_stack((observed,observed)).T, 10*expected, lambd=1,axis=1) + (array([[ 3., 3.]]), array([[ 0.5578254, 0.5578254]])) + >>> powerdiscrepancy(np.column_stack((observed,observed)).T, 10*expected, lambd=2/3.0,axis=1) + (array([[ 2.89714546, 2.89714546]]), array([[ 0.57518277, 0.57518277]])) + >>> powerdiscrepancy(np.column_stack((observed,observed)).T, expected, lambd=2/3.0,axis=1) + (array([[ 2.89714546, 2.89714546]]), array([[ 0.57518277, 0.57518277]])) + >>> powerdiscrepancy(np.column_stack((observed,observed)), expected, lambd=2/3.0, axis=0) + (array([[ 2.89714546, 2.89714546]]), array([[ 0.57518277, 0.57518277]])) + + each random variable can have different total count/sum + + >>> powerdiscrepancy(np.column_stack((observed,2*observed)), expected, lambd=2/3.0, axis=0) + (array([[ 2.89714546, 5.79429093]]), array([[ 0.57518277, 0.21504648]])) + >>> powerdiscrepancy(np.column_stack((observed,2*observed)), expected, lambd=2/3.0, axis=0) + (array([[ 2.89714546, 5.79429093]]), array([[ 0.57518277, 0.21504648]])) + >>> powerdiscrepancy(np.column_stack((2*observed,2*observed)), expected, lambd=2/3.0, axis=0) + (array([[ 5.79429093, 5.79429093]]), array([[ 0.21504648, 0.21504648]])) + >>> powerdiscrepancy(np.column_stack((2*observed,2*observed)), 20*expected, lambd=2/3.0, axis=0) + (array([[ 5.79429093, 5.79429093]]), array([[ 0.21504648, 0.21504648]])) + >>> powerdiscrepancy(np.column_stack((observed,2*observed)), np.column_stack((10*expected,20*expected)), lambd=2/3.0, axis=0) + (array([[ 2.89714546, 5.79429093]]), array([[ 0.57518277, 0.21504648]])) + >>> powerdiscrepancy(np.column_stack((observed,2*observed)), np.column_stack((10*expected,20*expected)), lambd=-1, axis=0) + (array([[ 2.77258872, 5.54517744]]), array([[ 0.59657359, 0.2357868 ]])) + + + """ + o = np.array(observed) + e = np.array(expected) + + if not isinstance(lambd, string_types): + a = lambd + else: + if lambd == 'loglikeratio': a = 0 + elif lambd == 'freeman_tukey': a = -0.5 + elif lambd == 'pearson': a = 1 + elif lambd == 'modified_loglikeratio': a = -1 + elif lambd == 'cressie_read': a = 2/3.0 + else: + raise ValueError('lambd has to be a number or one of ' + \ + 'loglikeratio, freeman_tukey, pearson, ' +\ + 'modified_loglikeratio or cressie_read') + + n = np.sum(o, axis=axis) + nt = n + if n.size>1: + n = np.atleast_2d(n) + if axis == 1: + nt = n.T # need both for 2d, n and nt for broadcasting + if e.ndim == 1: + e = np.atleast_2d(e) + if axis == 0: + e = e.T + + if np.all(np.sum(e, axis=axis) == n): + p = e/(1.0*nt) + elif np.all(np.sum(e, axis=axis) == 1): + p = e + e = nt * e + else: + raise ValueError('observed and expected need to have the same ' +\ + 'number of observations, or e needs to add to 1') + k = o.shape[axis] + if e.shape[axis] != k: + raise ValueError('observed and expected need to have the same ' +\ + 'number of bins') + + # Note: taken from formulas, to simplify cancel n + if a == 0: # log likelihood ratio + D_obs = 2*n * np.sum(o/(1.0*nt) * np.log(o/e), axis=axis) + elif a == -1: # modified log likelihood ratio + D_obs = 2*n * np.sum(e/(1.0*nt) * np.log(e/o), axis=axis) + else: + D_obs = 2*n/a/(a+1) * np.sum(o/(1.0*nt) * ((o/e)**a - 1), axis=axis) + + return D_obs, stats.chi2.sf(D_obs,k-1-ddof) + + + +#todo: need also binning for continuous distribution +# and separated binning function to be used for powerdiscrepancy + +def gof_chisquare_discrete(distfn, arg, rvs, alpha, msg): + '''perform chisquare test for random sample of a discrete distribution + + Parameters + ---------- + distname : string + name of distribution function + arg : sequence + parameters of distribution + alpha : float + significance level, threshold for p-value + + Returns + ------- + result : bool + 0 if test passes, 1 if test fails + + Notes + ----- + originally written for scipy.stats test suite, + still needs to be checked for standalone usage, insufficient input checking + may not run yet (after copy/paste) + + refactor: maybe a class, check returns, or separate binning from + test results + ''' + + # define parameters for test +## n=2000 + n = len(rvs) + nsupp = 20 + wsupp = 1.0/nsupp + +## distfn = getattr(stats, distname) +## np.random.seed(9765456) +## rvs = distfn.rvs(size=n,*arg) + + # construct intervals with minimum mass 1/nsupp + # intervalls are left-half-open as in a cdf difference + distsupport = lrange(max(distfn.a, -1000), min(distfn.b, 1000) + 1) + last = 0 + distsupp = [max(distfn.a, -1000)] + distmass = [] + for ii in distsupport: + current = distfn.cdf(ii,*arg) + if current - last >= wsupp-1e-14: + distsupp.append(ii) + distmass.append(current - last) + last = current + if current > (1-wsupp): + break + if distsupp[-1] < distfn.b: + distsupp.append(distfn.b) + distmass.append(1-last) + distsupp = np.array(distsupp) + distmass = np.array(distmass) + + # convert intervals to right-half-open as required by histogram + histsupp = distsupp+1e-8 + histsupp[0] = distfn.a + + # find sample frequencies and perform chisquare test + #TODO: move to compatibility.py + freq, hsupp = np.histogram(rvs,histsupp) + cdfs = distfn.cdf(distsupp,*arg) + (chis,pval) = stats.chisquare(np.array(freq),n*distmass) + + return chis, pval, (pval > alpha), 'chisquare - test for %s' \ + 'at arg = %s with pval = %s' % (msg,str(arg),str(pval)) + +# copy/paste, remove code duplication when it works +def gof_binning_discrete(rvs, distfn, arg, nsupp=20): + '''get bins for chisquare type gof tests for a discrete distribution + + Parameters + ---------- + rvs : array + sample data + distname : string + name of distribution function + arg : sequence + parameters of distribution + nsupp : integer + number of bins. The algorithm tries to find bins with equal weights. + depending on the distribution, the actual number of bins can be smaller. + + Returns + ------- + freq : array + empirical frequencies for sample; not normalized, adds up to sample size + expfreq : array + theoretical frequencies according to distribution + histsupp : array + bin boundaries for histogram, (added 1e-8 for numerical robustness) + + Notes + ----- + The results can be used for a chisquare test :: + + (chis,pval) = stats.chisquare(freq, expfreq) + + originally written for scipy.stats test suite, + still needs to be checked for standalone usage, insufficient input checking + may not run yet (after copy/paste) + + refactor: maybe a class, check returns, or separate binning from + test results + todo : + optimal number of bins ? (check easyfit), + recommendation in literature at least 5 expected observations in each bin + + ''' + + # define parameters for test +## n=2000 + n = len(rvs) + + wsupp = 1.0/nsupp + +## distfn = getattr(stats, distname) +## np.random.seed(9765456) +## rvs = distfn.rvs(size=n,*arg) + + # construct intervals with minimum mass 1/nsupp + # intervalls are left-half-open as in a cdf difference + distsupport = lrange(max(distfn.a, -1000), min(distfn.b, 1000) + 1) + last = 0 + distsupp = [max(distfn.a, -1000)] + distmass = [] + for ii in distsupport: + current = distfn.cdf(ii,*arg) + if current - last >= wsupp-1e-14: + distsupp.append(ii) + distmass.append(current - last) + last = current + if current > (1-wsupp): + break + if distsupp[-1] < distfn.b: + distsupp.append(distfn.b) + distmass.append(1-last) + distsupp = np.array(distsupp) + distmass = np.array(distmass) + + # convert intervals to right-half-open as required by histogram + histsupp = distsupp+1e-8 + histsupp[0] = distfn.a + + # find sample frequencies and perform chisquare test + freq,hsupp = np.histogram(rvs,histsupp) + #freq,hsupp = np.histogram(rvs,histsupp,new=True) + cdfs = distfn.cdf(distsupp,*arg) + return np.array(freq), n*distmass, histsupp + + +# -*- coding: utf-8 -*- +"""Extension to chisquare goodness-of-fit test + +Created on Mon Feb 25 13:46:53 2013 + +Author: Josef Perktold +License: BSD-3 +""" + + + +def chisquare(f_obs, f_exp=None, value=0, ddof=0, return_basic=True): + '''chisquare goodness-of-fit test + + The null hypothesis is that the distance between the expected distribution + and the observed frequencies is ``value``. The alternative hypothesis is + that the distance is larger than ``value``. ``value`` is normalized in + terms of effect size. + + The standard chisquare test has the null hypothesis that ``value=0``, that + is the distributions are the same. + + + Notes + ----- + The case with value greater than zero is similar to an equivalence test, + that the exact null hypothesis is replaced by an approximate hypothesis. + However, TOST "reverses" null and alternative hypothesis, while here the + alternative hypothesis is that the distance (divergence) is larger than a + threshold. + + References + ---------- + McLaren, ... + Drost,... + + See Also + -------- + powerdiscrepancy + scipy.stats.chisquare + + ''' + + f_obs = np.asarray(f_obs) + n_bins = len(f_obs) + nobs = f_obs.sum(0) + if f_exp is None: + # uniform distribution + f_exp = np.empty(n_bins, float) + f_exp.fill(nobs / float(n_bins)) + + f_exp = np.asarray(f_exp, float) + + chisq = ((f_obs - f_exp)**2 / f_exp).sum(0) + if value == 0: + pvalue = stats.chi2.sf(chisq, n_bins - 1 - ddof) + else: + pvalue = stats.ncx2.sf(chisq, n_bins - 1 - ddof, value**2 * nobs) + + if return_basic: + return chisq, pvalue + else: + return chisq, pvalue #TODO: replace with TestResults + + +def chisquare_power(effect_size, nobs, n_bins, alpha=0.05, ddof=0): + '''power of chisquare goodness of fit test + + effect size is sqrt of chisquare statistic divided by nobs + + Parameters + ---------- + effect_size : float + This is the deviation from the Null of the normalized chi_square + statistic. This follows Cohen's definition (sqrt). + nobs : int or float + number of observations + n_bins : int (or float) + number of bins, or points in the discrete distribution + alpha : float in (0,1) + significance level of the test, default alpha=0.05 + + Returns + ------- + power : float + power of the test at given significance level at effect size + + Notes + ----- + This function also works vectorized if all arguments broadcast. + + This can also be used to calculate the power for power divergence test. + However, for the range of more extreme values of the power divergence + parameter, this power is not a very good approximation for samples of + small to medium size (Drost et al. 1989) + + References + ---------- + Drost, ... + + See Also + -------- + chisquare_effectsize + statsmodels.stats.GofChisquarePower + + ''' + crit = stats.chi2.isf(alpha, n_bins - 1 - ddof) + power = stats.ncx2.sf(crit, n_bins - 1 - ddof, effect_size**2 * nobs) + return power + + +def chisquare_effectsize(probs0, probs1, correction=None, cohen=True, axis=0): + '''effect size for a chisquare goodness-of-fit test + + Parameters + ---------- + probs0 : array_like + probabilities or cell frequencies under the Null hypothesis + probs1 : array_like + probabilities or cell frequencies under the Alternative hypothesis + probs0 and probs1 need to have the same length in the ``axis`` dimension. + and broadcast in the other dimensions + Both probs0 and probs1 are normalized to add to one (in the ``axis`` + dimension). + correction : None or tuple (nobs, df) + If None, then the effect size is the chisquare statistic divide by + the number of observations. + If the correction is a tuple (nobs, df), then the effectsize is + corrected to have less bias and a smaller variance. However, the + correction can make the effectsize negative. In that case, the + effectsize is set to zero. + Pederson and Johnson (1990) as referenced in McLaren et all. (1994) + cohen : bool + If True, then the square root is returned as in the definition of the + effect size by Cohen (1977), If False, then the original effect size + is returned. + axis : int + If the probability arrays broadcast to more than 1 dimension, then + this is the axis over which the sums are taken. + + Returns + ------- + effectsize : float + effect size of chisquare test + + ''' + probs0 = np.asarray(probs0, float) + probs1 = np.asarray(probs1, float) + probs0 = probs0 / probs0.sum(axis) + probs1 = probs1 / probs1.sum(axis) + + d2 = ((probs1 - probs0)**2 / probs0).sum(axis) + + if correction is not None: + nobs, df = correction + diff = ((probs1 - probs0) / probs0).sum(axis) + d2 = np.maximum((d2 * nobs - diff - df) / (nobs - 1.), 0) + + if cohen: + return np.sqrt(d2) + else: + return d2 diff --git a/statsmodels/stats/inter_rater.py b/statsmodels/stats/inter_rater.py new file mode 100644 index 0000000..ed11106 --- /dev/null +++ b/statsmodels/stats/inter_rater.py @@ -0,0 +1,487 @@ +# -*- coding: utf-8 -*- +"""Inter Rater Agreement + +contains +-------- +fleiss_kappa +cohens_kappa + +aggregate_raters: + helper function to get data into fleiss_kappa format +to_table: + helper function to create contingency table, can be used for cohens_kappa + +Created on Thu Dec 06 22:57:56 2012 +Author: Josef Perktold +License: BSD-3 + +References +---------- +Wikipedia: kappa's initially based on these two pages + http://en.wikipedia.org/wiki/Fleiss%27_kappa + http://en.wikipedia.org/wiki/Cohen's_kappa +SAS-Manual : formulas for cohens_kappa, especially variances +see also R package irr + +TODO +---- +standard errors and hypothesis tests for fleiss_kappa +other statistics and tests, + in R package irr, SAS has more +inconsistent internal naming, changed variable names as I added more + functionality +convenience functions to create required data format from raw data + DONE + +""" + + +import numpy as np +from scipy import stats #get rid of this? need only norm.sf + + +class ResultsBunch(dict): + + template = '%r' + + def __init__(self, **kwds): + dict.__init__(self, kwds) + self.__dict__ = self + self._initialize() + + def _initialize(self): + pass + + def __str__(self): + return self.template % self + +def _int_ifclose(x, dec=1, width=4): + '''helper function for creating result string for int or float + + only dec=1 and width=4 is implemented + + Parameters + ---------- + x : int or float + value to format + dec : 1 + number of decimals to print if x is not an integer + width : 4 + width of string + + Returns + ------- + xint : int or float + x is converted to int if it is within 1e-14 of an integer + x_string : str + x formatted as string, either '%4d' or '%4.1f' + + ''' + xint = int(round(x)) + if np.max(np.abs(xint - x)) < 1e-14: + return xint, '%4d' % xint + else: + return x, '%4.1f' % x + + +def aggregate_raters(data, n_cat=None): + '''convert raw data with shape (subject, rater) to (subject, cat_counts) + + brings data into correct format for fleiss_kappa + + bincount will raise exception if data cannot be converted to integer. + + Parameters + ---------- + data : array_like, 2-Dim + data containing category assignment with subjects in rows and raters + in columns. + n_cat : None or int + If None, then the data is converted to integer categories, + 0,1,2,...,n_cat-1. Because of the relabeling only category levels + with non-zero counts are included. + If this is an integer, then the category levels in the data are already + assumed to be in integers, 0,1,2,...,n_cat-1. In this case, the + returned array may contain columns with zero count, if no subject + has been categorized with this level. + + Returns + ------- + arr : nd_array, (n_rows, n_cat) + Contains counts of raters that assigned a category level to individuals. + Subjects are in rows, category levels in columns. + + + ''' + data = np.asarray(data) + n_rows = data.shape[0] + if n_cat is None: + #I could add int conversion (reverse_index) to np.unique + cat_uni, cat_int = np.unique(data.ravel(), return_inverse=True) + n_cat = len(cat_uni) + data_ = cat_int.reshape(data.shape) + else: + cat_uni = np.arange(n_cat) #for return only, assumed cat levels + data_ = data + + tt = np.zeros((n_rows, n_cat), int) + for idx, row in enumerate(data_): + ro = np.bincount(row) + tt[idx, :len(ro)] = ro + + return tt, cat_uni + +def to_table(data, bins=None): + '''convert raw data with shape (subject, rater) to (rater1, rater2) + + brings data into correct format for cohens_kappa + + Parameters + ---------- + data : array_like, 2-Dim + data containing category assignment with subjects in rows and raters + in columns. + bins : None, int or tuple of array_like + If None, then the data is converted to integer categories, + 0,1,2,...,n_cat-1. Because of the relabeling only category levels + with non-zero counts are included. + If this is an integer, then the category levels in the data are already + assumed to be in integers, 0,1,2,...,n_cat-1. In this case, the + returned array may contain columns with zero count, if no subject + has been categorized with this level. + If bins are a tuple of two array_like, then the bins are directly used + by ``numpy.histogramdd``. This is useful if we want to merge categories. + + Returns + ------- + arr : nd_array, (n_cat, n_cat) + Contingency table that contains counts of category level with rater1 + in rows and rater2 in columns. + + Notes + ----- + no NaN handling, delete rows with missing values + + This works also for more than two raters. In that case the dimension of + the resulting contingency table is the same as the number of raters + instead of 2-dimensional. + + ''' + + data = np.asarray(data) + n_rows, n_cols = data.shape + if bins is None: + #I could add int conversion (reverse_index) to np.unique + cat_uni, cat_int = np.unique(data.ravel(), return_inverse=True) + n_cat = len(cat_uni) + data_ = cat_int.reshape(data.shape) + bins_ = np.arange(n_cat+1) - 0.5 + #alternative implementation with double loop + #tt = np.asarray([[(x == [i,j]).all(1).sum() for j in cat_uni] + # for i in cat_uni] ) + #other altervative: unique rows and bincount + elif np.isscalar(bins): + bins_ = np.arange(bins+1) - 0.5 + data_ = data + else: + bins_ = bins + data_ = data + + + tt = np.histogramdd(data_, (bins_,)*n_cols) + + return tt[0], bins_ + +def fleiss_kappa(table): + '''Fleiss' kappa multi-rater agreement measure + + Parameters + ---------- + table : array_like, 2-D + assumes subjects in rows, and categories in columns + + Returns + ------- + kappa : float + Fleiss's kappa statistic for inter rater agreement + + Notes + ----- + coded from Wikipedia page + http://en.wikipedia.org/wiki/Fleiss%27_kappa + + no variance or tests yet + + ''' + table = 1.0 * np.asarray(table) #avoid integer division + n_sub, n_cat = table.shape + n_total = table.sum() + n_rater = table.sum(1) + n_rat = n_rater.max() + #assume fully ranked + assert n_total == n_sub * n_rat + + #marginal frequency of categories + p_cat = table.sum(0) / n_total + + table2 = table * table + p_rat = (table2.sum(1) - n_rat) / (n_rat * (n_rat - 1.)) + p_mean = p_rat.mean() + + p_mean_exp = (p_cat*p_cat).sum() + + kappa = (p_mean - p_mean_exp) / (1- p_mean_exp) + return kappa + + +def cohens_kappa(table, weights=None, return_results=True, wt=None): + '''Compute Cohen's kappa with variance and equal-zero test + + Parameters + ---------- + table : array_like, 2-Dim + square array with results of two raters, one rater in rows, second + rater in columns + weights : array_like + The interpretation of weights depends on the wt argument. + If both are None, then the simple kappa is computed. + see wt for the case when wt is not None + If weights is two dimensional, then it is directly used as a weight + matrix. For computing the variance of kappa, the maximum of the + weights is assumed to be smaller or equal to one. + TODO: fix conflicting definitions in the 2-Dim case for + wt : None or string + If wt and weights are None, then the simple kappa is computed. + If wt is given, but weights is None, then the weights are set to + be [0, 1, 2, ..., k]. + If weights is a one-dimensional array, then it is used to construct + the weight matrix given the following options. + + wt in ['linear', 'ca' or None] : use linear weights, Cicchetti-Allison + actual weights are linear in the score "weights" difference + wt in ['quadratic', 'fc'] : use linear weights, Fleiss-Cohen + actual weights are squared in the score "weights" difference + wt = 'toeplitz' : weight matrix is constructed as a toeplitz matrix + from the one dimensional weights. + + return_results : bool + If True (default), then an instance of KappaResults is returned. + If False, then only kappa is computed and returned. + + Returns + ------- + results or kappa + If return_results is True (default), then a results instance with all + statistics is returned + If return_results is False, then only kappa is calculated and returned. + + Notes + ----- + There are two conflicting definitions of the weight matrix, Wikipedia + versus SAS manual. However, the computation are invariant to rescaling + of the weights matrix, so there is no difference in the results. + + Weights for 'linear' and 'quadratic' are interpreted as scores for the + categories, the weights in the computation are based on the pairwise + difference between the scores. + Weights for 'toeplitz' are a interpreted as weighted distance. The distance + only depends on how many levels apart two entries in the table are but + not on the levels themselves. + + example: + + weights = '0, 1, 2, 3' and wt is either linear or toeplitz means that the + weighting only depends on the simple distance of levels. + + weights = '0, 0, 1, 1' and wt = 'linear' means that the first two levels + are zero distance apart and the same for the last two levels. This is + the sampe as forming two aggregated levels by merging the first two and + the last two levels, respectively. + + weights = [0, 1, 2, 3] and wt = 'quadratic' is the same as squaring these + weights and using wt = 'toeplitz'. + + References + ---------- + Wikipedia + SAS Manual + + ''' + table = np.asarray(table, float) #avoid integer division + agree = np.diag(table).sum() + nobs = table.sum() + probs = table / nobs + freqs = probs #TODO: rename to use freqs instead of probs for observed + probs_diag = np.diag(probs) + freq_row = table.sum(1) / nobs + freq_col = table.sum(0) / nobs + prob_exp = freq_col * freq_row[:, None] + assert np.allclose(prob_exp.sum(), 1) + #print prob_exp.sum() + agree_exp = np.diag(prob_exp).sum() #need for kappa_max + if weights is None and wt is None: + kind = 'Simple' + kappa = (agree / nobs - agree_exp) / (1 - agree_exp) + + if return_results: + #variance + term_a = probs_diag * (1 - (freq_row + freq_col) * (1 - kappa))**2 + term_a = term_a.sum() + term_b = probs * (freq_col[:, None] + freq_row)**2 + d_idx = np.arange(table.shape[0]) + term_b[d_idx, d_idx] = 0 #set diagonal to zero + term_b = (1 - kappa)**2 * term_b.sum() + term_c = (kappa - agree_exp * (1-kappa))**2 + var_kappa = (term_a + term_b - term_c) / (1 - agree_exp)**2 / nobs + #term_c = freq_col * freq_row[:, None] * (freq_col + freq_row[:,None]) + term_c = freq_col * freq_row * (freq_col + freq_row) + var_kappa0 = (agree_exp + agree_exp**2 - term_c.sum()) + var_kappa0 /= (1 - agree_exp)**2 * nobs + + else: + if weights is None: + weights = np.arange(table.shape[0]) + #weights follows the Wikipedia definition, not the SAS, which is 1 - + kind = 'Weighted' + weights = np.asarray(weights, float) + if weights.ndim == 1: + if wt in ['ca', 'linear', None]: + weights = np.abs(weights[:, None] - weights) / \ + (weights[-1] - weights[0]) + elif wt in ['fc', 'quadratic']: + weights = (weights[:, None] - weights)**2 / \ + (weights[-1] - weights[0])**2 + elif wt == 'toeplitz': + #assume toeplitz structure + from scipy.linalg import toeplitz + #weights = toeplitz(np.arange(table.shape[0])) + weights = toeplitz(weights) + else: + raise ValueError('wt option is not known') + else: + rows, cols = table.shape + if (table.shape != weights.shape): + raise ValueError('weights are not square') + #this is formula from Wikipedia + kappa = 1 - (weights * table).sum() / nobs / (weights * prob_exp).sum() + #TODO: add var_kappa for weighted version + if return_results: + var_kappa = np.nan + var_kappa0 = np.nan + #switch to SAS manual weights, problem if user specifies weights + #w is negative in some examples, + #but weights is scale invariant in examples and rough check of source + w = 1. - weights + w_row = (freq_col * w).sum(1) + w_col = (freq_row[:, None] * w).sum(0) + agree_wexp = (w * freq_col * freq_row[:, None]).sum() + term_a = freqs * (w - (w_col + w_row[:, None]) * (1 - kappa))**2 + fac = 1. / ((1 - agree_wexp)**2 * nobs) + var_kappa = term_a.sum() - (kappa - agree_wexp * (1 - kappa))**2 + var_kappa *= fac + + freqse = freq_col * freq_row[:, None] + var_kappa0 = (freqse * (w - (w_col + w_row[:, None]))**2).sum() + var_kappa0 -= agree_wexp**2 + var_kappa0 *= fac + + kappa_max = (np.minimum(freq_row, freq_col).sum() - agree_exp) / \ + (1 - agree_exp) + + if return_results: + res = KappaResults( kind=kind, + kappa=kappa, + kappa_max=kappa_max, + weights=weights, + var_kappa=var_kappa, + var_kappa0=var_kappa0 + ) + return res + else: + return kappa + + +_kappa_template = '''\ + %(kind)s Kappa Coefficient + -------------------------------- + Kappa %(kappa)6.4f + ASE %(std_kappa)6.4f + %(alpha_ci)s%% Lower Conf Limit %(kappa_low)6.4f + %(alpha_ci)s%% Upper Conf Limit %(kappa_upp)6.4f + + Test of H0: %(kind)s Kappa = 0 + + ASE under H0 %(std_kappa0)6.4f + Z %(z_value)6.4f + One-sided Pr > Z %(pvalue_one_sided)6.4f + Two-sided Pr > |Z| %(pvalue_two_sided)6.4f +''' + +''' + Weighted Kappa Coefficient + -------------------------------- + Weighted Kappa 0.4701 + ASE 0.1457 + 95% Lower Conf Limit 0.1845 + 95% Upper Conf Limit 0.7558 + + Test of H0: Weighted Kappa = 0 + + ASE under H0 0.1426 + Z 3.2971 + One-sided Pr > Z 0.0005 + Two-sided Pr > |Z| 0.0010 +''' + + +class KappaResults(ResultsBunch): + '''Results for Cohen's kappa + + Attributes + ---------- + kappa : cohen's kappa + var_kappa : variance of kappa + std_kappa : standard deviation of kappa + alpha : one-sided probability for confidence interval + kappa_low : lower (1-alpha) confidence limit + kappa_upp : upper (1-alpha) confidence limit + var_kappa0 : variance of kappa under H0: kappa=0 + std_kappa0 : standard deviation of kappa under H0: kappa=0 + z_value : test statistic for H0: kappa=0, is standard normal distributed + pvalue_one_sided : one sided p-value for H0: kappa=0 and H1: kappa>0 + pvalue_two_sided : two sided p-value for H0: kappa=0 and H1: kappa!=0 + distribution_kappa : asymptotic normal distribution of kappa + distribution_zero_null : asymptotic normal distribution of kappa under + H0: kappa=0 + + The confidence interval for kappa and the statistics for the test of + H0: kappa=0 are based on the asymptotic normal distribution of kappa. + + ''' + + template = _kappa_template + + def _initialize(self): + if not 'alpha' in self: + self['alpha'] = 0.025 + self['alpha_ci'] = _int_ifclose(100 - 0.025 * 200)[1] + + self['std_kappa'] = np.sqrt(self['var_kappa']) + self['std_kappa0'] = np.sqrt(self['var_kappa0']) + + self['z_value'] = self['kappa'] / self['std_kappa0'] + + self['pvalue_one_sided'] = stats.norm.sf(self['z_value']) + self['pvalue_two_sided'] = stats.norm.sf(np.abs(self['z_value'])) * 2 + + delta = stats.norm.isf(self['alpha']) * self['std_kappa'] + self['kappa_low'] = self['kappa'] - delta + self['kappa_upp'] = self['kappa'] + delta + self['distribution_kappa'] = stats.norm(loc=self['kappa'], + scale=self['std_kappa']) + self['distribution_zero_null'] = stats.norm(loc=0, + scale=self['std_kappa0']) + + def __str__(self): + return self.template % self + diff --git a/statsmodels/stats/libqsturng/CH.r b/statsmodels/stats/libqsturng/CH.r new file mode 100644 index 0000000..38063ea --- /dev/null +++ b/statsmodels/stats/libqsturng/CH.r @@ -0,0 +1,92 @@ +% Copyright (c) 2011, Roger Lew BSD [see LICENSE.txt] +% This software is funded in part by NIH Grant P20 RR016454. + + +% This is a collection of scripts used to generate C-H comparisons +% for qsturng. As you can probably guess, my R's skills aren't all that good. + +setwd('D:\\USERS\\roger\\programming\\python\\development\\qsturng') + +ps = seq(length=100, from=.5, to=.999) + +for (r in c(2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,28,29,30,35,40,50,60,70,80,90,100,200)) { + for (v in c(2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20, + 22,24,26,30,35,40,50,60,90,120,240,480,1e38)) { + m = qtukey(ps, r, v) + fname = sprintf('CH_r=%i,v=%.0f.dat',r,v) + print(fname) + write(rbind(ps, m), + file=fname, + ncolumns=2, + append=FALSE, + sep=',') + } +} + +rs = c(2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,30,40,60,80,100) + +for (v in c(2,3,4,5,6,7,8,9,10,11,12,13,14,15,16, + 17,18,19,20,24,30,40,60,120,1e38)) { + m = qtukey(0.30, rs, v) + fname = sprintf('CH_p30.dat') + print(fname) + write(rbind(m), + file=fname, + ncolumns=26, + append=TRUE, + sep=' ') +} + +for i in +for (v in c(2,3,4,5,6,7,8,9,10,11,12,13,14,15,16, + 17,18,19,20,24,30,40,60,120,1e38)) { + m = qtukey(0.675, rs, v) + fname = sprintf('CH_p675.dat',r,v) + print(fname) + write(rbind(m), + file=fname, + ncolumns=26, + append=TRUE, + sep=' ') +} + +for (v in c(2,3,4,5,6,7,8,9,10,11,12,13,14,15,16, + 17,18,19,20,24,30,40,60,120,1e38)) { + m = qtukey(0.75, rs, v) + fname = sprintf('CH_p75.dat',r,v) + print(fname) + write(rbind(m), + file=fname, + ncolumns=26, + append=TRUE, + sep=' ') +} + +for (v in c(2,3,4,5,6,7,8,9,10,11,12,13,14,15,16, + 17,18,19,20,24,30,40,60,120,1e38)) { + m = qtukey(0.975, rs, v) + fname = sprintf('CH_p975.dat') + print(fname) + write(rbind(m), + file=fname, + ncolumns=26, + append=TRUE, + sep=' ') +} + +i = 0; +for (i in 0:9999) { + p = runif(1, .5, .95); + r = sample(2:100, 1); + v = runif(1, 2, 1000); + q = qtukey(p,r,v); + if (!is.nan(q)) { + write(c(p,r,v,q), + file='bootleg.dat', + ncolumns=4, + append=TRUE, + sep=','); + i = i + 1; + } +} \ No newline at end of file diff --git a/statsmodels/stats/libqsturng/LICENSE.txt b/statsmodels/stats/libqsturng/LICENSE.txt new file mode 100644 index 0000000..7d45ee4 --- /dev/null +++ b/statsmodels/stats/libqsturng/LICENSE.txt @@ -0,0 +1,29 @@ +Copyright (c) 2011, Roger Lew [see LICENSE.txt] +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of the organizations affiliated with the + contributors or the names of its contributors themselves may be + used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. diff --git a/statsmodels/stats/libqsturng/__init__.py b/statsmodels/stats/libqsturng/__init__.py new file mode 100644 index 0000000..1afd417 --- /dev/null +++ b/statsmodels/stats/libqsturng/__init__.py @@ -0,0 +1,5 @@ + +from .qsturng_ import psturng, qsturng, p_keys, v_keys + +from numpy.testing import Tester +test = Tester().test diff --git a/statsmodels/stats/libqsturng/make_tbls.py b/statsmodels/stats/libqsturng/make_tbls.py new file mode 100644 index 0000000..f9656c0 --- /dev/null +++ b/statsmodels/stats/libqsturng/make_tbls.py @@ -0,0 +1,467 @@ +"""this script builds the T table and A table for the upper + quantile stundentized range algorithm""" +from statsmodels.compat.python import iterkeys, lrange, lmap, zip +import math +import scipy.stats +from scipy.optimize import leastsq + +import numpy as np +from statsmodels.compat.collections import OrderedDict +from numpy.random import random + +# The values for p in [.5, .75, .9, .95, .975, .99, .995, .999] +# were pulled from: +# http://www.stata.com/stb/stb46/dm64/sturng.pdf +# +# Values for p in [.1, .675, .8, .85] were calculated using R's qtukey function +# +# the table was programmed by Gleason and extends Harter's (1960) table +# using the Copenhaver & Holland (1988) algorithm (C&H). Gleason found +# that the 4th significant digit of the C&H differed from Harter's +# tables on about 20% of the values. Gleason states this was do to +# consevative rounding by Harter. In those event the table reflects +# Harter's orginal approximations. + +q0100 = """\ +2 0.2010022 0.6351172 0.9504689 1.179321 1.354691 1.495126 1.611354 1.709984 1.795325 1.87032 1.937057 1.997068 2.051505 2.101256 2.147016 2.189342 2.228683 2.265408 2.299823 2.558612 2.729718 2.95625 3.184742938 3.398609188 +3 0.193179 0.6294481 0.9564746 1.19723 1.383028 1.532369 1.656225 1.761451 1.852559 1.93265 2.003933 2.068034 2.126178 2.179312 2.228177 2.273367 2.315364 2.354561 2.391287 2.667213 2.849389 3.009265469 3.237758406 3.451624656 +4 0.1892648 0.6266441 0.9606115 1.2089 1.401557 1.55691 1.686009 1.795829 1.890994 1.974697 2.049222 2.116253 2.177065 2.232641 2.283754 2.331023 2.37495 2.415949 2.454361 2.742846 2.933173 3.062280938 3.290773875 3.504640125 +5 0.1869239 0.6249713 0.963532 1.217021 1.414548 1.574255 1.707205 1.820437 1.91864 2.005066 2.082048 2.151312 2.214162 2.271609 2.324449 2.37332 2.418737 2.461128 2.500844 2.7991 2.9958 3.115296406 3.343789344 3.557655594 +6 0.185369 0.6238602 0.9656833 1.22298 1.424151 1.587166 1.723076 1.838955 1.939532 2.028098 2.107021 2.178053 2.242524 2.301465 2.355686 2.40584 2.452454 2.495964 2.536731 2.842892 3.027993254 3.168311875 3.396804813 3.610671063 +7 0.1842618 0.6230685 0.9673274 1.227534 1.431536 1.597154 1.735417 1.853415 1.955904 2.046203 2.126704 2.19918 2.264979 2.325144 2.380502 2.431713 2.479315 2.52375 2.565387 2.878126 3.060186557 3.221327344 3.449820281 3.663686531 +8 0.1834338 0.6224757 0.9686225 1.231126 1.437392 1.605113 1.745294 1.86503 1.969097 2.060832 2.142645 2.216325 2.283234 2.344427 2.400739 2.45284 2.501275 2.546491 2.588864 2.861237 3.092379859 3.274342813 3.50283575 3.716702 +9 0.1827912 0.6220153 0.969668 1.23403 1.442149 1.611608 1.753382 1.874572 1.979964 2.07291 2.155833 2.230535 2.298388 2.360458 2.417585 2.470448 2.519597 2.565484 2.608488 2.871492 3.1631665 3.362394 3.613696 3.7452106 +10 0.1822783 0.6216474 0.9705293 1.236426 1.446091 1.617009 1.76013 1.882554 1.989077 2.083059 2.166935 2.242517 2.311185 2.374011 2.431845 2.485368 2.535137 2.581607 2.625162 2.898717 3.1760535 3.45339 3.6807265 3.7737192 +11 0.1818593 0.6213467 0.9712507 1.238437 1.449411 1.621571 1.765847 1.889333 1.996831 2.091711 2.176415 2.252763 2.322141 2.38563 2.444082 2.498185 2.548497 2.59548 2.639519 2.923558 3.19971275 3.4758675 3.70202225 3.8022278 +12 0.1815106 0.6210962 0.9718637 1.240149 1.452244 1.625478 1.770753 1.895163 2.003512 2.099178 2.184609 2.26163 2.331635 2.395707 2.454706 2.509321 2.560115 2.607554 2.652022 2.94649 3.2224175 3.498345 3.7242725 3.8307364 +13 0.181216 0.6208845 0.9723908 1.241623 1.454692 1.62886 1.77501 1.900231 2.009331 2.10569 2.191763 2.269382 2.339943 2.404535 2.46402 2.519093 2.570318 2.618162 2.663015 2.967868 3.242456 3.517044 3.741632 3.859245 +14 0.1809637 0.620703 0.972849 1.242906 1.456827 1.631817 1.778739 1.904678 2.014444 2.11142 2.198067 2.276219 2.347278 2.412335 2.472257 2.52774 2.579352 2.627563 2.672763 2.987963 3.245505708 3.503048417 3.748851667 3.878849 +15 0.1807453 0.6205458 0.9732508 1.244033 1.458706 1.634424 1.782034 1.908613 2.018974 2.116503 2.203664 2.282296 2.353802 2.41928 2.479596 2.53545 2.587413 2.635954 2.681468 3.006982 3.275778125 3.489052833 3.758247778 3.896564 +16 0.1805544 0.6204084 0.973606 1.24503 1.460373 1.636741 1.784965 1.912119 2.023015 2.121043 2.208668 2.287733 2.359646 2.425503 2.486177 2.542369 2.59465 2.643493 2.689292 3.025091 3.281966688 3.49479125 3.763291 3.9179256 +17 0.1803861 0.6202871 0.9739223 1.245919 1.461861 1.638813 1.78759 1.915263 2.026643 2.125123 2.21317 2.292628 2.36491 2.431114 2.492114 2.548614 2.601186 2.650304 2.696365 3.032426 3.272395 3.50687125 3.77704 3.9392872 +18 0.1802366 0.6201793 0.9742057 1.246717 1.463198 1.640677 1.789955 1.918099 2.029919 2.128809 2.21724 2.297059 2.369678 2.436199 2.497498 2.55428 2.607118 2.656491 2.702792 3.039093 3.282026 3.586406 3.789645 3.9606488 +19 0.1801029 0.620083 0.9744612 1.247436 1.464405 1.642363 1.792096 1.920669 2.032891 2.132158 2.22094 2.301089 2.374017 2.44083 2.502404 2.559444 2.612529 2.662134 2.708658 3.045182 3.296680985 3.603883649 3.801248 3.974888443 +20 0.1799827 0.6199962 0.9746925 1.248088 1.465502 1.643895 1.794045 1.923011 2.035601 2.135212 2.224318 2.30477 2.377983 2.445065 2.506892 2.564173 2.617485 2.667306 2.714034 3.050762 3.311335993 3.621361325 3.788047375 3.989130221 +24 0.1796023 0.6197217 0.9754345 1.250184 1.469033 1.648844 1.800353 1.930604 2.044404 2.145153 2.235327 2.316784 2.390945 2.45892 2.521592 2.579673 2.633745 2.684289 2.731705 3.089271 3.325991 3.638839 3.77484675 4.003372 +30 0.1792227 0.6194474 0.9761909 1.252326 1.47266 1.653946 1.806877 1.938484 2.053567 2.155527 2.246844 2.329381 2.404562 2.473504 2.537093 2.596046 2.650947 2.702281 2.750452 3.088623 3.365526818 3.632653344 3.810852875 4.0480485 +40 0.1788439 0.6191733 0.976962 1.254517 1.476384 1.659208 1.813634 1.946672 2.063118 2.166372 2.258917 2.342618 2.418905 2.488898 2.553488 2.613394 2.669206 2.731569 2.770415 3.109261 3.405062637 3.629560516 3.846859 4.092725 +60 0.1784658 0.6188994 0.9777482 1.256759 1.480212 1.664639 1.820636 1.955191 2.07309 2.177731 2.271599 2.356562 2.434053 2.505196 2.570884 2.631843 2.688663 2.745483 2.802303 3.159123 3.406221516 3.626467688 3.90118925 4.1497775 +120 0.1780885 0.6186256 0.9785495 1.259052 1.484147 1.67025 1.827902 1.964066 2.083518 2.189653 2.284954 2.371292 2.450102 2.522511 2.589417 2.651546 2.71243375 2.763748 2.8156585 3.201588 3.459897 3.67055425 3.9555195 4.20683 +1e38 0.177712 0.6183521 0.9793662 1.261398 1.488195 1.676051 1.835449 1.973327 2.094446 2.202195 2.299057 2.386902 2.467168 2.540983 2.609248 2.677513 2.745778 2.787396 2.829014 3.236691 3.487830797 3.721309063 4.01874075 4.279424""" + +q0300 = """\ +2 0.6289521 1.248281 1.638496 1.916298 2.129504 2.301246 2.444313 2.566465 2.672747 2.766604 2.850494 2.926224 2.995161 3.05836 3.116655 3.170712 3.221076 3.268192 3.312433 3.647666 3.871606 4.170521 4.372227 4.52341 +3 0.5999117 1.209786 1.598235 1.875707 2.088948 2.260822 2.404037 2.52633 2.632732 2.726691 2.810665 2.886463 2.955453 3.018695 3.077022 3.131103 3.181483 3.228609 3.272854 3.607961 3.831649 4.130021 4.331231 4.48198 +4 0.5857155 1.19124 1.579749 1.858059 2.072245 2.245015 2.389043 2.512062 2.619115 2.713659 2.798159 2.874434 2.943859 3.007497 3.066189 3.120607 3.171298 3.218713 3.263228 3.600301 3.825208 4.125075 4.327208 4.478602 +5 0.5773226 1.18033 1.569213 1.84843 2.063579 2.237255 2.382108 2.505872 2.613597 2.708749 2.793803 2.870583 2.94047 3.004536 3.063622 3.118406 3.169439 3.217173 3.261987 3.601296 3.827646 4.129353 4.332665 4.48491 +6 0.5717854 1.173145 1.562427 1.842442 2.058433 2.232905 2.378487 2.502915 2.611243 2.706943 2.792499 2.869739 2.940051 3.004509 3.06396 3.119085 3.170435 3.218468 3.263562 3.604991 3.832733 4.136241 4.340726 4.493824 +7 0.5678608 1.168056 1.5577 1.838389 2.055092 2.230242 2.376451 2.501451 2.610302 2.706482 2.792477 2.870123 2.94081 3.005616 3.065391 3.120818 3.172464 3.220752 3.266098 3.609448 3.838467 4.143645 4.349225 4.503125 +8 0.5649349 1.164263 1.55422 1.835477 2.052781 2.228508 2.375251 2.500743 2.610046 2.706641 2.793019 2.871019 2.942034 3.007146 3.067207 3.122901 3.174787 3.223323 3.268893 3.61396 3.844133 4.150832 4.357416 4.512054 +9 0.56267 1.161326 1.551554 1.833289 2.051105 2.227323 2.374526 2.500442 2.610136 2.707092 2.793803 2.872112 2.943416 3.008796 3.069108 3.125039 3.177147 3.225893 3.27166 3.618262 3.849473 4.157551 4.365051 4.520364 +10 0.5608651 1.158985 1.549445 1.831589 2.049842 2.226484 2.374084 2.500369 2.610403 2.707674 2.794677 2.873258 2.944815 3.010432 3.070966 3.127106 3.179411 3.228343 3.274287 3.62226 3.854408 4.16298725 4.372072 4.51335807 +11 0.5593931 1.157076 1.547737 1.830233 2.048863 2.225872 2.373818 2.500424 2.610757 2.708305 2.795566 2.874386 2.946167 3.011994 3.072726 3.129052 3.181532 3.23063 3.276732 3.625936 3.8583805 4.1684235 4.378495 4.527370035 +12 0.5581697 1.155489 1.546325 1.829125 2.048085 2.225415 2.373664 2.500554 2.61115 2.708943 2.796432 2.875466 2.947446 3.01346 3.074368 3.13086 3.183497 3.232744 3.278987 3.629302 3.862353 4.17385975 4.384365 4.541382 +13 0.557137 1.154148 1.545138 1.828206 2.047454 2.225068 2.373584 2.500725 2.611555 2.709566 2.797258 2.876482 2.948641 3.014823 3.075889 3.13253 3.185309 3.23469 3.28106 3.63238 3.8663255 4.179296 4.3895105 4.547231 +14 0.5562535 1.153001 1.544127 1.82743 2.046934 2.224798 2.373553 2.500918 2.611956 2.710162 2.798038 2.877433 2.949752 3.016085 3.077294 3.134069 3.186976 3.236478 3.282963 3.635197 3.870298 4.183625 4.394656 4.552594 +15 0.5554892 1.152009 1.543255 1.826767 2.046499 2.224587 2.373555 2.50112 2.612347 2.710728 2.798768 2.878317 2.950781 3.017251 3.078589 3.135487 3.188509 3.238121 3.284712 3.637674 3.8733385 4.187597 4.399177 4.557525 +16 0.5548214 1.151142 1.542495 1.826194 2.04613 2.224419 2.373579 2.501325 2.612721 2.711261 2.799449 2.879139 2.951735 3.018329 3.079784 3.136793 3.189921 3.239634 3.28632 3.640151 3.876379 4.191252 4.40334 4.56207 +17 0.554233 1.150377 1.541828 1.825694 2.045813 2.224284 2.373618 2.501527 2.613077 2.711761 2.800085 2.879902 2.952618 3.019325 3.080888 3.137998 3.191223 3.241028 3.287802 3.642251 3.878959 4.1944965 4.407184 4.56627 +18 0.5537107 1.149699 1.541236 1.825254 2.04554 2.224175 2.373667 2.501725 2.613414 2.71223 2.800678 2.880611 2.953437 3.020248 3.081909 3.139113 3.192426 3.242315 3.28917 3.644351 3.881539 4.197741 4.410743 4.570162 +19 0.5532438 1.149092 1.540709 1.824864 2.045301 2.224086 2.373722 2.501915 2.613733 2.71267 2.801231 2.881271 2.954198 3.021104 3.082855 3.140145 3.19354 3.243507 3.290436 3.641213698 3.877674372 4.200632 4.414046 4.573776 +20 0.552824 1.148546 1.540235 1.824516 2.045091 2.224013 2.37378 2.502099 2.614034 2.713082 2.801747 2.881885 2.954905 3.0219 3.083734 3.141103 3.194574 3.244613 3.291611 3.647488349 3.885403686 4.203319 4.4207865 4.577142 +24 0.5514973 1.146821 1.538745 1.823433 2.044456 2.223827 2.374026 2.502754 2.615077 2.71449 2.8035 2.883965 2.957293 3.02458 3.086693 3.144327 3.198049 3.248329 3.295558 3.653763 3.893133 4.212396 4.427527 4.588561 +30 0.5501747 1.1451 1.537267 1.822378 2.04387 2.223711 2.374365 2.503527 2.616262 2.716064 2.805443 2.886257 2.959917 3.027519 3.089932 3.147852 3.201849 3.252391 3.29987 3.646771403 3.901009 4.201241112 4.423813037 4.57425581 +40 0.5488561 1.143384 1.535803 1.821351 2.043333 2.223667 2.3748 2.504422 2.617594 2.717812 2.807585 2.888774 2.962791 3.030734 3.093472 3.151703 3.205997 3.256824 3.304577 3.660754702 3.910106 4.223551056 4.431241019 4.602866405 +60 0.5475416 1.141671 1.53435 1.820353 2.042846 2.223698 2.375337 2.505445 2.619082 2.719743 2.809939 2.891531 2.965932 3.034243 3.097332 3.1559 3.210518 3.261657 3.30971 3.674738 3.919203 4.245861 4.438669 4.631477 +120 0.5462314 1.139963 1.532911 1.819385 2.04241 2.223806 2.375978 2.506602 2.620733 2.721868 2.812516 2.894541 2.969356 3.038064 3.101534 3.160468 3.215439 3.39400025 3.5725615 3.75112275 3.929684 4.256342 4.44915 4.641958 +1e38 0.5449254 1.138259 1.531485 1.818447 2.042028 2.223993 2.376728 2.507898 2.622556 2.724195 2.815328 2.897817 2.973079 3.042215 3.106097 3.165428 3.220399 3.39896025 3.5775215 3.75608275 3.934644 4.261302 4.45411 4.646918""" + +q0500 = """\ +2 1.155 1.908 2.377 2.713 2.973 3.184 3.361 3.513 3.645 3.762 3.867 3.963 4.049 4.129 4.203 4.271 4.335 4.394 4.451 4.878 5.165 5.549 5.810 6.006 +3 1.082 1.791 2.230 2.545 2.789 2.986 3.152 3.294 3.418 3.528 3.626 3.715 3.796 3.871 3.940 4.004 4.064 4.120 4.172 4.573 4.842 5.202 5.447 5.630 +4 1.048 1.736 2.163 2.468 2.704 2.895 3.055 3.193 3.313 3.419 3.515 3.601 3.680 3.752 3.819 3.881 3.939 3.993 4.044 4.432 4.693 5.043 5.279 5.457 +5 1.028 1.705 2.124 2.423 2.655 2.843 3.000 3.135 3.253 3.357 3.451 3.535 3.613 3.684 3.749 3.810 3.867 3.920 3.970 4.351 4.608 4.951 5.184 5.358 +6 1.015 1.684 2.098 2.394 2.623 2.808 2.964 3.097 3.213 3.317 3.409 3.493 3.569 3.639 3.704 3.764 3.820 3.873 3.922 4.299 4.552 4.891 5.121 5.294 +7 1.006 1.670 2.080 2.374 2.601 2.784 2.938 3.070 3.186 3.288 3.380 3.463 3.538 3.608 3.672 3.732 3.787 3.840 3.889 4.262 4.513 4.849 5.077 5.249 +8 .9990 1.659 2.067 2.359 2.584 2.767 2.919 3.051 3.165 3.267 3.358 3.440 3.515 3.584 3.648 3.708 3.763 3.815 3.863 4.234 4.484 4.818 5.045 5.215 +9 .9938 1.651 2.057 2.347 2.571 2.753 2.905 3.035 3.149 3.250 3.341 3.423 3.498 3.566 3.630 3.689 3.744 3.796 3.844 4.213 4.461 4.794 5.020 5.189 +10 .9897 1.645 2.049 2.338 2.561 2.742 2.893 3.023 3.137 3.237 3.328 3.409 3.484 3.552 3.615 3.674 3.729 3.780 3.829 4.196 4.443 4.775 5.000 5.168 +11 .9863 1.639 2.042 2.330 2.553 2.733 2.884 3.013 3.127 3.227 3.317 3.398 3.472 3.540 3.603 3.662 3.717 3.768 3.816 4.182 4.429 4.759 4.983 5.152 +12 .9836 1.635 2.037 2.324 2.546 2.726 2.876 3.005 3.118 3.218 3.308 3.389 3.463 3.531 3.594 3.652 3.706 3.757 3.805 4.171 4.417 4.746 4.970 5.138 +13 .9812 1.631 2.032 2.319 2.540 2.719 2.869 2.998 3.111 3.210 3.300 3.381 3.455 3.522 3.585 3.643 3.698 3.749 3.796 4.161 4.406 4.735 4.958 5.126 +14 .9792 1.628 2.028 2.314 2.535 2.714 2.864 2.992 3.105 3.204 3.293 3.374 3.448 3.515 3.578 3.636 3.690 3.741 3.789 4.153 4.397 4.726 4.948 5.115 +15 .9775 1.625 2.025 2.310 2.531 2.709 2.859 2.987 3.099 3.199 3.288 3.368 3.442 3.509 3.572 3.630 3.684 3.735 3.782 4.145 4.390 4.718 4.940 5.107 +16 .9760 1.623 2.022 2.307 2.527 2.705 2.855 2.983 3.095 3.194 3.283 3.363 3.436 3.504 3.566 3.624 3.678 3.729 3.776 4.139 4.383 4.710 4.932 5.099 +17 .9747 1.621 2.019 2.304 2.524 2.702 2.851 2.979 3.090 3.189 3.278 3.359 3.432 3.499 3.561 3.619 3.673 3.724 3.771 4.133 4.377 4.704 4.926 5.092 +18 .9735 1.619 2.017 2.301 2.521 2.699 2.848 2.975 3.087 3.186 3.274 3.354 3.428 3.495 3.557 3.615 3.669 3.719 3.767 4.128 4.372 4.698 4.920 5.086 +19 .9724 1.617 2.015 2.299 2.518 2.696 2.845 2.972 3.084 3.182 3.271 3.351 3.424 3.491 3.553 3.611 3.665 3.715 3.763 4.124 4.367 4.693 4.914 5.080 +20 .9715 1.616 2.013 2.297 2.516 2.693 2.842 2.969 3.081 3.179 3.268 3.348 3.421 3.488 3.550 3.607 3.661 3.712 3.759 4.120 4.363 4.688 4.909 5.075 +24 .9685 1.611 2.007 2.290 2.508 2.685 2.833 2.960 3.071 3.170 3.258 3.337 3.410 3.477 3.539 3.596 3.650 3.700 3.747 4.107 4.349 4.674 4.894 5.060 +30 .9656 1.606 2.001 2.283 2.501 2.677 2.825 2.951 3.062 3.160 3.248 3.327 3.400 3.466 3.528 3.585 3.638 3.688 3.735 4.094 4.335 4.659 4.878 5.043 +40 .9626 1.602 1.996 2.277 2.494 2.669 2.816 2.942 3.053 3.150 3.238 3.317 3.389 3.455 3.517 3.574 3.627 3.677 3.723 4.080 4.321 4.643 4.862 5.027 +60 .9597 1.597 1.990 2.270 2.486 2.661 2.808 2.933 3.043 3.140 3.227 3.306 3.378 3.444 3.505 3.562 3.615 3.665 3.711 4.067 4.306 4.627 4.845 5.009 +120 .9568 1.592 1.984 2.263 2.479 2.653 2.799 2.924 3.034 3.130 3.217 3.296 3.367 3.433 3.494 3.550 3.603 3.652 3.699 4.052 4.290 4.610 4.827 4.990 +1e38 .9539 1.588 1.978 2.257 2.472 2.645 2.791 2.915 3.024 3.121 3.207 3.285 3.356 3.422 3.482 3.538 3.591 3.640 3.686 4.037 4.274 4.591 4.806 4.968""" + +q0675 = """\ +2 1.829602 2.751705 3.332700 3.754119 4.082579 4.350351 4.575528 4.769258 4.938876 5.089456 5.22465 5.347168 5.459072 5.56197 5.657136 5.745596 5.828188 5.905606 5.978428 6.534036 6.908522 7.411898 7.753537 8.010516 +3 1.660743 2.469725 2.973973 3.338757 3.622958 3.854718 4.049715 4.217574 4.364624 4.495236 4.612559 4.718926 4.816117 4.905518 4.988228 5.065133 5.136955 5.204295 5.267653 5.751485 6.07799 6.517299 6.815682 7.040219 +4 1.585479 2.344680 2.814410 3.153343 3.417165 3.632254 3.813232 3.96905 4.105579 4.226877 4.335857 4.434684 4.525004 4.608102 4.684995 4.756504 4.823298 4.885932 4.944872 5.395226 5.699385 6.108899 6.387203 6.596702 +5 1.543029 2.27426 2.72431 3.048331 3.300303 3.505645 3.678397 3.827131 3.957462 4.073264 4.177319 4.27169 4.35795 4.437321 4.510774 4.579091 4.642911 4.702763 4.759089 5.189651 5.480611 5.872552 6.139026 6.339673 +6 1.515809 2.229127 2.666435 2.980707 3.224876 3.423769 3.591058 3.735076 3.861273 3.973403 4.074164 4.165554 4.249094 4.325968 4.397115 4.463293 4.525119 4.583105 4.637678 5.054965 5.337079 5.717251 5.975813 6.170546 +7 1.496881 2.197746 2.626119 2.933501 3.17212 3.366405 3.529778 3.670406 3.793624 3.903106 4.001488 4.090723 4.172295 4.247362 4.31684 4.381468 4.441849 4.498482 4.551786 4.959448 5.235148 5.606794 5.859629 6.050083 +8 1.482962 2.174667 2.596423 2.898666 3.133126 3.323942 3.484357 3.622418 3.743376 3.850846 3.947419 4.035012 4.115085 4.188774 4.256978 4.320423 4.379701 4.435301 4.487633 4.887938 5.158734 5.523864 5.772325 5.959514 +9 1.472298 2.156982 2.573637 2.871897 3.103116 3.29122 3.449316 3.585359 3.704538 3.810421 3.905564 3.991859 4.070746 4.143343 4.210539 4.273046 4.331448 4.386229 4.437792 4.832253 5.099153 5.459107 5.704096 5.888693 +10 1.463868 2.142999 2.555601 2.85068 3.079300 3.265222 3.421445 3.555857 3.673594 3.778189 3.872171 3.957411 4.035332 4.107041 4.173413 4.235156 4.292845 4.346957 4.39789 4.787576 5.05129 5.407011 5.649161 5.831642 +11 1.457037 2.131666 2.540969 2.833447 3.059936 3.244061 3.398740 3.531802 3.648345 3.751871 3.844888 3.929251 4.006369 4.077337 4.143024 4.204129 4.261223 4.314777 4.365186 4.750882 5.01193 5.36411 5.603886 5.784574 +12 1.451389 2.122295 2.528860 2.819172 3.043878 3.226497 3.379879 3.511805 3.627341 3.729965 3.822167 3.905787 3.982224 4.052565 4.117671 4.178235 4.234823 4.287903 4.337867 4.720168 4.978946 5.32811 5.565864 5.745066 +13 1.446642 2.114418 2.518673 2.807152 3.030346 3.211683 3.363958 3.494914 3.609588 3.71144 3.802942 3.885925 3.961777 4.031579 4.096185 4.156283 4.212436 4.265108 4.314686 4.694058 4.950875 5.297431 5.533435 5.711335 +14 1.442597 2.107703 2.509984 2.796892 3.018785 3.199019 3.350338 3.480454 3.594382 3.695564 3.786459 3.868888 3.944232 4.013564 4.077734 4.137427 4.1932 4.245515 4.294759 4.671571 4.926672 5.270944 5.505418 5.682176 +15 1.439108 2.101911 2.502485 2.788030 3.008793 3.188066 3.338551 3.467934 3.581209 3.681803 3.772166 3.854108 3.929005 3.997925 4.061712 4.121047 4.176486 4.228488 4.277436 4.651989 4.905573 5.247825 5.480945 5.656694 +16 1.436068 2.096865 2.495948 2.7803 3.000071 3.178498 3.328250 3.456985 3.569684 3.669759 3.75965 3.841162 3.915663 3.984216 4.047663 4.106681 4.161824 4.213546 4.262231 4.634774 4.887015 5.227455 5.459365 5.634213 +17 1.433397 2.092428 2.490198 2.773497 2.992391 3.170069 3.319169 3.447329 3.559514 3.659127 3.748598 3.829725 3.903873 3.972099 4.035242 4.093976 4.148852 4.200325 4.248775 4.619514 4.870529 5.209359 5.440181 5.614218 +18 1.431030 2.088497 2.485101 2.767464 2.985576 3.162585 3.311102 3.438749 3.550474 3.649671 3.738765 3.819547 3.893377 3.961308 4.024178 4.082656 4.137293 4.188541 4.236778 4.605888 4.855804 5.193166 5.423003 5.596306 +19 1.428918 2.08499 2.480552 2.762076 2.979488 3.155896 3.30389 3.431072 3.542383 3.641206 3.729960 3.810429 3.883971 3.951636 4.014258 4.072505 4.126925 4.177969 4.226014 4.593643 4.84256 5.178585 5.407524 5.580158 +20 1.427023 2.081842 2.476467 2.757236 2.974016 3.149882 3.297401 3.424164 3.535099 3.633583 3.722027 3.802213 3.875493 3.942916 4.005312 4.063349 4.117571 4.168429 4.216298 4.582577 4.830579 5.16538 5.393498 5.565519 +24 1.421053 2.071924 2.463589 2.741964 2.956732 3.130867 3.276871 3.402288 3.512015 3.609405 3.696852 3.776122 3.848556 3.915194 3.976858 4.03421 4.087789 4.138042 4.185340 4.547205 4.792208 5.122986 5.348394 5.518394 +30 1.415131 2.062082 2.450796 2.726770 2.939512 3.111895 3.256356 3.380399 3.488888 3.585153 3.67157 3.749892 3.821449 3.887270 3.948172 4.00481 4.057717 4.107336 4.154034 4.511241 4.753052 5.079524 5.302021 5.469846 +40 1.409257 2.052316 2.438086 2.711654 2.922351 3.092956 3.235846 3.358481 3.465697 3.5608 3.646150 3.723487 3.794128 3.859096 3.919198 3.975085 4.027284 4.076232 4.122296 4.474532 4.712898 5.034679 5.253982 5.419412 +60 1.40343 2.042626 2.425459 2.696611 2.905244 3.074043 3.215327 3.336516 3.442417 3.536316 3.620555 3.696861 3.766541 3.830609 3.889866 3.944956 3.996401 4.044636 4.09002 4.436878 4.671454 4.987998 5.203693 5.366394 +120 1.397651 2.033010 2.412913 2.681639 2.888185 3.055146 3.194785 3.314484 3.419022 3.511665 3.59474 3.66996 3.738623 3.801735 3.86009 3.914325 3.96496 4.012423 4.057072 4.398008 4.628308 4.938805 5.150236 5.309666 +1e38 1.391918 2.023469 2.400447 2.666735 2.871167 3.036254 3.174203 3.292360 3.395479 3.486805 3.568651 3.642718 3.710296 3.772381 3.829761 3.883069 3.93282 3.979437 4.023276 4.357546 4.582861 4.886029 5.092081 5.247256""" + +q0750 = """\ +2 2.267583 3.308014 3.969236 4.451126 4.82785 5.13561 5.394819 5.618097 5.813776 5.987632 6.143829 6.285461 6.41489 6.533954 6.644113 6.746546 6.842214 6.931913 7.01631 7.660853 8.09584 8.68119 9.0788 9.377929 +3 2.011896 2.883775 3.431223 3.829258 4.140443 4.394852 4.609323 4.794233 4.956425 5.10064 5.230299 5.347941 5.455509 5.554514 5.646158 5.73141 5.811064 5.885775 5.956093 6.493827 6.857365 7.3472 7.680302 7.931152 +4 1.901267 2.701018 3.198596 3.559322 3.841087 4.071417 4.265624 4.433118 4.580085 4.710812 4.828384 4.935098 5.032703 5.122566 5.205771 5.283192 5.355547 5.423427 5.48733 5.976418 6.307462 6.753955 7.057827 7.286775 +5 1.839820 2.599651 3.069171 3.40865 3.673526 3.889955 4.072422 4.229795 4.367901 4.490764 4.601285 4.701617 4.793402 4.877922 4.956192 5.029034 5.09712 5.161005 5.221154 5.681792 5.993844 6.415033 6.70187 6.918073 +6 1.800788 2.535293 2.986795 3.312495 3.566338 3.773641 3.948369 4.099056 4.231292 4.348941 4.45478 4.550869 4.638783 4.719746 4.794731 4.864523 4.929764 4.990987 5.048635 5.490302 5.789693 6.194025 6.469523 6.677248 +7 1.773818 2.490830 2.929770 3.245783 3.491823 3.692639 3.86185 4.007755 4.135786 4.249692 4.352165 4.445203 4.530329 4.608729 4.681345 4.748937 4.812126 4.871427 4.927269 5.35523 5.64547 6.037624 6.304935 6.506543 +8 1.754075 2.458283 2.887956 3.196776 3.436989 3.632943 3.798002 3.940301 4.065154 4.176226 4.276148 4.366871 4.44988 4.526332 4.597147 4.663065 4.724692 4.782528 4.836995 5.254505 5.537762 5.920623 6.18169 6.378634 +9 1.739001 2.433431 2.855984 3.159245 3.394934 3.587097 3.748912 3.888384 4.010742 4.119586 4.2175 4.306396 4.387735 4.462649 4.532041 4.596635 4.657026 4.713704 4.767081 5.176307 5.454025 5.829512 6.085625 6.27887 +10 1.727116 2.413835 2.830746 3.129578 3.361648 3.550769 3.709972 3.847165 3.967506 4.074547 4.170832 4.258248 4.33823 4.411895 4.480128 4.543645 4.60303 4.658765 4.711254 5.113722 5.386914 5.756374 6.008439 6.198662 +11 1.717506 2.397989 2.810315 3.105535 3.334641 3.521265 3.678317 3.813629 3.932304 4.037852 4.132788 4.218976 4.297831 4.370457 4.437728 4.500349 4.558895 4.613844 4.665594 5.062423 5.331834 5.696254 5.944934 6.13263 +12 1.709576 2.384911 2.793439 3.085654 3.312288 3.496821 3.65207 3.785802 3.903075 4.007365 4.101163 4.186312 4.264215 4.335963 4.402419 4.46428 4.522117 4.5764 4.627523 5.019561 5.285754 5.645883 5.891679 6.077222 +13 1.70292 2.373934 2.779263 3.068939 3.293478 3.476235 3.62995 3.762334 3.878409 3.981623 4.074447 4.158707 4.235793 4.306786 4.372542 4.433751 4.490977 4.544687 4.595269 4.983178 5.246593 5.603014 5.846316 6.029999 +14 1.697255 2.364590 2.767188 3.05469 3.27743 3.458659 3.611050 3.742271 3.85731 3.959593 4.051572 4.13506 4.211437 4.281774 4.346922 4.407563 4.464258 4.517468 4.567581 4.951886 5.212872 5.566049 5.807169 5.989222 +15 1.692374 2.356539 2.756778 3.042397 3.263576 3.443476 3.594714 3.724919 3.839053 3.940521 4.031759 4.114571 4.190326 4.260088 4.324701 4.384844 4.441071 4.493842 4.54354 4.92467 5.183511 5.533819 5.773008 5.95362 +16 1.688126 2.349531 2.747712 3.031684 3.251494 3.430227 3.580451 3.709761 3.823097 3.923845 4.01443 4.096644 4.171848 4.2411 4.305239 4.364939 4.420752 4.473133 4.522464 4.900769 5.1577 5.505449 5.742915 5.92224 +17 1.684395 2.343375 2.739744 3.022264 3.240865 3.418565 3.567889 3.696405 3.809031 3.909139 3.999142 4.080823 4.155535 4.224333 4.288048 4.347353 4.402795 4.454828 4.50383 4.879604 5.134819 5.48027 5.716186 5.894353 +18 1.681092 2.337926 2.732687 3.013916 3.23144 3.408218 3.55674 3.684546 3.796536 3.896071 3.985552 4.066754 4.141026 4.209415 4.27275 4.331699 4.386808 4.438527 4.487232 4.860723 5.114389 5.457759 5.692272 5.86939 +19 1.678147 2.333067 2.726393 3.006467 3.223026 3.398978 3.546777 3.673945 3.785363 3.884381 3.973391 4.054162 4.128035 4.196054 4.259045 4.317673 4.37248 4.423914 4.472351 4.843772 5.096029 5.437505 5.67074 5.846902 +20 1.675506 2.328708 2.720745 2.999780 3.215469 3.390674 3.537821 3.664411 3.775312 3.873861 3.962444 4.042823 4.116334 4.184018 4.246696 4.305031 4.359563 4.410739 4.458932 4.828464 5.079434 5.419178 5.651242 5.82653 +24 1.667194 2.314991 2.702957 2.978701 3.191627 3.364455 3.50952 3.63426 3.7435 3.840544 3.927753 4.006868 4.079211 4.14581 4.207477 4.264864 4.318505 4.368841 4.416241 4.779619 5.026378 5.360437 5.58865 5.761054 +30 1.658964 2.301406 2.68532 2.957771 3.167919 3.338345 3.481298 3.604155 3.711699 3.8072 3.892996 3.970809 4.041947 4.107423 4.168039 4.224442 4.277156 4.326617 4.373187 4.730101 4.9724 5.300398 5.524486 5.693793 +40 1.650814 2.28795 2.667830 2.936984 3.144337 3.312335 3.453142 3.574077 3.679882 3.773798 3.858136 3.934602 4.004488 4.068796 4.128318 4.183691 4.235434 4.283976 4.329675 4.679735 4.917252 5.238689 5.458277 5.62419 +60 1.642744 2.274622 2.650486 2.916339 3.120874 3.286413 3.425034 3.544004 3.648023 3.740302 3.823131 3.898196 3.966776 4.029861 4.088234 4.142523 4.19324 4.24081 4.285584 4.628295 4.860604 5.174794 5.389348 5.551435 +120 1.634753 2.261421 2.633285 2.895829 3.097525 3.260567 3.396959 3.513912 3.616089 3.706672 3.787929 3.861531 3.92874 3.990536 4.047692 4.10083 4.150455 4.196985 4.240768 4.575490 4.802013 5.107977 5.316696 5.474283 +1e38 1.626840 2.248346 2.616224 2.875451 3.074279 3.234786 3.368898 3.483775 3.584045 3.672862 3.752475 3.824535 3.890294 3.950721 4.006580 4.058483 4.106932 4.152338 4.195044 4.520933 4.740866 5.037152 5.238766 5.390726""" + +q0800 = """\ +2 2.666345 3.820436 4.558532 5.098158 5.520848 5.866626 6.158145 6.409446 6.62982 6.825717 7.001791 7.161505 7.307502 7.441845 7.566171 7.681802 7.789818 7.891113 7.986436 8.714887 9.206808 9.868718 10.31830 10.65683 +3 2.316120 3.245426 3.832597 4.261107 4.596942 4.871989 5.104169 5.304561 5.480484 5.637021 5.777843 5.905682 6.022626 6.130305 6.230013 6.322797 6.409513 6.49087 6.567462 7.153711 7.55053 8.085698 8.449862 8.724212 +4 2.168283 3.003795 3.52645 3.90676 4.204595 4.44853 4.654519 4.832388 4.988615 5.127694 5.25287 5.366554 5.470593 5.566425 5.655195 5.737827 5.815079 5.887577 5.955847 6.47896 6.833568 7.31242 7.638648 7.884592 +5 2.087215 2.871505 3.358337 3.711564 3.987876 4.214094 4.405111 4.57007 4.714986 4.844026 4.960193 5.065723 5.162321 5.25132 5.333779 5.410553 5.482342 5.549725 5.613191 6.099852 6.430105 6.876484 7.180827 7.410389 +6 2.036122 2.788188 3.252203 3.588013 3.850385 4.06507 4.246305 4.402806 4.540296 4.662734 4.772969 4.873124 4.964814 5.049304 5.127595 5.200498 5.268677 5.33268 5.392969 5.855517 6.169658 6.594568 6.884463 7.103222 +7 2.001005 2.730943 3.179141 3.502777 3.755348 3.961886 4.136188 4.286677 4.418877 4.536604 4.642603 4.738913 4.82709 4.908349 4.983652 5.05378 5.119368 5.180945 5.238953 5.684175 5.986732 6.39621 6.675724 6.886723 +8 1.975395 2.689205 3.125785 3.440421 3.685706 3.886163 4.055272 4.201248 4.329470 4.443647 4.546448 4.639854 4.725375 4.804189 4.87723 4.945254 5.008879 5.068616 5.124894 5.556957 5.850708 6.248453 6.520077 6.725179 +9 1.955898 2.657432 3.085114 3.392817 3.632464 3.828199 3.993263 4.135716 4.260824 4.37222 4.472512 4.563637 4.64707 4.723960 4.79522 4.861587 4.923664 4.981949 5.036862 5.458529 5.745314 6.133773 6.399153 6.59959 +10 1.940561 2.632439 3.053086 3.355281 3.590431 3.782386 3.944205 4.083824 4.206424 4.315576 4.413841 4.503121 4.584862 4.660193 4.730009 4.795032 4.855852 4.912959 4.966762 5.37997 5.661078 6.041965 6.302252 6.498885 +11 1.928182 2.612267 3.027211 3.324922 3.556399 3.745257 3.904411 4.041698 4.16223 4.269529 4.366119 4.453871 4.534212 4.608251 4.676869 4.740775 4.800552 4.85668 4.909561 5.315725 5.5921 5.966667 6.222702 6.41616 +12 1.917981 2.595645 3.005872 3.299861 3.528278 3.714552 3.871475 4.006806 4.125603 4.231343 4.326522 4.412988 4.492148 4.565096 4.632701 4.695665 4.754559 4.809858 4.861959 5.262152 5.534506 5.9037 6.156119 6.346875 +13 1.909431 2.581711 2.987972 3.278821 3.504650 3.688731 3.843759 3.977426 4.094742 4.199153 4.293127 4.378492 4.45664 4.528654 4.595391 4.657546 4.715682 4.770269 4.8217 5.216755 5.485643 5.850201 6.099497 6.287919 +14 1.90216 2.569864 2.972742 3.260906 3.484516 3.666713 3.82011 3.952342 4.068380 4.171642 4.264573 4.348985 4.426256 4.497459 4.563444 4.624895 4.682373 4.736342 4.787189 5.177769 5.443632 5.804138 6.050703 6.237084 +15 1.895903 2.559666 2.959626 3.245467 3.467154 3.647714 3.799691 3.930673 4.045596 4.147854 4.239872 4.32345 4.399954 4.470446 4.53577 4.596605 4.653505 4.706931 4.757265 5.143906 5.4071 5.764029 6.00818 6.192757 +16 1.89046 2.550797 2.948212 3.232024 3.452027 3.631152 3.781882 3.911763 4.025705 4.127077 4.218291 4.301132 4.376957 4.446821 4.511561 4.571849 4.628237 4.681181 4.731062 5.114203 5.375025 5.728765 5.970765 6.153733 +17 1.885683 2.543012 2.93819 3.220213 3.438729 3.616585 3.766210 3.895117 4.008187 4.108772 4.19927 4.281455 4.356676 4.42598 4.490198 4.549999 4.605930 4.658444 4.707919 5.08793 5.346623 5.697501 5.937567 6.119088 +18 1.881457 2.536125 2.929319 3.209754 3.426947 3.603672 3.752313 3.880348 3.992639 4.09252 4.182377 4.263975 4.338653 4.407454 4.471204 4.530568 4.586089 4.638215 4.687324 5.064516 5.321288 5.66958 5.907896 6.088107 +19 1.877691 2.529988 2.921412 3.200427 3.416435 3.592147 3.739903 3.867156 3.978745 4.077993 4.167272 4.24834 4.322529 4.390877 4.454204 4.513172 4.568321 4.620098 4.668877 5.043513 5.298541 5.644481 5.881205 6.060224 +20 1.874315 2.524485 2.914320 3.192058 3.407000 3.581797 3.728755 3.855300 3.966255 4.064929 4.153685 4.234272 4.308018 4.375954 4.438897 4.497506 4.552317 4.603776 4.652254 5.024562 5.277998 5.621789 5.857057 6.034984 +24 1.863701 2.507187 2.89201 3.165709 3.377268 3.549158 3.69357 3.817854 3.92678 4.023614 4.110690 4.189731 4.262048 4.328656 4.390359 4.447807 4.501527 4.551956 4.599461 4.964202 5.212441 5.549191 5.779675 5.954012 +30 1.853207 2.490080 2.869925 3.139592 3.347756 3.516716 3.658554 3.780544 3.887403 3.982357 4.067712 4.145167 4.216014 4.281252 4.341675 4.397921 4.450509 4.49987 4.546362 4.903188 5.145946 5.47522 5.700597 5.871091 +40 1.842829 2.473164 2.848060 3.113699 3.318456 3.484461 3.62369 3.743347 3.848096 3.941126 4.024712 4.100533 4.16986 4.233681 4.292775 4.34777 4.399178 4.447421 4.492854 4.841333 5.078248 5.399473 5.619306 5.785608 +60 1.832568 2.456435 2.826413 3.088026 3.289358 3.452379 3.588962 3.70624 3.808829 3.899882 3.981645 4.055774 4.123524 4.185868 4.243575 4.297261 4.34743 4.394499 4.438814 4.778404 5.009002 5.321406 5.535087 5.696698 +120 1.822478 2.439890 2.804980 3.062567 3.260456 3.420458 3.55435 3.669198 3.769570 3.858583 3.938458 4.010829 4.076934 4.137731 4.193979 4.246285 4.295145 4.340968 4.384094 4.714106 4.937761 5.24027 5.446912 5.603078 +1e38 1.812388 2.423529 2.783758 3.037317 3.231739 3.388684 3.519834 3.632192 3.73028 3.817183 3.895093 3.965627 4.030005 4.089173 4.143877 4.194716 4.242179 4.286668 4.328517 4.648069 4.863937 5.155024 5.353283 5.50281""" + +q0850 = """\ +2 3.226562 4.548022 5.398759 6.022701 6.512387 6.913502 7.251997 7.54401 7.800236 8.028116 8.233021 8.418953 8.588968 8.74545 8.890294 9.02503 9.150913 9.268977 9.380094 10.22972 10.80450 11.58094 12.11086 12.51097 +3 2.721399 3.731515 4.374509 4.845675 5.215912 5.5197 5.776502 5.998388 6.193356 6.366968 6.523249 6.665198 6.795111 6.914781 7.025634 7.128823 7.225292 7.315823 7.401073 8.054202 8.496827 9.094477 9.501702 9.808753 +4 2.514747 3.399285 3.956491 4.363675 4.68348 4.945965 5.16798 5.359938 5.52872 5.679113 5.814574 5.937683 6.050411 6.154302 6.25058 6.34024 6.424092 6.502812 6.576963 7.145835 7.532079 8.054293 8.410406 8.679063 +5 2.403262 3.220436 3.730867 4.102766 4.394545 4.633955 4.836465 5.011596 5.165628 5.302922 5.426626 5.539086 5.642096 5.737057 5.825086 5.907085 5.983793 6.055822 6.123687 6.644817 6.999123 7.478735 7.806159 8.05333 +6 2.333697 3.108965 3.589945 3.939419 4.213263 4.437836 4.627757 4.791998 4.936465 5.06525 5.181307 5.286833 5.38351 5.47265 5.555297 5.632296 5.704339 5.771998 5.835756 6.325681 6.659107 7.110867 7.419518 7.652631 +7 2.286206 3.032919 3.493643 3.827573 4.088914 4.303095 4.484169 4.640738 4.77845 4.901217 5.011858 5.112468 5.20465 5.289655 5.368478 5.441922 5.510646 5.575196 5.63603 6.103717 6.422253 6.85415 7.149428 7.372543 +8 2.251741 2.977758 3.423692 3.746199 3.998303 4.204778 4.379271 4.530117 4.662781 4.781044 4.887624 4.984545 5.073351 5.155248 5.231193 5.30196 5.368185 5.430392 5.489022 5.939926 6.24721 6.664096 6.949269 7.16483 +9 2.225598 2.935932 3.370588 3.684337 3.92933 4.12985 4.299243 4.445643 4.57438 4.68913 4.792542 4.88658 4.972745 5.052208 5.125899 5.194568 5.258832 5.319201 5.376101 5.81381 6.112237 6.517297 6.794508 7.004117 +10 2.205093 2.903132 3.328904 3.635722 3.875064 4.070838 4.236155 4.378996 4.504581 4.61651 4.717372 4.809088 4.893124 4.970624 5.042494 5.109469 5.172148 5.231029 5.28653 5.713546 6.004781 6.400234 6.670974 6.875744 +11 2.18858 2.876725 3.295316 3.596509 3.831250 4.023149 4.18513 4.325052 4.448048 4.557656 4.656418 4.74622 4.828499 4.904377 4.974743 5.040315 5.101683 5.159333 5.213674 5.631818 5.917077 6.304535 6.569888 6.770631 +12 2.174999 2.855009 3.267675 3.564211 3.795132 3.983803 4.143002 4.280484 4.401312 4.508975 4.605974 4.694168 4.77497 4.849483 4.918582 4.982973 5.043235 5.099847 5.153209 5.563854 5.84405 6.22473 6.485512 6.682838 +13 2.163633 2.836837 3.244531 3.537147 3.764842 3.950784 4.107624 4.243034 4.36202 4.468027 4.563524 4.650346 4.729887 4.803233 4.871249 4.93463 4.993946 5.049668 5.102191 5.5064 5.782244 6.157087 6.413931 6.608311 +14 2.153982 2.821408 3.224869 3.514139 3.739075 3.922677 4.077491 4.21112 4.328519 4.433097 4.527298 4.612934 4.691385 4.763723 4.830801 4.893306 4.951801 5.006752 5.058548 5.457164 5.729217 6.09897 6.352377 6.544185 +15 2.145684 2.808145 3.207959 3.494339 3.716887 3.898461 4.051515 4.183594 4.299611 4.402944 4.496014 4.580615 4.658112 4.729568 4.795825 4.857564 4.91534 4.969615 5.020773 5.414476 5.683193 6.048461 6.298836 6.488374 +16 2.138475 2.796621 3.193261 3.47712 3.697581 3.877377 4.028889 4.159607 4.274409 4.376647 4.468721 4.55241 4.629066 4.699743 4.765275 4.826337 4.883478 4.937154 4.987748 5.377097 5.642851 6.004129 6.251805 6.439321 +17 2.132153 2.786517 3.180367 3.462007 3.680628 3.858856 4.009003 4.138517 4.252242 4.353508 4.444698 4.527576 4.603485 4.673469 4.738356 4.798814 4.855389 4.908532 4.958622 5.344083 5.607184 5.964886 6.21014 6.395841 +18 2.126564 2.777584 3.168965 3.448637 3.665623 3.842455 3.991387 4.119827 4.232591 4.332989 4.423388 4.505541 4.58078 4.650143 4.714452 4.774369 4.830436 4.883101 4.932739 5.314701 5.575413 5.929888 6.172953 6.357013 +19 2.121587 2.769631 3.158810 3.436724 3.652248 3.82783 3.975673 4.103149 4.21505 4.314667 4.404354 4.485854 4.560491 4.629294 4.693081 4.752509 4.808118 4.860351 4.909581 5.288379 5.546924 5.898469 6.139544 6.322112 +20 2.117128 2.762505 3.149708 3.426043 3.640251 3.814707 3.961568 4.088173 4.199295 4.298206 4.387249 4.468158 4.542248 4.610545 4.673858 4.732844 4.788036 4.839877 4.888736 5.264656 5.521227 5.870097 6.109355 6.290558 +24 2.103128 2.740133 3.121118 3.392466 3.60251 3.773393 3.917129 4.040961 4.149593 4.246248 4.33323 4.412242 4.484578 4.551244 4.613036 4.670595 4.724445 4.775019 4.822681 5.189274 5.439419 5.779554 6.012859 6.189586 +30 2.089309 2.718054 3.092876 3.359261 3.56514 3.732436 3.873024 3.994053 4.10016 4.19452 4.2794 4.356475 4.427015 4.492009 4.552236 4.608325 4.660792 4.710058 4.756481 5.113372 5.356776 5.687685 5.914664 6.08662 +40 2.07567 2.696264 3.064978 3.326418 3.52813 3.691822 3.829233 3.947423 4.050965 4.142986 4.225718 4.300807 4.369502 4.432773 4.491385 4.545955 4.596987 4.644896 4.69003 5.036754 5.27302 5.594062 5.814221 5.981005 +60 2.062208 2.674759 3.037417 3.293931 3.491470 3.651535 3.785736 3.901046 4.001976 4.091607 4.172136 4.245183 4.311975 4.373463 4.430401 4.483391 4.532928 4.579419 4.623205 4.95919 5.187807 5.498134 5.710792 5.871841 +120 2.048920 2.653534 3.010189 3.261791 3.455148 3.611561 3.742514 3.854896 3.953159 4.040341 4.118605 4.189543 4.254363 4.314 4.369191 4.42053 4.4685 4.513501 4.555864 4.880396 5.100706 5.399172 5.60337 5.757859 +1e38 2.035805 2.632586 2.983286 3.229990 3.419154 3.571884 3.699544 3.808945 3.904479 3.989143 4.065068 4.133821 4.19659 4.254292 4.307653 4.357255 4.403572 4.446994 4.487848 4.800043 5.011193 5.296241 5.4906 5.637297""" + +q0900 = """\ +1 8.929 13.44 16.36 18.49 20.15 21.51 22.64 23.62 24.48 25.24 25.92 26.54 27.10 27.62 28.10 28.54 28.96 29.35 29.71 32.50 34.38 36.91 38.62 39.91 +2 4.129 5.733 6.773 7.538 8.139 8.633 9.049 9.409 9.725 10.01 10.26 10.49 10.70 10.89 11.07 11.24 11.39 11.54 11.68 12.73 13.44 14.40 15.04 15.54 +3 3.328 4.467 5.199 5.738 6.162 6.511 6.806 7.062 7.287 7.487 7.667 7.831 7.982 8.120 8.248 8.368 8.479 8.584 8.683 9.440 9.954 10.65 11.12 11.48 +4 3.015 3.976 4.586 5.035 5.388 5.679 5.926 6.139 6.327 6.494 6.645 6.783 6.909 7.025 7.132 7.233 7.326 7.414 7.497 8.135 8.569 9.156 9.558 9.861 +5 2.850 3.717 4.264 4.664 4.979 5.238 5.458 5.648 5.816 5.965 6.100 6.223 6.336 6.439 6.536 6.626 6.710 6.788 6.863 7.435 7.824 8.353 8.714 8.987 +6 2.748 3.558 4.065 4.435 4.726 4.966 5.168 5.344 5.499 5.637 5.762 5.875 5.979 6.075 6.164 6.247 6.325 6.398 6.466 6.996 7.358 7.848 8.184 8.438 +7 2.679 3.451 3.931 4.280 4.555 4.780 4.971 5.137 5.283 5.413 5.530 5.637 5.735 5.826 5.910 5.988 6.061 6.130 6.195 6.695 7.036 7.500 7.818 8.059 +8 2.630 3.374 3.834 4.169 4.431 4.646 4.829 4.987 5.126 5.250 5.362 5.464 5.558 5.644 5.724 5.799 5.869 5.935 5.997 6.475 6.801 7.245 7.550 7.780 +9 2.592 3.316 3.761 4.084 4.337 4.545 4.721 4.873 5.007 5.126 5.234 5.333 5.423 5.506 5.583 5.655 5.722 5.786 5.845 6.306 6.621 7.049 7.343 7.566 +10 2.563 3.270 3.704 4.018 4.264 4.465 4.636 4.783 4.913 5.029 5.134 5.229 5.316 5.397 5.472 5.542 5.607 5.668 5.726 6.173 6.478 6.894 7.180 7.396 +11 2.540 3.234 3.658 3.965 4.205 4.401 4.567 4.711 4.838 4.951 5.053 5.145 5.231 5.309 5.382 5.450 5.514 5.573 5.630 6.065 6.363 6.768 7.046 7.257 +12 2.521 3.204 3.621 3.921 4.156 4.349 4.511 4.652 4.776 4.886 4.986 5.076 5.160 5.236 5.308 5.374 5.436 5.495 5.550 5.975 6.267 6.663 6.936 7.142 +13 2.504 3.179 3.589 3.885 4.116 4.304 4.464 4.602 4.724 4.832 4.930 5.019 5.100 5.175 5.245 5.310 5.371 5.429 5.483 5.900 6.186 6.575 6.842 7.045 +14 2.491 3.158 3.563 3.854 4.081 4.267 4.424 4.560 4.679 4.786 4.882 4.969 5.050 5.124 5.192 5.256 5.316 5.372 5.426 5.836 6.116 6.499 6.762 6.961 +15 2.479 3.140 3.540 3.828 4.052 4.235 4.390 4.524 4.641 4.746 4.841 4.927 5.006 5.079 5.146 5.209 5.268 5.324 5.376 5.780 6.056 6.433 6.692 6.888 +16 2.469 3.124 3.520 3.804 4.026 4.207 4.360 4.492 4.608 4.712 4.805 4.890 4.968 5.040 5.106 5.169 5.227 5.282 5.333 5.731 6.004 6.376 6.631 6.825 +17 2.460 3.110 3.503 3.784 4.003 4.182 4.334 4.464 4.579 4.681 4.774 4.857 4.934 5.005 5.071 5.133 5.190 5.244 5.295 5.688 5.958 6.325 6.577 6.769 +18 2.452 3.098 3.487 3.766 3.984 4.161 4.310 4.440 4.553 4.654 4.746 4.829 4.905 4.975 5.040 5.101 5.158 5.211 5.262 5.650 5.917 6.280 6.529 6.718 +19 2.445 3.087 3.474 3.751 3.966 4.142 4.290 4.418 4.530 4.630 4.721 4.803 4.878 4.948 5.012 5.072 5.129 5.182 5.232 5.616 5.880 6.239 6.486 6.673 +20 2.439 3.077 3.462 3.736 3.950 4.124 4.271 4.398 4.510 4.609 4.699 4.780 4.855 4.923 4.987 5.047 5.103 5.155 5.205 5.586 5.847 6.202 6.447 6.633 +24 2.420 3.047 3.423 3.692 3.900 4.070 4.213 4.336 4.445 4.541 4.628 4.707 4.780 4.847 4.909 4.966 5.020 5.071 5.119 5.489 5.741 6.086 6.323 6.503 +30 2.400 3.017 3.386 3.648 3.851 4.016 4.155 4.275 4.381 4.474 4.559 4.635 4.706 4.770 4.830 4.886 4.939 4.988 5.034 5.391 5.636 5.969 6.198 6.372 +40 2.381 2.988 3.348 3.605 3.802 3.963 4.099 4.215 4.317 4.408 4.490 4.564 4.632 4.694 4.752 4.806 4.857 4.904 4.949 5.294 5.529 5.850 6.071 6.238 +60 2.363 2.959 3.312 3.562 3.755 3.911 4.042 4.155 4.254 4.342 4.421 4.493 4.558 4.619 4.675 4.727 4.775 4.821 4.864 5.196 5.422 5.730 5.941 6.101 +120 2.344 2.930 3.276 3.520 3.707 3.859 3.986 4.096 4.191 4.276 4.353 4.422 4.485 4.543 4.597 4.647 4.694 4.738 4.779 5.097 5.313 5.606 5.808 5.960 +1e38 2.326 2.902 3.240 3.478 3.661 3.808 3.931 4.037 4.129 4.211 4.285 4.351 4.412 4.468 4.519 4.568 4.612 4.654 4.694 4.997 5.202 5.480 5.669 5.812""" + +q0950 = """\ +1 17.97 26.98 32.82 37.08 40.41 43.12 45.40 47.36 49.07 50.59 51.96 53.20 54.33 55.36 56.32 57.22 58.04 58.83 59.56 65.15 68.92 73.97 77.40 79.98 +2 6.085 8.331 9.799 10.88 11.73 12.43 13.03 13.54 13.99 14.40 14.76 15.09 15.39 15.65 15.92 16.14 16.38 16.57 16.78 18.27 19.28 20.66 21.59 22.29 +3 4.501 5.910 6.825 7.502 8.037 8.478 8.852 9.177 9.462 9.717 9.946 10.15 10.35 10.52 10.69 10.84 10.98 11.11 11.24 12.21 12.86 13.76 14.36 14.82 +4 3.926 5.040 5.757 6.287 6.706 7.053 7.347 7.602 7.826 8.027 8.208 8.373 8.524 8.664 8.793 8.914 9.027 9.133 9.233 10.00 10.53 11.24 11.73 12.10 +5 3.635 4.602 5.218 5.673 6.033 6.330 6.582 6.801 6.995 7.167 7.323 7.466 7.596 7.716 7.828 7.932 8.030 8.122 8.208 8.875 9.330 9.949 10.37 10.69 +6 3.460 4.339 4.896 5.305 5.628 5.895 6.122 6.319 6.493 6.649 6.789 6.917 7.034 7.143 7.244 7.338 7.426 7.508 7.586 8.189 8.601 9.162 9.547 9.839 +7 3.344 4.165 4.681 5.060 5.359 5.606 5.815 5.997 6.158 6.302 6.431 6.550 6.658 6.759 6.852 6.939 7.020 7.097 7.169 7.727 8.110 8.631 8.989 9.260 +8 3.261 4.041 4.529 4.886 5.167 5.399 5.596 5.767 5.918 6.053 6.175 6.287 6.389 6.483 6.571 6.653 6.729 6.801 6.869 7.395 7.756 8.248 8.586 8.843 +9 3.199 3.948 4.415 4.755 5.024 5.244 5.432 5.595 5.738 5.867 5.983 6.089 6.186 6.276 6.359 6.437 6.510 6.579 6.643 7.144 7.488 7.958 8.281 8.526 +10 3.151 3.877 4.327 4.654 4.912 5.124 5.304 5.460 5.598 5.722 5.833 5.935 6.028 6.114 6.194 6.269 6.339 6.405 6.467 6.948 7.278 7.730 8.041 8.276 +11 3.113 3.820 4.256 4.574 4.823 5.028 5.202 5.353 5.486 5.605 5.713 5.811 5.901 5.984 6.062 6.134 6.202 6.265 6.325 6.790 7.109 7.546 7.847 8.075 +12 3.081 3.773 4.199 4.508 4.750 4.950 5.119 5.265 5.395 5.510 5.615 5.710 5.797 5.878 5.953 6.023 6.089 6.151 6.209 6.660 6.970 7.394 7.687 7.908 +13 3.055 3.734 4.151 4.453 4.690 4.884 5.049 5.192 5.318 5.431 5.533 5.625 5.711 5.789 5.862 5.931 5.995 6.055 6.112 6.551 6.853 7.267 7.552 7.769 +14 3.033 3.701 4.111 4.407 4.639 4.829 4.990 5.130 5.253 5.364 5.463 5.554 5.637 5.714 5.785 5.852 5.915 5.973 6.029 6.459 6.754 7.159 7.437 7.649 +15 3.014 3.673 4.076 4.367 4.595 4.782 4.940 5.077 5.198 5.306 5.403 5.492 5.574 5.649 5.719 5.785 5.846 5.904 5.958 6.379 6.669 7.065 7.338 7.546 +16 2.998 3.649 4.046 4.333 4.557 4.741 4.896 5.031 5.150 5.256 5.352 5.439 5.519 5.593 5.662 5.726 5.786 5.843 5.896 6.310 6.594 6.983 7.252 7.456 +17 2.984 3.628 4.020 4.303 4.524 4.705 4.858 4.991 5.108 5.212 5.306 5.392 5.471 5.544 5.612 5.675 5.734 5.790 5.842 6.249 6.529 6.912 7.176 7.377 +18 2.971 3.609 3.997 4.276 4.494 4.673 4.824 4.955 5.071 5.173 5.266 5.351 5.429 5.501 5.567 5.629 5.688 5.743 5.794 6.195 6.471 6.848 7.108 7.307 +19 2.960 3.593 3.977 4.253 4.468 4.645 4.794 4.924 5.037 5.139 5.231 5.314 5.391 5.462 5.528 5.589 5.647 5.701 5.752 6.147 6.419 6.791 7.048 7.244 +20 2.950 3.578 3.958 4.232 4.445 4.620 4.768 4.895 5.008 5.108 5.199 5.282 5.357 5.427 5.492 5.553 5.610 5.663 5.714 6.104 6.372 6.740 6.994 7.187 +24 2.919 3.532 3.901 4.166 4.373 4.541 4.684 4.807 4.915 5.012 5.099 5.179 5.251 5.319 5.381 5.439 5.494 5.545 5.594 5.968 6.226 6.578 6.822 7.007 +30 2.888 3.486 3.845 4.102 4.301 4.464 4.601 4.720 4.824 4.917 5.001 5.077 5.147 5.211 5.271 5.327 5.379 5.429 5.475 5.833 6.080 6.417 6.650 6.827 +40 2.858 3.442 3.791 4.039 4.232 4.388 4.521 4.634 4.735 4.824 4.904 4.977 5.044 5.106 5.163 5.216 5.266 5.313 5.358 5.700 5.934 6.255 6.477 6.645 +60 2.829 3.399 3.737 3.977 4.163 4.314 4.441 4.550 4.646 4.732 4.808 4.878 4.942 5.001 5.056 5.107 5.154 5.199 5.241 5.566 5.789 6.093 6.302 6.462 +120 2.800 3.356 3.685 3.917 4.096 4.241 4.363 4.468 4.560 4.641 4.714 4.781 4.842 4.898 4.950 4.998 5.043 5.086 5.126 5.434 5.644 5.929 6.126 6.275 +1e38 2.772 3.314 3.633 3.858 4.030 4.170 4.286 4.387 4.474 4.552 4.622 4.685 4.743 4.796 4.845 4.891 4.934 4.974 5.012 5.301 5.498 5.764 5.947 6.085""" + +q0975 = """\ +1 35.99 54.00 65.69 74.22 80.87 86.29 90.85 94.77 98.20 101.3 104.0 106.5 108.8 110.8 112.7 114.5 116.2 117.7 119.2 130.4 137.9 148.1 154.9 160.0 +2 8.776 11.94 14.02 15.54 16.75 17.74 18.58 19.31 19.95 20.52 21.03 21.49 21.91 22.30 22.67 23.01 23.32 23.62 23.89 26.03 27.47 29.42 30.74 31.74 +3 5.907 7.661 8.808 9.659 10.33 10.89 11.36 11.77 12.14 12.46 12.75 13.01 13.25 13.47 13.68 13.87 14.05 14.22 14.38 15.62 16.46 17.58 18.37 18.95 +4 4.943 6.244 7.088 7.715 8.213 8.625 8.975 9.279 9.548 9.788 10.00 10.20 10.38 10.55 10.71 10.85 10.99 11.11 11.23 12.16 12.78 13.65 14.23 14.68 +5 4.474 5.558 6.257 6.775 7.186 7.526 7.816 8.068 8.291 8.490 8.670 8.834 8.984 9.124 9.253 9.373 9.486 9.592 9.693 10.47 11.00 11.72 12.21 12.59 +6 4.198 5.158 5.772 6.226 6.586 6.884 7.138 7.359 7.554 7.729 7.887 8.031 8.163 8.285 8.399 8.505 8.605 8.698 8.787 9.469 9.937 10.57 11.01 11.34 +7 4.018 4.897 5.455 5.867 6.194 6.464 6.694 6.894 7.071 7.230 7.373 7.504 7.624 7.735 7.838 7.935 8.025 8.110 8.191 8.812 9.239 9.822 10.22 10.53 +8 3.891 4.714 5.233 5.616 5.919 6.169 6.382 6.567 6.731 6.878 7.011 7.132 7.244 7.347 7.442 7.532 7.616 7.694 7.769 8.346 8.743 9.286 9.660 9.944 +9 3.797 4.578 5.069 5.430 5.715 5.950 6.151 6.325 6.479 6.617 6.742 6.856 6.961 7.057 7.148 7.232 7.311 7.385 7.455 7.999 8.373 8.885 9.238 9.506 +10 3.725 4.474 4.943 5.286 5.558 5.782 5.972 6.138 6.284 6.415 6.534 6.642 6.742 6.834 6.920 7.000 7.075 7.145 7.212 7.729 8.085 8.574 8.910 9.166 +11 3.667 4.391 4.843 5.173 5.433 5.648 5.830 5.989 6.130 6.255 6.369 6.473 6.568 6.656 6.738 6.815 6.887 6.955 7.018 7.514 7.856 8.324 8.648 8.894 +12 3.620 4.324 4.761 5.080 5.332 5.539 5.715 5.868 6.004 6.125 6.235 6.335 6.426 6.511 6.591 6.664 6.734 6.799 6.860 7.338 7.668 8.120 8.433 8.670 +13 3.582 4.269 4.694 5.004 5.248 5.449 5.620 5.768 5.899 6.017 6.123 6.220 6.309 6.391 6.468 6.539 6.606 6.670 6.729 7.192 7.511 7.950 8.253 8.484 +14 3.549 4.222 4.638 4.940 5.178 5.373 5.540 5.684 5.812 5.926 6.029 6.123 6.210 6.290 6.364 6.434 6.499 6.560 6.618 7.068 7.379 7.806 8.100 8.325 +15 3.521 4.182 4.589 4.885 5.117 5.309 5.471 5.612 5.736 5.848 5.948 6.040 6.125 6.205 6.275 6.343 6.407 6.467 6.523 6.962 7.265 7.682 7.969 8.189 +16 3.497 4.148 4.548 4.838 5.065 5.253 5.412 5.550 5.671 5.780 5.879 5.969 6.051 6.128 6.199 6.265 6.327 6.386 6.441 6.870 7.167 7.574 7.856 8.070 +17 3.476 4.118 4.511 4.797 5.020 5.204 5.360 5.495 5.615 5.722 5.818 5.906 5.987 6.062 6.132 6.197 6.258 6.315 6.369 6.790 7.080 7.479 7.756 7.966 +18 3.458 4.091 4.479 4.760 4.980 5.161 5.315 5.448 5.565 5.670 5.765 5.851 5.931 6.004 6.073 6.137 6.196 6.253 6.306 6.719 7.004 7.396 7.667 7.874 +19 3.441 4.068 4.451 4.728 4.945 5.123 5.274 5.405 5.521 5.624 5.717 5.803 5.881 5.953 6.020 6.083 6.142 6.197 6.250 6.656 6.936 7.322 7.589 7.792 +20 3.427 4.047 4.426 4.699 4.914 5.089 5.238 5.367 5.481 5.583 5.675 5.759 5.836 5.907 5.974 6.035 6.093 6.148 6.199 6.599 6.876 7.255 7.518 7.718 +24 3.381 3.982 4.347 4.610 4.816 4.984 5.126 5.250 5.358 5.455 5.543 5.623 5.696 5.764 5.827 5.886 5.941 5.993 6.042 6.422 6.685 7.046 7.295 7.486 +30 3.337 3.919 4.271 4.523 4.720 4.881 5.017 5.134 5.238 5.330 5.414 5.490 5.560 5.624 5.684 5.740 5.792 5.841 5.888 6.248 6.497 6.838 7.075 7.255 +40 3.294 3.858 4.196 4.439 4.627 4.780 4.910 5.022 5.120 5.208 5.287 5.360 5.426 5.487 5.543 5.596 5.646 5.692 5.736 6.077 6.311 6.633 6.855 7.025 +60 3.251 3.798 4.124 4.356 4.536 4.682 4.806 4.912 5.006 5.089 5.164 5.232 5.295 5.352 5.406 5.456 5.502 5.546 5.588 5.908 6.127 6.428 6.636 6.795 +120 3.210 3.739 4.053 4.275 4.447 4.587 4.704 4.805 4.894 4.972 5.043 5.107 5.166 5.221 5.271 5.318 5.362 5.403 5.442 5.741 5.946 6.225 6.418 6.564 +1e38 3.170 3.682 3.984 4.197 4.361 4.494 4.605 4.700 4.784 4.858 4.925 4.985 5.041 5.092 5.139 5.183 5.224 5.262 5.299 5.577 5.766 6.023 6.199 6.333""" + +q0990 = """\ +1 90.02 135.0 164.3 185.6 202.2 215.8 227.2 237.0 245.6 253.2 260.0 266.2 271.8 277.0 281.8 286.3 290.4 294.3 298.0 326.0 344.8 370.1 387.3 400.1 +2 14.04 19.02 22.29 24.72 26.63 28.20 29.53 30.68 31.69 32.59 33.40 34.13 34.81 35.43 36.00 36.53 37.03 37.50 37.95 41.32 43.61 46.70 48.80 50.38 +3 8.260 10.62 12.17 13.32 14.24 15.00 15.65 16.21 16.69 17.13 17.53 17.89 18.22 18.52 18.81 19.07 19.32 19.55 19.77 21.44 22.59 24.13 25.19 25.99 +4 6.511 8.120 9.173 9.958 10.58 11.10 11.54 11.92 12.26 12.57 12.84 13.09 13.32 13.53 13.72 13.91 14.08 14.24 14.39 15.57 16.38 17.46 18.20 18.77 +5 5.702 6.976 7.804 8.421 8.913 9.321 9.669 9.971 10.24 10.48 10.70 10.89 11.08 11.24 11.40 11.55 11.68 11.81 11.93 12.87 13.51 14.39 14.99 15.45 +6 5.243 6.331 7.033 7.556 7.972 8.318 8.612 8.869 9.097 9.300 9.485 9.653 9.808 9.951 10.08 10.21 10.32 10.43 10.54 11.34 11.89 12.65 13.17 13.55 +7 4.949 5.919 6.542 7.005 7.373 7.678 7.939 8.166 8.367 8.548 8.711 8.860 8.997 9.124 9.242 9.353 9.456 9.553 9.645 10.36 10.85 11.52 11.98 12.34 +8 4.745 5.635 6.204 6.625 6.959 7.237 7.474 7.680 7.863 8.027 8.176 8.311 8.436 8.552 8.659 8.760 8.854 8.943 9.027 9.677 10.13 10.74 11.17 11.49 +9 4.596 5.428 5.957 6.347 6.657 6.915 7.134 7.325 7.494 7.646 7.784 7.910 8.025 8.132 8.232 8.325 8.412 8.495 8.573 9.177 9.594 10.17 10.56 10.86 +10 4.482 5.270 5.769 6.136 6.428 6.669 6.875 7.054 7.213 7.356 7.485 7.603 7.712 7.812 7.906 7.993 8.075 8.153 8.226 8.794 9.186 9.726 10.10 10.38 +11 4.392 5.146 5.621 5.970 6.247 6.476 6.671 6.841 6.992 7.127 7.250 7.362 7.464 7.560 7.648 7.731 7.809 7.883 7.952 8.491 8.864 9.377 9.732 10.00 +12 4.320 5.046 5.502 5.836 6.101 6.320 6.507 6.670 6.814 6.943 7.060 7.166 7.265 7.356 7.441 7.520 7.594 7.664 7.730 8.246 8.602 9.093 9.433 9.693 +13 4.260 4.964 5.404 5.726 5.981 6.192 6.372 6.528 6.666 6.791 6.903 7.006 7.100 7.188 7.269 7.345 7.417 7.484 7.548 8.043 8.386 8.859 9.186 9.436 +14 4.210 4.895 5.322 5.634 5.881 6.085 6.258 6.409 6.543 6.663 6.772 6.871 6.962 7.047 7.125 7.199 7.268 7.333 7.394 7.873 8.204 8.661 8.978 9.219 +15 4.167 4.836 5.252 5.556 5.796 5.994 6.162 6.309 6.438 6.555 6.660 6.756 6.845 6.927 7.003 7.074 7.141 7.204 7.264 7.727 8.049 8.492 8.800 9.034 +16 4.131 4.786 5.192 5.489 5.722 5.915 6.079 6.222 6.348 6.461 6.564 6.658 6.744 6.823 6.897 6.967 7.032 7.093 7.151 7.602 7.915 8.346 8.646 8.874 +17 4.099 4.742 5.140 5.430 5.659 5.847 6.007 6.147 6.270 6.380 6.480 6.572 6.656 6.733 6.806 6.873 6.937 6.997 7.053 7.493 7.798 8.219 8.511 8.734 +18 4.071 4.703 5.094 5.379 5.603 5.787 5.944 6.081 6.201 6.309 6.407 6.496 6.579 6.655 6.725 6.791 6.854 6.912 6.967 7.397 7.696 8.107 8.393 8.611 +19 4.046 4.669 5.054 5.334 5.553 5.735 5.889 6.022 6.141 6.246 6.342 6.430 6.510 6.585 6.654 6.719 6.780 6.837 6.891 7.312 7.605 8.008 8.288 8.501 +20 4.024 4.639 5.018 5.293 5.510 5.688 5.839 5.970 6.086 6.190 6.285 6.370 6.449 6.523 6.591 6.654 6.714 6.770 6.823 7.237 7.523 7.919 8.194 8.404 +24 3.955 4.546 4.907 5.168 5.373 5.542 5.685 5.809 5.919 6.017 6.105 6.186 6.261 6.330 6.394 6.453 6.510 6.562 6.612 7.001 7.270 7.641 7.900 8.097 +30 3.889 4.455 4.799 5.048 5.242 5.401 5.536 5.653 5.756 5.848 5.932 6.008 6.078 6.142 6.202 6.258 6.311 6.361 6.407 6.771 7.023 7.370 7.611 7.796 +40 3.825 4.367 4.695 4.931 5.114 5.265 5.392 5.502 5.599 5.685 5.764 5.835 5.900 5.961 6.017 6.069 6.118 6.165 6.208 6.547 6.781 7.104 7.328 7.499 +60 3.762 4.282 4.594 4.818 4.991 5.133 5.253 5.356 5.447 5.528 5.601 5.667 5.728 5.784 5.837 5.886 5.931 5.974 6.015 6.329 6.546 6.843 7.049 7.207 +120 3.702 4.200 4.497 4.708 4.872 5.005 5.118 5.214 5.299 5.375 5.443 5.505 5.561 5.614 5.662 5.708 5.750 5.790 5.827 6.117 6.316 6.588 6.776 6.919 +1e38 3.643 4.120 4.403 4.603 4.757 4.882 4.987 5.078 5.157 5.227 5.290 5.348 5.400 5.448 5.493 5.535 5.574 5.611 5.645 5.911 6.092 6.338 6.507 6.636""" + +q0995 = """\ +1 180.1 270.1 328.5 371.2 404.4 431.6 454.4 474.0 491.1 506.3 520.0 532.4 543.6 554.0 563.6 572.5 580.9 588.7 596.0 652.0 689.6 740.2 774.5 800.3 +2 19.92 26.97 31.60 35.02 37.73 39.95 41.83 43.46 44.89 46.16 47.31 48.35 49.30 50.17 50.99 51.74 52.45 53.12 53.74 58.52 61.76 66.13 69.10 71.35 +3 10.54 13.51 15.45 16.91 18.06 19.01 19.83 20.53 21.15 21.70 22.20 22.66 23.08 23.46 23.82 24.15 24.46 24.76 25.03 27.15 28.60 30.55 31.88 32.90 +4 7.916 9.813 11.06 11.99 12.74 13.35 13.88 14.33 14.74 15.10 15.42 15.72 15.99 16.24 16.47 16.70 16.90 17.09 17.28 18.68 19.63 20.93 21.83 22.50 +5 6.751 8.195 9.140 9.846 10.41 10.88 11.28 11.62 11.93 12.21 12.46 12.69 12.90 13.09 13.27 13.44 13.60 13.74 13.89 14.96 15.71 16.72 17.41 17.94 +6 6.105 7.306 8.087 8.670 9.135 9.522 9.852 10.14 10.39 10.62 10.83 11.02 11.19 11.35 11.50 11.64 11.78 11.90 12.02 12.92 13.54 14.40 14.98 15.43 +7 5.698 6.750 7.429 7.935 8.339 8.674 8.961 9.211 9.433 9.632 9.812 9.976 10.13 10.27 10.40 10.52 10.64 10.74 10.84 11.64 12.18 12.93 13.45 13.85 +8 5.420 6.370 6.981 7.435 7.796 8.097 8.354 8.578 8.777 8.955 9.117 9.265 9.401 9.527 9.644 9.754 9.856 9.953 10.04 10.76 11.25 11.92 12.39 12.75 +9 5.218 6.096 6.657 7.073 7.405 7.680 7.915 8.120 8.302 8.466 8.614 8.749 8.874 8.989 9.097 9.197 9.292 9.381 9.465 10.12 10.57 11.19 11.62 11.95 +10 5.065 5.888 6.412 6.800 7.109 7.365 7.584 7.775 7.944 8.096 8.233 8.359 8.475 8.583 8.683 8.777 8.864 8.947 9.025 9.635 10.06 10.64 11.04 11.35 +11 4.945 5.726 6.221 6.587 6.878 7.119 7.325 7.504 7.664 7.807 7.936 8.055 8.164 8.265 8.359 8.447 8.530 8.608 8.681 9.255 9.653 10.20 10.58 10.87 +12 4.849 5.596 6.068 6.416 6.693 6.922 7.117 7.288 7.439 7.574 7.697 7.810 7.913 8.009 8.099 8.182 8.261 8.335 8.405 8.950 9.328 9.850 10.21 10.49 +13 4.769 5.489 5.943 6.276 6.541 6.760 6.947 7.110 7.254 7.384 7.502 7.609 7.708 7.800 7.885 7.965 8.040 8.111 8.178 8.699 9.061 9.560 9.907 10.17 +14 4.703 5.401 5.838 6.160 6.414 6.625 6.805 6.962 7.101 7.225 7.338 7.442 7.537 7.625 7.707 7.784 7.856 7.924 7.988 8.489 8.837 9.317 9.651 9.906 +15 4.647 5.325 5.750 6.061 6.307 6.511 6.685 6.836 6.970 7.091 7.200 7.300 7.391 7.476 7.556 7.630 7.699 7.765 7.827 8.310 8.647 9.111 9.434 9.680 +16 4.599 5.261 5.674 5.976 6.216 6.413 6.582 6.729 6.859 6.975 7.081 7.178 7.267 7.349 7.426 7.498 7.565 7.629 7.689 8.157 8.483 8.933 9.246 9.486 +17 4.557 5.205 5.608 5.903 6.136 6.329 6.493 6.636 6.762 6.876 6.978 7.072 7.159 7.239 7.313 7.383 7.449 7.510 7.569 8.024 8.341 8.779 9.083 9.316 +18 4.521 5.156 5.550 5.839 6.067 6.255 6.415 6.554 6.677 6.788 6.888 6.980 7.064 7.142 7.215 7.283 7.347 7.407 7.464 7.908 8.216 8.643 8.940 9.167 +19 4.488 5.112 5.500 5.782 6.005 6.189 6.346 6.482 6.603 6.711 6.809 6.898 6.981 7.057 7.128 7.194 7.257 7.316 7.371 7.805 8.106 8.523 8.813 9.035 +20 4.460 5.074 5.455 5.732 5.951 6.131 6.285 6.418 6.536 6.642 6.738 6.826 6.906 6.981 7.051 7.116 7.177 7.234 7.289 7.713 8.008 8.416 8.700 8.917 +24 4.371 4.955 5.315 5.577 5.783 5.952 6.096 6.221 6.331 6.430 6.520 6.602 6.677 6.747 6.812 6.872 6.929 6.983 7.034 7.429 7.703 8.083 8.348 8.551 +30 4.285 4.841 5.181 5.428 5.621 5.779 5.914 6.031 6.134 6.226 6.310 6.386 6.456 6.521 6.581 6.638 6.691 6.740 6.787 7.154 7.409 7.760 8.005 8.193 +40 4.202 4.731 5.052 5.284 5.465 5.614 5.739 5.848 5.944 6.030 6.108 6.178 6.243 6.303 6.359 6.411 6.460 6.507 6.550 6.888 7.123 7.447 7.672 7.844 +60 4.122 4.625 4.928 5.146 5.316 5.454 5.571 5.673 5.762 5.841 5.913 5.979 6.039 6.094 6.146 6.194 6.239 6.281 6.321 6.632 6.846 7.142 7.347 7.504 +120 4.044 4.523 4.809 5.013 5.172 5.301 5.410 5.504 5.586 5.660 5.726 5.786 5.842 5.893 5.940 5.984 6.025 6.064 6.101 6.384 6.579 6.846 7.031 7.172 +1e38 3.970 4.424 4.694 4.886 5.033 5.154 5.255 5.341 5.418 5.485 5.546 5.602 5.652 5.699 5.742 5.783 5.820 5.856 5.889 6.146 6.322 6.561 6.725 6.850""" + +q0999 = """\ +1 900.3 1351. 1643. 1856. 2022. 2158. 2272. 2370. 2455. 2532. 2600. 2662. 2718. 2770. 2818. 2863. 2904. 2943. 2980. 3260. 3448. 3701. 3873. 4002. +2 44.69 60.42 70.77 78.43 84.49 89.46 93.67 97.30 100.5 103.3 105.9 108.2 110.4 112.3 114.2 115.9 117.4 118.9 120.3 131.0 138.3 148.0 154.7 159.7 +3 18.28 23.32 26.65 29.13 31.11 32.74 34.12 35.33 36.39 37.34 38.20 38.98 39.69 40.35 40.97 41.54 42.07 42.58 43.05 46.68 49.16 52.51 54.81 56.53 +4 12.18 14.98 16.84 18.23 19.34 20.26 21.04 21.73 22.33 22.87 23.36 23.81 24.21 24.59 24.94 25.27 25.58 25.87 26.14 28.24 29.68 31.65 32.98 34.00 +5 9.714 11.67 12.96 13.93 14.71 15.35 15.91 16.39 16.82 17.18 17.53 17.85 18.13 18.41 18.66 18.89 19.10 19.31 19.51 21.01 22.03 23.45 24.41 25.15 +6 8.427 9.960 10.97 11.72 12.32 12.82 13.25 13.63 13.96 14.26 14.53 14.78 15.00 15.21 15.41 15.59 15.78 15.94 16.09 17.28 18.10 19.22 20.00 20.58 +7 7.648 8.930 9.768 10.40 10.90 11.32 11.67 11.99 12.27 12.52 12.74 12.95 13.14 13.32 13.48 13.64 13.78 13.92 14.05 15.06 15.74 16.69 17.35 17.85 +8 7.129 8.250 8.977 9.522 9.958 10.32 10.63 10.90 11.15 11.36 11.56 11.74 11.91 12.06 12.20 12.34 12.46 12.58 12.69 13.57 14.17 15.01 15.59 16.02 +9 6.761 7.768 8.419 8.906 9.295 9.619 9.896 10.14 10.35 10.55 10.72 10.89 11.03 11.17 11.30 11.42 11.53 11.64 11.74 12.52 13.07 13.82 14.34 14.74 +10 6.487 7.411 8.006 8.449 8.804 9.099 9.352 9.573 9.769 9.946 10.11 10.25 10.39 10.51 10.63 10.74 10.84 10.94 11.03 11.75 12.25 12.94 13.42 13.79 +11 6.275 7.135 7.687 8.098 8.426 8.699 8.933 9.137 9.319 9.482 9.630 9.766 9.891 10.01 10.12 10.22 10.31 10.40 10.49 11.15 11.61 12.25 12.70 13.03 +12 6.106 6.917 7.435 7.820 8.127 8.382 8.601 8.792 8.962 9.115 9.253 9.380 9.497 9.606 9.707 9.802 9.891 9.975 10.05 10.68 11.11 11.71 12.12 12.44 +13 5.969 6.740 7.231 7.595 7.885 8.126 8.332 8.513 8.673 8.817 8.948 9.068 9.178 9.280 9.376 9.465 9.549 9.629 9.704 10.29 10.70 11.27 11.66 11.96 +14 5.855 6.593 7.062 7.409 7.685 7.914 8.110 8.282 8.434 8.571 8.695 8.809 8.914 9.011 9.102 9.187 9.267 9.342 9.414 9.972 10.36 10.90 11.28 11.57 +15 5.760 6.470 6.920 7.252 7.517 7.736 7.924 8.088 8.234 8.364 8.483 8.592 8.692 8.785 8.872 8.953 9.030 9.102 9.170 9.703 10.08 10.59 10.95 11.23 +16 5.678 6.365 6.799 7.119 7.374 7.585 7.765 7.923 8.063 8.189 8.303 8.407 8.504 8.593 8.676 8.754 8.828 8.897 8.962 9.475 9.832 10.33 10.68 10.94 +17 5.608 6.274 6.695 7.004 7.250 7.454 7.629 7.781 7.916 8.037 8.147 8.248 8.341 8.427 8.507 8.583 8.653 8.720 8.783 9.277 9.623 10.10 10.44 10.69 +18 5.546 6.195 6.604 6.905 7.143 7.341 7.510 7.657 7.788 7.905 8.012 8.109 8.199 8.283 8.361 8.433 8.502 8.566 8.627 9.106 9.440 9.904 10.23 10.48 +19 5.492 6.126 6.524 6.817 7.049 7.241 7.405 7.549 7.676 7.790 7.893 7.988 8.075 8.156 8.232 8.302 8.369 8.431 8.491 8.955 9.279 9.729 10.04 10.29 +20 5.444 6.065 6.454 6.740 6.966 7.153 7.313 7.453 7.576 7.687 7.788 7.880 7.965 8.044 8.118 8.186 8.251 8.312 8.370 8.821 9.136 9.575 9.881 10.12 +24 5.297 5.877 6.238 6.502 6.711 6.884 7.031 7.159 7.272 7.374 7.467 7.551 7.629 7.701 7.768 7.831 7.890 7.946 7.999 8.411 8.699 9.100 9.380 9.595 +30 5.156 5.698 6.033 6.277 6.469 6.628 6.763 6.880 6.984 7.077 7.161 7.239 7.310 7.375 7.437 7.494 7.548 7.598 7.646 8.021 8.283 8.646 8.901 9.096 +40 5.022 5.527 5.838 6.063 6.240 6.385 6.509 6.616 6.710 6.795 6.872 6.942 7.007 7.066 7.122 7.174 7.223 7.268 7.312 7.651 7.887 8.214 8.442 8.618 +60 4.893 5.365 5.653 5.860 6.022 6.155 6.268 6.365 6.451 6.528 6.598 6.661 6.720 6.773 6.824 6.870 6.914 6.956 6.995 7.299 7.510 7.802 8.005 8.161 +120 4.771 5.211 5.476 5.667 5.815 5.937 6.039 6.128 6.206 6.275 6.338 6.395 6.448 6.496 6.541 6.583 6.623 6.660 6.695 6.966 7.153 7.410 7.589 7.726 +1e38 4.654 5.063 5.309 5.484 5.619 5.730 5.823 5.903 5.973 6.036 6.092 6.144 6.191 6.234 6.274 6.312 6.347 6.380 6.411 6.651 6.816 7.041 7.196 7.314""" + +# Build the T+ 'matrix' +# T is a dict of dicts of lists +# Building them as OrderedDicts ensures that we can +# iterate over them in order + +# [alpha keys] [v keys] +# [table values as lists of floats] +T = OrderedDict([(0.100, OrderedDict([(float(L.split()[0]), + lmap(float, L.split()[1:])) for L in q0100.split('\n')])), + (0.500, OrderedDict([(float(L.split()[0]), + lmap(float, L.split()[1:])) for L in q0500.split('\n')])), + (0.675, OrderedDict([(float(L.split()[0]), + lmap(float, L.split()[1:])) for L in q0675.split('\n')])), + (0.750, OrderedDict([(float(L.split()[0]), + lmap(float, L.split()[1:])) for L in q0750.split('\n')])), + (0.800, OrderedDict([(float(L.split()[0]), + lmap(float, L.split()[1:])) for L in q0800.split('\n')])), + (0.850, OrderedDict([(float(L.split()[0]), + lmap(float, L.split()[1:])) for L in q0850.split('\n')])), + (0.900, OrderedDict([(float(L.split()[0]), + lmap(float, L.split()[1:])) for L in q0900.split('\n')])), + (0.950, OrderedDict([(float(L.split()[0]), + lmap(float, L.split()[1:])) for L in q0950.split('\n')])), + (0.975, OrderedDict([(float(L.split()[0]), + lmap(float, L.split()[1:])) for L in q0975.split('\n')])), + (0.990, OrderedDict([(float(L.split()[0]), + lmap(float, L.split()[1:])) for L in q0990.split('\n')])), + (0.995, OrderedDict([(float(L.split()[0]), + lmap(float, L.split()[1:])) for L in q0995.split('\n')])), + (0.999, OrderedDict([(float(L.split()[0]), + lmap(float, L.split()[1:])) for L in q0999.split('\n')]))]) + +# This dict maps r values to the correct list index +R = OrderedDict(zip([2,3,4,5,6,7,8,9,10,11,12,13,14,15,16, + 17,18,19,20,30,40,60,80,100], lrange(24))) + +inf = np.inf +# we will need a tinv function +_tinv = lambda p, df : scipy.stats.t.isf(p, df) +_phi = lambda p : scipy.stats.norm.isf(p) + +# Now we can build the A 'matrix' + +# these are for the least squares fitting +def qhat(a, p, r, v): + + # eq. 2.3 + p_ = (1. + p) /2. + + f = a[0]*np.log(r-1.) + \ + a[1]*np.log(r-1.)**2 + \ + a[2]*np.log(r-1.)**3 + \ + a[3]*np.log(r-1.)**4 + + # eq. 2.7 and 2.8 corrections + for i, r_ in enumerate(r): + if r_ == 3: + f[i] += -0.002 / (1. + 12. * _phi(p)**2) + + if v <= 4.364: + f[i] += 1./517. - 1./(312.*v) + else: + f[i] += 1./(191.*v) + + return math.sqrt(2) * (f - 1.) * _tinv(p_, v) + +errfunc = lambda a, p, r, v, q: qhat(a, p, r, v) - q + +A = {} # this is the error matrix +for p in T: + for v in T[p]: + #eq. 2.4 + a0 = random(4) + a1, success = leastsq(errfunc, a0, + args=(p, np.array(list(iterkeys(R))), + v, np.array(T[p][v]))) + + if v == 1e38: + A[(p,inf)] = list(a1) + else: + A[(p,v)] = list(a1) + +raise Exception("we don't want to import this") +# uncomment the lines below to repr-ize A +##import pprint +##pprint.pprint(A, width=160) diff --git a/statsmodels/stats/libqsturng/qsturng_.py b/statsmodels/stats/libqsturng/qsturng_.py new file mode 100644 index 0000000..084d950 --- /dev/null +++ b/statsmodels/stats/libqsturng/qsturng_.py @@ -0,0 +1,899 @@ +# Copyright (c) 2011, Roger Lew [see LICENSE.txt] +# This software is funded in part by NIH Grant P20 RR016454. + +""" +Implementation of Gleason's (1999) non-iterative upper quantile +studentized range approximation. + +According to Gleason this method should be more accurate than the +AS190 FORTRAN algorithm of Lund and Lund (1983) and works from .5 +<= p <= .999 (The AS190 only works from .9 <= p <= .99). + +It is more efficient then the Copenhaver & Holland (1988) algorithm +(used by the _qtukey_ R function) although it requires storing the A +table in memory. (q distribution) approximations in Python. + +see: + Gleason, J. R. (1999). An accurate, non-iterative approximation + for studentized range quantiles. Computational Statistics & + Data Analysis, (31), 147-158. + + Gleason, J. R. (1998). A table of quantile points of the + Studentized range distribution. + http://www.stata.com/stb/stb46/dm64/sturng.pdf +""" +from __future__ import print_function +from statsmodels.compat.python import lrange, map +import math +import scipy.stats +import numpy as np + +from scipy.optimize import fminbound + +inf = np.inf + +__version__ = '0.2.3' + +# changelog +# 0.1 - initial release +# 0.1.1 - vectorized +# 0.2 - psturng added +# 0.2.1 - T, R generation script relegated to make_tbls.py +# 0.2.2 +# - select_points refactored for performance to select_ps and +# select_vs +# - pysturng tester added. +# 0.2.3 - uses np.inf and np.isinf + +# Gleason's table was derived using least square estimation on the tabled +# r values for combinations of p and v. In total there are 206 +# estimates over p-values of .5, .75, .9, .95, .975, .99, .995, +# and .999, and over v (degrees of freedom) of (1) - 20, 24, 30, 40, +# 60, 120, and inf. combinations with p < .95 don't have coefficients +# for v = 1. Hence the parentheses. These coefficients allow us to +# form f-hat. f-hat with the inverse t transform of tinv(p,v) yields +# a fairly accurate estimate of the studentized range distribution +# across a wide range of values. According to Gleason this method +# should be more accurate than algorithm AS190 of Lund and Lund (1983) +# and work across a wider range of values (The AS190 only works +# from .9 <= p <= .99). R's qtukey algorithm was used to add tables +# at .675, .8, and .85. These aid approximations when p < .9. +# +# The code that generated this table is called make_tbls.py and is +# located in version control. +A = {(0.1, 2.0): [-2.2485085243379075, -1.5641014278923464, 0.55942294426816752, -0.060006608853883377], + (0.1, 3.0): [-2.2061105943901564, -1.8415406600571855, 0.61880788039834955, -0.062217093661209831], + (0.1, 4.0): [-2.1686691786678178, -2.008196172372553, 0.65010084431947401, -0.06289005500114471], + (0.1, 5.0): [-2.145077200277393, -2.112454843879346, 0.66701240582821342, -0.062993502233654797], + (0.1, 6.0): [-2.0896098049743155, -2.2400004934286497, 0.70088523391700142, -0.065907568563272748], + (0.1, 7.0): [-2.0689296655661584, -2.3078445479584873, 0.71577374609418909, -0.067081034249350552], + (0.1, 8.0): [-2.0064956480711262, -2.437400413087452, 0.76297532367415266, -0.072805518121505458], + (0.1, 9.0): [-2.3269477513436061, -2.0469494712773089, 0.60662518717720593, -0.054887108437009016], + (0.1, 10.0): [-2.514024350177229, -1.8261187841127482, 0.51674358077906746, -0.044590425150963633], + (0.1, 11.0): [-2.5130181309130828, -1.8371718595995694, 0.51336701694862252, -0.043761825829092445], + (0.1, 12.0): [-2.5203508109278823, -1.8355687130611862, 0.5063486549107169, -0.042646205063108261], + (0.1, 13.0): [-2.5142536438310477, -1.8496969402776282, 0.50616991367764153, -0.042378379905665363], + (0.1, 14.0): [-2.3924634153781352, -2.013859173066078, 0.56421893251638688, -0.048716888109540266], + (0.1, 15.0): [-2.3573552940582574, -2.0576676976224362, 0.57424068771143233, -0.049367487649225841], + (0.1, 16.0): [-2.3046427483044871, -2.1295959138627993, 0.59778272657680553, -0.051864829216301617], + (0.1, 17.0): [-2.2230551072316125, -2.2472837435427127, 0.64255758243215211, -0.057186665209197643], + (0.1, 18.0): [-2.3912859179716897, -2.0350604070641269, 0.55924788749333332, -0.047729331835226464], + (0.1, 19.0): [-2.4169773092220623, -2.0048217969339146, 0.54493039319748915, -0.045991241346224065], + (0.1, 20.0): [-2.4264087194660751, -1.9916614057049267, 0.53583555139648154, -0.04463049934517662], + (0.1, 24.0): [-2.3969903132061869, -2.0252941869225345, 0.53428382141200137, -0.043116495567779786], + (0.1, 30.0): [-2.2509922780354623, -2.2309248956124894, 0.60748041324937263, -0.051427415888817322], + (0.1, 40.0): [-2.1310090183854946, -2.3908466074610564, 0.65844375382323217, -0.05676653804036895], + (0.1, 60.0): [-1.9240060179027036, -2.6685751031012233, 0.75678826647453024, -0.067938584352398995], + (0.1, 120.0): [-1.9814895487030182, -2.5962051736978373, 0.71793969041292693, -0.063126863201511618], + (0.1, inf): [-1.913410267066703, -2.6947367328724732, 0.74742335122750592, -0.06660897234304515], + (0.5, 2.0): [-0.88295935738770648, -0.1083576698911433, 0.035214966839394388, -0.0028576288978276461], + (0.5, 3.0): [-0.89085829205846834, -0.10255696422201063, 0.033613638666631696, -0.0027101699918520737], + (0.5, 4.0): [-0.89627345339338116, -0.099072524607668286, 0.032657774808907684, -0.0026219007698204916], + (0.5, 5.0): [-0.89959145511941052, -0.097272836582026817, 0.032236187675182958, -0.0025911555217019663], + (0.5, 6.0): [-0.89959428735702474, -0.098176292411106647, 0.032590766960226995, -0.0026319890073613164], + (0.5, 7.0): [-0.90131491102863937, -0.097135907620296544, 0.032304124993269533, -0.0026057965808244125], + (0.5, 8.0): [-0.90292500599432901, -0.096047500971337962, 0.032030946615574568, -0.0025848748659053891], + (0.5, 9.0): [-0.90385598607803697, -0.095390771554571888, 0.031832651111105899, -0.0025656060219315991], + (0.5, 10.0): [-0.90562524936125388, -0.093954488089771915, 0.031414451048323286, -0.0025257834705432031], + (0.5, 11.0): [-0.90420347371173826, -0.095851656370277288, 0.0321150356209743, -0.0026055056400093451], + (0.5, 12.0): [-0.90585973471757664, -0.094449306296728028, 0.031705945923210958, -0.0025673330195780191], + (0.5, 13.0): [-0.90555437067293054, -0.094792991050780248, 0.031826594964571089, -0.0025807109129488545], + (0.5, 14.0): [-0.90652756604388762, -0.093792156994564738, 0.031468966328889042, -0.0025395175361083741], + (0.5, 15.0): [-0.90642323700400085, -0.094173017520487984, 0.031657517378893905, -0.0025659271829033877], + (0.5, 16.0): [-0.90716338636685234, -0.093785178083820434, 0.031630091949657997, -0.0025701459247416637], + (0.5, 17.0): [-0.90790133816769714, -0.093001147638638884, 0.031376863944487084, -0.002545143621663892], + (0.5, 18.0): [-0.9077432927051563, -0.093343516378180599, 0.031518139662395313, -0.0025613906133277178], + (0.5, 19.0): [-0.90789499456490286, -0.09316964789456067, 0.031440782366342901, -0.0025498353345867453], + (0.5, 20.0): [-0.90842707861030725, -0.092696016476608592, 0.031296040311388329, -0.0025346963982742186], + (0.5, 24.0): [-0.9083281347135469, -0.092959308144970776, 0.031464063190077093, -0.0025611384271086285], + (0.5, 30.0): [-0.90857624050016828, -0.093043139391980514, 0.031578791729341332, -0.0025766595412777147], + (0.5, 40.0): [-0.91034085045438684, -0.091978035738914568, 0.031451631000052639, -0.0025791418103733297], + (0.5, 60.0): [-0.91084356681030032, -0.091452675572423425, 0.031333147984820044, -0.0025669786958144843], + (0.5, 120.0): [-0.90963649561463833, -0.093414563261352349, 0.032215602703677425, -0.0026704024780441257], + (0.5, inf): [-0.91077157500981665, -0.092899220350334571, 0.032230422399363315, -0.0026696941964372916], + (0.675, 2.0): [-0.67231521026565144, -0.097083624030663451, 0.027991378901661649, -0.0021425184069845558], + (0.675, 3.0): [-0.65661724764645824, -0.08147195494632696, 0.02345732427073333, -0.0017448570400999351], + (0.675, 4.0): [-0.65045677697461124, -0.071419073399450431, 0.020741962576852499, -0.0015171262565892491], + (0.675, 5.0): [-0.64718875357808325, -0.064720611425218344, 0.019053450246546449, -0.0013836232986228711], + (0.675, 6.0): [-0.64523003702018655, -0.059926313672731824, 0.017918997181483924, -0.0012992250285556828], + (0.675, 7.0): [-0.64403313148478836, -0.056248191513784476, 0.017091446791293721, -0.0012406558789511822], + (0.675, 8.0): [-0.64325095865764359, -0.053352543126426684, 0.016471879286491072, -0.0011991839050964099], + (0.675, 9.0): [-0.64271152754911653, -0.051023769620449078, 0.01599799600547195, -0.0011693637984597086], + (0.675, 10.0): [-0.64232244408502626, -0.049118327462884373, 0.015629704966568955, -0.0011477775513952285], + (0.675, 11.0): [-0.64203897854353564, -0.047524627960277892, 0.015334801262767227, -0.0011315057284007177], + (0.675, 12.0): [-0.64180344973512771, -0.046205907576003291, 0.015108290595438166, -0.0011207364514518488], + (0.675, 13.0): [-0.64162086456823342, -0.045076099336874231, 0.0149226565346125, -0.0011126140690497352], + (0.675, 14.0): [-0.64146906480198984, -0.044108523550512715, 0.014772954218646743, -0.0011069708562369386], + (0.675, 15.0): [-0.64133915151966603, -0.043273370927039825, 0.014651691599222836, -0.0011032216539514398], + (0.675, 16.0): [-0.64123237842752079, -0.042538925012463868, 0.014549992487506169, -0.0011005633864334021], + (0.675, 17.0): [-0.64113034037536609, -0.041905699463005854, 0.014470805560767184, -0.0010995286436738471], + (0.675, 18.0): [-0.64104137391561256, -0.041343885546229336, 0.014404563657113593, -0.0010991304223377683], + (0.675, 19.0): [-0.64096064882827297, -0.04084569291139839, 0.014350159655133801, -0.0010993656711121901], + (0.675, 20.0): [-0.64088647405089572, -0.040402175957178085, 0.014305769823654429, -0.0011001304776712105], + (0.675, 24.0): [-0.64063763965937837, -0.039034716348048545, 0.014196703837251648, -0.0011061961945598175], + (0.675, 30.0): [-0.64034987716294889, -0.037749651156941719, 0.014147040999127263, -0.0011188251352919833], + (0.675, 40.0): [-0.6399990514713938, -0.036583307574857803, 0.014172070700846548, -0.0011391004138624943], + (0.675, 60.0): [-0.63955586202430248, -0.035576938958184395, 0.014287299153378865, -0.0011675811805794236], + (0.675, 120.0): [-0.63899242674778622, -0.034763757512388853, 0.014500726912982405, -0.0012028491454427466], + (0.675, inf): [-0.63832682579247613, -0.034101476695520404, 0.014780921043580184, -0.0012366204114216408], + (0.75, 2.0): [-0.60684073638504454, -0.096375192078057031, 0.026567529471304554, -0.0019963228971914488], + (0.75, 3.0): [-0.57986144519102656, -0.078570292718034881, 0.021280637925009449, -0.0015329306898533772], + (0.75, 4.0): [-0.56820771686193594, -0.0668113563896649, 0.018065284051059189, -0.0012641485481533648], + (0.75, 5.0): [-0.56175292435740221, -0.058864526929603825, 0.016046735025708799, -0.0011052560286524044], + (0.75, 6.0): [-0.55773449282066356, -0.053136923269827351, 0.014684258167069347, -0.0010042826823561605], + (0.75, 7.0): [-0.55509524598867332, -0.048752649191139405, 0.013696566605823626, -0.00093482210003133898], + (0.75, 8.0): [-0.55324993686191515, -0.045305558708724644, 0.012959681992062138, -0.00088583541601696021], + (0.75, 9.0): [-0.55189259054026196, -0.042539819902381634, 0.012398791106424769, -0.00085083962241435827], + (0.75, 10.0): [-0.55085384656956893, -0.040281425755686585, 0.01196442242722482, -0.00082560322161492677], + (0.75, 11.0): [-0.55003198103541273, -0.038410176100193948, 0.011623294239447784, -0.00080732975034320073], + (0.75, 12.0): [-0.54936541596319177, -0.036838543267887103, 0.011351822637895701, -0.0007940703654926442], + (0.75, 13.0): [-0.54881015972753833, -0.035506710625568455, 0.011134691307865171, -0.0007846360016355809], + (0.75, 14.0): [-0.54834094346071949, -0.034364790609906569, 0.010958873929274728, -0.00077796645357008291], + (0.75, 15.0): [-0.54793602418304255, -0.033379237455748029, 0.010816140998057593, -0.00077344175064785099], + (0.75, 16.0): [-0.54758347689728037, -0.032520569145898917, 0.010699240399358219, -0.00077050847328596678], + (0.75, 17.0): [-0.54727115963795303, -0.031769277192927527, 0.010603749751170481, -0.0007688642392748113], + (0.75, 18.0): [-0.54699351808826535, -0.031105476267880995, 0.010524669113016114, -0.00076810656837464093], + (0.75, 19.0): [-0.54674357626419079, -0.030516967201954001, 0.010459478822937069, -0.00076808652582440037], + (0.75, 20.0): [-0.54651728378950126, -0.029992319199769232, 0.010405694998386575, -0.0007686417223966138], + (0.75, 24.0): [-0.54578309546828363, -0.028372628574010936, 0.010269939602271542, -0.00077427370647261838], + (0.75, 30.0): [-0.54501246434397554, -0.026834887880579802, 0.010195603314317611, -0.00078648615954105515], + (0.75, 40.0): [-0.54418127442022624, -0.025413224488871379, 0.010196455193836855, -0.00080610785749523739], + (0.75, 60.0): [-0.543265189207915, -0.024141961069146383, 0.010285001019536088, -0.00083332193364294587], + (0.75, 120.0): [-0.54224757817994806, -0.023039071833948214, 0.010463365295636302, -0.00086612828539477918], + (0.75, inf): [-0.54114579815367159, -0.02206592527426093, 0.01070374099737127, -0.00089726564005122183], + (0.8, 2.0): [-0.56895274046831146, -0.096326255190541957, 0.025815915364208686, -0.0019136561019354845], + (0.8, 3.0): [-0.5336038380862278, -0.077585191014876181, 0.020184759265389905, -0.0014242746007323785], + (0.8, 4.0): [-0.51780274285934258, -0.064987738443608709, 0.016713309796866204, -0.001135379856633562], + (0.8, 5.0): [-0.50894361222268403, -0.056379186603362705, 0.014511270339773345, -0.00096225604117493205], + (0.8, 6.0): [-0.50335153028630408, -0.050168860294790812, 0.01302807093593626, -0.00085269812692536306], + (0.8, 7.0): [-0.49960934380896432, -0.045417333787806033, 0.011955593330247398, -0.00077759605604250882], + (0.8, 8.0): [-0.49694518248979763, -0.041689151516021969, 0.011158986677273709, -0.00072497430103953366], + (0.8, 9.0): [-0.4949559974898507, -0.038702217132906024, 0.010554360004521268, -0.0006875213117164109], + (0.8, 10.0): [-0.49341407910162483, -0.036266788741325398, 0.010087354421936092, -0.00066060835062865602], + (0.8, 11.0): [-0.49218129312493897, -0.034252403643273498, 0.0097218584838579536, -0.00064123459335201907], + (0.8, 12.0): [-0.49117223957112183, -0.032563269730499021, 0.0094318583096021404, -0.00062725253852419032], + (0.8, 13.0): [-0.49032781145131277, -0.031132495018324432, 0.0091999762562792898, -0.0006172944366003854], + (0.8, 14.0): [-0.48961049628464259, -0.029906921170494854, 0.009012451847823854, -0.00061026211968669543], + (0.8, 15.0): [-0.48899069793054922, -0.028849609914548158, 0.0088602820002619594, -0.00060548991575179055], + (0.8, 16.0): [-0.48844921216636505, -0.027929790075266154, 0.00873599263877896, -0.00060242119796859379], + (0.8, 17.0): [-0.48797119683309537, -0.027123634910159868, 0.0086338139869481887, -0.00060061821593399998], + (0.8, 18.0): [-0.48754596864745836, -0.026411968723496961, 0.0085493196604705755, -0.00059977083160833624], + (0.8, 19.0): [-0.48716341805691843, -0.025781422230819986, 0.0084796655915025769, -0.00059970031758323466], + (0.8, 20.0): [-0.48681739197185547, -0.025219629852198749, 0.0084221844254287765, -0.00060023212822886711], + (0.8, 24.0): [-0.48570639629281365, -0.023480608772518948, 0.008274490561114187, -0.000605681105792215], + (0.8, 30.0): [-0.48455867067770253, -0.021824655071720423, 0.0081888502974720567, -0.00061762126933785633], + (0.8, 40.0): [-0.48335478729267423, -0.020279958998363389, 0.0081765095914194709, -0.00063657117129829635], + (0.8, 60.0): [-0.48207351944996679, -0.018875344346672228, 0.0082473997191472338, -0.00066242478479277243], + (0.8, 120.0): [-0.48070356185330182, -0.017621686995755746, 0.0084009638803223801, -0.00069300383808949318], + (0.8, inf): [-0.47926687718713606, -0.016476575352367202, 0.0086097059646591811, -0.00072160843492730911], + (0.85, 2.0): [-0.53366806986381743, -0.098288178252723263, 0.026002333446289064, -0.0019567144268844896], + (0.85, 3.0): [-0.48995919239619989, -0.077312722648418056, 0.019368984865418108, -0.0013449670192265796], + (0.85, 4.0): [-0.46956079162382858, -0.063818518513946695, 0.015581608910696544, -0.0010264315084377606], + (0.85, 5.0): [-0.45790853796153624, -0.054680511194530226, 0.013229852432203093, -0.00084248430847535898], + (0.85, 6.0): [-0.4505070841695738, -0.048050936682873302, 0.011636407582714191, -0.00072491480033529815], + (0.85, 7.0): [-0.44548337477336181, -0.042996612516383016, 0.010493052959891263, -0.00064528784792153239], + (0.85, 8.0): [-0.44186624932664148, -0.039040005821657585, 0.0096479530794160544, -0.00058990874360967567], + (0.85, 9.0): [-0.43914118689812259, -0.035875693030752713, 0.0090088804130628187, -0.00055071480339399694], + (0.85, 10.0): [-0.43701255390953769, -0.033300997407157376, 0.0085172159355344848, -0.00052272770799695464], + (0.85, 11.0): [-0.43530109064899053, -0.031174742038490313, 0.0081335619868386066, -0.00050268353809787927], + (0.85, 12.0): [-0.43389220376610071, -0.02939618314990838, 0.007830626267772851, -0.00048836431712678222], + (0.85, 13.0): [-0.43271026958463166, -0.027890759135246888, 0.0075886916668632936, -0.00047819339710596971], + (0.85, 14.0): [-0.43170230265007209, -0.026604156062396189, 0.0073939099688705547, -0.00047109996854335419], + (0.85, 15.0): [-0.43083160459377423, -0.025494228911600785, 0.0072358738657550868, -0.00046630677052262481], + (0.85, 16.0): [-0.4300699280587239, -0.024529612608808794, 0.0071069227026219683, -0.00046323869860941791], + (0.85, 17.0): [-0.42939734931902857, -0.023685025616054269, 0.0070011541609695891, -0.00046147954942994158], + (0.85, 18.0): [-0.42879829041505324, -0.022940655682782165, 0.006914006369119409, -0.00046070877994711774], + (0.85, 19.0): [-0.42826119448419875, -0.022280181781634649, 0.0068417746905826433, -0.00046066841214091982], + (0.85, 20.0): [-0.42777654887094479, -0.021690909076747832, 0.0067817408643717969, -0.00046118620289068032], + (0.85, 24.0): [-0.42622450033640852, -0.019869646711890065, 0.0066276799593494029, -0.00046668820637553747], + (0.85, 30.0): [-0.42463810443233418, -0.018130114737381745, 0.0065344613060499164, -0.00047835583417510423], + (0.85, 40.0): [-0.42299917804589382, -0.016498222901308417, 0.0065120558343578407, -0.00049656043685325469], + (0.85, 60.0): [-0.42129387265810464, -0.014992121475265813, 0.0065657795990087635, -0.00052069705640687698], + (0.85, 120.0): [-0.41951580476366368, -0.013615722489371183, 0.0066923911275726814, -0.00054846911649167492], + (0.85, inf): [-0.41768751825428968, -0.012327525092266726, 0.0068664920569562592, -0.00057403720261753539], + (0.9, 1.0): [-0.65851063279096722, -0.126716242078905, 0.036318801917603061, -0.002901283222928193], + (0.9, 2.0): [-0.50391945369829139, -0.096996108021146235, 0.024726437623473398, -0.0017901399938303017], + (0.9, 3.0): [-0.44799791843058734, -0.077180370333307199, 0.018584042055594469, -0.0012647038118363408], + (0.9, 4.0): [-0.42164091756145167, -0.063427071006287514, 0.014732203755741392, -0.00094904174117957688], + (0.9, 5.0): [-0.40686856251221754, -0.053361940054842398, 0.012041802076025801, -0.00072960198292410612], + (0.9, 6.0): [-0.39669926026535285, -0.046951517438004242, 0.010546647213094956, -0.00062621198002366064], + (0.9, 7.0): [-0.39006553675807426, -0.04169480606532109, 0.0093687546601737195, -0.00054648695713273862], + (0.9, 8.0): [-0.38570205067061908, -0.037083910859179794, 0.0083233218526375836, -0.00047177586974035451], + (0.9, 9.0): [-0.38190737267892938, -0.034004585655388865, 0.0077531991574119183, -0.00044306547308527872], + (0.9, 10.0): [-0.37893272918125737, -0.031394677600916979, 0.0072596802503533536, -0.0004160518834299966], + (0.9, 11.0): [-0.37692512492705132, -0.028780793403136471, 0.0066937909049060379, -0.00037420010136784526], + (0.9, 12.0): [-0.37506345200129187, -0.026956483290567372, 0.0064147730707776523, -0.00036595383207062906], + (0.9, 13.0): [-0.37339516122383209, -0.02543949524844704, 0.0061760656530197187, -0.00035678737379179527], + (0.9, 14.0): [-0.37216979891087842, -0.02396347606956644, 0.0059263234465969641, -0.0003439784452550796], + (0.9, 15.0): [-0.371209456600122, -0.022696132732654414, 0.0057521677184623147, -0.00033961108561770848], + (0.9, 16.0): [-0.36958924377983338, -0.022227885445863002, 0.0057691706799383926, -0.00035042762538099682], + (0.9, 17.0): [-0.36884224719083203, -0.021146977888668726, 0.0055957928269732716, -0.00034283810412697531], + (0.9, 18.0): [-0.36803087186793326, -0.020337731477576542, 0.0054655378095212759, -0.00033452966946535248], + (0.9, 19.0): [-0.3676700404163355, -0.019370115848857467, 0.0053249296207149655, -0.00032975528909580403], + (0.9, 20.0): [-0.36642276267188811, -0.019344251412284838, 0.0054454968582897528, -0.00034868111677540948], + (0.9, 24.0): [-0.36450650753755193, -0.017284255499990679, 0.0052337500059176749, -0.00034898202845747288], + (0.9, 30.0): [-0.36251868940168608, -0.015358560437631397, 0.0050914299956134786, -0.00035574528891633978], + (0.9, 40.0): [-0.36008886676510943, -0.014016835682905486, 0.0051930835959111514, -0.00038798316011984165], + (0.9, 60.0): [-0.35825590690268061, -0.011991568926537646, 0.0050632208542414191, -0.00039090198974493085], + (0.9, 120.0): [-0.35543612237284411, -0.011074403997811812, 0.0053504570752765162, -0.00043647137428074178], + (0.9, inf): [-0.35311806343057167, -0.0096254020092145353, 0.0054548591208177181, -0.00045343916634968493], + (0.95, 1.0): [-0.65330318136020071, -0.12638310760474375, 0.035987535130769424, -0.0028562665467665315], + (0.95, 2.0): [-0.47225160417826934, -0.10182570362271424, 0.025846563499059158, -0.0019096769058043243], + (0.95, 3.0): [-0.4056635555586528, -0.077067172693350297, 0.017789909647225533, -0.001182961668735774], + (0.95, 4.0): [-0.37041675177340955, -0.063815687118939465, 0.014115210247737845, -0.00089996098435117598], + (0.95, 5.0): [-0.35152398291152309, -0.052156502640669317, 0.010753738086401853, -0.0005986841939451575], + (0.95, 6.0): [-0.33806730015201264, -0.045668399809578597, 0.0093168898952878162, -0.00051369719615782102], + (0.95, 7.0): [-0.32924041072104465, -0.040019601775490091, 0.0080051199552865163, -0.00042054536135868043], + (0.95, 8.0): [-0.32289030266989077, -0.035575345931670443, 0.0070509089344694669, -0.00035980773304803576], + (0.95, 9.0): [-0.31767304201477375, -0.032464945930165703, 0.0064755950437272143, -0.0003316676253661824], + (0.95, 10.0): [-0.31424318064708656, -0.029133461621153, 0.0057437449431074795, -0.00027894252261209191], + (0.95, 11.0): [-0.31113589620384974, -0.02685115250591049, 0.0053517905282942889, -0.00026155954116874666], + (0.95, 12.0): [-0.30848983612414582, -0.025043238019239168, 0.0050661675913488829, -0.00025017202909614005], + (0.95, 13.0): [-0.3059212907410393, -0.023863874699213077, 0.0049618051135807322, -0.00025665425781125703], + (0.95, 14.0): [-0.30449676902720035, -0.021983976741572344, 0.0045740513735751968, -0.00022881166323945914], + (0.95, 15.0): [-0.30264908294481396, -0.02104880307520084, 0.0044866571614804382, -0.00023187587597844057], + (0.95, 16.0): [-0.30118294463097917, -0.020160231061926728, 0.0044170780759056859, -0.00023733502359045826], + (0.95, 17.0): [-0.30020013353427744, -0.018959271614471574, 0.0041925333038202285, -0.00022274025630789767], + (0.95, 18.0): [-0.29857886556874402, -0.018664437456802001, 0.0042557787632833697, -0.00023758868868853716], + (0.95, 19.0): [-0.29796289236978263, -0.017632218552317589, 0.0040792779937959866, -0.00022753271474613109], + (0.95, 20.0): [-0.29681506554838077, -0.017302563243037392, 0.0041188426221428964, -0.00023913038468772782], + (0.95, 24.0): [-0.29403146911167666, -0.015332330986025032, 0.0039292170319163728, -0.00024003445648641732], + (0.95, 30.0): [-0.29080775563775879, -0.013844059210779323, 0.0039279165616059892, -0.00026085104496801666], + (0.95, 40.0): [-0.28821583032805109, -0.011894686715666892, 0.0038202623278839982, -0.00026933325102031252], + (0.95, 60.0): [-0.28525636737751447, -0.010235910558409797, 0.0038147029777580001, -0.00028598362144178959], + (0.95, 120.0): [-0.28241065885026539, -0.0086103836327305026, 0.0038450612886908714, -0.00030206053671559411], + (0.95, inf): [-0.27885570064169296, -0.0078122455524849222, 0.0041798538053623453, -0.0003469494881774609], + (0.975, 1.0): [-0.65203598304297983, -0.12608944279227957, 0.035710038757117347, -0.0028116024425349053], + (0.975, 2.0): [-0.46371891130382281, -0.096954458319996509, 0.023958312519912289, -0.0017124565391080503], + (0.975, 3.0): [-0.38265282195259875, -0.076782539231612282, 0.017405078796142955, -0.0011610853687902553], + (0.975, 4.0): [-0.34051193158878401, -0.063652342734671602, 0.013528310336964293, -0.00083644708934990761], + (0.975, 5.0): [-0.31777655705536484, -0.051694686914334619, 0.010115807205265859, -0.00054517465344192009], + (0.975, 6.0): [-0.30177149019958716, -0.044806697631189059, 0.008483551848413786, -0.00042827853925009264], + (0.975, 7.0): [-0.29046972313293562, -0.039732822689098744, 0.007435356037378946, -0.00037562928283350671], + (0.975, 8.0): [-0.28309484007368141, -0.034764904940713388, 0.0062932513694928518, -0.00029339243611357956], + (0.975, 9.0): [-0.27711707948119785, -0.031210465194810709, 0.0055576244284178435, -0.00024663798208895803], + (0.975, 10.0): [-0.27249203448553611, -0.028259756468251584, 0.00499112012528406, -0.00021535380417035389], + (0.975, 11.0): [-0.26848515860011007, -0.026146703336893323, 0.0046557767110634073, -0.00020400628148271448], + (0.975, 12.0): [-0.26499921540008192, -0.024522931106167097, 0.0044259624958665278, -0.00019855685376441687], + (0.975, 13.0): [-0.2625023751891592, -0.022785875653297854, 0.004150277321193792, -0.00018801223218078264], + (0.975, 14.0): [-0.26038552414321758, -0.021303509859738341, 0.0039195608280464681, -0.00017826200169385824], + (0.975, 15.0): [-0.25801244886414665, -0.020505508012402567, 0.0038754868932712929, -0.00018588907991739744], + (0.975, 16.0): [-0.25685316062360508, -0.018888418269740373, 0.0035453092842317293, -0.00016235770674204116], + (0.975, 17.0): [-0.25501132271353549, -0.018362951972357794, 0.0035653933105288631, -0.00017470353354992729], + (0.975, 18.0): [-0.25325045404452656, -0.017993537285026156, 0.0036035867405376691, -0.00018635492166426884], + (0.975, 19.0): [-0.25236899494677928, -0.016948921372207198, 0.0034138931781330802, -0.00017462253414687881], + (0.975, 20.0): [-0.25134498025027691, -0.016249564498874988, 0.0033197284005334333, -0.00017098091103245596], + (0.975, 24.0): [-0.24768690797476625, -0.014668160763513996, 0.0032850791186852558, -0.00019013480716844995], + (0.975, 30.0): [-0.24420834707522676, -0.012911171716272752, 0.0031977676700968051, -0.00020114907914487053], + (0.975, 40.0): [-0.24105725356215926, -0.010836526056169627, 0.0030231303550754159, -0.00020128696343148667], + (0.975, 60.0): [-0.23732082703955223, -0.0095442727157385391, 0.0031432904473555259, -0.00023062224109383941], + (0.975, 120.0): [-0.23358581879594578, -0.0081281259918709343, 0.0031877298679120094, -0.00024496230446851501], + (0.975, inf): [-0.23004105093119268, -0.0067112585174133573, 0.0032760251638919435, -0.00026244001319462992], + (0.99, 1.0): [-0.65154119422706203, -0.1266603927572312, 0.03607480609672048, -0.0028668112687608113], + (0.99, 2.0): [-0.45463403324378804, -0.098701236234527367, 0.024412715761684689, -0.0017613772919362193], + (0.99, 3.0): [-0.36402060051035778, -0.079244959193729148, 0.017838124021360584, -0.00119080116484847], + (0.99, 4.0): [-0.31903506063953818, -0.061060740682445241, 0.012093154962939612, -0.00067268347188443093], + (0.99, 5.0): [-0.28917014580689182, -0.052940780099313689, 0.010231009146279354, -0.00057178339184615239], + (0.99, 6.0): [-0.27283240161179012, -0.042505435573209085, 0.0072753401118264534, -0.00031314034710725922], + (0.99, 7.0): [-0.25773968720546719, -0.039384214480463406, 0.0069120882597286867, -0.00032994068754356204], + (0.99, 8.0): [-0.24913629282433833, -0.033831567178432859, 0.0055516244725724185, -0.00022570786249671376], + (0.99, 9.0): [-0.24252380896373404, -0.029488280751457097, 0.0045215453527922998, -0.00014424552929022646], + (0.99, 10.0): [-0.23654349556639986, -0.02705600214566789, 0.0041627255469343632, -0.00013804427029504753], + (0.99, 11.0): [-0.23187404969432468, -0.024803662094970855, 0.0037885852786822475, -0.00012334999287725012], + (0.99, 12.0): [-0.22749929386320905, -0.023655085290534145, 0.0037845051889055896, -0.00014785715789924055], + (0.99, 13.0): [-0.22458989143485605, -0.021688394892771506, 0.0034075294601425251, -0.00012436961982044268], + (0.99, 14.0): [-0.22197623872225777, -0.020188830700102918, 0.0031648685865587473, -0.00011320740119998819], + (0.99, 15.0): [-0.2193924323730066, -0.019327469111698265, 0.0031295453754886576, -0.00012373072900083014], + (0.99, 16.0): [-0.21739436875855705, -0.018215854969324128, 0.0029638341057222645, -0.00011714667871412003], + (0.99, 17.0): [-0.21548926805467686, -0.017447822179412719, 0.0028994805120482812, -0.00012001887015183794], + (0.99, 18.0): [-0.21365014687077843, -0.01688869353338961, 0.0028778031289216546, -0.00012591199104792711], + (0.99, 19.0): [-0.21236653761262406, -0.016057151563612645, 0.0027571468998022017, -0.00012049196593780046], + (0.99, 20.0): [-0.21092693178421842, -0.015641706950956638, 0.0027765989877361293, -0.00013084915163086915], + (0.99, 24.0): [-0.20681960327410207, -0.013804298040271909, 0.0026308276736585674, -0.0001355061502101814], + (0.99, 30.0): [-0.20271691131071576, -0.01206095288359876, 0.0025426138004198909, -0.00014589047959047533], + (0.99, 40.0): [-0.19833098054449289, -0.010714533963740719, 0.0025985992420317597, -0.0001688279944262007], + (0.99, 60.0): [-0.19406768821236584, -0.0093297106482013985, 0.0026521518387539584, -0.00018884874193665104], + (0.99, 120.0): [-0.19010213174677365, -0.0075958207221300924, 0.0025660823297025633, -0.00018906475172834352], + (0.99, inf): [-0.18602070255787137, -0.0062121155165363188, 0.0026328293420766593, -0.00020453366529867131], + (0.995, 1.0): [-0.65135583544951825, -0.1266868999507193, 0.036067522182457165, -0.0028654516958844922], + (0.995, 2.0): [-0.45229774013072793, -0.09869462954369547, 0.024381858599368908, -0.0017594734553033394], + (0.995, 3.0): [-0.35935765236429706, -0.076650408326671915, 0.016823026893528978, -0.0010835134496404637], + (0.995, 4.0): [-0.30704474720931169, -0.063093047731613019, 0.012771683306774929, -0.00075852491621809955], + (0.995, 5.0): [-0.27582551740863454, -0.052533353137885791, 0.0097776009845174372, -0.00051338031756399129], + (0.995, 6.0): [-0.25657971464398704, -0.043424914996692286, 0.0074324147435969991, -0.00034105188850494067], + (0.995, 7.0): [-0.24090407819707738, -0.039591604712200287, 0.0068848429451020387, -0.00034737131709273414], + (0.995, 8.0): [-0.23089540800827862, -0.034353305816361958, 0.0056009527629820111, -0.00024389336976992433], + (0.995, 9.0): [-0.22322694848310584, -0.030294770709722547, 0.0046751239747245543, -0.00017437479314218922], + (0.995, 10.0): [-0.21722684126671632, -0.026993563560163809, 0.0039811592710905491, -0.00013135281785826703], + (0.995, 11.0): [-0.21171635822852911, -0.025156193618212551, 0.0037507759652964205, -0.00012959836685175671], + (0.995, 12.0): [-0.20745332165849167, -0.023318819535607219, 0.0034935020002058903, -0.00012642826898405916], + (0.995, 13.0): [-0.20426054591612508, -0.021189796175249527, 0.003031472176128759, -9.0497733877531618e-05], + (0.995, 14.0): [-0.20113536905578902, -0.020011536696623061, 0.0029215880889956729, -9.571527213951222e-05], + (0.995, 15.0): [-0.19855601561006403, -0.018808533734002542, 0.0027608859956002344, -9.2472995256929217e-05], + (0.995, 16.0): [-0.19619157579534008, -0.017970461530551096, 0.0027113719105000371, -9.9864874982890861e-05], + (0.995, 17.0): [-0.19428015140726104, -0.017009762497670704, 0.0025833389598201345, -9.6137545738061124e-05], + (0.995, 18.0): [-0.19243180236773033, -0.01631617252107519, 0.0025227443561618621, -9.8067580523432881e-05], + (0.995, 19.0): [-0.19061294393069844, -0.01586226613672222, 0.0025207005902641781, -0.00010466151274918466], + (0.995, 20.0): [-0.18946302696580328, -0.014975796567260896, 0.0023700506576419867, -9.5507779057884629e-05], + (0.995, 24.0): [-0.18444251428695257, -0.013770955893918012, 0.0024579445553339903, -0.00012688402863358003], + (0.995, 30.0): [-0.18009742499570078, -0.011831341846559026, 0.0022801125189390046, -0.00012536249967254906], + (0.995, 40.0): [-0.17562721880943261, -0.010157142650455463, 0.0022121943861923474, -0.000134542652873434], + (0.995, 60.0): [-0.17084630673594547, -0.0090224965852754805, 0.0023435529965815565, -0.00016240306777440115], + (0.995, 120.0): [-0.16648414081054147, -0.0074792163241677225, 0.0023284585524533607, -0.00017116464012147041], + (0.995, inf): [-0.16213921875452461, -0.0058985998630496144, 0.0022605819363689093, -0.00016896211491119114], + (0.999, 1.0): [-0.65233994072089363, -0.12579427445444219, 0.035830577995679271, -0.0028470555202945564], + (0.999, 2.0): [-0.45050164311326341, -0.098294804380698292, 0.024134463919493736, -0.0017269603956852841], + (0.999, 3.0): [-0.35161741499307819, -0.076801152272374273, 0.016695693063138672, -0.0010661121974071864], + (0.999, 4.0): [-0.29398448788574133, -0.06277319725219685, 0.012454220010543127, -0.00072644165723402445], + (0.999, 5.0): [-0.25725364564365477, -0.053463787584337355, 0.0099664236557431545, -0.00054866039388980659], + (0.999, 6.0): [-0.23674225795168574, -0.040973155890031254, 0.0062599481191736696, -0.00021565734226586692], + (0.999, 7.0): [-0.21840108878983297, -0.037037020271877719, 0.0055908063671900703, -0.00020238790479809623], + (0.999, 8.0): [-0.2057964743918449, -0.032500885103194356, 0.0046441644585661756, -0.00014769592268680274], + (0.999, 9.0): [-0.19604592954882674, -0.029166922919677936, 0.0040644333111949814, -0.00012854052861297006], + (0.999, 10.0): [-0.18857328935948367, -0.026316705703161091, 0.0035897350868809275, -0.00011572282691335702], + (0.999, 11.0): [-0.18207431428535406, -0.024201081944369412, 0.0031647372098056077, -8.1145935982296439e-05], + (0.999, 12.0): [-0.17796358148991101, -0.021054306118620879, 0.0023968085939602055, -1.5907156771296993e-05], + (0.999, 13.0): [-0.17371965962745489, -0.019577162950177709, 0.0022391783473999739, -2.0613023472812558e-05], + (0.999, 14.0): [-0.16905298116759873, -0.01967115985443986, 0.0026495208325889269, -9.1074275220634073e-05], + (0.999, 15.0): [-0.16635662558214312, -0.017903767183469876, 0.0022301322677100496, -5.1956773935885426e-05], + (0.999, 16.0): [-0.16388776549525449, -0.016671918839902419, 0.0020365289602744382, -4.3592447599724942e-05], + (0.999, 17.0): [-0.16131934177990759, -0.015998918405126326, 0.0019990454743285904, -4.8176277491327653e-05], + (0.999, 18.0): [-0.15880633110376571, -0.015830715141055916, 0.0021688405343832091, -8.061825248932771e-05], + (0.999, 19.0): [-0.15644841913314136, -0.015729364721105681, 0.0022981443610378136, -0.00010093672643417343], + (0.999, 20.0): [-0.15516596606222705, -0.014725095968258637, 0.0021117117014292155, -8.8806880297328484e-05], + (0.999, 24.0): [-0.14997437768645827, -0.012755323295476786, 0.0018871651510496939, -8.0896370662414938e-05], + (0.999, 30.0): [-0.14459974882323703, -0.011247323832877647, 0.0018637400643826279, -9.6415323191606741e-05], + (0.999, 40.0): [-0.13933285919392555, -0.0097151769692496587, 0.0018131251876208683, -0.00010452598991994023], + (0.999, 60.0): [-0.13424555343804143, -0.0082163027951669444, 0.0017883427892173382, -0.00011415865110808405], + (0.999, 120.0): [-0.12896119523040372, -0.0070426701112581112, 0.0018472364154226955, -0.00012862202979478294], + (0.999, inf): [-0.12397213562666673, -0.0056901201604149998, 0.0018260689406957129, -0.00013263452567995485]} + +# p values that are defined in the A table +p_keys = [.1,.5,.675,.75,.8,.85,.9,.95,.975,.99,.995,.999] + +# v values that are defined in the A table +v_keys = lrange(2, 21) + [24, 30, 40, 60, 120, inf] + +def _isfloat(x): + """ + returns True if x is a float, + returns False otherwise + """ + try: + float(x) + except: + return False + + return True + +##def _phi(p): +## """returns the pth quantile inverse norm""" +## return scipy.stats.norm.isf(p) + +def _phi( p ): + # this function is faster than using scipy.stats.norm.isf(p) + # but the permissity of the license isn't explicitly listed. + # using scipy.stats.norm.isf(p) is an acceptable alternative + + """ + Modified from the author's original perl code (original comments follow below) + by dfield@yahoo-inc.com. May 3, 2004. + + Lower tail quantile for standard normal distribution function. + + This function returns an approximation of the inverse cumulative + standard normal distribution function. I.e., given P, it returns + an approximation to the X satisfying P = Pr{Z <= X} where Z is a + random variable from the standard normal distribution. + + The algorithm uses a minimax approximation by rational functions + and the result has a relative error whose absolute value is less + than 1.15e-9. + + Author: Peter John Acklam + Time-stamp: 2000-07-19 18:26:14 + E-mail: pjacklam@online.no + WWW URL: http://home.online.no/~pjacklam + """ + + if p <= 0 or p >= 1: + # The original perl code exits here, we'll throw an exception instead + raise ValueError( "Argument to ltqnorm %f must be in open interval (0,1)" % p ) + + # Coefficients in rational approximations. + a = (-3.969683028665376e+01, 2.209460984245205e+02, \ + -2.759285104469687e+02, 1.383577518672690e+02, \ + -3.066479806614716e+01, 2.506628277459239e+00) + b = (-5.447609879822406e+01, 1.615858368580409e+02, \ + -1.556989798598866e+02, 6.680131188771972e+01, \ + -1.328068155288572e+01 ) + c = (-7.784894002430293e-03, -3.223964580411365e-01, \ + -2.400758277161838e+00, -2.549732539343734e+00, \ + 4.374664141464968e+00, 2.938163982698783e+00) + d = ( 7.784695709041462e-03, 3.224671290700398e-01, \ + 2.445134137142996e+00, 3.754408661907416e+00) + + # Define break-points. + plow = 0.02425 + phigh = 1 - plow + + # Rational approximation for lower region: + if p < plow: + q = math.sqrt(-2*math.log(p)) + return -(((((c[0]*q+c[1])*q+c[2])*q+c[3])*q+c[4])*q+c[5]) / \ + ((((d[0]*q+d[1])*q+d[2])*q+d[3])*q+1) + + # Rational approximation for upper region: + if phigh < p: + q = math.sqrt(-2*math.log(1-p)) + return (((((c[0]*q+c[1])*q+c[2])*q+c[3])*q+c[4])*q+c[5]) / \ + ((((d[0]*q+d[1])*q+d[2])*q+d[3])*q+1) + + # Rational approximation for central region: + q = p - 0.5 + r = q*q + return -(((((a[0]*r+a[1])*r+a[2])*r+a[3])*r+a[4])*r+a[5])*q / \ + (((((b[0]*r+b[1])*r+b[2])*r+b[3])*r+b[4])*r+1) + +def _ptransform(p): + """function for p-value abcissa transformation""" + return -1. / (1. + 1.5 * _phi((1. + p)/2.)) + +def _func(a, p, r, v): + """ + calculates f-hat for the coefficients in a, probability p, + sample mean difference r, and degrees of freedom v. + """ + # eq. 2.3 + f = a[0]*math.log(r-1.) + \ + a[1]*math.log(r-1.)**2 + \ + a[2]*math.log(r-1.)**3 + \ + a[3]*math.log(r-1.)**4 + + # eq. 2.7 and 2.8 corrections + if r == 3: + f += -0.002 / (1. + 12. * _phi(p)**2) + + if v <= 4.364: + f += 1./517. - 1./(312.*(v,1e38)[np.isinf(v)]) + else: + f += 1./(191.*(v,1e38)[np.isinf(v)]) + + return -f + +def _select_ps(p): + # There are more generic ways of doing this but profiling + # revealed that selecting these points is one of the slow + # things that is easy to change. This is about 11 times + # faster than the generic algorithm it is replacing. + # + # it is possible that different break points could yield + # better estimates, but the function this is refactoring + # just used linear distance. + """returns the points to use for interpolating p""" + if p >= .99: + return .990, .995, .999 + elif p >= .975: + return .975, .990, .995 + elif p >= .95: + return .950, .975, .990 + elif p >= .9125: + return .900, .950, .975 + elif p >= .875: + return .850, .900, .950 + elif p >= .825: + return .800, .850, .900 + elif p >= .7625: + return .750, .800, .850 + elif p >= .675: + return .675, .750, .800 + elif p >= .500: + return .500, .675, .750 + else: + return .100, .500, .675 + +def _interpolate_p(p, r, v): + """ + interpolates p based on the values in the A table for the + scalar value of r and the scalar value of v + """ + + # interpolate p (v should be in table) + # if .5 < p < .75 use linear interpolation in q + # if p > .75 use quadratic interpolation in log(y + r/v) + # by -1. / (1. + 1.5 * _phi((1. + p)/2.)) + + # find the 3 closest v values + p0, p1, p2 = _select_ps(p) + try: + y0 = _func(A[(p0, v)], p0, r, v) + 1. + except: + print(p,r,v) + y1 = _func(A[(p1, v)], p1, r, v) + 1. + y2 = _func(A[(p2, v)], p2, r, v) + 1. + + y_log0 = math.log(y0 + float(r)/float(v)) + y_log1 = math.log(y1 + float(r)/float(v)) + y_log2 = math.log(y2 + float(r)/float(v)) + + # If p < .85 apply only the ordinate transformation + # if p > .85 apply the ordinate and the abcissa transformation + # In both cases apply quadratic interpolation + if p > .85: + p_t = _ptransform(p) + p0_t = _ptransform(p0) + p1_t = _ptransform(p1) + p2_t = _ptransform(p2) + + # calculate derivatives for quadratic interpolation + d2 = 2*((y_log2-y_log1)/(p2_t-p1_t) - \ + (y_log1-y_log0)/(p1_t-p0_t))/(p2_t-p0_t) + if (p2+p0)>=(p1+p1): + d1 = (y_log2-y_log1)/(p2_t-p1_t) - 0.5*d2*(p2_t-p1_t) + else: + d1 = (y_log1-y_log0)/(p1_t-p0_t) + 0.5*d2*(p1_t-p0_t) + d0 = y_log1 + + # interpolate value + y_log = (d2/2.) * (p_t-p1_t)**2. + d1 * (p_t-p1_t) + d0 + + # transform back to y + y = math.exp(y_log) - float(r)/float(v) + + elif p > .5: + # calculate derivatives for quadratic interpolation + d2 = 2*((y_log2-y_log1)/(p2-p1) - \ + (y_log1-y_log0)/(p1-p0))/(p2-p0) + if (p2+p0)>=(p1+p1): + d1 = (y_log2-y_log1)/(p2-p1) - 0.5*d2*(p2-p1) + else: + d1 = (y_log1-y_log0)/(p1-p0) + 0.5*d2*(p1-p0) + d0 = y_log1 + + # interpolate values + y_log = (d2/2.) * (p-p1)**2. + d1 * (p-p1) + d0 + + # transform back to y + y = math.exp(y_log) - float(r)/float(v) + + else: + # linear interpolation in q and p + q0 = math.sqrt(2) * -y0 * \ + scipy.stats.t.isf((1.+p0)/2., (v,1e38)[v>1e38]) + q1 = math.sqrt(2) * -y1 * \ + scipy.stats.t.isf((1.+p1)/2., (v,1e38)[v>1e38]) + + d1 = (q1-q0)/(p1-p0) + d0 = q0 + + # interpolate values + q = d1 * (p-p0) + d0 + + # transform back to y + y = -q / (math.sqrt(2) * \ + scipy.stats.t.isf((1.+p)/2., (v,1e38)[v>1e38])) + + return y + +def _select_vs(v, p): + # This one is is about 30 times faster than + # the generic algorithm it is replacing. + """returns the points to use for interpolating v""" + + if v >= 120.: + return 60, 120, inf + elif v >= 60.: + return 40, 60, 120 + elif v >= 40.: + return 30, 40, 60 + elif v >= 30.: + return 24, 30, 40 + elif v >= 24.: + return 20, 24, 30 + elif v >= 19.5: + return 19, 20, 24 + + if p >= .9: + if v < 2.5: + return 1, 2, 3 + else: + if v < 3.5: + return 2, 3, 4 + + vi = int(round(v)) + return vi - 1, vi, vi + 1 + +def _interpolate_v(p, r, v): + + """ + interpolates v based on the values in the A table for the + scalar value of r and th + """ + # interpolate v (p should be in table) + # ordinate: y**2 + # abcissa: 1./v + + # find the 3 closest v values + # only p >= .9 have table values for 1 degree of freedom. + # The boolean is used to index the tuple and append 1 when + # p >= .9 + v0, v1, v2 = _select_vs(v, p) + + # y = f - 1. + y0_sq = (_func(A[(p,v0)], p, r, v0) + 1.)**2. + y1_sq = (_func(A[(p,v1)], p, r, v1) + 1.)**2. + y2_sq = (_func(A[(p,v2)], p, r, v2) + 1.)**2. + + # if v2 is inf set to a big number so interpolation + # calculations will work + if v2 > 1e38: v2 = 1e38 + + # transform v + v_, v0_, v1_, v2_ = 1./v, 1./v0, 1./v1, 1./v2 + + # calculate derivatives for quadratic interpolation + d2 = 2.*((y2_sq-y1_sq)/(v2_-v1_) - \ + (y0_sq-y1_sq)/(v0_-v1_)) / (v2_-v0_) + if (v2_ + v0_) >= (v1_ + v1_): + d1 = (y2_sq-y1_sq) / (v2_-v1_) - 0.5*d2*(v2_-v1_) + else: + d1 = (y1_sq-y0_sq) / (v1_-v0_) + 0.5*d2*(v1_-v0_) + d0 = y1_sq + + # calculate y + y = math.sqrt((d2/2.)*(v_-v1_)**2. + d1*(v_-v1_)+ d0) + + return y + +def _qsturng(p, r, v): + """scalar version of qsturng""" +## print 'q',p + # r is interpolated through the q to y here we only need to + # account for when p and/or v are not found in the table. + global A, p_keys, v_keys + + if p < .1 or p > .999: + raise ValueError('p must be between .1 and .999') + + if p < .9: + if v < 2: + raise ValueError('v must be > 2 when p < .9') + else: + if v < 1: + raise ValueError('v must be > 1 when p >= .9') + + # The easy case. A tabled value is requested. + + #numpy 1.4.1: TypeError: unhashable type: 'numpy.ndarray' : + p = float(p) + if isinstance(v, np.ndarray): + v = v.item() + if (p,v) in A: + y = _func(A[(p,v)], p, r, v) + 1. + + elif p not in p_keys and v not in v_keys+([],[1])[p>=.90]: + # apply bilinear (quadratic) interpolation + # + # p0,v2 + o + p1,v2 + p2,v2 + # r2 + # + # 1 + # - (p,v) + # v x + # + # r1 + # p0,v1 + o + p1,v1 + p2,v1 + # + # + # p0,v0 + o r0 + p1,v0 + p2,v0 + # + # _ptransform(p) + # + # (p1 and v1 may be below or above (p,v). The algorithm + # works in both cases. For diagramatic simplicity it is + # shown as above) + # + # 1. at v0, v1, and v2 use quadratic interpolation + # to find r0, r1, r2 + # + # 2. use r0, r1, r2 and quadratic interpolaiton + # to find y and (p,v) + + # find the 3 closest v values + v0, v1, v2 = _select_vs(v, p) + + # find the 3 closest p values + p0, p1, p2 = _select_ps(p) + + # calculate r0, r1, and r2 + r0_sq = _interpolate_p(p, r, v0)**2 + r1_sq = _interpolate_p(p, r, v1)**2 + r2_sq = _interpolate_p(p, r, v2)**2 + + # transform v + v_, v0_, v1_, v2_ = 1./v, 1./v0, 1./v1, 1./v2 + + # calculate derivatives for quadratic interpolation + d2 = 2.*((r2_sq-r1_sq)/(v2_-v1_) - \ + (r0_sq-r1_sq)/(v0_-v1_)) / (v2_-v0_) + if (v2_ + v0_) >= (v1_ + v1_): + d1 = (r2_sq-r1_sq) / (v2_-v1_) - 0.5*d2*(v2_-v1_) + else: + d1 = (r1_sq-r0_sq) / (v1_-v0_) + 0.5*d2*(v1_-v0_) + d0 = r1_sq + + # calculate y + y = math.sqrt((d2/2.)*(v_-v1_)**2. + d1*(v_-v1_)+ d0) + + elif v not in v_keys+([],[1])[p>=.90]: + y = _interpolate_v(p, r, v) + + elif p not in p_keys: + y = _interpolate_p(p, r, v) + + return math.sqrt(2) * -y * \ + scipy.stats.t.isf((1.+p)/2., (v,1e38)[v>1e38]) + +# make a qsturng functinon that will accept list-like objects +_vqsturng = np.vectorize(_qsturng) +_vqsturng.__doc__ = """vector version of qsturng""" + +def qsturng(p, r, v): + """Approximates the quantile p for a studentized range + distribution having v degrees of freedom and r samples + for probability p. + + Parameters + ---------- + p : (scalar, array_like) + The cumulative probability value + p >= .1 and p <=.999 + (values under .5 are not recommended) + r : (scalar, array_like) + The number of samples + r >= 2 and r <= 200 + (values over 200 are permitted but not recommended) + v : (scalar, array_like) + The sample degrees of freedom + if p >= .9: + v >=1 and v >= inf + else: + v >=2 and v >= inf + + Returns + ------- + q : (scalar, array_like) + approximation of the Studentized Range + + """ + + if all(map(_isfloat, [p, r, v])): + return _qsturng(p, r, v) + return _vqsturng(p, r, v) + +##def _qsturng0(p, r, v): +#### print 'q0',p +## """ +## returns a first order approximation of q studentized range +## value. Based on Lund and Lund's 1983 based on the FORTRAN77 +## algorithm AS 190.2 Appl. Statist. (1983). +## """ +## vmax = 120. +## c = [0.8843, 0.2368, 1.214, 1.208, 1.4142] +## +## t = -_phi(.5+.5*p) +## if (v < vmax): +## t += (t**3. + t) / float(v) / 4. +## +## q = c[0] - c[1] * t +## if (v < vmax): +## q = q - c[2] / float(v) + c[3] * t / float(v) +## q = t * (q * math.log(r - 1.) + c[4]) +## +## # apply "bar napkin" correction for when p < .85 +## # this is good enough for our intended purpose +## if p < .85: +## q += math.log10(r) * 2.25 * (.85-p) +## return q + +def _psturng(q, r, v): + """scalar version of psturng""" + if q < 0.: + raise ValueError('q should be >= 0') + + opt_func = lambda p, r, v : abs(_qsturng(p, r, v) - q) + + if v == 1: + if q < _qsturng(.9, r, 1): + return .1 + elif q > _qsturng(.999, r, 1): + return .001 + return 1. - fminbound(opt_func, .9, .999, args=(r,v)) + else: + if q < _qsturng(.1, r, v): + return .9 + elif q > _qsturng(.999, r, v): + return .001 + return 1. - fminbound(opt_func, .1, .999, args=(r,v)) + +_vpsturng = np.vectorize(_psturng) +_vpsturng.__doc__ = """vector version of psturng""" + +def psturng(q, r, v): + """Evaluates the probability from 0 to q for a studentized + range having v degrees of freedom and r samples. + + Parameters + ---------- + q : (scalar, array_like) + quantile value of Studentized Range + q >= 0. + r : (scalar, array_like) + The number of samples + r >= 2 and r <= 200 + (values over 200 are permitted but not recommended) + v : (scalar, array_like) + The sample degrees of freedom + if p >= .9: + v >=1 and v >= inf + else: + v >=2 and v >= inf + + Returns + ------- + p : (scalar, array_like) + 1. - area from zero to q under the Studentized Range + distribution. When v == 1, p is bound between .001 + and .1, when v > 1, p is bound between .001 and .9. + Values between .5 and .9 are 1st order appoximations. + + """ + if all(map(_isfloat, [q, r, v])): + return _psturng(q, r, v) + return _vpsturng(q, r, v) + +##p, r, v = .9, 10, 20 +##print +##print 'p and v interpolation' +##print '\t20\t22\t24' +##print '.75',qsturng(.75, r, 20),qsturng(.75, r, 22),qsturng(.75, r, 24) +##print '.85',qsturng(.85, r, 20),qsturng(.85, r, 22),qsturng(.85, r, 24) +##print '.90',qsturng(.90, r, 20),qsturng(.90, r, 22),qsturng(.90, r, 24) +##print +##print 'p and v interpolation' +##print '\t120\t500\tinf' +##print '.950',qsturng(.95, r, 120),qsturng(.95, r, 500),qsturng(.95, r, inf) +##print '.960',qsturng(.96, r, 120),qsturng(.96, r, 500),qsturng(.96, r, inf) +##print '.975',qsturng(.975, r, 120),qsturng(.975, r, 500),qsturng(.975, r, inf) +##print +##print 'p and v interpolation' +##print '\t40\t50\t60' +##print '.950',qsturng(.95, r, 40),qsturng(.95, r, 50),qsturng(.95, r, 60) +##print '.960',qsturng(.96, r, 40),qsturng(.96, r, 50),qsturng(.96, r, 60) +##print '.975',qsturng(.975, r, 40),qsturng(.975, r, 50),qsturng(.975, r, 60) +##print +##print 'p and v interpolation' +##print '\t20\t22\t24' +##print '.50',qsturng(.5, r, 20),qsturng(.5, r, 22),qsturng(.5, r, 24) +##print '.60',qsturng(.6, r, 20),qsturng(.6, r, 22),qsturng(.6, r, 24) +##print '.75',qsturng(.75, r, 20),qsturng(.75, r, 22),qsturng(.75, r, 24) diff --git a/statsmodels/stats/libqsturng/tests/__init__.py b/statsmodels/stats/libqsturng/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/stats/libqsturng/tests/bootleg.dat b/statsmodels/stats/libqsturng/tests/bootleg.dat new file mode 100644 index 0000000..7007c11 --- /dev/null +++ b/statsmodels/stats/libqsturng/tests/bootleg.dat @@ -0,0 +1,9265 @@ +0.950300,2,4.43400,3.787121 +0.613586,75,149.1170,4.974391 +0.8372366,53,501.2317,5.193843 +0.9023396,58,546.2543,5.495572 +0.9061918,96,424.4232,5.856011 +0.7911643,8,200.5667,3.511362 +0.5360133,7,806.1763,2.722873 +0.6327574,56,56.17163,4.84627 +0.7634097,28,996.1946,4.506239 +0.5940891,78,56.14756,5.015406 +0.7991432,12,157.4574,3.92541 +0.6599134,72,944.1173,4.99709 +0.6845088,98,268.675,5.280095 +0.6883003,80,632.1445,5.128627 +0.787793,90,178.9085,5.466432 +0.5937039,11,637.886,3.312434 +0.6812908,31,477.9169,4.407207 +0.6260902,30,145.0597,4.289132 +0.5198778,20,172.1525,3.732414 +0.551296,21,539.7639,3.826797 +0.9473277,43,364.0211,5.573688 +0.6470059,32,446.2837,4.363963 +0.7304492,69,854.5265,5.104756 +0.8461879,49,341.8976,5.17709 +0.6998816,32,420.9467,4.473319 +0.7708307,73,782.7106,5.234264 +0.8517651,65,50.74249,5.601281 +0.7680614,23,782.7298,4.362934 +0.6772532,10,62.75346,3.446085 +0.8061568,53,941.9258,5.094457 +0.535348,87,579.7095,4.927541 +0.7317784,8,760.4088,3.322854 +0.647424,35,973.2097,4.430608 +0.7205917,62,451.4614,5.016029 +0.8310729,46,867.2378,5.064711 +0.7092925,93,252.9435,5.294547 +0.7614025,42,18.29759,5.194786 +0.768294,92,443.8754,5.398033 +0.611393,96,660.7554,5.120007 +0.5584655,9,544.9949,3.037984 +0.5757473,27,207.4046,4.096346 +0.7165018,66,868.694,5.044124 +0.8916566,90,891.3335,5.730434 +0.930496,81,680.2784,5.855139 +0.9493338,21,814.3338,5.058685 +0.8789807,96,958.6534,5.722715 +0.6453387,99,32.75148,5.368509 +0.9432753,88,44.19807,6.429427 +0.7734237,11,481.0691,3.747131 +0.9275644,15,31.61525,4.961554 +0.8814721,68,452.8735,5.521471 +0.5684593,38,359.6916,4.35714 +0.7915564,34,395.8539,4.741082 +0.6212993,97,578.4411,5.14523 +0.786856,89,643.049,5.411403 +0.5872209,30,947.6958,4.193762 +0.863228,58,644.4567,5.336585 +0.6852954,2,650.4337,1.422949 +0.8156778,80,626.9999,5.412793 +0.7758632,40,146.7813,4.857534 +0.6193542,63,757.0062,4.82912 +0.698619,62,144.0496,5.004096 +0.924634,5,682.612,3.647421 +0.6921237,49,433.7529,4.784743 +0.6682577,12,709.6476,3.557659 +0.7406304,98,958.277,5.368286 +0.5085852,22,433.0734,3.789960 +0.8567905,78,869.9651,5.511207 +0.6796293,27,770.1198,4.288455 +0.8970843,7,914.6475,3.798629 +0.8490929,46,340.834,5.141464 +0.609374,71,516.113,4.902681 +0.8709478,20,759.5428,4.57836 +0.720285,94,205.1919,5.332692 +0.7809733,3,290.1928,2.359907 +0.6695694,62,545.2842,4.911675 +0.6835529,2,482.5781,1.418211 +0.8061166,2,952.5813,1.83861 +0.5194726,41,996.1952,4.328192 +0.8214913,51,699.2729,5.113396 +0.7761068,36,304.3256,4.749856 +0.7338799,63,84.29842,5.132537 +0.5905524,53,981.4905,4.648476 +0.9062086,43,145.8958,5.377721 +0.6504464,84,494.4505,5.096346 +0.8689327,93,276.0934,5.706336 +0.5645257,7,580.0792,2.785004 +0.650522,63,428.5393,4.890803 +0.839554,48,209.0835,5.161268 +0.6790368,57,874.8717,4.863635 +0.8461706,95,497.4795,5.621337 +0.9483254,95,113.4526,6.237262 +0.6620466,71,782.7844,4.992363 +0.6950035,72,745.4756,5.064967 +0.6869721,9,119.0430,3.344547 +0.6628797,22,627.2988,4.08501 +0.658888,51,74.652,4.809383 +0.830574,75,794.5755,5.406187 +0.6937293,17,435.4039,3.933864 +0.7577239,24,225.9839,4.390343 +0.7776778,92,830.089,5.408262 +0.764957,95,124.2182,5.472132 +0.9206389,17,727.5881,4.694345 +0.898351,70,950.8781,5.591991 +0.7973998,11,220.2692,3.831447 +0.7214944,95,380.3205,5.322659 +0.9238978,77,787.5278,5.781355 +0.9244872,91,512.0104,5.905293 +0.8909669,68,452.4798,5.559568 +0.7084065,65,626.041,5.02022 +0.6307753,75,215.9268,4.995051 +0.8594055,84,115.6110,5.675496 +0.6989477,97,849.4333,5.279922 +0.5869843,18,815.1642,3.756967 +0.8016823,64,250.8206,5.246913 +0.551895,33,760.6953,4.20931 +0.81746,45,312.4948,5.029417 +0.8709936,16,101.5497,4.468421 +0.937709,65,792.7134,5.753211 +0.7804762,54,582.7179,5.048146 +0.9183745,25,969.7477,4.970277 +0.5937925,3,661.8292,1.812094 +0.6098205,49,786.0637,4.623535 +0.8903852,67,28.15358,6.025434 +0.6488511,78,214.1912,5.057178 +0.7700727,11,126.2421,3.76314 +0.7121162,3,981.2008,2.131666 +0.9040377,61,285.9408,5.56359 +0.8668537,67,443.4215,5.457901 +0.5564086,54,254.5303,4.614918 +0.627594,59,711.7653,4.795566 +0.6236158,61,657.5285,4.813821 +0.7054692,26,43.02735,4.42352 +0.7985678,9,555.6648,3.635557 +0.6175037,12,67.01567,3.478781 +0.6436729,69,202.2135,4.959957 +0.7975962,58,778.9944,5.138275 +0.8657938,40,971.3195,5.077273 +0.6125781,39,258.3901,4.462404 +0.9230684,25,77.91052,5.146124 +0.7718941,5,182.3003,2.958140 +0.7183858,72,772.0861,5.111052 +0.685252,40,419.2469,4.616958 +0.6817711,87,990.548,5.170921 +0.5134425,24,350.7156,3.875863 +0.94244,4,786.998,3.564546 +0.7367939,90,898.815,5.302826 +0.6982901,53,512.9667,4.853358 +0.8511483,81,141.8637,5.598955 +0.7122271,3,821.5797,2.132261 +0.6902148,100,284.2936,5.303542 +0.752643,43,13.40143,5.308534 +0.5762477,9,569.3049,3.075412 +0.7480166,44,857.6439,4.816408 +0.6270913,97,676.256,5.153524 +0.5805739,80,18.0991,5.136321 +0.7211723,72,132.8565,5.167092 +0.5795756,63,76.89864,4.807039 +0.5234776,36,451.4553,4.233053 +0.7375684,80,172.0776,5.265248 +0.8239995,55,480.0646,5.181428 +0.6456712,25,129.3303,4.181064 +0.9413013,18,492.3785,4.887695 +0.6400262,92,689.0314,5.138445 +0.6229059,57,874.2567,4.760222 +0.7065448,88,183.0431,5.262541 +0.6663917,13,565.7418,3.629029 +0.9066384,27,931.4407,4.964972 +0.8259662,60,730.302,5.240379 +0.509955,83,559.9251,4.853519 +0.6687699,6,160.4952,2.867927 +0.9091107,22,363.1985,4.843181 +0.5648102,29,715.7917,4.126072 +0.6017205,67,510.1983,4.847094 +0.7983275,36,631.9508,4.794933 +0.6861993,33,619.5893,4.46455 +0.5205803,3,373.5958,1.636966 +0.941117,7,165.7246,4.136368 +0.5513367,39,537.9881,4.344938 +0.7491319,33,712.8302,4.602413 +0.6254723,36,240.1404,4.424605 +0.8193866,70,553.8917,5.333919 +0.5924001,50,346.2979,4.615012 +0.5575877,27,865.5236,4.052604 +0.5018944,78,13.42953,4.940013 +0.6858643,54,573.8197,4.840953 +0.7754497,98,760.7202,5.447041 +0.9309805,15,106.4171,4.749156 +0.7597726,5,164.1182,2.92082 +0.8578071,63,712.2652,5.373159 +0.911167,28,868.7552,5.015934 +0.5224571,94,120.4146,4.983536 +0.6644315,34,415.3146,4.447791 +0.5462101,7,624.7674,2.745171 +0.7798522,66,174.2775,5.229032 +0.569931,57,455.0914,4.67309 +0.8878053,56,651.2573,5.404565 +0.7848387,81,320.6422,5.359167 +0.5205078,17,452.1213,3.580051 +0.5922637,73,327.3382,4.898999 +0.5512022,47,533.1254,4.49198 +0.6539785,40,392.5646,4.555385 +0.9167344,99,214.5807,5.970447 +0.9447369,70,653.8565,5.854829 +0.5827263,45,704.0173,4.510883 +0.7946362,93,162.5867,5.513278 +0.5436138,22,855.6748,3.851738 +0.755334,35,556.5636,4.665327 +0.9268,54,869.746,5.561617 +0.6648528,47,433.7503,4.699148 +0.7485304,40,104.7193,4.806957 +0.5944208,40,929.1871,4.438083 +0.63304,45,547.4467,4.603049 +0.9118431,61,722.6399,5.567566 +0.720652,41,136.0821,4.743472 +0.6774275,99,188.8005,5.285412 +0.831584,82,642.8835,5.473357 +0.5817278,35,948.0573,4.309129 +0.6321327,22,784.3597,4.020958 +0.5431548,6,33.4411,2.598251 +0.8314369,16,942.1906,4.250072 +0.5546019,19,383.3337,3.746123 +0.6336268,3,975.2953,1.913129 +0.6703074,56,212.3536,4.855753 +0.5791341,44,55.41561,4.543996 +0.832449,19,179.6793,4.428198 +0.7833847,6,281.2441,3.188186 +0.5525693,6,92.11777,2.598153 +0.7141683,7,921.7208,3.139066 +0.7843614,9,264.1729,3.599121 +0.606754,87,726.8536,5.041784 +0.6120415,55,113.5644,4.749394 +0.9244803,99,99.19521,6.1186 +0.7773096,72,404.2429,5.252044 +0.7321032,86,700.6788,5.264721 +0.6722015,41,789.2637,4.603417 +0.7958672,62,244.6047,5.209776 +0.8295918,10,6.976075,4.622355 +0.5160006,84,417.1381,4.873595 +0.6063104,73,665.1216,4.915447 +0.830313,83,11.62979,6.405052 +0.8513132,3,935.2863,2.641412 +0.9099108,3,417.3052,2.976535 +0.605142,74,990.551,4.920812 +0.7359311,83,209.5253,5.278422 +0.8584674,99,694.433,5.678823 +0.7176196,55,310.9431,4.929912 +0.5039214,7,637.0151,2.655203 +0.6650235,7,252.5402,3.020462 +0.7516747,70,917.9605,5.159777 +0.6465379,20,966.2776,3.967723 +0.6117417,88,75.03909,5.120178 +0.864727,75,289.4869,5.544036 +0.5883802,42,988.5053,4.465431 +0.6207718,23,879.597,4.03577 +0.6597833,68,606.3898,4.959428 +0.5598158,21,627.1537,3.842139 +0.8209666,67,874.9125,5.300291 +0.754866,31,387.6171,4.575651 +0.5617583,19,723.7774,3.756965 +0.9393174,42,25.75119,6.090044 +0.7692625,64,621.2697,5.141441 +0.830146,95,408.8041,5.579854 +0.5445154,48,780.368,4.495197 +0.6460441,59,973.451,4.826685 +0.7571193,45,550.3283,4.859351 +0.6482274,10,910.6333,3.336849 +0.6453257,21,545.4061,4.010011 +0.944077,78,659.1318,5.919355 +0.8283513,63,232.6015,5.315383 +0.6238383,11,967.5066,3.375429 +0.920555,46,867.953,5.417839 +0.6191617,46,776.0902,4.591981 +0.7967018,6,238.7104,3.234803 +0.5562811,39,286.7352,4.35847 +0.8249085,18,661.9321,4.329062 +0.7856145,93,373.0646,5.451036 +0.8761004,93,841.654,5.69398 +0.5903102,88,126.7508,5.053856 +0.562227,36,81.24771,4.330475 +0.8585568,35,110.9485,5.03868 +0.658002,20,873.0264,3.991925 +0.9010046,10,545.304,4.148382 +0.8207666,30,220.0453,4.746643 +0.6796628,32,559.4068,4.427563 +0.8855762,26,447.3963,4.851362 +0.7611639,21,45.28665,4.390651 +0.7989508,51,821.7299,5.04934 +0.5588384,4,680.0978,2.114002 +0.7111297,6,488.6605,2.970037 +0.9003013,54,250.8912,5.46936 +0.8809515,64,917.479,5.462105 +0.6448157,6,759.0248,2.799152 +0.7000096,37,44.38138,4.700476 +0.6277596,84,826.4453,5.051443 +0.7988169,74,951.265,5.309046 +0.9424629,74,662.1041,5.874126 +0.866492,13,842.4465,4.206892 +0.7708649,62,183.6289,5.158482 +0.80865,86,481.3468,5.449073 +0.5991751,43,384.7992,4.509275 +0.6546014,67,499.3364,4.941333 +0.7256747,90,25.19916,5.582922 +0.6444263,84,142.5535,5.116413 +0.8193781,12,485.8926,3.968518 +0.547869,51,404.5397,4.551553 +0.7970432,38,154.9913,4.873851 +0.7669612,19,557.0404,4.206081 +0.8033985,57,968.377,5.138517 +0.894136,13,536.4957,4.337067 +0.7043946,38,739.0528,4.61108 +0.7234408,68,913.6276,5.079187 +0.622099,91,584.9706,5.101498 +0.7255545,27,418.1564,4.395093 +0.738156,19,58.73154,4.209344 +0.6241422,12,365.6692,3.463702 +0.5562845,19,350.9198,3.749867 +0.7281854,18,287.1144,4.070209 +0.5441473,59,121.4531,4.674919 +0.8905086,2,729.1572,2.266193 +0.8592729,21,186.6340,4.60649 +0.7442184,57,795.9408,4.998402 +0.7555524,76,809.0712,5.227268 +0.877916,38,349.5582,5.107913 +0.5961259,95,272.5336,5.098577 +0.5287142,89,965.3442,4.931151 +0.7706853,29,189.9224,4.581958 +0.6129344,78,816.0259,4.973186 +0.6940203,55,531.936,4.871643 +0.803978,85,113.2280,5.506545 +0.6513668,25,526.0979,4.16961 +0.7241574,24,810.4252,4.289929 +0.8009436,45,635.4232,4.967361 +0.6470061,54,599.8603,4.766273 +0.7905274,64,819.1808,5.189099 +0.8141194,57,112.7480,5.249975 +0.720669,93,890.1649,5.292697 +0.614216,4,26.84620,2.288507 +0.5201955,22,549.9339,3.810220 +0.7562491,23,75.20277,4.404095 +0.571583,2,591.1712,1.120692 +0.59512,24,925.6549,4.022300 +0.8498783,51,746.2723,5.199169 +0.720653,78,121.3126,5.229377 +0.8377182,30,618.6129,4.774599 +0.762667,56,190.1399,5.062476 +0.6654569,8,794.2568,3.154298 +0.8495638,39,68.62068,5.144765 +0.8259046,98,385.4926,5.590565 +0.8993462,79,421.6472,5.698037 +0.6378225,65,660.0563,4.88584 +0.7901517,41,131.5250,4.921998 +0.7735304,58,618.8744,5.081568 +0.6989816,14,925.2804,3.769055 +0.9247961,57,654.44,5.592775 +0.6678873,93,282.5398,5.210545 +0.7042879,9,3.896124,4.158098 +0.9381184,66,860.4778,5.763955 +0.7818833,6,78.19807,3.212809 +0.736335,99,79.06835,5.473526 +0.8725626,54,313.8057,5.342032 +0.8541985,68,528.8019,5.419967 +0.6945799,38,362.9406,4.598808 +0.6583852,51,933.405,4.741364 +0.9193304,23,292.4528,4.942313 +0.6527448,47,170.3905,4.694595 +0.6754736,48,306.507,4.741562 +0.5866164,62,608.678,4.762358 +0.8885043,92,137.4909,5.833394 +0.5866438,56,51.31247,4.754496 +0.6316082,56,327.2022,4.772503 +0.5772445,42,369.953,4.451939 +0.6347414,69,600.227,4.924792 +0.8806151,58,225.7173,5.440272 +0.6856101,98,415.3002,5.271872 +0.6636807,38,29.98377,4.680520 +0.5607791,7,385.8438,2.778012 +0.8966284,69,454.385,5.59322 +0.7196528,5,498.2873,2.791415 +0.643225,6,481.3396,2.796659 +0.7213205,36,550.7978,4.608818 +0.592653,34,996.0012,4.305271 +0.6135537,26,494.7108,4.127973 +0.8180465,5,587.1134,3.108012 +0.925586,34,608.966,5.243092 +0.712478,75,373.8838,5.139195 +0.8216724,78,524.4142,5.415784 +0.5777971,21,464.5309,3.877573 +0.7139551,73,652.4754,5.113785 +0.7583686,100,864.008,5.420804 +0.8995945,37,254.1523,5.196644 +0.6556193,50,675.7596,4.723593 +0.7279657,66,13.24369,5.578575 +0.7057946,67,68.34087,5.130584 +0.7979024,86,781.665,5.412042 +0.9401606,51,916.6018,5.606526 +0.6162031,43,280.8828,4.544513 +0.6506508,76,152.7170,5.053203 +0.9455006,37,84.7852,5.604932 +0.8825633,98,499.5796,5.765177 +0.7146368,73,172.6922,5.149105 +0.643779,66,744.6761,4.906691 +0.9246844,91,656.3491,5.897993 +0.6049427,97,825.6836,5.114873 +0.5431938,26,882.958,3.994681 +0.8126032,69,46.41403,5.517239 +0.7602118,7,182.2327,3.282168 +0.6820787,80,35.74084,5.289847 +0.7242503,71,633.399,5.115542 +0.762124,52,96.81844,5.048513 +0.5761674,27,795.3923,4.086751 +0.7674945,87,355.5641,5.363731 +0.6893945,89,848.0137,5.202317 +0.8342704,10,681.8076,3.853672 +0.9307401,34,270.5869,5.305084 +0.6917751,39,822.0006,4.604009 +0.7267107,23,680.2972,4.262292 +0.6354322,62,181.5393,4.868494 +0.7580115,57,501.0876,5.03591 +0.6178196,55,128.1938,4.756006 +0.6396423,44,624.3828,4.596975 +0.7626689,42,438.5162,4.824863 +0.5867045,63,103.1721,4.807943 +0.8525572,83,884.146,5.538926 +0.5375346,27,843.32,4.016654 +0.938737,8,476.519,4.204282 +0.8598953,30,895.0064,4.845791 +0.618619,26,310.2046,4.142067 +0.751289,85,971.0602,5.293395 +0.6007665,85,280.1201,5.02653 +0.8931311,96,661.1837,5.784881 +0.9477872,55,349.5601,5.745697 +0.8263472,25,868.1811,4.593935 +0.8971962,28,813.1129,4.94798 +0.917756,88,391.7887,5.859333 +0.5736361,12,298.5713,3.358818 +0.5923442,20,777.4425,3.860573 +0.9331808,56,926.266,5.622917 +0.5385511,27,131.7780,4.033215 +0.709832,64,184.5100,5.040587 +0.9305012,44,455.3916,5.46184 +0.7267914,59,697.8118,4.987088 +0.6695136,8,20.46508,3.278592 +0.636107,14,417.5571,3.632827 +0.662663,31,216.0035,4.380913 +0.6268085,67,388.1516,4.894231 +0.8478138,40,927.3398,5.015686 +0.8939183,49,127.1164,5.425592 +0.8187445,56,58.74734,5.334734 +0.6800727,54,652.806,4.828237 +0.7508679,55,478.8554,4.994428 +0.5247278,90,108.2003,4.958619 +0.5126827,83,367.0263,4.860525 +0.9360829,43,793.5388,5.466748 +0.5427037,17,355.0012,3.623390 +0.6746653,7,93.02982,3.059764 +0.6865374,83,642.7987,5.15102 +0.7966882,75,784.4196,5.31541 +0.9464101,14,331.0489,4.746153 +0.8584512,13,404.4904,4.183346 +0.8647911,39,852.2727,5.05704 +0.6417288,7,478.1858,2.960385 +0.8371056,85,444.343,5.522884 +0.8774682,24,836.418,4.745429 +0.7276132,95,91.43983,5.408513 +0.681911,83,834.1965,5.139621 +0.8320037,7,698.0064,3.507781 +0.7311164,15,910.4249,3.908022 +0.5453493,29,846.9758,4.090611 +0.5034893,15,962.7001,3.429684 +0.7765618,78,78.25059,5.408551 +0.6889326,30,700.1291,4.393576 +0.6663355,7,650.8927,3.018401 +0.903647,71,181.4400,5.697455 +0.8294555,53,483.8067,5.171024 +0.6864851,47,77.10473,4.805211 +0.8332093,64,638.4873,5.308758 +0.6178623,91,609.0503,5.093896 +0.9483832,42,134.5668,5.648304 +0.601083,21,988.283,3.919131 +0.8363535,13,264.5484,4.108176 +0.6232332,60,379.2178,4.806633 +0.6716989,82,134.4818,5.155346 +0.7271332,63,619.8103,5.036546 +0.716362,89,574.5563,5.25926 +0.7035438,46,185.5708,4.780743 +0.9094733,58,800.8275,5.519981 +0.7970491,86,899.1467,5.407964 +0.6710653,59,324.7219,4.885989 +0.7732243,82,267.0323,5.345934 +0.7177664,52,252.1324,4.894166 +0.5975854,54,403.198,4.68114 +0.7574227,82,848.186,5.283512 +0.61548,57,185.7698,4.767464 +0.856129,63,357.1877,5.385709 +0.7315266,85,348.6383,5.268519 +0.6396882,61,36.83948,4.971445 +0.8693308,81,553.7231,5.588287 +0.5279291,8,565.4334,2.850686 +0.653696,18,983.7102,3.891188 +0.5345938,27,865.7832,4.011338 +0.7072539,48,209.3058,4.817037 +0.9119935,63,136.3686,5.686828 +0.612377,99,792.52,5.141792 +0.9320222,42,279.1492,5.46138 +0.518647,98,812.767,4.985492 +0.8503986,49,813.2923,5.171308 +0.7017593,2,926.9244,1.471911 +0.928796,74,201.9075,5.851777 +0.572696,27,46.75606,4.135588 +0.7032733,46,360.8426,4.763264 +0.8491637,25,595.2798,4.674148 +0.7662437,46,696.0155,4.894196 +0.7282377,14,297.2000,3.849405 +0.875547,99,203.8363,5.792346 +0.8080239,83,931.4812,5.411267 +0.6885786,33,956.5435,4.466412 +0.7831086,97,837.6102,5.456536 +0.9459541,43,198.5099,5.60273 +0.5396256,39,300.1694,4.328677 +0.8436808,63,945.8707,5.323334 +0.6760259,83,752.4728,5.129654 +0.794726,30,289.6138,4.660757 +0.8699908,10,465.4956,3.999971 +0.6201105,11,823.6584,3.367809 +0.8532556,19,316.4788,4.484371 +0.8204,6,290.9876,3.316586 +0.8684488,30,453.036,4.888899 +0.9351581,85,438.0463,5.930551 +0.5873355,44,787.4419,4.500897 +0.5668142,2,706.7757,1.109026 +0.8327513,38,482.0475,4.940103 +0.8554855,59,795.2226,5.318344 +0.7925683,78,596.6343,5.336552 +0.8354968,58,736.0778,5.244615 +0.7509,85,198.9852,5.331186 +0.6546461,93,239.3210,5.190297 +0.5231616,72,35.3501,4.838751 +0.7953823,61,991.2709,5.165394 +0.6118757,13,108.9576,3.529129 +0.6601847,18,911.6591,3.905212 +0.6335368,63,919.9916,4.852865 +0.5913542,54,335.8841,4.672278 +0.7957373,32,452.8137,4.703563 +0.8788325,82,823.1708,5.62168 +0.6757324,48,310.3905,4.741838 +0.9181646,61,518.8919,5.608716 +0.650593,63,345.7281,4.894228 +0.688562,76,536.1067,5.094923 +0.7157119,65,283.2976,5.050122 +0.8862314,20,402.8624,4.654271 +0.7751035,59,526.9975,5.100229 +0.852668,40,456.2137,5.044085 +0.6919508,13,305.6826,3.693041 +0.9479584,79,364.8523,5.981857 +0.531493,27,907.4513,4.0057 +0.8479793,87,212.9312,5.605534 +0.9373602,77,881.6762,5.858075 +0.794942,84,288.0566,5.413612 +0.7529769,8,974.1157,3.380804 +0.8806292,10,838.2374,4.041734 +0.9071702,71,976.974,5.640227 +0.5128439,84,113.3925,4.886223 +0.508224,97,353.1583,4.966884 +0.6519604,55,435.3711,4.792745 +0.5119386,85,606.7859,4.873612 +0.9132375,11,377.7748,4.306664 +0.6261143,28,92.34715,4.246723 +0.5091433,83,896.1872,4.850326 +0.7412793,27,978.2313,4.423764 +0.8408322,7,227.3483,3.555352 +0.7672435,9,520.7616,3.540014 +0.5301034,3,137.9902,1.662143 +0.6913752,99,368.8408,5.292307 +0.5038832,80,961.1678,4.814971 +0.6810352,58,798.4374,4.880977 +0.912606,95,39.98357,6.282317 +0.8752428,87,634.5903,5.653246 +0.5952158,2,215.9915,1.180506 +0.7718479,48,745.4419,4.938152 +0.6458358,11,277.5476,3.430429 +0.5988926,47,477.9302,4.575699 +0.8380053,85,626.8053,5.516798 +0.7103821,69,536.2279,5.069106 +0.8866979,37,457.5733,5.116669 +0.7517034,20,398.4081,4.213259 +0.9147898,46,560.4219,5.396691 +0.9484228,17,738.7124,4.894374 +0.8846891,40,963.2052,5.150066 +0.9426123,27,772.5522,5.187897 +0.8692356,26,67.72579,4.906808 +0.8589243,45,178.4913,5.190465 +0.7328168,62,788.4979,5.034291 +0.623517,64,359.9294,4.855704 +0.8780984,91,355.0138,5.712913 +0.77191,38,768.8696,4.764597 +0.6181754,100,993.8187,5.156927 +0.8559087,43,211.7474,5.136296 +0.5625674,51,284.2133,4.580255 +0.7974567,4,236.5961,2.785214 +0.8577004,44,559.3555,5.12577 +0.9458263,71,286.2064,5.911821 +0.7599092,84,920.8071,5.304669 +0.7314819,15,749.6491,3.909982 +0.7849763,59,195.8903,5.155483 +0.6070717,33,678.3757,4.309346 +0.5852736,62,260.5681,4.769412 +0.6049603,85,602.8164,5.023711 +0.7056618,14,68.68933,3.836551 +0.7184723,93,2.506099,7.900124 +0.907464,25,868.7431,4.912952 +0.8818385,76,441.2289,5.598673 +0.904677,35,205.0632,5.193281 +0.8232554,27,47.38136,4.807151 +0.9188763,93,90.43636,6.059958 +0.6166306,48,24.47130,4.779987 +0.8503245,59,652.8947,5.304897 +0.8644836,93,696.1033,5.657553 +0.7398192,73,382.7746,5.177192 +0.5050311,88,83.43626,4.91444 +0.8900678,93,351.7667,5.774332 +0.7577198,5,355.05,2.906072 +0.5459648,5,673.3102,2.360118 +0.7315915,52,154.3075,4.943453 +0.7092939,43,819.5333,4.714818 +0.7618465,85,876.8257,5.317655 +0.7262858,83,700.0127,5.228118 +0.7737173,91,178.424,5.438783 +0.6358564,78,102.2227,5.061739 +0.6601463,78,880.9956,5.055251 +0.8248714,64,240.081,5.314529 +0.7785174,87,770.9972,5.373263 +0.8429175,76,725.753,5.453214 +0.5951001,72,385.1136,4.891615 +0.891007,96,479.0816,5.786144 +0.7736853,89,857.986,5.376108 +0.918299,100,390.0396,5.944879 +0.7906417,9,287.6082,3.617527 +0.6402875,74,647.4198,4.984587 +0.7765883,93,620.9507,5.417569 +0.6578024,10,85.02536,3.386581 +0.5627766,31,309.6647,4.18284 +0.6243535,79,396.6058,5.009259 +0.6200636,53,208.0446,4.718187 +0.7096096,74,775.759,5.112731 +0.83082,79,246.7897,5.477539 +0.8123965,6,153.8754,3.298421 +0.8382691,12,142.3883,4.064761 +0.705515,61,282.4126,4.982704 +0.7580165,37,324.4754,4.723757 +0.9096753,83,169.1843,5.839802 +0.949019,20,64.8373,5.213973 +0.8169494,70,896.4021,5.319118 +0.7710959,10,770.646,3.648601 +0.8901521,6,442.8634,3.61866 +0.5415315,33,652.749,4.191687 +0.5416192,18,662.6916,3.670651 +0.7902908,48,447.7559,4.992453 +0.5299773,43,16.22008,4.520329 +0.9289499,30,225.6202,5.213176 +0.8344856,14,91.72327,4.211774 +0.5235518,40,394.8788,4.319086 +0.8744765,40,442.6723,5.12431 +0.9026988,5,750.8111,3.500929 +0.5675176,40,151.6294,4.408606 +0.6096033,63,605.3651,4.813785 +0.5135856,71,670.9206,4.743154 +0.5918367,76,814.6443,4.918962 +0.6342168,53,534.5466,4.729815 +0.5325372,99,960.3788,5.013452 +0.741656,65,78.99525,5.181359 +0.6935803,36,51.64724,4.645036 +0.8542952,10,48.5374,4.044326 +0.7463491,12,615.9147,3.749647 +0.6943899,78,260.7352,5.139563 +0.889562,12,398.4491,4.25206 +0.8491757,82,60.51142,5.723753 +0.8016692,83,7.73509,6.604698 +0.8924879,21,262.3629,4.734577 +0.7525104,80,107.3612,5.331661 +0.7081317,21,92.81737,4.187879 +0.8065809,43,210.9749,4.979122 +0.5169801,35,395.1261,4.199522 +0.6757979,76,910.9608,5.065197 +0.7677337,77,365.431,5.278845 +0.8090006,93,842.7086,5.491836 +0.7051984,38,488.1513,4.617047 +0.7468627,45,45.37075,4.982465 +0.5568271,45,484.7282,4.468249 +0.7837019,32,851.0998,4.663072 +0.7612952,32,479.0075,4.612813 +0.733612,91,72.76688,5.415899 +0.8864325,62,547.5789,5.472746 +0.7578537,40,421.5965,4.777266 +0.6717871,60,709.5815,4.889155 +0.6287574,52,620.978,4.704199 +0.6445166,78,400.8385,5.035814 +0.8931823,45,485.385,5.282556 +0.7727532,28,379.5074,4.541311 +0.5352619,2,212.1915,1.035757 +0.7081157,3,139.0256,2.127859 +0.6033971,22,594.7747,3.965754 +0.9075128,51,414.4177,5.440742 +0.8494736,76,149.5367,5.544112 +0.7879249,79,855.974,5.328293 +0.5783671,12,636.4271,3.365007 +0.7535224,48,537.166,4.899041 +0.716179,45,136.7055,4.804574 +0.7744747,97,885.4469,5.435816 +0.841277,85,245.2894,5.559938 +0.544991,50,880.931,4.527181 +0.9347753,97,101.0668,6.16939 +0.7641154,88,752.9195,5.348427 +0.6819447,17,322.7949,3.910315 +0.8632081,52,916.537,5.254725 +0.868709,64,376.5412,5.438657 +0.7571078,21,676.9291,4.261664 +0.6838573,59,341.2879,4.910124 +0.8295345,17,71.70596,4.383508 +0.8079979,57,160.2103,5.204845 +0.8102735,76,371.9556,5.376022 +0.9184764,54,527.7015,5.527673 +0.6461691,60,121.8660,4.879243 +0.860307,61,699.5002,5.359746 +0.663215,21,508.4091,4.047775 +0.7294957,59,655.0106,4.99358 +0.8406354,61,281.0507,5.321951 +0.5139149,86,262.1952,4.891583 +0.7905041,86,300.4609,5.416914 +0.8456873,14,481.5299,4.194904 +0.5098909,5,19.22275,2.322491 +0.6678912,81,393.9353,5.105909 +0.830644,38,124.9105,4.991291 +0.8262549,83,261.9533,5.495006 +0.6959497,69,655.3541,5.03778 +0.8008555,69,289.2386,5.292137 +0.8117482,100,446.218,5.56089 +0.5293518,81,772.3581,4.864649 +0.6090772,49,221.2100,4.636553 +0.7506375,89,543.5856,5.33163 +0.6183604,77,479.8493,4.977886 +0.7233891,4,568.0821,2.538969 +0.7745052,56,225.0964,5.084653 +0.6148174,56,278.9049,4.744436 +0.5664338,3,26.61995,1.771754 +0.7387753,66,902.254,5.090323 +0.6776956,91,945.66,5.195144 +0.8217946,12,254.1228,3.987356 +0.9459525,96,623.9948,6.065962 +0.8649597,21,641.7817,4.595264 +0.7425515,77,617.3263,5.211645 +0.8400273,16,413.1986,4.289296 +0.6770476,40,220.3779,4.612167 +0.6674166,42,588.7063,4.614908 +0.6428335,10,133.642,3.340386 +0.8646097,77,855.3629,5.528825 +0.5891536,2,14.00990,1.198849 +0.8098053,40,872.5492,4.901222 +0.809758,42,176.2297,4.979482 +0.7928953,70,722.8662,5.259338 +0.797324,31,971.6011,4.6741 +0.5771383,99,69.68891,5.142041 +0.7773082,50,285.3107,5.000541 +0.5495215,54,160.6643,4.61034 +0.7773526,24,561.2561,4.424951 +0.8622123,25,101.0384,4.798824 +0.6110196,60,778.7585,4.778251 +0.7854684,34,708.4522,4.715879 +0.5639518,21,225.5089,3.856821 +0.8967337,96,316.8322,5.82831 +0.6992566,52,999.291,4.834764 +0.614064,23,555.4065,4.024895 +0.6308871,18,159.6431,3.860586 +0.9232963,5,100.3030,3.686886 +0.7375896,41,961.0838,4.738977 +0.8605606,28,672.7911,4.799961 +0.7257157,45,878.2304,4.783404 +0.5813184,27,289.4119,4.102855 +0.7107086,89,267.5164,5.264923 +0.9413629,10,369.3205,4.424309 +0.8740505,68,769.1524,5.480379 +0.6051843,61,386.9700,4.786589 +0.827576,66,678.199,5.312512 +0.900977,31,18.41794,5.674096 +0.7688614,69,257.3158,5.215556 +0.8761198,56,677.8171,5.357956 +0.5646782,6,382.0181,2.615419 +0.518497,3,378.3279,1.632089 +0.582818,59,70.65949,4.767608 +0.8276893,56,107.9941,5.283863 +0.7168767,59,470.4204,4.971592 +0.662991,93,701.3547,5.186381 +0.8005013,43,960.6649,4.927929 +0.5331211,96,445.2623,4.996752 +0.7771595,45,986.4243,4.901005 +0.7080667,37,156.1174,4.628933 +0.9328946,89,677.8293,5.929755 +0.6320658,2,87.63947,1.279896 +0.6080188,65,589.0781,4.83435 +0.6301288,6,705.1481,2.764101 +0.5133827,81,995.4598,4.838737 +0.719066,97,752.0547,5.320292 +0.6186295,22,683.8413,3.994817 +0.8119921,41,708.591,4.928048 +0.5609343,88,10.50586,5.267972 +0.6724697,14,202.2301,3.721339 +0.573703,9,450.9772,3.070775 +0.8628512,57,640.9474,5.323342 +0.868195,94,649.7503,5.678757 +0.6743816,62,90.98017,4.978108 +0.8300029,19,250.6289,4.408213 +0.6457565,46,410.854,4.646782 +0.6287419,57,793.6064,4.771207 +0.9050638,91,883.7435,5.794317 +0.9116619,5,213.3576,3.574827 +0.9284593,16,108.4316,4.781968 +0.6050885,93,391.021,5.09282 +0.7973473,30,814.708,4.650565 +0.5764903,49,359.3575,4.571037 +0.5405271,48,288.3529,4.494993 +0.6495582,79,511.0006,5.050636 +0.6367823,59,822.7776,4.810997 +0.8513049,77,870.4478,5.484962 +0.9267168,35,561.7305,5.272438 +0.8221376,19,437.5601,4.369938 +0.5401428,57,19.55145,4.751766 +0.6786695,16,669.9876,3.843398 +0.6102902,51,332.7534,4.662691 +0.8363006,90,474.4249,5.556992 +0.6663403,99,437.2999,5.242262 +0.8085966,14,251.4224,4.079578 +0.9347172,77,837.7067,5.842615 +0.7344155,54,536.4091,4.942499 +0.9004107,96,208.1096,5.873226 +0.6433048,62,254.7092,4.874714 +0.8065827,89,583.4963,5.462501 +0.5564002,28,326.8198,4.086037 +0.5880839,69,181.2231,4.86122 +0.9407387,28,778.9392,5.199814 +0.9369049,53,886.1674,5.610943 +0.8998097,99,34.78137,6.290163 +0.6223383,90,941.7874,5.090228 +0.7911574,82,281.1704,5.388264 +0.8075953,32,504.956,4.735014 +0.5975587,94,219.1553,5.098065 +0.7839761,62,455.6021,5.160191 +0.5952474,66,666.0851,4.822761 +0.8705345,83,759.6216,5.601404 +0.6809573,45,228.4825,4.710120 +0.6019187,11,386.5556,3.331947 +0.7658947,15,814.1042,3.998861 +0.813091,40,904.633,4.910092 +0.918683,83,480.8551,5.81735 +0.8389258,98,57.99856,5.822399 +0.8472037,79,450.0731,5.503936 +0.8081241,100,215.4546,5.58131 +0.6612245,51,610.5578,4.749989 +0.6165932,26,887.3631,4.130658 +0.596875,9,13.68237,3.251298 +0.8972038,34,965.9676,5.087532 +0.8693963,35,513.7941,5.004048 +0.7674038,73,459.8307,5.235216 +0.5901292,64,250.1572,4.802326 +0.7296133,61,208.4754,5.043975 +0.8878144,91,896.558,5.722354 +0.5677198,38,365.4184,4.355683 +0.7190616,81,515.5016,5.200799 +0.7814752,60,50.94589,5.290408 +0.8198621,34,977.1663,4.808182 +0.6872518,25,721.45,4.242103 +0.5930279,60,325.3461,4.755136 +0.5059111,32,55.22956,4.135281 +0.8121109,76,17.48439,5.939912 +0.7529022,66,799.6337,5.122457 +0.6601005,18,329.2555,3.912098 +0.6066048,10,102.3450,3.263182 +0.8305692,4,528.8944,2.906320 +0.7135519,56,984.7976,4.918357 +0.6207566,9,387.2948,3.173807 +0.8736776,16,980.3776,4.408145 +0.5024343,85,554.2605,4.859215 +0.9368968,98,732.1767,6.012956 +0.7485144,9,525.2917,3.486522 +0.6679124,29,918.2333,4.321213 +0.7410865,33,374.1743,4.591967 +0.890034,22,97.48476,4.824609 +0.6235045,3,163.2022,1.891596 +0.8788184,31,854.3159,4.942984 +0.5733564,37,896.6874,4.339044 +0.5235723,75,313.9326,4.804836 +0.9031916,32,943.1994,5.072061 +0.9249485,3,634.5567,3.085764 +0.7795184,67,493.5099,5.202364 +0.5442364,42,260.3850,4.397356 +0.7538088,62,784.0382,5.080281 +0.8714196,21,519.4405,4.624195 +0.6037611,95,392.9248,5.105584 +0.605645,60,388.6159,4.775016 +0.7262467,62,451.3037,5.027994 +0.7070611,87,613.337,5.224093 +0.7124193,55,764.3051,4.905012 +0.7101894,24,335.7709,4.267068 +0.6363921,82,912.7779,5.048506 +0.5928241,59,575.4637,4.736328 +0.5114741,93,76.76653,4.969051 +0.6220136,86,987.4373,5.057191 +0.7778587,16,566.4055,4.090325 +0.7682783,65,739.0363,5.147656 +0.5197742,14,43.77784,3.428288 +0.80071,35,263.5616,4.799034 +0.848174,59,953.4341,5.291993 +0.6336437,40,504.9083,4.513693 +0.8964462,29,426.0757,4.983478 +0.9333257,71,108.4557,5.932473 +0.7945195,27,445.6889,4.56859 +0.6805711,44,975.6775,4.672505 +0.6033443,84,673.2954,5.011609 +0.6296885,53,838.786,4.718106 +0.5823181,56,649.965,4.678212 +0.5828971,59,375.5552,4.723169 +0.511142,14,841.3459,3.379117 +0.8984646,69,992.3174,5.582221 +0.6265228,50,935.0175,4.667815 +0.8357867,25,882.2828,4.624052 +0.7292072,38,532.7761,4.668328 +0.7758697,47,696.2516,4.9334 +0.7132152,32,841.5131,4.495411 +0.9086833,78,30.63744,6.228538 +0.840099,80,492.2464,5.488013 +0.6170762,97,396.9618,5.142746 +0.704527,39,249.5485,4.647633 +0.5579608,9,817.2322,3.035987 +0.770093,62,954.7968,5.115551 +0.8798565,66,727.0262,5.482889 +0.7694484,46,751.1275,4.901031 +0.7374544,32,581.615,4.553228 +0.8999201,99,999.735,5.823784 +0.8503247,87,92.39913,5.69636 +0.9096688,76,50.36219,6.011044 +0.8427042,4,121.9022,2.976982 +0.7524447,6,660.8017,3.085734 +0.6241854,30,577.2345,4.265333 +0.8464372,99,474.021,5.650894 +0.7979247,35,697.1621,4.771349 +0.6554351,97,127.8194,5.24562 +0.9227335,37,278.5272,5.314402 +0.558691,20,388.7766,3.799387 +0.7875231,58,927.0415,5.110648 +0.8474654,11,318.4969,3.998567 +0.9199452,89,804.1497,5.853293 +0.755178,11,781.259,3.692196 +0.7501978,79,962.4833,5.24055 +0.5877117,66,66.11904,4.866375 +0.6082031,24,295.8402,4.054799 +0.9181698,39,877.5183,5.290326 +0.9190084,52,291.3868,5.529388 +0.908331,53,983.4375,5.449875 +0.7157437,47,555.3253,4.799205 +0.8001084,12,932.2304,3.901024 +0.7591904,99,164.9959,5.466765 +0.8684237,69,677.5477,5.472583 +0.7669572,55,622.1829,5.02765 +0.6282833,69,112.7529,4.951761 +0.8508472,18,856.9338,4.415786 +0.7813152,12,19.93834,4.079094 +0.8131596,67,917.1183,5.278312 +0.5229803,43,226.2008,4.380527 +0.760018,94,554.3343,5.38929 +0.6581901,58,114.3732,4.880992 +0.7050023,6,156.9929,2.963535 +0.6388137,26,345.2279,4.180866 +0.7703802,21,302.4435,4.307283 +0.7719865,73,825.9207,5.236278 +0.647917,91,504.8866,5.148101 +0.6770831,48,72.47072,4.804889 +0.6447003,35,175.7579,4.446625 +0.757191,94,476.659,5.386077 +0.8901368,78,382.6649,5.654444 +0.6815508,93,131.4914,5.266452 +0.5256458,36,822.9934,4.234394 +0.6296011,17,2.528912,4.934265 +0.677469,30,227.9974,4.3843 +0.7770068,41,10.56137,5.51524 +0.5165083,4,88.90173,2.023952 +0.7099214,6,708.6837,2.965266 +0.5776249,27,653.449,4.090242 +0.8385866,70,867.0004,5.381325 +0.653134,58,24.65445,5.028615 +0.5222114,38,940.511,4.271954 +0.52211,12,456.7922,3.253085 +0.8821391,25,431.2503,4.807591 +0.5107624,24,234.9617,3.87355 +0.791372,43,414.8101,4.916052 +0.5539438,31,842.9205,4.161233 +0.5333754,25,497.1534,3.945494 +0.9296186,54,416.9209,5.599508 +0.9344575,72,846.4138,5.797461 +0.7615936,10,617.3528,3.622655 +0.6086307,79,751.1954,4.975634 +0.6602143,34,809.9639,4.433619 +0.6904942,82,678.079,5.149386 +0.8644522,3,242.6071,2.713617 +0.7364714,20,489.1806,4.172711 +0.9352433,59,409.2411,5.695107 +0.8090254,95,529.3272,5.514943 +0.9187024,40,553.3839,5.320665 +0.841718,5,350.1257,3.205612 +0.6405692,52,765.612,4.72416 +0.8836825,33,897.9677,5.008132 +0.7230816,45,914.3267,4.777408 +0.5582674,44,268.5147,4.458432 +0.6244152,33,841.241,4.340628 +0.898817,19,297.5451,4.682202 +0.6923485,67,335.8841,5.020066 +0.8147905,97,528.7302,5.544107 +0.8768643,70,439.8828,5.524466 +0.690254,56,430.0983,4.880391 +0.612166,40,830.4586,4.470533 +0.6082176,75,78.70042,4.992784 +0.7485141,81,814.3725,5.256056 +0.6398987,7,971.5611,2.953990 +0.8322966,81,541.9221,5.470873 +0.7008189,28,314.5543,4.372912 +0.7927534,27,363.9284,4.56741 +0.69938,38,360.3372,4.609066 +0.6438937,97,270.8365,5.19707 +0.7341373,38,96.0892,4.736542 +0.8522399,52,668.3805,5.222469 +0.6801307,19,284.4478,4.004812 +0.831692,24,117.5902,4.639136 +0.9476048,10,240.9065,4.493684 +0.551496,94,993.1748,5.005831 +0.8230653,98,922.7676,5.56258 +0.8699226,40,900.2922,5.093391 +0.6854477,63,963.481,4.948333 +0.8432787,96,923.4997,5.606291 +0.8451935,36,623.6866,4.935431 +0.577007,25,887.985,4.023107 +0.8109441,94,56.21722,5.700043 +0.8529192,29,157.5588,4.845897 +0.817715,65,427.0795,5.283968 +0.7494217,5,122.7565,2.893578 +0.6925452,99,647.7264,5.284948 +0.8609249,36,630.441,4.989459 +0.9247448,93,182.9758,5.989076 +0.5416671,42,787.1045,4.385566 +0.8597668,42,692.5763,5.095625 +0.6654662,58,58.45632,4.942707 +0.9231077,77,432.3362,5.7963 +0.7628278,27,841.1814,4.477327 +0.8122138,17,380.4142,4.248607 +0.8622663,3,760.8548,2.695047 +0.5892135,2,65.48377,1.170696 +0.781671,3,592.567,2.359244 +0.5845937,10,856.3625,3.198467 +0.9229792,35,726.8734,5.244499 +0.8207156,75,72.31391,5.524492 +0.7980214,78,612.9044,5.349749 +0.8412272,11,464.5139,3.968972 +0.7087537,57,490.1565,4.928935 +0.7510459,66,987.4297,5.11618 +0.6339613,70,59.09847,5.014612 +0.7524349,95,349.5906,5.390574 +0.5876294,35,50.53542,4.381489 +0.7986364,13,537.1481,3.971551 +0.8415225,100,344.543,5.653898 +0.6416455,79,734.274,5.032779 +0.9383721,7,402.2937,4.084501 +0.6881057,86,328.5769,5.190362 +0.8396862,77,935.2592,5.448255 +0.932392,48,446.9599,5.534071 +0.8366197,48,323.8904,5.133291 +0.5522438,21,518.9197,3.828737 +0.824058,98,930.1329,5.565161 +0.6301056,95,90.10231,5.200541 +0.5108554,90,370.9280,4.916536 +0.6094796,21,341.6719,3.941419 +0.7173496,44,414.3781,4.757312 +0.5826613,8,428.8542,2.968118 +0.65258,38,239.701,4.520544 +0.6426234,93,185.9158,5.175764 +0.6141543,82,993.7445,5.009928 +0.656938,56,195.7736,4.831684 +0.8172469,30,518.1036,4.713522 +0.6019059,53,676.9374,4.670159 +0.6549961,6,547.4558,2.824931 +0.7232873,17,174.1364,4.019165 +0.7805223,32,50.51764,4.792173 +0.9196643,5,314.0752,3.621295 +0.7813478,83,469.8973,5.356797 +0.6547584,83,195.7537,5.115725 +0.9284674,32,394.5050,5.230222 +0.5197441,14,926.1198,3.395476 +0.6899643,72,802.6675,5.054524 +0.5053075,6,791.7115,2.484155 +0.5424734,15,289.0827,3.508554 +0.7931831,19,435.9833,4.281749 +0.5941135,78,221.3831,4.957422 +0.865215,28,291.7503,4.836752 +0.5424058,3,487.1848,1.687881 +0.7056974,65,740.978,5.012886 +0.9368825,35,14.76310,6.35053 +0.57561,45,291.1745,4.505737 +0.7682693,51,192.9438,5.006944 +0.6337592,36,428.2575,4.432639 +0.8266066,64,115.1584,5.371109 +0.5875868,6,201.9519,2.670309 +0.8789958,31,49.8531,5.149625 +0.7118476,13,884.6736,3.732919 +0.5739909,14,394.6366,3.504593 +0.7322612,47,187.8178,4.860688 +0.714794,50,630.2739,4.841745 +0.8901368,76,5.784143,8.037162 +0.7201633,26,820.6769,4.345689 +0.9010186,37,424.7176,5.182914 +0.6013714,59,541.621,4.751601 +0.7908577,46,997.1488,4.951546 +0.6927482,71,702.3211,5.051229 +0.5590977,11,594.2949,3.241059 +0.7164781,42,963.2049,4.711018 +0.9163904,43,502.9438,5.361358 +0.6612428,83,623.4967,5.104527 +0.6425414,87,862.6899,5.101567 +0.8213658,65,322.2208,5.303021 +0.7373462,89,551.5728,5.302949 +0.5986439,55,478.4257,4.695178 +0.7244378,30,347.0494,4.479614 +0.6218237,50,636.3346,4.661784 +0.725282,28,856.954,4.416502 +0.8487246,16,101.9375,4.375022 +0.7496028,57,605.1464,5.013753 +0.6803173,56,902.4544,4.85285 +0.7951882,70,583.4215,5.26867 +0.9259178,22,242.7018,4.957652 +0.7516096,36,551.4496,4.67813 +0.8295028,71,780.4252,5.365977 +0.8778276,15,475.6616,4.381838 +0.8194508,74,613.7646,5.370245 +0.8235226,30,845.348,4.726012 +0.7537613,69,934.379,5.15409 +0.6151436,20,976.8233,3.904389 +0.9386936,32,705.0091,5.281983 +0.6032401,27,860.4168,4.136792 +0.8156953,34,5.919545,6.147653 +0.8026528,42,280.3825,4.939681 +0.7619484,60,59.23093,5.209588 +0.876842,90,23.85571,6.264086 +0.6835586,12,487.0681,3.595008 +0.7693461,43,703.687,4.851691 +0.6153242,91,590.2577,5.089901 +0.5938335,2,361.9556,1.176101 +0.9398924,30,127.9098,5.339887 +0.6309711,19,744.1419,3.892506 +0.6674976,82,87.71144,5.172374 +0.7843308,32,890.146,4.664321 +0.8866003,55,245.5037,5.422817 +0.9174256,47,799.3804,5.417252 +0.7856124,89,946.9574,5.402764 +0.7332223,76,519.9381,5.185325 +0.5741031,45,596.0796,4.496812 +0.7555969,51,664.927,4.945389 +0.8515928,2,433.3597,2.047442 +0.573079,57,530.3749,4.677239 +0.8753101,72,65.81185,5.720728 +0.6491346,55,79.26238,4.842491 +0.794759,21,705.0873,4.362667 +0.9401834,16,505.0417,4.787617 +0.5122126,23,163.9715,3.842354 +0.8804487,55,7.418967,7.01951 +0.5310158,12,338.4504,3.271906 +0.9143952,2,334.7572,2.43831 +0.609437,49,766.6815,4.622999 +0.743276,29,559.6721,4.489996 +0.750802,43,906.3193,4.805193 +0.7028861,82,570.4726,5.175535 +0.7121867,61,670.229,4.981277 +0.5660296,84,38.86039,5.04032 +0.5041909,21,216.9332,3.744519 +0.5551879,50,348.8803,4.550023 +0.8878471,6,35.24714,3.745212 +0.892262,73,973.6806,5.593922 +0.696367,40,784.4907,4.633238 +0.6421879,87,282.2655,5.116123 +0.6215205,34,360.9796,4.365564 +0.789945,12,293.5746,3.88169 +0.640508,21,401.1258,4.002517 +0.7915758,10,797.9483,3.70977 +0.9387423,22,411.4235,5.024741 +0.5622273,54,898.4625,4.614994 +0.5953253,60,914.328,4.750301 +0.6392777,35,251.4834,4.428198 +0.8932596,42,377.1065,5.241942 +0.7364436,36,696.4678,4.64023 +0.5885521,10,365.018,3.20982 +0.829681,93,746.4872,5.549487 +0.5057063,93,958.7418,4.927446 +0.9257312,56,223.3139,5.636041 +0.6316418,80,73.15034,5.092505 +0.7197106,31,975.8304,4.483773 +0.7869882,29,766.9128,4.596767 +0.6074108,62,445.4765,4.800981 +0.8286439,26,784.7253,4.632707 +0.5689967,25,798.7926,4.008652 +0.8410289,5,870.3467,3.196519 +0.5227112,90,450.7685,4.933785 +0.6375155,4,668.4885,2.304924 +0.6896833,91,347.8749,5.231752 +0.7352017,52,438.1424,4.919824 +0.6386533,77,988.0837,5.007016 +0.9461375,49,491.345,5.64017 +0.654627,97,832.8996,5.199254 +0.5894615,29,60.51807,4.218363 +0.5269488,2,862.4869,1.015177 +0.9331138,87,461.2927,5.930507 +0.8665317,70,329.2841,5.497526 +0.9175936,89,572.3668,5.85077 +0.8128998,75,662.1277,5.36021 +0.765531,25,766.4274,4.423686 +0.8934914,39,80.10902,5.31473 +0.7163465,12,523.9966,3.673615 +0.7988134,17,41.4153,4.338415 +0.5451061,29,90.2829,4.114404 +0.9189236,10,718.424,4.249735 +0.5857667,34,673.6846,4.294493 +0.7549478,35,321.5195,4.673801 +0.7943498,5,543.3669,3.023187 +0.7016415,74,252.3303,5.117568 +0.559157,97,22.49902,5.190322 +0.8614353,89,59.39922,5.836828 +0.6084914,11,930.5192,3.342619 +0.9059065,52,830.8472,5.428208 +0.8895644,9,909.9186,3.990418 +0.9077405,66,367.3664,5.62232 +0.7912619,4,954.7676,2.755165 +0.6900781,79,4.370944,6.382217 +0.682151,37,498.7817,4.548054 +0.8415262,15,847.1698,4.231924 +0.8512212,81,70.99263,5.691611 +0.5211151,5,136.4987,2.309817 +0.8838984,23,530.1152,4.746854 +0.6994729,78,678.329,5.131444 +0.51668,42,187.2642,4.352938 +0.9481614,48,182.5941,5.705067 +0.9236594,4,668.0228,3.406841 +0.6312497,22,566.5117,4.020927 +0.7943789,17,577.5567,4.188866 +0.8626302,11,527.8644,4.051431 +0.6705389,50,89.56081,4.807473 +0.5516966,49,16.48661,4.683886 +0.8668004,29,971.0603,4.845009 +0.8014657,14,739.804,4.042122 +0.9053415,70,69.74634,5.837114 +0.6831015,69,194.3605,5.037981 +0.8789359,53,415.8494,5.343093 +0.9289235,69,568.3182,5.747231 +0.7899977,78,938.5117,5.323466 +0.9479518,39,874.7101,5.484147 +0.6049941,13,631.9339,3.496114 +0.9011545,67,390.2548,5.599185 +0.7040379,5,153.3049,2.757018 +0.6679361,76,271.9522,5.068211 +0.6960151,71,476.9279,5.062621 +0.8435223,54,164.3906,5.274298 +0.8736423,16,89.53738,4.491120 +0.59024,59,791.2283,4.72982 +0.9295583,4,208.2342,3.470088 +0.5965512,55,241.4432,4.700357 +0.6738523,47,545.3299,4.714014 +0.5366376,40,704.4424,4.338593 +0.8379685,43,361.8964,5.054343 +0.8422289,25,45.08528,4.825735 +0.717953,38,625.8311,4.641661 +0.5679036,27,216.3701,4.080988 +0.7799007,22,500.1768,4.36294 +0.9302193,42,778.122,5.413554 +0.782723,100,474.8462,5.486657 +0.8622244,25,578.762,4.722007 +0.940699,5,331.4978,3.788291 +0.6665559,91,293.6174,5.19182 +0.7849823,12,886.944,3.855518 +0.6102746,45,795.5418,4.558929 +0.5301608,34,410.1793,4.198522 +0.7874662,64,876.8466,5.180669 +0.7584281,61,372.7229,5.091763 +0.883191,19,283.4864,4.609797 +0.8593794,58,94.39034,5.436929 +0.9007119,90,606.605,5.777169 +0.7826633,84,414.7848,5.371269 +0.8178446,35,453.0215,4.834728 +0.5831485,51,648.3131,4.608569 +0.7011728,80,491.1916,5.157069 +0.577471,34,341.6812,4.284249 +0.8422745,3,247.0640,2.607015 +0.5670756,52,252.8716,4.604588 +0.8654929,46,553.3708,5.185306 +0.555244,43,568.0426,4.428859 +0.8185472,61,153.0966,5.287868 +0.6000175,94,396.2763,5.091671 +0.9250674,4,959.921,3.415297 +0.519015,23,407.4622,3.848192 +0.9100592,26,412.1465,4.97078 +0.5725889,11,752.5595,3.268075 +0.7735475,80,13.28211,5.94689 +0.6812585,61,742.4313,4.918926 +0.8009573,91,495.3601,5.466766 +0.8496011,36,14.80379,5.591567 +0.8966086,24,326.1461,4.849813 +0.6029698,77,911.9371,4.946375 +0.5789911,33,268.6701,4.265316 +0.9015798,74,379.2924,5.668898 +0.8378741,59,176.2669,5.314487 +0.5142631,13,875.7704,3.314014 +0.6618115,90,361.3256,5.170771 +0.618478,79,498.9765,4.996128 +0.589535,53,843.2393,4.647428 +0.5709581,19,283.5134,3.779699 +0.934535,53,136.1736,5.70354 +0.9176517,68,662.3776,5.671203 +0.8882659,49,385.4667,5.328562 +0.7906314,62,227.6577,5.19901 +0.8331562,33,189.6048,4.866175 +0.8592519,5,199.5106,3.29058 +0.8631095,5,586.7871,3.295034 +0.7715704,95,393.3997,5.430589 +0.7810495,18,892.4912,4.195172 +0.6263919,51,861.9839,4.683013 +0.726559,66,379.8912,5.077005 +0.584635,16,816.7968,3.646219 +0.7622277,99,441.9479,5.434317 +0.544085,4,913.6733,2.079431 +0.8988398,92,782.1835,5.776936 +0.7965645,46,648.4351,4.97143 +0.5655758,39,916.2638,4.367322 +0.5597001,40,481.4167,4.380355 +0.6119028,43,619.7148,4.528215 +0.5059835,35,910.8695,4.177567 +0.888591,3,379.9952,2.841126 +0.8923276,39,532.5778,5.174923 +0.9391946,88,295.5114,6.001715 +0.8329471,5,561.5299,3.165962 +0.807254,49,471.086,5.051749 +0.6779844,72,546.0019,5.035882 +0.7169698,39,519.4347,4.661549 +0.6063137,89,822.5501,5.056334 +0.8338426,46,400.1937,5.087515 +0.9038509,24,381.7342,4.880606 +0.8799192,61,668.0104,5.431366 +0.7922678,53,992.3444,5.057599 +0.6221619,74,577.9326,4.953811 +0.7974794,6,983.7875,3.226665 +0.5508857,7,651.114,2.755166 +0.5805972,47,369.621,4.545734 +0.7430752,51,665.0276,4.916948 +0.889692,77,94.36406,5.767793 +0.8952883,43,895.1652,5.247112 +0.9065478,17,242.677,4.641579 +0.8725372,82,83.33613,5.757366 +0.6905845,95,765.2116,5.250851 +0.5161306,2,751.7912,0.9905717 +0.6449158,76,438.4860,5.016555 +0.850453,76,108.6052,5.580327 +0.6725742,2,480.4059,1.386370 +0.6161149,76,295.3912,4.971517 +0.7963333,93,957.2727,5.458221 +0.8256374,92,764.9899,5.530569 +0.8711578,4,954.592,3.086392 +0.7021267,58,94.03852,4.987058 +0.6045699,15,764.2379,3.627434 +0.8155154,53,809.7748,5.121834 +0.8537439,97,361.4350,5.66994 +0.6076632,42,300.3761,4.50934 +0.6164641,90,997.455,5.079993 +0.6679983,77,914.1822,5.060077 +0.8267494,47,758.4837,5.069028 +0.889724,88,814.6457,5.709872 +0.5710028,58,572.7667,4.686314 +0.7476734,66,752.3688,5.111589 +0.8446393,16,688.6557,4.298853 +0.6105829,77,741.3553,4.960555 +0.6288055,99,627.1944,5.171451 +0.8747276,74,936.3155,5.536257 +0.8663237,60,476.5183,5.378106 +0.6572653,50,279.4464,4.738406 +0.818589,2,408.8505,1.893213 +0.5529693,48,363.1589,4.51419 +0.8066909,59,384.7873,5.188151 +0.799528,20,910.703,4.334523 +0.8265927,61,476.6806,5.262121 +0.9341984,38,883.2063,5.367274 +0.805301,37,72.53905,4.940323 +0.565158,56,547.6801,4.65019 +0.5359521,6,879.5133,2.550337 +0.7844629,81,944.9339,5.335886 +0.7571667,9,95.5825,3.542732 +0.9163885,78,973.905,5.746129 +0.5834059,92,85.6609,5.08992 +0.7239388,81,538.4948,5.210062 +0.7697425,2,525.1054,1.698599 +0.663207,98,479.0765,5.228057 +0.9052223,45,320.5551,5.352677 +0.5567801,53,341.8657,4.597828 +0.8841526,26,887.5597,4.833461 +0.9384,63,439.3002,5.75641 +0.838798,92,83.15308,5.710527 +0.6815254,15,309.6898,3.798653 +0.5857514,42,476.6759,4.464864 +0.8293977,80,31.63208,5.801698 +0.842452,34,184.5945,4.92152 +0.8692851,97,633.1602,5.703721 +0.7267881,31,137.6431,4.537449 +0.7356832,56,658.8381,4.969012 +0.7227652,91,554.936,5.288082 +0.8580446,92,162.8874,5.697804 +0.9311096,57,330.0965,5.656089 +0.87975,61,740.2764,5.428649 +0.5778756,23,14.93272,4.118634 +0.7842306,30,313.8244,4.629866 +0.6270722,33,779.2002,4.346039 +0.7057705,79,302.6537,5.167424 +0.5971569,35,33.86121,4.433412 +0.9313556,92,31.7865,6.522864 +0.9145324,22,844.1247,4.855005 +0.5121691,72,610.6148,4.751727 +0.7191218,46,152.6025,4.822954 +0.6811826,4,294.6595,2.422272 +0.6025292,48,964.4258,4.593841 +0.8007709,18,992.2387,4.250902 +0.9168472,47,961.849,5.410959 +0.9089293,79,416.9533,5.742267 +0.8455079,57,263.6889,5.292637 +0.8230542,30,80.5108,4.821179 +0.5176877,25,849.4768,3.915583 +0.559614,30,68.57347,4.180268 +0.8706231,16,203.46,4.426949 +0.7886635,87,614.8048,5.401131 +0.5709352,53,489.2911,4.618905 +0.6175398,45,82.33716,4.618999 +0.9273795,83,849.5728,5.847243 +0.6616265,64,464.1305,4.921935 +0.9092348,35,43.38426,5.454607 +0.6639229,9,488.635,3.271458 +0.7123701,24,645.2518,4.264661 +0.5971812,71,323.3251,4.887295 +0.9040199,58,302.4310,5.526017 +0.891341,3,853.512,2.85285 +0.8327472,46,999.0827,5.068139 +0.538213,77,36.63778,4.919466 +0.9343277,60,798.6898,5.678839 +0.5291167,96,940.8475,4.986283 +0.5365506,2,905.9114,1.037311 +0.5783818,67,519.9423,4.807253 +0.6017498,70,535.2365,4.878864 +0.5621818,55,61.71024,4.679536 +0.631023,85,936.9508,5.064591 +0.6173371,18,425.883,3.820447 +0.5176463,23,673.073,3.843871 +0.7944634,58,930.0162,5.12811 +0.5406991,33,242.3118,4.196870 +0.6967938,23,300.9028,4.203233 +0.902891,90,637.2883,5.785307 +0.8088856,26,119.2594,4.627547 +0.5780078,51,584.8612,4.600362 +0.7028602,54,774.6654,4.871879 +0.6738062,30,613.2607,4.363156 +0.5541092,10,650.902,3.135661 +0.9457014,54,949.3188,5.683393 +0.8972022,46,406.4764,5.321292 +0.8667156,11,684.8948,4.065692 +0.9310755,76,645.1775,5.818983 +0.5542021,24,646.2454,3.947356 +0.5404606,42,196.7277,4.394176 +0.686979,56,163.9087,4.898354 +0.7025409,41,410.7730,4.67216 +0.8317294,53,419.5157,5.181381 +0.9424831,76,426.1901,5.908399 +0.7372916,44,485.0423,4.798806 +0.6709233,84,331.3589,5.140749 +0.6746366,12,859.704,3.571476 +0.8216683,34,540.0916,4.821108 +0.643978,57,272.3593,4.812046 +0.5520607,53,60.71588,4.631438 +0.7007719,42,765.4727,4.67977 +0.9199158,12,441.8452,4.417682 +0.7121463,56,636.3291,4.919563 +0.7334962,37,720.3002,4.65424 +0.7212483,71,372.2988,5.118448 +0.8790645,22,142.9078,4.741032 +0.9044781,59,215.2122,5.560589 +0.5302091,33,553.2379,4.172572 +0.9233759,72,269.3898,5.778901 +0.6341785,99,731.2685,5.179165 +0.8801704,15,991.0715,4.383208 +0.6209372,66,531.3332,4.869074 +0.7938349,97,125.7036,5.560664 +0.7822507,53,943.604,5.032947 +0.7205718,37,352.3203,4.634869 +0.8427076,42,572.6246,5.04161 +0.7351081,7,70.82834,3.233934 +0.5523457,19,653.4837,3.739476 +0.9089972,81,543.5491,5.749272 +0.7323391,50,895.3925,4.87574 +0.521568,82,214.5986,4.871706 +0.713984,22,361.0807,4.202606 +0.7087699,71,76.13513,5.170263 +0.7970846,85,246.2059,5.433973 +0.9484904,23,924.6415,5.115985 +0.695886,39,421.1168,4.619389 +0.5020152,34,437.4275,4.149307 +0.9410206,71,688.0979,5.836372 +0.887759,11,259.6189,4.178223 +0.7860928,52,439.7041,5.040212 +0.6178195,77,148.7578,5.001551 +0.6259203,98,944.3424,5.156093 +0.7109561,51,193.5400,4.873273 +0.7578351,95,481.2859,5.394517 +0.7206983,24,140.5904,4.313175 +0.8106681,17,827.8169,4.234558 +0.8989231,38,423.3858,5.192314 +0.7481471,23,39.30671,4.449383 +0.5809042,43,147.3237,4.491469 +0.7851278,29,506.1053,4.596806 +0.7531022,27,360.8266,4.463365 +0.8690282,88,68.67441,5.829221 +0.7360276,14,836.9838,3.859787 +0.6293365,7,300.9803,2.933594 +0.6489233,37,151.2782,4.503674 +0.7898306,59,323.5039,5.148535 +0.6523805,84,815.1856,5.094532 +0.5320332,29,993.8974,4.066623 +0.9269118,36,547.8584,5.294179 +0.8070126,24,620.2786,4.506701 +0.6693941,42,17.37505,4.888551 +0.5038683,85,633.7558,4.860832 +0.8940935,26,757.7715,4.87946 +0.8346877,92,575.5123,5.561954 +0.9175068,83,713.3788,5.798848 +0.9257833,54,283.4987,5.595522 +0.9184304,74,780.53,5.726756 +0.8686702,7,355.3133,3.666443 +0.5827008,35,998.6566,4.310686 +0.7970785,87,304.8774,5.441025 +0.9382596,25,548.312,5.107429 +0.8953957,59,306.9858,5.497621 +0.5908737,18,574.3097,3.765925 +0.5266771,30,920.222,4.085747 +0.5057869,11,132.1592,3.141296 +0.6763682,66,533.283,4.970388 +0.5986894,27,175.3026,4.143136 +0.8778105,11,320.0037,4.125823 +0.6886012,37,602.0783,4.559364 +0.8813419,12,330.9027,4.21685 +0.7192435,42,460.7729,4.724577 +0.5545486,56,15.70768,4.807326 +0.9325303,38,346.1985,5.383635 +0.669051,56,640.025,4.834118 +0.6583283,86,996.489,5.1202 +0.6057796,77,325.1724,4.961303 +0.7796517,90,571.285,5.404014 +0.5056907,17,266.7461,3.554489 +0.7515106,11,303.1314,3.690423 +0.7039952,48,202.1302,4.811129 +0.809957,79,66.13782,5.541357 +0.9224645,6,619.0758,3.812107 +0.5094466,88,898.6833,4.893397 +0.9477443,73,129.9485,6.031339 +0.5485121,7,9.254338,2.885109 +0.9305325,22,684.9766,4.95488 +0.7119204,89,910.6426,5.244861 +0.7536868,36,162.9004,4.713997 +0.8250412,54,148.9539,5.221541 +0.687851,59,864.5388,4.906065 +0.918532,97,597.2784,5.909369 +0.5595147,41,544.9091,4.398864 +0.9004672,85,239.2722,5.78195 +0.59365,54,878.0916,4.668481 +0.8783227,10,896.2678,4.030569 +0.8133267,96,370.0175,5.54357 +0.8671705,60,64.87276,5.5537 +0.883281,74,645.421,5.575454 +0.5804001,84,84.52473,5.018588 +0.8266129,54,200.4741,5.207821 +0.6836131,20,664.69,4.04816 +0.6035206,9,628.5172,3.133810 +0.6702452,69,849.1852,4.986271 +0.6364704,48,883.8399,4.655244 +0.5671835,9,546.4393,3.056326 +0.5690553,3,236.2613,1.753378 +0.8756632,64,780.2536,5.444975 +0.7153843,63,838.4182,5.008798 +0.804762,33,609.6379,4.747504 +0.6179514,73,488.8654,4.938339 +0.8194816,96,853.4875,5.540392 +0.7588645,2,152.7610,1.664141 +0.7981592,57,334.5773,5.144643 +0.9490692,85,556.0761,6.016835 +0.5867042,70,990.4885,4.849403 +0.6007492,12,694.5446,3.410986 +0.736716,84,601.6296,5.260216 +0.6323489,2,774.0551,1.274785 +0.738871,58,355.3918,5.011991 +0.8140275,34,702.4303,4.794691 +0.7255078,34,647.2084,4.572123 +0.864685,28,838.2934,4.812339 +0.7486541,3,207.2905,2.251476 +0.7494737,2,623.8884,1.626546 +0.6653869,13,954.9271,3.624499 +0.537772,95,186.5677,5.007723 +0.6538231,71,568.5899,4.980417 +0.9414375,88,510.526,5.987133 +0.5479147,54,51.48266,4.646137 +0.557724,48,903.0369,4.516893 +0.9386544,56,857.2707,5.659779 +0.5940301,94,253.2258,5.088894 +0.6501443,64,959.9111,4.893937 +0.6067973,54,908.6455,4.691129 +0.654507,59,52.07229,4.941878 +0.8192652,79,340.7329,5.43031 +0.939037,64,876.5141,5.74957 +0.6135284,81,459.9465,5.006509 +0.7110579,18,878.6845,4.01835 +0.814323,78,780.191,5.388123 +0.8908215,43,392.1403,5.246676 +0.53005,80,518.9931,4.85878 +0.6253301,33,718.2566,4.343194 +0.9362074,50,393.0591,5.591873 +0.7219975,87,541.2979,5.255803 +0.9459326,15,316.912,4.798087 +0.930335,80,807.2895,5.841721 +0.5681464,16,378.3508,3.61698 +0.9499151,14,420.992,4.770063 +0.7182865,68,375.8024,5.081201 +0.7794312,9,96.4755,3.610739 +0.5496585,34,351.8712,4.233967 +0.8552836,83,358.2531,5.571118 +0.7258398,66,132.6162,5.114452 +0.6802115,50,625.1914,4.771628 +0.7970908,68,216.5083,5.284177 +0.7856198,32,35.54217,4.868538 +0.6896799,53,619.3499,4.833827 +0.5405124,11,709.2976,3.202944 +0.5931073,58,181.7167,4.740144 +0.9296065,57,274.144,5.657511 +0.8894637,99,230.9085,5.83801 +0.7269455,94,416.5431,5.324466 +0.5054073,6,366.2931,2.485701 +0.5939675,62,223.0338,4.787509 +0.9279325,87,412.7045,5.904856 +0.874619,38,700.4562,5.077989 +0.773303,85,519.679,5.351931 +0.6715655,4,828.7634,2.39306 +0.9316947,6,611.5014,3.880666 +0.7816273,64,883.5622,5.166293 +0.7616447,35,490.4985,4.682418 +0.6307362,20,816.8543,3.93619 +0.7790853,60,134.1737,5.174301 +0.7120402,8,831.7674,3.270146 +0.6111881,54,420.4505,4.704805 +0.5667839,65,250.6678,4.773346 +0.7412546,31,604.9042,4.536834 +0.761954,86,590.23,5.331604 +0.8147305,97,669.9403,5.538824 +0.921257,12,598.9547,4.420777 +0.8579846,9,796.0635,3.848182 +0.6420126,59,390.8569,4.82794 +0.6954217,94,744.5522,5.25295 +0.9495565,16,861.5791,4.855693 +0.6113444,54,989.5619,4.69867 +0.8328882,19,203.3542,4.424911 +0.8856367,28,696.2317,4.898714 +0.640194,2,117.6311,1.300124 +0.6474485,52,427.2151,4.742487 +0.5670605,59,541.7196,4.692942 +0.8488514,30,185.5357,4.848086 +0.7165594,73,490.8832,5.123192 +0.6623204,53,298.4773,4.790835 +0.5074262,23,273.8531,3.829228 +0.6352413,49,967.0568,4.668145 +0.5649781,62,178.2758,4.740777 +0.7498571,20,583.6562,4.204169 +0.5835476,56,123.3513,4.706382 +0.7550705,79,316.9494,5.271653 +0.7218668,75,330.5023,5.16151 +0.5017672,84,382.8786,4.85166 +0.630573,36,709.534,4.422514 +0.935681,96,964.6872,5.985507 +0.8554879,34,145.4236,4.982775 +0.7229327,81,378.9831,5.214754 +0.8577544,42,999.5687,5.083548 +0.9432636,89,833.7002,5.990668 +0.7666204,57,493.171,5.056368 +0.6362688,29,762.5893,4.259337 +0.8958883,67,622.4665,5.560987 +0.8283473,13,847.803,4.063877 +0.7218571,74,269.1406,5.157658 +0.8416842,15,260.8999,4.25085 +0.8848287,95,302.4653,5.775057 +0.8140273,82,303.3425,5.4457 +0.7295315,70,835.9745,5.11325 +0.5807518,51,702.8305,4.603968 +0.6501605,82,199.395,5.09776 +0.8406729,11,74.10512,4.033798 +0.903668,100,908.3707,5.848135 +0.7548947,70,466.2839,5.176738 +0.8195727,43,868.5602,4.982021 +0.5663267,78,102.8917,4.929645 +0.9173868,2,983.7003,2.457186 +0.628796,87,665.3164,5.079912 +0.8091684,35,694.259,4.802692 +0.7323985,53,860.108,4.918963 +0.7742748,5,320.925,2.959510 +0.6931249,34,890.3259,4.49974 +0.5241701,19,878.5768,3.686026 +0.8520986,31,769.1417,4.844574 +0.589649,22,718.8403,3.938434 +0.5274364,77,522.0673,4.826529 +0.6014354,43,831.8862,4.507671 +0.7802544,69,375.5549,5.23125 +0.6449134,2,891.3265,1.308500 +0.8130707,32,796.61,4.744624 +0.573831,8,728.1806,2.947466 +0.9301646,10,393.0404,4.335678 +0.8982183,99,279.571,5.862206 +0.5661488,79,75.63719,4.951629 +0.6237751,59,588.3647,4.790296 +0.6550018,40,711.4487,4.551573 +0.8109876,28,456.1428,4.643873 +0.6988211,2,699.4621,1.463250 +0.5704728,50,793.2397,4.570573 +0.5820357,46,923.769,4.525452 +0.6473964,75,769.8616,5.005384 +0.9244471,96,835.5283,5.924331 +0.6504812,57,542.7684,4.81398 +0.867966,74,895.898,5.512985 +0.9418494,16,774.1639,4.7926 +0.6489154,2,96.85372,1.325131 +0.5085422,15,625.4407,3.440078 +0.6989324,82,629.8381,5.166497 +0.9183082,48,186.7327,5.499822 +0.7709177,56,8.400555,5.942506 +0.6682601,40,867.857,4.576017 +0.89172,55,165.8517,5.472501 +0.6924027,21,631.6706,4.109167 +0.7003671,80,747.3869,5.149938 +0.6623735,22,971.5073,4.081657 +0.6241618,66,884.9327,4.870709 +0.5252733,96,722.093,4.981467 +0.6021912,33,411.8979,4.303828 +0.7934302,15,539.9897,4.080298 +0.8792068,41,204.9749,5.19277 +0.8198524,55,154.0691,5.216557 +0.928111,67,748.7546,5.715469 +0.5133573,38,246.1858,4.263624 +0.6884071,37,674.5355,4.55795 +0.7461944,64,473.5671,5.093302 +0.6532605,97,185.9989,5.225389 +0.5501679,27,628.1183,4.040324 +0.7534715,27,19.90830,4.748168 +0.7025255,31,938.235,4.446551 +0.8893203,50,492.9179,5.339381 +0.7325881,3,16.04148,2.286298 +0.8471792,46,99.03947,5.214267 +0.8558435,14,925.2775,4.2263 +0.9016918,25,899.1608,4.883661 +0.9413817,37,697.0876,5.402966 +0.9225349,82,561.812,5.82426 +0.5003238,9,688.7228,2.917672 +0.8512868,20,559.2459,4.507173 +0.8284532,44,595.7483,5.03024 +0.846141,66,653.0226,5.36898 +0.748223,39,755.2171,4.727535 +0.7368554,26,749.7013,4.384982 +0.7189159,3,647.6345,2.152868 +0.7414169,15,94.89577,3.977394 +0.8153508,24,211.3473,4.55558 +0.6970842,31,797.3713,4.435984 +0.8025622,50,6.803501,6.268036 +0.9030182,26,381.8899,4.936831 +0.6419183,16,749.4674,3.763236 +0.9327713,20,151.1507,4.961371 +0.8798308,24,400.5564,4.768297 +0.5138711,3,821.1119,1.620491 +0.53179,14,989.895,3.418602 +0.8421581,75,887.0516,5.438645 +0.8565368,86,552.1805,5.585046 +0.6598265,16,685.9115,3.801888 +0.9419386,65,314.7918,5.818752 +0.7884257,93,434.97,5.453545 +0.5809332,37,839.5907,4.352714 +0.5207864,44,85.54216,4.4121 +0.5672738,25,628.4949,4.006396 +0.6546446,54,218.9772,4.796863 +0.5339421,34,842.3085,4.202027 +0.5361476,42,825.7257,4.37603 +0.6629262,81,171.9478,5.118468 +0.5759406,36,173.0157,4.336918 +0.547108,31,106.1333,4.170199 +0.507479,78,627.4027,4.803467 +0.6631738,75,844.3643,5.033109 +0.5277626,29,585.636,4.060688 +0.5617955,64,210.7296,4.755963 +0.5835145,5,64.48203,2.462699 +0.882635,82,746.709,5.637861 +0.7425467,87,934.1737,5.291144 +0.7768254,52,92.34035,5.092246 +0.7278219,39,573.6261,4.684182 +0.8767195,34,706.6265,5.005221 +0.850523,73,99.0534,5.563408 +0.8754488,82,583.1682,5.616972 +0.6626895,42,438.3507,4.608795 +0.9348684,26,225.5050,5.147867 +0.9416782,45,132.6854,5.644021 +0.7208806,81,6.229939,6.237515 +0.5405073,7,75.27229,2.747032 +0.784138,27,888.8104,4.532014 +0.7047413,26,397.4317,4.317997 +0.8364552,75,366.4362,5.442106 +0.8720677,78,507.4042,5.575244 +0.8908936,64,713.2027,5.506109 +0.8166285,51,517.321,5.104816 +0.6565045,49,602.2967,4.711042 +0.7925262,27,43.26737,4.713331 +0.9016432,46,142.4901,5.405597 +0.8237432,37,112.9364,4.956212 +0.6777052,50,249.6319,4.781308 +0.9397628,44,116.4927,5.630913 +0.7341784,62,94.20431,5.111798 +0.6929476,61,14.01006,5.350054 +0.740762,86,974.9146,5.278999 +0.5808794,14,388.2787,3.518560 +0.7912621,63,532.4759,5.186615 +0.6266644,36,71.63259,4.466956 +0.6721112,45,252.2225,4.689743 +0.5568319,33,234.6669,4.226382 +0.7115908,38,835.0688,4.625388 +0.5007294,8,713.4759,2.793781 +0.9356461,65,800.8346,5.739674 +0.6431681,51,275.0588,4.726642 +0.6418362,30,783.4145,4.297577 +0.7584736,61,857.6538,5.078252 +0.9400944,68,808.2146,5.797917 +0.8150239,16,259.8427,4.214301 +0.5928511,25,884.6633,4.0527 +0.8235666,23,772.7027,4.52082 +0.7966892,100,173.8055,5.564043 +0.8403294,71,787.3465,5.397731 +0.6412425,45,936.1094,4.614527 +0.7763971,33,111.9587,4.725915 +0.6629552,67,97.09423,5.007628 +0.9173387,6,707.2925,3.775694 +0.7671331,5,428.4920,2.934431 +0.7318255,51,691.8642,4.891703 +0.9348959,48,464.1825,5.548811 +0.9217564,53,973.5796,5.518674 +0.6395493,32,814.8357,4.344956 +0.6595887,36,217.8564,4.494006 +0.7371668,79,601.646,5.218455 +0.8302437,87,993.3104,5.502131 +0.8564486,24,420.4169,4.674961 +0.7701998,76,656.015,5.263296 +0.6874573,47,608.4487,4.739844 +0.7121946,5,762.8256,2.769008 +0.7101067,68,554.8536,5.057617 +0.6214585,46,858.065,4.595565 +0.8607614,90,841.2433,5.61987 +0.6583589,22,568.094,4.076247 +0.6248519,16,359.5323,3.731892 +0.9475922,7,553.6634,4.161477 +0.9259968,89,677.8597,5.890037 +0.7219641,93,444.3312,5.305514 +0.866721,78,530.8345,5.555063 +0.895877,58,924.2145,5.455649 +0.7745198,83,239.1456,5.362005 +0.7279426,30,685.3133,4.479054 +0.6292672,5,652.6662,2.554493 +0.8621705,12,924.5616,4.119954 +0.7819186,96,730.1539,5.448783 +0.885565,90,730.3173,5.710649 +0.8552883,76,899.2516,5.488386 +0.6654058,86,486.6332,5.140343 +0.5998509,42,991.0918,4.485726 +0.8327136,54,536.8069,5.191774 +0.7425117,53,378.7974,4.952954 +0.7964822,75,952.3056,5.31239 +0.8088025,15,44.39403,4.251033 +0.6742135,36,860.2365,4.506043 +0.884635,39,389.9112,5.150668 +0.5918631,14,48.27244,3.582336 +0.9172598,17,29.02950,5.022216 +0.7190332,42,50.17895,4.837464 +0.5797433,60,961.7418,4.723679 +0.8932167,67,682.0348,5.54753 +0.6988684,85,423.5009,5.197771 +0.6357016,16,836.6406,3.749755 +0.6890077,32,461.3887,4.449031 +0.7588667,42,280.3290,4.825713 +0.5494846,55,47.56121,4.668146 +0.6874588,49,659.3741,4.770332 +0.6365405,66,737.9129,4.893803 +0.8233614,36,157.4156,4.91091 +0.5840611,60,124.7446,4.759483 +0.7339906,37,716.2325,4.655409 +0.7774252,44,334.844,4.901962 +0.6193005,9,940.9317,3.167399 +0.696985,26,88.31102,4.3444 +0.940315,59,700.5253,5.710277 +0.7377039,14,668.2784,3.865379 +0.913119,91,783.4478,5.83421 +0.5370352,14,440.6516,3.430929 +0.5327774,36,123.0329,4.263722 +0.648229,17,177.8754,3.844856 +0.6401825,64,575.8182,4.87999 +0.9480667,62,240.2785,5.85306 +0.8221232,31,667.1766,4.749486 +0.574851,16,771.9699,3.627125 +0.6598773,3,94.76652,1.993306 +0.7800032,26,714.9019,4.493196 +0.697495,32,653.2019,4.463514 +0.5867579,21,435.1138,3.895165 +0.6375613,18,609.9121,3.859645 +0.7611845,76,715.156,5.241431 +0.7984868,79,989.688,5.352595 +0.7752109,34,671.7063,4.689988 +0.8994018,22,624.0138,4.781058 +0.8005305,13,626.9485,3.975938 +0.6398316,55,286.0043,4.776561 +0.9424745,25,999.8135,5.127177 +0.5227684,13,699.9421,3.330973 +0.8779214,80,450.7731,5.617354 +0.917571,9,710.7334,4.149813 +0.8569605,99,590.8516,5.677787 +0.6843676,89,603.5044,5.196629 +0.733581,22,490.3643,4.245027 +0.8672448,26,182.8215,4.807842 +0.7397184,87,120.0428,5.35191 +0.5527422,23,235.8245,3.914409 +0.5820121,72,811.4327,4.863264 +0.9103458,29,548.7671,5.045708 +0.7945998,61,593.8792,5.170347 +0.5124122,96,562.5626,4.962827 +0.623792,51,197.2819,4.697112 +0.5217335,90,721.5645,4.929546 +0.8997264,24,919.2028,4.843187 +0.8411916,70,41.51056,5.664744 +0.7871999,5,232.2797,3.005849 +0.6698947,20,983.0028,4.016535 +0.7529359,84,25.78049,5.614619 +0.7208476,100,677.1795,5.346025 +0.5955761,18,635.3268,3.774734 +0.5967151,41,8.097904,4.849405 +0.7051689,44,680.4017,4.725193 +0.8043721,26,425.092,4.567816 +0.6045699,12,444.4552,3.420835 +0.9499069,68,96.17027,6.056731 +0.7528673,65,118.8346,5.174443 +0.5454412,32,666.9706,4.173194 +0.6051781,68,38.05244,4.970321 +0.9332288,77,568.6311,5.844464 +0.7542108,15,693.6439,3.968683 +0.7988791,42,207.1542,4.94052 +0.7200135,38,599.6341,4.646607 +0.6721438,49,389.8183,4.746427 +0.8592696,70,425.4091,5.462841 +0.7293571,43,247.9677,4.777638 +0.8784906,57,573.1369,5.382846 +0.8872626,60,518.9786,5.45521 +0.8542287,41,141.3212,5.121138 +0.8359833,60,26.23134,5.672828 +0.8527313,17,920.5974,4.37559 +0.5880137,61,823.1405,4.750736 +0.5841701,73,17.39604,5.082933 +0.61481,21,96.121,3.975453 +0.529416,91,166.0006,4.964893 +0.6913516,51,590.0996,4.809118 +0.8012878,63,291.3125,5.228858 +0.5019232,19,857.4837,3.645079 +0.8200012,68,28.59088,5.670121 +0.8115694,52,648.0865,5.100523 +0.9250571,51,160.3951,5.596079 +0.5669754,2,513.2984,1.109653 +0.6057292,64,150.8608,4.842164 +0.5911127,49,342.9278,4.597324 +0.8676585,14,558.4217,4.278688 +0.6736706,57,691.9278,4.855279 +0.897761,99,813.2623,5.818812 +0.8267767,46,228.8463,5.085301 +0.6035152,68,846.6566,4.85725 +0.7582057,20,242.3354,4.23916 +0.6485803,73,851.7446,4.987295 +0.5070576,79,756.7226,4.811436 +0.5045091,25,103.9773,3.906777 +0.6615933,25,756.1777,4.188058 +0.6169842,59,584.731,4.778306 +0.755264,82,2.038796,9.136763 +0.7341297,14,955.4349,3.854338 +0.7110796,100,249.6301,5.349031 +0.739534,90,239.7671,5.337524 +0.8744877,23,767.341,4.701607 +0.5994343,47,866.2662,4.572732 +0.5812632,27,242.8247,4.10473 +0.8300101,97,539.0103,5.585397 +0.7644073,77,93.01882,5.347438 +0.7088963,47,66.22171,4.870752 +0.761716,26,537.1646,4.448955 +0.8267095,51,146.2974,5.186344 +0.920754,6,883.9607,3.797106 +0.5645494,25,607.3827,4.001519 +0.7991966,61,233.9742,5.208985 +0.9370318,13,884.9198,4.590025 +0.9296204,16,614.5821,4.707096 +0.7483718,19,893.7514,4.154285 +0.87035,16,740.2796,4.396994 +0.6614598,3,704.9057,1.987768 +0.5755732,25,332.8273,4.025758 +0.8172683,22,533.8112,4.47024 +0.7023444,65,294.7561,5.02131 +0.8701465,78,502.7068,5.568647 +0.6377123,80,469.6564,5.039544 +0.8404908,72,49.64911,5.637678 +0.8580997,35,485.0983,4.96374 +0.8447534,84,954.432,5.521624 +0.8791155,26,796.0717,4.813707 +0.5021335,82,631.2578,4.83185 +0.864138,46,627.4507,5.17786 +0.6829586,100,381.9724,5.282529 +0.6399337,92,15.78762,5.45512 +0.892801,77,966.1946,5.631521 +0.7112448,93,557.9093,5.279971 +0.9059195,89,635.9542,5.79166 +0.6766005,45,865.898,4.682495 +0.8078958,82,484.666,5.414492 +0.9209267,5,709.386,3.620243 +0.5019439,34,358.7489,4.150157 +0.796657,22,698.0417,4.405835 +0.666716,67,518.8367,4.963378 +0.5832934,67,428.1866,4.817323 +0.6353169,50,160.2554,4.70964 +0.808612,24,875.6253,4.507879 +0.5622533,55,857.164,4.6292 +0.7769792,50,48.44318,5.144435 +0.7508037,18,215.6834,4.133351 +0.8904394,24,92.84264,4.901687 +0.7551548,8,796.5009,3.387813 +0.7183715,89,264.4048,5.28108 +0.7258366,88,963.9777,5.264218 +0.7143347,99,726.5095,5.32536 +0.8406081,83,836.4688,5.503172 +0.8187647,25,938.3164,4.569789 +0.8672593,46,313.6396,5.208531 +0.7980852,36,675.2051,4.793406 +0.8890563,58,892.8864,5.42769 +0.5277273,12,994.4026,3.26243 +0.5989106,60,404.3719,4.762745 +0.5224652,4,367.6047,2.031144 +0.9332694,15,366.5174,4.693619 +0.8910453,17,532.0215,4.541773 +0.742809,13,415.2074,3.816228 +0.6804219,49,587.299,4.75754 +0.6776288,11,547.1345,3.498423 +0.6405099,11,157.8323,3.42548 +0.7646327,30,314.6165,4.578473 +0.6431464,49,41.3123,4.794521 +0.6625404,21,192.0381,4.059123 +0.6285435,63,806.1845,4.844859 +0.5573989,47,505.8864,4.502889 +0.805001,40,903.4414,4.887536 +0.6460129,98,943.8153,5.190381 +0.8322745,30,99.25623,4.832698 +0.6887781,13,941.4417,3.677867 +0.9206663,47,952.5114,5.431576 +0.5918448,45,2.249338,5.900957 +0.7669543,39,634.4666,4.774106 +0.5947878,40,650.6587,4.440511 +0.6610799,98,738.0277,5.218904 +0.8867663,81,920.1037,5.641652 +0.6770999,41,660.3415,4.614517 +0.5231052,15,935.7127,3.467006 +0.9195054,66,973.0122,5.652802 +0.9458154,25,135.1134,5.245808 +0.6825682,18,518.101,3.957023 +0.7202741,31,954.2325,4.485164 +0.6372724,84,919.9869,5.067105 +0.6639058,94,535.0358,5.198697 +0.5768879,76,126.4520,4.922606 +0.6014787,98,379.4988,5.124203 +0.843094,26,599.521,4.683426 +0.745788,45,676.9461,4.830438 +0.8906488,91,755.4079,5.73699 +0.6100992,51,501.9635,4.657766 +0.8425603,61,661.1285,5.303181 +0.7462918,5,387.18,2.870519 +0.5925678,48,820.1916,4.577148 +0.6827127,75,374.9527,5.080066 +0.7781868,89,890.89,5.38604 +0.5066091,94,951.6413,4.936563 +0.7372862,90,806.7184,5.305063 +0.719858,71,201.6342,5.133828 +0.6634803,26,830.8077,4.223751 +0.6532852,63,685.4556,4.890671 +0.8625157,38,534.4332,5.037837 +0.9113472,60,437.6948,5.568579 +0.5088646,38,321.167,4.253789 +0.7771815,76,39.75654,5.505239 +0.8329044,62,524.4686,5.289855 +0.5650291,62,74.44416,4.768244 +0.8036751,73,829.7145,5.313832 +0.8067298,57,713.1123,5.151231 +0.8660429,3,628.0595,2.714821 +0.6403124,8,167.818,3.105184 +0.5834719,5,25.55454,2.491245 +0.5572141,15,912.192,3.532799 +0.6488088,16,908.6736,3.777065 +0.7077434,53,773.6298,4.868082 +0.5422179,92,392.5441,4.981776 +0.9266149,24,283.4202,5.020614 +0.934397,36,558.1984,5.341096 +0.7949,27,155.1294,4.600911 +0.7424595,23,666.7898,4.300019 +0.8616935,5,890.3192,3.286170 +0.6884716,12,873.8338,3.603543 +0.5995778,52,668.5873,4.651719 +0.8508779,54,410.018,5.255892 +0.6660627,75,879.4836,5.038071 +0.6070051,26,267.511,4.121184 +0.9190156,63,258.2150,5.667737 +0.7015881,80,761.3171,5.152116 +0.5142113,20,188.6005,3.720824 +0.6813229,93,817.4621,5.218213 +0.5267363,21,495.4859,3.781604 +0.7904401,18,243.0097,4.239977 +0.7043728,80,941.1215,5.155511 +0.7330856,28,214.5299,4.455344 +0.771847,40,761.3398,4.803051 +0.8222126,10,122.1747,3.845657 +0.6519614,52,676.2551,4.746188 +0.6944437,36,204.5020,4.568574 +0.8187647,9,639.2002,3.701892 +0.7374063,32,35.85045,4.713835 +0.643858,77,241.4941,5.035362 +0.7042147,28,781.8938,4.370234 +0.6143113,98,315.3997,5.149002 +0.944967,80,332.0912,5.973127 +0.7394078,37,842.948,4.666253 +0.8836379,73,903.33,5.560995 +0.6131344,14,725.1093,3.581661 +0.7558923,50,587.989,4.933226 +0.9276066,11,222.4321,4.416174 +0.6907774,97,309.7564,5.281169 +0.858821,20,501.4091,4.536867 +0.5517754,94,559.6398,5.009473 +0.7344678,31,542.87,4.522231 +0.6010437,2,644.5435,1.193663 +0.6390766,76,371.5618,5.008526 +0.6255595,8,534.3747,3.062646 +0.9056744,72,223.5716,5.699772 +0.8890962,72,173.6807,5.644737 +0.9489493,64,703.9186,5.826285 +0.8001742,28,105.0511,4.668771 +0.8885515,90,246.1473,5.766628 +0.9104312,68,907.543,5.628369 +0.7987321,11,748.0737,3.819856 +0.710524,91,97.95307,5.332649 +0.7085246,40,240.5481,4.676803 +0.5066204,29,770.7431,4.022715 +0.8146826,24,45.95264,4.681249 +0.7602707,76,8.387661,6.158087 +0.5249838,19,959.5517,3.687356 +0.8816273,38,889.53,5.102017 +0.6058824,83,365.8123,5.013899 +0.7755455,39,358.9888,4.805197 +0.803905,19,248.2879,4.324838 +0.7786487,74,795.3093,5.261867 +0.5892645,56,824.3645,4.688727 +0.7503843,59,146.3536,5.084155 +0.8878726,45,829.1219,5.248587 +0.7215956,45,586.8566,4.778501 +0.6683625,75,916.5796,5.041976 +0.8200763,11,655.7469,3.8903 +0.9290939,47,171.2948,5.557564 +0.8664462,49,687.7418,5.229077 +0.6709497,80,972.34,5.092141 +0.662782,11,260.5764,3.469753 +0.856763,68,72.66898,5.582224 +0.9451141,84,73.09254,6.229147 +0.5442873,34,625.0037,4.221118 +0.5587434,8,246.4427,2.919025 +0.6964054,7,884.3078,3.09278 +0.8280353,79,445.1356,5.446695 +0.9319106,83,83.3915,6.083346 +0.9094553,33,299.5859,5.154842 +0.7082671,94,916.572,5.275416 +0.5393918,46,441.9737,4.456249 +0.9006434,37,600.3707,5.172166 +0.7570982,51,3.471025,6.915447 +0.7251017,19,79.5184,4.152646 +0.7056264,15,538.5481,3.84945 +0.6071612,50,917.938,4.633409 +0.7963605,77,742.4764,5.333493 +0.6792351,15,444.376,3.789908 +0.8117668,31,414.1619,4.726513 +0.7630922,38,325.9708,4.756469 +0.8835082,57,859.4473,5.39423 +0.7853005,3,877.1259,2.371308 +0.5823137,32,137.8372,4.257573 +0.8698176,36,404.6398,5.032198 +0.6466369,3,76.42683,1.959759 +0.8688753,39,247.9359,5.105039 +0.911857,30,291.4432,5.098902 +0.7783195,55,21.39750,5.432208 +0.7999033,19,560.2088,4.298088 +0.8507938,89,975.0028,5.578287 +0.8241017,100,629.8307,5.585552 +0.5436256,22,376.0586,3.855056 +0.6320413,11,418.4698,3.396621 +0.7373736,92,27.8193,5.610314 +0.7955,46,330.8586,4.98233 +0.8829698,38,998.1991,5.105958 +0.8849295,63,727.0993,5.471034 +0.838828,86,77.1965,5.67457 +0.8527707,86,300.0162,5.594421 +0.5038315,70,206.4996,4.725505 +0.7296358,19,49.6474,4.200878 +0.6307941,34,957.3206,4.37594 +0.6606051,52,535.1912,4.764698 +0.5302261,42,398.8626,4.36944 +0.5320133,34,655.6624,4.199522 +0.717173,53,213.497,4.912165 +0.7287862,29,414.4081,4.459878 +0.8519769,40,395.7273,5.045371 +0.8458813,37,851.0596,4.953455 +0.5080707,21,542.4744,3.747078 +0.8051663,27,488.0093,4.597385 +0.7183791,64,716.7317,5.027853 +0.74227,54,722.8267,4.955939 +0.8676867,91,430.0528,5.667708 +0.7718417,16,637.8888,4.07256 +0.6280025,55,917.1669,4.742335 +0.8805145,73,291.5224,5.583936 +0.9136214,61,624.4414,5.579953 +0.6406982,39,63.4406,4.569391 +0.7158347,60,583.5661,4.978497 +0.8338452,90,533.1334,5.546689 +0.6402985,25,74.77586,4.190889 +0.8342987,15,943.0546,4.20576 +0.6310646,10,661.5494,3.299443 +0.8832602,16,427.1417,4.460933 +0.8367622,75,996.2516,5.420939 +0.7869439,40,632.3436,4.843514 +0.7270005,31,420.2332,4.508401 +0.7344772,37,232.4106,4.676147 +0.748638,28,576.1854,4.474753 +0.7833058,29,203.2394,4.613577 +0.9264593,94,401.6628,5.94759 +0.517303,5,91.09677,2.304455 +0.8696138,3,616.2727,2.733279 +0.6337402,96,20.0967,5.407003 +0.6865132,80,684.3764,5.124317 +0.8716307,34,857.9636,4.982612 +0.8256833,36,80.41628,4.974381 +0.7768496,100,922.0373,5.461231 +0.9348923,47,185.3694,5.588766 +0.9213014,59,715.2368,5.594296 +0.637975,47,960.5189,4.641537 +0.7403673,62,260.0004,5.072181 +0.888522,24,799.4427,4.793178 +0.7292344,81,333.3577,5.231112 +0.5112314,96,867.6153,4.959088 +0.6606651,48,740.136,4.701648 +0.8307073,18,575.5492,4.349796 +0.8462718,35,58.98953,5.070533 +0.9425635,4,623.8769,3.567630 +0.7125992,51,356.6673,4.860408 +0.719433,51,698.7236,4.865044 +0.8117532,67,123.0728,5.352249 +0.51242,13,494.2803,3.311685 +0.8207607,22,87.44027,4.552963 +0.7436482,32,212.3617,4.587393 +0.857994,15,814.849,4.293433 +0.8876703,25,357.3681,4.836751 +0.9342724,5,124.0048,3.764013 +0.8253175,2,505.8184,1.922227 +0.5419264,37,468.7642,4.287065 +0.8352296,49,595.4923,5.128307 +0.7760867,32,128.3048,4.69243 +0.5874936,17,628.5572,3.707673 +0.8402649,72,948.8077,5.404287 +0.8161572,35,549.248,4.826251 +0.5657067,75,14.10146,5.09065 +0.7584987,9,751.2792,3.512529 +0.8671165,44,395.8337,5.168171 +0.6058399,72,563.812,4.905976 +0.8298326,21,873.2819,4.467329 +0.7459137,2,764.5082,1.614097 +0.795002,100,483.403,5.515984 +0.5110326,35,590.3715,4.187442 +0.5340734,44,951.0518,4.408872 +0.7296615,4,321.1628,2.560116 +0.6477494,81,326.3393,5.072265 +0.7893775,51,766.0078,5.025427 +0.8201982,99,760.9333,5.56464 +0.8019888,56,156.5017,5.176328 +0.6829048,86,804.1223,5.166731 +0.6811957,80,395.5219,5.122117 +0.5937907,90,292.4034,5.054806 +0.6994597,75,591.3511,5.105359 +0.7505089,77,420.6277,5.236085 +0.7389941,70,134.9801,5.186518 +0.7474006,68,380.0116,5.143788 +0.9283534,65,871.1195,5.693591 +0.8853698,54,781.4963,5.36612 +0.6727283,50,98.73228,4.806432 +0.9024598,58,288.6449,5.52108 +0.9422723,48,601.0573,5.59093 +0.8320503,77,451.9414,5.44044 +0.7462295,52,463.9862,4.94351 +0.6709326,14,603.4235,3.706814 +0.7027618,56,633.9876,4.900411 +0.8641877,26,399.6143,4.767001 +0.9291702,100,940.3461,5.973414 +0.8258535,14,672.2688,4.121168 +0.813817,78,424.6809,5.399575 +0.8729098,22,278.2921,4.682318 +0.8000553,48,633.6019,5.012 +0.7571338,99,132.9017,5.47651 +0.585785,55,746.6153,4.669697 +0.5801946,49,803.9324,4.571639 +0.8304912,39,984.3345,4.941709 +0.9205222,49,108.9491,5.58668 +0.753516,41,940.5831,4.775568 +0.658206,12,818.7406,3.534411 +0.7980743,76,100.0541,5.42265 +0.8053866,43,924.0142,4.941535 +0.6634431,67,454.244,4.95901 +0.6276517,99,378.1968,5.176032 +0.9353756,16,152.446,4.803419 +0.7972733,24,216.8124,4.500071 +0.7848158,26,324.9694,4.517971 +0.924885,68,424.4133,5.725171 +0.8978605,35,36.21963,5.43976 +0.893118,59,16.27533,6.286604 +0.6643898,43,137.3643,4.656881 +0.5086009,31,757.6005,4.08214 +0.5289369,3,46.10701,1.668507 +0.6662625,100,811.5261,5.241232 +0.6849102,6,759.6397,2.899159 +0.6902612,59,737.0007,4.912149 +0.7061771,45,647.2657,4.74473 +0.667381,51,277.129,4.773309 +0.7089084,90,950.5108,5.24631 +0.726764,5,33.05932,2.874905 +0.932936,49,645.2856,5.539989 +0.8955401,36,128.7913,5.205502 +0.7664723,97,60.16786,5.574492 +0.6150861,41,680.7598,4.496292 +0.674237,67,329.4989,4.984961 +0.5336574,13,108.5183,3.364797 +0.760271,48,587.2861,4.913527 +0.7475153,29,444.9428,4.503107 +0.6400046,64,908.336,4.876023 +0.6650242,43,16.14885,4.913769 +0.6937891,80,561.2694,5.140687 +0.887406,83,32.14545,6.114019 +0.904731,2,377.119,2.365172 +0.8471754,19,624.3107,4.449655 +0.5666982,16,39.5771,3.662043 +0.9328277,11,480.6788,4.431356 +0.7922494,87,443.7334,5.417071 +0.8112987,95,226.9083,5.552231 +0.6133779,10,491.8312,3.261789 +0.6110203,68,785.7354,4.870548 +0.8970352,34,271.7124,5.11961 +0.8785843,67,798.9047,5.486443 +0.6724811,89,781.2876,5.171774 +0.6222045,16,807.4755,3.721919 +0.8502613,74,862.1943,5.455025 +0.5398314,29,411.4463,4.083856 +0.6792529,56,759.8733,4.852141 +0.6765828,24,468.7599,4.189076 +0.713825,69,830.8558,5.070837 +0.9256529,49,299.9408,5.524863 +0.5631582,20,253.5615,3.81113 +0.6424909,83,198.6384,5.092229 +0.7386519,76,21.18628,5.548556 +0.6851306,39,706.3514,4.591613 +0.7202942,62,387.4803,5.018255 +0.8902591,33,797.2625,5.037685 +0.5598123,7,790.0233,2.774130 +0.759497,10,520.5702,3.617932 +0.8977739,69,917.4554,5.580563 +0.729828,36,97.78912,4.682077 +0.5290516,15,958.4097,3.478331 +0.9282293,79,384.0795,5.847463 +0.8311524,21,158.7927,4.51141 +0.6868337,35,99.9053,4.557294 +0.6279094,49,79.26277,4.708953 +0.9039485,84,445.2753,5.756844 +0.898548,62,490.6054,5.526963 +0.8490779,40,810.5851,5.021547 +0.7652964,32,334.021,4.629276 +0.8686192,25,956.7512,4.739846 +0.6570135,70,142.3589,5.008457 +0.6120404,22,960.5204,3.980529 +0.6727586,61,732.1227,4.902816 +0.9390417,70,978.3288,5.805469 +0.6322727,65,42.49298,4.986196 +0.8420094,59,579.1828,5.28088 +0.8502256,57,885.6972,5.275624 +0.7768617,27,619.6548,4.516229 +0.5832149,72,206.8745,4.881147 +0.844921,63,888.1342,5.328041 +0.6436299,6,915.0828,2.795881 +0.7765341,94,958.9544,5.418364 +0.500027,83,214.0714,4.845321 +0.9493338,66,46.71093,6.250622 +0.5066988,9,639.482,2.930763 +0.7462216,11,396.7089,3.672843 +0.567244,52,520.2303,4.59758 +0.8421211,98,83.80207,5.765354 +0.8875776,32,428.5642,5.016232 +0.6608919,71,969.344,4.988638 +0.8039491,24,203.3197,4.522054 +0.8620975,8,511.9531,3.760100 +0.864312,6,502.6081,3.490271 +0.6693177,67,461.6307,4.969838 +0.5074913,77,596.7396,4.794191 +0.7032736,67,357.7343,5.0407 +0.8214841,35,854.0057,4.836031 +0.7366083,19,375.6881,4.133019 +0.6330116,85,361.0845,5.07839 +0.8963766,68,497.6582,5.579325 +0.9159304,52,604.829,5.484746 +0.6595075,7,986.7414,3.000678 +0.5753076,17,578.6994,3.68411 +0.5580612,50,856.1792,4.54921 +0.6553601,85,61.36344,5.201974 +0.900686,15,133.0886,4.539378 +0.6829527,86,544.1058,5.171349 +0.8457578,22,128.4829,4.613213 +0.9212189,71,304.4749,5.749921 +0.8918972,83,346.32,5.707472 +0.5864152,95,2.099936,6.718664 +0.5686968,50,82.45168,4.604964 +0.899514,11,82.5313,4.303197 +0.795062,72,482.2151,5.291828 +0.6483403,79,628.6701,5.046107 +0.7940012,97,252.8391,5.515253 +0.8008343,49,305.2234,5.045411 +0.8463603,89,591.3357,5.574033 +0.7679076,88,765.9055,5.356732 +0.6129822,86,190.9238,5.065058 +0.794287,74,65.87518,5.445131 +0.595042,22,736.6731,3.948656 +0.7492896,12,957.5914,3.755035 +0.5575823,16,953.6576,3.592982 +0.891035,34,198.4613,5.108404 +0.8700615,67,735.4535,5.456826 +0.6102607,74,615.7466,4.932702 +0.6442439,42,85.62474,4.617894 +0.9296985,6,933.5528,3.861461 +0.7083424,3,806.3799,2.120714 +0.8107343,46,923.9881,5.005333 +0.6170151,30,866.2096,4.249458 +0.5470541,19,480.3602,3.730668 +0.8595827,78,627.839,5.526631 +0.6772016,44,234.3043,4.684579 +0.6110317,58,695.5628,4.753752 +0.8653476,54,880.023,5.289088 +0.7431905,78,428.9381,5.228603 +0.8290363,76,533.6956,5.418502 +0.5193487,26,855.5284,3.952156 +0.8672889,90,488.9548,5.654752 +0.5127307,25,169.0594,3.915601 +0.7821378,91,451.9449,5.422582 +0.765217,30,465.913,4.572756 +0.821991,76,505.045,5.399814 +0.7502065,50,227.0218,4.941853 +0.5465306,12,906.6364,3.299862 +0.8074795,41,46.12214,5.096338 +0.7318816,61,239.4124,5.044108 +0.7379262,36,455.7286,4.648779 +0.7981295,71,324.1441,5.300941 +0.5761634,55,982.1628,4.652028 +0.5827038,70,810.1251,4.843766 +0.6060221,9,645.4407,3.139188 +0.929337,65,933.377,5.697937 +0.5944697,42,333.9487,4.483901 +0.5904768,42,39.00159,4.555614 +0.6237111,24,826.2296,4.077733 +0.7321938,99,546.025,5.365483 +0.8092262,24,113.7361,4.56686 +0.7384458,72,680.5146,5.154358 +0.7702537,12,562.1573,3.815985 +0.6441926,88,98.59672,5.168001 +0.7592311,29,482.56,4.530664 +0.5798336,5,606.1835,2.437498 +0.6674997,33,177.1550,4.446129 +0.7564904,24,553.4765,4.37112 +0.8303686,26,783.7082,4.638198 +0.7687771,99,716.0814,5.439636 +0.8210636,58,516.3427,5.208918 +0.8839874,13,236.9632,4.306785 +0.8675836,88,9.0463,7.04867 +0.5933452,12,885.4963,3.394909 +0.6987614,97,167.3294,5.31902 +0.6083984,32,348.0146,4.292166 +0.781873,49,182.8657,5.014807 +0.6179727,64,338.0714,4.846711 +0.5738579,28,887.2536,4.112514 +0.8718374,74,916.9767,5.52622 +0.695573,57,619.4104,4.899196 +0.7813837,45,763.106,4.914116 +0.7587202,56,243.6302,5.042987 +0.8526122,69,335.588,5.439119 +0.679438,25,3.925323,5.244888 +0.9018107,28,796.7149,4.970157 +0.9031522,60,560.215,5.521575 +0.620925,60,188.3965,4.815776 +0.5398193,23,962.0695,3.883163 +0.8001978,86,444.2741,5.429201 +0.8743729,85,382.2575,5.650717 +0.583254,25,654.4453,4.035908 +0.6820578,83,600.6018,5.143397 +0.7261496,39,706.9857,4.67826 +0.5349857,96,677.6188,4.996885 +0.8780665,26,145.6244,4.866995 +0.5110006,22,347.6669,3.795356 +0.9457965,31,497.3779,5.321787 +0.7104668,42,449.4024,4.706034 +0.926931,2,582.9908,2.539423 +0.6842416,48,820.8916,4.746617 +0.8984944,7,297.3639,3.820169 +0.5931354,16,962.1802,3.662621 +0.6215017,70,110.3659,4.950248 +0.5249559,9,451.851,2.968919 +0.6870519,78,313.5085,5.120267 +0.6895417,68,32.65226,5.201474 +0.6604548,62,818.0275,4.890735 +0.7258901,81,356.6513,5.222353 +0.8189167,84,452.3966,5.462345 +0.780193,75,79.63504,5.388074 +0.6710222,48,327.2395,4.731501 +0.8660183,76,809.9751,5.525832 +0.9385447,71,319.9745,5.852341 +0.8408653,45,476.6827,5.089412 +0.8506329,22,976.784,4.573917 +0.6274595,24,889.7172,4.084769 +0.7895091,91,31.23733,5.747325 +0.6720448,26,258.3145,4.253512 +0.6572791,76,163.3674,5.063448 +0.7308232,24,755.801,4.305953 +0.6334011,72,716.3932,4.951746 +0.875161,23,122.4376,4.770516 +0.6127634,92,978.5912,5.089453 +0.5246284,89,713.353,4.926033 +0.895216,15,353.697,4.469064 +0.7840556,2,170.7737,1.756434 +0.8611382,86,410.3382,5.609362 +0.5039933,89,312.2973,4.898963 +0.7011006,71,974.6255,5.064487 +0.7574644,99,511.3727,5.420484 +0.7464697,8,351.1746,3.36846 +0.9243401,74,892.4622,5.755217 +0.6147572,43,770.8194,4.532012 +0.9229638,52,813.2275,5.51579 +0.8206974,12,636.0771,3.9702 +0.7576767,21,246.3065,4.278102 +0.5283881,4,684.9849,2.043687 +0.6583222,39,346.022,4.54592 +0.6346257,96,211.0651,5.17961 +0.5608158,37,735.7256,4.317794 +0.7522666,60,914.4428,5.051786 +0.5487665,10,500.9638,3.125392 +0.6703224,94,579.5087,5.209303 +0.7221054,69,316.5972,5.103682 +0.8728384,10,63.56726,4.100998 +0.5574435,57,43.56925,4.718101 +0.8063746,62,131.3486,5.275156 +0.8943675,97,182.5163,5.864757 +0.6457493,5,430.6312,2.596322 +0.5910911,27,686.4856,4.114989 +0.659809,33,223.4219,4.424611 +0.5089013,37,85.17943,4.24973 +0.9337569,65,640.6944,5.733591 +0.8916446,68,81.18035,5.714367 +0.726869,88,469.9061,5.276224 +0.7227274,45,508.542,4.782788 +0.7008706,50,413.0376,4.818512 +0.5846127,3,629.5136,1.789435 +0.9457911,23,494.1918,5.106915 +0.7482145,76,977.4924,5.209178 +0.6433126,87,417.9693,5.110869 +0.5793081,29,982.1014,4.151251 +0.6934788,68,501.5589,5.025896 +0.6311162,48,915.3363,4.645259 +0.9031826,38,518.1569,5.206703 +0.856174,57,907.4092,5.294779 +0.6691795,35,226.9216,4.490414 +0.80142,93,697.1788,5.475566 +0.7584387,40,965.8347,4.768409 +0.8248351,38,591.9851,4.912069 +0.9428126,94,66.87335,6.314711 +0.7393929,32,643.1309,4.556659 +0.7509817,18,128.0423,4.150378 +0.944607,42,636.6847,5.51609 +0.6878091,82,735.6016,5.143399 +0.7364006,18,549.7353,4.082325 +0.5965991,73,703.3531,4.898591 +0.8115628,62,803.0491,5.221745 +0.6576455,82,477.9923,5.092711 +0.7706121,59,846.8496,5.082764 +0.6448159,65,988.0204,4.895462 +0.5759028,54,17.82405,4.816721 +0.5813438,49,489.6304,4.576707 +0.5037404,91,487.9228,4.911552 +0.8824765,13,813.0392,4.276511 +0.62344,75,81.9528,5.020752 +0.5867614,68,342.1725,4.836769 +0.8069038,68,679.784,5.276183 +0.8602681,89,264.0901,5.649063 +0.5375624,44,553.4245,4.416887 +0.5863542,75,189.5063,4.918604 +0.6014319,30,163.3551,4.237540 +0.734196,84,993.4357,5.248882 +0.6280806,44,466.1447,4.578057 +0.7870008,62,371.5928,5.172704 +0.5063825,14,845.189,3.369992 +0.7141679,39,317.1110,4.663328 +0.7700549,50,816.0496,4.962596 +0.7781668,81,587.8302,5.327848 +0.7701106,54,583.5682,5.022871 +0.8517387,17,358.7311,4.384958 +0.6512473,77,787.2048,5.030932 +0.6597704,41,623.5281,4.580925 +0.6045337,33,783.7763,4.303910 +0.6747628,65,275.5721,4.967814 +0.5754901,25,392.8563,4.02431 +0.5645206,4,78.64738,2.137807 +0.7526943,52,137.1844,5.000037 +0.8789649,41,763.2992,5.148074 +0.796924,51,58.16972,5.192775 +0.7044938,38,503.8397,4.615158 +0.5710955,43,426.3761,4.458341 +0.6121272,21,713.5597,3.941871 +0.8788232,25,983.937,4.780319 +0.9148775,11,63.67191,4.427849 +0.7441963,25,541.7408,4.373999 +0.8315873,82,310.8302,5.494771 +0.6930633,68,175.8612,5.051427 +0.6677114,31,610.1527,4.377058 +0.6290873,53,949.2253,4.716316 +0.7083651,67,177.3641,5.072448 +0.9437557,90,488.9657,6.019301 +0.8221788,6,101.5286,3.347645 +0.8082465,80,859.3798,5.387913 +0.8956217,31,760.4856,5.016639 +0.7809016,95,449.3862,5.44901 +0.6812002,17,164.7530,3.920066 +0.6770415,47,62.6635,4.800145 +0.6956216,54,702.0819,4.858225 +0.5366549,97,248.0049,5.016196 +0.8522364,42,803.0165,5.067515 +0.9384832,56,347.3381,5.689679 +0.8922538,100,325.7634,5.834656 +0.6228205,60,166.9741,4.822661 +0.7344996,76,784.5329,5.182257 +0.8145633,87,443.7463,5.474821 +0.5531538,26,108.4227,4.032707 +0.7911365,68,662.1342,5.236089 +0.8146687,46,745.2562,5.018899 +0.5045028,66,874.9952,4.67314 +0.640851,76,904.7578,5.002078 +0.8506346,21,911.0278,4.537878 +0.7239757,93,350.5313,5.315068 +0.6127368,28,218.7057,4.197065 +0.7262992,77,994.1657,5.172035 +0.8306157,30,895.4145,4.747346 +0.5229464,87,706.9792,4.906993 +0.6674732,91,347.1094,5.189795 +0.6238308,43,127.4031,4.577679 +0.7578883,49,72.34529,5.019715 +0.78206,64,247.9061,5.196063 +0.7060626,53,793.0226,4.86442 +0.6372835,15,378.8189,3.699193 +0.6513043,34,564.4485,4.41867 +0.9269004,43,806.0094,5.409004 +0.9135508,18,809.8735,4.696129 +0.5798318,49,812.5945,4.570963 +0.864919,17,580.5689,4.427441 +0.8151598,69,756.3115,5.306729 +0.7001978,67,902.1454,5.021915 +0.8482526,13,89.97161,4.201033 +0.6041064,73,262.3566,4.923191 +0.5754905,36,946.9922,4.320669 +0.8850153,77,726.441,5.60595 +0.8623828,64,202.0986,5.44658 +0.6556572,97,77.84997,5.277824 +0.751576,94,661.5748,5.367792 +0.7555403,99,118.5165,5.481632 +0.5605083,11,765.1715,3.243285 +0.545633,12,486.515,3.299668 +0.5149418,46,119.3487,4.42927 +0.7158448,21,82.71454,4.213274 +0.87695,16,805.7746,4.423861 +0.5104682,85,685.208,4.870765 +0.7702164,39,788.6638,4.779683 +0.5417859,11,694.7184,3.205555 +0.6259542,62,558.4269,4.831414 +0.7254502,8,903.2036,3.305184 +0.5322428,19,448.2684,3.703109 +0.8516168,21,844.6598,4.542132 +0.7967247,81,216.2363,5.405972 +0.6988626,80,398.184,5.156267 +0.833163,24,220.3202,4.611781 +0.9120844,14,544.9784,4.493611 +0.502613,89,313.4999,4.896737 +0.6447795,52,7.163189,5.317785 +0.9164835,25,225.1239,5.001143 +0.7750148,50,358.1708,4.988486 +0.9164688,86,323.5733,5.847662 +0.8563804,73,91.323,5.596053 +0.8697922,42,991.5779,5.126615 +0.9432807,64,453.3479,5.799377 +0.9311001,80,103.5973,6.007708 +0.84446,67,251.8546,5.404865 +0.6635903,20,436.5115,4.008136 +0.8023665,15,670.167,4.105092 +0.7924662,79,943.1383,5.338195 +0.8786404,44,880.9335,5.194768 +0.9433458,72,847.0615,5.856031 +0.6966925,84,899.6899,5.175258 +0.6961606,77,572.1535,5.118006 +0.6924574,16,650.4595,3.874692 +0.9265463,25,661.6503,5.024829 +0.6437473,13,478.7481,3.579849 +0.5920152,35,370.9993,4.333462 +0.7307583,80,895.2044,5.208895 +0.6856924,81,303.132,5.145253 +0.8606019,57,188.5887,5.363111 +0.6598683,22,774.669,4.077506 +0.8261763,32,297.7024,4.802724 +0.8439954,7,778.95,3.553677 +0.8775046,82,465.4186,5.631184 +0.766783,81,881.4362,5.295545 +0.7614452,2,817.9402,1.668020 +0.8634684,70,977.549,5.45882 +0.6649203,92,541.7072,5.18534 +0.8888453,31,648.309,4.989178 +0.9191742,96,278.8759,5.942768 +0.6181284,38,673.0179,4.442334 +0.5762689,58,465.1237,4.696843 +0.8854675,82,929.2616,5.644522 +0.5881515,8,892.8005,2.978079 +0.5335778,10,528.7554,3.094167 +0.6367293,77,205.4550,5.026452 +0.6616144,75,799.0715,5.030716 +0.6048582,38,636.1787,4.418348 +0.8995238,30,970.224,5.007292 +0.6125322,42,38.40748,4.607011 +0.891409,32,725.0784,5.021755 +0.5125611,13,124.2224,3.320415 +0.8535288,71,96.49186,5.557986 +0.8477504,10,847.9913,3.902614 +0.6988878,32,432.6877,4.470823 +0.6028712,81,661.689,4.984862 +0.6450516,6,527.1702,2.800764 +0.5884289,64,623.1206,4.788881 +0.8519591,94,654.6818,5.625326 +0.5619964,37,966.9962,4.31885 +0.5579332,41,643.9374,4.395229 +0.6932872,91,407.4764,5.235375 +0.8612836,67,490.0358,5.435572 +0.5966854,73,474.3225,4.902069 +0.704552,51,421.4517,4.840551 +0.8476425,22,486.5986,4.572071 +0.7455392,38,414.5594,4.709415 +0.8924924,54,406.7609,5.41228 +0.8657634,48,108.6856,5.306214 +0.8560119,72,307.5698,5.483292 +0.838315,27,158.7666,4.737385 +0.7618864,59,65.95942,5.182572 +0.7062403,37,541.1921,4.597449 +0.5729077,11,26.03542,3.336355 +0.6253862,5,929.4751,2.544401 +0.919899,84,661.6104,5.820895 +0.701458,50,923.4494,4.810711 +0.601871,15,289.9652,3.627385 +0.7481714,48,373.6807,4.893143 +0.7421667,60,804.6881,5.030723 +0.9165294,21,968.5381,4.829235 +0.7708394,93,859.6188,5.399452 +0.6857544,59,108.6902,4.954433 +0.8683556,16,234.4982,4.412145 +0.5154821,4,609.3116,2.01444 +0.8063035,44,448.0451,4.971776 +0.7653335,48,548.0994,4.92658 +0.800019,87,625.9536,5.428938 +0.6377652,28,644.537,4.234561 +0.7187339,44,338.4984,4.763994 +0.6851251,32,243.1097,4.451062 +0.6022412,49,916.9572,4.609347 +0.6934007,23,519.9725,4.189089 +0.6338835,8,207.3362,3.087767 +0.8626223,18,979.8857,4.45892 +0.6755484,73,703.2272,5.038301 +0.8819856,100,183.9347,5.83262 +0.7952068,13,281.5281,3.970075 +0.7492558,34,689.2815,4.626091 +0.689057,83,75.17532,5.240701 +0.7983914,96,711.9366,5.48896 +0.8984775,14,973.5494,4.413143 +0.8141442,39,231.5305,4.924353 +0.927646,55,854.625,5.57916 +0.5626983,30,684.469,4.150555 +0.7940533,28,398.7971,4.597789 +0.8263922,74,727.1975,5.38656 +0.9274736,27,920.6118,5.081359 +0.7471762,63,895.0358,5.07554 +0.7025308,49,451.5482,4.805477 +0.5272053,18,164.8201,3.651766 +0.8319172,40,758.38,4.967654 +0.8407389,92,280.317,5.604963 +0.6721226,40,6.242629,5.294283 +0.6011962,76,675.616,4.935894 +0.5040908,82,219.5354,4.842745 +0.5521607,6,234.1007,2.589530 +0.7266228,24,46.95129,4.402272 +0.8604109,36,333.7737,5.002898 +0.8973122,66,524.181,5.561721 +0.5554781,48,787.1215,4.513639 +0.6098639,53,319.3389,4.691742 +0.8863365,83,519.4829,5.669461 +0.8581715,96,536.0489,5.664068 +0.7726931,98,199.6556,5.481125 +0.7523195,40,783.0637,4.755842 +0.5606664,45,776.2248,4.472297 +0.7087404,100,453.8624,5.328639 +0.7956351,55,504.8159,5.102364 +0.816261,67,773.2044,5.289053 +0.8999163,92,420.2012,5.800766 +0.6197997,3,506.0942,1.878208 +0.6030411,33,786.2126,4.301144 +0.833885,85,995.8172,5.496898 +0.9029965,88,937.1946,5.762388 +0.8393617,64,63.50675,5.494906 +0.9094628,41,121.4946,5.379464 +0.8082,49,983.7319,5.043322 +0.8964454,46,638.3635,5.305559 +0.5779769,61,192.9905,4.749822 +0.8953077,99,750.7118,5.810478 +0.581519,22,535.7868,3.924285 +0.9164601,24,945.2403,4.929528 +0.8705304,55,339.1753,5.344138 +0.7342698,10,61.29176,3.600732 +0.7701855,63,524.8687,5.135257 +0.863639,18,860.5287,4.46405 +0.8513909,79,921.4234,5.501578 +0.9324593,18,963.6303,4.811038 +0.9403725,92,512.2976,6.008025 +0.7510038,16,726.3639,4.016014 +0.6960944,78,175.0947,5.157011 +0.6724534,82,183.5058,5.143424 +0.8803488,29,765.2642,4.901266 +0.9448258,94,209.1915,6.114054 +0.8993888,13,662.1018,4.360755 +0.7814681,54,156.3016,5.093745 +0.740741,3,390.4553,2.222361 +0.6476472,99,141.3868,5.240183 +0.6141115,21,526.9791,3.947356 +0.6393056,31,909.5848,4.318396 +0.8372989,9,87.88783,3.819755 +0.8913588,42,525.3397,5.223824 +0.7460777,97,749.0455,5.375651 +0.5112242,26,501.4006,3.939324 +0.7577458,4,659.9605,2.643840 +0.5752648,35,388.7491,4.302567 +0.69794,61,652.5404,4.95284 +0.9204288,8,829.281,4.062277 +0.8043629,61,921.2296,5.189422 +0.9433404,98,119.9997,6.206997 +0.8913393,73,235.3741,5.64058 +0.5868418,24,200.3035,4.018163 +0.6991804,42,813.9534,4.675992 +0.8727032,28,115.8981,4.919729 +0.9020416,21,939.1495,4.752712 +0.830164,78,445.4839,5.444142 +0.8304871,63,98.00515,5.389406 +0.8657783,67,686.2381,5.443104 +0.870506,51,183.5218,5.322739 +0.8817822,40,470.2017,5.15173 +0.5152709,11,504.1909,3.153231 +0.6023214,34,410.1415,4.328208 +0.708448,17,340.4375,3.970749 +0.9284348,78,900.37,5.811991 +0.8747284,41,79.9742,5.264772 +0.7587422,93,879.5506,5.37222 +0.81904,34,973.761,4.805789 +0.8129114,37,59.32467,4.991653 +0.6677408,14,262.6832,3.706778 +0.5907886,29,692.5856,4.173685 +0.6851459,68,326.6066,5.01713 +0.7346132,39,449.1581,4.702737 +0.6277834,44,188.2139,4.592086 +0.857076,79,228.5752,5.565726 +0.7489966,44,331.7083,4.83284 +0.6398296,58,686.1311,4.805169 +0.7281883,54,245.0005,4.945851 +0.61747,83,262.5449,5.039826 +0.6492152,56,272.5927,4.808709 +0.9269381,25,711.9383,5.025897 +0.7535203,74,871.2197,5.203336 +0.8108911,38,654.9283,4.869824 +0.8137289,82,277.0395,5.448624 +0.8100311,4,870.7871,2.823736 +0.9225277,79,451.9067,5.808043 +0.8175055,83,875.792,5.43713 +0.6985237,65,263.3531,5.016426 +0.8551307,66,156.4809,5.461053 +0.5031995,86,7.001363,5.14592 +0.7062228,81,695.2352,5.170916 +0.9492496,81,170.2286,6.075235 +0.6817957,56,515.211,4.861132 +0.6240201,92,331.1661,5.120305 +0.8650343,61,935.077,5.371217 +0.6146213,88,46.13228,5.165465 +0.9255326,43,735.5249,5.402824 +0.8170676,83,930.0177,5.435128 +0.5741391,5,645.2055,2.424253 +0.6910738,64,560.4809,4.975904 +0.5667899,3,781.4491,1.745705 +0.6861743,41,934.9234,4.630133 +0.8817557,85,164.7456,5.732311 +0.6339924,22,542.5813,4.026713 +0.6946548,5,854.4328,2.720764 +0.7252389,25,47.75734,4.431607 +0.7248704,81,953.853,5.204872 +0.6368351,80,951.1507,5.031408 +0.780265,18,810.2112,4.193673 +0.6341829,34,150.5378,4.406329 +0.9303506,5,552.1346,3.693135 +0.8295861,30,611.3115,4.748776 +0.800437,23,167.5824,4.484621 +0.5951078,87,539.6616,5.024872 +0.6653801,20,549.5701,4.010106 +0.6656014,22,913.4959,4.088659 +0.9053822,25,937.0722,4.901416 +0.8449916,30,823.8114,4.794852 +0.6178617,24,945.78,4.065802 +0.5110322,72,569.7987,4.750247 +0.6529969,92,117.9059,5.207349 +0.9252288,41,941.357,5.363595 +0.9405128,87,402.2649,5.984612 +0.9123847,3,119.6966,3.015796 +0.610349,94,444.4629,5.107595 +0.6394546,96,102.4159,5.218884 +0.706229,86,170.1007,5.248948 +0.7921645,3,803.7297,2.396599 +0.9096007,88,482.1117,5.810334 +0.8948665,73,65.74187,5.824915 +0.931119,68,116.2202,5.876182 +0.9165443,50,655.079,5.459218 +0.6190295,22,607.6026,3.996217 +0.9054205,97,967.335,5.835145 +0.8613796,80,361.8505,5.56635 +0.6320835,95,473.5218,5.151439 +0.6012724,51,913.223,4.638169 +0.5516284,74,14.16722,5.037012 +0.8876435,44,426.4689,5.246741 +0.8209103,26,568.8558,4.612582 +0.7733602,28,610.5125,4.535907 +0.5438819,12,284.5485,3.298577 +0.6699824,89,343.1282,5.179079 +0.7670792,75,877.652,5.243034 +0.856828,73,514.2097,5.477684 +0.6147122,17,344.4332,3.765827 +0.5102219,13,897.3323,3.306147 +0.8687245,52,85.07123,5.408425 +0.6356558,41,655.0069,4.534577 +0.607294,78,252.4761,4.977811 +0.6605997,68,380.34,4.967165 +0.6970468,99,412.926,5.300827 +0.7371676,20,761.8237,4.170572 +0.8613029,48,949.6652,5.191448 +0.7518092,57,25.86171,5.303964 +0.8428192,94,605.0885,5.599075 +0.7754938,22,904.471,4.345341 +0.5720353,82,105.3506,4.975982 +0.8558049,75,827.7432,5.482474 +0.8848964,64,442.2547,5.494559 +0.7725104,63,300.7922,5.154277 +0.6358212,60,676.6013,4.823146 +0.8280062,92,957.2909,5.533657 +0.5019211,18,683.6793,3.596421 +0.7994588,97,325.9287,5.518704 +0.6258279,10,352.8465,3.290894 +0.7595384,81,112.2573,5.354279 +0.898181,89,697.1813,5.755352 +0.5527367,6,865.4217,2.587159 +0.6229918,43,282.1226,4.557137 +0.5935787,90,214.6085,5.060573 +0.8400638,36,883.338,4.91393 +0.7590297,81,421.8259,5.290432 +0.8063303,11,98.57122,3.888847 +0.9430843,5,19.57140,4.149973 +0.6029501,27,792.172,4.136586 +0.5844242,64,290.7809,4.789975 +0.8108061,15,392.7209,4.137662 +0.5286417,14,965.8804,3.412557 +0.5333612,94,692.2099,4.97916 +0.7492556,69,983.1755,5.143672 +0.926265,15,476.2882,4.638733 +0.901209,6,680.2512,3.675874 +0.5610927,42,669.7171,4.419549 +0.5780818,48,396.2899,4.556932 +0.761414,30,31.87208,4.754897 +0.7238886,52,252.8219,4.907474 +0.8668956,6,686.2334,3.499596 +0.6828703,56,660.588,4.86045 +0.930659,17,121.4522,4.836156 +0.503826,12,823.3895,3.215834 +0.7849627,85,525.2481,5.379389 +0.8966239,84,598.0863,5.715069 +0.5897803,74,21.46131,5.072482 +0.5022443,68,429.8997,4.69497 +0.798633,54,655.1404,5.092552 +0.7352211,86,161.5042,5.314463 +0.6972101,3,406.9489,2.089562 +0.7888295,34,949.8539,4.721846 +0.7582605,77,560.0893,5.247737 +0.6223786,75,389.7527,4.968524 +0.6780707,67,432.9265,4.987482 +0.8433638,46,590.8193,5.108756 +0.8183657,29,757.525,4.685691 +0.8324944,20,900.0447,4.436677 +0.7936328,36,495.8806,4.785875 +0.7604421,8,317.4111,3.409744 +0.722952,51,47.86064,5.007258 +0.7312193,80,784.4329,5.211266 +0.7637257,45,218.7267,4.897432 +0.7031336,65,577.7302,5.010621 +0.886668,9,434.1708,3.983958 +0.939302,13,614.371,4.612743 +0.8505232,65,935.7227,5.366438 +0.8110883,48,767.812,5.039261 +0.6221106,48,331.0559,4.638021 +0.9313041,23,79.16897,5.136056 +0.632553,99,572.1408,5.178838 +0.6117593,62,895.7685,4.803032 +0.8212386,84,405.0264,5.471996 +0.5869189,65,147.9002,4.819915 +0.7997307,32,334.5291,4.721025 +0.6555177,53,274.5379,4.77934 +0.5538914,26,130.3128,4.030347 +0.7199913,91,864.055,5.276691 +0.9277619,75,665.7905,5.790155 +0.9266476,91,118.5833,6.043288 +0.8831789,55,14.28143,6.25009 +0.6372527,89,74.82464,5.18037 +0.75038,75,634.4639,5.209853 +0.8406942,28,641.8783,4.731309 +0.8768606,37,974.1806,5.062729 +0.7979076,28,565.2656,4.60292 +0.8365606,35,939.8184,4.881241 +0.7960196,84,160.4486,5.44722 +0.8787808,17,712.3158,4.482225 +0.5333636,32,338.1081,4.155507 +0.647125,32,484.6652,4.363403 +0.8641002,5,411.5565,3.302591 +0.7868153,30,324.2991,4.636093 +0.7962481,54,56.46181,5.23915 +0.8145667,10,880.2147,3.783172 +0.5658414,58,782.1528,4.675848 +0.9341618,51,552.7404,5.579226 +0.6841805,57,138.5348,4.912799 +0.9119638,53,161.4325,5.547657 +0.5188456,27,33.57959,4.037935 +0.757641,73,730.3337,5.205093 +0.9349815,18,982.9337,4.828403 +0.5066024,6,485.5756,2.487666 +0.5979052,67,867.3325,4.836706 +0.8607715,41,775.3904,5.08006 +0.7254145,87,609.8498,5.260913 +0.7255659,100,961.0768,5.351339 +0.5150924,99,445.5918,4.990515 +0.5446147,28,289.2843,4.065534 +0.9469407,99,475.0219,6.103677 +0.7343403,80,926.2906,5.215986 +0.5975759,29,512.1599,4.188007 +0.837378,9,599.9462,3.769414 +0.9442889,59,495.7354,5.749563 +0.8250957,97,715.8522,5.565506 +0.6550313,90,432.9978,5.15527 +0.7075834,9,212.4720,3.386328 +0.7454893,24,390.3709,4.348304 +0.695866,36,249.5993,4.56663 +0.60671,22,336.0653,3.976246 +0.8412084,9,965.9642,3.780548 +0.6861445,46,171.8996,4.746207 +0.9261788,43,673.9801,5.40854 +0.861084,90,308.0283,5.651429 +0.7909505,83,304.5175,5.3931 +0.5625539,3,679.3792,1.735618 +0.647025,10,605.1443,3.335524 +0.921531,93,231.2533,5.948928 +0.9164885,67,188.4395,5.720053 +0.7676392,83,989.0182,5.31298 +0.5940685,10,497.944,3.220156 +0.8676697,32,789.5488,4.924061 +0.7076742,29,67.17613,4.479062 +0.6318245,52,265.5441,4.720642 +0.571069,65,8.232299,5.137 +0.7430801,81,823.1498,5.244276 +0.7164226,8,284.3927,3.288375 +0.5729531,38,622.0593,4.361272 +0.5541727,55,264.4454,4.62462 +0.948875,15,670.5908,4.803963 +0.768947,100,119.684,5.521015 +0.921052,46,131.9058,5.519767 +0.568908,55,421.9705,4.64489 +0.5640359,47,556.3127,4.513669 +0.6904132,68,801.1595,5.014499 +0.6086555,12,922.6924,3.426733 +0.6123029,39,873.346,4.450664 +0.5088076,91,517.9313,4.919105 +0.87053,35,798.1675,5.000599 +0.8372315,14,616.9215,4.161282 +0.8365753,44,889.9804,5.049199 +0.6835763,100,733.1015,5.273686 +0.7802409,41,47.49915,5.001162 +0.7647672,98,640.1398,5.425595 +0.9454551,71,637.387,5.869999 +0.8679253,35,22.26791,5.454062 +0.7313009,100,178.5980,5.40588 +0.6704843,23,444.0414,4.141148 +0.659972,35,880.514,4.455541 +0.7058613,44,697.5712,4.726399 +0.762979,66,935.1429,5.143505 +0.7887987,58,50.98269,5.287288 +0.8073858,99,622.5568,5.534763 +0.6100832,79,867.3335,4.977132 +0.544471,3,459.738,1.692861 +0.8465874,95,196.6390,5.666055 +0.683948,55,459.1472,4.853582 +0.9185709,49,650.7622,5.456321 +0.5765227,5,679.4412,2.429649 +0.6383592,62,148.6722,4.880552 +0.6025905,56,325.3961,4.720113 +0.8848486,97,97.54827,5.90136 +0.7362832,26,218.8576,4.402630 +0.5784452,59,492.3637,4.71295 +0.6147081,36,333.0535,4.399336 +0.6825984,7,352.4882,3.06174 +0.9282963,26,169.3765,5.122438 +0.7680785,6,227.9232,3.141793 +0.5355871,43,347.3572,4.398321 +0.6693587,54,436.3146,4.812174 +0.773232,92,549.7613,5.404733 +0.6195498,69,980.2326,4.894582 +0.8400778,99,893.5253,5.617641 +0.9255642,70,761.4745,5.729276 +0.9080847,82,792.9793,5.742875 +0.522612,6,565.2858,2.521984 +0.6417358,47,183.7160,4.670733 +0.7013078,51,383.2288,4.83544 +0.7069545,56,436.4764,4.914058 +0.8542498,80,547.3648,5.529451 +0.509647,4,174.7376,2.004169 +0.934806,45,835.8438,5.488301 +0.7056071,4,688.9132,2.487025 +0.5115704,38,343.0629,4.258021 +0.8745496,20,267.9963,4.615004 +0.7428874,92,849.7082,5.331239 +0.624939,92,874.5263,5.110626 +0.8117291,78,619.3193,5.385168 +0.7642174,66,806.5085,5.147957 +0.5821417,25,235.8559,4.041735 +0.8256269,52,266.7959,5.164253 +0.882332,73,784.2244,5.558549 +0.6688183,56,96.3575,4.885902 +0.708993,92,537.4415,5.268645 +0.8660636,24,719.5138,4.701973 +0.5982325,52,796.4927,4.648324 +0.7785366,68,250.1605,5.229993 +0.8040057,6,204.6433,3.262558 +0.7114325,15,137.4441,3.885444 +0.918715,91,280.5756,5.905105 +0.77819,59,306.9236,5.120643 +0.7177611,89,459.1009,5.265906 +0.8641408,80,883.2309,5.552217 +0.5843685,24,252.8853,4.010388 +0.8850618,47,743.1372,5.269393 +0.5108136,14,170.1100,3.385231 +0.6256445,95,433.2858,5.141522 +0.8231917,79,441.6427,5.433135 +0.640841,20,919.4517,3.956233 +0.7994082,23,379.5856,4.457961 +0.8731463,64,95.10218,5.562394 +0.6484933,79,495.9768,5.049098 +0.5221934,40,259.5452,4.319939 +0.8810941,68,133.8570,5.596386 +0.5679002,35,538.902,4.287083 +0.8011864,2,146.2337,1.825452 +0.7634377,45,64.61275,4.981885 +0.9138625,24,81.08869,5.048115 +0.8308868,100,747.8617,5.600978 +0.9327479,50,626.0069,5.553264 +0.93067,33,997.0507,5.243978 +0.7921992,82,626.1785,5.369069 +0.6689989,8,817.166,3.162716 +0.8045147,78,872.6406,5.360772 +0.9334461,16,676.6,4.731911 +0.5758246,17,405.8145,3.686859 +0.9492571,89,128.8834,6.178498 +0.7000412,73,409.276,5.09306 +0.7811956,82,837.8587,5.33799 +0.6075243,33,233.9159,4.320678 +0.6513116,24,423.5256,4.137315 +0.7313515,14,853.3903,3.847889 +0.8564085,22,693.0677,4.598462 +0.7045416,63,136.4036,5.031386 +0.8711795,30,532.752,4.895991 +0.8020238,93,548.076,5.481821 +0.7703214,78,15.85805,5.814334 +0.6343191,27,128.4217,4.22205 +0.5738696,66,728.534,4.786255 +0.5966273,62,174.4677,4.797729 +0.6545792,88,954.4501,5.130017 +0.9350415,76,378.4156,5.864486 +0.8698155,88,643.2018,5.641198 +0.7418213,57,397.9183,5.003477 +0.6666204,16,693.6469,3.816609 +0.939269,32,410.4561,5.301479 +0.9056354,75,338.3497,5.70178 +0.7204378,96,104.8828,5.387561 +0.7352106,34,780.4859,4.592326 +0.604017,95,810.4942,5.098799 +0.5039632,100,229.6094,4.986289 +0.6678024,57,352.7455,4.852644 +0.6667347,61,620.592,4.892999 +0.7025512,35,866.2715,4.542347 +0.5823673,29,788.9539,4.157619 +0.7236481,100,242.7644,5.375992 +0.5487022,92,974.0744,4.986154 +0.5448123,5,572.2373,2.357788 +0.731591,73,525.9038,5.153309 +0.7486298,69,940.0264,5.142729 +0.8496939,32,712.1147,4.861084 +0.6722585,5,501.8601,2.663167 +0.5801296,69,207.4424,4.844236 +0.7432576,62,787.7531,5.056841 +0.6214598,33,23.85876,4.484477 +0.7875473,58,213.6908,5.145776 +0.642812,29,521.653,4.274674 +0.5335032,4,930.6728,2.055084 +0.7630798,81,908.8545,5.286844 +0.7369504,28,922.611,4.442898 +0.6428282,27,484.1696,4.216783 +0.6357108,74,283.3895,4.988065 +0.7164243,78,447.3305,5.171399 +0.7709437,55,372.3491,5.046897 +0.6852679,28,335.7585,4.338118 +0.808534,58,340.6183,5.184588 +0.7136241,62,718.4628,4.995206 +0.8177113,80,915.472,5.412148 +0.8319302,87,626.84,5.514708 +0.7422361,93,405.5656,5.349856 +0.6930993,81,146.8204,5.185964 +0.8682528,58,844.0453,5.349434 +0.7270226,100,424.7374,5.366699 +0.7914932,61,688.2172,5.160086 +0.5900729,27,767.5824,4.112602 +0.7003193,89,642.763,5.226167 +0.6651674,74,857.3294,5.027037 +0.7184364,63,284.3633,5.033157 +0.8324358,41,342.2922,5.003632 +0.5031346,67,438.8357,4.685145 +0.5825579,41,785.6322,4.437242 +0.7942139,23,211.6097,4.457539 +0.845134,6,783.0932,3.404465 +0.6857612,48,137.6217,4.786544 +0.7278745,10,717.0041,3.530233 +0.5885082,82,145.7116,4.994707 +0.6388615,30,770.114,4.291878 +0.926036,14,461.9188,4.58259 +0.6847766,27,422.8900,4.304487 +0.752521,85,811.802,5.298064 +0.7488061,63,189.1322,5.115276 +0.6599034,73,59.11036,5.103032 +0.6267682,35,710.3962,4.392984 +0.932423,92,361.4332,5.974252 +0.5922226,21,432.1012,3.905775 +0.8041683,90,853.5206,5.457261 +0.8005206,44,587.8442,4.950966 +0.927466,9,107.028,4.281798 +0.8202604,62,634.5662,5.249415 +0.803947,75,605.6371,5.33821 +0.6912899,47,671.1496,4.746582 +0.8335924,21,559.5399,4.484684 +0.5509898,3,283.7228,1.709308 +0.8715196,51,212.7831,5.317158 +0.6696205,18,518.5567,3.928592 +0.5242603,30,218.4836,4.089194 +0.609197,84,56.53437,5.101272 +0.7185949,92,848.8469,5.281629 +0.7343257,73,626.3547,5.156428 +0.865474,56,506.3368,5.32564 +0.5027801,93,974.2632,4.922927 +0.7855868,21,950.671,4.334514 +0.6107691,81,541.3309,5.000013 +0.5547765,49,494.3407,4.53091 +0.7692043,88,362.1617,5.375039 +0.9403376,49,752.7243,5.585192 +0.829064,60,478.2757,5.257702 +0.8601706,25,166.6052,4.754331 +0.6196904,43,304.0243,4.549829 +0.5717478,25,858.482,4.013487 +0.693023,20,335.4159,4.075407 +0.8598185,31,330.6993,4.889496 +0.6915085,37,69.03833,4.636358 +0.8468429,85,300.6356,5.567331 +0.5777309,21,91.25657,3.900269 +0.5987378,42,114.1785,4.513828 +0.564499,18,18.32179,3.827946 +0.628622,71,219.1825,4.950753 +0.9445081,23,707.8417,5.088072 +0.9388601,19,386.5834,4.917079 +0.8643879,47,592.6865,5.195143 +0.7737825,21,473.8053,4.309089 +0.7264336,9,615.857,3.425729 +0.9412087,84,400.5238,5.967095 +0.7427203,48,997.1332,4.867639 +0.7715587,85,657.4747,5.343616 +0.6399763,7,534.5213,2.955814 +0.6063786,26,711.9156,4.112105 +0.7256356,78,949.8124,5.18012 +0.6477573,47,895.3827,4.66007 +0.7986201,31,18.21264,5.083396 +0.750134,88,414.8571,5.328381 +0.5923543,14,92.57298,3.560902 +0.6832271,73,685.9445,5.053047 +0.7574562,43,151.873,4.863263 +0.677596,100,414.4082,5.270896 +0.6682776,89,907.168,5.162828 +0.9330502,96,284.6103,6.02071 +0.5842748,51,469.3508,4.612856 +0.8787779,81,401.5259,5.633028 +0.7580647,77,669.1351,5.244463 +0.8872826,87,650.057,5.6979 +0.8779282,62,661.6712,5.435085 +0.8914228,41,453.3747,5.2109 +0.9347915,49,936.5544,5.543634 +0.6613053,84,493.9254,5.116008 +0.5915268,55,993.0702,4.678128 +0.8180775,53,480.8366,5.137994 +0.558241,47,382.5659,4.506435 +0.682103,52,725.278,4.803213 +0.6710785,10,970.0457,3.389202 +0.5560348,45,16.90907,4.62216 +0.9401617,69,134.6376,5.927962 +0.9492752,16,819.697,4.853928 +0.8111686,82,99.48363,5.516021 +0.6539134,70,355.3463,4.976903 +0.6973646,87,273.2096,5.221455 +0.584519,33,907.0917,4.266788 +0.661414,45,753.884,4.653987 +0.691314,98,431.7889,5.281952 +0.9053537,70,284.3603,5.663525 +0.878904,92,177.3085,5.767757 +0.940425,74,634.511,5.861479 +0.6773772,9,36.89003,3.370417 +0.938145,71,9.568438,7.736828 +0.7049552,62,308.9711,4.991195 +0.768903,88,218.1471,5.393243 +0.8924252,18,442.2652,4.597484 +0.5605281,42,973.999,4.41706 +0.5675563,35,394.8235,4.288579 +0.9314867,64,990.4558,5.699404 +0.854969,56,221.3102,5.320816 +0.6154144,90,419.8957,5.08615 +0.5046474,5,929.2128,2.267940 +0.8938657,91,747.1564,5.750207 +0.5461269,34,592.0258,4.224583 +0.7374015,33,34.94556,4.743901 +0.7812415,44,585.6939,4.900668 +0.5854985,20,73.7051,3.879755 +0.8041685,56,485.833,5.138593 +0.6455867,67,134.8849,4.95596 +0.8334194,32,323.5623,4.823296 +0.6835554,33,248.6061,4.471775 +0.9274518,41,204.8720,5.435482 +0.7580894,12,390.4757,3.785481 +0.8234953,30,705.3142,4.727986 +0.5803942,47,998.7147,4.538939 +0.6302062,50,22.45701,4.863313 +0.7932594,59,29.19641,5.444473 +0.5677228,11,340.1472,3.260991 +0.5143458,70,301.0236,4.738882 +0.8996777,5,36.72852,3.613945 +0.6948788,20,59.8754,4.139033 +0.801904,3,17.53048,2.547548 +0.825884,3,362.6367,2.532459 +0.5641203,41,378.8667,4.409494 +0.6206331,82,59.89471,5.102902 +0.9020196,82,488.3076,5.728979 +0.5772379,11,192.7502,3.284991 +0.7854763,15,719.8687,4.054453 +0.5661362,5,326.2423,2.407589 +0.855098,90,987.4242,5.598997 +0.9094228,17,314.8952,4.647975 +0.9105804,14,822.2919,4.479334 +0.6425095,19,776.2866,3.915952 +0.5800772,23,751.0009,3.958348 +0.8283034,40,306.9341,4.975931 +0.8694394,12,63.79335,4.252581 +0.9487476,13,927.253,4.68589 +0.8891563,27,416.9288,4.897393 +0.6400752,35,650.9308,4.418827 +0.930565,77,427.6444,5.839496 +0.6607416,84,480.9301,5.115355 +0.7374158,21,360.8883,4.219661 +0.7214416,90,627.8624,5.275888 +0.6634831,52,242.9271,4.783196 +0.633519,51,832.0138,4.696118 +0.867209,15,101.3933,4.396753 +0.7320115,44,304.3464,4.795765 +0.8916781,51,853.781,5.351103 +0.6815065,32,698.7288,4.429519 +0.7062608,20,411.6185,4.103026 +0.6216569,94,854.663,5.120379 +0.7749632,17,886.286,4.130346 +0.7489943,51,669.2371,4.930199 +0.8960939,30,605.3457,4.998742 +0.541271,5,803.5865,2.349337 +0.883344,83,878.3484,5.645366 +0.6615822,19,616.9031,3.957096 +0.8645687,14,451.1396,4.269158 +0.8197885,44,745.7335,5.001257 +0.9105769,22,975.8806,4.831691 +0.8194167,33,518.502,4.792544 +0.8237274,11,263.2219,3.915241 +0.8786824,38,564.1758,5.09802 +0.9028904,65,866.5719,5.564251 +0.7634663,45,909.7111,4.868551 +0.9061444,11,340.5835,4.267836 +0.727566,31,405.0189,4.510243 +0.5869022,53,742.01,4.643569 +0.6267716,82,756.8724,5.033235 +0.6941218,49,674.2737,4.783475 +0.6440676,72,403.9489,4.977191 +0.7643208,80,940.397,5.28069 +0.8215134,91,962.321,5.508477 +0.7344723,70,929.2222,5.122587 +0.6420764,9,405.7842,3.221721 +0.9224962,33,907.7449,5.196097 +0.92215,42,604.9682,5.371616 +0.9473083,16,808.4234,4.83695 +0.6679534,10,297.2999,3.388319 +0.8085884,87,391.1016,5.462548 +0.7428786,94,208.0541,5.381112 +0.7319898,77,842.6398,5.18538 +0.8264745,54,333.4286,5.185714 +0.8906358,42,879.7977,5.210706 +0.7497273,88,757.6578,5.316739 +0.9363728,93,740.3891,5.97637 +0.5203183,4,5.041769,2.183347 +0.648732,17,203.3104,3.843603 +0.5029027,20,757.0614,3.693276 +0.8637881,78,296.9534,5.566156 +0.9129572,14,146.4340,4.545495 +0.6906615,40,257.9211,4.636827 +0.8834442,74,793.7916,5.571652 +0.7800757,21,4.930221,5.522151 +0.867441,17,116.9928,4.49343 +0.6881186,70,684.5632,5.032408 +0.5881212,52,243.6473,4.642358 +0.8899165,62,666.8032,5.482087 +0.7845255,90,713.7938,5.411659 +0.6786644,72,575.786,5.036507 +0.7749491,79,740.7498,5.299343 +0.6163517,50,402.6808,4.656188 +0.7617745,100,408.036,5.442128 +0.9361814,46,508.8477,5.525133 +0.7015941,74,770.7665,5.096961 +0.7794969,72,594.9117,5.249219 +0.642179,74,748.8859,4.986675 +0.5983462,52,171.4239,4.667948 +0.6005191,47,615.7238,4.576628 +0.8843986,22,501.1241,4.715799 +0.7008892,25,449.2083,4.275913 +0.52497,38,860.323,4.276883 +0.622708,53,19.02061,4.92084 +0.5727642,77,157.0283,4.918638 +0.7725483,86,575.0621,5.356232 +0.6069527,16,346.6407,3.695274 +0.7587479,48,168.0675,4.944474 +0.7360718,62,721.5008,5.04224 +0.8545806,40,658.2835,5.043252 +0.8961155,80,809.8722,5.67364 +0.6650538,14,150.3996,3.709953 +0.939034,30,475.0172,5.248813 +0.6833314,42,302.3655,4.655899 +0.6175995,45,685.2173,4.573027 +0.6677279,28,314.8646,4.302073 +0.7154529,21,892.7738,4.15897 +0.6333697,2,961.5814,1.277359 +0.5898549,7,320.5183,2.842989 +0.6582885,95,405.8774,5.200164 +0.510954,70,611.108,4.728801 +0.9055901,74,428.1937,5.68225 +0.8400673,54,58.62375,5.384523 +0.734939,62,260.0854,5.060028 +0.52751,44,515.2361,4.400222 +0.5424423,48,149.0962,4.507725 +0.7204047,77,301.1897,5.179545 +0.9272841,13,550.2231,4.527436 +0.6945376,15,446.9727,3.824939 +0.5553579,44,411.7695,4.449252 +0.7173361,87,997.4134,5.238975 +0.6202049,47,794.0686,4.610215 +0.8752933,3,974.2505,2.761596 +0.8339996,63,286.8030,5.323071 +0.6327848,42,810.0312,4.546531 +0.6340459,45,269.9277,4.613969 +0.866857,19,677.0124,4.522703 +0.7734467,59,643.4308,5.093006 +0.8982833,96,211.7656,5.862206 +0.6749493,21,304.4563,4.078275 +0.7511355,60,202.4649,5.082362 +0.742047,77,48.54489,5.371515 +0.6776796,63,789.4974,4.935029 +0.855732,27,571.1547,4.757314 +0.8018288,57,777.9217,5.137002 +0.7331972,22,51.23239,4.336138 +0.6569014,73,102.1165,5.055507 +0.7537886,29,154.4731,4.546038 +0.8012184,81,740.0648,5.38049 +0.8549478,54,546.232,5.262064 +0.8976285,61,231.4609,5.546494 +0.8834517,6,628.3206,3.580245 +0.6746422,89,548.0865,5.179786 +0.8358614,9,451.8896,3.766575 +0.8406225,57,762.0856,5.247538 +0.9481807,28,293.3038,5.290238 +0.5388981,3,598.9741,1.679330 +0.9480118,73,445.4003,5.920966 +0.8536345,98,30.87349,6.077053 +0.8899995,11,376.5903,4.180464 +0.9368585,82,236.7299,5.957222 +0.9390339,94,494.9168,6.014249 +0.5705278,3,303.2342,1.756266 +0.8376015,31,126.5897,4.857314 +0.5003688,16,621.8171,3.485094 +0.6873293,59,652.178,4.907611 +0.6599451,24,221.4411,4.164048 +0.9088598,39,815.7084,5.243244 +0.8031311,5,669.6773,3.052888 +0.9491043,10,996.9979,4.475921 +0.9290567,72,727.5371,5.768695 +0.7602706,12,188.8118,3.803644 +0.8416336,15,220.5798,4.255509 +0.9339155,19,4.776814,7.721867 +0.7953252,3,625.1871,2.409029 +0.7715417,90,690.4963,5.381861 +0.7641226,14,915.3901,3.933091 +0.5798988,52,903.444,4.616092 +0.8216424,11,951.3616,3.893048 +0.5785521,6,71.00523,2.661841 +0.8724881,87,714.1226,5.640678 +0.8948278,35,337.652,5.121659 +0.7871695,53,50.68324,5.213849 +0.7097965,5,905.984,2.761924 +0.9192579,88,4.904059,9.408779 +0.8199713,94,854.027,5.527674 +0.9406058,18,479.2811,4.882971 +0.893909,87,899.2716,5.717317 +0.650764,81,712.7453,5.067031 +0.5889707,18,383.5385,3.764445 +0.8529372,77,924.1236,5.489221 +0.609893,96,440.4276,5.12181 +0.531659,100,637.8155,5.021182 +0.7622855,12,853.1681,3.790901 +0.5062748,27,854.2535,3.961283 +0.6536989,51,892.0227,4.732863 +0.5918758,87,181.1760,5.037371 +0.8949669,90,866.063,5.744409 +0.7391464,22,531.6416,4.257614 +0.6058422,56,816.772,4.717399 +0.6916805,84,483.5835,5.173199 +0.7928663,65,677.2386,5.208507 +0.799502,84,632.8621,5.403581 +0.647877,88,237.0035,5.138919 +0.6310709,41,682.083,4.525733 +0.7535243,52,206.0863,4.982394 +0.842538,27,105.2609,4.78065 +0.9368387,36,790.4721,5.349369 +0.7363599,16,303.7005,3.987744 +0.6187289,6,904.779,2.736695 +0.7830982,75,54.84483,5.450532 +0.7057671,57,511.7964,4.922182 +0.8533923,24,698.5605,4.655287 +0.5684159,6,224.2865,2.626111 +0.6368277,55,697.6601,4.760043 +0.8902097,96,699.0142,5.771775 +0.73018,27,826.1295,4.398932 +0.7229493,27,810.7536,4.382487 +0.5890476,3,9.206372,1.889919 +0.6626262,57,311.4022,4.84493 +0.8247307,39,750.575,4.927463 +0.862285,61,599.7255,5.369646 +0.8596518,72,146.6928,5.543895 +0.6842161,72,170.3721,5.076099 +0.6330123,41,248.7231,4.54117 +0.7745,49,151.7156,5.005232 +0.5936884,35,572.1413,4.333129 +0.8357376,16,500.1788,4.271279 +0.51271,7,73.56993,2.686149 +0.6896422,15,463.5934,3.813312 +0.7443422,66,119.7634,5.164269 +0.8847271,62,525.1662,5.467059 +0.8533142,83,457.8641,5.556159 +0.9428908,31,915.307,5.28519 +0.7709193,41,914.0045,4.817427 +0.8091848,52,419.4211,5.102556 +0.7552535,16,49.63281,4.120643 +0.8687983,67,938.1444,5.44823 +0.7432566,33,646.8512,4.589547 +0.8600137,50,840.1946,5.217403 +0.7541783,34,157.5049,4.672121 +0.689819,8,177.5935,3.225273 +0.7587453,60,558.5484,5.07267 +0.9248554,40,357.1488,5.370525 +0.6697601,13,584.2735,3.636448 +0.6823748,8,271.6928,3.201521 +0.6981148,18,939.7967,3.988303 +0.889497,85,990.792,5.682722 +0.7092462,16,209.8601,3.92723 +0.6301518,51,804.4977,4.690217 +0.5037445,11,289.3195,3.132128 +0.8170627,88,197.9134,5.523932 +0.5186405,43,333.365,4.369594 +0.7309547,4,567.6746,2.561449 +0.8606785,93,217.5858,5.691876 +0.8870742,2,740.502,2.244443 +0.8995338,84,34.00486,6.173225 +0.7740336,48,913.8893,4.941309 +0.8933359,37,627.4083,5.138033 +0.7583827,18,540.0579,4.138342 +0.6642341,11,250.0934,3.473574 +0.6526306,21,904.9387,4.022325 +0.9433407,25,150.4380,5.214132 +0.7412913,88,924.085,5.296476 +0.8818567,65,24.57030,6.015878 +0.748409,24,914.8858,4.346754 +0.8659564,86,474.0914,5.620953 +0.6847987,20,913.508,4.049003 +0.8728599,58,771.6419,5.367578 +0.8868516,87,574.9383,5.69949 +0.6116315,82,41.29352,5.117752 +0.9496053,60,998.339,5.781189 +0.9210157,5,880.3966,3.619327 +0.7488685,100,154.2452,5.453751 +0.792422,57,997.3951,5.10985 +0.7057241,20,909.2889,4.095626 +0.9060405,48,457.6723,5.388283 +0.8020144,14,799.7226,4.043229 +0.9114372,53,694.1402,5.471555 +0.6164202,10,699.8877,3.267098 +0.8557893,32,968.0013,4.878456 +0.6859665,62,220.2631,4.961493 +0.8556446,79,460.6411,5.530325 +0.7087365,37,18.42120,4.892413 +0.6066091,48,832.439,4.601762 +0.737552,90,976.363,5.303552 +0.8328863,79,368.9973,5.466714 +0.5687865,60,950.4368,4.705405 +0.9128557,79,511.2905,5.753497 +0.7816981,19,371.8202,4.251545 +0.7339682,93,749.6793,5.321598 +0.9017031,93,407.8017,5.816921 +0.5868505,36,739.4715,4.341942 +0.8923477,82,594.2587,5.681646 +0.8414654,14,493.1889,4.179133 +0.8589573,18,553.6746,4.451215 +0.7069543,76,343.5581,5.139243 +0.5513179,37,41.46768,4.362217 +0.7954259,47,799.2324,4.981373 +0.9280813,3,747.2373,3.110425 +0.6391395,31,156.1447,4.340451 +0.508044,68,273.9174,4.707716 +0.6902827,52,682.7568,4.819914 +0.6414225,32,371.048,4.354987 +0.8544067,47,613.95,5.159753 +0.6471667,27,614.637,4.223626 +0.879826,52,65.41423,5.501719 +0.7318367,9,756.8057,3.439061 +0.6710358,99,823.9917,5.242706 +0.6586583,79,203.5998,5.08643 +0.9153481,65,145.8204,5.718992 +0.9045708,39,518.867,5.231822 +0.9182237,4,293.8663,3.375961 +0.6201512,91,958.31,5.094233 +0.531135,5,679.083,2.326895 +0.6544671,79,801.718,5.054843 +0.5949144,18,452.2243,3.775143 +0.7362622,80,828.845,5.22116 +0.7638218,92,458.6902,5.387075 +0.9012236,87,312.5676,5.784071 +0.7628684,94,537.0887,5.396255 +0.7550078,19,982.6065,4.170556 +0.6672037,77,32.73787,5.236582 +0.805925,75,779.1546,5.339145 +0.5541851,23,465.4516,3.912125 +0.7172208,65,536.8639,5.040288 +0.7138174,61,829.1607,4.982435 +0.6165516,36,703.632,4.396356 +0.7870262,30,985.7532,4.620939 +0.7912173,9,89.4149,3.652351 +0.6588602,81,851.9986,5.080004 +0.8534626,15,235.5219,4.298059 +0.5417177,97,37.93112,5.095782 +0.7268279,98,840.1265,5.341517 +0.8217522,99,139.2584,5.644923 +0.6615135,73,271.7089,5.027002 +0.8379693,14,933.443,4.160273 +0.6898353,78,174.3968,5.144343 +0.9456171,63,372.4586,5.81557 +0.9227115,69,630.8074,5.708987 +0.6673543,62,413.4679,4.911183 +0.7727943,24,809.3736,4.409296 +0.6507278,29,359.3616,4.294149 +0.6849543,82,693.828,5.13863 +0.5105532,4,978.4382,2.002822 +0.8235352,74,327.0553,5.398906 +0.5910593,46,855.208,4.541509 +0.6297961,8,967.5094,3.0706 +0.607688,8,471.5654,3.022891 +0.7571063,34,70.40006,4.733643 +0.791352,77,404.1305,5.333374 +0.9173874,79,271.0829,5.807408 +0.6797923,28,496.1202,4.321795 +0.7953507,57,596.6884,5.124088 +0.850552,70,335.183,5.442296 +0.7431803,94,839.5868,5.346693 +0.6440024,15,983.9204,3.708547 +0.7837544,62,560.4449,5.155577 +0.836111,68,626.0255,5.359618 +0.5484813,12,157.0824,3.312683 +0.7455065,23,808.4312,4.305929 +0.7591955,36,486.1776,4.698127 +0.8779367,58,330.3594,5.410352 +0.593193,36,840.8998,4.352766 +0.6269665,44,889.8402,4.57122 +0.8868482,77,174.344,5.680853 +0.752801,62,114.1809,5.142559 +0.8743457,45,570.4405,5.201879 +0.7211467,83,22.77365,5.534706 +0.6912285,50,179.5001,4.818787 +0.6746614,56,25.13000,5.057343 +0.8218585,18,350.1895,4.328555 +0.5137584,21,501.476,3.757731 +0.740062,100,295.5024,5.403938 +0.5987175,12,829.5367,3.406227 +0.6969432,24,777.029,4.229027 +0.8577518,90,243.7531,5.652591 +0.8004673,42,774.9877,4.912852 +0.7565447,100,561.181,5.423456 +0.5786212,70,75.22302,4.885775 +0.6195509,93,718.8692,5.110625 +0.788771,62,282.489,5.185677 +0.843245,44,575.6044,5.076896 +0.8157837,54,697.1208,5.137986 +0.8604531,98,792.4643,5.675903 +0.6037213,44,714.739,4.530425 +0.851184,33,819.7258,4.887258 +0.8473872,72,448.4953,5.441543 +0.5858104,70,778.5424,4.849169 +0.9012477,98,237.0837,5.880302 +0.6218494,86,359.1172,5.067211 +0.8382145,40,276.6088,5.01096 +0.7575617,45,487.4906,4.862268 +0.93472,74,982.2397,5.813632 +0.787328,48,72.26743,5.087387 +0.8512459,29,552.8546,4.79632 +0.719967,9,908.876,3.407101 +0.5877352,78,208.0282,4.947623 +0.8423043,79,600.2308,5.481344 +0.8392067,94,731.9999,5.584333 +0.5623799,49,16.30969,4.714975 +0.647799,9,46.71102,3.279418 +0.5288595,42,715.873,4.364200 +0.789742,2,784.4931,1.773259 +0.756642,43,649.7852,4.822198 +0.7764437,50,46.35313,5.150306 +0.6674194,85,991.1572,5.128339 +0.906969,11,130.1505,4.311036 +0.7518938,70,334.027,5.177749 +0.528787,18,255.6916,3.650907 +0.8252282,19,343.1041,4.384494 +0.6891648,17,884.256,3.918804 +0.8468115,2,649.4154,2.022372 +0.7624286,95,693.2675,5.398028 +0.7566833,68,228.3779,5.180752 +0.606168,29,811.7703,4.20159 +0.7548573,73,552.7757,5.203042 +0.820666,22,518.8606,4.481232 +0.6412007,32,405.3414,4.353561 +0.6027521,20,49.8559,3.934375 +0.734133,2,519.9769,1.575193 +0.7532216,43,924.8756,4.810621 +0.6853911,8,475.9357,3.204962 +0.9023783,19,398.6669,4.691687 +0.6758605,20,864.8661,4.029875 +0.7751433,11,661.0047,3.749591 +0.9425368,54,73.00199,5.890914 +0.8177478,11,295.5029,3.892388 +0.9261527,6,245.4474,3.854764 +0.8882492,35,651.1299,5.075141 +0.7468783,15,779.9176,3.948789 +0.5808538,17,480.0077,3.695823 +0.646268,20,723.2668,3.968426 +0.8976664,49,352.3127,5.372937 +0.7144762,39,539.7912,4.655678 +0.6694488,42,295.7246,4.628144 +0.7095104,34,871.5172,4.534577 +0.7675866,27,495.3648,4.49496 +0.6749292,82,737.8624,5.11927 +0.6683889,73,588.4477,5.026845 +0.5178061,22,718.1896,3.805074 +0.8245529,83,284.1121,5.48635 +0.6444938,35,864.6639,4.425571 +0.8060923,99,924.1675,5.52485 +0.7776994,25,816.9563,4.454753 +0.828381,4,362.6857,2.899921 +0.5356391,36,859.755,4.251434 +0.8132802,64,617.6336,5.252743 +0.5805669,32,734.2547,4.235485 +0.9149193,84,749.9509,5.792419 +0.6743994,95,277.3819,5.238203 +0.6252865,70,618.6787,4.918297 +0.803131,72,856.4609,5.302494 +0.6792797,28,90.66852,4.363507 +0.6178848,99,391.6746,5.158681 +0.6664492,99,552.1533,5.238936 +0.8704619,81,12.83819,6.593567 +0.9337554,76,194.8326,5.904346 +0.8441718,83,870.5995,5.51324 +0.7154217,49,367.0998,4.836076 +0.6672896,69,241.8273,5.000109 +0.6678378,94,974.4227,5.199604 +0.9408869,5,481.7649,3.783829 +0.6264312,10,93.73413,3.310071 +0.8699315,11,891.6617,4.077148 +0.6533887,78,550.6135,5.047538 +0.6871648,79,37.89538,5.28403 +0.8278326,41,55.32326,5.136375 +0.9007479,44,384.0775,5.308271 +0.9045541,84,87.16014,5.916201 +0.8465129,89,655.0107,5.572192 +0.6095092,56,275.0738,4.735062 +0.9337829,54,80.79501,5.798131 +0.5302162,22,841.8739,3.827253 +0.5068682,95,214.3008,4.954852 +0.6540878,49,531.6365,4.70768 +0.6909439,5,327.8551,2.714410 +0.9104148,32,848.5844,5.109452 +0.8152395,98,935.9499,5.541505 +0.6585675,64,568.535,4.913769 +0.8293236,13,607.8378,4.070081 +0.5164619,89,81.7367,4.943977 +0.6309601,3,53.40032,1.923181 +0.799725,79,833.1201,5.357887 +0.7794195,24,916.7622,4.425833 +0.8949443,27,301.5564,4.934083 +0.6930091,17,21.62224,4.103417 +0.6977771,22,386.8469,4.16481 +0.5475462,18,802.1444,3.681317 +0.5114595,92,272.2015,4.93625 +0.931486,73,945.969,5.78597 +0.7490772,68,791.3002,5.135225 +0.6596451,64,343.5261,4.922892 +0.8957032,94,16.72671,6.692282 +0.6923005,77,120.6771,5.158418 +0.9456358,24,780.0273,5.126279 +0.9438894,21,83.76159,5.157231 +0.7175115,80,626.8248,5.186013 +0.5829018,31,361.2286,4.218319 +0.5901643,22,676.4985,3.93967 +0.8064658,90,648.7313,5.467642 +0.6136763,38,743.9136,4.433546 +0.7821613,16,550.7289,4.102733 +0.8085253,86,214.4748,5.479572 +0.505325,97,299.8038,4.963743 +0.8778521,73,575.0015,5.548593 +0.6573341,79,166.5853,5.09082 +0.7532538,17,719.9617,4.073974 +0.8126741,98,959.151,5.534472 +0.617485,78,992.0062,4.979724 +0.7294307,42,842.8008,4.740066 +0.8311411,11,255.2206,3.942211 +0.7310049,3,64.00663,2.210547 +0.9218966,22,24.38936,5.372905 +0.6959823,13,281.8103,3.703621 +0.872274,7,286.046,3.68672 +0.8091158,6,714.5453,3.268219 +0.7140248,28,426.8686,4.397771 +0.7445735,34,30.09128,4.818709 +0.7104637,86,508.2352,5.2256 +0.7407903,73,839.1437,5.166587 +0.9153352,65,522.6144,5.636264 +0.688166,29,238.4367,4.378873 +0.6463528,11,613.1541,3.426388 +0.7123388,62,470.368,4.998166 +0.8895104,85,770.6312,5.687503 +0.5782297,59,402.029,4.714427 +0.829497,28,701.8173,4.693881 +0.5709144,36,853.1903,4.312955 +0.7069504,70,685.5334,5.069301 +0.8335032,53,856.0943,5.173089 +0.5544132,8,676.0023,2.906102 +0.8651928,24,406.7348,4.708713 +0.8610366,68,384.947,5.452404 +0.8713612,35,373.6557,5.019745 +0.5738918,29,452.9196,4.144968 +0.5240998,92,545.6718,4.950569 +0.7527017,64,163.9493,5.142884 +0.6616936,31,958.384,4.362104 +0.8629395,77,651.0979,5.528421 +0.783235,41,700.8783,4.851017 +0.8394277,29,67.74892,4.873075 +0.7977615,5,190.0469,3.04529 +0.5940232,54,580.2972,4.671643 +0.9218088,64,88.74913,5.819851 +0.8127387,47,991.2968,5.025708 +0.7963492,66,680.6744,5.227959 +0.5904958,55,863.2755,4.677009 +0.8075735,17,983.1247,4.22383 +0.7415049,43,793.1585,4.785166 +0.8843514,74,597.5391,5.581504 +0.7021487,6,873.4177,2.943845 +0.8391883,12,753.545,4.033319 +0.7921166,46,52.22621,5.114419 +0.5554143,69,76.81138,4.829512 +0.6042065,76,151.4294,4.966379 +0.8627017,3,525.6119,2.698795 +0.865755,2,376.8642,2.122449 +0.8279171,10,836.8117,3.82942 +0.822342,5,962.3499,3.122065 +0.6597195,71,21.51946,5.235428 +0.776297,41,967.7869,4.830209 +0.8637549,79,871.2532,5.542754 +0.6396458,39,743.7715,4.502273 +0.826949,97,36.28713,5.892425 +0.7012445,40,177.4653,4.669936 +0.5738541,55,864.6037,4.648669 +0.6926033,57,906.083,4.889783 +0.8142208,4,830.517,2.839772 +0.6244411,9,13.95435,3.327233 +0.5999928,84,440.6816,5.010063 +0.7107244,9,545.9235,3.385588 +0.6170333,66,398.5188,4.865456 +0.5432562,27,214.7615,4.035203 +0.891457,61,156.3249,5.549498 +0.8364938,75,499.4986,5.432955 +0.7364336,82,899.3403,5.23781 +0.6345384,51,661.4909,4.699565 +0.6238511,79,467.3019,5.006217 +0.6425458,54,541.773,4.759007 +0.8062015,98,279.2243,5.549434 +0.8942245,27,820.441,4.907142 +0.8293175,65,18.86648,5.856884 +0.5543704,15,907.1906,3.527276 +0.9427969,14,973.7963,4.692983 +0.5635837,55,917.0542,4.631148 +0.7863883,50,976.9138,5.000909 +0.6690678,71,936.7323,5.003891 +0.8103885,89,852.7451,5.465744 +0.5853477,7,566.7827,2.830862 +0.9155325,74,929.784,5.708425 +0.652931,90,849.3441,5.143776 +0.63539,94,112.5092,5.190783 +0.9347237,32,425.9525,5.268364 +0.5908132,32,193.1982,4.267024 +0.882015,92,412.4952,5.728643 +0.8953683,41,852.7085,5.214666 +0.5202744,78,282.4543,4.829493 +0.9373646,28,29.90516,5.635022 +0.9139742,35,175.8116,5.253379 +0.8243774,47,623.3277,5.06504 +0.7781752,71,674.4035,5.234271 +0.6977277,38,68.90478,4.672658 +0.6985117,56,139.0387,4.92994 +0.6405636,70,422.2165,4.949769 +0.7322623,34,302.2471,4.598792 +0.7356788,36,466.6663,4.643266 +0.5179625,98,422.796,4.988105 +0.920347,32,632.1662,5.168424 +0.8147306,22,655.7655,4.459846 +0.7213689,76,963.051,5.153094 +0.6786994,68,743.6589,4.99277 +0.6729528,21,82.73629,4.109708 +0.7944516,48,324.7937,5.01126 +0.7986539,8,300.5525,3.529152 +0.7704706,5,377.2322,2.945948 +0.8876776,97,425.3873,5.784077 +0.813792,43,990.8892,4.964142 +0.7389332,47,246.4452,4.866744 +0.6142692,4,950.8356,2.246285 +0.8333757,88,852.0517,5.520895 +0.918038,30,73.33338,5.266524 +0.5201918,42,149.4735,4.362267 +0.6865426,59,135.1505,4.944673 +0.818865,51,850.2187,5.103217 +0.7665226,28,317.5260,4.528706 +0.6878656,90,351.7311,5.220275 +0.6233782,24,686.0332,4.077961 +0.9079201,61,12.53428,6.715454 +0.7354724,37,866.4194,4.657101 +0.5748367,73,233.9909,4.874421 +0.9424346,27,604.6585,5.191774 +0.8052077,13,247.9588,4.004018 +0.5808156,22,55.97113,3.965451 +0.9059417,97,546.7074,5.851985 +0.7972078,82,324.6242,5.398432 +0.7553583,34,564.3914,4.642926 +0.5211904,43,59.69222,4.405759 +0.864604,94,383.3898,5.682846 +0.5628405,7,198.0784,2.785847 +0.8635089,89,179.457,5.68645 +0.8361038,4,631.6255,2.928310 +0.64402,42,762.8189,4.567911 +0.8099644,30,282.0744,4.705383 +0.5957105,10,675.4588,3.222615 +0.5611832,61,305.9021,4.713422 +0.7609862,75,581.0989,5.234911 +0.5861211,27,210.4605,4.115875 +0.681802,62,284.2667,4.946358 +0.9380357,22,163.5759,5.067801 +0.6476278,98,954.5236,5.193096 +0.6062827,71,570.621,4.896424 +0.8513,59,850.3103,5.303609 +0.6439583,33,685.2893,4.379145 +0.7549672,14,176.0377,3.930083 +0.5101834,28,353.0459,4.00226 +0.8534954,47,580.775,5.157762 +0.6642175,69,96.3145,5.032567 +0.7822325,20,464.9794,4.292241 +0.7222924,70,56.91364,5.224726 +0.7835733,92,11.13638,6.236578 +0.5127269,25,339.0517,3.910086 +0.9060686,81,300.5539,5.761269 +0.6473291,84,570.9105,5.08901 +0.7251075,34,842.6479,4.568951 +0.7233545,95,952.1911,5.311982 +0.8594078,44,426.2245,5.138217 +0.6228143,7,340.9586,2.917697 +0.6639282,60,579.4312,4.8763 +0.9111373,73,651.4216,5.685933 +0.850889,36,998.6415,4.948251 +0.5315727,20,452.9032,3.747659 +0.6490442,51,37.34832,4.852106 +0.715606,77,990.784,5.150418 +0.6712978,65,10.80619,5.424427 +0.8133968,100,891.5813,5.550796 +0.629085,96,415.4077,5.155445 +0.6325968,35,932.5289,4.402526 +0.7542193,78,229.4509,5.272169 +0.7610267,94,468.5767,5.394991 +0.9484245,24,661.5359,5.152519 +0.9051988,61,163.1016,5.61021 +0.642105,83,745.0839,5.068648 +0.6062096,71,29.42007,5.036339 +0.6614198,65,200.6846,4.95034 +0.9436293,20,906.2777,4.973695 +0.8892711,88,553.833,5.717634 +0.7912716,10,982.8139,3.707757 +0.8327392,90,923.7582,5.532846 +0.9494778,9,763.3662,4.394199 +0.837189,30,724.2563,4.770703 +0.764757,37,643.5556,4.728776 +0.6391173,62,732.9576,4.852631 +0.7116352,16,68.62962,3.974066 +0.926587,99,271.3453,6.005482 +0.7328461,22,375.7878,4.246613 +0.8062737,37,507.2412,4.840897 +0.7764293,97,522.9307,5.44909 +0.7452551,64,983.958,5.08166 +0.770722,96,122.8487,5.494829 +0.5441333,32,720.3908,4.170598 +0.663517,39,953.2992,4.546605 +0.5923693,90,235.0514,5.056502 +0.8482554,46,791.917,5.119762 +0.7808265,91,374.5348,5.424516 +0.9152311,40,974.5258,5.290716 +0.5714776,12,131.6730,3.362543 +0.5317691,42,633.3877,4.36961 +0.6123794,99,490.6901,5.14633 +0.5745781,8,645.4138,2.949351 +0.6082275,13,630.1471,3.502851 +0.6593624,89,215.2926,5.171144 +0.5644257,3,643.3973,1.740192 +0.920627,78,189.0088,5.84536 +0.5520711,51,623.7519,4.55584 +0.6121508,39,542.8347,4.453281 +0.7584429,21,187.2622,4.287515 +0.7916381,51,71.86452,5.147185 +0.8850048,16,997.5153,4.457286 +0.5391017,87,770.6265,4.931917 +0.7404479,7,323.7681,3.216882 +0.5623543,26,911.3213,4.02928 +0.5508669,96,484.6114,5.024189 +0.7931613,6,685.8204,3.213631 +0.9356591,55,520.1105,5.641592 +0.8191694,21,28.07199,4.681511 +0.7404314,76,362.3436,5.208253 +0.6132023,26,501.4922,4.1272 +0.898138,17,898.733,4.568876 +0.7149017,32,821.3167,4.499275 +0.6468989,98,799.4402,5.193233 +0.7843833,49,106.0027,5.056439 +0.78089,2,975.3173,1.739043 +0.7499181,33,292.2228,4.618129 +0.89562,3,215.3275,2.890152 +0.6734657,94,106.2031,5.270171 +0.5022134,82,435.0182,4.833872 +0.5035799,89,220.3418,4.901841 +0.6358235,5,732.8527,2.570277 +0.9185566,67,955.7941,5.65809 +0.8146047,77,848.0447,5.378849 +0.8849036,25,130.1811,4.875341 +0.666657,10,398.2127,3.382943 +0.866368,78,746.573,5.54593 +0.5504938,39,246.9974,4.349845 +0.712021,69,528.3399,5.072651 +0.5030071,65,637.7599,4.66033 +0.6105752,44,545.6989,4.544589 +0.6943772,65,979.1696,4.98809 +0.9203392,86,787.3725,5.833822 +0.5749371,12,488.0013,3.358939 +0.6378194,89,196.0952,5.133906 +0.5113716,66,593.8107,4.68551 +0.7412499,84,512.8562,5.272521 +0.6851877,28,589.8577,4.331579 +0.6870601,19,735.5807,4.011283 +0.7750765,15,479.3753,4.028658 +0.6845788,23,882.8073,4.166264 +0.7811759,64,597.6869,5.17059 +0.7607091,15,713.1093,3.985755 +0.5275841,3,320.7793,1.653622 +0.8151376,100,49.26603,5.78751 +0.5074881,77,757.4622,4.793207 +0.5229785,23,989.7796,3.852577 +0.7105007,28,31.24485,4.54415 +0.6215799,38,598.2167,4.449521 +0.8470756,49,10.20824,6.161224 +0.6472299,24,401.3113,4.129491 +0.9120567,60,41.54376,5.913973 +0.5377769,2,866.9126,1.040179 +0.7185213,18,930.2816,4.035555 +0.8158044,14,239.9823,4.104134 +0.770996,94,609.5532,5.412268 +0.7024562,43,650.9803,4.702584 +0.7775713,10,624.1942,3.668905 +0.8395731,24,386.586,4.617139 +0.6114049,91,218.1425,5.099238 +0.8950336,18,349.9376,4.6157 +0.5847385,92,22.30507,5.218627 +0.5681137,57,798.3608,4.666418 +0.8210785,93,933.207,5.522232 +0.5785641,83,4.989308,5.603602 +0.8157943,15,818.011,4.14539 +0.7407279,92,440.1779,5.337324 +0.733181,3,238.6378,2.200755 +0.7579886,42,635.1882,4.808085 +0.7311025,3,905.908,2.189757 +0.7900159,27,812.1494,4.548644 +0.760292,94,327.8632,5.402854 +0.6519805,77,849.4438,5.031642 +0.7062998,74,750.08,5.106512 +0.5844447,3,59.48537,1.801098 +0.6614328,90,460.961,5.165895 +0.881871,94,392.0773,5.744282 +0.8199697,65,654.326,5.280985 +0.898322,9,64.69922,4.13647 +0.7556982,59,152.5194,5.094736 +0.5939186,47,662.8237,4.564495 +0.8520484,84,444.9234,5.561018 +0.7401846,95,846.4764,5.347553 +0.6162178,30,412.4358,4.252757 +0.6134665,86,748.6544,5.044603 +0.6820989,3,169.3379,2.050289 +0.6442013,54,996.0875,4.757449 +0.5227555,12,294.5265,3.256112 +0.5621612,43,374.3188,4.443781 +0.6707198,14,582.3504,3.706538 +0.5717505,2,974.4778,1.120795 +0.714165,63,987.752,5.00491 +0.8463978,49,741.222,5.159691 +0.5952204,26,68.97992,4.131567 +0.5451793,20,707.1649,3.771381 +0.8645775,43,292.8327,5.152765 +0.9404841,4,51.03454,3.651606 +0.7179487,74,160.1517,5.169636 +0.6143455,31,974.3184,4.270616 +0.7752132,3,809.1733,2.335569 +0.7934382,59,504.3798,5.146776 +0.711908,86,888.908,5.221289 +0.6450752,84,229.6891,5.101429 +0.7590779,59,150.5668,5.10375 +0.9205524,29,818.9596,5.093759 +0.9360283,7,419.8364,4.064352 +0.5325355,85,266.1838,4.913121 +0.8768197,77,973.5951,5.569731 +0.7097386,99,643.0035,5.317974 +0.5718427,37,402.8701,4.340854 +0.5143585,41,440.6985,4.322562 +0.7406938,15,237.9263,3.946416 +0.7049336,96,920.0897,5.283441 +0.8494004,93,369.2301,5.627208 +0.6261061,45,662.1646,4.588758 +0.5064255,14,899.5559,3.369974 +0.7677488,79,651.7408,5.284578 +0.789773,59,296.7103,5.151136 +0.8435455,59,16.99554,5.912123 +0.6753605,53,791.7065,4.803538 +0.7715955,98,324.6493,5.457671 +0.8750405,21,577.243,4.637225 +0.8568845,79,527.212,5.53056 +0.6046421,54,708.383,4.688786 +0.7191854,53,919.355,4.890299 +0.6643493,97,347.9793,5.228687 +0.6956105,97,939.5987,5.272661 +0.6148152,27,557.7433,4.160999 +0.6576454,4,901.5362,2.356199 +0.8151161,36,74.71088,4.94727 +0.9228209,15,523.9028,4.61454 +0.6219353,32,922.2687,4.310781 +0.7883107,26,640.8576,4.516704 +0.6018958,97,34.22611,5.241195 +0.5793979,40,689.8196,4.412834 +0.6947763,5,26.97463,2.791473 +0.58931,35,138.7347,4.344029 +0.8847147,38,602.2617,5.121166 +0.7561305,49,523.4307,4.920687 +0.6925183,79,142.5949,5.168269 +0.6681708,46,193.5548,4.705324 +0.8585283,12,899.6494,4.105485 +0.6536122,66,584.4786,4.926772 +0.5651187,13,713.7666,3.414500 +0.88514,23,769.917,4.746323 +0.8002839,9,109.5764,3.673678 +0.9097735,4,111.6067,3.342624 +0.6178355,96,195.9049,5.151568 +0.7949732,57,597.5724,5.123088 +0.7527053,83,524.3268,5.288674 +0.8950565,49,72.84066,5.511047 +0.7359179,51,151.2464,4.939979 +0.8420705,7,564.432,3.548268 +0.7573152,83,299.6074,5.313 +0.9454348,87,942.5041,5.988617 +0.871066,18,952.1216,4.492747 +0.6274554,60,761.309,4.8073 +0.557569,10,423.8319,3.144131 +0.9005163,26,705.4903,4.910763 +0.8800185,65,730.4365,5.473082 +0.8613206,13,617.5602,4.188885 +0.8168853,17,650.0818,4.256188 +0.5328003,51,162.6084,4.53643 +0.6839809,84,377.3296,5.162864 +0.9303211,54,819.7178,5.583603 +0.6478824,71,990.3996,4.965008 +0.8349335,45,815.2025,5.061425 +0.769149,21,563.5817,4.294681 +0.6393773,87,829.238,5.09636 +0.8186378,40,399.7204,4.939388 +0.5060255,15,772.43,3.434855 +0.6399204,65,148.2399,4.91882 +0.5302873,41,873.3826,4.346774 +0.9489945,87,566.708,6.030224 +0.7902835,92,176.1944,5.489031 +0.935949,9,578.918,4.281535 +0.7065377,68,39.88104,5.213108 +0.6605787,74,199.7206,5.043517 +0.8500532,52,350.5747,5.231401 +0.5795111,43,185.7723,4.483979 +0.7721705,86,761.0165,5.350834 +0.8356097,31,587.8281,4.793397 +0.6543654,68,444.2728,4.953204 +0.745387,66,509.2115,5.112169 +0.6572928,32,453.2728,4.384213 +0.6103028,43,415.225,4.528702 +0.507783,24,459.682,3.864417 +0.7601003,75,316.1002,5.246828 +0.7714567,72,648.4202,5.228758 +0.6691248,74,148.5592,5.071301 +0.8532127,26,732.108,4.715798 +0.5091557,91,916.2237,4.917172 +0.6682798,23,442.3025,4.136524 +0.7504898,68,937.2238,5.136544 +0.9161427,30,880.0924,5.092573 +0.8091194,79,887.4123,5.381188 +0.7126703,51,412.3825,4.857893 +0.7594662,98,373.6597,5.425589 +0.5785451,27,661.7546,4.091882 +0.6655602,28,627.9785,4.290333 +0.5991819,54,216.0390,4.693234 +0.7969112,63,834.7526,5.193941 +0.8450834,25,649.1481,4.658746 +0.6193873,24,470.0091,4.072489 +0.9168002,2,62.04817,2.490147 +0.8613054,74,422.8139,5.507761 +0.62517,18,255.6169,3.841263 +0.6717216,30,248.8529,4.370396 +0.5892554,31,385.8409,4.229486 +0.8929538,34,581.5536,5.076849 +0.8155344,77,46.48784,5.609731 +0.5550282,19,784.9772,3.743976 +0.6795031,4,474.3498,2.415745 +0.6040601,66,200.2149,4.854484 +0.8937049,13,769.184,4.330309 +0.562713,48,40.01588,4.599981 +0.8443962,12,606.4958,4.054479 +0.5217481,98,304.271,4.997033 +0.6211519,73,460.562,4.944608 +0.801454,60,78.90437,5.287386 +0.7147738,91,760.2828,5.267743 +0.5293705,7,730.8396,2.708855 +0.6295258,25,288.2368,4.13171 +0.5811409,63,106.5195,4.796319 +0.7467691,83,303.5143,5.288863 +0.5357094,26,273.6827,3.986927 +0.8270343,25,75.21921,4.694638 +0.6370267,23,931.2065,4.067684 +0.5991126,3,463.7693,1.825909 +0.7526954,72,426.7363,5.193497 +0.8253992,93,330.6865,5.559655 +0.9159743,42,103.2218,5.454755 +0.8004575,92,11.91416,6.284229 +0.8738953,25,674.0253,4.764974 +0.8571217,38,390.5402,5.026141 +0.7039517,18,937.9678,4.001619 +0.7890745,34,410.5091,4.733657 +0.66447,39,688.1216,4.550597 +0.5939275,77,453.4037,4.93669 +0.7696701,100,856.4333,5.445882 +0.9277054,13,125.0380,4.591452 +0.9389669,99,787.151,6.030433 +0.8225612,91,994.0805,5.510888 +0.7342594,6,582.8713,3.033424 +0.8865646,57,5.988118,7.562239 +0.9154522,23,477.7697,4.904231 +0.5691102,7,96.046,2.807195 +0.6801258,9,342.9826,3.312514 +0.8502952,75,727.0152,5.467112 +0.5583243,47,911.0722,4.501544 +0.5236635,86,719.7257,4.899644 +0.5711945,61,904.3542,4.722019 +0.6034479,52,393.2907,4.663141 +0.8363296,65,490.6389,5.334549 +0.7217736,98,369.6968,5.345336 +0.7711621,71,24.62962,5.562754 +0.8946396,44,38.31367,5.588078 +0.8681217,34,730.2276,4.971574 +0.5378834,38,299.3967,4.304748 +0.7991737,58,345.0896,5.158856 +0.5592553,7,31.06375,2.814127 +0.9303648,2,961.1783,2.568641 +0.789962,48,667.3871,4.984806 +0.6122609,64,698.6285,4.828939 +0.5443432,21,316.0429,3.816686 +0.538685,4,822.2305,2.067093 +0.5826739,46,360.8801,4.532958 +0.6856244,17,109.1460,3.942286 +0.7513881,91,881.5027,5.341419 +0.6010855,16,407.8654,3.682199 +0.8463225,9,124.5201,3.838152 +0.899949,82,799.3413,5.706383 +0.9073209,28,842.0504,4.996587 +0.9469542,10,444.7476,4.468635 +0.8801998,100,651.3778,5.761765 +0.6018282,24,692.391,4.03621 +0.8014853,20,251.665,4.359587 +0.9432018,43,430.8335,5.534503 +0.9384274,100,25.18134,6.820565 +0.6923582,72,998.4995,5.057304 +0.5801159,42,782.1964,4.451911 +0.6414567,82,306.897,5.070821 +0.6720437,62,514.3452,4.91709 +0.7724809,57,339.2014,5.078844 +0.9028858,76,604.6113,5.676169 +0.9497646,65,64.40338,6.126636 +0.8328937,59,235.9650,5.282141 +0.7836799,77,586.6602,5.30615 +0.8561,32,898.7267,4.880362 +0.715531,15,130.4621,3.897282 +0.9006471,71,529.8968,5.624916 +0.6128581,49,414.7223,4.634115 +0.8566043,5,295.1873,3.272094 +0.7551571,36,54.301,4.802694 +0.6504977,38,414.6663,4.507891 +0.691055,88,229.4573,5.222388 +0.6377646,46,92.32049,4.671924 +0.7257486,47,581.0358,4.820107 +0.7063136,96,616.4358,5.290743 +0.8650301,40,943.64,5.074856 +0.6272809,41,135.1876,4.545061 +0.6924068,12,308.8051,3.619891 +0.6531557,13,949.6057,3.597409 +0.8044704,93,633.929,5.485044 +0.8368844,43,487.7978,5.043371 +0.8397715,74,513.7228,5.432954 +0.5198061,32,197.0448,4.13612 +0.5460146,42,882.3461,4.392564 +0.6740923,35,657.371,4.485618 +0.6792326,40,648.0051,4.599951 +0.8405607,53,811.9904,5.195353 +0.5946238,5,169.7788,2.477280 +0.8982927,26,848.3721,4.89743 +0.9365957,28,407.9059,5.186799 +0.7668708,53,178.9098,5.035299 +0.6584784,76,890.6541,5.033633 +0.5389569,12,497.2326,3.286257 +0.6999825,24,456.0215,4.240168 +0.9096133,31,747.363,5.084439 +0.8289016,2,283.8486,1.940521 +0.6901096,87,214.8528,5.214694 +0.6694101,78,530.8827,5.077346 +0.6567067,73,317.1940,5.014601 +0.679931,95,191.9584,5.260732 +0.5387921,23,10.62070,4.063064 +0.756781,59,405.9484,5.062023 +0.5842175,30,292.6955,4.195843 +0.6076509,77,417.3091,4.961052 +0.6543601,92,829.3172,5.161897 +0.5755779,49,196.0489,4.577904 +0.5450119,38,102.0792,4.334683 +0.9404626,51,345.8694,5.64067 +0.7038778,74,55.63226,5.222917 +0.8082828,86,120.1308,5.521448 +0.7313073,93,923.7832,5.313754 +0.5285032,3,618.0018,1.654841 +0.9024613,17,854.2145,4.591173 +0.6862795,37,30.83803,4.714655 +0.7354094,8,867.1883,3.332226 +0.9007964,29,611.6991,4.995666 +0.6588533,49,769.275,4.713477 +0.8563857,26,675.1622,4.728254 +0.8872304,87,328.7089,5.722146 +0.9268127,69,847.4352,5.724473 +0.6875418,60,935.4085,4.917128 +0.891503,19,974.8925,4.624085 +0.6769115,96,834.304,5.231948 +0.7652566,25,969.8592,4.421208 +0.6201267,12,685.9498,3.451914 +0.6599803,63,784.9818,4.901872 +0.6964509,81,667.3963,5.152364 +0.6965717,35,935.8557,4.529274 +0.6360838,51,280.4093,4.7129 +0.8371735,88,757.6325,5.533856 +0.6208766,74,120.8144,4.986134 +0.6598676,62,270.1187,4.904797 +0.8525584,26,247.1739,4.738222 +0.7263877,70,427.1566,5.116298 +0.7346672,31,453.3599,4.52499 +0.8395507,14,95.145,4.228401 +0.7380277,4,15.21835,2.710866 +0.5857433,63,4.982476,5.40675 +0.8829485,78,53.84525,5.862786 +0.6057832,60,87.74786,4.814740 +0.7225465,21,738.9869,4.176617 +0.6532181,99,770.4294,5.211655 +0.8260238,21,471.1853,4.462461 +0.7465538,91,348.1825,5.348179 +0.8766148,72,320.0464,5.555052 +0.6860644,88,913.9462,5.187536 +0.8306096,62,184.0549,5.32403 +0.6324524,63,799.4854,4.851846 +0.5364287,49,30.90720,4.577945 +0.6288004,24,822.3586,4.08774 +0.9113013,43,150.4739,5.401755 +0.6569249,22,476.9137,4.074598 +0.804286,26,90.7052,4.632987 +0.8768176,18,824.244,4.518036 +0.6579506,44,270.2119,4.642845 +0.7120674,45,417.2141,4.762816 +0.6624692,2,355.9182,1.358141 +0.7997539,59,516.3986,5.162715 +0.9064637,37,727.8032,5.196172 +0.8220323,7,432.6814,3.474522 +0.75176,55,861.221,4.988624 +0.6098563,56,461.1784,4.728862 +0.661423,93,384.5225,5.191923 +0.8380577,45,787.3014,5.07156 +0.5475543,54,151.5863,4.608017 +0.9364163,89,550.0236,5.958449 +0.8345188,33,715.9277,4.83412 +0.9300926,24,417.0907,5.028721 +0.715501,56,100.0091,4.987019 +0.9396052,60,513.9873,5.726164 +0.5227287,97,513.9972,4.986833 +0.8565892,7,304.42,3.615298 +0.9116222,74,986.7343,5.688216 +0.8512815,45,27.81513,5.487517 +0.9298235,83,989.083,5.857929 +0.626031,73,643.8244,4.949713 +0.8482173,91,457.0946,5.601593 +0.5709514,32,457.7069,4.220686 +0.6943745,92,242.0755,5.258453 +0.8606947,39,318.7593,5.064335 +0.840107,80,678.4295,5.48065 +0.5747926,29,651.5253,4.144597 +0.8357058,7,666.7798,3.522195 +0.869957,81,855.4466,5.580992 +0.670602,54,101.5262,4.85908 +0.8043425,81,708.5911,5.389184 +0.7803241,71,259.3759,5.26357 +0.7343555,43,335.7706,4.781522 +0.6297029,47,719.406,4.628093 +0.6101721,45,104.9270,4.593527 +0.5134342,15,925.1843,3.448606 +0.8411402,71,917.1132,5.397877 +0.7914293,83,136.8519,5.438173 +0.6139731,77,618.7109,4.967776 +0.5357605,24,862.5706,3.912846 +0.5025054,26,595.9775,3.923262 +0.89996,57,532.7505,5.473657 +0.7650395,53,698.8342,4.994776 +0.7758476,20,845.1518,4.268804 +0.769896,71,98.302,5.297764 +0.6660289,82,968.9507,5.100656 +0.9441867,10,37.19494,4.689927 +0.8946557,52,995.2553,5.374756 +0.7667594,71,705.5376,5.206838 +0.5014517,77,871.1445,4.783311 +0.5965555,7,819.4321,2.854995 +0.8659944,2,758.1844,2.121457 +0.6069824,22,158.3323,3.987152 +0.6479568,94,353.0358,5.176647 +0.5823552,65,489.6782,4.792003 +0.8344934,16,260.4225,4.279719 +0.914692,65,954.2295,5.618436 +0.7871276,33,206.7722,4.724443 +0.6903965,76,163.2536,5.12962 +0.6344172,37,484.5121,4.454353 +0.6875203,61,231.6496,4.951199 +0.7422141,52,591.7167,4.930737 +0.7599737,31,281.7283,4.594985 +0.6880801,23,810.4523,4.174274 +0.81849,54,857.3539,5.1427 +0.8148196,72,388.4852,5.349729 +0.8212496,76,979.5797,5.386053 +0.6091061,50,602.2909,4.639421 +0.8067955,63,27.98457,5.562519 +0.9042222,97,672.1885,5.838087 +0.6244393,47,2.131261,6.358538 +0.5254594,98,625.0347,4.997252 +0.8791726,34,862.3985,5.01207 +0.746068,56,620.111,4.992682 +0.8306618,24,473.0823,4.583617 +0.7019251,90,179.0329,5.269792 +0.820721,3,27.40536,2.585711 +0.6277612,95,375.2626,5.147359 +0.760516,77,973.8867,5.245349 +0.7752467,87,718.0702,5.366682 +0.7374634,28,778.2432,4.445331 +0.7285804,45,770.6425,4.790764 +0.8101368,99,420.6396,5.551649 +0.8354864,2,752.3351,1.967745 +0.9366795,96,934.8403,5.99238 +0.7295988,2,854.2223,1.559671 +0.902451,16,637.7424,4.546596 +0.6556947,67,88.20184,4.998451 +0.8541205,74,192.7775,5.521679 +0.9460709,29,695.1937,5.267903 +0.636149,84,870.8137,5.06554 +0.6345869,49,321.4711,4.677389 +0.8826033,54,110.8286,5.460166 +0.8048285,100,344.4542,5.551093 +0.760377,54,437.62,5.004792 +0.5793991,27,765.2235,4.092846 +0.6896911,15,676.624,3.810868 +0.660633,69,60.04597,5.061003 +0.5156361,16,606.4331,3.513952 +0.893971,53,914.421,5.386176 +0.9322795,45,194.9015,5.536317 +0.9217502,47,148.8462,5.526009 +0.7223354,41,354.2265,4.717427 +0.7254239,21,944.9461,4.181863 +0.708828,75,461.7057,5.127708 +0.7022857,28,137.4031,4.397661 +0.9036889,27,341.8465,4.972055 +0.8784777,44,937.2588,5.193275 +0.6917807,29,917.8933,4.370685 +0.8760101,23,943.734,4.705450 +0.9430376,66,524.9752,5.811901 +0.5017794,92,151.7466,4.928244 +0.8888717,89,367.2177,5.738572 +0.6703306,14,535.2485,3.706171 +0.672854,26,944.1592,4.242406 +0.6472046,80,827.924,5.0506 +0.8772473,5,160.6619,3.382955 +0.8926035,81,187.3492,5.733713 +0.6786785,93,663.5972,5.215532 +0.7578081,65,667.543,5.124931 +0.7833775,55,329.4239,5.081013 +0.7000353,43,82.3758,4.762278 +0.888855,70,652.9058,5.560005 +0.6924933,87,478.0858,5.199561 +0.840106,52,313.4649,5.202915 +0.5399748,25,364.0615,3.959138 +0.902836,16,403.3234,4.557186 +0.6867339,26,969.5584,4.271392 +0.8742233,37,480.4238,5.064757 +0.7599474,67,993.2258,5.14663 +0.883177,65,310.0843,5.512333 +0.6960705,31,389.7709,4.440958 +0.7739131,71,67.05128,5.352244 +0.7563553,22,940.1603,4.295526 +0.8219649,40,352.6679,4.952488 +0.9108295,14,658.4179,4.483537 +0.9498709,73,859.1367,5.912762 +0.8252522,84,979.9907,5.46482 +0.7923822,95,142.433,5.531805 +0.5749987,39,896.3604,4.383877 +0.8141943,10,294.8625,3.793207 +0.5594338,52,69.15462,4.625047 +0.932766,68,273.3,5.796079 +0.6501828,67,958.8537,4.927372 +0.6199984,91,910.7417,5.0943 +0.9105013,61,86.3416,5.723355 +0.6500351,13,101.7401,3.61627 +0.9173677,4,921.6633,3.358811 +0.7483216,56,811.9803,4.994524 +0.6619459,6,672.351,2.841462 +0.7787717,50,588.649,4.988066 +0.6915036,64,334.7062,4.985228 +0.8969362,5,505.469,3.470211 +0.8492126,3,306.2505,2.637068 +0.6736042,74,738.814,5.043914 +0.8280637,68,39.91354,5.600346 +0.9255473,6,906.1636,3.830839 +0.595304,14,217.5326,3.552682 +0.8425488,84,901.4002,5.515823 +0.7499038,4,308.2265,2.622547 +0.7292323,64,240.871,5.072892 +0.5156149,32,761.0943,4.120675 +0.9342052,76,325.2375,5.867557 +0.7430211,54,869.715,4.955698 +0.5554406,32,914.998,4.189741 +0.703071,36,997.2677,4.564418 +0.6830719,69,89.59823,5.077642 +0.6347344,13,419.0303,3.561125 +0.678805,77,456.5152,5.087955 +0.6484101,26,166.0909,4.212926 +0.5956851,21,718.855,3.909814 +0.6716819,49,506.3922,4.742036 +0.880219,4,437.3379,3.137609 +0.6992864,21,926.1055,4.122149 +0.7350454,17,803.2935,4.027239 +0.924039,65,518.5967,5.682937 +0.7097215,47,189.0405,4.809879 +0.820387,6,275.5597,3.317263 +0.9255068,81,23.14098,6.576327 +0.55869,9,627.6641,3.038083 +0.6046422,57,853.3931,4.728344 +0.744582,23,563.4014,4.306778 +0.6502728,57,30.85893,4.969265 +0.7468517,32,992.2413,4.570483 +0.6578665,20,675.1416,3.992919 +0.5214619,89,909.4671,4.920113 +0.8465362,44,158.5620,5.137696 +0.6626981,19,212.1094,3.971124 +0.8807791,42,327.2020,5.194205 +0.7866526,79,760.59,5.326811 +0.7779337,73,365.5488,5.26587 +0.9119104,46,26.67773,5.894684 +0.5792652,7,547.2527,2.817491 +0.5369576,36,356.6722,4.257976 +0.883138,81,393.9469,5.650472 +0.5432084,71,55.75745,4.842559 +0.895006,86,614.9657,5.72293 +0.768465,50,513.2161,4.965069 +0.9327656,92,794.7848,5.945621 +0.7523386,50,317.4484,4.936806 +0.741749,56,496.2921,4.986378 +0.7054378,77,244.3444,5.154722 +0.8930161,52,269.8881,5.405983 +0.8259867,30,446.4984,4.742886 +0.9428722,78,646.6361,5.911485 +0.587867,69,311.0502,4.850746 +0.7552073,27,941.9401,4.457584 +0.7985361,86,716.3606,5.414992 +0.7237573,8,175.6068,3.314545 +0.6685535,57,696.2688,4.845468 +0.5013911,23,945.8882,3.813899 +0.6523594,99,24.28822,5.442461 +0.7394495,49,881.9684,4.876581 +0.854433,28,707.679,4.777123 +0.8204082,83,605.3809,5.451369 +0.79852,86,288.334,5.438983 +0.7310523,85,717.5282,5.25414 +0.9195674,81,107.4469,5.937123 +0.6529936,19,20.64329,4.099437 +0.6067644,22,388.9285,3.975088 +0.8650076,38,466.122,5.050008 +0.6128448,67,98.0593,4.906338 +0.752887,51,922.446,4.935679 +0.6460481,27,814.8709,4.219734 +0.6936537,45,245.3472,4.734685 +0.784517,60,421.8168,5.13995 +0.6001813,61,686.6315,4.772608 +0.9319204,62,696.6375,5.688879 +0.922267,71,823.7056,5.718688 +0.6002578,9,503.0087,3.127464 +0.6310301,6,138.3597,2.776067 +0.8483663,18,189.1734,4.438687 +0.70115,88,191.8286,5.2494 +0.8561147,97,22.70583,6.228308 +0.667727,56,494.8825,4.834405 +0.6542349,9,824.6264,3.246751 +0.5206833,7,729.2577,2.690404 +0.658784,87,246.0525,5.150044 +0.5953643,23,366.7405,3.991525 +0.6766511,91,414.3638,5.203471 +0.825277,42,851.569,4.981794 +0.6250303,58,23.19250,4.962958 +0.8423589,99,93.69587,5.756519 +0.8063293,31,264.1642,4.722025 +0.620299,64,122.1244,4.876939 +0.7893993,47,877.3323,4.96473 +0.6962783,83,146.4735,5.210165 +0.5332282,41,131.3166,4.368617 +0.6765526,53,138.7834,4.842043 +0.8702945,27,497.7323,4.814542 +0.7776173,82,76.84477,5.449936 +0.8220009,15,216.7689,4.187112 +0.924437,7,953.394,3.967118 +0.8349073,25,895.0206,4.621042 +0.5263872,22,348.8703,3.823587 +0.6831776,52,279.0269,4.81924 +0.8806107,92,969.464,5.700816 +0.7174212,95,820.0121,5.301742 +0.6907261,79,551.123,5.12615 +0.6847294,89,759.6159,5.194662 +0.5568725,20,625.1609,3.793706 +0.6078584,10,146.1385,3.259882 +0.7378435,47,589.1384,4.846525 +0.9052463,80,710.1403,5.716327 +0.7568209,43,98.5796,4.888557 +0.5767346,61,609.2453,4.733473 +0.8850829,8,556.3335,3.865227 +0.6507976,72,844.7777,4.981404 +0.7150611,77,310.9208,5.167565 +0.8717278,21,382.6469,4.631755 +0.6029478,52,730.9699,4.657059 +0.8668438,61,542.8423,5.387924 +0.9472293,42,932.0925,5.527578 +0.8546157,31,560.8847,4.858193 +0.6580792,33,540.6646,4.408665 +0.6077477,11,744.3783,3.341634 +0.7560453,46,377.6593,4.879772 +0.5934148,59,364.4261,4.741766 +0.6420253,87,671.283,5.102801 +0.5611765,38,346.1592,4.344532 +0.939425,28,247.0993,5.230175 +0.6246716,11,705.8324,3.378152 +0.5071962,93,202.9717,4.940695 +0.6177509,44,86.61081,4.599245 +0.6201071,90,284.9948,5.100697 +0.7943832,4,651.253,2.767431 +0.5547687,14,92.42605,3.481923 +0.6008824,81,964.5551,4.979063 +0.8629902,95,927.3415,5.661068 +0.5217671,20,910.9093,3.727425 +0.7689205,71,179.86,5.252005 +0.6822136,93,682.3452,5.221752 +0.6892221,24,467.665,4.216273 +0.9466872,49,883.4082,5.627904 +0.782297,14,837.0868,3.984421 +0.6690006,34,806.0445,4.451114 +0.8822465,16,302.8304,4.464571 +0.814535,72,793.6759,5.333641 +0.780475,65,104.4416,5.256237 +0.6682725,41,54.42584,4.684022 +0.8818546,92,241.0917,5.755743 +0.5129674,89,518.6905,4.909487 +0.6083917,7,195.1739,2.888261 +0.8140826,93,353.8889,5.525755 +0.6558119,59,593.6033,4.848487 +0.5921442,53,938.0159,4.651416 +0.6950022,92,367.6952,5.248443 +0.8418083,45,53.97386,5.266512 +0.8581418,9,996.44,3.847388 +0.906525,76,919.7202,5.683072 +0.7922269,86,262.6776,5.426634 +0.8804859,57,874.4561,5.382196 +0.6551834,55,992.6632,4.791359 +0.6348819,63,68.21945,4.925976 +0.539279,2,999.5265,1.043612 +0.5769965,8,480.9133,2.955411 +0.7496352,5,952.3615,2.876907 +0.6318387,42,714.5921,4.545552 +0.8323459,12,329.8476,4.019001 +0.898379,75,202.0454,5.701038 +0.8675291,19,141.8562,4.573326 +0.5642187,34,590.5545,4.256547 +0.8223834,83,86.52396,5.576896 +0.8367909,82,911.1915,5.482459 +0.5391946,30,341.9927,4.112239 +0.7218873,64,588.085,5.037551 +0.712584,25,774.5507,4.297156 +0.6410482,70,466.223,4.94933 +0.9427801,78,553.2906,5.916202 +0.7313513,22,109.2037,4.277424 +0.6818153,96,512.4702,5.246855 +0.5512217,98,992.8429,5.035079 +0.7812837,89,618.1023,5.398797 +0.7540433,88,544.6624,5.331273 +0.7513365,43,739.7543,4.808344 +0.6869057,45,887.4778,4.702743 +0.7466107,87,160.8096,5.348803 +0.6327194,74,213.3965,4.989166 +0.799753,98,822.153,5.503853 +0.5081392,76,11.12948,4.967705 +0.5695873,58,148.3262,4.702562 +0.8698363,93,582.4204,5.680172 +0.7370043,53,83.27543,5.011579 +0.5155987,2,810.935,0.9893308 +0.9243925,64,607.5746,5.669679 +0.5951338,40,455.03,4.443665 +0.9100938,9,241.3229,4.124432 +0.5649921,47,58.03952,4.565033 +0.8871607,49,163.9309,5.37103 +0.6987442,58,873.9467,4.914947 +0.7717202,56,295.2688,5.068172 +0.8971835,26,322.9148,4.913746 +0.7098414,26,138.5701,4.354089 +0.5980129,75,381.2143,4.926538 +0.7466993,8,939.951,3.363184 +0.5817556,27,166.0144,4.111321 +0.6169866,9,789.4504,3.162706 +0.8773756,90,872.0359,5.676485 +0.9487774,19,620.3235,4.984752 +0.6012269,72,648.6574,4.896949 +0.8874921,70,590.1976,5.557023 +0.689685,87,78.50793,5.272388 +0.5055174,93,963.2988,4.927143 +0.6047475,64,893.5502,4.814436 +0.7766777,50,368.8056,4.991917 +0.5686279,25,323.1676,4.012975 +0.7818071,83,226.9735,5.3823 +0.8170889,12,153.6800,3.985706 +0.7977554,29,770.1328,4.626086 +0.7852365,46,989.7344,4.93727 +0.7927683,74,356.9458,5.312917 +0.7867968,6,399.7946,3.195968 +0.8733431,12,935.9138,4.166780 +0.8796833,70,934.9437,5.517356 +0.636514,68,971.9312,4.913639 +0.6808005,20,430.3306,4.045446 +0.6048896,85,981.4121,5.020153 +0.8654105,89,720.428,5.630987 +0.6864552,67,602.496,4.999139 +0.6300466,96,289.0463,5.163596 +0.817489,75,211.2414,5.410742 +0.8400478,92,679.8478,5.573994 +0.5698388,8,300.8922,2.941856 +0.582194,5,504.4376,2.443357 +0.5349201,22,127.5678,3.849569 +0.6187668,22,951.209,3.993716 +0.8008588,62,233.6063,5.225165 +0.5965371,94,40.45694,5.187102 +0.8151207,32,756.864,4.751175 +0.7769006,27,223.2838,4.536306 +0.7174666,8,396.4691,3.288214 +0.7976062,11,776.9354,3.816095 +0.518612,40,443.6649,4.309965 +0.804459,24,381.0473,4.506709 +0.6998635,62,207.0057,4.992047 +0.5738755,63,649.407,4.752359 +0.5914398,66,114.7394,4.847805 +0.7516815,54,737.3794,4.9768 +0.8206513,74,838.3675,5.368303 +0.6892161,22,248.1324,4.152309 +0.7557864,96,773.9158,5.388975 +0.7424069,8,419.5075,3.355515 +0.64102,31,125.2648,4.350865 +0.8755487,29,531.1229,4.887958 +0.8220866,64,95.23995,5.376784 +0.7298066,84,988.9888,5.239885 +0.6498086,59,777.8337,4.835051 +0.5952051,16,43.86029,3.720629 +0.5406545,28,730.805,4.053318 +0.8730058,94,570.9119,5.698879 +0.7848164,39,595.9421,4.819905 +0.5056704,85,235.6726,4.870872 +0.7503822,93,40.40904,5.569652 +0.7623385,77,656.6282,5.254356 +0.9050834,28,639.3919,4.989896 +0.5792019,63,720.7618,4.76066 +0.9365765,81,741.2498,5.889811 +0.5170495,36,709.0156,4.220138 +0.7579033,50,215.9502,4.962113 +0.7261358,35,950.1155,4.592818 +0.867949,61,174.7179,5.443687 +0.8219999,91,90.11405,5.635406 +0.7344778,6,768.4564,3.032963 +0.6391056,66,344.9348,4.907219 +0.715629,5,461.1896,2.780410 +0.9456008,14,125.8034,4.795929 +0.7781412,93,949.9423,5.414954 +0.9017116,9,294.1608,4.070416 +0.7990502,54,177.7193,5.134096 +0.5764074,30,277.9910,4.181882 +0.868876,87,530.6085,5.635381 +0.838551,3,655.3641,2.584304 +0.8733335,81,169.8654,5.663368 +0.8009454,37,421.7654,4.829536 +0.6619069,3,358.1408,1.990475 +0.936464,46,82.03691,5.698119 +0.8662996,15,787.2326,4.326679 +0.6319756,60,396.6261,4.821835 +0.8327794,21,356.1523,4.489936 +0.697243,14,426.6443,3.769716 +0.9422893,39,798.8793,5.442873 +0.8401464,40,876.4566,4.99153 +0.7271848,14,801.7663,3.837801 +0.9366602,79,839.1458,5.871191 +0.8654798,86,219.8499,5.655314 +0.601478,40,521.7851,4.454044 +0.8159394,76,844.3883,5.373576 +0.877629,12,263.1835,4.205521 +0.6199173,63,541.6174,4.832829 +0.8350693,96,494.7244,5.595292 +0.9331142,30,310.2021,5.223768 +0.5971522,26,294.0387,4.101062 +0.7050427,85,799.8672,5.200766 +0.8245875,85,519.8425,5.482495 +0.8156111,40,282.1250,4.940373 +0.5562086,50,914.5773,4.545837 +0.7945503,56,509.8487,5.11224 +0.9002302,48,657.2615,5.351519 +0.7408247,9,582.8542,3.464661 +0.7706727,10,123.3315,3.675843 +0.8233978,87,586.6883,5.492068 +0.6780417,86,613.6269,5.160592 +0.7555267,27,593.3262,4.462403 +0.8589791,98,210.522,5.72345 +0.8564374,49,475.0287,5.201909 +0.6455064,10,888.3926,3.330776 +0.6118692,22,225.4656,3.991082 +0.7097182,9,955.9376,3.380605 +0.8303001,97,751.4643,5.579085 +0.8857616,77,819.6227,5.606405 +0.9371744,94,581.324,5.995916 +0.904798,16,844.1146,4.555205 +0.8052004,76,937.64,5.343849 +0.6413274,76,156.2456,5.034433 +0.5005335,20,619.3793,3.689414 +0.6843155,95,944.576,5.237186 +0.5974006,85,681.7894,5.010067 +0.5821853,27,280.7281,4.104808 +0.8953317,29,409.1469,4.979421 +0.817542,38,884.406,4.885221 +0.6230185,10,126.0652,3.296125 +0.8992164,64,214.1892,5.59214 +0.8508804,86,21.84537,6.12389 +0.6022805,78,638.9464,4.956948 +0.8040262,95,829.4797,5.493623 +0.9077964,51,521.2882,5.434688 +0.7534537,25,426.964,4.399786 +0.9285945,35,190.0018,5.335034 +0.6491223,5,588.7468,2.603757 +0.8181373,96,574.1935,5.544206 +0.7787446,23,373.9165,4.400276 +0.670359,31,124.0375,4.413313 +0.6786379,88,957.521,5.173391 +0.5888266,74,550.2265,4.897334 +0.6085072,66,639.6363,4.845776 +0.6478314,71,985.1027,4.964951 +0.7657263,6,179.6602,3.137958 +0.8456286,68,404.8321,5.399875 +0.5364791,22,998.3107,3.8383 +0.6038707,50,164.2271,4.64913 +0.857209,77,795.551,5.505422 +0.5249804,39,328.439,4.302451 +0.7442277,42,966.5417,4.772024 +0.7201957,47,475.412,4.810843 +0.5699931,24,869.3557,3.975455 +0.6989484,70,816.274,5.051683 +0.7812828,44,2.135128,8.591494 +0.5219076,100,237.0052,5.014755 +0.6106303,98,854.5144,5.13124 +0.5026807,86,224.5775,4.875127 +0.8198123,71,575.1678,5.3441 +0.6138242,71,745.7467,4.907245 +0.6805838,55,638.4604,4.843034 +0.9290318,35,257.3453,5.317635 +0.6470365,22,696.273,4.051653 +0.6337309,97,363.7865,5.172954 +0.7886795,17,643.3402,4.171278 +0.8254145,5,582.7275,3.136136 +0.8516908,52,803.336,5.217638 +0.9166178,8,577.6604,4.041351 +0.8968548,98,527.179,5.820264 +0.5722818,24,793.7203,3.979998 +0.6032017,23,788.499,4.00212 +0.5075828,33,519.9306,4.133535 +0.8657794,62,58.56733,5.593048 +0.6514194,9,397.1311,3.243381 +0.740069,89,621.0678,5.306752 +0.9482056,56,275.5806,5.77576 +0.8230623,9,52.053,3.803464 +0.6082217,53,915.879,4.679475 +0.6464528,5,119.4947,2.607668 +0.8350917,7,226.1173,3.532820 +0.6178383,61,243.0198,4.816592 +0.7782553,77,374.1483,5.303223 +0.8656266,98,739.3553,5.694418 +0.6165961,45,754.2097,4.570610 +0.7231948,97,951.436,5.325928 +0.7702777,54,307.4097,5.037028 +0.7941128,83,842.361,5.377428 +0.9480839,73,274.8127,5.950433 +0.87857,68,853.7356,5.495204 +0.8815007,47,334.6438,5.276524 +0.5020565,73,127.3073,4.761097 +0.8132388,17,766.5308,4.243171 +0.6349836,72,217.501,4.97288 +0.7345042,45,446.8198,4.810678 +0.6324589,56,695.5116,4.765614 +0.6766945,65,682.7241,4.957177 +0.8384446,45,50.39085,5.266822 +0.8292134,96,840.1522,5.567259 +0.6719539,48,656.1994,4.724372 +0.809623,95,56.85168,5.701083 +0.7498366,17,364.4239,4.072086 +0.619014,13,707.4429,3.525017 +0.6811455,74,605.4795,5.060201 +0.882381,46,958.455,5.239598 +0.7015142,82,476.2719,5.175633 +0.5299216,16,494.2751,3.541732 +0.6607211,14,884.8854,3.6824 +0.6563658,76,473.8497,5.036273 +0.9086148,20,348.7688,4.768237 +0.5317627,83,431.7357,4.889704 +0.825882,54,6.723105,6.564159 +0.7910776,83,855.6105,5.369767 +0.5434787,31,396.3381,4.146151 +0.7552404,20,230.9523,4.232531 +0.9128294,2,948.336,2.421541 +0.8734858,3,943.6312,2.752039 +0.7619628,13,46.50071,3.95599 +0.530564,21,589.0549,3.788025 +0.8672307,32,385.6643,4.936566 +0.5758073,16,507.0537,3.630556 +0.9346337,28,207.8552,5.206275 +0.6086858,100,427.5916,5.148903 +0.8526955,60,625.6103,5.325112 +0.7807349,97,208.4894,5.491468 +0.6613672,24,666.5108,4.154454 +0.7868165,30,481.2405,4.628475 +0.9346749,13,889.5627,4.572415 +0.9328514,7,828.8279,4.030245 +0.5606693,6,261.8499,2.607946 +0.8161636,17,780.7351,4.252196 +0.6558015,79,528.6601,5.061497 +0.831897,81,635.7404,5.466197 +0.915886,22,853.311,4.862409 +0.5913286,72,60.15915,4.945122 +0.8646249,33,264.7087,4.962252 +0.8321677,72,908.4424,5.380992 +0.6962891,65,110.6920,5.048255 +0.6304735,72,218.5794,4.964444 +0.6745612,29,459.785,4.34005 +0.9232729,26,918.3574,5.02832 +0.8580391,47,854.3836,5.166712 +0.5624958,56,846.6226,4.643342 +0.7873887,36,127.6685,4.816235 +0.5135421,82,424.3989,4.85195 +0.814808,97,115.9282,5.628076 +0.8753602,40,178.0754,5.167777 +0.6118576,23,147.7502,4.036733 +0.6847514,43,587.8533,4.667379 +0.6061571,47,758.2529,4.585328 +0.5858277,36,416.5601,4.343773 +0.8739752,83,707.7928,5.61507 +0.8375114,6,982.8637,3.372709 +0.9003886,58,173.6305,5.545955 +0.5981954,71,128.2512,4.910756 +0.7455954,57,286.4944,5.020046 +0.7812342,42,253.2611,4.88518 +0.730042,91,961.7669,5.295857 +0.7136859,65,302.7885,5.044119 +0.693914,50,633.6842,4.798753 +0.7007014,9,755.1023,3.35871 +0.5536581,56,347.3614,4.634456 +0.5760761,33,840.6948,4.25189 +0.5446971,18,518.0001,3.677323 +0.843379,13,993.9418,4.115953 +0.787686,66,606.3317,5.208036 +0.824503,100,349.7422,5.603655 +0.8745048,52,832.2114,5.296925 +0.5533256,6,456.3044,2.589675 +0.9002027,32,78.98477,5.199832 +0.7572682,69,955.2467,5.161683 +0.9110095,86,223.9173,5.844839 +0.815023,94,299.6559,5.541953 +0.8908233,97,786.267,5.778197 +0.5329625,8,44.15612,2.887261 +0.5134662,39,538.1438,4.279916 +0.5981097,30,227.5569,4.225254 +0.7171263,75,704.7456,5.138373 +0.930335,42,353.6559,5.438617 +0.8124237,87,3.898780,7.969198 +0.9411632,55,725.4331,5.668858 +0.8050018,42,440.056,4.934311 +0.7530192,22,622.1026,4.290333 +0.8170806,84,470.7614,5.456249 +0.93525,14,386.908,4.651497 +0.7166343,60,104.1422,5.038449 +0.917954,87,868.0088,5.826831 +0.8879323,89,923.3232,5.70781 +0.8616931,37,534.479,5.0154 +0.6735284,59,446.7707,4.885447 +0.7125385,71,553.2622,5.093403 +0.7026195,75,235.6866,5.131304 +0.5473121,3,51.68421,1.711303 +0.6607179,73,43.87053,5.137546 +0.9180171,76,942.4687,5.738086 +0.7645448,19,49.50595,4.30261 +0.733274,29,65.80698,4.546218 +0.7325852,69,130.5952,5.163234 +0.8181913,32,208.0369,4.790727 +0.8948076,14,251.6971,4.419942 +0.6873142,66,993.6974,4.985319 +0.7436848,83,858.6368,5.261985 +0.6818223,2,192.871,1.415344 +0.8277169,97,240.0575,5.609687 +0.5514969,34,543.0716,4.23445 +0.6439629,72,103.1574,5.01859 +0.6550325,8,781.9898,3.12958 +0.6659297,19,936.6371,3.964243 +0.5612373,26,409.1167,4.030819 +0.7397453,2,391.9286,1.594413 +0.6857085,21,758.4541,4.093299 +0.9099568,5,498.0438,3.549488 +0.6577822,82,897.6692,5.086357 +0.500702,72,793.448,4.732607 +0.6754568,15,469.036,3.780968 +0.8649758,48,711.3555,5.208689 +0.9421843,99,391.6264,6.079699 +0.5887436,41,416.7053,4.452386 +0.6453773,33,118.3290,4.412801 +0.5258648,2,717.5804,1.012781 +0.8994016,91,624.9795,5.777852 +0.9174562,84,784.1775,5.804003 +0.6026578,45,320.371,4.553099 +0.7835312,95,79.15228,5.568083 +0.8392914,9,942.9991,3.773431 +0.5477099,23,308.0442,3.902671 +0.6494744,58,864.7787,4.82106 +0.7872531,43,741.0002,4.895919 +0.7405713,93,631.6467,5.337746 +0.5555238,3,66.43276,1.728283 +0.8471521,97,209.7429,5.67748 +0.6715602,45,588.2055,4.675771 +0.7405694,92,749.2553,5.327916 +0.8410912,54,457.7499,5.221268 +0.8757793,69,65.46372,5.692853 +0.7991129,56,816.1179,5.11671 +0.7858377,48,416.5169,4.982474 +0.5952346,45,733.9624,4.532618 +0.6598747,90,74.41126,5.236416 +0.6534484,33,614.6466,4.398455 +0.8005183,24,76.41495,4.570226 +0.8149166,73,807.8775,5.343885 +0.6109188,96,881.563,5.117026 +0.5833846,73,947.8851,4.874815 +0.8332582,88,968.2539,5.518672 +0.6754794,51,86.20849,4.835891 +0.8493183,44,524.7134,5.098639 +0.8793586,56,342.3730,5.390078 +0.9408401,71,467.3872,5.848698 +0.8204796,62,735.2938,5.247582 +0.5961426,44,397.1915,4.521413 +0.9433597,94,329.7532,6.065443 +0.7392313,68,959.699,5.111895 +0.7280047,44,253.7937,4.791354 +0.9357452,29,118.6147,5.291764 +0.5828571,12,498.9039,3.375103 +0.854744,96,453.3386,5.65804 +0.6149968,12,355.3678,3.444266 +0.7638173,54,969.4548,5.001912 +0.7476226,28,43.02059,4.604015 +0.850204,8,125.8630,3.741361 +0.9339542,93,395.239,5.985747 +0.7262818,57,318.2872,4.97424 +0.8771483,94,12.71455,6.793142 +0.8665523,10,839.1073,3.979023 +0.5291674,79,823.083,4.845809 +0.8461989,59,832.332,5.287621 +0.777691,78,744.0216,5.296929 +0.9102575,62,170.4963,5.642964 +0.8246145,85,441.5772,5.486911 +0.7071098,60,820.3086,4.956934 +0.764151,61,333.7483,5.108028 +0.5108066,80,644.122,4.827203 +0.7611696,16,294.2634,4.053159 +0.8603075,85,563.544,5.58912 +0.8424507,6,611.1168,3.395027 +0.6682346,29,18.91631,4.544126 +0.8095137,51,364.8527,5.093099 +0.7633285,38,899.6544,4.74209 +0.7597025,69,397.2478,5.181009 +0.5636095,68,83.49942,4.830507 +0.6316091,93,477.1815,5.135545 +0.6936116,17,552.0311,3.931617 +0.6651088,22,472.8825,4.091816 +0.6405015,26,806.6532,4.177675 +0.7669137,26,886.3107,4.457322 +0.5879523,43,646.7016,4.485114 +0.6280889,46,774.7226,4.608213 +0.5473221,16,613.2056,3.574369 +0.7583959,54,624.1828,4.994282 +0.7935764,27,411.9446,4.567327 +0.6500053,78,147.9928,5.072065 +0.7342936,74,691.8988,5.164618 +0.6859192,72,91.85724,5.113456 +0.8017832,38,38.24381,5.052178 +0.7350069,90,887.2783,5.299267 +0.5002206,82,194.0412,4.837904 +0.7533237,28,614.7288,4.48545 +0.6214808,73,677.9877,4.941362 +0.6034381,66,904.2544,4.834818 +0.6045959,2,877.1838,1.202471 +0.9191417,39,669.9381,5.300754 +0.6090986,15,6.147124,4.030793 +0.728691,100,992.5201,5.357287 +0.5803494,68,749.7505,4.818952 +0.918249,54,720.6098,5.51828 +0.5866335,42,368.2729,4.46873 +0.6226366,31,350.1711,4.293452 +0.7953375,27,164.7003,4.599415 +0.9233556,20,545.3525,4.841628 +0.693924,97,812.52,5.270879 +0.937212,74,26.53409,6.523377 +0.6805653,66,47.1862,5.100028 +0.7598593,85,643.3909,5.317449 +0.8058038,66,761.6447,5.250769 +0.8822559,54,532.8792,5.361971 +0.614166,33,678.061,4.322546 +0.5167548,13,344.9084,3.321401 +0.737005,56,5.424758,6.144477 +0.629088,3,598.6654,1.901919 +0.7769968,90,932.9398,5.390308 +0.6373748,34,936.7224,4.388537 +0.6587434,3,926.8075,1.980018 +0.5993432,94,95.931,5.129989 +0.5982387,29,182.5984,4.201114 +0.751724,11,552.4189,3.684922 +0.9073577,62,482.2382,5.567918 +0.8150025,43,122.7201,5.036162 +0.9243253,80,255.6612,5.857814 +0.6357316,58,495.1672,4.800787 +0.6556389,55,670.6358,4.795017 +0.5861568,55,27.15277,4.798386 +0.5978707,90,24.57173,5.221317 +0.6896733,96,195.3440,5.286647 +0.7350595,10,527.6045,3.550931 +0.6093675,12,663.3941,3.429223 +0.9398014,83,857.6633,5.922471 +0.7034168,87,443.1984,5.22213 +0.8345302,96,179.5248,5.641706 +0.5045654,19,171.2933,3.657253 +0.620858,27,380.0845,4.17572 +0.7262354,41,629.6416,4.717633 +0.7868302,46,629.6635,4.946523 +0.5429665,45,958.0298,4.441479 +0.8342748,98,286.7754,5.626783 +0.8041123,3,250.152,2.447191 +0.9403823,19,121.3608,4.999848 +0.7703869,74,891.5093,5.241131 +0.6782789,68,560.84,4.994993 +0.7609106,83,106.6299,5.379529 +0.7128542,66,300.9281,5.053566 +0.7754385,59,752.3254,5.095663 +0.6046017,21,642.2645,3.927618 +0.8529898,27,139.1238,4.798382 +0.636852,89,561.0196,5.111686 +0.9056183,86,387.1032,5.785767 +0.8224681,98,77.91344,5.710191 +0.5523867,13,804.8892,3.388849 +0.8291812,27,953.4762,4.661662 +0.8177408,34,269.3261,4.826065 +0.7287865,84,327.9159,5.25608 +0.8268878,29,43.29403,4.896835 +0.8671857,63,838.8865,5.402451 +0.8206525,53,195.2608,5.177668 +0.885049,98,626.2624,5.76788 +0.8990428,17,665.0439,4.577079 +0.6184093,100,463.2699,5.16428 +0.6138274,89,98.59672,5.11673 +0.8989895,91,652.5609,5.774916 +0.9167108,2,451.0968,2.454734 +0.6440376,3,173.423,1.945308 +0.5069269,8,320.9178,2.808423 +0.8790291,26,308.1264,4.833917 +0.817952,64,604.5596,5.266006 +0.7055887,5,673.2377,2.751103 +0.5783787,47,488.5517,4.539385 +0.6382853,9,577.6296,3.211400 +0.7494703,97,843.769,5.381327 +0.928212,21,92.71302,5.017997 +0.8945758,52,541.9428,5.386425 +0.9273533,29,110.0864,5.241252 +0.8712363,22,733.1957,4.654638 +0.681578,15,609.8606,3.792997 +0.9367158,23,38.28047,5.357522 +0.6860431,23,526.7873,4.172916 +0.946944,59,935.9354,5.751069 +0.8369122,62,745.5164,5.295105 +0.6243354,12,113.3691,3.479315 +0.6961065,17,401.2276,3.940114 +0.7622478,63,32.24591,5.361083 +0.6641784,83,513.3596,5.112256 +0.8703236,94,373.651,5.703827 +0.804767,42,894.5125,4.922929 +0.9440183,8,589.8074,4.246075 +0.6568347,90,353.4818,5.162083 +0.6973254,49,536.6094,4.792459 +0.6027091,22,107.0788,3.987613 +0.8687902,8,406.4523,3.792343 +0.6808716,68,779.8336,4.996458 +0.8583502,77,543.5237,5.51734 +0.9003844,71,810.7064,5.613159 +0.6359577,39,653.3212,4.496185 +0.7515497,45,191.9571,4.87259 +0.8712656,28,769.8281,4.838561 +0.6389448,85,906.1354,5.078503 +0.8614109,75,455.1657,5.51486 +0.5651436,48,913.2336,4.529435 +0.7610586,36,14.70605,5.143973 +0.8849197,17,692.9311,4.509625 +0.5267559,97,238.4357,5.000668 +0.8903445,65,446.8721,5.526908 +0.8770817,38,611.0206,5.090063 +0.8014531,67,382.1654,5.264014 +0.8535349,37,465.0802,4.989573 +0.5623505,16,46.12436,3.645094 +0.5837253,64,787.677,4.779464 +0.723658,50,863.5468,4.857386 +0.8564433,31,155.9212,4.911108 +0.9016261,37,59.11041,5.373747 +0.7303029,86,781.0103,5.259658 +0.7005043,98,556.3923,5.295225 +0.7180099,50,367.8436,4.856627 +0.9047978,22,993.9773,4.801455 +0.9126542,43,635.5784,5.335726 +0.7540421,2,224.3753,1.645104 +0.6360051,35,219.6251,4.424294 +0.8953461,53,753.7426,5.395435 +0.6365136,59,401.6807,4.817458 +0.928798,33,286.4699,5.268117 +0.9313734,89,13.00577,7.330162 +0.6127697,76,716.6624,4.955088 +0.7783512,32,544.107,4.654195 +0.8174788,20,838.73,4.389137 +0.8821462,49,274.2839,5.317271 +0.8402305,17,112.4692,4.387457 +0.7712608,36,101.398,4.78705 +0.71034,76,598.5716,5.136129 +0.5360852,35,592.9235,4.230668 +0.6590919,31,385.5477,4.36415 +0.9290205,86,167.1354,5.972936 +0.764866,11,895.893,3.718443 +0.8687183,76,210.8759,5.585765 +0.5457105,93,738.9931,4.990496 +0.5768204,27,113.9398,4.109705 +0.6897985,28,949.4001,4.338094 +0.7089148,99,806.9645,5.313572 +0.8057506,75,85.7964,5.453375 +0.8763766,4,506.4466,3.116303 +0.7624966,17,586.6706,4.099870 +0.939108,20,231.2577,4.979989 +0.5127664,27,809.2373,3.972834 +0.8927624,97,938.547,5.78237 +0.932796,100,77.90402,6.235576 +0.8703162,49,4.716565,7.690852 +0.8896408,5,86.81217,3.474228 +0.9108773,32,432.7296,5.126532 +0.6567976,82,872.5033,5.084811 +0.7518393,44,331.6293,4.839539 +0.5124162,27,275.0050,3.97686 +0.8612289,60,830.469,5.348553 +0.6776792,99,277.8799,5.27316 +0.8132378,86,368.4492,5.46904 +0.8724424,21,273.9887,4.644203 +0.6566044,64,86.6614,4.967259 +0.7538613,57,913.709,5.018571 +0.7935557,91,850.0482,5.438334 +0.5375645,19,508.9865,3.712566 +0.661665,75,580.1227,5.033955 +0.7219753,29,630.5849,4.439406 +0.5929547,38,192.0488,4.410132 +0.5711968,33,901.1568,4.242911 +0.9488055,89,921.9764,6.028084 +0.525361,88,201.8421,4.930438 +0.6649385,20,472.2082,4.010333 +0.5811662,13,152.8478,3.457696 +0.6499022,49,988.2758,4.695065 +0.677492,61,96.13616,4.969053 +0.590887,55,668.5633,4.679121 +0.759376,56,66.90409,5.134457 +0.5629632,4,81.52404,2.133665 +0.9168937,2,602.7444,2.454823 +0.5553233,47,641.6247,4.497973 +0.8793849,54,14.76064,6.1751 +0.8370545,23,53.10852,4.706975 +0.9032895,80,243.7683,5.753165 +0.664133,13,472.0562,3.625055 +0.7629233,86,414.7802,5.341122 +0.8270712,100,770.9533,5.589796 +0.6800086,13,53.56172,3.715934 +0.7511743,14,774.9862,3.899366 +0.7024368,27,108.2775,4.378215 +0.6683634,88,632.6104,5.158543 +0.8007708,35,679.7018,4.779465 +0.748455,68,74.26819,5.238721 +0.7580406,40,830.2967,4.768767 +0.6867868,16,479.4874,3.863907 +0.6345033,24,263.9350,4.108572 +0.9007885,20,503.914,4.718357 +0.7528125,81,679.4688,5.26777 +0.722395,70,318.6385,5.114427 +0.6747357,84,329.5006,5.148071 +0.5546724,16,689.949,3.588185 +0.765431,96,635.3626,5.413237 +0.5213844,28,166.1044,4.028827 +0.9055309,60,129.6213,5.624808 +0.5553817,35,980.6865,4.262468 +0.7184163,69,195.7097,5.111313 +0.5517323,18,802.4538,3.689246 +0.8142866,16,192.9957,4.220405 +0.8211981,3,258.9440,2.515333 +0.7878401,40,134.0559,4.89549 +0.8678996,45,140.8237,5.2421 +0.8137556,53,902.648,5.115614 +0.8358842,84,525.9433,5.506658 +0.6276921,2,695.4127,1.262518 +0.5544768,23,608.4648,3.911448 +0.7520554,22,888.8863,4.285105 +0.8799472,80,81.06966,5.776644 +0.8867459,71,192.9068,5.616458 +0.7170759,68,781.6296,5.06764 +0.614698,86,809.9607,5.046108 +0.582755,27,459.0978,4.101695 +0.615332,92,544.057,5.098476 +0.6483776,30,593.08,4.312197 +0.5182611,100,523.3287,5.001569 +0.7584443,98,146.7554,5.465532 +0.5973876,44,322.7757,4.525969 +0.6765142,38,715.8464,4.554027 +0.858699,64,971.8032,5.381975 +0.8657619,41,119.6429,5.179392 +0.8041556,5,304.7493,3.062042 +0.8865578,21,170.7769,4.726991 +0.6362995,16,81.66367,3.784736 +0.8037017,23,319.2337,4.474112 +0.935349,58,92.10311,5.834605 +0.6449784,75,534.9246,5.004607 +0.933069,77,135.6208,5.9515 +0.6285273,30,718.4376,4.272305 +0.7745992,51,646.361,4.990833 +0.9437443,28,201.3896,5.2771 +0.5553825,35,84.21426,4.292884 +0.691553,44,561.0249,4.699133 +0.7143561,74,606.226,5.125183 +0.9150011,64,868.6043,5.61144 +0.8900851,64,962.8469,5.497329 +0.7627361,89,839.356,5.35164 +0.5916001,19,553.8613,3.815483 +0.9347603,73,40.74093,6.246896 +0.611588,53,781.641,4.686268 +0.8381018,12,577.5503,4.031852 +0.7502626,8,508.3221,3.376268 +0.9077881,81,485.243,5.747453 +0.6604791,57,138.3778,4.864026 +0.5258188,88,750.15,4.919488 +0.7342328,75,540.5984,5.177501 +0.8287273,9,225.8167,3.751461 +0.9260355,9,459.3007,4.212197 +0.6270818,49,708.4415,4.655174 +0.5232657,73,949.5204,4.777819 +0.7676596,92,877.2513,5.384683 +0.8505276,37,776.581,4.970133 +0.9067703,50,944.0097,5.403308 +0.6516737,4,969.1537,2.340581 +0.5532437,8,799.1578,2.9033 +0.6457954,35,483.9951,4.432293 +0.6798643,19,401.1541,4.00008 +0.8913252,67,246.9467,5.579023 +0.8724801,71,237.0759,5.545666 +0.611114,8,908.8348,3.028642 +0.6440464,100,711.3521,5.203401 +0.5185833,39,497.3006,4.288981 +0.5987208,71,553.9285,4.883768 +0.8946845,33,764.2923,5.057894 +0.7702922,34,891.2136,4.674803 +0.8601194,27,672.5945,4.770744 +0.899896,38,752.2178,5.183315 +0.705802,48,362.9667,4.800478 +0.9295424,13,589.0369,4.541681 +0.6700632,91,571.293,5.186371 +0.7856916,3,348.2827,2.375896 +0.5164215,12,683.4326,3.24084 +0.5999788,60,659.1165,4.760225 +0.7430723,82,309.4263,5.271649 +0.6201451,87,102.5936,5.110393 +0.7364097,8,993.3758,3.334495 +0.889546,33,426.7778,5.047535 +0.7509362,51,760.6958,4.93314 +0.9496297,54,579.4342,5.726496 +0.7411664,9,999.2333,3.463098 +0.7252757,38,63.7578,4.747703 +0.8886869,59,85.71176,5.588225 +0.6316102,77,617.5745,4.99833 +0.6470583,23,802.9517,4.088519 +0.7556348,18,182.8062,4.150528 +0.6398546,83,429.5057,5.070863 +0.8742836,47,71.49425,5.384054 +0.9243806,69,251.6256,5.760898 +0.8849305,76,462.3092,5.609127 +0.6190392,89,919.5525,5.076913 +0.7086243,74,75.11446,5.201722 +0.611401,100,285.8263,5.160096 +0.5438444,40,553.223,4.352044 +0.6381758,74,417.0031,4.985918 +0.5709375,60,606.9691,4.711341 +0.6656767,8,591.2158,3.155852 +0.6668269,77,838.8434,5.058611 +0.6259845,41,256.3687,4.527205 +0.6382646,92,531.2887,5.138163 +0.5790715,42,133.6754,4.471822 +0.5505636,44,53.26842,4.487644 +0.7873557,18,109.4958,4.261192 +0.9278928,34,803.4808,5.25132 +0.6506427,40,322.5025,4.55164 +0.636289,14,439.4037,3.632874 +0.5138037,17,541.6375,3.566823 +0.7490946,24,208.8606,4.370446 +0.5264396,24,176.6778,3.905171 +0.5862563,42,460.3187,4.46604 +0.8596417,57,917.1627,5.306278 +0.5490575,43,659.7477,4.417489 +0.8022336,2,611.0282,1.823408 +0.62453,71,712.8487,4.926108 +0.9447033,25,993.19,5.144499 +0.6984111,12,901.4631,3.626986 +0.8310141,56,298.2470,5.229228 +0.7551605,74,724.2943,5.209182 +0.9028476,48,179.1977,5.421774 +0.5226023,80,250.3484,4.853282 +0.6273796,15,284.8897,3.680715 +0.5101388,9,799.4037,2.937410 +0.8970192,84,201.2089,5.771734 +0.7243075,13,98.06574,3.799825 +0.6452252,9,875.8479,3.225854 +0.6703307,76,359.7317,5.066694 +0.7062982,29,334.3508,4.412282 +0.9362348,36,821.206,5.344544 +0.7755292,52,741.3775,5.005386 +0.7115857,52,936.8725,4.860348 +0.6793413,30,229.3854,4.388151 +0.6130655,31,660.8805,4.270066 +0.7027686,53,625.6065,4.860058 +0.6274324,12,824.7647,3.466937 +0.7963726,5,994.202,3.027711 +0.8681058,60,90.89657,5.501354 +0.6015066,36,175.3427,4.384748 +0.6447442,38,735.3686,4.491722 +0.6795336,70,721.4585,5.015486 +0.7723539,75,896.9785,5.254934 +0.9078405,81,367.5354,5.759166 +0.6164017,8,73.57849,3.064286 +0.8370671,27,296.2669,4.70746 +0.797849,35,873.8625,4.76869 +0.7180328,33,339.4326,4.540756 +0.6986307,40,390.1059,4.645778 +0.8793415,2,188.5154,2.204849 +0.7290775,37,189.5800,4.669984 +0.888677,11,590.1095,4.166872 +0.7031697,39,530.7594,4.631734 +0.6527077,20,552.1618,3.98336 +0.6907402,65,105.7456,5.039006 +0.8501955,84,714.7776,5.543259 +0.6880136,85,948.7286,5.166637 +0.9312943,36,281.7262,5.347377 +0.7972013,66,878.5866,5.226604 +0.8539718,31,911.604,4.849066 +0.705903,64,72.05808,5.091427 +0.6510286,57,730.2199,4.812274 +0.5237086,8,359.0167,2.843074 +0.8376964,23,287.2865,4.58462 +0.9112111,65,439.1747,5.621653 +0.7693145,21,654.116,4.293623 +0.7690674,6,60.02425,3.182115 +0.8479559,89,46.64795,5.840863 +0.7676322,73,254.1046,5.252961 +0.8763505,43,33.84927,5.508428 +0.6333285,91,779.6607,5.118105 +0.5761417,16,363.9524,3.632995 +0.5943329,67,953.5303,4.830177 +0.886703,87,255.9935,5.733959 +0.7707937,56,995.4612,5.044243 +0.8661679,83,71.95059,5.766113 +0.6604832,48,823.6246,4.70053 +0.6021952,66,988.3845,4.832242 +0.8521975,100,10.07298,6.88639 +0.9453367,53,680.6012,5.676072 +0.8578552,45,555.8434,5.142528 +0.7095984,97,328.0429,5.316697 +0.7875645,82,318.109,5.374691 +0.7601498,37,449.384,4.7226 +0.8680032,78,332.5949,5.575869 +0.8951179,40,810.7306,5.196888 +0.7677873,36,646.9899,4.715364 +0.6233557,40,133.7175,4.51815 +0.6236224,31,282.5713,4.298041 +0.7886229,45,889.8385,4.930839 +0.9113417,13,704.8534,4.424861 +0.8048366,83,912.4802,5.403325 +0.8876121,73,97.97675,5.714737 +0.6566803,93,847.2992,5.173379 +0.7361686,23,484.196,4.288003 +0.6405429,27,119.6107,4.237244 +0.8265951,70,771.4504,5.348116 +0.9063825,83,216.2709,5.801286 +0.7329975,51,823.1752,4.892481 +0.707735,32,819.8191,4.483689 +0.8063754,92,985.24,5.475727 +0.5671987,36,8.130045,4.622987 +0.5949391,74,888.767,4.904264 +0.8925676,86,470.7429,5.72116 +0.9111893,86,206.8652,5.852285 +0.868771,39,701.3807,5.074553 +0.6581741,57,851.498,4.824371 +0.7124499,5,309.5104,2.773728 +0.6160275,3,927.5913,1.867738 +0.9077186,87,515.2092,5.791704 +0.6809903,100,251.1352,5.289401 +0.8249242,51,644.1882,5.124642 +0.5007189,63,489.9313,4.634174 +0.5823059,34,995.1942,4.286632 +0.8764704,96,332.826,5.745166 +0.9279742,62,399.9774,5.684188 +0.6058798,51,161.1977,4.668592 +0.6692909,73,918.8406,5.024354 +0.8575137,59,187.4093,5.376903 +0.7945395,21,115.6826,4.410157 +0.5041056,70,246.2471,4.72404 +0.6811694,74,584.603,5.06067 +0.5047193,32,918.3743,4.101420 +0.62641,45,241.3786,4.601556 +0.9231728,95,684.2123,5.916083 +0.8906883,62,79.7124,5.646251 +0.6451526,81,823.5166,5.055857 +0.5843882,2,572.7973,1.152088 +0.9415851,71,805.8501,5.836022 +0.5650946,58,264.105,4.683902 +0.6622129,74,503.0527,5.02709 +0.5227259,6,595.5645,2.522141 +0.7577065,89,300.0612,5.362241 +0.6885727,58,634.3311,4.897823 +0.6582183,24,597.0416,4.148695 +0.7621428,54,4.677027,6.505218 +0.6300545,61,732.2958,4.824428 +0.717593,81,639.7483,5.194602 +0.8089698,37,624.8774,4.84518 +0.8819809,71,110.4756,5.653277 +0.6684123,12,487.6716,3.55997 +0.731306,31,689.6599,4.512494 +0.7449809,77,364.2442,5.22728 +0.8060204,30,394.1408,4.685581 +0.7902367,72,962.9857,5.268578 +0.6622077,91,992.0186,5.166785 +0.9423636,49,688.1545,5.601706 +0.6138338,28,490.9497,4.190094 +0.6153132,49,371.723,4.639831 +0.5919034,26,88.76052,4.115030 +0.6712624,15,954.8967,3.767796 +0.7370935,16,271.2719,3.991453 +0.8260105,53,607.0709,5.156222 +0.7039847,34,370.7429,4.531785 +0.6835765,63,263.0202,4.963496 +0.6792575,13,78.47224,3.694629 +0.6581926,70,940.6411,4.97371 +0.6659625,74,701.9212,5.030244 +0.943103,48,552.5686,5.599539 +0.8172628,97,241.8532,5.579464 +0.6088576,48,431.5509,4.610688 +0.9066039,89,915.7831,5.786188 +0.8887035,57,401.5979,5.434053 +0.6746067,59,188.1885,4.906911 +0.6599387,2,803.0654,1.350025 +0.9274535,2,764.3575,2.542979 +0.5526748,73,4.931036,5.369283 +0.685566,91,873.84,5.210347 +0.9252521,76,580.645,5.788709 +0.624663,50,56.6223,4.739905 +0.8917172,14,592.4602,4.385331 +0.8361517,93,147.1155,5.641347 +0.855131,5,697.6645,3.25786 +0.616702,63,697.7248,4.82506 +0.7131682,24,436.9471,4.270307 +0.5582717,56,141.712,4.656545 +0.8133165,99,914.7708,5.543544 +0.7850109,35,122.0806,4.790481 +0.6573884,93,362.8063,5.185657 +0.6709559,81,324.0598,5.115466 +0.675296,3,276.5954,2.028428 +0.744242,41,77.85827,4.838235 +0.8627685,88,504.0866,5.623501 +0.823486,31,633.4859,4.754332 +0.9152854,22,663.1988,4.862911 +0.889191,25,632.754,4.830601 +0.5320597,23,522.3386,3.870895 +0.8348069,4,353.5423,2.926616 +0.5506804,92,605.5381,4.991792 +0.7402406,91,248.1225,5.345439 +0.6606832,91,199.1307,5.191928 +0.6876065,25,697.7802,4.243088 +0.8396906,17,69.82845,4.424644 +0.8303857,99,915.3883,5.589564 +0.670205,52,201.1685,4.801504 +0.5688656,16,839.9051,3.615185 +0.6059302,57,884.9344,4.730385 +0.625943,13,421.1995,3.542213 +0.579431,11,698.7441,3.282398 +0.5107836,30,521.7842,4.059707 +0.7034076,59,806.1451,4.937422 +0.5348029,85,608.8314,4.909535 +0.8178558,52,767.8403,5.115544 +0.8021263,97,609.5435,5.508143 +0.6139589,32,718.7935,4.297009 +0.6199155,18,820.2245,3.822254 +0.8459365,22,737.9467,4.560176 +0.7804563,6,534.7507,3.173321 +0.5024161,35,483.8863,4.173427 +0.8757202,43,105.3846,5.269118 +0.5523042,3,511.2241,1.711368 +0.710674,44,138.0479,4.774404 +0.8872324,57,781.0616,5.410725 +0.6919563,13,743.3296,3.686274 +0.5287773,88,847.8963,4.923581 +0.6964034,68,916.3211,5.024973 +0.6097059,34,425.8519,4.341618 +0.6914693,5,342.4144,2.715573 +0.6908814,75,600.6959,5.088477 +0.7843654,22,908.377,4.369244 +0.6641371,52,390.4209,4.775486 +0.7738185,93,701.611,5.409122 +0.8668095,75,18.17850,6.218107 +0.8612623,84,728.9866,5.578543 +0.7244234,31,540.4559,4.499312 +0.8197609,4,359.5769,2.865559 +0.7343252,8,199.2936,3.341473 +0.6836545,55,307.1725,4.859945 +0.8095471,62,373.0194,5.23192 +0.7809187,81,376.8042,5.344588 +0.7497668,97,103.3747,5.465082 +0.9281159,54,946.8552,5.567694 +0.7009217,95,200.3139,5.300944 +0.5690716,17,188.3412,3.680089 +0.7616844,55,650.7446,5.014634 +0.7634251,52,850.2973,4.974944 +0.6935619,21,385.6687,4.116289 +0.570187,27,798.2554,4.075779 +0.8573198,35,201.5977,4.991557 +0.9254133,3,227.7771,3.100818 +0.6926173,80,169.8465,5.169298 +0.7957502,80,579.6955,5.362447 +0.8909846,60,580.5683,5.467522 +0.6101913,7,739.8612,2.885962 +0.9292679,60,774.9304,5.648684 +0.6020853,83,329.8084,5.008931 +0.8730834,90,975.1034,5.659242 +0.615229,29,780.1903,4.218847 +0.6368305,62,272.5524,4.861233 +0.785301,88,625.0687,5.400485 +0.7612865,62,271.0423,5.119176 +0.6491867,8,449.3793,3.117950 +0.7028936,21,964.8851,4.130015 +0.7351485,36,435.3573,4.643088 +0.5901236,54,682.5866,4.66379 +0.8711818,7,971.5228,3.668632 +0.7885463,27,710.0058,4.545948 +0.8615259,27,922.5975,4.772005 +0.9423586,100,857.2488,6.056786 +0.5641551,45,95.40686,4.508179 +0.5478364,32,717.8125,4.177136 +0.9463165,16,838.3264,4.827952 +0.6402324,83,670.1578,5.066309 +0.8372235,89,450.2324,5.553761 +0.9247225,92,559.3225,5.910356 +0.8252188,14,982.6037,4.116096 +0.7574355,58,76.46756,5.140588 +0.641243,6,230.5134,2.795860 +0.5718324,66,218.8287,4.79571 +0.8140738,93,464.7936,5.51726 +0.9040285,7,963.9252,3.83736 +0.9163233,29,109.8488,5.171177 +0.8748685,10,834.4159,4.015456 +0.879919,59,813.5775,5.404823 +0.7757908,51,24.82199,5.310636 +0.7253728,87,268.653,5.279343 +0.7804497,47,914.5564,4.941718 +0.8855489,99,398.2152,5.791743 +0.6244977,39,690.1232,4.47439 +0.7809398,7,858.4253,3.331407 +0.9274042,80,869.2504,5.823213 +0.6230907,68,340.9755,4.900364 +0.7848126,79,316.7394,5.342187 +0.8068917,87,468.6103,5.45299 +0.8530915,95,969.5945,5.628566 +0.7027934,73,539.2994,5.093997 +0.8731742,84,621.7372,5.623118 +0.7634371,11,181.9686,3.733192 +0.6286905,42,288.0719,4.549231 +0.8355486,81,770.2646,5.473221 +0.7263397,96,641.287,5.329899 +0.7291552,22,869.557,4.22971 +0.7014426,13,170.1686,3.725237 +0.568906,9,932.683,3.058732 +0.6805077,21,636.6685,4.083097 +0.8519636,19,719.8393,4.465273 +0.5840272,10,293.2955,3.201459 +0.9297056,42,307.3728,5.441351 +0.8996739,11,116.8909,4.276207 +0.7365314,67,154.0723,5.141475 +0.763537,20,855.483,4.236114 +0.9162934,13,583.4637,4.456551 +0.7383305,87,578.0058,5.288548 +0.6220495,76,653.0012,4.971777 +0.6959088,17,204.1746,3.949512 +0.9408439,64,526.8199,5.776257 +0.9072844,39,816.4094,5.235457 +0.614806,36,866.7964,4.392034 +0.8616143,15,538.4074,4.31235 +0.5916647,82,276.8439,4.985187 +0.6381437,56,308.9643,4.785542 +0.6102399,84,288.0863,5.033928 +0.881096,65,423.3302,5.491607 +0.8805683,77,63.34668,5.801957 +0.8317284,24,465.7188,4.587363 +0.938735,16,346.6328,4.786943 +0.7878217,76,601.5734,5.306758 +0.8145564,100,76.89838,5.701038 +0.8641405,21,465.8502,4.597313 +0.9193547,50,890.4468,5.467787 +0.7352061,62,621.5478,5.042233 +0.875424,97,663.1315,5.724161 +0.5947927,15,437.6885,3.610047 +0.9293856,42,154.1849,5.489918 +0.8981893,100,195.0101,5.895842 +0.7722383,39,397.162,4.794676 +0.9468243,2,427.845,2.741961 +0.7672563,5,64.92349,2.969334 +0.753621,75,98.68655,5.295252 +0.7196577,37,662.6364,4.62432 +0.6445426,69,400.8762,4.947273 +0.621717,58,797.6387,4.77164 +0.754107,15,637.9203,3.969023 +0.7000804,99,874.8527,5.295806 +0.6727205,31,348.9427,4.393295 +0.7419021,51,307.5882,4.928106 +0.9111804,26,953.7102,4.960184 +0.6518057,68,78.44112,5.009199 +0.7369495,90,950.977,5.302565 +0.5943179,38,567.3262,4.399971 +0.9148237,17,146.5165,4.716318 +0.5039681,13,962.0642,3.293958 +0.8940384,66,260.9585,5.577167 +0.6596946,18,58.33929,3.961345 +0.7745604,80,873.7772,5.304947 +0.5579154,44,577.4417,4.451439 +0.6792655,79,305.888,5.114813 +0.7721706,74,725.1806,5.247874 +0.8730904,27,452.3935,4.827657 +0.8668253,43,479.2732,5.145368 +0.9243933,68,715.7662,5.70527 +0.8697712,45,759.5009,5.179335 +0.5704939,24,771.9525,3.976776 +0.849549,21,171.7464,4.57335 +0.7153914,68,756.1855,5.064555 +0.7469934,89,37.00684,5.545569 +0.8980766,93,735.0168,5.782137 +0.6740698,15,908.684,3.774217 +0.7262363,18,196.8211,4.073023 +0.7726955,93,825.9488,5.404193 +0.7877387,57,83.19955,5.202352 +0.5402169,35,836.5996,4.236559 +0.647406,92,696.285,5.15123 +0.6369996,43,600.33,4.574637 +0.5011999,34,536.5494,4.147083 +0.5253697,34,959.3483,4.186866 +0.6654399,10,953.6924,3.376122 +0.5754832,59,82.33117,4.746022 +0.6149122,12,758.6291,3.44049 +0.7273927,5,827.2032,2.811743 +0.765783,4,480.0208,2.671068 +0.8026067,20,628.1018,4.346873 +0.6688459,16,552.1669,3.822802 +0.654652,65,429.9494,4.921309 +0.5930605,54,299.062,4.676825 +0.91803,98,475.8612,5.921616 +0.8586014,94,822.9594,5.641858 +0.8724855,40,320.3798,5.126823 +0.9115961,67,663.3112,5.630971 +0.6378116,67,41.66062,5.02444 +0.783027,17,444.7541,4.159232 +0.8044376,26,517.2797,4.564801 +0.884418,84,946.382,5.656019 +0.9450776,82,74.40857,6.2069 +0.922469,81,659.5106,5.811031 +0.7723949,73,576.8139,5.242505 +0.914753,7,951.6982,3.902467 +0.808698,53,628.3094,5.106761 +0.785287,4,458.7135,2.737001 +0.6806215,13,703.8973,3.660244 +0.8762955,72,590.0658,5.53288 +0.8162853,79,92.18472,5.514161 +0.5399384,14,760.7746,3.434936 +0.724187,81,366.0025,5.218172 +0.5878947,23,272.8676,3.979876 +0.6592433,83,684.7305,5.099926 +0.886695,15,846.1366,4.414048 +0.7518114,65,513.9724,5.11545 +0.9269379,97,254.9159,5.999051 +0.7133172,82,926.9479,5.190505 +0.7594595,8,51.29232,3.464126 +0.8804678,52,914.019,5.318195 +0.5581051,54,949.4543,4.607886 +0.7872128,50,176.9121,5.045582 +0.7148681,29,874.4857,4.420948 +0.5074475,99,315.6612,4.981299 +0.6011498,70,222.744,4.89042 +0.8461398,49,937.784,5.155603 +0.9156136,74,311.1483,5.746345 +0.8033553,5,645.5019,3.053856 +0.6536788,98,629.0644,5.207469 +0.6301262,28,942.7225,4.217727 +0.871035,28,588.5174,4.841785 +0.9431953,11,805.0258,4.504676 +0.7250134,37,667.4511,4.636032 +0.8318205,86,759.111,5.502966 +0.7024738,45,490.5817,4.740243 +0.8091045,40,202.2661,4.934256 +0.6403498,12,429.5813,3.497927 +0.9449746,23,50.44319,5.349677 +0.851621,98,259.8235,5.685683 +0.9016514,15,42.46861,4.69127 +0.5920015,28,439.8243,4.149594 +0.6072063,3,576.5894,1.845912 +0.9052984,24,276.0850,4.899321 +0.6634726,92,703.5221,5.179664 +0.7561353,16,380.4236,4.035749 +0.8122183,94,804.0761,5.508063 +0.8418656,60,978.833,5.283574 +0.6981374,5,387.5784,2.732931 +0.5241897,21,733.9929,3.775666 +0.6772153,90,38.5611,5.353059 +0.6846175,9,523.6271,3.320686 +0.8614306,19,100.2818,4.57258 +0.9212194,65,524.0826,5.667082 +0.736799,48,376.7794,4.867054 +0.775878,51,470.2745,4.999156 +0.94356,27,448.0736,5.20886 +0.5971862,18,325.373,3.781982 +0.8788234,2,197.9009,2.201285 +0.7207136,56,182.7896,4.966495 +0.8813179,57,305.8846,5.41493 +0.6516088,44,977.5808,4.616521 +0.9432949,83,632.2853,5.954806 +0.8991265,89,533.6602,5.76696 +0.8716255,37,648.0715,5.048531 +0.5811219,78,61.75932,4.982568 +0.8066535,63,375.9281,5.235102 +0.6826185,95,692.657,5.2371 +0.9434476,75,200.0213,5.960525 +0.9371716,19,309.1242,4.912451 +0.6332529,77,912.1464,4.998099 +0.8121484,83,763.5391,5.42491 +0.8215588,72,196.3495,5.398243 +0.8692113,67,150.1000,5.527059 +0.9309966,66,598.433,5.728737 +0.8617159,3,323.4457,2.697052 +0.9094263,53,69.54,5.657197 +0.627946,100,53.37154,5.273825 +0.5469653,9,801.0173,3.013104 +0.9056166,76,348.6382,5.709042 +0.9144018,46,166.2865,5.457833 +0.7024664,26,991.9227,4.305153 +0.5906725,59,693.7827,4.731336 +0.9257523,32,898.1296,5.193483 +0.65419,10,994.8087,3.350149 +0.573937,57,11.15804,4.950549 +0.8722816,12,834.003,4.163117 +0.6104388,69,857.7779,4.879681 +0.7395572,22,625.7083,4.257045 +0.9465412,34,400.3912,5.400517 +0.889617,20,67.53875,4.789287 +0.6603941,62,557.3134,4.894162 +0.6572997,72,275.2044,5.008766 +0.6317894,61,893.6425,4.82618 +0.8166771,23,925.1903,4.497861 +0.7286248,2,555.7641,1.557043 +0.5152166,94,960.7927,4.949714 +0.9101605,61,986.4156,5.553379 +0.6866718,89,327.3256,5.211781 +0.8399551,77,168.6181,5.511889 +0.6353491,11,670.0163,3.401654 +0.853916,50,636.4847,5.201295 +0.8817695,88,767.3826,5.680463 +0.7185712,51,241.4021,4.882724 +0.770894,12,679.0355,3.816384 +0.9098048,72,985.2333,5.661611 +0.7218967,37,816.4549,4.627383 +0.7243346,61,997.2886,5.002563 +0.6719135,71,854.4393,5.009869 +0.8973335,85,484.1437,5.732463 +0.7554376,48,525.1413,4.903844 +0.9430205,70,144.7852,5.949187 +0.5493725,55,24.62404,4.720334 +0.5971568,6,909.9559,2.686758 +0.5690979,11,348.2237,3.263709 +0.7511994,95,182.5334,5.413766 +0.7210895,57,765.5559,4.949078 +0.8161127,3,732.3479,2.489221 +0.8336693,15,791.3677,4.204955 +0.8948794,18,254.5316,4.625170 +0.6632123,98,92.93594,5.287683 +0.8910968,56,3.694522,9.14612 +0.6376692,36,989.8612,4.434143 +0.80947,80,114.0895,5.478967 +0.82957,24,224.7908,4.599062 +0.8977277,50,151.2525,5.440728 +0.8022287,100,632.9642,5.528033 +0.7857295,10,423.1267,3.696796 +0.7545248,86,527.6158,5.317099 +0.6009039,81,487.6485,4.984334 +0.6896002,59,438.7283,4.917154 +0.6974143,13,814.5804,3.698697 +0.7301658,70,278.3712,5.134808 +0.6591984,4,657.8318,2.360831 +0.7862776,80,954.3117,5.331615 +0.8580173,76,922.4202,5.496869 +0.7225116,83,660.0493,5.22118 +0.6513679,23,295.4721,4.105703 +0.8454044,52,928.4528,5.195344 +0.7959045,85,906.7124,5.397084 +0.731706,80,590.0431,5.216045 +0.7256962,76,36.67469,5.365805 +0.6209987,91,219.8982,5.116044 +0.7788926,92,471.59,5.421277 +0.9395612,67,773.8309,5.785787 +0.5712265,40,617.832,4.399043 +0.8177507,36,918.277,4.845297 +0.5308056,7,784.1608,2.711805 +0.9239735,91,592.1715,5.897353 +0.6734823,5,703.1057,2.665332 +0.552545,50,9.700298,4.805741 +0.8571885,61,401.3484,5.362952 +0.8276853,100,722.3954,5.592684 +0.78248,79,226.7434,5.349608 +0.7540784,70,289.0356,5.186986 +0.679809,84,328.1678,5.157819 +0.5346721,5,321.7632,2.336343 +0.5046181,10,800.9464,3.034873 +0.6086207,41,363.4659,4.489845 +0.9056507,51,45.66387,5.714624 +0.757739,92,34.72594,5.618443 +0.7988586,13,563.46,3.971763 +0.6246819,98,911.8113,5.154245 +0.9473038,50,313.7374,5.683982 +0.8610659,43,569.1981,5.120719 +0.9211183,50,72.18092,5.677973 +0.6910641,44,79.55915,4.761997 +0.8947933,94,199.2544,5.837905 +0.6185201,93,777.6178,5.108263 +0.943615,39,746.2719,5.454103 +0.7002987,96,988.1737,5.273948 +0.7553033,39,915.4639,4.742379 +0.7679916,50,737.3042,4.958796 +0.6890029,94,907.0683,5.238912 +0.6199692,74,986.7426,4.946051 +0.6411281,94,818.5881,5.153933 +0.8464514,65,70.51132,5.514609 +0.6060643,92,352.4973,5.088319 +0.5031575,80,710.7902,4.814834 +0.5938577,14,609.6362,3.542741 +0.5328757,73,26.24858,4.894656 +0.865526,20,873.1708,4.555331 +0.7964953,62,272.376,5.207187 +0.7383672,76,876.4028,5.189204 +0.7729914,15,22.17502,4.243482 +0.9011562,48,287.6424,5.383655 +0.8172952,52,437.9903,5.124289 +0.5405907,22,802.478,3.846356 +0.6312621,7,216.3909,2.94054 +0.8226957,52,804.0583,5.128694 +0.885333,73,13.19686,6.600686 +0.7457342,60,609.2144,5.041968 +0.6578178,44,288.0032,4.641378 +0.83535,98,131.3518,5.685504 +0.8930805,88,976.9815,5.719899 +0.9396818,36,611.7228,5.374934 +0.777755,41,954.446,4.833966 +0.7981147,97,369.9938,5.510893 +0.944999,93,954.528,6.027065 +0.6157446,41,907.7825,4.495908 +0.7380916,76,861.9726,5.188795 +0.839211,68,23.80187,5.830786 +0.8532856,89,262.6102,5.625921 +0.6775974,17,292.3724,3.901788 +0.5828361,39,703.1539,4.39878 +0.8850796,24,198.9660,4.816882 +0.5914885,3,181.9281,1.809612 +0.5142923,5,830.6914,2.289293 +0.6603836,44,766.019,4.634749 +0.7912155,30,894.1168,4.632969 +0.7526184,71,153.6191,5.221186 +0.9332683,65,964.548,5.720877 +0.8309404,85,873.4239,5.490343 +0.625892,74,27.07511,5.129885 +0.5828644,56,693.3597,4.678749 +0.5136066,79,925.8308,4.820971 +0.8330586,80,19.34037,6.035081 +0.7008366,51,404.9684,4.833525 +0.8843272,91,152.3932,5.796872 +0.9225516,25,667.9643,5.000335 +0.8791967,66,828.0534,5.477954 +0.5186196,24,709.4802,3.882467 +0.751543,9,311.5484,3.49974 +0.7436109,27,477.438,4.435924 +0.6807055,87,495.5713,5.176597 +0.7510662,82,965.3252,5.268203 +0.7277244,57,502.561,4.968428 +0.9410907,91,166.2730,6.091714 +0.6792364,33,490.5878,4.452396 +0.7848101,10,12.64165,4.03457 +0.942731,30,198.6954,5.320442 +0.7519409,59,846.5128,5.039781 +0.5020636,78,693.9159,4.794566 +0.7176895,90,868.5585,5.264436 +0.5767474,15,14.59399,3.713746 +0.5775503,39,391.2338,4.393338 +0.6690003,27,870.2484,4.265722 +0.7235208,94,69.99504,5.418828 +0.8928368,32,934.5482,5.024385 +0.6799028,62,244.2493,4.946376 +0.5802962,44,262.7254,4.497853 +0.5605126,43,595.6193,4.437684 +0.9367013,51,894.6887,5.583736 +0.5337638,21,15.99230,3.907597 +0.5574367,40,687.904,4.374468 +0.8259194,30,937.608,4.73232 +0.8714596,38,471.542,5.07393 +0.6665597,49,399.8029,4.735126 +0.8192291,35,93.40303,4.915221 +0.8688831,56,259.5373,5.362454 +0.6838603,98,570.7892,5.263374 +0.6465024,93,946.6553,5.154663 +0.8457297,5,633.2096,3.217746 +0.6922344,70,457.7957,5.045673 +0.7149555,84,650.9649,5.214478 +0.6031059,75,638.7035,4.929953 +0.7407085,80,553.5425,5.236097 +0.5007247,9,785.852,2.918291 +0.5881926,2,575.2952,1.161514 +0.6842944,85,56.74425,5.275968 +0.6365547,8,593.1905,3.087423 +0.5593403,10,597.9742,3.146675 +0.6665544,2,261.012,1.370363 +0.5226974,14,860.4175,3.401291 +0.9373338,70,166.3507,5.890187 +0.5455807,16,558.8445,3.571325 +0.6551681,51,253.6940,4.751319 +0.5161405,19,33.30902,3.718792 +0.9238053,84,580.7067,5.845623 +0.86948,94,90.00178,5.827859 +0.6780455,11,784.5237,3.497723 +0.9178672,99,456.9874,5.928964 +0.767568,71,23.22718,5.569045 +0.7954395,72,365.8755,5.299927 +0.8839859,79,733.2088,5.618772 +0.7608575,89,448.5921,5.358179 +0.8567473,65,858.2716,5.387898 +0.8996104,56,643.5015,5.455172 +0.7666284,12,47.31088,3.893322 +0.6470064,93,699.9194,5.158058 +0.5875236,53,926.724,4.643525 +0.8953835,74,992.946,5.615506 +0.9201886,9,970.5459,4.163660 +0.601927,10,259.6253,3.240734 +0.647429,76,942.9703,5.013432 +0.8213445,33,641.5921,4.794998 +0.5490222,33,105.5942,4.225879 +0.5776677,67,403.6322,4.808392 +0.8079034,87,427.1954,5.458135 +0.6253146,65,887.0287,4.861523 +0.6817373,76,748.7887,5.078027 +0.7258991,74,732.7329,5.146395 +0.9250114,9,157.7767,4.239061 +0.8528482,35,754.1407,4.937605 +0.8636093,24,789.116,4.691449 +0.6416303,18,107.3528,3.893581 +0.938607,30,188.2054,5.293022 +0.6183642,98,784.5568,5.144735 +0.626452,49,708.409,4.654031 +0.5033137,90,364.6996,4.904766 +0.6416498,69,686.6995,4.935888 +0.9439444,30,16.76117,6.17131 +0.6769998,61,91.14787,4.971445 +0.6099088,33,292.5247,4.322005 +0.8562472,61,175.4549,5.400586 +0.6554333,26,733.8006,4.208067 +0.6010223,16,940.5603,3.678439 +0.7840678,73,110.2884,5.345153 +0.8568647,97,348.6922,5.681597 +0.8782813,11,752.7111,4.115416 +0.865477,47,912.7237,5.191814 +0.7104252,95,328.1609,5.303922 +0.6518729,99,406.2813,5.21742 +0.8136264,40,904.949,4.911606 +0.6043372,47,902.7367,4.581187 +0.8121081,67,7.538333,6.513966 +0.6552225,23,532.8514,4.107702 +0.7357522,22,482.9446,4.250429 +0.5070191,82,821.2403,4.838449 +0.5782021,65,832.5791,4.781427 +0.6097488,47,86.14851,4.635193 +0.7171686,97,668.8119,5.318037 +0.644155,46,660.5386,4.63903 +0.7727673,44,22.80839,5.203142 +0.7922387,75,505.9924,5.311956 +0.664713,98,532.7728,5.229238 +0.5679516,46,992.4062,4.500924 +0.825774,10,281.0117,3.834293 +0.6083309,41,597.429,4.484862 +0.7737187,21,467.6578,4.309089 +0.7249439,60,598.5867,4.997216 +0.9095895,37,8.365455,6.77549 +0.5130474,48,40.46562,4.494295 +0.6051408,80,447.1557,4.983537 +0.8676191,75,629.6436,5.527589 +0.9364891,57,469.2977,5.674607 +0.6506647,93,569.1126,5.166729 +0.5027852,74,545.2522,4.757751 +0.5031346,98,162.6768,4.975135 +0.767055,50,183.3676,4.991531 +0.6801705,23,719.5443,4.157980 +0.9061154,72,553.1563,5.657693 +0.8591993,97,490.7379,5.676845 +0.6889985,44,681.4208,4.692018 +0.7125659,97,200.8339,5.33931 +0.6351567,29,301.1039,4.265337 +0.6566573,52,440.792,4.759479 +0.8159221,94,986.9704,5.514844 +0.6077678,22,101.6926,3.999549 +0.7839771,64,576.8159,5.178063 +0.6734601,31,395.1654,4.393173 +0.6060289,28,3.081892,5.121582 +0.6789768,96,181.166,5.268511 +0.787318,16,775.1314,4.11447 +0.9073888,41,497.7243,5.282086 +0.7638307,87,131.2056,5.403349 +0.6463511,71,445.6236,4.969812 +0.6726806,25,761.584,4.210960 +0.7649493,53,632.2372,4.995885 +0.683377,75,176.2011,5.102595 +0.890173,53,383.1089,5.39159 +0.5778118,60,604.8159,4.722957 +0.6290806,81,835.3322,5.027719 +0.709206,75,365.1975,5.133035 +0.7821182,50,921.8328,4.990793 +0.8249756,33,449.9177,4.812041 +0.9164308,22,483.9926,4.875823 +0.5126529,7,69.3751,2.686872 +0.7279297,76,849.3809,5.167721 +0.6243633,81,425.4841,5.026262 +0.6822903,74,903.373,5.058437 +0.7674061,16,381.5476,4.066042 +0.8044243,45,994.9932,4.971361 +0.8797448,14,812.4009,4.326156 +0.5983747,64,350.2122,4.811645 +0.8931191,100,605.8303,5.813613 +0.7759804,25,990.4158,4.44877 +0.933721,48,125.8175,5.638129 +0.567207,39,158.5426,4.386867 +0.6834433,24,595.2227,4.201662 +0.5842774,83,144.4095,4.996242 +0.6096163,44,3.666158,5.442746 +0.5520212,33,788.1983,4.209405 +0.8487187,75,775.0258,5.461002 +0.6442834,59,384.4282,4.832377 +0.8525898,44,852.7334,5.101296 +0.6793526,5,544.8316,2.681385 +0.7896053,57,702.1907,5.106904 +0.6347688,37,207.1742,4.467327 +0.9105013,73,298.8515,5.713738 +0.5801921,61,194.1294,4.753626 +0.5398654,14,623.2005,3.435302 +0.5295864,36,825.9626,4.241144 +0.6955647,90,532.2933,5.227428 +0.8752002,7,34.37197,3.840195 +0.5065717,86,99.36485,4.895701 +0.6540707,91,816.5146,5.153864 +0.7494457,27,333.2309,4.455773 +0.6942405,34,378.8255,4.510573 +0.6192505,85,514.0551,5.049568 +0.76549,25,642.7535,4.425212 +0.7574782,64,469.1908,5.118944 +0.5830214,21,552.903,3.886642 +0.8790609,79,159.6307,5.674371 +0.7176675,58,884.7081,4.953248 +0.6629143,8,245.0644,3.154845 +0.8564256,41,392.7764,5.078983 +0.5191748,37,388.5444,4.248730 +0.5063773,82,608.4596,4.838639 +0.6187086,74,342.2091,4.954258 +0.9265214,49,19.84399,6.272573 +0.7227158,30,941.4727,4.464846 +0.5720824,44,88.08165,4.508306 +0.7417212,36,856.798,4.650463 +0.6945709,16,973.5857,3.877503 +0.6787784,67,199.1884,5.00703 +0.6079792,2,14.28654,1.248295 +0.8160534,87,902.7546,5.464555 +0.903873,43,596.1851,5.293944 +0.726878,20,652.6108,4.146919 +0.6090511,26,822.7786,4.116546 +0.7854577,6,632.6326,3.188597 +0.6051804,75,622.2571,4.933685 +0.7918214,37,643.5305,4.797766 +0.5232566,75,325.5463,4.80398 +0.590876,66,73.06404,4.867022 +0.5937229,27,42.58453,4.187347 +0.8824875,45,931.0037,5.224986 +0.7059692,52,659.4332,4.851961 +0.6663572,11,289.1740,3.476953 +0.6661134,75,418.1281,5.046652 +0.810046,78,319.3538,5.398473 +0.5153034,94,370.1154,4.955019 +0.6629067,75,76.91591,5.107002 +0.7524684,35,669.101,4.656308 +0.8711363,64,313.9587,5.454808 +0.6956076,29,55.13885,4.465562 +0.7708426,83,192.2650,5.363472 +0.5723024,29,745.2273,4.139486 +0.9359758,76,180.2033,5.927152 +0.937121,95,945.2132,5.988315 +0.7236621,84,584.52,5.233591 +0.5644985,54,327.6738,4.625826 +0.830407,38,621.8328,4.928221 +0.7119581,31,183.4619,4.492153 +0.77285,82,784.9956,5.319325 +0.8722319,85,500.9015,5.633511 +0.6801105,92,42.34472,5.362335 +0.7211597,80,755.886,5.191064 +0.7343016,17,662.3988,4.026676 +0.6084402,33,173.8741,4.327899 +0.6186405,40,577.6662,4.484631 +0.703274,15,875.0299,3.841051 +0.9385632,22,803.663,5.007829 +0.5536499,6,140.929,2.596166 +0.5189601,36,365.0004,4.226444 +0.7964722,33,112.4292,4.783128 +0.8923196,89,282.4267,5.766261 +0.8477578,57,813.3298,5.268937 +0.7376255,52,39.59667,5.092456 +0.586504,72,325.709,4.879086 +0.9245973,96,220.5104,5.990943 +0.5904537,70,650.9535,4.858109 +0.6962348,91,53.84608,5.360867 +0.6472336,86,286.8350,5.116716 +0.5478403,45,891.3937,4.449943 +0.5916281,49,112.7873,4.621543 +0.9236192,10,256.5085,4.30158 +0.701771,76,931.1325,5.114423 +0.6455423,9,114.6123,3.244296 +0.629923,96,926.7514,5.148559 +0.9445545,39,672.0967,5.463624 +0.6736415,85,449.6175,5.148535 +0.6858955,81,783.2148,5.130515 +0.566487,9,551.4185,3.054829 +0.9085593,35,254.0737,5.200862 +0.6143065,90,329.5405,5.087921 +0.6999386,19,490.2705,4.043115 +0.6395809,8,600.4834,3.094362 +0.9093209,36,853.3224,5.188147 +0.894677,100,848.318,5.811673 +0.6063929,85,898.3364,5.023168 +0.6523595,50,416.7666,4.722509 +0.942245,14,171.8807,4.742298 +0.783326,95,113.6980,5.527098 +0.752282,7,408.8336,3.248984 +0.7136485,15,471.0845,3.869695 +0.6320827,32,848.5555,4.330415 +0.59958,93,236.7872,5.092203 +0.7906985,82,470.0474,5.37129 +0.7225906,97,847.8583,5.325918 +0.5733982,37,779.5725,4.339675 +0.9068659,11,322.7737,4.273226 +0.9381555,37,206.4804,5.433981 +0.534364,36,896.7656,4.249114 +0.6322029,54,652.9157,4.738431 +0.5673037,32,607.234,4.212482 +0.5158305,29,241.0641,4.044624 +0.782321,41,343.6444,4.861221 +0.8978933,55,113.9618,5.540612 +0.7566181,71,803.6087,5.182157 +0.945313,93,760.1445,6.035159 +0.7764446,66,690.4359,5.178624 +0.5382854,44,937.8568,4.415998 +0.780881,21,808.7842,4.322801 +0.7872955,43,753.639,4.895828 +0.8437686,53,714.1587,5.207365 +0.6116142,97,820.0253,5.125958 +0.531347,2,33.00914,1.036805 +0.7165558,8,633.2616,3.283039 +0.705623,19,384.8555,4.058654 +0.8560466,41,376.2472,5.078905 +0.6344361,85,632.7684,5.073645 +0.5901747,22,282.6403,3.945618 +0.56803,53,73.53232,4.653907 +0.8146113,27,671.1104,4.620696 +0.9163909,73,747.9496,5.708432 +0.6061526,14,542.7819,3.568411 +0.9093413,95,335.4416,5.875304 +0.6494762,46,759.3723,4.647989 +0.5640401,44,632.509,4.461494 +0.5354444,34,836.2228,4.204653 +0.5299268,77,846.4679,4.828092 +0.741827,22,130.2941,4.296245 +0.5115407,87,295.344,4.894967 +0.5978896,76,131.5230,4.959506 +0.8912814,18,205.5997,4.616479 +0.5576322,43,383.5691,4.435671 +0.8717212,40,583.6276,5.107255 +0.9161417,8,499.1547,4.040285 +0.6521386,11,822.9779,3.438228 +0.7737015,17,762.6271,4.127920 +0.892949,87,399.3925,5.736645 +0.5966038,55,689.611,4.688806 +0.6431161,52,447.0586,4.733828 +0.8306688,44,702.1389,5.034286 +0.6649262,57,359.9672,4.846758 +0.9363835,85,887.7069,5.914833 +0.7510024,81,339.8045,5.277932 +0.7902674,15,705.98,4.068516 +0.7636627,56,448.0598,5.038424 +0.8669564,5,680.0533,3.31205 +0.8059546,75,503.0968,5.3473 +0.6403063,92,962.566,5.136234 +0.504068,3,617.9877,1.598052 +0.9186635,36,724.4784,5.240142 +0.5795384,56,545.9165,4.67465 +0.8195587,78,414.402,5.416073 +0.7491724,3,281.5133,2.251189 +0.7093393,13,665.9633,3.728246 +0.9406897,81,43.65671,6.348394 +0.8862442,15,820.4643,4.412285 +0.9183536,71,279.5010,5.739535 +0.7329661,45,293.7233,4.8157 +0.9149706,82,822.9326,5.774923 +0.6399313,75,173.1958,5.018545 +0.631958,78,704.475,5.007022 +0.9347626,82,427.1829,5.906078 +0.9193079,36,111.4287,5.350532 +0.7909542,49,249.1747,5.025715 +0.7143558,60,471.2938,4.978527 +0.929284,32,846.1144,5.216052 +0.8400567,98,342.8071,5.636219 +0.5706936,59,468.7645,4.700182 +0.6783719,48,140.5919,4.769985 +0.7694423,73,842.9439,5.230134 +0.5215988,17,298.5005,3.584042 +0.7042262,23,46.45078,4.306447 +0.6135268,61,104.5767,4.834267 +0.852132,17,683.1779,4.376271 +0.6286326,72,801.0265,4.94254 +0.9114498,70,413.9069,5.674662 +0.505581,30,934.0287,4.048985 +0.619673,54,249.2989,4.727874 +0.9039804,73,662.0442,5.652103 +0.9322274,75,826.7649,5.810783 +0.591522,17,550.8919,3.716205 +0.5615105,9,563.2861,3.044287 +0.8861427,77,612.0575,5.614371 +0.9227275,36,804.7779,5.261032 +0.5201386,6,563.5901,2.516629 +0.5150667,4,153.7693,2.017103 +0.858887,88,335.1279,5.625131 +0.865161,91,507.115,5.653645 +0.866841,28,569.142,4.826175 +0.5914268,73,731.0933,4.889649 +0.7301672,3,171.8421,2.193633 +0.8695504,46,972.9767,5.190517 +0.8743281,94,423.1992,5.713268 +0.7259997,71,57.63515,5.243207 +0.8552598,42,51.79937,5.275407 +0.7262848,91,622.4001,5.293459 +0.5421301,43,124.8007,4.423924 +0.764653,64,923.3807,5.125733 +0.8748403,73,247.373,5.571079 +0.7803132,31,380.4862,4.640732 +0.6482601,87,772.2889,5.112482 +0.7241264,43,272.1837,4.76339 +0.7953848,44,365.2316,4.946676 +0.6285879,91,448.7414,5.11578 +0.6652861,50,710.149,4.741542 +0.6856344,64,916.419,4.960469 +0.7254825,75,709.546,5.155371 +0.6569148,90,891.1667,5.150444 +0.9032712,56,578.0589,5.474436 +0.8196123,55,916.5202,5.158029 +0.8457452,68,948.5464,5.382074 +0.7056631,3,931.2039,2.112567 +0.8282234,89,748.6638,5.515993 +0.87756,69,756.8942,5.503454 +0.5580487,53,79.27887,4.631497 +0.8726777,84,865.3341,5.614437 +0.6403862,31,668.2423,4.322197 +0.8492341,73,141.7500,5.519904 +0.5361932,8,651.2265,2.867713 +0.7613272,82,428.129,5.303809 +0.8569944,82,709.8302,5.548995 +0.8017937,16,509.0666,4.161160 +0.6910281,42,458.1705,4.665068 +0.9100806,53,834.6907,5.461124 +0.8269713,11,110.7436,3.955719 +0.7171317,89,540.2364,5.261772 +0.851661,82,487.6866,5.540841 +0.7891677,30,331.5015,4.642001 +0.734028,16,122.0367,4.004476 +0.5187802,87,429.9464,4.903341 +0.5150383,16,718.979,3.512412 +0.785768,69,194.4107,5.270155 +0.8033854,47,199.0244,5.038606 +0.830575,35,729.6996,4.865471 +0.8736411,70,28.33166,5.956989 +0.8876228,62,56.37586,5.704145 +0.7772246,81,880.699,5.319602 +0.8581031,86,744.6876,5.583367 +0.7385866,56,814.1746,4.972997 +0.7709235,35,958.7655,4.697881 +0.7025145,38,608.5902,4.608887 +0.6822772,59,741.9122,4.896537 +0.7546338,39,377.0911,4.752481 +0.7098272,6,688.9395,2.965107 +0.8007708,68,664.4748,5.260526 +0.5081478,97,957.1152,4.961489 +0.8871281,80,610.9077,5.64364 +0.83781,29,404.5329,4.756917 +0.8565457,33,929.6463,4.904385 +0.7858467,76,614.8492,5.301542 +0.7393295,48,304.2518,4.877567 +0.6288801,56,575.7861,4.760722 +0.5747567,36,525.0601,4.322172 +0.7241387,4,744.9875,2.540414 +0.5838607,84,98.96394,5.017925 +0.9088057,30,939.4672,5.053044 +0.8893571,65,764.4263,5.508868 +0.7718164,92,629.6235,5.398965 +0.7592003,69,639.9231,5.170893 +0.5349374,43,16.79663,4.529065 +0.8402495,32,594.5056,4.832209 +0.5243549,21,561.1883,3.776770 +0.7070809,73,203.5126,5.126286 +0.7444766,45,996.601,4.823829 +0.9452716,51,968.5641,5.64201 +0.8834646,43,410.5079,5.214212 +0.5125273,8,554.2188,2.818634 +0.7855098,34,142.7244,4.760065 +0.857309,8,134.2902,3.76904 +0.850575,12,800.5671,4.075296 +0.7062366,30,828.565,4.429344 +0.5672662,6,703.8213,2.619697 +0.6565083,83,495.8813,5.098745 +0.7695762,23,429.8266,4.373533 +0.8751504,83,411.2986,5.634882 +0.660651,31,384.3733,4.367338 +0.6552163,71,410.1236,4.987248 +0.5242741,35,810.4681,4.209141 +0.5429164,41,657.2765,4.369296 +0.5608511,52,487.3664,4.58715 +0.8849192,18,747.3227,4.554355 +0.6341058,77,491.0945,5.00518 +0.5528817,5,483.2663,2.376328 +0.7755186,45,909.177,4.897701 +0.7080204,18,922.128,4.011066 +0.5753103,67,379.1132,4.80507 +0.8938414,45,276.1014,5.306521 +0.9153011,100,561.4111,5.914729 +0.9400833,71,244.9699,5.881615 +0.5751929,57,696.4602,4.679055 +0.8627746,66,751.1318,5.420788 +0.7402069,86,120.3373,5.34467 +0.6009191,52,934.1773,4.652193 +0.5917567,18,435.2733,3.769131 +0.7928228,18,282.6634,4.243414 +0.7406228,67,601.0171,5.109815 +0.949789,27,680.853,5.248154 +0.7617935,81,297.537,5.306533 +0.8564567,77,376.8077,5.522382 +0.6577059,74,182.6144,5.040919 +0.9413392,90,90.77082,6.190444 +0.7485857,60,824.7695,5.044612 +0.8942623,86,116.7217,5.83402 +0.6324165,69,534.8945,4.921818 +0.8736767,78,480.7874,5.582686 +0.809562,7,161.7137,3.445533 +0.655178,80,209.5545,5.087967 +0.8126558,75,553.6373,5.363033 +0.587771,54,741.3041,4.659252 +0.7304708,43,140.2912,4.801626 +0.6784025,99,485.646,5.262685 +0.8679588,83,685.2886,5.594575 +0.8094056,2,901.409,1.852349 +0.6667788,32,766.4673,4.398906 +0.9003594,34,264.8389,5.13664 +0.5131864,4,594.7674,2.009264 +0.5324579,58,79.92974,4.652622 +0.6300037,79,10.07310,5.450494 +0.6228218,30,902.6635,4.260279 +0.513834,87,502.2924,4.89453 +0.7645673,2,991.632,1.678955 +0.936889,47,418.9952,5.551662 +0.8618376,87,241.7598,5.644262 +0.9409066,51,286.3327,5.654553 +0.8910533,13,177.1792,4.35247 +0.7814179,48,452.7033,4.969485 +0.7402419,49,378.8289,4.890003 +0.7814724,91,598.634,5.41494 +0.5207353,33,137.6379,4.16805 +0.8606041,76,509.892,5.517765 +0.8672457,46,857.1114,5.183842 +0.8916283,3,191.1671,2.867489 +0.9291234,61,362.7399,5.68471 +0.6128671,21,493.3128,3.945307 +0.9130023,44,433.433,5.364272 +0.5526918,40,501.2452,4.367895 +0.7100667,58,626.435,4.941089 +0.9485433,61,902.1765,5.78576 +0.7375008,100,552.7585,5.383109 +0.8843444,69,535.1516,5.537504 +0.7355137,24,294.9474,4.32874 +0.5849977,63,918.668,4.769115 +0.8148579,32,288.1865,4.769015 +0.6047379,95,20.06207,5.315901 +0.9387293,65,47.6271,6.128658 +0.6730278,29,226.6681,4.347534 +0.8536057,86,299.622,5.597219 +0.7039593,5,717.411,2.746449 +0.554576,51,501.231,4.561373 +0.5985519,33,49.17765,4.357975 +0.6332506,60,222.0821,4.834659 +0.5311171,3,505.9751,1.661199 +0.6073137,63,391.6986,4.814172 +0.6546051,47,328.4854,4.683347 +0.8600348,35,942.1334,4.959945 +0.6736388,16,170.3470,3.848083 +0.5197377,42,528.5444,4.350034 +0.5483864,2,8.982135,1.112816 +0.8866457,91,968.5747,5.716457 +0.9170833,95,720.5013,5.883273 +0.7270387,21,628.9166,4.188418 +0.812512,16,938.998,4.188589 +0.8316781,20,444.9295,4.442617 +0.9298217,20,866.0785,4.874826 +0.6134887,60,964.2135,4.78133 +0.7366226,7,319.7519,3.206178 +0.8077966,41,974.1164,4.9127 +0.6130327,56,385.8269,4.736513 +0.6378037,37,850.088,4.456746 +0.7848023,55,823.8128,5.067312 +0.936098,52,897.3047,5.592718 +0.5120613,27,467.5221,3.973342 +0.9193753,5,709.4038,3.609307 +0.8621582,83,262.4155,5.608882 +0.5685211,52,168.9039,4.614078 +0.6970322,80,225.7021,5.167406 +0.8347935,100,76.00698,5.769876 +0.8225406,8,344.3646,3.609568 +0.6941333,43,435.8167,4.690098 +0.7356296,30,710.7536,4.496393 +0.8811275,6,103.0200,3.609537 +0.6109929,48,400.577,4.615333 +0.596709,60,363.4187,4.760152 +0.6572946,5,962.1019,2.623233 +0.6103808,55,631.1443,4.713493 +0.668965,96,892.3117,5.21696 +0.7999518,32,495.2423,4.713714 +0.8338344,48,908.905,5.102972 +0.8567186,7,846.6076,3.605534 +0.7154963,95,187.0719,5.334038 +0.7108011,96,628.3475,5.29923 +0.6893275,25,734.6108,4.246437 +0.5740601,11,364.6629,3.273750 +0.8039917,73,244.864,5.346882 +0.8573021,48,634.51,5.183936 +0.8183101,23,760.4014,4.504651 +0.8641757,94,978.3002,5.657207 +0.6303905,70,604.3785,4.927486 +0.8699731,79,863.8185,5.564262 +0.915676,8,143.355,4.073357 +0.601142,35,441.2769,4.348688 +0.87388,28,333.7200,4.866511 +0.9196098,2,325.7931,2.48037 +0.7254358,13,522.0907,3.769571 +0.9131236,70,356.7704,5.689551 +0.7061301,40,507.9874,4.657943 +0.916107,7,935.9404,3.911256 +0.6185521,24,139.8068,4.088015 +0.6262447,20,876.2364,3.926877 +0.6291963,78,148.0490,5.032363 +0.632995,91,192.7662,5.141416 +0.5512401,96,922.5635,5.020761 +0.8395904,21,948.335,4.49903 +0.7737163,35,381.1151,4.717049 +0.5824825,67,367.2437,4.817619 +0.5647798,46,202.662,4.508791 +0.8834567,23,404.0992,4.750842 +0.5374452,15,541.5736,3.495868 +0.879485,45,87.82374,5.342633 +0.7248722,19,681.9091,4.098538 +0.911358,10,43.89693,4.374565 +0.7451762,77,521.6592,5.220066 +0.723452,87,31.2523,5.495526 +0.7343267,78,979.8097,5.197778 +0.8797457,62,689.5224,5.441123 +0.9355938,9,8.536315,5.395588 +0.8081898,70,899.6859,5.295606 +0.779309,60,532.5658,5.122267 +0.9343759,90,800.8648,5.941199 +0.9125067,53,544.4229,5.483064 +0.7631274,89,498.3332,5.361002 +0.7271626,57,193.7866,4.991599 +0.5656534,45,542.3173,4.482748 +0.7439162,33,548.8423,4.592949 +0.6730048,71,419.1757,5.0202 +0.8488092,75,929.485,5.458401 +0.7990472,58,914.4833,5.140082 +0.7150551,60,300.436,4.989065 +0.7738144,47,841.0965,4.926207 +0.8007912,20,803.401,4.339192 +0.551277,78,16.59874,5.049359 +0.8536064,53,5.278028,7.26772 +0.6086101,22,656.6184,3.975391 +0.7950185,92,725.3911,5.451677 +0.7759385,24,724.6639,4.418522 +0.7436127,80,136.5426,5.292482 +0.7023383,78,583.6222,5.138942 +0.7387789,13,893.3477,3.800216 +0.5355073,87,367.4723,4.931304 +0.5799598,32,907.9728,4.233542 +0.7931919,23,580.6845,4.433776 +0.9020383,59,611.7858,5.502789 +0.8865545,52,26.28821,5.827225 +0.9361958,74,762.0372,5.828598 +0.582067,75,54.81664,4.963057 +0.8257129,4,567.6277,2.886287 +0.8633863,3,134.8775,2.717133 +0.7562748,93,860.8626,5.367093 +0.5468247,52,13.37389,4.752502 +0.5236045,76,758.5776,4.808922 +0.8087347,55,532.2803,5.136258 +0.7106333,92,111.2063,5.331034 +0.814428,41,509.0671,4.940242 +0.9088012,9,841.348,4.094842 +0.8740427,76,824.9096,5.553729 +0.8074883,69,252.8868,5.315484 +0.7213603,5,948.5723,2.794196 +0.6841834,28,313.8684,4.336824 +0.8791684,31,739.6711,4.946414 +0.8447433,53,223.9424,5.246248 +0.6077613,19,337.0328,3.850726 +0.6291898,19,882.2599,3.8882 +0.5982278,57,129.2187,4.745759 +0.8181028,71,778.5106,5.334016 +0.9189918,46,312.8849,5.440689 +0.6311825,5,906.8284,2.558528 +0.6925712,35,572.9342,4.524774 +0.7704907,37,621.4804,4.743354 +0.9046787,92,802.2702,5.801703 +0.6019258,60,991.2124,4.76121 +0.5629309,51,344.3215,4.578758 +0.8558432,38,589.3368,5.012244 +0.819681,32,977.2155,4.762014 +0.8277987,87,394.2501,5.51517 +0.5027483,24,314.9769,3.857077 +0.8158908,45,652.2671,5.008327 +0.8676783,82,104.2660,5.703369 +0.8946515,67,165.1998,5.624106 +0.8481332,95,468.5812,5.62917 +0.9427243,60,768.3167,5.735723 +0.8323833,26,398,4.655196 +0.8430963,33,469.1627,4.869046 +0.7642166,66,682.7124,5.150084 +0.8620012,43,557.2209,5.12448 +0.8747079,70,562.6493,5.509243 +0.6204153,14,15.61338,3.757389 +0.8136883,92,594.1941,5.503064 +0.7890769,21,960.2178,4.34413 +0.6135467,97,95.7961,5.179695 +0.6646005,79,102.7502,5.128727 +0.7282539,70,201.1261,5.142028 +0.6060018,16,13.12709,3.877434 +0.6576292,18,846.5295,3.900090 +0.9218128,19,225.0802,4.822128 +0.6956397,58,828.7143,4.909221 +0.5778678,53,305.8120,4.63554 +0.7409067,99,574.9399,5.382695 +0.6894707,35,474.0742,4.520339 +0.8547311,29,9.140069,5.801376 +0.9443449,36,740.9564,5.40459 +0.5030257,16,327.6132,3.492181 +0.7115186,14,705.3257,3.800159 +0.9499585,45,305.1216,5.635737 +0.6742548,79,184.8126,5.119984 +0.7671734,3,113.5515,2.320534 +0.743683,74,902.1817,5.181569 +0.9003837,6,700.1,3.670878 +0.818022,38,669.9273,4.890023 +0.5886032,2,378.721,1.162975 +0.804402,77,237.4354,5.38663 +0.6920335,58,268.8176,4.919222 +0.5761434,69,242.3807,4.834436 +0.7279316,32,213.1663,4.549817 +0.7118987,38,408.9461,4.633905 +0.7176286,33,133.8739,4.566852 +0.638278,76,13.88720,5.337516 +0.8056624,79,618.3595,5.377935 +0.9184175,52,114.7676,5.609458 +0.8495399,67,528.1128,5.39474 +0.9345234,11,795.6603,4.436122 +0.9183741,71,595.8968,5.706353 +0.6894078,63,32.08419,5.14501 +0.6199956,7,947.1682,2.907827 +0.7804436,39,746.3122,4.805868 +0.5348798,22,555.1823,3.837054 +0.770588,24,148.8212,4.438917 +0.5758073,32,768.8216,4.226697 +0.7512398,43,850.633,4.806761 +0.8007302,93,127.8680,5.548864 +0.9014866,25,678.9343,4.886736 +0.6555334,6,378.8423,2.827782 +0.9277143,52,953.2782,5.53991 +0.5545398,24,816.5394,3.947181 +0.781483,46,164.8824,4.971961 +0.5651579,54,238.7493,4.631017 +0.8015807,37,983.0817,4.819457 +0.6465967,100,23.79223,5.43803 +0.7298902,6,404.3406,3.022995 +0.5268403,15,595.9964,3.475157 +0.8249902,50,417.7287,5.119674 +0.7174687,44,28.92964,4.958069 +0.9220132,47,837.619,5.44125 +0.9163917,42,184.3981,5.395217 +0.6503536,32,85.93141,4.412043 +0.910666,8,312.4043,4.01467 +0.7578302,34,394.5199,4.654374 +0.7812384,5,798.26,2.977237 +0.5178476,35,456.0489,4.200271 +0.6632408,88,229.8003,5.168476 +0.8390662,31,835.2151,4.799856 +0.9352528,27,898.2456,5.132372 +0.8057271,58,350.117,5.176067 +0.610425,86,72.80154,5.102728 +0.9204428,22,964.564,4.886985 +0.8329993,95,981.9353,5.568629 +0.6198768,92,169.4371,5.129408 +0.6226202,84,898.3718,5.042082 +0.6418981,84,542.0965,5.079978 +0.6675953,95,291.8509,5.22411 +0.9360013,66,551.7465,5.762516 +0.8745606,88,678.362,5.656737 +0.5279922,5,832.993,2.319646 +0.818075,79,469.9906,5.417217 +0.8262758,2,645.9986,1.925928 +0.5706311,21,503.1586,3.863504 +0.7682838,39,861.4102,4.774088 +0.7245813,33,359.1662,4.55453 +0.6995345,46,293.3065,4.759532 +0.8709355,57,922.7088,5.345742 +0.8373729,60,504.0928,5.281386 +0.7081338,75,289.2888,5.136525 +0.7901496,5,5.439199,3.588918 +0.5290842,81,696.4208,4.864699 +0.7137549,27,77.53818,4.424457 +0.5482691,44,15.99154,4.590674 +0.8808748,18,22.94479,4.911921 +0.8147249,77,293.5421,5.405631 +0.6046856,2,878.4859,1.202698 +0.5329508,13,63.85672,3.373561 +0.6332334,22,704.2761,4.023677 +0.546437,8,890.3324,2.888729 +0.6326386,5,754.358,2.562415 +0.8817755,44,278.2696,5.238411 +0.8368096,19,138.9115,4.455741 +0.5355686,91,204.9948,4.971374 +0.7235912,8,344.4877,3.305657 +0.5048621,34,346.1112,4.155419 +0.5931924,60,160.0218,4.76904 +0.5299145,31,594.7286,4.120086 +0.6017189,87,369.6473,5.04039 +0.7418517,50,5.327944,6.087411 +0.8483486,64,305.071,5.376896 +0.6756182,4,862.6502,2.403836 +0.7777819,49,430.4768,4.976453 +0.9113989,60,362.3921,5.576478 +0.7407845,99,928.5576,5.375836 +0.7685601,49,344.4184,4.958712 +0.7725601,96,578.2455,5.4311 +0.6653655,50,945.6597,4.739644 +0.9468507,13,816.8829,4.670724 +0.5251872,29,804.5675,4.055112 +0.56988,7,438.1736,2.797492 +0.8973808,60,30.05556,5.950758 +0.9487586,11,261.4730,4.580859 +0.6696307,82,650.6464,5.110804 +0.8888442,27,907.014,4.881785 +0.7401928,22,558.9628,4.25965 +0.6110303,38,401.6077,4.433361 +0.7925204,16,439.8231,4.135301 +0.702094,9,504.9842,3.36415 +0.853108,33,35.07958,5.163423 +0.9353926,67,223.8085,5.818331 +0.6520575,24,758.8386,4.134634 +0.66278,81,118.4723,5.135034 +0.7340894,39,501.0299,4.699954 +0.8870821,53,874.5811,5.358251 +0.8916662,94,154.8354,5.848344 +0.83859,33,798.9093,4.845743 +0.9192628,35,969.539,5.218617 +0.8449602,89,174.3100,5.625377 +0.8755261,67,784.9093,5.475399 +0.7064768,8,992.3402,3.255223 +0.6243083,58,371.844,4.783567 +0.5539676,95,17.05929,5.202136 +0.6063726,90,191.1312,5.085874 +0.8869105,35,510.8736,5.074511 +0.8790183,42,885.0375,5.163212 +0.5933805,60,296.2700,4.75707 +0.6551459,30,24.56066,4.487992 +0.5723375,37,274.4002,4.345513 +0.6443248,33,836.795,4.378666 +0.735258,17,324.4626,4.036611 +0.8457457,86,740.4636,5.544534 +0.8943911,5,851.5544,3.451821 +0.838857,4,107.2173,2.963602 +0.856727,20,491.6441,4.529308 +0.6224996,72,30.61014,5.081849 +0.7584831,7,374.16,3.267944 +0.747176,10,637.9571,3.582344 +0.7691169,10,641.088,3.643957 +0.6950572,2,274.5504,1.453546 +0.6725931,29,665.696,4.332746 +0.7588209,56,4.689692,6.509686 +0.9223835,6,761.912,3.809601 +0.7851749,45,443.8975,4.932058 +0.7397743,40,2.279709,7.45333 +0.522246,20,346.4404,3.731591 +0.5984001,75,200.1283,4.938596 +0.8460583,10,705.9169,3.897459 +0.6427525,41,106.1142,4.585355 +0.8209742,37,392.5236,4.888823 +0.925232,81,785.0064,5.821471 +0.5509883,15,578.9168,3.521915 +0.7231179,48,606.5707,4.829564 +0.7479964,56,978.1678,4.992034 +0.8560428,89,172.6031,5.663342 +0.7445964,19,934.2746,4.14458 +0.8146255,5,297.5732,3.100598 +0.8801215,12,414.1117,4.206742 +0.5379769,19,896.2387,3.711643 +0.5590387,7,148.3427,2.779745 +0.7562362,2,126.4085,1.656177 +0.8628862,83,9.887536,6.832619 +0.6339987,49,957.1054,4.665933 +0.7959348,43,970.3764,4.915685 +0.9469303,27,894.7433,5.219109 +0.7474149,36,128.4815,4.709715 +0.6833293,17,967.5529,3.905373 +0.8428125,89,603.4397,5.562762 +0.9246594,88,878.4903,5.868944 +0.6135251,98,186.0699,5.160008 +0.5697204,97,4.151751,5.806717 +0.8312094,82,169.7990,5.527478 +0.910185,87,105.4579,5.936619 +0.693803,31,27.54992,4.604856 +0.8607749,20,951.5826,4.536226 +0.5555341,42,660.3545,4.410026 +0.7611825,68,533.4381,5.168059 +0.6107306,70,323.2711,4.90054 +0.6746679,35,374.4120,4.492795 +0.9177906,75,313.8561,5.766134 +0.7678125,96,441.6935,5.426057 +0.9169907,14,736.4204,4.517798 +0.7433266,56,989.043,4.9816 +0.9015917,98,391.5603,5.852269 +0.7285088,100,452.3493,5.368393 +0.5379222,32,316.8145,4.164098 +0.7352325,49,251.5620,4.888791 +0.8506556,14,172.2805,4.239404 +0.7878528,86,47.18904,5.595067 +0.7940741,14,709.88,4.020078 +0.6541361,31,382.5369,4.354275 +0.8305676,56,384.7685,5.21937 +0.899311,87,765.7054,5.743174 +0.669143,21,357.551,4.063729 +0.6986659,4,783.4702,2.467174 +0.8068675,98,264.7227,5.553613 +0.7591054,85,289.1455,5.33484 +0.7327918,54,51.85563,5.067093 +0.6006468,11,304.5714,3.330731 +0.7975916,41,464.2589,4.895099 +0.8373671,65,922.02,5.325994 +0.797545,27,324.2303,4.583439 +0.7110869,22,140.0273,4.217343 +0.6424185,65,367.1264,4.901086 +0.5556619,47,305.7816,4.504104 +0.772002,48,528.8508,4.943287 +0.6721145,5,79.38062,2.681564 +0.7806843,10,434.8125,3.681225 +0.6894094,28,566.1086,4.34089 +0.733033,7,71.62944,3.227396 +0.648652,51,326.0771,4.734045 +0.5223443,28,140.3916,4.032858 +0.6840796,52,532.834,4.810271 +0.5635255,5,600.5627,2.400079 +0.8416008,45,600.0655,5.087043 +0.799596,79,715.0368,5.359828 +0.8057718,12,815.9436,3.919591 +0.585966,58,812.5367,4.709579 +0.7304825,39,452.6062,4.693294 +0.7611653,14,301.6993,3.935817 +0.6647046,37,76.24282,4.567979 +0.6523098,91,841.6372,5.150504 +0.788072,2,838.2777,1.766685 +0.7445851,25,39.74841,4.50943 +0.7385261,53,652.0979,4.935246 +0.7808228,28,515.9685,4.557599 +0.888269,82,840.605,5.657258 +0.6899828,10,374.1941,3.439050 +0.6410592,61,875.8026,4.842899 +0.6451181,16,944.335,3.769109 +0.5841919,43,684.492,4.478166 +0.5010752,25,285.6268,3.890052 +0.8291245,8,368.9152,3.632677 +0.5235197,92,301.6914,4.954483 +0.7078635,85,642.3808,5.208843 +0.5116872,98,379.1896,4.979117 +0.6257265,10,875.562,3.286811 +0.6592452,35,250.9212,4.468037 +0.7221302,20,187.6121,4.154374 +0.7956171,54,451.887,5.091446 +0.6838694,20,473.7403,4.051287 +0.8295577,78,784.4418,5.430121 +0.9478423,68,488.6432,5.86968 +0.6691414,83,921.919,5.115242 +0.9224753,22,184.6860,4.951371 +0.8983257,48,267.843,5.374096 +0.8998352,79,766.9935,5.682365 +0.7091498,33,343.9942,4.520809 +0.6004464,14,410.7908,3.558120 +0.9099504,95,636.2874,5.852287 +0.7956578,56,548.764,5.113729 +0.7704919,32,462.0465,4.636439 +0.5645864,39,905.9903,4.36564 +0.77087,22,454.319,4.339972 +0.7042887,51,355.528,4.843002 +0.8015738,14,377.1564,4.049835 +0.8583845,39,860.9546,5.034111 +0.9179805,65,763.6357,5.639616 +0.7802,38,746.6791,4.785765 +0.7479871,15,385.239,3.957906 +0.7396997,41,142.9188,4.786167 +0.8558819,21,49.9631,4.717325 +0.7794685,8,6.951015,4.020868 +0.7423384,76,914.6567,5.197205 +0.8278342,88,835.197,5.50552 +0.7116068,57,448.2181,4.936231 +0.8406779,65,790.6183,5.338226 +0.602327,41,504.0098,4.475247 +0.8409111,57,538.369,5.254911 +0.8656233,44,69.18179,5.301835 +0.5141587,85,791.0469,4.875926 +0.5417386,7,141.6497,2.742201 +0.5982695,23,414.601,3.996176 +0.514064,83,421.916,4.861692 +0.602719,48,560.3881,4.597395 +0.6230789,83,319.8326,5.045922 +0.5042455,25,173.947,3.899675 +0.8705254,16,459.7512,4.404386 +0.6383081,73,827.3477,4.969256 +0.7887536,13,621.2912,3.940368 +0.5171924,95,261.1531,4.96909 +0.6338395,21,712.4886,3.985088 +0.886364,31,489.4844,4.984223 +0.6076696,82,823.9758,5.000153 +0.5168341,19,858.6781,3.672510 +0.6961416,22,412.6158,4.160402 +0.801484,65,553.8453,5.234128 +0.7856216,69,112.5570,5.306969 +0.9263677,52,276.0557,5.574726 +0.7135692,32,209.0116,4.517289 +0.8410421,88,738.9076,5.545727 +0.8297371,93,990.6756,5.545205 +0.741467,22,177.8167,4.284039 +0.7635628,64,581.6729,5.129171 +0.5543599,13,124.4985,3.405149 +0.815754,80,445.7278,5.420853 +0.9187836,79,491.0139,5.784896 +0.6401774,26,569.7998,4.179082 +0.6696699,57,670.915,4.847928 +0.8378535,11,43.21189,4.078821 +0.559829,57,982.0274,4.651717 +0.7326061,3,730.2683,2.194841 +0.6143365,4,658.2037,2.246992 +0.9091326,58,130.0204,5.619253 +0.7299739,46,905.6522,4.808786 +0.9438849,65,51.04049,6.149484 +0.6383169,34,143.9447,4.415962 +0.6008252,38,863.7329,4.409409 +0.7914155,67,926.258,5.221909 +0.5824244,3,889.5783,1.783688 +0.5264587,92,418.4913,4.956136 +0.9393047,42,118.5326,5.591449 +0.8931902,37,63.91318,5.311936 +0.6691642,25,686.5356,4.204276 +0.655101,78,714.8446,5.047903 +0.9385995,37,316.4599,5.410553 +0.6542483,12,294.8234,3.531808 +0.7505392,67,863.9093,5.127012 +0.8010309,17,441.6191,4.211893 +0.5404961,36,29.51087,4.338949 +0.8481581,77,556.2782,5.483866 +0.8356528,31,908.498,4.787953 +0.8227231,52,216.2118,5.164859 +0.905388,97,83.37888,6.029684 +0.7548435,56,900.9445,5.008181 +0.6031258,10,727.9192,3.238254 +0.6346565,82,77.91511,5.112419 +0.766229,28,344.5748,4.52627 +0.5894321,72,904.7874,4.875008 +0.6093439,35,782.5465,4.36002 +0.7497125,68,993.3388,5.134286 +0.5022351,80,492.7455,4.815045 +0.7511856,74,421.0537,5.209693 +0.5176743,42,230.2803,4.352358 +0.7387836,54,3.121385,6.995114 +0.761282,21,475.0687,4.276069 +0.8406623,40,402.1961,5.007226 +0.882509,85,381.4973,5.681394 +0.9286038,79,467.4862,5.840803 +0.5992355,79,835.7454,4.959146 +0.890761,24,666.5893,4.805821 +0.7234082,33,730.644,4.543084 +0.5505608,19,213.1412,3.742900 +0.8660476,47,939.6582,5.193467 +0.940598,45,349.6406,5.555837 +0.6006444,93,572.2021,5.080988 +0.5091824,3,983.6616,1.609518 +0.5216768,85,920.905,4.887062 +0.7967704,68,721.9357,5.248968 +0.59216,27,542.8038,4.11822 +0.7599046,18,528.9801,4.142539 +0.8651707,43,113.2006,5.218027 +0.5924965,83,143.1471,5.011246 +0.6820487,51,444.4327,4.794115 +0.7621458,85,451.2133,5.329308 +0.7125131,58,478.2222,4.94979 +0.785969,56,85.08017,5.18163 +0.8220104,61,561.3661,5.245318 +0.690745,82,96.57742,5.21521 +0.9415946,30,858.3626,5.253486 +0.6013633,26,154.6332,4.119098 +0.7275541,9,771.9723,3.427606 +0.7001641,36,248.4740,4.576007 +0.9099395,46,101.5428,5.489313 +0.5301535,12,15.86398,3.358847 +0.7246674,48,676.6038,4.831669 +0.6494136,86,336.4217,5.117376 +0.9117588,55,622.8621,5.500896 +0.8806666,16,913.2533,4.438764 +0.7748915,95,491.9472,5.432733 +0.8041172,31,736.1958,4.695681 +0.5250454,34,398.9952,4.189739 +0.8903168,45,496.8165,5.269568 +0.7864003,98,133.7617,5.54255 +0.672163,88,317.5607,5.176894 +0.5214742,38,623.1296,4.272 +0.73013,3,664.3804,2.187303 +0.8370519,57,483.929,5.245438 +0.905355,22,937.9329,4.804942 +0.5186103,86,984.7663,4.890574 +0.6401834,92,341.8974,5.14821 +0.6548418,31,841.7306,4.349167 +0.9211253,56,37.49689,5.965554 +0.847424,59,751.2014,5.293101 +0.5670823,36,487.3625,4.308973 +0.7570442,69,619.3497,5.166504 +0.7855974,78,226.0553,5.348713 +0.8519632,30,497.0498,4.826449 +0.7275984,28,953.4355,4.421089 +0.6861582,97,713.1176,5.257759 +0.6299306,62,779.7347,4.835759 +0.9084661,52,577.6044,5.448431 +0.8757678,77,722.9621,5.571258 +0.7955783,5,476.438,3.028203 +0.5515631,30,159.7,4.143206 +0.6687658,48,181.5406,4.740979 +0.7556932,67,214.9520,5.170283 +0.7495992,45,738.3258,4.838205 +0.8802353,4,359.4933,3.139567 +0.6101071,37,124.4847,4.432152 +0.7072711,82,990.3553,5.178028 +0.6836548,28,264.0952,4.338638 +0.602489,95,388.3661,5.103602 +0.9298973,78,22.56973,6.608796 +0.7459731,22,161.8984,4.298588 +0.8078601,21,62.63728,4.502277 +0.746816,30,345.1936,4.532392 +0.7855065,12,843.9162,3.85735 +0.875513,94,267.9591,5.739195 +0.5442306,69,11.17396,5.006721 +0.699071,94,19.41204,5.605957 +0.7866223,48,680.867,4.975987 +0.5264621,48,13.63537,4.625036 +0.9174577,35,495.3558,5.222406 +0.8724126,62,914.5348,5.408832 +0.865643,65,408.7572,5.435482 +0.6987177,16,736.9757,3.888351 +0.9262,47,655.252,5.470375 +0.5707421,49,653.633,4.556472 +0.8033052,7,200.0670,3.419037 +0.607467,16,681.1006,3.692504 +0.9112384,40,313.9323,5.300553 +0.727744,87,338.0306,5.277563 +0.5696553,77,73.57855,4.940687 +0.5205544,28,161.0509,4.027688 +0.7081532,90,462.7116,5.254306 +0.7741767,14,205.8534,3.980006 +0.7166292,16,373.7093,3.936160 +0.5436275,6,821.2211,2.567207 +0.8027656,11,680.4826,3.833235 +0.8254717,83,922.7415,5.458177 +0.932488,58,866.6913,5.643221 +0.8418702,45,569.1373,5.088895 +0.689414,32,417.8379,4.451095 +0.7923089,93,146.7568,5.51455 +0.8078084,24,657.6303,4.508357 +0.8114387,36,717.209,4.829867 +0.6953754,45,165.5859,4.750391 +0.5427887,13,667.9623,3.370327 +0.6278709,87,742.4106,5.077376 +0.719019,47,575.633,4.805737 +0.8485726,22,182.7487,4.60427 +0.8952204,13,134.3489,4.388571 +0.5808132,14,174.6743,3.525328 +0.8973759,90,853.2268,5.754695 +0.6880474,54,500.3682,4.846951 +0.677843,39,845.5148,4.575613 +0.7658533,68,863.7593,5.171952 +0.938231,54,944.06,5.630914 +0.8791004,66,866.3697,5.476817 +0.8274844,59,926.6531,5.229684 +0.9470333,18,209.7032,4.969697 +0.6802575,29,3.550959,5.529664 +0.5066382,24,740.083,3.860899 +0.8874296,23,712.4559,4.757439 +0.8624187,68,610.8993,5.444066 +0.7703005,49,791.0794,4.948802 +0.8037844,67,242.3122,5.286526 +0.912851,95,88.46587,6.044068 +0.8034184,93,912.2758,5.47648 +0.6455281,86,2.359885,7.036967 +0.6580722,80,904.2982,5.069314 +0.8415494,70,145.7251,5.462051 +0.90707,53,996.3983,5.443663 +0.8247734,79,285.8116,5.452874 +0.7215811,8,61.89573,3.339986 +0.6220738,26,908.8918,4.141114 +0.6506316,97,846.5834,5.192115 +0.7313284,38,93.45492,4.731484 +0.8823698,27,966.4982,4.853321 +0.7490274,52,386.2727,4.953415 +0.6805436,33,651.8731,4.452449 +0.7764903,39,280.9689,4.81385 +0.9432227,84,752.5136,5.9566 +0.8667044,76,394.4018,5.546927 +0.5788225,14,258.0226,3.517233 +0.8875073,89,733.1099,5.710791 +0.5351773,44,262.4027,4.418358 +0.6488808,73,949.2446,4.987076 +0.9236432,13,125.3093,4.562865 +0.8962864,58,309.9517,5.489335 +0.7281808,13,587.0542,3.775624 +0.5180642,77,354.9852,4.814268 +0.6902971,2,939.4611,1.4374 +0.7647461,99,548.2068,5.435252 +0.5776067,30,913.6733,4.176379 +0.8657476,6,795.0982,3.493412 +0.897945,32,541.3933,5.056966 +0.6598413,5,171.2253,2.637734 +0.893147,56,292.6846,5.454062 +0.6640957,61,271.5816,4.900817 +0.8715021,23,764.0064,4.689651 +0.8385217,13,201.9563,4.123507 +0.7627245,32,714.4778,4.611452 +0.8619162,40,977.3098,5.063287 +0.9254046,89,777.3225,5.883097 +0.6706702,18,700.07,3.928967 +0.6348828,16,987.2555,3.747484 +0.6960192,27,182.7434,4.344458 +0.8773171,90,39.94803,6.032864 +0.5626677,16,956.1505,3.602819 +0.5537715,46,444.1438,4.48079 +0.6688064,80,897.1477,5.08883 +0.6897467,86,601.8464,5.182841 +0.871555,50,638.7892,5.263301 +0.5150773,31,193.1971,4.101366 +0.8863904,75,97.00325,5.72981 +0.7150527,26,488.4888,4.338653 +0.7805498,31,186.7901,4.661684 +0.6060921,49,36.88978,4.719998 +0.8752972,75,59.6561,5.772133 +0.5284842,20,752.361,3.740229 +0.911607,12,123.6005,4.417916 +0.912127,75,577.6007,5.711903 +0.6424525,21,968.2822,4.001205 +0.9467245,29,44.99821,5.59281 +0.6967225,72,493.199,5.073494 +0.926016,23,473.5198,4.967169 +0.9147218,44,564.3584,5.365337 +0.6036511,88,221.1464,5.061308 +0.6954212,98,549.93,5.285678 +0.6096702,33,74.86955,4.357886 +0.6447025,8,297.3146,3.109925 +0.5721982,13,116.7042,3.443134 +0.8261254,82,283.0360,5.482771 +0.6414976,75,908.1127,4.993686 +0.814776,62,968.177,5.22812 +0.7715264,30,209.3643,4.607552 +0.5268074,37,739.2855,4.258942 +0.8995444,14,970.326,4.418598 +0.6672158,22,380.9123,4.098374 +0.5621144,53,377.9919,4.605991 +0.6793161,41,81.38955,4.678239 +0.6916072,85,566.663,5.179 +0.5736763,66,941.3328,4.784641 +0.9219027,6,886.3211,3.805059 +0.5896647,7,858.1352,2.839533 +0.9074126,10,93.07447,4.253267 +0.66789,51,629.9087,4.762436 +0.877229,69,750.5044,5.502388 +0.9137808,60,799.3949,5.563941 +0.9041558,14,184.6966,4.481808 +0.7500885,43,328.5007,4.818373 +0.8837174,63,472.7422,5.47702 +0.7709719,40,827.9627,4.800039 +0.5613473,21,753.5284,3.844366 +0.8607043,71,90.77541,5.593585 +0.894365,26,912.2157,4.878227 +0.6289452,15,394.0313,3.681227 +0.6738608,51,931.1405,4.770833 +0.612593,9,844.2056,3.152861 +0.7328856,51,999.851,4.890585 +0.9286233,28,415.55,5.132799 +0.6607356,51,361.9293,4.755496 +0.6956952,58,683.2114,4.911127 +0.8438404,59,179.9122,5.332682 +0.5322143,85,18.54251,5.046697 +0.6755007,15,829.881,3.777777 +0.5618366,62,92.26922,4.753428 +0.5100895,36,103.1916,4.225376 +0.6867955,29,328.8595,4.370096 +0.6402259,56,200.4614,4.798722 +0.9200455,96,727.2613,5.904703 +0.7006108,77,978.7424,5.12098 +0.6415493,27,808.732,4.210867 +0.7054206,38,983.0683,4.611176 +0.8708127,17,924.364,4.445982 +0.6735938,90,59.16235,5.288341 +0.893749,31,274.5217,5.035676 +0.811464,78,482.6777,5.38987 +0.5329308,98,757.2869,5.007849 +0.7138424,36,177.7422,4.61582 +0.8361404,44,14.41229,5.711417 +0.8358981,58,234.4316,5.279698 +0.7662827,45,166.0394,4.91555 +0.5136097,15,968.2607,3.448866 +0.9202818,12,400.6707,4.422114 +0.901509,80,856.068,5.695603 +0.8459219,12,243.37,4.075717 +0.895828,99,675.6542,5.815219 +0.9483792,2,505.0198,2.758998 +0.6077581,78,46.8255,5.059373 +0.8990502,28,440.9378,4.968781 +0.7994523,58,128.8626,5.208285 +0.7051844,87,246.3544,5.240367 +0.609106,82,627.9874,5.004618 +0.7393058,16,102.7798,4.025542 +0.7529953,85,445.276,5.309107 +0.731806,33,628.1298,4.56342 +0.880604,33,539.6335,5.00397 +0.5836496,19,496.0396,3.800555 +0.8817114,24,71.55129,4.891774 +0.9257038,29,832.7737,5.123804 +0.5565546,17,825.7594,3.646683 +0.814996,90,970.7049,5.483541 +0.7525624,43,709.3263,4.811639 +0.5808193,57,768.9612,4.688041 +0.6070652,30,126.9498,4.254673 +0.6703728,62,509.1423,4.914036 +0.8503237,98,835.3743,5.642843 +0.8517253,48,19.13650,5.712755 +0.5168282,49,49.78515,4.508736 +0.832432,60,758.4743,5.258661 +0.8950984,34,458.0435,5.092172 +0.5167257,90,269.1065,4.928903 +0.8812985,45,501.8186,5.232066 +0.8884966,4,959.577,3.17786 +0.5751634,23,179.3001,3.960573 +0.9069385,42,747.0547,5.287428 +0.8875317,19,296.2533,4.628104 +0.596398,71,686.8049,4.87814 +0.918342,86,300.7095,5.86174 +0.8740808,85,72.80344,5.814391 +0.5438677,37,944.3981,4.287476 +0.7976671,40,476.4478,4.876465 +0.9018208,52,461.4554,5.423492 +0.7830676,65,791.2986,5.182023 +0.8163788,46,515.612,5.029737 +0.6272917,35,201.1602,4.408986 +0.5440327,17,510.8568,3.624252 +0.7540332,56,198.2257,5.039744 +0.9448444,91,142.8565,6.14086 +0.6085111,30,756.2686,4.234089 +0.8094153,21,564.3328,4.408084 +0.5010243,17,944.5477,3.541730 +0.9293139,46,666.201,5.473828 +0.6923277,12,741.6548,3.613324 +0.914651,100,317.0432,5.9377 +0.8499166,92,470.4283,5.613306 +0.5807449,11,980.1108,3.284324 +0.8983226,6,733.9231,3.658757 +0.8945144,72,158.2759,5.677252 +0.5103657,33,903.8698,4.136651 +0.534177,22,375.0012,3.83756 +0.6324964,8,567.16,3.07826 +0.613885,56,13.62238,5.01518 +0.851725,27,382.9489,4.751082 +0.8799537,49,153.7527,5.345505 +0.7592371,18,819.073,4.137142 +0.9212617,38,678.4613,5.294067 +0.5598017,78,26.99321,5.006114 +0.6814634,42,681.3903,4.641436 +0.8606673,20,783.8055,4.537746 +0.6084816,4,685.7197,2.232538 +0.6399375,45,593.7783,4.615192 +0.6103587,22,351.3694,3.983024 +0.9266782,92,14.14941,7.182278 +0.9188638,49,253.6643,5.495489 +0.687522,2,884.6993,1.429223 +0.5745827,58,144.1793,4.712286 +0.6408255,43,72.38769,4.638984 +0.5272403,12,389.2443,3.26381 +0.7431113,18,929.1973,4.095248 +0.5755574,58,755.1514,4.692339 +0.7362868,26,668.128,4.384603 +0.8476235,80,459.8383,5.513119 +0.531841,26,521.0744,3.976064 +0.8565164,12,373.0101,4.10788 +0.7162138,73,845.4122,5.115485 +0.6513347,73,279.6416,5.00723 +0.550517,93,804.8208,4.997617 +0.553736,7,449.5708,2.762216 +0.8000883,90,715.2746,5.449685 +0.7449889,41,357.5293,4.76865 +0.7050233,5,928.9357,2.748723 +0.811888,92,684.0569,5.49554 +0.5949598,39,782.7147,4.419858 +0.6980153,37,617.763,4.578678 +0.6513668,46,966.251,4.650048 +0.6346104,43,623.7619,4.569875 +0.6049259,50,348.3189,4.637309 +0.8538904,93,555.5724,5.628339 +0.7127893,36,798.1527,4.586658 +0.9133792,28,404.7592,5.044139 +0.8015495,82,612.701,5.392967 +0.7103518,76,782.9977,5.13295 +0.8044765,10,496.2737,3.754206 +0.8711564,8,949.4938,3.795038 +0.850426,44,424.9812,5.107353 +0.7427764,31,531.0962,4.541912 +0.7833918,13,436.4556,3.928051 +0.5161939,9,153.1221,2.956119 +0.542656,22,466.4729,3.852124 +0.7050307,42,581.7667,4.691265 +0.9394027,90,696.7951,5.976785 +0.6877143,77,409.0994,5.106878 +0.6642221,79,415.6036,5.080381 +0.8659564,28,995.0667,4.815222 +0.6232415,99,540.7747,5.16357 +0.5393753,21,977.4539,3.802869 +0.6286016,33,708.3299,4.349475 +0.9232921,23,752.7533,4.940747 +0.6183734,92,523.36,5.104062 +0.9043008,92,200.5048,5.866232 +0.6344774,89,236.9535,5.122502 +0.8628253,13,701.8662,4.19359 +0.9023469,36,694.6135,5.157649 +0.920216,96,481.1691,5.919217 +0.7553396,30,291.5915,4.556811 +0.7868298,37,22.24995,5.117885 +0.5297635,90,7.767314,5.255495 +0.7545318,90,983.2014,5.339463 +0.624568,77,498.1715,4.988259 +0.6753779,93,882.7993,5.206611 +0.6985417,92,379.6412,5.25464 +0.7701595,40,774.3157,4.798714 +0.8281533,13,974.1746,4.062279 +0.5118858,97,242.9545,4.976425 +0.7758689,65,513.8558,5.171371 +0.7374977,95,351.8510,5.357994 +0.6412336,53,703.0254,4.740301 +0.9063756,100,900.0661,5.860283 +0.8418323,25,35.81261,4.872203 +0.7665503,31,927.7007,4.59406 +0.9219692,74,591.2485,5.752762 +0.6358764,88,928.0914,5.097556 +0.9315368,16,528.4209,4.723142 +0.8100316,75,250.0677,5.381272 +0.6597449,67,687.8693,4.947374 +0.7521641,51,428.6216,4.944315 +0.8862515,96,909.08,5.750776 +0.8434805,37,450.0125,4.956334 +0.6248698,79,847.8975,5.002474 +0.9387935,27,351.9824,5.181689 +0.7219279,32,688.6867,4.516232 +0.7028832,4,115.2441,2.491463 +0.943075,85,51.73854,6.33496 +0.5073794,44,17.59787,4.470998 +0.8603101,42,103.5809,5.19063 +0.5362855,41,957.9404,4.356659 +0.7562751,71,135.6305,5.237723 +0.8609146,54,509.9657,5.284062 +0.8023684,6,203.2283,3.256929 +0.8707021,16,28.49927,4.670428 +0.6753105,14,677.1358,3.71605 +0.8213447,86,969.6892,5.470054 +0.7359973,89,538.931,5.300517 +0.5872538,45,607.1356,4.519681 +0.8535855,45,984.2838,5.118899 +0.744609,72,340.6154,5.180845 +0.695795,60,691.346,4.935945 +0.9209901,19,839.272,4.780656 +0.9332112,25,274.9751,5.096345 +0.7586022,23,707.0266,4.339541 +0.8356929,73,491.7684,5.412498 +0.9449564,100,217.8314,6.150777 +0.769811,4,500.2968,2.684143 +0.8468755,81,842.382,5.505682 +0.8751426,29,595.5288,4.884167 +0.7680948,18,56.2383,4.252435 +0.6820803,50,727.2103,4.773905 +0.8127874,55,255.6038,5.168734 +0.8462327,43,101.6337,5.157443 +0.800735,61,891.4924,5.180328 +0.9404126,52,486.4209,5.63849 +0.5839157,12,165.2641,3.385607 +0.935952,24,741.7999,5.054673 +0.9156533,41,319.3794,5.340692 +0.8196525,59,989.9556,5.206648 +0.6757751,83,725.6698,5.12955 +0.648204,48,961.4014,4.676463 +0.765033,78,93.1138,5.358278 +0.7678091,93,854.3995,5.392688 +0.5783231,29,170.5511,4.164157 +0.8802704,69,471.1699,5.525453 +0.5391529,36,214.6134,4.266653 +0.8768197,92,684.0415,5.693874 +0.8024528,19,389.2881,4.310811 +0.8102137,25,543.2757,4.550161 +0.5723951,34,177.1517,4.28349 +0.7918926,15,860.9835,4.07184 +0.9097192,26,440.2916,4.967131 +0.8408364,34,993.8379,4.872849 +0.7611193,10,193.7934,3.635555 +0.6503083,44,663.8255,4.616585 +0.7713632,22,182.8751,4.361633 +0.9257941,9,785.8253,4.203124 +0.8617674,10,87.37827,4.022113 +0.6977722,24,710.5994,4.231432 +0.5354379,8,618.6639,2.866230 +0.7276367,78,194.4265,5.219456 +0.927455,28,165.6871,5.174257 +0.9348588,94,166.7061,6.069519 +0.5434083,10,335.4119,3.115874 +0.6687663,15,727.9403,3.763405 +0.54875,94,3.577831,5.762369 +0.6946637,95,57.15825,5.380881 +0.8181467,88,282.4998,5.508351 +0.702337,22,39.24263,4.280552 +0.6295064,62,309.4151,4.845432 +0.8923052,9,895.7956,4.004396 +0.6035331,60,645.0201,4.766525 +0.8836149,97,409.5161,5.769774 +0.6316577,69,864.4558,4.916431 +0.8140471,93,972.8971,5.502959 +0.924153,67,537.857,5.702411 +0.6059753,59,130.9093,4.786022 +0.7303484,97,704.4985,5.343819 +0.9404786,43,546.2941,5.50638 +0.9363265,74,825.2387,5.827465 +0.7937029,90,872.1234,5.430884 +0.6887033,72,160.8189,5.087694 +0.8896025,96,720.0252,5.768666 +0.6226318,65,479.5238,4.861916 +0.9318561,21,212.6343,4.969043 +0.6530969,44,196.4965,4.640452 +0.5156705,27,422.6076,3.980209 +0.5506686,44,778.192,4.43762 +0.941927,45,202.6295,5.601233 +0.6978838,48,9.815825,5.319749 +0.7202505,8,944.3096,3.29123 +0.7825415,92,833.0413,5.41958 +0.8102026,31,475.4885,4.719315 +0.704962,3,742.0467,2.110853 +0.868628,49,797.4157,5.234452 +0.662415,36,122.3492,4.517269 +0.5685591,11,841.5693,3.259537 +0.5324882,84,611.4716,4.897254 +0.9195188,45,979.4784,5.395093 +0.924014,24,307.1492,5.000818 +0.7681578,9,254.8762,3.550494 +0.938885,33,967.0505,5.299149 +0.5058739,76,580.4191,4.782108 +0.7195724,42,493.8713,4.724312 +0.6590689,26,844.7261,4.214671 +0.8727227,80,634.8739,5.588596 +0.8332684,74,364.154,5.423553 +0.5644423,15,487.3337,3.548919 +0.5277456,46,305.2887,4.4392 +0.6731391,95,41.32865,5.372164 +0.8058712,32,449.7839,4.73212 +0.7805167,82,459.6353,5.346971 +0.6403517,29,324.7766,4.274653 +0.6894963,50,183.9768,4.814299 +0.840274,56,528.483,5.240915 +0.7802236,81,713.9484,5.329507 +0.6491817,91,183.0804,5.1731 +0.8662118,26,236.4739,4.791629 +0.8121542,56,879.6062,5.150578 +0.9429012,75,153.1888,5.987243 +0.944928,66,743.2445,5.814485 +0.5885454,71,468.0117,4.868063 +0.6490172,97,725.429,5.190661 +0.5939193,24,571.1581,4.022086 +0.5846302,29,702.0651,4.162268 +0.7266355,97,453.0783,5.343648 +0.7995213,35,300.3975,4.791758 +0.8849358,46,862.011,5.251369 +0.7821957,19,512.0406,4.248446 +0.6250475,20,955.2649,3.924167 +0.5438873,29,18.50624,4.206306 +0.6162852,40,191.5103,4.494984 +0.9380071,43,949.3993,5.476223 +0.6859009,82,401.6121,5.148329 +0.867299,43,321.3514,5.159297 +0.5054768,16,301.6068,3.497222 +0.8004985,45,897.7953,4.961837 +0.5992018,50,781.0341,4.620266 +0.7640982,43,68.31587,4.941959 +0.6466677,29,209.8136,4.294416 +0.5161559,100,304.6677,5.002615 +0.7669,24,402.9333,4.401981 +0.6212073,12,879.2709,3.453426 +0.8967,91,814.1106,5.760005 +0.756986,58,258.9546,5.062312 +0.6706516,11,896.8628,3.480077 +0.7702406,14,247.8120,3.964634 +0.9408331,3,59.2535,3.297193 +0.611694,79,157.4412,5.007073 +0.9133146,49,888.8744,5.422573 +0.7713459,60,989.9753,5.094866 +0.782709,8,864.2783,3.469534 +0.8122757,28,791.8693,4.640118 +0.9426235,44,832.2008,5.526677 +0.5151007,39,486.6782,4.283144 +0.9192788,97,80.94583,6.115433 +0.5547035,16,464.9022,3.589676 +0.8503518,58,999.2576,5.286516 +0.6912052,37,2.840297,6.232477 +0.6996373,20,398.5893,4.088258 +0.6826364,12,164.8152,3.605829 +0.7570145,59,136.6271,5.10443 +0.7892998,71,606.7073,5.263065 +0.693803,13,137.5442,3.711556 +0.5734344,42,847.0786,4.439896 +0.5256841,75,807.9073,4.802194 +0.8720609,44,196.4655,5.217903 +0.849763,58,113.6172,5.37946 +0.883915,86,606.7208,5.679039 +0.6986861,45,724.167,4.72818 +0.7730728,85,237.2305,5.375397 +0.6843036,37,881.977,4.547593 +0.8880187,90,652.6476,5.722867 +0.5066843,68,230.6495,4.707207 +0.8091692,37,685.1842,4.844475 +0.5834305,21,865.753,3.885641 +0.7739443,5,774.2294,2.953505 +0.782279,30,254.5893,4.630117 +0.840519,26,279.9131,4.691499 +0.5002118,84,350.2359,4.84983 +0.5737223,22,703.2993,3.908331 +0.6703492,20,616.1641,4.019935 +0.7475401,98,548.261,5.39069 +0.7815499,8,816.3322,3.466209 +0.7417556,23,517.3739,4.300781 +0.8445668,36,822.2591,4.929407 +0.7967811,31,707.4966,4.675692 +0.6796176,28,661.9581,4.318972 +0.8140635,80,911.781,5.402426 +0.6108495,96,245.8480,5.13348 +0.7784848,82,990.4747,5.329618 +0.6128227,6,414.9884,2.724943 +0.7579412,74,153.5898,5.263626 +0.6994303,53,631.9404,4.853168 +0.5234492,78,297.832,4.834109 +0.8478319,59,693.8864,5.295759 +0.6780007,82,653.9778,5.126247 +0.9499825,77,248.3936,6.008599 +0.7981417,17,519.4062,4.201151 +0.7752259,42,311.8138,4.863517 +0.826048,33,864.1303,4.805565 +0.667351,98,974.1075,5.227651 +0.6381593,62,681.9012,4.851483 +0.798938,4,711.222,2.783472 +0.5879505,42,369.4315,4.471059 +0.8196174,54,180.369,5.192559 +0.6100542,90,444.2154,5.076279 +0.6362786,23,233.5411,4.077975 +0.750284,26,116.5786,4.461778 +0.9369969,5,178.8826,3.771926 +0.5257318,9,706.6695,2.969496 +0.7478378,42,643.4664,4.784185 +0.9030148,45,524.4915,5.324933 +0.6976315,19,264.6202,4.045463 +0.9357426,73,645.4213,5.821537 +0.7157091,12,958.8152,3.668812 +0.7272343,13,369.1633,3.777322 +0.5502546,48,959.5066,4.504085 +0.9253864,96,765.634,5.93158 +0.9491976,69,528.1747,5.886513 +0.5999067,35,714.8857,4.343182 +0.6613981,43,778.2886,4.619001 +0.879046,30,112.4804,5.003622 +0.9058213,5,695.0025,3.520497 +0.8086484,19,697.3336,4.321889 +0.9370875,92,947.153,5.967871 +0.8467592,85,885.2863,5.53676 +0.7995316,96,972.5823,5.487207 +0.5848051,35,458.6017,4.318515 +0.7358364,58,597.9595,4.996038 +0.6540596,48,143.7583,4.719058 +0.5006105,81,662.1652,4.82027 +0.8346951,48,14.25703,5.788726 +0.7329782,6,43.70629,3.085010 +0.9066034,2,823.6592,2.375442 +0.7878482,13,906.5229,3.935062 +0.7943929,65,946.3048,5.207958 +0.632154,21,257.8158,3.990246 +0.8313863,47,269.2579,5.108403 +0.5335781,33,642.3327,4.177841 +0.7919937,90,737.0373,5.429159 +0.7023364,84,296.3370,5.204418 +0.8558765,53,630.4518,5.249077 +0.7163529,46,152.1295,4.816822 +0.8768499,33,273.0424,5.009091 +0.8699501,77,859.3091,5.547184 +0.6634953,75,282.3771,5.04935 +0.5972464,3,744.7833,1.820563 +0.5361586,7,933.6834,2.722984 +0.9211899,78,470.3899,5.790909 +0.7581645,23,977.301,4.336052 +0.8797704,57,184.4853,5.438209 +0.7138117,74,2.634701,7.444284 +0.6939382,2,41.70306,1.465464 +0.7119747,36,351.9855,4.594677 +0.809572,22,557.5994,4.4462 +0.6464639,71,906.9329,4.963047 +0.8569028,7,617.3857,3.608468 +0.5721191,61,902.19,4.723571 +0.7498904,45,663.3189,4.840069 +0.6409147,57,531.118,4.796568 +0.7570784,76,460.3876,5.239693 +0.655966,100,186.1752,5.251874 +0.6083228,89,915.9558,5.05899 +0.8398448,35,487.5325,4.901501 +0.5304431,41,517.3377,4.34911 +0.7651443,26,709.3049,4.454686 +0.7308961,66,9.157054,5.800235 +0.6492565,27,835.3336,4.225992 +0.8777307,91,212.3944,5.741262 +0.7739295,81,861.2667,5.312202 +0.8367624,47,515.6989,5.106047 +0.7151403,58,933.0991,4.94759 +0.8882203,46,972.1538,5.263063 +0.828799,27,232.0475,4.688259 +0.8518334,56,420.6314,5.283884 +0.790318,16,171.5772,4.149405 +0.5580039,26,502.0283,4.023696 +0.6352824,22,475.6875,4.030243 +0.8705968,29,851.155,4.861 +0.6465768,33,538.81,4.386032 +0.7590183,69,73.19668,5.279012 +0.6525166,3,888.6056,1.963260 +0.7502,67,678.8216,5.12912 +0.5088592,89,461.3315,4.903761 +0.7982266,76,366.1689,5.344668 +0.6969608,66,241.728,5.02676 +0.6023179,78,363.5392,4.963039 +0.6775685,40,714.0139,4.595814 +0.66376,7,908.377,3.011174 +0.8134477,16,708.8301,4.193725 +0.5391178,46,835.6779,4.452678 +0.8838125,15,159.1018,4.443479 +0.672796,93,961.0114,5.201217 +0.5799419,50,484.976,4.589876 +0.5265862,41,490.8695,4.342801 +0.7029529,64,386.5903,5.005399 +0.9227982,85,515.2134,5.851962 +0.7224784,87,964.932,5.249543 +0.7436994,23,694.6903,4.30269 +0.5867254,76,376.4596,4.91713 +0.920802,42,540.3073,5.36702 +0.9338496,64,748.9049,5.719828 +0.838145,37,289.8473,4.951242 +0.5418479,91,779.7418,4.968562 +0.7017749,25,780.5221,4.27309 +0.5447994,43,683.9666,4.410061 +0.871518,51,778.878,5.273395 +0.8858706,40,121.4736,5.244512 +0.5150946,91,202.8316,4.937838 +0.6716517,84,745.3948,5.130122 +0.7249413,9,340.9548,3.426074 +0.7069959,61,733.6144,4.969756 +0.9488083,68,720.232,5.863705 +0.615935,17,160.8070,3.77786 +0.7771524,10,561.6105,3.66843 +0.6106939,75,556.1777,4.944092 +0.6134752,24,374.4686,4.062762 +0.5894027,51,207.9282,4.632573 +0.8338988,49,547.5659,5.125847 +0.7043978,22,531.6043,4.17634 +0.7000624,42,531.8091,4.681899 +0.6362798,6,823.059,2.778423 +0.7907857,89,825.5564,5.416972 +0.9223966,58,656.838,5.590938 +0.7182263,84,915.3776,5.217181 +0.86109,81,997.8343,5.548408 +0.8848985,89,869.6922,5.697209 +0.651742,22,614.38,4.062032 +0.6605856,3,98.09387,1.994872 +0.882514,63,711.0102,5.462032 +0.7547409,29,689.7354,4.515432 +0.9344155,10,400.5296,4.366817 +0.8368518,60,859.1815,5.270026 +0.7531741,56,901.1335,5.004396 +0.755553,9,359.4564,3.509542 +0.5549631,38,47.68359,4.383727 +0.9452977,2,460.798,2.723966 +0.7122327,55,485.7671,4.910092 +0.8996243,27,993.7618,4.929864 +0.7124914,43,538.1343,4.725792 +0.660462,99,233.3052,5.245786 +0.9464191,54,778.8559,5.693103 +0.8299546,74,141.3385,5.46646 +0.8861815,93,564.7782,5.741055 +0.5689354,11,962.0052,3.260038 +0.5572705,4,974.416,2.109944 +0.7668345,75,828.1217,5.243156 +0.7570055,26,791.2877,4.433298 +0.8012525,50,338.7716,5.058115 +0.6085329,61,566.1486,4.788552 +0.7073712,23,921.3009,4.216015 +0.613116,99,362.8237,5.151726 +0.8869052,28,692.1336,4.904267 +0.693029,29,395.8174,4.380828 +0.8763198,16,419.0561,4.430672 +0.6236438,13,929.845,3.533911 +0.631617,99,172.1357,5.202372 +0.8453343,29,491.5275,4.778079 +0.7733883,46,643.9964,4.912519 +0.8837153,93,751.4323,5.724347 +0.5842343,8,245.8035,2.974394 +0.7813733,56,967.567,5.070012 +0.7918319,86,426.1061,5.409196 +0.5988063,89,374.8896,5.051499 +0.8410293,7,502.7104,3.545143 +0.7985893,44,518.6063,4.94787 +0.8933352,77,730.5682,5.6391 +0.5008204,19,263.4858,3.647075 +0.7042678,68,759.1042,5.042159 +0.5722501,47,515.0346,4.528346 +0.6796555,73,455.8959,5.05149 +0.826039,84,33.03012,5.8104 +0.7891293,33,519.956,4.706889 +0.6771388,83,646.286,5.133324 +0.7841508,5,513.7669,2.988859 +0.8459404,6,305.2934,3.416229 +0.8240553,7,432.4855,3.481931 +0.6144259,22,963.728,3.985171 +0.793283,22,23.60787,4.664766 +0.7154832,80,681.36,5.180846 +0.9356364,98,61.58024,6.31134 +0.6426233,21,114.6117,4.029196 +0.7534234,5,194.0182,2.898595 +0.6921663,53,686.5312,4.837731 +0.612162,76,666.1722,4.954618 +0.653742,59,619.762,4.844223 +0.63553,59,731.1882,4.809578 +0.6200705,89,378.8527,5.087704 +0.6739772,18,445.6196,3.939308 +0.9462715,68,524.3853,5.854955 +0.7380447,41,375.4509,4.751645 +0.523857,78,851.987,4.827968 +0.5059004,81,653.6981,4.828579 +0.7512636,98,220.7087,5.42606 +0.6992854,16,132.8526,3.914488 +0.8227314,72,30.54506,5.703733 +0.9484554,86,735.9275,6.009947 +0.6075916,30,535.5072,4.234346 +0.8852776,38,952.3645,5.115993 +0.5918882,6,400.8994,2.676709 +0.6517169,8,804.8244,3.121701 +0.6898073,77,688.0591,5.103501 +0.9030026,67,11.96135,6.805333 +0.7437836,28,699.2324,4.461164 +0.875612,18,962.0697,4.511439 +0.5997572,86,864.9031,5.020716 +0.7092418,23,309.4445,4.230975 +0.6523984,83,734.0368,5.086989 +0.5312756,4,851.336,2.050064 +0.6282366,20,929.0183,3.93066 +0.5370415,23,451.2979,3.880654 +0.8735109,63,350.2037,5.448246 +0.8351599,24,859.1465,4.59044 +0.9494263,72,211.5009,5.974775 +0.6140805,16,844.5632,3.705149 +0.7450794,4,714.8403,2.603754 +0.7300385,70,851.1554,5.114127 +0.5096593,78,938.8038,4.805399 +0.8180738,76,614.2184,5.384708 +0.7153642,97,572.9604,5.316716 +0.8078966,7,338.2535,3.42692 +0.6904116,91,286.7615,5.237953 +0.8160172,70,553.6183,5.324621 +0.6299202,51,455.703,4.694567 +0.7084219,4,257.4866,2.499209 +0.9497703,50,348.7214,5.697982 +0.8508624,78,645.7308,5.497724 +0.6742178,82,677.2921,5.118834 +0.8821952,94,356.1011,5.74971 +0.5468056,2,705.1514,1.061390 +0.6789854,45,410.6719,4.69475 +0.8280198,79,810.9767,5.433856 +0.6221906,86,539.6919,5.062418 +0.8026975,15,852.9501,4.104213 +0.8222019,21,824.7458,4.443411 +0.5803124,37,138.2354,4.371959 +0.6882381,48,926.1536,4.753676 +0.8179348,66,203.1527,5.324453 +0.5960629,43,262.2780,4.508414 +0.6974869,88,196.3518,5.240979 +0.823517,91,940.689,5.514238 +0.8117326,13,280.8571,4.022421 +0.9262007,64,178.3617,5.74963 +0.678415,15,464.139,3.78771 +0.806295,18,643.1348,4.27097 +0.6671483,35,754.7018,4.470686 +0.6650073,14,21.80781,3.833526 +0.5473471,40,56.81366,4.401174 +0.9026884,52,113.4952,5.524751 +0.799699,58,557.2425,5.148982 +0.6020433,59,817.6421,4.749881 +0.7945232,47,44.2495,5.16844 +0.9197076,74,211.6517,5.794805 +0.859864,54,580.0636,5.277453 +0.7954953,68,945.6234,5.242217 +0.6905937,86,716.3957,5.182364 +0.6441292,74,974.002,4.988236 +0.5752189,16,88.31872,3.650503 +0.7610879,100,405.8932,5.440726 +0.7511553,49,522.1999,4.90919 +0.8332004,35,975.6917,4.870302 +0.7003797,94,765.2736,5.262087 +0.5723759,36,250.6977,4.324629 +0.6185644,29,946.417,4.224327 +0.8220523,19,398.2014,4.371275 +0.8655022,88,16.47093,6.414553 +0.903933,34,975.2979,5.118896 +0.6888455,27,885.4896,4.307053 +0.8945567,50,805.753,5.350675 +0.6323121,54,180.8512,4.758951 +0.5020541,89,814.6319,4.890543 +0.9150541,54,356.8162,5.524083 +0.8965727,76,253.6532,5.685681 +0.6544637,24,615.9503,4.140782 +0.6635601,41,573.3519,4.589051 +0.6201682,46,998.2747,4.592474 +0.8774226,67,135.0859,5.569834 +0.890321,35,201.3599,5.125744 +0.9028605,30,676.057,5.028651 +0.7226537,96,9.642385,6.045286 +0.8471953,3,809.2317,2.622658 +0.8198636,89,693.7546,5.494297 +0.6348555,43,912.2159,4.567892 +0.6425137,75,606.9982,4.998836 +0.873109,75,309.51,5.571157 +0.5760752,33,224.8230,4.262233 +0.7945425,30,828.5185,4.642699 +0.8734823,23,934.1412,4.695301 +0.8686912,61,513.1925,5.395958 +0.6471778,44,937.891,4.608398 +0.5882846,29,724.5066,4.168854 +0.942896,29,366.4086,5.262554 +0.5419351,3,237.3975,1.688196 +0.7674567,2,77.04476,1.701728 +0.8917366,74,66.67197,5.815672 +0.6472711,97,597.1157,5.189636 +0.8479221,21,807.45,4.529399 +0.5589803,43,80.83193,4.467882 +0.5077531,37,732.3927,4.226506 +0.7923223,50,849.2879,5.017456 +0.670393,84,831.423,5.126814 +0.7826879,75,302.5934,5.302287 +0.9387543,94,401.9712,6.022296 +0.8283552,65,534.5723,5.30889 +0.7227295,49,63.70136,4.94129 +0.5687914,34,455.7122,4.266248 +0.5752718,73,98.7667,4.898616 +0.88616,3,302.6824,2.828999 +0.6065566,78,693.4897,4.963533 +0.9167606,89,568.2099,5.8468 +0.6724503,5,574.031,2.663222 +0.784313,83,235.2819,5.386913 +0.940857,31,414.4548,5.290129 +0.9325461,21,901.5054,4.929178 +0.6883665,36,742.762,4.53579 +0.9292036,61,757.2979,5.659778 +0.9008816,96,76.9742,6.01577 +0.761467,48,742.2594,4.913388 +0.8365658,18,440.6055,4.373552 +0.6552103,64,556.7721,4.907782 +0.8254065,34,223.5664,4.856578 +0.8217355,94,426.2313,5.547764 +0.8287026,66,565.9248,5.319255 +0.7975493,62,454.1757,5.194802 +0.6771793,98,812.32,5.246957 +0.6177541,60,35.37344,4.911115 +0.79438,33,936.6395,4.71411 +0.6183924,60,960.2377,4.789908 +0.8887941,93,403.5623,5.763103 +0.7753973,24,56.94756,4.521837 +0.6653419,33,43.18045,4.522211 +0.8109106,48,550.3599,5.043916 +0.613164,39,613.6455,4.454258 +0.9059224,96,93.82517,6.002161 +0.8163602,62,753.2386,5.235758 +0.7707746,66,330.8447,5.180342 +0.5982049,30,835.1149,4.214452 +0.872359,22,767.238,4.658577 +0.84028,65,577.014,5.342823 +0.826224,92,556.121,5.538669 +0.6703941,45,160.551,4.69885 +0.8316669,41,568.3738,4.989419 +0.672689,88,603.938,5.167016 +0.584872,45,537.5861,4.516311 +0.6643863,80,971.6719,5.080185 +0.719142,69,552.564,5.086569 +0.8751901,66,19.89127,6.10715 +0.6868238,12,614.6998,3.60127 +0.891284,10,336.6336,4.105752 +0.7381764,63,855.624,5.056398 +0.6877144,40,834.2985,4.61508 +0.8837561,100,155.7344,5.855813 +0.7723711,50,92.417,5.050388 +0.7447593,38,89.42705,4.768572 +0.8722185,44,412.1780,5.186088 +0.5126045,33,58.81312,4.172292 +0.6937582,85,587.4888,5.182627 +0.7911117,22,194.6301,4.415096 +0.5921802,31,24.67419,4.352036 +0.5053348,33,938.2297,4.127942 +0.8214973,89,376.6808,5.514248 +0.7951828,18,93.5989,4.294712 +0.6450288,86,64.36293,5.183766 +0.8471788,39,480.3094,5.005853 +0.5958538,18,899.7957,3.774029 +0.9010773,94,338.4129,5.829971 +0.6502918,91,432.7548,5.154538 +0.5670526,37,415.3917,4.332074 +0.9350157,40,645.5472,5.414702 +0.9044,14,99.43052,4.524826 +0.8317929,39,303.3309,4.968462 +0.6933141,21,939.7346,4.108837 +0.845593,30,813.2998,4.797022 +0.7186427,16,188.2066,3.952521 +0.859615,24,155.5391,4.723889 +0.7278887,22,52.30448,4.31952 +0.7061932,83,761.9076,5.186903 +0.9022402,64,824.017,5.551911 +0.6490087,66,217.7326,4.93539 +0.6943846,36,516.58,4.551637 +0.5684814,26,286.0778,4.047090 +0.6554544,18,448.8217,3.899225 +0.795269,35,839.412,4.762103 +0.6238327,24,757.4391,4.078363 +0.550766,30,447.5801,4.131244 +0.8800597,2,410.1339,2.203728 +0.6440965,28,63.0589,4.304735 +0.9043739,22,208.8758,4.840424 +0.6648802,53,571.521,4.786388 +0.5320439,20,588.0347,3.747539 +0.6128809,55,149.5538,4.741544 +0.5747402,66,978.2475,4.786235 +0.80501,14,784.1936,4.052608 +0.8099135,50,652.5404,5.067729 +0.7363827,31,749.4184,4.523436 +0.6852816,3,659.303,2.054130 +0.7694083,78,255.168,5.303633 +0.8575165,30,626.4122,4.842038 +0.7631899,27,940.2408,4.4774 +0.8203281,20,645.0849,4.400649 +0.6073138,40,473.9538,4.465438 +0.8104157,69,324.3091,5.313832 +0.7241617,4,471.6251,2.541906 +0.8205727,60,901.444,5.222101 +0.9149799,19,811.2267,4.746086 +0.835535,84,701.7006,5.499324 +0.7527543,44,242.7408,4.850217 +0.6686033,40,773.8855,4.577449 +0.9312872,47,190.7668,5.56208 +0.9144552,24,263.1231,4.950928 +0.8733462,47,566.8382,5.228998 +0.5232224,36,412.0128,4.233111 +0.718345,76,351.4148,5.16206 +0.9048545,86,630.1111,5.764843 +0.5196135,16,225.0018,3.526032 +0.7626791,99,791.2467,5.4246 +0.9192357,20,362.8843,4.827192 +0.7492633,94,650.9407,5.363063 +0.8498713,36,704.8396,4.949172 +0.9369925,27,874.8804,5.144813 +0.5837224,69,712.8748,4.83564 +0.7980785,21,88.03727,4.439118 +0.8667148,44,538.502,5.158677 +0.6073327,29,183.8453,4.218646 +0.7684573,90,986.2768,5.370184 +0.6936724,33,581.2125,4.480758 +0.687191,79,669.1087,5.116968 +0.8340377,99,903.1325,5.600063 +0.6832922,53,18.68955,5.108172 +0.5332718,13,806.5033,3.351198 +0.5237699,4,241.6940,2.035217 +0.9088265,97,84.6489,6.045124 +0.8294818,21,586.6442,4.470498 +0.791115,50,282.425,5.036552 +0.91856,95,725.4959,5.890514 +0.7135054,55,753.2236,4.907396 +0.860862,65,102.1001,5.515011 +0.84523,54,972.6275,5.220716 +0.8560852,74,754.1516,5.475962 +0.7238725,20,874.4928,4.13784 +0.9034313,16,194.8503,4.585412 +0.7031215,54,115.2008,4.9226 +0.7868186,17,274.4223,4.178258 +0.7080042,99,931.5809,5.310344 +0.582401,66,842.4972,4.799686 +0.9021958,53,930.0976,5.422111 +0.6511199,13,567.0518,3.595049 +0.8124542,90,259.2000,5.511839 +0.934324,66,273.5482,5.78612 +0.7660926,76,925.8054,5.249383 +0.748764,56,26.35096,5.274348 +0.7552357,89,102.7598,5.418272 +0.9286532,27,123.1344,5.182816 +0.7288266,2,328.6701,1.558771 +0.5496063,48,543.8712,4.505532 +0.7565857,88,985.629,5.328539 +0.5106877,35,381.159,4.188819 +0.7752931,36,442.6338,4.739741 +0.7177923,33,98.16995,4.583176 +0.7972243,10,377.3643,3.733916 +0.9295137,91,103.3631,6.085717 +0.7990287,68,939.0697,5.251259 +0.75437,67,721.0245,5.137621 +0.7973704,25,326.4377,4.52186 +0.6784953,44,958.7787,4.668511 +0.6956036,28,483.9274,4.355713 +0.659538,96,855.451,5.200489 +0.944546,31,637.6513,5.305119 +0.8469256,34,975.7063,4.893041 +0.6674808,49,435.8748,4.735723 +0.936232,20,52.79911,5.141708 +0.7975782,81,159.8681,5.42625 +0.903022,28,861.7582,4.974912 +0.8505326,35,125.4830,4.997666 +0.6403539,54,775.8325,4.751972 +0.8043825,29,409.8449,4.653847 +0.5183124,16,839.732,3.518277 +0.6213446,22,726.9033,3.99988 +0.5936926,37,32.76075,4.474718 +0.809751,64,986.4935,5.236491 +0.94077,53,544.5571,5.649796 +0.6905449,97,811.6854,5.264553 +0.7754784,19,389.0463,4.233604 +0.6515826,21,845.3145,4.020459 +0.8438344,94,511.9097,5.606381 +0.6452673,84,667.1204,5.083721 +0.849467,44,324.1082,5.112301 +0.7666643,28,291.3787,4.530994 +0.8586009,22,708.908,4.606299 +0.9265102,15,175.7067,4.677897 +0.5242165,59,7.200673,4.92003 +0.5045844,79,930.6226,4.806901 +0.7911816,76,301.5211,5.332991 +0.9307524,57,860.0465,5.621265 +0.8383404,37,672.318,4.932198 +0.8236633,34,770.2948,4.822038 +0.763047,99,153.1683,5.480739 +0.6548154,65,926.9123,4.913963 +0.7707323,17,527.2263,4.123076 +0.8738404,61,301.1623,5.433622 +0.8657663,48,554.2702,5.216425 +0.6843261,94,947.1752,5.229856 +0.6344909,62,841.2254,4.843361 +0.8845142,23,681.4296,4.745308 +0.8838358,36,498.6873,5.082622 +0.9302862,56,39.67869,6.015003 +0.8695975,51,255.0341,5.299941 +0.9011584,3,704.5094,2.914552 +0.6071735,24,272.4455,4.053728 +0.5175375,67,5.328416,5.096529 +0.5891973,3,210.3449,1.803305 +0.5194459,34,179.9309,4.186702 +0.6079837,87,952.0759,5.042047 +0.7140844,81,408.8203,5.194953 +0.8013718,68,190.4623,5.302434 +0.6591662,100,340.2262,5.240922 +0.6670773,12,331.8724,3.559844 +0.9341007,58,957.1275,5.651292 +0.723373,63,932.6138,5.024305 +0.5604985,59,224.9405,4.691283 +0.6705802,22,879.1055,4.099297 +0.7786912,75,271.8816,5.29626 +0.6685635,39,810.294,4.55748 +0.6490457,99,592.4233,5.207065 +0.6931737,6,418.268,2.922958 +0.8710123,31,718.8835,4.914593 +0.5736931,61,229.3061,4.739087 +0.6210157,25,266.6708,4.115779 +0.8493002,81,67.53119,5.693514 +0.7759961,77,213.7897,5.318234 +0.9185508,71,282.1866,5.739998 +0.8265519,63,476.959,5.284545 +0.6687311,37,717.4073,4.517729 +0.6494729,44,908.6333,4.612895 +0.6121188,49,703.1177,4.628304 +0.816316,40,418.4573,4.931516 +0.7798099,96,142.9824,5.505915 +0.586697,41,549.3181,4.446578 +0.7764464,83,647.4829,5.338891 +0.6998719,31,659.3081,4.443376 +0.7472036,65,694.0377,5.100702 +0.703049,69,89.38273,5.122236 +0.703443,6,842.3088,2.947383 +0.5989944,20,546.0432,3.875062 +0.7512451,14,663.2664,3.900565 +0.5872646,12,212.4875,3.389856 +0.949173,20,168.1584,5.08552 +0.9155182,25,239.3825,4.992388 +0.5755633,51,90.36437,4.630002 +0.5876624,7,960.5489,2.834894 +0.7044702,68,543.0481,5.046567 +0.79438,30,52.91661,4.776874 +0.7362505,42,945.8348,4.754237 +0.7126581,24,443.559,4.268968 +0.787679,25,648.4927,4.48379 +0.7151991,13,409.3209,3.746174 +0.8669045,95,523.904,5.687001 +0.7202985,54,207.1601,4.933934 +0.7311327,91,113.9181,5.367735 +0.6618435,59,377.5652,4.865612 +0.9116986,72,495.8482,5.687799 +0.7557157,12,567.5894,3.775468 +0.9163235,57,713.0014,5.544914 +0.8607126,20,925.3333,4.536246 +0.9231666,88,805.9913,5.862893 +0.6026225,75,581.2631,4.929917 +0.8698394,12,428.8574,4.160611 +0.6368494,11,272.8854,3.410454 +0.7667054,61,836.1898,5.097482 +0.8000152,97,106.0452,5.59455 +0.672968,73,419.9799,5.040077 +0.7445197,21,292.8912,4.240783 +0.6600486,20,419.2918,4.000971 +0.9095673,11,770.5601,4.273962 +0.6372859,29,931.7848,4.260334 +0.7531992,49,307.2706,4.924747 +0.8082588,93,104.2067,5.590879 +0.801224,59,699.5637,5.161321 +0.8842195,63,245.3876,5.507366 +0.8049434,29,661.9891,4.648005 +0.7825961,100,809.3402,5.476277 +0.888974,23,292.7039,4.785021 +0.7712366,64,203.9149,5.177267 +0.9101844,93,789.2389,5.834102 +0.5827066,16,736.1206,3.642731 +0.7353298,50,545.3903,4.887766 +0.9000253,29,878.5962,4.986079 +0.5437368,40,302.523,4.356087 +0.8315908,96,929.6324,5.572368 +0.8205049,52,953.6965,5.12034 +0.6426717,16,342.5943,3.769862 +0.5522754,46,775.7081,4.475167 +0.8128539,74,26.48869,5.734373 +0.5600869,20,573.3304,3.800104 +0.5674171,55,762.024,4.638407 +0.537677,28,997.0594,4.047145 +0.5726309,37,957.9053,4.337529 +0.7954047,66,127.4570,5.291504 +0.7471518,61,324.2084,5.069361 +0.5223553,32,951.6902,4.131766 +0.7520169,41,74.86224,4.862345 +0.7027413,11,484.6241,3.559348 +0.7187845,61,725.0286,4.993993 +0.7299217,16,873.775,3.961720 +0.7115777,4,604.7973,2.504418 +0.9172477,38,439.2534,5.283334 +0.6639819,89,337.2648,5.168281 +0.8368359,63,611.6161,5.30952 +0.7896925,94,298.3923,5.476009 +0.8271702,44,666.0247,5.024567 +0.8040352,44,843.4855,4.955639 +0.949263,7,389.1023,4.184174 +0.8328376,85,646.6266,5.501056 +0.526783,100,325.3328,5.018803 +0.6688105,77,836.735,5.06227 +0.8282477,67,108.7778,5.415125 +0.7113153,9,856.2697,3.385048 +0.589003,20,91.5303,3.880131 +0.7194362,14,611.8864,3.820276 +0.7537761,56,591.2144,5.010757 +0.6846757,99,320.4645,5.282772 +0.8769688,38,910.5023,5.083227 +0.7869178,90,830.2127,5.415139 +0.807645,26,61.79666,4.682424 +0.9448865,18,321.8201,4.930096 +0.7294469,49,573.7421,4.859254 +0.9085438,27,658.597,4.980016 +0.9300719,42,317.518,5.442027 +0.5834533,3,827.8777,1.786282 +0.6734082,82,171.4136,5.147934 +0.7569421,51,123.9995,5.002314 +0.7239631,76,233.7967,5.185775 +0.6186872,47,424.2941,4.61253 +0.6766206,44,508.0513,4.670198 +0.932699,90,275.5164,5.979196 +0.6464799,84,803.1497,5.084213 +0.9442864,16,521.2168,4.819767 +0.7918385,42,154.5967,4.935284 +0.7414237,35,819.7154,4.628522 +0.6115499,43,488.3118,4.529439 +0.8058953,40,515.7696,4.897627 +0.614234,59,903.9223,4.770477 +0.9121058,10,464.811,4.213932 +0.8476603,79,582.6491,5.498521 +0.7929727,77,169.8307,5.374357 +0.6338905,7,485.1146,2.94188 +0.7834596,30,327.6489,4.626784 +0.8774419,17,442.962,4.483792 +0.5609554,32,68.48343,4.237052 +0.7647811,68,827.2835,5.169981 +0.832964,23,5.440919,5.976688 +0.5741506,26,547.8397,4.052964 +0.9304252,17,468.5578,4.765566 +0.68403,28,184.1941,4.347467 +0.8176484,32,766.89,4.758464 +0.9411109,59,779.2206,5.713063 +0.926516,84,836.5033,5.850456 +0.8412952,78,932.087,5.461819 +0.6364015,99,162.6142,5.213254 +0.7070626,89,175.7054,5.273428 +0.6629175,76,40.89244,5.182355 +0.9395931,56,864.6944,5.665923 +0.8185325,98,199.7678,5.601049 +0.8494492,2,715.3348,2.035239 +0.8009258,81,434.5775,5.390702 +0.6815484,13,673.4679,3.662592 +0.80715,99,144.2072,5.599653 +0.6203594,100,943.6284,5.160893 +0.9240174,8,951.9496,4.08529 +0.8159787,65,519.9843,5.274393 +0.5230194,12,905.3269,3.253303 +0.7412851,52,267.3375,4.944869 +0.8801484,85,647.5159,5.655434 +0.802909,57,781.1324,5.139793 +0.8999761,9,456.1147,4.052302 +0.8341594,10,5.503232,4.891732 +0.8345882,67,930.7735,5.338458 +0.7542815,50,129.2632,4.978182 +0.7412981,23,855.8213,4.295311 +0.9113762,38,889.0846,5.236185 +0.8416925,29,982.5072,4.756377 +0.5095571,82,905.1603,4.842070 +0.9491786,4,917.2897,3.631085 +0.8049138,63,970.9605,5.212878 +0.6334493,6,736.2926,2.771905 +0.8973752,100,631.2114,5.829958 +0.5115773,7,521.9071,2.671702 +0.7581456,73,83.04014,5.304008 +0.7434194,84,267.1309,5.294006 +0.7207906,74,704.4638,5.136362 +0.9040117,8,47.05634,4.098636 +0.6233847,99,815.7837,5.159965 +0.7571528,90,298.5627,5.368868 +0.7701096,14,493.4289,3.954212 +0.6898053,44,472.0429,4.697632 +0.6360893,97,800.1676,5.167418 +0.8561774,36,21.78472,5.422449 +0.5753474,3,428.5272,1.767289 +0.9458913,41,28.3417,6.084906 +0.6731936,92,64.30473,5.294787 +0.8784051,40,304.3885,5.152199 +0.6835589,12,757.9798,3.592619 +0.7425327,83,284.7888,5.281525 +0.5474802,43,565.8282,4.415549 +0.679627,18,61.24071,4.006403 +0.6870299,89,382.3318,5.209086 +0.6341744,67,603.614,4.902287 +0.9344777,56,755.1912,5.63539 +0.8766567,45,511.7271,5.213287 +0.6304936,7,695.3798,2.932777 +0.6135839,38,197.7654,4.448517 +0.5532043,11,73.55859,3.248804 +0.9467684,81,424.0672,5.980747 +0.7369565,18,801.3018,4.080849 +0.8355981,45,249.5172,5.093117 +0.6856068,45,969.7303,4.699566 +0.7299538,98,466.1102,5.356919 +0.875668,44,958.7983,5.182152 +0.8005378,79,956.557,5.358165 +0.513656,88,766.3824,4.900481 +0.725377,62,531.5351,5.023478 +0.845314,12,201.7055,4.078737 +0.9495224,2,585.7786,2.771761 +0.7933197,64,651.044,5.199389 +0.535197,9,945.569,2.988493 +0.5272532,4,170.3757,2.044560 +0.6848626,100,69.06699,5.373987 +0.6996583,15,376.6187,3.838532 +0.888774,54,949.0652,5.376733 +0.5558322,15,641.6645,3.531028 +0.6628907,48,285.8969,4.717985 +0.7657242,43,421.0658,4.850639 +0.569207,28,54.71352,4.151142 +0.9085392,17,229.6301,4.654862 +0.5070748,64,13.36672,4.802679 +0.61338,40,504.4076,4.476023 +0.8674259,67,317.9034,5.472228 +0.616898,58,124.3922,4.795652 +0.7760441,72,511.691,5.243743 +0.744249,49,410.2558,4.897526 +0.5424169,40,275.7656,4.354667 +0.9030827,70,471.7542,5.630173 +0.9166235,43,743.5866,5.353063 +0.6056715,24,951.203,4.042294 +0.6035406,50,904.2237,4.627114 +0.8029719,27,449.0773,4.592429 +0.7518686,77,868.1552,5.227454 +0.8557797,13,260.3399,4.182154 +0.8567424,70,330.3319,5.463428 +0.9108702,96,134.5617,5.970751 +0.8152673,70,468.8401,5.326343 +0.511748,8,144.1443,2.822673 +0.7473972,98,741.933,5.385549 +0.6116945,33,651.738,4.318166 +0.7951198,99,863.7611,5.498526 +0.6094803,70,518.7182,4.892452 +0.6264041,91,783.8267,5.106219 +0.5996085,38,81.17409,4.448564 +0.6727878,39,768.5118,4.566196 +0.9323841,9,7.531608,5.509384 +0.6817553,18,528.9048,3.955063 +0.5344935,17,440.8971,3.606659 +0.8520906,66,498.9145,5.394094 +0.7163306,87,35.37812,5.448221 +0.5705777,10,80.44106,3.188661 +0.8051647,3,193.439,2.453639 +0.5721151,55,154.0183,4.66567 +0.6572475,72,965.465,4.992097 +0.910285,63,813.4502,5.579033 +0.9048497,9,219.7808,4.096486 +0.7566543,6,747.506,3.097807 +0.7815772,22,683.9203,4.36401 +0.5786503,50,369.4688,4.59009 +0.7074791,12,192.057,3.663563 +0.6707687,5,195.6387,2.664786 +0.6535881,74,599.2874,5.009229 +0.9449619,73,454.6559,5.897153 +0.5999044,66,80.468,4.879648 +0.9103132,3,745.8394,2.975553 +0.798354,82,620.4156,5.384614 +0.7068981,63,534.5147,4.996694 +0.7926765,97,170.8177,5.533752 +0.5030747,66,276.78,4.676993 +0.6412308,91,198.3963,5.155648 +0.5837347,28,12.83706,4.340776 +0.6307461,77,501.6002,4.999005 +0.5892319,22,613.943,3.938322 +0.9173725,82,327.6299,5.820418 +0.8466205,52,964.144,5.198747 +0.7778326,20,118.1721,4.318618 +0.6377339,39,145.3060,4.52407 +0.8973141,53,65.21878,5.603597 +0.680635,95,961.3994,5.230268 +0.802825,70,272.1754,5.309848 +0.7659804,79,673.3793,5.280033 +0.8782393,26,629.0036,4.813546 +0.8774979,9,139.6891,3.970449 +0.525396,43,253.7263,4.383524 +0.8223621,89,773.2267,5.499203 +0.681816,15,451.6343,3.795628 +0.9253184,59,524.5041,5.625282 +0.534124,3,580.5324,1.668108 +0.7524038,24,900.835,4.356676 +0.8326032,81,585.9235,5.469971 +0.8192468,59,568.3666,5.213842 +0.604393,44,288.0690,4.540236 +0.5586066,12,147.7344,3.334218 +0.8883083,73,995.3096,5.577656 +0.6432519,61,561.362,4.850509 +0.5102173,65,972.368,4.670415 +0.7003389,16,957.4265,3.890828 +0.5521129,11,4.547047,3.579797 +0.59708,31,140.4593,4.259507 +0.8134452,29,902.408,4.669319 +0.9260697,59,51.65915,5.924638 +0.8265399,16,547.1571,4.238842 +0.832042,17,312.8203,4.31748 +0.6216659,61,817.8548,4.808829 +0.7283849,92,389.5894,5.314127 +0.5672065,11,610.8746,3.257575 +0.5323523,44,361.2781,4.410664 +0.59117,55,655.6214,4.679735 +0.6095431,19,307.1752,3.855151 +0.6091849,51,227.8409,4.666844 +0.7753224,78,517.2963,5.297495 +0.7268435,83,747.4984,5.22845 +0.730585,72,890.9116,5.134721 +0.6442031,8,887.0963,3.103915 +0.8302386,72,521.1991,5.385542 +0.7942507,67,324.7722,5.250096 +0.5806502,20,278.2976,3.844107 +0.8981183,13,968.5417,4.350224 +0.5357593,27,599.0527,4.0146 +0.7095182,34,629.3844,4.537233 +0.9377532,42,526.5726,5.472395 +0.7851188,86,644.761,5.383838 +0.7201651,86,630.1342,5.241761 +0.9102288,83,621.2721,5.766953 +0.6411688,68,830.1142,4.922934 +0.6090806,15,180.3769,3.647734 +0.5787879,36,718.225,4.327657 +0.814151,100,408.9423,5.569888 +0.6659953,86,37.7504,5.29409 +0.7499388,33,212.7551,4.626876 +0.8165642,69,474.2051,5.319668 +0.7661147,22,176.09,4.34867 +0.7600815,72,879.7484,5.198689 +0.5405304,20,170.2612,3.771913 +0.8303233,39,62.11989,5.087436 +0.5649674,54,939.8396,4.619411 +0.5468609,19,890.826,3.728276 +0.5018868,20,172.1611,3.698457 +0.5700143,57,62.23176,4.722349 +0.5904414,29,332.7185,4.178141 +0.6844848,44,537.8669,4.685287 +0.8536574,32,840.1896,4.872602 +0.6186735,82,923.3346,5.018009 +0.6855065,93,374.6255,5.237324 +0.9478164,43,546.3272,5.561435 +0.9324406,18,441.5948,4.825239 +0.6415473,32,767.5264,4.349149 +0.8552597,68,165.8796,5.477813 +0.9283917,62,763.6844,5.665571 +0.5535796,10,278.4392,3.137836 +0.7494807,64,396.153,5.104272 +0.7287479,23,147.1992,4.295707 +0.8010544,7,249.5940,3.407520 +0.7245908,52,658.1033,4.890957 +0.5780999,8,736.3381,2.956657 +0.8479071,13,535.5617,4.138403 +0.910282,88,706.6015,5.801665 +0.8260243,44,5.778081,6.569068 +0.7756616,12,68.24743,3.89199 +0.6779172,29,865.7203,4.34203 +0.7121331,60,51.67999,5.094517 +0.7587412,53,351.5271,4.992108 +0.7138279,6,622.5837,2.976316 +0.936066,61,493.9761,5.71497 +0.8927102,6,980.146,3.625845 +0.6222097,66,180.9405,4.890236 +0.7076899,93,746.9903,5.269072 +0.5555804,37,640.2992,4.309252 +0.7877178,36,777.8668,4.764064 +0.5842511,62,164.657,4.776821 +0.7328623,93,816.8986,5.318279 +0.6259894,52,479.0156,4.701554 +0.7226905,10,468.7935,3.519339 +0.5265653,19,997.8564,3.690211 +0.7318997,64,207.9046,5.084091 +0.9192412,69,667.0859,5.68892 +0.6231767,50,43.20987,4.759639 +0.6972005,80,845.1849,5.142585 +0.7779439,85,932.2534,5.353608 +0.9107332,100,582.1592,5.891565 +0.5050257,84,446.7605,4.855801 +0.637655,47,47.76077,4.734205 +0.785115,35,964.5286,4.73395 +0.690956,54,62.90913,4.940018 +0.719769,35,634.1213,4.582082 +0.5616795,56,915.7953,4.641653 +0.7737041,3,910.5499,2.330052 +0.8643882,91,65.94819,5.842094 +0.561113,19,13.89679,3.905443 +0.9246243,97,84.66878,6.138777 +0.8416577,64,208.3890,5.37398 +0.8823102,83,392.9894,5.663599 +0.816154,2,264.6879,1.884422 +0.6025324,62,199.5932,4.80521 +0.6947627,64,531.0227,4.983875 +0.6520982,2,38.59697,1.343845 +0.878029,87,501.3924,5.669977 +0.528619,6,922.9151,2.534323 +0.8532033,32,661.1688,4.874277 +0.5825841,85,19.02259,5.179472 +0.6906217,45,412.6579,4.718226 +0.668097,19,51.25001,4.03855 +0.8786804,92,948.0557,5.694116 +0.8551716,39,424.7596,5.036045 +0.8539307,28,756.1924,4.774472 +0.6223484,35,342.108,4.390973 +0.6102817,42,571.9411,4.507539 +0.7181276,87,831.6475,5.242309 +0.6940214,57,492.6249,4.898956 +0.8179872,85,77.64156,5.595095 +0.6283061,33,563.8613,4.350425 +0.6075136,55,379.0673,4.713306 +0.9265058,36,445.4369,5.297881 +0.6868859,8,470.9334,3.208735 +0.7996129,99,964.0103,5.508082 +0.5830702,24,774.4583,4.000224 +0.5702618,68,64.00718,4.856072 +0.5789566,43,972.203,4.467412 +0.5874349,36,916.7149,4.342063 +0.5833758,65,258.9836,4.801495 +0.8635545,49,458.9639,5.227687 +0.5935735,79,119.1572,4.983546 +0.8131558,84,845.3671,5.434132 +0.7309313,34,65.37927,4.670561 +0.5603136,54,231.8187,4.623004 +0.5756098,18,173.3843,3.745856 +0.8461455,71,301.1804,5.442179 +0.5327761,26,841.531,3.976124 +0.6493861,11,935.9827,3.431666 +0.8630635,100,888.5135,5.695541 +0.851174,47,429.4618,5.156982 +0.5861503,12,716.7889,3.380622 +0.921095,23,15.19805,5.710247 +0.5782739,5,942.0811,2.433206 +0.6693196,90,622.6583,5.176223 +0.5364548,35,405.8181,4.233303 +0.809616,81,687.281,5.40342 +0.9149833,46,412.5279,5.407319 +0.7445979,62,793.9484,5.059691 +0.8165355,8,394.0338,3.586587 +0.7509344,69,859.8796,5.148696 +0.6117458,55,682.8256,4.715332 +0.5845061,74,151.8629,4.91113 +0.7070729,49,328.4277,4.820550 +0.7195724,98,110.8851,5.395834 +0.6141301,77,832.5952,4.96579 +0.9010887,75,502.8683,5.664959 +0.8695804,75,635.2031,5.534273 +0.6162468,36,706.3104,4.395769 +0.9283751,95,975.9121,5.935814 +0.8729349,86,442.2792,5.64784 +0.8494098,3,32.31192,2.708795 +0.9168347,42,714.2314,5.338657 +0.5352037,24,911.7365,3.911702 +0.9059443,87,965.2333,5.767539 +0.7047665,61,370.0491,4.975073 +0.8152647,77,323.5922,5.403395 +0.8688586,64,478.9834,5.431414 +0.751632,9,470.4753,3.496043 +0.8244728,7,309.2294,3.487371 +0.8102466,79,903.5838,5.383902 +0.7057721,86,629.8928,5.213153 +0.5553194,60,33.40271,4.773593 +0.881195,60,621.9124,5.426565 +0.8358636,77,901.8299,5.437479 +0.696193,55,164.4135,4.904172 +0.932106,71,607.8688,5.782766 +0.6710505,44,631.6179,4.656993 +0.6212366,63,562.5125,4.834803 +0.8203601,4,27.23376,2.964745 +0.8001745,56,274.3495,5.143934 +0.9013971,27,296.505,4.965852 +0.9069266,82,392.5688,5.759936 +0.9232269,57,276.2901,5.61906 +0.9367268,68,482.8852,5.791665 +0.8689248,13,356.4507,4.228787 +0.702432,42,188.5659,4.708193 +0.5472108,23,207.8573,3.905311 +0.9229038,25,823.9425,4.998866 +0.5444981,28,772.9021,4.059997 +0.6736287,48,818.3279,4.725838 +0.7463483,76,478.1093,5.215087 +0.85102,55,389.6101,5.270833 +0.5619721,54,332.6585,4.621322 +0.664734,55,579.3978,4.813541 +0.8474316,71,106.0218,5.524184 +0.8554368,14,396.4834,4.234974 +0.865614,95,693.5883,5.675409 +0.5348477,17,295.1280,3.609408 +0.6671405,93,634.2797,5.194961 +0.9346352,15,200.4010,4.728396 +0.7714221,20,840.6805,4.256987 +0.7079719,52,749.5469,4.854797 +0.6277378,26,988.1618,4.151760 +0.6268555,98,629.3872,5.160994 +0.9238709,95,758.1687,5.917006 +0.6475484,68,21.38955,5.16726 +0.6446082,93,997.1099,5.151013 +0.7764024,4,247.0520,2.71087 +0.7230928,84,946.2879,5.226642 +0.8371537,38,946.4194,4.9437 +0.8428408,68,709.7673,5.377647 +0.5555994,10,563.73,3.139113 +0.7219313,99,561.1249,5.344151 +0.937448,23,28.74689,5.480904 +0.7335617,91,970.2005,5.302966 +0.8613441,6,176.6877,3.493646 +0.6869626,85,244.9659,5.187716 +0.9275152,86,83.32556,6.077996 +0.7939986,46,732.5617,4.963035 +0.7970223,30,882.1072,4.648926 +0.7209646,54,924.5706,4.907675 +0.8306365,96,607.961,5.577427 +0.6464567,14,9.694352,3.942865 +0.6340444,37,736.7627,4.450466 +0.8069274,40,95.86887,4.977036 +0.8013634,42,503.7897,4.921649 +0.9055047,42,118.7202,5.378602 +0.6954729,47,821.6369,4.753285 +0.6674997,44,239.8386,4.66436 +0.5699985,53,317.533,4.621385 +0.5287525,36,637.5462,4.240597 +0.6176084,4,475.3884,2.25576 +0.6085563,96,649.2288,5.115429 +0.671319,81,817.5754,5.102995 +0.9359667,37,92.84325,5.510533 +0.9292207,27,886.3095,5.092884 +0.941389,89,885.4375,5.976429 +0.5803328,53,74.98485,4.677075 +0.8983655,32,703.0716,5.05373 +0.6437962,43,460.7536,4.589923 +0.5086535,74,187.668,4.776272 +0.7736891,71,449.2642,5.231069 +0.8452449,32,304.0644,4.864419 +0.6696278,45,583.9474,4.672059 +0.6992343,65,438.3437,5.006878 +0.660791,31,961.1734,4.36029 +0.6564748,41,22.05504,4.776298 +0.665124,24,850.8597,4.16084 +0.8835836,27,965.2559,4.858438 +0.8815548,25,387.4771,4.807794 +0.6965337,31,975.1651,4.433565 +0.7860235,6,178.6597,3.203474 +0.8831334,48,57.10986,5.485092 +0.7900111,31,162.321,4.694016 +0.80504,90,989.0279,5.457521 +0.7779963,47,888.8225,4.935917 +0.8709396,21,6.076414,6.109931 +0.8758326,43,504.5797,5.178094 +0.8322847,18,610.0355,4.354371 +0.9086776,17,153.3854,4.677248 +0.788782,68,615.4611,5.231419 +0.5539504,2,984.5186,1.078088 +0.7439927,12,872.5737,3.741407 +0.8164331,71,103.7183,5.424622 +0.6064425,6,33.65510,2.751554 +0.8815675,16,550.0871,4.448882 +0.7435157,46,251.4903,4.860642 +0.94865,6,343.7878,4.039293 +0.9017165,65,280.3346,5.597134 +0.870245,56,159.3285,5.399134 +0.5617548,18,212.3836,3.716077 +0.8854695,56,81.97713,5.542365 +0.5792403,52,556.462,4.617672 +0.5890797,51,387.0378,4.623079 +0.6885989,98,502.3955,5.274165 +0.851565,71,129.9867,5.516691 +0.7055726,26,324.1496,4.322812 +0.5700456,55,957.5553,4.641816 +0.6144216,45,450.7585,4.570643 +0.7825922,22,521.1032,4.369765 +0.5166394,83,138.0069,4.879737 +0.6137133,51,713.3682,4.661488 +0.5643472,39,355.1127,4.370699 +0.6369376,93,324.8522,5.15104 +0.6506586,36,605.8106,4.46205 +0.8290645,55,544.3193,5.19356 +0.7932623,73,960.7906,5.285625 +0.8382057,96,207.4720,5.64295 +0.732158,41,137.2255,4.770089 +0.9480985,16,313.3048,4.867939 +0.6386916,99,589.2802,5.189086 +0.9390022,23,957.4552,5.041156 +0.5697346,38,17.83553,4.510244 +0.7913318,66,293.3076,5.235361 +0.6868162,4,387.668,2.43642 +0.6463822,54,750.9945,4.763262 +0.9371176,47,313.4571,5.566868 +0.50428,99,824.273,4.970733 +0.5946511,64,346.1248,4.805316 +0.8709878,57,759.798,5.34904 +0.6831977,45,11.36341,5.134924 +0.6508286,62,148.9947,4.90477 +0.9287122,60,801.24,5.644665 +0.6910198,69,990.3954,5.024397 +0.8440781,9,525.8345,3.796168 +0.8004705,72,489.8934,5.305356 +0.6084492,69,224.9862,4.892618 +0.8184517,82,935.883,5.430576 +0.7762058,75,950.8389,5.263271 +0.5760073,8,894.4134,2.951756 +0.8086744,7,174.8679,3.440552 +0.9261343,84,946.4264,5.845667 +0.7364095,79,848.88,5.212448 +0.8509722,25,417.1328,4.687007 +0.6892558,24,104.9072,4.250703 +0.8036012,61,102.1672,5.277396 +0.6162426,79,656.3961,4.989624 +0.5791517,72,467.3013,4.862522 +0.5149917,94,378.281,4.954349 +0.9379776,25,464.946,5.109888 +0.9067495,32,38.34473,5.403331 +0.5240937,28,961.5862,4.023214 +0.5280742,24,311.7771,3.903208 +0.6576594,4,689.7833,2.356709 +0.6781805,10,757.1474,3.406736 +0.5971721,63,324.5377,4.798868 +0.5290827,34,770.204,4.193887 +0.9037198,90,293.7151,5.821269 +0.6534974,48,190.0638,4.709046 +0.6981573,26,853.1525,4.296611 +0.6468021,48,748.4224,4.675426 +0.9040386,68,838.5664,5.60011 +0.7857422,38,481.7715,4.806148 +0.607947,42,201.8933,4.516507 +0.5071259,76,937.1517,4.782286 +0.5427897,92,431.5726,4.981826 +0.9072125,95,154.3396,5.92806 +0.9484,99,33.92708,6.716453 +0.8050603,87,9.65729,6.442394 +0.8860068,5,388.8540,3.412397 +0.6358902,52,845.1992,4.714964 +0.9361354,17,750.0811,4.796561 +0.8008013,49,565.2006,5.030775 +0.926761,26,575.6264,5.057938 +0.8576906,60,272.9478,5.368179 +0.7202081,22,979.6327,4.208136 +0.5819503,76,205.3432,4.918833 +0.6698566,12,945.551,3.560221 +0.6418892,55,64.02962,4.841915 +0.5271493,33,949.0254,4.165456 +0.8930948,23,24.1638,5.197677 +0.8822868,39,737.3787,5.126144 +0.6887659,6,343.5825,2.912568 +0.8297944,98,341.6935,5.606095 +0.6721322,46,193.0996,4.713452 +0.5849796,45,355.7672,4.520102 +0.6888258,5,729.3948,2.705554 +0.5311742,29,272.9869,4.071185 +0.8957202,49,516.2053,5.351545 +0.7909933,13,650.5345,3.946661 +0.6261204,51,142.9204,4.710608 +0.9168821,37,77.57931,5.410771 +0.8331488,69,43.80345,5.607263 +0.64225,94,956.1799,5.154705 +0.7601495,91,920.2586,5.359983 +0.7892926,96,349.8586,5.483655 +0.6306155,33,967.1055,4.351705 +0.6726184,80,51.44195,5.215103 +0.7116622,19,546.5421,4.069148 +0.6864173,18,182.2196,3.980004 +0.863477,91,543.1546,5.645966 +0.5452934,24,641.5907,3.931072 +0.7300484,91,650.1359,5.300523 +0.6697613,89,881.9166,5.165746 +0.5722327,44,356.5360,4.479965 +0.6642942,46,79.42196,4.736867 +0.6101755,69,492.5268,4.883647 +0.8585281,14,237.7073,4.259236 +0.9097088,71,482.4178,5.669828 +0.6898688,62,411.6998,4.954969 +0.810742,62,578.5291,5.224823 +0.8362431,75,527.7266,5.430838 +0.9416213,63,511.2204,5.772444 +0.7244791,7,610.4706,3.168309 +0.7757211,83,876.2432,5.332888 +0.7827547,64,120.3467,5.239134 +0.6797277,86,489.6258,5.166825 +0.756696,81,778.559,5.27448 +0.8787565,70,506.207,5.527242 +0.8407648,43,624.1819,5.050881 +0.812129,63,378.47,5.249874 +0.7311311,100,545.6201,5.370173 +0.6494214,71,989.3894,4.967769 +0.5589163,3,407.2068,1.727566 +0.7051075,21,910.3279,4.135289 +0.9440894,27,128.4959,5.29461 +0.6493793,36,815.854,4.457538 +0.5269008,22,20.1956,3.909876 +0.7765532,69,131.1495,5.270598 +0.8623126,59,805.8516,5.341169 +0.7862556,15,445.9598,4.061422 +0.7984945,11,16.42409,4.112416 +0.7628009,94,335.4126,5.40785 +0.5707517,4,754.9215,2.141816 +0.8307415,59,259.4171,5.271136 +0.9261452,91,879.6235,5.898394 +0.5931118,19,412.5692,3.820128 +0.7341011,30,290.3247,4.5055 +0.6307421,94,480.651,5.141479 +0.6214507,52,761.9476,4.689565 +0.6122929,51,391.2011,4.66427 +0.6126767,22,965.1558,3.981753 +0.6781432,82,529.8376,5.129141 +0.7212714,68,628.3364,5.078783 +0.8463072,52,414.1375,5.213921 +0.5499381,48,128.7722,4.524313 +0.8552063,45,983.869,5.124362 +0.7168726,54,76.57087,4.98376 +0.5863685,28,436.8953,4.139119 +0.6002564,4,212.4021,2.216034 +0.6476712,27,567.834,4.225193 +0.5111378,12,230.9686,3.234319 +0.8874011,31,699.3229,4.981643 +0.6029039,21,853.7822,3.923142 +0.844009,100,494.6368,5.648871 +0.6724859,33,871.8237,4.434046 +0.6211092,3,206.0795,1.884215 +0.8536017,100,339.2334,5.692342 +0.9383143,76,126.6032,5.989349 +0.5257438,86,212.6910,4.913543 +0.6733605,100,893.5537,5.253112 +0.6432021,12,786.3207,3.501315 +0.6230217,88,173.8344,5.102506 +0.6406076,51,392.1265,4.716152 +0.8299653,74,144.4691,5.464652 +0.711774,49,720.2103,4.819034 +0.6283814,10,413.4422,3.295601 +0.5821459,59,999.1213,4.714968 +0.6715785,20,695.5452,4.021824 +0.8592576,52,916.6212,5.241093 +0.542849,42,279.0223,4.3942 +0.537032,81,618.1086,4.877919 +0.8894632,38,737.5884,5.137352 +0.6570416,51,953.9288,4.738709 +0.9168326,47,24.62193,5.997725 +0.8971111,17,803.4249,4.565065 +0.5770282,56,547.2414,4.670345 +0.9473995,62,535.2846,5.802564 +0.5455282,93,714.1213,4.990395 +0.5863393,45,768.3091,4.516744 +0.7665414,16,849.9519,4.056045 +0.734118,54,776.0034,4.937319 +0.7203634,64,274.5625,5.04965 +0.659862,45,748.1406,4.651066 +0.6805168,34,603.1331,4.476605 +0.8645582,64,484.6595,5.415833 +0.8906369,26,384.7536,4.877756 +0.9474115,20,416.8705,5.021933 +0.6411807,57,330.5903,4.80329 +0.5703219,58,514.8321,4.685923 +0.7626901,30,75.8481,4.641237 +0.8855596,42,839.1963,5.190222 +0.9174876,27,572.5325,5.030947 +0.5043899,20,700.1571,3.696164 +0.5387181,100,214.0170,5.043657 +0.889451,94,411.1439,5.771975 +0.6211653,61,929.5267,4.807188 +0.726502,69,816.1978,5.096984 +0.9034006,27,188.2023,4.99858 +0.8471982,47,921.634,5.129633 +0.6937758,9,797.0683,3.341297 +0.5347142,19,938.8299,3.705463 +0.7464367,95,284.5240,5.383845 +0.5356522,31,119.4054,4.146077 +0.7287865,54,105.8386,4.986942 +0.7582195,10,393.5145,3.616798 +0.7883883,16,759.7446,4.117701 +0.580503,34,116.2226,4.308078 +0.5592169,53,86.60802,4.630375 +0.8841168,35,720.886,5.055972 +0.787728,8,431.0659,3.489781 +0.7440935,96,462.1459,5.37265 +0.547159,28,549.1209,4.066083 +0.6133399,7,31.53534,2.94565 +0.502118,22,858.4678,3.77632 +0.9333538,38,609.3464,5.369694 +0.6024722,75,638.6493,4.92888 +0.9074494,32,541.4686,5.102969 +0.6300227,79,159.6278,5.040472 +0.7318348,24,317.7376,4.318522 +0.741385,49,607.519,4.884875 +0.7133042,90,534.2835,5.262046 +0.7731119,64,555.0199,5.152396 +0.7659718,64,902.1246,5.129016 +0.692532,54,15.18751,5.217929 +0.7237324,40,311.8354,4.70425 +0.7820585,92,123.1948,5.494088 +0.8127579,20,389.9402,4.384254 +0.7185323,50,966.4689,4.845642 +0.7159182,54,783.1741,4.898585 +0.5016469,14,892.8262,3.360851 +0.6591599,72,400.8591,5.005014 +0.838539,89,620.7018,5.549374 +0.7455755,65,625.0824,5.098517 +0.9332795,27,755.9687,5.121938 +0.6061578,88,852.1542,5.047813 +0.6962892,84,664.6649,5.177628 +0.5947195,17,875.5658,3.72079 +0.6775777,53,539.8698,4.811517 +0.779415,80,754.9234,5.318238 +0.6246729,36,474.7039,4.414399 +0.8229145,91,413.4531,5.530172 +0.6903401,99,874.5921,5.277501 +0.5398703,51,286.4902,4.541068 +0.74952,4,502.8889,2.618777 +0.8640506,33,6.8444,6.388552 +0.9202534,49,339.0399,5.487683 +0.6719591,58,852.3847,4.86309 +0.9207745,32,368.0822,5.186344 +0.8846664,81,528.0204,5.646296 +0.6523939,96,646.4013,5.190536 +0.8606456,24,470.2877,4.688268 +0.6330717,34,113.3899,4.413138 +0.7145774,68,95.60072,5.132608 +0.7099229,38,220.1979,4.642589 +0.7290925,15,20.12214,4.110961 +0.9385502,61,264.7995,5.763972 +0.5603532,7,885.8671,2.775121 +0.7057838,42,68.22778,4.772341 +0.658553,20,643.2781,3.994641 +0.8370777,33,279.929,4.863052 +0.5989733,21,486.2542,3.918143 +0.6681295,12,829.0133,3.556748 +0.6356377,43,817.5014,4.569956 +0.6267693,93,462.5766,5.12758 +0.8400407,30,840.948,4.778211 +0.778122,92,63.86752,5.560302 +0.8315789,86,180.0045,5.557248 +0.5899593,72,82.99947,4.923858 +0.6298938,6,324.3013,2.766343 +0.8650625,45,810.102,5.161229 +0.7166938,77,519.5638,5.160264 +0.6128868,83,494.4236,5.022079 +0.7190987,63,988.826,5.014988 +0.8141917,54,62.45263,5.281654 +0.6892226,77,604.2335,5.1039 +0.7579322,39,483.3476,4.756018 +0.774113,12,376.1970,3.831128 +0.888773,9,193.2689,4.013519 +0.9433137,19,225.0416,4.975592 +0.668966,35,323.5154,4.483325 +0.5799831,32,858.7687,4.233789 +0.6964942,57,265.0989,4.915871 +0.7890881,19,622.6752,4.265669 +0.7703855,61,666.6304,5.108969 +0.7360461,100,156.7199,5.423589 +0.8626526,80,916.5676,5.546618 +0.8052394,59,234.3321,5.201593 +0.9434135,16,488.0507,4.814165 +0.675481,11,447.5658,3.494619 +0.7456587,71,858.7813,5.157294 +0.6115988,44,621.5159,4.545473 +0.7125888,13,903.394,3.734631 +0.564883,12,911.3827,3.336676 +0.8422981,35,737.8664,4.902571 +0.6269619,22,962.1986,4.009839 +0.7464384,89,917.6661,5.31518 +0.8062435,86,203.6891,5.476226 +0.6016839,63,164.1402,4.82052 +0.7231435,90,183.1313,5.313472 +0.9296296,69,712.086,5.744837 +0.7964493,18,372.9885,4.248754 +0.9082465,11,729.5307,4.267029 +0.7954384,80,890.9846,5.354851 +0.69333,30,549.6491,4.404942 +0.888512,38,226.2884,5.171376 +0.5163259,79,965.7332,4.825084 +0.8625625,40,270.5909,5.095962 +0.7878012,75,456.2498,5.303224 +0.7169962,38,24.90004,4.866604 +0.7119138,31,136.3598,4.502702 +0.9016313,80,625.8683,5.703408 +0.6697849,64,819.8403,4.931256 +0.6393241,36,822.4557,4.438223 +0.6457774,22,286.3792,4.056812 +0.6075175,5,507.1766,2.502779 +0.5790579,35,891.444,4.304589 +0.6785852,97,632.1274,5.245173 +0.9260163,27,785.0145,5.07486 +0.624276,100,624.4551,5.170826 +0.514745,99,233.9589,4.996166 +0.7554237,90,27.37145,5.658256 +0.8304656,20,75.88332,4.520449 +0.9465676,54,175.3672,5.777202 +0.9349736,67,373.3616,5.78206 +0.862613,34,248.4125,4.979623 +0.9212936,13,780.8202,4.483226 +0.7610356,13,216.7360,3.875411 +0.901645,33,163.7603,5.150118 +0.938008,100,475.4582,6.04847 +0.7903692,73,374.8208,5.295927 +0.9234672,71,793.222,5.726025 +0.8868499,22,658.971,4.721847 +0.9136649,96,313.9001,5.906933 +0.6772373,5,825.3243,2.674723 +0.7484092,30,211.6643,4.54816 +0.5736467,50,354.4955,4.581787 +0.8963927,40,739.9752,5.204105 +0.6797554,77,357.669,5.094093 +0.6830636,48,373.3237,4.753272 +0.6249168,59,358.1955,4.797946 +0.6989866,36,742.6241,4.557865 +0.720914,97,799.1175,5.323244 +0.8050567,78,401.0264,5.377754 +0.8354936,89,886.472,5.533914 +0.8940905,3,516.5265,2.87191 +0.7170255,57,97.04115,5.005992 +0.6894167,8,999.7774,3.212098 +0.8153368,83,640.4252,5.436478 +0.7875185,40,748.8123,4.842901 +0.5928658,38,222.8933,4.407356 +0.9368355,59,283.7960,5.725235 +0.8439394,88,743.0444,5.554312 +0.8655847,61,746.2011,5.376758 +0.615964,7,492.0405,2.900309 +0.708786,23,250.7864,4.233693 +0.928492,77,249.3429,5.858765 +0.9213118,70,240.5459,5.756381 +0.9447196,4,134.7652,3.622836 +0.6752938,92,700.4954,5.201173 +0.5822097,34,944.6738,4.286641 +0.7442257,37,780.9363,4.677971 +0.8501248,92,391.9927,5.620045 +0.7890855,31,26.29981,4.924178 +0.5417501,38,367.9578,4.309845 +0.6465953,76,816.0229,5.012992 +0.7753691,45,187.8045,4.933162 +0.8752703,95,937.9589,5.702937 +0.8304852,46,534.5124,5.070549 +0.9297963,95,821.1949,5.947772 +0.8118207,51,614.6753,5.088175 +0.6761814,68,77.04726,5.06311 +0.5594347,47,273.4567,4.511935 +0.6285156,17,791.629,3.789238 +0.8079738,6,552.786,3.265653 +0.6450331,64,620.8037,4.888043 +0.6683616,5,26.13905,2.716723 +0.6130411,71,577.7337,4.907943 +0.6039205,88,393.0017,5.051451 +0.6873019,33,507.5798,4.46876 +0.6871983,44,93.05181,4.742836 +0.8249064,40,27.54897,5.271431 +0.5337277,97,414.0519,5.005735 +0.7879977,47,203.7387,4.995218 +0.7460476,54,352.9217,4.976224 +0.9483304,14,817.392,4.74218 +0.6113758,86,287.5114,5.052821 +0.7624152,86,140.1357,5.386984 +0.9068276,76,127.8796,5.79775 +0.6900965,97,905.93,5.262664 +0.8448191,85,43.09855,5.815616 +0.8802071,31,137.8266,5.016079 +0.8578306,19,642.5522,4.48844 +0.7929309,82,623.4676,5.370958 +0.8476168,18,453.467,4.412116 +0.6834483,43,918.7422,4.661125 +0.7405542,80,56.81287,5.371752 +0.9219944,50,332.3488,5.512329 +0.7261745,44,701.9999,4.769600 +0.7007646,53,383.2142,4.862903 +0.6057453,72,986.2047,4.901948 +0.9261545,59,353.8751,5.64591 +0.771516,19,609.2304,4.217364 +0.7029976,85,168.6136,5.234305 +0.8446972,27,723.5938,4.715313 +0.5885027,57,335.832,4.708225 +0.6491714,64,861.9075,4.892884 +0.6330873,24,654.814,4.097357 +0.7772637,100,678.8785,5.466614 +0.8096222,38,244.029,4.889534 +0.584761,62,94.44627,4.795691 +0.700675,82,658.6258,5.169326 +0.848954,53,601.8697,5.227078 +0.8253134,71,66.77659,5.512754 +0.5726026,39,366.2374,4.385096 +0.889443,40,431.9839,5.186106 +0.9409584,20,611.2568,4.959802 +0.7115514,90,793.238,5.25328 +0.7011985,35,200.5195,4.561698 +0.5771735,40,98.96083,4.438054 +0.8109071,76,518.7619,5.368861 +0.8176633,37,18.97150,5.311783 +0.7706448,80,46.71877,5.489751 +0.5891102,78,840.1204,4.933083 +0.7720898,79,189.6653,5.332601 +0.7299095,48,298.656,4.85679 +0.6956586,32,739.8781,4.458631 +0.6287844,35,862.2396,4.395717 +0.8391402,38,300.8604,4.973045 +0.510979,99,235.7683,4.990011 +0.508311,83,427.9368,4.852489 +0.6374083,53,722.2017,4.733101 +0.8431894,21,933.971,4.51148 +0.6286747,89,648.9947,5.096027 +0.9137417,88,684.3439,5.819049 +0.7000148,65,253.8147,5.020509 +0.9283806,36,485.4688,5.30663 +0.5502186,97,901.5118,5.026643 +0.6794158,92,491.8415,5.2134 +0.5004906,9,369.889,2.919374 +0.8813509,4,156.3115,3.159320 +0.5316867,79,888.0104,4.849485 +0.7776448,23,552.1755,4.391651 +0.6669258,42,541.5799,4.614754 diff --git a/statsmodels/stats/libqsturng/tests/test_qsturng.py b/statsmodels/stats/libqsturng/tests/test_qsturng.py new file mode 100644 index 0000000..dfbd758 --- /dev/null +++ b/statsmodels/stats/libqsturng/tests/test_qsturng.py @@ -0,0 +1,199 @@ +# Copyright (c) 2011 BSD, Roger Lew [see LICENSE.txt] +# This software is funded in part by NIH Grant P20 RR016454. + +"""The 'handful' tests are intended to aid refactoring. The tests with the +@dec.slow are empirical (test within error limits) and intended to more +extensively ensure the stability and accuracy of the functions""" + +from statsmodels.compat.python import iterkeys, lzip, lmap + +from numpy.testing import TestCase, rand, assert_, assert_equal, \ + assert_almost_equal, assert_array_almost_equal, assert_array_equal, \ + assert_approx_equal, assert_raises, run_module_suite, dec + +import numpy as np + +from statsmodels.stats.libqsturng import qsturng, psturng,p_keys,v_keys + +def read_ch(fname): + with open(fname) as f: + lines = f.readlines() + ps,rs,vs,qs = lzip(*[L.split(',') for L in lines]) + return lmap(float, ps), lmap(float, rs),lmap(float, vs), lmap(float, qs) + +class test_qsturng(TestCase): + def test_scalar(self): + # scalar input -> scalar output + assert_almost_equal(4.43645545899562, qsturng(.9,5,6), 5) + + def test_vector(self): + # vector input -> vector output + assert_array_almost_equal(np.array([3.98832389, + 4.56835318, + 6.26400894]), + qsturng([.8932, .9345,.9827], + [4, 4, 4], + [6, 6, 6]), + 5) + + def test_invalid_parameters(self): + # p < .1 + assert_raises(ValueError, qsturng, -.1,5,6) + # p > .999 + assert_raises(ValueError, qsturng, .9991,5,6) + # p < .9, v = 1 + assert_raises(ValueError, qsturng, .89,5,1) + # p >= .9, v = 0 + assert_raises(ValueError, qsturng, .9,5,0) + # r < 2 + assert_raises((ValueError, OverflowError), qsturng, .9,1,2) + + def test_handful_to_tbl(self): + cases = [(0.75, 30.0, 12.0, 5.01973488482), + (0.975, 15.0, 18.0, 6.00428263999), + (0.1, 8.0, 11.0, 1.76248712658), + (0.995, 6.0, 17.0, 6.13684839819), + (0.85, 15.0, 18.0, 4.65007986215), + (0.75, 17.0, 18.0, 4.33179650607), + (0.75, 60.0, 16.0, 5.50520795792), + (0.99, 100.0, 2.0, 50.3860723433), + (0.9, 2.0, 40.0, 2.38132493732), + (0.8, 12.0, 20.0, 4.15361239056), + (0.675, 8.0, 14.0, 3.35011529943), + (0.75, 30.0, 24.0, 4.77976803574), + (0.75, 2.0, 18.0, 1.68109190167), + (0.99, 7.0, 120.0, 5.00525918406), + (0.8, 19.0, 15.0, 4.70694373713), + (0.8, 15.0, 8.0, 4.80392205906), + (0.5, 12.0, 11.0, 3.31672775449), + (0.85, 30.0, 2.0, 10.2308503607), + (0.675, 20.0, 18.0, 4.23706426096), + (0.1, 60.0, 60.0, 3.69215469278)] + + for p,r,v,q in cases: + assert_almost_equal(q, qsturng(p,r,v), 5) + + #remove from testsuite, used only for table generation and fails on + #Debian S390, no idea why + @dec.slow + def t_est_all_to_tbl(self): + from statsmodels.stats.libqsturng.make_tbls import T,R + ps, rs, vs, qs = [], [], [], [] + for p in T: + for v in T[p]: + for r in iterkeys(R): + ps.append(p) + vs.append(v) + rs.append(r) + qs.append(T[p][v][R[r]]) + + qs = np.array(qs) + errors = np.abs(qs-qsturng(ps,rs,vs))/qs + assert_equal(np.array([]), np.where(errors > .03)[0]) + + def test_handful_to_ch(self): + cases = [(0.8699908, 10.0, 465.4956, 3.997799075635331), + (0.8559087, 43.0, 211.7474, 5.1348419692951675), + (0.6019187, 11.0, 386.5556, 3.3383101487698821), + (0.658888, 51.0, 74.652, 4.8108880483153733), + (0.6183604, 77.0, 479.8493, 4.9864059321732874), + (0.9238978, 77.0, 787.5278, 5.7871053003022936), + (0.8408322, 7.0, 227.3483, 3.5555798311413578), + (0.5930279, 60.0, 325.3461, 4.7658023123882396), + (0.6236158, 61.0, 657.5285, 4.8207812755987867), + (0.9344575, 72.0, 846.4138, 5.8014341329259107), + (0.8761198, 56.0, 677.8171, 5.362460718311719), + (0.7901517, 41.0, 131.525, 4.9222831341950544), + (0.6396423, 44.0, 624.3828, 4.6015127250083152), + (0.8085966, 14.0, 251.4224, 4.0793058424719746), + (0.716179, 45.0, 136.7055, 4.8055498089340087), + (0.8204, 6.0, 290.9876, 3.3158771384085597), + (0.8705345, 83.0, 759.6216, 5.5969334564485376), + (0.8249085, 18.0, 661.9321, 4.3283725986180395), + (0.9503, 2.0, 4.434, 3.7871158594867262), + (0.7276132, 95.0, 91.43983, 5.4100384868499889)] + + for p,r,v,q in cases: + assert_almost_equal(q, qsturng(p,r,v), 5) + + @dec.slow + def test_10000_to_ch(self): + import os + curdir = os.path.dirname(os.path.abspath(__file__)) + #ps, rs, vs, qs = read_ch(curdir + '/bootleg.dat') # <- generated by qtukey in R + # work around problem getting libqsturng.tests.bootleg.dat installed + ps, rs, vs, qs = read_ch(os.path.split(os.path.split(curdir)[0])[0] + + '/tests/results/bootleg.csv') + qs = np.array(qs) + errors = np.abs(qs-qsturng(ps,rs,vs))/qs + assert_equal(np.array([]), np.where(errors > .03)[0]) + +class test_psturng(TestCase): + def test_scalar(self): + "scalar input -> scalar output" + assert_almost_equal(.1, psturng(4.43645545899562,5,6), 5) + + def test_vector(self): + "vector input -> vector output" + assert_array_almost_equal(np.array([0.10679889, + 0.06550009, + 0.01730145]), + psturng([3.98832389, + 4.56835318, + 6.26400894], + [4, 4, 4], + [6, 6, 6]), + 5) + + def test_v_equal_one(self): + assert_almost_equal(.1, psturng(.2,5,1), 5) + + def test_invalid_parameters(self): + # q < .1 + assert_raises(ValueError, psturng, -.1,5,6) + # r < 2 + assert_raises((ValueError, OverflowError), psturng, .9,1,2) + + def test_handful_to_known_values(self): + cases = [(0.71499578726111435, 67, 956.70742488392386, 5.0517658443070692), + (0.42974234855067672, 16, 723.50261736502318, 3.3303582093701354), + (0.94936429359548424, 2, 916.1867328010926, 2.7677975546417244), + (0.85357381770725038, 66, 65.67055060832368, 5.5647438108270109), + (0.87372108021900929, 74, 626.42369474993632, 5.5355540570701107), + (0.53891960564713726, 49, 862.63799438485785, 4.5108645923377146), + (0.98818659555664567, 18, 36.269686711464274, 6.0906643750886156), + (0.53031994896037626, 50, 265.29558652727917, 4.5179640079726795), + (0.7318857887397332, 59, 701.41497552251201, 4.9980139875409915), + (0.65332019368982697, 61, 591.01183664195912, 4.8706581766706893), + (0.55403221657248558, 77, 907.34156725405194, 4.8786135917984632), + (0.30783916857266003, 83, 82.446923487980882, 4.4396401242858294), + (0.29321720242415661, 16, 709.64382575553009, 3.0304277540702729), + (0.27146478168880306, 31, 590.00594683574172, 3.5870031664477215), + (0.67348796958433776, 81, 608.02706111127657, 5.1096199974432936), + (0.32774393945968938, 18, 17.706224399250839, 3.2119038163765432), + (0.7081637474795982, 72, 443.10678914889695, 5.0990030889410649), + (0.33354939276757861, 47, 544.0772192199048, 4.0613352964193279), + (0.60412143947363051, 36, 895.83526933271548, 4.381717596850172), + (0.88739052300665977, 77, 426.03665511558262, 5.6333929480341309)] + + for p,r,v,q in cases: + assert_almost_equal(1.-p, psturng(q,r,v), 5) + + @dec.slow + def test_100_random_values(self): + n = 100 + ps = np.random.random(n)*(.999 - .1) + .1 + rs = np.random.random_integers(2, 100, n) + vs = np.random.random(n)*998. + 2. + qs = qsturng(ps, rs, vs) + estimates = psturng(qs, rs, vs) + actuals = 1. - ps + errors = estimates - actuals + + assert_equal(np.array([]), np.where(errors > 1e-5)[0]) + +## def test_more_exotic_stuff(self, level=3): +## something_obscure_and_expensive() + +if __name__ == '__main__': + run_module_suite() diff --git a/statsmodels/stats/mediation.py b/statsmodels/stats/mediation.py new file mode 100644 index 0000000..928ff4f --- /dev/null +++ b/statsmodels/stats/mediation.py @@ -0,0 +1,402 @@ +""" +Mediation analysis + +Implements algorithm 1 ('parametric inference') and algorithm 2 +('nonparametric inference') from: + +Imai, Keele, Tingley (2010). A general approach to causal mediation +analysis. Psychological Methods 15:4, 309-334. + +http://imai.princeton.edu/research/files/BaronKenny.pdf + +The algorithms are described on page 317 of the paper. + +In the case of linear models with no interactions involving the +mediator, the results should be similar or identical to the earlier +Barron-Kenny approach. +""" + +import numpy as np +import pandas as pd +from statsmodels.graphics.utils import maybe_name_or_idx +import statsmodels.compat.pandas as pdc # pragma: no cover + + +class Mediation(object): + """ + Conduct a mediation analysis. + + Parameters + ---------- + outcome_model : statsmodels model + Regression model for the outcome. Predictor variables include + the treatment/exposure, the mediator, and any other variables + of interest. + mediator_model : statsmodels model + Regression model for the mediator variable. Predictor + variables include the treatment/exposure and any other + variables of interest. + exposure : string or (int, int) tuple + The name or column position of the treatment/exposure + variable. If positions are given, the first integer is the + column position of the exposure variable in the outcome model + and the second integer is the position of the exposure variable + in the mediator model. If a string is given, it must be the name + of the exposure variable in both regression models. + mediator : string or int + The name or column position of the mediator variable in the + outcome regression model. If None, infer the name from the + mediator model formula (if present). + moderators : dict + Map from variable names or index positions to values of + moderator variables that are held fixed when calculating + mediation effects. If the keys are index position they must + be tuples `(i, j)` where `i` is the index in the outcome model + and `j` is the index in the mediator model. Otherwise the + keys must be variable names. + outcome_fit_kwargs : dict-like + Keyword arguments to use when fitting the outcome model. + mediator_fit_kwargs : dict-like + Keyword arguments to use when fitting the mediator model. + + Returns a ``MediationResults`` object. + + Notes + ----- + The mediator model class must implement ``get_distribution``. + + Examples + -------- + A basic mediation analysis using formulas: + + >>> import statsmodels.api as sm + >>> import statsmodels.genmod.families.links as links + >>> probit = links.probit + >>> outcome_model = sm.GLM.from_formula("cong_mesg ~ emo + treat + age + educ + gender + income", + ... data, family=sm.families.Binomial(link=probit)) + >>> mediator_model = sm.OLS.from_formula("emo ~ treat + age + educ + gender + income", data) + >>> med = Mediation(outcome_model, mediator_model, "treat", "emo").fit() + >>> med.summary() + + A basic mediation analysis without formulas. This may be slightly + faster than the approach using formulas. If there are any + interactions involving the treatment or mediator variables this + approach will not work, you must use formulas. + + >>> import patsy + >>> outcome = np.asarray(data["cong_mesg"]) + >>> outcome_exog = patsy.dmatrix("emo + treat + age + educ + gender + income", data, + ... return_type='dataframe') + >>> probit = sm.families.links.probit + >>> outcome_model = sm.GLM(outcome, outcome_exog, family=sm.families.Binomial(link=probit)) + >>> mediator = np.asarray(data["emo"]) + >>> mediator_exog = patsy.dmatrix("treat + age + educ + gender + income", data, + ... return_type='dataframe') + >>> mediator_model = sm.OLS(mediator, mediator_exog) + >>> tx_pos = [outcome_exog.columns.tolist().index("treat"), + ... mediator_exog.columns.tolist().index("treat")] + >>> med_pos = outcome_exog.columns.tolist().index("emo") + >>> med = Mediation(outcome_model, mediator_model, tx_pos, med_pos).fit() + >>> med.summary() + + A moderated mediation analysis. The mediation effect is computed + for people of age 20. + + >>> fml = "cong_mesg ~ emo + treat*age + emo*age + educ + gender + income", + >>> outcome_model = sm.GLM.from_formula(fml, data, + ... family=sm.families.Binomial()) + >>> mediator_model = sm.OLS.from_formula("emo ~ treat*age + educ + gender + income", data) + >>> moderators = {"age" : 20} + >>> med = Mediation(outcome_model, mediator_model, "treat", "emo", + ... moderators=moderators).fit() + + References + ---------- + Imai, Keele, Tingley (2010). A general approach to causal mediation + analysis. Psychological Methods 15:4, 309-334. + http://imai.princeton.edu/research/files/BaronKenny.pdf + + Tingley, Yamamoto, Hirose, Keele, Imai (2014). mediation : R + package for causal mediation analysis. Journal of Statistical + Software 59:5. http://www.jstatsoft.org/v59/i05/paper + """ + + def __init__(self, outcome_model, mediator_model, exposure, mediator=None, + moderators=None, outcome_fit_kwargs=None, mediator_fit_kwargs=None): + + self.outcome_model = outcome_model + self.mediator_model = mediator_model + self.exposure = exposure + self.moderators = moderators if moderators is not None else {} + + if mediator is None: + self.mediator = self._guess_endog_name(mediator_model, 'mediator') + else: + self.mediator = mediator + + self._outcome_fit_kwargs = (outcome_fit_kwargs if outcome_fit_kwargs + is not None else {}) + self._mediator_fit_kwargs = (mediator_fit_kwargs if mediator_fit_kwargs + is not None else {}) + + # We will be changing these so need to copy. + self._outcome_exog = outcome_model.exog.copy() + self._mediator_exog = mediator_model.exog.copy() + + # Position of the exposure variable in the mediator model. + self._exp_pos_mediator = self._variable_pos('exposure', 'mediator') + + # Position of the exposure variable in the outcome model. + self._exp_pos_outcome = self._variable_pos('exposure', 'outcome') + + # Position of the mediator variable in the outcome model. + self._med_pos_outcome = self._variable_pos('mediator', 'outcome') + + + def _variable_pos(self, var, model): + if model == 'mediator': + mod = self.mediator_model + else: + mod = self.outcome_model + + if var == 'mediator': + return maybe_name_or_idx(self.mediator, mod)[1] + + exp = self.exposure + exp_is_2 = ((len(exp) == 2) and (type(exp) != type(''))) + + if exp_is_2: + if model == 'outcome': + return exp[0] + elif model == 'mediator': + return exp[1] + else: + return maybe_name_or_idx(exp, mod)[1] + + + def _guess_endog_name(self, model, typ): + if hasattr(model, 'formula'): + return model.formula.split("~")[0].strip() + else: + raise ValueError('cannot infer %s name without formula' % typ) + + + def _simulate_params(self, result): + """ + Simulate model parameters from fitted sampling distribution. + """ + mn = result.params + cov = result.cov_params() + return np.random.multivariate_normal(mn, cov) + + + def _get_mediator_exog(self, exposure): + """ + Return the mediator exog matrix with exposure set to the given + value. Set values of moderated variables as needed. + """ + mediator_exog = self._mediator_exog + if not hasattr(self.mediator_model, 'formula'): + mediator_exog[:, self._exp_pos_mediator] = exposure + for ix in self.moderators: + v = self.moderators[ix] + mediator_exog[:, ix[1]] = v + else: + # Need to regenerate the model exog + df = self.mediator_model.data.frame.copy() + df.loc[:, self.exposure] = exposure + for vname in self.moderators: + v = self.moderators[vname] + df.loc[:, vname] = v + klass = self.mediator_model.__class__ + init_kwargs = self.mediator_model._get_init_kwds() + model = klass.from_formula(data=df, **init_kwargs) + mediator_exog = model.exog + + return mediator_exog + + + def _get_outcome_exog(self, exposure, mediator): + """ + Retun the exog design matrix with mediator and exposure set to + the given values. Set values of moderated variables as + needed. + """ + outcome_exog = self._outcome_exog + if not hasattr(self.outcome_model, 'formula'): + outcome_exog[:, self._med_pos_outcome] = mediator + outcome_exog[:, self._exp_pos_outcome] = exposure + for ix in self.moderators: + v = self.moderators[ix] + outcome_exog[:, ix[0]] = v + else: + # Need to regenerate the model exog + df = self.outcome_model.data.frame.copy() + df.loc[:, self.exposure] = exposure + df.loc[:, self.mediator] = mediator + for vname in self.moderators: + v = self.moderators[vname] + df.loc[:, vname] = v + klass = self.outcome_model.__class__ + init_kwargs = self.outcome_model._get_init_kwds() + model = klass.from_formula(data=df, **init_kwargs) + outcome_exog = model.exog + + return outcome_exog + + + def _fit_model(self, model, fit_kwargs, boot=False): + klass = model.__class__ + init_kwargs = model._get_init_kwds() + endog = model.endog + exog = model.exog + if boot: + ii = np.random.randint(0, len(endog), len(endog)) + endog = endog[ii] + exog = exog[ii, :] + outcome_model = klass(endog, exog, **init_kwargs) + return outcome_model.fit(**fit_kwargs) + + + def fit(self, method="parametric", n_rep=1000): + """ + Fit a regression model to assess mediation. + + Parameters + ---------- + method : string + Either 'parametric' or 'bootstrap'. + n_rep : integer + The number of simulation replications. + + Returns a MediationResults object. + """ + + if method.startswith("para"): + # Initial fit to unperturbed data. + outcome_result = self._fit_model(self.outcome_model, self._outcome_fit_kwargs) + mediator_result = self._fit_model(self.mediator_model, self._mediator_fit_kwargs) + elif not method.startswith("boot"): + raise("method must be either 'parametric' or 'bootstrap'") + + indirect_effects = [[], []] + direct_effects = [[], []] + + for iter in range(n_rep): + + if method == "parametric": + # Realization of outcome model parameters from sampling distribution + outcome_params = self._simulate_params(outcome_result) + + # Realization of mediation model parameters from sampling distribution + mediation_params = self._simulate_params(mediator_result) + else: + outcome_result = self._fit_model(self.outcome_model, + self._outcome_fit_kwargs, boot=True) + outcome_params = outcome_result.params + mediator_result = self._fit_model(self.mediator_model, + self._mediator_fit_kwargs, boot=True) + mediation_params = mediator_result.params + + # predicted outcomes[tm][te] is the outcome when the + # mediator is set to tm and the outcome/exposure is set to + # te. + predicted_outcomes = [[None, None], [None, None]] + for tm in 0, 1: + mex = self._get_mediator_exog(tm) + gen = self.mediator_model.get_distribution(mediation_params, + mediator_result.scale, + exog=mex) + potential_mediator = gen.rvs(mex.shape[0]) + + for te in 0, 1: + oex = self._get_outcome_exog(te, potential_mediator) + po = self.outcome_model.predict(outcome_params, oex) + predicted_outcomes[tm][te] = po + + for t in 0, 1: + indirect_effects[t].append(predicted_outcomes[1][t] - predicted_outcomes[0][t]) + direct_effects[t].append(predicted_outcomes[t][1] - predicted_outcomes[t][0]) + + for t in 0, 1: + indirect_effects[t] = np.asarray(indirect_effects[t]).T + direct_effects[t] = np.asarray(direct_effects[t]).T + + self.indirect_effects = indirect_effects + self.direct_effects = direct_effects + + rslt = MediationResults(self.indirect_effects, self.direct_effects) + rslt.method = method + return rslt + + +def _pvalue(vec): + return 2 * min(sum(vec > 0), sum(vec < 0)) / float(len(vec)) + + +class MediationResults(object): + """ + A class for holding the results of a mediation analysis. + + The following terms are used in the summary output: + + ACME : average causal mediated effect + ADE : average direct effect + """ + + def __init__(self, indirect_effects, direct_effects): + + self.indirect_effects = indirect_effects + self.direct_effects = direct_effects + + indirect_effects_avg = [None, None] + direct_effects_avg = [None, None] + for t in 0, 1: + indirect_effects_avg[t] = indirect_effects[t].mean(0) + direct_effects_avg[t] = direct_effects[t].mean(0) + + self.ACME_ctrl = indirect_effects_avg[0] + self.ACME_tx = indirect_effects_avg[1] + self.ADE_ctrl = direct_effects_avg[0] + self.ADE_tx = direct_effects_avg[1] + self.total_effect = (self.ACME_ctrl + self.ACME_tx + self.ADE_ctrl + self.ADE_tx) / 2 + + self.prop_med_ctrl = self.ACME_ctrl / self.total_effect + self.prop_med_tx = self.ACME_tx / self.total_effect + self.prop_med_avg = (self.prop_med_ctrl + self.prop_med_tx) / 2 + + self.ACME_avg = (self.ACME_ctrl + self.ACME_tx) / 2 + self.ADE_avg = (self.ADE_ctrl + self.ADE_tx) / 2 + + + def summary(self, alpha=0.05): + """ + Provide a summary of a mediation analysis. + """ + + columns = ["Estimate", "Lower CI bound", "Upper CI bound", "P-value"] + index = ["ACME (control)", "ACME (treated)", "ADE (control)", "ADE (treated)", + "Total effect", "Prop. mediated (control)", "Prop. mediated (treated)", + "ACME (average)", "ADE (average)", "Prop. mediated (average)"] + smry = pd.DataFrame(columns=columns, index=index) + + for i, vec in enumerate([self.ACME_ctrl, self.ACME_tx, self.ADE_ctrl, self.ADE_tx, + self.total_effect, self.prop_med_ctrl, + self.prop_med_tx, self.ACME_avg, self.ADE_avg, + self.prop_med_avg]): + + if ((vec is self.prop_med_ctrl) or (vec is self.prop_med_tx) or + (vec is self.prop_med_avg)): + smry.iloc[i, 0] = np.median(vec) + else: + smry.iloc[i, 0] = vec.mean() + smry.iloc[i, 1] = np.percentile(vec, 100 * alpha / 2) + smry.iloc[i, 2] = np.percentile(vec, 100 * (1 - alpha / 2)) + smry.iloc[i, 3] = _pvalue(vec) + + if pdc.version < '0.17.0': # pragma: no cover + smry = smry.convert_objects(convert_numeric=True) + else: # pragma: no cover + smry = smry.apply(pd.to_numeric, errors='coerce') + + return smry diff --git a/statsmodels/stats/moment_helpers.py b/statsmodels/stats/moment_helpers.py new file mode 100644 index 0000000..fb01cd4 --- /dev/null +++ b/statsmodels/stats/moment_helpers.py @@ -0,0 +1,239 @@ +'''helper functions conversion between moments + +contains: + +* conversion between central and non-central moments, skew, kurtosis and + cummulants +* cov2corr : convert covariance matrix to correlation matrix + + +Author: Josef Perktold +License: BSD-3 + +''' + +from statsmodels.compat.python import range +import numpy as np +from scipy.misc import comb + + +## start moment helpers + +def mc2mnc(mc): + '''convert central to non-central moments, uses recursive formula + optionally adjusts first moment to return mean + + ''' + n = len(mc) + mean = mc[0] + mc = [1] + list(mc) # add zero moment = 1 + mc[1] = 0 # define central mean as zero for formula + mnc = [1, mean] # zero and first raw moments + for nn,m in enumerate(mc[2:]): + n=nn+2 + mnc.append(0) + for k in range(n+1): + mnc[n] += comb(n,k,exact=1) * mc[k] * mean**(n-k) + + return mnc[1:] + + +def mnc2mc(mnc, wmean = True): + '''convert non-central to central moments, uses recursive formula + optionally adjusts first moment to return mean + + ''' + n = len(mnc) + mean = mnc[0] + mnc = [1] + list(mnc) # add zero moment = 1 + mu = [] #np.zeros(n+1) + for n,m in enumerate(mnc): + mu.append(0) + #[comb(n-1,k,exact=1) for k in range(n)] + for k in range(n+1): + mu[n] += (-1)**(n-k) * comb(n,k,exact=1) * mnc[k] * mean**(n-k) + if wmean: + mu[1] = mean + return mu[1:] + + +def cum2mc(kappa): + '''convert non-central moments to cumulants + recursive formula produces as many cumulants as moments + + References + ---------- + Kenneth Lange: Numerical Analysis for Statisticians, page 40 + (http://books.google.ca/books?id=gm7kwttyRT0C&pg=PA40&lpg=PA40&dq=convert+cumulants+to+moments&source=web&ots=qyIaY6oaWH&sig=cShTDWl-YrWAzV7NlcMTRQV6y0A&hl=en&sa=X&oi=book_result&resnum=1&ct=result) + + + ''' + mc = [1,0.0] #_kappa[0]] #insert 0-moment and mean + kappa0 = kappa[0] + kappa = [1] + list(kappa) + for nn,m in enumerate(kappa[2:]): + n = nn+2 + mc.append(0) + for k in range(n-1): + mc[n] += comb(n-1,k,exact=1) * kappa[n-k]*mc[k] + + mc[1] = kappa0 # insert mean as first moments by convention + return mc[1:] + + +def mnc2cum(mnc): + '''convert non-central moments to cumulants + recursive formula produces as many cumulants as moments + + http://en.wikipedia.org/wiki/Cumulant#Cumulants_and_moments + ''' + mnc = [1] + list(mnc) + kappa = [1] + for nn,m in enumerate(mnc[1:]): + n = nn+1 + kappa.append(m) + for k in range(1,n): + kappa[n] -= comb(n-1,k-1,exact=1) * kappa[k]*mnc[n-k] + + return kappa[1:] + + +def mc2cum(mc): + '''just chained because I have still the test case + ''' + return mnc2cum(mc2mnc(mc)) + + +def mvsk2mc(args): + '''convert mean, variance, skew, kurtosis to central moments''' + mu,sig2,sk,kur = args + + cnt = [None]*4 + cnt[0] = mu + cnt[1] = sig2 + cnt[2] = sk * sig2**1.5 + cnt[3] = (kur+3.0) * sig2**2.0 + return tuple(cnt) + + +def mvsk2mnc(args): + '''convert mean, variance, skew, kurtosis to non-central moments''' + mc, mc2, skew, kurt = args + mnc = mc + mnc2 = mc2 + mc*mc + mc3 = skew*(mc2**1.5) # 3rd central moment + mnc3 = mc3+3*mc*mc2+mc**3 # 3rd non-central moment + mc4 = (kurt+3.0)*(mc2**2.0) # 4th central moment + mnc4 = mc4+4*mc*mc3+6*mc*mc*mc2+mc**4 + return (mnc, mnc2, mnc3, mnc4) + + +def mc2mvsk(args): + '''convert central moments to mean, variance, skew, kurtosis + ''' + mc, mc2, mc3, mc4 = args + skew = np.divide(mc3, mc2**1.5) + kurt = np.divide(mc4, mc2**2.0) - 3.0 + return (mc, mc2, skew, kurt) + + +def mnc2mvsk(args): + '''convert central moments to mean, variance, skew, kurtosis + ''' + #convert four non-central moments to central moments + mnc, mnc2, mnc3, mnc4 = args + mc = mnc + mc2 = mnc2 - mnc*mnc + mc3 = mnc3 - (3*mc*mc2+mc**3) # 3rd central moment + mc4 = mnc4 - (4*mc*mc3+6*mc*mc*mc2+mc**4) + + return mc2mvsk((mc, mc2, mc3, mc4)) + + +#def mnc2mc(args): +# '''convert four non-central moments to central moments +# ''' +# mnc, mnc2, mnc3, mnc4 = args +# mc = mnc +# mc2 = mnc2 - mnc*mnc +# mc3 = mnc3 - (3*mc*mc2+mc**3) # 3rd central moment +# mc4 = mnc4 - (4*mc*mc3+6*mc*mc*mc2+mc**4) +# return mc, mc2, mc + + #TODO: no return, did it get lost in cut-paste? + + +def cov2corr(cov, return_std=False): + '''convert covariance matrix to correlation matrix + + Parameters + ---------- + cov : array_like, 2d + covariance matrix, see Notes + + Returns + ------- + corr : ndarray (subclass) + correlation matrix + return_std : bool + If this is true then the standard deviation is also returned. + By default only the correlation matrix is returned. + + Notes + ----- + This function does not convert subclasses of ndarrays. This requires + that division is defined elementwise. np.ma.array and np.matrix are allowed. + + ''' + cov = np.asanyarray(cov) + std_ = np.sqrt(np.diag(cov)) + corr = cov / np.outer(std_, std_) + if return_std: + return corr, std_ + else: + return corr + +def corr2cov(corr, std): + '''convert correlation matrix to covariance matrix given standard deviation + + Parameters + ---------- + corr : array_like, 2d + correlation matrix, see Notes + std : array_like, 1d + standard deviation + + Returns + ------- + cov : ndarray (subclass) + covariance matrix + + Notes + ----- + This function does not convert subclasses of ndarrays. This requires + that multiplication is defined elementwise. np.ma.array are allowed, but + not matrices. + + ''' + corr = np.asanyarray(corr) + std_ = np.asanyarray(std) + cov = corr * np.outer(std_, std_) + return cov + +def se_cov(cov): + '''get standard deviation from covariance matrix + + just a shorthand function np.sqrt(np.diag(cov)) + + Parameters + ---------- + cov : array_like, square + covariance matrix + + Returns + ------- + std : ndarray + standard deviation from diagonal of cov + + ''' + return np.sqrt(np.diag(cov)) diff --git a/statsmodels/stats/multicomp.py b/statsmodels/stats/multicomp.py new file mode 100644 index 0000000..4fa5f63 --- /dev/null +++ b/statsmodels/stats/multicomp.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +""" + +Created on Fri Mar 30 18:27:25 2012 +Author: Josef Perktold +""" + +from statsmodels.sandbox.stats.multicomp import tukeyhsd, MultiComparison + +def pairwise_tukeyhsd(endog, groups, alpha=0.05): + '''calculate all pairwise comparisons with TukeyHSD confidence intervals + + this is just a wrapper around tukeyhsd method of MultiComparison + + Parameters + ---------- + endog : ndarray, float, 1d + response variable + groups : ndarray, 1d + array with groups, can be string or integers + alpha : float + significance level for the test + + Returns + ------- + results : TukeyHSDResults instance + A results class containing relevant data and some post-hoc + calculations + + See Also + -------- + MultiComparison + tukeyhsd + statsmodels.sandbox.stats.multicomp.TukeyHSDResults + + ''' + + return MultiComparison(endog, groups).tukeyhsd(alpha=alpha) diff --git a/statsmodels/stats/multitest.py b/statsmodels/stats/multitest.py new file mode 100644 index 0000000..93237fd --- /dev/null +++ b/statsmodels/stats/multitest.py @@ -0,0 +1,687 @@ +'''Multiple Testing and P-Value Correction + + +Author: Josef Perktold +License: BSD-3 + +''' + +from statsmodels.compat.python import range +from statsmodels.compat.collections import OrderedDict + +import numpy as np + + +#============================================== +# +# Part 1: Multiple Tests and P-Value Correction +# +#============================================== + +def _ecdf(x): + '''no frills empirical cdf used in fdrcorrection + ''' + nobs = len(x) + return np.arange(1,nobs+1)/float(nobs) + +multitest_methods_names = {'b': 'Bonferroni', + 's': 'Sidak', + 'h': 'Holm', + 'hs': 'Holm-Sidak', + 'sh': 'Simes-Hochberg', + 'ho': 'Hommel', + 'fdr_bh': 'FDR Benjamini-Hochberg', + 'fdr_by': 'FDR Benjamini-Yekutieli', + 'fdr_tsbh': 'FDR 2-stage Benjamini-Hochberg', + 'fdr_tsbky': 'FDR 2-stage Benjamini-Krieger-Yekutieli', + 'fdr_gbs': 'FDR adaptive Gavrilov-Benjamini-Sarkar' + } + +_alias_list = [['b', 'bonf', 'bonferroni'], + ['s', 'sidak'], + ['h', 'holm'], + ['hs', 'holm-sidak'], + ['sh', 'simes-hochberg'], + ['ho', 'hommel'], + ['fdr_bh', 'fdr_i', 'fdr_p', 'fdri', 'fdrp'], + ['fdr_by', 'fdr_n', 'fdr_c', 'fdrn', 'fdrcorr'], + ['fdr_tsbh', 'fdr_2sbh'], + ['fdr_tsbky', 'fdr_2sbky', 'fdr_twostage'], + ['fdr_gbs'] + ] + + +multitest_alias = OrderedDict() +for m in _alias_list: + multitest_alias[m[0]] = m[0] + for a in m[1:]: + multitest_alias[a] = m[0] + +def multipletests(pvals, alpha=0.05, method='hs', is_sorted=False, + returnsorted=False): + '''test results and p-value correction for multiple tests + + + Parameters + ---------- + pvals : array_like + uncorrected p-values + alpha : float + FWER, family-wise error rate, e.g. 0.1 + method : string + Method used for testing and adjustment of pvalues. Can be either the + full name or initial letters. Available methods are :: + + `bonferroni` : one-step correction + `sidak` : one-step correction + `holm-sidak` : step down method using Sidak adjustments + `holm` : step-down method using Bonferroni adjustments + `simes-hochberg` : step-up method (independent) + `hommel` : closed method based on Simes tests (non-negative) + `fdr_bh` : Benjamini/Hochberg (non-negative) + `fdr_by` : Benjamini/Yekutieli (negative) + `fdr_tsbh` : two stage fdr correction (non-negative) + `fdr_tsbky` : two stage fdr correction (non-negative) + + is_sorted : bool + If False (default), the p_values will be sorted, but the corrected + pvalues are in the original order. If True, then it assumed that the + pvalues are already sorted in ascending order. + returnsorted : bool + not tested, return sorted p-values instead of original sequence + + Returns + ------- + reject : array, boolean + true for hypothesis that can be rejected for given alpha + pvals_corrected : array + p-values corrected for multiple tests + alphacSidak: float + corrected alpha for Sidak method + alphacBonf: float + corrected alpha for Bonferroni method + + Notes + ----- + There may be API changes for this function in the future. + + Except for 'fdr_twostage', the p-value correction is independent of the + alpha specified as argument. In these cases the corrected p-values + can also be compared with a different alpha. In the case of 'fdr_twostage', + the corrected p-values are specific to the given alpha, see + ``fdrcorrection_twostage``. + + The 'fdr_gbs' procedure is not verified against another package, p-values + are derived from scratch and are not derived in the reference. In Monte + Carlo experiments the method worked correctly and maintained the false + discovery rate. + + All procedures that are included, control FWER or FDR in the independent + case, and most are robust in the positively correlated case. + + `fdr_gbs`: high power, fdr control for independent case and only small + violation in positively correlated case + + **Timing**: + + Most of the time with large arrays is spent in `argsort`. When + we want to calculate the p-value for several methods, then it is more + efficient to presort the pvalues, and put the results back into the + original order outside of the function. + + Method='hommel' is very slow for large arrays, since it requires the + evaluation of n partitions, where n is the number of p-values. + ''' + import gc + pvals = np.asarray(pvals) + alphaf = alpha # Notation ? + + if not is_sorted: + sortind = np.argsort(pvals) + pvals = np.take(pvals, sortind) + + ntests = len(pvals) + alphacSidak = 1 - np.power((1. - alphaf), 1./ntests) + alphacBonf = alphaf / float(ntests) + if method.lower() in ['b', 'bonf', 'bonferroni']: + reject = pvals <= alphacBonf + pvals_corrected = pvals * float(ntests) + + elif method.lower() in ['s', 'sidak']: + reject = pvals <= alphacSidak + pvals_corrected = 1 - np.power((1. - pvals), ntests) + + elif method.lower() in ['hs', 'holm-sidak']: + alphacSidak_all = 1 - np.power((1. - alphaf), + 1./np.arange(ntests, 0, -1)) + notreject = pvals > alphacSidak_all + del alphacSidak_all + + nr_index = np.nonzero(notreject)[0] + if nr_index.size == 0: + # nonreject is empty, all rejected + notrejectmin = len(pvals) + else: + notrejectmin = np.min(nr_index) + notreject[notrejectmin:] = True + reject = ~notreject + del notreject + + pvals_corrected_raw = 1 - np.power((1. - pvals), + np.arange(ntests, 0, -1)) + pvals_corrected = np.maximum.accumulate(pvals_corrected_raw) + del pvals_corrected_raw + + elif method.lower() in ['h', 'holm']: + notreject = pvals > alphaf / np.arange(ntests, 0, -1) + nr_index = np.nonzero(notreject)[0] + if nr_index.size == 0: + # nonreject is empty, all rejected + notrejectmin = len(pvals) + else: + notrejectmin = np.min(nr_index) + notreject[notrejectmin:] = True + reject = ~notreject + pvals_corrected_raw = pvals * np.arange(ntests, 0, -1) + pvals_corrected = np.maximum.accumulate(pvals_corrected_raw) + del pvals_corrected_raw + gc.collect() + + elif method.lower() in ['sh', 'simes-hochberg']: + alphash = alphaf / np.arange(ntests, 0, -1) + reject = pvals <= alphash + rejind = np.nonzero(reject) + if rejind[0].size > 0: + rejectmax = np.max(np.nonzero(reject)) + reject[:rejectmax] = True + pvals_corrected_raw = np.arange(ntests, 0, -1) * pvals + pvals_corrected = np.minimum.accumulate(pvals_corrected_raw[::-1])[::-1] + del pvals_corrected_raw + + elif method.lower() in ['ho', 'hommel']: + # we need a copy because we overwrite it in a loop + a = pvals.copy() + for m in range(ntests, 1, -1): + cim = np.min(m * pvals[-m:] / np.arange(1,m+1.)) + a[-m:] = np.maximum(a[-m:], cim) + a[:-m] = np.maximum(a[:-m], np.minimum(m * pvals[:-m], cim)) + pvals_corrected = a + reject = a <= alphaf + + elif method.lower() in ['fdr_bh', 'fdr_i', 'fdr_p', 'fdri', 'fdrp']: + # delegate, call with sorted pvals + reject, pvals_corrected = fdrcorrection(pvals, alpha=alpha, + method='indep', + is_sorted=True) + elif method.lower() in ['fdr_by', 'fdr_n', 'fdr_c', 'fdrn', 'fdrcorr']: + # delegate, call with sorted pvals + reject, pvals_corrected = fdrcorrection(pvals, alpha=alpha, + method='n', + is_sorted=True) + elif method.lower() in ['fdr_tsbky', 'fdr_2sbky', 'fdr_twostage']: + # delegate, call with sorted pvals + reject, pvals_corrected = fdrcorrection_twostage(pvals, alpha=alpha, + method='bky', + is_sorted=True)[:2] + elif method.lower() in ['fdr_tsbh', 'fdr_2sbh']: + # delegate, call with sorted pvals + reject, pvals_corrected = fdrcorrection_twostage(pvals, alpha=alpha, + method='bh', + is_sorted=True)[:2] + + elif method.lower() in ['fdr_gbs']: + #adaptive stepdown in Gavrilov, Benjamini, Sarkar, Annals of Statistics 2009 +## notreject = pvals > alphaf / np.arange(ntests, 0, -1) #alphacSidak +## notrejectmin = np.min(np.nonzero(notreject)) +## notreject[notrejectmin:] = True +## reject = ~notreject + + ii = np.arange(1, ntests + 1) + q = (ntests + 1. - ii)/ii * pvals / (1. - pvals) + pvals_corrected_raw = np.maximum.accumulate(q) #up requirementd + + pvals_corrected = np.minimum.accumulate(pvals_corrected_raw[::-1])[::-1] + del pvals_corrected_raw + reject = pvals_corrected <= alpha + + else: + raise ValueError('method not recognized') + + if not pvals_corrected is None: #not necessary anymore + pvals_corrected[pvals_corrected>1] = 1 + if is_sorted or returnsorted: + return reject, pvals_corrected, alphacSidak, alphacBonf + else: + pvals_corrected_ = np.empty_like(pvals_corrected) + pvals_corrected_[sortind] = pvals_corrected + del pvals_corrected + reject_ = np.empty_like(reject) + reject_[sortind] = reject + return reject_, pvals_corrected_, alphacSidak, alphacBonf + + +def fdrcorrection(pvals, alpha=0.05, method='indep', is_sorted=False): + '''pvalue correction for false discovery rate + + This covers Benjamini/Hochberg for independent or positively correlated and + Benjamini/Yekutieli for general or negatively correlated tests. Both are + available in the function multipletests, as method=`fdr_bh`, resp. `fdr_by`. + + Parameters + ---------- + pvals : array_like + set of p-values of the individual tests. + alpha : float + error rate + method : {'indep', 'negcorr') + + Returns + ------- + rejected : array, bool + True if a hypothesis is rejected, False if not + pvalue-corrected : array + pvalues adjusted for multiple hypothesis testing to limit FDR + + Notes + ----- + + If there is prior information on the fraction of true hypothesis, then alpha + should be set to alpha * m/m_0 where m is the number of tests, + given by the p-values, and m_0 is an estimate of the true hypothesis. + (see Benjamini, Krieger and Yekuteli) + + The two-step method of Benjamini, Krieger and Yekutiel that estimates the number + of false hypotheses will be available (soon). + + Method names can be abbreviated to first letter, 'i' or 'p' for fdr_bh and 'n' for + fdr_by. + + + + ''' + pvals = np.asarray(pvals) + + if not is_sorted: + pvals_sortind = np.argsort(pvals) + pvals_sorted = np.take(pvals, pvals_sortind) + else: + pvals_sorted = pvals # alias + + if method in ['i', 'indep', 'p', 'poscorr']: + ecdffactor = _ecdf(pvals_sorted) + elif method in ['n', 'negcorr']: + cm = np.sum(1./np.arange(1, len(pvals_sorted)+1)) #corrected this + ecdffactor = _ecdf(pvals_sorted) / cm +## elif method in ['n', 'negcorr']: +## cm = np.sum(np.arange(len(pvals))) +## ecdffactor = ecdf(pvals_sorted)/cm + else: + raise ValueError('only indep and negcorr implemented') + reject = pvals_sorted <= ecdffactor*alpha + if reject.any(): + rejectmax = max(np.nonzero(reject)[0]) + reject[:rejectmax] = True + + pvals_corrected_raw = pvals_sorted / ecdffactor + pvals_corrected = np.minimum.accumulate(pvals_corrected_raw[::-1])[::-1] + del pvals_corrected_raw + pvals_corrected[pvals_corrected>1] = 1 + if not is_sorted: + pvals_corrected_ = np.empty_like(pvals_corrected) + pvals_corrected_[pvals_sortind] = pvals_corrected + del pvals_corrected + reject_ = np.empty_like(reject) + reject_[pvals_sortind] = reject + return reject_, pvals_corrected_ + else: + return reject, pvals_corrected + + +def fdrcorrection_twostage(pvals, alpha=0.05, method='bky', iter=False, + is_sorted=False): + '''(iterated) two stage linear step-up procedure with estimation of number of true + hypotheses + + Benjamini, Krieger and Yekuteli, procedure in Definition 6 + + Parameters + ---------- + pvals : array_like + set of p-values of the individual tests. + alpha : float + error rate + method : {'bky', 'bh') + see Notes for details + + 'bky' : implements the procedure in Definition 6 of Benjamini, Krieger + and Yekuteli 2006 + 'bh' : implements the two stage method of Benjamini and Hochberg + + iter ; bool + + Returns + ------- + rejected : array, bool + True if a hypothesis is rejected, False if not + pvalue-corrected : array + pvalues adjusted for multiple hypotheses testing to limit FDR + m0 : int + ntest - rej, estimated number of true hypotheses + alpha_stages : list of floats + A list of alphas that have been used at each stage + + Notes + ----- + The returned corrected p-values are specific to the given alpha, they + cannot be used for a different alpha. + + The returned corrected p-values are from the last stage of the fdr_bh + linear step-up procedure (fdrcorrection0 with method='indep') corrected + for the estimated fraction of true hypotheses. + This means that the rejection decision can be obtained with + ``pval_corrected <= alpha``, where ``alpha`` is the origianal significance + level. + (Note: This has changed from earlier versions (<0.5.0) of statsmodels.) + + BKY described several other multi-stage methods, which would be easy to implement. + However, in their simulation the simple two-stage method (with iter=False) was the + most robust to the presence of positive correlation + + TODO: What should be returned? + + ''' + pvals = np.asarray(pvals) + + if not is_sorted: + pvals_sortind = np.argsort(pvals) + pvals = np.take(pvals, pvals_sortind) + + ntests = len(pvals) + if method == 'bky': + fact = (1.+alpha) + alpha_prime = alpha / fact + elif method == 'bh': + fact = 1. + alpha_prime = alpha + else: + raise ValueError("only 'bky' and 'bh' are available as method") + + alpha_stages = [alpha_prime] + rej, pvalscorr = fdrcorrection(pvals, alpha=alpha_prime, method='indep', + is_sorted=True) + r1 = rej.sum() + if (r1 == 0) or (r1 == ntests): + return rej, pvalscorr * fact, ntests - r1, alpha_stages + ri_old = r1 + + while True: + ntests0 = 1.0 * ntests - ri_old + alpha_star = alpha_prime * ntests / ntests0 + alpha_stages.append(alpha_star) + #print ntests0, alpha_star + rej, pvalscorr = fdrcorrection(pvals, alpha=alpha_star, method='indep', + is_sorted=True) + ri = rej.sum() + if (not iter) or ri == ri_old: + break + elif ri < ri_old: + # prevent cycles and endless loops + raise RuntimeError(" oops - shouldn't be here") + ri_old = ri + + # make adjustment to pvalscorr to reflect estimated number of Non-Null cases + # decision is then pvalscorr < alpha (or <=) + pvalscorr *= ntests0 * 1.0 / ntests + if method == 'bky': + pvalscorr *= (1. + alpha) + + if not is_sorted: + pvalscorr_ = np.empty_like(pvalscorr) + pvalscorr_[pvals_sortind] = pvalscorr + del pvalscorr + reject = np.empty_like(rej) + reject[pvals_sortind] = rej + return reject, pvalscorr_, ntests - ri, alpha_stages + else: + return rej, pvalscorr, ntests - ri, alpha_stages + + +def local_fdr(zscores, null_proportion=1.0, null_pdf=None, deg=7, + nbins=30): + """ + Calculate local FDR values for a list of Z-scores. + + Parameters + ---------- + zscores : array-like + A vector of Z-scores + null_proportion : float + The assumed proportion of true null hypotheses + null_pdf : function mapping reals to positive reals + The density of null Z-scores; if None, use standard normal + deg : integer + The maximum exponent in the polynomial expansion of the + density of non-null Z-scores + nbins : integer + The number of bins for estimating the marginal density + of Z-scores. + + Returns + ------- + fdr : array-like + A vector of FDR values + + References + ---------- + B Efron (2008). Microarrays, Empirical Bayes, and the Two-Groups + Model. Statistical Science 23:1, 1-22. + + Examples + -------- + Basic use (the null Z-scores are taken to be standard normal): + + >>> from statsmodels.stats.multitest import local_fdr + >>> import numpy as np + >>> zscores = np.random.randn(30) + >>> fdr = local_fdr(zscores) + + Use a Gaussian null distribution estimated from the data: + + >>> null = EmpiricalNull(zscores) + >>> fdr = local_fdr(zscores, null_pdf=null.pdf) + """ + + from statsmodels.genmod.generalized_linear_model import GLM + from statsmodels.genmod.generalized_linear_model import families + from statsmodels.regression.linear_model import OLS + + # Bins for Poisson modeling of the marginal Z-score density + minz = min(zscores) + maxz = max(zscores) + bins = np.linspace(minz, maxz, nbins) + + # Bin counts + zhist = np.histogram(zscores, bins)[0] + + # Bin centers + zbins = (bins[:-1] + bins[1:]) / 2 + + # The design matrix at bin centers + dmat = np.vander(zbins, deg + 1) + + # Use this to get starting values for Poisson regression + md = OLS(np.log(1 + zhist), dmat).fit() + + # Poisson regression + md = GLM(zhist, dmat, family=families.Poisson()).fit(start_params=md.params) + + # The design matrix for all Z-scores + dmat_full = np.vander(zscores, deg + 1) + + # The height of the estimated marginal density of Z-scores, + # evaluated at every observed Z-score. + fz = md.predict(dmat_full) / (len(zscores) * (bins[1] - bins[0])) + + # The null density. + if null_pdf is None: + f0 = np.exp(-0.5 * zscores**2) / np.sqrt(2 * np.pi) + else: + f0 = null_pdf(zscores) + + # The local FDR values + fdr = null_proportion * f0 / fz + + fdr = np.clip(fdr, 0, 1) + + return fdr + + +class NullDistribution(object): + """ + Estimate a Gaussian distribution for the null Z-scores. + + The observed Z-scores consist of both null and non-null values. + The fitted distribution of null Z-scores is Gaussian, but may have + non-zero mean and/or non-unit scale. + + Parameters + ---------- + zscores : array-like + The observed Z-scores. + null_lb : float + Z-scores between `null_lb` and `null_lb` are all considered to be + true null hypotheses. + null_ub : float + See `null_lb`. + estimate_mean : bool + If True, estimate the mean of the distribution. If False, the + mean is fixed at zero. + estimate_scale : bool + If True, estimate the scale of the distribution. If False, the + scale parameter is fixed at 1. + estimate_null_proportion : bool + If True, estimate the proportion of true null hypotheses (i.e. + the proportion of z-scores with expected value zero). If False, + this parameter is fixed at 1. + + Attributes + ---------- + mean : float + The estimated mean of the empirical null distribution + sd : float + The estimated standard deviation of the empirical null distribution + null_proportion : float + The estimated proportion of true null hypotheses among all hypotheses + + References + ---------- + B Efron (2008). Microarrays, Empirical Bayes, and the Two-Groups + Model. Statistical Science 23:1, 1-22. + + Notes + ----- + See also: + + http://nipy.org/nipy/labs/enn.html#nipy.algorithms.statistics.empirical_pvalue.NormalEmpiricalNull.fdr + """ + + def __init__(self, zscores, null_lb=-1, null_ub=1, estimate_mean=True, + estimate_scale=True, estimate_null_proportion=False): + + # Extract the null z-scores + ii = np.flatnonzero((zscores >= null_lb) & (zscores <= null_ub)) + if len(ii) == 0: + raise RunTimeError("No Z-scores fall between null_lb and null_ub") + zscores0 = zscores[ii] + + # Number of Z-scores, and null Z-scores + n_zs, n_zs0 = len(zscores), len(zscores0) + + # Unpack and transform the parameters to the natural scale, hold + # parameters fixed as specified. + def xform(params): + + mean = 0. + sd = 1. + prob = 1. + + ii = 0 + if estimate_mean: + mean = params[ii] + ii += 1 + if estimate_scale: + sd = np.exp(params[ii]) + ii += 1 + if estimate_null_proportion: + prob = 1 / (1 + np.exp(-params[ii])) + + return mean, sd, prob + + + from scipy.stats.distributions import norm + + + def fun(params): + """ + Negative log-likelihood of z-scores. + + The function has three arguments, packed into a vector: + + mean : location parameter + logscale : log of the scale parameter + logitprop : logit of the proportion of true nulls + + The implementation follows section 4 from Efron 2008. + """ + + d, s, p = xform(params) + + # Mass within the central region + central_mass = (norm.cdf((null_ub - d) / s) - + norm.cdf((null_lb - d) / s)) + + # Probability that a Z-score is null and is in the central region + cp = p * central_mass + + # Binomial term + rval = n_zs0 * np.log(cp) + (n_zs - n_zs0) * np.log(1 - cp) + + # Truncated Gaussian term for null Z-scores + zv = (zscores0 - d) / s + rval += np.sum(-zv**2 / 2) - n_zs0 * np.log(s) + rval -= n_zs0 * np.log(central_mass) + + return -rval + + + # Estimate the parameters + from scipy.optimize import minimize + # starting values are mean = 0, scale = 1, p0 ~ 1 + mz = minimize(fun, np.r_[0., 0, 3], method="Nelder-Mead") + mean, sd, prob = xform(mz['x']) + + self.mean = mean + self.sd = sd + self.null_proportion = prob + + + # The fitted null density function + def pdf(self, zscores): + """ + Evaluates the fitted emirical null Z-score density. + + Parameters + ---------- + zscores : scalar or array-like + The point or points at which the density is to be + evaluated. + + Returns + ------- + The empirical null Z-score density evaluated at the given + points. + """ + + zval = (zscores - self.mean) / self.sd + return np.exp(-0.5*zval**2 - np.log(self.sd) - 0.5*np.log(2*np.pi)) + diff --git a/statsmodels/stats/multivariate_tools.py b/statsmodels/stats/multivariate_tools.py new file mode 100644 index 0000000..4743e1d --- /dev/null +++ b/statsmodels/stats/multivariate_tools.py @@ -0,0 +1,251 @@ +'''Tools for multivariate analysis + + +Author : Josef Perktold +License : BSD-3 + + + +TODO: + +- names of functions, currently just "working titles" + +''' + + + +import numpy as np + +# temporarily here, used in return +class Bunch(dict): + def __init__(self, **kw): + dict.__init__(self, kw) + self.__dict__ = self + + +def partial_project(endog, exog): + '''helper function to get linear projection or partialling out of variables + + endog variables are projected on exog variables + + Parameters + ---------- + endog : ndarray + array of variables where the effect of exog is partialled out. + exog : ndarray + array of variables on which the endog variables are projected. + + Returns + ------- + res : instance of Bunch with + + - params : OLS parameter estimates from projection of endog on exog + - fittedvalues : predicted values of endog given exog + - resid : residual of the regression, values of endog with effect of + exog partialled out + + Notes + ----- + This is no-frills mainly for internal calculations, no error checking or + array conversion is performed, at least for now. + + ''' + x1, x2 = endog, exog + params = np.linalg.pinv(x2).dot(x1) + predicted = x2.dot(params) + residual = x1 - predicted + res = Bunch(params=params, + fittedvalues=predicted, + resid=residual) + + return res + + + +def cancorr(x1, x2, demean=True, standardize=False): + '''canonical correlation coefficient beween 2 arrays + + Parameters + ---------- + x1, x2 : ndarrays, 2_D + two 2-dimensional data arrays, observations in rows, variables in columns + demean : bool + If demean is true, then the mean is subtracted from each variable + standardize : bool + If standardize is true, then each variable is demeaned and divided by + its standard deviation. Rescaling does not change the canonical + correlation coefficients. + + Returns + ------- + ccorr : ndarray, 1d + canonical correlation coefficients, sorted from largest to smallest. + Note, that these are the square root of the eigenvalues. + + Notes + ----- + This is a helper function for other statistical functions. It only + calculates the canonical correlation coefficients and does not do a full + canoncial correlation analysis + + The canonical correlation coefficient is calculated with the generalized + matrix inverse and does not raise an exception if one of the data arrays + have less than full column rank. + + See Also + -------- + cc_ranktest + cc_stats + CCA not yet + + ''' + #x, y = x1, x2 + if demean or standardize: + x1 = (x1 - x1.mean(0)) + x2 = (x2 - x2.mean(0)) + + if standardize: + #std doesn't make a difference to canonical correlation coefficients + x1 /= x1.std(0) + x2 /= x2.std(0) + + t1 = np.linalg.pinv(x1).dot(x2) + t2 = np.linalg.pinv(x2).dot(x1) + m = t1.dot(t2) + cc = np.sqrt(np.linalg.eigvals(m)) + cc.sort() + return cc[::-1] + + +def cc_ranktest(x1, x2, demean=True, fullrank=False): + '''rank tests based on smallest canonical correlation coefficients + + Anderson canonical correlations test (LM test) and + Cragg-Donald test (Wald test) + Assumes homoskedasticity and independent observations, overrejects if + there is heteroscedasticity or autocorrelation. + + The Null Hypothesis is that the rank is k - 1, the alternative hypothesis + is that the rank is at least k. + + + Parameters + ---------- + x1, x2 : ndarrays, 2_D + two 2-dimensional data arrays, observations in rows, variables in columns + demean : bool + If demean is true, then the mean is subtracted from each variable. + fullrank : bool + If true, then only the test that the matrix has full rank is returned. + If false, the test for all possible ranks are returned. However, no + the p-values are not corrected for the multiplicity of tests. + + Returns + ------- + value : float + value of the test statistic + p-value : float + p-value for the test Null Hypothesis tha the smallest canonical + correlation coefficient is zero. based on chi-square distribution + df : int + degrees of freedom for thechi-square distribution in the hypothesis test + ccorr : ndarray, 1d + All canonical correlation coefficients sorted from largest to smallest. + + Notes + ----- + Degrees of freedom for the distribution of the test statistic are based on + number of columns of x1 and x2 and not on their matrix rank. + (I'm not sure yet what the interpretation of the test is if x1 or x2 are of + reduced rank.) + + See Also + -------- + cancorr + cc_stats + + ''' + + from scipy import stats + + nobs1, k1 = x1.shape + nobs2, k2 = x2.shape + + cc = cancorr(x1, x2, demean=demean) + cc2 = cc * cc + if fullrank: + df = np.abs(k1 - k2) + 1 + value = nobs1 * cc2[-1] + w_value = nobs1 * (cc2[-1] / (1. - cc2[-1])) + return value, stats.chi2.sf(value, df), df, cc, w_value, stats.chi2.sf(w_value, df) + else: + r = np.arange(min(k1, k2))[::-1] + df = (k1 - r) * (k2 - r) + values = nobs1 * cc2[::-1].cumsum() + w_values = nobs1 * (cc2 / (1. - cc2))[::-1].cumsum() + return values, stats.chi2.sf(values, df), df, cc, w_values, stats.chi2.sf(w_values, df) + + +def cc_stats(x1, x2, demean=True): + '''MANOVA statistics based on canonical correlation coefficient + + Calculates Pillai's Trace, Wilk's Lambda, Hotelling's Trace and + Roy's Largest Root. + + Parameters + ---------- + x1, x2 : ndarrays, 2_D + two 2-dimensional data arrays, observations in rows, variables in columns + demean : bool + If demean is true, then the mean is subtracted from each variable. + + Returns + ------- + res : dict + Dictionary containing the test statistics. + + Notes + ----- + + same as `canon` in Stata + + missing: F-statistics and p-values + + TODO: should return a results class instead + produces nans sometimes, singular, perfect correlation of x1, x2 ? + + ''' + + nobs1, k1 = x1.shape # endogenous ? + nobs2, k2 = x2.shape + cc = cancorr(x1, x2, demean=demean) + cc2 = cc**2 + lam = (cc2 / (1 - cc2)) # what if max cc2 is 1 ? + # Problem: ccr might not care if x1 or x2 are reduced rank, + # but df will depend on rank + df_model = k1 * k2 # df_hypothesis (we do not include mean in x1, x2) + df_resid = k1 * (nobs1 - k2 - demean) + s = min(df_model, k1) + m = 0.5 * (df_model - k1) + n = 0.5 * (df_resid - k1 - 1) + + df1 = k1 * df_model + df2 = k2 + + + pt_value = cc2.sum() # Pillai's trace + wl_value = np.product(1 / (1 + lam)) # Wilk's Lambda + ht_value = lam.sum() # Hotelling's Trace + rm_value = lam.max() # Roy's largest root + #from scipy import stats + # what's the distribution, the test statistic ? + res = {} + res['canonical correlation coefficient'] = cc + res['eigenvalues'] = lam + res["Pillai's Trace"] = pt_value + res["Wilk's Lambda"] = wl_value + res["Hotelling's Trace"] = ht_value + res["Roy's Largest Root"] = rm_value + res['df_resid'] = df_resid + res['df_m'] = m + return res diff --git a/statsmodels/stats/outliers_influence.py b/statsmodels/stats/outliers_influence.py new file mode 100644 index 0000000..a73f0f6 --- /dev/null +++ b/statsmodels/stats/outliers_influence.py @@ -0,0 +1,741 @@ +# -*- coding: utf-8 -*- +"""Influence and Outlier Measures + +Created on Sun Jan 29 11:16:09 2012 + +Author: Josef Perktold +License: BSD-3 +""" +from statsmodels.compat.python import lzip +from collections import defaultdict +import numpy as np + +from statsmodels.regression.linear_model import OLS +from statsmodels.tools.decorators import cache_readonly +from statsmodels.stats.multitest import multipletests +from statsmodels.tools.tools import maybe_unwrap_results + +# outliers test convenience wrapper + +def outlier_test(model_results, method='bonf', alpha=.05, labels=None, + order=False): + """ + Outlier Tests for RegressionResults instances. + + Parameters + ---------- + model_results : RegressionResults instance + Linear model results + method : str + - `bonferroni` : one-step correction + - `sidak` : one-step correction + - `holm-sidak` : + - `holm` : + - `simes-hochberg` : + - `hommel` : + - `fdr_bh` : Benjamini/Hochberg + - `fdr_by` : Benjamini/Yekutieli + See `statsmodels.stats.multitest.multipletests` for details. + alpha : float + familywise error rate + order : bool + Whether or not to order the results by the absolute value of the + studentized residuals. If labels are provided they will also be sorted. + + Returns + ------- + table : ndarray or DataFrame + Returns either an ndarray or a DataFrame if labels is not None. + Will attempt to get labels from model_results if available. The + columns are the Studentized residuals, the unadjusted p-value, + and the corrected p-value according to method. + + Notes + ----- + The unadjusted p-value is stats.t.sf(abs(resid), df) where + df = df_resid - 1. + """ + from scipy import stats # lazy import + infl = getattr(model_results, 'get_influence', None) + if infl is None: + results = maybe_unwrap_results(model_results) + raise AttributeError("model_results object %s does not have a " + "get_influence method." % results.__class__.__name__) + resid = infl().resid_studentized_external + if order: + idx = np.abs(resid).argsort()[::-1] + resid = resid[idx] + if labels is not None: + labels = np.array(labels)[idx].tolist() + df = model_results.df_resid - 1 + unadj_p = stats.t.sf(np.abs(resid), df) * 2 + adj_p = multipletests(unadj_p, alpha=alpha, method=method) + + data = np.c_[resid, unadj_p, adj_p[1]] + if labels is None: + labels = getattr(model_results.model.data, 'row_labels', None) + if labels is not None: + from pandas import DataFrame + return DataFrame(data, + columns=['student_resid', 'unadj_p', method+"(p)"], + index=labels) + return data + +#influence measures + +def reset_ramsey(res, degree=5): + '''Ramsey's RESET specification test for linear models + + This is a general specification test, for additional non-linear effects + in a model. + + + Notes + ----- + The test fits an auxiliary OLS regression where the design matrix, exog, + is augmented by powers 2 to degree of the fitted values. Then it performs + an F-test whether these additional terms are significant. + + If the p-value of the f-test is below a threshold, e.g. 0.1, then this + indicates that there might be additional non-linear effects in the model + and that the linear model is mis-specified. + + + References + ---------- + http://en.wikipedia.org/wiki/Ramsey_RESET_test + + ''' + order = degree + 1 + k_vars = res.model.exog.shape[1] + #vander without constant and x: + y_fitted_vander = np.vander(res.fittedvalues, order)[:, :-2] #drop constant + exog = np.column_stack((res.model.exog, y_fitted_vander)) + res_aux = OLS(res.model.endog, exog).fit() + #r_matrix = np.eye(degree, exog.shape[1], k_vars) + r_matrix = np.eye(degree-1, exog.shape[1], k_vars) + #df1 = degree - 1 + #df2 = exog.shape[0] - degree - res.df_model (without constant) + return res_aux.f_test(r_matrix) #, r_matrix, res_aux + + + +def variance_inflation_factor(exog, exog_idx): + '''variance inflation factor, VIF, for one exogenous variable + + The variance inflation factor is a measure for the increase of the + variance of the parameter estimates if an additional variable, given by + exog_idx is added to the linear regression. It is a measure for + multicollinearity of the design matrix, exog. + + One recommendation is that if VIF is greater than 5, then the explanatory + variable given by exog_idx is highly collinear with the other explanatory + variables, and the parameter estimates will have large standard errors + because of this. + + Parameters + ---------- + exog : ndarray, (nobs, k_vars) + design matrix with all explanatory variables, as for example used in + regression + exog_idx : int + index of the exogenous variable in the columns of exog + + Returns + ------- + vif : float + variance inflation factor + + Notes + ----- + This function does not save the auxiliary regression. + + See Also + -------- + xxx : class for regression diagnostics TODO: doesn't exist yet + + References + ---------- + http://en.wikipedia.org/wiki/Variance_inflation_factor + + ''' + k_vars = exog.shape[1] + x_i = exog[:, exog_idx] + mask = np.arange(k_vars) != exog_idx + x_noti = exog[:, mask] + r_squared_i = OLS(x_i, x_noti).fit().rsquared + vif = 1. / (1. - r_squared_i) + return vif + + +class OLSInfluence(object): + '''class to calculate outlier and influence measures for OLS result + + Parameters + ---------- + results : Regression Results instance + currently assumes the results are from an OLS regression + + Notes + ----- + One part of the results can be calculated without any auxiliary regression + (some of which have the `_internal` postfix in the name. Other statistics + require leave-one-observation-out (LOOO) auxiliary regression, and will be + slower (mainly results with `_external` postfix in the name). + The auxiliary LOOO regression only the required results are stored. + + Using the LOO measures is currently only recommended if the data set + is not too large. One possible approach for LOOO measures would be to + identify possible problem observations with the _internal measures, and + then run the leave-one-observation-out only with observations that are + possible outliers. (However, this is not yet available in an automized way.) + + This should be extended to general least squares. + + The leave-one-variable-out (LOVO) auxiliary regression are currently not + used. + + ''' + + def __init__(self, results): + #check which model is allowed + self.results = maybe_unwrap_results(results) + self.nobs, self.k_vars = results.model.exog.shape + self.endog = results.model.endog + self.exog = results.model.exog + self.model_class = results.model.__class__ + + self.sigma_est = np.sqrt(results.mse_resid) + + self.aux_regression_exog = {} + self.aux_regression_endog = {} + + @cache_readonly + def hat_matrix_diag(self): + '''(cached attribute) diagonal of the hat_matrix for OLS + + Notes + ----- + temporarily calculated here, this should go to model class + ''' + return (self.exog * self.results.model.pinv_wexog.T).sum(1) + + @cache_readonly + def resid_press(self): + '''(cached attribute) PRESS residuals + ''' + hii = self.hat_matrix_diag + return self.results.resid / (1 - hii) + + @cache_readonly + def influence(self): + '''(cached attribute) influence measure + + matches the influence measure that gretl reports + u * h / (1 - h) + where u are the residuals and h is the diagonal of the hat_matrix + ''' + hii = self.hat_matrix_diag + return self.results.resid * hii / (1 - hii) + + @cache_readonly + def hat_diag_factor(self): + '''(cached attribute) factor of diagonal of hat_matrix used in influence + + this might be useful for internal reuse + h / (1 - h) + ''' + hii = self.hat_matrix_diag + return hii / (1 - hii) + + @cache_readonly + def ess_press(self): + '''(cached attribute) error sum of squares of PRESS residuals + ''' + return np.dot(self.resid_press, self.resid_press) + + @cache_readonly + def resid_studentized_internal(self): + '''(cached attribute) studentized residuals using variance from OLS + + this uses sigma from original estimate + does not require leave one out loop + ''' + return self.get_resid_studentized_external(sigma=None) + #return self.results.resid / self.sigma_est + + @cache_readonly + def resid_studentized_external(self): + '''(cached attribute) studentized residuals using LOOO variance + + this uses sigma from leave-one-out estimates + + requires leave one out loop for observations + ''' + sigma_looo = np.sqrt(self.sigma2_not_obsi) + return self.get_resid_studentized_external(sigma=sigma_looo) + + def get_resid_studentized_external(self, sigma=None): + '''calculate studentized residuals + + Parameters + ---------- + sigma : None or float + estimate of the standard deviation of the residuals. If None, then + the estimate from the regression results is used. + + Returns + ------- + stzd_resid : ndarray + studentized residuals + + Notes + ----- + studentized residuals are defined as :: + + resid / sigma / np.sqrt(1 - hii) + + where resid are the residuals from the regression, sigma is an + estimate of the standard deviation of the residuals, and hii is the + diagonal of the hat_matrix. + + ''' + hii = self.hat_matrix_diag + if sigma is None: + sigma2_est = self.results.mse_resid + #can be replace by different estimators of sigma + sigma = np.sqrt(sigma2_est) + + return self.results.resid / sigma / np.sqrt(1 - hii) + + @cache_readonly + def dffits_internal(self): + '''(cached attribute) dffits measure for influence of an observation + + based on resid_studentized_internal + uses original results, no nobs loop + + ''' + #TODO: do I want to use different sigma estimate in + # resid_studentized_external + # -> move definition of sigma_error to the __init__ + hii = self.hat_matrix_diag + dffits_ = self.resid_studentized_internal * np.sqrt(hii / (1 - hii)) + dffits_threshold = 2 * np.sqrt(self.k_vars * 1. / self.nobs) + return dffits_, dffits_threshold + + @cache_readonly + def dffits(self): + '''(cached attribute) dffits measure for influence of an observation + + based on resid_studentized_external, + uses results from leave-one-observation-out loop + + It is recommended that observations with dffits large than a + threshold of 2 sqrt{k / n} where k is the number of parameters, should + be investigated. + + Returns + ------- + dffits: float + dffits_threshold : float + + References + ---------- + `Wikipedia `_ + + ''' + #TODO: do I want to use different sigma estimate in + # resid_studentized_external + # -> move definition of sigma_error to the __init__ + hii = self.hat_matrix_diag + dffits_ = self.resid_studentized_external * np.sqrt(hii / (1 - hii)) + dffits_threshold = 2 * np.sqrt(self.k_vars * 1. / self.nobs) + return dffits_, dffits_threshold + + @cache_readonly + def dfbetas(self): + '''(cached attribute) dfbetas + + uses results from leave-one-observation-out loop + ''' + dfbetas = self.results.params - self.params_not_obsi#[None,:] + dfbetas /= np.sqrt(self.sigma2_not_obsi[:,None]) + dfbetas /= np.sqrt(np.diag(self.results.normalized_cov_params)) + return dfbetas + + @cache_readonly + def sigma2_not_obsi(self): + '''(cached attribute) error variance for all LOOO regressions + + This is 'mse_resid' from each auxiliary regression. + + uses results from leave-one-observation-out loop + ''' + return np.asarray(self._res_looo['mse_resid']) + + @cache_readonly + def params_not_obsi(self): + '''(cached attribute) parameter estimates for all LOOO regressions + + uses results from leave-one-observation-out loop + ''' + return np.asarray(self._res_looo['params']) + + @cache_readonly + def det_cov_params_not_obsi(self): + '''(cached attribute) determinant of cov_params of all LOOO regressions + + uses results from leave-one-observation-out loop + ''' + return np.asarray(self._res_looo['det_cov_params']) + + @cache_readonly + def cooks_distance(self): + '''(cached attribute) Cooks distance + + uses original results, no nobs loop + + ''' + hii = self.hat_matrix_diag + #Eubank p.93, 94 + cooks_d2 = self.resid_studentized_internal**2 / self.k_vars + cooks_d2 *= hii / (1 - hii) + + from scipy import stats + #alpha = 0.1 + #print stats.f.isf(1-alpha, n_params, res.df_modelwc) + pvals = stats.f.sf(cooks_d2, self.k_vars, self.results.df_resid) + + return cooks_d2, pvals + + @cache_readonly + def cov_ratio(self): + '''(cached attribute) covariance ratio between LOOO and original + + This uses determinant of the estimate of the parameter covariance + from leave-one-out estimates. + requires leave one out loop for observations + + ''' + #don't use inplace division / because then we change original + cov_ratio = (self.det_cov_params_not_obsi + / np.linalg.det(self.results.cov_params())) + return cov_ratio + + @cache_readonly + def resid_var(self): + '''(cached attribute) estimate of variance of the residuals + + :: + + sigma2 = sigma2_OLS * (1 - hii) + + where hii is the diagonal of the hat matrix + + ''' + #TODO:check if correct outside of ols + return self.results.mse_resid * (1 - self.hat_matrix_diag) + + @cache_readonly + def resid_std(self): + '''(cached attribute) estimate of standard deviation of the residuals + + See Also + -------- + resid_var + + ''' + return np.sqrt(self.resid_var) + + + def _ols_xnoti(self, drop_idx, endog_idx='endog', store=True): + '''regression results from LOVO auxiliary regression with cache + + + The result instances are stored, which could use a large amount of + memory if the datasets are large. There are too many combinations to + store them all, except for small problems. + + Parameters + ---------- + drop_idx : int + index of exog that is dropped from the regression + endog_idx : 'endog' or int + If 'endog', then the endogenous variable of the result instance + is regressed on the exogenous variables, excluding the one at + drop_idx. If endog_idx is an integer, then the exog with that + index is regressed with OLS on all other exogenous variables. + (The latter is the auxiliary regression for the variance inflation + factor.) + + this needs more thought, memory versus speed + not yet used in any other parts, not sufficiently tested + ''' + #reverse the structure, access store, if fail calculate ? + #this creates keys in store even if store = false ! bug + if endog_idx == 'endog': + stored = self.aux_regression_endog + if hasattr(stored, drop_idx): + return stored[drop_idx] + x_i = self.results.model.endog + + else: + #nested dictionary + try: + self.aux_regression_exog[endog_idx][drop_idx] + except KeyError: + pass + + stored = self.aux_regression_exog[endog_idx] + stored = {} + + x_i = self.exog[:, endog_idx] + + k_vars = self.exog.shape[1] + mask = np.arange(k_vars) != drop_idx + x_noti = self.exog[:, mask] + res = OLS(x_i, x_noti).fit() + if store: + stored[drop_idx] = res + + return res + + def _get_drop_vari(self, attributes): + '''regress endog on exog without one of the variables + + This uses a k_vars loop, only attributes of the OLS instance are stored. + + Parameters + ---------- + attributes : list of strings + These are the names of the attributes of the auxiliary OLS results + instance that are stored and returned. + + not yet used + ''' + from statsmodels.sandbox.tools.cross_val import LeaveOneOut + + endog = self.results.model.endog + exog = self.exog + + cv_iter = LeaveOneOut(self.k_vars) + res_loo = defaultdict(list) + for inidx, outidx in cv_iter: + for att in attributes: + res_i = self.model_class(endog, exog[:,inidx]).fit() + res_loo[att].append(getattr(res_i, att)) + + return res_loo + + @cache_readonly + def _res_looo(self): + '''collect required results from the LOOO loop + + all results will be attached. + currently only 'params', 'mse_resid', 'det_cov_params' are stored + + regresses endog on exog dropping one observation at a time + + this uses a nobs loop, only attributes of the OLS instance are stored. + ''' + from statsmodels.sandbox.tools.cross_val import LeaveOneOut + get_det_cov_params = lambda res: np.linalg.det(res.cov_params()) + + endog = self.endog + exog = self.exog + + params = np.zeros(exog.shape, dtype=np.float) + mse_resid = np.zeros(endog.shape, dtype=np.float) + det_cov_params = np.zeros(endog.shape, dtype=np.float) + + cv_iter = LeaveOneOut(self.nobs) + for inidx, outidx in cv_iter: + res_i = self.model_class(endog[inidx], exog[inidx]).fit() + params[outidx] = res_i.params + mse_resid[outidx] = res_i.mse_resid + det_cov_params[outidx] = get_det_cov_params(res_i) + + return dict(params=params, mse_resid=mse_resid, + det_cov_params=det_cov_params) + + def summary_frame(self): + """ + Creates a DataFrame with all available influence results. + + Returns + ------- + frame : DataFrame + A DataFrame with all results. + + Notes + ----- + The resultant DataFrame contains six variables in addition to the + DFBETAS. These are: + + * cooks_d : Cook's Distance defined in `Influence.cooks_distance` + * standard_resid : Standardized residuals defined in + `Influence.resid_studentized_internal` + * hat_diag : The diagonal of the projection, or hat, matrix defined in + `Influence.hat_matrix_diag` + * dffits_internal : DFFITS statistics using internally Studentized + residuals defined in `Influence.dffits_internal` + * dffits : DFFITS statistics using externally Studentized residuals + defined in `Influence.dffits` + * student_resid : Externally Studentized residuals defined in + `Influence.resid_studentized_external` + """ + from pandas import DataFrame + + # row and column labels + data = self.results.model.data + row_labels = data.row_labels + beta_labels = ['dfb_' + i for i in data.xnames] + + # grab the results + summary_data = DataFrame(dict( + cooks_d = self.cooks_distance[0], + standard_resid = self.resid_studentized_internal, + hat_diag = self.hat_matrix_diag, + dffits_internal = self.dffits_internal[0], + student_resid = self.resid_studentized_external, + dffits = self.dffits[0], + ), + index = row_labels) + #NOTE: if we don't give columns, order of above will be arbitrary + dfbeta = DataFrame(self.dfbetas, columns=beta_labels, + index=row_labels) + + return dfbeta.join(summary_data) + + def summary_table(self, float_fmt="%6.3f"): + '''create a summary table with all influence and outlier measures + + This does currently not distinguish between statistics that can be + calculated from the original regression results and for which a + leave-one-observation-out loop is needed + + Returns + ------- + res : SimpleTable instance + SimpleTable instance with the results, can be printed + + Notes + ----- + This also attaches table_data to the instance. + + + + ''' + #print self.dfbetas + +# table_raw = [ np.arange(self.nobs), +# self.endog, +# self.fittedvalues, +# self.cooks_distance(), +# self.resid_studentized_internal, +# self.hat_matrix_diag, +# self.dffits_internal, +# self.resid_studentized_external, +# self.dffits, +# self.dfbetas +# ] + table_raw = [ ('obs', np.arange(self.nobs)), + ('endog', self.endog), + ('fitted\nvalue', self.results.fittedvalues), + ("Cook's\nd", self.cooks_distance[0]), + ("student.\nresidual", self.resid_studentized_internal), + ('hat diag', self.hat_matrix_diag), + ('dffits \ninternal', self.dffits_internal[0]), + ("ext.stud.\nresidual", self.resid_studentized_external), + ('dffits', self.dffits[0]) + ] + colnames, data = lzip(*table_raw) #unzip + data = np.column_stack(data) + self.table_data = data + from statsmodels.iolib.table import SimpleTable, default_html_fmt + from statsmodels.iolib.tableformatting import fmt_base + from copy import deepcopy + fmt = deepcopy(fmt_base) + fmt_html = deepcopy(default_html_fmt) + fmt['data_fmts'] = ["%4d"] + [float_fmt] * (data.shape[1] - 1) + #fmt_html['data_fmts'] = fmt['data_fmts'] + return SimpleTable(data, headers=colnames, txt_fmt=fmt, + html_fmt=fmt_html) + + +def summary_table(res, alpha=0.05): + '''generate summary table of outlier and influence similar to SAS + + Parameters + ---------- + alpha : float + significance level for confidence interval + + Returns + ------- + st : SimpleTable instance + table with results that can be printed + data : ndarray + calculated measures and statistics for the table + ss2 : list of strings + column_names for table (Note: rows of table are observations) + + ''' + + from scipy import stats + from statsmodels.sandbox.regression.predstd import wls_prediction_std + + infl = OLSInfluence(res) + + #standard error for predicted mean + #Note: using hat_matrix only works for fitted values + predict_mean_se = np.sqrt(infl.hat_matrix_diag*res.mse_resid) + + tppf = stats.t.isf(alpha/2., res.df_resid) + predict_mean_ci = np.column_stack([ + res.fittedvalues - tppf * predict_mean_se, + res.fittedvalues + tppf * predict_mean_se]) + + + #standard error for predicted observation + predict_se, predict_ci_low, predict_ci_upp = wls_prediction_std(res) + predict_ci = np.column_stack((predict_ci_low, predict_ci_upp)) + + #standard deviation of residual + resid_se = np.sqrt(res.mse_resid * (1 - infl.hat_matrix_diag)) + + table_sm = np.column_stack([ + np.arange(res.nobs) + 1, + res.model.endog, + res.fittedvalues, + predict_mean_se, + predict_mean_ci[:,0], + predict_mean_ci[:,1], + predict_ci[:,0], + predict_ci[:,1], + res.resid, + resid_se, + infl.resid_studentized_internal, + infl.cooks_distance[0] + ]) + + + #colnames, data = lzip(*table_raw) #unzip + data = table_sm + ss2 = ['Obs', 'Dep Var\nPopulation', 'Predicted\nValue', 'Std Error\nMean Predict', 'Mean ci\n95% low', 'Mean ci\n95% upp', 'Predict ci\n95% low', 'Predict ci\n95% upp', 'Residual', 'Std Error\nResidual', 'Student\nResidual', "Cook's\nD"] + colnames = ss2 + #self.table_data = data + #data = np.column_stack(data) + from statsmodels.iolib.table import SimpleTable, default_html_fmt + from statsmodels.iolib.tableformatting import fmt_base + from copy import deepcopy + fmt = deepcopy(fmt_base) + fmt_html = deepcopy(default_html_fmt) + fmt['data_fmts'] = ["%4d"] + ["%6.3f"] * (data.shape[1] - 1) + #fmt_html['data_fmts'] = fmt['data_fmts'] + st = SimpleTable(data, headers=colnames, txt_fmt=fmt, + html_fmt=fmt_html) + + return st, data, ss2 + diff --git a/statsmodels/stats/power.py b/statsmodels/stats/power.py new file mode 100644 index 0000000..0c9c22c --- /dev/null +++ b/statsmodels/stats/power.py @@ -0,0 +1,1136 @@ +# -*- coding: utf-8 -*- +#pylint: disable-msg=W0142 +"""Statistical power, solving for nobs, ... - trial version + +Created on Sat Jan 12 21:48:06 2013 + +Author: Josef Perktold + +Example +roundtrip - root with respect to all variables + + calculated, desired +nobs 33.367204205 33.367204205 +effect 0.5 0.5 +alpha 0.05 0.05 +power 0.8 0.8 + + +TODO: +refactoring + - rename beta -> power, beta (type 2 error is beta = 1-power) DONE + - I think the current implementation can handle any kinds of extra keywords + (except for maybe raising meaningful exceptions + - streamline code, I think internally classes can be merged + how to extend to k-sample tests? + user interface for different tests that map to the same (internal) test class + - sequence of arguments might be inconsistent, + arg and/or kwds so python checks what's required and what can be None. + - templating for docstrings ? + + +""" +from __future__ import print_function +from statsmodels.compat.python import iteritems +import numpy as np +from scipy import stats, optimize +from statsmodels.tools.rootfinding import brentq_expanding + +def ttest_power(effect_size, nobs, alpha, df=None, alternative='two-sided'): + '''Calculate power of a ttest + ''' + d = effect_size + if df is None: + df = nobs - 1 + + if alternative in ['two-sided', '2s']: + alpha_ = alpha / 2. #no inplace changes, doesn't work + elif alternative in ['smaller', 'larger']: + alpha_ = alpha + else: + raise ValueError("alternative has to be 'two-sided', 'larger' " + + "or 'smaller'") + + pow_ = 0 + if alternative in ['two-sided', '2s', 'larger']: + crit_upp = stats.t.isf(alpha_, df) + #print crit_upp, df, d*np.sqrt(nobs) + # use private methods, generic methods return nan with negative d + if np.any(np.isnan(crit_upp)): + # avoid endless loop, https://github.com/scipy/scipy/issues/2667 + pow_ = np.nan + else: + pow_ = stats.nct._sf(crit_upp, df, d*np.sqrt(nobs)) + if alternative in ['two-sided', '2s', 'smaller']: + crit_low = stats.t.ppf(alpha_, df) + #print crit_low, df, d*np.sqrt(nobs) + if np.any(np.isnan(crit_low)): + pow_ = np.nan + else: + pow_ += stats.nct._cdf(crit_low, df, d*np.sqrt(nobs)) + return pow_ + +def normal_power(effect_size, nobs, alpha, alternative='two-sided', sigma=1.): + '''Calculate power of a normal distributed test statistic + + ''' + d = effect_size + + if alternative in ['two-sided', '2s']: + alpha_ = alpha / 2. #no inplace changes, doesn't work + elif alternative in ['smaller', 'larger']: + alpha_ = alpha + else: + raise ValueError("alternative has to be 'two-sided', 'larger' " + + "or 'smaller'") + + pow_ = 0 + if alternative in ['two-sided', '2s', 'larger']: + crit = stats.norm.isf(alpha_) + pow_ = stats.norm.sf(crit - d*np.sqrt(nobs)/sigma) + if alternative in ['two-sided', '2s', 'smaller']: + crit = stats.norm.ppf(alpha_) + pow_ += stats.norm.cdf(crit - d*np.sqrt(nobs)/sigma) + return pow_ + +def ftest_anova_power(effect_size, nobs, alpha, k_groups=2, df=None): + '''power for ftest for one way anova with k equal sized groups + + nobs total sample size, sum over all groups + + should be general nobs observations, k_groups restrictions ??? + ''' + df_num = nobs - k_groups + df_denom = k_groups - 1 + crit = stats.f.isf(alpha, df_denom, df_num) + pow_ = stats.ncf.sf(crit, df_denom, df_num, effect_size**2 * nobs) + return pow_#, crit + +def ftest_power(effect_size, df_num, df_denom, alpha, ncc=1): + '''Calculate the power of a F-test. + + Parameters + ---------- + effect_size : float + standardized effect size, mean divided by the standard deviation. + effect size has to be positive. + df_num : int or float + numerator degrees of freedom. + df_denom : int or float + denominator degrees of freedom. + alpha : float in interval (0,1) + significance level, e.g. 0.05, is the probability of a type I + error, that is wrong rejections if the Null Hypothesis is true. + ncc : int + degrees of freedom correction for non-centrality parameter. + see Notes + + Returns + ------- + power : float + Power of the test, e.g. 0.8, is one minus the probability of a + type II error. Power is the probability that the test correctly + rejects the Null Hypothesis if the Alternative Hypothesis is true. + + Notes + ----- + + sample size is given implicitly by df_num + + set ncc=0 to match t-test, or f-test in LikelihoodModelResults. + ncc=1 matches the non-centrality parameter in R::pwr::pwr.f2.test + + ftest_power with ncc=0 should also be correct for f_test in regression + models, with df_num and d_denom as defined there. (not verified yet) + ''' + nc = effect_size**2 * (df_denom + df_num + ncc) + crit = stats.f.isf(alpha, df_denom, df_num) + pow_ = stats.ncf.sf(crit, df_denom, df_num, nc) + return pow_ #, crit, nc + + +#class based implementation +#-------------------------- + +class Power(object): + '''Statistical Power calculations, Base Class + + so far this could all be class methods + ''' + + def __init__(self, **kwds): + self.__dict__.update(kwds) + # used only for instance level start values + self.start_ttp = dict(effect_size=0.01, nobs=10., alpha=0.15, + power=0.6, nobs1=10., ratio=1, + df_num=10, df_denom=3 # for FTestPower + ) + # TODO: nobs1 and ratio are for ttest_ind, + # need start_ttp for each test/class separately, + # possible rootfinding problem for effect_size, starting small seems to + # work + from collections import defaultdict + self.start_bqexp = defaultdict(dict) + for key in ['nobs', 'nobs1', 'df_num', 'df_denom']: + self.start_bqexp[key] = dict(low=2., start_upp=50.) + for key in ['df_denom']: + self.start_bqexp[key] = dict(low=1., start_upp=50.) + for key in ['ratio']: + self.start_bqexp[key] = dict(low=1e-8, start_upp=2) + for key in ['alpha']: + self.start_bqexp[key] = dict(low=1e-12, upp=1 - 1e-12) + + def power(self, *args, **kwds): + raise NotImplementedError + + def _power_identity(self, *args, **kwds): + power_ = kwds.pop('power') + return self.power(*args, **kwds) - power_ + + def solve_power(self, **kwds): + '''solve for any one of the parameters of a t-test + + for t-test the keywords are: + effect_size, nobs, alpha, power + + exactly one needs to be ``None``, all others need numeric values + + *attaches* + + cache_fit_res : list + Cache of the result of the root finding procedure for the latest + call to ``solve_power``, mainly for debugging purposes. + The first element is the success indicator, one if successful. + The remaining elements contain the return information of the up to + three solvers that have been tried. + + + ''' + #TODO: maybe use explicit kwds, + # nicer but requires inspect? and not generic across tests + # I'm duplicating this in the subclass to get informative docstring + key = [k for k,v in iteritems(kwds) if v is None] + #print kwds, key; + if len(key) != 1: + raise ValueError('need exactly one keyword that is None') + key = key[0] + + if key == 'power': + del kwds['power'] + return self.power(**kwds) + + self._counter = 0 + def func(x): + kwds[key] = x + fval = self._power_identity(**kwds) + self._counter += 1 + #print self._counter, + if self._counter > 500: + raise RuntimeError('possible endless loop (500 NaNs)') + if np.isnan(fval): + return np.inf + else: + return fval + + #TODO: I'm using the following so I get a warning when start_ttp is not defined + try: + start_value = self.start_ttp[key] + except KeyError: + start_value = 0.9 + print('Warning: using default start_value for {0}'.format(key)) + + fit_kwds = self.start_bqexp[key] + fit_res = [] + #print vars() + try: + val, res = brentq_expanding(func, full_output=True, **fit_kwds) + failed = False + fit_res.append(res) + except ValueError: + failed = True + fit_res.append(None) + + success = None + if (not failed) and res.converged: + success = 1 + else: + # try backup + #TODO: check more cases to make this robust + val, infodict, ier, msg = optimize.fsolve(func, start_value, + full_output=True) #scalar + #val = optimize.newton(func, start_value) #scalar + fval = infodict['fvec'] + fit_res.append(infodict) + if ier == 1 and np.abs(fval) < 1e-4 : + success = 1 + else: + #print infodict + if key in ['alpha', 'power', 'effect_size']: + val, r = optimize.brentq(func, 1e-8, 1-1e-8, + full_output=True) #scalar + success = 1 if r.converged else 0 + fit_res.append(r) + else: + success = 0 + + if not success == 1: + import warnings + from statsmodels.tools.sm_exceptions import (ConvergenceWarning, + convergence_doc) + warnings.warn(convergence_doc, ConvergenceWarning) + + #attach fit_res, for reading only, should be needed only for debugging + fit_res.insert(0, success) + self.cache_fit_res = fit_res + return val + + def plot_power(self, dep_var='nobs', nobs=None, effect_size=None, + alpha=0.05, ax=None, title=None, plt_kwds=None, **kwds): + '''plot power with number of observations or effect size on x-axis + + Parameters + ---------- + dep_var : string in ['nobs', 'effect_size', 'alpha'] + This specifies which variable is used for the horizontal axis. + If dep_var='nobs' (default), then one curve is created for each + value of ``effect_size``. If dep_var='effect_size' or alpha, then + one curve is created for each value of ``nobs``. + nobs : scalar or array_like + specifies the values of the number of observations in the plot + effect_size : scalar or array_like + specifies the values of the effect_size in the plot + alpha : float or array_like + The significance level (type I error) used in the power + calculation. Can only be more than a scalar, if ``dep_var='alpha'`` + ax : None or axis instance + If ax is None, than a matplotlib figure is created. If ax is a + matplotlib axis instance, then it is reused, and the plot elements + are created with it. + title : string + title for the axis. Use an empty string, ``''``, to avoid a title. + plt_kwds : None or dict + not used yet + kwds : optional keywords for power function + These remaining keyword arguments are used as arguments to the + power function. Many power function support ``alternative`` as a + keyword argument, two-sample test support ``ratio``. + + Returns + ------- + fig : matplotlib figure instance + + Notes + ----- + This works only for classes where the ``power`` method has + ``effect_size``, ``nobs`` and ``alpha`` as the first three arguments. + If the second argument is ``nobs1``, then the number of observations + in the plot are those for the first sample. + TODO: fix this for FTestPower and GofChisquarePower + + TODO: maybe add line variable, if we want more than nobs and effectsize + ''' + #if pwr_kwds is None: + # pwr_kwds = {} + from statsmodels.graphics import utils + from statsmodels.graphics.plottools import rainbow + fig, ax = utils.create_mpl_ax(ax) + import matplotlib.pyplot as plt + colormap = plt.cm.Dark2 #pylint: disable-msg=E1101 + plt_alpha = 1 #0.75 + lw = 2 + if dep_var == 'nobs': + colors = rainbow(len(effect_size)) + colors = [colormap(i) for i in np.linspace(0, 0.9, len(effect_size))] + for ii, es in enumerate(effect_size): + power = self.power(es, nobs, alpha, **kwds) + ax.plot(nobs, power, lw=lw, alpha=plt_alpha, + color=colors[ii], label='es=%4.2F' % es) + xlabel = 'Number of Observations' + elif dep_var in ['effect size', 'effect_size', 'es']: + colors = rainbow(len(nobs)) + colors = [colormap(i) for i in np.linspace(0, 0.9, len(nobs))] + for ii, n in enumerate(nobs): + power = self.power(effect_size, n, alpha, **kwds) + ax.plot(effect_size, power, lw=lw, alpha=plt_alpha, + color=colors[ii], label='N=%4.2F' % n) + xlabel = 'Effect Size' + elif dep_var in ['alpha']: + # experimental nobs as defining separate lines + colors = rainbow(len(nobs)) + + for ii, n in enumerate(nobs): + power = self.power(effect_size, n, alpha, **kwds) + ax.plot(alpha, power, lw=lw, alpha=plt_alpha, + color=colors[ii], label='N=%4.2F' % n) + xlabel = 'alpha' + else: + raise ValueError('depvar not implemented') + + if title is None: + title = 'Power of Test' + ax.set_xlabel(xlabel) + ax.set_title(title) + ax.legend(loc='lower right') + return fig + + +class TTestPower(Power): + '''Statistical Power calculations for one sample or paired sample t-test + + ''' + + def power(self, effect_size, nobs, alpha, df=None, alternative='two-sided'): + '''Calculate the power of a t-test for one sample or paired samples. + + Parameters + ---------- + effect_size : float + standardized effect size, mean divided by the standard deviation. + effect size has to be positive. + nobs : int or float + sample size, number of observations. + alpha : float in interval (0,1) + significance level, e.g. 0.05, is the probability of a type I + error, that is wrong rejections if the Null Hypothesis is true. + df : int or float + degrees of freedom. By default this is None, and the df from the + one sample or paired ttest is used, ``df = nobs1 - 1`` + alternative : string, 'two-sided' (default), 'larger', 'smaller' + extra argument to choose whether the power is calculated for a + two-sided (default) or one sided test. The one-sided test can be + either 'larger', 'smaller'. + . + + Returns + ------- + power : float + Power of the test, e.g. 0.8, is one minus the probability of a + type II error. Power is the probability that the test correctly + rejects the Null Hypothesis if the Alternative Hypothesis is true. + + ''' + # for debugging + #print 'calling ttest power with', (effect_size, nobs, alpha, df, alternative) + return ttest_power(effect_size, nobs, alpha, df=df, + alternative=alternative) + + #method is only added to have explicit keywords and docstring + def solve_power(self, effect_size=None, nobs=None, alpha=None, power=None, + alternative='two-sided'): + '''solve for any one parameter of the power of a one sample t-test + + for the one sample t-test the keywords are: + effect_size, nobs, alpha, power + + Exactly one needs to be ``None``, all others need numeric values. + + This test can also be used for a paired t-test, where effect size is + defined in terms of the mean difference, and nobs is the number of + pairs. + + Parameters + ---------- + effect_size : float + standardized effect size, mean divided by the standard deviation. + effect size has to be positive. + nobs : int or float + sample size, number of observations. + alpha : float in interval (0,1) + significance level, e.g. 0.05, is the probability of a type I + error, that is wrong rejections if the Null Hypothesis is true. + power : float in interval (0,1) + power of the test, e.g. 0.8, is one minus the probability of a + type II error. Power is the probability that the test correctly + rejects the Null Hypothesis if the Alternative Hypothesis is true. + alternative : string, 'two-sided' (default) or 'one-sided' + extra argument to choose whether the power is calculated for a + two-sided (default) or one sided test. + 'one-sided' assumes we are in the relevant tail. + + Returns + ------- + value : float + The value of the parameter that was set to None in the call. The + value solves the power equation given the remaining parameters. + + *attaches* + + cache_fit_res : list + Cache of the result of the root finding procedure for the latest + call to ``solve_power``, mainly for debugging purposes. + The first element is the success indicator, one if successful. + The remaining elements contain the return information of the up to + three solvers that have been tried. + + Notes + ----- + The function uses scipy.optimize for finding the value that satisfies + the power equation. It first uses ``brentq`` with a prior search for + bounds. If this fails to find a root, ``fsolve`` is used. If ``fsolve`` + also fails, then, for ``alpha``, ``power`` and ``effect_size``, + ``brentq`` with fixed bounds is used. However, there can still be cases + where this fails. + + ''' + # for debugging + #print 'calling ttest solve with', (effect_size, nobs, alpha, power, alternative) + return super(TTestPower, self).solve_power(effect_size=effect_size, + nobs=nobs, + alpha=alpha, + power=power, + alternative=alternative) + +class TTestIndPower(Power): + '''Statistical Power calculations for t-test for two independent sample + + currently only uses pooled variance + + ''' + + + def power(self, effect_size, nobs1, alpha, ratio=1, df=None, + alternative='two-sided'): + '''Calculate the power of a t-test for two independent sample + + Parameters + ---------- + effect_size : float + standardized effect size, difference between the two means divided + by the standard deviation. `effect_size` has to be positive. + nobs1 : int or float + number of observations of sample 1. The number of observations of + sample two is ratio times the size of sample 1, + i.e. ``nobs2 = nobs1 * ratio`` + alpha : float in interval (0,1) + significance level, e.g. 0.05, is the probability of a type I + error, that is wrong rejections if the Null Hypothesis is true. + ratio : float + ratio of the number of observations in sample 2 relative to + sample 1. see description of nobs1 + The default for ratio is 1; to solve for ratio given the other + arguments, it has to be explicitly set to None. + df : int or float + degrees of freedom. By default this is None, and the df from the + ttest with pooled variance is used, ``df = (nobs1 - 1 + nobs2 - 1)`` + alternative : string, 'two-sided' (default), 'larger', 'smaller' + extra argument to choose whether the power is calculated for a + two-sided (default) or one sided test. The one-sided test can be + either 'larger', 'smaller'. + + Returns + ------- + power : float + Power of the test, e.g. 0.8, is one minus the probability of a + type II error. Power is the probability that the test correctly + rejects the Null Hypothesis if the Alternative Hypothesis is true. + + ''' + + nobs2 = nobs1*ratio + #pooled variance + if df is None: + df = (nobs1 - 1 + nobs2 - 1) + + nobs = 1./ (1. / nobs1 + 1. / nobs2) + #print 'calling ttest power with', (effect_size, nobs, alpha, df, alternative) + return ttest_power(effect_size, nobs, alpha, df=df, alternative=alternative) + + #method is only added to have explicit keywords and docstring + def solve_power(self, effect_size=None, nobs1=None, alpha=None, power=None, + ratio=1., alternative='two-sided'): + '''solve for any one parameter of the power of a two sample t-test + + for t-test the keywords are: + effect_size, nobs1, alpha, power, ratio + + exactly one needs to be ``None``, all others need numeric values + + Parameters + ---------- + effect_size : float + standardized effect size, difference between the two means divided + by the standard deviation. `effect_size` has to be positive. + nobs1 : int or float + number of observations of sample 1. The number of observations of + sample two is ratio times the size of sample 1, + i.e. ``nobs2 = nobs1 * ratio`` + alpha : float in interval (0,1) + significance level, e.g. 0.05, is the probability of a type I + error, that is wrong rejections if the Null Hypothesis is true. + power : float in interval (0,1) + power of the test, e.g. 0.8, is one minus the probability of a + type II error. Power is the probability that the test correctly + rejects the Null Hypothesis if the Alternative Hypothesis is true. + ratio : float + ratio of the number of observations in sample 2 relative to + sample 1. see description of nobs1 + The default for ratio is 1; to solve for ratio given the other + arguments it has to be explicitly set to None. + alternative : string, 'two-sided' (default), 'larger', 'smaller' + extra argument to choose whether the power is calculated for a + two-sided (default) or one sided test. The one-sided test can be + either 'larger', 'smaller'. + + Returns + ------- + value : float + The value of the parameter that was set to None in the call. The + value solves the power equation given the remaining parameters. + + + Notes + ----- + The function uses scipy.optimize for finding the value that satisfies + the power equation. It first uses ``brentq`` with a prior search for + bounds. If this fails to find a root, ``fsolve`` is used. If ``fsolve`` + also fails, then, for ``alpha``, ``power`` and ``effect_size``, + ``brentq`` with fixed bounds is used. However, there can still be cases + where this fails. + + ''' + return super(TTestIndPower, self).solve_power(effect_size=effect_size, + nobs1=nobs1, + alpha=alpha, + power=power, + ratio=ratio, + alternative=alternative) + +class NormalIndPower(Power): + '''Statistical Power calculations for z-test for two independent samples. + + currently only uses pooled variance + + ''' + + def __init__(self, ddof=0, **kwds): + self.ddof = ddof + super(NormalIndPower, self).__init__(**kwds) + + def power(self, effect_size, nobs1, alpha, ratio=1, + alternative='two-sided'): + '''Calculate the power of a t-test for two independent sample + + Parameters + ---------- + effect_size : float + standardized effect size, difference between the two means divided + by the standard deviation. effect size has to be positive. + nobs1 : int or float + number of observations of sample 1. The number of observations of + sample two is ratio times the size of sample 1, + i.e. ``nobs2 = nobs1 * ratio`` + ``ratio`` can be set to zero in order to get the power for a + one sample test. + alpha : float in interval (0,1) + significance level, e.g. 0.05, is the probability of a type I + error, that is wrong rejections if the Null Hypothesis is true. + ratio : float + ratio of the number of observations in sample 2 relative to + sample 1. see description of nobs1 + The default for ratio is 1; to solve for ratio given the other + arguments it has to be explicitly set to None. + alternative : string, 'two-sided' (default), 'larger', 'smaller' + extra argument to choose whether the power is calculated for a + two-sided (default) or one sided test. The one-sided test can be + either 'larger', 'smaller'. + + Returns + ------- + power : float + Power of the test, e.g. 0.8, is one minus the probability of a + type II error. Power is the probability that the test correctly + rejects the Null Hypothesis if the Alternative Hypothesis is true. + + ''' + + ddof = self.ddof # for correlation, ddof=3 + + # get effective nobs, factor for std of test statistic + if ratio > 0: + nobs2 = nobs1*ratio + #equivalent to nobs = n1*n2/(n1+n2)=n1*ratio/(1+ratio) + nobs = 1./ (1. / (nobs1 - ddof) + 1. / (nobs2 - ddof)) + else: + nobs = nobs1 - ddof + return normal_power(effect_size, nobs, alpha, alternative=alternative) + + #method is only added to have explicit keywords and docstring + def solve_power(self, effect_size=None, nobs1=None, alpha=None, power=None, + ratio=1., alternative='two-sided'): + '''solve for any one parameter of the power of a two sample z-test + + for z-test the keywords are: + effect_size, nobs1, alpha, power, ratio + + exactly one needs to be ``None``, all others need numeric values + + Parameters + ---------- + effect_size : float + standardized effect size, difference between the two means divided + by the standard deviation. + If ratio=0, then this is the standardized mean in the one sample + test. + nobs1 : int or float + number of observations of sample 1. The number of observations of + sample two is ratio times the size of sample 1, + i.e. ``nobs2 = nobs1 * ratio`` + ``ratio`` can be set to zero in order to get the power for a + one sample test. + alpha : float in interval (0,1) + significance level, e.g. 0.05, is the probability of a type I + error, that is wrong rejections if the Null Hypothesis is true. + power : float in interval (0,1) + power of the test, e.g. 0.8, is one minus the probability of a + type II error. Power is the probability that the test correctly + rejects the Null Hypothesis if the Alternative Hypothesis is true. + ratio : float + ratio of the number of observations in sample 2 relative to + sample 1. see description of nobs1 + The default for ratio is 1; to solve for ration given the other + arguments it has to be explicitly set to None. + alternative : string, 'two-sided' (default), 'larger', 'smaller' + extra argument to choose whether the power is calculated for a + two-sided (default) or one sided test. The one-sided test can be + either 'larger', 'smaller'. + + Returns + ------- + value : float + The value of the parameter that was set to None in the call. The + value solves the power equation given the remaining parameters. + + + Notes + ----- + The function uses scipy.optimize for finding the value that satisfies + the power equation. It first uses ``brentq`` with a prior search for + bounds. If this fails to find a root, ``fsolve`` is used. If ``fsolve`` + also fails, then, for ``alpha``, ``power`` and ``effect_size``, + ``brentq`` with fixed bounds is used. However, there can still be cases + where this fails. + + ''' + return super(NormalIndPower, self).solve_power(effect_size=effect_size, + nobs1=nobs1, + alpha=alpha, + power=power, + ratio=ratio, + alternative=alternative) + + +class FTestPower(Power): + '''Statistical Power calculations for generic F-test + + ''' + + def power(self, effect_size, df_num, df_denom, alpha, ncc=1): + '''Calculate the power of a F-test. + + Parameters + ---------- + effect_size : float + standardized effect size, mean divided by the standard deviation. + effect size has to be positive. + df_num : int or float + numerator degrees of freedom. + df_denom : int or float + denominator degrees of freedom. + alpha : float in interval (0,1) + significance level, e.g. 0.05, is the probability of a type I + error, that is wrong rejections if the Null Hypothesis is true. + ncc : int + degrees of freedom correction for non-centrality parameter. + see Notes + + Returns + ------- + power : float + Power of the test, e.g. 0.8, is one minus the probability of a + type II error. Power is the probability that the test correctly + rejects the Null Hypothesis if the Alternative Hypothesis is true. + + Notes + ----- + + sample size is given implicitly by df_num + + set ncc=0 to match t-test, or f-test in LikelihoodModelResults. + ncc=1 matches the non-centrality parameter in R::pwr::pwr.f2.test + + ftest_power with ncc=0 should also be correct for f_test in regression + models, with df_num and d_denom as defined there. (not verified yet) + ''' + + pow_ = ftest_power(effect_size, df_num, df_denom, alpha, ncc=ncc) + #print effect_size, df_num, df_denom, alpha, pow_ + return pow_ + + #method is only added to have explicit keywords and docstring + def solve_power(self, effect_size=None, df_num=None, df_denom=None, + nobs=None, alpha=None, power=None, ncc=1): + '''solve for any one parameter of the power of a F-test + + for the one sample F-test the keywords are: + effect_size, df_num, df_denom, alpha, power + + Exactly one needs to be ``None``, all others need numeric values. + + + Parameters + ---------- + effect_size : float + standardized effect size, mean divided by the standard deviation. + effect size has to be positive. + nobs : int or float + sample size, number of observations. + alpha : float in interval (0,1) + significance level, e.g. 0.05, is the probability of a type I + error, that is wrong rejections if the Null Hypothesis is true. + power : float in interval (0,1) + power of the test, e.g. 0.8, is one minus the probability of a + type II error. Power is the probability that the test correctly + rejects the Null Hypothesis if the Alternative Hypothesis is true. + alternative : string, 'two-sided' (default) or 'one-sided' + extra argument to choose whether the power is calculated for a + two-sided (default) or one sided test. + 'one-sided' assumes we are in the relevant tail. + + Returns + ------- + value : float + The value of the parameter that was set to None in the call. The + value solves the power equation given the remainding parameters. + + + Notes + ----- + The function uses scipy.optimize for finding the value that satisfies + the power equation. It first uses ``brentq`` with a prior search for + bounds. If this fails to find a root, ``fsolve`` is used. If ``fsolve`` + also fails, then, for ``alpha``, ``power`` and ``effect_size``, + ``brentq`` with fixed bounds is used. However, there can still be cases + where this fails. + + ''' + return super(FTestPower, self).solve_power(effect_size=effect_size, + df_num=df_num, + df_denom=df_denom, + alpha=alpha, + power=power, + ncc=ncc) + +class FTestAnovaPower(Power): + '''Statistical Power calculations F-test for one factor balanced ANOVA + + ''' + + def power(self, effect_size, nobs, alpha, k_groups=2): + '''Calculate the power of a F-test for one factor ANOVA. + + Parameters + ---------- + effect_size : float + standardized effect size, mean divided by the standard deviation. + effect size has to be positive. + nobs : int or float + sample size, number of observations. + alpha : float in interval (0,1) + significance level, e.g. 0.05, is the probability of a type I + error, that is wrong rejections if the Null Hypothesis is true. + k_groups : int or float + number of groups in the ANOVA or k-sample comparison. Default is 2. + + Returns + ------- + power : float + Power of the test, e.g. 0.8, is one minus the probability of a + type II error. Power is the probability that the test correctly + rejects the Null Hypothesis if the Alternative Hypothesis is true. + + ''' + return ftest_anova_power(effect_size, nobs, alpha, k_groups=k_groups) + + #method is only added to have explicit keywords and docstring + def solve_power(self, effect_size=None, nobs=None, alpha=None, power=None, + k_groups=2): + '''solve for any one parameter of the power of a F-test + + for the one sample F-test the keywords are: + effect_size, nobs, alpha, power + + Exactly one needs to be ``None``, all others need numeric values. + + + Parameters + ---------- + effect_size : float + standardized effect size, mean divided by the standard deviation. + effect size has to be positive. + nobs : int or float + sample size, number of observations. + alpha : float in interval (0,1) + significance level, e.g. 0.05, is the probability of a type I + error, that is wrong rejections if the Null Hypothesis is true. + power : float in interval (0,1) + power of the test, e.g. 0.8, is one minus the probability of a + type II error. Power is the probability that the test correctly + rejects the Null Hypothesis if the Alternative Hypothesis is true. + + Returns + ------- + value : float + The value of the parameter that was set to None in the call. The + value solves the power equation given the remainding parameters. + + + Notes + ----- + The function uses scipy.optimize for finding the value that satisfies + the power equation. It first uses ``brentq`` with a prior search for + bounds. If this fails to find a root, ``fsolve`` is used. If ``fsolve`` + also fails, then, for ``alpha``, ``power`` and ``effect_size``, + ``brentq`` with fixed bounds is used. However, there can still be cases + where this fails. + + ''' + # update start values for root finding + if not k_groups is None: + self.start_ttp['nobs'] = k_groups * 10 + self.start_bqexp['nobs'] = dict(low=k_groups * 2, + start_upp=k_groups * 10) + # first attempt at special casing + if effect_size is None: + return self._solve_effect_size(effect_size=effect_size, + nobs=nobs, + alpha=alpha, + k_groups=k_groups, + power=power) + + return super(FTestAnovaPower, self).solve_power(effect_size=effect_size, + nobs=nobs, + alpha=alpha, + k_groups=k_groups, + power=power) + + def _solve_effect_size(self, effect_size=None, nobs=None, alpha=None, + power=None, k_groups=2): + '''experimental, test failure in solve_power for effect_size + ''' + def func(x): + effect_size = x + return self._power_identity(effect_size=effect_size, + nobs=nobs, + alpha=alpha, + k_groups=k_groups, + power=power) + + val, r = optimize.brentq(func, 1e-8, 1-1e-8, full_output=True) + if not r.converged: + print(r) + return val + + +class GofChisquarePower(Power): + '''Statistical Power calculations for one sample chisquare test + + ''' + + def power(self, effect_size, nobs, alpha, n_bins, ddof=0): + #alternative='two-sided'): + '''Calculate the power of a chisquare test for one sample + + Only two-sided alternative is implemented + + Parameters + ---------- + effect_size : float + standardized effect size, according to Cohen's definition. + see :func:`statsmodels.stats.gof.chisquare_effectsize` + nobs : int or float + sample size, number of observations. + alpha : float in interval (0,1) + significance level, e.g. 0.05, is the probability of a type I + error, that is wrong rejections if the Null Hypothesis is true. + n_bins : int + number of bins or cells in the distribution. + + Returns + ------- + power : float + Power of the test, e.g. 0.8, is one minus the probability of a + type II error. Power is the probability that the test correctly + rejects the Null Hypothesis if the Alternative Hypothesis is true. + + ''' + from statsmodels.stats.gof import chisquare_power + return chisquare_power(effect_size, nobs, n_bins, alpha, ddof=0) + + #method is only added to have explicit keywords and docstring + def solve_power(self, effect_size=None, nobs=None, alpha=None, + power=None, n_bins=2): + '''solve for any one parameter of the power of a one sample chisquare-test + + for the one sample chisquare-test the keywords are: + effect_size, nobs, alpha, power + + Exactly one needs to be ``None``, all others need numeric values. + + n_bins needs to be defined, a default=2 is used. + + + Parameters + ---------- + effect_size : float + standardized effect size, according to Cohen's definition. + see :func:`statsmodels.stats.gof.chisquare_effectsize` + nobs : int or float + sample size, number of observations. + alpha : float in interval (0,1) + significance level, e.g. 0.05, is the probability of a type I + error, that is wrong rejections if the Null Hypothesis is true. + power : float in interval (0,1) + power of the test, e.g. 0.8, is one minus the probability of a + type II error. Power is the probability that the test correctly + rejects the Null Hypothesis if the Alternative Hypothesis is true. + n_bins : int + number of bins or cells in the distribution + + Returns + ------- + value : float + The value of the parameter that was set to None in the call. The + value solves the power equation given the remaining parameters. + + + Notes + ----- + The function uses scipy.optimize for finding the value that satisfies + the power equation. It first uses ``brentq`` with a prior search for + bounds. If this fails to find a root, ``fsolve`` is used. If ``fsolve`` + also fails, then, for ``alpha``, ``power`` and ``effect_size``, + ``brentq`` with fixed bounds is used. However, there can still be cases + where this fails. + + ''' + return super(GofChisquarePower, self).solve_power(effect_size=effect_size, + nobs=nobs, + n_bins=n_bins, + alpha=alpha, + power=power) + +class _GofChisquareIndPower(Power): + '''Statistical Power calculations for chisquare goodness-of-fit test + + TODO: this is not working yet + for 2sample case need two nobs in function + no one-sided chisquare test, is there one? use normal distribution? + -> drop one-sided options? + ''' + + + def power(self, effect_size, nobs1, alpha, ratio=1, + alternative='two-sided'): + '''Calculate the power of a chisquare for two independent sample + + Parameters + ---------- + effect_size : float + standardize effect size, difference between the two means divided + by the standard deviation. effect size has to be positive. + nobs1 : int or float + number of observations of sample 1. The number of observations of + sample two is ratio times the size of sample 1, + i.e. ``nobs2 = nobs1 * ratio`` + alpha : float in interval (0,1) + significance level, e.g. 0.05, is the probability of a type I + error, that is wrong rejections if the Null Hypothesis is true. + ratio : float + ratio of the number of observations in sample 2 relative to + sample 1. see description of nobs1 + The default for ratio is 1; to solve for ration given the other + arguments it has to be explicitely set to None. + alternative : string, 'two-sided' (default) or 'one-sided' + extra argument to choose whether the power is calculated for a + two-sided (default) or one sided test. + 'one-sided' assumes we are in the relevant tail. + + Returns + ------- + power : float + Power of the test, e.g. 0.8, is one minus the probability of a + type II error. Power is the probability that the test correctly + rejects the Null Hypothesis if the Alternative Hypothesis is true. + + ''' + + from statsmodels.stats.gof import chisquare_power + nobs2 = nobs1*ratio + #equivalent to nobs = n1*n2/(n1+n2)=n1*ratio/(1+ratio) + nobs = 1./ (1. / nobs1 + 1. / nobs2) + return chisquare_power(effect_size, nobs, alpha) + + #method is only added to have explicit keywords and docstring + def solve_power(self, effect_size=None, nobs1=None, alpha=None, power=None, + ratio=1., alternative='two-sided'): + '''solve for any one parameter of the power of a two sample z-test + + for z-test the keywords are: + effect_size, nobs1, alpha, power, ratio + + exactly one needs to be ``None``, all others need numeric values + + Parameters + ---------- + effect_size : float + standardize effect size, difference between the two means divided + by the standard deviation. + nobs1 : int or float + number of observations of sample 1. The number of observations of + sample two is ratio times the size of sample 1, + i.e. ``nobs2 = nobs1 * ratio`` + alpha : float in interval (0,1) + significance level, e.g. 0.05, is the probability of a type I + error, that is wrong rejections if the Null Hypothesis is true. + power : float in interval (0,1) + power of the test, e.g. 0.8, is one minus the probability of a + type II error. Power is the probability that the test correctly + rejects the Null Hypothesis if the Alternative Hypothesis is true. + ratio : float + ratio of the number of observations in sample 2 relative to + sample 1. see description of nobs1 + The default for ratio is 1; to solve for ration given the other + arguments it has to be explicitely set to None. + alternative : string, 'two-sided' (default) or 'one-sided' + extra argument to choose whether the power is calculated for a + two-sided (default) or one sided test. + 'one-sided' assumes we are in the relevant tail. + + Returns + ------- + value : float + The value of the parameter that was set to None in the call. The + value solves the power equation given the remainding parameters. + + + Notes + ----- + The function uses scipy.optimize for finding the value that satisfies + the power equation. It first uses ``brentq`` with a prior search for + bounds. If this fails to find a root, ``fsolve`` is used. If ``fsolve`` + also fails, then, for ``alpha``, ``power`` and ``effect_size``, + ``brentq`` with fixed bounds is used. However, there can still be cases + where this fails. + + ''' + return super(_GofChisquareIndPower, self).solve_power(effect_size=effect_size, + nobs1=nobs1, + alpha=alpha, + power=power, + ratio=ratio, + alternative=alternative) + +#shortcut functions +tt_solve_power = TTestPower().solve_power +tt_ind_solve_power = TTestIndPower().solve_power +zt_ind_solve_power = NormalIndPower().solve_power diff --git a/statsmodels/stats/proportion.py b/statsmodels/stats/proportion.py new file mode 100644 index 0000000..c726920 --- /dev/null +++ b/statsmodels/stats/proportion.py @@ -0,0 +1,1004 @@ +# -*- coding: utf-8 -*- +"""Tests and Confidence Intervals for Binomial Proportions + +Created on Fri Mar 01 00:23:07 2013 + +Author: Josef Perktold +License: BSD-3 +""" +from statsmodels.compat.python import lzip, range +import numpy as np +from scipy import stats, optimize +from sys import float_info + +from statsmodels.stats.base import AllPairsResults +from statsmodels.tools.sm_exceptions import HypothesisTestWarning + + +def proportion_confint(count, nobs, alpha=0.05, method='normal'): + '''confidence interval for a binomial proportion + + Parameters + ---------- + count : int or array + number of successes + nobs : int + total number of trials + alpha : float in (0, 1) + significance level, default 0.05 + method : string in ['normal'] + method to use for confidence interval, + currently available methods : + + - `normal` : asymptotic normal approximation + - `agresti_coull` : Agresti-Coull interval + - `beta` : Clopper-Pearson interval based on Beta distribution + - `wilson` : Wilson Score interval + - `jeffrey` : Jeffrey's Bayesian Interval + - `binom_test` : experimental, inversion of binom_test + + Returns + ------- + ci_low, ci_upp : float + lower and upper confidence level with coverage (approximately) 1-alpha. + Note: Beta has coverage + coverage is only 1-alpha on average for some other methods.) + + Notes + ----- + Beta, the Clopper-Pearson interval has coverage at least 1-alpha, but is + in general conservative. Most of the other methods have average coverage + equal to 1-alpha, but will have smaller coverage in some cases. + + Method "binom_test" directly inverts the binomial test in scipy.stats. + which has discrete steps. + + TODO: binom_test intervals raise an exception in small samples if one + interval bound is close to zero or one. + + References + ---------- + http://en.wikipedia.org/wiki/Binomial_proportion_confidence_interval + + Brown, Lawrence D.; Cai, T. Tony; DasGupta, Anirban (2001). "Interval + Estimation for a Binomial Proportion", + Statistical Science 16 (2): 101–133. doi:10.1214/ss/1009213286. + TODO: Is this the correct one ? + + ''' + + q_ = count * 1. / nobs + alpha_2 = 0.5 * alpha + + if method == 'normal': + std_ = np.sqrt(q_ * (1 - q_) / nobs) + dist = stats.norm.isf(alpha / 2.) * std_ + ci_low = q_ - dist + ci_upp = q_ + dist + + elif method == 'binom_test': + # inverting the binomial test + def func(qi): + return stats.binom_test(q_ * nobs, nobs, p=qi) - alpha + if count == 0: + ci_low = 0 + else: + ci_low = optimize.brentq(func, float_info.min, q_) + if count == nobs: + ci_upp = 1 + else: + ci_upp = optimize.brentq(func, q_, 1. - float_info.epsilon) + + elif method == 'beta': + ci_low = stats.beta.ppf(alpha_2 , count, nobs - count + 1) + ci_upp = stats.beta.isf(alpha_2, count + 1, nobs - count) + + elif method == 'agresti_coull': + crit = stats.norm.isf(alpha / 2.) + nobs_c = nobs + crit**2 + q_c = (count + crit**2 / 2.) / nobs_c + std_c = np.sqrt(q_c * (1. - q_c) / nobs_c) + dist = crit * std_c + ci_low = q_c - dist + ci_upp = q_c + dist + + elif method == 'wilson': + crit = stats.norm.isf(alpha / 2.) + crit2 = crit**2 + denom = 1 + crit2 / nobs + center = (q_ + crit2 / (2 * nobs)) / denom + dist = crit * np.sqrt(q_ * (1. - q_) / nobs + crit2 / (4. * nobs**2)) + dist /= denom + ci_low = center - dist + ci_upp = center + dist + + elif method == 'jeffrey': + ci_low, ci_upp = stats.beta.interval(1 - alpha, count + 0.5, + nobs - count + 0.5) + + else: + raise NotImplementedError('method "%s" is not available' % method) + return ci_low, ci_upp + +def multinomial_proportions_confint(counts, alpha=0.05, method='goodman'): + '''Confidence intervals for multinomial proportions. + + Parameters + ---------- + counts : array_like of int, 1-D + Number of observations in each category. + alpha : float in (0, 1), optional + Significance level, defaults to 0.05. + method : {'goodman', 'sison-glaz'}, optional + Method to use to compute the confidence intervals; available methods + are: + + - `goodman`: based on a chi-squared approximation, valid if all + values in `counts` are greater or equal to 5 [2]_ + - `sison-glaz`: less conservative than `goodman`, but only valid if + `counts` has 7 or more categories (``len(counts) >= 7``) [3]_ + + Returns + ------- + confint : ndarray, 2-D + Array of [lower, upper] confidence levels for each category, such that + overall coverage is (approximately) `1-alpha`. + + Raises + ------ + ValueError + If `alpha` is not in `(0, 1)` (bounds excluded), or if the values in + `counts` are not all positive or null. + NotImplementedError + If `method` is not kown. + Exception + When ``method == 'sison-glaz'``, if for some reason `c` cannot be + computed; this signals a bug and should be reported. + + Notes + ----- + The `goodman` method [2]_ is based on approximating a statistic based on + the multinomial as a chi-squared random variable. The usual recommendation + is that this is valid if all the values in `counts` are greater than or + equal to 5. There is no condition on the number of categories for this + method. + + The `sison-glaz` method [3]_ approximates the multinomial probabilities, + and evaluates that with a maximum-likelihood estimator. The first + approximation is an Edgeworth expansion that converges when the number of + categories goes to infinity, and the maximum-likelihood estimator converges + when the number of observations (``sum(counts)``) goes to infinity. In + their paper, Sison & Glaz demo their method with at least 7 categories, so + ``len(counts) >= 7`` with all values in `counts` at or above 5 can be used + as a rule of thumb for the validity of this method. This method is less + conservative than the `goodman` method (i.e. it will yield confidence + intervals closer to the desired significance level), but produces + confidence intervals of uniform width over all categories (except when the + intervals reach 0 or 1, in which case they are truncated), which makes it + most useful when proportions are of similar magnitude. + + Aside from the original sources ([1]_, [2]_, and [3]_), the implementation + uses the formulas (though not the code) presented in [4]_ and [5]_. + + References + ---------- + .. [1] Levin, Bruce, "A representation for multinomial cumulative + distribution functions," The Annals of Statistics, Vol. 9, No. 5, + 1981, pp. 1123-1126. + + .. [2] Goodman, L.A., "On simultaneous confidence intervals for multinomial + proportions," Technometrics, Vol. 7, No. 2, 1965, pp. 247-254. + + .. [3] Sison, Cristina P., and Joseph Glaz, "Simultaneous Confidence + Intervals and Sample Size Determination for Multinomial + Proportions," Journal of the American Statistical Association, + Vol. 90, No. 429, 1995, pp. 366-369. + + .. [4] May, Warren L., and William D. Johnson, "A SAS® macro for + constructing simultaneous confidence intervals for multinomial + proportions," Computer methods and programs in Biomedicine, Vol. 53, + No. 3, 1997, pp. 153-162. + + .. [5] May, Warren L., and William D. Johnson, "Constructing two-sided + simultaneous confidence intervals for multinomial proportions for + small counts in a large number of cells," Journal of Statistical + Software, Vol. 5, No. 6, 2000, pp. 1-24. + ''' + if alpha <= 0 or alpha >= 1: + raise ValueError('alpha must be in (0, 1), bounds excluded') + counts = np.array(counts, dtype=np.float) + if (counts < 0).any(): + raise ValueError('counts must be >= 0') + + n = counts.sum() + k = len(counts) + proportions = counts / n + if method == 'goodman': + chi2 = stats.chi2.ppf(1 - alpha / k, 1) + delta = chi2 ** 2 + (4 * n * proportions * chi2 * (1 - proportions)) + region = ((2 * n * proportions + chi2 + + np.array([- np.sqrt(delta), np.sqrt(delta)])) / + (2 * (chi2 + n))).T + elif method[:5] == 'sison': # We accept any name starting with 'sison' + # Define a few functions we'll use a lot. + def poisson_interval(interval, p): + """Compute P(b <= Z <= a) where Z ~ Poisson(p) and + `interval = (b, a)`.""" + b, a = interval + prob = stats.poisson.cdf(a, p) - stats.poisson.cdf(b - 1, p) + if p == 0 and np.isnan(prob): + # hack for older scipy <=0.16.1 + return int(b - 1 < 0) + return prob + + def truncated_poisson_factorial_moment(interval, r, p): + """Compute mu_r, the r-th factorial moment of a poisson random + variable of parameter `p` truncated to `interval = (b, a)`.""" + b, a = interval + return p ** r * (1 - ((poisson_interval((a - r + 1, a), p) - + poisson_interval((b - r, b - 1), p)) / + poisson_interval((b, a), p))) + + def edgeworth(intervals): + """Compute the Edgeworth expansion term of Sison & Glaz's formula + (1) (approximated probability for multinomial proportions in a + given box).""" + # Compute means and central moments of the truncated poisson + # variables. + mu_r1, mu_r2, mu_r3, mu_r4 = [ + np.array([truncated_poisson_factorial_moment(interval, r, p) + for (interval, p) in zip(intervals, counts)]) + for r in range(1, 5) + ] + mu = mu_r1 + mu2 = mu_r2 + mu - mu ** 2 + mu3 = mu_r3 + mu_r2 * (3 - 3 * mu) + mu - 3 * mu ** 2 + 2 * mu ** 3 + mu4 = (mu_r4 + mu_r3 * (6 - 4 * mu) + + mu_r2 * (7 - 12 * mu + 6 * mu ** 2) + + mu - 4 * mu ** 2 + 6 * mu ** 3 - 3 * mu ** 4) + + # Compute expansion factors, gamma_1 and gamma_2. + g1 = mu3.sum() / mu2.sum() ** 1.5 + g2 = (mu4.sum() - 3 * (mu2 ** 2).sum()) / mu2.sum() ** 2 + + # Compute the expansion itself. + x = (n - mu.sum()) / np.sqrt(mu2.sum()) + phi = np.exp(- x ** 2 / 2) / np.sqrt(2 * np.pi) + H3 = x ** 3 - 3 * x + H4 = x ** 4 - 6 * x ** 2 + 3 + H6 = x ** 6 - 15 * x ** 4 + 45 * x ** 2 - 15 + f = phi * (1 + g1 * H3 / 6 + g2 * H4 / 24 + g1 ** 2 * H6 / 72) + return f / np.sqrt(mu2.sum()) + + + def approximated_multinomial_interval(intervals): + """Compute approximated probability for Multinomial(n, proportions) + to be in `intervals` (Sison & Glaz's formula (1)).""" + return np.exp( + np.sum(np.log([poisson_interval(interval, p) + for (interval, p) in zip(intervals, counts)])) + + np.log(edgeworth(intervals)) - + np.log(stats.poisson._pmf(n, n)) + ) + + def nu(c): + """Compute interval coverage for a given `c` (Sison & Glaz's + formula (7)).""" + return approximated_multinomial_interval( + [(np.maximum(count - c, 0), np.minimum(count + c, n)) + for count in counts]) + + # Find the value of `c` that will give us the confidence intervals + # (solving nu(c) <= 1 - alpha < nu(c + 1). + c = 1.0 + nuc = nu(c) + nucp1 = nu(c + 1) + while not (nuc <= (1 - alpha) < nucp1): + if c > n: + raise Exception("Couldn't find a value for `c` that " + "solves nu(c) <= 1 - alpha < nu(c + 1)") + c += 1 + nuc = nucp1 + nucp1 = nu(c + 1) + + # Compute gamma and the corresponding confidence intervals. + g = (1 - alpha - nuc) / (nucp1 - nuc) + ci_lower = np.maximum(proportions - c / n, 0) + ci_upper = np.minimum(proportions + (c + 2 * g) / n, 1) + region = np.array([ci_lower, ci_upper]).T + else: + raise NotImplementedError('method "%s" is not available' % method) + return region + + +def samplesize_confint_proportion(proportion, half_length, alpha=0.05, + method='normal'): + '''find sample size to get desired confidence interval length + + Parameters + ---------- + proportion : float in (0, 1) + proportion or quantile + half_length : float in (0, 1) + desired half length of the confidence interval + alpha : float in (0, 1) + significance level, default 0.05, + coverage of the two-sided interval is (approximately) ``1 - alpha`` + method : string in ['normal'] + method to use for confidence interval, + currently only normal approximation + + Returns + ------- + n : float + sample size to get the desired half length of the confidence interval + + Notes + ----- + this is mainly to store the formula. + possible application: number of replications in bootstrap samples + + ''' + q_ = proportion + if method == 'normal': + n = q_ * (1 - q_) / (half_length / stats.norm.isf(alpha / 2.))**2 + else: + raise NotImplementedError('only "normal" is available') + + return n + +def proportion_effectsize(prop1, prop2, method='normal'): + '''effect size for a test comparing two proportions + + for use in power function + + Parameters + ---------- + prop1, prop2: float or array_like + + Returns + ------- + es : float or ndarray + effect size for (transformed) prop1 - prop2 + + Notes + ----- + only method='normal' is implemented to match pwr.p2.test + see http://www.statmethods.net/stats/power.html + + Effect size for `normal` is defined as :: + + 2 * (arcsin(sqrt(prop1)) - arcsin(sqrt(prop2))) + + I think other conversions to normality can be used, but I need to check. + + Examples + -------- + >>> import statsmodels.api as sm + >>> sm.stats.proportion_effectsize(0.5, 0.4) + 0.20135792079033088 + >>> sm.stats.proportion_effectsize([0.3, 0.4, 0.5], 0.4) + array([-0.21015893, 0. , 0.20135792]) + + ''' + if method != 'normal': + raise ValueError('only "normal" is implemented') + + es = 2 * (np.arcsin(np.sqrt(prop1)) - np.arcsin(np.sqrt(prop2))) + return es + +def std_prop(prop, nobs): + '''standard error for the estimate of a proportion + + This is just ``np.sqrt(p * (1. - p) / nobs)`` + + Parameters + ---------- + prop : array_like + proportion + nobs : int, array_like + number of observations + + Returns + ------- + std : array_like + standard error for a proportion of nobs independent observations + ''' + return np.sqrt(prop * (1. - prop) / nobs) + +def _power_ztost(mean_low, var_low, mean_upp, var_upp, mean_alt, var_alt, + alpha=0.05, discrete=True, dist='norm', nobs=None, + continuity=0, critval_continuity=0): + '''Generic statistical power function for normal based equivalence test + + This includes options to adjust the normal approximation and can use + the binomial to evaluate the probability of the rejection region + + see power_ztost_prob for a description of the options + ''' + # TODO: refactor structure, separate norm and binom better + if not isinstance(continuity, tuple): + continuity = (continuity, continuity) + crit = stats.norm.isf(alpha) + k_low = mean_low + np.sqrt(var_low) * crit + k_upp = mean_upp - np.sqrt(var_upp) * crit + if discrete or dist == 'binom': + k_low = np.ceil(k_low * nobs + 0.5 * critval_continuity) + k_upp = np.trunc(k_upp * nobs - 0.5 * critval_continuity) + if dist == 'norm': + #need proportion + k_low = (k_low) * 1. / nobs #-1 to match PASS + k_upp = k_upp * 1. / nobs +# else: +# if dist == 'binom': +# #need counts +# k_low *= nobs +# k_upp *= nobs + #print mean_low, np.sqrt(var_low), crit, var_low + #print mean_upp, np.sqrt(var_upp), crit, var_upp + if np.any(k_low > k_upp): #vectorize + import warnings + warnings.warn("no overlap, power is zero", HypothesisTestWarning) + std_alt = np.sqrt(var_alt) + z_low = (k_low - mean_alt - continuity[0] * 0.5 / nobs) / std_alt + z_upp = (k_upp - mean_alt + continuity[1] * 0.5 / nobs) / std_alt + if dist == 'norm': + power = stats.norm.cdf(z_upp) - stats.norm.cdf(z_low) + elif dist == 'binom': + power = (stats.binom.cdf(k_upp, nobs, mean_alt) - + stats.binom.cdf(k_low-1, nobs, mean_alt)) + return power, (k_low, k_upp, z_low, z_upp) + + +def binom_tost(count, nobs, low, upp): + '''exact TOST test for one proportion using binomial distribution + + Parameters + ---------- + count : integer or array_like + the number of successes in nobs trials. + nobs : integer + the number of trials or observations. + low, upp : floats + lower and upper limit of equivalence region + + Returns + ------- + pvalue : float + p-value of equivalence test + pval_low, pval_upp : floats + p-values of lower and upper one-sided tests + + ''' + # binom_test_stat only returns pval + tt1 = binom_test(count, nobs, alternative='larger', prop=low) + tt2 = binom_test(count, nobs, alternative='smaller', prop=upp) + return np.maximum(tt1, tt2), tt1, tt2, + + +def binom_tost_reject_interval(low, upp, nobs, alpha=0.05): + '''rejection region for binomial TOST + + The interval includes the end points, + `reject` if and only if `r_low <= x <= r_upp`. + + The interval might be empty with `r_upp < r_low`. + + Parameters + ---------- + low, upp : floats + lower and upper limit of equivalence region + nobs : integer + the number of trials or observations. + + Returns + ------- + x_low, x_upp : float + lower and upper bound of rejection region + + ''' + x_low = stats.binom.isf(alpha, nobs, low) + 1 + x_upp = stats.binom.ppf(alpha, nobs, upp) - 1 + return x_low, x_upp + +def binom_test_reject_interval(value, nobs, alpha=0.05, alternative='two-sided'): + '''rejection region for binomial test for one sample proportion + + The interval includes the end points of the rejection region. + + Parameters + ---------- + value : float + proportion under the Null hypothesis + nobs : integer + the number of trials or observations. + + + Returns + ------- + x_low, x_upp : float + lower and upper bound of rejection region + + + ''' + if alternative in ['2s', 'two-sided']: + alternative = '2s' # normalize alternative name + alpha = alpha / 2 + + if alternative in ['2s', 'smaller']: + x_low = stats.binom.ppf(alpha, nobs, value) - 1 + else: + x_low = 0 + if alternative in ['2s', 'larger']: + x_upp = stats.binom.isf(alpha, nobs, value) + 1 + else : + x_upp = nobs + + return x_low, x_upp + +def binom_test(count, nobs, prop=0.5, alternative='two-sided'): + '''Perform a test that the probability of success is p. + + This is an exact, two-sided test of the null hypothesis + that the probability of success in a Bernoulli experiment + is `p`. + + Parameters + ---------- + count : integer or array_like + the number of successes in nobs trials. + nobs : integer + the number of trials or observations. + prop : float, optional + The probability of success under the null hypothesis, + `0 <= prop <= 1`. The default value is `prop = 0.5` + alternative : string in ['two-sided', 'smaller', 'larger'] + alternative hypothesis, which can be two-sided or either one of the + one-sided tests. + + Returns + ------- + p-value : float + The p-value of the hypothesis test + + Notes + ----- + This uses scipy.stats.binom_test for the two-sided alternative. + + ''' + + if np.any(prop > 1.0) or np.any(prop < 0.0): + raise ValueError("p must be in range [0,1]") + if alternative in ['2s', 'two-sided']: + pval = stats.binom_test(count, n=nobs, p=prop) + elif alternative in ['l', 'larger']: + pval = stats.binom.sf(count-1, nobs, prop) + elif alternative in ['s', 'smaller']: + pval = stats.binom.cdf(count, nobs, prop) + else: + raise ValueError('alternative not recognized\n' + 'should be two-sided, larger or smaller') + return pval + + +def power_binom_tost(low, upp, nobs, p_alt=None, alpha=0.05): + if p_alt is None: + p_alt = 0.5 * (low + upp) + x_low, x_upp = binom_tost_reject_interval(low, upp, nobs, alpha=alpha) + power = (stats.binom.cdf(x_upp, nobs, p_alt) - + stats.binom.cdf(x_low-1, nobs, p_alt)) + return power + +def power_ztost_prop(low, upp, nobs, p_alt, alpha=0.05, dist='norm', + variance_prop=None, discrete=True, continuity=0, + critval_continuity=0): + '''Power of proportions equivalence test based on normal distribution + + Parameters + ---------- + low, upp : floats + lower and upper limit of equivalence region + nobs : int + number of observations + p_alt : float in (0,1) + proportion under the alternative + alpha : float in (0,1) + significance level of the test + dist : string in ['norm', 'binom'] + This defines the distribution to evalute the power of the test. The + critical values of the TOST test are always based on the normal + approximation, but the distribution for the power can be either the + normal (default) or the binomial (exact) distribution. + variance_prop : None or float in (0,1) + If this is None, then the variances for the two one sided tests are + based on the proportions equal to the equivalence limits. + If variance_prop is given, then it is used to calculate the variance + for the TOST statistics. If this is based on an sample, then the + estimated proportion can be used. + discrete : bool + If true, then the critical values of the rejection region are converted + to integers. If dist is "binom", this is automatically assumed. + If discrete is false, then the TOST critical values are used as + floating point numbers, and the power is calculated based on the + rejection region that is not discretized. + continuity : bool or float + adjust the rejection region for the normal power probability. This has + and effect only if ``dist='norm'`` + critval_continuity : bool or float + If this is non-zero, then the critical values of the tost rejection + region are adjusted before converting to integers. This affects both + distributions, ``dist='norm'`` and ``dist='binom'``. + + Returns + ------- + power : float + statistical power of the equivalence test. + (k_low, k_upp, z_low, z_upp) : tuple of floats + critical limits in intermediate steps + temporary return, will be changed + + Notes + ----- + In small samples the power for the ``discrete`` version, has a sawtooth + pattern as a function of the number of observations. As a consequence, + small changes in the number of observations or in the normal approximation + can have a large effect on the power. + + ``continuity`` and ``critval_continuity`` are added to match some results + of PASS, and are mainly to investigate the sensitivity of the ztost power + to small changes in the rejection region. From my interpretation of the + equations in the SAS manual, both are zero in SAS. + + works vectorized + + **verification:** + + The ``dist='binom'`` results match PASS, + The ``dist='norm'`` results look reasonable, but no benchmark is available. + + References + ---------- + SAS Manual: Chapter 68: The Power Procedure, Computational Resources + PASS Chapter 110: Equivalence Tests for One Proportion. + + ''' + mean_low = low + var_low = std_prop(low, nobs)**2 + mean_upp = upp + var_upp = std_prop(upp, nobs)**2 + mean_alt = p_alt + var_alt = std_prop(p_alt, nobs)**2 + if variance_prop is not None: + var_low = var_upp = std_prop(variance_prop, nobs)**2 + power = _power_ztost(mean_low, var_low, mean_upp, var_upp, mean_alt, var_alt, + alpha=alpha, discrete=discrete, dist=dist, nobs=nobs, + continuity=continuity, critval_continuity=critval_continuity) + return np.maximum(power[0], 0), power[1:] + + +def _table_proportion(count, nobs): + '''create a k by 2 contingency table for proportion + + helper function for proportions_chisquare + + Parameters + ---------- + count : integer or array_like + the number of successes in nobs trials. + nobs : integer + the number of trials or observations. + + Returns + ------- + table : ndarray + (k, 2) contingency table + + Notes + ----- + recent scipy has more elaborate contingency table functions + + ''' + table = np.column_stack((count, nobs - count)) + expected = table.sum(0) * table.sum(1)[:,None] * 1. / table.sum() + n_rows = table.shape[0] + return table, expected, n_rows + + +def proportions_ztest(count, nobs, value=None, alternative='two-sided', + prop_var=False): + """ + Test for proportions based on normal (z) test + + Parameters + ---------- + count : integer or array_like + the number of successes in nobs trials. If this is array_like, then + the assumption is that this represents the number of successes for + each independent sample + nobs : integer or array-like + the number of trials or observations, with the same length as + count. + value : float, array_like or None, optional + This is the value of the null hypothesis equal to the proportion in the + case of a one sample test. In the case of a two-sample test, the + null hypothesis is that prop[0] - prop[1] = value, where prop is the + proportion in the two samples. If not provided value = 0 and the null + is prop[0] = prop[1] + alternative : string in ['two-sided', 'smaller', 'larger'] + The alternative hypothesis can be either two-sided or one of the one- + sided tests, smaller means that the alternative hypothesis is + ``prop < value` and larger means ``prop > value``, or the corresponding + inequality for the two sample test. + prop_var : False or float in (0, 1) + If prop_var is false, then the variance of the proportion estimate is + calculated based on the sample proportion. Alternatively, a proportion + can be specified to calculate this variance. Common use case is to + use the proportion under the Null hypothesis to specify the variance + of the proportion estimate. + + Returns + ------- + zstat : float + test statistic for the z-test + p-value : float + p-value for the z-test + + Examples + -------- + >>> count = 5 + >>> nobs = 83 + >>> value = .05 + >>> stat, pval = proportions_ztest(count, nobs, value) + >>> print('{0:0.3f}'.format(pval)) + 0.695 + + >>> import numpy as np + >>> from statsmodels.stats.proportion import proportions_ztest + >>> count = np.array([5, 12]) + >>> nobs = np.array([83, 99]) + >>> stat, pval = proportions_ztest(counts, nobs) + >>> print('{0:0.3f}'.format(pval)) + 0.159 + + Notes + ----- + This uses a simple normal test for proportions. It should be the same as + running the mean z-test on the data encoded 1 for event and 0 for no event + so that the sum corresponds to the count. + + In the one and two sample cases with two-sided alternative, this test + produces the same p-value as ``proportions_chisquare``, since the + chisquare is the distribution of the square of a standard normal + distribution. + """ + # TODO: verify that this really holds + # TODO: add continuity correction or other improvements for small samples + # TODO: change options similar to propotion_ztost ? + + count = np.asarray(count) + nobs = np.asarray(nobs) + + if nobs.size == 1: + nobs = nobs * np.ones_like(count) + + prop = count * 1. / nobs + k_sample = np.size(prop) + if value is None: + if k_sample == 1: + raise ValueError('value must be provided for a 1-sample test') + value = 0 + if k_sample == 1: + diff = prop - value + elif k_sample == 2: + diff = prop[0] - prop[1] - value + else: + msg = 'more than two samples are not implemented yet' + raise NotImplementedError(msg) + + p_pooled = np.sum(count) * 1. / np.sum(nobs) + + nobs_fact = np.sum(1. / nobs) + if prop_var: + p_pooled = prop_var + var_ = p_pooled * (1 - p_pooled) * nobs_fact + std_diff = np.sqrt(var_) + from statsmodels.stats.weightstats import _zstat_generic2 + return _zstat_generic2(diff, std_diff, alternative) + +def proportions_ztost(count, nobs, low, upp, prop_var='sample'): + '''Equivalence test based on normal distribution + + Parameters + ---------- + count : integer or array_like + the number of successes in nobs trials. If this is array_like, then + the assumption is that this represents the number of successes for + each independent sample + nobs : integer + the number of trials or observations, with the same length as + count. + low, upp : float + equivalence interval low < prop1 - prop2 < upp + prop_var : string or float in (0, 1) + prop_var determines which proportion is used for the calculation + of the standard deviation of the proportion estimate + The available options for string are 'sample' (default), 'null' and + 'limits'. If prop_var is a float, then it is used directly. + + Returns + ------- + pvalue : float + pvalue of the non-equivalence test + t1, pv1 : tuple of floats + test statistic and pvalue for lower threshold test + t2, pv2 : tuple of floats + test statistic and pvalue for upper threshold test + + Notes + ----- + checked only for 1 sample case + + ''' + if prop_var == 'limits': + prop_var_low = low + prop_var_upp = upp + elif prop_var == 'sample': + prop_var_low = prop_var_upp = False #ztest uses sample + elif prop_var == 'null': + prop_var_low = prop_var_upp = 0.5 * (low + upp) + elif np.isreal(prop_var): + prop_var_low = prop_var_upp = prop_var + + tt1 = proportions_ztest(count, nobs, alternative='larger', + prop_var=prop_var_low, value=low) + tt2 = proportions_ztest(count, nobs, alternative='smaller', + prop_var=prop_var_upp, value=upp) + return np.maximum(tt1[1], tt2[1]), tt1, tt2, + +def proportions_chisquare(count, nobs, value=None): + '''test for proportions based on chisquare test + + Parameters + ---------- + count : integer or array_like + the number of successes in nobs trials. If this is array_like, then + the assumption is that this represents the number of successes for + each independent sample + nobs : integer + the number of trials or observations, with the same length as + count. + value : None or float or array_like + + Returns + ------- + chi2stat : float + test statistic for the chisquare test + p-value : float + p-value for the chisquare test + (table, expected) + table is a (k, 2) contingency table, ``expected`` is the corresponding + table of counts that are expected under independence with given + margins + + + Notes + ----- + Recent version of scipy.stats have a chisquare test for independence in + contingency tables. + + This function provides a similar interface to chisquare tests as + ``prop.test`` in R, however without the option for Yates continuity + correction. + + count can be the count for the number of events for a single proportion, + or the counts for several independent proportions. If value is given, then + all proportions are jointly tested against this value. If value is not + given and count and nobs are not scalar, then the null hypothesis is + that all samples have the same proportion. + + ''' + nobs = np.atleast_1d(nobs) + table, expected, n_rows = _table_proportion(count, nobs) + if value is not None: + expected = np.column_stack((nobs * value, nobs * (1 - value))) + ddof = n_rows - 1 + else: + ddof = n_rows + + #print table, expected + chi2stat, pval = stats.chisquare(table.ravel(), expected.ravel(), + ddof=ddof) + return chi2stat, pval, (table, expected) + + + + +def proportions_chisquare_allpairs(count, nobs, multitest_method='hs'): + '''chisquare test of proportions for all pairs of k samples + + Performs a chisquare test for proportions for all pairwise comparisons. + The alternative is two-sided + + Parameters + ---------- + count : integer or array_like + the number of successes in nobs trials. + nobs : integer + the number of trials or observations. + prop : float, optional + The probability of success under the null hypothesis, + `0 <= prop <= 1`. The default value is `prop = 0.5` + multitest_method : string + This chooses the method for the multiple testing p-value correction, + that is used as default in the results. + It can be any method that is available in ``multipletesting``. + The default is Holm-Sidak 'hs'. + + Returns + ------- + result : AllPairsResults instance + The returned results instance has several statistics, such as p-values, + attached, and additional methods for using a non-default + ``multitest_method``. + + Notes + ----- + Yates continuity correction is not available. + ''' + #all_pairs = lmap(list, lzip(*np.triu_indices(4, 1))) + all_pairs = lzip(*np.triu_indices(len(count), 1)) + pvals = [proportions_chisquare(count[list(pair)], nobs[list(pair)])[1] + for pair in all_pairs] + return AllPairsResults(pvals, all_pairs, multitest_method=multitest_method) + +def proportions_chisquare_pairscontrol(count, nobs, value=None, + multitest_method='hs', alternative='two-sided'): + '''chisquare test of proportions for pairs of k samples compared to control + + Performs a chisquare test for proportions for pairwise comparisons with a + control (Dunnet's test). The control is assumed to be the first element + of ``count`` and ``nobs``. The alternative is two-sided, larger or + smaller. + + Parameters + ---------- + count : integer or array_like + the number of successes in nobs trials. + nobs : integer + the number of trials or observations. + prop : float, optional + The probability of success under the null hypothesis, + `0 <= prop <= 1`. The default value is `prop = 0.5` + multitest_method : string + This chooses the method for the multiple testing p-value correction, + that is used as default in the results. + It can be any method that is available in ``multipletesting``. + The default is Holm-Sidak 'hs'. + alternative : string in ['two-sided', 'smaller', 'larger'] + alternative hypothesis, which can be two-sided or either one of the + one-sided tests. + + Returns + ------- + result : AllPairsResults instance + The returned results instance has several statistics, such as p-values, + attached, and additional methods for using a non-default + ``multitest_method``. + + + Notes + ----- + Yates continuity correction is not available. + + ``value`` and ``alternative`` options are not yet implemented. + + ''' + if (value is not None) or (not alternative in ['two-sided', '2s']): + raise NotImplementedError + #all_pairs = lmap(list, lzip(*np.triu_indices(4, 1))) + all_pairs = [(0, k) for k in range(1, len(count))] + pvals = [proportions_chisquare(count[list(pair)], nobs[list(pair)], + #alternative=alternative)[1] + )[1] + for pair in all_pairs] + return AllPairsResults(pvals, all_pairs, multitest_method=multitest_method) diff --git a/statsmodels/stats/sandwich_covariance.py b/statsmodels/stats/sandwich_covariance.py new file mode 100644 index 0000000..14ef1a1 --- /dev/null +++ b/statsmodels/stats/sandwich_covariance.py @@ -0,0 +1,899 @@ +# -*- coding: utf-8 -*- +"""Sandwich covariance estimators + + +Created on Sun Nov 27 14:10:57 2011 + +Author: Josef Perktold +Author: Skipper Seabold for HCxxx in linear_model.RegressionResults +License: BSD-3 + +Notes +----- + +for calculating it, we have two versions + +version 1: use pinv +pinv(x) scale pinv(x) used currently in linear_model, with scale is +1d (or diagonal matrix) +(x'x)^(-1) x' scale x (x'x)^(-1), scale in general is (nobs, nobs) so +pretty large +general formulas for scale in cluster case are in +http://pubs.amstat.org/doi/abstract/10.1198/jbes.2010.07136 which also +has the second version + +version 2: +(x'x)^(-1) S (x'x)^(-1) with S = x' scale x, S is (kvar,kvars), +(x'x)^(-1) is available as normalized_covparams. + + + +S = sum (x*u) dot (x*u)' = sum x*u*u'*x' where sum here can aggregate +over observations or groups. u is regression residual. + +x is (nobs, k_var) +u is (nobs, 1) +x*u is (nobs, k_var) + + +For cluster robust standard errors, we first sum (x*w) over other groups +(including time) and then take the dot product (sum of outer products) + +S = sum_g(x*u)' dot sum_g(x*u) +For HAC by clusters, we first sum over groups for each time period, and then +use HAC on the group sums of (x*w). +If we have several groups, we have to sum first over all relevant groups, and +then take the outer product sum. This can be done by summing using indicator +functions or matrices or with explicit loops. Alternatively we calculate +separate covariance matrices for each group, sum them and subtract the +duplicate counted intersection. + +Not checked in details yet: degrees of freedom or small sample correction +factors, see (two) references (?) + + +This is the general case for MLE and GMM also + +in MLE hessian H, outerproduct of jacobian S, cov_hjjh = HJJH, +which reduces to the above in the linear case, but can be used +generally, e.g. in discrete, and is misnomed in GenericLikelihoodModel + +in GMM it's similar but I would have to look up the details, (it comes +out in sandwich form by default, it's in the sandbox), standard Newey +West or similar are on the covariance matrix of the moment conditions + +quasi-MLE: MLE with mis-specified model where parameter estimates are +fine (consistent ?) but cov_params needs to be adjusted similar or +same as in sandwiches. (I didn't go through any details yet.) + +TODO +---- +* small sample correction factors, Done for cluster, not yet for HAC +* automatic lag-length selection for Newey-West HAC, + -> added: nlag = floor[4(T/100)^(2/9)] Reference: xtscc paper, Newey-West + note this will not be optimal in the panel context, see Peterson +* HAC should maybe return the chosen nlags +* get consistent notation, varies by paper, S, scale, sigma? +* replace diag(hat_matrix) calculations in cov_hc2, cov_hc3 + + +References +---------- +John C. Driscoll and Aart C. Kraay, “Consistent Covariance Matrix Estimation +with Spatially Dependent Panel Data,” Review of Economics and Statistics 80, +no. 4 (1998): 549-560. + +Daniel Hoechle, "Robust Standard Errors for Panel Regressions with +Cross-Sectional Dependence", The Stata Journal + +Mitchell A. Petersen, “Estimating Standard Errors in Finance Panel Data +Sets: Comparing Approaches,” Review of Financial Studies 22, no. 1 +(January 1, 2009): 435 -480. + +A. Colin Cameron, Jonah B. Gelbach, and Douglas L. Miller, “Robust Inference +With Multiway Clustering,” Journal of Business and Economic Statistics 29 +(April 2011): 238-249. + + +not used yet: +A.C. Cameron, J.B. Gelbach, and D.L. Miller, “Bootstrap-based improvements +for inference with clustered errors,” The Review of Economics and +Statistics 90, no. 3 (2008): 414–427. + +""" +from statsmodels.compat.python import range +import pandas as pd +import numpy as np + +from statsmodels.tools.grouputils import Group +from statsmodels.stats.moment_helpers import se_cov + +__all__ = ['cov_cluster', 'cov_cluster_2groups', 'cov_hac', 'cov_nw_panel', + 'cov_white_simple', + 'cov_hc0', 'cov_hc1', 'cov_hc2', 'cov_hc3', + 'se_cov', 'weights_bartlett', 'weights_uniform'] + + + + +#----------- from linear_model.RegressionResults +''' + HC0_se + White's (1980) heteroskedasticity robust standard errors. + Defined as sqrt(diag(X.T X)^(-1)X.T diag(e_i^(2)) X(X.T X)^(-1) + where e_i = resid[i] + HC0_se is a property. It is not evaluated until it is called. + When it is called the RegressionResults instance will then have + another attribute cov_HC0, which is the full heteroskedasticity + consistent covariance matrix and also `het_scale`, which is in + this case just resid**2. HCCM matrices are only appropriate for OLS. + HC1_se + MacKinnon and White's (1985) alternative heteroskedasticity robust + standard errors. + Defined as sqrt(diag(n/(n-p)*HC_0) + HC1_se is a property. It is not evaluated until it is called. + When it is called the RegressionResults instance will then have + another attribute cov_HC1, which is the full HCCM and also `het_scale`, + which is in this case n/(n-p)*resid**2. HCCM matrices are only + appropriate for OLS. + HC2_se + MacKinnon and White's (1985) alternative heteroskedasticity robust + standard errors. + Defined as (X.T X)^(-1)X.T diag(e_i^(2)/(1-h_ii)) X(X.T X)^(-1) + where h_ii = x_i(X.T X)^(-1)x_i.T + HC2_se is a property. It is not evaluated until it is called. + When it is called the RegressionResults instance will then have + another attribute cov_HC2, which is the full HCCM and also `het_scale`, + which is in this case is resid^(2)/(1-h_ii). HCCM matrices are only + appropriate for OLS. + HC3_se + MacKinnon and White's (1985) alternative heteroskedasticity robust + standard errors. + Defined as (X.T X)^(-1)X.T diag(e_i^(2)/(1-h_ii)^(2)) X(X.T X)^(-1) + where h_ii = x_i(X.T X)^(-1)x_i.T + HC3_se is a property. It is not evaluated until it is called. + When it is called the RegressionResults instance will then have + another attribute cov_HC3, which is the full HCCM and also `het_scale`, + which is in this case is resid^(2)/(1-h_ii)^(2). HCCM matrices are + only appropriate for OLS. + +''' + +def _HCCM(results, scale): + ''' + sandwich with pinv(x) * diag(scale) * pinv(x).T + + where pinv(x) = (X'X)^(-1) X + and scale is (nobs,) + ''' + H = np.dot(results.model.pinv_wexog, + scale[:,None]*results.model.pinv_wexog.T) + return H + +def cov_hc0(results): + """ + See statsmodels.RegressionResults + """ + + het_scale = results.resid**2 # or whitened residuals? only OLS? + cov_hc0 = _HCCM(results, het_scale) + + return cov_hc0 + +def cov_hc1(results): + """ + See statsmodels.RegressionResults + """ + + het_scale = results.nobs/(results.df_resid)*(results.resid**2) + cov_hc1 = _HCCM(results, het_scale) + return cov_hc1 + +def cov_hc2(results): + """ + See statsmodels.RegressionResults + """ + + # probably could be optimized + h = np.diag(np.dot(results.model.exog, + np.dot(results.normalized_cov_params, + results.model.exog.T))) + het_scale = results.resid**2/(1-h) + cov_hc2_ = _HCCM(results, het_scale) + return cov_hc2_ + +def cov_hc3(results): + """ + See statsmodels.RegressionResults + """ + + # above probably could be optimized to only calc the diag + h = np.diag(np.dot(results.model.exog, + np.dot(results.normalized_cov_params, + results.model.exog.T))) + het_scale=(results.resid/(1-h))**2 + cov_hc3_ = _HCCM(results, het_scale) + return cov_hc3_ + +#--------------------------------------- + +def _get_sandwich_arrays(results, cov_type=''): + """Helper function to get scores from results + + Parameters + + """ + + if isinstance(results, tuple): + # assume we have jac and hessian_inv + jac, hessian_inv = results + xu = jac = np.asarray(jac) + hessian_inv = np.asarray(hessian_inv) + elif hasattr(results, 'model'): + if hasattr(results, '_results'): + # remove wrapper + results = results._results + # assume we have a results instance + if hasattr(results.model, 'jac'): + xu = results.model.jac(results.params) + hessian_inv = np.linalg.inv(results.model.hessian(results.params)) + elif hasattr(results.model, 'score_obs'): + xu = results.model.score_obs(results.params) + hessian_inv = np.linalg.inv(results.model.hessian(results.params)) + else: + xu = results.model.wexog * results.wresid[:, None] + + hessian_inv = np.asarray(results.normalized_cov_params) + + # experimental support for freq_weights + if hasattr(results.model, 'freq_weights') and not cov_type == 'clu': + # we don't want to square the weights in the covariance calculations + # assumes that freq_weights are incorporated in score_obs or equivalent + # assumes xu/score_obs is 2D + # temporary asarray + xu /= np.sqrt(np.asarray(results.model.freq_weights)[:, None]) + + else: + raise ValueError('need either tuple of (jac, hessian_inv) or results' + + 'instance') + + return xu, hessian_inv + + +def _HCCM1(results, scale): + ''' + sandwich with pinv(x) * scale * pinv(x).T + + where pinv(x) = (X'X)^(-1) X + and scale is (nobs, nobs), or (nobs,) with diagonal matrix diag(scale) + + Parameters + ---------- + results : result instance + need to contain regression results, uses results.model.pinv_wexog + scale : ndarray (nobs,) or (nobs, nobs) + scale matrix, treated as diagonal matrix if scale is one-dimensional + + Returns + ------- + H : ndarray (k_vars, k_vars) + robust covariance matrix for the parameter estimates + + ''' + if scale.ndim == 1: + H = np.dot(results.model.pinv_wexog, + scale[:,None]*results.model.pinv_wexog.T) + else: + H = np.dot(results.model.pinv_wexog, + np.dot(scale, results.model.pinv_wexog.T)) + return H + +def _HCCM2(hessian_inv, scale): + ''' + sandwich with (X'X)^(-1) * scale * (X'X)^(-1) + + scale is (kvars, kvars) + this uses results.normalized_cov_params for (X'X)^(-1) + + Parameters + ---------- + results : result instance + need to contain regression results, uses results.normalized_cov_params + scale : ndarray (k_vars, k_vars) + scale matrix + + Returns + ------- + H : ndarray (k_vars, k_vars) + robust covariance matrix for the parameter estimates + + ''' + if scale.ndim == 1: + scale = scale[:,None] + + xxi = hessian_inv + H = np.dot(np.dot(xxi, scale), xxi.T) + return H + +#TODO: other kernels, move ? +def weights_bartlett(nlags): + '''Bartlett weights for HAC + + this will be moved to another module + + Parameters + ---------- + nlags : int + highest lag in the kernel window, this does not include the zero lag + + Returns + ------- + kernel : ndarray, (nlags+1,) + weights for Bartlett kernel + + ''' + + #with lag zero + return 1 - np.arange(nlags+1)/(nlags+1.) + +def weights_uniform(nlags): + '''uniform weights for HAC + + this will be moved to another module + + Parameters + ---------- + nlags : int + highest lag in the kernel window, this does not include the zero lag + + Returns + ------- + kernel : ndarray, (nlags+1,) + weights for uniform kernel + + ''' + + #with lag zero + return np.ones(nlags+1) + +def S_hac_simple(x, nlags=None, weights_func=weights_bartlett): + '''inner covariance matrix for HAC (Newey, West) sandwich + + assumes we have a single time series with zero axis consecutive, equal + spaced time periods + + + Parameters + ---------- + x : ndarray (nobs,) or (nobs, k_var) + data, for HAC this is array of x_i * u_i + nlags : int or None + highest lag to include in kernel window. If None, then + nlags = floor(4(T/100)^(2/9)) is used. + weights_func : callable + weights_func is called with nlags as argument to get the kernel + weights. default are Bartlett weights + + Returns + ------- + S : ndarray, (k_vars, k_vars) + inner covariance matrix for sandwich + + Notes + ----- + used by cov_hac_simple + + options might change when other kernels besides Bartlett are available. + + ''' + + if x.ndim == 1: + x = x[:,None] + n_periods = x.shape[0] + if nlags is None: + nlags = int(np.floor(4 * (n_periods / 100.)**(2./9.))) + + weights = weights_func(nlags) + + S = weights[0] * np.dot(x.T, x) #weights[0] just for completeness, is 1 + + for lag in range(1, nlags+1): + s = np.dot(x[lag:].T, x[:-lag]) + S += weights[lag] * (s + s.T) + + return S + +def S_white_simple(x): + '''inner covariance matrix for White heteroscedastistity sandwich + + + Parameters + ---------- + x : ndarray (nobs,) or (nobs, k_var) + data, for HAC this is array of x_i * u_i + + Returns + ------- + S : ndarray, (k_vars, k_vars) + inner covariance matrix for sandwich + + Notes + ----- + this is just dot(X.T, X) + + ''' + if x.ndim == 1: + x = x[:,None] + + return np.dot(x.T, x) + + + +def group_sums(x, group): + '''sum x for each group, simple bincount version, again + + group : array, integer + assumed to be consecutive integers + + no dtype checking because I want to raise in that case + + uses loop over columns of x + + #TODO: remove this, already copied to tools/grouputils + ''' + + #TODO: transpose return in group_sum, need test coverage first + + # re-label groups or bincount takes too much memory + if np.max(group) > 2 * x.shape[0]: + group = pd.factorize(group)[0] + + return np.array([np.bincount(group, weights=x[:, col]) + for col in range(x.shape[1])]) + + +def S_hac_groupsum(x, time, nlags=None, weights_func=weights_bartlett): + '''inner covariance matrix for HAC over group sums sandwich + + This assumes we have complete equal spaced time periods. + The number of time periods per group need not be the same, but we need + at least one observation for each time period + + For a single categorical group only, or a everything else but time + dimension. This first aggregates x over groups for each time period, then + applies HAC on the sum per period. + + Parameters + ---------- + x : ndarray (nobs,) or (nobs, k_var) + data, for HAC this is array of x_i * u_i + time : ndarray, (nobs,) + timeindes, assumed to be integers range(n_periods) + nlags : int or None + highest lag to include in kernel window. If None, then + nlags = floor[4(T/100)^(2/9)] is used. + weights_func : callable + weights_func is called with nlags as argument to get the kernel + weights. default are Bartlett weights + + Returns + ------- + S : ndarray, (k_vars, k_vars) + inner covariance matrix for sandwich + + References + ---------- + Daniel Hoechle, xtscc paper + Driscoll and Kraay + + ''' + #needs groupsums + + x_group_sums = group_sums(x, time).T #TODO: transpose return in grou_sum + + return S_hac_simple(x_group_sums, nlags=nlags, weights_func=weights_func) + + +def S_crosssection(x, group): + '''inner covariance matrix for White on group sums sandwich + + I guess for a single categorical group only, + categorical group, can also be the product/intersection of groups + + This is used by cov_cluster and indirectly verified + + ''' + x_group_sums = group_sums(x, group).T #TODO: why transposed + + return S_white_simple(x_group_sums) + + +def cov_crosssection_0(results, group): + '''this one is still wrong, use cov_cluster instead''' + + #TODO: currently used version of groupsums requires 2d resid + scale = S_crosssection(results.resid[:,None], group) + scale = np.squeeze(scale) + cov = _HCCM1(results, scale) + return cov + +def cov_cluster(results, group, use_correction=True): + '''cluster robust covariance matrix + + Calculates sandwich covariance matrix for a single cluster, i.e. grouped + variables. + + Parameters + ---------- + results : result instance + result of a regression, uses results.model.exog and results.resid + TODO: this should use wexog instead + use_correction : bool + If true (default), then the small sample correction factor is used. + + Returns + ------- + cov : ndarray, (k_vars, k_vars) + cluster robust covariance matrix for parameter estimates + + Notes + ----- + same result as Stata in UCLA example and same as Peterson + + ''' + #TODO: currently used version of groupsums requires 2d resid + xu, hessian_inv = _get_sandwich_arrays(results, cov_type='clu') + + if not hasattr(group, 'dtype') or group.dtype != np.dtype('int'): + clusters, group = np.unique(group, return_inverse=True) + else: + clusters = np.unique(group) + + scale = S_crosssection(xu, group) + + nobs, k_params = xu.shape + n_groups = len(clusters) #replace with stored group attributes if available + + cov_c = _HCCM2(hessian_inv, scale) + + if use_correction: + cov_c *= (n_groups / (n_groups - 1.) * + ((nobs-1.) / float(nobs - k_params))) + + return cov_c + +def cov_cluster_2groups(results, group, group2=None, use_correction=True): + '''cluster robust covariance matrix for two groups/clusters + + Parameters + ---------- + results : result instance + result of a regression, uses results.model.exog and results.resid + TODO: this should use wexog instead + use_correction : bool + If true (default), then the small sample correction factor is used. + + Returns + ------- + cov_both : ndarray, (k_vars, k_vars) + cluster robust covariance matrix for parameter estimates, for both + clusters + cov_0 : ndarray, (k_vars, k_vars) + cluster robust covariance matrix for parameter estimates for first + cluster + cov_1 : ndarray, (k_vars, k_vars) + cluster robust covariance matrix for parameter estimates for second + cluster + + Notes + ----- + + verified against Peterson's table, (4 decimal print precision) + ''' + + if group2 is None: + if group.ndim !=2 or group.shape[1] != 2: + raise ValueError('if group2 is not given, then groups needs to be ' + + 'an array with two columns') + group0 = group[:, 0] + group1 = group[:, 1] + else: + group0 = group + group1 = group2 + group = (group0, group1) + + + cov0 = cov_cluster(results, group0, use_correction=use_correction) + #[0] because we get still also returns bse + cov1 = cov_cluster(results, group1, use_correction=use_correction) + + group_intersection = Group(group) + #cov of cluster formed by intersection of two groups + cov01 = cov_cluster(results, + group_intersection.group_int, + use_correction=use_correction) + + #robust cov matrix for union of groups + cov_both = cov0 + cov1 - cov01 + + #return all three (for now?) + return cov_both, cov0, cov1 + + +def cov_white_simple(results, use_correction=True): + ''' + heteroscedasticity robust covariance matrix (White) + + Parameters + ---------- + results : result instance + result of a regression, uses results.model.exog and results.resid + TODO: this should use wexog instead + + Returns + ------- + cov : ndarray, (k_vars, k_vars) + heteroscedasticity robust covariance matrix for parameter estimates + + Notes + ----- + This produces the same result as cov_hc0, and does not include any small + sample correction. + + verified (against LinearRegressionResults and Peterson) + + See Also + -------- + cov_hc1, cov_hc2, cov_hc3 : heteroscedasticity robust covariance matrices + with small sample corrections + + ''' + xu, hessian_inv = _get_sandwich_arrays(results) + sigma = S_white_simple(xu) + + cov_w = _HCCM2(hessian_inv, sigma) #add bread to sandwich + + if use_correction: + nobs, k_params = xu.shape + cov_w *= nobs / float(nobs - k_params) + + return cov_w + + +def cov_hac_simple(results, nlags=None, weights_func=weights_bartlett, + use_correction=True): + ''' + heteroscedasticity and autocorrelation robust covariance matrix (Newey-West) + + Assumes we have a single time series with zero axis consecutive, equal + spaced time periods + + + Parameters + ---------- + results : result instance + result of a regression, uses results.model.exog and results.resid + TODO: this should use wexog instead + nlags : int or None + highest lag to include in kernel window. If None, then + nlags = floor[4(T/100)^(2/9)] is used. + weights_func : callable + weights_func is called with nlags as argument to get the kernel + weights. default are Bartlett weights + + Returns + ------- + cov : ndarray, (k_vars, k_vars) + HAC robust covariance matrix for parameter estimates + + Notes + ----- + verified only for nlags=0, which is just White + just guessing on correction factor, need reference + + options might change when other kernels besides Bartlett are available. + + ''' + xu, hessian_inv = _get_sandwich_arrays(results) + sigma = S_hac_simple(xu, nlags=nlags, weights_func=weights_func) + + cov_hac = _HCCM2(hessian_inv, sigma) + + if use_correction: + nobs, k_params = xu.shape + cov_hac *= nobs / float(nobs - k_params) + + return cov_hac + +cov_hac = cov_hac_simple #alias for users + +#---------------------- use time lags corrected for groups +#the following were copied from a different experimental script, +#groupidx is tuple, observations assumed to be stacked by group member and +#sorted by time, equal number of periods is not required, but equal spacing is. +#I think this is pure within group HAC: apply HAC to each group member +#separately + +def lagged_groups(x, lag, groupidx): + ''' + assumes sorted by time, groupidx is tuple of start and end values + not optimized, just to get a working version, loop over groups + ''' + out0 = [] + out_lagged = [] + for l,u in groupidx: + if l+lag < u: #group is longer than lag + out0.append(x[l+lag:u]) + out_lagged.append(x[l:u-lag]) + + if out0 == []: + raise ValueError('all groups are empty taking lags') + #return out0, out_lagged + return np.vstack(out0), np.vstack(out_lagged) + + + +def S_nw_panel(xw, weights, groupidx): + '''inner covariance matrix for HAC for panel data + + no denominator nobs used + + no reference for this, just accounting for time indices + ''' + nlags = len(weights)-1 + + S = weights[0] * np.dot(xw.T, xw) #weights just for completeness + for lag in range(1, nlags+1): + xw0, xwlag = lagged_groups(xw, lag, groupidx) + s = np.dot(xw0.T, xwlag) + S += weights[lag] * (s + s.T) + return S + + +def cov_nw_panel(results, nlags, groupidx, weights_func=weights_bartlett, + use_correction='hac'): + '''Panel HAC robust covariance matrix + + Assumes we have a panel of time series with consecutive, equal spaced time + periods. Data is assumed to be in long format with time series of each + individual stacked into one array. Panel can be unbalanced. + + Parameters + ---------- + results : result instance + result of a regression, uses results.model.exog and results.resid + TODO: this should use wexog instead + nlags : int or None + Highest lag to include in kernel window. Currently, no default + because the optimal length will depend on the number of observations + per cross-sectional unit. + groupidx : list of tuple + each tuple should contain the start and end index for an individual. + (groupidx might change in future). + weights_func : callable + weights_func is called with nlags as argument to get the kernel + weights. default are Bartlett weights + use_correction : 'cluster' or 'hac' or False + If False, then no small sample correction is used. + If 'cluster' (default), then the same correction as in cov_cluster is + used. + If 'hac', then the same correction as in single time series, cov_hac + is used. + + + Returns + ------- + cov : ndarray, (k_vars, k_vars) + HAC robust covariance matrix for parameter estimates + + Notes + ----- + For nlags=0, this is just White covariance, cov_white. + If kernel is uniform, `weights_uniform`, with nlags equal to the number + of observations per unit in a balance panel, then cov_cluster and + cov_hac_panel are identical. + + Tested against STATA `newey` command with same defaults. + + Options might change when other kernels besides Bartlett and uniform are + available. + + ''' + if nlags == 0: #so we can reproduce HC0 White + weights = [1, 0] #to avoid the scalar check in hac_nw + else: + weights = weights_func(nlags) + + xu, hessian_inv = _get_sandwich_arrays(results) + + S_hac = S_nw_panel(xu, weights, groupidx) + cov_hac = _HCCM2(hessian_inv, S_hac) + if use_correction: + nobs, k_params = xu.shape + if use_correction == 'hac': + cov_hac *= nobs / float(nobs - k_params) + elif use_correction in ['c', 'clu', 'cluster']: + n_groups = len(groupidx) + cov_hac *= n_groups / (n_groups - 1.) + cov_hac *= ((nobs-1.) / float(nobs - k_params)) + + return cov_hac + + +def cov_nw_groupsum(results, nlags, time, weights_func=weights_bartlett, + use_correction=0): + '''Driscoll and Kraay Panel robust covariance matrix + + Robust covariance matrix for panel data of Driscoll and Kraay. + + Assumes we have a panel of time series where the time index is available. + The time index is assumed to represent equal spaced periods. At least one + observation per period is required. + + Parameters + ---------- + results : result instance + result of a regression, uses results.model.exog and results.resid + TODO: this should use wexog instead + nlags : int or None + Highest lag to include in kernel window. Currently, no default + because the optimal length will depend on the number of observations + per cross-sectional unit. + time : ndarray of int + this should contain the coding for the time period of each observation. + time periods should be integers in range(maxT) where maxT is obs of i + weights_func : callable + weights_func is called with nlags as argument to get the kernel + weights. default are Bartlett weights + use_correction : 'cluster' or 'hac' or False + If False, then no small sample correction is used. + If 'hac' (default), then the same correction as in single time series, cov_hac + is used. + If 'cluster', then the same correction as in cov_cluster is + used. + + Returns + ------- + cov : ndarray, (k_vars, k_vars) + HAC robust covariance matrix for parameter estimates + + Notes + ----- + Tested against STATA xtscc package, which uses no small sample correction + + This first averages relevant variables for each time period over all + individuals/groups, and then applies the same kernel weighted averaging + over time as in HAC. + + Warning: + In the example with a short panel (few time periods and many individuals) + with mainly across individual variation this estimator did not produce + reasonable results. + + Options might change when other kernels besides Bartlett and uniform are + available. + + References + ---------- + Daniel Hoechle, xtscc paper + Driscoll and Kraay + + ''' + + xu, hessian_inv = _get_sandwich_arrays(results) + + #S_hac = S_nw_panel(xw, weights, groupidx) + S_hac = S_hac_groupsum(xu, time, nlags=nlags, weights_func=weights_func) + cov_hac = _HCCM2(hessian_inv, S_hac) + if use_correction: + nobs, k_params = xu.shape + if use_correction == 'hac': + cov_hac *= nobs / float(nobs - k_params) + elif use_correction in ['c', 'cluster']: + n_groups = len(np.unique(time)) + cov_hac *= n_groups / (n_groups - 1.) + cov_hac *= ((nobs-1.) / float(nobs - k_params)) + + return cov_hac + + diff --git a/statsmodels/stats/stattools.py b/statsmodels/stats/stattools.py new file mode 100644 index 0000000..251b79c --- /dev/null +++ b/statsmodels/stats/stattools.py @@ -0,0 +1,451 @@ +""" +Statistical tests to be used in conjunction with the models + +Notes +----- +These functions haven't been formally tested. +""" + +from scipy import stats +import numpy as np +from statsmodels.tools.sm_exceptions import ValueWarning + + +# TODO: these are pretty straightforward but they should be tested +def durbin_watson(resids, axis=0): + """ + Calculates the Durbin-Watson statistic + + Parameters + ----------- + resids : array-like + + Returns + -------- + dw : float, array-like + + The Durbin-Watson statistic. + + Notes + ----- + The null hypothesis of the test is that there is no serial correlation. + The Durbin-Watson test statistics is defined as: + + .. math:: + + \sum_{t=2}^T((e_t - e_{t-1})^2)/\sum_{t=1}^Te_t^2 + + The test statistic is approximately equal to 2*(1-r) where ``r`` is the + sample autocorrelation of the residuals. Thus, for r == 0, indicating no + serial correlation, the test statistic equals 2. This statistic will + always be between 0 and 4. The closer to 0 the statistic, the more + evidence for positive serial correlation. The closer to 4, the more + evidence for negative serial correlation. + """ + resids = np.asarray(resids) + diff_resids = np.diff(resids, 1, axis=axis) + dw = np.sum(diff_resids**2, axis=axis) / np.sum(resids**2, axis=axis) + return dw + + +def omni_normtest(resids, axis=0): + """ + Omnibus test for normality + + Parameters + ----------- + resid : array-like + axis : int, optional + Default is 0 + + Returns + ------- + Chi^2 score, two-tail probability + """ + #TODO: change to exception in summary branch and catch in summary() + #behavior changed between scipy 0.9 and 0.10 + resids = np.asarray(resids) + n = resids.shape[axis] + if n < 8: + from warnings import warn + warn("omni_normtest is not valid with less than 8 observations; %i " + "samples were given." % int(n), ValueWarning) + return np.nan, np.nan + + return stats.normaltest(resids, axis=axis) + + +def jarque_bera(resids, axis=0): + r""" + Calculates the Jarque-Bera test for normality + + Parameters + ----------- + data : array-like + Data to test for normality + axis : int, optional + Axis to use if data has more than 1 dimension. Default is 0 + + Returns + ------- + JB : float or array + The Jarque-Bera test statistic + JBpv : float or array + The pvalue of the test statistic + skew : float or array + Estimated skewness of the data + kurtosis : float or array + Estimated kurtosis of the data + + Notes + ----- + Each output returned has 1 dimension fewer than data + + + The Jarque-Bera test statistic tests the null that the data is normally + distributed against an alternative that the data follow some other + distribution. The test statistic is based on two moments of the data, + the skewness, and the kurtosis, and has an asymptotic :math:`\chi^2_2` + distribution. + + The test statistic is defined + + .. math:: JB = n(S^2/6+(K-3)^2/24) + + where n is the number of data points, S is the sample skewness, and K is + the sample kurtosis of the data. + """ + resids = np.asarray(resids) + # Calculate residual skewness and kurtosis + skew = stats.skew(resids, axis=axis) + kurtosis = 3 + stats.kurtosis(resids, axis=axis) + + # Calculate the Jarque-Bera test for normality + n = resids.shape[axis] + jb = (n / 6.) * (skew ** 2 + (1 / 4.) * (kurtosis - 3) ** 2) + jb_pv = stats.chi2.sf(jb, 2) + + return jb, jb_pv, skew, kurtosis + + +def robust_skewness(y, axis=0): + """ + Calculates the four skewness measures in Kim & White + + Parameters + ---------- + y : array-like + + axis : int or None, optional + Axis along which the skewness measures are computed. If `None`, the + entire array is used. + + Returns + ------- + sk1 : ndarray + The standard skewness estimator. + sk2 : ndarray + Skewness estimator based on quartiles. + sk3 : ndarray + Skewness estimator based on mean-median difference, standardized by + absolute deviation. + sk4 : ndarray + Skewness estimator based on mean-median difference, standardized by + standard deviation. + + Notes + ----- + The robust skewness measures are defined + + .. math :: + + SK_{2}=\\frac{\\left(q_{.75}-q_{.5}\\right) + -\\left(q_{.5}-q_{.25}\\right)}{q_{.75}-q_{.25}} + + .. math :: + + SK_{3}=\\frac{\\mu-\\hat{q}_{0.5}} + {\\hat{E}\\left[\\left|y-\\hat{\\mu}\\right|\\right]} + + .. math :: + + SK_{4}=\\frac{\\mu-\\hat{q}_{0.5}}{\\hat{\\sigma}} + + .. [1] Tae-Hwan Kim and Halbert White, "On more robust estimation of + skewness and kurtosis," Finance Research Letters, vol. 1, pp. 56-73, + March 2004. + """ + + if axis is None: + y = y.ravel() + axis = 0 + + y = np.sort(y, axis) + + q1, q2, q3 = np.percentile(y, [25.0, 50.0, 75.0], axis=axis) + + mu = y.mean(axis) + shape = (y.size,) + if axis is not None: + shape = list(mu.shape) + shape.insert(axis, 1) + shape = tuple(shape) + + mu_b = np.reshape(mu, shape) + q2_b = np.reshape(q2, shape) + + sigma = np.mean(((y - mu_b)**2), axis) + + sk1 = stats.skew(y, axis=axis) + sk2 = (q1 + q3 - 2.0 * q2) / (q3 - q1) + sk3 = (mu - q2) / np.mean(abs(y - q2_b), axis=axis) + sk4 = (mu - q2) / sigma + + return sk1, sk2, sk3, sk4 + + +def _kr3(y, alpha=5.0, beta=50.0): + """ + KR3 estimator from Kim & White + + Parameters + ---------- + y : array-like, 1-d + alpha : float, optional + Lower cut-off for measuring expectation in tail. + beta : float, optional + Lower cut-off for measuring expectation in center. + + Returns + ------- + kr3 : float + Robust kurtosis estimator based on standardized lower- and upper-tail + expected values + + Notes + ----- + .. [1] Tae-Hwan Kim and Halbert White, "On more robust estimation of + skewness and kurtosis," Finance Research Letters, vol. 1, pp. 56-73, + March 2004. + """ + perc = (alpha, 100.0 - alpha, beta, 100.0 - beta) + lower_alpha, upper_alpha, lower_beta, upper_beta = np.percentile(y, perc) + l_alpha = np.mean(y[y < lower_alpha]) + u_alpha = np.mean(y[y > upper_alpha]) + + l_beta = np.mean(y[y < lower_beta]) + u_beta = np.mean(y[y > upper_beta]) + + return (u_alpha - l_alpha) / (u_beta - l_beta) + + +def expected_robust_kurtosis(ab=(5.0, 50.0), dg=(2.5, 25.0)): + """ + Calculates the expected value of the robust kurtosis measures in Kim and + White assuming the data are normally distributed. + + Parameters + ---------- + ab: iterable, optional + Contains 100*(alpha, beta) in the kr3 measure where alpha is the tail + quantile cut-off for measuring the extreme tail and beta is the central + quantile cutoff for the standardization of the measure + db: iterable, optional + Contains 100*(delta, gamma) in the kr4 measure where delta is the tail + quantile for measuring extreme values and gamma is the central quantile + used in the the standardization of the measure + + Returns + ------- + ekr: array, 4-element + Contains the expected values of the 4 robust kurtosis measures + + Notes + ----- + See `robust_kurtosis` for definitions of the robust kurtosis measures + """ + + alpha, beta = ab + delta, gamma = dg + expected_value = np.zeros(4) + ppf = stats.norm.ppf + pdf = stats.norm.pdf + q1, q2, q3, q5, q6, q7 = ppf(np.array((1.0, 2.0, 3.0, 5.0, 6.0, 7.0)) / 8) + expected_value[0] = 3 + + expected_value[1] = ((q7 - q5) + (q3 - q1)) / (q6 - q2) + + q_alpha, q_beta = ppf(np.array((alpha / 100.0, beta / 100.0))) + expected_value[2] = (2 * pdf(q_alpha) / alpha) / (2 * pdf(q_beta) / beta) + + q_delta, q_gamma = ppf(np.array((delta / 100.0, gamma / 100.0))) + expected_value[3] = (-2.0 * q_delta) / (-2.0 * q_gamma) + + return expected_value + + +def robust_kurtosis(y, axis=0, ab=(5.0, 50.0), dg=(2.5, 25.0), excess=True): + """ + Calculates the four kurtosis measures in Kim & White + + Parameters + ---------- + y : array-like + axis : int or None, optional + Axis along which the kurtoses are computed. If `None`, the + entire array is used. + ab: iterable, optional + Contains 100*(alpha, beta) in the kr3 measure where alpha is the tail + quantile cut-off for measuring the extreme tail and beta is the central + quantile cutoff for the standardization of the measure + db: iterable, optional + Contains 100*(delta, gamma) in the kr4 measure where delta is the tail + quantile for measuring extreme values and gamma is the central quantile + used in the the standardization of the measure + excess : bool, optional + If true (default), computed values are excess of those for a standard + normal distribution. + + Returns + ------- + kr1 : ndarray + The standard kurtosis estimator. + kr2 : ndarray + Kurtosis estimator based on octiles. + kr3 : ndarray + Kurtosis estimators based on exceedence expectations. + kr4 : ndarray + Kurtosis measure based on the spread between high and low quantiles. + + Notes + ----- + The robust kurtosis measures are defined + + .. math:: + + KR_{2}=\\frac{\\left(\\hat{q}_{.875}-\\hat{q}_{.625}\\right) + +\\left(\\hat{q}_{.375}-\\hat{q}_{.125}\\right)} + {\\hat{q}_{.75}-\\hat{q}_{.25}} + + .. math:: + + KR_{3}=\\frac{\\hat{E}\\left(y|y>\\hat{q}_{1-\\alpha}\\right) + -\\hat{E}\\left(y|y<\\hat{q}_{\\alpha}\\right)} + {\\hat{E}\\left(y|y>\\hat{q}_{1-\\beta}\\right) + -\\hat{E}\\left(y|y<\\hat{q}_{\\beta}\\right)} + + .. math:: + + KR_{4}=\\frac{\\hat{q}_{1-\\delta}-\\hat{q}_{\\delta}} + {\\hat{q}_{1-\\gamma}-\\hat{q}_{\\gamma}} + + where :math:`\\hat{q}_{p}` is the estimated quantile at :math:`p`. + + .. [1] Tae-Hwan Kim and Halbert White, "On more robust estimation of + skewness and kurtosis," Finance Research Letters, vol. 1, pp. 56-73, + March 2004. + """ + if (axis is None or + (y.squeeze().ndim == 1 and y.ndim != 1)): + y = y.ravel() + axis = 0 + + alpha, beta = ab + delta, gamma = dg + + perc = (12.5, 25.0, 37.5, 62.5, 75.0, 87.5, + delta, 100.0 - delta, gamma, 100.0 - gamma) + e1, e2, e3, e5, e6, e7, fd, f1md, fg, f1mg = np.percentile(y, perc, + axis=axis) + + expected_value = expected_robust_kurtosis(ab, dg) if excess else np.zeros(4) + + kr1 = stats.kurtosis(y, axis, False) - expected_value[0] + kr2 = ((e7 - e5) + (e3 - e1)) / (e6 - e2) - expected_value[1] + if y.ndim == 1: + kr3 = _kr3(y, alpha, beta) + else: + kr3 = np.apply_along_axis(_kr3, axis, y, alpha, beta) + kr3 -= expected_value[2] + kr4 = (f1md - fd) / (f1mg - fg) - expected_value[3] + return kr1, kr2, kr3, kr4 + + +def _medcouple_1d(y): + """ + Calculates the medcouple robust measure of skew. + + Parameters + ---------- + y : array-like, 1-d + + Returns + ------- + mc : float + The medcouple statistic + + Notes + ----- + The current algorithm requires a O(N**2) memory allocations, and so may + not work for very large arrays (N>10000). + + .. [1] M. Huberta and E. Vandervierenb, "An adjusted boxplot for skewed + distributions" Computational Statistics & Data Analysis, vol. 52, pp. + 5186-5201, August 2008. + """ + + # Parameter changes the algorithm to the slower for large n + + y = np.squeeze(np.asarray(y)) + if y.ndim != 1: + raise ValueError("y must be squeezable to a 1-d array") + + y = np.sort(y) + + n = y.shape[0] + if n % 2 == 0: + mf = (y[n // 2 - 1] + y[n // 2]) / 2 + else: + mf = y[(n - 1) // 2] + + z = y - mf + lower = z[z <= 0.0] + upper = z[z >= 0.0] + upper = upper[:, None] + standardization = upper - lower + is_zero = np.logical_and(lower == 0.0, upper == 0.0) + standardization[is_zero] = np.inf + spread = upper + lower + return np.median(spread / standardization) + + +def medcouple(y, axis=0): + """ + Calculates the medcouple robust measure of skew. + + Parameters + ---------- + y : array-like + axis : int or None, optional + Axis along which the medcouple statistic is computed. If `None`, the + entire array is used. + + Returns + ------- + mc : ndarray + The medcouple statistic with the same shape as `y`, with the specified + axis removed. + + Notes + ----- + The current algorithm requires a O(N**2) memory allocations, and so may + not work for very large arrays (N>10000). + + .. [1] M. Huberta and E. Vandervierenb, "An adjusted boxplot for skewed + distributions" Computational Statistics & Data Analysis, vol. 52, pp. + 5186-5201, August 2008. + """ + if axis is None: + return _medcouple_1d(y.ravel()) + + return np.apply_along_axis(_medcouple_1d, axis, y) diff --git a/statsmodels/stats/tabledist.py b/statsmodels/stats/tabledist.py new file mode 100644 index 0000000..60ea4a3 --- /dev/null +++ b/statsmodels/stats/tabledist.py @@ -0,0 +1,320 @@ +# -*- coding: utf-8 -*- +""" +Created on Sat Oct 01 20:20:16 2011 + +Author: Josef Perktold +License: BSD-3 + + +TODO: +check orientation, size and alpha should be increasing for interp1d, +but what is alpha? can be either sf or cdf probability +change it to use one consistent notation + +check: instead of bound checking I could use the fill-value of the interpolators + + +""" +from __future__ import print_function +from statsmodels.compat.python import range +import numpy as np +from scipy.interpolate import interp1d, interp2d, Rbf +from statsmodels.tools.decorators import cache_readonly + + +class TableDist(object): + '''Distribution, critical values and p-values from tables + + currently only 1 extra parameter, e.g. sample size + + Parameters + ---------- + alpha : array_like, 1d + probabiliy in the table, could be either sf (right tail) or cdf (left + tail) + size : array_like, 1d + second paramater in the table + crit_table : array_like, 2d + array with critical values for sample size in rows and probability in + columns + + Notes + ----- + size and alpha should be increasing + + + ''' + + def __init__(self, alpha, size, crit_table): + self.alpha = np.asarray(alpha) + self.size = np.asarray(size) + self.crit_table = np.asarray(crit_table) + + self.n_alpha = len(alpha) + self.signcrit = np.sign(np.diff(self.crit_table, 1).mean()) + if self.signcrit > 0: #increasing + self.critv_bounds = self.crit_table[:,[0,1]] + else: + self.critv_bounds = self.crit_table[:,[1,0]] + + @cache_readonly + def polyn(self): + polyn = [interp1d(self.size, self.crit_table[:,i]) + for i in range(self.n_alpha)] + return polyn + + @cache_readonly + def poly2d(self): + #check for monotonicity ? + #fix this, interp needs increasing + poly2d = interp2d(self.size, self.alpha, self.crit_table) + return poly2d + + @cache_readonly + def polyrbf(self): + xs, xa = np.meshgrid(self.size.astype(float), self.alpha) + polyrbf = Rbf(xs.ravel(), xa.ravel(), self.crit_table.T.ravel(),function='linear') + return polyrbf + + def _critvals(self, n): + '''rows of the table, linearly interpolated for given sample size + + Parameters + ---------- + n : float + sample size, second parameter of the table + + Returns + ------- + critv : ndarray, 1d + critical values (ppf) corresponding to a row of the table + + Notes + ----- + This is used in two step interpolation, or if we want to know the + critical values for all alphas for any sample size that we can obtain + through interpolation + + ''' + return np.array([p(n) for p in self.polyn]) + + def prob(self, x, n): + '''find pvalues by interpolation, eiter cdf(x) or sf(x) + + returns extrem probabilities, 0.001 and 0.2, for out of range + + Parameters + ---------- + x : array_like + observed value, assumed to follow the distribution in the table + n : float + sample size, second parameter of the table + + Returns + ------- + prob : arraylike + This is the probability for each value of x, the p-value in + underlying distribution is for a statistical test. + + ''' + critv = self._critvals(n) + alpha = self.alpha +# if self.signcrit == 1: +# if x < critv[0]: #generalize: ? np.sign(x - critvals[0]) == self.signcrit: +# return alpha[0] +# elif x > critv[-1]: +# return alpha[-1] +# elif self.signcrit == -1: +# if x > critv[0]: +# return alpha[0] +# elif x < critv[-1]: +# return alpha[-1] + + if self.signcrit < 1: + #reverse if critv is decreasing + critv, alpha = critv[::-1], alpha[::-1] + + #now critv is increasing + if np.size(x) == 1: + if x < critv[0]: + return alpha[0] + elif x > critv[-1]: + return alpha[-1] + return interp1d(critv, alpha)(x)[()] + else: + #vectorized + cond_low = (x < critv[0]) + cond_high = (x > critv[-1]) + cond_interior = ~np.logical_or(cond_low, cond_high) + + probs = np.nan * np.ones(x.shape) #mistake if nan left + probs[cond_low] = alpha[0] + probs[cond_low] = alpha[-1] + probs[cond_interior] = interp1d(critv, alpha)(x[cond_interior]) + + return probs + + + def crit2(self, prob, n): + '''returns interpolated quantiles, similar to ppf or isf + + this can be either cdf or sf depending on the table, twosided? + + this doesn't work, no more knots warning + + ''' + return self.poly2d(n, prob) + + + def crit(self, prob, n): + '''returns interpolated quantiles, similar to ppf or isf + + use two sequential 1d interpolation, first by n then by prob + + Parameters + ---------- + prob : array_like + probabilities corresponding to the definition of table columns + n : int or float + sample size, second parameter of the table + + Returns + ------- + ppf : array_like + critical values with same shape as prob + + ''' + prob = np.asarray(prob) + alpha = self.alpha + critv = self._critvals(n) + + #vectorized + cond_ilow = (prob > alpha[0]) + cond_ihigh = (prob < alpha[-1]) + cond_interior = np.logical_or(cond_ilow, cond_ihigh) + + #scalar + if prob.size == 1: + if cond_interior: + return interp1d(alpha, critv)(prob) + else: + return np.nan + + #vectorized + quantile = np.nan * np.ones(prob.shape) #nans for outside + quantile[cond_interior] = interp1d(alpha, critv)(prob[cond_interior]) + return quantile + + def crit3(self, prob, n): + '''returns interpolated quantiles, similar to ppf or isf + + uses Rbf to interpolate critical values as function of `prob` and `n` + + Parameters + ---------- + prob : array_like + probabilities corresponding to the definition of table columns + n : int or float + sample size, second parameter of the table + + Returns + ------- + ppf : array_like + critical values with same shape as prob, returns nan for arguments + that are outside of the table bounds + + ''' + prob = np.asarray(prob) + alpha = self.alpha + + #vectorized + cond_ilow = (prob > alpha[0]) + cond_ihigh = (prob < alpha[-1]) + cond_interior = np.logical_or(cond_ilow, cond_ihigh) + + #scalar + if prob.size == 1: + if cond_interior: + return self.polyrbf(n, prob) + else: + return np.nan + + #vectorized + quantile = np.nan * np.ones(prob.shape) #nans for outside + + quantile[cond_interior] = self.polyrbf(n, prob[cond_interior]) + return quantile + + + +if __name__ == '__main__': + + ''' + example Lilliefors test for normality + An Analytic Approximation to the Distribution of Lilliefors's Test Statistic for Normality + Author(s): Gerard E. Dallal and Leland WilkinsonSource: The American Statistician, Vol. 40, No. 4 (Nov., 1986), pp. 294-296Published by: American Statistical AssociationStable URL: http://www.jstor.org/stable/2684607 . + ''' + + #for this test alpha is sf probability, i.e. right tail probability + + alpha = np.array([ 0.2 , 0.15 , 0.1 , 0.05 , 0.01 , 0.001])[::-1] + size = np.array([ 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 25, 30, 40, 100, 400, 900], float) + + #critical values, rows are by sample size, columns are by alpha + crit_lf = np.array( [[303, 321, 346, 376, 413, 433], + [289, 303, 319, 343, 397, 439], + [269, 281, 297, 323, 371, 424], + [252, 264, 280, 304, 351, 402], + [239, 250, 265, 288, 333, 384], + [227, 238, 252, 274, 317, 365], + [217, 228, 241, 262, 304, 352], + [208, 218, 231, 251, 291, 338], + [200, 210, 222, 242, 281, 325], + [193, 202, 215, 234, 271, 314], + [187, 196, 208, 226, 262, 305], + [181, 190, 201, 219, 254, 296], + [176, 184, 195, 213, 247, 287], + [171, 179, 190, 207, 240, 279], + [167, 175, 185, 202, 234, 273], + [163, 170, 181, 197, 228, 266], + [159, 166, 176, 192, 223, 260], + [143, 150, 159, 173, 201, 236], + [131, 138, 146, 159, 185, 217], + [115, 120, 128, 139, 162, 189], + [ 74, 77, 82, 89, 104, 122], + [ 37, 39, 41, 45, 52, 61], + [ 25, 26, 28, 30, 35, 42]])[:,::-1] / 1000. + + + lf = TableDist(alpha, size, crit_lf) + print(lf.prob(0.166, 20), 'should be:', 0.15) + print('') + print(lf.crit2(0.15, 20), 'should be:', 0.166, 'interp2d bad') + print(lf.crit(0.15, 20), 'should be:', 0.166, 'two 1d') + print(lf.crit3(0.15, 20), 'should be:', 0.166, 'Rbf') + print('') + print(lf.crit2(0.17, 20), 'should be in:', (.159, .166), 'interp2d bad') + print(lf.crit(0.17, 20), 'should be in:', (.159, .166), 'two 1d') + print(lf.crit3(0.17, 20), 'should be in:', (.159, .166), 'Rbf') + print('') + print(lf.crit2(0.19, 20), 'should be in:', (.159, .166), 'interp2d bad') + print(lf.crit(0.19, 20), 'should be in:', (.159, .166), 'two 1d') + print(lf.crit3(0.19, 20), 'should be in:', (.159, .166), 'Rbf') + print('') + print(lf.crit2(0.199, 20), 'should be in:', (.159, .166), 'interp2d bad') + print(lf.crit(0.199, 20), 'should be in:', (.159, .166), 'two 1d') + print(lf.crit3(0.199, 20), 'should be in:', (.159, .166), 'Rbf') + #testing + print(np.max(np.abs(np.array([lf.prob(c, size[i]) for i in range(len(size)) for c in crit_lf[i]]).reshape(-1,lf.n_alpha) - lf.alpha))) + #1.6653345369377348e-16 + print(np.max(np.abs(np.array([lf.crit(c, size[i]) for i in range(len(size)) for c in lf.alpha]).reshape(-1,lf.n_alpha) - crit_lf))) + #6.9388939039072284e-18) + print(np.max(np.abs(np.array([lf.crit3(c, size[i]) for i in range(len(size)) for c in lf.alpha]).reshape(-1,lf.n_alpha) - crit_lf))) + #4.0615705243496336e-12) + print((np.array([lf.crit3(c, size[i]) for i in range(len(size)) for c in lf.alpha[:-1]*1.1]).reshape(-1,lf.n_alpha-1) < crit_lf[:,:-1]).all()) + print((np.array([lf.crit3(c, size[i]) for i in range(len(size)) for c in lf.alpha[:-1]*1.1]).reshape(-1,lf.n_alpha-1) > crit_lf[:,1:]).all()) + print((np.array([lf.prob(c*0.9, size[i]) for i in range(len(size)) for c in crit_lf[i,:-1]]).reshape(-1,lf.n_alpha-1) > lf.alpha[:-1]).all()) + print((np.array([lf.prob(c*1.1, size[i]) for i in range(len(size)) for c in crit_lf[i,1:]]).reshape(-1,lf.n_alpha-1) < lf.alpha[1:]).all()) + #start at size_idx=2 because of non-monotonicity of lf_crit + print((np.array([lf.prob(c, size[i]*0.9) for i in range(2,len(size)) for c in crit_lf[i,:-1]]).reshape(-1,lf.n_alpha-1) > lf.alpha[:-1]).all()) diff --git a/statsmodels/stats/tests/__init__.py b/statsmodels/stats/tests/__init__.py new file mode 100644 index 0000000..1e26f0c --- /dev/null +++ b/statsmodels/stats/tests/__init__.py @@ -0,0 +1,165 @@ +''' + +Econometrics for a Datarich Environment +======================================= + +Introduction +------------ +In many cases we are performing statistical analysis when many observed variables are +available, when we are in a data rich environment. Machine learning has a wide variety +of tools for dimension reduction and penalization when there are many varibles compared +to the number of observation. Chemometrics has a long tradition of using Partial Least +Squares, NIPALS and similar in these cases. In econometrics the same problem shows up +when there are either many possible regressors, many (weak) instruments or when there are +a large number of moment conditions in GMM. + +This section is intended to collect some models and tools in this area that are relevant +for the statical analysis and econometrics. + +Covariance Matrices +=================== +Several methods are available to reduce the small sample noise in estimated covariance +matrices with many variable. +Some applications: +weighting matrix with many moments, +covariance matrix for portfolio choice + +Dimension Reduction +=================== +Principal Component and Partial Least Squares try to extract the important low dimensional +factors from the data with many variables. + +Regression with many regressors +=============================== +Factor models, selection of regressors and shrinkage and penalization are used to improve +the statistical properties, when the presence of too many regressors leads to over-fitting +and too noisy small sample estimators and statistics. + +Regression with many moments or many instruments +================================================ +The same tools apply and can be used in these two cases. +e.g. Tychonov regularization of weighting matrix in GMM, similar to Ridge regression, the +weighting matrix can be shrunk towards the identity matrix. +Simplest case will be part of GMM. I don't know how much will be standalone +functions. + + +Intended Content +================ + +PLS +--- +what should be available in class? + +Factormodel and supporting helper functions +------------------------------------------- + +PCA based +~~~~~~~~~ +First version based PCA on Stock/Watson and Bai/Ng, and recent papers on the +selection of the number of factors. Not sure about Forni et al. in approach. +Basic support of this needs additional results for PCA, error covariance matrix +of data on reduced factors, required for criteria in Bai/Ng. +Selection criteria based on eigenvalue cutoffs. + +Paper on PCA and structural breaks. Could add additional results during +find_nfact to test for parameter stability. I haven't read the paper yet. + +Idea: for forecasting, use up to h-step ahead endogenous variables to directly +get the forecasts. + +Asymptotic results and distribution: not too much idea yet. +Standard OLS results are conditional on factors, paper by Haerdle (abstract +seems to suggest that this is ok, Park 2009). + +Simulation: add function to simulate DGP of Bai/Ng and recent extension. +Sensitivity of selection criteria to heteroscedasticity and autocorrelation. + +Bai, J. & Ng, S., 2002. Determining the Number of Factors in + Approximate Factor Models. Econometrica, 70(1), pp.191-221. + +Kapetanios, G., 2010. A Testing Procedure for Determining the Number + of Factors in Approximate Factor Models With Large Datasets. Journal + of Business and Economic Statistics, 28(3), pp.397-409. + +Onatski, A., 2010. Determining the Number of Factors from Empirical + Distribution of Eigenvalues. Review of Economics and Statistics, + 92(4), pp.1004-1016. + +Alessi, L., Barigozzi, M. & Capasso, M., 2010. Improved penalization + for determining the number of factors in approximate factor models. + Statistics & Probability Letters, 80(23-24), pp.1806-1813. + +Breitung, J. & Eickmeier, S., Testing for structural breaks in dynamic + factor models. Journal of Econometrics, In Press, Accepted Manuscript. + Available at: + http://www.sciencedirect.com/science/article/B6VC0-51G3W92-1/2/f45ce2332443374fd770e42e5a68ddb4 + [Accessed November 15, 2010]. + +Croux, C., Renault, E. & Werker, B., 2004. Dynamic factor models. + Journal of Econometrics, 119(2), pp.223-230. + +Forni, M. et al., 2009. Opening the Black Box: Structural Factor + Models with Large Cross Sections. Econometric Theory, 25(05), + pp.1319-1347. + +Forni, M. et al., 2000. The Generalized Dynamic-Factor Model: + Identification and Estimation. Review of Economics and Statistics, + 82(4), pp.540-554. + +Forni, M. & Lippi, M., The general dynamic factor model: One-sided + representation results. Journal of Econometrics, In Press, Accepted + Manuscript. Available at: + http://www.sciencedirect.com/science/article/B6VC0-51FNPJN-1/2/4fcdd0cfb66e3050ff5d19bf2752ed19 + [Accessed November 15, 2010]. + +Kapetanios, G., 2010. A Testing Procedure for Determining the Number + of Factors in Approximate Factor Models With Large Datasets. Journal + of Business and Economic Statistics, 28(3), pp.397-409. + +Onatski, A., 2010. Determining the Number of Factors from Empirical + Distribution of Eigenvalues. Review of Economics and Statistics, + 92(4), pp.1004-1016. + +Park, B.U. et al., 2009. Time Series Modelling With Semiparametric + Factor Dynamics. Journal of the American Statistical Association, + 104(485), pp.284-298. + + + +other factor algorithm +~~~~~~~~~~~~~~~~~~~~~~ +PLS should fit in reasonably well. + +Bai/Ng have a recent paper, where they compare LASSO, PCA, and similar, individual +and in combination. +Check how much we can use scikits.learn for this. + + +miscellaneous +~~~~~~~~~~~~~ +Time series modeling of factors for prediction, ARMA, VARMA. +SUR and correlation structure +What about sandwich estimation, robust covariance matrices? +Similarity to Factor-Garch and Go-Garch +Updating: incremental PCA, ...? + + +TODO next +========= +MVOLS : OLS with multivariate endogenous and identical exogenous variables. + rewrite and expand current varma_process.VAR +PCA : write a class after all, and/or adjust the current donated class + and keep adding required statistics, e.g. + residual variance, projection of X on k-factors, ... updating ? +FactorModelUnivariate : started, does basic principal component regression, + based on standard information criteria, not Bai/Ng adjusted +FactorModelMultivariate : follow pattern for univariate version and use + MVOLS + + + + + + +''' diff --git a/statsmodels/stats/tests/gen_contingency_table_tests.R b/statsmodels/stats/tests/gen_contingency_table_tests.R new file mode 100644 index 0000000..af7e27a --- /dev/null +++ b/statsmodels/stats/tests/gen_contingency_table_tests.R @@ -0,0 +1,74 @@ +library(coin) +library(exact2x2) + +tables = list() + +tables[[1]] = matrix(c(23, 15, 19, 31), ncol=2, byrow=TRUE) + +tables[[2]] = matrix(c(144, 33, 84, 126, + 2, 4, 14, 29, + 0, 2, 6, 25, + 0, 0, 1, 5), ncol=4, byrow=TRUE) + +tables[[3]] = matrix(c(20, 10, 5, + 3, 30, 15, + 0, 5, 40), + ncol=3, byrow=TRUE) + +results = array(0, c(length(tables), 17)) + +for (k in 1:3) { + + table = as.table(tables[[k]]) + names(attributes(table)$dimnames) = c("x", "y") + + # Nominal homogeneity test with chi^2 reference + rslt = mh_test(table) + results[k, 1] = rslt@statistic@teststatistic + results[k, 2] = rslt@statistic@df + + # Nominal homogeneity test with binomial reference + if (prod(dim(table)) == 4) { + rslt = mcnemar.exact(table) + results[k, 3] = rslt$p.value + } + + # Nominal homogeneity test with continuity correction + if (prod(dim(table)) == 4) { + rslt = mcnemar.test(table) + results[k, 4] = rslt$p.value + } + + # Linear-by-linear homogeneity test with linear weights + scores = list(x=seq(dim(table)[1]), y=seq(dim(table)[2])) + rslt = lbl_test(table, scores=scores) + results[k, 5] = rslt@statistic@linearstatistic + results[k, 6] = rslt@statistic@expectation + results[k, 7] = rslt@statistic@covariance@variance + results[k, 8] = rslt@statistic@teststatistic + results[k, 9] = rslt@distribution@pvalue(rslt@statistic@teststatistic) + + # Linear-by-linear homogeneity test with quadratic column weights + scores = list(x=seq(dim(table)[1]), y=seq(dim(table)[2])^2) + rslt = lbl_test(table, scores=scores) + results[k, 10] = rslt@statistic@linearstatistic + results[k, 11] = rslt@statistic@expectation + results[k, 12] = rslt@statistic@covariance@variance + results[k, 13] = rslt@statistic@teststatistic + results[k, 14] = rslt@distribution@pvalue(rslt@statistic@teststatistic) + + # Bowker symmetry test (apparently mcnemar.test performs a + # symmetry test when dim>2 although this is not documented). + rslt = mcnemar.test(table, correct=FALSE) + results[k, 15] = rslt$statistic + results[k, 16] = rslt$parameter[1] + results[k, 17] = rslt$p.value +} + +colnames(results) = c("homog_stat", "homog_df", "homog_binom_p", + "homog_cont_p", "lbl_stat", "lbl_expval", "lbl_var", + "lbl_chi2", "lbl_pvalue", "lbl2_stat", "lbl2_expval", + "lbl2_var", "lbl2_chi2", "lbl2_pvalue", "bowker_stat", + "bowker_df", "bowker_pvalue") + +write.csv(results, file="contingency_table_r_results.csv", row.names=FALSE) diff --git a/statsmodels/stats/tests/results/__init__.py b/statsmodels/stats/tests/results/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/stats/tests/results/anova.R b/statsmodels/stats/tests/results/anova.R new file mode 100644 index 0000000..f1fa519 --- /dev/null +++ b/statsmodels/stats/tests/results/anova.R @@ -0,0 +1,92 @@ +dta <- read.table('data.dat', header=TRUE) +dta$Duration <- factor(dta$Duration) +dta$Weight <- factor(dta$Weight) +dta$logDays <- log(dta$Days + 1) # Use log days to "stabilize" variance + +attach(dta) +library(car) +source('/home/skipper/statsmodels/statsmodels/tools/topy.R') + +sum.lm = lm(logDays ~ Duration * Weight, contrasts=list(Duration=contr.sum, + Weight=contr.sum)) + +anova.lm.sum <- anova(sum.lm) + +for(name in names(anova.lm.sum)) { + mkarray2(anova.lm.sum[[name]], name, TRUE) + }; cat("\n") + +anova.lm.interaction <- anova(lm(logDays ~ Duration + Weight), sum.lm) + +for(name in names(anova.lm.interaction)) { + mkarray2(anova.lm.interaction[[name]], name, TRUE) + }; cat("\n") + +anova.lm.variable <- anova(lm(logDays ~ Duration), lm(logDays ~ Duration + Weight)) + +anova.lm.variable2 <- anova(lm(logDays ~ Weight), lm(logDays ~ Duration + Weight)) + +anova.i <- anova(sum.lm) +anova.ii <- Anova(sum.lm, type='II') +anova.iii <- Anova(sum.lm, type='III') + +nosum.lm = lm(logDays ~ Duration * Weight, contrasts=list(Duration=contr.treatment, Weight=contr.treatment)) + +anova.i.nosum <- anova(nosum.lm) +anova.ii.nosum <- Anova(nosum.lm, type='II') +anova.iii.nosum <- Anova(nosum.lm, type='III') + +dta.dropped <- dta[4:60, ] +sum.lm.dropped <- lm(logDays ~ Duration * Weight, dta.dropped, + contrasts=list(Duration=contr.sum, Weight=contr.sum)) + +anova.i.dropped <- anova(sum.lm.dropped) +anova.ii.dropped <- Anova(sum.lm.dropped, type='II') +anova.iii.dropped <- Anova(sum.lm.dropped, type='III') + +for(name in names(anova.ii.dropped)) { + mkarray2(anova.ii.dropped[[name]], name, TRUE) + }; cat("\n") + +for(name in names(anova.iii.dropped)) { + mkarray2(anova.iii.dropped[[name]], name, TRUE) + }; cat("\n") + +anova.iii.dropped <- Anova(sum.lm.dropped, white="hc0", type='III') +for(name in names(anova.iii.dropped)) { + mkarray2(anova.iii.dropped[[name]], name, TRUE) + }; cat("\n") +anova.iii.dropped <- Anova(sum.lm.dropped, white="hc1", type='III') +for(name in names(anova.iii.dropped)) { + mkarray2(anova.iii.dropped[[name]], name, TRUE) + }; cat("\n") +anova.iii.dropped <- Anova(sum.lm.dropped, white="hc2", type='III') +for(name in names(anova.iii.dropped)) { + mkarray2(anova.iii.dropped[[name]], name, TRUE) + }; cat("\n") +anova.iii.dropped <- Anova(sum.lm.dropped, white="hc3", type='III') +for(name in names(anova.iii.dropped)) { + mkarray2(anova.iii.dropped[[name]], name, TRUE) + }; cat("\n") + + +anova.ii.dropped <- Anova(sum.lm.dropped, type='II', white="hc0") +for(name in names(anova.ii.dropped)) { + mkarray2(anova.ii.dropped[[name]], name, TRUE) + }; cat("\n") + +anova.ii.dropped <- Anova(sum.lm.dropped, type='II', white="hc1") +for(name in names(anova.ii.dropped)) { + mkarray2(anova.ii.dropped[[name]], name, TRUE) + }; cat("\n") + +anova.ii.dropped <- Anova(sum.lm.dropped, type='II', white="hc2") +for(name in names(anova.ii.dropped)) { + mkarray2(anova.ii.dropped[[name]], name, TRUE) + }; cat("\n") + +anova.ii.dropped <- Anova(sum.lm.dropped, type='II', white="hc3") +for(name in names(anova.ii.dropped)) { + mkarray2(anova.ii.dropped[[name]], name, TRUE) + }; cat("\n") + diff --git a/statsmodels/stats/tests/results/bootleg.csv b/statsmodels/stats/tests/results/bootleg.csv new file mode 100644 index 0000000..7007c11 --- /dev/null +++ b/statsmodels/stats/tests/results/bootleg.csv @@ -0,0 +1,9265 @@ +0.950300,2,4.43400,3.787121 +0.613586,75,149.1170,4.974391 +0.8372366,53,501.2317,5.193843 +0.9023396,58,546.2543,5.495572 +0.9061918,96,424.4232,5.856011 +0.7911643,8,200.5667,3.511362 +0.5360133,7,806.1763,2.722873 +0.6327574,56,56.17163,4.84627 +0.7634097,28,996.1946,4.506239 +0.5940891,78,56.14756,5.015406 +0.7991432,12,157.4574,3.92541 +0.6599134,72,944.1173,4.99709 +0.6845088,98,268.675,5.280095 +0.6883003,80,632.1445,5.128627 +0.787793,90,178.9085,5.466432 +0.5937039,11,637.886,3.312434 +0.6812908,31,477.9169,4.407207 +0.6260902,30,145.0597,4.289132 +0.5198778,20,172.1525,3.732414 +0.551296,21,539.7639,3.826797 +0.9473277,43,364.0211,5.573688 +0.6470059,32,446.2837,4.363963 +0.7304492,69,854.5265,5.104756 +0.8461879,49,341.8976,5.17709 +0.6998816,32,420.9467,4.473319 +0.7708307,73,782.7106,5.234264 +0.8517651,65,50.74249,5.601281 +0.7680614,23,782.7298,4.362934 +0.6772532,10,62.75346,3.446085 +0.8061568,53,941.9258,5.094457 +0.535348,87,579.7095,4.927541 +0.7317784,8,760.4088,3.322854 +0.647424,35,973.2097,4.430608 +0.7205917,62,451.4614,5.016029 +0.8310729,46,867.2378,5.064711 +0.7092925,93,252.9435,5.294547 +0.7614025,42,18.29759,5.194786 +0.768294,92,443.8754,5.398033 +0.611393,96,660.7554,5.120007 +0.5584655,9,544.9949,3.037984 +0.5757473,27,207.4046,4.096346 +0.7165018,66,868.694,5.044124 +0.8916566,90,891.3335,5.730434 +0.930496,81,680.2784,5.855139 +0.9493338,21,814.3338,5.058685 +0.8789807,96,958.6534,5.722715 +0.6453387,99,32.75148,5.368509 +0.9432753,88,44.19807,6.429427 +0.7734237,11,481.0691,3.747131 +0.9275644,15,31.61525,4.961554 +0.8814721,68,452.8735,5.521471 +0.5684593,38,359.6916,4.35714 +0.7915564,34,395.8539,4.741082 +0.6212993,97,578.4411,5.14523 +0.786856,89,643.049,5.411403 +0.5872209,30,947.6958,4.193762 +0.863228,58,644.4567,5.336585 +0.6852954,2,650.4337,1.422949 +0.8156778,80,626.9999,5.412793 +0.7758632,40,146.7813,4.857534 +0.6193542,63,757.0062,4.82912 +0.698619,62,144.0496,5.004096 +0.924634,5,682.612,3.647421 +0.6921237,49,433.7529,4.784743 +0.6682577,12,709.6476,3.557659 +0.7406304,98,958.277,5.368286 +0.5085852,22,433.0734,3.789960 +0.8567905,78,869.9651,5.511207 +0.6796293,27,770.1198,4.288455 +0.8970843,7,914.6475,3.798629 +0.8490929,46,340.834,5.141464 +0.609374,71,516.113,4.902681 +0.8709478,20,759.5428,4.57836 +0.720285,94,205.1919,5.332692 +0.7809733,3,290.1928,2.359907 +0.6695694,62,545.2842,4.911675 +0.6835529,2,482.5781,1.418211 +0.8061166,2,952.5813,1.83861 +0.5194726,41,996.1952,4.328192 +0.8214913,51,699.2729,5.113396 +0.7761068,36,304.3256,4.749856 +0.7338799,63,84.29842,5.132537 +0.5905524,53,981.4905,4.648476 +0.9062086,43,145.8958,5.377721 +0.6504464,84,494.4505,5.096346 +0.8689327,93,276.0934,5.706336 +0.5645257,7,580.0792,2.785004 +0.650522,63,428.5393,4.890803 +0.839554,48,209.0835,5.161268 +0.6790368,57,874.8717,4.863635 +0.8461706,95,497.4795,5.621337 +0.9483254,95,113.4526,6.237262 +0.6620466,71,782.7844,4.992363 +0.6950035,72,745.4756,5.064967 +0.6869721,9,119.0430,3.344547 +0.6628797,22,627.2988,4.08501 +0.658888,51,74.652,4.809383 +0.830574,75,794.5755,5.406187 +0.6937293,17,435.4039,3.933864 +0.7577239,24,225.9839,4.390343 +0.7776778,92,830.089,5.408262 +0.764957,95,124.2182,5.472132 +0.9206389,17,727.5881,4.694345 +0.898351,70,950.8781,5.591991 +0.7973998,11,220.2692,3.831447 +0.7214944,95,380.3205,5.322659 +0.9238978,77,787.5278,5.781355 +0.9244872,91,512.0104,5.905293 +0.8909669,68,452.4798,5.559568 +0.7084065,65,626.041,5.02022 +0.6307753,75,215.9268,4.995051 +0.8594055,84,115.6110,5.675496 +0.6989477,97,849.4333,5.279922 +0.5869843,18,815.1642,3.756967 +0.8016823,64,250.8206,5.246913 +0.551895,33,760.6953,4.20931 +0.81746,45,312.4948,5.029417 +0.8709936,16,101.5497,4.468421 +0.937709,65,792.7134,5.753211 +0.7804762,54,582.7179,5.048146 +0.9183745,25,969.7477,4.970277 +0.5937925,3,661.8292,1.812094 +0.6098205,49,786.0637,4.623535 +0.8903852,67,28.15358,6.025434 +0.6488511,78,214.1912,5.057178 +0.7700727,11,126.2421,3.76314 +0.7121162,3,981.2008,2.131666 +0.9040377,61,285.9408,5.56359 +0.8668537,67,443.4215,5.457901 +0.5564086,54,254.5303,4.614918 +0.627594,59,711.7653,4.795566 +0.6236158,61,657.5285,4.813821 +0.7054692,26,43.02735,4.42352 +0.7985678,9,555.6648,3.635557 +0.6175037,12,67.01567,3.478781 +0.6436729,69,202.2135,4.959957 +0.7975962,58,778.9944,5.138275 +0.8657938,40,971.3195,5.077273 +0.6125781,39,258.3901,4.462404 +0.9230684,25,77.91052,5.146124 +0.7718941,5,182.3003,2.958140 +0.7183858,72,772.0861,5.111052 +0.685252,40,419.2469,4.616958 +0.6817711,87,990.548,5.170921 +0.5134425,24,350.7156,3.875863 +0.94244,4,786.998,3.564546 +0.7367939,90,898.815,5.302826 +0.6982901,53,512.9667,4.853358 +0.8511483,81,141.8637,5.598955 +0.7122271,3,821.5797,2.132261 +0.6902148,100,284.2936,5.303542 +0.752643,43,13.40143,5.308534 +0.5762477,9,569.3049,3.075412 +0.7480166,44,857.6439,4.816408 +0.6270913,97,676.256,5.153524 +0.5805739,80,18.0991,5.136321 +0.7211723,72,132.8565,5.167092 +0.5795756,63,76.89864,4.807039 +0.5234776,36,451.4553,4.233053 +0.7375684,80,172.0776,5.265248 +0.8239995,55,480.0646,5.181428 +0.6456712,25,129.3303,4.181064 +0.9413013,18,492.3785,4.887695 +0.6400262,92,689.0314,5.138445 +0.6229059,57,874.2567,4.760222 +0.7065448,88,183.0431,5.262541 +0.6663917,13,565.7418,3.629029 +0.9066384,27,931.4407,4.964972 +0.8259662,60,730.302,5.240379 +0.509955,83,559.9251,4.853519 +0.6687699,6,160.4952,2.867927 +0.9091107,22,363.1985,4.843181 +0.5648102,29,715.7917,4.126072 +0.6017205,67,510.1983,4.847094 +0.7983275,36,631.9508,4.794933 +0.6861993,33,619.5893,4.46455 +0.5205803,3,373.5958,1.636966 +0.941117,7,165.7246,4.136368 +0.5513367,39,537.9881,4.344938 +0.7491319,33,712.8302,4.602413 +0.6254723,36,240.1404,4.424605 +0.8193866,70,553.8917,5.333919 +0.5924001,50,346.2979,4.615012 +0.5575877,27,865.5236,4.052604 +0.5018944,78,13.42953,4.940013 +0.6858643,54,573.8197,4.840953 +0.7754497,98,760.7202,5.447041 +0.9309805,15,106.4171,4.749156 +0.7597726,5,164.1182,2.92082 +0.8578071,63,712.2652,5.373159 +0.911167,28,868.7552,5.015934 +0.5224571,94,120.4146,4.983536 +0.6644315,34,415.3146,4.447791 +0.5462101,7,624.7674,2.745171 +0.7798522,66,174.2775,5.229032 +0.569931,57,455.0914,4.67309 +0.8878053,56,651.2573,5.404565 +0.7848387,81,320.6422,5.359167 +0.5205078,17,452.1213,3.580051 +0.5922637,73,327.3382,4.898999 +0.5512022,47,533.1254,4.49198 +0.6539785,40,392.5646,4.555385 +0.9167344,99,214.5807,5.970447 +0.9447369,70,653.8565,5.854829 +0.5827263,45,704.0173,4.510883 +0.7946362,93,162.5867,5.513278 +0.5436138,22,855.6748,3.851738 +0.755334,35,556.5636,4.665327 +0.9268,54,869.746,5.561617 +0.6648528,47,433.7503,4.699148 +0.7485304,40,104.7193,4.806957 +0.5944208,40,929.1871,4.438083 +0.63304,45,547.4467,4.603049 +0.9118431,61,722.6399,5.567566 +0.720652,41,136.0821,4.743472 +0.6774275,99,188.8005,5.285412 +0.831584,82,642.8835,5.473357 +0.5817278,35,948.0573,4.309129 +0.6321327,22,784.3597,4.020958 +0.5431548,6,33.4411,2.598251 +0.8314369,16,942.1906,4.250072 +0.5546019,19,383.3337,3.746123 +0.6336268,3,975.2953,1.913129 +0.6703074,56,212.3536,4.855753 +0.5791341,44,55.41561,4.543996 +0.832449,19,179.6793,4.428198 +0.7833847,6,281.2441,3.188186 +0.5525693,6,92.11777,2.598153 +0.7141683,7,921.7208,3.139066 +0.7843614,9,264.1729,3.599121 +0.606754,87,726.8536,5.041784 +0.6120415,55,113.5644,4.749394 +0.9244803,99,99.19521,6.1186 +0.7773096,72,404.2429,5.252044 +0.7321032,86,700.6788,5.264721 +0.6722015,41,789.2637,4.603417 +0.7958672,62,244.6047,5.209776 +0.8295918,10,6.976075,4.622355 +0.5160006,84,417.1381,4.873595 +0.6063104,73,665.1216,4.915447 +0.830313,83,11.62979,6.405052 +0.8513132,3,935.2863,2.641412 +0.9099108,3,417.3052,2.976535 +0.605142,74,990.551,4.920812 +0.7359311,83,209.5253,5.278422 +0.8584674,99,694.433,5.678823 +0.7176196,55,310.9431,4.929912 +0.5039214,7,637.0151,2.655203 +0.6650235,7,252.5402,3.020462 +0.7516747,70,917.9605,5.159777 +0.6465379,20,966.2776,3.967723 +0.6117417,88,75.03909,5.120178 +0.864727,75,289.4869,5.544036 +0.5883802,42,988.5053,4.465431 +0.6207718,23,879.597,4.03577 +0.6597833,68,606.3898,4.959428 +0.5598158,21,627.1537,3.842139 +0.8209666,67,874.9125,5.300291 +0.754866,31,387.6171,4.575651 +0.5617583,19,723.7774,3.756965 +0.9393174,42,25.75119,6.090044 +0.7692625,64,621.2697,5.141441 +0.830146,95,408.8041,5.579854 +0.5445154,48,780.368,4.495197 +0.6460441,59,973.451,4.826685 +0.7571193,45,550.3283,4.859351 +0.6482274,10,910.6333,3.336849 +0.6453257,21,545.4061,4.010011 +0.944077,78,659.1318,5.919355 +0.8283513,63,232.6015,5.315383 +0.6238383,11,967.5066,3.375429 +0.920555,46,867.953,5.417839 +0.6191617,46,776.0902,4.591981 +0.7967018,6,238.7104,3.234803 +0.5562811,39,286.7352,4.35847 +0.8249085,18,661.9321,4.329062 +0.7856145,93,373.0646,5.451036 +0.8761004,93,841.654,5.69398 +0.5903102,88,126.7508,5.053856 +0.562227,36,81.24771,4.330475 +0.8585568,35,110.9485,5.03868 +0.658002,20,873.0264,3.991925 +0.9010046,10,545.304,4.148382 +0.8207666,30,220.0453,4.746643 +0.6796628,32,559.4068,4.427563 +0.8855762,26,447.3963,4.851362 +0.7611639,21,45.28665,4.390651 +0.7989508,51,821.7299,5.04934 +0.5588384,4,680.0978,2.114002 +0.7111297,6,488.6605,2.970037 +0.9003013,54,250.8912,5.46936 +0.8809515,64,917.479,5.462105 +0.6448157,6,759.0248,2.799152 +0.7000096,37,44.38138,4.700476 +0.6277596,84,826.4453,5.051443 +0.7988169,74,951.265,5.309046 +0.9424629,74,662.1041,5.874126 +0.866492,13,842.4465,4.206892 +0.7708649,62,183.6289,5.158482 +0.80865,86,481.3468,5.449073 +0.5991751,43,384.7992,4.509275 +0.6546014,67,499.3364,4.941333 +0.7256747,90,25.19916,5.582922 +0.6444263,84,142.5535,5.116413 +0.8193781,12,485.8926,3.968518 +0.547869,51,404.5397,4.551553 +0.7970432,38,154.9913,4.873851 +0.7669612,19,557.0404,4.206081 +0.8033985,57,968.377,5.138517 +0.894136,13,536.4957,4.337067 +0.7043946,38,739.0528,4.61108 +0.7234408,68,913.6276,5.079187 +0.622099,91,584.9706,5.101498 +0.7255545,27,418.1564,4.395093 +0.738156,19,58.73154,4.209344 +0.6241422,12,365.6692,3.463702 +0.5562845,19,350.9198,3.749867 +0.7281854,18,287.1144,4.070209 +0.5441473,59,121.4531,4.674919 +0.8905086,2,729.1572,2.266193 +0.8592729,21,186.6340,4.60649 +0.7442184,57,795.9408,4.998402 +0.7555524,76,809.0712,5.227268 +0.877916,38,349.5582,5.107913 +0.5961259,95,272.5336,5.098577 +0.5287142,89,965.3442,4.931151 +0.7706853,29,189.9224,4.581958 +0.6129344,78,816.0259,4.973186 +0.6940203,55,531.936,4.871643 +0.803978,85,113.2280,5.506545 +0.6513668,25,526.0979,4.16961 +0.7241574,24,810.4252,4.289929 +0.8009436,45,635.4232,4.967361 +0.6470061,54,599.8603,4.766273 +0.7905274,64,819.1808,5.189099 +0.8141194,57,112.7480,5.249975 +0.720669,93,890.1649,5.292697 +0.614216,4,26.84620,2.288507 +0.5201955,22,549.9339,3.810220 +0.7562491,23,75.20277,4.404095 +0.571583,2,591.1712,1.120692 +0.59512,24,925.6549,4.022300 +0.8498783,51,746.2723,5.199169 +0.720653,78,121.3126,5.229377 +0.8377182,30,618.6129,4.774599 +0.762667,56,190.1399,5.062476 +0.6654569,8,794.2568,3.154298 +0.8495638,39,68.62068,5.144765 +0.8259046,98,385.4926,5.590565 +0.8993462,79,421.6472,5.698037 +0.6378225,65,660.0563,4.88584 +0.7901517,41,131.5250,4.921998 +0.7735304,58,618.8744,5.081568 +0.6989816,14,925.2804,3.769055 +0.9247961,57,654.44,5.592775 +0.6678873,93,282.5398,5.210545 +0.7042879,9,3.896124,4.158098 +0.9381184,66,860.4778,5.763955 +0.7818833,6,78.19807,3.212809 +0.736335,99,79.06835,5.473526 +0.8725626,54,313.8057,5.342032 +0.8541985,68,528.8019,5.419967 +0.6945799,38,362.9406,4.598808 +0.6583852,51,933.405,4.741364 +0.9193304,23,292.4528,4.942313 +0.6527448,47,170.3905,4.694595 +0.6754736,48,306.507,4.741562 +0.5866164,62,608.678,4.762358 +0.8885043,92,137.4909,5.833394 +0.5866438,56,51.31247,4.754496 +0.6316082,56,327.2022,4.772503 +0.5772445,42,369.953,4.451939 +0.6347414,69,600.227,4.924792 +0.8806151,58,225.7173,5.440272 +0.6856101,98,415.3002,5.271872 +0.6636807,38,29.98377,4.680520 +0.5607791,7,385.8438,2.778012 +0.8966284,69,454.385,5.59322 +0.7196528,5,498.2873,2.791415 +0.643225,6,481.3396,2.796659 +0.7213205,36,550.7978,4.608818 +0.592653,34,996.0012,4.305271 +0.6135537,26,494.7108,4.127973 +0.8180465,5,587.1134,3.108012 +0.925586,34,608.966,5.243092 +0.712478,75,373.8838,5.139195 +0.8216724,78,524.4142,5.415784 +0.5777971,21,464.5309,3.877573 +0.7139551,73,652.4754,5.113785 +0.7583686,100,864.008,5.420804 +0.8995945,37,254.1523,5.196644 +0.6556193,50,675.7596,4.723593 +0.7279657,66,13.24369,5.578575 +0.7057946,67,68.34087,5.130584 +0.7979024,86,781.665,5.412042 +0.9401606,51,916.6018,5.606526 +0.6162031,43,280.8828,4.544513 +0.6506508,76,152.7170,5.053203 +0.9455006,37,84.7852,5.604932 +0.8825633,98,499.5796,5.765177 +0.7146368,73,172.6922,5.149105 +0.643779,66,744.6761,4.906691 +0.9246844,91,656.3491,5.897993 +0.6049427,97,825.6836,5.114873 +0.5431938,26,882.958,3.994681 +0.8126032,69,46.41403,5.517239 +0.7602118,7,182.2327,3.282168 +0.6820787,80,35.74084,5.289847 +0.7242503,71,633.399,5.115542 +0.762124,52,96.81844,5.048513 +0.5761674,27,795.3923,4.086751 +0.7674945,87,355.5641,5.363731 +0.6893945,89,848.0137,5.202317 +0.8342704,10,681.8076,3.853672 +0.9307401,34,270.5869,5.305084 +0.6917751,39,822.0006,4.604009 +0.7267107,23,680.2972,4.262292 +0.6354322,62,181.5393,4.868494 +0.7580115,57,501.0876,5.03591 +0.6178196,55,128.1938,4.756006 +0.6396423,44,624.3828,4.596975 +0.7626689,42,438.5162,4.824863 +0.5867045,63,103.1721,4.807943 +0.8525572,83,884.146,5.538926 +0.5375346,27,843.32,4.016654 +0.938737,8,476.519,4.204282 +0.8598953,30,895.0064,4.845791 +0.618619,26,310.2046,4.142067 +0.751289,85,971.0602,5.293395 +0.6007665,85,280.1201,5.02653 +0.8931311,96,661.1837,5.784881 +0.9477872,55,349.5601,5.745697 +0.8263472,25,868.1811,4.593935 +0.8971962,28,813.1129,4.94798 +0.917756,88,391.7887,5.859333 +0.5736361,12,298.5713,3.358818 +0.5923442,20,777.4425,3.860573 +0.9331808,56,926.266,5.622917 +0.5385511,27,131.7780,4.033215 +0.709832,64,184.5100,5.040587 +0.9305012,44,455.3916,5.46184 +0.7267914,59,697.8118,4.987088 +0.6695136,8,20.46508,3.278592 +0.636107,14,417.5571,3.632827 +0.662663,31,216.0035,4.380913 +0.6268085,67,388.1516,4.894231 +0.8478138,40,927.3398,5.015686 +0.8939183,49,127.1164,5.425592 +0.8187445,56,58.74734,5.334734 +0.6800727,54,652.806,4.828237 +0.7508679,55,478.8554,4.994428 +0.5247278,90,108.2003,4.958619 +0.5126827,83,367.0263,4.860525 +0.9360829,43,793.5388,5.466748 +0.5427037,17,355.0012,3.623390 +0.6746653,7,93.02982,3.059764 +0.6865374,83,642.7987,5.15102 +0.7966882,75,784.4196,5.31541 +0.9464101,14,331.0489,4.746153 +0.8584512,13,404.4904,4.183346 +0.8647911,39,852.2727,5.05704 +0.6417288,7,478.1858,2.960385 +0.8371056,85,444.343,5.522884 +0.8774682,24,836.418,4.745429 +0.7276132,95,91.43983,5.408513 +0.681911,83,834.1965,5.139621 +0.8320037,7,698.0064,3.507781 +0.7311164,15,910.4249,3.908022 +0.5453493,29,846.9758,4.090611 +0.5034893,15,962.7001,3.429684 +0.7765618,78,78.25059,5.408551 +0.6889326,30,700.1291,4.393576 +0.6663355,7,650.8927,3.018401 +0.903647,71,181.4400,5.697455 +0.8294555,53,483.8067,5.171024 +0.6864851,47,77.10473,4.805211 +0.8332093,64,638.4873,5.308758 +0.6178623,91,609.0503,5.093896 +0.9483832,42,134.5668,5.648304 +0.601083,21,988.283,3.919131 +0.8363535,13,264.5484,4.108176 +0.6232332,60,379.2178,4.806633 +0.6716989,82,134.4818,5.155346 +0.7271332,63,619.8103,5.036546 +0.716362,89,574.5563,5.25926 +0.7035438,46,185.5708,4.780743 +0.9094733,58,800.8275,5.519981 +0.7970491,86,899.1467,5.407964 +0.6710653,59,324.7219,4.885989 +0.7732243,82,267.0323,5.345934 +0.7177664,52,252.1324,4.894166 +0.5975854,54,403.198,4.68114 +0.7574227,82,848.186,5.283512 +0.61548,57,185.7698,4.767464 +0.856129,63,357.1877,5.385709 +0.7315266,85,348.6383,5.268519 +0.6396882,61,36.83948,4.971445 +0.8693308,81,553.7231,5.588287 +0.5279291,8,565.4334,2.850686 +0.653696,18,983.7102,3.891188 +0.5345938,27,865.7832,4.011338 +0.7072539,48,209.3058,4.817037 +0.9119935,63,136.3686,5.686828 +0.612377,99,792.52,5.141792 +0.9320222,42,279.1492,5.46138 +0.518647,98,812.767,4.985492 +0.8503986,49,813.2923,5.171308 +0.7017593,2,926.9244,1.471911 +0.928796,74,201.9075,5.851777 +0.572696,27,46.75606,4.135588 +0.7032733,46,360.8426,4.763264 +0.8491637,25,595.2798,4.674148 +0.7662437,46,696.0155,4.894196 +0.7282377,14,297.2000,3.849405 +0.875547,99,203.8363,5.792346 +0.8080239,83,931.4812,5.411267 +0.6885786,33,956.5435,4.466412 +0.7831086,97,837.6102,5.456536 +0.9459541,43,198.5099,5.60273 +0.5396256,39,300.1694,4.328677 +0.8436808,63,945.8707,5.323334 +0.6760259,83,752.4728,5.129654 +0.794726,30,289.6138,4.660757 +0.8699908,10,465.4956,3.999971 +0.6201105,11,823.6584,3.367809 +0.8532556,19,316.4788,4.484371 +0.8204,6,290.9876,3.316586 +0.8684488,30,453.036,4.888899 +0.9351581,85,438.0463,5.930551 +0.5873355,44,787.4419,4.500897 +0.5668142,2,706.7757,1.109026 +0.8327513,38,482.0475,4.940103 +0.8554855,59,795.2226,5.318344 +0.7925683,78,596.6343,5.336552 +0.8354968,58,736.0778,5.244615 +0.7509,85,198.9852,5.331186 +0.6546461,93,239.3210,5.190297 +0.5231616,72,35.3501,4.838751 +0.7953823,61,991.2709,5.165394 +0.6118757,13,108.9576,3.529129 +0.6601847,18,911.6591,3.905212 +0.6335368,63,919.9916,4.852865 +0.5913542,54,335.8841,4.672278 +0.7957373,32,452.8137,4.703563 +0.8788325,82,823.1708,5.62168 +0.6757324,48,310.3905,4.741838 +0.9181646,61,518.8919,5.608716 +0.650593,63,345.7281,4.894228 +0.688562,76,536.1067,5.094923 +0.7157119,65,283.2976,5.050122 +0.8862314,20,402.8624,4.654271 +0.7751035,59,526.9975,5.100229 +0.852668,40,456.2137,5.044085 +0.6919508,13,305.6826,3.693041 +0.9479584,79,364.8523,5.981857 +0.531493,27,907.4513,4.0057 +0.8479793,87,212.9312,5.605534 +0.9373602,77,881.6762,5.858075 +0.794942,84,288.0566,5.413612 +0.7529769,8,974.1157,3.380804 +0.8806292,10,838.2374,4.041734 +0.9071702,71,976.974,5.640227 +0.5128439,84,113.3925,4.886223 +0.508224,97,353.1583,4.966884 +0.6519604,55,435.3711,4.792745 +0.5119386,85,606.7859,4.873612 +0.9132375,11,377.7748,4.306664 +0.6261143,28,92.34715,4.246723 +0.5091433,83,896.1872,4.850326 +0.7412793,27,978.2313,4.423764 +0.8408322,7,227.3483,3.555352 +0.7672435,9,520.7616,3.540014 +0.5301034,3,137.9902,1.662143 +0.6913752,99,368.8408,5.292307 +0.5038832,80,961.1678,4.814971 +0.6810352,58,798.4374,4.880977 +0.912606,95,39.98357,6.282317 +0.8752428,87,634.5903,5.653246 +0.5952158,2,215.9915,1.180506 +0.7718479,48,745.4419,4.938152 +0.6458358,11,277.5476,3.430429 +0.5988926,47,477.9302,4.575699 +0.8380053,85,626.8053,5.516798 +0.7103821,69,536.2279,5.069106 +0.8866979,37,457.5733,5.116669 +0.7517034,20,398.4081,4.213259 +0.9147898,46,560.4219,5.396691 +0.9484228,17,738.7124,4.894374 +0.8846891,40,963.2052,5.150066 +0.9426123,27,772.5522,5.187897 +0.8692356,26,67.72579,4.906808 +0.8589243,45,178.4913,5.190465 +0.7328168,62,788.4979,5.034291 +0.623517,64,359.9294,4.855704 +0.8780984,91,355.0138,5.712913 +0.77191,38,768.8696,4.764597 +0.6181754,100,993.8187,5.156927 +0.8559087,43,211.7474,5.136296 +0.5625674,51,284.2133,4.580255 +0.7974567,4,236.5961,2.785214 +0.8577004,44,559.3555,5.12577 +0.9458263,71,286.2064,5.911821 +0.7599092,84,920.8071,5.304669 +0.7314819,15,749.6491,3.909982 +0.7849763,59,195.8903,5.155483 +0.6070717,33,678.3757,4.309346 +0.5852736,62,260.5681,4.769412 +0.6049603,85,602.8164,5.023711 +0.7056618,14,68.68933,3.836551 +0.7184723,93,2.506099,7.900124 +0.907464,25,868.7431,4.912952 +0.8818385,76,441.2289,5.598673 +0.904677,35,205.0632,5.193281 +0.8232554,27,47.38136,4.807151 +0.9188763,93,90.43636,6.059958 +0.6166306,48,24.47130,4.779987 +0.8503245,59,652.8947,5.304897 +0.8644836,93,696.1033,5.657553 +0.7398192,73,382.7746,5.177192 +0.5050311,88,83.43626,4.91444 +0.8900678,93,351.7667,5.774332 +0.7577198,5,355.05,2.906072 +0.5459648,5,673.3102,2.360118 +0.7315915,52,154.3075,4.943453 +0.7092939,43,819.5333,4.714818 +0.7618465,85,876.8257,5.317655 +0.7262858,83,700.0127,5.228118 +0.7737173,91,178.424,5.438783 +0.6358564,78,102.2227,5.061739 +0.6601463,78,880.9956,5.055251 +0.8248714,64,240.081,5.314529 +0.7785174,87,770.9972,5.373263 +0.8429175,76,725.753,5.453214 +0.5951001,72,385.1136,4.891615 +0.891007,96,479.0816,5.786144 +0.7736853,89,857.986,5.376108 +0.918299,100,390.0396,5.944879 +0.7906417,9,287.6082,3.617527 +0.6402875,74,647.4198,4.984587 +0.7765883,93,620.9507,5.417569 +0.6578024,10,85.02536,3.386581 +0.5627766,31,309.6647,4.18284 +0.6243535,79,396.6058,5.009259 +0.6200636,53,208.0446,4.718187 +0.7096096,74,775.759,5.112731 +0.83082,79,246.7897,5.477539 +0.8123965,6,153.8754,3.298421 +0.8382691,12,142.3883,4.064761 +0.705515,61,282.4126,4.982704 +0.7580165,37,324.4754,4.723757 +0.9096753,83,169.1843,5.839802 +0.949019,20,64.8373,5.213973 +0.8169494,70,896.4021,5.319118 +0.7710959,10,770.646,3.648601 +0.8901521,6,442.8634,3.61866 +0.5415315,33,652.749,4.191687 +0.5416192,18,662.6916,3.670651 +0.7902908,48,447.7559,4.992453 +0.5299773,43,16.22008,4.520329 +0.9289499,30,225.6202,5.213176 +0.8344856,14,91.72327,4.211774 +0.5235518,40,394.8788,4.319086 +0.8744765,40,442.6723,5.12431 +0.9026988,5,750.8111,3.500929 +0.5675176,40,151.6294,4.408606 +0.6096033,63,605.3651,4.813785 +0.5135856,71,670.9206,4.743154 +0.5918367,76,814.6443,4.918962 +0.6342168,53,534.5466,4.729815 +0.5325372,99,960.3788,5.013452 +0.741656,65,78.99525,5.181359 +0.6935803,36,51.64724,4.645036 +0.8542952,10,48.5374,4.044326 +0.7463491,12,615.9147,3.749647 +0.6943899,78,260.7352,5.139563 +0.889562,12,398.4491,4.25206 +0.8491757,82,60.51142,5.723753 +0.8016692,83,7.73509,6.604698 +0.8924879,21,262.3629,4.734577 +0.7525104,80,107.3612,5.331661 +0.7081317,21,92.81737,4.187879 +0.8065809,43,210.9749,4.979122 +0.5169801,35,395.1261,4.199522 +0.6757979,76,910.9608,5.065197 +0.7677337,77,365.431,5.278845 +0.8090006,93,842.7086,5.491836 +0.7051984,38,488.1513,4.617047 +0.7468627,45,45.37075,4.982465 +0.5568271,45,484.7282,4.468249 +0.7837019,32,851.0998,4.663072 +0.7612952,32,479.0075,4.612813 +0.733612,91,72.76688,5.415899 +0.8864325,62,547.5789,5.472746 +0.7578537,40,421.5965,4.777266 +0.6717871,60,709.5815,4.889155 +0.6287574,52,620.978,4.704199 +0.6445166,78,400.8385,5.035814 +0.8931823,45,485.385,5.282556 +0.7727532,28,379.5074,4.541311 +0.5352619,2,212.1915,1.035757 +0.7081157,3,139.0256,2.127859 +0.6033971,22,594.7747,3.965754 +0.9075128,51,414.4177,5.440742 +0.8494736,76,149.5367,5.544112 +0.7879249,79,855.974,5.328293 +0.5783671,12,636.4271,3.365007 +0.7535224,48,537.166,4.899041 +0.716179,45,136.7055,4.804574 +0.7744747,97,885.4469,5.435816 +0.841277,85,245.2894,5.559938 +0.544991,50,880.931,4.527181 +0.9347753,97,101.0668,6.16939 +0.7641154,88,752.9195,5.348427 +0.6819447,17,322.7949,3.910315 +0.8632081,52,916.537,5.254725 +0.868709,64,376.5412,5.438657 +0.7571078,21,676.9291,4.261664 +0.6838573,59,341.2879,4.910124 +0.8295345,17,71.70596,4.383508 +0.8079979,57,160.2103,5.204845 +0.8102735,76,371.9556,5.376022 +0.9184764,54,527.7015,5.527673 +0.6461691,60,121.8660,4.879243 +0.860307,61,699.5002,5.359746 +0.663215,21,508.4091,4.047775 +0.7294957,59,655.0106,4.99358 +0.8406354,61,281.0507,5.321951 +0.5139149,86,262.1952,4.891583 +0.7905041,86,300.4609,5.416914 +0.8456873,14,481.5299,4.194904 +0.5098909,5,19.22275,2.322491 +0.6678912,81,393.9353,5.105909 +0.830644,38,124.9105,4.991291 +0.8262549,83,261.9533,5.495006 +0.6959497,69,655.3541,5.03778 +0.8008555,69,289.2386,5.292137 +0.8117482,100,446.218,5.56089 +0.5293518,81,772.3581,4.864649 +0.6090772,49,221.2100,4.636553 +0.7506375,89,543.5856,5.33163 +0.6183604,77,479.8493,4.977886 +0.7233891,4,568.0821,2.538969 +0.7745052,56,225.0964,5.084653 +0.6148174,56,278.9049,4.744436 +0.5664338,3,26.61995,1.771754 +0.7387753,66,902.254,5.090323 +0.6776956,91,945.66,5.195144 +0.8217946,12,254.1228,3.987356 +0.9459525,96,623.9948,6.065962 +0.8649597,21,641.7817,4.595264 +0.7425515,77,617.3263,5.211645 +0.8400273,16,413.1986,4.289296 +0.6770476,40,220.3779,4.612167 +0.6674166,42,588.7063,4.614908 +0.6428335,10,133.642,3.340386 +0.8646097,77,855.3629,5.528825 +0.5891536,2,14.00990,1.198849 +0.8098053,40,872.5492,4.901222 +0.809758,42,176.2297,4.979482 +0.7928953,70,722.8662,5.259338 +0.797324,31,971.6011,4.6741 +0.5771383,99,69.68891,5.142041 +0.7773082,50,285.3107,5.000541 +0.5495215,54,160.6643,4.61034 +0.7773526,24,561.2561,4.424951 +0.8622123,25,101.0384,4.798824 +0.6110196,60,778.7585,4.778251 +0.7854684,34,708.4522,4.715879 +0.5639518,21,225.5089,3.856821 +0.8967337,96,316.8322,5.82831 +0.6992566,52,999.291,4.834764 +0.614064,23,555.4065,4.024895 +0.6308871,18,159.6431,3.860586 +0.9232963,5,100.3030,3.686886 +0.7375896,41,961.0838,4.738977 +0.8605606,28,672.7911,4.799961 +0.7257157,45,878.2304,4.783404 +0.5813184,27,289.4119,4.102855 +0.7107086,89,267.5164,5.264923 +0.9413629,10,369.3205,4.424309 +0.8740505,68,769.1524,5.480379 +0.6051843,61,386.9700,4.786589 +0.827576,66,678.199,5.312512 +0.900977,31,18.41794,5.674096 +0.7688614,69,257.3158,5.215556 +0.8761198,56,677.8171,5.357956 +0.5646782,6,382.0181,2.615419 +0.518497,3,378.3279,1.632089 +0.582818,59,70.65949,4.767608 +0.8276893,56,107.9941,5.283863 +0.7168767,59,470.4204,4.971592 +0.662991,93,701.3547,5.186381 +0.8005013,43,960.6649,4.927929 +0.5331211,96,445.2623,4.996752 +0.7771595,45,986.4243,4.901005 +0.7080667,37,156.1174,4.628933 +0.9328946,89,677.8293,5.929755 +0.6320658,2,87.63947,1.279896 +0.6080188,65,589.0781,4.83435 +0.6301288,6,705.1481,2.764101 +0.5133827,81,995.4598,4.838737 +0.719066,97,752.0547,5.320292 +0.6186295,22,683.8413,3.994817 +0.8119921,41,708.591,4.928048 +0.5609343,88,10.50586,5.267972 +0.6724697,14,202.2301,3.721339 +0.573703,9,450.9772,3.070775 +0.8628512,57,640.9474,5.323342 +0.868195,94,649.7503,5.678757 +0.6743816,62,90.98017,4.978108 +0.8300029,19,250.6289,4.408213 +0.6457565,46,410.854,4.646782 +0.6287419,57,793.6064,4.771207 +0.9050638,91,883.7435,5.794317 +0.9116619,5,213.3576,3.574827 +0.9284593,16,108.4316,4.781968 +0.6050885,93,391.021,5.09282 +0.7973473,30,814.708,4.650565 +0.5764903,49,359.3575,4.571037 +0.5405271,48,288.3529,4.494993 +0.6495582,79,511.0006,5.050636 +0.6367823,59,822.7776,4.810997 +0.8513049,77,870.4478,5.484962 +0.9267168,35,561.7305,5.272438 +0.8221376,19,437.5601,4.369938 +0.5401428,57,19.55145,4.751766 +0.6786695,16,669.9876,3.843398 +0.6102902,51,332.7534,4.662691 +0.8363006,90,474.4249,5.556992 +0.6663403,99,437.2999,5.242262 +0.8085966,14,251.4224,4.079578 +0.9347172,77,837.7067,5.842615 +0.7344155,54,536.4091,4.942499 +0.9004107,96,208.1096,5.873226 +0.6433048,62,254.7092,4.874714 +0.8065827,89,583.4963,5.462501 +0.5564002,28,326.8198,4.086037 +0.5880839,69,181.2231,4.86122 +0.9407387,28,778.9392,5.199814 +0.9369049,53,886.1674,5.610943 +0.8998097,99,34.78137,6.290163 +0.6223383,90,941.7874,5.090228 +0.7911574,82,281.1704,5.388264 +0.8075953,32,504.956,4.735014 +0.5975587,94,219.1553,5.098065 +0.7839761,62,455.6021,5.160191 +0.5952474,66,666.0851,4.822761 +0.8705345,83,759.6216,5.601404 +0.6809573,45,228.4825,4.710120 +0.6019187,11,386.5556,3.331947 +0.7658947,15,814.1042,3.998861 +0.813091,40,904.633,4.910092 +0.918683,83,480.8551,5.81735 +0.8389258,98,57.99856,5.822399 +0.8472037,79,450.0731,5.503936 +0.8081241,100,215.4546,5.58131 +0.6612245,51,610.5578,4.749989 +0.6165932,26,887.3631,4.130658 +0.596875,9,13.68237,3.251298 +0.8972038,34,965.9676,5.087532 +0.8693963,35,513.7941,5.004048 +0.7674038,73,459.8307,5.235216 +0.5901292,64,250.1572,4.802326 +0.7296133,61,208.4754,5.043975 +0.8878144,91,896.558,5.722354 +0.5677198,38,365.4184,4.355683 +0.7190616,81,515.5016,5.200799 +0.7814752,60,50.94589,5.290408 +0.8198621,34,977.1663,4.808182 +0.6872518,25,721.45,4.242103 +0.5930279,60,325.3461,4.755136 +0.5059111,32,55.22956,4.135281 +0.8121109,76,17.48439,5.939912 +0.7529022,66,799.6337,5.122457 +0.6601005,18,329.2555,3.912098 +0.6066048,10,102.3450,3.263182 +0.8305692,4,528.8944,2.906320 +0.7135519,56,984.7976,4.918357 +0.6207566,9,387.2948,3.173807 +0.8736776,16,980.3776,4.408145 +0.5024343,85,554.2605,4.859215 +0.9368968,98,732.1767,6.012956 +0.7485144,9,525.2917,3.486522 +0.6679124,29,918.2333,4.321213 +0.7410865,33,374.1743,4.591967 +0.890034,22,97.48476,4.824609 +0.6235045,3,163.2022,1.891596 +0.8788184,31,854.3159,4.942984 +0.5733564,37,896.6874,4.339044 +0.5235723,75,313.9326,4.804836 +0.9031916,32,943.1994,5.072061 +0.9249485,3,634.5567,3.085764 +0.7795184,67,493.5099,5.202364 +0.5442364,42,260.3850,4.397356 +0.7538088,62,784.0382,5.080281 +0.8714196,21,519.4405,4.624195 +0.6037611,95,392.9248,5.105584 +0.605645,60,388.6159,4.775016 +0.7262467,62,451.3037,5.027994 +0.7070611,87,613.337,5.224093 +0.7124193,55,764.3051,4.905012 +0.7101894,24,335.7709,4.267068 +0.6363921,82,912.7779,5.048506 +0.5928241,59,575.4637,4.736328 +0.5114741,93,76.76653,4.969051 +0.6220136,86,987.4373,5.057191 +0.7778587,16,566.4055,4.090325 +0.7682783,65,739.0363,5.147656 +0.5197742,14,43.77784,3.428288 +0.80071,35,263.5616,4.799034 +0.848174,59,953.4341,5.291993 +0.6336437,40,504.9083,4.513693 +0.8964462,29,426.0757,4.983478 +0.9333257,71,108.4557,5.932473 +0.7945195,27,445.6889,4.56859 +0.6805711,44,975.6775,4.672505 +0.6033443,84,673.2954,5.011609 +0.6296885,53,838.786,4.718106 +0.5823181,56,649.965,4.678212 +0.5828971,59,375.5552,4.723169 +0.511142,14,841.3459,3.379117 +0.8984646,69,992.3174,5.582221 +0.6265228,50,935.0175,4.667815 +0.8357867,25,882.2828,4.624052 +0.7292072,38,532.7761,4.668328 +0.7758697,47,696.2516,4.9334 +0.7132152,32,841.5131,4.495411 +0.9086833,78,30.63744,6.228538 +0.840099,80,492.2464,5.488013 +0.6170762,97,396.9618,5.142746 +0.704527,39,249.5485,4.647633 +0.5579608,9,817.2322,3.035987 +0.770093,62,954.7968,5.115551 +0.8798565,66,727.0262,5.482889 +0.7694484,46,751.1275,4.901031 +0.7374544,32,581.615,4.553228 +0.8999201,99,999.735,5.823784 +0.8503247,87,92.39913,5.69636 +0.9096688,76,50.36219,6.011044 +0.8427042,4,121.9022,2.976982 +0.7524447,6,660.8017,3.085734 +0.6241854,30,577.2345,4.265333 +0.8464372,99,474.021,5.650894 +0.7979247,35,697.1621,4.771349 +0.6554351,97,127.8194,5.24562 +0.9227335,37,278.5272,5.314402 +0.558691,20,388.7766,3.799387 +0.7875231,58,927.0415,5.110648 +0.8474654,11,318.4969,3.998567 +0.9199452,89,804.1497,5.853293 +0.755178,11,781.259,3.692196 +0.7501978,79,962.4833,5.24055 +0.5877117,66,66.11904,4.866375 +0.6082031,24,295.8402,4.054799 +0.9181698,39,877.5183,5.290326 +0.9190084,52,291.3868,5.529388 +0.908331,53,983.4375,5.449875 +0.7157437,47,555.3253,4.799205 +0.8001084,12,932.2304,3.901024 +0.7591904,99,164.9959,5.466765 +0.8684237,69,677.5477,5.472583 +0.7669572,55,622.1829,5.02765 +0.6282833,69,112.7529,4.951761 +0.8508472,18,856.9338,4.415786 +0.7813152,12,19.93834,4.079094 +0.8131596,67,917.1183,5.278312 +0.5229803,43,226.2008,4.380527 +0.760018,94,554.3343,5.38929 +0.6581901,58,114.3732,4.880992 +0.7050023,6,156.9929,2.963535 +0.6388137,26,345.2279,4.180866 +0.7703802,21,302.4435,4.307283 +0.7719865,73,825.9207,5.236278 +0.647917,91,504.8866,5.148101 +0.6770831,48,72.47072,4.804889 +0.6447003,35,175.7579,4.446625 +0.757191,94,476.659,5.386077 +0.8901368,78,382.6649,5.654444 +0.6815508,93,131.4914,5.266452 +0.5256458,36,822.9934,4.234394 +0.6296011,17,2.528912,4.934265 +0.677469,30,227.9974,4.3843 +0.7770068,41,10.56137,5.51524 +0.5165083,4,88.90173,2.023952 +0.7099214,6,708.6837,2.965266 +0.5776249,27,653.449,4.090242 +0.8385866,70,867.0004,5.381325 +0.653134,58,24.65445,5.028615 +0.5222114,38,940.511,4.271954 +0.52211,12,456.7922,3.253085 +0.8821391,25,431.2503,4.807591 +0.5107624,24,234.9617,3.87355 +0.791372,43,414.8101,4.916052 +0.5539438,31,842.9205,4.161233 +0.5333754,25,497.1534,3.945494 +0.9296186,54,416.9209,5.599508 +0.9344575,72,846.4138,5.797461 +0.7615936,10,617.3528,3.622655 +0.6086307,79,751.1954,4.975634 +0.6602143,34,809.9639,4.433619 +0.6904942,82,678.079,5.149386 +0.8644522,3,242.6071,2.713617 +0.7364714,20,489.1806,4.172711 +0.9352433,59,409.2411,5.695107 +0.8090254,95,529.3272,5.514943 +0.9187024,40,553.3839,5.320665 +0.841718,5,350.1257,3.205612 +0.6405692,52,765.612,4.72416 +0.8836825,33,897.9677,5.008132 +0.7230816,45,914.3267,4.777408 +0.5582674,44,268.5147,4.458432 +0.6244152,33,841.241,4.340628 +0.898817,19,297.5451,4.682202 +0.6923485,67,335.8841,5.020066 +0.8147905,97,528.7302,5.544107 +0.8768643,70,439.8828,5.524466 +0.690254,56,430.0983,4.880391 +0.612166,40,830.4586,4.470533 +0.6082176,75,78.70042,4.992784 +0.7485141,81,814.3725,5.256056 +0.6398987,7,971.5611,2.953990 +0.8322966,81,541.9221,5.470873 +0.7008189,28,314.5543,4.372912 +0.7927534,27,363.9284,4.56741 +0.69938,38,360.3372,4.609066 +0.6438937,97,270.8365,5.19707 +0.7341373,38,96.0892,4.736542 +0.8522399,52,668.3805,5.222469 +0.6801307,19,284.4478,4.004812 +0.831692,24,117.5902,4.639136 +0.9476048,10,240.9065,4.493684 +0.551496,94,993.1748,5.005831 +0.8230653,98,922.7676,5.56258 +0.8699226,40,900.2922,5.093391 +0.6854477,63,963.481,4.948333 +0.8432787,96,923.4997,5.606291 +0.8451935,36,623.6866,4.935431 +0.577007,25,887.985,4.023107 +0.8109441,94,56.21722,5.700043 +0.8529192,29,157.5588,4.845897 +0.817715,65,427.0795,5.283968 +0.7494217,5,122.7565,2.893578 +0.6925452,99,647.7264,5.284948 +0.8609249,36,630.441,4.989459 +0.9247448,93,182.9758,5.989076 +0.5416671,42,787.1045,4.385566 +0.8597668,42,692.5763,5.095625 +0.6654662,58,58.45632,4.942707 +0.9231077,77,432.3362,5.7963 +0.7628278,27,841.1814,4.477327 +0.8122138,17,380.4142,4.248607 +0.8622663,3,760.8548,2.695047 +0.5892135,2,65.48377,1.170696 +0.781671,3,592.567,2.359244 +0.5845937,10,856.3625,3.198467 +0.9229792,35,726.8734,5.244499 +0.8207156,75,72.31391,5.524492 +0.7980214,78,612.9044,5.349749 +0.8412272,11,464.5139,3.968972 +0.7087537,57,490.1565,4.928935 +0.7510459,66,987.4297,5.11618 +0.6339613,70,59.09847,5.014612 +0.7524349,95,349.5906,5.390574 +0.5876294,35,50.53542,4.381489 +0.7986364,13,537.1481,3.971551 +0.8415225,100,344.543,5.653898 +0.6416455,79,734.274,5.032779 +0.9383721,7,402.2937,4.084501 +0.6881057,86,328.5769,5.190362 +0.8396862,77,935.2592,5.448255 +0.932392,48,446.9599,5.534071 +0.8366197,48,323.8904,5.133291 +0.5522438,21,518.9197,3.828737 +0.824058,98,930.1329,5.565161 +0.6301056,95,90.10231,5.200541 +0.5108554,90,370.9280,4.916536 +0.6094796,21,341.6719,3.941419 +0.7173496,44,414.3781,4.757312 +0.5826613,8,428.8542,2.968118 +0.65258,38,239.701,4.520544 +0.6426234,93,185.9158,5.175764 +0.6141543,82,993.7445,5.009928 +0.656938,56,195.7736,4.831684 +0.8172469,30,518.1036,4.713522 +0.6019059,53,676.9374,4.670159 +0.6549961,6,547.4558,2.824931 +0.7232873,17,174.1364,4.019165 +0.7805223,32,50.51764,4.792173 +0.9196643,5,314.0752,3.621295 +0.7813478,83,469.8973,5.356797 +0.6547584,83,195.7537,5.115725 +0.9284674,32,394.5050,5.230222 +0.5197441,14,926.1198,3.395476 +0.6899643,72,802.6675,5.054524 +0.5053075,6,791.7115,2.484155 +0.5424734,15,289.0827,3.508554 +0.7931831,19,435.9833,4.281749 +0.5941135,78,221.3831,4.957422 +0.865215,28,291.7503,4.836752 +0.5424058,3,487.1848,1.687881 +0.7056974,65,740.978,5.012886 +0.9368825,35,14.76310,6.35053 +0.57561,45,291.1745,4.505737 +0.7682693,51,192.9438,5.006944 +0.6337592,36,428.2575,4.432639 +0.8266066,64,115.1584,5.371109 +0.5875868,6,201.9519,2.670309 +0.8789958,31,49.8531,5.149625 +0.7118476,13,884.6736,3.732919 +0.5739909,14,394.6366,3.504593 +0.7322612,47,187.8178,4.860688 +0.714794,50,630.2739,4.841745 +0.8901368,76,5.784143,8.037162 +0.7201633,26,820.6769,4.345689 +0.9010186,37,424.7176,5.182914 +0.6013714,59,541.621,4.751601 +0.7908577,46,997.1488,4.951546 +0.6927482,71,702.3211,5.051229 +0.5590977,11,594.2949,3.241059 +0.7164781,42,963.2049,4.711018 +0.9163904,43,502.9438,5.361358 +0.6612428,83,623.4967,5.104527 +0.6425414,87,862.6899,5.101567 +0.8213658,65,322.2208,5.303021 +0.7373462,89,551.5728,5.302949 +0.5986439,55,478.4257,4.695178 +0.7244378,30,347.0494,4.479614 +0.6218237,50,636.3346,4.661784 +0.725282,28,856.954,4.416502 +0.8487246,16,101.9375,4.375022 +0.7496028,57,605.1464,5.013753 +0.6803173,56,902.4544,4.85285 +0.7951882,70,583.4215,5.26867 +0.9259178,22,242.7018,4.957652 +0.7516096,36,551.4496,4.67813 +0.8295028,71,780.4252,5.365977 +0.8778276,15,475.6616,4.381838 +0.8194508,74,613.7646,5.370245 +0.8235226,30,845.348,4.726012 +0.7537613,69,934.379,5.15409 +0.6151436,20,976.8233,3.904389 +0.9386936,32,705.0091,5.281983 +0.6032401,27,860.4168,4.136792 +0.8156953,34,5.919545,6.147653 +0.8026528,42,280.3825,4.939681 +0.7619484,60,59.23093,5.209588 +0.876842,90,23.85571,6.264086 +0.6835586,12,487.0681,3.595008 +0.7693461,43,703.687,4.851691 +0.6153242,91,590.2577,5.089901 +0.5938335,2,361.9556,1.176101 +0.9398924,30,127.9098,5.339887 +0.6309711,19,744.1419,3.892506 +0.6674976,82,87.71144,5.172374 +0.7843308,32,890.146,4.664321 +0.8866003,55,245.5037,5.422817 +0.9174256,47,799.3804,5.417252 +0.7856124,89,946.9574,5.402764 +0.7332223,76,519.9381,5.185325 +0.5741031,45,596.0796,4.496812 +0.7555969,51,664.927,4.945389 +0.8515928,2,433.3597,2.047442 +0.573079,57,530.3749,4.677239 +0.8753101,72,65.81185,5.720728 +0.6491346,55,79.26238,4.842491 +0.794759,21,705.0873,4.362667 +0.9401834,16,505.0417,4.787617 +0.5122126,23,163.9715,3.842354 +0.8804487,55,7.418967,7.01951 +0.5310158,12,338.4504,3.271906 +0.9143952,2,334.7572,2.43831 +0.609437,49,766.6815,4.622999 +0.743276,29,559.6721,4.489996 +0.750802,43,906.3193,4.805193 +0.7028861,82,570.4726,5.175535 +0.7121867,61,670.229,4.981277 +0.5660296,84,38.86039,5.04032 +0.5041909,21,216.9332,3.744519 +0.5551879,50,348.8803,4.550023 +0.8878471,6,35.24714,3.745212 +0.892262,73,973.6806,5.593922 +0.696367,40,784.4907,4.633238 +0.6421879,87,282.2655,5.116123 +0.6215205,34,360.9796,4.365564 +0.789945,12,293.5746,3.88169 +0.640508,21,401.1258,4.002517 +0.7915758,10,797.9483,3.70977 +0.9387423,22,411.4235,5.024741 +0.5622273,54,898.4625,4.614994 +0.5953253,60,914.328,4.750301 +0.6392777,35,251.4834,4.428198 +0.8932596,42,377.1065,5.241942 +0.7364436,36,696.4678,4.64023 +0.5885521,10,365.018,3.20982 +0.829681,93,746.4872,5.549487 +0.5057063,93,958.7418,4.927446 +0.9257312,56,223.3139,5.636041 +0.6316418,80,73.15034,5.092505 +0.7197106,31,975.8304,4.483773 +0.7869882,29,766.9128,4.596767 +0.6074108,62,445.4765,4.800981 +0.8286439,26,784.7253,4.632707 +0.5689967,25,798.7926,4.008652 +0.8410289,5,870.3467,3.196519 +0.5227112,90,450.7685,4.933785 +0.6375155,4,668.4885,2.304924 +0.6896833,91,347.8749,5.231752 +0.7352017,52,438.1424,4.919824 +0.6386533,77,988.0837,5.007016 +0.9461375,49,491.345,5.64017 +0.654627,97,832.8996,5.199254 +0.5894615,29,60.51807,4.218363 +0.5269488,2,862.4869,1.015177 +0.9331138,87,461.2927,5.930507 +0.8665317,70,329.2841,5.497526 +0.9175936,89,572.3668,5.85077 +0.8128998,75,662.1277,5.36021 +0.765531,25,766.4274,4.423686 +0.8934914,39,80.10902,5.31473 +0.7163465,12,523.9966,3.673615 +0.7988134,17,41.4153,4.338415 +0.5451061,29,90.2829,4.114404 +0.9189236,10,718.424,4.249735 +0.5857667,34,673.6846,4.294493 +0.7549478,35,321.5195,4.673801 +0.7943498,5,543.3669,3.023187 +0.7016415,74,252.3303,5.117568 +0.559157,97,22.49902,5.190322 +0.8614353,89,59.39922,5.836828 +0.6084914,11,930.5192,3.342619 +0.9059065,52,830.8472,5.428208 +0.8895644,9,909.9186,3.990418 +0.9077405,66,367.3664,5.62232 +0.7912619,4,954.7676,2.755165 +0.6900781,79,4.370944,6.382217 +0.682151,37,498.7817,4.548054 +0.8415262,15,847.1698,4.231924 +0.8512212,81,70.99263,5.691611 +0.5211151,5,136.4987,2.309817 +0.8838984,23,530.1152,4.746854 +0.6994729,78,678.329,5.131444 +0.51668,42,187.2642,4.352938 +0.9481614,48,182.5941,5.705067 +0.9236594,4,668.0228,3.406841 +0.6312497,22,566.5117,4.020927 +0.7943789,17,577.5567,4.188866 +0.8626302,11,527.8644,4.051431 +0.6705389,50,89.56081,4.807473 +0.5516966,49,16.48661,4.683886 +0.8668004,29,971.0603,4.845009 +0.8014657,14,739.804,4.042122 +0.9053415,70,69.74634,5.837114 +0.6831015,69,194.3605,5.037981 +0.8789359,53,415.8494,5.343093 +0.9289235,69,568.3182,5.747231 +0.7899977,78,938.5117,5.323466 +0.9479518,39,874.7101,5.484147 +0.6049941,13,631.9339,3.496114 +0.9011545,67,390.2548,5.599185 +0.7040379,5,153.3049,2.757018 +0.6679361,76,271.9522,5.068211 +0.6960151,71,476.9279,5.062621 +0.8435223,54,164.3906,5.274298 +0.8736423,16,89.53738,4.491120 +0.59024,59,791.2283,4.72982 +0.9295583,4,208.2342,3.470088 +0.5965512,55,241.4432,4.700357 +0.6738523,47,545.3299,4.714014 +0.5366376,40,704.4424,4.338593 +0.8379685,43,361.8964,5.054343 +0.8422289,25,45.08528,4.825735 +0.717953,38,625.8311,4.641661 +0.5679036,27,216.3701,4.080988 +0.7799007,22,500.1768,4.36294 +0.9302193,42,778.122,5.413554 +0.782723,100,474.8462,5.486657 +0.8622244,25,578.762,4.722007 +0.940699,5,331.4978,3.788291 +0.6665559,91,293.6174,5.19182 +0.7849823,12,886.944,3.855518 +0.6102746,45,795.5418,4.558929 +0.5301608,34,410.1793,4.198522 +0.7874662,64,876.8466,5.180669 +0.7584281,61,372.7229,5.091763 +0.883191,19,283.4864,4.609797 +0.8593794,58,94.39034,5.436929 +0.9007119,90,606.605,5.777169 +0.7826633,84,414.7848,5.371269 +0.8178446,35,453.0215,4.834728 +0.5831485,51,648.3131,4.608569 +0.7011728,80,491.1916,5.157069 +0.577471,34,341.6812,4.284249 +0.8422745,3,247.0640,2.607015 +0.5670756,52,252.8716,4.604588 +0.8654929,46,553.3708,5.185306 +0.555244,43,568.0426,4.428859 +0.8185472,61,153.0966,5.287868 +0.6000175,94,396.2763,5.091671 +0.9250674,4,959.921,3.415297 +0.519015,23,407.4622,3.848192 +0.9100592,26,412.1465,4.97078 +0.5725889,11,752.5595,3.268075 +0.7735475,80,13.28211,5.94689 +0.6812585,61,742.4313,4.918926 +0.8009573,91,495.3601,5.466766 +0.8496011,36,14.80379,5.591567 +0.8966086,24,326.1461,4.849813 +0.6029698,77,911.9371,4.946375 +0.5789911,33,268.6701,4.265316 +0.9015798,74,379.2924,5.668898 +0.8378741,59,176.2669,5.314487 +0.5142631,13,875.7704,3.314014 +0.6618115,90,361.3256,5.170771 +0.618478,79,498.9765,4.996128 +0.589535,53,843.2393,4.647428 +0.5709581,19,283.5134,3.779699 +0.934535,53,136.1736,5.70354 +0.9176517,68,662.3776,5.671203 +0.8882659,49,385.4667,5.328562 +0.7906314,62,227.6577,5.19901 +0.8331562,33,189.6048,4.866175 +0.8592519,5,199.5106,3.29058 +0.8631095,5,586.7871,3.295034 +0.7715704,95,393.3997,5.430589 +0.7810495,18,892.4912,4.195172 +0.6263919,51,861.9839,4.683013 +0.726559,66,379.8912,5.077005 +0.584635,16,816.7968,3.646219 +0.7622277,99,441.9479,5.434317 +0.544085,4,913.6733,2.079431 +0.8988398,92,782.1835,5.776936 +0.7965645,46,648.4351,4.97143 +0.5655758,39,916.2638,4.367322 +0.5597001,40,481.4167,4.380355 +0.6119028,43,619.7148,4.528215 +0.5059835,35,910.8695,4.177567 +0.888591,3,379.9952,2.841126 +0.8923276,39,532.5778,5.174923 +0.9391946,88,295.5114,6.001715 +0.8329471,5,561.5299,3.165962 +0.807254,49,471.086,5.051749 +0.6779844,72,546.0019,5.035882 +0.7169698,39,519.4347,4.661549 +0.6063137,89,822.5501,5.056334 +0.8338426,46,400.1937,5.087515 +0.9038509,24,381.7342,4.880606 +0.8799192,61,668.0104,5.431366 +0.7922678,53,992.3444,5.057599 +0.6221619,74,577.9326,4.953811 +0.7974794,6,983.7875,3.226665 +0.5508857,7,651.114,2.755166 +0.5805972,47,369.621,4.545734 +0.7430752,51,665.0276,4.916948 +0.889692,77,94.36406,5.767793 +0.8952883,43,895.1652,5.247112 +0.9065478,17,242.677,4.641579 +0.8725372,82,83.33613,5.757366 +0.6905845,95,765.2116,5.250851 +0.5161306,2,751.7912,0.9905717 +0.6449158,76,438.4860,5.016555 +0.850453,76,108.6052,5.580327 +0.6725742,2,480.4059,1.386370 +0.6161149,76,295.3912,4.971517 +0.7963333,93,957.2727,5.458221 +0.8256374,92,764.9899,5.530569 +0.8711578,4,954.592,3.086392 +0.7021267,58,94.03852,4.987058 +0.6045699,15,764.2379,3.627434 +0.8155154,53,809.7748,5.121834 +0.8537439,97,361.4350,5.66994 +0.6076632,42,300.3761,4.50934 +0.6164641,90,997.455,5.079993 +0.6679983,77,914.1822,5.060077 +0.8267494,47,758.4837,5.069028 +0.889724,88,814.6457,5.709872 +0.5710028,58,572.7667,4.686314 +0.7476734,66,752.3688,5.111589 +0.8446393,16,688.6557,4.298853 +0.6105829,77,741.3553,4.960555 +0.6288055,99,627.1944,5.171451 +0.8747276,74,936.3155,5.536257 +0.8663237,60,476.5183,5.378106 +0.6572653,50,279.4464,4.738406 +0.818589,2,408.8505,1.893213 +0.5529693,48,363.1589,4.51419 +0.8066909,59,384.7873,5.188151 +0.799528,20,910.703,4.334523 +0.8265927,61,476.6806,5.262121 +0.9341984,38,883.2063,5.367274 +0.805301,37,72.53905,4.940323 +0.565158,56,547.6801,4.65019 +0.5359521,6,879.5133,2.550337 +0.7844629,81,944.9339,5.335886 +0.7571667,9,95.5825,3.542732 +0.9163885,78,973.905,5.746129 +0.5834059,92,85.6609,5.08992 +0.7239388,81,538.4948,5.210062 +0.7697425,2,525.1054,1.698599 +0.663207,98,479.0765,5.228057 +0.9052223,45,320.5551,5.352677 +0.5567801,53,341.8657,4.597828 +0.8841526,26,887.5597,4.833461 +0.9384,63,439.3002,5.75641 +0.838798,92,83.15308,5.710527 +0.6815254,15,309.6898,3.798653 +0.5857514,42,476.6759,4.464864 +0.8293977,80,31.63208,5.801698 +0.842452,34,184.5945,4.92152 +0.8692851,97,633.1602,5.703721 +0.7267881,31,137.6431,4.537449 +0.7356832,56,658.8381,4.969012 +0.7227652,91,554.936,5.288082 +0.8580446,92,162.8874,5.697804 +0.9311096,57,330.0965,5.656089 +0.87975,61,740.2764,5.428649 +0.5778756,23,14.93272,4.118634 +0.7842306,30,313.8244,4.629866 +0.6270722,33,779.2002,4.346039 +0.7057705,79,302.6537,5.167424 +0.5971569,35,33.86121,4.433412 +0.9313556,92,31.7865,6.522864 +0.9145324,22,844.1247,4.855005 +0.5121691,72,610.6148,4.751727 +0.7191218,46,152.6025,4.822954 +0.6811826,4,294.6595,2.422272 +0.6025292,48,964.4258,4.593841 +0.8007709,18,992.2387,4.250902 +0.9168472,47,961.849,5.410959 +0.9089293,79,416.9533,5.742267 +0.8455079,57,263.6889,5.292637 +0.8230542,30,80.5108,4.821179 +0.5176877,25,849.4768,3.915583 +0.559614,30,68.57347,4.180268 +0.8706231,16,203.46,4.426949 +0.7886635,87,614.8048,5.401131 +0.5709352,53,489.2911,4.618905 +0.6175398,45,82.33716,4.618999 +0.9273795,83,849.5728,5.847243 +0.6616265,64,464.1305,4.921935 +0.9092348,35,43.38426,5.454607 +0.6639229,9,488.635,3.271458 +0.7123701,24,645.2518,4.264661 +0.5971812,71,323.3251,4.887295 +0.9040199,58,302.4310,5.526017 +0.891341,3,853.512,2.85285 +0.8327472,46,999.0827,5.068139 +0.538213,77,36.63778,4.919466 +0.9343277,60,798.6898,5.678839 +0.5291167,96,940.8475,4.986283 +0.5365506,2,905.9114,1.037311 +0.5783818,67,519.9423,4.807253 +0.6017498,70,535.2365,4.878864 +0.5621818,55,61.71024,4.679536 +0.631023,85,936.9508,5.064591 +0.6173371,18,425.883,3.820447 +0.5176463,23,673.073,3.843871 +0.7944634,58,930.0162,5.12811 +0.5406991,33,242.3118,4.196870 +0.6967938,23,300.9028,4.203233 +0.902891,90,637.2883,5.785307 +0.8088856,26,119.2594,4.627547 +0.5780078,51,584.8612,4.600362 +0.7028602,54,774.6654,4.871879 +0.6738062,30,613.2607,4.363156 +0.5541092,10,650.902,3.135661 +0.9457014,54,949.3188,5.683393 +0.8972022,46,406.4764,5.321292 +0.8667156,11,684.8948,4.065692 +0.9310755,76,645.1775,5.818983 +0.5542021,24,646.2454,3.947356 +0.5404606,42,196.7277,4.394176 +0.686979,56,163.9087,4.898354 +0.7025409,41,410.7730,4.67216 +0.8317294,53,419.5157,5.181381 +0.9424831,76,426.1901,5.908399 +0.7372916,44,485.0423,4.798806 +0.6709233,84,331.3589,5.140749 +0.6746366,12,859.704,3.571476 +0.8216683,34,540.0916,4.821108 +0.643978,57,272.3593,4.812046 +0.5520607,53,60.71588,4.631438 +0.7007719,42,765.4727,4.67977 +0.9199158,12,441.8452,4.417682 +0.7121463,56,636.3291,4.919563 +0.7334962,37,720.3002,4.65424 +0.7212483,71,372.2988,5.118448 +0.8790645,22,142.9078,4.741032 +0.9044781,59,215.2122,5.560589 +0.5302091,33,553.2379,4.172572 +0.9233759,72,269.3898,5.778901 +0.6341785,99,731.2685,5.179165 +0.8801704,15,991.0715,4.383208 +0.6209372,66,531.3332,4.869074 +0.7938349,97,125.7036,5.560664 +0.7822507,53,943.604,5.032947 +0.7205718,37,352.3203,4.634869 +0.8427076,42,572.6246,5.04161 +0.7351081,7,70.82834,3.233934 +0.5523457,19,653.4837,3.739476 +0.9089972,81,543.5491,5.749272 +0.7323391,50,895.3925,4.87574 +0.521568,82,214.5986,4.871706 +0.713984,22,361.0807,4.202606 +0.7087699,71,76.13513,5.170263 +0.7970846,85,246.2059,5.433973 +0.9484904,23,924.6415,5.115985 +0.695886,39,421.1168,4.619389 +0.5020152,34,437.4275,4.149307 +0.9410206,71,688.0979,5.836372 +0.887759,11,259.6189,4.178223 +0.7860928,52,439.7041,5.040212 +0.6178195,77,148.7578,5.001551 +0.6259203,98,944.3424,5.156093 +0.7109561,51,193.5400,4.873273 +0.7578351,95,481.2859,5.394517 +0.7206983,24,140.5904,4.313175 +0.8106681,17,827.8169,4.234558 +0.8989231,38,423.3858,5.192314 +0.7481471,23,39.30671,4.449383 +0.5809042,43,147.3237,4.491469 +0.7851278,29,506.1053,4.596806 +0.7531022,27,360.8266,4.463365 +0.8690282,88,68.67441,5.829221 +0.7360276,14,836.9838,3.859787 +0.6293365,7,300.9803,2.933594 +0.6489233,37,151.2782,4.503674 +0.7898306,59,323.5039,5.148535 +0.6523805,84,815.1856,5.094532 +0.5320332,29,993.8974,4.066623 +0.9269118,36,547.8584,5.294179 +0.8070126,24,620.2786,4.506701 +0.6693941,42,17.37505,4.888551 +0.5038683,85,633.7558,4.860832 +0.8940935,26,757.7715,4.87946 +0.8346877,92,575.5123,5.561954 +0.9175068,83,713.3788,5.798848 +0.9257833,54,283.4987,5.595522 +0.9184304,74,780.53,5.726756 +0.8686702,7,355.3133,3.666443 +0.5827008,35,998.6566,4.310686 +0.7970785,87,304.8774,5.441025 +0.9382596,25,548.312,5.107429 +0.8953957,59,306.9858,5.497621 +0.5908737,18,574.3097,3.765925 +0.5266771,30,920.222,4.085747 +0.5057869,11,132.1592,3.141296 +0.6763682,66,533.283,4.970388 +0.5986894,27,175.3026,4.143136 +0.8778105,11,320.0037,4.125823 +0.6886012,37,602.0783,4.559364 +0.8813419,12,330.9027,4.21685 +0.7192435,42,460.7729,4.724577 +0.5545486,56,15.70768,4.807326 +0.9325303,38,346.1985,5.383635 +0.669051,56,640.025,4.834118 +0.6583283,86,996.489,5.1202 +0.6057796,77,325.1724,4.961303 +0.7796517,90,571.285,5.404014 +0.5056907,17,266.7461,3.554489 +0.7515106,11,303.1314,3.690423 +0.7039952,48,202.1302,4.811129 +0.809957,79,66.13782,5.541357 +0.9224645,6,619.0758,3.812107 +0.5094466,88,898.6833,4.893397 +0.9477443,73,129.9485,6.031339 +0.5485121,7,9.254338,2.885109 +0.9305325,22,684.9766,4.95488 +0.7119204,89,910.6426,5.244861 +0.7536868,36,162.9004,4.713997 +0.8250412,54,148.9539,5.221541 +0.687851,59,864.5388,4.906065 +0.918532,97,597.2784,5.909369 +0.5595147,41,544.9091,4.398864 +0.9004672,85,239.2722,5.78195 +0.59365,54,878.0916,4.668481 +0.8783227,10,896.2678,4.030569 +0.8133267,96,370.0175,5.54357 +0.8671705,60,64.87276,5.5537 +0.883281,74,645.421,5.575454 +0.5804001,84,84.52473,5.018588 +0.8266129,54,200.4741,5.207821 +0.6836131,20,664.69,4.04816 +0.6035206,9,628.5172,3.133810 +0.6702452,69,849.1852,4.986271 +0.6364704,48,883.8399,4.655244 +0.5671835,9,546.4393,3.056326 +0.5690553,3,236.2613,1.753378 +0.8756632,64,780.2536,5.444975 +0.7153843,63,838.4182,5.008798 +0.804762,33,609.6379,4.747504 +0.6179514,73,488.8654,4.938339 +0.8194816,96,853.4875,5.540392 +0.7588645,2,152.7610,1.664141 +0.7981592,57,334.5773,5.144643 +0.9490692,85,556.0761,6.016835 +0.5867042,70,990.4885,4.849403 +0.6007492,12,694.5446,3.410986 +0.736716,84,601.6296,5.260216 +0.6323489,2,774.0551,1.274785 +0.738871,58,355.3918,5.011991 +0.8140275,34,702.4303,4.794691 +0.7255078,34,647.2084,4.572123 +0.864685,28,838.2934,4.812339 +0.7486541,3,207.2905,2.251476 +0.7494737,2,623.8884,1.626546 +0.6653869,13,954.9271,3.624499 +0.537772,95,186.5677,5.007723 +0.6538231,71,568.5899,4.980417 +0.9414375,88,510.526,5.987133 +0.5479147,54,51.48266,4.646137 +0.557724,48,903.0369,4.516893 +0.9386544,56,857.2707,5.659779 +0.5940301,94,253.2258,5.088894 +0.6501443,64,959.9111,4.893937 +0.6067973,54,908.6455,4.691129 +0.654507,59,52.07229,4.941878 +0.8192652,79,340.7329,5.43031 +0.939037,64,876.5141,5.74957 +0.6135284,81,459.9465,5.006509 +0.7110579,18,878.6845,4.01835 +0.814323,78,780.191,5.388123 +0.8908215,43,392.1403,5.246676 +0.53005,80,518.9931,4.85878 +0.6253301,33,718.2566,4.343194 +0.9362074,50,393.0591,5.591873 +0.7219975,87,541.2979,5.255803 +0.9459326,15,316.912,4.798087 +0.930335,80,807.2895,5.841721 +0.5681464,16,378.3508,3.61698 +0.9499151,14,420.992,4.770063 +0.7182865,68,375.8024,5.081201 +0.7794312,9,96.4755,3.610739 +0.5496585,34,351.8712,4.233967 +0.8552836,83,358.2531,5.571118 +0.7258398,66,132.6162,5.114452 +0.6802115,50,625.1914,4.771628 +0.7970908,68,216.5083,5.284177 +0.7856198,32,35.54217,4.868538 +0.6896799,53,619.3499,4.833827 +0.5405124,11,709.2976,3.202944 +0.5931073,58,181.7167,4.740144 +0.9296065,57,274.144,5.657511 +0.8894637,99,230.9085,5.83801 +0.7269455,94,416.5431,5.324466 +0.5054073,6,366.2931,2.485701 +0.5939675,62,223.0338,4.787509 +0.9279325,87,412.7045,5.904856 +0.874619,38,700.4562,5.077989 +0.773303,85,519.679,5.351931 +0.6715655,4,828.7634,2.39306 +0.9316947,6,611.5014,3.880666 +0.7816273,64,883.5622,5.166293 +0.7616447,35,490.4985,4.682418 +0.6307362,20,816.8543,3.93619 +0.7790853,60,134.1737,5.174301 +0.7120402,8,831.7674,3.270146 +0.6111881,54,420.4505,4.704805 +0.5667839,65,250.6678,4.773346 +0.7412546,31,604.9042,4.536834 +0.761954,86,590.23,5.331604 +0.8147305,97,669.9403,5.538824 +0.921257,12,598.9547,4.420777 +0.8579846,9,796.0635,3.848182 +0.6420126,59,390.8569,4.82794 +0.6954217,94,744.5522,5.25295 +0.9495565,16,861.5791,4.855693 +0.6113444,54,989.5619,4.69867 +0.8328882,19,203.3542,4.424911 +0.8856367,28,696.2317,4.898714 +0.640194,2,117.6311,1.300124 +0.6474485,52,427.2151,4.742487 +0.5670605,59,541.7196,4.692942 +0.8488514,30,185.5357,4.848086 +0.7165594,73,490.8832,5.123192 +0.6623204,53,298.4773,4.790835 +0.5074262,23,273.8531,3.829228 +0.6352413,49,967.0568,4.668145 +0.5649781,62,178.2758,4.740777 +0.7498571,20,583.6562,4.204169 +0.5835476,56,123.3513,4.706382 +0.7550705,79,316.9494,5.271653 +0.7218668,75,330.5023,5.16151 +0.5017672,84,382.8786,4.85166 +0.630573,36,709.534,4.422514 +0.935681,96,964.6872,5.985507 +0.8554879,34,145.4236,4.982775 +0.7229327,81,378.9831,5.214754 +0.8577544,42,999.5687,5.083548 +0.9432636,89,833.7002,5.990668 +0.7666204,57,493.171,5.056368 +0.6362688,29,762.5893,4.259337 +0.8958883,67,622.4665,5.560987 +0.8283473,13,847.803,4.063877 +0.7218571,74,269.1406,5.157658 +0.8416842,15,260.8999,4.25085 +0.8848287,95,302.4653,5.775057 +0.8140273,82,303.3425,5.4457 +0.7295315,70,835.9745,5.11325 +0.5807518,51,702.8305,4.603968 +0.6501605,82,199.395,5.09776 +0.8406729,11,74.10512,4.033798 +0.903668,100,908.3707,5.848135 +0.7548947,70,466.2839,5.176738 +0.8195727,43,868.5602,4.982021 +0.5663267,78,102.8917,4.929645 +0.9173868,2,983.7003,2.457186 +0.628796,87,665.3164,5.079912 +0.8091684,35,694.259,4.802692 +0.7323985,53,860.108,4.918963 +0.7742748,5,320.925,2.959510 +0.6931249,34,890.3259,4.49974 +0.5241701,19,878.5768,3.686026 +0.8520986,31,769.1417,4.844574 +0.589649,22,718.8403,3.938434 +0.5274364,77,522.0673,4.826529 +0.6014354,43,831.8862,4.507671 +0.7802544,69,375.5549,5.23125 +0.6449134,2,891.3265,1.308500 +0.8130707,32,796.61,4.744624 +0.573831,8,728.1806,2.947466 +0.9301646,10,393.0404,4.335678 +0.8982183,99,279.571,5.862206 +0.5661488,79,75.63719,4.951629 +0.6237751,59,588.3647,4.790296 +0.6550018,40,711.4487,4.551573 +0.8109876,28,456.1428,4.643873 +0.6988211,2,699.4621,1.463250 +0.5704728,50,793.2397,4.570573 +0.5820357,46,923.769,4.525452 +0.6473964,75,769.8616,5.005384 +0.9244471,96,835.5283,5.924331 +0.6504812,57,542.7684,4.81398 +0.867966,74,895.898,5.512985 +0.9418494,16,774.1639,4.7926 +0.6489154,2,96.85372,1.325131 +0.5085422,15,625.4407,3.440078 +0.6989324,82,629.8381,5.166497 +0.9183082,48,186.7327,5.499822 +0.7709177,56,8.400555,5.942506 +0.6682601,40,867.857,4.576017 +0.89172,55,165.8517,5.472501 +0.6924027,21,631.6706,4.109167 +0.7003671,80,747.3869,5.149938 +0.6623735,22,971.5073,4.081657 +0.6241618,66,884.9327,4.870709 +0.5252733,96,722.093,4.981467 +0.6021912,33,411.8979,4.303828 +0.7934302,15,539.9897,4.080298 +0.8792068,41,204.9749,5.19277 +0.8198524,55,154.0691,5.216557 +0.928111,67,748.7546,5.715469 +0.5133573,38,246.1858,4.263624 +0.6884071,37,674.5355,4.55795 +0.7461944,64,473.5671,5.093302 +0.6532605,97,185.9989,5.225389 +0.5501679,27,628.1183,4.040324 +0.7534715,27,19.90830,4.748168 +0.7025255,31,938.235,4.446551 +0.8893203,50,492.9179,5.339381 +0.7325881,3,16.04148,2.286298 +0.8471792,46,99.03947,5.214267 +0.8558435,14,925.2775,4.2263 +0.9016918,25,899.1608,4.883661 +0.9413817,37,697.0876,5.402966 +0.9225349,82,561.812,5.82426 +0.5003238,9,688.7228,2.917672 +0.8512868,20,559.2459,4.507173 +0.8284532,44,595.7483,5.03024 +0.846141,66,653.0226,5.36898 +0.748223,39,755.2171,4.727535 +0.7368554,26,749.7013,4.384982 +0.7189159,3,647.6345,2.152868 +0.7414169,15,94.89577,3.977394 +0.8153508,24,211.3473,4.55558 +0.6970842,31,797.3713,4.435984 +0.8025622,50,6.803501,6.268036 +0.9030182,26,381.8899,4.936831 +0.6419183,16,749.4674,3.763236 +0.9327713,20,151.1507,4.961371 +0.8798308,24,400.5564,4.768297 +0.5138711,3,821.1119,1.620491 +0.53179,14,989.895,3.418602 +0.8421581,75,887.0516,5.438645 +0.8565368,86,552.1805,5.585046 +0.6598265,16,685.9115,3.801888 +0.9419386,65,314.7918,5.818752 +0.7884257,93,434.97,5.453545 +0.5809332,37,839.5907,4.352714 +0.5207864,44,85.54216,4.4121 +0.5672738,25,628.4949,4.006396 +0.6546446,54,218.9772,4.796863 +0.5339421,34,842.3085,4.202027 +0.5361476,42,825.7257,4.37603 +0.6629262,81,171.9478,5.118468 +0.5759406,36,173.0157,4.336918 +0.547108,31,106.1333,4.170199 +0.507479,78,627.4027,4.803467 +0.6631738,75,844.3643,5.033109 +0.5277626,29,585.636,4.060688 +0.5617955,64,210.7296,4.755963 +0.5835145,5,64.48203,2.462699 +0.882635,82,746.709,5.637861 +0.7425467,87,934.1737,5.291144 +0.7768254,52,92.34035,5.092246 +0.7278219,39,573.6261,4.684182 +0.8767195,34,706.6265,5.005221 +0.850523,73,99.0534,5.563408 +0.8754488,82,583.1682,5.616972 +0.6626895,42,438.3507,4.608795 +0.9348684,26,225.5050,5.147867 +0.9416782,45,132.6854,5.644021 +0.7208806,81,6.229939,6.237515 +0.5405073,7,75.27229,2.747032 +0.784138,27,888.8104,4.532014 +0.7047413,26,397.4317,4.317997 +0.8364552,75,366.4362,5.442106 +0.8720677,78,507.4042,5.575244 +0.8908936,64,713.2027,5.506109 +0.8166285,51,517.321,5.104816 +0.6565045,49,602.2967,4.711042 +0.7925262,27,43.26737,4.713331 +0.9016432,46,142.4901,5.405597 +0.8237432,37,112.9364,4.956212 +0.6777052,50,249.6319,4.781308 +0.9397628,44,116.4927,5.630913 +0.7341784,62,94.20431,5.111798 +0.6929476,61,14.01006,5.350054 +0.740762,86,974.9146,5.278999 +0.5808794,14,388.2787,3.518560 +0.7912621,63,532.4759,5.186615 +0.6266644,36,71.63259,4.466956 +0.6721112,45,252.2225,4.689743 +0.5568319,33,234.6669,4.226382 +0.7115908,38,835.0688,4.625388 +0.5007294,8,713.4759,2.793781 +0.9356461,65,800.8346,5.739674 +0.6431681,51,275.0588,4.726642 +0.6418362,30,783.4145,4.297577 +0.7584736,61,857.6538,5.078252 +0.9400944,68,808.2146,5.797917 +0.8150239,16,259.8427,4.214301 +0.5928511,25,884.6633,4.0527 +0.8235666,23,772.7027,4.52082 +0.7966892,100,173.8055,5.564043 +0.8403294,71,787.3465,5.397731 +0.6412425,45,936.1094,4.614527 +0.7763971,33,111.9587,4.725915 +0.6629552,67,97.09423,5.007628 +0.9173387,6,707.2925,3.775694 +0.7671331,5,428.4920,2.934431 +0.7318255,51,691.8642,4.891703 +0.9348959,48,464.1825,5.548811 +0.9217564,53,973.5796,5.518674 +0.6395493,32,814.8357,4.344956 +0.6595887,36,217.8564,4.494006 +0.7371668,79,601.646,5.218455 +0.8302437,87,993.3104,5.502131 +0.8564486,24,420.4169,4.674961 +0.7701998,76,656.015,5.263296 +0.6874573,47,608.4487,4.739844 +0.7121946,5,762.8256,2.769008 +0.7101067,68,554.8536,5.057617 +0.6214585,46,858.065,4.595565 +0.8607614,90,841.2433,5.61987 +0.6583589,22,568.094,4.076247 +0.6248519,16,359.5323,3.731892 +0.9475922,7,553.6634,4.161477 +0.9259968,89,677.8597,5.890037 +0.7219641,93,444.3312,5.305514 +0.866721,78,530.8345,5.555063 +0.895877,58,924.2145,5.455649 +0.7745198,83,239.1456,5.362005 +0.7279426,30,685.3133,4.479054 +0.6292672,5,652.6662,2.554493 +0.8621705,12,924.5616,4.119954 +0.7819186,96,730.1539,5.448783 +0.885565,90,730.3173,5.710649 +0.8552883,76,899.2516,5.488386 +0.6654058,86,486.6332,5.140343 +0.5998509,42,991.0918,4.485726 +0.8327136,54,536.8069,5.191774 +0.7425117,53,378.7974,4.952954 +0.7964822,75,952.3056,5.31239 +0.8088025,15,44.39403,4.251033 +0.6742135,36,860.2365,4.506043 +0.884635,39,389.9112,5.150668 +0.5918631,14,48.27244,3.582336 +0.9172598,17,29.02950,5.022216 +0.7190332,42,50.17895,4.837464 +0.5797433,60,961.7418,4.723679 +0.8932167,67,682.0348,5.54753 +0.6988684,85,423.5009,5.197771 +0.6357016,16,836.6406,3.749755 +0.6890077,32,461.3887,4.449031 +0.7588667,42,280.3290,4.825713 +0.5494846,55,47.56121,4.668146 +0.6874588,49,659.3741,4.770332 +0.6365405,66,737.9129,4.893803 +0.8233614,36,157.4156,4.91091 +0.5840611,60,124.7446,4.759483 +0.7339906,37,716.2325,4.655409 +0.7774252,44,334.844,4.901962 +0.6193005,9,940.9317,3.167399 +0.696985,26,88.31102,4.3444 +0.940315,59,700.5253,5.710277 +0.7377039,14,668.2784,3.865379 +0.913119,91,783.4478,5.83421 +0.5370352,14,440.6516,3.430929 +0.5327774,36,123.0329,4.263722 +0.648229,17,177.8754,3.844856 +0.6401825,64,575.8182,4.87999 +0.9480667,62,240.2785,5.85306 +0.8221232,31,667.1766,4.749486 +0.574851,16,771.9699,3.627125 +0.6598773,3,94.76652,1.993306 +0.7800032,26,714.9019,4.493196 +0.697495,32,653.2019,4.463514 +0.5867579,21,435.1138,3.895165 +0.6375613,18,609.9121,3.859645 +0.7611845,76,715.156,5.241431 +0.7984868,79,989.688,5.352595 +0.7752109,34,671.7063,4.689988 +0.8994018,22,624.0138,4.781058 +0.8005305,13,626.9485,3.975938 +0.6398316,55,286.0043,4.776561 +0.9424745,25,999.8135,5.127177 +0.5227684,13,699.9421,3.330973 +0.8779214,80,450.7731,5.617354 +0.917571,9,710.7334,4.149813 +0.8569605,99,590.8516,5.677787 +0.6843676,89,603.5044,5.196629 +0.733581,22,490.3643,4.245027 +0.8672448,26,182.8215,4.807842 +0.7397184,87,120.0428,5.35191 +0.5527422,23,235.8245,3.914409 +0.5820121,72,811.4327,4.863264 +0.9103458,29,548.7671,5.045708 +0.7945998,61,593.8792,5.170347 +0.5124122,96,562.5626,4.962827 +0.623792,51,197.2819,4.697112 +0.5217335,90,721.5645,4.929546 +0.8997264,24,919.2028,4.843187 +0.8411916,70,41.51056,5.664744 +0.7871999,5,232.2797,3.005849 +0.6698947,20,983.0028,4.016535 +0.7529359,84,25.78049,5.614619 +0.7208476,100,677.1795,5.346025 +0.5955761,18,635.3268,3.774734 +0.5967151,41,8.097904,4.849405 +0.7051689,44,680.4017,4.725193 +0.8043721,26,425.092,4.567816 +0.6045699,12,444.4552,3.420835 +0.9499069,68,96.17027,6.056731 +0.7528673,65,118.8346,5.174443 +0.5454412,32,666.9706,4.173194 +0.6051781,68,38.05244,4.970321 +0.9332288,77,568.6311,5.844464 +0.7542108,15,693.6439,3.968683 +0.7988791,42,207.1542,4.94052 +0.7200135,38,599.6341,4.646607 +0.6721438,49,389.8183,4.746427 +0.8592696,70,425.4091,5.462841 +0.7293571,43,247.9677,4.777638 +0.8784906,57,573.1369,5.382846 +0.8872626,60,518.9786,5.45521 +0.8542287,41,141.3212,5.121138 +0.8359833,60,26.23134,5.672828 +0.8527313,17,920.5974,4.37559 +0.5880137,61,823.1405,4.750736 +0.5841701,73,17.39604,5.082933 +0.61481,21,96.121,3.975453 +0.529416,91,166.0006,4.964893 +0.6913516,51,590.0996,4.809118 +0.8012878,63,291.3125,5.228858 +0.5019232,19,857.4837,3.645079 +0.8200012,68,28.59088,5.670121 +0.8115694,52,648.0865,5.100523 +0.9250571,51,160.3951,5.596079 +0.5669754,2,513.2984,1.109653 +0.6057292,64,150.8608,4.842164 +0.5911127,49,342.9278,4.597324 +0.8676585,14,558.4217,4.278688 +0.6736706,57,691.9278,4.855279 +0.897761,99,813.2623,5.818812 +0.8267767,46,228.8463,5.085301 +0.6035152,68,846.6566,4.85725 +0.7582057,20,242.3354,4.23916 +0.6485803,73,851.7446,4.987295 +0.5070576,79,756.7226,4.811436 +0.5045091,25,103.9773,3.906777 +0.6615933,25,756.1777,4.188058 +0.6169842,59,584.731,4.778306 +0.755264,82,2.038796,9.136763 +0.7341297,14,955.4349,3.854338 +0.7110796,100,249.6301,5.349031 +0.739534,90,239.7671,5.337524 +0.8744877,23,767.341,4.701607 +0.5994343,47,866.2662,4.572732 +0.5812632,27,242.8247,4.10473 +0.8300101,97,539.0103,5.585397 +0.7644073,77,93.01882,5.347438 +0.7088963,47,66.22171,4.870752 +0.761716,26,537.1646,4.448955 +0.8267095,51,146.2974,5.186344 +0.920754,6,883.9607,3.797106 +0.5645494,25,607.3827,4.001519 +0.7991966,61,233.9742,5.208985 +0.9370318,13,884.9198,4.590025 +0.9296204,16,614.5821,4.707096 +0.7483718,19,893.7514,4.154285 +0.87035,16,740.2796,4.396994 +0.6614598,3,704.9057,1.987768 +0.5755732,25,332.8273,4.025758 +0.8172683,22,533.8112,4.47024 +0.7023444,65,294.7561,5.02131 +0.8701465,78,502.7068,5.568647 +0.6377123,80,469.6564,5.039544 +0.8404908,72,49.64911,5.637678 +0.8580997,35,485.0983,4.96374 +0.8447534,84,954.432,5.521624 +0.8791155,26,796.0717,4.813707 +0.5021335,82,631.2578,4.83185 +0.864138,46,627.4507,5.17786 +0.6829586,100,381.9724,5.282529 +0.6399337,92,15.78762,5.45512 +0.892801,77,966.1946,5.631521 +0.7112448,93,557.9093,5.279971 +0.9059195,89,635.9542,5.79166 +0.6766005,45,865.898,4.682495 +0.8078958,82,484.666,5.414492 +0.9209267,5,709.386,3.620243 +0.5019439,34,358.7489,4.150157 +0.796657,22,698.0417,4.405835 +0.666716,67,518.8367,4.963378 +0.5832934,67,428.1866,4.817323 +0.6353169,50,160.2554,4.70964 +0.808612,24,875.6253,4.507879 +0.5622533,55,857.164,4.6292 +0.7769792,50,48.44318,5.144435 +0.7508037,18,215.6834,4.133351 +0.8904394,24,92.84264,4.901687 +0.7551548,8,796.5009,3.387813 +0.7183715,89,264.4048,5.28108 +0.7258366,88,963.9777,5.264218 +0.7143347,99,726.5095,5.32536 +0.8406081,83,836.4688,5.503172 +0.8187647,25,938.3164,4.569789 +0.8672593,46,313.6396,5.208531 +0.7980852,36,675.2051,4.793406 +0.8890563,58,892.8864,5.42769 +0.5277273,12,994.4026,3.26243 +0.5989106,60,404.3719,4.762745 +0.5224652,4,367.6047,2.031144 +0.9332694,15,366.5174,4.693619 +0.8910453,17,532.0215,4.541773 +0.742809,13,415.2074,3.816228 +0.6804219,49,587.299,4.75754 +0.6776288,11,547.1345,3.498423 +0.6405099,11,157.8323,3.42548 +0.7646327,30,314.6165,4.578473 +0.6431464,49,41.3123,4.794521 +0.6625404,21,192.0381,4.059123 +0.6285435,63,806.1845,4.844859 +0.5573989,47,505.8864,4.502889 +0.805001,40,903.4414,4.887536 +0.6460129,98,943.8153,5.190381 +0.8322745,30,99.25623,4.832698 +0.6887781,13,941.4417,3.677867 +0.9206663,47,952.5114,5.431576 +0.5918448,45,2.249338,5.900957 +0.7669543,39,634.4666,4.774106 +0.5947878,40,650.6587,4.440511 +0.6610799,98,738.0277,5.218904 +0.8867663,81,920.1037,5.641652 +0.6770999,41,660.3415,4.614517 +0.5231052,15,935.7127,3.467006 +0.9195054,66,973.0122,5.652802 +0.9458154,25,135.1134,5.245808 +0.6825682,18,518.101,3.957023 +0.7202741,31,954.2325,4.485164 +0.6372724,84,919.9869,5.067105 +0.6639058,94,535.0358,5.198697 +0.5768879,76,126.4520,4.922606 +0.6014787,98,379.4988,5.124203 +0.843094,26,599.521,4.683426 +0.745788,45,676.9461,4.830438 +0.8906488,91,755.4079,5.73699 +0.6100992,51,501.9635,4.657766 +0.8425603,61,661.1285,5.303181 +0.7462918,5,387.18,2.870519 +0.5925678,48,820.1916,4.577148 +0.6827127,75,374.9527,5.080066 +0.7781868,89,890.89,5.38604 +0.5066091,94,951.6413,4.936563 +0.7372862,90,806.7184,5.305063 +0.719858,71,201.6342,5.133828 +0.6634803,26,830.8077,4.223751 +0.6532852,63,685.4556,4.890671 +0.8625157,38,534.4332,5.037837 +0.9113472,60,437.6948,5.568579 +0.5088646,38,321.167,4.253789 +0.7771815,76,39.75654,5.505239 +0.8329044,62,524.4686,5.289855 +0.5650291,62,74.44416,4.768244 +0.8036751,73,829.7145,5.313832 +0.8067298,57,713.1123,5.151231 +0.8660429,3,628.0595,2.714821 +0.6403124,8,167.818,3.105184 +0.5834719,5,25.55454,2.491245 +0.5572141,15,912.192,3.532799 +0.6488088,16,908.6736,3.777065 +0.7077434,53,773.6298,4.868082 +0.5422179,92,392.5441,4.981776 +0.9266149,24,283.4202,5.020614 +0.934397,36,558.1984,5.341096 +0.7949,27,155.1294,4.600911 +0.7424595,23,666.7898,4.300019 +0.8616935,5,890.3192,3.286170 +0.6884716,12,873.8338,3.603543 +0.5995778,52,668.5873,4.651719 +0.8508779,54,410.018,5.255892 +0.6660627,75,879.4836,5.038071 +0.6070051,26,267.511,4.121184 +0.9190156,63,258.2150,5.667737 +0.7015881,80,761.3171,5.152116 +0.5142113,20,188.6005,3.720824 +0.6813229,93,817.4621,5.218213 +0.5267363,21,495.4859,3.781604 +0.7904401,18,243.0097,4.239977 +0.7043728,80,941.1215,5.155511 +0.7330856,28,214.5299,4.455344 +0.771847,40,761.3398,4.803051 +0.8222126,10,122.1747,3.845657 +0.6519614,52,676.2551,4.746188 +0.6944437,36,204.5020,4.568574 +0.8187647,9,639.2002,3.701892 +0.7374063,32,35.85045,4.713835 +0.643858,77,241.4941,5.035362 +0.7042147,28,781.8938,4.370234 +0.6143113,98,315.3997,5.149002 +0.944967,80,332.0912,5.973127 +0.7394078,37,842.948,4.666253 +0.8836379,73,903.33,5.560995 +0.6131344,14,725.1093,3.581661 +0.7558923,50,587.989,4.933226 +0.9276066,11,222.4321,4.416174 +0.6907774,97,309.7564,5.281169 +0.858821,20,501.4091,4.536867 +0.5517754,94,559.6398,5.009473 +0.7344678,31,542.87,4.522231 +0.6010437,2,644.5435,1.193663 +0.6390766,76,371.5618,5.008526 +0.6255595,8,534.3747,3.062646 +0.9056744,72,223.5716,5.699772 +0.8890962,72,173.6807,5.644737 +0.9489493,64,703.9186,5.826285 +0.8001742,28,105.0511,4.668771 +0.8885515,90,246.1473,5.766628 +0.9104312,68,907.543,5.628369 +0.7987321,11,748.0737,3.819856 +0.710524,91,97.95307,5.332649 +0.7085246,40,240.5481,4.676803 +0.5066204,29,770.7431,4.022715 +0.8146826,24,45.95264,4.681249 +0.7602707,76,8.387661,6.158087 +0.5249838,19,959.5517,3.687356 +0.8816273,38,889.53,5.102017 +0.6058824,83,365.8123,5.013899 +0.7755455,39,358.9888,4.805197 +0.803905,19,248.2879,4.324838 +0.7786487,74,795.3093,5.261867 +0.5892645,56,824.3645,4.688727 +0.7503843,59,146.3536,5.084155 +0.8878726,45,829.1219,5.248587 +0.7215956,45,586.8566,4.778501 +0.6683625,75,916.5796,5.041976 +0.8200763,11,655.7469,3.8903 +0.9290939,47,171.2948,5.557564 +0.8664462,49,687.7418,5.229077 +0.6709497,80,972.34,5.092141 +0.662782,11,260.5764,3.469753 +0.856763,68,72.66898,5.582224 +0.9451141,84,73.09254,6.229147 +0.5442873,34,625.0037,4.221118 +0.5587434,8,246.4427,2.919025 +0.6964054,7,884.3078,3.09278 +0.8280353,79,445.1356,5.446695 +0.9319106,83,83.3915,6.083346 +0.9094553,33,299.5859,5.154842 +0.7082671,94,916.572,5.275416 +0.5393918,46,441.9737,4.456249 +0.9006434,37,600.3707,5.172166 +0.7570982,51,3.471025,6.915447 +0.7251017,19,79.5184,4.152646 +0.7056264,15,538.5481,3.84945 +0.6071612,50,917.938,4.633409 +0.7963605,77,742.4764,5.333493 +0.6792351,15,444.376,3.789908 +0.8117668,31,414.1619,4.726513 +0.7630922,38,325.9708,4.756469 +0.8835082,57,859.4473,5.39423 +0.7853005,3,877.1259,2.371308 +0.5823137,32,137.8372,4.257573 +0.8698176,36,404.6398,5.032198 +0.6466369,3,76.42683,1.959759 +0.8688753,39,247.9359,5.105039 +0.911857,30,291.4432,5.098902 +0.7783195,55,21.39750,5.432208 +0.7999033,19,560.2088,4.298088 +0.8507938,89,975.0028,5.578287 +0.8241017,100,629.8307,5.585552 +0.5436256,22,376.0586,3.855056 +0.6320413,11,418.4698,3.396621 +0.7373736,92,27.8193,5.610314 +0.7955,46,330.8586,4.98233 +0.8829698,38,998.1991,5.105958 +0.8849295,63,727.0993,5.471034 +0.838828,86,77.1965,5.67457 +0.8527707,86,300.0162,5.594421 +0.5038315,70,206.4996,4.725505 +0.7296358,19,49.6474,4.200878 +0.6307941,34,957.3206,4.37594 +0.6606051,52,535.1912,4.764698 +0.5302261,42,398.8626,4.36944 +0.5320133,34,655.6624,4.199522 +0.717173,53,213.497,4.912165 +0.7287862,29,414.4081,4.459878 +0.8519769,40,395.7273,5.045371 +0.8458813,37,851.0596,4.953455 +0.5080707,21,542.4744,3.747078 +0.8051663,27,488.0093,4.597385 +0.7183791,64,716.7317,5.027853 +0.74227,54,722.8267,4.955939 +0.8676867,91,430.0528,5.667708 +0.7718417,16,637.8888,4.07256 +0.6280025,55,917.1669,4.742335 +0.8805145,73,291.5224,5.583936 +0.9136214,61,624.4414,5.579953 +0.6406982,39,63.4406,4.569391 +0.7158347,60,583.5661,4.978497 +0.8338452,90,533.1334,5.546689 +0.6402985,25,74.77586,4.190889 +0.8342987,15,943.0546,4.20576 +0.6310646,10,661.5494,3.299443 +0.8832602,16,427.1417,4.460933 +0.8367622,75,996.2516,5.420939 +0.7869439,40,632.3436,4.843514 +0.7270005,31,420.2332,4.508401 +0.7344772,37,232.4106,4.676147 +0.748638,28,576.1854,4.474753 +0.7833058,29,203.2394,4.613577 +0.9264593,94,401.6628,5.94759 +0.517303,5,91.09677,2.304455 +0.8696138,3,616.2727,2.733279 +0.6337402,96,20.0967,5.407003 +0.6865132,80,684.3764,5.124317 +0.8716307,34,857.9636,4.982612 +0.8256833,36,80.41628,4.974381 +0.7768496,100,922.0373,5.461231 +0.9348923,47,185.3694,5.588766 +0.9213014,59,715.2368,5.594296 +0.637975,47,960.5189,4.641537 +0.7403673,62,260.0004,5.072181 +0.888522,24,799.4427,4.793178 +0.7292344,81,333.3577,5.231112 +0.5112314,96,867.6153,4.959088 +0.6606651,48,740.136,4.701648 +0.8307073,18,575.5492,4.349796 +0.8462718,35,58.98953,5.070533 +0.9425635,4,623.8769,3.567630 +0.7125992,51,356.6673,4.860408 +0.719433,51,698.7236,4.865044 +0.8117532,67,123.0728,5.352249 +0.51242,13,494.2803,3.311685 +0.8207607,22,87.44027,4.552963 +0.7436482,32,212.3617,4.587393 +0.857994,15,814.849,4.293433 +0.8876703,25,357.3681,4.836751 +0.9342724,5,124.0048,3.764013 +0.8253175,2,505.8184,1.922227 +0.5419264,37,468.7642,4.287065 +0.8352296,49,595.4923,5.128307 +0.7760867,32,128.3048,4.69243 +0.5874936,17,628.5572,3.707673 +0.8402649,72,948.8077,5.404287 +0.8161572,35,549.248,4.826251 +0.5657067,75,14.10146,5.09065 +0.7584987,9,751.2792,3.512529 +0.8671165,44,395.8337,5.168171 +0.6058399,72,563.812,4.905976 +0.8298326,21,873.2819,4.467329 +0.7459137,2,764.5082,1.614097 +0.795002,100,483.403,5.515984 +0.5110326,35,590.3715,4.187442 +0.5340734,44,951.0518,4.408872 +0.7296615,4,321.1628,2.560116 +0.6477494,81,326.3393,5.072265 +0.7893775,51,766.0078,5.025427 +0.8201982,99,760.9333,5.56464 +0.8019888,56,156.5017,5.176328 +0.6829048,86,804.1223,5.166731 +0.6811957,80,395.5219,5.122117 +0.5937907,90,292.4034,5.054806 +0.6994597,75,591.3511,5.105359 +0.7505089,77,420.6277,5.236085 +0.7389941,70,134.9801,5.186518 +0.7474006,68,380.0116,5.143788 +0.9283534,65,871.1195,5.693591 +0.8853698,54,781.4963,5.36612 +0.6727283,50,98.73228,4.806432 +0.9024598,58,288.6449,5.52108 +0.9422723,48,601.0573,5.59093 +0.8320503,77,451.9414,5.44044 +0.7462295,52,463.9862,4.94351 +0.6709326,14,603.4235,3.706814 +0.7027618,56,633.9876,4.900411 +0.8641877,26,399.6143,4.767001 +0.9291702,100,940.3461,5.973414 +0.8258535,14,672.2688,4.121168 +0.813817,78,424.6809,5.399575 +0.8729098,22,278.2921,4.682318 +0.8000553,48,633.6019,5.012 +0.7571338,99,132.9017,5.47651 +0.585785,55,746.6153,4.669697 +0.5801946,49,803.9324,4.571639 +0.8304912,39,984.3345,4.941709 +0.9205222,49,108.9491,5.58668 +0.753516,41,940.5831,4.775568 +0.658206,12,818.7406,3.534411 +0.7980743,76,100.0541,5.42265 +0.8053866,43,924.0142,4.941535 +0.6634431,67,454.244,4.95901 +0.6276517,99,378.1968,5.176032 +0.9353756,16,152.446,4.803419 +0.7972733,24,216.8124,4.500071 +0.7848158,26,324.9694,4.517971 +0.924885,68,424.4133,5.725171 +0.8978605,35,36.21963,5.43976 +0.893118,59,16.27533,6.286604 +0.6643898,43,137.3643,4.656881 +0.5086009,31,757.6005,4.08214 +0.5289369,3,46.10701,1.668507 +0.6662625,100,811.5261,5.241232 +0.6849102,6,759.6397,2.899159 +0.6902612,59,737.0007,4.912149 +0.7061771,45,647.2657,4.74473 +0.667381,51,277.129,4.773309 +0.7089084,90,950.5108,5.24631 +0.726764,5,33.05932,2.874905 +0.932936,49,645.2856,5.539989 +0.8955401,36,128.7913,5.205502 +0.7664723,97,60.16786,5.574492 +0.6150861,41,680.7598,4.496292 +0.674237,67,329.4989,4.984961 +0.5336574,13,108.5183,3.364797 +0.760271,48,587.2861,4.913527 +0.7475153,29,444.9428,4.503107 +0.6400046,64,908.336,4.876023 +0.6650242,43,16.14885,4.913769 +0.6937891,80,561.2694,5.140687 +0.887406,83,32.14545,6.114019 +0.904731,2,377.119,2.365172 +0.8471754,19,624.3107,4.449655 +0.5666982,16,39.5771,3.662043 +0.9328277,11,480.6788,4.431356 +0.7922494,87,443.7334,5.417071 +0.8112987,95,226.9083,5.552231 +0.6133779,10,491.8312,3.261789 +0.6110203,68,785.7354,4.870548 +0.8970352,34,271.7124,5.11961 +0.8785843,67,798.9047,5.486443 +0.6724811,89,781.2876,5.171774 +0.6222045,16,807.4755,3.721919 +0.8502613,74,862.1943,5.455025 +0.5398314,29,411.4463,4.083856 +0.6792529,56,759.8733,4.852141 +0.6765828,24,468.7599,4.189076 +0.713825,69,830.8558,5.070837 +0.9256529,49,299.9408,5.524863 +0.5631582,20,253.5615,3.81113 +0.6424909,83,198.6384,5.092229 +0.7386519,76,21.18628,5.548556 +0.6851306,39,706.3514,4.591613 +0.7202942,62,387.4803,5.018255 +0.8902591,33,797.2625,5.037685 +0.5598123,7,790.0233,2.774130 +0.759497,10,520.5702,3.617932 +0.8977739,69,917.4554,5.580563 +0.729828,36,97.78912,4.682077 +0.5290516,15,958.4097,3.478331 +0.9282293,79,384.0795,5.847463 +0.8311524,21,158.7927,4.51141 +0.6868337,35,99.9053,4.557294 +0.6279094,49,79.26277,4.708953 +0.9039485,84,445.2753,5.756844 +0.898548,62,490.6054,5.526963 +0.8490779,40,810.5851,5.021547 +0.7652964,32,334.021,4.629276 +0.8686192,25,956.7512,4.739846 +0.6570135,70,142.3589,5.008457 +0.6120404,22,960.5204,3.980529 +0.6727586,61,732.1227,4.902816 +0.9390417,70,978.3288,5.805469 +0.6322727,65,42.49298,4.986196 +0.8420094,59,579.1828,5.28088 +0.8502256,57,885.6972,5.275624 +0.7768617,27,619.6548,4.516229 +0.5832149,72,206.8745,4.881147 +0.844921,63,888.1342,5.328041 +0.6436299,6,915.0828,2.795881 +0.7765341,94,958.9544,5.418364 +0.500027,83,214.0714,4.845321 +0.9493338,66,46.71093,6.250622 +0.5066988,9,639.482,2.930763 +0.7462216,11,396.7089,3.672843 +0.567244,52,520.2303,4.59758 +0.8421211,98,83.80207,5.765354 +0.8875776,32,428.5642,5.016232 +0.6608919,71,969.344,4.988638 +0.8039491,24,203.3197,4.522054 +0.8620975,8,511.9531,3.760100 +0.864312,6,502.6081,3.490271 +0.6693177,67,461.6307,4.969838 +0.5074913,77,596.7396,4.794191 +0.7032736,67,357.7343,5.0407 +0.8214841,35,854.0057,4.836031 +0.7366083,19,375.6881,4.133019 +0.6330116,85,361.0845,5.07839 +0.8963766,68,497.6582,5.579325 +0.9159304,52,604.829,5.484746 +0.6595075,7,986.7414,3.000678 +0.5753076,17,578.6994,3.68411 +0.5580612,50,856.1792,4.54921 +0.6553601,85,61.36344,5.201974 +0.900686,15,133.0886,4.539378 +0.6829527,86,544.1058,5.171349 +0.8457578,22,128.4829,4.613213 +0.9212189,71,304.4749,5.749921 +0.8918972,83,346.32,5.707472 +0.5864152,95,2.099936,6.718664 +0.5686968,50,82.45168,4.604964 +0.899514,11,82.5313,4.303197 +0.795062,72,482.2151,5.291828 +0.6483403,79,628.6701,5.046107 +0.7940012,97,252.8391,5.515253 +0.8008343,49,305.2234,5.045411 +0.8463603,89,591.3357,5.574033 +0.7679076,88,765.9055,5.356732 +0.6129822,86,190.9238,5.065058 +0.794287,74,65.87518,5.445131 +0.595042,22,736.6731,3.948656 +0.7492896,12,957.5914,3.755035 +0.5575823,16,953.6576,3.592982 +0.891035,34,198.4613,5.108404 +0.8700615,67,735.4535,5.456826 +0.6102607,74,615.7466,4.932702 +0.6442439,42,85.62474,4.617894 +0.9296985,6,933.5528,3.861461 +0.7083424,3,806.3799,2.120714 +0.8107343,46,923.9881,5.005333 +0.6170151,30,866.2096,4.249458 +0.5470541,19,480.3602,3.730668 +0.8595827,78,627.839,5.526631 +0.6772016,44,234.3043,4.684579 +0.6110317,58,695.5628,4.753752 +0.8653476,54,880.023,5.289088 +0.7431905,78,428.9381,5.228603 +0.8290363,76,533.6956,5.418502 +0.5193487,26,855.5284,3.952156 +0.8672889,90,488.9548,5.654752 +0.5127307,25,169.0594,3.915601 +0.7821378,91,451.9449,5.422582 +0.765217,30,465.913,4.572756 +0.821991,76,505.045,5.399814 +0.7502065,50,227.0218,4.941853 +0.5465306,12,906.6364,3.299862 +0.8074795,41,46.12214,5.096338 +0.7318816,61,239.4124,5.044108 +0.7379262,36,455.7286,4.648779 +0.7981295,71,324.1441,5.300941 +0.5761634,55,982.1628,4.652028 +0.5827038,70,810.1251,4.843766 +0.6060221,9,645.4407,3.139188 +0.929337,65,933.377,5.697937 +0.5944697,42,333.9487,4.483901 +0.5904768,42,39.00159,4.555614 +0.6237111,24,826.2296,4.077733 +0.7321938,99,546.025,5.365483 +0.8092262,24,113.7361,4.56686 +0.7384458,72,680.5146,5.154358 +0.7702537,12,562.1573,3.815985 +0.6441926,88,98.59672,5.168001 +0.7592311,29,482.56,4.530664 +0.5798336,5,606.1835,2.437498 +0.6674997,33,177.1550,4.446129 +0.7564904,24,553.4765,4.37112 +0.8303686,26,783.7082,4.638198 +0.7687771,99,716.0814,5.439636 +0.8210636,58,516.3427,5.208918 +0.8839874,13,236.9632,4.306785 +0.8675836,88,9.0463,7.04867 +0.5933452,12,885.4963,3.394909 +0.6987614,97,167.3294,5.31902 +0.6083984,32,348.0146,4.292166 +0.781873,49,182.8657,5.014807 +0.6179727,64,338.0714,4.846711 +0.5738579,28,887.2536,4.112514 +0.8718374,74,916.9767,5.52622 +0.695573,57,619.4104,4.899196 +0.7813837,45,763.106,4.914116 +0.7587202,56,243.6302,5.042987 +0.8526122,69,335.588,5.439119 +0.679438,25,3.925323,5.244888 +0.9018107,28,796.7149,4.970157 +0.9031522,60,560.215,5.521575 +0.620925,60,188.3965,4.815776 +0.5398193,23,962.0695,3.883163 +0.8001978,86,444.2741,5.429201 +0.8743729,85,382.2575,5.650717 +0.583254,25,654.4453,4.035908 +0.6820578,83,600.6018,5.143397 +0.7261496,39,706.9857,4.67826 +0.5349857,96,677.6188,4.996885 +0.8780665,26,145.6244,4.866995 +0.5110006,22,347.6669,3.795356 +0.9457965,31,497.3779,5.321787 +0.7104668,42,449.4024,4.706034 +0.926931,2,582.9908,2.539423 +0.6842416,48,820.8916,4.746617 +0.8984944,7,297.3639,3.820169 +0.5931354,16,962.1802,3.662621 +0.6215017,70,110.3659,4.950248 +0.5249559,9,451.851,2.968919 +0.6870519,78,313.5085,5.120267 +0.6895417,68,32.65226,5.201474 +0.6604548,62,818.0275,4.890735 +0.7258901,81,356.6513,5.222353 +0.8189167,84,452.3966,5.462345 +0.780193,75,79.63504,5.388074 +0.6710222,48,327.2395,4.731501 +0.8660183,76,809.9751,5.525832 +0.9385447,71,319.9745,5.852341 +0.8408653,45,476.6827,5.089412 +0.8506329,22,976.784,4.573917 +0.6274595,24,889.7172,4.084769 +0.7895091,91,31.23733,5.747325 +0.6720448,26,258.3145,4.253512 +0.6572791,76,163.3674,5.063448 +0.7308232,24,755.801,4.305953 +0.6334011,72,716.3932,4.951746 +0.875161,23,122.4376,4.770516 +0.6127634,92,978.5912,5.089453 +0.5246284,89,713.353,4.926033 +0.895216,15,353.697,4.469064 +0.7840556,2,170.7737,1.756434 +0.8611382,86,410.3382,5.609362 +0.5039933,89,312.2973,4.898963 +0.7011006,71,974.6255,5.064487 +0.7574644,99,511.3727,5.420484 +0.7464697,8,351.1746,3.36846 +0.9243401,74,892.4622,5.755217 +0.6147572,43,770.8194,4.532012 +0.9229638,52,813.2275,5.51579 +0.8206974,12,636.0771,3.9702 +0.7576767,21,246.3065,4.278102 +0.5283881,4,684.9849,2.043687 +0.6583222,39,346.022,4.54592 +0.6346257,96,211.0651,5.17961 +0.5608158,37,735.7256,4.317794 +0.7522666,60,914.4428,5.051786 +0.5487665,10,500.9638,3.125392 +0.6703224,94,579.5087,5.209303 +0.7221054,69,316.5972,5.103682 +0.8728384,10,63.56726,4.100998 +0.5574435,57,43.56925,4.718101 +0.8063746,62,131.3486,5.275156 +0.8943675,97,182.5163,5.864757 +0.6457493,5,430.6312,2.596322 +0.5910911,27,686.4856,4.114989 +0.659809,33,223.4219,4.424611 +0.5089013,37,85.17943,4.24973 +0.9337569,65,640.6944,5.733591 +0.8916446,68,81.18035,5.714367 +0.726869,88,469.9061,5.276224 +0.7227274,45,508.542,4.782788 +0.7008706,50,413.0376,4.818512 +0.5846127,3,629.5136,1.789435 +0.9457911,23,494.1918,5.106915 +0.7482145,76,977.4924,5.209178 +0.6433126,87,417.9693,5.110869 +0.5793081,29,982.1014,4.151251 +0.6934788,68,501.5589,5.025896 +0.6311162,48,915.3363,4.645259 +0.9031826,38,518.1569,5.206703 +0.856174,57,907.4092,5.294779 +0.6691795,35,226.9216,4.490414 +0.80142,93,697.1788,5.475566 +0.7584387,40,965.8347,4.768409 +0.8248351,38,591.9851,4.912069 +0.9428126,94,66.87335,6.314711 +0.7393929,32,643.1309,4.556659 +0.7509817,18,128.0423,4.150378 +0.944607,42,636.6847,5.51609 +0.6878091,82,735.6016,5.143399 +0.7364006,18,549.7353,4.082325 +0.5965991,73,703.3531,4.898591 +0.8115628,62,803.0491,5.221745 +0.6576455,82,477.9923,5.092711 +0.7706121,59,846.8496,5.082764 +0.6448159,65,988.0204,4.895462 +0.5759028,54,17.82405,4.816721 +0.5813438,49,489.6304,4.576707 +0.5037404,91,487.9228,4.911552 +0.8824765,13,813.0392,4.276511 +0.62344,75,81.9528,5.020752 +0.5867614,68,342.1725,4.836769 +0.8069038,68,679.784,5.276183 +0.8602681,89,264.0901,5.649063 +0.5375624,44,553.4245,4.416887 +0.5863542,75,189.5063,4.918604 +0.6014319,30,163.3551,4.237540 +0.734196,84,993.4357,5.248882 +0.6280806,44,466.1447,4.578057 +0.7870008,62,371.5928,5.172704 +0.5063825,14,845.189,3.369992 +0.7141679,39,317.1110,4.663328 +0.7700549,50,816.0496,4.962596 +0.7781668,81,587.8302,5.327848 +0.7701106,54,583.5682,5.022871 +0.8517387,17,358.7311,4.384958 +0.6512473,77,787.2048,5.030932 +0.6597704,41,623.5281,4.580925 +0.6045337,33,783.7763,4.303910 +0.6747628,65,275.5721,4.967814 +0.5754901,25,392.8563,4.02431 +0.5645206,4,78.64738,2.137807 +0.7526943,52,137.1844,5.000037 +0.8789649,41,763.2992,5.148074 +0.796924,51,58.16972,5.192775 +0.7044938,38,503.8397,4.615158 +0.5710955,43,426.3761,4.458341 +0.6121272,21,713.5597,3.941871 +0.8788232,25,983.937,4.780319 +0.9148775,11,63.67191,4.427849 +0.7441963,25,541.7408,4.373999 +0.8315873,82,310.8302,5.494771 +0.6930633,68,175.8612,5.051427 +0.6677114,31,610.1527,4.377058 +0.6290873,53,949.2253,4.716316 +0.7083651,67,177.3641,5.072448 +0.9437557,90,488.9657,6.019301 +0.8221788,6,101.5286,3.347645 +0.8082465,80,859.3798,5.387913 +0.8956217,31,760.4856,5.016639 +0.7809016,95,449.3862,5.44901 +0.6812002,17,164.7530,3.920066 +0.6770415,47,62.6635,4.800145 +0.6956216,54,702.0819,4.858225 +0.5366549,97,248.0049,5.016196 +0.8522364,42,803.0165,5.067515 +0.9384832,56,347.3381,5.689679 +0.8922538,100,325.7634,5.834656 +0.6228205,60,166.9741,4.822661 +0.7344996,76,784.5329,5.182257 +0.8145633,87,443.7463,5.474821 +0.5531538,26,108.4227,4.032707 +0.7911365,68,662.1342,5.236089 +0.8146687,46,745.2562,5.018899 +0.5045028,66,874.9952,4.67314 +0.640851,76,904.7578,5.002078 +0.8506346,21,911.0278,4.537878 +0.7239757,93,350.5313,5.315068 +0.6127368,28,218.7057,4.197065 +0.7262992,77,994.1657,5.172035 +0.8306157,30,895.4145,4.747346 +0.5229464,87,706.9792,4.906993 +0.6674732,91,347.1094,5.189795 +0.6238308,43,127.4031,4.577679 +0.7578883,49,72.34529,5.019715 +0.78206,64,247.9061,5.196063 +0.7060626,53,793.0226,4.86442 +0.6372835,15,378.8189,3.699193 +0.6513043,34,564.4485,4.41867 +0.9269004,43,806.0094,5.409004 +0.9135508,18,809.8735,4.696129 +0.5798318,49,812.5945,4.570963 +0.864919,17,580.5689,4.427441 +0.8151598,69,756.3115,5.306729 +0.7001978,67,902.1454,5.021915 +0.8482526,13,89.97161,4.201033 +0.6041064,73,262.3566,4.923191 +0.5754905,36,946.9922,4.320669 +0.8850153,77,726.441,5.60595 +0.8623828,64,202.0986,5.44658 +0.6556572,97,77.84997,5.277824 +0.751576,94,661.5748,5.367792 +0.7555403,99,118.5165,5.481632 +0.5605083,11,765.1715,3.243285 +0.545633,12,486.515,3.299668 +0.5149418,46,119.3487,4.42927 +0.7158448,21,82.71454,4.213274 +0.87695,16,805.7746,4.423861 +0.5104682,85,685.208,4.870765 +0.7702164,39,788.6638,4.779683 +0.5417859,11,694.7184,3.205555 +0.6259542,62,558.4269,4.831414 +0.7254502,8,903.2036,3.305184 +0.5322428,19,448.2684,3.703109 +0.8516168,21,844.6598,4.542132 +0.7967247,81,216.2363,5.405972 +0.6988626,80,398.184,5.156267 +0.833163,24,220.3202,4.611781 +0.9120844,14,544.9784,4.493611 +0.502613,89,313.4999,4.896737 +0.6447795,52,7.163189,5.317785 +0.9164835,25,225.1239,5.001143 +0.7750148,50,358.1708,4.988486 +0.9164688,86,323.5733,5.847662 +0.8563804,73,91.323,5.596053 +0.8697922,42,991.5779,5.126615 +0.9432807,64,453.3479,5.799377 +0.9311001,80,103.5973,6.007708 +0.84446,67,251.8546,5.404865 +0.6635903,20,436.5115,4.008136 +0.8023665,15,670.167,4.105092 +0.7924662,79,943.1383,5.338195 +0.8786404,44,880.9335,5.194768 +0.9433458,72,847.0615,5.856031 +0.6966925,84,899.6899,5.175258 +0.6961606,77,572.1535,5.118006 +0.6924574,16,650.4595,3.874692 +0.9265463,25,661.6503,5.024829 +0.6437473,13,478.7481,3.579849 +0.5920152,35,370.9993,4.333462 +0.7307583,80,895.2044,5.208895 +0.6856924,81,303.132,5.145253 +0.8606019,57,188.5887,5.363111 +0.6598683,22,774.669,4.077506 +0.8261763,32,297.7024,4.802724 +0.8439954,7,778.95,3.553677 +0.8775046,82,465.4186,5.631184 +0.766783,81,881.4362,5.295545 +0.7614452,2,817.9402,1.668020 +0.8634684,70,977.549,5.45882 +0.6649203,92,541.7072,5.18534 +0.8888453,31,648.309,4.989178 +0.9191742,96,278.8759,5.942768 +0.6181284,38,673.0179,4.442334 +0.5762689,58,465.1237,4.696843 +0.8854675,82,929.2616,5.644522 +0.5881515,8,892.8005,2.978079 +0.5335778,10,528.7554,3.094167 +0.6367293,77,205.4550,5.026452 +0.6616144,75,799.0715,5.030716 +0.6048582,38,636.1787,4.418348 +0.8995238,30,970.224,5.007292 +0.6125322,42,38.40748,4.607011 +0.891409,32,725.0784,5.021755 +0.5125611,13,124.2224,3.320415 +0.8535288,71,96.49186,5.557986 +0.8477504,10,847.9913,3.902614 +0.6988878,32,432.6877,4.470823 +0.6028712,81,661.689,4.984862 +0.6450516,6,527.1702,2.800764 +0.5884289,64,623.1206,4.788881 +0.8519591,94,654.6818,5.625326 +0.5619964,37,966.9962,4.31885 +0.5579332,41,643.9374,4.395229 +0.6932872,91,407.4764,5.235375 +0.8612836,67,490.0358,5.435572 +0.5966854,73,474.3225,4.902069 +0.704552,51,421.4517,4.840551 +0.8476425,22,486.5986,4.572071 +0.7455392,38,414.5594,4.709415 +0.8924924,54,406.7609,5.41228 +0.8657634,48,108.6856,5.306214 +0.8560119,72,307.5698,5.483292 +0.838315,27,158.7666,4.737385 +0.7618864,59,65.95942,5.182572 +0.7062403,37,541.1921,4.597449 +0.5729077,11,26.03542,3.336355 +0.6253862,5,929.4751,2.544401 +0.919899,84,661.6104,5.820895 +0.701458,50,923.4494,4.810711 +0.601871,15,289.9652,3.627385 +0.7481714,48,373.6807,4.893143 +0.7421667,60,804.6881,5.030723 +0.9165294,21,968.5381,4.829235 +0.7708394,93,859.6188,5.399452 +0.6857544,59,108.6902,4.954433 +0.8683556,16,234.4982,4.412145 +0.5154821,4,609.3116,2.01444 +0.8063035,44,448.0451,4.971776 +0.7653335,48,548.0994,4.92658 +0.800019,87,625.9536,5.428938 +0.6377652,28,644.537,4.234561 +0.7187339,44,338.4984,4.763994 +0.6851251,32,243.1097,4.451062 +0.6022412,49,916.9572,4.609347 +0.6934007,23,519.9725,4.189089 +0.6338835,8,207.3362,3.087767 +0.8626223,18,979.8857,4.45892 +0.6755484,73,703.2272,5.038301 +0.8819856,100,183.9347,5.83262 +0.7952068,13,281.5281,3.970075 +0.7492558,34,689.2815,4.626091 +0.689057,83,75.17532,5.240701 +0.7983914,96,711.9366,5.48896 +0.8984775,14,973.5494,4.413143 +0.8141442,39,231.5305,4.924353 +0.927646,55,854.625,5.57916 +0.5626983,30,684.469,4.150555 +0.7940533,28,398.7971,4.597789 +0.8263922,74,727.1975,5.38656 +0.9274736,27,920.6118,5.081359 +0.7471762,63,895.0358,5.07554 +0.7025308,49,451.5482,4.805477 +0.5272053,18,164.8201,3.651766 +0.8319172,40,758.38,4.967654 +0.8407389,92,280.317,5.604963 +0.6721226,40,6.242629,5.294283 +0.6011962,76,675.616,4.935894 +0.5040908,82,219.5354,4.842745 +0.5521607,6,234.1007,2.589530 +0.7266228,24,46.95129,4.402272 +0.8604109,36,333.7737,5.002898 +0.8973122,66,524.181,5.561721 +0.5554781,48,787.1215,4.513639 +0.6098639,53,319.3389,4.691742 +0.8863365,83,519.4829,5.669461 +0.8581715,96,536.0489,5.664068 +0.7726931,98,199.6556,5.481125 +0.7523195,40,783.0637,4.755842 +0.5606664,45,776.2248,4.472297 +0.7087404,100,453.8624,5.328639 +0.7956351,55,504.8159,5.102364 +0.816261,67,773.2044,5.289053 +0.8999163,92,420.2012,5.800766 +0.6197997,3,506.0942,1.878208 +0.6030411,33,786.2126,4.301144 +0.833885,85,995.8172,5.496898 +0.9029965,88,937.1946,5.762388 +0.8393617,64,63.50675,5.494906 +0.9094628,41,121.4946,5.379464 +0.8082,49,983.7319,5.043322 +0.8964454,46,638.3635,5.305559 +0.5779769,61,192.9905,4.749822 +0.8953077,99,750.7118,5.810478 +0.581519,22,535.7868,3.924285 +0.9164601,24,945.2403,4.929528 +0.8705304,55,339.1753,5.344138 +0.7342698,10,61.29176,3.600732 +0.7701855,63,524.8687,5.135257 +0.863639,18,860.5287,4.46405 +0.8513909,79,921.4234,5.501578 +0.9324593,18,963.6303,4.811038 +0.9403725,92,512.2976,6.008025 +0.7510038,16,726.3639,4.016014 +0.6960944,78,175.0947,5.157011 +0.6724534,82,183.5058,5.143424 +0.8803488,29,765.2642,4.901266 +0.9448258,94,209.1915,6.114054 +0.8993888,13,662.1018,4.360755 +0.7814681,54,156.3016,5.093745 +0.740741,3,390.4553,2.222361 +0.6476472,99,141.3868,5.240183 +0.6141115,21,526.9791,3.947356 +0.6393056,31,909.5848,4.318396 +0.8372989,9,87.88783,3.819755 +0.8913588,42,525.3397,5.223824 +0.7460777,97,749.0455,5.375651 +0.5112242,26,501.4006,3.939324 +0.7577458,4,659.9605,2.643840 +0.5752648,35,388.7491,4.302567 +0.69794,61,652.5404,4.95284 +0.9204288,8,829.281,4.062277 +0.8043629,61,921.2296,5.189422 +0.9433404,98,119.9997,6.206997 +0.8913393,73,235.3741,5.64058 +0.5868418,24,200.3035,4.018163 +0.6991804,42,813.9534,4.675992 +0.8727032,28,115.8981,4.919729 +0.9020416,21,939.1495,4.752712 +0.830164,78,445.4839,5.444142 +0.8304871,63,98.00515,5.389406 +0.8657783,67,686.2381,5.443104 +0.870506,51,183.5218,5.322739 +0.8817822,40,470.2017,5.15173 +0.5152709,11,504.1909,3.153231 +0.6023214,34,410.1415,4.328208 +0.708448,17,340.4375,3.970749 +0.9284348,78,900.37,5.811991 +0.8747284,41,79.9742,5.264772 +0.7587422,93,879.5506,5.37222 +0.81904,34,973.761,4.805789 +0.8129114,37,59.32467,4.991653 +0.6677408,14,262.6832,3.706778 +0.5907886,29,692.5856,4.173685 +0.6851459,68,326.6066,5.01713 +0.7346132,39,449.1581,4.702737 +0.6277834,44,188.2139,4.592086 +0.857076,79,228.5752,5.565726 +0.7489966,44,331.7083,4.83284 +0.6398296,58,686.1311,4.805169 +0.7281883,54,245.0005,4.945851 +0.61747,83,262.5449,5.039826 +0.6492152,56,272.5927,4.808709 +0.9269381,25,711.9383,5.025897 +0.7535203,74,871.2197,5.203336 +0.8108911,38,654.9283,4.869824 +0.8137289,82,277.0395,5.448624 +0.8100311,4,870.7871,2.823736 +0.9225277,79,451.9067,5.808043 +0.8175055,83,875.792,5.43713 +0.6985237,65,263.3531,5.016426 +0.8551307,66,156.4809,5.461053 +0.5031995,86,7.001363,5.14592 +0.7062228,81,695.2352,5.170916 +0.9492496,81,170.2286,6.075235 +0.6817957,56,515.211,4.861132 +0.6240201,92,331.1661,5.120305 +0.8650343,61,935.077,5.371217 +0.6146213,88,46.13228,5.165465 +0.9255326,43,735.5249,5.402824 +0.8170676,83,930.0177,5.435128 +0.5741391,5,645.2055,2.424253 +0.6910738,64,560.4809,4.975904 +0.5667899,3,781.4491,1.745705 +0.6861743,41,934.9234,4.630133 +0.8817557,85,164.7456,5.732311 +0.6339924,22,542.5813,4.026713 +0.6946548,5,854.4328,2.720764 +0.7252389,25,47.75734,4.431607 +0.7248704,81,953.853,5.204872 +0.6368351,80,951.1507,5.031408 +0.780265,18,810.2112,4.193673 +0.6341829,34,150.5378,4.406329 +0.9303506,5,552.1346,3.693135 +0.8295861,30,611.3115,4.748776 +0.800437,23,167.5824,4.484621 +0.5951078,87,539.6616,5.024872 +0.6653801,20,549.5701,4.010106 +0.6656014,22,913.4959,4.088659 +0.9053822,25,937.0722,4.901416 +0.8449916,30,823.8114,4.794852 +0.6178617,24,945.78,4.065802 +0.5110322,72,569.7987,4.750247 +0.6529969,92,117.9059,5.207349 +0.9252288,41,941.357,5.363595 +0.9405128,87,402.2649,5.984612 +0.9123847,3,119.6966,3.015796 +0.610349,94,444.4629,5.107595 +0.6394546,96,102.4159,5.218884 +0.706229,86,170.1007,5.248948 +0.7921645,3,803.7297,2.396599 +0.9096007,88,482.1117,5.810334 +0.8948665,73,65.74187,5.824915 +0.931119,68,116.2202,5.876182 +0.9165443,50,655.079,5.459218 +0.6190295,22,607.6026,3.996217 +0.9054205,97,967.335,5.835145 +0.8613796,80,361.8505,5.56635 +0.6320835,95,473.5218,5.151439 +0.6012724,51,913.223,4.638169 +0.5516284,74,14.16722,5.037012 +0.8876435,44,426.4689,5.246741 +0.8209103,26,568.8558,4.612582 +0.7733602,28,610.5125,4.535907 +0.5438819,12,284.5485,3.298577 +0.6699824,89,343.1282,5.179079 +0.7670792,75,877.652,5.243034 +0.856828,73,514.2097,5.477684 +0.6147122,17,344.4332,3.765827 +0.5102219,13,897.3323,3.306147 +0.8687245,52,85.07123,5.408425 +0.6356558,41,655.0069,4.534577 +0.607294,78,252.4761,4.977811 +0.6605997,68,380.34,4.967165 +0.6970468,99,412.926,5.300827 +0.7371676,20,761.8237,4.170572 +0.8613029,48,949.6652,5.191448 +0.7518092,57,25.86171,5.303964 +0.8428192,94,605.0885,5.599075 +0.7754938,22,904.471,4.345341 +0.5720353,82,105.3506,4.975982 +0.8558049,75,827.7432,5.482474 +0.8848964,64,442.2547,5.494559 +0.7725104,63,300.7922,5.154277 +0.6358212,60,676.6013,4.823146 +0.8280062,92,957.2909,5.533657 +0.5019211,18,683.6793,3.596421 +0.7994588,97,325.9287,5.518704 +0.6258279,10,352.8465,3.290894 +0.7595384,81,112.2573,5.354279 +0.898181,89,697.1813,5.755352 +0.5527367,6,865.4217,2.587159 +0.6229918,43,282.1226,4.557137 +0.5935787,90,214.6085,5.060573 +0.8400638,36,883.338,4.91393 +0.7590297,81,421.8259,5.290432 +0.8063303,11,98.57122,3.888847 +0.9430843,5,19.57140,4.149973 +0.6029501,27,792.172,4.136586 +0.5844242,64,290.7809,4.789975 +0.8108061,15,392.7209,4.137662 +0.5286417,14,965.8804,3.412557 +0.5333612,94,692.2099,4.97916 +0.7492556,69,983.1755,5.143672 +0.926265,15,476.2882,4.638733 +0.901209,6,680.2512,3.675874 +0.5610927,42,669.7171,4.419549 +0.5780818,48,396.2899,4.556932 +0.761414,30,31.87208,4.754897 +0.7238886,52,252.8219,4.907474 +0.8668956,6,686.2334,3.499596 +0.6828703,56,660.588,4.86045 +0.930659,17,121.4522,4.836156 +0.503826,12,823.3895,3.215834 +0.7849627,85,525.2481,5.379389 +0.8966239,84,598.0863,5.715069 +0.5897803,74,21.46131,5.072482 +0.5022443,68,429.8997,4.69497 +0.798633,54,655.1404,5.092552 +0.7352211,86,161.5042,5.314463 +0.6972101,3,406.9489,2.089562 +0.7888295,34,949.8539,4.721846 +0.7582605,77,560.0893,5.247737 +0.6223786,75,389.7527,4.968524 +0.6780707,67,432.9265,4.987482 +0.8433638,46,590.8193,5.108756 +0.8183657,29,757.525,4.685691 +0.8324944,20,900.0447,4.436677 +0.7936328,36,495.8806,4.785875 +0.7604421,8,317.4111,3.409744 +0.722952,51,47.86064,5.007258 +0.7312193,80,784.4329,5.211266 +0.7637257,45,218.7267,4.897432 +0.7031336,65,577.7302,5.010621 +0.886668,9,434.1708,3.983958 +0.939302,13,614.371,4.612743 +0.8505232,65,935.7227,5.366438 +0.8110883,48,767.812,5.039261 +0.6221106,48,331.0559,4.638021 +0.9313041,23,79.16897,5.136056 +0.632553,99,572.1408,5.178838 +0.6117593,62,895.7685,4.803032 +0.8212386,84,405.0264,5.471996 +0.5869189,65,147.9002,4.819915 +0.7997307,32,334.5291,4.721025 +0.6555177,53,274.5379,4.77934 +0.5538914,26,130.3128,4.030347 +0.7199913,91,864.055,5.276691 +0.9277619,75,665.7905,5.790155 +0.9266476,91,118.5833,6.043288 +0.8831789,55,14.28143,6.25009 +0.6372527,89,74.82464,5.18037 +0.75038,75,634.4639,5.209853 +0.8406942,28,641.8783,4.731309 +0.8768606,37,974.1806,5.062729 +0.7979076,28,565.2656,4.60292 +0.8365606,35,939.8184,4.881241 +0.7960196,84,160.4486,5.44722 +0.8787808,17,712.3158,4.482225 +0.5333636,32,338.1081,4.155507 +0.647125,32,484.6652,4.363403 +0.8641002,5,411.5565,3.302591 +0.7868153,30,324.2991,4.636093 +0.7962481,54,56.46181,5.23915 +0.8145667,10,880.2147,3.783172 +0.5658414,58,782.1528,4.675848 +0.9341618,51,552.7404,5.579226 +0.6841805,57,138.5348,4.912799 +0.9119638,53,161.4325,5.547657 +0.5188456,27,33.57959,4.037935 +0.757641,73,730.3337,5.205093 +0.9349815,18,982.9337,4.828403 +0.5066024,6,485.5756,2.487666 +0.5979052,67,867.3325,4.836706 +0.8607715,41,775.3904,5.08006 +0.7254145,87,609.8498,5.260913 +0.7255659,100,961.0768,5.351339 +0.5150924,99,445.5918,4.990515 +0.5446147,28,289.2843,4.065534 +0.9469407,99,475.0219,6.103677 +0.7343403,80,926.2906,5.215986 +0.5975759,29,512.1599,4.188007 +0.837378,9,599.9462,3.769414 +0.9442889,59,495.7354,5.749563 +0.8250957,97,715.8522,5.565506 +0.6550313,90,432.9978,5.15527 +0.7075834,9,212.4720,3.386328 +0.7454893,24,390.3709,4.348304 +0.695866,36,249.5993,4.56663 +0.60671,22,336.0653,3.976246 +0.8412084,9,965.9642,3.780548 +0.6861445,46,171.8996,4.746207 +0.9261788,43,673.9801,5.40854 +0.861084,90,308.0283,5.651429 +0.7909505,83,304.5175,5.3931 +0.5625539,3,679.3792,1.735618 +0.647025,10,605.1443,3.335524 +0.921531,93,231.2533,5.948928 +0.9164885,67,188.4395,5.720053 +0.7676392,83,989.0182,5.31298 +0.5940685,10,497.944,3.220156 +0.8676697,32,789.5488,4.924061 +0.7076742,29,67.17613,4.479062 +0.6318245,52,265.5441,4.720642 +0.571069,65,8.232299,5.137 +0.7430801,81,823.1498,5.244276 +0.7164226,8,284.3927,3.288375 +0.5729531,38,622.0593,4.361272 +0.5541727,55,264.4454,4.62462 +0.948875,15,670.5908,4.803963 +0.768947,100,119.684,5.521015 +0.921052,46,131.9058,5.519767 +0.568908,55,421.9705,4.64489 +0.5640359,47,556.3127,4.513669 +0.6904132,68,801.1595,5.014499 +0.6086555,12,922.6924,3.426733 +0.6123029,39,873.346,4.450664 +0.5088076,91,517.9313,4.919105 +0.87053,35,798.1675,5.000599 +0.8372315,14,616.9215,4.161282 +0.8365753,44,889.9804,5.049199 +0.6835763,100,733.1015,5.273686 +0.7802409,41,47.49915,5.001162 +0.7647672,98,640.1398,5.425595 +0.9454551,71,637.387,5.869999 +0.8679253,35,22.26791,5.454062 +0.7313009,100,178.5980,5.40588 +0.6704843,23,444.0414,4.141148 +0.659972,35,880.514,4.455541 +0.7058613,44,697.5712,4.726399 +0.762979,66,935.1429,5.143505 +0.7887987,58,50.98269,5.287288 +0.8073858,99,622.5568,5.534763 +0.6100832,79,867.3335,4.977132 +0.544471,3,459.738,1.692861 +0.8465874,95,196.6390,5.666055 +0.683948,55,459.1472,4.853582 +0.9185709,49,650.7622,5.456321 +0.5765227,5,679.4412,2.429649 +0.6383592,62,148.6722,4.880552 +0.6025905,56,325.3961,4.720113 +0.8848486,97,97.54827,5.90136 +0.7362832,26,218.8576,4.402630 +0.5784452,59,492.3637,4.71295 +0.6147081,36,333.0535,4.399336 +0.6825984,7,352.4882,3.06174 +0.9282963,26,169.3765,5.122438 +0.7680785,6,227.9232,3.141793 +0.5355871,43,347.3572,4.398321 +0.6693587,54,436.3146,4.812174 +0.773232,92,549.7613,5.404733 +0.6195498,69,980.2326,4.894582 +0.8400778,99,893.5253,5.617641 +0.9255642,70,761.4745,5.729276 +0.9080847,82,792.9793,5.742875 +0.522612,6,565.2858,2.521984 +0.6417358,47,183.7160,4.670733 +0.7013078,51,383.2288,4.83544 +0.7069545,56,436.4764,4.914058 +0.8542498,80,547.3648,5.529451 +0.509647,4,174.7376,2.004169 +0.934806,45,835.8438,5.488301 +0.7056071,4,688.9132,2.487025 +0.5115704,38,343.0629,4.258021 +0.8745496,20,267.9963,4.615004 +0.7428874,92,849.7082,5.331239 +0.624939,92,874.5263,5.110626 +0.8117291,78,619.3193,5.385168 +0.7642174,66,806.5085,5.147957 +0.5821417,25,235.8559,4.041735 +0.8256269,52,266.7959,5.164253 +0.882332,73,784.2244,5.558549 +0.6688183,56,96.3575,4.885902 +0.708993,92,537.4415,5.268645 +0.8660636,24,719.5138,4.701973 +0.5982325,52,796.4927,4.648324 +0.7785366,68,250.1605,5.229993 +0.8040057,6,204.6433,3.262558 +0.7114325,15,137.4441,3.885444 +0.918715,91,280.5756,5.905105 +0.77819,59,306.9236,5.120643 +0.7177611,89,459.1009,5.265906 +0.8641408,80,883.2309,5.552217 +0.5843685,24,252.8853,4.010388 +0.8850618,47,743.1372,5.269393 +0.5108136,14,170.1100,3.385231 +0.6256445,95,433.2858,5.141522 +0.8231917,79,441.6427,5.433135 +0.640841,20,919.4517,3.956233 +0.7994082,23,379.5856,4.457961 +0.8731463,64,95.10218,5.562394 +0.6484933,79,495.9768,5.049098 +0.5221934,40,259.5452,4.319939 +0.8810941,68,133.8570,5.596386 +0.5679002,35,538.902,4.287083 +0.8011864,2,146.2337,1.825452 +0.7634377,45,64.61275,4.981885 +0.9138625,24,81.08869,5.048115 +0.8308868,100,747.8617,5.600978 +0.9327479,50,626.0069,5.553264 +0.93067,33,997.0507,5.243978 +0.7921992,82,626.1785,5.369069 +0.6689989,8,817.166,3.162716 +0.8045147,78,872.6406,5.360772 +0.9334461,16,676.6,4.731911 +0.5758246,17,405.8145,3.686859 +0.9492571,89,128.8834,6.178498 +0.7000412,73,409.276,5.09306 +0.7811956,82,837.8587,5.33799 +0.6075243,33,233.9159,4.320678 +0.6513116,24,423.5256,4.137315 +0.7313515,14,853.3903,3.847889 +0.8564085,22,693.0677,4.598462 +0.7045416,63,136.4036,5.031386 +0.8711795,30,532.752,4.895991 +0.8020238,93,548.076,5.481821 +0.7703214,78,15.85805,5.814334 +0.6343191,27,128.4217,4.22205 +0.5738696,66,728.534,4.786255 +0.5966273,62,174.4677,4.797729 +0.6545792,88,954.4501,5.130017 +0.9350415,76,378.4156,5.864486 +0.8698155,88,643.2018,5.641198 +0.7418213,57,397.9183,5.003477 +0.6666204,16,693.6469,3.816609 +0.939269,32,410.4561,5.301479 +0.9056354,75,338.3497,5.70178 +0.7204378,96,104.8828,5.387561 +0.7352106,34,780.4859,4.592326 +0.604017,95,810.4942,5.098799 +0.5039632,100,229.6094,4.986289 +0.6678024,57,352.7455,4.852644 +0.6667347,61,620.592,4.892999 +0.7025512,35,866.2715,4.542347 +0.5823673,29,788.9539,4.157619 +0.7236481,100,242.7644,5.375992 +0.5487022,92,974.0744,4.986154 +0.5448123,5,572.2373,2.357788 +0.731591,73,525.9038,5.153309 +0.7486298,69,940.0264,5.142729 +0.8496939,32,712.1147,4.861084 +0.6722585,5,501.8601,2.663167 +0.5801296,69,207.4424,4.844236 +0.7432576,62,787.7531,5.056841 +0.6214598,33,23.85876,4.484477 +0.7875473,58,213.6908,5.145776 +0.642812,29,521.653,4.274674 +0.5335032,4,930.6728,2.055084 +0.7630798,81,908.8545,5.286844 +0.7369504,28,922.611,4.442898 +0.6428282,27,484.1696,4.216783 +0.6357108,74,283.3895,4.988065 +0.7164243,78,447.3305,5.171399 +0.7709437,55,372.3491,5.046897 +0.6852679,28,335.7585,4.338118 +0.808534,58,340.6183,5.184588 +0.7136241,62,718.4628,4.995206 +0.8177113,80,915.472,5.412148 +0.8319302,87,626.84,5.514708 +0.7422361,93,405.5656,5.349856 +0.6930993,81,146.8204,5.185964 +0.8682528,58,844.0453,5.349434 +0.7270226,100,424.7374,5.366699 +0.7914932,61,688.2172,5.160086 +0.5900729,27,767.5824,4.112602 +0.7003193,89,642.763,5.226167 +0.6651674,74,857.3294,5.027037 +0.7184364,63,284.3633,5.033157 +0.8324358,41,342.2922,5.003632 +0.5031346,67,438.8357,4.685145 +0.5825579,41,785.6322,4.437242 +0.7942139,23,211.6097,4.457539 +0.845134,6,783.0932,3.404465 +0.6857612,48,137.6217,4.786544 +0.7278745,10,717.0041,3.530233 +0.5885082,82,145.7116,4.994707 +0.6388615,30,770.114,4.291878 +0.926036,14,461.9188,4.58259 +0.6847766,27,422.8900,4.304487 +0.752521,85,811.802,5.298064 +0.7488061,63,189.1322,5.115276 +0.6599034,73,59.11036,5.103032 +0.6267682,35,710.3962,4.392984 +0.932423,92,361.4332,5.974252 +0.5922226,21,432.1012,3.905775 +0.8041683,90,853.5206,5.457261 +0.8005206,44,587.8442,4.950966 +0.927466,9,107.028,4.281798 +0.8202604,62,634.5662,5.249415 +0.803947,75,605.6371,5.33821 +0.6912899,47,671.1496,4.746582 +0.8335924,21,559.5399,4.484684 +0.5509898,3,283.7228,1.709308 +0.8715196,51,212.7831,5.317158 +0.6696205,18,518.5567,3.928592 +0.5242603,30,218.4836,4.089194 +0.609197,84,56.53437,5.101272 +0.7185949,92,848.8469,5.281629 +0.7343257,73,626.3547,5.156428 +0.865474,56,506.3368,5.32564 +0.5027801,93,974.2632,4.922927 +0.7855868,21,950.671,4.334514 +0.6107691,81,541.3309,5.000013 +0.5547765,49,494.3407,4.53091 +0.7692043,88,362.1617,5.375039 +0.9403376,49,752.7243,5.585192 +0.829064,60,478.2757,5.257702 +0.8601706,25,166.6052,4.754331 +0.6196904,43,304.0243,4.549829 +0.5717478,25,858.482,4.013487 +0.693023,20,335.4159,4.075407 +0.8598185,31,330.6993,4.889496 +0.6915085,37,69.03833,4.636358 +0.8468429,85,300.6356,5.567331 +0.5777309,21,91.25657,3.900269 +0.5987378,42,114.1785,4.513828 +0.564499,18,18.32179,3.827946 +0.628622,71,219.1825,4.950753 +0.9445081,23,707.8417,5.088072 +0.9388601,19,386.5834,4.917079 +0.8643879,47,592.6865,5.195143 +0.7737825,21,473.8053,4.309089 +0.7264336,9,615.857,3.425729 +0.9412087,84,400.5238,5.967095 +0.7427203,48,997.1332,4.867639 +0.7715587,85,657.4747,5.343616 +0.6399763,7,534.5213,2.955814 +0.6063786,26,711.9156,4.112105 +0.7256356,78,949.8124,5.18012 +0.6477573,47,895.3827,4.66007 +0.7986201,31,18.21264,5.083396 +0.750134,88,414.8571,5.328381 +0.5923543,14,92.57298,3.560902 +0.6832271,73,685.9445,5.053047 +0.7574562,43,151.873,4.863263 +0.677596,100,414.4082,5.270896 +0.6682776,89,907.168,5.162828 +0.9330502,96,284.6103,6.02071 +0.5842748,51,469.3508,4.612856 +0.8787779,81,401.5259,5.633028 +0.7580647,77,669.1351,5.244463 +0.8872826,87,650.057,5.6979 +0.8779282,62,661.6712,5.435085 +0.8914228,41,453.3747,5.2109 +0.9347915,49,936.5544,5.543634 +0.6613053,84,493.9254,5.116008 +0.5915268,55,993.0702,4.678128 +0.8180775,53,480.8366,5.137994 +0.558241,47,382.5659,4.506435 +0.682103,52,725.278,4.803213 +0.6710785,10,970.0457,3.389202 +0.5560348,45,16.90907,4.62216 +0.9401617,69,134.6376,5.927962 +0.9492752,16,819.697,4.853928 +0.8111686,82,99.48363,5.516021 +0.6539134,70,355.3463,4.976903 +0.6973646,87,273.2096,5.221455 +0.584519,33,907.0917,4.266788 +0.661414,45,753.884,4.653987 +0.691314,98,431.7889,5.281952 +0.9053537,70,284.3603,5.663525 +0.878904,92,177.3085,5.767757 +0.940425,74,634.511,5.861479 +0.6773772,9,36.89003,3.370417 +0.938145,71,9.568438,7.736828 +0.7049552,62,308.9711,4.991195 +0.768903,88,218.1471,5.393243 +0.8924252,18,442.2652,4.597484 +0.5605281,42,973.999,4.41706 +0.5675563,35,394.8235,4.288579 +0.9314867,64,990.4558,5.699404 +0.854969,56,221.3102,5.320816 +0.6154144,90,419.8957,5.08615 +0.5046474,5,929.2128,2.267940 +0.8938657,91,747.1564,5.750207 +0.5461269,34,592.0258,4.224583 +0.7374015,33,34.94556,4.743901 +0.7812415,44,585.6939,4.900668 +0.5854985,20,73.7051,3.879755 +0.8041685,56,485.833,5.138593 +0.6455867,67,134.8849,4.95596 +0.8334194,32,323.5623,4.823296 +0.6835554,33,248.6061,4.471775 +0.9274518,41,204.8720,5.435482 +0.7580894,12,390.4757,3.785481 +0.8234953,30,705.3142,4.727986 +0.5803942,47,998.7147,4.538939 +0.6302062,50,22.45701,4.863313 +0.7932594,59,29.19641,5.444473 +0.5677228,11,340.1472,3.260991 +0.5143458,70,301.0236,4.738882 +0.8996777,5,36.72852,3.613945 +0.6948788,20,59.8754,4.139033 +0.801904,3,17.53048,2.547548 +0.825884,3,362.6367,2.532459 +0.5641203,41,378.8667,4.409494 +0.6206331,82,59.89471,5.102902 +0.9020196,82,488.3076,5.728979 +0.5772379,11,192.7502,3.284991 +0.7854763,15,719.8687,4.054453 +0.5661362,5,326.2423,2.407589 +0.855098,90,987.4242,5.598997 +0.9094228,17,314.8952,4.647975 +0.9105804,14,822.2919,4.479334 +0.6425095,19,776.2866,3.915952 +0.5800772,23,751.0009,3.958348 +0.8283034,40,306.9341,4.975931 +0.8694394,12,63.79335,4.252581 +0.9487476,13,927.253,4.68589 +0.8891563,27,416.9288,4.897393 +0.6400752,35,650.9308,4.418827 +0.930565,77,427.6444,5.839496 +0.6607416,84,480.9301,5.115355 +0.7374158,21,360.8883,4.219661 +0.7214416,90,627.8624,5.275888 +0.6634831,52,242.9271,4.783196 +0.633519,51,832.0138,4.696118 +0.867209,15,101.3933,4.396753 +0.7320115,44,304.3464,4.795765 +0.8916781,51,853.781,5.351103 +0.6815065,32,698.7288,4.429519 +0.7062608,20,411.6185,4.103026 +0.6216569,94,854.663,5.120379 +0.7749632,17,886.286,4.130346 +0.7489943,51,669.2371,4.930199 +0.8960939,30,605.3457,4.998742 +0.541271,5,803.5865,2.349337 +0.883344,83,878.3484,5.645366 +0.6615822,19,616.9031,3.957096 +0.8645687,14,451.1396,4.269158 +0.8197885,44,745.7335,5.001257 +0.9105769,22,975.8806,4.831691 +0.8194167,33,518.502,4.792544 +0.8237274,11,263.2219,3.915241 +0.8786824,38,564.1758,5.09802 +0.9028904,65,866.5719,5.564251 +0.7634663,45,909.7111,4.868551 +0.9061444,11,340.5835,4.267836 +0.727566,31,405.0189,4.510243 +0.5869022,53,742.01,4.643569 +0.6267716,82,756.8724,5.033235 +0.6941218,49,674.2737,4.783475 +0.6440676,72,403.9489,4.977191 +0.7643208,80,940.397,5.28069 +0.8215134,91,962.321,5.508477 +0.7344723,70,929.2222,5.122587 +0.6420764,9,405.7842,3.221721 +0.9224962,33,907.7449,5.196097 +0.92215,42,604.9682,5.371616 +0.9473083,16,808.4234,4.83695 +0.6679534,10,297.2999,3.388319 +0.8085884,87,391.1016,5.462548 +0.7428786,94,208.0541,5.381112 +0.7319898,77,842.6398,5.18538 +0.8264745,54,333.4286,5.185714 +0.8906358,42,879.7977,5.210706 +0.7497273,88,757.6578,5.316739 +0.9363728,93,740.3891,5.97637 +0.5203183,4,5.041769,2.183347 +0.648732,17,203.3104,3.843603 +0.5029027,20,757.0614,3.693276 +0.8637881,78,296.9534,5.566156 +0.9129572,14,146.4340,4.545495 +0.6906615,40,257.9211,4.636827 +0.8834442,74,793.7916,5.571652 +0.7800757,21,4.930221,5.522151 +0.867441,17,116.9928,4.49343 +0.6881186,70,684.5632,5.032408 +0.5881212,52,243.6473,4.642358 +0.8899165,62,666.8032,5.482087 +0.7845255,90,713.7938,5.411659 +0.6786644,72,575.786,5.036507 +0.7749491,79,740.7498,5.299343 +0.6163517,50,402.6808,4.656188 +0.7617745,100,408.036,5.442128 +0.9361814,46,508.8477,5.525133 +0.7015941,74,770.7665,5.096961 +0.7794969,72,594.9117,5.249219 +0.642179,74,748.8859,4.986675 +0.5983462,52,171.4239,4.667948 +0.6005191,47,615.7238,4.576628 +0.8843986,22,501.1241,4.715799 +0.7008892,25,449.2083,4.275913 +0.52497,38,860.323,4.276883 +0.622708,53,19.02061,4.92084 +0.5727642,77,157.0283,4.918638 +0.7725483,86,575.0621,5.356232 +0.6069527,16,346.6407,3.695274 +0.7587479,48,168.0675,4.944474 +0.7360718,62,721.5008,5.04224 +0.8545806,40,658.2835,5.043252 +0.8961155,80,809.8722,5.67364 +0.6650538,14,150.3996,3.709953 +0.939034,30,475.0172,5.248813 +0.6833314,42,302.3655,4.655899 +0.6175995,45,685.2173,4.573027 +0.6677279,28,314.8646,4.302073 +0.7154529,21,892.7738,4.15897 +0.6333697,2,961.5814,1.277359 +0.5898549,7,320.5183,2.842989 +0.6582885,95,405.8774,5.200164 +0.510954,70,611.108,4.728801 +0.9055901,74,428.1937,5.68225 +0.8400673,54,58.62375,5.384523 +0.734939,62,260.0854,5.060028 +0.52751,44,515.2361,4.400222 +0.5424423,48,149.0962,4.507725 +0.7204047,77,301.1897,5.179545 +0.9272841,13,550.2231,4.527436 +0.6945376,15,446.9727,3.824939 +0.5553579,44,411.7695,4.449252 +0.7173361,87,997.4134,5.238975 +0.6202049,47,794.0686,4.610215 +0.8752933,3,974.2505,2.761596 +0.8339996,63,286.8030,5.323071 +0.6327848,42,810.0312,4.546531 +0.6340459,45,269.9277,4.613969 +0.866857,19,677.0124,4.522703 +0.7734467,59,643.4308,5.093006 +0.8982833,96,211.7656,5.862206 +0.6749493,21,304.4563,4.078275 +0.7511355,60,202.4649,5.082362 +0.742047,77,48.54489,5.371515 +0.6776796,63,789.4974,4.935029 +0.855732,27,571.1547,4.757314 +0.8018288,57,777.9217,5.137002 +0.7331972,22,51.23239,4.336138 +0.6569014,73,102.1165,5.055507 +0.7537886,29,154.4731,4.546038 +0.8012184,81,740.0648,5.38049 +0.8549478,54,546.232,5.262064 +0.8976285,61,231.4609,5.546494 +0.8834517,6,628.3206,3.580245 +0.6746422,89,548.0865,5.179786 +0.8358614,9,451.8896,3.766575 +0.8406225,57,762.0856,5.247538 +0.9481807,28,293.3038,5.290238 +0.5388981,3,598.9741,1.679330 +0.9480118,73,445.4003,5.920966 +0.8536345,98,30.87349,6.077053 +0.8899995,11,376.5903,4.180464 +0.9368585,82,236.7299,5.957222 +0.9390339,94,494.9168,6.014249 +0.5705278,3,303.2342,1.756266 +0.8376015,31,126.5897,4.857314 +0.5003688,16,621.8171,3.485094 +0.6873293,59,652.178,4.907611 +0.6599451,24,221.4411,4.164048 +0.9088598,39,815.7084,5.243244 +0.8031311,5,669.6773,3.052888 +0.9491043,10,996.9979,4.475921 +0.9290567,72,727.5371,5.768695 +0.7602706,12,188.8118,3.803644 +0.8416336,15,220.5798,4.255509 +0.9339155,19,4.776814,7.721867 +0.7953252,3,625.1871,2.409029 +0.7715417,90,690.4963,5.381861 +0.7641226,14,915.3901,3.933091 +0.5798988,52,903.444,4.616092 +0.8216424,11,951.3616,3.893048 +0.5785521,6,71.00523,2.661841 +0.8724881,87,714.1226,5.640678 +0.8948278,35,337.652,5.121659 +0.7871695,53,50.68324,5.213849 +0.7097965,5,905.984,2.761924 +0.9192579,88,4.904059,9.408779 +0.8199713,94,854.027,5.527674 +0.9406058,18,479.2811,4.882971 +0.893909,87,899.2716,5.717317 +0.650764,81,712.7453,5.067031 +0.5889707,18,383.5385,3.764445 +0.8529372,77,924.1236,5.489221 +0.609893,96,440.4276,5.12181 +0.531659,100,637.8155,5.021182 +0.7622855,12,853.1681,3.790901 +0.5062748,27,854.2535,3.961283 +0.6536989,51,892.0227,4.732863 +0.5918758,87,181.1760,5.037371 +0.8949669,90,866.063,5.744409 +0.7391464,22,531.6416,4.257614 +0.6058422,56,816.772,4.717399 +0.6916805,84,483.5835,5.173199 +0.7928663,65,677.2386,5.208507 +0.799502,84,632.8621,5.403581 +0.647877,88,237.0035,5.138919 +0.6310709,41,682.083,4.525733 +0.7535243,52,206.0863,4.982394 +0.842538,27,105.2609,4.78065 +0.9368387,36,790.4721,5.349369 +0.7363599,16,303.7005,3.987744 +0.6187289,6,904.779,2.736695 +0.7830982,75,54.84483,5.450532 +0.7057671,57,511.7964,4.922182 +0.8533923,24,698.5605,4.655287 +0.5684159,6,224.2865,2.626111 +0.6368277,55,697.6601,4.760043 +0.8902097,96,699.0142,5.771775 +0.73018,27,826.1295,4.398932 +0.7229493,27,810.7536,4.382487 +0.5890476,3,9.206372,1.889919 +0.6626262,57,311.4022,4.84493 +0.8247307,39,750.575,4.927463 +0.862285,61,599.7255,5.369646 +0.8596518,72,146.6928,5.543895 +0.6842161,72,170.3721,5.076099 +0.6330123,41,248.7231,4.54117 +0.7745,49,151.7156,5.005232 +0.5936884,35,572.1413,4.333129 +0.8357376,16,500.1788,4.271279 +0.51271,7,73.56993,2.686149 +0.6896422,15,463.5934,3.813312 +0.7443422,66,119.7634,5.164269 +0.8847271,62,525.1662,5.467059 +0.8533142,83,457.8641,5.556159 +0.9428908,31,915.307,5.28519 +0.7709193,41,914.0045,4.817427 +0.8091848,52,419.4211,5.102556 +0.7552535,16,49.63281,4.120643 +0.8687983,67,938.1444,5.44823 +0.7432566,33,646.8512,4.589547 +0.8600137,50,840.1946,5.217403 +0.7541783,34,157.5049,4.672121 +0.689819,8,177.5935,3.225273 +0.7587453,60,558.5484,5.07267 +0.9248554,40,357.1488,5.370525 +0.6697601,13,584.2735,3.636448 +0.6823748,8,271.6928,3.201521 +0.6981148,18,939.7967,3.988303 +0.889497,85,990.792,5.682722 +0.7092462,16,209.8601,3.92723 +0.6301518,51,804.4977,4.690217 +0.5037445,11,289.3195,3.132128 +0.8170627,88,197.9134,5.523932 +0.5186405,43,333.365,4.369594 +0.7309547,4,567.6746,2.561449 +0.8606785,93,217.5858,5.691876 +0.8870742,2,740.502,2.244443 +0.8995338,84,34.00486,6.173225 +0.7740336,48,913.8893,4.941309 +0.8933359,37,627.4083,5.138033 +0.7583827,18,540.0579,4.138342 +0.6642341,11,250.0934,3.473574 +0.6526306,21,904.9387,4.022325 +0.9433407,25,150.4380,5.214132 +0.7412913,88,924.085,5.296476 +0.8818567,65,24.57030,6.015878 +0.748409,24,914.8858,4.346754 +0.8659564,86,474.0914,5.620953 +0.6847987,20,913.508,4.049003 +0.8728599,58,771.6419,5.367578 +0.8868516,87,574.9383,5.69949 +0.6116315,82,41.29352,5.117752 +0.9496053,60,998.339,5.781189 +0.9210157,5,880.3966,3.619327 +0.7488685,100,154.2452,5.453751 +0.792422,57,997.3951,5.10985 +0.7057241,20,909.2889,4.095626 +0.9060405,48,457.6723,5.388283 +0.8020144,14,799.7226,4.043229 +0.9114372,53,694.1402,5.471555 +0.6164202,10,699.8877,3.267098 +0.8557893,32,968.0013,4.878456 +0.6859665,62,220.2631,4.961493 +0.8556446,79,460.6411,5.530325 +0.7087365,37,18.42120,4.892413 +0.6066091,48,832.439,4.601762 +0.737552,90,976.363,5.303552 +0.8328863,79,368.9973,5.466714 +0.5687865,60,950.4368,4.705405 +0.9128557,79,511.2905,5.753497 +0.7816981,19,371.8202,4.251545 +0.7339682,93,749.6793,5.321598 +0.9017031,93,407.8017,5.816921 +0.5868505,36,739.4715,4.341942 +0.8923477,82,594.2587,5.681646 +0.8414654,14,493.1889,4.179133 +0.8589573,18,553.6746,4.451215 +0.7069543,76,343.5581,5.139243 +0.5513179,37,41.46768,4.362217 +0.7954259,47,799.2324,4.981373 +0.9280813,3,747.2373,3.110425 +0.6391395,31,156.1447,4.340451 +0.508044,68,273.9174,4.707716 +0.6902827,52,682.7568,4.819914 +0.6414225,32,371.048,4.354987 +0.8544067,47,613.95,5.159753 +0.6471667,27,614.637,4.223626 +0.879826,52,65.41423,5.501719 +0.7318367,9,756.8057,3.439061 +0.6710358,99,823.9917,5.242706 +0.6586583,79,203.5998,5.08643 +0.9153481,65,145.8204,5.718992 +0.9045708,39,518.867,5.231822 +0.9182237,4,293.8663,3.375961 +0.6201512,91,958.31,5.094233 +0.531135,5,679.083,2.326895 +0.6544671,79,801.718,5.054843 +0.5949144,18,452.2243,3.775143 +0.7362622,80,828.845,5.22116 +0.7638218,92,458.6902,5.387075 +0.9012236,87,312.5676,5.784071 +0.7628684,94,537.0887,5.396255 +0.7550078,19,982.6065,4.170556 +0.6672037,77,32.73787,5.236582 +0.805925,75,779.1546,5.339145 +0.5541851,23,465.4516,3.912125 +0.7172208,65,536.8639,5.040288 +0.7138174,61,829.1607,4.982435 +0.6165516,36,703.632,4.396356 +0.7870262,30,985.7532,4.620939 +0.7912173,9,89.4149,3.652351 +0.6588602,81,851.9986,5.080004 +0.8534626,15,235.5219,4.298059 +0.5417177,97,37.93112,5.095782 +0.7268279,98,840.1265,5.341517 +0.8217522,99,139.2584,5.644923 +0.6615135,73,271.7089,5.027002 +0.8379693,14,933.443,4.160273 +0.6898353,78,174.3968,5.144343 +0.9456171,63,372.4586,5.81557 +0.9227115,69,630.8074,5.708987 +0.6673543,62,413.4679,4.911183 +0.7727943,24,809.3736,4.409296 +0.6507278,29,359.3616,4.294149 +0.6849543,82,693.828,5.13863 +0.5105532,4,978.4382,2.002822 +0.8235352,74,327.0553,5.398906 +0.5910593,46,855.208,4.541509 +0.6297961,8,967.5094,3.0706 +0.607688,8,471.5654,3.022891 +0.7571063,34,70.40006,4.733643 +0.791352,77,404.1305,5.333374 +0.9173874,79,271.0829,5.807408 +0.6797923,28,496.1202,4.321795 +0.7953507,57,596.6884,5.124088 +0.850552,70,335.183,5.442296 +0.7431803,94,839.5868,5.346693 +0.6440024,15,983.9204,3.708547 +0.7837544,62,560.4449,5.155577 +0.836111,68,626.0255,5.359618 +0.5484813,12,157.0824,3.312683 +0.7455065,23,808.4312,4.305929 +0.7591955,36,486.1776,4.698127 +0.8779367,58,330.3594,5.410352 +0.593193,36,840.8998,4.352766 +0.6269665,44,889.8402,4.57122 +0.8868482,77,174.344,5.680853 +0.752801,62,114.1809,5.142559 +0.8743457,45,570.4405,5.201879 +0.7211467,83,22.77365,5.534706 +0.6912285,50,179.5001,4.818787 +0.6746614,56,25.13000,5.057343 +0.8218585,18,350.1895,4.328555 +0.5137584,21,501.476,3.757731 +0.740062,100,295.5024,5.403938 +0.5987175,12,829.5367,3.406227 +0.6969432,24,777.029,4.229027 +0.8577518,90,243.7531,5.652591 +0.8004673,42,774.9877,4.912852 +0.7565447,100,561.181,5.423456 +0.5786212,70,75.22302,4.885775 +0.6195509,93,718.8692,5.110625 +0.788771,62,282.489,5.185677 +0.843245,44,575.6044,5.076896 +0.8157837,54,697.1208,5.137986 +0.8604531,98,792.4643,5.675903 +0.6037213,44,714.739,4.530425 +0.851184,33,819.7258,4.887258 +0.8473872,72,448.4953,5.441543 +0.5858104,70,778.5424,4.849169 +0.9012477,98,237.0837,5.880302 +0.6218494,86,359.1172,5.067211 +0.8382145,40,276.6088,5.01096 +0.7575617,45,487.4906,4.862268 +0.93472,74,982.2397,5.813632 +0.787328,48,72.26743,5.087387 +0.8512459,29,552.8546,4.79632 +0.719967,9,908.876,3.407101 +0.5877352,78,208.0282,4.947623 +0.8423043,79,600.2308,5.481344 +0.8392067,94,731.9999,5.584333 +0.5623799,49,16.30969,4.714975 +0.647799,9,46.71102,3.279418 +0.5288595,42,715.873,4.364200 +0.789742,2,784.4931,1.773259 +0.756642,43,649.7852,4.822198 +0.7764437,50,46.35313,5.150306 +0.6674194,85,991.1572,5.128339 +0.906969,11,130.1505,4.311036 +0.7518938,70,334.027,5.177749 +0.528787,18,255.6916,3.650907 +0.8252282,19,343.1041,4.384494 +0.6891648,17,884.256,3.918804 +0.8468115,2,649.4154,2.022372 +0.7624286,95,693.2675,5.398028 +0.7566833,68,228.3779,5.180752 +0.606168,29,811.7703,4.20159 +0.7548573,73,552.7757,5.203042 +0.820666,22,518.8606,4.481232 +0.6412007,32,405.3414,4.353561 +0.6027521,20,49.8559,3.934375 +0.734133,2,519.9769,1.575193 +0.7532216,43,924.8756,4.810621 +0.6853911,8,475.9357,3.204962 +0.9023783,19,398.6669,4.691687 +0.6758605,20,864.8661,4.029875 +0.7751433,11,661.0047,3.749591 +0.9425368,54,73.00199,5.890914 +0.8177478,11,295.5029,3.892388 +0.9261527,6,245.4474,3.854764 +0.8882492,35,651.1299,5.075141 +0.7468783,15,779.9176,3.948789 +0.5808538,17,480.0077,3.695823 +0.646268,20,723.2668,3.968426 +0.8976664,49,352.3127,5.372937 +0.7144762,39,539.7912,4.655678 +0.6694488,42,295.7246,4.628144 +0.7095104,34,871.5172,4.534577 +0.7675866,27,495.3648,4.49496 +0.6749292,82,737.8624,5.11927 +0.6683889,73,588.4477,5.026845 +0.5178061,22,718.1896,3.805074 +0.8245529,83,284.1121,5.48635 +0.6444938,35,864.6639,4.425571 +0.8060923,99,924.1675,5.52485 +0.7776994,25,816.9563,4.454753 +0.828381,4,362.6857,2.899921 +0.5356391,36,859.755,4.251434 +0.8132802,64,617.6336,5.252743 +0.5805669,32,734.2547,4.235485 +0.9149193,84,749.9509,5.792419 +0.6743994,95,277.3819,5.238203 +0.6252865,70,618.6787,4.918297 +0.803131,72,856.4609,5.302494 +0.6792797,28,90.66852,4.363507 +0.6178848,99,391.6746,5.158681 +0.6664492,99,552.1533,5.238936 +0.8704619,81,12.83819,6.593567 +0.9337554,76,194.8326,5.904346 +0.8441718,83,870.5995,5.51324 +0.7154217,49,367.0998,4.836076 +0.6672896,69,241.8273,5.000109 +0.6678378,94,974.4227,5.199604 +0.9408869,5,481.7649,3.783829 +0.6264312,10,93.73413,3.310071 +0.8699315,11,891.6617,4.077148 +0.6533887,78,550.6135,5.047538 +0.6871648,79,37.89538,5.28403 +0.8278326,41,55.32326,5.136375 +0.9007479,44,384.0775,5.308271 +0.9045541,84,87.16014,5.916201 +0.8465129,89,655.0107,5.572192 +0.6095092,56,275.0738,4.735062 +0.9337829,54,80.79501,5.798131 +0.5302162,22,841.8739,3.827253 +0.5068682,95,214.3008,4.954852 +0.6540878,49,531.6365,4.70768 +0.6909439,5,327.8551,2.714410 +0.9104148,32,848.5844,5.109452 +0.8152395,98,935.9499,5.541505 +0.6585675,64,568.535,4.913769 +0.8293236,13,607.8378,4.070081 +0.5164619,89,81.7367,4.943977 +0.6309601,3,53.40032,1.923181 +0.799725,79,833.1201,5.357887 +0.7794195,24,916.7622,4.425833 +0.8949443,27,301.5564,4.934083 +0.6930091,17,21.62224,4.103417 +0.6977771,22,386.8469,4.16481 +0.5475462,18,802.1444,3.681317 +0.5114595,92,272.2015,4.93625 +0.931486,73,945.969,5.78597 +0.7490772,68,791.3002,5.135225 +0.6596451,64,343.5261,4.922892 +0.8957032,94,16.72671,6.692282 +0.6923005,77,120.6771,5.158418 +0.9456358,24,780.0273,5.126279 +0.9438894,21,83.76159,5.157231 +0.7175115,80,626.8248,5.186013 +0.5829018,31,361.2286,4.218319 +0.5901643,22,676.4985,3.93967 +0.8064658,90,648.7313,5.467642 +0.6136763,38,743.9136,4.433546 +0.7821613,16,550.7289,4.102733 +0.8085253,86,214.4748,5.479572 +0.505325,97,299.8038,4.963743 +0.8778521,73,575.0015,5.548593 +0.6573341,79,166.5853,5.09082 +0.7532538,17,719.9617,4.073974 +0.8126741,98,959.151,5.534472 +0.617485,78,992.0062,4.979724 +0.7294307,42,842.8008,4.740066 +0.8311411,11,255.2206,3.942211 +0.7310049,3,64.00663,2.210547 +0.9218966,22,24.38936,5.372905 +0.6959823,13,281.8103,3.703621 +0.872274,7,286.046,3.68672 +0.8091158,6,714.5453,3.268219 +0.7140248,28,426.8686,4.397771 +0.7445735,34,30.09128,4.818709 +0.7104637,86,508.2352,5.2256 +0.7407903,73,839.1437,5.166587 +0.9153352,65,522.6144,5.636264 +0.688166,29,238.4367,4.378873 +0.6463528,11,613.1541,3.426388 +0.7123388,62,470.368,4.998166 +0.8895104,85,770.6312,5.687503 +0.5782297,59,402.029,4.714427 +0.829497,28,701.8173,4.693881 +0.5709144,36,853.1903,4.312955 +0.7069504,70,685.5334,5.069301 +0.8335032,53,856.0943,5.173089 +0.5544132,8,676.0023,2.906102 +0.8651928,24,406.7348,4.708713 +0.8610366,68,384.947,5.452404 +0.8713612,35,373.6557,5.019745 +0.5738918,29,452.9196,4.144968 +0.5240998,92,545.6718,4.950569 +0.7527017,64,163.9493,5.142884 +0.6616936,31,958.384,4.362104 +0.8629395,77,651.0979,5.528421 +0.783235,41,700.8783,4.851017 +0.8394277,29,67.74892,4.873075 +0.7977615,5,190.0469,3.04529 +0.5940232,54,580.2972,4.671643 +0.9218088,64,88.74913,5.819851 +0.8127387,47,991.2968,5.025708 +0.7963492,66,680.6744,5.227959 +0.5904958,55,863.2755,4.677009 +0.8075735,17,983.1247,4.22383 +0.7415049,43,793.1585,4.785166 +0.8843514,74,597.5391,5.581504 +0.7021487,6,873.4177,2.943845 +0.8391883,12,753.545,4.033319 +0.7921166,46,52.22621,5.114419 +0.5554143,69,76.81138,4.829512 +0.6042065,76,151.4294,4.966379 +0.8627017,3,525.6119,2.698795 +0.865755,2,376.8642,2.122449 +0.8279171,10,836.8117,3.82942 +0.822342,5,962.3499,3.122065 +0.6597195,71,21.51946,5.235428 +0.776297,41,967.7869,4.830209 +0.8637549,79,871.2532,5.542754 +0.6396458,39,743.7715,4.502273 +0.826949,97,36.28713,5.892425 +0.7012445,40,177.4653,4.669936 +0.5738541,55,864.6037,4.648669 +0.6926033,57,906.083,4.889783 +0.8142208,4,830.517,2.839772 +0.6244411,9,13.95435,3.327233 +0.5999928,84,440.6816,5.010063 +0.7107244,9,545.9235,3.385588 +0.6170333,66,398.5188,4.865456 +0.5432562,27,214.7615,4.035203 +0.891457,61,156.3249,5.549498 +0.8364938,75,499.4986,5.432955 +0.7364336,82,899.3403,5.23781 +0.6345384,51,661.4909,4.699565 +0.6238511,79,467.3019,5.006217 +0.6425458,54,541.773,4.759007 +0.8062015,98,279.2243,5.549434 +0.8942245,27,820.441,4.907142 +0.8293175,65,18.86648,5.856884 +0.5543704,15,907.1906,3.527276 +0.9427969,14,973.7963,4.692983 +0.5635837,55,917.0542,4.631148 +0.7863883,50,976.9138,5.000909 +0.6690678,71,936.7323,5.003891 +0.8103885,89,852.7451,5.465744 +0.5853477,7,566.7827,2.830862 +0.9155325,74,929.784,5.708425 +0.652931,90,849.3441,5.143776 +0.63539,94,112.5092,5.190783 +0.9347237,32,425.9525,5.268364 +0.5908132,32,193.1982,4.267024 +0.882015,92,412.4952,5.728643 +0.8953683,41,852.7085,5.214666 +0.5202744,78,282.4543,4.829493 +0.9373646,28,29.90516,5.635022 +0.9139742,35,175.8116,5.253379 +0.8243774,47,623.3277,5.06504 +0.7781752,71,674.4035,5.234271 +0.6977277,38,68.90478,4.672658 +0.6985117,56,139.0387,4.92994 +0.6405636,70,422.2165,4.949769 +0.7322623,34,302.2471,4.598792 +0.7356788,36,466.6663,4.643266 +0.5179625,98,422.796,4.988105 +0.920347,32,632.1662,5.168424 +0.8147306,22,655.7655,4.459846 +0.7213689,76,963.051,5.153094 +0.6786994,68,743.6589,4.99277 +0.6729528,21,82.73629,4.109708 +0.7944516,48,324.7937,5.01126 +0.7986539,8,300.5525,3.529152 +0.7704706,5,377.2322,2.945948 +0.8876776,97,425.3873,5.784077 +0.813792,43,990.8892,4.964142 +0.7389332,47,246.4452,4.866744 +0.6142692,4,950.8356,2.246285 +0.8333757,88,852.0517,5.520895 +0.918038,30,73.33338,5.266524 +0.5201918,42,149.4735,4.362267 +0.6865426,59,135.1505,4.944673 +0.818865,51,850.2187,5.103217 +0.7665226,28,317.5260,4.528706 +0.6878656,90,351.7311,5.220275 +0.6233782,24,686.0332,4.077961 +0.9079201,61,12.53428,6.715454 +0.7354724,37,866.4194,4.657101 +0.5748367,73,233.9909,4.874421 +0.9424346,27,604.6585,5.191774 +0.8052077,13,247.9588,4.004018 +0.5808156,22,55.97113,3.965451 +0.9059417,97,546.7074,5.851985 +0.7972078,82,324.6242,5.398432 +0.7553583,34,564.3914,4.642926 +0.5211904,43,59.69222,4.405759 +0.864604,94,383.3898,5.682846 +0.5628405,7,198.0784,2.785847 +0.8635089,89,179.457,5.68645 +0.8361038,4,631.6255,2.928310 +0.64402,42,762.8189,4.567911 +0.8099644,30,282.0744,4.705383 +0.5957105,10,675.4588,3.222615 +0.5611832,61,305.9021,4.713422 +0.7609862,75,581.0989,5.234911 +0.5861211,27,210.4605,4.115875 +0.681802,62,284.2667,4.946358 +0.9380357,22,163.5759,5.067801 +0.6476278,98,954.5236,5.193096 +0.6062827,71,570.621,4.896424 +0.8513,59,850.3103,5.303609 +0.6439583,33,685.2893,4.379145 +0.7549672,14,176.0377,3.930083 +0.5101834,28,353.0459,4.00226 +0.8534954,47,580.775,5.157762 +0.6642175,69,96.3145,5.032567 +0.7822325,20,464.9794,4.292241 +0.7222924,70,56.91364,5.224726 +0.7835733,92,11.13638,6.236578 +0.5127269,25,339.0517,3.910086 +0.9060686,81,300.5539,5.761269 +0.6473291,84,570.9105,5.08901 +0.7251075,34,842.6479,4.568951 +0.7233545,95,952.1911,5.311982 +0.8594078,44,426.2245,5.138217 +0.6228143,7,340.9586,2.917697 +0.6639282,60,579.4312,4.8763 +0.9111373,73,651.4216,5.685933 +0.850889,36,998.6415,4.948251 +0.5315727,20,452.9032,3.747659 +0.6490442,51,37.34832,4.852106 +0.715606,77,990.784,5.150418 +0.6712978,65,10.80619,5.424427 +0.8133968,100,891.5813,5.550796 +0.629085,96,415.4077,5.155445 +0.6325968,35,932.5289,4.402526 +0.7542193,78,229.4509,5.272169 +0.7610267,94,468.5767,5.394991 +0.9484245,24,661.5359,5.152519 +0.9051988,61,163.1016,5.61021 +0.642105,83,745.0839,5.068648 +0.6062096,71,29.42007,5.036339 +0.6614198,65,200.6846,4.95034 +0.9436293,20,906.2777,4.973695 +0.8892711,88,553.833,5.717634 +0.7912716,10,982.8139,3.707757 +0.8327392,90,923.7582,5.532846 +0.9494778,9,763.3662,4.394199 +0.837189,30,724.2563,4.770703 +0.764757,37,643.5556,4.728776 +0.6391173,62,732.9576,4.852631 +0.7116352,16,68.62962,3.974066 +0.926587,99,271.3453,6.005482 +0.7328461,22,375.7878,4.246613 +0.8062737,37,507.2412,4.840897 +0.7764293,97,522.9307,5.44909 +0.7452551,64,983.958,5.08166 +0.770722,96,122.8487,5.494829 +0.5441333,32,720.3908,4.170598 +0.663517,39,953.2992,4.546605 +0.5923693,90,235.0514,5.056502 +0.8482554,46,791.917,5.119762 +0.7808265,91,374.5348,5.424516 +0.9152311,40,974.5258,5.290716 +0.5714776,12,131.6730,3.362543 +0.5317691,42,633.3877,4.36961 +0.6123794,99,490.6901,5.14633 +0.5745781,8,645.4138,2.949351 +0.6082275,13,630.1471,3.502851 +0.6593624,89,215.2926,5.171144 +0.5644257,3,643.3973,1.740192 +0.920627,78,189.0088,5.84536 +0.5520711,51,623.7519,4.55584 +0.6121508,39,542.8347,4.453281 +0.7584429,21,187.2622,4.287515 +0.7916381,51,71.86452,5.147185 +0.8850048,16,997.5153,4.457286 +0.5391017,87,770.6265,4.931917 +0.7404479,7,323.7681,3.216882 +0.5623543,26,911.3213,4.02928 +0.5508669,96,484.6114,5.024189 +0.7931613,6,685.8204,3.213631 +0.9356591,55,520.1105,5.641592 +0.8191694,21,28.07199,4.681511 +0.7404314,76,362.3436,5.208253 +0.6132023,26,501.4922,4.1272 +0.898138,17,898.733,4.568876 +0.7149017,32,821.3167,4.499275 +0.6468989,98,799.4402,5.193233 +0.7843833,49,106.0027,5.056439 +0.78089,2,975.3173,1.739043 +0.7499181,33,292.2228,4.618129 +0.89562,3,215.3275,2.890152 +0.6734657,94,106.2031,5.270171 +0.5022134,82,435.0182,4.833872 +0.5035799,89,220.3418,4.901841 +0.6358235,5,732.8527,2.570277 +0.9185566,67,955.7941,5.65809 +0.8146047,77,848.0447,5.378849 +0.8849036,25,130.1811,4.875341 +0.666657,10,398.2127,3.382943 +0.866368,78,746.573,5.54593 +0.5504938,39,246.9974,4.349845 +0.712021,69,528.3399,5.072651 +0.5030071,65,637.7599,4.66033 +0.6105752,44,545.6989,4.544589 +0.6943772,65,979.1696,4.98809 +0.9203392,86,787.3725,5.833822 +0.5749371,12,488.0013,3.358939 +0.6378194,89,196.0952,5.133906 +0.5113716,66,593.8107,4.68551 +0.7412499,84,512.8562,5.272521 +0.6851877,28,589.8577,4.331579 +0.6870601,19,735.5807,4.011283 +0.7750765,15,479.3753,4.028658 +0.6845788,23,882.8073,4.166264 +0.7811759,64,597.6869,5.17059 +0.7607091,15,713.1093,3.985755 +0.5275841,3,320.7793,1.653622 +0.8151376,100,49.26603,5.78751 +0.5074881,77,757.4622,4.793207 +0.5229785,23,989.7796,3.852577 +0.7105007,28,31.24485,4.54415 +0.6215799,38,598.2167,4.449521 +0.8470756,49,10.20824,6.161224 +0.6472299,24,401.3113,4.129491 +0.9120567,60,41.54376,5.913973 +0.5377769,2,866.9126,1.040179 +0.7185213,18,930.2816,4.035555 +0.8158044,14,239.9823,4.104134 +0.770996,94,609.5532,5.412268 +0.7024562,43,650.9803,4.702584 +0.7775713,10,624.1942,3.668905 +0.8395731,24,386.586,4.617139 +0.6114049,91,218.1425,5.099238 +0.8950336,18,349.9376,4.6157 +0.5847385,92,22.30507,5.218627 +0.5681137,57,798.3608,4.666418 +0.8210785,93,933.207,5.522232 +0.5785641,83,4.989308,5.603602 +0.8157943,15,818.011,4.14539 +0.7407279,92,440.1779,5.337324 +0.733181,3,238.6378,2.200755 +0.7579886,42,635.1882,4.808085 +0.7311025,3,905.908,2.189757 +0.7900159,27,812.1494,4.548644 +0.760292,94,327.8632,5.402854 +0.6519805,77,849.4438,5.031642 +0.7062998,74,750.08,5.106512 +0.5844447,3,59.48537,1.801098 +0.6614328,90,460.961,5.165895 +0.881871,94,392.0773,5.744282 +0.8199697,65,654.326,5.280985 +0.898322,9,64.69922,4.13647 +0.7556982,59,152.5194,5.094736 +0.5939186,47,662.8237,4.564495 +0.8520484,84,444.9234,5.561018 +0.7401846,95,846.4764,5.347553 +0.6162178,30,412.4358,4.252757 +0.6134665,86,748.6544,5.044603 +0.6820989,3,169.3379,2.050289 +0.6442013,54,996.0875,4.757449 +0.5227555,12,294.5265,3.256112 +0.5621612,43,374.3188,4.443781 +0.6707198,14,582.3504,3.706538 +0.5717505,2,974.4778,1.120795 +0.714165,63,987.752,5.00491 +0.8463978,49,741.222,5.159691 +0.5952204,26,68.97992,4.131567 +0.5451793,20,707.1649,3.771381 +0.8645775,43,292.8327,5.152765 +0.9404841,4,51.03454,3.651606 +0.7179487,74,160.1517,5.169636 +0.6143455,31,974.3184,4.270616 +0.7752132,3,809.1733,2.335569 +0.7934382,59,504.3798,5.146776 +0.711908,86,888.908,5.221289 +0.6450752,84,229.6891,5.101429 +0.7590779,59,150.5668,5.10375 +0.9205524,29,818.9596,5.093759 +0.9360283,7,419.8364,4.064352 +0.5325355,85,266.1838,4.913121 +0.8768197,77,973.5951,5.569731 +0.7097386,99,643.0035,5.317974 +0.5718427,37,402.8701,4.340854 +0.5143585,41,440.6985,4.322562 +0.7406938,15,237.9263,3.946416 +0.7049336,96,920.0897,5.283441 +0.8494004,93,369.2301,5.627208 +0.6261061,45,662.1646,4.588758 +0.5064255,14,899.5559,3.369974 +0.7677488,79,651.7408,5.284578 +0.789773,59,296.7103,5.151136 +0.8435455,59,16.99554,5.912123 +0.6753605,53,791.7065,4.803538 +0.7715955,98,324.6493,5.457671 +0.8750405,21,577.243,4.637225 +0.8568845,79,527.212,5.53056 +0.6046421,54,708.383,4.688786 +0.7191854,53,919.355,4.890299 +0.6643493,97,347.9793,5.228687 +0.6956105,97,939.5987,5.272661 +0.6148152,27,557.7433,4.160999 +0.6576454,4,901.5362,2.356199 +0.8151161,36,74.71088,4.94727 +0.9228209,15,523.9028,4.61454 +0.6219353,32,922.2687,4.310781 +0.7883107,26,640.8576,4.516704 +0.6018958,97,34.22611,5.241195 +0.5793979,40,689.8196,4.412834 +0.6947763,5,26.97463,2.791473 +0.58931,35,138.7347,4.344029 +0.8847147,38,602.2617,5.121166 +0.7561305,49,523.4307,4.920687 +0.6925183,79,142.5949,5.168269 +0.6681708,46,193.5548,4.705324 +0.8585283,12,899.6494,4.105485 +0.6536122,66,584.4786,4.926772 +0.5651187,13,713.7666,3.414500 +0.88514,23,769.917,4.746323 +0.8002839,9,109.5764,3.673678 +0.9097735,4,111.6067,3.342624 +0.6178355,96,195.9049,5.151568 +0.7949732,57,597.5724,5.123088 +0.7527053,83,524.3268,5.288674 +0.8950565,49,72.84066,5.511047 +0.7359179,51,151.2464,4.939979 +0.8420705,7,564.432,3.548268 +0.7573152,83,299.6074,5.313 +0.9454348,87,942.5041,5.988617 +0.871066,18,952.1216,4.492747 +0.6274554,60,761.309,4.8073 +0.557569,10,423.8319,3.144131 +0.9005163,26,705.4903,4.910763 +0.8800185,65,730.4365,5.473082 +0.8613206,13,617.5602,4.188885 +0.8168853,17,650.0818,4.256188 +0.5328003,51,162.6084,4.53643 +0.6839809,84,377.3296,5.162864 +0.9303211,54,819.7178,5.583603 +0.6478824,71,990.3996,4.965008 +0.8349335,45,815.2025,5.061425 +0.769149,21,563.5817,4.294681 +0.6393773,87,829.238,5.09636 +0.8186378,40,399.7204,4.939388 +0.5060255,15,772.43,3.434855 +0.6399204,65,148.2399,4.91882 +0.5302873,41,873.3826,4.346774 +0.9489945,87,566.708,6.030224 +0.7902835,92,176.1944,5.489031 +0.935949,9,578.918,4.281535 +0.7065377,68,39.88104,5.213108 +0.6605787,74,199.7206,5.043517 +0.8500532,52,350.5747,5.231401 +0.5795111,43,185.7723,4.483979 +0.7721705,86,761.0165,5.350834 +0.8356097,31,587.8281,4.793397 +0.6543654,68,444.2728,4.953204 +0.745387,66,509.2115,5.112169 +0.6572928,32,453.2728,4.384213 +0.6103028,43,415.225,4.528702 +0.507783,24,459.682,3.864417 +0.7601003,75,316.1002,5.246828 +0.7714567,72,648.4202,5.228758 +0.6691248,74,148.5592,5.071301 +0.8532127,26,732.108,4.715798 +0.5091557,91,916.2237,4.917172 +0.6682798,23,442.3025,4.136524 +0.7504898,68,937.2238,5.136544 +0.9161427,30,880.0924,5.092573 +0.8091194,79,887.4123,5.381188 +0.7126703,51,412.3825,4.857893 +0.7594662,98,373.6597,5.425589 +0.5785451,27,661.7546,4.091882 +0.6655602,28,627.9785,4.290333 +0.5991819,54,216.0390,4.693234 +0.7969112,63,834.7526,5.193941 +0.8450834,25,649.1481,4.658746 +0.6193873,24,470.0091,4.072489 +0.9168002,2,62.04817,2.490147 +0.8613054,74,422.8139,5.507761 +0.62517,18,255.6169,3.841263 +0.6717216,30,248.8529,4.370396 +0.5892554,31,385.8409,4.229486 +0.8929538,34,581.5536,5.076849 +0.8155344,77,46.48784,5.609731 +0.5550282,19,784.9772,3.743976 +0.6795031,4,474.3498,2.415745 +0.6040601,66,200.2149,4.854484 +0.8937049,13,769.184,4.330309 +0.562713,48,40.01588,4.599981 +0.8443962,12,606.4958,4.054479 +0.5217481,98,304.271,4.997033 +0.6211519,73,460.562,4.944608 +0.801454,60,78.90437,5.287386 +0.7147738,91,760.2828,5.267743 +0.5293705,7,730.8396,2.708855 +0.6295258,25,288.2368,4.13171 +0.5811409,63,106.5195,4.796319 +0.7467691,83,303.5143,5.288863 +0.5357094,26,273.6827,3.986927 +0.8270343,25,75.21921,4.694638 +0.6370267,23,931.2065,4.067684 +0.5991126,3,463.7693,1.825909 +0.7526954,72,426.7363,5.193497 +0.8253992,93,330.6865,5.559655 +0.9159743,42,103.2218,5.454755 +0.8004575,92,11.91416,6.284229 +0.8738953,25,674.0253,4.764974 +0.8571217,38,390.5402,5.026141 +0.7039517,18,937.9678,4.001619 +0.7890745,34,410.5091,4.733657 +0.66447,39,688.1216,4.550597 +0.5939275,77,453.4037,4.93669 +0.7696701,100,856.4333,5.445882 +0.9277054,13,125.0380,4.591452 +0.9389669,99,787.151,6.030433 +0.8225612,91,994.0805,5.510888 +0.7342594,6,582.8713,3.033424 +0.8865646,57,5.988118,7.562239 +0.9154522,23,477.7697,4.904231 +0.5691102,7,96.046,2.807195 +0.6801258,9,342.9826,3.312514 +0.8502952,75,727.0152,5.467112 +0.5583243,47,911.0722,4.501544 +0.5236635,86,719.7257,4.899644 +0.5711945,61,904.3542,4.722019 +0.6034479,52,393.2907,4.663141 +0.8363296,65,490.6389,5.334549 +0.7217736,98,369.6968,5.345336 +0.7711621,71,24.62962,5.562754 +0.8946396,44,38.31367,5.588078 +0.8681217,34,730.2276,4.971574 +0.5378834,38,299.3967,4.304748 +0.7991737,58,345.0896,5.158856 +0.5592553,7,31.06375,2.814127 +0.9303648,2,961.1783,2.568641 +0.789962,48,667.3871,4.984806 +0.6122609,64,698.6285,4.828939 +0.5443432,21,316.0429,3.816686 +0.538685,4,822.2305,2.067093 +0.5826739,46,360.8801,4.532958 +0.6856244,17,109.1460,3.942286 +0.7513881,91,881.5027,5.341419 +0.6010855,16,407.8654,3.682199 +0.8463225,9,124.5201,3.838152 +0.899949,82,799.3413,5.706383 +0.9073209,28,842.0504,4.996587 +0.9469542,10,444.7476,4.468635 +0.8801998,100,651.3778,5.761765 +0.6018282,24,692.391,4.03621 +0.8014853,20,251.665,4.359587 +0.9432018,43,430.8335,5.534503 +0.9384274,100,25.18134,6.820565 +0.6923582,72,998.4995,5.057304 +0.5801159,42,782.1964,4.451911 +0.6414567,82,306.897,5.070821 +0.6720437,62,514.3452,4.91709 +0.7724809,57,339.2014,5.078844 +0.9028858,76,604.6113,5.676169 +0.9497646,65,64.40338,6.126636 +0.8328937,59,235.9650,5.282141 +0.7836799,77,586.6602,5.30615 +0.8561,32,898.7267,4.880362 +0.715531,15,130.4621,3.897282 +0.9006471,71,529.8968,5.624916 +0.6128581,49,414.7223,4.634115 +0.8566043,5,295.1873,3.272094 +0.7551571,36,54.301,4.802694 +0.6504977,38,414.6663,4.507891 +0.691055,88,229.4573,5.222388 +0.6377646,46,92.32049,4.671924 +0.7257486,47,581.0358,4.820107 +0.7063136,96,616.4358,5.290743 +0.8650301,40,943.64,5.074856 +0.6272809,41,135.1876,4.545061 +0.6924068,12,308.8051,3.619891 +0.6531557,13,949.6057,3.597409 +0.8044704,93,633.929,5.485044 +0.8368844,43,487.7978,5.043371 +0.8397715,74,513.7228,5.432954 +0.5198061,32,197.0448,4.13612 +0.5460146,42,882.3461,4.392564 +0.6740923,35,657.371,4.485618 +0.6792326,40,648.0051,4.599951 +0.8405607,53,811.9904,5.195353 +0.5946238,5,169.7788,2.477280 +0.8982927,26,848.3721,4.89743 +0.9365957,28,407.9059,5.186799 +0.7668708,53,178.9098,5.035299 +0.6584784,76,890.6541,5.033633 +0.5389569,12,497.2326,3.286257 +0.6999825,24,456.0215,4.240168 +0.9096133,31,747.363,5.084439 +0.8289016,2,283.8486,1.940521 +0.6901096,87,214.8528,5.214694 +0.6694101,78,530.8827,5.077346 +0.6567067,73,317.1940,5.014601 +0.679931,95,191.9584,5.260732 +0.5387921,23,10.62070,4.063064 +0.756781,59,405.9484,5.062023 +0.5842175,30,292.6955,4.195843 +0.6076509,77,417.3091,4.961052 +0.6543601,92,829.3172,5.161897 +0.5755779,49,196.0489,4.577904 +0.5450119,38,102.0792,4.334683 +0.9404626,51,345.8694,5.64067 +0.7038778,74,55.63226,5.222917 +0.8082828,86,120.1308,5.521448 +0.7313073,93,923.7832,5.313754 +0.5285032,3,618.0018,1.654841 +0.9024613,17,854.2145,4.591173 +0.6862795,37,30.83803,4.714655 +0.7354094,8,867.1883,3.332226 +0.9007964,29,611.6991,4.995666 +0.6588533,49,769.275,4.713477 +0.8563857,26,675.1622,4.728254 +0.8872304,87,328.7089,5.722146 +0.9268127,69,847.4352,5.724473 +0.6875418,60,935.4085,4.917128 +0.891503,19,974.8925,4.624085 +0.6769115,96,834.304,5.231948 +0.7652566,25,969.8592,4.421208 +0.6201267,12,685.9498,3.451914 +0.6599803,63,784.9818,4.901872 +0.6964509,81,667.3963,5.152364 +0.6965717,35,935.8557,4.529274 +0.6360838,51,280.4093,4.7129 +0.8371735,88,757.6325,5.533856 +0.6208766,74,120.8144,4.986134 +0.6598676,62,270.1187,4.904797 +0.8525584,26,247.1739,4.738222 +0.7263877,70,427.1566,5.116298 +0.7346672,31,453.3599,4.52499 +0.8395507,14,95.145,4.228401 +0.7380277,4,15.21835,2.710866 +0.5857433,63,4.982476,5.40675 +0.8829485,78,53.84525,5.862786 +0.6057832,60,87.74786,4.814740 +0.7225465,21,738.9869,4.176617 +0.6532181,99,770.4294,5.211655 +0.8260238,21,471.1853,4.462461 +0.7465538,91,348.1825,5.348179 +0.8766148,72,320.0464,5.555052 +0.6860644,88,913.9462,5.187536 +0.8306096,62,184.0549,5.32403 +0.6324524,63,799.4854,4.851846 +0.5364287,49,30.90720,4.577945 +0.6288004,24,822.3586,4.08774 +0.9113013,43,150.4739,5.401755 +0.6569249,22,476.9137,4.074598 +0.804286,26,90.7052,4.632987 +0.8768176,18,824.244,4.518036 +0.6579506,44,270.2119,4.642845 +0.7120674,45,417.2141,4.762816 +0.6624692,2,355.9182,1.358141 +0.7997539,59,516.3986,5.162715 +0.9064637,37,727.8032,5.196172 +0.8220323,7,432.6814,3.474522 +0.75176,55,861.221,4.988624 +0.6098563,56,461.1784,4.728862 +0.661423,93,384.5225,5.191923 +0.8380577,45,787.3014,5.07156 +0.5475543,54,151.5863,4.608017 +0.9364163,89,550.0236,5.958449 +0.8345188,33,715.9277,4.83412 +0.9300926,24,417.0907,5.028721 +0.715501,56,100.0091,4.987019 +0.9396052,60,513.9873,5.726164 +0.5227287,97,513.9972,4.986833 +0.8565892,7,304.42,3.615298 +0.9116222,74,986.7343,5.688216 +0.8512815,45,27.81513,5.487517 +0.9298235,83,989.083,5.857929 +0.626031,73,643.8244,4.949713 +0.8482173,91,457.0946,5.601593 +0.5709514,32,457.7069,4.220686 +0.6943745,92,242.0755,5.258453 +0.8606947,39,318.7593,5.064335 +0.840107,80,678.4295,5.48065 +0.5747926,29,651.5253,4.144597 +0.8357058,7,666.7798,3.522195 +0.869957,81,855.4466,5.580992 +0.670602,54,101.5262,4.85908 +0.8043425,81,708.5911,5.389184 +0.7803241,71,259.3759,5.26357 +0.7343555,43,335.7706,4.781522 +0.6297029,47,719.406,4.628093 +0.6101721,45,104.9270,4.593527 +0.5134342,15,925.1843,3.448606 +0.8411402,71,917.1132,5.397877 +0.7914293,83,136.8519,5.438173 +0.6139731,77,618.7109,4.967776 +0.5357605,24,862.5706,3.912846 +0.5025054,26,595.9775,3.923262 +0.89996,57,532.7505,5.473657 +0.7650395,53,698.8342,4.994776 +0.7758476,20,845.1518,4.268804 +0.769896,71,98.302,5.297764 +0.6660289,82,968.9507,5.100656 +0.9441867,10,37.19494,4.689927 +0.8946557,52,995.2553,5.374756 +0.7667594,71,705.5376,5.206838 +0.5014517,77,871.1445,4.783311 +0.5965555,7,819.4321,2.854995 +0.8659944,2,758.1844,2.121457 +0.6069824,22,158.3323,3.987152 +0.6479568,94,353.0358,5.176647 +0.5823552,65,489.6782,4.792003 +0.8344934,16,260.4225,4.279719 +0.914692,65,954.2295,5.618436 +0.7871276,33,206.7722,4.724443 +0.6903965,76,163.2536,5.12962 +0.6344172,37,484.5121,4.454353 +0.6875203,61,231.6496,4.951199 +0.7422141,52,591.7167,4.930737 +0.7599737,31,281.7283,4.594985 +0.6880801,23,810.4523,4.174274 +0.81849,54,857.3539,5.1427 +0.8148196,72,388.4852,5.349729 +0.8212496,76,979.5797,5.386053 +0.6091061,50,602.2909,4.639421 +0.8067955,63,27.98457,5.562519 +0.9042222,97,672.1885,5.838087 +0.6244393,47,2.131261,6.358538 +0.5254594,98,625.0347,4.997252 +0.8791726,34,862.3985,5.01207 +0.746068,56,620.111,4.992682 +0.8306618,24,473.0823,4.583617 +0.7019251,90,179.0329,5.269792 +0.820721,3,27.40536,2.585711 +0.6277612,95,375.2626,5.147359 +0.760516,77,973.8867,5.245349 +0.7752467,87,718.0702,5.366682 +0.7374634,28,778.2432,4.445331 +0.7285804,45,770.6425,4.790764 +0.8101368,99,420.6396,5.551649 +0.8354864,2,752.3351,1.967745 +0.9366795,96,934.8403,5.99238 +0.7295988,2,854.2223,1.559671 +0.902451,16,637.7424,4.546596 +0.6556947,67,88.20184,4.998451 +0.8541205,74,192.7775,5.521679 +0.9460709,29,695.1937,5.267903 +0.636149,84,870.8137,5.06554 +0.6345869,49,321.4711,4.677389 +0.8826033,54,110.8286,5.460166 +0.8048285,100,344.4542,5.551093 +0.760377,54,437.62,5.004792 +0.5793991,27,765.2235,4.092846 +0.6896911,15,676.624,3.810868 +0.660633,69,60.04597,5.061003 +0.5156361,16,606.4331,3.513952 +0.893971,53,914.421,5.386176 +0.9322795,45,194.9015,5.536317 +0.9217502,47,148.8462,5.526009 +0.7223354,41,354.2265,4.717427 +0.7254239,21,944.9461,4.181863 +0.708828,75,461.7057,5.127708 +0.7022857,28,137.4031,4.397661 +0.9036889,27,341.8465,4.972055 +0.8784777,44,937.2588,5.193275 +0.6917807,29,917.8933,4.370685 +0.8760101,23,943.734,4.705450 +0.9430376,66,524.9752,5.811901 +0.5017794,92,151.7466,4.928244 +0.8888717,89,367.2177,5.738572 +0.6703306,14,535.2485,3.706171 +0.672854,26,944.1592,4.242406 +0.6472046,80,827.924,5.0506 +0.8772473,5,160.6619,3.382955 +0.8926035,81,187.3492,5.733713 +0.6786785,93,663.5972,5.215532 +0.7578081,65,667.543,5.124931 +0.7833775,55,329.4239,5.081013 +0.7000353,43,82.3758,4.762278 +0.888855,70,652.9058,5.560005 +0.6924933,87,478.0858,5.199561 +0.840106,52,313.4649,5.202915 +0.5399748,25,364.0615,3.959138 +0.902836,16,403.3234,4.557186 +0.6867339,26,969.5584,4.271392 +0.8742233,37,480.4238,5.064757 +0.7599474,67,993.2258,5.14663 +0.883177,65,310.0843,5.512333 +0.6960705,31,389.7709,4.440958 +0.7739131,71,67.05128,5.352244 +0.7563553,22,940.1603,4.295526 +0.8219649,40,352.6679,4.952488 +0.9108295,14,658.4179,4.483537 +0.9498709,73,859.1367,5.912762 +0.8252522,84,979.9907,5.46482 +0.7923822,95,142.433,5.531805 +0.5749987,39,896.3604,4.383877 +0.8141943,10,294.8625,3.793207 +0.5594338,52,69.15462,4.625047 +0.932766,68,273.3,5.796079 +0.6501828,67,958.8537,4.927372 +0.6199984,91,910.7417,5.0943 +0.9105013,61,86.3416,5.723355 +0.6500351,13,101.7401,3.61627 +0.9173677,4,921.6633,3.358811 +0.7483216,56,811.9803,4.994524 +0.6619459,6,672.351,2.841462 +0.7787717,50,588.649,4.988066 +0.6915036,64,334.7062,4.985228 +0.8969362,5,505.469,3.470211 +0.8492126,3,306.2505,2.637068 +0.6736042,74,738.814,5.043914 +0.8280637,68,39.91354,5.600346 +0.9255473,6,906.1636,3.830839 +0.595304,14,217.5326,3.552682 +0.8425488,84,901.4002,5.515823 +0.7499038,4,308.2265,2.622547 +0.7292323,64,240.871,5.072892 +0.5156149,32,761.0943,4.120675 +0.9342052,76,325.2375,5.867557 +0.7430211,54,869.715,4.955698 +0.5554406,32,914.998,4.189741 +0.703071,36,997.2677,4.564418 +0.6830719,69,89.59823,5.077642 +0.6347344,13,419.0303,3.561125 +0.678805,77,456.5152,5.087955 +0.6484101,26,166.0909,4.212926 +0.5956851,21,718.855,3.909814 +0.6716819,49,506.3922,4.742036 +0.880219,4,437.3379,3.137609 +0.6992864,21,926.1055,4.122149 +0.7350454,17,803.2935,4.027239 +0.924039,65,518.5967,5.682937 +0.7097215,47,189.0405,4.809879 +0.820387,6,275.5597,3.317263 +0.9255068,81,23.14098,6.576327 +0.55869,9,627.6641,3.038083 +0.6046422,57,853.3931,4.728344 +0.744582,23,563.4014,4.306778 +0.6502728,57,30.85893,4.969265 +0.7468517,32,992.2413,4.570483 +0.6578665,20,675.1416,3.992919 +0.5214619,89,909.4671,4.920113 +0.8465362,44,158.5620,5.137696 +0.6626981,19,212.1094,3.971124 +0.8807791,42,327.2020,5.194205 +0.7866526,79,760.59,5.326811 +0.7779337,73,365.5488,5.26587 +0.9119104,46,26.67773,5.894684 +0.5792652,7,547.2527,2.817491 +0.5369576,36,356.6722,4.257976 +0.883138,81,393.9469,5.650472 +0.5432084,71,55.75745,4.842559 +0.895006,86,614.9657,5.72293 +0.768465,50,513.2161,4.965069 +0.9327656,92,794.7848,5.945621 +0.7523386,50,317.4484,4.936806 +0.741749,56,496.2921,4.986378 +0.7054378,77,244.3444,5.154722 +0.8930161,52,269.8881,5.405983 +0.8259867,30,446.4984,4.742886 +0.9428722,78,646.6361,5.911485 +0.587867,69,311.0502,4.850746 +0.7552073,27,941.9401,4.457584 +0.7985361,86,716.3606,5.414992 +0.7237573,8,175.6068,3.314545 +0.6685535,57,696.2688,4.845468 +0.5013911,23,945.8882,3.813899 +0.6523594,99,24.28822,5.442461 +0.7394495,49,881.9684,4.876581 +0.854433,28,707.679,4.777123 +0.8204082,83,605.3809,5.451369 +0.79852,86,288.334,5.438983 +0.7310523,85,717.5282,5.25414 +0.9195674,81,107.4469,5.937123 +0.6529936,19,20.64329,4.099437 +0.6067644,22,388.9285,3.975088 +0.8650076,38,466.122,5.050008 +0.6128448,67,98.0593,4.906338 +0.752887,51,922.446,4.935679 +0.6460481,27,814.8709,4.219734 +0.6936537,45,245.3472,4.734685 +0.784517,60,421.8168,5.13995 +0.6001813,61,686.6315,4.772608 +0.9319204,62,696.6375,5.688879 +0.922267,71,823.7056,5.718688 +0.6002578,9,503.0087,3.127464 +0.6310301,6,138.3597,2.776067 +0.8483663,18,189.1734,4.438687 +0.70115,88,191.8286,5.2494 +0.8561147,97,22.70583,6.228308 +0.667727,56,494.8825,4.834405 +0.6542349,9,824.6264,3.246751 +0.5206833,7,729.2577,2.690404 +0.658784,87,246.0525,5.150044 +0.5953643,23,366.7405,3.991525 +0.6766511,91,414.3638,5.203471 +0.825277,42,851.569,4.981794 +0.6250303,58,23.19250,4.962958 +0.8423589,99,93.69587,5.756519 +0.8063293,31,264.1642,4.722025 +0.620299,64,122.1244,4.876939 +0.7893993,47,877.3323,4.96473 +0.6962783,83,146.4735,5.210165 +0.5332282,41,131.3166,4.368617 +0.6765526,53,138.7834,4.842043 +0.8702945,27,497.7323,4.814542 +0.7776173,82,76.84477,5.449936 +0.8220009,15,216.7689,4.187112 +0.924437,7,953.394,3.967118 +0.8349073,25,895.0206,4.621042 +0.5263872,22,348.8703,3.823587 +0.6831776,52,279.0269,4.81924 +0.8806107,92,969.464,5.700816 +0.7174212,95,820.0121,5.301742 +0.6907261,79,551.123,5.12615 +0.6847294,89,759.6159,5.194662 +0.5568725,20,625.1609,3.793706 +0.6078584,10,146.1385,3.259882 +0.7378435,47,589.1384,4.846525 +0.9052463,80,710.1403,5.716327 +0.7568209,43,98.5796,4.888557 +0.5767346,61,609.2453,4.733473 +0.8850829,8,556.3335,3.865227 +0.6507976,72,844.7777,4.981404 +0.7150611,77,310.9208,5.167565 +0.8717278,21,382.6469,4.631755 +0.6029478,52,730.9699,4.657059 +0.8668438,61,542.8423,5.387924 +0.9472293,42,932.0925,5.527578 +0.8546157,31,560.8847,4.858193 +0.6580792,33,540.6646,4.408665 +0.6077477,11,744.3783,3.341634 +0.7560453,46,377.6593,4.879772 +0.5934148,59,364.4261,4.741766 +0.6420253,87,671.283,5.102801 +0.5611765,38,346.1592,4.344532 +0.939425,28,247.0993,5.230175 +0.6246716,11,705.8324,3.378152 +0.5071962,93,202.9717,4.940695 +0.6177509,44,86.61081,4.599245 +0.6201071,90,284.9948,5.100697 +0.7943832,4,651.253,2.767431 +0.5547687,14,92.42605,3.481923 +0.6008824,81,964.5551,4.979063 +0.8629902,95,927.3415,5.661068 +0.5217671,20,910.9093,3.727425 +0.7689205,71,179.86,5.252005 +0.6822136,93,682.3452,5.221752 +0.6892221,24,467.665,4.216273 +0.9466872,49,883.4082,5.627904 +0.782297,14,837.0868,3.984421 +0.6690006,34,806.0445,4.451114 +0.8822465,16,302.8304,4.464571 +0.814535,72,793.6759,5.333641 +0.780475,65,104.4416,5.256237 +0.6682725,41,54.42584,4.684022 +0.8818546,92,241.0917,5.755743 +0.5129674,89,518.6905,4.909487 +0.6083917,7,195.1739,2.888261 +0.8140826,93,353.8889,5.525755 +0.6558119,59,593.6033,4.848487 +0.5921442,53,938.0159,4.651416 +0.6950022,92,367.6952,5.248443 +0.8418083,45,53.97386,5.266512 +0.8581418,9,996.44,3.847388 +0.906525,76,919.7202,5.683072 +0.7922269,86,262.6776,5.426634 +0.8804859,57,874.4561,5.382196 +0.6551834,55,992.6632,4.791359 +0.6348819,63,68.21945,4.925976 +0.539279,2,999.5265,1.043612 +0.5769965,8,480.9133,2.955411 +0.7496352,5,952.3615,2.876907 +0.6318387,42,714.5921,4.545552 +0.8323459,12,329.8476,4.019001 +0.898379,75,202.0454,5.701038 +0.8675291,19,141.8562,4.573326 +0.5642187,34,590.5545,4.256547 +0.8223834,83,86.52396,5.576896 +0.8367909,82,911.1915,5.482459 +0.5391946,30,341.9927,4.112239 +0.7218873,64,588.085,5.037551 +0.712584,25,774.5507,4.297156 +0.6410482,70,466.223,4.94933 +0.9427801,78,553.2906,5.916202 +0.7313513,22,109.2037,4.277424 +0.6818153,96,512.4702,5.246855 +0.5512217,98,992.8429,5.035079 +0.7812837,89,618.1023,5.398797 +0.7540433,88,544.6624,5.331273 +0.7513365,43,739.7543,4.808344 +0.6869057,45,887.4778,4.702743 +0.7466107,87,160.8096,5.348803 +0.6327194,74,213.3965,4.989166 +0.799753,98,822.153,5.503853 +0.5081392,76,11.12948,4.967705 +0.5695873,58,148.3262,4.702562 +0.8698363,93,582.4204,5.680172 +0.7370043,53,83.27543,5.011579 +0.5155987,2,810.935,0.9893308 +0.9243925,64,607.5746,5.669679 +0.5951338,40,455.03,4.443665 +0.9100938,9,241.3229,4.124432 +0.5649921,47,58.03952,4.565033 +0.8871607,49,163.9309,5.37103 +0.6987442,58,873.9467,4.914947 +0.7717202,56,295.2688,5.068172 +0.8971835,26,322.9148,4.913746 +0.7098414,26,138.5701,4.354089 +0.5980129,75,381.2143,4.926538 +0.7466993,8,939.951,3.363184 +0.5817556,27,166.0144,4.111321 +0.6169866,9,789.4504,3.162706 +0.8773756,90,872.0359,5.676485 +0.9487774,19,620.3235,4.984752 +0.6012269,72,648.6574,4.896949 +0.8874921,70,590.1976,5.557023 +0.689685,87,78.50793,5.272388 +0.5055174,93,963.2988,4.927143 +0.6047475,64,893.5502,4.814436 +0.7766777,50,368.8056,4.991917 +0.5686279,25,323.1676,4.012975 +0.7818071,83,226.9735,5.3823 +0.8170889,12,153.6800,3.985706 +0.7977554,29,770.1328,4.626086 +0.7852365,46,989.7344,4.93727 +0.7927683,74,356.9458,5.312917 +0.7867968,6,399.7946,3.195968 +0.8733431,12,935.9138,4.166780 +0.8796833,70,934.9437,5.517356 +0.636514,68,971.9312,4.913639 +0.6808005,20,430.3306,4.045446 +0.6048896,85,981.4121,5.020153 +0.8654105,89,720.428,5.630987 +0.6864552,67,602.496,4.999139 +0.6300466,96,289.0463,5.163596 +0.817489,75,211.2414,5.410742 +0.8400478,92,679.8478,5.573994 +0.5698388,8,300.8922,2.941856 +0.582194,5,504.4376,2.443357 +0.5349201,22,127.5678,3.849569 +0.6187668,22,951.209,3.993716 +0.8008588,62,233.6063,5.225165 +0.5965371,94,40.45694,5.187102 +0.8151207,32,756.864,4.751175 +0.7769006,27,223.2838,4.536306 +0.7174666,8,396.4691,3.288214 +0.7976062,11,776.9354,3.816095 +0.518612,40,443.6649,4.309965 +0.804459,24,381.0473,4.506709 +0.6998635,62,207.0057,4.992047 +0.5738755,63,649.407,4.752359 +0.5914398,66,114.7394,4.847805 +0.7516815,54,737.3794,4.9768 +0.8206513,74,838.3675,5.368303 +0.6892161,22,248.1324,4.152309 +0.7557864,96,773.9158,5.388975 +0.7424069,8,419.5075,3.355515 +0.64102,31,125.2648,4.350865 +0.8755487,29,531.1229,4.887958 +0.8220866,64,95.23995,5.376784 +0.7298066,84,988.9888,5.239885 +0.6498086,59,777.8337,4.835051 +0.5952051,16,43.86029,3.720629 +0.5406545,28,730.805,4.053318 +0.8730058,94,570.9119,5.698879 +0.7848164,39,595.9421,4.819905 +0.5056704,85,235.6726,4.870872 +0.7503822,93,40.40904,5.569652 +0.7623385,77,656.6282,5.254356 +0.9050834,28,639.3919,4.989896 +0.5792019,63,720.7618,4.76066 +0.9365765,81,741.2498,5.889811 +0.5170495,36,709.0156,4.220138 +0.7579033,50,215.9502,4.962113 +0.7261358,35,950.1155,4.592818 +0.867949,61,174.7179,5.443687 +0.8219999,91,90.11405,5.635406 +0.7344778,6,768.4564,3.032963 +0.6391056,66,344.9348,4.907219 +0.715629,5,461.1896,2.780410 +0.9456008,14,125.8034,4.795929 +0.7781412,93,949.9423,5.414954 +0.9017116,9,294.1608,4.070416 +0.7990502,54,177.7193,5.134096 +0.5764074,30,277.9910,4.181882 +0.868876,87,530.6085,5.635381 +0.838551,3,655.3641,2.584304 +0.8733335,81,169.8654,5.663368 +0.8009454,37,421.7654,4.829536 +0.6619069,3,358.1408,1.990475 +0.936464,46,82.03691,5.698119 +0.8662996,15,787.2326,4.326679 +0.6319756,60,396.6261,4.821835 +0.8327794,21,356.1523,4.489936 +0.697243,14,426.6443,3.769716 +0.9422893,39,798.8793,5.442873 +0.8401464,40,876.4566,4.99153 +0.7271848,14,801.7663,3.837801 +0.9366602,79,839.1458,5.871191 +0.8654798,86,219.8499,5.655314 +0.601478,40,521.7851,4.454044 +0.8159394,76,844.3883,5.373576 +0.877629,12,263.1835,4.205521 +0.6199173,63,541.6174,4.832829 +0.8350693,96,494.7244,5.595292 +0.9331142,30,310.2021,5.223768 +0.5971522,26,294.0387,4.101062 +0.7050427,85,799.8672,5.200766 +0.8245875,85,519.8425,5.482495 +0.8156111,40,282.1250,4.940373 +0.5562086,50,914.5773,4.545837 +0.7945503,56,509.8487,5.11224 +0.9002302,48,657.2615,5.351519 +0.7408247,9,582.8542,3.464661 +0.7706727,10,123.3315,3.675843 +0.8233978,87,586.6883,5.492068 +0.6780417,86,613.6269,5.160592 +0.7555267,27,593.3262,4.462403 +0.8589791,98,210.522,5.72345 +0.8564374,49,475.0287,5.201909 +0.6455064,10,888.3926,3.330776 +0.6118692,22,225.4656,3.991082 +0.7097182,9,955.9376,3.380605 +0.8303001,97,751.4643,5.579085 +0.8857616,77,819.6227,5.606405 +0.9371744,94,581.324,5.995916 +0.904798,16,844.1146,4.555205 +0.8052004,76,937.64,5.343849 +0.6413274,76,156.2456,5.034433 +0.5005335,20,619.3793,3.689414 +0.6843155,95,944.576,5.237186 +0.5974006,85,681.7894,5.010067 +0.5821853,27,280.7281,4.104808 +0.8953317,29,409.1469,4.979421 +0.817542,38,884.406,4.885221 +0.6230185,10,126.0652,3.296125 +0.8992164,64,214.1892,5.59214 +0.8508804,86,21.84537,6.12389 +0.6022805,78,638.9464,4.956948 +0.8040262,95,829.4797,5.493623 +0.9077964,51,521.2882,5.434688 +0.7534537,25,426.964,4.399786 +0.9285945,35,190.0018,5.335034 +0.6491223,5,588.7468,2.603757 +0.8181373,96,574.1935,5.544206 +0.7787446,23,373.9165,4.400276 +0.670359,31,124.0375,4.413313 +0.6786379,88,957.521,5.173391 +0.5888266,74,550.2265,4.897334 +0.6085072,66,639.6363,4.845776 +0.6478314,71,985.1027,4.964951 +0.7657263,6,179.6602,3.137958 +0.8456286,68,404.8321,5.399875 +0.5364791,22,998.3107,3.8383 +0.6038707,50,164.2271,4.64913 +0.857209,77,795.551,5.505422 +0.5249804,39,328.439,4.302451 +0.7442277,42,966.5417,4.772024 +0.7201957,47,475.412,4.810843 +0.5699931,24,869.3557,3.975455 +0.6989484,70,816.274,5.051683 +0.7812828,44,2.135128,8.591494 +0.5219076,100,237.0052,5.014755 +0.6106303,98,854.5144,5.13124 +0.5026807,86,224.5775,4.875127 +0.8198123,71,575.1678,5.3441 +0.6138242,71,745.7467,4.907245 +0.6805838,55,638.4604,4.843034 +0.9290318,35,257.3453,5.317635 +0.6470365,22,696.273,4.051653 +0.6337309,97,363.7865,5.172954 +0.7886795,17,643.3402,4.171278 +0.8254145,5,582.7275,3.136136 +0.8516908,52,803.336,5.217638 +0.9166178,8,577.6604,4.041351 +0.8968548,98,527.179,5.820264 +0.5722818,24,793.7203,3.979998 +0.6032017,23,788.499,4.00212 +0.5075828,33,519.9306,4.133535 +0.8657794,62,58.56733,5.593048 +0.6514194,9,397.1311,3.243381 +0.740069,89,621.0678,5.306752 +0.9482056,56,275.5806,5.77576 +0.8230623,9,52.053,3.803464 +0.6082217,53,915.879,4.679475 +0.6464528,5,119.4947,2.607668 +0.8350917,7,226.1173,3.532820 +0.6178383,61,243.0198,4.816592 +0.7782553,77,374.1483,5.303223 +0.8656266,98,739.3553,5.694418 +0.6165961,45,754.2097,4.570610 +0.7231948,97,951.436,5.325928 +0.7702777,54,307.4097,5.037028 +0.7941128,83,842.361,5.377428 +0.9480839,73,274.8127,5.950433 +0.87857,68,853.7356,5.495204 +0.8815007,47,334.6438,5.276524 +0.5020565,73,127.3073,4.761097 +0.8132388,17,766.5308,4.243171 +0.6349836,72,217.501,4.97288 +0.7345042,45,446.8198,4.810678 +0.6324589,56,695.5116,4.765614 +0.6766945,65,682.7241,4.957177 +0.8384446,45,50.39085,5.266822 +0.8292134,96,840.1522,5.567259 +0.6719539,48,656.1994,4.724372 +0.809623,95,56.85168,5.701083 +0.7498366,17,364.4239,4.072086 +0.619014,13,707.4429,3.525017 +0.6811455,74,605.4795,5.060201 +0.882381,46,958.455,5.239598 +0.7015142,82,476.2719,5.175633 +0.5299216,16,494.2751,3.541732 +0.6607211,14,884.8854,3.6824 +0.6563658,76,473.8497,5.036273 +0.9086148,20,348.7688,4.768237 +0.5317627,83,431.7357,4.889704 +0.825882,54,6.723105,6.564159 +0.7910776,83,855.6105,5.369767 +0.5434787,31,396.3381,4.146151 +0.7552404,20,230.9523,4.232531 +0.9128294,2,948.336,2.421541 +0.8734858,3,943.6312,2.752039 +0.7619628,13,46.50071,3.95599 +0.530564,21,589.0549,3.788025 +0.8672307,32,385.6643,4.936566 +0.5758073,16,507.0537,3.630556 +0.9346337,28,207.8552,5.206275 +0.6086858,100,427.5916,5.148903 +0.8526955,60,625.6103,5.325112 +0.7807349,97,208.4894,5.491468 +0.6613672,24,666.5108,4.154454 +0.7868165,30,481.2405,4.628475 +0.9346749,13,889.5627,4.572415 +0.9328514,7,828.8279,4.030245 +0.5606693,6,261.8499,2.607946 +0.8161636,17,780.7351,4.252196 +0.6558015,79,528.6601,5.061497 +0.831897,81,635.7404,5.466197 +0.915886,22,853.311,4.862409 +0.5913286,72,60.15915,4.945122 +0.8646249,33,264.7087,4.962252 +0.8321677,72,908.4424,5.380992 +0.6962891,65,110.6920,5.048255 +0.6304735,72,218.5794,4.964444 +0.6745612,29,459.785,4.34005 +0.9232729,26,918.3574,5.02832 +0.8580391,47,854.3836,5.166712 +0.5624958,56,846.6226,4.643342 +0.7873887,36,127.6685,4.816235 +0.5135421,82,424.3989,4.85195 +0.814808,97,115.9282,5.628076 +0.8753602,40,178.0754,5.167777 +0.6118576,23,147.7502,4.036733 +0.6847514,43,587.8533,4.667379 +0.6061571,47,758.2529,4.585328 +0.5858277,36,416.5601,4.343773 +0.8739752,83,707.7928,5.61507 +0.8375114,6,982.8637,3.372709 +0.9003886,58,173.6305,5.545955 +0.5981954,71,128.2512,4.910756 +0.7455954,57,286.4944,5.020046 +0.7812342,42,253.2611,4.88518 +0.730042,91,961.7669,5.295857 +0.7136859,65,302.7885,5.044119 +0.693914,50,633.6842,4.798753 +0.7007014,9,755.1023,3.35871 +0.5536581,56,347.3614,4.634456 +0.5760761,33,840.6948,4.25189 +0.5446971,18,518.0001,3.677323 +0.843379,13,993.9418,4.115953 +0.787686,66,606.3317,5.208036 +0.824503,100,349.7422,5.603655 +0.8745048,52,832.2114,5.296925 +0.5533256,6,456.3044,2.589675 +0.9002027,32,78.98477,5.199832 +0.7572682,69,955.2467,5.161683 +0.9110095,86,223.9173,5.844839 +0.815023,94,299.6559,5.541953 +0.8908233,97,786.267,5.778197 +0.5329625,8,44.15612,2.887261 +0.5134662,39,538.1438,4.279916 +0.5981097,30,227.5569,4.225254 +0.7171263,75,704.7456,5.138373 +0.930335,42,353.6559,5.438617 +0.8124237,87,3.898780,7.969198 +0.9411632,55,725.4331,5.668858 +0.8050018,42,440.056,4.934311 +0.7530192,22,622.1026,4.290333 +0.8170806,84,470.7614,5.456249 +0.93525,14,386.908,4.651497 +0.7166343,60,104.1422,5.038449 +0.917954,87,868.0088,5.826831 +0.8879323,89,923.3232,5.70781 +0.8616931,37,534.479,5.0154 +0.6735284,59,446.7707,4.885447 +0.7125385,71,553.2622,5.093403 +0.7026195,75,235.6866,5.131304 +0.5473121,3,51.68421,1.711303 +0.6607179,73,43.87053,5.137546 +0.9180171,76,942.4687,5.738086 +0.7645448,19,49.50595,4.30261 +0.733274,29,65.80698,4.546218 +0.7325852,69,130.5952,5.163234 +0.8181913,32,208.0369,4.790727 +0.8948076,14,251.6971,4.419942 +0.6873142,66,993.6974,4.985319 +0.7436848,83,858.6368,5.261985 +0.6818223,2,192.871,1.415344 +0.8277169,97,240.0575,5.609687 +0.5514969,34,543.0716,4.23445 +0.6439629,72,103.1574,5.01859 +0.6550325,8,781.9898,3.12958 +0.6659297,19,936.6371,3.964243 +0.5612373,26,409.1167,4.030819 +0.7397453,2,391.9286,1.594413 +0.6857085,21,758.4541,4.093299 +0.9099568,5,498.0438,3.549488 +0.6577822,82,897.6692,5.086357 +0.500702,72,793.448,4.732607 +0.6754568,15,469.036,3.780968 +0.8649758,48,711.3555,5.208689 +0.9421843,99,391.6264,6.079699 +0.5887436,41,416.7053,4.452386 +0.6453773,33,118.3290,4.412801 +0.5258648,2,717.5804,1.012781 +0.8994016,91,624.9795,5.777852 +0.9174562,84,784.1775,5.804003 +0.6026578,45,320.371,4.553099 +0.7835312,95,79.15228,5.568083 +0.8392914,9,942.9991,3.773431 +0.5477099,23,308.0442,3.902671 +0.6494744,58,864.7787,4.82106 +0.7872531,43,741.0002,4.895919 +0.7405713,93,631.6467,5.337746 +0.5555238,3,66.43276,1.728283 +0.8471521,97,209.7429,5.67748 +0.6715602,45,588.2055,4.675771 +0.7405694,92,749.2553,5.327916 +0.8410912,54,457.7499,5.221268 +0.8757793,69,65.46372,5.692853 +0.7991129,56,816.1179,5.11671 +0.7858377,48,416.5169,4.982474 +0.5952346,45,733.9624,4.532618 +0.6598747,90,74.41126,5.236416 +0.6534484,33,614.6466,4.398455 +0.8005183,24,76.41495,4.570226 +0.8149166,73,807.8775,5.343885 +0.6109188,96,881.563,5.117026 +0.5833846,73,947.8851,4.874815 +0.8332582,88,968.2539,5.518672 +0.6754794,51,86.20849,4.835891 +0.8493183,44,524.7134,5.098639 +0.8793586,56,342.3730,5.390078 +0.9408401,71,467.3872,5.848698 +0.8204796,62,735.2938,5.247582 +0.5961426,44,397.1915,4.521413 +0.9433597,94,329.7532,6.065443 +0.7392313,68,959.699,5.111895 +0.7280047,44,253.7937,4.791354 +0.9357452,29,118.6147,5.291764 +0.5828571,12,498.9039,3.375103 +0.854744,96,453.3386,5.65804 +0.6149968,12,355.3678,3.444266 +0.7638173,54,969.4548,5.001912 +0.7476226,28,43.02059,4.604015 +0.850204,8,125.8630,3.741361 +0.9339542,93,395.239,5.985747 +0.7262818,57,318.2872,4.97424 +0.8771483,94,12.71455,6.793142 +0.8665523,10,839.1073,3.979023 +0.5291674,79,823.083,4.845809 +0.8461989,59,832.332,5.287621 +0.777691,78,744.0216,5.296929 +0.9102575,62,170.4963,5.642964 +0.8246145,85,441.5772,5.486911 +0.7071098,60,820.3086,4.956934 +0.764151,61,333.7483,5.108028 +0.5108066,80,644.122,4.827203 +0.7611696,16,294.2634,4.053159 +0.8603075,85,563.544,5.58912 +0.8424507,6,611.1168,3.395027 +0.6682346,29,18.91631,4.544126 +0.8095137,51,364.8527,5.093099 +0.7633285,38,899.6544,4.74209 +0.7597025,69,397.2478,5.181009 +0.5636095,68,83.49942,4.830507 +0.6316091,93,477.1815,5.135545 +0.6936116,17,552.0311,3.931617 +0.6651088,22,472.8825,4.091816 +0.6405015,26,806.6532,4.177675 +0.7669137,26,886.3107,4.457322 +0.5879523,43,646.7016,4.485114 +0.6280889,46,774.7226,4.608213 +0.5473221,16,613.2056,3.574369 +0.7583959,54,624.1828,4.994282 +0.7935764,27,411.9446,4.567327 +0.6500053,78,147.9928,5.072065 +0.7342936,74,691.8988,5.164618 +0.6859192,72,91.85724,5.113456 +0.8017832,38,38.24381,5.052178 +0.7350069,90,887.2783,5.299267 +0.5002206,82,194.0412,4.837904 +0.7533237,28,614.7288,4.48545 +0.6214808,73,677.9877,4.941362 +0.6034381,66,904.2544,4.834818 +0.6045959,2,877.1838,1.202471 +0.9191417,39,669.9381,5.300754 +0.6090986,15,6.147124,4.030793 +0.728691,100,992.5201,5.357287 +0.5803494,68,749.7505,4.818952 +0.918249,54,720.6098,5.51828 +0.5866335,42,368.2729,4.46873 +0.6226366,31,350.1711,4.293452 +0.7953375,27,164.7003,4.599415 +0.9233556,20,545.3525,4.841628 +0.693924,97,812.52,5.270879 +0.937212,74,26.53409,6.523377 +0.6805653,66,47.1862,5.100028 +0.7598593,85,643.3909,5.317449 +0.8058038,66,761.6447,5.250769 +0.8822559,54,532.8792,5.361971 +0.614166,33,678.061,4.322546 +0.5167548,13,344.9084,3.321401 +0.737005,56,5.424758,6.144477 +0.629088,3,598.6654,1.901919 +0.7769968,90,932.9398,5.390308 +0.6373748,34,936.7224,4.388537 +0.6587434,3,926.8075,1.980018 +0.5993432,94,95.931,5.129989 +0.5982387,29,182.5984,4.201114 +0.751724,11,552.4189,3.684922 +0.9073577,62,482.2382,5.567918 +0.8150025,43,122.7201,5.036162 +0.9243253,80,255.6612,5.857814 +0.6357316,58,495.1672,4.800787 +0.6556389,55,670.6358,4.795017 +0.5861568,55,27.15277,4.798386 +0.5978707,90,24.57173,5.221317 +0.6896733,96,195.3440,5.286647 +0.7350595,10,527.6045,3.550931 +0.6093675,12,663.3941,3.429223 +0.9398014,83,857.6633,5.922471 +0.7034168,87,443.1984,5.22213 +0.8345302,96,179.5248,5.641706 +0.5045654,19,171.2933,3.657253 +0.620858,27,380.0845,4.17572 +0.7262354,41,629.6416,4.717633 +0.7868302,46,629.6635,4.946523 +0.5429665,45,958.0298,4.441479 +0.8342748,98,286.7754,5.626783 +0.8041123,3,250.152,2.447191 +0.9403823,19,121.3608,4.999848 +0.7703869,74,891.5093,5.241131 +0.6782789,68,560.84,4.994993 +0.7609106,83,106.6299,5.379529 +0.7128542,66,300.9281,5.053566 +0.7754385,59,752.3254,5.095663 +0.6046017,21,642.2645,3.927618 +0.8529898,27,139.1238,4.798382 +0.636852,89,561.0196,5.111686 +0.9056183,86,387.1032,5.785767 +0.8224681,98,77.91344,5.710191 +0.5523867,13,804.8892,3.388849 +0.8291812,27,953.4762,4.661662 +0.8177408,34,269.3261,4.826065 +0.7287865,84,327.9159,5.25608 +0.8268878,29,43.29403,4.896835 +0.8671857,63,838.8865,5.402451 +0.8206525,53,195.2608,5.177668 +0.885049,98,626.2624,5.76788 +0.8990428,17,665.0439,4.577079 +0.6184093,100,463.2699,5.16428 +0.6138274,89,98.59672,5.11673 +0.8989895,91,652.5609,5.774916 +0.9167108,2,451.0968,2.454734 +0.6440376,3,173.423,1.945308 +0.5069269,8,320.9178,2.808423 +0.8790291,26,308.1264,4.833917 +0.817952,64,604.5596,5.266006 +0.7055887,5,673.2377,2.751103 +0.5783787,47,488.5517,4.539385 +0.6382853,9,577.6296,3.211400 +0.7494703,97,843.769,5.381327 +0.928212,21,92.71302,5.017997 +0.8945758,52,541.9428,5.386425 +0.9273533,29,110.0864,5.241252 +0.8712363,22,733.1957,4.654638 +0.681578,15,609.8606,3.792997 +0.9367158,23,38.28047,5.357522 +0.6860431,23,526.7873,4.172916 +0.946944,59,935.9354,5.751069 +0.8369122,62,745.5164,5.295105 +0.6243354,12,113.3691,3.479315 +0.6961065,17,401.2276,3.940114 +0.7622478,63,32.24591,5.361083 +0.6641784,83,513.3596,5.112256 +0.8703236,94,373.651,5.703827 +0.804767,42,894.5125,4.922929 +0.9440183,8,589.8074,4.246075 +0.6568347,90,353.4818,5.162083 +0.6973254,49,536.6094,4.792459 +0.6027091,22,107.0788,3.987613 +0.8687902,8,406.4523,3.792343 +0.6808716,68,779.8336,4.996458 +0.8583502,77,543.5237,5.51734 +0.9003844,71,810.7064,5.613159 +0.6359577,39,653.3212,4.496185 +0.7515497,45,191.9571,4.87259 +0.8712656,28,769.8281,4.838561 +0.6389448,85,906.1354,5.078503 +0.8614109,75,455.1657,5.51486 +0.5651436,48,913.2336,4.529435 +0.7610586,36,14.70605,5.143973 +0.8849197,17,692.9311,4.509625 +0.5267559,97,238.4357,5.000668 +0.8903445,65,446.8721,5.526908 +0.8770817,38,611.0206,5.090063 +0.8014531,67,382.1654,5.264014 +0.8535349,37,465.0802,4.989573 +0.5623505,16,46.12436,3.645094 +0.5837253,64,787.677,4.779464 +0.723658,50,863.5468,4.857386 +0.8564433,31,155.9212,4.911108 +0.9016261,37,59.11041,5.373747 +0.7303029,86,781.0103,5.259658 +0.7005043,98,556.3923,5.295225 +0.7180099,50,367.8436,4.856627 +0.9047978,22,993.9773,4.801455 +0.9126542,43,635.5784,5.335726 +0.7540421,2,224.3753,1.645104 +0.6360051,35,219.6251,4.424294 +0.8953461,53,753.7426,5.395435 +0.6365136,59,401.6807,4.817458 +0.928798,33,286.4699,5.268117 +0.9313734,89,13.00577,7.330162 +0.6127697,76,716.6624,4.955088 +0.7783512,32,544.107,4.654195 +0.8174788,20,838.73,4.389137 +0.8821462,49,274.2839,5.317271 +0.8402305,17,112.4692,4.387457 +0.7712608,36,101.398,4.78705 +0.71034,76,598.5716,5.136129 +0.5360852,35,592.9235,4.230668 +0.6590919,31,385.5477,4.36415 +0.9290205,86,167.1354,5.972936 +0.764866,11,895.893,3.718443 +0.8687183,76,210.8759,5.585765 +0.5457105,93,738.9931,4.990496 +0.5768204,27,113.9398,4.109705 +0.6897985,28,949.4001,4.338094 +0.7089148,99,806.9645,5.313572 +0.8057506,75,85.7964,5.453375 +0.8763766,4,506.4466,3.116303 +0.7624966,17,586.6706,4.099870 +0.939108,20,231.2577,4.979989 +0.5127664,27,809.2373,3.972834 +0.8927624,97,938.547,5.78237 +0.932796,100,77.90402,6.235576 +0.8703162,49,4.716565,7.690852 +0.8896408,5,86.81217,3.474228 +0.9108773,32,432.7296,5.126532 +0.6567976,82,872.5033,5.084811 +0.7518393,44,331.6293,4.839539 +0.5124162,27,275.0050,3.97686 +0.8612289,60,830.469,5.348553 +0.6776792,99,277.8799,5.27316 +0.8132378,86,368.4492,5.46904 +0.8724424,21,273.9887,4.644203 +0.6566044,64,86.6614,4.967259 +0.7538613,57,913.709,5.018571 +0.7935557,91,850.0482,5.438334 +0.5375645,19,508.9865,3.712566 +0.661665,75,580.1227,5.033955 +0.7219753,29,630.5849,4.439406 +0.5929547,38,192.0488,4.410132 +0.5711968,33,901.1568,4.242911 +0.9488055,89,921.9764,6.028084 +0.525361,88,201.8421,4.930438 +0.6649385,20,472.2082,4.010333 +0.5811662,13,152.8478,3.457696 +0.6499022,49,988.2758,4.695065 +0.677492,61,96.13616,4.969053 +0.590887,55,668.5633,4.679121 +0.759376,56,66.90409,5.134457 +0.5629632,4,81.52404,2.133665 +0.9168937,2,602.7444,2.454823 +0.5553233,47,641.6247,4.497973 +0.8793849,54,14.76064,6.1751 +0.8370545,23,53.10852,4.706975 +0.9032895,80,243.7683,5.753165 +0.664133,13,472.0562,3.625055 +0.7629233,86,414.7802,5.341122 +0.8270712,100,770.9533,5.589796 +0.6800086,13,53.56172,3.715934 +0.7511743,14,774.9862,3.899366 +0.7024368,27,108.2775,4.378215 +0.6683634,88,632.6104,5.158543 +0.8007708,35,679.7018,4.779465 +0.748455,68,74.26819,5.238721 +0.7580406,40,830.2967,4.768767 +0.6867868,16,479.4874,3.863907 +0.6345033,24,263.9350,4.108572 +0.9007885,20,503.914,4.718357 +0.7528125,81,679.4688,5.26777 +0.722395,70,318.6385,5.114427 +0.6747357,84,329.5006,5.148071 +0.5546724,16,689.949,3.588185 +0.765431,96,635.3626,5.413237 +0.5213844,28,166.1044,4.028827 +0.9055309,60,129.6213,5.624808 +0.5553817,35,980.6865,4.262468 +0.7184163,69,195.7097,5.111313 +0.5517323,18,802.4538,3.689246 +0.8142866,16,192.9957,4.220405 +0.8211981,3,258.9440,2.515333 +0.7878401,40,134.0559,4.89549 +0.8678996,45,140.8237,5.2421 +0.8137556,53,902.648,5.115614 +0.8358842,84,525.9433,5.506658 +0.6276921,2,695.4127,1.262518 +0.5544768,23,608.4648,3.911448 +0.7520554,22,888.8863,4.285105 +0.8799472,80,81.06966,5.776644 +0.8867459,71,192.9068,5.616458 +0.7170759,68,781.6296,5.06764 +0.614698,86,809.9607,5.046108 +0.582755,27,459.0978,4.101695 +0.615332,92,544.057,5.098476 +0.6483776,30,593.08,4.312197 +0.5182611,100,523.3287,5.001569 +0.7584443,98,146.7554,5.465532 +0.5973876,44,322.7757,4.525969 +0.6765142,38,715.8464,4.554027 +0.858699,64,971.8032,5.381975 +0.8657619,41,119.6429,5.179392 +0.8041556,5,304.7493,3.062042 +0.8865578,21,170.7769,4.726991 +0.6362995,16,81.66367,3.784736 +0.8037017,23,319.2337,4.474112 +0.935349,58,92.10311,5.834605 +0.6449784,75,534.9246,5.004607 +0.933069,77,135.6208,5.9515 +0.6285273,30,718.4376,4.272305 +0.7745992,51,646.361,4.990833 +0.9437443,28,201.3896,5.2771 +0.5553825,35,84.21426,4.292884 +0.691553,44,561.0249,4.699133 +0.7143561,74,606.226,5.125183 +0.9150011,64,868.6043,5.61144 +0.8900851,64,962.8469,5.497329 +0.7627361,89,839.356,5.35164 +0.5916001,19,553.8613,3.815483 +0.9347603,73,40.74093,6.246896 +0.611588,53,781.641,4.686268 +0.8381018,12,577.5503,4.031852 +0.7502626,8,508.3221,3.376268 +0.9077881,81,485.243,5.747453 +0.6604791,57,138.3778,4.864026 +0.5258188,88,750.15,4.919488 +0.7342328,75,540.5984,5.177501 +0.8287273,9,225.8167,3.751461 +0.9260355,9,459.3007,4.212197 +0.6270818,49,708.4415,4.655174 +0.5232657,73,949.5204,4.777819 +0.7676596,92,877.2513,5.384683 +0.8505276,37,776.581,4.970133 +0.9067703,50,944.0097,5.403308 +0.6516737,4,969.1537,2.340581 +0.5532437,8,799.1578,2.9033 +0.6457954,35,483.9951,4.432293 +0.6798643,19,401.1541,4.00008 +0.8913252,67,246.9467,5.579023 +0.8724801,71,237.0759,5.545666 +0.611114,8,908.8348,3.028642 +0.6440464,100,711.3521,5.203401 +0.5185833,39,497.3006,4.288981 +0.5987208,71,553.9285,4.883768 +0.8946845,33,764.2923,5.057894 +0.7702922,34,891.2136,4.674803 +0.8601194,27,672.5945,4.770744 +0.899896,38,752.2178,5.183315 +0.705802,48,362.9667,4.800478 +0.9295424,13,589.0369,4.541681 +0.6700632,91,571.293,5.186371 +0.7856916,3,348.2827,2.375896 +0.5164215,12,683.4326,3.24084 +0.5999788,60,659.1165,4.760225 +0.7430723,82,309.4263,5.271649 +0.6201451,87,102.5936,5.110393 +0.7364097,8,993.3758,3.334495 +0.889546,33,426.7778,5.047535 +0.7509362,51,760.6958,4.93314 +0.9496297,54,579.4342,5.726496 +0.7411664,9,999.2333,3.463098 +0.7252757,38,63.7578,4.747703 +0.8886869,59,85.71176,5.588225 +0.6316102,77,617.5745,4.99833 +0.6470583,23,802.9517,4.088519 +0.7556348,18,182.8062,4.150528 +0.6398546,83,429.5057,5.070863 +0.8742836,47,71.49425,5.384054 +0.9243806,69,251.6256,5.760898 +0.8849305,76,462.3092,5.609127 +0.6190392,89,919.5525,5.076913 +0.7086243,74,75.11446,5.201722 +0.611401,100,285.8263,5.160096 +0.5438444,40,553.223,4.352044 +0.6381758,74,417.0031,4.985918 +0.5709375,60,606.9691,4.711341 +0.6656767,8,591.2158,3.155852 +0.6668269,77,838.8434,5.058611 +0.6259845,41,256.3687,4.527205 +0.6382646,92,531.2887,5.138163 +0.5790715,42,133.6754,4.471822 +0.5505636,44,53.26842,4.487644 +0.7873557,18,109.4958,4.261192 +0.9278928,34,803.4808,5.25132 +0.6506427,40,322.5025,4.55164 +0.636289,14,439.4037,3.632874 +0.5138037,17,541.6375,3.566823 +0.7490946,24,208.8606,4.370446 +0.5264396,24,176.6778,3.905171 +0.5862563,42,460.3187,4.46604 +0.8596417,57,917.1627,5.306278 +0.5490575,43,659.7477,4.417489 +0.8022336,2,611.0282,1.823408 +0.62453,71,712.8487,4.926108 +0.9447033,25,993.19,5.144499 +0.6984111,12,901.4631,3.626986 +0.8310141,56,298.2470,5.229228 +0.7551605,74,724.2943,5.209182 +0.9028476,48,179.1977,5.421774 +0.5226023,80,250.3484,4.853282 +0.6273796,15,284.8897,3.680715 +0.5101388,9,799.4037,2.937410 +0.8970192,84,201.2089,5.771734 +0.7243075,13,98.06574,3.799825 +0.6452252,9,875.8479,3.225854 +0.6703307,76,359.7317,5.066694 +0.7062982,29,334.3508,4.412282 +0.9362348,36,821.206,5.344544 +0.7755292,52,741.3775,5.005386 +0.7115857,52,936.8725,4.860348 +0.6793413,30,229.3854,4.388151 +0.6130655,31,660.8805,4.270066 +0.7027686,53,625.6065,4.860058 +0.6274324,12,824.7647,3.466937 +0.7963726,5,994.202,3.027711 +0.8681058,60,90.89657,5.501354 +0.6015066,36,175.3427,4.384748 +0.6447442,38,735.3686,4.491722 +0.6795336,70,721.4585,5.015486 +0.7723539,75,896.9785,5.254934 +0.9078405,81,367.5354,5.759166 +0.6164017,8,73.57849,3.064286 +0.8370671,27,296.2669,4.70746 +0.797849,35,873.8625,4.76869 +0.7180328,33,339.4326,4.540756 +0.6986307,40,390.1059,4.645778 +0.8793415,2,188.5154,2.204849 +0.7290775,37,189.5800,4.669984 +0.888677,11,590.1095,4.166872 +0.7031697,39,530.7594,4.631734 +0.6527077,20,552.1618,3.98336 +0.6907402,65,105.7456,5.039006 +0.8501955,84,714.7776,5.543259 +0.6880136,85,948.7286,5.166637 +0.9312943,36,281.7262,5.347377 +0.7972013,66,878.5866,5.226604 +0.8539718,31,911.604,4.849066 +0.705903,64,72.05808,5.091427 +0.6510286,57,730.2199,4.812274 +0.5237086,8,359.0167,2.843074 +0.8376964,23,287.2865,4.58462 +0.9112111,65,439.1747,5.621653 +0.7693145,21,654.116,4.293623 +0.7690674,6,60.02425,3.182115 +0.8479559,89,46.64795,5.840863 +0.7676322,73,254.1046,5.252961 +0.8763505,43,33.84927,5.508428 +0.6333285,91,779.6607,5.118105 +0.5761417,16,363.9524,3.632995 +0.5943329,67,953.5303,4.830177 +0.886703,87,255.9935,5.733959 +0.7707937,56,995.4612,5.044243 +0.8661679,83,71.95059,5.766113 +0.6604832,48,823.6246,4.70053 +0.6021952,66,988.3845,4.832242 +0.8521975,100,10.07298,6.88639 +0.9453367,53,680.6012,5.676072 +0.8578552,45,555.8434,5.142528 +0.7095984,97,328.0429,5.316697 +0.7875645,82,318.109,5.374691 +0.7601498,37,449.384,4.7226 +0.8680032,78,332.5949,5.575869 +0.8951179,40,810.7306,5.196888 +0.7677873,36,646.9899,4.715364 +0.6233557,40,133.7175,4.51815 +0.6236224,31,282.5713,4.298041 +0.7886229,45,889.8385,4.930839 +0.9113417,13,704.8534,4.424861 +0.8048366,83,912.4802,5.403325 +0.8876121,73,97.97675,5.714737 +0.6566803,93,847.2992,5.173379 +0.7361686,23,484.196,4.288003 +0.6405429,27,119.6107,4.237244 +0.8265951,70,771.4504,5.348116 +0.9063825,83,216.2709,5.801286 +0.7329975,51,823.1752,4.892481 +0.707735,32,819.8191,4.483689 +0.8063754,92,985.24,5.475727 +0.5671987,36,8.130045,4.622987 +0.5949391,74,888.767,4.904264 +0.8925676,86,470.7429,5.72116 +0.9111893,86,206.8652,5.852285 +0.868771,39,701.3807,5.074553 +0.6581741,57,851.498,4.824371 +0.7124499,5,309.5104,2.773728 +0.6160275,3,927.5913,1.867738 +0.9077186,87,515.2092,5.791704 +0.6809903,100,251.1352,5.289401 +0.8249242,51,644.1882,5.124642 +0.5007189,63,489.9313,4.634174 +0.5823059,34,995.1942,4.286632 +0.8764704,96,332.826,5.745166 +0.9279742,62,399.9774,5.684188 +0.6058798,51,161.1977,4.668592 +0.6692909,73,918.8406,5.024354 +0.8575137,59,187.4093,5.376903 +0.7945395,21,115.6826,4.410157 +0.5041056,70,246.2471,4.72404 +0.6811694,74,584.603,5.06067 +0.5047193,32,918.3743,4.101420 +0.62641,45,241.3786,4.601556 +0.9231728,95,684.2123,5.916083 +0.8906883,62,79.7124,5.646251 +0.6451526,81,823.5166,5.055857 +0.5843882,2,572.7973,1.152088 +0.9415851,71,805.8501,5.836022 +0.5650946,58,264.105,4.683902 +0.6622129,74,503.0527,5.02709 +0.5227259,6,595.5645,2.522141 +0.7577065,89,300.0612,5.362241 +0.6885727,58,634.3311,4.897823 +0.6582183,24,597.0416,4.148695 +0.7621428,54,4.677027,6.505218 +0.6300545,61,732.2958,4.824428 +0.717593,81,639.7483,5.194602 +0.8089698,37,624.8774,4.84518 +0.8819809,71,110.4756,5.653277 +0.6684123,12,487.6716,3.55997 +0.731306,31,689.6599,4.512494 +0.7449809,77,364.2442,5.22728 +0.8060204,30,394.1408,4.685581 +0.7902367,72,962.9857,5.268578 +0.6622077,91,992.0186,5.166785 +0.9423636,49,688.1545,5.601706 +0.6138338,28,490.9497,4.190094 +0.6153132,49,371.723,4.639831 +0.5919034,26,88.76052,4.115030 +0.6712624,15,954.8967,3.767796 +0.7370935,16,271.2719,3.991453 +0.8260105,53,607.0709,5.156222 +0.7039847,34,370.7429,4.531785 +0.6835765,63,263.0202,4.963496 +0.6792575,13,78.47224,3.694629 +0.6581926,70,940.6411,4.97371 +0.6659625,74,701.9212,5.030244 +0.943103,48,552.5686,5.599539 +0.8172628,97,241.8532,5.579464 +0.6088576,48,431.5509,4.610688 +0.9066039,89,915.7831,5.786188 +0.8887035,57,401.5979,5.434053 +0.6746067,59,188.1885,4.906911 +0.6599387,2,803.0654,1.350025 +0.9274535,2,764.3575,2.542979 +0.5526748,73,4.931036,5.369283 +0.685566,91,873.84,5.210347 +0.9252521,76,580.645,5.788709 +0.624663,50,56.6223,4.739905 +0.8917172,14,592.4602,4.385331 +0.8361517,93,147.1155,5.641347 +0.855131,5,697.6645,3.25786 +0.616702,63,697.7248,4.82506 +0.7131682,24,436.9471,4.270307 +0.5582717,56,141.712,4.656545 +0.8133165,99,914.7708,5.543544 +0.7850109,35,122.0806,4.790481 +0.6573884,93,362.8063,5.185657 +0.6709559,81,324.0598,5.115466 +0.675296,3,276.5954,2.028428 +0.744242,41,77.85827,4.838235 +0.8627685,88,504.0866,5.623501 +0.823486,31,633.4859,4.754332 +0.9152854,22,663.1988,4.862911 +0.889191,25,632.754,4.830601 +0.5320597,23,522.3386,3.870895 +0.8348069,4,353.5423,2.926616 +0.5506804,92,605.5381,4.991792 +0.7402406,91,248.1225,5.345439 +0.6606832,91,199.1307,5.191928 +0.6876065,25,697.7802,4.243088 +0.8396906,17,69.82845,4.424644 +0.8303857,99,915.3883,5.589564 +0.670205,52,201.1685,4.801504 +0.5688656,16,839.9051,3.615185 +0.6059302,57,884.9344,4.730385 +0.625943,13,421.1995,3.542213 +0.579431,11,698.7441,3.282398 +0.5107836,30,521.7842,4.059707 +0.7034076,59,806.1451,4.937422 +0.5348029,85,608.8314,4.909535 +0.8178558,52,767.8403,5.115544 +0.8021263,97,609.5435,5.508143 +0.6139589,32,718.7935,4.297009 +0.6199155,18,820.2245,3.822254 +0.8459365,22,737.9467,4.560176 +0.7804563,6,534.7507,3.173321 +0.5024161,35,483.8863,4.173427 +0.8757202,43,105.3846,5.269118 +0.5523042,3,511.2241,1.711368 +0.710674,44,138.0479,4.774404 +0.8872324,57,781.0616,5.410725 +0.6919563,13,743.3296,3.686274 +0.5287773,88,847.8963,4.923581 +0.6964034,68,916.3211,5.024973 +0.6097059,34,425.8519,4.341618 +0.6914693,5,342.4144,2.715573 +0.6908814,75,600.6959,5.088477 +0.7843654,22,908.377,4.369244 +0.6641371,52,390.4209,4.775486 +0.7738185,93,701.611,5.409122 +0.8668095,75,18.17850,6.218107 +0.8612623,84,728.9866,5.578543 +0.7244234,31,540.4559,4.499312 +0.8197609,4,359.5769,2.865559 +0.7343252,8,199.2936,3.341473 +0.6836545,55,307.1725,4.859945 +0.8095471,62,373.0194,5.23192 +0.7809187,81,376.8042,5.344588 +0.7497668,97,103.3747,5.465082 +0.9281159,54,946.8552,5.567694 +0.7009217,95,200.3139,5.300944 +0.5690716,17,188.3412,3.680089 +0.7616844,55,650.7446,5.014634 +0.7634251,52,850.2973,4.974944 +0.6935619,21,385.6687,4.116289 +0.570187,27,798.2554,4.075779 +0.8573198,35,201.5977,4.991557 +0.9254133,3,227.7771,3.100818 +0.6926173,80,169.8465,5.169298 +0.7957502,80,579.6955,5.362447 +0.8909846,60,580.5683,5.467522 +0.6101913,7,739.8612,2.885962 +0.9292679,60,774.9304,5.648684 +0.6020853,83,329.8084,5.008931 +0.8730834,90,975.1034,5.659242 +0.615229,29,780.1903,4.218847 +0.6368305,62,272.5524,4.861233 +0.785301,88,625.0687,5.400485 +0.7612865,62,271.0423,5.119176 +0.6491867,8,449.3793,3.117950 +0.7028936,21,964.8851,4.130015 +0.7351485,36,435.3573,4.643088 +0.5901236,54,682.5866,4.66379 +0.8711818,7,971.5228,3.668632 +0.7885463,27,710.0058,4.545948 +0.8615259,27,922.5975,4.772005 +0.9423586,100,857.2488,6.056786 +0.5641551,45,95.40686,4.508179 +0.5478364,32,717.8125,4.177136 +0.9463165,16,838.3264,4.827952 +0.6402324,83,670.1578,5.066309 +0.8372235,89,450.2324,5.553761 +0.9247225,92,559.3225,5.910356 +0.8252188,14,982.6037,4.116096 +0.7574355,58,76.46756,5.140588 +0.641243,6,230.5134,2.795860 +0.5718324,66,218.8287,4.79571 +0.8140738,93,464.7936,5.51726 +0.9040285,7,963.9252,3.83736 +0.9163233,29,109.8488,5.171177 +0.8748685,10,834.4159,4.015456 +0.879919,59,813.5775,5.404823 +0.7757908,51,24.82199,5.310636 +0.7253728,87,268.653,5.279343 +0.7804497,47,914.5564,4.941718 +0.8855489,99,398.2152,5.791743 +0.6244977,39,690.1232,4.47439 +0.7809398,7,858.4253,3.331407 +0.9274042,80,869.2504,5.823213 +0.6230907,68,340.9755,4.900364 +0.7848126,79,316.7394,5.342187 +0.8068917,87,468.6103,5.45299 +0.8530915,95,969.5945,5.628566 +0.7027934,73,539.2994,5.093997 +0.8731742,84,621.7372,5.623118 +0.7634371,11,181.9686,3.733192 +0.6286905,42,288.0719,4.549231 +0.8355486,81,770.2646,5.473221 +0.7263397,96,641.287,5.329899 +0.7291552,22,869.557,4.22971 +0.7014426,13,170.1686,3.725237 +0.568906,9,932.683,3.058732 +0.6805077,21,636.6685,4.083097 +0.8519636,19,719.8393,4.465273 +0.5840272,10,293.2955,3.201459 +0.9297056,42,307.3728,5.441351 +0.8996739,11,116.8909,4.276207 +0.7365314,67,154.0723,5.141475 +0.763537,20,855.483,4.236114 +0.9162934,13,583.4637,4.456551 +0.7383305,87,578.0058,5.288548 +0.6220495,76,653.0012,4.971777 +0.6959088,17,204.1746,3.949512 +0.9408439,64,526.8199,5.776257 +0.9072844,39,816.4094,5.235457 +0.614806,36,866.7964,4.392034 +0.8616143,15,538.4074,4.31235 +0.5916647,82,276.8439,4.985187 +0.6381437,56,308.9643,4.785542 +0.6102399,84,288.0863,5.033928 +0.881096,65,423.3302,5.491607 +0.8805683,77,63.34668,5.801957 +0.8317284,24,465.7188,4.587363 +0.938735,16,346.6328,4.786943 +0.7878217,76,601.5734,5.306758 +0.8145564,100,76.89838,5.701038 +0.8641405,21,465.8502,4.597313 +0.9193547,50,890.4468,5.467787 +0.7352061,62,621.5478,5.042233 +0.875424,97,663.1315,5.724161 +0.5947927,15,437.6885,3.610047 +0.9293856,42,154.1849,5.489918 +0.8981893,100,195.0101,5.895842 +0.7722383,39,397.162,4.794676 +0.9468243,2,427.845,2.741961 +0.7672563,5,64.92349,2.969334 +0.753621,75,98.68655,5.295252 +0.7196577,37,662.6364,4.62432 +0.6445426,69,400.8762,4.947273 +0.621717,58,797.6387,4.77164 +0.754107,15,637.9203,3.969023 +0.7000804,99,874.8527,5.295806 +0.6727205,31,348.9427,4.393295 +0.7419021,51,307.5882,4.928106 +0.9111804,26,953.7102,4.960184 +0.6518057,68,78.44112,5.009199 +0.7369495,90,950.977,5.302565 +0.5943179,38,567.3262,4.399971 +0.9148237,17,146.5165,4.716318 +0.5039681,13,962.0642,3.293958 +0.8940384,66,260.9585,5.577167 +0.6596946,18,58.33929,3.961345 +0.7745604,80,873.7772,5.304947 +0.5579154,44,577.4417,4.451439 +0.6792655,79,305.888,5.114813 +0.7721706,74,725.1806,5.247874 +0.8730904,27,452.3935,4.827657 +0.8668253,43,479.2732,5.145368 +0.9243933,68,715.7662,5.70527 +0.8697712,45,759.5009,5.179335 +0.5704939,24,771.9525,3.976776 +0.849549,21,171.7464,4.57335 +0.7153914,68,756.1855,5.064555 +0.7469934,89,37.00684,5.545569 +0.8980766,93,735.0168,5.782137 +0.6740698,15,908.684,3.774217 +0.7262363,18,196.8211,4.073023 +0.7726955,93,825.9488,5.404193 +0.7877387,57,83.19955,5.202352 +0.5402169,35,836.5996,4.236559 +0.647406,92,696.285,5.15123 +0.6369996,43,600.33,4.574637 +0.5011999,34,536.5494,4.147083 +0.5253697,34,959.3483,4.186866 +0.6654399,10,953.6924,3.376122 +0.5754832,59,82.33117,4.746022 +0.6149122,12,758.6291,3.44049 +0.7273927,5,827.2032,2.811743 +0.765783,4,480.0208,2.671068 +0.8026067,20,628.1018,4.346873 +0.6688459,16,552.1669,3.822802 +0.654652,65,429.9494,4.921309 +0.5930605,54,299.062,4.676825 +0.91803,98,475.8612,5.921616 +0.8586014,94,822.9594,5.641858 +0.8724855,40,320.3798,5.126823 +0.9115961,67,663.3112,5.630971 +0.6378116,67,41.66062,5.02444 +0.783027,17,444.7541,4.159232 +0.8044376,26,517.2797,4.564801 +0.884418,84,946.382,5.656019 +0.9450776,82,74.40857,6.2069 +0.922469,81,659.5106,5.811031 +0.7723949,73,576.8139,5.242505 +0.914753,7,951.6982,3.902467 +0.808698,53,628.3094,5.106761 +0.785287,4,458.7135,2.737001 +0.6806215,13,703.8973,3.660244 +0.8762955,72,590.0658,5.53288 +0.8162853,79,92.18472,5.514161 +0.5399384,14,760.7746,3.434936 +0.724187,81,366.0025,5.218172 +0.5878947,23,272.8676,3.979876 +0.6592433,83,684.7305,5.099926 +0.886695,15,846.1366,4.414048 +0.7518114,65,513.9724,5.11545 +0.9269379,97,254.9159,5.999051 +0.7133172,82,926.9479,5.190505 +0.7594595,8,51.29232,3.464126 +0.8804678,52,914.019,5.318195 +0.5581051,54,949.4543,4.607886 +0.7872128,50,176.9121,5.045582 +0.7148681,29,874.4857,4.420948 +0.5074475,99,315.6612,4.981299 +0.6011498,70,222.744,4.89042 +0.8461398,49,937.784,5.155603 +0.9156136,74,311.1483,5.746345 +0.8033553,5,645.5019,3.053856 +0.6536788,98,629.0644,5.207469 +0.6301262,28,942.7225,4.217727 +0.871035,28,588.5174,4.841785 +0.9431953,11,805.0258,4.504676 +0.7250134,37,667.4511,4.636032 +0.8318205,86,759.111,5.502966 +0.7024738,45,490.5817,4.740243 +0.8091045,40,202.2661,4.934256 +0.6403498,12,429.5813,3.497927 +0.9449746,23,50.44319,5.349677 +0.851621,98,259.8235,5.685683 +0.9016514,15,42.46861,4.69127 +0.5920015,28,439.8243,4.149594 +0.6072063,3,576.5894,1.845912 +0.9052984,24,276.0850,4.899321 +0.6634726,92,703.5221,5.179664 +0.7561353,16,380.4236,4.035749 +0.8122183,94,804.0761,5.508063 +0.8418656,60,978.833,5.283574 +0.6981374,5,387.5784,2.732931 +0.5241897,21,733.9929,3.775666 +0.6772153,90,38.5611,5.353059 +0.6846175,9,523.6271,3.320686 +0.8614306,19,100.2818,4.57258 +0.9212194,65,524.0826,5.667082 +0.736799,48,376.7794,4.867054 +0.775878,51,470.2745,4.999156 +0.94356,27,448.0736,5.20886 +0.5971862,18,325.373,3.781982 +0.8788234,2,197.9009,2.201285 +0.7207136,56,182.7896,4.966495 +0.8813179,57,305.8846,5.41493 +0.6516088,44,977.5808,4.616521 +0.9432949,83,632.2853,5.954806 +0.8991265,89,533.6602,5.76696 +0.8716255,37,648.0715,5.048531 +0.5811219,78,61.75932,4.982568 +0.8066535,63,375.9281,5.235102 +0.6826185,95,692.657,5.2371 +0.9434476,75,200.0213,5.960525 +0.9371716,19,309.1242,4.912451 +0.6332529,77,912.1464,4.998099 +0.8121484,83,763.5391,5.42491 +0.8215588,72,196.3495,5.398243 +0.8692113,67,150.1000,5.527059 +0.9309966,66,598.433,5.728737 +0.8617159,3,323.4457,2.697052 +0.9094263,53,69.54,5.657197 +0.627946,100,53.37154,5.273825 +0.5469653,9,801.0173,3.013104 +0.9056166,76,348.6382,5.709042 +0.9144018,46,166.2865,5.457833 +0.7024664,26,991.9227,4.305153 +0.5906725,59,693.7827,4.731336 +0.9257523,32,898.1296,5.193483 +0.65419,10,994.8087,3.350149 +0.573937,57,11.15804,4.950549 +0.8722816,12,834.003,4.163117 +0.6104388,69,857.7779,4.879681 +0.7395572,22,625.7083,4.257045 +0.9465412,34,400.3912,5.400517 +0.889617,20,67.53875,4.789287 +0.6603941,62,557.3134,4.894162 +0.6572997,72,275.2044,5.008766 +0.6317894,61,893.6425,4.82618 +0.8166771,23,925.1903,4.497861 +0.7286248,2,555.7641,1.557043 +0.5152166,94,960.7927,4.949714 +0.9101605,61,986.4156,5.553379 +0.6866718,89,327.3256,5.211781 +0.8399551,77,168.6181,5.511889 +0.6353491,11,670.0163,3.401654 +0.853916,50,636.4847,5.201295 +0.8817695,88,767.3826,5.680463 +0.7185712,51,241.4021,4.882724 +0.770894,12,679.0355,3.816384 +0.9098048,72,985.2333,5.661611 +0.7218967,37,816.4549,4.627383 +0.7243346,61,997.2886,5.002563 +0.6719135,71,854.4393,5.009869 +0.8973335,85,484.1437,5.732463 +0.7554376,48,525.1413,4.903844 +0.9430205,70,144.7852,5.949187 +0.5493725,55,24.62404,4.720334 +0.5971568,6,909.9559,2.686758 +0.5690979,11,348.2237,3.263709 +0.7511994,95,182.5334,5.413766 +0.7210895,57,765.5559,4.949078 +0.8161127,3,732.3479,2.489221 +0.8336693,15,791.3677,4.204955 +0.8948794,18,254.5316,4.625170 +0.6632123,98,92.93594,5.287683 +0.8910968,56,3.694522,9.14612 +0.6376692,36,989.8612,4.434143 +0.80947,80,114.0895,5.478967 +0.82957,24,224.7908,4.599062 +0.8977277,50,151.2525,5.440728 +0.8022287,100,632.9642,5.528033 +0.7857295,10,423.1267,3.696796 +0.7545248,86,527.6158,5.317099 +0.6009039,81,487.6485,4.984334 +0.6896002,59,438.7283,4.917154 +0.6974143,13,814.5804,3.698697 +0.7301658,70,278.3712,5.134808 +0.6591984,4,657.8318,2.360831 +0.7862776,80,954.3117,5.331615 +0.8580173,76,922.4202,5.496869 +0.7225116,83,660.0493,5.22118 +0.6513679,23,295.4721,4.105703 +0.8454044,52,928.4528,5.195344 +0.7959045,85,906.7124,5.397084 +0.731706,80,590.0431,5.216045 +0.7256962,76,36.67469,5.365805 +0.6209987,91,219.8982,5.116044 +0.7788926,92,471.59,5.421277 +0.9395612,67,773.8309,5.785787 +0.5712265,40,617.832,4.399043 +0.8177507,36,918.277,4.845297 +0.5308056,7,784.1608,2.711805 +0.9239735,91,592.1715,5.897353 +0.6734823,5,703.1057,2.665332 +0.552545,50,9.700298,4.805741 +0.8571885,61,401.3484,5.362952 +0.8276853,100,722.3954,5.592684 +0.78248,79,226.7434,5.349608 +0.7540784,70,289.0356,5.186986 +0.679809,84,328.1678,5.157819 +0.5346721,5,321.7632,2.336343 +0.5046181,10,800.9464,3.034873 +0.6086207,41,363.4659,4.489845 +0.9056507,51,45.66387,5.714624 +0.757739,92,34.72594,5.618443 +0.7988586,13,563.46,3.971763 +0.6246819,98,911.8113,5.154245 +0.9473038,50,313.7374,5.683982 +0.8610659,43,569.1981,5.120719 +0.9211183,50,72.18092,5.677973 +0.6910641,44,79.55915,4.761997 +0.8947933,94,199.2544,5.837905 +0.6185201,93,777.6178,5.108263 +0.943615,39,746.2719,5.454103 +0.7002987,96,988.1737,5.273948 +0.7553033,39,915.4639,4.742379 +0.7679916,50,737.3042,4.958796 +0.6890029,94,907.0683,5.238912 +0.6199692,74,986.7426,4.946051 +0.6411281,94,818.5881,5.153933 +0.8464514,65,70.51132,5.514609 +0.6060643,92,352.4973,5.088319 +0.5031575,80,710.7902,4.814834 +0.5938577,14,609.6362,3.542741 +0.5328757,73,26.24858,4.894656 +0.865526,20,873.1708,4.555331 +0.7964953,62,272.376,5.207187 +0.7383672,76,876.4028,5.189204 +0.7729914,15,22.17502,4.243482 +0.9011562,48,287.6424,5.383655 +0.8172952,52,437.9903,5.124289 +0.5405907,22,802.478,3.846356 +0.6312621,7,216.3909,2.94054 +0.8226957,52,804.0583,5.128694 +0.885333,73,13.19686,6.600686 +0.7457342,60,609.2144,5.041968 +0.6578178,44,288.0032,4.641378 +0.83535,98,131.3518,5.685504 +0.8930805,88,976.9815,5.719899 +0.9396818,36,611.7228,5.374934 +0.777755,41,954.446,4.833966 +0.7981147,97,369.9938,5.510893 +0.944999,93,954.528,6.027065 +0.6157446,41,907.7825,4.495908 +0.7380916,76,861.9726,5.188795 +0.839211,68,23.80187,5.830786 +0.8532856,89,262.6102,5.625921 +0.6775974,17,292.3724,3.901788 +0.5828361,39,703.1539,4.39878 +0.8850796,24,198.9660,4.816882 +0.5914885,3,181.9281,1.809612 +0.5142923,5,830.6914,2.289293 +0.6603836,44,766.019,4.634749 +0.7912155,30,894.1168,4.632969 +0.7526184,71,153.6191,5.221186 +0.9332683,65,964.548,5.720877 +0.8309404,85,873.4239,5.490343 +0.625892,74,27.07511,5.129885 +0.5828644,56,693.3597,4.678749 +0.5136066,79,925.8308,4.820971 +0.8330586,80,19.34037,6.035081 +0.7008366,51,404.9684,4.833525 +0.8843272,91,152.3932,5.796872 +0.9225516,25,667.9643,5.000335 +0.8791967,66,828.0534,5.477954 +0.5186196,24,709.4802,3.882467 +0.751543,9,311.5484,3.49974 +0.7436109,27,477.438,4.435924 +0.6807055,87,495.5713,5.176597 +0.7510662,82,965.3252,5.268203 +0.7277244,57,502.561,4.968428 +0.9410907,91,166.2730,6.091714 +0.6792364,33,490.5878,4.452396 +0.7848101,10,12.64165,4.03457 +0.942731,30,198.6954,5.320442 +0.7519409,59,846.5128,5.039781 +0.5020636,78,693.9159,4.794566 +0.7176895,90,868.5585,5.264436 +0.5767474,15,14.59399,3.713746 +0.5775503,39,391.2338,4.393338 +0.6690003,27,870.2484,4.265722 +0.7235208,94,69.99504,5.418828 +0.8928368,32,934.5482,5.024385 +0.6799028,62,244.2493,4.946376 +0.5802962,44,262.7254,4.497853 +0.5605126,43,595.6193,4.437684 +0.9367013,51,894.6887,5.583736 +0.5337638,21,15.99230,3.907597 +0.5574367,40,687.904,4.374468 +0.8259194,30,937.608,4.73232 +0.8714596,38,471.542,5.07393 +0.6665597,49,399.8029,4.735126 +0.8192291,35,93.40303,4.915221 +0.8688831,56,259.5373,5.362454 +0.6838603,98,570.7892,5.263374 +0.6465024,93,946.6553,5.154663 +0.8457297,5,633.2096,3.217746 +0.6922344,70,457.7957,5.045673 +0.7149555,84,650.9649,5.214478 +0.6031059,75,638.7035,4.929953 +0.7407085,80,553.5425,5.236097 +0.5007247,9,785.852,2.918291 +0.5881926,2,575.2952,1.161514 +0.6842944,85,56.74425,5.275968 +0.6365547,8,593.1905,3.087423 +0.5593403,10,597.9742,3.146675 +0.6665544,2,261.012,1.370363 +0.5226974,14,860.4175,3.401291 +0.9373338,70,166.3507,5.890187 +0.5455807,16,558.8445,3.571325 +0.6551681,51,253.6940,4.751319 +0.5161405,19,33.30902,3.718792 +0.9238053,84,580.7067,5.845623 +0.86948,94,90.00178,5.827859 +0.6780455,11,784.5237,3.497723 +0.9178672,99,456.9874,5.928964 +0.767568,71,23.22718,5.569045 +0.7954395,72,365.8755,5.299927 +0.8839859,79,733.2088,5.618772 +0.7608575,89,448.5921,5.358179 +0.8567473,65,858.2716,5.387898 +0.8996104,56,643.5015,5.455172 +0.7666284,12,47.31088,3.893322 +0.6470064,93,699.9194,5.158058 +0.5875236,53,926.724,4.643525 +0.8953835,74,992.946,5.615506 +0.9201886,9,970.5459,4.163660 +0.601927,10,259.6253,3.240734 +0.647429,76,942.9703,5.013432 +0.8213445,33,641.5921,4.794998 +0.5490222,33,105.5942,4.225879 +0.5776677,67,403.6322,4.808392 +0.8079034,87,427.1954,5.458135 +0.6253146,65,887.0287,4.861523 +0.6817373,76,748.7887,5.078027 +0.7258991,74,732.7329,5.146395 +0.9250114,9,157.7767,4.239061 +0.8528482,35,754.1407,4.937605 +0.8636093,24,789.116,4.691449 +0.6416303,18,107.3528,3.893581 +0.938607,30,188.2054,5.293022 +0.6183642,98,784.5568,5.144735 +0.626452,49,708.409,4.654031 +0.5033137,90,364.6996,4.904766 +0.6416498,69,686.6995,4.935888 +0.9439444,30,16.76117,6.17131 +0.6769998,61,91.14787,4.971445 +0.6099088,33,292.5247,4.322005 +0.8562472,61,175.4549,5.400586 +0.6554333,26,733.8006,4.208067 +0.6010223,16,940.5603,3.678439 +0.7840678,73,110.2884,5.345153 +0.8568647,97,348.6922,5.681597 +0.8782813,11,752.7111,4.115416 +0.865477,47,912.7237,5.191814 +0.7104252,95,328.1609,5.303922 +0.6518729,99,406.2813,5.21742 +0.8136264,40,904.949,4.911606 +0.6043372,47,902.7367,4.581187 +0.8121081,67,7.538333,6.513966 +0.6552225,23,532.8514,4.107702 +0.7357522,22,482.9446,4.250429 +0.5070191,82,821.2403,4.838449 +0.5782021,65,832.5791,4.781427 +0.6097488,47,86.14851,4.635193 +0.7171686,97,668.8119,5.318037 +0.644155,46,660.5386,4.63903 +0.7727673,44,22.80839,5.203142 +0.7922387,75,505.9924,5.311956 +0.664713,98,532.7728,5.229238 +0.5679516,46,992.4062,4.500924 +0.825774,10,281.0117,3.834293 +0.6083309,41,597.429,4.484862 +0.7737187,21,467.6578,4.309089 +0.7249439,60,598.5867,4.997216 +0.9095895,37,8.365455,6.77549 +0.5130474,48,40.46562,4.494295 +0.6051408,80,447.1557,4.983537 +0.8676191,75,629.6436,5.527589 +0.9364891,57,469.2977,5.674607 +0.6506647,93,569.1126,5.166729 +0.5027852,74,545.2522,4.757751 +0.5031346,98,162.6768,4.975135 +0.767055,50,183.3676,4.991531 +0.6801705,23,719.5443,4.157980 +0.9061154,72,553.1563,5.657693 +0.8591993,97,490.7379,5.676845 +0.6889985,44,681.4208,4.692018 +0.7125659,97,200.8339,5.33931 +0.6351567,29,301.1039,4.265337 +0.6566573,52,440.792,4.759479 +0.8159221,94,986.9704,5.514844 +0.6077678,22,101.6926,3.999549 +0.7839771,64,576.8159,5.178063 +0.6734601,31,395.1654,4.393173 +0.6060289,28,3.081892,5.121582 +0.6789768,96,181.166,5.268511 +0.787318,16,775.1314,4.11447 +0.9073888,41,497.7243,5.282086 +0.7638307,87,131.2056,5.403349 +0.6463511,71,445.6236,4.969812 +0.6726806,25,761.584,4.210960 +0.7649493,53,632.2372,4.995885 +0.683377,75,176.2011,5.102595 +0.890173,53,383.1089,5.39159 +0.5778118,60,604.8159,4.722957 +0.6290806,81,835.3322,5.027719 +0.709206,75,365.1975,5.133035 +0.7821182,50,921.8328,4.990793 +0.8249756,33,449.9177,4.812041 +0.9164308,22,483.9926,4.875823 +0.5126529,7,69.3751,2.686872 +0.7279297,76,849.3809,5.167721 +0.6243633,81,425.4841,5.026262 +0.6822903,74,903.373,5.058437 +0.7674061,16,381.5476,4.066042 +0.8044243,45,994.9932,4.971361 +0.8797448,14,812.4009,4.326156 +0.5983747,64,350.2122,4.811645 +0.8931191,100,605.8303,5.813613 +0.7759804,25,990.4158,4.44877 +0.933721,48,125.8175,5.638129 +0.567207,39,158.5426,4.386867 +0.6834433,24,595.2227,4.201662 +0.5842774,83,144.4095,4.996242 +0.6096163,44,3.666158,5.442746 +0.5520212,33,788.1983,4.209405 +0.8487187,75,775.0258,5.461002 +0.6442834,59,384.4282,4.832377 +0.8525898,44,852.7334,5.101296 +0.6793526,5,544.8316,2.681385 +0.7896053,57,702.1907,5.106904 +0.6347688,37,207.1742,4.467327 +0.9105013,73,298.8515,5.713738 +0.5801921,61,194.1294,4.753626 +0.5398654,14,623.2005,3.435302 +0.5295864,36,825.9626,4.241144 +0.6955647,90,532.2933,5.227428 +0.8752002,7,34.37197,3.840195 +0.5065717,86,99.36485,4.895701 +0.6540707,91,816.5146,5.153864 +0.7494457,27,333.2309,4.455773 +0.6942405,34,378.8255,4.510573 +0.6192505,85,514.0551,5.049568 +0.76549,25,642.7535,4.425212 +0.7574782,64,469.1908,5.118944 +0.5830214,21,552.903,3.886642 +0.8790609,79,159.6307,5.674371 +0.7176675,58,884.7081,4.953248 +0.6629143,8,245.0644,3.154845 +0.8564256,41,392.7764,5.078983 +0.5191748,37,388.5444,4.248730 +0.5063773,82,608.4596,4.838639 +0.6187086,74,342.2091,4.954258 +0.9265214,49,19.84399,6.272573 +0.7227158,30,941.4727,4.464846 +0.5720824,44,88.08165,4.508306 +0.7417212,36,856.798,4.650463 +0.6945709,16,973.5857,3.877503 +0.6787784,67,199.1884,5.00703 +0.6079792,2,14.28654,1.248295 +0.8160534,87,902.7546,5.464555 +0.903873,43,596.1851,5.293944 +0.726878,20,652.6108,4.146919 +0.6090511,26,822.7786,4.116546 +0.7854577,6,632.6326,3.188597 +0.6051804,75,622.2571,4.933685 +0.7918214,37,643.5305,4.797766 +0.5232566,75,325.5463,4.80398 +0.590876,66,73.06404,4.867022 +0.5937229,27,42.58453,4.187347 +0.8824875,45,931.0037,5.224986 +0.7059692,52,659.4332,4.851961 +0.6663572,11,289.1740,3.476953 +0.6661134,75,418.1281,5.046652 +0.810046,78,319.3538,5.398473 +0.5153034,94,370.1154,4.955019 +0.6629067,75,76.91591,5.107002 +0.7524684,35,669.101,4.656308 +0.8711363,64,313.9587,5.454808 +0.6956076,29,55.13885,4.465562 +0.7708426,83,192.2650,5.363472 +0.5723024,29,745.2273,4.139486 +0.9359758,76,180.2033,5.927152 +0.937121,95,945.2132,5.988315 +0.7236621,84,584.52,5.233591 +0.5644985,54,327.6738,4.625826 +0.830407,38,621.8328,4.928221 +0.7119581,31,183.4619,4.492153 +0.77285,82,784.9956,5.319325 +0.8722319,85,500.9015,5.633511 +0.6801105,92,42.34472,5.362335 +0.7211597,80,755.886,5.191064 +0.7343016,17,662.3988,4.026676 +0.6084402,33,173.8741,4.327899 +0.6186405,40,577.6662,4.484631 +0.703274,15,875.0299,3.841051 +0.9385632,22,803.663,5.007829 +0.5536499,6,140.929,2.596166 +0.5189601,36,365.0004,4.226444 +0.7964722,33,112.4292,4.783128 +0.8923196,89,282.4267,5.766261 +0.8477578,57,813.3298,5.268937 +0.7376255,52,39.59667,5.092456 +0.586504,72,325.709,4.879086 +0.9245973,96,220.5104,5.990943 +0.5904537,70,650.9535,4.858109 +0.6962348,91,53.84608,5.360867 +0.6472336,86,286.8350,5.116716 +0.5478403,45,891.3937,4.449943 +0.5916281,49,112.7873,4.621543 +0.9236192,10,256.5085,4.30158 +0.701771,76,931.1325,5.114423 +0.6455423,9,114.6123,3.244296 +0.629923,96,926.7514,5.148559 +0.9445545,39,672.0967,5.463624 +0.6736415,85,449.6175,5.148535 +0.6858955,81,783.2148,5.130515 +0.566487,9,551.4185,3.054829 +0.9085593,35,254.0737,5.200862 +0.6143065,90,329.5405,5.087921 +0.6999386,19,490.2705,4.043115 +0.6395809,8,600.4834,3.094362 +0.9093209,36,853.3224,5.188147 +0.894677,100,848.318,5.811673 +0.6063929,85,898.3364,5.023168 +0.6523595,50,416.7666,4.722509 +0.942245,14,171.8807,4.742298 +0.783326,95,113.6980,5.527098 +0.752282,7,408.8336,3.248984 +0.7136485,15,471.0845,3.869695 +0.6320827,32,848.5555,4.330415 +0.59958,93,236.7872,5.092203 +0.7906985,82,470.0474,5.37129 +0.7225906,97,847.8583,5.325918 +0.5733982,37,779.5725,4.339675 +0.9068659,11,322.7737,4.273226 +0.9381555,37,206.4804,5.433981 +0.534364,36,896.7656,4.249114 +0.6322029,54,652.9157,4.738431 +0.5673037,32,607.234,4.212482 +0.5158305,29,241.0641,4.044624 +0.782321,41,343.6444,4.861221 +0.8978933,55,113.9618,5.540612 +0.7566181,71,803.6087,5.182157 +0.945313,93,760.1445,6.035159 +0.7764446,66,690.4359,5.178624 +0.5382854,44,937.8568,4.415998 +0.780881,21,808.7842,4.322801 +0.7872955,43,753.639,4.895828 +0.8437686,53,714.1587,5.207365 +0.6116142,97,820.0253,5.125958 +0.531347,2,33.00914,1.036805 +0.7165558,8,633.2616,3.283039 +0.705623,19,384.8555,4.058654 +0.8560466,41,376.2472,5.078905 +0.6344361,85,632.7684,5.073645 +0.5901747,22,282.6403,3.945618 +0.56803,53,73.53232,4.653907 +0.8146113,27,671.1104,4.620696 +0.9163909,73,747.9496,5.708432 +0.6061526,14,542.7819,3.568411 +0.9093413,95,335.4416,5.875304 +0.6494762,46,759.3723,4.647989 +0.5640401,44,632.509,4.461494 +0.5354444,34,836.2228,4.204653 +0.5299268,77,846.4679,4.828092 +0.741827,22,130.2941,4.296245 +0.5115407,87,295.344,4.894967 +0.5978896,76,131.5230,4.959506 +0.8912814,18,205.5997,4.616479 +0.5576322,43,383.5691,4.435671 +0.8717212,40,583.6276,5.107255 +0.9161417,8,499.1547,4.040285 +0.6521386,11,822.9779,3.438228 +0.7737015,17,762.6271,4.127920 +0.892949,87,399.3925,5.736645 +0.5966038,55,689.611,4.688806 +0.6431161,52,447.0586,4.733828 +0.8306688,44,702.1389,5.034286 +0.6649262,57,359.9672,4.846758 +0.9363835,85,887.7069,5.914833 +0.7510024,81,339.8045,5.277932 +0.7902674,15,705.98,4.068516 +0.7636627,56,448.0598,5.038424 +0.8669564,5,680.0533,3.31205 +0.8059546,75,503.0968,5.3473 +0.6403063,92,962.566,5.136234 +0.504068,3,617.9877,1.598052 +0.9186635,36,724.4784,5.240142 +0.5795384,56,545.9165,4.67465 +0.8195587,78,414.402,5.416073 +0.7491724,3,281.5133,2.251189 +0.7093393,13,665.9633,3.728246 +0.9406897,81,43.65671,6.348394 +0.8862442,15,820.4643,4.412285 +0.9183536,71,279.5010,5.739535 +0.7329661,45,293.7233,4.8157 +0.9149706,82,822.9326,5.774923 +0.6399313,75,173.1958,5.018545 +0.631958,78,704.475,5.007022 +0.9347626,82,427.1829,5.906078 +0.9193079,36,111.4287,5.350532 +0.7909542,49,249.1747,5.025715 +0.7143558,60,471.2938,4.978527 +0.929284,32,846.1144,5.216052 +0.8400567,98,342.8071,5.636219 +0.5706936,59,468.7645,4.700182 +0.6783719,48,140.5919,4.769985 +0.7694423,73,842.9439,5.230134 +0.5215988,17,298.5005,3.584042 +0.7042262,23,46.45078,4.306447 +0.6135268,61,104.5767,4.834267 +0.852132,17,683.1779,4.376271 +0.6286326,72,801.0265,4.94254 +0.9114498,70,413.9069,5.674662 +0.505581,30,934.0287,4.048985 +0.619673,54,249.2989,4.727874 +0.9039804,73,662.0442,5.652103 +0.9322274,75,826.7649,5.810783 +0.591522,17,550.8919,3.716205 +0.5615105,9,563.2861,3.044287 +0.8861427,77,612.0575,5.614371 +0.9227275,36,804.7779,5.261032 +0.5201386,6,563.5901,2.516629 +0.5150667,4,153.7693,2.017103 +0.858887,88,335.1279,5.625131 +0.865161,91,507.115,5.653645 +0.866841,28,569.142,4.826175 +0.5914268,73,731.0933,4.889649 +0.7301672,3,171.8421,2.193633 +0.8695504,46,972.9767,5.190517 +0.8743281,94,423.1992,5.713268 +0.7259997,71,57.63515,5.243207 +0.8552598,42,51.79937,5.275407 +0.7262848,91,622.4001,5.293459 +0.5421301,43,124.8007,4.423924 +0.764653,64,923.3807,5.125733 +0.8748403,73,247.373,5.571079 +0.7803132,31,380.4862,4.640732 +0.6482601,87,772.2889,5.112482 +0.7241264,43,272.1837,4.76339 +0.7953848,44,365.2316,4.946676 +0.6285879,91,448.7414,5.11578 +0.6652861,50,710.149,4.741542 +0.6856344,64,916.419,4.960469 +0.7254825,75,709.546,5.155371 +0.6569148,90,891.1667,5.150444 +0.9032712,56,578.0589,5.474436 +0.8196123,55,916.5202,5.158029 +0.8457452,68,948.5464,5.382074 +0.7056631,3,931.2039,2.112567 +0.8282234,89,748.6638,5.515993 +0.87756,69,756.8942,5.503454 +0.5580487,53,79.27887,4.631497 +0.8726777,84,865.3341,5.614437 +0.6403862,31,668.2423,4.322197 +0.8492341,73,141.7500,5.519904 +0.5361932,8,651.2265,2.867713 +0.7613272,82,428.129,5.303809 +0.8569944,82,709.8302,5.548995 +0.8017937,16,509.0666,4.161160 +0.6910281,42,458.1705,4.665068 +0.9100806,53,834.6907,5.461124 +0.8269713,11,110.7436,3.955719 +0.7171317,89,540.2364,5.261772 +0.851661,82,487.6866,5.540841 +0.7891677,30,331.5015,4.642001 +0.734028,16,122.0367,4.004476 +0.5187802,87,429.9464,4.903341 +0.5150383,16,718.979,3.512412 +0.785768,69,194.4107,5.270155 +0.8033854,47,199.0244,5.038606 +0.830575,35,729.6996,4.865471 +0.8736411,70,28.33166,5.956989 +0.8876228,62,56.37586,5.704145 +0.7772246,81,880.699,5.319602 +0.8581031,86,744.6876,5.583367 +0.7385866,56,814.1746,4.972997 +0.7709235,35,958.7655,4.697881 +0.7025145,38,608.5902,4.608887 +0.6822772,59,741.9122,4.896537 +0.7546338,39,377.0911,4.752481 +0.7098272,6,688.9395,2.965107 +0.8007708,68,664.4748,5.260526 +0.5081478,97,957.1152,4.961489 +0.8871281,80,610.9077,5.64364 +0.83781,29,404.5329,4.756917 +0.8565457,33,929.6463,4.904385 +0.7858467,76,614.8492,5.301542 +0.7393295,48,304.2518,4.877567 +0.6288801,56,575.7861,4.760722 +0.5747567,36,525.0601,4.322172 +0.7241387,4,744.9875,2.540414 +0.5838607,84,98.96394,5.017925 +0.9088057,30,939.4672,5.053044 +0.8893571,65,764.4263,5.508868 +0.7718164,92,629.6235,5.398965 +0.7592003,69,639.9231,5.170893 +0.5349374,43,16.79663,4.529065 +0.8402495,32,594.5056,4.832209 +0.5243549,21,561.1883,3.776770 +0.7070809,73,203.5126,5.126286 +0.7444766,45,996.601,4.823829 +0.9452716,51,968.5641,5.64201 +0.8834646,43,410.5079,5.214212 +0.5125273,8,554.2188,2.818634 +0.7855098,34,142.7244,4.760065 +0.857309,8,134.2902,3.76904 +0.850575,12,800.5671,4.075296 +0.7062366,30,828.565,4.429344 +0.5672662,6,703.8213,2.619697 +0.6565083,83,495.8813,5.098745 +0.7695762,23,429.8266,4.373533 +0.8751504,83,411.2986,5.634882 +0.660651,31,384.3733,4.367338 +0.6552163,71,410.1236,4.987248 +0.5242741,35,810.4681,4.209141 +0.5429164,41,657.2765,4.369296 +0.5608511,52,487.3664,4.58715 +0.8849192,18,747.3227,4.554355 +0.6341058,77,491.0945,5.00518 +0.5528817,5,483.2663,2.376328 +0.7755186,45,909.177,4.897701 +0.7080204,18,922.128,4.011066 +0.5753103,67,379.1132,4.80507 +0.8938414,45,276.1014,5.306521 +0.9153011,100,561.4111,5.914729 +0.9400833,71,244.9699,5.881615 +0.5751929,57,696.4602,4.679055 +0.8627746,66,751.1318,5.420788 +0.7402069,86,120.3373,5.34467 +0.6009191,52,934.1773,4.652193 +0.5917567,18,435.2733,3.769131 +0.7928228,18,282.6634,4.243414 +0.7406228,67,601.0171,5.109815 +0.949789,27,680.853,5.248154 +0.7617935,81,297.537,5.306533 +0.8564567,77,376.8077,5.522382 +0.6577059,74,182.6144,5.040919 +0.9413392,90,90.77082,6.190444 +0.7485857,60,824.7695,5.044612 +0.8942623,86,116.7217,5.83402 +0.6324165,69,534.8945,4.921818 +0.8736767,78,480.7874,5.582686 +0.809562,7,161.7137,3.445533 +0.655178,80,209.5545,5.087967 +0.8126558,75,553.6373,5.363033 +0.587771,54,741.3041,4.659252 +0.7304708,43,140.2912,4.801626 +0.6784025,99,485.646,5.262685 +0.8679588,83,685.2886,5.594575 +0.8094056,2,901.409,1.852349 +0.6667788,32,766.4673,4.398906 +0.9003594,34,264.8389,5.13664 +0.5131864,4,594.7674,2.009264 +0.5324579,58,79.92974,4.652622 +0.6300037,79,10.07310,5.450494 +0.6228218,30,902.6635,4.260279 +0.513834,87,502.2924,4.89453 +0.7645673,2,991.632,1.678955 +0.936889,47,418.9952,5.551662 +0.8618376,87,241.7598,5.644262 +0.9409066,51,286.3327,5.654553 +0.8910533,13,177.1792,4.35247 +0.7814179,48,452.7033,4.969485 +0.7402419,49,378.8289,4.890003 +0.7814724,91,598.634,5.41494 +0.5207353,33,137.6379,4.16805 +0.8606041,76,509.892,5.517765 +0.8672457,46,857.1114,5.183842 +0.8916283,3,191.1671,2.867489 +0.9291234,61,362.7399,5.68471 +0.6128671,21,493.3128,3.945307 +0.9130023,44,433.433,5.364272 +0.5526918,40,501.2452,4.367895 +0.7100667,58,626.435,4.941089 +0.9485433,61,902.1765,5.78576 +0.7375008,100,552.7585,5.383109 +0.8843444,69,535.1516,5.537504 +0.7355137,24,294.9474,4.32874 +0.5849977,63,918.668,4.769115 +0.8148579,32,288.1865,4.769015 +0.6047379,95,20.06207,5.315901 +0.9387293,65,47.6271,6.128658 +0.6730278,29,226.6681,4.347534 +0.8536057,86,299.622,5.597219 +0.7039593,5,717.411,2.746449 +0.554576,51,501.231,4.561373 +0.5985519,33,49.17765,4.357975 +0.6332506,60,222.0821,4.834659 +0.5311171,3,505.9751,1.661199 +0.6073137,63,391.6986,4.814172 +0.6546051,47,328.4854,4.683347 +0.8600348,35,942.1334,4.959945 +0.6736388,16,170.3470,3.848083 +0.5197377,42,528.5444,4.350034 +0.5483864,2,8.982135,1.112816 +0.8866457,91,968.5747,5.716457 +0.9170833,95,720.5013,5.883273 +0.7270387,21,628.9166,4.188418 +0.812512,16,938.998,4.188589 +0.8316781,20,444.9295,4.442617 +0.9298217,20,866.0785,4.874826 +0.6134887,60,964.2135,4.78133 +0.7366226,7,319.7519,3.206178 +0.8077966,41,974.1164,4.9127 +0.6130327,56,385.8269,4.736513 +0.6378037,37,850.088,4.456746 +0.7848023,55,823.8128,5.067312 +0.936098,52,897.3047,5.592718 +0.5120613,27,467.5221,3.973342 +0.9193753,5,709.4038,3.609307 +0.8621582,83,262.4155,5.608882 +0.5685211,52,168.9039,4.614078 +0.6970322,80,225.7021,5.167406 +0.8347935,100,76.00698,5.769876 +0.8225406,8,344.3646,3.609568 +0.6941333,43,435.8167,4.690098 +0.7356296,30,710.7536,4.496393 +0.8811275,6,103.0200,3.609537 +0.6109929,48,400.577,4.615333 +0.596709,60,363.4187,4.760152 +0.6572946,5,962.1019,2.623233 +0.6103808,55,631.1443,4.713493 +0.668965,96,892.3117,5.21696 +0.7999518,32,495.2423,4.713714 +0.8338344,48,908.905,5.102972 +0.8567186,7,846.6076,3.605534 +0.7154963,95,187.0719,5.334038 +0.7108011,96,628.3475,5.29923 +0.6893275,25,734.6108,4.246437 +0.5740601,11,364.6629,3.273750 +0.8039917,73,244.864,5.346882 +0.8573021,48,634.51,5.183936 +0.8183101,23,760.4014,4.504651 +0.8641757,94,978.3002,5.657207 +0.6303905,70,604.3785,4.927486 +0.8699731,79,863.8185,5.564262 +0.915676,8,143.355,4.073357 +0.601142,35,441.2769,4.348688 +0.87388,28,333.7200,4.866511 +0.9196098,2,325.7931,2.48037 +0.7254358,13,522.0907,3.769571 +0.9131236,70,356.7704,5.689551 +0.7061301,40,507.9874,4.657943 +0.916107,7,935.9404,3.911256 +0.6185521,24,139.8068,4.088015 +0.6262447,20,876.2364,3.926877 +0.6291963,78,148.0490,5.032363 +0.632995,91,192.7662,5.141416 +0.5512401,96,922.5635,5.020761 +0.8395904,21,948.335,4.49903 +0.7737163,35,381.1151,4.717049 +0.5824825,67,367.2437,4.817619 +0.5647798,46,202.662,4.508791 +0.8834567,23,404.0992,4.750842 +0.5374452,15,541.5736,3.495868 +0.879485,45,87.82374,5.342633 +0.7248722,19,681.9091,4.098538 +0.911358,10,43.89693,4.374565 +0.7451762,77,521.6592,5.220066 +0.723452,87,31.2523,5.495526 +0.7343267,78,979.8097,5.197778 +0.8797457,62,689.5224,5.441123 +0.9355938,9,8.536315,5.395588 +0.8081898,70,899.6859,5.295606 +0.779309,60,532.5658,5.122267 +0.9343759,90,800.8648,5.941199 +0.9125067,53,544.4229,5.483064 +0.7631274,89,498.3332,5.361002 +0.7271626,57,193.7866,4.991599 +0.5656534,45,542.3173,4.482748 +0.7439162,33,548.8423,4.592949 +0.6730048,71,419.1757,5.0202 +0.8488092,75,929.485,5.458401 +0.7990472,58,914.4833,5.140082 +0.7150551,60,300.436,4.989065 +0.7738144,47,841.0965,4.926207 +0.8007912,20,803.401,4.339192 +0.551277,78,16.59874,5.049359 +0.8536064,53,5.278028,7.26772 +0.6086101,22,656.6184,3.975391 +0.7950185,92,725.3911,5.451677 +0.7759385,24,724.6639,4.418522 +0.7436127,80,136.5426,5.292482 +0.7023383,78,583.6222,5.138942 +0.7387789,13,893.3477,3.800216 +0.5355073,87,367.4723,4.931304 +0.5799598,32,907.9728,4.233542 +0.7931919,23,580.6845,4.433776 +0.9020383,59,611.7858,5.502789 +0.8865545,52,26.28821,5.827225 +0.9361958,74,762.0372,5.828598 +0.582067,75,54.81664,4.963057 +0.8257129,4,567.6277,2.886287 +0.8633863,3,134.8775,2.717133 +0.7562748,93,860.8626,5.367093 +0.5468247,52,13.37389,4.752502 +0.5236045,76,758.5776,4.808922 +0.8087347,55,532.2803,5.136258 +0.7106333,92,111.2063,5.331034 +0.814428,41,509.0671,4.940242 +0.9088012,9,841.348,4.094842 +0.8740427,76,824.9096,5.553729 +0.8074883,69,252.8868,5.315484 +0.7213603,5,948.5723,2.794196 +0.6841834,28,313.8684,4.336824 +0.8791684,31,739.6711,4.946414 +0.8447433,53,223.9424,5.246248 +0.6077613,19,337.0328,3.850726 +0.6291898,19,882.2599,3.8882 +0.5982278,57,129.2187,4.745759 +0.8181028,71,778.5106,5.334016 +0.9189918,46,312.8849,5.440689 +0.6311825,5,906.8284,2.558528 +0.6925712,35,572.9342,4.524774 +0.7704907,37,621.4804,4.743354 +0.9046787,92,802.2702,5.801703 +0.6019258,60,991.2124,4.76121 +0.5629309,51,344.3215,4.578758 +0.8558432,38,589.3368,5.012244 +0.819681,32,977.2155,4.762014 +0.8277987,87,394.2501,5.51517 +0.5027483,24,314.9769,3.857077 +0.8158908,45,652.2671,5.008327 +0.8676783,82,104.2660,5.703369 +0.8946515,67,165.1998,5.624106 +0.8481332,95,468.5812,5.62917 +0.9427243,60,768.3167,5.735723 +0.8323833,26,398,4.655196 +0.8430963,33,469.1627,4.869046 +0.7642166,66,682.7124,5.150084 +0.8620012,43,557.2209,5.12448 +0.8747079,70,562.6493,5.509243 +0.6204153,14,15.61338,3.757389 +0.8136883,92,594.1941,5.503064 +0.7890769,21,960.2178,4.34413 +0.6135467,97,95.7961,5.179695 +0.6646005,79,102.7502,5.128727 +0.7282539,70,201.1261,5.142028 +0.6060018,16,13.12709,3.877434 +0.6576292,18,846.5295,3.900090 +0.9218128,19,225.0802,4.822128 +0.6956397,58,828.7143,4.909221 +0.5778678,53,305.8120,4.63554 +0.7409067,99,574.9399,5.382695 +0.6894707,35,474.0742,4.520339 +0.8547311,29,9.140069,5.801376 +0.9443449,36,740.9564,5.40459 +0.5030257,16,327.6132,3.492181 +0.7115186,14,705.3257,3.800159 +0.9499585,45,305.1216,5.635737 +0.6742548,79,184.8126,5.119984 +0.7671734,3,113.5515,2.320534 +0.743683,74,902.1817,5.181569 +0.9003837,6,700.1,3.670878 +0.818022,38,669.9273,4.890023 +0.5886032,2,378.721,1.162975 +0.804402,77,237.4354,5.38663 +0.6920335,58,268.8176,4.919222 +0.5761434,69,242.3807,4.834436 +0.7279316,32,213.1663,4.549817 +0.7118987,38,408.9461,4.633905 +0.7176286,33,133.8739,4.566852 +0.638278,76,13.88720,5.337516 +0.8056624,79,618.3595,5.377935 +0.9184175,52,114.7676,5.609458 +0.8495399,67,528.1128,5.39474 +0.9345234,11,795.6603,4.436122 +0.9183741,71,595.8968,5.706353 +0.6894078,63,32.08419,5.14501 +0.6199956,7,947.1682,2.907827 +0.7804436,39,746.3122,4.805868 +0.5348798,22,555.1823,3.837054 +0.770588,24,148.8212,4.438917 +0.5758073,32,768.8216,4.226697 +0.7512398,43,850.633,4.806761 +0.8007302,93,127.8680,5.548864 +0.9014866,25,678.9343,4.886736 +0.6555334,6,378.8423,2.827782 +0.9277143,52,953.2782,5.53991 +0.5545398,24,816.5394,3.947181 +0.781483,46,164.8824,4.971961 +0.5651579,54,238.7493,4.631017 +0.8015807,37,983.0817,4.819457 +0.6465967,100,23.79223,5.43803 +0.7298902,6,404.3406,3.022995 +0.5268403,15,595.9964,3.475157 +0.8249902,50,417.7287,5.119674 +0.7174687,44,28.92964,4.958069 +0.9220132,47,837.619,5.44125 +0.9163917,42,184.3981,5.395217 +0.6503536,32,85.93141,4.412043 +0.910666,8,312.4043,4.01467 +0.7578302,34,394.5199,4.654374 +0.7812384,5,798.26,2.977237 +0.5178476,35,456.0489,4.200271 +0.6632408,88,229.8003,5.168476 +0.8390662,31,835.2151,4.799856 +0.9352528,27,898.2456,5.132372 +0.8057271,58,350.117,5.176067 +0.610425,86,72.80154,5.102728 +0.9204428,22,964.564,4.886985 +0.8329993,95,981.9353,5.568629 +0.6198768,92,169.4371,5.129408 +0.6226202,84,898.3718,5.042082 +0.6418981,84,542.0965,5.079978 +0.6675953,95,291.8509,5.22411 +0.9360013,66,551.7465,5.762516 +0.8745606,88,678.362,5.656737 +0.5279922,5,832.993,2.319646 +0.818075,79,469.9906,5.417217 +0.8262758,2,645.9986,1.925928 +0.5706311,21,503.1586,3.863504 +0.7682838,39,861.4102,4.774088 +0.7245813,33,359.1662,4.55453 +0.6995345,46,293.3065,4.759532 +0.8709355,57,922.7088,5.345742 +0.8373729,60,504.0928,5.281386 +0.7081338,75,289.2888,5.136525 +0.7901496,5,5.439199,3.588918 +0.5290842,81,696.4208,4.864699 +0.7137549,27,77.53818,4.424457 +0.5482691,44,15.99154,4.590674 +0.8808748,18,22.94479,4.911921 +0.8147249,77,293.5421,5.405631 +0.6046856,2,878.4859,1.202698 +0.5329508,13,63.85672,3.373561 +0.6332334,22,704.2761,4.023677 +0.546437,8,890.3324,2.888729 +0.6326386,5,754.358,2.562415 +0.8817755,44,278.2696,5.238411 +0.8368096,19,138.9115,4.455741 +0.5355686,91,204.9948,4.971374 +0.7235912,8,344.4877,3.305657 +0.5048621,34,346.1112,4.155419 +0.5931924,60,160.0218,4.76904 +0.5299145,31,594.7286,4.120086 +0.6017189,87,369.6473,5.04039 +0.7418517,50,5.327944,6.087411 +0.8483486,64,305.071,5.376896 +0.6756182,4,862.6502,2.403836 +0.7777819,49,430.4768,4.976453 +0.9113989,60,362.3921,5.576478 +0.7407845,99,928.5576,5.375836 +0.7685601,49,344.4184,4.958712 +0.7725601,96,578.2455,5.4311 +0.6653655,50,945.6597,4.739644 +0.9468507,13,816.8829,4.670724 +0.5251872,29,804.5675,4.055112 +0.56988,7,438.1736,2.797492 +0.8973808,60,30.05556,5.950758 +0.9487586,11,261.4730,4.580859 +0.6696307,82,650.6464,5.110804 +0.8888442,27,907.014,4.881785 +0.7401928,22,558.9628,4.25965 +0.6110303,38,401.6077,4.433361 +0.7925204,16,439.8231,4.135301 +0.702094,9,504.9842,3.36415 +0.853108,33,35.07958,5.163423 +0.9353926,67,223.8085,5.818331 +0.6520575,24,758.8386,4.134634 +0.66278,81,118.4723,5.135034 +0.7340894,39,501.0299,4.699954 +0.8870821,53,874.5811,5.358251 +0.8916662,94,154.8354,5.848344 +0.83859,33,798.9093,4.845743 +0.9192628,35,969.539,5.218617 +0.8449602,89,174.3100,5.625377 +0.8755261,67,784.9093,5.475399 +0.7064768,8,992.3402,3.255223 +0.6243083,58,371.844,4.783567 +0.5539676,95,17.05929,5.202136 +0.6063726,90,191.1312,5.085874 +0.8869105,35,510.8736,5.074511 +0.8790183,42,885.0375,5.163212 +0.5933805,60,296.2700,4.75707 +0.6551459,30,24.56066,4.487992 +0.5723375,37,274.4002,4.345513 +0.6443248,33,836.795,4.378666 +0.735258,17,324.4626,4.036611 +0.8457457,86,740.4636,5.544534 +0.8943911,5,851.5544,3.451821 +0.838857,4,107.2173,2.963602 +0.856727,20,491.6441,4.529308 +0.6224996,72,30.61014,5.081849 +0.7584831,7,374.16,3.267944 +0.747176,10,637.9571,3.582344 +0.7691169,10,641.088,3.643957 +0.6950572,2,274.5504,1.453546 +0.6725931,29,665.696,4.332746 +0.7588209,56,4.689692,6.509686 +0.9223835,6,761.912,3.809601 +0.7851749,45,443.8975,4.932058 +0.7397743,40,2.279709,7.45333 +0.522246,20,346.4404,3.731591 +0.5984001,75,200.1283,4.938596 +0.8460583,10,705.9169,3.897459 +0.6427525,41,106.1142,4.585355 +0.8209742,37,392.5236,4.888823 +0.925232,81,785.0064,5.821471 +0.5509883,15,578.9168,3.521915 +0.7231179,48,606.5707,4.829564 +0.7479964,56,978.1678,4.992034 +0.8560428,89,172.6031,5.663342 +0.7445964,19,934.2746,4.14458 +0.8146255,5,297.5732,3.100598 +0.8801215,12,414.1117,4.206742 +0.5379769,19,896.2387,3.711643 +0.5590387,7,148.3427,2.779745 +0.7562362,2,126.4085,1.656177 +0.8628862,83,9.887536,6.832619 +0.6339987,49,957.1054,4.665933 +0.7959348,43,970.3764,4.915685 +0.9469303,27,894.7433,5.219109 +0.7474149,36,128.4815,4.709715 +0.6833293,17,967.5529,3.905373 +0.8428125,89,603.4397,5.562762 +0.9246594,88,878.4903,5.868944 +0.6135251,98,186.0699,5.160008 +0.5697204,97,4.151751,5.806717 +0.8312094,82,169.7990,5.527478 +0.910185,87,105.4579,5.936619 +0.693803,31,27.54992,4.604856 +0.8607749,20,951.5826,4.536226 +0.5555341,42,660.3545,4.410026 +0.7611825,68,533.4381,5.168059 +0.6107306,70,323.2711,4.90054 +0.6746679,35,374.4120,4.492795 +0.9177906,75,313.8561,5.766134 +0.7678125,96,441.6935,5.426057 +0.9169907,14,736.4204,4.517798 +0.7433266,56,989.043,4.9816 +0.9015917,98,391.5603,5.852269 +0.7285088,100,452.3493,5.368393 +0.5379222,32,316.8145,4.164098 +0.7352325,49,251.5620,4.888791 +0.8506556,14,172.2805,4.239404 +0.7878528,86,47.18904,5.595067 +0.7940741,14,709.88,4.020078 +0.6541361,31,382.5369,4.354275 +0.8305676,56,384.7685,5.21937 +0.899311,87,765.7054,5.743174 +0.669143,21,357.551,4.063729 +0.6986659,4,783.4702,2.467174 +0.8068675,98,264.7227,5.553613 +0.7591054,85,289.1455,5.33484 +0.7327918,54,51.85563,5.067093 +0.6006468,11,304.5714,3.330731 +0.7975916,41,464.2589,4.895099 +0.8373671,65,922.02,5.325994 +0.797545,27,324.2303,4.583439 +0.7110869,22,140.0273,4.217343 +0.6424185,65,367.1264,4.901086 +0.5556619,47,305.7816,4.504104 +0.772002,48,528.8508,4.943287 +0.6721145,5,79.38062,2.681564 +0.7806843,10,434.8125,3.681225 +0.6894094,28,566.1086,4.34089 +0.733033,7,71.62944,3.227396 +0.648652,51,326.0771,4.734045 +0.5223443,28,140.3916,4.032858 +0.6840796,52,532.834,4.810271 +0.5635255,5,600.5627,2.400079 +0.8416008,45,600.0655,5.087043 +0.799596,79,715.0368,5.359828 +0.8057718,12,815.9436,3.919591 +0.585966,58,812.5367,4.709579 +0.7304825,39,452.6062,4.693294 +0.7611653,14,301.6993,3.935817 +0.6647046,37,76.24282,4.567979 +0.6523098,91,841.6372,5.150504 +0.788072,2,838.2777,1.766685 +0.7445851,25,39.74841,4.50943 +0.7385261,53,652.0979,4.935246 +0.7808228,28,515.9685,4.557599 +0.888269,82,840.605,5.657258 +0.6899828,10,374.1941,3.439050 +0.6410592,61,875.8026,4.842899 +0.6451181,16,944.335,3.769109 +0.5841919,43,684.492,4.478166 +0.5010752,25,285.6268,3.890052 +0.8291245,8,368.9152,3.632677 +0.5235197,92,301.6914,4.954483 +0.7078635,85,642.3808,5.208843 +0.5116872,98,379.1896,4.979117 +0.6257265,10,875.562,3.286811 +0.6592452,35,250.9212,4.468037 +0.7221302,20,187.6121,4.154374 +0.7956171,54,451.887,5.091446 +0.6838694,20,473.7403,4.051287 +0.8295577,78,784.4418,5.430121 +0.9478423,68,488.6432,5.86968 +0.6691414,83,921.919,5.115242 +0.9224753,22,184.6860,4.951371 +0.8983257,48,267.843,5.374096 +0.8998352,79,766.9935,5.682365 +0.7091498,33,343.9942,4.520809 +0.6004464,14,410.7908,3.558120 +0.9099504,95,636.2874,5.852287 +0.7956578,56,548.764,5.113729 +0.7704919,32,462.0465,4.636439 +0.5645864,39,905.9903,4.36564 +0.77087,22,454.319,4.339972 +0.7042887,51,355.528,4.843002 +0.8015738,14,377.1564,4.049835 +0.8583845,39,860.9546,5.034111 +0.9179805,65,763.6357,5.639616 +0.7802,38,746.6791,4.785765 +0.7479871,15,385.239,3.957906 +0.7396997,41,142.9188,4.786167 +0.8558819,21,49.9631,4.717325 +0.7794685,8,6.951015,4.020868 +0.7423384,76,914.6567,5.197205 +0.8278342,88,835.197,5.50552 +0.7116068,57,448.2181,4.936231 +0.8406779,65,790.6183,5.338226 +0.602327,41,504.0098,4.475247 +0.8409111,57,538.369,5.254911 +0.8656233,44,69.18179,5.301835 +0.5141587,85,791.0469,4.875926 +0.5417386,7,141.6497,2.742201 +0.5982695,23,414.601,3.996176 +0.514064,83,421.916,4.861692 +0.602719,48,560.3881,4.597395 +0.6230789,83,319.8326,5.045922 +0.5042455,25,173.947,3.899675 +0.8705254,16,459.7512,4.404386 +0.6383081,73,827.3477,4.969256 +0.7887536,13,621.2912,3.940368 +0.5171924,95,261.1531,4.96909 +0.6338395,21,712.4886,3.985088 +0.886364,31,489.4844,4.984223 +0.6076696,82,823.9758,5.000153 +0.5168341,19,858.6781,3.672510 +0.6961416,22,412.6158,4.160402 +0.801484,65,553.8453,5.234128 +0.7856216,69,112.5570,5.306969 +0.9263677,52,276.0557,5.574726 +0.7135692,32,209.0116,4.517289 +0.8410421,88,738.9076,5.545727 +0.8297371,93,990.6756,5.545205 +0.741467,22,177.8167,4.284039 +0.7635628,64,581.6729,5.129171 +0.5543599,13,124.4985,3.405149 +0.815754,80,445.7278,5.420853 +0.9187836,79,491.0139,5.784896 +0.6401774,26,569.7998,4.179082 +0.6696699,57,670.915,4.847928 +0.8378535,11,43.21189,4.078821 +0.559829,57,982.0274,4.651717 +0.7326061,3,730.2683,2.194841 +0.6143365,4,658.2037,2.246992 +0.9091326,58,130.0204,5.619253 +0.7299739,46,905.6522,4.808786 +0.9438849,65,51.04049,6.149484 +0.6383169,34,143.9447,4.415962 +0.6008252,38,863.7329,4.409409 +0.7914155,67,926.258,5.221909 +0.5824244,3,889.5783,1.783688 +0.5264587,92,418.4913,4.956136 +0.9393047,42,118.5326,5.591449 +0.8931902,37,63.91318,5.311936 +0.6691642,25,686.5356,4.204276 +0.655101,78,714.8446,5.047903 +0.9385995,37,316.4599,5.410553 +0.6542483,12,294.8234,3.531808 +0.7505392,67,863.9093,5.127012 +0.8010309,17,441.6191,4.211893 +0.5404961,36,29.51087,4.338949 +0.8481581,77,556.2782,5.483866 +0.8356528,31,908.498,4.787953 +0.8227231,52,216.2118,5.164859 +0.905388,97,83.37888,6.029684 +0.7548435,56,900.9445,5.008181 +0.6031258,10,727.9192,3.238254 +0.6346565,82,77.91511,5.112419 +0.766229,28,344.5748,4.52627 +0.5894321,72,904.7874,4.875008 +0.6093439,35,782.5465,4.36002 +0.7497125,68,993.3388,5.134286 +0.5022351,80,492.7455,4.815045 +0.7511856,74,421.0537,5.209693 +0.5176743,42,230.2803,4.352358 +0.7387836,54,3.121385,6.995114 +0.761282,21,475.0687,4.276069 +0.8406623,40,402.1961,5.007226 +0.882509,85,381.4973,5.681394 +0.9286038,79,467.4862,5.840803 +0.5992355,79,835.7454,4.959146 +0.890761,24,666.5893,4.805821 +0.7234082,33,730.644,4.543084 +0.5505608,19,213.1412,3.742900 +0.8660476,47,939.6582,5.193467 +0.940598,45,349.6406,5.555837 +0.6006444,93,572.2021,5.080988 +0.5091824,3,983.6616,1.609518 +0.5216768,85,920.905,4.887062 +0.7967704,68,721.9357,5.248968 +0.59216,27,542.8038,4.11822 +0.7599046,18,528.9801,4.142539 +0.8651707,43,113.2006,5.218027 +0.5924965,83,143.1471,5.011246 +0.6820487,51,444.4327,4.794115 +0.7621458,85,451.2133,5.329308 +0.7125131,58,478.2222,4.94979 +0.785969,56,85.08017,5.18163 +0.8220104,61,561.3661,5.245318 +0.690745,82,96.57742,5.21521 +0.9415946,30,858.3626,5.253486 +0.6013633,26,154.6332,4.119098 +0.7275541,9,771.9723,3.427606 +0.7001641,36,248.4740,4.576007 +0.9099395,46,101.5428,5.489313 +0.5301535,12,15.86398,3.358847 +0.7246674,48,676.6038,4.831669 +0.6494136,86,336.4217,5.117376 +0.9117588,55,622.8621,5.500896 +0.8806666,16,913.2533,4.438764 +0.7748915,95,491.9472,5.432733 +0.8041172,31,736.1958,4.695681 +0.5250454,34,398.9952,4.189739 +0.8903168,45,496.8165,5.269568 +0.7864003,98,133.7617,5.54255 +0.672163,88,317.5607,5.176894 +0.5214742,38,623.1296,4.272 +0.73013,3,664.3804,2.187303 +0.8370519,57,483.929,5.245438 +0.905355,22,937.9329,4.804942 +0.5186103,86,984.7663,4.890574 +0.6401834,92,341.8974,5.14821 +0.6548418,31,841.7306,4.349167 +0.9211253,56,37.49689,5.965554 +0.847424,59,751.2014,5.293101 +0.5670823,36,487.3625,4.308973 +0.7570442,69,619.3497,5.166504 +0.7855974,78,226.0553,5.348713 +0.8519632,30,497.0498,4.826449 +0.7275984,28,953.4355,4.421089 +0.6861582,97,713.1176,5.257759 +0.6299306,62,779.7347,4.835759 +0.9084661,52,577.6044,5.448431 +0.8757678,77,722.9621,5.571258 +0.7955783,5,476.438,3.028203 +0.5515631,30,159.7,4.143206 +0.6687658,48,181.5406,4.740979 +0.7556932,67,214.9520,5.170283 +0.7495992,45,738.3258,4.838205 +0.8802353,4,359.4933,3.139567 +0.6101071,37,124.4847,4.432152 +0.7072711,82,990.3553,5.178028 +0.6836548,28,264.0952,4.338638 +0.602489,95,388.3661,5.103602 +0.9298973,78,22.56973,6.608796 +0.7459731,22,161.8984,4.298588 +0.8078601,21,62.63728,4.502277 +0.746816,30,345.1936,4.532392 +0.7855065,12,843.9162,3.85735 +0.875513,94,267.9591,5.739195 +0.5442306,69,11.17396,5.006721 +0.699071,94,19.41204,5.605957 +0.7866223,48,680.867,4.975987 +0.5264621,48,13.63537,4.625036 +0.9174577,35,495.3558,5.222406 +0.8724126,62,914.5348,5.408832 +0.865643,65,408.7572,5.435482 +0.6987177,16,736.9757,3.888351 +0.9262,47,655.252,5.470375 +0.5707421,49,653.633,4.556472 +0.8033052,7,200.0670,3.419037 +0.607467,16,681.1006,3.692504 +0.9112384,40,313.9323,5.300553 +0.727744,87,338.0306,5.277563 +0.5696553,77,73.57855,4.940687 +0.5205544,28,161.0509,4.027688 +0.7081532,90,462.7116,5.254306 +0.7741767,14,205.8534,3.980006 +0.7166292,16,373.7093,3.936160 +0.5436275,6,821.2211,2.567207 +0.8027656,11,680.4826,3.833235 +0.8254717,83,922.7415,5.458177 +0.932488,58,866.6913,5.643221 +0.8418702,45,569.1373,5.088895 +0.689414,32,417.8379,4.451095 +0.7923089,93,146.7568,5.51455 +0.8078084,24,657.6303,4.508357 +0.8114387,36,717.209,4.829867 +0.6953754,45,165.5859,4.750391 +0.5427887,13,667.9623,3.370327 +0.6278709,87,742.4106,5.077376 +0.719019,47,575.633,4.805737 +0.8485726,22,182.7487,4.60427 +0.8952204,13,134.3489,4.388571 +0.5808132,14,174.6743,3.525328 +0.8973759,90,853.2268,5.754695 +0.6880474,54,500.3682,4.846951 +0.677843,39,845.5148,4.575613 +0.7658533,68,863.7593,5.171952 +0.938231,54,944.06,5.630914 +0.8791004,66,866.3697,5.476817 +0.8274844,59,926.6531,5.229684 +0.9470333,18,209.7032,4.969697 +0.6802575,29,3.550959,5.529664 +0.5066382,24,740.083,3.860899 +0.8874296,23,712.4559,4.757439 +0.8624187,68,610.8993,5.444066 +0.7703005,49,791.0794,4.948802 +0.8037844,67,242.3122,5.286526 +0.912851,95,88.46587,6.044068 +0.8034184,93,912.2758,5.47648 +0.6455281,86,2.359885,7.036967 +0.6580722,80,904.2982,5.069314 +0.8415494,70,145.7251,5.462051 +0.90707,53,996.3983,5.443663 +0.8247734,79,285.8116,5.452874 +0.7215811,8,61.89573,3.339986 +0.6220738,26,908.8918,4.141114 +0.6506316,97,846.5834,5.192115 +0.7313284,38,93.45492,4.731484 +0.8823698,27,966.4982,4.853321 +0.7490274,52,386.2727,4.953415 +0.6805436,33,651.8731,4.452449 +0.7764903,39,280.9689,4.81385 +0.9432227,84,752.5136,5.9566 +0.8667044,76,394.4018,5.546927 +0.5788225,14,258.0226,3.517233 +0.8875073,89,733.1099,5.710791 +0.5351773,44,262.4027,4.418358 +0.6488808,73,949.2446,4.987076 +0.9236432,13,125.3093,4.562865 +0.8962864,58,309.9517,5.489335 +0.7281808,13,587.0542,3.775624 +0.5180642,77,354.9852,4.814268 +0.6902971,2,939.4611,1.4374 +0.7647461,99,548.2068,5.435252 +0.5776067,30,913.6733,4.176379 +0.8657476,6,795.0982,3.493412 +0.897945,32,541.3933,5.056966 +0.6598413,5,171.2253,2.637734 +0.893147,56,292.6846,5.454062 +0.6640957,61,271.5816,4.900817 +0.8715021,23,764.0064,4.689651 +0.8385217,13,201.9563,4.123507 +0.7627245,32,714.4778,4.611452 +0.8619162,40,977.3098,5.063287 +0.9254046,89,777.3225,5.883097 +0.6706702,18,700.07,3.928967 +0.6348828,16,987.2555,3.747484 +0.6960192,27,182.7434,4.344458 +0.8773171,90,39.94803,6.032864 +0.5626677,16,956.1505,3.602819 +0.5537715,46,444.1438,4.48079 +0.6688064,80,897.1477,5.08883 +0.6897467,86,601.8464,5.182841 +0.871555,50,638.7892,5.263301 +0.5150773,31,193.1971,4.101366 +0.8863904,75,97.00325,5.72981 +0.7150527,26,488.4888,4.338653 +0.7805498,31,186.7901,4.661684 +0.6060921,49,36.88978,4.719998 +0.8752972,75,59.6561,5.772133 +0.5284842,20,752.361,3.740229 +0.911607,12,123.6005,4.417916 +0.912127,75,577.6007,5.711903 +0.6424525,21,968.2822,4.001205 +0.9467245,29,44.99821,5.59281 +0.6967225,72,493.199,5.073494 +0.926016,23,473.5198,4.967169 +0.9147218,44,564.3584,5.365337 +0.6036511,88,221.1464,5.061308 +0.6954212,98,549.93,5.285678 +0.6096702,33,74.86955,4.357886 +0.6447025,8,297.3146,3.109925 +0.5721982,13,116.7042,3.443134 +0.8261254,82,283.0360,5.482771 +0.6414976,75,908.1127,4.993686 +0.814776,62,968.177,5.22812 +0.7715264,30,209.3643,4.607552 +0.5268074,37,739.2855,4.258942 +0.8995444,14,970.326,4.418598 +0.6672158,22,380.9123,4.098374 +0.5621144,53,377.9919,4.605991 +0.6793161,41,81.38955,4.678239 +0.6916072,85,566.663,5.179 +0.5736763,66,941.3328,4.784641 +0.9219027,6,886.3211,3.805059 +0.5896647,7,858.1352,2.839533 +0.9074126,10,93.07447,4.253267 +0.66789,51,629.9087,4.762436 +0.877229,69,750.5044,5.502388 +0.9137808,60,799.3949,5.563941 +0.9041558,14,184.6966,4.481808 +0.7500885,43,328.5007,4.818373 +0.8837174,63,472.7422,5.47702 +0.7709719,40,827.9627,4.800039 +0.5613473,21,753.5284,3.844366 +0.8607043,71,90.77541,5.593585 +0.894365,26,912.2157,4.878227 +0.6289452,15,394.0313,3.681227 +0.6738608,51,931.1405,4.770833 +0.612593,9,844.2056,3.152861 +0.7328856,51,999.851,4.890585 +0.9286233,28,415.55,5.132799 +0.6607356,51,361.9293,4.755496 +0.6956952,58,683.2114,4.911127 +0.8438404,59,179.9122,5.332682 +0.5322143,85,18.54251,5.046697 +0.6755007,15,829.881,3.777777 +0.5618366,62,92.26922,4.753428 +0.5100895,36,103.1916,4.225376 +0.6867955,29,328.8595,4.370096 +0.6402259,56,200.4614,4.798722 +0.9200455,96,727.2613,5.904703 +0.7006108,77,978.7424,5.12098 +0.6415493,27,808.732,4.210867 +0.7054206,38,983.0683,4.611176 +0.8708127,17,924.364,4.445982 +0.6735938,90,59.16235,5.288341 +0.893749,31,274.5217,5.035676 +0.811464,78,482.6777,5.38987 +0.5329308,98,757.2869,5.007849 +0.7138424,36,177.7422,4.61582 +0.8361404,44,14.41229,5.711417 +0.8358981,58,234.4316,5.279698 +0.7662827,45,166.0394,4.91555 +0.5136097,15,968.2607,3.448866 +0.9202818,12,400.6707,4.422114 +0.901509,80,856.068,5.695603 +0.8459219,12,243.37,4.075717 +0.895828,99,675.6542,5.815219 +0.9483792,2,505.0198,2.758998 +0.6077581,78,46.8255,5.059373 +0.8990502,28,440.9378,4.968781 +0.7994523,58,128.8626,5.208285 +0.7051844,87,246.3544,5.240367 +0.609106,82,627.9874,5.004618 +0.7393058,16,102.7798,4.025542 +0.7529953,85,445.276,5.309107 +0.731806,33,628.1298,4.56342 +0.880604,33,539.6335,5.00397 +0.5836496,19,496.0396,3.800555 +0.8817114,24,71.55129,4.891774 +0.9257038,29,832.7737,5.123804 +0.5565546,17,825.7594,3.646683 +0.814996,90,970.7049,5.483541 +0.7525624,43,709.3263,4.811639 +0.5808193,57,768.9612,4.688041 +0.6070652,30,126.9498,4.254673 +0.6703728,62,509.1423,4.914036 +0.8503237,98,835.3743,5.642843 +0.8517253,48,19.13650,5.712755 +0.5168282,49,49.78515,4.508736 +0.832432,60,758.4743,5.258661 +0.8950984,34,458.0435,5.092172 +0.5167257,90,269.1065,4.928903 +0.8812985,45,501.8186,5.232066 +0.8884966,4,959.577,3.17786 +0.5751634,23,179.3001,3.960573 +0.9069385,42,747.0547,5.287428 +0.8875317,19,296.2533,4.628104 +0.596398,71,686.8049,4.87814 +0.918342,86,300.7095,5.86174 +0.8740808,85,72.80344,5.814391 +0.5438677,37,944.3981,4.287476 +0.7976671,40,476.4478,4.876465 +0.9018208,52,461.4554,5.423492 +0.7830676,65,791.2986,5.182023 +0.8163788,46,515.612,5.029737 +0.6272917,35,201.1602,4.408986 +0.5440327,17,510.8568,3.624252 +0.7540332,56,198.2257,5.039744 +0.9448444,91,142.8565,6.14086 +0.6085111,30,756.2686,4.234089 +0.8094153,21,564.3328,4.408084 +0.5010243,17,944.5477,3.541730 +0.9293139,46,666.201,5.473828 +0.6923277,12,741.6548,3.613324 +0.914651,100,317.0432,5.9377 +0.8499166,92,470.4283,5.613306 +0.5807449,11,980.1108,3.284324 +0.8983226,6,733.9231,3.658757 +0.8945144,72,158.2759,5.677252 +0.5103657,33,903.8698,4.136651 +0.534177,22,375.0012,3.83756 +0.6324964,8,567.16,3.07826 +0.613885,56,13.62238,5.01518 +0.851725,27,382.9489,4.751082 +0.8799537,49,153.7527,5.345505 +0.7592371,18,819.073,4.137142 +0.9212617,38,678.4613,5.294067 +0.5598017,78,26.99321,5.006114 +0.6814634,42,681.3903,4.641436 +0.8606673,20,783.8055,4.537746 +0.6084816,4,685.7197,2.232538 +0.6399375,45,593.7783,4.615192 +0.6103587,22,351.3694,3.983024 +0.9266782,92,14.14941,7.182278 +0.9188638,49,253.6643,5.495489 +0.687522,2,884.6993,1.429223 +0.5745827,58,144.1793,4.712286 +0.6408255,43,72.38769,4.638984 +0.5272403,12,389.2443,3.26381 +0.7431113,18,929.1973,4.095248 +0.5755574,58,755.1514,4.692339 +0.7362868,26,668.128,4.384603 +0.8476235,80,459.8383,5.513119 +0.531841,26,521.0744,3.976064 +0.8565164,12,373.0101,4.10788 +0.7162138,73,845.4122,5.115485 +0.6513347,73,279.6416,5.00723 +0.550517,93,804.8208,4.997617 +0.553736,7,449.5708,2.762216 +0.8000883,90,715.2746,5.449685 +0.7449889,41,357.5293,4.76865 +0.7050233,5,928.9357,2.748723 +0.811888,92,684.0569,5.49554 +0.5949598,39,782.7147,4.419858 +0.6980153,37,617.763,4.578678 +0.6513668,46,966.251,4.650048 +0.6346104,43,623.7619,4.569875 +0.6049259,50,348.3189,4.637309 +0.8538904,93,555.5724,5.628339 +0.7127893,36,798.1527,4.586658 +0.9133792,28,404.7592,5.044139 +0.8015495,82,612.701,5.392967 +0.7103518,76,782.9977,5.13295 +0.8044765,10,496.2737,3.754206 +0.8711564,8,949.4938,3.795038 +0.850426,44,424.9812,5.107353 +0.7427764,31,531.0962,4.541912 +0.7833918,13,436.4556,3.928051 +0.5161939,9,153.1221,2.956119 +0.542656,22,466.4729,3.852124 +0.7050307,42,581.7667,4.691265 +0.9394027,90,696.7951,5.976785 +0.6877143,77,409.0994,5.106878 +0.6642221,79,415.6036,5.080381 +0.8659564,28,995.0667,4.815222 +0.6232415,99,540.7747,5.16357 +0.5393753,21,977.4539,3.802869 +0.6286016,33,708.3299,4.349475 +0.9232921,23,752.7533,4.940747 +0.6183734,92,523.36,5.104062 +0.9043008,92,200.5048,5.866232 +0.6344774,89,236.9535,5.122502 +0.8628253,13,701.8662,4.19359 +0.9023469,36,694.6135,5.157649 +0.920216,96,481.1691,5.919217 +0.7553396,30,291.5915,4.556811 +0.7868298,37,22.24995,5.117885 +0.5297635,90,7.767314,5.255495 +0.7545318,90,983.2014,5.339463 +0.624568,77,498.1715,4.988259 +0.6753779,93,882.7993,5.206611 +0.6985417,92,379.6412,5.25464 +0.7701595,40,774.3157,4.798714 +0.8281533,13,974.1746,4.062279 +0.5118858,97,242.9545,4.976425 +0.7758689,65,513.8558,5.171371 +0.7374977,95,351.8510,5.357994 +0.6412336,53,703.0254,4.740301 +0.9063756,100,900.0661,5.860283 +0.8418323,25,35.81261,4.872203 +0.7665503,31,927.7007,4.59406 +0.9219692,74,591.2485,5.752762 +0.6358764,88,928.0914,5.097556 +0.9315368,16,528.4209,4.723142 +0.8100316,75,250.0677,5.381272 +0.6597449,67,687.8693,4.947374 +0.7521641,51,428.6216,4.944315 +0.8862515,96,909.08,5.750776 +0.8434805,37,450.0125,4.956334 +0.6248698,79,847.8975,5.002474 +0.9387935,27,351.9824,5.181689 +0.7219279,32,688.6867,4.516232 +0.7028832,4,115.2441,2.491463 +0.943075,85,51.73854,6.33496 +0.5073794,44,17.59787,4.470998 +0.8603101,42,103.5809,5.19063 +0.5362855,41,957.9404,4.356659 +0.7562751,71,135.6305,5.237723 +0.8609146,54,509.9657,5.284062 +0.8023684,6,203.2283,3.256929 +0.8707021,16,28.49927,4.670428 +0.6753105,14,677.1358,3.71605 +0.8213447,86,969.6892,5.470054 +0.7359973,89,538.931,5.300517 +0.5872538,45,607.1356,4.519681 +0.8535855,45,984.2838,5.118899 +0.744609,72,340.6154,5.180845 +0.695795,60,691.346,4.935945 +0.9209901,19,839.272,4.780656 +0.9332112,25,274.9751,5.096345 +0.7586022,23,707.0266,4.339541 +0.8356929,73,491.7684,5.412498 +0.9449564,100,217.8314,6.150777 +0.769811,4,500.2968,2.684143 +0.8468755,81,842.382,5.505682 +0.8751426,29,595.5288,4.884167 +0.7680948,18,56.2383,4.252435 +0.6820803,50,727.2103,4.773905 +0.8127874,55,255.6038,5.168734 +0.8462327,43,101.6337,5.157443 +0.800735,61,891.4924,5.180328 +0.9404126,52,486.4209,5.63849 +0.5839157,12,165.2641,3.385607 +0.935952,24,741.7999,5.054673 +0.9156533,41,319.3794,5.340692 +0.8196525,59,989.9556,5.206648 +0.6757751,83,725.6698,5.12955 +0.648204,48,961.4014,4.676463 +0.765033,78,93.1138,5.358278 +0.7678091,93,854.3995,5.392688 +0.5783231,29,170.5511,4.164157 +0.8802704,69,471.1699,5.525453 +0.5391529,36,214.6134,4.266653 +0.8768197,92,684.0415,5.693874 +0.8024528,19,389.2881,4.310811 +0.8102137,25,543.2757,4.550161 +0.5723951,34,177.1517,4.28349 +0.7918926,15,860.9835,4.07184 +0.9097192,26,440.2916,4.967131 +0.8408364,34,993.8379,4.872849 +0.7611193,10,193.7934,3.635555 +0.6503083,44,663.8255,4.616585 +0.7713632,22,182.8751,4.361633 +0.9257941,9,785.8253,4.203124 +0.8617674,10,87.37827,4.022113 +0.6977722,24,710.5994,4.231432 +0.5354379,8,618.6639,2.866230 +0.7276367,78,194.4265,5.219456 +0.927455,28,165.6871,5.174257 +0.9348588,94,166.7061,6.069519 +0.5434083,10,335.4119,3.115874 +0.6687663,15,727.9403,3.763405 +0.54875,94,3.577831,5.762369 +0.6946637,95,57.15825,5.380881 +0.8181467,88,282.4998,5.508351 +0.702337,22,39.24263,4.280552 +0.6295064,62,309.4151,4.845432 +0.8923052,9,895.7956,4.004396 +0.6035331,60,645.0201,4.766525 +0.8836149,97,409.5161,5.769774 +0.6316577,69,864.4558,4.916431 +0.8140471,93,972.8971,5.502959 +0.924153,67,537.857,5.702411 +0.6059753,59,130.9093,4.786022 +0.7303484,97,704.4985,5.343819 +0.9404786,43,546.2941,5.50638 +0.9363265,74,825.2387,5.827465 +0.7937029,90,872.1234,5.430884 +0.6887033,72,160.8189,5.087694 +0.8896025,96,720.0252,5.768666 +0.6226318,65,479.5238,4.861916 +0.9318561,21,212.6343,4.969043 +0.6530969,44,196.4965,4.640452 +0.5156705,27,422.6076,3.980209 +0.5506686,44,778.192,4.43762 +0.941927,45,202.6295,5.601233 +0.6978838,48,9.815825,5.319749 +0.7202505,8,944.3096,3.29123 +0.7825415,92,833.0413,5.41958 +0.8102026,31,475.4885,4.719315 +0.704962,3,742.0467,2.110853 +0.868628,49,797.4157,5.234452 +0.662415,36,122.3492,4.517269 +0.5685591,11,841.5693,3.259537 +0.5324882,84,611.4716,4.897254 +0.9195188,45,979.4784,5.395093 +0.924014,24,307.1492,5.000818 +0.7681578,9,254.8762,3.550494 +0.938885,33,967.0505,5.299149 +0.5058739,76,580.4191,4.782108 +0.7195724,42,493.8713,4.724312 +0.6590689,26,844.7261,4.214671 +0.8727227,80,634.8739,5.588596 +0.8332684,74,364.154,5.423553 +0.5644423,15,487.3337,3.548919 +0.5277456,46,305.2887,4.4392 +0.6731391,95,41.32865,5.372164 +0.8058712,32,449.7839,4.73212 +0.7805167,82,459.6353,5.346971 +0.6403517,29,324.7766,4.274653 +0.6894963,50,183.9768,4.814299 +0.840274,56,528.483,5.240915 +0.7802236,81,713.9484,5.329507 +0.6491817,91,183.0804,5.1731 +0.8662118,26,236.4739,4.791629 +0.8121542,56,879.6062,5.150578 +0.9429012,75,153.1888,5.987243 +0.944928,66,743.2445,5.814485 +0.5885454,71,468.0117,4.868063 +0.6490172,97,725.429,5.190661 +0.5939193,24,571.1581,4.022086 +0.5846302,29,702.0651,4.162268 +0.7266355,97,453.0783,5.343648 +0.7995213,35,300.3975,4.791758 +0.8849358,46,862.011,5.251369 +0.7821957,19,512.0406,4.248446 +0.6250475,20,955.2649,3.924167 +0.5438873,29,18.50624,4.206306 +0.6162852,40,191.5103,4.494984 +0.9380071,43,949.3993,5.476223 +0.6859009,82,401.6121,5.148329 +0.867299,43,321.3514,5.159297 +0.5054768,16,301.6068,3.497222 +0.8004985,45,897.7953,4.961837 +0.5992018,50,781.0341,4.620266 +0.7640982,43,68.31587,4.941959 +0.6466677,29,209.8136,4.294416 +0.5161559,100,304.6677,5.002615 +0.7669,24,402.9333,4.401981 +0.6212073,12,879.2709,3.453426 +0.8967,91,814.1106,5.760005 +0.756986,58,258.9546,5.062312 +0.6706516,11,896.8628,3.480077 +0.7702406,14,247.8120,3.964634 +0.9408331,3,59.2535,3.297193 +0.611694,79,157.4412,5.007073 +0.9133146,49,888.8744,5.422573 +0.7713459,60,989.9753,5.094866 +0.782709,8,864.2783,3.469534 +0.8122757,28,791.8693,4.640118 +0.9426235,44,832.2008,5.526677 +0.5151007,39,486.6782,4.283144 +0.9192788,97,80.94583,6.115433 +0.5547035,16,464.9022,3.589676 +0.8503518,58,999.2576,5.286516 +0.6912052,37,2.840297,6.232477 +0.6996373,20,398.5893,4.088258 +0.6826364,12,164.8152,3.605829 +0.7570145,59,136.6271,5.10443 +0.7892998,71,606.7073,5.263065 +0.693803,13,137.5442,3.711556 +0.5734344,42,847.0786,4.439896 +0.5256841,75,807.9073,4.802194 +0.8720609,44,196.4655,5.217903 +0.849763,58,113.6172,5.37946 +0.883915,86,606.7208,5.679039 +0.6986861,45,724.167,4.72818 +0.7730728,85,237.2305,5.375397 +0.6843036,37,881.977,4.547593 +0.8880187,90,652.6476,5.722867 +0.5066843,68,230.6495,4.707207 +0.8091692,37,685.1842,4.844475 +0.5834305,21,865.753,3.885641 +0.7739443,5,774.2294,2.953505 +0.782279,30,254.5893,4.630117 +0.840519,26,279.9131,4.691499 +0.5002118,84,350.2359,4.84983 +0.5737223,22,703.2993,3.908331 +0.6703492,20,616.1641,4.019935 +0.7475401,98,548.261,5.39069 +0.7815499,8,816.3322,3.466209 +0.7417556,23,517.3739,4.300781 +0.8445668,36,822.2591,4.929407 +0.7967811,31,707.4966,4.675692 +0.6796176,28,661.9581,4.318972 +0.8140635,80,911.781,5.402426 +0.6108495,96,245.8480,5.13348 +0.7784848,82,990.4747,5.329618 +0.6128227,6,414.9884,2.724943 +0.7579412,74,153.5898,5.263626 +0.6994303,53,631.9404,4.853168 +0.5234492,78,297.832,4.834109 +0.8478319,59,693.8864,5.295759 +0.6780007,82,653.9778,5.126247 +0.9499825,77,248.3936,6.008599 +0.7981417,17,519.4062,4.201151 +0.7752259,42,311.8138,4.863517 +0.826048,33,864.1303,4.805565 +0.667351,98,974.1075,5.227651 +0.6381593,62,681.9012,4.851483 +0.798938,4,711.222,2.783472 +0.5879505,42,369.4315,4.471059 +0.8196174,54,180.369,5.192559 +0.6100542,90,444.2154,5.076279 +0.6362786,23,233.5411,4.077975 +0.750284,26,116.5786,4.461778 +0.9369969,5,178.8826,3.771926 +0.5257318,9,706.6695,2.969496 +0.7478378,42,643.4664,4.784185 +0.9030148,45,524.4915,5.324933 +0.6976315,19,264.6202,4.045463 +0.9357426,73,645.4213,5.821537 +0.7157091,12,958.8152,3.668812 +0.7272343,13,369.1633,3.777322 +0.5502546,48,959.5066,4.504085 +0.9253864,96,765.634,5.93158 +0.9491976,69,528.1747,5.886513 +0.5999067,35,714.8857,4.343182 +0.6613981,43,778.2886,4.619001 +0.879046,30,112.4804,5.003622 +0.9058213,5,695.0025,3.520497 +0.8086484,19,697.3336,4.321889 +0.9370875,92,947.153,5.967871 +0.8467592,85,885.2863,5.53676 +0.7995316,96,972.5823,5.487207 +0.5848051,35,458.6017,4.318515 +0.7358364,58,597.9595,4.996038 +0.6540596,48,143.7583,4.719058 +0.5006105,81,662.1652,4.82027 +0.8346951,48,14.25703,5.788726 +0.7329782,6,43.70629,3.085010 +0.9066034,2,823.6592,2.375442 +0.7878482,13,906.5229,3.935062 +0.7943929,65,946.3048,5.207958 +0.632154,21,257.8158,3.990246 +0.8313863,47,269.2579,5.108403 +0.5335781,33,642.3327,4.177841 +0.7919937,90,737.0373,5.429159 +0.7023364,84,296.3370,5.204418 +0.8558765,53,630.4518,5.249077 +0.7163529,46,152.1295,4.816822 +0.8768499,33,273.0424,5.009091 +0.8699501,77,859.3091,5.547184 +0.6634953,75,282.3771,5.04935 +0.5972464,3,744.7833,1.820563 +0.5361586,7,933.6834,2.722984 +0.9211899,78,470.3899,5.790909 +0.7581645,23,977.301,4.336052 +0.8797704,57,184.4853,5.438209 +0.7138117,74,2.634701,7.444284 +0.6939382,2,41.70306,1.465464 +0.7119747,36,351.9855,4.594677 +0.809572,22,557.5994,4.4462 +0.6464639,71,906.9329,4.963047 +0.8569028,7,617.3857,3.608468 +0.5721191,61,902.19,4.723571 +0.7498904,45,663.3189,4.840069 +0.6409147,57,531.118,4.796568 +0.7570784,76,460.3876,5.239693 +0.655966,100,186.1752,5.251874 +0.6083228,89,915.9558,5.05899 +0.8398448,35,487.5325,4.901501 +0.5304431,41,517.3377,4.34911 +0.7651443,26,709.3049,4.454686 +0.7308961,66,9.157054,5.800235 +0.6492565,27,835.3336,4.225992 +0.8777307,91,212.3944,5.741262 +0.7739295,81,861.2667,5.312202 +0.8367624,47,515.6989,5.106047 +0.7151403,58,933.0991,4.94759 +0.8882203,46,972.1538,5.263063 +0.828799,27,232.0475,4.688259 +0.8518334,56,420.6314,5.283884 +0.790318,16,171.5772,4.149405 +0.5580039,26,502.0283,4.023696 +0.6352824,22,475.6875,4.030243 +0.8705968,29,851.155,4.861 +0.6465768,33,538.81,4.386032 +0.7590183,69,73.19668,5.279012 +0.6525166,3,888.6056,1.963260 +0.7502,67,678.8216,5.12912 +0.5088592,89,461.3315,4.903761 +0.7982266,76,366.1689,5.344668 +0.6969608,66,241.728,5.02676 +0.6023179,78,363.5392,4.963039 +0.6775685,40,714.0139,4.595814 +0.66376,7,908.377,3.011174 +0.8134477,16,708.8301,4.193725 +0.5391178,46,835.6779,4.452678 +0.8838125,15,159.1018,4.443479 +0.672796,93,961.0114,5.201217 +0.5799419,50,484.976,4.589876 +0.5265862,41,490.8695,4.342801 +0.7029529,64,386.5903,5.005399 +0.9227982,85,515.2134,5.851962 +0.7224784,87,964.932,5.249543 +0.7436994,23,694.6903,4.30269 +0.5867254,76,376.4596,4.91713 +0.920802,42,540.3073,5.36702 +0.9338496,64,748.9049,5.719828 +0.838145,37,289.8473,4.951242 +0.5418479,91,779.7418,4.968562 +0.7017749,25,780.5221,4.27309 +0.5447994,43,683.9666,4.410061 +0.871518,51,778.878,5.273395 +0.8858706,40,121.4736,5.244512 +0.5150946,91,202.8316,4.937838 +0.6716517,84,745.3948,5.130122 +0.7249413,9,340.9548,3.426074 +0.7069959,61,733.6144,4.969756 +0.9488083,68,720.232,5.863705 +0.615935,17,160.8070,3.77786 +0.7771524,10,561.6105,3.66843 +0.6106939,75,556.1777,4.944092 +0.6134752,24,374.4686,4.062762 +0.5894027,51,207.9282,4.632573 +0.8338988,49,547.5659,5.125847 +0.7043978,22,531.6043,4.17634 +0.7000624,42,531.8091,4.681899 +0.6362798,6,823.059,2.778423 +0.7907857,89,825.5564,5.416972 +0.9223966,58,656.838,5.590938 +0.7182263,84,915.3776,5.217181 +0.86109,81,997.8343,5.548408 +0.8848985,89,869.6922,5.697209 +0.651742,22,614.38,4.062032 +0.6605856,3,98.09387,1.994872 +0.882514,63,711.0102,5.462032 +0.7547409,29,689.7354,4.515432 +0.9344155,10,400.5296,4.366817 +0.8368518,60,859.1815,5.270026 +0.7531741,56,901.1335,5.004396 +0.755553,9,359.4564,3.509542 +0.5549631,38,47.68359,4.383727 +0.9452977,2,460.798,2.723966 +0.7122327,55,485.7671,4.910092 +0.8996243,27,993.7618,4.929864 +0.7124914,43,538.1343,4.725792 +0.660462,99,233.3052,5.245786 +0.9464191,54,778.8559,5.693103 +0.8299546,74,141.3385,5.46646 +0.8861815,93,564.7782,5.741055 +0.5689354,11,962.0052,3.260038 +0.5572705,4,974.416,2.109944 +0.7668345,75,828.1217,5.243156 +0.7570055,26,791.2877,4.433298 +0.8012525,50,338.7716,5.058115 +0.6085329,61,566.1486,4.788552 +0.7073712,23,921.3009,4.216015 +0.613116,99,362.8237,5.151726 +0.8869052,28,692.1336,4.904267 +0.693029,29,395.8174,4.380828 +0.8763198,16,419.0561,4.430672 +0.6236438,13,929.845,3.533911 +0.631617,99,172.1357,5.202372 +0.8453343,29,491.5275,4.778079 +0.7733883,46,643.9964,4.912519 +0.8837153,93,751.4323,5.724347 +0.5842343,8,245.8035,2.974394 +0.7813733,56,967.567,5.070012 +0.7918319,86,426.1061,5.409196 +0.5988063,89,374.8896,5.051499 +0.8410293,7,502.7104,3.545143 +0.7985893,44,518.6063,4.94787 +0.8933352,77,730.5682,5.6391 +0.5008204,19,263.4858,3.647075 +0.7042678,68,759.1042,5.042159 +0.5722501,47,515.0346,4.528346 +0.6796555,73,455.8959,5.05149 +0.826039,84,33.03012,5.8104 +0.7891293,33,519.956,4.706889 +0.6771388,83,646.286,5.133324 +0.7841508,5,513.7669,2.988859 +0.8459404,6,305.2934,3.416229 +0.8240553,7,432.4855,3.481931 +0.6144259,22,963.728,3.985171 +0.793283,22,23.60787,4.664766 +0.7154832,80,681.36,5.180846 +0.9356364,98,61.58024,6.31134 +0.6426233,21,114.6117,4.029196 +0.7534234,5,194.0182,2.898595 +0.6921663,53,686.5312,4.837731 +0.612162,76,666.1722,4.954618 +0.653742,59,619.762,4.844223 +0.63553,59,731.1882,4.809578 +0.6200705,89,378.8527,5.087704 +0.6739772,18,445.6196,3.939308 +0.9462715,68,524.3853,5.854955 +0.7380447,41,375.4509,4.751645 +0.523857,78,851.987,4.827968 +0.5059004,81,653.6981,4.828579 +0.7512636,98,220.7087,5.42606 +0.6992854,16,132.8526,3.914488 +0.8227314,72,30.54506,5.703733 +0.9484554,86,735.9275,6.009947 +0.6075916,30,535.5072,4.234346 +0.8852776,38,952.3645,5.115993 +0.5918882,6,400.8994,2.676709 +0.6517169,8,804.8244,3.121701 +0.6898073,77,688.0591,5.103501 +0.9030026,67,11.96135,6.805333 +0.7437836,28,699.2324,4.461164 +0.875612,18,962.0697,4.511439 +0.5997572,86,864.9031,5.020716 +0.7092418,23,309.4445,4.230975 +0.6523984,83,734.0368,5.086989 +0.5312756,4,851.336,2.050064 +0.6282366,20,929.0183,3.93066 +0.5370415,23,451.2979,3.880654 +0.8735109,63,350.2037,5.448246 +0.8351599,24,859.1465,4.59044 +0.9494263,72,211.5009,5.974775 +0.6140805,16,844.5632,3.705149 +0.7450794,4,714.8403,2.603754 +0.7300385,70,851.1554,5.114127 +0.5096593,78,938.8038,4.805399 +0.8180738,76,614.2184,5.384708 +0.7153642,97,572.9604,5.316716 +0.8078966,7,338.2535,3.42692 +0.6904116,91,286.7615,5.237953 +0.8160172,70,553.6183,5.324621 +0.6299202,51,455.703,4.694567 +0.7084219,4,257.4866,2.499209 +0.9497703,50,348.7214,5.697982 +0.8508624,78,645.7308,5.497724 +0.6742178,82,677.2921,5.118834 +0.8821952,94,356.1011,5.74971 +0.5468056,2,705.1514,1.061390 +0.6789854,45,410.6719,4.69475 +0.8280198,79,810.9767,5.433856 +0.6221906,86,539.6919,5.062418 +0.8026975,15,852.9501,4.104213 +0.8222019,21,824.7458,4.443411 +0.5803124,37,138.2354,4.371959 +0.6882381,48,926.1536,4.753676 +0.8179348,66,203.1527,5.324453 +0.5960629,43,262.2780,4.508414 +0.6974869,88,196.3518,5.240979 +0.823517,91,940.689,5.514238 +0.8117326,13,280.8571,4.022421 +0.9262007,64,178.3617,5.74963 +0.678415,15,464.139,3.78771 +0.806295,18,643.1348,4.27097 +0.6671483,35,754.7018,4.470686 +0.6650073,14,21.80781,3.833526 +0.5473471,40,56.81366,4.401174 +0.9026884,52,113.4952,5.524751 +0.799699,58,557.2425,5.148982 +0.6020433,59,817.6421,4.749881 +0.7945232,47,44.2495,5.16844 +0.9197076,74,211.6517,5.794805 +0.859864,54,580.0636,5.277453 +0.7954953,68,945.6234,5.242217 +0.6905937,86,716.3957,5.182364 +0.6441292,74,974.002,4.988236 +0.5752189,16,88.31872,3.650503 +0.7610879,100,405.8932,5.440726 +0.7511553,49,522.1999,4.90919 +0.8332004,35,975.6917,4.870302 +0.7003797,94,765.2736,5.262087 +0.5723759,36,250.6977,4.324629 +0.6185644,29,946.417,4.224327 +0.8220523,19,398.2014,4.371275 +0.8655022,88,16.47093,6.414553 +0.903933,34,975.2979,5.118896 +0.6888455,27,885.4896,4.307053 +0.8945567,50,805.753,5.350675 +0.6323121,54,180.8512,4.758951 +0.5020541,89,814.6319,4.890543 +0.9150541,54,356.8162,5.524083 +0.8965727,76,253.6532,5.685681 +0.6544637,24,615.9503,4.140782 +0.6635601,41,573.3519,4.589051 +0.6201682,46,998.2747,4.592474 +0.8774226,67,135.0859,5.569834 +0.890321,35,201.3599,5.125744 +0.9028605,30,676.057,5.028651 +0.7226537,96,9.642385,6.045286 +0.8471953,3,809.2317,2.622658 +0.8198636,89,693.7546,5.494297 +0.6348555,43,912.2159,4.567892 +0.6425137,75,606.9982,4.998836 +0.873109,75,309.51,5.571157 +0.5760752,33,224.8230,4.262233 +0.7945425,30,828.5185,4.642699 +0.8734823,23,934.1412,4.695301 +0.8686912,61,513.1925,5.395958 +0.6471778,44,937.891,4.608398 +0.5882846,29,724.5066,4.168854 +0.942896,29,366.4086,5.262554 +0.5419351,3,237.3975,1.688196 +0.7674567,2,77.04476,1.701728 +0.8917366,74,66.67197,5.815672 +0.6472711,97,597.1157,5.189636 +0.8479221,21,807.45,4.529399 +0.5589803,43,80.83193,4.467882 +0.5077531,37,732.3927,4.226506 +0.7923223,50,849.2879,5.017456 +0.670393,84,831.423,5.126814 +0.7826879,75,302.5934,5.302287 +0.9387543,94,401.9712,6.022296 +0.8283552,65,534.5723,5.30889 +0.7227295,49,63.70136,4.94129 +0.5687914,34,455.7122,4.266248 +0.5752718,73,98.7667,4.898616 +0.88616,3,302.6824,2.828999 +0.6065566,78,693.4897,4.963533 +0.9167606,89,568.2099,5.8468 +0.6724503,5,574.031,2.663222 +0.784313,83,235.2819,5.386913 +0.940857,31,414.4548,5.290129 +0.9325461,21,901.5054,4.929178 +0.6883665,36,742.762,4.53579 +0.9292036,61,757.2979,5.659778 +0.9008816,96,76.9742,6.01577 +0.761467,48,742.2594,4.913388 +0.8365658,18,440.6055,4.373552 +0.6552103,64,556.7721,4.907782 +0.8254065,34,223.5664,4.856578 +0.8217355,94,426.2313,5.547764 +0.8287026,66,565.9248,5.319255 +0.7975493,62,454.1757,5.194802 +0.6771793,98,812.32,5.246957 +0.6177541,60,35.37344,4.911115 +0.79438,33,936.6395,4.71411 +0.6183924,60,960.2377,4.789908 +0.8887941,93,403.5623,5.763103 +0.7753973,24,56.94756,4.521837 +0.6653419,33,43.18045,4.522211 +0.8109106,48,550.3599,5.043916 +0.613164,39,613.6455,4.454258 +0.9059224,96,93.82517,6.002161 +0.8163602,62,753.2386,5.235758 +0.7707746,66,330.8447,5.180342 +0.5982049,30,835.1149,4.214452 +0.872359,22,767.238,4.658577 +0.84028,65,577.014,5.342823 +0.826224,92,556.121,5.538669 +0.6703941,45,160.551,4.69885 +0.8316669,41,568.3738,4.989419 +0.672689,88,603.938,5.167016 +0.584872,45,537.5861,4.516311 +0.6643863,80,971.6719,5.080185 +0.719142,69,552.564,5.086569 +0.8751901,66,19.89127,6.10715 +0.6868238,12,614.6998,3.60127 +0.891284,10,336.6336,4.105752 +0.7381764,63,855.624,5.056398 +0.6877144,40,834.2985,4.61508 +0.8837561,100,155.7344,5.855813 +0.7723711,50,92.417,5.050388 +0.7447593,38,89.42705,4.768572 +0.8722185,44,412.1780,5.186088 +0.5126045,33,58.81312,4.172292 +0.6937582,85,587.4888,5.182627 +0.7911117,22,194.6301,4.415096 +0.5921802,31,24.67419,4.352036 +0.5053348,33,938.2297,4.127942 +0.8214973,89,376.6808,5.514248 +0.7951828,18,93.5989,4.294712 +0.6450288,86,64.36293,5.183766 +0.8471788,39,480.3094,5.005853 +0.5958538,18,899.7957,3.774029 +0.9010773,94,338.4129,5.829971 +0.6502918,91,432.7548,5.154538 +0.5670526,37,415.3917,4.332074 +0.9350157,40,645.5472,5.414702 +0.9044,14,99.43052,4.524826 +0.8317929,39,303.3309,4.968462 +0.6933141,21,939.7346,4.108837 +0.845593,30,813.2998,4.797022 +0.7186427,16,188.2066,3.952521 +0.859615,24,155.5391,4.723889 +0.7278887,22,52.30448,4.31952 +0.7061932,83,761.9076,5.186903 +0.9022402,64,824.017,5.551911 +0.6490087,66,217.7326,4.93539 +0.6943846,36,516.58,4.551637 +0.5684814,26,286.0778,4.047090 +0.6554544,18,448.8217,3.899225 +0.795269,35,839.412,4.762103 +0.6238327,24,757.4391,4.078363 +0.550766,30,447.5801,4.131244 +0.8800597,2,410.1339,2.203728 +0.6440965,28,63.0589,4.304735 +0.9043739,22,208.8758,4.840424 +0.6648802,53,571.521,4.786388 +0.5320439,20,588.0347,3.747539 +0.6128809,55,149.5538,4.741544 +0.5747402,66,978.2475,4.786235 +0.80501,14,784.1936,4.052608 +0.8099135,50,652.5404,5.067729 +0.7363827,31,749.4184,4.523436 +0.6852816,3,659.303,2.054130 +0.7694083,78,255.168,5.303633 +0.8575165,30,626.4122,4.842038 +0.7631899,27,940.2408,4.4774 +0.8203281,20,645.0849,4.400649 +0.6073138,40,473.9538,4.465438 +0.8104157,69,324.3091,5.313832 +0.7241617,4,471.6251,2.541906 +0.8205727,60,901.444,5.222101 +0.9149799,19,811.2267,4.746086 +0.835535,84,701.7006,5.499324 +0.7527543,44,242.7408,4.850217 +0.6686033,40,773.8855,4.577449 +0.9312872,47,190.7668,5.56208 +0.9144552,24,263.1231,4.950928 +0.8733462,47,566.8382,5.228998 +0.5232224,36,412.0128,4.233111 +0.718345,76,351.4148,5.16206 +0.9048545,86,630.1111,5.764843 +0.5196135,16,225.0018,3.526032 +0.7626791,99,791.2467,5.4246 +0.9192357,20,362.8843,4.827192 +0.7492633,94,650.9407,5.363063 +0.8498713,36,704.8396,4.949172 +0.9369925,27,874.8804,5.144813 +0.5837224,69,712.8748,4.83564 +0.7980785,21,88.03727,4.439118 +0.8667148,44,538.502,5.158677 +0.6073327,29,183.8453,4.218646 +0.7684573,90,986.2768,5.370184 +0.6936724,33,581.2125,4.480758 +0.687191,79,669.1087,5.116968 +0.8340377,99,903.1325,5.600063 +0.6832922,53,18.68955,5.108172 +0.5332718,13,806.5033,3.351198 +0.5237699,4,241.6940,2.035217 +0.9088265,97,84.6489,6.045124 +0.8294818,21,586.6442,4.470498 +0.791115,50,282.425,5.036552 +0.91856,95,725.4959,5.890514 +0.7135054,55,753.2236,4.907396 +0.860862,65,102.1001,5.515011 +0.84523,54,972.6275,5.220716 +0.8560852,74,754.1516,5.475962 +0.7238725,20,874.4928,4.13784 +0.9034313,16,194.8503,4.585412 +0.7031215,54,115.2008,4.9226 +0.7868186,17,274.4223,4.178258 +0.7080042,99,931.5809,5.310344 +0.582401,66,842.4972,4.799686 +0.9021958,53,930.0976,5.422111 +0.6511199,13,567.0518,3.595049 +0.8124542,90,259.2000,5.511839 +0.934324,66,273.5482,5.78612 +0.7660926,76,925.8054,5.249383 +0.748764,56,26.35096,5.274348 +0.7552357,89,102.7598,5.418272 +0.9286532,27,123.1344,5.182816 +0.7288266,2,328.6701,1.558771 +0.5496063,48,543.8712,4.505532 +0.7565857,88,985.629,5.328539 +0.5106877,35,381.159,4.188819 +0.7752931,36,442.6338,4.739741 +0.7177923,33,98.16995,4.583176 +0.7972243,10,377.3643,3.733916 +0.9295137,91,103.3631,6.085717 +0.7990287,68,939.0697,5.251259 +0.75437,67,721.0245,5.137621 +0.7973704,25,326.4377,4.52186 +0.6784953,44,958.7787,4.668511 +0.6956036,28,483.9274,4.355713 +0.659538,96,855.451,5.200489 +0.944546,31,637.6513,5.305119 +0.8469256,34,975.7063,4.893041 +0.6674808,49,435.8748,4.735723 +0.936232,20,52.79911,5.141708 +0.7975782,81,159.8681,5.42625 +0.903022,28,861.7582,4.974912 +0.8505326,35,125.4830,4.997666 +0.6403539,54,775.8325,4.751972 +0.8043825,29,409.8449,4.653847 +0.5183124,16,839.732,3.518277 +0.6213446,22,726.9033,3.99988 +0.5936926,37,32.76075,4.474718 +0.809751,64,986.4935,5.236491 +0.94077,53,544.5571,5.649796 +0.6905449,97,811.6854,5.264553 +0.7754784,19,389.0463,4.233604 +0.6515826,21,845.3145,4.020459 +0.8438344,94,511.9097,5.606381 +0.6452673,84,667.1204,5.083721 +0.849467,44,324.1082,5.112301 +0.7666643,28,291.3787,4.530994 +0.8586009,22,708.908,4.606299 +0.9265102,15,175.7067,4.677897 +0.5242165,59,7.200673,4.92003 +0.5045844,79,930.6226,4.806901 +0.7911816,76,301.5211,5.332991 +0.9307524,57,860.0465,5.621265 +0.8383404,37,672.318,4.932198 +0.8236633,34,770.2948,4.822038 +0.763047,99,153.1683,5.480739 +0.6548154,65,926.9123,4.913963 +0.7707323,17,527.2263,4.123076 +0.8738404,61,301.1623,5.433622 +0.8657663,48,554.2702,5.216425 +0.6843261,94,947.1752,5.229856 +0.6344909,62,841.2254,4.843361 +0.8845142,23,681.4296,4.745308 +0.8838358,36,498.6873,5.082622 +0.9302862,56,39.67869,6.015003 +0.8695975,51,255.0341,5.299941 +0.9011584,3,704.5094,2.914552 +0.6071735,24,272.4455,4.053728 +0.5175375,67,5.328416,5.096529 +0.5891973,3,210.3449,1.803305 +0.5194459,34,179.9309,4.186702 +0.6079837,87,952.0759,5.042047 +0.7140844,81,408.8203,5.194953 +0.8013718,68,190.4623,5.302434 +0.6591662,100,340.2262,5.240922 +0.6670773,12,331.8724,3.559844 +0.9341007,58,957.1275,5.651292 +0.723373,63,932.6138,5.024305 +0.5604985,59,224.9405,4.691283 +0.6705802,22,879.1055,4.099297 +0.7786912,75,271.8816,5.29626 +0.6685635,39,810.294,4.55748 +0.6490457,99,592.4233,5.207065 +0.6931737,6,418.268,2.922958 +0.8710123,31,718.8835,4.914593 +0.5736931,61,229.3061,4.739087 +0.6210157,25,266.6708,4.115779 +0.8493002,81,67.53119,5.693514 +0.7759961,77,213.7897,5.318234 +0.9185508,71,282.1866,5.739998 +0.8265519,63,476.959,5.284545 +0.6687311,37,717.4073,4.517729 +0.6494729,44,908.6333,4.612895 +0.6121188,49,703.1177,4.628304 +0.816316,40,418.4573,4.931516 +0.7798099,96,142.9824,5.505915 +0.586697,41,549.3181,4.446578 +0.7764464,83,647.4829,5.338891 +0.6998719,31,659.3081,4.443376 +0.7472036,65,694.0377,5.100702 +0.703049,69,89.38273,5.122236 +0.703443,6,842.3088,2.947383 +0.5989944,20,546.0432,3.875062 +0.7512451,14,663.2664,3.900565 +0.5872646,12,212.4875,3.389856 +0.949173,20,168.1584,5.08552 +0.9155182,25,239.3825,4.992388 +0.5755633,51,90.36437,4.630002 +0.5876624,7,960.5489,2.834894 +0.7044702,68,543.0481,5.046567 +0.79438,30,52.91661,4.776874 +0.7362505,42,945.8348,4.754237 +0.7126581,24,443.559,4.268968 +0.787679,25,648.4927,4.48379 +0.7151991,13,409.3209,3.746174 +0.8669045,95,523.904,5.687001 +0.7202985,54,207.1601,4.933934 +0.7311327,91,113.9181,5.367735 +0.6618435,59,377.5652,4.865612 +0.9116986,72,495.8482,5.687799 +0.7557157,12,567.5894,3.775468 +0.9163235,57,713.0014,5.544914 +0.8607126,20,925.3333,4.536246 +0.9231666,88,805.9913,5.862893 +0.6026225,75,581.2631,4.929917 +0.8698394,12,428.8574,4.160611 +0.6368494,11,272.8854,3.410454 +0.7667054,61,836.1898,5.097482 +0.8000152,97,106.0452,5.59455 +0.672968,73,419.9799,5.040077 +0.7445197,21,292.8912,4.240783 +0.6600486,20,419.2918,4.000971 +0.9095673,11,770.5601,4.273962 +0.6372859,29,931.7848,4.260334 +0.7531992,49,307.2706,4.924747 +0.8082588,93,104.2067,5.590879 +0.801224,59,699.5637,5.161321 +0.8842195,63,245.3876,5.507366 +0.8049434,29,661.9891,4.648005 +0.7825961,100,809.3402,5.476277 +0.888974,23,292.7039,4.785021 +0.7712366,64,203.9149,5.177267 +0.9101844,93,789.2389,5.834102 +0.5827066,16,736.1206,3.642731 +0.7353298,50,545.3903,4.887766 +0.9000253,29,878.5962,4.986079 +0.5437368,40,302.523,4.356087 +0.8315908,96,929.6324,5.572368 +0.8205049,52,953.6965,5.12034 +0.6426717,16,342.5943,3.769862 +0.5522754,46,775.7081,4.475167 +0.8128539,74,26.48869,5.734373 +0.5600869,20,573.3304,3.800104 +0.5674171,55,762.024,4.638407 +0.537677,28,997.0594,4.047145 +0.5726309,37,957.9053,4.337529 +0.7954047,66,127.4570,5.291504 +0.7471518,61,324.2084,5.069361 +0.5223553,32,951.6902,4.131766 +0.7520169,41,74.86224,4.862345 +0.7027413,11,484.6241,3.559348 +0.7187845,61,725.0286,4.993993 +0.7299217,16,873.775,3.961720 +0.7115777,4,604.7973,2.504418 +0.9172477,38,439.2534,5.283334 +0.6639819,89,337.2648,5.168281 +0.8368359,63,611.6161,5.30952 +0.7896925,94,298.3923,5.476009 +0.8271702,44,666.0247,5.024567 +0.8040352,44,843.4855,4.955639 +0.949263,7,389.1023,4.184174 +0.8328376,85,646.6266,5.501056 +0.526783,100,325.3328,5.018803 +0.6688105,77,836.735,5.06227 +0.8282477,67,108.7778,5.415125 +0.7113153,9,856.2697,3.385048 +0.589003,20,91.5303,3.880131 +0.7194362,14,611.8864,3.820276 +0.7537761,56,591.2144,5.010757 +0.6846757,99,320.4645,5.282772 +0.8769688,38,910.5023,5.083227 +0.7869178,90,830.2127,5.415139 +0.807645,26,61.79666,4.682424 +0.9448865,18,321.8201,4.930096 +0.7294469,49,573.7421,4.859254 +0.9085438,27,658.597,4.980016 +0.9300719,42,317.518,5.442027 +0.5834533,3,827.8777,1.786282 +0.6734082,82,171.4136,5.147934 +0.7569421,51,123.9995,5.002314 +0.7239631,76,233.7967,5.185775 +0.6186872,47,424.2941,4.61253 +0.6766206,44,508.0513,4.670198 +0.932699,90,275.5164,5.979196 +0.6464799,84,803.1497,5.084213 +0.9442864,16,521.2168,4.819767 +0.7918385,42,154.5967,4.935284 +0.7414237,35,819.7154,4.628522 +0.6115499,43,488.3118,4.529439 +0.8058953,40,515.7696,4.897627 +0.614234,59,903.9223,4.770477 +0.9121058,10,464.811,4.213932 +0.8476603,79,582.6491,5.498521 +0.7929727,77,169.8307,5.374357 +0.6338905,7,485.1146,2.94188 +0.7834596,30,327.6489,4.626784 +0.8774419,17,442.962,4.483792 +0.5609554,32,68.48343,4.237052 +0.7647811,68,827.2835,5.169981 +0.832964,23,5.440919,5.976688 +0.5741506,26,547.8397,4.052964 +0.9304252,17,468.5578,4.765566 +0.68403,28,184.1941,4.347467 +0.8176484,32,766.89,4.758464 +0.9411109,59,779.2206,5.713063 +0.926516,84,836.5033,5.850456 +0.8412952,78,932.087,5.461819 +0.6364015,99,162.6142,5.213254 +0.7070626,89,175.7054,5.273428 +0.6629175,76,40.89244,5.182355 +0.9395931,56,864.6944,5.665923 +0.8185325,98,199.7678,5.601049 +0.8494492,2,715.3348,2.035239 +0.8009258,81,434.5775,5.390702 +0.6815484,13,673.4679,3.662592 +0.80715,99,144.2072,5.599653 +0.6203594,100,943.6284,5.160893 +0.9240174,8,951.9496,4.08529 +0.8159787,65,519.9843,5.274393 +0.5230194,12,905.3269,3.253303 +0.7412851,52,267.3375,4.944869 +0.8801484,85,647.5159,5.655434 +0.802909,57,781.1324,5.139793 +0.8999761,9,456.1147,4.052302 +0.8341594,10,5.503232,4.891732 +0.8345882,67,930.7735,5.338458 +0.7542815,50,129.2632,4.978182 +0.7412981,23,855.8213,4.295311 +0.9113762,38,889.0846,5.236185 +0.8416925,29,982.5072,4.756377 +0.5095571,82,905.1603,4.842070 +0.9491786,4,917.2897,3.631085 +0.8049138,63,970.9605,5.212878 +0.6334493,6,736.2926,2.771905 +0.8973752,100,631.2114,5.829958 +0.5115773,7,521.9071,2.671702 +0.7581456,73,83.04014,5.304008 +0.7434194,84,267.1309,5.294006 +0.7207906,74,704.4638,5.136362 +0.9040117,8,47.05634,4.098636 +0.6233847,99,815.7837,5.159965 +0.7571528,90,298.5627,5.368868 +0.7701096,14,493.4289,3.954212 +0.6898053,44,472.0429,4.697632 +0.6360893,97,800.1676,5.167418 +0.8561774,36,21.78472,5.422449 +0.5753474,3,428.5272,1.767289 +0.9458913,41,28.3417,6.084906 +0.6731936,92,64.30473,5.294787 +0.8784051,40,304.3885,5.152199 +0.6835589,12,757.9798,3.592619 +0.7425327,83,284.7888,5.281525 +0.5474802,43,565.8282,4.415549 +0.679627,18,61.24071,4.006403 +0.6870299,89,382.3318,5.209086 +0.6341744,67,603.614,4.902287 +0.9344777,56,755.1912,5.63539 +0.8766567,45,511.7271,5.213287 +0.6304936,7,695.3798,2.932777 +0.6135839,38,197.7654,4.448517 +0.5532043,11,73.55859,3.248804 +0.9467684,81,424.0672,5.980747 +0.7369565,18,801.3018,4.080849 +0.8355981,45,249.5172,5.093117 +0.6856068,45,969.7303,4.699566 +0.7299538,98,466.1102,5.356919 +0.875668,44,958.7983,5.182152 +0.8005378,79,956.557,5.358165 +0.513656,88,766.3824,4.900481 +0.725377,62,531.5351,5.023478 +0.845314,12,201.7055,4.078737 +0.9495224,2,585.7786,2.771761 +0.7933197,64,651.044,5.199389 +0.535197,9,945.569,2.988493 +0.5272532,4,170.3757,2.044560 +0.6848626,100,69.06699,5.373987 +0.6996583,15,376.6187,3.838532 +0.888774,54,949.0652,5.376733 +0.5558322,15,641.6645,3.531028 +0.6628907,48,285.8969,4.717985 +0.7657242,43,421.0658,4.850639 +0.569207,28,54.71352,4.151142 +0.9085392,17,229.6301,4.654862 +0.5070748,64,13.36672,4.802679 +0.61338,40,504.4076,4.476023 +0.8674259,67,317.9034,5.472228 +0.616898,58,124.3922,4.795652 +0.7760441,72,511.691,5.243743 +0.744249,49,410.2558,4.897526 +0.5424169,40,275.7656,4.354667 +0.9030827,70,471.7542,5.630173 +0.9166235,43,743.5866,5.353063 +0.6056715,24,951.203,4.042294 +0.6035406,50,904.2237,4.627114 +0.8029719,27,449.0773,4.592429 +0.7518686,77,868.1552,5.227454 +0.8557797,13,260.3399,4.182154 +0.8567424,70,330.3319,5.463428 +0.9108702,96,134.5617,5.970751 +0.8152673,70,468.8401,5.326343 +0.511748,8,144.1443,2.822673 +0.7473972,98,741.933,5.385549 +0.6116945,33,651.738,4.318166 +0.7951198,99,863.7611,5.498526 +0.6094803,70,518.7182,4.892452 +0.6264041,91,783.8267,5.106219 +0.5996085,38,81.17409,4.448564 +0.6727878,39,768.5118,4.566196 +0.9323841,9,7.531608,5.509384 +0.6817553,18,528.9048,3.955063 +0.5344935,17,440.8971,3.606659 +0.8520906,66,498.9145,5.394094 +0.7163306,87,35.37812,5.448221 +0.5705777,10,80.44106,3.188661 +0.8051647,3,193.439,2.453639 +0.5721151,55,154.0183,4.66567 +0.6572475,72,965.465,4.992097 +0.910285,63,813.4502,5.579033 +0.9048497,9,219.7808,4.096486 +0.7566543,6,747.506,3.097807 +0.7815772,22,683.9203,4.36401 +0.5786503,50,369.4688,4.59009 +0.7074791,12,192.057,3.663563 +0.6707687,5,195.6387,2.664786 +0.6535881,74,599.2874,5.009229 +0.9449619,73,454.6559,5.897153 +0.5999044,66,80.468,4.879648 +0.9103132,3,745.8394,2.975553 +0.798354,82,620.4156,5.384614 +0.7068981,63,534.5147,4.996694 +0.7926765,97,170.8177,5.533752 +0.5030747,66,276.78,4.676993 +0.6412308,91,198.3963,5.155648 +0.5837347,28,12.83706,4.340776 +0.6307461,77,501.6002,4.999005 +0.5892319,22,613.943,3.938322 +0.9173725,82,327.6299,5.820418 +0.8466205,52,964.144,5.198747 +0.7778326,20,118.1721,4.318618 +0.6377339,39,145.3060,4.52407 +0.8973141,53,65.21878,5.603597 +0.680635,95,961.3994,5.230268 +0.802825,70,272.1754,5.309848 +0.7659804,79,673.3793,5.280033 +0.8782393,26,629.0036,4.813546 +0.8774979,9,139.6891,3.970449 +0.525396,43,253.7263,4.383524 +0.8223621,89,773.2267,5.499203 +0.681816,15,451.6343,3.795628 +0.9253184,59,524.5041,5.625282 +0.534124,3,580.5324,1.668108 +0.7524038,24,900.835,4.356676 +0.8326032,81,585.9235,5.469971 +0.8192468,59,568.3666,5.213842 +0.604393,44,288.0690,4.540236 +0.5586066,12,147.7344,3.334218 +0.8883083,73,995.3096,5.577656 +0.6432519,61,561.362,4.850509 +0.5102173,65,972.368,4.670415 +0.7003389,16,957.4265,3.890828 +0.5521129,11,4.547047,3.579797 +0.59708,31,140.4593,4.259507 +0.8134452,29,902.408,4.669319 +0.9260697,59,51.65915,5.924638 +0.8265399,16,547.1571,4.238842 +0.832042,17,312.8203,4.31748 +0.6216659,61,817.8548,4.808829 +0.7283849,92,389.5894,5.314127 +0.5672065,11,610.8746,3.257575 +0.5323523,44,361.2781,4.410664 +0.59117,55,655.6214,4.679735 +0.6095431,19,307.1752,3.855151 +0.6091849,51,227.8409,4.666844 +0.7753224,78,517.2963,5.297495 +0.7268435,83,747.4984,5.22845 +0.730585,72,890.9116,5.134721 +0.6442031,8,887.0963,3.103915 +0.8302386,72,521.1991,5.385542 +0.7942507,67,324.7722,5.250096 +0.5806502,20,278.2976,3.844107 +0.8981183,13,968.5417,4.350224 +0.5357593,27,599.0527,4.0146 +0.7095182,34,629.3844,4.537233 +0.9377532,42,526.5726,5.472395 +0.7851188,86,644.761,5.383838 +0.7201651,86,630.1342,5.241761 +0.9102288,83,621.2721,5.766953 +0.6411688,68,830.1142,4.922934 +0.6090806,15,180.3769,3.647734 +0.5787879,36,718.225,4.327657 +0.814151,100,408.9423,5.569888 +0.6659953,86,37.7504,5.29409 +0.7499388,33,212.7551,4.626876 +0.8165642,69,474.2051,5.319668 +0.7661147,22,176.09,4.34867 +0.7600815,72,879.7484,5.198689 +0.5405304,20,170.2612,3.771913 +0.8303233,39,62.11989,5.087436 +0.5649674,54,939.8396,4.619411 +0.5468609,19,890.826,3.728276 +0.5018868,20,172.1611,3.698457 +0.5700143,57,62.23176,4.722349 +0.5904414,29,332.7185,4.178141 +0.6844848,44,537.8669,4.685287 +0.8536574,32,840.1896,4.872602 +0.6186735,82,923.3346,5.018009 +0.6855065,93,374.6255,5.237324 +0.9478164,43,546.3272,5.561435 +0.9324406,18,441.5948,4.825239 +0.6415473,32,767.5264,4.349149 +0.8552597,68,165.8796,5.477813 +0.9283917,62,763.6844,5.665571 +0.5535796,10,278.4392,3.137836 +0.7494807,64,396.153,5.104272 +0.7287479,23,147.1992,4.295707 +0.8010544,7,249.5940,3.407520 +0.7245908,52,658.1033,4.890957 +0.5780999,8,736.3381,2.956657 +0.8479071,13,535.5617,4.138403 +0.910282,88,706.6015,5.801665 +0.8260243,44,5.778081,6.569068 +0.7756616,12,68.24743,3.89199 +0.6779172,29,865.7203,4.34203 +0.7121331,60,51.67999,5.094517 +0.7587412,53,351.5271,4.992108 +0.7138279,6,622.5837,2.976316 +0.936066,61,493.9761,5.71497 +0.8927102,6,980.146,3.625845 +0.6222097,66,180.9405,4.890236 +0.7076899,93,746.9903,5.269072 +0.5555804,37,640.2992,4.309252 +0.7877178,36,777.8668,4.764064 +0.5842511,62,164.657,4.776821 +0.7328623,93,816.8986,5.318279 +0.6259894,52,479.0156,4.701554 +0.7226905,10,468.7935,3.519339 +0.5265653,19,997.8564,3.690211 +0.7318997,64,207.9046,5.084091 +0.9192412,69,667.0859,5.68892 +0.6231767,50,43.20987,4.759639 +0.6972005,80,845.1849,5.142585 +0.7779439,85,932.2534,5.353608 +0.9107332,100,582.1592,5.891565 +0.5050257,84,446.7605,4.855801 +0.637655,47,47.76077,4.734205 +0.785115,35,964.5286,4.73395 +0.690956,54,62.90913,4.940018 +0.719769,35,634.1213,4.582082 +0.5616795,56,915.7953,4.641653 +0.7737041,3,910.5499,2.330052 +0.8643882,91,65.94819,5.842094 +0.561113,19,13.89679,3.905443 +0.9246243,97,84.66878,6.138777 +0.8416577,64,208.3890,5.37398 +0.8823102,83,392.9894,5.663599 +0.816154,2,264.6879,1.884422 +0.6025324,62,199.5932,4.80521 +0.6947627,64,531.0227,4.983875 +0.6520982,2,38.59697,1.343845 +0.878029,87,501.3924,5.669977 +0.528619,6,922.9151,2.534323 +0.8532033,32,661.1688,4.874277 +0.5825841,85,19.02259,5.179472 +0.6906217,45,412.6579,4.718226 +0.668097,19,51.25001,4.03855 +0.8786804,92,948.0557,5.694116 +0.8551716,39,424.7596,5.036045 +0.8539307,28,756.1924,4.774472 +0.6223484,35,342.108,4.390973 +0.6102817,42,571.9411,4.507539 +0.7181276,87,831.6475,5.242309 +0.6940214,57,492.6249,4.898956 +0.8179872,85,77.64156,5.595095 +0.6283061,33,563.8613,4.350425 +0.6075136,55,379.0673,4.713306 +0.9265058,36,445.4369,5.297881 +0.6868859,8,470.9334,3.208735 +0.7996129,99,964.0103,5.508082 +0.5830702,24,774.4583,4.000224 +0.5702618,68,64.00718,4.856072 +0.5789566,43,972.203,4.467412 +0.5874349,36,916.7149,4.342063 +0.5833758,65,258.9836,4.801495 +0.8635545,49,458.9639,5.227687 +0.5935735,79,119.1572,4.983546 +0.8131558,84,845.3671,5.434132 +0.7309313,34,65.37927,4.670561 +0.5603136,54,231.8187,4.623004 +0.5756098,18,173.3843,3.745856 +0.8461455,71,301.1804,5.442179 +0.5327761,26,841.531,3.976124 +0.6493861,11,935.9827,3.431666 +0.8630635,100,888.5135,5.695541 +0.851174,47,429.4618,5.156982 +0.5861503,12,716.7889,3.380622 +0.921095,23,15.19805,5.710247 +0.5782739,5,942.0811,2.433206 +0.6693196,90,622.6583,5.176223 +0.5364548,35,405.8181,4.233303 +0.809616,81,687.281,5.40342 +0.9149833,46,412.5279,5.407319 +0.7445979,62,793.9484,5.059691 +0.8165355,8,394.0338,3.586587 +0.7509344,69,859.8796,5.148696 +0.6117458,55,682.8256,4.715332 +0.5845061,74,151.8629,4.91113 +0.7070729,49,328.4277,4.820550 +0.7195724,98,110.8851,5.395834 +0.6141301,77,832.5952,4.96579 +0.9010887,75,502.8683,5.664959 +0.8695804,75,635.2031,5.534273 +0.6162468,36,706.3104,4.395769 +0.9283751,95,975.9121,5.935814 +0.8729349,86,442.2792,5.64784 +0.8494098,3,32.31192,2.708795 +0.9168347,42,714.2314,5.338657 +0.5352037,24,911.7365,3.911702 +0.9059443,87,965.2333,5.767539 +0.7047665,61,370.0491,4.975073 +0.8152647,77,323.5922,5.403395 +0.8688586,64,478.9834,5.431414 +0.751632,9,470.4753,3.496043 +0.8244728,7,309.2294,3.487371 +0.8102466,79,903.5838,5.383902 +0.7057721,86,629.8928,5.213153 +0.5553194,60,33.40271,4.773593 +0.881195,60,621.9124,5.426565 +0.8358636,77,901.8299,5.437479 +0.696193,55,164.4135,4.904172 +0.932106,71,607.8688,5.782766 +0.6710505,44,631.6179,4.656993 +0.6212366,63,562.5125,4.834803 +0.8203601,4,27.23376,2.964745 +0.8001745,56,274.3495,5.143934 +0.9013971,27,296.505,4.965852 +0.9069266,82,392.5688,5.759936 +0.9232269,57,276.2901,5.61906 +0.9367268,68,482.8852,5.791665 +0.8689248,13,356.4507,4.228787 +0.702432,42,188.5659,4.708193 +0.5472108,23,207.8573,3.905311 +0.9229038,25,823.9425,4.998866 +0.5444981,28,772.9021,4.059997 +0.6736287,48,818.3279,4.725838 +0.7463483,76,478.1093,5.215087 +0.85102,55,389.6101,5.270833 +0.5619721,54,332.6585,4.621322 +0.664734,55,579.3978,4.813541 +0.8474316,71,106.0218,5.524184 +0.8554368,14,396.4834,4.234974 +0.865614,95,693.5883,5.675409 +0.5348477,17,295.1280,3.609408 +0.6671405,93,634.2797,5.194961 +0.9346352,15,200.4010,4.728396 +0.7714221,20,840.6805,4.256987 +0.7079719,52,749.5469,4.854797 +0.6277378,26,988.1618,4.151760 +0.6268555,98,629.3872,5.160994 +0.9238709,95,758.1687,5.917006 +0.6475484,68,21.38955,5.16726 +0.6446082,93,997.1099,5.151013 +0.7764024,4,247.0520,2.71087 +0.7230928,84,946.2879,5.226642 +0.8371537,38,946.4194,4.9437 +0.8428408,68,709.7673,5.377647 +0.5555994,10,563.73,3.139113 +0.7219313,99,561.1249,5.344151 +0.937448,23,28.74689,5.480904 +0.7335617,91,970.2005,5.302966 +0.8613441,6,176.6877,3.493646 +0.6869626,85,244.9659,5.187716 +0.9275152,86,83.32556,6.077996 +0.7939986,46,732.5617,4.963035 +0.7970223,30,882.1072,4.648926 +0.7209646,54,924.5706,4.907675 +0.8306365,96,607.961,5.577427 +0.6464567,14,9.694352,3.942865 +0.6340444,37,736.7627,4.450466 +0.8069274,40,95.86887,4.977036 +0.8013634,42,503.7897,4.921649 +0.9055047,42,118.7202,5.378602 +0.6954729,47,821.6369,4.753285 +0.6674997,44,239.8386,4.66436 +0.5699985,53,317.533,4.621385 +0.5287525,36,637.5462,4.240597 +0.6176084,4,475.3884,2.25576 +0.6085563,96,649.2288,5.115429 +0.671319,81,817.5754,5.102995 +0.9359667,37,92.84325,5.510533 +0.9292207,27,886.3095,5.092884 +0.941389,89,885.4375,5.976429 +0.5803328,53,74.98485,4.677075 +0.8983655,32,703.0716,5.05373 +0.6437962,43,460.7536,4.589923 +0.5086535,74,187.668,4.776272 +0.7736891,71,449.2642,5.231069 +0.8452449,32,304.0644,4.864419 +0.6696278,45,583.9474,4.672059 +0.6992343,65,438.3437,5.006878 +0.660791,31,961.1734,4.36029 +0.6564748,41,22.05504,4.776298 +0.665124,24,850.8597,4.16084 +0.8835836,27,965.2559,4.858438 +0.8815548,25,387.4771,4.807794 +0.6965337,31,975.1651,4.433565 +0.7860235,6,178.6597,3.203474 +0.8831334,48,57.10986,5.485092 +0.7900111,31,162.321,4.694016 +0.80504,90,989.0279,5.457521 +0.7779963,47,888.8225,4.935917 +0.8709396,21,6.076414,6.109931 +0.8758326,43,504.5797,5.178094 +0.8322847,18,610.0355,4.354371 +0.9086776,17,153.3854,4.677248 +0.788782,68,615.4611,5.231419 +0.5539504,2,984.5186,1.078088 +0.7439927,12,872.5737,3.741407 +0.8164331,71,103.7183,5.424622 +0.6064425,6,33.65510,2.751554 +0.8815675,16,550.0871,4.448882 +0.7435157,46,251.4903,4.860642 +0.94865,6,343.7878,4.039293 +0.9017165,65,280.3346,5.597134 +0.870245,56,159.3285,5.399134 +0.5617548,18,212.3836,3.716077 +0.8854695,56,81.97713,5.542365 +0.5792403,52,556.462,4.617672 +0.5890797,51,387.0378,4.623079 +0.6885989,98,502.3955,5.274165 +0.851565,71,129.9867,5.516691 +0.7055726,26,324.1496,4.322812 +0.5700456,55,957.5553,4.641816 +0.6144216,45,450.7585,4.570643 +0.7825922,22,521.1032,4.369765 +0.5166394,83,138.0069,4.879737 +0.6137133,51,713.3682,4.661488 +0.5643472,39,355.1127,4.370699 +0.6369376,93,324.8522,5.15104 +0.6506586,36,605.8106,4.46205 +0.8290645,55,544.3193,5.19356 +0.7932623,73,960.7906,5.285625 +0.8382057,96,207.4720,5.64295 +0.732158,41,137.2255,4.770089 +0.9480985,16,313.3048,4.867939 +0.6386916,99,589.2802,5.189086 +0.9390022,23,957.4552,5.041156 +0.5697346,38,17.83553,4.510244 +0.7913318,66,293.3076,5.235361 +0.6868162,4,387.668,2.43642 +0.6463822,54,750.9945,4.763262 +0.9371176,47,313.4571,5.566868 +0.50428,99,824.273,4.970733 +0.5946511,64,346.1248,4.805316 +0.8709878,57,759.798,5.34904 +0.6831977,45,11.36341,5.134924 +0.6508286,62,148.9947,4.90477 +0.9287122,60,801.24,5.644665 +0.6910198,69,990.3954,5.024397 +0.8440781,9,525.8345,3.796168 +0.8004705,72,489.8934,5.305356 +0.6084492,69,224.9862,4.892618 +0.8184517,82,935.883,5.430576 +0.7762058,75,950.8389,5.263271 +0.5760073,8,894.4134,2.951756 +0.8086744,7,174.8679,3.440552 +0.9261343,84,946.4264,5.845667 +0.7364095,79,848.88,5.212448 +0.8509722,25,417.1328,4.687007 +0.6892558,24,104.9072,4.250703 +0.8036012,61,102.1672,5.277396 +0.6162426,79,656.3961,4.989624 +0.5791517,72,467.3013,4.862522 +0.5149917,94,378.281,4.954349 +0.9379776,25,464.946,5.109888 +0.9067495,32,38.34473,5.403331 +0.5240937,28,961.5862,4.023214 +0.5280742,24,311.7771,3.903208 +0.6576594,4,689.7833,2.356709 +0.6781805,10,757.1474,3.406736 +0.5971721,63,324.5377,4.798868 +0.5290827,34,770.204,4.193887 +0.9037198,90,293.7151,5.821269 +0.6534974,48,190.0638,4.709046 +0.6981573,26,853.1525,4.296611 +0.6468021,48,748.4224,4.675426 +0.9040386,68,838.5664,5.60011 +0.7857422,38,481.7715,4.806148 +0.607947,42,201.8933,4.516507 +0.5071259,76,937.1517,4.782286 +0.5427897,92,431.5726,4.981826 +0.9072125,95,154.3396,5.92806 +0.9484,99,33.92708,6.716453 +0.8050603,87,9.65729,6.442394 +0.8860068,5,388.8540,3.412397 +0.6358902,52,845.1992,4.714964 +0.9361354,17,750.0811,4.796561 +0.8008013,49,565.2006,5.030775 +0.926761,26,575.6264,5.057938 +0.8576906,60,272.9478,5.368179 +0.7202081,22,979.6327,4.208136 +0.5819503,76,205.3432,4.918833 +0.6698566,12,945.551,3.560221 +0.6418892,55,64.02962,4.841915 +0.5271493,33,949.0254,4.165456 +0.8930948,23,24.1638,5.197677 +0.8822868,39,737.3787,5.126144 +0.6887659,6,343.5825,2.912568 +0.8297944,98,341.6935,5.606095 +0.6721322,46,193.0996,4.713452 +0.5849796,45,355.7672,4.520102 +0.6888258,5,729.3948,2.705554 +0.5311742,29,272.9869,4.071185 +0.8957202,49,516.2053,5.351545 +0.7909933,13,650.5345,3.946661 +0.6261204,51,142.9204,4.710608 +0.9168821,37,77.57931,5.410771 +0.8331488,69,43.80345,5.607263 +0.64225,94,956.1799,5.154705 +0.7601495,91,920.2586,5.359983 +0.7892926,96,349.8586,5.483655 +0.6306155,33,967.1055,4.351705 +0.6726184,80,51.44195,5.215103 +0.7116622,19,546.5421,4.069148 +0.6864173,18,182.2196,3.980004 +0.863477,91,543.1546,5.645966 +0.5452934,24,641.5907,3.931072 +0.7300484,91,650.1359,5.300523 +0.6697613,89,881.9166,5.165746 +0.5722327,44,356.5360,4.479965 +0.6642942,46,79.42196,4.736867 +0.6101755,69,492.5268,4.883647 +0.8585281,14,237.7073,4.259236 +0.9097088,71,482.4178,5.669828 +0.6898688,62,411.6998,4.954969 +0.810742,62,578.5291,5.224823 +0.8362431,75,527.7266,5.430838 +0.9416213,63,511.2204,5.772444 +0.7244791,7,610.4706,3.168309 +0.7757211,83,876.2432,5.332888 +0.7827547,64,120.3467,5.239134 +0.6797277,86,489.6258,5.166825 +0.756696,81,778.559,5.27448 +0.8787565,70,506.207,5.527242 +0.8407648,43,624.1819,5.050881 +0.812129,63,378.47,5.249874 +0.7311311,100,545.6201,5.370173 +0.6494214,71,989.3894,4.967769 +0.5589163,3,407.2068,1.727566 +0.7051075,21,910.3279,4.135289 +0.9440894,27,128.4959,5.29461 +0.6493793,36,815.854,4.457538 +0.5269008,22,20.1956,3.909876 +0.7765532,69,131.1495,5.270598 +0.8623126,59,805.8516,5.341169 +0.7862556,15,445.9598,4.061422 +0.7984945,11,16.42409,4.112416 +0.7628009,94,335.4126,5.40785 +0.5707517,4,754.9215,2.141816 +0.8307415,59,259.4171,5.271136 +0.9261452,91,879.6235,5.898394 +0.5931118,19,412.5692,3.820128 +0.7341011,30,290.3247,4.5055 +0.6307421,94,480.651,5.141479 +0.6214507,52,761.9476,4.689565 +0.6122929,51,391.2011,4.66427 +0.6126767,22,965.1558,3.981753 +0.6781432,82,529.8376,5.129141 +0.7212714,68,628.3364,5.078783 +0.8463072,52,414.1375,5.213921 +0.5499381,48,128.7722,4.524313 +0.8552063,45,983.869,5.124362 +0.7168726,54,76.57087,4.98376 +0.5863685,28,436.8953,4.139119 +0.6002564,4,212.4021,2.216034 +0.6476712,27,567.834,4.225193 +0.5111378,12,230.9686,3.234319 +0.8874011,31,699.3229,4.981643 +0.6029039,21,853.7822,3.923142 +0.844009,100,494.6368,5.648871 +0.6724859,33,871.8237,4.434046 +0.6211092,3,206.0795,1.884215 +0.8536017,100,339.2334,5.692342 +0.9383143,76,126.6032,5.989349 +0.5257438,86,212.6910,4.913543 +0.6733605,100,893.5537,5.253112 +0.6432021,12,786.3207,3.501315 +0.6230217,88,173.8344,5.102506 +0.6406076,51,392.1265,4.716152 +0.8299653,74,144.4691,5.464652 +0.711774,49,720.2103,4.819034 +0.6283814,10,413.4422,3.295601 +0.5821459,59,999.1213,4.714968 +0.6715785,20,695.5452,4.021824 +0.8592576,52,916.6212,5.241093 +0.542849,42,279.0223,4.3942 +0.537032,81,618.1086,4.877919 +0.8894632,38,737.5884,5.137352 +0.6570416,51,953.9288,4.738709 +0.9168326,47,24.62193,5.997725 +0.8971111,17,803.4249,4.565065 +0.5770282,56,547.2414,4.670345 +0.9473995,62,535.2846,5.802564 +0.5455282,93,714.1213,4.990395 +0.5863393,45,768.3091,4.516744 +0.7665414,16,849.9519,4.056045 +0.734118,54,776.0034,4.937319 +0.7203634,64,274.5625,5.04965 +0.659862,45,748.1406,4.651066 +0.6805168,34,603.1331,4.476605 +0.8645582,64,484.6595,5.415833 +0.8906369,26,384.7536,4.877756 +0.9474115,20,416.8705,5.021933 +0.6411807,57,330.5903,4.80329 +0.5703219,58,514.8321,4.685923 +0.7626901,30,75.8481,4.641237 +0.8855596,42,839.1963,5.190222 +0.9174876,27,572.5325,5.030947 +0.5043899,20,700.1571,3.696164 +0.5387181,100,214.0170,5.043657 +0.889451,94,411.1439,5.771975 +0.6211653,61,929.5267,4.807188 +0.726502,69,816.1978,5.096984 +0.9034006,27,188.2023,4.99858 +0.8471982,47,921.634,5.129633 +0.6937758,9,797.0683,3.341297 +0.5347142,19,938.8299,3.705463 +0.7464367,95,284.5240,5.383845 +0.5356522,31,119.4054,4.146077 +0.7287865,54,105.8386,4.986942 +0.7582195,10,393.5145,3.616798 +0.7883883,16,759.7446,4.117701 +0.580503,34,116.2226,4.308078 +0.5592169,53,86.60802,4.630375 +0.8841168,35,720.886,5.055972 +0.787728,8,431.0659,3.489781 +0.7440935,96,462.1459,5.37265 +0.547159,28,549.1209,4.066083 +0.6133399,7,31.53534,2.94565 +0.502118,22,858.4678,3.77632 +0.9333538,38,609.3464,5.369694 +0.6024722,75,638.6493,4.92888 +0.9074494,32,541.4686,5.102969 +0.6300227,79,159.6278,5.040472 +0.7318348,24,317.7376,4.318522 +0.741385,49,607.519,4.884875 +0.7133042,90,534.2835,5.262046 +0.7731119,64,555.0199,5.152396 +0.7659718,64,902.1246,5.129016 +0.692532,54,15.18751,5.217929 +0.7237324,40,311.8354,4.70425 +0.7820585,92,123.1948,5.494088 +0.8127579,20,389.9402,4.384254 +0.7185323,50,966.4689,4.845642 +0.7159182,54,783.1741,4.898585 +0.5016469,14,892.8262,3.360851 +0.6591599,72,400.8591,5.005014 +0.838539,89,620.7018,5.549374 +0.7455755,65,625.0824,5.098517 +0.9332795,27,755.9687,5.121938 +0.6061578,88,852.1542,5.047813 +0.6962892,84,664.6649,5.177628 +0.5947195,17,875.5658,3.72079 +0.6775777,53,539.8698,4.811517 +0.779415,80,754.9234,5.318238 +0.6246729,36,474.7039,4.414399 +0.8229145,91,413.4531,5.530172 +0.6903401,99,874.5921,5.277501 +0.5398703,51,286.4902,4.541068 +0.74952,4,502.8889,2.618777 +0.8640506,33,6.8444,6.388552 +0.9202534,49,339.0399,5.487683 +0.6719591,58,852.3847,4.86309 +0.9207745,32,368.0822,5.186344 +0.8846664,81,528.0204,5.646296 +0.6523939,96,646.4013,5.190536 +0.8606456,24,470.2877,4.688268 +0.6330717,34,113.3899,4.413138 +0.7145774,68,95.60072,5.132608 +0.7099229,38,220.1979,4.642589 +0.7290925,15,20.12214,4.110961 +0.9385502,61,264.7995,5.763972 +0.5603532,7,885.8671,2.775121 +0.7057838,42,68.22778,4.772341 +0.658553,20,643.2781,3.994641 +0.8370777,33,279.929,4.863052 +0.5989733,21,486.2542,3.918143 +0.6681295,12,829.0133,3.556748 +0.6356377,43,817.5014,4.569956 +0.6267693,93,462.5766,5.12758 +0.8400407,30,840.948,4.778211 +0.778122,92,63.86752,5.560302 +0.8315789,86,180.0045,5.557248 +0.5899593,72,82.99947,4.923858 +0.6298938,6,324.3013,2.766343 +0.8650625,45,810.102,5.161229 +0.7166938,77,519.5638,5.160264 +0.6128868,83,494.4236,5.022079 +0.7190987,63,988.826,5.014988 +0.8141917,54,62.45263,5.281654 +0.6892226,77,604.2335,5.1039 +0.7579322,39,483.3476,4.756018 +0.774113,12,376.1970,3.831128 +0.888773,9,193.2689,4.013519 +0.9433137,19,225.0416,4.975592 +0.668966,35,323.5154,4.483325 +0.5799831,32,858.7687,4.233789 +0.6964942,57,265.0989,4.915871 +0.7890881,19,622.6752,4.265669 +0.7703855,61,666.6304,5.108969 +0.7360461,100,156.7199,5.423589 +0.8626526,80,916.5676,5.546618 +0.8052394,59,234.3321,5.201593 +0.9434135,16,488.0507,4.814165 +0.675481,11,447.5658,3.494619 +0.7456587,71,858.7813,5.157294 +0.6115988,44,621.5159,4.545473 +0.7125888,13,903.394,3.734631 +0.564883,12,911.3827,3.336676 +0.8422981,35,737.8664,4.902571 +0.6269619,22,962.1986,4.009839 +0.7464384,89,917.6661,5.31518 +0.8062435,86,203.6891,5.476226 +0.6016839,63,164.1402,4.82052 +0.7231435,90,183.1313,5.313472 +0.9296296,69,712.086,5.744837 +0.7964493,18,372.9885,4.248754 +0.9082465,11,729.5307,4.267029 +0.7954384,80,890.9846,5.354851 +0.69333,30,549.6491,4.404942 +0.888512,38,226.2884,5.171376 +0.5163259,79,965.7332,4.825084 +0.8625625,40,270.5909,5.095962 +0.7878012,75,456.2498,5.303224 +0.7169962,38,24.90004,4.866604 +0.7119138,31,136.3598,4.502702 +0.9016313,80,625.8683,5.703408 +0.6697849,64,819.8403,4.931256 +0.6393241,36,822.4557,4.438223 +0.6457774,22,286.3792,4.056812 +0.6075175,5,507.1766,2.502779 +0.5790579,35,891.444,4.304589 +0.6785852,97,632.1274,5.245173 +0.9260163,27,785.0145,5.07486 +0.624276,100,624.4551,5.170826 +0.514745,99,233.9589,4.996166 +0.7554237,90,27.37145,5.658256 +0.8304656,20,75.88332,4.520449 +0.9465676,54,175.3672,5.777202 +0.9349736,67,373.3616,5.78206 +0.862613,34,248.4125,4.979623 +0.9212936,13,780.8202,4.483226 +0.7610356,13,216.7360,3.875411 +0.901645,33,163.7603,5.150118 +0.938008,100,475.4582,6.04847 +0.7903692,73,374.8208,5.295927 +0.9234672,71,793.222,5.726025 +0.8868499,22,658.971,4.721847 +0.9136649,96,313.9001,5.906933 +0.6772373,5,825.3243,2.674723 +0.7484092,30,211.6643,4.54816 +0.5736467,50,354.4955,4.581787 +0.8963927,40,739.9752,5.204105 +0.6797554,77,357.669,5.094093 +0.6830636,48,373.3237,4.753272 +0.6249168,59,358.1955,4.797946 +0.6989866,36,742.6241,4.557865 +0.720914,97,799.1175,5.323244 +0.8050567,78,401.0264,5.377754 +0.8354936,89,886.472,5.533914 +0.8940905,3,516.5265,2.87191 +0.7170255,57,97.04115,5.005992 +0.6894167,8,999.7774,3.212098 +0.8153368,83,640.4252,5.436478 +0.7875185,40,748.8123,4.842901 +0.5928658,38,222.8933,4.407356 +0.9368355,59,283.7960,5.725235 +0.8439394,88,743.0444,5.554312 +0.8655847,61,746.2011,5.376758 +0.615964,7,492.0405,2.900309 +0.708786,23,250.7864,4.233693 +0.928492,77,249.3429,5.858765 +0.9213118,70,240.5459,5.756381 +0.9447196,4,134.7652,3.622836 +0.6752938,92,700.4954,5.201173 +0.5822097,34,944.6738,4.286641 +0.7442257,37,780.9363,4.677971 +0.8501248,92,391.9927,5.620045 +0.7890855,31,26.29981,4.924178 +0.5417501,38,367.9578,4.309845 +0.6465953,76,816.0229,5.012992 +0.7753691,45,187.8045,4.933162 +0.8752703,95,937.9589,5.702937 +0.8304852,46,534.5124,5.070549 +0.9297963,95,821.1949,5.947772 +0.8118207,51,614.6753,5.088175 +0.6761814,68,77.04726,5.06311 +0.5594347,47,273.4567,4.511935 +0.6285156,17,791.629,3.789238 +0.8079738,6,552.786,3.265653 +0.6450331,64,620.8037,4.888043 +0.6683616,5,26.13905,2.716723 +0.6130411,71,577.7337,4.907943 +0.6039205,88,393.0017,5.051451 +0.6873019,33,507.5798,4.46876 +0.6871983,44,93.05181,4.742836 +0.8249064,40,27.54897,5.271431 +0.5337277,97,414.0519,5.005735 +0.7879977,47,203.7387,4.995218 +0.7460476,54,352.9217,4.976224 +0.9483304,14,817.392,4.74218 +0.6113758,86,287.5114,5.052821 +0.7624152,86,140.1357,5.386984 +0.9068276,76,127.8796,5.79775 +0.6900965,97,905.93,5.262664 +0.8448191,85,43.09855,5.815616 +0.8802071,31,137.8266,5.016079 +0.8578306,19,642.5522,4.48844 +0.7929309,82,623.4676,5.370958 +0.8476168,18,453.467,4.412116 +0.6834483,43,918.7422,4.661125 +0.7405542,80,56.81287,5.371752 +0.9219944,50,332.3488,5.512329 +0.7261745,44,701.9999,4.769600 +0.7007646,53,383.2142,4.862903 +0.6057453,72,986.2047,4.901948 +0.9261545,59,353.8751,5.64591 +0.771516,19,609.2304,4.217364 +0.7029976,85,168.6136,5.234305 +0.8446972,27,723.5938,4.715313 +0.5885027,57,335.832,4.708225 +0.6491714,64,861.9075,4.892884 +0.6330873,24,654.814,4.097357 +0.7772637,100,678.8785,5.466614 +0.8096222,38,244.029,4.889534 +0.584761,62,94.44627,4.795691 +0.700675,82,658.6258,5.169326 +0.848954,53,601.8697,5.227078 +0.8253134,71,66.77659,5.512754 +0.5726026,39,366.2374,4.385096 +0.889443,40,431.9839,5.186106 +0.9409584,20,611.2568,4.959802 +0.7115514,90,793.238,5.25328 +0.7011985,35,200.5195,4.561698 +0.5771735,40,98.96083,4.438054 +0.8109071,76,518.7619,5.368861 +0.8176633,37,18.97150,5.311783 +0.7706448,80,46.71877,5.489751 +0.5891102,78,840.1204,4.933083 +0.7720898,79,189.6653,5.332601 +0.7299095,48,298.656,4.85679 +0.6956586,32,739.8781,4.458631 +0.6287844,35,862.2396,4.395717 +0.8391402,38,300.8604,4.973045 +0.510979,99,235.7683,4.990011 +0.508311,83,427.9368,4.852489 +0.6374083,53,722.2017,4.733101 +0.8431894,21,933.971,4.51148 +0.6286747,89,648.9947,5.096027 +0.9137417,88,684.3439,5.819049 +0.7000148,65,253.8147,5.020509 +0.9283806,36,485.4688,5.30663 +0.5502186,97,901.5118,5.026643 +0.6794158,92,491.8415,5.2134 +0.5004906,9,369.889,2.919374 +0.8813509,4,156.3115,3.159320 +0.5316867,79,888.0104,4.849485 +0.7776448,23,552.1755,4.391651 +0.6669258,42,541.5799,4.614754 diff --git a/statsmodels/stats/tests/results/contingency_table_r_results.csv b/statsmodels/stats/tests/results/contingency_table_r_results.csv new file mode 100644 index 0000000..cd94963 --- /dev/null +++ b/statsmodels/stats/tests/results/contingency_table_r_results.csv @@ -0,0 +1,4 @@ +"homog_stat","homog_df","homog_binom_p","homog_cont_p","lbl_stat","lbl_expval","lbl_var","lbl_chi2","lbl_pvalue","lbl2_stat","lbl2_expval","lbl2_var","lbl2_chi2","lbl2_pvalue","bowker_stat","bowker_df","bowker_pvalue" +0.470588235294118,1,0.60759136127308,0.606905427217951,215,210.136363636364,5.44848959817612,4.34156260215759,0.0371927738063454,369,354.409090909091,49.0364063835851,4.34156260215755,0.0371927738063464,0.470588235294118,1,0.492716677227088 +271.922246968262,3,0,0,1760,1637.12,318.387012391739,47.4249696511547,5.71498404156046e-12,6006,5384.96,8083.23776042639,47.7148752803301,4.9293902293357e-12,297.610989010989,6,2.65851858368065e-61 +13.7647058823529,2,0,0,661,608.890625,45.1014721487451,60.2061714068945,8.54871728961371e-15,1761,1544.046875,804.735991710752,58.4895654377337,2.04281036531029e-14,13.7692307692308,3,0.00323670650323545 diff --git a/statsmodels/stats/tests/results/data.dat b/statsmodels/stats/tests/results/data.dat new file mode 100644 index 0000000..29e5a39 --- /dev/null +++ b/statsmodels/stats/tests/results/data.dat @@ -0,0 +1,61 @@ +Days Duration Weight ID + 0.0 1 1 1 + 2.0 1 1 2 + 1.0 1 1 3 + 3.0 1 1 4 + 0.0 1 1 5 + 2.0 1 1 6 + 0.0 1 1 7 + 5.0 1 1 8 + 6.0 1 1 9 + 8.0 1 1 10 + 2.0 1 2 1 + 4.0 1 2 2 + 7.0 1 2 3 + 12.0 1 2 4 + 15.0 1 2 5 + 4.0 1 2 6 + 3.0 1 2 7 + 1.0 1 2 8 + 5.0 1 2 9 + 20.0 1 2 10 + 15.0 1 3 1 + 10.0 1 3 2 + 8.0 1 3 3 + 5.0 1 3 4 + 25.0 1 3 5 + 16.0 1 3 6 + 7.0 1 3 7 + 30.0 1 3 8 + 3.0 1 3 9 + 27.0 1 3 10 + 0.0 2 1 1 + 1.0 2 1 2 + 1.0 2 1 3 + 0.0 2 1 4 + 4.0 2 1 5 + 2.0 2 1 6 + 7.0 2 1 7 + 4.0 2 1 8 + 0.0 2 1 9 + 3.0 2 1 10 + 5.0 2 2 1 + 3.0 2 2 2 + 2.0 2 2 3 + 0.0 2 2 4 + 1.0 2 2 5 + 1.0 2 2 6 + 3.0 2 2 7 + 6.0 2 2 8 + 7.0 2 2 9 + 9.0 2 2 10 + 10.0 2 3 1 + 8.0 2 3 2 + 12.0 2 3 3 + 3.0 2 3 4 + 7.0 2 3 5 + 15.0 2 3 6 + 4.0 2 3 7 + 9.0 2 3 8 + 6.0 2 3 9 + 1.0 2 3 10 diff --git a/statsmodels/stats/tests/results/framing.csv b/statsmodels/stats/tests/results/framing.csv new file mode 100644 index 0000000..4a87497 --- /dev/null +++ b/statsmodels/stats/tests/results/framing.csv @@ -0,0 +1,266 @@ +"","cond","anx","age","educ","gender","income","emo","p_harm","tone","eth","treat","english","immigr","anti_info","cong_mesg" +"1","3","a little anxious",45,"high school","male",13,7,6,0,1,0,"Oppose",4,0,1 +"2","4","somewhat anxious",73,"bachelor's degree or higher","male",16,6,3,0,0,0,"Favor",3,0,0 +"3","2","a little anxious",53,"some college","female",3,8,7,1,0,0,"Strongly Oppose",3,0,0 +"4","1","not anxious at all",45,"high school","male",14,9,8,1,1,1,"Strongly Oppose",4,0,1 +"5","3","somewhat anxious",55,"some college","female",12,5,5,0,1,0,"Strongly Oppose",2,0,0 +"6","1","a little anxious",85,"high school","female",3,5,6,1,1,1,"Strongly Oppose",4,0,0 +"7","1","a little anxious",58,"high school","female",10,10,8,1,1,1,"Oppose",4,0,0 +"8","2","a little anxious",53,"some college","male",9,8,7,1,0,0,"Favor",4,1,1 +"9","1","a little anxious",52,"some college","female",14,8,5,1,1,1,"Strongly Oppose",3,0,0 +"10","4","very anxious",42,"some college","male",15,3,2,0,0,0,"Oppose",2,0,0 +"11","4","a little anxious",38,"bachelor's degree or higher","female",9,11,8,0,0,0,"Strongly Oppose",4,1,1 +"12","4","very anxious",38,"high school","male",6,9,8,0,0,0,"Strongly Oppose",4,1,1 +"13","4","a little anxious",26,"bachelor's degree or higher","female",10,8,6,0,0,0,"Oppose",3,0,1 +"14","1","not anxious at all",52,"some college","male",11,10,8,1,1,1,"Strongly Oppose",4,0,1 +"15","1","very anxious",48,"some college","male",19,3,3,1,1,1,"Oppose",2,0,0 +"16","2","not anxious at all",62,"high school","female",10,12,8,1,0,0,"Strongly Oppose",4,1,1 +"17","1","not anxious at all",41,"less than high school","female",7,9,8,1,1,1,"Oppose",4,0,0 +"18","3","somewhat anxious",54,"high school","male",11,6,6,0,1,0,"Strongly Oppose",4,0,0 +"19","1","a little anxious",69,"high school","female",9,8,7,1,1,1,"Strongly Oppose",4,0,0 +"20","1","somewhat anxious",71,"less than high school","male",6,6,6,1,1,1,"Strongly Oppose",1,0,0 +"21","3","somewhat anxious",62,"some college","male",14,4,5,0,1,0,"Oppose",2,0,0 +"22","2","very anxious",41,"some college","male",13,3,6,1,0,0,"Strongly Oppose",3,0,0 +"23","3","a little anxious",60,"high school","female",11,7,7,0,1,0,"Strongly Oppose",4,0,1 +"24","4","somewhat anxious",62,"some college","male",17,6,8,0,0,0,"Oppose",4,0,1 +"25","4","somewhat anxious",31,"bachelor's degree or higher","male",13,7,5,0,0,0,"Strongly Oppose",4,0,0 +"26","3","somewhat anxious",50,"some college","female",13,4,2,0,1,0,"Strongly Oppose",2,0,0 +"27","3","a little anxious",48,"high school","male",7,9,5,0,1,0,"Strongly Oppose",4,0,1 +"28","2","somewhat anxious",29,"some college","male",10,6,4,1,0,0,"Strongly Favor",2,0,0 +"29","3","a little anxious",64,"high school","female",5,9,5,0,1,0,"Oppose",4,0,0 +"30","3","very anxious",65,"high school","female",12,4,6,0,1,0,"Strongly Oppose",4,0,1 +"31","4","not anxious at all",66,"less than high school","female",4,12,8,0,0,0,"Oppose",4,0,0 +"32","1","not anxious at all",68,"high school","female",9,11,8,1,1,1,"Strongly Oppose",4,0,1 +"33","4","somewhat anxious",43,"high school","female",15,6,6,0,0,0,"Favor",3,0,0 +"34","3","a little anxious",57,"bachelor's degree or higher","female",12,7,5,0,1,0,"Oppose",3,0,0 +"35","3","somewhat anxious",41,"high school","male",11,9,4,0,1,0,"Strongly Oppose",4,0,0 +"36","2","somewhat anxious",85,"bachelor's degree or higher","male",13,7,7,1,0,0,"Strongly Oppose",3,0,1 +"37","4","a little anxious",70,"bachelor's degree or higher","male",15,8,8,0,0,0,"Strongly Oppose",4,0,1 +"38","3","a little anxious",65,"bachelor's degree or higher","male",14,8,6,0,1,0,"Strongly Oppose",4,0,0 +"39","2","a little anxious",67,"less than high school","female",11,11,8,1,0,0,"Strongly Oppose",4,1,1 +"40","1","a little anxious",68,"some college","female",9,6,5,1,1,1,"Favor",2,0,0 +"41","2","somewhat anxious",64,"some college","male",13,5,5,1,0,0,"Strongly Oppose",2,0,0 +"42","1","a little anxious",37,"some college","male",13,10,8,1,1,1,"Strongly Oppose",4,0,1 +"43","3","not anxious at all",45,"high school","female",7,10,7,0,1,0,"Strongly Oppose",4,0,0 +"44","3","a little anxious",81,"less than high school","female",14,9,7,0,1,0,"Oppose",4,0,1 +"45","2","somewhat anxious",51,"high school","female",10,6,6,1,0,0,"Strongly Oppose",3,0,0 +"46","1","a little anxious",53,"some college","male",12,10,8,1,1,1,"Strongly Oppose",4,0,1 +"47","4","somewhat anxious",62,"high school","female",9,6,5,0,0,0,"Strongly Oppose",4,0,0 +"48","2","a little anxious",42,"less than high school","male",8,9,8,1,0,0,"Oppose",4,0,1 +"49","1","a little anxious",71,"some college","female",12,8,8,1,1,1,"Strongly Oppose",4,0,0 +"50","1","a little anxious",56,"high school","male",11,11,8,1,1,1,"Strongly Oppose",4,0,1 +"51","1","a little anxious",67,"less than high school","female",8,10,5,1,1,1,"Oppose",4,0,1 +"52","4","a little anxious",77,"some college","female",6,7,6,0,0,0,"Strongly Oppose",2,1,0 +"53","1","not anxious at all",24,"some college","female",15,11,7,1,1,1,"Strongly Oppose",4,1,1 +"54","4","a little anxious",42,"high school","male",3,7,5,0,0,0,"Oppose",2,0,0 +"55","3","very anxious",25,"bachelor's degree or higher","female",11,3,4,0,1,0,"Oppose",2,0,0 +"56","1","a little anxious",60,"high school","female",12,8,6,1,1,1,"Oppose",4,0,0 +"57","1","somewhat anxious",43,"some college","male",14,10,8,1,1,1,"Strongly Oppose",1,0,1 +"58","1","a little anxious",60,"some college","male",6,9,6,1,1,1,"Strongly Oppose",3,0,0 +"59","4","not anxious at all",31,"high school","male",11,11,7,0,0,0,"Strongly Oppose",4,1,0 +"60","2","somewhat anxious",47,"some college","female",13,7,6,1,0,0,"Favor",3,0,0 +"61","1","very anxious",32,"bachelor's degree or higher","female",10,3,2,1,1,1,"Favor",2,0,0 +"62","2","somewhat anxious",66,"some college","male",8,8,7,1,0,0,"Strongly Oppose",3,0,0 +"63","2","very anxious",44,"high school","female",15,6,8,1,0,0,"Strongly Oppose",4,0,0 +"64","2","somewhat anxious",46,"high school","male",17,6,4,1,0,0,"Strongly Oppose",3,0,0 +"65","4","very anxious",41,"high school","female",10,3,3,0,0,0,"Strongly Oppose",2,0,0 +"66","2","a little anxious",75,"high school","female",9,7,4,1,0,0,"Strongly Oppose",3,0,0 +"67","1","not anxious at all",53,"bachelor's degree or higher","male",10,12,8,1,1,1,"Strongly Oppose",4,0,1 +"68","3","very anxious",60,"bachelor's degree or higher","male",12,3,4,0,1,0,"Favor",2,0,0 +"69","3","very anxious",75,"high school","female",2,4,6,0,1,0,"Favor",2,0,0 +"70","2","not anxious at all",45,"high school","male",9,12,8,1,0,0,"Strongly Oppose",4,0,0 +"71","2","not anxious at all",69,"less than high school","female",5,12,8,1,0,0,"Strongly Oppose",4,0,1 +"72","4","somewhat anxious",67,"high school","female",15,6,4,0,0,0,"Strongly Oppose",3,0,0 +"73","4","somewhat anxious",20,"high school","male",9,5,5,0,0,0,"Oppose",2,0,0 +"74","1","somewhat anxious",43,"bachelor's degree or higher","male",16,6,4,1,1,1,"Strongly Oppose",2,0,0 +"75","4","a little anxious",32,"some college","male",10,9,8,0,0,0,"Strongly Oppose",4,0,0 +"76","3","somewhat anxious",39,"high school","male",12,5,4,0,1,0,"Favor",3,0,0 +"77","3","very anxious",53,"bachelor's degree or higher","female",13,4,3,0,1,0,"Favor",2,0,0 +"78","2","not anxious at all",57,"some college","female",2,12,8,1,0,0,"Strongly Oppose",4,1,0 +"79","4","a little anxious",62,"high school","female",7,8,7,0,0,0,"Strongly Oppose",3,1,1 +"80","2","a little anxious",69,"high school","female",7,9,8,1,0,0,"Strongly Oppose",4,0,0 +"81","2","somewhat anxious",44,"high school","female",13,7,6,1,0,0,"Oppose",4,0,0 +"82","1","not anxious at all",57,"high school","male",11,12,8,1,1,1,"Strongly Oppose",4,0,0 +"83","4","a little anxious",27,"some college","female",15,7,4,0,0,0,"Strongly Oppose",2,0,0 +"84","3","somewhat anxious",82,"bachelor's degree or higher","female",17,7,5,0,1,0,"Oppose",2,0,0 +"85","4","somewhat anxious",84,"high school","male",12,6,6,0,0,0,"Strongly Oppose",3,1,1 +"86","3","somewhat anxious",54,"some college","female",13,5,6,0,1,0,"Oppose",2,0,0 +"87","2","very anxious",36,"less than high school","male",11,4,6,1,0,0,"Oppose",4,0,0 +"88","1","not anxious at all",47,"some college","male",13,12,8,1,1,1,"Strongly Oppose",4,1,1 +"89","1","very anxious",28,"bachelor's degree or higher","female",12,3,6,1,1,1,"Strongly Oppose",4,0,0 +"90","2","very anxious",42,"high school","female",14,4,8,1,0,0,"Strongly Oppose",4,0,1 +"91","3","very anxious",60,"high school","male",6,7,8,0,1,0,"Strongly Oppose",4,0,0 +"92","1","very anxious",55,"bachelor's degree or higher","male",15,3,4,1,1,1,"Strongly Oppose",3,0,0 +"93","2","a little anxious",55,"high school","female",6,9,7,1,0,0,"Strongly Oppose",4,0,0 +"94","4","not anxious at all",61,"some college","male",12,12,8,0,0,0,"Strongly Oppose",4,1,1 +"95","3","somewhat anxious",84,"high school","female",11,5,2,0,1,0,"Favor",2,0,0 +"96","4","not anxious at all",45,"high school","female",3,10,8,0,0,0,"Oppose",1,0,1 +"97","1","a little anxious",67,"some college","male",7,8,8,1,1,1,"Oppose",3,0,0 +"98","2","not anxious at all",24,"some college","male",12,11,8,1,0,0,"Strongly Oppose",4,0,0 +"99","2","not anxious at all",64,"less than high school","male",11,10,7,1,0,0,"Strongly Oppose",4,1,1 +"100","1","a little anxious",72,"high school","female",7,10,3,1,1,1,"Strongly Oppose",4,0,0 +"101","2","not anxious at all",40,"high school","female",4,12,8,1,0,0,"Strongly Favor",1,0,1 +"102","4","not anxious at all",35,"bachelor's degree or higher","female",11,9,8,0,0,0,"Strongly Oppose",4,1,1 +"103","1","not anxious at all",69,"high school","female",8,12,8,1,1,1,"Oppose",4,0,1 +"104","1","a little anxious",30,"less than high school","female",6,11,7,1,1,1,"Oppose",4,0,0 +"105","2","a little anxious",45,"high school","female",7,8,8,1,0,0,"Strongly Oppose",3,0,0 +"106","4","very anxious",35,"some college","male",9,3,4,0,0,0,"Oppose",2,0,0 +"107","4","not anxious at all",47,"high school","male",11,10,8,0,0,0,"Oppose",3,1,1 +"108","4","a little anxious",53,"some college","male",11,5,4,0,0,0,"Strongly Oppose",2,0,0 +"109","3","a little anxious",75,"high school","male",4,9,6,0,1,0,"Oppose",2,0,0 +"110","1","somewhat anxious",70,"high school","female",13,8,6,1,1,1,"Favor",3,0,0 +"111","1","somewhat anxious",56,"high school","female",8,7,8,1,1,1,"Strongly Oppose",4,0,1 +"112","3","a little anxious",70,"less than high school","female",7,8,8,0,1,0,"Strongly Oppose",3,0,0 +"113","4","somewhat anxious",35,"bachelor's degree or higher","male",11,4,3,0,0,0,"Strongly Oppose",2,0,0 +"114","1","not anxious at all",54,"bachelor's degree or higher","female",11,12,6,1,1,1,"Strongly Oppose",4,0,0 +"115","2","somewhat anxious",76,"bachelor's degree or higher","male",12,5,6,1,0,0,"Strongly Oppose",2,0,0 +"116","1","a little anxious",65,"high school","female",13,9,6,1,1,1,"Strongly Oppose",4,1,1 +"117","2","somewhat anxious",22,"high school","male",12,5,4,1,0,0,"Oppose",2,0,0 +"118","3","somewhat anxious",28,"high school","male",13,8,8,0,1,0,"Strongly Oppose",4,0,1 +"119","4","very anxious",26,"bachelor's degree or higher","male",11,3,5,0,0,0,"Favor",3,0,0 +"120","1","somewhat anxious",67,"high school","male",13,5,6,1,1,1,"Strongly Oppose",4,0,0 +"121","4","very anxious",58,"high school","male",13,5,4,0,0,0,"Strongly Oppose",3,0,1 +"122","3","somewhat anxious",34,"some college","female",16,6,3,0,1,0,"Strongly Oppose",3,0,0 +"123","2","very anxious",29,"bachelor's degree or higher","female",1,5,6,1,0,0,"Oppose",2,0,0 +"124","3","a little anxious",61,"less than high school","male",13,10,6,0,1,0,"Oppose",4,0,1 +"125","4","not anxious at all",58,"some college","female",6,11,8,0,0,0,"Strongly Oppose",4,0,0 +"126","1","very anxious",46,"some college","female",10,5,4,1,1,1,"Oppose",2,0,0 +"127","3","not anxious at all",73,"less than high school","female",6,8,6,0,1,0,"Strongly Oppose",4,0,1 +"128","4","very anxious",23,"bachelor's degree or higher","male",1,3,3,0,0,0,"Strongly Oppose",1,0,0 +"129","3","very anxious",19,"high school","male",15,4,6,0,1,0,"Strongly Oppose",3,0,0 +"130","2","somewhat anxious",35,"some college","male",8,4,4,1,0,0,"Strongly Oppose",2,0,0 +"131","2","very anxious",29,"bachelor's degree or higher","male",19,4,5,1,0,0,"Strongly Oppose",3,0,0 +"132","2","very anxious",53,"bachelor's degree or higher","male",8,3,3,1,0,0,"Strongly Oppose",3,0,0 +"133","3","a little anxious",72,"bachelor's degree or higher","male",12,7,6,0,1,0,"Oppose",3,0,1 +"134","3","somewhat anxious",36,"bachelor's degree or higher","male",14,5,4,0,1,0,"Favor",1,0,0 +"135","1","not anxious at all",26,"less than high school","male",5,11,8,1,1,1,"Strongly Oppose",3,0,0 +"136","2","a little anxious",46,"bachelor's degree or higher","female",13,7,8,1,0,0,"Strongly Oppose",4,0,1 +"137","3","a little anxious",31,"high school","male",6,9,8,0,1,0,"Strongly Oppose",4,0,0 +"138","2","a little anxious",70,"high school","female",1,8,7,1,0,0,"Strongly Oppose",4,0,0 +"139","4","a little anxious",65,"bachelor's degree or higher","male",13,7,6,0,0,0,"Strongly Oppose",3,0,1 +"140","4","very anxious",69,"less than high school","female",1,4,4,0,0,0,"Oppose",2,0,0 +"141","4","very anxious",72,"bachelor's degree or higher","male",11,4,4,0,0,0,"Oppose",2,0,0 +"142","1","not anxious at all",71,"less than high school","female",13,12,8,1,1,1,"Strongly Oppose",4,1,1 +"143","2","very anxious",62,"some college","male",12,4,6,1,0,0,"Oppose",3,0,0 +"144","3","a little anxious",37,"bachelor's degree or higher","male",13,7,5,0,1,0,"Oppose",3,0,0 +"145","2","very anxious",36,"high school","female",5,3,6,1,0,0,"Oppose",3,0,0 +"146","4","somewhat anxious",47,"some college","female",9,4,4,0,0,0,"Favor",3,0,0 +"147","3","somewhat anxious",47,"bachelor's degree or higher","male",16,5,4,0,1,0,"Oppose",3,0,0 +"148","1","very anxious",28,"bachelor's degree or higher","male",4,3,3,1,1,1,"Oppose",3,0,0 +"149","2","somewhat anxious",34,"bachelor's degree or higher","female",11,5,6,1,0,0,"Oppose",2,0,0 +"150","2","very anxious",69,"bachelor's degree or higher","male",10,3,4,1,0,0,"Favor",2,0,0 +"151","3","a little anxious",47,"high school","male",12,10,8,0,1,0,"Oppose",3,0,1 +"152","1","not anxious at all",73,"high school","male",11,11,8,1,1,1,"Strongly Oppose",4,0,1 +"153","3","very anxious",63,"high school","female",10,3,3,0,1,0,"Strongly Oppose",2,0,0 +"154","2","somewhat anxious",33,"less than high school","male",1,7,4,1,0,0,"Strongly Oppose",2,0,0 +"155","1","somewhat anxious",42,"high school","female",6,7,4,1,1,1,"Oppose",2,0,0 +"156","3","somewhat anxious",43,"high school","female",7,5,6,0,1,0,"Strongly Oppose",4,1,1 +"157","4","very anxious",50,"bachelor's degree or higher","female",16,3,4,0,0,0,"Oppose",2,0,0 +"158","2","somewhat anxious",56,"bachelor's degree or higher","male",10,6,7,1,0,0,"Strongly Oppose",3,0,1 +"159","3","somewhat anxious",28,"some college","female",11,6,6,0,1,0,"Strongly Oppose",2,0,0 +"160","1","somewhat anxious",44,"some college","female",13,8,8,1,1,1,"Oppose",4,0,0 +"161","3","somewhat anxious",38,"bachelor's degree or higher","female",9,5,6,0,1,0,"Oppose",1,0,0 +"162","1","not anxious at all",34,"bachelor's degree or higher","female",14,11,7,1,1,1,"Strongly Oppose",2,0,0 +"163","2","very anxious",56,"some college","male",16,3,3,1,0,0,"Strongly Oppose",2,0,0 +"164","3","somewhat anxious",47,"bachelor's degree or higher","male",11,4,6,0,1,0,"Oppose",2,0,0 +"165","4","somewhat anxious",42,"bachelor's degree or higher","male",7,7,6,0,0,0,"Strongly Oppose",4,0,1 +"166","3","somewhat anxious",53,"some college","female",16,4,5,0,1,0,"Strongly Oppose",2,0,0 +"167","3","very anxious",38,"bachelor's degree or higher","female",11,4,4,0,1,0,"Strongly Favor",1,0,0 +"168","2","somewhat anxious",50,"bachelor's degree or higher","female",11,6,4,1,0,0,"Favor",3,0,0 +"169","3","a little anxious",21,"high school","male",15,8,7,0,1,0,"Strongly Oppose",3,0,1 +"170","4","somewhat anxious",25,"some college","male",18,5,6,0,0,0,"Strongly Oppose",3,0,0 +"171","3","very anxious",58,"high school","female",16,5,8,0,1,0,"Oppose",4,0,1 +"172","4","somewhat anxious",39,"some college","male",10,5,7,0,0,0,"Strongly Oppose",3,1,0 +"173","4","not anxious at all",26,"some college","female",7,12,8,0,0,0,"Strongly Oppose",4,0,0 +"174","4","somewhat anxious",61,"some college","female",8,8,6,0,0,0,"Strongly Oppose",4,0,1 +"175","1","somewhat anxious",29,"some college","female",11,5,4,1,1,1,"Oppose",1,0,0 +"176","3","not anxious at all",39,"some college","female",12,12,7,0,1,0,"Strongly Oppose",4,0,1 +"177","2","somewhat anxious",40,"bachelor's degree or higher","male",11,7,6,1,0,0,"Strongly Oppose",4,0,1 +"178","1","somewhat anxious",30,"bachelor's degree or higher","female",11,4,4,1,1,1,"Strongly Favor",2,0,0 +"179","2","very anxious",64,"bachelor's degree or higher","female",10,3,5,1,0,0,"Oppose",1,0,0 +"180","2","a little anxious",50,"less than high school","male",5,10,7,1,0,0,"Strongly Oppose",3,0,1 +"181","2","somewhat anxious",33,"bachelor's degree or higher","female",12,9,8,1,0,0,"Strongly Oppose",4,0,0 +"182","3","somewhat anxious",35,"high school","male",9,6,6,0,1,0,"Oppose",4,0,1 +"183","1","somewhat anxious",26,"bachelor's degree or higher","female",16,6,5,1,1,1,"Oppose",3,0,0 +"184","1","not anxious at all",44,"some college","male",16,10,8,1,1,1,"Strongly Oppose",4,0,0 +"185","1","somewhat anxious",44,"some college","male",13,6,6,1,1,1,"Oppose",4,0,1 +"186","1","not anxious at all",25,"some college","male",11,12,8,1,1,1,"Strongly Oppose",4,1,1 +"187","3","very anxious",44,"bachelor's degree or higher","male",17,3,4,0,1,0,"Oppose",1,0,0 +"188","2","a little anxious",51,"bachelor's degree or higher","female",17,9,8,1,0,0,"Strongly Oppose",4,1,1 +"189","2","very anxious",62,"bachelor's degree or higher","female",14,5,6,1,0,0,"Strongly Oppose",3,0,0 +"190","4","very anxious",55,"bachelor's degree or higher","female",18,3,8,0,0,0,"Strongly Oppose",4,0,1 +"191","3","somewhat anxious",43,"bachelor's degree or higher","male",13,5,6,0,1,0,"Strongly Oppose",3,0,1 +"192","4","very anxious",53,"bachelor's degree or higher","male",12,3,3,0,0,0,"Strongly Oppose",3,1,1 +"193","3","a little anxious",49,"some college","female",10,6,4,0,1,0,"Oppose",3,0,1 +"194","3","somewhat anxious",34,"some college","male",11,5,4,0,1,0,"Favor",2,0,0 +"195","4","not anxious at all",36,"high school","male",11,9,7,0,0,0,"Strongly Oppose",4,0,0 +"196","2","very anxious",31,"bachelor's degree or higher","male",11,3,3,1,0,0,"Strongly Oppose",3,0,1 +"197","4","somewhat anxious",57,"bachelor's degree or higher","female",15,5,5,0,0,0,"Strongly Oppose",2,0,0 +"198","2","somewhat anxious",18,"less than high school","female",16,6,6,1,0,0,"Oppose",1,0,0 +"199","3","somewhat anxious",37,"bachelor's degree or higher","female",12,5,6,0,1,0,"Strongly Oppose",3,0,0 +"200","3","very anxious",63,"bachelor's degree or higher","male",16,3,4,0,1,0,"Strongly Oppose",1,0,0 +"201","2","a little anxious",48,"bachelor's degree or higher","female",16,8,8,1,0,0,"Oppose",3,0,0 +"202","4","not anxious at all",32,"high school","male",13,12,8,0,0,0,"Strongly Oppose",4,0,1 +"203","2","a little anxious",28,"some college","female",9,7,5,1,0,0,"Oppose",2,0,0 +"204","4","somewhat anxious",45,"high school","female",13,6,5,0,0,0,"Favor",3,0,0 +"205","1","a little anxious",59,"some college","male",13,7,8,1,1,1,"Oppose",4,1,1 +"206","4","not anxious at all",82,"high school","female",10,11,8,0,0,0,"Strongly Oppose",3,1,0 +"207","2","very anxious",62,"bachelor's degree or higher","female",2,4,4,1,0,0,"Favor",2,0,0 +"208","1","very anxious",35,"bachelor's degree or higher","female",19,4,5,1,1,1,"Oppose",3,0,0 +"209","4","very anxious",47,"some college","female",15,4,5,0,0,0,"Oppose",1,0,1 +"210","3","not anxious at all",65,"some college","male",15,11,8,0,1,0,"Strongly Oppose",2,0,0 +"211","1","a little anxious",62,"high school","male",13,8,8,1,1,1,"Strongly Oppose",4,0,0 +"212","4","a little anxious",59,"bachelor's degree or higher","female",18,7,7,0,0,0,"Strongly Oppose",4,0,1 +"213","4","somewhat anxious",51,"bachelor's degree or higher","female",9,6,6,0,0,0,"Oppose",2,0,0 +"214","1","somewhat anxious",33,"high school","female",12,8,6,1,1,1,"Strongly Oppose",4,0,0 +"215","1","a little anxious",27,"some college","female",8,9,6,1,1,1,"Oppose",3,0,0 +"216","2","somewhat anxious",54,"bachelor's degree or higher","female",10,5,3,1,0,0,"Strongly Oppose",2,1,0 +"217","3","very anxious",58,"bachelor's degree or higher","male",5,3,2,0,1,0,"Favor",1,0,0 +"218","2","very anxious",20,"some college","male",3,3,3,1,0,0,"Strongly Favor",2,0,0 +"219","3","very anxious",47,"bachelor's degree or higher","male",5,3,3,0,1,0,"Oppose",3,0,0 +"220","2","a little anxious",29,"high school","male",12,10,7,1,0,0,"Oppose",4,1,1 +"221","3","not anxious at all",54,"high school","female",4,12,8,0,1,0,"Strongly Oppose",4,0,0 +"222","1","a little anxious",24,"bachelor's degree or higher","female",7,7,6,1,1,1,"Oppose",3,0,0 +"223","2","not anxious at all",47,"high school","female",10,12,8,1,0,0,"Strongly Oppose",4,1,1 +"224","3","a little anxious",25,"some college","female",11,7,3,0,1,0,"Oppose",2,0,0 +"225","4","somewhat anxious",28,"high school","male",10,5,6,0,0,0,"Oppose",3,0,0 +"226","2","somewhat anxious",57,"bachelor's degree or higher","male",16,7,6,1,0,0,"Strongly Favor",3,0,1 +"227","4","a little anxious",26,"high school","male",8,10,6,0,0,0,"Strongly Oppose",4,0,0 +"228","1","a little anxious",43,"high school","male",7,7,7,1,1,1,"Strongly Favor",3,0,1 +"229","4","somewhat anxious",35,"high school","male",12,6,6,0,0,0,"Strongly Oppose",4,0,1 +"230","4","a little anxious",29,"bachelor's degree or higher","female",11,7,5,0,0,0,"Oppose",2,0,0 +"231","2","very anxious",26,"some college","female",14,5,4,1,0,0,"Oppose",3,0,0 +"232","3","not anxious at all",18,"high school","female",15,12,8,0,1,0,"Strongly Oppose",4,0,0 +"233","4","very anxious",60,"bachelor's degree or higher","female",12,3,2,0,0,0,"Oppose",1,0,0 +"234","4","very anxious",42,"bachelor's degree or higher","female",15,3,3,0,0,0,"Strongly Oppose",2,0,0 +"235","1","a little anxious",29,"high school","female",15,10,8,1,1,1,"Strongly Oppose",4,0,1 +"236","3","somewhat anxious",57,"bachelor's degree or higher","female",10,5,4,0,1,0,"Favor",1,0,0 +"237","2","not anxious at all",53,"high school","female",14,10,8,1,0,0,"Strongly Oppose",4,0,1 +"238","3","very anxious",27,"some college","male",6,3,6,0,1,0,"Strongly Oppose",3,0,0 +"239","1","a little anxious",25,"bachelor's degree or higher","male",8,9,7,1,1,1,"Strongly Oppose",4,0,1 +"240","3","somewhat anxious",37,"some college","female",7,7,4,0,1,0,"Strongly Oppose",2,0,0 +"241","1","a little anxious",25,"some college","female",12,7,7,1,1,1,"Oppose",3,0,1 +"242","1","very anxious",38,"bachelor's degree or higher","female",13,4,3,1,1,1,"Strongly Oppose",3,0,0 +"243","1","somewhat anxious",39,"bachelor's degree or higher","female",15,5,5,1,1,1,"Strongly Oppose",3,0,0 +"244","1","somewhat anxious",26,"some college","male",7,7,6,1,1,1,"Strongly Oppose",4,0,1 +"245","4","very anxious",45,"bachelor's degree or higher","female",18,5,3,0,0,0,"Strongly Oppose",3,0,0 +"246","2","somewhat anxious",27,"some college","male",13,5,7,1,0,0,"Favor",4,0,0 +"247","3","very anxious",46,"high school","male",12,3,5,0,1,0,"Oppose",2,0,0 +"248","1","somewhat anxious",62,"high school","male",3,5,2,1,1,1,"Strongly Oppose",3,0,0 +"249","3","somewhat anxious",44,"high school","female",12,6,5,0,1,0,"Oppose",2,0,0 +"250","3","somewhat anxious",65,"bachelor's degree or higher","male",9,6,8,0,1,0,"Strongly Oppose",3,0,0 +"251","2","not anxious at all",34,"bachelor's degree or higher","male",8,12,7,1,0,0,"Oppose",3,0,0 +"252","4","somewhat anxious",66,"high school","female",11,7,8,0,0,0,"Oppose",3,1,1 +"253","3","very anxious",44,"high school","female",14,3,4,0,1,0,"Favor",2,0,0 +"254","1","a little anxious",34,"high school","male",13,7,5,1,1,1,"Oppose",3,0,1 +"255","4","a little anxious",43,"some college","male",10,11,8,0,0,0,"Strongly Oppose",4,0,0 +"256","2","a little anxious",30,"high school","male",9,8,7,1,0,0,"Strongly Oppose",4,0,0 +"257","1","not anxious at all",27,"some college","female",17,12,7,1,1,1,"Strongly Oppose",4,0,1 +"258","1","a little anxious",20,"high school","female",17,8,4,1,1,1,"Oppose",2,0,1 +"259","2","a little anxious",56,"high school","female",10,10,8,1,0,0,"Strongly Oppose",3,0,0 +"260","2","not anxious at all",42,"high school","male",12,10,7,1,0,0,"Oppose",4,0,1 +"261","3","somewhat anxious",44,"bachelor's degree or higher","male",17,7,6,0,1,0,"Oppose",1,0,0 +"262","4","somewhat anxious",28,"bachelor's degree or higher","female",14,6,6,0,0,0,"Strongly Oppose",1,0,1 +"263","2","very anxious",38,"bachelor's degree or higher","female",14,3,6,1,0,0,"Favor",2,0,0 +"264","1","somewhat anxious",29,"bachelor's degree or higher","male",10,9,7,1,1,1,"Strongly Oppose",4,0,1 +"265","4","very anxious",52,"some college","female",1,3,2,0,0,0,"Oppose",2,0,0 diff --git a/statsmodels/stats/tests/results/influence_lsdiag_R.json b/statsmodels/stats/tests/results/influence_lsdiag_R.json new file mode 100644 index 0000000..ec9d27b --- /dev/null +++ b/statsmodels/stats/tests/results/influence_lsdiag_R.json @@ -0,0 +1 @@ +{"std.dev":10.7037959322668,"hat":[0.0256401118204194,0.0102912791219414,0.00615382823137815,0.022891524007603,0.0149028803586687,0.00848322047305122,0.0339213507663737,0.00521465779974826,0.0135892996943951,0.00964349861258443,0.0148261221312362,0.0114787394848897,0.00622515475127008,0.00623205683569176,0.00705805381220983,0.00701573108771227,0.00702849608843835,0.0135888171571392,0.00604360424055167,0.0185013583395479,0.00858120532105016,0.00799485917244209,0.00718402177548796,0.0224837852066988,0.00811473226026162,0.0147545237754216,0.0231622431942168,0.0224376785416127,0.0082112045676624,0.00606781082952795,0.00571243309952239,0.0114605154651649,0.00880946490031011,0.00595820498997754,0.00514214315736581,0.0164601545232,0.0102784683124976,0.00688544005756105,0.00602756700727969,0.00893911789501998,0.00897683289555812,0.00516051024359278,0.0150583394863529,0.0105436821805678,0.00770297759351984,0.00596034041957265,0.0267667765845641,0.0314429295089532,0.005303857274646,0.00665726664130154,0.0066874148682557,0.0115270824054887,0.0213254654306056,0.00526744937681136,0.0101303958537354,0.0256171167020065,0.0213583916555208,0.0174371063951737,0.0288533116629094,0.033255899438993,0.0207676694028528,0.0319640205017044,0.0448246587385835,0.0433947127055191,0.00586865199381642,0.0181316303090566,0.00889086879242889,0.0242910670616789,0.006366903841275,0.00961496612212614,0.0096551461236696,0.00968674054580874,0.0367000872889966,0.0134121135066486,0.00935579619247665,0.00956203582796244,0.072184775316909,0.0199317772916179,0.0151375221664312,0.007532000800996,0.0189376955120401,0.0257774232921598,0.0116579793378601,0.0175305259784465,0.059561122373118,0.0128735636130396,0.0131143375458935,0.0173192836006609,0.0330453518821902,0.0137641167380622,0.0507621647937914,0.0682519640405402,0.0637030729482148,0.0137181879350601,0.0215702202951134,0.0446043996874069,0.0249299793934902,0.0209492860322901,0.0240180001011766,0.017027486899611,0.0182572408533526,0.0263353356436558,0.0226825616395567,0.0193903170510785,0.00778694180233196,0.0156551957164238,0.0105461352341668,0.0054401876111826,0.0714758092445992,0.00733136166121943,0.00695709616586619,0.00530896159319476,0.00558756331383583,0.00512472599576075,0.0105959679841227,0.00603532534508569,0.00659501217148171,0.00577443861992324,0.00775169372943981,0.0089916678662184,0.0057864151115724,0.00859080887894925,0.0160293998582886,0.00549869266072661,0.00906137965273838,0.0103996198379157,0.0274786408359742,0.0169267190232155,0.0127283072465307,0.00642804850670256,0.00651714212488823,0.00573238287609896,0.00578738254812433,0.0061027179681222,0.00779334544816983,0.00835152002145904,0.00611639969808241,0.00539962559756053,0.00830722201805155,0.00523487058337534,0.00725007053549223,0.00517038161017289,0.00590185682642882,0.007956326806033,0.00765774255916155,0.007955502636324,0.0068466010530311,0.0053531846956638,0.0106258337059,0.0064284043348593,0.005826466656413,0.00521508751663823,0.0121764632741771,0.0102743970506638,0.00556461366732775,0.00954948375236221,0.0120887310456719,0.00764557361580993,0.0118552532563707,0.0058205004011486,0.00496241443756517,0.0075069439535672,0.0114378710427829,0.0074305057373094,0.0136430606545319,0.00811149887778098,0.0078918374470175,0.0130481518846423,0.00610553132510172,0.0120431138025517,0.00675050816702919,0.00500505169093315,0.012459372441125,0.00644460576436083,0.0124393678392461,0.0130721374312924,0.00661331245445086,0.0117898017269195,0.0115947707300928,0.0134620015068775,0.0104167624268443,0.0149900115537686,0.012796888846679,0.00640250165990253,0.0112087908639513,0.0049805568298691,0.0395579521552196,0.0101013356976456,0.00631616199687159,0.00868631169196707,0.0235442767251173,0.0064761654437429,0.00566203542473931,0.00527731830844482,0.00578673053255762,0.0259607726985618,0.0107381193135285,0.0636485399634325,0.0421405764825622,0.0864330668425508,0.0136079407019335,0.0195808581702544],"std.res":[-0.196316563909338,-1.58040782007861,1.66872327572338,1.34341508583876,-2.28438422260224,0.544100142654128,-1.98521098763908,0.925431694706693,0.704210070985433,1.3245997283391,-1.70849972450638,0.248675832132645,-1.2491131286534,0.196628335417579,-0.751200252635306,0.903936319632761,-0.474260565745427,-0.954140345707953,0.254808607952922,-1.18679897442068,-0.963401055446865,-0.296661151737212,0.869186531630132,0.607352662869685,-1.17219136589598,-1.01989674073134,-2.69623165795296,0.0392375688858789,-0.368348760665096,-0.412877008197382,-0.235956558208753,-1.34125995503797,-0.67630849637833,0.65607161565897,0.492657205774263,-1.64743979275096,-0.290931455918949,-1.48317935233782,0.604367286402851,0.796017389742759,0.0785948423866266,0.769990115881544,-0.322520944828154,0.0265845270905754,0.736458827157187,0.215110466322646,0.464356952896315,1.00754251033223,1.19949877063676,0.0638064000524388,-0.657358037042942,0.60010708499341,-0.696201241738183,-0.089227234851327,-1.56131730433648,-0.9325611523992,0.530716512449827,0.425039892532143,0.490978711348936,-0.298900657109842,0.10196570267987,0.231666038602481,1.61073610071798,-4.61177824645797,-1.67171417215455,1.09363549457279,-0.242977308600308,0.832757776658303,1.38510504196001,0.094237594562031,-0.108526617648441,0.744773366249954,0.216566317649665,-0.0428604766863424,-0.11713403198105,1.01691599519089,-3.12604511597091,0.247169819773815,-0.540591362838104,0.652669528462157,0.498046904524297,-1.26959553526098,-0.346729426524019,-0.0660666086891167,0.710024807524027,-1.80848585460084,1.53572906935649,1.25372569567815,0.689287592707496,1.44104981666311,1.86982146007388,-0.119291159987129,0.585938674221658,1.17727653868868,-2.43084169972589,0.691434496569324,0.969288230919195,0.397159221311248,1.58907415603116,1.6957384766646,-0.403794344831542,0.563976069222923,-0.700338424719573,-1.58103959003691,0.341250175605907,-1.81577609585618,1.329287232264,-0.640710396900957,0.0206632289998204,-1.69968048284382,0.314957787710145,1.1729408200108,-0.737432060414148,-0.386429545353477,1.03809511411074,-1.99942777733404,-0.208661343038141,0.403253743047054,-0.648720658945711,0.981393503604874,-0.63384980819374,-0.641810246587076,0.427248463047835,-0.390141082886532,0.447414773581452,0.157299216029366,-0.203591765978771,0.288742421558322,-0.136236840694801,1.25304703367836,1.78509894920075,-1.68917566645152,1.58739528146004,-0.388409553631085,0.315006845548853,1.46090980072571,0.14352021258359,0.0633852500551296,0.663470442718878,0.947979939905229,0.843627044476115,-0.78859887909357,0.9006081588513,1.01639986938758,-0.35453371942124,-0.650134750525952,0.961428866368925,0.3775955558461,0.0465394463821932,1.47324435307107,-0.878426594985825,0.610461625248696,1.02023427466438,-0.280276673899175,0.361014730559554,1.32031875671212,-0.772207437719942,-0.0568901214076158,-0.580618296449997,0.736117011504206,-0.433317131085366,-0.10342038545443,-0.643724221756983,0.0687297923943459,0.338973567116065,0.254025869285857,0.127901081774005,-0.504796604764396,-0.15573360768388,0.61523151852243,-1.78482369470888,0.81089880692836,0.362847551310648,0.156904376625662,0.769621781253455,0.116165104784202,-0.206274980170583,-0.509613448705888,0.687516326660102,-0.188975669303196,1.24202180088551,0.0329042308705889,0.12509713617169,0.0549063671051535,-0.57103726489809,0.125082345368185,1.05805643188248,-0.499971973432698,0.351378617765663,0.366528722983862,-1.02766904840547,-0.0916980035285138,0.128483329847108,-0.372000108136787,-0.693384210899087,0.273651886580227,-0.806885514047033,0.969670165845089,0.823664430143535,-2.56296644438216,-1.38652400390208,0.339220971502577],"stud.res":[-0.195841650155928,-1.58641911384379,1.67629486670585,1.34615356839809,-2.30911462026156,0.543135486784031,-2.00012131660044,0.92509634690731,0.703315354849676,1.32713094478638,-1.71683959163678,0.248088781614905,-1.25088420547208,0.196152727840593,-0.750375107658658,0.903519110757567,-0.473335028565752,-0.953924493642193,0.254209052576079,-1.18802510847097,-0.96322628366184,-0.29598028913739,0.8686503389348,0.606387005928133,-1.17330010310829,-1.02000026406461,-2.73996101407075,0.039139009266436,-0.367547416337236,-0.412014830180053,-0.23539588727085,-1.34397432811432,-0.675383705781977,0.655130013479263,0.491717768844544,-1.65461725332716,-0.29026128702989,-1.48769369181953,0.60340088154561,0.795281980835,0.0783983359883584,0.769199731757697,-0.321793683858053,0.0265176947592663,0.735609227706009,0.214594257795231,0.463439906743433,1.00758103809289,1.20083011728272,0.0636465316147693,-0.656417381301477,0.599139753653563,-0.695297058846687,-0.0890045439086494,-1.56701685769839,-0.932254383600913,0.529756409715789,0.424163186628673,0.490040439784586,-0.298215654468385,0.101711841848535,0.231114397247127,1.61726107036966,-4.86764398407849,-1.67934208884918,1.0941772978568,-0.242402003722307,0.832113947504004,1.38832899324413,0.0940026160161176,-0.108256797972726,0.743937258675926,0.216046956688092,-0.0427528487486992,-0.116843382752984,1.01700362086789,-3.19768234046633,0.246585861706963,-0.539627759870405,0.651725502342392,0.497103867469635,-1.27156178807631,-0.345961668054881,-0.065901125851083,0.709137392446852,-1.81894556524909,1.54102459757303,1.25554001942724,0.688375781239747,1.44498371953291,1.88172072984451,-0.118995310685327,0.584969438510647,1.17842570711766,-2.46154765131209,0.690525000421128,0.969140227280323,0.396317176680491,1.59522991073774,1.70382731754696,-0.402943617359462,0.563007376866873,-0.69943904728865,-1.58706135252467,0.340491322911004,-1.82640124916578,1.33186940680996,-0.639758752399203,0.0206112680629333,-1.70784640555007,0.314243772401251,1.17405548679772,-0.736584000210845,-0.385602097321569,1.03829870738888,-2.01473746437696,-0.208159181010525,0.402403713052435,-0.64777396248311,0.981302150631367,-0.632894420139978,-0.64085924449681,0.42636921999817,-0.389308508925131,0.446513837278159,0.156913249461126,-0.203100737599413,0.288076376321522,-0.135900443739916,1.25485496873288,1.79503805950914,-1.69713708947243,1.59352290628663,-0.387579361020664,0.314292743441911,1.46511232942912,0.143166564492549,0.063226428308885,0.662534509256501,0.947737450577042,0.843013542338469,-0.78784697969303,0.90017884649062,1.01648475632564,-0.353753547415538,-0.649188992689208,0.961245241075313,0.376780629436078,0.0464226184615076,1.47761819169153,-0.877920458527771,0.609496834114724,1.02033960691221,-0.279626770847235,0.360224496709445,1.32280382547182,-0.771421425302176,-0.0567474628437029,-0.5796488067322,0.735266873950435,-0.432431078736509,-0.10316298039145,-0.642774365593392,0.068557700685133,0.338218460249998,0.253427901972945,0.127584561654038,-0.503849367221737,-0.155351291344395,0.614268229207809,-1.79475676920213,0.810198486112277,0.362054513235584,0.156519330084132,0.768830676474841,0.115876793974438,-0.205778049067948,-0.508663425399874,0.686602641167702,-0.188517174117412,1.24372718460356,0.0328215420854592,0.124787332610118,0.054768652515637,-0.570067942131696,0.124772577275949,1.05837581935424,-0.499027703272928,0.350603425517646,0.36573010825973,-1.0278146753345,-0.091469248847871,0.12816541689819,-0.371193343211837,-0.692476859181928,0.27301482677903,-0.80617546448163,0.96952391643312,0.822996376464045,-2.59978700077173,-1.38976512465791,0.338465456283954],"cooks":[0.000338059505147097,0.00865723178904938,0.0057474287115453,0.0140938976496562,0.026315293306287,0.000844300625026242,0.0461267376014711,0.00149645589240069,0.00227731187333796,0.0056949659784713,0.0146427705442443,0.000239361385611978,0.00325795021652146,8.08197258204333e-05,0.00133706125320125,0.00192435407575085,0.000530686936943157,0.00418048754474454,0.000131593858284322,0.00885007562558548,0.00267783692917164,0.000236426959739891,0.00182223172578306,0.00282817372255785,0.00374704179154727,0.00519244494199798,0.0574581094452386,1.17792162599887e-05,0.000374442249433928,0.000346892907477392,0.000106623262910048,0.0069520805096347,0.0013550671447424,0.000859987302149778,0.0004181687292271,0.0151404853745807,0.000293005308468407,0.00508391686223943,0.000738326318449162,0.00190510179676988,1.86511740010418e-05,0.00102515297007154,0.000530104106652094,2.51033860015907e-06,0.00140343607454492,9.24845486902184e-05,0.00197679574952389,0.0109850816553712,0.00255728867091129,9.095028474626e-06,0.000969739370632169,0.00139988021837211,0.00352053416166496,1.40529549821534e-05,0.00831590499269949,0.00762138649504167,0.00204903235146531,0.00106869109335038,0.00238734344804068,0.00102444737181892,7.35002804295178e-05,0.000590708733026918,0.0405846140050378,0.321602649997367,0.00549917299541763,0.00736219854213196,0.000176535846118652,0.00575496187862585,0.00409775895227504,2.87389448478375e-05,3.82757476720714e-05,0.00180855655440363,0.000595615712211844,8.32442376556658e-06,4.31924640614139e-05,0.0033279131976342,0.253427268586742,0.000414151601379732,0.00149725630618711,0.00107760417282862,0.00159606206744372,0.0142164391892161,0.00047268973233897,2.59608348928299e-05,0.0106428536293457,0.0142178843751192,0.0104469008602283,0.00923424279711962,0.00541232594463775,0.00966060403472993,0.0623223928396501,0.000347465696964811,0.00778627714602856,0.00642586278675653,0.0434227194762412,0.00744004039609359,0.00800701680649536,0.00112505067443086,0.0207139111317908,0.0166037304892332,0.00101073347141661,0.00286767246629379,0.00379446985525894,0.016476044955594,0.000304639702719548,0.017478919503576,0.0062778971860529,0.000748488718152608,1.09557214334998e-05,0.00711203136191795,0.000231655940733754,0.00244766695593282,0.00101854139780442,0.000256401998437516,0.00384698064086267,0.00809133019577491,9.6350063937219e-05,0.000314818615396243,0.00109589877497995,0.00291291662061268,0.00077943762285425,0.00118979778079808,0.000991231063632728,0.000280527992165689,0.000610164530529988,8.66741261662377e-05,0.000390386924874457,0.000478505381781142,7.97630657664005e-05,0.00338604958199346,0.00696787174457294,0.00548353062736187,0.00488935797381418,0.000308773733780811,0.000259800821814743,0.00599146913780161,4.22537459612443e-05,7.2705989655065e-06,0.0012291377930033,0.00157638551821612,0.00173253532978554,0.00107737017227842,0.00160512887141845,0.00276178437453593,0.000323320406012404,0.00112985308886524,0.00212408430270099,0.000255785443094714,7.7539611279836e-06,0.00468093201388434,0.00150741476623512,0.00065122024519556,0.00427681394726673,0.000271828003321492,0.000243101164460836,0.00560252035045689,0.00243225711169109,8.31181234324622e-06,0.00134818797601161,0.00105746980120869,0.000312136107001997,2.69666343222625e-05,0.00159815785535862,1.17876236074739e-05,0.000529770923159111,0.000175902857524192,4.33756792876663e-05,0.00112296089867711,4.96622765910915e-05,0.00153800127582792,0.00721684713812081,0.00110255372153265,0.000553692110039628,5.32295911835011e-05,0.00248695534435519,5.95787404228755e-05,9.4421861824405e-05,0.00103280344127862,0.00184829763694874,0.000162437518695764,0.00541274555931894,5.49216486911482e-06,6.76194077689675e-05,6.47535189411207e-06,0.00123214499041157,2.61046040255852e-05,0.0153694754032909,0.00085027249678487,0.000261598012166095,0.000392391037180782,0.00848824871967303,1.82699833003344e-05,3.13336417085302e-05,0.00024472376566775,0.000932782405131919,0.000665298900313244,0.00235569756564353,0.0213047462814089,0.00994896869574054,0.207159157926247,0.00884049069150734,0.000766062268694792],"dfits":[-0.0317691297817947,-0.161770345833471,0.131905685550953,0.206044283477855,-0.284014866826653,0.0502387149549593,-0.374788852715203,0.066978464083253,0.0825505079658197,0.130958987427375,-0.210613915739852,0.0267338322651338,-0.099002961306039,0.0155334371017513,-0.0632643386638917,0.0759456014577861,-0.0398227691416105,-0.111963337068527,0.0198223597786326,-0.163110746497045,-0.0896135944681868,-0.0265712042499109,0.0738914917688683,0.0919650084690659,-0.106124458313401,-0.124821862275667,-0.421913550003275,0.00592961589629288,-0.033443152667913,-0.0321921873795729,-0.0178424065102043,-0.144709165327537,-0.063671747628394,0.0507204261971537,0.0353514691364436,-0.21405162199616,-0.0295799072559915,-0.123873867738002,0.0469883066100764,0.0755297953148236,0.00746150632928833,0.055399894578576,-0.0397887965633926,0.00273737065660378,0.0648120325932964,0.0166169676035811,0.0768569245469983,0.18154273708397,0.0876864058206456,0.00521042511337785,-0.0538599860352603,0.0647001739058529,-0.10263618657193,-0.00647678080665288,-0.15852504396747,-0.151159252085608,0.0782615878196407,0.056505406342006,0.0844670521080161,-0.0553106829982772,0.0148123009661104,0.0419963891440685,0.350345930665751,-1.03674232029856,-0.129028743143792,0.148689223223965,-0.0229587144928392,0.13129432580815,0.111133121880882,0.0092621494553103,-0.0106891058613759,0.0735764529149022,0.0421697417328056,-0.00498477751253405,-0.0113549609930915,0.099927274684875,-0.891923025610985,0.0351651950880851,-0.066901196199663,0.0567755876508931,0.0690656990967065,-0.206836950011059,-0.0375738755715726,-0.00880300147728805,0.178462320358377,-0.20772209904691,0.177643503571488,0.166682231133931,0.127255839430806,0.170705190950118,0.435148726168444,-0.0322061032496542,0.152583147538054,0.138979283994013,-0.365485966762151,0.149202684680706,0.154963593406758,0.0579728851297259,0.250248107182785,0.22424882055609,-0.0549494057320888,0.0925931394796417,-0.106556046745712,-0.223171165998545,0.0301638688674026,-0.230330695818575,0.137502481734781,-0.047315967125388,0.00571857262221389,-0.146770570182486,0.0263024786531442,0.0857727455037498,-0.0552141303332612,-0.0276751761421024,0.107449845190476,-0.156994099672491,-0.0169605606054581,0.0306672195063882,-0.0572547611077122,0.0934725791086458,-0.0482832186635534,-0.0596558738500928,0.0544193581430485,-0.0289481583719494,0.0426981155407216,0.0160856428312143,-0.0341396881914093,0.0378008087567259,-0.0154307792136305,0.100933061361647,0.145385826023819,-0.128864375155872,0.12157933696689,-0.0303704719529812,0.0278544924768855,0.134454335646659,0.011231086453804,0.00465860795086943,0.0606384145468696,0.068751272474813,0.0720419956415018,-0.0567974476825012,0.0693599077248783,0.0910315171876065,-0.0310756657729568,-0.0581352284310337,0.0798111460946797,0.027641412553084,0.0048109501567653,0.118854119284479,-0.0672088870537804,0.044130379241155,0.113283234815316,-0.0284904636773912,0.0269465064108386,0.129887990514786,-0.0853341927912512,-0.00498101765088202,-0.0634906949959914,0.0562590973800299,-0.0305382166673249,-0.00897205089991251,-0.069139966023196,0.00593177909109768,0.0397773787755665,0.0229178333298728,0.0113790938696179,-0.0579331625147743,-0.0121760511184108,0.067820104153336,-0.147960114172528,0.0574626000624283,0.0406672273701887,0.012605791375952,0.086287517424793,0.013336045495007,-0.0167899498374329,-0.0555595982280932,0.0743650775631731,-0.0220215979607427,0.127604309431997,0.00404892422068045,0.0142075581658822,0.00439644516952661,-0.0606951101301077,0.00882759321615086,0.214793545557743,-0.0504102311603701,0.0279523722959418,0.0342351998620461,-0.159599384986038,-0.00738490537584023,0.00967141757633376,-0.0270368327058704,-0.0528301832345938,0.0445714555392936,-0.0839920249552144,0.25277452544073,0.172622448016845,-0.799663997319448,-0.163234829320064,0.047832636682972],"correlation":[1,-0.609979593563002,-0.33904565807348,-0.609979593563002,1,-0.0374066569030527,-0.33904565807348,-0.0374066569030527,1],"std.err":[1.06849580666268,0.214694110888404,0.284668053608957],"cov.scaled":[1.14168328885573,-0.139929170659961,-0.103126372374865,-0.139929170659961,0.0460935612501624,-0.00228616599155909,-0.103126372374865,-0.00228616599155909,0.0810359007455123],"cov.unscaled":[0.00996483249651867,-0.00122132885767367,-0.000900106918197171,-0.00122132885767367,0.000402313515060946,-1.9954098818383e-05,-0.000900106918197171,-1.9954098818383e-05,0.000707297010489554]} diff --git a/statsmodels/stats/tests/results/influence_measures_R.csv b/statsmodels/stats/tests/results/influence_measures_R.csv new file mode 100644 index 0000000..20b8d0f --- /dev/null +++ b/statsmodels/stats/tests/results/influence_measures_R.csv @@ -0,0 +1,203 @@ +"","dfb.1_","dfb.ggdp","dfb.lint","dffit","cov.r","cook.d","hat" +"1",0.00441265074628045,-0.0276220080672388,0.00820003383763133,-0.0317691297817947,1.04133845994251,0.000338059505147097,0.0256401118204194 +"2",-0.157853502778310,0.113535527733652,0.0220165237589744,-0.161770345833471,0.987643068137894,0.00865723178904938,0.0102912791219414 +"3",0.122568803310737,-0.0570659253028159,-0.00992921234127727,0.131905685550953,0.979229034686558,0.0057474287115453,0.00615382823137815 +"4",-0.0618024933201239,0.154029136886195,0.0918846063568454,0.206044283477855,1.01099941450810,0.0140938976496562,0.0228915240076030 +"5",-0.260615622829715,0.231858462722509,0.00183995633759404,-0.284014866826653,0.951618587852007,0.026315293306287,0.0149028803586687 +"6",0.0375488452639789,-0.0274508819385169,0.0182631319629678,0.0502387149549593,1.01935133349875,0.000844300625026242,0.00848322047305122 +"7",-0.337905835616791,0.333935348901952,0.0793904495268091,-0.374788852715203,0.989667951628328,0.0461267376014711,0.0339213507663737 +"8",0.056672246814329,-0.0134002898403391,-0.00639960282481565,0.066978464083253,1.00743037915877,0.00149645589240069,0.00521465779974826 +"9",-0.0112308668500980,0.0602333757498556,0.0242616108208375,0.0825505079658197,1.02153916278797,0.00227731187333797,0.0135892996943951 +"10",0.0187535474211386,0.0892523558754287,-0.0228231983037555,0.130958987427375,0.998237218935754,0.0056949659784713,0.00964349861258443 +"11",0.0216355175453458,-0.171734841157759,-0.000919129593533817,-0.210613915739852,0.985821467735423,0.0146427705442443,0.0148261221312362 +"12",-0.000850160461419477,0.0199488913393098,0.00216860696628446,0.0267338322651338,1.02605988206678,0.000239361385611978,0.0114787394848897 +"13",-0.0525109406799243,-0.0335527590525325,0.0309190052827991,-0.099002961306039,0.997745976735108,0.00325795021652146,0.00622515475127008 +"14",0.0060771579880768,0.00203029027593295,0.00666443336334128,0.0155334371017513,1.02099947789533,8.08197258204333e-05,0.00623205683569176 +"15",-0.0616775226635543,0.0316915198414122,0.0126168382837044,-0.0632643386638917,1.01377127701015,0.00133706125320125,0.00705805381220983 +"16",0.0158855550719328,0.0373760311301011,0.015936010049146,0.0759456014577861,1.00985865634571,0.00192435407575085,0.00701573108771227 +"17",-0.00827482317883835,-0.0174099907496639,-0.0122143485516132,-0.0398227691416105,1.01895131558588,0.000530686936943157,0.00702849608843835 +"18",-0.00568365101735981,-0.0849866152889783,0.0304765010920485,-0.111963337068527,1.01515316664282,0.00418048754474454,0.0135888171571392 +"19",0.0100243199715215,-0.00069133102581757,0.00842180969436625,0.0198223597786326,1.02040168406800,0.000131593858284322,0.00604360424055167 +"20",0.0220154606508643,-0.139265067144860,0.0147683811746775,-0.163110746497045,1.01255717356319,0.00885007562558548,0.0185013583395479 +"21",-0.0130195649086606,-0.0264773652686945,-0.0509029533577494,-0.0896135944681868,1.00975406587915,0.00267783692917164,0.00858120532105016 +"22",-0.00314946742919776,-0.0133247575626197,-0.00904996717266059,-0.0265712042499109,1.02205297666895,0.000236426959739891,0.00799485917244209 +"23",0.0575269774895746,-0.0356714227089746,0.0219368969109603,0.0738914917688683,1.01097219252539,0.00182223172578306,0.00718402177548796 +"24",-0.0210643432666686,0.0810114306757724,0.00266818393768672,0.091965008469066,1.03281455914362,0.00282817372255785,0.0224837852066988 +"25",-0.0117503088614016,-0.0525425641250743,-0.0383908165909053,-0.106124458313401,1.00247838191447,0.00374704179154727,0.00811473226026162 +"26",0.0105004763591099,-0.101735785505617,0.00544711405510734,-0.124821862275667,1.01435755655147,0.00519244494199798,0.0147545237754216 +"27",0.122690569892291,-0.353053155816855,-0.110472713141731,-0.421913550003275,0.929510893277947,0.0574581094452386,0.0231622431942168 +"28",-0.00126735925963920,0.00523371502331319,-9.08010137263473e-05,0.00592961589629288,1.03850627359943,1.17792162599887e-05,0.0224376785416127 +"29",-0.0320703912182957,0.0124962390223599,0.0164907653807581,-0.033443152667913,1.02154107743523,0.000374442249433928,0.0082112045676624 +"30",-0.0184936759060551,0.0044771456917678,-0.0132267787987295,-0.0321921873795729,1.01880331190181,0.000346892907477392,0.00606781082952795 +"31",-0.0135405988419321,-0.000831309338260206,0.00648965359237211,-0.0178424065102043,1.02020414252219,0.000106623262910048,0.00571243309952239 +"32",-0.0234070818701596,-0.00690834402732063,-0.108511324236670,-0.144709165327537,0.999396653353854,0.0069520805096347,0.0114605154651649 +"33",-0.0560167978914327,0.0413884268610769,-0.00947268432989638,-0.063671747628394,1.01720489684506,0.00135506714474240,0.00880946490031011 +"34",0.039032856167431,0.00177030401367416,-0.0208353905470559,0.0507204261971537,1.01470049111503,0.000859987302149778,0.00595820498997754 +"35",0.0271398296872078,-0.000366770357014306,-0.0067964125649682,0.0353514691364436,1.01674626951481,0.0004181687292271,0.00514214315736581 +"36",0.00272249628553370,-0.171171797787231,0.0586944561717607,-0.21405162199616,0.990558344427024,0.0151404853745807,0.0164601545232 +"37",-0.000691574327205712,-0.0211608044240972,-0.00160937221231222,-0.0295799072559915,1.02446320250087,0.000293005308468407,0.0102784683124976 +"38",-0.102977776581054,0.00882126434730293,0.0646964419297267,-0.123873867738002,0.988738732801928,0.00508391686223943,0.00688544005756105 +"39",0.0440629506555616,-0.0162498101477268,-0.0108067502953262,0.0469883066100764,1.01577076546269,0.000738326318449162,0.00602756700727969 +"40",0.0089983051368223,0.0504506598244362,-0.00231466167368299,0.0755297953148236,1.01463103670997,0.00190510179676988,0.00893911789501998 +"41",0.0071524743601461,-0.00291243347945575,-0.00394887498595224,0.00746150632928833,1.02432885775904,1.86511740010418e-05,0.00897683289555812 +"42",0.0460978661968373,-0.00873508251065908,-0.00663989974012211,0.055399894578576,1.01140044660800,0.00102515297007154,0.00516051024359278 +"43",-0.0350718800361681,0.0325157499206040,-0.00354005800166412,-0.0397887965633926,1.02913403149041,0.000530104106652094,0.0150583394863529 +"44",0.0025631198904251,-0.00199247062049748,3.62700743594409e-06,0.00273737065660378,1.02603554291675,2.51033860015907e-06,0.0105436821805678 +"45",0.0640411689078228,-0.0345803022641278,-0.0161639480459519,0.0648120325932963,1.01476652542117,0.00140343607454492,0.00770297759351984 +"46",0.0072572985220666,0.00166278623704280,0.00656776852875776,0.0166169676035811,1.02060327603551,9.24845486902184e-05,0.00596034041957265 +"47",0.06699840315261,-0.0692713372243957,-0.00140298574978897,0.0768569245469983,1.03976267084193,0.00197679574952389,0.0267667765845641 +"48",-0.0324325211886924,0.161284378977839,-0.0479098406900465,0.181542737083970,1.03222683012053,0.0109850816553712,0.0314429295089532 +"49",0.0689451826622192,-0.0206455622525693,0.0100406795817797,0.0876864058206456,0.998663045358613,0.00255728867091129,0.005303857274646 +"50",0.00399927193104791,0.000197273618196454,-0.00263638358718326,0.00521042511337785,1.02196938035181,9.09502847462599e-06,0.00665726664130154 +"51",-0.0464092481853032,0.0265872804978113,-0.00781367319531253,-0.0538599860352603,1.01541948128106,0.000969739370632168,0.0066874148682557 +"52",0.00272463044142107,0.0484269448707113,-0.00837565811752561,0.0647001739058529,1.02150131728966,0.00139988021837211,0.0115270824054887 +"53",0.0145170735404201,-0.0889260227956267,0.0167684940074198,-0.102636186571929,1.02978869434807,0.00352053416166496,0.0213254654306056 +"54",-0.00395413461459616,-0.00130815999892876,0.00094989305841703,-0.00647678080665288,1.02048165679473,1.40529549821534e-05,0.00526744937681136 +"55",-0.0219269423354034,-0.109502207401866,0.0333826229092215,-0.158525043967470,0.988387031848504,0.0083159049926995,0.0101303958537354 +"56",0.0257012163061195,-0.133522708721743,0.0295787369696062,-0.151159252085608,1.02831854873771,0.00762138649504167,0.0256171167020065 +"57",0.0391529981600801,0.0185536353850222,-0.0666856903091354,0.0782615878196407,1.03298640174875,0.00204903235146531,0.0213583916555208 +"58",0.0437333013136184,-0.0455471645778853,0.0162484804923643,0.0565054063420059,1.03043347928165,0.00106869109335038,0.0174371063951737 +"59",0.0463102014931531,0.00977717072271567,-0.0765682438348477,0.0844670521080161,1.04159673743007,0.00238734344804068,0.0288533116629094 +"60",-0.0507616871075231,0.0390831365038349,0.0313232219864747,-0.0553106829982772,1.04873814225288,0.00102444737181892,0.0332558994389930 +"61",0.0119027524383801,-0.00382669262943475,-0.0121956909420860,0.0148123009661104,1.03659674805722,7.35002804295178e-05,0.0207676694028528 +"62",0.0390229795481509,-0.0325719752923061,-0.0194940453196664,0.0419963891440685,1.04790215055176,0.000590708733026918,0.0319640205017044 +"63",0.277693832138477,-0.144223710760773,-0.291694786195702,0.350345930665751,1.02183895888408,0.0405846140050378,0.0448246587385835 +"64",-0.934439788188261,0.776299026187541,0.561797543736656,-1.03674232029856,0.756075005372038,0.321602649997368,0.0433947127055191 +"65",-0.102037227495745,4.67632247426027e-05,0.050998407378252,-0.129028743143792,0.978798602564472,0.00549917299541763,0.00586865199381642 +"66",0.0389825511280923,0.082839443154373,-0.098999349484315,0.148689223223965,1.0154443191391,0.00736219854213196,0.0181316303090566 +"67",-0.0095870845763813,-0.0106099615878710,0.0113908677560231,-0.0229587144928392,1.02342399018268,0.000176535846118652,0.00889086879242889 +"68",0.000841353635337924,0.10166786548926,-0.0619750035009119,0.131294325808150,1.02966296409543,0.00575496187862585,0.0242910670616789 +"69",0.0531764019139079,-0.00492320105530187,0.0523331059724712,0.111133121880882,0.992466490248236,0.00409775895227504,0.006366903841275 +"70",0.00809855601750616,-0.00194580209107360,-0.00607364646698403,0.0092621494553103,1.02494708533381,2.87389448478375e-05,0.00961496612212614 +"71",-0.00820390382245257,0.000176944138470458,0.00744755386225664,-0.0106891058613759,1.02494389848098,3.82757476720714e-05,0.0096551461236696 +"72",0.0386028433914636,0.0243860279587293,-0.0461817254440385,0.0735764529149022,1.01660998436365,0.00180855655440363,0.00968674054580874 +"73",0.00903180672589254,0.0222608033364389,-0.0331035927882998,0.0421697417328055,1.05316164331443,0.000595615712211844,0.0367000872889966 +"74",-0.000655865005578635,-0.00351083460673362,0.00196048252777031,-0.00498477751253405,1.02900113151422,8.32442376556658e-06,0.0134121135066486 +"75",-0.0112130677252186,0.00741197715374095,0.00212385543291173,-0.0113549609930915,1.02460417942585,4.31924640614139e-05,0.00935579619247665 +"76",0.0930715006991473,-0.0333819786027404,-0.0595477762440921,0.099927274684875,1.00913250874033,0.00332791319763420,0.00956203582796243 +"77",0.258374140134625,-0.829664337768013,0.260277672696777,-0.891923025610985,0.940801592553066,0.253427268586742,0.072184775316909 +"78",0.0201137391624832,0.00511802169936869,-0.0302247355692123,0.0351651950880851,1.03492124975438,0.000414151601379732,0.0199317772916179 +"79",-0.0291697324770151,-0.0253000421302248,0.0496149304703508,-0.066901196199663,1.02629763225091,0.00149725630618711,0.0151375221664312 +"80",0.0554713255109026,-0.0315583903055274,-0.00924647291965288,0.0567755876508931,1.01637790839255,0.00107760417282862,0.007532000800996 +"81",0.0598325523209567,-0.0254534612214656,-0.0526316996401606,0.0690656990967064,1.03096051003461,0.00159606206744372,0.0189376955120401 +"82",-0.130721943769868,-0.00080283319787362,0.185815985318551,-0.206836950011059,1.01697275660796,0.0142164391892161,0.0257774232921598 +"83",-0.0343891918602564,0.0130405076148331,0.0248367198031264,-0.0375738755715726,1.02534272182497,0.000472689732338971,0.0116579793378601 +"84",-0.00719714667434395,0.00215555444346089,0.00705320893951802,-0.00880300147728805,1.03327522340919,2.59608348928299e-05,0.0175305259784465 +"85",0.152707788587754,-0.165398832014439,-0.0367349235518283,0.178462320358377,1.07134228269724,0.0106428536293457,0.059561122373118 +"86",-0.206355181999023,0.138035912378501,0.0813895812934558,-0.207722099046910,0.97858758172213,0.0142178843751192,0.0128735636130396 +"87",0.0115238465794995,0.133171191000712,-0.0486567648445861,0.177643503571488,0.992575074145864,0.0104469008602283,0.0131143375458935 +"88",-0.036567034378381,0.127954047912141,0.0540734054675645,0.166682231133931,1.00883320384338,0.00923424279711962,0.0173192836006609 +"89",0.063746383368059,-0.0913267396340142,0.0770359585152424,0.127255839430806,1.04242103768270,0.00541232594463775,0.0330453518821902 +"90",-0.00228409276152349,0.0455996233109926,0.126968096281215,0.170705190950118,0.997505831546696,0.00966060403472993,0.0137641167380622 +"91",0.20052766709692,-0.324075119967845,0.268581333367471,0.435148726168444,1.01413269267506,0.0623223928396501,0.0507621647937914 +"92",-0.0144301693099021,0.0247396646815441,-0.0196192548450324,-0.0322061032496542,1.08936144532071,0.000347465696964812,0.0682519640405402 +"93",-0.0124421866109771,-0.0168647798770595,0.146089739391446,0.152583147538054,1.07869911787854,0.00778627714602856,0.0637030729482148 +"94",0.123976574618603,-0.110891228423988,0.0110763256345898,0.138979283994013,1.00799102071031,0.00642586278675653,0.0137181879350601 +"95",-0.112025024477038,0.149760794802547,-0.289118635563677,-0.365485966762151,0.947896500908963,0.0434227194762412,0.0215702202951134 +"96",-0.0280790180606476,0.0208790559060022,0.138243082801098,0.149202684680706,1.05498572140356,0.00744004039609358,0.0446043996874069 +"97",-0.0491434392637465,0.110810878946811,0.0792597913612842,0.154963593406758,1.02650745828803,0.00800701680649535,0.0249299793934902 +"98",-0.0151252564180455,0.0365075953511099,0.0337360196337896,0.0579728851297259,1.03448772639739,0.00112505067443086,0.0209492860322901 +"99",-0.0734390345628697,0.158692730055703,0.150584026370608,0.250248107182785,1.00111386125692,0.0207139111317908,0.0240180001011766 +"100",-0.0482781680043051,0.153797230656578,0.103776698563887,0.224248820556090,0.988686060552207,0.0166037304892332,0.0170274868996110 +"101",0.0109271947810833,-0.0291631572870645,-0.0356287230442795,-0.0549494057320888,1.03156833268080,0.00101073347141661,0.0182572408533526 +"102",-0.0052913171204953,0.00564314527688611,0.0829773089499882,0.0925931394796417,1.03769598611167,0.00286767246629380,0.0263353356436558 +"103",-0.0019142878931617,0.00153926630941227,-0.0941922688782311,-0.106556046745712,1.0311286142873,0.00379446985525894,0.0226825616395567 +"104",-0.00148862092462863,-0.0138245657804799,-0.191438414749723,-0.223171165998545,0.996776973342068,0.0164760449555940,0.0193903170510785 +"105",0.00966177958983113,0.00116607098132037,0.0181112920135118,0.0301638688674026,1.02140050901087,0.000304639702719548,0.00778694180233196 +"106",0.0315684814728745,-0.108482958344396,-0.152381071115158,-0.230330695818575,0.980955576260676,0.0174789195035760,0.0156551957164238 +"107",0.0337691400381436,-0.00586032306850008,0.100136363317599,0.137502481734781,0.998958833885263,0.00627789718605291,0.0105461352341668 +"108",-0.0223879159243522,-0.00887539543039462,-0.0107395324821781,-0.047315967125388,1.01447723394760,0.000748488718152608,0.00544018761118260 +"109",-0.00039639912220184,-0.000847423239870689,0.00547939417686392,0.00571857262221388,1.09337122518171,1.09557214334998e-05,0.0714758092445992 +"110",-0.0422412892641729,-0.0222473988898062,-0.0797383401581377,-0.146770570182486,0.9788284045791,0.00711203136191794,0.00733136166121943 +"111",0.0161896093370143,-0.00786798777495383,0.0120178190015976,0.0263024786531442,1.02081258841188,0.000231655940733754,0.00695709616586619 +"112",0.0739827000233145,-0.0207487103439364,-0.00735700794582506,0.0857727455037498,0.99962397445499,0.00244766695593281,0.00530896159319476 +"113",-0.0290363600359079,-0.0169979050587900,0.00828936431437202,-0.0552141303332612,1.01258585483040,0.00101854139780442,0.00558756331383583 +"114",-0.0160134796997051,-0.00255634564522483,-0.00431770457436411,-0.0276751761421024,1.01816222978241,0.000256401998437516,0.00512472599576075 +"115",-0.00119948966500862,0.0764594792612198,0.0146007985999872,0.107449845190476,1.00952092680642,0.00384698064086267,0.0105959679841227 +"116",-0.108975508843172,0.0440034138622466,-0.0515504819215314,-0.156994099672491,0.961064652115311,0.00809133019577491,0.00603532534508569 +"117",-0.00471629006851029,-0.00832572123788222,-0.00124078095505737,-0.0169605606054581,1.02129741081381,9.6350063937219e-05,0.00659501217148171 +"118",0.0225827076367757,-0.00873096785287788,0.00793475931079856,0.0306672195063882,1.01862338589035,0.000314818615396243,0.00577443861992324 +"119",-0.00792489782165613,-0.0279782539261459,-0.0189846969640875,-0.0572547611077122,1.01668187377065,0.00109589877497995,0.00775169372943981 +"120",0.0202548699263408,0.0102355475586194,0.0613962206909748,0.0934725791086458,1.00963701243817,0.00291291662061268,0.0089916678662184 +"121",-0.0262399601892536,0.00222698008489494,-0.0182865250506655,-0.0482832186635534,1.01496457816243,0.00077943762285425,0.0057864151115724 +"122",-0.0182997841278133,0.000722203224204362,-0.0388265413181986,-0.0596558738500928,1.01767947763927,0.00118979778079808,0.00859080887894925 +"123",0.0194069400066233,-0.0207398754554714,0.04095599319344,0.0544193581430485,1.02893007614522,0.000991231063632729,0.0160293998582886 +"124",-0.0155593572776726,-0.00838735127656365,0.00394399082388105,-0.0289481583719494,1.01850080404318,0.000280527992165689,0.00549869266072661 +"125",0.0221557227452900,-0.0145730871219834,0.0253214426788931,0.0426981155407216,1.02142300526946,0.000610164530529988,0.00906137965273838 +"126",0.0118319576696572,-0.0100568729398275,0.00624033558081889,0.0160856428312143,1.02551448366005,8.66741261662376e-05,0.0103996198379157 +"127",-0.0321395699668872,0.0267819948499196,0.014423229419617,-0.0341396881914093,1.04326131791001,0.000390386924874457,0.0274786408359742 +"128",0.0285989342361548,-0.0298177018632094,0.0121485026749138,0.0378008087567259,1.03141110028124,0.000478505381781142,0.0169267190232155 +"129",-0.0034160111520063,0.00157949232447250,-0.0120091857644707,-0.0154307792136305,1.02802919764379,7.97630657664005e-05,0.0127283072465307 +"130",0.0737756478120542,-0.0370654429094918,0.0324750293677335,0.100933061361647,0.99780047340909,0.00338604958199346,0.00642804850670256 +"131",0.108754951347604,-0.0571593779161993,0.0446983546984707,0.145385826023819,0.973579500624454,0.00696787174457294,0.00651714212488823 +"132",-0.0643914580818968,-0.0438273759818789,0.0201789867980899,-0.128864375155871,0.97778654363498,0.00548353062736187,0.00573238287609896 +"133",0.0666371382773241,0.0370804928370407,-0.0289816536417227,0.121579336966890,0.982836724119,0.00488935797381418,0.00578738254812433 +"134",-0.0180153629484886,-0.00820755928661826,0.0106333754404035,-0.0303704719529812,1.01914050917616,0.000308773733780811,0.00610271796812220 +"135",0.0165835783878316,0.00742681636431894,-0.0153624339037495,0.0278544924768855,1.02167247104538,0.000259800821814743,0.00779334544816983 +"136",0.133381912880122,-0.0679416994412494,-0.0498231260500659,0.134454335646659,0.991190489998133,0.00599146913780161,0.00835152002145904 +"137",0.00968493022342275,-0.00141490032435052,-0.00463870794204135,0.0112310864538040,1.02115876246777,4.22537459612443e-05,0.00611639969808241 +"138",0.00408227515979403,-0.00125792733906052,-0.000424633830322186,0.00465860795086943,1.02067795631047,7.2705989655065e-06,0.00539962559756053 +"139",0.023936930292261,0.0295448092704238,-0.0258444395950622,0.0606384145468696,1.01695399000087,0.0012291377930033,0.00830722201805155 +"140",0.0401198075217554,0.0149329030991533,-0.00636661847646686,0.068751272474813,1.00680665258836,0.00157638551821612,0.00523487058337534 +"141",0.0204239236396401,0.0398456755975789,-0.00913370706130725,0.0720419956415017,1.01170940968221,0.00173253532978554,0.00725007053549223 +"142",-0.0471934585512789,0.00816281290094035,0.00808889924349126,-0.0567974476825012,1.01096699928543,0.00107737017227842,0.00517038161017289 +"143",0.0250429731472113,0.0232330548410895,0.0144730764495864,0.0693599077248783,1.00881883202547,0.00160512887141845,0.00590185682642882 +"144",0.0657120357154397,-0.0447192415887432,0.0352773359062732,0.0910315171876064,1.00751516274721,0.00276178437453593,0.007956326806033 +"145",-0.0244165358758519,0.0163106918426248,-0.00928534991712937,-0.0310756657729568,1.02112515269773,0.000323320406012404,0.00765774255916155 +"146",-0.0182675580077279,-0.00186119164460427,-0.0355865149056045,-0.0581352284310337,1.01686252821256,0.00112985308886524,0.007955502636324 +"147",0.0376568946756121,-0.00781374471000143,0.0415309555016348,0.0798111460946797,1.00804842427754,0.00212408430270099,0.0068466010530311 +"148",0.0181075486475426,-0.00308223383691712,0.00703683264178592,0.027641412553084,1.01849979242030,0.000255785443094714,0.0053531846956638 +"149",0.000192720538665721,0.00351542038884082,-0.000193658580844725,0.0048109501567653,1.02609816633136,7.7539611279836e-06,0.0106258337059000 +"150",0.0478532261186887,0.00862866408578177,0.0559691907396153,0.118854119284479,0.98872648491769,0.00468093201388435,0.0064284043348593 +"151",-0.0252333258845494,-0.0213289759697564,-0.014164374755904,-0.0672088870537804,1.00934500911891,0.00150741476623512,0.005826466656413 +"152",0.0272331651927534,-0.00084310207518153,0.00992899729660538,0.044130379241155,1.01482766258498,0.00065122024519556,0.00521508751663823 +"153",-0.00710225750097059,0.0547800957000137,0.0658354653216222,0.113283234815316,1.01169968870489,0.00427681394726673,0.0121764632741771 +"154",-0.00137114874332356,-0.00996160204445658,-0.0175416146612188,-0.0284904636773912,1.02455302555841,0.000271828003321492,0.0102743970506638 +"155",0.0150897038830873,-0.00066886378955213,0.00894556402575175,0.0269465064108386,1.01890456436025,0.000243101164460836,0.00556461366732775 +"156",0.0250198564312417,0.0142030126381514,0.0884188846610821,0.129887990514786,0.998314369115631,0.00560252035045689,0.00954948375236221 +"157",-0.0117713500928547,-0.00498714552900062,-0.0651512370994424,-0.0853341927912512,1.01844073667151,0.00243225711169109,0.0120887310456719 +"158",-0.000737700277807603,-0.00237957914788789,-0.00166570949934585,-0.00498101765088202,1.02300005557492,8.31181234324622e-06,0.00764557361580993 +"159",0.00538250490485724,-0.0431696908992776,-0.0203734016364133,-0.0634906949959914,1.02219572446932,0.00134818797601161,0.0118552532563707 +"160",0.0254479311000674,0.00578665223807041,0.0207357048330848,0.0562590973800298,1.01285277340804,0.00105746980120869,0.0058205004011486 +"161",-0.0209303804157823,-4.3463445094145e-05,-0.00149335930816134,-0.0305382166673249,1.01740595329996,0.000312136107001997,0.00496241443756517 +"162",-0.0014867824193137,-0.00392322798417002,-0.00331799824034857,-0.0089720508999125,1.02274214525389,2.69666343222625e-05,0.0075069439535672 +"163",7.26061922794288e-06,-0.0520633773009452,0.00109160815282481,-0.069139966023196,1.02057246263341,0.00159815785535862,0.0114378710427829 +"164",0.00453199152303707,-0.00290974867092287,0.00191784417738352,0.00593177909109767,1.02275546155223,1.17876236074739e-05,0.0074305057373094 +"165",-0.00394405413073981,0.0314136607490823,0.00343614949952352,0.0397773787755665,1.02748868691037,0.000529770923159111,0.0136430606545319 +"166",0.0206436266244243,-0.0141982337619373,0.00228717512634034,0.0229178333298728,1.02253516472144,0.000175902857524192,0.00811149887778098 +"167",0.00527656766322706,-0.00215669321081007,0.00667970147743282,0.0113790938696179,1.02305157525718,4.33756792876663e-05,0.0078918374470175 +"168",-0.0505478098841772,0.0452340311661172,-0.0077512455361395,-0.0579331625147743,1.02470364670241,0.00112296089867711,0.0130481518846423 +"169",-0.00695986154908324,0.00171541884221137,-0.00507107581828556,-0.0121760511184108,1.02109132687974,4.96622765910915e-05,0.00610553132510172 +"170",0.062861929478814,-0.052029950315618,0.000630807452854909,0.067820104153336,1.02175117135334,0.00153800127582792,0.0120431138025516 +"171",-0.111833792827027,0.062779828499438,-0.0458634576877706,-0.147960114172528,0.973822905622709,0.00721684713812082,0.00675050816702919 +"172",0.0360271434583016,0.00505260140390775,0.00304347155630414,0.0574626000624283,1.01025388390112,0.00110255372153265,0.00500505169093315 +"173",0.0329779774392598,-0.00604854785857935,-0.0307379116317049,0.0406672273701887,1.02599776385942,0.000553692110039628,0.0124593724411250 +"174",0.0116461966266407,-0.00330347658493743,-0.00496478328638618,0.0126057913759520,1.02143416163789,5.32295911835011e-05,0.00644460576436083 +"175",0.0837728721708517,-0.0450190551898796,-0.0478365330815143,0.086287517424793,1.01886375294753,0.00248695534435519,0.0124393678392461 +"176",0.0113127458639896,-0.00310019216517976,-0.00992120676377764,0.0133360454950070,1.02846589831976,5.95787404228755e-05,0.0130721374312924 +"177",-0.0128992801078122,-0.000622871914185776,0.00841338257948104,-0.0167899498374329,1.02133147434765,9.4421861824405e-05,0.00661331245445086 +"178",-0.0100535952712144,-0.0371491693211343,0.0216397739562489,-0.0555595982280932,1.02332334660155,0.00103280344127862,0.0117898017269195 +"179",0.0490750623168452,0.00871118624318054,-0.0559028004022577,0.0743650775631731,1.01983577609568,0.00184829763694874,0.0115947707300928 +"180",-0.016039401929543,0.000472696875570029,0.0174741327685587,-0.0220215979607427,1.02852773957093,0.000162437518695764,0.0134620015068775 +"181",0.0974803722847094,-0.00332169423941818,-0.0921880852562085,0.127604309431997,1.00224113094403,0.00541274555931894,0.0104167624268443 +"182",0.00283540140600358,7.41417462581428e-06,-0.00331151169106651,0.00404892422068045,1.03066121997825,5.49216486911482e-06,0.0149900115537686 +"183",0.00943572178222147,0.00130112550011255,-0.0110896481073098,0.0142075581658822,1.028145740768,6.76194077689675e-05,0.0127968888466790 +"184",0.00276054177122061,0.00102518738419683,-0.00186258564895357,0.00439644516952661,1.02172361465490,6.47535189411207e-06,0.00640250165990253 +"185",-0.0528427198928091,0.0145130230875262,0.0423948478486204,-0.0606951101301077,1.02169764368166,0.00123214499041157,0.0112087908639513 +"186",0.00654559057872878,-0.000166297105310674,-0.000658667434868777,0.00882759321615085,1.02006924346754,2.61046040255853e-05,0.0049805568298691 +"187",0.135288478696973,-0.0150581670966123,-0.199635669627369,0.214793545557743,1.03930345379866,0.0153694754032909,0.0395579521552196 +"188",-0.00179627102161618,-0.0201086800333105,-0.0290838500824012,-0.0504102311603701,1.02172797996276,0.00085027249678487,0.0101013356976456 +"189",0.0228633288517162,-0.0119382788968720,0.00558263289324817,0.0279523722959418,1.01978078469251,0.000261598012166095,0.00631616199687159 +"190",0.0333739436992553,-0.0218923098588630,-0.00415781766913389,0.0342351998620461,1.02205129344620,0.000392391037180782,0.00868631169196707 +"191",-0.00598745902668872,0.009270210460352,-0.141775840861681,-0.159599384986038,1.02324167023042,0.00848824871967303,0.0235442767251173 +"192",-0.00647340381072984,0.00352793059889733,-0.000765260037889968,-0.00738490537584023,1.02171628389643,1.82699833003344e-05,0.0064761654437429 +"193",0.00743548784051025,0.000288068693556639,-0.00342475695480026,0.00967141757633376,1.02075508564530,3.13336417085302e-05,0.00566203542473931 +"194",-0.0144546759000131,-0.00298053500839273,-0.00591640830574529,-0.0270368327058704,1.01848655596354,0.000244723765667750,0.00527731830844482 +"195",-0.0480337598360777,0.0134066510273543,0.0144409902616019,-0.0528301832345938,1.01375391284357,0.000932782405131919,0.00578673053255762 +"196",0.0384875637713533,-0.019961709524301,-0.0340041611808522,0.0445714555392936,1.04111051504826,0.000665298900313244,0.0259607726985618 +"197",-0.0757826400189407,0.0248334483605990,0.0554728220573406,-0.0839920249552144,1.01620839515522,0.00235569756564353,0.0107381193135285 +"198",0.194612154018817,-0.108753164358864,-0.212800868866529,0.25277452544073,1.06894202002771,0.0213047462814089,0.0636485399634325 +"199",0.107922203693597,-0.147962133506614,0.071859357010609,0.172622448016845,1.04908953269907,0.00994896869574054,0.0421405764825622 +"200",-0.27412328503003,0.552251251650036,-0.566037344031052,-0.799663997319448,1.00482525547578,0.207159157926247,0.0864330668425508 +"201",-0.161321721103076,0.105000709326207,0.0730049656151564,-0.163234829320064,0.999692268982916,0.00884049069150734,0.0136079407019335 +"202",0.0324754262532597,-0.000909627767790876,-0.0412732756994127,0.047832636682972,1.03370893954323,0.000766062268694792,0.0195808581702544 diff --git a/statsmodels/stats/tests/results/influence_measures_bool_R.csv b/statsmodels/stats/tests/results/influence_measures_bool_R.csv new file mode 100644 index 0000000..a9b14bc --- /dev/null +++ b/statsmodels/stats/tests/results/influence_measures_bool_R.csv @@ -0,0 +1,203 @@ +"","dfb.1_","dfb.ggdp","dfb.lint","dffit","cov.r","cook.d","hat" +"1",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"2",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"3",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"4",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"5",FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE +"6",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"7",FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE +"8",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"9",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"10",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"11",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"12",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"13",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"14",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"15",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"16",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"17",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"18",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"19",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"20",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"21",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"22",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"23",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"24",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"25",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"26",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"27",FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE +"28",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"29",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"30",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"31",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"32",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"33",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"34",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"35",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"36",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"37",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"38",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"39",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"40",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"41",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"42",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"43",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"44",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"45",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"46",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"47",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"48",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"49",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"50",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"51",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"52",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"53",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"54",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"55",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"56",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"57",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"58",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"59",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"60",FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE +"61",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"62",FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE +"63",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE +"64",FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE +"65",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"66",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"67",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"68",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"69",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"70",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"71",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"72",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"73",FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE +"74",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"75",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"76",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"77",FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE +"78",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"79",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"80",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"81",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"82",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"83",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"84",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"85",FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,TRUE +"86",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"87",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"88",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"89",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"90",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"91",FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE +"92",FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,TRUE +"93",FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,TRUE +"94",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"95",FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE +"96",FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,TRUE +"97",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"98",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"99",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"100",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"101",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"102",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"103",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"104",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"105",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"106",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"107",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"108",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"109",FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,TRUE +"110",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"111",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"112",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"113",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"114",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"115",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"116",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"117",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"118",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"119",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"120",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"121",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"122",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"123",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"124",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"125",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"126",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"127",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"128",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"129",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"130",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"131",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"132",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"133",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"134",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"135",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"136",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"137",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"138",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"139",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"140",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"141",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"142",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"143",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"144",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"145",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"146",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"147",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"148",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"149",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"150",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"151",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"152",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"153",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"154",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"155",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"156",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"157",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"158",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"159",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"160",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"161",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"162",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"163",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"164",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"165",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"166",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"167",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"168",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"169",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"170",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"171",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"172",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"173",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"174",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"175",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"176",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"177",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"178",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"179",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"180",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"181",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"182",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"183",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"184",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"185",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"186",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"187",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"188",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"189",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"190",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"191",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"192",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"193",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"194",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"195",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"196",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"197",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"198",FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,TRUE +"199",FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE +"200",FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE +"201",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE +"202",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE diff --git a/statsmodels/stats/tests/results/results_multinomial_proportions.py b/statsmodels/stats/tests/results/results_multinomial_proportions.py new file mode 100644 index 0000000..7b7bd83 --- /dev/null +++ b/statsmodels/stats/tests/results/results_multinomial_proportions.py @@ -0,0 +1,71 @@ +# -*- coding: utf-8 -*- +"""Test values for multinomial_proportion_confint. + +Author: Sébastien Lerique +""" + + +import collections +import numpy as np + + +class Holder(object): + pass + + +res_multinomial = collections.defaultdict(Holder) + +# The following examples come from the Sison & Glaz paper, and the values were +# computed using the R MultinomialCI package. + +# Floating-point arithmetic errors get blown up in the Edgeworth expansion +# (starting in g1 and g2, but mostly when computing f, because of the +# polynomials), which explains why we only obtain a precision of 4 decimals +# when comparing to values computed in R. + +# We test with any method name that starts with 'sison', as that is the +# criterion. +res_multinomial[('sison', 'Sison-Glaz example 1')]\ + .proportions = [56, 72, 73, 59, 62, 87, 58] +res_multinomial[('sison', 'Sison-Glaz example 1')]\ + .cis = np.array([[.07922912, .1643361], [.11349036, .1985973], + [.11563169, .2007386], [.08565310, .1707601], + [.09207709, .1771840], [.14561028, .2307172], + [.08351178, .1686187]]) +res_multinomial[('sison', 'Sison-Glaz example 1')].precision = 4 + +res_multinomial[('sisonandglaz', 'Sison-Glaz example 2')].proportions = [5] * 50 +res_multinomial[('sisonandglaz', 'Sison-Glaz example 2')]\ + .cis = [0, .05304026] * np.ones((50, 2)) +res_multinomial[('sisonandglaz', 'Sison-Glaz example 2')].precision = 4 + +res_multinomial[('sison-whatever', 'Sison-Glaz example 3')]\ + .proportions = [1] * 10 + [12] * 10 + [5] * 10 + [3] * 10 + [4] * 10 +res_multinomial[('sison-whatever', 'Sison-Glaz example 3')].cis = np.concatenate([ + [0, .04120118] * np.ones((10, 2)), [.012, .08520118] * np.ones((10, 2)), + [0, .05720118] * np.ones((10, 2)), [0, .04920118] * np.ones((10, 2)), + [0, .05320118] * np.ones((10, 2)) +]) +res_multinomial[('sison-whatever', 'Sison-Glaz example 3')].precision = 4 + +# The examples from the Sison & Glaz paper only include 3 decimals. +res_multinomial[('goodman', 'Sison-Glaz example 1')]\ + .proportions = [56, 72, 73, 59, 62, 87, 58] +res_multinomial[('goodman', 'Sison-Glaz example 1')]\ + .cis = np.array([[.085, .166], [.115, .204], [.116, .207], [.091, .173], + [.096, .181], [.143, .239], [.089, .171]]) +res_multinomial[('goodman', 'Sison-Glaz example 1')].precision = 3 + +res_multinomial[('goodman', 'Sison-Glaz example 2')].proportions = [5] * 50 +res_multinomial[('goodman', 'Sison-Glaz example 2')]\ + .cis = [.005, .075] * np.ones((50, 2)) +res_multinomial[('goodman', 'Sison-Glaz example 2')].precision = 3 + +res_multinomial[('goodman', 'Sison-Glaz example 3')]\ + .proportions = [1] * 10 + [12] * 10 + [5] * 10 + [3] * 10 + [4] * 10 +res_multinomial[('goodman', 'Sison-Glaz example 3')].cis = np.concatenate([ + [0, .049] * np.ones((10, 2)), [.019, .114] * np.ones((10, 2)), + [.005, .075] * np.ones((10, 2)), [.002, .062] * np.ones((10, 2)), + [.004, .069] * np.ones((10, 2)) +]) +res_multinomial[('goodman', 'Sison-Glaz example 3')].precision = 3 diff --git a/statsmodels/stats/tests/results/results_panelrobust.py b/statsmodels/stats/tests/results/results_panelrobust.py new file mode 100644 index 0000000..fe67d68 --- /dev/null +++ b/statsmodels/stats/tests/results/results_panelrobust.py @@ -0,0 +1,79 @@ +import numpy as np + +cov_clu_stata = np.array([ .00025262993207, + -.00065043385106, + .20961897960949, + -.00065043385106, + .00721940994738, + -1.2171040967615, + .20961897960949, + -1.2171040967615, + 417.18890043724]).reshape(3,3) + +cov_pnw0_stata = np.array([ .00004638910396, + -.00006781406833, + -.00501232990882, + -.00006781406833, + .00238784043122, + -.49683062350622, + -.00501232990882, + -.49683062350622, + 133.97367476797]).reshape(3,3) + +cov_pnw1_stata = np.array([ .00007381482253, + -.00009936717692, + -.00613513582975, + -.00009936717692, + .00341979122583, + -.70768252183061, + -.00613513582975, + -.70768252183061, + 197.31345000598]).reshape(3,3) + +cov_pnw4_stata = np.array([ .0001305958131, + -.00022910455176, + .00889686530849, + -.00022910455176, + .00468152667913, + -.88403667445531, + .00889686530849, + -.88403667445531, + 261.76140136858]).reshape(3,3) + +cov_dk0_stata = np.array([ .00005883478135, + -.00011241470772, + -.01670183921469, + -.00011241470772, + .00140649264687, + -.29263014921586, + -.01670183921469, + -.29263014921586, + 99.248049966902]).reshape(3,3) + +cov_dk1_stata = np.array([ .00009855800275, + -.00018443722054, + -.03257408922788, + -.00018443722054, + .00205106413403, + -.3943459697384, + -.03257408922788, + -.3943459697384, + 140.50692606398]).reshape(3,3) + +cov_dk4_stata = np.array([ .00018052657317, + -.00035661054613, + -.06728261073866, + -.00035661054613, + .0024312795189, + -.32394785247278, + -.06728261073866, + -.32394785247278, + 148.60456447156]).reshape(3,3) + +class Bunch(dict): + def __init__(self, **kw): + dict.__init__(self, kw) + self.__dict__ = self + + +results = Bunch(cov_clu_stata=cov_clu_stata, cov_pnw0_stata=cov_pnw0_stata, cov_pnw1_stata=cov_pnw1_stata, cov_pnw4_stata=cov_pnw4_stata, cov_dk0_stata=cov_dk0_stata, cov_dk1_stata=cov_dk1_stata, cov_dk4_stata=cov_dk4_stata, ) diff --git a/statsmodels/stats/tests/results/results_power.py b/statsmodels/stats/tests/results/results_power.py new file mode 100644 index 0000000..4f02ddb --- /dev/null +++ b/statsmodels/stats/tests/results/results_power.py @@ -0,0 +1,129 @@ +# -*- coding: utf-8 -*- +""" + +Created on Thu Feb 28 13:23:09 2013 + +Author: Josef Perktold +""" + +import collections + +class Holder(object): + pass + #def __repr__(self): + + +# numbers from R package `pwr` pwr.chisq.test +pwr_chisquare = collections.defaultdict(Holder) +pwr_chisquare[0].w = 1e-04 +pwr_chisquare[0].N = 5 +pwr_chisquare[0].df = 4 +pwr_chisquare[0].sig_level = 0.05 +pwr_chisquare[0].power = 0.05000000244872708 +pwr_chisquare[0].method = 'Chi squared power calculation' +pwr_chisquare[0].note = 'N is the number of observations' +pwr_chisquare[1].w = 0.005 +pwr_chisquare[1].N = 5 +pwr_chisquare[1].df = 4 +pwr_chisquare[1].sig_level = 0.05 +pwr_chisquare[1].power = 0.05000612192891004 +pwr_chisquare[1].method = 'Chi squared power calculation' +pwr_chisquare[1].note = 'N is the number of observations' +pwr_chisquare[2].w = 0.1 +pwr_chisquare[2].N = 5 +pwr_chisquare[2].df = 4 +pwr_chisquare[2].sig_level = 0.05 +pwr_chisquare[2].power = 0.05246644635810126 +pwr_chisquare[2].method = 'Chi squared power calculation' +pwr_chisquare[2].note = 'N is the number of observations' +pwr_chisquare[3].w = 1 +pwr_chisquare[3].N = 5 +pwr_chisquare[3].df = 4 +pwr_chisquare[3].sig_level = 0.05 +pwr_chisquare[3].power = 0.396188517504065 +pwr_chisquare[3].method = 'Chi squared power calculation' +pwr_chisquare[3].note = 'N is the number of observations' +pwr_chisquare[4].w = 1e-04 +pwr_chisquare[4].N = 100 +pwr_chisquare[4].df = 4 +pwr_chisquare[4].sig_level = 0.05 +pwr_chisquare[4].power = 0.05000004897454883 +pwr_chisquare[4].method = 'Chi squared power calculation' +pwr_chisquare[4].note = 'N is the number of observations' +pwr_chisquare[5].w = 0.005 +pwr_chisquare[5].N = 100 +pwr_chisquare[5].df = 4 +pwr_chisquare[5].sig_level = 0.05 +pwr_chisquare[5].power = 0.05012248082672883 +pwr_chisquare[5].method = 'Chi squared power calculation' +pwr_chisquare[5].note = 'N is the number of observations' +pwr_chisquare[6].w = 0.1 +pwr_chisquare[6].N = 100 +pwr_chisquare[6].df = 4 +pwr_chisquare[6].sig_level = 0.05 +pwr_chisquare[6].power = 0.1054845044462312 +pwr_chisquare[6].method = 'Chi squared power calculation' +pwr_chisquare[6].note = 'N is the number of observations' +pwr_chisquare[7].w = 1 +pwr_chisquare[7].N = 100 +pwr_chisquare[7].df = 4 +pwr_chisquare[7].sig_level = 0.05 +pwr_chisquare[7].power = 0.999999999999644 +pwr_chisquare[7].method = 'Chi squared power calculation' +pwr_chisquare[7].note = 'N is the number of observations' +pwr_chisquare[8].w = 1e-04 +pwr_chisquare[8].N = 1000 +pwr_chisquare[8].df = 4 +pwr_chisquare[8].sig_level = 0.05 +pwr_chisquare[8].power = 0.0500004897461283 +pwr_chisquare[8].method = 'Chi squared power calculation' +pwr_chisquare[8].note = 'N is the number of observations' +pwr_chisquare[9].w = 0.005 +pwr_chisquare[9].N = 1000 +pwr_chisquare[9].df = 4 +pwr_chisquare[9].sig_level = 0.05 +pwr_chisquare[9].power = 0.0512288025485101 +pwr_chisquare[9].method = 'Chi squared power calculation' +pwr_chisquare[9].note = 'N is the number of observations' +pwr_chisquare[10].w = 0.1 +pwr_chisquare[10].N = 1000 +pwr_chisquare[10].df = 4 +pwr_chisquare[10].sig_level = 0.05 +pwr_chisquare[10].power = 0.715986350467412 +pwr_chisquare[10].method = 'Chi squared power calculation' +pwr_chisquare[10].note = 'N is the number of observations' +pwr_chisquare[11].w = 1 +pwr_chisquare[11].N = 1000 +pwr_chisquare[11].df = 4 +pwr_chisquare[11].sig_level = 0.05 +pwr_chisquare[11].power = 1 +pwr_chisquare[11].method = 'Chi squared power calculation' +pwr_chisquare[11].note = 'N is the number of observations' +pwr_chisquare[12].w = 1e-04 +pwr_chisquare[12].N = 30000 +pwr_chisquare[12].df = 4 +pwr_chisquare[12].sig_level = 0.05 +pwr_chisquare[12].power = 0.05001469300301765 +pwr_chisquare[12].method = 'Chi squared power calculation' +pwr_chisquare[12].note = 'N is the number of observations' +pwr_chisquare[13].w = 0.005 +pwr_chisquare[13].N = 30000 +pwr_chisquare[13].df = 4 +pwr_chisquare[13].sig_level = 0.05 +pwr_chisquare[13].power = 0.0904799545200348 +pwr_chisquare[13].method = 'Chi squared power calculation' +pwr_chisquare[13].note = 'N is the number of observations' +pwr_chisquare[14].w = 0.1 +pwr_chisquare[14].N = 30000 +pwr_chisquare[14].df = 4 +pwr_chisquare[14].sig_level = 0.05 +pwr_chisquare[14].power = 1 +pwr_chisquare[14].method = 'Chi squared power calculation' +pwr_chisquare[14].note = 'N is the number of observations' +pwr_chisquare[15].w = 1 +pwr_chisquare[15].N = 30000 +pwr_chisquare[15].df = 4 +pwr_chisquare[15].sig_level = 0.05 +pwr_chisquare[15].power = 1 +pwr_chisquare[15].method = 'Chi squared power calculation' +pwr_chisquare[15].note = 'N is the number of observations' diff --git a/statsmodels/stats/tests/results/results_proportion.py b/statsmodels/stats/tests/results/results_proportion.py new file mode 100644 index 0000000..00f4138 --- /dev/null +++ b/statsmodels/stats/tests/results/results_proportion.py @@ -0,0 +1,89 @@ +# -*- coding: utf-8 -*- +""" + +Created on Fri Mar 01 14:48:59 2013 + +Author: Josef Perktold +""" + +import collections +import numpy as np + +class Holder(object): + pass + + +# numbers from R package `pwr` pwr.chisq.test +res_binom = collections.defaultdict(Holder) +res_binom_methods = ["agresti-coull", "asymptotic", "bayes", "cloglog", + "exact", "logit", "probit", "profile", "lrt", "prop.test", + "wilson"] + + +#> bci = binom.confint(x = c(18), n = 20, tol = 1e-8) +#> mkarray2(bci$lower, "res_binom[(18, 20)].ci_low") +res_binom[(18, 20)].ci_low = np.array([ + 0.6867561125596077, 0.768521618913513, 0.716146742695748, + 0.656030707261567, 0.6830172859809176, 0.676197991611287, + 0.7027685414174645, 0.722052946372325, 0.7220576251734515, + 0.668722403162941, 0.6989663547715128 + ]) +#> mkarray2(bci$upper, "res_binom[(18, 20)].ci_upp") +res_binom[(18, 20)].ci_upp = np.array([ + 0.984343760998137, 1.031478381086487, 0.97862751197755, + 0.974010174395775, 0.9876514728297052, 0.974866415649319, + 0.978858461808406, 0.982318186566456, 0.982639913376776, + 0.982487361226571, 0.972133518786232 + ]) +#> +#> bci = binom.confint(x = c(4), n = 20, tol = 1e-8) +#> mkarray2(bci$lower, "res_binom[(4, 20)].ci_low") +res_binom[(4, 20)].ci_low = np.array([ + 0.0749115102767071, 0.0246954918846837, 0.07152005247873425, + 0.0623757232566298, 0.05733399705003284, 0.0771334546771001, + 0.0710801045992076, 0.0668624655835687, 0.0668375191189685, + 0.0661062308910436, 0.0806576625797981 + ]) +#> mkarray2(bci$upper, "res_binom[(4, 20)].ci_upp") +res_binom[(4, 20)].ci_upp = np.array([ + 0.4217635845549845, 0.3753045081153163, 0.4082257625169254, + 0.393143902056907, 0.436614002996668, 0.427846901518118, + 0.4147088121599544, 0.405367872119342, 0.405364309586823, + 0.442686245059445, 0.4160174322518935 + ]) +#> +#> bci = binom.confint(x = c(4), n = 200, tol = 1e-8) +#> mkarray2(bci$lower, "res_binom[(4, 200)].ci_low") +res_binom[(4, 200)].ci_low = np.array([ + 0.005991954548218395, 0.000597346459104517, 0.00678759879519299, + 0.006650668467968445, 0.005475565879556443, 0.00752663882411158, + 0.00705442514086136, 0.00625387073493174, 0.00625223049303646, + 0.00642601313670221, 0.00780442641634947 + ]) +#> mkarray2(bci$upper, "res_binom[(4, 200)].ci_upp") +res_binom[(4, 200)].ci_upp = np.array([ + 0.0520995587739575, 0.0394026535408955, 0.0468465669668423, + 0.04722535678688564, 0.05041360908989634, 0.05206026227201098, + 0.04916362085874019, 0.04585048214247203, 0.0458490848884339, + 0.0537574613520185, 0.05028708690582643 + ]) +#> bci = binom.confint(x = c(190), n = 200, tol = 1e-8) +#Warning message: +#In binom.bayes(x, n, conf.level = conf.level, ...) : +# 1 confidence interval failed to converge (marked by '*'). +# Try changing 'tol' to a different value. +#JP: I replace 0.02094150654714356 by np.nan in Bayes +#> mkarray2(bci$lower, "res_binom[(190, 200)].ci_low") +res_binom[(190, 200)].ci_low = np.array([ + 0.909307307911624, 0.919794926420966, np.nan, + 0.909066091776046, 0.9099724622986486, 0.9095820742314172, + 0.9118101288857796, 0.913954651984184, 0.913956305842353, + 0.9073089225133698, 0.910421851861224 + ]) +#> mkarray2(bci$upper, "res_binom[(190, 200)].ci_upp") +res_binom[(190, 200)].ci_upp = np.array([ + 0.973731898348837, 0.980205073579034, 1, 0.972780587302479, + 0.975765834527891, 0.9728891271086528, 0.973671370402242, + 0.974623779100809, 0.974626983311416, 0.974392083257476, + 0.972617354399236 + ]) diff --git a/statsmodels/stats/tests/test_anova.py b/statsmodels/stats/tests/test_anova.py new file mode 100644 index 0000000..09c0a0a --- /dev/null +++ b/statsmodels/stats/tests/test_anova.py @@ -0,0 +1,520 @@ +# -*- coding: utf-8 -*- + +from statsmodels.compat.python import StringIO + +import numpy as np + +from statsmodels.stats.anova import anova_lm +from statsmodels.formula.api import ols +from pandas import read_table + +kidney_table = StringIO("""Days Duration Weight ID + 0.0 1 1 1 + 2.0 1 1 2 + 1.0 1 1 3 + 3.0 1 1 4 + 0.0 1 1 5 + 2.0 1 1 6 + 0.0 1 1 7 + 5.0 1 1 8 + 6.0 1 1 9 + 8.0 1 1 10 + 2.0 1 2 1 + 4.0 1 2 2 + 7.0 1 2 3 + 12.0 1 2 4 + 15.0 1 2 5 + 4.0 1 2 6 + 3.0 1 2 7 + 1.0 1 2 8 + 5.0 1 2 9 + 20.0 1 2 10 + 15.0 1 3 1 + 10.0 1 3 2 + 8.0 1 3 3 + 5.0 1 3 4 + 25.0 1 3 5 + 16.0 1 3 6 + 7.0 1 3 7 + 30.0 1 3 8 + 3.0 1 3 9 + 27.0 1 3 10 + 0.0 2 1 1 + 1.0 2 1 2 + 1.0 2 1 3 + 0.0 2 1 4 + 4.0 2 1 5 + 2.0 2 1 6 + 7.0 2 1 7 + 4.0 2 1 8 + 0.0 2 1 9 + 3.0 2 1 10 + 5.0 2 2 1 + 3.0 2 2 2 + 2.0 2 2 3 + 0.0 2 2 4 + 1.0 2 2 5 + 1.0 2 2 6 + 3.0 2 2 7 + 6.0 2 2 8 + 7.0 2 2 9 + 9.0 2 2 10 + 10.0 2 3 1 + 8.0 2 3 2 + 12.0 2 3 3 + 3.0 2 3 4 + 7.0 2 3 5 + 15.0 2 3 6 + 4.0 2 3 7 + 9.0 2 3 8 + 6.0 2 3 9 + 1.0 2 3 10 +""") + +class TestAnovaLM(object): + @classmethod + def setupClass(cls): + # kidney data taken from JT's course + # don't know the license + kidney_table.seek(0) + cls.data = read_table(kidney_table, sep="\s+") + cls.kidney_lm = ols('np.log(Days+1) ~ C(Duration) * C(Weight)', + data=cls.data).fit() + + def test_results(self): + Df = np.array([1, 2, 2, 54]) + sum_sq = np.array([2.339693, 16.97129, 0.6356584, 28.9892]) + mean_sq = np.array([2.339693, 8.485645, 0.3178292, 0.536837]) + f_value = np.array([4.358293, 15.80674, 0.5920404, np.nan]) + pr_f = np.array([0.0415617, 3.944502e-06, 0.5567479, np.nan]) + + results = anova_lm(self.kidney_lm) + np.testing.assert_equal(results['df'].values, Df) + np.testing.assert_almost_equal(results['sum_sq'].values, sum_sq, 4) + np.testing.assert_almost_equal(results['F'].values, f_value, 4) + np.testing.assert_almost_equal(results['PR(>F)'].values, pr_f) + + +class TestAnovaLMNoconstant(object): + @classmethod + def setupClass(cls): + # kidney data taken from JT's course + # don't know the license + kidney_table.seek(0) + cls.data = read_table(kidney_table, sep="\s+") + cls.kidney_lm = ols('np.log(Days+1) ~ C(Duration) * C(Weight) - 1', + data=cls.data).fit() + + def test_results(self): + Df = np.array([2, 2, 2, 54]) + sum_sq = np.array([158.6415227, 16.97129, 0.6356584, 28.9892]) + mean_sq = np.array([79.3207613, 8.485645, 0.3178292, 0.536837]) + f_value = np.array([147.7557648, 15.80674, 0.5920404, np.nan]) + pr_f = np.array([1.262324e-22, 3.944502e-06, 0.5567479, np.nan]) + + results = anova_lm(self.kidney_lm) + np.testing.assert_equal(results['df'].values, Df) + np.testing.assert_almost_equal(results['sum_sq'].values, sum_sq, 4) + np.testing.assert_almost_equal(results['F'].values, f_value, 4) + np.testing.assert_almost_equal(results['PR(>F)'].values, pr_f) + + # > sum2.lm = lm(logDays ~ Duration * Weight - 1, contrasts=list(Duration=contr.sum, Weight=contr.sum)) + # > anova.lm.sum2 <- anova(sum2.lm) + # > anova.lm.sum2 + # Analysis of Variance Table + # + # Response: logDays + # Df Sum Sq Mean Sq F value Pr(>F) + # Duration 2 158.642 79.321 147.756 < 2.2e-16 *** + # Weight 2 16.971 8.486 15.807 3.945e-06 *** + # Duration:Weight 2 0.636 0.318 0.592 0.5567 + # Residuals 54 28.989 0.537 + # --- + # Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 + + + +class TestAnovaLMCompare(TestAnovaLM): + def test_results(self): + new_model = ols("np.log(Days+1) ~ C(Duration) + C(Weight)", + self.data).fit() + results = anova_lm(new_model, self.kidney_lm) + + Res_Df = np.array([ + 56, 54 + ]) + RSS = np.array([ + 29.62486, 28.9892 + ]) + Df = np.array([ + 0, 2 + ]) + Sum_of_Sq = np.array([ + np.nan, 0.6356584 + ]) + F = np.array([ + np.nan, 0.5920404 + ]) + PrF = np.array([ + np.nan, 0.5567479 + ]) + + np.testing.assert_equal(results["df_resid"].values, Res_Df) + np.testing.assert_almost_equal(results["ssr"].values, RSS, 4) + np.testing.assert_almost_equal(results["df_diff"].values, Df) + np.testing.assert_almost_equal(results["ss_diff"].values, Sum_of_Sq) + np.testing.assert_almost_equal(results["F"].values, F) + np.testing.assert_almost_equal(results["Pr(>F)"].values, PrF) + + +class TestAnovaLMCompareNoconstant(TestAnovaLM): + def test_results(self): + new_model = ols("np.log(Days+1) ~ C(Duration) + C(Weight) - 1", + self.data).fit() + results = anova_lm(new_model, self.kidney_lm) + + Res_Df = np.array([ + 56, 54 + ]) + RSS = np.array([ + 29.62486, 28.9892 + ]) + Df = np.array([ + 0, 2 + ]) + Sum_of_Sq = np.array([ + np.nan, 0.6356584 + ]) + F = np.array([ + np.nan, 0.5920404 + ]) + PrF = np.array([ + np.nan, 0.5567479 + ]) + + np.testing.assert_equal(results["df_resid"].values, Res_Df) + np.testing.assert_almost_equal(results["ssr"].values, RSS, 4) + np.testing.assert_almost_equal(results["df_diff"].values, Df) + np.testing.assert_almost_equal(results["ss_diff"].values, Sum_of_Sq) + np.testing.assert_almost_equal(results["F"].values, F) + np.testing.assert_almost_equal(results["Pr(>F)"].values, PrF) + + +class TestAnova2(TestAnovaLM): + # drop some observations to make an unbalanced, disproportionate panel + # to make sure things are okay + def test_results(self): + data = self.data.drop([0,1,2]) + anova_ii = ols("np.log(Days+1) ~ C(Duration, Sum)*C(Weight, Sum)", + data).fit() + + Sum_Sq = np.array([ + 3.067066, 13.27205, 0.1905093, 27.60181 + ]) + Df = np.array([ + 1, 2, 2, 51 + ]) + F_value = np.array([ + 5.667033, 12.26141, 0.1760025, np.nan + ]) + PrF = np.array([ + 0.02106078, 4.487909e-05, 0.8391231, np.nan + ]) + + results = anova_lm(anova_ii, typ="II") + np.testing.assert_equal(results['df'].values, Df) + np.testing.assert_almost_equal(results['sum_sq'].values, Sum_Sq, 4) + np.testing.assert_almost_equal(results['F'].values, F_value, 4) + np.testing.assert_almost_equal(results['PR(>F)'].values, PrF) + + +class TestAnova2Noconstant(TestAnovaLM): + # drop some observations to make an unbalanced, disproportionate panel + # to make sure things are okay + def test_results(self): + data = self.data.drop([0,1,2]) + anova_ii = ols("np.log(Days+1) ~ C(Duration, Sum)*C(Weight, Sum) - 1", + data).fit() + + Sum_Sq = np.array([ + 154.7131692, 13.27205, 0.1905093, 27.60181 + ]) + Df = np.array([ + 2, 2, 2, 51 + ]) + F_value = np.array([ + 142.9321191, 12.26141, 0.1760025, np.nan + ]) + PrF = np.array([ + 1.238624e-21, 4.487909e-05, 0.8391231, np.nan + ]) + + results = anova_lm(anova_ii, typ="II") + np.testing.assert_equal(results['df'].values, Df) + np.testing.assert_almost_equal(results['sum_sq'].values, Sum_Sq, 4) + np.testing.assert_almost_equal(results['F'].values, F_value, 4) + np.testing.assert_almost_equal(results['PR(>F)'].values, PrF) + + # > sum2.lm.dropped <- lm(logDays ~ Duration * Weight - 1, dta.dropped, + # contrasts=list(Duration=contr.sum, Weight=contr.sum)) + # > anova.ii.dropped2 <- Anova(sum2.lm.dropped, type='II') + # > anova.ii.dropped2 + # Anova Table (Type II tests) + # + # Response: logDays + # Sum Sq Df F value Pr(>F) + # Duration 154.713 2 142.932 < 2.2e-16 *** + # Weight 13.272 2 12.261 4.488e-05 *** + # Duration:Weight 0.191 2 0.176 0.8391 + # Residuals 27.602 51 + + +class TestAnova2HC0(TestAnovaLM): + #NOTE: R doesn't return SSq with robust covariance. Why? + # drop some observations to make an unbalanced, disproportionate panel + # to make sure things are okay + def test_results(self): + data = self.data.drop([0,1,2]) + anova_ii = ols("np.log(Days+1) ~ C(Duration, Sum)*C(Weight, Sum)", + data).fit() + + Sum_Sq = np.array([ + 151.4065, 2.904723, 13.45718, 0.1905093, 27.60181 + ]) + Df = np.array([ + 1, 2, 2, 51 + ]) + F = np.array([ + 6.972744, 13.7804, 0.1709936, np.nan + ]) + PrF = np.array([ + 0.01095599, 1.641682e-05, 0.8433081, np.nan + ]) + + results = anova_lm(anova_ii, typ="II", robust="hc0") + np.testing.assert_equal(results['df'].values, Df) + #np.testing.assert_almost_equal(results['sum_sq'].values, Sum_Sq, 4) + np.testing.assert_almost_equal(results['F'].values, F, 4) + np.testing.assert_almost_equal(results['PR(>F)'].values, PrF) + +class TestAnova2HC1(TestAnovaLM): + # drop some observations to make an unbalanced, disproportionate panel + # to make sure things are okay + def test_results(self): + data = self.data.drop([0,1,2]) + anova_ii = ols("np.log(Days+1) ~ C(Duration, Sum)*C(Weight, Sum)", + data).fit() + + Sum_Sq = np.array([ + 151.4065, 2.904723, 13.45718, 0.1905093, 27.60181 + ]) + Df = np.array([ + 1, 2, 2, 51 + ]) + F = np.array([ + 6.238771, 12.32983, 0.1529943, np.nan + ]) + PrF = np.array([ + 0.01576555, 4.285456e-05, 0.858527, np.nan + ]) + + results = anova_lm(anova_ii, typ="II", robust="hc1") + np.testing.assert_equal(results['df'].values, Df) + #np.testing.assert_almost_equal(results['sum_sq'].values, Sum_Sq, 4) + np.testing.assert_almost_equal(results['F'].values, F, 4) + np.testing.assert_almost_equal(results['PR(>F)'].values, PrF) + +class TestAnova2HC2(TestAnovaLM): + # drop some observations to make an unbalanced, disproportionate panel + # to make sure things are okay + def test_results(self): + data = self.data.drop([0,1,2]) + anova_ii = ols("np.log(Days+1) ~ C(Duration, Sum)*C(Weight, Sum)", + data).fit() + + Sum_Sq = np.array([ + 151.4065, 2.904723, 13.45718, 0.1905093, 27.60181 + ]) + Df = np.array([ + 1, 2, 2, 51 + ]) + F = np.array([ + 6.267499, 12.25354, 0.1501224, np.nan + ]) + PrF = np.array([ + 0.01554009, 4.511826e-05, 0.8609815, np.nan + ]) + + + results = anova_lm(anova_ii, typ="II", robust="hc2") + np.testing.assert_equal(results['df'].values, Df) + #np.testing.assert_almost_equal(results['sum_sq'].values, Sum_Sq, 4) + np.testing.assert_almost_equal(results['F'].values, F, 4) + np.testing.assert_almost_equal(results['PR(>F)'].values, PrF) + +class TestAnova2HC3(TestAnovaLM): + # drop some observations to make an unbalanced, disproportionate panel + # to make sure things are okay + def test_results(self): + data = self.data.drop([0,1,2]) + anova_ii = ols("np.log(Days+1) ~ C(Duration, Sum)*C(Weight, Sum)", + data).fit() + + Sum_Sq = np.array([ + 151.4065, 2.904723, 13.45718, 0.1905093, 27.60181 + ]) + Df = np.array([ + 1, 2, 2, 51 + ]) + F = np.array([ + 5.633786, 10.89842, 0.1317223, np.nan + ]) + PrF = np.array([ + 0.02142223, 0.0001145965, 0.8768817, np.nan + ]) + + results = anova_lm(anova_ii, typ="II", robust="hc3") + np.testing.assert_equal(results['df'].values, Df) + #np.testing.assert_almost_equal(results['sum_sq'].values, Sum_Sq, 4) + np.testing.assert_almost_equal(results['F'].values, F, 4) + np.testing.assert_almost_equal(results['PR(>F)'].values, PrF) + +class TestAnova3(TestAnovaLM): + # drop some observations to make an unbalanced, disproportionate panel + # to make sure things are okay + def test_results(self): + data = self.data.drop([0,1,2]) + anova_iii = ols("np.log(Days+1) ~ C(Duration, Sum)*C(Weight, Sum)", + data).fit() + + Sum_Sq = np.array([ + 151.4065, 2.904723, 13.45718, 0.1905093, 27.60181 + ]) + Df = np.array([ + 1, 1, 2, 2, 51 + ]) + F_value = np.array([ + 279.7545, 5.367071, 12.43245, 0.1760025, np.nan + ]) + PrF = np.array([ + 2.379855e-22, 0.02457384, 3.999431e-05, 0.8391231, np.nan + ]) + + results = anova_lm(anova_iii, typ="III") + np.testing.assert_equal(results['df'].values, Df) + np.testing.assert_almost_equal(results['sum_sq'].values, Sum_Sq, 4) + np.testing.assert_almost_equal(results['F'].values, F_value, 4) + np.testing.assert_almost_equal(results['PR(>F)'].values, PrF) + +class TestAnova3HC0(TestAnovaLM): + #NOTE: R doesn't return SSq with robust covariance. Why? + # drop some observations to make an unbalanced, disproportionate panel + # to make sure things are okay + def test_results(self): + data = self.data.drop([0,1,2]) + anova_iii = ols("np.log(Days+1) ~ C(Duration, Sum)*C(Weight, Sum)", + data).fit() + + Sum_Sq = np.array([ + 151.4065, 2.904723, 13.45718, 0.1905093, 27.60181 + ]) + Df = np.array([ + 1, 1, 2, 2, 51 + ]) + F = np.array([ + 298.3404, 5.723638, 13.76069, 0.1709936, np.nan + ]) + PrF = np.array([ + 5.876255e-23, 0.02046031, 1.662826e-05, 0.8433081, np.nan + ]) + + results = anova_lm(anova_iii, typ="III", robust="hc0") + np.testing.assert_equal(results['df'].values, Df) + #np.testing.assert_almost_equal(results['sum_sq'].values, Sum_Sq, 4) + np.testing.assert_almost_equal(results['F'].values, F, 4) + np.testing.assert_almost_equal(results['PR(>F)'].values, PrF) + +class TestAnova3HC1(TestAnovaLM): + # drop some observations to make an unbalanced, disproportionate panel + # to make sure things are okay + def test_results(self): + data = self.data.drop([0,1,2]) + anova_iii = ols("np.log(Days+1) ~ C(Duration, Sum)*C(Weight, Sum)", + data).fit() + + Sum_Sq = np.array([ + 151.4065, 2.904723, 13.45718, 0.1905093, 27.60181 + ]) + Df = np.array([ + 1, 1, 2, 2, 51 + ]) + F = np.array([ + 266.9361, 5.12115, 12.3122, 0.1529943, np.nan + ]) + PrF = np.array([ + 6.54355e-22, 0.02792296, 4.336712e-05, 0.858527, np.nan + ]) + + results = anova_lm(anova_iii, typ="III", robust="hc1") + np.testing.assert_equal(results['df'].values, Df) + #np.testing.assert_almost_equal(results['sum_sq'].values, Sum_Sq, 4) + np.testing.assert_almost_equal(results['F'].values, F, 4) + np.testing.assert_almost_equal(results['PR(>F)'].values, PrF) + +class TestAnova3HC2(TestAnovaLM): + # drop some observations to make an unbalanced, disproportionate panel + # to make sure things are okay + def test_results(self): + data = self.data.drop([0,1,2]) + anova_iii = ols("np.log(Days+1) ~ C(Duration, Sum)*C(Weight, Sum)", + data).fit() + + Sum_Sq = np.array([ + 151.4065, 2.904723, 13.45718, 0.1905093, 27.60181 + ]) + Df = np.array([ + 1, 1, 2, 2, 51 + ]) + F = np.array([ + 264.5137, 5.074677, 12.19158, 0.1501224, np.nan + ]) + PrF = np.array([ + 7.958286e-22, 0.02860926, 4.704831e-05, 0.8609815, np.nan + ]) + + results = anova_lm(anova_iii, typ="III", robust="hc2") + np.testing.assert_equal(results['df'].values, Df) + #np.testing.assert_almost_equal(results['sum_sq'].values, Sum_Sq, 4) + np.testing.assert_almost_equal(results['F'].values, F, 4) + np.testing.assert_almost_equal(results['PR(>F)'].values, PrF) + +class TestAnova3HC3(TestAnovaLM): + # drop some observations to make an unbalanced, disproportionate panel + # to make sure things are okay + def test_results(self): + data = self.data.drop([0,1,2]) + anova_iii = ols("np.log(Days+1) ~ C(Duration, Sum)*C(Weight, Sum)", + data).fit() + + Sum_Sq = np.array([ + 151.4065, 2.904723, 13.45718, 0.1905093, 27.60181 + ]) + Df = np.array([ + 1, 1, 2, 2, 51 + ]) + F = np.array([ + 234.4026, 4.496996, 10.79903, 0.1317223, np.nan + ]) + PrF = np.array([ + 1.037224e-20, 0.03883841, 0.0001228716, 0.8768817, np.nan + ]) + + results = anova_lm(anova_iii, typ="III", robust="hc3") + np.testing.assert_equal(results['df'].values, Df) + #np.testing.assert_almost_equal(results['sum_sq'].values, Sum_Sq, 4) + np.testing.assert_almost_equal(results['F'].values, F, 4) + np.testing.assert_almost_equal(results['PR(>F)'].values, PrF) + +if __name__ == "__main__": + import nose + nose.runmodule(argv=[__file__, '-vvs', '-x', '--pdb-failure'], exit=False) diff --git a/statsmodels/stats/tests/test_contingency_tables.py b/statsmodels/stats/tests/test_contingency_tables.py new file mode 100644 index 0000000..49fa1f2 --- /dev/null +++ b/statsmodels/stats/tests/test_contingency_tables.py @@ -0,0 +1,527 @@ +""" +Tests for contingency table analyses. +""" + +import numpy as np +import statsmodels.stats.contingency_tables as ctab +import pandas as pd +from numpy.testing import assert_allclose, assert_equal +import os +import statsmodels.api as sm + +cur_dir = os.path.dirname(os.path.abspath(__file__)) +fname = "contingency_table_r_results.csv" +fpath = os.path.join(cur_dir, 'results', fname) +r_results = pd.read_csv(fpath) + + +tables = [None, None, None] + +tables[0] = np.asarray([[23, 15], [19, 31]]) + +tables[1] = np.asarray([[144, 33, 84, 126], + [2, 4, 14, 29], + [0, 2, 6, 25], + [0, 0, 1, 5]]) + +tables[2] = np.asarray([[20, 10, 5], + [3, 30, 15], + [0, 5, 40]]) + + +def test_homogeneity(): + + for k,table in enumerate(tables): + st = sm.stats.SquareTable(table, shift_zeros=False) + hm = st.homogeneity() + assert_allclose(hm.statistic, r_results.loc[k, "homog_stat"]) + assert_allclose(hm.df, r_results.loc[k, "homog_df"]) + + # Test Bhapkar via its relationship to Stuart_Maxwell. + hmb = st.homogeneity(method="bhapkar") + assert_allclose(hmb.statistic, hm.statistic / (1 - hm.statistic / table.sum())) + + +def test_SquareTable_from_data(): + + np.random.seed(434) + df = pd.DataFrame(index=range(100), columns=["v1", "v2"]) + df["v1"] = np.random.randint(0, 5, 100) + df["v2"] = np.random.randint(0, 5, 100) + table = pd.crosstab(df["v1"], df["v2"]) + + rslt1 = ctab.SquareTable(table) + rslt2 = ctab.SquareTable.from_data(df) + rslt3 = ctab.SquareTable(np.asarray(table)) + + assert_equal(rslt1.summary().as_text(), + rslt2.summary().as_text()) + + assert_equal(rslt2.summary().as_text(), + rslt3.summary().as_text()) + + + +def test_cumulative_odds(): + + table = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] + table = np.asarray(table) + tbl_obj = ctab.Table(table) + + cum_odds = tbl_obj.cumulative_oddsratios + assert_allclose(cum_odds[0, 0], 28 / float(5 * 11)) + assert_allclose(cum_odds[0, 1], (3 * 15) / float(3 * 24), atol=1e-5, + rtol=1e-5) + assert_allclose(np.log(cum_odds), tbl_obj.cumulative_log_oddsratios, + atol=1e-5, rtol=1e-5) + + +def test_local_odds(): + + table = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] + table = np.asarray(table) + tbl_obj = ctab.Table(table) + + loc_odds = tbl_obj.local_oddsratios + assert_allclose(loc_odds[0, 0], 5 / 8.) + assert_allclose(loc_odds[0, 1], 12 / float(15), atol=1e-5, + rtol=1e-5) + assert_allclose(np.log(loc_odds), tbl_obj.local_log_oddsratios, + atol=1e-5, rtol=1e-5) + + +def test_stratified_table_cube(): + """ + Test that we can pass a rank 3 ndarray or a list of rank 2 + ndarrays to StratifiedTable and get the same results. + """ + + tab1 = [[[8, 9], [6, 7]], [[4, 9], [5, 5]], [[8, 8], [9, 11]]] + tab2 = np.asarray(tab1).T + + ct1 = ctab.StratifiedTable(tab1) + ct2 = ctab.StratifiedTable(tab2) + + assert_allclose(ct1.oddsratio_pooled, ct2.oddsratio_pooled) + assert_allclose(ct1.logodds_pooled, ct2.logodds_pooled) + + +def test_resids(): + + # CHD x serum data + table = [[12, 8, 31, 41], [307, 246, 439, 245]] + + # These results come from SAS + fit = [[22.083, 17.583, 32.536, 19.798], + [296.92, 236.42, 437.46, 266.2]] + c2 = [[4.6037, 5.223, 0.0725, 22.704], + [0.3424, 0.3885, 0.0054, 1.6886]] + + # These are regression tests + pr = np.array([[-2.14562121, -2.28538719, -0.26923882, 4.7649169 ], + [ 0.58514314, 0.62325942, 0.07342547, -1.29946443]]) + sr = np.array([[-2.55112945, -2.6338782 , -0.34712127, 5.5751083 ], + [ 2.55112945, 2.6338782 , 0.34712127, -5.5751083 ]]) + + tab = ctab.Table(table) + assert_allclose(tab.fittedvalues, fit, atol=1e-4, rtol=1e-4) + assert_allclose(tab.chi2_contribs, c2, atol=1e-4, rtol=1e-4) + assert_allclose(tab.resid_pearson, pr, atol=1e-4, rtol=1e-4) + assert_allclose(tab.standardized_resids, sr, atol=1e-4, rtol=1e-4) + + +def test_ordinal_association(): + + for k,table in enumerate(tables): + + row_scores = 1 + np.arange(table.shape[0]) + col_scores = 1 + np.arange(table.shape[1]) + + # First set of scores + rslt = ctab.Table(table, shift_zeros=False).test_ordinal_association(row_scores, col_scores) + assert_allclose(rslt.statistic, r_results.loc[k, "lbl_stat"]) + assert_allclose(rslt.null_mean, r_results.loc[k, "lbl_expval"]) + assert_allclose(rslt.null_sd**2, r_results.loc[k, "lbl_var"]) + assert_allclose(rslt.zscore**2, r_results.loc[k, "lbl_chi2"], rtol=1e-5, atol=1e-5) + assert_allclose(rslt.pvalue, r_results.loc[k, "lbl_pvalue"], rtol=1e-5, atol=1e-5) + + # Second set of scores + rslt = ctab.Table(table, shift_zeros=False).test_ordinal_association(row_scores, col_scores**2) + assert_allclose(rslt.statistic, r_results.loc[k, "lbl2_stat"]) + assert_allclose(rslt.null_mean, r_results.loc[k, "lbl2_expval"]) + assert_allclose(rslt.null_sd**2, r_results.loc[k, "lbl2_var"]) + assert_allclose(rslt.zscore**2, r_results.loc[k, "lbl2_chi2"]) + assert_allclose(rslt.pvalue, r_results.loc[k, "lbl2_pvalue"], rtol=1e-5, atol=1e-5) + + +def test_chi2_association(): + + np.random.seed(8743) + + table = np.random.randint(10, 30, size=(4, 4)) + + from scipy.stats import chi2_contingency + rslt_scipy = chi2_contingency(table) + + b = ctab.Table(table).test_nominal_association() + + assert_allclose(b.statistic, rslt_scipy[0]) + assert_allclose(b.pvalue, rslt_scipy[1]) + + +def test_symmetry(): + + for k,table in enumerate(tables): + st = sm.stats.SquareTable(table, shift_zeros=False) + b = st.symmetry() + assert_allclose(b.statistic, r_results.loc[k, "bowker_stat"]) + assert_equal(b.df, r_results.loc[k, "bowker_df"]) + assert_allclose(b.pvalue, r_results.loc[k, "bowker_pvalue"]) + + +def test_mcnemar(): + + # Use chi^2 without continuity correction + b1 = ctab.mcnemar(tables[0], exact=False, correction=False) + + st = sm.stats.SquareTable(tables[0]) + b2 = st.homogeneity() + assert_allclose(b1.statistic, b2.statistic) + assert_equal(b2.df, 1) + + # Use chi^2 with continuity correction + b3 = ctab.mcnemar(tables[0], exact=False, correction=True) + assert_allclose(b3.pvalue, r_results.loc[0, "homog_cont_p"]) + + # Use binomial reference distribution + b4 = ctab.mcnemar(tables[0], exact=True) + assert_allclose(b4.pvalue, r_results.loc[0, "homog_binom_p"]) + + +def test_cochranq(): + """ + library(CVST) + table1 = matrix(c(1, 0, 1, 1, + 0, 1, 1, 1, + 1, 1, 1, 0, + 0, 1, 0, 0, + 0, 1, 0, 0, + 1, 0, 1, 0, + 0, 1, 0, 0, + 1, 1, 1, 1, + 0, 1, 0, 0), ncol=4, byrow=TRUE) + rslt1 = cochranq.test(table1) + table2 = matrix(c(0, 0, 1, 1, 0, + 0, 1, 0, 1, 0, + 0, 1, 1, 0, 1, + 1, 0, 0, 0, 1, + 1, 1, 0, 0, 0, + 1, 0, 1, 0, 0, + 0, 1, 0, 0, 0, + 0, 0, 1, 1, 0, + 0, 0, 0, 0, 0), ncol=5, byrow=TRUE) + rslt2 = cochranq.test(table2) + """ + + table = [[1, 0, 1, 1], + [0, 1, 1, 1], + [1, 1, 1, 0], + [0, 1, 0, 0], + [0, 1, 0, 0], + [1, 0, 1, 0], + [0, 1, 0, 0], + [1, 1, 1, 1], + [0, 1, 0, 0]] + table = np.asarray(table) + + stat, pvalue, df = ctab.cochrans_q(table, return_object=False) + assert_allclose(stat, 4.2) + assert_allclose(df, 3) + + table = [[0, 0, 1, 1, 0], + [0, 1, 0, 1, 0], + [0, 1, 1, 0, 1], + [1, 0, 0, 0, 1], + [1, 1, 0, 0, 0], + [1, 0, 1, 0, 0], + [0, 1, 0, 0, 0], + [0, 0, 1, 1, 0], + [0, 0, 0, 0, 0]] + table = np.asarray(table) + + stat, pvalue, df = ctab.cochrans_q(table, return_object=False) + assert_allclose(stat, 1.2174, rtol=1e-4) + assert_allclose(df, 4) + + # Cochran's q and Mcnemar are equivalent for 2x2 tables + data = table[:, 0:2] + xtab = np.asarray(pd.crosstab(data[:, 0], data[:, 1])) + b1 = ctab.cochrans_q(data, return_object=True) + b2 = ctab.mcnemar(xtab, exact=False, correction=False) + assert_allclose(b1.statistic, b2.statistic) + assert_allclose(b1.pvalue, b2.pvalue) + + + +class CheckStratifiedMixin(object): + + def initialize(self, tables): + self.rslt = ctab.StratifiedTable(tables) + self.rslt_0 = ctab.StratifiedTable(tables, shift_zeros=True) + tables_pandas = [pd.DataFrame(x) for x in tables] + self.rslt_pandas = ctab.StratifiedTable(tables_pandas) + + + def test_oddsratio_pooled(self): + assert_allclose(self.rslt.oddsratio_pooled, self.oddsratio_pooled, + rtol=1e-4, atol=1e-4) + + + def test_logodds_pooled(self): + assert_allclose(self.rslt.logodds_pooled, self.logodds_pooled, + rtol=1e-4, atol=1e-4) + + + def test_null_odds(self): + rslt = self.rslt.test_null_odds(correction=True) + assert_allclose(rslt.statistic, self.mh_stat, rtol=1e-4, atol=1e-5) + assert_allclose(rslt.pvalue, self.mh_pvalue, rtol=1e-4, atol=1e-4) + + + def test_oddsratio_pooled_confint(self): + lcb, ucb = self.rslt.oddsratio_pooled_confint() + assert_allclose(lcb, self.or_lcb, rtol=1e-4, atol=1e-4) + assert_allclose(ucb, self.or_ucb, rtol=1e-4, atol=1e-4) + + + def test_logodds_pooled_confint(self): + lcb, ucb = self.rslt.logodds_pooled_confint() + assert_allclose(lcb, np.log(self.or_lcb), rtol=1e-4, + atol=1e-4) + assert_allclose(ucb, np.log(self.or_ucb), rtol=1e-4, + atol=1e-4) + + + def test_equal_odds(self): + + if not hasattr(self, "or_homog"): + return + + rslt = self.rslt_0.test_equal_odds() + assert_allclose(rslt.statistic, self.or_homog, rtol=1e-4, atol=1e-4) + assert_allclose(rslt.pvalue, self.or_homog_p, rtol=1e-4, atol=1e-4) + + + def test_pandas(self): + + assert_equal(self.rslt.summary().as_text(), + self.rslt_pandas.summary().as_text()) + + + def test_from_data(self): + + np.random.seed(241) + df = pd.DataFrame(index=range(100), columns=("v1", "v2", "strat")) + df["v1"] = np.random.randint(0, 2, 100) + df["v2"] = np.random.randint(0, 2, 100) + df["strat"] = np.kron(np.arange(10), np.ones(10)) + + tables = [] + for k in range(10): + ii = np.arange(10*k, 10*(k+1)) + tables.append(pd.crosstab(df.loc[ii, "v1"], df.loc[ii, "v2"])) + + rslt1 = ctab.StratifiedTable(tables) + rslt2 = ctab.StratifiedTable.from_data("v1", "v2", "strat", df) + + assert_equal(rslt1.summary().as_text(), rslt2.summary().as_text()) + + +class TestStratified1(CheckStratifiedMixin): + """ + data = array(c(0, 0, 6, 5, + 3, 0, 3, 6, + 6, 2, 0, 4, + 5, 6, 1, 0, + 2, 5, 0, 0), + dim=c(2, 2, 5)) + rslt = mantelhaen.test(data) + """ + + def __init__(self): + + tables = [None] * 5 + tables[0] = np.array([[0, 0], [6, 5]]) + tables[1] = np.array([[3, 0], [3, 6]]) + tables[2] = np.array([[6, 2], [0, 4]]) + tables[3] = np.array([[5, 6], [1, 0]]) + tables[4] = np.array([[2, 5], [0, 0]]) + + self.initialize(tables) + + self.oddsratio_pooled = 7 + self.logodds_pooled = np.log(7) + self.mh_stat = 3.9286 + self.mh_pvalue = 0.04747 + self.or_lcb = 1.026713 + self.or_ucb = 47.725133 + + +class TestStratified2(CheckStratifiedMixin): + """ + data = array(c(20, 14, 10, 24, + 15, 12, 3, 15, + 3, 2, 3, 2, + 12, 3, 7, 5, + 1, 0, 3, 2), + dim=c(2, 2, 5)) + rslt = mantelhaen.test(data) + """ + + def __init__(self): + tables = [None] * 5 + tables[0] = np.array([[20, 14], [10, 24]]) + tables[1] = np.array([[15, 12], [3, 15]]) + tables[2] = np.array([[3, 2], [3, 2]]) + tables[3] = np.array([[12, 3], [7, 5]]) + tables[4] = np.array([[1, 0], [3, 2]]) + + self.initialize(tables) + + self.oddsratio_pooled = 3.5912 + self.logodds_pooled = np.log(3.5912) + + self.mh_stat = 11.8852 + self.mh_pvalue = 0.0005658 + + self.or_lcb = 1.781135 + self.or_ucb = 7.240633 + + +class TestStratified3(CheckStratifiedMixin): + """ + data = array(c(313, 512, 19, 89, + 207, 353, 8, 17, + 205, 120, 391, 202, + 278, 139, 244, 131, + 138, 53, 299, 94, + 351, 22, 317, 24), + dim=c(2, 2, 6)) + rslt = mantelhaen.test(data) + """ + + def __init__(self): + + tables = [None] * 6 + tables[0] = np.array([[313, 512], [19, 89]]) + tables[1] = np.array([[207, 353], [8, 17]]) + tables[2] = np.array([[205, 120], [391, 202]]) + tables[3] = np.array([[278, 139], [244, 131]]) + tables[4] = np.array([[138, 53], [299, 94]]) + tables[5] = np.array([[351, 22], [317, 24]]) + + self.initialize(tables) + + self.oddsratio_pooled = 1.101879 + self.logodds_pooled = np.log(1.101879) + + self.mh_stat = 1.3368 + self.mh_pvalue = 0.2476 + + self.or_lcb = 0.9402012 + self.or_ucb = 1.2913602 + + self.or_homog = 18.83297 + self.or_homog_p = 0.002064786 + + +class Check2x2Mixin(object): + + def initialize(self): + self.tbl_obj = ctab.Table2x2(self.table) + self.tbl_data_obj = ctab.Table2x2.from_data(self.data) + + def test_oddsratio(self): + assert_allclose(self.tbl_obj.oddsratio, self.oddsratio) + + + def test_log_oddsratio(self): + assert_allclose(self.tbl_obj.log_oddsratio, self.log_oddsratio) + + + def test_log_oddsratio_se(self): + assert_allclose(self.tbl_obj.log_oddsratio_se, self.log_oddsratio_se) + + + def test_oddsratio_pvalue(self): + assert_allclose(self.tbl_obj.oddsratio_pvalue(), self.oddsratio_pvalue) + + + def test_oddsratio_confint(self): + lcb1, ucb1 = self.tbl_obj.oddsratio_confint(0.05) + lcb2, ucb2 = self.oddsratio_confint + assert_allclose(lcb1, lcb2) + assert_allclose(ucb1, ucb2) + + + def test_riskratio(self): + assert_allclose(self.tbl_obj.riskratio, self.riskratio) + + + def test_log_riskratio(self): + assert_allclose(self.tbl_obj.log_riskratio, self.log_riskratio) + + + def test_log_riskratio_se(self): + assert_allclose(self.tbl_obj.log_riskratio_se, self.log_riskratio_se) + + + def test_riskratio_pvalue(self): + assert_allclose(self.tbl_obj.riskratio_pvalue(), self.riskratio_pvalue) + + + def test_riskratio_confint(self): + lcb1, ucb1 = self.tbl_obj.riskratio_confint(0.05) + lcb2, ucb2 = self.riskratio_confint + assert_allclose(lcb1, lcb2) + assert_allclose(ucb1, ucb2) + + + def test_log_riskratio_confint(self): + lcb1, ucb1 = self.tbl_obj.log_riskratio_confint(0.05) + lcb2, ucb2 = self.log_riskratio_confint + assert_allclose(lcb1, lcb2) + assert_allclose(ucb1, ucb2) + + + def test_from_data(self): + assert_equal(self.tbl_obj.summary().as_text(), + self.tbl_data_obj.summary().as_text()) + + + +class Test2x2_1(Check2x2Mixin): + + def __init__(self): + + data = np.zeros((8, 2)) + data[:, 0] = [0, 0, 1, 1, 0, 0, 1, 1] + data[:, 1] = [0, 1, 0, 1, 0, 1, 0, 1] + self.data = np.asarray(data) + self.table = np.asarray([[2, 2], [2, 2]]) + + self.initialize() + + self.oddsratio = 1. + self.log_oddsratio = 0. + self.log_oddsratio_se = np.sqrt(2) + self.oddsratio_confint = [0.062548836166112329, 15.987507702689751] + self.oddsratio_pvalue = 1. + self.riskratio = 1. + self.log_riskratio = 0. + self.log_riskratio_se = 1 / np.sqrt(2) + self.riskratio_pvalue = 1. + self.riskratio_confint = [0.25009765325990629, + 3.9984381579173824] + self.log_riskratio_confint = [-1.3859038243496782, + 1.3859038243496782] diff --git a/statsmodels/stats/tests/test_contrast.py b/statsmodels/stats/tests/test_contrast.py new file mode 100644 index 0000000..c61e372 --- /dev/null +++ b/statsmodels/stats/tests/test_contrast.py @@ -0,0 +1,38 @@ +import numpy as np +import numpy.random as R +from numpy.testing import assert_almost_equal, assert_equal +from statsmodels.stats.contrast import Contrast + +class TestContrast(object): + @classmethod + def setupClass(cls): + R.seed(54321) + cls.X = R.standard_normal((40,10)) + + def test_contrast1(self): + term = np.column_stack((self.X[:,0], self.X[:,2])) + c = Contrast(term, self.X) + test_contrast = [[1] + [0]*9, [0]*2 + [1] + [0]*7] + assert_almost_equal(test_contrast, c.contrast_matrix) + + def test_contrast2(self): + zero = np.zeros((40,)) + term = np.column_stack((zero, self.X[:,2])) + c = Contrast(term, self.X) + test_contrast = [0]*2 + [1] + [0]*7 + assert_almost_equal(test_contrast, c.contrast_matrix) + + def test_contrast3(self): + P = np.dot(self.X, np.linalg.pinv(self.X)) + resid = np.identity(40) - P + noise = np.dot(resid,R.standard_normal((40,5))) + term = np.column_stack((noise, self.X[:,2])) + c = Contrast(term, self.X) + assert_equal(c.contrast_matrix.shape, (10,)) +#TODO: this should actually test the value of the contrast, not only its dimension + + def test_estimable(self): + X2 = np.column_stack((self.X, self.X[:,5])) + c = Contrast(self.X[:,5],X2) + #TODO: I don't think this should be estimable? isestimable correct? + diff --git a/statsmodels/stats/tests/test_corrpsd.py b/statsmodels/stats/tests/test_corrpsd.py new file mode 100644 index 0000000..1f2a97d --- /dev/null +++ b/statsmodels/stats/tests/test_corrpsd.py @@ -0,0 +1,479 @@ +# -*- coding: utf-8 -*- +"""Tests for finding a positive semi-definite correlation or covariance matrix + +Created on Mon May 27 12:07:02 2013 + +Author: Josef Perktold +""" + +import numpy as np +import scipy.sparse as sparse +from numpy.testing import (assert_almost_equal, assert_allclose, + assert_equal) +from statsmodels.stats.correlation_tools import ( + corr_nearest, corr_clipped, cov_nearest, + _project_correlation_factors, corr_nearest_factor, _spg_optim, + corr_thresholded, cov_nearest_factor_homog, FactoredPSDMatrix) + +import warnings + +def norm_f(x, y): + '''Frobenious norm (squared sum) of difference between two arrays + ''' + d = ((x - y)**2).sum() + return np.sqrt(d) + +class Holder(object): + pass + +# R library Matrix results +cov1_r = Holder() +#> nc <- nearPD(pr, conv.tol = 1e-7, keepDiag = TRUE, doDykstra =FALSE, corr=TRUE) +#> cat_items(nc, prefix="cov1_r.") +cov1_r.mat = '''''' +cov1_r.eigenvalues = np.array([ + 4.197315628646795, 0.7540460243978023, 0.5077608149667492, + 0.3801267599652769, 0.1607508970775889, 4.197315628646795e-08 + ]) +cov1_r.corr = '''TRUE''' +cov1_r.normF = 0.0743805226512533 +cov1_r.iterations = 11 +cov1_r.rel_tol = 8.288594638441735e-08 +cov1_r.converged = '''TRUE''' +#> mkarray2(as.matrix(nc$mat), name="cov1_r.mat") +cov1_r.mat = np.array([ + 1, 0.487968018215892, 0.642651880010906, 0.4906386709070835, + 0.6440990530811909, 0.8087111845493985, 0.487968018215892, 1, + 0.5141147294352735, 0.2506688108312097, 0.672351311297074, + 0.725832055882795, 0.642651880010906, 0.5141147294352735, 1, + 0.596827778712154, 0.5821917790519067, 0.7449631633814129, + 0.4906386709070835, 0.2506688108312097, 0.596827778712154, 1, + 0.729882058012399, 0.772150225146826, 0.6440990530811909, + 0.672351311297074, 0.5821917790519067, 0.729882058012399, 1, + 0.813191720191944, 0.8087111845493985, 0.725832055882795, + 0.7449631633814129, 0.772150225146826, 0.813191720191944, 1 + ]).reshape(6,6, order='F') + + +cov_r = Holder() +#nc <- nearPD(pr+0.01*diag(6), conv.tol = 1e-7, keepDiag = TRUE, doDykstra =FALSE, corr=FALSE) +#> cat_items(nc, prefix="cov_r.") +#cov_r.mat = '''''' +cov_r.eigenvalues = np.array([ + 4.209897516692652, 0.7668341923072066, 0.518956980021938, + 0.390838551407132, 0.1734728460460068, 4.209897516692652e-08 + ]) +cov_r.corr = '''FALSE''' +cov_r.normF = 0.0623948693159157 +cov_r.iterations = 11 +cov_r.rel_tol = 5.83987595937896e-08 +cov_r.converged = '''TRUE''' + +#> mkarray2(as.matrix(nc$mat), name="cov_r.mat") +cov_r.mat = np.array([ + 1.01, 0.486207476951913, 0.6428524769306785, 0.4886092840296514, + 0.645175579158233, 0.811533860074678, 0.486207476951913, 1.01, + 0.514394615153752, 0.2478398278204047, 0.673852495852274, + 0.7297661648968664, 0.6428524769306785, 0.514394615153752, 1.01, + 0.5971503271420517, 0.582018469844712, 0.7445177382760834, + 0.4886092840296514, 0.2478398278204047, 0.5971503271420517, 1.01, + 0.73161232298669, 0.7766852947049376, 0.645175579158233, + 0.673852495852274, 0.582018469844712, 0.73161232298669, 1.01, + 0.8107916469252828, 0.811533860074678, 0.7297661648968664, + 0.7445177382760834, 0.7766852947049376, 0.8107916469252828, 1.01 + ]).reshape(6,6, order='F') + +def test_corr_psd(): + # test positive definite matrix is unchanged + x = np.array([[1, -0.2, -0.9], [-0.2, 1, -0.2], [-0.9, -0.2, 1]]) + + y = corr_nearest(x, n_fact=100) + #print np.max(np.abs(x - y)) + assert_almost_equal(x, y, decimal=14) + + y = corr_clipped(x) + assert_almost_equal(x, y, decimal=14) + + y = cov_nearest(x, n_fact=100) + assert_almost_equal(x, y, decimal=14) + + x2 = x + 0.001 * np.eye(3) + y = cov_nearest(x2, n_fact=100) + assert_almost_equal(x2, y, decimal=14) + + +class CheckCorrPSDMixin(object): + + def test_nearest(self): + x = self.x + res_r = self.res + y = corr_nearest(x, threshold=1e-7, n_fact=100) + #print np.max(np.abs(x - y)) + assert_almost_equal(y, res_r.mat, decimal=3) + d = norm_f(x, y) + assert_allclose(d, res_r.normF, rtol=0.0015) + evals = np.linalg.eigvalsh(y) + #print 'evals', evals / res_r.eigenvalues[::-1] - 1 + assert_allclose(evals, res_r.eigenvalues[::-1], rtol=0.003, atol=1e-7) + #print evals[0] / 1e-7 - 1 + assert_allclose(evals[0], 1e-7, rtol=1e-6) + + + def test_clipped(self): + x = self.x + res_r = self.res + y = corr_clipped(x, threshold=1e-7) + #print np.max(np.abs(x - y)), np.max(np.abs((x - y) / y)) + assert_almost_equal(y, res_r.mat, decimal=1) + d = norm_f(x, y) + assert_allclose(d, res_r.normF, rtol=0.15) + + evals = np.linalg.eigvalsh(y) + assert_allclose(evals, res_r.eigenvalues[::-1], rtol=0.1, atol=1e-7) + assert_allclose(evals[0], 1e-7, rtol=0.02) + + def test_cov_nearest(self): + x = self.x + res_r = self.res + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + y = cov_nearest(x, method='nearest', threshold=1e-7) + #print np.max(np.abs(x - y)) + assert_almost_equal(y, res_r.mat, decimal=2) + d = norm_f(x, y) + assert_allclose(d, res_r.normF, rtol=0.0015) + + +class TestCovPSD(object): + + @classmethod + def setup_class(cls): + x = np.array([ 1, 0.477, 0.644, 0.478, 0.651, 0.826, + 0.477, 1, 0.516, 0.233, 0.682, 0.75, + 0.644, 0.516, 1, 0.599, 0.581, 0.742, + 0.478, 0.233, 0.599, 1, 0.741, 0.8, + 0.651, 0.682, 0.581, 0.741, 1, 0.798, + 0.826, 0.75, 0.742, 0.8, 0.798, 1]).reshape(6,6) + cls.x = x + 0.01 * np.eye(6) + cls.res = cov_r + + def test_cov_nearest(self): + x = self.x + res_r = self.res + y = cov_nearest(x, method='nearest') + #print np.max(np.abs(x - y)) + assert_almost_equal(y, res_r.mat, decimal=3) + d = norm_f(x, y) + assert_allclose(d, res_r.normF, rtol=0.001) + + y = cov_nearest(x, method='clipped') + #print np.max(np.abs(x - y)) + assert_almost_equal(y, res_r.mat, decimal=2) + d = norm_f(x, y) + assert_allclose(d, res_r.normF, rtol=0.15) + + +class TestCorrPSD1(CheckCorrPSDMixin): + + @classmethod + def setup_class(cls): + x = np.array([ 1, 0.477, 0.644, 0.478, 0.651, 0.826, + 0.477, 1, 0.516, 0.233, 0.682, 0.75, + 0.644, 0.516, 1, 0.599, 0.581, 0.742, + 0.478, 0.233, 0.599, 1, 0.741, 0.8, + 0.651, 0.682, 0.581, 0.741, 1, 0.798, + 0.826, 0.75, 0.742, 0.8, 0.798, 1]).reshape(6,6) + cls.x = x + cls.res = cov1_r + +def test_corrpsd_threshold(): + x = np.array([[1, -0.9, -0.9], [-0.9, 1, -0.9], [-0.9, -0.9, 1]]) + + #print np.linalg.eigvalsh(x) + for threshold in [0, 1e-15, 1e-10, 1e-6]: + + y = corr_nearest(x, n_fact=100, threshold=threshold) + evals = np.linalg.eigvalsh(y) + #print 'evals', evals, threshold + assert_allclose(evals[0], threshold, rtol=1e-6, atol=1e-15) + + y = corr_clipped(x, threshold=threshold) + evals = np.linalg.eigvalsh(y) + #print 'evals', evals, threshold + assert_allclose(evals[0], threshold, rtol=0.25, atol=1e-15) + + y = cov_nearest(x, method='nearest', n_fact=100, threshold=threshold) + evals = np.linalg.eigvalsh(y) + #print 'evals', evals, threshold + #print evals[0] / threshold - 1 + assert_allclose(evals[0], threshold, rtol=1e-6, atol=1e-15) + + y = cov_nearest(x, n_fact=100, threshold=threshold) + evals = np.linalg.eigvalsh(y) + #print 'evals', evals, threshold + #print evals[0] / threshold - 1 + assert_allclose(evals[0], threshold, rtol=0.25, atol=1e-15) + +class Test_Factor(object): + + + def test_corr_nearest_factor_arrpack(self): + + # regression results for svds call + u2 = np.array([[ + 6.39407581e-19, 9.15225947e-03, 1.82631698e-02, + 2.72917181e-02, 3.61975557e-02, 4.49413101e-02, + 5.34848732e-02, 6.17916613e-02, 6.98268388e-02, + 7.75575058e-02, 8.49528448e-02, 9.19842264e-02, + 9.86252769e-02, 1.04851906e-01, 1.10642305e-01, + 1.15976906e-01, 1.20838331e-01, 1.25211306e-01, + 1.29082570e-01, 1.32440778e-01, 1.35276397e-01, + 1.37581605e-01, 1.39350201e-01, 1.40577526e-01, + 1.41260396e-01, 1.41397057e-01, 1.40987160e-01, + 1.40031756e-01, 1.38533306e-01, 1.36495727e-01, + 1.33924439e-01, 1.30826443e-01, 1.27210404e-01, + 1.23086750e-01, 1.18467769e-01, 1.13367717e-01, + 1.07802909e-01, 1.01791811e-01, 9.53551023e-02, + 8.85157320e-02, 8.12989329e-02, 7.37322125e-02, + 6.58453049e-02, 5.76700847e-02, 4.92404406e-02, + 4.05921079e-02, 3.17624629e-02, 2.27902803e-02, + 1.37154584e-02, 4.57871801e-03, -4.57871801e-03, + -1.37154584e-02, -2.27902803e-02, -3.17624629e-02, + -4.05921079e-02, -4.92404406e-02, -5.76700847e-02, + -6.58453049e-02, -7.37322125e-02, -8.12989329e-02, + -8.85157320e-02, -9.53551023e-02, -1.01791811e-01, + -1.07802909e-01, -1.13367717e-01, -1.18467769e-01, + -1.23086750e-01, -1.27210404e-01, -1.30826443e-01, + -1.33924439e-01, -1.36495727e-01, -1.38533306e-01, + -1.40031756e-01, -1.40987160e-01, -1.41397057e-01, + -1.41260396e-01, -1.40577526e-01, -1.39350201e-01, + -1.37581605e-01, -1.35276397e-01, -1.32440778e-01, + -1.29082570e-01, -1.25211306e-01, -1.20838331e-01, + -1.15976906e-01, -1.10642305e-01, -1.04851906e-01, + -9.86252769e-02, -9.19842264e-02, -8.49528448e-02, + -7.75575058e-02, -6.98268388e-02, -6.17916613e-02, + -5.34848732e-02, -4.49413101e-02, -3.61975557e-02, + -2.72917181e-02, -1.82631698e-02, -9.15225947e-03, + -3.51829569e-17]]).T + s2 = np.array([ 24.88812183]) + + d = 100 + dm = 1 + + # Construct a test matrix with exact factor structure + X = np.zeros((d,dm), dtype=np.float64) + x = np.linspace(0, 2*np.pi, d) + for j in range(dm): + X[:,j] = np.sin(x*(j+1)) + _project_correlation_factors(X) + X *= 0.7 + mat = np.dot(X, X.T) + np.fill_diagonal(mat, 1.) + + from scipy.sparse.linalg import svds + u, s, vt = svds(mat, dm) + + #difference in sign + dsign = np.sign(u[1]) * np.sign(u2[1]) + + assert_allclose(u, dsign * u2, rtol=1e-6, atol=1e-14) + assert_allclose(s, s2, rtol=1e-6) + + + def test_corr_nearest_factor(self): + + objvals = [np.array([6241.8, 6241.8, 579.4, 264.6, 264.3]), + np.array([2104.9, 2104.9, 710.5, 266.3, 286.1])] + + d = 100 + + for dm in 1,2: + + # Construct a test matrix with exact factor structure + X = np.zeros((d,dm), dtype=np.float64) + x = np.linspace(0, 2*np.pi, d) + np.random.seed(10) + for j in range(dm): + X[:,j] = np.sin(x*(j+1)) + 1e-10 * np.random.randn(d) + + _project_correlation_factors(X) + assert np.isfinite(X).all() + X *= 0.7 + mat = np.dot(X, X.T) + np.fill_diagonal(mat, 1.) + + # Try to recover the structure + rslt = corr_nearest_factor(mat, dm) + err_msg = 'rank=%d, niter=%d' % (dm, len(rslt.objective_values)) + assert_allclose(rslt.objective_values[:5], objvals[dm - 1], + rtol=0.5, err_msg=err_msg) + assert_equal(rslt.Converged, True, err_msg=err_msg) + mat1 = rslt.corr.to_matrix() + assert_allclose(mat, mat1, rtol=0.25, atol=1e-3, err_msg=err_msg) + + + # Test that we get the same result if the input is dense or sparse + def test_corr_nearest_factor_sparse(self): + + d = 100 + + for dm in 1,2: + + # Generate a test matrix of factors + X = np.zeros((d,dm), dtype=np.float64) + x = np.linspace(0, 2*np.pi, d) + np.random.seed(10) + for j in range(dm): + X[:,j] = np.sin(x*(j+1)) + 1e-10 * np.random.randn(d) + + # Get the correlation matrix + _project_correlation_factors(X) + X *= 0.7 + mat = np.dot(X, X.T) + np.fill_diagonal(mat, 1) + + # Threshold it + mat *= (np.abs(mat) >= 0.4) + smat = sparse.csr_matrix(mat) + + rslt = corr_nearest_factor(smat, dm) + assert_equal(rslt.Converged, True) + mat_dense = rslt.corr.to_matrix() + + rslt = corr_nearest_factor(smat, dm) + assert_equal(rslt.Converged, True) + mat_sparse = rslt.corr.to_matrix() + + assert_allclose(mat_dense, mat_sparse, rtol=0.25, + atol=1e-3) + + + # Test on a quadratic function. + def test_spg_optim(self): + + dm = 100 + + ind = np.arange(dm) + indmat = np.abs(ind[:,None] - ind[None,:]) + M = 0.8**indmat + + def obj(x): + return np.dot(x, np.dot(M, x)) + + def grad(x): + return 2*np.dot(M, x) + + def project(x): + return x + + x = np.random.normal(size=dm) + rslt = _spg_optim(obj, grad, x, project) + xnew = rslt.params + assert_equal(rslt.Converged, True) + assert_almost_equal(obj(xnew), 0, decimal=3) + + def test_decorrelate(self): + + d = 30 + dg = np.linspace(1, 2, d) + root = np.random.normal(size=(d, 4)) + fac = FactoredPSDMatrix(dg, root) + mat = fac.to_matrix() + rmat = np.linalg.cholesky(mat) + dcr = fac.decorrelate(rmat) + idm = np.dot(dcr, dcr.T) + assert_almost_equal(idm, np.eye(d)) + + rhs = np.random.normal(size=(d, 5)) + mat2 = np.dot(rhs.T, np.linalg.solve(mat, rhs)) + mat3 = fac.decorrelate(rhs) + mat3 = np.dot(mat3.T, mat3) + assert_almost_equal(mat2, mat3) + + def test_logdet(self): + + d = 30 + dg = np.linspace(1, 2, d) + root = np.random.normal(size=(d, 4)) + fac = FactoredPSDMatrix(dg, root) + mat = fac.to_matrix() + + _, ld = np.linalg.slogdet(mat) + ld2 = fac.logdet() + + assert_almost_equal(ld, ld2) + + def test_solve(self): + + d = 30 + dg = np.linspace(1, 2, d) + root = np.random.normal(size=(d, 2)) + fac = FactoredPSDMatrix(dg, root) + rhs = np.random.normal(size=(d, 5)) + sr1 = fac.solve(rhs) + mat = fac.to_matrix() + sr2 = np.linalg.solve(mat, rhs) + assert_almost_equal(sr1, sr2) + + def test_cov_nearest_factor_homog(self): + + d = 100 + + for dm in 1,2: + + # Construct a test matrix with exact factor structure + X = np.zeros((d,dm), dtype=np.float64) + x = np.linspace(0, 2*np.pi, d) + for j in range(dm): + X[:,j] = np.sin(x*(j+1)) + mat = np.dot(X, X.T) + np.fill_diagonal(mat, np.diag(mat) + 3.1) + + # Try to recover the structure + rslt = cov_nearest_factor_homog(mat, dm) + mat1 = rslt.to_matrix() + + assert_allclose(mat, mat1, rtol=0.25, atol=1e-3) + + + # Check that dense and sparse inputs give the same result + def test_cov_nearest_factor_homog_sparse(self): + + d = 100 + + for dm in 1,2: + + # Construct a test matrix with exact factor structure + X = np.zeros((d,dm), dtype=np.float64) + x = np.linspace(0, 2*np.pi, d) + for j in range(dm): + X[:,j] = np.sin(x*(j+1)) + mat = np.dot(X, X.T) + np.fill_diagonal(mat, np.diag(mat) + 3.1) + + # Fit to dense + rslt = cov_nearest_factor_homog(mat, dm) + mat1 = rslt.to_matrix() + + # Fit to sparse + smat = sparse.csr_matrix(mat) + rslt = cov_nearest_factor_homog(smat, dm) + mat2 = rslt.to_matrix() + + assert_allclose(mat1, mat2, rtol=0.25, atol=1e-3) + + def test_corr_thresholded(self): + + import datetime + + t1 = datetime.datetime.now() + X = np.random.normal(size=(2000,10)) + tcor = corr_thresholded(X, 0.2, max_elt=4e6) + t2 = datetime.datetime.now() + ss = (t2-t1).seconds + + fcor = np.corrcoef(X) + fcor *= (np.abs(fcor) >= 0.2) + + assert_allclose(tcor.todense(), fcor, rtol=0.25, atol=1e-3) + diff --git a/statsmodels/stats/tests/test_data.txt b/statsmodels/stats/tests/test_data.txt new file mode 100644 index 0000000..de835be --- /dev/null +++ b/statsmodels/stats/tests/test_data.txt @@ -0,0 +1,5000 @@ + 1 1 -1.113973 2.251535 + 1 2 -.0808538 1.242346 + 1 3 -.2376072 -1.426376 + 1 4 -.1524857 -1.109394 + 1 5 -.0014262 .9146864 + 1 6 -1.212737 -1.424686 + 1 7 -.1272733 .7589449 + 1 8 -1.433539 .9296525 + 1 9 -.2421959 1.056465 + 1 10 .4609221 3.308434 + 2 1 -.5507909 -2.545477 + 2 2 -1.287685 -3.02192 + 2 3 -.220503 -1.003296 + 2 4 .8143178 -.118388 + 2 5 -.0463721 -1.27967 + 2 6 .6220436 -3.539696 + 2 7 -.6530094 -2.235361 + 2 8 .0294105 -2.552972 + 2 9 -.5297469 -2.697836 + 2 10 1.062629 -.2633513 + 3 1 -1.068723 1.526512 + 3 2 -1.487991 -1.168439 + 3 3 -.814688 1.043587 + 3 4 -.2338627 -.1197725 + 3 5 .1520617 .8082583 + 3 6 -.7190769 .4063513 + 3 7 -.789831 .1766931 + 3 8 .2342699 -.0555624 + 3 9 -1.761113 2.518384 + 3 10 -.3273719 -.7832754 + 4 1 -.2296702 -2.250634 + 4 2 -.2630124 -4.333897 + 4 3 -1.149102 -5.923194 + 4 4 -1.545472 -4.946723 + 4 5 -.4622119 -4.187626 + 4 6 -.897935 -2.35512 + 4 7 -.0184996 -.5751319 + 4 8 -1.528389 -5.423674 + 4 9 -.4938884 -5.3437 + 4 10 -1.502312 -4.846558 + 5 1 2.779623 2.437731 + 5 2 .8433719 1.258013 + 5 3 .9458475 2.086509 + 5 4 .7096778 -1.228165 + 5 5 1.899227 1.900515 + 5 6 1.166349 .7273204 + 5 7 1.181561 2.911051 + 5 8 2.706866 1.111888 + 5 9 1.545396 3.96031 + 5 10 1.981749 1.977234 + 6 1 -.9365615 -.2101905 + 6 2 .6461006 2.049301 + 6 3 -.4348849 -.1027518 + 6 4 -.0757555 2.485265 + 6 5 -.7847632 .2498533 + 6 6 -.5248117 3.359383 + 6 7 -1.255933 .9409757 + 6 8 -.6616459 -.5577587 + 6 9 -.3824796 1.318928 + 6 10 .2396478 1.55268 + 7 1 1.623504 2.128958 + 7 2 .7098557 -.3429381 + 7 3 .2069566 .7544986 + 7 4 1.820897 1.98184 + 7 5 1.621639 3.058263 + 7 6 1.50036 .7002476 + 7 7 .1174462 .5142314 + 7 8 .9641763 2.592447 + 7 9 1.188708 3.484527 + 7 10 .8094589 1.059548 + 8 1 -.8293902 -3.095103 + 8 2 -.0773441 -1.075754 + 8 3 -1.059797 -1.427806 + 8 4 .7497107 -.5424759 + 8 5 -.0257226 -.9234265 + 8 6 .1400615 -3.386066 + 8 7 -.1043562 -1.617814 + 8 8 -.2583136 1.359765 + 8 9 -.0208603 -1.772177 + 8 10 -.4723518 -4.76895 + 9 1 1.332783 1.145341 + 9 2 -.6728608 .5174692 + 9 3 -.4754492 .3798001 + 9 4 -.6039808 -1.239824 + 9 5 .1309609 1.316887 + 9 6 -1.086091 -.8632649 + 9 7 .0309397 .117274 + 9 8 .3321901 .5235909 + 9 9 -.5372118 .7940336 + 9 10 -.6328836 .7600009 + 10 1 1.370561 .1820614 + 10 2 1.633542 4.072609 + 10 3 .7839341 .970894 + 10 4 2.220442 .3808429 + 10 5 1.79873 3.506714 + 10 6 1.163082 .9684718 + 10 7 1.18292 .4053151 + 10 8 .9972349 1.02293 + 10 9 2.089964 4.046412 + 10 10 2.753031 .9294024 + 11 1 1.574512 -.3453712 + 11 2 1.295469 .9458361 + 11 3 .8262731 -2.631818 + 11 4 -.7519966 -3.259816 + 11 5 1.85721 -1.481273 + 11 6 1.313615 -.1135894 + 11 7 .4492904 -1.354932 + 11 8 1.282646 -.7164733 + 11 9 .793996 1.56023 + 11 10 1.81194 -2.335421 + 12 1 .3962149 3.406662 + 12 2 .4690258 .3962663 + 12 3 -.4272058 -.5746272 + 12 4 -.6374772 -.0199228 + 12 5 .4908172 2.181542 + 12 6 .2576996 2.100275 + 12 7 1.045368 3.721958 + 12 8 -1.523433 -2.673755 + 12 9 .2149735 .4150824 + 12 10 .9596599 1.279467 + 13 1 -.0050541 -.2301515 + 13 2 .0573285 -4.603349 + 13 3 -.2873524 -3.122442 + 13 4 -.9560087 -2.047489 + 13 5 -.1322481 -2.479723 + 13 6 .8563187 -1.100657 + 13 7 .5628442 -2.072644 + 13 8 .0939828 -3.75598 + 13 9 -1.128489 -4.817086 + 13 10 -.1227113 -2.103747 + 14 1 .7103909 1.28138 + 14 2 .8252832 3.881294 + 14 3 .3337111 .0889839 + 14 4 -.0575897 .6532867 + 14 5 -.4192458 .390807 + 14 6 .3601439 1.74841 + 14 7 -1.393545 -.2194363 + 14 8 -.0698411 -.4834067 + 14 9 .2814299 1.426163 + 14 10 1.181061 3.507429 + 15 1 1.009861 -1.532208 + 15 2 1.311839 -.8157541 + 15 3 1.498951 1.96216 + 15 4 1.455375 .4142921 + 15 5 1.400201 .4846902 + 15 6 1.145606 1.750008 + 15 7 2.791482 .5052052 + 15 8 2.462629 .3794637 + 15 9 2.243632 1.976851 + 15 10 2.540534 4.890906 + 16 1 -1.32975 .9970715 + 16 2 -1.093146 .8712451 + 16 3 -.6130105 -.0015206 + 16 4 -1.686704 -.7815932 + 16 5 -.5000154 1.08846 + 16 6 -2.321311 -.9686073 + 16 7 -1.000255 -.8243695 + 16 8 -1.689007 -.3098336 + 16 9 -2.105825 -1.594268 + 16 10 -.1087233 2.540669 + 17 1 -.1834565 -.7474391 + 17 2 1.760618 .664487 + 17 3 .917949 -.2989441 + 17 4 .125932 -2.346791 + 17 5 .1489584 .6523662 + 17 6 1.48386 .9892153 + 17 7 -.0756009 -3.088845 + 17 8 .3020325 -2.159972 + 17 9 1.277132 -.3618947 + 17 10 1.257159 -.259792 + 18 1 1.350247 1.825974 + 18 2 .7981172 2.452424 + 18 3 .1627823 -1.100261 + 18 4 -.2530656 -.1072167 + 18 5 1.409152 3.023995 + 18 6 .9650795 4.045239 + 18 7 .7924365 -1.429348 + 18 8 .4374514 2.007032 + 18 9 1.433336 -.0483654 + 18 10 -.4121532 .0446989 + 19 1 -.6057982 -2.072419 + 19 2 -1.22436 -.9157416 + 19 3 -.4113617 -1.730782 + 19 4 .5172122 1.605569 + 19 5 .5599416 -1.911302 + 19 6 .2631143 -2.46949 + 19 7 1.052545 1.815052 + 19 8 -.4619475 -1.493746 + 19 9 -.1950531 .12866 + 19 10 .9847641 .4901831 + 20 1 1.194973 3.08798 + 20 2 .2886658 -.1272869 + 20 3 1.372576 .9298378 + 20 4 .3359049 -.7808023 + 20 5 .2632762 -.5619125 + 20 6 1.389192 .6404333 + 20 7 1.002251 -1.225412 + 20 8 .9873933 .1694237 + 20 9 .5451626 1.069149 + 20 10 1.272609 .1138117 + 21 1 .0715169 .9921842 + 21 2 -.5385422 2.645248 + 21 3 .1261714 .5394431 + 21 4 .9742477 -1.758292 + 21 5 -.387336 .5208343 + 21 6 -.163562 1.382814 + 21 7 -1.209613 .5298108 + 21 8 -.1052205 1.81125 + 21 9 .233432 3.334133 + 21 10 .033963 1.81531 + 22 1 -1.469799 -1.274279 + 22 2 -.7735941 .7755678 + 22 3 -2.34248 -2.870692 + 22 4 -.1510078 .8005464 + 22 5 -.5982444 .9196078 + 22 6 -.3231765 1.600504 + 22 7 -1.572776 -2.307724 + 22 8 -2.091078 .2940469 + 22 9 -.951831 -.1817034 + 22 10 -1.445554 1.463074 + 23 1 .3725035 1.296975 + 23 2 .3820614 2.208395 + 23 3 .0626017 3.521993 + 23 4 .3118868 .4395174 + 23 5 -.7015404 -1.236747 + 23 6 -1.061542 -1.303136 + 23 7 .3601503 -1.04813 + 23 8 -.5234128 -.0554307 + 23 9 -.4160686 -1.818478 + 23 10 -.935867 -.9283634 + 24 1 .615806 .3311929 + 24 2 .8959293 .3965915 + 24 3 1.041519 .761867 + 24 4 .8322722 .5173993 + 24 5 1.241602 2.09244 + 24 6 -.525863 -1.223376 + 24 7 1.244826 .7953752 + 24 8 .554536 -1.143122 + 24 9 .8645113 -1.19864 + 24 10 -.9087342 -1.909376 + 25 1 2.490452 3.036211 + 25 2 .566798 -.3936324 + 25 3 1.174179 4.968726 + 25 4 1.337521 3.712697 + 25 5 1.640917 .5074627 + 25 6 1.151234 4.668456 + 25 7 1.665541 2.425635 + 25 8 .5556951 .6610473 + 25 9 2.255266 2.723161 + 25 10 1.204085 -.8891255 + 26 1 -1.064435 -1.178893 + 26 2 -1.507475 .2652018 + 26 3 -.8579538 -2.429297 + 26 4 -.9578646 -1.4996 + 26 5 -1.380655 -1.76092 + 26 6 .4141689 2.402735 + 26 7 -.0267256 -1.490961 + 26 8 -1.557922 .8440058 + 26 9 .3288124 .7986623 + 26 10 -.3716564 -2.116218 + 27 1 -.3418024 -3.62125 + 27 2 -.5443683 -1.823602 + 27 3 -.3091648 -2.701856 + 27 4 -1.808666 -5.609725 + 27 5 .0141565 -1.931061 + 27 6 .6868294 -1.941063 + 27 7 -1.186494 -3.378432 + 27 8 .0788637 -2.170361 + 27 9 .1955413 -2.742892 + 27 10 -1.73326 -5.803233 + 28 1 2.037613 .370481 + 28 2 .4098332 2.592271 + 28 3 2.589939 2.755091 + 28 4 .4561431 2.675986 + 28 5 .0258005 1.062077 + 28 6 .3613938 -.4269319 + 28 7 1.01658 1.794224 + 28 8 .6531302 -.487547 + 28 9 1.239858 .2717134 + 28 10 1.733052 1.12657 + 29 1 1.528067 -2.546305 + 29 2 -.1173849 -4.213757 + 29 3 .1412974 -3.165163 + 29 4 1.161742 -4.47086 + 29 5 .2451712 -1.843103 + 29 6 -.0870678 -3.126637 + 29 7 -.9637305 -5.905717 + 29 8 -.0554156 -2.196696 + 29 9 -.4720482 -4.647809 + 29 10 .1132368 -3.675967 + 30 1 .6572391 -.1810672 + 30 2 .6745709 -.5412003 + 30 3 .4953664 -1.938183 + 30 4 .8027694 -1.049345 + 30 5 1.334518 2.330137 + 30 6 .595479 .5037384 + 30 7 -.4331662 -1.044778 + 30 8 1.896155 .8808025 + 30 9 .4341521 -1.923676 + 30 10 .2443834 .5174551 + 31 1 -.236808 1.523393 + 31 2 .2551001 1.540333 + 31 3 -.1413419 .4251668 + 31 4 .4838046 2.716643 + 31 5 1.01381 -2.267009 + 31 6 .3188626 -.4143309 + 31 7 .1241043 1.28881 + 31 8 1.320021 1.215297 + 31 9 .3550206 -.3735294 + 31 10 2.088094 2.051288 + 32 1 -.6425009 3.016043 + 32 2 .4888144 3.82457 + 32 3 -.5688635 3.073783 + 32 4 -.7428322 2.652193 + 32 5 -.8726666 2.259493 + 32 6 -.0072319 3.294394 + 32 7 .0944773 3.73045 + 32 8 -.4719657 5.652805 + 32 9 -.002363 1.316024 + 32 10 -.7055649 3.672465 + 33 1 1.066728 2.772746 + 33 2 .7828333 .9267769 + 33 3 1.614972 3.514425 + 33 4 1.202383 .849719 + 33 5 .7388576 .8559657 + 33 6 1.793998 .8247188 + 33 7 .4188262 .9468174 + 33 8 1.287768 1.192935 + 33 9 1.763492 2.848863 + 33 10 .7878532 1.271121 + 34 1 -1.008752 -.0237641 + 34 2 -2.003197 -2.488989 + 34 3 -1.089493 -2.617767 + 34 4 -1.764551 -2.207082 + 34 5 -2.375314 -5.992844 + 34 6 -.0554277 -2.782006 + 34 7 -2.07135 -3.742386 + 34 8 -2.168578 -4.107751 + 34 9 -1.494982 -1.4097 + 34 10 -2.42748 -4.542908 + 35 1 .4351655 -.1829615 + 35 2 .3130368 1.421464 + 35 3 .0475111 2.693851 + 35 4 1.150088 .4114417 + 35 5 -.0957933 -.3948805 + 35 6 -.5626023 1.468046 + 35 7 .7080812 .3045558 + 35 8 .7833046 2.149841 + 35 9 1.530476 4.189656 + 35 10 -.392029 1.836654 + 36 1 1.0746 1.334824 + 36 2 .858286 1.181961 + 36 3 1.087671 1.481181 + 36 4 .8066015 2.742746 + 36 5 .968512 -.3749059 + 36 6 .4630476 2.44119 + 36 7 .7254922 -.0272765 + 36 8 1.071142 .1138723 + 36 9 .9984562 .5836798 + 36 10 .7640775 3.27064 + 37 1 -1.984955 1.182446 + 37 2 1.703192 4.951967 + 37 3 .70728 3.779326 + 37 4 .1184022 2.989509 + 37 5 .5033596 2.156005 + 37 6 .1772844 3.906913 + 37 7 -.3786118 3.030409 + 37 8 .3874881 3.954621 + 37 9 .4214773 3.14631 + 37 10 -.2451651 3.019984 + 38 1 .0966754 1.819611 + 38 2 .3879874 .4967604 + 38 3 -1.395914 -1.222764 + 38 4 -.989659 -2.631211 + 38 5 -1.069286 -1.865198 + 38 6 -1.157302 -2.171825 + 38 7 -.2298466 -1.165969 + 38 8 -.162679 .1136425 + 38 9 .0452585 -.7178748 + 38 10 1.475002 .348091 + 39 1 -.3680276 1.008016 + 39 2 -.0768016 .9168845 + 39 3 -.2463435 -.4906966 + 39 4 -1.046038 -1.117032 + 39 5 -.0558881 -2.599502 + 39 6 .9340258 2.846533 + 39 7 .0387625 -.5874603 + 39 8 .4839897 -.4617234 + 39 9 .2249989 .3547341 + 39 10 .259582 6.206707 + 40 1 -.9563262 -5.226881 + 40 2 .158707 -2.80379 + 40 3 -1.419837 -2.904984 + 40 4 -.0518155 -5.127484 + 40 5 -.6936554 -4.768349 + 40 6 -1.083972 -1.757608 + 40 7 .1809549 -3.154513 + 40 8 -.9489363 -5.076436 + 40 9 .4788771 -.2498513 + 40 10 -1.20961 -4.886969 + 41 1 .1895332 -.9003911 + 41 2 .1223631 -2.135502 + 41 3 -1.228928 -1.727191 + 41 4 .5337941 1.946297 + 41 5 .0529219 -.8247613 + 41 6 -1.437048 -1.485657 + 41 7 -.206628 .5203915 + 41 8 -.3504592 -1.013146 + 41 9 .4133495 -2.11442 + 41 10 -.5753759 -5.671011 + 42 1 .9354859 -3.749093 + 42 2 -.7046662 -.3788415 + 42 3 .2735081 -2.195758 + 42 4 .5713441 -2.486974 + 42 5 .5723248 -.6334812 + 42 6 -.4295612 -1.476024 + 42 7 -.0990854 -.796925 + 42 8 -.2557784 -4.837788 + 42 9 .6341735 -2.101528 + 42 10 1.114925 .1935925 + 43 1 .3638722 -3.892314 + 43 2 .2192631 -2.75728 + 43 3 .7088032 -5.672783 + 43 4 1.291891 -4.523396 + 43 5 1.545635 -2.23069 + 43 6 .6984189 -5.255136 + 43 7 1.096994 -3.37829 + 43 8 -.9533722 -2.838433 + 43 9 -1.333343 -6.560651 + 43 10 .1325082 -4.231973 + 44 1 1.34609 2.80968 + 44 2 .8609981 5.157394 + 44 3 1.440838 4.059852 + 44 4 1.31601 4.396537 + 44 5 2.519416 4.529044 + 44 6 1.826352 3.553517 + 44 7 1.398376 3.261309 + 44 8 1.342633 2.678228 + 44 9 1.382244 2.567711 + 44 10 1.0065 .5983293 + 45 1 .2307572 1.985198 + 45 2 -.9988996 3.689198 + 45 3 .6118762 .3478896 + 45 4 -.1187919 1.536239 + 45 5 -.5651595 2.60128 + 45 6 .8897935 1.931453 + 45 7 .2191047 1.128779 + 45 8 .1270417 3.614626 + 45 9 .2746617 2.90299 + 45 10 .5508143 4.293116 + 46 1 .078143 .678977 + 46 2 -1.434957 -1.591428 + 46 3 -.330221 -.3885328 + 46 4 -.5095385 -1.590133 + 46 5 -.090955 -.5159563 + 46 6 .5905747 .2174876 + 46 7 -.5174507 .1700746 + 46 8 -1.716782 -1.525219 + 46 9 -1.618016 -.1487674 + 46 10 .0945247 3.33564 + 47 1 1.834461 2.205469 + 47 2 2.275893 .9900074 + 47 3 1.588463 2.728559 + 47 4 1.009486 2.664118 + 47 5 .8830495 2.335695 + 47 6 2.527426 2.792583 + 47 7 1.99428 3.975189 + 47 8 1.075636 -1.461666 + 47 9 1.62277 .2772777 + 47 10 -.2918671 .5717175 + 48 1 .6970845 3.548941 + 48 2 .3042401 2.714567 + 48 3 -.4733489 2.132618 + 48 4 .1186638 .2675722 + 48 5 .472446 3.49572 + 48 6 .0734216 2.383074 + 48 7 -.3304651 .1469643 + 48 8 -.1054729 2.743034 + 48 9 -.5502433 2.170792 + 48 10 -.6758031 -1.304036 + 49 1 -1.041904 2.614929 + 49 2 .2966474 6.801648 + 49 3 2.121607 2.953831 + 49 4 1.40961 4.125618 + 49 5 .72012 2.226582 + 49 6 1.468288 5.16179 + 49 7 .6989707 4.297358 + 49 8 .6398349 5.877613 + 49 9 1.50502 2.30839 + 49 10 2.039683 5.803663 + 50 1 -.575293 -.3911918 + 50 2 1.762867 .4241942 + 50 3 .4482329 2.129771 + 50 4 -.3965478 2.316875 + 50 5 -1.678993 -1.766155 + 50 6 -.4135653 1.104911 + 50 7 .2927381 .6836871 + 50 8 -1.213393 -.1328436 + 50 9 .4000321 .0105331 + 50 10 .3823605 1.738259 + 51 1 -.8829772 -1.230511 + 51 2 -.6324606 3.128573 + 51 3 .043897 .9378504 + 51 4 -.6960941 .2223853 + 51 5 -.6172736 1.144565 + 51 6 -1.547163 1.458072 + 51 7 -.100471 1.777758 + 51 8 -1.057376 1.23549 + 51 9 -1.17698 1.268143 + 51 10 -.0482326 5.12384 + 52 1 -1.17903 -1.424888 + 52 2 -.73939 -.6274891 + 52 3 .1877236 .0635122 + 52 4 -2.343301 -.4132502 + 52 5 -1.790024 -2.65057 + 52 6 -1.430529 -.0825908 + 52 7 -2.358212 -2.990146 + 52 8 -2.442413 -2.191358 + 52 9 -1.23455 .3577392 + 52 10 -1.410859 -2.390217 + 53 1 -.615875 -1.882129 + 53 2 -.4050235 -2.269866 + 53 3 1.700189 -1.987662 + 53 4 -.2603097 -.5872757 + 53 5 .0030433 -1.478914 + 53 6 -.5567633 -.5711855 + 53 7 1.92195 -.3205912 + 53 8 .4176314 -3.899356 + 53 9 .3705572 -.5002469 + 53 10 -.490355 -1.408963 + 54 1 .0004666 -1.352051 + 54 2 .4852016 -.1910567 + 54 3 -.0966698 -3.082341 + 54 4 -1.460837 .1644528 + 54 5 .2273265 1.150178 + 54 6 -1.45966 -1.679475 + 54 7 .0572578 1.093598 + 54 8 -1.654427 -1.100947 + 54 9 1.237763 -1.333114 + 54 10 -.2878364 -1.780298 + 55 1 1.478501 1.467222 + 55 2 .4603204 -.5379936 + 55 3 .4879025 .3834782 + 55 4 1.604256 2.304569 + 55 5 1.163704 .4021196 + 55 6 1.489046 -1.715636 + 55 7 .8985639 2.520392 + 55 8 .7750524 .3807169 + 55 9 1.898098 .2142996 + 55 10 .1348248 -.9902997 + 56 1 -1.172022 -1.255857 + 56 2 -1.996386 -.6948862 + 56 3 -1.828054 -2.934108 + 56 4 -1.694053 -2.265916 + 56 5 -1.590156 -1.318494 + 56 6 -1.720063 .8799964 + 56 7 -.8483286 1.144535 + 56 8 -1.399485 2.224534 + 56 9 -1.957177 -3.558478 + 56 10 -1.24907 -1.762664 + 57 1 -.0772464 1.308189 + 57 2 -1.954798 .3009691 + 57 3 .4118662 2.00026 + 57 4 -1.344646 1.167232 + 57 5 -.9593112 .8892092 + 57 6 -.6343449 1.525563 + 57 7 -1.098343 -1.334385 + 57 8 -.6753605 3.269268 + 57 9 .2483906 2.777401 + 57 10 -.5119361 1.517861 + 58 1 1.37044 2.686421 + 58 2 .1992836 4.470279 + 58 3 1.780507 4.082414 + 58 4 2.055047 5.420131 + 58 5 .5121466 3.711266 + 58 6 1.473428 2.824285 + 58 7 1.329377 3.340376 + 58 8 .0997097 4.848788 + 58 9 .0592693 1.22174 + 58 10 -.7709802 3.445836 + 59 1 -1.741525 -.8517226 + 59 2 -.7552054 .4590898 + 59 3 .2501201 .7584463 + 59 4 -1.110712 .689433 + 59 5 -.400084 2.492942 + 59 6 .4388102 .5513753 + 59 7 -.7038921 .1453933 + 59 8 .6593503 1.671134 + 59 9 -.7045739 1.111596 + 59 10 .8348078 3.478904 + 60 1 -.6234985 1.035679 + 60 2 -.8827932 -.3437634 + 60 3 -.4877819 .4702546 + 60 4 -1.357737 -1.923994 + 60 5 -.982067 -2.592882 + 60 6 .6913385 2.39666 + 60 7 -1.414991 -2.518005 + 60 8 .2656616 -.3867499 + 60 9 -.2962375 -2.936986 + 60 10 .0142404 .7719765 + 61 1 -.439088 1.007766 + 61 2 -.193091 .3836968 + 61 3 -.242038 2.372758 + 61 4 .2151277 .249827 + 61 5 -1.30581 1.51413 + 61 6 -1.180675 1.423673 + 61 7 .1970787 1.277134 + 61 8 .2143584 .5484737 + 61 9 -.0211159 .299883 + 61 10 -1.212968 -1.433422 + 62 1 1.244519 1.081811 + 62 2 .2099649 -1.353206 + 62 3 1.079102 .5684164 + 62 4 -1.379466 -2.538114 + 62 5 -.6902483 -2.311461 + 62 6 1.598011 2.727869 + 62 7 .4156265 -1.169007 + 62 8 -1.180868 -1.18629 + 62 9 .5274237 -.7270185 + 62 10 .2932127 -1.296323 + 63 1 1.652472 3.269476 + 63 2 .9311473 3.587776 + 63 3 .1365538 3.301447 + 63 4 -.9336739 2.468721 + 63 5 .6648791 1.450015 + 63 6 1.112161 .9805532 + 63 7 -.0768514 1.019256 + 63 8 1.118798 2.231499 + 63 9 -.2639879 -.8075618 + 63 10 1.720496 3.289132 + 64 1 -2.126607 -2.0323 + 64 2 -1.034993 .0076568 + 64 3 -.4070164 .0774245 + 64 4 -.9165144 .1537139 + 64 5 -.8468651 .0403835 + 64 6 -1.71135 1.873977 + 64 7 -2.643143 -2.905062 + 64 8 -.8416802 1.620987 + 64 9 -.2111055 2.15277 + 64 10 -1.293431 .1462283 + 65 1 1.470439 .2505732 + 65 2 -.2797295 -1.905268 + 65 3 1.2573 2.755377 + 65 4 .2549482 .1192819 + 65 5 -.9284112 -1.104261 + 65 6 -.1346348 .5341791 + 65 7 .4486474 1.608888 + 65 8 -.5673625 -2.705442 + 65 9 .5566354 .3581157 + 65 10 .5457277 -.1588266 + 66 1 -1.276205 -2.63712 + 66 2 .3802429 1.930348 + 66 3 -.4719372 -1.524975 + 66 4 .1339759 -1.857387 + 66 5 .3012415 -.3952781 + 66 6 .2892204 .0674402 + 66 7 -.9101849 -2.450623 + 66 8 .4789195 .0783564 + 66 9 -.2173619 -1.134714 + 66 10 -.4335834 -2.602576 + 67 1 -1.746627 -1.556566 + 67 2 -.2461215 .4684856 + 67 3 .6478384 2.154312 + 67 4 -.6014463 .6292101 + 67 5 -.0820355 .6818564 + 67 6 .0722168 3.289532 + 67 7 .336309 2.045677 + 67 8 -1.220219 3.693871 + 67 9 .6756133 .8521259 + 67 10 -1.442097 -1.00193 + 68 1 1.670991 .100397 + 68 2 .0335964 -1.760578 + 68 3 2.005924 -.7875214 + 68 4 1.365976 -.6309421 + 68 5 1.387996 1.324375 + 68 6 1.447517 .9915884 + 68 7 2.210074 2.969625 + 68 8 1.92698 .5908512 + 68 9 1.627984 .8709837 + 68 10 1.04416 -.6319273 + 69 1 -.0124644 1.419468 + 69 2 1.030046 .6109844 + 69 3 -.5636157 -.3836077 + 69 4 .0282581 .1377721 + 69 5 -.2643643 2.553824 + 69 6 .0057051 -1.07576 + 69 7 .4353822 3.140088 + 69 8 .2053966 1.170084 + 69 9 -.3652686 .3928741 + 69 10 -.0470572 .9432311 + 70 1 .662173 .691067 + 70 2 .0287157 .9367777 + 70 3 .0919333 4.407112 + 70 4 .6123652 .1652073 + 70 5 .9550495 1.434304 + 70 6 .2893381 -.1547853 + 70 7 -1.567039 2.306578 + 70 8 1.311026 3.289917 + 70 9 .3497968 1.474192 + 70 10 -.4420402 .3080444 + 71 1 -.7991003 1.022175 + 71 2 -.5328414 -.8583595 + 71 3 -1.312079 1.143468 + 71 4 -1.304409 -2.393357 + 71 5 -.1132078 -.2235197 + 71 6 -.2002916 .460861 + 71 7 -.966539 -.6213126 + 71 8 -1.701905 .1049957 + 71 9 -2.362988 -2.286353 + 71 10 -.1560949 -.6161904 + 72 1 -1.759597 -2.54192 + 72 2 -1.570932 -2.757867 + 72 3 -.3251486 -3.74301 + 72 4 -1.264545 -3.548995 + 72 5 -.7891811 .8878638 + 72 6 -.8644689 -.6600763 + 72 7 -.7237157 -4.057347 + 72 8 -1.018566 -3.456203 + 72 9 -1.069755 -2.529535 + 72 10 .8272165 -2.611904 + 73 1 -.3610777 .8627242 + 73 2 -2.044819 .1477814 + 73 3 -1.189291 .505493 + 73 4 -.2003012 .3545881 + 73 5 -1.717357 -1.545984 + 73 6 -1.381707 -1.255205 + 73 7 -1.648393 .5353007 + 73 8 -1.14658 -2.670967 + 73 9 -1.570629 1.950688 + 73 10 -1.459593 2.579752 + 74 1 .2983489 .5581883 + 74 2 -.5395431 3.039327 + 74 3 .2994908 1.497299 + 74 4 -.8069515 .947127 + 74 5 -.7145913 1.403247 + 74 6 .4835035 1.135937 + 74 7 .3220123 3.149889 + 74 8 -.5779068 2.90988 + 74 9 .4638343 3.072803 + 74 10 .2621138 1.923369 + 75 1 .3848984 .5701465 + 75 2 1.545214 .6877246 + 75 3 -.8788593 .0956231 + 75 4 .932452 1.014515 + 75 5 .2293503 -1.113819 + 75 6 .5246851 1.852423 + 75 7 -.3868059 .1628141 + 75 8 -.1423754 -4.996533 + 75 9 -.1445253 -1.929576 + 75 10 .2055996 -1.239898 + 76 1 -.0543353 2.582696 + 76 2 -.7466006 -.0700716 + 76 3 -.2443508 2.729753 + 76 4 -.6737047 -3.573879 + 76 5 -1.266468 2.062438 + 76 6 .3490027 2.534081 + 76 7 .4766811 .588997 + 76 8 -1.146015 -2.122133 + 76 9 .3727362 2.651158 + 76 10 -.9754266 1.534763 + 77 1 .4448988 -.2193734 + 77 2 -.1803424 .9482737 + 77 3 -.803889 -.6683654 + 77 4 -1.172673 .0351796 + 77 5 .1531071 -.377766 + 77 6 1.213774 1.157787 + 77 7 -.7639153 -.2762698 + 77 8 -.3890682 -3.896112 + 77 9 .2032362 .4628553 + 77 10 -1.682079 -1.606341 + 78 1 .3725399 4.729499 + 78 2 .268485 4.462913 + 78 3 -.2863291 4.527299 + 78 4 -.4285598 3.15636 + 78 5 .1662205 6.15921 + 78 6 -.1146359 4.265123 + 78 7 -.9870021 4.135365 + 78 8 -.8400126 1.920976 + 78 9 -.683973 3.567228 + 78 10 .0656645 5.654191 + 79 1 .1833397 -2.728171 + 79 2 -.955341 -1.3267 + 79 3 -1.224389 -3.134072 + 79 4 -.7033014 -.9321624 + 79 5 -1.204872 -2.657676 + 79 6 .2990843 -2.506747 + 79 7 -1.28442 -1.761684 + 79 8 -.05433 -.0101 + 79 9 -.3129859 -4.19744 + 79 10 -.48162 -1.850879 + 80 1 .3709864 .2072858 + 80 2 -.8601138 .6410634 + 80 3 -.3298343 -.1312528 + 80 4 .3098594 .3753572 + 80 5 -.8402381 -1.692083 + 80 6 -1.089901 -.9368669 + 80 7 -.4766479 -.3077386 + 80 8 -1.085312 -.817827 + 80 9 -.0769635 -1.277251 + 80 10 -.4160216 -.9232594 + 81 1 -.5272707 2.492023 + 81 2 .9265733 2.790575 + 81 3 .8395156 2.917142 + 81 4 .997837 3.821295 + 81 5 -.2418556 2.769039 + 81 6 1.10829 4.222867 + 81 7 -.5968684 4.107396 + 81 8 .7612233 2.035242 + 81 9 .0729438 .7496958 + 81 10 .6534098 3.831431 + 82 1 -.5755852 .7773246 + 82 2 -.9763342 3.374248 + 82 3 -1.928036 -1.315026 + 82 4 -3.154886 .5804853 + 82 5 -1.422153 -.2064837 + 82 6 -2.059228 -1.144735 + 82 7 -3.225644 -1.548839 + 82 8 -1.344668 2.167114 + 82 9 -2.249151 -2.55973 + 82 10 -1.133575 .9506042 + 83 1 -1.210145 .00427 + 83 2 -.4756099 .6423019 + 83 3 -.7874444 1.157616 + 83 4 -.6038613 1.552962 + 83 5 -1.016748 -1.954607 + 83 6 -.7537422 -.9986326 + 83 7 -.7994386 -.5780545 + 83 8 -.8198663 -1.195533 + 83 9 -.7091545 -1.349308 + 83 10 -1.420908 -3.080597 + 84 1 .7461836 -.0254735 + 84 2 -.4304503 2.27268 + 84 3 1.035587 .5626667 + 84 4 .6368332 .2364947 + 84 5 1.223844 1.341512 + 84 6 1.359299 1.367263 + 84 7 -.0167454 .5935086 + 84 8 -.8196754 -1.457118 + 84 9 1.410377 2.993989 + 84 10 .5997642 .9570292 + 85 1 1.628572 -1.35826 + 85 2 2.052706 -.4462183 + 85 3 .215812 -1.890946 + 85 4 .6963931 -.88616 + 85 5 .818251 -2.13424 + 85 6 -.1413346 -3.322396 + 85 7 .2018216 -.8162438 + 85 8 -.1636942 -.7240803 + 85 9 -.4798506 -4.181 + 85 10 -.1174669 -.5232955 + 86 1 -.6495263 -.6829134 + 86 2 -1.895121 -5.51412 + 86 3 -.1903552 .9088601 + 86 4 -.6449907 -6.215881 + 86 5 -1.662863 -1.023716 + 86 6 -.1996787 -3.340915 + 86 7 -2.122803 -2.146306 + 86 8 -.7962283 -1.637065 + 86 9 -1.01159 -2.681375 + 86 10 -.7748188 -2.316792 + 87 1 .8127542 -.5909941 + 87 2 -.7785764 -3.736 + 87 3 -.7024275 -3.593106 + 87 4 .9921172 -1.198709 + 87 5 .7975324 .2150961 + 87 6 .250467 .2749398 + 87 7 .4358244 -2.918331 + 87 8 .065637 -.7143529 + 87 9 .1993551 -.7192752 + 87 10 -.3692175 -.681936 + 88 1 3.332827 3.641891 + 88 2 3.247604 6.263003 + 88 3 2.340322 2.254026 + 88 4 2.626786 1.581534 + 88 5 3.280261 2.549119 + 88 6 1.760448 1.061697 + 88 7 3.55281 4.356301 + 88 8 2.727623 3.949953 + 88 9 1.983919 1.001524 + 88 10 1.07229 -.5318067 + 89 1 1.526344 3.851074 + 89 2 .343597 -1.085497 + 89 3 1.676662 2.201779 + 89 4 .634718 1.480652 + 89 5 .4231488 -.1160433 + 89 6 2.03657 1.501163 + 89 7 -.003951 -1.335885 + 89 8 .8643371 -1.829961 + 89 9 .9630698 .2187398 + 89 10 1.229657 2.195579 + 90 1 .6774948 .13387 + 90 2 1.54678 -2.665641 + 90 3 -.1487001 -2.904281 + 90 4 1.527219 .713655 + 90 5 .5745606 -1.754661 + 90 6 -.1216967 -2.595916 + 90 7 -.086078 -3.479263 + 90 8 1.573822 -2.001506 + 90 9 .8749673 -1.962126 + 90 10 1.32782 -.7756476 + 91 1 .5364156 .5309559 + 91 2 1.044684 -.9052037 + 91 3 -.272637 -1.981785 + 91 4 -.4093122 -.6303263 + 91 5 .7212245 -1.268853 + 91 6 .3781427 1.119254 + 91 7 -.1825575 -1.728389 + 91 8 -.1777665 .3995577 + 91 9 .3727928 1.961935 + 91 10 -.3966752 -3.982467 + 92 1 .7738721 -1.140398 + 92 2 -1.888295 -4.964508 + 92 3 -1.296459 -4.149817 + 92 4 -2.039593 -3.451557 + 92 5 -.9700022 -4.489924 + 92 6 -.004035 .5129095 + 92 7 .1486926 -.207259 + 92 8 -1.804143 -3.883155 + 92 9 -.1051963 -2.852115 + 92 10 -.3828316 -1.544678 + 93 1 -.6516115 1.896614 + 93 2 -1.112646 -2.311133 + 93 3 -.9352806 .3627226 + 93 4 -.8951915 -2.572836 + 93 5 -.4816938 -.0324859 + 93 6 .7686692 3.784502 + 93 7 -.7999012 1.112347 + 93 8 .8176185 1.476878 + 93 9 -.9369711 -2.300562 + 93 10 .6676452 .1401932 + 94 1 1.214736 1.410911 + 94 2 -.8337653 .0307171 + 94 3 .5541754 -1.674761 + 94 4 1.270796 2.27291 + 94 5 -.2061931 -.7724628 + 94 6 .0866545 1.231509 + 94 7 -.2551947 -2.274495 + 94 8 -.6307989 -1.513553 + 94 9 .4124774 -1.254067 + 94 10 -1.012987 -2.406973 + 95 1 1.032044 3.514778 + 95 2 .2490372 1.534935 + 95 3 .2588367 2.071565 + 95 4 .1169671 1.840981 + 95 5 -.0244914 1.781758 + 95 6 .9549935 3.5147 + 95 7 1.364106 3.127855 + 95 8 .9321354 1.757664 + 95 9 .2904355 2.301433 + 95 10 .8085022 2.11163 + 96 1 1.114837 -.7178155 + 96 2 -1.267564 -2.741404 + 96 3 -1.085746 -4.827821 + 96 4 -.8708308 -3.71345 + 96 5 -.489081 -1.264031 + 96 6 -.7432358 -1.651288 + 96 7 -.9332526 -3.7981 + 96 8 -.9088738 -2.490584 + 96 9 -.4789856 .1301999 + 96 10 -.2546913 -1.527178 + 97 1 .0533133 3.440775 + 97 2 1.744777 4.877036 + 97 3 1.402804 6.417698 + 97 4 1.641241 4.237218 + 97 5 1.281364 5.909176 + 97 6 1.03682 4.032018 + 97 7 -.0996061 5.693103 + 97 8 1.348916 3.032289 + 97 9 -.3237499 4.656998 + 97 10 .1847036 2.368484 + 98 1 -.6517955 -1.866707 + 98 2 -.0171172 -2.659516 + 98 3 -.7687393 .3396965 + 98 4 -.6190444 -.5611658 + 98 5 -.9726762 -.0161824 + 98 6 -1.63478 -2.613414 + 98 7 -.7557085 .7616437 + 98 8 -.4223914 -1.580691 + 98 9 .3260078 1.707461 + 98 10 .3354938 .9962233 + 99 1 -1.027093 -1.58087 + 99 2 .4703917 -1.370057 + 99 3 -.820445 -.7738686 + 99 4 -.7226994 -4.449502 + 99 5 -1.430104 -1.259469 + 99 6 -1.270371 -3.569478 + 99 7 -.4025181 -2.638689 + 99 8 -1.261932 -3.126859 + 99 9 -1.126017 -1.884274 + 99 10 -.6694252 -4.541583 + 100 1 -.30744 1.02539 + 100 2 -.6012539 -.335935 + 100 3 -.435059 .5852526 + 100 4 -1.806088 -.6447401 + 100 5 .1366319 1.9103 + 100 6 -2.050971 1.091531 + 100 7 .435282 1.132483 + 100 8 .3822627 1.328956 + 100 9 -.1652966 .3171474 + 100 10 .2587045 1.497525 + 101 1 -.2273589 -1.063786 + 101 2 -1.185664 .6527855 + 101 3 .400003 1.310241 + 101 4 .7594776 .7713131 + 101 5 -.8813154 -.9125404 + 101 6 -1.127854 -.3648072 + 101 7 -1.895109 -1.2161 + 101 8 -1.669487 -.5815258 + 101 9 -1.891508 -1.104043 + 101 10 -1.055494 .1329769 + 102 1 -1.723715 .664099 + 102 2 -3.010109 -1.279886 + 102 3 -1.525109 .3261039 + 102 4 -1.146745 .6388897 + 102 5 -1.600002 .3282819 + 102 6 -3.072865 .1835895 + 102 7 -2.617226 -1.256764 + 102 8 -2.208615 -2.902243 + 102 9 -1.264346 -2.840227 + 102 10 -1.449807 -.6277186 + 103 1 .3226332 .4997346 + 103 2 -.076093 .5681773 + 103 3 -1.894362 .8960136 + 103 4 .0410097 1.833357 + 103 5 -.2243991 .044889 + 103 6 -.9386661 -.0806124 + 103 7 -.2758278 1.382825 + 103 8 -1.135128 .076048 + 103 9 -.3520421 1.571149 + 103 10 .7385342 1.755647 + 104 1 1.256971 .648344 + 104 2 .8465124 .8998452 + 104 3 1.27114 2.468534 + 104 4 .1194901 -1.80525 + 104 5 1.978375 2.43786 + 104 6 1.086473 .8904172 + 104 7 .6335369 -.0536024 + 104 8 1.852129 2.068656 + 104 9 1.153308 2.812323 + 104 10 .7714425 2.740011 + 105 1 -2.042488 -1.369616 + 105 2 .3178222 .4381413 + 105 3 -.600008 1.47808 + 105 4 -1.314453 -2.10709 + 105 5 -.6073269 -1.32969 + 105 6 -.120853 .8055446 + 105 7 .0065417 1.450818 + 105 8 .0155846 -2.299504 + 105 9 -.1486192 1.961463 + 105 10 .5344943 .2794205 + 106 1 -1.169599 -2.828606 + 106 2 -1.849769 -3.345207 + 106 3 -1.218134 -1.553143 + 106 4 -1.33059 -2.381288 + 106 5 -.8316581 -3.005554 + 106 6 -.4472938 -3.395564 + 106 7 -.9147623 .1233101 + 106 8 -1.556795 -2.780197 + 106 9 -1.420463 -4.245845 + 106 10 -2.549732 -6.574844 + 107 1 .7972398 -.6703857 + 107 2 1.013986 2.205157 + 107 3 1.280889 4.960197 + 107 4 1.94929 4.616246 + 107 5 .6728333 1.599389 + 107 6 1.326033 2.621707 + 107 7 1.640348 -.0979825 + 107 8 -.0193518 3.05404 + 107 9 1.477356 2.36653 + 107 10 1.749324 3.181671 + 108 1 -.2119814 -1.666841 + 108 2 -.3043244 -3.054193 + 108 3 -.695592 -2.988183 + 108 4 .4245084 -.1200044 + 108 5 .3031314 -.2345145 + 108 6 -1.672249 -3.897476 + 108 7 1.019048 .0358505 + 108 8 -.4983453 -.0931661 + 108 9 .7222788 1.283888 + 108 10 -.7430365 -1.72292 + 109 1 .5269582 -1.876588 + 109 2 -.2942517 1.061157 + 109 3 1.260649 1.803303 + 109 4 .1170161 -.9161218 + 109 5 -1.431327 -3.264418 + 109 6 -1.710629 -3.232257 + 109 7 .2631577 .8800084 + 109 8 .4623963 -.3746355 + 109 9 .0295791 .5078085 + 109 10 .7788738 1.551043 + 110 1 .2946399 2.479715 + 110 2 .2595214 2.977597 + 110 3 -.5736612 1.704173 + 110 4 .1835434 3.867414 + 110 5 -.0237556 .7681468 + 110 6 .6630996 .5613937 + 110 7 -.8409108 3.52354 + 110 8 -.1552351 -.472919 + 110 9 .6044915 .5183871 + 110 10 -.7809685 .2677606 + 111 1 -1.532933 1.757141 + 111 2 -1.279813 2.542971 + 111 3 -.5264512 1.206971 + 111 4 -1.638465 1.460618 + 111 5 -1.226385 1.901769 + 111 6 -.6994659 3.616364 + 111 7 -.2850284 1.397959 + 111 8 -.9615322 2.048981 + 111 9 -.8090673 1.631124 + 111 10 -.758942 1.80999 + 112 1 1.142599 2.590217 + 112 2 .5199317 .9012542 + 112 3 .1671776 -1.384863 + 112 4 -.2558758 -2.502313 + 112 5 1.370843 3.455235 + 112 6 1.432706 2.168218 + 112 7 .0478287 -1.01463 + 112 8 1.777138 -.3324981 + 112 9 .5305171 -.5686251 + 112 10 1.20891 -2.435307 + 113 1 -.3121598 -1.818837 + 113 2 1.303828 -.5285407 + 113 3 -.4248065 -7.170979 + 113 4 2.158508 3.135753 + 113 5 -.21672 -2.695576 + 113 6 .2123556 -.8669874 + 113 7 1.753473 -1.866275 + 113 8 1.301555 -1.463479 + 113 9 .0197642 -5.298079 + 113 10 .9646027 -1.643543 + 114 1 -.5405908 -.5000682 + 114 2 -1.547085 -.6405376 + 114 3 .3640202 1.800588 + 114 4 1.094777 .7435986 + 114 5 -.1703027 .8763703 + 114 6 1.455668 1.378347 + 114 7 -.7272233 -1.435992 + 114 8 1.194396 1.51213 + 114 9 -.7808616 -1.645977 + 114 10 .5322501 1.37332 + 115 1 1.97693 -.6823063 + 115 2 1.745592 2.078362 + 115 3 .2409086 -2.854815 + 115 4 .2869095 -.9275485 + 115 5 2.636622 1.88622 + 115 6 .8873282 -2.273578 + 115 7 1.227679 .5559428 + 115 8 .1884174 -.2892387 + 115 9 1.867471 .5786712 + 115 10 2.333602 3.665067 + 116 1 -.2838019 .5397308 + 116 2 -.0743282 .03362 + 116 3 -1.390081 -1.25984 + 116 4 -.7925932 .651867 + 116 5 -.4653697 1.019436 + 116 6 -1.737794 -2.05872 + 116 7 -.1542077 -.8429675 + 116 8 -.1742824 1.889222 + 116 9 -.218655 .393846 + 116 10 .2456035 2.077366 + 117 1 -.8520899 1.058148 + 117 2 -.5770284 1.787735 + 117 3 -.7568671 -.834977 + 117 4 .1464327 -2.417961 + 117 5 -.3322017 -1.907948 + 117 6 .4868663 2.144097 + 117 7 -1.063539 .6907289 + 117 8 -.4787531 -.5964946 + 117 9 -.3970969 .2641942 + 117 10 .9385663 1.85771 + 118 1 -.9728964 -2.14444 + 118 2 -1.526036 -4.672813 + 118 3 -.6930456 -1.524115 + 118 4 -.1408402 -1.905714 + 118 5 -.2694957 -3.529598 + 118 6 -.4137527 -2.309146 + 118 7 -.8092418 -1.716916 + 118 8 -1.502103 -2.9842 + 118 9 -.6589891 -3.01728 + 118 10 -1.06735 -2.348024 + 119 1 1.195466 -3.292557 + 119 2 1.885971 -1.199523 + 119 3 .4774106 -2.676813 + 119 4 .8775216 -2.975778 + 119 5 1.12687 -.664959 + 119 6 1.322387 -.9901112 + 119 7 .9471256 -1.757863 + 119 8 .6504224 -1.37303 + 119 9 .6395935 -3.285441 + 119 10 .2788958 -3.098464 + 120 1 -1.505186 -.6822897 + 120 2 -.1863681 -.8140666 + 120 3 -.1696211 -1.998106 + 120 4 -.3226475 -.8244213 + 120 5 -.568579 -1.075819 + 120 6 -1.598264 -2.777033 + 120 7 -1.058119 -4.563534 + 120 8 -.7734848 -2.518186 + 120 9 -.394709 .9269257 + 120 10 -.9740321 -3.21834 + 121 1 -.4891163 -.5992677 + 121 2 .1057358 -.3556572 + 121 3 .8981277 2.899486 + 121 4 -.5074894 -2.993659 + 121 5 -.1182769 3.665098 + 121 6 -1.046309 -.3870076 + 121 7 .0576563 1.524976 + 121 8 .1695461 .354616 + 121 9 -.9486295 2.9306 + 121 10 -.2887603 2.591684 + 122 1 -.1706829 -.8137514 + 122 2 -.1512809 -.4865153 + 122 3 -1.866713 -2.345707 + 122 4 .2566354 .8374416 + 122 5 -.7825446 1.330374 + 122 6 -1.02989 .6564873 + 122 7 -.6444219 -.3626479 + 122 8 -.2783471 .6864146 + 122 9 -.7015004 .5802032 + 122 10 -.6379129 1.608424 + 123 1 -2.318145 -3.890716 + 123 2 -1.875275 -3.094651 + 123 3 .1264697 .7230974 + 123 4 -.8920876 -4.149077 + 123 5 -1.682701 -1.914709 + 123 6 -1.743317 -2.600914 + 123 7 -1.819896 -3.333781 + 123 8 -2.960504 -2.589056 + 123 9 -2.509812 -1.578856 + 123 10 -3.222315 -4.181535 + 124 1 1.340514 .9054741 + 124 2 -.4462702 -.9070659 + 124 3 -.3843558 .4841001 + 124 4 -.6317815 -.3784642 + 124 5 .3321961 -.1564197 + 124 6 .511156 -.6143296 + 124 7 .4042374 -1.746679 + 124 8 .360633 .7452682 + 124 9 1.109597 3.695779 + 124 10 .8513098 1.611356 + 125 1 1.03682 3.06856 + 125 2 -1.646388 3.689954 + 125 3 -.3264412 2.370048 + 125 4 -1.875114 .5472155 + 125 5 -.0959938 1.090865 + 125 6 -.4162325 2.723062 + 125 7 -.1119899 3.420455 + 125 8 -.4904234 4.488451 + 125 9 -.8705801 2.8891 + 125 10 -.5656731 1.742721 + 126 1 .1805784 -3.235839 + 126 2 1.179855 2.45316 + 126 3 .8037672 1.416103 + 126 4 1.080037 2.337693 + 126 5 1.084708 -.8897643 + 126 6 1.823085 2.830274 + 126 7 .8762894 .4271989 + 126 8 .9406815 .5138517 + 126 9 -.2232153 -2.698347 + 126 10 1.406596 .6613618 + 127 1 .0165641 .5003499 + 127 2 2.179157 1.309202 + 127 3 .3198292 -.6243532 + 127 4 -.3691842 -.1071197 + 127 5 1.715909 2.847828 + 127 6 .1733232 -1.884756 + 127 7 .6009777 .8099669 + 127 8 .9436939 -.2137216 + 127 9 -.0949055 2.212341 + 127 10 .017553 -.4165724 + 128 1 -.5433387 .4253175 + 128 2 -.5029234 .5789004 + 128 3 .5211815 .098434 + 128 4 -1.327222 .3302552 + 128 5 -.6762775 -.9722145 + 128 6 -.3618637 -.2873932 + 128 7 -.7687715 -.7687259 + 128 8 -.2951016 .1257518 + 128 9 -.7266483 .0674387 + 128 10 -1.252552 -.8973701 + 129 1 -.0863846 3.102758 + 129 2 .9026731 3.456725 + 129 3 -.7877837 .5526427 + 129 4 -.5163476 -.6269442 + 129 5 -1.363382 -1.187456 + 129 6 -.4138386 -1.110376 + 129 7 -.1353253 -.9504108 + 129 8 .5943301 -1.692959 + 129 9 -.5309526 -2.062739 + 129 10 .1095079 1.121347 + 130 1 1.929706 2.765751 + 130 2 -.0655605 -.5198578 + 130 3 1.028925 -.2150865 + 130 4 .3135404 -1.307056 + 130 5 1.903801 .0877836 + 130 6 2.278376 2.261121 + 130 7 .0735654 -.3298533 + 130 8 .8811373 1.480693 + 130 9 1.062071 1.474062 + 130 10 -.1125495 -.9275653 + 131 1 .0648873 -.3521852 + 131 2 -.5791595 .1308538 + 131 3 .4199167 -.3386582 + 131 4 -.4558089 -2.617508 + 131 5 -.0722665 -.4281615 + 131 6 .231862 -1.886847 + 131 7 1.478834 .0224241 + 131 8 -1.001553 -.0847604 + 131 9 -.1782843 -1.917283 + 131 10 -.1564308 -3.130079 + 132 1 -1.019181 .0200638 + 132 2 -.4961173 .3865641 + 132 3 1.35356 -.1029345 + 132 4 .1918307 .5736313 + 132 5 1.861858 1.116495 + 132 6 .2320639 -.0025085 + 132 7 1.038427 3.604883 + 132 8 .2566665 -3.379059 + 132 9 .732312 -1.152695 + 132 10 .3350747 .9386025 + 133 1 1.122148 1.134448 + 133 2 2.029797 2.722962 + 133 3 1.310429 .5122328 + 133 4 2.032864 3.624718 + 133 5 1.269219 .3060164 + 133 6 1.111681 3.18979 + 133 7 1.386283 1.256458 + 133 8 .9358281 .0616248 + 133 9 .8514835 1.056134 + 133 10 2.315762 2.355947 + 134 1 -1.371877 -1.179645 + 134 2 -.7040234 -1.103898 + 134 3 -.9803987 .8363541 + 134 4 -.9285728 -.7827415 + 134 5 .0662748 .0337842 + 134 6 .4045094 -.57982 + 134 7 -.5514838 -2.113352 + 134 8 .2958546 -1.124506 + 134 9 .8850405 2.800964 + 134 10 -.5244119 -.0116373 + 135 1 1.137474 5.961402 + 135 2 .4784831 2.94379 + 135 3 .2625026 .9176828 + 135 4 .3104182 2.860877 + 135 5 .5137424 .7042544 + 135 6 1.306909 1.435339 + 135 7 -.0313864 .5228027 + 135 8 -.186235 -1.271922 + 135 9 1.584509 3.459329 + 135 10 .3404723 1.439009 + 136 1 -.3176857 3.307505 + 136 2 -1.389532 -2.251975 + 136 3 -.4894886 1.971502 + 136 4 -.6021305 -.155708 + 136 5 .9800115 2.344574 + 136 6 -.1674932 2.814846 + 136 7 .1358826 3.535276 + 136 8 -.4418559 .4957766 + 136 9 .5035751 3.340428 + 136 10 .08826 1.968644 + 137 1 .906303 .7483035 + 137 2 1.829715 2.394549 + 137 3 1.51302 1.847137 + 137 4 .6979597 -1.117381 + 137 5 2.68907 2.52242 + 137 6 .683557 -.5037488 + 137 7 2.051676 1.404773 + 137 8 2.000847 1.751018 + 137 9 2.357832 .8735614 + 137 10 .5347344 -1.817397 + 138 1 -.2812151 .4206019 + 138 2 -1.642295 -2.360229 + 138 3 -1.454205 -1.527778 + 138 4 -2.180756 -.5560856 + 138 5 -.9034208 -1.375717 + 138 6 -.8739077 .021745 + 138 7 -1.219949 .7918775 + 138 8 -1.860803 .6987982 + 138 9 -.1424217 .9080375 + 138 10 -.4411889 2.296062 + 139 1 .2368722 -.7969258 + 139 2 .7704114 .7053307 + 139 3 .8776377 3.900215 + 139 4 .2862734 -1.59924 + 139 5 1.031795 1.900746 + 139 6 1.151224 .534938 + 139 7 -.6417074 -.6551379 + 139 8 .9852904 2.471547 + 139 9 1.169294 1.234408 + 139 10 .032294 1.991022 + 140 1 .6665971 -2.094111 + 140 2 -.2493329 .2993383 + 140 3 -1.130127 -2.9526 + 140 4 .4320592 -.0345785 + 140 5 -.7153089 -2.068078 + 140 6 .3478394 .0754025 + 140 7 -.4798547 -1.600744 + 140 8 -.0301924 -.9981151 + 140 9 1.057889 -.3962929 + 140 10 .3649959 -1.809456 + 141 1 .6948985 .0793539 + 141 2 1.062332 .45043 + 141 3 .4595664 -.5577831 + 141 4 .0985885 -1.271958 + 141 5 .0999379 -.042119 + 141 6 .1427608 -1.793847 + 141 7 -.6946738 -3.248423 + 141 8 1.637022 .2051989 + 141 9 .3412363 -4.153411 + 141 10 .8315647 -.3269548 + 142 1 -1.352595 1.700809 + 142 2 .9540107 3.203953 + 142 3 -.1943454 -2.001988 + 142 4 -.3280677 1.080932 + 142 5 -.2086546 .6752999 + 142 6 -.6101229 -1.751971 + 142 7 -.2566233 .2131354 + 142 8 -.5246541 .8350056 + 142 9 .1646399 3.462605 + 142 10 -1.034909 .2646542 + 143 1 .0448691 2.41865 + 143 2 -.4356121 1.32812 + 143 3 -.0825828 .8118514 + 143 4 -.630595 2.053387 + 143 5 .649057 3.950355 + 143 6 .096456 2.184955 + 143 7 -.4990795 2.296469 + 143 8 -.3597159 1.500352 + 143 9 -.7083262 .3796474 + 143 10 .8274471 4.496874 + 144 1 -.5294296 1.311344 + 144 2 -.5713952 1.858385 + 144 3 -.3006437 -1.726695 + 144 4 -1.384088 -.1837583 + 144 5 -.5069499 -2.010858 + 144 6 -1.004325 -1.045414 + 144 7 -.3126183 -3.429463 + 144 8 -.5474278 -1.329987 + 144 9 -.7577525 -4.937083 + 144 10 .2396353 1.777937 + 145 1 1.541924 -.1254331 + 145 2 1.512024 -2.073712 + 145 3 .3673947 -2.13974 + 145 4 1.114393 -2.830455 + 145 5 1.060051 -3.271914 + 145 6 1.90557 -1.784583 + 145 7 1.757367 .2454436 + 145 8 .7203176 -1.009822 + 145 9 1.711954 -.7102479 + 145 10 -.1281954 1.165511 + 146 1 -1.215603 -1.587076 + 146 2 -.4438338 .9181454 + 146 3 -2.283071 -3.738272 + 146 4 -.7138093 -1.972057 + 146 5 -1.202025 -.9141591 + 146 6 -.8173367 -.883429 + 146 7 -3.157542 -4.270138 + 146 8 -1.497 -2.764462 + 146 9 -1.992007 -2.039938 + 146 10 -2.528262 -3.457254 + 147 1 .5213266 .1857789 + 147 2 .4904672 2.447836 + 147 3 1.393715 2.433999 + 147 4 .3898938 1.493939 + 147 5 1.621289 -.894845 + 147 6 -.3683619 -4.491122 + 147 7 .3010333 .6107273 + 147 8 .615381 2.375362 + 147 9 .0909443 -.1493371 + 147 10 .0181424 -.6748795 + 148 1 2.71172 -.3160677 + 148 2 -.5428204 -.8188478 + 148 3 1.742009 .826719 + 148 4 -.3614109 .7353384 + 148 5 .9825044 1.787014 + 148 6 .7107928 3.372693 + 148 7 1.158519 -.1193373 + 148 8 2.228199 1.12973 + 148 9 1.365829 4.386292 + 148 10 1.24592 1.849743 + 149 1 .207574 1.886866 + 149 2 -.8468529 -2.753048 + 149 3 .2717996 1.497869 + 149 4 .3642048 1.418869 + 149 5 .1037671 -.7140926 + 149 6 .1752419 2.269934 + 149 7 .6261655 1.209206 + 149 8 .5711751 1.003731 + 149 9 -.6657945 -.456066 + 149 10 .3443209 2.454392 + 150 1 .2628663 1.323564 + 150 2 .6836686 -1.891596 + 150 3 1.619647 -1.81405 + 150 4 .8878975 -1.088468 + 150 5 -.0628102 -1.712478 + 150 6 1.923237 -2.548779 + 150 7 1.451509 2.931875 + 150 8 .1321426 -.3560954 + 150 9 .4843097 -3.881274 + 150 10 .754445 -3.077117 + 151 1 -2.517717 -4.641908 + 151 2 -.8917969 .0885197 + 151 3 -.5842545 2.205779 + 151 4 .8742589 3.861263 + 151 5 -.4193482 -2.215555 + 151 6 -.0577132 -.0754342 + 151 7 .7398254 3.246052 + 151 8 -1.143858 -1.191968 + 151 9 -1.146396 -1.016269 + 151 10 -1.288092 -1.071756 + 152 1 1.562281 2.749471 + 152 2 -.9508975 .9528586 + 152 3 .7187545 .0392965 + 152 4 .4721039 .7589168 + 152 5 -.0207431 1.84324 + 152 6 -.4801808 2.421382 + 152 7 2.097044 2.586039 + 152 8 1.109255 3.481569 + 152 9 .2616218 4.053693 + 152 10 .1788171 -1.294219 + 153 1 1.477348 3.929144 + 153 2 1.057103 .41298 + 153 3 -.2217751 -2.073408 + 153 4 -.267188 -.3797075 + 153 5 .7559541 2.532452 + 153 6 .1769513 1.02136 + 153 7 .1598735 1.685401 + 153 8 -.3026016 3.518153 + 153 9 1.820178 2.855754 + 153 10 .7838269 3.102 + 154 1 -.8993931 -.138353 + 154 2 -.6724625 -3.074205 + 154 3 -.8038765 -1.29403 + 154 4 .2693575 -.6093149 + 154 5 -.3154404 .2672532 + 154 6 -.8448217 -2.536916 + 154 7 .0219786 1.575316 + 154 8 -.3993881 -.1116466 + 154 9 .402795 .5490735 + 154 10 -.6840111 -1.837509 + 155 1 -1.082456 1.055131 + 155 2 .8114615 3.083379 + 155 3 .2702373 1.683426 + 155 4 -.5581403 .4628977 + 155 5 -.545866 2.844967 + 155 6 -1.666345 1.660014 + 155 7 .0318347 2.357635 + 155 8 -.8919484 2.853413 + 155 9 -.3911865 4.050969 + 155 10 -.856153 .7321634 + 156 1 .9273248 1.484378 + 156 2 1.052091 2.284382 + 156 3 1.090718 1.164228 + 156 4 .2807963 -.5431325 + 156 5 .396203 .9808029 + 156 6 .1767778 .1354672 + 156 7 1.063346 2.191927 + 156 8 .8674662 2.077389 + 156 9 .7487417 2.834185 + 156 10 .8119218 2.650764 + 157 1 -.2816002 .5675004 + 157 2 .4475866 -2.823788 + 157 3 -.4112304 -2.67265 + 157 4 -.0168083 -3.345162 + 157 5 .6453065 2.542101 + 157 6 -.0685401 -1.851216 + 157 7 -.6049193 -3.368436 + 157 8 -.5060703 -.5802656 + 157 9 .2292864 -.5126253 + 157 10 .8158804 2.626698 + 158 1 -.2299427 -2.208304 + 158 2 -1.465738 -2.873101 + 158 3 -.3851026 -1.714427 + 158 4 -1.844474 -1.992327 + 158 5 -1.350999 -3.181477 + 158 6 -.7661012 -1.666075 + 158 7 -.5182586 -.7006466 + 158 8 -.9606374 2.036036 + 158 9 -1.034296 .1654572 + 158 10 .1393013 -.8629993 + 159 1 -.5774902 -.7543121 + 159 2 .8418973 .5187241 + 159 3 1.517918 2.116457 + 159 4 .8281202 -1.74471 + 159 5 1.806037 1.28078 + 159 6 1.93653 -.396245 + 159 7 1.887751 -1.570058 + 159 8 1.095567 .810391 + 159 9 .6452029 -2.974287 + 159 10 .3336136 -2.130026 + 160 1 .0560004 -.1487989 + 160 2 -1.399459 -2.804983 + 160 3 -.3405381 1.282268 + 160 4 -.20107 1.814233 + 160 5 -.9442612 .5544719 + 160 6 -.6813218 3.145516 + 160 7 -.5853062 3.228242 + 160 8 -.530753 .0589817 + 160 9 -1.6505 2.271235 + 160 10 -.6733608 2.073979 + 161 1 -.218534 -.1218188 + 161 2 1.326365 -4.727849 + 161 3 -.3574726 -2.17107 + 161 4 .806392 -2.256358 + 161 5 .6057959 -.6157665 + 161 6 -.1914674 -.8217739 + 161 7 1.123208 -1.278828 + 161 8 .0383666 .209165 + 161 9 .1510715 1.572502 + 161 10 .6724604 .0346016 + 162 1 -1.170384 -3.043354 + 162 2 -.5699519 -1.509624 + 162 3 -1.610872 -.9715545 + 162 4 -.6910549 -2.046927 + 162 5 -1.883333 -1.94091 + 162 6 -2.304578 -.2563767 + 162 7 -.8585031 -2.268134 + 162 8 -.5821385 1.3434 + 162 9 -2.171582 -3.424878 + 162 10 .454142 1.304486 + 163 1 .0682683 .073052 + 163 2 1.214858 1.458254 + 163 3 1.357526 .3494359 + 163 4 1.979643 .9180176 + 163 5 .4225484 -.6500865 + 163 6 .3003607 -.4248528 + 163 7 -.339114 -.6688753 + 163 8 .6842546 -2.500318 + 163 9 -.2428847 -.5546069 + 163 10 1.191397 1.353616 + 164 1 .6984115 .8869818 + 164 2 -.3114632 .9693271 + 164 3 -.0676689 2.750735 + 164 4 .7536669 4.521238 + 164 5 .1868442 .9516076 + 164 6 -.1413355 2.492955 + 164 7 -.0511391 1.754971 + 164 8 1.406439 2.877561 + 164 9 -.7319694 .6230732 + 164 10 .8252794 1.335801 + 165 1 .0236589 -.9568677 + 165 2 -.6532319 -2.279805 + 165 3 .0748333 -1.890834 + 165 4 .9480297 -.1938213 + 165 5 .8366396 1.58709 + 165 6 1.534068 .4348792 + 165 7 .7708839 -.1618721 + 165 8 .4274171 -.4873622 + 165 9 .1870074 -2.155049 + 165 10 -.177515 -3.110621 + 166 1 -1.098859 -.5920581 + 166 2 -.9290608 -3.101122 + 166 3 .6131724 .1522057 + 166 4 -1.122446 -3.268791 + 166 5 .0560356 -.7794154 + 166 6 .2710847 .5500305 + 166 7 -.2026692 1.28108 + 166 8 -.8099154 -1.907041 + 166 9 -2.736868 -2.196124 + 166 10 -1.096448 -1.580692 + 167 1 -.0526631 .6041983 + 167 2 -1.100535 -.9912623 + 167 3 .4149659 2.40076 + 167 4 -.00472 -.7278086 + 167 5 .1049893 1.215227 + 167 6 -.7315287 .6685522 + 167 7 .045641 -2.670578 + 167 8 -1.559566 -3.385414 + 167 9 -.0435758 -.873367 + 167 10 -.0101412 -.2595538 + 168 1 .6619704 -.7978195 + 168 2 -1.050731 -2.828812 + 168 3 .8178414 1.922439 + 168 4 .1073398 -3.332251 + 168 5 .453701 -.3862498 + 168 6 -.7143505 .2527356 + 168 7 .7485694 -.1312749 + 168 8 -1.095729 2.762357 + 168 9 -.4723473 1.318529 + 168 10 -.0350396 1.18769 + 169 1 -.3648554 -2.039038 + 169 2 -.7180243 .3142204 + 169 3 -2.948345 -5.349726 + 169 4 -.5315265 .3370739 + 169 5 -2.353969 -2.752182 + 169 6 -2.540482 -4.304165 + 169 7 -1.168728 -3.280766 + 169 8 -.0774826 -1.82157 + 169 9 -1.571125 -1.27434 + 169 10 -1.239722 -1.242517 + 170 1 -2.142673 -5.261681 + 170 2 -1.329374 -3.544588 + 170 3 1.601171 1.540548 + 170 4 -.6785678 -1.09221 + 170 5 -1.47225 -3.393965 + 170 6 -.142407 .316651 + 170 7 -.2646598 2.637469 + 170 8 -.5096512 .9664109 + 170 9 -.2833731 -1.389762 + 170 10 -.7669728 .1936933 + 171 1 -.8192428 1.13311 + 171 2 .9898943 2.297665 + 171 3 -.0230184 .1006097 + 171 4 .2399236 1.095949 + 171 5 .3053612 .5748833 + 171 6 .963463 .8180534 + 171 7 -.4860988 .9527991 + 171 8 -.0692099 1.825514 + 171 9 -.8502733 .6388777 + 171 10 -1.283414 .3734815 + 172 1 -.8431298 -.9268867 + 172 2 .3529854 1.298038 + 172 3 -.0375654 1.294601 + 172 4 -.0359143 2.425815 + 172 5 -.1419308 3.632447 + 172 6 -.4898075 -.1270456 + 172 7 -1.571141 -2.091832 + 172 8 -.5063169 -.9404621 + 172 9 -.5323418 .6808207 + 172 10 -1.265365 -1.659448 + 173 1 -.3074681 -3.744056 + 173 2 .0128831 -1.369184 + 173 3 1.668606 -.0936919 + 173 4 .8933852 -.8467079 + 173 5 -.106788 -1.579046 + 173 6 .9782317 -1.1189 + 173 7 .0619686 -.5123405 + 173 8 .7482453 .7251906 + 173 9 -.5718384 -3.033018 + 173 10 1.208004 -1.774972 + 174 1 1.183647 3.633567 + 174 2 .6571789 4.917963 + 174 3 .4104261 .1076078 + 174 4 .8509687 1.172129 + 174 5 -.8918184 -.8303726 + 174 6 .1956672 1.496083 + 174 7 1.578395 2.710816 + 174 8 .4049356 4.484574 + 174 9 .8937336 4.950325 + 174 10 .4529676 1.405937 + 175 1 -1.65352 .0838972 + 175 2 -.2309531 5.697551 + 175 3 -.4318032 1.911139 + 175 4 -1.510749 -.7804399 + 175 5 -1.452483 .8695905 + 175 6 -1.381688 2.011106 + 175 7 -.564146 1.581408 + 175 8 -.8667379 3.02288 + 175 9 -1.358863 2.856873 + 175 10 -1.24699 3.225023 + 176 1 -.7295141 -.5809878 + 176 2 -2.073046 -3.792236 + 176 3 -.981509 -2.365548 + 176 4 -.7187941 -3.629414 + 176 5 -2.802562 -3.765871 + 176 6 -2.055736 -3.568851 + 176 7 -1.469411 -2.648622 + 176 8 -1.010402 -2.448078 + 176 9 -1.449149 -3.446722 + 176 10 -2.346939 -5.786505 + 177 1 -.3697796 -.6789604 + 177 2 1.658121 -2.204923 + 177 3 1.230698 -.4189701 + 177 4 .0864893 1.322332 + 177 5 -.060457 -2.350932 + 177 6 .2571428 -3.105993 + 177 7 .7984378 1.419838 + 177 8 -.3508098 -3.753417 + 177 9 .7591479 -2.407995 + 177 10 1.226709 -.5637372 + 178 1 -1.368852 1.340317 + 178 2 -.6685671 .6986182 + 178 3 -.8064997 .1810547 + 178 4 -1.388262 -.1908172 + 178 5 -1.228139 -.9698696 + 178 6 -2.199634 -2.745624 + 178 7 -1.687684 -3.254971 + 178 8 -1.797085 .9033581 + 178 9 -1.359861 1.150749 + 178 10 -.7983872 2.317923 + 179 1 1.094101 2.901727 + 179 2 1.515052 -.5104455 + 179 3 .2674952 .7494395 + 179 4 1.027182 1.570767 + 179 5 -.25699 -.889062 + 179 6 .5751835 3.536514 + 179 7 1.524367 2.614656 + 179 8 -.3513322 -2.906071 + 179 9 1.656786 2.172945 + 179 10 .4702808 -1.204862 + 180 1 2.041242 1.66587 + 180 2 1.818126 2.058042 + 180 3 1.733074 3.325069 + 180 4 .8396602 -1.171018 + 180 5 .9472879 3.138461 + 180 6 1.272281 1.856169 + 180 7 1.235971 1.544322 + 180 8 .7575622 3.129912 + 180 9 1.116356 .8618689 + 180 10 .8841577 1.861653 + 181 1 .1386561 -4.148429 + 181 2 -1.186929 -3.865263 + 181 3 -1.55532 -5.218671 + 181 4 -1.464089 -3.000787 + 181 5 -1.996886 -5.138233 + 181 6 -.516063 -2.819559 + 181 7 -.7101689 -6.558918 + 181 8 -1.478828 -5.465365 + 181 9 -.7180475 -3.681235 + 181 10 .2140186 -2.606836 + 182 1 -.2790625 2.057077 + 182 2 -.3927402 .0625171 + 182 3 -.8911508 2.052067 + 182 4 -.9866819 -.9560664 + 182 5 -1.662471 .299643 + 182 6 -.6471785 -.4327168 + 182 7 -2.078366 .0206296 + 182 8 -1.421348 .3885998 + 182 9 -2.044713 -2.029938 + 182 10 -1.259837 -1.107218 + 183 1 .3027718 1.759707 + 183 2 -.3815809 2.863256 + 183 3 -1.022873 3.508856 + 183 4 -.9037364 .8475043 + 183 5 -.1228331 .2998169 + 183 6 .288749 2.339627 + 183 7 -1.309011 1.714386 + 183 8 -1.027871 -.2569484 + 183 9 -.8841406 2.50456 + 183 10 -1.15667 1.920699 + 184 1 -1.286843 -4.772414 + 184 2 -.1695421 -.5259076 + 184 3 -.6703273 -4.031744 + 184 4 -.3343556 -.8105775 + 184 5 -.3262946 -1.871442 + 184 6 -1.036542 -1.273887 + 184 7 -2.331001 -2.36356 + 184 8 -.2657892 -2.086825 + 184 9 -1.450755 -3.954972 + 184 10 -1.459442 -3.882952 + 185 1 .2876309 -1.468898 + 185 2 .8273166 .729457 + 185 3 .761857 .1457367 + 185 4 .4231769 1.902594 + 185 5 -.8880459 .8271645 + 185 6 -.6206563 -1.953304 + 185 7 -.550608 2.574509 + 185 8 -.6142449 1.10793 + 185 9 .8701097 -2.436863 + 185 10 .3838095 .2974561 + 186 1 -.10691 -2.063178 + 186 2 1.672973 1.787359 + 186 3 -.9649013 -.0390061 + 186 4 .8487311 1.591314 + 186 5 .2074853 -.5610718 + 186 6 1.55586 2.597752 + 186 7 .8356314 .7631337 + 186 8 1.416516 3.575981 + 186 9 1.20095 -1.368798 + 186 10 .1686722 .0692553 + 187 1 1.36779 1.669715 + 187 2 2.404252 1.25666 + 187 3 1.042808 1.699085 + 187 4 1.327344 4.357837 + 187 5 .7424465 2.182179 + 187 6 .4293301 3.210378 + 187 7 .3484732 1.275487 + 187 8 1.050426 3.226163 + 187 9 .7814149 .2671545 + 187 10 1.997925 2.075275 + 188 1 .0612062 -.2217263 + 188 2 -.583554 1.914097 + 188 3 -.3951586 -1.674586 + 188 4 -.6148574 -1.304543 + 188 5 .3040142 -1.728247 + 188 6 -1.52957 .5878383 + 188 7 -1.537565 -3.790133 + 188 8 .671102 -1.718776 + 188 9 -.2064778 -.8064378 + 188 10 -.5119709 -2.458233 + 189 1 .5784101 -1.408868 + 189 2 .7647842 -1.240584 + 189 3 -.0913445 -.754285 + 189 4 .2193833 -2.803572 + 189 5 1.25874 -.3929558 + 189 6 -.174836 -.1817976 + 189 7 .0507956 -2.212095 + 189 8 1.575013 2.304653 + 189 9 -.0095097 -1.811476 + 189 10 1.326639 .2687823 + 190 1 -.7176436 -5.431726 + 190 2 -.4177297 -3.3828 + 190 3 -.0918092 -.8447255 + 190 4 .5558158 -1.402351 + 190 5 .7448398 1.004804 + 190 6 -.0382538 .7030895 + 190 7 1.305051 -2.543672 + 190 8 .7613887 .7890249 + 190 9 .0694763 -1.54734 + 190 10 .4564758 -.6706207 + 191 1 -.0055784 .0404293 + 191 2 -1.756267 -2.370427 + 191 3 -1.478872 -.7058254 + 191 4 -1.535994 -.0743753 + 191 5 -2.755957 -1.916599 + 191 6 -1.04365 -1.802165 + 191 7 -1.622453 -1.605473 + 191 8 -.4134297 -.852227 + 191 9 .056267 -1.791846 + 191 10 .1459906 -1.109663 + 192 1 .0032432 -1.867342 + 192 2 -.0151666 .5074528 + 192 3 .8724207 -1.805142 + 192 4 -.2626871 .5697799 + 192 5 .2767297 -.1327526 + 192 6 1.100403 .6743398 + 192 7 1.163487 -1.40558 + 192 8 1.046137 -1.071273 + 192 9 .9875138 -.5554947 + 192 10 .2053632 -1.321015 + 193 1 -1.044531 -2.058052 + 193 2 -.2429246 -1.240499 + 193 3 -1.010574 -1.428591 + 193 4 -1.376134 -.9814488 + 193 5 -1.35945 -1.137418 + 193 6 -.7388539 -.1165088 + 193 7 -1.00588 -2.560542 + 193 8 -.93126 -.3635462 + 193 9 -1.672588 -3.920544 + 193 10 -.7883782 .5749516 + 194 1 -.0390103 -2.169574 + 194 2 -.3091158 .3503246 + 194 3 -.6255381 -2.170662 + 194 4 -1.941136 -2.747964 + 194 5 .0576752 2.55669 + 194 6 1.063581 -.4598726 + 194 7 .3590502 1.891446 + 194 8 -1.478308 -1.741462 + 194 9 -.9439784 -2.085554 + 194 10 -.3036149 -2.53867 + 195 1 -1.001537 -1.44371 + 195 2 -.0441078 .3171684 + 195 3 -.3091689 .5224478 + 195 4 .1642665 3.342635 + 195 5 -.8819084 -.7864232 + 195 6 1.323652 1.063313 + 195 7 -.6374608 1.250782 + 195 8 .3815121 1.333839 + 195 9 .2838958 -1.586505 + 195 10 .2159456 -1.196706 + 196 1 -.8203834 2.286663 + 196 2 -1.346538 1.827768 + 196 3 -.0821335 1.284756 + 196 4 .3236315 -1.249282 + 196 5 -.5455182 .7758048 + 196 6 .5071004 -.6679618 + 196 7 -.0010483 .9390697 + 196 8 -.3543162 .4829406 + 196 9 .1510304 .6003446 + 196 10 .5451254 2.931818 + 197 1 -.3781313 .397656 + 197 2 .9001364 3.407543 + 197 3 1.11848 1.184757 + 197 4 .5995359 2.517887 + 197 5 1.403811 2.62401 + 197 6 .4402975 1.773258 + 197 7 1.789099 3.222227 + 197 8 1.309173 2.779097 + 197 9 1.206456 .2925524 + 197 10 2.36869 6.428272 + 198 1 .0400497 1.471897 + 198 2 -.4505612 2.959075 + 198 3 -.3389474 -.0568686 + 198 4 .5077369 -.3890538 + 198 5 1.640716 3.188256 + 198 6 -.4192427 -.8429539 + 198 7 -.0856177 -.9218082 + 198 8 1.049565 3.662166 + 198 9 .6712843 -.7652535 + 198 10 1.015924 2.130288 + 199 1 1.335665 1.375303 + 199 2 .3707056 1.229685 + 199 3 1.502883 3.053051 + 199 4 1.09996 1.659595 + 199 5 1.722772 2.550652 + 199 6 .7027981 -1.601562 + 199 7 1.236368 .3792193 + 199 8 .7596202 1.003462 + 199 9 .8186638 -1.006504 + 199 10 .8747464 .7492996 + 200 1 .2496182 -.6427897 + 200 2 -.5204648 -4.013382 + 200 3 1.058033 2.593933 + 200 4 .2543158 -2.984094 + 200 5 .3098024 .5154909 + 200 6 .88994 -.3510085 + 200 7 -.6196515 -2.219406 + 200 8 -.481198 -4.201015 + 200 9 .008196 -.6397054 + 200 10 .3850856 -1.49666 + 201 1 .3099373 .3741831 + 201 2 -1.036105 -1.157182 + 201 3 -1.483137 -2.992256 + 201 4 -.4611127 -.1922358 + 201 5 .3995545 -1.181416 + 201 6 -1.132733 1.72567 + 201 7 .7729884 2.696115 + 201 8 .1028151 3.149239 + 201 9 .5339602 1.950588 + 201 10 .6820886 .7440397 + 202 1 -.2146198 2.857153 + 202 2 -.32135 .7411867 + 202 3 .732195 1.985388 + 202 4 -.6136075 -.0703884 + 202 5 .3990219 -.5865121 + 202 6 -.4442025 -1.754021 + 202 7 -.3821937 2.526712 + 202 8 -.2255107 1.063442 + 202 9 1.470879 1.459439 + 202 10 -.0656427 .8098302 + 203 1 1.046151 5.808048 + 203 2 .4258604 4.532372 + 203 3 -.2120585 1.688599 + 203 4 .5791008 2.586599 + 203 5 1.855478 5.070837 + 203 6 -.3470984 1.554683 + 203 7 1.124477 5.568844 + 203 8 .4761629 2.526216 + 203 9 -.4130365 .5501781 + 203 10 -.5430018 2.957802 + 204 1 -.6424686 -3.079251 + 204 2 -1.023347 -1.21871 + 204 3 -1.146224 1.582628 + 204 4 -1.35649 -1.266184 + 204 5 -1.673099 -4.739756 + 204 6 -.6709613 -2.562531 + 204 7 .7989284 -1.13616 + 204 8 -.4266404 -.2057255 + 204 9 -1.570767 -1.765625 + 204 10 -1.746535 -.0629807 + 205 1 -.3690447 -1.437742 + 205 2 -1.460822 1.801379 + 205 3 -1.266762 -.2483381 + 205 4 -.7891883 1.205004 + 205 5 -2.093906 -.1600716 + 205 6 -.8961874 -2.263684 + 205 7 -2.332494 -2.124993 + 205 8 -.3617198 -2.051425 + 205 9 -1.058901 -.9806469 + 205 10 -.7648399 -.7630386 + 206 1 .589663 -1.754721 + 206 2 .9986748 -1.297907 + 206 3 .6378127 .1815986 + 206 4 1.248174 -.7912217 + 206 5 1.9877 .2900411 + 206 6 .9381645 -2.304149 + 206 7 1.225571 -3.284773 + 206 8 1.242543 -2.005627 + 206 9 .1330562 -.3519955 + 206 10 1.543778 -1.934863 + 207 1 .0584711 .0916879 + 207 2 .3467418 .2420788 + 207 3 .2211787 -.1294392 + 207 4 -.137219 1.308466 + 207 5 -.8779281 3.251486 + 207 6 1.506027 .295622 + 207 7 -.0785543 -1.943282 + 207 8 .7102866 1.827549 + 207 9 -.2366241 -1.687964 + 207 10 -.7862691 -.7598147 + 208 1 .9536135 -.2365135 + 208 2 -.5778862 .2278703 + 208 3 -.6760517 1.08672 + 208 4 -.5979557 -1.902714 + 208 5 -.360365 -3.387309 + 208 6 -.1971353 -1.766531 + 208 7 -.6506908 -1.911484 + 208 8 -.0744228 -3.515426 + 208 9 .7865167 -1.038733 + 208 10 .7181262 .8270651 + 209 1 .026861 .4301842 + 209 2 .4520307 -.8377256 + 209 3 .5395158 .0731654 + 209 4 .3188552 -2.764389 + 209 5 .5988429 -1.267686 + 209 6 -1.261472 -1.787062 + 209 7 -.8700297 -.1150556 + 209 8 .0528209 -1.625305 + 209 9 -.7411549 .3065581 + 209 10 .2551177 .4168022 + 210 1 -.397064 1.206704 + 210 2 .3823742 1.436503 + 210 3 .4232594 2.508531 + 210 4 .8359489 2.073889 + 210 5 -.0938416 3.236282 + 210 6 -.6273575 1.587862 + 210 7 -.6200729 2.351383 + 210 8 .8541753 5.381388 + 210 9 -.1695279 .3288944 + 210 10 .1575173 2.699981 + 211 1 -.6115948 -.6593454 + 211 2 -1.269506 -.5478505 + 211 3 -1.775899 .3491354 + 211 4 -1.987448 -.7273456 + 211 5 .4647724 .7426664 + 211 6 -.7316316 1.907359 + 211 7 .2238102 -.889735 + 211 8 -.7701637 .7481177 + 211 9 -.7595081 2.616494 + 211 10 -.0325096 2.030333 + 212 1 .1074353 -2.715808 + 212 2 -1.252298 -2.327907 + 212 3 -.1214904 -2.503762 + 212 4 -.2859883 .6002074 + 212 5 -2.082076 -1.973044 + 212 6 -1.288194 -2.457169 + 212 7 -1.11734 -2.628028 + 212 8 -1.48377 -.5055826 + 212 9 -.7496727 -.8523708 + 212 10 -.4095735 -1.028753 + 213 1 .1157584 1.585741 + 213 2 -1.210966 -1.51502 + 213 3 -.5273772 3.486576 + 213 4 .2860503 -.1705396 + 213 5 -.9399279 2.548553 + 213 6 .1440045 3.439235 + 213 7 -.1585683 .5509651 + 213 8 1.064464 3.606317 + 213 9 1.024311 2.368155 + 213 10 .0757167 3.073461 + 214 1 .0393643 1.782546 + 214 2 -.1399209 -.345655 + 214 3 .5318901 3.060665 + 214 4 .2483835 2.366034 + 214 5 -.1048664 .5627356 + 214 6 .5062177 2.725866 + 214 7 .8353537 3.534654 + 214 8 .7435631 1.709099 + 214 9 -.7843632 -.1813493 + 214 10 .0163605 .8226073 + 215 1 -.3170136 2.38967 + 215 2 -1.163158 -1.027452 + 215 3 -.2016526 1.281934 + 215 4 .4909714 1.617236 + 215 5 .055177 -.1614739 + 215 6 1.567225 1.763654 + 215 7 1.170562 4.101787 + 215 8 .2476525 1.611567 + 215 9 .3556964 1.783192 + 215 10 .3198597 .4008409 + 216 1 -2.074243 -4.214386 + 216 2 -.8852009 -2.345138 + 216 3 -.4873275 -2.671689 + 216 4 .0963273 -.9806806 + 216 5 .1684674 .1848676 + 216 6 .2145195 -1.712924 + 216 7 -.6465462 -1.712248 + 216 8 -.6484512 -.5808405 + 216 9 -.8860222 -2.57017 + 216 10 .4250713 .9380507 + 217 1 -.1319532 -1.571933 + 217 2 -.6577279 -6.107401 + 217 3 -.192555 -.9965724 + 217 4 -.4235805 -.9436349 + 217 5 .0526127 -.2904944 + 217 6 .8045008 -2.684737 + 217 7 .0118851 -.0956637 + 217 8 -.5699707 -1.991468 + 217 9 .1662653 -1.306746 + 217 10 -.1651694 -.3999853 + 218 1 -1.217432 -1.447173 + 218 2 -1.050732 -2.609342 + 218 3 -1.291843 -.3073467 + 218 4 -.9993242 -2.452848 + 218 5 -1.328904 -.3746817 + 218 6 -.4186512 -1.893099 + 218 7 -.6546846 -1.902259 + 218 8 -.8473139 -4.108675 + 218 9 -1.27959 -2.505211 + 218 10 -1.097345 -3.561725 + 219 1 -.0096319 .0481462 + 219 2 .0874925 -.7166294 + 219 3 1.849615 .670902 + 219 4 -1.148196 -2.490605 + 219 5 -.1043687 .1359784 + 219 6 -.0589613 1.497483 + 219 7 1.731141 1.519123 + 219 8 -.6947308 -1.322912 + 219 9 .0389968 .7707486 + 219 10 1.704867 .2567713 + 220 1 .6485268 4.05531 + 220 2 -.1761502 1.216829 + 220 3 .2396707 1.822027 + 220 4 -1.524206 .0386034 + 220 5 .6651192 3.15463 + 220 6 .7191977 3.037493 + 220 7 -1.313106 .192916 + 220 8 -1.65724 .9152255 + 220 9 -.8092532 3.665651 + 220 10 .2012606 2.003225 + 221 1 -1.148003 -.1471343 + 221 2 .2904049 1.197849 + 221 3 .5464238 -.2591565 + 221 4 -.1814473 .0088937 + 221 5 .3241171 6.19451 + 221 6 .4215039 2.409876 + 221 7 .3248 2.900002 + 221 8 -.1258446 2.709362 + 221 9 -1.463248 -2.533578 + 221 10 -.7155107 -1.626988 + 222 1 .3355351 -2.117195 + 222 2 .1610266 -1.96146 + 222 3 -.6646451 -4.341068 + 222 4 .6121821 -.8355237 + 222 5 .6628336 1.685138 + 222 6 .322869 -.8037829 + 222 7 1.249763 1.510134 + 222 8 -.1471668 -.2892464 + 222 9 -.0021361 .4682435 + 222 10 .2214926 .5726926 + 223 1 .2539428 4.20888 + 223 2 -.0829283 1.571763 + 223 3 .3840784 1.46634 + 223 4 -.0696943 -.7417974 + 223 5 -.3747577 .2772295 + 223 6 .519278 1.166323 + 223 7 .5366142 2.119918 + 223 8 .8278123 -1.529441 + 223 9 1.724613 3.570709 + 223 10 .5860537 1.064656 + 224 1 .4141248 -.4412816 + 224 2 .6286317 2.911754 + 224 3 2.227542 3.725024 + 224 4 .5947936 .8370303 + 224 5 .2956898 1.100753 + 224 6 .3915595 -.9757308 + 224 7 .5207757 1.380483 + 224 8 .2100701 .0441545 + 224 9 1.945644 3.086347 + 224 10 -.0966398 .0872928 + 225 1 -.6082711 -1.925688 + 225 2 -2.32304 -1.200773 + 225 3 -1.299209 -2.450588 + 225 4 -1.184233 -1.319112 + 225 5 .2552518 .570733 + 225 6 -1.954708 -2.484124 + 225 7 -2.571483 -.8138552 + 225 8 -.3353058 -1.630898 + 225 9 -1.038655 -.9340177 + 225 10 -.7986013 -2.112811 + 226 1 .3980761 .8982823 + 226 2 -.4028637 .2183092 + 226 3 .7498214 1.316528 + 226 4 1.599157 3.145131 + 226 5 .8329669 1.785259 + 226 6 2.245173 3.023138 + 226 7 -.2599773 .9678908 + 226 8 .0423107 .6382466 + 226 9 1.459096 2.278138 + 226 10 1.584945 2.695137 + 227 1 .3006005 1.167482 + 227 2 -.660771 -1.228508 + 227 3 -1.253586 .8681844 + 227 4 1.072072 2.132787 + 227 5 .7859382 .5949378 + 227 6 .7211208 .8633099 + 227 7 .5466481 1.252747 + 227 8 .5946671 -.9976035 + 227 9 .0552838 -1.303037 + 227 10 1.321262 1.136896 + 228 1 -.0943567 -.8963493 + 228 2 .4267636 2.809403 + 228 3 1.548451 -.4311783 + 228 4 -.2436621 -.4317625 + 228 5 1.004872 2.337266 + 228 6 .9841251 1.835262 + 228 7 -.3278924 -.3002668 + 228 8 -.1558791 -2.316723 + 228 9 .8547696 .9778864 + 228 10 1.393689 -1.177643 + 229 1 -.3435932 2.14732 + 229 2 .137458 1.311662 + 229 3 -1.512185 1.303465 + 229 4 -1.126664 .7086713 + 229 5 -.9924116 .1018778 + 229 6 -.825115 .80402 + 229 7 -.57839 -.7161622 + 229 8 -1.397125 .6382655 + 229 9 -.9247866 .4542267 + 229 10 -.3837516 1.085961 + 230 1 1.071429 3.157892 + 230 2 -.5046697 4.339156 + 230 3 .8139225 1.507174 + 230 4 1.123252 5.196305 + 230 5 -.134728 1.352186 + 230 6 -.9912385 -.1919708 + 230 7 -.2820606 -.7508036 + 230 8 .3931925 4.744782 + 230 9 .5157597 2.754598 + 230 10 -.2086518 1.110415 + 231 1 -1.179599 -5.995092 + 231 2 -2.337778 -7.120228 + 231 3 -.0761145 -1.334465 + 231 4 -2.207078 -4.077167 + 231 5 -2.195465 -2.364622 + 231 6 -.505509 -3.253703 + 231 7 -1.430807 -4.165145 + 231 8 -3.118687 -2.982322 + 231 9 -1.016035 -2.739817 + 231 10 -.6119618 -.2710494 + 232 1 .5951335 -2.801734 + 232 2 .1679499 -3.678296 + 232 3 .0230699 -4.036187 + 232 4 .4768201 -1.989194 + 232 5 -1.642619 -6.710372 + 232 6 .7316549 -4.655164 + 232 7 .4946294 -.327229 + 232 8 .2939402 -4.387096 + 232 9 .4560669 -.5380837 + 232 10 .335748 -4.924254 + 233 1 .6146625 2.848368 + 233 2 .1711353 -.0971595 + 233 3 -.2621667 .5415633 + 233 4 -.7124954 -.6388943 + 233 5 .4678753 4.601162 + 233 6 -.9015861 1.504757 + 233 7 -.4186472 -1.286894 + 233 8 .6639184 4.35321 + 233 9 -1.298046 -1.135525 + 233 10 .3700988 3.323381 + 234 1 1.373857 1.659813 + 234 2 1.114205 .675771 + 234 3 .1769534 1.205476 + 234 4 .8212657 2.164603 + 234 5 .1180503 2.102339 + 234 6 1.872216 1.467234 + 234 7 .6717694 1.34526 + 234 8 .0255024 -1.051546 + 234 9 -.4783837 .5452288 + 234 10 .825532 -.6517893 + 235 1 -1.405122 -1.267585 + 235 2 -1.199194 .8590366 + 235 3 -1.596591 1.009295 + 235 4 -.7070174 -1.10077 + 235 5 -.2166757 -.1032722 + 235 6 -1.54448 -.9348866 + 235 7 -.6194881 -1.099534 + 235 8 -3.087866 1.112303 + 235 9 -1.045653 -.3544905 + 235 10 -1.189094 2.118564 + 236 1 .6682934 4.687471 + 236 2 -1.068241 4.337969 + 236 3 -.6464585 3.554047 + 236 4 2.199108 7.63534 + 236 5 1.900464 7.176608 + 236 6 .1775008 4.818498 + 236 7 -.0679346 8.63729 + 236 8 .0031437 4.977495 + 236 9 -.6098273 4.682532 + 236 10 .041267 4.634816 + 237 1 3.015884 3.734187 + 237 2 1.099594 4.190113 + 237 3 1.349407 3.67803 + 237 4 .4075076 1.162557 + 237 5 1.182913 .2397097 + 237 6 1.841442 3.611123 + 237 7 .1584282 -.2374895 + 237 8 2.488701 3.317129 + 237 9 .7530761 .745113 + 237 10 2.024504 .9279177 + 238 1 -.0806234 -.6205269 + 238 2 1.016699 .459137 + 238 3 .4379601 .8047634 + 238 4 1.304907 2.739841 + 238 5 .2889075 .4312358 + 238 6 .2066177 2.400015 + 238 7 -.3196324 2.237907 + 238 8 1.652837 4.389544 + 238 9 1.04265 3.496934 + 238 10 .5519159 3.549008 + 239 1 -.1965126 .6665802 + 239 2 .2639443 -.9663051 + 239 3 .9796112 2.276449 + 239 4 -.8847243 -2.144583 + 239 5 -.1596828 -1.252726 + 239 6 -.3317973 .9569994 + 239 7 -.3718832 -.9249196 + 239 8 -.0336193 -1.073113 + 239 9 .3598642 -1.558405 + 239 10 -.9647111 -.2911451 + 240 1 -.2029296 -2.768175 + 240 2 .3810453 -.3925647 + 240 3 .2171977 .6512071 + 240 4 .4852371 -.1464403 + 240 5 -.0568182 -.8247639 + 240 6 .5192772 .5924842 + 240 7 .0979002 1.43681 + 240 8 1.059904 1.512299 + 240 9 -.5420668 -2.082501 + 240 10 .8737857 .3916641 + 241 1 .9925215 -.3782835 + 241 2 -.1784983 -2.864689 + 241 3 -.0206479 -2.976763 + 241 4 -.7199898 -2.594354 + 241 5 .3870982 .724631 + 241 6 -.454117 -3.375586 + 241 7 .4702056 -1.206252 + 241 8 -.4124804 -2.326562 + 241 9 .1877917 -1.680095 + 241 10 -.7756151 -1.191788 + 242 1 -.9332266 .0290744 + 242 2 .4738447 -2.364854 + 242 3 .8634816 -1.072413 + 242 4 .3119388 1.194328 + 242 5 .354138 -.2917208 + 242 6 1.179272 2.704923 + 242 7 .5045125 1.412567 + 242 8 .5890952 2.024863 + 242 9 -.7080652 -1.386342 + 242 10 -1.070799 -2.760986 + 243 1 .6486718 .0337706 + 243 2 1.241322 -.5355301 + 243 3 .9580994 .6424401 + 243 4 .5386211 .1633962 + 243 5 1.108166 -.9984469 + 243 6 .1009867 .0980954 + 243 7 1.615238 .9379937 + 243 8 .5553036 -2.006517 + 243 9 .1518945 .3498302 + 243 10 .5191274 -2.719153 + 244 1 .4255827 .3293101 + 244 2 .0129206 -1.807182 + 244 3 .9281789 .8793892 + 244 4 .0120462 -1.064213 + 244 5 1.734962 .268415 + 244 6 1.221375 1.232161 + 244 7 .3624727 -1.694466 + 244 8 -.8902692 -5.025065 + 244 9 .4049786 1.105032 + 244 10 .2248479 -1.697498 + 245 1 1.175567 3.98541 + 245 2 .6644362 1.002352 + 245 3 .2844231 2.446949 + 245 4 .6981318 2.189806 + 245 5 .4013539 1.748925 + 245 6 1.427538 3.42563 + 245 7 .0943638 3.713614 + 245 8 2.064175 3.192848 + 245 9 1.060871 1.097333 + 245 10 1.464671 2.731573 + 246 1 .6174493 -.6718361 + 246 2 .4077542 .750989 + 246 3 -.6581159 -1.506779 + 246 4 .9294955 -1.83817 + 246 5 .5283322 .4945601 + 246 6 .7212919 .4206315 + 246 7 .0378538 2.79194 + 246 8 1.134881 -2.386852 + 246 9 .0695256 2.208776 + 246 10 -.236601 -.840753 + 247 1 -.679658 .8168082 + 247 2 -.1898849 1.035921 + 247 3 .5698505 -.1023526 + 247 4 -.7217593 -.9417092 + 247 5 .4726942 -.4547373 + 247 6 -.330133 -1.890858 + 247 7 -.2641342 -1.073515 + 247 8 .9194682 -.4403566 + 247 9 -1.429415 -2.478914 + 247 10 .3068592 -.965704 + 248 1 -.1602734 -1.705552 + 248 2 -.8954244 -1.848137 + 248 3 -.8223076 -4.265204 + 248 4 -1.868718 -3.66406 + 248 5 -1.423068 -5.519494 + 248 6 -.7993475 -2.033741 + 248 7 .3977728 -1.707327 + 248 8 -.4901192 -3.405042 + 248 9 -1.092182 -4.01042 + 248 10 -1.537071 -4.268551 + 249 1 -.6820873 1.663573 + 249 2 -.6531279 -.7051771 + 249 3 .4159039 1.088005 + 249 4 .9476266 4.833041 + 249 5 .3534274 2.161716 + 249 6 -.6417844 .2803738 + 249 7 -.1055345 .310353 + 249 8 .9559166 .7669755 + 249 9 .2415738 1.86774 + 249 10 .7915351 2.719856 + 250 1 -.6255234 1.477494 + 250 2 .6078202 1.116484 + 250 3 .3518136 2.706651 + 250 4 .6208629 .9514104 + 250 5 -1.24214 .2287964 + 250 6 -.1425405 .8317059 + 250 7 -1.42149 -1.979494 + 250 8 .929285 .2047833 + 250 9 -.2591406 -.5173755 + 250 10 .2322595 .5367476 + 251 1 .5588566 -.0176471 + 251 2 -.0326221 -1.545378 + 251 3 -.1725239 -1.463794 + 251 4 .241517 -3.248243 + 251 5 -1.178791 -1.284071 + 251 6 -.5427169 -3.536395 + 251 7 .9548197 -2.335515 + 251 8 .1044202 -1.567503 + 251 9 -1.077449 -2.948381 + 251 10 -.024714 -.3409961 + 252 1 -.205943 -.2650023 + 252 2 -1.102183 -.6988783 + 252 3 -.6143269 -.2390969 + 252 4 -1.33634 -.9712477 + 252 5 -1.381014 -.0991764 + 252 6 .3275205 2.218798 + 252 7 .2724457 .1966149 + 252 8 -1.25783 -1.706668 + 252 9 -.2500912 1.847667 + 252 10 -.3557407 -1.865569 + 253 1 .6257565 -1.232998 + 253 2 -.5270381 -1.729766 + 253 3 1.304764 1.453481 + 253 4 -.1409938 .7742209 + 253 5 1.211696 4.051054 + 253 6 .2860036 -1.527792 + 253 7 1.302976 1.543092 + 253 8 .3767011 1.951575 + 253 9 -1.035709 -.2918589 + 253 10 .5249965 1.291487 + 254 1 1.355989 2.074506 + 254 2 .1944588 -.9336225 + 254 3 -.1214475 -.2484383 + 254 4 -.6620914 -.9311118 + 254 5 .1570102 -.7639118 + 254 6 .3632445 1.738548 + 254 7 .3033527 2.339588 + 254 8 .498846 -.1744284 + 254 9 1.772107 -.2755619 + 254 10 1.840007 5.813581 + 255 1 -.6956108 -.6167479 + 255 2 -.9018457 .868219 + 255 3 -.0774787 2.989222 + 255 4 -.1016639 -1.312787 + 255 5 -1.24166 -2.864279 + 255 6 -1.232354 -1.656081 + 255 7 -.4320211 -.303928 + 255 8 .2400876 2.034222 + 255 9 -.2738799 2.2421 + 255 10 .1473638 1.172281 + 256 1 -1.035309 -1.377625 + 256 2 -2.465892 -5.337194 + 256 3 -1.05896 -1.284925 + 256 4 -1.744016 -2.794505 + 256 5 -.1096963 .4022831 + 256 6 -1.712544 -2.597528 + 256 7 -1.039896 -3.082436 + 256 8 -1.412659 -3.309213 + 256 9 -1.880947 -3.979668 + 256 10 -1.019374 .6656162 + 257 1 .09337 3.50955 + 257 2 .1103318 1.872877 + 257 3 -1.431271 2.646127 + 257 4 -.923067 3.179349 + 257 5 .0473523 1.881992 + 257 6 -1.558912 -1.362364 + 257 7 -.328671 3.949821 + 257 8 -.0131149 4.640366 + 257 9 -.9936112 1.080561 + 257 10 -1.211454 1.944428 + 258 1 -.6337694 .6714936 + 258 2 -.1503031 -.1501856 + 258 3 -.1589092 -1.018322 + 258 4 .6069336 -1.928636 + 258 5 .1224315 -1.914423 + 258 6 -1.469305 -1.26824 + 258 7 .7765642 -.2217568 + 258 8 -.5273626 .3871776 + 258 9 -.2998069 -.8126664 + 258 10 .0579095 -1.729784 + 259 1 .3647669 -2.129443 + 259 2 .4266549 -.7659959 + 259 3 1.714425 -.0913557 + 259 4 .73882 -1.324728 + 259 5 -.5222238 -.4852236 + 259 6 -.0854941 -.2636802 + 259 7 -.646125 -3.869163 + 259 8 1.310737 -.0319204 + 259 9 -.5482571 .8824027 + 259 10 -.4905764 -1.242731 + 260 1 .1644088 3.100904 + 260 2 .0316094 .0530294 + 260 3 .4013842 -.1065089 + 260 4 .5338898 3.842869 + 260 5 .5401665 2.964833 + 260 6 .7930433 3.818338 + 260 7 1.212144 2.668796 + 260 8 .9383436 5.177269 + 260 9 .1155802 3.779479 + 260 10 .9105824 5.2956 + 261 1 1.772599 5.393563 + 261 2 .3691106 1.847859 + 261 3 2.05704 2.969325 + 261 4 1.146043 5.31847 + 261 5 -.0922514 .5344753 + 261 6 .0793354 2.526461 + 261 7 1.045706 2.70496 + 261 8 1.347399 1.860383 + 261 9 .3940315 2.74999 + 261 10 1.601967 .1851162 + 262 1 .3510965 4.116924 + 262 2 -1.244576 -1.529299 + 262 3 -.2887838 -.8027782 + 262 4 .943773 .7768357 + 262 5 .4959598 -.8612224 + 262 6 -.6938952 .534788 + 262 7 1.066712 1.252113 + 262 8 .3194331 -2.469036 + 262 9 .0166562 .0969901 + 262 10 .7178756 2.301741 + 263 1 .9316694 -1.308913 + 263 2 .0992978 -.8673558 + 263 3 .5015071 -.6797466 + 263 4 -.1116772 -1.43778 + 263 5 1.752064 .7292169 + 263 6 -.2680943 -.9647876 + 263 7 1.29396 2.94945 + 263 8 .3953666 -1.270376 + 263 9 .7711735 .9110264 + 263 10 .173939 -1.445127 + 264 1 .6637033 1.587145 + 264 2 .5748037 2.225869 + 264 3 .5499929 .1140359 + 264 4 .7188996 -1.503427 + 264 5 -.0070246 -.1531791 + 264 6 .3123268 .0573037 + 264 7 -.9234247 -1.208042 + 264 8 -.2523746 3.369372 + 264 9 .040527 .301045 + 264 10 .3952304 1.157413 + 265 1 .0918374 -1.267905 + 265 2 1.853918 2.207949 + 265 3 .5850404 .0318398 + 265 4 .9215478 .9369535 + 265 5 .575112 1.340409 + 265 6 -.2088707 .0962994 + 265 7 -.1734518 -1.029963 + 265 8 .930531 1.897125 + 265 9 1.515866 -.0828013 + 265 10 .3134698 -2.003094 + 266 1 .7471818 -1.280663 + 266 2 .0694748 .0497835 + 266 3 1.017348 2.181315 + 266 4 .3876083 3.506531 + 266 5 -1.185464 1.968666 + 266 6 -.382493 2.068704 + 266 7 -.724726 .6328075 + 266 8 .0889789 1.754957 + 266 9 1.025515 .1428981 + 266 10 -.1029762 3.185127 + 267 1 .8750756 .7864909 + 267 2 -.747746 -.4863289 + 267 3 -.4167241 2.003703 + 267 4 .9271164 -.3732269 + 267 5 -.7536917 -1.839801 + 267 6 -.5112864 -.0732499 + 267 7 .4693545 .5008613 + 267 8 -.0501356 -2.839725 + 267 9 .5575157 -1.485621 + 267 10 1.232309 -.6928712 + 268 1 -.4286477 -.6740281 + 268 2 -2.046979 -.0591465 + 268 3 -.3577667 -.9367003 + 268 4 -1.77235 1.220945 + 268 5 -1.191666 .5952983 + 268 6 -1.061073 -1.885458 + 268 7 -.6214969 -1.171813 + 268 8 -1.544963 -1.31572 + 268 9 -2.393114 1.748346 + 268 10 -1.074169 -3.667469 + 269 1 -.4422706 -.7386926 + 269 2 -2.041154 -3.330781 + 269 3 -1.679752 -2.288584 + 269 4 -2.35014 -3.540108 + 269 5 -1.17732 -.7216267 + 269 6 -.7079435 -.8395771 + 269 7 -2.354443 -3.876697 + 269 8 -1.124455 -3.501561 + 269 9 .0832402 -2.023006 + 269 10 -1.687099 -1.77071 + 270 1 .5066496 3.175278 + 270 2 1.149323 1.710393 + 270 3 .8450081 2.19156 + 270 4 1.366767 3.111118 + 270 5 .7997035 4.434868 + 270 6 1.035339 2.335899 + 270 7 1.394193 5.611959 + 270 8 .8982787 1.791932 + 270 9 -.3182986 .7452462 + 270 10 .2148138 5.409936 + 271 1 .5683352 -.9200357 + 271 2 -1.143476 -1.82617 + 271 3 -1.528896 1.819053 + 271 4 -2.298108 -3.338978 + 271 5 -.486378 -.0763246 + 271 6 .4231069 .7580193 + 271 7 -.0382085 1.79726 + 271 8 .0599152 .4161851 + 271 9 .0955369 .6313087 + 271 10 -1.420672 -1.249066 + 272 1 .360182 6.428327 + 272 2 .5336096 7.746113 + 272 3 1.10967 4.217622 + 272 4 1.318853 5.540405 + 272 5 .1928189 7.634931 + 272 6 1.868157 7.414566 + 272 7 1.719002 7.102513 + 272 8 1.311856 6.106687 + 272 9 .7141919 4.593322 + 272 10 .6558189 7.213266 + 273 1 .4261202 1.325096 + 273 2 .1574592 1.221033 + 273 3 1.382538 1.213273 + 273 4 1.601376 2.38476 + 273 5 .1514847 1.946386 + 273 6 .3858716 .5109634 + 273 7 .1573007 .9692866 + 273 8 .1714366 .3739781 + 273 9 .740108 2.694966 + 273 10 -.7126279 .8698809 + 274 1 -1.275201 3.146218 + 274 2 -.3337395 3.421805 + 274 3 -.6807697 -.791932 + 274 4 .094655 1.161929 + 274 5 -1.614691 -.2595239 + 274 6 -.0056486 3.369143 + 274 7 -1.402255 1.058793 + 274 8 -.9496348 .0098827 + 274 9 -.1901916 2.161934 + 274 10 -.526421 2.938261 + 275 1 1.404401 1.922012 + 275 2 -.8479825 -.5974793 + 275 3 .5551311 -.0634707 + 275 4 .120732 1.149148 + 275 5 -.5315143 -2.692029 + 275 6 .8335769 -.56916 + 275 7 -.4223254 -1.047111 + 275 8 -.1645954 -1.054557 + 275 9 .8397245 1.034874 + 275 10 -1.358795 -.5213187 + 276 1 -.0437045 1.929105 + 276 2 .2208279 -1.065072 + 276 3 -1.263357 -3.208578 + 276 4 -.8563637 -2.63395 + 276 5 -.485633 -2.080454 + 276 6 .1837639 1.084685 + 276 7 -.5646113 -4.882828 + 276 8 -.2308659 -1.795438 + 276 9 -.4463532 -.7049216 + 276 10 -.6590122 -2.443081 + 277 1 1.105171 -.4585118 + 277 2 1.903722 .992862 + 277 3 1.171871 1.764093 + 277 4 1.413884 .9288573 + 277 5 -.161494 .7550272 + 277 6 1.229558 1.209538 + 277 7 .7822666 -2.389042 + 277 8 .6245995 .4473903 + 277 9 1.667333 1.159534 + 277 10 1.662027 2.664106 + 278 1 -1.257121 -1.062338 + 278 2 -.4857364 -1.859366 + 278 3 -.4695221 -2.10775 + 278 4 -.424833 -1.743351 + 278 5 .0890938 -1.908982 + 278 6 1.193046 1.127037 + 278 7 -.333879 -2.041629 + 278 8 1.472751 .1594183 + 278 9 -.1197587 -2.641762 + 278 10 .7744794 -.198738 + 279 1 .3056105 -1.605856 + 279 2 -1.058255 -3.798013 + 279 3 .3120412 .6442868 + 279 4 .0608813 -1.490263 + 279 5 .310604 -3.226834 + 279 6 .23408 -.6381745 + 279 7 .4149793 -2.29419 + 279 8 -1.371843 -1.412752 + 279 9 .5280664 -4.481213 + 279 10 -.1925232 -4.076558 + 280 1 -.2104055 1.806256 + 280 2 .3165161 1.392973 + 280 3 .1357231 .5869187 + 280 4 -.6018031 .9278034 + 280 5 .5277494 1.589437 + 280 6 .1248126 .8864543 + 280 7 -.1349436 .8676683 + 280 8 .7517115 2.107488 + 280 9 -.1402433 1.320008 + 280 10 .8292385 -.0937585 + 281 1 .0048537 -.4546574 + 281 2 -1.350778 -3.214368 + 281 3 -.9300727 -2.477466 + 281 4 -1.091304 -.4267188 + 281 5 1.76406 1.79186 + 281 6 -.235031 1.985206 + 281 7 .9337168 .2449346 + 281 8 .8894295 -.8898416 + 281 9 .0872185 1.008609 + 281 10 -.2851903 -1.672063 + 282 1 .2473879 -1.34134 + 282 2 -.3316757 .9244647 + 282 3 .512238 .115557 + 282 4 .9039181 -.0280877 + 282 5 .547024 -.0745859 + 282 6 1.224362 -1.047249 + 282 7 .27343 -1.275514 + 282 8 1.209972 -.1661881 + 282 9 1.521983 -.1685919 + 282 10 1.526268 -1.998607 + 283 1 -1.460393 -1.145021 + 283 2 .7575911 .6431463 + 283 3 -.5244011 -.1600968 + 283 4 .8122581 -.983875 + 283 5 -1.147373 -2.748764 + 283 6 .3327325 -1.756385 + 283 7 .602522 .3396862 + 283 8 .0879591 1.815702 + 283 9 1.334288 2.346755 + 283 10 -.6573533 -.1649583 + 284 1 -.6337579 -.8371237 + 284 2 -.8461487 .4914629 + 284 3 -.2117531 1.089847 + 284 4 -.0117765 -.7013565 + 284 5 -.0789424 -.0999364 + 284 6 -.5500525 .4651148 + 284 7 -1.395762 -3.212136 + 284 8 .4618104 1.210305 + 284 9 .66264 3.262594 + 284 10 -1.751047 -2.463191 + 285 1 -.2856698 -3.894995 + 285 2 -.7424809 -5.08774 + 285 3 -.1001574 -4.610766 + 285 4 -1.223242 -2.832906 + 285 5 -1.725884 -2.992929 + 285 6 .6462654 -4.533737 + 285 7 -.7096204 -5.639345 + 285 8 .1233242 -5.368943 + 285 9 .5398992 -1.15512 + 285 10 .5055323 -2.749073 + 286 1 -1.668531 .2212468 + 286 2 1.023343 3.203849 + 286 3 .4181822 3.54003 + 286 4 .7565898 .9894442 + 286 5 .0287599 -1.475459 + 286 6 .0724912 -.4873334 + 286 7 -.5179029 -.5315184 + 286 8 .7134054 1.208864 + 286 9 -.4319775 -1.363303 + 286 10 .0739882 3.802881 + 287 1 -1.935435 .9118819 + 287 2 -2.095297 -.7379755 + 287 3 -.721016 -3.552889 + 287 4 -1.848714 1.7831 + 287 5 -1.820215 .5146583 + 287 6 -.3620733 1.234901 + 287 7 -1.423656 .8143681 + 287 8 -2.651203 -1.14212 + 287 9 -.3498964 -.3684206 + 287 10 -1.192345 1.480427 + 288 1 -.76341 -2.127842 + 288 2 -1.305989 .348884 + 288 3 -1.137073 .0433275 + 288 4 .2833143 -.7932639 + 288 5 -.9064541 .0951351 + 288 6 -.1933955 -.3155874 + 288 7 .2286331 .1167062 + 288 8 -.9254668 .6362901 + 288 9 -.6886753 -.75538 + 288 10 -.3244376 2.389177 + 289 1 -.0608594 3.65827 + 289 2 .7701365 3.057038 + 289 3 .7763952 5.143516 + 289 4 .3849347 2.639215 + 289 5 -.3348695 3.682957 + 289 6 -.2941056 1.679909 + 289 7 .9028705 3.169494 + 289 8 .5994911 5.22807 + 289 9 .8468918 2.840572 + 289 10 1.084319 5.208366 + 290 1 1.431985 3.081578 + 290 2 .9291185 .5693145 + 290 3 -1.040786 .3378932 + 290 4 1.675363 1.823355 + 290 5 1.430992 4.176705 + 290 6 .6537787 .6327383 + 290 7 -.3876851 4.141751 + 290 8 1.02944 5.734938 + 290 9 .7009004 2.929651 + 290 10 .9363461 3.449493 + 291 1 -.4222023 -.9553124 + 291 2 .3438784 -.9702309 + 291 3 -.2422371 -2.078196 + 291 4 .2162838 -2.5263 + 291 5 -.0478098 -1.56432 + 291 6 -.120312 -1.289782 + 291 7 -.8896275 -1.505295 + 291 8 -.6466461 -1.413619 + 291 9 .088691 -.1566611 + 291 10 -.3132509 -1.852522 + 292 1 -.4925852 -3.37087 + 292 2 .3142375 -2.979269 + 292 3 .8098291 -3.102055 + 292 4 -.0309093 -3.00617 + 292 5 .1300918 -2.207057 + 292 6 .4544894 .0735604 + 292 7 -.6855474 -2.936456 + 292 8 1.231201 -.20735 + 292 9 -.2966711 -2.853282 + 292 10 .4326966 -1.627525 + 293 1 -.5953501 -.6960797 + 293 2 -.9956862 .2201483 + 293 3 .0159993 .2272351 + 293 4 -.9779801 .0417832 + 293 5 -1.500325 -2.307612 + 293 6 -.9959835 1.127879 + 293 7 -.4232532 -1.719617 + 293 8 -.5598248 -1.267455 + 293 9 .2186248 -.0761362 + 293 10 -1.234179 -3.115372 + 294 1 1.121934 .3258687 + 294 2 -.3002118 -1.29864 + 294 3 2.216118 2.31594 + 294 4 .1143867 -1.687388 + 294 5 .0028749 -2.032747 + 294 6 .2275681 .3396165 + 294 7 -.3454866 -2.232009 + 294 8 .0569153 -.7773654 + 294 9 .281196 1.131526 + 294 10 -.6137836 -.9987382 + 295 1 -.6335627 -1.903595 + 295 2 -.0082566 -2.619677 + 295 3 -.7999982 -2.975821 + 295 4 .1780989 -3.118157 + 295 5 .7583269 .0462846 + 295 6 .1826241 -2.913262 + 295 7 -.8128164 -2.898692 + 295 8 .4154827 -3.108252 + 295 9 1.126049 -1.508563 + 295 10 -.4073088 -3.490055 + 296 1 -.0236263 -2.467747 + 296 2 .0224632 .9410301 + 296 3 -.1079885 -.735872 + 296 4 -.6519762 .6511194 + 296 5 -1.516521 -3.660626 + 296 6 .6440648 -1.90728 + 296 7 -.762248 -2.827313 + 296 8 .1124184 -1.674701 + 296 9 .4133556 .1528977 + 296 10 1.163524 -.8055658 + 297 1 .2652938 4.953881 + 297 2 .1649487 7.169178 + 297 3 .6724626 3.208345 + 297 4 .9107273 6.012301 + 297 5 .5299174 1.45804 + 297 6 -.3721145 2.824732 + 297 7 1.146502 4.260746 + 297 8 1.436541 2.396386 + 297 9 -.1122249 6.902519 + 297 10 .8334019 5.368154 + 298 1 .7312837 -1.069968 + 298 2 -.5102405 -3.308913 + 298 3 -.9292251 -.2422212 + 298 4 -.2150672 -3.080508 + 298 5 .7037851 -.213078 + 298 6 -1.06391 -1.236876 + 298 7 -.3456267 2.561281 + 298 8 -.6818334 -2.622968 + 298 9 -.2075897 -2.102076 + 298 10 .0716005 .6245267 + 299 1 .2217795 .9225801 + 299 2 .1711643 1.034666 + 299 3 .4550282 -.1482511 + 299 4 -.6956599 -.1912163 + 299 5 .5078331 -1.030261 + 299 6 -.2184 2.038437 + 299 7 .2040441 -.7810257 + 299 8 .4641071 -.7868103 + 299 9 .2759933 1.002228 + 299 10 .0687826 -.9461448 + 300 1 -1.157354 3.064995 + 300 2 -1.085663 1.880853 + 300 3 -1.034096 1.047404 + 300 4 -.893792 .069346 + 300 5 -1.520618 .9253366 + 300 6 -.9912338 1.467025 + 300 7 -1.247197 -1.54687 + 300 8 -1.423021 1.534549 + 300 9 -1.189256 -.0318463 + 300 10 -2.660626 -2.72154 + 301 1 1.212624 -.1379576 + 301 2 .8962982 -.3261759 + 301 3 .6913161 .0718027 + 301 4 1.008605 .2879519 + 301 5 .1364647 -.4650801 + 301 6 1.488669 1.172586 + 301 7 .1387877 -1.070213 + 301 8 -.118714 -1.594402 + 301 9 1.110829 1.302383 + 301 10 -.1282128 -1.182917 + 302 1 1.266426 .3541912 + 302 2 -.2130778 2.286933 + 302 3 -.9522302 -2.412134 + 302 4 -.1713218 -.3536798 + 302 5 .0944488 -.307781 + 302 6 -.0850507 -.1239224 + 302 7 -.0232138 -1.544283 + 302 8 -.3646309 .4098703 + 302 9 -.9486059 -.864284 + 302 10 -.4303542 -.2923739 + 303 1 .1989395 3.165762 + 303 2 -.1615809 .8782057 + 303 3 -.6035842 3.944757 + 303 4 .1173443 -.5820931 + 303 5 .5804065 3.624507 + 303 6 .0649533 2.326556 + 303 7 .2787693 1.353267 + 303 8 1.180739 3.202775 + 303 9 1.0369 .4606698 + 303 10 -.0579956 .9728234 + 304 1 1.299442 3.394002 + 304 2 1.267889 6.025136 + 304 3 2.386807 4.775618 + 304 4 1.144757 2.352683 + 304 5 .4609431 2.455348 + 304 6 .308527 2.509389 + 304 7 .676951 4.577685 + 304 8 .5688994 -.2836845 + 304 9 1.22781 1.340273 + 304 10 1.525781 4.336875 + 305 1 -.1072164 -1.179699 + 305 2 .378837 -2.53644 + 305 3 .4745473 -.1411331 + 305 4 .5133877 -.6760728 + 305 5 .0968005 -2.13964 + 305 6 -.7575296 -1.115131 + 305 7 .3498355 -.5259158 + 305 8 .5677224 .6951905 + 305 9 .0137834 .1040811 + 305 10 .2281571 2.68638 + 306 1 2.505945 2.661103 + 306 2 -.5128537 .0979747 + 306 3 .4093541 1.555751 + 306 4 .3468592 2.923481 + 306 5 .3893701 .6506599 + 306 6 .4230124 .4158594 + 306 7 2.241051 1.052937 + 306 8 1.910467 1.709813 + 306 9 .3605613 1.085548 + 306 10 1.175306 1.53056 + 307 1 .904353 -2.349495 + 307 2 -.4886938 -1.001411 + 307 3 1.380073 1.046942 + 307 4 -.4340216 -.7895899 + 307 5 .1318686 .7192857 + 307 6 .8004378 -1.884229 + 307 7 .8784896 -2.124703 + 307 8 -.2726218 -.2625537 + 307 9 .017715 -.7719643 + 307 10 .5782194 -3.014054 + 308 1 .1933789 -2.18305 + 308 2 -.1952871 -1.833437 + 308 3 -.7377759 .7389084 + 308 4 -.1181372 -2.198929 + 308 5 -1.430342 -2.365241 + 308 6 .5002977 -.9795716 + 308 7 -.0445634 -.3071025 + 308 8 1.019042 -1.643237 + 308 9 -.2519647 -1.355526 + 308 10 -1.363734 -1.439991 + 309 1 -.6590933 -2.573743 + 309 2 .2100908 -1.121971 + 309 3 -.1594792 -2.287323 + 309 4 .1107149 .5555104 + 309 5 -.684333 -3.212126 + 309 6 -1.358433 -3.950673 + 309 7 -1.71907 -2.621594 + 309 8 -.843949 -3.013556 + 309 9 -.4446799 -3.731741 + 309 10 -2.107879 -3.073752 + 310 1 -1.082236 .0589311 + 310 2 .3473772 1.319451 + 310 3 -.2044194 1.047891 + 310 4 -.412802 -.4301148 + 310 5 -.253235 2.77829 + 310 6 -.0658997 -.2226901 + 310 7 -.9983549 -1.212613 + 310 8 -.5606914 -.2779118 + 310 9 -.6213195 1.606124 + 310 10 .4323931 .7963311 + 311 1 .1637869 .8144814 + 311 2 .3888807 -1.996529 + 311 3 -.4877957 -2.641775 + 311 4 -.3621924 -3.031136 + 311 5 .8755594 .5251995 + 311 6 -.7360529 -1.465007 + 311 7 1.448663 -.4546512 + 311 8 .1079994 -2.727451 + 311 9 -.3728598 1.274828 + 311 10 1.091286 1.491997 + 312 1 -.6550789 .7337952 + 312 2 -1.216076 1.709714 + 312 3 -1.037694 -.1907317 + 312 4 -.9941657 1.635481 + 312 5 -.5152657 .6996572 + 312 6 -1.016564 .9987954 + 312 7 -.8836941 -.5357457 + 312 8 -1.280333 .9544096 + 312 9 .4750716 3.358946 + 312 10 -1.16969 .3597584 + 313 1 .6278168 2.423372 + 313 2 -1.249266 -2.423709 + 313 3 -.0539184 -1.664979 + 313 4 .6682127 1.03183 + 313 5 .2515903 1.240996 + 313 6 .5905681 1.505387 + 313 7 1.071352 1.208588 + 313 8 .5429903 -.2078185 + 313 9 -.2466664 -.3524755 + 313 10 .2986039 .4956123 + 314 1 -1.213561 .0995333 + 314 2 -2.08583 -3.158766 + 314 3 -1.458448 -1.43713 + 314 4 -1.55637 -2.087229 + 314 5 -1.564798 -2.030253 + 314 6 -2.57597 .6134729 + 314 7 -1.71215 -4.167862 + 314 8 -.9081715 -2.209743 + 314 9 -1.097981 -2.601 + 314 10 -1.738765 -.7134905 + 315 1 -.3219499 6.132199 + 315 2 -.4168345 4.09077 + 315 3 .2039351 2.836242 + 315 4 -.1341842 1.223872 + 315 5 -.7908282 3.693241 + 315 6 -.8131104 1.406583 + 315 7 .9417753 5.787119 + 315 8 .1985477 1.656944 + 315 9 -1.455228 1.082366 + 315 10 -.2573244 3.045901 + 316 1 1.139231 4.704838 + 316 2 -.0435883 1.222427 + 316 3 .3903391 1.48265 + 316 4 1.012324 3.861323 + 316 5 -.0368865 -.5093943 + 316 6 .8973801 2.160011 + 316 7 .3613149 -.1648915 + 316 8 -1.422709 -1.728362 + 316 9 -.8538588 1.349076 + 316 10 .5913562 .0812178 + 317 1 1.313735 3.962234 + 317 2 .6639349 2.575644 + 317 3 1.085506 3.857906 + 317 4 2.290491 .7252183 + 317 5 .5426903 -.1802098 + 317 6 1.089875 1.652033 + 317 7 1.949163 4.238834 + 317 8 1.200622 .1271455 + 317 9 -.1057174 -1.823779 + 317 10 1.461174 2.447588 + 318 1 -.1093736 1.211051 + 318 2 .8840867 2.544989 + 318 3 .6600249 .7247286 + 318 4 1.62985 1.974992 + 318 5 .5351541 4.100967 + 318 6 .3037682 .2348031 + 318 7 1.841704 2.020627 + 318 8 .2392886 -1.063084 + 318 9 .0736966 -.0599461 + 318 10 .978501 .0759804 + 319 1 -.5852684 2.99405 + 319 2 1.166138 6.947165 + 319 3 .8595033 4.387637 + 319 4 .4148157 2.948615 + 319 5 .7843937 1.955702 + 319 6 .5490359 3.764022 + 319 7 -.2628809 2.967941 + 319 8 .7899153 1.041289 + 319 9 1.538118 2.106266 + 319 10 .2480692 3.471334 + 320 1 1.376184 1.397995 + 320 2 -.5421448 -1.224357 + 320 3 .5843778 .6223827 + 320 4 -.3739028 -1.167495 + 320 5 .169015 -.6434228 + 320 6 .2669372 .6718704 + 320 7 -.3901301 1.938211 + 320 8 -.3398134 .0979659 + 320 9 .0600606 1.580089 + 320 10 .0630012 1.012247 + 321 1 -.7114034 1.006528 + 321 2 -1.110904 2.097334 + 321 3 -1.160171 .0838931 + 321 4 -1.247983 -.9012175 + 321 5 -.783526 1.903065 + 321 6 .2134164 -1.969308 + 321 7 -1.181847 2.817079 + 321 8 .3122529 1.300823 + 321 9 -.5189598 4.103461 + 321 10 -.4910371 .2201543 + 322 1 .840999 .7732243 + 322 2 .4931779 2.595244 + 322 3 1.410488 1.644607 + 322 4 -.3935182 -1.669401 + 322 5 -.1491356 -2.332692 + 322 6 .7085593 1.389216 + 322 7 -1.145233 -.7497268 + 322 8 -.1426497 -1.292283 + 322 9 .0855018 .5679272 + 322 10 1.014541 1.439126 + 323 1 .8222046 2.608925 + 323 2 .3437938 2.019197 + 323 3 .1671889 2.021837 + 323 4 .0938427 2.399146 + 323 5 .3004334 1.784897 + 323 6 .1344928 1.33614 + 323 7 -.6547418 -.00929 + 323 8 -1.341654 -.680935 + 323 9 .7747284 2.588015 + 323 10 -.7156495 .3515812 + 324 1 -.1230086 1.783272 + 324 2 -.4881498 -.3822282 + 324 3 .3514171 -1.246508 + 324 4 -.1728574 .9644995 + 324 5 -.4734338 .2610707 + 324 6 -.27917 .141532 + 324 7 .5372118 -.2599156 + 324 8 -1.399001 -3.409292 + 324 9 -.2749071 -1.867347 + 324 10 1.070853 1.040053 + 325 1 -1.720132 -2.124197 + 325 2 -.6501931 -.2484825 + 325 3 -.4379873 -.6277484 + 325 4 -1.238178 -1.764803 + 325 5 -.8571739 -.3961552 + 325 6 -.5373721 -1.780688 + 325 7 -.0301044 1.064706 + 325 8 -.0613058 -1.904758 + 325 9 .0970504 -1.231271 + 325 10 -.9715793 -.7554119 + 326 1 1.394202 2.801936 + 326 2 .7951759 .2986445 + 326 3 1.364746 1.294738 + 326 4 .2713875 -.5043192 + 326 5 2.647352 3.885561 + 326 6 1.619217 .3610069 + 326 7 1.244619 1.467165 + 326 8 .6747259 .0556479 + 326 9 2.199409 2.427234 + 326 10 .7258136 2.233684 + 327 1 1.134018 -.3883313 + 327 2 .8332224 -.1600463 + 327 3 1.122737 -1.411546 + 327 4 1.290364 1.672051 + 327 5 1.498085 .9376276 + 327 6 .1756893 -3.605857 + 327 7 .8118833 .0109993 + 327 8 1.512753 .8302828 + 327 9 .4798213 .3372447 + 327 10 .312312 1.89495 + 328 1 .0966263 1.208175 + 328 2 -1.403313 -.9184096 + 328 3 .0939596 -.5021042 + 328 4 1.23189 2.445007 + 328 5 -.754278 .8017802 + 328 6 .7751966 .3338559 + 328 7 -.7872727 .5828404 + 328 8 .5517874 1.105145 + 328 9 -1.118373 .3368771 + 328 10 -1.084542 -3.082005 + 329 1 -.64419 -1.856086 + 329 2 .2792873 -1.500095 + 329 3 1.022133 -.9396803 + 329 4 -.2666279 -2.313416 + 329 5 .0841673 1.66788 + 329 6 1.078811 -.5304371 + 329 7 .5985367 -.5998325 + 329 8 .7469683 -.5514413 + 329 9 .3353473 .077413 + 329 10 .0253191 .3968397 + 330 1 .523804 -.2777813 + 330 2 -.8467154 .0210209 + 330 3 1.565408 -1.039337 + 330 4 .517679 1.544941 + 330 5 .8906721 1.331069 + 330 6 .7820405 2.576909 + 330 7 .790448 -1.534705 + 330 8 -.4168262 -2.327561 + 330 9 1.047 .5375486 + 330 10 .6091557 1.02087 + 331 1 -1.008289 1.200104 + 331 2 1.336903 -.4700743 + 331 3 1.559659 .9253162 + 331 4 .5510666 -1.377242 + 331 5 .6839844 -2.100733 + 331 6 1.284005 2.620907 + 331 7 .0673638 2.145791 + 331 8 -.3229722 -.8831274 + 331 9 .7090932 1.469871 + 331 10 .8416753 4.174598 + 332 1 -.0296125 2.530032 + 332 2 .2191554 2.351596 + 332 3 -1.068912 -3.565866 + 332 4 -1.324151 1.447325 + 332 5 -1.12399 .8211809 + 332 6 -1.364655 -1.121884 + 332 7 .9857613 .417506 + 332 8 -1.901747 -1.715484 + 332 9 -.7951809 2.402612 + 332 10 -1.826209 1.014032 + 333 1 -.0345799 -.4965591 + 333 2 .0780219 -3.016384 + 333 3 .6748441 1.053736 + 333 4 .2271895 .687906 + 333 5 .8589821 -.6531677 + 333 6 1.172365 -3.654833 + 333 7 1.028686 .3755 + 333 8 .4096808 -3.021688 + 333 9 .9025163 -1.425923 + 333 10 -.0767436 .3022914 + 334 1 .4781853 .7008832 + 334 2 -.9816372 -3.810112 + 334 3 .7682565 -.1027172 + 334 4 -.0089384 -1.062498 + 334 5 -.1059492 -.3398289 + 334 6 .962351 1.808518 + 334 7 .2916376 -1.270707 + 334 8 .1074231 -4.010852 + 334 9 .6399701 .8242661 + 334 10 1.389498 3.390346 + 335 1 -.0341366 1.359662 + 335 2 -.2300572 3.03093 + 335 3 -.4112186 1.242827 + 335 4 .0346978 -1.556063 + 335 5 .0514196 1.258791 + 335 6 -.8035721 .1634853 + 335 7 -.7463363 -.850821 + 335 8 -1.377113 1.798171 + 335 9 .5717965 .1745555 + 335 10 -.6162994 -.7321001 + 336 1 -1.141614 -.687887 + 336 2 .5763119 1.178286 + 336 3 .0279686 -1.075711 + 336 4 -.7928141 1.310478 + 336 5 -.8519275 -3.037306 + 336 6 .1790458 -.3380367 + 336 7 .6120673 .9180999 + 336 8 -.9078634 -.4184029 + 336 9 .3521987 1.55241 + 336 10 .8129057 1.317359 + 337 1 -.5301838 -1.421428 + 337 2 .6498045 .1096817 + 337 3 -.3122817 -4.051725 + 337 4 -1.243292 -1.931706 + 337 5 .4840939 -2.083177 + 337 6 .627633 .2089486 + 337 7 .5189809 -.7541553 + 337 8 -1.241234 -.1435724 + 337 9 -1.091277 -3.027426 + 337 10 .7091281 .9971457 + 338 1 .4726462 1.325428 + 338 2 .9362557 1.001695 + 338 3 .7990077 1.718518 + 338 4 .6904245 -.1676747 + 338 5 .9130564 .7183853 + 338 6 1.101782 1.686772 + 338 7 .3384881 1.796878 + 338 8 1.193409 1.82498 + 338 9 .3697639 -1.424815 + 338 10 .5570083 1.532877 + 339 1 -.8531764 2.778892 + 339 2 -.1966925 2.143157 + 339 3 -.9839787 .5678203 + 339 4 -.6858693 2.60121 + 339 5 -.5955294 3.222797 + 339 6 -1.8449 1.518352 + 339 7 -.7711766 -.0444492 + 339 8 -.8642274 5.037053 + 339 9 -.3996727 2.182715 + 339 10 -.9959184 2.186512 + 340 1 1.287086 1.085785 + 340 2 .3749849 2.455178 + 340 3 1.062874 .3061398 + 340 4 .5123792 2.817225 + 340 5 1.095079 1.21031 + 340 6 1.573182 2.794 + 340 7 1.418342 1.910308 + 340 8 1.802045 1.037917 + 340 9 .959832 3.390004 + 340 10 2.239 4.629809 + 341 1 -.8337001 .8668393 + 341 2 -1.28723 -.2980531 + 341 3 -.2560894 -.145299 + 341 4 -1.188697 -1.147569 + 341 5 -1.344844 -.8542031 + 341 6 -.7178921 -1.243278 + 341 7 -.0706205 1.477563 + 341 8 -1.299475 -1.719622 + 341 9 -.9761535 2.462304 + 341 10 -.7972464 .5179787 + 342 1 .2874753 -.9459405 + 342 2 -1.140748 -1.587461 + 342 3 -.4820356 -1.542755 + 342 4 .4356451 .4693216 + 342 5 -.32961 1.672015 + 342 6 .5791374 .4184265 + 342 7 .0804543 -.4851521 + 342 8 -.5911621 .3340384 + 342 9 -1.91879 1.688906 + 342 10 1.082112 1.332891 + 343 1 .4171742 .173781 + 343 2 3.082487 -1.044352 + 343 3 1.169403 -.0743846 + 343 4 .4818434 -3.061883 + 343 5 2.183904 .4495065 + 343 6 .7593696 -1.829309 + 343 7 1.535539 -1.78552 + 343 8 -.0450767 -2.684433 + 343 9 1.431003 -.078194 + 343 10 1.105973 -1.140877 + 344 1 -.4055815 -2.813725 + 344 2 -.8611348 -2.930415 + 344 3 .1992989 1.829839 + 344 4 -.5147722 .3920042 + 344 5 -.5171298 1.002206 + 344 6 -.9463255 2.67207 + 344 7 1.472377 2.169219 + 344 8 -1.185128 -2.07848 + 344 9 -.3231675 -.4512805 + 344 10 -1.74948 -2.876919 + 345 1 .1971563 -2.533665 + 345 2 -1.009619 -1.667742 + 345 3 1.358866 3.246997 + 345 4 .3870358 -1.087757 + 345 5 1.741294 .6383464 + 345 6 .6472943 -1.760053 + 345 7 -.8908844 -1.995473 + 345 8 .8650471 -2.052088 + 345 9 .9572592 -1.488084 + 345 10 .2796121 -2.186462 + 346 1 -1.467454 -1.0503 + 346 2 -.2532741 -1.464429 + 346 3 -.1472076 -.3408597 + 346 4 .8591915 -1.017709 + 346 5 -.3550845 -1.765731 + 346 6 -1.195446 -1.052871 + 346 7 -.1267164 -2.062441 + 346 8 .4523068 .9465333 + 346 9 -.503657 -2.177341 + 346 10 .5974607 .4098534 + 347 1 .7031173 -1.929116 + 347 2 .1502877 -.6849976 + 347 3 1.079347 1.523654 + 347 4 -.7781886 -.1715465 + 347 5 .3196149 1.682385 + 347 6 -.1547143 -2.135677 + 347 7 .2725263 -2.901819 + 347 8 -.3182507 .1369572 + 347 9 1.105789 -.6038599 + 347 10 1.123925 -2.72728 + 348 1 -1.27843 .4381262 + 348 2 -.3512814 -.9529293 + 348 3 .105588 1.195718 + 348 4 -.4149123 -2.303596 + 348 5 -.7499133 -1.323834 + 348 6 .3610358 .0437909 + 348 7 -1.114799 -1.898063 + 348 8 -.776548 1.502896 + 348 9 -.0640514 2.731061 + 348 10 -1.579033 -.8110284 + 349 1 .0999836 -.7638679 + 349 2 1.209674 -.4843366 + 349 3 -.392669 -2.406988 + 349 4 1.762224 -.9527221 + 349 5 -.6671348 -4.50182 + 349 6 1.104294 .3747261 + 349 7 -.0154446 -3.598221 + 349 8 .762148 -2.193823 + 349 9 -.1002964 -1.143165 + 349 10 .4510945 -1.332772 + 350 1 1.000029 3.471359 + 350 2 -.0457645 .7268938 + 350 3 -.7032851 -2.00837 + 350 4 -.7188159 -3.079881 + 350 5 .2030054 -.8126448 + 350 6 -.3613122 1.642794 + 350 7 -.0194365 -3.071692 + 350 8 -.7358596 1.629515 + 350 9 -.0129708 -1.144292 + 350 10 -.522209 -1.486797 + 351 1 -1.217535 -4.934941 + 351 2 -.0483732 -.7145358 + 351 3 -.7571822 -3.650282 + 351 4 -.7582182 -4.133046 + 351 5 .0554951 -1.216737 + 351 6 -.1074803 -3.879589 + 351 7 -.7859623 -2.769078 + 351 8 -.0981961 -3.28409 + 351 9 .1348416 -2.472425 + 351 10 1.225851 -1.531439 + 352 1 -.595589 -4.308309 + 352 2 -.9149055 -5.720735 + 352 3 .5663604 -4.376552 + 352 4 -.2481878 -3.630968 + 352 5 -.1685 -1.912258 + 352 6 -.554507 -6.055714 + 352 7 -1.053859 -5.451947 + 352 8 -.9003046 -4.171236 + 352 9 -.4654292 -3.647272 + 352 10 -.840481 -2.040392 + 353 1 -.1589666 .3276464 + 353 2 -1.262318 -2.278812 + 353 3 -.1362039 2.149777 + 353 4 -.3166539 -.8814074 + 353 5 -.3432451 -.4128024 + 353 6 -.1864908 -3.100622 + 353 7 .3038542 .4002667 + 353 8 -.4272004 -.9876967 + 353 9 .0433596 .9843839 + 353 10 .3247434 -1.000466 + 354 1 -.9978524 -.9869629 + 354 2 -.9464179 -2.68557 + 354 3 -.760933 -3.451186 + 354 4 -1.758346 -1.009217 + 354 5 -.798512 -2.201924 + 354 6 -1.134871 -1.111341 + 354 7 -1.345791 -2.990888 + 354 8 -.4439098 2.075257 + 354 9 .0497388 -4.45066 + 354 10 .8240383 -2.045157 + 355 1 -1.422537 -1.664761 + 355 2 -.427367 -.4851996 + 355 3 .2844664 -3.078959 + 355 4 .4780743 -.3058663 + 355 5 -.0573853 -.5254004 + 355 6 -1.06673 -1.030774 + 355 7 -.4895939 -4.373556 + 355 8 -.772621 -2.229898 + 355 9 -1.657596 -3.134791 + 355 10 -.1875441 -3.788352 + 356 1 .175938 -.5078521 + 356 2 .0720406 .0808382 + 356 3 .2769918 -.2085884 + 356 4 1.545677 -1.91006 + 356 5 .6386923 -.191249 + 356 6 1.73172 1.787358 + 356 7 .8457142 -.4710856 + 356 8 1.230206 -.1243482 + 356 9 2.434192 .0095079 + 356 10 1.156173 1.576705 + 357 1 .717388 -.5418587 + 357 2 .8409083 -.4738864 + 357 3 .6001222 -1.448303 + 357 4 .6910822 -2.712983 + 357 5 1.317533 -1.022015 + 357 6 .7697452 .1576287 + 357 7 .1603402 -1.019497 + 357 8 .2641011 -.9525455 + 357 9 .7911133 -.416232 + 357 10 .5033729 -.2270353 + 358 1 1.175059 -.779038 + 358 2 .5949914 1.045863 + 358 3 1.106856 2.446459 + 358 4 -.4519127 .4342671 + 358 5 -.5643611 -.6856034 + 358 6 -.4651806 1.369249 + 358 7 .5311009 1.259885 + 358 8 .4178049 2.95355 + 358 9 -.3521637 2.536368 + 358 10 1.210013 -.684526 + 359 1 -1.018668 -1.077062 + 359 2 -.6906709 -.600858 + 359 3 -1.410484 -4.411857 + 359 4 .0062039 -1.11622 + 359 5 -.4723842 -1.576853 + 359 6 .542465 -1.190021 + 359 7 .5931194 -2.630582 + 359 8 -.8850244 -1.019225 + 359 9 -1.12701 -2.311237 + 359 10 .1957597 .5937567 + 360 1 1.464742 3.596365 + 360 2 1.916965 3.746908 + 360 3 1.989942 1.545314 + 360 4 1.506444 1.887023 + 360 5 2.121707 -2.21517 + 360 6 1.586579 .3038366 + 360 7 1.343209 -2.974389 + 360 8 .318958 1.784048 + 360 9 2.264643 3.166786 + 360 10 .580301 -.6073509 + 361 1 -.0047498 3.179522 + 361 2 .9173191 3.722483 + 361 3 .2045486 3.237594 + 361 4 .692564 2.052249 + 361 5 .6428299 2.891396 + 361 6 .6835338 2.688569 + 361 7 .0621936 1.961589 + 361 8 -.2271586 2.491282 + 361 9 .5147851 3.342131 + 361 10 -.4401184 .3320173 + 362 1 -.9329444 -.924626 + 362 2 -.8063075 -.2996407 + 362 3 .1358762 -.1040865 + 362 4 -1.823792 -4.460451 + 362 5 -.6714351 -.8630504 + 362 6 -.4733475 -.726538 + 362 7 -1.074792 -2.79022 + 362 8 -.8152092 -.8182088 + 362 9 .1224095 1.060908 + 362 10 .3062999 -.3005203 + 363 1 -2.171992 -1.849388 + 363 2 -2.224676 -.39443 + 363 3 -2.152846 -1.03288 + 363 4 -.041466 .5743951 + 363 5 -1.903765 -.1783118 + 363 6 -2.955784 -1.163626 + 363 7 -.9454063 1.746331 + 363 8 -1.95572 -.4471476 + 363 9 -1.584458 .1393538 + 363 10 -1.028017 .6801541 + 364 1 .2280406 2.924021 + 364 2 -1.261086 -1.165338 + 364 3 -2.019082 -3.581627 + 364 4 -.2639151 .6799535 + 364 5 -.9835242 -.0977344 + 364 6 -1.591298 -1.263671 + 364 7 .3806881 -.5235142 + 364 8 -.2386861 2.263564 + 364 9 -1.753455 .0206722 + 364 10 .003244 -.6679841 + 365 1 -1.307529 -2.674345 + 365 2 -1.416086 -.042206 + 365 3 -1.167556 -.7856366 + 365 4 -1.661194 -2.587862 + 365 5 -1.672819 -3.544657 + 365 6 -.3199935 -.6373743 + 365 7 -.4385923 .7567182 + 365 8 .0452868 .9746832 + 365 9 -.9363165 .3904944 + 365 10 -1.342519 -1.761821 + 366 1 -.0125248 3.545247 + 366 2 -.8516936 .9159751 + 366 3 .0498779 3.384288 + 366 4 1.838684 2.976934 + 366 5 1.201677 7.040684 + 366 6 .2071851 .894658 + 366 7 -.1670124 .6312494 + 366 8 -.5534649 1.6243 + 366 9 -.7880661 1.996419 + 366 10 .8838658 .4972352 + 367 1 -.6030208 -.8415774 + 367 2 -1.94056 -3.805515 + 367 3 -2.342715 -4.87499 + 367 4 -2.323491 -4.225123 + 367 5 -2.717042 -4.677723 + 367 6 -1.328835 .6660575 + 367 7 -1.008107 -3.067841 + 367 8 -1.849764 -4.600489 + 367 9 -1.410766 -3.906488 + 367 10 -2.000228 -5.136794 + 368 1 -.7445215 2.139421 + 368 2 .0979543 3.051342 + 368 3 -1.569118 -1.63978 + 368 4 -1.639416 .3739988 + 368 5 -.20704 .1416045 + 368 6 -.743534 .347235 + 368 7 -.0071092 2.516553 + 368 8 1.084817 3.677345 + 368 9 -.5520653 4.258949 + 368 10 -.0843069 -.2635856 + 369 1 -1.870674 -3.743335 + 369 2 -2.436843 -3.345125 + 369 3 -2.220279 -3.094991 + 369 4 -1.454587 -4.027362 + 369 5 -2.301934 -2.577597 + 369 6 -.8766038 -4.349296 + 369 7 -2.37972 -5.986567 + 369 8 -1.920468 -6.984557 + 369 9 -.5517857 -4.166302 + 369 10 -1.007551 -5.348446 + 370 1 .2675304 .8432758 + 370 2 -.5173684 -4.512389 + 370 3 -.5385896 -2.509871 + 370 4 -.2707357 -2.555482 + 370 5 -.8387904 -2.239731 + 370 6 -.7502377 -1.345504 + 370 7 -1.21098 -2.705103 + 370 8 .3272575 .6733996 + 370 9 -.2693458 -1.967517 + 370 10 -1.51174 -4.394127 + 371 1 .8658993 2.401864 + 371 2 .5694863 1.626551 + 371 3 1.59426 3.303421 + 371 4 -.0394821 .4322766 + 371 5 .5766224 1.615413 + 371 6 1.362109 1.48777 + 371 7 -.0075051 1.302828 + 371 8 .9601732 4.973707 + 371 9 -1.213404 -.1219416 + 371 10 -.129021 1.713119 + 372 1 -1.029784 .2946149 + 372 2 -.7234232 -1.063948 + 372 3 .7799363 .757264 + 372 4 -.9587575 1.299233 + 372 5 -1.091083 -1.48621 + 372 6 -.7423564 -.8135334 + 372 7 -.2809204 1.06414 + 372 8 .487967 2.125468 + 372 9 -1.824855 -1.314012 + 372 10 -.2890447 1.56795 + 373 1 -1.387584 .070205 + 373 2 -.2189843 -1.345379 + 373 3 .1667443 3.669709 + 373 4 .4580645 1.700927 + 373 5 .2726969 1.727182 + 373 6 .1778178 2.455134 + 373 7 -.2862008 2.415548 + 373 8 -1.352834 1.999186 + 373 9 .5776142 1.112005 + 373 10 .5641723 .4722159 + 374 1 -.2062007 .6627476 + 374 2 .0798875 .6567752 + 374 3 -.5031145 .6768382 + 374 4 -.3551856 1.892588 + 374 5 -.3580014 -.0693808 + 374 6 .2438183 .6433935 + 374 7 -1.361192 -1.39268 + 374 8 -.9262058 -1.370277 + 374 9 .1628584 1.810411 + 374 10 1.421647 -1.538967 + 375 1 .3221255 1.463645 + 375 2 1.255186 2.782729 + 375 3 1.033051 1.540211 + 375 4 .1678073 4.33535 + 375 5 .6040758 -.0933425 + 375 6 .3728646 -.3406181 + 375 7 .2509676 .9784555 + 375 8 -.8094957 -.3378635 + 375 9 .6270386 2.44438 + 375 10 -.1518685 4.05947 + 376 1 .2611696 -2.028676 + 376 2 -.7275745 -1.402231 + 376 3 .6616477 -.2468495 + 376 4 -.8691949 -3.083127 + 376 5 -.1946765 -.9081417 + 376 6 .9376171 .6714628 + 376 7 .4927319 -1.513386 + 376 8 -.5620987 -1.235962 + 376 9 .5936772 -.5783228 + 376 10 .6042633 -.4205357 + 377 1 -2.649898 -3.81094 + 377 2 -1.655321 -3.72097 + 377 3 -2.443664 -3.724946 + 377 4 -2.127761 -5.600814 + 377 5 -1.177635 -4.16115 + 377 6 -1.377227 -4.539193 + 377 7 -.96815 -3.433222 + 377 8 -.5125041 -3.106145 + 377 9 -2.061866 -5.524243 + 377 10 -2.810571 -4.434413 + 378 1 -2.338704 -5.005356 + 378 2 -1.656822 -5.29887 + 378 3 -.66752 -5.178211 + 378 4 -1.421779 -3.867168 + 378 5 .0099803 -2.171135 + 378 6 -1.158701 -2.939146 + 378 7 -1.433236 -5.372736 + 378 8 -.8795348 -4.894604 + 378 9 -1.26688 -3.002025 + 378 10 -2.064336 -5.208756 + 379 1 .56175 6.485942 + 379 2 .9244747 .6027086 + 379 3 .072753 1.531353 + 379 4 .640782 6.348257 + 379 5 1.05646 3.150079 + 379 6 .9276287 4.381526 + 379 7 .2058034 .5054486 + 379 8 .178113 2.081574 + 379 9 2.297468 4.853758 + 379 10 .2891109 4.017732 + 380 1 -.2727286 -1.172392 + 380 2 .2622191 -2.782768 + 380 3 -1.776102 -2.688119 + 380 4 .7835556 -2.694143 + 380 5 -.3700525 -2.696292 + 380 6 -.3973808 1.115081 + 380 7 -1.025798 -3.355073 + 380 8 -1.210958 -3.057121 + 380 9 .7745685 -1.246443 + 380 10 .6823879 -1.399245 + 381 1 -.1389521 1.119125 + 381 2 .383912 1.526184 + 381 3 -.1540905 .2111322 + 381 4 -.8339081 1.019494 + 381 5 1.37506 .4786931 + 381 6 .0226934 2.360403 + 381 7 .4259548 2.059906 + 381 8 -.8472951 -.0952861 + 381 9 -1.064817 .8264878 + 381 10 -.5788585 -1.286639 + 382 1 -.18602 .9143266 + 382 2 -.4718808 -1.017367 + 382 3 .2652463 -2.894339 + 382 4 -1.216186 -2.82424 + 382 5 -.8109982 -2.29513 + 382 6 -1.549591 -1.698686 + 382 7 -1.418895 -1.74393 + 382 8 -.7169449 -4.557049 + 382 9 -1.267944 -1.532938 + 382 10 .0035272 -3.39837 + 383 1 1.091774 2.434479 + 383 2 -.1719602 3.263875 + 383 3 -1.216398 .2513596 + 383 4 -.4874731 .6186442 + 383 5 -.0111257 .9499747 + 383 6 -.535559 1.793149 + 383 7 -1.510683 1.791825 + 383 8 .1951609 3.793243 + 383 9 -.7253405 .5536453 + 383 10 -.9152568 .5808493 + 384 1 -.2389407 2.659433 + 384 2 -.0465461 3.50509 + 384 3 .3263168 4.209057 + 384 4 -.1805945 1.160524 + 384 5 .9056537 4.777255 + 384 6 -.3788006 2.787255 + 384 7 -.3651813 .6233462 + 384 8 -1.285669 2.744303 + 384 9 -.7486035 -1.69739 + 384 10 -.7972383 2.420904 + 385 1 -.1189061 .8887793 + 385 2 -1.147574 1.219993 + 385 3 .3564054 4.473996 + 385 4 -.0313242 -.1905694 + 385 5 -.9909368 1.452563 + 385 6 .1912384 1.563893 + 385 7 -.8124213 1.321995 + 385 8 .0460558 .7245447 + 385 9 .1916294 4.070405 + 385 10 .683269 3.197297 + 386 1 .733038 -.6786328 + 386 2 -.4328094 -2.456077 + 386 3 -.2891144 -1.263554 + 386 4 .6648033 -2.050103 + 386 5 .1220821 -.426532 + 386 6 -.0032352 -1.565241 + 386 7 .3380939 .2080529 + 386 8 -.7624062 -2.170307 + 386 9 .034877 -.8399373 + 386 10 -.0694554 -1.830667 + 387 1 -1.213341 -2.604572 + 387 2 -.3505026 -.7526515 + 387 3 -.8015363 -2.280797 + 387 4 -.3926122 -2.223322 + 387 5 -1.772868 -2.179348 + 387 6 -1.423786 -.7722486 + 387 7 -3.253332 -4.234037 + 387 8 -1.18157 -.3957207 + 387 9 -1.09419 -.7762269 + 387 10 -.6858385 -1.630605 + 388 1 -2.123918 -2.658032 + 388 2 -1.763603 -.9070067 + 388 3 .627344 -1.363785 + 388 4 .3064886 -2.358666 + 388 5 -1.105821 -2.24256 + 388 6 -1.370474 -4.459815 + 388 7 -.7883329 -.9456815 + 388 8 -1.255332 -.3594983 + 388 9 -.9302744 .4103589 + 388 10 -1.734834 -3.872535 + 389 1 1.636304 4.878328 + 389 2 .8420483 .986828 + 389 3 .4902027 1.030463 + 389 4 1.561347 5.429127 + 389 5 .3193175 2.848952 + 389 6 1.971495 3.749794 + 389 7 1.604653 1.722209 + 389 8 -.031091 2.814834 + 389 9 1.325941 2.074522 + 389 10 1.313713 3.266188 + 390 1 -.1481084 -1.686957 + 390 2 -1.539168 -4.242666 + 390 3 -.0672399 -1.307308 + 390 4 .0991664 -1.436172 + 390 5 -.3925485 -1.16717 + 390 6 -.284917 -3.36085 + 390 7 1.028584 2.02427 + 390 8 .1521842 .1270557 + 390 9 -.7923329 -1.690846 + 390 10 -1.032059 -3.061796 + 391 1 -1.073351 -3.620128 + 391 2 -.2690195 2.77845 + 391 3 -.7653798 -.3245218 + 391 4 -1.206248 -1.274928 + 391 5 1.079103 1.25298 + 391 6 -.8228603 .1701522 + 391 7 .0770863 -2.512754 + 391 8 -.1563727 -1.951039 + 391 9 -.1091052 -1.146867 + 391 10 -.5970102 -.8082113 + 392 1 -.778818 -2.149872 + 392 2 -1.124083 -1.706628 + 392 3 -1.249473 -2.10093 + 392 4 -1.353908 -2.409914 + 392 5 -2.006394 -4.0176 + 392 6 .4067655 .7217132 + 392 7 -.6210231 -4.528327 + 392 8 -.8292722 -2.719974 + 392 9 .1029305 -2.586509 + 392 10 -.1138842 -2.76546 + 393 1 1.37527 -.8749509 + 393 2 1.115777 -.1393572 + 393 3 -.151459 -1.034124 + 393 4 .7711652 2.072216 + 393 5 .4574333 -1.451379 + 393 6 .7529836 1.22789 + 393 7 -.0698638 -.6474718 + 393 8 .9219314 -.3181329 + 393 9 1.46152 2.361929 + 393 10 -.8179705 -.2439315 + 394 1 -.2519535 -.2649384 + 394 2 .2682973 .8984743 + 394 3 -.2655891 .2438378 + 394 4 -1.390692 -.8121323 + 394 5 -1.755518 -2.606077 + 394 6 -.4655634 -3.107933 + 394 7 -.8527375 -1.599537 + 394 8 -.2329211 -2.734554 + 394 9 .344005 2.110598 + 394 10 -.9888225 .3048791 + 395 1 -.8984658 .2038043 + 395 2 .0965772 4.283431 + 395 3 -.6580652 .7473171 + 395 4 .2438093 1.819212 + 395 5 -.1076336 -2.270298 + 395 6 1.807546 1.503969 + 395 7 -.1048535 2.369996 + 395 8 -.3932262 1.135453 + 395 9 -.8891494 .3334768 + 395 10 -.1850104 .7098111 + 396 1 -.017905 -.2280871 + 396 2 -.4417512 -.7029725 + 396 3 .913402 -.1278549 + 396 4 -.1188169 -.6936073 + 396 5 1.261677 -2.11687 + 396 6 .4208337 -.4546144 + 396 7 1.359924 2.324958 + 396 8 .5337011 -1.040696 + 396 9 .2693107 .9022439 + 396 10 .9880946 -1.36061 + 397 1 -.7676239 .962248 + 397 2 -.3178857 1.084165 + 397 3 -.3132098 1.509503 + 397 4 -.4339292 -.5050718 + 397 5 .2527694 2.793793 + 397 6 -1.366622 -.4007915 + 397 7 .607631 1.388012 + 397 8 -1.017177 .0501715 + 397 9 -.8145512 -.5959447 + 397 10 .1584879 -.5414529 + 398 1 -1.546453 -3.930412 + 398 2 -1.318608 -4.12843 + 398 3 -1.011837 -2.496718 + 398 4 -1.248173 -5.044407 + 398 5 .3670759 -2.0697 + 398 6 .9517725 -1.654942 + 398 7 -.6049573 -1.623286 + 398 8 -.0641443 -1.953758 + 398 9 -1.672673 -4.557882 + 398 10 -1.265704 -2.264621 + 399 1 -.0593621 -.1262234 + 399 2 .1390234 .2107332 + 399 3 .6143929 2.229314 + 399 4 1.522082 2.783622 + 399 5 -.6489763 -.3426912 + 399 6 .950194 -.098972 + 399 7 -.3629631 -.4596865 + 399 8 1.022763 1.062923 + 399 9 -.0413916 -.1947412 + 399 10 -.2173491 1.720362 + 400 1 -2.01255 -.1468048 + 400 2 -1.466231 -2.075447 + 400 3 -.328725 -.5171174 + 400 4 -1.081673 -1.224342 + 400 5 -1.919911 -1.101861 + 400 6 -1.547702 .0808054 + 400 7 -1.581804 -.7976359 + 400 8 -.458555 -1.338285 + 400 9 -2.187351 -2.599372 + 400 10 -1.692946 -1.500466 + 401 1 .1914289 -1.696554 + 401 2 -2.018934 -1.246415 + 401 3 -1.537366 -1.867577 + 401 4 -.5202571 2.083177 + 401 5 .1608804 2.068106 + 401 6 .4066608 .35845 + 401 7 .0123159 -1.685919 + 401 8 -.0054039 -.7783538 + 401 9 .8345245 -.1941541 + 401 10 1.107574 2.468156 + 402 1 -.8062186 2.287118 + 402 2 -.3320312 1.861541 + 402 3 .5146966 2.103429 + 402 4 .9527199 -.4108217 + 402 5 -1.297568 -1.612024 + 402 6 -1.410252 -1.751004 + 402 7 -.6556836 -1.968718 + 402 8 -.4294576 1.578267 + 402 9 -.018121 -.3737303 + 402 10 -.9197619 2.050787 + 403 1 -.1031541 -2.463573 + 403 2 -.0467654 1.766958 + 403 3 -1.848265 -.9244912 + 403 4 -2.142257 -3.752481 + 403 5 .7792882 -.2481943 + 403 6 -1.396972 -1.124067 + 403 7 -1.767408 -2.201828 + 403 8 -.7720683 -.8175995 + 403 9 -.3092144 .5331707 + 403 10 -1.18094 -.8751833 + 404 1 .5574738 1.012129 + 404 2 .9787374 2.795616 + 404 3 -.6734901 3.540449 + 404 4 1.24167 3.314948 + 404 5 .1352221 4.229395 + 404 6 .8817216 .6018347 + 404 7 -.9404455 -.6503668 + 404 8 1.34717 3.642462 + 404 9 -.3886456 .9426833 + 404 10 .2241393 4.824384 + 405 1 1.825318 -.1515077 + 405 2 2.115816 1.201826 + 405 3 .9304053 -.4817632 + 405 4 .1921156 -2.148475 + 405 5 .8255455 1.300841 + 405 6 .5831465 -1.725 + 405 7 .9376793 1.429005 + 405 8 1.55576 .4336303 + 405 9 .606691 -1.553775 + 405 10 .7915356 .5471672 + 406 1 .1949664 -1.609993 + 406 2 1.016778 2.132151 + 406 3 -.2586179 -1.115174 + 406 4 .1688379 .5940931 + 406 5 -.0040697 .4558524 + 406 6 .2493155 1.928022 + 406 7 .6937189 .3330708 + 406 8 .2827526 -.3635032 + 406 9 -.1027333 .4543974 + 406 10 1.589826 2.387834 + 407 1 -.7128226 -1.909525 + 407 2 -.2865859 -3.697958 + 407 3 .8992133 -1.598288 + 407 4 .0485923 -1.41454 + 407 5 -.8217157 -2.161766 + 407 6 -.5069422 .2655977 + 407 7 -.6864436 -1.997193 + 407 8 -.5299146 -.1487815 + 407 9 -.9854889 -3.505768 + 407 10 -.3828234 -2.071238 + 408 1 -.1031225 -.193574 + 408 2 -.3857403 2.465618 + 408 3 -.2060512 1.988495 + 408 4 -.2416199 1.48284 + 408 5 -.7164702 .9025726 + 408 6 .2646143 -.1305631 + 408 7 -1.027854 -3.130802 + 408 8 .3418452 -1.073651 + 408 9 -1.378198 -.6554665 + 408 10 -1.505273 -2.505978 + 409 1 .6187845 2.273488 + 409 2 1.275673 3.445526 + 409 3 .7887467 -.0290776 + 409 4 2.147919 3.447604 + 409 5 .6304201 4.496997 + 409 6 -.0092821 -3.239878 + 409 7 1.076677 3.398389 + 409 8 1.838847 .8533272 + 409 9 1.071178 1.863122 + 409 10 1.599813 3.012568 + 410 1 1.623485 3.023676 + 410 2 1.688435 4.342941 + 410 3 .9627274 -.8370011 + 410 4 .878053 .0911687 + 410 5 .6619849 .9105803 + 410 6 1.400549 1.941754 + 410 7 .0447184 .8805856 + 410 8 2.751527 2.383714 + 410 9 1.582199 3.265009 + 410 10 -.3083791 2.304447 + 411 1 .5157974 -2.422948 + 411 2 -.6832858 -.3687448 + 411 3 .6330415 -1.482227 + 411 4 1.594655 1.644737 + 411 5 2.229709 2.163126 + 411 6 .8013659 -.8816252 + 411 7 -.4055098 -.0280363 + 411 8 .5054734 .4837077 + 411 9 .9044289 1.635944 + 411 10 .2105808 1.142422 + 412 1 -.7347844 -3.902147 + 412 2 .0814267 .0670649 + 412 3 -.7462096 -2.404454 + 412 4 -.8561645 1.647258 + 412 5 -1.213475 -1.157459 + 412 6 -.2517644 -1.563273 + 412 7 -1.449893 .0672905 + 412 8 -1.213773 .0771902 + 412 9 -.9339671 -2.473112 + 412 10 1.743578 1.217293 + 413 1 -1.501508 -4.74582 + 413 2 -1.043551 -2.064824 + 413 3 .27646 -1.94369 + 413 4 .4618978 -.6562665 + 413 5 -.8354864 -2.916754 + 413 6 .3948614 -.3600055 + 413 7 -1.113149 -3.073426 + 413 8 -1.172547 -1.353321 + 413 9 -1.625494 -.8432627 + 413 10 -.3830567 -1.659044 + 414 1 2.070886 .7795202 + 414 2 .6195166 1.908721 + 414 3 1.034001 1.127271 + 414 4 .3176284 .7095832 + 414 5 .2653214 1.408377 + 414 6 1.118213 .5098971 + 414 7 .5788648 -1.134248 + 414 8 .9913274 2.486023 + 414 9 .3730953 -.0786542 + 414 10 -.0116555 -2.474389 + 415 1 -.3349656 -.0892018 + 415 2 .6066259 1.052264 + 415 3 -.2882415 .1731756 + 415 4 .7285664 2.057892 + 415 5 -.2154823 -2.178997 + 415 6 .8905088 .2365695 + 415 7 .1597038 2.225168 + 415 8 -.2642411 -.4768011 + 415 9 -.0173702 .8307357 + 415 10 -.0942339 -1.338356 + 416 1 -.5867347 -.5911654 + 416 2 .6581494 1.809741 + 416 3 -.5409455 .0445679 + 416 4 -.3837071 1.309709 + 416 5 .2574132 -.3206614 + 416 6 1.467135 .7045974 + 416 7 -.9820654 -2.447804 + 416 8 -.082296 .4758784 + 416 9 .516479 1.73012 + 416 10 .2833954 .7711113 + 417 1 2.441603 1.912426 + 417 2 .2111196 -.7762764 + 417 3 .1353235 .3823783 + 417 4 .0135145 1.943285 + 417 5 1.116857 1.943743 + 417 6 -.0099324 .2669403 + 417 7 .4448675 1.977202 + 417 8 1.159355 1.135729 + 417 9 2.071271 .6578733 + 417 10 .2560751 .8004469 + 418 1 -.3367818 1.970263 + 418 2 -.8470147 -3.019895 + 418 3 -.9560864 -5.519354 + 418 4 -1.073972 -1.947595 + 418 5 -2.082256 -1.646251 + 418 6 -.1829985 -1.573143 + 418 7 -1.049946 -4.261832 + 418 8 -.0466021 -.1050563 + 418 9 -1.370385 -2.745022 + 418 10 -.2428657 -2.183631 + 419 1 1.504079 3.464292 + 419 2 -1.259651 .1361358 + 419 3 -.1121893 1.367987 + 419 4 -1.05013 -.5596214 + 419 5 -1.317778 -1.253009 + 419 6 -.2690841 2.344856 + 419 7 .4263131 1.125889 + 419 8 .5164971 3.039961 + 419 9 -1.117693 .2860814 + 419 10 -.1778297 1.956031 + 420 1 -.6638264 -2.034836 + 420 2 1.281359 1.940011 + 420 3 -.0575579 2.458019 + 420 4 1.164482 -.9480169 + 420 5 .1465704 2.01344 + 420 6 .5810494 -1.547655 + 420 7 1.840428 4.892933 + 420 8 1.178746 1.100073 + 420 9 1.111845 .4014868 + 420 10 -.0388699 1.646489 + 421 1 .0070452 -.4972007 + 421 2 .0531656 -.1948821 + 421 3 .9443462 -1.806122 + 421 4 -.0126633 -1.927632 + 421 5 -.165668 -.8824214 + 421 6 1.406864 -.1935287 + 421 7 -.246475 1.319037 + 421 8 .4510905 2.951708 + 421 9 -.0552967 2.509493 + 421 10 .9734349 2.244194 + 422 1 -1.564715 -1.352146 + 422 2 .855391 3.443546 + 422 3 .1271437 -.6750422 + 422 4 .5520694 .5220137 + 422 5 -.5309771 -2.739075 + 422 6 -.2985711 -3.814489 + 422 7 .1602508 -.6443366 + 422 8 .2836008 -.3463539 + 422 9 .7023704 1.311289 + 422 10 .9814914 -.6798663 + 423 1 -.9494383 -3.152365 + 423 2 -.6546491 -3.878369 + 423 3 -.3864028 1.016228 + 423 4 .0122976 -.9310973 + 423 5 -.9387039 1.054112 + 423 6 -.5552303 -4.802896 + 423 7 -1.198291 -3.928394 + 423 8 .1043659 -1.540226 + 423 9 -1.274448 -2.711023 + 423 10 -.0798866 2.031069 + 424 1 1.734211 3.190301 + 424 2 .9767532 2.782577 + 424 3 1.193593 3.91996 + 424 4 .3344921 .0236341 + 424 5 1.919613 2.546419 + 424 6 1.578051 3.697517 + 424 7 1.40677 .8268937 + 424 8 2.15641 4.377097 + 424 9 .9412709 1.215672 + 424 10 .2309116 -.0190983 + 425 1 -.452094 1.854568 + 425 2 -1.00189 -2.553212 + 425 3 -.0130555 -.1134608 + 425 4 .1772467 -.0172197 + 425 5 .9496551 -.8119242 + 425 6 -1.10435 -.6266581 + 425 7 .5593736 -.147649 + 425 8 .1976095 1.299561 + 425 9 -.5017295 .4907691 + 425 10 .1245164 -.5356318 + 426 1 .9084791 3.488263 + 426 2 .3022215 1.593072 + 426 3 .3523518 3.560014 + 426 4 1.389558 4.391698 + 426 5 -.3045548 2.211039 + 426 6 1.504628 4.758518 + 426 7 -.3813789 .886306 + 426 8 -1.122167 .2882462 + 426 9 1.42917 4.359997 + 426 10 1.289825 3.711389 + 427 1 .9988312 2.404515 + 427 2 1.257572 2.406475 + 427 3 1.990186 1.645045 + 427 4 1.38881 -.0760527 + 427 5 .5176821 -.6175386 + 427 6 1.613265 .5432907 + 427 7 .2159253 -1.656765 + 427 8 2.480673 4.467958 + 427 9 1.579619 1.33492 + 427 10 1.015025 2.976076 + 428 1 .0494811 -5.017232 + 428 2 -.3149573 -4.798469 + 428 3 -2.115308 -4.840232 + 428 4 1.593306 -.5352834 + 428 5 -.079479 -5.039601 + 428 6 .3672556 -3.95359 + 428 7 -.5096328 -4.939913 + 428 8 -1.264978 -6.594603 + 428 9 -.4028769 -5.406234 + 428 10 -.6661755 -4.167671 + 429 1 -.1097099 .0199443 + 429 2 -.7167571 -.1464609 + 429 3 -.0509188 -2.301697 + 429 4 .8798097 -.8627442 + 429 5 -.4581181 -1.542627 + 429 6 -.6673009 -.5231506 + 429 7 -.4488439 -.341106 + 429 8 -1.493959 -1.550375 + 429 9 .7072334 -.896534 + 429 10 -.5766434 -.1429675 + 430 1 .6044408 -1.2024 + 430 2 -.46694 -2.311639 + 430 3 1.665778 -.3730754 + 430 4 -.1317859 -2.08054 + 430 5 -.2766372 -1.635686 + 430 6 -1.102014 -.1918309 + 430 7 -.5368614 -.5182484 + 430 8 .6285307 -2.221296 + 430 9 .0195935 -.8501439 + 430 10 .3593442 -.7892064 + 431 1 -.2574317 -.4560567 + 431 2 .0975656 -1.356327 + 431 3 .2632216 -1.919121 + 431 4 .2765998 .4748544 + 431 5 .4300176 -.4813799 + 431 6 .4923273 1.291828 + 431 7 1.003912 .5043193 + 431 8 .8404063 -2.568706 + 431 9 .6355165 -2.630508 + 431 10 2.006631 2.400579 + 432 1 -1.143222 -2.350887 + 432 2 -1.826607 1.516606 + 432 3 -1.062554 -.1034092 + 432 4 -.725263 .8435242 + 432 5 .0565487 2.580381 + 432 6 .1901658 -1.081234 + 432 7 .5491037 1.5596 + 432 8 -1.826998 -1.889271 + 432 9 -.673655 -1.248513 + 432 10 -.4593998 1.240963 + 433 1 .1691684 1.218385 + 433 2 -1.91807 -2.949035 + 433 3 .0081709 -1.415665 + 433 4 -.7260606 .5953585 + 433 5 .5105734 3.575824 + 433 6 -.1437019 -.5755485 + 433 7 .4840844 -.1388436 + 433 8 .3926634 1.912847 + 433 9 -.8762536 -1.290947 + 433 10 -.412704 -1.901707 + 434 1 -2.25279 -5.273857 + 434 2 -1.714723 -5.482409 + 434 3 -.8295858 -3.188483 + 434 4 -2.444655 -7.843253 + 434 5 -.7853277 -2.476118 + 434 6 -2.068517 -2.093982 + 434 7 -2.585114 -4.634119 + 434 8 -.919925 -3.396191 + 434 9 .1633523 -1.44048 + 434 10 -1.613323 -5.179605 + 435 1 -1.602668 -.3203701 + 435 2 .5510446 2.277113 + 435 3 .2731864 -1.103835 + 435 4 .8420033 .5257187 + 435 5 .2451231 .2521747 + 435 6 .0986502 1.777096 + 435 7 .7048341 .9748376 + 435 8 -.0268416 -2.522256 + 435 9 .3603241 -1.941055 + 435 10 -.8263332 -1.256569 + 436 1 -.3601574 -2.312183 + 436 2 -.0717983 -.9491949 + 436 3 -.1674869 -2.542461 + 436 4 .9953864 1.041109 + 436 5 -.3301154 1.796981 + 436 6 -.3035614 -3.096237 + 436 7 1.034271 -2.583395 + 436 8 -.2270305 -.1086363 + 436 9 -.3944024 1.621027 + 436 10 1.868106 1.602469 + 437 1 1.327535 .1598556 + 437 2 .2767647 -.6695495 + 437 3 .1117265 -1.395034 + 437 4 -.3764054 1.158429 + 437 5 -.7836369 -1.759002 + 437 6 .68331 1.411001 + 437 7 .261591 1.87514 + 437 8 -.3326955 -.306918 + 437 9 -.6381776 -.8331632 + 437 10 -.2460251 -2.582434 + 438 1 -.2560682 .2037976 + 438 2 1.269286 1.72191 + 438 3 .2706043 .100284 + 438 4 -.4085233 -2.304594 + 438 5 .2756313 2.221198 + 438 6 1.155215 2.067843 + 438 7 2.662324 2.508456 + 438 8 3.381401 3.951496 + 438 9 .9376914 1.198312 + 438 10 -.2386081 1.603678 + 439 1 1.375761 5.207918 + 439 2 .4423097 2.387374 + 439 3 .5830641 3.637509 + 439 4 -.1641637 3.91785 + 439 5 -1.459138 -.8339624 + 439 6 .5626828 4.342764 + 439 7 .1730993 3.74051 + 439 8 -.6648005 .9761756 + 439 9 -1.03572 1.340201 + 439 10 -.5610915 2.339057 + 440 1 1.282473 -3.473607 + 440 2 1.78932 -1.250972 + 440 3 1.533081 -2.761228 + 440 4 -.3913983 -2.38858 + 440 5 1.316373 -1.886167 + 440 6 2.838928 .070364 + 440 7 .3778873 -1.505551 + 440 8 2.66299 .8551965 + 440 9 .0422313 -2.602297 + 440 10 1.199256 -3.342403 + 441 1 1.925085 5.810988 + 441 2 1.329674 3.862953 + 441 3 1.590699 4.223527 + 441 4 1.809034 5.038814 + 441 5 .5276424 3.36681 + 441 6 .6710454 1.176385 + 441 7 .7777985 3.40734 + 441 8 1.906092 4.701039 + 441 9 1.923245 2.828849 + 441 10 1.592659 3.908236 + 442 1 .1823671 .5516407 + 442 2 -.1504644 -1.554295 + 442 3 -.8163794 -.409709 + 442 4 -.6780152 -.8284285 + 442 5 -1.7705 -2.104317 + 442 6 -.8156215 -.937685 + 442 7 -.994137 -2.063158 + 442 8 -2.270714 -4.573486 + 442 9 -1.026439 -1.177351 + 442 10 -.2501065 .1504591 + 443 1 .5740207 3.466416 + 443 2 1.058301 3.197285 + 443 3 .8104317 4.012905 + 443 4 .6862648 2.83182 + 443 5 .0341383 .7353115 + 443 6 .9138442 2.327193 + 443 7 .260097 1.348206 + 443 8 1.581338 4.514749 + 443 9 1.354229 .5353475 + 443 10 .9457233 4.026806 + 444 1 -.0077119 -3.190456 + 444 2 .0551145 -3.596902 + 444 3 1.020954 -.9419343 + 444 4 -.1434664 -3.170668 + 444 5 .7838643 -2.616662 + 444 6 .8149613 -5.569409 + 444 7 .5583765 -3.398926 + 444 8 .6079774 -3.331208 + 444 9 1.072682 -2.293409 + 444 10 -1.635865 -7.046462 + 445 1 1.294 -.064443 + 445 2 1.284704 1.292138 + 445 3 .8113809 .3704103 + 445 4 .0360593 .8059724 + 445 5 .3459978 .557832 + 445 6 .6842941 -1.061024 + 445 7 .768517 -1.606793 + 445 8 -.5137277 -1.193248 + 445 9 .6777138 -.4126529 + 445 10 -.1743898 -.5636351 + 446 1 -.2833169 -.4881735 + 446 2 1.232053 -.2779263 + 446 3 -1.578528 -1.89766 + 446 4 -.1701858 -1.427808 + 446 5 -.0878887 .2325244 + 446 6 .8466319 -.1734368 + 446 7 .5339299 -1.550349 + 446 8 .0069559 -.9014176 + 446 9 -.0850843 -.7973491 + 446 10 .0445299 1.677193 + 447 1 1.244462 -.2813219 + 447 2 .7706342 -.3274696 + 447 3 2.029404 -.7262349 + 447 4 1.093884 1.307541 + 447 5 -.0262879 -1.096675 + 447 6 1.018307 -.6573641 + 447 7 1.464599 1.671719 + 447 8 -.2191465 -1.483904 + 447 9 .0961823 -1.197459 + 447 10 1.576548 2.67785 + 448 1 -.7819886 -.5758462 + 448 2 -.1067826 -.9289398 + 448 3 1.09466 .6674385 + 448 4 -.8513584 -1.943838 + 448 5 -.1103761 -.4954867 + 448 6 -1.170346 .0634899 + 448 7 -1.281976 -4.537732 + 448 8 -1.048875 -1.623256 + 448 9 -.7202869 -1.981802 + 448 10 -1.356103 -2.70335 + 449 1 .780911 -.8005388 + 449 2 -.3212849 .5306858 + 449 3 .7742513 -.8227566 + 449 4 -.8894921 -.7125913 + 449 5 1.256309 1.854548 + 449 6 .4138374 -.2414136 + 449 7 -.0938981 2.351233 + 449 8 -1.3708 -.9259219 + 449 9 1.685384 -.3649867 + 449 10 1.621749 .9699164 + 450 1 -.693516 -1.395638 + 450 2 -1.16671 -2.645705 + 450 3 -.4434176 -4.058168 + 450 4 -2.328338 -6.661051 + 450 5 -2.287679 -2.384988 + 450 6 -1.097368 -3.720875 + 450 7 -1.936696 -2.576731 + 450 8 -.9807376 -4.31207 + 450 9 -2.166593 -6.168357 + 450 10 -.2307579 -2.907965 + 451 1 -.6445392 -1.344205 + 451 2 -1.185327 -.240715 + 451 3 .4016508 .6638312 + 451 4 -1.111103 -3.300896 + 451 5 -.9722462 -2.589497 + 451 6 .19608 -1.881335 + 451 7 .1152492 .088235 + 451 8 -.6359737 -2.156315 + 451 9 -.1342334 -2.330736 + 451 10 -.271674 .0603456 + 452 1 -.0606828 -.4446095 + 452 2 -.2505071 1.17738 + 452 3 -2.009021 -4.732916 + 452 4 -.1586868 -.6050504 + 452 5 -.6575706 -5.216979 + 452 6 .6953923 -.1194488 + 452 7 -.616479 -2.37141 + 452 8 -.7711889 -1.697133 + 452 9 -.2623308 -1.809036 + 452 10 .7965435 1.563352 + 453 1 -.3477908 -2.752378 + 453 2 .0814351 3.049219 + 453 3 1.078618 1.588751 + 453 4 .0581523 2.430225 + 453 5 1.440285 2.670775 + 453 6 -.9359018 -1.712218 + 453 7 .5436273 .658848 + 453 8 .3586571 2.437746 + 453 9 .3691075 -.3180394 + 453 10 -2.556064 -1.133035 + 454 1 -.8103027 .3313543 + 454 2 -1.526003 -4.266233 + 454 3 .0666736 1.97239 + 454 4 -.055649 .2919683 + 454 5 -.0116252 3.362326 + 454 6 -1.829207 .0529239 + 454 7 -.6722212 .6972919 + 454 8 -1.274012 -1.837079 + 454 9 -.5955167 -1.465482 + 454 10 -1.887076 1.137399 + 455 1 -.0598448 3.506877 + 455 2 .142093 1.916299 + 455 3 .8764141 3.749248 + 455 4 -.4978266 4.199536 + 455 5 -.4744421 1.218119 + 455 6 -.6240288 .9545363 + 455 7 -.7144527 3.419988 + 455 8 .1262228 3.244722 + 455 9 -.7108215 2.089641 + 455 10 -.396209 3.293334 + 456 1 .9931827 2.304585 + 456 2 .123794 -.9702383 + 456 3 -.5935802 1.450896 + 456 4 1.265399 1.196209 + 456 5 .1758724 1.623233 + 456 6 .2514593 1.422258 + 456 7 -1.731871 .4759974 + 456 8 -.6493905 -1.514841 + 456 9 .7120224 .7888171 + 456 10 -.6218277 -1.423006 + 457 1 -.9329444 -5.133676 + 457 2 -1.246644 -2.461416 + 457 3 .6488222 .4049606 + 457 4 .6832745 .7808949 + 457 5 -.0414484 -.7884268 + 457 6 .5644282 -1.641498 + 457 7 -.667787 -1.459372 + 457 8 .0435556 -.7535673 + 457 9 -1.200322 -.745594 + 457 10 -1.402349 -2.732503 + 458 1 .2586697 2.572212 + 458 2 -.361248 .2838089 + 458 3 .1426998 .7478423 + 458 4 -.6113911 3.262412 + 458 5 -.5117323 1.423192 + 458 6 -.9612436 -1.444049 + 458 7 -1.240537 1.093298 + 458 8 -1.001768 -.8175362 + 458 9 -1.749746 .5150104 + 458 10 -.8183131 -1.089437 + 459 1 .3869868 2.790486 + 459 2 .3286066 1.073783 + 459 3 1.656495 3.236034 + 459 4 .4831998 -1.772237 + 459 5 1.311491 3.081719 + 459 6 1.792279 -.8372608 + 459 7 .0407104 2.480815 + 459 8 1.134679 1.348804 + 459 9 1.422543 1.31334 + 459 10 1.188388 1.895708 + 460 1 -1.229831 -1.166649 + 460 2 .6547959 .4537871 + 460 3 -.1163394 .9092483 + 460 4 -.5163766 -4.690589 + 460 5 -2.061277 -4.870557 + 460 6 -1.041617 -3.246004 + 460 7 -.111656 -.8974286 + 460 8 -.7606674 -2.502137 + 460 9 -.8800873 -1.560514 + 460 10 -.6357743 -1.614715 + 461 1 -.0499422 2.459471 + 461 2 .17933 1.509496 + 461 3 1.524792 2.125407 + 461 4 -.2203395 -.1164641 + 461 5 -.3552831 -.9144968 + 461 6 -.0508331 -2.194261 + 461 7 .2583371 1.118912 + 461 8 .2129896 1.456533 + 461 9 .8697835 2.407538 + 461 10 .4496496 2.566832 + 462 1 .5778555 3.260968 + 462 2 .4640873 2.2194 + 462 3 1.727386 3.19534 + 462 4 .0328359 -1.682171 + 462 5 .0395433 .5094826 + 462 6 1.442306 -.1992525 + 462 7 -1.34632 -1.137385 + 462 8 .3472636 2.206575 + 462 9 -.6062221 .3116289 + 462 10 -1.02959 -2.460936 + 463 1 .488069 -.7719045 + 463 2 .224513 -1.405883 + 463 3 .1750936 -1.784459 + 463 4 .3459969 -.5111983 + 463 5 .3186721 -3.012005 + 463 6 -.1321543 -.2595133 + 463 7 .1442679 -1.985698 + 463 8 -.4785298 -3.262681 + 463 9 .8978547 .1589466 + 463 10 .5041783 -2.354146 + 464 1 .0524563 -.5099359 + 464 2 .5518264 -3.141937 + 464 3 2.714243 -1.228808 + 464 4 .5947378 -2.498291 + 464 5 .5415964 -3.398087 + 464 6 .8429409 -.2869278 + 464 7 .5579789 -3.039368 + 464 8 .6621224 -1.608326 + 464 9 .3403133 -3.328768 + 464 10 .4478637 -1.983862 + 465 1 .4344409 1.049089 + 465 2 .7611457 2.389434 + 465 3 .2632526 1.911364 + 465 4 1.468508 3.856431 + 465 5 -.5624062 -1.305477 + 465 6 1.127899 -.5023427 + 465 7 .4563978 -1.533073 + 465 8 .5899177 -.8203129 + 465 9 -.0405417 -1.036197 + 465 10 .7460121 -.2847904 + 466 1 .136169 .977666 + 466 2 .5972466 2.337216 + 466 3 -.5282793 -.6254815 + 466 4 .4311492 1.965056 + 466 5 .6669644 1.962815 + 466 6 .4404365 .1458644 + 466 7 .7783122 2.033966 + 466 8 .8098732 3.23798 + 466 9 .643719 -2.343687 + 466 10 1.059358 .5682003 + 467 1 1.396002 -2.037745 + 467 2 .6284592 -2.935527 + 467 3 .4000702 -2.141178 + 467 4 .584424 2.015122 + 467 5 .8012309 .1664379 + 467 6 -.12486 -2.694419 + 467 7 .9658216 -.1455323 + 467 8 .3274135 -2.528351 + 467 9 .0658425 .5189533 + 467 10 .6707103 -.1007586 + 468 1 .4937788 1.56737 + 468 2 .9928804 .1273928 + 468 3 .4423388 .535194 + 468 4 .495714 3.650008 + 468 5 1.273688 .1751573 + 468 6 .8958566 1.338358 + 468 7 .0961002 .0397323 + 468 8 2.263992 3.147342 + 468 9 .9674364 3.31263 + 468 10 .2563647 .7152029 + 469 1 .4216019 -.9407744 + 469 2 1.399263 -.5063294 + 469 3 -.0216054 .2178457 + 469 4 1.286045 .357494 + 469 5 .2619539 .1975994 + 469 6 1.884525 2.94722 + 469 7 1.168823 1.122076 + 469 8 .2115647 2.62381 + 469 9 .8546471 -1.653274 + 469 10 1.67261 1.649941 + 470 1 .5186357 -.7605744 + 470 2 -.6896887 -1.465926 + 470 3 .0542658 -1.21581 + 470 4 .0859867 -3.171865 + 470 5 -.2643983 -3.317875 + 470 6 .6272839 -.1626671 + 470 7 -.5159931 -2.493808 + 470 8 .3323292 -.804706 + 470 9 .5171393 2.497954 + 470 10 -.0638637 1.206197 + 471 1 .3220632 -1.324873 + 471 2 .980136 -1.504795 + 471 3 -.2532462 .1325734 + 471 4 .789984 -.8727639 + 471 5 1.436864 -3.147545 + 471 6 .5097044 -2.220442 + 471 7 .397614 -4.214648 + 471 8 .7564544 -2.607033 + 471 9 1.205068 -2.099972 + 471 10 1.924057 -2.330542 + 472 1 .7246941 1.597339 + 472 2 .5040356 2.32045 + 472 3 .5763428 2.216267 + 472 4 .0542709 3.422224 + 472 5 .8965965 2.372284 + 472 6 .2464421 .6423162 + 472 7 -.2741039 2.762528 + 472 8 1.142397 -.2501601 + 472 9 .4665295 .5884876 + 472 10 .5374241 3.34522 + 473 1 1.169988 2.36799 + 473 2 1.191892 2.70429 + 473 3 1.4945 3.138014 + 473 4 1.950034 4.462552 + 473 5 1.642218 3.248163 + 473 6 .9450042 2.222471 + 473 7 1.335385 -.0375831 + 473 8 .2492417 .4934994 + 473 9 1.882432 .8426313 + 473 10 1.506808 -.4519488 + 474 1 -.5708832 .2838852 + 474 2 .9818603 2.081658 + 474 3 .2790271 -.2540119 + 474 4 -.8444172 1.594845 + 474 5 -.286851 1.965796 + 474 6 -.8794868 .3319204 + 474 7 -.2043926 -.9133918 + 474 8 -.2688162 1.008824 + 474 9 -.3477406 3.226343 + 474 10 -.4433938 2.153789 + 475 1 .4245591 2.086255 + 475 2 -.4946041 -2.272095 + 475 3 -.2148269 .1008767 + 475 4 1.5057 3.141412 + 475 5 -.6277946 3.416986 + 475 6 2.119659 5.119712 + 475 7 -.146392 .0241062 + 475 8 .109479 -2.105205 + 475 9 1.649779 1.842312 + 475 10 .8330554 4.217445 + 476 1 .8717216 -.4967655 + 476 2 -.7454231 -3.057722 + 476 3 -.190138 -1.588644 + 476 4 -.2772791 -2.270676 + 476 5 -.2373092 -.6012625 + 476 6 -.7202951 -5.522466 + 476 7 -.8588698 -3.385403 + 476 8 .6135204 -.4711897 + 476 9 1.782739 -.4309441 + 476 10 -.1573513 -.0163591 + 477 1 .4824667 -.5281268 + 477 2 -.4994904 -1.849527 + 477 3 -1.253004 -2.45171 + 477 4 -.1263799 -4.134973 + 477 5 .5460196 -2.088633 + 477 6 .6968823 1.236504 + 477 7 .049839 -.0807042 + 477 8 1.45288 -.2804415 + 477 9 -.7240943 -3.515354 + 477 10 -.6819166 -2.274659 + 478 1 -.0679487 -1.836647 + 478 2 -1.277281 -1.277995 + 478 3 .8854836 1.217588 + 478 4 1.142317 .8378381 + 478 5 -.0131482 1.197186 + 478 6 -.7658634 -2.617491 + 478 7 .148683 .2176631 + 478 8 .3748206 -.5013412 + 478 9 .1877059 .1772054 + 478 10 .2491001 1.456882 + 479 1 .7738475 3.145003 + 479 2 .6115706 2.455661 + 479 3 .588763 3.586291 + 479 4 1.633834 3.726554 + 479 5 .3517998 2.226039 + 479 6 .868722 .5614613 + 479 7 .8200638 3.87775 + 479 8 .5428685 5.872612 + 479 9 -.8444331 .0843651 + 479 10 .3245695 4.399031 + 480 1 .166501 .9544092 + 480 2 -.6757479 1.753986 + 480 3 .4999409 3.679324 + 480 4 .5148152 1.93232 + 480 5 -.4049782 2.147339 + 480 6 -.137938 4.961839 + 480 7 .1876394 3.211929 + 480 8 .2411677 3.936345 + 480 9 .3541164 .8783491 + 480 10 -.1067768 3.799003 + 481 1 .5493166 3.494118 + 481 2 .5567415 .1307616 + 481 3 1.46569 2.295378 + 481 4 -.1607851 3.854419 + 481 5 .4098502 -.0869326 + 481 6 .3846918 .0455931 + 481 7 1.408218 4.952337 + 481 8 2.327258 1.458939 + 481 9 -.0942937 .4176691 + 481 10 .4363301 .8105946 + 482 1 .3074039 .6770884 + 482 2 .3678102 1.460825 + 482 3 -.8588473 -2.209955 + 482 4 -.3470667 -.058466 + 482 5 -.1442455 1.604633 + 482 6 -.4972656 -3.388484 + 482 7 -.607422 .4479947 + 482 8 -.9446015 .4514995 + 482 9 -.4530154 -3.527195 + 482 10 1.021734 -.1244987 + 483 1 -.0797235 .0254365 + 483 2 -1.657584 -2.414463 + 483 3 -.8564492 -1.028192 + 483 4 -.500339 -1.456119 + 483 5 -.8034439 -.7944966 + 483 6 -.929258 -2.818038 + 483 7 -.4921236 -.1182517 + 483 8 .9209039 .4624628 + 483 9 -2.080961 -2.129794 + 483 10 -.3358073 1.0534 + 484 1 1.591278 .6412288 + 484 2 .0003292 -2.573144 + 484 3 .1979216 -2.765766 + 484 4 -1.154586 -4.460439 + 484 5 -.5963323 -4.58525 + 484 6 1.672208 -.8683722 + 484 7 .6096804 -1.083266 + 484 8 -.1995927 -4.212424 + 484 9 .5801918 -2.690674 + 484 10 -.2285596 -1.897893 + 485 1 .0956469 -1.647338 + 485 2 -.0137822 1.080993 + 485 3 .8946502 2.027608 + 485 4 .0030466 2.407066 + 485 5 .8315565 .6967988 + 485 6 1.290427 4.301954 + 485 7 1.43779 .9460621 + 485 8 .2753742 2.340688 + 485 9 1.474161 .8764277 + 485 10 1.168334 2.848818 + 486 1 1.027399 2.588399 + 486 2 -.8029219 .7516522 + 486 3 .2533042 -.8283246 + 486 4 1.622947 3.75266 + 486 5 .3706092 -1.075958 + 486 6 .3470429 1.35381 + 486 7 .5182595 -.1841006 + 486 8 -.740574 -3.085339 + 486 9 -.0812146 -1.735127 + 486 10 .6457015 -.0100923 + 487 1 .89122 1.412509 + 487 2 -1.84795 -.6476804 + 487 3 -.9021395 -2.224344 + 487 4 .5426308 1.774932 + 487 5 -.4847171 1.361784 + 487 6 -.0855673 1.081277 + 487 7 -.9899008 -2.193656 + 487 8 -.4255385 -.5890685 + 487 9 .3820588 -1.286968 + 487 10 -1.296298 .0667292 + 488 1 .2395263 2.521157 + 488 2 .7232313 1.397135 + 488 3 .4470927 1.280583 + 488 4 .9180733 1.271599 + 488 5 .5514744 1.609707 + 488 6 1.928102 3.000073 + 488 7 2.240527 4.362073 + 488 8 1.06263 3.274819 + 488 9 1.113751 3.341811 + 488 10 2.536921 6.199859 + 489 1 -1.244924 .8086164 + 489 2 -2.014045 -2.288778 + 489 3 -.8442704 .2294647 + 489 4 -.5785966 -.0995551 + 489 5 -1.295853 -.518943 + 489 6 -.6477054 3.604867 + 489 7 -1.696128 -2.867242 + 489 8 -1.694158 -1.025143 + 489 9 -.5246676 2.219172 + 489 10 -.4771005 1.593935 + 490 1 -.7328269 -3.162478 + 490 2 -.0978976 .3551829 + 490 3 -.3325543 -.9752662 + 490 4 -.3897143 -5.409183 + 490 5 -.8496802 -3.592917 + 490 6 -.465873 -2.653398 + 490 7 -.6389433 .0091672 + 490 8 -1.842746 -3.761688 + 490 9 -.1576391 1.379471 + 490 10 -.6932973 -1.587387 + 491 1 1.230693 .2579845 + 491 2 1.285313 -.7795343 + 491 3 -1.046274 -.6544493 + 491 4 1.578548 -.7443537 + 491 5 -.8614488 -3.28026 + 491 6 -.1985457 .2745566 + 491 7 -.220863 -4.05599 + 491 8 -.3689895 -3.607911 + 491 9 .6715914 -.8901137 + 491 10 -.3837904 -.8730828 + 492 1 -1.265203 -2.693516 + 492 2 -.090899 -2.574813 + 492 3 .365869 .5228035 + 492 4 .9955097 2.206074 + 492 5 -.2145209 -1.546479 + 492 6 -.4808803 -1.77461 + 492 7 .1577232 -4.379991 + 492 8 .5359161 -1.971655 + 492 9 -.0629176 -4.664596 + 492 10 .0313729 -3.542443 + 493 1 1.176209 1.683713 + 493 2 .4259985 .4057804 + 493 3 1.688201 1.34762 + 493 4 1.151781 .1564157 + 493 5 .7126628 1.882809 + 493 6 1.629853 2.895485 + 493 7 2.041654 .3342512 + 493 8 1.689575 2.312145 + 493 9 .6031001 1.620347 + 493 10 1.452902 1.639806 + 494 1 -.9676991 1.268667 + 494 2 -1.197123 .8748823 + 494 3 -.499871 -.1199364 + 494 4 -2.141563 -1.281559 + 494 5 -.8741325 .0143381 + 494 6 -2.688715 -3.103278 + 494 7 -2.769295 -2.587314 + 494 8 -1.641987 -1.756963 + 494 9 -.7681715 -.0675087 + 494 10 -1.004753 -2.870488 + 495 1 1.061946 -2.286191 + 495 2 .662551 1.002858 + 495 3 .7356764 -.9382895 + 495 4 .4808448 -.9514114 + 495 5 -.4979812 -2.734997 + 495 6 .1116666 -2.587744 + 495 7 .3269557 .2426851 + 495 8 -.5952946 -.5938548 + 495 9 .5258829 -.6029328 + 495 10 1.010255 -1.421944 + 496 1 .6730576 2.727849 + 496 2 -.2441198 1.543326 + 496 3 .1370337 .57209 + 496 4 -.199497 -.1395658 + 496 5 .7715949 1.635498 + 496 6 .3294 -.2948219 + 496 7 .0998959 3.023627 + 496 8 .3704027 -.077176 + 496 9 .9055668 3.390342 + 496 10 1.861465 4.300356 + 497 1 -.0766302 -3.207384 + 497 2 1.237136 -1.309461 + 497 3 .8495774 -.5833904 + 497 4 .7453023 -1.402915 + 497 5 -.1027304 -2.13673 + 497 6 1.353729 -.9737407 + 497 7 -.1096489 -4.067335 + 497 8 .4109711 -2.308214 + 497 9 .4152246 -2.882645 + 497 10 -.1817578 -2.292598 + 498 1 .9373128 2.435911 + 498 2 -.4335596 .1373739 + 498 3 1.249027 -.7368234 + 498 4 .5366198 .5909308 + 498 5 2.481492 7.002803 + 498 6 1.458367 2.051867 + 498 7 1.26713 2.335333 + 498 8 1.979471 4.10223 + 498 9 1.466995 4.206719 + 498 10 .9814652 1.769253 + 499 1 .5154107 -1.192308 + 499 2 -.0823599 .4922651 + 499 3 .4505591 -1.388515 + 499 4 .3475047 .7941831 + 499 5 -.7609926 -1.08425 + 499 6 -.8916075 -3.299844 + 499 7 -.6039193 -2.204624 + 499 8 .7171692 1.272819 + 499 9 .4266107 -2.184453 + 499 10 .6624547 -1.470384 + 500 1 .0283524 1.502491 + 500 2 -.5271088 -.5950647 + 500 3 -.4184161 2.122376 + 500 4 1.557888 .6030506 + 500 5 -.1874991 -.8182437 + 500 6 -.077057 3.720502 + 500 7 .2188469 .5591205 + 500 8 -.15553 -3.766785 + 500 9 -.0401722 .9033538 + 500 10 -.0011715 -.5297611 diff --git a/statsmodels/stats/tests/test_descriptivestats.py b/statsmodels/stats/tests/test_descriptivestats.py new file mode 100644 index 0000000..0fb8438 --- /dev/null +++ b/statsmodels/stats/tests/test_descriptivestats.py @@ -0,0 +1,11 @@ +from statsmodels.stats.descriptivestats import sign_test +from numpy.testing import assert_almost_equal, assert_equal + +def test_sign_test(): + x = [7.8, 6.6, 6.5, 7.4, 7.3, 7., 6.4, 7.1, 6.7, 7.6, 6.8] + M, p = sign_test(x, mu0=6.5) + # from R SIGN.test(x, md=6.5) + # from R + assert_almost_equal(p, 0.02148, 5) + # not from R, we use a different convention + assert_equal(M, 4) diff --git a/statsmodels/stats/tests/test_diagnostic.py b/statsmodels/stats/tests/test_diagnostic.py new file mode 100644 index 0000000..651eb75 --- /dev/null +++ b/statsmodels/stats/tests/test_diagnostic.py @@ -0,0 +1,952 @@ +# -*- coding: utf-8 -*- +"""Tests for Regression Diagnostics and Specification Tests + +Created on Thu Feb 09 13:19:47 2012 + +Author: Josef Perktold +License: BSD-3 + +currently all tests are against R + +""" +#import warnings +#warnings.simplefilter("default") +# ResourceWarning doesn't exist in python 2 +#warnings.simplefilter("ignore", ResourceWarning) +import os + +import numpy as np + +from numpy.testing import (assert_, assert_almost_equal, assert_equal, + assert_approx_equal, assert_allclose) +from nose import SkipTest + +from statsmodels.regression.linear_model import OLS, GLSAR +from statsmodels.tools.tools import add_constant +from statsmodels.datasets import macrodata + +import statsmodels.stats.sandwich_covariance as sw +import statsmodels.stats.diagnostic as smsdia +import json + +#import statsmodels.sandbox.stats.diagnostic as smsdia +import statsmodels.stats.outliers_influence as oi + +cur_dir = os.path.abspath(os.path.dirname(__file__)) + +def compare_t_est(sp, sp_dict, decimal=(14, 14)): + assert_almost_equal(sp[0], sp_dict['statistic'], decimal=decimal[0]) + assert_almost_equal(sp[1], sp_dict['pvalue'], decimal=decimal[1]) + + +def notyet_atst(): + d = macrodata.load().data + + realinv = d['realinv'] + realgdp = d['realgdp'] + realint = d['realint'] + endog = realinv + exog = add_constant(np.c_[realgdp, realint]) + res_ols1 = OLS(endog, exog).fit() + + #growth rates + gs_l_realinv = 400 * np.diff(np.log(d['realinv'])) + gs_l_realgdp = 400 * np.diff(np.log(d['realgdp'])) + lint = d['realint'][:-1] + tbilrate = d['tbilrate'][:-1] + + endogg = gs_l_realinv + exogg = add_constant(np.c_[gs_l_realgdp, lint]) + exogg2 = add_constant(np.c_[gs_l_realgdp, tbilrate]) + + res_ols = OLS(endogg, exogg).fit() + res_ols2 = OLS(endogg, exogg2).fit() + + #the following were done accidentally with res_ols1 in R, + #with original Greene data + + params = np.array([-272.3986041341653, 0.1779455206941112, + 0.2149432424658157]) + cov_hac_4 = np.array([1321.569466333051, -0.2318836566017612, + 37.01280466875694, -0.2318836566017614, 4.602339488102263e-05, + -0.0104687835998635, 37.012804668757, -0.0104687835998635, + 21.16037144168061]).reshape(3,3, order='F') + cov_hac_10 = np.array([2027.356101193361, -0.3507514463299015, + 54.81079621448568, -0.350751446329901, 6.953380432635583e-05, + -0.01268990195095196, 54.81079621448564, -0.01268990195095195, + 22.92512402151113]).reshape(3,3, order='F') + + #goldfeld-quandt + het_gq_greater = dict(statistic=13.20512768685082, df1=99, df2=98, + pvalue=1.246141976112324e-30, distr='f') + het_gq_less = dict(statistic=13.20512768685082, df1=99, df2=98, pvalue=1.) + het_gq_2sided = dict(statistic=13.20512768685082, df1=99, df2=98, + pvalue=1.246141976112324e-30, distr='f') + + #goldfeld-quandt, fraction = 0.5 + het_gq_greater_2 = dict(statistic=87.1328934692124, df1=48, df2=47, + pvalue=2.154956842194898e-33, distr='f') + + gq = smsdia.het_goldfeldquandt(endog, exog, split=0.5) + compare_t_est(gq, het_gq_greater, decimal=(13, 14)) + assert_equal(gq[-1], 'increasing') + + + harvey_collier = dict(stat=2.28042114041313, df=199, + pvalue=0.02364236161988260, distr='t') + #hc = harvtest(fm, order.by=ggdp , data = list()) + harvey_collier_2 = dict(stat=0.7516918462158783, df=199, + pvalue=0.4531244858006127, distr='t') + + + + ################################## + + + +class TestDiagnosticG(object): + + def __init__(self): + d = macrodata.load().data + #growth rates + gs_l_realinv = 400 * np.diff(np.log(d['realinv'])) + gs_l_realgdp = 400 * np.diff(np.log(d['realgdp'])) + lint = d['realint'][:-1] + tbilrate = d['tbilrate'][:-1] + + endogg = gs_l_realinv + exogg = add_constant(np.c_[gs_l_realgdp, lint]) + exogg2 = add_constant(np.c_[gs_l_realgdp, tbilrate]) + exogg3 = add_constant(np.c_[gs_l_realgdp]) + + res_ols = OLS(endogg, exogg).fit() + res_ols2 = OLS(endogg, exogg2).fit() + + res_ols3 = OLS(endogg, exogg3).fit() + + self.res = res_ols + self.res2 = res_ols2 + self.res3 = res_ols3 + self.endog = self.res.model.endog + self.exog = self.res.model.exog + + def test_basic(self): + #mainly to check I got the right regression + #> mkarray(fm$coefficients, "params") + params = np.array([-9.48167277465485, 4.3742216647032, + -0.613996969478989]) + + assert_almost_equal(self.res.params, params, decimal=12) + + def test_hac(self): + res = self.res + #> nw = NeweyWest(fm, lag = 4, prewhite = FALSE, verbose=TRUE) + #> nw2 = NeweyWest(fm, lag=10, prewhite = FALSE, verbose=TRUE) + + #> mkarray(nw, "cov_hac_4") + cov_hac_4 = np.array([1.385551290884014, -0.3133096102522685, + -0.0597207976835705, -0.3133096102522685, 0.1081011690351306, + 0.000389440793564336, -0.0597207976835705, 0.000389440793564339, + 0.0862118527405036]).reshape(3,3, order='F') + + #> mkarray(nw2, "cov_hac_10") + cov_hac_10 = np.array([1.257386180080192, -0.2871560199899846, + -0.03958300024627573, -0.2871560199899845, 0.1049107028987101, + 0.0003896205316866944, -0.03958300024627578, 0.0003896205316866961, + 0.0985539340694839]).reshape(3,3, order='F') + + cov = sw.cov_hac_simple(res, nlags=4, use_correction=False) + bse_hac = sw.se_cov(cov) + assert_almost_equal(cov, cov_hac_4, decimal=14) + assert_almost_equal(bse_hac, np.sqrt(np.diag(cov)), decimal=14) + + cov = sw.cov_hac_simple(res, nlags=10, use_correction=False) + bse_hac = sw.se_cov(cov) + assert_almost_equal(cov, cov_hac_10, decimal=14) + assert_almost_equal(bse_hac, np.sqrt(np.diag(cov)), decimal=14) + + + def test_het_goldfeldquandt(self): + #TODO: test options missing + + #> gq = gqtest(fm, alternative='greater') + #> mkhtest_f(gq, 'het_gq_greater', 'f') + het_gq_greater = dict(statistic=0.5313259064778423, + pvalue=0.9990217851193723, + parameters=(98, 98), distr='f') + + #> gq = gqtest(fm, alternative='less') + #> mkhtest_f(gq, 'het_gq_less', 'f') + het_gq_less = dict(statistic=0.5313259064778423, + pvalue=0.000978214880627621, + parameters=(98, 98), distr='f') + + #> gq = gqtest(fm, alternative='two.sided') + #> mkhtest_f(gq, 'het_gq_two_sided', 'f') + het_gq_two_sided = dict(statistic=0.5313259064778423, + pvalue=0.001956429761255241, + parameters=(98, 98), distr='f') + + + #> gq = gqtest(fm, fraction=0.1, alternative='two.sided') + #> mkhtest_f(gq, 'het_gq_two_sided_01', 'f') + het_gq_two_sided_01 = dict(statistic=0.5006976835928314, + pvalue=0.001387126702579789, + parameters=(88, 87), distr='f') + + #> gq = gqtest(fm, fraction=0.5, alternative='two.sided') + #> mkhtest_f(gq, 'het_gq_two_sided_05', 'f') + het_gq_two_sided_05 = dict(statistic=0.434815645134117, + pvalue=0.004799321242905568, + parameters=(48, 47), distr='f') + + endogg, exogg = self.endog, self.exog + #tests + gq = smsdia.het_goldfeldquandt(endogg, exogg, split=0.5) + compare_t_est(gq, het_gq_greater, decimal=(14, 14)) + assert_equal(gq[-1], 'increasing') + + gq = smsdia.het_goldfeldquandt(endogg, exogg, split=0.5, + alternative='decreasing') + compare_t_est(gq, het_gq_less, decimal=(14, 14)) + assert_equal(gq[-1], 'decreasing') + + gq = smsdia.het_goldfeldquandt(endogg, exogg, split=0.5, + alternative='two-sided') + compare_t_est(gq, het_gq_two_sided, decimal=(14, 14)) + assert_equal(gq[-1], 'two-sided') + + #TODO: forcing the same split as R 202-90-90-1=21 + gq = smsdia.het_goldfeldquandt(endogg, exogg, split=90, drop=21, + alternative='two-sided') + compare_t_est(gq, het_gq_two_sided_01, decimal=(14, 14)) + assert_equal(gq[-1], 'two-sided') + #TODO other options ??? + + def test_het_breusch_pagan(self): + res = self.res + + bptest = dict(statistic=0.709924388395087, pvalue=0.701199952134347, + parameters=(2,), distr='f') + + bp = smsdia.het_breuschpagan(res.resid, res.model.exog) + compare_t_est(bp, bptest, decimal=(12, 12)) + + + + def test_het_white(self): + res = self.res + + #TODO: regressiontest, compare with Greene or Gretl or Stata + hw = smsdia.het_white(res.resid, res.model.exog) + hw_values = (33.503722896538441, 2.9887960597830259e-06, + 7.7945101228430946, 1.0354575277704231e-06) + assert_almost_equal(hw, hw_values) + + def test_het_arch(self): + #test het_arch and indirectly het_lm against R + #> library(FinTS) + #> at = ArchTest(residuals(fm), lags=4) + #> mkhtest(at, 'archtest_4', 'chi2') + archtest_4 = dict(statistic=3.43473400836259, + pvalue=0.487871315392619, parameters=(4,), + distr='chi2') + + #> at = ArchTest(residuals(fm), lags=12) + #> mkhtest(at, 'archtest_12', 'chi2') + archtest_12 = dict(statistic=8.648320999014171, + pvalue=0.732638635007718, parameters=(12,), + distr='chi2') + + at4 = smsdia.het_arch(self.res.resid, maxlag=4) + at12 = smsdia.het_arch(self.res.resid, maxlag=12) + compare_t_est(at4[:2], archtest_4, decimal=(12, 13)) + compare_t_est(at12[:2], archtest_12, decimal=(12, 13)) + + def test_het_arch2(self): + #test autolag options, this also test het_lm + #unfortunately optimal lag=1 for this data + resid = self.res.resid + + res1 = smsdia.het_arch(resid, maxlag=1, autolag=None, store=True) + rs1 = res1[-1] + + res2 = smsdia.het_arch(resid, maxlag=5, autolag='aic', store=True) + rs2 = res2[-1] + + assert_almost_equal(rs2.resols.params, rs1.resols.params, decimal=13) + assert_almost_equal(res2[:4], res1[:4], decimal=13) + + #test that smallest lag, maxlag=1 works + res3 = smsdia.het_arch(resid, maxlag=1, autolag='aic') + assert_almost_equal(res3[:4], res1[:4], decimal=13) + + def test_acorr_breusch_godfrey(self): + res = self.res + + #bgf = bgtest(fm, order = 4, type="F") + breuschgodfrey_f = dict(statistic=1.179280833676792, + pvalue=0.321197487261203, + parameters=(4,195,), distr='f') + + #> bgc = bgtest(fm, order = 4, type="Chisq") + #> mkhtest(bgc, "breuschpagan_c", "chi2") + breuschgodfrey_c = dict(statistic=4.771042651230007, + pvalue=0.3116067133066697, + parameters=(4,), distr='chi2') + + bg = smsdia.acorr_breusch_godfrey(res, nlags=4) + bg_r = [breuschgodfrey_c['statistic'], breuschgodfrey_c['pvalue'], + breuschgodfrey_f['statistic'], breuschgodfrey_f['pvalue']] + assert_almost_equal(bg, bg_r, decimal=13) + + # check that lag choice works + bg2 = smsdia.acorr_breusch_godfrey(res, nlags=None) + bg3 = smsdia.acorr_breusch_godfrey(res, nlags=14) + assert_almost_equal(bg2, bg3, decimal=13) + + def test_acorr_ljung_box(self): + res = self.res + + #> bt = Box.test(residuals(fm), lag=4, type = "Ljung-Box") + #> mkhtest(bt, "ljung_box_4", "chi2") + ljung_box_4 = dict(statistic=5.23587172795227, pvalue=0.263940335284713, + parameters=(4,), distr='chi2') + + #> bt = Box.test(residuals(fm), lag=4, type = "Box-Pierce") + #> mkhtest(bt, "ljung_box_bp_4", "chi2") + ljung_box_bp_4 = dict(statistic=5.12462932741681, + pvalue=0.2747471266820692, + parameters=(4,), distr='chi2') + + #ddof correction for fitted parameters in ARMA(p,q) fitdf=p+q + #> bt = Box.test(residuals(fm), lag=4, type = "Ljung-Box", fitdf=2) + #> mkhtest(bt, "ljung_box_4df2", "chi2") + ljung_box_4df2 = dict(statistic=5.23587172795227, + pvalue=0.0729532930400377, + parameters=(2,), distr='chi2') + + #> bt = Box.test(residuals(fm), lag=4, type = "Box-Pierce", fitdf=2) + #> mkhtest(bt, "ljung_box_bp_4df2", "chi2") + ljung_box_bp_4df2 = dict(statistic=5.12462932741681, + pvalue=0.0771260128929921, + parameters=(2,), distr='chi2') + + + lb, lbpval, bp, bppval = smsdia.acorr_ljungbox(res.resid, 4, + boxpierce=True) + compare_t_est([lb[-1], lbpval[-1]], ljung_box_4, decimal=(13, 14)) + compare_t_est([bp[-1], bppval[-1]], ljung_box_bp_4, decimal=(13, 14)) + + + def test_harvey_collier(self): + + #> hc = harvtest(fm, order.by = NULL, data = list()) + #> mkhtest_f(hc, 'harvey_collier', 't') + harvey_collier = dict(statistic=0.494432160939874, + pvalue=0.6215491310408242, + parameters=(198), distr='t') + + #> hc2 = harvtest(fm, order.by=ggdp , data = list()) + #> mkhtest_f(hc2, 'harvey_collier_2', 't') + harvey_collier_2 = dict(statistic=1.42104628340473, + pvalue=0.1568762892441689, + parameters=(198), distr='t') + + hc = smsdia.linear_harvey_collier(self.res) + compare_t_est(hc, harvey_collier, decimal=(12, 12)) + + + def test_rainbow(self): + #rainbow test + #> rt = raintest(fm) + #> mkhtest_f(rt, 'raintest', 'f') + raintest = dict(statistic=0.6809600116739604, pvalue=0.971832843583418, + parameters=(101, 98), distr='f') + + #> rt = raintest(fm, center=0.4) + #> mkhtest_f(rt, 'raintest_center_04', 'f') + raintest_center_04 = dict(statistic=0.682635074191527, + pvalue=0.971040230422121, + parameters=(101, 98), distr='f') + + #> rt = raintest(fm, fraction=0.4) + #> mkhtest_f(rt, 'raintest_fraction_04', 'f') + raintest_fraction_04 = dict(statistic=0.565551237772662, + pvalue=0.997592305968473, + parameters=(122, 77), distr='f') + + #> rt = raintest(fm, order.by=ggdp) + #Warning message: + #In if (order.by == "mahalanobis") { : + # the condition has length > 1 and only the first element will be used + #> mkhtest_f(rt, 'raintest_order_gdp', 'f') + raintest_order_gdp = dict(statistic=1.749346160513353, + pvalue=0.002896131042494884, + parameters=(101, 98), distr='f') + + rb = smsdia.linear_rainbow(self.res) + compare_t_est(rb, raintest, decimal=(13, 14)) + rb = smsdia.linear_rainbow(self.res, frac=0.4) + compare_t_est(rb, raintest_fraction_04, decimal=(13, 14)) + + + def test_compare_lr(self): + res = self.res + res3 = self.res3 #nested within res + #lrtest + #lrt = lrtest(fm, fm2) + #Model 1: ginv ~ ggdp + lint + #Model 2: ginv ~ ggdp + + lrtest = dict(loglike1=-763.9752181602237, loglike2=-766.3091902020184, + chi2value=4.66794408358942, pvalue=0.03073069384028677, + df=(4,3,1)) + lrt = res.compare_lr_test(res3) + assert_almost_equal(lrt[0], lrtest['chi2value'], decimal=11) + assert_almost_equal(lrt[1], lrtest['pvalue'], decimal=11) + + waldtest = dict(fvalue=4.65216373312492, pvalue=0.03221346195239025, + df=(199,200,1)) + + wt = res.compare_f_test(res3) + assert_almost_equal(wt[0], waldtest['fvalue'], decimal=11) + assert_almost_equal(wt[1], waldtest['pvalue'], decimal=11) + + + def test_compare_nonnested(self): + res = self.res + res2 = self.res2 + #jt = jtest(fm, lm(ginv ~ ggdp + tbilrate)) + #Estimate Std. Error t value Pr(>|t|) + jtest = [('M1 + fitted(M2)', 1.591505670785873, 0.7384552861695823, + 2.155182176352370, 0.032354572525314450, '*'), + ('M2 + fitted(M1)', 1.305687653016899, 0.4808385176653064, + 2.715438978051544, 0.007203854534057954, '**')] + + jt1 = smsdia.compare_j(res2, res) + assert_almost_equal(jt1, jtest[0][3:5], decimal=13) + + jt2 = smsdia.compare_j(res, res2) + assert_almost_equal(jt2, jtest[1][3:5], decimal=14) + + #Estimate Std. Error z value Pr(>|z|) + coxtest = [('fitted(M1) ~ M2', -0.782030488930356, 0.599696502782265, + -1.304043770977755, 1.922186587840554e-01, ' '), + ('fitted(M2) ~ M1', -2.248817107408537, 0.392656854330139, + -5.727181590258883, 1.021128495098556e-08, '***')] + + ct1 = smsdia.compare_cox(res, res2) + assert_almost_equal(ct1, coxtest[0][3:5], decimal=13) + + ct2 = smsdia.compare_cox(res2, res) + assert_almost_equal(ct2, coxtest[1][3:5], decimal=12) + #TODO should be approx + + # Res.Df Df F Pr(>F) + encomptest = [('M1 vs. ME', 198, -1, 4.644810213266983, + 0.032354572525313666, '*'), + ('M2 vs. ME', 198, -1, 7.373608843521585, + 0.007203854534058054, '**')] + + # Estimate Std. Error t value + petest = [('M1 + log(fit(M1))-fit(M2)', -229.281878354594596, + 44.5087822087058598, -5.15139, 6.201281252449979e-07), + ('M2 + fit(M1)-exp(fit(M2))', 0.000634664704814, + 0.0000462387010349, 13.72583, 1.319536115230356e-30)] + + + def test_cusum_ols(self): + #R library(strucchange) + #> sc = sctest(ginv ~ ggdp + lint, type="OLS-CUSUM") + #> mkhtest(sc, 'cusum_ols', 'BB') + cusum_ols = dict(statistic=1.055750610401214, pvalue=0.2149567397376543, + parameters=(), distr='BB') #Brownian Bridge + + k_vars=3 + cs_ols = smsdia.breaks_cusumolsresid(self.res.resid, ddof=k_vars) # + compare_t_est(cs_ols, cusum_ols, decimal=(12, 12)) + + def test_breaks_hansen(self): + #> sc = sctest(ginv ~ ggdp + lint, type="Nyblom-Hansen") + #> mkhtest(sc, 'breaks_nyblom_hansen', 'BB') + breaks_nyblom_hansen = dict(statistic=1.0300792740544484, + pvalue=0.1136087530212015, + parameters=(), distr='BB') + + bh = smsdia.breaks_hansen(self.res) + assert_almost_equal(bh[0], breaks_nyblom_hansen['statistic'], + decimal=13) + #TODO: breaks_hansen doesn't return pvalues + + + def test_recursive_residuals(self): + + reccumres_standardize = np.array([-2.151, -3.748, -3.114, -3.096, + -1.865, -2.230, -1.194, -3.500, -3.638, -4.447, -4.602, -4.631, -3.999, + -4.830, -5.429, -5.435, -6.554, -8.093, -8.567, -7.532, -7.079, -8.468, + -9.320, -12.256, -11.932, -11.454, -11.690, -11.318, -12.665, -12.842, + -11.693, -10.803, -12.113, -12.109, -13.002, -11.897, -10.787, -10.159, + -9.038, -9.007, -8.634, -7.552, -7.153, -6.447, -5.183, -3.794, -3.511, + -3.979, -3.236, -3.793, -3.699, -5.056, -5.724, -4.888, -4.309, -3.688, + -3.918, -3.735, -3.452, -2.086, -6.520, -7.959, -6.760, -6.855, -6.032, + -4.405, -4.123, -4.075, -3.235, -3.115, -3.131, -2.986, -1.813, -4.824, + -4.424, -4.796, -4.000, -3.390, -4.485, -4.669, -4.560, -3.834, -5.507, + -3.792, -2.427, -1.756, -0.354, 1.150, 0.586, 0.643, 1.773, -0.830, + -0.388, 0.517, 0.819, 2.240, 3.791, 3.187, 3.409, 2.431, 0.668, 0.957, + -0.928, 0.327, -0.285, -0.625, -2.316, -1.986, -0.744, -1.396, -1.728, + -0.646, -2.602, -2.741, -2.289, -2.897, -1.934, -2.532, -3.175, -2.806, + -3.099, -2.658, -2.487, -2.515, -2.224, -2.416, -1.141, 0.650, -0.947, + 0.725, 0.439, 0.885, 2.419, 2.642, 2.745, 3.506, 4.491, 5.377, 4.624, + 5.523, 6.488, 6.097, 5.390, 6.299, 6.656, 6.735, 8.151, 7.260, 7.846, + 8.771, 8.400, 8.717, 9.916, 9.008, 8.910, 8.294, 8.982, 8.540, 8.395, + 7.782, 7.794, 8.142, 8.362, 8.400, 7.850, 7.643, 8.228, 6.408, 7.218, + 7.699, 7.895, 8.725, 8.938, 8.781, 8.350, 9.136, 9.056, 10.365, 10.495, + 10.704, 10.784, 10.275, 10.389, 11.586, 11.033, 11.335, 11.661, 10.522, + 10.392, 10.521, 10.126, 9.428, 9.734, 8.954, 9.949, 10.595, 8.016, + 6.636, 6.975]) + + rr = smsdia.recursive_olsresiduals(self.res, skip=3, alpha=0.95) + assert_equal(np.round(rr[5][1:], 3), reccumres_standardize) #extra zero in front + #assert_equal(np.round(rr[3][4:], 3), np.diff(reccumres_standardize)) + assert_almost_equal(rr[3][4:], np.diff(reccumres_standardize),3) + assert_almost_equal(rr[4][3:].std(ddof=1), 10.7242, decimal=4) + + #regression number, visually checked with graph from gretl + ub0 = np.array([ 13.37318571, 13.50758959, 13.64199346, 13.77639734, + 13.91080121]) + ub1 = np.array([ 39.44753774, 39.58194162, 39.7163455 , 39.85074937, + 39.98515325]) + lb, ub = rr[6] + assert_almost_equal(ub[:5], ub0, decimal=7) + assert_almost_equal(lb[:5], -ub0, decimal=7) + assert_almost_equal(ub[-5:], ub1, decimal=7) + assert_almost_equal(lb[-5:], -ub1, decimal=7) + + #test a few values with explicit OLS + endog = self.res.model.endog + exog = self.res.model.exog + params = [] + ypred = [] + for i in range(3,10): + resi = OLS(endog[:i], exog[:i]).fit() + ypred.append(resi.model.predict(resi.params, exog[i])) + params.append(resi.params) + assert_almost_equal(rr[2][3:10], ypred, decimal=12) + assert_almost_equal(rr[0][3:10], endog[3:10] - ypred, decimal=12) + assert_almost_equal(rr[1][2:9], params, decimal=12) + + def test_normality(self): + res = self.res + + #> library(nortest) #Lilliefors (Kolmogorov-Smirnov) normality test + #> lt = lillie.test(residuals(fm)) + #> mkhtest(lt, "lilliefors", "-") + lilliefors1 = dict(statistic=0.0723390908786589, + pvalue=0.01204113540102896, parameters=(), distr='-') + + #> lt = lillie.test(residuals(fm)**2) + #> mkhtest(lt, "lilliefors", "-") + lilliefors2 = dict(statistic=0.301311621898024, + pvalue=1.004305736618051e-51, + parameters=(), distr='-') + + #> lt = lillie.test(residuals(fm)[1:20]) + #> mkhtest(lt, "lilliefors", "-") + lilliefors3 = dict(statistic=0.1333956004203103, + pvalue=0.4618672180799566, parameters=(), distr='-') + + lf1 = smsdia.lilliefors(res.resid) + lf2 = smsdia.lilliefors(res.resid**2) + lf3 = smsdia.lilliefors(res.resid[:20]) + + compare_t_est(lf1, lilliefors1, decimal=(14, 14)) + compare_t_est(lf2, lilliefors2, decimal=(14, 14)) #pvalue very small + assert_approx_equal(lf2[1], lilliefors2['pvalue'], significant=10) + compare_t_est(lf3, lilliefors3, decimal=(14, 1)) + #R uses different approximation for pvalue in last case + + #> ad = ad.test(residuals(fm)) + #> mkhtest(ad, "ad3", "-") + adr1 = dict(statistic=1.602209621518313, pvalue=0.0003937979149362316, + parameters=(), distr='-') + + #> ad = ad.test(residuals(fm)**2) + #> mkhtest(ad, "ad3", "-") + adr2 = dict(statistic=np.inf, pvalue=np.nan, parameters=(), distr='-') + + #> ad = ad.test(residuals(fm)[1:20]) + #> mkhtest(ad, "ad3", "-") + adr3 = dict(statistic=0.3017073732210775, pvalue=0.5443499281265933, + parameters=(), distr='-') + + ad1 = smsdia.normal_ad(res.resid) + compare_t_est(ad1, adr1, decimal=(11, 13)) + ad2 = smsdia.normal_ad(res.resid**2) + assert_(np.isinf(ad2[0])) + ad3 = smsdia.normal_ad(res.resid[:20]) + compare_t_est(ad3, adr3, decimal=(11, 12)) + + + def test_influence(self): + res = self.res + + #this test is slow + infl = oi.OLSInfluence(res) + + fp = open(os.path.join(cur_dir,"results/influence_lsdiag_R.json")) + lsdiag = json.load(fp) + + #basic + assert_almost_equal(np.array(lsdiag['cov.scaled']).reshape(3, 3), + res.cov_params(), decimal=14) + assert_almost_equal(np.array(lsdiag['cov.unscaled']).reshape(3, 3), + res.normalized_cov_params, decimal=14) + + c0, c1 = infl.cooks_distance #TODO: what's c1 + + + assert_almost_equal(c0, lsdiag['cooks'], decimal=14) + assert_almost_equal(infl.hat_matrix_diag, lsdiag['hat'], decimal=14) + assert_almost_equal(infl.resid_studentized_internal, + lsdiag['std.res'], decimal=14) + + #slow: + #infl._get_all_obs() #slow, nobs estimation loop, called implicitly + dffits, dffth = infl.dffits + assert_almost_equal(dffits, lsdiag['dfits'], decimal=14) + assert_almost_equal(infl.resid_studentized_external, + lsdiag['stud.res'], decimal=14) + + import pandas + fn = os.path.join(cur_dir,"results/influence_measures_R.csv") + infl_r = pandas.read_csv(fn, index_col=0) + conv = lambda s: 1 if s=='TRUE' else 0 + fn = os.path.join(cur_dir,"results/influence_measures_bool_R.csv") + #not used yet: + #infl_bool_r = pandas.read_csv(fn, index_col=0, + # converters=dict(zip(lrange(7),[conv]*7))) + infl_r2 = np.asarray(infl_r) + assert_almost_equal(infl.dfbetas, infl_r2[:,:3], decimal=13) + assert_almost_equal(infl.cov_ratio, infl_r2[:,4], decimal=14) + #duplicates + assert_almost_equal(dffits, infl_r2[:,3], decimal=14) + assert_almost_equal(c0, infl_r2[:,5], decimal=14) + assert_almost_equal(infl.hat_matrix_diag, infl_r2[:,6], decimal=14) + + #Note: for dffits, R uses a threshold around 0.36, mine: dffits[1]=0.24373 + #TODO: finish and check thresholds and pvalues + ''' + R has + >>> np.nonzero(np.asarray(infl_bool_r["dffit"]))[0] + array([ 6, 26, 63, 76, 90, 199]) + >>> np.nonzero(np.asarray(infl_bool_r["cov.r"]))[0] + array([ 4, 26, 59, 61, 63, 72, 76, 84, 91, 92, 94, 95, 108, + 197, 198]) + >>> np.nonzero(np.asarray(infl_bool_r["hat"]))[0] + array([ 62, 76, 84, 90, 91, 92, 95, 108, 197, 199]) + ''' + + +class TestDiagnosticGPandas(TestDiagnosticG): + + def __init__(self): + d = macrodata.load_pandas().data + #growth rates + d['gs_l_realinv'] = 400 * np.log(d['realinv']).diff() + d['gs_l_realgdp'] = 400 * np.log(d['realgdp']).diff() + d['lint'] = d['realint'].shift(1) + d['tbilrate'] = d['tbilrate'].shift(1) + + d = d.dropna() + self.d = d + endogg = d['gs_l_realinv'] + exogg = add_constant(d[['gs_l_realgdp', 'lint']]) + exogg2 = add_constant(d[['gs_l_realgdp', 'tbilrate']]) + exogg3 = add_constant(d[['gs_l_realgdp']]) + + res_ols = OLS(endogg, exogg).fit() + res_ols2 = OLS(endogg, exogg2).fit() + + res_ols3 = OLS(endogg, exogg3).fit() + + self.res = res_ols + self.res2 = res_ols2 + self.res3 = res_ols3 + self.endog = self.res.model.endog + self.exog = self.res.model.exog + + +def grangertest(): + #> gt = grangertest(ginv, ggdp, order=4) + #> gt + #Granger causality test + # + #Model 1: ggdp ~ Lags(ggdp, 1:4) + Lags(ginv, 1:4) + #Model 2: ggdp ~ Lags(ggdp, 1:4) + + grangertest = dict(fvalue=1.589672703015157, pvalue=0.178717196987075, + df=(198,193)) + +def test_outlier_influence_funcs(): + #smoke test + x = add_constant(np.random.randn(10, 2)) + y = x.sum(1) + np.random.randn(10) + res = OLS(y, x).fit() + oi.summary_table(res, alpha=0.05) + + res2 = OLS(y, x[:,0]).fit() + oi.summary_table(res2, alpha=0.05) + infl = res2.get_influence() + infl.summary_table() + +def test_influence_wrapped(): + from pandas import DataFrame + from pandas.util.testing import assert_series_equal + + d = macrodata.load_pandas().data + #growth rates + gs_l_realinv = 400 * np.log(d['realinv']).diff().dropna() + gs_l_realgdp = 400 * np.log(d['realgdp']).diff().dropna() + lint = d['realint'][:-1] + + # re-index these because they won't conform to lint + gs_l_realgdp.index = lint.index + gs_l_realinv.index = lint.index + + data = dict(const=np.ones_like(lint), lint=lint, lrealgdp=gs_l_realgdp) + #order is important + exog = DataFrame(data, columns=['const','lrealgdp','lint']) + + res = OLS(gs_l_realinv, exog).fit() + + #basic + # already tested + #assert_almost_equal(lsdiag['cov.scaled'], + # res.cov_params().values.ravel(), decimal=14) + #assert_almost_equal(lsdiag['cov.unscaled'], + # res.normalized_cov_params.values.ravel(), decimal=14) + + infl = oi.OLSInfluence(res) + + # smoke test just to make sure it works, results separately tested + df = infl.summary_frame() + assert_(isinstance(df, DataFrame)) + + #this test is slow + fp = open(os.path.join(cur_dir,"results/influence_lsdiag_R.json")) + lsdiag = json.load(fp) + + c0, c1 = infl.cooks_distance #TODO: what's c1, it's pvalues? -ss + + + #NOTE: we get a hard-cored 5 decimals with pandas testing + assert_almost_equal(c0, lsdiag['cooks'], 14) + assert_almost_equal(infl.hat_matrix_diag, (lsdiag['hat']), 14) + assert_almost_equal(infl.resid_studentized_internal, + lsdiag['std.res'], 14) + + #slow: + dffits, dffth = infl.dffits + assert_almost_equal(dffits, lsdiag['dfits'], 14) + assert_almost_equal(infl.resid_studentized_external, + lsdiag['stud.res'], 14) + + import pandas + fn = os.path.join(cur_dir,"results/influence_measures_R.csv") + infl_r = pandas.read_csv(fn, index_col=0) + conv = lambda s: 1 if s=='TRUE' else 0 + fn = os.path.join(cur_dir,"results/influence_measures_bool_R.csv") + #not used yet: + #infl_bool_r = pandas.read_csv(fn, index_col=0, + # converters=dict(zip(lrange(7),[conv]*7))) + infl_r2 = np.asarray(infl_r) + #TODO: finish wrapping this stuff + assert_almost_equal(infl.dfbetas, infl_r2[:,:3], decimal=13) + assert_almost_equal(infl.cov_ratio, infl_r2[:,4], decimal=14) + + +def test_influence_dtype(): + # see #2148 bug when endog is integer + y = np.ones(20) + np.random.seed(123) + x = np.random.randn(20, 3) + res1 = OLS(y, x).fit() + + res2 = OLS(y*1., x).fit() + cr1 = res1.get_influence().cov_ratio + cr2 = res2.get_influence().cov_ratio + assert_allclose(cr1, cr2, rtol=1e-14) + # regression test for values + cr3 = np.array( + [ 1.22239215, 1.31551021, 1.52671069, 1.05003921, 0.89099323, + 1.57405066, 1.03230092, 0.95844196, 1.15531836, 1.21963623, + 0.87699564, 1.16707748, 1.10481391, 0.98839447, 1.08999334, + 1.35680102, 1.46227715, 1.45966708, 1.13659521, 1.22799038]) + assert_almost_equal(cr1, cr3, decimal=8) + + +def test_outlier_test(): + # results from R with NA -> 1. Just testing interface here because + # outlier_test is just a wrapper + labels = ['accountant', 'pilot', 'architect', 'author', 'chemist', + 'minister', 'professor', 'dentist', 'reporter', 'engineer', + 'undertaker', 'lawyer', 'physician', 'welfare.worker', 'teacher', + 'conductor', 'contractor', 'factory.owner', 'store.manager', + 'banker', 'bookkeeper', 'mail.carrier', 'insurance.agent', + 'store.clerk', 'carpenter', 'electrician', 'RR.engineer', + 'machinist', 'auto.repairman', 'plumber', 'gas.stn.attendant', + 'coal.miner', 'streetcar.motorman', 'taxi.driver', + 'truck.driver', 'machine.operator', 'barber', 'bartender', + 'shoe.shiner', 'cook', 'soda.clerk', 'watchman', 'janitor', + 'policeman', 'waiter'] + #Duncan's prestige data from car + exog = [[1.0, 62.0, 86.0], [1.0, 72.0, 76.0], [1.0, 75.0, 92.0], + [1.0, 55.0, 90.0], [1.0, 64.0, 86.0], [1.0, 21.0, 84.0], + [1.0, 64.0, 93.0], [1.0, 80.0, 100.0], [1.0, 67.0, 87.0], + [1.0, 72.0, 86.0], [1.0, 42.0, 74.0], [1.0, 76.0, 98.0], + [1.0, 76.0, 97.0], [1.0, 41.0, 84.0], [1.0, 48.0, 91.0], + [1.0, 76.0, 34.0], [1.0, 53.0, 45.0], [1.0, 60.0, 56.0], + [1.0, 42.0, 44.0], [1.0, 78.0, 82.0], [1.0, 29.0, 72.0], + [1.0, 48.0, 55.0], [1.0, 55.0, 71.0], [1.0, 29.0, 50.0], + [1.0, 21.0, 23.0], [1.0, 47.0, 39.0], [1.0, 81.0, 28.0], + [1.0, 36.0, 32.0], [1.0, 22.0, 22.0], [1.0, 44.0, 25.0], + [1.0, 15.0, 29.0], [1.0, 7.0, 7.0], [1.0, 42.0, 26.0], + [1.0, 9.0, 19.0], [1.0, 21.0, 15.0], [1.0, 21.0, 20.0], + [1.0, 16.0, 26.0], [1.0, 16.0, 28.0], [1.0, 9.0, 17.0], + [1.0, 14.0, 22.0], [1.0, 12.0, 30.0], [1.0, 17.0, 25.0], + [1.0, 7.0, 20.0], [1.0, 34.0, 47.0], [1.0, 8.0, 32.0]] + endog = [ 82., 83., 90., 76., 90., 87., 93., 90., 52., 88., 57., + 89., 97., 59., 73., 38., 76., 81., 45., 92., 39., 34., + 41., 16., 33., 53., 67., 57., 26., 29., 10., 15., 19., + 10., 13., 24., 20., 7., 3., 16., 6., 11., 8., 41., + 10.] + ndarray_mod = OLS(endog, exog).fit() + rstudent = [3.1345185839, -2.3970223990, 2.0438046359, -1.9309187757, + 1.8870465798, -1.7604905300, -1.7040324156, 1.6024285876, + -1.4332485037, -1.1044851583, 1.0688582315, 1.0185271840, + -0.9024219332, -0.9023876471, -0.8830953936, 0.8265782334, + 0.8089220547, 0.7682770197, 0.7319491074, -0.6665962829, + 0.5227352794, -0.5135016547, 0.5083881518, 0.4999224372, + -0.4980818221, -0.4759717075, -0.4293565820, -0.4114056499, + -0.3779540862, 0.3556874030, 0.3409200462, 0.3062248646, + 0.3038999429, -0.3030815773, -0.1873387893, 0.1738050251, + 0.1424246593, -0.1292266025, 0.1272066463, -0.0798902878, + 0.0788467222, 0.0722556991, 0.0505098280, 0.0233215136, + 0.0007112055] + unadj_p = [0.003177202, 0.021170298, 0.047432955, 0.060427645, 0.066248120, + 0.085783008, 0.095943909, 0.116738318, 0.159368890, 0.275822623, + 0.291386358, 0.314400295, 0.372104049, 0.372122040, 0.382333561, + 0.413260793, 0.423229432, 0.446725370, 0.468363101, 0.508764039, + 0.603971990, 0.610356737, 0.613905871, 0.619802317, 0.621087703, + 0.636621083, 0.669911674, 0.682917818, 0.707414459, 0.723898263, + 0.734904667, 0.760983108, 0.762741124, 0.763360242, 0.852319039, + 0.862874018, 0.887442197, 0.897810225, 0.899398691, 0.936713197, + 0.937538115, 0.942749758, 0.959961394, 0.981506948, 0.999435989] + bonf_p = [0.1429741, 0.9526634, 2.1344830, 2.7192440, 2.9811654, 3.8602354, + 4.3174759, 5.2532243, 7.1716001, 12.4120180, 13.1123861, 14.1480133, + 16.7446822, 16.7454918, 17.2050103, 18.5967357, 19.0453245, + 20.1026416, 21.0763395, 22.8943818, 27.1787396, 27.4660532, + 27.6257642, 27.8911043, 27.9489466, 28.6479487, 30.1460253, + 30.7313018, 31.8336506, 32.5754218, 33.0707100, 34.2442399, + 34.3233506, 34.3512109, 38.3543568, 38.8293308, 39.9348989, + 40.4014601, 40.4729411, 42.1520939, 42.1892152, 42.4237391, + 43.1982627, 44.1678127, 44.9746195] + bonf_p = np.array(bonf_p) + bonf_p[bonf_p > 1] = 1 + sorted_labels = ["minister", "reporter", "contractor", "insurance.agent", + "machinist", "store.clerk", "conductor", "factory.owner", + "mail.carrier", "streetcar.motorman", "carpenter", "coal.miner", + "bartender", "bookkeeper", "soda.clerk", "chemist", "RR.engineer", + "professor", "electrician", "gas.stn.attendant", "auto.repairman", + "watchman", "banker", "machine.operator", "dentist", "waiter", + "shoe.shiner", "welfare.worker", "plumber", "physician", "pilot", + "engineer", "accountant", "lawyer", "undertaker", "barber", + "store.manager", "truck.driver", "cook", "janitor", "policeman", + "architect", "teacher", "taxi.driver", "author"] + + res2 = np.c_[rstudent, unadj_p, bonf_p] + res = oi.outlier_test(ndarray_mod, method='b', labels=labels, order=True) + np.testing.assert_almost_equal(res.values, res2, 7) + np.testing.assert_equal(res.index.tolist(), sorted_labels) # pylint: disable-msg=E1103 + + +if __name__ == '__main__': + import nose + nose.runmodule(argv=[__file__, '-vvs', '-x'], exit=False) + + #t = TestDiagnosticG() + #t.test_basic() + #t.test_hac() + #t.test_acorr_breusch_godfrey() + #t.test_acorr_ljung_box() + #t.test_het_goldfeldquandt() + #t.test_het_breusch_pagan() + #t.test_het_white() + #t.test_compare_lr() + #t.test_compare_nonnested() + #t.test_influence() + + + ################################################## + + ''' + J test + + Model 1: ginv ~ ggdp + lint + Model 2: ginv ~ ggdp + tbilrate + Estimate Std. Error t value Pr(>|t|) + M1 + fitted(M2) 1.591505670785873 0.7384552861695823 2.15518 0.0323546 * + M2 + fitted(M1) 1.305687653016899 0.4808385176653064 2.71544 0.0072039 ** + --- + Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 + + + = lm(ginv ~ ggdp + tbilrate) + > ct = coxtest(fm, fm3) + > ct + Cox test + + Model 1: ginv ~ ggdp + lint + Model 2: ginv ~ ggdp + tbilrate + Estimate Std. Error z value Pr(>|z|) + fitted(M1) ~ M2 -0.782030488930356 0.599696502782265 -1.30404 0.19222 + fitted(M2) ~ M1 -2.248817107408537 0.392656854330139 -5.72718 1.0211e-08 *** + --- + Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 + + + + > et = encomptest(fm, fm3) + > et + Encompassing test + + Model 1: ginv ~ ggdp + lint + Model 2: ginv ~ ggdp + tbilrate + Model E: ginv ~ ggdp + lint + tbilrate + Res.Df Df F Pr(>F) + M1 vs. ME 198 -1 4.64481 0.0323546 * + M2 vs. ME 198 -1 7.37361 0.0072039 ** + --- + Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 + + + > fm4 = lm(realinv ~ realgdp + realint, data=d) + > fm5 = lm(log(realinv) ~ realgdp + realint, data=d) + > pet = petest(fm4, fm5) + > pet + PE test + + Model 1: realinv ~ realgdp + realint + Model 2: log(realinv) ~ realgdp + realint + Estimate Std. Error t value + M1 + log(fit(M1))-fit(M2) -229.281878354594596 44.5087822087058598 -5.15139 + M2 + fit(M1)-exp(fit(M2)) 0.000634664704814 0.0000462387010349 13.72583 + Pr(>|t|) + M1 + log(fit(M1))-fit(M2) 6.2013e-07 *** + M2 + fit(M1)-exp(fit(M2)) < 2.22e-16 *** + --- + Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 + + ''' + diff --git a/statsmodels/stats/tests/test_gof.py b/statsmodels/stats/tests/test_gof.py new file mode 100644 index 0000000..23fbb4b --- /dev/null +++ b/statsmodels/stats/tests/test_gof.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +""" + +Created on Thu Feb 28 13:24:59 2013 + +Author: Josef Perktold +""" +from statsmodels.compat.python import itervalues + +import numpy as np +from numpy.testing import assert_almost_equal, assert_equal + +from statsmodels.stats.gof import (chisquare, chisquare_power, + chisquare_effectsize) + +class Holder(object): + pass + +def test_chisquare_power(): + from .results.results_power import pwr_chisquare + for case in itervalues(pwr_chisquare): + power = chisquare_power(case.w, case.N, case.df + 1, + alpha=case.sig_level) + assert_almost_equal(power, case.power, decimal=6, + err_msg=repr(vars(case))) + +def test_chisquare(): + # TODO: no tests for ``value`` yet + res1 = Holder() + res2 = Holder() + #> freq = c(1048, 660, 510, 420, 362) + #> pr1 = c(1020, 690, 510, 420, 360) + #> pr2 = c(1050, 660, 510, 420, 360) + #> c = chisq.test(freq, p=pr1, rescale.p = TRUE) + #> cat_items(c, "res1.") + res1.statistic = 2.084086388178453 + res1.parameter = 4 + res1.p_value = 0.72029651761105 + res1.method = 'Chi-squared test for given probabilities' + res1.data_name = 'freq' + res1.observed = np.array([ + 1048, 660, 510, 420, 362 + ]) + res1.expected = np.array([ + 1020, 690, 510, 420, 360 + ]) + res1.residuals = np.array([ + 0.876714007519206, -1.142080481440321, -2.517068894406109e-15, + -2.773674830645328e-15, 0.105409255338946 + ]) + + + #> c = chisq.test(freq, p=pr2, rescale.p = TRUE) + #> cat_items(c, "res2.") + res2.statistic = 0.01492063492063492 + res2.parameter = 4 + res2.p_value = 0.999972309849908 + res2.method = 'Chi-squared test for given probabilities' + res2.data_name = 'freq' + res2.observed = np.array([ + 1048, 660, 510, 420, 362 + ]) + res2.expected = np.array([ + 1050, 660, 510, 420, 360 + ]) + res2.residuals = np.array([ + -0.06172133998483677, 0, -2.517068894406109e-15, + -2.773674830645328e-15, 0.105409255338946 + ]) + + freq = np.array([1048, 660, 510, 420, 362]) + pr1 = np.array([1020, 690, 510, 420, 360]) + pr2 = np.array([1050, 660, 510, 420, 360]) + + for pr, res in zip([pr1, pr2], [res1, res2]): + stat, pval = chisquare(freq, pr) + assert_almost_equal(stat, res.statistic, decimal=12) + assert_almost_equal(pval, res.p_value, decimal=13) + + +def test_chisquare_effectsize(): + + pr1 = np.array([1020, 690, 510, 420, 360]) + pr2 = np.array([1050, 660, 510, 420, 360]) + #> library(pwr) + #> ES.w1(pr1/3000, pr2/3000) + es_r = 0.02699815282115563 + es1 = chisquare_effectsize(pr1, pr2) + es2 = chisquare_effectsize(pr1, pr2, cohen=False) + assert_almost_equal(es1, es_r, decimal=14) + assert_almost_equal(es2, es_r**2, decimal=14) + + # regression tests for correction + res1 = chisquare_effectsize(pr1, pr2, cohen=False, + correction=(3000, len(pr1)-1)) + res0 = 0 #-0.00059994422693327625 + assert_equal(res1, res0) + pr3 = pr2 + [0,0,0,50,50] + res1 = chisquare_effectsize(pr1, pr3, cohen=False, + correction=(3000, len(pr1)-1)) + res0 = 0.0023106468846296755 + assert_almost_equal(res1, res0, decimal=14) + # compare + # res_nc = chisquare_effectsize(pr1, pr3, cohen=False) + # 0.0036681143072077533 diff --git a/statsmodels/stats/tests/test_groups_sw.py b/statsmodels/stats/tests/test_groups_sw.py new file mode 100644 index 0000000..7f0efcc --- /dev/null +++ b/statsmodels/stats/tests/test_groups_sw.py @@ -0,0 +1,78 @@ +# -*- coding: utf-8 -*- +"""Test for a helper function for PanelHAC robust covariance + +the functions should be rewritten to make it more efficient + +Created on Thu May 17 21:09:41 2012 + +Author: Josef Perktold +""" +import numpy as np +from numpy.testing import assert_equal, assert_raises +import statsmodels.stats.sandwich_covariance as sw +from statsmodels.tools.grouputils import Group, GroupSorted + +class CheckPanelLagMixin(object): + + def calculate(self): + self.g = g = GroupSorted(self.gind) # pylint: disable-msg=W0201 + self.alla = [(lag, sw.lagged_groups(self.x, lag, g.groupidx)) # pylint: disable-msg=W0201 + for lag in range(5)] + + def test_values(self): + for lag, (y0, ylag) in self.alla: + assert_equal(y0, self.alle[lag].T) + assert_equal(y0, ylag + lag) + + def test_raises(self): + mlag = self.mlag + assert_raises(ValueError, sw.lagged_groups, self.x, mlag, + self.g.groupidx) + + +class TestBalanced(CheckPanelLagMixin): + + def __init__(self): + self.gind = np.repeat([0,1,2], 5) + self.mlag = 5 + x = np.arange(15) + x += 10**self.gind + self.x = x[:,None] + #expected result + self.alle = { + 0 : np.array([[ 1, 2, 3, 4, 5, 15, 16, 17, 18, 19, + 110, 111, 112, 113, 114]]), + 1 : np.array([[ 2, 3, 4, 5, 16, 17, 18, 19, 111, 112, + 113, 114]]), + 2 : np.array([[ 3, 4, 5, 17, 18, 19, 112, 113, 114]]), + 3 : np.array([[ 4, 5, 18, 19, 113, 114]]), + 4 : np.array([[ 5, 19, 114]]) + } + self.calculate() + +class TestUnBalanced(CheckPanelLagMixin): + + def __init__(self): + self.gind = gind = np.repeat([0,1,2], [3, 5, 10]) + self.mlag = 10 #maxlag + x = np.arange(18) + x += 10**gind + self.x = x[:,None] + + #expected result + self.alle = { + 0 : np.array([[ 1, 2, 3, 13, 14, 15, 16, 17, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117]]), + 1 : np.array([[ 2, 3, 14, 15, 16, 17, 109, 110, 111, 112, + 113, 114, 115, 116, 117]]), + 2 : np.array([[ 3, 15, 16, 17, 110, 111, 112, 113, 114, 115, + 116, 117]]), + 3 : np.array([[ 16, 17, 111, 112, 113, 114, 115, 116, 117]]), + 4 : np.array([[ 17, 112, 113, 114, 115, 116, 117]]), + 5 : np.array([[113, 114, 115, 116, 117]]), + } + self.calculate() + +if __name__ == '__main__': + import nose + nose.runmodule(argv=[__file__, '-vvs', '-x', '--pdb-failures'], exit=False) diff --git a/statsmodels/stats/tests/test_inter_rater.py b/statsmodels/stats/tests/test_inter_rater.py new file mode 100644 index 0000000..b1f0284 --- /dev/null +++ b/statsmodels/stats/tests/test_inter_rater.py @@ -0,0 +1,323 @@ +# -*- coding: utf-8 -*- +""" + +Created on Mon Dec 10 09:18:14 2012 + +Author: Josef Perktold +""" + +import numpy as np +from numpy.testing import assert_almost_equal, assert_equal + +from statsmodels.stats.inter_rater import (fleiss_kappa, cohens_kappa, + to_table, aggregate_raters) + +class Holder(object): + pass + + +table0 = np.asarray('''\ +1 0 0 0 0 14 1.000 +2 0 2 6 4 2 0.253 +3 0 0 3 5 6 0.308 +4 0 3 9 2 0 0.440 +5 2 2 8 1 1 0.330 +6 7 7 0 0 0 0.462 +7 3 2 6 3 0 0.242 +8 2 5 3 2 2 0.176 +9 6 5 2 1 0 0.286 +10 0 2 2 3 7 0.286'''.split(), float).reshape(10,-1) + +table1 = table0[:, 1:-1] + +table10 = [[0, 4, 1], + [0, 8, 0], + [0, 1, 5]] + +#Fleiss 1971, Fleiss has only the transformed table +diagnoses = np.array( [[4, 4, 4, 4, 4, 4], + [2, 2, 2, 5, 5, 5], + [2, 3, 3, 3, 3, 5], + [5, 5, 5, 5, 5, 5], + [2, 2, 2, 4, 4, 4], + [1, 1, 3, 3, 3, 3], + [3, 3, 3, 3, 5, 5], + [1, 1, 3, 3, 3, 4], + [1, 1, 4, 4, 4, 4], + [5, 5, 5, 5, 5, 5], + [1, 4, 4, 4, 4, 4], + [1, 2, 4, 4, 4, 4], + [2, 2, 2, 3, 3, 3], + [1, 4, 4, 4, 4, 4], + [2, 2, 4, 4, 4, 5], + [3, 3, 3, 3, 3, 5], + [1, 1, 1, 4, 5, 5], + [1, 1, 1, 1, 1, 2], + [2, 2, 4, 4, 4, 4], + [1, 3, 3, 5, 5, 5], + [5, 5, 5, 5, 5, 5], + [2, 4, 4, 4, 4, 4], + [2, 2, 4, 5, 5, 5], + [1, 1, 4, 4, 4, 4], + [1, 4, 4, 4, 4, 5], + [2, 2, 2, 2, 2, 4], + [1, 1, 1, 1, 5, 5], + [2, 2, 4, 4, 4, 4], + [1, 3, 3, 3, 3, 3], + [5, 5, 5, 5, 5, 5]]) +diagnoses_rownames = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', ] +diagnoses_colnames = ['rater1', 'rater2', 'rater3', 'rater4', 'rater5', 'rater6', ] + + + +def test_fleiss_kappa(): + #currently only example from Wikipedia page + kappa_wp = 0.210 + assert_almost_equal(fleiss_kappa(table1), kappa_wp, decimal=3) + + +class CheckCohens(object): + + def test_results(self): + res = self.res + res2 = self.res2 + + res_ = [res.kappa, res.std_kappa, res.kappa_low, res.kappa_upp, res.std_kappa0, + res.z_value, res.pvalue_one_sided, res.pvalue_two_sided] + + assert_almost_equal(res_, res2, decimal=4) + assert_equal(str(res), self.res_string) + + +class UnweightedCohens(CheckCohens): + #comparison to printout of a SAS example + def __init__(self): + #temporary: res instance is at last position + self.res = cohens_kappa(table10) + res10_sas = [0.4842, 0.1380, 0.2137, 0.7547] + res10_sash0 = [0.1484, 3.2626, 0.0006, 0.0011] #for test H0:kappa=0 + self.res2 = res10_sas + res10_sash0 #concatenate + + self.res_string = '''\ + Simple Kappa Coefficient + -------------------------------- + Kappa 0.4842 + ASE 0.1380 + 95% Lower Conf Limit 0.2137 + 95% Upper Conf Limit 0.7547 + + Test of H0: Simple Kappa = 0 + + ASE under H0 0.1484 + Z 3.2626 + One-sided Pr > Z 0.0006 + Two-sided Pr > |Z| 0.0011''' + '\n' + + def test_option(self): + kappa = cohens_kappa(table10, return_results=False) + assert_almost_equal(kappa, self.res2[0], decimal=4) + +class TestWeightedCohens(CheckCohens): + #comparison to printout of a SAS example + def __init__(self): + #temporary: res instance is at last position + self.res = cohens_kappa(table10, weights=[0, 1, 2]) + res10w_sas = [0.4701, 0.1457, 0.1845, 0.7558] + res10w_sash0 = [0.1426, 3.2971, 0.0005, 0.0010] #for test H0:kappa=0 + self.res2 = res10w_sas + res10w_sash0 #concatenate + + self.res_string = '''\ + Weighted Kappa Coefficient + -------------------------------- + Kappa 0.4701 + ASE 0.1457 + 95% Lower Conf Limit 0.1845 + 95% Upper Conf Limit 0.7558 + + Test of H0: Weighted Kappa = 0 + + ASE under H0 0.1426 + Z 3.2971 + One-sided Pr > Z 0.0005 + Two-sided Pr > |Z| 0.0010''' + '\n' + + def test_option(self): + kappa = cohens_kappa(table10, weights=[0, 1, 2], return_results=False) + assert_almost_equal(kappa, self.res2[0], decimal=4) + + +def test_cohenskappa_weights(): + #some tests for equivalent results with different options + np.random.seed(9743678) + table = np.random.randint(0, 10, size=(5,5)) + 5*np.eye(5) + + #example aggregation, 2 groups of levels + mat = np.array([[1,1,1, 0,0],[0,0,0,1,1]]) + table_agg = np.dot(np.dot(mat, table), mat.T) + res1 = cohens_kappa(table, weights=np.arange(5) > 2, wt='linear') + res2 = cohens_kappa(table_agg, weights=np.arange(2), wt='linear') + assert_almost_equal(res1.kappa, res2.kappa, decimal=14) + assert_almost_equal(res1.var_kappa, res2.var_kappa, decimal=14) + + #equivalence toeplitz with linear for special cases + res1 = cohens_kappa(table, weights=2*np.arange(5), wt='linear') + res2 = cohens_kappa(table, weights=2*np.arange(5), wt='toeplitz') + res3 = cohens_kappa(table, weights=res1.weights[0], wt='toeplitz') + #2-Dim weights + res4 = cohens_kappa(table, weights=res1.weights) + + assert_almost_equal(res1.kappa, res2.kappa, decimal=14) + assert_almost_equal(res1.var_kappa, res2.var_kappa, decimal=14) + + assert_almost_equal(res1.kappa, res3.kappa, decimal=14) + assert_almost_equal(res1.var_kappa, res3.var_kappa, decimal=14) + + assert_almost_equal(res1.kappa, res4.kappa, decimal=14) + assert_almost_equal(res1.var_kappa, res4.var_kappa, decimal=14) + + #equivalence toeplitz with quadratic for special cases + res1 = cohens_kappa(table, weights=5*np.arange(5)**2, wt='toeplitz') + res2 = cohens_kappa(table, weights=5*np.arange(5), wt='quadratic') + assert_almost_equal(res1.kappa, res2.kappa, decimal=14) + assert_almost_equal(res1.var_kappa, res2.var_kappa, decimal=14) + +anxiety = np.array([ + 3, 3, 3, 4, 5, 5, 2, 3, 5, 2, 2, 6, 1, 5, 2, 2, 1, 2, 4, 3, 3, 6, 4, + 6, 2, 4, 2, 4, 3, 3, 2, 3, 3, 3, 2, 2, 1, 3, 3, 4, 2, 1, 4, 4, 3, 2, + 1, 6, 1, 1, 1, 2, 3, 3, 1, 1, 3, 3, 2, 2 + ]).reshape(20,3, order='F') +anxiety_rownames = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', ] +anxiety_colnames = ['rater1', 'rater2', 'rater3', ] + + +def test_cohens_kappa_irr(): + + ck_w3 = Holder() + ck_w4 = Holder() + + #>r = kappa2(anxiety[,1:2], c(0,0,0,1,1,1)) + #> cat_items(r, pref="ck_w3.") + ck_w3.method = "Cohen's Kappa for 2 Raters (Weights: 0,0,0,1,1,1)" + ck_w3.irr_name = 'Kappa' + ck_w3.value = 0.1891892 + ck_w3.stat_name = 'z' + ck_w3.statistic = 0.5079002 + ck_w3.p_value = 0.6115233 + + #> r = kappa2(anxiety[,1:2], c(0,0,1,1,2,2)) + #> cat_items(r, pref="ck_w4.") + ck_w4.method = "Cohen's Kappa for 2 Raters (Weights: 0,0,1,1,2,2)" + ck_w4.irr_name = 'Kappa' + ck_w4.value = 0.2820513 + ck_w4.stat_name = 'z' + ck_w4.statistic = 1.257410 + ck_w4.p_value = 0.2086053 + + ck_w1 = Holder() + ck_w2 = Holder() + ck_w3 = Holder() + ck_w4 = Holder() + #> r = kappa2(anxiety[,2:3]) + #> cat_items(r, pref="ck_w1.") + ck_w1.method = "Cohen's Kappa for 2 Raters (Weights: unweighted)" + ck_w1.irr_name = 'Kappa' + ck_w1.value = -0.006289308 + ck_w1.stat_name = 'z' + ck_w1.statistic = -0.0604067 + ck_w1.p_value = 0.9518317 + + #> r = kappa2(anxiety[,2:3], "equal") + #> cat_items(r, pref="ck_w2.") + ck_w2.method = "Cohen's Kappa for 2 Raters (Weights: equal)" + ck_w2.irr_name = 'Kappa' + ck_w2.value = 0.1459075 + ck_w2.stat_name = 'z' + ck_w2.statistic = 1.282472 + ck_w2.p_value = 0.1996772 + + #> r = kappa2(anxiety[,2:3], "squared") + #> cat_items(r, pref="ck_w3.") + ck_w3.method = "Cohen's Kappa for 2 Raters (Weights: squared)" + ck_w3.irr_name = 'Kappa' + ck_w3.value = 0.2520325 + ck_w3.stat_name = 'z' + ck_w3.statistic = 1.437451 + ck_w3.p_value = 0.1505898 + + #> r = kappa2(anxiety[,2:3], c(0,0,1,1,2)) + #> cat_items(r, pref="ck_w4.") + ck_w4.method = "Cohen's Kappa for 2 Raters (Weights: 0,0,1,1,2)" + ck_w4.irr_name = 'Kappa' + ck_w4.value = 0.2391304 + ck_w4.stat_name = 'z' + ck_w4.statistic = 1.223734 + ck_w4.p_value = 0.2210526 + + all_cases = [(ck_w1, None, None), + (ck_w2, None, 'linear'), + (ck_w2, np.arange(5), None), + (ck_w2, np.arange(5), 'toeplitz'), + (ck_w3, None, 'quadratic'), + (ck_w3, np.arange(5)**2, 'toeplitz'), + (ck_w3, 4*np.arange(5)**2, 'toeplitz'), + (ck_w4, [0,0,1,1,2], 'toeplitz')] + + #Note R:irr drops the missing category level 4 and uses the reduced matrix + r = np.histogramdd(anxiety[:,1:], ([1, 2, 3, 4, 6, 7], [1, 2, 3, 4, 6, 7])) + + for res2, w, wt in all_cases: + msg = repr(w) + repr(wt) + res1 = cohens_kappa(r[0], weights=w, wt=wt) + assert_almost_equal(res1.kappa, res2.value, decimal=6, err_msg=msg) + assert_almost_equal(res1.z_value, res2.statistic, decimal=5, err_msg=msg) + assert_almost_equal(res1.pvalue_two_sided, res2.p_value, decimal=6, err_msg=msg) + + +def test_fleiss_kappa_irr(): + fleiss = Holder() + #> r = kappam.fleiss(diagnoses) + #> cat_items(r, pref="fleiss.") + fleiss.method = "Fleiss' Kappa for m Raters" + fleiss.irr_name = 'Kappa' + fleiss.value = 0.4302445 + fleiss.stat_name = 'z' + fleiss.statistic = 17.65183 + fleiss.p_value = 0 + data_ = aggregate_raters(diagnoses)[0] + res1_kappa = fleiss_kappa(data_) + assert_almost_equal(res1_kappa, fleiss.value, decimal=7) + +def test_to_table(): + data = diagnoses + res1 = to_table(data[:,:2]-1, 5) + res0 = np.asarray([[(data[:,:2]-1 == [i,j]).all(1).sum() + for j in range(5)] + for i in range(5)] ) + assert_equal(res1[0], res0) + + res2 = to_table(data[:,:2]) + assert_equal(res2[0], res0) + + bins = [0.5, 1.5, 2.5, 3.5, 4.5, 5.5] + res3 = to_table(data[:,:2], bins) + assert_equal(res3[0], res0) + + #more than 2 columns + res4 = to_table(data[:,:3]-1, bins=[-0.5, 0.5, 1.5, 2.5, 3.5, 4.5]) + res5 = to_table(data[:,:3]-1, bins=5) + assert_equal(res4[0].sum(-1), res0) + assert_equal(res5[0].sum(-1), res0) + + +def test_aggregate_raters(): + data = diagnoses + resf = aggregate_raters(data) + colsum = np.array([26, 26, 30, 55, 43]) + assert_equal(resf[0].sum(0), colsum) + + +if __name__ == '__main__': + import nose + nose.runmodule(argv=[__file__, '-vvs', '-x'#, '--pdb-failures' + ], exit=False) + diff --git a/statsmodels/stats/tests/test_mediation.py b/statsmodels/stats/tests/test_mediation.py new file mode 100644 index 0000000..19007b2 --- /dev/null +++ b/statsmodels/stats/tests/test_mediation.py @@ -0,0 +1,164 @@ +import numpy as np +import statsmodels.api as sm +import os +from statsmodels.stats.mediation import Mediation +import pandas as pd +from numpy.testing import assert_allclose +import patsy + + +# Compare to mediation R package vignette +df = [['index', 'Estimate', 'Lower CI bound', 'Upper CI bound', 'P-value'], + ['ACME (control)', 0.085106, 0.029938, 0.141525, 0.00], + ['ACME (treated)', 0.085674, 0.031089, 0.147762, 0.00], + ['ADE (control)', 0.016938, -0.129157, 0.121945, 0.66], + ['ADE (treated)', 0.017506, -0.139649, 0.130030, 0.66], + ['Total effect', 0.102612, -0.036749, 0.227213, 0.20], + ['Prop. mediated (control)', 0.698070, -6.901715, 2.725978, 0.20], + ['Prop. mediated (treated)', 0.718648, -6.145419, 2.510750, 0.20], + ['ACME (average)', 0.085390, 0.030272, 0.144768, 0.00], + ['ADE (average)', 0.017222, -0.134465, 0.125987, 0.66], + ['Prop. mediated (average)', 0.710900, -6.523567, 2.618364, 0.20]] +framing_boot_4231 = pd.DataFrame(df[1:], columns=df[0]).set_index('index') + +# Compare to mediation R package vignette +df = [['index', 'Estimate', 'Lower CI bound', 'Upper CI bound', 'P-value'], + ['ACME (control)', 0.075529, 0.024995, 0.132408, 0.00], + ['ACME (treated)', 0.076348, 0.027475, 0.130138, 0.00], + ['ADE (control)', 0.021389, -0.094323, 0.139148, 0.68], + ['ADE (treated)', 0.022207, -0.101239, 0.145740, 0.68], + ['Total effect', 0.097736, -0.025384, 0.225386, 0.16], + ['Prop. mediated (control)', 0.656820, -3.664956, 4.845269, 0.16], + ['Prop. mediated (treated)', 0.687690, -3.449415, 4.469289, 0.16], + ['ACME (average)', 0.075938, 0.026109, 0.129450, 0.00], + ['ADE (average)', 0.021798, -0.097781, 0.142444, 0.68], + ['Prop. mediated (average)', 0.669659, -3.557185, 4.657279, 0.16]] +framing_para_4231 = pd.DataFrame(df[1:], columns=df[0]).set_index('index') + + + +df = [['index', 'Estimate', 'Lower CI bound', 'Upper CI bound', 'P-value'], + ['ACME (control)', 0.065989, 0.003366, 0.152261, 0.04], + ['ACME (treated)', 0.081424, 0.008888, 0.199853, 0.04], + ['ADE (control)', 0.240392, -0.026286, 0.470918, 0.08], + ['ADE (treated)', 0.255827, -0.030681, 0.491535, 0.08], + ['Total effect', 0.321816, 0.037238, 0.549530, 0.00], + ['Prop. mediated (control)', 0.196935, 0.015232, 1.864804, 0.04], + ['Prop. mediated (treated)', 0.248896, 0.032229, 1.738846, 0.04], + ['ACME (average)', 0.073707, 0.006883, 0.169923, 0.04], + ['ADE (average)', 0.248109, -0.028483, 0.478978, 0.08], + ['Prop. mediated (average)', 0.226799, 0.028865, 1.801825, 0.04]] +framing_moderated_4231 = pd.DataFrame(df[1:], columns=df[0]).set_index('index') + + +def test_framing_example(): + + cur_dir = os.path.dirname(os.path.abspath(__file__)) + data = pd.read_csv(os.path.join(cur_dir, 'results', "framing.csv")) + + outcome = np.asarray(data["cong_mesg"]) + outcome_exog = patsy.dmatrix("emo + treat + age + educ + gender + income", data, + return_type='dataframe') + probit = sm.families.links.probit + outcome_model = sm.GLM(outcome, outcome_exog, family=sm.families.Binomial(link=probit)) + + mediator = np.asarray(data["emo"]) + mediator_exog = patsy.dmatrix("treat + age + educ + gender + income", data, + return_type='dataframe') + mediator_model = sm.OLS(mediator, mediator_exog) + + tx_pos = [outcome_exog.columns.tolist().index("treat"), + mediator_exog.columns.tolist().index("treat")] + med_pos = outcome_exog.columns.tolist().index("emo") + + med = Mediation(outcome_model, mediator_model, tx_pos, med_pos, + outcome_fit_kwargs={'atol':1e-11}) + + np.random.seed(4231) + para_rslt = med.fit(method='parametric', n_rep=100) + diff = np.asarray(para_rslt.summary() - framing_para_4231) + assert_allclose(diff, 0, atol=1e-6) + + np.random.seed(4231) + boot_rslt = med.fit(method='boot', n_rep=100) + diff = np.asarray(boot_rslt.summary() - framing_boot_4231) + assert_allclose(diff, 0, atol=1e-6) + + + +def test_framing_example_moderator(): + # moderation without formulas, generally not useful but test anyway + + cur_dir = os.path.dirname(os.path.abspath(__file__)) + data = pd.read_csv(os.path.join(cur_dir, 'results', "framing.csv")) + + outcome = np.asarray(data["cong_mesg"]) + outcome_exog = patsy.dmatrix("emo + treat + age + educ + gender + income", data, + return_type='dataframe') + probit = sm.families.links.probit + outcome_model = sm.GLM(outcome, outcome_exog, family=sm.families.Binomial(link=probit)) + + mediator = np.asarray(data["emo"]) + mediator_exog = patsy.dmatrix("treat + age + educ + gender + income", data, + return_type='dataframe') + mediator_model = sm.OLS(mediator, mediator_exog) + + tx_pos = [outcome_exog.columns.tolist().index("treat"), + mediator_exog.columns.tolist().index("treat")] + med_pos = outcome_exog.columns.tolist().index("emo") + + ix = (outcome_exog.columns.tolist().index("age"), + mediator_exog.columns.tolist().index("age")) + moderators = {ix : 20} + med = Mediation(outcome_model, mediator_model, tx_pos, med_pos, + moderators=moderators) + + # Just a smoke test + np.random.seed(4231) + med_rslt = med.fit(method='parametric', n_rep=100) + + +def test_framing_example_formula(): + + cur_dir = os.path.dirname(os.path.abspath(__file__)) + data = pd.read_csv(os.path.join(cur_dir, 'results', "framing.csv")) + + probit = sm.families.links.probit + outcome_model = sm.GLM.from_formula("cong_mesg ~ emo + treat + age + educ + gender + income", + data, family=sm.families.Binomial(link=probit)) + + mediator_model = sm.OLS.from_formula("emo ~ treat + age + educ + gender + income", data) + + med = Mediation(outcome_model, mediator_model, "treat", "emo", + outcome_fit_kwargs={'atol': 1e-11}) + + np.random.seed(4231) + med_rslt = med.fit(method='boot', n_rep=100) + diff = np.asarray(med_rslt.summary() - framing_boot_4231) + assert_allclose(diff, 0, atol=1e-6) + + np.random.seed(4231) + med_rslt = med.fit(method='parametric', n_rep=100) + diff = np.asarray(med_rslt.summary() - framing_para_4231) + assert_allclose(diff, 0, atol=1e-6) + + +def test_framing_example_moderator_formula(): + + cur_dir = os.path.dirname(os.path.abspath(__file__)) + data = pd.read_csv(os.path.join(cur_dir, 'results', "framing.csv")) + + probit = sm.families.links.probit + outcome_model = sm.GLM.from_formula("cong_mesg ~ emo + treat*age + emo*age + educ + gender + income", + data, family=sm.families.Binomial(link=probit)) + + mediator_model = sm.OLS.from_formula("emo ~ treat*age + educ + gender + income", data) + + moderators = {"age" : 20} + med = Mediation(outcome_model, mediator_model, "treat", "emo", + moderators=moderators) + + np.random.seed(4231) + med_rslt = med.fit(method='parametric', n_rep=100) + diff = np.asarray(med_rslt.summary() - framing_moderated_4231) + assert_allclose(diff, 0, atol=1e-6) diff --git a/statsmodels/stats/tests/test_moment_helpers.py b/statsmodels/stats/tests/test_moment_helpers.py new file mode 100644 index 0000000..951e01c --- /dev/null +++ b/statsmodels/stats/tests/test_moment_helpers.py @@ -0,0 +1,109 @@ +# -*- coding: utf-8 -*- +""" +Created on Sun Oct 16 17:33:56 2011 + +Author: Josef Perktold +""" + +from statsmodels.stats import moment_helpers +from statsmodels.stats.moment_helpers import (cov2corr, + mvsk2mc, mc2mvsk, mnc2mc, mc2mnc, cum2mc, mc2cum, + mnc2cum) + +import numpy as np +from numpy.testing import assert_almost_equal, assert_, assert_equal + +def test_cov2corr(): + cov_a = np.ones((3,3))+np.diag(np.arange(1,4)**2 - 1) + corr_a = np.array([[1, 1/2., 1/3.],[1/2., 1, 1/2./3.],[1/3., 1/2./3., 1]]) + + corr = cov2corr(cov_a) + assert_almost_equal(corr, corr_a, decimal=15) + + cov_mat = np.matrix(cov_a) + corr_mat = cov2corr(cov_mat) + assert_(isinstance(corr_mat, np.matrixlib.defmatrix.matrix)) + assert_equal(corr_mat, corr) + + cov_ma = np.ma.array(cov_a) + corr_ma = cov2corr(cov_ma) + assert_equal(corr_mat, corr) + + assert_(isinstance(corr_ma, np.ma.core.MaskedArray)) + + cov_ma2 = np.ma.array(cov_a, mask = [[False, True, False], + [True, False, False], + [False, False, False]]) + + corr_ma2 = cov2corr(cov_ma2) + assert_(np.ma.allclose(corr_ma, corr, atol=1e-15)) + assert_equal(corr_ma2.mask, cov_ma2.mask) + + +def test_moment_conversion(): + #this was initially written for an old version of moment_helpers + #I'm not sure whether there are not redundant cases after moving functions + ms = [( [0.0, 1, 0, 3], [0.0, 1.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0] ), + ( [1.0, 1, 0, 3], [1.0, 1.0, 0.0, 0.0], [1.0, 0.0, -1.0, 6.0] ), + ( [0.0, 1, 1, 3], [0.0, 1.0, 1.0, 0.0], [0.0, 1.0, 1.0, 0.0] ), + ( [1.0, 1, 1, 3], [1.0, 1.0, 1.0, 0.0], [1.0, 0.0, 0.0, 2.0] ), + ( [1.0, 1, 1, 4], [1.0, 1.0, 1.0, 1.0], [1.0, 0.0, 0.0, 3.0] ), + ( [1.0, 2, 0, 3], [1.0, 2.0, 0.0, -9.0], [1.0, 1.0, -4.0, 9.0] ), + ( [0.0, 2, 1, 3], [0.0, 2.0, 1.0, -9.0], [0.0, 2.0, 1.0, -9.0] ), + ( [1.0, 0.5, 0, 3], [1.0, 0.5, 0.0, 2.25], [1.0, -0.5, 0.5, 2.25] ), #neg.variance if mnc2 cumulant + assert_equal(mnc2cum(mc2mnc(mom[0])),mom[1]) + assert_equal(mnc2cum(mom[0]),mom[2]) + if len(mom) <= 4: + assert_equal(mc2cum(mom[0]),mom[1]) + + for mom in ms: + # test cumulant -> moment + assert_equal(cum2mc(mom[1]),mom[0]) + assert_equal(mc2mnc(cum2mc(mom[2])),mom[0]) + if len(mom) <= 4: + assert_equal(cum2mc(mom[1]),mom[0]) + + for mom in ms: + #round trip: mnc -> cum -> mc == mnc -> mc, + assert_equal(cum2mc(mnc2cum(mom[0])),mnc2mc(mom[0])) + + + for mom in ms: + #round trip: mc -> mnc -> mc == mc, + assert_equal(mc2mnc(mnc2mc(mom[0])), mom[0]) + + for mom in (m for m in ms if len(m[0]) == 4): + #print "testing", mom + #round trip: mc -> mvsk -> mc == mc + assert_equal(mvsk2mc(mc2mvsk(mom[0])), mom[0]) + #round trip: mc -> mvsk -> mnc == mc -> mnc + #TODO: mvsk2mnc not defined + #assert_equal(mvsk2mnc(mc2mvsk(mom[0])), mc2mnc(mom[0])) + + +def test_moment_conversion_types(): + # written in 2009 + #why did I use list as return type + all_f = ['cum2mc', 'cum2mc', 'mc2cum', 'mc2mnc', + 'mc2mvsk', 'mnc2cum', 'mnc2mc', 'mnc2mc', + 'mvsk2mc', 'mvsk2mnc'] + assert np.all([isinstance(getattr(moment_helpers,f)([1.0, 1, 0, 3]),list) or + isinstance(getattr(moment_helpers,f)(np.array([1.0, 1, 0, 3])),tuple) + for f in all_f]) + assert np.all([isinstance(getattr(moment_helpers,f)(np.array([1.0, 1, 0, 3])),list) or + isinstance(getattr(moment_helpers,f)(np.array([1.0, 1, 0, 3])),tuple) + for f in all_f]) + assert np.all([isinstance(getattr(moment_helpers,f)(tuple([1.0, 1, 0, 3])),list) or + isinstance(getattr(moment_helpers,f)(np.array([1.0, 1, 0, 3])),tuple) + for f in all_f]) + +if __name__ == '__main__': + test_cov2corr() + test_moment_conversion() + test_moment_conversion_types() diff --git a/statsmodels/stats/tests/test_multi.py b/statsmodels/stats/tests/test_multi.py new file mode 100644 index 0000000..14623a5 --- /dev/null +++ b/statsmodels/stats/tests/test_multi.py @@ -0,0 +1,423 @@ +'''Tests for multipletests and fdr pvalue corrections + +Author : Josef Perktold + + +['b', 's', 'sh', 'hs', 'h', 'fdr_i', 'fdr_n', 'fdr_tsbh'] +are tested against R:multtest + +'hommel' is tested against R stats p_adjust (not available in multtest + +'fdr_gbs', 'fdr_2sbky' I did not find them in R, currently tested for + consistency only + +''' +from statsmodels.compat.python import iteritems +import numpy as np +from numpy.testing import (assert_almost_equal, assert_equal, assert_, + assert_allclose) + +from statsmodels.stats.multitest import (multipletests, fdrcorrection, + fdrcorrection_twostage, + NullDistribution, + local_fdr) +from statsmodels.stats.multicomp import tukeyhsd +from scipy.stats.distributions import norm + +pval0 = np.array([0.838541367553 , 0.642193923795 , 0.680845947633 , + 0.967833824309 , 0.71626938238 , 0.177096952723 , 5.23656777208e-005 , + 0.0202732688798 , 0.00028140506198 , 0.0149877310796]) + +res_multtest1 = np.array([[ 5.2365677720800003e-05, 5.2365677720800005e-04, + 5.2365677720800005e-04, 5.2365677720800005e-04, + 5.2353339704891422e-04, 5.2353339704891422e-04, + 5.2365677720800005e-04, 1.5337740764175588e-03], + [ 2.8140506198000000e-04, 2.8140506197999998e-03, + 2.5326455578199999e-03, 2.5326455578199999e-03, + 2.8104897961789277e-03, 2.5297966317768816e-03, + 1.4070253098999999e-03, 4.1211324652269442e-03], + [ 1.4987731079600001e-02, 1.4987731079600000e-01, + 1.1990184863680001e-01, 1.1990184863680001e-01, + 1.4016246580579017e-01, 1.1379719679449507e-01, + 4.9959103598666670e-02, 1.4632862843720582e-01], + [ 2.0273268879800001e-02, 2.0273268879799999e-01, + 1.4191288215860001e-01, 1.4191288215860001e-01, + 1.8520270949069695e-01, 1.3356756197485375e-01, + 5.0683172199499998e-02, 1.4844940238274187e-01], + [ 1.7709695272300000e-01, 1.0000000000000000e+00, + 1.0000000000000000e+00, 9.6783382430900000e-01, + 8.5760763426056130e-01, 6.8947825122356643e-01, + 3.5419390544599999e-01, 1.0000000000000000e+00], + [ 6.4219392379499995e-01, 1.0000000000000000e+00, + 1.0000000000000000e+00, 9.6783382430900000e-01, + 9.9996560644133570e-01, 9.9413539782557070e-01, + 8.9533672797500008e-01, 1.0000000000000000e+00], + [ 6.8084594763299999e-01, 1.0000000000000000e+00, + 1.0000000000000000e+00, 9.6783382430900000e-01, + 9.9998903512635740e-01, 9.9413539782557070e-01, + 8.9533672797500008e-01, 1.0000000000000000e+00], + [ 7.1626938238000004e-01, 1.0000000000000000e+00, + 1.0000000000000000e+00, 9.6783382430900000e-01, + 9.9999661886871472e-01, 9.9413539782557070e-01, + 8.9533672797500008e-01, 1.0000000000000000e+00], + [ 8.3854136755300002e-01, 1.0000000000000000e+00, + 1.0000000000000000e+00, 9.6783382430900000e-01, + 9.9999998796038225e-01, 9.9413539782557070e-01, + 9.3171263061444454e-01, 1.0000000000000000e+00], + [ 9.6783382430900000e-01, 1.0000000000000000e+00, + 1.0000000000000000e+00, 9.6783382430900000e-01, + 9.9999999999999878e-01, 9.9413539782557070e-01, + 9.6783382430900000e-01, 1.0000000000000000e+00]]) + + +res_multtest2_columns = ['rawp', 'Bonferroni', 'Holm', 'Hochberg', 'SidakSS', 'SidakSD', + 'BH', 'BY', 'ABH', 'TSBH_0.05'] + +rmethods = {'rawp':(0,'pval'), 'Bonferroni':(1,'b'), 'Holm':(2,'h'), + 'Hochberg':(3,'sh'), 'SidakSS':(4,'s'), 'SidakSD':(5,'hs'), + 'BH':(6,'fdr_i'), 'BY':(7,'fdr_n'), + 'TSBH_0.05':(9, 'fdr_tsbh')} + +NA = np.nan +# all rejections, except for Bonferroni and Sidak +res_multtest2 = np.array([ + 0.002, 0.004, 0.006, 0.008, 0.01, 0.012, 0.012, 0.024, 0.036, 0.048, + 0.06, 0.072, 0.012, 0.02, 0.024, 0.024, 0.024, 0.024, 0.012, 0.012, + 0.012, 0.012, 0.012, 0.012, 0.01194015976019192, 0.02376127616613988, + 0.03546430060660932, 0.04705017875634587, 0.058519850599, + 0.06987425045000606, 0.01194015976019192, 0.01984063872102404, + 0.02378486270400004, 0.023808512, 0.023808512, 0.023808512, 0.012, + 0.012, 0.012, 0.012, 0.012, 0.012, 0.0294, 0.0294, 0.0294, 0.0294, + 0.0294, 0.0294, NA, NA, NA, NA, NA, NA, 0, 0, 0, 0, 0, 0 + ]).reshape(6,10, order='F') + +res_multtest3 = np.array([ + 0.001, 0.002, 0.003, 0.004, 0.005, 0.05, 0.06, 0.07, 0.08, 0.09, 0.01, + 0.02, 0.03, 0.04, 0.05, 0.5, 0.6, 0.7, 0.8, 0.9, 0.01, 0.018, 0.024, + 0.028, 0.03, 0.25, 0.25, 0.25, 0.25, 0.25, 0.01, 0.018, 0.024, 0.028, + 0.03, 0.09, 0.09, 0.09, 0.09, 0.09, 0.00995511979025177, + 0.01982095664805061, 0.02959822305108317, 0.03928762649718986, + 0.04888986953422814, 0.4012630607616213, 0.4613848859051006, + 0.5160176928207072, 0.5656115457763677, 0.6105838818818925, + 0.00995511979025177, 0.0178566699880266, 0.02374950634358763, + 0.02766623106147537, 0.02962749064373438, 0.2262190625000001, + 0.2262190625000001, 0.2262190625000001, 0.2262190625000001, + 0.2262190625000001, 0.01, 0.01, 0.01, 0.01, 0.01, 0.08333333333333334, + 0.0857142857142857, 0.0875, 0.0888888888888889, 0.09, + 0.02928968253968254, 0.02928968253968254, 0.02928968253968254, + 0.02928968253968254, 0.02928968253968254, 0.2440806878306878, + 0.2510544217687075, 0.2562847222222222, 0.2603527336860670, + 0.2636071428571428, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 0.005, + 0.005, 0.005, 0.005, 0.005, 0.04166666666666667, 0.04285714285714286, + 0.04375, 0.04444444444444445, 0.045 + ]).reshape(10,10, order='F') + +res0_large = np.array([ + 0.00031612, 0.0003965, 0.00048442, 0.00051932, 0.00101436, 0.00121506, + 0.0014516, 0.00265684, 0.00430043, 0.01743686, 0.02080285, 0.02785414, + 0.0327198, 0.03494679, 0.04206808, 0.08067095, 0.23882767, 0.28352304, + 0.36140401, 0.43565145, 0.44866768, 0.45368782, 0.48282088, + 0.49223781, 0.55451638, 0.6207473, 0.71847853, 0.72424145, 0.85950263, + 0.89032747, 0.0094836, 0.011895, 0.0145326, 0.0155796, 0.0304308, + 0.0364518, 0.043548, 0.0797052, 0.1290129, 0.5231058, 0.6240855, + 0.8356242, 0.981594, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 0.0094836, 0.0114985, 0.01356376, 0.01402164, 0.02637336, + 0.0303765, 0.0348384, 0.06110732, 0.09460946, 0.36617406, 0.416057, + 0.52922866, 0.5889564, 0.59409543, 0.67308928, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 0.0094836, 0.0114985, 0.01356376, 0.01402164, + 0.02637336, 0.0303765, 0.0348384, 0.06110732, 0.09460946, 0.36617406, + 0.416057, 0.52922866, 0.5889564, 0.59409543, 0.67308928, 0.89032747, + 0.89032747, 0.89032747, 0.89032747, 0.89032747, 0.89032747, + 0.89032747, 0.89032747, 0.89032747, 0.89032747, 0.89032747, + 0.89032747, 0.89032747, 0.89032747, 0.89032747, 0.009440257627368331, + 0.01182686507401931, 0.01443098172617119, 0.01546285007478554, + 0.02998742566629453, 0.03581680249125385, 0.04264369065603335, + 0.0767094173291795, 0.1212818694859857, 0.410051586220387, + 0.4677640287633493, 0.5715077903157826, 0.631388450393325, + 0.656016359012282, 0.724552174001554, 0.919808283456286, + 0.999721715014484, 0.9999547032674126, 0.9999985652190126, + 0.999999964809746, 0.999999982525548, 0.999999986719131, + 0.999999997434160, 0.999999998521536, 0.999999999970829, + 0.999999999999767, 1, 1, 1, 1, 0.009440257627368331, + 0.01143489901147732, 0.0134754287611275, 0.01392738605848343, + 0.0260416568490015, 0.02993768724817902, 0.0342629726119179, + 0.0593542206208364, 0.09045742964699988, 0.308853956167216, + 0.343245865702423, 0.4153483370083637, 0.4505333180190900, + 0.453775200643535, 0.497247406680671, 0.71681858015803, + 0.978083969553718, 0.986889206426321, 0.995400461639735, + 0.9981506396214986, 0.9981506396214986, 0.9981506396214986, + 0.9981506396214986, 0.9981506396214986, 0.9981506396214986, + 0.9981506396214986, 0.9981506396214986, 0.9981506396214986, + 0.9981506396214986, 0.9981506396214986, 0.0038949, 0.0038949, + 0.0038949, 0.0038949, 0.0060753, 0.0060753, 0.006221142857142857, + 0.00996315, 0.01433476666666667, 0.05231058, 0.05673504545454545, + 0.06963535, 0.07488597857142856, 0.07488597857142856, 0.08413616, + 0.15125803125, 0.421460594117647, 0.4725384, 0.570637910526316, + 0.6152972625, 0.6152972625, 0.6152972625, 0.6152972625, 0.6152972625, + 0.665419656, 0.7162468846153845, 0.775972982142857, 0.775972982142857, + 0.889140651724138, 0.89032747, 0.01556007537622183, + 0.01556007537622183, 0.01556007537622183, 0.01556007537622183, + 0.02427074531648065, 0.02427074531648065, 0.02485338565390302, + 0.0398026560334295, 0.0572672083580799, 0.2089800939109816, + 0.2266557764630925, 0.2781923271071372, 0.2991685206792373, + 0.2991685206792373, 0.336122876445059, 0.6042738882921044, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.00220711, 0.00220711, 0.00220711, + 0.00220711, 0.00344267, 0.00344267, 0.003525314285714285, 0.005645785, + 0.00812303444444444, 0.029642662, 0.0321498590909091, + 0.03946003166666667, 0.04243538785714285, 0.04243538785714285, + 0.0476771573333333, 0.085712884375, 0.23882767, 0.26777176, + 0.323361482631579, 0.34866844875, 0.34866844875, 0.34866844875, + 0.34866844875, 0.34866844875, 0.3770711384, 0.4058732346153846, + 0.4397180232142857, 0.4397180232142857, 0.503846369310345, + 0.504518899666667, 0.00272643, 0.00272643, 0.00272643, 0.00272643, + 0.00425271, 0.00425271, 0.0043548, 0.006974205, 0.01003433666666667, + 0.036617406, 0.03971453181818182, 0.048744745, 0.052420185, + 0.052420185, 0.058895312, 0.105880621875, 0.295022415882353, + 0.33077688, 0.399446537368421, 0.43070808375, 0.43070808375, + 0.43070808375, 0.43070808375, 0.43070808375, 0.4657937592, + 0.5013728192307692, 0.5431810875, 0.5431810875, 0.622398456206897, + 0.623229229 + ]).reshape(30,10, order='F') + + +class CheckMultiTestsMixin(object): + def test_multi_pvalcorrection(self): + #test against R package multtest mt.rawp2adjp + + res_multtest = self.res2 + pval0 = res_multtest[:,0] + + for k,v in iteritems(rmethods): + if v[1] in self.methods: + reject, pvalscorr = multipletests(pval0, + alpha=self.alpha, + method=v[1])[:2] + assert_almost_equal(pvalscorr, res_multtest[:,v[0]], 15) + assert_equal(reject, pvalscorr <= self.alpha) + + pvalscorr = np.sort(fdrcorrection(pval0, method='n')[1]) + assert_almost_equal(pvalscorr, res_multtest[:,7], 15) + pvalscorr = np.sort(fdrcorrection(pval0, method='i')[1]) + assert_almost_equal(pvalscorr, res_multtest[:,6], 15) + +class TestMultiTests1(CheckMultiTestsMixin): + def __init__(self): + self.methods = ['b', 's', 'sh', 'hs', 'h', 'fdr_i', 'fdr_n'] + self.alpha = 0.1 + self.res2 = res_multtest1 + +class TestMultiTests2(CheckMultiTestsMixin): + # case: all hypothesis rejected (except 'b' and 's' + def __init__(self): + self.methods = ['b', 's', 'sh', 'hs', 'h', 'fdr_i', 'fdr_n'] + self.alpha = 0.05 + self.res2 = res_multtest2 + +class TestMultiTests3(CheckMultiTestsMixin): + def __init__(self): + self.methods = ['b', 's', 'sh', 'hs', 'h', 'fdr_i', 'fdr_n', + 'fdr_tsbh'] + self.alpha = 0.05 + self.res2 = res0_large + +class TestMultiTests4(CheckMultiTestsMixin): + # in simulations, all two stage fdr, fdr_tsbky, fdr_tsbh, fdr_gbs, have in + # some cases (cases with large Alternative) an FDR that looks too large + # this is the first case #rejected = 12, DGP : has 10 false + def __init__(self): + self.methods = ['b', 's', 'sh', 'hs', 'h', 'fdr_i', 'fdr_n', + 'fdr_tsbh'] + self.alpha = 0.05 + self.res2 = res_multtest3 + +def test_pvalcorrection_reject(): + # consistency test for reject boolean and pvalscorr + + for alpha in [0.01, 0.05, 0.1]: + for method in ['b', 's', 'sh', 'hs', 'h', 'hommel', 'fdr_i', 'fdr_n', + 'fdr_tsbky', 'fdr_tsbh', 'fdr_gbs']: + for ii in range(11): + pval1 = np.hstack((np.linspace(0.0001, 0.0100, ii), + np.linspace(0.05001, 0.11, 10 - ii))) + # using .05001 instead of 0.05 to avoid edge case issue #768 + reject, pvalscorr = multipletests(pval1, alpha=alpha, + method=method)[:2] + #print 'reject.sum', v[1], reject.sum() + msg = 'case %s %3.2f rejected:%d\npval_raw=%r\npvalscorr=%r' % ( + method, alpha, reject.sum(), pval1, pvalscorr) + assert_equal(reject, pvalscorr <= alpha, err_msg=msg) + #yield assert_equal, reject, pvalscorr <= alpha #, msg + + +def test_hommel(): + #tested agains R stats p_adjust(pval0, method='hommel') + pval0 = np.array( + [ 0.00116, 0.00924, 0.01075, 0.01437, 0.01784, 0.01918, + 0.02751, 0.02871, 0.03054, 0.03246, 0.04259, 0.06879, + 0.0691 , 0.08081, 0.08593, 0.08993, 0.09386, 0.09412, + 0.09718, 0.09758, 0.09781, 0.09788, 0.13282, 0.20191, + 0.21757, 0.24031, 0.26061, 0.26762, 0.29474, 0.32901, + 0.41386, 0.51479, 0.52461, 0.53389, 0.56276, 0.62967, + 0.72178, 0.73403, 0.87182, 0.95384]) + + result_ho = np.array( + [ 0.0464 , 0.25872 , 0.29025 , + 0.3495714285714286, 0.41032 , 0.44114 , + 0.57771 , 0.60291 , 0.618954 , + 0.6492 , 0.7402725000000001, 0.86749 , + 0.86749 , 0.8889100000000001, 0.8971477777777778, + 0.8993 , 0.9175374999999999, 0.9175374999999999, + 0.9175374999999999, 0.9175374999999999, 0.9175374999999999, + 0.9175374999999999, 0.95384 , 0.9538400000000001, + 0.9538400000000001, 0.9538400000000001, 0.9538400000000001, + 0.9538400000000001, 0.9538400000000001, 0.9538400000000001, + 0.9538400000000001, 0.9538400000000001, 0.9538400000000001, + 0.9538400000000001, 0.9538400000000001, 0.9538400000000001, + 0.9538400000000001, 0.9538400000000001, 0.9538400000000001, + 0.9538400000000001]) + + rej, pvalscorr, _, _ = multipletests(pval0, alpha=0.1, method='ho') + assert_almost_equal(pvalscorr, result_ho, 15) + assert_equal(rej, result_ho < 0.1) #booleans + +def test_fdr_bky(): + # test for fdrcorrection_twostage + # example from BKY + pvals = [0.0001, 0.0004, 0.0019, 0.0095, 0.0201, 0.0278, 0.0298, 0.0344, 0.0459, + 0.3240, 0.4262, 0.5719, 0.6528, 0.7590, 1.000 ] + + #no test for corrected p-values, but they are inherited + #same number of rejection as in BKY paper: + #single step-up:4, two-stage:8, iterated two-step:9 + #also alpha_star is the same as theirs for TST + #print fdrcorrection0(pvals, alpha=0.05, method='indep') + #print fdrcorrection_twostage(pvals, alpha=0.05, iter=False) + res_tst = fdrcorrection_twostage(pvals, alpha=0.05, iter=False) + assert_almost_equal([0.047619, 0.0649], res_tst[-1][:2],3) #alpha_star for stage 2 + assert_equal(8, res_tst[0].sum()) + #print fdrcorrection_twostage(pvals, alpha=0.05, iter=True) + +def test_issorted(): + # test that is_sorted keyword works correctly + # the fdrcorrection functions are tested indirectly + from statsmodels.stats.multitest import multitest_methods_names + + # data generated as random numbers np.random.beta(0.2, 0.5, size=10) + pvals = np.array([31, 9958111, 7430818, 8653643, 9892855, 876, 2651691, + 145836, 9931, 6174747]) * 1e-7 + sortind = np.argsort(pvals) + sortrevind = sortind.argsort() + pvals_sorted = pvals[sortind] + + for method in multitest_methods_names: + res1 = multipletests(pvals, method=method, is_sorted=False) + res2 = multipletests(pvals_sorted, method=method, is_sorted=True) + assert_equal(res2[0][sortrevind], res1[0]) + assert_allclose(res2[0][sortrevind], res1[0], rtol=1e-10) + + +def test_tukeyhsd(): + #example multicomp in R p 83 + + res = '''\ + pair diff lwr upr p adj + P-M 8.150000 -10.037586 26.3375861 0.670063958 + S-M -3.258333 -21.445919 14.9292527 0.982419709 + T-M 23.808333 5.620747 41.9959194 0.006783701 + V-M 4.791667 -13.395919 22.9792527 0.931020848 + S-P -11.408333 -29.595919 6.7792527 0.360680099 + T-P 15.658333 -2.529253 33.8459194 0.113221634 + V-P -3.358333 -21.545919 14.8292527 0.980350080 + T-S 27.066667 8.879081 45.2542527 0.002027122 + V-S 8.050000 -10.137586 26.2375861 0.679824487 + V-T -19.016667 -37.204253 -0.8290806 0.037710044 + ''' + + res = np.array([[ 8.150000, -10.037586, 26.3375861, 0.670063958], + [-3.258333, -21.445919, 14.9292527, 0.982419709], + [23.808333, 5.620747, 41.9959194, 0.006783701], + [ 4.791667, -13.395919, 22.9792527, 0.931020848], + [-11.408333, -29.595919, 6.7792527, 0.360680099], + [15.658333, -2.529253, 33.8459194, 0.113221634], + [-3.358333, -21.545919, 14.8292527, 0.980350080], + [27.066667, 8.879081, 45.2542527, 0.002027122], + [ 8.050000, -10.137586, 26.2375861, 0.679824487], + [-19.016667, -37.204253, -0.8290806, 0.037710044]]) + + m_r = [94.39167, 102.54167, 91.13333, 118.20000, 99.18333] + myres = tukeyhsd(m_r, 6, 110.8, alpha=0.05, df=4) + pairs, reject, meandiffs, std_pairs, confint, q_crit = myres[:6] + assert_almost_equal(meandiffs, res[:, 0], decimal=5) + assert_almost_equal(confint, res[:, 1:3], decimal=2) + assert_equal(reject, res[:, 3]<0.05) + + +def test_local_fdr(): + + # Create a mixed population of Z-scores: 1000 standard normal and + # 20 uniformly distributed between 3 and 4. + grid = np.linspace(0.001, 0.999, 1000) + z0 = norm.ppf(grid) + z1 = np.linspace(3, 4, 20) + zs = np.concatenate((z0, z1)) + + # Exact local FDR for U(3, 4) component. + f1 = np.exp(-z1**2 / 2) / np.sqrt(2*np.pi) + r = len(z1) / float(len(z0) + len(z1)) + f1 /= (1 - r) * f1 + r + + fdr = local_fdr(zs) + fdr1 = fdr[len(z0):] + + assert_allclose(f1, fdr1, rtol=0.05, atol=0.1) + + +def test_null_distribution(): + + # Create a mixed population of Z-scores: 1000 standard normal and + # 20 uniformly distributed between 3 and 4. + grid = np.linspace(0.001, 0.999, 1000) + z0 = norm.ppf(grid) + z1 = np.linspace(3, 4, 20) + zs = np.concatenate((z0, z1)) + emp_null = NullDistribution(zs, estimate_null_proportion=True) + + assert_allclose(emp_null.mean, 0, atol=1e-5, rtol=1e-5) + assert_allclose(emp_null.sd, 1, atol=1e-5, rtol=1e-2) + assert_allclose(emp_null.null_proportion, 0.98, atol=1e-5, rtol=1e-2) + + # consistency check + assert_allclose(emp_null.pdf(np.r_[-1, 0, 1]), + norm.pdf(np.r_[-1, 0, 1], loc=emp_null.mean, scale=emp_null.sd), + rtol=1e-13) + + +def test_null_constrained(): + + # Create a mixed population of Z-scores: 1000 standard normal and + # 20 uniformly distributed between 3 and 4. + grid = np.linspace(0.001, 0.999, 1000) + z0 = norm.ppf(grid) + z1 = np.linspace(3, 4, 20) + zs = np.concatenate((z0, z1)) + + for estimate_mean in False,True: + for estimate_scale in False,True: + for estimate_prob in False,True: + + emp_null = NullDistribution(zs, estimate_mean=estimate_mean, + estimate_scale=estimate_scale, + estimate_null_proportion=estimate_prob) + + if not estimate_mean: + assert_allclose(emp_null.mean, 0, atol=1e-5, rtol=1e-5) + if not estimate_scale: + assert_allclose(emp_null.sd, 1, atol=1e-5, rtol=1e-2) + if not estimate_prob: + assert_allclose(emp_null.null_proportion, 1, atol=1e-5, rtol=1e-2) + + # consistency check + assert_allclose(emp_null.pdf(np.r_[-1, 0, 1]), + norm.pdf(np.r_[-1, 0, 1], loc=emp_null.mean, + scale=emp_null.sd), + rtol=1e-13) diff --git a/statsmodels/stats/tests/test_nonparametric.py b/statsmodels/stats/tests/test_nonparametric.py new file mode 100644 index 0000000..13de0bd --- /dev/null +++ b/statsmodels/stats/tests/test_nonparametric.py @@ -0,0 +1,262 @@ +# -*- coding: utf-8 -*- +""" + +Created on Fri Jul 05 14:05:24 2013 + +Author: Josef Perktold +""" +from statsmodels.compat.python import lzip, range +import numpy as np +from numpy.testing import assert_allclose, assert_almost_equal +from statsmodels.sandbox.stats.runs import (mcnemar, cochrans_q, Runs, + symmetry_bowker, + runstest_1samp, runstest_2samp) + +def _expand_table(table): + '''expand a 2 by 2 contingency table to observations + ''' + return np.repeat([[1, 1], [1, 0], [0, 1], [0, 0]], table.ravel(), axis=0) + + +def test_mcnemar_exact(): + f_obs1 = np.array([[101, 121], [59, 33]]) + f_obs2 = np.array([[101, 70], [59, 33]]) + f_obs3 = np.array([[101, 80], [59, 33]]) + f_obs4 = np.array([[101, 30], [60, 33]]) + f_obs5 = np.array([[101, 10], [30, 33]]) + f_obs6 = np.array([[101, 10], [10, 33]]) + + #vassar college online computation + res1 = 0.000004 + res2 = 0.378688 + res3 = 0.089452 + res4 = 0.00206 + res5 = 0.002221 + res6 = 1. + + assert_almost_equal(mcnemar(f_obs1, exact=True), [59, res1], decimal=6) + assert_almost_equal(mcnemar(f_obs2, exact=True), [59, res2], decimal=6) + assert_almost_equal(mcnemar(f_obs3, exact=True), [59, res3], decimal=6) + assert_almost_equal(mcnemar(f_obs4, exact=True), [30, res4], decimal=6) + assert_almost_equal(mcnemar(f_obs5, exact=True), [10, res5], decimal=6) + assert_almost_equal(mcnemar(f_obs6, exact=True), [10, res6], decimal=6) + + x, y = _expand_table(f_obs2).T # tuple unpack + assert_allclose(mcnemar(f_obs2, exact=True), + mcnemar(x, y, exact=True), rtol=1e-13) + + +def test_mcnemar_chisquare(): + f_obs1 = np.array([[101, 121], [59, 33]]) + f_obs2 = np.array([[101, 70], [59, 33]]) + f_obs3 = np.array([[101, 80], [59, 33]]) + + #> mcn = mcnemar.test(matrix(c(101, 121, 59, 33),nrow=2)) + res1 = [2.067222e01, 5.450095e-06] + res2 = [0.7751938, 0.3786151] + res3 = [2.87769784, 0.08981434] + + assert_allclose(mcnemar(f_obs1, exact=False), res1, rtol=1e-6) + assert_allclose(mcnemar(f_obs2, exact=False), res2, rtol=1e-6) + assert_allclose(mcnemar(f_obs3, exact=False), res3, rtol=1e-6) + + # compare table versus observations + x, y = _expand_table(f_obs2).T # tuple unpack + assert_allclose(mcnemar(f_obs2, exact=False), + mcnemar(x, y, exact=False), rtol=1e-13) + + # test correction = False + res1 = [2.135556e01, 3.815136e-06] + res2 = [0.9379845, 0.3327967] + res3 = [3.17266187, 0.07488031] + + res = mcnemar(f_obs1, exact=False, correction=False) + assert_allclose(res, res1, rtol=1e-6) + res = mcnemar(f_obs2, exact=False, correction=False) + assert_allclose(res, res2, rtol=1e-6) + res = mcnemar(f_obs3, exact=False, correction=False) + assert_allclose(res, res3, rtol=1e-6) + + +def test_mcnemar_vectorized(): + ttk = np.random.randint(5,15, size=(2,2,3)) + mcnemar(ttk) + res = mcnemar(ttk, exact=False) + res1 = lzip(*[mcnemar(ttk[:,:,i], exact=False) for i in range(3)]) + assert_allclose(res, res1, rtol=1e-13) + + res = mcnemar(ttk, exact=False, correction=False) + res1 = lzip(*[mcnemar(ttk[:,:,i], exact=False, correction=False) + for i in range(3)]) + assert_allclose(res, res1, rtol=1e-13) + + res = mcnemar(ttk, exact=True) + res1 = lzip(*[mcnemar(ttk[:,:,i], exact=True) for i in range(3)]) + assert_allclose(res, res1, rtol=1e-13) + + +def test_symmetry_bowker(): + table = np.array([0, 3, 4, 4, 2, 4, 1, 2, 4, 3, 5, 3, 0, 0, 2, 2, 3, 0, 0, + 1, 5, 5, 5, 5, 5]).reshape(5, 5) + + res = symmetry_bowker(table) + mcnemar5_1 = dict(statistic=7.001587, pvalue=0.7252951, parameters=(10,), + distr='chi2') + assert_allclose(res[:2], [mcnemar5_1['statistic'], mcnemar5_1['pvalue']], + rtol=1e-7) + + res = symmetry_bowker(1 + table) + mcnemar5_1b = dict(statistic=5.355988, pvalue=0.8661652, parameters=(10,), + distr='chi2') + assert_allclose(res[:2], [mcnemar5_1b['statistic'], mcnemar5_1b['pvalue']], + rtol=1e-7) + + + table = np.array([2, 2, 3, 6, 2, 3, 4, 3, 6, 6, 6, 7, 1, 9, 6, 7, 1, 1, 9, + 8, 0, 1, 8, 9, 4]).reshape(5, 5) + + res = symmetry_bowker(table) + mcnemar5_2 = dict(statistic=18.76432, pvalue=0.04336035, parameters=(10,), + distr='chi2') + assert_allclose(res[:2], [mcnemar5_2['statistic'], mcnemar5_2['pvalue']], + rtol=1.5e-7) + + res = symmetry_bowker(1 + table) + mcnemar5_2b = dict(statistic=14.55256, pvalue=0.1492461, parameters=(10,), + distr='chi2') + assert_allclose(res[:2], [mcnemar5_2b['statistic'], mcnemar5_2b['pvalue']], + rtol=1e-7) + + +def test_cochransq(): + #example from dataplot docs, Conovover p. 253 + #http://www.itl.nist.gov/div898/software/dataplot/refman1/auxillar/cochran.htm + x = np.array([[1, 1, 1], + [1, 1, 1], + [0, 1, 0], + [1, 1, 0], + [0, 0, 0], + [1, 1, 1], + [1, 1, 1], + [1, 1, 0], + [0, 0, 1], + [0, 1, 0], + [1, 1, 1], + [1, 1, 1]]) + res_qstat = 2.8 + res_pvalue = 0.246597 + assert_almost_equal(cochrans_q(x), [res_qstat, res_pvalue]) + + #equivalence of mcnemar and cochranq for 2 samples + a,b = x[:,:2].T + assert_almost_equal(mcnemar(a,b, exact=False, correction=False), + cochrans_q(x[:,:2])) + + +def test_cochransq2(): + # from an example found on web, verifies 13.286 + data = np.array(''' + 0 0 0 1 + 0 0 0 1 + 0 0 0 1 + 1 1 1 1 + 1 0 0 1 + 0 1 0 1 + 1 0 0 1 + 0 0 0 1 + 0 1 0 0 + 0 0 0 0 + 1 0 0 1 + 0 0 1 1'''.split(), int).reshape(-1, 4) + + res = cochrans_q(data) + assert_allclose(res, [13.2857143, 0.00405776], rtol=1e-6) + + +def test_cochransq3(): + # another example compared to SAS + # in frequency weight format + dt = [('A', 'S1'), ('B', 'S1'), ('C', 'S1'), ('count', int)] + dta = np.array([('F', 'F', 'F', 6), + ('U', 'F', 'F', 2), + ('F', 'F', 'U', 16), + ('U', 'F', 'U', 4), + ('F', 'U', 'F', 2), + ('U', 'U', 'F', 6), + ('F', 'U', 'U', 4), + ('U', 'U', 'U', 6)], dt) + + cases = np.array([[0, 0, 0], + [1, 0, 0], + [0, 0, 1], + [1, 0, 1], + [0, 1, 0], + [1, 1, 0], + [0, 1, 1], + [1, 1, 1]]) + count = np.array([ 6, 2, 16, 4, 2, 6, 4, 6]) + data = np.repeat(cases, count, 0) + + res = cochrans_q(data) + assert_allclose(res, [8.4706, 0.0145], atol=5e-5) + +def test_runstest(): + #comparison numbers from R, tseries, runs.test + #currently only 2-sided used + x = np.array([1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1]) + + z_twosided = 1.386750 + pvalue_twosided = 0.1655179 + + z_greater = 1.386750 + pvalue_greater = 0.08275893 + + z_less = 1.386750 + pvalue_less = 0.917241 + + #print Runs(x).runs_test(correction=False) + assert_almost_equal(np.array(Runs(x).runs_test(correction=False)), + [z_twosided, pvalue_twosided], decimal=6) + + + # compare with runstest_1samp which should have same indicator + assert_almost_equal(runstest_1samp(x, correction=False), + [z_twosided, pvalue_twosided], decimal=6) + + x2 = x - 0.5 + np.random.uniform(-0.1, 0.1, size=len(x)) + assert_almost_equal(runstest_1samp(x2, cutoff=0, correction=False), + [z_twosided, pvalue_twosided], decimal=6) + + assert_almost_equal(runstest_1samp(x2, cutoff='mean', correction=False), + [z_twosided, pvalue_twosided], decimal=6) + assert_almost_equal(runstest_1samp(x2, cutoff=x2.mean(), correction=False), + [z_twosided, pvalue_twosided], decimal=6) + + # check median + assert_almost_equal(runstest_1samp(x2, cutoff='median', correction=False), + runstest_1samp(x2, cutoff=np.median(x2), correction=False), + decimal=6) + + +def test_runstest_2sample(): + # regression test, checked with MonteCarlo and looks reasonable + + x = [31.8, 32.8, 39.2, 36, 30, 34.5, 37.4] + y = [35.5, 27.6, 21.3, 24.8, 36.7, 30] + y[-1] += 1e-6 #avoid tie that creates warning + groups = np.concatenate((np.zeros(len(x)), np.ones(len(y)))) + + res = runstest_2samp(x, y) + res1 = (0.022428065200812752, 0.98210649318649212) + assert_allclose(res, res1, rtol=1e-6) + + # check as stacked array + res2 = runstest_2samp(x, y) + assert_allclose(res2, res, rtol=1e-6) + + xy = np.concatenate((x, y)) + res_1s = runstest_1samp(xy) + assert_allclose(res_1s, res1, rtol=1e-6) + # check cutoff + res2_1s = runstest_1samp(xy, xy.mean()) + assert_allclose(res2_1s, res_1s, rtol=1e-6) diff --git a/statsmodels/stats/tests/test_pairwise.py b/statsmodels/stats/tests/test_pairwise.py new file mode 100644 index 0000000..de93d06 --- /dev/null +++ b/statsmodels/stats/tests/test_pairwise.py @@ -0,0 +1,350 @@ +# -*- coding: utf-8 -*- +""" + +Created on Wed Mar 28 15:34:18 2012 + +Author: Josef Perktold +""" +import warnings +from nose.tools import assert_true +from statsmodels.compat.python import BytesIO, asbytes, range +import numpy as np +from numpy.testing import (assert_almost_equal, assert_equal, assert_, + assert_raises, assert_allclose) + +from statsmodels.stats.libqsturng import qsturng + +ss = '''\ + 43.9 1 1 + 39.0 1 2 + 46.7 1 3 + 43.8 1 4 + 44.2 1 5 + 47.7 1 6 + 43.6 1 7 + 38.9 1 8 + 43.6 1 9 + 40.0 1 10 + 89.8 2 1 + 87.1 2 2 + 92.7 2 3 + 90.6 2 4 + 87.7 2 5 + 92.4 2 6 + 86.1 2 7 + 88.1 2 8 + 90.8 2 9 + 89.1 2 10 + 68.4 3 1 + 69.3 3 2 + 68.5 3 3 + 66.4 3 4 + 70.0 3 5 + 68.1 3 6 + 70.6 3 7 + 65.2 3 8 + 63.8 3 9 + 69.2 3 10 + 36.2 4 1 + 45.2 4 2 + 40.7 4 3 + 40.5 4 4 + 39.3 4 5 + 40.3 4 6 + 43.2 4 7 + 38.7 4 8 + 40.9 4 9 + 39.7 4 10''' + +#idx Treatment StressReduction +ss2 = '''\ +1 mental 2 +2 mental 2 +3 mental 3 +4 mental 4 +5 mental 4 +6 mental 5 +7 mental 3 +8 mental 4 +9 mental 4 +10 mental 4 +11 physical 4 +12 physical 4 +13 physical 3 +14 physical 5 +15 physical 4 +16 physical 1 +17 physical 1 +18 physical 2 +19 physical 3 +20 physical 3 +21 medical 1 +22 medical 2 +23 medical 2 +24 medical 2 +25 medical 3 +26 medical 2 +27 medical 3 +28 medical 1 +29 medical 3 +30 medical 1''' + +ss3 = '''\ +1 24.5 +1 23.5 +1 26.4 +1 27.1 +1 29.9 +2 28.4 +2 34.2 +2 29.5 +2 32.2 +2 30.1 +3 26.1 +3 28.3 +3 24.3 +3 26.2 +3 27.8''' + +ss5 = '''\ +2 - 3\t4.340\t0.691\t7.989\t*** +2 - 1\t4.600\t0.951\t8.249\t*** +3 - 2\t-4.340\t-7.989\t-0.691\t*** +3 - 1\t0.260\t-3.389\t3.909\t- +1 - 2\t-4.600\t-8.249\t-0.951\t*** +1 - 3\t-0.260\t-3.909\t3.389\t''' + +cylinders = np.array([8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 4, 8, 8, 8, 8, 8, 8, 8, 8, 8, 4, 6, 6, 6, 4, 4, + 4, 4, 4, 4, 6, 8, 8, 8, 8, 4, 4, 4, 4, 8, 8, 8, 8, 6, 6, 6, 6, 4, 4, 4, 4, 6, 6, + 6, 6, 4, 4, 4, 4, 4, 8, 4, 6, 6, 8, 8, 8, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 6, 6, 4, 6, 4, 4, 4, 4, 4, 4, 4, 4]) +cyl_labels = np.array(['USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'France', + 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'Japan', 'USA', 'USA', 'USA', 'Japan', + 'Germany', 'France', 'Germany', 'Sweden', 'Germany', 'USA', 'USA', 'USA', 'USA', 'USA', 'Germany', + 'USA', 'USA', 'France', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'Germany', + 'Japan', 'USA', 'USA', 'USA', 'USA', 'Germany', 'Japan', 'Japan', 'USA', 'Sweden', 'USA', 'France', + 'Japan', 'Germany', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', + 'Germany', 'Japan', 'Japan', 'USA', 'USA', 'Japan', 'Japan', 'Japan', 'Japan', 'Japan', 'Japan', 'USA', + 'USA', 'USA', 'USA', 'Japan', 'USA', 'USA', 'USA', 'Germany', 'USA', 'USA', 'USA']) + +#accommodate recfromtxt for python 3.2, requires bytes +ss = asbytes(ss) +ss2 = asbytes(ss2) +ss3 = asbytes(ss3) +ss5 = asbytes(ss5) + +dta = np.recfromtxt(BytesIO(ss), names=("Rust","Brand","Replication")) +dta2 = np.recfromtxt(BytesIO(ss2), names = ("idx", "Treatment", "StressReduction")) +dta3 = np.recfromtxt(BytesIO(ss3), names = ("Brand", "Relief")) +dta5 = np.recfromtxt(BytesIO(ss5), names = ('pair', 'mean', 'lower', 'upper', 'sig'), delimiter='\t') +sas_ = dta5[[1,3,2]] + +from statsmodels.stats.multicomp import (tukeyhsd, pairwise_tukeyhsd, + MultiComparison) +#import statsmodels.sandbox.stats.multicomp as multi +#print tukeyhsd(dta['Brand'], dta['Rust']) + +def get_thsd(mci, alpha=0.05): + var_ = np.var(mci.groupstats.groupdemean(), ddof=len(mci.groupsunique)) + means = mci.groupstats.groupmean + nobs = mci.groupstats.groupnobs + resi = tukeyhsd(means, nobs, var_, df=None, alpha=alpha, + q_crit=qsturng(1-alpha, len(means), (nobs-1).sum())) + #print resi[4] + var2 = (mci.groupstats.groupvarwithin() * (nobs - 1.)).sum() \ + / (nobs - 1.).sum() + #print nobs, (nobs - 1).sum() + #print mci.groupstats.groupvarwithin() + assert_almost_equal(var_, var2, decimal=14) + return resi + +class CheckTuckeyHSDMixin(object): + + @classmethod + def setup_class_(self): + self.mc = MultiComparison(self.endog, self.groups) + self.res = self.mc.tukeyhsd(alpha=self.alpha) + + def test_multicomptukey(self): + assert_almost_equal(self.res.meandiffs, self.meandiff2, decimal=14) + assert_almost_equal(self.res.confint, self.confint2, decimal=2) + assert_equal(self.res.reject, self.reject2) + + def test_group_tukey(self): + res_t = get_thsd(self.mc, alpha=self.alpha) + assert_almost_equal(res_t[4], self.confint2, decimal=2) + + def test_shortcut_function(self): + #check wrapper function + res = pairwise_tukeyhsd(self.endog, self.groups, alpha=self.alpha) + assert_almost_equal(res.confint, self.res.confint, decimal=14) + + +class TestTuckeyHSD2(CheckTuckeyHSDMixin): + + @classmethod + def setup_class(self): + #balanced case + self.endog = dta2['StressReduction'] + self.groups = dta2['Treatment'] + self.alpha = 0.05 + self.setup_class_() #in super + + #from R + tukeyhsd2s = np.array([ 1.5,1,-0.5,0.3214915, + -0.1785085,-1.678509,2.678509,2.178509, + 0.6785085,0.01056279,0.1079035,0.5513904] + ).reshape(3,4, order='F') + self.meandiff2 = tukeyhsd2s[:, 0] + self.confint2 = tukeyhsd2s[:, 1:3] + pvals = tukeyhsd2s[:, 3] + self.reject2 = pvals < 0.05 + + def test_table_names_default_group_order(self): + t = self.res._results_table + # if the group_order parameter is not used, the groups should + # be reported in alphabetical order + expected_order = [(b'medical', b'mental'), + (b'medical', b'physical'), + (b'mental', b'physical')] + for i in range(1, 4): + first_group = t[i][0].data + second_group = t[i][1].data + assert_((first_group, second_group) == expected_order[i - 1]) + + def test_table_names_custom_group_order(self): + # if the group_order parameter is used, the groups should + # be reported in the specified order + mc = MultiComparison(self.endog, self.groups, + group_order=[b'physical', b'medical', b'mental']) + res = mc.tukeyhsd(alpha=self.alpha) + #print(res) + t = res._results_table + expected_order = [(b'physical',b'medical'), + (b'physical',b'mental'), + (b'medical', b'mental')] + for i in range(1, 4): + first_group = t[i][0].data + second_group = t[i][1].data + assert_((first_group, second_group) == expected_order[i - 1]) + + +class TestTuckeyHSD2Pandas(TestTuckeyHSD2): + + @classmethod + def setup_class(self): + super(TestTuckeyHSD2Pandas, self).setup_class() + + import pandas + self.endog = pandas.Series(self.endog) + # we are working with bytes on python 3, not with strings in this case + self.groups = pandas.Series(self.groups, dtype=object) + + def test_incorrect_output(self): + # too few groups + assert_raises(ValueError, MultiComparison, np.array([1] * 10), [1, 2] * 4) + # too many groups + assert_raises(ValueError, MultiComparison, np.array([1] * 10), [1, 2] * 6) + # just one group + assert_raises(ValueError, MultiComparison, np.array([1] * 10), [1] * 10) + + # group_order doesn't select all observations, only one group left + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter('always') + assert_raises(ValueError, MultiComparison, np.array([1] * 10), + [1, 2] * 5, group_order=[1]) + + # group_order doesn't select all observations, + # we do tukey_hsd with reduced set of observations + data = np.arange(15) + groups = np.repeat([1, 2, 3], 5) + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter('always') + mod1 = MultiComparison(np.array(data), groups, group_order=[1, 2]) + assert_equal(len(w), 1) + assert_true(issubclass(w[0].category, UserWarning)) + + res1 = mod1.tukeyhsd(alpha=0.01) + mod2 = MultiComparison(np.array(data[:10]), groups[:10]) + res2 = mod2.tukeyhsd(alpha=0.01) + + attributes = ['confint', 'data', 'df_total', 'groups', 'groupsunique', + 'meandiffs', 'q_crit', 'reject', 'reject2', 'std_pairs', + 'variance'] + for att in attributes: + err_msg = att + 'failed' + assert_allclose(getattr(res1, att), getattr(res2, att), rtol=1e-14, + err_msg=err_msg) + + attributes = ['data', 'datali', 'groupintlab', 'groups', 'groupsunique', + 'ngroups', 'nobs', 'pairindices'] + for att in attributes: + err_msg = att + 'failed' + assert_allclose(getattr(mod1, att), getattr(mod2, att), rtol=1e-14, + err_msg=err_msg) + + +class TestTuckeyHSD2s(CheckTuckeyHSDMixin): + @classmethod + def setup_class(self): + #unbalanced case + self.endog = dta2['StressReduction'][3:29] + self.groups = dta2['Treatment'][3:29] + self.alpha = 0.01 + self.setup_class_() + + #from R + tukeyhsd2s = np.array( + [1.8888888888888889, 0.888888888888889, -1, 0.2658549, + -0.5908785, -2.587133, 3.511923, 2.368656, + 0.5871331, 0.002837638, 0.150456, 0.1266072] + ).reshape(3,4, order='F') + self.meandiff2 = tukeyhsd2s[:, 0] + self.confint2 = tukeyhsd2s[:, 1:3] + pvals = tukeyhsd2s[:, 3] + self.reject2 = pvals < 0.01 + + +class TestTuckeyHSD3(CheckTuckeyHSDMixin): + + @classmethod + def setup_class(self): + #SAS case + self.endog = dta3['Relief'] + self.groups = dta3['Brand'] + self.alpha = 0.05 + self.setup_class_() + #super(self, self).setup_class_() + #CheckTuckeyHSD.setup_class_() + + self.meandiff2 = sas_['mean'] + self.confint2 = sas_[['lower','upper']].view(float).reshape((3,2)) + self.reject2 = sas_['sig'] == asbytes('***') + + +class TestTuckeyHSD4(CheckTuckeyHSDMixin): + + @classmethod + def setup_class(self): + #unbalanced case verified in Matlab + self.endog = cylinders + self.groups = cyl_labels + self.alpha = 0.05 + self.setup_class_() + self.res._simultaneous_ci() + + #from Matlab + self.halfwidth2 = np.array([1.5228335685980883, 0.9794949704444682, 0.78673802805533644, + 2.3321237694566364, 0.57355135882752939]) + self.meandiff2 = np.array([0.22222222222222232, 0.13333333333333375, 0.0, 2.2898550724637685, + -0.088888888888888573, -0.22222222222222232, 2.0676328502415462, + -0.13333333333333375, 2.1565217391304348, 2.2898550724637685]) + self.confint2 = np.array([-2.32022210717, 2.76466655161, -2.247517583, 2.51418424967, + -3.66405224956, 3.66405224956, 0.113960166573, 4.46574997835, + -1.87278583908, 1.6950080613, -3.529655688, 3.08521124356, 0.568180988881, + 3.5670847116, -3.31822643175, 3.05155976508, 0.951206924521, 3.36183655374, + -0.74487911754, 5.32458926247]).reshape(10,2) + self.reject2 = np.array([False, False, False, True, False, False, True, False, True, False]) + + def test_hochberg_intervals(self): + assert_almost_equal(self.res.halfwidths, self.halfwidth2, 14) diff --git a/statsmodels/stats/tests/test_panel_robustcov.py b/statsmodels/stats/tests/test_panel_robustcov.py new file mode 100644 index 0000000..a685dfc --- /dev/null +++ b/statsmodels/stats/tests/test_panel_robustcov.py @@ -0,0 +1,73 @@ +# -*- coding: utf-8 -*- +"""Test for panel robust covariance estimators after pooled ols +this follows the example from xtscc paper/help + +Created on Tue May 22 20:27:57 2012 + +Author: Josef Perktold +""" + +from statsmodels.compat.python import range, lmap +import numpy as np +from numpy.testing import assert_almost_equal + +from statsmodels.regression.linear_model import OLS +from statsmodels.tools.tools import add_constant +import statsmodels.stats.sandwich_covariance as sw + + +def test_panel_robust_cov(): + import pandas as pa + import statsmodels.datasets.grunfeld as gr + from .results.results_panelrobust import results as res_stata + + dtapa = gr.data.load_pandas() + #Stata example/data seems to miss last firm + dtapa_endog = dtapa.endog[:200] + dtapa_exog = dtapa.exog[:200] + res = OLS(dtapa_endog, add_constant(dtapa_exog[['value', 'capital']], + prepend=False)).fit() + + #time indicator in range(max Ti) + time = np.asarray(dtapa_exog[['year']]) + time -= time.min() + time = np.squeeze(time).astype(int) + + #sw.cov_nw_panel requires bounds instead of index + tidx = [(i*20, 20*(i+1)) for i in range(10)] + + #firm index in range(n_firms) + firm_names, firm_id = np.unique(np.asarray(dtapa_exog[['firm']], 'S20'), + return_inverse=True) + + #panel newey west standard errors + cov = sw.cov_nw_panel(res, 0, tidx, use_correction='hac') + #dropping numpy 1.4 soon + #np.testing.assert_allclose(cov, res_stata.cov_pnw0_stata, rtol=1e-6) + assert_almost_equal(cov, res_stata.cov_pnw0_stata, decimal=4) + + cov = sw.cov_nw_panel(res, 1, tidx, use_correction='hac') + #np.testing.assert_allclose(cov, res_stata.cov_pnw1_stata, rtol=1e-6) + assert_almost_equal(cov, res_stata.cov_pnw1_stata, decimal=4) + + cov = sw.cov_nw_panel(res, 4, tidx) #check default + #np.testing.assert_allclose(cov, res_stata.cov_pnw4_stata, rtol=1e-6) + assert_almost_equal(cov, res_stata.cov_pnw4_stata, decimal=4) + + #cluster robust standard errors + cov_clu = sw.cov_cluster(res, firm_id) + assert_almost_equal(cov_clu, res_stata.cov_clu_stata, decimal=4) + + #cluster robust standard errors, non-int groups + cov_clu = sw.cov_cluster(res, lmap(str, firm_id)) + assert_almost_equal(cov_clu, res_stata.cov_clu_stata, decimal=4) + + #Driscoll and Kraay panel robust standard errors + rcov = sw.cov_nw_groupsum(res, 0, time, use_correction=0) + assert_almost_equal(rcov, res_stata.cov_dk0_stata, decimal=4) + + rcov = sw.cov_nw_groupsum(res, 1, time, use_correction=0) + assert_almost_equal(rcov, res_stata.cov_dk1_stata, decimal=4) + + rcov = sw.cov_nw_groupsum(res, 4, time) #check default + assert_almost_equal(rcov, res_stata.cov_dk4_stata, decimal=4) diff --git a/statsmodels/stats/tests/test_power.py b/statsmodels/stats/tests/test_power.py new file mode 100644 index 0000000..949f8e7 --- /dev/null +++ b/statsmodels/stats/tests/test_power.py @@ -0,0 +1,762 @@ +# -*- coding: utf-8 -*- +# pylint: disable=W0231, W0142 +"""Tests for statistical power calculations + +Note: + tests for chisquare power are in test_gof.py + +Created on Sat Mar 09 08:44:49 2013 + +Author: Josef Perktold +""" + +import copy +import warnings +import nose +from distutils.version import LooseVersion + +import numpy as np +from numpy.testing import (assert_almost_equal, assert_allclose, assert_raises, + assert_equal, assert_warns, dec) +import scipy + +import statsmodels.stats.power as smp +from statsmodels.stats.tests.test_weightstats import Holder + +try: + import matplotlib.pyplot as plt # makes plt available for test functions + have_matplotlib = True +except ImportError: + have_matplotlib = False + + +SM_GT_10 = LooseVersion(scipy.__version__) >= '0.10' + +class CheckPowerMixin(object): + + def test_power(self): + #test against R results + kwds = copy.copy(self.kwds) + del kwds['power'] + kwds.update(self.kwds_extra) + if hasattr(self, 'decimal'): + decimal = self.decimal + else: + decimal = 6 + res1 = self.cls() + assert_almost_equal(res1.power(**kwds), self.res2.power, decimal=decimal) + + def test_positional(self): + + res1 = self.cls() + + + kwds = copy.copy(self.kwds) + del kwds['power'] + kwds.update(self.kwds_extra) + + # positional args + if hasattr(self, 'args_names'): + args_names = self.args_names + else: + nobs_ = 'nobs' if 'nobs' in kwds else 'nobs1' + args_names = ['effect_size', nobs_, 'alpha'] + + # pop positional args + args = [kwds.pop(arg) for arg in args_names] + + if hasattr(self, 'decimal'): + decimal = self.decimal + else: + decimal = 6 + + res = res1.power(*args, **kwds) + assert_almost_equal(res, self.res2.power, decimal=decimal) + + def test_roots(self): + kwds = copy.copy(self.kwds) + kwds.update(self.kwds_extra) + + # kwds_extra are used as argument, but not as target for root + for key in self.kwds: + # keep print to check whether tests are really executed + #print 'testing roots', key + value = kwds[key] + kwds[key] = None + + result = self.cls().solve_power(**kwds) + assert_allclose(result, value, rtol=0.001, err_msg=key+' failed') + # yield can be used to investigate specific errors + #yield assert_allclose, result, value, 0.001, 0, key+' failed' + kwds[key] = value # reset dict + + @dec.skipif(not have_matplotlib) + def test_power_plot(self): + if self.cls == smp.FTestPower: + raise nose.SkipTest('skip FTestPower plot_power') + plt.close() + fig = plt.figure() + ax = fig.add_subplot(2,1,1) + fig = self.cls().plot_power(dep_var='nobs', + nobs= np.arange(2, 100), + effect_size=np.array([0.1, 0.2, 0.3, 0.5, 1]), + #alternative='larger', + ax=ax, title='Power of t-Test', + **self.kwds_extra) + ax = fig.add_subplot(2,1,2) + fig = self.cls().plot_power(dep_var='es', + nobs=np.array([10, 20, 30, 50, 70, 100]), + effect_size=np.linspace(0.01, 2, 51), + #alternative='larger', + ax=ax, title='', + **self.kwds_extra) + plt.close(fig) + +#''' test cases +#one sample +# two-sided one-sided +#large power OneS1 OneS3 +#small power OneS2 OneS4 +# +#two sample +# two-sided one-sided +#large power TwoS1 TwoS3 +#small power TwoS2 TwoS4 +#small p, ratio TwoS4 TwoS5 +#''' + +class TestTTPowerOneS1(CheckPowerMixin): + + def __init__(self): + + #> p = pwr.t.test(d=1,n=30,sig.level=0.05,type="two.sample",alternative="two.sided") + #> cat_items(p, prefix='tt_power2_1.') + res2 = Holder() + res2.n = 30 + res2.d = 1 + res2.sig_level = 0.05 + res2.power = 0.9995636009612725 + res2.alternative = 'two.sided' + res2.note = 'NULL' + res2.method = 'One-sample t test power calculation' + + self.res2 = res2 + self.kwds = {'effect_size': res2.d, 'nobs': res2.n, + 'alpha': res2.sig_level, 'power':res2.power} + self.kwds_extra = {} + self.cls = smp.TTestPower + +class TestTTPowerOneS2(CheckPowerMixin): + # case with small power + + def __init__(self): + + res2 = Holder() + #> p = pwr.t.test(d=0.2,n=20,sig.level=0.05,type="one.sample",alternative="two.sided") + #> cat_items(p, "res2.") + res2.n = 20 + res2.d = 0.2 + res2.sig_level = 0.05 + res2.power = 0.1359562887679666 + res2.alternative = 'two.sided' + res2.note = '''NULL''' + res2.method = 'One-sample t test power calculation' + + self.res2 = res2 + self.kwds = {'effect_size': res2.d, 'nobs': res2.n, + 'alpha': res2.sig_level, 'power':res2.power} + self.kwds_extra = {} + self.cls = smp.TTestPower + +class TestTTPowerOneS3(CheckPowerMixin): + + def __init__(self): + + res2 = Holder() + #> p = pwr.t.test(d=1,n=30,sig.level=0.05,type="one.sample",alternative="greater") + #> cat_items(p, prefix='tt_power1_1g.') + res2.n = 30 + res2.d = 1 + res2.sig_level = 0.05 + res2.power = 0.999892010204909 + res2.alternative = 'greater' + res2.note = 'NULL' + res2.method = 'One-sample t test power calculation' + + self.res2 = res2 + self.kwds = {'effect_size': res2.d, 'nobs': res2.n, + 'alpha': res2.sig_level, 'power': res2.power} + self.kwds_extra = {'alternative': 'larger'} + self.cls = smp.TTestPower + +class TestTTPowerOneS4(CheckPowerMixin): + + def __init__(self): + + res2 = Holder() + #> p = pwr.t.test(d=0.05,n=20,sig.level=0.05,type="one.sample",alternative="greater") + #> cat_items(p, "res2.") + res2.n = 20 + res2.d = 0.05 + res2.sig_level = 0.05 + res2.power = 0.0764888785042198 + res2.alternative = 'greater' + res2.note = '''NULL''' + res2.method = 'One-sample t test power calculation' + + self.res2 = res2 + self.kwds = {'effect_size': res2.d, 'nobs': res2.n, + 'alpha': res2.sig_level, 'power': res2.power} + self.kwds_extra = {'alternative': 'larger'} + self.cls = smp.TTestPower + +class TestTTPowerOneS5(CheckPowerMixin): + # case one-sided less, not implemented yet + + def __init__(self): + + res2 = Holder() + #> p = pwr.t.test(d=0.2,n=20,sig.level=0.05,type="one.sample",alternative="less") + #> cat_items(p, "res2.") + res2.n = 20 + res2.d = 0.2 + res2.sig_level = 0.05 + res2.power = 0.006063932667926375 + res2.alternative = 'less' + res2.note = '''NULL''' + res2.method = 'One-sample t test power calculation' + + self.res2 = res2 + self.kwds = {'effect_size': res2.d, 'nobs': res2.n, + 'alpha': res2.sig_level, 'power': res2.power} + self.kwds_extra = {'alternative': 'smaller'} + self.cls = smp.TTestPower + +class TestTTPowerOneS6(CheckPowerMixin): + # case one-sided less, negative effect size, not implemented yet + + def __init__(self): + + res2 = Holder() + #> p = pwr.t.test(d=-0.2,n=20,sig.level=0.05,type="one.sample",alternative="less") + #> cat_items(p, "res2.") + res2.n = 20 + res2.d = -0.2 + res2.sig_level = 0.05 + res2.power = 0.21707518167191 + res2.alternative = 'less' + res2.note = '''NULL''' + res2.method = 'One-sample t test power calculation' + + self.res2 = res2 + self.kwds = {'effect_size': res2.d, 'nobs': res2.n, + 'alpha': res2.sig_level, 'power': res2.power} + self.kwds_extra = {'alternative': 'smaller'} + self.cls = smp.TTestPower + + +class TestTTPowerTwoS1(CheckPowerMixin): + + def __init__(self): + + #> p = pwr.t.test(d=1,n=30,sig.level=0.05,type="two.sample",alternative="two.sided") + #> cat_items(p, prefix='tt_power2_1.') + res2 = Holder() + res2.n = 30 + res2.d = 1 + res2.sig_level = 0.05 + res2.power = 0.967708258242517 + res2.alternative = 'two.sided' + res2.note = 'n is number in *each* group' + res2.method = 'Two-sample t test power calculation' + + self.res2 = res2 + self.kwds = {'effect_size': res2.d, 'nobs1': res2.n, + 'alpha': res2.sig_level, 'power': res2.power, 'ratio': 1} + self.kwds_extra = {} + self.cls = smp.TTestIndPower + +class TestTTPowerTwoS2(CheckPowerMixin): + + def __init__(self): + + res2 = Holder() + #> p = pwr.t.test(d=0.1,n=20,sig.level=0.05,type="two.sample",alternative="two.sided") + #> cat_items(p, "res2.") + res2.n = 20 + res2.d = 0.1 + res2.sig_level = 0.05 + res2.power = 0.06095912465411235 + res2.alternative = 'two.sided' + res2.note = 'n is number in *each* group' + res2.method = 'Two-sample t test power calculation' + + self.res2 = res2 + self.kwds = {'effect_size': res2.d, 'nobs1': res2.n, + 'alpha': res2.sig_level, 'power': res2.power, 'ratio': 1} + self.kwds_extra = {} + self.cls = smp.TTestIndPower + +class TestTTPowerTwoS3(CheckPowerMixin): + + def __init__(self): + + res2 = Holder() + #> p = pwr.t.test(d=1,n=30,sig.level=0.05,type="two.sample",alternative="greater") + #> cat_items(p, prefix='tt_power2_1g.') + res2.n = 30 + res2.d = 1 + res2.sig_level = 0.05 + res2.power = 0.985459690251624 + res2.alternative = 'greater' + res2.note = 'n is number in *each* group' + res2.method = 'Two-sample t test power calculation' + + self.res2 = res2 + self.kwds = {'effect_size': res2.d, 'nobs1': res2.n, + 'alpha': res2.sig_level, 'power':res2.power, 'ratio': 1} + self.kwds_extra = {'alternative': 'larger'} + self.cls = smp.TTestIndPower + +class TestTTPowerTwoS4(CheckPowerMixin): + # case with small power + + def __init__(self): + + res2 = Holder() + #> p = pwr.t.test(d=0.01,n=30,sig.level=0.05,type="two.sample",alternative="greater") + #> cat_items(p, "res2.") + res2.n = 30 + res2.d = 0.01 + res2.sig_level = 0.05 + res2.power = 0.0540740302835667 + res2.alternative = 'greater' + res2.note = 'n is number in *each* group' + res2.method = 'Two-sample t test power calculation' + + self.res2 = res2 + self.kwds = {'effect_size': res2.d, 'nobs1': res2.n, + 'alpha': res2.sig_level, 'power':res2.power} + self.kwds_extra = {'alternative': 'larger'} + self.cls = smp.TTestIndPower + +class TestTTPowerTwoS5(CheckPowerMixin): + # case with unequal n, ratio>1 + + def __init__(self): + + res2 = Holder() + #> p = pwr.t2n.test(d=0.1,n1=20, n2=30,sig.level=0.05,alternative="two.sided") + #> cat_items(p, "res2.") + res2.n1 = 20 + res2.n2 = 30 + res2.d = 0.1 + res2.sig_level = 0.05 + res2.power = 0.0633081832564667 + res2.alternative = 'two.sided' + res2.method = 't test power calculation' + + self.res2 = res2 + self.kwds = {'effect_size': res2.d, 'nobs1': res2.n1, + 'alpha': res2.sig_level, 'power':res2.power, 'ratio': 1.5} + self.kwds_extra = {'alternative': 'two-sided'} + self.cls = smp.TTestIndPower + +class TestTTPowerTwoS6(CheckPowerMixin): + # case with unequal n, ratio>1 + + def __init__(self): + + res2 = Holder() + #> p = pwr.t2n.test(d=0.1,n1=20, n2=30,sig.level=0.05,alternative="greater") + #> cat_items(p, "res2.") + res2.n1 = 20 + res2.n2 = 30 + res2.d = 0.1 + res2.sig_level = 0.05 + res2.power = 0.09623589080917805 + res2.alternative = 'greater' + res2.method = 't test power calculation' + + self.res2 = res2 + self.kwds = {'effect_size': res2.d, 'nobs1': res2.n1, + 'alpha': res2.sig_level, 'power':res2.power, 'ratio': 1.5} + self.kwds_extra = {'alternative': 'larger'} + self.cls = smp.TTestIndPower + + + +def test_normal_power_explicit(): + # a few initial test cases for NormalIndPower + sigma = 1 + d = 0.3 + nobs = 80 + alpha = 0.05 + res1 = smp.normal_power(d, nobs/2., 0.05) + res2 = smp.NormalIndPower().power(d, nobs, 0.05) + res3 = smp.NormalIndPower().solve_power(effect_size=0.3, nobs1=80, alpha=0.05, power=None) + res_R = 0.475100870572638 + assert_almost_equal(res1, res_R, decimal=13) + assert_almost_equal(res2, res_R, decimal=13) + assert_almost_equal(res3, res_R, decimal=13) + + + norm_pow = smp.normal_power(-0.01, nobs/2., 0.05) + norm_pow_R = 0.05045832927039234 + #value from R: >pwr.2p.test(h=0.01,n=80,sig.level=0.05,alternative="two.sided") + assert_almost_equal(norm_pow, norm_pow_R, decimal=11) + + norm_pow = smp.NormalIndPower().power(0.01, nobs, 0.05, + alternative="larger") + norm_pow_R = 0.056869534873146124 + #value from R: >pwr.2p.test(h=0.01,n=80,sig.level=0.05,alternative="greater") + assert_almost_equal(norm_pow, norm_pow_R, decimal=11) + + # Note: negative effect size is same as switching one-sided alternative + # TODO: should I switch to larger/smaller instead of "one-sided" options + norm_pow = smp.NormalIndPower().power(-0.01, nobs, 0.05, + alternative="larger") + norm_pow_R = 0.0438089705093578 + #value from R: >pwr.2p.test(h=0.01,n=80,sig.level=0.05,alternative="less") + assert_almost_equal(norm_pow, norm_pow_R, decimal=11) + +class TestNormalIndPower1(CheckPowerMixin): + + def __init__(self): + + #> example from above + # results copied not directly from R + res2 = Holder() + res2.n = 80 + res2.d = 0.3 + res2.sig_level = 0.05 + res2.power = 0.475100870572638 + res2.alternative = 'two.sided' + res2.note = 'NULL' + res2.method = 'two sample power calculation' + + self.res2 = res2 + self.kwds = {'effect_size': res2.d, 'nobs1': res2.n, + 'alpha': res2.sig_level, 'power':res2.power, 'ratio': 1} + self.kwds_extra = {} + self.cls = smp.NormalIndPower + +class TestNormalIndPower2(CheckPowerMixin): + + def __init__(self): + res2 = Holder() + #> np = pwr.2p.test(h=0.01,n=80,sig.level=0.05,alternative="less") + #> cat_items(np, "res2.") + res2.h = 0.01 + res2.n = 80 + res2.sig_level = 0.05 + res2.power = 0.0438089705093578 + res2.alternative = 'less' + res2.method = ('Difference of proportion power calculation for' + + ' binomial distribution (arcsine transformation)') + res2.note = 'same sample sizes' + + self.res2 = res2 + self.kwds = {'effect_size': res2.h, 'nobs1': res2.n, + 'alpha': res2.sig_level, 'power':res2.power, 'ratio': 1} + self.kwds_extra = {'alternative':'smaller'} + self.cls = smp.NormalIndPower + + +class TestNormalIndPower_onesamp1(CheckPowerMixin): + + def __init__(self): + # forcing one-sample by using ratio=0 + #> example from above + # results copied not directly from R + res2 = Holder() + res2.n = 40 + res2.d = 0.3 + res2.sig_level = 0.05 + res2.power = 0.475100870572638 + res2.alternative = 'two.sided' + res2.note = 'NULL' + res2.method = 'two sample power calculation' + + self.res2 = res2 + self.kwds = {'effect_size': res2.d, 'nobs1': res2.n, + 'alpha': res2.sig_level, 'power':res2.power} + # keyword for which we don't look for root: + self.kwds_extra = {'ratio': 0} + + self.cls = smp.NormalIndPower + +class TestNormalIndPower_onesamp2(CheckPowerMixin): + # Note: same power as two sample case with twice as many observations + + def __init__(self): + # forcing one-sample by using ratio=0 + res2 = Holder() + #> np = pwr.norm.test(d=0.01,n=40,sig.level=0.05,alternative="less") + #> cat_items(np, "res2.") + res2.d = 0.01 + res2.n = 40 + res2.sig_level = 0.05 + res2.power = 0.0438089705093578 + res2.alternative = 'less' + res2.method = 'Mean power calculation for normal distribution with known variance' + + self.res2 = res2 + self.kwds = {'effect_size': res2.d, 'nobs1': res2.n, + 'alpha': res2.sig_level, 'power':res2.power} + # keyword for which we don't look for root: + self.kwds_extra = {'ratio': 0, 'alternative':'smaller'} + + self.cls = smp.NormalIndPower + + + +class TestChisquarePower(CheckPowerMixin): + + def __init__(self): + # one example from test_gof, results_power + res2 = Holder() + res2.w = 0.1 + res2.N = 5 + res2.df = 4 + res2.sig_level = 0.05 + res2.power = 0.05246644635810126 + res2.method = 'Chi squared power calculation' + res2.note = 'N is the number of observations' + + self.res2 = res2 + self.kwds = {'effect_size': res2.w, 'nobs': res2.N, + 'alpha': res2.sig_level, 'power':res2.power} + # keyword for which we don't look for root: + # solving for n_bins doesn't work, will not be used in regular usage + self.kwds_extra = {'n_bins': res2.df + 1} + + self.cls = smp.GofChisquarePower + + def _test_positional(self): + + res1 = self.cls() + args_names = ['effect_size','nobs', 'alpha', 'n_bins'] + kwds = copy.copy(self.kwds) + del kwds['power'] + kwds.update(self.kwds_extra) + args = [kwds[arg] for arg in args_names] + if hasattr(self, 'decimal'): + decimal = self.decimal #pylint: disable-msg=E1101 + else: + decimal = 6 + assert_almost_equal(res1.power(*args), self.res2.power, decimal=decimal) + + + +def test_ftest_power(): + #equivalence ftest, ttest + + for alpha in [0.01, 0.05, 0.1, 0.20, 0.50]: + res0 = smp.ttest_power(0.01, 200, alpha) + res1 = smp.ftest_power(0.01, 199, 1, alpha=alpha, ncc=0) + assert_almost_equal(res1, res0, decimal=6) + + + #example from Gplus documentation F-test ANOVA + #Total sample size:200 + #Effect size "f":0.25 + #Beta/alpha ratio:1 + #Result: + #Alpha:0.1592 + #Power (1-beta):0.8408 + #Critical F:1.4762 + #Lambda: 12.50000 + res1 = smp.ftest_anova_power(0.25, 200, 0.1592, k_groups=10) + res0 = 0.8408 + assert_almost_equal(res1, res0, decimal=4) + + + # TODO: no class yet + # examples agains R::pwr + res2 = Holder() + #> rf = pwr.f2.test(u=5, v=199, f2=0.1**2, sig.level=0.01) + #> cat_items(rf, "res2.") + res2.u = 5 + res2.v = 199 + res2.f2 = 0.01 + res2.sig_level = 0.01 + res2.power = 0.0494137732920332 + res2.method = 'Multiple regression power calculation' + + res1 = smp.ftest_power(np.sqrt(res2.f2), res2.v, res2.u, + alpha=res2.sig_level, ncc=1) + assert_almost_equal(res1, res2.power, decimal=5) + + res2 = Holder() + #> rf = pwr.f2.test(u=5, v=199, f2=0.3**2, sig.level=0.01) + #> cat_items(rf, "res2.") + res2.u = 5 + res2.v = 199 + res2.f2 = 0.09 + res2.sig_level = 0.01 + res2.power = 0.7967191006290872 + res2.method = 'Multiple regression power calculation' + + res1 = smp.ftest_power(np.sqrt(res2.f2), res2.v, res2.u, + alpha=res2.sig_level, ncc=1) + assert_almost_equal(res1, res2.power, decimal=5) + + res2 = Holder() + #> rf = pwr.f2.test(u=5, v=19, f2=0.3**2, sig.level=0.1) + #> cat_items(rf, "res2.") + res2.u = 5 + res2.v = 19 + res2.f2 = 0.09 + res2.sig_level = 0.1 + res2.power = 0.235454222377575 + res2.method = 'Multiple regression power calculation' + + res1 = smp.ftest_power(np.sqrt(res2.f2), res2.v, res2.u, + alpha=res2.sig_level, ncc=1) + assert_almost_equal(res1, res2.power, decimal=5) + +# class based version of two above test for Ftest +class TestFtestAnovaPower(CheckPowerMixin): + + def __init__(self): + res2 = Holder() + #example from Gplus documentation F-test ANOVA + #Total sample size:200 + #Effect size "f":0.25 + #Beta/alpha ratio:1 + #Result: + #Alpha:0.1592 + #Power (1-beta):0.8408 + #Critical F:1.4762 + #Lambda: 12.50000 + #converted to res2 by hand + res2.f = 0.25 + res2.n = 200 + res2.k = 10 + res2.alpha = 0.1592 + res2.power = 0.8408 + res2.method = 'Multiple regression power calculation' + + self.res2 = res2 + self.kwds = {'effect_size': res2.f, 'nobs': res2.n, + 'alpha': res2.alpha, 'power': res2.power} + # keyword for which we don't look for root: + # solving for n_bins doesn't work, will not be used in regular usage + self.kwds_extra = {'k_groups': res2.k} # rootfinding doesn't work + #self.args_names = ['effect_size','nobs', 'alpha']#, 'k_groups'] + self.cls = smp.FTestAnovaPower + # precision for test_power + self.decimal = 4 + + + +class TestFtestPower(CheckPowerMixin): + + def __init__(self): + res2 = Holder() + #> rf = pwr.f2.test(u=5, v=19, f2=0.3**2, sig.level=0.1) + #> cat_items(rf, "res2.") + res2.u = 5 + res2.v = 19 + res2.f2 = 0.09 + res2.sig_level = 0.1 + res2.power = 0.235454222377575 + res2.method = 'Multiple regression power calculation' + + self.res2 = res2 + self.kwds = {'effect_size': np.sqrt(res2.f2), 'df_num': res2.v, + 'df_denom': res2.u, 'alpha': res2.sig_level, + 'power': res2.power} + # keyword for which we don't look for root: + # solving for n_bins doesn't work, will not be used in regular usage + self.kwds_extra = {} + self.args_names = ['effect_size', 'df_num', 'df_denom', 'alpha'] + self.cls = smp.FTestPower + # precision for test_power + self.decimal = 5 + + +def test_power_solver(): + # messing up the solver to trigger backup + + nip = smp.NormalIndPower() + + # check result + es0 = 0.1 + pow_ = nip.solve_power(es0, nobs1=1600, alpha=0.01, power=None, ratio=1, + alternative='larger') + # value is regression test + assert_almost_equal(pow_, 0.69219411243824214, decimal=5) + es = nip.solve_power(None, nobs1=1600, alpha=0.01, power=pow_, ratio=1, + alternative='larger') + assert_almost_equal(es, es0, decimal=4) + assert_equal(nip.cache_fit_res[0], 1) + assert_equal(len(nip.cache_fit_res), 2) + + # cause first optimizer to fail + nip.start_bqexp['effect_size'] = {'upp': -10, 'low': -20} + nip.start_ttp['effect_size'] = 0.14 + es = nip.solve_power(None, nobs1=1600, alpha=0.01, power=pow_, ratio=1, + alternative='larger') + assert_almost_equal(es, es0, decimal=4) + assert_equal(nip.cache_fit_res[0], 1) + assert_equal(len(nip.cache_fit_res), 3, err_msg=repr(nip.cache_fit_res)) + + nip.start_ttp['effect_size'] = np.nan + es = nip.solve_power(None, nobs1=1600, alpha=0.01, power=pow_, ratio=1, + alternative='larger') + assert_almost_equal(es, es0, decimal=4) + assert_equal(nip.cache_fit_res[0], 1) + assert_equal(len(nip.cache_fit_res), 4) + + # I let this case fail, could be fixed for some statistical tests + # (we shouldn't get here in the first place) + # effect size is negative, but last stage brentq uses [1e-8, 1-1e-8] + assert_raises(ValueError, nip.solve_power, None, nobs1=1600, alpha=0.01, + power=0.005, ratio=1, alternative='larger') + +@dec.skipif(SM_GT_10, 'Known failure on modern SciPy') +def test_power_solver_warn(): + # messing up the solver to trigger warning + # I wrote this with scipy 0.9, + # convergence behavior of scipy 0.11 is different, + # fails at a different case, but is successful where it failed before + + pow_ = 0.69219411243824214 # from previous function + nip = smp.NormalIndPower() + # using nobs, has one backup (fsolve) + nip.start_bqexp['nobs1'] = {'upp': 50, 'low': -20} + val = nip.solve_power(0.1, nobs1=None, alpha=0.01, power=pow_, ratio=1, + alternative='larger') + + assert_almost_equal(val, 1600, decimal=4) + assert_equal(nip.cache_fit_res[0], 1) + assert_equal(len(nip.cache_fit_res), 3) + + # case that has convergence failure, and should warn + nip.start_ttp['nobs1'] = np.nan + + from statsmodels.tools.sm_exceptions import ConvergenceWarning + assert_warns(ConvergenceWarning, nip.solve_power, 0.1, nobs1=None, + alpha=0.01, power=pow_, ratio=1, alternative='larger') + # this converges with scipy 0.11 ??? + # nip.solve_power(0.1, nobs1=None, alpha=0.01, power=pow_, ratio=1, alternative='larger') + + with warnings.catch_warnings(): # python >= 2.6 + warnings.simplefilter("ignore") + val = nip.solve_power(0.1, nobs1=None, alpha=0.01, power=pow_, ratio=1, + alternative='larger') + assert_equal(nip.cache_fit_res[0], 0) + assert_equal(len(nip.cache_fit_res), 3) + + + +if __name__ == '__main__': + test_normal_power_explicit() + nt = TestNormalIndPower1() + nt.test_power() + nt.test_roots() + nt = TestNormalIndPower_onesamp1() + nt.test_power() + nt.test_roots() diff --git a/statsmodels/stats/tests/test_proportion.py b/statsmodels/stats/tests/test_proportion.py new file mode 100644 index 0000000..b5ba2a4 --- /dev/null +++ b/statsmodels/stats/tests/test_proportion.py @@ -0,0 +1,526 @@ +# -*- coding: utf-8 -*- +""" + +Created on Fri Mar 01 14:56:56 2013 + +Author: Josef Perktold +""" +import warnings + +import numpy as np +from numpy.testing import (assert_almost_equal, assert_equal, assert_array_less, + assert_raises, assert_allclose) + +from statsmodels.stats.proportion import (proportion_confint, + multinomial_proportions_confint) +import statsmodels.stats.proportion as smprop +from statsmodels.tools.sm_exceptions import HypothesisTestWarning + + +class Holder(object): + pass + + + +def test_confint_proportion(): + from .results.results_proportion import res_binom, res_binom_methods + methods = {'agresti_coull' : 'agresti-coull', + 'normal' : 'asymptotic', + 'beta' : 'exact', + 'wilson' : 'wilson', + 'jeffrey' : 'bayes' + } + + for case in res_binom: + count, nobs = case + for method in methods: + idx = res_binom_methods.index(methods[method]) + res_low = res_binom[case].ci_low[idx] + res_upp = res_binom[case].ci_upp[idx] + if np.isnan(res_low) or np.isnan(res_upp): + continue + ci = proportion_confint(count, nobs, alpha=0.05, method=method) + + assert_almost_equal(ci, [res_low, res_upp], decimal=6, + err_msg=repr(case) + method) + +def test_samplesize_confidenceinterval_prop(): + #consistency test for samplesize to achieve confidence_interval + nobs = 20 + ci = smprop.proportion_confint(12, nobs, alpha=0.05, method='normal') + res = smprop.samplesize_confint_proportion(12./nobs, (ci[1] - ci[0]) / 2) + assert_almost_equal(res, nobs, decimal=13) + +def test_proportion_effect_size(): + # example from blog + es = smprop.proportion_effectsize(0.5, 0.4) + assert_almost_equal(es, 0.2013579207903309, decimal=13) + +def test_confint_multinomial_proportions(): + from .results.results_multinomial_proportions import res_multinomial + + for ((method, description), values) in res_multinomial.items(): + cis = multinomial_proportions_confint(values.proportions, 0.05, + method=method) + assert_almost_equal( + values.cis, cis, decimal=values.precision, + err_msg='"%s" method, %s' % (method, description)) + +def test_multinomial_proportions_errors(): + # Out-of-bounds values for alpha raise a ValueError + for alpha in [-.1, 0, 1, 1.1]: + assert_raises(ValueError, multinomial_proportions_confint, + [5] * 50, alpha=alpha) + + assert_raises(ValueError, multinomial_proportions_confint, + np.arange(50) - 1) + # Any unknown method is reported. + for method in ['unknown_method', 'sisok_method', 'unknown-glaz']: + assert_raises(NotImplementedError, multinomial_proportions_confint, + [5] * 50, method=method) + +def test_confint_multinomial_proportions_zeros(): + # test when a count is zero or close to zero + # values from R MultinomialCI + ci01 = np.array([ + 0.09364718, 0.1898413, + 0.00000000, 0.0483581, + 0.13667426, 0.2328684, + 0.10124019, 0.1974343, + 0.10883321, 0.2050273, + 0.17210833, 0.2683024, + 0.09870919, 0.1949033]).reshape(-1,2) + + ci0 = np.array([ + 0.09620253, 0.19238867, + 0.00000000, 0.05061652, + 0.13924051, 0.23542664, + 0.10379747, 0.19998360, + 0.11139241, 0.20757854, + 0.17468354, 0.27086968, + 0.10126582, 0.19745196]).reshape(-1,2) + + # the shifts are the differences between "LOWER(SG)" "UPPER(SG)" and + # "LOWER(C+1)" "UPPER(C+1)" in verbose printout + # ci01_shift = np.array([0.002531008, -0.002515122]) # not needed + ci0_shift = np.array([0.002531642, 0.002515247]) + + p = [56, 0.1, 73, 59, 62, 87, 58] + ci_01 = smprop.multinomial_proportions_confint(p, 0.05, + method='sison_glaz') + p = [56, 0, 73, 59, 62, 87, 58] + ci_0 = smprop.multinomial_proportions_confint(p, 0.05, + method='sison_glaz') + + assert_allclose(ci_01, ci01, atol=1e-5) + assert_allclose(ci_0, np.maximum(ci0 - ci0_shift, 0), atol=1e-5) + assert_allclose(ci_01, ci_0, atol=5e-4) + + +class CheckProportionMixin(object): + def test_proptest(self): + # equality of k-samples + pt = smprop.proportions_chisquare(self.n_success, self.nobs, value=None) + assert_almost_equal(pt[0], self.res_prop_test.statistic, decimal=13) + assert_almost_equal(pt[1], self.res_prop_test.p_value, decimal=13) + + # several against value + pt = smprop.proportions_chisquare(self.n_success, self.nobs, + value=self.res_prop_test_val.null_value[0]) + assert_almost_equal(pt[0], self.res_prop_test_val.statistic, decimal=13) + assert_almost_equal(pt[1], self.res_prop_test_val.p_value, decimal=13) + + # one proportion against value + pt = smprop.proportions_chisquare(self.n_success[0], self.nobs[0], + value=self.res_prop_test_1.null_value) + assert_almost_equal(pt[0], self.res_prop_test_1.statistic, decimal=13) + assert_almost_equal(pt[1], self.res_prop_test_1.p_value, decimal=13) + + def test_pairwiseproptest(self): + ppt = smprop.proportions_chisquare_allpairs(self.n_success, self.nobs, + multitest_method=None) + assert_almost_equal(ppt.pvals_raw, self.res_ppt_pvals_raw) + ppt = smprop.proportions_chisquare_allpairs(self.n_success, self.nobs, + multitest_method='h') + assert_almost_equal(ppt.pval_corrected(), self.res_ppt_pvals_holm) + + pptd = smprop.proportions_chisquare_pairscontrol(self.n_success, + self.nobs, multitest_method='hommel') + assert_almost_equal(pptd.pvals_raw, ppt.pvals_raw[:len(self.nobs) - 1], + decimal=13) + + + def test_number_pairs_1493(self): + ppt = smprop.proportions_chisquare_allpairs(self.n_success[:3], + self.nobs[:3], + multitest_method=None) + + assert_equal(len(ppt.pvals_raw), 3) + idx = [0, 1, 3] + assert_almost_equal(ppt.pvals_raw, self.res_ppt_pvals_raw[idx]) + + +class TestProportion(CheckProportionMixin): + def setup(self): + self.n_success = np.array([ 73, 90, 114, 75]) + self.nobs = np.array([ 86, 93, 136, 82]) + + self.res_ppt_pvals_raw = np.array([ + 0.00533824886503131, 0.8327574849753566, 0.1880573726722516, + 0.002026764254350234, 0.1309487516334318, 0.1076118730631731 + ]) + self.res_ppt_pvals_holm = np.array([ + 0.02669124432515654, 0.8327574849753566, 0.4304474922526926, + 0.0121605855261014, 0.4304474922526926, 0.4304474922526926 + ]) + + res_prop_test = Holder() + res_prop_test.statistic = 11.11938768628861 + res_prop_test.parameter = 3 + res_prop_test.p_value = 0.011097511366581344 + res_prop_test.estimate = np.array([ + 0.848837209302326, 0.967741935483871, 0.838235294117647, + 0.9146341463414634 + ]).reshape(4,1, order='F') + res_prop_test.null_value = '''NULL''' + res_prop_test.conf_int = '''NULL''' + res_prop_test.alternative = 'two.sided' + res_prop_test.method = '4-sample test for equality of proportions ' + \ + 'without continuity correction' + res_prop_test.data_name = 'smokers2 out of patients' + self.res_prop_test = res_prop_test + + #> pt = prop.test(smokers2, patients, p=rep(c(0.9), 4), correct=FALSE) + #> cat_items(pt, "res_prop_test_val.") + res_prop_test_val = Holder() + res_prop_test_val.statistic = np.array([ + 13.20305530710751 + ]).reshape(1,1, order='F') + res_prop_test_val.parameter = np.array([ + 4 + ]).reshape(1,1, order='F') + res_prop_test_val.p_value = 0.010325090041836 + res_prop_test_val.estimate = np.array([ + 0.848837209302326, 0.967741935483871, 0.838235294117647, + 0.9146341463414634 + ]).reshape(4,1, order='F') + res_prop_test_val.null_value = np.array([ + 0.9, 0.9, 0.9, 0.9 + ]).reshape(4,1, order='F') + res_prop_test_val.conf_int = '''NULL''' + res_prop_test_val.alternative = 'two.sided' + res_prop_test_val.method = '4-sample test for given proportions without continuity correction' + res_prop_test_val.data_name = 'smokers2 out of patients, null probabilities rep(c(0.9), 4)' + self.res_prop_test_val = res_prop_test_val + + #> pt = prop.test(smokers2[1], patients[1], p=0.9, correct=FALSE) + #> cat_items(pt, "res_prop_test_1.") + res_prop_test_1 = Holder() + res_prop_test_1.statistic = 2.501291989664086 + res_prop_test_1.parameter = 1 + res_prop_test_1.p_value = 0.113752943640092 + res_prop_test_1.estimate = 0.848837209302326 + res_prop_test_1.null_value = 0.9 + res_prop_test_1.conf_int = np.array([0.758364348004061, + 0.9094787701686766]) + res_prop_test_1.alternative = 'two.sided' + res_prop_test_1.method = '1-sample proportions test without continuity correction' + res_prop_test_1.data_name = 'smokers2[1] out of patients[1], null probability 0.9' + self.res_prop_test_1 = res_prop_test_1 + + # GH 2969 + def test_default_values(self): + count = np.array([5, 12]) + nobs = np.array([83, 99]) + stat, pval = smprop.proportions_ztest(count, nobs, value=None) + assert_almost_equal(stat, -1.4078304151258787) + assert_almost_equal(pval, 0.15918129181156992) + + # GH 2779 + def test_scalar(self): + count = 5 + nobs = 83 + value = 0.05 + stat, pval = smprop.proportions_ztest(count, nobs, value=value) + assert_almost_equal(stat, 0.392126026314) + assert_almost_equal(pval, 0.694965098115) + + assert_raises(ValueError, smprop.proportions_ztest, count, nobs, value=None) + + +def test_binom_test(): + #> bt = binom.test(51,235,(1/6),alternative="less") + #> cat_items(bt, "binom_test_less.") + binom_test_less = Holder() + binom_test_less.statistic = 51 + binom_test_less.parameter = 235 + binom_test_less.p_value = 0.982022657605858 + binom_test_less.conf_int = [0, 0.2659460862574313] + binom_test_less.estimate = 0.2170212765957447 + binom_test_less.null_value = 1. / 6 + binom_test_less.alternative = 'less' + binom_test_less.method = 'Exact binomial test' + binom_test_less.data_name = '51 and 235' + + #> bt = binom.test(51,235,(1/6),alternative="greater") + #> cat_items(bt, "binom_test_greater.") + binom_test_greater = Holder() + binom_test_greater.statistic = 51 + binom_test_greater.parameter = 235 + binom_test_greater.p_value = 0.02654424571169085 + binom_test_greater.conf_int = [0.1735252778065201, 1] + binom_test_greater.estimate = 0.2170212765957447 + binom_test_greater.null_value = 1. / 6 + binom_test_greater.alternative = 'greater' + binom_test_greater.method = 'Exact binomial test' + binom_test_greater.data_name = '51 and 235' + + #> bt = binom.test(51,235,(1/6),alternative="t") + #> cat_items(bt, "binom_test_2sided.") + binom_test_2sided = Holder() + binom_test_2sided.statistic = 51 + binom_test_2sided.parameter = 235 + binom_test_2sided.p_value = 0.0437479701823997 + binom_test_2sided.conf_int = [0.1660633298083073, 0.2752683640289254] + binom_test_2sided.estimate = 0.2170212765957447 + binom_test_2sided.null_value = 1. / 6 + binom_test_2sided.alternative = 'two.sided' + binom_test_2sided.method = 'Exact binomial test' + binom_test_2sided.data_name = '51 and 235' + + alltests = [('larger', binom_test_greater), + ('smaller', binom_test_less), + ('two-sided', binom_test_2sided)] + + for alt, res0 in alltests: + # only p-value is returned + res = smprop.binom_test(51, 235, prop=1. / 6, alternative=alt) + #assert_almost_equal(res[0], res0.statistic) + assert_almost_equal(res, res0.p_value, decimal=13) + + # R binom_test returns Copper-Pearson confint + ci_2s = smprop.proportion_confint(51, 235, alpha=0.05, method='beta') + ci_low, ci_upp = smprop.proportion_confint(51, 235, alpha=0.1, + method='beta') + assert_almost_equal(ci_2s, binom_test_2sided.conf_int, decimal=13) + assert_almost_equal(ci_upp, binom_test_less.conf_int[1], decimal=13) + assert_almost_equal(ci_low, binom_test_greater.conf_int[0], decimal=13) + + +def test_binom_rejection_interval(): + # consistency check with binom_test + # some code duplication but limit checks are different + alpha = 0.05 + nobs = 200 + prop = 12./20 + alternative='smaller' + ci_low, ci_upp = smprop.binom_test_reject_interval(prop, nobs, alpha=alpha, + alternative=alternative) + assert_equal(ci_upp, nobs) + pval = smprop.binom_test(ci_low, nobs, prop=prop, + alternative=alternative) + assert_array_less(pval, alpha) + pval = smprop.binom_test(ci_low + 1, nobs, prop=prop, + alternative=alternative) + assert_array_less(alpha, pval) + + alternative='larger' + ci_low, ci_upp = smprop.binom_test_reject_interval(prop, nobs, alpha=alpha, + alternative=alternative) + assert_equal(ci_low, 0) + pval = smprop.binom_test(ci_upp, nobs, prop=prop, + alternative=alternative) + assert_array_less(pval, alpha) + pval = smprop.binom_test(ci_upp - 1, nobs, prop=prop, + alternative=alternative) + assert_array_less(alpha, pval) + + alternative='two-sided' + ci_low, ci_upp = smprop.binom_test_reject_interval(prop, nobs, alpha=alpha, + alternative=alternative) + pval = smprop.binom_test(ci_upp, nobs, prop=prop, + alternative=alternative) + assert_array_less(pval, alpha) + pval = smprop.binom_test(ci_upp - 1, nobs, prop=prop, + alternative=alternative) + assert_array_less(alpha, pval) + pval = smprop.binom_test(ci_upp, nobs, prop=prop, + alternative=alternative) + assert_array_less(pval, alpha) + + pval = smprop.binom_test(ci_upp - 1, nobs, prop=prop, + alternative=alternative) + assert_array_less(alpha, pval) + + + +def test_binom_tost(): + # consistency check with two different implementation, + # proportion_confint is tested against R + # no reference case from other package available + ci = smprop.proportion_confint(10, 20, method='beta', alpha=0.1) + bt = smprop.binom_tost(10, 20, *ci) + assert_almost_equal(bt, [0.05] * 3, decimal=12) + + ci = smprop.proportion_confint(5, 20, method='beta', alpha=0.1) + bt = smprop.binom_tost(5, 20, *ci) + assert_almost_equal(bt, [0.05] * 3, decimal=12) + + # vectorized, TODO: observed proportion = 0 returns nan + ci = smprop.proportion_confint(np.arange(1, 20), 20, method='beta', + alpha=0.05) + bt = smprop.binom_tost(np.arange(1, 20), 20, *ci) + bt = np.asarray(bt) + assert_almost_equal(bt, 0.025 * np.ones(bt.shape), decimal=12) + +def test_power_binom_tost(): + # comparison numbers from PASS manual + p_alt = 0.6 + np.linspace(0, 0.09, 10) + power = smprop.power_binom_tost(0.5, 0.7, 500, p_alt=p_alt, alpha=0.05) + res_power = np.array([0.9965, 0.9940, 0.9815, 0.9482, 0.8783, 0.7583, + 0.5914, 0.4041, 0.2352, 0.1139]) + assert_almost_equal(power, res_power, decimal=4) + + rej_int = smprop.binom_tost_reject_interval(0.5, 0.7, 500) + res_rej_int = (269, 332) + assert_equal(rej_int, res_rej_int) + + # TODO: actual alpha=0.0489 for all p_alt above + + # another case + nobs = np.arange(20, 210, 20) + power = smprop.power_binom_tost(0.4, 0.6, nobs, p_alt=0.5, alpha=0.05) + res_power = np.array([ 0., 0., 0., 0.0889, 0.2356, 0.3517, 0.4457, + 0.6154, 0.6674, 0.7708]) + # TODO: I currently don't impose power>=0, i.e np.maximum(power, 0) + assert_almost_equal(np.maximum(power, 0), res_power, decimal=4) + +def test_power_ztost_prop(): + power = smprop.power_ztost_prop(0.1, 0.9, 10, p_alt=0.6, alpha=0.05, + discrete=True, dist='binom')[0] + assert_almost_equal(power, 0.8204, decimal=4) # PASS example + + with warnings.catch_warnings(): # python >= 2.6 + warnings.simplefilter("ignore", HypothesisTestWarning) + power = smprop.power_ztost_prop(0.4, 0.6, np.arange(20, 210, 20), + p_alt=0.5, alpha=0.05, discrete=False, + dist='binom')[0] + + res_power = np.array([ 0., 0., 0., 0.0889, 0.2356, 0.4770, 0.5530, + 0.6154, 0.7365, 0.7708]) + # TODO: I currently don't impose power>=0, i.e np.maximum(power, 0) + assert_almost_equal(np.maximum(power, 0), res_power, decimal=4) + + # with critval_continuity correction + power = smprop.power_ztost_prop(0.4, 0.6, np.arange(20, 210, 20), + p_alt=0.5, alpha=0.05, discrete=False, + dist='binom', variance_prop=None, + continuity=2, critval_continuity=1)[0] + + res_power = np.array([0., 0., 0., 0.0889, 0.2356, 0.3517, 0.4457, + 0.6154, 0.6674, 0.7708]) + # TODO: I currently don't impose power>=0, i.e np.maximum(power, 0) + assert_almost_equal(np.maximum(power, 0), res_power, decimal=4) + + power = smprop.power_ztost_prop(0.4, 0.6, np.arange(20, 210, 20), + p_alt=0.5, alpha=0.05, discrete=False, + dist='binom', variance_prop=0.5, + critval_continuity=1)[0] + + res_power = np.array([0., 0., 0., 0.0889, 0.2356, 0.3517, 0.4457, + 0.6154, 0.6674, 0.7112]) + # TODO: I currently don't impose power>=0, i.e np.maximum(power, 0) + assert_almost_equal(np.maximum(power, 0), res_power, decimal=4) + +def test_ztost(): + xfair = np.repeat([1,0], [228, 762-228]) + + # comparing to SAS last output at + # http://support.sas.com/documentation/cdl/en/procstat/63104/HTML/default/viewer.htm#procstat_freq_sect028.htm + # confidence interval for tost + # generic ztost is moved to weightstats + from statsmodels.stats.weightstats import zconfint, ztost + ci01 = zconfint(xfair, alpha=0.1, ddof=0) + assert_almost_equal(ci01, [0.2719, 0.3265], 4) + res = ztost(xfair, 0.18, 0.38, ddof=0) + + assert_almost_equal(res[1][0], 7.1865, 4) + assert_almost_equal(res[2][0], -4.8701, 4) + assert_array_less(res[0], 0.0001) + + +def test_power_ztost_prop_norm(): + # regression test for normal distribution + # from a rough comparison, the results and variations look reasonable + power = smprop.power_ztost_prop(0.4, 0.6, np.arange(20, 210, 20), + p_alt=0.5, alpha=0.05, discrete=False, + dist='norm', variance_prop=0.5, + continuity=0, critval_continuity=0)[0] + + res_power = np.array([0., 0., 0., 0.11450013, 0.27752006, 0.41495922, + 0.52944621, 0.62382638, 0.70092914, 0.76341806]) + # TODO: I currently don't impose power>=0, i.e np.maximum(power, 0) + assert_almost_equal(np.maximum(power, 0), res_power, decimal=4) + + # regression test for normal distribution + power = smprop.power_ztost_prop(0.4, 0.6, np.arange(20, 210, 20), + p_alt=0.5, alpha=0.05, discrete=False, + dist='norm', variance_prop=0.5, + continuity=1, critval_continuity=0)[0] + + res_power = np.array([0., 0., 0.02667562, 0.20189793, 0.35099606, + 0.47608598, 0.57981118, 0.66496683, 0.73427591, + 0.79026127]) + # TODO: I currently don't impose power>=0, i.e np.maximum(power, 0) + assert_almost_equal(np.maximum(power, 0), res_power, decimal=4) + + # regression test for normal distribution + power = smprop.power_ztost_prop(0.4, 0.6, np.arange(20, 210, 20), + p_alt=0.5, alpha=0.05, discrete=True, + dist='norm', variance_prop=0.5, + continuity=1, critval_continuity=0)[0] + + res_power = np.array([0., 0., 0., 0.08902071, 0.23582284, 0.35192313, + 0.55312718, 0.61549537, 0.66743625, 0.77066806]) + # TODO: I currently don't impose power>=0, i.e np.maximum(power, 0) + assert_almost_equal(np.maximum(power, 0), res_power, decimal=4) + + # regression test for normal distribution + power = smprop.power_ztost_prop(0.4, 0.6, np.arange(20, 210, 20), + p_alt=0.5, alpha=0.05, discrete=True, + dist='norm', variance_prop=0.5, + continuity=1, critval_continuity=1)[0] + + res_power = np.array([0., 0., 0., 0.08902071, 0.23582284, 0.35192313, + 0.44588687, 0.61549537, 0.66743625, 0.71115563]) + # TODO: I currently don't impose power>=0, i.e np.maximum(power, 0) + assert_almost_equal(np.maximum(power, 0), res_power, decimal=4) + + # regression test for normal distribution + power = smprop.power_ztost_prop(0.4, 0.6, np.arange(20, 210, 20), + p_alt=0.5, alpha=0.05, discrete=True, + dist='norm', variance_prop=None, + continuity=0, critval_continuity=0)[0] + + res_power = np.array([0., 0., 0., 0., 0.15851942, 0.41611758, + 0.5010377 , 0.5708047 , 0.70328247, 0.74210096]) + # TODO: I currently don't impose power>=0, i.e np.maximum(power, 0) + assert_almost_equal(np.maximum(power, 0), res_power, decimal=4) + + +def test_proportion_ztests(): + # currently only consistency test with proportions chisquare + # Note: alternative handling is generic + + res1 = smprop.proportions_ztest(15, 20., value=0.5, prop_var=0.5) + res2 = smprop.proportions_chisquare(15, 20., value=0.5) + assert_almost_equal(res1[1], res2[1], decimal=13) + + res1 = smprop.proportions_ztest(np.asarray([15, 10]), np.asarray([20., 20]), + value=0, prop_var=None) + res2 = smprop.proportions_chisquare(np.asarray([15, 10]), np.asarray([20., 20])) + # test only p-value + assert_almost_equal(res1[1], res2[1], decimal=13) + +if __name__ == '__main__': + test_confint_proportion() diff --git a/statsmodels/stats/tests/test_qsturng.py b/statsmodels/stats/tests/test_qsturng.py new file mode 100644 index 0000000..e3a1c00 --- /dev/null +++ b/statsmodels/stats/tests/test_qsturng.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +""" + +Created on Wed Mar 28 13:49:11 2012 + +Author: Josef Perktold +""" + +import numpy as np +from numpy.testing import assert_almost_equal + +from statsmodels.stats.libqsturng import qsturng, psturng +from statsmodels.sandbox.stats.multicomp import get_tukeyQcrit + +def test_qstrung(): + rows = [ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 24, 30, 40, 60, 120, 9999] + cols = np.arange(2,11) + + for alpha in [0.01, 0.05]: + for k in cols: + c1 = get_tukeyQcrit(k, rows, alpha=alpha) + c2 = qsturng(1-alpha, k, rows) + assert_almost_equal(c1, c2, decimal=2) + #roundtrip + assert_almost_equal(psturng(qsturng(1-alpha, k, rows), k, rows), alpha, 5) diff --git a/statsmodels/stats/tests/test_sandwich.py b/statsmodels/stats/tests/test_sandwich.py new file mode 100644 index 0000000..9790e9e --- /dev/null +++ b/statsmodels/stats/tests/test_sandwich.py @@ -0,0 +1,95 @@ +# -*- coding: utf-8 -*- +"""Tests for sandwich robust covariance estimation + +see also in regression for cov_hac compared to Gretl and +sandbox.panel test_random_panel for comparing cov_cluster, cov_hac_panel and +cov_white + +Created on Sat Dec 17 08:39:16 2011 + +Author: Josef Perktold +""" +import numpy as np +from numpy.testing import assert_almost_equal + +from statsmodels.regression.linear_model import OLS, GLSAR +from statsmodels.tools.tools import add_constant +import statsmodels.stats.sandwich_covariance as sw +#import statsmodels.sandbox.panel.sandwich_covariance_generic as swg + +def test_cov_cluster_2groups(): + #comparing cluster robust standard errors to Peterson + #requires Petersen's test_data + #http://www.kellogg.northwestern.edu/faculty/petersen/htm/papers/se/test_data.txt + import os + cur_dir = os.path.abspath(os.path.dirname(__file__)) + fpath = os.path.join(cur_dir,"test_data.txt") + pet = np.genfromtxt(fpath) + endog = pet[:,-1] + group = pet[:,0].astype(int) + time = pet[:,1].astype(int) + exog = add_constant(pet[:,2]) + res = OLS(endog, exog).fit() + + cov01, covg, covt = sw.cov_cluster_2groups(res, group, group2=time) + + #Reference number from Petersen + #http://www.kellogg.northwestern.edu/faculty/petersen/htm/papers/se/test_data.htm + + bse_petw = [0.0284, 0.0284] + bse_pet0 = [0.0670, 0.0506] + bse_pet1 = [0.0234, 0.0334] #year + bse_pet01 = [0.0651, 0.0536] #firm and year + bse_0 = sw.se_cov(covg) + bse_1 = sw.se_cov(covt) + bse_01 = sw.se_cov(cov01) + #print res.HC0_se, bse_petw - res.HC0_se + #print bse_0, bse_0 - bse_pet0 + #print bse_1, bse_1 - bse_pet1 + #print bse_01, bse_01 - bse_pet01 + assert_almost_equal(bse_petw, res.HC0_se, decimal=4) + assert_almost_equal(bse_0, bse_pet0, decimal=4) + assert_almost_equal(bse_1, bse_pet1, decimal=4) + assert_almost_equal(bse_01, bse_pet01, decimal=4) + +def test_hac_simple(): + + from statsmodels.datasets import macrodata + d2 = macrodata.load().data + g_gdp = 400*np.diff(np.log(d2['realgdp'])) + g_inv = 400*np.diff(np.log(d2['realinv'])) + exogg = add_constant(np.c_[g_gdp, d2['realint'][:-1]]) + res_olsg = OLS(g_inv, exogg).fit() + + + + #> NeweyWest(fm, lag = 4, prewhite = FALSE, sandwich = TRUE, verbose=TRUE, adjust=TRUE) + #Lag truncation parameter chosen: 4 + # (Intercept) ggdp lint + cov1_r = [[ 1.40643899878678802, -0.3180328707083329709, -0.060621111216488610], + [ -0.31803287070833292, 0.1097308348999818661, 0.000395311760301478], + [ -0.06062111121648865, 0.0003953117603014895, 0.087511528912470993]] + + #> NeweyWest(fm, lag = 4, prewhite = FALSE, sandwich = TRUE, verbose=TRUE, adjust=FALSE) + #Lag truncation parameter chosen: 4 + # (Intercept) ggdp lint + cov2_r = [[ 1.3855512908840137, -0.313309610252268500, -0.059720797683570477], + [ -0.3133096102522685, 0.108101169035130618, 0.000389440793564339], + [ -0.0597207976835705, 0.000389440793564336, 0.086211852740503622]] + + cov1 = sw.cov_hac_simple(res_olsg, nlags=4, use_correction=True) + se1 = sw.se_cov(cov1) + cov2 = sw.cov_hac_simple(res_olsg, nlags=4, use_correction=False) + se2 = sw.se_cov(cov2) + assert_almost_equal(cov1, cov1_r, decimal=14) + assert_almost_equal(cov2, cov2_r, decimal=14) + + # compare default for nlags + cov3 = sw.cov_hac_simple(res_olsg, use_correction=False) + cov4 = sw.cov_hac_simple(res_olsg, nlags=4, use_correction=False) + assert_almost_equal(cov3, cov4, decimal=14) + +if __name__ == '__main__': + import nose + nose.runmodule(argv=[__file__, '-vvs', '-x'], exit=False) + #test_hac_simple() diff --git a/statsmodels/stats/tests/test_statstools.py b/statsmodels/stats/tests/test_statstools.py new file mode 100644 index 0000000..d8fcb39 --- /dev/null +++ b/statsmodels/stats/tests/test_statstools.py @@ -0,0 +1,307 @@ +# TODO: Test robust skewness +# TODO: Test robust kurtosis +import numpy as np +import pandas as pd +from numpy.testing import (assert_almost_equal, assert_raises, TestCase) +from statsmodels.stats.stattools import (omni_normtest, jarque_bera, + durbin_watson, _medcouple_1d, medcouple, + robust_kurtosis, robust_skewness) +from statsmodels.stats._adnorm import normal_ad + +#a random array, rounded to 4 decimals +x = np.array([-0.1184, -1.3403, 0.0063, -0.612, -0.3869, -0.2313, -2.8485, + -0.2167, 0.4153, 1.8492, -0.3706, 0.9726, -0.1501, -0.0337, + -1.4423, 1.2489, 0.9182, -0.2331, -0.6182, 0.183]) + + +def test_durbin_watson(): + #benchmark values from R car::durbinWatsonTest(x) + #library("car") + #> durbinWatsonTest(x) + #[1] 1.95298958377419 + #> durbinWatsonTest(x**2) + #[1] 1.848802400319998 + #> durbinWatsonTest(x[2:20]+0.5*x[1:19]) + #[1] 1.09897993228779 + #> durbinWatsonTest(x[2:20]+0.8*x[1:19]) + #[1] 0.937241876707273 + #> durbinWatsonTest(x[2:20]+0.9*x[1:19]) + #[1] 0.921488912587806 + st_R = 1.95298958377419 + assert_almost_equal(durbin_watson(x), st_R, 14) + + st_R = 1.848802400319998 + assert_almost_equal(durbin_watson(x**2), st_R, 14) + + st_R = 1.09897993228779 + assert_almost_equal(durbin_watson(x[1:] + 0.5 * x[:-1]), st_R, 14) + + st_R = 0.937241876707273 + assert_almost_equal(durbin_watson(x[1:] + 0.8 * x[:-1]), st_R, 14) + + st_R = 0.921488912587806 + assert_almost_equal(durbin_watson(x[1:] + 0.9 * x[:-1]), st_R, 14) + + +def test_omni_normtest(): + #tests against R fBasics + from scipy import stats + + st_pv_R = np.array( + [[3.994138321207883, -1.129304302161460, 1.648881473704978], + [0.1357325110375005, 0.2587694866795507, 0.0991719192710234]]) + + nt = omni_normtest(x) + assert_almost_equal(nt, st_pv_R[:, 0], 14) + + st = stats.skewtest(x) + assert_almost_equal(st, st_pv_R[:, 1], 14) + + kt = stats.kurtosistest(x) + assert_almost_equal(kt, st_pv_R[:, 2], 11) + + st_pv_R = np.array( + [[34.523210399523926, 4.429509162503833, 3.860396220444025], + [3.186985686465249e-08, 9.444780064482572e-06, 1.132033129378485e-04]]) + + x2 = x**2 + #TODO: fix precision in these test with relative tolerance + nt = omni_normtest(x2) + assert_almost_equal(nt, st_pv_R[:, 0], 12) + + st = stats.skewtest(x2) + assert_almost_equal(st, st_pv_R[:, 1], 12) + + kt = stats.kurtosistest(x2) + assert_almost_equal(kt, st_pv_R[:, 2], 12) + + +def test_omni_normtest_axis(): + #test axis of omni_normtest + x = np.random.randn(25, 3) + nt1 = omni_normtest(x) + nt2 = omni_normtest(x, axis=0) + nt3 = omni_normtest(x.T, axis=1) + assert_almost_equal(nt2, nt1, decimal=13) + assert_almost_equal(nt3, nt1, decimal=13) + + +def test_jarque_bera(): + #tests against R fBasics + st_pv_R = np.array([1.9662677226861689, 0.3741367669648314]) + jb = jarque_bera(x)[:2] + assert_almost_equal(jb, st_pv_R, 14) + + st_pv_R = np.array([78.329987305556, 0.000000000000]) + jb = jarque_bera(x**2)[:2] + assert_almost_equal(jb, st_pv_R, 13) + + st_pv_R = np.array([5.7135750796706670, 0.0574530296971343]) + jb = jarque_bera(np.log(x**2))[:2] + assert_almost_equal(jb, st_pv_R, 14) + + st_pv_R = np.array([2.6489315748495761, 0.2659449923067881]) + jb = jarque_bera(np.exp(-x**2))[:2] + assert_almost_equal(jb, st_pv_R, 14) + + +def test_shapiro(): + #tests against R fBasics + #testing scipy.stats + from scipy.stats import shapiro + + st_pv_R = np.array([0.939984787255526, 0.239621898000460]) + sh = shapiro(x) + assert_almost_equal(sh, st_pv_R, 4) + + #st is ok -7.15e-06, pval agrees at -3.05e-10 + st_pv_R = np.array([5.799574255943298e-01, 1.838456834681376e-06 * 1e4]) + sh = shapiro(x**2) * np.array([1, 1e4]) + assert_almost_equal(sh, st_pv_R, 5) + + st_pv_R = np.array([0.91730442643165588, 0.08793704167882448]) + sh = shapiro(np.log(x**2)) + assert_almost_equal(sh, st_pv_R, 5) + + #diff is [ 9.38773155e-07, 5.48221246e-08] + st_pv_R = np.array([0.818361863493919373, 0.001644620895206969]) + sh = shapiro(np.exp(-x**2)) + assert_almost_equal(sh, st_pv_R, 5) + + +def test_adnorm(): + #tests against R fBasics + st_pv = [] + st_pv_R = np.array([0.5867235358882148, 0.1115380760041617]) + ad = normal_ad(x) + assert_almost_equal(ad, st_pv_R, 12) + st_pv.append(st_pv_R) + + st_pv_R = np.array([2.976266267594575e+00, 8.753003709960645e-08]) + ad = normal_ad(x**2) + assert_almost_equal(ad, st_pv_R, 11) + st_pv.append(st_pv_R) + + st_pv_R = np.array([0.4892557856308528, 0.1968040759316307]) + ad = normal_ad(np.log(x**2)) + assert_almost_equal(ad, st_pv_R, 12) + st_pv.append(st_pv_R) + + st_pv_R = np.array([1.4599014654282669312, 0.0006380009232897535]) + ad = normal_ad(np.exp(-x**2)) + assert_almost_equal(ad, st_pv_R, 12) + st_pv.append(st_pv_R) + + ad = normal_ad(np.column_stack((x, x**2, np.log(x**2), np.exp(-x**2))).T, + axis=1) + assert_almost_equal(ad, np.column_stack(st_pv), 11) + + +def test_durbin_watson_pandas(): + x = np.random.randn(50) + x_series = pd.Series(x) + assert_almost_equal(durbin_watson(x), durbin_watson(x_series), decimal=13) + + +class TestStattools(TestCase): + @classmethod + def setup_class(cls): + x = np.random.standard_normal(1000) + e1, e2, e3, e4, e5, e6, e7 = np.percentile(x, (12.5, 25.0, 37.5, 50.0, 62.5, 75.0, 87.5)) + c05, c50, c95 = np.percentile(x, (5.0, 50.0, 95.0)) + f025, f25, f75, f975 = np.percentile(x, (2.5, 25.0, 75.0, 97.5)) + mean = np.mean + kr1 = mean(((x - mean(x)) / np.std(x))**4.0) - 3.0 + kr2 = ((e7 - e5) + (e3 - e1)) / (e6 - e2) - 1.2330951154852172 + kr3 = (mean(x[x > c95]) - mean(x[x < c05])) / (mean(x[x > c50]) - mean(x[x < c50])) - 2.5852271228708048 + kr4 = (f975 - f025) / (f75 - f25) - 2.9058469516701639 + cls.kurtosis_x = x + cls.expected_kurtosis = np.array([kr1, kr2, kr3, kr4]) + cls.kurtosis_constants = np.array([3.0,1.2330951154852172,2.5852271228708048,2.9058469516701639]) + + def test_medcouple_no_axis(self): + x = np.reshape(np.arange(100.0), (50, 2)) + mc = medcouple(x, axis=None) + assert_almost_equal(mc, medcouple(x.ravel())) + + def test_medcouple_1d(self): + x = np.reshape(np.arange(100.0),(50,2)) + assert_raises(ValueError, _medcouple_1d, x) + + def test_medcouple_symmetric(self): + mc = medcouple(np.arange(5.0)) + assert_almost_equal(mc, 0) + + + def test_medcouple_nonzero(self): + mc = medcouple(np.array([1, 2, 7, 9, 10.0])) + assert_almost_equal(mc, -0.3333333) + + + def test_medcouple_symmetry(self): + x = np.random.standard_normal(100) + mcp = medcouple(x) + mcn = medcouple(-x) + assert_almost_equal(mcp + mcn, 0) + + + def test_durbin_watson(self): + x = np.random.standard_normal(100) + dw = sum(np.diff(x)**2.0) / np.dot(x, x) + assert_almost_equal(dw, durbin_watson(x)) + + + def test_durbin_watson_2d(self): + shape = (1, 10) + x = np.random.standard_normal(100) + dw = sum(np.diff(x)**2.0) / np.dot(x, x) + x = np.tile(x[:, None], shape) + assert_almost_equal(np.squeeze(dw * np.ones(shape)), durbin_watson(x)) + + + def test_durbin_watson_3d(self): + shape = (10, 1, 10) + x = np.random.standard_normal(100) + dw = sum(np.diff(x)**2.0) / np.dot(x, x) + x = np.tile(x[None, :, None], shape) + assert_almost_equal(np.squeeze(dw * np.ones(shape)), durbin_watson(x, axis=1)) + + + def test_robust_skewness_1d(self): + x = np.arange(21.0) + sk = robust_skewness(x) + assert_almost_equal(np.array(sk), np.zeros(4)) + + def test_robust_skewness_1d_2d(self): + x = np.random.randn(21) + y = x[:, None] + sk_x = robust_skewness(x) + sk_y = robust_skewness(y, axis=None) + assert_almost_equal(np.array(sk_x), np.array(sk_y)) + + def test_robust_skewness_symmetric(self): + x = np.random.standard_normal(100) + x = np.hstack([x, np.zeros(1), -x]) + sk = robust_skewness(x) + assert_almost_equal(np.array(sk), np.zeros(4)) + + + def test_robust_skewness_3d(self): + x = np.random.standard_normal(100) + x = np.hstack([x, np.zeros(1), -x]) + x = np.tile(x, (10, 10, 1)) + sk_3d = robust_skewness(x, axis=2) + result = np.zeros((10, 10)) + for sk in sk_3d: + assert_almost_equal(sk, result) + + def test_robust_kurtosis_1d_2d(self): + x = np.random.randn(100) + y = x[:, None] + kr_x = np.array(robust_kurtosis(x)) + kr_y = np.array(robust_kurtosis(y, axis=None)) + assert_almost_equal(kr_x, kr_y) + + def test_robust_kurtosis(self): + x = self.kurtosis_x + assert_almost_equal(np.array(robust_kurtosis(x)), self.expected_kurtosis) + + def test_robust_kurtosis_3d(self): + x = np.tile(self.kurtosis_x, (10, 10, 1)) + kurtosis = np.array(robust_kurtosis(x, axis=2)) + for i, r in enumerate(self.expected_kurtosis): + assert_almost_equal(r * np.ones((10, 10)), kurtosis[i]) + + + def test_robust_kurtosis_excess_false(self): + x = self.kurtosis_x + expected = self.expected_kurtosis + self.kurtosis_constants + kurtosis = np.array(robust_kurtosis(x, excess=False)) + assert_almost_equal(expected, kurtosis) + + def test_robust_kurtosis_ab(self): + """Test custom alpha, beta in kr3""" + x = self.kurtosis_x + alpha, beta = (10.0, 45.0) + kurtosis = robust_kurtosis(self.kurtosis_x, ab=(alpha,beta), excess=False) + num = np.mean(x[x>np.percentile(x,100.0 - alpha)]) - np.mean(x[xnp.percentile(x,100.0 - beta)]) - np.mean(x[x t = tost(-clinic$var1[16:30] + clinic$var1[1:15], eps=0.6) +#> cat_items(t, prefix="tost_clinic_paired_1.") +tost_clinic_paired_1 = Holder() +tost_clinic_paired_1.mean_diff = 0.1646666666666667 +tost_clinic_paired_1.se_diff = 0.1357514067862445 +tost_clinic_paired_1.alpha = 0.05 +tost_clinic_paired_1.ci_diff = (-0.0744336620516462, 0.4037669953849797) +tost_clinic_paired_1.df = 14 +tost_clinic_paired_1.epsilon = 0.6 +tost_clinic_paired_1.result = 'rejected' +tost_clinic_paired_1.p_value = 0.003166881489265175 +tost_clinic_paired_1.check_me = (-0.2706666666666674, 0.600000000000001) + + +#> t = tost(clinic$var2[1:15], clinic$var2[16:30], eps=0.6) +#> cat_items(t, prefix="tost_clinic_indep.") +tost_clinic_indep = Holder() +tost_clinic_indep.sample = 'independent' +tost_clinic_indep.mean_diff = 0.562666666666666 +tost_clinic_indep.se_diff = 0.2149871904637392 +tost_clinic_indep.alpha = 0.05 +tost_clinic_indep.ci_diff = (0.194916250699966, 0.930417082633366) +tost_clinic_indep.df = 24.11000151062728 +tost_clinic_indep.epsilon = 0.6 +tost_clinic_indep.result = 'not rejected' +tost_clinic_indep.p_value = 0.4317936812594803 +tost_clinic_indep.check_me = (0.525333333333332, 0.6) + +#> t = tost(clinic$var1[1:15], clinic$var1[16:30], eps=0.6) +#> cat_items(t, prefix="tost_clinic_indep_1.") +tost_clinic_indep_1 = Holder() +tost_clinic_indep_1.sample = 'independent' +tost_clinic_indep_1.mean_diff = 0.1646666666666667 +tost_clinic_indep_1.se_diff = 0.2531625991083627 +tost_clinic_indep_1.alpha = 0.05 +tost_clinic_indep_1.ci_diff = (-0.2666862980722534, 0.596019631405587) +tost_clinic_indep_1.df = 26.7484787582315 +tost_clinic_indep_1.epsilon = 0.6 +tost_clinic_indep_1.result = 'rejected' +tost_clinic_indep_1.p_value = 0.04853083976236974 +tost_clinic_indep_1.check_me = (-0.2706666666666666, 0.6) + +#pooled variance +#> t = tost(clinic$var1[1:15], clinic$var1[16:30], eps=0.6, var.equal = TRUE) +#> cat_items(t, prefix="tost_clinic_indep_1_pooled.") +tost_clinic_indep_1_pooled = Holder() +tost_clinic_indep_1_pooled.mean_diff = 0.1646666666666667 +tost_clinic_indep_1_pooled.se_diff = 0.2531625991083628 +tost_clinic_indep_1_pooled.alpha = 0.05 +tost_clinic_indep_1_pooled.ci_diff = (-0.2659960620757337, 0.595329395409067) +tost_clinic_indep_1_pooled.df = 28 +tost_clinic_indep_1_pooled.epsilon = 0.6 +tost_clinic_indep_1_pooled.result = 'rejected' +tost_clinic_indep_1_pooled.p_value = 0.04827315100761467 +tost_clinic_indep_1_pooled.check_me = (-0.2706666666666666, 0.6) + +#> t = tost(clinic$var2[1:15], clinic$var2[16:30], eps=0.6, var.equal = TRUE) +#> cat_items(t, prefix="tost_clinic_indep_2_pooled.") +tost_clinic_indep_2_pooled = Holder() +tost_clinic_indep_2_pooled.mean_diff = 0.562666666666666 +tost_clinic_indep_2_pooled.se_diff = 0.2149871904637392 +tost_clinic_indep_2_pooled.alpha = 0.05 +tost_clinic_indep_2_pooled.ci_diff = (0.1969453064978777, 0.928388026835454) +tost_clinic_indep_2_pooled.df = 28 +tost_clinic_indep_2_pooled.epsilon = 0.6 +tost_clinic_indep_2_pooled.result = 'not rejected' +tost_clinic_indep_2_pooled.p_value = 0.43169347692374 +tost_clinic_indep_2_pooled.check_me = (0.525333333333332, 0.6) + + +#tost ratio, log transformed +#> t = tost(log(clinic$var1[1:15]), log(clinic$var1[16:30]), eps=log(1.25), paired=TRUE) +#> cat_items(t, prefix="tost_clinic_1_paired.") +tost_clinic_1_paired = Holder() +tost_clinic_1_paired.mean_diff = 0.0431223318225235 +tost_clinic_1_paired.se_diff = 0.03819576328421437 +tost_clinic_1_paired.alpha = 0.05 +tost_clinic_1_paired.ci_diff = (-0.02415225319362176, 0.1103969168386687) +tost_clinic_1_paired.df = 14 +tost_clinic_1_paired.epsilon = 0.2231435513142098 +tost_clinic_1_paired.result = 'rejected' +tost_clinic_1_paired.p_value = 0.0001664157928976468 +tost_clinic_1_paired.check_me = (-0.1368988876691603, 0.2231435513142073) + +#> t = tost(log(clinic$var1[1:15]), log(clinic$var1[16:30]), eps=log(1.25), paired=FALSE) +#> cat_items(t, prefix="tost_clinic_1_indep.") +tost_clinic_1_indep = Holder() +tost_clinic_1_indep.mean_diff = 0.04312233182252334 +tost_clinic_1_indep.se_diff = 0.073508371131806 +tost_clinic_1_indep.alpha = 0.05 +tost_clinic_1_indep.ci_diff = (-0.0819851930203655, 0.1682298566654122) +tost_clinic_1_indep.df = 27.61177037646526 +tost_clinic_1_indep.epsilon = 0.2231435513142098 +tost_clinic_1_indep.result = 'rejected' +tost_clinic_1_indep.p_value = 0.01047085593138891 +tost_clinic_1_indep.check_me = (-0.1368988876691633, 0.22314355131421) + +#> t = tost(log(y), log(x), eps=log(1.25), paired=TRUE) +#> cat_items(t, prefix="tost_s_paired.") +tost_s_paired = Holder() +tost_s_paired.mean_diff = 0.06060076667771316 +tost_s_paired.se_diff = 0.04805826005366752 +tost_s_paired.alpha = 0.05 +tost_s_paired.ci_diff = (-0.0257063329659993, 0.1469078663214256) +tost_s_paired.df = 11 +tost_s_paired.epsilon = 0.2231435513142098 +tost_s_paired.result = 'rejected' +tost_s_paired.p_value = 0.003059338540563293 +tost_s_paired.check_me = (-0.1019420179587835, 0.2231435513142098) + +#multiple endpoints +#> compvall <- multeq.diff(data=clinic,grp="fact",method="step.up",margin.up=rep(0.6,5), margin.lo=c(-1.0, -1.0, -1.5, -1.5, -1.5)) +#> cat_items(compvall, prefix="tost_clinic_all_no_multi.") +tost_clinic_all_no_multi = Holder() +tost_clinic_all_no_multi.comp_name = '2-1' +tost_clinic_all_no_multi.estimate = np.array([ + -0.1646666666666667, -0.562666666666666, -0.3073333333333332, + -0.5553333333333335, -0.469333333333333]) +tost_clinic_all_no_multi.degr_fr = np.array([ + 26.74847875823152, 24.1100015106273, 23.90046331918926, + 25.71678948210178, 24.88436709341423]) +tost_clinic_all_no_multi.test_stat = np.array([ + 3.020456692101513, 2.034229724989578, 4.052967897750272, + 4.37537447933403, 4.321997343344]) +tost_clinic_all_no_multi.p_value = np.array([ + 0.00274867705173331, 0.02653543052872217, 0.0002319468040526358, + 8.916466517494902e-05, 0.00010890038649094043]) +tost_clinic_all_no_multi.lower = np.array([ + -0.596019631405587, -0.930417082633366, -0.690410573009442, + -0.92373513818557, -0.876746448909633]) +tost_clinic_all_no_multi.upper = np.array([ + 0.2666862980722534, -0.194916250699966, 0.07574390634277595, + -0.186931528481097, -0.06192021775703377]) +tost_clinic_all_no_multi.margin_lo = np.array([ + -1, -1, -1.5, -1.5, -1.5]) +tost_clinic_all_no_multi.margin_up = np.array([ + 0.6, 0.6, 0.6, 0.6, 0.6]) +tost_clinic_all_no_multi.base = 1 +tost_clinic_all_no_multi.method = 'step.up' +tost_clinic_all_no_multi.var_equal = '''FALSE''' +tost_clinic_all_no_multi.FWER = 0.05 + + + +#> comp <- multeq.diff(data=clinic,grp="fact", resp=c("var1"),method="step.up",margin.up=rep(0.6), margin.lo=rep(-1.5)) +#> cat_items(comp, prefix="tost_clinic_1_asym.") +tost_clinic_1_asym = Holder +tost_clinic_1_asym.comp_name = '2-1' +tost_clinic_1_asym.estimate = -0.1646666666666667 +tost_clinic_1_asym.degr_fr = 26.74847875823152 +tost_clinic_1_asym.test_stat = 3.020456692101513 +tost_clinic_1_asym.p_value = 0.00274867705173331 +tost_clinic_1_asym.lower = -0.596019631405587 +tost_clinic_1_asym.upper = 0.2666862980722534 +tost_clinic_1_asym.margin_lo = -1.5 +tost_clinic_1_asym.margin_up = 0.6 +tost_clinic_1_asym.base = 1 +tost_clinic_1_asym.method = 'step.up' +tost_clinic_1_asym.var_equal = '''FALSE''' +tost_clinic_1_asym.FWER = 0.05 + +#TODO: not used yet, some p-values are multi-testing adjusted +# not implemented +#> compvall <- multeq.diff(data=clinic,grp="fact",method="step.up",margin.up=rep(0.6,5), margin.lo=c(-0.5, -0.5, -1.5, -1.5, -1.5)) +#> cat_items(compvall, prefix="tost_clinic_all_multi.") +tost_clinic_all_multi = Holder() +tost_clinic_all_multi.comp_name = '2-1' +tost_clinic_all_multi.estimate = np.array([ + -0.1646666666666667, -0.562666666666666, -0.3073333333333332, + -0.5553333333333335, -0.469333333333333]) +tost_clinic_all_multi.degr_fr = np.array([ + 26.74847875823152, 24.1100015106273, 23.90046331918926, + 25.71678948210178, 24.88436709341423]) +tost_clinic_all_multi.test_stat = np.array([ + 1.324576910311299, -0.2914902349832590, 4.052967897750272, + 4.37537447933403, 4.321997343344]) +tost_clinic_all_multi.p_value = np.array([ + 0.0982588867413542, 0.6134151998456164, 0.0006958404121579073, + 0.0002674939955248471, 0.0003267011594728213]) +tost_clinic_all_multi.lower = np.array([ + -0.596019631405587, -0.930417082633366, -0.812901144055456, + -1.040823983574101, -1.006578759345919]) +tost_clinic_all_multi.upper = np.array([ + 0.2666862980722534, -0.194916250699966, 0.1982344773887895, + -0.0698426830925655, 0.0679120926792529]) +tost_clinic_all_multi.margin_lo = np.array([ + -0.5, -0.5, -1.5, -1.5, -1.5]) +tost_clinic_all_multi.margin_up = np.array([ + 0.6, 0.6, 0.6, 0.6, 0.6]) +tost_clinic_all_multi.base = 1 +tost_clinic_all_multi.method = 'step.up' +tost_clinic_all_multi.var_equal = '''FALSE''' +tost_clinic_all_multi.FWER = 0.05 + + +#t-tests + +#> tt = t.test(clinic$var1[16:30], clinic$var1[1:15], data=clinic, mu=-0., alternative="two.sided", paired=TRUE) +#> cat_items(tt, prefix="ttest_clinic_paired_1.") +ttest_clinic_paired_1 = Holder() +ttest_clinic_paired_1.statistic = 1.213001548676048 +ttest_clinic_paired_1.parameter = 14 +ttest_clinic_paired_1.p_value = 0.245199929713149 +ttest_clinic_paired_1.conf_int = (-0.1264911434745851, 0.4558244768079186) +ttest_clinic_paired_1.estimate = 0.1646666666666667 +ttest_clinic_paired_1.null_value = 0 +ttest_clinic_paired_1.alternative = 'two.sided' +ttest_clinic_paired_1.method = 'Paired t-test' +ttest_clinic_paired_1.data_name = 'clinic$var1[1:15] and clinic$var1[16:30]' + + + +#> ttless = t.test(clinic$var1[1:15], clinic$var1[16:30],, data=clinic, mu=-0., alternative="less", paired=FALSE) +#> cat_items(ttless, prefix="ttest_clinic_paired_1_l.") +ttest_clinic_paired_1_l = Holder() +ttest_clinic_paired_1_l.statistic = 0.650438363512706 +ttest_clinic_paired_1_l.parameter = 26.7484787582315 +ttest_clinic_paired_1_l.p_value = 0.739521349864458 +ttest_clinic_paired_1_l.conf_int = (-np.inf, 0.596019631405587) +ttest_clinic_paired_1_l.estimate = (3.498, 3.333333333333333) +ttest_clinic_paired_1_l.null_value = 0 +ttest_clinic_paired_1_l.alternative = 'less' +ttest_clinic_paired_1_l.method = 'Welch Two Sample t-test' +ttest_clinic_paired_1_l.data_name = 'clinic$var1[1:15] and clinic$var1[16:30]' + +#> cat_items(tt, prefix="ttest_clinic_indep_1_g.") +ttest_clinic_indep_1_g = Holder() +ttest_clinic_indep_1_g.statistic = 0.650438363512706 +ttest_clinic_indep_1_g.parameter = 26.7484787582315 +ttest_clinic_indep_1_g.p_value = 0.2604786501355416 +ttest_clinic_indep_1_g.conf_int = (-0.2666862980722534, np.inf) +ttest_clinic_indep_1_g.estimate = (3.498, 3.333333333333333) +ttest_clinic_indep_1_g.null_value = 0 +ttest_clinic_indep_1_g.alternative = 'greater' +ttest_clinic_indep_1_g.method = 'Welch Two Sample t-test' +ttest_clinic_indep_1_g.data_name = 'clinic$var1[1:15] and clinic$var1[16:30]' + +#> cat_items(ttless, prefix="ttest_clinic_indep_1_l.") +ttest_clinic_indep_1_l = Holder() +ttest_clinic_indep_1_l.statistic = 0.650438363512706 +ttest_clinic_indep_1_l.parameter = 26.7484787582315 +ttest_clinic_indep_1_l.p_value = 0.739521349864458 +ttest_clinic_indep_1_l.conf_int = (-np.inf, 0.596019631405587) +ttest_clinic_indep_1_l.estimate = (3.498, 3.333333333333333) +ttest_clinic_indep_1_l.null_value = 0 +ttest_clinic_indep_1_l.alternative = 'less' +ttest_clinic_indep_1_l.method = 'Welch Two Sample t-test' +ttest_clinic_indep_1_l.data_name = 'clinic$var1[1:15] and clinic$var1[16:30]' + +#> ttless = t.test(clinic$var1[1:15], clinic$var1[16:30],, data=clinic, mu=1., alternative="less", paired=FALSE) +#> cat_items(ttless, prefix="ttest_clinic_indep_1_l_mu.") +ttest_clinic_indep_1_l_mu = Holder() +ttest_clinic_indep_1_l_mu.statistic = -3.299592184135306 +ttest_clinic_indep_1_l_mu.parameter = 26.7484787582315 +ttest_clinic_indep_1_l_mu.p_value = 0.001372434925571605 +ttest_clinic_indep_1_l_mu.conf_int = (-np.inf, 0.596019631405587) +ttest_clinic_indep_1_l_mu.estimate = (3.498, 3.333333333333333) +ttest_clinic_indep_1_l_mu.null_value = 1 +ttest_clinic_indep_1_l_mu.alternative = 'less' +ttest_clinic_indep_1_l_mu.method = 'Welch Two Sample t-test' +ttest_clinic_indep_1_l_mu.data_name = 'clinic$var1[1:15] and clinic$var1[16:30]' + + +#> tt2 = t.test(clinic$var1[1:15], clinic$var1[16:30],, data=clinic, mu=1, alternative="two.sided", paired=FALSE) +#> cat_items(tt2, prefix="ttest_clinic_indep_1_two_mu.") +ttest_clinic_indep_1_two_mu = Holder() +ttest_clinic_indep_1_two_mu.statistic = -3.299592184135306 +ttest_clinic_indep_1_two_mu.parameter = 26.7484787582315 +ttest_clinic_indep_1_two_mu.p_value = 0.00274486985114321 +ttest_clinic_indep_1_two_mu.conf_int = (-0.3550087243406, 0.6843420576739336) +ttest_clinic_indep_1_two_mu.estimate = (3.498, 3.333333333333333) +ttest_clinic_indep_1_two_mu.null_value = 1 +ttest_clinic_indep_1_two_mu.alternative = 'two.sided' +ttest_clinic_indep_1_two_mu.method = 'Welch Two Sample t-test' +ttest_clinic_indep_1_two_mu.data_name = 'clinic$var1[1:15] and clinic$var1[16:30]' + +#> tt2 = t.test(clinic$var1[1:15], clinic$var1[16:30],, data=clinic, mu=1, alternative="two.sided", paired=FALSE, var.equal=TRUE) +#> cat_items(tt2, prefix="ttest_clinic_indep_1_two_mu_pooled.") +ttest_clinic_indep_1_two_mu_pooled = Holder() +ttest_clinic_indep_1_two_mu_pooled.statistic = -3.299592184135305 +ttest_clinic_indep_1_two_mu_pooled.parameter = 28 +ttest_clinic_indep_1_two_mu_pooled.p_value = 0.002643203760742494 +ttest_clinic_indep_1_two_mu_pooled.conf_int = (-0.35391340938235, 0.6832467427156834) +ttest_clinic_indep_1_two_mu_pooled.estimate = (3.498, 3.333333333333333) +ttest_clinic_indep_1_two_mu_pooled.null_value = 1 +ttest_clinic_indep_1_two_mu_pooled.alternative = 'two.sided' +ttest_clinic_indep_1_two_mu_pooled.method = ' Two Sample t-test' +ttest_clinic_indep_1_two_mu_pooled.data_name = 'clinic$var1[1:15] and clinic$var1[16:30]' + + + + +res1 = smws.ttost_paired(clinic[:15, 2], clinic[15:, 2], -0.6, 0.6, transform=None) +res2 = smws.ttost_paired(clinic[:15, 3], clinic[15:, 3], -0.6, 0.6, transform=None) +res = smws.ttost_ind(clinic[:15, 3], clinic[15:, 3], -0.6, 0.6, usevar='unequal') + + +class CheckTostMixin(object): + + def test_pval(self): + assert_almost_equal(self.res1.pvalue, self.res2.p_value, decimal=13) + #assert_almost_equal(self.res1.df, self.res2.df, decimal=13) + +class TestTostp1(CheckTostMixin): + #paired var1 + def __init__(self): + self.res2 = tost_clinic_paired_1 + x1, x2 = clinic[:15, 2], clinic[15:, 2] + self.res1 = Holder() + res = smws.ttost_paired(x1, x2, -0.6, 0.6, transform=None) + self.res1.pvalue = res[0] + #self.res1.df = res[1][-1] not yet + res_ds = smws.DescrStatsW(x1 - x2, weights=None, ddof=0) + #tost confint 2*alpha TODO: check again + self.res1.tconfint_diff = res_ds.tconfint_mean(0.1) + self.res1.confint_05 = res_ds.tconfint_mean(0.05) + self.res1.mean_diff = res_ds.mean + self.res1.std_mean_diff = res_ds.std_mean + + self.res2b = ttest_clinic_paired_1 + + def test_special(self): + #TODO: add attributes to other cases and move to superclass + assert_almost_equal(self.res1.tconfint_diff, self.res2.ci_diff, + decimal=13) + assert_almost_equal(self.res1.mean_diff, self.res2.mean_diff, + decimal=13) + assert_almost_equal(self.res1.std_mean_diff, self.res2.se_diff, + decimal=13) + #compare with ttest + assert_almost_equal(self.res1.confint_05, self.res2b.conf_int, + decimal=13) + + +class TestTostp2(CheckTostMixin): + #paired var2 + def __init__(self): + self.res2 = tost_clinic_paired + x, y = clinic[:15, 3], clinic[15:, 3] + self.res1 = Holder() + res = smws.ttost_paired(x, y, -0.6, 0.6, transform=None) + self.res1.pvalue = res[0] + +class TestTosti1(CheckTostMixin): + def __init__(self): + self.res2 = tost_clinic_indep_1 + x, y = clinic[:15, 2], clinic[15:, 2] + self.res1 = Holder() + res = smws.ttost_ind(x, y, -0.6, 0.6, usevar='unequal') + self.res1.pvalue = res[0] + +class TestTosti2(CheckTostMixin): + def __init__(self): + self.res2 = tost_clinic_indep + x, y = clinic[:15, 3], clinic[15:, 3] + self.res1 = Holder() + res = smws.ttost_ind(x, y, -0.6, 0.6, usevar='unequal') + self.res1.pvalue = res[0] + +class TestTostip1(CheckTostMixin): + def __init__(self): + self.res2 = tost_clinic_indep_1_pooled + x, y = clinic[:15, 2], clinic[15:, 2] + self.res1 = Holder() + res = smws.ttost_ind(x, y, -0.6, 0.6, usevar='pooled') + self.res1.pvalue = res[0] + +class TestTostip2(CheckTostMixin): + def __init__(self): + self.res2 = tost_clinic_indep_2_pooled + x, y = clinic[:15, 3], clinic[15:, 3] + self.res1 = Holder() + res = smws.ttost_ind(x, y, -0.6, 0.6, usevar='pooled') + self.res1.pvalue = res[0] + +#transform=np.log +#class TestTostp1_log(CheckTost): +def test_tost_log(): + x1, x2 = clinic[:15, 2], clinic[15:, 2] + + resp = smws.ttost_paired(x1, x2, 0.8, 1.25, transform=np.log) + assert_almost_equal(resp[0], tost_clinic_1_paired.p_value, 13) + + resi = smws.ttost_ind(x1, x2, 0.8, 1.25, transform=np.log, usevar='unequal') + assert_almost_equal(resi[0], tost_clinic_1_indep.p_value, 13) + +def test_tost_asym(): + x1, x2 = clinic[:15, 2], clinic[15:, 2] + #Note: x1, x2 reversed by definition in multeq.dif + assert_almost_equal(x2.mean() - x1.mean(), tost_clinic_1_asym.estimate, 13) + resa = smws.ttost_ind(x2, x1, -1.5, 0.6, usevar='unequal') + assert_almost_equal(resa[0], tost_clinic_1_asym.p_value, 13) + + #multi-endpoints, asymmetric bounds, vectorized + resall = smws.ttost_ind(clinic[15:, 2:7], clinic[:15, 2:7], + [-1.0, -1.0, -1.5, -1.5, -1.5], 0.6, + usevar='unequal') + assert_almost_equal(resall[0], tost_clinic_all_no_multi.p_value, 13) + + #SMOKE tests: foe multi-endpoint vectorized, k on k + resall = smws.ttost_ind(clinic[15:, 2:7], clinic[:15, 2:7], + [-1.0, -1.0, -1.5, -1.5, -1.5], 0.6, + usevar='unequal', transform=np.log) + resall = smws.ttost_ind(clinic[15:, 2:7], clinic[:15, 2:7], + [-1.0, -1.0, -1.5, -1.5, -1.5], 0.6, + usevar='unequal', transform=np.exp) + + resall = smws.ttost_paired(clinic[15:, 2:7], clinic[:15, 2:7], + [-1.0, -1.0, -1.5, -1.5, -1.5], 0.6, + transform=np.log) + resall = smws.ttost_paired(clinic[15:, 2:7], clinic[:15, 2:7], + [-1.0, -1.0, -1.5, -1.5, -1.5], 0.6, + transform=np.exp) + + resall = smws.ttest_ind(clinic[15:, 2:7], clinic[:15, 2:7], + value=[-1.0, -1.0, -1.5, -1.5, -1.5]) + + #k on 1: compare all with reference + resall = smws.ttost_ind(clinic[15:, 2:7], clinic[:15, 2:3], + [-1.0, -1.0, -1.5, -1.5, -1.5], 0.6, usevar='unequal') + resa3_2 = smws.ttost_ind(clinic[15:, 3:4], clinic[:15, 2:3], + [-1.0, -1.0, -1.5, -1.5, -1.5], 0.6, usevar='unequal') + assert_almost_equal(resall[0][1], resa3_2[0][1], decimal=13) + resall = smws.ttost_ind(clinic[15:, 2], clinic[:15, 2], + [-1.0, -0.5, -0.7, -1.5, -1.5], 0.6, usevar='unequal') + resall = smws.ttost_ind(clinic[15:, 2], clinic[:15, 2], + [-1.0, -0.5, -0.7, -1.5, -1.5], + np.repeat(0.6,5), usevar='unequal') + +def test_ttest(): + x1, x2 = clinic[:15, 2], clinic[15:, 2] + all_tests = [] + t1 = smws.ttest_ind(x1, x2, alternative='larger', usevar='unequal') + all_tests.append((t1, ttest_clinic_indep_1_g)) + t2 = smws.ttest_ind(x1, x2, alternative='smaller', usevar='unequal') + all_tests.append((t2, ttest_clinic_indep_1_l)) + t3 = smws.ttest_ind(x1, x2, alternative='smaller', usevar='unequal', + value=1) + all_tests.append((t3, ttest_clinic_indep_1_l_mu)) + + for res1, res2 in all_tests: + assert_almost_equal(res1[0], res2.statistic, decimal=13) + assert_almost_equal(res1[1], res2.p_value, decimal=13) + #assert_almost_equal(res1[2], res2.df, decimal=13) + + cm = smws.CompareMeans(smws.DescrStatsW(x1), smws.DescrStatsW(x2)) + ci = cm.tconfint_diff(alternative='two-sided', usevar='unequal') + assert_almost_equal(ci, ttest_clinic_indep_1_two_mu.conf_int, decimal=13) + ci = cm.tconfint_diff(alternative='two-sided', usevar='pooled') + assert_almost_equal(ci, ttest_clinic_indep_1_two_mu_pooled.conf_int, decimal=13) + ci = cm.tconfint_diff(alternative='smaller', usevar='unequal') + assert_almost_equal_inf(ci, ttest_clinic_indep_1_l.conf_int, decimal=13) + ci = cm.tconfint_diff(alternative='larger', usevar='unequal') + assert_almost_equal_inf(ci, ttest_clinic_indep_1_g.conf_int, decimal=13) + + + #test get_compare + cm = smws.CompareMeans(smws.DescrStatsW(x1), smws.DescrStatsW(x2)) + cm1 = cm.d1.get_compare(cm.d2) + cm2 = cm.d1.get_compare(x2) + cm3 = cm.d1.get_compare(np.hstack((x2,x2))) + #all use the same d1, no copying + assert_(cm.d1 is cm1.d1) + assert_(cm.d1 is cm2.d1) + assert_(cm.d1 is cm3.d1) + +def tost_transform_paired(): + raw = np.array('''\ + 103.4 90.11 59.92 77.71 68.17 77.71 94.54 97.51 + 69.48 58.21 72.17 101.3 74.37 79.84 84.44 96.06 + 96.74 89.30 94.26 97.22 48.52 61.62 95.68 85.80'''.split(), float) + + x, y = raw.reshape(-1,2).T + + res1 = smws.ttost_paired(x, y, 0.8, 1.25, transform=np.log) + res_sas = (0.0031, (3.38, 0.0031), (-5.90, 0.00005)) + assert_almost_equal(res1[0], res_sas[0], 3) + assert_almost_equal(res1[1:], res_sas[1:], 2) + #result R tost + assert_almost_equal(res1[0], tost_s_paired.p_value, 13) + +if __name__ == '__main__': + tt = TestTostp1() + tt.test_special() + for cls in [TestTostp1, TestTostp2, TestTosti1, TestTosti2, + TestTostip1, TestTostip2]: + #print cls + tt = cls() + tt.test_pval() + + test_ttest() + tost_transform_paired() + test_tost_log() + + diff --git a/statsmodels/stats/tests/test_weightstats.py b/statsmodels/stats/tests/test_weightstats.py new file mode 100644 index 0000000..78faab8 --- /dev/null +++ b/statsmodels/stats/tests/test_weightstats.py @@ -0,0 +1,746 @@ +'''tests for weightstats, compares with replication + +no failures but needs cleanup +update 2012-09-09: + added test after fixing bug in covariance + TODOs: + - I don't remember what all the commented out code is doing + - should be refactored to use generator or inherited tests + - still gaps in test coverage + - value/diff in ttest_ind is tested in test_tost.py + - what about pandas data structures? + +Author: Josef Perktold +License: BSD (3-clause) + +''' + +import numpy as np +from scipy import stats +import pandas as pd +from numpy.testing import (assert_, assert_almost_equal, assert_equal, + assert_allclose) + +from statsmodels.stats.weightstats import (DescrStatsW, CompareMeans, + ttest_ind, ztest, zconfint) +#import statsmodels.stats.weightstats as smws + +class Holder(object): + pass + + +# Mixin for tests against other packages. +class CheckExternalMixin(object): + + @classmethod + def get_descriptives(cls, ddof=0): + cls.descriptive = DescrStatsW(cls.data, cls.weights, ddof) + + + @classmethod + def save_data(cls, fname="data.csv"): + # Utility to get data into another package. + df = pd.DataFrame(index=np.arange(len(cls.weights))) + df["weights"] = cls.weights + if cls.data.ndim == 1: + df["data1"] = cls.data + else: + for k in range(cls.data.shape[1]): + df["data%d" % (k + 1)] = cls.data[:, k] + df.to_csv(fname) + + + def test_mean(self): + mn = self.descriptive.mean + assert_allclose(mn, self.mean, rtol=1e-4) + + + def test_sum(self): + sm = self.descriptive.sum + assert_allclose(sm, self.sum, rtol=1e-4) + + + def test_var(self): + # Use vardef=wgt option in SAS to match + var = self.descriptive.var + assert_allclose(var, self.var, rtol=1e-4) + + + def test_std(self): + # Use vardef=wgt option in SAS to match + std = self.descriptive.std + assert_allclose(std, self.std, rtol=1e-4) + + + def test_sem(self): + # Use default vardef in SAS to match; only makes sense if + # weights sum to n. + if not hasattr(self, "sem"): + return + sem = self.descriptive.std_mean + assert_allclose(sem, self.sem, rtol=1e-4) + + + def test_quantiles(self): + quant = np.asarray(self.quantiles, dtype=np.float64) + for return_pandas in False, True: + qtl = self.descriptive.quantile(self.quantile_probs, return_pandas=return_pandas) + qtl = np.asarray(qtl, dtype=np.float64) + assert_allclose(qtl, quant, rtol=1e-4) + + +class TestSim1(CheckExternalMixin): + # 1d data + + # Taken from SAS + mean = 0.401499 + sum = 12.9553441 + var = 1.08022 + std = 1.03933 + quantiles = np.r_[-1.81098, -0.84052, 0.32859, 0.77808, 2.93431] + + @classmethod + def setup_class(cls): + np.random.seed(9876789) + cls.data = np.random.normal(size=20) + cls.weights = np.random.uniform(0, 3, size=20) + cls.quantile_probs = np.r_[0, 0.1, 0.5, 0.75, 1] + cls.get_descriptives() + + +class TestSim1t(CheckExternalMixin): + # 1d data with ties + + # Taken from SAS + mean = 5.05103296 + sum = 156.573464 + var = 9.9711934 + std = 3.15771965 + quantiles = np.r_[0, 1, 5, 8, 9] + + @classmethod + def setup_class(cls): + np.random.seed(9876789) + cls.data = np.random.randint(0, 10, size=20) + cls.data[15:20] = cls.data[0:5] + cls.data[18:20] = cls.data[15:17] + cls.weights = np.random.uniform(0, 3, size=20) + cls.quantile_probs = np.r_[0, 0.1, 0.5, 0.75, 1] + cls.get_descriptives() + + +class TestSim1n(CheckExternalMixin): + # 1d data with weights summing to n so we can check the standard + # error of the mean + + # Taken from SAS + mean = -0.3131058 + sum = -6.2621168 + var = 0.49722696 + std = 0.70514322 + sem = 0.15767482 + quantiles = np.r_[-1.61593, -1.45576, -0.24356, 0.16770, 1.18791] + + @classmethod + def setup_class(cls): + np.random.seed(4342) + cls.data = np.random.normal(size=20) + cls.weights = np.random.uniform(0, 3, size=20) + cls.weights *= 20 / cls.weights.sum() + cls.quantile_probs = np.r_[0, 0.1, 0.5, 0.75, 1] + cls.get_descriptives(1) + + +class TestSim2(CheckExternalMixin): + # 2d data + + # Taken from SAS + mean = [-0.2170406, -0.2387543] + sum = [-6.8383999, -7.5225444] + var = [1.77426344, 0.61933542] + std = [1.3320148, 0.78697867] + quantiles = np.column_stack( + (np.r_[-2.55277, -1.40479, -0.61040, 0.52740, 2.66246], + np.r_[-1.49263, -1.15403, -0.16231, 0.16464, 1.83062])) + + @classmethod + def setup_class(cls): + np.random.seed(2249) + cls.data = np.random.normal(size=(20, 2)) + cls.weights = np.random.uniform(0, 3, size=20) + cls.quantile_probs = np.r_[0, 0.1, 0.5, 0.75, 1] + cls.get_descriptives() + + +class TestWeightstats(object): + + def __init__(self): + np.random.seed(9876789) + n1, n2 = 20,20 + m1, m2 = 1, 1.2 + x1 = m1 + np.random.randn(n1) + x2 = m2 + np.random.randn(n2) + x1_2d = m1 + np.random.randn(n1, 3) + x2_2d = m2 + np.random.randn(n2, 3) + w1_ = 2. * np.ones(n1) + w2_ = 2. * np.ones(n2) + w1 = np.random.randint(1,4, n1) + w2 = np.random.randint(1,4, n2) + self.x1, self.x2 = x1, x2 + self.w1, self.w2 = w1, w2 + self.x1_2d, self.x2_2d = x1_2d, x2_2d + + def test_weightstats_1(self): + x1, x2 = self.x1, self.x2 + w1, w2 = self.w1, self.w2 + w1_ = 2. * np.ones(len(x1)) + w2_ = 2. * np.ones(len(x2)) + + d1 = DescrStatsW(x1) +# print ttest_ind(x1, x2) +# print ttest_ind(x1, x2, usevar='unequal') +# #print ttest_ind(x1, x2, usevar='unequal') +# print stats.ttest_ind(x1, x2) +# print ttest_ind(x1, x2, usevar='unequal', alternative='larger') +# print ttest_ind(x1, x2, usevar='unequal', alternative='smaller') +# print ttest_ind(x1, x2, usevar='unequal', weights=(w1_, w2_)) +# print stats.ttest_ind(np.r_[x1, x1], np.r_[x2,x2]) + assert_almost_equal(ttest_ind(x1, x2, weights=(w1_, w2_))[:2], + stats.ttest_ind(np.r_[x1, x1], np.r_[x2,x2])) + + def test_weightstats_2(self): + x1, x2 = self.x1, self.x2 + w1, w2 = self.w1, self.w2 + + d1 = DescrStatsW(x1) + d1w = DescrStatsW(x1, weights=w1) + d2w = DescrStatsW(x2, weights=w2) + x1r = d1w.asrepeats() + x2r = d2w.asrepeats() +# print 'random weights' +# print ttest_ind(x1, x2, weights=(w1, w2)) +# print stats.ttest_ind(x1r, x2r) + assert_almost_equal(ttest_ind(x1, x2, weights=(w1, w2))[:2], + stats.ttest_ind(x1r, x2r), 14) + #not the same as new version with random weights/replication +# assert x1r.shape[0] == d1w.sum_weights +# assert x2r.shape[0] == d2w.sum_weights + + assert_almost_equal(x2r.mean(0), d2w.mean, 14) + assert_almost_equal(x2r.var(), d2w.var, 14) + assert_almost_equal(x2r.std(), d2w.std, 14) + #note: the following is for 1d + assert_almost_equal(np.cov(x2r, bias=1), d2w.cov, 14) + #assert_almost_equal(np.corrcoef(np.x2r), d2w.corrcoef, 19) + #TODO: exception in corrcoef (scalar case) + + + #one-sample tests +# print d1.ttest_mean(3) +# print stats.ttest_1samp(x1, 3) +# print d1w.ttest_mean(3) +# print stats.ttest_1samp(x1r, 3) + assert_almost_equal(d1.ttest_mean(3)[:2], stats.ttest_1samp(x1, 3), 11) + assert_almost_equal(d1w.ttest_mean(3)[:2], stats.ttest_1samp(x1r, 3), 11) + + def test_weightstats_3(self): + x1_2d, x2_2d = self.x1_2d, self.x2_2d + w1, w2 = self.w1, self.w2 + + d1w_2d = DescrStatsW(x1_2d, weights=w1) + d2w_2d = DescrStatsW(x2_2d, weights=w2) + x1r_2d = d1w_2d.asrepeats() + x2r_2d = d2w_2d.asrepeats() + + assert_almost_equal(x2r_2d.mean(0), d2w_2d.mean, 14) + assert_almost_equal(x2r_2d.var(0), d2w_2d.var, 14) + assert_almost_equal(x2r_2d.std(0), d2w_2d.std, 14) + assert_almost_equal(np.cov(x2r_2d.T, bias=1), d2w_2d.cov, 14) + assert_almost_equal(np.corrcoef(x2r_2d.T), d2w_2d.corrcoef, 14) + +# print d1w_2d.ttest_mean(3) +# #scipy.stats.ttest is also vectorized +# print stats.ttest_1samp(x1r_2d, 3) + t,p,d = d1w_2d.ttest_mean(3) + assert_almost_equal([t, p], stats.ttest_1samp(x1r_2d, 3), 11) + #print [stats.ttest_1samp(xi, 3) for xi in x1r_2d.T] + cm = CompareMeans(d1w_2d, d2w_2d) + ressm = cm.ttest_ind() + resss = stats.ttest_ind(x1r_2d, x2r_2d) + assert_almost_equal(ressm[:2], resss, 14) + +## #doesn't work for 2d, levene doesn't use weights +## cm = CompareMeans(d1w_2d, d2w_2d) +## ressm = cm.test_equal_var() +## resss = stats.levene(x1r_2d, x2r_2d) +## assert_almost_equal(ressm[:2], resss, 14) + + def test_weightstats_ddof_tests(self): + # explicit test that ttest and confint are independent of ddof + # one sample case + x1_2d = self.x1_2d + w1 = self.w1 + + d1w_d0 = DescrStatsW(x1_2d, weights=w1, ddof=0) + d1w_d1 = DescrStatsW(x1_2d, weights=w1, ddof=1) + d1w_d2 = DescrStatsW(x1_2d, weights=w1, ddof=2) + + #check confint independent of user ddof + res0 = d1w_d0.ttest_mean() + res1 = d1w_d1.ttest_mean() + res2 = d1w_d2.ttest_mean() + # concatenate into one array with np.r_ + assert_almost_equal(np.r_[res1], np.r_[res0], 14) + assert_almost_equal(np.r_[res2], np.r_[res0], 14) + + res0 = d1w_d0.ttest_mean(0.5) + res1 = d1w_d1.ttest_mean(0.5) + res2 = d1w_d2.ttest_mean(0.5) + assert_almost_equal(np.r_[res1], np.r_[res0], 14) + assert_almost_equal(np.r_[res2], np.r_[res0], 14) + + #check confint independent of user ddof + res0 = d1w_d0.tconfint_mean() + res1 = d1w_d1.tconfint_mean() + res2 = d1w_d2.tconfint_mean() + assert_almost_equal(res1, res0, 14) + assert_almost_equal(res2, res0, 14) + + def test_comparemeans_convenient_interface(self): + x1_2d, x2_2d = self.x1_2d, self.x2_2d + d1 = DescrStatsW(x1_2d) + d2 = DescrStatsW(x2_2d) + cm1 = CompareMeans(d1, d2) + + #smoke test for summary + from statsmodels.iolib.table import SimpleTable + for use_t in [True, False]: + for usevar in ['pooled', 'unequal']: + smry = cm1.summary(use_t=use_t, usevar=usevar) + assert_(isinstance(smry, SimpleTable)) + + #test for from_data method + cm2 = CompareMeans.from_data(x1_2d, x2_2d) + assert_(str(cm1.summary()) == str(cm2.summary())) + +class CheckWeightstats1dMixin(object): + + def test_basic(self): + x1r = self.x1r + d1w = self.d1w + + assert_almost_equal(x1r.mean(0), d1w.mean, 14) + assert_almost_equal(x1r.var(0, ddof=d1w.ddof), d1w.var, 14) + assert_almost_equal(x1r.std(0, ddof=d1w.ddof), d1w.std, 14) + var1 = d1w.var_ddof(ddof=1) + assert_almost_equal(x1r.var(0, ddof=1), var1, 14) + std1 = d1w.std_ddof(ddof=1) + assert_almost_equal(x1r.std(0, ddof=1), std1, 14) + + + assert_almost_equal(np.cov(x1r.T, bias=1-d1w.ddof), d1w.cov, 14) + + # + #assert_almost_equal(np.corrcoef(x1r.T), d1w.corrcoef, 14) + + def test_ttest(self): + x1r = self.x1r + d1w = self.d1w + assert_almost_equal(d1w.ttest_mean(3)[:2], + stats.ttest_1samp(x1r, 3), 11) + +# def +# assert_almost_equal(ttest_ind(x1, x2, weights=(w1, w2))[:2], +# stats.ttest_ind(x1r, x2r), 14) + + def test_ttest_2sample(self): + x1, x2 = self.x1, self.x2 + x1r, x2r = self.x1r, self.x2r + w1, w2 = self.w1, self.w2 + + #Note: stats.ttest_ind handles 2d/nd arguments + res_sp = stats.ttest_ind(x1r, x2r) + assert_almost_equal(ttest_ind(x1, x2, weights=(w1, w2))[:2], + res_sp, 14) + + #check correct ttest independent of user ddof + cm = CompareMeans(DescrStatsW(x1, weights=w1, ddof=0), + DescrStatsW(x2, weights=w2, ddof=1)) + assert_almost_equal(cm.ttest_ind()[:2], res_sp, 14) + + cm = CompareMeans(DescrStatsW(x1, weights=w1, ddof=1), + DescrStatsW(x2, weights=w2, ddof=2)) + assert_almost_equal(cm.ttest_ind()[:2], res_sp, 14) + + + cm0 = CompareMeans(DescrStatsW(x1, weights=w1, ddof=0), + DescrStatsW(x2, weights=w2, ddof=0)) + cm1 = CompareMeans(DescrStatsW(x1, weights=w1, ddof=0), + DescrStatsW(x2, weights=w2, ddof=1)) + cm2 = CompareMeans(DescrStatsW(x1, weights=w1, ddof=1), + DescrStatsW(x2, weights=w2, ddof=2)) + + res0 = cm0.ttest_ind(usevar='unequal') + res1 = cm1.ttest_ind(usevar='unequal') + res2 = cm2.ttest_ind(usevar='unequal') + assert_almost_equal(res1, res0, 14) + assert_almost_equal(res2, res0, 14) + + #check confint independent of user ddof + res0 = cm0.tconfint_diff(usevar='pooled') + res1 = cm1.tconfint_diff(usevar='pooled') + res2 = cm2.tconfint_diff(usevar='pooled') + assert_almost_equal(res1, res0, 14) + assert_almost_equal(res2, res0, 14) + + res0 = cm0.tconfint_diff(usevar='unequal') + res1 = cm1.tconfint_diff(usevar='unequal') + res2 = cm2.tconfint_diff(usevar='unequal') + assert_almost_equal(res1, res0, 14) + assert_almost_equal(res2, res0, 14) + + + def test_confint_mean(self): + #compare confint_mean with ttest + d1w = self.d1w + alpha = 0.05 + low, upp = d1w.tconfint_mean() + t, p, d = d1w.ttest_mean(low) + assert_almost_equal(p, alpha * np.ones(p.shape), 8) + t, p, d = d1w.ttest_mean(upp) + assert_almost_equal(p, alpha * np.ones(p.shape), 8) + t, p, d = d1w.ttest_mean(np.vstack((low, upp))) + assert_almost_equal(p, alpha * np.ones(p.shape), 8) + +class CheckWeightstats2dMixin(CheckWeightstats1dMixin): + + def test_corr(self): + x1r = self.x1r + d1w = self.d1w + + assert_almost_equal(np.corrcoef(x1r.T), d1w.corrcoef, 14) + + +class TestWeightstats1d_ddof(CheckWeightstats1dMixin): + + @classmethod + def setup_class(self): + np.random.seed(9876789) + n1, n2 = 20,20 + m1, m2 = 1, 1.2 + x1 = m1 + np.random.randn(n1, 1) + x2 = m2 + np.random.randn(n2, 1) + w1 = np.random.randint(1,4, n1) + w2 = np.random.randint(1,4, n2) + + self.x1, self.x2 = x1, x2 + self.w1, self.w2 = w1, w2 + self.d1w = DescrStatsW(x1, weights=w1, ddof=1) + self.d2w = DescrStatsW(x2, weights=w2, ddof=1) + self.x1r = self.d1w.asrepeats() + self.x2r = self.d2w.asrepeats() + + +class TestWeightstats2d(CheckWeightstats2dMixin): + + @classmethod + def setup_class(self): + np.random.seed(9876789) + n1, n2 = 20,20 + m1, m2 = 1, 1.2 + x1 = m1 + np.random.randn(n1, 3) + x2 = m2 + np.random.randn(n2, 3) + w1_ = 2. * np.ones(n1) + w2_ = 2. * np.ones(n2) + w1 = np.random.randint(1,4, n1) + w2 = np.random.randint(1,4, n2) + self.x1, self.x2 = x1, x2 + self.w1, self.w2 = w1, w2 + + self.d1w = DescrStatsW(x1, weights=w1) + self.d2w = DescrStatsW(x2, weights=w2) + self.x1r = self.d1w.asrepeats() + self.x2r = self.d2w.asrepeats() + +class TestWeightstats2d_ddof(CheckWeightstats2dMixin): + + @classmethod + def setup_class(self): + np.random.seed(9876789) + n1, n2 = 20,20 + m1, m2 = 1, 1.2 + x1 = m1 + np.random.randn(n1, 3) + x2 = m2 + np.random.randn(n2, 3) + w1 = np.random.randint(1,4, n1) + w2 = np.random.randint(1,4, n2) + + self.x1, self.x2 = x1, x2 + self.w1, self.w2 = w1, w2 + self.d1w = DescrStatsW(x1, weights=w1, ddof=1) + self.d2w = DescrStatsW(x2, weights=w2, ddof=1) + self.x1r = self.d1w.asrepeats() + self.x2r = self.d2w.asrepeats() + +class TestWeightstats2d_nobs(CheckWeightstats2dMixin): + + @classmethod + def setup_class(self): + np.random.seed(9876789) + n1, n2 = 20,30 + m1, m2 = 1, 1.2 + x1 = m1 + np.random.randn(n1, 3) + x2 = m2 + np.random.randn(n2, 3) + w1 = np.random.randint(1,4, n1) + w2 = np.random.randint(1,4, n2) + + self.x1, self.x2 = x1, x2 + self.w1, self.w2 = w1, w2 + self.d1w = DescrStatsW(x1, weights=w1, ddof=0) + self.d2w = DescrStatsW(x2, weights=w2, ddof=1) + self.x1r = self.d1w.asrepeats() + self.x2r = self.d2w.asrepeats() + +def test_ttest_ind_with_uneq_var(): + + #from scipy + # check vs. R + a = (1, 2, 3) + b = (1.1, 2.9, 4.2) + pr = 0.53619490753126731 + tr = -0.68649512735572582 + t, p, df = ttest_ind(a, b, usevar='unequal') + assert_almost_equal([t,p], [tr, pr], 13) + + a = (1, 2, 3, 4) + pr = 0.84354139131608286 + tr = -0.2108663315950719 + t, p, df = ttest_ind(a, b, usevar='unequal') + assert_almost_equal([t,p], [tr, pr], 13) + +def test_ztest_ztost(): + # compare weightstats with separately tested proportion ztest ztost + import statsmodels.stats.proportion as smprop + + x1 = [0, 1] + w1 = [5, 15] + + res2 = smprop.proportions_ztest(15, 20., value=0.5) + d1 = DescrStatsW(x1, w1) + res1 = d1.ztest_mean(0.5) + assert_allclose(res1, res2, rtol=0.03, atol=0.003) + + d2 = DescrStatsW(x1, np.array(w1)*21./20) + res1 = d2.ztest_mean(0.5) + assert_almost_equal(res1, res2, decimal=12) + + res1 = d2.ztost_mean(0.4, 0.6) + res2 = smprop.proportions_ztost(15, 20., 0.4, 0.6) + assert_almost_equal(res1[0], res2[0], decimal=12) + + x2 = [0, 1] + w2 = [10, 10] + #d2 = DescrStatsW(x1, np.array(w1)*21./20) + d2 = DescrStatsW(x2, w2) + res1 = ztest(d1.asrepeats(), d2.asrepeats()) + res2 = smprop.proportions_chisquare(np.asarray([15, 10]), + np.asarray([20., 20])) + #TODO: check this is this difference expected?, see test_proportion + assert_allclose(res1[1], res2[1], rtol=0.03) + + res1a = CompareMeans(d1, d2).ztest_ind() + assert_allclose(res1a[1], res2[1], rtol=0.03) + assert_almost_equal(res1a, res1, decimal=12) + + +###### test for ztest and z confidence interval against R BSDA z.test +# Note: I needed to calculate the pooled standard deviation for R +# std = np.std(np.concatenate((x-x.mean(),y-y.mean())), ddof=2) + +#> zt = z.test(x, sigma.x=0.57676142668828667, y, sigma.y=0.57676142668828667) +#> cat_items(zt, "ztest.") +ztest_ = Holder() +ztest_.statistic = 6.55109865675183 +ztest_.p_value = 5.711530850508982e-11 +ztest_.conf_int = np.array([1.230415246535603, 2.280948389828034]) +ztest_.estimate = np.array([7.01818181818182, 5.2625]) +ztest_.null_value = 0 +ztest_.alternative = 'two.sided' +ztest_.method = 'Two-sample z-Test' +ztest_.data_name = 'x and y' +#> zt = z.test(x, sigma.x=0.57676142668828667, y, sigma.y=0.57676142668828667, alternative="less") +#> cat_items(zt, "ztest_smaller.") +ztest_smaller = Holder() +ztest_smaller.statistic = 6.55109865675183 +ztest_smaller.p_value = 0.999999999971442 +ztest_smaller.conf_int = np.array([np.nan, 2.196499421109045]) +ztest_smaller.estimate = np.array([7.01818181818182, 5.2625]) +ztest_smaller.null_value = 0 +ztest_smaller.alternative = 'less' +ztest_smaller.method = 'Two-sample z-Test' +ztest_smaller.data_name = 'x and y' +#> zt = z.test(x, sigma.x=0.57676142668828667, y, sigma.y=0.57676142668828667, alternative="greater") +#> cat_items(zt, "ztest_larger.") +ztest_larger = Holder() +ztest_larger.statistic = 6.55109865675183 +ztest_larger.p_value = 2.855760072861813e-11 +ztest_larger.conf_int = np.array([1.314864215254592, np.nan]) +ztest_larger.estimate = np.array([7.01818181818182, 5.2625 ]) +ztest_larger.null_value = 0 +ztest_larger.alternative = 'greater' +ztest_larger.method = 'Two-sample z-Test' +ztest_larger.data_name = 'x and y' + + +#> zt = z.test(x, sigma.x=0.57676142668828667, y, sigma.y=0.57676142668828667, mu=1, alternative="two.sided") +#> cat_items(zt, "ztest_mu.") +ztest_mu = Holder() +ztest_mu.statistic = 2.81972854805176 +ztest_mu.p_value = 0.00480642898427981 +ztest_mu.conf_int = np.array([1.230415246535603, 2.280948389828034]) +ztest_mu.estimate = np.array([7.01818181818182, 5.2625]) +ztest_mu.null_value = 1 +ztest_mu.alternative = 'two.sided' +ztest_mu.method = 'Two-sample z-Test' +ztest_mu.data_name = 'x and y' + +#> zt = z.test(x, sigma.x=0.57676142668828667, y, sigma.y=0.57676142668828667, mu=1, alternative="greater") +#> cat_items(zt, "ztest_larger_mu.") +ztest_larger_mu = Holder() +ztest_larger_mu.statistic = 2.81972854805176 +ztest_larger_mu.p_value = 0.002403214492139871 +ztest_larger_mu.conf_int = np.array([1.314864215254592, np.nan]) +ztest_larger_mu.estimate = np.array([7.01818181818182, 5.2625]) +ztest_larger_mu.null_value = 1 +ztest_larger_mu.alternative = 'greater' +ztest_larger_mu.method = 'Two-sample z-Test' +ztest_larger_mu.data_name = 'x and y' + +#> zt = z.test(x, sigma.x=0.57676142668828667, y, sigma.y=0.57676142668828667, mu=2, alternative="less") +#> cat_items(zt, "ztest_smaller_mu.") +ztest_smaller_mu = Holder() +ztest_smaller_mu.statistic = -0.911641560648313 +ztest_smaller_mu.p_value = 0.1809787183191324 +ztest_smaller_mu.conf_int = np.array([np.nan, 2.196499421109045]) +ztest_smaller_mu.estimate = np.array([7.01818181818182, 5.2625]) +ztest_smaller_mu.null_value = 2 +ztest_smaller_mu.alternative = 'less' +ztest_smaller_mu.method = 'Two-sample z-Test' +ztest_smaller_mu.data_name = 'x and y' + +#> zt = z.test(x, sigma.x=0.46436662631627995, mu=6.4, alternative="two.sided") +#> cat_items(zt, "ztest_mu_1s.") +ztest_mu_1s = Holder() +ztest_mu_1s.statistic = 4.415212090914452 +ztest_mu_1s.p_value = 1.009110038015147e-05 +ztest_mu_1s.conf_int = np.array([6.74376372125119, 7.29259991511245]) +ztest_mu_1s.estimate = 7.01818181818182 +ztest_mu_1s.null_value = 6.4 +ztest_mu_1s.alternative = 'two.sided' +ztest_mu_1s.method = 'One-sample z-Test' +ztest_mu_1s.data_name = 'x' + +#> zt = z.test(x, sigma.x=0.46436662631627995, mu=7.4, alternative="less") +#> cat_items(zt, "ztest_smaller_mu_1s.") +ztest_smaller_mu_1s = Holder() +ztest_smaller_mu_1s.statistic = -2.727042762035397 +ztest_smaller_mu_1s.p_value = 0.00319523783881176 +ztest_smaller_mu_1s.conf_int = np.array([np.nan, 7.248480744895716]) +ztest_smaller_mu_1s.estimate = 7.01818181818182 +ztest_smaller_mu_1s.null_value = 7.4 +ztest_smaller_mu_1s.alternative = 'less' +ztest_smaller_mu_1s.method = 'One-sample z-Test' +ztest_smaller_mu_1s.data_name = 'x' + +#> zt = z.test(x, sigma.x=0.46436662631627995, mu=6.4, alternative="greater") +#> cat_items(zt, "ztest_greater_mu_1s.") +ztest_larger_mu_1s = Holder() +ztest_larger_mu_1s.statistic = 4.415212090914452 +ztest_larger_mu_1s.p_value = 5.045550190097003e-06 +ztest_larger_mu_1s.conf_int = np.array([6.78788289146792, np.nan]) +ztest_larger_mu_1s.estimate = 7.01818181818182 +ztest_larger_mu_1s.null_value = 6.4 +ztest_larger_mu_1s.alternative = 'greater' +ztest_larger_mu_1s.method = 'One-sample z-Test' +ztest_larger_mu_1s.data_name = 'x' + + +alternatives = {'less' : 'smaller', + 'greater' : 'larger', + 'two.sided' : 'two-sided'} + +class TestZTest(object): + # all examples use the same data + # no weights used in tests + + @classmethod + def setup_class(cls): + cls.x1 = np.array([7.8, 6.6, 6.5, 7.4, 7.3, 7., 6.4, 7.1, 6.7, 7.6, 6.8]) + cls.x2 = np.array([4.5, 5.4, 6.1, 6.1, 5.4, 5., 4.1, 5.5]) + cls.d1 = DescrStatsW(cls.x1) + cls.d2 = DescrStatsW(cls.x2) + cls.cm = CompareMeans(cls.d1, cls.d2) + + def test(self): + x1, x2 = self.x1, self.x2 + cm = self.cm + + # tc : test cases + for tc in [ztest_, ztest_smaller, ztest_larger, + ztest_mu, ztest_smaller_mu, ztest_larger_mu]: + + zstat, pval = ztest(x1, x2, value=tc.null_value, + alternative=alternatives[tc.alternative]) + assert_allclose(zstat, tc.statistic, rtol=1e-10) + assert_allclose(pval, tc.p_value, rtol=1e-10, atol=1e-16) + + zstat, pval = cm.ztest_ind(value=tc.null_value, + alternative=alternatives[tc.alternative]) + assert_allclose(zstat, tc.statistic, rtol=1e-10) + assert_allclose(pval, tc.p_value, rtol=1e-10, atol=1e-16) + + #overwrite nan in R's confint + tc_conf_int = tc.conf_int.copy() + if np.isnan(tc_conf_int[0]): + tc_conf_int[0] = - np.inf + if np.isnan(tc_conf_int[1]): + tc_conf_int[1] = np.inf + + # Note: value is shifting our confidence interval in zconfint + ci = zconfint(x1, x2, value=0, + alternative=alternatives[tc.alternative]) + assert_allclose(ci, tc_conf_int, rtol=1e-10) + + ci = cm.zconfint_diff(alternative=alternatives[tc.alternative]) + assert_allclose(ci, tc_conf_int, rtol=1e-10) + + ci = zconfint(x1, x2, value=tc.null_value, + alternative=alternatives[tc.alternative]) + assert_allclose(ci, tc_conf_int - tc.null_value, rtol=1e-10) + + # 1 sample test copy-paste + d1 = self.d1 + for tc in [ztest_mu_1s, ztest_smaller_mu_1s, ztest_larger_mu_1s]: + zstat, pval = ztest(x1, value=tc.null_value, + alternative=alternatives[tc.alternative]) + assert_allclose(zstat, tc.statistic, rtol=1e-10) + assert_allclose(pval, tc.p_value, rtol=1e-10, atol=1e-16) + + zstat, pval = d1.ztest_mean(value=tc.null_value, + alternative=alternatives[tc.alternative]) + assert_allclose(zstat, tc.statistic, rtol=1e-10) + assert_allclose(pval, tc.p_value, rtol=1e-10, atol=1e-16) + + #overwrite nan in R's confint + tc_conf_int = tc.conf_int.copy() + if np.isnan(tc_conf_int[0]): + tc_conf_int[0] = - np.inf + if np.isnan(tc_conf_int[1]): + tc_conf_int[1] = np.inf + + # Note: value is shifting our confidence interval in zconfint + ci = zconfint(x1, value=0, + alternative=alternatives[tc.alternative]) + assert_allclose(ci, tc_conf_int, rtol=1e-10) + + ci = d1.zconfint_mean(alternative=alternatives[tc.alternative]) + assert_allclose(ci, tc_conf_int, rtol=1e-10) diff --git a/statsmodels/stats/weightstats.py b/statsmodels/stats/weightstats.py new file mode 100644 index 0000000..280676d --- /dev/null +++ b/statsmodels/stats/weightstats.py @@ -0,0 +1,1465 @@ +'''Ttests and descriptive statistics with weights + + +Created on 2010-09-18 + +Author: josef-pktd +License: BSD (3-clause) + + +References +---------- +SPSS manual +SAS manual + +This follows in large parts the SPSS manual, which is largely the same as +the SAS manual with different, simpler notation. + +Freq, Weight in SAS seems redundant since they always show up as product, SPSS +has only weights. + +Notes +----- + +This has potential problems with ddof, I started to follow numpy with ddof=0 +by default and users can change it, but this might still mess up the t-tests, +since the estimates for the standard deviation will be based on the ddof that +the user chooses. +- fixed ddof for the meandiff ttest, now matches scipy.stats.ttest_ind + +Note: scipy has now a separate, pooled variance option in ttest, but I haven't +compared yet. + +''' + + +import numpy as np +from scipy import stats + +from statsmodels.tools.decorators import OneTimeProperty + + +class DescrStatsW(object): + '''descriptive statistics and tests with weights for case weights + + Assumes that the data is 1d or 2d with (nobs, nvars) observations in rows, + variables in columns, and that the same weight applies to each column. + + If degrees of freedom correction is used, then weights should add up to the + number of observations. ttest also assumes that the sum of weights + corresponds to the sample size. + + This is essentially the same as replicating each observations by its + weight, if the weights are integers, often called case or frequency weights. + + Parameters + ---------- + data : array_like, 1-D or 2-D + dataset + weights : None or 1-D ndarray + weights for each observation, with same length as zero axis of data + ddof : int + default ddof=0, degrees of freedom correction used for second moments, + var, std, cov, corrcoef. + However, statistical tests are independent of `ddof`, based on the + standard formulas. + + Examples + -------- + + >>> import numpy as np + >>> np.random.seed(0) + >>> x1_2d = 1.0 + np.random.randn(20, 3) + >>> w1 = np.random.randint(1, 4, 20) + >>> d1 = DescrStatsW(x1_2d, weights=w1) + >>> d1.mean + array([ 1.42739844, 1.23174284, 1.083753 ]) + >>> d1.var + array([ 0.94855633, 0.52074626, 1.12309325]) + >>> d1.std_mean + array([ 0.14682676, 0.10878944, 0.15976497]) + + >>> tstat, pval, df = d1.ttest_mean(0) + >>> tstat; pval; df + array([ 9.72165021, 11.32226471, 6.78342055]) + array([ 1.58414212e-12, 1.26536887e-14, 2.37623126e-08]) + 44.0 + + >>> tstat, pval, df = d1.ttest_mean([0, 1, 1]) + >>> tstat; pval; df + array([ 9.72165021, 2.13019609, 0.52422632]) + array([ 1.58414212e-12, 3.87842808e-02, 6.02752170e-01]) + 44.0 + + #if weiqhts are integers, then asrepeats can be used + + >>> x1r = d1.asrepeats() + >>> x1r.shape + ... + >>> stats.ttest_1samp(x1r, [0, 1, 1]) + ... + + ''' + def __init__(self, data, weights=None, ddof=0): + + self.data = np.asarray(data) + if weights is None: + self.weights = np.ones(self.data.shape[0]) + else: + #why squeeze? + self.weights = np.asarray(weights).squeeze().astype(float) + self.ddof = ddof + + + @OneTimeProperty + def sum_weights(self): + return self.weights.sum(0) + + @OneTimeProperty + def nobs(self): + '''alias for number of observations/cases, equal to sum of weights + ''' + return self.sum_weights + + @OneTimeProperty + def sum(self): + '''weighted sum of data''' + return np.dot(self.data.T, self.weights) + + @OneTimeProperty + def mean(self): + '''weighted mean of data''' + return self.sum / self.sum_weights + + @OneTimeProperty + def demeaned(self): + '''data with weighted mean subtracted''' + return self.data - self.mean + + @OneTimeProperty + def sumsquares(self): + '''weighted sum of squares of demeaned data''' + return np.dot((self.demeaned**2).T, self.weights) + + #need memoize instead of cache decorator + def var_ddof(self, ddof=0): + '''variance of data given ddof + + Parameters + ---------- + ddof : int, float + degrees of freedom correction, independent of attribute ddof + + Returns + ------- + var : float, ndarray + variance with denominator ``sum_weights - ddof`` + ''' + return self.sumsquares / (self.sum_weights - ddof) + + def std_ddof(self, ddof=0): + '''standard deviation of data with given ddof + + Parameters + ---------- + ddof : int, float + degrees of freedom correction, independent of attribute ddof + + Returns + ------- + std : float, ndarray + standard deviation with denominator ``sum_weights - ddof`` + ''' + return np.sqrt(self.var_ddof(ddof=ddof)) + + @OneTimeProperty + def var(self): + '''variance with default degrees of freedom correction + ''' + return self.sumsquares / (self.sum_weights - self.ddof) + + @OneTimeProperty + def _var(self): + '''variance without degrees of freedom correction + + used for statistical tests with controlled ddof + ''' + return self.sumsquares / self.sum_weights + + @OneTimeProperty + def std(self): + '''standard deviation with default degrees of freedom correction + ''' + return np.sqrt(self.var) + + @OneTimeProperty + def cov(self): + '''weighted covariance of data if data is 2 dimensional + + assumes variables in columns and observations in rows + uses default ddof + ''' + cov_ = np.dot(self.weights * self.demeaned.T, self.demeaned) + cov_ /= (self.sum_weights - self.ddof) + return cov_ + + @OneTimeProperty + def corrcoef(self): + '''weighted correlation with default ddof + + assumes variables in columns and observations in rows + ''' + return self.cov / self.std / self.std[:,None] + + @OneTimeProperty + def std_mean(self): + '''standard deviation of weighted mean + ''' + std = self.std + if self.ddof != 0: + #ddof correction, (need copy of std) + std = std * np.sqrt((self.sum_weights - self.ddof) + / self.sum_weights) + + return std / np.sqrt(self.sum_weights - 1) + + + def quantile(self, probs, return_pandas=True): + """ + Compute quantiles for a weighted sample. + + Parameters + ---------- + probs : array-like + A vector of probability points at which to calculate the + quantiles. Each element of `probs` should fall in [0, 1]. + return_pandas : bool + If True, return value is a Pandas DataFrame or Series. + Otherwise returns a ndarray. + + Returns + ------- + quantiles : Series, DataFrame, or ndarray + If `return_pandas` = True, returns one of the following: + * data are 1d, `return_pandas` = True: a Series indexed by + the probability points. + * data are 2d, `return_pandas` = True: a DataFrame with + the probability points as row index and the variables + as column index. + + If `return_pandas` = False, returns an ndarray containing the + same values as the Series/DataFrame. + + Notes + ----- + To compute the quantiles, first, the weights are summed over + exact ties yielding distinct data values y_1 < y_2 < ..., and + corresponding weights w_1, w_2, .... Let s_j denote the sum + of the first j weights, and let W denote the sum of all the + weights. For a probability point p, if pW falls strictly + between s_j and s_{j+1} then the estimated quantile is + y_{j+1}. If pW = s_j then the estimated quantile is (y_j + + y_{j+1})/2. If pW < p_1 then the estimated quantile is y_1. + + References + ---------- + SAS documentation for weighted quantiles: + + https://support.sas.com/documentation/cdl/en/procstat/63104/HTML/default/viewer.htm#procstat_univariate_sect028.htm + """ + + import pandas as pd + + probs = np.asarray(probs) + probs = np.atleast_1d(probs) + + if self.data.ndim == 1: + rslt = self._quantile(self.data, probs) + if return_pandas: + rslt = pd.Series(rslt, index=probs) + else: + rslt = [] + for vec in self.data.T: + rslt.append(self._quantile(vec, probs)) + rslt = np.column_stack(rslt) + if return_pandas: + columns = ["col%d" % (j+1) for j in range(rslt.shape[1])] + rslt = pd.DataFrame(data=rslt, columns=columns, index=probs) + + if return_pandas: + rslt.index.name = "p" + + return rslt + + + def _quantile(self, vec, probs): + # Helper function to calculate weighted quantiles for one column. + # Follows definition from SAS documentation. + # Returns ndarray + + import pandas as pd + + # Aggregate over ties + df = pd.DataFrame(index=np.arange(len(self.weights))) + df["weights"] = self.weights + df["vec"] = vec + dfg = df.groupby("vec").agg(np.sum) + weights = dfg.values[:, 0] + values = np.asarray(dfg.index) + + cweights = np.cumsum(weights) + totwt = cweights[-1] + targets = probs * totwt + ii = np.searchsorted(cweights, targets) + + rslt = values[ii] + + # Exact hits + jj = np.flatnonzero(np.abs(targets - cweights[ii]) < 1e-10) + jj = jj[ii[jj] < len(cweights) - 1] + rslt[jj] = (values[ii[jj]] + values[ii[jj]+1]) / 2 + + return rslt + + + def tconfint_mean(self, alpha=0.05, alternative='two-sided'): + '''two-sided confidence interval for weighted mean of data + + If the data is 2d, then these are separate confidence intervals + for each column. + + Parameters + ---------- + alpha : float + significance level for the confidence interval, coverage is + ``1-alpha`` + alternative : string + This specifies the alternative hypothesis for the test that + corresponds to the confidence interval. + The alternative hypothesis, H1, has to be one of the following + + 'two-sided': H1: mean not equal to value (default) + 'larger' : H1: mean larger than value + 'smaller' : H1: mean smaller than value + + Returns + ------- + lower, upper : floats or ndarrays + lower and upper bound of confidence interval + + Notes + ----- + In a previous version, statsmodels 0.4, alpha was the confidence + level, e.g. 0.95 + ''' + #TODO: add asymmetric + dof = self.sum_weights - 1 + ci = _tconfint_generic(self.mean, self.std_mean, dof, alpha, + alternative) + return ci + + + def zconfint_mean(self, alpha=0.05, alternative='two-sided'): + '''two-sided confidence interval for weighted mean of data + + Confidence interval is based on normal distribution. + If the data is 2d, then these are separate confidence intervals + for each column. + + Parameters + ---------- + alpha : float + significance level for the confidence interval, coverage is + ``1-alpha`` + alternative : string + This specifies the alternative hypothesis for the test that + corresponds to the confidence interval. + The alternative hypothesis, H1, has to be one of the following + + 'two-sided': H1: mean not equal to value (default) + 'larger' : H1: mean larger than value + 'smaller' : H1: mean smaller than value + + Returns + ------- + lower, upper : floats or ndarrays + lower and upper bound of confidence interval + + Notes + ----- + In a previous version, statsmodels 0.4, alpha was the confidence + level, e.g. 0.95 + ''' + + return _zconfint_generic(self.mean, self.std_mean, alpha, alternative) + + + def ttest_mean(self, value=0, alternative='two-sided'): + '''ttest of Null hypothesis that mean is equal to value. + + The alternative hypothesis H1 is defined by the following + 'two-sided': H1: mean not equal to value + 'larger' : H1: mean larger than value + 'smaller' : H1: mean smaller than value + + Parameters + ---------- + value : float or array + the hypothesized value for the mean + alternative : string + The alternative hypothesis, H1, has to be one of the following + + 'two-sided': H1: mean not equal to value (default) + 'larger' : H1: mean larger than value + 'smaller' : H1: mean smaller than value + + Returns + ------- + tstat : float + test statisic + pvalue : float + pvalue of the t-test + df : int or float + + ''' + #TODO: check direction with R, smaller=less, larger=greater + tstat = (self.mean - value) / self.std_mean + dof = self.sum_weights - 1 + #TODO: use outsourced + if alternative == 'two-sided': + pvalue = stats.t.sf(np.abs(tstat), dof)*2 + elif alternative == 'larger': + pvalue = stats.t.sf(tstat, dof) + elif alternative == 'smaller': + pvalue = stats.t.cdf(tstat, dof) + + return tstat, pvalue, dof + + def ttost_mean(self, low, upp): + '''test of (non-)equivalence of one sample + + TOST: two one-sided t tests + + null hypothesis: m < low or m > upp + alternative hypothesis: low < m < upp + + where m is the expected value of the sample (mean of the population). + + If the pvalue is smaller than a threshold, say 0.05, then we reject the + hypothesis that the expected value of the sample (mean of the + population) is outside of the interval given by thresholds low and upp. + + Parameters + ---------- + low, upp : float + equivalence interval low < mean < upp + + Returns + ------- + pvalue : float + pvalue of the non-equivalence test + t1, pv1, df1 : tuple + test statistic, pvalue and degrees of freedom for lower threshold + test + t2, pv2, df2 : tuple + test statistic, pvalue and degrees of freedom for upper threshold + test + + ''' + + t1, pv1, df1 = self.ttest_mean(low, alternative='larger') + t2, pv2, df2 = self.ttest_mean(upp, alternative='smaller') + return np.maximum(pv1, pv2), (t1, pv1, df1), (t2, pv2, df2) + + def ztest_mean(self, value=0, alternative='two-sided'): + '''z-test of Null hypothesis that mean is equal to value. + + The alternative hypothesis H1 is defined by the following + 'two-sided': H1: mean not equal to value + 'larger' : H1: mean larger than value + 'smaller' : H1: mean smaller than value + + Parameters + ---------- + value : float or array + the hypothesized value for the mean + alternative : string + The alternative hypothesis, H1, has to be one of the following + + 'two-sided': H1: mean not equal to value (default) + 'larger' : H1: mean larger than value + 'smaller' : H1: mean smaller than value + + Returns + ------- + tstat : float + test statisic + pvalue : float + pvalue of the t-test + + Notes + ----- + This uses the same degrees of freedom correction as the t-test in the + calculation of the standard error of the mean, i.e it uses + `(sum_weights - 1)` instead of `sum_weights` in the denominator. + See Examples below for the difference. + + Examples + -------- + + z-test on a proportion, with 20 observations, 15 of those are our event + + >>> import statsmodels.api as sm + >>> x1 = [0, 1] + >>> w1 = [5, 15] + >>> d1 = sm.stats.DescrStatsW(x1, w1) + >>> d1.ztest_mean(0.5) + (2.5166114784235836, 0.011848940928347452) + + This differs from the proportions_ztest because of the degrees of + freedom correction: + >>> sm.stats.proportions_ztest(15, 20.0, value=0.5) + (2.5819888974716112, 0.009823274507519247). + + We can replicate the results from ``proportions_ztest`` if we increase + the weights to have artificially one more observation: + + >>> sm.stats.DescrStatsW(x1, np.array(w1)*21./20).ztest_mean(0.5) + (2.5819888974716116, 0.0098232745075192366) + ''' + tstat = (self.mean - value) / self.std_mean + #TODO: use outsourced + if alternative == 'two-sided': + pvalue = stats.norm.sf(np.abs(tstat))*2 + elif alternative == 'larger': + pvalue = stats.norm.sf(tstat) + elif alternative == 'smaller': + pvalue = stats.norm.cdf(tstat) + + return tstat, pvalue + + def ztost_mean(self, low, upp): + '''test of (non-)equivalence of one sample, based on z-test + + TOST: two one-sided z-tests + + null hypothesis: m < low or m > upp + alternative hypothesis: low < m < upp + + where m is the expected value of the sample (mean of the population). + + If the pvalue is smaller than a threshold, say 0.05, then we reject the + hypothesis that the expected value of the sample (mean of the + population) is outside of the interval given by thresholds low and upp. + + Parameters + ---------- + low, upp : float + equivalence interval low < mean < upp + + Returns + ------- + pvalue : float + pvalue of the non-equivalence test + t1, pv1 : tuple + test statistic and p-value for lower threshold test + t2, pv2 : tuple + test statistic and p-value for upper threshold test + + ''' + + t1, pv1 = self.ztest_mean(low, alternative='larger') + t2, pv2 = self.ztest_mean(upp, alternative='smaller') + return np.maximum(pv1, pv2), (t1, pv1), (t2, pv2) + + def get_compare(self, other, weights=None): + '''return an instance of CompareMeans with self and other + + Parameters + ---------- + other : array_like or instance of DescrStatsW + If array_like then this creates an instance of DescrStatsW with + the given weights. + weights : None or array + weights are only used if other is not an instance of DescrStatsW + + Returns + ------- + cm : instance of CompareMeans + the instance has self attached as d1 and other as d2. + + See Also + -------- + CompareMeans + + ''' + if not isinstance(other, self.__class__): + d2 = DescrStatsW(other, weights) + else: + d2 = other + return CompareMeans(self, d2) + + def asrepeats(self): + '''get array that has repeats given by floor(weights) + + observations with weight=0 are dropped + + ''' + w_int = np.floor(self.weights).astype(int) + return np.repeat(self.data, w_int, axis=0) + + + +def _tstat_generic(value1, value2, std_diff, dof, alternative, diff=0): + '''generic ttest to save typing''' + + tstat = (value1 - value2 - diff) / std_diff + if alternative in ['two-sided', '2-sided', '2s']: + pvalue = stats.t.sf(np.abs(tstat), dof)*2 + elif alternative in ['larger', 'l']: + pvalue = stats.t.sf(tstat, dof) + elif alternative in ['smaller', 's']: + pvalue = stats.t.cdf(tstat, dof) + else: + raise ValueError('invalid alternative') + return tstat, pvalue + +def _tconfint_generic(mean, std_mean, dof, alpha, alternative): + '''generic t-confint to save typing''' + + if alternative in ['two-sided', '2-sided', '2s']: + tcrit = stats.t.ppf(1 - alpha / 2., dof) + lower = mean - tcrit * std_mean + upper = mean + tcrit * std_mean + elif alternative in ['larger', 'l']: + tcrit = stats.t.ppf(alpha, dof) + lower = mean + tcrit * std_mean + upper = np.inf + elif alternative in ['smaller', 's']: + tcrit = stats.t.ppf(1 - alpha, dof) + lower = -np.inf + upper = mean + tcrit * std_mean + else: + raise ValueError('invalid alternative') + + return lower, upper + + +def _zstat_generic(value1, value2, std_diff, alternative, diff=0): + '''generic (normal) z-test to save typing + + can be used as ztest based on summary statistics + + ''' + zstat = (value1 - value2 - diff) / std_diff + if alternative in ['two-sided', '2-sided', '2s']: + pvalue = stats.norm.sf(np.abs(zstat))*2 + elif alternative in ['larger', 'l']: + pvalue = stats.norm.sf(zstat) + elif alternative in ['smaller', 's']: + pvalue = stats.norm.cdf(zstat) + else: + raise ValueError('invalid alternative') + return zstat, pvalue + +def _zstat_generic2(value, std_diff, alternative): + '''generic (normal) z-test to save typing + + can be used as ztest based on summary statistics + ''' + zstat = value / std_diff + if alternative in ['two-sided', '2-sided', '2s']: + pvalue = stats.norm.sf(np.abs(zstat))*2 + elif alternative in ['larger', 'l']: + pvalue = stats.norm.sf(zstat) + elif alternative in ['smaller', 's']: + pvalue = stats.norm.cdf(zstat) + else: + raise ValueError('invalid alternative') + return zstat, pvalue + +def _zconfint_generic(mean, std_mean, alpha, alternative): + '''generic normal-confint to save typing''' + + if alternative in ['two-sided', '2-sided', '2s']: + zcrit = stats.norm.ppf(1 - alpha / 2.) + lower = mean - zcrit * std_mean + upper = mean + zcrit * std_mean + elif alternative in ['larger', 'l']: + zcrit = stats.norm.ppf(alpha) + lower = mean + zcrit * std_mean + upper = np.inf + elif alternative in ['smaller', 's']: + zcrit = stats.norm.ppf(1 - alpha) + lower = -np.inf + upper = mean + zcrit * std_mean + else: + raise ValueError('invalid alternative') + + return lower, upper + + +class CompareMeans(object): + '''class for two sample comparison + + The tests and the confidence interval work for multi-endpoint comparison: + If d1 and d2 have the same number of rows, then each column of the data + in d1 is compared with the corresponding column in d2. + + Parameters + ---------- + d1, d2 : instances of DescrStatsW + + Notes + ----- + The result for the statistical tests and the confidence interval are + independent of the user specified ddof. + + TODO: Extend to any number of groups or write a version that works in that + case, like in SAS and SPSS. + + ''' + + def __init__(self, d1, d2): + '''assume d1, d2 hold the relevant attributes + + ''' + self.d1 = d1 + self.d2 = d2 + #assume nobs is available +# if not hasattr(self.d1, 'nobs'): +# d1.nobs1 = d1.sum_weights.astype(float) #float just to make sure +# self.nobs2 = d2.sum_weights.astype(float) + + @classmethod + def from_data(cls, data1, data2, weights1=None, weights2=None, + ddof1=0, ddof2=0): + '''construct a CompareMeans object from data + + Parameters + ---------- + data1, data2 : array-like, 1-D or 2-D + compared datasets + weights1, weights2 : None or 1-D ndarray + weights for each observation of data1 and data2 respectively, + with same length as zero axis of corresponding dataset. + ddof1, ddof2 : int + default ddof1=0, ddof2=0, degrees of freedom for data1, + data2 respectively. + + Returns + ------- + A CompareMeans instance. + + ''' + return cls(DescrStatsW(data1, weights=weights1, ddof=ddof1), + DescrStatsW(data2, weights=weights2, ddof=ddof2)) + + def summary(self, use_t=True, alpha=0.05, usevar='pooled', value=0): + '''summarize the results of the hypothesis test + + Parameters + ---------- + use_t : bool, optional + if use_t is True, then t test results are returned + if use_t is False, then z test results are returned + alpha : float + significance level for the confidence interval, coverage is + ``1-alpha`` + usevar : string, 'pooled' or 'unequal' + If ``pooled``, then the standard deviation of the samples is + assumed to be the same. If ``unequal``, then the variance of + Welsh ttest will be used, and the degrees of freedom are those + of Satterthwaite if ``use_t`` is True. + value : float + difference between the means under the Null hypothesis. + + Returns + ------- + smry : SimpleTable + + ''' + + d1 = self.d1 + d2 = self.d2 + + confint_percents = 100 - alpha * 100 + + if use_t: + tstat, pvalue, _ = self.ttest_ind(usevar=usevar, value=value) + lower, upper = self.tconfint_diff(alpha=alpha, usevar=usevar) + else: + tstat, pvalue = self.ztest_ind(usevar=usevar, value=value) + lower, upper = self.zconfint_diff(alpha=alpha, usevar=usevar) + + if usevar == 'pooled': + std_err = self.std_meandiff_pooledvar + else: + std_err = self.std_meandiff_separatevar + + std_err = np.atleast_1d(std_err) + tstat = np.atleast_1d(tstat) + pvalue = np.atleast_1d(pvalue) + lower = np.atleast_1d(lower) + upper = np.atleast_1d(upper) + conf_int = np.column_stack((lower, upper)) + params = d1.mean - d2.mean - value + + title = 'Test for equality of means' + yname = 'y' # not used in params_frame + xname = ['subset #%d'%(ii + 1) for ii in range(tstat.shape[0])] + + from statsmodels.iolib.summary import summary_params + return summary_params((None, params, std_err, tstat, pvalue, conf_int), + alpha=alpha, use_t=use_t, yname=yname, xname=xname, + title=title) + + @OneTimeProperty + def std_meandiff_separatevar(self): + #this uses ``_var`` to use ddof=0 for formula + d1 = self.d1 + d2 = self.d2 + return np.sqrt(d1._var / (d1.nobs-1) + d2._var / (d2.nobs-1)) + + @OneTimeProperty + def std_meandiff_pooledvar(self): + '''variance assuming equal variance in both data sets + + ''' + #this uses ``_var`` to use ddof=0 for formula + + d1 = self.d1 + d2 = self.d2 + #could make var_pooled into attribute + var_pooled = ((d1.sumsquares + d2.sumsquares) / + #(d1.nobs - d1.ddof + d2.nobs - d2.ddof)) + (d1.nobs - 1 + d2.nobs - 1)) + return np.sqrt(var_pooled * (1. / d1.nobs + 1. /d2.nobs)) + + def dof_satt(self): + '''degrees of freedom of Satterthwaite for unequal variance + ''' + d1 = self.d1 + d2 = self.d2 + #this follows blindly the SPSS manual + #except I use ``_var`` which has ddof=0 + sem1 = d1._var / (d1.nobs-1) + sem2 = d2._var / (d2.nobs-1) + semsum = sem1 + sem2 + z1 = (sem1 / semsum)**2 / (d1.nobs - 1) + z2 = (sem2 / semsum)**2 / (d2.nobs - 1) + dof = 1. / (z1 + z2) + return dof + + def ttest_ind(self, alternative='two-sided', usevar='pooled', value=0): + '''ttest for the null hypothesis of identical means + + this should also be the same as onewaygls, except for ddof differences + + Parameters + ---------- + x1, x2 : array_like, 1-D or 2-D + two independent samples, see notes for 2-D case + alternative : string + The alternative hypothesis, H1, has to be one of the following + 'two-sided': H1: difference in means not equal to value (default) + 'larger' : H1: difference in means larger than value + 'smaller' : H1: difference in means smaller than value + + usevar : string, 'pooled' or 'unequal' + If ``pooled``, then the standard deviation of the samples is assumed to be + the same. If ``unequal``, then Welsh ttest with Satterthwait degrees + of freedom is used + value : float + difference between the means under the Null hypothesis. + + + Returns + ------- + tstat : float + test statisic + pvalue : float + pvalue of the t-test + df : int or float + degrees of freedom used in the t-test + + Notes + ----- + The result is independent of the user specified ddof. + + ''' + d1 = self.d1 + d2 = self.d2 + + if usevar == 'pooled': + stdm = self.std_meandiff_pooledvar + dof = (d1.nobs - 1 + d2.nobs - 1) + elif usevar == 'unequal': + stdm = self.std_meandiff_separatevar + dof = self.dof_satt() + else: + raise ValueError('usevar can only be "pooled" or "unequal"') + + tstat, pval = _tstat_generic(d1.mean, d2.mean, stdm, dof, alternative, + diff=value) + + return tstat, pval, dof + + def ztest_ind(self, alternative='two-sided', usevar='pooled', value=0): + '''z-test for the null hypothesis of identical means + + Parameters + ---------- + x1, x2 : array_like, 1-D or 2-D + two independent samples, see notes for 2-D case + alternative : string + The alternative hypothesis, H1, has to be one of the following + 'two-sided': H1: difference in means not equal to value (default) + 'larger' : H1: difference in means larger than value + 'smaller' : H1: difference in means smaller than value + + usevar : string, 'pooled' or 'unequal' + If ``pooled``, then the standard deviation of the samples is assumed to be + the same. If ``unequal``, then the standard deviations of the samples may + be different. + value : float + difference between the means under the Null hypothesis. + + Returns + ------- + tstat : float + test statisic + pvalue : float + pvalue of the z-test + + ''' + d1 = self.d1 + d2 = self.d2 + + if usevar == 'pooled': + stdm = self.std_meandiff_pooledvar + elif usevar == 'unequal': + stdm = self.std_meandiff_separatevar + else: + raise ValueError('usevar can only be "pooled" or "unequal"') + + tstat, pval = _zstat_generic(d1.mean, d2.mean, stdm, alternative, + diff=value) + + return tstat, pval + + def tconfint_diff(self, alpha=0.05, alternative='two-sided', + usevar='pooled'): + '''confidence interval for the difference in means + + Parameters + ---------- + alpha : float + significance level for the confidence interval, coverage is + ``1-alpha`` + alternative : string + This specifies the alternative hypothesis for the test that + corresponds to the confidence interval. + The alternative hypothesis, H1, has to be one of the following : + + 'two-sided': H1: difference in means not equal to value (default) + 'larger' : H1: difference in means larger than value + 'smaller' : H1: difference in means smaller than value + + usevar : string, 'pooled' or 'unequal' + If ``pooled``, then the standard deviation of the samples is assumed to be + the same. If ``unequal``, then Welsh ttest with Satterthwait degrees + of freedom is used + + Returns + ------- + lower, upper : floats + lower and upper limits of the confidence interval + + Notes + ----- + The result is independent of the user specified ddof. + + ''' + d1 = self.d1 + d2 = self.d2 + diff = d1.mean - d2.mean + if usevar == 'pooled': + std_diff = self.std_meandiff_pooledvar + dof = (d1.nobs - 1 + d2.nobs - 1) + elif usevar == 'unequal': + std_diff = self.std_meandiff_separatevar + dof = self.dof_satt() + else: + raise ValueError('usevar can only be "pooled" or "unequal"') + + res = _tconfint_generic(diff, std_diff, dof, alpha=alpha, + alternative=alternative) + return res + + def zconfint_diff(self, alpha=0.05, alternative='two-sided', + usevar='pooled'): + '''confidence interval for the difference in means + + Parameters + ---------- + alpha : float + significance level for the confidence interval, coverage is + ``1-alpha`` + alternative : string + This specifies the alternative hypothesis for the test that + corresponds to the confidence interval. + The alternative hypothesis, H1, has to be one of the following : + + 'two-sided': H1: difference in means not equal to value (default) + 'larger' : H1: difference in means larger than value + 'smaller' : H1: difference in means smaller than value + + usevar : string, 'pooled' or 'unequal' + If ``pooled``, then the standard deviation of the samples is assumed to be + the same. If ``unequal``, then Welsh ttest with Satterthwait degrees + of freedom is used + + Returns + ------- + lower, upper : floats + lower and upper limits of the confidence interval + + Notes + ----- + The result is independent of the user specified ddof. + + ''' + d1 = self.d1 + d2 = self.d2 + diff = d1.mean - d2.mean + if usevar == 'pooled': + std_diff = self.std_meandiff_pooledvar + elif usevar == 'unequal': + std_diff = self.std_meandiff_separatevar + else: + raise ValueError('usevar can only be "pooled" or "unequal"') + + res = _zconfint_generic(diff, std_diff, alpha=alpha, + alternative=alternative) + return res + + def ttost_ind(self, low, upp, usevar='pooled'): + ''' + test of equivalence for two independent samples, base on t-test + + Parameters + ---------- + low, upp : float + equivalence interval low < m1 - m2 < upp + usevar : string, 'pooled' or 'unequal' + If ``pooled``, then the standard deviation of the samples is assumed to be + the same. If ``unequal``, then Welsh ttest with Satterthwait degrees + of freedom is used + + Returns + ------- + pvalue : float + pvalue of the non-equivalence test + t1, pv1 : tuple of floats + test statistic and pvalue for lower threshold test + t2, pv2 : tuple of floats + test statistic and pvalue for upper threshold test + ''' + tt1 = self.ttest_ind(alternative='larger', usevar=usevar, value=low) + tt2 = self.ttest_ind(alternative='smaller', usevar=usevar, value=upp) + #TODO: remove tuple return, use same as for function tost_ind + return np.maximum(tt1[1], tt2[1]), (tt1, tt2) + + def ztost_ind(self, low, upp, usevar='pooled'): + ''' + test of equivalence for two independent samples, based on z-test + + Parameters + ---------- + low, upp : float + equivalence interval low < m1 - m2 < upp + usevar : string, 'pooled' or 'unequal' + If ``pooled``, then the standard deviation of the samples is assumed to be + the same. If ``unequal``, then Welsh ttest with Satterthwait degrees + of freedom is used + + Returns + ------- + pvalue : float + pvalue of the non-equivalence test + t1, pv1 : tuple of floats + test statistic and pvalue for lower threshold test + t2, pv2 : tuple of floats + test statistic and pvalue for upper threshold test + ''' + tt1 = self.ztest_ind(alternative='larger', usevar=usevar, value=low) + tt2 = self.ztest_ind(alternative='smaller', usevar=usevar, value=upp) + #TODO: remove tuple return, use same as for function tost_ind + return np.maximum(tt1[1], tt2[1]), tt1, tt2 + + #tost.__doc__ = tost_ind.__doc__ + +#doesn't work for 2d, doesn't take weights into account +## def test_equal_var(self): +## '''Levene test for independence +## +## ''' +## d1 = self.d1 +## d2 = self.d2 +## #rewrite this, for now just use scipy.stats +## return stats.levene(d1.data, d2.data) + + +def ttest_ind(x1, x2, alternative='two-sided', usevar='pooled', + weights=(None, None), value=0): + '''ttest independent sample + + convenience function that uses the classes and throws away the intermediate + results, + compared to scipy stats: drops axis option, adds alternative, usevar, and + weights option + + Parameters + ---------- + x1, x2 : array_like, 1-D or 2-D + two independent samples, see notes for 2-D case + alternative : string + The alternative hypothesis, H1, has to be one of the following + + 'two-sided': H1: difference in means not equal to value (default) + 'larger' : H1: difference in means larger than value + 'smaller' : H1: difference in means smaller than value + + usevar : string, 'pooled' or 'unequal' + If ``pooled``, then the standard deviation of the samples is assumed to be + the same. If ``unequal``, then Welsh ttest with Satterthwait degrees + of freedom is used + weights : tuple of None or ndarrays + Case weights for the two samples. For details on weights see + ``DescrStatsW`` + value : float + difference between the means under the Null hypothesis. + + + Returns + ------- + tstat : float + test statisic + pvalue : float + pvalue of the t-test + df : int or float + degrees of freedom used in the t-test + + ''' + cm = CompareMeans(DescrStatsW(x1, weights=weights[0], ddof=0), + DescrStatsW(x2, weights=weights[1], ddof=0)) + tstat, pval, dof = cm.ttest_ind(alternative=alternative, usevar=usevar, + value=value) + + return tstat, pval, dof + + +def ttost_ind(x1, x2, low, upp, usevar='pooled', weights=(None, None), + transform=None): + '''test of (non-)equivalence for two independent samples + + TOST: two one-sided t tests + + null hypothesis: m1 - m2 < low or m1 - m2 > upp + alternative hypothesis: low < m1 - m2 < upp + + where m1, m2 are the means, expected values of the two samples. + + If the pvalue is smaller than a threshold, say 0.05, then we reject the + hypothesis that the difference between the two samples is larger than the + the thresholds given by low and upp. + + Parameters + ---------- + x1, x2 : array_like, 1-D or 2-D + two independent samples, see notes for 2-D case + low, upp : float + equivalence interval low < m1 - m2 < upp + usevar : string, 'pooled' or 'unequal' + If ``pooled``, then the standard deviation of the samples is assumed to be + the same. If ``unequal``, then Welsh ttest with Satterthwait degrees + of freedom is used + weights : tuple of None or ndarrays + Case weights for the two samples. For details on weights see + ``DescrStatsW`` + transform : None or function + If None (default), then the data is not transformed. Given a function, + sample data and thresholds are transformed. If transform is log, then + the equivalence interval is in ratio: low < m1 / m2 < upp + + Returns + ------- + pvalue : float + pvalue of the non-equivalence test + t1, pv1 : tuple of floats + test statistic and pvalue for lower threshold test + t2, pv2 : tuple of floats + test statistic and pvalue for upper threshold test + + Notes + ----- + The test rejects if the 2*alpha confidence interval for the difference + is contained in the ``(low, upp)`` interval. + + This test works also for multi-endpoint comparisons: If d1 and d2 + have the same number of columns, then each column of the data in d1 is + compared with the corresponding column in d2. This is the same as + comparing each of the corresponding columns separately. Currently no + multi-comparison correction is used. The raw p-values reported here can + be correction with the functions in ``multitest``. + + ''' + + if transform: + if transform is np.log: + #avoid hstack in special case + x1 = transform(x1) + x2 = transform(x2) + else: + #for transforms like rankdata that will need both datasets + #concatenate works for stacking 1d and 2d arrays + xx = transform(np.concatenate((x1, x2), 0)) + x1 = xx[:len(x1)] + x2 = xx[len(x1):] + low = transform(low) + upp = transform(upp) + cm = CompareMeans(DescrStatsW(x1, weights=weights[0], ddof=0), + DescrStatsW(x2, weights=weights[1], ddof=0)) + pval, res = cm.ttost_ind(low, upp, usevar=usevar) + return pval, res[0], res[1] + +def ttost_paired(x1, x2, low, upp, transform=None, weights=None): + '''test of (non-)equivalence for two dependent, paired sample + + TOST: two one-sided t tests + + null hypothesis: md < low or md > upp + alternative hypothesis: low < md < upp + + where md is the mean, expected value of the difference x1 - x2 + + If the pvalue is smaller than a threshold,say 0.05, then we reject the + hypothesis that the difference between the two samples is larger than the + the thresholds given by low and upp. + + Parameters + ---------- + x1, x2 : array_like + two dependent samples + low, upp : float + equivalence interval low < mean of difference < upp + weights : None or ndarray + case weights for the two samples. For details on weights see + ``DescrStatsW`` + transform : None or function + If None (default), then the data is not transformed. Given a function + sample data and thresholds are transformed. If transform is log the + the equivalence interval is in ratio: low < x1 / x2 < upp + + Returns + ------- + pvalue : float + pvalue of the non-equivalence test + t1, pv1, df1 : tuple + test statistic, pvalue and degrees of freedom for lower threshold test + t2, pv2, df2 : tuple + test statistic, pvalue and degrees of freedom for upper threshold test + + ''' + + if transform: + if transform is np.log: + #avoid hstack in special case + x1 = transform(x1) + x2 = transform(x2) + else: + #for transforms like rankdata that will need both datasets + #concatenate works for stacking 1d and 2d arrays + xx = transform(np.concatenate((x1, x2), 0)) + x1 = xx[:len(x1)] + x2 = xx[len(x1):] + low = transform(low) + upp = transform(upp) + dd = DescrStatsW(x1 - x2, weights=weights, ddof=0) + t1, pv1, df1 = dd.ttest_mean(low, alternative='larger') + t2, pv2, df2 = dd.ttest_mean(upp, alternative='smaller') + return np.maximum(pv1, pv2), (t1, pv1, df1), (t2, pv2, df2) + +def ztest(x1, x2=None, value=0, alternative='two-sided', usevar='pooled', + ddof=1.): + '''test for mean based on normal distribution, one or two samples + + In the case of two samples, the samples are assumed to be independent. + + Parameters + ---------- + x1, x2 : array_like, 1-D or 2-D + two independent samples + value : float + In the one sample case, value is the mean of x1 under the Null + hypothesis. + In the two sample case, value is the difference between mean of x1 and + mean of x2 under the Null hypothesis. The test statistic is + `x1_mean - x2_mean - value`. + alternative : string + The alternative hypothesis, H1, has to be one of the following + + 'two-sided': H1: difference in means not equal to value (default) + 'larger' : H1: difference in means larger than value + 'smaller' : H1: difference in means smaller than value + + usevar : string, 'pooled' + Currently, only 'pooled' is implemented. + If ``pooled``, then the standard deviation of the samples is assumed to be + the same. see CompareMeans.ztest_ind for different options. + ddof : int + Degrees of freedom use in the calculation of the variance of the mean + estimate. In the case of comparing means this is one, however it can + be adjusted for testing other statistics (proportion, correlation) + + Returns + ------- + tstat : float + test statisic + pvalue : float + pvalue of the t-test + + Notes + ----- + usevar not implemented, is always pooled in two sample case + use CompareMeans instead. + + ''' + # TODO: this should delegate to CompareMeans like ttest_ind + # However that does not implement ddof + + #usevar is not used, always pooled + + if usevar != 'pooled': + raise NotImplementedError('only usevar="pooled" is implemented') + + x1 = np.asarray(x1) + nobs1 = x1.shape[0] + x1_mean = x1.mean(0) + x1_var = x1.var(0) + if x2 is not None: + x2 = np.asarray(x2) + nobs2 = x2.shape[0] + x2_mean = x2.mean(0) + x2_var = x2.var(0) + var_pooled = (nobs1 * x1_var + nobs2 * x2_var) + var_pooled /= (nobs1 + nobs2 - 2 * ddof) + var_pooled *= (1. / nobs1 + 1. / nobs2) + else: + var_pooled = x1_var / (nobs1 - ddof) + x2_mean = 0 + + std_diff = np.sqrt(var_pooled) + #stat = x1_mean - x2_mean - value + return _zstat_generic(x1_mean, x2_mean, std_diff, alternative, diff=value) + +def zconfint(x1, x2=None, value=0, alpha=0.05, alternative='two-sided', + usevar='pooled', ddof=1.): + '''confidence interval based on normal distribution z-test + + Parameters + ---------- + x1, x2 : array_like, 1-D or 2-D + two independent samples, see notes for 2-D case + value : float + In the one sample case, value is the mean of x1 under the Null + hypothesis. + In the two sample case, value is the difference between mean of x1 and + mean of x2 under the Null hypothesis. The test statistic is + `x1_mean - x2_mean - value`. + usevar : string, 'pooled' + Currently, only 'pooled' is implemented. + If ``pooled``, then the standard deviation of the samples is assumed to be + the same. see CompareMeans.ztest_ind for different options. + ddof : int + Degrees of freedom use in the calculation of the variance of the mean + estimate. In the case of comparing means this is one, however it can + be adjusted for testing other statistics (proportion, correlation) + + Notes + ----- + checked only for 1 sample case + + usevar not implemented, is always pooled in two sample case + + ``value`` shifts the confidence interval so it is centered at + `x1_mean - x2_mean - value` + + See Also + -------- + ztest + CompareMeans + + ''' + #usevar is not used, always pooled + # mostly duplicate code from ztest + + if usevar != 'pooled': + raise NotImplementedError('only usevar="pooled" is implemented') + x1 = np.asarray(x1) + nobs1 = x1.shape[0] + x1_mean = x1.mean(0) + x1_var = x1.var(0) + if x2 is not None: + x2 = np.asarray(x2) + nobs2 = x2.shape[0] + x2_mean = x2.mean(0) + x2_var = x2.var(0) + var_pooled = (nobs1 * x1_var + nobs2 * x2_var) + var_pooled /= (nobs1 + nobs2 - 2 * ddof) + var_pooled *= (1. / nobs1 + 1. / nobs2) + else: + var_pooled = x1_var / (nobs1 - ddof) + x2_mean = 0 + + std_diff = np.sqrt(var_pooled) + ci = _zconfint_generic(x1_mean - x2_mean - value, std_diff, alpha, alternative) + return ci + +def ztost(x1, low, upp, x2=None, usevar='pooled', ddof=1.): + '''Equivalence test based on normal distribution + + Parameters + ---------- + x1 : array_like + one sample or first sample for 2 independent samples + low, upp : float + equivalence interval low < m1 - m2 < upp + x1 : array_like or None + second sample for 2 independent samples test. If None, then a + one-sample test is performed. + usevar : string, 'pooled' + If `pooled`, then the standard deviation of the samples is assumed to be + the same. Only `pooled` is currently implemented. + + Returns + ------- + pvalue : float + pvalue of the non-equivalence test + t1, pv1 : tuple of floats + test statistic and pvalue for lower threshold test + t2, pv2 : tuple of floats + test statistic and pvalue for upper threshold test + + Notes + ----- + checked only for 1 sample case + + ''' + tt1 = ztest(x1, x2, alternative='larger', usevar=usevar, value=low, + ddof=ddof) + tt2 = ztest(x1, x2, alternative='smaller', usevar=usevar, value=upp, + ddof=ddof) + return np.maximum(tt1[1], tt2[1]), tt1, tt2, + diff --git a/statsmodels/tools/__init__.py b/statsmodels/tools/__init__.py new file mode 100644 index 0000000..5ca9e01 --- /dev/null +++ b/statsmodels/tools/__init__.py @@ -0,0 +1 @@ +from .tools import add_constant, categorical diff --git a/statsmodels/tools/_testing.py b/statsmodels/tools/_testing.py new file mode 100644 index 0000000..4fb9401 --- /dev/null +++ b/statsmodels/tools/_testing.py @@ -0,0 +1,135 @@ +"""Testing helper functions + +Warning: current status experimental, mostly copy paste + +Warning: these functions will be changed without warning as the need +during refactoring arises. + +The first group of functions provide consistency checks + +""" + +import numpy as np +from numpy.testing import assert_allclose, assert_ +from nose import SkipTest + +# the following are copied from +# statsmodels.base.tests.test_generic_methods.CheckGenericMixin +# and only adjusted to work as standalone functions + +def check_ttest_tvalues(results): + # test that t_test has same results a params, bse, tvalues, ... + res = results + mat = np.eye(len(res.params)) + tt = res.t_test(mat) + + assert_allclose(tt.effect, res.params, rtol=1e-12) + # TODO: tt.sd and tt.tvalue are 2d also for single regressor, squeeze + assert_allclose(np.squeeze(tt.sd), res.bse, rtol=1e-10) + assert_allclose(np.squeeze(tt.tvalue), res.tvalues, rtol=1e-12) + assert_allclose(tt.pvalue, res.pvalues, rtol=5e-10) + assert_allclose(tt.conf_int(), res.conf_int(), rtol=1e-10) + + # test params table frame returned by t_test + table_res = np.column_stack((res.params, res.bse, res.tvalues, + res.pvalues, res.conf_int())) + table1 = np.column_stack((tt.effect, tt.sd, tt.tvalue, tt.pvalue, + tt.conf_int())) + table2 = tt.summary_frame().values + assert_allclose(table2, table_res, rtol=1e-12) + + # move this to test_attributes ? + assert_(hasattr(res, 'use_t')) + + tt = res.t_test(mat[0]) + tt.summary() # smoke test for #1323 + assert_allclose(tt.pvalue, res.pvalues[0], rtol=5e-10) + + +def check_ftest_pvalues(results): + res = results + use_t = res.use_t + k_vars = len(res.params) + # check default use_t + pvals = [res.wald_test(np.eye(k_vars)[k], use_f=use_t).pvalue + for k in range(k_vars)] + assert_allclose(pvals, res.pvalues, rtol=5e-10, atol=1e-25) + + # sutomatic use_f based on results class use_t + pvals = [res.wald_test(np.eye(k_vars)[k]).pvalue + for k in range(k_vars)] + assert_allclose(pvals, res.pvalues, rtol=5e-10, atol=1e-25) + + # label for pvalues in summary + string_use_t = 'P>|z|' if use_t is False else 'P>|t|' + summ = str(res.summary()) + assert_(string_use_t in summ) + + # try except for models that don't have summary2 + try: + summ2 = str(res.summary2()) + except AttributeError: + summ2 = None + if summ2 is not None: + assert_(string_use_t in summ2) + + +# TODO The following is not (yet) guaranteed across models +#@knownfailureif(True) +def check_fitted(results): + # ignore wrapper for isinstance check + from statsmodels.genmod.generalized_linear_model import GLMResults + from statsmodels.discrete.discrete_model import DiscreteResults + # FIXME: work around GEE has no wrapper + if hasattr(results, '_results'): + results = results._results + else: + results = results + if (isinstance(results, GLMResults) or + isinstance(results, DiscreteResults)): + raise SkipTest + + res = results + fitted = res.fittedvalues + assert_allclose(res.model.endog - fitted, res.resid, rtol=1e-12) + assert_allclose(fitted, res.predict(), rtol=1e-12) + +def check_predict_types(results): + res = results + # squeeze to make 1d for single regressor test case + p_exog = np.squeeze(np.asarray(res.model.exog[:2])) + + # ignore wrapper for isinstance check + from statsmodels.genmod.generalized_linear_model import GLMResults + from statsmodels.discrete.discrete_model import DiscreteResults + + # FIXME: work around GEE has no wrapper + if hasattr(results, '_results'): + results = results._results + else: + results = results + + if (isinstance(results, GLMResults) or + isinstance(results, DiscreteResults)): + # SMOKE test only TODO + res.predict(p_exog) + res.predict(p_exog.tolist()) + res.predict(p_exog[0].tolist()) + else: + fitted = res.fittedvalues[:2] + assert_allclose(fitted, res.predict(p_exog), rtol=1e-12) + # this needs reshape to column-vector: + assert_allclose(fitted, res.predict(np.squeeze(p_exog).tolist()), + rtol=1e-12) + # only one prediction: + assert_allclose(fitted[:1], res.predict(p_exog[0].tolist()), + rtol=1e-12) + assert_allclose(fitted[:1], res.predict(p_exog[0]), + rtol=1e-12) + + # predict doesn't preserve DataFrame, e.g. dot converts to ndarray + #import pandas + #predicted = res.predict(pandas.DataFrame(p_exog)) + #assert_(isinstance(predicted, pandas.DataFrame)) + #assert_allclose(predicted, fitted, rtol=1e-12) + diff --git a/statsmodels/tools/catadd.py b/statsmodels/tools/catadd.py new file mode 100644 index 0000000..e7e51d4 --- /dev/null +++ b/statsmodels/tools/catadd.py @@ -0,0 +1,57 @@ +from __future__ import print_function +import numpy as np +from statsmodels.compat.numpy import np_matrix_rank + + +def add_indep(x, varnames, dtype=None): + ''' + construct array with independent columns + + x is either iterable (list, tuple) or instance of ndarray or a subclass of it. + If x is an ndarray, then each column is assumed to represent a variable with + observations in rows. + ''' + #TODO: this needs tests for subclasses + + if isinstance(x, np.ndarray) and x.ndim == 2: + x = x.T + + nvars_orig = len(x) + nobs = len(x[0]) + #print('nobs, nvars_orig', nobs, nvars_orig) + if not dtype: + dtype = np.asarray(x[0]).dtype + xout = np.zeros((nobs, nvars_orig), dtype=dtype) + count = 0 + rank_old = 0 + varnames_new = [] + varnames_dropped = [] + keepindx = [] + for (xi, ni) in zip(x, varnames): + #print(xi.shape, xout.shape) + xout[:,count] = xi + rank_new = np_matrix_rank(xout) + #print(rank_new) + if rank_new > rank_old: + varnames_new.append(ni) + rank_old = rank_new + count += 1 + else: + varnames_dropped.append(ni) + + return xout[:,:count], varnames_new + +if __name__ == '__main__': + x1 = np.array([0,0,0,0,0,1,1,1,2,2,2]) + x2 = np.array([0,0,0,0,0,1,1,1,1,1,1]) + x0 = np.ones(len(x2)) + x = np.column_stack([x0, x1[:,None]*np.arange(3), x2[:,None]*np.arange(2)]) + varnames = ['const'] + ['var1_%d' %i for i in np.arange(3)] \ + + ['var2_%d' %i for i in np.arange(2)] + xo,vo = add_indep(x, varnames) + print(xo.shape) + + + + + diff --git a/statsmodels/tools/data.py b/statsmodels/tools/data.py new file mode 100644 index 0000000..d6793ca --- /dev/null +++ b/statsmodels/tools/data.py @@ -0,0 +1,122 @@ +""" +Compatibility tools for various data structure inputs +""" +from statsmodels.compat.python import range +import numpy as np +import pandas as pd + + +def _check_period_index(x, freq="M"): + from pandas import PeriodIndex, DatetimeIndex + if not isinstance(x.index, (DatetimeIndex, PeriodIndex)): + raise ValueError("The index must be a DatetimeIndex or PeriodIndex") + + from statsmodels.tsa.base.datetools import _infer_freq + inferred_freq = _infer_freq(x.index) + if not inferred_freq.startswith(freq): + raise ValueError("Expected frequency {}. Got {}".format(inferred_freq, + freq)) + + +def is_data_frame(obj): + return isinstance(obj, pd.DataFrame) + + +def is_design_matrix(obj): + from patsy import DesignMatrix + return isinstance(obj, DesignMatrix) + + +def _is_structured_ndarray(obj): + return isinstance(obj, np.ndarray) and obj.dtype.names is not None + + +def interpret_data(data, colnames=None, rownames=None): + """ + Convert passed data structure to form required by estimation classes + + Parameters + ---------- + data : ndarray-like + colnames : sequence or None + May be part of data structure + rownames : sequence or None + + Returns + ------- + (values, colnames, rownames) : (homogeneous ndarray, list) + """ + if isinstance(data, np.ndarray): + if _is_structured_ndarray(data): + if colnames is None: + colnames = data.dtype.names + values = struct_to_ndarray(data) + else: + values = data + + if colnames is None: + colnames = ['Y_%d' % i for i in range(values.shape[1])] + elif is_data_frame(data): + # XXX: hack + data = data.dropna() + values = data.values + colnames = data.columns + rownames = data.index + else: # pragma: no cover + raise Exception('cannot handle other input types at the moment') + + if not isinstance(colnames, list): + colnames = list(colnames) + + # sanity check + if len(colnames) != values.shape[1]: + raise ValueError('length of colnames does not match number ' + 'of columns in data') + + if rownames is not None and len(rownames) != len(values): + raise ValueError('length of rownames does not match number ' + 'of rows in data') + + return values, colnames, rownames + + +def struct_to_ndarray(arr): + return arr.view((float, len(arr.dtype.names)), type=np.ndarray) + + +def _is_using_ndarray_type(endog, exog): + return (type(endog) is np.ndarray and + (type(exog) is np.ndarray or exog is None)) + + +def _is_using_ndarray(endog, exog): + return (isinstance(endog, np.ndarray) and + (isinstance(exog, np.ndarray) or exog is None)) + + +def _is_using_pandas(endog, exog): + # TODO: Remove WidePanel when finished with it + klasses = (pd.Series, pd.DataFrame, pd.WidePanel, pd.Panel) + return (isinstance(endog, klasses) or isinstance(exog, klasses)) + + +def _is_array_like(endog, exog): + try: # do it like this in case of mixed types, ie., ndarray and list + endog = np.asarray(endog) + exog = np.asarray(exog) + return True + except: + return False + + +def _is_using_patsy(endog, exog): + # we get this when a structured array is passed through a formula + return (is_design_matrix(endog) and + (is_design_matrix(exog) or exog is None)) + + +def _is_recarray(data): + """ + Returns true if data is a recarray + """ + return isinstance(data, np.core.recarray) diff --git a/statsmodels/tools/decorators.py b/statsmodels/tools/decorators.py new file mode 100644 index 0000000..5573062 --- /dev/null +++ b/statsmodels/tools/decorators.py @@ -0,0 +1,278 @@ +from __future__ import print_function +from statsmodels.tools.sm_exceptions import CacheWriteWarning +from numpy.testing import assert_equal +from statsmodels.compat.python import get_function_name +import warnings + +__all__ = ['resettable_cache', 'cache_readonly', 'cache_writable'] + + +class ResettableCache(dict): + """ + Dictionary whose elements mey depend one from another. + + If entry `B` depends on entry `A`, changing the values of entry `A` will + reset the value of entry `B` to a default (None); deleteing entry `A` will + delete entry `B`. The connections between entries are stored in a + `_resetdict` private attribute. + + Parameters + ---------- + reset : dictionary, optional + An optional dictionary, associated a sequence of entries to any key + of the object. + items : var, optional + An optional dictionary used to initialize the dictionary + + Examples + -------- + >>> reset = dict(a=('b',), b=('c',)) + >>> cache = resettable_cache(a=0, b=1, c=2, reset=reset) + >>> assert_equal(cache, dict(a=0, b=1, c=2)) + + >>> print("Try resetting a") + >>> cache['a'] = 1 + >>> assert_equal(cache, dict(a=1, b=None, c=None)) + >>> cache['c'] = 2 + >>> assert_equal(cache, dict(a=1, b=None, c=2)) + >>> cache['b'] = 0 + >>> assert_equal(cache, dict(a=1, b=0, c=None)) + + >>> print("Try deleting b") + >>> del(cache['a']) + >>> assert_equal(cache, {}) + """ + + def __init__(self, reset=None, **items): + self._resetdict = reset or {} + dict.__init__(self, **items) + + def __setitem__(self, key, value): + dict.__setitem__(self, key, value) + # if hasattr needed for unpickling with protocol=2 + if hasattr(self, '_resetdict'): + for mustreset in self._resetdict.get(key, []): + self[mustreset] = None + + def __delitem__(self, key): + dict.__delitem__(self, key) + for mustreset in self._resetdict.get(key, []): + del(self[mustreset]) + +# def __getstate__(self): +# print('pickling wrapper', self.__dict__) +# return self.__dict__ +# +# def __setstate__(self, dict_): +# print('unpickling wrapper', dict_) +# self.__dict__.update(dict_) + + +resettable_cache = ResettableCache + + +class CachedAttribute(object): + + def __init__(self, func, cachename=None, resetlist=None): + self.fget = func + self.name = func.__name__ + self.cachename = cachename or '_cache' + self.resetlist = resetlist or () + + def __get__(self, obj, type=None): + if obj is None: + return self.fget + # Get the cache or set a default one if needed + _cachename = self.cachename + _cache = getattr(obj, _cachename, None) + if _cache is None: + setattr(obj, _cachename, resettable_cache()) + _cache = getattr(obj, _cachename) + # Get the name of the attribute to set and cache + name = self.name + _cachedval = _cache.get(name, None) + # print("[_cachedval=%s]" % _cachedval) + if _cachedval is None: + # Call the "fget" function + _cachedval = self.fget(obj) + # Set the attribute in obj + # print("Setting %s in cache to %s" % (name, _cachedval)) + try: + _cache[name] = _cachedval + except KeyError: + setattr(_cache, name, _cachedval) + # Update the reset list if needed (and possible) + resetlist = self.resetlist + if resetlist is not (): + try: + _cache._resetdict[name] = self.resetlist + except AttributeError: + pass + # else: + # print("Reading %s from cache (%s)" % (name, _cachedval)) + return _cachedval + + def __set__(self, obj, value): + errmsg = "The attribute '%s' cannot be overwritten" % self.name + warnings.warn(errmsg, CacheWriteWarning) + + +class CachedWritableAttribute(CachedAttribute): + def __set__(self, obj, value): + _cache = getattr(obj, self.cachename) + name = self.name + try: + _cache[name] = value + except KeyError: + setattr(_cache, name, value) + + +class _cache_readonly(object): + """ + Decorator for CachedAttribute + """ + + def __init__(self, cachename=None, resetlist=None): + self.func = None + self.cachename = cachename + self.resetlist = resetlist or None + + def __call__(self, func): + return CachedAttribute(func, + cachename=self.cachename, + resetlist=self.resetlist) +cache_readonly = _cache_readonly() + + +class cache_writable(_cache_readonly): + """ + Decorator for CachedWritableAttribute + """ + def __call__(self, func): + return CachedWritableAttribute(func, + cachename=self.cachename, + resetlist=self.resetlist) + + +# this has been copied from nitime a long time ago +# TODO: ceck whether class has change in nitime +class OneTimeProperty(object): + """ + A descriptor to make special properties that become normal attributes. + + This is meant to be used mostly by the auto_attr decorator in this module. + Author: Fernando Perez, copied from nitime + """ + def __init__(self, func): + + """Create a OneTimeProperty instance. + + Parameters + ---------- + func : method + + The method that will be called the first time to compute a value. + Afterwards, the method's name will be a standard attribute holding + the value of this computation. + """ + self.getter = func + self.name = get_function_name(func) + + def __get__(self, obj, type=None): + """ + This will be called on attribute access on the class or instance. + """ + + if obj is None: + # Being called on the class, return the original function. + # This way, introspection works on the class. + # return func + # print('class access') + return self.getter + + val = self.getter(obj) + # print("** auto_attr - loading '%s'" % self.name # dbg) + setattr(obj, self.name, val) + return val + +try: + from nose.tools import nottest +except ImportError: + # make a dummy decorator so people that don't have nose installed + # don't get an error + def nottest(fn): + return fn + + +if __name__ == "__main__": + # Tests resettable_cache -------------------------------------------- + reset = dict(a=('b',), b=('c',)) + cache = resettable_cache(a=0, b=1, c=2, reset=reset) + assert_equal(cache, dict(a=0, b=1, c=2)) + # + print("Try resetting a") + cache['a'] = 1 + assert_equal(cache, dict(a=1, b=None, c=None)) + cache['c'] = 2 + assert_equal(cache, dict(a=1, b=None, c=2)) + cache['b'] = 0 + assert_equal(cache, dict(a=1, b=0, c=None)) + # + print("Try deleting b") + del(cache['a']) + assert_equal(cache, {}) + # -------------------------------------------------------------------- + + class Example(object): + def __init__(self): + self._cache = resettable_cache() + self.a = 0 + + @cache_readonly + def b(self): + return 1 + + @cache_writable(resetlist='d') + def c(self): + return 2 + + @cache_writable(resetlist=('e', 'f')) + def d(self): + return self.c + 1 + + @cache_readonly + def e(self): + return 4 + + @cache_readonly + def f(self): + return self.e + 1 + + ex = Example() + print("(attrs : %s)" % str(ex.__dict__)) + print("(cached : %s)" % str(ex._cache)) + print("Try a :", ex.a) + print("Try accessing/setting a readonly attribute") + assert_equal(ex.__dict__, dict(a=0, _cache={})) + print("Try b #1:", ex.b) + b = ex.b + assert_equal(b, 1) + assert_equal(ex.__dict__, dict(a=0, _cache=dict(b=1,))) + # assert_equal(ex.__dict__, dict(a=0, b=1, _cache=dict(b=1))) + ex.b = -1 + print("Try dict", ex.__dict__) + assert_equal(ex._cache, dict(b=1,)) + # + print("Try accessing/resetting a cachewritable attribute") + c = ex.c + assert_equal(c, 2) + assert_equal(ex._cache, dict(b=1, c=2)) + d = ex.d + assert_equal(d, 3) + assert_equal(ex._cache, dict(b=1, c=2, d=3)) + ex.c = 0 + assert_equal(ex._cache, dict(b=1, c=0, d=None, e=None, f=None)) + d = ex.d + assert_equal(ex._cache, dict(b=1, c=0, d=1, e=None, f=None)) + ex.d = 5 + assert_equal(ex._cache, dict(b=1, c=0, d=5, e=None, f=None)) diff --git a/statsmodels/tools/dump2module.py b/statsmodels/tools/dump2module.py new file mode 100644 index 0000000..8ce29af --- /dev/null +++ b/statsmodels/tools/dump2module.py @@ -0,0 +1,175 @@ +'''Save a set of numpy arrays to a python module file that can be imported + +Author : Josef Perktold +''' +from __future__ import print_function +from statsmodels.compat.python import iterkeys +import numpy as np + +class HoldIt(object): + '''Class to write numpy arrays into a python module + + Calling save on the instance of this class write all attributes of the + instance into a module file. For details see the save method. + + ''' + + def __init__(self, name): + self.name = name + def save(self, what=None, filename=None, header=True, useinstance=True, + comment=None, print_options=None): + '''write attributes of this instance to python module given by filename + + Parameters + ---------- + what : list or None + list of attributes that are added to the module. If None (default) + then all attributes in __dict__ that do not start with an underline + will be saved. + filename : string + specifies filename with path. If the file does not exist, it will be + created. If the file is already exists, then the new data will be + appended to the file. + header : bool + If true, then the imports of the module and the class definition are + written before writing the data. + useinstance : bool + If true, then the data in the module are attached to an instance of a + holder class. If false, then each array will be saved as separate + variable. + comment : string + If comment is not empty then this string will be attached as a + description comment to the data instance in the saved module. + print_options : dict or None + The print_options for the numpy arrays will be updated with this. + see notes + + Notes + ----- + The content of an numpy array are written using repr, which can be + controlled with the np.set_printoptions. The numpy default is updated + with: precision=20, linewidth=100, nanstr='nan', infstr='inf' + + This should provide enough precision for double floating point numbers. + If one array has more than 1000 elements, then threshold should be + overwritten by the user, see keyword argument print_options. + ''' + + print_opt_old = np.get_printoptions() + print_opt = dict(precision=20, linewidth=100, nanstr='nan', + infstr='inf') + if print_options: + print_opt.update(print_options) + np.set_printoptions(**print_opt) + #precision corrects for non-scientific notation + if what is None: + what = (i for i in self.__dict__ if i[0] != '_') + if header: + txt = ['import numpy as np\n' + 'from numpy import array, rec, inf, nan\n\n'] + if useinstance: + txt.append('class Holder(object):\n pass\n\n') + else: + txt = [] + + if useinstance: + txt.append('%s = Holder()' % self.name) + prefix = '%s.' % self.name + else: + prefix = '' + + if not comment is None: + txt.append("%scomment = '%s'" % (prefix, comment)) + + for x in what: + txt.append('%s%s = %s' % (prefix, x, repr(getattr(self,x)))) + txt.extend(['','']) #add empty lines at end + if not filename is None: + file(filename, 'a+').write('\n'.join(txt)) + np.set_printoptions(**print_opt_old) + self._filename = filename + self._useinstance = useinstance + self._what = what + return txt + + def verify(self): + '''load the saved module and verify the data + + This tries several ways of comparing the saved and the attached data, + but might not work for all possible data structures. + + Returns + ------- + all_correct : bool + true if no differences are found, for floating point numbers + rtol=1e-16, atol=1e-16 is used to determine equality (allclose) + correctli : list + list of attribute names that compare as equal + incorrectli : list + list of attribute names that did not compare as equal, either + because they differ or because the comparison does not handle the + data structure correctly + + ''' + module = __import__(self._filename.replace('.py','')) + if not self._useinstance: + raise NotImplementedError('currently only implemented when' + 'useinstance is true') + data = getattr(module, self.name) + correctli = [] + incorrectli = [] + + for d in self._what: + self_item = getattr(data, d) + saved_item = getattr(data, d) + #print(d) + #try simple equality + correct = np.all(self.item == saved_item) + #try allclose + if not correct and not self.item.dtype == np.dtype('object'): + correct = np.allclose(self_item, saved_item, + rtol=1e-16, atol=1e-16) + if not correct: + import warnings + warnings.warn("inexact precision in "+d, RuntimeWarning) + #try iterating, if object array + if not correct: + correlem =[np.all(data[d].item()[k] == + getattr(testsave.var_results, d).item()[k]) + for k in iterkeys(data[d].item())] + if not correlem: + #print(d, "wrong") + incorrectli.append(d) + correctli.append(d) + + return len(incorrectli)==0, correctli, incorrectli + + + +if __name__ == '__main__': + data = np.load(r"E:\Josef\eclipsegworkspace\statsmodels-josef-experimental-030\dist\statsmodels-0.3.0dev_with_Winhelp_a2\statsmodels-0.3.0dev\scikits\statsmodels\tsa\vector_ar\tests\results\vars_results.npz") + res_var = HoldIt('var_results') + for d in data: + setattr(res_var, d, data[d]) + np.set_printoptions(precision=120, linewidth=100) + res_var.save(filename='testsave.py', header=True, + comment='VAR test data converted from vars_results.npz') + + import testsave + + for d in data: + print(d) + correct = np.all(data[d] == getattr(testsave.var_results, d)) + if not correct and not data[d].dtype == np.dtype('object'): + correct = np.allclose(data[d], getattr(testsave.var_results, d), + rtol=1e-16, atol=1e-16) + if not correct: print("inexact precision") + if not correct: + correlem =[np.all(data[d].item()[k] == + getattr(testsave.var_results, d).item()[k]) + for k in iterkeys(data[d].item())] + if not correlem: + print(d, "wrong") + + print(res_var.verify()) + diff --git a/statsmodels/tools/eval_measures.py b/statsmodels/tools/eval_measures.py new file mode 100644 index 0000000..4258700 --- /dev/null +++ b/statsmodels/tools/eval_measures.py @@ -0,0 +1,585 @@ +# -*- coding: utf-8 -*- +"""some measures for evaluation of prediction, tests and model selection + +Created on Tue Nov 08 15:23:20 2011 + +Author: Josef Perktold +License: BSD-3 + +""" +import numpy as np + + +def mse(x1, x2, axis=0): + """mean squared error + + Parameters + ---------- + x1, x2 : array_like + The performance measure depends on the difference between these two + arrays. + axis : int + axis along which the summary statistic is calculated + + Returns + ------- + mse : ndarray or float + mean squared error along given axis. + + Notes + ----- + If ``x1`` and ``x2`` have different shapes, then they need to broadcast. + This uses ``numpy.asanyarray`` to convert the input. Whether this is the + desired result or not depends on the array subclass, for example + numpy matrices will silently produce an incorrect result. + + """ + x1 = np.asanyarray(x1) + x2 = np.asanyarray(x2) + return np.mean((x1-x2)**2, axis=axis) + + +def rmse(x1, x2, axis=0): + """root mean squared error + + Parameters + ---------- + x1, x2 : array_like + The performance measure depends on the difference between these two + arrays. + axis : int + axis along which the summary statistic is calculated + + Returns + ------- + rmse : ndarray or float + root mean squared error along given axis. + + Notes + ----- + If ``x1`` and ``x2`` have different shapes, then they need to broadcast. + This uses ``numpy.asanyarray`` to convert the input. Whether this is the + desired result or not depends on the array subclass, for example + numpy matrices will silently produce an incorrect result. + + """ + x1 = np.asanyarray(x1) + x2 = np.asanyarray(x2) + return np.sqrt(mse(x1, x2, axis=axis)) + + +def maxabs(x1, x2, axis=0): + """maximum absolute error + + Parameters + ---------- + x1, x2 : array_like + The performance measure depends on the difference between these two + arrays. + axis : int + axis along which the summary statistic is calculated + + Returns + ------- + maxabs : ndarray or float + maximum absolute difference along given axis. + + Notes + ----- + If ``x1`` and ``x2`` have different shapes, then they need to broadcast. + This uses ``numpy.asanyarray`` to convert the input. Whether this is the + desired result or not depends on the array subclass. + + """ + x1 = np.asanyarray(x1) + x2 = np.asanyarray(x2) + return np.max(np.abs(x1-x2), axis=axis) + + +def meanabs(x1, x2, axis=0): + """mean absolute error + + Parameters + ---------- + x1, x2 : array_like + The performance measure depends on the difference between these two + arrays. + axis : int + axis along which the summary statistic is calculated + + Returns + ------- + meanabs : ndarray or float + mean absolute difference along given axis. + + Notes + ----- + If ``x1`` and ``x2`` have different shapes, then they need to broadcast. + This uses ``numpy.asanyarray`` to convert the input. Whether this is the + desired result or not depends on the array subclass. + + """ + x1 = np.asanyarray(x1) + x2 = np.asanyarray(x2) + return np.mean(np.abs(x1-x2), axis=axis) + + +def medianabs(x1, x2, axis=0): + """median absolute error + + Parameters + ---------- + x1, x2 : array_like + The performance measure depends on the difference between these two + arrays. + axis : int + axis along which the summary statistic is calculated + + Returns + ------- + medianabs : ndarray or float + median absolute difference along given axis. + + Notes + ----- + If ``x1`` and ``x2`` have different shapes, then they need to broadcast. + This uses ``numpy.asanyarray`` to convert the input. Whether this is the + desired result or not depends on the array subclass. + + """ + x1 = np.asanyarray(x1) + x2 = np.asanyarray(x2) + return np.median(np.abs(x1-x2), axis=axis) + + +def bias(x1, x2, axis=0): + """bias, mean error + + Parameters + ---------- + x1, x2 : array_like + The performance measure depends on the difference between these two + arrays. + axis : int + axis along which the summary statistic is calculated + + Returns + ------- + bias : ndarray or float + bias, or mean difference along given axis. + + Notes + ----- + If ``x1`` and ``x2`` have different shapes, then they need to broadcast. + This uses ``numpy.asanyarray`` to convert the input. Whether this is the + desired result or not depends on the array subclass. + + """ + x1 = np.asanyarray(x1) + x2 = np.asanyarray(x2) + return np.mean(x1-x2, axis=axis) + + +def medianbias(x1, x2, axis=0): + """median bias, median error + + Parameters + ---------- + x1, x2 : array_like + The performance measure depends on the difference between these two + arrays. + axis : int + axis along which the summary statistic is calculated + + Returns + ------- + medianbias : ndarray or float + median bias, or median difference along given axis. + + Notes + ----- + If ``x1`` and ``x2`` have different shapes, then they need to broadcast. + This uses ``numpy.asanyarray`` to convert the input. Whether this is the + desired result or not depends on the array subclass. + + """ + x1 = np.asanyarray(x1) + x2 = np.asanyarray(x2) + return np.median(x1-x2, axis=axis) + + +def vare(x1, x2, ddof=0, axis=0): + """variance of error + + Parameters + ---------- + x1, x2 : array_like + The performance measure depends on the difference between these two + arrays. + axis : int + axis along which the summary statistic is calculated + + Returns + ------- + vare : ndarray or float + variance of difference along given axis. + + Notes + ----- + If ``x1`` and ``x2`` have different shapes, then they need to broadcast. + This uses ``numpy.asanyarray`` to convert the input. Whether this is the + desired result or not depends on the array subclass. + + """ + x1 = np.asanyarray(x1) + x2 = np.asanyarray(x2) + return np.var(x1-x2, ddof=ddof, axis=axis) + + +def stde(x1, x2, ddof=0, axis=0): + """standard deviation of error + + Parameters + ---------- + x1, x2 : array_like + The performance measure depends on the difference between these two + arrays. + axis : int + axis along which the summary statistic is calculated + + Returns + ------- + stde : ndarray or float + standard deviation of difference along given axis. + + Notes + ----- + If ``x1`` and ``x2`` have different shapes, then they need to broadcast. + This uses ``numpy.asanyarray`` to convert the input. Whether this is the + desired result or not depends on the array subclass. + + """ + x1 = np.asanyarray(x1) + x2 = np.asanyarray(x2) + return np.std(x1-x2, ddof=ddof, axis=axis) + + +def iqr(x1, x2, axis=0): + """interquartile range of error + + rounded index, no interpolations + + this could use newer numpy function instead + + Parameters + ---------- + x1, x2 : array_like + The performance measure depends on the difference between these two + arrays. + axis : int + axis along which the summary statistic is calculated + + Returns + ------- + mse : ndarray or float + mean squared error along given axis. + + Notes + ----- + If ``x1`` and ``x2`` have different shapes, then they need to broadcast. + + This uses ``numpy.asarray`` to convert the input, in contrast to the other + functions in this category. + + """ + x1 = np.asarray(x1) + x2 = np.asarray(x2) + if axis is None: + x1 = np.ravel(x1) + x2 = np.ravel(x2) + axis = 0 + xdiff = np.sort(x1 - x2) + nobs = x1.shape[axis] + idx = np.round((nobs-1) * np.array([0.25, 0.75])).astype(int) + sl = [slice(None)] * xdiff.ndim + sl[axis] = idx + iqr = np.diff(xdiff[sl], axis=axis) + iqr = np.squeeze(iqr) # drop reduced dimension + return iqr + + +# Information Criteria +# --------------------- + +def aic(llf, nobs, df_modelwc): + """Akaike information criterion + + Parameters + ---------- + llf : float + value of the loglikelihood + nobs : int + number of observations + df_modelwc : int + number of parameters including constant + + Returns + ------- + aic : float + information criterion + + References + ---------- + http://en.wikipedia.org/wiki/Akaike_information_criterion + + """ + return -2. * llf + 2. * df_modelwc + + +def aicc(llf, nobs, df_modelwc): + """Akaike information criterion (AIC) with small sample correction + + Parameters + ---------- + llf : float + value of the loglikelihood + nobs : int + number of observations + df_modelwc : int + number of parameters including constant + + Returns + ------- + aicc : float + information criterion + + References + ---------- + http://en.wikipedia.org/wiki/Akaike_information_criterion#AICc + + """ + return -2. * llf + 2. * df_modelwc * nobs / (nobs - df_modelwc - 1.) + + +def bic(llf, nobs, df_modelwc): + """Bayesian information criterion (BIC) or Schwarz criterion + + Parameters + ---------- + llf : float + value of the loglikelihood + nobs : int + number of observations + df_modelwc : int + number of parameters including constant + + Returns + ------- + bic : float + information criterion + + References + ---------- + http://en.wikipedia.org/wiki/Bayesian_information_criterion + + """ + return -2. * llf + np.log(nobs) * df_modelwc + + +def hqic(llf, nobs, df_modelwc): + """Hannan-Quinn information criterion (HQC) + + Parameters + ---------- + llf : float + value of the loglikelihood + nobs : int + number of observations + df_modelwc : int + number of parameters including constant + + Returns + ------- + hqic : float + information criterion + + References + ---------- + Wikipedia doesn't say much + + """ + return -2. * llf + 2 * np.log(np.log(nobs)) * df_modelwc + + +# IC based on residual sigma + +def aic_sigma(sigma2, nobs, df_modelwc, islog=False): + """Akaike information criterion + + Parameters + ---------- + sigma2 : float + estimate of the residual variance or determinant of Sigma_hat in the + multivariate case. If islog is true, then it is assumed that sigma + is already log-ed, for example logdetSigma. + nobs : int + number of observations + df_modelwc : int + number of parameters including constant + + Returns + ------- + aic : float + information criterion + + Notes + ----- + A constant has been dropped in comparison to the loglikelihood base + information criteria. The information criteria should be used to compare + only comparable models. + + For example, AIC is defined in terms of the loglikelihood as + + :math:`-2 llf + 2 k` + + in terms of :math:`\hat{\sigma}^2` + + :math:`log(\hat{\sigma}^2) + 2 k / n` + + in terms of the determinant of :math:`\hat{\Sigma}` + + :math:`log(\|\hat{\Sigma}\|) + 2 k / n` + + Note: In our definition we do not divide by n in the log-likelihood + version. + + TODO: Latex math + + reference for example lecture notes by Herman Bierens + + See Also + -------- + + References + ---------- + http://en.wikipedia.org/wiki/Akaike_information_criterion + + """ + if not islog: + sigma2 = np.log(sigma2) + return sigma2 + aic(0, nobs, df_modelwc) / nobs + + +def aicc_sigma(sigma2, nobs, df_modelwc, islog=False): + """Akaike information criterion (AIC) with small sample correction + + Parameters + ---------- + sigma2 : float + estimate of the residual variance or determinant of Sigma_hat in the + multivariate case. If islog is true, then it is assumed that sigma + is already log-ed, for example logdetSigma. + nobs : int + number of observations + df_modelwc : int + number of parameters including constant + + Returns + ------- + aicc : float + information criterion + + Notes + ----- + A constant has been dropped in comparison to the loglikelihood base + information criteria. These should be used to compare for comparable + models. + + References + ---------- + http://en.wikipedia.org/wiki/Akaike_information_criterion#AICc + + """ + if not islog: + sigma2 = np.log(sigma2) + return sigma2 + aicc(0, nobs, df_modelwc) / nobs + + +def bic_sigma(sigma2, nobs, df_modelwc, islog=False): + """Bayesian information criterion (BIC) or Schwarz criterion + + Parameters + ---------- + sigma2 : float + estimate of the residual variance or determinant of Sigma_hat in the + multivariate case. If islog is true, then it is assumed that sigma + is already log-ed, for example logdetSigma. + nobs : int + number of observations + df_modelwc : int + number of parameters including constant + + Returns + ------- + bic : float + information criterion + + Notes + ----- + A constant has been dropped in comparison to the loglikelihood base + information criteria. These should be used to compare for comparable + models. + + References + ---------- + http://en.wikipedia.org/wiki/Bayesian_information_criterion + + """ + if not islog: + sigma2 = np.log(sigma2) + return sigma2 + bic(0, nobs, df_modelwc) / nobs + + +def hqic_sigma(sigma2, nobs, df_modelwc, islog=False): + """Hannan-Quinn information criterion (HQC) + + Parameters + ---------- + sigma2 : float + estimate of the residual variance or determinant of Sigma_hat in the + multivariate case. If islog is true, then it is assumed that sigma + is already log-ed, for example logdetSigma. + nobs : int + number of observations + df_modelwc : int + number of parameters including constant + + Returns + ------- + hqic : float + information criterion + + Notes + ----- + A constant has been dropped in comparison to the loglikelihood base + information criteria. These should be used to compare for comparable + models. + + References + ---------- + xxx + + """ + if not islog: + sigma2 = np.log(sigma2) + return sigma2 + hqic(0, nobs, df_modelwc) / nobs + + +# from var_model.py, VAR only? separates neqs and k_vars per equation +# def fpe_sigma(): +# ((nobs + self.df_model) / self.df_resid) ** neqs * np.exp(ld) + + +__all__ = [maxabs, meanabs, medianabs, medianbias, mse, rmse, stde, vare, + aic, aic_sigma, aicc, aicc_sigma, bias, bic, bic_sigma, + hqic, hqic_sigma, iqr] diff --git a/statsmodels/tools/grouputils.py b/statsmodels/tools/grouputils.py new file mode 100644 index 0000000..8e91bba --- /dev/null +++ b/statsmodels/tools/grouputils.py @@ -0,0 +1,658 @@ +# -*- coding: utf-8 -*- +"""Tools for working with groups + +This provides several functions to work with groups and a Group class that +keeps track of the different representations and has methods to work more +easily with groups. + + +Author: Josef Perktold, +Author: Nathaniel Smith, recipe for sparse_dummies on scipy user mailing list + +Created on Tue Nov 29 15:44:53 2011 : sparse_dummies +Created on Wed Nov 30 14:28:24 2011 : combine_indices +changes: add Group class + +Notes +~~~~~ + +This reverses the class I used before, where the class was for the data and +the group was auxiliary. Here, it is only the group, no data is kept. + +sparse_dummies needs checking for corner cases, e.g. +what if a category level has zero elements? This can happen with subset + selection even if the original groups where defined as arange. + +Not all methods and options have been tried out yet after refactoring + +need more efficient loop if groups are sorted -> see GroupSorted.group_iter +""" +from __future__ import print_function +from statsmodels.compat.python import lrange, lzip, range +import numpy as np +import pandas as pd +from statsmodels.compat.numpy import npc_unique +from statsmodels.compat.pandas import sort_values +import statsmodels.tools.data as data_util +from pandas.core.index import Index, MultiIndex + + +def combine_indices(groups, prefix='', sep='.', return_labels=False): + """use np.unique to get integer group indices for product, intersection + + """ + if isinstance(groups, tuple): + groups = np.column_stack(groups) + else: + groups = np.asarray(groups) + + dt = groups.dtype + + is2d = (groups.ndim == 2) # need to store + + if is2d: + ncols = groups.shape[1] + if not groups.flags.c_contiguous: + groups = np.array(groups, order='C') + + groups_ = groups.view([('', groups.dtype)] * groups.shape[1]) + else: + groups_ = groups + + uni, uni_idx, uni_inv = npc_unique(groups_, return_index=True, + return_inverse=True) + + if is2d: + uni = uni.view(dt).reshape(-1, ncols) + + # avoiding a view would be + # for t in uni.dtype.fields.values(): + # assert (t[0] == dt) + # + # uni.dtype = dt + # uni.shape = (uni.size//ncols, ncols) + + if return_labels: + label = [(prefix+sep.join(['%s']*len(uni[0]))) % tuple(ii) + for ii in uni] + return uni_inv, uni_idx, uni, label + else: + return uni_inv, uni_idx, uni + + +# written for and used in try_covariance_grouploop.py +def group_sums(x, group, use_bincount=True): + """simple bincount version, again + + group : array, integer + assumed to be consecutive integers + + no dtype checking because I want to raise in that case + + uses loop over columns of x + + for comparison, simple python loop + """ + x = np.asarray(x) + if x.ndim == 1: + x = x[:, None] + elif x.ndim > 2 and use_bincount: + raise ValueError('not implemented yet') + + if use_bincount: + + # re-label groups or bincount takes too much memory + if np.max(group) > 2 * x.shape[0]: + group = pd.factorize(group)[0] + + return np.array([np.bincount(group, weights=x[:, col]) + for col in range(x.shape[1])]) + else: + uniques = np.unique(group) + result = np.zeros([len(uniques)] + list(x.shape[1:])) + for ii, cat in enumerate(uniques): + result[ii] = x[g == cat].sum(0) + return result + + +def group_sums_dummy(x, group_dummy): + """sum by groups given group dummy variable + + group_dummy can be either ndarray or sparse matrix + """ + if data_util._is_using_ndarray_type(group_dummy, None): + return np.dot(x.T, group_dummy) + else: # check for sparse + return x.T * group_dummy + + +def dummy_sparse(groups): + """create a sparse indicator from a group array with integer labels + + Parameters + ---------- + groups: ndarray, int, 1d (nobs,) + an array of group indicators for each observation. Group levels are + assumed to be defined as consecutive integers, i.e. range(n_groups) + where n_groups is the number of group levels. A group level with no + observations for it will still produce a column of zeros. + + Returns + ------- + indi : ndarray, int8, 2d (nobs, n_groups) + an indicator array with one row per observation, that has 1 in the + column of the group level for that observation + + Examples + -------- + + >>> g = np.array([0, 0, 2, 1, 1, 2, 0]) + >>> indi = dummy_sparse(g) + >>> indi + <7x3 sparse matrix of type '' + with 7 stored elements in Compressed Sparse Row format> + >>> indi.todense() + matrix([[1, 0, 0], + [1, 0, 0], + [0, 0, 1], + [0, 1, 0], + [0, 1, 0], + [0, 0, 1], + [1, 0, 0]], dtype=int8) + + + current behavior with missing groups + >>> g = np.array([0, 0, 2, 0, 2, 0]) + >>> indi = dummy_sparse(g) + >>> indi.todense() + matrix([[1, 0, 0], + [1, 0, 0], + [0, 0, 1], + [1, 0, 0], + [0, 0, 1], + [1, 0, 0]], dtype=int8) + + """ + from scipy import sparse + + indptr = np.arange(len(groups)+1) + data = np.ones(len(groups), dtype=np.int8) + indi = sparse.csr_matrix((data, g, indptr)) + + return indi + + +class Group(object): + + def __init__(self, group, name=''): + + # self.group = np.asarray(group) # TODO: use checks in combine_indices + self.name = name + uni, uni_idx, uni_inv = combine_indices(group) + + # TODO: rename these to something easier to remember + self.group_int, self.uni_idx, self.uni = uni, uni_idx, uni_inv + + self.n_groups = len(self.uni) + + # put this here so they can be overwritten before calling labels + self.separator = '.' + self.prefix = self.name + if self.prefix: + self.prefix = self.prefix + '=' + + # cache decorator + def counts(self): + return np.bincount(self.group_int) + + # cache_decorator + def labels(self): + # is this only needed for product of groups (intersection)? + prefix = self.prefix + uni = self.uni + sep = self.separator + + if uni.ndim > 1: + label = [(prefix+sep.join(['%s']*len(uni[0]))) % tuple(ii) + for ii in uni] + else: + label = [prefix + '%s' % ii for ii in uni] + return label + + def dummy(self, drop_idx=None, sparse=False, dtype=int): + """ + drop_idx is only available if sparse=False + + drop_idx is supposed to index into uni + """ + uni = self.uni + if drop_idx is not None: + idx = lrange(len(uni)) + del idx[drop_idx] + uni = uni[idx] + + group = self.group + + if not sparse: + return (group[:, None] == uni[None, :]).astype(dtype) + else: + return dummy_sparse(self.group_int) + + def interaction(self, other): + if isinstance(other, self.__class__): + other = other.group + return self.__class__((self, other)) + + def group_sums(self, x, use_bincount=True): + return group_sums(x, self.group_int, use_bincount=use_bincount) + + def group_demean(self, x, use_bincount=True): + nobs = float(len(x)) + means_g = group_sums(x / nobs, self.group_int, + use_bincount=use_bincount) + x_demeaned = x - means_g[self.group_int] # check reverse_index? + return x_demeaned, means_g + + +class GroupSorted(Group): + def __init__(self, group, name=''): + super(self.__class__, self).__init__(group, name=name) + + idx = (np.nonzero(np.diff(group))[0]+1).tolist() + self.groupidx = lzip([0] + idx, idx + [len(group)]) + + def group_iter(self): + for low, upp in self.groupidx: + yield slice(low, upp) + + def lag_indices(self, lag): + """return the index array for lagged values + + Warning: if k is larger then the number of observations for an + individual, then no values for that individual are returned. + + TODO: for the unbalanced case, I should get the same truncation for + the array with lag=0. From the return of lag_idx we wouldn't know + which individual is missing. + + TODO: do I want the full equivalent of lagmat in tsa? + maxlag or lag or lags. + + not tested yet + + """ + lag_idx = np.asarray(self.groupidx)[:, 1] - lag # asarray or already? + mask_ok = (lag <= lag_idx) + # still an observation that belongs to the same individual + + return lag_idx[mask_ok] + + +def _is_hierarchical(x): + """ + Checks if the first item of an array-like object is also array-like + If so, we have a MultiIndex and returns True. Else returns False. + """ + item = x[0] + # is there a better way to do this? + if isinstance(item, (list, tuple, np.ndarray, pd.Series, pd.DataFrame)): + return True + else: + return False + + +def _make_hierarchical_index(index, names): + return MultiIndex.from_tuples(*[index], names=names) + + +def _make_generic_names(index): + n_names = len(index.names) + pad = str(len(str(n_names))) # number of digits + return [("group{0:0"+pad+"}").format(i) for i in range(n_names)] + + +class Grouping(object): + def __init__(self, index, names=None): + """ + index : index-like + Can be pandas MultiIndex or Index or array-like. If array-like + and is a MultipleIndex (more than one grouping variable), + groups are expected to be in each row. E.g., [('red', 1), + ('red', 2), ('green', 1), ('green', 2)] + names : list or str, optional + The names to use for the groups. Should be a str if only + one grouping variable is used. + + Notes + ----- + If index is already a pandas Index then there is no copy. + """ + if isinstance(index, (Index, MultiIndex)): + if names is not None: + if hasattr(index, 'set_names'): # newer pandas + index.set_names(names, inplace=True) + else: + index.names = names + self.index = index + else: # array-like + if _is_hierarchical(index): + self.index = _make_hierarchical_index(index, names) + else: + self.index = Index(index, name=names) + if names is None: + names = _make_generic_names(self.index) + if hasattr(self.index, 'set_names'): + self.index.set_names(names, inplace=True) + else: + self.index.names = names + + self.nobs = len(self.index) + self.nlevels = len(self.index.names) + self.slices = None + + @property + def index_shape(self): + if hasattr(self.index, 'levshape'): + return self.index.levshape + else: + return self.index.shape + + @property + def levels(self): + if hasattr(self.index, 'levels'): + return self.index.levels + else: + return pd.Categorical(self.index).levels + + @property + def labels(self): + # this was index_int, but that's not a very good name... + if hasattr(self.index, 'labels'): + return self.index.labels + else: # pandas version issue here + # Compat code for the labels -> codes change in pandas 0.15 + # FIXME: use .codes directly when we don't want to support + # pandas < 0.15 + tmp = pd.Categorical(self.index) + try: + labl = tmp.codes + except AttributeError: + labl = tmp.labels # Old pandsd + + return labl[None] + + @property + def group_names(self): + return self.index.names + + def reindex(self, index=None, names=None): + """ + Resets the index in-place. + """ + # NOTE: this isn't of much use if the rest of the data doesn't change + # This needs to reset cache + if names is None: + names = self.group_names + self = Grouping(index, names) + + def get_slices(self, level=0): + """ + Sets the slices attribute to be a list of indices of the sorted + groups for the first index level. I.e., self.slices[0] is the + index where each observation is in the first (sorted) group. + """ + # TODO: refactor this + groups = self.index.get_level_values(level).unique() + groups.sort() + if isinstance(self.index, MultiIndex): + self.slices = [self.index.get_loc_level(x, level=level)[0] + for x in groups] + else: + self.slices = [self.index.get_loc(x) for x in groups] + + def count_categories(self, level=0): + """ + Sets the attribute counts to equal the bincount of the (integer-valued) + labels. + """ + # TODO: refactor this not to set an attribute. Why would we do this? + self.counts = np.bincount(self.labels[level]) + + def check_index(self, is_sorted=True, unique=True, index=None): + """Sanity checks""" + if not index: + index = self.index + if is_sorted: + test = pd.DataFrame(lrange(len(index)), index=index) + test_sorted = test.sort() + if not test.index.equals(test_sorted.index): + raise Exception('Data is not be sorted') + if unique: + if len(index) != len(index.unique()): + raise Exception('Duplicate index entries') + + def sort(self, data, index=None): + """Applies a (potentially hierarchical) sort operation on a numpy array + or pandas series/dataframe based on the grouping index or a + user-supplied index. Returns an object of the same type as the + original data as well as the matching (sorted) Pandas index. + """ + + if index is None: + index = self.index + if data_util._is_using_ndarray_type(data, None): + if data.ndim == 1: + out = pd.Series(data, index=index, copy=True) + out = out.sort_index() + else: + out = pd.DataFrame(data, index=index) + out = out.sort_index(inplace=False) # copies + return np.array(out), out.index + elif data_util._is_using_pandas(data, None): + out = data + out = out.reindex(index) # copies? + out = out.sort_index() + return out, out.index + else: + msg = 'data must be a Numpy array or a Pandas Series/DataFrame' + raise ValueError(msg) + + def transform_dataframe(self, dataframe, function, level=0, **kwargs): + """Apply function to each column, by group + Assumes that the dataframe already has a proper index""" + if dataframe.shape[0] != self.nobs: + raise Exception('dataframe does not have the same shape as index') + out = dataframe.groupby(level=level).apply(function, **kwargs) + if 1 in out.shape: + return np.ravel(out) + else: + return np.array(out) + + def transform_array(self, array, function, level=0, **kwargs): + """Apply function to each column, by group + """ + if array.shape[0] != self.nobs: + raise Exception('array does not have the same shape as index') + dataframe = pd.DataFrame(array, index=self.index) + return self.transform_dataframe(dataframe, function, level=level, + **kwargs) + + def transform_slices(self, array, function, level=0, **kwargs): + """Apply function to each group. Similar to transform_array but does + not coerce array to a DataFrame and back and only works on a 1D or 2D + numpy array. function is called function(group, group_idx, **kwargs). + """ + array = np.asarray(array) + if array.shape[0] != self.nobs: + raise Exception('array does not have the same shape as index') + # always reset because level is given. need to refactor this. + self.get_slices(level=level) + processed = [] + for s in self.slices: + if array.ndim == 2: + subset = array[s, :] + elif array.ndim == 1: + subset = array[s] + processed.append(function(subset, s, **kwargs)) + processed = np.array(processed) + return processed.reshape(-1, processed.shape[-1]) + + # TODO: this isn't general needs to be a PanelGrouping object + def dummies_time(self): + self.dummy_sparse(level=1) + return self._dummies + + def dummies_groups(self, level=0): + self.dummy_sparse(level=level) + return self._dummies + + def dummy_sparse(self, level=0): + """create a sparse indicator from a group array with integer labels + + Parameters + ---------- + groups: ndarray, int, 1d (nobs,) an array of group indicators for each + observation. Group levels are assumed to be defined as consecutive + integers, i.e. range(n_groups) where n_groups is the number of + group levels. A group level with no observations for it will still + produce a column of zeros. + + Returns + ------- + indi : ndarray, int8, 2d (nobs, n_groups) + an indicator array with one row per observation, that has 1 in the + column of the group level for that observation + + Examples + -------- + + >>> g = np.array([0, 0, 2, 1, 1, 2, 0]) + >>> indi = dummy_sparse(g) + >>> indi + <7x3 sparse matrix of type '' + with 7 stored elements in Compressed Sparse Row format> + >>> indi.todense() + matrix([[1, 0, 0], + [1, 0, 0], + [0, 0, 1], + [0, 1, 0], + [0, 1, 0], + [0, 0, 1], + [1, 0, 0]], dtype=int8) + + + current behavior with missing groups + >>> g = np.array([0, 0, 2, 0, 2, 0]) + >>> indi = dummy_sparse(g) + >>> indi.todense() + matrix([[1, 0, 0], + [1, 0, 0], + [0, 0, 1], + [1, 0, 0], + [0, 0, 1], + [1, 0, 0]], dtype=int8) + """ + from scipy import sparse + groups = self.labels[level] + indptr = np.arange(len(groups)+1) + data = np.ones(len(groups), dtype=np.int8) + self._dummies = sparse.csr_matrix((data, groups, indptr)) + + +if __name__ == '__main__': + + # ---------- examples combine_indices + from numpy.testing import assert_equal + + np.random.seed(985367) + groups = np.random.randint(0, 2, size=(10, 2)) + uv, ux, u, label = combine_indices(groups, return_labels=True) + uv, ux, u, label = combine_indices(groups, prefix='g1,g2=', sep=',', + return_labels=True) + + group0 = np.array(['sector0', 'sector1'])[groups[:, 0]] + group1 = np.array(['region0', 'region1'])[groups[:, 1]] + uv, ux, u, label = combine_indices((group0, group1), + prefix='sector,region=', + sep=',', + return_labels=True) + uv, ux, u, label = combine_indices((group0, group1), prefix='', sep='.', + return_labels=True) + group_joint = np.array(label)[uv] + group_joint_expected = np.array(['sector1.region0', 'sector0.region1', + 'sector0.region0', 'sector0.region1', + 'sector1.region1', 'sector0.region0', + 'sector1.region0', 'sector1.region0', + 'sector0.region1', 'sector0.region0'], + dtype='|S15') + assert_equal(group_joint, group_joint_expected) + + """ + >>> uv + array([2, 1, 0, 0, 1, 0, 2, 0, 1, 0]) + >>> label + ['sector0.region0', 'sector1.region0', 'sector1.region1'] + >>> np.array(label)[uv] + array(['sector1.region1', 'sector1.region0', 'sector0.region0', + 'sector0.region0', 'sector1.region0', 'sector0.region0', + 'sector1.region1', 'sector0.region0', 'sector1.region0', + 'sector0.region0'], + dtype='|S15') + >>> np.column_stack((group0, group1)) + array([['sector1', 'region1'], + ['sector1', 'region0'], + ['sector0', 'region0'], + ['sector0', 'region0'], + ['sector1', 'region0'], + ['sector0', 'region0'], + ['sector1', 'region1'], + ['sector0', 'region0'], + ['sector1', 'region0'], + ['sector0', 'region0']], + dtype='|S7') + """ + + # ------------- examples sparse_dummies + from scipy import sparse + + g = np.array([0, 0, 1, 2, 1, 1, 2, 0]) + u = lrange(3) + indptr = np.arange(len(g)+1) + data = np.ones(len(g), dtype=np.int8) + a = sparse.csr_matrix((data, g, indptr)) + print(a.todense()) + print(np.all(a.todense() == (g[:, None] == np.arange(3)).astype(int))) + + x = np.arange(len(g)*3).reshape(len(g), 3, order='F') + + print('group means') + print(x.T * a) + print(np.dot(x.T, g[:, None] == np.arange(3))) + print(np.array([np.bincount(g, weights=x[:, col]) for col in range(3)])) + for cat in u: + print(x[g == cat].sum(0)) + for cat in u: + x[g == cat].sum(0) + + cc = sparse.csr_matrix([[0, 1, 0, 1, 0, 0, 0, 0, 0], + [1, 0, 1, 0, 1, 0, 0, 0, 0], + [0, 1, 0, 0, 0, 1, 0, 0, 0], + [1, 0, 0, 0, 1, 0, 1, 0, 0], + [0, 1, 0, 1, 0, 1, 0, 1, 0], + [0, 0, 1, 0, 1, 0, 0, 0, 1], + [0, 0, 0, 1, 0, 0, 0, 1, 0], + [0, 0, 0, 0, 1, 0, 1, 0, 1], + [0, 0, 0, 0, 0, 1, 0, 1, 0]]) + + # ------------- groupsums + print(group_sums(np.arange(len(g)*3*2).reshape(len(g), 3, 2), g, + use_bincount=False).T) + print(group_sums(np.arange(len(g)*3*2).reshape(len(g), 3, 2)[:, :, 0], g)) + print(group_sums(np.arange(len(g)*3*2).reshape(len(g), 3, 2)[:, :, 1], g)) + + # ------------- examples class + x = np.arange(len(g)*3).reshape(len(g), 3, order='F') + mygroup = Group(g) + print(mygroup.group_int) + print(mygroup.group_sums(x)) + print(mygroup.labels()) diff --git a/statsmodels/tools/linalg.py b/statsmodels/tools/linalg.py new file mode 100644 index 0000000..55cde2b --- /dev/null +++ b/statsmodels/tools/linalg.py @@ -0,0 +1,287 @@ +'''local, adjusted version from scipy.linalg.basic.py + + +changes: +The only changes are that additional results are returned + +''' +from __future__ import print_function +from statsmodels.compat.python import lmap, range +import numpy as np +from scipy.linalg import svd as decomp_svd +from scipy.linalg.lapack import get_lapack_funcs +from numpy import asarray, zeros, sum, conjugate, dot, transpose +import numpy +from numpy import asarray_chkfinite, single +from numpy.linalg import LinAlgError + + +### Linear Least Squares + +def lstsq(a, b, cond=None, overwrite_a=0, overwrite_b=0): + """Compute least-squares solution to equation :m:`a x = b` + + Compute a vector x such that the 2-norm :m:`|b - a x|` is minimised. + + Parameters + ---------- + a : array, shape (M, N) + b : array, shape (M,) or (M, K) + cond : float + Cutoff for 'small' singular values; used to determine effective + rank of a. Singular values smaller than rcond*largest_singular_value + are considered zero. + overwrite_a : boolean + Discard data in a (may enhance performance) + overwrite_b : boolean + Discard data in b (may enhance performance) + + Returns + ------- + x : array, shape (N,) or (N, K) depending on shape of b + Least-squares solution + residues : array, shape () or (1,) or (K,) + Sums of residues, squared 2-norm for each column in :m:`b - a x` + If rank of matrix a is < N or > M this is an empty array. + If b was 1-d, this is an (1,) shape array, otherwise the shape is (K,) + rank : integer + Effective rank of matrix a + s : array, shape (min(M,N),) + Singular values of a. The condition number of a is abs(s[0]/s[-1]). + + Raises LinAlgError if computation does not converge + + """ + a1, b1 = lmap(asarray_chkfinite, (a, b)) + if a1.ndim != 2: + raise ValueError('expected matrix') + m, n = a1.shape + if b1.ndim == 2: + nrhs = b1.shape[1] + else: + nrhs = 1 + if m != b1.shape[0]: + raise ValueError('incompatible dimensions') + gelss, = get_lapack_funcs(('gelss',), (a1, b1)) + if n > m: + # need to extend b matrix as it will be filled with + # a larger solution matrix + b2 = zeros((n, nrhs), dtype=gelss.dtype) + if b1.ndim == 2: + b2[:m, :] = b1 + else: + b2[:m, 0] = b1 + b1 = b2 + overwrite_a = overwrite_a or (a1 is not a and not hasattr(a, '__array__')) + overwrite_b = overwrite_b or (b1 is not b and not hasattr(b, '__array__')) + + if gelss.module_name[:7] == 'flapack': + + # get optimal work array + work = gelss(a1, b1, lwork=-1)[4] + lwork = work[0].real.astype(np.int) + v, x, s, rank, work, info = gelss( + a1, b1, cond=cond, lwork=lwork, overwrite_a=overwrite_a, + overwrite_b=overwrite_b) + + else: + raise NotImplementedError('calling gelss from %s' % + gelss.module_name) + if info > 0: + raise LinAlgError("SVD did not converge in Linear Least Squares") + if info < 0: + raise ValueError('illegal value in %-th argument of ' + 'internal gelss' % -info) + resids = asarray([], dtype=x.dtype) + if n < m: + x1 = x[:n] + if rank == n: + resids = sum(x[n:]**2, axis=0) + x = x1 + return x, resids, rank, s + + +def pinv(a, cond=None, rcond=None): + """Compute the (Moore-Penrose) pseudo-inverse of a matrix. + + Calculate a generalized inverse of a matrix using a least-squares + solver. + + Parameters + ---------- + a : array, shape (M, N) + Matrix to be pseudo-inverted + cond, rcond : float + Cutoff for 'small' singular values in the least-squares solver. + Singular values smaller than rcond*largest_singular_value are + considered zero. + + Returns + ------- + B : array, shape (N, M) + + Raises LinAlgError if computation does not converge + + Examples + -------- + >>> from numpy import * + >>> a = random.randn(9, 6) + >>> B = linalg.pinv(a) + >>> allclose(a, dot(a, dot(B, a))) + True + >>> allclose(B, dot(B, dot(a, B))) + True + + """ + a = asarray_chkfinite(a) + b = numpy.identity(a.shape[0], dtype=a.dtype) + if rcond is not None: + cond = rcond + return lstsq(a, b, cond=cond)[0] + + +eps = numpy.finfo(float).eps +feps = numpy.finfo(single).eps + +_array_precision = {'f': 0, 'd': 1, 'F': 0, 'D': 1} + + +def pinv2(a, cond=None, rcond=None): + """Compute the (Moore-Penrose) pseudo-inverse of a matrix. + + Calculate a generalized inverse of a matrix using its + singular-value decomposition and including all 'large' singular + values. + + Parameters + ---------- + a : array, shape (M, N) + Matrix to be pseudo-inverted + cond, rcond : float or None + Cutoff for 'small' singular values. + Singular values smaller than rcond*largest_singular_value are + considered zero. + + If None or -1, suitable machine precision is used. + + Returns + ------- + B : array, shape (N, M) + + Raises LinAlgError if SVD computation does not converge + + Examples + -------- + >>> from numpy import * + >>> a = random.randn(9, 6) + >>> B = linalg.pinv2(a) + >>> allclose(a, dot(a, dot(B, a))) + True + >>> allclose(B, dot(B, dot(a, B))) + True + + """ + a = asarray_chkfinite(a) + u, s, vh = decomp_svd(a) + t = u.dtype.char + if rcond is not None: + cond = rcond + if cond in [None, -1]: + cond = {0: feps*1e3, 1: eps*1e6}[_array_precision[t]] + m, n = a.shape + cutoff = cond*numpy.maximum.reduce(s) + psigma = zeros((m, n), t) + for i in range(len(s)): + if s[i] > cutoff: + psigma[i, i] = 1.0/conjugate(s[i]) + # XXX: use lapack/blas routines for dot + return transpose(conjugate(dot(dot(u, psigma), vh))) + + +def logdet_symm(m, check_symm=False): + """ + Return log(det(m)) asserting positive definiteness of m. + + Parameters + ---------- + m : array-like + 2d array that is positive-definite (and symmetric) + + Returns + ------- + logdet : float + The log-determinant of m. + """ + from scipy import linalg + if check_symm: + if not np.all(m == m.T): # would be nice to short-circuit check + raise ValueError("m is not symmetric.") + c, _ = linalg.cho_factor(m, lower=True) + return 2*np.sum(np.log(c.diagonal())) + + +def stationary_solve(r, b): + """ + Solve a linear system for a Toeplitz correlation matrix. + + A Toeplitz correlation matrix represents the covariance of a + stationary series with unit variance. + + Parameters + ---------- + r : array-like + A vector describing the coefficient matrix. r[0] is the first + band next to the diagonal, r[1] is the second band, etc. + b : array-like + The right-hand side for which we are solving, i.e. we solve + Tx = b and return b, where T is the Toeplitz coefficient matrix. + + Returns + ------- + The solution to the linear system. + """ + + db = r[0:1] + + dim = b.ndim + if b.ndim == 1: + b = b[:, None] + x = b[0:1,:] + + for j in range(1, len(b)): + rf = r[0:j][::-1] + a = (b[j,:] - np.dot(rf, x)) / (1 - np.dot(rf, db[::-1])) + z = x - np.outer(db[::-1], a) + x = np.concatenate((z, a[None, :]), axis=0) + + if j == len(b) - 1: + break + + rn = r[j] + a = (rn - np.dot(rf, db)) / (1 - np.dot(rf, db[::-1])) + z = db - a*db[::-1] + db = np.concatenate((z, np.r_[a])) + + if dim == 1: + x = x[:, 0] + + return x + + + +if __name__ == '__main__': + #for checking only, + #Note on Windows32: + # linalg doesn't always produce the same results in each call + a0 = np.random.randn(100,10) + b0 = a0.sum(1)[:, None] + np.random.randn(100,3) + lstsq(a0,b0) + pinv(a0) + pinv2(a0) + x = pinv(a0) + x2=scipy.linalg.pinv(a0) + print(np.max(np.abs(x-x2))) + x = pinv2(a0) + x2 = scipy.linalg.pinv2(a0) + print(np.max(np.abs(x-x2))) + diff --git a/statsmodels/tools/numdiff.py b/statsmodels/tools/numdiff.py new file mode 100644 index 0000000..ae78a2a --- /dev/null +++ b/statsmodels/tools/numdiff.py @@ -0,0 +1,460 @@ +"""numerical differentiation function, gradient, Jacobian, and Hessian + +Author : josef-pkt +License : BSD + +Notes +----- +These are simple forward differentiation, so that we have them available +without dependencies. + +* Jacobian should be faster than numdifftools because it doesn't use loop over + observations. +* numerical precision will vary and depend on the choice of stepsizes +""" + +# TODO: +# * some cleanup +# * check numerical accuracy (and bugs) with numdifftools and analytical +# derivatives +# - linear least squares case: (hess - 2*X'X) is 1e-8 or so +# - gradient and Hessian agree with numdifftools when evaluated away from +# minimum +# - forward gradient, Jacobian evaluated at minimum is inaccurate, centered +# (+/- epsilon) is ok +# * dot product of Jacobian is different from Hessian, either wrong example or +# a bug (unlikely), or a real difference +# +# +# What are the conditions that Jacobian dotproduct and Hessian are the same? +# +# See also: +# +# BHHH: Greene p481 17.4.6, MLE Jacobian = d loglike / d beta , where loglike +# is vector for each observation +# see also example 17.4 when J'J is very different from Hessian +# also does it hold only at the minimum, what's relationship to covariance +# of Jacobian matrix +# http://projects.scipy.org/scipy/ticket/1157 +# http://en.wikipedia.org/wiki/Levenberg%E2%80%93Marquardt_algorithm +# objective: sum((y-f(beta,x)**2), Jacobian = d f/d beta +# and not d objective/d beta as in MLE Greene +# similar: http://crsouza.blogspot.com/2009/11/neural-network-learning-by-levenberg_18.html#hessian +# +# in example: if J = d x*beta / d beta then J'J == X'X +# similar to http://en.wikipedia.org/wiki/Levenberg%E2%80%93Marquardt_algorithm +from __future__ import print_function +from statsmodels.compat.python import range +import numpy as np + +# NOTE: we only do double precision internally so far +EPS = np.MachAr().eps + +_hessian_docs = """ + Calculate Hessian with finite difference derivative approximation + + Parameters + ---------- + x : array_like + value at which function derivative is evaluated + f : function + function of one array f(x, `*args`, `**kwargs`) + epsilon : float or array-like, optional + Stepsize used, if None, then stepsize is automatically chosen + according to EPS**(1/%(scale)s)*x. + args : tuple + Arguments for function `f`. + kwargs : dict + Keyword arguments for function `f`. + %(extra_params)s + + Returns + ------- + hess : ndarray + array of partial second derivatives, Hessian + %(extra_returns)s + + Notes + ----- + Equation (%(equation_number)s) in Ridout. Computes the Hessian as:: + + %(equation)s + + where e[j] is a vector with element j == 1 and the rest are zero and + d[i] is epsilon[i]. + + References + ----------: + + Ridout, M.S. (2009) Statistical applications of the complex-step method + of numerical differentiation. The American Statistician, 63, 66-74 +""" + + +def _get_epsilon(x, s, epsilon, n): + if epsilon is None: + h = EPS**(1. / s) * np.maximum(np.abs(x), 0.1) + else: + if np.isscalar(epsilon): + h = np.empty(n) + h.fill(epsilon) + else: # pragma : no cover + h = np.asarray(epsilon) + if h.shape != x.shape: + raise ValueError("If h is not a scalar it must have the same" + " shape as x.") + return h + + +def approx_fprime(x, f, epsilon=None, args=(), kwargs={}, centered=False): + ''' + Gradient of function, or Jacobian if function f returns 1d array + + Parameters + ---------- + x : array + parameters at which the derivative is evaluated + f : function + `f(*((x,)+args), **kwargs)` returning either one value or 1d array + epsilon : float, optional + Stepsize, if None, optimal stepsize is used. This is EPS**(1/2)*x for + `centered` == False and EPS**(1/3)*x for `centered` == True. + args : tuple + Tuple of additional arguments for function `f`. + kwargs : dict + Dictionary of additional keyword arguments for function `f`. + centered : bool + Whether central difference should be returned. If not, does forward + differencing. + + Returns + ------- + grad : array + gradient or Jacobian + + Notes + ----- + If f returns a 1d array, it returns a Jacobian. If a 2d array is returned + by f (e.g., with a value for each observation), it returns a 3d array + with the Jacobian of each observation with shape xk x nobs x xk. I.e., + the Jacobian of the first observation would be [:, 0, :] + ''' + n = len(x) + # TODO: add scaled stepsize + f0 = f(*((x,)+args), **kwargs) + dim = np.atleast_1d(f0).shape # it could be a scalar + grad = np.zeros((n,) + dim, np.promote_types(float, x.dtype)) + ei = np.zeros((n,), float) + if not centered: + epsilon = _get_epsilon(x, 2, epsilon, n) + for k in range(n): + ei[k] = epsilon[k] + grad[k, :] = (f(*((x+ei,) + args), **kwargs) - f0)/epsilon[k] + ei[k] = 0.0 + else: + epsilon = _get_epsilon(x, 3, epsilon, n) / 2. + for k in range(len(x)): + ei[k] = epsilon[k] + grad[k, :] = (f(*((x+ei,)+args), **kwargs) - + f(*((x-ei,)+args), **kwargs))/(2 * epsilon[k]) + ei[k] = 0.0 + return grad.squeeze().T + + +def approx_fprime_cs(x, f, epsilon=None, args=(), kwargs={}): + ''' + Calculate gradient or Jacobian with complex step derivative approximation + + Parameters + ---------- + x : array + parameters at which the derivative is evaluated + f : function + `f(*((x,)+args), **kwargs)` returning either one value or 1d array + epsilon : float, optional + Stepsize, if None, optimal stepsize is used. Optimal step-size is + EPS*x. See note. + args : tuple + Tuple of additional arguments for function `f`. + kwargs : dict + Dictionary of additional keyword arguments for function `f`. + + Returns + ------- + partials : ndarray + array of partial derivatives, Gradient or Jacobian + + Notes + ----- + The complex-step derivative has truncation error O(epsilon**2), so + truncation error can be eliminated by choosing epsilon to be very small. + The complex-step derivative avoids the problem of round-off error with + small epsilon because there is no subtraction. + ''' + # From Guilherme P. de Freitas, numpy mailing list + # May 04 2010 thread "Improvement of performance" + # http://mail.scipy.org/pipermail/numpy-discussion/2010-May/050250.html + n = len(x) + epsilon = _get_epsilon(x, 1, epsilon, n) + increments = np.identity(n) * 1j * epsilon + # TODO: see if this can be vectorized, but usually dim is small + partials = [f(x+ih, *args, **kwargs).imag / epsilon[i] + for i, ih in enumerate(increments)] + return np.array(partials).T + + +def approx_hess_cs(x, f, epsilon=None, args=(), kwargs={}): + '''Calculate Hessian with complex-step derivative approximation + + Parameters + ---------- + x : array_like + value at which function derivative is evaluated + f : function + function of one array f(x) + epsilon : float + stepsize, if None, then stepsize is automatically chosen + + Returns + ------- + hess : ndarray + array of partial second derivatives, Hessian + + Notes + ----- + based on equation 10 in + M. S. RIDOUT: Statistical Applications of the Complex-step Method + of Numerical Differentiation, University of Kent, Canterbury, Kent, U.K. + + The stepsize is the same for the complex and the finite difference part. + ''' + # TODO: might want to consider lowering the step for pure derivatives + n = len(x) + h = _get_epsilon(x, 3, epsilon, n) + ee = np.diag(h) + hess = np.outer(h, h) + + n = len(x) + + for i in range(n): + for j in range(i, n): + hess[i, j] = (f(*((x + 1j*ee[i, :] + ee[j, :],) + args), **kwargs) + - f(*((x + 1j*ee[i, :] - ee[j, :],)+args), + **kwargs)).imag/2./hess[i, j] + hess[j, i] = hess[i, j] + + return hess +approx_hess_cs.__doc__ = (("Calculate Hessian with complex-step derivative " + "approximation\n") + + "\n".join(_hessian_docs.split("\n")[1:]) % + dict(scale="3", extra_params="", + extra_returns="", equation_number="10", + equation=("1/(2*d_j*d_k) * " + "imag(f(x + i*d[j]*e[j] + " + "d[k]*e[k]) -\n" + " " + "f(x + i*d[j]*e[j] - d[k]*e[k]))\n")) + ) + + +def approx_hess1(x, f, epsilon=None, args=(), kwargs={}, return_grad=False): + n = len(x) + h = _get_epsilon(x, 3, epsilon, n) + ee = np.diag(h) + + f0 = f(*((x,)+args), **kwargs) + # Compute forward step + g = np.zeros(n) + for i in range(n): + g[i] = f(*((x+ee[i, :],)+args), **kwargs) + + hess = np.outer(h, h) # this is now epsilon**2 + # Compute "double" forward step + for i in range(n): + for j in range(i, n): + hess[i, j] = (f(*((x + ee[i, :] + ee[j, :],) + args), **kwargs) - + g[i] - g[j] + f0)/hess[i, j] + hess[j, i] = hess[i, j] + if return_grad: + grad = (g - f0)/h + return hess, grad + else: + return hess + +approx_hess1.__doc__ = _hessian_docs % dict(scale="3", +extra_params="""return_grad : bool + Whether or not to also return the gradient +""", +extra_returns="""grad : nparray + Gradient if return_grad == True +""", +equation_number="7", +equation="""1/(d_j*d_k) * ((f(x + d[j]*e[j] + d[k]*e[k]) - f(x + d[j]*e[j]))) +""") + + +def approx_hess2(x, f, epsilon=None, args=(), kwargs={}, return_grad=False): + # + n = len(x) + # NOTE: ridout suggesting using eps**(1/4)*theta + h = _get_epsilon(x, 3, epsilon, n) + ee = np.diag(h) + f0 = f(*((x,)+args), **kwargs) + # Compute forward step + g = np.zeros(n) + gg = np.zeros(n) + for i in range(n): + g[i] = f(*((x+ee[i, :],)+args), **kwargs) + gg[i] = f(*((x-ee[i, :],)+args), **kwargs) + + hess = np.outer(h, h) # this is now epsilon**2 + # Compute "double" forward step + for i in range(n): + for j in range(i, n): + hess[i, j] = (f(*((x + ee[i, :] + ee[j, :],) + args), **kwargs) - + g[i] - g[j] + f0 + + f(*((x - ee[i, :] - ee[j, :],) + args), **kwargs) - + gg[i] - gg[j] + f0)/(2 * hess[i, j]) + hess[j, i] = hess[i, j] + if return_grad: + grad = (g - f0)/h + return hess, grad + else: + return hess + + +approx_hess2.__doc__ = _hessian_docs % dict(scale="3", +extra_params="""return_grad : bool + Whether or not to also return the gradient +""", +extra_returns="""grad : nparray + Gradient if return_grad == True +""", +equation_number="8", +equation = """1/(2*d_j*d_k) * ((f(x + d[j]*e[j] + d[k]*e[k]) - f(x + d[j]*e[j])) - + (f(x + d[k]*e[k]) - f(x)) + + (f(x - d[j]*e[j] - d[k]*e[k]) - f(x + d[j]*e[j])) - + (f(x - d[k]*e[k]) - f(x))) +""") + + +def approx_hess3(x, f, epsilon=None, args=(), kwargs={}): + n = len(x) + h = _get_epsilon(x, 4, epsilon, n) + ee = np.diag(h) + hess = np.outer(h,h) + + for i in range(n): + for j in range(i, n): + hess[i, j] = (f(*((x + ee[i, :] + ee[j, :],) + args), **kwargs) + - f(*((x + ee[i, :] - ee[j, :],) + args), **kwargs) + - (f(*((x - ee[i, :] + ee[j, :],) + args), **kwargs) + - f(*((x - ee[i, :] - ee[j, :],) + args), **kwargs),) + )/(4.*hess[i, j]) + hess[j, i] = hess[i, j] + return hess + +approx_hess3.__doc__ = _hessian_docs % dict(scale="4", extra_params="", + extra_returns="", + equation_number="9", +equation = """1/(4*d_j*d_k) * ((f(x + d[j]*e[j] + d[k]*e[k]) - f(x + d[j]*e[j] + - d[k]*e[k])) - + (f(x - d[j]*e[j] + d[k]*e[k]) - f(x - d[j]*e[j] + - d[k]*e[k]))""") +approx_hess = approx_hess3 +approx_hess.__doc__ += "\n This is an alias for approx_hess3" + + +if __name__ == '__main__': #pragma : no cover + import statsmodels.api as sm + from scipy.optimize.optimize import approx_fhess_p + import numpy as np + + data = sm.datasets.spector.load() + data.exog = sm.add_constant(data.exog, prepend=False) + mod = sm.Probit(data.endog, data.exog) + res = mod.fit(method="newton") + test_params = [1,0.25,1.4,-7] + llf = mod.loglike + score = mod.score + hess = mod.hessian + + # below is Josef's scratch work + + def approx_hess_cs_old(x, func, args=(), h=1.0e-20, epsilon=1e-6): + def grad(x): + return approx_fprime_cs(x, func, args=args, h=1.0e-20) + + #Hessian from gradient: + return (approx_fprime(x, grad, epsilon) + + approx_fprime(x, grad, -epsilon))/2. + + + def fun(beta, x): + return np.dot(x, beta).sum(0) + + def fun1(beta, y, x): + #print(beta.shape, x.shape) + xb = np.dot(x, beta) + return (y-xb)**2 #(xb-xb.mean(0))**2 + + def fun2(beta, y, x): + #print(beta.shape, x.shape) + return fun1(beta, y, x).sum(0) + + nobs = 200 + x = np.arange(nobs*3).reshape(nobs,-1) + x = np.random.randn(nobs,3) + + xk = np.array([1,2,3]) + xk = np.array([1.,1.,1.]) + #xk = np.zeros(3) + beta = xk + y = np.dot(x, beta) + 0.1*np.random.randn(nobs) + xk = np.dot(np.linalg.pinv(x),y) + + + epsilon = 1e-6 + args = (y,x) + from scipy import optimize + xfmin = optimize.fmin(fun2, (0,0,0), args) + print(approx_fprime((1,2,3),fun,epsilon,x)) + jac = approx_fprime(xk,fun1,epsilon,args) + jacmin = approx_fprime(xk,fun1,-epsilon,args) + #print(jac) + print(jac.sum(0)) + print('\nnp.dot(jac.T, jac)') + print(np.dot(jac.T, jac)) + print('\n2*np.dot(x.T, x)') + print(2*np.dot(x.T, x)) + jac2 = (jac+jacmin)/2. + print(np.dot(jac2.T, jac2)) + + #he = approx_hess(xk,fun2,epsilon,*args) + print(approx_hess_old(xk,fun2,1e-3,args)) + he = approx_hess_old(xk,fun2,None,args) + print('hessfd') + print(he) + print('epsilon =', None) + print(he[0] - 2*np.dot(x.T, x)) + + for eps in [1e-3,1e-4,1e-5,1e-6]: + print('eps =', eps) + print(approx_hess_old(xk,fun2,eps,args)[0] - 2*np.dot(x.T, x)) + + hcs2 = approx_hess_cs(xk,fun2,args=args) + print('hcs2') + print(hcs2 - 2*np.dot(x.T, x)) + + hfd3 = approx_hess(xk,fun2,args=args) + print('hfd3') + print(hfd3 - 2*np.dot(x.T, x)) + + import numdifftools as nd + hnd = nd.Hessian(lambda a: fun2(a, y, x)) + hessnd = hnd(xk) + print('numdiff') + print(hessnd - 2*np.dot(x.T, x)) + #assert_almost_equal(hessnd, he[0]) + gnd = nd.Gradient(lambda a: fun2(a, y, x)) + gradnd = gnd(xk) diff --git a/statsmodels/tools/parallel.py b/statsmodels/tools/parallel.py new file mode 100644 index 0000000..ac12dd4 --- /dev/null +++ b/statsmodels/tools/parallel.py @@ -0,0 +1,75 @@ +"""Parallel utility function using joblib + +copied from https://github.com/mne-tools/mne-python + +Author: Alexandre Gramfort +License: Simplified BSD + +changes for statsmodels (Josef Perktold) +- try import from joblib directly, (doesn't import all of sklearn) + +""" +from __future__ import print_function + +from statsmodels.tools.sm_exceptions import (ModuleUnavailableWarning, + module_unavailable_doc) + + +def parallel_func(func, n_jobs, verbose=5): + """Return parallel instance with delayed function + + Util function to use joblib only if available + + Parameters + ---------- + func: callable + A function + n_jobs: int + Number of jobs to run in parallel + verbose: int + Verbosity level + + Returns + ------- + parallel: instance of joblib.Parallel or list + The parallel object + my_func: callable + func if not parallel or delayed(func) + n_jobs: int + Number of jobs >= 0 + + Examples + -------- + >>> from math import sqrt + >>> from statsmodels.tools.parallel import parallel_func + >>> parallel, p_func, n_jobs = parallel_func(sqrt, n_jobs=-1, verbose=0) + >>> print(n_jobs) + >>> parallel(p_func(i**2) for i in range(10)) + """ + try: + try: + from joblib import Parallel, delayed + except ImportError: + from sklearn.externals.joblib import Parallel, delayed + + parallel = Parallel(n_jobs, verbose=verbose) + my_func = delayed(func) + + if n_jobs == -1: + try: + import multiprocessing + n_jobs = multiprocessing.cpu_count() + except (ImportError, NotImplementedError): + import warnings + warnings.warn(module_unavailable_doc.format('multiprocessing'), + ModuleUnavailableWarning) + n_jobs = 1 + + except ImportError: + import warnings + warnings.warn(module_unavailable_doc.format('joblib'), + ModuleUnavailableWarning) + n_jobs = 1 + my_func = func + parallel = list + return parallel, my_func, n_jobs diff --git a/statsmodels/tools/print_version.py b/statsmodels/tools/print_version.py new file mode 100755 index 0000000..695db3c --- /dev/null +++ b/statsmodels/tools/print_version.py @@ -0,0 +1,270 @@ +#!/usr/bin/env python +from __future__ import print_function +from statsmodels.compat.python import reduce +import sys +from os.path import dirname + + +def safe_version(module, attr='__version__', *others): + if not isinstance(attr, list): + attr = [attr] + try: + return reduce(getattr, [module] + attr) + except AttributeError: + if others: + return safe_version(module, others[0], *others[1:]) + return "Cannot detect version" + + +def _show_versions_only(): + print("\nINSTALLED VERSIONS") + print("------------------") + print("Python: %d.%d.%d.%s.%s" % sys.version_info[:]) + try: + import os + (sysname, nodename, release, version, machine) = os.uname() + print("OS: %s %s %s %s" % (sysname, release, version, machine)) + print("byteorder: %s" % sys.byteorder) + print("LC_ALL: %s" % os.environ.get('LC_ALL', "None")) + print("LANG: %s" % os.environ.get('LANG', "None")) + except: + pass + try: + from statsmodels import version + has_sm = True + except ImportError: + has_sm = False + + print('\nStatsmodels\n===========\n') + if has_sm: + print('Installed: %s' % safe_version(version, 'full_version')) + else: + print('Not installed') + + print("\nRequired Dependencies\n=====================\n") + try: + import Cython + print("cython: %s" % safe_version(Cython)) + except ImportError: + print("cython: Not installed") + + try: + import numpy + print("numpy: %s" % safe_version(numpy, ['version', 'version'])) + except ImportError: + print("numpy: Not installed") + + try: + import scipy + print("scipy: %s" % safe_version(scipy, ['version', 'version'])) + except ImportError: + print("scipy: Not installed") + + try: + import pandas + print("pandas: %s" % safe_version(pandas)) + except ImportError: + print("pandas: Not installed") + + try: + import dateutil + print(" dateutil: %s" % safe_version(dateutil)) + except ImportError: + print(" dateutil: not installed") + + try: + import patsy + print("patsy: %s" % safe_version(patsy)) + except ImportError: + print("patsy: Not installed") + + print("\nOptional Dependencies\n=====================\n") + + try: + import matplotlib as mpl + print("matplotlib: %s" % safe_version(mpl)) + except ImportError: + print("matplotlib: Not installed") + + try: + from cvxopt import info + print("cvxopt: %s" % safe_version(info, 'version')) + except ImportError: + print("cvxopt: Not installed") + + print("\nDeveloper Tools\n================\n") + + try: + import IPython + print("IPython: %s" % safe_version(IPython)) + except ImportError: + print("IPython: Not installed") + try: + import jinja2 + print(" jinja2: %s" % safe_version(jinja2)) + except ImportError: + print(" jinja2: Not installed") + + try: + import sphinx + print("sphinx: %s" % safe_version(sphinx)) + except ImportError: + print("sphinx: Not installed") + + try: + import pygments + print(" pygments: %s" % safe_version(pygments)) + except ImportError: + print(" pygments: Not installed") + + try: + import nose + print("nose: %s" % safe_version(nose)) + except ImportError: + print("nose: Not installed") + + try: + import virtualenv + print("virtualenv: %s" % safe_version(virtualenv)) + except ImportError: + print("virtualenv: Not installed") + + print("\n") + + +def show_versions(show_dirs=True): + if not show_dirs: + _show_versions_only() + print("\nINSTALLED VERSIONS") + print("------------------") + print("Python: %d.%d.%d.%s.%s" % sys.version_info[:]) + try: + import os + (sysname, nodename, release, version, machine) = os.uname() + print("OS: %s %s %s %s" % (sysname, release, version, machine)) + print("byteorder: %s" % sys.byteorder) + print("LC_ALL: %s" % os.environ.get('LC_ALL', "None")) + print("LANG: %s" % os.environ.get('LANG', "None")) + except: + pass + + try: + import statsmodels + from statsmodels import version + has_sm = True + except ImportError: + has_sm = False + + print('\nStatsmodels\n===========\n') + if has_sm: + print('Installed: %s (%s)' % (safe_version(version, 'full_version'), + dirname(statsmodels.__file__))) + else: + print('Not installed') + + print("\nRequired Dependencies\n=====================\n") + try: + import Cython + print("cython: %s (%s)" % (safe_version(Cython), + dirname(Cython.__file__))) + except ImportError: + print("cython: Not installed") + + try: + import numpy + print("numpy: %s (%s)" % (safe_version(numpy, ['version', 'version']), + dirname(numpy.__file__))) + except ImportError: + print("numpy: Not installed") + + try: + import scipy + print("scipy: %s (%s)" % (safe_version(scipy, ['version', 'version']), + dirname(scipy.__file__))) + except ImportError: + print("scipy: Not installed") + + try: + import pandas + print("pandas: %s (%s)" % (safe_version(pandas, ['version', 'version'], + '__version__'), + dirname(pandas.__file__))) + except ImportError: + print("pandas: Not installed") + + try: + import dateutil + print(" dateutil: %s (%s)" % (safe_version(dateutil), + dirname(dateutil.__file__))) + except ImportError: + print(" dateutil: not installed") + + try: + import patsy + print("patsy: %s (%s)" % (safe_version(patsy), + dirname(patsy.__file__))) + except ImportError: + print("patsy: Not installed") + + print("\nOptional Dependencies\n=====================\n") + + try: + import matplotlib as mpl + print("matplotlib: %s (%s)" % (safe_version(mpl), + dirname(mpl.__file__))) + except ImportError: + print("matplotlib: Not installed") + + try: + from cvxopt import info + print("cvxopt: %s (%s)" % (safe_version(info, 'version'), + dirname(info.__file__))) + except ImportError: + print("cvxopt: Not installed") + + print("\nDeveloper Tools\n================\n") + + try: + import IPython + print("IPython: %s (%s)" % (safe_version(IPython), + dirname(IPython.__file__))) + except ImportError: + print("IPython: Not installed") + try: + import jinja2 + print(" jinja2: %s (%s)" % (safe_version(jinja2), + dirname(jinja2.__file__))) + except ImportError: + print(" jinja2: Not installed") + + try: + import sphinx + print("sphinx: %s (%s)" % (safe_version(sphinx), + dirname(sphinx.__file__))) + except ImportError: + print("sphinx: Not installed") + + try: + import pygments + print(" pygments: %s (%s)" % (safe_version(pygments), + dirname(pygments.__file__))) + except ImportError: + print(" pygments: Not installed") + + try: + import nose + print("nose: %s (%s)" % (safe_version(nose), dirname(nose.__file__))) + except ImportError: + print("nose: Not installed") + + try: + import virtualenv + print("virtualenv: %s (%s)" % (safe_version(virtualenv), + dirname(virtualenv.__file__))) + except ImportError: + print("virtualenv: Not installed") + + print("\n") + +if __name__ == "__main__": + show_versions() diff --git a/statsmodels/tools/rootfinding.py b/statsmodels/tools/rootfinding.py new file mode 100644 index 0000000..c4ff2ae --- /dev/null +++ b/statsmodels/tools/rootfinding.py @@ -0,0 +1,220 @@ +# -*- coding: utf-8 -*- +""" + +Created on Mon Mar 18 15:48:23 2013 +Author: Josef Perktold + +TODO: + - test behavior if nans or infs are encountered during the evaluation. + now partially robust to nans, if increasing can be determined or is given. + - rewrite core loop to use for...except instead of while. + +""" +from __future__ import print_function +import numpy as np +from scipy import optimize + +DEBUG = False + + +# based on scipy.stats.distributions._ppf_single_call +def brentq_expanding(func, low=None, upp=None, args=(), xtol=1e-5, + start_low=None, start_upp=None, increasing=None, + max_it=100, maxiter_bq=100, factor=10, + full_output=False): + '''find the root of a function in one variable by expanding and brentq + + Assumes function ``func`` is monotonic. + + Parameters + ---------- + func : callable + function for which we find the root ``x`` such that ``func(x) = 0`` + low : float or None + lower bound for brentq + upp : float or None + upper bound for brentq + args : tuple + optional additional arguments for ``func`` + xtol : float + parameter x tolerance given to brentq + start_low : float (positive) or None + starting bound for expansion with increasing ``x``. It needs to be + positive. If None, then it is set to 1. + start_upp : float (negative) or None + starting bound for expansion with decreasing ``x``. It needs to be + negative. If None, then it is set to -1. + increasing : bool or None + If None, then the function is evaluated at the initial bounds to + determine wether the function is increasing or not. If increasing is + True (False), then it is assumed that the function is monotonically + increasing (decreasing). + max_it : int + maximum number of expansion steps. + maxiter_bq : int + maximum number of iterations of brentq. + factor : float + expansion factor for step of shifting the bounds interval, default is + 10. + full_output : bool, optional + If full_output is False, the root is returned. If full_output is True, + the return value is (x, r), where x is the root, and r is a + RootResults object. + + + Returns + ------- + x : float + root of the function, value at which ``func(x) = 0``. + info : RootResult (optional) + returned if ``full_output`` is True. + attributes: + + - start_bounds : starting bounds for expansion stage + - brentq_bounds : bounds used with ``brentq`` + - iterations_expand : number of iterations in expansion stage + - converged : True if brentq converged. + - flag : return status, 'converged' if brentq converged + - function_calls : number of function calls by ``brentq`` + - iterations : number of iterations in ``brentq`` + + + Notes + ----- + If increasing is None, then whether the function is monotonically + increasing or decreasing is inferred from evaluating the function at the + initial bounds. This can fail if there is numerically no variation in the + data in this range. In this case, using different starting bounds or + directly specifying ``increasing`` can make it possible to move the + expansion in the right direction. + + If + + ''' + # TODO: rtol is missing, what does it do? + left, right = low, upp # alias + + # start_upp first because of possible sl = -1 > upp + if upp is not None: + su = upp + elif start_upp is not None: + if start_upp < 0: + raise ValueError('start_upp needs to be positive') + su = start_upp + else: + su = 1. + + if low is not None: + sl = low + elif start_low is not None: + if start_low > 0: + raise ValueError('start_low needs to be negative') + sl = start_low + else: + sl = min(-1., su - 1.) + + # need sl < su + if upp is None: + su = max(su, sl + 1.) + + # increasing or not ? + if ((low is None) or (upp is None)) and increasing is None: + assert sl < su # check during developement + f_low = func(sl, *args) + f_upp = func(su, *args) + + # special case for F-distribution (symmetric around zero for effect + # size) + # chisquare also takes an indefinite time (didn't wait see if it + # returns) + if np.max(np.abs(f_upp - f_low)) < 1e-15 and sl == -1 and su == 1: + sl = 1e-8 + f_low = func(sl, *args) + increasing = (f_low < f_upp) + if DEBUG: + print('symm', sl, su, f_low, f_upp) + + # possibly func returns nan + delta = su - sl + if np.isnan(f_low): + # try just 3 points to find ``increasing`` + # don't change sl because brentq can handle one nan bound + for fraction in [0.25, 0.5, 0.75]: + sl_ = sl + fraction * delta + f_low = func(sl_, *args) + if not np.isnan(f_low): + break + else: + raise ValueError('could not determine whether function is ' + + 'increasing based on starting interval.' + + '\nspecify increasing or change starting ' + + 'bounds') + if np.isnan(f_upp): + for fraction in [0.25, 0.5, 0.75]: + su_ = su + fraction * delta + f_upp = func(su_, *args) + if not np.isnan(f_upp): + break + else: + raise ValueError('could not determine whether function is' + + 'increasing based on starting interval.' + + '\nspecify increasing or change starting ' + + 'bounds') + + increasing = (f_low < f_upp) + + if DEBUG: + print('low, upp', low, upp, func(sl, *args), func(su, *args)) + print('increasing', increasing) + print('sl, su', sl, su) + + if not increasing: + sl, su = su, sl + left, right = right, left + + n_it = 0 + if left is None and sl != 0: + left = sl + while func(left, *args) > 0: + # condition is also false if func returns nan + right = left + left *= factor + if n_it >= max_it: + break + n_it += 1 + # left is now such that func(left) < q + if right is None and su != 0: + right = su + while func(right, *args) < 0: + left = right + right *= factor + if n_it >= max_it: + break + n_it += 1 + # right is now such that func(right) > q + + if n_it >= max_it: + # print('Warning: max_it reached') + # TODO: use Warnings, Note: brentq might still work even with max_it + f_low = func(sl, *args) + f_upp = func(su, *args) + if np.isnan(f_low) and np.isnan(f_upp): + # can we still get here? + raise ValueError('max_it reached' + + '\nthe function values at boths bounds are NaN' + + '\nchange the starting bounds, set bounds' + + 'or increase max_it') + + res = optimize.brentq(func, left, right, args=args, + xtol=xtol, maxiter=maxiter_bq, + full_output=full_output) + if full_output: + val = res[0] + info = res[1] + info.iterations_expand = n_it + info.start_bounds = (sl, su) + info.brentq_bounds = (left, right) + info.increasing = increasing + return val, info + else: + return res diff --git a/statsmodels/tools/sm_exceptions.py b/statsmodels/tools/sm_exceptions.py new file mode 100644 index 0000000..697d3ff --- /dev/null +++ b/statsmodels/tools/sm_exceptions.py @@ -0,0 +1,117 @@ +""" +Contains custom errors and warnings. + +Errors should derive from Exception or another custom error. Custom errors are +only needed it standard errors, for example ValueError or TypeError, are not +accurate descriptions of the reason for the error. + +Warnings should derive from either an existing warning or another custom +warning, and should usually be accompanied by a sting using the format +warning_name_doc that services as a generic message to use when the warning is +raised. +""" + +# Errors +class PerfectSeparationError(Exception): + pass + +class MissingDataError(Exception): + pass + + +class X13NotFoundError(Exception): + pass + + +class X13Error(Exception): + pass + + +# Warning + +class X13Warning(Warning): + pass + + +class IOWarning(RuntimeWarning): + pass + + +class ModuleUnavailableWarning(Warning): + pass + + +module_unavailable_doc = """ +The module {0} is not available. Cannot run in parallel. +""" + + + +class ConvergenceWarning(UserWarning): + pass + + +convergence_doc = """ +Failed to converge on a solution. +""" + + +class CacheWriteWarning(UserWarning): + pass + + +class IterationLimitWarning(UserWarning): + pass + + +iteration_limit_doc = """ +Maximum iteration reached. +""" + + +class InvalidTestWarning(UserWarning): + pass + + +class NotImplementedWarning(UserWarning): + pass + + +class OutputWarning(UserWarning): + pass + + +class DomainWarning(UserWarning): + pass + + +class ValueWarning(UserWarning): + pass + + +class EstimationWarning(UserWarning): + pass + + +class SingularMatrixWarning(UserWarning): + pass + + +class HypothesisTestWarning(UserWarning): + pass + + +class InterpolationWarning(UserWarning): + pass + + +class PrecisionWarning(UserWarning): + pass + + +class SpecificationWarning(UserWarning): + pass + + +class HessianInversionWarning(UserWarning): + pass \ No newline at end of file diff --git a/statsmodels/tools/testing.py b/statsmodels/tools/testing.py new file mode 100644 index 0000000..432d270 --- /dev/null +++ b/statsmodels/tools/testing.py @@ -0,0 +1,46 @@ +"""assert functions from numpy and pandas testing + +""" + +import re +from distutils.version import StrictVersion, LooseVersion + +import numpy as np +import numpy.testing as npt +import pandas +import pandas.util.testing as pdt + +# for pandas version check +def strip_rc(version): + return re.sub(r"rc\d+$", "", version) + + +def is_pandas_min_version(min_version): + '''check whether pandas is at least min_version + ''' + from pandas import __version__ as pversion + return LooseVersion(pversion) >= min_version + + +# local copies, all unchanged +from numpy.testing import (assert_allclose, assert_almost_equal, + assert_approx_equal, assert_array_almost_equal, + assert_array_almost_equal_nulp, assert_array_equal, assert_array_less, + assert_array_max_ulp, assert_raises, assert_string_equal, assert_warns) + + +# adjusted functions + +if not is_pandas_min_version('0.14.1'): + def assert_equal(actual, desired, err_msg='', verbose=True, **kwds): + npt.assert_equal(actual, desired, err_msg='', verbose=True) +else: + def assert_equal(actual, desired, err_msg='', verbose=True, **kwds): + if isinstance(desired, pandas.Index): + pdt.assert_index_equal(actual, desired) + elif isinstance(desired, pandas.Series): + pdt.assert_series_equal(actual, desired, **kwds) + elif isinstance(desired, pandas.DataFrame): + pdt.assert_frame_equal(actual, desired, **kwds) + else: + npt.assert_equal(actual, desired, err_msg='', verbose=True) diff --git a/statsmodels/tools/tests/__init__.py b/statsmodels/tools/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/tools/tests/test_catadd.py b/statsmodels/tools/tests/test_catadd.py new file mode 100644 index 0000000..925d489 --- /dev/null +++ b/statsmodels/tools/tests/test_catadd.py @@ -0,0 +1,23 @@ + +import numpy as np +from numpy.testing import assert_equal +from statsmodels.tools.catadd import add_indep + +from scipy import linalg + +def test_add_indep(): + x1 = np.array([0,0,0,0,0,1,1,1,2,2,2]) + x2 = np.array([0,0,0,0,0,1,1,1,1,1,1]) + x0 = np.ones(len(x2)) + x = np.column_stack([x0, x1[:,None]*np.arange(3), x2[:,None]*np.arange(2)]) + varnames = ['const'] + ['var1_%d' %i for i in np.arange(3)] \ + + ['var2_%d' %i for i in np.arange(2)] + xo, vo = add_indep(x, varnames) + + assert_equal(xo, np.column_stack((x0, x1, x2))) + assert_equal((linalg.svdvals(x) > 1e-12).sum(), 3) + assert_equal(vo, ['const', 'var1_1', 'var2_1']) + +if __name__ == '__main__': + test_add_indep() + diff --git a/statsmodels/tools/tests/test_data.py b/statsmodels/tools/tests/test_data.py new file mode 100644 index 0000000..a7bb337 --- /dev/null +++ b/statsmodels/tools/tests/test_data.py @@ -0,0 +1,51 @@ +import pandas +import numpy as np + +from statsmodels.tools import data + +def test_missing_data_pandas(): + """ + Fixes GH: #144 + """ + X = np.random.random((10,5)) + X[1,2] = np.nan + df = pandas.DataFrame(X) + vals, cnames, rnames = data.interpret_data(df) + np.testing.assert_equal(rnames.tolist(), [0,2,3,4,5,6,7,8,9]) + +def test_structarray(): + X = np.random.random((9,)).view([('var1', 'f8'), + ('var2', 'f8'), + ('var3', 'f8')]) + vals, cnames, rnames = data.interpret_data(X) + np.testing.assert_equal(cnames, X.dtype.names) + np.testing.assert_equal(vals, X.view((float,3))) + np.testing.assert_equal(rnames, None) + +def test_recarray(): + X = np.random.random((9,)).view([('var1', 'f8'), + ('var2', 'f8'), + ('var3', 'f8')]) + vals, cnames, rnames = data.interpret_data(X.view(np.recarray)) + np.testing.assert_equal(cnames, X.dtype.names) + np.testing.assert_equal(vals, X.view((float,3))) + np.testing.assert_equal(rnames, None) + + +def test_dataframe(): + X = np.random.random((10,5)) + df = pandas.DataFrame(X) + vals, cnames, rnames = data.interpret_data(df) + np.testing.assert_equal(vals, df.values) + np.testing.assert_equal(rnames.tolist(), df.index.tolist()) + np.testing.assert_equal(cnames, df.columns.tolist()) + +def test_patsy_577(): + X = np.random.random((10, 2)) + df = pandas.DataFrame(X, columns=["var1", "var2"]) + from patsy import dmatrix + endog = dmatrix("var1 - 1", df) + np.testing.assert_(data._is_using_patsy(endog, None)) + exog = dmatrix("var2 - 1", df) + np.testing.assert_(data._is_using_patsy(endog, exog)) + diff --git a/statsmodels/tools/tests/test_eval_measures.py b/statsmodels/tools/tests/test_eval_measures.py new file mode 100644 index 0000000..d3e810b --- /dev/null +++ b/statsmodels/tools/tests/test_eval_measures.py @@ -0,0 +1,104 @@ +# -*- coding: utf-8 -*- +""" +Created on Tue Nov 08 22:28:48 2011 + +@author: josef +""" + +from statsmodels.compat.python import zip +import numpy as np +from numpy.testing import assert_equal, assert_almost_equal, assert_ + +from statsmodels.tools.eval_measures import ( + maxabs, meanabs, medianabs, medianbias, mse, rmse, stde, vare, + aic, aic_sigma, aicc, aicc_sigma, bias, bic, bic_sigma, + hqic, hqic_sigma, iqr) + + +def test_eval_measures(): + #mainly regression tests + + x = np.arange(20).reshape(4,5) + y = np.ones((4,5)) + assert_equal(iqr(x, y), 5*np.ones(5)) + assert_equal(iqr(x, y, axis=1), 2*np.ones(4)) + assert_equal(iqr(x, y, axis=None), 9) + + assert_equal(mse(x, y), + np.array([ 73.5, 87.5, 103.5, 121.5, 141.5])) + assert_equal(mse(x, y, axis=1), + np.array([ 3., 38., 123., 258.])) + + assert_almost_equal(rmse(x, y), + np.array([ 8.5732141 , 9.35414347, 10.17349497, + 11.02270384, 11.89537725])) + assert_almost_equal(rmse(x, y, axis=1), + np.array([ 1.73205081, 6.164414, + 11.09053651, 16.0623784 ])) + + assert_equal(maxabs(x, y), + np.array([ 14., 15., 16., 17., 18.])) + assert_equal(maxabs(x, y, axis=1), + np.array([ 3., 8., 13., 18.])) + + assert_equal(meanabs(x, y), + np.array([ 7. , 7.5, 8.5, 9.5, 10.5])) + assert_equal(meanabs(x, y, axis=1), + np.array([ 1.4, 6. , 11. , 16. ])) + assert_equal(meanabs(x, y, axis=0), + np.array([ 7. , 7.5, 8.5, 9.5, 10.5])) + + assert_equal(medianabs(x, y), + np.array([ 6.5, 7.5, 8.5, 9.5, 10.5])) + assert_equal(medianabs(x, y, axis=1), + np.array([ 1., 6., 11., 16.])) + + assert_equal(bias(x, y), + np.array([ 6.5, 7.5, 8.5, 9.5, 10.5])) + assert_equal(bias(x, y, axis=1), + np.array([ 1., 6., 11., 16.])) + + assert_equal(medianbias(x, y), + np.array([ 6.5, 7.5, 8.5, 9.5, 10.5])) + assert_equal(medianbias(x, y, axis=1), + np.array([ 1., 6., 11., 16.])) + + assert_equal(vare(x, y), + np.array([ 31.25, 31.25, 31.25, 31.25, 31.25])) + assert_equal(vare(x, y, axis=1), + np.array([ 2., 2., 2., 2.])) + +def test_ic(): + #test information criteria + #consistency check + + ics = [aic, aicc, bic, hqic] + ics_sig = [aic_sigma, aicc_sigma, bic_sigma, hqic_sigma] + + for ic, ic_sig in zip(ics, ics_sig): + assert_(ic(np.array(2),10,2).dtype == np.float, msg=repr(ic)) + assert_(ic_sig(np.array(2),10,2).dtype == np.float, msg=repr(ic_sig) ) + + assert_almost_equal(ic(-10./2.*np.log(2.),10,2)/10, + ic_sig(2, 10, 2), + decimal=14) + + assert_almost_equal(ic_sig(np.log(2.),10,2, islog=True), + ic_sig(2, 10, 2), + decimal=14) + + + #examples penalty directly from formula + n, k = 10, 2 + assert_almost_equal(aic(0, 10, 2), 2*k, decimal=14) + #next see Wikipedia + assert_almost_equal(aicc(0, 10, 2), + aic(0, n, k) + 2*k*(k+1.)/(n-k-1.), decimal=14) + assert_almost_equal(bic(0, 10, 2), np.log(n)*k, decimal=14) + assert_almost_equal(hqic(0, 10, 2), 2*np.log(np.log(n))*k, decimal=14) + + + +if __name__ == '__main__': + test_eval_measures() + test_ic() diff --git a/statsmodels/tools/tests/test_grouputils.py b/statsmodels/tools/tests/test_grouputils.py new file mode 100644 index 0000000..4a5f77f --- /dev/null +++ b/statsmodels/tools/tests/test_grouputils.py @@ -0,0 +1,250 @@ +import numpy as np +import pandas as pd +from statsmodels.tools.grouputils import Grouping +from statsmodels.tools.tools import categorical +from statsmodels.datasets import grunfeld, anes96 +from pandas.util import testing as ptesting + + +class CheckGrouping(object): + + def test_reindex(self): + # smoke test + self.grouping.reindex(self.grouping.index) + + def test_count_categories(self): + self.grouping.count_categories(level=0) + np.testing.assert_equal(self.grouping.counts, self.expected_counts) + + def test_sort(self): + # data frame + sorted_data, index = self.grouping.sort(self.data) + expected_sorted_data = self.data.sort_index() + + ptesting.assert_frame_equal(sorted_data, expected_sorted_data) + np.testing.assert_(isinstance(sorted_data, pd.DataFrame)) + np.testing.assert_(not index.equals(self.grouping.index)) + + # make sure it copied + if hasattr(sorted_data, 'equals'): # newer pandas + np.testing.assert_(not sorted_data.equals(self.data)) + + # 2d arrays + sorted_data, index = self.grouping.sort(self.data.values) + np.testing.assert_array_equal(sorted_data, + expected_sorted_data.values) + np.testing.assert_(isinstance(sorted_data, np.ndarray)) + + # 1d series + series = self.data[self.data.columns[0]] + sorted_data, index = self.grouping.sort(series) + + expected_sorted_data = series.sort_index() + ptesting.assert_series_equal(sorted_data, expected_sorted_data) + np.testing.assert_(isinstance(sorted_data, pd.Series)) + if hasattr(sorted_data, 'equals'): + np.testing.assert_(not sorted_data.equals(series)) + + # 1d array + array = series.values + sorted_data, index = self.grouping.sort(array) + + expected_sorted_data = series.sort_index().values + np.testing.assert_array_equal(sorted_data, expected_sorted_data) + np.testing.assert_(isinstance(sorted_data, np.ndarray)) + + def test_transform_dataframe(self): + names = self.data.index.names + transformed_dataframe = self.grouping.transform_dataframe( + self.data, + lambda x : x.mean(), + level=0) + expected = self.data.reset_index().groupby(names[0] + ).apply(lambda x : x.mean())[ + self.data.columns] + np.testing.assert_array_equal(transformed_dataframe, + expected.values) + + if len(names) > 1: + transformed_dataframe = self.grouping.transform_dataframe( + self.data, lambda x : x.mean(), + level=1) + expected = self.data.reset_index().groupby(names[1] + ).apply(lambda x : + x.mean())[ + self.data.columns] + np.testing.assert_array_equal(transformed_dataframe, + expected.values) + + def test_transform_array(self): + names = self.data.index.names + transformed_array = self.grouping.transform_array( + self.data.values, + lambda x : x.mean(), + level=0) + expected = self.data.reset_index().groupby(names[0] + ).apply(lambda x : x.mean())[ + self.data.columns] + np.testing.assert_array_equal(transformed_array, + expected.values) + + if len(names) > 1: + transformed_array = self.grouping.transform_array( + self.data.values, + lambda x : x.mean(), level=1) + expected = self.data.reset_index().groupby(names[1] + ).apply(lambda x : + x.mean())[ + self.data.columns] + np.testing.assert_array_equal(transformed_array, + expected.values) + + + def test_transform_slices(self): + names = self.data.index.names + transformed_slices = self.grouping.transform_slices( + self.data.values, + lambda x, idx : x.mean(0), + level=0) + expected = self.data.reset_index().groupby(names[0]).mean()[ + self.data.columns] + np.testing.assert_allclose(transformed_slices, expected.values, + rtol=1e-12, atol=1e-25) + + if len(names) > 1: + transformed_slices = self.grouping.transform_slices( + self.data.values, + lambda x, idx : x.mean(0), + level=1) + expected = self.data.reset_index().groupby(names[1] + ).mean()[ + self.data.columns] + np.testing.assert_allclose(transformed_slices, expected.values, + rtol=1e-12, atol=1e-25) + + def test_dummies_groups(self): + # smoke test, calls dummy_sparse under the hood + self.grouping.dummies_groups() + + if len(self.grouping.group_names) > 1: + self.grouping.dummies_groups(level=1) + + def test_dummy_sparse(self): + data = self.data + self.grouping.dummy_sparse() + expected = categorical(data.index.get_level_values(0).values, + drop=True) + np.testing.assert_equal(self.grouping._dummies.toarray(), expected) + + if len(self.grouping.group_names) > 1: + self.grouping.dummy_sparse(level=1) + expected = categorical(data.index.get_level_values(1).values, + drop=True) + np.testing.assert_equal(self.grouping._dummies.toarray(), + expected) + + +class TestMultiIndexGrouping(CheckGrouping): + @classmethod + def setupClass(cls): + grun_data = grunfeld.load_pandas().data + multi_index_data = grun_data.set_index(['firm', 'year']) + multi_index_panel = multi_index_data.index + cls.grouping = Grouping(multi_index_panel) + cls.data = multi_index_data + + cls.expected_counts = [20] * 11 + + +class TestIndexGrouping(CheckGrouping): + @classmethod + def setupClass(cls): + grun_data = grunfeld.load_pandas().data + index_data = grun_data.set_index(['firm']) + index_group = index_data.index + cls.grouping = Grouping(index_group) + cls.data = index_data + + cls.expected_counts = [20] * 11 + + +def test_init_api(): + # make a multi-index panel + grun_data = grunfeld.load_pandas().data + multi_index_panel = grun_data.set_index(['firm', 'year']).index + grouping = Grouping(multi_index_panel) + # check group_names + np.testing.assert_array_equal(grouping.group_names, ['firm', 'year']) + # check shape + np.testing.assert_array_equal(grouping.index_shape, (11, 20)) + # check index_int + np.testing.assert_array_equal(grouping.labels, + [[ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, 1, + 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, 1, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, 1, 2, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]]) + grouping = Grouping(multi_index_panel, names=['firms', 'year']) + np.testing.assert_array_equal(grouping.group_names, ['firms', 'year']) + + # make a multi-index grouping + anes_data = anes96.load_pandas().data + multi_index_groups = anes_data.set_index(['educ', 'income', + 'TVnews']).index + grouping = Grouping(multi_index_groups) + np.testing.assert_array_equal(grouping.group_names, + ['educ', 'income', 'TVnews']) + np.testing.assert_array_equal(grouping.index_shape, (7, 24, 8)) + + # make a list multi-index panel + list_panel = multi_index_panel.tolist() + grouping = Grouping(list_panel, names=['firms', 'year']) + np.testing.assert_array_equal(grouping.group_names, ['firms', 'year']) + np.testing.assert_array_equal(grouping.index_shape, (11, 20)) + + # make a list multi-index grouping + list_groups = multi_index_groups.tolist() + grouping = Grouping(list_groups, names=['educ', 'income', 'TVnews']) + np.testing.assert_array_equal(grouping.group_names, + ['educ', 'income', 'TVnews']) + np.testing.assert_array_equal(grouping.index_shape, (7, 24, 8)) + + + # single-variable index grouping + index_group = multi_index_panel.get_level_values(0) + grouping = Grouping(index_group) + # the original multi_index_panel had it's name changed inplace above + np.testing.assert_array_equal(grouping.group_names, ['firms']) + np.testing.assert_array_equal(grouping.index_shape, (220,)) + + # single variable list grouping + list_group = multi_index_panel.get_level_values(0).tolist() + grouping = Grouping(list_group) + np.testing.assert_array_equal(grouping.group_names, ["group0"]) + np.testing.assert_array_equal(grouping.index_shape, 11*20) + + # test generic group names + grouping = Grouping(list_groups) + np.testing.assert_array_equal(grouping.group_names, + ['group0', 'group1', 'group2']) diff --git a/statsmodels/tools/tests/test_linalg.py b/statsmodels/tools/tests/test_linalg.py new file mode 100644 index 0000000..598bf12 --- /dev/null +++ b/statsmodels/tools/tests/test_linalg.py @@ -0,0 +1,23 @@ +from statsmodels.tools import linalg +import numpy as np +from numpy.testing import assert_allclose +from scipy.linalg import toeplitz + +def test_stationary_solve_1d(): + b = np.random.uniform(size=10) + r = np.random.uniform(size=9) + t = np.concatenate((np.r_[1], r)) + tmat = toeplitz(t) + soln = np.linalg.solve(tmat, b) + soln1 = linalg.stationary_solve(r, b) + assert_allclose(soln, soln1, rtol=1e-5, atol=1e-5) + + +def test_stationary_solve_2d(): + b = np.random.uniform(size=(10, 2)) + r = np.random.uniform(size=9) + t = np.concatenate((np.r_[1], r)) + tmat = toeplitz(t) + soln = np.linalg.solve(tmat, b) + soln1 = linalg.stationary_solve(r, b) + assert_allclose(soln, soln1, rtol=1e-5, atol=1e-5) diff --git a/statsmodels/tools/tests/test_numdiff.py b/statsmodels/tools/tests/test_numdiff.py new file mode 100644 index 0000000..bd9a82b --- /dev/null +++ b/statsmodels/tools/tests/test_numdiff.py @@ -0,0 +1,377 @@ +'''Testing numerical differentiation + +Still some problems, with API (args tuple versus *args) +finite difference Hessian has some problems that I didn't look at yet + +Should Hessian also work per observation, if fun returns 2d + +''' +from __future__ import print_function +import numpy as np +from numpy.testing import assert_almost_equal, assert_allclose +import statsmodels.api as sm +from statsmodels.tools import numdiff +from statsmodels.tools.numdiff import (approx_fprime, approx_fprime_cs, + approx_hess_cs) + +DEC3 = 3 +DEC4 = 4 +DEC5 = 5 +DEC6 = 6 +DEC8 = 8 +DEC13 = 13 +DEC14 = 14 + +def maxabs(x,y): + return np.abs(x-y).max() + +def fun(beta, x): + return np.dot(x, beta).sum(0) + +def fun1(beta, y, x): + #print(beta.shape, x.shape) + xb = np.dot(x, beta) + return (y-xb)**2 #(xb-xb.mean(0))**2 + +def fun2(beta, y, x): + #print(beta.shape, x.shape) + return fun1(beta, y, x).sum(0) + + +#ravel() added because of MNLogit 2d params +class CheckGradLoglikeMixin(object): + def test_score(self): + for test_params in self.params: + sc = self.mod.score(test_params) + scfd = numdiff.approx_fprime(test_params.ravel(), + self.mod.loglike) + assert_almost_equal(sc, scfd, decimal=1) + + sccs = numdiff.approx_fprime_cs(test_params.ravel(), + self.mod.loglike) + assert_almost_equal(sc, sccs, decimal=11) + + def test_hess(self): + for test_params in self.params: + he = self.mod.hessian(test_params) + hefd = numdiff.approx_fprime_cs(test_params, self.mod.score) + assert_almost_equal(he, hefd, decimal=DEC8) + + #NOTE: notice the accuracy below + assert_almost_equal(he, hefd, decimal=7) + hefd = numdiff.approx_fprime(test_params, self.mod.score, + centered=True) + assert_allclose(he, hefd, rtol=1e-9) + hefd = numdiff.approx_fprime(test_params, self.mod.score, + centered=False) + assert_almost_equal(he, hefd, decimal=4) + + hescs = numdiff.approx_fprime_cs(test_params.ravel(), + self.mod.score) + assert_allclose(he, hescs, rtol=1e-13) + + hecs = numdiff.approx_hess_cs(test_params.ravel(), + self.mod.loglike) + assert_allclose(he, hecs, rtol=1e-9) + + #NOTE: Look at the lack of precision - default epsilon not always + #best + grad = self.mod.score(test_params) + hecs, gradcs = numdiff.approx_hess1(test_params, self.mod.loglike, + 1e-6, return_grad=True) + assert_almost_equal(he, hecs, decimal=1) + assert_almost_equal(grad, gradcs, decimal=1) + hecs, gradcs = numdiff.approx_hess2(test_params, self.mod.loglike, + 1e-4, return_grad=True) + assert_almost_equal(he, hecs, decimal=3) + assert_almost_equal(grad, gradcs, decimal=1) + hecs = numdiff.approx_hess3(test_params, self.mod.loglike, 1e-5) + assert_almost_equal(he, hecs, decimal=4) + + +class TestGradMNLogit(CheckGradLoglikeMixin): + def __init__(self): + #from .results.results_discrete import Anes + data = sm.datasets.anes96.load() + exog = data.exog + exog = sm.add_constant(exog, prepend=False) + self.mod = sm.MNLogit(data.endog, exog) + + #def loglikeflat(self, params): + #reshapes flattened params + # return self.loglike(params.reshape(6,6)) + #self.mod.loglike = loglikeflat #need instance method + #self.params = [np.ones((6,6)).ravel()] + res = self.mod.fit(disp=0) + self.params = [res.params.ravel('F')] + + def test_hess(self): + #NOTE: I had to overwrite this to lessen the tolerance + for test_params in self.params: + he = self.mod.hessian(test_params) + hefd = numdiff.approx_fprime_cs(test_params, self.mod.score) + assert_almost_equal(he, hefd, decimal=DEC8) + + #NOTE: notice the accuracy below and the epsilon changes + # this doesn't work well for score -> hessian with non-cs step + # it's a little better around the optimum + assert_almost_equal(he, hefd, decimal=7) + hefd = numdiff.approx_fprime(test_params, self.mod.score, + centered=True) + assert_almost_equal(he, hefd, decimal=4) + hefd = numdiff.approx_fprime(test_params, self.mod.score, 1e-9, + centered=False) + assert_almost_equal(he, hefd, decimal=2) + + hescs = numdiff.approx_fprime_cs(test_params, self.mod.score) + assert_almost_equal(he, hescs, decimal=DEC8) + + hecs = numdiff.approx_hess_cs(test_params, self.mod.loglike) + assert_almost_equal(he, hecs, decimal=5) + #NOTE: these just don't work well + #hecs = numdiff.approx_hess1(test_params, self.mod.loglike, 1e-3) + #assert_almost_equal(he, hecs, decimal=1) + #hecs = numdiff.approx_hess2(test_params, self.mod.loglike, 1e-4) + #assert_almost_equal(he, hecs, decimal=0) + hecs = numdiff.approx_hess3(test_params, self.mod.loglike, 1e-4) + assert_almost_equal(he, hecs, decimal=0) + +class TestGradLogit(CheckGradLoglikeMixin): + def __init__(self): + data = sm.datasets.spector.load() + data.exog = sm.add_constant(data.exog, prepend=False) + #mod = sm.Probit(data.endog, data.exog) + self.mod = sm.Logit(data.endog, data.exog) + #res = mod.fit(method="newton") + self.params = [np.array([1,0.25,1.4,-7])] + ##loglike = mod.loglike + ##score = mod.score + ##hess = mod.hessian + + +class CheckDerivativeMixin(object): + def __init__(self): + nobs = 200 + #x = np.arange(nobs*3).reshape(nobs,-1) + np.random.seed(187678) + x = np.random.randn(nobs,3) + + xk = np.array([1,2,3]) + xk = np.array([1.,1.,1.]) + #xk = np.zeros(3) + beta = xk + y = np.dot(x, beta) + 0.1*np.random.randn(nobs) + xkols = np.dot(np.linalg.pinv(x),y) + + self.x = x + self.y = y + self.params = [np.array([1.,1.,1.]), xkols] + self.init() + + def init(self): + pass + + def test_grad_fun1_fd(self): + for test_params in self.params: + #gtrue = self.x.sum(0) + gtrue = self.gradtrue(test_params) + fun = self.fun() + epsilon = 1e-6 + gfd = numdiff.approx_fprime(test_params, fun, epsilon=epsilon, + args=self.args) + gfd += numdiff.approx_fprime(test_params, fun, epsilon=-epsilon, + args=self.args) + gfd /= 2. + assert_almost_equal(gtrue, gfd, decimal=DEC6) + + def test_grad_fun1_fdc(self): + for test_params in self.params: + #gtrue = self.x.sum(0) + gtrue = self.gradtrue(test_params) + fun = self.fun() + + epsilon = 1e-6 #default epsilon 1e-6 is not precise enough + gfd = numdiff.approx_fprime(test_params, fun, epsilon=1e-8, + args=self.args, centered=True) + assert_almost_equal(gtrue, gfd, decimal=DEC5) + + def test_grad_fun1_cs(self): + for test_params in self.params: + #gtrue = self.x.sum(0) + gtrue = self.gradtrue(test_params) + fun = self.fun() + + gcs = numdiff.approx_fprime_cs(test_params, fun, args=self.args) + assert_almost_equal(gtrue, gcs, decimal=DEC13) + + def test_hess_fun1_fd(self): + for test_params in self.params: + #hetrue = 0 + hetrue = self.hesstrue(test_params) + if not hetrue is None: #Hessian doesn't work for 2d return of fun + fun = self.fun() + #default works, epsilon 1e-6 or 1e-8 is not precise enough + hefd = numdiff.approx_hess1(test_params, fun, #epsilon=1e-8, + args=self.args) + #TODO:should be kwds + assert_almost_equal(hetrue, hefd, decimal=DEC3) + #TODO: I reduced precision to DEC3 from DEC4 because of + # TestDerivativeFun + hefd = numdiff.approx_hess2(test_params, fun, #epsilon=1e-8, + args=self.args) + #TODO:should be kwds + assert_almost_equal(hetrue, hefd, decimal=DEC3) + hefd = numdiff.approx_hess3(test_params, fun, #epsilon=1e-8, + args=self.args) + #TODO:should be kwds + assert_almost_equal(hetrue, hefd, decimal=DEC3) + + def test_hess_fun1_cs(self): + for test_params in self.params: + #hetrue = 0 + hetrue = self.hesstrue(test_params) + if not hetrue is None: #Hessian doesn't work for 2d return of fun + fun = self.fun() + hecs = numdiff.approx_hess_cs(test_params, fun, args=self.args) + assert_almost_equal(hetrue, hecs, decimal=DEC6) + + +class TestDerivativeFun(CheckDerivativeMixin): + def init(self): + xkols = np.dot(np.linalg.pinv(self.x), self.y) + self.params = [np.array([1.,1.,1.]), xkols] + self.args = (self.x,) + + def fun(self): + return fun + def gradtrue(self, params): + return self.x.sum(0) + def hesstrue(self, params): + return np.zeros((3,3)) #make it (3,3), because test fails with scalar 0 + #why is precision only DEC3 + +class TestDerivativeFun2(CheckDerivativeMixin): + def init(self): + xkols = np.dot(np.linalg.pinv(self.x), self.y) + self.params = [np.array([1.,1.,1.]), xkols] + self.args = (self.y, self.x) + + def fun(self): + return fun2 + + def gradtrue(self, params): + y, x = self.y, self.x + return (-x*2*(y-np.dot(x, params))[:,None]).sum(0) + #2*(y-np.dot(x, params)).sum(0) + + def hesstrue(self, params): + x = self.x + return 2*np.dot(x.T, x) + +class TestDerivativeFun1(CheckDerivativeMixin): + def init(self): + xkols = np.dot(np.linalg.pinv(self.x), self.y) + self.params = [np.array([1.,1.,1.]), xkols] + self.args = (self.y, self.x) + + def fun(self): + return fun1 + def gradtrue(self, params): + y, x = self.y, self.x + return (-x*2*(y-np.dot(x, params))[:,None]) + def hesstrue(self, params): + return None + y, x = self.y, self.x + return (-x*2*(y-np.dot(x, params))[:,None]) #TODO: check shape + + +def test_dtypes(): + def f(x): + return 2*x + + desired = np.array([[2, 0], + [0, 2]]) + assert_allclose(approx_fprime(np.array([1, 2]), f), desired) + assert_allclose(approx_fprime(np.array([1., 2.]), f), desired) + assert_allclose(approx_fprime(np.array([1.+0j, 2.+0j]), f), desired) + + +if __name__ == '__main__': + + epsilon = 1e-6 + nobs = 200 + x = np.arange(nobs*3).reshape(nobs,-1) + x = np.random.randn(nobs,3) + + xk = np.array([1,2,3]) + xk = np.array([1.,1.,1.]) + #xk = np.zeros(3) + beta = xk + y = np.dot(x, beta) + 0.1*np.random.randn(nobs) + xkols = np.dot(np.linalg.pinv(x),y) + + print(approx_fprime((1,2,3),fun,epsilon,x)) + gradtrue = x.sum(0) + print(x.sum(0)) + gradcs = approx_fprime_cs((1,2,3), fun, (x,), h=1.0e-20) + print(gradcs, maxabs(gradcs, gradtrue)) + print(approx_hess_cs((1,2,3), fun, (x,), h=1.0e-20)) #this is correctly zero + + print(approx_hess_cs((1,2,3), fun2, (y,x), h=1.0e-20)-2*np.dot(x.T, x)) + print(numdiff.approx_hess(xk,fun2,1e-3, (y,x))[0] - 2*np.dot(x.T, x)) + + gt = (-x*2*(y-np.dot(x, [1,2,3]))[:,None]) + g = approx_fprime_cs((1,2,3), fun1, (y,x), h=1.0e-20)#.T #this shouldn't be transposed + gd = numdiff.approx_fprime((1,2,3),fun1,epsilon,(y,x)) + print(maxabs(g, gt)) + print(maxabs(gd, gt)) + + + import statsmodels.api as sm + + data = sm.datasets.spector.load() + data.exog = sm.add_constant(data.exog, prepend=False) + #mod = sm.Probit(data.endog, data.exog) + mod = sm.Logit(data.endog, data.exog) + #res = mod.fit(method="newton") + test_params = [1,0.25,1.4,-7] + loglike = mod.loglike + score = mod.score + hess = mod.hessian + + #cs doesn't work for Probit because special.ndtr doesn't support complex + #maybe calculating ndtr for real and imag parts separately, if we need it + #and if it still works in this case + print('sm', score(test_params)) + print('fd', numdiff.approx_fprime(test_params,loglike,epsilon)) + print('cs', numdiff.approx_fprime_cs(test_params,loglike)) + print('sm', hess(test_params)) + print('fd', numdiff.approx_fprime(test_params,score,epsilon)) + print('cs', numdiff.approx_fprime_cs(test_params, score)) + + #print('fd', numdiff.approx_hess(test_params, loglike, epsilon)) #TODO: bug + ''' + Traceback (most recent call last): + File "C:\Josef\eclipsegworkspace\statsmodels-josef-experimental-gsoc\scikits\statsmodels\sandbox\regression\test_numdiff.py", line 74, in + print('fd', numdiff.approx_hess(test_params, loglike, epsilon)) + File "C:\Josef\eclipsegworkspace\statsmodels-josef-experimental-gsoc\scikits\statsmodels\sandbox\regression\numdiff.py", line 118, in approx_hess + xh = x + h + TypeError: can only concatenate list (not "float") to list + ''' + hesscs = numdiff.approx_hess_cs(test_params, loglike) + print('cs', hesscs) + print(maxabs(hess(test_params), hesscs)) + + data = sm.datasets.anes96.load() + exog = data.exog + exog = sm.add_constant(exog, prepend=False) + res1 = sm.MNLogit(data.endog, exog).fit(method="newton", disp=0) + + datap = sm.datasets.randhie.load() + nobs = len(datap.endog) + exogp = sm.add_constant(datap.exog.view(float).reshape(nobs,-1), + prepend=False) + modp = sm.Poisson(datap.endog, exogp) + resp = modp.fit(method='newton', disp=0) + + diff --git a/statsmodels/tools/tests/test_parallel.py b/statsmodels/tools/tests/test_parallel.py new file mode 100644 index 0000000..6c5866a --- /dev/null +++ b/statsmodels/tools/tests/test_parallel.py @@ -0,0 +1,13 @@ +from statsmodels.compat.python import range +import warnings +from statsmodels.tools.parallel import parallel_func +from numpy import arange, testing +from math import sqrt + +def test_parallel(): + x = arange(10.) + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + parallel, p_func, n_jobs = parallel_func(sqrt, n_jobs=-1, verbose=0) + y = parallel(p_func(i**2) for i in range(10)) + testing.assert_equal(x,y) diff --git a/statsmodels/tools/tests/test_rootfinding.py b/statsmodels/tools/tests/test_rootfinding.py new file mode 100644 index 0000000..4b840d3 --- /dev/null +++ b/statsmodels/tools/tests/test_rootfinding.py @@ -0,0 +1,93 @@ +# -*- coding: utf-8 -*- +""" + +Created on Sat Mar 23 13:34:19 2013 + +Author: Josef Perktold +""" + +import numpy as np +from statsmodels.tools.rootfinding import brentq_expanding + +from numpy.testing import (assert_allclose, assert_equal, assert_raises, + assert_array_less) + +def func(x, a): + f = (x - a)**3 + return f + +def func_nan(x, a, b): + x = np.atleast_1d(x) + f = (x - 1.*a)**3 + f[x < b] = np.nan + return f + + + +def funcn(x, a): + f = -(x - a)**3 + return f + + +def test_brentq_expanding(): + cases = [ + (0, {}), + (50, {}), + (-50, {}), + (500000, dict(low=10000)), + (-50000, dict(upp=-1000)), + (500000, dict(low=300000, upp=700000)), + (-50000, dict(low= -70000, upp=-1000)) + ] + + funcs = [(func, None), + (func, True), + (funcn, None), + (funcn, False)] + + for f, inc in funcs: + for a, kwds in cases: + kw = {'increasing':inc} + kw.update(kwds) + res = brentq_expanding(f, args=(a,), **kwds) + #print '%10d'%a, ['dec', 'inc'][f is func], res - a + assert_allclose(res, a, rtol=1e-5) + + # wrong sign for start bounds + # doesn't raise yet during development TODO: activate this + # it kind of works in some cases, but not correctly or in a useful way + #assert_raises(ValueError, brentq_expanding, func, args=(-500,), start_upp=-1000) + #assert_raises(ValueError, brentq_expanding, func, args=(500,), start_low=1000) + + # low upp given, but doesn't bound root, leave brentq exception + # ValueError: f(a) and f(b) must have different signs + assert_raises(ValueError, brentq_expanding, funcn, args=(-50000,), low= -40000, upp=-10000) + + # max_it too low to find root bounds + # ValueError: f(a) and f(b) must have different signs + assert_raises(ValueError, brentq_expanding, func, args=(-50000,), max_it=2) + + # maxiter_bq too low + # RuntimeError: Failed to converge after 3 iterations. + assert_raises(RuntimeError, brentq_expanding, func, args=(-50000,), maxiter_bq=3) + + # cannot determin whether increasing, all 4 low trial points return nan + assert_raises(ValueError, brentq_expanding, func_nan, args=(-20, 0.6)) + + # test for full_output + a = 500 + val, info = brentq_expanding(func, args=(a,), full_output=True) + assert_allclose(val, a, rtol=1e-5) + info1 = {'iterations': 63, 'start_bounds': (-1, 1), + 'brentq_bounds': (100, 1000), 'flag': 'converged', + 'function_calls': 64, 'iterations_expand': 3, 'converged': True} + + # adjustments for scipy 0.8.0 with changed convergence criteria + assert_array_less(info.__dict__['iterations'], 70) + assert_array_less(info.__dict__['function_calls'], 70) + for k in info1: + if k in ['iterations', 'function_calls']: + continue + assert_equal(info1[k], info.__dict__[k]) + + assert_allclose(info.root, a, rtol=1e-5) diff --git a/statsmodels/tools/tests/test_tools.py b/statsmodels/tools/tests/test_tools.py new file mode 100644 index 0000000..3757f96 --- /dev/null +++ b/statsmodels/tools/tests/test_tools.py @@ -0,0 +1,582 @@ +""" +Test functions for models.tools +""" +from statsmodels.compat.python import lrange, range +import numpy as np +from numpy.random import standard_normal +from numpy.testing import (assert_equal, assert_array_equal, + assert_almost_equal, assert_string_equal, TestCase) +from nose.tools import (assert_true, assert_false, assert_raises) +import pandas as pd +from pandas.util.testing import assert_frame_equal, assert_series_equal + +from statsmodels.datasets import longley +from statsmodels.tools import tools +from statsmodels.tools.tools import pinv_extended +from statsmodels.compat.numpy import np_matrix_rank + + +class TestTools(TestCase): + + def test_add_constant_list(self): + x = lrange(1,5) + x = tools.add_constant(x) + y = np.asarray([[1,1,1,1],[1,2,3,4.]]).T + assert_equal(x, y) + + def test_add_constant_1d(self): + x = np.arange(1,5) + x = tools.add_constant(x) + y = np.asarray([[1,1,1,1],[1,2,3,4.]]).T + assert_equal(x, y) + + def test_add_constant_has_constant1d(self): + x = np.ones(5) + x = tools.add_constant(x, has_constant='skip') + assert_equal(x, np.ones((5,1))) + + assert_raises(ValueError, tools.add_constant, x, has_constant='raise') + + assert_equal(tools.add_constant(x, has_constant='add'), + np.ones((5, 2))) + + def test_add_constant_has_constant2d(self): + x = np.asarray([[1,1,1,1],[1,2,3,4.]]).T + y = tools.add_constant(x, has_constant='skip') + assert_equal(x, y) + + assert_raises(ValueError, tools.add_constant, x, has_constant='raise') + + assert_equal(tools.add_constant(x, has_constant='add'), + np.column_stack((np.ones(4), x))) + + def test_add_constant_recarray(self): + dt = np.dtype([('', int), ('', '>> import numpy as np + >>> import statsmodels.api as sm + + Univariate examples + + >>> import string + >>> string_var = [string.lowercase[0:5], string.lowercase[5:10], \ + string.lowercase[10:15], string.lowercase[15:20], \ + string.lowercase[20:25]] + >>> string_var *= 5 + >>> string_var = np.asarray(sorted(string_var)) + >>> design = sm.tools.categorical(string_var, drop=True) + + Or for a numerical categorical variable + + >>> instr = np.floor(np.arange(10,60, step=2)/10) + >>> design = sm.tools.categorical(instr, drop=True) + + With a structured array + + >>> num = np.random.randn(25,2) + >>> struct_ar = np.zeros((25,1), dtype=[('var1', 'f4'),('var2', 'f4'), \ + ('instrument','f4'),('str_instr','a5')]) + >>> struct_ar['var1'] = num[:,0][:,None] + >>> struct_ar['var2'] = num[:,1][:,None] + >>> struct_ar['instrument'] = instr[:,None] + >>> struct_ar['str_instr'] = string_var[:,None] + >>> design = sm.tools.categorical(struct_ar, col='instrument', drop=True) + + Or + + >>> design2 = sm.tools.categorical(struct_ar, col='str_instr', drop=True) + ''' + if isinstance(col, (list, tuple)): + try: + assert len(col) == 1 + col = col[0] + except: + raise ValueError("Can only convert one column at a time") + + # TODO: add a NameValidator function + # catch recarrays and structured arrays + if data.dtype.names or data.__class__ is np.recarray: + if not col and np.squeeze(data).ndim > 1: + raise IndexError("col is None and the input array is not 1d") + if isinstance(col, (int, long)): + col = data.dtype.names[col] + if col is None and data.dtype.names and len(data.dtype.names) == 1: + col = data.dtype.names[0] + + tmp_arr = np.unique(data[col]) + + # if the cols are shape (#,) vs (#,1) need to add an axis and flip + _swap = True + if data[col].ndim == 1: + tmp_arr = tmp_arr[:, None] + _swap = False + tmp_dummy = (tmp_arr == data[col]).astype(float) + if _swap: + tmp_dummy = np.squeeze(tmp_dummy).swapaxes(1, 0) + + if not tmp_arr.dtype.names: # how do we get to this code path? + tmp_arr = [asstr2(item) for item in np.squeeze(tmp_arr)] + elif tmp_arr.dtype.names: + tmp_arr = [asstr2(item) for item in np.squeeze(tmp_arr.tolist())] + + # prepend the varname and underscore, if col is numeric attribute + # lookup is lost for recarrays... + if col is None: + try: + col = data.dtype.names[0] + except: + col = 'var' + # TODO: the above needs to be made robust because there could be many + # var_yes, var_no varaibles for instance. + tmp_arr = [col + '_' + item for item in tmp_arr] + # TODO: test this for rec and structured arrays!!! + + if drop is True: + if len(data.dtype) <= 1: + if tmp_dummy.shape[0] < tmp_dummy.shape[1]: + tmp_dummy = np.squeeze(tmp_dummy).swapaxes(1, 0) + dt = lzip(tmp_arr, [tmp_dummy.dtype.str]*len(tmp_arr)) + # preserve array type + return np.array(lmap(tuple, tmp_dummy.tolist()), + dtype=dt).view(type(data)) + + data = nprf.drop_fields(data, col, usemask=False, + asrecarray=type(data) is np.recarray) + data = nprf.append_fields(data, tmp_arr, data=tmp_dummy, + usemask=False, + asrecarray=type(data) is np.recarray) + return data + + # handle ndarrays and catch array-like for an error + elif data.__class__ is np.ndarray or not isinstance(data, np.ndarray): + if not isinstance(data, np.ndarray): + raise NotImplementedError("Array-like objects are not supported") + + if isinstance(col, (int, long)): + offset = data.shape[1] # need error catching here? + tmp_arr = np.unique(data[:, col]) + tmp_dummy = (tmp_arr[:, np.newaxis] == data[:, col]).astype(float) + tmp_dummy = tmp_dummy.swapaxes(1, 0) + if drop is True: + offset -= 1 + data = np.delete(data, col, axis=1).astype(float) + data = np.column_stack((data, tmp_dummy)) + if dictnames is True: + col_map = _make_dictnames(tmp_arr, offset) + return data, col_map + return data + elif col is None and np.squeeze(data).ndim == 1: + tmp_arr = np.unique(data) + tmp_dummy = (tmp_arr[:, None] == data).astype(float) + tmp_dummy = tmp_dummy.swapaxes(1, 0) + if drop is True: + if dictnames is True: + col_map = _make_dictnames(tmp_arr) + return tmp_dummy, col_map + return tmp_dummy + else: + data = np.column_stack((data, tmp_dummy)) + if dictnames is True: + col_map = _make_dictnames(tmp_arr, offset=1) + return data, col_map + return data + else: + raise IndexError("The index %s is not understood" % col) + + +# TODO: add an axis argument to this for sysreg +def add_constant(data, prepend=True, has_constant='skip'): + """ + Adds a column of ones to an array + + Parameters + ---------- + data : array-like + `data` is the column-ordered design matrix + prepend : bool + If true, the constant is in the first column. Else the constant is + appended (last column). + has_constant : str {'raise', 'add', 'skip'} + Behavior if ``data'' already has a constant. The default will return + data without adding another constant. If 'raise', will raise an + error if a constant is present. Using 'add' will duplicate the + constant, if one is present. + + Returns + ------- + data : array, recarray or DataFrame + The original values with a constant (column of ones) as the first or + last column. Returned value depends on input type. + + Notes + ----- + When the input is recarray or a pandas Series or DataFrame, the added + column's name is 'const'. + """ + if _is_using_pandas(data, None) or _is_recarray(data): + from statsmodels.tsa.tsatools import add_trend + return add_trend(data, trend='c', prepend=prepend, has_constant=has_constant) + + # Special case for NumPy + x = np.asanyarray(data) + if x.ndim == 1: + x = x[:,None] + elif x.ndim > 2: + raise ValueError('Only implementd 2-dimensional arrays') + + is_nonzero_const = np.ptp(x, axis=0) == 0 + is_nonzero_const &= np.all(x != 0.0, axis=0) + if is_nonzero_const.any(): + if has_constant == 'skip': + return x + elif has_constant == 'raise': + raise ValueError("data already contains a constant") + + x = [np.ones(x.shape[0]), x] + x = x if prepend else x[::-1] + return np.column_stack(x) + + +def isestimable(C, D): + """ True if (Q, P) contrast `C` is estimable for (N, P) design `D` + + From an Q x P contrast matrix `C` and an N x P design matrix `D`, checks if + the contrast `C` is estimable by looking at the rank of ``vstack([C,D])`` + and verifying it is the same as the rank of `D`. + + Parameters + ---------- + C : (Q, P) array-like + contrast matrix. If `C` has is 1 dimensional assume shape (1, P) + D: (N, P) array-like + design matrix + + Returns + ------- + tf : bool + True if the contrast `C` is estimable on design `D` + + Examples + -------- + >>> D = np.array([[1, 1, 1, 0, 0, 0], + ... [0, 0, 0, 1, 1, 1], + ... [1, 1, 1, 1, 1, 1]]).T + >>> isestimable([1, 0, 0], D) + False + >>> isestimable([1, -1, 0], D) + True + """ + C = np.asarray(C) + D = np.asarray(D) + if C.ndim == 1: + C = C[None, :] + if C.shape[1] != D.shape[1]: + raise ValueError('Contrast should have %d columns' % D.shape[1]) + new = np.vstack([C, D]) + if np_matrix_rank(new) != np_matrix_rank(D): + return False + return True + + +def pinv_extended(X, rcond=1e-15): + """ + Return the pinv of an array X as well as the singular values + used in computation. + + Code adapted from numpy. + """ + X = np.asarray(X) + X = X.conjugate() + u, s, vt = np.linalg.svd(X, 0) + s_orig = np.copy(s) + m = u.shape[0] + n = vt.shape[1] + cutoff = rcond * np.maximum.reduce(s) + for i in range(min(n, m)): + if s[i] > cutoff: + s[i] = 1./s[i] + else: + s[i] = 0. + res = np.dot(np.transpose(vt), np.multiply(s[:, np.core.newaxis], + np.transpose(u))) + return res, s_orig + + +def recipr(X): + """ + Return the reciprocal of an array, setting all entries less than or + equal to 0 to 0. Therefore, it presumes that X should be positive in + general. + """ + x = np.maximum(np.asarray(X).astype(np.float64), 0) + return np.greater(x, 0.) / (x + np.less_equal(x, 0.)) + + +def recipr0(X): + """ + Return the reciprocal of an array, setting all entries equal to 0 + as 0. It does not assume that X should be positive in + general. + """ + test = np.equal(np.asarray(X), 0) + return np.where(test, 0, 1. / X) + + +def clean0(matrix): + """ + Erase columns of zeros: can save some time in pseudoinverse. + """ + colsum = np.add.reduce(matrix**2, 0) + val = [matrix[:, i] for i in np.flatnonzero(colsum)] + return np.array(np.transpose(val)) + + +def rank(X, cond=1.0e-12): + """ + Return the rank of a matrix X based on its generalized inverse, + not the SVD. + """ + from warnings import warn + warn("rank is deprecated and will be removed in 0.7." + " Use np.linalg.matrix_rank instead.", FutureWarning) + X = np.asarray(X) + if len(X.shape) == 2: + D = svdvals(X) + return int(np.add.reduce(np.greater(D / D.max(), + cond).astype(np.int32))) + else: + return int(not np.alltrue(np.equal(X, 0.))) + + +def fullrank(X, r=None): + """ + Return a matrix whose column span is the same as X. + + If the rank of X is known it can be specified as r -- no check + is made to ensure that this really is the rank of X. + + """ + + if r is None: + r = np_matrix_rank(X) + + V, D, U = L.svd(X, full_matrices=0) + order = np.argsort(D) + order = order[::-1] + value = [] + for i in range(r): + value.append(V[:, order[i]]) + return np.asarray(np.transpose(value)).astype(np.float64) + + +def unsqueeze(data, axis, oldshape): + """ + Unsqueeze a collapsed array + + >>> from numpy import mean + >>> from numpy.random import standard_normal + >>> x = standard_normal((3,4,5)) + >>> m = mean(x, axis=1) + >>> m.shape + (3, 5) + >>> m = unsqueeze(m, 1, x.shape) + >>> m.shape + (3, 1, 5) + >>> + """ + newshape = list(oldshape) + newshape[axis] = 1 + return data.reshape(newshape) + + +def chain_dot(*arrs): + """ + Returns the dot product of the given matrices. + + Parameters + ---------- + arrs: argument list of ndarray + + Returns + ------- + Dot product of all arguments. + + Examples + -------- + >>> import numpy as np + >>> from statsmodels.tools import chain_dot + >>> A = np.arange(1,13).reshape(3,4) + >>> B = np.arange(3,15).reshape(4,3) + >>> C = np.arange(5,8).reshape(3,1) + >>> chain_dot(A,B,C) + array([[1820], + [4300], + [6780]]) + """ + return reduce(lambda x, y: np.dot(y, x), arrs[::-1]) + + +def nan_dot(A, B): + """ + Returns np.dot(left_matrix, right_matrix) with the convention that + nan * 0 = 0 and nan * x = nan if x != 0. + + Parameters + ---------- + A, B : np.ndarrays + """ + # Find out who should be nan due to nan * nonzero + should_be_nan_1 = np.dot(np.isnan(A), (B != 0)) + should_be_nan_2 = np.dot((A != 0), np.isnan(B)) + should_be_nan = should_be_nan_1 + should_be_nan_2 + + # Multiply after setting all nan to 0 + # This is what happens if there were no nan * nonzero conflicts + C = np.dot(np.nan_to_num(A), np.nan_to_num(B)) + + C[should_be_nan] = np.nan + + return C + + +def maybe_unwrap_results(results): + """ + Gets raw results back from wrapped results. + + Can be used in plotting functions or other post-estimation type + routines. + """ + return getattr(results, '_results', results) + + +class Bunch(dict): + """ + Returns a dict-like object with keys accessible via attribute lookup. + """ + def __init__(self, **kw): + dict.__init__(self, kw) + self.__dict__ = self + +webuse = np.deprecate(webuse, + old_name='statsmodels.tools.tools.webuse', + new_name='statsmodels.datasets.webuse', + message='webuse will be removed from the tools ' + 'namespace in the 0.7.0 release. Please use the' + ' new import.') + + +def _ensure_2d(x, ndarray=False): + """ + + Parameters + ---------- + x : array, Series, DataFrame or None + Input to verify dimensions, and to transform as necesary + ndarray : bool + Flag indicating whether to always return a NumPy array. Setting False + will return an pandas DataFrame when the input is a Series or a + DataFrame. + + Returns + ------- + out : array, DataFrame or None + array or DataFrame with 2 dimensiona. One dimensional arrays are + returned as nobs by 1. None is returned if x is None. + names : list of str or None + list containing variables names when the input is a pandas datatype. + Returns None if the input is an ndarray. + + Notes + ----- + Accepts None for simplicity + """ + if x is None: + return x + is_pandas = _is_using_pandas(x, None) + if x.ndim == 2: + if is_pandas: + return x, x.columns + else: + return x, None + elif x.ndim > 2: + raise ValueError('x mst be 1 or 2-dimensional.') + + name = x.name if is_pandas else None + if ndarray: + return np.asarray(x)[:, None], name + else: + return pd.DataFrame(x), name diff --git a/statsmodels/tools/transform_model.py b/statsmodels/tools/transform_model.py new file mode 100644 index 0000000..c993293 --- /dev/null +++ b/statsmodels/tools/transform_model.py @@ -0,0 +1,99 @@ +# -*- coding: utf-8 -*- +""" +Created on Tue May 27 13:23:24 2014 + +Author: Josef Perktold +License: BSD-3 + +""" + +import numpy as np + +from statsmodels.compat.python import string_types + +class StandardizeTransform(object): + """class to reparameterize a model for standardized exog + + Parameters + ---------- + data : array_like + data that is standardized along axis=0 + ddof : None or int + degrees of freedom for calculation of standard deviation. + default is 1, in contrast to numpy.std + const_idx : None or int + If None, then the presence of a constant is detected if the standard + deviation of a column is **equal** to zero. A constant column is + not transformed. If this is an integer, then the corresponding column + will not be transformed. + demean : bool, default is True + If demean is true, then the data will be demeaned, otherwise it will + only be rescaled. + + Notes + ----- + Warning: Not all options are tested and it is written for one use case. + API changes are expected. + + This can be used to transform only the design matrix, exog, in a model, + which is required in some discrete models when the endog cannot be rescaled + or demeaned. + The transformation is full rank and does not drop the constant. + + """ + + def __init__(self, data, ddof=1, const_idx=None, demean=True): + data = np.asarray(data) + self.mean = data.mean(0) + self.scale = data.std(0, ddof=1) + + # do not transform a constant + if const_idx is None: + const_idx = np.nonzero(self.scale == 0)[0] + if len(const_idx) == 0: + const_idx = 'nc' + else: + const_idx = int(const_idx) + + if const_idx != 'nc': + self.mean[const_idx] = 0 + self.scale[const_idx] = 1 + + if demean is False: + self.mean = None + + self.const_idx = const_idx + + def transform(self, data): + """standardize the data using the stored transformation + + """ + # could use scipy.stats.zscore instead + if self.mean is None: + return np.asarray(data) / self.scale + else: + return (np.asarray(data) - self.mean) / self.scale + + def transform_params(self, params): + """Transform parameters of the standardized model to the original model + + Parameters + ---------- + params : ndarray + parameters estimated with the standardized model + + Returns + ------- + params_new : ndarray + parameters transformed to the parameterization of the original + model + + """ + + params_new = params / self.scale + if self.const_idx != 'nc': + params_new[self.const_idx] -= (params_new * self.mean).sum() + + return params_new + + __call__ = transform diff --git a/statsmodels/tools/web.py b/statsmodels/tools/web.py new file mode 100644 index 0000000..6761d28 --- /dev/null +++ b/statsmodels/tools/web.py @@ -0,0 +1,77 @@ +""" +Provides a function to open the system browser to either search or go directly +to a function's reference +""" +import webbrowser + +from statsmodels.compat.python import urlencode +from statsmodels.version import release + +BASE_URL = 'http://www.statsmodels.org/' + + +def _generate_url(arg, stable): + """ + Parse inputs and return a correctly formatted URL or an error if the input + is not understandable + """ + url = BASE_URL + if stable: + url += 'stable/' + else: + url += 'devel/' + + if arg is None: + return url + elif type(arg) is str: + url += 'search.html?' + url += urlencode({'q': arg}) + url += '&check_keywords=yes&area=default' + else: + try: + func = arg + func_name = func.__name__ + func_module = func.__module__ + if not func_module.startswith('statsmodels.'): + return ValueError('Function must be from statsmodels') + url += 'generated/' + url += func_module + '.' + func_name + '.html' + except: + return ValueError('Input not understood') + return url + + +def webdoc(arg=None, stable=None): + """ + Opens a browser and displays online documentation + + Parameters + ---------- + arg, optional : string or statsmodels function + Either a string to search the documentation or a function + stable, optional : bool + Flag indicating whether to use the stable documentation (True) or + the development documentation (False). If not provided, opens + the stable documentation if the current version of statsmodels is a + release + + Examples + -------- + >>> import statsmodels.api as sm + >>> sm.webdoc() # Documention site + >>> sm.webdoc('glm') # Search for glm in docs + >>> sm.webdoc(sm.OLS, stable=False) # Go to generated help for OLS, devel + + Notes + ----- + By default, open stable documentation if the current version of statsmodels + is a release. Otherwise opens the development documentation. + + Uses the default system browser. + """ + stable = release if stable is None else stable + url_or_error = _generate_url(arg, stable) + if isinstance(url_or_error, ValueError): + raise url_or_error + webbrowser.open(url_or_error) + return None diff --git a/statsmodels/tools/wrappers.py b/statsmodels/tools/wrappers.py new file mode 100644 index 0000000..6177d14 --- /dev/null +++ b/statsmodels/tools/wrappers.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +"""Convenience Wrappers + +Created on Sat Oct 30 14:56:35 2010 + +Author: josef-pktd +License: BSD +""" + +import numpy as np +import statsmodels.api as sm +from statsmodels import GLS, WLS, OLS + +def remove_nanrows(y, x): + '''remove common rows in [y,x] that contain at least one nan + + TODO: this should be made more flexible, + arbitrary number of arrays and 1d or 2d arrays + + duplicate: Skipper added sm.tools.drop_missing + + ''' + mask = ~np.isnan(y) + mask *= ~(np.isnan(x).any(-1)) #* or & + y = y[mask] + x = x[mask] + return y, x + + +def linmod(y, x, weights=None, sigma=None, add_const=True, filter_missing=True, + **kwds): + '''get linear model with extra options for entry + + dispatches to regular model class and does not wrap the output + + If several options are exclusive, for example sigma and weights, then the + chosen class depends on the implementation sequence. + ''' + + if filter_missing: + y, x = remove_nanrows(y, x) + #do the same for masked arrays + + if add_const: + x = sm.add_constant(x, prepend=True) + + if not sigma is None: + return GLS(y, x, sigma=sigma, **kwds) + elif not weights is None: + return WLS(y, x, weights=weights, **kwds) + else: + return OLS(y, x, **kwds) + diff --git a/statsmodels/tsa/__init__.py b/statsmodels/tsa/__init__.py new file mode 100644 index 0000000..0123ce8 --- /dev/null +++ b/statsmodels/tsa/__init__.py @@ -0,0 +1,2 @@ +from statsmodels import NoseWrapper as Tester +test = Tester().test diff --git a/statsmodels/tsa/_bds.py b/statsmodels/tsa/_bds.py new file mode 100644 index 0000000..294b026 --- /dev/null +++ b/statsmodels/tsa/_bds.py @@ -0,0 +1,248 @@ +""" +BDS test for IID time series + +References +---------- + +Broock, W. A., J. A. Scheinkman, W. D. Dechert, and B. LeBaron. 1996. +"A Test for Independence Based on the Correlation Dimension." +Econometric Reviews 15 (3): 197-235. + +Kanzler, Ludwig. 1999. +"Very Fast and Correctly Sized Estimation of the BDS Statistic". +SSRN Scholarly Paper ID 151669. Rochester, NY: Social Science Research Network. + +LeBaron, Blake. 1997. +"A Fast Algorithm for the BDS Statistic." +Studies in Nonlinear Dynamics & Econometrics 2 (2) (January 1). +""" + +from __future__ import division +import numpy as np +from scipy import stats + + +def distance_indicators(x, epsilon=None, distance=1.5): + """ + Calculate all pairwise threshold distance indicators for a time series + + Parameters + ---------- + x : 1d array + observations of time series for which heaviside distance indicators + are calculated + epsilon : scalar, optional + the threshold distance to use in calculating the heaviside indicators + distance : scalar, optional + if epsilon is omitted, specifies the distance multiplier to use when + computing it + + Returns + ------- + indicators : 2d array + matrix of distance threshold indicators + + Notes + ----- + Since this can be a very large matrix, use np.int8 to save some space. + + """ + x = np.asarray(x) + nobs = len(x) + + if epsilon is not None and epsilon <= 0: + raise ValueError("Threshold distance must be positive if specified." + " Got epsilon of %f" % epsilon) + if distance <= 0: + raise ValueError("Threshold distance must be positive." + " Got distance multiplier %f" % distance) + + # TODO: add functionality to select epsilon optimally + # TODO: and/or compute for a range of epsilons in [0.5*s, 2.0*s]? + # or [1.5*s, 2.0*s]? + if epsilon is None: + epsilon = distance * x.std(ddof=1) + + return np.abs(x[:, None] - x) < epsilon + + +def correlation_sum(indicators, embedding_dim): + """ + Calculate a correlation sum + + Useful as an estimator of a correlation integral + + Parameters + ---------- + indicators : 2d array + matrix of distance threshold indicators + embedding_dim : integer + embedding dimension + + Returns + ------- + corrsum : float + Correlation sum + indicators_joint + matrix of joint-distance-threshold indicators + + """ + if not indicators.ndim == 2: + raise ValueError('Indicators must be a matrix') + if not indicators.shape[0] == indicators.shape[1]: + raise ValueError('Indicator matrix must be symmetric (square)') + + if embedding_dim == 1: + indicators_joint = indicators + else: + corrsum, indicators = correlation_sum(indicators, embedding_dim - 1) + indicators_joint = indicators[1:, 1:]*indicators[:-1, :-1] + + nobs = len(indicators_joint) + corrsum = np.mean(indicators_joint[np.triu_indices(nobs, 1)]) + return corrsum, indicators_joint + + +def correlation_sums(indicators, max_dim): + """ + Calculate all correlation sums for embedding dimensions 1:max_dim + + Parameters + ---------- + indicators : 2d array + matrix of distance threshold indicators + max_dim : integer + maximum embedding dimension + + Returns + ------- + corrsums : 1d array + Correlation sums + + """ + + corrsums = np.zeros((1, max_dim)) + + corrsums[0, 0], indicators = correlation_sum(indicators, 1) + for i in range(1, max_dim): + corrsums[0, i], indicators = correlation_sum(indicators, 2) + + return corrsums + + +def _var(indicators, max_dim): + """ + Calculate the variance of a BDS effect + + Parameters + ---------- + indicators : 2d array + matrix of distance threshold indicators + max_dim : integer + maximum embedding dimension + + Returns + ------- + variances : float + Variance of BDS effect + + """ + nobs = len(indicators) + corrsum_1dim, _ = correlation_sum(indicators, 1) + k = ((indicators.sum(1)**2).sum() - 3*indicators.sum() + + 2*nobs) / (nobs * (nobs - 1) * (nobs - 2)) + + variances = np.zeros((1, max_dim - 1)) + + for embedding_dim in range(2, max_dim + 1): + tmp = 0 + for j in range(1, embedding_dim): + tmp += (k**(embedding_dim - j))*(corrsum_1dim**(2 * j)) + variances[0, embedding_dim-2] = 4 * ( + k**embedding_dim + + 2 * tmp + + ((embedding_dim - 1)**2) * (corrsum_1dim**(2 * embedding_dim)) - + (embedding_dim**2) * k * (corrsum_1dim**(2 * embedding_dim - 2))) + + return variances, k + + +def bds(x, max_dim=2, epsilon=None, distance=1.5): + """ + Calculate the BDS test statistic for independence of a time series + + Parameters + ---------- + x : 1d array + observations of time series for which bds statistics is calculated + max_dim : integer + maximum embedding dimension + epsilon : scalar, optional + the threshold distance to use in calculating the correlation sum + distance : scalar, optional + if epsilon is omitted, specifies the distance multiplier to use when + computing it + + Returns + ------- + bds_stat : float + The BDS statistic + pvalue : float + The p-values associated with the BDS statistic + + Notes + ----- + The null hypothesis of the test statistic is for an independent and + identically distributed (i.i.d.) time series, and an unspecified + alternative hypothesis. + + This test is often used as a residual diagnostic. + + The calculation involves matrices of size (nobs, nobs), so this test + will not work with very long datasets. + + Implementation conditions on the first m-1 initial values, which are + required to calculate the m-histories: + x_t^m = (x_t, x_{t-1}, ... x_{t-(m-1)}) + + """ + x = np.asarray(x) + nobs_full = len(x) + + if max_dim < 2 or max_dim >= nobs_full: + raise ValueError("Maximum embedding dimension must be in the range" + " [2,len(x)-1]. Got %d." % max_dim) + + # Cache the indicators + indicators = distance_indicators(x, epsilon, distance) + + # Get estimates of m-dimensional correlation integrals + corrsum_mdims = correlation_sums(indicators, max_dim) + + # Get variance of effect + variances, k = _var(indicators, max_dim) + stddevs = np.sqrt(variances) + + bds_stats = np.zeros((1, max_dim - 1)) + pvalues = np.zeros((1, max_dim - 1)) + for embedding_dim in range(2, max_dim+1): + ninitial = (embedding_dim - 1) + nobs = nobs_full - ninitial + + # Get estimates of 1-dimensional correlation integrals + # (see Kanzler footnote 10 for why indicators are truncated) + corrsum_1dim, _ = correlation_sum(indicators[ninitial:, ninitial:], 1) + corrsum_mdim = corrsum_mdims[0, embedding_dim - 1] + + # Get the intermediate values for the statistic + effect = corrsum_mdim - (corrsum_1dim**embedding_dim) + sd = stddevs[0, embedding_dim - 2] + + # Calculate the statistic: bds_stat ~ N(0,1) + bds_stats[0, embedding_dim - 2] = np.sqrt(nobs) * effect / sd + + # Calculate the p-value (two-tailed test) + pvalue = 2*stats.norm.sf(np.abs(bds_stats[0, embedding_dim - 2])) + pvalues[0, embedding_dim - 2] = pvalue + + return np.squeeze(bds_stats), np.squeeze(pvalues) diff --git a/statsmodels/tsa/adfvalues.py b/statsmodels/tsa/adfvalues.py new file mode 100644 index 0000000..0aab188 --- /dev/null +++ b/statsmodels/tsa/adfvalues.py @@ -0,0 +1,387 @@ +from scipy.stats import norm +from numpy import array, polyval, inf, asarray + +__all__ = ['mackinnonp','mackinnoncrit'] + +# These are the cut-off values for the left-tail vs. the rest of the +# tau distribution, for getting the p-values + +tau_star_nc = [-1.04, -1.53, -2.68, -3.09, -3.07, -3.77] +tau_min_nc = [-19.04,-19.62,-21.21,-23.25,-21.63,-25.74] +tau_max_nc = [inf,1.51,0.86,0.88,1.05,1.24] +tau_star_c = [-1.61, -2.62, -3.13, -3.47, -3.78, -3.93] +tau_min_c = [-18.83,-18.86,-23.48,-28.07,-25.96,-23.27] +tau_max_c = [2.74,0.92,0.55,0.61,0.79,1] +tau_star_ct = [-2.89, -3.19, -3.50, -3.65, -3.80, -4.36] +tau_min_ct = [-16.18,-21.15,-25.37,-26.63,-26.53,-26.18] +tau_max_ct = [0.7,0.63,0.71,0.93,1.19,1.42] +tau_star_ctt = [-3.21,-3.51,-3.81,-3.83,-4.12,-4.63] +tau_min_ctt = [-17.17,-21.1,-24.33,-24.03,-24.33,-28.22] +tau_max_ctt = [0.54,0.79,1.08,1.43,3.49,1.92] + +small_scaling = array([1,1,1e-2]) +tau_nc_smallp = [ [0.6344,1.2378,3.2496], + [1.9129,1.3857,3.5322], + [2.7648,1.4502,3.4186], + [3.4336,1.4835,3.19], + [4.0999,1.5533,3.59], + [4.5388,1.5344,2.9807]] +tau_nc_smallp = asarray(tau_nc_smallp)*small_scaling + +tau_c_smallp = [ [2.1659,1.4412,3.8269], + [2.92,1.5012,3.9796], + [3.4699,1.4856,3.164], + [3.9673,1.4777,2.6315], + [4.5509,1.5338,2.9545], + [5.1399,1.6036,3.4445]] +tau_c_smallp = asarray(tau_c_smallp)*small_scaling + +tau_ct_smallp = [ [3.2512,1.6047,4.9588], + [3.6646,1.5419,3.6448], + [4.0983,1.5173,2.9898], + [4.5844,1.5338,2.8796], + [5.0722,1.5634,2.9472], + [5.53,1.5914,3.0392]] +tau_ct_smallp = asarray(tau_ct_smallp)*small_scaling + +tau_ctt_smallp = [ [4.0003,1.658,4.8288], + [4.3534,1.6016,3.7947], + [4.7343,1.5768,3.2396], + [5.214,1.6077,3.3449], + [5.6481,1.6274,3.3455], + [5.9296,1.5929,2.8223]] +tau_ctt_smallp = asarray(tau_ctt_smallp)*small_scaling + +large_scaling = array([1,1e-1,1e-1,1e-2]) +tau_nc_largep = [ [0.4797,9.3557,-0.6999,3.3066], + [1.5578,8.558,-2.083,-3.3549], + [2.2268,6.8093,-3.2362,-5.4448], + [2.7654,6.4502,-3.0811,-4.4946], + [3.2684,6.8051,-2.6778,-3.4972], + [3.7268,7.167,-2.3648,-2.8288]] +tau_nc_largep = asarray(tau_nc_largep)*large_scaling + +tau_c_largep = [ [1.7339,9.3202,-1.2745,-1.0368], + [2.1945,6.4695,-2.9198,-4.2377], + [2.5893,4.5168,-3.6529,-5.0074], + [3.0387,4.5452,-3.3666,-4.1921], + [3.5049,5.2098,-2.9158,-3.3468], + [3.9489,5.8933,-2.5359,-2.721]] +tau_c_largep = asarray(tau_c_largep)*large_scaling + +tau_ct_largep = [ [2.5261,6.1654,-3.7956,-6.0285], + [2.85,5.272,-3.6622,-5.1695], + [3.221,5.255,-3.2685,-4.1501], + [3.652,5.9758,-2.7483,-3.2081], + [4.0712,6.6428,-2.3464,-2.546], + [4.4735,7.1757,-2.0681,-2.1196] ] +tau_ct_largep = asarray(tau_ct_largep)*large_scaling + +tau_ctt_largep = [ [3.0778,4.9529,-4.1477,-5.9359], + [3.4713,5.967,-3.2507,-4.2286], + [3.8637,6.7852,-2.6286,-3.1381], + [4.2736,7.6199,-2.1534,-2.4026], + [4.6679,8.2618,-1.822,-1.9147], + [5.0009,8.3735,-1.6994,-1.6928]] +tau_ctt_largep = asarray(tau_ctt_largep)*large_scaling + + +#NOTE: The Z-statistic is used when lags are included to account for +# serial correlation in the error term + +z_star_nc = [-2.9,-8.7,-14.8,-20.9,-25.7,-30.5] +z_star_c = [-8.9,-14.3,-19.5,-25.1,-29.6,-34.4] +z_star_ct = [-15.0,-19.6,-25.3,-29.6,-31.8,-38.4] +z_star_ctt = [-20.7,-25.3,-29.9,-34.4,-38.5,-44.2] + + +# These are Table 5 from MacKinnon (1994) +# small p is defined as p in .005 to .150 ie p = .005 up to z_star +# Z* is the largest value for which it is appropriate to use these +# approximations +# the left tail approximation is +# p = norm.cdf(d_0 + d_1*log(abs(z)) + d_2*log(abs(z))**2 + d_3*log(abs(z))**3 +# there is no Z-min, ie., it is well-behaved in the left tail + +z_nc_smallp = array([[.0342, -.6376,0,-.03872], + [1.3426,-.7680,0,-.04104], + [3.8607,-2.4159,.51293,-.09835], + [6.1072,-3.7250,.85887,-.13102], + [7.7800,-4.4579,1.00056,-.14014], + [4.0253, -.8815,0,-.04887]]) + +z_c_smallp = array([[2.2142,-1.7863,.32828,-.07727], + [1.1662,.1814,-.36707,0], + [6.6584,-4.3486,1.04705,-.15011], + [3.3249,-.8456,0,-.04818], + [4.0356,-.9306,0,-.04776], + [13.9959,-8.4314,1.97411,-.22234]]) + +z_ct_smallp = array([ [4.6476,-2.8932,0.5832,-0.0999], + [7.2453,-4.7021,1.127,-.15665], + [3.4893,-0.8914,0,-.04755], + [1.6604,1.0375,-0.53377,0], + [2.006,1.1197,-0.55315,0], + [11.1626,-5.6858,1.21479,-.15428]]) + +z_ctt_smallp = array([ [3.6739,-1.1549,0,-0.03947], + [3.9783,-1.0619,0,-0.04394], + [2.0062,0.8907,-0.51708,0], + [4.9218,-1.0663,0,-0.04691], + [5.1433,-0.9877,0,-0.04993], + [23.6812,-14.6485,3.42909,-.33794]]) +# These are Table 6 from MacKinnon (1994). +# These are well-behaved in the right tail. +# the approximation function is +# p = norm.cdf(d_0 + d_1 * z + d_2*z**2 + d_3*z**3 + d_4*z**4) +z_large_scaling = array([1,1e-1,1e-2,1e-3,1e-5]) +z_nc_largep = array([ [0.4927,6.906,13.2331,12.099,0], + [1.5167,4.6859,4.2401,2.7939,7.9601], + [2.2347,3.9465,2.2406,0.8746,1.4239], + [2.8239,3.6265,1.6738,0.5408,0.7449], + [3.3174,3.3492,1.2792,0.3416,0.3894], + [3.729,3.0611,0.9579,0.2087,0.1943]]) +z_nc_largep *= z_large_scaling + +z_c_largep = array([ [1.717,5.5243,4.3463,1.6671,0], + [2.2394,4.2377,2.432,0.9241,0.4364], + [2.743,3.626,1.5703,0.4612,0.567], + [3.228,3.3399,1.2319,0.3162,0.3482], + [3.6583,3.0934,0.9681,0.2111,0.1979], + [4.0379,2.8735,0.7694,0.1433,0.1146]]) +z_c_largep *= z_large_scaling + +z_ct_largep = array([ [2.7117,4.5731,2.2868,0.6362,0.5], + [3.0972,4.0873,1.8982,0.5796,0.7384], + [3.4594,3.6326,1.4284,0.3813,0.4325], + [3.806,3.2634,1.0689,0.2402,0.2304], + [4.1402,2.9867,0.8323,0.16,0.1315], + [4.4497,2.7534,0.6582,0.1089,0.0773]]) +z_ct_largep *= z_large_scaling + +z_ctt_largep = array([ [3.4671,4.3476,1.9231,0.5381,0.6216], + [3.7827,3.9421,1.5699,0.4093,0.4485], + [4.052,3.4947,1.1772,0.2642,0.2502], + [4.3311,3.1625,0.9126,0.1775,0.1462], + [4.594,2.8739,0.707,0.1181,0.0838], + [4.8479,2.6447,0.5647,0.0827,0.0518]]) +z_ctt_largep *= z_large_scaling + +#TODO: finish this and then integrate them into adf function +def mackinnonp(teststat, regression="c", N=1, lags=None): + """ + Returns MacKinnon's approximate p-value for teststat. + + Parameters + ---------- + teststat : float + "T-value" from an Augmented Dickey-Fuller regression. + regression : str {"c", "nc", "ct", "ctt"} + This is the method of regression that was used. Following MacKinnon's + notation, this can be "c" for constant, "nc" for no constant, "ct" for + constant and trend, and "ctt" for constant, trend, and trend-squared. + N : int + The number of series believed to be I(1). For (Augmented) Dickey- + Fuller N = 1. + + Returns + ------- + p-value : float + The p-value for the ADF statistic estimated using MacKinnon 1994. + + References + ---------- + MacKinnon, J.G. 1994 "Approximate Asymptotic Distribution Functions for + Unit-Root and Cointegration Tests." Journal of Business & Economics + Statistics, 12.2, 167-76. + + Notes + ----- + For (A)DF + H_0: AR coefficient = 1 + H_a: AR coefficient < 1 + """ + maxstat = eval("tau_max_"+regression) + minstat = eval("tau_min_"+regression) + starstat = eval("tau_star_"+regression) + if teststat > maxstat[N-1]: + return 1.0 + elif teststat < minstat[N-1]: + return 0.0 + if teststat <= starstat[N-1]: + tau_coef = eval("tau_" + regression + "_smallp["+str(N-1)+"]") +# teststat = np.log(np.abs(teststat)) +#above is only for z stats + else: + tau_coef = eval("tau_" + regression + "_largep["+str(N-1)+"]") + return norm.cdf(polyval(tau_coef[::-1], teststat)) + +# These are the new estimates from MacKinnon 2010 +# the first axis is N -1 +# the second axis is 1 %, 5 %, 10 % +# the last axis is the coefficients + +tau_nc_2010 = [[ [-2.56574,-2.2358,-3.627,0], # N = 1 + [-1.94100,-0.2686,-3.365,31.223], + [-1.61682, 0.2656, -2.714, 25.364]]] +tau_nc_2010 = asarray(tau_nc_2010) + +tau_c_2010 = [[ [-3.43035,-6.5393,-16.786,-79.433], # N = 1, 1% + [-2.86154,-2.8903,-4.234,-40.040], # 5 % + [-2.56677,-1.5384,-2.809,0]], # 10 % + [ [-3.89644,-10.9519,-33.527,0], # N = 2 + [-3.33613,-6.1101,-6.823,0], + [-3.04445,-4.2412,-2.720,0]], + [ [-4.29374,-14.4354,-33.195,47.433], # N = 3 + [-3.74066,-8.5632,-10.852,27.982], + [-3.45218,-6.2143,-3.718,0]], + [ [-4.64332,-18.1031,-37.972,0], # N = 4 + [-4.09600,-11.2349,-11.175,0], + [-3.81020,-8.3931,-4.137,0]], + [ [-4.95756,-21.8883,-45.142,0], # N = 5 + [-4.41519,-14.0405,-12.575,0], + [-4.13157,-10.7417,-3.784,0]], + [ [-5.24568,-25.6688,-57.737,88.639], # N = 6 + [-4.70693,-16.9178,-17.492,60.007], + [-4.42501,-13.1875,-5.104,27.877]], + [ [-5.51233,-29.5760,-69.398,164.295],# N = 7 + [-4.97684,-19.9021,-22.045,110.761], + [-4.69648,-15.7315,-5.104,27.877]], + [ [-5.76202,-33.5258,-82.189,256.289], # N = 8 + [-5.22924,-23.0023,-24.646,144.479], + [-4.95007,-18.3959,-7.344,94.872]], + [ [-5.99742,-37.6572,-87.365,248.316],# N = 9 + [-5.46697,-26.2057,-26.627,176.382], + [-5.18897,-21.1377,-9.484,172.704]], + [ [-6.22103,-41.7154,-102.680,389.33],# N = 10 + [-5.69244,-29.4521,-30.994,251.016], + [-5.41533,-24.0006,-7.514,163.049]], + [ [-6.43377,-46.0084,-106.809,352.752],# N = 11 + [-5.90714,-32.8336,-30.275,249.994], + [-5.63086,-26.9693,-4.083,151.427]], + [ [-6.63790,-50.2095,-124.156,579.622],# N = 12 + [-6.11279,-36.2681,-32.505,314.802], + [-5.83724,-29.9864,-2.686,184.116]]] +tau_c_2010 = asarray(tau_c_2010) + +tau_ct_2010 = [[ [-3.95877,-9.0531,-28.428,-134.155], # N = 1 + [-3.41049,-4.3904,-9.036,-45.374], + [-3.12705,-2.5856,-3.925,-22.380]], + [ [-4.32762,-15.4387,-35.679,0], # N = 2 + [-3.78057,-9.5106,-12.074,0], + [-3.49631,-7.0815,-7.538,21.892]], + [ [-4.66305,-18.7688,-49.793,104.244], # N = 3 + [-4.11890,-11.8922,-19.031,77.332], + [-3.83511,-9.0723,-8.504,35.403]], + [ [-4.96940,-22.4694,-52.599,51.314], # N = 4 + [-4.42871,-14.5876,-18.228,39.647], + [-4.14633,-11.2500,-9.873,54.109]], + [ [-5.25276,-26.2183,-59.631,50.646], # N = 5 + [-4.71537,-17.3569,-22.660,91.359], + [-4.43422,-13.6078,-10.238,76.781]], + [ [-5.51727,-29.9760,-75.222,202.253], # N = 6 + [-4.98228,-20.3050,-25.224,132.03], + [-4.70233,-16.1253,-9.836,94.272]], + [ [-5.76537,-33.9165,-84.312,245.394], # N = 7 + [-5.23299,-23.3328,-28.955,182.342], + [-4.95405,-18.7352,-10.168,120.575]], + [ [-6.00003,-37.8892,-96.428,335.92], # N = 8 + [-5.46971,-26.4771,-31.034,220.165], + [-5.19183,-21.4328,-10.726,157.955]], + [ [-6.22288,-41.9496,-109.881,466.068], # N = 9 + [-5.69447,-29.7152,-33.784,273.002], + [-5.41738,-24.2882,-8.584,169.891]], + [ [-6.43551,-46.1151,-120.814,566.823], # N = 10 + [-5.90887,-33.0251,-37.208,346.189], + [-5.63255,-27.2042,-6.792,177.666]], + [ [-6.63894,-50.4287,-128.997,642.781], # N = 11 + [-6.11404,-36.4610,-36.246,348.554], + [-5.83850,-30.1995,-5.163,210.338]], + [ [-6.83488,-54.7119,-139.800,736.376], # N = 12 + [-6.31127,-39.9676,-37.021,406.051], + [-6.03650,-33.2381,-6.606,317.776]]] +tau_ct_2010 = asarray(tau_ct_2010) + +tau_ctt_2010 = [[ [-4.37113,-11.5882,-35.819,-334.047], # N = 1 + [-3.83239,-5.9057,-12.490,-118.284], + [-3.55326,-3.6596,-5.293,-63.559]], + [ [-4.69276,-20.2284,-64.919,88.884], # N =2 + [-4.15387,-13.3114,-28.402,72.741], + [-3.87346,-10.4637,-17.408,66.313]], + [ [-4.99071,-23.5873,-76.924,184.782], # N = 3 + [-4.45311,-15.7732,-32.316,122.705], + [-4.17280,-12.4909,-17.912,83.285]], + [ [-5.26780,-27.2836,-78.971,137.871], # N = 4 + [-4.73244,-18.4833,-31.875,111.817], + [-4.45268,-14.7199,-17.969,101.92]], + [ [-5.52826,-30.9051,-92.490,248.096], # N = 5 + [-4.99491,-21.2360,-37.685,194.208], + [-4.71587,-17.0820,-18.631,136.672]], + [ [-5.77379,-34.7010,-105.937,393.991], # N = 6 + [-5.24217,-24.2177,-39.153,232.528], + [-4.96397,-19.6064,-18.858,174.919]], + [ [-6.00609,-38.7383,-108.605,365.208], # N = 7 + [-5.47664,-27.3005,-39.498,246.918], + [-5.19921,-22.2617,-17.910,208.494]], + [ [-6.22758,-42.7154,-119.622,421.395], # N = 8 + [-5.69983,-30.4365,-44.300,345.48], + [-5.42320,-24.9686,-19.688,274.462]], + [ [-6.43933,-46.7581,-136.691,651.38], # N = 9 + [-5.91298,-33.7584,-42.686,346.629], + [-5.63704,-27.8965,-13.880,236.975]], + [ [-6.64235,-50.9783,-145.462,752.228], # N = 10 + [-6.11753,-37.056,-48.719,473.905], + [-5.84215,-30.8119,-14.938,316.006]], + [ [-6.83743,-55.2861,-152.651,792.577], # N = 11 + [-6.31396,-40.5507,-46.771,487.185], + [-6.03921,-33.8950,-9.122,285.164]], + [ [-7.02582,-59.6037,-166.368,989.879], # N = 12 + [-6.50353,-44.0797,-47.242,543.889], + [-6.22941,-36.9673,-10.868,418.414]]] +tau_ctt_2010 = asarray(tau_ctt_2010) + +def mackinnoncrit(N=1, regression ="c", nobs=inf): + """ + Returns the critical values for cointegrating and the ADF test. + + In 2010 MacKinnon updated the values of his 1994 paper with critical values + for the augmented Dickey-Fuller tests. These new values are to be + preferred and are used here. + + Parameters + ---------- + N : int + The number of series of I(1) series for which the null of + non-cointegration is being tested. For N > 12, the critical values + are linearly interpolated (not yet implemented). For the ADF test, + N = 1. + reg : str {'c', 'tc', 'ctt', 'nc'} + Following MacKinnon (1996), these stand for the type of regression run. + 'c' for constant and no trend, 'tc' for constant with a linear trend, + 'ctt' for constant with a linear and quadratic trend, and 'nc' for + no constant. The values for the no constant case are taken from the + 1996 paper, as they were not updated for 2010 due to the unrealistic + assumptions that would underlie such a case. + nobs : int or np.inf + This is the sample size. If the sample size is numpy.inf, then the + asymptotic critical values are returned. + + References + ---------- + MacKinnon, J.G. 1994 "Approximate Asymptotic Distribution Functions for + Unit-Root and Cointegration Tests." Journal of Business & Economics + Statistics, 12.2, 167-76. + MacKinnon, J.G. 2010. "Critical Values for Cointegration Tests." + Queen's University, Dept of Economics Working Papers 1227. + http://ideas.repec.org/p/qed/wpaper/1227.html + """ + reg = regression + if reg not in ['c','ct','nc','ctt']: + raise ValueError("regression keyword %s not understood") % reg + if nobs is inf: + return eval("tau_"+reg+"_2010["+str(N-1)+",:,0]") + else: + return polyval(eval("tau_"+reg+"_2010["+str(N-1)+",:,::-1].T"),1./nobs) + +if __name__=="__main__": + pass diff --git a/statsmodels/tsa/api.py b/statsmodels/tsa/api.py new file mode 100644 index 0000000..9dd776b --- /dev/null +++ b/statsmodels/tsa/api.py @@ -0,0 +1,25 @@ +from .ar_model import AR +from .arima_model import ARMA, ARIMA +from . import vector_ar as var +from .arima_process import arma_generate_sample, ArmaProcess +from .vector_ar.var_model import VAR +from .vector_ar.svar_model import SVAR +from .vector_ar.dynamic import DynamicVAR +from .filters import api as filters +from . import tsatools +from .tsatools import (add_trend, detrend, lagmat, lagmat2ds, add_lag) +from . import interp +from . import stattools +from .stattools import * +from .base import datetools +from .seasonal import seasonal_decompose +from ..graphics import tsaplots as graphics +from .x13 import x13_arima_select_order +from .x13 import x13_arima_analysis +from .statespace import api as statespace +from .statespace.sarimax import SARIMAX +from .statespace.structural import UnobservedComponents +from .statespace.varmax import VARMAX +from .statespace.dynamic_factor import DynamicFactor +from .regime_switching.markov_regression import MarkovRegression +from .regime_switching.markov_autoregression import MarkovAutoregression \ No newline at end of file diff --git a/statsmodels/tsa/ar_model.py b/statsmodels/tsa/ar_model.py new file mode 100644 index 0000000..733f41f --- /dev/null +++ b/statsmodels/tsa/ar_model.py @@ -0,0 +1,910 @@ +from __future__ import division +from statsmodels.compat.python import iteritems, range, string_types, lmap, long + +import numpy as np +from numpy import dot, identity +from numpy.linalg import inv, slogdet +from scipy.stats import norm +from statsmodels.regression.linear_model import OLS +from statsmodels.tsa.tsatools import (lagmat, add_trend, + _ar_transparams, _ar_invtransparams) +import statsmodels.tsa.base.tsa_model as tsbase +import statsmodels.base.model as base +from statsmodels.tools.decorators import (resettable_cache, + cache_readonly, cache_writable) +from statsmodels.tools.numdiff import approx_fprime, approx_hess +from statsmodels.tsa.kalmanf.kalmanfilter import KalmanFilter +import statsmodels.base.wrapper as wrap +from statsmodels.tsa.vector_ar import util +from statsmodels.tsa.base.datetools import _index_date + + +__all__ = ['AR'] + + +def sumofsq(x, axis=0): + """Helper function to calculate sum of squares along first axis""" + return np.sum(x**2, axis=0) + + +def _check_ar_start(start, k_ar, method, dynamic): + if (method == 'cmle' or dynamic) and start < k_ar: + raise ValueError("Start must be >= k_ar for conditional MLE " + "or dynamic forecast. Got %d" % start) + + +def _validate(start, k_ar, dates, method): + """ + Checks the date and then returns an integer + """ + from datetime import datetime + if isinstance(start, (string_types, datetime)): + start_date = start + start = _index_date(start, dates) + if 'mle' not in method and start < k_ar: + raise ValueError("Start must be >= k_ar for conditional MLE or " + "dynamic forecast. Got %s" % start_date) + return start + + +def _ar_predict_out_of_sample(y, params, p, k_trend, steps, start=0): + mu = params[:k_trend] or 0 # only have to worry about constant + arparams = params[k_trend:][::-1] # reverse for dot + + # dynamic endogenous variable + endog = np.zeros(p + steps) # this is one too big but doesn't matter + if start: + endog[:p] = y[start-p:start] + else: + endog[:p] = y[-p:] + + forecast = np.zeros(steps) + for i in range(steps): + fcast = mu + np.dot(arparams, endog[i:i+p]) + forecast[i] = fcast + endog[i + p] = fcast + + return forecast + + +class AR(tsbase.TimeSeriesModel): + __doc__ = tsbase._tsa_doc % {"model" : "Autoregressive AR(p) model", + "params" : """endog : array-like + 1-d endogenous response variable. The independent variable.""", + "extra_params" : base._missing_param_doc, + "extra_sections" : ""} + + def __init__(self, endog, dates=None, freq=None, missing='none'): + super(AR, self).__init__(endog, None, dates, freq, missing=missing) + endog = self.endog # original might not have been an ndarray + if endog.ndim == 1: + endog = endog[:, None] + self.endog = endog # to get shapes right + elif endog.ndim > 1 and endog.shape[1] != 1: + raise ValueError("Only the univariate case is implemented") + + def initialize(self): + pass + + def _transparams(self, params): + """ + Transforms params to induce stationarity/invertability. + + Reference + --------- + Jones(1980) + """ + p = self.k_ar + k = self.k_trend + newparams = params.copy() + newparams[k:k+p] = _ar_transparams(params[k:k+p].copy()) + return newparams + + def _invtransparams(self, start_params): + """ + Inverse of the Jones reparameterization + """ + p = self.k_ar + k = self.k_trend + newparams = start_params.copy() + newparams[k:k+p] = _ar_invtransparams(start_params[k:k+p].copy()) + return newparams + + def _presample_fit(self, params, start, p, end, y, predictedvalues): + """ + Return the pre-sample predicted values using the Kalman Filter + + Notes + ----- + See predict method for how to use start and p. + """ + k = self.k_trend + + # build system matrices + T_mat = KalmanFilter.T(params, p, k, p) + R_mat = KalmanFilter.R(params, p, k, 0, p) + + # Initial State mean and variance + alpha = np.zeros((p, 1)) + Q_0 = dot(inv(identity(p**2)-np.kron(T_mat, T_mat)), + dot(R_mat, R_mat.T).ravel('F')) + + Q_0 = Q_0.reshape(p, p, order='F') # TODO: order might need to be p+k + P = Q_0 + Z_mat = KalmanFilter.Z(p) + for i in range(end): # iterate p-1 times to fit presample + v_mat = y[i] - dot(Z_mat, alpha) + F_mat = dot(dot(Z_mat, P), Z_mat.T) + Finv = 1./F_mat # inv. always scalar + K = dot(dot(dot(T_mat, P), Z_mat.T), Finv) + # update state + alpha = dot(T_mat, alpha) + dot(K, v_mat) + L = T_mat - dot(K, Z_mat) + P = dot(dot(T_mat, P), L.T) + dot(R_mat, R_mat.T) + #P[0,0] += 1 # for MA part, R_mat.R_mat.T above + if i >= start - 1: # only record if we ask for it + predictedvalues[i + 1 - start] = dot(Z_mat, alpha) + + def _get_predict_start(self, start, dynamic): + method = getattr(self, 'method', 'mle') + k_ar = getattr(self, 'k_ar', 0) + if start is None: + if method == 'mle' and not dynamic: + start = 0 + else: # can't do presample fit for cmle or dynamic + start = k_ar + elif isinstance(start, (int, long)): + start = super(AR, self)._get_predict_start(start) + else: # should be a date + start = _validate(start, k_ar, self.data.dates, method) + start = super(AR, self)._get_predict_start(start) + _check_ar_start(start, k_ar, method, dynamic) + self._set_predict_start_date(start) + return start + + def predict(self, params, start=None, end=None, dynamic=False): + """ + Returns in-sample and out-of-sample prediction. + + Parameters + ---------- + params : array + The fitted model parameters. + start : int, str, or datetime + Zero-indexed observation number at which to start forecasting, ie., + the first forecast is start. Can also be a date string to + parse or a datetime type. + end : int, str, or datetime + Zero-indexed observation number at which to end forecasting, ie., + the first forecast is start. Can also be a date string to + parse or a datetime type. + dynamic : bool + The `dynamic` keyword affects in-sample prediction. If dynamic + is False, then the in-sample lagged values are used for + prediction. If `dynamic` is True, then in-sample forecasts are + used in place of lagged dependent variables. The first forecasted + value is `start`. + + Returns + ------- + predicted values : array + + Notes + ----- + The linear Gaussian Kalman filter is used to return pre-sample fitted + values. The exact initial Kalman Filter is used. See Durbin and Koopman + in the references for more information. + """ + # will return an index of a date + start = self._get_predict_start(start, dynamic) + end, out_of_sample = self._get_predict_end(end) + + if start - end > 1: + raise ValueError("end is before start") + + k_ar = self.k_ar + k_trend = self.k_trend + method = self.method + endog = self.endog.squeeze() + + if dynamic: + out_of_sample += end - start + 1 + return _ar_predict_out_of_sample(endog, params, k_ar, + k_trend, out_of_sample, start) + + predictedvalues = np.zeros(end + 1 - start) + + # fit pre-sample + if method == 'mle': # use Kalman Filter to get initial values + if k_trend: + mu = params[0]/(1-np.sum(params[k_trend:])) + + # modifies predictedvalues in place + if start < k_ar: + self._presample_fit(params, start, k_ar, min(k_ar-1, end), + endog[:k_ar] - mu, predictedvalues) + predictedvalues[:k_ar-start] += mu + + if end < k_ar: + return predictedvalues + + # just do the whole thing and truncate + fittedvalues = dot(self.X, params) + + pv_start = max(k_ar - start, 0) + fv_start = max(start - k_ar, 0) + fv_end = min(len(fittedvalues), end-k_ar+1) + predictedvalues[pv_start:] = fittedvalues[fv_start:fv_end] + + if out_of_sample: + forecastvalues = _ar_predict_out_of_sample(endog, params, + k_ar, k_trend, + out_of_sample) + predictedvalues = np.r_[predictedvalues, forecastvalues] + + return predictedvalues + + def _presample_varcov(self, params): + """ + Returns the inverse of the presample variance-covariance. + + Notes + ----- + See Hamilton p. 125 + """ + k = self.k_trend + p = self.k_ar + p1 = p+1 + + # get inv(Vp) Hamilton 5.3.7 + params0 = np.r_[-1, params[k:]] + + Vpinv = np.zeros((p, p), dtype=params.dtype) + for i in range(1, p1): + Vpinv[i-1, i-1:] = np.correlate(params0, params0[:i],)[:-1] + Vpinv[i-1, i-1:] -= np.correlate(params0[-i:], params0,)[:-1] + + Vpinv = Vpinv + Vpinv.T - np.diag(Vpinv.diagonal()) + return Vpinv + + def _loglike_css(self, params): + """ + Loglikelihood of AR(p) process using conditional sum of squares + """ + nobs = self.nobs + Y = self.Y + X = self.X + ssr = sumofsq(Y.squeeze() - np.dot(X, params)) + sigma2 = ssr/nobs + return (-nobs/2 * (np.log(2 * np.pi) + np.log(sigma2)) - + ssr/(2 * sigma2)) + + def _loglike_mle(self, params): + """ + Loglikelihood of AR(p) process using exact maximum likelihood + """ + nobs = self.nobs + X = self.X + endog = self.endog + k_ar = self.k_ar + k_trend = self.k_trend + + # reparameterize according to Jones (1980) like in ARMA/Kalman Filter + if self.transparams: + params = self._transparams(params) + + # get mean and variance for pre-sample lags + yp = endog[:k_ar].copy() + if k_trend: + c = [params[0]] * k_ar + else: + c = [0] + mup = np.asarray(c / (1 - np.sum(params[k_trend:]))) + diffp = yp - mup[:, None] + + # get inv(Vp) Hamilton 5.3.7 + Vpinv = self._presample_varcov(params) + + diffpVpinv = np.dot(np.dot(diffp.T, Vpinv), diffp).item() + ssr = sumofsq(endog[k_ar:].squeeze() - np.dot(X, params)) + + # concentrating the likelihood means that sigma2 is given by + sigma2 = 1./nobs * (diffpVpinv + ssr) + self.sigma2 = sigma2 + logdet = slogdet(Vpinv)[1] # TODO: add check for singularity + loglike = -1/2. * (nobs * (np.log(2 * np.pi) + np.log(sigma2)) - + logdet + diffpVpinv / sigma2 + ssr / sigma2) + return loglike + + def loglike(self, params): + """ + The loglikelihood of an AR(p) process + + Parameters + ---------- + params : array + The fitted parameters of the AR model + + Returns + ------- + llf : float + The loglikelihood evaluated at `params` + + Notes + ----- + Contains constant term. If the model is fit by OLS then this returns + the conditonal maximum likelihood. + + .. math:: \\frac{\\left(n-p\\right)}{2}\\left(\\log\\left(2\\pi\\right)+\\log\\left(\\sigma^{2}\\right)\\right)-\\frac{1}{\\sigma^{2}}\\sum_{i}\\epsilon_{i}^{2} + + If it is fit by MLE then the (exact) unconditional maximum likelihood + is returned. + + .. math:: -\\frac{n}{2}log\\left(2\\pi\\right)-\\frac{n}{2}\\log\\left(\\sigma^{2}\\right)+\\frac{1}{2}\\left|V_{p}^{-1}\\right|-\\frac{1}{2\\sigma^{2}}\\left(y_{p}-\\mu_{p}\\right)^{\\prime}V_{p}^{-1}\\left(y_{p}-\\mu_{p}\\right)-\\frac{1}{2\\sigma^{2}}\\sum_{t=p+1}^{n}\\epsilon_{i}^{2} + + where + + :math:`\\mu_{p}` is a (`p` x 1) vector with each element equal to the + mean of the AR process and :math:`\\sigma^{2}V_{p}` is the (`p` x `p`) + variance-covariance matrix of the first `p` observations. + """ + #TODO: Math is on Hamilton ~pp 124-5 + if self.method == "cmle": + return self._loglike_css(params) + + else: + return self._loglike_mle(params) + + def score(self, params): + """ + Return the gradient of the loglikelihood at params. + + Parameters + ---------- + params : array-like + The parameter values at which to evaluate the score function. + + Notes + ----- + Returns numerical gradient. + """ + loglike = self.loglike + return approx_fprime(params, loglike, epsilon=1e-8) + + def information(self, params): + """ + Not Implemented Yet + """ + return + + def hessian(self, params): + """ + Returns numerical hessian for now. + """ + loglike = self.loglike + return approx_hess(params, loglike) + + def _stackX(self, k_ar, trend): + """ + Private method to build the RHS matrix for estimation. + + Columns are trend terms then lags. + """ + endog = self.endog + X = lagmat(endog, maxlag=k_ar, trim='both') + k_trend = util.get_trendorder(trend) + if k_trend: + X = add_trend(X, prepend=True, trend=trend) + self.k_trend = k_trend + return X + + def select_order(self, maxlag, ic, trend='c', method='mle'): + """ + Select the lag order according to the information criterion. + + Parameters + ---------- + maxlag : int + The highest lag length tried. See `AR.fit`. + ic : str {'aic','bic','hqic','t-stat'} + Criterion used for selecting the optimal lag length. + See `AR.fit`. + trend : str {'c','nc'} + Whether to include a constant or not. 'c' - include constant. + 'nc' - no constant. + + Returns + ------- + bestlag : int + Best lag according to IC. + """ + endog = self.endog + + # make Y and X with same nobs to compare ICs + Y = endog[maxlag:] + self.Y = Y # attach to get correct fit stats + X = self._stackX(maxlag, trend) # sets k_trend + self.X = X + k = self.k_trend # k_trend set in _stackX + k = max(1, k) # handle if startlag is 0 + results = {} + + if ic != 't-stat': + for lag in range(k, maxlag+1): + # have to reinstantiate the model to keep comparable models + endog_tmp = endog[maxlag-lag:] + fit = AR(endog_tmp).fit(maxlag=lag, method=method, + full_output=0, trend=trend, + maxiter=100, disp=0) + results[lag] = eval('fit.'+ic) + bestic, bestlag = min((res, k) for k, res in iteritems(results)) + + else: # choose by last t-stat. + stop = 1.6448536269514722 # for t-stat, norm.ppf(.95) + for lag in range(maxlag, k - 1, -1): + # have to reinstantiate the model to keep comparable models + endog_tmp = endog[maxlag - lag:] + fit = AR(endog_tmp).fit(maxlag=lag, method=method, + full_output=0, trend=trend, + maxiter=35, disp=-1) + + bestlag = 0 + if np.abs(fit.tvalues[-1]) >= stop: + bestlag = lag + break + return bestlag + + def fit(self, maxlag=None, method='cmle', ic=None, trend='c', + transparams=True, start_params=None, solver='lbfgs', maxiter=35, + full_output=1, disp=1, callback=None, **kwargs): + """ + Fit the unconditional maximum likelihood of an AR(p) process. + + Parameters + ---------- + maxlag : int + If `ic` is None, then maxlag is the lag length used in fit. If + `ic` is specified then maxlag is the highest lag order used to + select the correct lag order. If maxlag is None, the default is + round(12*(nobs/100.)**(1/4.)) + method : str {'cmle', 'mle'}, optional + cmle - Conditional maximum likelihood using OLS + mle - Unconditional (exact) maximum likelihood. See `solver` + and the Notes. + ic : str {'aic','bic','hic','t-stat'} + Criterion used for selecting the optimal lag length. + aic - Akaike Information Criterion + bic - Bayes Information Criterion + t-stat - Based on last lag + hqic - Hannan-Quinn Information Criterion + If any of the information criteria are selected, the lag length + which results in the lowest value is selected. If t-stat, the + model starts with maxlag and drops a lag until the highest lag + has a t-stat that is significant at the 95 % level. + trend : str {'c','nc'} + Whether to include a constant or not. 'c' - include constant. + 'nc' - no constant. + + The below can be specified if method is 'mle' + + transparams : bool, optional + Whether or not to transform the parameters to ensure stationarity. + Uses the transformation suggested in Jones (1980). + start_params : array-like, optional + A first guess on the parameters. Default is cmle estimates. + solver : str or None, optional + Solver to be used if method is 'mle'. The default is 'lbfgs' + (limited memory Broyden-Fletcher-Goldfarb-Shanno). Other choices + are 'bfgs', 'newton' (Newton-Raphson), 'nm' (Nelder-Mead), + 'cg' - (conjugate gradient), 'ncg' (non-conjugate gradient), + and 'powell'. + maxiter : int, optional + The maximum number of function evaluations. Default is 35. + tol : float + The convergence tolerance. Default is 1e-08. + full_output : bool, optional + If True, all output from solver will be available in + the Results object's mle_retvals attribute. Output is dependent + on the solver. See Notes for more information. + disp : bool, optional + If True, convergence information is output. + callback : function, optional + Called after each iteration as callback(xk) where xk is the current + parameter vector. + kwargs + See Notes for keyword arguments that can be passed to fit. + + References + ---------- + Jones, R.H. 1980 "Maximum likelihood fitting of ARMA models to time + series with missing observations." `Technometrics`. 22.3. + 389-95. + + See also + -------- + statsmodels.base.model.LikelihoodModel.fit + """ + method = method.lower() + if method not in ['cmle', 'yw', 'mle']: + raise ValueError("Method %s not recognized" % method) + self.method = method + self.trend = trend + self.transparams = transparams + nobs = len(self.endog) # overwritten if method is 'cmle' + endog = self.endog + + if maxlag is None: + maxlag = int(round(12*(nobs/100.)**(1/4.))) + k_ar = maxlag # stays this if ic is None + + # select lag length + if ic is not None: + ic = ic.lower() + if ic not in ['aic', 'bic', 'hqic', 't-stat']: + raise ValueError("ic option %s not understood" % ic) + k_ar = self.select_order(k_ar, ic, trend, method) + + self.k_ar = k_ar # change to what was chosen by ic + + # redo estimation for best lag + # make LHS + Y = endog[k_ar:, :] + # make lagged RHS + X = self._stackX(k_ar, trend) # sets self.k_trend + k_trend = self.k_trend + self.exog_names = util.make_lag_names(self.endog_names, k_ar, k_trend) + self.Y = Y + self.X = X + + if method == "cmle": # do OLS + arfit = OLS(Y, X).fit() + params = arfit.params + self.nobs = nobs - k_ar + self.sigma2 = arfit.ssr/arfit.nobs # needed for predict fcasterr + + elif method == "mle": + solver = solver.lower() + self.nobs = nobs + if start_params is None: + start_params = OLS(Y, X).fit().params + else: + if len(start_params) != k_trend + k_ar: + raise ValueError("Length of start params is %d. There" + " are %d parameters." % + (len(start_params), k_trend + k_ar)) + start_params = self._invtransparams(start_params) + if solver == 'lbfgs': + kwargs.setdefault('pgtol', 1e-8) + kwargs.setdefault('factr', 1e2) + kwargs.setdefault('m', 12) + kwargs.setdefault('approx_grad', True) + mlefit = super(AR, self).fit(start_params=start_params, + method=solver, maxiter=maxiter, + full_output=full_output, disp=disp, + callback=callback, **kwargs) + + params = mlefit.params + if self.transparams: + params = self._transparams(params) + self.transparams = False # turn off now for other results + + # don't use yw, because we can't estimate the constant + #elif method == "yw": + # params, omega = yule_walker(endog, order=maxlag, + # method="mle", demean=False) + # how to handle inference after Yule-Walker? + # self.params = params #TODO: don't attach here + # self.omega = omega + + pinv_exog = np.linalg.pinv(X) + normalized_cov_params = np.dot(pinv_exog, pinv_exog.T) + arfit = ARResults(self, params, normalized_cov_params) + if method == 'mle' and full_output: + arfit.mle_retvals = mlefit.mle_retvals + arfit.mle_settings = mlefit.mle_settings + return ARResultsWrapper(arfit) + + +class ARResults(tsbase.TimeSeriesModelResults): + """ + Class to hold results from fitting an AR model. + + Parameters + ---------- + model : AR Model instance + Reference to the model that is fit. + params : array + The fitted parameters from the AR Model. + normalized_cov_params : array + inv(dot(X.T,X)) where X is the lagged values. + scale : float, optional + An estimate of the scale of the model. + + Returns + ------- + **Attributes** + + aic : float + Akaike Information Criterion using Lutkephol's definition. + :math:`log(sigma) + 2*(1 + k_ar + k_trend)/nobs` + bic : float + Bayes Information Criterion + :math:`\\log(\\sigma) + (1 + k_ar + k_trend)*\\log(nobs)/nobs` + bse : array + The standard errors of the estimated parameters. If `method` is 'cmle', + then the standard errors that are returned are the OLS standard errors + of the coefficients. If the `method` is 'mle' then they are computed + using the numerical Hessian. + fittedvalues : array + The in-sample predicted values of the fitted AR model. The `k_ar` + initial values are computed via the Kalman Filter if the model is + fit by `mle`. + fpe : float + Final prediction error using Lutkepohl's definition + ((n_totobs+k_trend)/(n_totobs-k_ar-k_trend))*sigma + hqic : float + Hannan-Quinn Information Criterion. + k_ar : float + Lag length. Sometimes used as `p` in the docs. + k_trend : float + The number of trend terms included. 'nc'=0, 'c'=1. + llf : float + The loglikelihood of the model evaluated at `params`. See `AR.loglike` + model : AR model instance + A reference to the fitted AR model. + nobs : float + The number of available observations `nobs` - `k_ar` + n_totobs : float + The number of total observations in `endog`. Sometimes `n` in the docs. + params : array + The fitted parameters of the model. + pvalues : array + The p values associated with the standard errors. + resid : array + The residuals of the model. If the model is fit by 'mle' then the + pre-sample residuals are calculated using fittedvalues from the Kalman + Filter. + roots : array + The roots of the AR process are the solution to + (1 - arparams[0]*z - arparams[1]*z**2 -...- arparams[p-1]*z**k_ar) = 0 + Stability requires that the roots in modulus lie outside the unit + circle. + scale : float + Same as sigma2 + sigma2 : float + The variance of the innovations (residuals). + trendorder : int + The polynomial order of the trend. 'nc' = None, 'c' or 't' = 0, + 'ct' = 1, etc. + tvalues : array + The t-values associated with `params`. + """ + + _cache = {} # for scale setter + + def __init__(self, model, params, normalized_cov_params=None, scale=1.): + super(ARResults, self).__init__(model, params, normalized_cov_params, + scale) + self._cache = resettable_cache() + self.nobs = model.nobs + n_totobs = len(model.endog) + self.n_totobs = n_totobs + self.X = model.X # copy? + self.Y = model.Y + k_ar = model.k_ar + self.k_ar = k_ar + k_trend = model.k_trend + self.k_trend = k_trend + trendorder = None + if k_trend > 0: + trendorder = k_trend - 1 + self.trendorder = trendorder + #TODO: cmle vs mle? + self.df_model = k_ar + k_trend + self.df_resid = self.model.df_resid = n_totobs - self.df_model + + @cache_writable() + def sigma2(self): + model = self.model + if model.method == "cmle": # do DOF correction + return 1. / self.nobs * sumofsq(self.resid) + else: + return self.model.sigma2 + + @cache_writable() # for compatability with RegressionResults + def scale(self): + return self.sigma2 + + @cache_readonly + def bse(self): # allow user to specify? + if self.model.method == "cmle": # uses different scale/sigma def. + resid = self.resid + ssr = np.dot(resid, resid) + ols_scale = ssr / (self.nobs - self.k_ar - self.k_trend) + return np.sqrt(np.diag(self.cov_params(scale=ols_scale))) + else: + hess = approx_hess(self.params, self.model.loglike) + return np.sqrt(np.diag(-np.linalg.inv(hess))) + + @cache_readonly + def pvalues(self): + return norm.sf(np.abs(self.tvalues))*2 + + @cache_readonly + def aic(self): + #JP: this is based on loglike with dropped constant terms ? + # Lutkepohl + #return np.log(self.sigma2) + 1./self.model.nobs * self.k_ar + # Include constant as estimated free parameter and double the loss + return np.log(self.sigma2) + 2 * (1 + self.df_model)/self.nobs + # Stata defintion + #nobs = self.nobs + #return -2 * self.llf/nobs + 2 * (self.k_ar+self.k_trend)/nobs + + @cache_readonly + def hqic(self): + nobs = self.nobs + # Lutkepohl + # return np.log(self.sigma2)+ 2 * np.log(np.log(nobs))/nobs * self.k_ar + # R uses all estimated parameters rather than just lags + return (np.log(self.sigma2) + 2 * np.log(np.log(nobs))/nobs * + (1 + self.df_model)) + # Stata + #nobs = self.nobs + #return -2 * self.llf/nobs + 2 * np.log(np.log(nobs))/nobs * \ + # (self.k_ar + self.k_trend) + + @cache_readonly + def fpe(self): + nobs = self.nobs + df_model = self.df_model + #Lutkepohl + return ((nobs+df_model)/(nobs-df_model))*self.sigma2 + + @cache_readonly + def bic(self): + nobs = self.nobs + # Lutkepohl + #return np.log(self.sigma2) + np.log(nobs)/nobs * self.k_ar + # Include constant as est. free parameter + return np.log(self.sigma2) + (1 + self.df_model) * np.log(nobs)/nobs + # Stata + # return -2 * self.llf/nobs + np.log(nobs)/nobs * (self.k_ar + \ + # self.k_trend) + + @cache_readonly + def resid(self): + #NOTE: uses fittedvalues because it calculate presample values for mle + model = self.model + endog = model.endog.squeeze() + if model.method == "cmle": # elimate pre-sample + return endog[self.k_ar:] - self.fittedvalues + else: + return model.endog.squeeze() - self.fittedvalues + + #def ssr(self): + # resid = self.resid + # return np.dot(resid, resid) + + @cache_readonly + def roots(self): + k = self.k_trend + return np.roots(np.r_[1, -self.params[k:]]) ** -1 + + @cache_readonly + def fittedvalues(self): + return self.model.predict(self.params) + + def predict(self, start=None, end=None, dynamic=False): + params = self.params + predictedvalues = self.model.predict(params, start, end, dynamic) + return predictedvalues + + #start = self.model._get_predict_start(start) + #end, out_of_sample = self.model._get_predict_end(end) + + ##TODO: return forecast errors and confidence intervals + #from statsmodels.tsa.arima_process import arma2ma + #ma_rep = arma2ma(np.r_[1,-params[::-1]], [1], out_of_sample) + #fcasterr = np.sqrt(self.sigma2 * np.cumsum(ma_rep**2)) + + preddoc = AR.predict.__doc__.split('\n') + extra_doc = (""" confint : bool, float + Whether to return confidence intervals. If `confint` == True, + 95 % confidence intervals are returned. Else if `confint` is a + float, then it is assumed to be the alpha value of the confidence + interval. That is confint == .05 returns a 95% confidence + interval, and .10 would return a 90% confidence interval.""" + ).split('\n') + #ret_doc = """ + # fcasterr : array-like + # confint : array-like + #""" + predict.__doc__ = '\n'.join(preddoc[:5] + preddoc[7:20] + extra_doc + + preddoc[20:]) + + +class ARResultsWrapper(wrap.ResultsWrapper): + _attrs = {} + _wrap_attrs = wrap.union_dicts(tsbase.TimeSeriesResultsWrapper._wrap_attrs, + _attrs) + _methods = {} + _wrap_methods = wrap.union_dicts(tsbase.TimeSeriesResultsWrapper._wrap_methods, + _methods) +wrap.populate_wrapper(ARResultsWrapper, ARResults) + + +if __name__ == "__main__": + import statsmodels.api as sm + sunspots = sm.datasets.sunspots.load() +# Why does R demean the data by defaut? + ar_ols = AR(sunspots.endog) + res_ols = ar_ols.fit(maxlag=9) + ar_mle = AR(sunspots.endog) + res_mle_bfgs = ar_mle.fit(maxlag=9, method="mle", solver="bfgs", + maxiter=500, gtol=1e-10) +# res_mle2 = ar_mle.fit(maxlag=1, method="mle", maxiter=500, penalty=True, +# tol=1e-13) + +# ar_yw = AR(sunspots.endog) +# res_yw = ar_yw.fit(maxlag=4, method="yw") + +# # Timings versus talkbox +# from timeit import default_timer as timer +# print "Time AR fit vs. talkbox" +# # generate a long series of AR(2) data +# +# nobs = 1000000 +# y = np.empty(nobs) +# y[0:2] = 0 +# for i in range(2,nobs): +# y[i] = .25 * y[i-1] - .75 * y[i-2] + np.random.rand() +# +# mod_sm = AR(y) +# t = timer() +# res_sm = mod_sm.fit(method="yw", trend="nc", demean=False, maxlag=2) +# t_end = timer() +# print str(t_end - t) + " seconds for sm.AR with yule-walker, 2 lags" +# try: +# import scikits.talkbox as tb +# except: +# raise ImportError("You need scikits.talkbox installed for timings") +# t = timer() +# mod_tb = tb.lpc(y, 2) +# t_end = timer() +# print str(t_end - t) + " seconds for talkbox.lpc" +# print """For higher lag lengths ours quickly fills up memory and starts +#thrashing the swap. Should we include talkbox C code or Cythonize the +#Levinson recursion algorithm?""" + + ## Try with a pandas series + import pandas + import scikits.timeseries as ts + d1 = ts.Date(year=1700, freq='A') + #NOTE: have to have yearBegin offset for annual data until parser rewrite + #should this be up to the user, or should it be done in TSM init? + #NOTE: not anymore, it's end of year now + ts_dr = ts.date_array(start_date=d1, length=len(sunspots.endog)) + pandas_dr = pandas.DatetimeIndex(start=d1.datetime, + periods=len(sunspots.endog), + freq='A-DEC') + #pandas_dr = pandas_dr.shift(-1, pandas.datetools.yearBegin) + + dates = np.arange(1700, 1700 + len(sunspots.endog)) + dates = ts.date_array(dates, freq='A') + #sunspots = pandas.Series(sunspots.endog, index=dates) + + #NOTE: pandas only does business days for dates it looks like + import datetime + dt_dates = np.asarray(lmap(datetime.datetime.fromordinal, + ts_dr.toordinal().astype(int))) + sunspots = pandas.Series(sunspots.endog, index=dt_dates) + + #NOTE: pandas can't handle pre-1900 dates + mod = AR(sunspots, freq='A') + res = mod.fit(method='mle', maxlag=9) + +# some data for an example in Box Jenkins + IBM = np.asarray([460, 457, 452, 459, 462, 459, 463, 479, 493, 490.]) + w = np.diff(IBM) + theta = .5 diff --git a/statsmodels/tsa/arima_model.py b/statsmodels/tsa/arima_model.py new file mode 100644 index 0000000..501545d --- /dev/null +++ b/statsmodels/tsa/arima_model.py @@ -0,0 +1,1980 @@ +# Note: The information criteria add 1 to the number of parameters +# whenever the model has an AR or MA term since, in principle, +# the variance could be treated as a free parameter and restricted +# This code does not allow this, but it adds consistency with other +# packages such as gretl and X12-ARIMA + +from __future__ import absolute_import +from statsmodels.compat.python import string_types, range, long +# for 2to3 with extensions + +from datetime import datetime + +import numpy as np +from scipy import optimize +from scipy.stats import t, norm +from scipy.signal import lfilter +from numpy import dot, log, zeros, pi +from numpy.linalg import inv + +from statsmodels.tools.decorators import (cache_readonly, + resettable_cache) +import statsmodels.tsa.base.tsa_model as tsbase +import statsmodels.base.wrapper as wrap +from statsmodels.regression.linear_model import yule_walker, GLS +from statsmodels.tsa.tsatools import (lagmat, add_trend, + _ar_transparams, _ar_invtransparams, + _ma_transparams, _ma_invtransparams, + unintegrate, unintegrate_levels) +from statsmodels.tsa.vector_ar import util +from statsmodels.tsa.ar_model import AR +from statsmodels.tsa.arima_process import arma2ma +from statsmodels.tools.numdiff import approx_hess_cs, approx_fprime_cs +from statsmodels.tsa.base.datetools import _index_date +from statsmodels.tsa.kalmanf import KalmanFilter + +_armax_notes = """ + + Notes + ----- + If exogenous variables are given, then the model that is fit is + + .. math:: + + \\phi(L)(y_t - X_t\\beta) = \\theta(L)\epsilon_t + + where :math:`\\phi` and :math:`\\theta` are polynomials in the lag + operator, :math:`L`. This is the regression model with ARMA errors, + or ARMAX model. This specification is used, whether or not the model + is fit using conditional sum of square or maximum-likelihood, using + the `method` argument in + :meth:`statsmodels.tsa.arima_model.%(Model)s.fit`. Therefore, for + now, `css` and `mle` refer to estimation methods only. This may + change for the case of the `css` model in future versions. +""" + +_arma_params = """\ + endog : array-like + The endogenous variable. + order : iterable + The (p,q) order of the model for the number of AR parameters, + differences, and MA parameters to use. + exog : array-like, optional + An optional array of exogenous variables. This should *not* include a + constant or trend. You can specify this in the `fit` method.""" + +_arma_model = "Autoregressive Moving Average ARMA(p,q) Model" + +_arima_model = "Autoregressive Integrated Moving Average ARIMA(p,d,q) Model" + +_arima_params = """\ + endog : array-like + The endogenous variable. + order : iterable + The (p,d,q) order of the model for the number of AR parameters, + differences, and MA parameters to use. + exog : array-like, optional + An optional array of exogenous variables. This should *not* include a + constant or trend. You can specify this in the `fit` method.""" + +_predict_notes = """ + Notes + ----- + Use the results predict method instead. +""" + +_results_notes = """ + Notes + ----- + It is recommended to use dates with the time-series models, as the + below will probably make clear. However, if ARIMA is used without + dates and/or `start` and `end` are given as indices, then these + indices are in terms of the *original*, undifferenced series. Ie., + given some undifferenced observations:: + + 1970Q1, 1 + 1970Q2, 1.5 + 1970Q3, 1.25 + 1970Q4, 2.25 + 1971Q1, 1.2 + 1971Q2, 4.1 + + 1970Q1 is observation 0 in the original series. However, if we fit an + ARIMA(p,1,q) model then we lose this first observation through + differencing. Therefore, the first observation we can forecast (if + using exact MLE) is index 1. In the differenced series this is index + 0, but we refer to it as 1 from the original series. +""" + +_predict = """ + %(Model)s model in-sample and out-of-sample prediction + + Parameters + ---------- + %(params)s + start : int, str, or datetime + Zero-indexed observation number at which to start forecasting, ie., + the first forecast is start. Can also be a date string to + parse or a datetime type. + end : int, str, or datetime + Zero-indexed observation number at which to end forecasting, ie., + the first forecast is start. Can also be a date string to + parse or a datetime type. However, if the dates index does not + have a fixed frequency, end must be an integer index if you + want out of sample prediction. + exog : array-like, optional + If the model is an ARMAX and out-of-sample forecasting is + requested, exog must be given. Note that you'll need to pass + `k_ar` additional lags for any exogenous variables. E.g., if you + fit an ARMAX(2, q) model and want to predict 5 steps, you need 7 + observations to do this. + dynamic : bool, optional + The `dynamic` keyword affects in-sample prediction. If dynamic + is False, then the in-sample lagged values are used for + prediction. If `dynamic` is True, then in-sample forecasts are + used in place of lagged dependent variables. The first forecasted + value is `start`. + %(extra_params)s + + Returns + ------- + %(returns)s + %(extra_section)s +""" + +_predict_returns = """predict : array + The predicted values. + +""" + +_arma_predict = _predict % {"Model" : "ARMA", + "params" : """ + params : array-like + The fitted parameters of the model.""", + "extra_params" : "", + "returns" : _predict_returns, + "extra_section" : _predict_notes} + +_arma_results_predict = _predict % {"Model" : "ARMA", "params" : "", + "extra_params" : "", + "returns" : _predict_returns, + "extra_section" : _results_notes} + +_arima_predict = _predict % {"Model" : "ARIMA", + "params" : """params : array-like + The fitted parameters of the model.""", + "extra_params" : """typ : str {'linear', 'levels'} + + - 'linear' : Linear prediction in terms of the differenced + endogenous variables. + - 'levels' : Predict the levels of the original endogenous + variables.\n""", "returns" : _predict_returns, + "extra_section" : _predict_notes} + +_arima_results_predict = _predict % {"Model" : "ARIMA", + "params" : "", + "extra_params" : + """typ : str {'linear', 'levels'} + + - 'linear' : Linear prediction in terms of the differenced + endogenous variables. + - 'levels' : Predict the levels of the original endogenous + variables.\n""", + "returns" : _predict_returns, + "extra_section" : _results_notes} + +_arima_plot_predict_example = """ Examples + -------- + >>> import statsmodels.api as sm + >>> import matplotlib.pyplot as plt + >>> import pandas as pd + >>> + >>> dta = sm.datasets.sunspots.load_pandas().data[['SUNACTIVITY']] + >>> dta.index = pd.DatetimeIndex(start='1700', end='2009', freq='A') + >>> res = sm.tsa.ARMA(dta, (3, 0)).fit() + >>> fig, ax = plt.subplots() + >>> ax = dta.ix['1950':].plot(ax=ax) + >>> fig = res.plot_predict('1990', '2012', dynamic=True, ax=ax, + ... plot_insample=False) + >>> plt.show() + + .. plot:: plots/arma_predict_plot.py +""" + +_plot_predict = (""" + Plot forecasts + """ + '\n'.join(_predict.split('\n')[2:])) % { + "params" : "", + "extra_params" : """alpha : float, optional + The confidence intervals for the forecasts are (1 - alpha)% + plot_insample : bool, optional + Whether to plot the in-sample series. Default is True. + ax : matplotlib.Axes, optional + Existing axes to plot with.""", + "returns" : """fig : matplotlib.Figure + The plotted Figure instance""", + "extra_section" : ('\n' + _arima_plot_predict_example + + '\n' + _results_notes) + } + +_arima_plot_predict = (""" + Plot forecasts + """ + '\n'.join(_predict.split('\n')[2:])) % { + "params" : "", + "extra_params" : """alpha : float, optional + The confidence intervals for the forecasts are (1 - alpha)% + plot_insample : bool, optional + Whether to plot the in-sample series. Default is True. + ax : matplotlib.Axes, optional + Existing axes to plot with.""", + "returns" : """fig : matplotlib.Figure + The plotted Figure instance""", + "extra_section" : ('\n' + _arima_plot_predict_example + + '\n' + + '\n'.join(_results_notes.split('\n')[:3]) + + (""" + This is hard-coded to only allow plotting of the forecasts in levels. +""") + + '\n'.join(_results_notes.split('\n')[3:])) + } + + +def cumsum_n(x, n): + if n: + n -= 1 + x = np.cumsum(x) + return cumsum_n(x, n) + else: + return x + + +def _check_arima_start(start, k_ar, k_diff, method, dynamic): + if start < 0: + raise ValueError("The start index %d of the original series " + "has been differenced away" % start) + elif (dynamic or 'mle' not in method) and start < k_ar: + raise ValueError("Start must be >= k_ar for conditional MLE " + "or dynamic forecast. Got %d" % start) + + +def _get_predict_out_of_sample(endog, p, q, k_trend, k_exog, start, errors, + trendparam, exparams, arparams, maparams, steps, + method, exog=None): + """ + Returns endog, resid, mu of appropriate length for out of sample + prediction. + """ + if q: + resid = np.zeros(q) + if start and 'mle' in method or (start == p and not start == 0): + resid[:q] = errors[start-q:start] + elif start: + resid[:q] = errors[start-q-p:start-p] + else: + resid[:q] = errors[-q:] + else: + resid = None + + y = endog + if k_trend == 1: + # use expectation not constant + if k_exog > 0: + #TODO: technically should only hold for MLE not + # conditional model. See #274. + # ensure 2-d for conformability + if np.ndim(exog) == 1 and k_exog == 1: + # have a 1d series of observations -> 2d + exog = exog[:, None] + elif np.ndim(exog) == 1: + # should have a 1d row of exog -> 2d + if len(exog) != k_exog: + raise ValueError("1d exog given and len(exog) != k_exog") + exog = exog[None, :] + X = lagmat(np.dot(exog, exparams), p, original='in', trim='both') + mu = trendparam * (1 - arparams.sum()) + # arparams were reversed in unpack for ease later + mu = mu + (np.r_[1, -arparams[::-1]] * X).sum(1)[:, None] + else: + mu = trendparam * (1 - arparams.sum()) + mu = np.array([mu]*steps) + elif k_exog > 0: + X = np.dot(exog, exparams) + #NOTE: you shouldn't have to give in-sample exog! + X = lagmat(X, p, original='in', trim='both') + mu = (np.r_[1, -arparams[::-1]] * X).sum(1)[:, None] + else: + mu = np.zeros(steps) + + endog = np.zeros(p + steps - 1) + + if p and start: + endog[:p] = y[start-p:start] + elif p: + endog[:p] = y[-p:] + + return endog, resid, mu + + +def _arma_predict_out_of_sample(params, steps, errors, p, q, k_trend, k_exog, + endog, exog=None, start=0, method='mle'): + (trendparam, exparams, + arparams, maparams) = _unpack_params(params, (p, q), k_trend, + k_exog, reverse=True) + endog, resid, mu = _get_predict_out_of_sample(endog, p, q, k_trend, k_exog, + start, errors, trendparam, + exparams, arparams, + maparams, steps, method, + exog) + + forecast = np.zeros(steps) + if steps == 1: + if q: + return mu[0] + np.dot(arparams, endog[:p]) + np.dot(maparams, + resid[:q]) + else: + return mu[0] + np.dot(arparams, endog[:p]) + + if q: + i = 0 # if q == 1 + else: + i = -1 + + for i in range(min(q, steps - 1)): + fcast = (mu[i] + np.dot(arparams, endog[i:i + p]) + + np.dot(maparams[:q - i], resid[i:i + q])) + forecast[i] = fcast + endog[i+p] = fcast + + for i in range(i + 1, steps - 1): + fcast = mu[i] + np.dot(arparams, endog[i:i+p]) + forecast[i] = fcast + endog[i+p] = fcast + + #need to do one more without updating endog + forecast[steps - 1] = mu[steps - 1] + np.dot(arparams, endog[steps - 1:]) + return forecast + + +def _arma_predict_in_sample(start, end, endog, resid, k_ar, method): + """ + Pre- and in-sample fitting for ARMA. + """ + if 'mle' in method: + fittedvalues = endog - resid # get them all then trim + else: + fittedvalues = endog[k_ar:] - resid + + fv_start = start + if 'mle' not in method: + fv_start -= k_ar # start is in terms of endog index + fv_end = min(len(fittedvalues), end + 1) + return fittedvalues[fv_start:fv_end] + + +def _validate(start, k_ar, k_diff, dates, method): + if isinstance(start, (string_types, datetime)): + start = _index_date(start, dates) + start -= k_diff + if 'mle' not in method and start < k_ar - k_diff: + raise ValueError("Start must be >= k_ar for conditional " + "MLE or dynamic forecast. Got %s" % start) + + return start + + +def _unpack_params(params, order, k_trend, k_exog, reverse=False): + p, q = order + k = k_trend + k_exog + maparams = params[k+p:] + arparams = params[k:k+p] + trend = params[:k_trend] + exparams = params[k_trend:k] + if reverse: + return trend, exparams, arparams[::-1], maparams[::-1] + return trend, exparams, arparams, maparams + + +def _unpack_order(order): + k_ar, k_ma, k = order + k_lags = max(k_ar, k_ma+1) + return k_ar, k_ma, order, k_lags + + +def _make_arma_names(data, k_trend, order, exog_names): + k_ar, k_ma = order + exog_names = exog_names or [] + ar_lag_names = util.make_lag_names([data.ynames], k_ar, 0) + ar_lag_names = [''.join(('ar.', i)) for i in ar_lag_names] + ma_lag_names = util.make_lag_names([data.ynames], k_ma, 0) + ma_lag_names = [''.join(('ma.', i)) for i in ma_lag_names] + trend_name = util.make_lag_names('', 0, k_trend) + + # ensure exog_names stays unchanged when the `fit` method + # is called multiple times. + if exog_names[-k_ma:] == ma_lag_names and \ + exog_names[-(k_ar+k_ma):-k_ma] == ar_lag_names and \ + (not exog_names or not trend_name or trend_name[0] == exog_names[0]): + return exog_names + + exog_names = trend_name + exog_names + ar_lag_names + ma_lag_names + return exog_names + + +def _make_arma_exog(endog, exog, trend): + k_trend = 1 # overwritten if no constant + if exog is None and trend == 'c': # constant only + exog = np.ones((len(endog), 1)) + elif exog is not None and trend == 'c': # constant plus exogenous + exog = add_trend(exog, trend='c', prepend=True) + elif exog is not None and trend == 'nc': + # make sure it's not holding constant from last run + if exog.var() == 0: + exog = None + k_trend = 0 + if trend == 'nc': + k_trend = 0 + return k_trend, exog + + +def _check_estimable(nobs, n_params): + if nobs <= n_params: + raise ValueError("Insufficient degrees of freedom to estimate") + + +class ARMA(tsbase.TimeSeriesModel): + + __doc__ = tsbase._tsa_doc % {"model" : _arma_model, + "params" : _arma_params, "extra_params" : "", + "extra_sections" : _armax_notes % + {"Model" : "ARMA"}} + + def __init__(self, endog, order, exog=None, dates=None, freq=None, + missing='none'): + super(ARMA, self).__init__(endog, exog, dates, freq, missing=missing) + exog = self.data.exog # get it after it's gone through processing + _check_estimable(len(self.endog), sum(order)) + self.k_ar = k_ar = order[0] + self.k_ma = k_ma = order[1] + self.k_lags = max(k_ar, k_ma+1) + if exog is not None: + if exog.ndim == 1: + exog = exog[:, None] + k_exog = exog.shape[1] # number of exog. variables excl. const + else: + k_exog = 0 + self.k_exog = k_exog + + def _fit_start_params_hr(self, order, start_ar_lags=None): + """ + Get starting parameters for fit. + + Parameters + ---------- + order : iterable + (p,q,k) - AR lags, MA lags, and number of exogenous variables + including the constant. + start_ar_lags : int, optional + If start_ar_lags is not None, rather than fitting an AR process + according to best BIC, fits an AR process with a lag length equal + to start_ar_lags. + + Returns + ------- + start_params : array + A first guess at the starting parameters. + + Notes + ----- + If necessary, fits an AR process with the laglength start_ar_lags, or + selected according to best BIC if start_ar_lags is None. Obtain the + residuals. Then fit an ARMA(p,q) model via OLS using these residuals + for a first approximation. Uses a separate OLS regression to find the + coefficients of exogenous variables. + + References + ---------- + Hannan, E.J. and Rissanen, J. 1982. "Recursive estimation of mixed + autoregressive-moving average order." `Biometrika`. 69.1. + + Durbin, J. 1960. "The Fitting of Time-Series Models." + `Review of the International Statistical Institute`. Vol. 28, No. 3 + """ + p, q, k = order + start_params = zeros((p+q+k)) + endog = self.endog.copy() # copy because overwritten + exog = self.exog + if k != 0: + ols_params = GLS(endog, exog).fit().params + start_params[:k] = ols_params + endog -= np.dot(exog, ols_params).squeeze() + if q != 0: + if p != 0: + # make sure we don't run into small data problems in AR fit + nobs = len(endog) + if start_ar_lags is None: + maxlag = int(round(12*(nobs/100.)**(1/4.))) + if maxlag >= nobs: + maxlag = nobs - 1 + armod = AR(endog).fit(ic='bic', trend='nc', maxlag=maxlag) + else: + if start_ar_lags >= nobs: + start_ar_lags = nobs - 1 + armod = AR(endog).fit(trend='nc', maxlag=start_ar_lags) + arcoefs_tmp = armod.params + p_tmp = armod.k_ar + # it's possible in small samples that optimal lag-order + # doesn't leave enough obs. No consistent way to fix. + if p_tmp + q >= len(endog): + raise ValueError("Proper starting parameters cannot" + " be found for this order with this " + "number of observations. Use the " + "start_params argument, or set " + "start_ar_lags to an integer less than " + "len(endog) - q.") + resid = endog[p_tmp:] - np.dot(lagmat(endog, p_tmp, + trim='both'), + arcoefs_tmp) + if p < p_tmp + q: + endog_start = p_tmp + q - p + resid_start = 0 + else: + endog_start = 0 + resid_start = p - p_tmp - q + lag_endog = lagmat(endog, p, 'both')[endog_start:] + lag_resid = lagmat(resid, q, 'both')[resid_start:] + # stack ar lags and resids + X = np.column_stack((lag_endog, lag_resid)) + coefs = GLS(endog[max(p_tmp + q, p):], X).fit().params + start_params[k:k+p+q] = coefs + else: + start_params[k+p:k+p+q] = yule_walker(endog, order=q)[0] + if q == 0 and p != 0: + arcoefs = yule_walker(endog, order=p)[0] + start_params[k:k+p] = arcoefs + + # check AR coefficients + if p and not np.all(np.abs(np.roots(np.r_[1, -start_params[k:k + p]] + )) < 1): + raise ValueError("The computed initial AR coefficients are not " + "stationary\nYou should induce stationarity, " + "choose a different model order, or you can\n" + "pass your own start_params.") + # check MA coefficients + elif q and not np.all(np.abs(np.roots(np.r_[1, start_params[k + p:]] + )) < 1): + raise ValueError("The computed initial MA coefficients are not " + "invertible\nYou should induce invertibility, " + "choose a different model order, or you can\n" + "pass your own start_params.") + + # check MA coefficients + return start_params + + def _fit_start_params(self, order, method, start_ar_lags=None): + if method != 'css-mle': # use Hannan-Rissanen to get start params + start_params = self._fit_start_params_hr(order, start_ar_lags) + else: # use CSS to get start params + func = lambda params: -self.loglike_css(params) + #start_params = [.1]*(k_ar+k_ma+k_exog) # different one for k? + start_params = self._fit_start_params_hr(order, start_ar_lags) + if self.transparams: + start_params = self._invtransparams(start_params) + bounds = [(None,)*2]*sum(order) + mlefit = optimize.fmin_l_bfgs_b(func, start_params, + approx_grad=True, m=12, + pgtol=1e-7, factr=1e3, + bounds=bounds, iprint=-1) + start_params = self._transparams(mlefit[0]) + return start_params + + def score(self, params): + """ + Compute the score function at params. + + Notes + ----- + This is a numerical approximation. + """ + return approx_fprime_cs(params, self.loglike, args=(False,)) + + def hessian(self, params): + """ + Compute the Hessian at params, + + Notes + ----- + This is a numerical approximation. + """ + return approx_hess_cs(params, self.loglike, args=(False,)) + + def _transparams(self, params): + """ + Transforms params to induce stationarity/invertability. + + Reference + --------- + Jones(1980) + """ + k_ar, k_ma = self.k_ar, self.k_ma + k = self.k_exog + self.k_trend + newparams = np.zeros_like(params) + + # just copy exogenous parameters + if k != 0: + newparams[:k] = params[:k] + + # AR Coeffs + if k_ar != 0: + newparams[k:k+k_ar] = _ar_transparams(params[k:k+k_ar].copy()) + + # MA Coeffs + if k_ma != 0: + newparams[k+k_ar:] = _ma_transparams(params[k+k_ar:].copy()) + return newparams + + def _invtransparams(self, start_params): + """ + Inverse of the Jones reparameterization + """ + k_ar, k_ma = self.k_ar, self.k_ma + k = self.k_exog + self.k_trend + newparams = start_params.copy() + arcoefs = newparams[k:k+k_ar] + macoefs = newparams[k+k_ar:] + # AR coeffs + if k_ar != 0: + newparams[k:k+k_ar] = _ar_invtransparams(arcoefs) + + # MA coeffs + if k_ma != 0: + newparams[k+k_ar:k+k_ar+k_ma] = _ma_invtransparams(macoefs) + return newparams + + def _get_predict_start(self, start, dynamic): + # do some defaults + method = getattr(self, 'method', 'mle') + k_ar = getattr(self, 'k_ar', 0) + k_diff = getattr(self, 'k_diff', 0) + if start is None: + if 'mle' in method and not dynamic: + start = 0 + else: + start = k_ar + self._set_predict_start_date(start) # else it's done in super + elif isinstance(start, (int, long)): + start = super(ARMA, self)._get_predict_start(start) + else: # should be on a date + #elif 'mle' not in method or dynamic: # should be on a date + start = _validate(start, k_ar, k_diff, self.data.dates, + method) + start = super(ARMA, self)._get_predict_start(start) + _check_arima_start(start, k_ar, k_diff, method, dynamic) + return start + + def _get_predict_end(self, end, dynamic=False): + # pass through so predict works for ARIMA and ARMA + return super(ARMA, self)._get_predict_end(end) + + def geterrors(self, params): + """ + Get the errors of the ARMA process. + + Parameters + ---------- + params : array-like + The fitted ARMA parameters + order : array-like + 3 item iterable, with the number of AR, MA, and exogenous + parameters, including the trend + """ + + #start = self._get_predict_start(start) # will be an index of a date + #end, out_of_sample = self._get_predict_end(end) + params = np.asarray(params) + k_ar, k_ma = self.k_ar, self.k_ma + k = self.k_exog + self.k_trend + + method = getattr(self, 'method', 'mle') + if 'mle' in method: # use KalmanFilter to get errors + (y, k, nobs, k_ar, k_ma, k_lags, newparams, Z_mat, m, R_mat, + T_mat, paramsdtype) = KalmanFilter._init_kalman_state(params, + self) + + errors = KalmanFilter.geterrors(y, k, k_ar, k_ma, k_lags, nobs, + Z_mat, m, R_mat, T_mat, + paramsdtype) + if isinstance(errors, tuple): + errors = errors[0] # non-cython version returns a tuple + else: # use scipy.signal.lfilter + y = self.endog.copy() + k = self.k_exog + self.k_trend + if k > 0: + y -= dot(self.exog, params[:k]) + + k_ar = self.k_ar + k_ma = self.k_ma + + (trendparams, exparams, + arparams, maparams) = _unpack_params(params, (k_ar, k_ma), + self.k_trend, self.k_exog, + reverse=False) + b, a = np.r_[1, -arparams], np.r_[1, maparams] + zi = zeros((max(k_ar, k_ma))) + for i in range(k_ar): + zi[i] = sum(-b[:i+1][::-1]*y[:i+1]) + e = lfilter(b, a, y, zi=zi) + errors = e[0][k_ar:] + return errors.squeeze() + + def predict(self, params, start=None, end=None, exog=None, dynamic=False): + method = getattr(self, 'method', 'mle') # don't assume fit + #params = np.asarray(params) + + # will return an index of a date + start = self._get_predict_start(start, dynamic) + end, out_of_sample = self._get_predict_end(end, dynamic) + if out_of_sample and (exog is None and self.k_exog > 0): + raise ValueError("You must provide exog for ARMAX") + + endog = self.endog + resid = self.geterrors(params) + k_ar = self.k_ar + + if exog is not None: + # Note: we ignore currently the index of exog if it is available + exog = np.asarray(exog) + if self.k_exog == 1 and exog.ndim == 1: + exog = exog[:, None] + + if out_of_sample != 0 and self.k_exog > 0: + # we need the last k_ar exog for the lag-polynomial + if self.k_exog > 0 and k_ar > 0 and not dynamic: + # need the last k_ar exog for the lag-polynomial + exog = np.vstack((self.exog[-k_ar:, self.k_trend:], exog)) + + if dynamic: + if self.k_exog > 0: + # need the last k_ar exog for the lag-polynomial + exog = np.vstack((self.exog[start - k_ar:, self.k_trend:], exog)) + #TODO: now that predict does dynamic in-sample it should + # also return error estimates and confidence intervals + # but how? len(endog) is not tot_obs + out_of_sample += end - start + 1 + return _arma_predict_out_of_sample(params, out_of_sample, resid, + k_ar, self.k_ma, self.k_trend, + self.k_exog, endog, exog, + start, method) + + predictedvalues = _arma_predict_in_sample(start, end, endog, resid, + k_ar, method) + if out_of_sample: + forecastvalues = _arma_predict_out_of_sample(params, out_of_sample, + resid, k_ar, + self.k_ma, + self.k_trend, + self.k_exog, endog, + exog, method=method) + predictedvalues = np.r_[predictedvalues, forecastvalues] + return predictedvalues + predict.__doc__ = _arma_predict + + def loglike(self, params, set_sigma2=True): + """ + Compute the log-likelihood for ARMA(p,q) model + + Notes + ----- + Likelihood used depends on the method set in fit + """ + method = self.method + if method in ['mle', 'css-mle']: + return self.loglike_kalman(params, set_sigma2) + elif method == 'css': + return self.loglike_css(params, set_sigma2) + else: + raise ValueError("Method %s not understood" % method) + + def loglike_kalman(self, params, set_sigma2=True): + """ + Compute exact loglikelihood for ARMA(p,q) model by the Kalman Filter. + """ + return KalmanFilter.loglike(params, self, set_sigma2) + + def loglike_css(self, params, set_sigma2=True): + """ + Conditional Sum of Squares likelihood function. + """ + k_ar = self.k_ar + k_ma = self.k_ma + k = self.k_exog + self.k_trend + y = self.endog.copy().astype(params.dtype) + nobs = self.nobs + # how to handle if empty? + if self.transparams: + newparams = self._transparams(params) + else: + newparams = params + if k > 0: + y -= dot(self.exog, newparams[:k]) + # the order of p determines how many zeros errors to set for lfilter + b, a = np.r_[1, -newparams[k:k + k_ar]], np.r_[1, newparams[k + k_ar:]] + zi = np.zeros((max(k_ar, k_ma)), dtype=params.dtype) + for i in range(k_ar): + zi[i] = sum(-b[:i + 1][::-1] * y[:i + 1]) + errors = lfilter(b, a, y, zi=zi)[0][k_ar:] + + ssr = np.dot(errors, errors) + sigma2 = ssr/nobs + if set_sigma2: + self.sigma2 = sigma2 + llf = -nobs/2.*(log(2*pi) + log(sigma2)) - ssr/(2*sigma2) + return llf + + def fit(self, start_params=None, trend='c', method="css-mle", + transparams=True, solver='lbfgs', maxiter=50, full_output=1, + disp=5, callback=None, start_ar_lags=None, **kwargs): + """ + Fits ARMA(p,q) model using exact maximum likelihood via Kalman filter. + + Parameters + ---------- + start_params : array-like, optional + Starting parameters for ARMA(p,q). If None, the default is given + by ARMA._fit_start_params. See there for more information. + transparams : bool, optional + Whehter or not to transform the parameters to ensure stationarity. + Uses the transformation suggested in Jones (1980). If False, + no checking for stationarity or invertibility is done. + method : str {'css-mle','mle','css'} + This is the loglikelihood to maximize. If "css-mle", the + conditional sum of squares likelihood is maximized and its values + are used as starting values for the computation of the exact + likelihood via the Kalman filter. If "mle", the exact likelihood + is maximized via the Kalman Filter. If "css" the conditional sum + of squares likelihood is maximized. All three methods use + `start_params` as starting parameters. See above for more + information. + trend : str {'c','nc'} + Whether to include a constant or not. 'c' includes constant, + 'nc' no constant. + solver : str or None, optional + Solver to be used. The default is 'lbfgs' (limited memory + Broyden-Fletcher-Goldfarb-Shanno). Other choices are 'bfgs', + 'newton' (Newton-Raphson), 'nm' (Nelder-Mead), 'cg' - + (conjugate gradient), 'ncg' (non-conjugate gradient), and + 'powell'. By default, the limited memory BFGS uses m=12 to + approximate the Hessian, projected gradient tolerance of 1e-8 and + factr = 1e2. You can change these by using kwargs. + maxiter : int, optional + The maximum number of function evaluations. Default is 50. + tol : float + The convergence tolerance. Default is 1e-08. + full_output : bool, optional + If True, all output from solver will be available in + the Results object's mle_retvals attribute. Output is dependent + on the solver. See Notes for more information. + disp : int, optional + If True, convergence information is printed. For the default + l_bfgs_b solver, disp controls the frequency of the output during + the iterations. disp < 0 means no output in this case. + callback : function, optional + Called after each iteration as callback(xk) where xk is the current + parameter vector. + start_ar_lags : int, optional + Parameter for fitting start_params. When fitting start_params, + residuals are obtained from an AR fit, then an ARMA(p,q) model is + fit via OLS using these residuals. If start_ar_lags is None, fit + an AR process according to best BIC. If start_ar_lags is not None, + fits an AR process with a lag length equal to start_ar_lags. + See ARMA._fit_start_params_hr for more information. + kwargs + See Notes for keyword arguments that can be passed to fit. + + Returns + ------- + statsmodels.tsa.arima_model.ARMAResults class + + See also + -------- + statsmodels.base.model.LikelihoodModel.fit : for more information + on using the solvers. + ARMAResults : results class returned by fit + + Notes + ------ + If fit by 'mle', it is assumed for the Kalman Filter that the initial + unkown state is zero, and that the inital variance is + P = dot(inv(identity(m**2)-kron(T,T)),dot(R,R.T).ravel('F')).reshape(r, + r, order = 'F') + + """ + k_ar = self.k_ar + k_ma = self.k_ma + + # enforce invertibility + self.transparams = transparams + + endog, exog = self.endog, self.exog + k_exog = self.k_exog + self.nobs = len(endog) # this is overwritten if method is 'css' + + # (re)set trend and handle exogenous variables + # always pass original exog + k_trend, exog = _make_arma_exog(endog, self.exog, trend) + + # Check has something to estimate + if k_ar == 0 and k_ma == 0 and k_trend == 0 and k_exog == 0: + raise ValueError("Estimation requires the inclusion of least one " + "AR term, MA term, a constant or an exogenous " + "variable.") + + # check again now that we know the trend + _check_estimable(len(endog), k_ar + k_ma + k_exog + k_trend) + + self.k_trend = k_trend + self.exog = exog # overwrites original exog from __init__ + + # (re)set names for this model + self.exog_names = _make_arma_names(self.data, k_trend, (k_ar, k_ma), + self.exog_names) + k = k_trend + k_exog + + # choose objective function + if k_ma == 0 and k_ar == 0: + method = "css" # Always CSS when no AR or MA terms + + self.method = method = method.lower() + + # adjust nobs for css + if method == 'css': + self.nobs = len(self.endog) - k_ar + + if start_params is not None: + start_params = np.asarray(start_params) + + else: # estimate starting parameters + start_params = self._fit_start_params((k_ar, k_ma, k), method, + start_ar_lags) + + if transparams: # transform initial parameters to ensure invertibility + start_params = self._invtransparams(start_params) + + if solver == 'lbfgs': + kwargs.setdefault('pgtol', 1e-8) + kwargs.setdefault('factr', 1e2) + kwargs.setdefault('m', 12) + kwargs.setdefault('approx_grad', True) + mlefit = super(ARMA, self).fit(start_params, method=solver, + maxiter=maxiter, + full_output=full_output, disp=disp, + callback=callback, **kwargs) + params = mlefit.params + + if transparams: # transform parameters back + params = self._transparams(params) + + self.transparams = False # so methods don't expect transf. + + normalized_cov_params = None # TODO: fix this + armafit = ARMAResults(self, params, normalized_cov_params) + armafit.mle_retvals = mlefit.mle_retvals + armafit.mle_settings = mlefit.mle_settings + return ARMAResultsWrapper(armafit) + + +#NOTE: the length of endog changes when we give a difference to fit +#so model methods are not the same on unfit models as fit ones +#starting to think that order of model should be put in instantiation... +class ARIMA(ARMA): + + __doc__ = tsbase._tsa_doc % {"model" : _arima_model, + "params" : _arima_params, "extra_params" : "", + "extra_sections" : _armax_notes % + {"Model" : "ARIMA"}} + + def __new__(cls, endog, order, exog=None, dates=None, freq=None, + missing='none'): + p, d, q = order + if d == 0: # then we just use an ARMA model + return ARMA(endog, (p, q), exog, dates, freq, missing) + else: + mod = super(ARIMA, cls).__new__(cls) + mod.__init__(endog, order, exog, dates, freq, missing) + return mod + + def __init__(self, endog, order, exog=None, dates=None, freq=None, + missing='none'): + p, d, q = order + if d > 2: + #NOTE: to make more general, need to address the d == 2 stuff + # in the predict method + raise ValueError("d > 2 is not supported") + super(ARIMA, self).__init__(endog, (p, q), exog, dates, freq, missing) + self.k_diff = d + self._first_unintegrate = unintegrate_levels(self.endog[:d], d) + self.endog = np.diff(self.endog, n=d) + #NOTE: will check in ARMA but check again since differenced now + _check_estimable(len(self.endog), p+q) + if exog is not None: + self.exog = self.exog[d:] + if d == 1: + self.data.ynames = 'D.' + self.endog_names + else: + self.data.ynames = 'D{0:d}.'.format(d) + self.endog_names + # what about exog, should we difference it automatically before + # super call? + + def _get_predict_start(self, start, dynamic): + """ + """ + #TODO: remove all these getattr and move order specification to + # class constructor + k_diff = getattr(self, 'k_diff', 0) + method = getattr(self, 'method', 'mle') + k_ar = getattr(self, 'k_ar', 0) + if start is None: + if 'mle' in method and not dynamic: + start = 0 + else: + start = k_ar + elif isinstance(start, (int, long)): + start -= k_diff + try: # catch when given an integer outside of dates index + start = super(ARIMA, self)._get_predict_start(start, + dynamic) + except IndexError: + raise ValueError("start must be in series. " + "got %d" % (start + k_diff)) + else: # received a date + start = _validate(start, k_ar, k_diff, self.data.dates, + method) + start = super(ARIMA, self)._get_predict_start(start, dynamic) + # reset date for k_diff adjustment + self._set_predict_start_date(start + k_diff) + return start + + def _get_predict_end(self, end, dynamic=False): + """ + Returns last index to be forecast of the differenced array. + Handling of inclusiveness should be done in the predict function. + """ + end, out_of_sample = super(ARIMA, self)._get_predict_end(end, dynamic) + if 'mle' not in self.method and not dynamic: + end -= self.k_ar + + return end - self.k_diff, out_of_sample + + def fit(self, start_params=None, trend='c', method="css-mle", + transparams=True, solver='lbfgs', maxiter=50, full_output=1, + disp=5, callback=None, start_ar_lags=None, **kwargs): + """ + Fits ARIMA(p,d,q) model by exact maximum likelihood via Kalman filter. + + Parameters + ---------- + start_params : array-like, optional + Starting parameters for ARMA(p,q). If None, the default is given + by ARMA._fit_start_params. See there for more information. + transparams : bool, optional + Whehter or not to transform the parameters to ensure stationarity. + Uses the transformation suggested in Jones (1980). If False, + no checking for stationarity or invertibility is done. + method : str {'css-mle','mle','css'} + This is the loglikelihood to maximize. If "css-mle", the + conditional sum of squares likelihood is maximized and its values + are used as starting values for the computation of the exact + likelihood via the Kalman filter. If "mle", the exact likelihood + is maximized via the Kalman Filter. If "css" the conditional sum + of squares likelihood is maximized. All three methods use + `start_params` as starting parameters. See above for more + information. + trend : str {'c','nc'} + Whether to include a constant or not. 'c' includes constant, + 'nc' no constant. + solver : str or None, optional + Solver to be used. The default is 'lbfgs' (limited memory + Broyden-Fletcher-Goldfarb-Shanno). Other choices are 'bfgs', + 'newton' (Newton-Raphson), 'nm' (Nelder-Mead), 'cg' - + (conjugate gradient), 'ncg' (non-conjugate gradient), and + 'powell'. By default, the limited memory BFGS uses m=12 to + approximate the Hessian, projected gradient tolerance of 1e-8 and + factr = 1e2. You can change these by using kwargs. + maxiter : int, optional + The maximum number of function evaluations. Default is 50. + tol : float + The convergence tolerance. Default is 1e-08. + full_output : bool, optional + If True, all output from solver will be available in + the Results object's mle_retvals attribute. Output is dependent + on the solver. See Notes for more information. + disp : int, optional + If True, convergence information is printed. For the default + l_bfgs_b solver, disp controls the frequency of the output during + the iterations. disp < 0 means no output in this case. + callback : function, optional + Called after each iteration as callback(xk) where xk is the current + parameter vector. + start_ar_lags : int, optional + Parameter for fitting start_params. When fitting start_params, + residuals are obtained from an AR fit, then an ARMA(p,q) model is + fit via OLS using these residuals. If start_ar_lags is None, fit + an AR process according to best BIC. If start_ar_lags is not None, + fits an AR process with a lag length equal to start_ar_lags. + See ARMA._fit_start_params_hr for more information. + kwargs + See Notes for keyword arguments that can be passed to fit. + + Returns + ------- + `statsmodels.tsa.arima.ARIMAResults` class + + See also + -------- + statsmodels.base.model.LikelihoodModel.fit : for more information + on using the solvers. + ARIMAResults : results class returned by fit + + Notes + ------ + If fit by 'mle', it is assumed for the Kalman Filter that the initial + unkown state is zero, and that the inital variance is + P = dot(inv(identity(m**2)-kron(T,T)),dot(R,R.T).ravel('F')).reshape(r, + r, order = 'F') + + """ + mlefit = super(ARIMA, self).fit(start_params, trend, + method, transparams, solver, + maxiter, full_output, disp, + callback, start_ar_lags, **kwargs) + normalized_cov_params = None # TODO: fix this? + arima_fit = ARIMAResults(self, mlefit._results.params, + normalized_cov_params) + arima_fit.k_diff = self.k_diff + + arima_fit.mle_retvals = mlefit.mle_retvals + arima_fit.mle_settings = mlefit.mle_settings + + return ARIMAResultsWrapper(arima_fit) + + def predict(self, params, start=None, end=None, exog=None, typ='linear', + dynamic=False): + # go ahead and convert to an index for easier checking + if isinstance(start, (string_types, datetime)): + start = _index_date(start, self.data.dates) + if typ == 'linear': + if not dynamic or (start != self.k_ar + self.k_diff and + start is not None): + return super(ARIMA, self).predict(params, start, end, exog, + dynamic) + else: + # need to assume pre-sample residuals are zero + # do this by a hack + q = self.k_ma + self.k_ma = 0 + predictedvalues = super(ARIMA, self).predict(params, start, + end, exog, + dynamic) + self.k_ma = q + return predictedvalues + elif typ == 'levels': + endog = self.data.endog + if not dynamic: + predict = super(ARIMA, self).predict(params, start, end, exog, + dynamic) + + start = self._get_predict_start(start, dynamic) + end, out_of_sample = self._get_predict_end(end) + d = self.k_diff + if 'mle' in self.method: + start += d - 1 # for case where d == 2 + end += d - 1 + # add each predicted diff to lagged endog + if out_of_sample: + fv = predict[:-out_of_sample] + endog[start:end+1] + if d == 2: #TODO: make a general solution to this + fv += np.diff(endog[start - 1:end + 1]) + levels = unintegrate_levels(endog[-d:], d) + fv = np.r_[fv, + unintegrate(predict[-out_of_sample:], + levels)[d:]] + else: + fv = predict + endog[start:end + 1] + if d == 2: + fv += np.diff(endog[start - 1:end + 1]) + else: + k_ar = self.k_ar + if out_of_sample: + fv = (predict[:-out_of_sample] + + endog[max(start, self.k_ar-1):end+k_ar+1]) + if d == 2: + fv += np.diff(endog[start - 1:end + 1]) + levels = unintegrate_levels(endog[-d:], d) + fv = np.r_[fv, + unintegrate(predict[-out_of_sample:], + levels)[d:]] + else: + fv = predict + endog[max(start, k_ar):end+k_ar+1] + if d == 2: + fv += np.diff(endog[start - 1:end + 1]) + else: + #IFF we need to use pre-sample values assume pre-sample + # residuals are zero, do this by a hack + if start == self.k_ar + self.k_diff or start is None: + # do the first k_diff+1 separately + p = self.k_ar + q = self.k_ma + k_exog = self.k_exog + k_trend = self.k_trend + k_diff = self.k_diff + (trendparam, exparams, + arparams, maparams) = _unpack_params(params, (p, q), + k_trend, + k_exog, + reverse=True) + # this is the hack + self.k_ma = 0 + + predict = super(ARIMA, self).predict(params, start, end, + exog, dynamic) + if not start: + start = self._get_predict_start(start, dynamic) + start += k_diff + self.k_ma = q + return endog[start-1] + np.cumsum(predict) + else: + predict = super(ARIMA, self).predict(params, start, end, + exog, dynamic) + return endog[start-1] + np.cumsum(predict) + return fv + + else: # pragma : no cover + raise ValueError("typ %s not understood" % typ) + + predict.__doc__ = _arima_predict + + +class ARMAResults(tsbase.TimeSeriesModelResults): + """ + Class to hold results from fitting an ARMA model. + + Parameters + ---------- + model : ARMA instance + The fitted model instance + params : array + Fitted parameters + normalized_cov_params : array, optional + The normalized variance covariance matrix + scale : float, optional + Optional argument to scale the variance covariance matrix. + + Returns + -------- + **Attributes** + + aic : float + Akaike Information Criterion + :math:`-2*llf+2* df_model` + where `df_model` includes all AR parameters, MA parameters, constant + terms parameters on constant terms and the variance. + arparams : array + The parameters associated with the AR coefficients in the model. + arroots : array + The roots of the AR coefficients are the solution to + (1 - arparams[0]*z - arparams[1]*z**2 -...- arparams[p-1]*z**k_ar) = 0 + Stability requires that the roots in modulus lie outside the unit + circle. + bic : float + Bayes Information Criterion + -2*llf + log(nobs)*df_model + Where if the model is fit using conditional sum of squares, the + number of observations `nobs` does not include the `p` pre-sample + observations. + bse : array + The standard errors of the parameters. These are computed using the + numerical Hessian. + df_model : array + The model degrees of freedom = `k_exog` + `k_trend` + `k_ar` + `k_ma` + df_resid : array + The residual degrees of freedom = `nobs` - `df_model` + fittedvalues : array + The predicted values of the model. + hqic : float + Hannan-Quinn Information Criterion + -2*llf + 2*(`df_model`)*log(log(nobs)) + Like `bic` if the model is fit using conditional sum of squares then + the `k_ar` pre-sample observations are not counted in `nobs`. + k_ar : int + The number of AR coefficients in the model. + k_exog : int + The number of exogenous variables included in the model. Does not + include the constant. + k_ma : int + The number of MA coefficients. + k_trend : int + This is 0 for no constant or 1 if a constant is included. + llf : float + The value of the log-likelihood function evaluated at `params`. + maparams : array + The value of the moving average coefficients. + maroots : array + The roots of the MA coefficients are the solution to + (1 + maparams[0]*z + maparams[1]*z**2 + ... + maparams[q-1]*z**q) = 0 + Stability requires that the roots in modules lie outside the unit + circle. + model : ARMA instance + A reference to the model that was fit. + nobs : float + The number of observations used to fit the model. If the model is fit + using exact maximum likelihood this is equal to the total number of + observations, `n_totobs`. If the model is fit using conditional + maximum likelihood this is equal to `n_totobs` - `k_ar`. + n_totobs : float + The total number of observations for `endog`. This includes all + observations, even pre-sample values if the model is fit using `css`. + params : array + The parameters of the model. The order of variables is the trend + coefficients and the `k_exog` exognous coefficients, then the + `k_ar` AR coefficients, and finally the `k_ma` MA coefficients. + pvalues : array + The p-values associated with the t-values of the coefficients. Note + that the coefficients are assumed to have a Student's T distribution. + resid : array + The model residuals. If the model is fit using 'mle' then the + residuals are created via the Kalman Filter. If the model is fit + using 'css' then the residuals are obtained via `scipy.signal.lfilter` + adjusted such that the first `k_ma` residuals are zero. These zero + residuals are not returned. + scale : float + This is currently set to 1.0 and not used by the model or its results. + sigma2 : float + The variance of the residuals. If the model is fit by 'css', + sigma2 = ssr/nobs, where ssr is the sum of squared residuals. If + the model is fit by 'mle', then sigma2 = 1/nobs * sum(v**2 / F) + where v is the one-step forecast error and F is the forecast error + variance. See `nobs` for the difference in definitions depending on the + fit. + """ + _cache = {} + + #TODO: use this for docstring when we fix nobs issue + + def __init__(self, model, params, normalized_cov_params=None, scale=1.): + super(ARMAResults, self).__init__(model, params, normalized_cov_params, + scale) + self.sigma2 = model.sigma2 + nobs = model.nobs + self.nobs = nobs + k_exog = model.k_exog + self.k_exog = k_exog + k_trend = model.k_trend + self.k_trend = k_trend + k_ar = model.k_ar + self.k_ar = k_ar + self.n_totobs = len(model.endog) + k_ma = model.k_ma + self.k_ma = k_ma + df_model = k_exog + k_trend + k_ar + k_ma + self._ic_df_model = df_model + 1 + self.df_model = df_model + self.df_resid = self.nobs - df_model + self._cache = resettable_cache() + + @cache_readonly + def arroots(self): + return np.roots(np.r_[1, -self.arparams])**-1 + + @cache_readonly + def maroots(self): + return np.roots(np.r_[1, self.maparams])**-1 + + @cache_readonly + def arfreq(self): + r""" + Returns the frequency of the AR roots. + + This is the solution, x, to z = abs(z)*exp(2j*np.pi*x) where z are the + roots. + """ + z = self.arroots + if not z.size: + return + return np.arctan2(z.imag, z.real) / (2*pi) + + @cache_readonly + def mafreq(self): + r""" + Returns the frequency of the MA roots. + + This is the solution, x, to z = abs(z)*exp(2j*np.pi*x) where z are the + roots. + """ + z = self.maroots + if not z.size: + return + return np.arctan2(z.imag, z.real) / (2*pi) + + @cache_readonly + def arparams(self): + k = self.k_exog + self.k_trend + return self.params[k:k+self.k_ar] + + @cache_readonly + def maparams(self): + k = self.k_exog + self.k_trend + k_ar = self.k_ar + return self.params[k+k_ar:] + + @cache_readonly + def llf(self): + return self.model.loglike(self.params) + + @cache_readonly + def bse(self): + params = self.params + hess = self.model.hessian(params) + if len(params) == 1: # can't take an inverse, ensure 1d + return np.sqrt(-1./hess[0]) + return np.sqrt(np.diag(-inv(hess))) + + def cov_params(self): # add scale argument? + params = self.params + hess = self.model.hessian(params) + return -inv(hess) + + @cache_readonly + def aic(self): + return -2 * self.llf + 2 * self._ic_df_model + + @cache_readonly + def bic(self): + nobs = self.nobs + return -2 * self.llf + np.log(nobs) * self._ic_df_model + + @cache_readonly + def hqic(self): + nobs = self.nobs + return -2 * self.llf + 2 * np.log(np.log(nobs)) * self._ic_df_model + + @cache_readonly + def fittedvalues(self): + model = self.model + endog = model.endog.copy() + k_ar = self.k_ar + exog = model.exog # this is a copy + if exog is not None: + if model.method == "css" and k_ar > 0: + exog = exog[k_ar:] + if model.method == "css" and k_ar > 0: + endog = endog[k_ar:] + fv = endog - self.resid + # add deterministic part back in + #k = self.k_exog + self.k_trend + #TODO: this needs to be commented out for MLE with constant + #if k != 0: + # fv += dot(exog, self.params[:k]) + return fv + + @cache_readonly + def resid(self): + return self.model.geterrors(self.params) + + @cache_readonly + def pvalues(self): + #TODO: same for conditional and unconditional? + df_resid = self.df_resid + return t.sf(np.abs(self.tvalues), df_resid) * 2 + + def predict(self, start=None, end=None, exog=None, dynamic=False): + return self.model.predict(self.params, start, end, exog, dynamic) + predict.__doc__ = _arma_results_predict + + def _forecast_error(self, steps): + sigma2 = self.sigma2 + ma_rep = arma2ma(np.r_[1, -self.arparams], + np.r_[1, self.maparams], nobs=steps) + + fcasterr = np.sqrt(sigma2 * np.cumsum(ma_rep**2)) + return fcasterr + + def _forecast_conf_int(self, forecast, fcasterr, alpha): + const = norm.ppf(1 - alpha / 2.) + conf_int = np.c_[forecast - const * fcasterr, + forecast + const * fcasterr] + + return conf_int + + def forecast(self, steps=1, exog=None, alpha=.05): + """ + Out-of-sample forecasts + + Parameters + ---------- + steps : int + The number of out of sample forecasts from the end of the + sample. + exog : array + If the model is an ARMAX, you must provide out of sample + values for the exogenous variables. This should not include + the constant. + alpha : float + The confidence intervals for the forecasts are (1 - alpha) % + + Returns + ------- + forecast : array + Array of out of sample forecasts + stderr : array + Array of the standard error of the forecasts. + conf_int : array + 2d array of the confidence interval for the forecast + """ + if exog is not None: + #TODO: make a convenience function for this. we're using the + # pattern elsewhere in the codebase + exog = np.asarray(exog) + if self.k_exog == 1 and exog.ndim == 1: + exog = exog[:, None] + elif exog.ndim == 1: + if len(exog) != self.k_exog: + raise ValueError("1d exog given and len(exog) != k_exog") + exog = exog[None, :] + if exog.shape[0] != steps: + raise ValueError("new exog needed for each step") + # prepend in-sample exog observations + if self.k_ar > 0: + exog = np.vstack((self.model.exog[-self.k_ar:, self.k_trend:], + exog)) + + forecast = _arma_predict_out_of_sample(self.params, + steps, self.resid, self.k_ar, + self.k_ma, self.k_trend, + self.k_exog, self.model.endog, + exog, method=self.model.method) + + # compute the standard errors + fcasterr = self._forecast_error(steps) + conf_int = self._forecast_conf_int(forecast, fcasterr, alpha) + + return forecast, fcasterr, conf_int + + def summary(self, alpha=.05): + """Summarize the Model + + Parameters + ---------- + alpha : float, optional + Significance level for the confidence intervals. + + Returns + ------- + smry : Summary instance + This holds the summary table and text, which can be printed or + converted to various output formats. + + See Also + -------- + statsmodels.iolib.summary.Summary + """ + from statsmodels.iolib.summary import Summary + model = self.model + title = model.__class__.__name__ + ' Model Results' + method = model.method + # get sample TODO: make better sample machinery for estimation + k_diff = getattr(self, 'k_diff', 0) + if 'mle' in method: + start = k_diff + else: + start = k_diff + self.k_ar + if self.data.dates is not None: + dates = self.data.dates + sample = [dates[start].strftime('%m-%d-%Y')] + sample += ['- ' + dates[-1].strftime('%m-%d-%Y')] + else: + sample = str(start) + ' - ' + str(len(self.data.orig_endog)) + + k_ar, k_ma = self.k_ar, self.k_ma + if not k_diff: + order = str((k_ar, k_ma)) + else: + order = str((k_ar, k_diff, k_ma)) + top_left = [('Dep. Variable:', None), + ('Model:', [model.__class__.__name__ + order]), + ('Method:', [method]), + ('Date:', None), + ('Time:', None), + ('Sample:', [sample[0]]), + ('', [sample[1]]) + ] + + top_right = [ + ('No. Observations:', [str(len(self.model.endog))]), + ('Log Likelihood', ["%#5.3f" % self.llf]), + ('S.D. of innovations', ["%#5.3f" % self.sigma2**.5]), + ('AIC', ["%#5.3f" % self.aic]), + ('BIC', ["%#5.3f" % self.bic]), + ('HQIC', ["%#5.3f" % self.hqic])] + + smry = Summary() + smry.add_table_2cols(self, gleft=top_left, gright=top_right, + title=title) + smry.add_table_params(self, alpha=alpha, use_t=False) + + # Make the roots table + from statsmodels.iolib.table import SimpleTable + + if k_ma and k_ar: + arstubs = ["AR.%d" % i for i in range(1, k_ar + 1)] + mastubs = ["MA.%d" % i for i in range(1, k_ma + 1)] + stubs = arstubs + mastubs + roots = np.r_[self.arroots, self.maroots] + freq = np.r_[self.arfreq, self.mafreq] + elif k_ma: + mastubs = ["MA.%d" % i for i in range(1, k_ma + 1)] + stubs = mastubs + roots = self.maroots + freq = self.mafreq + elif k_ar: + arstubs = ["AR.%d" % i for i in range(1, k_ar + 1)] + stubs = arstubs + roots = self.arroots + freq = self.arfreq + else: # 0,0 model + stubs = [] + if len(stubs): # not 0, 0 + modulus = np.abs(roots) + data = np.column_stack((roots.real, roots.imag, modulus, freq)) + roots_table = SimpleTable(data, + headers=[' Real', + ' Imaginary', + ' Modulus', + ' Frequency'], + title="Roots", + stubs=stubs, + data_fmts=["%17.4f", "%+17.4fj", + "%17.4f", "%17.4f"]) + + smry.tables.append(roots_table) + return smry + + def summary2(self, title=None, alpha=.05, float_format="%.4f"): + """Experimental summary function for ARIMA Results + + Parameters + ----------- + title : string, optional + Title for the top table. If not None, then this replaces the + default title + alpha : float + significance level for the confidence intervals + float_format: string + print format for floats in parameters summary + + Returns + ------- + smry : Summary instance + This holds the summary table and text, which can be printed or + converted to various output formats. + + See Also + -------- + statsmodels.iolib.summary2.Summary : class to hold summary + results + + """ + from pandas import DataFrame + # get sample TODO: make better sample machinery for estimation + k_diff = getattr(self, 'k_diff', 0) + if 'mle' in self.model.method: + start = k_diff + else: + start = k_diff + self.k_ar + if self.data.dates is not None: + dates = self.data.dates + sample = [dates[start].strftime('%m-%d-%Y')] + sample += [dates[-1].strftime('%m-%d-%Y')] + else: + sample = str(start) + ' - ' + str(len(self.data.orig_endog)) + + k_ar, k_ma = self.k_ar, self.k_ma + + # Roots table + if k_ma and k_ar: + arstubs = ["AR.%d" % i for i in range(1, k_ar + 1)] + mastubs = ["MA.%d" % i for i in range(1, k_ma + 1)] + stubs = arstubs + mastubs + roots = np.r_[self.arroots, self.maroots] + freq = np.r_[self.arfreq, self.mafreq] + elif k_ma: + mastubs = ["MA.%d" % i for i in range(1, k_ma + 1)] + stubs = mastubs + roots = self.maroots + freq = self.mafreq + elif k_ar: + arstubs = ["AR.%d" % i for i in range(1, k_ar + 1)] + stubs = arstubs + roots = self.arroots + freq = self.arfreq + else: # 0, 0 order + stubs = [] + + if len(stubs): + modulus = np.abs(roots) + data = np.column_stack((roots.real, roots.imag, modulus, freq)) + data = DataFrame(data) + data.columns = ['Real', 'Imaginary', 'Modulus', 'Frequency'] + data.index = stubs + + # Summary + from statsmodels.iolib import summary2 + smry = summary2.Summary() + + # Model info + model_info = summary2.summary_model(self) + model_info['Method:'] = self.model.method + model_info['Sample:'] = sample[0] + model_info[' '] = sample[-1] + model_info['S.D. of innovations:'] = "%#5.3f" % self.sigma2**.5 + model_info['HQIC:'] = "%#5.3f" % self.hqic + model_info['No. Observations:'] = str(len(self.model.endog)) + + # Parameters + params = summary2.summary_params(self) + smry.add_dict(model_info) + smry.add_df(params, float_format=float_format) + if len(stubs): + smry.add_df(data, float_format="%17.4f") + smry.add_title(results=self, title=title) + + return smry + + def plot_predict(self, start=None, end=None, exog=None, dynamic=False, + alpha=.05, plot_insample=True, ax=None): + from statsmodels.graphics.utils import _import_mpl, create_mpl_ax + _ = _import_mpl() + fig, ax = create_mpl_ax(ax) + + + # use predict so you set dates + forecast = self.predict(start, end, exog, dynamic) + # doing this twice. just add a plot keyword to predict? + start = self.model._get_predict_start(start, dynamic=False) + end, out_of_sample = self.model._get_predict_end(end, dynamic=False) + + if out_of_sample: + steps = out_of_sample + fc_error = self._forecast_error(steps) + conf_int = self._forecast_conf_int(forecast[-steps:], fc_error, + alpha) + + + if hasattr(self.data, "predict_dates"): + from pandas import Series + forecast = Series(forecast, index=self.data.predict_dates) + ax = forecast.plot(ax=ax, label='forecast') + else: + ax.plot(forecast) + + x = ax.get_lines()[-1].get_xdata() + if out_of_sample: + label = "{0:.0%} confidence interval".format(1 - alpha) + ax.fill_between(x[-out_of_sample:], conf_int[:, 0], conf_int[:, 1], + color='gray', alpha=.5, label=label) + + if plot_insample: + ax.plot(x[:end + 1 - start], self.model.endog[start:end+1], + label=self.model.endog_names) + + ax.legend(loc='best') + + return fig + plot_predict.__doc__ = _plot_predict + + +class ARMAResultsWrapper(wrap.ResultsWrapper): + _attrs = {} + _wrap_attrs = wrap.union_dicts(tsbase.TimeSeriesResultsWrapper._wrap_attrs, + _attrs) + _methods = {} + _wrap_methods = wrap.union_dicts(tsbase.TimeSeriesResultsWrapper._wrap_methods, + _methods) +wrap.populate_wrapper(ARMAResultsWrapper, ARMAResults) + + +class ARIMAResults(ARMAResults): + def predict(self, start=None, end=None, exog=None, typ='linear', + dynamic=False): + return self.model.predict(self.params, start, end, exog, typ, dynamic) + predict.__doc__ = _arima_results_predict + + def _forecast_error(self, steps): + sigma2 = self.sigma2 + ma_rep = arma2ma(np.r_[1, -self.arparams], + np.r_[1, self.maparams], nobs=steps) + + fcerr = np.sqrt(np.cumsum(cumsum_n(ma_rep, self.k_diff)**2)*sigma2) + return fcerr + + def _forecast_conf_int(self, forecast, fcerr, alpha): + const = norm.ppf(1 - alpha/2.) + conf_int = np.c_[forecast - const*fcerr, forecast + const*fcerr] + return conf_int + + def forecast(self, steps=1, exog=None, alpha=.05): + """ + Out-of-sample forecasts + + Parameters + ---------- + steps : int + The number of out of sample forecasts from the end of the + sample. + exog : array + If the model is an ARIMAX, you must provide out of sample + values for the exogenous variables. This should not include + the constant. + alpha : float + The confidence intervals for the forecasts are (1 - alpha) % + + Returns + ------- + forecast : array + Array of out of sample forecasts + stderr : array + Array of the standard error of the forecasts. + conf_int : array + 2d array of the confidence interval for the forecast + + Notes + ----- + Prediction is done in the levels of the original endogenous variable. + If you would like prediction of differences in levels use `predict`. + """ + if exog is not None: + if self.k_exog == 1 and exog.ndim == 1: + exog = exog[:, None] + if exog.shape[0] != steps: + raise ValueError("new exog needed for each step") + # prepend in-sample exog observations + if self.k_ar > 0: + exog = np.vstack((self.model.exog[-self.k_ar:, self.k_trend:], + exog)) + forecast = _arma_predict_out_of_sample(self.params, steps, self.resid, + self.k_ar, self.k_ma, + self.k_trend, self.k_exog, + self.model.endog, + exog, method=self.model.method) + + d = self.k_diff + endog = self.model.data.endog[-d:] + forecast = unintegrate(forecast, unintegrate_levels(endog, d))[d:] + + # get forecast errors + fcerr = self._forecast_error(steps) + conf_int = self._forecast_conf_int(forecast, fcerr, alpha) + return forecast, fcerr, conf_int + + def plot_predict(self, start=None, end=None, exog=None, dynamic=False, + alpha=.05, plot_insample=True, ax=None): + from statsmodels.graphics.utils import _import_mpl, create_mpl_ax + _ = _import_mpl() + fig, ax = create_mpl_ax(ax) + + # use predict so you set dates + forecast = self.predict(start, end, exog, 'levels', dynamic) + # doing this twice. just add a plot keyword to predict? + start = self.model._get_predict_start(start, dynamic=dynamic) + end, out_of_sample = self.model._get_predict_end(end, dynamic=dynamic) + + if out_of_sample: + steps = out_of_sample + fc_error = self._forecast_error(steps) + conf_int = self._forecast_conf_int(forecast[-steps:], fc_error, + alpha) + + if hasattr(self.data, "predict_dates"): + from pandas import Series + forecast = Series(forecast, index=self.data.predict_dates) + ax = forecast.plot(ax=ax, label='forecast') + else: + ax.plot(forecast) + + x = ax.get_lines()[-1].get_xdata() + if out_of_sample: + label = "{0:.0%} confidence interval".format(1 - alpha) + ax.fill_between(x[-out_of_sample:], conf_int[:, 0], conf_int[:, 1], + color='gray', alpha=.5, label=label) + + if plot_insample: + import re + k_diff = self.k_diff + label = re.sub("D\d*\.", "", self.model.endog_names) + levels = unintegrate(self.model.endog, + self.model._first_unintegrate) + ax.plot(x[:end + 1 - start], + levels[start + k_diff:end + k_diff + 1], label=label) + + ax.legend(loc='best') + + return fig + + plot_predict.__doc__ = _arima_plot_predict + + +class ARIMAResultsWrapper(ARMAResultsWrapper): + pass +wrap.populate_wrapper(ARIMAResultsWrapper, ARIMAResults) + + +if __name__ == "__main__": + import statsmodels.api as sm + + # simulate arma process + from statsmodels.tsa.arima_process import arma_generate_sample + y = arma_generate_sample([1., -.75], [1., .25], nsample=1000) + arma = ARMA(y) + res = arma.fit(trend='nc', order=(1, 1)) + + np.random.seed(12345) + y_arma22 = arma_generate_sample([1., -.85, .35], [1, .25, -.9], + nsample=1000) + arma22 = ARMA(y_arma22) + res22 = arma22.fit(trend='nc', order=(2, 2)) + + # test CSS + arma22_css = ARMA(y_arma22) + res22css = arma22_css.fit(trend='nc', order=(2, 2), method='css') + + data = sm.datasets.sunspots.load() + ar = ARMA(data.endog) + resar = ar.fit(trend='nc', order=(9, 0)) + + y_arma31 = arma_generate_sample([1, -.75, -.35, .25], [.1], + nsample=1000) + + arma31css = ARMA(y_arma31) + res31css = arma31css.fit(order=(3, 1), method="css", trend="nc", + transparams=True) + + y_arma13 = arma_generate_sample([1., -.75], [1, .25, -.5, .8], + nsample=1000) + arma13css = ARMA(y_arma13) + res13css = arma13css.fit(order=(1, 3), method='css', trend='nc') + +# check css for p < q and q < p + y_arma41 = arma_generate_sample([1., -.75, .35, .25, -.3], [1, -.35], + nsample=1000) + arma41css = ARMA(y_arma41) + res41css = arma41css.fit(order=(4, 1), trend='nc', method='css') + + y_arma14 = arma_generate_sample([1, -.25], [1., -.75, .35, .25, -.3], + nsample=1000) + arma14css = ARMA(y_arma14) + res14css = arma14css.fit(order=(4, 1), trend='nc', method='css') + + # ARIMA Model + from statsmodels.datasets import webuse + dta = webuse('wpi1') + wpi = dta['wpi'] + + mod = ARIMA(wpi, (1, 1, 1)).fit() diff --git a/statsmodels/tsa/arima_process.py b/statsmodels/tsa/arima_process.py new file mode 100644 index 0000000..bff43a2 --- /dev/null +++ b/statsmodels/tsa/arima_process.py @@ -0,0 +1,1031 @@ +'''ARMA process and estimation with scipy.signal.lfilter + +2009-09-06: copied from try_signal.py + reparameterized same as signal.lfilter (positive coefficients) + + +Notes +----- +* pretty fast +* checked with Monte Carlo and cross comparison with statsmodels yule_walker + for AR numbers are close but not identical to yule_walker + not compared to other statistics packages, no degrees of freedom correction +* ARMA(2,2) estimation (in Monte Carlo) requires longer time series to estimate parameters + without large variance. There might be different ARMA parameters + with similar impulse response function that cannot be well + distinguished with small samples (e.g. 100 observations) +* good for one time calculations for entire time series, not for recursive + prediction +* class structure not very clean yet +* many one-liners with scipy.signal, but takes time to figure out usage +* missing result statistics, e.g. t-values, but standard errors in examples +* no criteria for choice of number of lags +* no constant term in ARMA process +* no integration, differencing for ARIMA +* written without textbook, works but not sure about everything + briefly checked and it looks to be standard least squares, see below + +* theoretical autocorrelation function of general ARMA + Done, relatively easy to guess solution, time consuming to get + theoretical test cases, + example file contains explicit formulas for acovf of MA(1), MA(2) and ARMA(1,1) + +* two names for lag polynomials ar = rhoy, ma = rhoe ? + + +Properties: +Judge, ... (1985): The Theory and Practise of Econometrics + +BigJudge p. 237ff: +If the time series process is a stationary ARMA(p,q), then +minimizing the sum of squares is asymptoticaly (as T-> inf) +equivalent to the exact Maximum Likelihood Estimator + +Because Least Squares conditional on the initial information +does not use all information, in small samples exact MLE can +be better. + +Without the normality assumption, the least squares estimator +is still consistent under suitable conditions, however not +efficient + +Author: josefpktd +License: BSD +''' +from __future__ import print_function +from statsmodels.compat.python import range +import numpy as np +from scipy import signal, optimize, linalg + + +def arma_generate_sample(ar, ma, nsample, sigma=1, distrvs=np.random.randn, + burnin=0): + """ + Generate a random sample of an ARMA process + + Parameters + ---------- + ar : array_like, 1d + coefficient for autoregressive lag polynomial, including zero lag + ma : array_like, 1d + coefficient for moving-average lag polynomial, including zero lag + nsample : int + length of simulated time series + sigma : float + standard deviation of noise + distrvs : function, random number generator + function that generates the random numbers, and takes sample size + as argument + default: np.random.randn + TODO: change to size argument + burnin : integer (default: 0) + to reduce the effect of initial conditions, burnin observations at the + beginning of the sample are dropped + + Returns + ------- + sample : array + sample of ARMA process given by ar, ma of length nsample + + Notes + ----- + As mentioned above, both the AR and MA components should include the + coefficient on the zero-lag. This is typically 1. Further, due to the + conventions used in signal processing used in signal.lfilter vs. + conventions in statistics for ARMA processes, the AR paramters should + have the opposite sign of what you might expect. See the examples below. + + Examples + -------- + >>> import numpy as np + >>> np.random.seed(12345) + >>> arparams = np.array([.75, -.25]) + >>> maparams = np.array([.65, .35]) + >>> ar = np.r_[1, -arparams] # add zero-lag and negate + >>> ma = np.r_[1, maparams] # add zero-lag + >>> y = sm.tsa.arma_generate_sample(ar, ma, 250) + >>> model = sm.tsa.ARMA(y, (2, 2)).fit(trend='nc', disp=0) + >>> model.params + array([ 0.79044189, -0.23140636, 0.70072904, 0.40608028]) + """ + #TODO: unify with ArmaProcess method + eta = sigma * distrvs(nsample+burnin) + return signal.lfilter(ma, ar, eta)[burnin:] + + +def arma_acovf(ar, ma, nobs=10): + '''theoretical autocovariance function of ARMA process + + Parameters + ---------- + ar : array_like, 1d + coefficient for autoregressive lag polynomial, including zero lag + ma : array_like, 1d + coefficient for moving-average lag polynomial, including zero lag + nobs : int + number of terms (lags plus zero lag) to include in returned acovf + + Returns + ------- + acovf : array + autocovariance of ARMA process given by ar, ma + + See Also + -------- + arma_acf + acovf + + + Notes + ----- + Tries to do some crude numerical speed improvements for cases + with high persistance. However, this algorithm is slow if the process is + highly persistent and only a few autocovariances are desired. + ''' + #increase length of impulse response for AR closer to 1 + #maybe cheap/fast enough to always keep nobs for ir large + if np.abs(np.sum(ar)-1) > 0.9: + nobs_ir = max(1000, 2 * nobs) # no idea right now how large is needed + else: + nobs_ir = max(100, 2 * nobs) # no idea right now + ir = arma_impulse_response(ar, ma, nobs=nobs_ir) + #better save than sorry (?), I have no idea about the required precision + #only checked for AR(1) + while ir[-1] > 5*1e-5: + nobs_ir *= 10 + ir = arma_impulse_response(ar, ma, nobs=nobs_ir) + #again no idea where the speed break points are: + if nobs_ir > 50000 and nobs < 1001: + acovf = np.array([np.dot(ir[:nobs-t], ir[t:nobs]) + for t in range(nobs)]) + else: + acovf = np.correlate(ir, ir, 'full')[len(ir)-1:] + return acovf[:nobs] + + +def arma_acf(ar, ma, nobs=10): + '''theoretical autocorrelation function of an ARMA process + + Parameters + ---------- + ar : array_like, 1d + coefficient for autoregressive lag polynomial, including zero lag + ma : array_like, 1d + coefficient for moving-average lag polynomial, including zero lag + nobs : int + number of terms (lags plus zero lag) to include in returned acf + + Returns + ------- + acf : array + autocorrelation of ARMA process given by ar, ma + + + See Also + -------- + arma_acovf + acf + acovf + + ''' + acovf = arma_acovf(ar, ma, nobs) + return acovf/acovf[0] + + +def arma_pacf(ar, ma, nobs=10): + '''partial autocorrelation function of an ARMA process + + Parameters + ---------- + ar : array_like, 1d + coefficient for autoregressive lag polynomial, including zero lag + ma : array_like, 1d + coefficient for moving-average lag polynomial, including zero lag + nobs : int + number of terms (lags plus zero lag) to include in returned pacf + + Returns + ------- + pacf : array + partial autocorrelation of ARMA process given by ar, ma + + Notes + ----- + solves yule-walker equation for each lag order up to nobs lags + + not tested/checked yet + ''' + apacf = np.zeros(nobs) + acov = arma_acf(ar, ma, nobs=nobs+1) + + apacf[0] = 1. + for k in range(2, nobs+1): + r = acov[:k] + apacf[k-1] = linalg.solve(linalg.toeplitz(r[:-1]), r[1:])[-1] + return apacf + + +def arma_periodogram(ar, ma, worN=None, whole=0): + '''periodogram for ARMA process given by lag-polynomials ar and ma + + Parameters + ---------- + ar : array_like + autoregressive lag-polynomial with leading 1 and lhs sign + ma : array_like + moving average lag-polynomial with leading 1 + worN : {None, int}, optional + option for scipy.signal.freqz (read "w or N") + If None, then compute at 512 frequencies around the unit circle. + If a single integer, the compute at that many frequencies. + Otherwise, compute the response at frequencies given in worN + whole : {0,1}, optional + options for scipy.signal.freqz + Normally, frequencies are computed from 0 to pi (upper-half of + unit-circle. If whole is non-zero compute frequencies from 0 to 2*pi. + + Returns + ------- + w : array + frequencies + sd : array + periodogram, spectral density + + Notes + ----- + Normalization ? + + This uses signal.freqz, which does not use fft. There is a fft version + somewhere. + + ''' + w, h = signal.freqz(ma, ar, worN=worN, whole=whole) + sd = np.abs(h)**2/np.sqrt(2*np.pi) + if np.sum(np.isnan(h)) > 0: + # this happens with unit root or seasonal unit root' + print('Warning: nan in frequency response h, maybe a unit root') + return w, sd + + +def arma_impulse_response(ar, ma, nobs=100): + '''get the impulse response function (MA representation) for ARMA process + + Parameters + ---------- + ma : array_like, 1d + moving average lag polynomial + ar : array_like, 1d + auto regressive lag polynomial + nobs : int + number of observations to calculate + + Returns + ------- + ir : array, 1d + impulse response function with nobs elements + + Notes + ----- + This is the same as finding the MA representation of an ARMA(p,q). + By reversing the role of ar and ma in the function arguments, the + returned result is the AR representation of an ARMA(p,q), i.e + + ma_representation = arma_impulse_response(ar, ma, nobs=100) + ar_representation = arma_impulse_response(ma, ar, nobs=100) + + fully tested against matlab + + Examples + -------- + AR(1) + + >>> arma_impulse_response([1.0, -0.8], [1.], nobs=10) + array([ 1. , 0.8 , 0.64 , 0.512 , 0.4096 , + 0.32768 , 0.262144 , 0.2097152 , 0.16777216, 0.13421773]) + + this is the same as + + >>> 0.8**np.arange(10) + array([ 1. , 0.8 , 0.64 , 0.512 , 0.4096 , + 0.32768 , 0.262144 , 0.2097152 , 0.16777216, 0.13421773]) + + MA(2) + + >>> arma_impulse_response([1.0], [1., 0.5, 0.2], nobs=10) + array([ 1. , 0.5, 0.2, 0. , 0. , 0. , 0. , 0. , 0. , 0. ]) + + ARMA(1,2) + + >>> arma_impulse_response([1.0, -0.8], [1., 0.5, 0.2], nobs=10) + array([ 1. , 1.3 , 1.24 , 0.992 , 0.7936 , + 0.63488 , 0.507904 , 0.4063232 , 0.32505856, 0.26004685]) + ''' + impulse = np.zeros(nobs) + impulse[0] = 1. + return signal.lfilter(ma, ar, impulse) + + +#alias, easier to remember +arma2ma = arma_impulse_response + + +#alias, easier to remember +def arma2ar(ar, ma, nobs=100): + '''get the AR representation of an ARMA process + + Parameters + ---------- + ar : array_like, 1d + auto regressive lag polynomial + ma : array_like, 1d + moving average lag polynomial + nobs : int + number of observations to calculate + + Returns + ------- + ar : array, 1d + coefficients of AR lag polynomial with nobs elements + + Notes + ----- + This is just an alias for + ``ar_representation = arma_impulse_response(ma, ar, nobs=100)`` which has + been fully tested against MATLAB. + + Examples + -------- + + ''' + return arma_impulse_response(ma, ar, nobs=nobs) + + +#moved from sandbox.tsa.try_fi +def ar2arma(ar_des, p, q, n=20, mse='ar', start=None): + '''find arma approximation to ar process + + This finds the ARMA(p,q) coefficients that minimize the integrated + squared difference between the impulse_response functions + (MA representation) of the AR and the ARMA process. This does + currently not check whether the MA lagpolynomial of the ARMA + process is invertible, neither does it check the roots of the AR + lagpolynomial. + + Parameters + ---------- + ar_des : array_like + coefficients of original AR lag polynomial, including lag zero + p, q : int + length of desired ARMA lag polynomials + n : int + number of terms of the impuls_response function to include in the + objective function for the approximation + mse : string, 'ar' + not used yet, + + Returns + ------- + ar_app, ma_app : arrays + coefficients of the AR and MA lag polynomials of the approximation + res : tuple + result of optimize.leastsq + + Notes + ----- + Extension is possible if we want to match autocovariance instead + of impulse response function. + + TODO: convert MA lag polynomial, ma_app, to be invertible, by mirroring + roots outside the unit intervall to ones that are inside. How do we do + this? + + ''' + #p,q = pq + def msear_err(arma, ar_des): + ar, ma = np.r_[1, arma[:p-1]], np.r_[1, arma[p-1:]] + ar_approx = arma_impulse_response(ma, ar, n) +## print(ar,ma) +## print(ar_des.shape, ar_approx.shape) +## print(ar_des) +## print(ar_approx) + return (ar_des - ar_approx) # ((ar - ar_approx)**2).sum() + if start is None: + arma0 = np.r_[-0.9 * np.ones(p-1), np.zeros(q-1)] + else: + arma0 = start + res = optimize.leastsq(msear_err, arma0, ar_des, maxfev=5000) + #print(res) + arma_app = np.atleast_1d(res[0]) + ar_app = np.r_[1, arma_app[:p-1]], + ma_app = np.r_[1, arma_app[p-1:]] + return ar_app, ma_app, res + + +def lpol2index(ar): + '''remove zeros from lagpolynomial, squeezed representation with index + + Parameters + ---------- + ar : array_like + coefficients of lag polynomial + + Returns + ------- + coeffs : array + non-zero coefficients of lag polynomial + index : array + index (lags) of lagpolynomial with non-zero elements + ''' + ar = np.asarray(ar) + index = np.nonzero(ar)[0] + coeffs = ar[index] + return coeffs, index + + +def index2lpol(coeffs, index): + '''expand coefficients to lag poly + + Parameters + ---------- + coeffs : array + non-zero coefficients of lag polynomial + index : array + index (lags) of lagpolynomial with non-zero elements + ar : array_like + coefficients of lag polynomial + + Returns + ------- + ar : array_like + coefficients of lag polynomial + + ''' + n = max(index) + ar = np.zeros(n) + ar[index] = coeffs + return ar + + +#moved from sandbox.tsa.try_fi +def lpol_fima(d, n=20): + '''MA representation of fractional integration + + .. math:: (1-L)^{-d} for |d|<0.5 or |d|<1 (?) + + Parameters + ---------- + d : float + fractional power + n : int + number of terms to calculate, including lag zero + + Returns + ------- + ma : array + coefficients of lag polynomial + + ''' + #hide import inside function until we use this heavily + from scipy.special import gammaln + j = np.arange(n) + return np.exp(gammaln(d+j) - gammaln(j+1) - gammaln(d)) + + +#moved from sandbox.tsa.try_fi +def lpol_fiar(d, n=20): + '''AR representation of fractional integration + + .. math:: (1-L)^{d} for |d|<0.5 or |d|<1 (?) + + Parameters + ---------- + d : float + fractional power + n : int + number of terms to calculate, including lag zero + + Returns + ------- + ar : array + coefficients of lag polynomial + + Notes: + first coefficient is 1, negative signs except for first term, + ar(L)*x_t + ''' + #hide import inside function until we use this heavily + from scipy.special import gammaln + j = np.arange(n) + ar = - np.exp(gammaln(-d+j) - gammaln(j+1) - gammaln(-d)) + ar[0] = 1 + return ar + + +#moved from sandbox.tsa.try_fi +def lpol_sdiff(s): + '''return coefficients for seasonal difference (1-L^s) + + just a trivial convenience function + + Parameters + ---------- + s : int + number of periods in season + + Returns + ------- + sdiff : list, length s+1 + + ''' + return [1] + [0]*(s-1) + [-1] + + +def deconvolve(num, den, n=None): + """Deconvolves divisor out of signal, division of polynomials for n terms + + calculates den^{-1} * num + + Parameters + ---------- + num : array_like + signal or lag polynomial + denom : array_like + coefficients of lag polynomial (linear filter) + n : None or int + number of terms of quotient + + Returns + ------- + quot : array + quotient or filtered series + rem : array + remainder + + Notes + ----- + If num is a time series, then this applies the linear filter den^{-1}. + If both num and den are both lagpolynomials, then this calculates the + quotient polynomial for n terms and also returns the remainder. + + This is copied from scipy.signal.signaltools and added n as optional + parameter. + + """ + num = np.atleast_1d(num) + den = np.atleast_1d(den) + N = len(num) + D = len(den) + if D > N and n is None: + quot = [] + rem = num + else: + if n is None: + n = N-D+1 + input = np.zeros(n, float) + input[0] = 1 + quot = signal.lfilter(num, den, input) + num_approx = signal.convolve(den, quot, mode='full') + if len(num) < len(num_approx): # 1d only ? + num = np.concatenate((num, np.zeros(len(num_approx)-len(num)))) + rem = num - num_approx + return quot, rem + + +class ArmaProcess(object): + """ + Represent an ARMA process for given lag-polynomials + + This is a class to bring together properties of the process. + It does not do any estimation or statistical analysis. + + Parameters + ---------- + ar : array_like, 1d + Coefficient for autoregressive lag polynomial, including zero lag. + See the notes for some information about the sign. + ma : array_like, 1d + Coefficient for moving-average lag polynomial, including zero lag + nobs : int, optional + Length of simulated time series. Used, for example, if a sample is + generated. See example. + + Notes + ----- + As mentioned above, both the AR and MA components should include the + coefficient on the zero-lag. This is typically 1. Further, due to the + conventions used in signal processing used in signal.lfilter vs. + conventions in statistics for ARMA processes, the AR paramters should + have the opposite sign of what you might expect. See the examples below. + + Examples + -------- + >>> import numpy as np + >>> np.random.seed(12345) + >>> arparams = np.array([.75, -.25]) + >>> maparams = np.array([.65, .35]) + >>> ar = np.r_[1, -ar] # add zero-lag and negate + >>> ma = np.r_[1, ma] # add zero-lag + >>> arma_process = sm.tsa.ArmaProcess(ar, ma) + >>> arma_process.isstationary + True + >>> arma_process.isinvertible + True + >>> y = arma_process.generate_sample(250) + >>> model = sm.tsa.ARMA(y, (2, 2)).fit(trend='nc', disp=0) + >>> model.params + array([ 0.79044189, -0.23140636, 0.70072904, 0.40608028]) + """ + # maybe needs special handling for unit roots + def __init__(self, ar, ma, nobs=100): + self.ar = np.asarray(ar) + self.ma = np.asarray(ma) + self.arcoefs = -self.ar[1:] + self.macoefs = self.ma[1:] + self.arpoly = np.polynomial.Polynomial(self.ar) + self.mapoly = np.polynomial.Polynomial(self.ma) + self.nobs = nobs + + @classmethod + def from_coeffs(cls, arcoefs, macoefs, nobs=100): + """ + Create ArmaProcess instance from coefficients of the lag-polynomials + + Parameters + ---------- + arcoefs : array-like + Coefficient for autoregressive lag polynomial, not including zero + lag. The sign is inverted to conform to the usual time series + representation of an ARMA process in statistics. See the class + docstring for more information. + macoefs : array-like + Coefficient for moving-average lag polynomial, including zero lag + nobs : int, optional + Length of simulated time series. Used, for example, if a sample + is generated. + """ + return cls(np.r_[1, -arcoefs], np.r_[1, macoefs], nobs=nobs) + + @classmethod + def from_estimation(cls, model_results, nobs=None): + """ + Create ArmaProcess instance from ARMA estimation results + + Parameters + ---------- + model_results : ARMAResults instance + A fitted model + nobs : int, optional + If None, nobs is taken from the results + """ + arcoefs = model_results.arparams + macoefs = model_results.maparams + nobs = nobs or model_results.nobs + return cls(np.r_[1, -arcoefs], np.r_[1, macoefs], nobs=nobs) + + def __mul__(self, oth): + if isinstance(oth, self.__class__): + ar = (self.arpoly * oth.arpoly).coef + ma = (self.mapoly * oth.mapoly).coef + else: + try: + aroth, maoth = oth + arpolyoth = np.polynomial.Polynomial(aroth) + mapolyoth = np.polynomial.Polynomial(maoth) + ar = (self.arpoly * arpolyoth).coef + ma = (self.mapoly * mapolyoth).coef + except: + print('other is not a valid type') + raise + return self.__class__(ar, ma, nobs=self.nobs) + + def __repr__(self): + return 'ArmaProcess(%r, %r, nobs=%d)' % (self.ar.tolist(), + self.ma.tolist(), + self.nobs) + + def __str__(self): + return 'ArmaProcess\nAR: %r\nMA: %r' % (self.ar.tolist(), + self.ma.tolist()) + + def acovf(self, nobs=None): + nobs = nobs or self.nobs + return arma_acovf(self.ar, self.ma, nobs=nobs) + + acovf.__doc__ = arma_acovf.__doc__ + + def acf(self, nobs=None): + nobs = nobs or self.nobs + return arma_acf(self.ar, self.ma, nobs=nobs) + + acf.__doc__ = arma_acf.__doc__ + + def pacf(self, nobs=None): + nobs = nobs or self.nobs + return arma_pacf(self.ar, self.ma, nobs=nobs) + + pacf.__doc__ = arma_pacf.__doc__ + + def periodogram(self, nobs=None): + nobs = nobs or self.nobs + return arma_periodogram(self.ar, self.ma, worN=nobs) + + periodogram.__doc__ = arma_periodogram.__doc__ + + def impulse_response(self, nobs=None): + nobs = nobs or self.nobs + return arma_impulse_response(self.ar, self.ma, worN=nobs) + + impulse_response.__doc__ = arma_impulse_response.__doc__ + + def arma2ma(self, nobs=None): + nobs = nobs or self.nobs + return arma2ma(self.ar, self.ma, nobs=nobs) + + arma2ma.__doc__ = arma2ma.__doc__ + + def arma2ar(self, nobs=None): + nobs = nobs or self.nobs + return arma2ar(self.ar, self.ma, nobs=nobs) + + arma2ar.__doc__ = arma2ar.__doc__ + + @property + def arroots(self): + """ + Roots of autoregressive lag-polynomial + """ + return self.arpoly.roots() + + @property + def maroots(self): + """ + Roots of moving average lag-polynomial + """ + return self.mapoly.roots() + + @property + def isstationary(self): + '''Arma process is stationary if AR roots are outside unit circle + + Returns + ------- + isstationary : boolean + True if autoregressive roots are outside unit circle + ''' + if np.all(np.abs(self.arroots) > 1): + return True + else: + return False + + @property + def isinvertible(self): + '''Arma process is invertible if MA roots are outside unit circle + + Returns + ------- + isinvertible : boolean + True if moving average roots are outside unit circle + ''' + if np.all(np.abs(self.maroots) > 1): + return True + else: + return False + + def invertroots(self, retnew=False): + '''make MA polynomial invertible by inverting roots inside unit circle + + Parameters + ---------- + retnew : boolean + If False (default), then return the lag-polynomial as array. + If True, then return a new instance with invertible MA-polynomial + + Returns + ------- + manew : array + new invertible MA lag-polynomial, returned if retnew is false. + wasinvertible : boolean + True if the MA lag-polynomial was already invertible, returned if + retnew is false. + armaprocess : new instance of class + If retnew is true, then return a new instance with invertible + MA-polynomial + ''' + #TODO: variable returns like this? + pr = self.ma_roots() + insideroots = np.abs(pr) < 1 + if insideroots.any(): + pr[np.abs(pr) < 1] = 1./pr[np.abs(pr) < 1] + pnew = np.polynomial.Polynomial.fromroots(pr) + mainv = pnew.coef/pnew.coef[0] + wasinvertible = False + else: + mainv = self.ma + wasinvertible = True + if retnew: + return self.__class__(self.ar, mainv, nobs=self.nobs) + else: + return mainv, wasinvertible + + def generate_sample(self, nsample=100, scale=1., distrvs=None, axis=0, + burnin=0): + '''generate ARMA samples + + Parameters + ---------- + nsample : int or tuple of ints + If nsample is an integer, then this creates a 1d timeseries of + length size. If nsample is a tuple, then the timeseries is along + axis. All other axis have independent arma samples. + scale : float + standard deviation of noise + distrvs : function, random number generator + function that generates the random numbers, and takes sample size + as argument + default: np.random.randn + TODO: change to size argument + burnin : integer (default: 0) + to reduce the effect of initial conditions, burnin observations + at the beginning of the sample are dropped + axis : int + See nsample. + + Returns + ------- + rvs : ndarray + random sample(s) of arma process + + Notes + ----- + Should work for n-dimensional with time series along axis, but not + tested yet. Processes are sampled independently. + ''' + if distrvs is None: + distrvs = np.random.normal + if np.ndim(nsample) == 0: + nsample = [nsample] + if burnin: + #handle burin time for nd arrays + #maybe there is a better trick in scipy.fft code + newsize = list(nsample) + newsize[axis] += burnin + newsize = tuple(newsize) + fslice = [slice(None)]*len(newsize) + fslice[axis] = slice(burnin, None, None) + fslice = tuple(fslice) + else: + newsize = tuple(nsample) + fslice = tuple([slice(None)]*np.ndim(newsize)) + + eta = scale * distrvs(size=newsize) + return signal.lfilter(self.ma, self.ar, eta, axis=axis)[fslice] + + +__all__ = ['arma_acf', 'arma_acovf', 'arma_generate_sample', + 'arma_impulse_response', 'arma2ar', 'arma2ma', 'deconvolve', + 'lpol2index', 'index2lpol'] + + +if __name__ == '__main__': + + + # Simulate AR(1) + #-------------- + # ar * y = ma * eta + ar = [1, -0.8] + ma = [1.0] + + # generate AR data + eta = 0.1 * np.random.randn(1000) + yar1 = signal.lfilter(ar, ma, eta) + + print("\nExample 0") + arest = ARIMAProcess(yar1) + rhohat, cov_x, infodict, mesg, ier = arest.fit((1,0,1)) + print(rhohat) + print(cov_x) + + print("\nExample 1") + ar = [1.0, -0.8] + ma = [1.0, 0.5] + y1 = arest.generate_sample(ar,ma,1000,0.1) + arest = ARIMAProcess(y1) + rhohat1, cov_x1, infodict, mesg, ier = arest.fit((1,0,1)) + print(rhohat1) + print(cov_x1) + err1 = arest.errfn(x=y1) + print(np.var(err1)) + import statsmodels.api as sm + print(sm.regression.yule_walker(y1, order=2, inv=True)) + + print("\nExample 2") + nsample = 1000 + ar = [1.0, -0.6, -0.1] + ma = [1.0, 0.3, 0.2] + y2 = ARIMA.generate_sample(ar,ma,nsample,0.1) + arest2 = ARIMAProcess(y2) + rhohat2, cov_x2, infodict, mesg, ier = arest2.fit((1,0,2)) + print(rhohat2) + print(cov_x2) + err2 = arest.errfn(x=y2) + print(np.var(err2)) + print(arest2.rhoy) + print(arest2.rhoe) + print("true") + print(ar) + print(ma) + rhohat2a, cov_x2a, infodict, mesg, ier = arest2.fit((2,0,2)) + print(rhohat2a) + print(cov_x2a) + err2a = arest.errfn(x=y2) + print(np.var(err2a)) + print(arest2.rhoy) + print(arest2.rhoe) + print("true") + print(ar) + print(ma) + + print(sm.regression.yule_walker(y2, order=2, inv=True)) + + print("\nExample 20") + nsample = 1000 + ar = [1.0]#, -0.8, -0.4] + ma = [1.0, 0.5, 0.2] + y3 = ARIMA.generate_sample(ar,ma,nsample,0.01) + arest20 = ARIMAProcess(y3) + rhohat3, cov_x3, infodict, mesg, ier = arest20.fit((2,0,0)) + print(rhohat3) + print(cov_x3) + err3 = arest20.errfn(x=y3) + print(np.var(err3)) + print(np.sqrt(np.dot(err3,err3)/nsample)) + print(arest20.rhoy) + print(arest20.rhoe) + print("true") + print(ar) + print(ma) + + rhohat3a, cov_x3a, infodict, mesg, ier = arest20.fit((0,0,2)) + print(rhohat3a) + print(cov_x3a) + err3a = arest20.errfn(x=y3) + print(np.var(err3a)) + print(np.sqrt(np.dot(err3a,err3a)/nsample)) + print(arest20.rhoy) + print(arest20.rhoe) + print("true") + print(ar) + print(ma) + + print(sm.regression.yule_walker(y3, order=2, inv=True)) + + print("\nExample 02") + nsample = 1000 + ar = [1.0, -0.8, 0.4] #-0.8, -0.4] + ma = [1.0]#, 0.8, 0.4] + y4 = ARIMA.generate_sample(ar,ma,nsample) + arest02 = ARIMAProcess(y4) + rhohat4, cov_x4, infodict, mesg, ier = arest02.fit((2,0,0)) + print(rhohat4) + print(cov_x4) + err4 = arest02.errfn(x=y4) + print(np.var(err4)) + sige = np.sqrt(np.dot(err4,err4)/nsample) + print(sige) + print(sige * np.sqrt(np.diag(cov_x4))) + print(np.sqrt(np.diag(cov_x4))) + print(arest02.rhoy) + print(arest02.rhoe) + print("true") + print(ar) + print(ma) + + rhohat4a, cov_x4a, infodict, mesg, ier = arest02.fit((0,0,2)) + print(rhohat4a) + print(cov_x4a) + err4a = arest02.errfn(x=y4) + print(np.var(err4a)) + sige = np.sqrt(np.dot(err4a,err4a)/nsample) + print(sige) + print(sige * np.sqrt(np.diag(cov_x4a))) + print(np.sqrt(np.diag(cov_x4a))) + print(arest02.rhoy) + print(arest02.rhoe) + print("true") + print(ar) + print(ma) + import statsmodels.api as sm + print(sm.regression.yule_walker(y4, order=2, method='mle', inv=True)) + + + import matplotlib.pyplot as plt + plt.plot(arest2.forecast()[-100:]) + #plt.show() + + ar1, ar2 = ([1, -0.4], [1, 0.5]) + ar2 = [1, -1] + lagpolyproduct = np.convolve(ar1, ar2) + print(deconvolve(lagpolyproduct, ar2, n=None)) + print(signal.deconvolve(lagpolyproduct, ar2)) + print(deconvolve(lagpolyproduct, ar2, n=10)) + diff --git a/statsmodels/tsa/arma_mle.py b/statsmodels/tsa/arma_mle.py new file mode 100644 index 0000000..0e8b8f1 --- /dev/null +++ b/statsmodels/tsa/arma_mle.py @@ -0,0 +1,377 @@ +""" +Created on Sun Oct 10 14:57:50 2010 + +Author: josef-pktd, Skipper Seabold +License: BSD + +TODO: check everywhere initialization of signal.lfilter + +""" + +from statsmodels.compat.python import range +import numpy as np +from scipy import signal, optimize +from statsmodels.base.model import (LikelihoodModel, + GenericLikelihoodModel) + + +#copied from sandbox/regression/mle.py +#rename until merge of classes is complete +class Arma(GenericLikelihoodModel): #switch to generic mle + """ + univariate Autoregressive Moving Average model, conditional on initial values + + The ARMA model is estimated either with conditional Least Squares or with + conditional Maximum Likelihood. The implementation is + using scipy.filter.lfilter which makes it faster than the Kalman Filter + Implementation. The Kalman Filter Implementation however uses the exact + Maximum Likelihood and will be more accurate, statistically more efficent + in small samples. + + In large samples conditional LS, conditional MLE and exact MLE should be very + close to each other, they are equivalent asymptotically. + + Notes + ----- + this can subclass TSMLEModel + + TODO: + + - CondLS return raw estimation results + - needs checking that there is no wrong state retained, when running fit + several times with different options + - still needs consistent order options. + - Currently assumes that the mean is zero, no mean or effect of exogenous + variables are included in the estimation. + + """ + + def __init__(self, endog, exog=None): + #need to override p,q (nar,nma) correctly + super(Arma, self).__init__(endog, exog) + #set default arma(1,1) + self.nar = 1 + self.nma = 1 + #self.initialize() + + + def initialize(self): + pass + + def geterrors(self, params): + #copied from sandbox.tsa.arima.ARIMA + p, q = self.nar, self.nma + ar = np.concatenate(([1], -params[:p])) + ma = np.concatenate(([1], params[p:p+q])) + + #lfilter_zi requires same length for ar and ma + maxlag = 1+max(p,q) + armax = np.zeros(maxlag) + armax[:p+1] = ar + mamax = np.zeros(maxlag) + mamax[:q+1] = ma + #remove zi again to match better with Skipper's version + #zi = signal.lfilter_zi(armax, mamax) + #errorsest = signal.lfilter(rhoy, rhoe, self.endog, zi=zi)[0] #zi is also returned + errorsest = signal.lfilter(ar, ma, self.endog) + return errorsest + + def loglike(self, params): + """ + Loglikelihood for arma model + + Notes + ----- + The ancillary parameter is assumed to be the last element of + the params vector + """ + +# #copied from sandbox.tsa.arima.ARIMA +# p = self.nar +# rhoy = np.concatenate(([1], params[:p])) +# rhoe = np.concatenate(([1], params[p:-1])) +# errorsest = signal.lfilter(rhoy, rhoe, self.endog) + errorsest = self.geterrors(params) + sigma2 = np.maximum(params[-1]**2, 1e-6) + axis = 0 + nobs = len(errorsest) + #this doesn't help for exploding paths + #errorsest[np.isnan(errorsest)] = 100 +# llike = -0.5 * (np.sum(np.log(sigma2),axis) +# + np.sum((errorsest**2)/sigma2, axis) +# + nobs*np.log(2*np.pi)) + llike = -0.5 * (nobs*np.log(sigma2) + + np.sum((errorsest**2)/sigma2, axis) + + nobs*np.log(2*np.pi)) + return llike + + #add for Jacobian calculation bsejac in GenericMLE, copied from loglike + def nloglikeobs(self, params): + """ + Loglikelihood for arma model + + Notes + ----- + The ancillary parameter is assumed to be the last element of + the params vector + """ + +# #copied from sandbox.tsa.arima.ARIMA +# p = self.nar +# rhoy = np.concatenate(([1], params[:p])) +# rhoe = np.concatenate(([1], params[p:-1])) +# errorsest = signal.lfilter(rhoy, rhoe, self.endog) + errorsest = self.geterrors(params) + sigma2 = np.maximum(params[-1]**2, 1e-6) + axis = 0 + nobs = len(errorsest) + #this doesn't help for exploding paths + #errorsest[np.isnan(errorsest)] = 100 +# llike = -0.5 * (np.sum(np.log(sigma2),axis) +# + np.sum((errorsest**2)/sigma2, axis) +# + nobs*np.log(2*np.pi)) + llike = 0.5 * (np.log(sigma2) + + (errorsest**2)/sigma2 + + np.log(2*np.pi)) + return llike + +#use generic instead +# def score(self, params): +# """ +# Score vector for Arma model +# """ +# #return None +# #print params +# jac = ndt.Jacobian(self.loglike, stepMax=1e-4) +# return jac(params)[-1] + + +#use generic instead +# def hessian(self, params): +# """ +# Hessian of arma model. Currently uses numdifftools +# """ +# #return None +# Hfun = ndt.Jacobian(self.score, stepMax=1e-4) +# return Hfun(params)[-1] + + #copied from arima.ARIMA, needs splitting out of method specific code + def fit(self, order=(0,0), start_params=None, method="ls", **optkwds): + ''' + Estimate lag coefficients of an ARIMA process. + + Parameters + ---------- + order : sequence + p,d,q where p is the number of AR lags, d is the number of + differences to induce stationarity, and q is the number of + MA lags to estimate. + method : str {"ls", "ssm"} + Method of estimation. LS is conditional least squares. + SSM is state-space model and the Kalman filter is used to + maximize the exact likelihood. + rhoy0, rhoe0 : array_like (optional) + starting values for estimation + + Returns + ------- + (rh, cov_x, infodict, mesg, ier) : output of scipy.optimize.leastsq + + rh : + estimate of lag parameters, concatenated [rhoy, rhoe] + cov_x : + unscaled (!) covariance matrix of coefficient estimates + ''' + if not hasattr(order, '__iter__'): + raise ValueError("order must be an iterable sequence. Got type \ +%s instead" % type(order)) + + p,q = order + self.nar = p # needed for geterrors, needs cleanup + self.nma = q + +## if d > 0: +## raise ValueError("Differencing not implemented yet") +## # assume no constant, ie mu = 0 +## # unless overwritten then use w_bar for mu +## Y = np.diff(endog, d, axis=0) #TODO: handle lags? + + x = self.endog.squeeze() # remove the squeeze might be needed later +# def errfn( rho): +# #rhoy, rhoe = rho +# rhoy = np.concatenate(([1], rho[:p])) +# rhoe = np.concatenate(([1], rho[p:])) +# etahatr = signal.lfilter(rhoy, rhoe, x) +# #print rho,np.sum(etahatr*etahatr) +# return etahatr + + #replace with start_params + if start_params is None: + arcoefs0 = 0.5 * np.ones(p) + macoefs0 = 0.5 * np.ones(q) + start_params = np.r_[arcoefs0, macoefs0] + + method = method.lower() + + if method == "ls": + #update + optim_kwds = dict(ftol=1e-10, full_output=True) + optim_kwds.update(optkwds) + #changes: use self.geterrors (nobs,): +# rh, cov_x, infodict, mesg, ier = \ +# optimize.leastsq(errfn, np.r_[rhoy0, rhoe0],ftol=1e-10,full_output=True) + rh, cov_x, infodict, mesg, ier = \ + optimize.leastsq(self.geterrors, start_params, **optim_kwds) + #TODO: need missing parameter estimates for LS, scale, residual-sdt + #TODO: integrate this into the MLE.fit framework? + elif method == "ssm": + pass + else: #this is also conditional least squares + # fmin_bfgs is slow or doesn't work yet + errfnsum = lambda rho : np.sum(self.geterrors(rho)**2) + #xopt, {fopt, gopt, Hopt, func_calls, grad_calls + optim_kwds = dict(maxiter=2, full_output=True) + optim_kwds.update(optkwds) + + rh, fopt, gopt, cov_x, _,_, ier = \ + optimize.fmin_bfgs(errfnsum, start_params, **optim_kwds) + infodict, mesg = None, None + self.params = rh + self.ar_est = np.concatenate(([1], -rh[:p])) + self.ma_est = np.concatenate(([1], rh[p:p+q])) + #rh[-q:])) doesnt work for q=0, added p+q as endpoint for safety if var is included + self.error_estimate = self.geterrors(rh) + return rh, cov_x, infodict, mesg, ier + + + #renamed and needs check with other fit + def fit_mle(self, order=(0,0), start_params=None, method='nm', maxiter=5000, tol=1e-08, + **kwds): + '''Estimate an ARMA model with given order using Conditional Maximum Likelihood + + Parameters + ---------- + order : tuple, 2 elements + specifies the number of lags(nar, nma) to include, not including lag 0 + start_params : array_like, 1d, (nar+nma+1,) + start parameters for the optimization, the length needs to be equal to the + number of ar plus ma coefficients plus 1 for the residual variance + method : str + optimization method, as described in LikelihoodModel + maxiter : int + maximum number of iteration in the optimization + tol : float + tolerance (?) for the optimization + + Returns + ------- + mlefit : instance of (GenericLikelihood ?)Result class + contains estimation results and additional statistics + + ''' + nar, nma = p, q = order + self.nar, self.nma = nar, nma + if start_params is None: + start_params = np.concatenate((0.05*np.ones(nar + nma), [1])) + mlefit = super(Arma, self).fit(start_params=start_params, + maxiter=maxiter, method=method, tol=tol, **kwds) + #bug fix: running ls and then mle didn't overwrite this + rh = mlefit.params + self.params = rh + self.ar_est = np.concatenate(([1], -rh[:p])) + self.ma_est = np.concatenate(([1], rh[p:p+q])) + self.error_estimate = self.geterrors(rh) + return mlefit + + #copied from arima.ARIMA + def predicted(self, ar=None, ma=None): + '''past predicted values of time series + just added, not checked yet + ''' + +# #ar, ma not used, not useful as arguments for predicted pattern +# #need it for prediction for other time series, endog +# if ar is None: +# ar = self.ar_est +# if ma is None: +# ma = self.ma_est + return self.endog - self.error_estimate + + #copied from arima.ARIMA + def forecast(self, ar=None, ma=None, nperiod=10): + '''nperiod ahead forecast at the end of the data period + + forecast is based on the error estimates + ''' + eta = np.r_[self.error_estimate, np.zeros(nperiod)] + if ar is None: + ar = self.ar_est + if ma is None: + ma = self.ma_est + return signal.lfilter(ma, ar, eta) + + def forecast2(self, step_ahead=1, start=None, end=None, endog=None): + '''rolling h-period ahead forecast without reestimation, 1 period ahead only + + in construction: uses loop to go over data and + not sure how to get (finite) forecast polynomial for h-step + + Notes + ----- + just the idea: + To improve performance with expanding arrays, specify total period by endog + and the conditional forecast period by step_ahead + + This should be used by/with results which should contain predicted error or + noise. Could be either a recursive loop or lfilter with a h-step ahead + forecast filter, but then I need to calculate that one. ??? + + further extension: allow reestimation option + + question: return h-step ahead or range(h)-step ahead ? + ''' + if step_ahead != 1: + raise NotImplementedError + + p,q = self.nar, self.nma + k = 0 + errors = self.error_estimate + y = self.endog + + #this is for 1step ahead only, still need h-step predictive polynomial + arcoefs_rev = self.params[k:k+p][::-1] + macoefs_rev = self.params[k+p:k+p+q][::-1] + + + predicted = [] + # create error vector iteratively + for i in range(start, end): + predicted.append(sum(arcoefs_rev*y[i-p:i]) + sum(macoefs_rev * errors[i-p:i])) + + return np.asarray(predicted) + + def forecast3(self, step_ahead=1, start=None): #, end=None): + '''another try for h-step ahead forecasting + ''' + + from .arima_process import arma2ma, ArmaProcess + p,q = self.nar, self.nma + k=0 + ar = self.params[k:k+p] + ma = self.params[k+p:k+p+q] + marep = arma2ma(ar,ma, start)[step_ahead+1:] #truncated ma representation + errors = self.error_estimate + forecasts = np.convolve(errors, marep) + return forecasts#[-(errors.shape[0] - start-5):] #get 5 overlapping for testing + + + + + #copied from arima.ARIMA + #TODO: is this needed as a method at all? + #JP: not needed in this form, but can be replace with using the parameters + @classmethod + def generate_sample(cls, ar, ma, nsample, std=1): + eta = std * np.random.randn(nsample) + return signal.lfilter(ma, ar, eta) + diff --git a/statsmodels/tsa/base/__init__.py b/statsmodels/tsa/base/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/tsa/base/datetools.py b/statsmodels/tsa/base/datetools.py new file mode 100644 index 0000000..5f5b506 --- /dev/null +++ b/statsmodels/tsa/base/datetools.py @@ -0,0 +1,293 @@ +from statsmodels.compat.python import (lrange, lzip, lmap, string_types, callable, + asstr, reduce, zip, map) +import re +import datetime + +from pandas import datetools as pandas_datetools +from pandas import Period, DatetimeIndex +import numpy as np + +#NOTE: All of these frequencies assume end of period (except wrt time) +from pandas.tseries.frequencies import to_offset +class _freq_to_pandas_class(object): + # being lazy, don't want to replace dictionary below + def __getitem__(self, key): + return to_offset(key) +_freq_to_pandas = _freq_to_pandas_class() + + +def _maybe_convert_period(d, how='end'): + # we usually assume timestamp -> end. maybe make configurable sometime + # see pandas #6779 and #6780 + if hasattr(d, 'to_timestamp'): + return d.to_timestamp(how=how) + return d + + +def _is_datetime_index(dates): + if isinstance(dates[0], (datetime.datetime, Period)): + return True # TimeStamp is a datetime subclass + else: + return False + + +def _index_date(date, dates): + """ + Gets the index number of a date in a date index. + + Works in-sample and will return one past the end of the dates since + prediction can start one out. + + Currently used to validate prediction start dates. + + If there dates are not of a fixed-frequency and date is not on the + existing dates, then a ValueError is raised. + """ + if isinstance(date, string_types): + date = date_parser(date) + try: + date = dates.get_loc(date) + return date + except KeyError: + freq = _infer_freq(dates) + if freq is None: + #TODO: try to intelligently roll forward onto a date in the + # index. Waiting to drop pandas 0.7.x support so this is + # cleaner to do. + raise ValueError("There is no frequency for these dates and " + "date %s is not in dates index. Try giving a " + "date that is in the dates index or use " + "an integer" % date) + + # we can start prediction at the end of endog + if _idx_from_dates(dates[-1], date, freq) == 1: + return len(dates) + + raise ValueError("date %s not in date index. Try giving a " + "date that is in the dates index or use an integer" + % date) + + +def _date_from_idx(d1, idx, freq): + """ + Returns the date from an index beyond the end of a date series. + d1 is the datetime of the last date in the series. idx is the + index distance of how far the next date should be from d1. Ie., 1 gives + the next date from d1 at freq. + + Notes + ----- + This does not do any rounding to make sure that d1 is actually on the + offset. For now, this needs to be taken care of before you get here. + """ + return _maybe_convert_period(d1) + idx * _freq_to_pandas[freq] + + +def _idx_from_dates(d1, d2, freq): + """ + Returns an index offset from datetimes d1 and d2. d1 is expected to be the + last date in a date series and d2 is the out of sample date. + + Notes + ----- + Rounds down the index if the end date is before the next date at freq. + Does not check the start date to see whether it is on the offest but + assumes that it is. + """ + return len(DatetimeIndex(start=_maybe_convert_period(d1), + end=_maybe_convert_period(d2), + freq=_freq_to_pandas[freq])) - 1 + + +_quarter_to_day = { + "1" : (3, 31), + "2" : (6, 30), + "3" : (9, 30), + "4" : (12, 31), + "I" : (3, 31), + "II" : (6, 30), + "III" : (9, 30), + "IV" : (12, 31) + } + + +_mdays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] +_months_with_days = lzip(lrange(1,13), _mdays) +_month_to_day = dict(zip(map(str,lrange(1,13)), _months_with_days)) +_month_to_day.update(dict(zip(["I", "II", "III", "IV", "V", "VI", + "VII", "VIII", "IX", "X", "XI", "XII"], + _months_with_days))) + +# regex patterns +_y_pattern = '^\d?\d?\d?\d$' + +_q_pattern = ''' +^ # beginning of string +\d?\d?\d?\d # match any number 1-9999, includes leading zeros + +(:?q) # use q or a : as a separator + +([1-4]|(I{1,3}V?)) # match 1-4 or I-IV roman numerals + +$ # end of string +''' + +_m_pattern = ''' +^ # beginning of string +\d?\d?\d?\d # match any number 1-9999, includes leading zeros + +(:?m) # use m or a : as a separator + +(([1-9][0-2]?)|(I?XI{0,2}|I?VI{0,3}|I{1,3})) # match 1-12 or + # I-XII roman numerals + +$ # end of string +''' + +#NOTE: see also ts.extras.isleapyear, which accepts a sequence +def _is_leap(year): + year = int(year) + return year % 4 == 0 and (year % 100 != 0 or year % 400 == 0) + +def date_parser(timestr, parserinfo=None, **kwargs): + """ + Uses dateutil.parser.parse, but also handles monthly dates of the form + 1999m4, 1999:m4, 1999:mIV, 1999mIV and the same for quarterly data + with q instead of m. It is not case sensitive. The default for annual + data is the end of the year, which also differs from dateutil. + """ + flags = re.IGNORECASE | re.VERBOSE + if re.search(_q_pattern, timestr, flags): + y,q = timestr.replace(":","").lower().split('q') + month, day = _quarter_to_day[q.upper()] + year = int(y) + elif re.search(_m_pattern, timestr, flags): + y,m = timestr.replace(":","").lower().split('m') + month, day = _month_to_day[m.upper()] + year = int(y) + if _is_leap(y) and month == 2: + day += 1 + elif re.search(_y_pattern, timestr, flags): + month, day = 12, 31 + year = int(timestr) + else: + return pandas_datetools.to_datetime(timestr, **kwargs) + + return datetime.datetime(year, month, day) + +def date_range_str(start, end=None, length=None): + """ + Returns a list of abbreviated date strings. + + Parameters + ---------- + start : str + The first abbreviated date, for instance, '1965q1' or '1965m1' + end : str, optional + The last abbreviated date if length is None. + length : int, optional + The length of the returned array of end is None. + + Returns + ------- + date_range : list + List of strings + """ + flags = re.IGNORECASE | re.VERBOSE + #_check_range_inputs(end, length, freq) + start = start.lower() + if re.search(_m_pattern, start, flags): + annual_freq = 12 + split = 'm' + elif re.search(_q_pattern, start, flags): + annual_freq = 4 + split = 'q' + elif re.search(_y_pattern, start, flags): + annual_freq = 1 + start += 'a1' # hack + if end: + end += 'a1' + split = 'a' + else: + raise ValueError("Date %s not understood" % start) + yr1, offset1 = lmap(int, start.replace(":","").split(split)) + if end is not None: + end = end.lower() + yr2, offset2 = lmap(int, end.replace(":","").split(split)) + length = (yr2 - yr1) * annual_freq + offset2 + elif length: + yr2 = yr1 + length // annual_freq + offset2 = length % annual_freq + (offset1 - 1) + years = np.repeat(lrange(yr1+1, yr2), annual_freq).tolist() + years = np.r_[[str(yr1)]*(annual_freq+1-offset1), years] # tack on first year + years = np.r_[years, [str(yr2)]*offset2] # tack on last year + if split != 'a': + offset = np.tile(np.arange(1, annual_freq+1), yr2-yr1-1) + offset = np.r_[np.arange(offset1, annual_freq+1).astype('a2'), offset] + offset = np.r_[offset, np.arange(1,offset2+1).astype('a2')] + date_arr_range = [''.join([i, split, asstr(j)]) for i,j in + zip(years, offset)] + else: + date_arr_range = years.tolist() + return date_arr_range + +def dates_from_str(dates): + """ + Turns a sequence of date strings and returns a list of datetime. + + Parameters + ---------- + dates : array-like + A sequence of abbreviated dates as string. For instance, + '1996m1' or '1996Q1'. The datetime dates are at the end of the + period. + + Returns + ------- + date_list : array + A list of datetime types. + """ + return lmap(date_parser, dates) + +def dates_from_range(start, end=None, length=None): + """ + Turns a sequence of date strings and returns a list of datetime. + + Parameters + ---------- + start : str + The first abbreviated date, for instance, '1965q1' or '1965m1' + end : str, optional + The last abbreviated date if length is None. + length : int, optional + The length of the returned array of end is None. + + Examples + -------- + >>> import statsmodels.api as sm + >>> dates = sm.tsa.datetools.date_range('1960m1', length=nobs) + + + Returns + ------- + date_list : array + A list of datetime types. + """ + dates = date_range_str(start, end, length) + return dates_from_str(dates) + +def _add_datetimes(dates): + return reduce(lambda x, y: y+x, dates) + +def _infer_freq(dates): + maybe_freqstr = getattr(dates, 'freqstr', None) + if maybe_freqstr is not None: + return maybe_freqstr + + # might be a DatetimeIndex + elif hasattr(dates, "inferred_freq"): # see pandas/6637 and others + return dates.inferred_freq + # try to infer from a regular index or something + from pandas.tseries.api import infer_freq + freq = infer_freq(dates) + return freq diff --git a/statsmodels/tsa/base/tests/__init__.py b/statsmodels/tsa/base/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/tsa/base/tests/test_base.py b/statsmodels/tsa/base/tests/test_base.py new file mode 100644 index 0000000..ccb7594 --- /dev/null +++ b/statsmodels/tsa/base/tests/test_base.py @@ -0,0 +1,108 @@ +import numpy as np +import numpy.testing as npt +import pandas as pd +from statsmodels.tsa.base.datetools import _freq_to_pandas +from statsmodels.tsa.base.tsa_model import TimeSeriesModel +from statsmodels.tools.testing import assert_equal, assert_raises + + +def test_pandas_nodates_index(): + + data = [988, 819, 964] + dates = ['a', 'b', 'c'] + s = pd.Series(data, index=dates) + + npt.assert_raises(ValueError, TimeSeriesModel, s) + + # Test with a non-date index that doesn't raise an exception because it + # can be coerced into a nanosecond DatetimeIndex + # (This test doesn't make sense for Numpy < 1.7 since they don't have + # nanosecond support) + # (This test also doesn't make sense for Pandas < 0.14 since we don't + # support nanosecond index in Pandas < 0.14) + try: + # Check for Numpy < 1.7 + _freq_to_pandas['N'] + except: + pass + else: + data = [988, 819, 964] + # index=pd.date_range('1970-01-01', periods=3, freq='QS') + index = pd.to_datetime([100, 101, 102]) + s = pd.Series(data, index=index) + + # Alternate test for Pandas < 0.14 + from distutils.version import LooseVersion + from pandas import __version__ as pd_version + if LooseVersion(pd_version) < '0.14': + assert_raises(NotImplementedError, TimeSeriesModel, s) + else: + actual_str = (index[0].strftime('%Y-%m-%d %H:%M:%S.%f') + + str(index[0].value)) + assert_equal(actual_str, '1970-01-01 00:00:00.000000100') + mod = TimeSeriesModel(s) + start = mod._get_predict_start(0) + end, out_of_sample = mod._get_predict_end(4) + mod._make_predict_dates() + assert_equal(len(mod.data.predict_dates), 5) + +def test_predict_freq(): + # test that predicted dates have same frequency + x = np.arange(1,36.) + + # there's a bug in pandas up to 0.10.2 for YearBegin + #dates = date_range("1972-4-1", "2007-4-1", freq="AS-APR") + dates = pd.date_range("1972-4-30", "2006-4-30", freq="A-APR") + series = pd.Series(x, index=dates) + model = TimeSeriesModel(series) + #npt.assert_(model.data.freq == "AS-APR") + npt.assert_(model.data.freq == "A-APR") + + start = model._get_predict_start("2006-4-30") + end = model._get_predict_end("2016-4-30") + model._make_predict_dates() + + predict_dates = model.data.predict_dates + + #expected_dates = date_range("2006-12-31", "2016-12-31", + # freq="AS-APR") + expected_dates = pd.date_range("2006-4-30", "2016-4-30", freq="A-APR") + assert_equal(predict_dates, expected_dates) + #ptesting.assert_series_equal(predict_dates, expected_dates) + + +def test_keyerror_start_date(): + x = np.arange(1,36.) + + # there's a bug in pandas up to 0.10.2 for YearBegin + #dates = date_range("1972-4-1", "2007-4-1", freq="AS-APR") + dates = pd.date_range("1972-4-30", "2006-4-30", freq="A-APR") + series = pd.Series(x, index=dates) + model = TimeSeriesModel(series) + + npt.assert_raises(ValueError, model._get_predict_start, "1970-4-30") + +def test_period_index(): + # test 1285 + + dates = pd.PeriodIndex(start="1/1/1990", periods=20, freq="M") + x = np.arange(1, 21.) + + model = TimeSeriesModel(pd.Series(x, index=dates)) + npt.assert_(model.data.freq == "M") + model = TimeSeriesModel(pd.Series(x, index=dates)) + npt.assert_(model.data.freq == "M") + +def test_pandas_dates(): + + data = [988, 819, 964] + dates = ['2016-01-01 12:00:00', '2016-02-01 12:00:00', '2016-03-01 12:00:00'] + + datetime_dates = pd.to_datetime(dates) + + result = pd.Series(data=data, index=datetime_dates, name='price') + df = pd.DataFrame(data={'price': data}, index=dates) + + model = TimeSeriesModel(df['price']) + + assert_equal(model.data.dates, result.index) diff --git a/statsmodels/tsa/base/tests/test_datetools.py b/statsmodels/tsa/base/tests/test_datetools.py new file mode 100644 index 0000000..33c4d87 --- /dev/null +++ b/statsmodels/tsa/base/tests/test_datetools.py @@ -0,0 +1,141 @@ +from datetime import datetime +from pandas import DatetimeIndex +import numpy.testing as npt +from statsmodels.tsa.base.datetools import (_date_from_idx, + _idx_from_dates, date_parser, date_range_str, dates_from_str, + dates_from_range, _infer_freq, _freq_to_pandas) +from pandas import DatetimeIndex, PeriodIndex + +def test_date_from_idx(): + d1 = datetime(2008, 12, 31) + idx = 15 + npt.assert_equal(_date_from_idx(d1, idx, 'Q'), datetime(2012, 9, 30)) + npt.assert_equal(_date_from_idx(d1, idx, 'A'), datetime(2023, 12, 31)) + npt.assert_equal(_date_from_idx(d1, idx, 'B'), datetime(2009, 1, 21)) + npt.assert_equal(_date_from_idx(d1, idx, 'D'), datetime(2009, 1, 15)) + npt.assert_equal(_date_from_idx(d1, idx, 'W'), datetime(2009, 4, 12)) + npt.assert_equal(_date_from_idx(d1, idx, 'M'), datetime(2010, 3, 31)) + +def test_idx_from_date(): + d1 = datetime(2008, 12, 31) + idx = 15 + npt.assert_equal(_idx_from_dates(d1, datetime(2012, 9, 30), 'Q'), idx) + npt.assert_equal(_idx_from_dates(d1, datetime(2023, 12, 31), 'A'), idx) + npt.assert_equal(_idx_from_dates(d1, datetime(2009, 1, 21), 'B'), idx) + npt.assert_equal(_idx_from_dates(d1, datetime(2009, 1, 15), 'D'), idx) + # move d1 and d2 forward to end of week + npt.assert_equal(_idx_from_dates(datetime(2009, 1, 4), + datetime(2009, 4, 17), 'W'), idx-1) + npt.assert_equal(_idx_from_dates(d1, datetime(2010, 3, 31), 'M'), idx) + +def test_regex_matching_month(): + t1 = "1999m4" + t2 = "1999:m4" + t3 = "1999:mIV" + t4 = "1999mIV" + result = datetime(1999, 4, 30) + npt.assert_equal(date_parser(t1), result) + npt.assert_equal(date_parser(t2), result) + npt.assert_equal(date_parser(t3), result) + npt.assert_equal(date_parser(t4), result) + +def test_regex_matching_quarter(): + t1 = "1999q4" + t2 = "1999:q4" + t3 = "1999:qIV" + t4 = "1999qIV" + result = datetime(1999, 12, 31) + npt.assert_equal(date_parser(t1), result) + npt.assert_equal(date_parser(t2), result) + npt.assert_equal(date_parser(t3), result) + npt.assert_equal(date_parser(t4), result) + +def test_dates_from_range(): + results = [datetime(1959, 3, 31, 0, 0), + datetime(1959, 6, 30, 0, 0), + datetime(1959, 9, 30, 0, 0), + datetime(1959, 12, 31, 0, 0), + datetime(1960, 3, 31, 0, 0), + datetime(1960, 6, 30, 0, 0), + datetime(1960, 9, 30, 0, 0), + datetime(1960, 12, 31, 0, 0), + datetime(1961, 3, 31, 0, 0), + datetime(1961, 6, 30, 0, 0), + datetime(1961, 9, 30, 0, 0), + datetime(1961, 12, 31, 0, 0), + datetime(1962, 3, 31, 0, 0), + datetime(1962, 6, 30, 0, 0)] + dt_range = dates_from_range('1959q1', '1962q2') + npt.assert_(results == dt_range) + + # test with starting period not the first with length + results = results[2:] + dt_range = dates_from_range('1959q3', length=len(results)) + npt.assert_(results == dt_range) + + # check month + results = [datetime(1959, 3, 31, 0, 0), + datetime(1959, 4, 30, 0, 0), + datetime(1959, 5, 31, 0, 0), + datetime(1959, 6, 30, 0, 0), + datetime(1959, 7, 31, 0, 0), + datetime(1959, 8, 31, 0, 0), + datetime(1959, 9, 30, 0, 0), + datetime(1959, 10, 31, 0, 0), + datetime(1959, 11, 30, 0, 0), + datetime(1959, 12, 31, 0, 0), + datetime(1960, 1, 31, 0, 0), + datetime(1960, 2, 28, 0, 0), + datetime(1960, 3, 31, 0, 0), + datetime(1960, 4, 30, 0, 0), + datetime(1960, 5, 31, 0, 0), + datetime(1960, 6, 30, 0, 0), + datetime(1960, 7, 31, 0, 0), + datetime(1960, 8, 31, 0, 0), + datetime(1960, 9, 30, 0, 0), + datetime(1960, 10, 31, 0, 0), + datetime(1960, 12, 31, 0, 0), + datetime(1961, 1, 31, 0, 0), + datetime(1961, 2, 28, 0, 0), + datetime(1961, 3, 31, 0, 0), + datetime(1961, 4, 30, 0, 0), + datetime(1961, 5, 31, 0, 0), + datetime(1961, 6, 30, 0, 0), + datetime(1961, 7, 31, 0, 0), + datetime(1961, 8, 31, 0, 0), + datetime(1961, 9, 30, 0, 0), + datetime(1961, 10, 31, 0, 0)] + + dt_range = dates_from_range("1959m3", length=len(results)) + + +def test_infer_freq(): + d1 = datetime(2008, 12, 31) + d2 = datetime(2012, 9, 30) + + b = DatetimeIndex(start=d1, end=d2, freq=_freq_to_pandas['B']).values + d = DatetimeIndex(start=d1, end=d2, freq=_freq_to_pandas['D']).values + w = DatetimeIndex(start=d1, end=d2, freq=_freq_to_pandas['W']).values + m = DatetimeIndex(start=d1, end=d2, freq=_freq_to_pandas['M']).values + a = DatetimeIndex(start=d1, end=d2, freq=_freq_to_pandas['A']).values + q = DatetimeIndex(start=d1, end=d2, freq=_freq_to_pandas['Q']).values + + npt.assert_(_infer_freq(w) == 'W-SUN') + npt.assert_(_infer_freq(a) == 'A-DEC') + npt.assert_(_infer_freq(q) == 'Q-DEC') + npt.assert_(_infer_freq(w[:3]) == 'W-SUN') + npt.assert_(_infer_freq(a[:3]) == 'A-DEC') + npt.assert_(_infer_freq(q[:3]) == 'Q-DEC') + npt.assert_(_infer_freq(b[2:5]) == 'B') + npt.assert_(_infer_freq(b[:3]) == 'D') + npt.assert_(_infer_freq(b) == 'B') + npt.assert_(_infer_freq(d) == 'D') + npt.assert_(_infer_freq(m) == 'M') + npt.assert_(_infer_freq(d[:3]) == 'D') + npt.assert_(_infer_freq(m[:3]) == 'M') + +def test_period_index(): + # tests 1285 + from pandas import PeriodIndex + dates = PeriodIndex(start="1/1/1990", periods=20, freq="M") + npt.assert_(_infer_freq(dates) == "M") diff --git a/statsmodels/tsa/base/tsa_model.py b/statsmodels/tsa/base/tsa_model.py new file mode 100644 index 0000000..2950a6b --- /dev/null +++ b/statsmodels/tsa/base/tsa_model.py @@ -0,0 +1,301 @@ +from statsmodels.compat.python import lrange, long +from statsmodels.compat.pandas import is_numeric_dtype + +import datetime + +from pandas import to_datetime, DatetimeIndex, Period, PeriodIndex, Timestamp + +from statsmodels.base import data +import statsmodels.base.model as base +import statsmodels.base.wrapper as wrap +from statsmodels.tsa.base import datetools + +_freq_to_pandas = datetools._freq_to_pandas + +_tsa_doc = """ + %(model)s + + Parameters + ---------- + %(params)s + dates : array-like of datetime, optional + An array-like object of datetime objects. If a pandas object is given + for endog or exog, it is assumed to have a DateIndex. + freq : str, optional + The frequency of the time-series. A Pandas offset or 'B', 'D', 'W', + 'M', 'A', or 'Q'. This is optional if dates are given. + %(extra_params)s + %(extra_sections)s +""" + +_model_doc = "Timeseries model base class" + +_generic_params = base._model_params_doc +_missing_param_doc = base._missing_param_doc + +class TimeSeriesModel(base.LikelihoodModel): + + __doc__ = _tsa_doc % {"model" : _model_doc, "params" : _generic_params, + "extra_params" : _missing_param_doc, + "extra_sections" : ""} + + def __init__(self, endog, exog=None, dates=None, freq=None, missing='none'): + super(TimeSeriesModel, self).__init__(endog, exog, missing=missing) + self._init_dates(dates, freq) + + def _init_dates(self, dates, freq): + if dates is None: + dates = self.data.row_labels + + if dates is not None: + if (not datetools._is_datetime_index(dates) and + isinstance(self.data, data.PandasData)): + try: + if is_numeric_dtype(dates): + raise ValueError + dates = to_datetime(dates) + except ValueError: + raise ValueError("Given a pandas object and the index does " + "not contain dates") + if not freq: + try: + freq = datetools._infer_freq(dates) + except: + raise ValueError("Frequency inference failed. Use `freq` " + "keyword.") + + if isinstance(dates[0], datetime.datetime): + dates = DatetimeIndex(dates) + else: # preserve PeriodIndex + dates = PeriodIndex(dates) + self.data.dates = dates + self.data.freq = freq + + # Test for nanoseconds in early pandas versions + if freq is not None and _freq_to_pandas[freq].freqstr == 'N': + from distutils.version import LooseVersion + from pandas import __version__ as pd_version + if LooseVersion(pd_version) < '0.14': + raise NotImplementedError('Nanosecond index not available in' + ' Pandas < 0.14') + + + def _get_exog_names(self): + return self.data.xnames + + def _set_exog_names(self, vals): + if not isinstance(vals, list): + vals = [vals] + self.data.xnames = vals + + #overwrite with writable property for (V)AR models + exog_names = property(_get_exog_names, _set_exog_names) + + def _get_dates_loc(self, dates, date): + date = dates.get_loc(date) + return date + + def _str_to_date(self, date): + """ + Takes a string and returns a datetime object + """ + if isinstance(self.data.dates, PeriodIndex): + return Period(date) + else: + return datetools.date_parser(date) + + def _set_predict_start_date(self, start): + dates = self.data.dates + if dates is None: + return + if start > len(dates): + raise ValueError("Start must be <= len(endog)") + if start == len(dates): + self.data.predict_start = datetools._date_from_idx(dates[-1], + 1, self.data.freq) + elif start < len(dates): + self.data.predict_start = dates[start] + else: + raise ValueError("Start must be <= len(dates)") + + def _get_predict_start(self, start): + """ + Returns the index of the given start date. Subclasses should define + default behavior for start = None. That isn't handled here. + + Start can be a string or an integer if self.data.dates is None. + """ + dates = self.data.dates + if not isinstance(start, (int, long)): + start = str(start) + if dates is None: + raise ValueError("Got a string for start and dates is None") + dtstart = self._str_to_date(start) + self.data.predict_start = dtstart + try: + start = self._get_dates_loc(dates, dtstart) + except KeyError: + raise ValueError("Start must be in dates. Got %s | %s" % + (str(start), str(dtstart))) + + self._set_predict_start_date(start) + return start + + + def _get_predict_end(self, end): + """ + See _get_predict_start for more information. Subclasses do not + need to define anything for this. + """ + + out_of_sample = 0 # will be overwritten if needed + if end is None: # use data for ARIMA - endog changes + end = len(self.data.endog) - 1 + + dates = self.data.dates + freq = self.data.freq + + if isinstance(end, str) or (dates is not None + and isinstance(end, type(dates[0]))): + if dates is None: + raise ValueError("Got a string or date for `end` and `dates` is None") + + if isinstance(end, str): + dtend = self._str_to_date(end) + else: + dtend = end # end could be a pandas TimeStamp not a datetime + + self.data.predict_end = dtend + try: + end = self._get_dates_loc(dates, dtend) + except KeyError as err: # end is greater than dates[-1]...probably + if dtend > self.data.dates[-1]: + end = len(self.data.endog) - 1 + freq = self.data.freq + out_of_sample = datetools._idx_from_dates(dates[-1], dtend, + freq) + else: + if freq is None: + raise ValueError("There is no frequency for these " + "dates and date %s is not in dates " + "index. Try giving a date that is in " + "the dates index or use an integer." + % dtend) + else: #pragma: no cover + raise err # should never get here + self._make_predict_dates() # attaches self.data.predict_dates + + elif isinstance(end, (int, long)) and dates is not None: + try: + self.data.predict_end = dates[end] + except IndexError as err: + nobs = len(self.data.endog) - 1 # as an index + out_of_sample = end - nobs + end = nobs + if freq is not None: + self.data.predict_end = datetools._date_from_idx(dates[-1], + out_of_sample, freq) + elif out_of_sample <= 0: # have no frequency but are in sample + #TODO: what error to catch here to make sure dates is + #on the index? + try: + self.data.predict_end = self._get_dates_loc(dates, end) + except KeyError: + raise + else: + self.data.predict_end = end + out_of_sample + self.data.predict_start = self._get_dates_loc(dates, + self.data.predict_start) + + self._make_predict_dates() + + elif isinstance(end, (int, long)): + nobs = len(self.data.endog) - 1 # is an index + if end > nobs: + out_of_sample = end - nobs + end = nobs + + elif freq is None: # should have a date with freq = None + print('#'*80) + print(freq) + print(type(freq)) + print('#'*80) + raise ValueError("When freq is None, you must give an integer " + "index for end.") + + else: + print('#'*80) + print(freq) + print(type(freq)) + print('#'*80) + raise ValueError("no rule for interpreting end") + + return end, out_of_sample + + def _make_predict_dates(self): + data = self.data + dtstart = data.predict_start + dtend = data.predict_end + freq = data.freq + + if freq is not None: + pandas_freq = _freq_to_pandas[freq] + # preserve PeriodIndex or DatetimeIndex + dates = self.data.dates.__class__(start=dtstart, + end=dtend, + freq=pandas_freq) + + if pandas_freq.freqstr == 'N': + _dtend = dtend + if isinstance(dates[-1], Period): + _dtend = pd.to_datetime(_dtend).to_period(dates.freq) + if not dates[-1] == _dtend: + # TODO: this is a hack because a DatetimeIndex with + # nanosecond frequency does not include "end" + dtend = Timestamp(dtend.value + 1) + dates = self.data.dates.__class__(start=dtstart, + end=dtend, + freq=pandas_freq) + # handle + elif freq is None and (isinstance(dtstart, (int, long)) and + isinstance(dtend, (int, long))): + from pandas import Index + dates = Index(lrange(dtstart, dtend+1)) + # if freq is None and dtstart and dtend aren't integers, we're + # in sample + else: + dates = self.data.dates + start = self._get_dates_loc(dates, dtstart) + end = self._get_dates_loc(dates, dtend) + dates = dates[start:end+1] # is this index inclusive? + self.data.predict_dates = dates + +class TimeSeriesModelResults(base.LikelihoodModelResults): + def __init__(self, model, params, normalized_cov_params, scale=1.): + self.data = model.data + super(TimeSeriesModelResults, + self).__init__(model, params, normalized_cov_params, scale) + +class TimeSeriesResultsWrapper(wrap.ResultsWrapper): + _attrs = {} + _wrap_attrs = wrap.union_dicts(base.LikelihoodResultsWrapper._wrap_attrs, + _attrs) + _methods = {'predict' : 'dates'} + _wrap_methods = wrap.union_dicts(base.LikelihoodResultsWrapper._wrap_methods, + _methods) +wrap.populate_wrapper(TimeSeriesResultsWrapper, + TimeSeriesModelResults) + +if __name__ == "__main__": + import statsmodels.api as sm + import pandas + + data = sm.datasets.macrodata.load() + + #make a DataFrame + #TODO: attach a DataFrame to some of the datasets, for quicker use + dates = [str(int(x[0])) +':'+ str(int(x[1])) \ + for x in data.data[['year','quarter']]] + + df = pandas.DataFrame(data.data[['realgdp','realinv','realcons']], index=dates) + ex_mod = TimeSeriesModel(df) diff --git a/statsmodels/tsa/descriptivestats.py b/statsmodels/tsa/descriptivestats.py new file mode 100644 index 0000000..633a9a2 --- /dev/null +++ b/statsmodels/tsa/descriptivestats.py @@ -0,0 +1,82 @@ +# -*- coding: utf-8 -*- +"""Descriptive Statistics for Time Series + +Created on Sat Oct 30 14:24:08 2010 + +Author: josef-pktd +License: BSD(3clause) +""" + +import numpy as np +from . import stattools as stt + + +#todo: check subclassing for descriptive stats classes +class TsaDescriptive(object): + '''collection of descriptive statistical methods for time series + + ''' + + def __init__(self, data, label=None, name=''): + self.data = data + self.label = label + self.name = name + + def filter(self, num, den): + from scipy.signal import lfilter + xfiltered = lfilter(num, den, self.data) + return self.__class__(xfiltered, self.label, self.name + '_filtered') + + def detrend(self, order=1): + from . import tsatools + xdetrended = tsatools.detrend(self.data, order=order) + return self.__class__(xdetrended, self.label, self.name + '_detrended') + + def fit(self, order=(1,0,1), **kwds): + from .arima_model import ARMA + self.mod = ARMA(self.data) + self.res = self.mod.fit(order=order, **kwds) + #self.estimated_process = + return self.res + + def acf(self, nlags=40): + return stt.acf(self.data, nlags=nlags) + + def pacf(self, nlags=40): + return stt.pacf(self.data, nlags=nlags) + + def periodogram(self): + #doesn't return frequesncies + return stt.periodogram(self.data) + + # copied from fftarma.py + def plot4(self, fig=None, nobs=100, nacf=20, nfreq=100): + data = self.data + acf = self.acf(nacf) + pacf = self.pacf(nacf) + w = np.linspace(0, np.pi, nfreq, endpoint=False) + spdr = self.periodogram()[:nfreq] #(w) + + if fig is None: + import matplotlib.pyplot as plt + fig = plt.figure() + ax = fig.add_subplot(2,2,1) + namestr = ' for %s' % self.name if self.name else '' + ax.plot(data) + ax.set_title('Time series' + namestr) + + ax = fig.add_subplot(2,2,2) + ax.plot(acf) + ax.set_title('Autocorrelation' + namestr) + + ax = fig.add_subplot(2,2,3) + ax.plot(spdr) # (wr, spdr) + ax.set_title('Power Spectrum' + namestr) + + ax = fig.add_subplot(2,2,4) + ax.plot(pacf) + ax.set_title('Partial Autocorrelation' + namestr) + + return fig + + diff --git a/statsmodels/tsa/filters/__init__.py b/statsmodels/tsa/filters/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/tsa/filters/_utils.py b/statsmodels/tsa/filters/_utils.py new file mode 100644 index 0000000..0a10451 --- /dev/null +++ b/statsmodels/tsa/filters/_utils.py @@ -0,0 +1,149 @@ +from functools import wraps + +from statsmodels.tools.data import _is_using_pandas +from statsmodels.tsa.base import datetools +from statsmodels.tsa.tsatools import freq_to_period + + +def _get_pandas_wrapper(X, trim_head=None, trim_tail=None, names=None): + index = X.index + #TODO: allow use index labels + if trim_head is None and trim_tail is None: + index = index + elif trim_tail is None: + index = index[trim_head:] + elif trim_head is None: + index = index[:-trim_tail] + else: + index = index[trim_head:-trim_tail] + if hasattr(X, "columns"): + if names is None: + names = X.columns + return lambda x : X.__class__(x, index=index, columns=names) + else: + if names is None: + names = X.name + return lambda x : X.__class__(x, index=index, name=names) + + +def _maybe_get_pandas_wrapper(X, trim_head=None, trim_tail=None): + """ + If using pandas returns a function to wrap the results, e.g., wrapper(X) + trim is an integer for the symmetric truncation of the series in some + filters. + otherwise returns None + """ + if _is_using_pandas(X, None): + return _get_pandas_wrapper(X, trim_head, trim_tail) + else: + return + + +def _maybe_get_pandas_wrapper_freq(X, trim=None): + if _is_using_pandas(X, None): + index = X.index + func = _get_pandas_wrapper(X, trim) + freq = index.inferred_freq + return func, freq + else: + return lambda x : x, None + + +def pandas_wrapper(func, trim_head=None, trim_tail=None, names=None, *args, + **kwargs): + @wraps(func) + def new_func(X, *args, **kwargs): + # quick pass-through for do nothing case + if not _is_using_pandas(X, None): + return func(X, *args, **kwargs) + + wrapper_func = _get_pandas_wrapper(X, trim_head, trim_tail, + names) + ret = func(X, *args, **kwargs) + ret = wrapper_func(ret) + return ret + + return new_func + + +def pandas_wrapper_bunch(func, trim_head=None, trim_tail=None, + names=None, *args, **kwargs): + @wraps(func) + def new_func(X, *args, **kwargs): + # quick pass-through for do nothing case + if not _is_using_pandas(X, None): + return func(X, *args, **kwargs) + + wrapper_func = _get_pandas_wrapper(X, trim_head, trim_tail, + names) + ret = func(X, *args, **kwargs) + ret = wrapper_func(ret) + return ret + + return new_func + + +def pandas_wrapper_predict(func, trim_head=None, trim_tail=None, + columns=None, *args, **kwargs): + pass + + +def pandas_wrapper_freq(func, trim_head=None, trim_tail=None, + freq_kw='freq', columns=None, *args, **kwargs): + """ + Return a new function that catches the incoming X, checks if it's pandas, + calls the functions as is. Then wraps the results in the incoming index. + + Deals with frequencies. Expects that the function returns a tuple, + a Bunch object, or a pandas-object. + """ + + @wraps(func) + def new_func(X, *args, **kwargs): + # quick pass-through for do nothing case + if not _is_using_pandas(X, None): + return func(X, *args, **kwargs) + + wrapper_func = _get_pandas_wrapper(X, trim_head, trim_tail, + columns) + index = X.index + freq = index.inferred_freq + kwargs.update({freq_kw : freq_to_period(freq)}) + ret = func(X, *args, **kwargs) + ret = wrapper_func(ret) + return ret + + return new_func + + +def dummy_func(X): + return X + +def dummy_func_array(X): + return X.values + +def dummy_func_pandas_columns(X): + return X.values + + +def dummy_func_pandas_series(X): + return X['A'] + +import pandas as pd +import numpy as np + + +def test_pandas_freq_decorator(): + X = pd.util.testing.makeDataFrame() + # in X, get a function back that returns an X with the same columns + func = pandas_wrapper(dummy_func) + + np.testing.assert_equal(func(X.values), X) + + func = pandas_wrapper(dummy_func_array) + pd.util.testing.assert_frame_equal(func(X), X) + + expected = X.rename(columns=dict(zip('ABCD', 'EFGH'))) + func = pandas_wrapper(dummy_func_array, names=list('EFGH')) + pd.util.testing.assert_frame_equal(func(X), expected) + diff --git a/statsmodels/tsa/filters/api.py b/statsmodels/tsa/filters/api.py new file mode 100644 index 0000000..8a7ea85 --- /dev/null +++ b/statsmodels/tsa/filters/api.py @@ -0,0 +1,4 @@ +from .bk_filter import bkfilter +from .hp_filter import hpfilter +from .cf_filter import cffilter +from .filtertools import miso_lfilter, convolution_filter, recursive_filter diff --git a/statsmodels/tsa/filters/bk_filter.py b/statsmodels/tsa/filters/bk_filter.py new file mode 100644 index 0000000..29abd7c --- /dev/null +++ b/statsmodels/tsa/filters/bk_filter.py @@ -0,0 +1,96 @@ +from __future__ import absolute_import + +import numpy as np +from scipy.signal import fftconvolve +from ._utils import _maybe_get_pandas_wrapper + +def bkfilter(X, low=6, high=32, K=12): + """ + Baxter-King bandpass filter + + Parameters + ---------- + X : array-like + A 1 or 2d ndarray. If 2d, variables are assumed to be in columns. + low : float + Minimum period for oscillations, ie., Baxter and King suggest that + the Burns-Mitchell U.S. business cycle has 6 for quarterly data and + 1.5 for annual data. + high : float + Maximum period for oscillations BK suggest that the U.S. + business cycle has 32 for quarterly data and 8 for annual data. + K : int + Lead-lag length of the filter. Baxter and King propose a truncation + length of 12 for quarterly data and 3 for annual data. + + Returns + ------- + Y : array + Cyclical component of X + + References + ---------- :: + Baxter, M. and R. G. King. "Measuring Business Cycles: Approximate + Band-Pass Filters for Economic Time Series." *Review of Economics and + Statistics*, 1999, 81(4), 575-593. + + Notes + ----- + Returns a centered weighted moving average of the original series. Where + the weights a[j] are computed :: + + a[j] = b[j] + theta, for j = 0, +/-1, +/-2, ... +/- K + b[0] = (omega_2 - omega_1)/pi + b[j] = 1/(pi*j)(sin(omega_2*j)-sin(omega_1*j), for j = +/-1, +/-2,... + + and theta is a normalizing constant :: + + theta = -sum(b)/(2K+1) + + Examples + -------- + >>> import statsmodels.api as sm + >>> import pandas as pd + >>> dta = sm.datasets.macrodata.load_pandas().data + >>> dates = sm.tsa.datetools.dates_from_range('1959Q1', '2009Q3') + >>> index = pd.DatetimeIndex(dates) + >>> dta.set_index(index, inplace=True) + + >>> cycles = sm.tsa.filters.bkfilter(dta[['realinv']], 6, 24, 12) + + >>> import matplotlib.pyplot as plt + >>> fig, ax = plt.subplots() + >>> cycles.plot(ax=ax, style=['r--', 'b-']) + >>> plt.show() + + .. plot:: plots/bkf_plot.py + + See Also + -------- + statsmodels.tsa.filters.cf_filter.cffilter + statsmodels.tsa.filters.hp_filter.hpfilter + statsmodels.tsa.seasonal.seasonal_decompose + """ + #TODO: change the docstring to ..math::? + #TODO: allow windowing functions to correct for Gibb's Phenomenon? + # adjust bweights (symmetrically) by below before demeaning + # Lancosz Sigma Factors np.sinc(2*j/(2.*K+1)) + _pandas_wrapper = _maybe_get_pandas_wrapper(X, K, K) + X = np.asarray(X) + omega_1 = 2.*np.pi/high # convert from freq. to periodicity + omega_2 = 2.*np.pi/low + bweights = np.zeros(2*K+1) + bweights[K] = (omega_2 - omega_1)/np.pi # weight at zero freq. + j = np.arange(1,int(K)+1) + weights = 1/(np.pi*j)*(np.sin(omega_2*j)-np.sin(omega_1*j)) + bweights[K+j] = weights # j is an idx + bweights[:K] = weights[::-1] # make symmetric weights + bweights -= bweights.mean() # make sure weights sum to zero + if X.ndim == 2: + bweights = bweights[:,None] + X = fftconvolve(X, bweights, mode='valid') # get a centered moving avg/ + # convolution + if _pandas_wrapper is not None: + return _pandas_wrapper(X) + + return X diff --git a/statsmodels/tsa/filters/cf_filter.py b/statsmodels/tsa/filters/cf_filter.py new file mode 100644 index 0000000..11d226d --- /dev/null +++ b/statsmodels/tsa/filters/cf_filter.py @@ -0,0 +1,109 @@ +from statsmodels.compat.python import range + +import numpy as np +from ._utils import _maybe_get_pandas_wrapper + +# the data is sampled quarterly, so cut-off frequency of 18 + +# Wn is normalized cut-off freq +#Cutoff frequency is that frequency where the magnitude response of the filter +# is sqrt(1/2.). For butter, the normalized cutoff frequency Wn must be a +# number between 0 and 1, where 1 corresponds to the Nyquist frequency, p +# radians per sample. + +#NOTE: uses a loop, could probably be sped-up for very large datasets +def cffilter(X, low=6, high=32, drift=True): + """ + Christiano Fitzgerald asymmetric, random walk filter + + Parameters + ---------- + X : array-like + 1 or 2d array to filter. If 2d, variables are assumed to be in columns. + low : float + Minimum period of oscillations. Features below low periodicity are + filtered out. Default is 6 for quarterly data, giving a 1.5 year + periodicity. + high : float + Maximum period of oscillations. Features above high periodicity are + filtered out. Default is 32 for quarterly data, giving an 8 year + periodicity. + drift : bool + Whether or not to remove a trend from the data. The trend is estimated + as np.arange(nobs)*(X[-1] - X[0])/(len(X)-1) + + Returns + ------- + cycle : array + The features of `X` between periodicities given by low and high + trend : array + The trend in the data with the cycles removed. + + Examples + -------- + >>> import statsmodels.api as sm + >>> import pandas as pd + >>> dta = sm.datasets.macrodata.load_pandas().data + >>> dates = sm.tsa.datetools.dates_from_range('1959Q1', '2009Q3') + >>> index = pd.DatetimeIndex(dates) + >>> dta.set_index(index, inplace=True) + + >>> cf_cycles, cf_trend = sm.tsa.filters.cffilter(dta[["infl", "unemp"]]) + + >>> import matplotlib.pyplot as plt + >>> fig, ax = plt.subplots() + >>> cf_cycles.plot(ax=ax, style=['r--', 'b-']) + >>> plt.show() + + .. plot:: plots/cff_plot.py + + See Also + -------- + statsmodels.tsa.filters.bk_filter.bkfilter + statsmodels.tsa.filters.hp_filter.hpfilter + statsmodels.tsa.seasonal.seasonal_decompose + + """ + #TODO: cythonize/vectorize loop?, add ability for symmetric filter, + # and estimates of theta other than random walk. + if low < 2: + raise ValueError("low must be >= 2") + _pandas_wrapper = _maybe_get_pandas_wrapper(X) + X = np.asanyarray(X) + if X.ndim == 1: + X = X[:,None] + nobs, nseries = X.shape + a = 2*np.pi/high + b = 2*np.pi/low + + if drift: # get drift adjusted series + X = X - np.arange(nobs)[:,None]*(X[-1] - X[0])/(nobs-1) + + J = np.arange(1,nobs+1) + Bj = (np.sin(b*J)-np.sin(a*J))/(np.pi*J) + B0 = (b-a)/np.pi + Bj = np.r_[B0,Bj][:,None] + y = np.zeros((nobs,nseries)) + + for i in range(nobs): + + B = -.5*Bj[0] -np.sum(Bj[1:-i-2]) + A = -Bj[0] - np.sum(Bj[1:-i-2]) - np.sum(Bj[1:i]) - B + y[i] = Bj[0] * X[i] + np.dot(Bj[1:-i-2].T,X[i+1:-1]) + B*X[-1] + \ + np.dot(Bj[1:i].T, X[1:i][::-1]) + A*X[0] + y = y.squeeze() + + cycle, trend = y, X.squeeze()-y + + if _pandas_wrapper is not None: + return _pandas_wrapper(cycle), _pandas_wrapper(trend) + + return cycle, trend + +if __name__ == "__main__": + import statsmodels as sm + dta = sm.datasets.macrodata.load().data[['infl','tbilrate']].view((float,2))[1:] + cycle, trend = cffilter(dta, 6, 32, drift=True) + dta = sm.datasets.macrodata.load().data['tbilrate'][1:] + cycle2, trend2 = cffilter(dta, 6, 32, drift=True) + diff --git a/statsmodels/tsa/filters/filtertools.py b/statsmodels/tsa/filters/filtertools.py new file mode 100644 index 0000000..8b8c55c --- /dev/null +++ b/statsmodels/tsa/filters/filtertools.py @@ -0,0 +1,371 @@ +# -*- coding: utf-8 -*- +"""Linear Filters for time series analysis and testing + + +TODO: +* check common sequence in signature of filter functions (ar,ma,x) or (x,ar,ma) + +Created on Sat Oct 23 17:18:03 2010 + +Author: Josef-pktd +""" +#not original copied from various experimental scripts +#version control history is there + +from statsmodels.compat.python import range +import numpy as np +import scipy.fftpack as fft +from scipy import signal +from scipy.signal.signaltools import _centered as trim_centered +from ._utils import _maybe_get_pandas_wrapper + + +def _pad_nans(x, head=None, tail=None): + if np.ndim(x) == 1: + if head is None and tail is None: + return x + elif head and tail: + return np.r_[[np.nan] * head, x, [np.nan] * tail] + elif tail is None: + return np.r_[[np.nan] * head, x] + elif head is None: + return np.r_[x, [np.nan] * tail] + elif np.ndim(x) == 2: + if head is None and tail is None: + return x + elif head and tail: + return np.r_[[[np.nan] * x.shape[1]] * head, x, + [[np.nan] * x.shape[1]] * tail] + elif tail is None: + return np.r_[[[np.nan] * x.shape[1]] * head, x] + elif head is None: + return np.r_[x, [[np.nan] * x.shape[1]] * tail] + else: + raise ValueError("Nan-padding for ndim > 2 not implemented") + +#original changes and examples in sandbox.tsa.try_var_convolve + +# don't do these imports, here just for copied fftconvolve +#get rid of these imports +#from scipy.fftpack import fft, ifft, ifftshift, fft2, ifft2, fftn, \ +# ifftn, fftfreq +#from numpy import product,array + +def fftconvolveinv(in1, in2, mode="full"): + """Convolve two N-dimensional arrays using FFT. See convolve. + + copied from scipy.signal.signaltools, but here used to try out inverse filter + doesn't work or I can't get it to work + + 2010-10-23: + looks ok to me for 1d, + from results below with padded data array (fftp) + but it doesn't work for multidimensional inverse filter (fftn) + original signal.fftconvolve also uses fftn + + """ + s1 = np.array(in1.shape) + s2 = np.array(in2.shape) + complex_result = (np.issubdtype(in1.dtype, np.complex) or + np.issubdtype(in2.dtype, np.complex)) + size = s1+s2-1 + + # Always use 2**n-sized FFT + fsize = 2**np.ceil(np.log2(size)) + IN1 = fft.fftn(in1,fsize) + #IN1 *= fftn(in2,fsize) #JP: this looks like the only change I made + IN1 /= fft.fftn(in2,fsize) # use inverse filter + # note the inverse is elementwise not matrix inverse + # is this correct, NO doesn't seem to work for VARMA + fslice = tuple([slice(0, int(sz)) for sz in size]) + ret = fft.ifftn(IN1)[fslice].copy() + del IN1 + if not complex_result: + ret = ret.real + if mode == "full": + return ret + elif mode == "same": + if np.product(s1,axis=0) > np.product(s2,axis=0): + osize = s1 + else: + osize = s2 + return trim_centered(ret,osize) + elif mode == "valid": + return trim_centered(ret,abs(s2-s1)+1) + +#code duplication with fftconvolveinv +def fftconvolve3(in1, in2=None, in3=None, mode="full"): + """Convolve two N-dimensional arrays using FFT. See convolve. + + for use with arma (old version: in1=num in2=den in3=data + + * better for consistency with other functions in1=data in2=num in3=den + * note in2 and in3 need to have consistent dimension/shape + since I'm using max of in2, in3 shapes and not the sum + + copied from scipy.signal.signaltools, but here used to try out inverse + filter doesn't work or I can't get it to work + + 2010-10-23 + looks ok to me for 1d, + from results below with padded data array (fftp) + but it doesn't work for multidimensional inverse filter (fftn) + original signal.fftconvolve also uses fftn + """ + if (in2 is None) and (in3 is None): + raise ValueError('at least one of in2 and in3 needs to be given') + s1 = np.array(in1.shape) + if not in2 is None: + s2 = np.array(in2.shape) + else: + s2 = 0 + if not in3 is None: + s3 = np.array(in3.shape) + s2 = max(s2, s3) # try this looks reasonable for ARMA + #s2 = s3 + + + complex_result = (np.issubdtype(in1.dtype, np.complex) or + np.issubdtype(in2.dtype, np.complex)) + size = s1+s2-1 + + # Always use 2**n-sized FFT + fsize = 2**np.ceil(np.log2(size)) + #convolve shorter ones first, not sure if it matters + if not in2 is None: + IN1 = fft.fftn(in2, fsize) + if not in3 is None: + IN1 /= fft.fftn(in3, fsize) # use inverse filter + # note the inverse is elementwise not matrix inverse + # is this correct, NO doesn't seem to work for VARMA + IN1 *= fft.fftn(in1, fsize) + fslice = tuple([slice(0, int(sz)) for sz in size]) + ret = fft.ifftn(IN1)[fslice].copy() + del IN1 + if not complex_result: + ret = ret.real + if mode == "full": + return ret + elif mode == "same": + if np.product(s1,axis=0) > np.product(s2,axis=0): + osize = s1 + else: + osize = s2 + return trim_centered(ret,osize) + elif mode == "valid": + return trim_centered(ret,abs(s2-s1)+1) + +#original changes and examples in sandbox.tsa.try_var_convolve +#examples and tests are there +def recursive_filter(x, ar_coeff, init=None): + ''' + Autoregressive, or recursive, filtering. + + Parameters + ---------- + x : array-like + Time-series data. Should be 1d or n x 1. + ar_coeff : array-like + AR coefficients in reverse time order. See Notes + init : array-like + Initial values of the time-series prior to the first value of y. + The default is zero. + + Returns + ------- + y : array + Filtered array, number of columns determined by x and ar_coeff. If a + pandas object is given, a pandas object is returned. + + Notes + ----- + + Computes the recursive filter :: + + y[n] = ar_coeff[0] * y[n-1] + ... + + ar_coeff[n_coeff - 1] * y[n - n_coeff] + x[n] + + where n_coeff = len(n_coeff). + ''' + _pandas_wrapper = _maybe_get_pandas_wrapper(x) + x = np.asarray(x).squeeze() + ar_coeff = np.asarray(ar_coeff).squeeze() + + if x.ndim > 1 or ar_coeff.ndim > 1: + raise ValueError('x and ar_coeff have to be 1d') + + if init is not None: # integer init are treated differently in lfiltic + if len(init) != len(ar_coeff): + raise ValueError("ar_coeff must be the same length as init") + init = np.asarray(init, dtype=float) + + if init is not None: + zi = signal.lfiltic([1], np.r_[1, -ar_coeff], init, x) + else: + zi = None + + y = signal.lfilter([1.], np.r_[1, -ar_coeff], x, zi=zi) + + if init is not None: + result = y[0] + else: + result = y + + if _pandas_wrapper: + return _pandas_wrapper(result) + return result + + +def convolution_filter(x, filt, nsides=2): + ''' + Linear filtering via convolution. Centered and backward displaced moving + weighted average. + + Parameters + ---------- + x : array_like + data array, 1d or 2d, if 2d then observations in rows + filt : array_like + Linear filter coefficients in reverse time-order. Should have the + same number of dimensions as x though if 1d and ``x`` is 2d will be + coerced to 2d. + nsides : int, optional + If 2, a centered moving average is computed using the filter + coefficients. If 1, the filter coefficients are for past values only. + Both methods use scipy.signal.convolve. + + Returns + ------- + y : ndarray, 2d + Filtered array, number of columns determined by x and filt. If a + pandas object is given, a pandas object is returned. The index of + the return is the exact same as the time period in ``x`` + + Notes + ----- + In nsides == 1, x is filtered :: + + y[n] = filt[0]*x[n-1] + ... + filt[n_filt-1]*x[n-n_filt] + + where n_filt is len(filt). + + If nsides == 2, x is filtered around lag 0 :: + + y[n] = filt[0]*x[n - n_filt/2] + ... + filt[n_filt / 2] * x[n] + + ... + x[n + n_filt/2] + + where n_filt is len(filt). If n_filt is even, then more of the filter + is forward in time than backward. + + If filt is 1d or (nlags,1) one lag polynomial is applied to all + variables (columns of x). If filt is 2d, (nlags, nvars) each series is + independently filtered with its own lag polynomial, uses loop over nvar. + This is different than the usual 2d vs 2d convolution. + + Filtering is done with scipy.signal.convolve, so it will be reasonably + fast for medium sized data. For large data fft convolution would be + faster. + ''' + # for nsides shift the index instead of using 0 for 0 lag this + # allows correct handling of NaNs + if nsides == 1: + trim_head = len(filt) - 1 + trim_tail = None + elif nsides == 2: + trim_head = int(np.ceil(len(filt)/2.) - 1) or None + trim_tail = int(np.ceil(len(filt)/2.) - len(filt) % 2) or None + else: # pragma : no cover + raise ValueError("nsides must be 1 or 2") + + _pandas_wrapper = _maybe_get_pandas_wrapper(x) + x = np.asarray(x) + filt = np.asarray(filt) + if x.ndim > 1 and filt.ndim == 1: + filt = filt[:, None] + if x.ndim > 2: + raise ValueError('x array has to be 1d or 2d') + + if filt.ndim == 1 or min(filt.shape) == 1: + result = signal.convolve(x, filt, mode='valid') + elif filt.ndim == 2: + nlags = filt.shape[0] + nvar = x.shape[1] + result = np.zeros((x.shape[0] - nlags + 1, nvar)) + if nsides == 2: + for i in range(nvar): + # could also use np.convolve, but easier for swiching to fft + result[:, i] = signal.convolve(x[:, i], filt[:, i], + mode='valid') + elif nsides == 1: + for i in range(nvar): + result[:, i] = signal.convolve(x[:, i], np.r_[0, filt[:, i]], + mode='valid') + result = _pad_nans(result, trim_head, trim_tail) + if _pandas_wrapper: + return _pandas_wrapper(result) + return result + + +#copied from sandbox.tsa.garch +def miso_lfilter(ar, ma, x, useic=False): #[0.1,0.1]): + ''' + use nd convolution to merge inputs, + then use lfilter to produce output + + arguments for column variables + return currently 1d + + Parameters + ---------- + ar : array_like, 1d, float + autoregressive lag polynomial including lag zero, ar(L)y_t + ma : array_like, same ndim as x, currently 2d + moving average lag polynomial ma(L)x_t + x : array_like, 2d + input data series, time in rows, variables in columns + + Returns + ------- + y : array, 1d + filtered output series + inp : array, 1d + combined input series + + Notes + ----- + currently for 2d inputs only, no choice of axis + Use of signal.lfilter requires that ar lag polynomial contains + floating point numbers + does not cut off invalid starting and final values + + miso_lfilter find array y such that:: + + ar(L)y_t = ma(L)x_t + + with shapes y (nobs,), x (nobs,nvars), ar (narlags,), ma (narlags,nvars) + + ''' + ma = np.asarray(ma) + ar = np.asarray(ar) + #inp = signal.convolve(x, ma, mode='valid') + #inp = signal.convolve(x, ma)[:, (x.shape[1]+1)//2] + #Note: convolve mixes up the variable left-right flip + #I only want the flip in time direction + #this might also be a mistake or problem in other code where I + #switched from correlate to convolve + # correct convolve version, for use with fftconvolve in other cases + #inp2 = signal.convolve(x, ma[:,::-1])[:, (x.shape[1]+1)//2] + inp = signal.correlate(x, ma[::-1,:])[:, (x.shape[1]+1)//2] + #for testing 2d equivalence between convolve and correlate + #np.testing.assert_almost_equal(inp2, inp) + nobs = x.shape[0] + # cut of extra values at end + + #todo initialize also x for correlate + if useic: + return signal.lfilter([1], ar, inp, + #zi=signal.lfilter_ic(np.array([1.,0.]),ar, ic))[0][:nobs], inp[:nobs] + zi=signal.lfiltic(np.array([1.,0.]),ar, useic))[0][:nobs], inp[:nobs] + else: + return signal.lfilter([1], ar, inp)[:nobs], inp[:nobs] + #return signal.lfilter([1], ar, inp), inp diff --git a/statsmodels/tsa/filters/hp_filter.py b/statsmodels/tsa/filters/hp_filter.py new file mode 100644 index 0000000..9e55f47 --- /dev/null +++ b/statsmodels/tsa/filters/hp_filter.py @@ -0,0 +1,102 @@ +from __future__ import absolute_import + +from scipy import sparse +from scipy.sparse.linalg import spsolve +import numpy as np +from ._utils import _maybe_get_pandas_wrapper + + +def hpfilter(X, lamb=1600): + """ + Hodrick-Prescott filter + + Parameters + ---------- + X : array-like + The 1d ndarray timeseries to filter of length (nobs,) or (nobs,1) + lamb : float + The Hodrick-Prescott smoothing parameter. A value of 1600 is + suggested for quarterly data. Ravn and Uhlig suggest using a value + of 6.25 (1600/4**4) for annual data and 129600 (1600*3**4) for monthly + data. + + Returns + ------- + cycle : array + The estimated cycle in the data given lamb. + trend : array + The estimated trend in the data given lamb. + + Examples + --------- + >>> import statsmodels.api as sm + >>> import pandas as pd + >>> dta = sm.datasets.macrodata.load_pandas().data + >>> dates = sm.tsa.datetools.dates_from_range('1959Q1', '2009Q3') + >>> index = pd.DatetimeIndex(dates) + >>> dta.set_index(index, inplace=True) + + >>> cycle, trend = sm.tsa.filters.hpfilter(dta.realgdp, 1600) + >>> gdp_decomp = dta[['realgdp']] + >>> gdp_decomp["cycle"] = cycle + >>> gdp_decomp["trend"] = trend + + >>> import matplotlib.pyplot as plt + >>> fig, ax = plt.subplots() + >>> gdp_decomp[["realgdp", "trend"]]["2000-03-31":].plot(ax=ax, + ... fontsize=16); + >>> plt.show() + + .. plot:: plots/hpf_plot.py + + Notes + ----- + The HP filter removes a smooth trend, `T`, from the data `X`. by solving + + min sum((X[t] - T[t])**2 + lamb*((T[t+1] - T[t]) - (T[t] - T[t-1]))**2) + T t + + Here we implemented the HP filter as a ridge-regression rule using + scipy.sparse. In this sense, the solution can be written as + + T = inv(I - lamb*K'K)X + + where I is a nobs x nobs identity matrix, and K is a (nobs-2) x nobs matrix + such that + + K[i,j] = 1 if i == j or i == j + 2 + K[i,j] = -2 if i == j + 1 + K[i,j] = 0 otherwise + + See Also + -------- + statsmodels.tsa.filters.bk_filter.bkfilter + statsmodels.tsa.filters.cf_filter.cffilter + statsmodels.tsa.seasonal.seasonal_decompose + + References + ---------- + Hodrick, R.J, and E. C. Prescott. 1980. "Postwar U.S. Business Cycles: An + Empricial Investigation." `Carnegie Mellon University discussion + paper no. 451`. + Ravn, M.O and H. Uhlig. 2002. "Notes On Adjusted the Hodrick-Prescott + Filter for the Frequency of Observations." `The Review of Economics and + Statistics`, 84(2), 371-80. + """ + _pandas_wrapper = _maybe_get_pandas_wrapper(X) + X = np.asarray(X, float) + if X.ndim > 1: + X = X.squeeze() + nobs = len(X) + I = sparse.eye(nobs,nobs) + offsets = np.array([0,1,2]) + data = np.repeat([[1.],[-2.],[1.]], nobs, axis=1) + K = sparse.dia_matrix((data, offsets), shape=(nobs-2,nobs)) + + use_umfpack = True + trend = spsolve(I+lamb*K.T.dot(K), X, use_umfpack=use_umfpack) + + cycle = X-trend + if _pandas_wrapper is not None: + return _pandas_wrapper(cycle), _pandas_wrapper(trend) + return cycle, trend diff --git a/statsmodels/tsa/filters/tests/__init__.py b/statsmodels/tsa/filters/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/tsa/filters/tests/results/__init__.py b/statsmodels/tsa/filters/tests/results/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/tsa/filters/tests/results/filter.R b/statsmodels/tsa/filters/tests/results/filter.R new file mode 100644 index 0000000..0ac15b3 --- /dev/null +++ b/statsmodels/tsa/filters/tests/results/filter.R @@ -0,0 +1,49 @@ +library(R2nparray) + +x <- c(-50, 175, 149, 214, 247, 237, 225, 329, 729, 809, 530, 489, 540, 457, + 195, 176, 337, 239, 128, 102, 232, 429, 3, 98, 43, -141, -77, -13, + 125, 361, -45, 184) +x <- ts(x, start=c(1951, 1), frequency=4) + + +conv2 <- filter(x, c(.75, .25), method="convolution") + +conv1 <- filter(x, c(.75, .25), method="convolution", sides=1) + +recurse <- filter(x, c(.75, .25), method="recursive") + +recurse.init <- filter(x, c(.75, .25), method="recursive", init=c(150, 100)) + +conv2.odd <- filter(x, c(.75, .5, .3, .2, .1), method="convolution", + sides=2) +conv1.odd <- filter(x, c(.75, .5, .3, .2, .1), method="convolution", + sides=1) +recurse.odd <- filter(x, c(.75, .5, .3, .2, .1), method="recursive", + init=c(150, 100, 125, 135, 145)) + +# missing values + +x[10] = NaN + +conv2.na <- filter(x, c(.75, .25), method="convolution") + +conv1.na <- filter(x, c(.75, .25), method="convolution", sides=1) + +recurse.na <- filter(x, c(.75, .25), method="recursive") + +recurse.init.na <- filter(x, c(.75, .25), method="recursive", init=c(150, 100)) + + +options(digits=12) + +R2nparray(list(conv2=as.numeric(conv2), conv1=as.numeric(conv1), + recurse=as.numeric(recurse), + recurse_init=as.numeric(recurse.init), + conv2_na=as.numeric(conv2.na), conv1_na=as.numeric(conv1.na), + recurse_na=as.numeric(recurse.na), + recurse_init_na=as.numeric(recurse.init.na), + conv2_odd=as.numeric(conv2.odd), + conv1_odd=as.numeric(conv1.odd), + recurse_odd=as.numeric(recurse.odd)), + fname="filter_results.py") + diff --git a/statsmodels/tsa/filters/tests/results/filter_results.py b/statsmodels/tsa/filters/tests/results/filter_results.py new file mode 100644 index 0000000..24f914b --- /dev/null +++ b/statsmodels/tsa/filters/tests/results/filter_results.py @@ -0,0 +1,24 @@ +import numpy as np + +conv2 = np.array([118.75,155.5,197.75,238.75,239.5,228,303,629,789,599.75,499.25,527.25,477.75,260.5,180.75,296.75,263.5,155.75,108.5,199.5,379.75,109.5,74.25,56.75,-95,-93,-29,90.5,302,56.5,126.75,np.nan]) + +conv1 = np.array([np.nan,118.75,155.5,197.75,238.75,239.5,228,303,629,789,599.75,499.25,527.25,477.75,260.5,180.75,296.75,263.5,155.75,108.5,199.5,379.75,109.5,74.25,56.75,-95,-93,-29,90.5,302,56.5,126.75]) + +recurse = np.array([-50,137.5,239.625,428.09375,627.9765625,815.005859375,993.248535156,1277.68786621,1935.57803345,2580.10549164,2948.97362709,3345.75659323,3786.56085169,4133.35978708,4241.66005323,4390.58498669,4690.35375333,4854.41156167,4941.39710958,5021.6507226,5233.58731935,5609.60317016,5518.59920746,5639.35019814,5652.16245047,5507.95938738,5467.01015315,5464.24746171,5589.93813457,5919.51546636,5792.12113341,6007.96971665]) + +recurse_init = np.array([87.5,278.125,379.46875,568.1328125,767.966796875,955.008300781,1133.2479248,1417.6880188,2075.5779953,2720.10550117,3088.97362471,3485.75659382,3926.56085154,4273.35978711,4381.66005322,4530.58498669,4830.35375333,4994.41156167,5081.39710958,5161.6507226,5373.58731935,5749.60317016,5658.59920746,5779.35019814,5792.16245047,5647.95938738,5607.01015315,5604.24746171,5729.93813457,6059.51546636,5932.12113341,6147.96971665]) + +conv2_na = np.array([118.75,155.5,197.75,238.75,239.5,228,303,629,np.nan,np.nan,499.25,527.25,477.75,260.5,180.75,296.75,263.5,155.75,108.5,199.5,379.75,109.5,74.25,56.75,-95,-93,-29,90.5,302,56.5,126.75,np.nan]) + +conv1_na = np.array([np.nan,118.75,155.5,197.75,238.75,239.5,228,303,629,np.nan,np.nan,499.25,527.25,477.75,260.5,180.75,296.75,263.5,155.75,108.5,199.5,379.75,109.5,74.25,56.75,-95,-93,-29,90.5,302,56.5,126.75]) + +recurse_na = np.array([-50,137.5,239.625,428.09375,627.9765625,815.005859375,993.248535156,1277.68786621,1935.57803345,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan]) + +recurse_init_na = np.array([87.5,278.125,379.46875,568.1328125,767.966796875,955.008300781,1133.2479248,1417.6880188,2075.5779953,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan]) + +conv2_odd = np.array([np.nan,np.nan,366.95,412.75,419.05,501.15,850.85,1138.65,1109,1053.15,1043.2,946.35,687.55,523.5,544.65,485.25,371.3,297.2,344.9,517.85,319.55,260.3,191.15,-11.35,-95.45,-72.15,40.25,299.85,173.95,247.5,np.nan,np.nan]) + +conv1_odd = np.array([np.nan,np.nan,np.nan,np.nan,366.95,412.75,419.05,501.15,850.85,1138.65,1109,1053.15,1043.2,946.35,687.55,523.5,544.65,485.25,371.3,297.2,344.9,517.85,319.55,260.3,191.15,-11.35,-95.45,-72.15,40.25,299.85,173.95,247.5]) + +recurse_odd = np.array([191.5,462.125,668.84375,1044.1453125,1556.46835938,2238.65205078,3175.44806152,4572.56601685,6833.45236176,9776.38394429,13509.7387615,18791.5897613,26145.4239591,36153.4065035,49699.8299323,68480.4947171,94501.551723,130110.583827,179061.168784,246469.715955,339396.406323,467401.785292,643016.749056,885080.436404,1218108.49028,1676305.60832,2307074.11064,3175195.69641,4370080.25182,6014713.24095,8277634.14851,11392536.8578]) + diff --git a/statsmodels/tsa/filters/tests/test_filters.py b/statsmodels/tsa/filters/tests/test_filters.py new file mode 100644 index 0000000..6e0eb6c --- /dev/null +++ b/statsmodels/tsa/filters/tests/test_filters.py @@ -0,0 +1,742 @@ +from datetime import datetime +import numpy as np +from numpy.testing import (assert_almost_equal, assert_equal, assert_allclose, + assert_raises, assert_) +from numpy import array, column_stack +from statsmodels.datasets import macrodata +from statsmodels.tsa.base.datetools import dates_from_range +from pandas import Index, DataFrame, DatetimeIndex, concat +from statsmodels.tsa.filters.api import (bkfilter, hpfilter, cffilter, + convolution_filter, recursive_filter) + + +def test_bking1d(): + """ + Test Baxter King band-pass filter. Results are taken from Stata + """ + bking_results = array([7.320813, 2.886914, -6.818976, -13.49436, + -13.27936, -9.405913, -5.691091, -5.133076, -7.273468, + -9.243364, -8.482916, -4.447764, 2.406559, 10.68433, + 19.46414, 28.09749, 34.11066, 33.48468, 24.64598, 9.952399, + -4.265528, -12.59471, -13.46714, -9.049501, -3.011248, + .5655082, 2.897976, 7.406077, 14.67959, 18.651, 13.05891, + -2.945415, -24.08659, -41.86147, -48.68383, -43.32689, + -31.66654, -20.38356, -13.76411, -9.978693, -3.7704, 10.27108, + 31.02847, 51.87613, 66.93117, 73.51951, 73.4053, 69.17468, + 59.8543, 38.23899, -.2604809, -49.0107, -91.1128, -112.1574, + -108.3227, -86.51453, -59.91258, -40.01185, -29.70265, + -22.76396, -13.08037, 1.913622, 20.44045, 37.32873, 46.79802, + 51.95937, 59.67393, 70.50803, 81.27311, 83.53191, 67.72536, + 33.78039, -6.509092, -37.31579, -46.05207, -29.81496, 1.416417, + 28.31503, + 32.90134, 8.949259, -35.41895, -84.65775, -124.4288, -144.6036, + -140.2204, -109.2624, -53.6901, 15.07415, 74.44268, 104.0403, + 101.0725, 76.58291, 49.27925, 36.15751, 36.48799, 37.60897, + 27.75998, 4.216643, -23.20579, -39.33292, -36.6134, -20.90161, + -4.143123, 5.48432, 9.270075, 13.69573, 22.16675, 33.01987, + 41.93186, 47.12222, 48.62164, 47.30701, 40.20537, 22.37898, + -7.133002, -43.3339, -78.51229, -101.3684, -105.2179, + -90.97147, + -68.30824, -48.10113, -35.60709, -31.15775, -31.82346, + -32.49278, -28.22499, -14.42852, 10.1827, 36.64189, 49.43468, + 38.75517, 6.447761, -33.15883, -62.60446, -72.87829, -66.54629, + -52.61205, -38.06676, -26.19963, -16.51492, -7.007577, + .6125674, + 7.866972, 14.8123, 22.52388, 30.65265, 39.47801, 49.05027, + 59.02925, + 72.88999, 95.08865, 125.8983, 154.4283, 160.7638, 130.6092, + 67.84406, -7.070272, -68.08128, -99.39944, -104.911, + -100.2372, -98.11596, -104.2051, -114.0125, -113.3475, + -92.98669, -51.91707, -.7313812, 43.22938, 64.62762, 64.07226, + 59.35707, 67.06026, 91.87247, 124.4591, 151.2402, 163.0648, + 154.6432]) + X = macrodata.load().data['realinv'] + Y = bkfilter(X, 6, 32, 12) + assert_almost_equal(Y,bking_results,4) + +def test_bking2d(): + """ + Test Baxter-King band-pass filter with 2d input + """ + bking_results = array([[7.320813,-.0374475], [2.886914,-.0430094], + [-6.818976,-.053456], [-13.49436,-.0620739], [-13.27936,-.0626929], + [-9.405913,-.0603022], [-5.691091,-.0630016], [-5.133076,-.0832268], + [-7.273468,-.1186448], [-9.243364,-.1619868], [-8.482916,-.2116604], + [-4.447764,-.2670747], [2.406559,-.3209931], [10.68433,-.3583075], + [19.46414,-.3626742], [28.09749,-.3294618], [34.11066,-.2773388], + [33.48468,-.2436127], [24.64598,-.2605531], [9.952399,-.3305166], + [-4.265528,-.4275561], [-12.59471,-.5076068], [-13.46714,-.537573], + [-9.049501,-.5205845], [-3.011248,-.481673], [.5655082,-.4403994], + [2.897976,-.4039957], [7.406077,-.3537394], [14.67959,-.2687359], + [18.651,-.1459743], [13.05891,.0014926], [-2.945415,.1424277], + [-24.08659,.2451936], [-41.86147,.288541], [-48.68383,.2727282], + [-43.32689,.1959127], [-31.66654,.0644874], [-20.38356,-.1158372], + [-13.76411,-.3518627], [-9.978693,-.6557535], [-3.7704,-1.003754], + [10.27108,-1.341632], [31.02847,-1.614486], [51.87613,-1.779089], + [66.93117,-1.807459], [73.51951,-1.679688], [73.4053,-1.401012], + [69.17468,-.9954996], [59.8543,-.511261], [38.23899,-.0146745], + [-.2604809,.4261311], [-49.0107,.7452514], [-91.1128,.8879492], + [-112.1574,.8282748], [-108.3227,.5851508], [-86.51453,.2351699], + [-59.91258,-.1208998], [-40.01185,-.4297895], [-29.70265,-.6821963], + [-22.76396,-.9234254], [-13.08037,-1.217539], [1.913622,-1.57367], + [20.44045,-1.927008], [37.32873,-2.229565], [46.79802,-2.463154], + [51.95937,-2.614697], [59.67393,-2.681357], [70.50803,-2.609654], + [81.27311,-2.301618], [83.53191,-1.720974], [67.72536,-.9837123], + [33.78039,-.2261613], [-6.509092,.4546985], [-37.31579,1.005751], + [-46.05207,1.457224], [-29.81496,1.870815], [1.416417,2.263313], + [28.31503,2.599906], [32.90134,2.812282], [8.949259,2.83358], + [-35.41895,2.632667], [-84.65775,2.201077], [-124.4288,1.598951], + [-144.6036,.9504762], [-140.2204,.4187932], [-109.2624,.1646726], + [-53.6901,.2034265], [15.07415,.398165], [74.44268,.5427476], + [104.0403,.5454975], [101.0725,.4723354], [76.58291,.4626823], + [49.27925,.5840143], [36.15751,.7187981], [36.48799,.6058422], + [37.60897,.1221227], [27.75998,-.5891272], [4.216643,-1.249841], + [-23.20579,-1.594972], [-39.33292,-1.545968], [-36.6134,-1.275494], + [-20.90161,-1.035783], [-4.143123,-.9971732], [5.48432,-1.154264], + [9.270075,-1.29987], [13.69573,-1.240559], [22.16675,-.9662656], + [33.01987,-.6420301], [41.93186,-.4698712], [47.12222,-.4527797], + [48.62164,-.4407153], [47.30701,-.2416076], [40.20537,.2317583], + [22.37898,.8710276], [-7.133002,1.426177], [-43.3339,1.652785], + [-78.51229,1.488021], [-101.3684,1.072096], [-105.2179,.6496446], + [-90.97147,.4193682], [-68.30824,.41847], [-48.10113,.5253419], + [-35.60709,.595076], [-31.15775,.5509905], [-31.82346,.3755519], + [-32.49278,.1297979], [-28.22499,-.0916165], [-14.42852,-.2531037], + [10.1827,-.3220784], [36.64189,-.2660561], [49.43468,-.1358522], + [38.75517,-.0279508], [6.447761,.0168735], [-33.15883,.0315687], + [-62.60446,.0819507], [-72.87829,.2274033], [-66.54629,.4641401], + [-52.61205,.7211093], [-38.06676,.907773], [-26.19963,.9387103], + [-16.51492,.7940786], [-7.007577,.5026631], [.6125674,.1224996], + [7.866972,-.2714422], [14.8123,-.6273921], [22.52388,-.9124271], + [30.65265,-1.108861], [39.47801,-1.199206], [49.05027,-1.19908], + [59.02925,-1.139046], [72.88999,-.9775021], [95.08865,-.6592603], + [125.8983,-.1609712], [154.4283,.4796201], [160.7638,1.100565], + [130.6092,1.447148], [67.84406,1.359608], [-7.070272,.8931825], + [-68.08128,.2619787], [-99.39944,-.252208], [-104.911,-.4703874], + [-100.2372,-.4430657], [-98.11596,-.390683], [-104.2051,-.5647846], + [-114.0125,-.9397582], [-113.3475,-1.341633], [-92.98669,-1.567337], + [-51.91707,-1.504943], [-.7313812,-1.30576], [43.22938,-1.17151], + [64.62762,-1.136151], [64.07226,-1.050555], [59.35707,-.7308369], + [67.06026,-.1766731], [91.87247,.3898467], [124.4591,.8135461], + [151.2402,.9644226], [163.0648,.6865934], [154.6432,.0115685]]) + + X = macrodata.load().data[['realinv','cpi']].view((float,2)) + Y = bkfilter(X, 6, 32, 12) + assert_almost_equal(Y,bking_results,4) + +def test_hpfilter(): + """ + Test Hodrick-Prescott Filter. Results taken from Stata. + """ + hpfilt_res = array([[3.951191484487844718e+01,2.670837085155121713e+03], + [8.008853245681075350e+01,2.698712467543189177e+03], + [4.887545512195401898e+01,2.726612544878045810e+03], + [3.059193256079834100e+01,2.754612067439201837e+03], + [6.488266733421960453e+01,2.782816332665780465e+03], + [2.304024204546703913e+01,2.811349757954532834e+03], + [-1.355312369487364776e+00,2.840377312369487299e+03], + [-6.746236512580753697e+01,2.870078365125807522e+03], + [-8.136743836853429457e+01,2.900631438368534418e+03], + [-6.016789026443257171e+01,2.932172890264432681e+03], + [-4.636922433138215638e+01,2.964788224331382025e+03], + [-2.069533915570400495e+01,2.998525339155703932e+03], + [-2.162152558595607843e+00,3.033403152558595593e+03], + [-4.718647774311648391e+00,3.069427647774311481e+03], + [-1.355645669169007306e+01,3.106603456691690099e+03], + [-4.436926204475639679e+01,3.144932262044756499e+03], + [-4.332027378211660107e+01,3.184407273782116590e+03], + [-4.454697106352068658e+01,3.224993971063520803e+03], + [-2.629875787765286077e+01,3.266630757877652741e+03], + [-4.426119635629265758e+01,3.309228196356292756e+03], + [-1.443441190762496262e+01,3.352680411907625057e+03], + [-2.026686669186437939e+01,3.396853866691864368e+03], + [-1.913700136208899494e+01,3.441606001362089046e+03], + [-5.482458977940950717e+01,3.486781589779409387e+03], + [-1.596244517937793717e+01,3.532213445179378141e+03], + [-1.374011542874541192e+01,3.577700115428745448e+03], + [1.325482813403914406e+01,3.623030171865960710e+03], + [5.603040174253828809e+01,3.667983598257461836e+03], + [1.030743373627105939e+02,3.712348662637289181e+03], + [7.217534795943993231e+01,3.755948652040559864e+03], + [5.462972503693208637e+01,3.798671274963067845e+03], + [4.407065050666142270e+01,3.840449349493338559e+03], + [3.749016270204992907e+01,3.881249837297949853e+03], + [-1.511244199923112319e+00,3.921067244199923152e+03], + [-9.093507374079763395e+00,3.959919507374079785e+03], + [-1.685361946760258434e+01,3.997823619467602384e+03], + [2.822211031434289907e+01,4.034790889685657021e+03], + [6.117590627896424849e+01,4.070822093721035344e+03], + [5.433135391434370831e+01,4.105935646085656117e+03], + [3.810480376716623141e+01,4.140188196232833434e+03], + [7.042964928802848590e+01,4.173670350711971878e+03], + [4.996346842507591646e+01,4.206496531574924120e+03], + [4.455282059571254649e+01,4.238825179404287155e+03], + [-7.584961950576143863e+00,4.270845961950576566e+03], + [-4.620339247697120300e+01,4.302776392476971523e+03], + [-7.054024364552969928e+01,4.334829243645529459e+03], + [-6.492941099801464588e+01,4.367188410998014660e+03], + [-1.433567024239555394e+02,4.399993702423955256e+03], + [-5.932834493089012540e+01,4.433344344930889747e+03], + [-6.842096758743628016e+01,4.467249967587436004e+03], + [-6.774011924654860195e+01,4.501683119246548813e+03], + [-9.030958565658056614e+01,4.536573585656580690e+03], + [-4.603981499136807543e+01,4.571808814991368308e+03], + [2.588118806672991923e+01,4.607219811933269739e+03], + [3.489419371912299539e+01,4.642608806280876706e+03], + [7.675179642495095322e+01,4.677794203575049323e+03], + [1.635497817724171910e+02,4.712616218227582976e+03], + [1.856079654765617306e+02,4.746963034523438182e+03], + [1.254269446392718237e+02,4.780825055360728584e+03], + [1.387413113837174024e+02,4.814308688616282780e+03], + [6.201826599282230745e+01,4.847598734007177882e+03], + [4.122129542972197669e+01,4.880966704570278125e+03], + [-4.120287475842360436e+01,4.914722874758424041e+03], + [-9.486328233441963675e+01,4.949203282334419782e+03], + [-1.894232132641573116e+02,4.984718213264157384e+03], + [-1.895766639620087517e+02,5.021518663962008759e+03], + [-1.464092413342650616e+02,5.059737241334265491e+03], + [-1.218770668721217589e+02,5.099388066872122181e+03], + [-4.973075629078175552e+01,5.140393756290781312e+03], + [-5.365375213897277717e+01,5.182600752138972894e+03], + [-7.175241524251214287e+01,5.225824415242512259e+03], + [-7.834757283225462743e+01,5.269846572832254424e+03], + [-6.264220687943907251e+01,5.314404206879438789e+03], + [-3.054332122210325906e+00,5.359185332122210639e+03], + [4.808218808024685131e+01,5.403838811919753425e+03], + [2.781399326736391231e+00,5.448011600673263274e+03], + [-2.197570415173231595e+01,5.491380704151732061e+03], + [1.509441335012807031e+02,5.533624866498719712e+03], + [1.658909029574851957e+02,5.574409097042514986e+03], + [2.027292548049981633e+02,5.613492745195001589e+03], + [1.752101578176061594e+02,5.650738842182393455e+03], + [1.452808749847536092e+02,5.686137125015246056e+03], + [1.535481629475025329e+02,5.719786837052497503e+03], + [1.376169777998875361e+02,5.751878022200112355e+03], + [1.257703080340770612e+02,5.782696691965922582e+03], + [-2.524186846895645431e+01,5.812614868468956047e+03], + [-6.546618027042404719e+01,5.842083180270424236e+03], + [1.192352023580315290e+01,5.871536479764196883e+03], + [1.043482970188742911e+02,5.901368702981125352e+03], + [2.581376184768396342e+01,5.931981238152316109e+03], + [6.634330880534071184e+01,5.963840691194659485e+03], + [-4.236780162594641297e+01,5.997429801625946311e+03], + [-1.759397735321817891e+02,6.033272773532181418e+03], + [-1.827933311233055065e+02,6.071867331123305121e+03], + [-2.472312362505917918e+02,6.113601236250591683e+03], + [-2.877470049336488955e+02,6.158748004933649099e+03], + [-2.634066336693540507e+02,6.207426633669354487e+03], + [-1.819572770763625158e+02,6.259576277076362203e+03], + [-1.175034606274621183e+02,6.314971460627461965e+03], + [-4.769898649718379602e+01,6.373272986497183410e+03], + [1.419578280287896632e+01,6.434068217197121157e+03], + [6.267929662760798237e+01,6.496914703372392069e+03], + [6.196413196753746888e+01,6.561378868032462378e+03], + [5.019769125317907310e+01,6.627066308746821051e+03], + [4.665364933213822951e+01,6.693621350667861407e+03], + [3.662430749527266016e+01,6.760719692504727391e+03], + [7.545680850246480986e+01,6.828066191497535328e+03], + [6.052940492147536133e+01,6.895388595078524304e+03], + [6.029518881462354329e+01,6.962461811185376064e+03], + [2.187042136652689805e+01,7.029098578633473153e+03], + [2.380067926824722235e+01,7.095149320731752596e+03], + [-7.119129802169481991e+00,7.160478129802169860e+03], + [-3.194497359120850888e+01,7.224963973591208742e+03], + [-1.897137038934124575e+01,7.288481370389341464e+03], + [-1.832687287845146784e+01,7.350884872878451461e+03], + [4.600482336597542599e+01,7.412017176634024509e+03], + [2.489047706403016491e+01,7.471709522935970199e+03], + [6.305909392127250612e+01,7.529821906078727807e+03], + [4.585212309498183458e+01,7.586229876905018500e+03], + [9.314260180878318351e+01,7.640848398191216802e+03], + [1.129819097095369216e+02,7.693621090290463144e+03], + [1.204662123176703972e+02,7.744549787682329224e+03], + [1.336860614601246198e+02,7.793706938539875409e+03], + [1.034567175813735957e+02,7.841240282418626521e+03], + [1.403118873372050075e+02,7.887381112662795204e+03], + [1.271726169351004501e+02,7.932425383064899506e+03], + [8.271925765282139764e+01,7.976756742347178260e+03], + [-3.197432211752584408e+01,8.020838322117525422e+03], + [-1.150209535194062482e+02,8.065184953519406008e+03], + [-1.064694837456772802e+02,8.110291483745677397e+03], + [-1.190428718925368230e+02,8.156580871892536379e+03], + [-1.353635336292991269e+02,8.204409533629299403e+03], + [-9.644348283027102298e+01,8.254059482830271008e+03], + [-6.143413116116607853e+01,8.305728131161165948e+03], + [-3.019161311097923317e+01,8.359552613110980019e+03], + [1.384333163552582846e+00,8.415631666836447039e+03], + [-4.156016073666614830e+01,8.474045160736666730e+03], + [-4.843882841860977351e+01,8.534873828418609264e+03], + [-6.706442838867042155e+01,8.598172428388670596e+03], + [-2.019644488579979225e+01,8.663965444885800025e+03], + [-4.316446881084630149e+00,8.732235446881084499e+03], + [4.435061943264736328e+01,8.802952380567352520e+03], + [2.820550564155564643e+01,8.876083494358445023e+03], + [5.155624419490777655e+01,8.951623755805092514e+03], + [-4.318760899315748247e+00,9.029585760899315574e+03], + [-6.534632828542271454e+01,9.110014328285422380e+03], + [-7.226757738268497633e+01,9.192951577382684263e+03], + [-9.412378615444868046e+01,9.278398786154448317e+03], + [-1.191240653288368776e+02,9.366312065328836979e+03], + [-4.953669826751865912e+01,9.456588698267518339e+03], + [-6.017251579067487910e+01,9.549051515790675694e+03], + [-5.103438828313483100e+01,9.643492388283135369e+03], + [-7.343057830678117170e+01,9.739665578306781754e+03], + [-2.774245193054957781e+01,9.837293451930549054e+03], + [-3.380481112519191811e+00,9.936052481112519672e+03], + [-2.672779877794346248e+01,1.003560179877794326e+04], + [-3.217342505148371856e+01,1.013559842505148299e+04], + [-4.140567518359966925e+01,1.023568267518359971e+04], + [-6.687756033938057953e+00,1.033547475603393832e+04], + [7.300600408459467872e+01,1.043456899591540605e+04], + [6.862345670680042531e+01,1.053255554329319966e+04], + [5.497882461487461114e+01,1.062907017538512628e+04], + [9.612244093055960548e+01,1.072379155906944106e+04], + [1.978212770103891671e+02,1.081643272298961165e+04], + [1.362772276848754700e+02,1.090676677231512440e+04], + [2.637635494867263333e+02,1.099469045051327339e+04], + [1.876813256815166824e+02,1.108018567431848351e+04], + [1.711447873158413131e+02,1.116339921268415856e+04], + [5.257586460826678376e+01,1.124459513539173349e+04], + [4.710652228531762375e+01,1.132414447771468258e+04], + [-6.237613484241046535e+01,1.140245113484241119e+04], + [-9.982044354035315337e+01,1.147994844354035376e+04], + [-7.916275548997509759e+01,1.155703075548997549e+04], + [-9.526003459472303803e+01,1.163403003459472347e+04], + [-1.147987680369169539e+02,1.171122876803691724e+04], + [-1.900259054765901965e+02,1.178884990547659072e+04], + [-2.212256473439556430e+02,1.186704464734395515e+04], + [-2.071394278781845060e+02,1.194584542787818464e+04], + [-8.968541528904825100e+01,1.202514641528904758e+04], + [-6.189531564415665343e+01,1.210471231564415575e+04], + [-5.662878162551714922e+01,1.218425178162551674e+04], + [-4.961678134413705266e+01,1.226343478134413635e+04], + [-3.836288992144181975e+01,1.234189588992144127e+04], + [-8.956671991456460091e+00,1.241923867199145570e+04], + [3.907028461866866564e+01,1.249504271538133071e+04], + [1.865299000184495526e+01,1.256888200999815490e+04], + [4.279803532226833340e+01,1.264035496467773191e+04], + [3.962735362631610769e+01,1.270907164637368442e+04], + [1.412691291877854383e+02,1.277466887081221466e+04], + [1.256537791844366438e+02,1.283680822081556289e+04], + [7.067642758858892194e+01,1.289523957241141034e+04], + [1.108876647603192396e+02,1.294979133523968085e+04], + [9.956490829291760747e+01,1.300033609170708223e+04], + [1.571612709880937473e+02,1.304681572901190702e+04], + [2.318746375812715996e+02,1.308923436241872878e+04], + [2.635546670125277160e+02,1.312769433298747208e+04], + [2.044220965739259555e+02,1.316244290342607383e+04], + [2.213739418903714977e+02,1.319389205810962812e+04], + [1.020184547767112235e+02,1.322258154522328914e+04], + [-1.072694716663390864e+02,1.324918947166633916e+04], + [-3.490477058718843182e+02,1.327445770587188417e+04], + [-3.975570728533530200e+02,1.329906107285335383e+04], + [-3.331152428080622485e+02,1.332345624280806260e+04]]) + dta = macrodata.load().data['realgdp'] + res = column_stack((hpfilter(dta,1600))) + assert_almost_equal(res,hpfilt_res,6) + +def test_cfitz_filter(): + """ + Test Christiano-Fitzgerald Filter. Results taken from R. + """ + #NOTE: The Stata mata code and the matlab code it's based on are wrong. + cfilt_res = array([[0.712599537179426,0.439563468233128], + [1.06824041304411,0.352886666575907], + [1.19422467791128,0.257297004260607], + [0.970845473140327,0.114504692143872], + [0.467026976628563,-0.070734782329146], + [-0.089153511514031,-0.238609685132605], + [-0.452339254128573,-0.32376584042956], + [-0.513231214461187,-0.314288554228112], + [-0.352372578720063,-0.258815055101336], + [-0.160282602521333,-0.215076844089567], + [-0.0918782593827686,-0.194120745417214], + [-0.168083823205437,-0.158327420072693], + [-0.291595204965808,-0.0742727139742986], + [-0.348638756841307,0.037008291163602], + [-0.304328040874631,0.108196527328748], + [-0.215933150969686,0.0869231107437175], + [-0.165632621390694,-0.0130556619786275], + [-0.182326839507151,-0.126570926191824], + [-0.223737786804725,-0.205535321806185], + [-0.228939291453403,-0.269110078201836], + [-0.185518327227038,-0.375976507132174], + [-0.143900152461529,-0.53760115656157], + [-0.162749541550174,-0.660065018626038], + [-0.236263634756884,-0.588542352053736], + [-0.275785854309211,-0.236867929421996], + [-0.173666515108109,0.303436335579219], + [0.0963135720251639,0.779772338801993], + [0.427070069032285,0.929108075350647], + [0.629034743259998,0.658330841002647], + [0.557941248993624,0.118500049361018], + [0.227866624051603,-0.385048321099911], + [-0.179878859883227,-0.582223992561493], + [-0.428263000051965,-0.394053702908091], + [-0.381640684645912,0.0445437406977307], + [-0.0942745548364887,0.493997792757968], + [0.238132391504895,0.764519811304315], + [0.431293754256291,0.814755206427316], + [0.455010435813661,0.745567043101108], + [0.452800768971269,0.709401694610443], + [0.615754619329312,0.798293251119636], + [1.00256335412457,0.975856845059388], + [1.44841039351691,1.09097252730799], + [1.64651971120370,0.967823457118036], + [1.35534532901802,0.522397724737059], + [0.580492790312048,-0.16941343361609], + [-0.410746188031773,-0.90760401289056], + [-1.26148406066881,-1.49592867122591], + [-1.75784179124566,-1.87404167409849], + [-1.94478553960064,-2.14586210891112], + [-2.03751202708559,-2.465855239868], + [-2.20376059354166,-2.86294187189049], + [-2.39722338315852,-3.15004697654831], + [-2.38032366161537,-3.01390466643222], + [-1.91798022532025,-2.23395210271226], + [-0.982318490353716,-0.861346053067472], + [0.199047030343412,0.790266582335616], + [1.28582776574786,2.33731327460104], + [2.03565905376430,3.54085486821911], + [2.41201557412526,4.36519456268955], + [2.52011070482927,4.84810517685452], + [2.45618479815452,4.92906708807477], + [2.22272146945388,4.42591058990048], + [1.78307567169034,3.20962906108388], + [1.18234431860844,1.42568060336985], + [0.590069172333348,-0.461896808688991], + [0.19662302949837,-1.89020992539465], + [0.048307034171166,-2.53490571941987], + [-0.0141956981899000,-2.50020338531674], + [-0.230505187108187,-2.20625973569823], + [-0.700947410386801,-2.06643697511048], + [-1.27085123163060,-2.21536883679783], + [-1.64082547897928,-2.49016921117735], + [-1.62286182971254,-2.63948740221362], + [-1.31609762181362,-2.54685250637904], + [-1.03085567704873,-2.27157435428923], + [-1.01100120380112,-1.90404507430561], + [-1.19823958399826,-1.4123209792214], + [-1.26398933608383,-0.654000086153317], + [-0.904710628949692,0.447960016248203], + [-0.151340093679588,1.73970411237156], + [0.592926881165989,2.85741581650685], + [0.851660587507523,3.4410446351716], + [0.480324393352127,3.36870271362297], + [-0.165153230782417,2.82003806696544], + [-0.459235919375844,2.12858991660866], + [0.0271158842479935,1.55840980891556], + [1.18759188180671,1.17980298478623], + [2.43238266962309,0.904011534980672], + [3.08277213720132,0.595286911949837], + [2.79953663720953,0.148014782859571], + [1.73694442845833,-0.496297332023011], + [0.357638079951977,-1.33108149877570], + [-0.891418825216945,-2.22650083183366], + [-1.77646467793627,-2.89359299718574], + [-2.24614790863088,-2.97921619243347], + [-2.29048879096607,-2.30003092779280], + [-1.87929656465888,-1.05298381273274], + [-1.04510101454788,0.215837488618531], + [0.00413338508394524,0.937866257924888], + [0.906870625251025,0.92664365343019], + [1.33869057593416,0.518564571494679], + [1.22659678454440,0.288096869652890], + [0.79380139656044,0.541053084632774], + [0.38029431865832,1.01905199983437], + [0.183929413600038,1.10529586616777], + [0.140045425897033,0.393618564826736], + [0.0337313182352219,-0.86431819007665], + [-0.269208622829813,-1.85638085246792], + [-0.687276639992166,-1.82275359004533], + [-1.00161592325614,-0.692695765071617], + [-1.06320089194036,0.803577361347341], + [-0.927152307196776,1.67366338751788], + [-0.786802101366614,1.42564362251793], + [-0.772970884572502,0.426446388877964], + [-0.81275662801789,-0.437721213831647], + [-0.686831250382476,-0.504255468075149], + [-0.237936463020255,0.148656301898438], + [0.459631879129522,0.832925905720478], + [1.12717379822508,0.889455302576383], + [1.48640453200855,0.268042676202216], + [1.46515245776211,-0.446505038539178], + [1.22993484959115,-0.563868578181134], + [1.0272100765927,0.0996849952196907], + [0.979191212438404,1.05053652824665], + [1.00733490030391,1.51658415000556], + [0.932192535457706,1.06262774912638], + [0.643374300839414,-0.0865180803476065], + [0.186885168954461,-1.24799408923277], + [-0.290842337365465,-1.80035611156538], + [-0.669446735516495,-1.58847333561510], + [-0.928915624595538,-0.932116966867929], + [-1.11758635926997,-0.307879396807850], + [-1.26832454569756,-0.00856199983957032], + [-1.35755577149251,-0.0303537516690989], + [-1.34244112665546,-0.196807620887435], + [-1.22227976023299,-0.342062643495923], + [-1.04601473486818,-0.390474392372016], + [-0.85158508717846,-0.322164402093596], + [-0.605033439160543,-0.126930141915954], + [-0.218304303942818,0.179551077808122], + [0.352173017779006,0.512327303000081], + [1.01389600097229,0.733397490572755], + [1.55149778750607,0.748740387440165], + [1.75499674757591,0.601759717901009], + [1.56636057468633,0.457705308377562], + [1.12239792537274,0.470849913286519], + [0.655802600286141,0.646142040378738], + [0.335285115340180,0.824103600255079], + [0.173454596506888,0.808068498175582], + [0.0666753011315252,0.521488214487996], + [-0.0842367474816212,0.0583493276173476], + [-0.285604762631464,-0.405958418332253], + [-0.465735422869919,-0.747800086512926], + [-0.563586691231348,-0.94982272350799], + [-0.598110322024572,-1.04736894794361], + [-0.65216025756061,-1.04858365218822], + [-0.789663117801624,-0.924145633093637], + [-0.984704045337959,-0.670740724179446], + [-1.12449565589348,-0.359476803003931], + [-1.07878318723543,-0.092290938944355], + [-0.775555435407062,0.102132527529259], + [-0.231610677329856,0.314409560305622], + [0.463192794235131,0.663523546243286], + [1.17416973448423,1.13156902460931], + [1.74112278814906,1.48967153067024], + [2.00320855757084,1.42571085941843], + [1.8529912317336,0.802460519079555], + [1.30747261947211,-0.169219078629572], + [0.540237070403222,-1.01621539672694], + [-0.177136817092375,-1.3130784867977], + [-0.611981468823591,-0.982477824460773], + [-0.700240028737747,-0.344919609255406], + [-0.572396497740112,0.125083535035390], + [-0.450934466600975,0.142553112732280], + [-0.494020014254326,-0.211429053871656], + [-0.701707589094918,-0.599602868825992], + [-0.94721339346157,-0.710669870591623], + [-1.09297139748946,-0.47846194092245], + [-1.08850658866583,-0.082258450179988], + [-0.976082880696692,0.235758921309309], + [-0.81885695346771,0.365298185204303], + [-0.63165529525553,0.384725179378064], + [-0.37983149226421,0.460240196164378], + [-0.0375551354277652,0.68580913832794], + [0.361996927427804,0.984470835955107], + [0.739920615366072,1.13195975020298], + [1.03583478061534,0.88812510421667], + [1.25614938962160,0.172561520611839], + [1.45295030231799,-0.804979390544485], + [1.64887158748426,-1.55662011197859], + [1.78022721495313,-1.52921975346218], + [1.71945683859668,-0.462240366424548], + [1.36728880239190,1.31213774341268], + [0.740173894315912,2.88362740582926], + [-0.0205364331835904,3.20319080963167], + [-0.725643970956428,1.75222466531151], + [-1.23900506689782,-0.998432917440275], + [-1.52651897508678,-3.72752870885448], + [-1.62857516631435,-5.00551707196292], + [-1.59657420180451,-4.18499132634584], + [-1.45489013276495,-1.81759097305637], + [-1.21309542313047,0.722029457352468]]) + dta = macrodata.load().data[['tbilrate','infl']].view((float,2))[1:] + cyc, trend = cffilter(dta) + assert_almost_equal(cyc, cfilt_res, 8) + #do 1d + cyc, trend = cffilter(dta[:,1]) + assert_almost_equal(cyc, cfilt_res[:,1], 8) + +def test_bking_pandas(): + # 1d + dta = macrodata.load_pandas().data + index = Index(dates_from_range('1959Q1', '2009Q3')) + dta.index = index + filtered = bkfilter(dta["infl"]) + nd_filtered = bkfilter(dta['infl'].values) + assert_equal(filtered.values, nd_filtered) + assert_equal(filtered.index[0], datetime(1962, 3, 31)) + assert_equal(filtered.index[-1], datetime(2006, 9, 30)) + assert_equal(filtered.name, "infl") + + #2d + filtered = bkfilter(dta[["infl","unemp"]]) + nd_filtered = bkfilter(dta[['infl', 'unemp']].values) + assert_equal(filtered.values, nd_filtered) + assert_equal(filtered.index[0], datetime(1962, 3, 31)) + assert_equal(filtered.index[-1], datetime(2006, 9, 30)) + assert_equal(filtered.columns.values, ["infl", "unemp"]) + +def test_cfitz_pandas(): + # 1d + dta = macrodata.load_pandas().data + index = Index(dates_from_range('1959Q1', '2009Q3')) + dta.index = index + cycle, trend = cffilter(dta["infl"]) + ndcycle, ndtrend = cffilter(dta['infl'].values) + assert_allclose(cycle.values, ndcycle, rtol=1e-14) + assert_equal(cycle.index[0], datetime(1959, 3, 31)) + assert_equal(cycle.index[-1], datetime(2009, 9, 30)) + assert_equal(cycle.name, "infl") + + #2d + cycle, trend = cffilter(dta[["infl","unemp"]]) + ndcycle, ndtrend = cffilter(dta[['infl', 'unemp']].values) + assert_allclose(cycle.values, ndcycle, rtol=1e-14) + assert_equal(cycle.index[0], datetime(1959, 3, 31)) + assert_equal(cycle.index[-1], datetime(2009, 9, 30)) + assert_equal(cycle.columns.values, ["infl", "unemp"]) + +def test_hpfilter_pandas(): + dta = macrodata.load_pandas().data + index = Index(dates_from_range('1959Q1', '2009Q3')) + dta.index = index + cycle, trend = hpfilter(dta["realgdp"]) + ndcycle, ndtrend = hpfilter(dta['realgdp'].values) + assert_equal(cycle.values, ndcycle) + assert_equal(cycle.index[0], datetime(1959, 3, 31)) + assert_equal(cycle.index[-1], datetime(2009, 9, 30)) + assert_equal(cycle.name, "realgdp") + + +class TestFilters(object): + @classmethod + def setupClass(cls): + # even + data = [-50, 175, 149, 214, 247, 237, 225, 329, 729, 809, + 530, 489, 540, 457, 195, 176, 337, 239, 128, 102, + 232, 429, 3, 98, 43, -141, -77, -13, 125, 361, -45, 184] + cls.data = DataFrame(data, DatetimeIndex(start='1/1/1951', + periods=len(data), + freq='Q')) + data[9] = np.nan + cls.datana = DataFrame(data, DatetimeIndex(start='1/1/1951', + periods=len(data), + freq='Q')) + from .results import filter_results + cls.expected = filter_results + + def test_convolution(self): + x = self.data.values.squeeze() + res = convolution_filter(x, [.75, .25]) + expected = self.expected.conv2 + np.testing.assert_almost_equal(res, expected) + + res = convolution_filter(x, [.75, .25], nsides=1) + expected = self.expected.conv1 + np.testing.assert_almost_equal(res, expected) + + x = self.datana.values.squeeze() + res = convolution_filter(x, [.75, .25]) + expected = self.expected.conv2_na + np.testing.assert_almost_equal(res, expected) + + res = convolution_filter(x, [.75, .25], nsides=1) + expected = self.expected.conv1_na + np.testing.assert_almost_equal(res, expected) + + def test_convolution2d(self): + x = self.data.values + res = convolution_filter(x, [[.75], [.25]]) + expected = self.expected.conv2 + np.testing.assert_almost_equal(res, expected[:, None]) + res = convolution_filter(np.c_[x, x], [[.75, .75], [.25, .25]]) + np.testing.assert_almost_equal(res, np.c_[expected, expected]) + + res = convolution_filter(x, [[.75], [.25]], nsides=1) + expected = self.expected.conv1 + np.testing.assert_almost_equal(res, expected[:, None]) + + x = self.datana.values + res = convolution_filter(x, [[.75], [.25]]) + expected = self.expected.conv2_na + np.testing.assert_almost_equal(res, expected[:, None]) + + res = convolution_filter(x, [[.75], [.25]], nsides=1) + expected = self.expected.conv1_na + np.testing.assert_almost_equal(res, expected[:, None]) + + def test_recursive(self): + x = self.data.values.squeeze() + res = recursive_filter(x, [.75, .25]) + expected = self.expected.recurse + np.testing.assert_almost_equal(res, expected) + + res = recursive_filter(x, [.75, .25], init=[150, 100]) + expected = self.expected.recurse_init + np.testing.assert_almost_equal(res, expected) + + x = self.datana.values.squeeze() + res = recursive_filter(x, [.75, .25]) + expected = self.expected.recurse_na + np.testing.assert_almost_equal(res, expected) + + res = recursive_filter(x, [.75, .25], init=[150, 100]) + expected = self.expected.recurse_init_na + np.testing.assert_almost_equal(res, expected) + + assert_raises(ValueError, recursive_filter, x, + [.75, .25, .5], [150, 100]) + + def test_pandas(self): + start = datetime(1951, 3, 31) + end = datetime(1958, 12, 31) + x = self.data[0] + res = convolution_filter(x, [.75, .25]) + assert_(res.index[0] == start) + assert_(res.index[-1] == end) + + res = convolution_filter(x, [.75, .25], nsides=1) + assert_(res.index[0] == start) + # with no nan-padding q1 if not + assert_(res.index[-1] == end) + + res = recursive_filter(x, [.75, .25]) + assert_(res.index[0] == start) + assert_(res.index[-1] == end) + + x = self.datana + res = recursive_filter(x, [.75, .25]) + assert_(res.index[0] == start) + assert_(res.index[-1] == end) + + def test_pandas2d(self): + start = datetime(1951, 3, 31) + end = datetime(1958, 12, 31) + x = concat((self.data[0], self.data[0]), axis=1) + res = convolution_filter(x, [[.75, .75], [.25, .25]]) + assert_(res.index[0] == start) + assert_(res.index[-1] == end) + + def test_odd_length_filter(self): + start = datetime(1951, 3, 31) + end = datetime(1958, 12, 31) + x = self.data[0] + res = convolution_filter(x, [.75, .5, .3, .2, .1]) + expected = self.expected.conv2_odd + np.testing.assert_almost_equal(res.values.squeeze(), expected) + np.testing.assert_(res.index[0] == start) + np.testing.assert_(res.index[-1] == end) + + res = convolution_filter(x, [.75, .5, .3, .2, .1], nsides=1) + expected = self.expected.conv1_odd + np.testing.assert_almost_equal(res.values.squeeze(), expected) + np.testing.assert_(res.index[0] == start) + np.testing.assert_(res.index[-1] == end) + # with no NAs + + # not a stable filter + res = recursive_filter(x, [.75, .5, .3, .2, .1], init=[150, 100, + 125, 135, + 145]) + expected = self.expected.recurse_odd + # only have 12 characters in R and this blows up and gets big + np.testing.assert_almost_equal(res.values.squeeze(), expected, 4) + np.testing.assert_(res.index[0] == start) + np.testing.assert_(res.index[-1] == end) + + +if __name__ == "__main__": + import nose + nose.runmodule(argv=[__file__, '-vvs', '-x', '--pdb'], exit=False) diff --git a/statsmodels/tsa/interp/__init__.py b/statsmodels/tsa/interp/__init__.py new file mode 100644 index 0000000..e5ea7d2 --- /dev/null +++ b/statsmodels/tsa/interp/__init__.py @@ -0,0 +1 @@ +from .denton import dentonm diff --git a/statsmodels/tsa/interp/denton.py b/statsmodels/tsa/interp/denton.py new file mode 100644 index 0000000..12b4a8e --- /dev/null +++ b/statsmodels/tsa/interp/denton.py @@ -0,0 +1,313 @@ + +import numpy as np +from numpy import (dot, eye, diag_indices, zeros, column_stack, ones, diag, + asarray, r_) +from numpy.linalg import inv, solve +#from scipy.linalg import block_diag +from scipy import linalg + +#def denton(indicator, benchmark, freq="aq", **kwarg): +# """ +# Denton's method to convert low-frequency to high frequency data. +# +# Parameters +# ---------- +# benchmark : array-like +# The higher frequency benchmark. A 1d or 2d data series in columns. +# If 2d, then M series are assumed. +# indicator +# A low-frequency indicator series. It is assumed that there are no +# pre-sample indicators. Ie., the first indicators line up with +# the first benchmark. +# freq : str {"aq","qm", "other"} +# "aq" - Benchmarking an annual series to quarterly. +# "mq" - Benchmarking a quarterly series to monthly. +# "other" - Custom stride. A kwarg, k, must be supplied. +# kwargs : +# k : int +# The number of high-frequency observations that sum to make an +# aggregate low-frequency observation. `k` is used with +# `freq` == "other". +# Returns +# ------- +# benchmarked series : array +# +# Notes +# ----- +# Denton's method minimizes the distance given by the penalty function, in +# a least squares sense, between the unknown benchmarked series and the +# indicator series subject to the condition that the sum of the benchmarked +# series is equal to the benchmark. +# +# +# References +# ---------- +# Bloem, A.M, Dippelsman, R.J. and Maehle, N.O. 2001 Quarterly National +# Accounts Manual--Concepts, Data Sources, and Compilation. IMF. +# http://www.imf.org/external/pubs/ft/qna/2000/Textbook/index.htm +# Denton, F.T. 1971. "Adjustment of monthly or quarterly series to annual +# totals: an approach based on quadratic minimization." Journal of the +# American Statistical Association. 99-102. +# +# """ +# # check arrays and make 2d +# indicator = np.asarray(indicator) +# if indicator.ndim == 1: +# indicator = indicator[:,None] +# benchmark = np.asarray(benchmark) +# if benchmark.ndim == 1: +# benchmark = benchmark[:,None] +# +# # get dimensions +# N = len(indicator) # total number of high-freq +# m = len(benchmark) # total number of low-freq +# +# # number of low-freq observations for aggregate measure +# # 4 for annual to quarter and 3 for quarter to monthly +# if freq == "aq": +# k = 4 +# elif freq == "qm": +# k = 3 +# elif freq == "other": +# k = kwargs.get("k") +# if not k: +# raise ValueError("k must be supplied with freq=\"other\"") +# else: +# raise ValueError("freq %s not understood" % freq) +# +# n = k*m # number of indicator series with a benchmark for back-series +# # if k*m != n, then we are going to extrapolate q observations +# +# B = block_diag(*(np.ones((k,1)),)*m) +# +# r = benchmark - B.T.dot(indicator) +#TODO: take code in the string at the end and implement Denton's original +# method with a few of the penalty functions. + + +def dentonm(indicator, benchmark, freq="aq", **kwargs): + """ + Modified Denton's method to convert low-frequency to high-frequency data. + + Uses proportionate first-differences as the penalty function. See notes. + + Parameters + ---------- + indicator + A low-frequency indicator series. It is assumed that there are no + pre-sample indicators. Ie., the first indicators line up with + the first benchmark. + benchmark : array-like + The higher frequency benchmark. A 1d or 2d data series in columns. + If 2d, then M series are assumed. + freq : str {"aq","qm", "other"} + "aq" - Benchmarking an annual series to quarterly. + "mq" - Benchmarking a quarterly series to monthly. + "other" - Custom stride. A kwarg, k, must be supplied. + kwargs : + k : int + The number of high-frequency observations that sum to make an + aggregate low-frequency observation. `k` is used with + `freq` == "other". + Returns + ------- + benchmarked series : array + + Examples + -------- + >>> indicator = [50,100,150,100] * 5 + >>> benchmark = [500,400,300,400,500] + >>> benchmarked = dentonm(indicator, benchmark, freq="aq") + + + + + Notes + ----- + Denton's method minimizes the distance given by the penalty function, in + a least squares sense, between the unknown benchmarked series and the + indicator series subject to the condition that the sum of the benchmarked + series is equal to the benchmark. The modification allows that the first + value not be pre-determined as is the case with Denton's original method. + If the there is no benchmark provided for the last few indicator + observations, then extrapolation is performed using the last + benchmark-indicator ratio of the previous period. + + Minimizes sum((X[t]/I[t] - X[t-1]/I[t-1])**2) + + s.t. + + sum(X) = A, for each period. Where X is the benchmarked series, I is + the indicator, and A is the benchmark. + + + References + ---------- + Bloem, A.M, Dippelsman, R.J. and Maehle, N.O. 2001 Quarterly National + Accounts Manual--Concepts, Data Sources, and Compilation. IMF. + http://www.imf.org/external/pubs/ft/qna/2000/Textbook/index.htm + Cholette, P. 1988. "Benchmarking systems of socio-economic time series." + Statistics Canada, Time Series Research and Analysis Division, + Working Paper No TSRA-88-017E. + Denton, F.T. 1971. "Adjustment of monthly or quarterly series to annual + totals: an approach based on quadratic minimization." Journal of the + American Statistical Association. 99-102. + """ +# penalty : str +# Penalty function. Can be "D1", "D2", "D3", "D4", "D5". +# X is the benchmarked series and I is the indicator. +# D1 - sum((X[t] - X[t-1]) - (I[t] - I[ti-1])**2) +# D2 - sum((ln(X[t]/X[t-1]) - ln(I[t]/I[t-1]))**2) +# D3 - sum((X[t]/X[t-1] / I[t]/I[t-1])**2) +# D4 - sum((X[t]/I[t] - X[t-1]/I[t-1])**2) +# D5 - sum((X[t]/I[t] / X[t-1]/I[t-1] - 1)**2) +#NOTE: only D4 is the only one implemented, see IMF chapter 6. + + + # check arrays and make 2d + indicator = asarray(indicator) + if indicator.ndim == 1: + indicator = indicator[:,None] + benchmark = asarray(benchmark) + if benchmark.ndim == 1: + benchmark = benchmark[:,None] + + # get dimensions + N = len(indicator) # total number of high-freq + m = len(benchmark) # total number of low-freq + + # number of low-freq observations for aggregate measure + # 4 for annual to quarter and 3 for quarter to monthly + if freq == "aq": + k = 4 + elif freq == "qm": + k = 3 + elif freq == "other": + k = kwargs.get("k") + if not k: + raise ValueError("k must be supplied with freq=\"other\"") + else: + raise ValueError("freq %s not understood" % freq) + + n = k*m # number of indicator series with a benchmark for back-series + # if k*m != n, then we are going to extrapolate q observations + if N > n: + q = N - n + else: + q = 0 + + # make the aggregator matrix + #B = block_diag(*(ones((k,1)),)*m) + B = np.kron(np.eye(m), ones((k,1))) + + # following the IMF paper, we can do + Zinv = diag(1./indicator.squeeze()[:n]) + # this is D in Denton's notation (not using initial value correction) +# D = eye(n) + # make off-diagonal = -1 +# D[((np.diag_indices(n)[0])[:-1]+1,(np.diag_indices(n)[1])[:-1])] = -1 + # account for starting conditions +# H = D[1:,:] +# HTH = dot(H.T,H) + # just make HTH + HTH = eye(n) + diag_idx0, diag_idx1 = diag_indices(n) + HTH[diag_idx0[1:-1], diag_idx1[1:-1]] += 1 + HTH[diag_idx0[:-1]+1, diag_idx1[:-1]] = -1 + HTH[diag_idx0[:-1], diag_idx1[:-1]+1] = -1 + + W = dot(dot(Zinv,HTH),Zinv) + + # make partitioned matrices + #TODO: break this out so that we can simplify the linalg? + I = zeros((n+m,n+m)) + I[:n,:n] = W + I[:n,n:] = B + I[n:,:n] = B.T + + A = zeros((m+n,1)) # zero first-order constraints + A[-m:] = benchmark # adding up constraints + X = solve(I,A) + X = X[:-m] # drop the lagrange multipliers + + # handle extrapolation + if q > 0: + # get last Benchmark-Indicator ratio + bi = X[n-1]/indicator[n-1] + extrapolated = bi * indicator[n:] + X = r_[X,extrapolated] + + return X.squeeze() + +if __name__ == "__main__": + import numpy as np + #these will be the tests + # from IMF paper + + # quarterly data + indicator = np.array([98.2, 100.8, 102.2, 100.8, 99.0, 101.6, + 102.7, 101.5, 100.5, 103.0, 103.5, 101.5]) + # two annual observations + benchmark = np.array([4000.,4161.4]) + x_imf = dentonm(indicator, benchmark, freq="aq") + + imf_stata = np.array([969.8, 998.4, 1018.3, 1013.4, 1007.2, 1042.9, + 1060.3, 1051.0, 1040.6, 1066.5, 1071.7, 1051.0]) + np.testing.assert_almost_equal(imf_stata, x_imf, 1) + + # Denton example + zQ = np.array([50,100,150,100] * 5) + Y = np.array([500,400,300,400,500]) + x_denton = dentonm(zQ, Y, freq="aq") + x_stata = np.array([64.334796,127.80616,187.82379,120.03526,56.563894, + 105.97568,147.50144,89.958987,40.547201,74.445963, + 108.34473,76.66211,42.763347,94.14664,153.41596, + 109.67405,58.290761,122.62556,190.41409,128.66959]) + + +""" +# Examples from the Denton 1971 paper +k = 4 +m = 5 +n = m*k + +zQ = [50,100,150,100] * m +Y = [500,400,300,400,500] + +A = np.eye(n) +B = block_diag(*(np.ones((k,1)),)*m) + +r = Y - B.T.dot(zQ) +#Ainv = inv(A) +Ainv = A # shortcut for identity +C = Ainv.dot(B).dot(inv(B.T.dot(Ainv).dot(B))) +x = zQ + C.dot(r) + +# minimize first difference d(x-z) +R = linalg.tri(n, dtype=float) # R is tril so actually R.T in paper +Ainv = R.dot(R.T) +C = Ainv.dot(B).dot(inv(B.T.dot(Ainv).dot(B))) +x1 = zQ + C.dot(r) + +# minimize the second difference d**2(x-z) +Ainv = R.dot(Ainv).dot(R.T) +C = Ainv.dot(B).dot(inv(B.T.dot(Ainv).dot(B))) +x12 = zQ + C.dot(r) + + +# # do it proportionately (x-z)/z +Z = np.diag(zQ) +Ainv = np.eye(n) +C = Z.dot(Ainv).dot(Z).dot(B).dot(inv(B.T.dot(Z).dot(Ainv).dot(Z).dot(B))) +x11 = zQ + C.dot(r) + +# do it proportionately with differencing d((x-z)/z) +Ainv = R.dot(R.T) +C = Z.dot(Ainv).dot(Z).dot(B).dot(inv(B.T.dot(Z).dot(Ainv).dot(Z).dot(B))) +x111 = zQ + C.dot(r) + +x_stata = np.array([64.334796,127.80616,187.82379,120.03526,56.563894, + 105.97568,147.50144,89.958987,40.547201,74.445963, + 108.34473,76.66211,42.763347,94.14664,153.41596, + 109.67405,58.290761,122.62556,190.41409,128.66959]) +""" diff --git a/statsmodels/tsa/interp/tests/__init__.py b/statsmodels/tsa/interp/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/tsa/interp/tests/test_denton.py b/statsmodels/tsa/interp/tests/test_denton.py new file mode 100644 index 0000000..5559ef7 --- /dev/null +++ b/statsmodels/tsa/interp/tests/test_denton.py @@ -0,0 +1,27 @@ +import numpy as np +from statsmodels.tsa.interp import dentonm + +def test_denton_quarterly(): + # Data and results taken from IMF paper + indicator = np.array([98.2, 100.8, 102.2, 100.8, 99.0, 101.6, + 102.7, 101.5, 100.5, 103.0, 103.5, 101.5]) + benchmark = np.array([4000.,4161.4]) + x_imf = dentonm(indicator, benchmark, freq="aq") + imf_stata = np.array([969.8, 998.4, 1018.3, 1013.4, 1007.2, 1042.9, + 1060.3, 1051.0, 1040.6, 1066.5, 1071.7, 1051.0]) + np.testing.assert_almost_equal(imf_stata, x_imf, 1) + +def test_denton_quarterly2(): + # Test denton vs stata. Higher precision than other test. + zQ = np.array([50,100,150,100] * 5) + Y = np.array([500,400,300,400,500]) + x_denton = dentonm(zQ, Y, freq="aq") + x_stata = np.array([64.334796,127.80616,187.82379,120.03526,56.563894, + 105.97568,147.50144,89.958987,40.547201,74.445963, + 108.34473,76.66211,42.763347,94.14664,153.41596, + 109.67405,58.290761,122.62556,190.41409,128.66959]) + np.testing.assert_almost_equal(x_denton, x_stata, 5) + +if __name__ == "__main__": + import nose + nose.runmodule(argv=[__file__,'-vvs','-x', '--pdb'], exit=False) diff --git a/statsmodels/tsa/kalmanf/__init__.py b/statsmodels/tsa/kalmanf/__init__.py new file mode 100644 index 0000000..cc13804 --- /dev/null +++ b/statsmodels/tsa/kalmanf/__init__.py @@ -0,0 +1 @@ +from .kalmanfilter import KalmanFilter diff --git a/statsmodels/tsa/kalmanf/kalman_loglike.pyx b/statsmodels/tsa/kalmanf/kalman_loglike.pyx new file mode 100644 index 0000000..123a75f --- /dev/null +++ b/statsmodels/tsa/kalmanf/kalman_loglike.pyx @@ -0,0 +1,363 @@ +import scipy.linalg.blas +from numpy cimport float64_t, ndarray, complex128_t, complex64_t +from numpy import log as nplog +from numpy import (identity, dot, kron, pi, sum, zeros_like, ones, asarray, + complex128, float64, asfortranarray) +from numpy.linalg import pinv +cimport cython +cimport numpy as cnp + +cnp.import_array() + +# included in Cython numpy headers +from numpy cimport PyArray_ZEROS + +ctypedef float64_t DOUBLE +ctypedef complex128_t dcomplex +ctypedef complex64_t COMPLEX64 +cdef int FORTRAN = 1 + +cdef extern from "math.h": + double log(double x) + +cdef extern from "capsule.h": + void* Capsule_AsVoidPtr(object ptr) + +from statsmodels.src.blas_lapack cimport dgemm_t, zgemm_t, ddot_t, dgemv_t, zgemv_t, zdotu_t + +cdef dgemm_t *dgemm = Capsule_AsVoidPtr(scipy.linalg.blas.get_blas_funcs('gemm', dtype=float64)._cpointer) +cdef zgemm_t *zgemm = Capsule_AsVoidPtr(scipy.linalg.blas.get_blas_funcs('gemm', dtype=complex128)._cpointer) +cdef ddot_t *ddot = Capsule_AsVoidPtr(scipy.linalg.blas.get_blas_funcs('dot', dtype=float64)._cpointer) +cdef dgemv_t *dgemv = Capsule_AsVoidPtr(scipy.linalg.blas.get_blas_funcs('gemv', dtype=float64)._cpointer) +cdef zdotu_t *zdotu = Capsule_AsVoidPtr(scipy.linalg.blas.get_blas_funcs('dotu', dtype=complex128)._cpointer) +cdef zgemv_t *zgemv = Capsule_AsVoidPtr(scipy.linalg.blas.get_blas_funcs('gemv', dtype=complex128)._cpointer) + + +@cython.boundscheck(False) +@cython.wraparound(False) +@cython.cdivision(True) +def kalman_filter_double(double[:] y not None, + unsigned int k, unsigned int p, unsigned int q, + int r, unsigned int nobs, + double[::1,:] Z_mat, + double[::1,:] R_mat, + double[::1,:] T_mat): + """ + Cython version of the Kalman filter recursions for an ARMA process. + """ + cdef cnp.npy_intp yshape[2] + yshape[0] = nobs + yshape[1] = 1 + cdef cnp.npy_intp mshape[2] + mshape[0] = r + mshape[1] = 1 + cdef cnp.npy_intp r2shape[2] + r2shape[0] = r + r2shape[1] = r + + cdef: + int one = 1 # univariate filter + int ldz = Z_mat.strides[1]/sizeof(DOUBLE) + int ldt = T_mat.strides[1]/sizeof(DOUBLE) + int ldr = R_mat.strides[1]/sizeof(DOUBLE) + # forecast errors + ndarray[DOUBLE, ndim=2] v = PyArray_ZEROS(2, yshape, cnp.NPY_DOUBLE, + FORTRAN) + # store variance of forecast errors + double[::1,:] F = ones((nobs,1), order='F') # variance of forecast errors + double loglikelihood = 0 + int i = 0 + # initial state + double[::1,:] alpha = PyArray_ZEROS(2, mshape, cnp.NPY_DOUBLE, FORTRAN) + int lda = alpha.strides[1]/sizeof(DOUBLE) + # initial variance + double[::1,:] P = asfortranarray(dot(pinv(identity(r**2)- + kron(T_mat, T_mat)), + dot(R_mat, + R_mat.T).ravel('F') + ).reshape(r, r, order='F')) + int ldp = P.strides[1]/sizeof(DOUBLE) + double F_mat = 0. + double Finv = 0. + #ndarray[DOUBLE, ndim=2] v_mat = cnp.PyArray_Zeros(2, [1,1], cnp.NPY_FLOAT64, + # 0) + double v_mat = 0 + double[::1,:] K = PyArray_ZEROS(2, r2shape, cnp.NPY_DOUBLE, FORTRAN) + int ldk = K.strides[1] / sizeof(DOUBLE) + + # pre-allocate some tmp arrays for the dgemm calls + # T_mat rows x P cols + double[::1,:] tmp1 = PyArray_ZEROS(2, r2shape, cnp.NPY_DOUBLE, FORTRAN) + int ldt1 = tmp1.strides[1]/sizeof(DOUBLE) + double[::1,:] tmp2 = zeros_like(alpha, order='F') # K rows x v_mat cols + int ldt2 = tmp2.strides[1]/sizeof(DOUBLE) + double[::1,:] L = zeros_like(T_mat, order='F') + int ldl = L.strides[1]/sizeof(DOUBLE) + # T_mat rows x P cols + double[::1,:] tmp3 = PyArray_ZEROS(2, r2shape, cnp.NPY_DOUBLE, FORTRAN) + int ldt3 = tmp3.strides[1]/sizeof(DOUBLE) + + double alph = 1.0 + double beta = 0.0 + + #NOTE: not sure about just checking F_mat[0,0], didn't appear to work + while not F_mat == 1. and i < nobs: + #print i + # Predict + #v_mat = ddot(&r, &Z_mat[0,0], &one, &alpha[0,0], &one) + #v_mat = y[i] - v_mat # copies? + # Z_mat is just a selector matrix + v_mat = y[i] - alpha[0,0] + v[i, 0] = v_mat + + # one-step forecast error + #dgemm("N", "N", &one, &r, &r, &alph, &Z_mat[0,0], &ldz, &P[0,0], &ldp, + # &beta, &tmp1[0,0], &ldt1) + #F_mat = ddot(&r, &tmp1[0,0], &one, &Z_mat[0,0], &one) + #Z_mat is just a selector matrix + F_mat = P[0,0] + F[i,0] = F_mat + Finv = 1./F_mat # always scalar for univariate series + # compute Kalman Gain, K + # K = dot(dot(dot(T_mat,P),Z_mat.T),Finv) + # or K = dot(dot(dot(T_mat, P), Z_mat.T))*Finv + # tmp1 = dot(T_mat, P) + # tmp3 = dot(tmp1, Z_mat.T) + # K = dot(tmp3, Finv) or tmp3*Finv + + #print "Finv: ", asarray( &Finv[0,0]) + dgemm("N", "N", &r, &r, &r, &alph, &T_mat[0,0], &ldt, &P[0,0], &ldp, + &beta, &tmp1[0,0], &ldt1) + #print "tmp1: ", asarray( &tmp1[0,0]) + # tmp1 . Z_mat.T + + dgemv("N", &r, &r, &Finv, &tmp1[0,0], &ldt1, &Z_mat[0,0], &one, &beta, + &K[0,0], &one) + + # update state + #alpha = dot(T_mat, alpha) + dot(K, v_mat) + #alpha = dot(T_mat, alpha) + K*v_mat + #dot(T_mat, alpha) + dgemv("N", &r, &r, &alph, &T_mat[0,0], &ldt, &alpha[0,0], &one, &beta, + &tmp2[0,0], &one) + + #dot(K, v_mat) + tmp2 + for ii in range(r): + alpha[ii,0] = K[ii,0]*v_mat + tmp2[ii,0] + + #L = T_mat - dot(K,Z_mat) + dgemm("N", "N", &r, &r, &one, &alph, &K[0,0], &ldk, &Z_mat[0,0], &ldz, + &beta, &L[0,0], &ldl) + # L = T_mat - L + # L = -(L - T_mat) + for jj in range(r): + for kk in range(r): + L[jj,kk] = T_mat[jj,kk] - L[jj,kk] + + #P = dot(dot(T_mat, P), L.T) + dot(R_mat, R_mat.T) + # tmp5 = dot(R_mat, R_mat.T) + # tmp3 = dot(T_mat, P) + # P = dot(tmp3, L.T) + tmp5 + dgemm("N", "N", &r, &r, &r, &alph, &T_mat[0,0], &ldt, &P[0,0], + &ldp, &beta, &tmp3[0,0], &ldt3) + dgemm("N", "T", &r, &r, &one, &alph, &R_mat[0,0], &ldr, &R_mat[0,0], + &ldr, &beta, &P[0,0], &ldp) + dgemm("N", "T", &r, &r, &r, &alph, &tmp3[0,0], &ldt3, &L[0,0], + &ldl, &alph, &P[0,0], &ldp) + + # 101 = c-order, 122 - lower triangular of R, "N" - no trans (XX') + #dsyrk(101, 122, "N", r, 1, 1.0, &R_mat[0,0], + # &ldr, 1.0, &P[0,0], &ldp ) + + loglikelihood += log(F_mat) + i+=1 + + for i in xrange(i,nobs): + #v_mat = ddot(&r, &Z_mat[0,0], &one, &alpha[0,0], &one) + #v_mat = y[i] - v_mat + v_mat = y[i] - alpha[0,0] + v[i, 0] = v_mat + #alpha = dot(T_mat, alpha) + dot(K, v_mat) + dgemm("N", "N", &r, &one, &r, &alph, &T_mat[0,0], &ldt, &alpha[0,0], + &lda, &beta, &tmp2[0,0], &ldt2) + #dot(K, v_mat) + tmp2 + for ii in range(r): + alpha[ii,0] = K[ii,0]*v_mat + tmp2[ii,0] + return v, F, loglikelihood + +@cython.boundscheck(False) +@cython.wraparound(False) +@cython.cdivision(True) +def kalman_filter_complex(dcomplex[:] y, + unsigned int k, unsigned int p, unsigned int q, + int r, unsigned int nobs, + dcomplex[::1,:] Z_mat, + dcomplex[::1,:] R_mat, + dcomplex[::1,:] T_mat): + """ + Cython version of the Kalman filter recursions for an ARMA process. + """ + cdef cnp.npy_intp yshape[2] + yshape[0] = nobs + yshape[1] = 1 + cdef cnp.npy_intp mshape[2] + mshape[0] = r + mshape[1] = 1 + cdef cnp.npy_intp r2shape[2] + r2shape[0] = r + r2shape[1] = r + + + cdef: + int one = 1 + int ldz = Z_mat.strides[1]/sizeof(dcomplex) + int ldt = T_mat.strides[1]/sizeof(dcomplex) + int ldr = R_mat.strides[1]/sizeof(dcomplex) + # forecast errors + #dcomplex[:,:] v = zeros((nobs,1), dtype=complex) + ndarray[complex, ndim=2] v = PyArray_ZEROS(2, yshape, cnp.NPY_CDOUBLE, + FORTRAN) + # store variance of forecast errors + dcomplex[::1,:] F = ones((nobs,1), dtype=complex, order='F') + dcomplex loglikelihood = 0 + 0j + int i = 0 + # initial state + dcomplex[::1,:] alpha = PyArray_ZEROS(2, mshape, cnp.NPY_CDOUBLE, FORTRAN) + int lda = alpha.strides[1]/sizeof(dcomplex) + # initial variance + dcomplex[::1,:] P = asfortranarray(dot(pinv(identity(r**2)-kron(T_mat, T_mat)), + dot(R_mat,R_mat.T).ravel('F')).reshape(r,r, order='F')) + int ldp = P.strides[1]/sizeof(dcomplex) + dcomplex F_mat = 0 + dcomplex Finv = 0 + # dcomplex[:,:] v_mat = zeros((1,1), dtype=complex) + dcomplex v_mat = 0 + dcomplex[::1,:] K = PyArray_ZEROS(2, mshape, cnp.NPY_CDOUBLE, FORTRAN) + int ldk = K.strides[1]/sizeof(dcomplex) + + # pre-allocate some tmp arrays for the dgemm calls + dcomplex[::1,:] tmp1 = PyArray_ZEROS(2, r2shape, cnp.NPY_CDOUBLE, FORTRAN) + int ldt1 = tmp1.strides[1]/sizeof(dcomplex) + dcomplex[::1,:] tmp2 = zeros_like(alpha, order='F') + int ldt2 = tmp2.strides[1]/sizeof(dcomplex) + dcomplex[::1,:] L = zeros_like(T_mat, dtype=complex, order='F') + int ldl = L.strides[1]/sizeof(dcomplex) + # T_mat rows x P cols + dcomplex[::1,:] tmp3 = PyArray_ZEROS(2, r2shape, cnp.NPY_CDOUBLE, FORTRAN) + int ldt3 = tmp3.strides[1]/sizeof(dcomplex) + + dcomplex alph = 1+0j + dcomplex beta = 0 + + while not F_mat == 1 and i < nobs: + #v_mat = zdotu(&r, &Z_mat[0,0], &one, &alpha[0,0], &one) + # Z_mat is just a selector matrix + v_mat = y[i] - alpha[0,0] + v[i, 0] = v_mat + + # one-step forecast error + #zgemm("N", "N", &one, &r, &r, &alph, &Z_mat[0,0], &ldz, &P[0,0], &ldp, + # &beta, &tmp1[0,0], &ldt1) + # F_mat = zdotu(&r, &tmp1[0,0], &one, &Z_mat[0,0], &one) + # Z_mat is just a selctor matrix so the below is equivalent + F_mat = P[0,0] + F[i,0] = F_mat + Finv = 1./F_mat # always scalar for univariate series + # compute Kalman Gain, K + # K = dot(dot(dot(T_mat,P),Z_mat.T),Finv) + # tmp1 = dot(T_mat, P) + # tmp3 = dot(tmp1, Z_mat.T) + # K = dot(tmp3, Finv) + + # tmp1 = T_mat.dot(P) + zgemm("N", "N", &r, &r, &r, &alph, &T_mat[0,0], &ldt, &P[0,0], &ldp, + &beta, &tmp1[0,0], &ldt1) + # tmp3 = tmp1.dot(Z_mat.T) + zgemv("N", &r, &r, &Finv, &tmp1[0,0], &ldt1, &Z_mat[0,0], &one, &beta, + &K[0,0], &one) + + # K = tmp3.dot(Finv) + # update state + #alpha = dot(T_mat, alpha) + dot(K, v_mat) + #dot(T_mat, alpha) + zgemv("N", &r, &r, &alph, &T_mat[0,0], &ldt, &alpha[0,0], &one, &beta, + &tmp2[0,0], &one) + #dot(K, v_mat) + tmp2 + # alpha += tmp2 + #daxpy(r, alph, &tmp2[0,0], 1, &alpha[0,0], 1) + for ii in range(r): + alpha[ii,0] = K[ii,0]*v_mat + tmp2[ii,0] + #print "alpha:", asarray( &alpha[0,0]) + + #L = T_mat - dot(K,Z_mat) + zgemm("N", "N", &r, &r, &one, &alph, &K[0,0], &ldk, &Z_mat[0,0], &ldz, + &beta, &L[0,0], &ldl) + + # L = T_mat - L + # L = -(L - T_mat) + for jj in range(r): + for kk in range(r): + L[jj, kk] = T_mat[jj,kk] - L[jj,kk] + + #P = dot(dot(T_mat, P), L.T) + dot(R_mat, R_mat.T) + # tmp5 = dot(R_mat, R_mat.T) + # tmp3 = dot(T_mat, P) + # P = dot(tmp3, L.T) + tmp5 + zgemm("N", "N", &r, &r, &r, &alph, &T_mat[0,0], &ldt, &P[0,0], &ldp, + &beta, &tmp3[0,0], &ldt3) + zgemm("N", "T", &r, &r, &one, &alph, &R_mat[0,0], &ldr, &R_mat[0,0], + &ldr, &beta, &P[0,0], &ldp) + zgemm("N", "T", &r, &r, &r, &alph, &tmp3[0,0], &ldt3, &L[0,0], &ldl, &alph, + &P[0,0], &ldp) + + loglikelihood += nplog(F_mat) + i+=1 + + for i in xrange(i,nobs): + #v_mat = zdotu(&r, &Z_mat[0,0], &one, &alpha[0,0], &one) + #Z_mat is just a selector + v_mat = y[i] - alpha[0,0] + v[i, 0] = v_mat + #alpha = dot(T_mat, alpha) + dot(K, v_mat) + zgemm("N", "N", &r, &one, &r, &alph, &T_mat[0,0], &ldt, &alpha[0,0], &lda, + &beta, &tmp2[0,0], &ldt2) + #dot(K, v_mat) + tmp2 + # alpha += tmp2 + #daxpy(r, alph, &tmp2[0,0], 1, &alpha[0,0], 1) + for ii in range(r): + alpha[ii,0] = K[ii,0]*v_mat + tmp2[ii,0] + return v, F, loglikelihood + +@cython.boundscheck(False) +@cython.wraparound(False) +@cython.cdivision(True) +def kalman_loglike_double(double[:] y, unsigned int k, unsigned int p, + unsigned int q, int r, unsigned int nobs, + double[::1,:] Z_mat, + double[::1,:] R_mat, + double[::1,:] T_mat): + """ + Cython version of the Kalman filter recursions for an ARMA process. + """ + v, F, loglikelihood = kalman_filter_double(y,k,p,q,r,nobs,Z_mat,R_mat,T_mat) + sigma2 = 1./nobs * sum(v**2 / F) + loglike = -.5 *(loglikelihood + nobs*log(sigma2)) + loglike -= nobs/2. * (log(2*pi) + 1) + return loglike, sigma2 + +@cython.boundscheck(False) +@cython.wraparound(False) +@cython.cdivision(True) +def kalman_loglike_complex(dcomplex[:] y, unsigned int k, unsigned int p, + unsigned int q, int r, unsigned int nobs, + dcomplex[::1,:] Z_mat, + dcomplex[::1,:] R_mat, + dcomplex[::1,:] T_mat): + """ + Cython version of the Kalman filter recursions for an ARMA process. + """ + v, F, loglikelihood = kalman_filter_complex(y,k,p,q,r,nobs,Z_mat,R_mat,T_mat) + sigma2 = 1./nobs * sum(v**2 / F) + loglike = -.5 *(loglikelihood + nobs*nplog(sigma2)) + loglike -= nobs/2. * (log(2*pi) + 1) + return loglike, sigma2 diff --git a/statsmodels/tsa/kalmanf/kalmanfilter.py b/statsmodels/tsa/kalmanf/kalmanfilter.py new file mode 100644 index 0000000..2391d58 --- /dev/null +++ b/statsmodels/tsa/kalmanf/kalmanfilter.py @@ -0,0 +1,876 @@ +""" +State Space Analysis using the Kalman Filter + +References +----------- +Durbin., J and Koopman, S.J. `Time Series Analysis by State Space Methods`. + Oxford, 2001. + +Hamilton, J.D. `Time Series Analysis`. Princeton, 1994. + +Harvey, A.C. `Forecasting, Structural Time Series Models and the Kalman Filter`. + Cambridge, 1989. + +Notes +----- +This file follows Hamilton's notation pretty closely. +The ARMA Model class follows Durbin and Koopman notation. +Harvey uses Durbin and Koopman notation. +""" +#Anderson and Moore `Optimal Filtering` provides a more efficient algorithm +# namely the information filter +# if the number of series is much greater than the number of states +# e.g., with a DSGE model. See also +# http://www.federalreserve.gov/pubs/oss/oss4/aimindex.html +# Harvey notes that the square root filter will keep P_t pos. def. but +# is not strictly needed outside of the engineering (long series) +from __future__ import print_function +from statsmodels.compat.python import lzip, lmap, callable, range +import numpy as np +from numpy import dot, identity, kron, log, zeros, pi, exp, eye, issubdtype, ones +from numpy.linalg import inv, pinv +from statsmodels.tools.tools import chain_dot +from . import kalman_loglike + +#Fast filtering and smoothing for multivariate state space models +# and The Riksbank -- Strid and Walentin (2008) +# Block Kalman filtering for large-scale DSGE models +# but this is obviously macro model specific + +def _init_diffuse(T,R): + m = T.shape[1] # number of states + r = R.shape[1] # should also be the number of states? + Q_0 = dot(inv(identity(m**2)-kron(T,T)),dot(R,R.T).ravel('F')) + return zeros((m,1)), Q_0.reshape(r,r,order='F') + + +def kalmansmooth(F, A, H, Q, R, y, X, xi10): + pass + +def kalmanfilter(F, A, H, Q, R, y, X, xi10, ntrain, history=False): + """ + Returns the negative log-likelihood of y conditional on the information set + + Assumes that the initial state and all innovations are multivariate + Gaussian. + + Parameters + ----------- + F : array-like + The (r x r) array holding the transition matrix for the hidden state. + A : array-like + The (nobs x k) array relating the predetermined variables to the + observed data. + H : array-like + The (nobs x r) array relating the hidden state vector to the + observed data. + Q : array-like + (r x r) variance/covariance matrix on the error term in the hidden + state transition. + R : array-like + (nobs x nobs) variance/covariance of the noise in the observation + equation. + y : array-like + The (nobs x 1) array holding the observed data. + X : array-like + The (nobs x k) array holding the predetermined variables data. + xi10 : array-like + Is the (r x 1) initial prior on the initial state vector. + ntrain : int + The number of training periods for the filter. This is the number of + observations that do not affect the likelihood. + + + Returns + ------- + likelihood + The negative of the log likelihood + history or priors, history of posterior + If history is True. + + Notes + ----- + No input checking is done. + """ +# uses log of Hamilton 13.4.1 + F = np.asarray(F) + H = np.atleast_2d(np.asarray(H)) + n = H.shape[1] # remember that H gets transposed + y = np.asarray(y) + A = np.asarray(A) + X = np.asarray(X) + if y.ndim == 1: # note that Y is in rows for now + y = y[:,None] + nobs = y.shape[0] + xi10 = np.atleast_2d(np.asarray(xi10)) +# if xi10.ndim == 1: +# xi10[:,None] + if history: + state_vector = [xi10] + Q = np.asarray(Q) + r = xi10.shape[0] +# Eq. 12.2.21, other version says P0 = Q +# p10 = np.dot(np.linalg.inv(np.eye(r**2)-np.kron(F,F)),Q.ravel('F')) +# p10 = np.reshape(P0, (r,r), order='F') +# Assume a fixed, known intial point and set P0 = Q +#TODO: this looks *slightly * different than Durbin-Koopman exact likelihood +# initialization p 112 unless I've misunderstood the notational translation. + p10 = Q + + loglikelihood = 0 + for i in range(nobs): + HTPHR = np.atleast_1d(np.squeeze(chain_dot(H.T,p10,H)+R)) +# print HTPHR +# print HTPHR.ndim +# print HTPHR.shape + if HTPHR.ndim == 1: + HTPHRinv = 1./HTPHR + else: + HTPHRinv = np.linalg.inv(HTPHR) # correct +# print A.T +# print X +# print H.T +# print xi10 +# print y[i] + part1 = y[i] - np.dot(A.T,X) - np.dot(H.T,xi10) # correct + if i >= ntrain: # zero-index, but ntrain isn't + HTPHRdet = np.linalg.det(np.atleast_2d(HTPHR)) # correct + part2 = -.5*chain_dot(part1.T,HTPHRinv,part1) # correct +#TODO: Need to test with ill-conditioned problem. + loglike_interm = (-n/2.) * np.log(2*np.pi) - .5*\ + np.log(HTPHRdet) + part2 + loglikelihood += loglike_interm + + # 13.2.15 Update current state xi_t based on y + xi11 = xi10 + chain_dot(p10, H, HTPHRinv, part1) + # 13.2.16 MSE of that state + p11 = p10 - chain_dot(p10, H, HTPHRinv, H.T, p10) + # 13.2.17 Update forecast about xi_{t+1} based on our F + xi10 = np.dot(F,xi11) + if history: + state_vector.append(xi10) + # 13.2.21 Update the MSE of the forecast + p10 = chain_dot(F,p11,F.T) + Q + if not history: + return -loglikelihood + else: + return -loglikelihood, np.asarray(state_vector[:-1]) + +#TODO: this works if it gets refactored, but it's not quite as accurate +# as KalmanFilter +# def loglike_exact(self, params): +# """ +# Exact likelihood for ARMA process. +# +# Notes +# ----- +# Computes the exact likelihood for an ARMA process by modifying the +# conditional sum of squares likelihood as suggested by Shephard (1997) +# "The relationship between the conditional sum of squares and the exact +# likelihood for autoregressive moving average models." +# """ +# p = self.p +# q = self.q +# k = self.k +# y = self.endog.copy() +# nobs = self.nobs +# if self.transparams: +# newparams = self._transparams(params) +# else: +# newparams = params +# if k > 0: +# y -= dot(self.exog, newparams[:k]) +# if p != 0: +# arcoefs = newparams[k:k+p][::-1] +# T = KalmanFilter.T(arcoefs) +# else: +# arcoefs = 0 +# if q != 0: +# macoefs = newparams[k+p:k+p+q][::-1] +# else: +# macoefs = 0 +# errors = [0] * q # psuedo-errors +# rerrors = [1] * q # error correction term +# # create pseudo-error and error correction series iteratively +# for i in range(p,len(y)): +# errors.append(y[i]-sum(arcoefs*y[i-p:i])-\ +# sum(macoefs*errors[i-q:i])) +# rerrors.append(-sum(macoefs*rerrors[i-q:i])) +# errors = np.asarray(errors) +# rerrors = np.asarray(rerrors) +# +# # compute bayesian expected mean and variance of initial errors +# one_sumrt2 = 1 + np.sum(rerrors**2) +# sum_errors2 = np.sum(errors**2) +# mup = -np.sum(errors * rerrors)/one_sumrt2 +# +# # concentrating out the ML estimator of "true" sigma2 gives +# sigma2 = 1./(2*nobs) * (sum_errors2 - mup**2*(one_sumrt2)) +# +# # which gives a variance of the initial errors of +# sigma2p = sigma2/one_sumrt2 +# +# llf = -(nobs-p)/2. * np.log(2*pi*sigma2) - 1./(2*sigma2)*sum_errors2 \ +# + 1./2*log(one_sumrt2) + 1./(2*sigma2) * mup**2*one_sumrt2 +# Z_mat = KalmanFilter.Z(r) +# R_mat = KalmanFilter.R(newparams, r, k, q, p) +# T_mat = KalmanFilter.T(newparams, r, k, p) +# # initial state and its variance +# alpha = zeros((m,1)) +# Q_0 = dot(inv(identity(m**2)-kron(T_mat,T_mat)), +# dot(R_mat,R_mat.T).ravel('F')) +# Q_0 = Q_0.reshape(r,r,order='F') +# P = Q_0 +# v = zeros((nobs,1)) +# F = zeros((nobs,1)) +# B = array([T_mat, 0], dtype=object) +# +# +# for i in xrange(int(nobs)): +# v_mat = (y[i],0) - dot(z_mat,B) +# +# B_0 = (T,0) +# v_t = (y_t,0) - z*B_t +# llf = -nobs/2.*np.log(2*pi*sigma2) - 1/(2.*sigma2)*se_n - \ +# 1/2.*logdet(Sigma_a) + 1/(2*sigma2)*s_n_prime*sigma_a*s_n +# return llf +# + + +class StateSpaceModel(object): + """ + Generic StateSpaceModel class. Meant to be a base class. + + This class lays out the methods that are to be defined by any child + class. + + Parameters + ---------- + endog : array-like + An `nobs` x `p` array of observations + exog : array-like, optional + An `nobs` x `k` array of exogenous variables. + **kwargs + Anything provided to the constructor will be attached as an + attribute. + + Notes + ----- + The state space model is assumed to be of the form + + y[t] = Z[t].dot(alpha[t]) + epsilon[t] + alpha[t+1] = T[t].dot(alpha[t]) + R[t].dot(eta[t]) + + where + + epsilon[t] ~ N(0, H[t]) + eta[t] ~ N(0, Q[t]) + alpha[0] ~ N(a[0], P[0]) + + Where y is the `p` x 1 observations vector, and alpha is the `m` x 1 + state vector. + + References + ----------- + Durbin, J. and S.J. Koopman. 2001. `Time Series Analysis by State Space + Methods.` Oxford. + """ + def __init__(self, endog, exog=None, **kwargs): + dict.__init__(self, kwargs) + self.__dict__ = self + + endog = np.asarray(endog) + if endog.ndim == 1: + endog = endog[:,None] + self.endog = endog + p = endog.shape[1] + self.p = nobs + self.nobs = endog.shape[0] + if exog: + self.exog = exog + + def T(self, params): + pass + + def R(self, params): + pass + + def Z(self, params): + pass + + def H(self, params): + pass + + def Q(self, params): + pass + + def _univariatefilter(self, params, init_state, init_var): + """ + Implements the Kalman Filter recursions. Optimized for univariate case. + """ + y = self.endog + nobs = self.nobs + + R = self.R + T = self.T + Z = self.Z + H = self.H + Q = self.Q + if not init_state and not init_var: + alpha, P = _init_diffuse(T,R) + #NOTE: stopped here + + def _univariatefilter_update(self): + pass + # does the KF but calls _update after each loop to update the matrices + # for time-varying coefficients + + def kalmanfilter(self, params, init_state=None, init_var=None): + """ + Runs the Kalman Filter + """ + # determine if + if self.p == 1: + return _univariatefilter(init_state, init_var) + else: + raise ValueError("No multivariate filter written yet") + + + def _updateloglike(self, params, xi10, ntrain, penalty, upperbounds, lowerbounds, + F,A,H,Q,R, history): + """ + """ + paramsorig = params + # are the bounds binding? + if penalty: + params = np.min((np.max((lowerbounds, params), axis=0),upperbounds), + axis=0) + #TODO: does it make sense for all of these to be allowed to be None? + if F != None and callable(F): + F = F(params) + elif F == None: + F = 0 + if A != None and callable(A): + A = A(params) + elif A == None: + A = 0 + if H != None and callable(H): + H = H(params) + elif H == None: + H = 0 + print(callable(Q)) + if Q != None and callable(Q): + Q = Q(params) + elif Q == None: + Q = 0 + if R != None and callable(R): + R = R(params) + elif R == None: + R = 0 + X = self.exog + if X == None: + X = 0 + y = self.endog + loglike = kalmanfilter(F,A,H,Q,R,y,X, xi10, ntrain, history) + # use a quadratic penalty function to move away from bounds + if penalty: + loglike += penalty * np.sum((paramsorig-params)**2) + return loglike + +# r = self.r +# n = self.n +# F = np.diagonal(np.ones(r-1), k=-1) # think this will be wrong for VAR + # cf. 13.1.22 but think VAR +# F[0] = params[:p] # assumes first p start_params are coeffs + # of obs. vector, needs to be nxp for VAR? +# self.F = F +# cholQ = np.diag(start_params[p:]) # fails for bivariate + # MA(1) section + # 13.4.2 +# Q = np.dot(cholQ,cholQ.T) +# self.Q = Q +# HT = np.zeros((n,r)) +# xi10 = self.xi10 +# y = self.endog +# ntrain = self.ntrain + # loglike = kalmanfilter(F,H,y,xi10,Q,ntrain) + + def fit_kalman(self, start_params, xi10, ntrain=1, F=None, A=None, H=None, + Q=None, + R=None, method="bfgs", penalty=True, upperbounds=None, + lowerbounds=None): + """ + Parameters + ---------- + method : str + Only "bfgs" is currently accepted. + start_params : array-like + The first guess on all parameters to be estimated. This can + be in any order as long as the F,A,H,Q, and R functions handle + the parameters appropriately. + xi10 : array-like + The (r x 1) vector of initial states. See notes. + F,A,H,Q,R : functions or array-like, optional + If functions, they should take start_params (or the current + value of params during iteration and return the F,A,H,Q,R matrices). + See notes. If they are constant then can be given as array-like + objects. If not included in the state-space representation then + can be left as None. See example in class docstring. + penalty : bool, + Whether or not to include a penalty for solutions that violate + the bounds given by `lowerbounds` and `upperbounds`. + lowerbounds : array-like + Lower bounds on the parameter solutions. Expected to be in the + same order as `start_params`. + upperbounds : array-like + Upper bounds on the parameter solutions. Expected to be in the + same order as `start_params` + """ + y = self.endog + ntrain = ntrain + _updateloglike = self._updateloglike + params = start_params + if method.lower() == 'bfgs': + (params, llf, score, cov_params, func_calls, grad_calls, + warnflag) = optimize.fmin_bfgs(_updateloglike, params, + args = (xi10, ntrain, penalty, upperbounds, lowerbounds, + F,A,H,Q,R, False), gtol= 1e-8, epsilon=1e-5, + full_output=1) + #TODO: provide more options to user for optimize + # Getting history would require one more call to _updatelikelihood + self.params = params + self.llf = llf + self.gradient = score + self.cov_params = cov_params # how to interpret this? + self.warnflag = warnflag + +def updatematrices(params, y, xi10, ntrain, penalty, upperbound, lowerbound): + """ + TODO: change API, update names + + This isn't general. Copy of Luca's matlab example. + """ + paramsorig = params + # are the bounds binding? + params = np.min((np.max((lowerbound,params),axis=0),upperbound), axis=0) + rho = params[0] + sigma1 = params[1] + sigma2 = params[2] + + F = np.array([[rho, 0],[0,0]]) + cholQ = np.array([[sigma1,0],[0,sigma2]]) + H = np.ones((2,1)) + q = np.dot(cholQ,cholQ.T) + loglike = kalmanfilter(F,0,H,q,0, y, 0, xi10, ntrain) + loglike = loglike + penalty*np.sum((paramsorig-params)**2) + return loglike + +class KalmanFilter(object): + """ + Kalman Filter code intended for use with the ARMA model. + + Notes + ----- + The notation for the state-space form follows Durbin and Koopman (2001). + + The observation equations is + + .. math:: y_{t} = Z_{t}\\alpha_{t} + \\epsilon_{t} + + The state equation is + + .. math:: \\alpha_{t+1} = T_{t}\\alpha_{t} + R_{t}\\eta_{t} + + For the present purposed \epsilon_{t} is assumed to always be zero. + """ + + @classmethod + def T(cls, params, r, k, p): # F in Hamilton + """ + The coefficient matrix for the state vector in the state equation. + + Its dimension is r+k x r+k. + + Parameters + ---------- + r : int + In the context of the ARMA model r is max(p,q+1) where p is the + AR order and q is the MA order. + k : int + The number of exogenous variables in the ARMA model, including + the constant if appropriate. + p : int + The AR coefficient in an ARMA model. + + References + ---------- + Durbin and Koopman Section 3.7. + """ + arr = zeros((r, r), dtype=params.dtype, order="F") + # allows for complex-step derivative + params_padded = zeros(r, dtype=params.dtype, + order="F") + # handle zero coefficients if necessary + #NOTE: squeeze added for cg optimizer + params_padded[:p] = params[k:p+k] + arr[:,0] = params_padded # first p params are AR coeffs w/ short params + arr[:-1,1:] = eye(r-1) + return arr + + @classmethod + def R(cls, params, r, k, q, p): # R is H in Hamilton + """ + The coefficient matrix for the state vector in the observation equation. + + Its dimension is r+k x 1. + + Parameters + ---------- + r : int + In the context of the ARMA model r is max(p,q+1) where p is the + AR order and q is the MA order. + k : int + The number of exogenous variables in the ARMA model, including + the constant if appropriate. + q : int + The MA order in an ARMA model. + p : int + The AR order in an ARMA model. + + References + ---------- + Durbin and Koopman Section 3.7. + """ + arr = zeros((r, 1), dtype=params.dtype, order="F") + # this allows zero coefficients + # dtype allows for compl. der. + arr[1:q+1,:] = params[p+k:p+k+q][:,None] + arr[0] = 1.0 + return arr + + @classmethod + def Z(cls, r): + """ + Returns the Z selector matrix in the observation equation. + + Parameters + ---------- + r : int + In the context of the ARMA model r is max(p,q+1) where p is the + AR order and q is the MA order. + + Notes + ----- + Currently only returns a 1 x r vector [1,0,0,...0]. Will need to + be generalized when the Kalman Filter becomes more flexible. + """ + arr = zeros((1,r), order="F") + arr[:,0] = 1. + return arr + + @classmethod + def geterrors(cls, y, k, k_ar, k_ma, k_lags, nobs, Z_mat, m, R_mat, T_mat, + paramsdtype): + """ + Returns just the errors of the Kalman Filter + """ + if issubdtype(paramsdtype, float): + return kalman_loglike.kalman_filter_double(y, k, k_ar, k_ma, + k_lags, int(nobs), Z_mat, R_mat, T_mat)[0] + elif issubdtype(paramsdtype, complex): + return kalman_loglike.kalman_filter_complex(y, k, k_ar, k_ma, + k_lags, int(nobs), Z_mat, R_mat, T_mat)[0] + else: + raise TypeError("dtype %s is not supported " + "Please file a bug report" % paramsdtype) + + @classmethod + def _init_kalman_state(cls, params, arma_model): + """ + Returns the system matrices and other info needed for the + Kalman Filter recursions + """ + paramsdtype = params.dtype + y = arma_model.endog.copy().astype(paramsdtype) + k = arma_model.k_exog + arma_model.k_trend + nobs = arma_model.nobs + k_ar = arma_model.k_ar + k_ma = arma_model.k_ma + k_lags = arma_model.k_lags + + if arma_model.transparams: + newparams = arma_model._transparams(params) + else: + newparams = params # don't need a copy if not modified. + + if k > 0: + y -= dot(arma_model.exog, newparams[:k]) + + # system matrices + Z_mat = cls.Z(k_lags) + m = Z_mat.shape[1] # r + R_mat = cls.R(newparams, k_lags, k, k_ma, k_ar) + T_mat = cls.T(newparams, k_lags, k, k_ar) + return (y, k, nobs, k_ar, k_ma, k_lags, + newparams, Z_mat, m, R_mat, T_mat, paramsdtype) + + @classmethod + def loglike(cls, params, arma_model, set_sigma2=True): + """ + The loglikelihood for an ARMA model using the Kalman Filter recursions. + + Parameters + ---------- + params : array + The coefficients of the ARMA model, assumed to be in the order of + trend variables and `k` exogenous coefficients, the `p` AR + coefficients, then the `q` MA coefficients. + arma_model : `statsmodels.tsa.arima.ARMA` instance + A reference to the ARMA model instance. + set_sigma2 : bool, optional + True if arma_model.sigma2 should be set. + Note that sigma2 will be computed in any case, + but it will be discarded if set_sigma2 is False. + + Notes + ----- + This works for both real valued and complex valued parameters. The + complex values being used to compute the numerical derivative. If + available will use a Cython version of the Kalman Filter. + """ + #TODO: see section 3.4.6 in Harvey for computing the derivatives in the + # recursion itself. + #TODO: this won't work for time-varying parameters + (y, k, nobs, k_ar, k_ma, k_lags, newparams, Z_mat, m, R_mat, T_mat, + paramsdtype) = cls._init_kalman_state(params, arma_model) + if issubdtype(paramsdtype, float): + loglike, sigma2 = kalman_loglike.kalman_loglike_double(y, k, + k_ar, k_ma, k_lags, int(nobs), Z_mat, + R_mat, T_mat) + elif issubdtype(paramsdtype, complex): + loglike, sigma2 = kalman_loglike.kalman_loglike_complex(y, k, + k_ar, k_ma, k_lags, int(nobs), + Z_mat.astype(complex), + R_mat, T_mat) + else: + raise TypeError("This dtype %s is not supported " + " Please files a bug report." % paramsdtype) + if set_sigma2: + arma_model.sigma2 = sigma2 + + return loglike + + +if __name__ == "__main__": + import numpy as np + from scipy.linalg import block_diag + import numpy as np + # Make our observations as in 13.1.13 + np.random.seed(54321) + nobs = 600 + y = np.zeros(nobs) + rho = [.5, -.25, .35, .25] + sigma = 2.0 # std dev. or noise + for i in range(4,nobs): + y[i] = np.dot(rho,y[i-4:i][::-1]) + np.random.normal(scale=sigma) + y = y[100:] + + # make an MA(2) observation equation as in example 13.3 + # y = mu + [1 theta][e_t e_t-1]' + mu = 2. + theta = .8 + rho = np.array([1, theta]) + np.random.randn(54321) + e = np.random.randn(101) + y = mu + rho[0]*e[1:]+rho[1]*e[:-1] + # might need to add an axis + r = len(rho) + x = np.ones_like(y) + + # For now, assume that F,Q,A,H, and R are known + F = np.array([[0,0],[1,0]]) + Q = np.array([[1,0],[0,0]]) + A = np.array([mu]) + H = rho[:,None] + R = 0 + + # remember that the goal is to solve recursively for the + # state vector, xi, given the data, y (in this case) + # we can also get a MSE matrix, P, associated with *each* observation + + # given that our errors are ~ NID(0,variance) + # the starting E[e(1),e(0)] = [0,0] + xi0 = np.array([[0],[0]]) + # with variance = 1 we know that +# P0 = np.eye(2) # really P_{1|0} + +# Using the note below + P0 = np.dot(np.linalg.inv(np.eye(r**2)-np.kron(F,F)),Q.ravel('F')) + P0 = np.reshape(P0, (r,r), order='F') + + # more generally, if the eigenvalues for F are in the unit circle + # (watch out for rounding error in LAPACK!) then + # the DGP of the state vector is var/cov stationary, we know that + # xi0 = 0 + # Furthermore, we could start with + # vec(P0) = np.dot(np.linalg.inv(np.eye(r**2) - np.kron(F,F)),vec(Q)) + # where vec(X) = np.ravel(X, order='F') with a possible [:,np.newaxis] + # if you really want a "2-d" array + # a fortran (row-) ordered raveled array + # If instead, some eigenvalues are on or outside the unit circle + # xi0 can be replaced with a best guess and then + # P0 is a positive definite matrix repr the confidence in the guess + # larger diagonal elements signify less confidence + + + # we also know that y1 = mu + # and MSE(y1) = variance*(1+theta**2) = np.dot(np.dot(H.T,P0),H) + + state_vector = [xi0] + forecast_vector = [mu] + MSE_state = [P0] # will be a list of matrices + MSE_forecast = [] + # must be numerical shortcuts for some of this... + # this should be general enough to be reused + for i in range(len(y)-1): + # update the state vector + sv = state_vector[i] + P = MSE_state[i] + HTPHR = np.dot(np.dot(H.T,P),H)+R + if np.ndim(HTPHR) < 2: # we have a scalar + HTPHRinv = 1./HTPHR + else: + HTPHRinv = np.linalg.inv(HTPHR) + FPH = np.dot(np.dot(F,P),H) + gain_matrix = np.dot(FPH,HTPHRinv) # correct + new_sv = np.dot(F,sv) + new_sv += np.dot(gain_matrix,y[i] - np.dot(A.T,x[i]) - + np.dot(H.T,sv)) + state_vector.append(new_sv) + # update the MSE of the state vector forecast using 13.2.28 + new_MSEf = np.dot(np.dot(F - np.dot(gain_matrix,H.T),P),F.T - np.dot(H, + gain_matrix.T)) + np.dot(np.dot(gain_matrix,R),gain_matrix.T) + Q + MSE_state.append(new_MSEf) + # update the in sample forecast of y + forecast_vector.append(np.dot(A.T,x[i+1]) + np.dot(H.T,new_sv)) + # update the MSE of the forecast + MSE_forecast.append(np.dot(np.dot(H.T,new_MSEf),H) + R) + MSE_forecast = np.array(MSE_forecast).squeeze() + MSE_state = np.array(MSE_state) + forecast_vector = np.array(forecast_vector) + state_vector = np.array(state_vector).squeeze() + +########## +# Luca's example + # choose parameters governing the signal extraction problem + rho = .9 + sigma1 = 1 + sigma2 = 1 + nobs = 100 + +# get the state space representation (Hamilton's notation)\ + F = np.array([[rho, 0],[0, 0]]) + cholQ = np.array([[sigma1, 0],[0,sigma2]]) + H = np.ones((2,1)) + +# generate random data + np.random.seed(12345) + xihistory = np.zeros((2,nobs)) + for i in range(1,nobs): + xihistory[:,i] = np.dot(F,xihistory[:,i-1]) + \ + np.dot(cholQ,np.random.randn(2,1)).squeeze() + # this makes an ARMA process? + # check notes, do the math + y = np.dot(H.T, xihistory) + y = y.T + + params = np.array([rho, sigma1, sigma2]) + penalty = 1e5 + upperbounds = np.array([.999, 100, 100]) + lowerbounds = np.array([-.999, .001, .001]) + xi10 = xihistory[:,0] + ntrain = 1 + bounds = lzip(lowerbounds,upperbounds) # if you use fmin_l_bfgs_b +# results = optimize.fmin_bfgs(updatematrices, params, +# args=(y,xi10,ntrain,penalty,upperbounds,lowerbounds), +# gtol = 1e-8, epsilon=1e-10) +# array([ 0.83111567, 1.2695249 , 0.61436685]) + + + F = lambda x : np.array([[x[0],0],[0,0]]) + def Q(x): + cholQ = np.array([[x[1],0],[0,x[2]]]) + return np.dot(cholQ,cholQ.T) + H = np.ones((2,1)) +# ssm_model = StateSpaceModel(y) # need to pass in Xi10! +# ssm_model.fit_kalman(start_params=params, xi10=xi10, F=F, Q=Q, H=H, +# upperbounds=upperbounds, lowerbounds=lowerbounds) +# why does the above take 3 times as many iterations than direct max? + + # compare directly to matlab output + from scipy import io +# y_matlab = io.loadmat('./kalman_y.mat')['y'].reshape(-1,1) +# ssm_model2 = StateSpaceModel(y_matlab) +# ssm_model2.fit_kalman(start_params=params, xi10=xi10, F=F, Q=Q, H=H, +# upperbounds=upperbounds, lowerbounds=lowerbounds) + +# matlab output +# thetaunc = np.array([0.7833, 1.1688, 0.5584]) +# np.testing.assert_almost_equal(ssm_model2.params, thetaunc, 4) + # maybe add a line search check to make sure we didn't get stuck in a local + # max for more complicated ssm? + + + +# Examples from Durbin and Koopman + import zipfile + try: + dk = zipfile.ZipFile('/home/skipper/statsmodels/statsmodels-skipper/scikits/statsmodels/sandbox/tsa/DK-data.zip') + except: + raise IOError("Install DK-data.zip from http://www.ssfpack.com/DKbook.html or specify its correct local path.") + with dk.open('Nile.dat') as f: + nile = f.readlines() + nile = [float(_.strip()) for _ in nile[1:]] + nile = np.asarray(nile) +# v = np.zeros_like(nile) +# a = np.zeros_like(nile) +# F = np.zeros_like(nile) +# P = np.zeros_like(nile) +# P[0] = 10.**7 +# sigma2e = 15099. +# sigma2n = 1469.1 +# for i in range(len(nile)): +# v[i] = nile[i] - a[i] # Kalman filter residual +# F[i] = P[i] + sigma2e # the variance of the Kalman filter residual +# K = P[i]/F[i] +# a[i+1] = a[i] + K*v[i] +# P[i+1] = P[i]*(1.-K) + sigma2n + + nile_ssm = StateSpaceModel(nile) + R = lambda params : np.array(params[0]) + Q = lambda params : np.array(params[1]) +# nile_ssm.fit_kalman(start_params=[1.0,1.0], xi10=0, F=[1.], H=[1.], +# Q=Q, R=R, penalty=False, ntrain=0) + +# p. 162 univariate structural time series example + with dk.open('Seatbelt.dat') as f: + seatbelt = f.readlines() + seatbelt = [lmap(float,_.split()) for _ in seatbelt[2:]] + sb_ssm = StateSpaceModel(seatbelt) + s = 12 # monthly data +# s p. + H = np.zeros((s+1,1)) # Z in DK, H' in Hamilton + H[::2] = 1. + lambdaj = np.r_[1:6:6j] + lambdaj *= 2*np.pi/s + T = np.zeros((s+1,s+1)) + C = lambda j : np.array([[np.cos(j), np.sin(j)],[-np.sin(j), np.cos(j)]]) + Cj = [C(j) for j in lambdaj] + [-1] +#NOTE: the above is for handling seasonality +#TODO: it is just a rotation matrix. See if Robert's link has a better way +#http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=5F5145BE25D61F87478B25AD1493C8F4?doi=10.1.1.110.5134&rep=rep1&type=pdf&ei=QcetSefqF4GEsQPnx4jSBA&sig2=HjJILSBPFgJTfuifbvKrxw&usg=AFQjCNFbABIxusr-NEbgrinhtR6buvjaYA + from scipy import linalg + F = linalg.block_diag(*Cj) # T in DK, F in Hamilton + R = np.eye(s-1) + sigma2_omega = 1. + Q = np.eye(s-1) * sigma2_omega diff --git a/statsmodels/tsa/mlemodel.py b/statsmodels/tsa/mlemodel.py new file mode 100644 index 0000000..e4e50ed --- /dev/null +++ b/statsmodels/tsa/mlemodel.py @@ -0,0 +1,83 @@ +"""Base Classes for Likelihood Models in time series analysis + +Warning: imports numdifftools + + + +Created on Sun Oct 10 15:00:47 2010 + +Author: josef-pktd +License: BSD + +""" + +import numpy as np + +try: + import numdifftools as ndt +except ImportError: + pass + +from statsmodels.base.model import LikelihoodModel + +#copied from sandbox/regression/mle.py +#TODO: I take it this is only a stub and should be included in another +# model class? +class TSMLEModel(LikelihoodModel): + """ + univariate time series model for estimation with maximum likelihood + + Note: This is not working yet + """ + + def __init__(self, endog, exog=None): + #need to override p,q (nar,nma) correctly + super(TSMLEModel, self).__init__(endog, exog) + #set default arma(1,1) + self.nar = 1 + self.nma = 1 + #self.initialize() + + def geterrors(self, params): + raise NotImplementedError + + def loglike(self, params): + """ + Loglikelihood for timeseries model + + Notes + ----- + needs to be overwritten by subclass + """ + raise NotImplementedError + + + def score(self, params): + """ + Score vector for Arma model + """ + #return None + #print params + jac = ndt.Jacobian(self.loglike, stepMax=1e-4) + return jac(params)[-1] + + def hessian(self, params): + """ + Hessian of arma model. Currently uses numdifftools + """ + #return None + Hfun = ndt.Jacobian(self.score, stepMax=1e-4) + return Hfun(params)[-1] + + + def fit(self, start_params=None, maxiter=5000, method='fmin', tol=1e-08): + '''estimate model by minimizing negative loglikelihood + + does this need to be overwritten ? + ''' + if start_params is None and hasattr(self, '_start_params'): + start_params = self._start_params + #start_params = np.concatenate((0.05*np.ones(self.nar + self.nma), [1])) + mlefit = super(TSMLEModel, self).fit(start_params=start_params, + maxiter=maxiter, method=method, tol=tol) + return mlefit diff --git a/statsmodels/tsa/regime_switching/__init__.py b/statsmodels/tsa/regime_switching/__init__.py new file mode 100644 index 0000000..0123ce8 --- /dev/null +++ b/statsmodels/tsa/regime_switching/__init__.py @@ -0,0 +1,2 @@ +from statsmodels import NoseWrapper as Tester +test = Tester().test diff --git a/statsmodels/tsa/regime_switching/_hamilton_filter.pyx.in b/statsmodels/tsa/regime_switching/_hamilton_filter.pyx.in new file mode 100644 index 0000000..f04f8b1 --- /dev/null +++ b/statsmodels/tsa/regime_switching/_hamilton_filter.pyx.in @@ -0,0 +1,84 @@ +#cython: boundscheck=False +#cython: wraparound=False +#cython: cdivision=False +""" +Hamilton filter + +Author: Chad Fulton +License: Simplified-BSD +""" + +{{py: + +TYPES = { + "s": ("np.float32_t", "np.float32", "np.NPY_FLOAT32"), + "d": ("np.float64_t", "float", "np.NPY_FLOAT64"), + "c": ("np.complex64_t", "np.complex64", "np.NPY_COMPLEX64"), + "z": ("np.complex128_t", "complex", "np.NPY_COMPLEX128"), +} + +}} + +# Typical imports +import numpy as np +import warnings +cimport numpy as np +cimport cython + +cdef int FORTRAN = 1 + +{{for prefix, types in TYPES.items()}} +{{py:cython_type, dtype, typenum = types}} + +def {{prefix}}hamilton_filter(int nobs, int k_regimes, int order, + {{cython_type}} [:,:,:] transition, + {{cython_type}} [:,:] conditional_likelihoods, + {{cython_type}} [:] joint_likelihoods, + {{cython_type}} [:,:] predicted_joint_probabilities, + {{cython_type}} [:,:] filtered_joint_probabilities): + cdef int t, i, j, k, ix, transition_t = 0, time_varying_transition + cdef: + int k_regimes_order_m1 = k_regimes**(order - 1) + int k_regimes_order = k_regimes**order + int k_regimes_order_p1 = k_regimes**(order + 1) + {{cython_type}} [:] likelihoods, tmp + + time_varying_transition = transition.shape[2] > 1 + likelihoods = np.zeros(k_regimes_order_p1, dtype={{dtype}}) + tmp = np.zeros(k_regimes_order, dtype={{dtype}}) + + for t in range(nobs): + if time_varying_transition: + transition_t = t + + ix = 0 + tmp[:] = 0 + for j in range(k_regimes_order): + for i in range(k_regimes): + tmp[j] = tmp[j] + filtered_joint_probabilities[ix, t] + ix = ix + 1 + + ix = 0 + for i in range(k_regimes): + for j in range(k_regimes): + for k in range(k_regimes_order_m1): + predicted_joint_probabilities[ix, t] = ( + tmp[j * k_regimes_order_m1 + k] * + transition[i, j, transition_t]) + ix += 1 + + for i in range(k_regimes_order_p1): + likelihoods[i] = ( + predicted_joint_probabilities[i, t] * + conditional_likelihoods[i, t]) + joint_likelihoods[t] = joint_likelihoods[t] + likelihoods[i] + + for i in range(k_regimes_order_p1): + if joint_likelihoods[t] == 0: + filtered_joint_probabilities[i, t+1] = np.inf + else: + filtered_joint_probabilities[i, t+1] = ( + likelihoods[i] / joint_likelihoods[t]) + + +{{endfor}} \ No newline at end of file diff --git a/statsmodels/tsa/regime_switching/markov_autoregression.py b/statsmodels/tsa/regime_switching/markov_autoregression.py new file mode 100644 index 0000000..3aa3a02 --- /dev/null +++ b/statsmodels/tsa/regime_switching/markov_autoregression.py @@ -0,0 +1,496 @@ +""" +Markov switching autoregression models + +Author: Chad Fulton +License: BSD-3 +""" + +from __future__ import division, absolute_import, print_function + +import numpy as np +import statsmodels.base.wrapper as wrap + +from statsmodels.tsa.tsatools import lagmat +from statsmodels.tsa.regime_switching import ( + markov_switching, markov_regression) +from statsmodels.tsa.statespace.tools import ( + constrain_stationary_univariate, unconstrain_stationary_univariate) + + +class MarkovAutoregression(markov_regression.MarkovRegression): + r""" + Markov switching regression model + + Parameters + ---------- + endog : array_like + The endogenous variable. + k_regimes : integer + The number of regimes. + order : integer + The order of the autoregressive lag polynomial. + trend : {'nc', 'c', 't', 'ct'} + Whether or not to include a trend. To include an constant, time trend, + or both, set `trend='c'`, `trend='t'`, or `trend='ct'`. For no trend, + set `trend='nc'`. Default is a constant. + exog : array_like, optional + Array of exogenous regressors, shaped nobs x k. + exog_tvtp : array_like, optional + Array of exogenous or lagged variables to use in calculating + time-varying transition probabilities (TVTP). TVTP is only used if this + variable is provided. If an intercept is desired, a column of ones must + be explicitly included in this array. + switching_ar : boolean or iterable, optional + If a boolean, sets whether or not all autoregressive coefficients are + switching across regimes. If an iterable, should be of length equal + to `order`, where each element is a boolean describing whether the + corresponding coefficient is switching. Default is True. + switching_trend : boolean or iterable, optional + If a boolean, sets whether or not all trend coefficients are + switching across regimes. If an iterable, should be of length equal + to the number of trend variables, where each element is + a boolean describing whether the corresponding coefficient is + switching. Default is True. + switching_exog : boolean or iterable, optional + If a boolean, sets whether or not all regression coefficients are + switching across regimes. If an iterable, should be of length equal + to the number of exogenous variables, where each element is + a boolean describing whether the corresponding coefficient is + switching. Default is True. + switching_variance : boolean, optional + Whether or not there is regime-specific heteroskedasticity, i.e. + whether or not the error term has a switching variance. Default is + False. + + Notes + ----- + This model is new and API stability is not guaranteed, although changes + will be made in a backwards compatible way if possible. + + The model can be written as: + + .. math:: + + y_t = a_{S_t} + x_t' \beta_{S_t} + \phi_{1, S_t} + (y_{t-1} - a_{S_{t-1}} - x_{t-1}' \beta_{S_{t-1}}) + \dots + + \phi_{p, S_t} (y_{t-p} - a_{S_{t-p}} - x_{t-p}' \beta_{S_{t-p}}) + + \varepsilon_t \\ + \varepsilon_t \sim N(0, \sigma_{S_t}^2) + + i.e. the model is an autoregression with where the autoregressive + coefficients, the mean of the process (possibly including trend or + regression effects) and the variance of the error term may be switching + across regimes. + + The `trend` is accomodated by prepending columns to the `exog` array. Thus + if `trend='c'`, the passed `exog` array should not already have a column of + ones. + + References + ---------- + Kim, Chang-Jin, and Charles R. Nelson. 1999. + "State-Space Models with Regime Switching: + Classical and Gibbs-Sampling Approaches with Applications". + MIT Press Books. The MIT Press. + + """ + + def __init__(self, endog, k_regimes, order, trend='c', exog=None, + exog_tvtp=None, switching_ar=True, switching_trend=True, + switching_exog=False, switching_variance=False, + dates=None, freq=None, missing='none'): + + # Properties + self.switching_ar = switching_ar + + # Switching options + if self.switching_ar is True or self.switching_ar is False: + self.switching_ar = [self.switching_ar] * order + elif not len(self.switching_ar) == order: + raise ValueError('Invalid iterable passed to `switching_ar`.') + + # Initialize the base model + super(MarkovAutoregression, self).__init__( + endog, k_regimes, trend=trend, exog=exog, order=order, + exog_tvtp=exog_tvtp, switching_trend=switching_trend, + switching_exog=switching_exog, + switching_variance=switching_variance, dates=dates, freq=freq, + missing=missing) + + # Sanity checks + if self.nobs <= self.order: + raise ValueError('Must have more observations than the order of' + ' the autoregression.') + + # Autoregressive exog + self.exog_ar = lagmat(endog, self.order)[self.order:] + + # Reshape other datasets + self.nobs -= self.order + self.orig_endog = self.endog + self.endog = self.endog[self.order:] + if self._k_exog > 0: + self.orig_exog = self.exog + self.exog = self.exog[self.order:] + + # Reset the ModelData datasets + self.data.endog, self.data.exog = ( + self.data._convert_endog_exog(self.endog, self.exog)) + + # Reset dates, if provided + if self.data.dates is not None: + new_length = self.data.endog.shape[0] + self.data.dates = self.data.dates[self.order:] + + # Parameters + self.parameters['autoregressive'] = self.switching_ar + + # Cache an array for holding slices + self._predict_slices = [slice(None, None, None)] * (self.order + 1) + + def predict_conditional(self, params): + """ + In-sample prediction, conditional on the current and previous regime + + Parameters + ---------- + params : array_like + Array of parameters at which to create predictions. + + Returns + ------- + predict : array_like + Array of predictions conditional on current, and possibly past, + regimes + """ + params = np.array(params, ndmin=1) + + # Prediction is based on: + # y_t = x_t beta^{(S_t)} + + # \phi_1^{(S_t)} (y_{t-1} - x_{t-1} beta^{(S_t-1)}) + ... + # \phi_p^{(S_t)} (y_{t-p} - x_{t-p} beta^{(S_t-p)}) + eps_t + if self._k_exog > 0: + xb = [] + for i in range(self.k_regimes): + coeffs = params[self.parameters[i, 'exog']] + xb.append(np.dot(self.orig_exog, coeffs)) + + predict = np.zeros( + (self.k_regimes,) * (self.order + 1) + (self.nobs,), + dtype=np.promote_types(np.float64, params.dtype)) + # Iterate over S_{t} = i + for i in range(self.k_regimes): + ar_coeffs = params[self.parameters[i, 'autoregressive']] + + # y_t - x_t beta^{(S_t)} + ix = self._predict_slices[:] + ix[0] = i + ix = tuple(ix) + if self._k_exog > 0: + predict[ix] += xb[i][self.order:] + + # Iterate over j = 2, .., p + for j in range(1, self.order + 1): + for k in range(self.k_regimes): + # This gets a specific time-period / regime slice: + # S_{t} = i, S_{t-j} = k, across all other time-period / + # regime slices. + ix = self._predict_slices[:] + ix[0] = i + ix[j] = k + ix = tuple(ix) + + start = self.order - j + end = -j + if self._k_exog > 0: + predict[ix] += ar_coeffs[j-1] * ( + self.orig_endog[start:end] - xb[k][start:end]) + else: + predict[ix] += ar_coeffs[j-1] * ( + self.orig_endog[start:end]) + + return predict + + def _resid(self, params): + return self.endog - self.predict_conditional(params) + + def _conditional_likelihoods(self, params): + """ + Compute likelihoods conditional on the current period's regime and + the last `self.order` regimes. + """ + # Get the residuals + resid = self._resid(params) + + # Compute the conditional likelihoods + variance = params[self.parameters['variance']].squeeze() + if self.switching_variance: + variance = np.reshape(variance, (self.k_regimes, 1, 1)) + + conditional_likelihoods = ( + np.exp(-0.5 * resid**2 / variance) / np.sqrt(2 * np.pi * variance)) + + return conditional_likelihoods + + def filter(self, *args, **kwargs): + kwargs.setdefault('results_class', MarkovAutoregressionResults) + kwargs.setdefault('results_wrapper_class', + MarkovAutoregressionResultsWrapper) + return super(MarkovAutoregression, self).filter(*args, **kwargs) + filter.__doc__ = markov_regression.MarkovRegression.filter.__doc__ + + def smooth(self, *args, **kwargs): + kwargs.setdefault('results_class', MarkovAutoregressionResults) + kwargs.setdefault('results_wrapper_class', + MarkovAutoregressionResultsWrapper) + return super(MarkovAutoregression, self).smooth(*args, **kwargs) + smooth.__doc__ = markov_regression.MarkovRegression.smooth.__doc__ + + def _em_iteration(self, params0): + """ + EM iteration + """ + # Inherited parameters + result, params1 = markov_switching.MarkovSwitching._em_iteration( + self, params0) + + tmp = np.sqrt(result.smoothed_marginal_probabilities) + + # Regression coefficients + coeffs = None + if self._k_exog > 0: + coeffs = self._em_exog(result, self.endog, self.exog, + self.parameters.switching['exog'], tmp) + for i in range(self.k_regimes): + params1[self.parameters[i, 'exog']] = coeffs[i] + + # Autoregressive + if self.order > 0: + if self._k_exog > 0: + ar_coeffs, variance = self._em_autoregressive( + result, coeffs) + else: + ar_coeffs = self._em_exog( + result, self.endog, self.exog_ar, + self.parameters.switching['autoregressive']) + variance = self._em_variance( + result, self.endog, self.exog_ar, ar_coeffs, tmp) + for i in range(self.k_regimes): + params1[self.parameters[i, 'autoregressive']] = ar_coeffs[i] + params1[self.parameters['variance']] = variance + + return result, params1 + + def _em_autoregressive(self, result, betas, tmp=None): + """ + EM step for autoregressive coefficients and variances + """ + if tmp is None: + tmp = np.sqrt(result.smoothed_marginal_probabilities) + + resid = np.zeros((self.k_regimes, self.nobs + self.order)) + resid[:] = self.orig_endog + if self._k_exog > 0: + for i in range(self.k_regimes): + resid[i] -= np.dot(self.orig_exog, betas[i]) + + # The difference between this and `_em_exog` is that here we have a + # different endog and exog for each regime + coeffs = np.zeros((self.k_regimes,) + (self.order,)) + variance = np.zeros((self.k_regimes,)) + exog = np.zeros((self.nobs, self.order)) + for i in range(self.k_regimes): + endog = resid[i, self.order:] + exog = lagmat(resid[i], self.order)[self.order:] + tmp_endog = tmp[i] * endog + tmp_exog = tmp[i][:, None] * exog + + coeffs[i] = np.dot(np.linalg.pinv(tmp_exog), tmp_endog) + + if self.switching_variance: + tmp_resid = endog - np.dot(exog, coeffs[i]) + variance[i] = (np.sum( + tmp_resid**2 * result.smoothed_marginal_probabilities[i]) / + np.sum(result.smoothed_marginal_probabilities[i])) + else: + tmp_resid = tmp_endog - np.dot(tmp_exog, coeffs[i]) + variance[i] = np.sum(tmp_resid**2) + + # Variances + if not self.switching_variance: + variance = variance.sum() / self.nobs + + return coeffs, variance + + @property + def start_params(self): + """ + (array) Starting parameters for maximum likelihood estimation. + """ + # Inherited parameters + params = markov_switching.MarkovSwitching.start_params.fget(self) + + # OLS for starting parameters + endog = self.endog.copy() + if self._k_exog > 0 and self.order > 0: + exog = np.c_[self.exog, self.exog_ar] + elif self._k_exog > 0: + exog = self.exog + elif self.order > 0: + exog = self.exog_ar + + if self._k_exog > 0 or self.order > 0: + beta = np.dot(np.linalg.pinv(exog), endog) + variance = np.var(endog - np.dot(exog, beta)) + else: + variance = np.var(endog) + + # Regression coefficients + if self._k_exog > 0: + if np.any(self.switching_coeffs): + for i in range(self.k_regimes): + params[self.parameters[i, 'exog']] = ( + beta[:self._k_exog] * (i / self.k_regimes)) + else: + params[self.parameters['exog']] = beta[:self._k_exog] + + # Autoregressive + if self.order > 0: + if np.any(self.switching_ar): + for i in range(self.k_regimes): + params[self.parameters[i, 'autoregressive']] = ( + beta[self._k_exog:] * (i / self.k_regimes)) + else: + params[self.parameters['autoregressive']] = beta[self._k_exog:] + + # Variance + if self.switching_variance: + params[self.parameters['variance']] = ( + np.linspace(variance / 10., variance, num=self.k_regimes)) + else: + params[self.parameters['variance']] = variance + + return params + + @property + def param_names(self): + """ + (list of str) List of human readable parameter names (for parameters + actually included in the model). + """ + # Inherited parameters + param_names = np.array( + markov_regression.MarkovRegression.param_names.fget(self), + dtype=object) + + # Autoregressive + if np.any(self.switching_ar): + for i in range(self.k_regimes): + param_names[self.parameters[i, 'autoregressive']] = [ + 'ar.L%d[%d]' % (j+1, i) for j in range(self.order)] + else: + param_names[self.parameters['autoregressive']] = [ + 'ar.L%d' % (j+1) for j in range(self.order)] + + return param_names.tolist() + + def transform_params(self, unconstrained): + """ + Transform unconstrained parameters used by the optimizer to constrained + parameters used in likelihood evaluation + + Parameters + ---------- + unconstrained : array_like + Array of unconstrained parameters used by the optimizer, to be + transformed. + + Returns + ------- + constrained : array_like + Array of constrained parameters which may be used in likelihood + evalation. + """ + # Inherited parameters + constrained = super(MarkovAutoregression, self).transform_params( + unconstrained) + + # Autoregressive + # TODO may provide unexpected results when some coefficients are not + # switching + for i in range(self.k_regimes): + s = self.parameters[i, 'autoregressive'] + constrained[s] = constrain_stationary_univariate( + unconstrained[s]) + + return constrained + + def untransform_params(self, constrained): + """ + Transform constrained parameters used in likelihood evaluation + to unconstrained parameters used by the optimizer + + Parameters + ---------- + constrained : array_like + Array of constrained parameters used in likelihood evalution, to be + transformed. + + Returns + ------- + unconstrained : array_like + Array of unconstrained parameters used by the optimizer. + """ + # Inherited parameters + unconstrained = super(MarkovAutoregression, self).untransform_params( + constrained) + + # Autoregressive + # TODO may provide unexpected results when some coefficients are not + # switching + for i in range(self.k_regimes): + s = self.parameters[i, 'autoregressive'] + unconstrained[s] = unconstrain_stationary_univariate( + constrained[s]) + + return unconstrained + + +class MarkovAutoregressionResults(markov_regression.MarkovRegressionResults): + r""" + Class to hold results from fitting a Markov switching autoregression model + + Parameters + ---------- + model : MarkovAutoregression instance + The fitted model instance + params : array + Fitted parameters + filter_results : HamiltonFilterResults or KimSmootherResults instance + The underlying filter and, optionally, smoother output + cov_type : string + The type of covariance matrix estimator to use. Can be one of 'approx', + 'opg', 'robust', or 'none'. + + Attributes + ---------- + model : Model instance + A reference to the model that was fit. + filter_results : HamiltonFilterResults or KimSmootherResults instance + The underlying filter and, optionally, smoother output + nobs : float + The number of observations used to fit the model. + params : array + The parameters of the model. + scale : float + This is currently set to 1.0 and not used by the model or its results. + + """ + pass + + +class MarkovAutoregressionResultsWrapper( + markov_regression.MarkovRegressionResultsWrapper): + pass +wrap.populate_wrapper(MarkovAutoregressionResultsWrapper, + MarkovAutoregressionResults) diff --git a/statsmodels/tsa/regime_switching/markov_regression.py b/statsmodels/tsa/regime_switching/markov_regression.py new file mode 100644 index 0000000..e1588aa --- /dev/null +++ b/statsmodels/tsa/regime_switching/markov_regression.py @@ -0,0 +1,464 @@ +""" +Markov switching regression models + +Author: Chad Fulton +License: BSD-3 +""" + +from __future__ import division, absolute_import, print_function + +import numpy as np +import statsmodels.base.wrapper as wrap + +from statsmodels.tsa.regime_switching import markov_switching + + +class MarkovRegression(markov_switching.MarkovSwitching): + r""" + First-order k-regime Markov switching regression model + + Parameters + ---------- + endog : array_like + The endogenous variable. + k_regimes : integer + The number of regimes. + trend : {'nc', 'c', 't', 'ct'} + Whether or not to include a trend. To include an intercept, time trend, + or both, set `trend='c'`, `trend='t'`, or `trend='ct'`. For no trend, + set `trend='nc'`. Default is an intercept. + exog : array_like, optional + Array of exogenous regressors, shaped nobs x k. + order : integer, optional + The order of the model describes the dependence of the likelihood on + previous regimes. This depends on the model in question and should be + set appropriately by subclasses. + exog_tvtp : array_like, optional + Array of exogenous or lagged variables to use in calculating + time-varying transition probabilities (TVTP). TVTP is only used if this + variable is provided. If an intercept is desired, a column of ones must + be explicitly included in this array. + switching_trend : boolean or iterable, optional + If a boolean, sets whether or not all trend coefficients are + switching across regimes. If an iterable, should be of length equal + to the number of trend variables, where each element is + a boolean describing whether the corresponding coefficient is + switching. Default is True. + switching_exog : boolean or iterable, optional + If a boolean, sets whether or not all regression coefficients are + switching across regimes. If an iterable, should be of length equal + to the number of exogenous variables, where each element is + a boolean describing whether the corresponding coefficient is + switching. Default is True. + switching_variance : boolean, optional + Whether or not there is regime-specific heteroskedasticity, i.e. + whether or not the error term has a switching variance. Default is + False. + + Notes + ----- + This model is new and API stability is not guaranteed, although changes + will be made in a backwards compatible way if possible. + + The model can be written as: + + .. math:: + + y_t = a_{S_t} + x_t' \beta_{S_t} + \varepsilon_t \\ + \varepsilon_t \sim N(0, \sigma_{S_t}^2) + + i.e. the model is a dynamic linear regression where the coefficients and + the variance of the error term may be switching across regimes. + + The `trend` is accomodated by prepending columns to the `exog` array. Thus + if `trend='c'`, the passed `exog` array should not already have a column of + ones. + + References + ---------- + Kim, Chang-Jin, and Charles R. Nelson. 1999. + "State-Space Models with Regime Switching: + Classical and Gibbs-Sampling Approaches with Applications". + MIT Press Books. The MIT Press. + + """ + + def __init__(self, endog, k_regimes, trend='c', exog=None, order=0, + exog_tvtp=None, switching_trend=True, switching_exog=True, + switching_variance=False, dates=None, freq=None, + missing='none'): + + # Properties + self.trend = trend + self.switching_trend = switching_trend + self.switching_exog = switching_exog + self.switching_variance = switching_variance + + # Exogenous data + self.k_exog, exog = markov_switching._prepare_exog(exog) + + # Trend + nobs = len(endog) + self.k_trend = 0 + self._k_exog = self.k_exog + trend_exog = None + if trend == 'c': + trend_exog = np.ones((nobs, 1)) + self.k_trend = 1 + elif trend == 't': + trend_exog = (np.arange(nobs) + 1)[:, np.newaxis] + self.k_trend = 1 + elif trend == 'ct': + trend_exog = np.c_[np.ones((nobs, 1)), + (np.arange(nobs) + 1)[:, np.newaxis]] + self.k_trend = 2 + if trend_exog is not None: + exog = trend_exog if exog is None else np.c_[trend_exog, exog] + self._k_exog += self.k_trend + + # Initialize the base model + super(MarkovRegression, self).__init__( + endog, k_regimes, order=order, exog_tvtp=exog_tvtp, exog=exog, + dates=dates, freq=freq, missing=missing) + + # Switching options + if self.switching_trend is True or self.switching_trend is False: + self.switching_trend = [self.switching_trend] * self.k_trend + elif not len(self.switching_trend) == self.k_trend: + raise ValueError('Invalid iterable passed to `switching_trend`.') + if self.switching_exog is True or self.switching_exog is False: + self.switching_exog = [self.switching_exog] * self.k_exog + elif not len(self.switching_exog) == self.k_exog: + raise ValueError('Invalid iterable passed to `switching_exog`.') + + self.switching_coeffs = ( + np.r_[self.switching_trend, + self.switching_exog].astype(bool).tolist()) + + # Parameters + self.parameters['exog'] = self.switching_coeffs + self.parameters['variance'] = [1] if self.switching_variance else [0] + + def predict_conditional(self, params): + """ + In-sample prediction, conditional on the current regime + + Parameters + ---------- + params : array_like + Array of parameters at which to perform prediction. + + Returns + ------- + predict : array_like + Array of predictions conditional on current, and possibly past, + regimes + """ + params = np.array(params, ndmin=1) + + # Since in the base model the values are the same across columns, we + # only compute a single column, and then expand it below. + predict = np.zeros((self.k_regimes, self.nobs), dtype=params.dtype) + + for i in range(self.k_regimes): + # Predict + if self._k_exog > 0: + coeffs = params[self.parameters[i, 'exog']] + predict[i] = np.dot(self.exog, coeffs) + + return predict[:, None, :] + + def _resid(self, params): + predict = np.repeat(self.predict_conditional(params), + self.k_regimes, axis=1) + return self.endog - predict + + def _conditional_likelihoods(self, params): + """ + Compute likelihoods conditional on the current period's regime + """ + + # Get residuals + resid = self._resid(params) + + # Compute the conditional likelihoods + variance = params[self.parameters['variance']].squeeze() + if self.switching_variance: + variance = np.reshape(variance, (self.k_regimes, 1, 1)) + + conditional_likelihoods = ( + np.exp(-0.5 * resid**2 / variance) / np.sqrt(2 * np.pi * variance)) + + return conditional_likelihoods + + def filter(self, *args, **kwargs): + kwargs.setdefault('results_class', MarkovRegressionResults) + kwargs.setdefault('results_wrapper_class', + MarkovRegressionResultsWrapper) + return super(MarkovRegression, self).filter(*args, **kwargs) + filter.__doc__ = markov_switching.MarkovSwitching.filter.__doc__ + + def smooth(self, *args, **kwargs): + kwargs.setdefault('results_class', MarkovRegressionResults) + kwargs.setdefault('results_wrapper_class', + MarkovRegressionResultsWrapper) + return super(MarkovRegression, self).smooth(*args, **kwargs) + smooth.__doc__ = markov_switching.MarkovSwitching.smooth.__doc__ + + def _em_iteration(self, params0): + """ + EM iteration + + Notes + ----- + This uses the inherited _em_iteration method for computing the + non-TVTP transition probabilities and then performs the EM step for + regression coefficients and variances. + """ + # Inherited parameters + result, params1 = super(MarkovRegression, self)._em_iteration(params0) + + tmp = np.sqrt(result.smoothed_marginal_probabilities) + + # Regression coefficients + coeffs = None + if self._k_exog > 0: + coeffs = self._em_exog(result, self.endog, self.exog, + self.parameters.switching['exog'], tmp) + for i in range(self.k_regimes): + params1[self.parameters[i, 'exog']] = coeffs[i] + + # Variances + params1[self.parameters['variance']] = self._em_variance( + result, self.endog, self.exog, coeffs, tmp) + # params1[self.parameters['variance']] = 0.33282116 + + return result, params1 + + def _em_exog(self, result, endog, exog, switching, tmp=None): + """ + EM step for regression coefficients + """ + k_exog = exog.shape[1] + coeffs = np.zeros((self.k_regimes, k_exog)) + + # First, estimate non-switching coefficients + if not np.all(switching): + nonswitching_exog = exog[:, ~switching] + nonswitching_coeffs = ( + np.dot(np.linalg.pinv(nonswitching_exog), endog)) + coeffs[:, ~switching] = nonswitching_coeffs + endog = endog - np.dot(nonswitching_exog, nonswitching_coeffs) + + # Next, get switching coefficients + if np.any(switching): + switching_exog = exog[:, switching] + if tmp is None: + tmp = np.sqrt(result.smoothed_marginal_probabilities) + for i in range(self.k_regimes): + tmp_endog = tmp[i] * endog + tmp_exog = tmp[i][:, np.newaxis] * switching_exog + coeffs[i, switching] = ( + np.dot(np.linalg.pinv(tmp_exog), tmp_endog)) + + return coeffs + + def _em_variance(self, result, endog, exog, betas, tmp=None): + """ + EM step for variances + """ + k_exog = 0 if exog is None else exog.shape[1] + + if self.switching_variance: + variance = np.zeros(self.k_regimes) + for i in range(self.k_regimes): + if k_exog > 0: + resid = endog - np.dot(exog, betas[i]) + else: + resid = endog + variance[i] = ( + np.sum(resid**2 * + result.smoothed_marginal_probabilities[i]) / + np.sum(result.smoothed_marginal_probabilities[i])) + else: + variance = 0 + if tmp is None: + tmp = np.sqrt(result.smoothed_marginal_probabilities) + for i in range(self.k_regimes): + tmp_endog = tmp[i] * endog + if k_exog > 0: + tmp_exog = tmp[i][:, np.newaxis] * exog + resid = tmp_endog - np.dot(tmp_exog, betas[i]) + else: + resid = tmp_endog + variance += np.sum(resid**2) + variance /= self.nobs + return variance + + @property + def start_params(self): + """ + (array) Starting parameters for maximum likelihood estimation. + + Notes + ----- + These are not very sophisticated and / or good. We set equal transition + probabilities and interpolate regression coefficients between zero and + the OLS estimates, where the interpolation is based on the regime + number. We rely heavily on the EM algorithm to quickly find much better + starting parameters, which are then used by the typical scoring + approach. + """ + # Inherited parameters + params = markov_switching.MarkovSwitching.start_params.fget(self) + + # Regression coefficients + if self._k_exog > 0: + beta = np.dot(np.linalg.pinv(self.exog), self.endog) + variance = np.var(self.endog - np.dot(self.exog, beta)) + + if np.any(self.switching_coeffs): + for i in range(self.k_regimes): + params[self.parameters[i, 'exog']] = ( + beta * (i / self.k_regimes)) + else: + params[self.parameters['exog']] = beta + else: + variance = np.var(self.endog) + + # Variances + if self.switching_variance: + params[self.parameters['variance']] = ( + np.linspace(variance / 10., variance, num=self.k_regimes)) + else: + params[self.parameters['variance']] = variance + + return params + + @property + def param_names(self): + """ + (list of str) List of human readable parameter names (for parameters + actually included in the model). + """ + # Inherited parameters + param_names = np.array( + markov_switching.MarkovSwitching.param_names.fget(self), + dtype=object) + + # Regression coefficients + if np.any(self.switching_coeffs): + for i in range(self.k_regimes): + param_names[self.parameters[i, 'exog']] = [ + '%s[%d]' % (exog_name, i) for exog_name in self.exog_names] + else: + param_names[self.parameters['exog']] = self.exog_names + + # Variances + if self.switching_variance: + for i in range(self.k_regimes): + param_names[self.parameters[i, 'variance']] = 'sigma2[%d]' % i + else: + param_names[self.parameters['variance']] = 'sigma2' + + return param_names.tolist() + + def transform_params(self, unconstrained): + """ + Transform unconstrained parameters used by the optimizer to constrained + parameters used in likelihood evaluation + + Parameters + ---------- + unconstrained : array_like + Array of unconstrained parameters used by the optimizer, to be + transformed. + + Returns + ------- + constrained : array_like + Array of constrained parameters which may be used in likelihood + evalation. + """ + # Inherited parameters + constrained = super(MarkovRegression, self).transform_params( + unconstrained) + + # Nothing to do for regression coefficients + constrained[self.parameters['exog']] = ( + unconstrained[self.parameters['exog']]) + + # Force variances to be positive + constrained[self.parameters['variance']] = ( + unconstrained[self.parameters['variance']]**2) + + return constrained + + def untransform_params(self, constrained): + """ + Transform constrained parameters used in likelihood evaluation + to unconstrained parameters used by the optimizer + + Parameters + ---------- + constrained : array_like + Array of constrained parameters used in likelihood evalution, to be + transformed. + + Returns + ------- + unconstrained : array_like + Array of unconstrained parameters used by the optimizer. + """ + # Inherited parameters + unconstrained = super(MarkovRegression, self).untransform_params( + constrained) + + # Nothing to do for regression coefficients + unconstrained[self.parameters['exog']] = ( + constrained[self.parameters['exog']]) + + # Force variances to be positive + unconstrained[self.parameters['variance']] = ( + constrained[self.parameters['variance']]**0.5) + + return unconstrained + + +class MarkovRegressionResults(markov_switching.MarkovSwitchingResults): + r""" + Class to hold results from fitting a Markov switching regression model + + Parameters + ---------- + model : MarkovRegression instance + The fitted model instance + params : array + Fitted parameters + filter_results : HamiltonFilterResults or KimSmootherResults instance + The underlying filter and, optionally, smoother output + cov_type : string + The type of covariance matrix estimator to use. Can be one of 'approx', + 'opg', 'robust', or 'none'. + + Attributes + ---------- + model : Model instance + A reference to the model that was fit. + filter_results : HamiltonFilterResults or KimSmootherResults instance + The underlying filter and, optionally, smoother output + nobs : float + The number of observations used to fit the model. + params : array + The parameters of the model. + scale : float + This is currently set to 1.0 and not used by the model or its results. + + """ + pass + + +class MarkovRegressionResultsWrapper( + markov_switching.MarkovSwitchingResultsWrapper): + pass +wrap.populate_wrapper(MarkovRegressionResultsWrapper, MarkovRegressionResults) diff --git a/statsmodels/tsa/regime_switching/markov_switching.py b/statsmodels/tsa/regime_switching/markov_switching.py new file mode 100644 index 0000000..462c4a6 --- /dev/null +++ b/statsmodels/tsa/regime_switching/markov_switching.py @@ -0,0 +1,2218 @@ +""" +Markov switching models + +Author: Chad Fulton +License: BSD-3 +""" + +from __future__ import division, absolute_import, print_function + +import warnings +import numpy as np +import pandas as pd +from statsmodels.compat.collections import OrderedDict + +from scipy.misc import logsumexp +from scipy.stats import norm +from statsmodels.base.data import PandasData +import statsmodels.tsa.base.tsa_model as tsbase +from statsmodels.tools.data import _is_using_pandas +from statsmodels.tools.tools import Bunch +from statsmodels.tools.numdiff import approx_fprime_cs, approx_hess_cs +from statsmodels.tools.decorators import cache_readonly, resettable_cache +from statsmodels.tools.eval_measures import aic, bic, hqic +from statsmodels.tools.tools import pinv_extended +from statsmodels.tools.sm_exceptions import EstimationWarning +import statsmodels.base.wrapper as wrap + + +from statsmodels.tsa.statespace.tools import find_best_blas_type +from statsmodels.tsa.regime_switching._hamilton_filter import ( + shamilton_filter, dhamilton_filter, chamilton_filter, zhamilton_filter) + +prefix_hamilton_filter_map = { + 's': shamilton_filter, 'd': dhamilton_filter, + 'c': chamilton_filter, 'z': zhamilton_filter +} + + +def _prepare_exog(exog): + k_exog = 0 + if exog is not None: + exog_is_using_pandas = _is_using_pandas(exog, None) + if not exog_is_using_pandas: + exog = np.asarray(exog) + + # Make sure we have 2-dimensional array + if exog.ndim == 1: + if not exog_is_using_pandas: + exog = exog[:, None] + else: + exog = pd.DataFrame(exog) + + k_exog = exog.shape[1] + return k_exog, exog + + +def _logistic(x): + """ + Note that this is not a vectorized function + """ + x = np.array(x) + # np.exp(x) / (1 + np.exp(x)) + if x.ndim == 0: + y = np.reshape(x, (1, 1, 1)) + # np.exp(x[i]) / (1 + np.sum(np.exp(x[:]))) + elif x.ndim == 1: + y = np.reshape(x, (len(x), 1, 1)) + # np.exp(x[i,t]) / (1 + np.sum(np.exp(x[:,t]))) + elif x.ndim == 2: + y = np.reshape(x, (x.shape[0], 1, x.shape[1])) + # np.exp(x[i,j,t]) / (1 + np.sum(np.exp(x[:,j,t]))) + elif x.ndim == 3: + y = x + else: + raise NotImplementedError + + tmp = np.c_[np.zeros((y.shape[-1], y.shape[1], 1)), y.T].T + evaluated = np.reshape(np.exp(y - logsumexp(tmp, axis=0)), x.shape) + + return evaluated + + +def _partials_logistic(x): + """ + Note that this is not a vectorized function + """ + tmp = _logistic(x) + + # k + if tmp.ndim == 0: + return tmp - tmp**2 + # k x k + elif tmp.ndim == 1: + partials = np.diag(tmp - tmp**2) + # k x k x t + elif tmp.ndim == 2: + partials = [np.diag(tmp[:, t] - tmp[:, t]**2) + for t in range(tmp.shape[1])] + shape = tmp.shape[1], tmp.shape[0], tmp.shape[0] + partials = np.concatenate(partials).reshape(shape).transpose((1,2,0)) + # k x k x j x t + else: + partials = [[np.diag(tmp[:, j, t] - tmp[:, j, t]**2) + for t in range(tmp.shape[2])] + for j in range(tmp.shape[1])] + shape = tmp.shape[1], tmp.shape[2], tmp.shape[0], tmp.shape[0] + partials = np.concatenate(partials).reshape(shape).transpose((2,3,0,1)) + + for i in range(tmp.shape[0]): + for j in range(i): + partials[i, j, ...] = -tmp[i, ...] * tmp[j, ...] + partials[j, i, ...] = partials[i, j, ...] + return partials + + +def py_hamilton_filter(initial_probabilities, regime_transition, + conditional_likelihoods): + """ + Hamilton filter using pure Python + + Parameters + ---------- + initial_probabilities : array + Array of initial probabilities, shaped (k_regimes,). + regime_transition : array + Matrix of regime transition probabilities, shaped either + (k_regimes, k_regimes, 1) or if there are time-varying transition + probabilities (k_regimes, k_regimes, nobs). + conditional_likelihoods : array + Array of likelihoods conditional on the last `order+1` regimes, + shaped (k_regimes,)*(order + 1) + (nobs,). + + Returns + ------- + filtered_marginal_probabilities : array + Array containing Pr[S_t=s_t | Y_t] - the probability of being in each + regime conditional on time t information. Shaped (k_regimes, nobs). + predicted_joint_probabilities : array + Array containing Pr[S_t=s_t, ..., S_{t-order}=s_{t-order} | Y_{t-1}] - + the joint probability of the current and previous `order` periods + being in each combination of regimes conditional on time t-1 + information. Shaped (k_regimes,) * (order + 1) + (nobs,). + joint_likelihoods : array + Array of likelihoods condition on time t information, shaped (nobs,). + filtered_joint_probabilities : array + Array containing Pr[S_t=s_t, ..., S_{t-order}=s_{t-order} | Y_{t}] - + the joint probability of the current and previous `order` periods + being in each combination of regimes conditional on time t + information. Shaped (k_regimes,) * (order + 1) + (nobs,). + """ + + # Dimensions + k_regimes = len(initial_probabilities) + nobs = conditional_likelihoods.shape[-1] + order = conditional_likelihoods.ndim - 2 + dtype = conditional_likelihoods.dtype + + # Storage + # Pr[S_t = s_t | Y_t] + filtered_marginal_probabilities = ( + np.zeros((k_regimes, nobs), dtype=dtype)) + # Pr[S_t = s_t, ... S_{t-r} = s_{t-r} | Y_{t-1}] + predicted_joint_probabilities = np.zeros( + (k_regimes,) * (order + 1) + (nobs,), dtype=dtype) + # f(y_t | Y_{t-1}) + joint_likelihoods = np.zeros((nobs,), dtype) + # Pr[S_t = s_t, ... S_{t-r} = s_{t-r} | Y_t] + filtered_joint_probabilities = np.zeros( + (k_regimes,) * (order + 1) + (nobs + 1,), dtype=dtype) + + # Initial probabilities + filtered_marginal_probabilities[:, 0] = initial_probabilities + tmp = np.copy(initial_probabilities) + shape = (k_regimes, k_regimes) + for i in range(order): + tmp = np.reshape(regime_transition[..., i], shape + (1,) * i) * tmp + filtered_joint_probabilities[..., 0] = tmp + + # Reshape regime_transition so we can use broadcasting + shape = (k_regimes, k_regimes) + shape += (1,) * (order-1) + shape += (regime_transition.shape[-1],) + regime_transition = np.reshape(regime_transition, shape) + + # Get appropriate subset of transition matrix + if regime_transition.shape[-1] > 1: + regime_transition = regime_transition[..., order:] + + # Hamilton filter iterations + transition_t = 0 + for t in range(nobs): + if regime_transition.shape[-1] > 1: + transition_t = t + + # S_t, S_{t-1}, ..., S_{t-r} | t-1, stored at zero-indexed location t + predicted_joint_probabilities[..., t] = ( + # S_t | S_{t-1} + regime_transition[..., transition_t] * + # S_{t-1}, S_{t-2}, ..., S_{t-r} | t-1 + filtered_joint_probabilities[..., t].sum(axis=-1)) + + # f(y_t, S_t, ..., S_{t-r} | t-1) + tmp = (conditional_likelihoods[..., t] * + predicted_joint_probabilities[..., t]) + # f(y_t | t-1) + joint_likelihoods[t] = np.sum(tmp) + + # S_t, S_{t-1}, ..., S_{t-r} | t, stored at index t+1 + filtered_joint_probabilities[..., t+1] = ( + tmp / joint_likelihoods[t]) + + # S_t | t + filtered_marginal_probabilities = filtered_joint_probabilities[..., 1:] + for i in range(1, filtered_marginal_probabilities.ndim - 1): + filtered_marginal_probabilities = np.sum( + filtered_marginal_probabilities, axis=-2) + + return (filtered_marginal_probabilities, predicted_joint_probabilities, + joint_likelihoods, filtered_joint_probabilities[..., 1:]) + + +def cy_hamilton_filter(initial_probabilities, regime_transition, + conditional_likelihoods): + """ + Hamilton filter using Cython inner loop + + Parameters + ---------- + initial_probabilities : array + Array of initial probabilities, shaped (k_regimes,). + regime_transition : array + Matrix of regime transition probabilities, shaped either + (k_regimes, k_regimes, 1) or if there are time-varying transition + probabilities (k_regimes, k_regimes, nobs). + conditional_likelihoods : array + Array of likelihoods conditional on the last `order+1` regimes, + shaped (k_regimes,)*(order + 1) + (nobs,). + + Returns + ------- + filtered_marginal_probabilities : array + Array containing Pr[S_t=s_t | Y_t] - the probability of being in each + regime conditional on time t information. Shaped (k_regimes, nobs). + predicted_joint_probabilities : array + Array containing Pr[S_t=s_t, ..., S_{t-order}=s_{t-order} | Y_{t-1}] - + the joint probability of the current and previous `order` periods + being in each combination of regimes conditional on time t-1 + information. Shaped (k_regimes,) * (order + 1) + (nobs,). + joint_likelihoods : array + Array of likelihoods condition on time t information, shaped (nobs,). + filtered_joint_probabilities : array + Array containing Pr[S_t=s_t, ..., S_{t-order}=s_{t-order} | Y_{t}] - + the joint probability of the current and previous `order` periods + being in each combination of regimes conditional on time t + information. Shaped (k_regimes,) * (order + 1) + (nobs,). + """ + + # Dimensions + k_regimes = len(initial_probabilities) + nobs = conditional_likelihoods.shape[-1] + order = conditional_likelihoods.ndim - 2 + dtype = conditional_likelihoods.dtype + + # Storage + # Pr[S_t = s_t | Y_t] + filtered_marginal_probabilities = ( + np.zeros((k_regimes, nobs), dtype=dtype)) + # Pr[S_t = s_t, ... S_{t-r} = s_{t-r} | Y_{t-1}] + # Has k_regimes^(order+1) elements + predicted_joint_probabilities = np.zeros( + (k_regimes,) * (order + 1) + (nobs,), dtype=dtype) + # f(y_t | Y_{t-1}) + joint_likelihoods = np.zeros((nobs,), dtype) + # Pr[S_t = s_t, ... S_{t-r+1} = s_{t-r+1} | Y_t] + # Has k_regimes^order elements + filtered_joint_probabilities = np.zeros( + (k_regimes,) * (order + 1) + (nobs + 1,), dtype=dtype) + + # Initial probabilities + filtered_marginal_probabilities[:, 0] = initial_probabilities + tmp = np.copy(initial_probabilities) + shape = (k_regimes, k_regimes) + transition_t = 0 + for i in range(order): + if regime_transition.shape[-1] > 1: + transition_t = i + tmp = np.reshape(regime_transition[..., transition_t], + shape + (1,) * i) * tmp + filtered_joint_probabilities[..., 0] = tmp + + # Get appropriate subset of transition matrix + if regime_transition.shape[-1] > 1: + regime_transition = regime_transition[..., order:] + + # Run Cython filter iterations + prefix, dtype, _ = find_best_blas_type(( + regime_transition, conditional_likelihoods, joint_likelihoods, + predicted_joint_probabilities, filtered_joint_probabilities)) + func = prefix_hamilton_filter_map[prefix] + func(nobs, k_regimes, order, regime_transition, + conditional_likelihoods.reshape(k_regimes**(order+1), nobs), + joint_likelihoods, + predicted_joint_probabilities.reshape(k_regimes**(order+1), nobs), + filtered_joint_probabilities.reshape(k_regimes**(order+1), nobs+1)) + + # S_t | t + filtered_marginal_probabilities = filtered_joint_probabilities[..., 1:] + for i in range(1, filtered_marginal_probabilities.ndim - 1): + filtered_marginal_probabilities = np.sum( + filtered_marginal_probabilities, axis=-2) + + return (filtered_marginal_probabilities, predicted_joint_probabilities, + joint_likelihoods, filtered_joint_probabilities[..., 1:]) + + +def py_kim_smoother(regime_transition, filtered_marginal_probabilities, + predicted_joint_probabilities, + filtered_joint_probabilities): + """ + Kim smoother using pure Python + + Parameters + ---------- + regime_transition : array + Matrix of regime transition probabilities, shaped either + (k_regimes, k_regimes, 1) or if there are time-varying transition + probabilities (k_regimes, k_regimes, nobs). + filtered_marginal_probabilities : array + Array containing Pr[S_t=s_t | Y_t] - the probability of being in each + regime conditional on time t information. Shaped (k_regimes, nobs). + predicted_joint_probabilities : array + Array containing Pr[S_t=s_t, ..., S_{t-order}=s_{t-order} | Y_{t-1}] - + the joint probability of the current and previous `order` periods + being in each combination of regimes conditional on time t-1 + information. Shaped (k_regimes,) * (order + 1) + (nobs,). + filtered_joint_probabilities : array + Array containing Pr[S_t=s_t, ..., S_{t-order}=s_{t-order} | Y_{t}] - + the joint probability of the current and previous `order` periods + being in each combination of regimes conditional on time t + information. Shaped (k_regimes,) * (order + 1) + (nobs,). + + Returns + ------- + smoothed_joint_probabilities : array + Array containing Pr[S_t=s_t, ..., S_{t-order}=s_{t-order} | Y_T] - + the joint probability of the current and previous `order` periods + being in each combination of regimes conditional on all information. + Shaped (k_regimes,) * (order + 1) + (nobs,). + smoothed_marginal_probabilities : array + Array containing Pr[S_t=s_t | Y_T] - the probability of being in each + regime conditional on all information. Shaped (k_regimes, nobs). + """ + + # Dimensions + k_regimes = filtered_joint_probabilities.shape[0] + nobs = filtered_joint_probabilities.shape[-1] + order = filtered_joint_probabilities.ndim - 2 + dtype = filtered_joint_probabilities.dtype + + # Storage + smoothed_joint_probabilities = np.zeros( + (k_regimes,) * (order + 1) + (nobs,), dtype=dtype) + smoothed_marginal_probabilities = np.zeros((k_regimes, nobs), dtype=dtype) + + # S_T, S_{T-1}, ..., S_{T-r} | T + smoothed_joint_probabilities[..., -1] = ( + filtered_joint_probabilities[..., -1]) + + # Reshape transition so we can use broadcasting + shape = (k_regimes, k_regimes) + shape += (1,) * (order) + shape += (regime_transition.shape[-1],) + regime_transition = np.reshape(regime_transition, shape) + + # Get appropriate subset of transition matrix + if regime_transition.shape[-1] > 1: + regime_transition = regime_transition[..., order:] + + # Kim smoother iterations + transition_t = 0 + for t in range(nobs - 2, -1, -1): + if regime_transition.shape[-1] > 1: + transition_t = t+1 + + # S_{t+1}, S_t, ..., S_{t-r+1} | t + # x = predicted_joint_probabilities[..., t] + x = (filtered_joint_probabilities[..., t] * + regime_transition[..., transition_t]) + # S_{t+1}, S_t, ..., S_{t-r+2} | T / S_{t+1}, S_t, ..., S_{t-r+2} | t + y = (smoothed_joint_probabilities[..., t+1] / + predicted_joint_probabilities[..., t+1]) + # S_{t+1}, S_t, ..., S_{t-r+1} | T + smoothed_joint_probabilities[..., t] = (x * y[..., None]).sum(axis=0) + + # Get smoothed marginal probabilities S_t | T by integrating out + # S_{t-k+1}, S_{t-k+2}, ..., S_{t-1} + smoothed_marginal_probabilities = smoothed_joint_probabilities + for i in range(1, smoothed_marginal_probabilities.ndim - 1): + smoothed_marginal_probabilities = np.sum( + smoothed_marginal_probabilities, axis=-2) + + return smoothed_joint_probabilities, smoothed_marginal_probabilities + + +class MarkovSwitchingParams(object): + """ + Class to hold parameters in Markov switching models + + Parameters + ---------- + k_regimes : int + The number of regimes between which parameters may switch. + + Notes + ----- + + The purpose is to allow selecting parameter indexes / slices based on + parameter type, regime number, or both. + + Parameters are lexicographically ordered in the following way: + + 1. Named type string (e.g. "autoregressive") + 2. Number (e.g. the first autoregressive parameter, then the second) + 3. Regime (if applicable) + + Parameter blocks are set using dictionary setter notation where the key + is the named type string and the value is a list of boolean values + indicating whether a given parameter is switching or not. + + For example, consider the following code: + + parameters = MarkovSwitchingParams(k_regimes=2) + parameters['regime_transition'] = [1,1] + parameters['exog'] = [0, 1] + + This implies the model has 7 parameters: 4 "regime_transition"-related + parameters (2 parameters that each switch according to regimes) and 3 + "exog"-related parameters (1 parameter that does not switch, and one 1 that + does). + + The order of parameters is then: + + 1. The first "regime_transition" parameter, regime 0 + 2. The first "regime_transition" parameter, regime 1 + 3. The second "regime_transition" parameter, regime 1 + 4. The second "regime_transition" parameter, regime 1 + 5. The first "exog" parameter + 6. The second "exog" parameter, regime 0 + 7. The second "exog" parameter, regime 1 + + Retrieving indexes / slices is done through dictionary getter notation. + There are three options for the dictionary key: + + - Regime number (zero-indexed) + - Named type string (e.g. "autoregressive") + - Regime number and named type string + + In the above example, consider the following getters: + + >>> parameters[0] + array([0, 2, 4, 6]) + >>> parameters[1] + array([1, 3, 5, 6]) + >>> parameters['exog'] + slice(4, 7, None) + >>> parameters[0, 'exog'] + [4, 6] + >>> parameters[1, 'exog'] + [4, 7] + + Notice that in the last two examples, both lists of indexes include 4. + That's because that is the index of the the non-switching first "exog" + parameter, which should be selected regardless of the regime. + + In addition to the getter, the `k_parameters` attribute is an OrderedDict + with the named type strings as the keys. It can be used to get the total + number of parameters of each type: + + >>> parameters.k_parameters['regime_transition'] + 4 + >>> parameters.k_parameters['exog'] + 3 + + """ + def __init__(self, k_regimes): + self.k_regimes = k_regimes + + self.k_params = 0 + self.k_parameters = OrderedDict() + self.switching = OrderedDict() + self.slices_purpose = OrderedDict() + self.relative_index_regime_purpose = [ + OrderedDict() for i in range(self.k_regimes)] + self.index_regime_purpose = [ + OrderedDict() for i in range(self.k_regimes)] + self.index_regime = [[] for i in range(self.k_regimes)] + + def __getitem__(self, key): + _type = type(key) + + # Get a slice for a block of parameters by purpose + if _type is str: + return self.slices_purpose[key] + # Get a slice for a block of parameters by regime + elif _type is int: + return self.index_regime[key] + elif _type is tuple: + if not len(key) == 2: + raise IndexError('Invalid index') + if type(key[1]) == str and type(key[0]) == int: + return self.index_regime_purpose[key[0]][key[1]] + elif type(key[0]) == str and type(key[1]) == int: + return self.index_regime_purpose[key[1]][key[0]] + else: + raise IndexError('Invalid index') + else: + raise IndexError('Invalid index') + + def __setitem__(self, key, value): + _type = type(key) + + if _type is str: + value = np.array(value, dtype=bool, ndmin=1) + k_params = self.k_params + self.k_parameters[key] = ( + value.size + np.sum(value) * (self.k_regimes - 1)) + self.k_params += self.k_parameters[key] + self.switching[key] = value + self.slices_purpose[key] = np.s_[k_params:self.k_params] + + for j in range(self.k_regimes): + self.relative_index_regime_purpose[j][key] = [] + self.index_regime_purpose[j][key] = [] + + offset = 0 + for i in range(value.size): + switching = value[i] + for j in range(self.k_regimes): + # Non-switching parameters + if not switching: + self.relative_index_regime_purpose[j][key].append( + offset) + # Switching parameters + else: + self.relative_index_regime_purpose[j][key].append( + offset + j) + offset += 1 if not switching else self.k_regimes + + for j in range(self.k_regimes): + offset = 0 + indices = [] + for k, v in self.relative_index_regime_purpose[j].items(): + v = (np.r_[v] + offset).tolist() + self.index_regime_purpose[j][k] = v + indices.append(v) + offset += self.k_parameters[k] + self.index_regime[j] = np.concatenate(indices).astype(int) + else: + raise IndexError('Invalid index') + + +class MarkovSwitching(tsbase.TimeSeriesModel): + """ + First-order k-regime Markov switching model + + Parameters + ---------- + endog : array_like + The endogenous variable. + k_regimes : integer + The number of regimes. + order : integer, optional + The order of the model describes the dependence of the likelihood on + previous regimes. This depends on the model in question and should be + set appropriately by subclasses. + exog_tvtp : array_like, optional + Array of exogenous or lagged variables to use in calculating + time-varying transition probabilities (TVTP). TVTP is only used if this + variable is provided. If an intercept is desired, a column of ones must + be explicitly included in this array. + + Notes + ----- + This model is new and API stability is not guaranteed, although changes + will be made in a backwards compatible way if possible. + + References + ---------- + Kim, Chang-Jin, and Charles R. Nelson. 1999. + "State-Space Models with Regime Switching: + Classical and Gibbs-Sampling Approaches with Applications". + MIT Press Books. The MIT Press. + + """ + + def __init__(self, endog, k_regimes, order=0, exog_tvtp=None, exog=None, + dates=None, freq=None, missing='none'): + + # Properties + self.k_regimes = k_regimes + self.tvtp = exog_tvtp is not None + # The order of the model may be overridden in subclasses + self.order = order + + # Exogenous data + # TODO add checks for exog_tvtp consistent shape and indices + self.k_tvtp, self.exog_tvtp = _prepare_exog(exog_tvtp) + + # Initialize the base model + super(MarkovSwitching, self).__init__(endog, exog, dates=dates, + freq=freq, missing=missing) + + # Dimensions + self.nobs = self.endog.shape[0] + + # Sanity checks + if self.endog.ndim > 1 and self.endog.shape[1] > 1: + raise ValueError('Must have univariate endogenous data.') + if self.k_regimes < 2: + raise ValueError('Markov switching models must have at least two' + ' regimes.') + if not(self.exog_tvtp is None or self.exog_tvtp.shape[0] == self.nobs): + raise ValueError('Time-varying transition probabilities exogenous' + ' array must have the same number of observations' + ' as the endogenous array.') + + # Parameters + self.parameters = MarkovSwitchingParams(self.k_regimes) + k_transition = self.k_regimes - 1 + if self.tvtp: + k_transition *= self.k_tvtp + self.parameters['regime_transition'] = [1] * k_transition + + # Internal model properties: default is steady-state initialization + self._initialization = 'steady-state' + self._initial_probabilities = None + + @property + def k_params(self): + """ + (int) Number of parameters in the model + """ + return self.parameters.k_params + + def initialize_steady_state(self): + """ + Set initialization of regime probabilities to be steady-state values + + Notes + ----- + Only valid if there are not time-varying transition probabilities. + + """ + if self.tvtp: + raise ValueError('Cannot use steady-state initialization when' + ' the regime transition matrix is time-varying.') + + self._initialization = 'steady-state' + self._initial_probabilities = None + + def initialize_known(self, probabilities, tol=1e-8): + """ + Set initialization of regime probabilities to use known values + """ + self._initialization = 'known' + probabilities = np.array(probabilities, ndmin=1) + if not probabilities.shape == (self.k_regimes,): + raise ValueError('Initial probabilities must be a vector of shape' + ' (k_regimes,).') + if not np.abs(np.sum(probabilities) - 1) < tol: + raise ValueError('Initial probabilities vector must sum to one.') + self._initial_probabilities = probabilities + + def initial_probabilities(self, params, regime_transition=None): + """ + Retrieve initial probabilities + """ + params = np.array(params, ndmin=1) + if self._initialization == 'steady-state': + if regime_transition is None: + regime_transition = self.regime_transition_matrix(params) + if regime_transition.ndim == 3: + regime_transition = regime_transition[..., 0] + m = regime_transition.shape[0] + A = np.c_[(np.eye(m) - regime_transition).T, np.ones(m)].T + try: + probabilities = np.linalg.pinv(A)[:, -1] + except np.linalg.LinAlgError: + raise RuntimeError('Steady-state probabilities could not be' + ' constructed.') + elif self._initialization == 'known': + probabilities = self._initial_probabilities + else: + raise RuntimeError('Invalid initialization method selected.') + + return probabilities + + def _regime_transition_matrix_tvtp(self, params, exog_tvtp=None): + if exog_tvtp is None: + exog_tvtp = self.exog_tvtp + nobs = len(exog_tvtp) + + regime_transition_matrix = np.zeros( + (self.k_regimes, self.k_regimes, nobs), + dtype=np.promote_types(np.float64, params.dtype)) + + # Compute the predicted values from the regression + for i in range(self.k_regimes): + coeffs = params[self.parameters[i, 'regime_transition']] + regime_transition_matrix[:-1, i, :] = np.dot( + exog_tvtp, + np.reshape(coeffs, (self.k_regimes-1, self.k_tvtp)).T).T + + # Perform the logistic transformation + tmp = np.c_[np.zeros((nobs, self.k_regimes, 1)), + regime_transition_matrix[:-1, :, :].T].T + regime_transition_matrix[:-1, :, :] = np.exp( + regime_transition_matrix[:-1, :, :] - logsumexp(tmp, axis=0)) + + # Compute the last column of the transition matrix + regime_transition_matrix[-1, :, :] = ( + 1 - np.sum(regime_transition_matrix[:-1, :, :], axis=0)) + + return regime_transition_matrix + + def regime_transition_matrix(self, params, exog_tvtp=None): + """ + Construct the left-stochastic transition matrix + + Notes + ----- + This matrix will either be shaped (k_regimes, k_regimes, 1) or if there + are time-varying transition probabilities, it will be shaped + (k_regimes, k_regimes, nobs). + + The (i,j)th element of this matrix is the probability of transitioning + from regime j to regime i; thus the previous regime is represented in a + column and the next regime is represented by a row. + + It is left-stochastic, meaning that each column sums to one (because + it is certain that from one regime (j) you will transition to *some + other regime*). + + """ + params = np.array(params, ndmin=1) + if not self.tvtp: + regime_transition_matrix = np.zeros( + (self.k_regimes, self.k_regimes, 1), + dtype=np.promote_types(np.float64, params.dtype)) + regime_transition_matrix[:-1, :, 0] = np.reshape( + params[self.parameters['regime_transition']], + (self.k_regimes-1, self.k_regimes)) + regime_transition_matrix[-1, :, 0] = ( + 1 - np.sum(regime_transition_matrix[:-1, :, 0], axis=0)) + else: + regime_transition_matrix = ( + self._regime_transition_matrix_tvtp(params, exog_tvtp)) + + return regime_transition_matrix + + def predict(self, params, start=None, end=None, probabilities=None, + conditional=False): + """ + In-sample prediction and out-of-sample forecasting + + Parameters + ---------- + params : array + Parameters at which to form predictions + start : int, str, or datetime, optional + Zero-indexed observation number at which to start forecasting, + i.e., the first forecast is start. Can also be a date string to + parse or a datetime type. Default is the the zeroth observation. + end : int, str, or datetime, optional + Zero-indexed observation number at which to end forecasting, i.e., + the last forecast is end. Can also be a date string to + parse or a datetime type. However, if the dates index does not + have a fixed frequency, end must be an integer index if you + want out of sample prediction. Default is the last observation in + the sample. + probabilities : string or array_like, optional + Specifies the weighting probabilities used in constructing the + prediction as a weighted average. If a string, can be 'predicted', + 'filtered', or 'smoothed'. Otherwise can be an array of + probabilities to use. Default is smoothed. + conditional: boolean or int, optional + Whether or not to return predictions conditional on current or + past regimes. If False, returns a single vector of weighted + predictions. If True or 1, returns predictions conditional on the + current regime. For larger integers, returns predictions + conditional on the current regime and some number of past regimes. + + Returns + ------- + predict : array + Array of out of in-sample predictions and / or out-of-sample + forecasts. + """ + if start is None: + start = 0 + + # Handle start and end (e.g. dates) + start = self._get_predict_start(start) + end, out_of_sample = self._get_predict_end(end) + + # Perform in-sample prediction + predict = self.predict_conditional(params) + squeezed = np.squeeze(predict) + + # Check if we need to do weighted averaging + if squeezed.ndim - 1 > conditional: + # Determine in-sample weighting probabilities + if probabilities is None or probabilities == 'smoothed': + results = self.smooth(params, return_raw=True) + probabilities = results.smoothed_joint_probabilities + elif probabilities == 'filtered': + results = self.filter(params, return_raw=True) + probabilities = results.filtered_joint_probabilities + elif probabilities == 'predicted': + results = self.filter(params, return_raw=True) + probabilities = results.predicted_joint_probabilities + + # Compute weighted average + predict = (predict * probabilities) + for i in range(predict.ndim - 1 - int(conditional)): + predict = np.sum(predict, axis=-2) + else: + predict = squeezed + + return predict[start:end + 1] + + def predict_conditional(self, params): + """ + In-sample prediction, conditional on the current, and possibly past, + regimes + + Parameters + ---------- + params : array_like + Array of parameters at which to perform prediction. + + Returns + ------- + predict : array_like + Array of predictions conditional on current, and possibly past, + regimes + """ + raise NotImplementedError + + def _conditional_likelihoods(self, params): + """ + Compute likelihoods conditional on the current period's regime (and + the last self.order periods' regimes if self.order > 0). + + Must be implemented in subclasses. + """ + raise NotImplementedError + + def _filter(self, params, regime_transition=None): + # Get the regime transition matrix if not provided + if regime_transition is None: + regime_transition = self.regime_transition_matrix(params) + # Get the initial probabilities + initial_probabilities = self.initial_probabilities( + params, regime_transition) + + # Compute the conditional likelihoods + conditional_likelihoods = self._conditional_likelihoods(params) + + # Apply the filter + return ((regime_transition, initial_probabilities, + conditional_likelihoods) + + cy_hamilton_filter(initial_probabilities, regime_transition, + conditional_likelihoods)) + + def filter(self, params, transformed=True, cov_type=None, cov_kwds=None, + return_raw=False, results_class=None, + results_wrapper_class=None): + """ + Apply the Hamilton filter + + Parameters + ---------- + params : array_like + Array of parameters at which to perform filtering. + transformed : boolean, optional + Whether or not `params` is already transformed. Default is True. + cov_type : str, optional + See `fit` for a description of covariance matrix types + for results object. + cov_kwds : dict or None, optional + See `fit` for a description of required keywords for alternative + covariance estimators + return_raw : boolean,optional + Whether or not to return only the raw Hamilton filter output or a + full results object. Default is to return a full results object. + results_class : type, optional + A results class to instantiate rather than + `MarkovSwitchingResults`. Usually only used internally by + subclasses. + results_wrapper_class : type, optional + A results wrapper class to instantiate rather than + `MarkovSwitchingResults`. Usually only used internally by + subclasses. + + Returns + ------- + MarkovSwitchingResults + """ + params = np.array(params, ndmin=1) + + if not transformed: + params = self.transform_params(params) + + # Save the parameter names + self.data.param_names = self.param_names + + # Get the result + names = ['regime_transition', 'initial_probabilities', + 'conditional_likelihoods', 'filtered_marginal_probabilities', + 'predicted_joint_probabilities', 'joint_likelihoods', + 'filtered_joint_probabilities'] + result = HamiltonFilterResults( + self, Bunch(**dict(zip(names, self._filter(params))))) + + # Wrap in a results object + if not return_raw: + result_kwargs = {} + if cov_type is not None: + result_kwargs['cov_type'] = cov_type + if cov_kwds is not None: + result_kwargs['cov_kwds'] = cov_kwds + + if results_class is None: + results_class = MarkovSwitchingResults + if results_wrapper_class is None: + results_wrapper_class = MarkovSwitchingResultsWrapper + + result = results_wrapper_class( + results_class(self, params, result, **result_kwargs) + ) + + return result + + def _smooth(self, params, filtered_marginal_probabilities, + predicted_joint_probabilities, + filtered_joint_probabilities, regime_transition=None): + # Get the regime transition matrix + if regime_transition is None: + regime_transition = self.regime_transition_matrix(params) + + # Apply the smoother + return py_kim_smoother(regime_transition, + filtered_marginal_probabilities, + predicted_joint_probabilities, + filtered_joint_probabilities) + + def smooth(self, params, transformed=True, cov_type=None, cov_kwds=None, + return_raw=False, results_class=None, + results_wrapper_class=None): + """ + Apply the Kim smoother and Hamilton filter + + Parameters + ---------- + params : array_like + Array of parameters at which to perform filtering. + transformed : boolean, optional + Whether or not `params` is already transformed. Default is True. + cov_type : str, optional + See `fit` for a description of covariance matrix types + for results object. + cov_kwds : dict or None, optional + See `fit` for a description of required keywords for alternative + covariance estimators + return_raw : boolean,optional + Whether or not to return only the raw Hamilton filter output or a + full results object. Default is to return a full results object. + results_class : type, optional + A results class to instantiate rather than + `MarkovSwitchingResults`. Usually only used internally by + subclasses. + results_wrapper_class : type, optional + A results wrapper class to instantiate rather than + `MarkovSwitchingResults`. Usually only used internally by + subclasses. + + Returns + ------- + MarkovSwitchingResults + """ + params = np.array(params, ndmin=1) + + if not transformed: + params = self.transform_params(params) + + # Save the parameter names + self.data.param_names = self.param_names + + # Hamilton filter + names = ['regime_transition', 'initial_probabilities', + 'conditional_likelihoods', 'filtered_marginal_probabilities', + 'predicted_joint_probabilities', 'joint_likelihoods', + 'filtered_joint_probabilities'] + result = Bunch(**dict(zip(names, self._filter(params)))) + + # Kim smoother + out = self._smooth(params, result.filtered_marginal_probabilities, + result.predicted_joint_probabilities, + result.filtered_joint_probabilities) + result['smoothed_joint_probabilities'] = out[0] + result['smoothed_marginal_probabilities'] = out[1] + result = KimSmootherResults(self, result) + + # Wrap in a results object + if not return_raw: + result_kwargs = {} + if cov_type is not None: + result_kwargs['cov_type'] = cov_type + if cov_kwds is not None: + result_kwargs['cov_kwds'] = cov_kwds + + if results_class is None: + results_class = MarkovSwitchingResults + if results_wrapper_class is None: + results_wrapper_class = MarkovSwitchingResultsWrapper + + result = results_wrapper_class( + results_class(self, params, result, **result_kwargs) + ) + + return result + + def loglikeobs(self, params, transformed=True): + """ + Loglikelihood evaluation for each period + + Parameters + ---------- + params : array_like + Array of parameters at which to evaluate the loglikelihood + function. + transformed : boolean, optional + Whether or not `params` is already transformed. Default is True. + """ + params = np.array(params, ndmin=1) + + if not transformed: + params = self.transform_params(params) + + results = self._filter(params) + + return np.log(results[5]) + + def loglike(self, params, transformed=True): + """ + Loglikelihood evaluation + + Parameters + ---------- + params : array_like + Array of parameters at which to evaluate the loglikelihood + function. + transformed : boolean, optional + Whether or not `params` is already transformed. Default is True. + """ + return np.sum(self.loglikeobs(params, transformed)) + + def score(self, params, transformed=True): + """ + Compute the score function at params. + + Parameters + ---------- + params : array_like + Array of parameters at which to evaluate the score + function. + transformed : boolean, optional + Whether or not `params` is already transformed. Default is True. + """ + params = np.array(params, ndmin=1) + + return approx_fprime_cs(params, self.loglike, args=(transformed,)) + + def score_obs(self, params, transformed=True): + """ + Compute the score per observation, evaluated at params + + Parameters + ---------- + params : array_like + Array of parameters at which to evaluate the score + function. + transformed : boolean, optional + Whether or not `params` is already transformed. Default is True. + """ + params = np.array(params, ndmin=1) + + return approx_fprime_cs(params, self.loglikeobs, args=(transformed,)) + + def hessian(self, params, transformed=True): + """ + Hessian matrix of the likelihood function, evaluated at the given + parameters + + Parameters + ---------- + params : array_like + Array of parameters at which to evaluate the Hessian + function. + transformed : boolean, optional + Whether or not `params` is already transformed. Default is True. + """ + params = np.array(params, ndmin=1) + + return approx_hess_cs(params, self.loglike) + + def fit(self, start_params=None, transformed=True, cov_type='approx', + cov_kwds=None, method='bfgs', maxiter=100, full_output=1, disp=0, + callback=None, return_params=False, em_iter=5, search_reps=0, + search_iter=5, search_scale=1., **kwargs): + """ + Fits the model by maximum likelihood via Hamilton filter. + + Parameters + ---------- + start_params : array_like, optional + Initial guess of the solution for the loglikelihood maximization. + If None, the default is given by Model.start_params. + transformed : boolean, optional + Whether or not `start_params` is already transformed. Default is + True. + cov_type : str, optional + The type of covariance matrix estimator to use. Can be one of + 'approx', 'opg', 'robust', or 'none'. Default is 'approx'. + cov_kwds : dict or None, optional + Keywords for alternative covariance estimators + method : str, optional + The `method` determines which solver from `scipy.optimize` + is used, and it can be chosen from among the following strings: + + - 'newton' for Newton-Raphson, 'nm' for Nelder-Mead + - 'bfgs' for Broyden-Fletcher-Goldfarb-Shanno (BFGS) + - 'lbfgs' for limited-memory BFGS with optional box constraints + - 'powell' for modified Powell's method + - 'cg' for conjugate gradient + - 'ncg' for Newton-conjugate gradient + - 'basinhopping' for global basin-hopping solver + + The explicit arguments in `fit` are passed to the solver, + with the exception of the basin-hopping solver. Each + solver has several optional arguments that are not the same across + solvers. See the notes section below (or scipy.optimize) for the + available arguments and for the list of explicit arguments that the + basin-hopping solver supports. + maxiter : int, optional + The maximum number of iterations to perform. + full_output : boolean, optional + Set to True to have all available output in the Results object's + mle_retvals attribute. The output is dependent on the solver. + See LikelihoodModelResults notes section for more information. + disp : boolean, optional + Set to True to print convergence messages. + callback : callable callback(xk), optional + Called after each iteration, as callback(xk), where xk is the + current parameter vector. + return_params : boolean, optional + Whether or not to return only the array of maximizing parameters. + Default is False. + em_iter : int, optional + Number of initial EM iteration steps used to improve starting + parameters. + search_reps : int, optional + Number of randomly drawn search parameters that are drawn around + `start_params` to try and improve starting parameters. Default is + 0. + search_iter : int, optional + Number of initial EM iteration steps used to improve each of the + search parameter repetitions. + search_scale : float or array, optional. + Scale of variates for random start parameter search. + **kwargs + Additional keyword arguments to pass to the optimizer. + + Returns + ------- + MarkovSwitchingResults + + """ + + if start_params is None: + start_params = self.start_params + transformed = True + else: + start_params = np.array(start_params, ndmin=1) + + # Random search for better start parameters + if search_reps > 0: + start_params = self._start_params_search( + search_reps, start_params=start_params, + transformed=transformed, em_iter=search_iter, + scale=search_scale) + transformed = True + + # Get better start params through EM algorithm + if em_iter and not self.tvtp: + start_params = self._fit_em(start_params, transformed=transformed, + maxiter=em_iter, tolerance=0, + return_params=True) + transformed = True + + if transformed: + start_params = self.untransform_params(start_params) + + # Maximum likelihood estimation by scoring + fargs = (False,) + mlefit = super(MarkovSwitching, self).fit(start_params, method=method, + fargs=fargs, + maxiter=maxiter, + full_output=full_output, + disp=disp, callback=callback, + skip_hessian=True, **kwargs) + + # Just return the fitted parameters if requested + if return_params: + result = self.transform_params(mlefit.params) + # Otherwise construct the results class if desired + else: + result = self.smooth(mlefit.params, transformed=False, + cov_type=cov_type, cov_kwds=cov_kwds) + + result.mlefit = mlefit + result.mle_retvals = mlefit.mle_retvals + result.mle_settings = mlefit.mle_settings + + return result + + def _fit_em(self, start_params=None, transformed=True, cov_type='none', + cov_kwds=None, maxiter=50, tolerance=1e-6, full_output=True, + return_params=False, **kwargs): + """ + Fits the model using the Expectation-Maximization (EM) algorithm + + Parameters + ---------- + start_params : array_like, optional + Initial guess of the solution for the loglikelihood maximization. + If None, the default is given by `start_params`. + transformed : boolean, optional + Whether or not `start_params` is already transformed. Default is + True. + cov_type : str, optional + The type of covariance matrix estimator to use. Can be one of + 'approx', 'opg', 'robust', or 'none'. Default is 'none'. + cov_kwds : dict or None, optional + Keywords for alternative covariance estimators + maxiter : int, optional + The maximum number of iterations to perform. + tolerance : float, optional + The iteration stops when the difference between subsequent + loglikelihood values is less than this tolerance. + full_output : bool, optional + Set to True to have all available output in the Results object's + mle_retvals attribute. This includes all intermediate values for + parameters and loglikelihood values + return_params : boolean, optional + Whether or not to return only the array of maximizing parameters. + Default is False. + **kwargs + Additional keyword arguments to pass to the optimizer. + + Notes + ----- + This is a private method for finding good starting parameters for MLE + by scoring. It has not been tested for a thoroughly correct EM + implementation in all cases. It does not support TVTP transition + probabilities. + + Returns + ------- + MarkovSwitchingResults + """ + + if start_params is None: + start_params = self.start_params + transformed = True + else: + start_params = np.array(start_params, ndmin=1) + + if not transformed: + start_params = self.transform_params(start_params) + + # Perform expectation-maximization + llf = [] + params = [start_params] + i = 0 + delta = 0 + while i < maxiter and (i < 2 or (delta > tolerance)): + out = self._em_iteration(params[-1]) + llf.append(out[0].llf) + params.append(out[1]) + if i > 0: + delta = 2 * (llf[-1] - llf[-2]) / np.abs((llf[-1] + llf[-2])) + i += 1 + + # Just return the fitted parameters if requested + if return_params: + result = params[-1] + # Otherwise construct the results class if desired + else: + result = self.filter(params[-1], transformed=True, + cov_type=cov_type, cov_kwds=cov_kwds) + + # Save the output + if full_output: + em_retvals = Bunch(**{'params': np.array(params), + 'llf': np.array(llf), + 'iter': i}) + em_settings = Bunch(**{'tolerance': tolerance, + 'maxiter': maxiter}) + else: + em_retvals = None + em_settings = None + + result.mle_retvals = em_retvals + result.mle_settings = em_settings + + return result + + def _em_iteration(self, params0): + """ + EM iteration + + Notes + ----- + The EM iteration in this base class only performs the EM step for + non-TVTP transition probabilities. + """ + params1 = np.zeros(params0.shape, + dtype=np.promote_types(np.float64, params0.dtype)) + + # Smooth at the given parameters + result = self.smooth(params0, transformed=True, return_raw=True) + + # The EM with TVTP is not yet supported, just return the previous + # iteration parameters + if self.tvtp: + params1[self.parameters['regime_transition']] = ( + params0[self.parameters['regime_transition']]) + else: + regime_transition = self._em_regime_transition(result) + for i in range(self.k_regimes): + params1[self.parameters[i, 'regime_transition']] = ( + regime_transition[i]) + + return result, params1 + + def _em_regime_transition(self, result): + """ + EM step for regime transition probabilities + """ + + # Marginalize the smoothed joint probabilites to just S_t, S_{t-1} | T + tmp = result.smoothed_joint_probabilities + for i in range(tmp.ndim - 3): + tmp = np.sum(tmp, -2) + smoothed_joint_probabilities = tmp + + # Transition parameters (recall we're not yet supporting TVTP here) + k_transition = len(self.parameters[0, 'regime_transition']) + regime_transition = np.zeros((self.k_regimes, k_transition)) + for i in range(self.k_regimes): # S_{t_1} + for j in range(self.k_regimes - 1): # S_t + regime_transition[i, j] = ( + np.sum(smoothed_joint_probabilities[j, i]) / + np.sum(result.smoothed_marginal_probabilities[i])) + + # It may be the case that due to rounding error this estimates + # transition probabilities that sum to greater than one. If so, + # re-scale the probabilities and warn the user that something + # is not quite right + delta = np.sum(regime_transition[i]) - 1 + if delta > 0: + warnings.warn('Invalid regime transition probabilities' + ' estimated in EM iteration; probabilities have' + ' been re-scaled to continue estimation.', + EstimationWarning) + regime_transition[i] /= 1 + delta + 1e-6 + + return regime_transition + + def _start_params_search(self, reps, start_params=None, transformed=True, + em_iter=5, scale=1.): + """ + Search for starting parameters as random permutations of a vector + + Parameters + ---------- + reps : int + Number of random permutations to try. + start_params : array, optional + Starting parameter vector. If not given, class-level start + parameters are used. + transformed : boolean, optional + If `start_params` was provided, whether or not those parameters + are already transformed. Default is True. + em_iter : int, optional + Number of EM iterations to apply to each random permutation. + scale : array or float, optional + Scale of variates for random start parameter search. Can be given + as an array of length equal to the number of parameters or as a + single scalar. + + Notes + ----- + This is a private method for finding good starting parameters for MLE + by scoring, where the defaults have been set heuristically. + + """ + if start_params is None: + start_params = self.start_params + transformed = True + else: + start_params = np.array(start_params, ndmin=1) + + # Random search is over untransformed space + if transformed: + start_params = self.untransform_params(start_params) + + # Construct the standard deviations + scale = np.array(scale, ndmin=1) + if scale.size == 1: + scale = np.ones(self.k_params) * scale + if not scale.size == self.k_params: + raise ValueError('Scale of variates for random start' + ' parameter search must be given for each' + ' parameter or as a single scalar.') + + # Construct the random variates + variates = np.zeros((reps, self.k_params)) + for i in range(self.k_params): + variates[:, i] = scale[i] * np.random.uniform(-0.5, 0.5, size=reps) + + llf = self.loglike(start_params, transformed=False) + params = start_params + for i in range(reps): + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + + try: + proposed_params = self._fit_em( + start_params + variates[i], transformed=False, + maxiter=em_iter, return_params=True) + proposed_llf = self.loglike(proposed_params) + + if proposed_llf > llf: + llf = proposed_llf + params = self.untransform_params(proposed_params) + except: + pass + + # Return transformed parameters + return self.transform_params(params) + + @property + def start_params(self): + """ + (array) Starting parameters for maximum likelihood estimation. + """ + params = np.zeros(self.k_params, dtype=np.float64) + + # Transition probabilities + if self.tvtp: + params[self.parameters['regime_transition']] = 0. + else: + params[self.parameters['regime_transition']] = 1. / self.k_regimes + + return params + + @property + def param_names(self): + """ + (list of str) List of human readable parameter names (for parameters + actually included in the model). + """ + param_names = np.zeros(self.k_params, dtype=object) + + # Transition probabilities + if self.tvtp: + # TODO add support for exog_tvtp_names + param_names[self.parameters['regime_transition']] = [ + 'p[%d->%d].tvtp%d' % (j, i, k) + for i in range(self.k_regimes-1) + for k in range(self.k_tvtp) + for j in range(self.k_regimes) + ] + else: + param_names[self.parameters['regime_transition']] = [ + 'p[%d->%d]' % (j, i) + for i in range(self.k_regimes-1) + for j in range(self.k_regimes)] + + return param_names.tolist() + + def transform_params(self, unconstrained): + """ + Transform unconstrained parameters used by the optimizer to constrained + parameters used in likelihood evaluation + + Parameters + ---------- + unconstrained : array_like + Array of unconstrained parameters used by the optimizer, to be + transformed. + + Returns + ------- + constrained : array_like + Array of constrained parameters which may be used in likelihood + evalation. + + Notes + ----- + In the base class, this only transforms the transition-probability- + related parameters. + """ + constrained = np.array(unconstrained, copy=True) + constrained = constrained.astype( + np.promote_types(np.float64, constrained.dtype)) + + # Nothing to do for transition probabilities if TVTP + if self.tvtp: + constrained[self.parameters['regime_transition']] = ( + unconstrained[self.parameters['regime_transition']]) + # Otherwise do logistic transformation + else: + # Transition probabilities + offset = 0 + for i in range(self.k_regimes): + tmp1 = unconstrained[self.parameters[i, 'regime_transition']] + tmp2 = np.r_[0, tmp1] + constrained[self.parameters[i, 'regime_transition']] = np.exp( + tmp1 - logsumexp(tmp2)) + + # Do not do anything for the rest of the parameters + + return constrained + + def _untransform_logistic(self, unconstrained, constrained): + """ + Function to allow using a numerical root-finder to reverse the + logistic transform. + """ + resid = np.zeros(unconstrained.shape, dtype=unconstrained.dtype) + exp = np.exp(unconstrained) + sum_exp = np.sum(exp) + for i in range(len(unconstrained)): + resid[i] = (unconstrained[i] - + np.log(1 + sum_exp - exp[i]) + + np.log(1 / constrained[i] - 1)) + return resid + + def untransform_params(self, constrained): + """ + Transform constrained parameters used in likelihood evaluation + to unconstrained parameters used by the optimizer + + Parameters + ---------- + constrained : array_like + Array of constrained parameters used in likelihood evalution, to be + transformed. + + Returns + ------- + unconstrained : array_like + Array of unconstrained parameters used by the optimizer. + + Notes + ----- + In the base class, this only untransforms the transition-probability- + related parameters. + """ + unconstrained = np.array(constrained, copy=True) + unconstrained = unconstrained.astype( + np.promote_types(np.float64, unconstrained.dtype)) + + # Nothing to do for transition probabilities if TVTP + if self.tvtp: + unconstrained[self.parameters['regime_transition']] = ( + constrained[self.parameters['regime_transition']]) + # Otherwise reverse logistic transformation + else: + for i in range(self.k_regimes): + s = self.parameters[i, 'regime_transition'] + if self.k_regimes == 2: + unconstrained[s] = -np.log(1. / constrained[s] - 1) + else: + from scipy.optimize import root + out = root(self._untransform_logistic, + np.zeros(unconstrained[s].shape, + unconstrained.dtype), + args=(constrained[s],)) + if not out['success']: + raise ValueError('Could not untransform parameters.') + unconstrained[s] = out['x'] + + # Do not do anything for the rest of the parameters + + return unconstrained + + +class HamiltonFilterResults(object): + """ + Results from applying the Hamilton filter to a state space model. + + Parameters + ---------- + model : Representation + A Statespace representation + + Attributes + ---------- + nobs : int + Number of observations. + k_endog : int + The dimension of the observation series. + k_regimes : int + The number of unobserved regimes. + regime_transition : array + The regime transition matrix. + initialization : str + Initialization method for regime probabilities. + initial_probabilities : array + Initial regime probabilities + conditional_likelihoods : array + The likelihood values at each time period, conditional on regime. + predicted_joint_probabilities : array + Predicted joint probabilities at each time period. + filtered_marginal_probabilities : array + Filtered marginal probabilities at each time period. + filtered_joint_probabilities : array + Filtered joint probabilities at each time period. + joint_likelihoods : array + The likelihood values at each time period. + llf_obs : array + The loglikelihood values at each time period. + """ + def __init__(self, model, result): + + self.model = model + + self.nobs = model.nobs + self.order = model.order + self.k_regimes = model.k_regimes + + attributes = ['regime_transition', 'initial_probabilities', + 'conditional_likelihoods', + 'predicted_joint_probabilities', + 'filtered_marginal_probabilities', + 'filtered_joint_probabilities', + 'joint_likelihoods'] + for name in attributes: + setattr(self, name, getattr(result, name)) + + self.initialization = model._initialization + self.llf_obs = np.log(self.joint_likelihoods) + self.llf = np.sum(self.llf_obs) + + # Subset transition if necessary (e.g. for Markov autoregression) + if self.regime_transition.shape[-1] > 1 and self.order > 0: + self.regime_transition = self.regime_transition[..., self.order:] + + # Cache for predicted marginal probabilities + self._predicted_marginal_probabilities = None + + @property + def predicted_marginal_probabilities(self): + if self._predicted_marginal_probabilities is None: + self._predicted_marginal_probabilities = ( + self.predicted_joint_probabilities) + for i in range(self._predicted_marginal_probabilities.ndim - 2): + self._predicted_marginal_probabilities = np.sum( + self._predicted_marginal_probabilities, axis=-2) + return self._predicted_marginal_probabilities + + @property + def expected_durations(self): + """ + (array) Expected duration of a regime, possibly time-varying. + """ + return 1. / (1 - np.diagonal(self.regime_transition).squeeze()) + + +class KimSmootherResults(HamiltonFilterResults): + """ + Results from applying the Kim smoother to a Markov switching model. + + Parameters + ---------- + model : MarkovSwitchingModel + The model object. + result : dict + A dictionary containing two keys: 'smoothd_joint_probabilities' and + 'smoothed_marginal_probabilities'. + + Attributes + ---------- + nobs : int + Number of observations. + k_endog : int + The dimension of the observation series. + k_states : int + The dimension of the unobserved state process. + """ + def __init__(self, model, result): + super(KimSmootherResults, self).__init__(model, result) + + attributes = ['smoothed_joint_probabilities', + 'smoothed_marginal_probabilities'] + + for name in attributes: + setattr(self, name, getattr(result, name)) + + +class MarkovSwitchingResults(tsbase.TimeSeriesModelResults): + r""" + Class to hold results from fitting a Markov switching model + + Parameters + ---------- + model : MarkovSwitching instance + The fitted model instance + params : array + Fitted parameters + filter_results : HamiltonFilterResults or KimSmootherResults instance + The underlying filter and, optionally, smoother output + cov_type : string + The type of covariance matrix estimator to use. Can be one of 'approx', + 'opg', 'robust', or 'none'. + + Attributes + ---------- + model : Model instance + A reference to the model that was fit. + filter_results : HamiltonFilterResults or KimSmootherResults instance + The underlying filter and, optionally, smoother output + nobs : float + The number of observations used to fit the model. + params : array + The parameters of the model. + scale : float + This is currently set to 1.0 and not used by the model or its results. + + """ + use_t = False + + def __init__(self, model, params, results, cov_type='opg', cov_kwds=None, + **kwargs): + self.data = model.data + + tsbase.TimeSeriesModelResults.__init__(self, model, params, + normalized_cov_params=None, + scale=1.) + + # Save the filter / smoother output + self.filter_results = results + if isinstance(results, KimSmootherResults): + self.smoother_results = results + else: + self.smoother_results = None + + # Dimensions + self.nobs = model.nobs + self.order = model.order + self.k_regimes = model.k_regimes + + # Setup covariance matrix notes dictionary + if not hasattr(self, 'cov_kwds'): + self.cov_kwds = {} + self.cov_type = cov_type + + # Setup the cache + self._cache = resettable_cache() + + # Handle covariance matrix calculation + if cov_kwds is None: + cov_kwds = {} + self._cov_approx_complex_step = ( + cov_kwds.pop('approx_complex_step', True)) + self._cov_approx_centered = cov_kwds.pop('approx_centered', False) + try: + self._rank = None + self._get_robustcov_results(cov_type=cov_type, use_self=True, + **cov_kwds) + except np.linalg.LinAlgError: + self._rank = 0 + k_params = len(self.params) + self.cov_params_default = np.zeros((k_params, k_params)) * np.nan + self.cov_kwds['cov_type'] = ( + 'Covariance matrix could not be calculated: singular.' + ' information matrix.') + + # Copy over arrays + attributes = ['regime_transition', 'initial_probabilities', + 'conditional_likelihoods', + 'predicted_marginal_probabilities', + 'predicted_joint_probabilities', + 'filtered_marginal_probabilities', + 'filtered_joint_probabilities', + 'joint_likelihoods', 'expected_durations'] + for name in attributes: + setattr(self, name, getattr(self.filter_results, name)) + + attributes = ['smoothed_joint_probabilities', + 'smoothed_marginal_probabilities'] + for name in attributes: + if self.smoother_results is not None: + setattr(self, name, getattr(self.smoother_results, name)) + else: + setattr(self, name, None) + + # Reshape some arrays to long-format + self.predicted_marginal_probabilities = ( + self.predicted_marginal_probabilities.T) + self.filtered_marginal_probabilities = ( + self.filtered_marginal_probabilities.T) + if self.smoother_results is not None: + self.smoothed_marginal_probabilities = ( + self.smoothed_marginal_probabilities.T) + + # Make into Pandas arrays if using Pandas data + if isinstance(self.data, PandasData): + index = self.data.row_labels[self.order:] + if self.expected_durations.ndim > 1: + self.expected_durations = pd.DataFrame( + self.expected_durations, index=index) + self.predicted_marginal_probabilities = pd.DataFrame( + self.predicted_marginal_probabilities, index=index) + self.filtered_marginal_probabilities = pd.DataFrame( + self.filtered_marginal_probabilities, index=index) + if self.smoother_results is not None: + self.smoothed_marginal_probabilities = pd.DataFrame( + self.smoothed_marginal_probabilities, index=index) + + def _get_robustcov_results(self, cov_type='opg', **kwargs): + import statsmodels.stats.sandwich_covariance as sw + + use_self = kwargs.pop('use_self', False) + if use_self: + res = self + else: + raise NotImplementedError + res = self.__class__( + self.model, self.params, + normalized_cov_params=self.normalized_cov_params, + scale=self.scale) + + # Set the new covariance type + res.cov_type = cov_type + res.cov_kwds = {} + + # Calculate the new covariance matrix + k_params = len(self.params) + if k_params == 0: + res.cov_params_default = np.zeros((0, 0)) + res._rank = 0 + res.cov_kwds['description'] = 'No parameters estimated.' + elif cov_type == 'none': + res.cov_params_default = np.zeros((k_params, k_params)) * np.nan + res._rank = np.nan + res.cov_kwds['description'] = 'Covariance matrix not calculated.' + elif self.cov_type == 'approx': + res.cov_params_default = res.cov_params_approx + res.cov_kwds['description'] = ( + 'Covariance matrix calculated using numerical' + ' differentiation.') + elif self.cov_type == 'opg': + res.cov_params_default = res.cov_params_opg + res.cov_kwds['description'] = ( + 'Covariance matrix calculated using the outer product of' + ' gradients.' + ) + elif self.cov_type == 'robust': + res.cov_params_default = res.cov_params_robust + res.cov_kwds['description'] = ( + 'Quasi-maximum likelihood covariance matrix used for' + ' robustness to some misspecifications; calculated using' + ' numerical differentiation.') + else: + raise NotImplementedError('Invalid covariance matrix type.') + + return res + + @cache_readonly + def aic(self): + """ + (float) Akaike Information Criterion + """ + # return -2*self.llf + 2*self.params.shape[0] + return aic(self.llf, self.nobs, self.params.shape[0]) + + @cache_readonly + def bic(self): + """ + (float) Bayes Information Criterion + """ + # return -2*self.llf + self.params.shape[0]*np.log(self.nobs) + return bic(self.llf, self.nobs, self.params.shape[0]) + + @cache_readonly + def cov_params_approx(self): + """ + (array) The variance / covariance matrix. Computed using the numerical + Hessian approximated by complex step or finite differences methods. + """ + evaluated_hessian = self.model.hessian(self.params, transformed=True) + neg_cov, singular_values = pinv_extended(evaluated_hessian) + + if self._rank is None: + self._rank = np.linalg.matrix_rank(np.diag(singular_values)) + + return -neg_cov + + @cache_readonly + def cov_params_opg(self): + """ + (array) The variance / covariance matrix. Computed using the outer + product of gradients method. + """ + score_obs = self.model.score_obs(self.params, transformed=True).T + cov_params, singular_values = pinv_extended( + np.inner(score_obs, score_obs)) + + if self._rank is None: + self._rank = np.linalg.matrix_rank(np.diag(singular_values)) + + return cov_params + + @cache_readonly + def cov_params_robust(self): + """ + (array) The QMLE variance / covariance matrix. Computed using the + numerical Hessian as the evaluated hessian. + """ + cov_opg = self.cov_params_opg + evaluated_hessian = self.model.hessian(self.params, transformed=True) + cov_params, singular_values = pinv_extended( + np.dot(np.dot(evaluated_hessian, cov_opg), evaluated_hessian) + ) + + if self._rank is None: + self._rank = np.linalg.matrix_rank(np.diag(singular_values)) + + return cov_params + + @cache_readonly + def fittedvalues(self): + """ + (array) The predicted values of the model. An (nobs x k_endog) array. + """ + return self.model.predict(self.params) + + @cache_readonly + def hqic(self): + """ + (float) Hannan-Quinn Information Criterion + """ + # return -2*self.llf + 2*np.log(np.log(self.nobs))*self.params.shape[0] + return hqic(self.llf, self.nobs, self.params.shape[0]) + + @cache_readonly + def llf_obs(self): + """ + (float) The value of the log-likelihood function evaluated at `params`. + """ + return self.model.loglikeobs(self.params) + + @cache_readonly + def llf(self): + """ + (float) The value of the log-likelihood function evaluated at `params`. + """ + return self.model.loglike(self.params) + + @cache_readonly + def resid(self): + """ + (array) The model residuals. An (nobs x k_endog) array. + """ + return self.model.endog - self.fittedvalues + + def predict(self, start=None, end=None, probabilities=None, + conditional=False): + """ + In-sample prediction and out-of-sample forecasting + + Parameters + ---------- + start : int, str, or datetime, optional + Zero-indexed observation number at which to start forecasting, + i.e., the first forecast is start. Can also be a date string to + parse or a datetime type. Default is the the zeroth observation. + end : int, str, or datetime, optional + Zero-indexed observation number at which to end forecasting, i.e., + the last forecast is end. Can also be a date string to + parse or a datetime type. However, if the dates index does not + have a fixed frequency, end must be an integer index if you + want out of sample prediction. Default is the last observation in + the sample. + probabilities : string or array_like, optional + Specifies the weighting probabilities used in constructing the + prediction as a weighted average. If a string, can be 'predicted', + 'filtered', or 'smoothed'. Otherwise can be an array of + probabilities to use. Default is smoothed. + conditional: boolean or int, optional + Whether or not to return predictions conditional on current or + past regimes. If False, returns a single vector of weighted + predictions. If True or 1, returns predictions conditional on the + current regime. For larger integers, returns predictions + conditional on the current regime and some number of past regimes. + + Returns + ------- + predict : array + Array of out of in-sample predictions and / or out-of-sample + forecasts. An (npredict x k_endog) array. + """ + return self.model.predict(self.params, start=start, end=end, + probabilities=probabilities, + conditional=conditional) + + def forecast(self, steps=1, **kwargs): + """ + Out-of-sample forecasts + + Parameters + ---------- + steps : int, str, or datetime, optional + If an integer, the number of steps to forecast from the end of the + sample. Can also be a date string to parse or a datetime type. + However, if the dates index does not have a fixed frequency, steps + must be an integer. Default + **kwargs + Additional arguments may required for forecasting beyond the end + of the sample. See `FilterResults.predict` for more details. + + Returns + ------- + forecast : array + Array of out of sample forecasts. A (steps x k_endog) array. + """ + raise NotImplementedError + + def summary(self, alpha=.05, start=None, title=None, model_name=None, + display_params=True): + """ + Summarize the Model + + Parameters + ---------- + alpha : float, optional + Significance level for the confidence intervals. Default is 0.05. + start : int, optional + Integer of the start observation. Default is 0. + title : str, optional + The title of the summary table. + model_name : string + The name of the model used. Default is to use model class name. + display_params : boolean, optional + Whether or not to display tables of estimated parameters. Default + is True. Usually only used internally. + + Returns + ------- + summary : Summary instance + This holds the summary table and text, which can be printed or + converted to various output formats. + + See Also + -------- + statsmodels.iolib.summary.Summary + """ + from statsmodels.iolib.summary import Summary + + # Model specification results + model = self.model + if title is None: + title = 'Markov Switching Model Results' + + if start is None: + start = 0 + if self.data.dates is not None: + dates = self.data.dates + d = dates[start] + sample = ['%02d-%02d-%02d' % (d.month, d.day, d.year)] + d = dates[-1] + sample += ['- ' + '%02d-%02d-%02d' % (d.month, d.day, d.year)] + else: + sample = [str(start), ' - ' + str(self.model.nobs)] + + # Standardize the model name as a list of str + if model_name is None: + model_name = model.__class__.__name__ + + # Create the tables + if not isinstance(model_name, list): + model_name = [model_name] + + top_left = [('Dep. Variable:', None)] + top_left.append(('Model:', [model_name[0]])) + for i in range(1, len(model_name)): + top_left.append(('', ['+ ' + model_name[i]])) + top_left += [ + ('Date:', None), + ('Time:', None), + ('Sample:', [sample[0]]), + ('', [sample[1]]) + ] + + top_right = [ + ('No. Observations:', [self.model.nobs]), + ('Log Likelihood', ["%#5.3f" % self.llf]), + ('AIC', ["%#5.3f" % self.aic]), + ('BIC', ["%#5.3f" % self.bic]), + ('HQIC', ["%#5.3f" % self.hqic]) + ] + + if hasattr(self, 'cov_type'): + top_left.append(('Covariance Type:', [self.cov_type])) + + summary = Summary() + summary.add_table_2cols(self, gleft=top_left, gright=top_right, + title=title) + + # Make parameters tables for each regime + from statsmodels.iolib.summary import summary_params + import re + def make_table(self, mask, title, strip_end=True): + res = (self, self.params[mask], self.bse[mask], + self.tvalues[mask], self.pvalues[mask], + self.conf_int(alpha)[mask]) + + param_names = [ + re.sub('\[\d+\]$', '', name) for name in + np.array(self.data.param_names)[mask].tolist() + ] + + return summary_params(res, yname=None, xname=param_names, + alpha=alpha, use_t=False, title=title) + + params = model.parameters + regime_masks = [[] for i in range(model.k_regimes)] + other_masks = {} + for key, switching in params.switching.items(): + k_params = len(switching) + if key == 'regime_transition': + continue + other_masks[key] = [] + + for i in range(k_params): + if switching[i]: + for j in range(self.k_regimes): + regime_masks[j].append(params[j, key][i]) + else: + other_masks[key].append(params[0, key][i]) + + for i in range(self.k_regimes): + mask = regime_masks[i] + if len(mask) > 0: + table = make_table(self, mask, 'Regime %d parameters' % i) + summary.tables.append(table) + + mask = [] + for key, _mask in other_masks.items(): + mask.extend(_mask) + if len(mask) > 0: + table = make_table(self, mask, 'Non-switching parameters') + summary.tables.append(table) + + # Transition parameters + mask = params['regime_transition'] + table = make_table(self, mask, 'Regime transition parameters') + summary.tables.append(table) + + # Add warnings/notes, added to text format only + etext = [] + if hasattr(self, 'cov_type') and 'description' in self.cov_kwds: + etext.append(self.cov_kwds['description']) + if self._rank < len(self.params): + etext.append("Covariance matrix is singular or near-singular," + " with condition number %6.3g. Standard errors may be" + " unstable." % np.linalg.cond(self.cov_params())) + + if etext: + etext = ["[{0}] {1}".format(i + 1, text) + for i, text in enumerate(etext)] + etext.insert(0, "Warnings:") + summary.add_extra_txt(etext) + + return summary + + +class MarkovSwitchingResultsWrapper(wrap.ResultsWrapper): + _attrs = { + 'cov_params_approx': 'cov', + 'cov_params_default': 'cov', + 'cov_params_opg': 'cov', + 'cov_params_robust': 'cov', + } + _wrap_attrs = wrap.union_dicts(tsbase.TimeSeriesResultsWrapper._wrap_attrs, + _attrs) + _methods = { + 'forecast': 'dates', + } + _wrap_methods = wrap.union_dicts( + tsbase.TimeSeriesResultsWrapper._wrap_methods, _methods) +wrap.populate_wrapper(MarkovSwitchingResultsWrapper, MarkovSwitchingResults) diff --git a/statsmodels/tsa/regime_switching/tests/__init__.py b/statsmodels/tsa/regime_switching/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/tsa/regime_switching/tests/results/__init__.py b/statsmodels/tsa/regime_switching/tests/results/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/tsa/regime_switching/tests/results/mar_filardo.csv b/statsmodels/tsa/regime_switching/tests/results/mar_filardo.csv new file mode 100644 index 0000000..1d553bb --- /dev/null +++ b/statsmodels/tsa/regime_switching/tests/results/mar_filardo.csv @@ -0,0 +1 @@ +dlip,dmdlleading,transition_00,transition_10,filtered_0,smoothed_0,duration0,duration1 0,-1.315793134,,,,,, -0.463457141,0.542041742,,,,,, 0,0.797866076,,,,,, 0.922986632,-1.572317338,,,,,, 0.682073841,1.324204951,,,,,, 0,-0.778336628,0.998775,0.417661,0.661039,0.209407,816.2879,2.394286 -0.226405988,-1.31019399,0.951736,0.081398,0.535619,0.182025,20.71927,12.28531 -0.455667853,-1.859087707,0.884943,0.04962,0.309032,0.145482,8.691347,20.1532 0.455667853,0.014403944,0.7443,0.029358,0.468544,0.13292,3.910828,34.06189 -0.684945807,-1.064496246,0.987689,0.163137,0.292996,0.128835,81.23144,6.129806 -0.461484959,-1.8941562,0.922373,0.062497,0.236747,0.120567,12.8821,16.00085 -0.465446252,-1.921480471,0.732307,0.028381,0.139381,0.088826,3.735622,35.23537 -0.705747343,-0.816574453,0.722719,0.027641,0.056933,0.066686,3.60645,36.1785 -0.95551645,-0.819748477,0.94853,0.078599,0.032805,0.072972,19.42867,12.72275 -0.241533386,-1.681332938,0.948255,0.078371,0.092129,0.114191,19.32541,12.75982 -0.731123284,0.03216902,0.799489,0.034838,0.034222,0.112214,4.987248,28.70443 -0.245914958,-0.541719465,0.988066,0.165564,0.151155,0.40603,83.79465,6.039966 0,1.736755747,0.967719,0.100818,0.27313,0.477691,30.97786,9.918877 0.490719688,1.973729256,0.999409,0.519472,0.844464,0.706868,1693.3,1.925032 0.486318555,2.730521092,0.999612,0.577767,0.971411,0.740248,2575.311,1.730802 -1.972004789,0.278559375,0.999898,0.743891,0.767455,0.73716,9829.282,1.344282 1.485686234,1.589809356,0.992252,0.202241,0.988905,0.989876,129.0636,4.9446 0.968314221,1.299660221,0.999234,0.482951,0.998264,0.997724,1305.686,2.070602 0.71505417,2.032490944,0.998721,0.411736,0.999513,0.998923,781.6227,2.428742 0.236271203,0.993680444,0.99965,0.591956,0.999769,0.999456,2857.516,1.689316 1.853997876,0.732887127,0.997803,0.34049,0.99998,0.999978,455.1569,2.936944 1.792697333,1.208665529,0.996518,0.284858,0.999968,0.999973,287.2264,3.510515 1.306669382,2.373811004,0.998497,0.390004,0.99994,0.999957,665.4848,2.564075 1.485686234,0.450280577,0.999809,0.670737,0.999994,0.999999,5227.865,1.490897 1.649531163,3.649279698,0.994271,0.231198,0.999848,0.999914,174.5576,4.325298 1.797650442,3.502572834,0.99998,0.878688,0.999999,0.999999,49982.95,1.138061 -0.394359232,-1.345298571,0.999974,0.862255,0.999774,0.999937,38551.14,1.159749 0.394359232,-0.254775223,0.878463,0.047999,0.957108,0.984405,8.227935,20.83372 -0.196821107,-0.69433637,0.980323,0.129794,0.89051,0.98286,50.81974,7.704538 0.977038243,0.622423385,0.958125,0.087867,0.987311,0.992897,23.88072,11.3808 0.193312702,2.118583211,0.99577,0.263016,0.99271,0.993582,236.3889,3.802051 0.38457009,-1.758562959,0.999699,0.612464,0.998438,0.996481,3327.778,1.63275 0.19126706,-0.906243325,0.776674,0.032345,0.924641,0.911718,4.477758,30.91628 0.190594767,-2.903936767,0.940205,0.072379,0.942172,0.883427,16.72378,13.81624 -0.190594767,-1.379646476,0.314068,0.010586,0.364974,0.127995,1.457871,94.4619 -0.383211174,-3.240071538,0.87182,0.046462,0.277216,0.106534,7.801549,21.52297 -0.774643966,-2.374995988,0.20162,0.007601,0.022645,0.016712,1.252537,131.5639 -0.588332955,-2.177911415,0.538715,0.017784,0.013147,0.024166,2.167857,56.22892 0.392930382,-0.012350861,0.623411,0.021553,0.092288,0.075833,2.655415,46.39822 0,-0.254775223,0.9871,0.159537,0.203846,0.151077,77.52013,6.26814 0.39010352,-0.983818549,0.980323,0.129794,0.506374,0.209208,50.81974,7.704538 0.387317043,0.231843743,0.932002,0.067366,0.645502,0.205754,14.70622,14.84421 0.57583715,0.229487225,0.99159,0.194848,0.835906,0.214817,118.8992,5.132198 0.190594767,0.467249575,0.991555,0.194481,0.87081,0.206833,118.4084,5.141894 0.189927183,-0.01525415,0.99444,0.234211,0.909432,0.196893,179.8502,4.269648 -0.38052195,-0.254775223,0.987035,0.15915,0.844312,0.104756,77.12787,6.283374 -0.57583715,-0.015826483,0.980323,0.129794,0.72584,0.072409,50.81974,7.704538 -0.582017989,1.870452343,0.987022,0.159074,0.638266,0.074931,77.05078,6.286382 -0.78587108,-0.254775223,0.999534,0.55253,0.663373,0.201116,2145.186,1.809857 3.450049621,1.367508328,0.980323,0.129794,0.999773,0.999904,50.81974,7.704538 1.825901649,2.912910443,0.998865,0.428172,0.999971,0.99999,881.2426,2.335512 0.535992721,-1.600086992,0.999926,0.7769,0.999955,0.999993,13574.67,1.287167 1.056348123,-0.254775223,0.821556,0.037659,0.979314,0.989875,5.603992,26.55384 0.34759193,0.19567599,0.980323,0.129794,0.946543,0.983823,50.81974,7.704538 0.17296396,0.417119802,0.991038,0.189267,0.952415,0.987569,111.5873,5.283544 0.344281508,-0.03180969,0.993927,0.225388,0.978215,0.992622,164.6628,4.436797 0.342109371,-0.477740755,0.986654,0.156959,0.984248,0.992998,74.92918,6.371088 0.33996447,-0.478239003,0.971075,0.106735,0.98625,0.992113,34.57276,9.369037 0.337846298,-0.928178441,0.971051,0.106687,0.988277,0.990038,34.54316,9.373186 -0.337846298,-1.615340428,0.937984,0.070927,0.907252,0.967874,16.12493,14.09892 0.673600655,-0.483346751,0.817563,0.037113,0.972816,0.954798,5.48134,26.94446 -0.335754357,-2.569693409,0.970795,0.106204,0.923828,0.910001,34.24123,9.41583 -1.019920139,-2.385033293,0.45277,0.0147,0.12203,0.07548,1.827385,68.02907 -0.517245468,-0.494296295,0.534297,0.017611,0.070844,0.025276,2.14729,56.78302 -1.226446751,-1.218638106,0.970241,0.105175,0.019489,0.026887,33.60312,9.507979 -1.436485473,-0.012937136,0.900444,0.054094,0.005964,0.03716,10.04461,18.48618 -0.365147208,-0.254775223,0.987087,0.159459,0.143677,0.461762,77.44075,6.271213 0.182880967,0.706770647,0.980323,0.129794,0.466198,0.691007,50.81974,7.704538 -0.366380822,0.222552653,0.996354,0.279597,0.503475,0.779292,274.2949,3.576579 -0.368873228,0.693099173,0.991451,0.193403,0.508523,0.831212,116.976,5.170559 0.368873228,1.150400123,0.996265,0.276866,0.802825,0.930042,267.7602,3.611853 0.183499855,1.130928244,0.998334,0.376309,0.901479,0.952342,600.3645,2.657389 0,0.885487987,0.998276,0.371775,0.941878,0.961881,580.0568,2.689799 0,0.197714237,0.99734,0.316757,0.962077,0.968511,375.9974,3.156995 0,1.090536547,0.99107,0.189578,0.966727,0.970999,111.9871,5.274869 0.727851941,1.729854415,0.998148,0.362442,0.993485,0.993679,540.0987,2.759064 0.896287438,1.691232133,0.999402,0.517758,0.999065,0.999272,1672.751,1.931403 0.706513649,1.23303118,0.99936,0.508162,0.999749,0.999842,1562.274,1.967877 1.214671872,1.418904013,0.998561,0.395784,0.99994,0.999971,694.7727,2.526628 0.682073841,1.595226152,0.998964,0.44073,0.999817,0.999914,965.0843,2.268961 1.173365994,0.959814608,0.999241,0.484297,0.999966,0.999991,1318.256,2.06485 0.659268369,0.146831743,0.997668,0.332968,0.999565,0.999921,428.7304,3.003295 0.974112821,0.344627171,0.990237,0.181925,0.999323,0.999681,102.4272,5.496771 0,-0.055770182,0.993101,0.21305,0.992022,0.997506,144.9521,4.693737 0.480571731,0.734352525,0.986084,0.153831,0.995347,0.997466,71.85903,6.50062 -0.159717804,-0.649253052,0.996527,0.285155,0.991714,0.997526,287.9699,3.506859 0.31896654,0.53263042,0.961213,0.091528,0.990127,0.995755,25.78161,10.92562 0.94579413,-0.451046139,0.995044,0.246075,0.999066,0.997895,201.7954,4.063803 0.156040843,0.332885626,0.972374,0.109292,0.988761,0.984122,36.19732,9.149767 0.155593092,-0.059653209,0.992957,0.211099,0.993875,0.981322,141.9909,4.737124 0.30985316,-0.645400719,0.985989,0.153329,0.99474,0.97102,71.37363,6.521904 -0.465446252,-1.040633884,0.961466,0.091847,0.917091,0.889738,25.95118,10.88766 0,0.138926073,0.925344,0.063902,0.937652,0.861758,13.39477,15.64903 0.465446252,-0.058504306,0.990101,0.180758,0.986573,0.85855,101.0176,5.532267 -0.465446252,-1.835835825,0.986017,0.153478,0.960134,0.751912,71.5169,6.515598 -0.46947614,-0.854177617,0.752054,0.030025,0.746164,0.175126,4.03314,33.30609 -1.757048302,0.543632212,0.945181,0.075933,0.09631,0.074243,18.24189,13.16947 2.226524441,-0.056165425,0.99514,0.248111,0.998245,0.999599,205.7443,4.030461 1.232420219,-0.652390061,0.986074,0.15378,0.999388,0.999462,71.80947,6.502782 0.455030548,0.142839615,0.961005,0.091269,0.988117,0.984209,25.64437,10.95664 -0.455030548,0.141264899,0.990168,0.181335,0.939513,0.975423,101.7129,5.51466 0.75627663,-0.650815344,0.990141,0.181102,0.98704,0.982536,101.4325,5.521737 -0.150413842,-1.051592188,0.961109,0.091399,0.94013,0.967193,25.71317,10.94106 0.449995574,-0.655577362,0.923993,0.063253,0.976117,0.959689,13.15665,15.80956 0,-0.859006668,0.960793,0.091006,0.966623,0.936485,25.50572,10.98825 -0.752080786,-1.0661387,0.944736,0.075597,0.759507,0.888195,18.09512,13.22806 -0.151676058,-0.254775223,0.922164,0.062401,0.814671,0.893577,12.8476,16.02537 0.151676058,-0.458648892,0.980323,0.129794,0.910317,0.906645,50.81974,7.704538 0.302085213,-0.868902025,0.97201,0.108558,0.959358,0.907009,35.72679,9.211624 0,-0.460325141,0.943815,0.074912,0.9529,0.850735,17.79828,13.349 -0.453761271,-1.705577872,0.971929,0.108397,0.902002,0.75299,35.6239,9.225326 -0.919075484,-1.09335456,0.79252,0.034036,0.414562,0.080662,4.819741,29.38059 -1.250179997,-1.312986156,0.918635,0.060836,0.106644,0.017272,12.29034,16.43763 -0.956921694,-1.10948128,0.884439,0.049489,0.058896,0.008513,8.653425,20.20646 -1.138179982,-0.469598076,0.916476,0.059926,0.027773,0.005209,11.97259,16.68723 -1.162583853,-1.118711482,0.971478,0.107509,0.021968,0.006974,35.06019,9.301535 -0.675699154,0.609161036,0.915217,0.059411,0.037889,0.016582,11.79476,16.83191 -0.856639545,0.174409986,0.99567,0.260467,0.070802,0.120304,230.927,3.839256 0.515605997,1.654084434,0.990698,0.186043,0.717409,0.73832,107.5016,5.375108 1.518038171,1.618328448,0.999316,0.498926,0.99587,0.997929,1462.908,2.004305 0.661278383,2.189338293,0.999272,0.490037,0.999016,0.999316,1373.244,2.040662 1.138179982,1.539889096,0.999735,0.629028,0.999927,0.999967,3771.681,1.589754 0.480571731,1.508247915,0.999163,0.470566,0.999668,0.999835,1195.339,2.125098 0.634207878,0.903538886,0.999115,0.462734,0.99979,0.999898,1130.281,2.161067 1.553807042,1.457921257,0.997424,0.320655,0.999969,0.999984,388.1736,3.118617 0.152959637,-0.443632691,0.999033,0.450316,0.999139,0.99978,1034.026,2.220661 0.758392158,1.432237608,0.972724,0.110012,0.997794,0.998575,36.66228,9.089898 1.04423884,1.037948228,0.998988,0.444002,0.99981,0.999902,988.1106,2.252244 0.733761608,1.202445463,0.997968,0.350445,0.999686,0.999849,492.1778,2.853516 1.15374896,-0.254775223,0.998481,0.388534,0.999942,0.999886,658.2084,2.573781 0.849481949,-0.0741067,0.980323,0.129794,0.997935,0.960598,50.81974,7.704538 0,-0.254775223,0.985631,0.151473,0.981985,0.644221,69.59591,6.601854 -1.279266144,-0.61643927,0.980323,0.129794,0.55525,0.06887,50.81974,7.704538 -1.902797179,-1.164699608,0.963321,0.094278,0.03307,0.016435,27.26374,10.60692 0,-0.07212677,0.908682,0.056906,0.220393,0.089131,10.95079,17.57285 -0.448754192,-0.803724451,0.985681,0.151726,0.255143,0.27243,69.83675,6.590834 0.299581731,-1.176440733,0.949629,0.07953,0.633675,0.71191,19.85267,12.57389 3.331235784,1.943115449,0.906943,0.056283,0.999594,0.999752,10.7461,17.76751 2.557684179,-0.617752028,0.99959,0.570322,0.999995,0.999974,2439.514,1.753395 -1.015237146,-1.535671052,0.963239,0.094167,0.285709,0.084843,27.20277,10.61947 -0.768249617,-1.92612332,0.837665,0.040051,0.040443,0.011644,6.160088,24.96805 -0.774197415,-0.254775223,0.721069,0.027517,0.00478,0.000471,3.585116,36.34132 -0.259403518,-0.067684429,0.980323,0.129794,0.059508,0.002902,50.81974,7.704538 -1.044395916,-0.254775223,0.985791,0.152295,0.023074,0.003135,70.38021,6.566187 -0.526317004,0.118359539,0.980323,0.129794,0.062255,0.008038,50.81974,7.704538 0,0.116972417,0.989737,0.177748,0.27019,0.017348,97.44173,5.625928 -1.061017911,-0.069418358,0.989712,0.177547,0.060115,0.010235,97.20521,5.632315 -0.267022856,-0.625833162,0.985748,0.152073,0.17138,0.016371,70.16758,6.575794 -1.345915337,-0.440821788,0.962729,0.093483,0.023019,0.002787,26.8306,10.6971 -1.915243221,-0.254775223,0.972856,0.110286,0.00315,0.002777,36.84017,9.067313 0.275862244,0.67201547,0.980323,0.129794,0.491627,0.30296,50.81974,7.704538 -0.275862244,0.480522208,0.996124,0.272688,0.542697,0.428643,257.9875,3.667199 0.550965581,1.199795878,0.994568,0.236587,0.923701,0.813028,184.1021,4.226771 2.173998664,1.000846655,0.998474,0.387908,0.99945,0.999649,655.1331,2.577933 1.335133317,0.985276097,0.997831,0.342092,0.999822,0.99994,460.9549,2.923188 1.578980173,0.796022537,0.99777,0.338615,0.999949,0.999981,448.4502,2.953202 1.038970385,-0.080710775,0.996885,0.297821,0.99959,0.99984,321.0721,3.357721 1.028286696,1.29831898,0.985465,0.15063,0.998059,0.998781,68.79865,6.638769 -0.256082086,-0.942063151,0.998718,0.411413,0.991324,0.998969,779.7715,2.430649 2.030526616,1.115109213,0.936539,0.070023,0.99972,0.999901,15.75771,14.28106 1.496287268,0.760461924,0.998227,0.368108,0.999943,0.999977,564.0664,2.716595 0.739830748,0.583452653,0.996684,0.290478,0.999436,0.999506,301.5447,3.4426 -0.739830748,-0.254775223,0.995469,0.255572,0.958726,0.9937,220.6977,3.912788 1.717833654,0.907063573,0.980323,0.129794,0.999089,0.999824,50.81974,7.704538 0.485437846,-0.254775223,0.99744,0.321419,0.99874,0.999703,390.5969,3.111203 0.241838086,-0.751054157,0.980323,0.129794,0.993645,0.998203,50.81974,7.704538 -0.241838086,-1.254783556,0.953906,0.08345,0.947179,0.990638,21.695,11.98321 -0.242424361,-1.264884821,0.894559,0.052284,0.817016,0.98219,9.484018,19.12623 0.966191091,0.419763591,0.892861,0.051789,0.981511,0.996351,9.333661,19.30925 0.240096154,-0.086849071,0.993955,0.225847,0.990136,0.998374,165.4305,4.427772 0.478469812,0.414123592,0.985308,0.149851,0.995335,0.998726,68.06593,6.673299 0.238379136,0.078003787,0.993895,0.224868,0.995918,0.998678,163.797,4.447054 0.475060276,1.392708498,0.988986,0.171958,0.996841,0.998253,90.79243,5.815373 0,0.558898917,0.998915,0.434319,0.997796,0.99904,921.3989,2.302456 0.708385489,0.552331661,0.995269,0.250954,0.999335,0.999712,211.353,3.984795 0.936775,0.70523215,0.995214,0.249728,0.999721,0.999907,208.9217,4.004354 0.696866932,0.538250345,0.996344,0.279289,0.999608,0.999922,273.5516,3.580525 0.92166551,0.532010897,0.995093,0.247113,0.999728,0.999948,203.803,4.046726 1.14026321,0.525868867,0.995039,0.245961,0.999793,0.999913,201.5753,4.065691 0.45248946,-0.410417277,0.994985,0.244829,0.998334,0.998917,199.4063,4.084476 -0.45248946,-0.4106599,0.974241,0.113289,0.922744,0.984798,38.82203,8.827014 0.226500663,0.056751509,0.974231,0.113264,0.959959,0.992368,38.80579,8.828903 0.900906994,0.519821989,0.988568,0.168969,0.994879,0.998943,87.4771,5.918238 0.670393572,0.207119363,0.994931,0.243719,0.998426,0.999618,197.2938,4.103082 0.444445176,0.204995702,0.991217,0.191019,0.998173,0.99943,113.8504,5.235068 0,0.050568526,0.991184,0.190693,0.992978,0.998086,113.4269,5.244023 0.883007945,0.504529868,0.988444,0.168107,0.9987,0.999474,86.53576,5.948576 0.657176516,0.498807846,0.994793,0.240927,0.999157,0.999585,192.0514,4.150637 0,0.344028962,0.99474,0.239888,0.996265,0.998674,190.126,4.168618 1.516822147,0.488722626,0.993094,0.21295,0.999874,0.999808,144.7998,4.695935 0.643089033,0.483235507,0.994646,0.238063,0.999011,0.99852,186.7795,4.200561 0.213447253,0.038910745,0.994594,0.237075,0.997362,0.99613,184.9837,4.218075 0.637621714,0.911418752,0.988206,0.166492,0.998334,0.98914,84.78867,6.006285 0.633581845,0.467249575,0.997459,0.322365,0.999268,0.984351,393.6121,3.102078 0.420168685,0.604828924,0.99444,0.234211,0.998697,0.954446,179.8502,4.269648 -1.478379618,0.030125255,0.995636,0.259638,0.841378,0.835141,229.1705,3.851515 3.141619623,0.453944966,0.988023,0.165283,0.999946,0.999983,83.49565,6.050221 1.229523686,0.308606549,0.994308,0.231846,0.999685,0.999928,175.6871,4.313201 1.013179893,0.445017696,0.99265,0.207105,0.999575,0.999903,136.0597,4.828464 0.603016903,-0.254775223,0.994218,0.230269,0.998644,0.999778,172.9482,4.342749 1.393057354,0.301554446,0.980323,0.129794,0.999032,0.999747,50.81974,7.704538 0.394477829,-0.39356775,0.992559,0.205956,0.99579,0.999359,134.3841,4.85541 0.784317746,0.575105059,0.974979,0.114983,0.996911,0.999314,39.96715,8.696942 0.778214044,-0.39261122,0.995402,0.253996,0.998994,0.999838,217.4751,3.937071 0.964327627,0.158164112,0.975021,0.11508,0.998243,0.99943,40.03319,8.689624 0.383142231,-0.392232289,0.990429,0.183608,0.996491,0.998529,104.4824,5.446373 0.191022026,0.567147213,0.975037,0.115118,0.986813,0.994125,40.05938,8.686726 0.949674754,0.830717118,0.995337,0.252499,0.998671,0.999303,214.447,3.960409 0.565505748,0.8190606,0.99707,0.305087,0.999152,0.999525,341.3461,3.277753 1.121507082,0.675464044,0.99701,0.302635,0.999858,0.999957,334.3952,3.304313 1.109068669,0.009425724,0.996147,0.273368,0.999839,0.999966,259.5611,3.658067 0.549955557,0.008729541,0.987582,0.162462,0.996981,0.999382,80.52751,6.155268 1.451931132,0.9224784,0.987567,0.162368,0.999716,0.999905,80.42956,6.158838 0,-0.515192036,0.997509,0.324772,0.995867,0.99949,401.3744,3.079083 1.075279178,-1.30327762,0.969154,0.103235,0.998613,0.999685,32.41917,9.686644 0.355872262,-0.915716161,0.886184,0.049945,0.954937,0.991916,8.786095,20.0219 0.531445006,-0.653446847,0.939255,0.071749,0.975511,0.993403,16.46231,13.93756 0.176522552,-1.191236916,0.960935,0.091182,0.970995,0.992374,25.59831,10.96711 0.877968765,-0.793860086,0.904709,0.055506,0.989915,0.990347,10.49414,18.01608 0.696866932,-1.205223654,0.950458,0.080251,0.992554,0.981796,20.18477,12.46089 -0.696866932,-0.527999436,0.902553,0.054781,0.643262,0.82112,10.26196,18.25444 0.174672533,-0.666016378,0.968469,0.102062,0.840187,0.835947,31.71485,9.798001 0.522194398,0.429690146,0.960091,0.090151,0.946596,0.830981,25.05703,11.09249 -1.047129987,-0.80197221,0.99406,0.227578,0.762141,0.817353,168.3455,4.394097 -0.704228263,-0.667146941,0.949777,0.079658,0.633185,0.813335,19.91124,12.55374 1.054491318,0.157596496,0.960014,0.090059,0.940303,0.83759,25.00893,11.10385 -0.877968765,0.700863449,0.990419,0.183524,0.799942,0.817758,104.3785,5.448884 0,0.960634742,0.996316,0.278415,0.916744,0.860763,271.452,3.591761 -0.353357258,0.94603974,0.997671,0.333149,0.921035,0.877589,429.3518,3.001662 1.928192955,1.193571359,0.99761,0.329932,0.99769,0.998683,418.4266,3.030929 -0.17376199,0.006321531,0.998457,0.386439,0.995765,0.998816,647.965,2.587732 0.865806274,0.005641591,0.987514,0.162043,0.998792,0.999787,80.0917,6.171208 1.369884436,0.134582829,0.987499,0.161951,0.999673,0.99995,79.99656,6.174707 1.183445765,0.904284759,0.990025,0.180119,0.999476,0.999807,100.2516,5.551887 -0.168208618,-0.382898238,0.997427,0.320817,0.995472,0.998981,388.6851,3.117046 0.33613477,0.638657651,0.975436,0.116067,0.991077,0.997407,40.71013,8.615698 0.335008689,0.378539117,0.995889,0.266158,0.995191,0.999139,243.2517,3.757172 0.167084416,-1.142542626,0.993501,0.218759,0.995303,0.999608,153.8584,4.571233 1.161838795,0.380147545,0.911885,0.0581,0.998344,0.999507,11.34884,17.21163 0.32948959,-0.001930587,0.993519,0.219033,0.997488,0.999027,154.2943,4.565525 -0.164609091,0.24900418,0.987333,0.160931,0.986555,0.995875,78.94472,6.213825 0.328947665,-0.758554626,0.991839,0.19754,0.994765,0.998163,122.5357,5.062271 0.327869146,0.999946383,0.953319,0.082881,0.986991,0.993352,21.42204,12.06544 0.163532334,1.230400591,0.997827,0.341891,0.995279,0.99718,460.2225,2.924911 1.298719553,0.357596562,0.998554,0.395159,0.999795,0.999946,691.5495,2.530627 0.32206147,0.23243646,0.993257,0.21522,0.997817,0.999601,148.2953,4.646398 0.641027836,0.712584195,0.991598,0.194941,0.998887,0.999727,119.023,5.129762 0.636944829,-0.495739195,0.996391,0.280763,0.999371,0.99969,277.122,3.561725 0.790517951,-0.496321234,0.970167,0.10504,0.997226,0.995539,33.51995,9.520198 -0.473560475,0.227734761,0.970137,0.104985,0.916127,0.963155,33.48646,9.525131 -0.316957476,-0.495739195,0.991529,0.194208,0.900756,0.973759,118.0447,5.149119 0.947874395,-0.981170668,0.970167,0.10504,0.989606,0.986317,33.51995,9.520198 0.470589104,-0.86416163,0.932298,0.067532,0.985506,0.977079,14.77062,14.8078 0.312500254,-0.377099397,0.944258,0.075239,0.985659,0.952452,17.93983,13.29092 0,-0.010276323,0.975681,0.11666,0.977998,0.911104,41.11986,8.571902 0,-1.236378196,0.987147,0.159814,0.97716,0.863095,77.80166,6.257281 -0.940445803,-0.997352892,0.897593,0.053199,0.571132,0.130312,9.764992,18.79744 -0.315457675,-0.628142178,0.930467,0.066526,0.622688,0.094451,14.38174,15.03183 -1.913934021,-1.762341463,0.962582,0.093289,0.063426,0.058408,26.72524,10.71939 0,-1.656965182,0.775512,0.032228,0.225625,0.08805,4.454573,31.02891 -0.161160389,-1.157424807,0.806314,0.035662,0.254053,0.081773,5.163006,28.04107 -0.161420535,-1.427427097,0.909745,0.057296,0.312242,0.082945,11.07976,17.45337 -0.161681523,0.268101786,0.862067,0.044401,0.350647,0.075984,7.249919,22.52179 -0.324149392,0.005641591,0.992108,0.200568,0.35564,0.08417,126.7146,4.985841 0.162206037,-0.645655199,0.987499,0.161951,0.560933,0.093965,79.99656,6.174707 -0.162206037,-0.254775223,0.961449,0.091826,0.537342,0.049522,25.93994,10.89017 -0.651468102,-0.12431206,0.980323,0.129794,0.374913,0.026253,50.81974,7.704538 -1.98026273,-0.515871977,0.984317,0.145166,0.047826,0.01706,63.76256,6.888671 -0.668898815,0.266738345,0.969118,0.103172,0.07057,0.089974,32.38137,9.69252 2.32182901,2.058952669,0.992089,0.200351,0.996504,0.998615,126.4116,4.99125 0.816331064,1.133259681,0.999666,0.598297,0.999608,0.999748,2994.507,1.671411 -0.325733187,0.990570885,0.998283,0.372317,0.996151,0.998366,582.4516,2.685885 0,0.975252586,0.997791,0.339796,0.995483,0.998675,452.6639,2.942944 0.48820276,0.960306556,0.99773,0.336386,0.998223,0.999443,440.5808,2.972771 0.485830915,0.227153421,0.99767,0.333076,0.999307,0.999532,429.103,3.002315 0.483482005,-0.134655088,0.99152,0.194118,0.998995,0.998427,117.9244,5.151519 -0.32206147,-0.254775223,0.984032,0.143894,0.97904,0.983415,62.62387,6.949559 -0.485045413,-0.134799203,0.980323,0.129794,0.938173,0.975489,50.81974,7.704538 1.607751673,0.342955188,0.984028,0.143876,0.998955,0.999299,62.60816,6.950412 0.635932191,0.576090091,0.993081,0.212771,0.998925,0.999286,144.5267,4.699884 0.47430919,0.686408196,0.99541,0.254182,0.999189,0.999475,217.8529,3.934195 1.098050248,1.601426563,0.996221,0.275536,0.999835,0.999777,264.6192,3.629292 2.313133202,1.001666206,0.99925,0.485837,0.999997,0.999999,1332.794,2.058304 0.607904608,0.761608456,0.997834,0.342276,0.999278,0.999798,461.6227,2.921621 0.754720564,0.751381952,0.99669,0.290713,0.999428,0.999787,302.1553,3.439816 1.640603539,0.189176672,0.99663,0.28862,0.999933,0.999716,296.7525,3.464758 -0.148038517,0.297407296,0.990936,0.188277,0.969096,0.967757,110.3223,5.311322 0.295858204,0.403844063,0.992504,0.205282,0.986593,0.970996,133.4085,4.871345 -0.147819687,0.941541383,0.993783,0.223091,0.977096,0.968988,160.8614,4.482476 1.322576222,0.927398674,0.997591,0.328943,0.998801,0.998864,415.1158,3.040036 1.016711736,0.702169879,0.99753,0.325846,0.999704,0.999857,404.8768,3.068933 1.434744841,0.272930487,0.996325,0.278676,0.999925,0.999983,272.0782,3.588396 1.273902578,0.688133806,0.992175,0.201339,0.999748,0.999938,127.7938,4.966745 0.84034108,0.679326017,0.996232,0.275879,0.999342,0.999808,265.4257,3.624783 0.139372845,0.260424268,0.996173,0.274132,0.995875,0.999113,261.3349,3.647877 1.383147915,0.257783562,0.992001,0.199346,0.999666,0.999877,125.0176,5.016393 0,-0.254775223,0.991964,0.198928,0.989225,0.998045,124.4392,5.026955 0.274348595,-0.459483585,0.980323,0.129794,0.990614,0.998648,50.81974,7.704538 0.546449447,-0.254775223,0.97197,0.108478,0.99436,0.99884,35.67552,9.218444 0.678889233,-0.357286764,0.980323,0.129794,0.996777,0.998968,50.81974,7.704538 0.674311388,-0.357391958,0.976499,0.118706,0.997527,0.998412,42.55193,8.424158 -0.134499012,-1.079522166,0.976495,0.118695,0.975119,0.994022,42.5442,8.424935 0.80429388,0.158448506,0.920447,0.061627,0.992724,0.988967,12.57021,16.22671 0.399734043,-0.357921183,0.990434,0.183651,0.995204,0.97519,104.5345,5.445116 0,0.054344034,0.976474,0.11864,0.983656,0.800248,42.50529,8.428844 -1.608613775,-1.705577872,0.98852,0.168633,0.562207,0.511364,87.10935,5.930029 -1.360565206,-0.568418972,0.79252,0.034036,0.096388,0.35606,4.819741,29.38059 -0.411805661,-1.413292656,0.966209,0.098436,0.204065,0.69766,29.59395,10.15889 0.411805661,0.273488024,0.865016,0.045002,0.595717,0.908375,7.408271,22.22136 -0.137080213,-2.169727356,0.992183,0.201428,0.72574,0.984782,127.919,4.964546 1.227009259,-0.685346394,0.626806,0.021725,0.950442,0.993143,2.679573,46.0302 0.27063616,-1.995842053,0.958759,0.088587,0.947225,0.991789,24.24776,11.2884 -0.542006747,-1.469588616,0.695583,0.025721,0.43882,0.956923,3.284971,38.87884 -0.272109011,-2.843552318,0.852951,0.042656,0.385227,0.973482,6.800439,23.44344 0.407886357,-3.029519711,0.337541,0.011234,0.365046,0.940246,1.509526,89.01414 -0.680737823,-2.507389736,0.268259,0.009355,0.042072,0.326115,1.366603,106.8957 -2.910808416,-3.051310047,0.480212,0.015625,0.000167,0.001551,1.92386,64.00167 -4.311012365,-2.751783857,0.260755,0.009156,3.22E-07,1.93E-07,1.352731,109.2157 -2.678731596,-1.655180031,0.374766,0.012295,0.000114,2.04E-05,1.599401,81.33679 -1.519786091,-0.254775223,0.806807,0.035723,0.00992,0.001681,5.176182,27.9931 -1.854767236,0.638657651,0.980323,0.129794,0.018244,0.021481,50.81974,7.704538 0.931683758,2.872433952,0.995889,0.266158,0.990389,0.984939,243.2517,3.757172 -0.309597771,2.058170247,0.999921,0.769845,0.997879,0.994669,12636.12,1.298963 1.232681248,1.178941092,0.999666,0.59811,0.999963,0.999962,2990.363,1.671934 0.610688921,1.392320837,0.998416,0.382994,0.999825,0.999856,631.4245,2.611004 1.810004164,1.135745444,0.998914,0.434224,0.999994,0.999998,920.7675,2.302958 1.040901591,1.230117852,0.998291,0.372895,0.999896,0.99994,585.0158,2.681722 0.442805152,0.872632435,0.998553,0.395092,0.999374,0.999644,691.204,2.531057 1.025650017,0.74913728,0.997279,0.313996,0.999794,0.999933,367.56,3.184751 0.726219604,0.298629621,0.996617,0.288162,0.999324,0.99984,295.5797,3.470267 1.151091847,2.359752788,0.99252,0.205481,0.999698,0.999751,133.6953,4.866642 1.702168757,0.814753689,0.999804,0.667642,0.999995,0.999997,5099.394,1.497809 -0.281690327,0.169853866,0.996987,0.301731,0.988629,0.997757,331.863,3.314205 0.422238488,-0.254775223,0.990623,0.185358,0.994593,0.999175,106.6461,5.394978 1.11733006,0.694098528,0.980323,0.129794,0.998718,0.999598,50.81974,7.704538 0.138792527,0.581175309,0.996272,0.277065,0.996593,0.999107,268.2325,3.609258 0.553251757,0.986192099,0.995451,0.255142,0.999018,0.999604,219.8138,3.919393 0.550207715,-0.152053077,0.997774,0.33882,0.999449,0.999824,449.1764,2.951424 0.273972774,0.052759617,0.98354,0.141776,0.994496,0.998736,60.7549,7.053403 0.409556886,-0.459693327,0.988488,0.168412,0.996898,0.999458,86.86817,5.937803 1.621657159,0.256734844,0.971959,0.108458,0.999763,0.999944,35.66265,9.220158 0.801072375,0.558237386,0.991949,0.198761,0.999117,0.999664,124.2103,5.031157 0.39814253,-0.55888088,0.995263,0.25083,0.998457,0.9996,211.1068,3.986759 0.528402815,0.554127065,0.966756,0.099281,0.993206,0.997635,30.08084,10.07241 0.918039234,0.147235369,0.995229,0.250063,0.998833,0.999739,209.5836,3.998994 1.425818063,0.345226577,0.990244,0.181985,0.999803,0.999945,102.4996,5.494966 0.769234562,0.242490844,0.993108,0.21315,0.999145,0.999607,145.1049,4.691536 0.763362486,0.240030339,0.991745,0.196515,0.998918,0.9987,121.1424,5.088672 0,-0.452403745,0.99171,0.196129,0.989358,0.993594,120.6202,5.098689 0.126662462,0.140092023,0.972309,0.109161,0.978339,0.987864,36.11284,9.160778 0.505051579,0.138538952,0.990121,0.18093,0.993744,0.988417,101.2242,5.527014 0,-0.352958834,0.990094,0.180701,0.99008,0.98104,100.9491,5.534012 0.125865341,0.235181662,0.976674,0.119157,0.989489,0.964464,42.8715,8.39227 -0.504414689,0.524196584,0.991639,0.19537,0.969856,0.948772,119.5979,5.118502 -0.379987791,-1.425520302,0.99497,0.244522,0.967665,0.959038,198.8198,4.08961 0.25348556,0.721795039,0.862468,0.044482,0.970092,0.955156,7.271051,22.48101 1.257878221,-0.157640684,0.99645,0.282616,0.99851,0.999025,281.6611,3.538364 2.469261259,0.807523517,0.98338,0.141101,0.99996,0.999993,60.16677,7.087137 0.365186042,-0.062836584,0.996948,0.300219,0.998383,0.999737,327.6553,3.330906 0.967359418,-0.063204283,0.985911,0.152919,0.99885,0.999653,70.97817,6.539414 0.240384731,-0.1591272,0.985902,0.152872,0.985968,0.996845,70.93264,6.54144 0.359497092,0.12690463,0.983336,0.140922,0.985582,0.997137,60.01128,7.096143 0.596304689,0.787394324,0.98989,0.178994,0.995791,0.999151,98.91166,5.586781 0.474496738,0.683317961,0.996838,0.29603,0.998119,0.999621,316.2206,3.378041 0.824989947,-1.004544433,0.9962,0.274923,0.99947,0.999879,263.1811,3.637385 0.234466696,-1.105040147,0.929639,0.066083,0.973479,0.994679,14.21246,15.13255 -0.351906522,-0.349696919,0.917076,0.060175,0.837521,0.975782,12.05919,16.6181 0.819197091,-0.065021845,0.976806,0.119498,0.981506,0.995373,43.11398,8.368327 0.349040494,0.312334048,0.985857,0.152638,0.988305,0.995471,70.70799,6.551467 -1.05079776,-1.774272644,0.992698,0.207715,0.894287,0.99297,136.9538,4.814297 1.166874383,0.317745425,0.771813,0.03186,0.988582,0.995563,4.382375,31.38737 -0.116076624,-0.731647848,0.992767,0.208602,0.980489,0.994129,138.2624,4.793824 -0.582412829,-1.699191283,0.955394,0.084938,0.901932,0.98689,22.41829,11.77325 -0.351082865,-0.643502631,0.794373,0.034246,0.786776,0.97531,4.86317,29.20089 0.234192145,0.036911907,0.96159,0.092005,0.907804,0.989016,26.03516,10.86902 0.583092031,-1.623320531,0.988165,0.166217,0.980553,0.997262,84.49271,6.016248 -0.349447065,-1.045293173,0.815446,0.036831,0.813883,0.981361,5.418479,27.1512 -0.116754246,-0.45338502,0.924772,0.063625,0.84513,0.988189,13.29296,15.71707 0.349854584,0.339874696,0.972262,0.109066,0.941725,0.996621,36.0519,9.168746 0.348634868,0.04122894,0.993043,0.212258,0.976028,0.998566,143.7461,4.711237 0,-3.763907204,0.988254,0.166812,0.977807,0.996803,85.13322,5.994756 -1.991864331,-3.048542024,0.090834,0.004528,0.000994,0.000706,1.099909,220.8295 -2.395324102,-2.05471794,0.2617,0.009181,4.17E-05,7.18E-06,1.354464,108.9182 -1.219527309,1.124556991,0.673076,0.024294,0.004628,0.002611,3.058815,41.1631 -0.368777308,1.830806105,0.998257,0.370296,0.500822,0.339791,573.5626,2.70054 1.467018975,1.788196751,0.9995,0.542762,0.997952,0.997913,1999.861,1.842429 1.326119494,1.945313517,0.999461,0.532227,0.99995,0.999976,1854.638,1.878896 0.597016699,1.120492033,0.999592,0.570858,0.999914,0.999955,2449.021,1.75175 1.76995771,1.294142482,0.998244,0.369354,0.999986,0.999964,569.4573,2.707429 0.466745305,-1.511437483,0.998708,0.410407,0.999244,0.997526,774.035,2.436604 -0.818239515,-0.254775223,0.843414,0.040988,0.326695,0.486205,6.386265,24.39728 0.234466696,-1.527430677,0.980323,0.129794,0.620234,0.57859,50.81974,7.704538 0.350672481,0.236626258,0.839639,0.040367,0.727452,0.531554,6.235911,24.77242 -0.820156911,1.20510472,0.99166,0.195596,0.466363,0.540615,119.9016,5.112589 0.703402666,-0.06172497,0.998488,0.389162,0.916907,0.973143,661.3095,2.569624 0.582412829,-1.223775053,0.985938,0.153062,0.963691,0.982081,71.11601,6.533293 1.154747242,-0.938705588,0.899626,0.053834,0.990701,0.975191,9.962739,18.57575 -0.229885159,-0.156784034,0.936891,0.070241,0.897689,0.783124,15.84569,14.23678 -0.461361833,-2.333029141,0.983404,0.141204,0.794385,0.753315,60.25656,7.081953 -0.812540744,-1.766139004,0.557115,0.018528,0.171532,0.036557,2.257921,53.97118 -1.17234637,-0.967972336,0.774339,0.03211,0.027752,0.003402,4.431428,31.14254 -0.828897582,-0.254775223,0.933758,0.068363,0.035629,0.005839,15.09614,14.62774 -2.042113006,-0.87016178,0.980323,0.129794,0.003098,0.009828,50.81974,7.704538 2.160948433,1.479077494,0.943696,0.074825,0.992471,0.778072,17.76086,13.36448 -0.595594375,-0.86329637,0.999068,0.45553,0.972901,0.732705,1073.447,2.195245 -0.599162967,0.555766196,0.944339,0.075299,0.853426,0.378938,17.9658,13.28034 -0.60277458,0.04749201,0.995242,0.250369,0.790276,0.371875,210.1897,3.994109 -0.363416511,-0.860226113,0.988382,0.16768,0.753714,0.363695,86.07119,5.96374 -0.486618965,0.350675668,0.944624,0.075512,0.714989,0.324441,18.05826,13.2429 -0.488998529,-0.860226113,0.993174,0.21406,0.729723,0.323841,146.5017,4.671584 -0.73801073,1.550690069,0.944624,0.075512,0.580812,0.261166,18.05826,13.2429 -0.867953372,0.931009422,0.999179,0.473244,0.578198,0.277407,1218.394,2.113077 -0.374298628,0.917113189,0.997546,0.326635,0.707543,0.30974,407.4666,3.061517 -0.878850603,1.382237742,0.997485,0.323603,0.61892,0.334752,397.5898,3.090206 1.873883689,1.731105642,0.998894,0.431762,0.99695,0.995893,904.496,2.31609 -0.123839025,1.875921409,0.999404,0.518069,0.996208,0.996239,1676.458,1.930245 0.740744128,1.831468243,0.999538,0.553874,0.999562,0.999449,2166.045,1.805464 1.222509113,1.61277572,0.999501,0.542925,0.999954,0.999948,2002.206,1.841874 1.087624014,1.318683813,0.999265,0.488657,0.999952,0.99995,1359.821,2.046425 0.599162967,1.123368898,0.998763,0.416326,0.999804,0.999831,808.3585,2.401964 1.8935477,0.851148427,0.998253,0.370021,0.99999,0.999997,572.3597,2.702551 1.396995944,-0.085713475,0.997174,0.309412,0.999894,0.999984,353.881,3.231936 1.605539075,0.753636684,0.985337,0.149995,0.999741,0.99988,68.20089,6.666895 0.793205292,0.991605682,0.996644,0.289081,0.999183,0.999596,297.9353,3.459237 0.225479239,0.40366337,0.997795,0.340027,0.997023,0.999054,453.492,2.940945 0.449438959,-0.09084076,0.993781,0.22306,0.996934,0.999197,160.8103,4.483102 1.997846693,0.560889985,0.985206,0.149346,0.999907,0.99996,67.5937,6.695867 -0.109950533,-0.011367395,0.995285,0.251326,0.991229,0.998241,212.0957,3.97889 1.094102818,-0.335845353,0.987122,0.159668,0.999193,0.999842,77.65346,6.262989 0.542594929,-0.254775223,0.977355,0.120955,0.994139,0.998968,44.15939,8.267515 0.647251451,-0.498380702,0.980323,0.129794,0.995376,0.998917,50.81974,7.704538 0.536194314,-1.235175232,0.970031,0.104793,0.994501,0.997714,33.36824,9.542611 0.426894992,-0.666129155,0.897789,0.053259,0.971946,0.979953,9.783677,18.77616 0.106439606,-0.585081056,0.960083,0.090142,0.962867,0.966886,25.05222,11.09362 -0.106439606,-0.503222555,0.965233,0.096975,0.940936,0.950183,28.76288,10.31193 -0.748266452,-1.254783556,0.969781,0.104342,0.76834,0.931916,33.092,9.583847 0.107238616,0.32977759,0.894559,0.052284,0.860669,0.934184,9.484018,19.12623 -0.537346806,-0.088385833,0.992919,0.210584,0.811555,0.946245,141.2174,4.748694 0.322754449,0.655450342,0.985269,0.149656,0.932476,0.981206,67.88373,6.681977 0.749067173,-0.007963086,0.996009,0.269432,0.986391,0.998054,250.5611,3.711506 0.319319058,0.155229452,0.987199,0.160123,0.989896,0.998346,78.1168,6.2452 0.424178791,-0.582644369,0.99038,0.183171,0.994851,0.998571,103.9462,5.45937 0.211416569,0.481424422,0.965377,0.097188,0.985318,0.994002,28.88289,10.28939 -0.317292704,0.637725631,0.994577,0.236749,0.974389,0.994064,184.3947,4.223877 -0.318302656,-0.012742027,0.995882,0.265977,0.972779,0.996001,242.8523,3.759729 0.424178791,0.547797304,0.987091,0.159485,0.991157,0.997657,77.46716,6.27019 0.52770571,0.303217457,0.995175,0.248884,0.997095,0.998412,207.2595,4.017933 -0.845671002,-0.095918954,0.99258,0.206226,0.964595,0.994523,134.7773,4.849039 0.423729448,-0.096170907,0.985074,0.148705,0.992983,0.999185,66.99774,6.724707 1.0515344,0.848466858,0.985068,0.148674,0.998878,0.999535,66.96831,6.726142 0.521649592,0.058214078,0.997161,0.308843,0.999332,0.999044,352.2099,3.237896 -0.626306849,0.44588938,0.988598,0.169174,0.97062,0.975742,87.70129,5.911089 -0.946877143,0.518026151,0.994227,0.230423,0.8624,0.970184,173.2137,4.339852 0.21119332,0.741020061,0.994915,0.24339,0.960821,0.990965,196.6708,4.108629 0,-0.178584743,0.996568,0.286509,0.980038,0.995015,291.3771,3.49029 -0.422833611,0.352667799,0.982763,0.138595,0.967675,0.993153,58.0133,7.215263 0.422833611,0.1230114,0.993198,0.214394,0.992047,0.998513,147.0157,4.664316 0.210748234,-0.179388864,0.989821,0.178426,0.993555,0.998815,98.23918,5.604575 0.105207795,-0.179445652,0.982738,0.1385,0.992219,0.99878,57.9322,7.220236 0.524385051,0.719380102,0.982737,0.138493,0.996896,0.999182,57.92648,7.220587 0.625653761,0.56216211,0.996434,0.28213,0.999026,0.999748,280.4639,3.544468 0.518404479,1.140767073,0.995296,0.251565,0.999154,0.999728,212.5717,3.975124 -0.207039411,-0.620139166,0.998306,0.374063,0.997592,0.999653,590.2304,2.673344 1.133448507,0.401921774,0.963089,0.093964,0.999194,0.999772,27.09228,10.64234 0.612872194,0.108201582,0.993762,0.22276,0.998998,0.999717,160.3183,4.48914 0.101781179,0.106888824,0.989553,0.176277,0.994797,0.998924,95.72304,5.6729 0.911398714,0.249367005,0.989529,0.176087,0.999216,0.999878,95.50317,5.679005 0.903167203,0.745947925,0.991844,0.197597,0.999333,0.999799,122.6137,5.060805 0.696866932,0.665585256,0.996598,0.287512,0.999538,0.99986,293.9212,3.478115 0.19821612,0.587335017,0.99608,0.271421,0.998165,0.999422,255.0789,3.684312 -0.099058948,-0.184918426,0.9955,0.256308,0.994129,0.998841,222.2128,3.901563 1.37797456,-0.955548938,0.982572,0.137845,0.999626,0.999936,57.37764,7.254539 -0.097799519,-1.671229499,0.935105,0.069154,0.930233,0.995009,15.40958,14.46039 0.390625497,-0.755312557,0.80234,0.035177,0.948296,0.994171,5.059202,28.42743 0.873367997,-0.541925456,0.953574,0.083127,0.991467,0.997363,21.53958,12.02982 0,1.030956775,0.967707,0.100799,0.964467,0.989474,30.96693,9.920704 0.38572854,0.099458233,0.997943,0.348864,0.992199,0.99849,486.1363,2.866449 0.38424639,0.027710841,0.989392,0.175018,0.994663,0.998948,94.26824,5.713712 0.478240988,-0.254775223,0.987973,0.164952,0.99638,0.999246,83.14381,6.062363 0.190657827,1.284793325,0.980323,0.129794,0.992561,0.997475,50.81974,7.704538 1.042169546,-1.021596687,0.998687,0.408159,0.999528,0.999925,761.3466,2.450024 0.282353129,0.512046241,0.927639,0.065044,0.975543,0.993616,13.81959,15.37428 -0.18814681,-0.532939519,0.994862,0.242297,0.971926,0.996641,194.6104,4.127172 0.282087634,-0.046079495,0.968201,0.101612,0.982953,0.997814,31.44742,9.841334 0.374883288,-0.115886311,0.986317,0.15509,0.990888,0.998919,73.08507,6.447859 0.466636404,0.367848719,0.984545,0.146209,0.995251,0.99914,64.7057,6.83953 0.278940209,0.363996088,0.993377,0.216948,0.996696,0.99937,150.9929,4.609406 -0.092893643,-0.460607199,0.993332,0.216297,0.993101,0.999184,149.9734,4.623263 0.092893643,-0.805740804,0.971915,0.10837,0.987592,0.998861,35.60662,9.227633 0.832182334,0.364848102,0.949458,0.079383,0.996554,0.998853,19.7855,12.59712 -0.276625349,-1.151023897,0.993342,0.216441,0.98859,0.997907,150.1983,4.620194 0.0922935,-0.393375383,0.910671,0.05764,0.972372,0.992142,11.19463,17.34896 -0.555043053,-0.324147407,0.974988,0.115002,0.903768,0.986716,39.98042,8.69547 0.370370794,0.29885941,0.977809,0.122198,0.974867,0.993904,45.06244,8.183451 0,-0.254775223,0.992523,0.205518,0.983604,0.995434,133.7493,4.865758 -0.463178225,-0.600437509,0.980323,0.129794,0.957314,0.993103,50.81974,7.704538 0.370714048,-0.116366896,0.964309,0.095646,0.985209,0.995093,28.01833,10.45524 0.461468285,0.228150863,0.984532,0.146149,0.993298,0.99477,64.65153,6.842322 -1.018055993,-0.18597577,0.991535,0.194273,0.925053,0.98478,118.131,5.147402 0.925932541,-1.152881432,0.98254,0.13772,0.994723,0.998705,57.27221,7.261119 0.367985696,0.643330987,0.910404,0.05754,0.979827,0.993702,11.16116,17.37919 -0.091869552,-0.392421493,0.995923,0.267066,0.985953,0.997027,245.2641,3.744387 0.549955557,0.294676709,0.975029,0.115099,0.995689,0.997797,40.0463,8.688173 0.637815374,-0.117882662,0.992468,0.204839,0.998109,0.997892,132.77,4.881873 0.272109011,-0.254775223,0.984492,0.145961,0.995294,0.993997,64.48097,6.851136 0.090538711,-1.493607308,0.980323,0.129794,0.990487,0.977956,50.81974,7.704538 0.090456813,-1.089272416,0.847537,0.041691,0.931279,0.673766,6.558985,23.98603 -0.634922768,-1.449028967,0.919174,0.061068,0.690833,0.311984,12.37223,16.37508 -1.46657074,-1.535020305,0.857457,0.043499,0.106714,0.061139,7.015435,22.98918 -1.020890537,-0.326382816,0.837821,0.040076,0.043505,0.052134,6.166036,24.95254 -0.56127369,-0.829489448,0.977723,0.12196,0.099843,0.083295,44.88842,8.19944 -0.847861886,0.891369129,0.947402,0.077674,0.061426,0.095738,19.01212,12.8743 -0.664454272,0.454950964,0.997368,0.318024,0.171692,0.313946,379.9219,3.144416 0.285306898,0.309401168,0.994318,0.232025,0.650277,0.650277,175.9985,4.309888 \ No newline at end of file diff --git a/statsmodels/tsa/regime_switching/tests/results/results_predict_fedfunds.csv b/statsmodels/tsa/regime_switching/tests/results/results_predict_fedfunds.csv new file mode 100644 index 0000000..7928eb3 --- /dev/null +++ b/statsmodels/tsa/regime_switching/tests/results/results_predict_fedfunds.csv @@ -0,0 +1,227 @@ +const_p1,const_p2,const_f1,const_f2,const_sm1,const_sm2,const_yhat1,const_yhat2,const_pyhat,const_fyhat,const_syhat,constL1exog_syhat,constL1exog_syhat1,constL1exog_syhat2 +.7376958,.2623042,.9997776,.0002225,.9999886,.0000114,3.70877,9.556793,5.242731,3.710071,3.708837,,, +.9818866,.0181134,.999989,.000011,.9999995,5.62e-07,3.70877,9.556793,3.814698,3.708834,3.708773,,, +.9820836,.0179164,.9999828,.0000172,.9999991,8.81e-07,3.70877,9.556793,3.813545,3.70887,3.708775,,, +.9820778,.0179221,.9999788,.0000212,.9999989,1.09e-06,3.70877,9.556793,3.813579,3.708894,3.708776,,, +.9820741,.0179259,.9999622,.0000378,.999998,1.95e-06,3.70877,9.556793,3.813601,3.708991,3.708781,1.831308,2.472625,1.392144 +.9820586,.0179414,.9999341,.0000659,.9999966,3.39e-06,3.70877,9.556793,3.813692,3.709155,3.70879,2.268597,2.839436,1.934797 +.9820325,.0179675,.9999228,.0000772,.999996,3.98e-06,3.70877,9.556793,3.813844,3.709222,3.708793,2.504288,3.019767,2.2552 +.9820219,.0179781,.9998981,.0001019,.9999948,5.26e-06,3.70877,9.556793,3.813906,3.709366,3.708801,2.707525,3.046899,2.523101 +.9819989,.0180011,.9998805,.0001195,.9999938,6.17e-06,3.70877,9.556793,3.814041,3.709469,3.708806,2.969676,3.084172,2.896406 +.9819825,.0180175,.9998599,.0001401,.9999928,7.24e-06,3.70877,9.556793,3.814137,3.709589,3.708812,3.18926,3.243036,3.146579 +.9819633,.0180367,.9998598,.0001402,.9999927,7.25e-06,3.70877,9.556793,3.814249,3.70959,3.708812,3.376379,3.322518,3.43591 +.9819632,.0180368,.9998462,.0001538,.999992,7.97e-06,3.70877,9.556793,3.81425,3.709669,3.708817,3.273995,3.161087,3.438036 +.9819506,.0180494,.9997917,.0002083,.9999892,.0000108,3.70877,9.556793,3.814323,3.709988,3.708833,3.302091,3.209093,3.468282 +.9818998,.0181002,.9997855,.0002144,.999989,.000011,3.70877,9.556793,3.81462,3.710024,3.708834,3.190691,3.082165,3.518581 +.9818941,.0181059,.9999656,.0000344,.9999982,1.77e-06,3.70877,9.556793,3.814654,3.708971,3.70878,2.676074,2.657601,3.506871 +.9820618,.0179382,.9999899,.0000102,.9999995,5.21e-07,3.70877,9.556793,3.813673,3.708829,3.708773,1.505545,1.462715,2.16521 +.9820844,.0179156,.9999833,.0000167,.9999992,8.60e-07,3.70877,9.556793,3.813541,3.708868,3.708775,1.018261,.958331,1.162562 +.9820783,.0179217,.9999495,.0000506,.9999974,2.60e-06,3.70877,9.556793,3.813577,3.709066,3.708785,1.511617,1.521546,1.493146 +.9820467,.0179533,.9999131,.0000869,.9999955,4.50e-06,3.70877,9.556793,3.813761,3.709278,3.708796,2.263951,2.353165,2.083339 +.9820129,.0179871,.9998296,.0001704,.9999911,8.89e-06,3.70877,9.556793,3.813959,3.709766,3.708822,2.748969,2.898975,2.406418 +.9819351,.0180649,.9996696,.0003304,.9999825,.0000175,3.70877,9.556793,3.814414,3.710702,3.708872,3.084917,3.156353,2.964966 +.981786,.018214,.9994285,.0005715,.9999698,.0000301,3.70877,9.556793,3.815286,3.712112,3.708946,3.503891,3.489995,3.520062 +.9815614,.0184387,.9994652,.0005348,.999972,.000028,3.70877,9.556793,3.8166,3.711897,3.708934,3.986069,4.035326,3.934834 +.9815956,.0184044,.9996057,.0003944,.9999796,.0000204,3.70877,9.556793,3.8164,3.711076,3.708889,3.845686,3.776379,3.920848 +.9817264,.0182736,.999856,.000144,.9999926,7.41e-06,3.70877,9.556793,3.815634,3.709612,3.708813,3.53088,3.489225,3.580799 +.9819597,.0180403,.9999388,.0000612,.9999968,3.14e-06,3.70877,9.556793,3.81427,3.709128,3.708788,2.659254,2.546042,2.803689 +.9820368,.0179632,.9999589,.000041,.9999979,2.11e-06,3.70877,9.556793,3.813819,3.70901,3.708782,2.095736,1.980844,2.224948 +.9820556,.0179444,.9999713,.0000287,.9999985,1.48e-06,3.70877,9.556793,3.813709,3.708938,3.708779,1.852,1.863727,1.839663 +.982067,.0179329,.9999731,.0000269,.9999986,1.38e-06,3.70877,9.556793,3.813642,3.708927,3.708778,1.705161,1.723561,1.684164 +.9820688,.0179312,.9999306,.0000694,.9999964,3.57e-06,3.70877,9.556793,3.813632,3.709176,3.708791,1.730321,1.840032,1.567684 +.9820292,.0179708,.9999248,.0000752,.9999961,3.88e-06,3.70877,9.556793,3.813864,3.70921,3.708793,2.431717,2.542717,2.304694 +.9820237,.0179763,.9999083,.0000917,.9999953,4.73e-06,3.70877,9.556793,3.813895,3.709306,3.708798,2.513138,2.57788,2.44728 +.9820084,.0179916,.9998741,.0001259,.9999935,6.50e-06,3.70877,9.556793,3.813985,3.709506,3.708808,2.62614,2.693316,2.561214 +.9819766,.0180234,.9998617,.0001383,.9999928,7.15e-06,3.70877,9.556793,3.814172,3.709579,3.708812,2.791865,2.801997,2.782812 +.981965,.018035,.9998522,.0001478,.9999924,7.64e-06,3.70877,9.556793,3.814239,3.709634,3.708815,2.851919,2.871364,2.834998 +.9819561,.0180438,.9998541,.0001459,.9999924,7.58e-06,3.70877,9.556793,3.814291,3.709624,3.708814,2.906022,2.966903,2.852718 +.9819579,.0180421,.9997625,.0002375,.9999877,.0000124,3.70877,9.556793,3.814281,3.710159,3.708842,3.009227,3.079246,2.945725 +.9818726,.0181274,.9997206,.0002794,.9999855,.0000145,3.70877,9.556793,3.81478,3.710404,3.708855,3.324776,3.365401,3.290619 +.9818335,.0181665,.9997162,.0002838,.9999852,.0000148,3.70877,9.556793,3.815008,3.710429,3.708857,3.525028,3.609638,3.459325 +.9818295,.0181705,.9997047,.0002953,.9999846,.0000154,3.70877,9.556793,3.815032,3.710497,3.70886,3.538539,3.633008,3.467517 +.9818187,.0181813,.999716,.000284,.9999852,.0000148,3.70877,9.556793,3.815094,3.710431,3.708857,3.540229,3.700191,3.420547 +.9818292,.0181708,.9996676,.0003324,.9999824,.0000176,3.70877,9.556793,3.815033,3.710714,3.708873,3.489318,3.58355,3.411572 +.9817842,.0182159,.9994432,.0005567,.9999704,.0000296,3.70877,9.556793,3.815297,3.712026,3.708943,3.71,3.888904,3.552691 +.9815751,.0184249,.9993491,.000651,.9999654,.0000345,3.70877,9.556793,3.816519,3.712577,3.708972,4.116197,4.243034,4.028508 +.9814873,.0185127,.9993544,.0006456,.9999655,.0000345,3.70877,9.556793,3.817033,3.712545,3.708972,4.275736,4.45837,4.177522 +.9814923,.0185077,.9992639,.0007361,.9999595,.0000405,3.70877,9.556793,3.817003,3.713075,3.709007,4.358746,4.631372,4.229281 +.9814079,.018592,.9987648,.0012353,.9999287,.0000713,3.70877,9.556793,3.817497,3.715994,3.709187,4.642481,4.897738,4.507643 +.9809429,.0190571,.9979933,.0020067,.9998719,.0001281,3.70877,9.556793,3.820216,3.720505,3.709519,4.978095,5.104101,4.899562 +.9802241,.0197758,.9959831,.0040169,.9997402,.0002598,3.70877,9.556793,3.824419,3.732261,3.710289,5.337822,5.337117,5.338327 +.9783511,.0216489,.9946395,.0053605,.9996985,.0003016,3.70877,9.556793,3.835373,3.740119,3.710534,5.794573,5.714682,5.857948 +.9770993,.0229007,.9978499,.0021501,.9998862,.0001139,3.70877,9.556793,3.842694,3.721344,3.709436,5.836755,5.830125,5.841867 +.9800906,.0199095,.9993742,.0006258,.999967,.000033,3.70877,9.556793,3.825201,3.71243,3.708963,5.059279,5.070888,5.051047 +.9815108,.0184892,.9994912,.0005088,.999971,.000029,3.70877,9.556793,3.816895,3.711745,3.70894,4.323678,4.35304,4.303565 +.9816198,.0183802,.999269,.000731,.9998878,.0001122,3.70877,9.556793,3.816258,3.713045,3.709426,4.248055,4.227117,4.262413 +.9814128,.0185872,.998329,.0016709,.9979967,.0020033,3.70877,9.556793,3.817469,3.718542,3.720485,4.661473,4.576157,4.716111 +.980537,.019463,.9916658,.0083341,.9764566,.0235434,3.70877,9.556793,3.82259,3.757508,3.846452,5.306712,5.161865,5.393076 +.9743286,.0256714,.9895275,.0104725,.9249268,.0750732,3.70877,9.556793,3.858897,3.770013,4.1478,6.332373,6.099176,6.564503 +.9723363,.0276637,.9889915,.0110085,.7923684,.2076316,3.70877,9.556793,3.870548,3.773148,4.923005,6.284777,5.982467,6.53833 +.9718368,.0281632,.974013,.0259869,.4413242,.5586758,3.70877,9.556793,3.873469,3.860742,6.975919,6.478172,6.03827,6.593009 +.9578809,.0421191,.7088267,.2911734,.0466012,.9533988,3.70877,9.556793,3.955084,5.411559,9.284268,7.296552,6.460438,7.30485 +.7107974,.2892026,.1005571,.8994429,.0029009,.997099,3.70877,9.556793,5.400033,8.968733,9.539828,8.867719,7.869485,8.93118 +.1440513,.8559487,.0080047,.9919953,.0011666,.9988334,3.70877,9.556793,8.714377,9.509981,9.549972,9.045574,8.212791,9.553485 +.057817,.942183,.0047662,.9952338,.0074692,.9925308,3.70877,9.556793,9.218678,9.52892,9.513113,8.329976,8.020488,9.562139 +.0547995,.9452005,.0110985,.9889015,.0864779,.9135221,3.70877,9.556793,9.236324,9.491889,9.051068,7.654822,7.611776,9.151626 +.0606996,.9393004,.0558457,.9441543,.4809731,.5190269,3.70877,9.556793,9.20182,9.230206,6.744051,7.049016,7.046554,8.435221 +.1023921,.8976079,.3161151,.6838849,.8977214,.1022786,3.70877,9.556793,8.958002,7.708145,4.306898,5.81704,5.814537,7.256321 +.3448943,.6551057,.9529809,.0470191,.9972818,.0027182,3.70877,9.556793,7.539844,3.983739,3.724666,5.139013,5.13464,6.098828 +.9382845,.0617155,.9957243,.0042758,.9997301,.0002699,3.70877,9.556793,4.069684,3.733775,3.710349,4.142889,3.688474,4.394758 +.97811,.02189,.9951816,.0048184,.9997313,.0002687,3.70877,9.556793,3.836783,3.736948,3.710341,4.85277,4.267033,5.034659 +.9776044,.0223956,.998083,.001917,.9998995,.0001005,3.70877,9.556793,3.83974,3.71998,3.709358,5.155045,4.973974,5.706321 +.9803077,.0196923,.9996578,.0003423,.9999782,.0000218,3.70877,9.556793,3.823931,3.710772,3.708898,4.571352,4.492369,5.060409 +.9817749,.0182251,.9991401,.0008599,.99976,.00024,3.70877,9.556793,3.815351,3.713799,3.710174,3.808026,3.696524,3.927749 +.9812927,.0187073,.9984251,.0015749,.995508,.004492,3.70877,9.556793,3.818171,3.71798,3.735039,4.508434,4.352981,4.597115 +.9806264,.0193736,.9972397,.0027603,.9428005,.0571995,3.70877,9.556793,3.822067,3.724912,4.043274,5.038599,4.840997,5.103775 +.979522,.020478,.9818339,.0181661,.5537605,.4462395,3.70877,9.556793,3.828526,3.815006,6.318389,5.661628,5.355406,5.692415 +.9651679,.0348321,.8530456,.1469544,.0991841,.9008158,3.70877,9.556793,3.912469,4.568163,8.976763,7.301357,6.493879,7.315054 +.8451713,.1548287,.0300818,.9699182,.0005918,.9994081,3.70877,9.556793,4.614212,9.380874,9.553332,8.715515,7.326397,8.71555 +.0783869,.921613,.0010091,.9989909,.0000196,.9999804,3.70877,9.556793,9.098385,9.550892,9.556679,9.655275,9.598218,11.60682 +.0512989,.9487011,.0015696,.9984304,.0000297,.9999703,3.70877,9.556793,9.256796,9.547614,9.55662,8.840707,8.830189,11.3388 +.0518211,.9481789,.0001252,.9998748,2.39e-06,.9999976,3.70877,9.556793,9.253742,9.556061,9.55678,10.8225,8.173305,10.8225 +.0504753,.9495247,.0000403,.9999597,.000013,.999987,3.70877,9.556793,9.261613,9.556558,9.556717,12.73945,9.477875,12.73965 +.0503962,.9496038,.001481,.998519,.0156336,.9843664,3.70877,9.556793,9.262075,9.548132,9.465368,9.974022,9.974022,13.5986 +.0517386,.9482614,.0779672,.9220328,.5556827,.4443173,3.70877,9.556793,9.254225,9.100839,6.307148,7.448603,7.448603,10.78955 +.1230035,.8769965,.4091304,.5908696,.8923706,.1076294,3.70877,9.556793,8.837466,7.164189,4.338189,4.952647,4.949996,7.614517 +.4315598,.5684401,.5858818,.4141181,.9578715,.0421285,3.70877,9.556793,7.033021,6.130542,3.955138,6.450385,4.34717,6.640697 +.5962454,.4037546,.8807697,.1192303,.9923835,.0076165,3.70877,9.556793,6.069936,4.406032,3.753312,5.116845,5.066675,7.070253 +.8710028,.1289972,.9863916,.0136084,.9991698,.0008302,3.70877,9.556793,4.463149,3.788352,3.713625,4.726859,4.65509,6.198095 +.9694145,.0305856,.9952391,.0047609,.9997077,.0002923,3.70877,9.556793,3.887635,3.736612,3.710479,5.011682,4.179649,5.589425 +.9776579,.0223421,.996165,.003835,.9997671,.0002329,3.70877,9.556793,3.839427,3.731197,3.710132,5.226906,4.46443,5.833974 +.9785206,.0214794,.9978493,.0021507,.9997901,.0002099,3.70877,9.556793,3.834382,3.721348,3.709998,4.948143,4.548041,5.824133 +.98009,.0199101,.9984894,.0015106,.9990297,.0009703,3.70877,9.556793,3.825205,3.717604,3.714444,4.763768,4.231219,5.60673 +.9806864,.0193136,.9971752,.0028248,.9879678,.0120322,3.70877,9.556793,3.821716,3.72529,3.779135,5.394799,4.155723,5.632583 +.9794618,.0205381,.9928595,.0071404,.9088904,.0911096,3.70877,9.556793,3.828877,3.750527,4.241581,6.027369,4.673698,6.074389 +.9754409,.0245591,.9790298,.0209702,.6709118,.3290882,3.70877,9.556793,3.852392,3.831404,5.633285,6.663375,5.167326,6.678365 +.9625551,.0374449,.9560277,.0439722,.3820007,.6179993,3.70877,9.556793,3.927748,3.965921,7.322845,7.225809,5.643235,7.268343 +.9411234,.0588766,.8720841,.1279159,.129078,.870922,3.70877,9.556793,4.053082,4.456825,8.801942,7.673487,6.209391,7.713082 +.8629101,.1370899,.4770057,.5229943,.0172653,.9827347,3.70877,9.556793,4.510475,6.767253,9.455826,8.397498,6.606598,8.405678 +.4948017,.5051983,.0198198,.9801801,.0003854,.9996146,3.70877,9.556793,6.663181,9.440886,9.55454,9.375547,7.32544,9.375654 +.0688255,.9311745,.0007999,.9992001,.0000152,.9999847,3.70877,9.556793,9.1543,9.552115,9.556705,10.88931,8.429197,10.90646 +.051104,.9488961,.0005044,.9994956,9.55e-06,.9999905,3.70877,9.556793,9.257936,9.553843,9.556738,11.3769,8.714792,11.54397 +.0508286,.9491714,.000182,.999818,3.43e-06,.9999965,3.70877,9.556793,9.259546,9.555729,9.556773,11.85097,8.780759,11.85222 +.0505283,.9494717,5.67e-06,.9999943,1.07e-07,.9999999,3.70877,9.556793,9.261303,9.55676,9.556793,12.74731,9.333604,12.74731 +.050364,.949636,8.16e-07,.9999992,1.54e-08,1,3.70877,9.556793,9.262263,9.556788,9.556793,15.51025,11.42102,15.51025 +.0503594,.9496406,.0000182,.9999818,3.49e-07,.9999996,3.70877,9.556793,9.26229,9.556686,9.556791,12.29176,12.29176,16.83475 +.0503757,.9496243,.0007771,.9992229,.0000147,.9999853,3.70877,9.556793,9.262195,9.552249,9.556707,10.28245,10.28245,14.30258 +.0510828,.9489172,2.89e-07,.9999997,5.45e-09,1,3.70877,9.556793,9.25806,9.556791,9.556793,11.61238,8.090569,11.61238 +.050359,.949641,1.10e-07,.9999999,2.08e-09,1,3.70877,9.556793,9.262293,9.556792,9.556793,16.97341,13.3116,16.97341 +.0503588,.9496412,2.24e-08,1,4.23e-10,1,3.70877,9.556793,9.262294,9.556793,9.556793,17.30668,13.78634,17.30668 +.0503587,.9496413,2.92e-08,1,5.50e-10,1,3.70877,9.556793,9.262294,9.556793,9.556793,18.65449,14.82626,18.65471 +.0503587,.9496413,5.58e-06,.9999944,1.05e-07,.9999999,3.70877,9.556793,9.262295,9.556761,9.556793,14.46502,14.46502,18.14064 +.0503639,.9496361,2.40e-06,.9999976,4.53e-08,.9999999,3.70877,9.556793,9.262264,9.556779,9.556793,13.93092,10.89948,13.93092 +.0503609,.9496391,1.66e-06,.9999983,3.14e-08,.9999999,3.70877,9.556793,9.262281,9.556784,9.556793,14.37497,11.42169,14.37497 +.0503602,.9496398,.0001666,.9998334,3.25e-06,.9999968,3.70877,9.556793,9.262285,9.555819,9.556774,11.54737,11.54737,14.36861 +.0505139,.9494861,.0016064,.9983935,.0000327,.9999673,3.70877,9.556793,9.261387,9.547399,9.556602,8.734435,8.595025,10.80423 +.0518555,.9481446,.0038268,.9961731,.0000769,.9999232,3.70877,9.556793,9.253541,9.534413,9.556344,8.943102,7.254905,9.04239 +.0539243,.9460757,.0032753,.9967247,.0000635,.9999365,3.70877,9.556793,9.241443,9.53764,9.556422,8.432573,6.924034,8.433858 +.0534104,.9465896,.0013624,.9986376,.0000264,.9999736,3.70877,9.556793,9.244448,9.548825,9.556639,8.448098,7.225063,8.448396 +.0516281,.9483719,.0013674,.9986326,.0000263,.9999737,3.70877,9.556793,9.25487,9.548797,9.55664,9.250766,7.924766,9.255078 +.0516328,.9483672,.0009715,.9990284,.0000184,.9999816,3.70877,9.556793,9.254844,9.551111,9.556685,9.561737,8.023977,9.564042 +.0512639,.9487361,.0003069,.9996931,5.80e-06,.9999942,3.70877,9.556793,9.257001,9.554998,9.55676,9.78944,8.368082,9.789679 +.0506446,.9493554,.0001016,.9998984,1.98e-06,.999998,3.70877,9.556793,9.260622,9.556199,9.556782,10.57913,9.117296,10.58065 +.0504534,.9495466,.0016472,.9983528,.0000347,.9999654,3.70877,9.556793,9.261741,9.54716,9.556591,9.828331,9.815725,11.32301 +.0518934,.9481066,.0047859,.9952142,.0001138,.9998862,3.70877,9.556793,9.25332,9.528806,9.556128,8.326496,8.084562,9.248471 +.0548178,.9451821,.0105388,.9894612,.0002706,.9997294,3.70877,9.556793,9.236217,9.495162,9.555211,7.968068,7.444566,8.510942 +.0601781,.9398219,.011929,.988071,.0004063,.9995937,3.70877,9.556793,9.20487,9.487032,9.554418,7.797318,7.070516,7.95793 +.0614734,.9385266,.0094017,.9905983,.0009389,.999061,3.70877,9.556793,9.197295,9.501812,9.551303,7.886533,7.040267,7.971292 +.0591185,.9408814,.0128242,.9871758,.0048718,.9951282,3.70877,9.556793,9.211066,9.481797,9.528303,7.887259,7.227557,8.072835 +.0623075,.9376925,.043543,.956457,.0229177,.9770823,3.70877,9.556793,9.192418,9.302153,9.422771,7.30066,6.993566,7.506404 +.0909292,.9090708,.1485886,.8514114,.0469927,.9530073,3.70877,9.556793,9.025037,8.687843,9.281979,6.502852,6.249644,6.661716 +.1888039,.8111961,.2728584,.7271417,.0567973,.9432027,3.70877,9.556793,8.452663,7.961112,9.224641,5.848752,5.619293,5.921072 +.3045904,.6954096,.429946,.570054,.0570281,.9429719,3.70877,9.556793,7.775541,7.042459,9.223292,6.052836,5.651648,6.12429 +.4509545,.5490455,.4453482,.5546518,.0466283,.9533718,3.70877,9.556793,6.919601,6.952386,9.28411,6.394635,5.607582,6.44189 +.4653052,.5346947,.3984752,.6015248,.0342835,.9657165,3.70877,9.556793,6.835677,7.226501,9.356303,6.87506,5.96464,6.943046 +.421632,.578368,.333094,.666906,.0239641,.9760359,3.70877,9.556793,7.09108,7.608852,9.416651,7.080949,6.236509,7.20149 +.3607141,.6392859,.3524925,.6475075,.0163044,.9836956,3.70877,9.556793,7.447329,7.495409,9.461445,7.020358,6.286122,7.17503 +.3787883,.6212117,.2334698,.7665302,.0067983,.9932017,3.70877,9.556793,7.34163,8.191457,9.517036,6.914561,6.138781,6.954099 +.2678907,.7321093,.0584654,.9415346,.0012797,.9987203,3.70877,9.556793,7.990162,9.214887,9.54931,7.437253,6.519526,7.445452 +.1048329,.8951671,.010318,.989682,.0002017,.9997983,3.70877,9.556793,8.943727,9.496453,9.555614,8.247514,7.26423,8.259493 +.0599723,.9400277,.0015812,.9984187,.0000304,.9999696,3.70877,9.556793,9.206074,9.547546,9.556616,8.800888,7.705005,8.804131 +.051832,.948168,.0009255,.9990745,.0000183,.9999818,3.70877,9.556793,9.253678,9.551381,9.556686,9.74052,8.499221,9.808734 +.051221,.948779,.0021482,.9978518,.0000448,.9999552,3.70877,9.556793,9.257252,9.54423,9.556531,9.318309,8.7498,9.981037 +.0523602,.9476398,.0040742,.9959258,.0001052,.9998948,3.70877,9.556793,9.250589,9.532967,9.556178,8.615889,8.142057,9.342804 +.0541547,.9458452,.0067634,.9932365,.0003805,.9996195,3.70877,9.556793,9.240095,9.517241,9.554568,8.310145,7.779929,9.046017 +.0566604,.9433396,.0071861,.9928138,.0021532,.9978468,3.70877,9.556793,9.225442,9.514769,9.544202,8.122429,7.450436,8.561507 +.0570543,.9429457,.0080363,.9919637,.0163216,.9836783,3.70877,9.556793,9.223139,9.509797,9.461344,8.06747,7.318541,8.736112 +.0578464,.9421536,.0140897,.9859103,.1186408,.8813592,3.70877,9.556793,9.218506,9.474396,8.862979,7.368597,7.017911,8.758828 +.0634865,.9365135,.0813341,.9186659,.543765,.456235,3.70877,9.556793,9.185523,9.081149,6.376843,6.552896,6.540946,8.113037 +.1261405,.8738595,.285347,.714653,.8583246,.1416753,3.70877,9.556793,8.81912,7.888078,4.537291,5.594151,5.475195,6.811069 +.3162265,.6837735,.630861,.369139,.968286,.031714,3.70877,9.556793,7.707493,5.867503,3.894234,5.252515,5.002752,6.063491 +.6381541,.3618459,.9504541,.0495459,.9972499,.0027501,3.70877,9.556793,5.824853,3.998516,3.724853,4.929419,4.813092,5.662596 +.9359302,.0640698,.9978096,.0021903,.9998849,.0001151,3.70877,9.556793,4.083452,3.721579,3.709443,4.286259,4.194264,4.900965 +.9800531,.019947,.9995306,.0004694,.9999756,.0000244,3.70877,9.556793,3.82542,3.711515,3.708912,3.717198,3.578583,4.209394 +.9816565,.0183435,.9997798,.0002203,.9999886,.0000114,3.70877,9.556793,3.816043,3.710058,3.708837,3.541503,3.408145,3.986915 +.9818887,.0181114,.9998373,.0001627,.9999916,8.42e-06,3.70877,9.556793,3.814686,3.709722,3.708819,3.189564,3.02046,3.532578 +.9819422,.0180578,.9998378,.0001623,.9999916,8.39e-06,3.70877,9.556793,3.814373,3.709719,3.708819,3.015388,2.761958,3.320222 +.9819427,.0180573,.999846,.0001539,.999992,7.96e-06,3.70877,9.556793,3.81437,3.70967,3.708817,3.042857,2.747537,3.306076 +.9819504,.0180496,.9998335,.0001665,.9999914,8.61e-06,3.70877,9.556793,3.814324,3.709744,3.70882,3.002553,2.703691,3.198682 +.9819387,.0180613,.9998481,.000152,.9999921,7.88e-06,3.70877,9.556793,3.814393,3.709659,3.708816,3.10698,2.828977,3.263055 +.9819523,.0180477,.9997972,.0002028,.9999893,.0000107,3.70877,9.556793,3.814313,3.709956,3.708833,3.064441,2.806232,3.156415 +.9819049,.0180951,.9994684,.0005316,.9999708,.0000292,3.70877,9.556793,3.814591,3.711879,3.708941,3.304724,3.079071,3.349157 +.9815986,.0184014,.9988852,.0011149,.9999304,.0000695,3.70877,9.556793,3.816382,3.71529,3.709177,4.077081,3.660009,4.124638 +.9810551,.0189449,.9971934,.0028066,.9997794,.0002206,3.70877,9.556793,3.81956,3.725183,3.71006,4.566038,4.175121,4.595146 +.9794788,.0205212,.9929582,.0070418,.9994116,.0005883,3.70877,9.556793,3.828778,3.749951,3.712211,5.235425,4.676962,5.263006 +.9755328,.0244672,.9889305,.0110695,.9991763,.0008237,3.70877,9.556793,3.851855,3.773505,3.713587,5.838032,5.1478,5.8982 +.9717799,.02822,.9903922,.0096078,.9993276,.0006724,3.70877,9.556793,3.873801,3.764957,3.712702,5.88869,5.353448,6.006532 +.9731419,.0268581,.9917701,.0082299,.9994836,.0005164,3.70877,9.556793,3.865837,3.756899,3.71179,5.650352,5.166267,5.79265 +.9744257,.0255742,.9951116,.0048884,.9997014,.0002986,3.70877,9.556793,3.858329,3.737358,3.710516,5.538863,5.083153,5.748745 +.9775391,.0224609,.9963413,.0036587,.9997736,.0002264,3.70877,9.556793,3.840122,3.730166,3.710094,5.286134,4.909994,5.455621 +.9786849,.0213151,.9961977,.0038023,.9997658,.0002342,3.70877,9.556793,3.833421,3.731006,3.71014,5.203722,4.803016,5.358268 +.9785511,.0214489,.9963211,.0036789,.9997711,.000229,3.70877,9.556793,3.834203,3.730284,3.710109,5.326283,4.897751,5.505361 +.9786661,.0213339,.9963412,.0036588,.9997575,.0002425,3.70877,9.556793,3.833531,3.730167,3.710188,5.265781,4.892343,5.419424 +.9786848,.0213152,.9949928,.0050072,.9996672,.0003328,3.70877,9.556793,3.833422,3.738052,3.710716,5.208025,4.976932,5.299777 +.9774284,.0225715,.9946225,.0053775,.9996445,.0003555,3.70877,9.556793,3.840769,3.740218,3.710849,5.434537,5.248524,5.524192 +.9770834,.0229166,.99468,.00532,.999648,.0003519,3.70877,9.556793,3.842787,3.739882,3.710828,5.3884,5.257504,5.460289 +.977137,.022863,.9946227,.0053773,.9996476,.0003524,3.70877,9.556793,3.842473,3.740216,3.710831,5.328261,5.274662,5.36072 +.9770836,.0229164,.9947492,.0052507,.999662,.000338,3.70877,9.556793,3.842785,3.739476,3.710747,5.35511,5.293343,5.394659 +.9772016,.0227984,.9945675,.0054325,.9996915,.0003085,3.70877,9.556793,3.842096,3.740539,3.710574,5.372501,5.338941,5.394736 +.9770322,.0229678,.9977272,.0022729,.9998731,.0001269,3.70877,9.556793,3.843086,3.722062,3.709512,5.452638,5.477922,5.435889 +.9799761,.0200239,.9983342,.0016658,.9999064,.0000936,3.70877,9.556793,3.82587,3.718512,3.709317,4.882108,4.928061,4.850593 +.9805418,.0194582,.998339,.001661,.9999008,.0000992,3.70877,9.556793,3.822562,3.718484,3.70935,4.806666,4.792923,4.816381 +.9805462,.0194538,.9974042,.0025958,.9998279,.0001721,3.70877,9.556793,3.822536,3.72395,3.709776,4.882067,4.85832,4.898543 +.9796753,.0203247,.9963774,.0036226,.9996811,.0003189,3.70877,9.556793,3.82763,3.729955,3.710635,5.278541,5.245199,5.3009 +.9787186,.0212814,.9938359,.0061641,.9991794,.0008206,3.70877,9.556793,3.833225,3.744818,3.713569,5.510527,5.330189,5.620605 +.9763505,.0236495,.9851985,.0148015,.9979665,.0020335,3.70877,9.556793,3.847073,3.79533,3.720662,5.91604,5.774785,6.006871 +.9683027,.0316973,.9725566,.0274434,.9971454,.0028546,3.70877,9.556793,3.894136,3.86926,3.725464,6.369084,6.152766,6.565149 +.9565238,.0434762,.9646139,.0353861,.9976425,.0023576,3.70877,9.556793,3.96302,3.915709,3.722557,6.472348,6.309919,6.779056 +.9491234,.0508766,.9866005,.0133995,.9992712,.0007288,3.70877,9.556793,4.006298,3.787131,3.713032,6.166741,6.103334,6.68342 +.969609,.030391,.9984906,.0015094,.9999213,.0000787,3.70877,9.556793,3.886497,3.717597,3.70923,5.35135,5.324054,5.835004 +.9806875,.0193125,.9996817,.0003183,.9999836,.0000164,3.70877,9.556793,3.82171,3.710632,3.708866,4.179661,4.132563,4.48576 +.9817972,.0182028,.9999506,.0000494,.9999974,2.54e-06,3.70877,9.556793,3.81522,3.709059,3.708785,3.414703,3.377915,3.52192 +.9820479,.0179521,.9999713,.0000287,.9999985,1.48e-06,3.70877,9.556793,3.813755,3.708938,3.708779,2.203474,2.271626,2.115997 +.982067,.0179329,.9999705,.0000295,.9999985,1.51e-06,3.70877,9.556793,3.813642,3.708942,3.708779,1.823223,1.890859,1.750906 +.9820664,.0179336,.9999709,.0000291,.9999985,1.49e-06,3.70877,9.556793,3.813646,3.70894,3.708779,1.834497,1.854651,1.812876 +.9820668,.0179333,.9999804,.0000196,.999999,1.01e-06,3.70877,9.556793,3.813644,3.708885,3.708776,1.814991,1.729833,1.922723 +.9820756,.0179244,.9999847,.0000153,.9999992,7.83e-07,3.70877,9.556793,3.813592,3.708859,3.708775,1.578217,1.423067,1.788079 +.9820796,.0179204,.9999847,.0000153,.9999992,7.83e-07,3.70877,9.556793,3.813569,3.708859,3.708775,1.363374,1.317874,1.4119 +.9820796,.0179204,.9999887,.0000113,.9999994,5.78e-07,3.70877,9.556793,3.813569,3.708836,3.708773,1.466598,1.441834,1.489571 +.9820833,.0179166,.999989,.000011,.9999995,5.63e-07,3.70877,9.556793,3.813547,3.708834,3.708773,1.274937,1.313173,1.244443 +.9820836,.0179164,.999989,.000011,.9999995,5.63e-07,3.70877,9.556793,3.813545,3.708834,3.708773,1.233032,1.29632,1.185423 +.9820836,.0179164,.9999889,.0000111,.9999994,5.71e-07,3.70877,9.556793,3.813545,3.708835,3.708773,1.351381,1.293064,1.397081 +.9820835,.0179165,.9999807,.0000193,.999999,9.93e-07,3.70877,9.556793,3.813546,3.708883,3.708776,1.368077,1.335848,1.390817 +.9820758,.0179242,.9999617,.0000383,.999998,1.97e-06,3.70877,9.556793,3.813591,3.708994,3.708781,1.848841,1.699826,1.940641 +.9820581,.0179419,.9999239,.0000761,.9999961,3.93e-06,3.70877,9.556793,3.813694,3.709215,3.708793,2.310586,2.209126,2.366568 +.9820229,.0179771,.9998584,.0001416,.9999926,7.37e-06,3.70877,9.556793,3.8139,3.709598,3.708813,2.764744,2.638925,2.824465 +.9819619,.0180381,.9997182,.0002817,.9999851,.0000149,3.70877,9.556793,3.814257,3.710418,3.708857,3.343914,3.036805,3.459788 +.9818314,.0181686,.9994374,.0005626,.9999694,.0000306,3.70877,9.556793,3.815021,3.71206,3.708949,3.806304,3.468405,3.910976 +.9815696,.0184304,.9989265,.0010735,.9999384,.0000616,3.70877,9.556793,3.816551,3.715048,3.709131,4.322728,3.985987,4.419353 +.9810937,.0189063,.9980094,.0019905,.9998788,.0001212,3.70877,9.556793,3.819335,3.720411,3.709479,4.785995,4.336953,4.904437 +.9802392,.0197608,.9967461,.0032539,.9998016,.0001984,3.70877,9.556793,3.824332,3.727799,3.70993,5.059835,4.657316,5.180828 +.9790621,.0209379,.9965488,.0034512,.9997894,.0002107,3.70877,9.556793,3.831215,3.728953,3.710002,5.143878,5.000844,5.21044 +.9788783,.0211217,.996472,.003528,.9997864,.0002136,3.70877,9.556793,3.83229,3.729402,3.710019,5.148761,4.916379,5.291348 +.9788067,.0211933,.996506,.003494,.9997967,.0002032,3.70877,9.556793,3.832709,3.729203,3.709959,5.154384,4.936847,5.35499 +.9788383,.0211617,.9972454,.0027546,.99985,.00015,3.70877,9.556793,3.832524,3.724879,3.709647,5.064756,4.948065,5.281224 +.9795272,.0204728,.9987407,.0012593,.9999347,.0000653,3.70877,9.556793,3.828495,3.716134,3.709152,4.797365,4.723593,5.464302 +.9809206,.0190795,.9997936,.0002063,.9999894,.0000106,3.70877,9.556793,3.820347,3.709977,3.708832,4.08531,4.078696,4.914553 +.9819016,.0180984,.9999534,.0000466,.9999976,2.39e-06,3.70877,9.556793,3.81461,3.709042,3.708784,2.981632,2.97441,3.724269 +.9820505,.0179495,.9999621,.0000379,.999998,1.94e-06,3.70877,9.556793,3.813739,3.708992,3.708781,1.956489,1.906075,2.877074 +.9820585,.0179415,.9999942,5.77e-06,.9999997,2.96e-07,3.70877,9.556793,3.813692,3.708804,3.708772,1.564194,1.527188,1.870849 +.9820885,.0179115,.9999962,3.73e-06,.9999998,1.91e-07,3.70877,9.556793,3.813517,3.708792,3.708771,.1384992,.1517437,.1041634 +.9820904,.0179096,.9999962,3.73e-06,.9999998,1.91e-07,3.70877,9.556793,3.813506,3.708792,3.708771,-.2369698,-.1676456,-.3802484 +.9820904,.0179096,.9999964,3.63e-06,.9999998,1.86e-07,3.70877,9.556793,3.813506,3.708791,3.708771,-.2928468,-.1591626,-.5239687 +.9820905,.0179095,.9999965,3.44e-06,.9999998,1.77e-07,3.70877,9.556793,3.813505,3.70879,3.708771,-.0218886,-.186655,.133808 +.9820907,.0179094,.9999965,3.49e-06,.9999998,1.79e-07,3.70877,9.556793,3.813504,3.70879,3.708771,.0668349,-.2345839,.2793285 +.9820906,.0179094,.9999962,3.78e-06,.9999998,1.94e-07,3.70877,9.556793,3.813505,3.708792,3.708771,.0643252,-.1345215,.1909246 +.9820904,.0179097,.9999962,3.78e-06,.9999998,1.94e-07,3.70877,9.556793,3.813506,3.708792,3.708771,.0745394,-.0243442,.1396657 +.9820904,.0179097,.9999962,3.78e-06,.9999962,3.78e-06,3.70877,9.556793,3.813506,3.708792,3.708792,.0966984,.0219892,.1484894 diff --git a/statsmodels/tsa/regime_switching/tests/results/results_predict_rgnp.csv b/statsmodels/tsa/regime_switching/tests/results/results_predict_rgnp.csv new file mode 100644 index 0000000..8b343b8 --- /dev/null +++ b/statsmodels/tsa/regime_switching/tests/results/results_predict_rgnp.csv @@ -0,0 +1,137 @@ +switchar2_p1,switchar2_p2,switchar2_f1,switchar2_f2,switchar2_sm1,switchar2_sm2,switchar2_yhat1,switchar2_yhat2,switchar2_pyhat,switchar2_fyhat,switchar2_syhat +,,,,,,,,,, +,,,,,,,,,, +,,,,,,,,,, +.3655099,.6344901,.1908335,.8091666,.2039875,.7960125,.6668599,.8056132,.7548975,.7791345,1.175943 +.3611798,.6388202,.3588357,.6411644,.4560583,.5439417,.2757178,.4150288,.3647124,.365039,.6393359 +.3653444,.6346556,.8787717,.1212283,.861632,.138368,-.0489651,.8798761,.5405291,.0636367,-.0475077 +.3782332,.6217668,.2201452,.7798548,.3592777,.6407223,.0795501,.2984534,.2156569,.2502629,.7076135 +.3619064,.6380936,.0060957,.9939043,.0082053,.9917946,-.2810024,1.033839,.5579897,1.025824,1.37325 +.3566003,.6433997,.11223,.88777,.0884842,.9115158,.1003189,1.192435,.8029861,1.069867,1.505547 +.3592313,.6407687,.3765296,.6234704,.0499525,.9500476,.3861393,.8377848,.6755396,.6677269,1.195445 +.365783,.634217,.7021681,.2978319,.4766508,.5233492,.2789021,.6074251,.4872569,.3767467,.5998272 +.3738553,.6261446,.8631248,.1368752,.9677929,.0322071,-.0134841,.280744,.1707453,.0267884,-.5156572 +.3778453,.6221547,.9939212,.0060788,.9937111,.0062889,-.3697357,.4270407,.1259825,-.3648922,-1.069221 +.3810876,.6189124,.6417809,.3582191,.6563745,.3436256,-.4973104,.2940543,-.007525,-.2138285,-.4417256 +.3723584,.6276416,.0010628,.9989372,.0006934,.9993066,-.6216475,.7895434,.2640746,.7880436,1.270005 +.3564756,.6435244,.012374,.987626,.0291472,.9708528,-.349462,1.204387,.650478,1.18516,1.405585 +.356756,.643244,.0119621,.9880379,.0092829,.9907171,.0968139,.9555007,.649159,.9452289,1.321816 +.3567457,.6432543,.3283875,.6716126,.4892569,.510743,.2540295,1.095943,.7955943,.8194695,1.050847 +.3645897,.6354104,.3161621,.6838379,.1268433,.8731567,.3827603,.5847964,.5111361,.5209202,1.080783 +.3642866,.6357134,.3383332,.6616668,.3105439,.6894561,.1474826,.8656664,.6040417,.622681,.978343 +.3648362,.6351638,.6774012,.3225988,.8668257,.1331743,.1532161,.6805145,.4881369,.3233219,.2800821 +.3732414,.6267586,.3011953,.6988047,.4282137,.5717863,-.0017978,.3782444,.2363969,.2637775,.556136 +.3639156,.6360844,.5726407,.4273593,.7200522,.2799478,-.3046013,.8760991,.4464239,.199982,.1164198 +.3706445,.6293555,.0987641,.9012359,.1196774,.8803226,-.1050289,.5673033,.3181071,.500901,1.043566 +.3588975,.6411025,.2103667,.7896333,.1060183,.8939817,-.210565,1.05934,.6035746,.7921946,1.173387 +.361664,.638336,.6925763,.3074237,.2164227,.7835773,.0497307,.7404512,.4906424,.2620745,.7977074 +.3736176,.6263824,.2575079,.7424921,.005824,.994176,.0085827,.426209,.2701765,.318667,.8089374 +.3628326,.6371674,.997604,.002396,.9961206,.0038793,-.264759,.896194,.4749624,-.2619774,-.920441 +.3811789,.6188211,.9977646,.0022354,.99639,.00361,-.1612,-.0384718,-.0852532,-.1609257,-1.00337 +.3811829,.6188171,.0010599,.9989401,.0011916,.9988084,-.7774606,.2547778,-.1386938,.2536838,.7459083 +.3564755,.6435245,1.58e-08,1,1.49e-08,1,-.8607886,1.348258,.560787,1.348258,1.54865 +.3564492,.6435508,.001224,.998776,.0006004,.9993997,.0446378,1.350136,.8847919,1.348538,1.932688 +.3564796,.6435204,.3604717,.6395283,.2442461,.7557539,.5060323,.9844004,.8138719,.8119622,1.324627 +.365385,.634615,.33878,.66122,.1291146,.8708854,.4691985,.5743639,.535938,.5387359,.9758657 +.3648473,.6351528,.7996124,.2003876,.8402012,.1597988,.267849,.996059,.7303736,.4137732,.5672621 +.3762709,.6237291,.3155236,.6844764,.228146,.771854,.2605178,.0665302,.1395221,.1277379,.5768158 +.3642708,.6357293,.0098121,.9901879,.0029106,.9970894,-.3134682,1.041803,.5481176,1.028505,1.364321 +.3566925,.6433076,.886528,.113472,.846061,.153939,.0416518,1.097726,.7210326,.1614867,.2476345 +.3784254,.6215746,.5235677,.4764323,.4480896,.5519103,.2633849,.1340759,.1830097,.2017779,.5294089 +.369428,.630572,.9513308,.0486692,.9706135,.0293865,-.3070059,.7367491,.3511568,-.2562071,-.4980835 +.3800319,.6199682,.0439671,.9560329,.0420237,.9579763,-.2055761,.2772512,.0937615,.2560227,.9187043 +.3575391,.6424609,.0117721,.988228,.011024,.9889759,-.4756168,1.242086,.6279398,1.221865,1.406804 +.356741,.643259,.0498644,.9501356,.1314053,.8685947,.0266372,.923333,.6034449,.8786198,1.105651 +.3576853,.6423147,.0157562,.9842438,.0117993,.9882007,.1151268,.926867,.6365194,.9140771,1.344204 +.3568398,.6431602,.2576703,.7423297,.2752726,.7247275,.2603368,1.133504,.8219233,.9085149,1.321995 +.3628366,.6371633,.3590391,.6409609,.2117085,.7882915,.4166265,.6422516,.5603865,.5612433,1.022684 +.3653495,.6346505,.2964521,.703548,.189856,.810144,.1760955,.7276233,.5261229,.5641218,.9811047 +.363798,.636202,.7142375,.2857625,.8386366,.1613634,.0733605,.7645192,.513077,.2708678,.1629116 +.3741545,.6258455,.0818044,.9181957,.0717512,.9282488,.0274522,.3683135,.2407787,.3404296,1.003676 +.3584771,.6415229,.0551477,.9448522,.0749342,.9250659,-.2439651,1.182559,.6711826,1.103889,1.311399 +.3578163,.6421837,.0780104,.9219896,.0646097,.9353903,.1381912,.890511,.6213188,.8318223,1.205812 +.358383,.641617,.4395099,.5604901,.8584533,.1415467,.2015714,.983662,.703374,.6399255,.5431973 +.3673443,.6326557,.1202812,.8797188,.0779433,.9220567,.2680204,.5275288,.4321998,.4963148,1.241017 +.3594309,.6405691,.4637097,.5362903,.5746583,.4253416,.1109875,1.24799,.8393159,.7207507,1.105171 +.3679442,.6320558,.3577688,.6422312,.2465385,.7534615,.4165906,.4647978,.4470603,.4475508,.9700944 +.365318,.634682,.4642533,.5357467,.8108636,.1891364,.0563841,.8096159,.5344468,.4599256,.4282598 +.3679577,.6320423,.0641185,.9358815,.0669424,.9330576,.0497228,.5854846,.388347,.5511324,1.238735 +.3580387,.6419613,.1949094,.8050906,.2332901,.7667099,.0105471,1.30052,.8386597,1.049092,1.393703 +.3612809,.6387191,.300744,.699256,.459328,.540672,.3948515,.7132688,.5982307,.6175067,1.031192 +.3639044,.6360956,.1455622,.8544378,.1226258,.8773742,.2664956,.8734233,.6525596,.7850776,1.452815 +.3600576,.6399424,.2920372,.7079628,.1179143,.8820857,.3485572,1.085151,.8199348,.8700382,1.473615 +.3636886,.6363115,.3610975,.6389025,.6701577,.3298423,.5294808,.8166577,.7122148,.7129588,1.117233 +.3654005,.6345995,.309507,.690493,.3870208,.6129792,.2398921,.3660286,.3199383,.3269885,.7566582 +.3641216,.6358784,.4339314,.5660686,.6008897,.3991103,-.1082219,.9467762,.5626286,.4889795,.5728013 +.367206,.632794,.3232115,.6767884,.3871084,.6128916,.0531779,.6076186,.4040247,.428417,.772496 +.3644613,.6355386,.2838635,.7161365,.5072133,.4927867,-.1068446,.763018,.4459867,.5160958,.6046163 +.3634859,.6365141,.068095,.931905,.0823548,.9176452,-.0959154,.7668481,.4532457,.7080982,1.19073 +.3581372,.6418628,.421362,.578638,.4438438,.5561562,-.0416897,1.056154,.6629754,.5935645,.8270106 +.3668944,.6331056,.1854353,.8145647,.2989025,.7010975,.1643479,.5480497,.4072717,.4768978,.8094192 +.361046,.638954,.0738302,.9261699,.0187918,.9812082,-.0512716,.9540159,.5910608,.8797954,1.360345 +.3582794,.6417206,.3792882,.6207117,.2526048,.7473952,.1375967,1.016455,.701578,.6831142,1.095962 +.3658514,.6341486,.6069332,.3930668,.8806944,.1193056,.2456208,.568009,.4500628,.3723409,.3789999 +.3714945,.6285055,.0663378,.9336622,.0777551,.922245,-.0352519,.4446202,.2663504,.4127866,1.077137 +.3580937,.6419063,.7386758,.2613242,.7365384,.2634616,-.2241057,1.187275,.6818687,.1447223,.3215021 +.3747603,.6252397,.3813017,.6186984,.2480231,.7519769,.1966081,.3553618,.2958672,.2948288,.7948864 +.3659014,.6340986,.8316975,.1683026,.9079095,.0920905,-.180831,.8179061,.4524668,-.012741,-.1486508 +.3770663,.6229337,.87519,.12481,.8067881,.1932119,-.0632746,.3479188,.1928716,-.0119535,-.2175115 +.3781444,.6218556,.6100608,.3899392,.4258435,.5741565,-.3230339,.4675073,.1685686,-.0147709,.2901475 +.3715721,.6284279,.0172509,.9827491,.0017807,.9982194,-.3892398,.7295551,.3138422,.7102549,1.106248 +.3568769,.6431231,.9889793,.0110207,.9996961,.0003039,-.2622162,1.142509,.641195,-.2467351,-.538968 +.3809651,.6190349,.0025518,.9974482,.002083,.997917,.0853241,.028174,.0499461,.0283198,.7719029 +.3565125,.6434875,.9905953,.0094047,.9964426,.0035574,-.2815244,1.734997,1.016082,-.2625596,-.0889179 +.3810052,.6189948,.3292068,.6707932,.1744831,.8255169,.5766323,-.0012819,.2189064,.1889714,.7750577 +.36461,.63539,.6318375,.3681625,.8349881,.165012,-.2396213,.8475749,.4511723,.1606435,.0031042 +.3721119,.6278881,.0111827,.9888173,.0097676,.9902325,-.0823655,.5193925,.2954712,.5126633,1.249954 +.3567264,.6432736,.0320511,.9679489,.0413362,.9586638,-.1129587,1.408029,.8654523,1.359279,1.659853 +.3572437,.6427563,.3648334,.6351666,.4673626,.5326374,.4163951,.8898959,.7207407,.7171471,1.113082 +.3654931,.6345069,.1939078,.8060921,.3887317,.6112683,.337547,.5993049,.5036342,.548548,.9766124 +.361256,.638744,.1323635,.8676365,.0406093,.9593907,.167944,1.062599,.7393993,.9441791,1.577669 +.3597304,.6402696,.498467,.501533,.3508248,.6491752,.4220645,1.044722,.8207333,.7343479,1.181616 +.3688058,.6311942,.356284,.643716,.3692181,.6307819,.3744644,.2590503,.3016157,.3001705,.5756877 +.3652812,.6347188,.0709767,.9290233,.089928,.910072,-.2463651,.6087282,.2963787,.5480365,.8741023 +.3582087,.6417913,.956079,.043921,.9115888,.0884112,-.291689,1.0384,.5619506,-.2332702,-.527754 +.3801495,.6198505,.3854555,.6145445,.2328662,.7671338,.0405197,.2029729,.1412164,.1403544,.6426073 +.3660043,.6339957,.994001,.005999,.9913173,.0086827,-.3939995,.8796137,.4134658,-.3863591,-.6873238 +.3810896,.6189104,.9126762,.0873239,.8453703,.1546297,-.205447,.0969485,-.0182913,-.1790407,-.7267979 +.3790736,.6209264,.9998629,.0001371,.9999191,.0000809,-.5811837,.5661494,.1312257,-.5810264,-1.32168 +.3812349,.6187651,.0012389,.9987611,.0011699,.9988301,-.5924893,.1384216,-.1402272,.137516,.6240655 +.3564799,.6435201,9.31e-06,.9999907,7.15e-06,.9999928,-.7767551,1.472514,.6706945,1.472493,1.74309 +.3564495,.6435506,.0706543,.9293457,.1225256,.8774744,.077838,1.061299,.7107452,.9918137,1.303984 +.3582007,.6417993,.0964938,.9035062,.0505851,.9494149,.230602,.8202751,.6090538,.7633753,1.156554 +.3588412,.6411588,.6011773,.3988228,.6002312,.3997688,.2267366,1.015415,.7324044,.5412793,.8228542 +.3713519,.6286482,.4333998,.5666002,.4540614,.5459386,.3145667,.3836636,.3580043,.353717,.718225 +.3671928,.6328072,.1700871,.8299129,.1971657,.8028343,-.1043802,.7024823,.4062082,.5652454,.9236737 +.3606655,.6393345,.0853925,.9146075,.0797246,.9202754,-.1158232,.940254,.5593634,.8500729,1.215137 +.358566,.641434,.0824606,.9175394,.1073687,.8926314,.0558167,.951513,.6303467,.8776534,1.244283 +.3584934,.6415067,.0798316,.9201683,.0236819,.9763181,.1818834,.9462167,.6722083,.8851987,1.348312 +.3584282,.6415718,.8117195,.1882805,.7113619,.2886381,.2943652,1.012657,.7552012,.4296057,.8013623 +.376571,.623429,.3287594,.6712406,.7905903,.2094096,.3177593,.1023483,.1834659,.1731667,.4115401 +.3645989,.6354011,.0001937,.9998063,.0000534,.9999465,-.2536942,1.005844,.5466175,1.005599,1.679178 +.356454,.643546,.5861492,.4138509,.6666598,.3333402,.2368061,1.507272,1.054409,.7625895,1.348948 +.3709793,.6290207,.415696,.584304,.1972527,.8027472,.6850777,.2529412,.4132549,.4325786,.9398638 +.3667539,.6332461,.6525174,.3474827,.6578275,.3421725,.1057528,.8636656,.5856981,.3691144,.5881053 +.3726245,.6273755,.5579455,.4420545,.7796769,.2203231,.1100055,.3696976,.27293,.2248036,.1860365 +.3702802,.6297198,.1001561,.8998439,.0293324,.9706676,-.2476939,.6137009,.2947435,.527427,1.125174 +.358932,.641068,.8126831,.1873169,.1429511,.8570489,-.2804277,1.033013,.5615768,-.0343982,.9548979 +.3765949,.6234051,.1139573,.8860427,.0077561,.9922439,.0479682,.3432032,.2320192,.309559,.7096683 +.3592741,.6407259,.9999623,.0000377,.9999784,.0000215,-.2872946,1.078295,.5876743,-.2872432,-.9256884 +.3812374,.6187626,.1415462,.8584538,.0547459,.9452541,-.1671722,-.3660731,-.2902446,-.3379194,.0901736 +.359958,.640042,8.65e-06,.9999914,7.12e-06,.9999928,-.9680839,1.24652,.4493558,1.246501,1.469094 +.3564494,.6435506,.0013372,.9986628,.0005885,.9994115,-.2213253,1.130314,.6485232,1.128507,1.56611 +.3564824,.6435176,.94006,.0599401,.845143,.154857,.1735296,1.078947,.7561818,.2278004,.4941151 +.3797525,.6202475,.4100294,.5899706,.0490023,.9509977,.3287447,.0638878,.1644679,.1724869,.7057356 +.3666135,.6333866,.9941261,.0058739,.9961222,.0038778,-.3074672,.8746909,.4412958,-.3005233,-.6183509 +.3810927,.6189073,.9865972,.0134027,.996933,.003067,-.1776888,.0368088,-.0449347,-.1748139,-1.010209 +.3809061,.619094,.0203599,.9796401,.0650344,.9349656,-.6692971,.3808981,-.0191276,.3595163,.7818835 +.3569539,.6430461,.9790046,.0209954,.9652825,.0347175,-.751592,1.166428,.4817834,-.7113224,-1.280465 +.3807178,.6192821,.3201608,.6798392,.1632341,.8367659,-.1369031,.2466296,.1006118,.1238374,.7574543 +.3643857,.6356143,.0228407,.9771593,.0520427,.9479573,-.4943302,.9059532,.3957099,.8739698,.9687712 +.3570154,.6429846,.0027989,.9972011,.0035125,.9964876,-.2296742,1.026684,.5781449,1.023168,1.395377 +.3565186,.6434814,.1375207,.8624793,.1369265,.8630735,.132511,1.19744,.8177727,1.05099,1.492269 +.3598582,.6401418,.2749309,.7250692,.6349947,.3650052,.3607773,.7020003,.5792084,.6081876,.8663656 +.3632645,.6367355,.0747665,.9252335,.04608,.9539199,.2392728,.9091664,.6658179,.8590808,1.638283 +.3583026,.6416974,.3430003,.6569996,.2439876,.7560124,.3945461,1.222072,.9255675,.9382305,1.486441 +.3649519,.6350481,.2784336,.7215664,.2026928,.7973073,.5596761,.5065153,.5259164,.521317,.917065 +.3633513,.6366487,.4820935,.5179065,.4820935,.5179065,.0647946,.6038795,.4080022,.3439901,.4402459 diff --git a/statsmodels/tsa/regime_switching/tests/test_markov_autoregression.py b/statsmodels/tsa/regime_switching/tests/test_markov_autoregression.py new file mode 100644 index 0000000..647d686 --- /dev/null +++ b/statsmodels/tsa/regime_switching/tests/test_markov_autoregression.py @@ -0,0 +1,847 @@ +""" +Tests for Markov Autoregression models + +Author: Chad Fulton +License: BSD-3 +""" +from __future__ import division, absolute_import, print_function + +import warnings +import os +import numpy as np +import pandas as pd +from statsmodels.tools import add_constant +from statsmodels.tsa.regime_switching import markov_autoregression +from numpy.testing import assert_equal, assert_allclose, assert_raises +from nose.exc import SkipTest + +current_path = os.path.dirname(os.path.abspath(__file__)) + + +rgnp = [2.59316421, 2.20217133, 0.45827562, 0.9687438, + -0.24130757, 0.89647478, 2.05393219, 1.73353648, + 0.93871289, -0.46477833, -0.80983406, -1.39763689, + -0.39886093, 1.1918416, 1.45620048, 2.11808228, + 1.08957863, 1.32390273, 0.87296367, -0.19773273, + 0.45420215, 0.07221876, 1.1030364, 0.82097489, + -0.05795795, 0.58447772, -1.56192672, -2.05041027, + 0.53637183, 2.33676839, 2.34014559, 1.2339263, + 1.8869648, -0.45920792, 0.84940469, 1.70139849, + -0.28756312, 0.09594627, -0.86080289, 1.03447127, + 1.23685944, 1.42004502, 2.22410631, 1.30210173, + 1.03517699, 0.9253425, -0.16559951, 1.3444382, + 1.37500131, 1.73222184, 0.71605635, 2.21032143, + 0.85333031, 1.00238776, 0.42725441, 2.14368343, + 1.43789184, 1.57959926, 2.27469826, 1.95962656, + 0.25992399, 1.01946914, 0.49016398, 0.5636338, + 0.5959546, 1.43082857, 0.56230122, 1.15388393, + 1.68722844, 0.77438205, -0.09647045, 1.39600146, + 0.13646798, 0.55223715, -0.39944872, -0.61671102, + -0.08722561, 1.2101835, -0.90729755, 2.64916158, + -0.0080694, 0.51111895, -0.00401437, 2.16821432, + 1.92586732, 1.03504717, 1.85897219, 2.32004929, + 0.25570789, -0.09855274, 0.89073682, -0.55896485, + 0.28350255, -1.31155407, -0.88278776, -1.97454941, + 1.01275265, 1.68264723, 1.38271284, 1.86073637, + 0.4447377, 0.41449001, 0.99202275, 1.36283576, + 1.59970522, 1.98845816, -0.25684232, 0.87786949, + 3.1095655, 0.85324478, 1.23337317, 0.00314302, + -0.09433369, 0.89883322, -0.19036628, 0.99772376, + -2.39120054, 0.06649673, 1.26136017, 1.91637838, + -0.3348029, 0.44207108, -1.40664911, -1.52129889, + 0.29919869, -0.80197448, 0.15204792, 0.98585027, + 2.13034606, 1.34397924, 1.61550522, 2.70930099, + 1.24461412, 0.50835466, 0.14802167] + +rec = [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0] + + +def test_predict(): + # AR(1) without mean, k_regimes=2 + endog = np.ones(10) + mod = markov_autoregression.MarkovAutoregression( + endog, k_regimes=2, order=1, trend='nc') + assert_equal(mod.nobs, 9) + assert_equal(mod.endog, np.ones(9)) + + params = np.r_[0.5, 0.5, 1., 0.1, 0.5] + mod_resid = mod._resid(params) + resids = np.zeros((2, 2, mod.nobs)) + # Resids when: S_{t} = 0 + resids[0, :, :] = np.ones(9) - 0.1 * np.ones(9) + assert_allclose(mod_resid[0, :, :], resids[0, :, :]) + # Resids when: S_{t} = 1 + resids[1, :, :] = np.ones(9) - 0.5 * np.ones(9) + assert_allclose(mod_resid[1, :, :], resids[1, :, :]) + + # AR(1) with mean, k_regimes=2 + endog = np.arange(10) + mod = markov_autoregression.MarkovAutoregression( + endog, k_regimes=2, order=1) + assert_equal(mod.nobs, 9) + assert_equal(mod.endog, np.arange(1, 10)) + + params = np.r_[0.5, 0.5, 2., 3., 1., 0.1, 0.5] + mod_resid = mod._resid(params) + resids = np.zeros((2, 2, mod.nobs)) + # Resids when: S_t = 0, S_{t-1} = 0 + resids[0, 0, :] = (np.arange(1, 10) - 2.) - 0.1 * (np.arange(9) - 2.) + assert_allclose(mod_resid[0, 0, :], resids[0, 0, :]) + # Resids when: S_t = 0, S_{t-1} = 1 + resids[0, 1, :] = (np.arange(1, 10) - 2.) - 0.1 * (np.arange(9) - 3.) + assert_allclose(mod_resid[0, 1, :], resids[0, 1, :]) + # Resids when: S_t = 1, S_{t-1} = 0 + resids[1, 0, :] = (np.arange(1, 10) - 3.) - 0.5 * (np.arange(9) - 2.) + assert_allclose(mod_resid[1, 0, :], resids[1, 0, :]) + # Resids when: S_t = 1, S_{t-1} = 1 + resids[1, 1, :] = (np.arange(1, 10) - 3.) - 0.5 * (np.arange(9) - 3.) + assert_allclose(mod_resid[1, 1, :], resids[1, 1, :]) + + # AR(2) with mean, k_regimes=3 + endog = np.arange(10) + mod = markov_autoregression.MarkovAutoregression( + endog, k_regimes=3, order=2) + assert_equal(mod.nobs, 8) + assert_equal(mod.endog, np.arange(2, 10)) + + params = np.r_[[0.3] * 6, 2., 3., 4, 1., 0.1, 0.5, 0.8, -0.05, -0.25, -0.4] + mod_resid = mod._resid(params) + resids = np.zeros((3, 3, 3, mod.nobs)) + # Resids when: S_t = 0, S_{t-1} = 0, S_{t-2} = 0 + resids[0, 0, 0, :] = ( + (np.arange(2, 10) - 2.) - + 0.1 * (np.arange(1, 9) - 2.) - + (-0.05) * (np.arange(8) - 2.)) + assert_allclose(mod_resid[0, 0, 0, :], resids[0, 0, 0, :]) + + # Resids when: S_t = 1, S_{t-1} = 0, S_{t-2} = 0 + resids[1, 0, 0, :] = ( + (np.arange(2, 10) - 3.) - + 0.5 * (np.arange(1, 9) - 2.) - + (-0.25) * (np.arange(8) - 2.)) + assert_allclose(mod_resid[1, 0, 0, :], resids[1, 0, 0, :]) + + # Resids when: S_t = 0, S_{t-1} = 2, S_{t-2} = 1 + resids[0, 2, 1, :] = ( + (np.arange(2, 10) - 2.) - + 0.1 * (np.arange(1, 9) - 4.) - + (-0.05) * (np.arange(8) - 3.)) + assert_allclose(mod_resid[0, 2, 1, :], resids[0, 2, 1, :]) + + # AR(1) with mean + non-switching exog + endog = np.arange(10) + exog = np.r_[0.4, 5, 0.2, 1.2, -0.3, 2.5, 0.2, -0.7, 2., -1.1] + mod = markov_autoregression.MarkovAutoregression( + endog, k_regimes=2, order=1, exog=exog) + assert_equal(mod.nobs, 9) + assert_equal(mod.endog, np.arange(1, 10)) + + params = np.r_[0.5, 0.5, 2., 3., 1.5, 1., 0.1, 0.5] + mod_resid = mod._resid(params) + resids = np.zeros((2, 2, mod.nobs)) + # Resids when: S_t = 0, S_{t-1} = 0 + resids[0, 0, :] = ( + (np.arange(1, 10) - 2. - 1.5 * exog[1:]) - + 0.1 * (np.arange(9) - 2. - 1.5 * exog[:-1])) + assert_allclose(mod_resid[0, 0, :], resids[0, 0, :]) + # Resids when: S_t = 0, S_{t-1} = 1 + resids[0, 1, :] = ( + (np.arange(1, 10) - 2. - 1.5 * exog[1:]) - + 0.1 * (np.arange(9) - 3. - 1.5 * exog[:-1])) + assert_allclose(mod_resid[0, 1, :], resids[0, 1, :]) + # Resids when: S_t = 1, S_{t-1} = 0 + resids[1, 0, :] = ( + (np.arange(1, 10) - 3. - 1.5 * exog[1:]) - + 0.5 * (np.arange(9) - 2. - 1.5 * exog[:-1])) + assert_allclose(mod_resid[1, 0, :], resids[1, 0, :]) + # Resids when: S_t = 1, S_{t-1} = 1 + resids[1, 1, :] = ( + (np.arange(1, 10) - 3. - 1.5 * exog[1:]) - + 0.5 * (np.arange(9) - 3. - 1.5 * exog[:-1])) + assert_allclose(mod_resid[1, 1, :], resids[1, 1, :]) + + +def test_conditional_likelihoods(): + # AR(1) without mean, k_regimes=2, non-switching variance + endog = np.ones(10) + mod = markov_autoregression.MarkovAutoregression( + endog, k_regimes=2, order=1) + assert_equal(mod.nobs, 9) + assert_equal(mod.endog, np.ones(9)) + + params = np.r_[0.5, 0.5, 2., 3., 2., 0.1, 0.5] + resid = mod._resid(params) + conditional_likelihoods = ( + np.exp(-0.5 * resid**2 / 2) / np.sqrt(2 * np.pi * 2)) + assert_equal(mod._conditional_likelihoods(params), conditional_likelihoods) + + # AR(1) without mean, k_regimes=3, switching variance + endog = np.ones(10) + mod = markov_autoregression.MarkovAutoregression( + endog, k_regimes=3, order=1, switching_variance=True) + assert_equal(mod.nobs, 9) + assert_equal(mod.endog, np.ones(9)) + + params = np.r_[[0.3]*6, 2., 3., 4., 1.5, 3., 4.5, 0.1, 0.5, 0.8] + mod_conditional_likelihoods = mod._conditional_likelihoods(params) + conditional_likelihoods = mod._resid(params) + + # S_t = 0 + conditional_likelihoods[0, :, :] = ( + np.exp(-0.5 * conditional_likelihoods[0, :, :]**2 / 1.5) / + np.sqrt(2 * np.pi * 1.5)) + assert_allclose(mod_conditional_likelihoods[0, :, :], + conditional_likelihoods[0, :, :]) + # S_t = 1 + conditional_likelihoods[1, :, :] = ( + np.exp(-0.5 * conditional_likelihoods[1, :, :]**2 / 3.) / + np.sqrt(2 * np.pi * 3.)) + assert_allclose(mod_conditional_likelihoods[1, :, :], + conditional_likelihoods[1, :, :]) + # S_t = 2 + conditional_likelihoods[2, :, :] = ( + np.exp(-0.5 * conditional_likelihoods[2, :, :]**2 / 4.5) / + np.sqrt(2 * np.pi * 4.5)) + assert_allclose(mod_conditional_likelihoods[2, :, :], + conditional_likelihoods[2, :, :]) + + +class MarkovAutoregression(object): + @classmethod + def setup_class(cls, true, endog, atol=1e-5, rtol=1e-7, **kwargs): + cls.model = markov_autoregression.MarkovAutoregression(endog, **kwargs) + cls.true = true + cls.result = cls.model.smooth(cls.true['params']) + cls.atol = atol + cls.rtol = rtol + + def test_llf(self): + assert_allclose(self.result.llf, self.true['llf'], atol=self.atol, + rtol=self.rtol) + + def test_fit(self, **kwargs): + # Test fitting against Stata + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + res = self.model.fit(disp=False, **kwargs) + assert_allclose(res.llf, self.true['llf_fit'], atol=self.atol, + rtol=self.rtol) + + def test_fit_em(self, **kwargs): + # Test EM fitting (smoke test) + res_em = self.model._fit_em(**kwargs) + assert_allclose(res_em.llf, self.true['llf_fit_em'], atol=self.atol, + rtol=self.rtol) + + +hamilton_ar2_short_filtered_joint_probabilities = np.array([[[[ + 4.99506987e-02, 6.44048275e-04, 6.22227140e-05, + 4.45756755e-06, 5.26645567e-07, 7.99846146e-07, + 1.19425705e-05, 6.87762063e-03], + [ 1.95930395e-02, 3.25884335e-04, 1.12955091e-04, + 3.38537103e-04, 9.81927968e-06, 2.71696750e-05, + 5.83828290e-03, 7.64261509e-02]], + + [[ 1.97113193e-03, 9.50372207e-05, 1.98390978e-04, + 1.88188953e-06, 4.83449400e-07, 1.14872860e-05, + 4.02918239e-06, 4.35015431e-04], + [ 2.24870443e-02, 1.27331172e-03, 9.62155856e-03, + 4.04178695e-03, 2.75516282e-04, 1.18179572e-02, + 5.99778157e-02, 1.48149567e-01]]], + + + [[[ 6.70912859e-02, 1.84223872e-02, 2.55621792e-04, + 4.48500688e-05, 7.80481515e-05, 2.73734559e-06, + 7.59835896e-06, 1.42930726e-03], + [ 2.10053328e-02, 7.44036383e-03, 3.70388879e-04, + 2.71878370e-03, 1.16152088e-03, 7.42182691e-05, + 2.96490192e-03, 1.26774695e-02]], + + [[ 8.09335679e-02, 8.31016518e-02, 2.49149080e-02, + 5.78825626e-04, 2.19019941e-03, 1.20179130e-03, + 7.83659430e-05, 2.76363377e-03], + [ 7.36967899e-01, 8.88697316e-01, 9.64463954e-01, + 9.92270877e-01, 9.96283886e-01, 9.86863839e-01, + 9.31117063e-01, 7.51241236e-01]]]]) + + +hamilton_ar2_short_predicted_joint_probabilities = np.array([[[[[ + 1.20809334e-01, 3.76964436e-02, 4.86045844e-04, + 4.69578023e-05, 3.36400588e-06, 3.97445190e-07, + 6.03622290e-07, 9.01273552e-06], + [ 3.92723623e-02, 1.47863379e-02, 2.45936108e-04, + 8.52441571e-05, 2.55484811e-04, 7.41034525e-06, + 2.05042201e-05, 4.40599447e-03]], + + [[ 4.99131230e-03, 1.48756005e-03, 7.17220245e-05, + 1.49720314e-04, 1.42021122e-06, 3.64846209e-07, + 8.66914462e-06, 3.04071516e-06], + [ 4.70476003e-02, 1.69703652e-02, 9.60933974e-04, + 7.26113047e-03, 3.05022748e-03, 2.07924699e-04, + 8.91869322e-03, 4.52636381e-02]]], + + + [[[ 4.99131230e-03, 6.43506069e-03, 1.76698327e-03, + 2.45179642e-05, 4.30179435e-06, 7.48598845e-06, + 2.62552503e-07, 7.28796600e-07], + [ 1.62256192e-03, 2.01472650e-03, 7.13642497e-04, + 3.55258493e-05, 2.60772139e-04, 1.11407276e-04, + 7.11864528e-06, 2.84378568e-04]], + + [[ 5.97950448e-03, 7.76274317e-03, 7.97069493e-03, + 2.38971340e-03, 5.55180599e-05, 2.10072977e-04, + 1.15269812e-04, 7.51646942e-06], + [ 5.63621989e-02, 7.06862760e-02, 8.52394030e-02, + 9.25065601e-02, 9.51736612e-02, 9.55585689e-02, + 9.46550451e-02, 8.93080931e-02]]]], + + + + [[[[ 3.92723623e-02, 1.22542551e-02, 1.58002431e-04, + 1.52649118e-05, 1.09356167e-06, 1.29200377e-07, + 1.96223855e-07, 2.92983500e-06], + [ 1.27665503e-02, 4.80670161e-03, 7.99482261e-05, + 2.77109335e-05, 8.30522919e-05, 2.40893443e-06, + 6.66545485e-06, 1.43228843e-03]], + + [[ 1.62256192e-03, 4.83571884e-04, 2.33151963e-05, + 4.86706634e-05, 4.61678312e-07, 1.18603191e-07, + 2.81814142e-06, 9.88467229e-07], + [ 1.52941031e-02, 5.51667911e-03, 3.12377744e-04, + 2.36042810e-03, 9.91559466e-04, 6.75915830e-05, + 2.89926399e-03, 1.47141776e-02]]], + + + [[[ 4.70476003e-02, 6.06562252e-02, 1.66554040e-02, + 2.31103828e-04, 4.05482745e-05, 7.05621631e-05, + 2.47479309e-06, 6.86956236e-06], + [ 1.52941031e-02, 1.89906063e-02, 6.72672133e-03, + 3.34863029e-04, 2.45801156e-03, 1.05011361e-03, + 6.70996238e-05, 2.68052335e-03]], + + [[ 5.63621989e-02, 7.31708248e-02, 7.51309569e-02, + 2.25251946e-02, 5.23307566e-04, 1.98012644e-03, + 1.08652148e-03, 7.08494735e-05], + [ 5.31264334e-01, 6.66281623e-01, 8.03457913e-01, + 8.71957394e-01, 8.97097216e-01, 9.00725317e-01, + 8.92208794e-01, 8.41808970e-01]]]]]) + + +hamilton_ar2_short_smoothed_joint_probabilities = np.array([[[[ + 1.29898189e-02, 1.66298475e-04, 1.29822987e-05, + 9.95268382e-07, 1.84473346e-07, 7.18761267e-07, + 1.69576494e-05, 6.87762063e-03], + [ 5.09522472e-03, 8.41459714e-05, 2.35672254e-05, + 7.55872505e-05, 3.43949612e-06, 2.44153330e-05, + 8.28997024e-03, 7.64261509e-02]], + + [[ 5.90021731e-04, 2.55342733e-05, 4.50698224e-05, + 5.30734135e-07, 1.80741761e-07, 1.11483792e-05, + 5.98539007e-06, 4.35015431e-04], + [ 6.73107901e-03, 3.42109009e-04, 2.18579464e-03, + 1.13987259e-03, 1.03004157e-04, 1.14692946e-02, + 8.90976350e-02, 1.48149567e-01]]], + + + [[[ 6.34648123e-02, 1.79187451e-02, 2.37462147e-04, + 3.55542558e-05, 7.63980455e-05, 2.90520820e-06, + 8.17644492e-06, 1.42930726e-03], + [ 1.98699352e-02, 7.23695477e-03, 3.44076057e-04, + 2.15527721e-03, 1.13696383e-03, 7.87695658e-05, + 3.19047276e-03, 1.26774695e-02]], + + [[ 8.81925054e-02, 8.33092133e-02, 2.51106301e-02, + 5.81007470e-04, 2.19065072e-03, 1.20221350e-03, + 7.56893839e-05, 2.76363377e-03], + [ 8.03066603e-01, 8.90916999e-01, 9.72040418e-01, + 9.96011175e-01, 9.96489179e-01, 9.87210535e-01, + 8.99315113e-01, 7.51241236e-01]]]]) + + +class TestHamiltonAR2Short(MarkovAutoregression): + # This is just a set of regression tests + @classmethod + def setup_class(cls): + true = { + 'params': np.r_[0.754673, 0.095915, -0.358811, 1.163516, + np.exp(-0.262658)**2, 0.013486, -0.057521], + 'llf': -10.14066, + 'llf_fit': -4.0523073, + 'llf_fit_em': -8.885836 + } + super(TestHamiltonAR2Short, cls).setup_class( + true, rgnp[-10:], k_regimes=2, order=2, switching_ar=False) + + def test_fit_em(self): + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + super(TestHamiltonAR2Short, self).test_fit_em() + + def test_filter_output(self, **kwargs): + res = self.result + + # Filtered + assert_allclose(res.filtered_joint_probabilities, + hamilton_ar2_short_filtered_joint_probabilities) + + # Predicted + desired = hamilton_ar2_short_predicted_joint_probabilities + if desired.ndim > res.predicted_joint_probabilities.ndim: + desired = desired.sum(axis=-2) + assert_allclose(res.predicted_joint_probabilities, desired) + + def test_smoother_output(self, **kwargs): + res = self.result + + # Filtered + assert_allclose(res.filtered_joint_probabilities, + hamilton_ar2_short_filtered_joint_probabilities) + + # Predicted + desired = hamilton_ar2_short_predicted_joint_probabilities + if desired.ndim > res.predicted_joint_probabilities.ndim: + desired = desired.sum(axis=-2) + assert_allclose(res.predicted_joint_probabilities, desired) + + # Smoothed, entry-by-entry + assert_allclose( + res.smoothed_joint_probabilities[..., -1], + hamilton_ar2_short_smoothed_joint_probabilities[..., -1]) + assert_allclose( + res.smoothed_joint_probabilities[..., -2], + hamilton_ar2_short_smoothed_joint_probabilities[..., -2]) + assert_allclose( + res.smoothed_joint_probabilities[..., -3], + hamilton_ar2_short_smoothed_joint_probabilities[..., -3]) + assert_allclose( + res.smoothed_joint_probabilities[..., :-3], + hamilton_ar2_short_smoothed_joint_probabilities[..., :-3]) + +hamilton_ar4_filtered = [ + 0.776712, 0.949192, 0.996320, 0.990258, 0.940111, 0.537442, + 0.140001, 0.008942, 0.048480, 0.614097, 0.910889, 0.995463, + 0.979465, 0.992324, 0.984561, 0.751038, 0.776268, 0.522048, + 0.814956, 0.821786, 0.472729, 0.673567, 0.029031, 0.001556, + 0.433276, 0.985463, 0.995025, 0.966067, 0.998445, 0.801467, + 0.960997, 0.996431, 0.461365, 0.199357, 0.027398, 0.703626, + 0.946388, 0.985321, 0.998244, 0.989567, 0.984510, 0.986811, + 0.793788, 0.973675, 0.984848, 0.990418, 0.918427, 0.998769, + 0.977647, 0.978742, 0.927635, 0.998691, 0.988934, 0.991654, + 0.999288, 0.999073, 0.918636, 0.987710, 0.966876, 0.910015, + 0.826150, 0.969451, 0.844049, 0.941525, 0.993363, 0.949978, + 0.615206, 0.970915, 0.787585, 0.707818, 0.200476, 0.050835, + 0.140723, 0.809850, 0.086422, 0.990344, 0.785963, 0.817425, + 0.659152, 0.996578, 0.992860, 0.948501, 0.996883, 0.999712, + 0.906694, 0.725013, 0.963690, 0.386960, 0.241302, 0.009078, + 0.015789, 0.000896, 0.541530, 0.928686, 0.953704, 0.992741, + 0.935877, 0.918958, 0.977316, 0.987941, 0.987300, 0.996769, + 0.645469, 0.921285, 0.999917, 0.949335, 0.968914, 0.886025, + 0.777141, 0.904381, 0.368277, 0.607429, 0.002491, 0.227610, + 0.871284, 0.987717, 0.288705, 0.512124, 0.030329, 0.005177, + 0.256183, 0.020955, 0.051620, 0.549009, 0.991715, 0.987892, + 0.995377, 0.999833, 0.993756, 0.956164, 0.927714] + +hamilton_ar4_smoothed = [ + 0.968096, 0.991071, 0.998559, 0.958534, 0.540652, 0.072784, + 0.010999, 0.006228, 0.172144, 0.898574, 0.989054, 0.998293, + 0.986434, 0.993248, 0.976868, 0.858521, 0.847452, 0.675670, + 0.596294, 0.165407, 0.035270, 0.127967, 0.007414, 0.004944, + 0.815829, 0.998128, 0.998091, 0.993227, 0.999283, 0.921100, + 0.977171, 0.971757, 0.124680, 0.063710, 0.114570, 0.954701, + 0.994852, 0.997302, 0.999345, 0.995817, 0.996218, 0.994580, + 0.933990, 0.996054, 0.998151, 0.996976, 0.971489, 0.999786, + 0.997362, 0.996755, 0.993053, 0.999947, 0.998469, 0.997987, + 0.999830, 0.999360, 0.953176, 0.992673, 0.975235, 0.938121, + 0.946784, 0.986897, 0.905792, 0.969755, 0.995379, 0.914480, + 0.772814, 0.931385, 0.541742, 0.394596, 0.063428, 0.027829, + 0.124527, 0.286105, 0.069362, 0.995950, 0.961153, 0.962449, + 0.945022, 0.999855, 0.998943, 0.980041, 0.999028, 0.999838, + 0.863305, 0.607421, 0.575983, 0.013300, 0.007562, 0.000635, + 0.001806, 0.002196, 0.803550, 0.972056, 0.984503, 0.998059, + 0.985211, 0.988486, 0.994452, 0.994498, 0.998873, 0.999192, + 0.870482, 0.976282, 0.999961, 0.984283, 0.973045, 0.786176, + 0.403673, 0.275418, 0.115199, 0.257560, 0.004735, 0.493936, + 0.907360, 0.873199, 0.052959, 0.076008, 0.001653, 0.000847, + 0.062027, 0.021257, 0.219547, 0.955654, 0.999851, 0.997685, + 0.998324, 0.999939, 0.996858, 0.969209, 0.927714] + + +class TestHamiltonAR4(MarkovAutoregression): + @classmethod + def setup_class(cls): + # Results from E-views: + # Dependent variable followed by a list of switching regressors: + # rgnp c + # List of non-switching regressors: + # ar(1) ar(2) ar(3) ar(4) + # Do not check "Regime specific error variances" + # Switching type: Markov + # Number of Regimes: 2 + # Probability regressors: + # c + # Method SWITCHREG + # Sample 1951q1 1984q4 + true = { + 'params': np.r_[0.754673, 0.095915, -0.358811, 1.163516, + np.exp(-0.262658)**2, 0.013486, -0.057521, + -0.246983, -0.212923], + 'llf': -181.26339, + 'llf_fit': -181.26339, + 'llf_fit_em': -183.85444, + 'bse_oim': np.r_[.0965189, .0377362, .2645396, .0745187, np.nan, + .1199942, .137663, .1069103, .1105311, ] + } + super(TestHamiltonAR4, cls).setup_class( + true, rgnp, k_regimes=2, order=4, switching_ar=False) + + def test_filtered_regimes(self): + res = self.result + assert_equal(len(res.filtered_marginal_probabilities[:, 1]), + self.model.nobs) + assert_allclose(res.filtered_marginal_probabilities[:, 1], + hamilton_ar4_filtered, atol=1e-5) + + def test_smoothed_regimes(self): + res = self.result + assert_equal(len(res.smoothed_marginal_probabilities[:, 1]), + self.model.nobs) + assert_allclose(res.smoothed_marginal_probabilities[:, 1], + hamilton_ar4_smoothed, atol=1e-5) + + def test_bse(self): + # Can't compare middle element of bse because we estimate sigma^2 + # rather than sigma + bse = self.result.cov_params_approx.diagonal()**0.5 + assert_allclose(bse[:4], self.true['bse_oim'][:4], atol=1e-6) + assert_allclose(bse[6:], self.true['bse_oim'][6:], atol=1e-6) + + +class TestHamiltonAR2Switch(MarkovAutoregression): + # Results from Stata, see http://www.stata.com/manuals14/tsmswitch.pdf + @classmethod + def setup_class(cls): + path = os.path.join(current_path, 'results', + 'results_predict_rgnp.csv') + results = pd.read_csv(path) + + true = { + 'params': np.r_[.3812383, .3564492, -.0055216, 1.195482, + .6677098**2, .3710719, .4621503, .7002937, + -.3206652], + 'llf': -179.32354, + 'llf_fit': -179.38684, + 'llf_fit_em': -184.99606, + 'bse_oim': np.r_[.1424841, .0994742, .2057086, .1225987, np.nan, + .1754383, .1652473, .187409, .1295937], + 'smoothed0': results.ix[3:, 'switchar2_sm1'], + 'smoothed1': results.ix[3:, 'switchar2_sm2'], + 'predict0': results.ix[3:, 'switchar2_yhat1'], + 'predict1': results.ix[3:, 'switchar2_yhat2'], + 'predict_predicted': results.ix[3:, 'switchar2_pyhat'], + 'predict_filtered': results.ix[3:, 'switchar2_fyhat'], + 'predict_smoothed': results.ix[3:, 'switchar2_syhat'], + } + super(TestHamiltonAR2Switch, cls).setup_class( + true, rgnp, k_regimes=2, order=2) + + def test_smoothed_marginal_probabilities(self): + assert_allclose(self.result.smoothed_marginal_probabilities[:, 0], + self.true['smoothed0'], atol=1e-6) + assert_allclose(self.result.smoothed_marginal_probabilities[:, 1], + self.true['smoothed1'], atol=1e-6) + + def test_predict(self): + # Smoothed + actual = self.model.predict( + self.true['params'], probabilities='smoothed') + assert_allclose(actual, self.true['predict_smoothed'], atol=1e-6) + actual = self.model.predict( + self.true['params'], probabilities=None) + assert_allclose(actual, self.true['predict_smoothed'], atol=1e-6) + + actual = self.result.predict(probabilities='smoothed') + assert_allclose(actual, self.true['predict_smoothed'], atol=1e-6) + actual = self.result.predict(probabilities=None) + assert_allclose(actual, self.true['predict_smoothed'], atol=1e-6) + + def test_bse(self): + # Can't compare middle element of bse because we estimate sigma^2 + # rather than sigma + bse = self.result.cov_params_approx.diagonal()**0.5 + assert_allclose(bse[:4], self.true['bse_oim'][:4], atol=1e-7) + assert_allclose(bse[6:], self.true['bse_oim'][6:], atol=1e-7) + + +hamilton_ar1_switch_filtered = [ + 0.840288, 0.730337, 0.900234, 0.596492, 0.921618, 0.983828, + 0.959039, 0.898366, 0.477335, 0.251089, 0.049367, 0.386782, + 0.942868, 0.965632, 0.982857, 0.897603, 0.946986, 0.916413, + 0.640912, 0.849296, 0.778371, 0.954420, 0.929906, 0.723930, + 0.891196, 0.061163, 0.004806, 0.977369, 0.997871, 0.977950, + 0.896580, 0.963246, 0.430539, 0.906586, 0.974589, 0.514506, + 0.683457, 0.276571, 0.956475, 0.966993, 0.971618, 0.987019, + 0.916670, 0.921652, 0.930265, 0.655554, 0.965858, 0.964981, + 0.976790, 0.868267, 0.983240, 0.852052, 0.919150, 0.854467, + 0.987868, 0.935840, 0.958138, 0.979535, 0.956541, 0.716322, + 0.919035, 0.866437, 0.899609, 0.914667, 0.976448, 0.867252, + 0.953075, 0.977850, 0.884242, 0.688299, 0.968461, 0.737517, + 0.870674, 0.559413, 0.380339, 0.582813, 0.941311, 0.240020, + 0.999349, 0.619258, 0.828343, 0.729726, 0.991009, 0.966291, + 0.899148, 0.970798, 0.977684, 0.695877, 0.637555, 0.915824, + 0.434600, 0.771277, 0.113756, 0.144002, 0.008466, 0.994860, + 0.993173, 0.961722, 0.978555, 0.789225, 0.836283, 0.940383, + 0.968368, 0.974473, 0.980248, 0.518125, 0.904086, 0.993023, + 0.802936, 0.920906, 0.685445, 0.666524, 0.923285, 0.643861, + 0.938184, 0.008862, 0.945406, 0.990061, 0.991500, 0.486669, + 0.805039, 0.089036, 0.025067, 0.863309, 0.352784, 0.733295, + 0.928710, 0.984257, 0.926597, 0.959887, 0.984051, 0.872682, + 0.824375, 0.780157] + +hamilton_ar1_switch_smoothed = [ + 0.900074, 0.758232, 0.914068, 0.637248, 0.901951, 0.979905, + 0.958935, 0.888641, 0.261602, 0.148761, 0.056919, 0.424396, + 0.932184, 0.954962, 0.983958, 0.895595, 0.949519, 0.923473, + 0.678898, 0.848793, 0.807294, 0.958868, 0.942936, 0.809137, + 0.960892, 0.032947, 0.007127, 0.967967, 0.996551, 0.979278, + 0.896181, 0.987462, 0.498965, 0.908803, 0.986893, 0.488720, + 0.640492, 0.325552, 0.951996, 0.959703, 0.960914, 0.986989, + 0.916779, 0.924570, 0.935348, 0.677118, 0.960749, 0.958966, + 0.976974, 0.838045, 0.986562, 0.847774, 0.908866, 0.821110, + 0.984965, 0.915302, 0.938196, 0.976518, 0.973780, 0.744159, + 0.922006, 0.873292, 0.904035, 0.917547, 0.978559, 0.870915, + 0.948420, 0.979747, 0.884791, 0.711085, 0.973235, 0.726311, + 0.828305, 0.446642, 0.411135, 0.639357, 0.973151, 0.141707, + 0.999805, 0.618207, 0.783239, 0.672193, 0.987618, 0.964655, + 0.877390, 0.962437, 0.989002, 0.692689, 0.699370, 0.937934, + 0.522535, 0.824567, 0.058746, 0.146549, 0.009864, 0.994072, + 0.992084, 0.956945, 0.984297, 0.795926, 0.845698, 0.935364, + 0.963285, 0.972767, 0.992168, 0.528278, 0.826349, 0.996574, + 0.811431, 0.930873, 0.680756, 0.721072, 0.937977, 0.731879, + 0.996745, 0.016121, 0.951187, 0.989820, 0.996968, 0.592477, + 0.889144, 0.036015, 0.040084, 0.858128, 0.418984, 0.746265, + 0.907990, 0.980984, 0.900449, 0.934741, 0.986807, 0.872818, + 0.812080, 0.780157] + + +class TestHamiltonAR1Switch(MarkovAutoregression): + @classmethod + def setup_class(cls): + # Results from E-views: + # Dependent variable followed by a list of switching regressors: + # rgnp c ar(1) + # List of non-switching regressors: + # Do not check "Regime specific error variances" + # Switching type: Markov + # Number of Regimes: 2 + # Probability regressors: + # c + # Method SWITCHREG + # Sample 1951q1 1984q4 + true = { + 'params': np.r_[0.85472458, 0.53662099, 1.041419, -0.479157, + np.exp(-0.231404)**2, 0.243128, 0.713029], + 'llf': -186.7575, + 'llf_fit': -186.7575, + 'llf_fit_em': -189.25446 + } + super(TestHamiltonAR1Switch, cls).setup_class( + true, rgnp, k_regimes=2, order=1) + + def test_filtered_regimes(self): + assert_allclose(self.result.filtered_marginal_probabilities[:, 0], + hamilton_ar1_switch_filtered, atol=1e-5) + + def test_smoothed_regimes(self): + assert_allclose(self.result.smoothed_marginal_probabilities[:, 0], + hamilton_ar1_switch_smoothed, atol=1e-5) + + def test_expected_durations(self): + expected_durations = [6.883477, 1.863513] + assert_allclose(self.result.expected_durations, expected_durations, + atol=1e-5) + + +hamilton_ar1_switch_tvtp_filtered = [ + 0.999996, 0.999211, 0.999849, 0.996007, 0.999825, 0.999991, + 0.999981, 0.999819, 0.041745, 0.001116, 1.74e-05, 0.000155, + 0.999976, 0.999958, 0.999993, 0.999878, 0.999940, 0.999791, + 0.996553, 0.999486, 0.998485, 0.999894, 0.999765, 0.997657, + 0.999619, 0.002853, 1.09e-05, 0.999884, 0.999996, 0.999997, + 0.999919, 0.999987, 0.989762, 0.999807, 0.999978, 0.050734, + 0.010660, 0.000217, 0.006174, 0.999977, 0.999954, 0.999995, + 0.999934, 0.999867, 0.999824, 0.996783, 0.999941, 0.999948, + 0.999981, 0.999658, 0.999994, 0.999753, 0.999859, 0.999330, + 0.999993, 0.999956, 0.999970, 0.999996, 0.999991, 0.998674, + 0.999869, 0.999432, 0.999570, 0.999600, 0.999954, 0.999499, + 0.999906, 0.999978, 0.999712, 0.997441, 0.999948, 0.998379, + 0.999578, 0.994745, 0.045936, 0.006816, 0.027384, 0.000278, + 1.000000, 0.996382, 0.999541, 0.998130, 0.999992, 0.999990, + 0.999860, 0.999986, 0.999997, 0.998520, 0.997777, 0.999821, + 0.033353, 0.011629, 6.95e-05, 4.52e-05, 2.04e-06, 0.999963, + 0.999977, 0.999949, 0.999986, 0.999240, 0.999373, 0.999858, + 0.999946, 0.999972, 0.999991, 0.994039, 0.999817, 0.999999, + 0.999715, 0.999924, 0.997763, 0.997944, 0.999825, 0.996592, + 0.695147, 0.000161, 0.999665, 0.999928, 0.999988, 0.992742, + 0.374214, 0.001569, 2.16e-05, 0.000941, 4.32e-05, 0.000556, + 0.999955, 0.999993, 0.999942, 0.999973, 0.999999, 0.999919, + 0.999438, 0.998738] + +hamilton_ar1_switch_tvtp_smoothed = [ + 0.999997, 0.999246, 0.999918, 0.996118, 0.999740, 0.999990, + 0.999984, 0.999783, 0.035454, 0.000958, 1.53e-05, 0.000139, + 0.999973, 0.999939, 0.999994, 0.999870, 0.999948, 0.999884, + 0.997243, 0.999668, 0.998424, 0.999909, 0.999860, 0.998037, + 0.999559, 0.002533, 1.16e-05, 0.999801, 0.999993, 0.999997, + 0.999891, 0.999994, 0.990096, 0.999753, 0.999974, 0.048495, + 0.009289, 0.000542, 0.005991, 0.999974, 0.999929, 0.999995, + 0.999939, 0.999880, 0.999901, 0.996221, 0.999937, 0.999935, + 0.999985, 0.999450, 0.999995, 0.999768, 0.999897, 0.998930, + 0.999992, 0.999949, 0.999954, 0.999995, 0.999994, 0.998687, + 0.999902, 0.999547, 0.999653, 0.999538, 0.999966, 0.999485, + 0.999883, 0.999982, 0.999831, 0.996940, 0.999968, 0.998678, + 0.999780, 0.993895, 0.055372, 0.020421, 0.022913, 0.000127, + 1.000000, 0.997072, 0.999715, 0.996893, 0.999990, 0.999991, + 0.999811, 0.999978, 0.999998, 0.999100, 0.997866, 0.999787, + 0.034912, 0.009932, 5.91e-05, 3.99e-05, 1.77e-06, 0.999954, + 0.999976, 0.999932, 0.999991, 0.999429, 0.999393, 0.999845, + 0.999936, 0.999961, 0.999995, 0.994246, 0.999570, 1.000000, + 0.999702, 0.999955, 0.998611, 0.998019, 0.999902, 0.998486, + 0.673991, 0.000205, 0.999627, 0.999902, 0.999994, 0.993707, + 0.338707, 0.001359, 2.36e-05, 0.000792, 4.47e-05, 0.000565, + 0.999932, 0.999993, 0.999931, 0.999950, 0.999999, 0.999940, + 0.999626, 0.998738] + +expected_durations = [ + [710.7573, 1.000391], [710.7573, 1.000391], [710.7573, 1.000391], + [710.7573, 1.000391], [710.7573, 1.000391], [710.7573, 1.000391], + [710.7573, 1.000391], [710.7573, 1.000391], [1.223309, 1864.084], + [1.223309, 1864.084], [1.223309, 1864.084], [1.223309, 1864.084], + [710.7573, 1.000391], [710.7573, 1.000391], [710.7573, 1.000391], + [710.7573, 1.000391], [710.7573, 1.000391], [710.7573, 1.000391], + [710.7573, 1.000391], [710.7573, 1.000391], [710.7573, 1.000391], + [710.7573, 1.000391], [710.7573, 1.000391], [710.7573, 1.000391], + [710.7573, 1.000391], [1.223309, 1864.084], [1.223309, 1864.084], + [710.7573, 1.000391], [710.7573, 1.000391], [710.7573, 1.000391], + [710.7573, 1.000391], [710.7573, 1.000391], [710.7573, 1.000391], + [710.7573, 1.000391], [710.7573, 1.000391], [1.223309, 1864.084], + [1.223309, 1864.084], [1.223309, 1864.084], [1.223309, 1864.084], + [710.7573, 1.000391], [710.7573, 1.000391], [710.7573, 1.000391], + [710.7573, 1.000391], [710.7573, 1.000391], [710.7573, 1.000391], + [710.7573, 1.000391], [710.7573, 1.000391], [710.7573, 1.000391], + [710.7573, 1.000391], [710.7573, 1.000391], [710.7573, 1.000391], + [710.7573, 1.000391], [710.7573, 1.000391], [710.7573, 1.000391], + [710.7573, 1.000391], [710.7573, 1.000391], [710.7573, 1.000391], + [710.7573, 1.000391], [710.7573, 1.000391], [710.7573, 1.000391], + [710.7573, 1.000391], [710.7573, 1.000391], [710.7573, 1.000391], + [710.7573, 1.000391], [710.7573, 1.000391], [710.7573, 1.000391], + [710.7573, 1.000391], [710.7573, 1.000391], [710.7573, 1.000391], + [710.7573, 1.000391], [710.7573, 1.000391], [710.7573, 1.000391], + [710.7573, 1.000391], [710.7573, 1.000391], [1.223309, 1864.084], + [1.223309, 1864.084], [1.223309, 1864.084], [1.223309, 1864.084], + [710.7573, 1.000391], [710.7573, 1.000391], [710.7573, 1.000391], + [710.7573, 1.000391], [710.7573, 1.000391], [710.7573, 1.000391], + [710.7573, 1.000391], [710.7573, 1.000391], [710.7573, 1.000391], + [710.7573, 1.000391], [710.7573, 1.000391], [710.7573, 1.000391], + [1.223309, 1864.084], [1.223309, 1864.084], [1.223309, 1864.084], + [1.223309, 1864.084], [1.223309, 1864.084], [710.7573, 1.000391], + [710.7573, 1.000391], [710.7573, 1.000391], [710.7573, 1.000391], + [710.7573, 1.000391], [710.7573, 1.000391], [710.7573, 1.000391], + [710.7573, 1.000391], [710.7573, 1.000391], [710.7573, 1.000391], + [710.7573, 1.000391], [710.7573, 1.000391], [710.7573, 1.000391], + [710.7573, 1.000391], [710.7573, 1.000391], [710.7573, 1.000391], + [710.7573, 1.000391], [710.7573, 1.000391], [710.7573, 1.000391], + [1.223309, 1864.084], [1.223309, 1864.084], [710.7573, 1.000391], + [710.7573, 1.000391], [710.7573, 1.000391], [710.7573, 1.000391], + [1.223309, 1864.084], [1.223309, 1864.084], [1.223309, 1864.084], + [1.223309, 1864.084], [1.223309, 1864.084], [1.223309, 1864.084], + [710.7573, 1.000391], [710.7573, 1.000391], [710.7573, 1.000391], + [710.7573, 1.000391], [710.7573, 1.000391], [710.7573, 1.000391], + [710.7573, 1.000391], [710.7573, 1.000391]] + + +class TestHamiltonAR1SwitchTVTP(MarkovAutoregression): + @classmethod + def setup_class(cls): + # Results from E-views: + # Dependent variable followed by a list of switching regressors: + # rgnp c ar(1) + # List of non-switching regressors: + # Do not check "Regime specific error variances" + # Switching type: Markov + # Number of Regimes: 2 + # Probability regressors: + # c recession + # Method SWITCHREG + # Sample 1951q1 1984q4 + true = { + 'params': np.r_[6.564923, 7.846371, -8.064123, -15.37636, + 1.027190, -0.719760, + np.exp(-0.217003)**2, 0.161489, 0.022536], + 'llf': -163.914049, + 'llf_fit': -161.786477, + 'llf_fit_em': -163.914049 + } + exog_tvtp = np.c_[np.ones(len(rgnp)), rec] + super(TestHamiltonAR1SwitchTVTP, cls).setup_class( + true, rgnp, k_regimes=2, order=1, exog_tvtp=exog_tvtp) + + def test_fit_em(self): + raise SkipTest + + def test_filtered_regimes(self): + assert_allclose(self.result.filtered_marginal_probabilities[:, 0], + hamilton_ar1_switch_tvtp_filtered, atol=1e-5) + + def test_smoothed_regimes(self): + assert_allclose(self.result.smoothed_marginal_probabilities[:, 0], + hamilton_ar1_switch_tvtp_smoothed, atol=1e-5) + + def test_expected_durations(self): + assert_allclose(self.result.expected_durations, expected_durations, + rtol=1e-5, atol=1e-7) + + +class TestFilardo(MarkovAutoregression): + @classmethod + def setup_class(cls): + path = os.path.join(current_path, 'results', 'mar_filardo.csv') + cls.mar_filardo = pd.read_csv(path) + true = { + 'params': np.r_[4.35941747, -1.6493936, 1.7702123, 0.9945672, + 0.517298, -0.865888, + np.exp(-0.362469)**2, + 0.189474, 0.079344, 0.110944, 0.122251], + 'llf': -586.5718, + 'llf_fit': -586.5718, + 'llf_fit_em': -586.5718 + } + endog = cls.mar_filardo['dlip'].iloc[1:].values + exog_tvtp = add_constant( + cls.mar_filardo['dmdlleading'].iloc[:-1].values) + super(TestFilardo, cls).setup_class( + true, endog, k_regimes=2, order=4, switching_ar=False, + exog_tvtp=exog_tvtp) + + def test_fit(self, **kwargs): + raise SkipTest + + def test_fit_em(self): + raise SkipTest + + def test_filtered_regimes(self): + assert_allclose(self.result.filtered_marginal_probabilities[:, 0], + self.mar_filardo['filtered_0'].iloc[5:], atol=1e-5) + + def test_smoothed_regimes(self): + assert_allclose(self.result.smoothed_marginal_probabilities[:, 0], + self.mar_filardo['smoothed_0'].iloc[5:], atol=1e-5) + + def test_expected_durations(self): + assert_allclose(self.result.expected_durations, + self.mar_filardo[['duration0', 'duration1']].iloc[5:], + rtol=1e-5, atol=1e-7) diff --git a/statsmodels/tsa/regime_switching/tests/test_markov_regression.py b/statsmodels/tsa/regime_switching/tests/test_markov_regression.py new file mode 100644 index 0000000..3b7efc1 --- /dev/null +++ b/statsmodels/tsa/regime_switching/tests/test_markov_regression.py @@ -0,0 +1,1115 @@ +""" +Tests for Markov Regression models + +Author: Chad Fulton +License: BSD-3 +""" +from __future__ import division, absolute_import, print_function + +import os +import warnings +import numpy as np +import pandas as pd +from statsmodels.tsa.regime_switching import (markov_switching, + markov_regression) +from numpy.testing import assert_equal, assert_allclose, assert_raises +from nose.exc import SkipTest + + +current_path = os.path.dirname(os.path.abspath(__file__)) + + +# See http://www.stata-press.com/data/r14/usmacro +fedfunds = [1.03, 0.99, 1.34, 1.5, 1.94, 2.36, 2.48, 2.69, 2.81, 2.93, 2.93, + 3.0, 3.23, 3.25, 1.86, 0.94, 1.32, 2.16, 2.57, 3.08, 3.58, 3.99, + 3.93, 3.7, 2.94, 2.3, 2.0, 1.73, 1.68, 2.4, 2.46, 2.61, 2.85, + 2.92, 2.97, 2.96, 3.33, 3.45, 3.46, 3.49, 3.46, 3.58, 3.97, 4.08, + 4.07, 4.17, 4.56, 4.91, 5.41, 5.56, 4.82, 3.99, 3.89, 4.17, 4.79, + 5.98, 5.94, 5.92, 6.57, 8.33, 8.98, 8.94, 8.57, 7.88, 6.7, 5.57, + 3.86, 4.56, 5.47, 4.75, 3.54, 4.3, 4.74, 5.14, 6.54, 7.82, 10.56, + 10.0, 9.32, 11.25, 12.09, 9.35, 6.3, 5.42, 6.16, 5.41, 4.83, 5.2, + 5.28, 4.87, 4.66, 5.16, 5.82, 6.51, 6.76, 7.28, 8.1, 9.58, 10.07, + 10.18, 10.95, 13.58, 15.05, 12.69, 9.84, 15.85, 16.57, 17.78, + 17.58, 13.59, 14.23, 14.51, 11.01, 9.29, 8.65, 8.8, 9.46, 9.43, + 9.69, 10.56, 11.39, 9.27, 8.48, 7.92, 7.9, 8.1, 7.83, 6.92, 6.21, + 6.27, 6.22, 6.65, 6.84, 6.92, 6.66, 7.16, 7.98, 8.47, 9.44, 9.73, + 9.08, 8.61, 8.25, 8.24, 8.16, 7.74, 6.43, 5.86, 5.64, 4.82, 4.02, + 3.77, 3.26, 3.04, 3.04, 3.0, 3.06, 2.99, 3.21, 3.94, 4.49, 5.17, + 5.81, 6.02, 5.8, 5.72, 5.36, 5.24, 5.31, 5.28, 5.28, 5.52, 5.53, + 5.51, 5.52, 5.5, 5.53, 4.86, 4.73, 4.75, 5.09, 5.31, 5.68, 6.27, + 6.52, 6.47, 5.59, 4.33, 3.5, 2.13, 1.73, 1.75, 1.74, 1.44, 1.25, + 1.25, 1.02, 1.0, 1.0, 1.01, 1.43, 1.95, 2.47, 2.94, 3.46, 3.98, + 4.46, 4.91, 5.25, 5.25, 5.26, 5.25, 5.07, 4.5, 3.18, 2.09, 1.94, + 0.51, 0.18, 0.18, 0.16, 0.12, 0.13, 0.19, 0.19, 0.19] + +# See http://www.stata-press.com/data/r14/usmacro +ogap = [-0.53340107, 0.72974336, 2.93532324, 3.58194304, 4.15760183, + 4.28775644, 3.01683831, 2.64185619, 1.82473528, 2.37461162, + 2.39338565, 1.24197006, 1.1370815, -1.28657401, -4.46665335, + -4.79258966, -3.06711817, -1.3212384, -0.54485309, 0.86588413, + -0.2469136, -0.75004685, 0.7417022, -0.71350163, -1.5151515, + -3.80444455, -4.02601957, -3.17873883, -2.48841596, -1.42372882, + -0.61779928, -0.6430338, -0.73277968, -1.38330388, -1.31537247, + -0.95626277, 0., -0.15248552, 0.93233085, 1.03888392, + 1.27174389, 0.63400578, 2.13007665, 2.44789481, 3.37605071, + 4.72771597, 6.20753956, 5.39234877, 5.0825758, 4.8605876, + 4.65116262, 3.52755141, 3.35122228, 3.09326482, 4.10191917, + 4.69641066, 4.38452244, 3.79841614, 4.38338947, 3.63766766, + 3.24129653, 1.84967709, 0.75554705, -0.02802691, -0.03673432, + -1.90527546, -0.14918824, -0.42940569, -0.46382189, -0.97892815, + -0.12142799, 1.37281513, 1.5143193, 2.47730422, 3.9762032, + 4.08987427, 2.62857127, 2.90107131, 0.97277576, 0.42547619, + -1.60488391, -2.97784758, -4.98650694, -5.03382635, -4.25698328, + -3.74993205, -2.39661908, -2.41223454, -2.66694117, -2.62232494, + -2.29969597, -1.38809109, -0.67855304, -1.08100712, -1.82682908, + 0.92868561, 0.87040615, 1.32669306, 0.56407404, -0.13848817, + -0.13089494, -0.58975571, -1.00534534, -3.55482054, -4.20365095, + -2.97225475, -1.57762408, -2.77206445, -2.32418823, -4.01929235, + -6.25393772, -6.46356869, -7.47437572, -8.06377602, -7.57157278, + -6.14639282, -5.00167227, -3.74511886, -2.54788184, -1.64858043, + -1.47994602, -1.44707143, -1.31824112, -1.20102882, -0.57691002, + -0.64480144, -0.57239723, -0.93083948, -0.8392899, -1.19972074, + -1.18918467, -0.87174636, -0.78151888, 0.10762761, -0.10596547, + 0.40488175, 0.17958413, 0.67704558, 0.99767941, 1.00495291, + 0.98304421, 0.47067845, 0.80427116, 0.45058677, -0.26300991, + -1.84629929, -2.99437666, -2.90482664, -3.09490418, -3.32399321, + -2.87384319, -2.47262239, -2.19618678, -1.91843009, -2.46574545, + -2.58180451, -2.72212362, -2.17548561, -1.96046102, -1.3287729, + -1.42521954, -1.04951096, -1.47037697, -1.87099183, -1.72912872, + -1.76828432, -1.85885167, -0.9193368, -0.95776832, -0.62119246, + -0.53508854, -0.04090983, 0.47511154, 0.41246772, 0.57928383, + 0.67604625, 1.1378212, 1.96481478, 2.05066752, 1.93714142, + 2.34412026, 3.16807413, 2.57455897, 3.59218717, 2.79711962, + 2.41787243, 1.19362748, 0.82524049, -0.36692095, -1.00542021, + -0.89346135, -1.23166943, -1.56921482, -2.29188299, -2.56877398, + -2.37549472, -1.4183135, -1.00017595, -1.03901041, -0.86736482, + -0.63541794, -0.38296556, 0.11404825, 0.07249562, 0.30608681, + 0.27121997, 0.90333837, 0.595429, 0.08057959, 0.25154814, + -0.27741581, -0.14053501, -0.06035376, -0.2722317, -1.5122633, + -1.5272249, -2.5325017, -5.14671373, -6.88223982, -7.36753035, + -7.43927145, -6.89403868, -6.8306222, -6.26507998, -5.93287086, + -5.59370756] + +# See http://www.stata-press.com/data/r14/usmacro +inf = [np.nan, np.nan, np.nan, np.nan, -0.2347243, + 0.37373397, 0.25006533, 1.04645514, 2.01665616, 2.58033299, + 3.41399837, 3.60986805, 3.46304512, 3.08529949, 3.45609665, + 3.27347994, 2.29982662, 1.91197193, 0.89083761, 0.390598, + 0.96842253, 1.47531354, 1.39343977, 1.82488036, 1.35991514, + 1.39598227, 1.50695646, 0.8690359, 1.20648873, 0.70517123, + 0.89477205, 1.30740857, 1.20212376, 1.30043352, 1.22895002, + 1.03573787, 1.36272156, 1.39236343, 1.48636675, 1.46398985, + 1.07421875, 1.26611042, 1.1639185, 1.64622331, 1.71658623, + 1.78565705, 2.41930342, 2.6897428, 3.27391338, 3.5685041, + 2.87078357, 2.56671929, 2.70717716, 2.99242783, 3.74010396, + 4.11855173, 4.47761202, 4.62397051, 4.87426901, 5.50198364, + 5.52285719, 5.83354473, 6.22577858, 6.03848171, 5.68597221, + 5.60000038, 4.81102371, 4.31496382, 4.27074528, 3.53535342, + 3.50587225, 3.22580624, 3.02948403, 3.33414626, 4.1129365, + 5.60817289, 6.83709764, 8.41692829, 9.91564655, 10.54788017, + 11.45758915, 12.04798317, 11.13530636, 9.53939915, 8.67963028, + 7.38337183, 6.34047985, 6.01503754, 5.58903217, 5.18573475, + 5.90339899, 6.79609919, 6.57417107, 6.59522104, 6.47466183, + 7.02936935, 8.02397346, 8.9289465, 9.78376389, 10.75433922, + 11.72252846, 12.64148235, 14.20953751, 14.42577076, 12.93487072, + 12.53929329, 11.26111889, 9.87392902, 10.85386753, 9.5831337, + 7.58190918, 6.90676928, 5.81573057, 4.44292784, 3.59408045, + 3.29905081, 2.52680969, 3.23384356, 4.62551022, 4.40519285, + 4.29570436, 4.1543026, 3.64175439, 3.60676312, 3.35249043, + 3.5137701, 3.1053853, 1.67858768, 1.66821122, 1.34587157, + 2.03802228, 3.69979739, 4.16317225, 4.40493536, 3.96511626, + 3.97994113, 4.1420536, 4.3066597, 4.67509222, 5.15961123, + 4.70588255, 4.62759781, 5.23231459, 4.58372736, 5.56420517, + 6.27646685, 5.25958157, 4.84686804, 3.85226536, 2.96485686, + 2.89388347, 3.07301927, 3.07467055, 3.12198234, 3.17306924, + 3.12524581, 2.8174715, 2.76977897, 2.53936958, 2.38237333, + 2.85493255, 2.60332823, 2.84049082, 3.09557867, 2.66420412, + 2.62607908, 2.78390908, 2.8270874, 2.8999064, 3.23162007, + 2.94453382, 2.30179024, 2.22504783, 1.89075232, 1.48277605, + 1.58312511, 1.59639311, 1.5253576, 1.68703699, 2.11280179, + 2.34625125, 2.61982656, 3.25799918, 3.29342604, 3.46889949, + 3.44350553, 3.40975904, 3.32491398, 2.67803454, 1.87507534, + 1.23194993, 1.31765401, 1.57628381, 2.25352097, 2.97640777, + 2.00593972, 2.21688938, 2.00165296, 1.81766617, 2.78586531, + 2.67522621, 3.38513398, 3.0353508, 2.92293549, 3.81956744, + 3.6745038, 3.69086194, 3.92426181, 3.34028482, 1.96539891, + 2.43147993, 2.66511655, 2.34880662, 4.03147316, 4.13719845, + 4.31058264, 5.25250196, 1.59580016, -0.1842365, -0.94229329, + -1.60695589, 1.48749816, 2.33687115, 1.78588998, 1.22873163, + 1.21550024] + +# See http://www.stata-press.com/data/r14/snp500 +areturns = [1.60864139, 0.6581642, 0.91177338, + 1.88970506, 0.76378739, 0.10790635, 0.29509732, + 0.16913767, 1.30772412, 0.85901159, 0.92307973, + 0.9833895, 0.9116146, 2.58575296, 0.36441925, + 1.89720023, 0.65161127, 1.17255056, 0.53518051, + 0.00534112, 1.25064528, 2.00023437, 0.79801333, + 1.42980587, 0.02078664, 2.31948757, 2.78705025, + 1.36003578, 0.15257211, 0.30815724, 0.40030465, + 0.89941251, 0.36925647, 0.75660467, 0.87896836, + 1.07261622, 0.1137321, 1.32838523, 1.03085732, + 1.33930087, 0.66706187, 0.94959277, 1.07173061, + 0.80687243, 1.35347247, 1.56781077, 0.71599048, + 0.50293237, 0.33926481, 2.94415998, 0.72026408, + 0.28967711, 1.05362082, 0.3702977, 2.05277085, + 0.49342933, 0.03423685, 0.34392089, 1.01741159, + 1.43457139, 0.03759775, 1.54626679, 1.07742834, + 0.28664029, 0.72592038, 0.91093767, 0.06915179, + 0.88005662, 0.47802091, 1.2907486, 0.57604247, + 0.71046084, 0.81753206, 0.26241753, 2.57300162, + 0.16590172, 0.2918649, 0.96136051, 1.6711514, + 0.94229084, 1.83614326, 0.28854966, 0.35050908, + 0.04593768, 0.07599987, 0.09888303, 0.12907109, + 2.0099268, 0.23006552, 1.18803704, 0.99970037, + 1.32702613, 0.45646569, 1.43720019, 0.04425191, + 0.53156406, 0.45951003, 1.26583254, 0.26994073, + 0.1238014, 0.53068936, 0.21927625, 0.73882329, + 0.13153869, 0.97837049, 2.36890459, 2.29313374, + 0.75562358, 0.08656374, 2.4979558, 0.64189923, + 0.22916116, 2.27840376, 0.46641645, 2.02508688, + 1.25530422, 1.27711689, 0.07773363, 0.23380435, + 1.58663058, 0.19108967, 0.52218717, 0.18055375, + 1.18262017, 0.47418493, 0.88282752, 0.98944044, + 1.04560554, 0.65470523, 0.2604697, 0.14658713, + 0.77688956, 1.10911596, 0.69967973, 1.04578161, + 0.29641318, 0.98087156, 0.46531865, 0.11846001, + 0.44440377, 1.11066306, 0.02238905, 0.19865835, + 1.48028743, 0.27695858, 0.9391492, 1.70575404, + 2.94507742, 0.35386264, 0.72816408, 1.80369282, + 0.12440593, 1.04197288, 1.2957871, 1.35031664, + 0.55384284, 1.13915396, 0.29186234, 1.21344364, + 0.23005128, 0.85578758, 1.80613887, 1.55996382, + 1.46395147, 0.59826899, 0.65880769, 1.68974137, + 1.12778795, 4.19566727, 0.14379959, 2.09945345, + 0.29264972, 1.25936544, 0.84738803, 0.54094779, + 2.27655816, 1.48392296, 1.13808954, 1.16038692, + 0.46204364, 2.09433556, 1.16782069, 2.0192802, + 2.6190269, 1.63471925, 0.25279006, 2.64083171, + 1.64290273, 2.42852569, 1.54714262, 1.14975035, + 3.59362221, 1.16689992, 5.11030865, 1.81326246, + 0.93489766, 1.38605726, 0.53841805, 1.02298951, + 2.03038621, 2.8340385, 0.13691254, 3.18769765, + 0.23076122, 1.95332313, 1.63122225, 2.66484141, + 0.86377442, 1.1782372, 0.57231718, 1.11979997, + 2.07001758, 0.08726255, 1.71130466, 1.04979181, + 1.9825747, 3.43235064, 1.50204682, 1.75699294, + 2.56816769, 0.75786251, 0.93131924, 1.45494628, + 0.49975556, 0.32756457, 0.47183469, 3.3737793, + 2.25759649, 0.34138981, 3.09048033, 10.32189178, + 10.15319347, 0.12398402, 4.65263939, 7.62032652, + 7.04052448, 4.55579329, 3.52704573, 3.38968754, + 3.00466204, 0.46617937, 1.42808878, 1.00660408, + 4.65142584, 5.20996618, 4.80301046, 0.99780792, + 1.15280604, 1.87296033, 4.60985804, 5.41294718, + 6.06733084, 3.18375754, 10.0548315, 4.22182512, + 1.24640226, 2.66358495, 2.60049844, 0.00352026, + 1.02208447, 4.09924603, 1.27764511, 0.90124834, + 0.5303241, 3.84383249, 1.24640775, 1.39796948, + 2.34609175, 1.7742399, 3.56689548, 1.27681601, + 5.32056713, 3.19770503, 1.89575887, 0.59274858, + 0.64010525, 2.65920091, 0.81912726, 0.4868626, + 3.13063931, 1.3960743, 1.03451502, 1.28983963, + 3.27489519, 1.41772103, 2.00014663, 2.02787399, + 3.50289273, 1.65296888, 0.02450024, 0.04084374, + 0.17252181, 0.78132814, 0.20216605, 1.48436368, + 0.3301619, 1.12080252, 0.00699845, 3.87074757, + 0.84627002, 2.26680374, 2.07992935, 1.62452054, + 0.66078293, 2.26608515, 1.58540344, 0.98763937, + 0.25370923, 1.2576412, 1.07146478, 0.48786601, + 0.02327727, 1.29385257, 3.52217674, 1.05305433, + 5.13598871, 1.43351507, 2.12951326, 3.03700447, + 0.65843326, 4.28524971, 2.3428576, 4.72853422, + 0.58606911, 2.70345545, 0.8207835, 0.16228235, + 2.80714321, 1.97183621, 0.5928334, 3.61601782, + 1.82700455, 1.52638936, 0.72525144, 0.6499536, + 1.58741212, 0.72647524, 0.65064299, 0.43771812, + 2.68048692, 2.20902133, 0.0988697, 0.31138307, + 2.79860616, 1.13209391, 0.91427463, 0.69550049, + 0.68990183, 0.65359998, 1.04932129, 0.00310441, + 0.48663121, 1.68144464, 0.99051267, 0.22263506, + 0.97846323, 0.55040002, 2.56734443, 0.12510587, + 2.15363359, 1.18440747, 0.66974002, 0.48981813, + 2.08285856, 1.03952742, 1.00747502, 0.52523118, + 0.81593889, 0.22168602, 2.73786068, 1.21678591, + 0.235705, 0.56248677, 3.66057348, 0.35822684, + 0.97550339, 1.21677041, 4.03415823, 9.10342026, + 2.24355674, 3.6120553, 4.36456299, 0.83891636, + 1.07712805, 2.28685427, 4.04548168, 1.67408013, + 4.57762337, 2.47123241, 1.88890803, 1.62245703, + 0.02149973, 0.48483402, 4.40716505, 0.28621164, + 4.56798553, 1.6255945, 0.6124717, 2.72943926, + 0.80645156, 1.26738918, 0.91451788, 1.59959269, + 0.0356785, 1.93719864, 0.42164543, 0.87313241, + 0.52508104, 0.44771862, 1.38226497, 1.83891225, + 0.00711749, 0.26621303, 2.25254321, 0.27307722, + 0.26436633, 1.80608702, 2.29477572, 2.0931437, + 2.2915051, 0.82041657, 2.09074521, 1.87793779, + 2.15142703, 1.549685, 2.44940472, 0.45297864, + 0.35515305, 0.23224437, 1.77138305, 0.98827285, + 0.98435384, 0.80031335, 0.49445853, 0.36061874, + 2.15444446, 1.92558503, 0.75404048, 0.31921348, + 0.32092738, 0.48054051, 0.98650485, 1.1810472, + 0.28533801, 3.02953291, 0.16818592, 2.20164418, + 0.3911584, 0.6942575, 0.55016953, 0.06157291, + 0.19509397, 2.3744297, 0.73775989, 1.12842739, + 0.87197775, 0.30168825, 0.71310955, 0.27689508, + 1.13476491, 1.60331428, 1.56165123, 0.31513214, + 0.02698154, 0.49029687, 0.17265303, 0.36386153, + 0.56225872, 1.59077382, 1.84919345, 1.4230696, + 1.28607559, 0.57890779, 1.14760947, 0.22594096, + 0.43510813, 2.90668917, 1.49716794, 1.9549973, + 2.10786223, 0.71948445, 0.19396119, 0.86563414, + 0.63498968, 2.3593328, 0.18950517, 0.45737442, + 1.82937241, 1.72589195, 0.29414186, 0.74434268, + 1.22564518, 2.01444268, 2.32068515, 0.98414028, + 0.1174908, 0.22450124, 1.24669802, 0.70953292, + 0.21857196, 0.11119327, 0.60500813, 2.04446197, + 1.146896, 0.54849964, 0.23402978, 0.32219616, + 2.7076292, 1.57800817, 2.08260155, 1.81090641, + 0.45189673, 1.01260054, 0.65379494, 0.94736898, + 0.37556711, 0.44287458, 0.34578958, 1.48449266, + 1.95924711, 0.09717447] + +# See http://www.stata-press.com/data/r14/mumpspc +# Note that this has already been seasonally differenced at period 12 +mumpspc = [0.29791319, 0.41467956, 1.13061404, 1.23267496, + 1.55659747, 1.41078568, 0.45335022, 0.1419628, + 0.03802268, 0.04621375, 0.01261204, 0.04653099, + 0.10195512, 0.18079406, -0.1898452, -0.24501109, + -0.71440864, -0.82188988, -0.32300544, -0.07680188, + -0.0183593, -0.02145147, -0.14442876, -0.13897884, + -0.41970083, -0.53978181, -0.81733, -0.77516699, + -0.6827361, -0.27539611, 0.01427381, -0.02352227, + 0.00223821, -0.00509738, 0.03753691, 0.05826023, + 0.34700248, 0.53648567, 0.56336415, 0.73740566, + 0.68290168, 0.80702746, 0.47288245, 0.22873914, + 0.1323263, 0.18721257, 0.38872179, 0.5571546, + 0.62545192, 0.51162982, 1.28496778, 0.91240239, + 0.44763446, -0.34558165, -0.32126725, -0.13707247, + -0.11812115, -0.14246191, -0.33914241, -0.59595251, + -0.76603931, -0.95292002, -1.69234133, -1.44532502, + -0.8163048, -0.27210402, -0.05841839, 0.02669862, + 0.06060357, 0.04068814, 0.17806116, 0.25716701, + 0.58398741, 0.95062274, 2.00101161, 2.05761814, + 1.74057662, 0.76864243, 0.3566184, 0.01938879, + 0.01129906, -0.00691494, -0.11471844, -0.12220788, + -0.46378085, -0.76668882, -1.8203615, -1.80084801, + -1.58501005, -0.5208298, -0.27426577, -0.01387694, + -0.04243414, -0.07133579, -0.10209171, -0.04366681, + -0.06109473, -0.03943163, 0.3148942, 0.57496029, + 0.60446811, 0.73262405, 0.37140131, 0.18555129, + 0.08227628, 0.11913572, 0.22764499, 0.35582894, + 0.60779673, 0.85310715, 1.23990095, 0.89678788, + 0.23346186, -0.24769557, -0.28325707, -0.13954946, + -0.09492368, -0.07607545, -0.23001991, -0.42238122, + -0.68010765, -0.90599316, -1.69077659, -1.67265296, + -1.00972712, -0.67655402, 0.01419702, -0.00304723, + 0.06103691, 0.09834027, 0.18685167, 0.29223168, + 0.52865916, 0.54262394, 0.64842945, 0.95841271, + 1.24009287, 1.16617942, 0.80071652, 0.3447271, + 0.1351914, 0.04118001, 0.1700764, 0.39442945, + 0.35222113, 0.21554053, 0.4189862, 0.01172769, + -0.86072814, -1.04859877, -0.81989408, -0.35956979, + -0.13597609, -0.10660569, -0.25517979, -0.39934713, + -0.48581338, -0.33558851, -0.32364452, 0.02615488, + 0.53735149, 0.43695128, 0.12556195, 0.04231615, + 0.00691247, -0.03409019, -0.05299731, -0.1705423, + -0.23371273, -0.13540632, -0.13686514, -0.28611076, + -0.2569176, -0.15721166, -0.12167645, -0.0396246, + -0.03912748, -0.03107409, 0.02763657, -0.03745994, + -0.0960384, -0.16005671, -0.23481375, -0.2919997, + -0.28406811, -0.23517478, -0.10721764, -0.05092888, + -0.04520934, 0.01234692, -0.03137775, -0.01226076, + 0.00540099, 0.0410589, -0.06418979, -0.23792684, + -0.19889355, 0.15362859, 0.19808075, 0.09901999, + 0.08383148, 0.1328882, 0.1155429, 0.06566355, + 0.13103351, -0.00214756, 0.11389524, 0.60455656, + 0.43063915, -0.11312306, 0.00848174, -0.04416773, + -0.03458966, -0.11635408, -0.09985384, -0.10910749, + -0.03021795, 0.00818002, -0.20921308, -0.42517149, + -0.26740992, 0.21723568, 0.19341183, 0.03723881, + 0.0800474, 0.1313054, 0.17315492, 0.60613275, + 0.88496959, 1.29391515, 1.67872524, 1.1444242, + 0.56303668, 0.21097398, -0.29172775, -0.07173294, + -0.10594339, -0.13427913, -0.23306128, -0.63841069, + -1.01829767, -1.37716746, -1.74518943, -1.48689389, + -1.00245714, -0.67613804, -0.09916437, 0.01034598, + 0.00059676, -0.02620511, 0.07644644, 0.21421635, + 0.36779583, 0.44090557, 0.65572244, 0.69319898, + 1.03741217, 1.03150916, 0.48106751, 0.19878693, + 0.08993446, 0.10016203, 0.08885416, 0.01304582, + 0.01628131, -0.16743767, -0.3889482, -0.25320077, + -0.41278255, -0.64387393, -0.24642634, -0.09595281, + 0.00029226, -0.03017606, -0.09989822, -0.10608336, + -0.12089968, -0.02303368, -0.07865107, -0.07976627, + -0.27282, -0.00616729, 0.12162459, 0.01441428, + 0.01936977, 0.04224043, 0.10971794, 0.31981739, + 0.37371701, 0.21740788, 0.66436541, 0.8377074, + 1.11139965, 0.89899027, 0.63889956, 0.26021931, + 0.10602421, 0.05764158, 0.03996068, 0.13342732, + -0.01258349, 0.20526713, -0.05639255, -0.51611507, + -1.10225511, -1.04906142, -0.82814342, -0.32945809, + -0.16659749, -0.13606755, -0.156371, -0.44539213, + -0.54849428, -0.57765388, -0.46875834, -0.20867264, + 0.11628377, 0.30508852, 0.18076879, 0.15996796, + 0.09090945, 0.13049443, 0.37585843, 0.47701722, + 0.8886351, 1.12534606, 1.0532701, 1.1787746, + 1.19929063, 0.67156017, 0.26693404, 0.08880523, + -0.0367229, 0.01958427, -0.2178995, -0.35959432, + -0.61479795, -1.12488365, -1.24093127, -1.37260103, + -1.34592342, -1.1085875, -0.48515847, -0.22466549, + -0.01377375, -0.15326615, -0.20697775, -0.21839607, + -0.37820193, -0.18108195, -0.23839343, 0.00777894, + -0.01658171, 0.14208788, 0.21352491, 0.08116969, + 0.0220954, 0.05151662, 0.15160444, 0.46347663, + 0.59711337, 0.69609326, 0.85816896, 0.44160861, + 0.29913878, 0.35687125, 0.02410281, -0.00206721, + 0.04784113, 0.01441422, 0.01972398, -0.19168586, + -0.31085777, -0.38792318, -0.59203249, -0.4652282, + -0.36413753, -0.41189915, -0.27989927, -0.06170946, + -0.09512204, -0.05406281, -0.04524729, -0.19567066, + -0.19209856, -0.30510414, -0.21937585, -0.34253049, + -0.08848315, 0.0628857, 0.12370691, 0.08033729, + 0.02536885, 0.06512444, -0.00683796, 0.01617461, + 0.09414208, 0.17485267, 0.01436073, 0.15278709, + 0.21909434, -0.13190985, 0.1297549, 0.00458425, + 0.00097814, 0.0419029, 0.09299085, 0.30784416, + 0.3420583, 0.31633973, 0.6052171, 0.59994769, + 0.19161701, 0.14463156, -0.00356764, 0.03013593, + -0.00030272, -0.04639405, -0.11171955, -0.26541206, + -0.46245131, -0.59785151, -0.93805957, -1.02102923, + -0.85468853, -0.57457525, -0.43376198, -0.22778665, + -0.08325937, -0.07688884, -0.10757375, -0.04266521, + -0.07971251, 0.19849321, 0.46367952, 0.45219129, + 0.5286305, 0.82308269, 0.62806904, 0.44585282, + 0.2649036, 0.18073915, 0.24439827, 0.33583486, + 0.36763605, 0.31510991, 0.44708037, 0.27008474, + 0.06621343, -0.20664448, -0.34370041, -0.30381745, + -0.18254732, -0.16462031, -0.20288868, -0.47805107, + -0.42589119, -0.52396262, -0.80304122, -0.54068702, + -0.32430774, -0.41455108, -0.18256193, -0.11230741, + -0.05113308, -0.00785848, -0.00410898, 0.02002721, + 0.04911622, 0.11129829, 0.03739616, 0.23160917, + 0.09051466, 0.0703001, 0.15306205, 0.092351, + 0.04038295, -0.00022292, -0.0345473, -0.104352, + -0.14002147, -0.25555477, -0.15546834, -0.12915748, + -0.00736588, 0.18039131, 0.03981721, 0.05406788, + -0.00028329, 0.12522104, 0.09731361, 0.29498664, + 0.20997131, 0.16853192, 0.07126871, 0.02766478, + -0.13036358, -0.26429421, -0.18460721, -0.17133695, + -0.06757163, -0.16766661, -0.17020702, -0.26582304, + -0.23111637, -0.16535208, -0.13117793, -0.28425765, + -0.30206084, -0.16778651, -0.0795947, -0.0456669, + -0.01921733, -0.02716412, 0.01525059, 0.01458484, + 0.00587094, 0.01239279, -0.03418982, -0.09835899, + 0.05628902, 0.00924054] + + +class MarkovRegression(object): + @classmethod + def setup_class(cls, true, endog, atol=1e-5, rtol=1e-7, **kwargs): + cls.model = markov_regression.MarkovRegression(endog, **kwargs) + cls.true = true + cls.result = cls.model.smooth(cls.true['params']) + cls.atol = atol + cls.rtol = rtol + + # Smoke test for summary + cls.result.summary() + + def test_llf(self): + assert_allclose(self.result.llf, self.true['llf'], atol=self.atol, + rtol=self.rtol) + + def test_fit(self, **kwargs): + # Test fitting against Stata + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + res = self.model.fit(disp=False, **kwargs) + assert_allclose(res.llf, self.true['llf_fit'], atol=self.atol, + rtol=self.rtol) + + def test_fit_em(self, **kwargs): + # Test EM fitting (smoke test) + res_em = self.model._fit_em(**kwargs) + assert_allclose(res_em.llf, self.true['llf_fit_em'], atol=self.atol, + rtol=self.rtol) + + +fedfunds_const_filtered_joint_probabilities = np.array([[[ + 9.81875427e-01, 9.99977639e-01, 9.99982269e-01, + 9.99977917e-01, 9.99961064e-01, 9.99932206e-01, + 9.99919386e-01, 9.99894144e-01, 9.99875287e-01, + 9.99853807e-01, 9.99852600e-01, 9.99839056e-01, + 9.99783848e-01, 9.99774884e-01, 9.99954588e-01, + 9.99988082e-01, 9.99982757e-01, 9.99948590e-01, + 9.99910525e-01, 9.99825195e-01, 9.99660841e-01, + 9.99411534e-01, 9.99435921e-01, 9.99578212e-01, + 9.99835797e-01, 9.99931424e-01, 9.99955815e-01, + 9.99969158e-01, 9.99971638e-01, 9.99929247e-01, + 9.99921198e-01, 9.99904441e-01, 9.99869417e-01, + 9.99855264e-01, 9.99845124e-01, 9.99846496e-01, + 9.99755048e-01, 9.99708382e-01, 9.99701905e-01, + 9.99690188e-01, 9.99700859e-01, 9.99653041e-01, + 9.99426220e-01, 9.99320494e-01, 9.99321052e-01, + 9.99230758e-01, 9.98727025e-01, 9.97930031e-01, + 9.95880407e-01, 9.94433855e-01, 9.97574246e-01, + 9.99263821e-01, 9.99459141e-01, 9.99242937e-01, + 9.98291614e-01, 9.91580774e-01, 9.89101309e-01, + 9.88455096e-01, 9.73457493e-01, 7.07858812e-01, + 9.84830417e-02, 5.48777905e-03, 6.48064326e-04, + 9.48013715e-04, 1.00281851e-02, 1.69325148e-01, + 8.57820523e-01, 9.93211456e-01, 9.94962561e-01, + 9.97835285e-01, 9.99559280e-01, 9.99122588e-01, + 9.98381004e-01, 9.97159054e-01, 9.81694661e-01, + 8.52237392e-01, 2.98185003e-02, 3.80317793e-04, + 3.03223798e-05, 3.72338821e-06, 9.81252727e-08, + 1.16279423e-06, 2.19178686e-03, 2.54688430e-01, + 5.45485941e-01, 8.49963514e-01, 9.79591871e-01, + 9.94535520e-01, 9.95920695e-01, 9.97652340e-01, + 9.98379085e-01, 9.97097840e-01, 9.92715379e-01, + 9.78668900e-01, 9.54978984e-01, 8.70032440e-01, + 4.73445558e-01, 1.87649267e-02, 2.26217560e-04, + 7.75338336e-06, 1.77410820e-06, 2.00686803e-08, + 9.02595322e-11, 2.90324859e-10, 2.76383741e-07, + 4.31669137e-09, 6.21472832e-13, 4.82334762e-14, + 1.27598134e-14, 3.17409414e-12, 2.61276609e-10, + 7.78226008e-11, 5.39702646e-09, 5.20281165e-06, + 1.16430050e-04, 2.28275630e-04, 8.20520602e-05, + 3.54392208e-05, 2.52690630e-05, 5.71223049e-06, + 6.04760361e-07, 3.25802367e-06, 1.49189117e-04, + 9.03616681e-04, 2.05169327e-03, 1.79174202e-03, + 2.00293091e-03, 8.80162479e-03, 6.98800266e-02, + 2.10894169e-01, 3.78257683e-01, 4.16997707e-01, + 3.74555143e-01, 3.09162817e-01, 3.19673213e-01, + 2.13371614e-01, 5.00408396e-02, 5.65131400e-03, + 2.67174854e-04, 2.77281533e-05, 3.81188091e-05, + 1.64157087e-04, 4.99719207e-04, 8.42437704e-04, + 9.94072768e-04, 1.92236077e-03, 1.77274131e-02, + 1.80694204e-01, 5.59064015e-01, 9.22767369e-01, + 9.95149639e-01, 9.99418123e-01, 9.99755674e-01, + 9.99825956e-01, 9.99829396e-01, 9.99837748e-01, + 9.99825597e-01, 9.99839509e-01, 9.99789371e-01, + 9.99458023e-01, 9.98857894e-01, 9.97136330e-01, + 9.92814933e-01, 9.88571000e-01, 9.89824082e-01, + 9.91277010e-01, 9.94688346e-01, 9.96090383e-01, + 9.96010189e-01, 9.96126138e-01, 9.96152552e-01, + 9.94805484e-01, 9.94365920e-01, 9.94404335e-01, + 9.94350015e-01, 9.94473588e-01, 9.94298374e-01, + 9.97447776e-01, 9.98217589e-01, 9.98253594e-01, + 9.97319145e-01, 9.96244465e-01, 9.93650638e-01, + 9.84885276e-01, 9.71807970e-01, 9.63220269e-01, + 9.84748123e-01, 9.97795750e-01, 9.99604178e-01, + 9.99934302e-01, 9.99968719e-01, 9.99969041e-01, + 9.99969388e-01, 9.99978903e-01, 9.99983737e-01, + 9.99983963e-01, 9.99987949e-01, 9.99988448e-01, + 9.99988464e-01, 9.99988318e-01, 9.99980100e-01, + 9.99960662e-01, 9.99921917e-01, 9.99854499e-01, + 9.99711016e-01, 9.99422933e-01, 9.98897716e-01, + 9.97954476e-01, 9.96644185e-01, 9.96382036e-01, + 9.96295075e-01, 9.96325086e-01, 9.97066095e-01, + 9.98599288e-01, 9.99729020e-01, 9.99942853e-01, + 9.99959712e-01, 9.99992291e-01, 9.99995977e-01, + 9.99996082e-01, 9.99996179e-01, 9.99996370e-01, + 9.99996334e-01, 9.99996045e-01, 9.99996030e-01, + 9.99996030e-01], + [ 1.79021167e-02, 1.14091306e-05, 5.61557959e-07, + 8.80398735e-07, 1.08717798e-06, 1.94073468e-06, + 3.37670187e-06, 3.96039606e-06, 5.22475895e-06, + 6.12683114e-06, 7.18211108e-06, 7.18979687e-06, + 7.88353588e-06, 1.06791533e-05, 1.09974873e-05, + 1.76468607e-06, 5.20603180e-07, 8.57457507e-07, + 2.59206830e-06, 4.45469808e-06, 8.73353814e-06, + 1.69387908e-05, 2.93063475e-05, 2.74245464e-05, + 2.02263872e-05, 7.38324620e-06, 3.13785014e-06, + 2.10478420e-06, 1.47354829e-06, 1.37871330e-06, + 3.55723955e-06, 3.85823009e-06, 4.70191999e-06, + 6.45467678e-06, 7.09050564e-06, 7.57792773e-06, + 7.48186721e-06, 1.21760845e-05, 1.43286436e-05, + 1.45502695e-05, 1.51400501e-05, 1.45617528e-05, + 1.70401707e-05, 2.85443698e-05, 3.33783376e-05, + 3.30986931e-05, 3.77268239e-05, 6.32867451e-05, + 1.02678523e-04, 2.05654391e-04, 2.75680178e-04, + 1.10405281e-04, 3.20904634e-05, 2.60815610e-05, + 3.74458003e-05, 8.51014220e-05, 4.26242634e-04, + 5.36412357e-04, 5.55614723e-04, 9.68406481e-04, + 2.07440399e-03, 2.51696579e-03, 4.11814576e-03, + 1.01505143e-02, 4.58175094e-02, 1.46789923e-01, + 9.51602906e-02, 2.51277827e-03, 2.19080166e-04, + 2.47729179e-04, 9.84424301e-05, 1.75415066e-05, + 4.40579693e-05, 8.06554966e-05, 1.39332709e-04, + 8.08543683e-04, 2.63400428e-04, 6.28778860e-04, + 1.53926554e-03, 1.21448448e-04, 4.01921637e-05, + 1.47981180e-03, 7.57754547e-02, 1.54441814e-01, + 4.03957090e-02, 3.08060743e-02, 6.79972580e-03, + 7.03557513e-04, 2.44292397e-04, 1.96941023e-04, + 1.10340666e-04, 7.73495785e-05, 1.44199620e-04, + 3.60905335e-04, 1.04887049e-03, 2.05193714e-03, + 3.56087416e-03, 1.05497090e-03, 5.73656986e-04, + 4.96641901e-04, 1.80265024e-04, 5.65192629e-06, + 8.15973913e-07, 1.82423614e-05, 7.76851662e-04, + 2.84604839e-07, 1.10296978e-07, 2.24235284e-08, + 2.91783631e-08, 5.57802135e-06, 2.40181297e-06, + 1.66126826e-06, 1.66577067e-04, 1.60124567e-03, + 3.71040697e-03, 3.04702430e-03, 1.28036894e-03, + 1.33199390e-03, 9.46259530e-04, 3.01196207e-04, + 1.01009606e-04, 1.64390413e-03, 4.63667164e-03, + 9.63523286e-03, 9.87732797e-03, 7.60992378e-03, + 1.08213202e-02, 3.47413597e-02, 7.87085339e-02, + 6.19641042e-02, 5.16881745e-02, 2.83502897e-02, + 2.39198441e-02, 2.39310293e-02, 3.28190388e-02, + 2.00980320e-02, 8.42451713e-03, 4.66668659e-03, + 1.31406606e-03, 8.97753552e-04, 2.11004086e-03, + 3.91003494e-03, 6.26373002e-03, 6.34371628e-03, + 7.04224256e-03, 1.21673274e-02, 6.36067034e-02, + 1.04652728e-01, 7.17968006e-02, 2.76866443e-02, + 2.66003442e-03, 1.12494156e-04, 2.40738814e-05, + 1.12943610e-05, 8.34520559e-06, 8.32013406e-06, + 7.89300655e-06, 8.53818448e-06, 7.79122759e-06, + 1.03973423e-05, 2.72411101e-05, 5.70666949e-05, + 1.43281927e-04, 3.59485298e-04, 5.68122941e-04, + 4.93097756e-04, 4.23244829e-04, 2.50908844e-04, + 1.87544775e-04, 1.94954279e-04, 1.88610947e-04, + 1.87324551e-04, 2.56591337e-04, 2.75680269e-04, + 2.72701680e-04, 2.75688894e-04, 2.69118592e-04, + 2.79368706e-04, 1.16602211e-04, 8.54105771e-05, + 8.50836389e-05, 1.32948236e-04, 1.85246543e-04, + 3.13229937e-04, 7.48658490e-04, 1.39370122e-03, + 1.85235809e-03, 6.94881963e-04, 7.74820062e-05, + 1.63275933e-05, 2.53162706e-06, 1.47419297e-06, + 1.51187760e-06, 1.49217514e-06, 1.00525815e-06, + 7.82384697e-07, 7.82207824e-07, 5.77845546e-07, + 5.62709744e-07, 5.62700867e-07, 5.70153586e-07, + 9.91143211e-07, 1.96623986e-06, 3.90276412e-06, + 7.25964578e-06, 1.44416500e-05, 2.88341084e-05, + 5.49895700e-05, 1.01928727e-04, 1.66788149e-04, + 1.76920424e-04, 1.80878376e-04, 1.79263902e-04, + 1.41441142e-04, 6.46353467e-05, 1.05822848e-05, + 2.38770925e-06, 1.94345661e-06, 2.95614088e-07, + 1.91116221e-07, 1.91095610e-07, 1.86129447e-07, + 1.76579974e-07, 1.78918351e-07, 1.93625709e-07, + 1.93628651e-07]], + + [[ 1.12025955e-05, 1.08238349e-05, 1.71596282e-05, + 2.11831999e-05, 3.78067714e-05, 6.57213848e-05, + 7.69689076e-05, 1.01479702e-04, 1.18846167e-04, + 1.39184231e-04, 1.39184063e-04, 1.52618987e-04, + 2.06583251e-04, 2.12093282e-04, 3.40270257e-05, + 1.01343628e-05, 1.67136918e-05, 5.05076133e-05, + 8.66507075e-05, 1.69568562e-04, 3.27466124e-04, + 5.61681158e-04, 5.19031075e-04, 3.83481719e-04, + 1.41026283e-04, 6.07294396e-05, 4.09142321e-05, + 2.86746604e-05, 2.68478873e-05, 6.92750449e-05, + 7.49687747e-05, 9.13357640e-05, 1.25272004e-04, + 1.37363965e-04, 1.46709304e-04, 1.44790612e-04, + 2.35646550e-04, 2.75965631e-04, 2.79621160e-04, + 2.90883100e-04, 2.79620868e-04, 3.27463569e-04, + 5.47092221e-04, 6.32282164e-04, 6.24012551e-04, + 7.11758349e-04, 1.18880242e-03, 1.88316198e-03, + 3.62983774e-03, 4.41594500e-03, 1.67213822e-03, + 5.61598141e-04, 4.92415886e-04, 7.11767023e-04, + 1.60853614e-03, 7.65465286e-03, 7.24380556e-03, + 7.05094383e-03, 1.63405802e-02, 1.20569790e-01, + 3.94742135e-02, 2.08678283e-03, 1.51404348e-04, + 8.92900957e-05, 1.99758310e-04, 7.61880868e-04, + 4.06265456e-04, 1.18223714e-03, 3.92458604e-03, + 1.52531964e-03, 3.10635338e-04, 8.44534873e-04, + 1.50619244e-03, 2.54719705e-03, 1.58406633e-02, + 7.41723708e-02, 9.56881006e-02, 5.83874154e-04, + 1.90161316e-05, 2.96375310e-05, 2.36039059e-06, + 7.58604311e-07, 2.57849849e-05, 9.40604577e-04, + 5.33706193e-03, 3.09799210e-03, 1.66375727e-03, + 2.74932130e-03, 3.05895259e-03, 1.78605741e-03, + 1.35561648e-03, 2.61499931e-03, 6.20778364e-03, + 1.51802588e-02, 2.05865429e-02, 3.71923130e-02, + 5.95732628e-02, 1.65718056e-02, 3.80823607e-04, + 1.50863835e-05, 9.51367568e-06, 3.43305910e-06, + 1.06949636e-07, 1.53871486e-08, 3.43715817e-07, + 1.46644282e-05, 5.44780299e-09, 2.07973264e-09, + 4.22811016e-10, 5.50174068e-10, 1.05177578e-07, + 4.52926927e-08, 3.13205860e-08, 3.13648669e-06, + 3.02223414e-05, 7.21922046e-05, 6.18725853e-05, + 2.56885381e-05, 2.57933905e-05, 1.83306498e-05, + 5.78811168e-06, 1.91303926e-06, 3.09596995e-05, + 8.97107118e-05, 1.98397776e-04, 2.25453416e-04, + 1.76630376e-04, 2.34227583e-04, 7.30232210e-04, + 2.38495171e-03, 4.00510154e-03, 7.77726570e-03, + 8.97115089e-03, 8.22739679e-03, 6.04111865e-03, + 7.78825566e-03, 5.37640212e-03, 1.15742054e-03, + 1.96231469e-04, 2.98340104e-05, 1.74288946e-05, + 4.04251152e-05, 7.66081747e-05, 1.27458564e-04, + 1.35365069e-04, 1.50582215e-04, 2.47483336e-04, + 1.19104299e-03, 2.75836722e-03, 1.54674662e-03, + 5.81818376e-04, 4.20436146e-04, 2.14900000e-04, + 1.60869708e-04, 1.60870261e-04, 1.52618788e-04, + 1.65161879e-04, 1.50622869e-04, 2.01215675e-04, + 5.25921364e-04, 1.08428049e-03, 2.64975788e-03, + 6.12720308e-03, 8.04408524e-03, 6.02884531e-03, + 5.43410929e-03, 3.39451560e-03, 2.90252080e-03, + 3.18247731e-03, 3.05958361e-03, 3.05966473e-03, + 4.19096979e-03, 4.24463587e-03, 4.13448594e-03, + 4.18905097e-03, 4.08069293e-03, 4.24434753e-03, + 1.76233516e-03, 1.48624883e-03, 1.52595908e-03, + 2.38530006e-03, 3.18322588e-03, 5.16768050e-03, + 1.11378320e-02, 1.52736098e-02, 1.41741690e-02, + 4.54911025e-03, 8.77392678e-04, 2.94712782e-04, + 4.85508787e-05, 2.86746478e-05, 2.94397372e-05, + 2.90546890e-05, 1.95742396e-05, 1.52422076e-05, + 1.52422111e-05, 1.12600205e-05, 1.09674004e-05, + 1.09674006e-05, 1.11127487e-05, 1.93182406e-05, + 3.83078048e-05, 7.59623818e-05, 1.41028921e-04, + 2.79623709e-04, 5.54340948e-04, 1.04233041e-03, + 1.88320811e-03, 2.94262269e-03, 2.94184869e-03, + 2.98057651e-03, 2.94168054e-03, 2.32272136e-03, + 1.09836589e-03, 1.93411390e-04, 4.60605812e-05, + 3.78067203e-05, 5.75348228e-06, 3.72600447e-06, + 3.72600486e-06, 3.62917375e-06, 3.44299546e-06, + 3.48862495e-06, 3.77538503e-06, 3.77538498e-06, + 3.77538498e-06], + [ 2.11253415e-04, 1.27726353e-07, 9.96660517e-09, + 1.92893528e-08, 4.25132434e-08, 1.31928738e-07, + 2.68831493e-07, 4.15719953e-07, 6.42307057e-07, + 8.82117691e-07, 1.03405286e-06, 1.13509493e-06, + 1.68479526e-06, 2.34314197e-06, 3.87056416e-07, + 1.84972077e-08, 8.99961200e-09, 4.47949311e-08, + 2.32324230e-07, 7.81405794e-07, 2.95897306e-06, + 9.84611707e-06, 1.57411766e-05, 1.08818924e-05, + 2.95071175e-06, 4.63781583e-07, 1.32789240e-07, + 6.24246828e-08, 4.09188950e-08, 9.87912777e-08, + 2.75844825e-07, 3.64508436e-07, 6.09288617e-07, + 9.17164574e-07, 1.07606678e-06, 1.13499677e-06, + 1.82395688e-06, 3.47637333e-06, 4.14516370e-06, + 4.37886128e-06, 4.37989719e-06, 4.93360580e-06, + 9.64763432e-06, 1.86794329e-05, 2.15570874e-05, + 2.43845482e-05, 4.64462028e-05, 1.23520043e-04, + 3.87076429e-04, 9.44545390e-04, 4.77935817e-04, + 6.41759692e-05, 1.63523468e-05, 1.92148699e-05, + 6.24041695e-05, 6.79471603e-04, 3.22864270e-03, + 3.95754786e-03, 9.64631226e-03, 1.70602991e-01, + 8.59968341e-01, 9.89908472e-01, 9.95082386e-01, + 9.88812182e-01, 9.43954547e-01, 6.83123048e-01, + 4.66129206e-02, 3.09352861e-03, 8.93773079e-04, + 3.91666349e-04, 3.16418394e-05, 1.53356713e-05, + 6.87457292e-05, 2.13092992e-04, 2.32534345e-03, + 7.27816933e-02, 8.74229999e-01, 9.98407029e-01, + 9.98411396e-01, 9.99845191e-01, 9.99957349e-01, + 9.98518267e-01, 9.22006973e-01, 5.89929152e-01, + 4.08781288e-01, 1.16132419e-01, 1.19446461e-02, + 2.01160124e-03, 7.76059520e-04, 3.64661127e-04, + 1.54958020e-04, 2.09811287e-04, 9.32637836e-04, + 5.78993623e-03, 2.33856026e-02, 9.07233098e-02, + 4.63420305e-01, 9.63608297e-01, 9.98819302e-01, + 9.99480518e-01, 9.99808447e-01, 9.99990895e-01, + 9.99999077e-01, 9.99981742e-01, 9.99222528e-01, + 9.99985047e-01, 9.99999884e-01, 9.99999975e-01, + 9.99999970e-01, 9.99994421e-01, 9.99997493e-01, + 9.99998293e-01, 9.99833386e-01, 9.98390415e-01, + 9.96142941e-01, 9.96652508e-01, 9.98575706e-01, + 9.98606878e-01, 9.99002678e-01, 9.99674761e-01, + 9.99892598e-01, 9.98350925e-01, 9.95183180e-01, + 9.89371440e-01, 9.87872581e-01, 9.90372881e-01, + 9.86999118e-01, 9.56222788e-01, 8.50681207e-01, + 7.24756775e-01, 5.66049041e-01, 5.46874738e-01, + 5.92553862e-01, 6.58678757e-01, 6.41466629e-01, + 7.58742098e-01, 9.36158241e-01, 9.88524579e-01, + 9.98222528e-01, 9.99044684e-01, 9.97834411e-01, + 9.95885383e-01, 9.93159943e-01, 9.92686387e-01, + 9.91828320e-01, 9.85759730e-01, 9.18418400e-01, + 7.13462025e-01, 3.66380818e-01, 4.79992398e-02, + 1.60850862e-03, 4.89463014e-05, 5.35211883e-06, + 1.87952723e-06, 1.38874976e-06, 1.31354781e-06, + 1.34854399e-06, 1.33034183e-06, 1.62179619e-06, + 5.65868721e-06, 3.05843904e-05, 1.56845284e-04, + 9.14581641e-04, 3.02542940e-03, 3.57894927e-03, + 2.79578295e-03, 1.49389314e-03, 7.56187782e-04, + 6.19788616e-04, 6.19323917e-04, 5.99172642e-04, + 8.16221729e-04, 1.13285230e-03, 1.18549926e-03, + 1.18823205e-03, 1.17003007e-03, 1.18816020e-03, + 5.10520503e-04, 1.79560242e-04, 1.35036369e-04, + 2.10470876e-04, 4.39360698e-04, 9.96435388e-04, + 3.66366176e-03, 1.21697619e-02, 2.12118606e-02, + 8.85040895e-03, 6.31975856e-04, 2.36270150e-05, + 8.19945322e-07, 7.50841896e-08, 4.48888835e-08, + 4.54342381e-08, 3.02100160e-08, 1.58478237e-08, + 1.23342395e-08, 9.10969133e-09, 6.55477183e-09, + 6.38307937e-09, 6.46757155e-09, 1.13921361e-08, + 3.92715328e-08, 1.54492028e-07, 5.69351898e-07, + 2.10015832e-06, 8.28479101e-06, 3.11191703e-05, + 1.07326014e-04, 3.11263455e-04, 5.09327027e-04, + 5.47428437e-04, 5.52354866e-04, 4.31919788e-04, + 1.60904664e-04, 1.29332277e-05, 5.04162769e-07, + 9.33695004e-08, 1.15650115e-08, 1.13921931e-09, + 7.36511886e-10, 7.17294041e-10, 6.62811758e-10, + 6.37139329e-10, 6.98642410e-10, 7.56071871e-10, + 7.56083358e-10]]]) + + +class TestFedFundsConst(MarkovRegression): + # Results from Stata, see http://www.stata.com/manuals14/tsmswitch.pdf + @classmethod + def setup_class(cls): + path = os.path.join(current_path, 'results', + 'results_predict_fedfunds.csv') + results = pd.read_csv(path) + true = { + 'params': np.r_[.9820939, .0503587, 3.70877, 9.556793, + 2.107562**2], + 'llf': -508.63592, + 'llf_fit': -508.63592, + 'llf_fit_em': -508.65852, + 'bse_oim': np.r_[.0104002, .0268434, .1767083, .2999889, np.nan], + 'smoothed0': results['const_sm1'], + 'smoothed1': results['const_sm2'], + 'predict0': results['const_yhat1'], + 'predict1': results['const_yhat2'], + 'predict_predicted': results['const_pyhat'], + 'predict_filtered': results['const_fyhat'], + 'predict_smoothed': results['const_syhat'], + } + super(TestFedFundsConst, cls).setup_class(true, fedfunds, k_regimes=2) + + def test_filter_output(self, **kwargs): + res = self.result + assert_allclose(res.filtered_joint_probabilities, + fedfunds_const_filtered_joint_probabilities) + + def test_smoothed_marginal_probabilities(self): + assert_allclose(self.result.smoothed_marginal_probabilities[:, 0], + self.true['smoothed0'], atol=1e-6) + assert_allclose(self.result.smoothed_marginal_probabilities[:, 1], + self.true['smoothed1'], atol=1e-6) + + def test_predict(self): + # Predictions conditional on regime (the same no matter which + # probabilities are selected) + for name in ['predicted', 'filtered', 'smoothed', None]: + actual = self.model.predict( + self.true['params'], probabilities=name, conditional=True) + assert_allclose(actual[0], + self.true['predict0'], atol=1e-6) + assert_allclose(actual[1], + self.true['predict1'], atol=1e-6) + + # Predicted + actual = self.model.predict( + self.true['params'], probabilities='predicted') + assert_allclose(actual, self.true['predict_predicted'], atol=1e-5) + + # Filtered + actual = self.model.predict( + self.true['params'], probabilities='filtered') + assert_allclose(self.model.predict(self.true['params'], + probabilities='filtered'), + self.true['predict_filtered'], atol=1e-5) + + # Smoothed + actual = self.model.predict( + self.true['params'], probabilities='smoothed') + assert_allclose(actual, self.true['predict_smoothed'], atol=1e-6) + actual = self.model.predict( + self.true['params'], probabilities=None) + assert_allclose(actual, self.true['predict_smoothed'], atol=1e-6) + + def test_bse(self): + # Can't compare last element of bse because we estimate sigma^2 rather + # than sigma^2 + bse = self.result.cov_params_approx.diagonal()**0.5 + assert_allclose(bse[:-1], self.true['bse_oim'][:-1], atol=1e-7) + + + +fedfunds_const_short_filtered_joint_probabilities = np.array([[[ + 9.81370301e-01, 9.99956215e-01, 9.99995966e-01, + 9.99996082e-01, 9.99996179e-01, 9.99996370e-01, + 9.99996334e-01, 9.99996045e-01, 9.99996030e-01, + 9.99996030e-01], + [ 1.78929069e-02, 3.78065881e-05, 3.06546640e-07, + 1.91118379e-07, 1.91095611e-07, 1.86129447e-07, + 1.76579974e-07, 1.78918351e-07, 1.93625709e-07, + 1.93628651e-07]], + + [[ 3.71038873e-05, 5.75327472e-06, 3.72600443e-06, + 3.72600486e-06, 3.62917375e-06, 3.44299546e-06, + 3.48862495e-06, 3.77538503e-06, 3.77538498e-06, + 3.77538498e-06], + [ 6.99688113e-04, 2.24977302e-07, 1.18135050e-09, + 7.36520203e-10, 7.17294043e-10, 6.62811758e-10, + 6.37139329e-10, 6.98642410e-10, 7.56071871e-10, + 7.56083358e-10]]]) + + +fedfunds_const_short_predicted_joint_probabilities = np.array([[[[ + 7.11514435e-01, 9.63797786e-01, 9.82050899e-01, + 9.82089938e-01, 9.82090052e-01, 9.82090147e-01, + 9.82090335e-01, 9.82090300e-01, 9.82090016e-01, + 9.82090001e-01], + [ 1.29727398e-02, 1.75725147e-02, 3.71296195e-05, + 3.01057585e-07, 1.87696195e-07, 1.87673833e-07, + 1.82796594e-07, 1.73418115e-07, 1.75714621e-07, + 1.90158628e-07]], + + [[ 6.65201476e-04, 1.86850353e-06, 2.89727435e-07, + 1.87636739e-07, 1.87636761e-07, 1.82760472e-07, + 1.73384775e-07, 1.75682617e-07, 1.90123482e-07, + 1.90123479e-07], + [ 1.25440648e-02, 3.52353838e-05, 1.13295645e-08, + 5.94912755e-11, 3.70902000e-11, 3.61219955e-11, + 3.33783385e-11, 3.20855083e-11, 3.51827235e-11, + 3.80747965e-11]]], + + + [[[ 1.29727398e-02, 1.75725147e-02, 1.79053160e-02, + 1.79060278e-02, 1.79060298e-02, 1.79060316e-02, + 1.79060350e-02, 1.79060344e-02, 1.79060292e-02, + 1.79060289e-02], + [ 2.36526442e-04, 3.20392181e-04, 6.76968547e-07, + 5.48905479e-09, 3.42218481e-09, 3.42177711e-09, + 3.33285249e-09, 3.16185867e-09, 3.20372988e-09, + 3.46708131e-09]], + + [[ 1.25440648e-02, 3.52353838e-05, 5.46354728e-06, + 3.53836769e-06, 3.53836810e-06, 3.44641328e-06, + 3.26961068e-06, 3.31294233e-06, 3.58526155e-06, + 3.58526150e-06], + [ 2.36550228e-01, 6.64452729e-04, 2.13647738e-07, + 1.12185923e-09, 6.99430003e-10, 6.81172047e-10, + 6.29433420e-10, 6.05053821e-10, 6.63459686e-10, + 7.17997074e-10]]]]) + +fedfunds_const_short_smoothed_joint_probabilities = np.array([[[ + 9.82056759e-01, 9.99961887e-01, 9.99999502e-01, + 9.99999618e-01, 9.99999623e-01, 9.99999637e-01, + 9.99999644e-01, 9.99999627e-01, 9.99999612e-01, + 9.99996030e-01], + [ 1.79054228e-02, 3.78068025e-05, 3.06547724e-07, + 1.91119055e-07, 1.91096269e-07, 1.86130055e-07, + 1.76580558e-07, 1.78918992e-07, 1.93626403e-07, + 1.93628651e-07]], + + [[ 1.90448249e-06, 2.95069837e-07, 1.91096241e-07, + 1.91095282e-07, 1.86127261e-07, 1.76579242e-07, + 1.78922146e-07, 1.93629492e-07, 1.94345814e-07, + 3.77538498e-06], + [ 3.59138585e-05, 1.15384749e-08, 6.05881299e-11, + 3.77738466e-11, 3.67874300e-11, 3.39933060e-11, + 3.26771544e-11, 3.58315175e-11, 3.89203762e-11, + 7.56083358e-10]]]) + + +class TestFedFundsConstShort(MarkovRegression): + # This is just a set of regression tests + @classmethod + def setup_class(cls): + true = { + 'params': np.r_[.9820939, .0503587, 3.70877, 9.556793, + 2.107562**2], + 'llf': -29.909297, + 'llf_fit': -7.8553370, + 'llf_fit_em': -7.8554974 + } + super(TestFedFundsConstShort, cls).setup_class(true, fedfunds[-10:], + k_regimes=2) + + def test_filter_output(self, **kwargs): + res = self.result + + # Filtered + assert_allclose(res.filtered_joint_probabilities, + fedfunds_const_short_filtered_joint_probabilities) + + # Predicted + desired = fedfunds_const_short_predicted_joint_probabilities + if desired.ndim > res.predicted_joint_probabilities.ndim: + desired = desired.sum(axis=-2) + assert_allclose(res.predicted_joint_probabilities, desired) + + def test_smoother_output(self, **kwargs): + res = self.result + + # Filtered + assert_allclose(res.filtered_joint_probabilities, + fedfunds_const_short_filtered_joint_probabilities) + + # Predicted + desired = fedfunds_const_short_predicted_joint_probabilities + if desired.ndim > res.predicted_joint_probabilities.ndim: + desired = desired.sum(axis=-2) + assert_allclose(res.predicted_joint_probabilities, desired) + + # Smoothed, last entry + assert_allclose(res.smoothed_joint_probabilities, + fedfunds_const_short_smoothed_joint_probabilities) + + def test_py_hamilton_filter(self): + mod = self.model + params = self.true['params'] + + regime_transition = mod.regime_transition_matrix(params) + initial_probabilities = mod.initial_probabilities( + params, regime_transition) + conditional_likelihoods = mod._conditional_likelihoods(params) + + actual = markov_switching.py_hamilton_filter( + initial_probabilities, regime_transition, conditional_likelihoods) + desired = markov_switching.cy_hamilton_filter( + initial_probabilities, regime_transition, conditional_likelihoods) + + for i in range(3): + assert_allclose(actual[i], desired[i]) + + +class TestFedFundsConstL1(MarkovRegression): + # Results from Stata, see http://www.stata.com/manuals14/tsmswitch.pdf + @classmethod + def setup_class(cls): + true = { + 'params': np.r_[.6378175, .1306295, .724457, -.0988764, + .7631424, 1.061174, .6915759**2], + 'llf': -264.71069, + 'llf_fit': -264.71069, + 'llf_fit_em': -264.71153, + 'bse_oim': np.r_[.1202616, .0495924, .2886657, .1183838, .0337234, + .0185031, np.nan] + } + super(TestFedFundsConstL1, cls).setup_class( + true, fedfunds[1:], k_regimes=2, exog=fedfunds[:-1]) + + def test_bse(self): + # Can't compare last element of bse because we estimate sigma^2 rather + # than sigma^2 + bse = self.result.cov_params_approx.diagonal()**0.5 + assert_allclose(bse[:-1], self.true['bse_oim'][:-1], atol=1e-6) + + +class TestFedFundsConstL1Exog(MarkovRegression): + # Results from Stata, see http://www.stata.com/manuals14/tsmswitch.pdf + @classmethod + def setup_class(cls): + path = os.path.join(current_path, 'results', + 'results_predict_fedfunds.csv') + results = pd.read_csv(path) + + true = { + 'params': np.r_[.7279288, .2114578, .6554954, -.0944924, + .8314458, .9292574, .1355425, .0343072, + -.0273928, .2125275, .5764495**2], + 'llf': -229.25614, + 'llf_fit': -229.25614, + 'llf_fit_em': -229.25624, + 'bse_oim': np.r_[.0929915, .0641179, .1373889, .1279231, .0333236, + .0270852, .0294113, .0240138, .0408057, .0297351, + np.nan], + 'predict0': results.ix[4:, 'constL1exog_syhat1'], + 'predict1': results.ix[4:, 'constL1exog_syhat2'], + 'predict_smoothed': results.ix[4:, 'constL1exog_syhat'], + } + super(TestFedFundsConstL1Exog, cls).setup_class( + true, fedfunds[4:], k_regimes=2, + exog=np.c_[fedfunds[3:-1], ogap[4:], inf[4:]]) + + def test_fit(self, **kwargs): + kwargs.setdefault('em_iter', 10) + kwargs.setdefault('maxiter', 100) + super(TestFedFundsConstL1Exog, self).test_fit(**kwargs) + + def test_predict(self): + # Predictions conditional on regime (the same no matter which + # probabilities are selected) + for name in ['predicted', 'filtered', 'smoothed', None]: + actual = self.model.predict( + self.true['params'], probabilities=name, conditional=True) + assert_allclose(actual[0], + self.true['predict0'], atol=1e-5) + assert_allclose(actual[1], + self.true['predict1'], atol=1e-5) + + # Smoothed + actual = self.model.predict( + self.true['params'], probabilities='smoothed') + assert_allclose(actual, self.true['predict_smoothed'], atol=1e-5) + actual = self.model.predict( + self.true['params'], probabilities=None) + assert_allclose(actual, self.true['predict_smoothed'], atol=1e-5) + + actual = self.result.predict(probabilities='smoothed') + assert_allclose(actual, self.true['predict_smoothed'], atol=1e-5) + actual = self.result.predict(probabilities=None) + assert_allclose(actual, self.true['predict_smoothed'], atol=1e-5) + + def test_bse(self): + # Can't compare last element of bse because we estimate sigma^2 rather + # than sigma^2 + bse = self.result.cov_params_approx.diagonal()**0.5 + assert_allclose(bse[:-1], self.true['bse_oim'][:-1], atol=1e-7) + + +class TestFedFundsConstL1Exog3(MarkovRegression): + # Results from Stata, see http://www.stata.com/manuals14/tsmswitch.pdf + @classmethod + def setup_class(cls): + true = { + 'params': np.r_[.7253684, .1641252, .6178282, + .2564055, .7994204, .3821718, + .5261292, -.0034106, .6015991, + .8464551, .9690088, .4178913, + .1201952, .0464136, .1075357, + -.0425603, .1298906, .9099168, + .438375**2], + 'llf': -189.89493, + 'llf_fit': -182.27188, + 'llf_fit_em': -226.88581 + } + super(TestFedFundsConstL1Exog3, cls).setup_class( + true, fedfunds[4:], k_regimes=3, + exog=np.c_[fedfunds[3:-1], ogap[4:], inf[4:]]) + + def test_fit(self, **kwargs): + kwargs['search_reps'] = 20 + np.random.seed(1234) + super(TestFedFundsConstL1Exog3, self).test_fit(**kwargs) + + +class TestAreturnsConstL1Variance(MarkovRegression): + # Results from Stata, see http://www.stata.com/manuals14/tsmswitch.pdf + @classmethod + def setup_class(cls): + true = { + 'params': np.r_[.7530865, .6825357, .7641424, 1.972771, .0790744, + .527953, .5895792**2, 1.605333**2], + 'llf': -745.7977, + 'llf_fit': -745.7977, + 'llf_fit_em': -745.83654, + 'bse_oim': np.r_[.0634387, .0662574, .0782852, .2784204, .0301862, + .0857841, np.nan, np.nan] + } + super(TestAreturnsConstL1Variance, cls).setup_class( + true, areturns[1:], k_regimes=2, exog=areturns[:-1], + switching_variance=True) + + def test_fit(self, **kwargs): + kwargs.setdefault('em_iter', 10) + kwargs.setdefault('maxiter', 100) + super(TestAreturnsConstL1Variance, self).test_fit(**kwargs) + + def test_bse(self): + # Can't compare last two element of bse because we estimate sigma^2 + # rather than sigma + bse = self.result.cov_params_approx.diagonal()**0.5 + assert_allclose(bse[:-2], self.true['bse_oim'][:-2], atol=1e-7) + + +class TestMumpspcNoconstL1Variance(MarkovRegression): + # Results from Stata, see http://www.stata.com/manuals14/tsmswitch.pdf + @classmethod + def setup_class(cls): + true = { + 'params': np.r_[.762733, .1473767, .420275, .9847369, .0562405**2, + .2611362**2], + 'llf': 131.7225, + 'llf_fit': 131.7225, + 'llf_fit_em': 131.7175 + } + super(TestMumpspcNoconstL1Variance, cls).setup_class( + true, mumpspc[1:], k_regimes=2, trend='nc', exog=mumpspc[:-1], + switching_variance=True, atol=1e-4) diff --git a/statsmodels/tsa/regime_switching/tests/test_markov_switching.py b/statsmodels/tsa/regime_switching/tests/test_markov_switching.py new file mode 100644 index 0000000..f24c349 --- /dev/null +++ b/statsmodels/tsa/regime_switching/tests/test_markov_switching.py @@ -0,0 +1,317 @@ +""" +General tests for Markov switching models + +Author: Chad Fulton +License: BSD-3 +""" +from __future__ import division, absolute_import, print_function + +import numpy as np +import pandas as pd +from statsmodels.tools.numdiff import approx_fprime_cs +from statsmodels.tsa.regime_switching import markov_switching +from numpy.testing import assert_equal, assert_allclose, assert_raises + + +def test_params(): + def check_transtion_2(params): + assert_equal(params['regime_transition'], np.s_[0:2]) + assert_equal(params[0, 'regime_transition'], [0]) + assert_equal(params[1, 'regime_transition'], [1]) + assert_equal(params['regime_transition', 0], [0]) + assert_equal(params['regime_transition', 1], [1]) + + def check_transition_3(params): + assert_equal(params['regime_transition'], np.s_[0:6]) + assert_equal(params[0, 'regime_transition'], [0, 3]) + assert_equal(params[1, 'regime_transition'], [1, 4]) + assert_equal(params[2, 'regime_transition'], [2, 5]) + assert_equal(params['regime_transition', 0], [0, 3]) + assert_equal(params['regime_transition', 1], [1, 4]) + assert_equal(params['regime_transition', 2], [2, 5]) + + params = markov_switching.MarkovSwitchingParams(k_regimes=2) + params['regime_transition'] = [1] + assert_equal(params.k_params, 1 * 2) + assert_equal(params[0], [0]) + assert_equal(params[1], [1]) + check_transtion_2(params) + + params['exog'] = [0, 1] + assert_equal(params.k_params, 1 * 2 + 1 + 1 * 2) + assert_equal(params[0], [0, 2, 3]) + assert_equal(params[1], [1, 2, 4]) + check_transtion_2(params) + assert_equal(params['exog'], np.s_[2:5]) + assert_equal(params[0, 'exog'], [2, 3]) + assert_equal(params[1, 'exog'], [2, 4]) + assert_equal(params['exog', 0], [2, 3]) + assert_equal(params['exog', 1], [2, 4]) + + params = markov_switching.MarkovSwitchingParams(k_regimes=3) + params['regime_transition'] = [1, 1] + assert_equal(params.k_params, 2 * 3) + assert_equal(params[0], [0, 3]) + assert_equal(params[1], [1, 4]) + assert_equal(params[2], [2, 5]) + check_transition_3(params) + + # Test for invalid parameter setting + assert_raises(IndexError, params.__setitem__, None, [1, 1]) + + # Test for invalid parameter selection + assert_raises(IndexError, params.__getitem__, None) + assert_raises(IndexError, params.__getitem__, (0, 0)) + assert_raises(IndexError, params.__getitem__, ('exog', 'exog')) + assert_raises(IndexError, params.__getitem__, ('exog', 0, 1)) + + +def test_init_endog(): + index = pd.date_range(start='1950-01-01', periods=10, freq='D') + endog = [ + np.ones(10), pd.Series(np.ones(10), index=index), np.ones((10, 1)), + pd.DataFrame(np.ones((10, 1)), index=index) + ] + for _endog in endog: + mod = markov_switching.MarkovSwitching(_endog, k_regimes=2) + assert_equal(mod.nobs, 10) + assert_equal(mod.endog, _endog.squeeze()) + assert_equal(mod.k_regimes, 2) + assert_equal(mod.tvtp, False) + assert_equal(mod.k_tvtp, 0) + assert_equal(mod.k_params, 2) + + # Invalid: k_regimes < 2 + endog = np.ones(10) + assert_raises(ValueError, markov_switching.MarkovSwitching, endog, + k_regimes=1) + + # Invalid: multiple endog columns + endog = np.ones((10, 2)) + assert_raises(ValueError, markov_switching.MarkovSwitching, endog, + k_regimes=2) + + +def test_init_exog_tvtp(): + endog = np.ones(10) + exog_tvtp = np.c_[np.ones((10, 1)), (np.arange(10) + 1)[:, np.newaxis]] + mod = markov_switching.MarkovSwitching(endog, k_regimes=2, + exog_tvtp=exog_tvtp) + assert_equal(mod.tvtp, True) + assert_equal(mod.k_tvtp, 2) + + # Invalid exog_tvtp (too many obs) + exog_tvtp = np.c_[np.ones((11, 1)), (np.arange(11) + 1)[:, np.newaxis]] + assert_raises(ValueError, markov_switching.MarkovSwitching, endog, + k_regimes=2, exog_tvtp=exog_tvtp) + + +def test_transition_matrix(): + # k_regimes = 2 + endog = np.ones(10) + mod = markov_switching.MarkovSwitching(endog, k_regimes=2) + params = np.r_[0., 0., 1.] + transition_matrix = np.zeros((2, 2, 1)) + transition_matrix[1, :] = 1. + assert_allclose(mod.regime_transition_matrix(params), transition_matrix) + + # k_regimes = 3 + endog = np.ones(10) + mod = markov_switching.MarkovSwitching(endog, k_regimes=3) + params = np.r_[[0]*3, [0.2]*3, 1.] + transition_matrix = np.zeros((3, 3, 1)) + transition_matrix[1, :, 0] = 0.2 + transition_matrix[2, :, 0] = 0.8 + assert_allclose(mod.regime_transition_matrix(params), transition_matrix) + + # k_regimes = 2, tvtp + endog = np.ones(10) + exog_tvtp = np.c_[np.ones((10, 1)), (np.arange(10) + 1)[:, np.newaxis]] + mod = markov_switching.MarkovSwitching(endog, k_regimes=2, + exog_tvtp=exog_tvtp) + + # If all TVTP regression coefficients are zero, then the logit transform + # results in exp(0) / (1 + exp(0)) = 0.5 for all parameters; since it's + # k_regimes=2 the remainder calculation is also 0.5. + params = np.r_[0, 0, 0, 0] + assert_allclose(mod.regime_transition_matrix(params), 0.5) + + # Manually compute the TVTP coefficients + params = np.r_[1, 2, 1, 2] + transition_matrix = np.zeros((2, 2, 10)) + + coeffs0 = np.sum(exog_tvtp, axis=1) + p11 = np.exp(coeffs0) / (1 + np.exp(coeffs0)) + transition_matrix[0, 0, :] = p11 + transition_matrix[1, 0, :] = 1 - p11 + + coeffs1 = np.sum(2 * exog_tvtp, axis=1) + p21 = np.exp(coeffs1) / (1 + np.exp(coeffs1)) + transition_matrix[0, 1, :] = p21 + transition_matrix[1, 1, :] = 1 - p21 + assert_allclose(mod.regime_transition_matrix(params), transition_matrix, + atol=1e-10) + + # k_regimes = 3, tvtp + endog = np.ones(10) + exog_tvtp = np.c_[np.ones((10, 1)), (np.arange(10) + 1)[:, np.newaxis]] + mod = markov_switching.MarkovSwitching( + endog, k_regimes=3, exog_tvtp=exog_tvtp) + + # If all TVTP regression coefficients are zero, then the logit transform + # results in exp(0) / (1 + exp(0) + exp(0)) = 1/3 for all parameters; + # since it's k_regimes=3 the remainder calculation is also 1/3. + params = np.r_[[0]*12] + assert_allclose(mod.regime_transition_matrix(params), 1 / 3) + + # Manually compute the TVTP coefficients for the first column + params = np.r_[[0]*6, [2]*6] + transition_matrix = np.zeros((3, 3, 10)) + + p11 = np.zeros(10) + p12 = 2 * np.sum(exog_tvtp, axis=1) + tmp = np.exp(np.c_[p11, p12]).T + transition_matrix[:2, 0, :] = tmp / (1 + np.sum(tmp, axis=0)) + transition_matrix[2, 0, :] = ( + 1 - np.sum(transition_matrix[:2, 0, :], axis=0)) + assert_allclose(mod.regime_transition_matrix(params)[:, 0, :], + transition_matrix[:, 0, :], atol=1e-10) + + +def test_initial_probabilities(): + endog = np.ones(10) + mod = markov_switching.MarkovSwitching(endog, k_regimes=2) + params = np.r_[0.5, 0.5, 1.] + + # Valid known initial probabilities + mod.initialize_known([0.2, 0.8]) + assert_allclose(mod.initial_probabilities(params), [0.2, 0.8]) + + # Invalid known initial probabilities (too many elements) + assert_raises(ValueError, mod.initialize_known, [0.2, 0.2, 0.6]) + + # Invalid known initial probabilities (doesn't sum to 1) + assert_raises(ValueError, mod.initialize_known, [0.2, 0.2]) + + # Valid steady-state probabilities + mod.initialize_steady_state() + assert_allclose(mod.initial_probabilities(params), [0.5, 0.5]) + + # Invalid steady-state probabilities (when mod has tvtp) + endog = np.ones(10) + mod = markov_switching.MarkovSwitching(endog, k_regimes=2, exog_tvtp=endog) + assert_raises(ValueError, mod.initialize_steady_state) + + +def test_logistic(): + logistic = markov_switching._logistic + + # For a number, logistic(x) = np.exp(x) / (1 + np.exp(x)) + cases = [0, 10., -4] + for x in cases: + # Have to use allclose b/c logistic() actually uses logsumexp, so + # they're not equal + assert_allclose(logistic(x), np.exp(x) / (1 + np.exp(x))) + + # For a vector, logistic(x) returns + # np.exp(x[i]) / (1 + np.sum(np.exp(x[:]))) for each i + # but squeezed + cases = [[1.], [0,1.], [-2,3.,1.2,-30.]] + for x in cases: + actual = logistic(x) + desired = [np.exp(i) / (1 + np.sum(np.exp(x))) for i in x] + assert_allclose(actual, desired) + + # For a 2-dim, logistic(x) returns + # np.exp(x[i,t]) / (1 + np.sum(np.exp(x[:,t]))) for each i, each t + # but squeezed + case = [[1.]] + actual = logistic(case) + assert_equal(actual.shape, (1,1)) + assert_allclose(actual, np.exp(1) / (1 + np.exp(1))) + + # Here, np.array(case) is 2x1, so it is interpreted as i=0,1 and t=0 + case = [[0], [1.]] + actual = logistic(case) + desired = [np.exp(i) / (1 + np.sum(np.exp(case))) for i in case] + assert_allclose(actual, desired) + + # Here, np.array(case) is 1x2, so it is interpreted as i=0 and t=0,1 + case = [[0, 1.]] + actual = logistic(case) + desired = np.exp(case) / (1 + np.exp(case)) + assert_allclose(actual, desired) + + # For a 3-dim, logistic(x) returns + # np.exp(x[i,j,t]) / (1 + np.sum(np.exp(x[:,j,t]))) + # for each i, each j, each t + case = np.arange(2*3*4).reshape(2, 3, 4) + actual = logistic(case) + for j in range(3): + assert_allclose(actual[:, j, :], logistic(case[:, j, :])) + + +def test_partials_logistic(): + # Here we compare to analytic derivatives and to finite-difference + # approximations + logistic = markov_switching._logistic + partials_logistic = markov_switching._partials_logistic + + # For a number, logistic(x) = np.exp(x) / (1 + np.exp(x)) + # Then d/dx = logistix(x) - logistic(x)**2 + cases = [0, 10., -4] + for x in cases: + assert_allclose(partials_logistic(x), logistic(x) - logistic(x)**2) + assert_allclose(partials_logistic(x), approx_fprime_cs([x], logistic)) + + # For a vector, logistic(x) returns + # np.exp(x[i]) / (1 + np.sum(np.exp(x[:]))) for each i + # Then d logistic(x[i]) / dx[i] = (logistix(x) - logistic(x)**2)[i] + # And d logistic(x[i]) / dx[j] = -(logistic(x[i]) * logistic[x[j]]) + cases = [[1.], [0,1.], [-2,3.,1.2,-30.]] + for x in cases: + evaluated = np.atleast_1d(logistic(x)) + partials = np.diag(evaluated - evaluated**2) + for i in range(len(x)): + for j in range(i): + partials[i, j] = partials[j, i] = -evaluated[i] * evaluated[j] + assert_allclose(partials_logistic(x), partials) + assert_allclose(partials_logistic(x), approx_fprime_cs(x, logistic)) + + # For a 2-dim, logistic(x) returns + # np.exp(x[i,t]) / (1 + np.sum(np.exp(x[:,t]))) for each i, each t + # but squeezed + case = [[1.]] + evaluated = logistic(case) + partial = [evaluated - evaluated**2] + assert_allclose(partials_logistic(case), partial) + assert_allclose(partials_logistic(case), approx_fprime_cs(case, logistic)) + + # # Here, np.array(case) is 2x1, so it is interpreted as i=0,1 and t=0 + case = [[0], [1.]] + evaluated = logistic(case)[:, 0] + partials = np.diag(evaluated - evaluated**2) + partials[0, 1] = partials[1, 0] = -np.multiply(*evaluated) + assert_allclose(partials_logistic(case)[:, :, 0], partials) + assert_allclose(partials_logistic(case), + approx_fprime_cs(np.squeeze(case), logistic)[..., None]) + + # Here, np.array(case) is 1x2, so it is interpreted as i=0 and t=0,1 + case = [[0, 1.]] + evaluated = logistic(case) + partials = (evaluated - evaluated**2)[None, ...] + assert_allclose(partials_logistic(case), partials) + assert_allclose(partials_logistic(case), + approx_fprime_cs(case, logistic).T) + + # For a 3-dim, logistic(x) returns + # np.exp(x[i,j,t]) / (1 + np.sum(np.exp(x[:,j,t]))) + # for each i, each j, each t + case = np.arange(2*3*4).reshape(2, 3, 4) + evaluated = logistic(case) + partials = partials_logistic(case) + for t in range(4): + for j in range(3): + desired = np.diag(evaluated[:, j, t] - evaluated[:, j, t]**2) + desired[0, 1] = desired[1, 0] = -np.multiply(*evaluated[:, j, t]) + assert_allclose(partials[..., j, t], desired) diff --git a/statsmodels/tsa/seasonal.py b/statsmodels/tsa/seasonal.py new file mode 100644 index 0000000..d602dfd --- /dev/null +++ b/statsmodels/tsa/seasonal.py @@ -0,0 +1,168 @@ +""" +Seasonal Decomposition by Moving Averages +""" +from statsmodels.compat.python import lmap, range, iteritems +import numpy as np +from pandas.core.nanops import nanmean as pd_nanmean +from .filters._utils import _maybe_get_pandas_wrapper_freq +from .filters.filtertools import convolution_filter +from statsmodels.tsa.tsatools import freq_to_period + + +def seasonal_mean(x, freq): + """ + Return means for each period in x. freq is an int that gives the + number of periods per cycle. E.g., 12 for monthly. NaNs are ignored + in the mean. + """ + return np.array([pd_nanmean(x[i::freq]) for i in range(freq)]) + + +def seasonal_decompose(x, model="additive", filt=None, freq=None, two_sided=True): + """ + Seasonal decomposition using moving averages + + Parameters + ---------- + x : array-like + Time series + model : str {"additive", "multiplicative"} + Type of seasonal component. Abbreviations are accepted. + filt : array-like + The filter coefficients for filtering out the seasonal component. + The concrete moving average method used in filtering is determined by two_sided. + freq : int, optional + Frequency of the series. Must be used if x is not a pandas object. + Overrides default periodicity of x if x is a pandas + object with a timeseries index. + two_sided : bool + The moving average method used in filtering. + If True (default), a centered moving average is computed using the filt. + If False, the filter coefficients are for past values only. + + Returns + ------- + results : obj + A object with seasonal, trend, and resid attributes. + + Notes + ----- + This is a naive decomposition. More sophisticated methods should + be preferred. + + The additive model is Y[t] = T[t] + S[t] + e[t] + + The multiplicative model is Y[t] = T[t] * S[t] * e[t] + + The seasonal component is first removed by applying a convolution + filter to the data. The average of this smoothed series for each + period is the returned seasonal component. + + See Also + -------- + statsmodels.tsa.filters.bk_filter.bkfilter + statsmodels.tsa.filters.cf_filter.xffilter + statsmodels.tsa.filters.hp_filter.hpfilter + statsmodels.tsa.filters.convolution_filter + """ + _pandas_wrapper, pfreq = _maybe_get_pandas_wrapper_freq(x) + x = np.asanyarray(x).squeeze() + nobs = len(x) + + if not np.all(np.isfinite(x)): + raise ValueError("This function does not handle missing values") + if model.startswith('m'): + if np.any(x <= 0): + raise ValueError("Multiplicative seasonality is not appropriate " + "for zero and negative values") + + if freq is None: + if pfreq is not None: + pfreq = freq_to_period(pfreq) + freq = pfreq + else: + raise ValueError("You must specify a freq or x must be a " + "pandas object with a timeseries index") + + if filt is None: + if freq % 2 == 0: # split weights at ends + filt = np.array([.5] + [1] * (freq - 1) + [.5]) / freq + else: + filt = np.repeat(1./freq, freq) + + nsides = int(two_sided) + 1 + trend = convolution_filter(x, filt, nsides) + + # nan pad for conformability - convolve doesn't do it + if model.startswith('m'): + detrended = x / trend + else: + detrended = x - trend + + period_averages = seasonal_mean(detrended, freq) + + if model.startswith('m'): + period_averages /= np.mean(period_averages) + else: + period_averages -= np.mean(period_averages) + + seasonal = np.tile(period_averages, nobs // freq + 1)[:nobs] + + if model.startswith('m'): + resid = x / seasonal / trend + else: + resid = detrended - seasonal + + results = lmap(_pandas_wrapper, [seasonal, trend, resid, x]) + return DecomposeResult(seasonal=results[0], trend=results[1], + resid=results[2], observed=results[3]) + + +class DecomposeResult(object): + def __init__(self, **kwargs): + for key, value in iteritems(kwargs): + setattr(self, key, value) + self.nobs = len(self.observed) + + def plot(self): + from statsmodels.graphics.utils import _import_mpl + plt = _import_mpl() + fig, axes = plt.subplots(4, 1, sharex=True) + if hasattr(self.observed, 'plot'): # got pandas use it + self.observed.plot(ax=axes[0], legend=False) + axes[0].set_ylabel('Observed') + self.trend.plot(ax=axes[1], legend=False) + axes[1].set_ylabel('Trend') + self.seasonal.plot(ax=axes[2], legend=False) + axes[2].set_ylabel('Seasonal') + self.resid.plot(ax=axes[3], legend=False) + axes[3].set_ylabel('Residual') + else: + axes[0].plot(self.observed) + axes[0].set_ylabel('Observed') + axes[1].plot(self.trend) + axes[1].set_ylabel('Trend') + axes[2].plot(self.seasonal) + axes[2].set_ylabel('Seasonal') + axes[3].plot(self.resid) + axes[3].set_ylabel('Residual') + axes[3].set_xlabel('Time') + axes[3].set_xlim(0, self.nobs) + + fig.tight_layout() + return fig + + +if __name__ == "__main__": + x = np.array([-50, 175, 149, 214, 247, 237, 225, 329, 729, 809, + 530, 489, 540, 457, 195, 176, 337, 239, 128, 102, + 232, 429, 3, 98, 43, -141, -77, -13, 125, 361, -45, 184]) + results = seasonal_decompose(x, freq=4) + + from pandas import DataFrame, DatetimeIndex + data = DataFrame(x, DatetimeIndex(start='1/1/1951', + periods=len(x), + freq='Q')) + + res = seasonal_decompose(data) + diff --git a/statsmodels/tsa/statespace/__init__.py b/statsmodels/tsa/statespace/__init__.py new file mode 100644 index 0000000..0123ce8 --- /dev/null +++ b/statsmodels/tsa/statespace/__init__.py @@ -0,0 +1,2 @@ +from statsmodels import NoseWrapper as Tester +test = Tester().test diff --git a/statsmodels/tsa/statespace/_statespace.pyx.in b/statsmodels/tsa/statespace/_statespace.pyx.in new file mode 100644 index 0000000..0df77e7 --- /dev/null +++ b/statsmodels/tsa/statespace/_statespace.pyx.in @@ -0,0 +1,2113 @@ +#cython: boundscheck=False +#cython: wraparound=False +#cython: cdivision=False +""" +State Space Models + +Author: Chad Fulton +License: Simplified-BSD +""" + +{{py: + +TYPES = { + "s": ("np.float32_t", "np.float32", "np.NPY_FLOAT32"), + "d": ("np.float64_t", "float", "np.NPY_FLOAT64"), + "c": ("np.complex64_t", "np.complex64", "np.NPY_COMPLEX64"), + "z": ("np.complex128_t", "complex", "np.NPY_COMPLEX128"), +} + +BLAS_FUNCTIONS = ["gemm", "gemv", "copy", "axpy", "scal"] +LAPACK_FUNCTIONS = ["getrf", "getri", "getrs", "potrf", "potri", "potrs", "trtrs"] + +}} + +# ## Constants + +# ### Filters +# TODO note that only the conventional filter is implemented +cdef int FILTER_CONVENTIONAL = 0x01 # Durbin and Koopman (2012), Chapter 4 +cdef int FILTER_EXACT_INITIAL = 0x02 # ibid., Chapter 5.6 +cdef int FILTER_AUGMENTED = 0x04 # ibid., Chapter 5.7 +cdef int FILTER_SQUARE_ROOT = 0x08 # ibid., Chapter 6.3 +cdef int FILTER_UNIVARIATE = 0x10 # ibid., Chapter 6.4 +cdef int FILTER_COLLAPSED = 0x20 # ibid., Chapter 6.5 +cdef int FILTER_EXTENDED = 0x40 # ibid., Chapter 10.2 +cdef int FILTER_UNSCENTED = 0x80 # ibid., Chapter 10.3 + +# ### Inversion methods +# Methods by which the terms using the inverse of the forecast error +# covariance matrix are solved. +cdef int INVERT_UNIVARIATE = 0x01 +cdef int SOLVE_LU = 0x02 +cdef int INVERT_LU = 0x04 +cdef int SOLVE_CHOLESKY = 0x08 +cdef int INVERT_CHOLESKY = 0x10 + +# ### Numerical Stability methods +# Methods to improve numerical stability +cdef int STABILITY_FORCE_SYMMETRY = 0x01 + +# ### Memory conservation options +cdef int MEMORY_STORE_ALL = 0 +cdef int MEMORY_NO_FORECAST = 0x01 +cdef int MEMORY_NO_PREDICTED = 0x02 +cdef int MEMORY_NO_FILTERED = 0x04 +cdef int MEMORY_NO_LIKELIHOOD = 0x08 +cdef int MEMORY_CONSERVE = ( + MEMORY_NO_FORECAST | MEMORY_NO_PREDICTED | MEMORY_NO_FILTERED | + MEMORY_NO_LIKELIHOOD +) + +# Typical imports +import numpy as np +import warnings +cimport numpy as np +cimport cython + +np.import_array() + +# ## Math Functions +# Real and complex log and abs functions +from libc.math cimport log as dlog, abs as dabs +from numpy cimport npy_cdouble + +cdef extern from "numpy/npy_math.h": + np.float64_t NPY_PI + np.float64_t npy_cabs(np.npy_cdouble z) + np.npy_cdouble npy_clog(np.npy_cdouble z) + +cdef inline np.float64_t zabs(np.complex128_t z): + return npy_cabs(( &z)[0]) + +cdef inline np.complex128_t zlog(np.complex128_t z): + cdef np.npy_cdouble x + x = npy_clog(( &z)[0]) + return ( &x)[0] + +cdef extern from "capsule.h": + void *Capsule_AsVoidPtr(object ptr) + +# ## BLAS / LAPACK functions + +# `blas_lapack.pxd` contains typedef statements for BLAS and LAPACK functions +from statsmodels.src.blas_lapack cimport * + +try: + # Scipy >= 0.12.0 exposes Fortran BLAS functions directly + from scipy.linalg.blas import cgerc +except: + # Scipy < 0.12.0 exposes Fortran BLAS functions in the `fblas` submodule + from scipy.linalg.blas import fblas as blas +else: + from scipy.linalg import blas + +try: + # Scipy >= 0.12.0 exposes Fortran LAPACK functions directly + from scipy.linalg.lapack import cgbsv +except: + # Scipy < 0.12.0 exposes Fortran LAPACK functions in the `flapack` submodule + from scipy.linalg.lapack import flapack as lapack +else: + from scipy.linalg import lapack + +{{for prefix, types in TYPES.items()}} +{{for function in BLAS_FUNCTIONS}} +{{py: name = prefix + function}} +cdef {{name}}_t *{{name}} = <{{name}}_t*>Capsule_AsVoidPtr(blas.{{name}}._cpointer) +{{endfor}} +{{for function in LAPACK_FUNCTIONS}} +{{py: name = prefix + function}} +cdef {{name}}_t *{{name}} = <{{name}}_t*>Capsule_AsVoidPtr(lapack.{{name}}._cpointer) +{{endfor}} +{{endfor}} + +cdef sdot_t *sdot = Capsule_AsVoidPtr(blas.sdot._cpointer) +cdef ddot_t *ddot = Capsule_AsVoidPtr(blas.ddot._cpointer) +cdef cdotu_t *cdot = Capsule_AsVoidPtr(blas.cdotu._cpointer) +cdef zdotu_t *zdot = Capsule_AsVoidPtr(blas.zdotu._cpointer) + +cdef int FORTRAN = 1 + +# Array shape validation +cdef validate_matrix_shape(str name, Py_ssize_t *shape, int nrows, int ncols, nobs=None): + if not shape[0] == nrows: + raise ValueError('Invalid shape for %s matrix: requires %d rows,' + ' got %d' % (name, nrows, shape[0])) + if not shape[1] == ncols: + raise ValueError('Invalid shape for %s matrix: requires %d columns,' + 'got %d' % (name, shape[1], shape[1])) + if nobs is not None and shape[2] not in [1, nobs]: + raise ValueError('Invalid time-varying dimension for %s matrix:' + ' requires 1 or %d, got %d' % (name, nobs, shape[2])) + +cdef validate_vector_shape(str name, Py_ssize_t *shape, int nrows, nobs = None): + if not shape[0] == nrows: + raise ValueError('Invalid shape for %s vector: requires %d rows,' + ' got %d' % (name, nrows, shape[0])) + if nobs is not None and not shape[1] in [1, nobs]: + raise ValueError('Invalid time-varying dimension for %s vector:' + ' requires 1 or %d got %d' % (name, nobs, shape[1])) + +{{for prefix, types in TYPES.items()}} +{{py:cython_type, dtype, typenum = types}} +{{py: +combined_prefix = prefix +combined_cython_type = cython_type +if prefix == 'c': + combined_prefix = 'z' + combined_cython_type = 'np.complex128_t' +if prefix == 's': + combined_prefix = 'd' + combined_cython_type = 'np.float64_t' +}} + +## State Space Representation +cdef class {{prefix}}Statespace(object): + """ + {{prefix}}Statespace(obs, design, obs_intercept, obs_cov, transition, state_intercept, selection, state_cov) + + *See Durbin and Koopman (2012), Chapter 4 for all notation* + """ + + # ### State space representation + # + # $$ + # \begin{align} + # y_t & = Z_t \alpha_t + d_t + \varepsilon_t \hspace{3em} & \varepsilon_t & \sim N(0, H_t) \\\\ + # \alpha_{t+1} & = T_t \alpha_t + c_t + R_t \eta_t & \eta_t & \sim N(0, Q_t) \\\\ + # & & \alpha_1 & \sim N(a_1, P_1) + # \end{align} + # $$ + # + # $y_t$ is $p \times 1$ + # $\varepsilon_t$ is $p \times 1$ + # $\alpha_t$ is $m \times 1$ + # $\eta_t$ is $r \times 1$ + # $t = 1, \dots, T$ + + # `nobs` $\equiv T$ is the length of the time-series + # `k_endog` $\equiv p$ is dimension of observation space + # `k_states` $\equiv m$ is the dimension of the state space + # `k_posdef` $\equiv r$ is the dimension of the state shocks + # *Old notation: T, n, k, g* + cdef readonly int nobs, k_endog, k_states, k_posdef + + # `obs` $\equiv y_t$ is the **observation vector** $(p \times T)$ + # `design` $\equiv Z_t$ is the **design vector** $(p \times m \times T)$ + # `obs_intercept` $\equiv d_t$ is the **observation intercept** $(p \times T)$ + # `obs_cov` $\equiv H_t$ is the **observation covariance matrix** $(p \times p \times T)$ + # `transition` $\equiv T_t$ is the **transition matrix** $(m \times m \times T)$ + # `state_intercept` $\equiv c_t$ is the **state intercept** $(m \times T)$ + # `selection` $\equiv R_t$ is the **selection matrix** $(m \times r \times T)$ + # `state_cov` $\equiv Q_t$ is the **state covariance matrix** $(r \times r \times T)$ + # `selected_state_cov` $\equiv R Q_t R'$ is the **selected state covariance matrix** $(m \times m \times T)$ + # `initial_state` $\equiv a_1$ is the **initial state mean** $(m \times 1)$ + # `initial_state_cov` $\equiv P_1$ is the **initial state covariance matrix** $(m \times m)$ + # + # With the exception of `obs`, these are *optionally* time-varying. If they are instead time-invariant, + # then the dimension of length $T$ is instead of length $1$. + # + # *Note*: the initial vectors' notation 1-indexed as in Durbin and Koopman, + # but in the recursions below it will be 0-indexed in the Python arrays. + # + # *Old notation: y, -, mu, beta_tt_init, P_tt_init* + cdef readonly {{cython_type}} [::1,:] obs, obs_intercept, state_intercept + cdef readonly {{cython_type}} [:] initial_state + cdef readonly {{cython_type}} [::1,:] initial_state_cov + # *Old notation: H, R, F, G, Q*, G Q* G'* + cdef readonly {{cython_type}} [::1,:,:] design, obs_cov, transition, selection, state_cov, selected_state_cov + + # `missing` is a $(p \times T)$ boolean matrix where a row is a $(p \times 1)$ vector + # in which the $i$th position is $1$ if $y_{i,t}$ is to be considered a missing value. + # *Note:* This is created as the output of np.isnan(obs). + cdef readonly int [::1,:] missing + # `nmissing` is an `T \times 0` integer vector holding the number of *missing* observations + # $p - p_t$ + cdef readonly int [:] nmissing + + # Flag for a time-invariant model, which requires that *all* of the + # possibly time-varying arrays are time-invariant. + cdef readonly int time_invariant + + # Flag for initialization. + cdef readonly int initialized + + # Temporary arrays + cdef {{cython_type}} [::1,:] tmp + + # Pointers + # *Note*: These are not yet implemented to do anything in this base class + # but are used in subclasses. Necessary to have them here due to problems + # with redeclaring the model attribute of KalmanFilter children classes + cdef {{cython_type}} * _obs + cdef {{cython_type}} * _design + cdef {{cython_type}} * _obs_intercept + cdef {{cython_type}} * _obs_cov + cdef {{cython_type}} * _transition + cdef {{cython_type}} * _state_intercept + cdef {{cython_type}} * _selection + cdef {{cython_type}} * _state_cov + cdef {{cython_type}} * _selected_state_cov + cdef {{cython_type}} * _initial_state + cdef {{cython_type}} * _initial_state_cov + + # ### Initialize state space model + # *Note*: The initial state and state covariance matrix must be provided. + def __init__(self, + {{cython_type}} [::1,:] obs, + {{cython_type}} [::1,:,:] design, + {{cython_type}} [::1,:] obs_intercept, + {{cython_type}} [::1,:,:] obs_cov, + {{cython_type}} [::1,:,:] transition, + {{cython_type}} [::1,:] state_intercept, + {{cython_type}} [::1,:,:] selection, + {{cython_type}} [::1,:,:] state_cov): + + # Local variables + cdef: + np.npy_intp dim1[1] + np.npy_intp dim2[2] + np.npy_intp dim3[3] + + # #### State space representation variables + # **Note**: these arrays share data with the versions defined in + # Python and passed to this constructor, so if they are updated in + # Python they will also be updated here. + self.obs = obs + self.design = design + self.obs_intercept = obs_intercept + self.obs_cov = obs_cov + self.transition = transition + self.state_intercept = state_intercept + self.selection = selection + self.state_cov = state_cov + + # Dimensions + self.k_endog = obs.shape[0] + self.k_states = selection.shape[0] + self.k_posdef = selection.shape[1] + self.nobs = obs.shape[1] + + # #### Validate matrix dimensions + # + # Make sure that the given state-space matrices have consistent sizes + validate_matrix_shape('design', &self.design.shape[0], + self.k_endog, self.k_states, self.nobs) + validate_vector_shape('observation intercept', &self.obs_intercept.shape[0], + self.k_endog, self.nobs) + validate_matrix_shape('observation covariance matrix', &self.obs_cov.shape[0], + self.k_endog, self.k_endog, self.nobs) + validate_matrix_shape('transition', &self.transition.shape[0], + self.k_states, self.k_states, self.nobs) + validate_vector_shape('state intercept', &self.state_intercept.shape[0], + self.k_states, self.nobs) + validate_matrix_shape('state covariance matrix', &self.state_cov.shape[0], + self.k_posdef, self.k_posdef, self.nobs) + + # Check for a time-invariant model + self.time_invariant = ( + self.design.shape[2] == 1 and + self.obs_intercept.shape[1] == 1 and + self.obs_cov.shape[2] == 1 and + self.transition.shape[2] == 1 and + self.state_intercept.shape[1] == 1 and + self.selection.shape[2] == 1 and + self.state_cov.shape[2] == 1 + ) + + # Set the flag for initialization to be false + self.initialized = False + + # Allocate selected state covariance matrix + dim3[0] = self.k_states; dim3[1] = self.k_states; dim3[2] = 1; + # (we only allocate memory for time-varying array if necessary) + if self.state_cov.shape[2] > 1 or self.selection.shape[2] > 1: + dim3[2] = self.nobs + self.selected_state_cov = np.PyArray_ZEROS(3, dim3, {{typenum}}, FORTRAN) + + # Handle missing data + self.missing = np.array(np.isnan(obs), dtype=np.int32, order="F") + self.nmissing = np.array(np.sum(self.missing, axis=0), dtype=np.int32) + + # Create the temporary array + # Holds arrays of dimension $(m \times m)$ + dim2[0] = self.k_states; dim2[1] = self.k_states; + self.tmp = np.PyArray_ZEROS(2, dim2, {{typenum}}, FORTRAN) + + # ## Initialize: known values + # + # Initialize the filter with specific values, assumed to be known with + # certainty or else as filled with parameters from a maximum likelihood + # estimation run. + def initialize_known(self, {{cython_type}} [:] initial_state, {{cython_type}} [::1,:] initial_state_cov): + """ + initialize_known(initial_state, initial_state_cov) + """ + validate_vector_shape('inital state', &initial_state.shape[0], self.k_states, None) + validate_matrix_shape('initial state covariance', &initial_state_cov.shape[0], self.k_states, self.k_states, None) + + self.initial_state = initial_state + self.initial_state_cov = initial_state_cov + + self.initialized = True + + # ## Initialize: approximate diffuse priors + # + # Durbin and Koopman note that this initialization should only be coupled + # with the standard Kalman filter for "approximate exploratory work" and + # can lead to "large rounding errors" (p. 125). + # + # *Note:* see Durbin and Koopman section 5.6.1 + def initialize_approximate_diffuse(self, variance=1e2): + """ + initialize_approximate_diffuse(variance=1e2) + """ + cdef np.npy_intp dim[1] + dim[0] = self.k_states + self.initial_state = np.PyArray_ZEROS(1, dim, {{typenum}}, FORTRAN) + self.initial_state_cov = np.asfortranarray(np.eye(self.k_states, dtype={{dtype}})) * variance + + self.initialized = True + + # ## Initialize: stationary process + # *Note:* see Durbin and Koopman section 5.6.2 + # + # TODO improve efficiency with direct BLAS / LAPACK calls + def initialize_stationary(self, complex_step=False): + """ + initialize_stationary() + """ + cdef np.npy_intp dim[1] + + # Create selected state covariance matrix + {{prefix}}select_state_cov(self.k_states, self.k_posdef, + &self.tmp[0,0], + &self.selection[0,0,0], + &self.state_cov[0,0,0], + &self.selected_state_cov[0,0,0]) + + from tools import solve_discrete_lyapunov + + dim[0] = self.k_states + self.initial_state = np.PyArray_ZEROS(1, dim, {{typenum}}, FORTRAN) + self.initial_state_cov = np.asfortranarray(solve_discrete_lyapunov( + np.array(self.transition[:,:,0], dtype={{dtype}}), + np.array(self.selected_state_cov[:,:,0], dtype={{dtype}}), + complex_step=complex_step + ).T) + + self.initialized = True + +# ### Selected state covariance matrice +cdef int {{prefix}}select_state_cov(int k_states, int k_posdef, + {{cython_type}} * tmp, + {{cython_type}} * selection, + {{cython_type}} * state_cov, + {{cython_type}} * selected_state_cov): + cdef: + {{cython_type}} alpha = 1.0 + {{cython_type}} beta = 0.0 + + # Only need to do something if there is a state covariance matrix + # (i.e k_posdof == 0) + if k_posdef > 0: + + # #### Calculate selected state covariance matrix + # $Q_t^* = R_t Q_t R_t'$ + # + # Combine the selection matrix and the state covariance matrix to get + # the simplified (but possibly singular) "selected" state covariance + # matrix (see e.g. Durbin and Koopman p. 43) + + # `tmp0` array used here, dimension $(m \times r)$ + + # $\\#_0 = 1.0 * R_t Q_t$ + # $(m \times r) = (m \times r) (r \times r)$ + {{prefix}}gemm("N", "N", &k_states, &k_posdef, &k_posdef, + &alpha, selection, &k_states, + state_cov, &k_posdef, + &beta, tmp, &k_states) + # $Q_t^* = 1.0 * \\#_0 R_t'$ + # $(m \times m) = (m \times r) (m \times r)'$ + {{prefix}}gemm("N", "T", &k_states, &k_states, &k_posdef, + &alpha, tmp, &k_states, + selection, &k_states, + &beta, selected_state_cov, &k_states) + +# ## Kalman filter Routines +# +# The following functions are the workhorse functions for the Kalman filter. +# They represent four distinct but very general phases of the Kalman filtering +# operations. +# +# Their argument is an object of class ?KalmanFilter, which is a stateful +# representation of the recursive filter. For this reason, the below functions +# work almost exclusively through *side-effects* and most return void. +# See the Kalman filter class documentation for further discussion. +# +# They are defined this way so that the actual filtering process can select +# whichever filter type is appropriate for the given time period. For example, +# in the case of state space models with non-stationary components, the filter +# should begin with the exact initial Kalman filter routines but after some +# number of time periods will transition to the conventional Kalman filter +# routines. +# +# Below, `` will refer to one of the following: +# +# - `conventional` - the conventional Kalman filter +# +# Other filter types (e.g. `exact_initial`, `augmented`, etc.) may be added in +# the future. +# +# `forecast_` generates the forecast, forecast error $v_t$ and +# forecast error covariance matrix $F_t$ +# `updating_` is the updating step of the Kalman filter, and +# generates the filtered state $a_{t|t}$ and covariance matrix $P_{t|t}$ +# `prediction_` is the prediction step of the Kalman filter, and +# generates the predicted state $a_{t+1}$ and covariance matrix $P_{t+1}$. +# `loglikelihood_` calculates the loglikelihood for $y_t$ + +# ### Missing Observation Conventional Kalman filter +# +# See Durbin and Koopman (2012) Chapter 4.10 +# +# Here k_endog is the same as usual, but the design matrix and observation +# covariance matrix are enforced to be zero matrices, and the loglikelihood +# is defined to be zero. + +cdef int {{prefix}}forecast_missing_conventional({{prefix}}KalmanFilter kfilter): + cdef int i, j + cdef int inc = 1 + + # #### Forecast for time t + # `forecast` $= Z_t a_t + d_t$ + # Just set to zeros, see below (this means if forecasts are required for + # this part, they must be done in the wrappe) + + # #### Forecast error for time t + # It is undefined here, since obs is nan + for i in range(kfilter.k_endog): + kfilter._forecast[i] = 0 + kfilter._forecast_error[i] = 0 + + # #### Forecast error covariance matrix for time t + # $F_t \equiv 0$ + for i in range(kfilter.k_endog): + for j in range(kfilter.k_endog): + kfilter._forecast_error_cov[j + i*kfilter.k_endog] = 0 + +cdef int {{prefix}}updating_missing_conventional({{prefix}}KalmanFilter kfilter): + cdef int inc = 1 + + # Simply copy over the input arrays ($a_t, P_t$) to the filtered arrays + # ($a_{t|t}, P_{t|t}$) + {{prefix}}copy(&kfilter.k_states, kfilter._input_state, &inc, kfilter._filtered_state, &inc) + {{prefix}}copy(&kfilter.k_states2, kfilter._input_state_cov, &inc, kfilter._filtered_state_cov, &inc) + +cdef {{cython_type}} {{prefix}}inverse_missing_conventional({{prefix}}KalmanFilter kfilter, {{cython_type}} determinant) except *: + # Since the inverse of the forecast error covariance matrix is not + # stored, we don't need to fill it (e.g. with NPY_NAN values). Instead, + # just do a noop here and return a zero determinant ($|0|$). + return 0.0 + +cdef {{cython_type}} {{prefix}}loglikelihood_missing_conventional({{prefix}}KalmanFilter kfilter, {{cython_type}} determinant): + return 0.0 + +# ### Conventional Kalman filter +# +# The following are the above routines as defined in the conventional Kalman +# filter. +# +# See Durbin and Koopman (2012) Chapter 4 + +cdef int {{prefix}}forecast_conventional({{prefix}}KalmanFilter kfilter): + + # Constants + cdef: + int inc = 1, ld + {{cython_type}} alpha = 1.0 + {{cython_type}} beta = 0.0 + {{cython_type}} gamma = -1.0 + + # #### Forecast for time t + # `forecast` $= Z_t a_t + d_t$ + # + # *Note*: $a_t$ is given from the initialization (for $t = 0$) or + # from the previous iteration of the filter (for $t > 0$). + + # $\\# = d_t$ + {{prefix}}copy(&kfilter.k_endog, kfilter._obs_intercept, &inc, kfilter._forecast, &inc) + # `forecast` $= 1.0 * Z_t a_t + 1.0 * \\#$ + # $(p \times 1) = (p \times m) (m \times 1) + (p \times 1)$ + {{prefix}}gemv("N", &kfilter.k_endog, &kfilter.k_states, + &alpha, kfilter._design, &kfilter.k_endog, + kfilter._input_state, &inc, + &alpha, kfilter._forecast, &inc) + + # #### Forecast error for time t + # `forecast_error` $\equiv v_t = y_t -$ `forecast` + + # $\\# = y_t$ + {{prefix}}copy(&kfilter.k_endog, kfilter._obs, &inc, kfilter._forecast_error, &inc) + # $v_t = -1.0 * $ `forecast` $ + \\#$ + # $(p \times 1) = (p \times 1) + (p \times 1)$ + {{prefix}}axpy(&kfilter.k_endog, &gamma, kfilter._forecast, &inc, kfilter._forecast_error, &inc) + + # *Intermediate calculation* (used just below and then once more) + # `tmp1` array used here, dimension $(m \times p)$ + # $\\#_1 = P_t Z_t'$ + # $(m \times p) = (m \times m) (p \times m)'$ + {{prefix}}gemm("N", "T", &kfilter.k_states, &kfilter.k_endog, &kfilter.k_states, + &alpha, kfilter._input_state_cov, &kfilter.k_states, + kfilter._design, &kfilter.k_endog, + &beta, kfilter._tmp1, &kfilter.k_states) + + # #### Forecast error covariance matrix for time t + # $F_t \equiv Z_t P_t Z_t' + H_t$ + # + # *Note*: this and does nothing at all to `forecast_error_cov` if + # converged == True + if not kfilter.converged: + # $\\# = H_t$ + {{prefix}}copy(&kfilter.k_endog2, kfilter._obs_cov, &inc, kfilter._forecast_error_cov, &inc) + + # $F_t = 1.0 * Z_t \\#_1 + 1.0 * \\#$ + {{prefix}}gemm("N", "N", &kfilter.k_endog, &kfilter.k_endog, &kfilter.k_states, + &alpha, kfilter._design, &kfilter.k_endog, + kfilter._tmp1, &kfilter.k_states, + &alpha, kfilter._forecast_error_cov, &kfilter.k_endog) + + return 0 + +cdef int {{prefix}}updating_conventional({{prefix}}KalmanFilter kfilter): + # Constants + cdef: + int inc = 1 + {{cython_type}} alpha = 1.0 + {{cython_type}} beta = 0.0 + {{cython_type}} gamma = -1.0 + + # #### Filtered state for time t + # $a_{t|t} = a_t + P_t Z_t' F_t^{-1} v_t$ + # $a_{t|t} = 1.0 * \\#_1 \\#_2 + 1.0 a_t$ + {{prefix}}copy(&kfilter.k_states, kfilter._input_state, &inc, kfilter._filtered_state, &inc) + {{prefix}}gemv("N", &kfilter.k_states, &kfilter.k_endog, + &alpha, kfilter._tmp1, &kfilter.k_states, + kfilter._tmp2, &inc, + &alpha, kfilter._filtered_state, &inc) + + # #### Filtered state covariance for time t + # $P_{t|t} = P_t - P_t Z_t' F_t^{-1} Z_t P_t$ + # $P_{t|t} = P_t - \\#_1 \\#_3 P_t$ + # + # *Note*: this and does nothing at all to `filtered_state_cov` if + # converged == True + if not kfilter.converged: + {{prefix}}copy(&kfilter.k_states2, kfilter._input_state_cov, &inc, kfilter._filtered_state_cov, &inc) + + # `tmp0` array used here, dimension $(m \times m)$ + # $\\#_0 = 1.0 * \\#_1 \\#_3$ + # $(m \times m) = (m \times p) (p \times m)$ + {{prefix}}gemm("N", "N", &kfilter.k_states, &kfilter.k_states, &kfilter.k_endog, + &alpha, kfilter._tmp1, &kfilter.k_states, + kfilter._tmp3, &kfilter.k_endog, + &beta, kfilter._tmp0, &kfilter.k_states) + + # $P_{t|t} = - 1.0 * \\# P_t + 1.0 * P_t$ + # $(m \times m) = (m \times m) (m \times m) + (m \times m)$ + {{prefix}}gemm("N", "N", &kfilter.k_states, &kfilter.k_states, &kfilter.k_states, + &gamma, kfilter._tmp0, &kfilter.k_states, + kfilter._input_state_cov, &kfilter.k_states, + &alpha, kfilter._filtered_state_cov, &kfilter.k_states) + + return 0 + +cdef int {{prefix}}prediction_conventional({{prefix}}KalmanFilter kfilter): + + # Constants + cdef: + int inc = 1 + {{cython_type}} alpha = 1.0 + {{cython_type}} beta = 0.0 + {{cython_type}} gamma = -1.0 + + # #### Predicted state for time t+1 + # $a_{t+1} = T_t a_{t|t} + c_t$ + {{prefix}}copy(&kfilter.k_states, kfilter._state_intercept, &inc, kfilter._predicted_state, &inc) + {{prefix}}gemv("N", &kfilter.k_states, &kfilter.k_states, + &alpha, kfilter._transition, &kfilter.k_states, + kfilter._filtered_state, &inc, + &alpha, kfilter._predicted_state, &inc) + + # #### Predicted state covariance matrix for time t+1 + # $P_{t+1} = T_t P_{t|t} T_t' + Q_t^*$ + # + # *Note*: this and does nothing at all to `predicted_state_cov` if + # converged == True + if not kfilter.converged: + {{prefix}}copy(&kfilter.k_states2, kfilter._selected_state_cov, &inc, kfilter._predicted_state_cov, &inc) + # `tmp0` array used here, dimension $(m \times m)$ + + # $\\#_0 = T_t P_{t|t} $ + + # $(m \times m) = (m \times m) (m \times m)$ + {{prefix}}gemm("N", "N", &kfilter.k_states, &kfilter.k_states, &kfilter.k_states, + &alpha, kfilter._transition, &kfilter.k_states, + kfilter._filtered_state_cov, &kfilter.k_states, + &beta, kfilter._tmp0, &kfilter.k_states) + # $P_{t+1} = 1.0 \\#_0 T_t' + 1.0 \\#$ + # $(m \times m) = (m \times m) (m \times m) + (m \times m)$ + {{prefix}}gemm("N", "T", &kfilter.k_states, &kfilter.k_states, &kfilter.k_states, + &alpha, kfilter._tmp0, &kfilter.k_states, + kfilter._transition, &kfilter.k_states, + &alpha, kfilter._predicted_state_cov, &kfilter.k_states) + + return 0 + + +cdef {{cython_type}} {{prefix}}loglikelihood_conventional({{prefix}}KalmanFilter kfilter, {{cython_type}} determinant): + # Constants + cdef: + {{cython_type}} loglikelihood + int inc = 1 + {{cython_type}} alpha = 1.0 + {{cython_type}} beta = 0.0 + + loglikelihood = -0.5*(kfilter.k_endog*{{combined_prefix}}log(2*NPY_PI) + {{combined_prefix}}log(determinant)) + + {{if combined_prefix == 'd'}} + loglikelihood = loglikelihood - 0.5*{{prefix}}dot(&kfilter.k_endog, kfilter._forecast_error, &inc, kfilter._tmp2, &inc) + {{else}} + {{prefix}}gemv("N", &inc, &kfilter.k_endog, + &alpha, kfilter._forecast_error, &inc, + kfilter._tmp2, &inc, + &beta, kfilter._tmp0, &inc) + loglikelihood = loglikelihood - 0.5 * kfilter._tmp0[0] + {{endif}} + + return loglikelihood + +# ## Forecast error covariance inversion +# +# The following are routines that can calculate the inverse of the forecast +# error covariance matrix (defined in `forecast_`). +# +# These routines are aware of the possibility that the Kalman filter may have +# converged to a steady state, in which case they do not need to perform the +# inversion or calculate the determinant. + +cdef {{cython_type}} {{prefix}}inverse_univariate({{prefix}}KalmanFilter kfilter, {{cython_type}} determinant) except *: + """ + Factorize the forecast error covariance matrix using simple division + in the case that the observations are univariate. + + If the model has converged to a steady-state, this is a NOOP and simply + returns the determinant that was passed in. + """ + # #### Intermediate values + cdef: + int inc = 1 + {{cython_type}} scalar + + # Take the inverse of the forecast error covariance matrix + if not kfilter.converged: + determinant = kfilter._forecast_error_cov[0] + try: + scalar = 1.0 / kfilter._forecast_error_cov[0] + except: + raise np.linalg.LinAlgError('Non-positive-definite forecast error' + ' covariance matrix encountered at' + ' period %d' % kfilter.t) + kfilter._tmp2[0] = scalar * kfilter._forecast_error[0] + {{prefix}}copy(&kfilter.k_endogstates, kfilter._design, &inc, kfilter._tmp3, &inc) + {{prefix}}scal(&kfilter.k_endogstates, &scalar, kfilter._tmp3, &inc) + + return determinant + +cdef {{cython_type}} {{prefix}}factorize_cholesky({{prefix}}KalmanFilter kfilter, {{cython_type}} determinant) except *: + """ + Factorize the forecast error covariance matrix using a Cholesky + decomposition. Called by either of the `solve_cholesky` or + `invert_cholesky` routines. + + Requires a positive definite matrix, but is faster than an LU + decomposition. + + If the model has converged to a steady-state, this is a NOOP and simply + returns the determinant that was passed in. + """ + cdef: + int inc = 1 + int info + int i + + if not kfilter.converged: + {{prefix}}copy(&kfilter.k_endog2, kfilter._forecast_error_cov, &inc, kfilter._forecast_error_fac, &inc) + {{prefix}}potrf("U", &kfilter.k_endog, kfilter._forecast_error_fac, &kfilter.k_endog, &info) + + if info < 0: + raise np.linalg.LinAlgError('Illegal value in forecast error' + ' covariance matrix encountered at' + ' period %d' % kfilter.t) + if info > 0: + raise np.linalg.LinAlgError('Non-positive-definite forecast error' + ' covariance matrix encountered at' + ' period %d' % kfilter.t) + + # Calculate the determinant (just the squared product of the + # diagonals, in the Cholesky decomposition case) + determinant = 1.0 + for i in range(kfilter.k_endog): + determinant = determinant * kfilter._forecast_error_fac[i + i*kfilter.k_endog] + determinant = determinant**2 + + return determinant + +cdef {{cython_type}} {{prefix}}factorize_lu({{prefix}}KalmanFilter kfilter, {{cython_type}} determinant) except *: + """ + Factorize the forecast error covariance matrix using an LU + decomposition. Called by either of the `solve_lu` or `invert_lu` + routines. + + Is slower than a Cholesky decomposition, but does not require a + positive definite matrix. + + If the model has converged to a steady-state, this is a NOOP and simply + returns the determinant that was passed in. + """ + cdef: + int inc = 1 + int info + int i + + if not kfilter.converged: + # Perform LU decomposition into `forecast_error_fac` + {{prefix}}copy(&kfilter.k_endog2, kfilter._forecast_error_cov, &inc, kfilter._forecast_error_fac, &inc) + + {{prefix}}getrf(&kfilter.k_endog, &kfilter.k_endog, + kfilter._forecast_error_fac, &kfilter.k_endog, + kfilter._forecast_error_ipiv, &info) + + if info < 0: + raise np.linalg.LinAlgError('Illegal value in forecast error' + ' covariance matrix encountered at' + ' period %d' % kfilter.t) + if info > 0: + raise np.linalg.LinAlgError('Singular forecast error covariance' + ' matrix encountered at period %d' % + kfilter.t) + + # Calculate the determinant (product of the diagonals, but with + # sign modifications according to the permutation matrix) + determinant = 1 + for i in range(kfilter.k_endog): + if not kfilter._forecast_error_ipiv[i] == i+1: + determinant *= -1*kfilter._forecast_error_fac[i + i*kfilter.k_endog] + else: + determinant *= kfilter._forecast_error_fac[i + i*kfilter.k_endog] + + return determinant + +cdef {{cython_type}} {{prefix}}inverse_cholesky({{prefix}}KalmanFilter kfilter, {{cython_type}} determinant) except *: + """ + inverse_cholesky(self, determinant) + + If the model has converged to a steady-state, this is a NOOP and simply + returns the determinant that was passed in. + """ + cdef: + int info + int inc = 1 + int i, j + {{cython_type}} alpha = 1.0 + {{cython_type}} beta = 0.0 + + if not kfilter.converged: + # Perform the Cholesky decomposition and get the determinant + determinant = {{prefix}}factorize_cholesky(kfilter, determinant) + + # Continue taking the inverse + {{prefix}}potri("U", &kfilter.k_endog, kfilter._forecast_error_fac, &kfilter.k_endog, &info) + + # ?potri only fills in the upper triangle of the symmetric array, and + # since the ?symm and ?symv routines are not available as of scipy + # 0.11.0, we can't use them, so we must fill in the lower triangle + # by hand + for i in range(kfilter.k_endog): + for j in range(i): + kfilter._forecast_error_fac[i + j*kfilter.k_endog] = kfilter._forecast_error_fac[j + i*kfilter.k_endog] + + + # Get `tmp2` and `tmp3` via matrix multiplications + + # `tmp2` array used here, dimension $(p \times 1)$ + # $\\#_2 = F_t^{-1} v_t$ + #{{prefix}}symv("U", &kfilter.k_endog, &alpha, kfilter._forecast_error_fac, &kfilter.k_endog, + # kfilter._forecast_error, &inc, &beta, kfilter._tmp2, &inc) + {{prefix}}gemv("N", &kfilter.k_endog, &kfilter.k_endog, + &alpha, kfilter._forecast_error_fac, &kfilter.k_endog, + kfilter._forecast_error, &inc, + &beta, kfilter._tmp2, &inc) + + # `tmp3` array used here, dimension $(p \times m)$ + # $\\#_3 = F_t^{-1} Z_t$ + #{{prefix}}symm("L", "U", &kfilter.k_endog, &kfilter.k_states, + # &alpha, kfilter._forecast_error_fac, &kfilter.k_endog, + # kfilter._design, &kfilter.k_endog, + # &beta, kfilter._tmp3, &kfilter.k_endog) + {{prefix}}gemm("N", "N", &kfilter.k_endog, &kfilter.k_states, &kfilter.k_endog, + &alpha, kfilter._forecast_error_fac, &kfilter.k_endog, + kfilter._design, &kfilter.k_endog, + &beta, kfilter._tmp3, &kfilter.k_endog) + + return determinant + +cdef {{cython_type}} {{prefix}}inverse_lu({{prefix}}KalmanFilter kfilter, {{cython_type}} determinant) except *: + """ + inverse_cholesky(self, determinant) + + If the model has converged to a steady-state, this is a NOOP and simply + returns the determinant that was passed in. + """ + cdef: + int info + int inc = 1 + {{cython_type}} alpha = 1.0 + {{cython_type}} beta = 0.0 + + if not kfilter.converged: + # Perform the Cholesky decomposition and get the determinant + determinant = {{prefix}}factorize_lu(kfilter, determinant) + + # Continue taking the inverse + {{prefix}}getri(&kfilter.k_endog, kfilter._forecast_error_fac, &kfilter.k_endog, + kfilter._forecast_error_ipiv, kfilter._forecast_error_work, &kfilter.ldwork, &info) + + # Get `tmp2` and `tmp3` via matrix multiplications + + # `tmp2` array used here, dimension $(p \times 1)$ + # $\\#_2 = F_t^{-1} v_t$ + {{prefix}}gemv("N", &kfilter.k_endog, &kfilter.k_endog, + &alpha, kfilter._forecast_error_fac, &kfilter.k_endog, + kfilter._forecast_error, &inc, + &beta, kfilter._tmp2, &inc) + + # `tmp3` array used here, dimension $(p \times m)$ + # $\\#_3 = F_t^{-1} Z_t$ + {{prefix}}gemm("N", "N", &kfilter.k_endog, &kfilter.k_states, &kfilter.k_endog, + &alpha, kfilter._forecast_error_fac, &kfilter.k_endog, + kfilter._design, &kfilter.k_endog, + &beta, kfilter._tmp3, &kfilter.k_endog) + + return determinant + +cdef {{cython_type}} {{prefix}}solve_cholesky({{prefix}}KalmanFilter kfilter, {{cython_type}} determinant) except *: + """ + solve_cholesky(self, determinant) + + If the model has converged to a steady-state, this is a NOOP and simply + returns the determinant that was passed in. + """ + cdef: + int info + int inc = 1 + + if not kfilter.converged: + # Perform the Cholesky decomposition and get the determinant + determinant = {{prefix}}factorize_cholesky(kfilter, determinant) + + # Solve the linear systems + # `tmp2` array used here, dimension $(p \times 1)$ + # $F_t \\#_2 = v_t$ + {{prefix}}copy(&kfilter.k_endog, kfilter._forecast_error, &inc, kfilter._tmp2, &inc) + {{prefix}}potrs("U", &kfilter.k_endog, &inc, kfilter._forecast_error_fac, &kfilter.k_endog, kfilter._tmp2, &kfilter.k_endog, &info) + + # `tmp3` array used here, dimension $(p \times m)$ + # $F_t \\#_3 = Z_t$ + {{prefix}}copy(&kfilter.k_endogstates, kfilter._design, &inc, kfilter._tmp3, &inc) + {{prefix}}potrs("U", &kfilter.k_endog, &kfilter.k_states, kfilter._forecast_error_fac, &kfilter.k_endog, kfilter._tmp3, &kfilter.k_endog, &info) + + return determinant + +cdef {{cython_type}} {{prefix}}solve_lu({{prefix}}KalmanFilter kfilter, {{cython_type}} determinant) except *: + """ + inverse_cholesky(self, determinant) + + If the model has converged to a steady-state, this is a NOOP and simply + returns the determinant that was passed in. + """ + cdef: + int info + int inc = 1 + {{cython_type}} alpha = 1.0 + {{cython_type}} beta = 0.0 + + if not kfilter.converged: + # Perform the Cholesky decomposition and get the determinant + determinant = {{prefix}}factorize_lu(kfilter, determinant) + + # Solve the linear systems + # `tmp2` array used here, dimension $(p \times 1)$ + # $F_t \\#_2 = v_t$ + {{prefix}}copy(&kfilter.k_endog, kfilter._forecast_error, &inc, kfilter._tmp2, &inc) + {{prefix}}getrs("N", &kfilter.k_endog, &inc, kfilter._forecast_error_fac, &kfilter.k_endog, + kfilter._forecast_error_ipiv, kfilter._tmp2, &kfilter.k_endog, &info) + + # `tmp3` array used here, dimension $(p \times m)$ + # $F_t \\#_3 = Z_t$ + {{prefix}}copy(&kfilter.k_endogstates, kfilter._design, &inc, kfilter._tmp3, &inc) + {{prefix}}getrs("N", &kfilter.k_endog, &kfilter.k_states, kfilter._forecast_error_fac, &kfilter.k_endog, + kfilter._forecast_error_ipiv, kfilter._tmp3, &kfilter.k_endog, &info) + + return determinant + + +# ## Kalman filter + +cdef class {{prefix}}KalmanFilter(object): + """ + {{prefix}}KalmanFilter(model, filter=FILTER_CONVENTIONAL, inversion_method=INVERT_UNIVARIATE | SOLVE_CHOLESKY, stability_method=STABILITY_FORCE_SYMMETRY, tolerance=1e-19) + + A representation of the Kalman filter recursions. + + While the filter is mathematically represented as a recursion, it is here + translated into Python as a stateful iterator. + + Because there are actually several types of Kalman filter depending on the + state space model of interest, this class only handles the *iteration* + aspect of filtering, and delegates the actual operations to four general + workhorse routines, which can be implemented separately for each type of + Kalman filter. + + In order to maintain a consistent interface, and because these four general + routines may be quite different across filter types, their argument is only + the stateful ?KalmanFilter object. Furthermore, in order to allow the + different types of filter to substitute alternate matrices, this class + defines a set of pointers to the various state space arrays and the + filtering output arrays. + + For example, handling missing observations requires not only substituting + `obs`, `design`, and `obs_cov` matrices, but the new matrices actually have + different dimensions than the originals. This can be flexibly accomodated + simply by replacing e.g. the `obs` pointer to the substituted `obs` array + and replacing `k_endog` for that iteration. Then in the next iteration, when + the `obs` vector may be missing different elements (or none at all), it can + again be redefined. + + Each iteration of the filter (see `__next__`) proceeds in a number of + steps. + + `initialize_object_pointers` initializes pointers to current-iteration + objects (i.e. the state space arrays and filter output arrays). + + `initialize_function_pointers` initializes pointers to the appropriate + Kalman filtering routines (i.e. `forecast_conventional` or + `forecast_exact_initial`, etc.). + + `select_arrays` converts the base arrays into "selected" arrays using + selection matrices. In particular, it handles the state covariance matrix + and redefined matrices based on missing values. + + `post_convergence` handles copying arrays from time $t-1$ to time $t$ when + the Kalman filter has converged and they don't need to be re-calculated. + + `forecasting` calls the Kalman filter `forcasting_` routine + + `inversion` calls the appropriate function to invert the forecast error + covariance matrix. + + `updating` calls the Kalman filter `updating_` routine + + `loglikelihood` calls the Kalman filter `loglikelihood_` routine + + `prediction` calls the Kalman filter `prediction_` routine + + `numerical_stability` performs end-of-iteration tasks to improve the numerical + stability of the filter + + `check_convergence` checks for convergence of the filter to steady-state. + """ + + # ### Statespace model + cdef readonly {{prefix}}Statespace model + + # ### Filter parameters + # Holds the time-iteration state of the filter + # *Note*: must be changed using the `seek` method + cdef readonly int t + # Holds the tolerance parameter for convergence + cdef public np.float64_t tolerance + # Holds the convergence to steady-state status of the filter + # *Note*: is by default reset each time `seek` is called + cdef readonly int converged + cdef readonly int period_converged + # Holds whether or not the model is time-invariant + # *Note*: is by default reset each time `seek` is called + cdef readonly int time_invariant + # The Kalman filter procedure to use + cdef public int filter_method + # The method by which the terms using the inverse of the forecast + # error covariance matrix are solved. + cdef public int inversion_method + # Methods to improve numerical stability + cdef public int stability_method + # Whether or not to conserve memory + # If True, only stores filtered states and covariance matrices + cdef readonly int conserve_memory + # If conserving loglikelihood, the number of periods to "burn" + # before starting to record the loglikelihood + cdef readonly int loglikelihood_burn + + # ### Kalman filter properties + + # `loglikelihood` $\equiv \log p(y_t | Y_{t-1})$ + cdef readonly {{cython_type}} [:] loglikelihood + + # `filtered_state` $\equiv a_{t|t} = E(\alpha_t | Y_t)$ is the **filtered estimator** of the state $(m \times T)$ + # `predicted_state` $\equiv a_{t+1} = E(\alpha_{t+1} | Y_t)$ is the **one-step ahead predictor** of the state $(m \times T-1)$ + # `forecast` $\equiv E(y_t|Y_{t-1})$ is the **forecast** of the next observation $(p \times T)$ + # `forecast_error` $\equiv v_t = y_t - E(y_t|Y_{t-1})$ is the **one-step ahead forecast error** of the next observation $(p \times T)$ + # + # *Note*: Actual values in `filtered_state` will be from 1 to `nobs`+1. Actual + # values in `predicted_state` will be from 0 to `nobs`+1 because the initialization + # is copied over to the zeroth entry, and similar for the covariances, below. + # + # *Old notation: beta_tt, beta_tt1, y_tt1, eta_tt1* + cdef readonly {{cython_type}} [::1,:] filtered_state, predicted_state, forecast, forecast_error + + # `filtered_state_cov` $\equiv P_{t|t} = Var(\alpha_t | Y_t)$ is the **filtered state covariance matrix** $(m \times m \times T)$ + # `predicted_state_cov` $\equiv P_{t+1} = Var(\alpha_{t+1} | Y_t)$ is the **predicted state covariance matrix** $(m \times m \times T)$ + # `forecast_error_cov` $\equiv F_t = Var(v_t | Y_{t-1})$ is the **forecast error covariance matrix** $(p \times p \times T)$ + # + # *Old notation: P_tt, P_tt1, f_tt1* + cdef readonly {{cython_type}} [::1,:,:] filtered_state_cov, predicted_state_cov, forecast_error_cov + + # ### Steady State Values + # These matrices are used to hold the converged matrices after the Kalman + # filter has reached steady-state + cdef readonly {{cython_type}} [::1,:] converged_forecast_error_cov + cdef readonly {{cython_type}} [::1,:] converged_filtered_state_cov + cdef readonly {{cython_type}} [::1,:] converged_predicted_state_cov + cdef readonly {{cython_type}} converged_determinant + + # ### Temporary arrays + # These matrices are used to temporarily hold selected observation vectors, + # design matrices, and observation covariance matrices in the case of + # missing data. + cdef readonly {{cython_type}} [:] selected_obs + # The following are contiguous memory segments which are then used to + # store the data in the above matrices. + cdef readonly {{cython_type}} [:] selected_design + cdef readonly {{cython_type}} [:] selected_obs_cov + # `forecast_error_fac` is a forecast error covariance matrix **factorization** $(p \times p)$. + # Depending on the method for handling the inverse of the forecast error covariance matrix, it may be: + # - a Cholesky factorization if `cholesky_solve` is used + # - an inverse calculated via Cholesky factorization if `cholesky_inverse` is used + # - an LU factorization if `lu_solve` is used + # - an inverse calculated via LU factorization if `lu_inverse` is used + cdef readonly {{cython_type}} [::1,:] forecast_error_fac + # `forecast_error_ipiv` holds pivot indices if an LU decomposition is used + cdef readonly int [:] forecast_error_ipiv + # `forecast_error_work` is a work array for matrix inversion if an LU + # decomposition is used + cdef readonly {{cython_type}} [::1,:] forecast_error_work + # These hold the memory allocations of the unnamed temporary arrays + cdef readonly {{cython_type}} [::1,:] tmp0, tmp1, tmp3 + cdef readonly {{cython_type}} [:] tmp2 + + # Holds the determinant across calculations (this is done because after + # convergence, it doesn't need to be re-calculated anymore) + cdef readonly {{cython_type}} determinant + + # ### Pointers to current-iteration arrays + cdef {{cython_type}} * _obs + cdef {{cython_type}} * _design + cdef {{cython_type}} * _obs_intercept + cdef {{cython_type}} * _obs_cov + cdef {{cython_type}} * _transition + cdef {{cython_type}} * _state_intercept + cdef {{cython_type}} * _selection + cdef {{cython_type}} * _state_cov + cdef {{cython_type}} * _selected_state_cov + cdef {{cython_type}} * _initial_state + cdef {{cython_type}} * _initial_state_cov + + cdef {{cython_type}} * _input_state + cdef {{cython_type}} * _input_state_cov + + cdef {{cython_type}} * _forecast + cdef {{cython_type}} * _forecast_error + cdef {{cython_type}} * _forecast_error_cov + cdef {{cython_type}} * _filtered_state + cdef {{cython_type}} * _filtered_state_cov + cdef {{cython_type}} * _predicted_state + cdef {{cython_type}} * _predicted_state_cov + + cdef {{cython_type}} * _converged_forecast_error_cov + cdef {{cython_type}} * _converged_filtered_state_cov + cdef {{cython_type}} * _converged_predicted_state_cov + + cdef {{cython_type}} * _forecast_error_fac + cdef int * _forecast_error_ipiv + cdef {{cython_type}} * _forecast_error_work + + cdef {{cython_type}} * _tmp0 + cdef {{cython_type}} * _tmp1 + cdef {{cython_type}} * _tmp2 + cdef {{cython_type}} * _tmp3 + + # ### Pointers to current-iteration Kalman filtering functions + cdef int (*forecasting)( + {{prefix}}KalmanFilter + ) + cdef {{cython_type}} (*inversion)( + {{prefix}}KalmanFilter, {{cython_type}} + ) except * + cdef int (*updating)( + {{prefix}}KalmanFilter + ) + cdef {{cython_type}} (*calculate_loglikelihood)( + {{prefix}}KalmanFilter, {{cython_type}} + ) + cdef int (*prediction)( + {{prefix}}KalmanFilter + ) + + # ### Define some constants + cdef readonly int k_endog, k_states, k_posdef, k_endog2, k_states2, k_endogstates, ldwork + + def __init__(self, + {{prefix}}Statespace model, + int filter_method=FILTER_CONVENTIONAL, + int inversion_method=INVERT_UNIVARIATE | SOLVE_CHOLESKY, + int stability_method=STABILITY_FORCE_SYMMETRY, + int conserve_memory=MEMORY_STORE_ALL, + np.float64_t tolerance=1e-19, + int loglikelihood_burn=0): + # Local variables + cdef: + np.npy_intp dim1[1] + np.npy_intp dim2[2] + np.npy_intp dim3[3] + cdef int storage + + # Save the model + self.model = model + + # Initialize filter parameters + self.tolerance = tolerance + if not filter_method == FILTER_CONVENTIONAL: + raise NotImplementedError("Only the conventional Kalman filter is currently implemented") + self.filter_method = filter_method + self.inversion_method = inversion_method + self.stability_method = stability_method + self.conserve_memory = conserve_memory + self.loglikelihood_burn = loglikelihood_burn + + # Initialize the constant values + self.time_invariant = self.model.time_invariant + self.k_endog = self.model.k_endog + self.k_states = self.model.k_states + self.k_posdef = self.model.k_posdef + self.k_endog2 = self.model.k_endog**2 + self.k_states2 = self.model.k_states**2 + self.k_endogstates = self.model.k_endog * self.model.k_states + # TODO replace with optimal work array size + self.ldwork = self.model.k_endog + + # #### Allocate arrays for calculations + + # Arrays for Kalman filter output + + # Forecast + if self.conserve_memory & MEMORY_NO_FORECAST: + storage = 2 + else: + storage = self.model.nobs + dim2[0] = self.k_endog; dim2[1] = storage; + self.forecast = np.PyArray_ZEROS(2, dim2, {{typenum}}, FORTRAN) + self.forecast_error = np.PyArray_ZEROS(2, dim2, {{typenum}}, FORTRAN) + dim3[0] = self.k_endog; dim3[1] = self.k_endog; dim3[2] = storage; + self.forecast_error_cov = np.PyArray_ZEROS(3, dim3, {{typenum}}, FORTRAN) + + # Filtered + if self.conserve_memory & MEMORY_NO_FILTERED > 0: + storage = 2 + else: + storage = self.model.nobs + dim2[0] = self.k_states; dim2[1] = storage; + self.filtered_state = np.PyArray_ZEROS(2, dim2, {{typenum}}, FORTRAN) + dim3[0] = self.k_states; dim3[1] = self.k_states; dim3[2] = storage; + self.filtered_state_cov = np.PyArray_ZEROS(3, dim3, {{typenum}}, FORTRAN) + + # Predicted + if self.conserve_memory & MEMORY_NO_PREDICTED > 0: + storage = 2 + else: + storage = self.model.nobs + dim2[0] = self.k_states; dim2[1] = storage+1; + self.predicted_state = np.PyArray_ZEROS(2, dim2, {{typenum}}, FORTRAN) + dim3[0] = self.k_states; dim3[1] = self.k_states; dim3[2] = storage+1; + self.predicted_state_cov = np.PyArray_ZEROS(3, dim3, {{typenum}}, FORTRAN) + + # Likelihood + if self.conserve_memory & MEMORY_NO_LIKELIHOOD > 0: + storage = 1 + else: + storage = self.model.nobs + dim1[0] = storage + self.loglikelihood = np.PyArray_ZEROS(1, dim1, {{typenum}}, FORTRAN) + + # Converged matrices + dim2[0] = self.k_endog; dim2[1] = self.k_endog; + self.converged_forecast_error_cov = np.PyArray_ZEROS(2, dim2, {{typenum}}, FORTRAN) + self._converged_forecast_error_cov = &self.converged_forecast_error_cov[0,0] + dim2[0] = self.k_states; dim2[1] = self.k_states; + self.converged_filtered_state_cov = np.PyArray_ZEROS(2, dim2, {{typenum}}, FORTRAN) + self._converged_filtered_state_cov = &self.converged_filtered_state_cov[0,0] + dim2[0] = self.k_states; dim2[1] = self.k_states; + self.converged_predicted_state_cov = np.PyArray_ZEROS(2, dim2, {{typenum}}, FORTRAN) + self._converged_predicted_state_cov = &self.converged_predicted_state_cov[0,0] + + # #### Arrays for temporary calculations + # *Note*: in math notation below, a $\\#$ will represent a generic + # temporary array, and a $\\#_i$ will represent a named temporary array. + + # Arrays related to matrix factorizations / inverses + dim2[0] = self.k_endog; dim2[1] = self.k_endog; + self.forecast_error_fac = np.PyArray_ZEROS(2, dim2, {{typenum}}, FORTRAN) + self._forecast_error_fac = &self.forecast_error_fac[0,0] + dim2[0] = self.ldwork; dim2[1] = self.ldwork; + self.forecast_error_work = np.PyArray_ZEROS(2, dim2, {{typenum}}, FORTRAN) + self._forecast_error_work = &self.forecast_error_work[0,0] + dim1[0] = self.k_endog; + self.forecast_error_ipiv = np.PyArray_ZEROS(1, dim1, np.NPY_INT, FORTRAN) + self._forecast_error_ipiv = &self.forecast_error_ipiv[0] + + # Holds arrays of dimension $(m \times m)$ and $(m \times r)$ + dim2[0] = self.k_states; dim2[1] = self.k_states; + self.tmp0 = np.PyArray_ZEROS(2, dim2, {{typenum}}, FORTRAN) + self._tmp0 = &self.tmp0[0, 0] + + # Holds arrays of dimension $(m \times p)$ + dim2[0] = self.k_states; dim2[1] = self.k_endog; + self.tmp1 = np.PyArray_ZEROS(2, dim2, {{typenum}}, FORTRAN) + self._tmp1 = &self.tmp1[0, 0] + + # Holds arrays of dimension $(p \times 1)$ + dim1[0] = self.k_endog; + self.tmp2 = np.PyArray_ZEROS(1, dim1, {{typenum}}, FORTRAN) + self._tmp2 = &self.tmp2[0] + + # Holds arrays of dimension $(p \times m)$ + dim2[0] = self.k_endog; dim2[1] = self.k_states; + self.tmp3 = np.PyArray_ZEROS(2, dim2, {{typenum}}, FORTRAN) + self._tmp3 = &self.tmp3[0, 0] + + # Arrays for missing data + dim1[0] = self.k_endog; + self.selected_obs = np.PyArray_ZEROS(1, dim1, {{typenum}}, FORTRAN) + dim1[0] = self.k_endog * self.k_states; + self.selected_design = np.PyArray_ZEROS(1, dim1, {{typenum}}, FORTRAN) + dim1[0] = self.k_endog2; + self.selected_obs_cov = np.PyArray_ZEROS(1, dim1, {{typenum}}, FORTRAN) + + # Initialize time and convergence status + self.t = 0 + self.converged = 0 + self.period_converged = 0 + + cpdef set_filter_method(self, int filter_method, int force_reset=True): + """ + set_filter_method(self, filter_method, force_reset=True) + + Change the filter method. + """ + self.filter_method = filter_method + + cpdef seek(self, unsigned int t, int reset_convergence = True): + """ + seek(self, t, reset_convergence = True) + + Change the time-state of the filter + + Is usually called to reset the filter to the beginning. + """ + if t >= self.model.nobs: + raise IndexError("Observation index out of range") + self.t = t + + if reset_convergence: + self.converged = 0 + self.period_converged = 0 + + def __iter__(self): + return self + + def __call__(self): + """ + Iterate the filter across the entire set of observations. + """ + cdef int i + + self.seek(0, True) + for i in range(self.model.nobs): + next(self) + + def __next__(self): + """ + Perform an iteration of the Kalman filter + """ + + # Get time subscript, and stop the iterator if at the end + if not self.t < self.model.nobs: + raise StopIteration + + # Initialize pointers to current-iteration objects + self.initialize_statespace_object_pointers() + self.initialize_filter_object_pointers() + + # Initialize pointers to appropriate Kalman filtering functions + self.initialize_function_pointers() + + # Convert base arrays into "selected" arrays + # - State covariance matrix? $Q_t \to R_t Q_t R_t`$ + # - Missing values: $y_t \to W_t y_t$, $Z_t \to W_t Z_t$, $H_t \to W_t H_t$ + self.select_state_cov() + self.select_missing() + + # Post-convergence: copy previous iteration arrays + self.post_convergence() + + # Form forecasts + self.forecasting(self) + + # Perform `forecast_error_cov` inversion (or decomposition) + self.determinant = self.inversion(self, self.determinant) + + # Updating step + self.updating(self) + + # Retrieve the loglikelihood + if self.conserve_memory & MEMORY_NO_LIKELIHOOD > 0: + if self.t == 0: + self.loglikelihood[0] = 0 + if self.t >= self.loglikelihood_burn: + self.loglikelihood[0] = self.loglikelihood[0] + self.calculate_loglikelihood( + self, self.determinant + ) + else: + self.loglikelihood[self.t] = self.calculate_loglikelihood( + self, self.determinant + ) + + # Prediction step + self.prediction(self) + + # Aids to numerical stability + self.numerical_stability() + + # Check for convergence + self.check_convergence() + + # If conserving memory, migrate storage: t->t-1, t+1->t + self.migrate_storage() + + # Advance the time + self.t += 1 + + cpdef initialize_statespace_object_pointers(self): + cdef: + int t = self.t + # Indices for possibly time-varying arrays + cdef: + int design_t = 0 + int obs_intercept_t = 0 + int obs_cov_t = 0 + int transition_t = 0 + int state_intercept_t = 0 + int selection_t = 0 + int state_cov_t = 0 + + # Get indices for possibly time-varying arrays + if not self.model.time_invariant: + if self.model.design.shape[2] > 1: design_t = t + if self.model.obs_intercept.shape[1] > 1: obs_intercept_t = t + if self.model.obs_cov.shape[2] > 1: obs_cov_t = t + if self.model.transition.shape[2] > 1: transition_t = t + if self.model.state_intercept.shape[1] > 1: state_intercept_t = t + if self.model.selection.shape[2] > 1: selection_t = t + if self.model.state_cov.shape[2] > 1: state_cov_t = t + + # Initialize object-level pointers to statespace arrays + self._obs = &self.model.obs[0, t] + self._design = &self.model.design[0, 0, design_t] + self._obs_intercept = &self.model.obs_intercept[0, obs_intercept_t] + self._obs_cov = &self.model.obs_cov[0, 0, obs_cov_t] + self._transition = &self.model.transition[0, 0, transition_t] + self._state_intercept = &self.model.state_intercept[0, state_intercept_t] + self._selection = &self.model.selection[0, 0, selection_t] + self._state_cov = &self.model.state_cov[0, 0, state_cov_t] + + # Initialize object-level pointers to initialization + if not self.model.initialized: + raise RuntimeError("Statespace model not initialized.") + self._initial_state = &self.model.initial_state[0] + self._initial_state_cov = &self.model.initial_state_cov[0,0] + + cpdef initialize_filter_object_pointers(self): + cdef: + int t = self.t + int inc = 1 + # Indices for arrays that may or may not be stored completely + cdef: + int forecast_t = t + int filtered_t = t + int predicted_t = t + if self.conserve_memory & MEMORY_NO_FORECAST > 0: + forecast_t = 1 + if self.conserve_memory & MEMORY_NO_FILTERED > 0: + filtered_t = 1 + if self.conserve_memory & MEMORY_NO_PREDICTED > 0: + predicted_t = 1 + + # Initialize object-level pointers to input arrays + self._input_state = &self.predicted_state[0, predicted_t] + self._input_state_cov = &self.predicted_state_cov[0, 0, predicted_t] + + # Copy initialization arrays to input arrays if we're starting the + # filter + if t == 0: + # `predicted_state[:,0]` $= a_1 =$ `initial_state` + # `predicted_state_cov[:,:,0]` $= P_1 =$ `initial_state_cov` + {{prefix}}copy(&self.k_states, self._initial_state, &inc, self._input_state, &inc) + {{prefix}}copy(&self.k_states2, self._initial_state_cov, &inc, self._input_state_cov, &inc) + + # Initialize object-level pointers to output arrays + self._forecast = &self.forecast[0, forecast_t] + self._forecast_error = &self.forecast_error[0, forecast_t] + self._forecast_error_cov = &self.forecast_error_cov[0, 0, forecast_t] + + self._filtered_state = &self.filtered_state[0, filtered_t] + self._filtered_state_cov = &self.filtered_state_cov[0, 0, filtered_t] + + self._predicted_state = &self.predicted_state[0, predicted_t+1] + self._predicted_state_cov = &self.predicted_state_cov[0, 0, predicted_t+1] + + cdef void initialize_function_pointers(self) except *: + if self.filter_method & FILTER_CONVENTIONAL: + self.forecasting = {{prefix}}forecast_conventional + + if self.inversion_method & INVERT_UNIVARIATE and self.model.k_endog == 1: + self.inversion = {{prefix}}inverse_univariate + elif self.inversion_method & SOLVE_CHOLESKY: + self.inversion = {{prefix}}solve_cholesky + elif self.inversion_method & SOLVE_LU: + self.inversion = {{prefix}}solve_lu + elif self.inversion_method & INVERT_CHOLESKY: + self.inversion = {{prefix}}inverse_cholesky + elif self.inversion_method & INVERT_LU: + self.inversion = {{prefix}}inverse_lu + else: + raise NotImplementedError("Invalid inversion method") + + self.updating = {{prefix}}updating_conventional + self.calculate_loglikelihood = {{prefix}}loglikelihood_conventional + self.prediction = {{prefix}}prediction_conventional + + else: + raise NotImplementedError("Invalid filtering method") + + cdef void select_state_cov(self): + cdef int selected_state_cov_t = 0 + + # ### Get selected state covariance matrix + if self.t == 0 or self.model.selected_state_cov.shape[2] > 1: + selected_state_cov_t = self.t + self._selected_state_cov = &self.model.selected_state_cov[0, 0, selected_state_cov_t] + + {{prefix}}select_state_cov(self.k_states, self.k_posdef, + self._tmp0, + self._selection, + self._state_cov, + self._selected_state_cov) + else: + self._selected_state_cov = &self.model.selected_state_cov[0, 0, 0] + + cpdef select_missing(self): + # ### Perform missing selections + # In Durbin and Koopman (2012), these are represented as matrix + # multiplications, i.e. $Z_t^* = W_t Z_t$ where $W_t$ is a row + # selection matrix (it contains a subset of rows of the identity + # matrix). + # + # It's more efficient, though, to just copy over the data directly, + # which is what is done here. Note that the `selected_*` arrays are + # defined as single-dimensional, so the assignment indexes below are + # set such that the arrays can be interpreted by the BLAS and LAPACK + # functions as two-dimensional, column-major arrays. + # + # In the case that all data is missing (e.g. this is what happens in + # forecasting), we actually set don't change the dimension, but we set + # the design matrix to the zeros array. + if self.model.nmissing[self.t] == self.model.k_endog: + self._select_missing_entire_obs() + elif self.model.nmissing[self.t] > 0: + self._select_missing_partial_obs() + else: + # Reset dimensions + self.k_endog = self.model.k_endog + self.k_endog2 = self.k_endog**2 + self.k_endogstates = self.k_endog * self.k_states + + cdef void _select_missing_entire_obs(self): + cdef: + int i, j + # Mark as not converged so that it does not inappropriately + # copy over steady state matrices + self.converged = 0 + + # Dimensions are the same as usual (have to reset in case previous + # obs was partially missing case) + self.k_endog = self.model.k_endog + self.k_endog2 = self.k_endog**2 + self.k_endogstates = self.k_endog * self.k_states + + # Design matrix is set to zeros + for i in range(self.model.k_states): + for j in range(self.model.k_endog): + self.selected_design[j + i*self.model.k_endog] = 0.0 + self._design = &self.selected_design[0] + + # Change the forecasting step to set the forecast at the intercept + # $d_t$, so that the forecast error is $v_t = y_t - d_t$. + self.forecasting = {{prefix}}forecast_missing_conventional + + # Change the updating step to just copy $a_{t|t} = a_t$ and + # $P_{t|t} = P_t$ + self.updating = {{prefix}}updating_missing_conventional + + # Change the inversion step to inverse to nans. + self.inversion = {{prefix}}inverse_missing_conventional + + # Change the loglikelihood calculation to give zero. + self.calculate_loglikelihood = {{prefix}}loglikelihood_missing_conventional + + # The prediction step is the same as the conventional Kalman + # filter + + cdef void _select_missing_partial_obs(self): + cdef: + int i, j, k, l + int inc = 1 + int design_t = 0 + int obs_cov_t = 0 + # Mark as not converged so that it does not inappropriately + # copy over steady state matrices + self.converged = 0 + + # Set dimensions + self.k_endog = self.model.k_endog - self.model.nmissing[self.t] + self.k_endog2 = self.k_endog**2 + self.k_endogstates = self.k_endog * self.k_states + + if self.model.design.shape[2] > 1: design_t = self.t + if self.model.obs_cov.shape[2] > 1: obs_cov_t = self.t + + k = 0 + for i in range(self.model.k_endog): + if not self.model.missing[i, self.t]: + + self.selected_obs[k] = self.model.obs[i, self.t] + + # i is rows + # k is rows + {{prefix}}copy(&self.model.k_states, + &self.model.design[i, 0, design_t], &self.model.k_endog, + &self.selected_design[k], &self.k_endog) + + # i, k is columns + # j, l is rows + l = 0 + for j in range(self.model.k_endog): + if not self.model.missing[j, self.t]: + self.selected_obs_cov[l + k*self.k_endog] = self.model.obs_cov[j, i, obs_cov_t] + l += 1 + k += 1 + self._obs = &self.selected_obs[0] + self._design = &self.selected_design[0] + self._obs_cov = &self.selected_obs_cov[0] + + cdef void post_convergence(self): + # TODO this should probably be defined separately for each Kalman filter type - e.g. `post_convergence_conventional`, etc. + + # Constants + cdef: + int inc = 1 + + if self.converged: + # $F_t$ + {{prefix}}copy(&self.k_endog2, self._converged_forecast_error_cov, &inc, self._forecast_error_cov, &inc) + # $P_{t|t}$ + {{prefix}}copy(&self.k_states2, self._converged_filtered_state_cov, &inc, self._filtered_state_cov, &inc) + # $P_t$ + {{prefix}}copy(&self.k_states2, self._converged_predicted_state_cov, &inc, self._predicted_state_cov, &inc) + # $|F_t|$ + self.determinant = self.converged_determinant + + cdef void numerical_stability(self): + cdef int i, j + cdef int predicted_t = self.t + cdef {{cython_type}} value + + if self.conserve_memory & MEMORY_NO_PREDICTED: + predicted_t = 1 + + if self.stability_method & STABILITY_FORCE_SYMMETRY: + # Enforce symmetry of predicted covariance matrix + # $P_{t+1} = 0.5 * (P_{t+1} + P_{t+1}')$ + # See Grewal (2001), Section 6.3.1.1 + for i in range(self.k_states): + for j in range(i, self.k_states): + value = 0.5 * ( + self.predicted_state_cov[i,j,predicted_t+1] + + self.predicted_state_cov[j,i,predicted_t+1] + ) + self.predicted_state_cov[i,j,predicted_t+1] = value + self.predicted_state_cov[j,i,predicted_t+1] = value + + cdef void check_convergence(self): + # Constants + cdef: + int inc = 1 + {{cython_type}} alpha = 1.0 + {{cython_type}} beta = 0.0 + {{cython_type}} gamma = -1.0 + # Indices for arrays that may or may not be stored completely + cdef: + int forecast_t = self.t + int filtered_t = self.t + int predicted_t = self.t + if self.conserve_memory & MEMORY_NO_FORECAST > 0: + forecast_t = 1 + if self.conserve_memory & MEMORY_NO_FILTERED > 0: + filtered_t = 1 + if self.conserve_memory & MEMORY_NO_PREDICTED > 0: + predicted_t = 1 + + if self.time_invariant and not self.converged and self.model.nmissing[self.t] == 0: + # #### Check for steady-state convergence + # + # `tmp0` array used here, dimension $(m \times m)$ + # `tmp1` array used here, dimension $(1 \times 1)$ + {{prefix}}copy(&self.k_states2, self._input_state_cov, &inc, self._tmp0, &inc) + {{prefix}}axpy(&self.k_states2, &gamma, self._predicted_state_cov, &inc, self._tmp0, &inc) + + {{if combined_prefix == 'd'}} + if {{prefix}}dot(&self.k_states2, self._tmp0, &inc, self._tmp0, &inc) < self.tolerance: + self.converged = 1 + self.period_converged = self.t + + {{else}} + {{prefix}}gemv("N", &inc, &self.k_states2, &alpha, self._tmp0, &inc, self._tmp0, &inc, &beta, self._tmp1, &inc) + if {{combined_prefix}}abs(self._tmp1[0]) < self.tolerance: + self.converged = 1 + self.period_converged = self.t + {{endif}} + + # If we just converged, copy the current iteration matrices to the + # converged storage + if self.converged == 1: + # $F_t$ + {{prefix}}copy(&self.k_endog2, &self.forecast_error_cov[0, 0, forecast_t], &inc, self._converged_forecast_error_cov, &inc) + # $P_{t|t}$ + {{prefix}}copy(&self.k_states2, &self.filtered_state_cov[0, 0, filtered_t], &inc, self._converged_filtered_state_cov, &inc) + # $P_t$ + {{prefix}}copy(&self.k_states2, &self.predicted_state_cov[0, 0, predicted_t], &inc, self._converged_predicted_state_cov, &inc) + # $|F_t|$ + self.converged_determinant = self.determinant + + cdef void migrate_storage(self): + cdef int inc = 1 + + # Forecast: 1 -> 0 + if self.conserve_memory & MEMORY_NO_FORECAST > 0: + {{prefix}}copy(&self.k_endog, &self.forecast[0, 1], &inc, &self.forecast[0, 0], &inc) + {{prefix}}copy(&self.k_endog, &self.forecast_error[0, 1], &inc, &self.forecast_error[0, 0], &inc) + {{prefix}}copy(&self.k_endog2, &self.forecast_error_cov[0, 0, 1], &inc, &self.forecast_error_cov[0, 0, 0], &inc) + + # Filtered: 1 -> 0 + if self.conserve_memory & MEMORY_NO_FILTERED > 0: + {{prefix}}copy(&self.k_states, &self.filtered_state[0, 1], &inc, &self.filtered_state[0, 0], &inc) + {{prefix}}copy(&self.k_states2, &self.filtered_state_cov[0, 0, 1], &inc, &self.filtered_state_cov[0, 0, 0], &inc) + + # Predicted: 1 -> 0 + if self.conserve_memory & MEMORY_NO_PREDICTED > 0: + {{prefix}}copy(&self.k_states, &self.predicted_state[0, 1], &inc, &self.predicted_state[0, 0], &inc) + {{prefix}}copy(&self.k_states2, &self.predicted_state_cov[0, 0, 1], &inc, &self.predicted_state_cov[0, 0, 0], &inc) + + # Predicted: 2 -> 1 + {{prefix}}copy(&self.k_states, &self.predicted_state[0, 2], &inc, &self.predicted_state[0, 1], &inc) + {{prefix}}copy(&self.k_states2, &self.predicted_state_cov[0, 0, 2], &inc, &self.predicted_state_cov[0, 0, 1], &inc) + +cpdef _{{prefix}}compute_coefficients_from_multivariate_pacf({{cython_type}} [::1,:] partial_autocorrelations, + {{cython_type}} [::1,:] error_variance, + int transform_variance, + int order, int k_endog): + """ + Notes + ----- + + This uses the ?trmm BLAS functions which are not available in + Scipy v0.11.0 + """ + # Constants + cdef: + int inc = 1 + {{cython_type}} alpha = 1.0 + {{cython_type}} beta = 0.0 + {{cython_type}} gamma = -1.0 + int k_endog2 = k_endog**2 + int k_endog_order = k_endog * order + int k_endog_order1 = k_endog * (order+1) + int info, s, k + # Local variables + cdef: + np.npy_intp dim2[2] + {{cython_type}} [::1, :] initial_variance + {{cython_type}} [::1, :] forward_variance + {{cython_type}} [::1, :] backward_variance + {{cython_type}} [::1, :] autocovariances + {{cython_type}} [::1, :] forwards1 + {{cython_type}} [::1, :] forwards2 + {{cython_type}} [::1, :] backwards1 + {{cython_type}} [::1, :] backwards2 + {{cython_type}} [::1, :] forward_factors + {{cython_type}} [::1, :] backward_factors + {{cython_type}} [::1, :] tmp + {{cython_type}} [::1, :] tmp2 + # Pointers + cdef: + {{cython_type}} * forwards + {{cython_type}} * prev_forwards + {{cython_type}} * backwards + {{cython_type}} * prev_backwards + # ?trmm + cdef {{prefix}}trmm_t *{{prefix}}trmm = <{{prefix}}trmm_t*>Capsule_AsVoidPtr(blas.{{prefix}}trmm._cpointer) + + # dim2[0] = self.k_endog; dim2[1] = storage; + # self.forecast = np.PyArray_ZEROS(2, dim2, {{typenum}}, FORTRAN) + + # If we want to keep the provided variance but with the constrained + # coefficient matrices, we need to make a copy here, and then after the + # main loop we will transform the coefficients to match the passed variance + if not transform_variance: + initial_variance = np.asfortranarray(error_variance.copy()) + # Need to make the input variance large enough that the recursions + # don't lead to zero-matrices due to roundoff error, which would case + # exceptions from the Cholesky decompositions. + # Note that this will still not always ensure positive definiteness, + # and for k_endog, order large enough an exception may still be raised + error_variance = np.asfortranarray(np.eye(k_endog, dtype={{dtype}}) * (order + k_endog)**10) + + # Initialize matrices + dim2[0] = k_endog; dim2[1] = k_endog; + forward_variance = np.PyArray_ZEROS(2, dim2, {{typenum}}, FORTRAN) + backward_variance = np.PyArray_ZEROS(2, dim2, {{typenum}}, FORTRAN) + forward_factors = np.PyArray_ZEROS(2, dim2, {{typenum}}, FORTRAN) + backward_factors = np.PyArray_ZEROS(2, dim2, {{typenum}}, FORTRAN) + tmp = np.PyArray_ZEROS(2, dim2, {{typenum}}, FORTRAN) + tmp2 = np.PyArray_ZEROS(2, dim2, {{typenum}}, FORTRAN) + + dim2[0] = k_endog; dim2[1] = k_endog_order; + # \phi_{s,k}, s = 1, ..., p + # k = 1, ..., s+1 + forwards1 = np.PyArray_ZEROS(2, dim2, {{typenum}}, FORTRAN) + forwards2 = np.PyArray_ZEROS(2, dim2, {{typenum}}, FORTRAN) + # \phi_{s,k}^* + backwards1 = np.PyArray_ZEROS(2, dim2, {{typenum}}, FORTRAN) + backwards2 = np.PyArray_ZEROS(2, dim2, {{typenum}}, FORTRAN) + + dim2[0] = k_endog; dim2[1] = k_endog_order1; + autocovariances = np.PyArray_ZEROS(2, dim2, {{typenum}}, FORTRAN) + + {{prefix}}copy(&k_endog2, &error_variance[0,0], &inc, &forward_variance[0,0], &inc) # \Sigma_s + {{prefix}}copy(&k_endog2, &error_variance[0,0], &inc, &backward_variance[0,0], &inc) # \Sigma_s^*, s = 0, ..., p + {{prefix}}copy(&k_endog2, &error_variance[0,0], &inc, &autocovariances[0,0], &inc) # \Gamma_s + + # error_variance_factor = linalg.cholesky(error_variance, lower=True) + {{prefix}}copy(&k_endog2, &error_variance[0,0], &inc, &forward_factors[0,0], &inc) + {{prefix}}potrf("L", &k_endog, &forward_factors[0,0], &k_endog, &info) + {{prefix}}copy(&k_endog2, &forward_factors[0,0], &inc, &backward_factors[0,0], &inc) + + # We fill in the entries as follows: + # [1,1] + # [2,2], [2,1] + # [3,3], [3,1], [3,2] + # ... + # [p,p], [p,1], ..., [p,p-1] + # the last row, correctly ordered, is then used as the coefficients + for s in range(order): # s = 0, ..., p-1 + if s % 2 == 0: + forwards = &forwards1[0, 0] + prev_forwards = &forwards2[0, 0] + backwards = &backwards1[0, 0] + prev_backwards = &backwards2[0, 0] + else: + forwards = &forwards2[0, 0] + prev_forwards = &forwards1[0, 0] + backwards = &backwards2[0, 0] + prev_backwards = &backwards1[0, 0] + + # Create the "last" (k = s+1) matrix + # Note: this is for k = s+1. However, below we then have to fill + # in for k = 1, ..., s in order. + # P L*^{-1} = x + # x L* = P + # L*' x' = P' + # forwards[:, s*k_endog:(s+1)*k_endog] = np.dot( + # forward_factors, + # linalg.solve_triangular( + # backward_factors, partial_autocorrelations[:, s*k_endog:(s+1)*k_endog].T, + # lower=True, trans='T').T + # ) + for k in range(k_endog): + {{prefix}}copy(&k_endog, &partial_autocorrelations[k,s*k_endog], &k_endog, &tmp[0, k], &inc) + {{prefix}}trtrs("L", "T", "N", &k_endog, &k_endog, &backward_factors[0,0], &k_endog, + &tmp[0, 0], &k_endog, &info) + # {{prefix}}gemm("N", "T", &k_endog, &k_endog, &k_endog, + # &alpha, &forward_factors[0,0], &k_endog, + # &tmp[0, 0], &k_endog, + # &beta, &forwards[s*k_endog2], &k_endog) + {{prefix}}trmm("R", "L", "T", "N", &k_endog, &k_endog, + &alpha, &forward_factors[0,0], &k_endog, + &tmp[0, 0], &k_endog) + for k in range(k_endog): + {{prefix}}copy(&k_endog, &tmp[k,0], &k_endog, &forwards[s*k_endog2 + k*k_endog], &inc) + + # P' L^{-1} = x + # x L = P' + # L' x' = P + # backwards[:, s*k_endog:(s+1)*k_endog] = np.dot( + # backward_factors, + # linalg.solve_triangular( + # forward_factors, partial_autocorrelations[:, s*k_endog:(s+1)*k_endog], + # lower=True, trans='T').T + # ) + {{prefix}}copy(&k_endog2, &partial_autocorrelations[0, s*k_endog], &inc, &tmp[0, 0], &inc) + {{prefix}}trtrs("L", "T", "N", &k_endog, &k_endog, &forward_factors[0, 0], &k_endog, + &tmp[0, 0], &k_endog, &info) + # {{prefix}}gemm("N", "T", &k_endog, &k_endog, &k_endog, + # &alpha, &backward_factors[0, 0], &k_endog, + # &tmp[0, 0], &k_endog, + # &beta, &backwards[s * k_endog2], &k_endog) + {{prefix}}trmm("R", "L", "T", "N", &k_endog, &k_endog, + &alpha, &backward_factors[0,0], &k_endog, + &tmp[0, 0], &k_endog) + for k in range(k_endog): + {{prefix}}copy(&k_endog, &tmp[k,0], &k_endog, &backwards[s*k_endog2 + k*k_endog], &inc) + + # Update the variance + # Note: if s >= 1, this will be further updated in the for loop + # below + # Also, this calculation will be re-used in the forward variance + # tmp = np.dot(forwards[:, s*k_endog:(s+1)*k_endog], backward_variance) + # tmpT = np.dot(backward_variance.T, forwards[:, s*k_endog:(s+1)*k_endog].T) + {{prefix}}gemm("T", "T", &k_endog, &k_endog, &k_endog, + &alpha, &backward_variance[0, 0], &k_endog, + &forwards[s * k_endog2], &k_endog, + &beta, &tmp[0, 0], &k_endog) + # autocovariances[:, (s+1)*k_endog:(s+2)*k_endog] = tmp.copy().T + {{prefix}}copy(&k_endog2, &tmp[0, 0], &inc, &autocovariances[0, (s+1)*k_endog], &inc) + + # Create the remaining k = 1, ..., s matrices, + # only has an effect if s >= 1 + for k in range(s): + # forwards[:, k*k_endog:(k+1)*k_endog] = ( + # prev_forwards[:, k*k_endog:(k+1)*k_endog] - + # np.dot( + # forwards[:, s*k_endog:(s+1)*k_endog], + # prev_backwards[:, (s-k-1)*k_endog:(s-k)*k_endog] + # ) + # ) + {{prefix}}copy(&k_endog2, &prev_forwards[k * k_endog2], &inc, &forwards[k * k_endog2], &inc) + {{prefix}}gemm("N", "N", &k_endog, &k_endog, &k_endog, + &gamma, &forwards[s * k_endog2], &k_endog, + &prev_backwards[(s - k - 1) * k_endog2], &k_endog, + &alpha, &forwards[k * k_endog2], &k_endog) + + # backwards[:, k*k_endog:(k+1)*k_endog] = ( + # prev_backwards[:, k*k_endog:(k+1)*k_endog] - + # np.dot( + # backwards[:, s*k_endog:(s+1)*k_endog], + # prev_forwards[:, (s-k-1)*k_endog:(s-k)*k_endog] + # ) + # ) + {{prefix}}copy(&k_endog2, &prev_backwards[k * k_endog2], &inc, &backwards[k * k_endog2], &inc) + {{prefix}}gemm("N", "N", &k_endog, &k_endog, &k_endog, + &gamma, &backwards[s * k_endog2], &k_endog, + &prev_forwards[(s - k - 1) * k_endog2], &k_endog, + &alpha, &backwards[k * k_endog2], &k_endog) + + # autocovariances[:, (s+1)*k_endog:(s+2)*k_endog] += np.dot( + # autocovariances[:, (k+1)*k_endog:(k+2)*k_endog], + # prev_forwards[:, (s-k-1)*k_endog:(s-k)*k_endog].T + # ) + {{prefix}}gemm("N", "T", &k_endog, &k_endog, &k_endog, + &alpha, &autocovariances[0, (k+1)*k_endog], &k_endog, + &prev_forwards[(s - k - 1) * k_endog2], &k_endog, + &alpha, &autocovariances[0, (s+1)*k_endog], &k_endog) + + # Create forward and backwards variances + # backward_variance = ( + # backward_variance - + # np.dot( + # np.dot(backwards[:, s*k_endog:(s+1)*k_endog], forward_variance), + # backwards[:, s*k_endog:(s+1)*k_endog].T + # ) + # ) + {{prefix}}gemm("N", "N", &k_endog, &k_endog, &k_endog, + &alpha, &backwards[s * k_endog2], &k_endog, + &forward_variance[0, 0], &k_endog, + &beta, &tmp2[0, 0], &k_endog) + {{prefix}}gemm("N", "T", &k_endog, &k_endog, &k_endog, + &gamma, &tmp2[0, 0], &k_endog, + &backwards[s * k_endog2], &k_endog, + &alpha, &backward_variance[0, 0], &k_endog) + # forward_variance = ( + # forward_variance - + # np.dot(tmp, forwards[:, s*k_endog:(s+1)*k_endog].T) + # ) + # forward_variance = ( + # forward_variance - + # np.dot(tmpT.T, forwards[:, s*k_endog:(s+1)*k_endog].T) + # ) + {{prefix}}gemm("T", "T", &k_endog, &k_endog, &k_endog, + &gamma, &tmp[0, 0], &k_endog, + &forwards[s * k_endog2], &k_endog, + &alpha, &forward_variance[0, 0], &k_endog) + + # Cholesky factors + # forward_factors = linalg.cholesky(forward_variance, lower=True) + # backward_factors = linalg.cholesky(backward_variance, lower=True) + {{prefix}}copy(&k_endog2, &forward_variance[0,0], &inc, &forward_factors[0,0], &inc) + {{prefix}}potrf("L", &k_endog, &forward_factors[0,0], &k_endog, &info) + {{prefix}}copy(&k_endog2, &backward_variance[0,0], &inc, &backward_factors[0,0], &inc) + {{prefix}}potrf("L", &k_endog, &backward_factors[0,0], &k_endog, &info) + + + # If we do not want to use the transformed variance, we need to + # adjust the constrained matrices, as presented in Lemma 2.3, see above + if not transform_variance: + if order % 2 == 0: + forwards = &forwards2[0,0] + else: + forwards = &forwards1[0,0] + + # Here, we need to construct T such that: + # variance = T * initial_variance * T' + # To do that, consider the Cholesky of variance (L) and + # input_variance (M) to get: + # L L' = T M M' T' = (TM) (TM)' + # => L = T M + # => L M^{-1} = T + # initial_variance_factor = np.linalg.cholesky(initial_variance) + # L' + {{prefix}}potrf("U", &k_endog, &initial_variance[0,0], &k_endog, &info) + # transformed_variance_factor = np.linalg.cholesky(variance) + # M' + {{prefix}}copy(&k_endog2, &forward_variance[0,0], &inc, &tmp[0,0], &inc) + {{prefix}}potrf("U", &k_endog, &tmp[0,0], &k_endog, &info) + # {{prefix}}potri("L", &k_endog, &tmp[0,0], &k_endog, &info) + + # We need to zero out the lower triangle of L', because ?trtrs only + # knows that M' is upper triangular + for s in range(k_endog - 1): # column + for k in range(s+1, k_endog): # row + initial_variance[k, s] = 0 + + # Note that T is lower triangular + # L M^{-1} = T + # M' T' = L' + # transform = np.dot(initial_variance_factor, + # np.linalg.inv(transformed_variance_factor)) + {{prefix}}trtrs("U", "N", "N", &k_endog, &k_endog, &tmp[0,0], &k_endog, + &initial_variance[0, 0], &k_endog, &info) + # Now: + # initial_variance = T' + + for s in range(order): + # forwards[:, s*k_endog:(s+1)*k_endog] = ( + # np.dot( + # np.dot(transform, forwards[:, s*k_endog:(s+1)*k_endog]), + # inv_transform + # ) + # ) + # TF T^{-1} = x + # TF = x T + # (TF)' = T' x' + + # Get TF + {{prefix}}copy(&k_endog2, &forwards[s * k_endog2], &inc, &tmp2[0,0], &inc) + {{prefix}}trmm("L", "U", "T", "N", &k_endog, &k_endog, + &alpha, &initial_variance[0, 0], &k_endog, + &tmp2[0, 0], &k_endog) + for k in range(k_endog): + {{prefix}}copy(&k_endog, &tmp2[k,0], &k_endog, &tmp[0, k], &inc) + # Get x' + {{prefix}}trtrs("U", "N", "N", &k_endog, &k_endog, &initial_variance[0,0], &k_endog, + &tmp[0, 0], &k_endog, &info) + # Get x + for k in range(k_endog): + {{prefix}}copy(&k_endog, &tmp[k,0], &k_endog, &forwards[s * k_endog2 + k*k_endog], &inc) + + + if order % 2 == 0: + return forwards2, forward_variance + else: + return forwards1, forward_variance + +cpdef _{{prefix}}constrain_sv_less_than_one({{cython_type}} [::1,:] unconstrained, int order, int k_endog): + """ + Transform arbitrary matrices to matrices with singular values less than + one. + + Corresponds to Lemma 2.2 in Ansley and Kohn (1986). See + `constrain_stationary_multivariate` for more details. + """ + # Constants + cdef: + int inc = 1 + {{cython_type}} alpha = 1.0 + int k_endog2 = k_endog**2 + int info, i + # Local variables + cdef: + np.npy_intp dim2[2] + {{cython_type}} [::1, :] constrained + {{cython_type}} [::1, :] tmp + {{cython_type}} [::1, :] eye + + dim2[0] = k_endog; dim2[1] = k_endog * order; + constrained = np.PyArray_ZEROS(2, dim2, {{typenum}}, FORTRAN) + dim2[0] = k_endog; dim2[1] = k_endog; + tmp = np.PyArray_ZEROS(2, dim2, {{typenum}}, FORTRAN) + eye = np.PyArray_ZEROS(2, dim2, {{typenum}}, FORTRAN) + + eye = np.asfortranarray(np.eye(k_endog, dtype={{dtype}})) + for i in range(order): + {{prefix}}copy(&k_endog2, &eye[0, 0], &inc, &tmp[0, 0], &inc) + {{prefix}}gemm("N", "T", &k_endog, &k_endog, &k_endog, + &alpha, &unconstrained[0, i*k_endog], &k_endog, + &unconstrained[0, i*k_endog], &k_endog, + &alpha, &tmp[0, 0], &k_endog) + {{prefix}}potrf("L", &k_endog, &tmp[0, 0], &k_endog, &info) + + {{prefix}}copy(&k_endog2, &unconstrained[0, i*k_endog], &inc, &constrained[0, i*k_endog], &inc) + # constrained.append(linalg.solve_triangular(B, A, lower=lower)) + {{prefix}}trtrs("L", "N", "N", &k_endog, &k_endog, &tmp[0, 0], &k_endog, + &constrained[0, i*k_endog], &k_endog, &info) + return constrained + +{{endfor}} \ No newline at end of file diff --git a/statsmodels/tsa/statespace/api.py b/statsmodels/tsa/statespace/api.py new file mode 100644 index 0000000..9c1322c --- /dev/null +++ b/statsmodels/tsa/statespace/api.py @@ -0,0 +1,3 @@ +from .sarimax import SARIMAX +from .mlemodel import MLEModel, MLEResults +from . import tools diff --git a/statsmodels/tsa/statespace/dynamic_factor.py b/statsmodels/tsa/statespace/dynamic_factor.py new file mode 100644 index 0000000..9b07484 --- /dev/null +++ b/statsmodels/tsa/statespace/dynamic_factor.py @@ -0,0 +1,1383 @@ +""" +Dynamic factor model + +Author: Chad Fulton +License: Simplified-BSD +""" +from __future__ import division, absolute_import, print_function + +from warnings import warn +from statsmodels.compat.collections import OrderedDict + +import numpy as np +import pandas as pd +from .kalman_filter import KalmanFilter, FilterResults +from .mlemodel import MLEModel, MLEResults, MLEResultsWrapper +from .tools import ( + companion_matrix, diff, is_invertible, + constrain_stationary_univariate, unconstrain_stationary_univariate, + constrain_stationary_multivariate, unconstrain_stationary_multivariate +) +from scipy.linalg import solve_discrete_lyapunov +from statsmodels.multivariate.pca import PCA +from statsmodels.regression.linear_model import OLS +from statsmodels.tsa.vector_ar.var_model import VAR +from statsmodels.tools.tools import Bunch +from statsmodels.tools.data import _is_using_pandas +from statsmodels.tsa.tsatools import lagmat +from statsmodels.tools.decorators import cache_readonly +from statsmodels.tools.sm_exceptions import ValueWarning +import statsmodels.base.wrapper as wrap + + +class DynamicFactor(MLEModel): + r""" + Dynamic factor model + + Parameters + ---------- + endog : array_like + The observed time-series process :math:`y` + exog : array_like, optional + Array of exogenous regressors for the observation equation, shaped + nobs x k_exog. + k_factors : int + The number of unobserved factors. + factor_order : int + The order of the vector autoregression followed by the factors. + error_cov_type : {'scalar', 'diagonal', 'unstructured'}, optional + The structure of the covariance matrix of the observation error term, + where "unstructured" puts no restrictions on the matrix, "diagonal" + requires it to be any diagonal matrix (uncorrelated errors), and + "scalar" requires it to be a scalar times the identity matrix. Default + is "diagonal". + error_order : int, optional + The order of the vector autoregression followed by the observation + error component. Default is None, corresponding to white noise errors. + error_var : boolean, optional + Whether or not to model the errors jointly via a vector autoregression, + rather than as individual autoregressions. Has no effect unless + `error_order` is set. Default is False. + enforce_stationarity : boolean, optional + Whether or not to transform the AR parameters to enforce stationarity + in the autoregressive component of the model. Default is True. + **kwargs + Keyword arguments may be used to provide default values for state space + matrices or for Kalman filtering options. See `Representation`, and + `KalmanFilter` for more details. + + Attributes + ---------- + exog : array_like, optional + Array of exogenous regressors for the observation equation, shaped + nobs x k_exog. + k_factors : int + The number of unobserved factors. + factor_order : int + The order of the vector autoregression followed by the factors. + error_cov_type : {'diagonal', 'unstructured'} + The structure of the covariance matrix of the error term, where + "unstructured" puts no restrictions on the matrix and "diagonal" + requires it to be a diagonal matrix (uncorrelated errors). + error_order : int + The order of the vector autoregression followed by the observation + error component. + error_var : boolean + Whether or not to model the errors jointly via a vector autoregression, + rather than as individual autoregressions. Has no effect unless + `error_order` is set. + enforce_stationarity : boolean, optional + Whether or not to transform the AR parameters to enforce stationarity + in the autoregressive component of the model. Default is True. + + Notes + ----- + The dynamic factor model considered here is in the so-called static form, + and is specified: + + .. math:: + + y_t & = \Lambda f_t + B x_t + u_t \\ + f_t & = A_1 f_{t-1} + \dots + A_p f_{t-p} + \eta_t \\ + u_t & = C_1 u_{t-1} + \dots + C_1 f_{t-q} + \varepsilon_t + + where there are `k_endog` observed series and `k_factors` unobserved + factors. Thus :math:`y_t` is a `k_endog` x 1 vector and :math:`f_t` is a + `k_factors` x 1 vector. + + :math:`x_t` are optional exogenous vectors, shaped `k_exog` x 1. + + :math:`\eta_t` and :math:`\varepsilon_t` are white noise error terms. In + order to identify the factors, :math:`Var(\eta_t) = I`. Denote + :math:`Var(\varepsilon_t) \equiv \Sigma`. + + Options related to the unobserved factors: + + - `k_factors`: this is the dimension of the vector :math:`f_t`, above. + To exclude factors completely, set `k_factors = 0`. + - `factor_order`: this is the number of lags to include in the factor + evolution equation, and corresponds to :math:`p`, above. To have static + factors, set `factor_order = 0`. + + Options related to the observation error term :math:`u_t`: + + - `error_order`: the number of lags to include in the error evolution + equation; corresponds to :math:`q`, above. To have white noise errors, + set `error_order = 0` (this is the default). + - `error_cov_type`: this controls the form of the covariance matrix + :math:`\Sigma`. If it is "dscalar", then :math:`\Sigma = \sigma^2 I`. If + it is "diagonal", then + :math:`\Sigma = \text{diag}(\sigma_1^2, \dots, \sigma_n^2)`. If it is + "unstructured", then :math:`\Sigma` is any valid variance / covariance + matrix (i.e. symmetric and positive definite). + - `error_var`: this controls whether or not the errors evolve jointly + according to a VAR(q), or individually according to separate AR(q) + processes. In terms of the formulation above, if `error_var = False`, + then the matrices :math:C_i` are diagonal, otherwise they are general + VAR matrices. + + References + ---------- + .. [1] Lutkepohl, Helmut. 2007. + New Introduction to Multiple Time Series Analysis. + Berlin: Springer. + + """ + + def __init__(self, endog, k_factors, factor_order, exog=None, + error_order=0, error_var=False, error_cov_type='diagonal', + enforce_stationarity=True, **kwargs): + + # Model properties + self.enforce_stationarity = enforce_stationarity + + # Factor-related properties + self.k_factors = k_factors + self.factor_order = factor_order + + # Error-related properties + self.error_order = error_order + self.error_var = error_var and error_order > 0 + self.error_cov_type = error_cov_type + + # Exogenous data + self.k_exog = 0 + if exog is not None: + exog_is_using_pandas = _is_using_pandas(exog, None) + if not exog_is_using_pandas: + exog = np.asarray(exog) + + # Make sure we have 2-dimensional array + if exog.ndim == 1: + if not exog_is_using_pandas: + exog = exog[:, None] + else: + exog = pd.DataFrame(exog) + + self.k_exog = exog.shape[1] + + # Note: at some point in the future might add state regression, as in + # SARIMAX. + self.mle_regression = self.k_exog > 0 + + # We need to have an array or pandas at this point + if not _is_using_pandas(endog, None): + endog = np.asanyarray(endog, order='C') + + # Save some useful model orders, internally used + k_endog = endog.shape[1] if endog.ndim > 1 else 1 + self._factor_order = max(1, self.factor_order) * self.k_factors + self._error_order = self.error_order * k_endog + + # Calculate the number of states + k_states = self._factor_order + k_posdef = self.k_factors + if self.error_order > 0: + k_states += self._error_order + k_posdef += k_endog + + if k_states == 0: + k_states = 1 + k_posdef = 1 + + # Test for non-multivariate endog + if k_endog < 2: + raise ValueError('The dynamic factors model is only valid for' + ' multivariate time series.') + + # Test for too many factors + if self.k_factors >= k_endog: + raise ValueError('Number of factors must be less than the number' + ' of endogenous variables.') + + # Test for invalid error_cov_type + if self.error_cov_type not in ['scalar', 'diagonal', 'unstructured']: + raise ValueError('Invalid error covariance matrix type' + ' specification.') + + # By default, initialize as stationary + kwargs.setdefault('initialization', 'stationary') + + # Initialize the state space model + super(DynamicFactor, self).__init__( + endog, exog=exog, k_states=k_states, k_posdef=k_posdef, **kwargs + ) + + # Set as time-varying model if we have exog + if self.k_exog > 0: + self.ssm._time_invariant = False + + # Initialize the components + self.parameters = OrderedDict() + self._initialize_loadings() + self._initialize_exog() + self._initialize_error_cov() + self._initialize_factor_transition() + self._initialize_error_transition() + self.k_params = sum(self.parameters.values()) + + # Cache parameter vector slices + def _slice(key, offset): + length = self.parameters[key] + param_slice = np.s_[offset:offset + length] + offset += length + return param_slice, offset + + offset = 0 + self._params_loadings, offset = _slice('factor_loadings', offset) + self._params_exog, offset = _slice('exog', offset) + self._params_error_cov, offset = _slice('error_cov', offset) + self._params_factor_transition, offset = ( + _slice('factor_transition', offset)) + self._params_error_transition, offset = ( + _slice('error_transition', offset)) + + def _initialize_loadings(self): + # Initialize the parameters + self.parameters['factor_loadings'] = self.k_endog * self.k_factors + + # Setup fixed components of state space matrices + if self.error_order > 0: + start = self._factor_order + end = self._factor_order + self.k_endog + self.ssm['design', :, start:end] = np.eye(self.k_endog) + + # Setup indices of state space matrices + self._idx_loadings = np.s_['design', :, :self.k_factors] + + def _initialize_exog(self): + # Initialize the parameters + self.parameters['exog'] = self.k_exog * self.k_endog + + # If we have exog effects, then the obs intercept needs to be + # time-varying + if self.k_exog > 0: + self.ssm['obs_intercept'] = np.zeros((self.k_endog, self.nobs)) + + # Setup indices of state space matrices + self._idx_exog = np.s_['obs_intercept', :self.k_endog, :] + + def _initialize_error_cov(self): + if self.error_cov_type == 'scalar': + self._initialize_error_cov_diagonal(scalar=True) + elif self.error_cov_type == 'diagonal': + self._initialize_error_cov_diagonal(scalar=False) + elif self.error_cov_type == 'unstructured': + self._initialize_error_cov_unstructured() + + def _initialize_error_cov_diagonal(self, scalar=False): + # Initialize the parameters + self.parameters['error_cov'] = 1 if scalar else self.k_endog + + # Setup fixed components of state space matrices + + # Setup indices of state space matrices + k_endog = self.k_endog + k_factors = self.k_factors + idx = np.diag_indices(k_endog) + if self.error_order > 0: + matrix = 'state_cov' + idx = (idx[0] + k_factors, idx[1] + k_factors) + else: + matrix = 'obs_cov' + self._idx_error_cov = (matrix,) + idx + + def _initialize_error_cov_unstructured(self): + # Initialize the parameters + k_endog = self.k_endog + self.parameters['error_cov'] = int(k_endog * (k_endog + 1) / 2) + + # Setup fixed components of state space matrices + + # Setup indices of state space matrices + self._idx_lower_error_cov = np.tril_indices(self.k_endog) + if self.error_order > 0: + start = self.k_factors + end = self.k_factors + self.k_endog + self._idx_error_cov = ( + np.s_['state_cov', start:end, start:end]) + else: + self._idx_error_cov = np.s_['obs_cov', :, :] + + def _initialize_factor_transition(self): + order = self.factor_order * self.k_factors + k_factors = self.k_factors + + # Initialize the parameters + self.parameters['factor_transition'] = ( + self.factor_order * self.k_factors**2) + + # Setup fixed components of state space matrices + # VAR(p) for factor transition + if self.k_factors > 0: + if self.factor_order > 0: + self.ssm['transition', k_factors:order, :order - k_factors] = ( + np.eye(order - k_factors)) + + self.ssm['selection', :k_factors, :k_factors] = np.eye(k_factors) + # Identification requires constraining the state covariance to an + # identity matrix + self.ssm['state_cov', :k_factors, :k_factors] = np.eye(k_factors) + + # Setup indices of state space matrices + self._idx_factor_transition = np.s_['transition', :k_factors, :order] + + def _initialize_error_transition(self): + # Initialize the appropriate situation + if self.error_order == 0: + self._initialize_error_transition_white_noise() + else: + # Generic setup fixed components of state space matrices + # VAR(q) for error transition + # (in the individual AR case, we still have the VAR(q) companion + # matrix structure, but force the coefficient matrices to be + # diagonal) + k_endog = self.k_endog + k_factors = self.k_factors + _factor_order = self._factor_order + _error_order = self._error_order + _slice = np.s_['selection', + _factor_order:_factor_order + k_endog, + k_factors:k_factors + k_endog] + self.ssm[_slice] = np.eye(k_endog) + _slice = np.s_[ + 'transition', + _factor_order + k_endog:_factor_order + _error_order, + _factor_order:_factor_order + _error_order - k_endog] + self.ssm[_slice] = np.eye(_error_order - k_endog) + + # Now specialized setups + if self.error_var: + self._initialize_error_transition_var() + else: + self._initialize_error_transition_individual() + + def _initialize_error_transition_white_noise(self): + # Initialize the parameters + self.parameters['error_transition'] = 0 + + # No fixed components of state space matrices + + # Setup indices of state space matrices (just an empty slice) + self._idx_error_transition = np.s_['transition', 0:0, 0:0] + + def _initialize_error_transition_var(self): + k_endog = self.k_endog + _factor_order = self._factor_order + _error_order = self._error_order + + # Initialize the parameters + self.parameters['error_transition'] = _error_order * k_endog + + # Fixed components already setup above + + # Setup indices of state space matrices + # Here we want to set all of the elements of the coefficient matrices, + # the same as in a VAR specification + self._idx_error_transition = np.s_[ + 'transition', + _factor_order:_factor_order + k_endog, + _factor_order:_factor_order + _error_order] + + def _initialize_error_transition_individual(self): + k_endog = self.k_endog + _factor_order = self._factor_order + _error_order = self._error_order + + # Initialize the parameters + self.parameters['error_transition'] = _error_order + + # Fixed components already setup above + + # Setup indices of state space matrices + # Here we want to set only the diagonal elements of the coefficient + # matrices, and we want to set them in order by equation, not by + # matrix (i.e. set the first element of the first matrix's diagonal, + # then set the first element of the second matrix's diagonal, then...) + + # The basic setup is a tiled list of diagonal indices, one for each + # coefficient matrix + idx = np.tile(np.diag_indices(k_endog), self.error_order) + # Now we need to shift the rows down to the correct location + row_shift = self._factor_order + # And we need to shift the columns in an increasing way + col_inc = self._factor_order + np.repeat( + [i * k_endog for i in range(self.error_order)], k_endog) + idx[0] += row_shift + idx[1] += col_inc + + # Make a copy (without the row shift) so that we can easily get the + # diagonal parameters back out of a generic coefficients matrix array + idx_diag = idx.copy() + idx_diag[0] -= row_shift + idx_diag[1] -= self._factor_order + idx_diag = idx_diag[:, np.lexsort((idx_diag[1], idx_diag[0]))] + self._idx_error_diag = (idx_diag[0], idx_diag[1]) + + # Finally, we want to fill the entries in in the correct order, which + # is to say we want to fill in lexicographically, first by row then by + # column + idx = idx[:, np.lexsort((idx[1], idx[0]))] + self._idx_error_transition = np.s_['transition', idx[0], idx[1]] + + def filter(self, params, **kwargs): + kwargs.setdefault('results_class', DynamicFactorResults) + kwargs.setdefault('results_wrapper_class', DynamicFactorResultsWrapper) + return super(DynamicFactor, self).filter(params, **kwargs) + + def smooth(self, params, **kwargs): + kwargs.setdefault('results_class', DynamicFactorResults) + kwargs.setdefault('results_wrapper_class', DynamicFactorResultsWrapper) + return super(DynamicFactor, self).smooth(params, **kwargs) + + @property + def start_params(self): + params = np.zeros(self.k_params, dtype=np.float64) + + endog = self.endog.copy() + + # 1. Factor loadings (estimated via PCA) + if self.k_factors > 0: + # Use principal components + OLS as starting values + res_pca = PCA(endog, ncomp=self.k_factors) + mod_ols = OLS(endog, res_pca.factors) + res_ols = mod_ols.fit() + + # Using OLS params for the loadings tends to gives higher starting + # log-likelihood. + params[self._params_loadings] = res_ols.params.T.ravel() + # params[self._params_loadings] = res_pca.loadings.ravel() + + # However, using res_ols.resid tends to causes non-invertible + # starting VAR coefficients for error VARs + # endog = res_ols.resid + endog = endog - np.dot(res_pca.factors, res_pca.loadings.T) + + # 2. Exog (OLS on residuals) + if self.k_exog > 0: + mod_ols = OLS(endog, exog=self.exog) + res_ols = mod_ols.fit() + # In the form: beta.x1.y1, beta.x2.y1, beta.x1.y2, ... + params[self._params_exog] = res_ols.params.T.ravel() + endog = res_ols.resid + + # 3. Factors (VAR on res_pca.factors) + stationary = True + if self.k_factors > 1 and self.factor_order > 0: + # 3a. VAR transition (OLS on factors estimated via PCA) + mod_factors = VAR(res_pca.factors) + res_factors = mod_factors.fit(maxlags=self.factor_order, ic=None, + trend='nc') + # Save the parameters + params[self._params_factor_transition] = ( + res_factors.params.T.ravel()) + + # Test for stationarity + coefficient_matrices = ( + params[self._params_factor_transition].reshape( + self.k_factors * self.factor_order, self.k_factors + ).T + ).reshape(self.k_factors, self.k_factors, self.factor_order).T + + stationary = is_invertible([1] + list(-coefficient_matrices)) + elif self.k_factors > 0 and self.factor_order > 0: + # 3b. AR transition + Y = res_pca.factors[self.factor_order:] + X = lagmat(res_pca.factors, self.factor_order, trim='both') + params_ar = np.linalg.pinv(X).dot(Y) + stationary = is_invertible(np.r_[1, -params_ar.squeeze()]) + params[self._params_factor_transition] = params_ar[:, 0] + + # Check for stationarity + if not stationary and self.enforce_stationarity: + raise ValueError('Non-stationary starting autoregressive' + ' parameters found with `enforce_stationarity`' + ' set to True.') + + # 4. Errors + if self.error_order == 0: + error_params = [] + if self.error_cov_type == 'scalar': + params[self._params_error_cov] = endog.var(axis=0).mean() + elif self.error_cov_type == 'diagonal': + params[self._params_error_cov] = endog.var(axis=0) + elif self.error_cov_type == 'unstructured': + cov_factor = np.diag(endog.std(axis=0)) + params[self._params_error_cov] = ( + cov_factor[self._idx_lower_error_cov].ravel()) + else: + mod_errors = VAR(endog) + res_errors = mod_errors.fit(maxlags=self.error_order, ic=None, + trend='nc') + + # Test for stationarity + coefficient_matrices = ( + np.array(res_errors.params.T).ravel().reshape( + self.k_endog * self.error_order, self.k_endog + ).T + ).reshape(self.k_endog, self.k_endog, self.error_order).T + + stationary = is_invertible([1] + list(-coefficient_matrices)) + if not stationary and self.enforce_stationarity: + raise ValueError('Non-stationary starting error autoregressive' + ' parameters found with' + ' `enforce_stationarity` set to True.') + + # Get the error autoregressive parameters + if self.error_var: + params[self._params_error_transition] = ( + np.array(res_errors.params.T).ravel()) + else: + # In the case of individual autoregressions, extract just the + # diagonal elements + params[self._params_error_transition] = ( + res_errors.params.T[self._idx_error_diag]) + + # Get the error covariance parameters + if self.error_cov_type == 'scalar': + params[self._params_error_cov] = ( + res_errors.sigma_u.diagonal().mean()) + elif self.error_cov_type == 'diagonal': + params[self._params_error_cov] = res_errors.sigma_u.diagonal() + elif self.error_cov_type == 'unstructured': + try: + cov_factor = np.linalg.cholesky(res_errors.sigma_u) + except np.linalg.LinAlgError: + cov_factor = np.eye(res_errors.sigma_u.shape[0]) * ( + res_errors.sigma_u.diagonal().mean()**0.5) + cov_factor = np.eye(res_errors.sigma_u.shape[0]) * ( + res_errors.sigma_u.diagonal().mean()**0.5) + params[self._params_error_cov] = ( + cov_factor[self._idx_lower_error_cov].ravel()) + + return params + + @property + def param_names(self): + param_names = [] + endog_names = self.endog_names + + # 1. Factor loadings + param_names += [ + 'loading.f%d.%s' % (j+1, endog_names[i]) + for i in range(self.k_endog) + for j in range(self.k_factors) + ] + + # 2. Exog + # Recall these are in the form: beta.x1.y1, beta.x2.y1, beta.x1.y2, ... + param_names += [ + 'beta.%s.%s' % (self.exog_names[j], endog_names[i]) + for i in range(self.k_endog) + for j in range(self.k_exog) + ] + + # 3. Error covariances + if self.error_cov_type == 'scalar': + param_names += ['sigma2'] + elif self.error_cov_type == 'diagonal': + param_names += [ + 'sigma2.%s' % endog_names[i] + for i in range(self.k_endog) + ] + elif self.error_cov_type == 'unstructured': + param_names += [ + ('sqrt.var.%s' % endog_names[i] if i == j else + 'sqrt.cov.%s.%s' % (endog_names[j], endog_names[i])) + for i in range(self.k_endog) + for j in range(i+1) + ] + + # 4. Factor transition VAR + param_names += [ + 'L%d.f%d.f%d' % (i+1, k+1, j+1) + for j in range(self.k_factors) + for i in range(self.factor_order) + for k in range(self.k_factors) + ] + + # 5. Error transition VAR + if self.error_var: + param_names += [ + 'L%d.e(%s).e(%s)' % (i+1, endog_names[k], endog_names[j]) + for j in range(self.k_endog) + for i in range(self.error_order) + for k in range(self.k_endog) + ] + else: + param_names += [ + 'L%d.e(%s).e(%s)' % (i+1, endog_names[j], endog_names[j]) + for j in range(self.k_endog) + for i in range(self.error_order) + ] + + return param_names + + def transform_params(self, unconstrained): + """ + Transform unconstrained parameters used by the optimizer to constrained + parameters used in likelihood evaluation + + Parameters + ---------- + unconstrained : array_like + Array of unconstrained parameters used by the optimizer, to be + transformed. + + Returns + ------- + constrained : array_like + Array of constrained parameters which may be used in likelihood + evalation. + + Notes + ----- + Constrains the factor transition to be stationary and variances to be + positive. + """ + unconstrained = np.array(unconstrained, ndmin=1) + dtype = unconstrained.dtype + constrained = np.zeros(unconstrained.shape, dtype=dtype) + + # 1. Factor loadings + # The factor loadings do not need to be adjusted + constrained[self._params_loadings] = ( + unconstrained[self._params_loadings]) + + # 2. Exog + # The regression coefficients do not need to be adjusted + constrained[self._params_exog] = ( + unconstrained[self._params_exog]) + + # 3. Error covariances + # If we have variances, force them to be positive + if self.error_cov_type in ['scalar', 'diagonal']: + constrained[self._params_error_cov] = ( + unconstrained[self._params_error_cov]**2) + # Otherwise, nothing needs to be done + elif self.error_cov_type == 'unstructured': + constrained[self._params_error_cov] = ( + unconstrained[self._params_error_cov]) + + # 4. Factor transition VAR + # VAR transition: optionally force to be stationary + if self.enforce_stationarity and self.factor_order > 0: + # Transform the parameters + unconstrained_matrices = ( + unconstrained[self._params_factor_transition].reshape( + self.k_factors, self._factor_order)) + # This is always an identity matrix, but because the transform + # done prior to update (where the ssm representation matrices + # change), it may be complex + cov = self.ssm[ + 'state_cov', :self.k_factors, :self.k_factors].real + coefficient_matrices, variance = ( + constrain_stationary_multivariate(unconstrained_matrices, cov)) + constrained[self._params_factor_transition] = ( + coefficient_matrices.ravel()) + else: + constrained[self._params_factor_transition] = ( + unconstrained[self._params_factor_transition]) + + # 5. Error transition VAR + # VAR transition: optionally force to be stationary + if self.enforce_stationarity and self.error_order > 0: + + # Joint VAR specification + if self.error_var: + unconstrained_matrices = ( + unconstrained[self._params_error_transition].reshape( + self.k_endog, self._error_order)) + start = self.k_factors + end = self.k_factors + self.k_endog + cov = self.ssm['state_cov', start:end, start:end].real + coefficient_matrices, variance = ( + constrain_stationary_multivariate( + unconstrained_matrices, cov)) + constrained[self._params_error_transition] = ( + coefficient_matrices.ravel()) + # Separate AR specifications + else: + coefficients = ( + unconstrained[self._params_error_transition].copy()) + for i in range(self.k_endog): + start = i * self.error_order + end = (i + 1) * self.error_order + coefficients[start:end] = constrain_stationary_univariate( + coefficients[start:end]) + constrained[self._params_error_transition] = coefficients + + else: + constrained[self._params_error_transition] = ( + unconstrained[self._params_error_transition]) + + return constrained + + def untransform_params(self, constrained): + """ + Transform constrained parameters used in likelihood evaluation + to unconstrained parameters used by the optimizer. + + Parameters + ---------- + constrained : array_like + Array of constrained parameters used in likelihood evalution, to be + transformed. + + Returns + ------- + unconstrained : array_like + Array of unconstrained parameters used by the optimizer. + """ + constrained = np.array(constrained, ndmin=1) + dtype=constrained.dtype + unconstrained = np.zeros(constrained.shape, dtype=dtype) + + # 1. Factor loadings + # The factor loadings do not need to be adjusted + unconstrained[self._params_loadings] = ( + constrained[self._params_loadings]) + + # 2. Exog + # The regression coefficients do not need to be adjusted + unconstrained[self._params_exog] = ( + constrained[self._params_exog]) + + # 3. Error covariances + # If we have variances, force them to be positive + if self.error_cov_type in ['scalar', 'diagonal']: + unconstrained[self._params_error_cov] = ( + constrained[self._params_error_cov]**0.5) + # Otherwise, nothing needs to be done + elif self.error_cov_type == 'unstructured': + unconstrained[self._params_error_cov] = ( + constrained[self._params_error_cov]) + + # 3. Factor transition VAR + # VAR transition: optionally force to be stationary + if self.enforce_stationarity and self.factor_order > 0: + # Transform the parameters + constrained_matrices = ( + constrained[self._params_factor_transition].reshape( + self.k_factors, self._factor_order)) + cov = self.ssm[ + 'state_cov', :self.k_factors, :self.k_factors].real + coefficient_matrices, variance = ( + unconstrain_stationary_multivariate( + constrained_matrices, cov)) + unconstrained[self._params_factor_transition] = ( + coefficient_matrices.ravel()) + else: + unconstrained[self._params_factor_transition] = ( + constrained[self._params_factor_transition]) + + # 5. Error transition VAR + # VAR transition: optionally force to be stationary + if self.enforce_stationarity and self.error_order > 0: + + # Joint VAR specification + if self.error_var: + constrained_matrices = ( + constrained[self._params_error_transition].reshape( + self.k_endog, self._error_order)) + start = self.k_factors + end = self.k_factors + self.k_endog + cov = self.ssm['state_cov', start:end, start:end].real + coefficient_matrices, variance = ( + unconstrain_stationary_multivariate( + constrained_matrices, cov)) + unconstrained[self._params_error_transition] = ( + coefficient_matrices.ravel()) + # Separate AR specifications + else: + coefficients = ( + constrained[self._params_error_transition].copy()) + for i in range(self.k_endog): + start = i * self.error_order + end = (i + 1) * self.error_order + coefficients[start:end] = ( + unconstrain_stationary_univariate( + coefficients[start:end])) + unconstrained[self._params_error_transition] = coefficients + + else: + unconstrained[self._params_error_transition] = ( + constrained[self._params_error_transition]) + + return unconstrained + + def update(self, params, transformed=True, complex_step=False): + """ + Update the parameters of the model + + Updates the representation matrices to fill in the new parameter + values. + + Parameters + ---------- + params : array_like + Array of new parameters. + transformed : boolean, optional + Whether or not `params` is already transformed. If set to False, + `transform_params` is called. Default is True.. + + Returns + ------- + params : array_like + Array of parameters. + + Notes + ----- + Let `n = k_endog`, `m = k_factors`, and `p = factor_order`. Then the + `params` vector has length + :math:`[n \times m] + [n] + [m^2 \times p]`. + It is expanded in the following way: + + - The first :math:`n \times m` parameters fill out the factor loading + matrix, starting from the [0,0] entry and then proceeding along rows. + These parameters are not modified in `transform_params`. + - The next :math:`n` parameters provide variances for the error_cov + errors in the observation equation. They fill in the diagonal of the + observation covariance matrix, and are constrained to be positive by + `transofrm_params`. + - The next :math:`m^2 \times p` parameters are used to create the `p` + coefficient matrices for the vector autoregression describing the + factor transition. They are transformed in `transform_params` to + enforce stationarity of the VAR(p). They are placed so as to make + the transition matrix a companion matrix for the VAR. In particular, + we assume that the first :math:`m^2` parameters fill the first + coefficient matrix (starting at [0,0] and filling along rows), the + second :math:`m^2` parameters fill the second matrix, etc. + + """ + params = super(DynamicFactor, self).update( + params, transformed=transformed, complex_step=complex_step) + + # 1. Factor loadings + # Update the design / factor loading matrix + self.ssm[self._idx_loadings] = ( + params[self._params_loadings].reshape(self.k_endog, self.k_factors) + ) + + # 2. Exog + if self.k_exog > 0: + exog_params = params[self._params_exog].reshape( + self.k_endog, self.k_exog).T + self.ssm[self._idx_exog] = np.dot(self.exog, exog_params).T + + # 3. Error covariances + if self.error_cov_type in ['scalar', 'diagonal']: + self.ssm[self._idx_error_cov] = ( + params[self._params_error_cov]) + elif self.error_cov_type == 'unstructured': + error_cov_lower = np.zeros((self.k_endog, self.k_endog), + dtype=params.dtype) + error_cov_lower[self._idx_lower_error_cov] = ( + params[self._params_error_cov]) + self.ssm[self._idx_error_cov] = ( + np.dot(error_cov_lower, error_cov_lower.T)) + + # 4. Factor transition VAR + self.ssm[self._idx_factor_transition] = ( + params[self._params_factor_transition].reshape( + self.k_factors, self.factor_order * self.k_factors)) + + # 5. Error transition VAR + if self.error_var: + self.ssm[self._idx_error_transition] = ( + params[self._params_error_transition].reshape( + self.k_endog, self._error_order)) + else: + self.ssm[self._idx_error_transition] = ( + params[self._params_error_transition]) + + +class DynamicFactorResults(MLEResults): + """ + Class to hold results from fitting an DynamicFactor model. + + Parameters + ---------- + model : DynamicFactor instance + The fitted model instance + + Attributes + ---------- + specification : dictionary + Dictionary including all attributes from the DynamicFactor model + instance. + coefficient_matrices_var : array + Array containing autoregressive lag polynomial coefficient matrices, + ordered from lowest degree to highest. + + See Also + -------- + statsmodels.tsa.statespace.kalman_filter.FilterResults + statsmodels.tsa.statespace.mlemodel.MLEResults + """ + def __init__(self, model, params, filter_results, cov_type='opg', + **kwargs): + super(DynamicFactorResults, self).__init__(model, params, + filter_results, cov_type, + **kwargs) + + self.df_resid = np.inf # attribute required for wald tests + + self.specification = Bunch(**{ + # Model properties + 'k_endog' : self.model.k_endog, + 'enforce_stationarity': self.model.enforce_stationarity, + + # Factor-related properties + 'k_factors': self.model.k_factors, + 'factor_order': self.model.factor_order, + + # Error-related properties + 'error_order': self.model.error_order, + 'error_var': self.model.error_var, + 'error_cov_type': self.model.error_cov_type, + + # Other properties + 'k_exog': self.model.k_exog + }) + + # Polynomials / coefficient matrices + self.coefficient_matrices_var = None + if self.model.factor_order > 0: + ar_params = ( + np.array(self.params[self.model._params_factor_transition])) + k_factors = self.model.k_factors + factor_order = self.model.factor_order + self.coefficient_matrices_var = ( + ar_params.reshape(k_factors * factor_order, k_factors).T + ).reshape(k_factors, k_factors, factor_order).T + + self.coefficient_matrices_error = None + if self.model.error_order > 0: + ar_params = ( + np.array(self.params[self.model._params_error_transition])) + k_endog = self.model.k_endog + error_order = self.model.error_order + if self.model.error_var: + self.coefficient_matrices_error = ( + ar_params.reshape(k_endog * error_order, k_endog).T + ).reshape(k_endog, k_endog, error_order).T + else: + mat = np.zeros((k_endog, k_endog * error_order)) + mat[self.model._idx_error_diag] = ar_params + self.coefficient_matrices_error = ( + mat.T.reshape(error_order, k_endog, k_endog)) + + @property + def factors(self): + """ + Estimates of unobserved factors + Returns + ------- + out: Bunch + Has the following attributes: + + - `filtered`: a time series array with the filtered estimate of + the component + - `filtered_cov`: a time series array with the filtered estimate of + the variance/covariance of the component + - `smoothed`: a time series array with the smoothed estimate of + the component + - `smoothed_cov`: a time series array with the smoothed estimate of + the variance/covariance of the component + - `offset`: an integer giving the offset in the state vector where + this component begins + """ + # If present, level is always the first component of the state vector + out = None + spec = self.specification + if spec.k_factors > 0: + offset = 0 + end = spec.k_factors + res = self.filter_results + out = Bunch( + filtered=res.filtered_state[offset:end], + filtered_cov=res.filtered_state_cov[offset:end, offset:end], + smoothed=None, smoothed_cov=None, + offset=offset) + if self.smoothed_state is not None: + out.smoothed = self.smoothed_state[offset:end] + if self.smoothed_state_cov is not None: + out.smoothed_cov = ( + self.smoothed_state_cov[offset:end, offset:end]) + return out + + @cache_readonly + def coefficients_of_determination(self): + """ + Coefficients of determination (:math:`R^2`) from regressions of + individual estimated factors on endogenous variables. + + Returns + ------- + coefficients_of_determination : array + A `k_endog` x `k_factors` array, where + `coefficients_of_determination[i, j]` represents the :math:`R^2` + value from a regression of factor `j` and a constant on endogenous + variable `i`. + + Notes + ----- + Although it can be difficult to interpret the estimated factor loadings + and factors, it is often helpful to use the cofficients of + determination from univariate regressions to assess the importance of + each factor in explaining the variation in each endogenous variable. + + In models with many variables and factors, this can sometimes lend + interpretation to the factors (for example sometimes one factor will + load primarily on real variables and another on nominal variables). + + See Also + -------- + plot_coefficients_of_determination + + """ + from statsmodels.tools import add_constant + spec = self.specification + coefficients = np.zeros((spec.k_endog, spec.k_factors)) + which = 'filtered' if self.smoothed_state is None else 'smoothed' + + for i in range(spec.k_factors): + exog = add_constant(self.factors[which][i]) + for j in range(spec.k_endog): + endog = self.filter_results.endog[j] + coefficients[j, i] = OLS(endog, exog).fit().rsquared + + return coefficients + + def plot_coefficients_of_determination(self, endog_labels=None, + fig=None, figsize=None): + """ + Plot the coefficients of determination + + Parameters + ---------- + endog_labels : boolean, optional + Whether or not to label the endogenous variables along the x-axis + of the plots. Default is to include labels if there are 5 or fewer + endogenous variables. + fig : Matplotlib Figure instance, optional + If given, subplots are created in this figure instead of in a new + figure. Note that the grid will be created in the provided + figure using `fig.add_subplot()`. + figsize : tuple, optional + If a figure is created, this argument allows specifying a size. + The tuple is (width, height). + + Notes + ----- + + Produces a `k_factors` x 1 plot grid. The `i`th plot shows a bar plot + of the coefficients of determination associated with factor `i`. The + endogenous variables are arranged along the x-axis according to their + position in the `endog` array. + + See Also + -------- + coefficients_of_determination + + """ + from statsmodels.graphics.utils import _import_mpl, create_mpl_fig + _import_mpl() + fig = create_mpl_fig(fig, figsize) + + spec = self.specification + + # Should we label endogenous variables? + if endog_labels is None: + endog_labels = spec.k_endog <= 5 + + # Plot the coefficients of determination + coefficients_of_determination = self.coefficients_of_determination + plot_idx = 1 + locations = np.arange(spec.k_endog) + for coeffs in coefficients_of_determination.T: + # Create the new axis + ax = fig.add_subplot(spec.k_factors, 1, plot_idx) + ax.set_ylim((0,1)) + ax.set(title='Factor %i' % plot_idx, ylabel=r'$R^2$') + bars = ax.bar(locations, coeffs) + + if endog_labels: + width = bars[0].get_width() + ax.xaxis.set_ticks(locations + width / 2) + ax.xaxis.set_ticklabels(self.model.endog_names) + else: + ax.set(xlabel='Endogenous variables') + ax.xaxis.set_ticks([]) + + plot_idx += 1 + + return fig + + def get_prediction(self, start=None, end=None, dynamic=False, exog=None, + **kwargs): + """ + In-sample prediction and out-of-sample forecasting + + Parameters + ---------- + start : int, str, or datetime, optional + Zero-indexed observation number at which to start forecasting, ie., + the first forecast is start. Can also be a date string to + parse or a datetime type. Default is the the zeroth observation. + end : int, str, or datetime, optional + Zero-indexed observation number at which to end forecasting, ie., + the first forecast is start. Can also be a date string to + parse or a datetime type. However, if the dates index does not + have a fixed frequency, end must be an integer index if you + want out of sample prediction. Default is the last observation in + the sample. + exog : array_like, optional + If the model includes exogenous regressors, you must provide + exactly enough out-of-sample values for the exogenous variables if + end is beyond the last observation in the sample. + dynamic : boolean, int, str, or datetime, optional + Integer offset relative to `start` at which to begin dynamic + prediction. Can also be an absolute date string to parse or a + datetime type (these are not interpreted as offsets). + Prior to this observation, true endogenous values will be used for + prediction; starting with this observation and continuing through + the end of prediction, forecasted endogenous values will be used + instead. + **kwargs + Additional arguments may required for forecasting beyond the end + of the sample. See `FilterResults.predict` for more details. + + Returns + ------- + forecast : array + Array of out of sample forecasts. + """ + if start is None: + start = 0 + + # Handle end (e.g. date) + _start = self.model._get_predict_start(start) + _end, _out_of_sample = self.model._get_predict_end(end) + + # Handle exogenous parameters + if _out_of_sample and self.model.k_exog > 0: + # Create a new faux VARMAX model for the extended dataset + nobs = self.model.data.orig_endog.shape[0] + _out_of_sample + endog = np.zeros((nobs, self.model.k_endog)) + + if self.model.k_exog > 0: + if exog is None: + raise ValueError('Out-of-sample forecasting in a model' + ' with a regression component requires' + ' additional exogenous values via the' + ' `exog` argument.') + exog = np.array(exog) + required_exog_shape = (_out_of_sample, self.model.k_exog) + if not exog.shape == required_exog_shape: + raise ValueError('Provided exogenous values are not of the' + ' appropriate shape. Required %s, got %s.' + % (str(required_exog_shape), + str(exog.shape))) + exog = np.c_[self.model.data.orig_exog.T, exog.T].T + + # TODO replace with init_kwds or specification or similar + model = DynamicFactor( + endog, + k_factors=self.model.k_factors, + factor_order=self.model.factor_order, + exog=exog, + error_order=self.model.error_order, + error_var=self.model.error_var, + error_cov_type=self.model.error_cov_type, + enforce_stationarity=self.model.enforce_stationarity + ) + model.update(self.params) + + # Set the kwargs with the update time-varying state space + # representation matrices + for name in self.filter_results.shapes.keys(): + if name == 'obs': + continue + mat = getattr(model.ssm, name) + if mat.shape[-1] > 1: + if len(mat.shape) == 2: + kwargs[name] = mat[:, -_out_of_sample:] + else: + kwargs[name] = mat[:, :, -_out_of_sample:] + elif self.model.k_exog == 0 and exog is not None: + warn('Exogenous array provided to predict, but additional data not' + ' required. `exog` argument ignored.', ValueWarning) + + return super(DynamicFactorResults, self).get_prediction( + start=start, end=end, dynamic=dynamic, exog=exog, **kwargs + ) + + def summary(self, alpha=.05, start=None, separate_params=True): + from statsmodels.iolib.summary import summary_params + spec = self.specification + + # Create the model name + model_name = [] + if spec.k_factors > 0: + if spec.factor_order > 0: + model_type = ('DynamicFactor(factors=%d, order=%d)' % + (spec.k_factors, spec.factor_order)) + else: + model_type = 'StaticFactor(factors=%d)' % spec.k_factors + + model_name.append(model_type) + if spec.k_exog > 0: + model_name.append('%d regressors' % spec.k_exog) + else: + model_name.append('SUR(%d regressors)' % spec.k_exog) + + if spec.error_order > 0: + error_type = 'VAR' if spec.error_var else 'AR' + model_name.append('%s(%d) errors' % (error_type, spec.error_order)) + + summary = super(DynamicFactorResults, self).summary( + alpha=alpha, start=start, model_name=model_name, + display_params=not separate_params + ) + + if separate_params: + indices = np.arange(len(self.params)) + + def make_table(self, mask, title, strip_end=True): + res = (self, self.params[mask], self.bse[mask], + self.zvalues[mask], self.pvalues[mask], + self.conf_int(alpha)[mask]) + + param_names = [ + '.'.join(name.split('.')[:-1]) if strip_end else name + for name in + np.array(self.data.param_names)[mask].tolist() + ] + + return summary_params(res, yname=None, xname=param_names, + alpha=alpha, use_t=False, title=title) + + k_endog = self.model.k_endog + k_exog = self.model.k_exog + k_factors = self.model.k_factors + factor_order = self.model.factor_order + _factor_order = self.model._factor_order + _error_order = self.model._error_order + + # Add parameter tables for each endogenous variable + loading_indices = indices[self.model._params_loadings] + loading_masks = [] + exog_indices = indices[self.model._params_exog] + exog_masks = [] + for i in range(k_endog): + offset = 0 + + # 1. Factor loadings + # Recall these are in the form: + # 'loading.f1.y1', 'loading.f2.y1', 'loading.f1.y2', ... + + loading_mask = ( + loading_indices[i * k_factors:(i + 1) * k_factors]) + loading_masks.append(loading_mask) + + # 2. Exog + # Recall these are in the form: + # beta.x1.y1, beta.x2.y1, beta.x1.y2, ... + exog_mask = exog_indices[i * k_exog:(i + 1) * k_exog] + exog_masks.append(exog_mask) + + # Create the table + mask = np.concatenate([loading_mask, exog_mask]) + title = "Results for equation %s" % self.model.endog_names[i] + table = make_table(self, mask, title) + summary.tables.append(table) + + # Add parameter tables for each factor + factor_indices = indices[self.model._params_factor_transition] + factor_masks = [] + if factor_order > 0: + for i in range(k_factors): + start = i * _factor_order + factor_mask = factor_indices[start: start + _factor_order] + factor_masks.append(factor_mask) + + # Create the table + title = "Results for factor equation f%d" % (i+1) + table = make_table(self, factor_mask, title) + summary.tables.append(table) + + # Add parameter tables for error transitions + error_masks = [] + if spec.error_order > 0: + error_indices = indices[self.model._params_error_transition] + for i in range(k_endog): + if spec.error_var: + start = i * _error_order + end = (i + 1) * _error_order + else: + start = i * spec.error_order + end = (i + 1) * spec.error_order + + error_mask = error_indices[start:end] + error_masks.append(error_mask) + + # Create the table + title = ("Results for error equation e(%s)" % + self.model.endog_names[i]) + table = make_table(self, error_mask, title) + summary.tables.append(table) + + # Error covariance terms + error_cov_mask = indices[self.model._params_error_cov] + table = make_table(self, error_cov_mask, + "Error covariance matrix", strip_end=False) + summary.tables.append(table) + + # Add a table for all other parameters + masks = [] + for m in (loading_masks, exog_masks, factor_masks, + error_masks, [error_cov_mask]): + m = np.array(m).flatten() + if len(m) > 0: + masks.append(m) + masks = np.concatenate(masks) + inverse_mask = np.array(list(set(indices).difference(set(masks)))) + if len(inverse_mask) > 0: + table = make_table(self, inverse_mask, "Other parameters", + strip_end=False) + summary.tables.append(table) + + return summary + summary.__doc__ = MLEResults.summary.__doc__ + + +class DynamicFactorResultsWrapper(MLEResultsWrapper): + _attrs = {} + _wrap_attrs = wrap.union_dicts(MLEResultsWrapper._wrap_attrs, + _attrs) + _methods = {} + _wrap_methods = wrap.union_dicts(MLEResultsWrapper._wrap_methods, + _methods) +wrap.populate_wrapper(DynamicFactorResultsWrapper, DynamicFactorResults) diff --git a/statsmodels/tsa/statespace/kalman_filter.py b/statsmodels/tsa/statespace/kalman_filter.py new file mode 100644 index 0000000..60b91a5 --- /dev/null +++ b/statsmodels/tsa/statespace/kalman_filter.py @@ -0,0 +1,1757 @@ +""" +State Space Representation and Kalman Filter + +Author: Chad Fulton +License: Simplified-BSD +""" +from __future__ import division, absolute_import, print_function + +from warnings import warn + +import numpy as np +from .representation import OptionWrapper, Representation, FrozenRepresentation +from .tools import ( + prefix_kalman_filter_map, validate_vector_shape, validate_matrix_shape +) +from statsmodels.tools.sm_exceptions import ValueWarning + +# Define constants +FILTER_CONVENTIONAL = 0x01 # Durbin and Koopman (2012), Chapter 4 + +INVERT_UNIVARIATE = 0x01 +SOLVE_LU = 0x02 +INVERT_LU = 0x04 +SOLVE_CHOLESKY = 0x08 +INVERT_CHOLESKY = 0x10 + +STABILITY_FORCE_SYMMETRY = 0x01 + +MEMORY_STORE_ALL = 0 +MEMORY_NO_FORECAST = 0x01 +MEMORY_NO_PREDICTED = 0x02 +MEMORY_NO_FILTERED = 0x04 +MEMORY_NO_LIKELIHOOD = 0x08 +MEMORY_CONSERVE = ( + MEMORY_NO_FORECAST | MEMORY_NO_PREDICTED | MEMORY_NO_FILTERED | + MEMORY_NO_LIKELIHOOD +) + + +class KalmanFilter(Representation): + r""" + State space representation of a time series process, with Kalman filter + + Parameters + ---------- + k_endog : array_like or integer + The observed time-series process :math:`y` if array like or the + number of variables in the process if an integer. + k_states : int + The dimension of the unobserved state process. + k_posdef : int, optional + The dimension of a guaranteed positive definite covariance matrix + describing the shocks in the measurement equation. Must be less than + or equal to `k_states`. Default is `k_states`. + loglikelihood_burn : int, optional + The number of initial periods during which the loglikelihood is not + recorded. Default is 0. + tolerance : float, optional + The tolerance at which the Kalman filter determines convergence to + steady-state. Default is 1e-19. + results_class : class, optional + Default results class to use to save filtering output. Default is + `FilterResults`. If specified, class must extend from `FilterResults`. + **kwargs + Keyword arguments may be used to provide values for the filter, + inversion, and stability methods. See `set_filter_method`, + `set_inversion_method`, and `set_stability_method`. + Keyword arguments may be used to provide default values for state space + matrices. See `Representation` for more details. + + Notes + ----- + There are several types of options available for controlling the Kalman + filter operation. All options are internally held as bitmasks, but can be + manipulated by setting class attributes, which act like boolean flags. For + more information, see the `set_*` class method documentation. The options + are: + + filter_method + The filtering method controls aspects of which + Kalman filtering approach will be used. + inversion_method + The Kalman filter may contain one matrix inversion: that of the + forecast error covariance matrix. The inversion method controls how and + if that inverse is performed. + stability_method + The Kalman filter is a recursive algorithm that may in some cases + suffer issues with numerical stability. The stability method controls + what, if any, measures are taken to promote stability. + conserve_memory + By default, the Kalman filter computes a number of intermediate + matrices at each iteration. The memory conservation options control + which of those matrices are stored. + + The `filter_method` and `inversion_method` options intentionally allow + the possibility that multiple methods will be indicated. In the case that + multiple methods are selected, the underlying Kalman filter will attempt to + select the optional method given the input data. + + For example, it may be that INVERT_UNIVARIATE and SOLVE_CHOLESKY are + indicated (this is in fact the default case). In this case, if the + endogenous vector is 1-dimensional (`k_endog` = 1), then INVERT_UNIVARIATE + is used and inversion reduces to simple division, and if it has a larger + dimension, the Cholesky decomposition along with linear solving (rather + than explicit matrix inversion) is used. If only SOLVE_CHOLESKY had been + set, then the Cholesky decomposition method would *always* be used, even in + the case of 1-dimensional data. + + See Also + -------- + FilterResults + statsmodels.tsa.statespace.representation.Representation + """ + + filter_methods = [ + 'filter_conventional' + ] + + filter_conventional = OptionWrapper('filter_method', FILTER_CONVENTIONAL) + """ + (bool) Flag for conventional Kalman filtering. + """ + + inversion_methods = [ + 'invert_univariate', 'solve_lu', 'invert_lu', 'solve_cholesky', + 'invert_cholesky' + ] + + invert_univariate = OptionWrapper('inversion_method', INVERT_UNIVARIATE) + """ + (bool) Flag for univariate inversion method (recommended). + """ + solve_lu = OptionWrapper('inversion_method', SOLVE_LU) + """ + (bool) Flag for LU and linear solver inversion method. + """ + invert_lu = OptionWrapper('inversion_method', INVERT_LU) + """ + (bool) Flag for LU inversion method. + """ + solve_cholesky = OptionWrapper('inversion_method', SOLVE_CHOLESKY) + """ + (bool) Flag for Cholesky and linear solver inversion method (recommended). + """ + invert_cholesky = OptionWrapper('inversion_method', INVERT_CHOLESKY) + """ + (bool) Flag for Cholesky inversion method. + """ + + stability_methods = ['stability_force_symmetry'] + + stability_force_symmetry = ( + OptionWrapper('stability_method', STABILITY_FORCE_SYMMETRY) + ) + """ + (bool) Flag for enforcing covariance matrix symmetry + """ + + memory_options = [ + 'memory_store_all', 'memory_no_forecast', 'memory_no_predicted', + 'memory_no_filtered', 'memory_no_likelihood', 'memory_conserve' + ] + + memory_store_all = OptionWrapper('conserve_memory', MEMORY_STORE_ALL) + """ + (bool) Flag for storing all intermediate results in memory (default). + """ + memory_no_forecast = OptionWrapper('conserve_memory', MEMORY_NO_FORECAST) + """ + (bool) Flag to prevent storing forecasts. + """ + memory_no_predicted = OptionWrapper('conserve_memory', MEMORY_NO_PREDICTED) + """ + (bool) Flag to prevent storing predicted state and covariance matrices. + """ + memory_no_filtered = OptionWrapper('conserve_memory', MEMORY_NO_FILTERED) + """ + (bool) Flag to prevent storing filtered state and covariance matrices. + """ + memory_no_likelihood = ( + OptionWrapper('conserve_memory', MEMORY_NO_LIKELIHOOD) + ) + """ + (bool) Flag to prevent storing likelihood values for each observation. + """ + memory_conserve = OptionWrapper('conserve_memory', MEMORY_CONSERVE) + """ + (bool) Flag to conserve the maximum amount of memory. + """ + + # Default filter options + filter_method = FILTER_CONVENTIONAL + """ + (int) Filtering method bitmask. + """ + inversion_method = INVERT_UNIVARIATE | SOLVE_CHOLESKY + """ + (int) Inversion method bitmask. + """ + stability_method = STABILITY_FORCE_SYMMETRY + """ + (int) Stability method bitmask. + """ + conserve_memory = MEMORY_STORE_ALL + """ + (int) Memory conservation bitmask. + """ + + def __init__(self, k_endog, k_states, k_posdef=None, + loglikelihood_burn=0, tolerance=1e-19, results_class=None, + **kwargs): + super(KalmanFilter, self).__init__( + k_endog, k_states, k_posdef, **kwargs + ) + + # Setup the underlying Kalman filter storage + self._kalman_filters = {} + + # Filter options + self.loglikelihood_burn = loglikelihood_burn + self.results_class = ( + results_class if results_class is not None else FilterResults + ) + + self.set_filter_method(**kwargs) + self.set_inversion_method(**kwargs) + self.set_stability_method(**kwargs) + self.set_conserve_memory(**kwargs) + + self.tolerance = tolerance + + @property + def _kalman_filter(self): + prefix = self.prefix + if prefix in self._kalman_filters: + return self._kalman_filters[prefix] + return None + + def _initialize_filter(self, filter_method=None, inversion_method=None, + stability_method=None, conserve_memory=None, + tolerance=None, loglikelihood_burn=None): + if filter_method is None: + filter_method = self.filter_method + if inversion_method is None: + inversion_method = self.inversion_method + if stability_method is None: + stability_method = self.stability_method + if conserve_memory is None: + conserve_memory = self.conserve_memory + if loglikelihood_burn is None: + loglikelihood_burn = self.loglikelihood_burn + if tolerance is None: + tolerance = self.tolerance + + # Make sure we have endog + if self.endog is None: + raise RuntimeError('Must bind a dataset to the model before' + ' filtering or smoothing.') + + # Initialize the representation matrices + prefix, dtype, create_statespace = self._initialize_representation() + + # Determine if we need to (re-)create the filter + # (definitely need to recreate if we recreated the _statespace object) + create_filter = create_statespace or prefix not in self._kalman_filters + if not create_filter: + kalman_filter = self._kalman_filters[prefix] + + create_filter = ( + not kalman_filter.conserve_memory == conserve_memory or + not kalman_filter.loglikelihood_burn == loglikelihood_burn + ) + + # If the dtype-specific _kalman_filter does not exist (or if we need + # to re-create it), create it + if create_filter: + if prefix in self._kalman_filters: + # Delete the old filter + del self._kalman_filters[prefix] + # Setup the filter + cls = prefix_kalman_filter_map[prefix] + self._kalman_filters[prefix] = cls( + self._statespaces[prefix], filter_method, inversion_method, + stability_method, conserve_memory, tolerance, + loglikelihood_burn + ) + # Otherwise, update the filter parameters + else: + kalman_filter = self._kalman_filters[prefix] + kalman_filter.set_filter_method(filter_method, False) + kalman_filter.inversion_method = inversion_method + kalman_filter.stability_method = stability_method + kalman_filter.tolerance = tolerance + # conserve_memory and loglikelihood_burn changes always lead to + # re-created filters + + return prefix, dtype, create_filter, create_statespace + + def set_filter_method(self, filter_method=None, **kwargs): + """ + Set the filtering method + + The filtering method controls aspects of which Kalman filtering + approach will be used. + + Parameters + ---------- + filter_method : integer, optional + Bitmask value to set the filter method to. See notes for details. + **kwargs + Keyword arguments may be used to influence the filter method by + setting individual boolean flags. See notes for details. + + Notes + ----- + The filtering method is defined by a collection of boolean flags, and + is internally stored as a bitmask. Only one method is currently + available: + + FILTER_CONVENTIONAL = 0x01 + Conventional Kalman filter. + + If the bitmask is set directly via the `filter_method` argument, then + the full method must be provided. + + If keyword arguments are used to set individual boolean flags, then + the lowercase of the method must be used as an argument name, and the + value is the desired value of the boolean flag (True or False). + + Note that the filter method may also be specified by directly modifying + the class attributes which are defined similarly to the keyword + arguments. + + The default filtering method is FILTER_CONVENTIONAL. + + Examples + -------- + >>> mod = sm.tsa.statespace.SARIMAX(range(10)) + >>> mod.filter_method + 1 + >>> mod.filter_conventional + True + >>> mod.set_filter_method(filter_method=1) + >>> mod.filter_method + 1 + >>> mod.set_filter_method(filter_conventional=True) + >>> mod.filter_method + 1 + >>> mod.filter_conventional = True + >>> mod.filter_method + 1 + """ + if filter_method is not None: + self.filter_method = filter_method + for name in KalmanFilter.filter_methods: + if name in kwargs: + setattr(self, name, kwargs[name]) + + def set_inversion_method(self, inversion_method=None, **kwargs): + """ + Set the inversion method + + The Kalman filter may contain one matrix inversion: that of the + forecast error covariance matrix. The inversion method controls how and + if that inverse is performed. + + Parameters + ---------- + inversion_method : integer, optional + Bitmask value to set the inversion method to. See notes for + details. + **kwargs + Keyword arguments may be used to influence the inversion method by + setting individual boolean flags. See notes for details. + + Notes + ----- + The inversion method is defined by a collection of boolean flags, and + is internally stored as a bitmask. The methods available are: + + INVERT_UNIVARIATE = 0x01 + If the endogenous time series is univariate, then inversion can be + performed by simple division. If this flag is set and the time + series is univariate, then division will always be used even if + other flags are also set. + SOLVE_LU = 0x02 + Use an LU decomposition along with a linear solver (rather than + ever actually inverting the matrix). + INVERT_LU = 0x04 + Use an LU decomposition along with typical matrix inversion. + SOLVE_CHOLESKY = 0x08 + Use a Cholesky decomposition along with a linear solver. + INVERT_CHOLESKY = 0x10 + Use an Cholesky decomposition along with typical matrix inversion. + + If the bitmask is set directly via the `inversion_method` argument, + then the full method must be provided. + + If keyword arguments are used to set individual boolean flags, then + the lowercase of the method must be used as an argument name, and the + value is the desired value of the boolean flag (True or False). + + Note that the inversion method may also be specified by directly + modifying the class attributes which are defined similarly to the + keyword arguments. + + The default inversion method is `INVERT_UNIVARIATE | SOLVE_CHOLESKY` + + Several things to keep in mind are: + + - Cholesky decomposition is about twice as fast as LU decomposition, + but it requires that the matrix be positive definite. While this + should generally be true, it may not be in every case. + - Using a linear solver rather than true matrix inversion is generally + faster and is numerically more stable. + + Examples + -------- + >>> mod = sm.tsa.statespace.SARIMAX(range(10)) + >>> mod.inversion_method + 1 + >>> mod.solve_cholesky + True + >>> mod.invert_univariate + True + >>> mod.invert_lu + False + >>> mod.invert_univariate = False + >>> mod.inversion_method + 8 + >>> mod.set_inversion_method(solve_cholesky=False, + invert_cholesky=True) + >>> mod.inversion_method + 16 + """ + if inversion_method is not None: + self.inversion_method = inversion_method + for name in KalmanFilter.inversion_methods: + if name in kwargs: + setattr(self, name, kwargs[name]) + + def set_stability_method(self, stability_method=None, **kwargs): + """ + Set the numerical stability method + + The Kalman filter is a recursive algorithm that may in some cases + suffer issues with numerical stability. The stability method controls + what, if any, measures are taken to promote stability. + + Parameters + ---------- + stability_method : integer, optional + Bitmask value to set the stability method to. See notes for + details. + **kwargs + Keyword arguments may be used to influence the stability method by + setting individual boolean flags. See notes for details. + + Notes + ----- + The stability method is defined by a collection of boolean flags, and + is internally stored as a bitmask. The methods available are: + + STABILITY_FORCE_SYMMETRY = 0x01 + If this flag is set, symmetry of the predicted state covariance + matrix is enforced at each iteration of the filter, where each + element is set to the average of the corresponding elements in the + upper and lower triangle. + + If the bitmask is set directly via the `stability_method` argument, + then the full method must be provided. + + If keyword arguments are used to set individual boolean flags, then + the lowercase of the method must be used as an argument name, and the + value is the desired value of the boolean flag (True or False). + + Note that the stability method may also be specified by directly + modifying the class attributes which are defined similarly to the + keyword arguments. + + The default stability method is `STABILITY_FORCE_SYMMETRY` + + Examples + -------- + >>> mod = sm.tsa.statespace.SARIMAX(range(10)) + >>> mod.stability_method + 1 + >>> mod.stability_force_symmetry + True + >>> mod.stability_force_symmetry = False + >>> mod.stability_method + 0 + """ + if stability_method is not None: + self.stability_method = stability_method + for name in KalmanFilter.stability_methods: + if name in kwargs: + setattr(self, name, kwargs[name]) + + def set_conserve_memory(self, conserve_memory=None, **kwargs): + """ + Set the memory conservation method + + By default, the Kalman filter computes a number of intermediate + matrices at each iteration. The memory conservation options control + which of those matrices are stored. + + Parameters + ---------- + conserve_memory : integer, optional + Bitmask value to set the memory conservation method to. See notes + for details. + **kwargs + Keyword arguments may be used to influence the memory conservation + method by setting individual boolean flags. See notes for details. + + Notes + ----- + The memory conservation method is defined by a collection of boolean + flags, and is internally stored as a bitmask. The methods available + are: + + MEMORY_STORE_ALL = 0 + Store all intermediate matrices. This is the default value. + MEMORY_NO_FORECAST = 0x01 + Do not store the forecast, forecast error, or forecast error + covariance matrices. If this option is used, the `predict` method + from the results class is unavailable. + MEMORY_NO_PREDICTED = 0x02 + Do not store the predicted state or predicted state covariance + matrices. + MEMORY_NO_FILTERED = 0x04 + Do not store the filtered state or filtered state covariance + matrices. + MEMORY_NO_LIKELIHOOD = 0x08 + Do not store the vector of loglikelihood values for each + observation. Only the sum of the loglikelihood values is stored. + MEMORY_CONSERVE + Do not store any intermediate matrices. + + If the bitmask is set directly via the `conserve_memory` argument, + then the full method must be provided. + + If keyword arguments are used to set individual boolean flags, then + the lowercase of the method must be used as an argument name, and the + value is the desired value of the boolean flag (True or False). + + Note that the memory conservation method may also be specified by + directly modifying the class attributes which are defined similarly to + the keyword arguments. + + The default memory conservation method is `MEMORY_STORE_ALL`, so that + all intermediate matrices are stored. + + Examples + -------- + >>> mod = sm.tsa.statespace.SARIMAX(range(10)) + >>> mod.conserve_memory + 0 + >>> mod.memory_no_predicted + False + >>> mod.memory_no_predicted = True + >>> mod.conserve_memory + 2 + >>> mod.set_conserve_memory(memory_no_filtered=True, + memory_no_forecast=True) + >>> mod.conserve_memory + 7 + """ + if conserve_memory is not None: + self.conserve_memory = conserve_memory + for name in KalmanFilter.memory_options: + if name in kwargs: + setattr(self, name, kwargs[name]) + + def filter(self, filter_method=None, inversion_method=None, + stability_method=None, conserve_memory=None, tolerance=None, + loglikelihood_burn=None, results=None, complex_step=False): + """ + Apply the Kalman filter to the statespace model. + + Parameters + ---------- + filter_method : int, optional + Determines which Kalman filter to use. Default is conventional. + inversion_method : int, optional + Determines which inversion technique to use. Default is by Cholesky + decomposition. + stability_method : int, optional + Determines which numerical stability techniques to use. Default is + to enforce symmetry of the predicted state covariance matrix. + conserve_memory : int, optional + Determines what output from the filter to store. Default is to + store everything. + tolerance : float, optional + The tolerance at which the Kalman filter determines convergence to + steady-state. Default is 1e-19. + loglikelihood_burn : int, optional + The number of initial periods during which the loglikelihood is not + recorded. Default is 0. + results : class, object, or {'loglikelihood'}, optional + If a class which is a subclass of FilterResults, then that class is + instantiated and returned with the result of filtering. Classes + must subclass FilterResults. + If an object, then that object is updated with the new filtering + results. + If the string 'loglikelihood', then only the loglikelihood is + returned as an ndarray. + If None, then the default results object is updated with the + result of filtering. + """ + # Set the class to be the default results class, if None provided + if results is None: + results = self.results_class + + # Initialize the filter + prefix, dtype, create_filter, create_statespace = ( + self._initialize_filter( + filter_method, inversion_method, stability_method, + conserve_memory, tolerance, loglikelihood_burn + ) + ) + kfilter = self._kalman_filters[prefix] + + # Instantiate a new results object, if required + new_results = False + if isinstance(results, type): + if not issubclass(results, FilterResults): + raise ValueError + results = results(self) + new_results = True + + # Initialize the state + self._initialize_state(prefix=prefix, complex_step=complex_step) + + # Run the filter + kfilter() + + # We may just want the loglikelihood + if results == 'loglikelihood': + results = np.array( + self._kalman_filters[prefix].loglikelihood, copy=True + ) + # Otherwise update the results object + else: + # Update the model features; unless we had to recreate the + # statespace, only update the filter options + if not new_results: + results.update_representation(self) + results.update_filter(kfilter) + + return results + + def loglike(self, loglikelihood_burn=None, **kwargs): + """ + Calculate the loglikelihood associated with the statespace model. + + Parameters + ---------- + loglikelihood_burn : int, optional + The number of initial periods during which the loglikelihood is not + recorded. Default is 0. + **kwargs + Additional keyword arguments to pass to the Kalman filter. See + `KalmanFilter.filter` for more details. + + Returns + ------- + loglike : float + The joint loglikelihood. + """ + if self.memory_no_likelihood: + raise RuntimeError('Cannot compute loglikelihood if' + ' MEMORY_NO_LIKELIHOOD option is selected.') + if loglikelihood_burn is None: + loglikelihood_burn = self.loglikelihood_burn + kwargs['results'] = 'loglikelihood' + return np.sum(self.filter(**kwargs)[loglikelihood_burn:]) + + def loglikeobs(self, loglikelihood_burn=None, **kwargs): + """ + Calculate the loglikelihood for each observation associated with the + statespace model. + + Parameters + ---------- + loglikelihood_burn : int, optional + The number of initial periods during which the loglikelihood is not + recorded. Default is 0. + **kwargs + Additional keyword arguments to pass to the Kalman filter. See + `KalmanFilter.filter` for more details. + + Notes + ----- + If `loglikelihood_burn` is positive, then the entries in the returned + loglikelihood vector are set to be zero for those initial time periods. + + Returns + ------- + loglike : array of float + Array of loglikelihood values for each observation. + """ + if self.memory_no_likelihood: + raise RuntimeError('Cannot compute loglikelihood if' + ' MEMORY_NO_LIKELIHOOD option is selected.') + if loglikelihood_burn is None: + loglikelihood_burn = self.loglikelihood_burn + kwargs['results'] = 'loglikelihood' + llf_obs = self.filter(**kwargs) + + # Set any burned observations to have zero likelihood + llf_obs[:loglikelihood_burn] = 0 + + return llf_obs + + def simulate(self, nsimulations, measurement_shocks=None, + state_shocks=None, initial_state=None): + r""" + Simulate a new time series following the state space model + + Parameters + ---------- + nsimulations : int + The number of observations to simulate. If the model is + time-invariant this can be any number. If the model is + time-varying, then this number must be less than or equal to the + number + measurement_shocks : array_like, optional + If specified, these are the shocks to the measurement equation, + :math:`\varepsilon_t`. If unspecified, these are automatically + generated using a pseudo-random number generator. If specified, + must be shaped `nsimulations` x `k_endog`, where `k_endog` is the + same as in the state space model. + state_shocks : array_like, optional + If specified, these are the shocks to the state equation, + :math:`\eta_t`. If unspecified, these are automatically + generated using a pseudo-random number generator. If specified, + must be shaped `nsimulations` x `k_posdef` where `k_posdef` is the + same as in the state space model. + initial_state : array_like, optional + If specified, this is the state vector at time zero, which should + be shaped (`k_states` x 1), where `k_states` is the same as in the + state space model. If unspecified, but the model has been + initialized, then that initialization is used. If unspecified and + the model has not been initialized, then a vector of zeros is used. + Note that this is not included in the returned `simulated_states` + array. + + Returns + ------- + simulated_obs : array + An (nsimulations x k_endog) array of simulated observations. + simulated_states : array + An (nsimulations x k_states) array of simulated states. + """ + time_invariant = self.time_invariant + # Check for valid number of simulations + if not time_invariant and nsimulations > self.nobs: + raise ValueError('In a time-varying model, cannot create more' + ' simulations than there are observations.') + + # Check / generate measurement shocks + if measurement_shocks is not None: + measurement_shocks = np.array(measurement_shocks) + if measurement_shocks.ndim == 0: + measurement_shocks = measurement_shocks[np.newaxis, np.newaxis] + elif measurement_shocks.ndim == 1: + measurement_shocks = measurement_shocks[:, np.newaxis] + if not measurement_shocks.shape == (nsimulations, self.k_endog): + raise ValueError('Invalid shape of provided measurement shocks.' + ' Required (%d, %d)' + % (nsimulations, self.k_endog)) + elif self.shapes['obs_cov'][-1] == 1: + measurement_shocks = np.random.multivariate_normal( + mean=np.zeros(self.k_endog), cov=self['obs_cov'], + size=nsimulations) + + # Check / generate state shocks + if state_shocks is not None: + state_shocks = np.array(state_shocks) + if state_shocks.ndim == 0: + state_shocks = state_shocks[np.newaxis, np.newaxis] + elif state_shocks.ndim == 1: + state_shocks = state_shocks[:, np.newaxis] + if not state_shocks.shape == (nsimulations, self.k_posdef): + raise ValueError('Invalid shape of provided state shocks.' + ' Required (%d, %d).' + % (nsimulations, self.k_posdef)) + elif self.shapes['state_cov'][-1] == 1: + state_shocks = np.random.multivariate_normal( + mean=np.zeros(self.k_posdef), cov=self['state_cov'], + size=nsimulations) + + # Get the initial states + if initial_state is not None: + initial_state = np.array(initial_state) + if initial_state.ndim == 0: + initial_state = initial_state[np.newaxis] + elif (initial_state.ndim > 1 and + not initial_state.shape == (self.k_states, 1)): + raise ValueError('Invalid shape of provided initial state' + ' vector. Required (%d, 1)' % self.k_states) + elif self.initialization == 'known': + initial_state = self._initial_state + elif self.initialization in ['approximate_diffuse', 'stationary']: + initial_state = np.zeros(self.k_states) + else: + initial_state = np.zeros(self.k_states) + + return self._simulate(nsimulations, measurement_shocks, state_shocks, + initial_state) + + def _simulate(self, nsimulations, measurement_shocks, state_shocks, + initial_state): + time_invariant = self.time_invariant + + # Holding variables for the simulations + simulated_obs = np.zeros((nsimulations, self.k_endog), + dtype=self.dtype) + simulated_states = np.zeros((nsimulations+1, self.k_states), + dtype=self.dtype) + simulated_states[0] = initial_state + + # Perform iterations to create the new time series + obs_intercept_t = 0 + design_t = 0 + state_intercept_t = 0 + transition_t = 0 + selection_t = 0 + for t in range(nsimulations): + # Get the current shocks (this accomodates time-varying matrices) + if measurement_shocks is None: + measurement_shock = np.random.multivariate_normal( + mean=np.zeros(self.k_endog), cov=self['obs_cov', :, :, t]) + else: + measurement_shock = measurement_shocks[t] + + if state_shocks is None: + state_shock = np.random.multivariate_normal( + mean=np.zeros(self.k_posdef), + cov=self['state_cov', :, :, t]) + else: + state_shock = state_shocks[t] + + # Get current-iteration matrices + if not time_invariant: + obs_intercept_t = 0 if self.obs_intercept.shape[-1] == 1 else t + design_t = 0 if self.design.shape[-1] == 1 else t + state_intercept_t = ( + 0 if self.state_intercept.shape[-1] == 1 else t) + transition_t = 0 if self.transition.shape[-1] == 1 else t + selection_t = 0 if self.selection.shape[-1] == 1 else t + + obs_intercept = self['obs_intercept', :, obs_intercept_t] + design = self['design', :, :, design_t] + state_intercept = self['state_intercept', :, state_intercept_t] + transition = self['transition', :, :, transition_t] + selection = self['selection', :, :, selection_t] + + # Iterate the measurement equation + simulated_obs[t] = ( + obs_intercept + np.dot(design, simulated_states[t]) + + measurement_shock) + + # Iterate the state equation + simulated_states[t+1] = ( + state_intercept + np.dot(transition, simulated_states[t]) + + np.dot(selection, state_shock)) + + return simulated_obs, simulated_states[:-1] + + def impulse_responses(self, steps=10, impulse=0, orthogonalized=False, + cumulative=False, **kwargs): + """ + Impulse response function + + Parameters + ---------- + steps : int, optional + The number of steps for which impulse responses are calculated. + Default is 10. Note that the initial impulse is not counted as a + step, so if `steps=1`, the output will have 2 entries. + impulse : int or array_like + If an integer, the state innovation to pulse; must be between 0 + and `k_posdef-1` where `k_posdef` is the same as in the state + space model. Alternatively, a custom impulse vector may be + provided; must be a column vector with shape `(k_posdef, 1)`. + orthogonalized : boolean, optional + Whether or not to perform impulse using orthogonalized innovations. + Note that this will also affect custum `impulse` vectors. Default + is False. + cumulative : boolean, optional + Whether or not to return cumulative impulse responses. Default is + False. + **kwargs + If the model is time-varying and `steps` is greater than the number + of observations, any of the state space representation matrices + that are time-varying must have updated values provided for the + out-of-sample steps. + For example, if `design` is a time-varying component, `nobs` is 10, + and `steps` is 15, a (`k_endog` x `k_states` x 5) matrix must be + provided with the new design matrix values. + + Returns + ------- + impulse_responses : array + Responses for each endogenous variable due to the impulse + given by the `impulse` argument. A (steps + 1 x k_endog) array. + + Notes + ----- + Intercepts in the measurement and state equation are ignored when + calculating impulse responses. + + """ + # Since the first step is the impulse itself, we actually want steps+1 + steps += 1 + + # Check for what kind of impulse we want + if type(impulse) == int: + if impulse >= self.k_posdef or impulse < 0: + raise ValueError('Invalid value for `impulse`. Must be the' + ' of one of the state innovations.') + + # Create the (non-orthogonalized) impulse vector + idx = impulse + impulse = np.zeros(self.k_posdef) + impulse[idx] = 1 + else: + impulse = np.array(impulse) + if impulse.ndim > 1: + impulse = np.squeeze(impulse) + if not impulse.shape == (self.k_posdef,): + raise ValueError('Invalid impulse vector. Must be shaped' + ' (%d,)' % self.k_posdef) + + # Orthogonalize the impulses, if requested, using Cholesky on the + # first state covariance matrix + if orthogonalized: + state_chol = np.linalg.cholesky(self.state_cov[:,:,0]) + impulse = np.dot(state_chol, impulse) + + # If we have a time-invariant system, we can solve for the IRF directly + if self.time_invariant: + # Get the state space matrices + design = self.design[:, :, 0] + transition = self.transition[:, :, 0] + selection = self.selection[:, :, 0] + + # Holding arrays + irf = np.zeros((steps, self.k_endog), dtype=self.dtype) + states = np.zeros((steps, self.k_states), dtype=self.dtype) + + # First iteration + states[0] = np.dot(selection, impulse) + irf[0] = np.dot(design, states[0]) + + # Iterations + for t in range(1, steps): + states[t] = np.dot(transition, states[t-1]) + irf[t] = np.dot(design, states[t]) + + # Otherwise, create a new model + else: + # Get the basic model components + representation = {} + for name, shape in self.shapes.items(): + if name in ['obs', 'obs_intercept', 'state_intercept']: + continue + representation[name] = getattr(self, name) + + # Allow additional specification + warning = ('Model has time-invariant %s matrix, so the %s' + ' argument to `irf` has been ignored.') + exception = ('Impulse response functions for models with' + ' time-varying %s matrix requires an updated' + ' time-varying matrix for any periods beyond those in' + ' the original model.') + for name, shape in self.shapes.items(): + if name in ['obs', 'obs_intercept', 'state_intercept']: + continue + if representation[name].shape[-1] == 1: + if name in kwargs: + warn(warning % (name, name), ValueWarning) + elif name not in kwargs: + raise ValueError(exception % name) + else: + mat = np.asarray(kwargs[name]) + validate_matrix_shape(name, mat.shape, shape[0], + shape[1], nforecast) + if mat.ndim < 3 or not mat.shape[2] == nforecast: + raise ValueError(exception % name) + representation[name] = np.c_[representation[name], mat] + + # Setup the new statespace representation + model_kwargs = { + 'filter_method': self.filter_method, + 'inversion_method': self.inversion_method, + 'stability_method': self.stability_method, + 'conserve_memory': self.conserve_memory, + 'tolerance': self.tolerance, + 'loglikelihood_burn': self.loglikelihood_burn + } + model_kwargs.update(representation) + model = KalmanFilter(np.zeros(self.endog.T.shape), self.k_states, + self.k_posdef, **model_kwargs) + model.initialize_approximate_diffuse() + model._initialize_filter() + model._initialize_state() + + # Get the impulse response function via simulation of the state + # space model, but with other shocks set to zero + # Since simulate returns the zero-th period, we need to simulate + # steps + 1 periods and exclude the zero-th observation. + steps += 1 + measurement_shocks = np.zeros((steps, self.k_endog)) + state_shocks = np.zeros((steps, self.k_posdef)) + state_shocks[0] = impulse + irf, _ = model.simulate( + steps, measurement_shocks=measurement_shocks, + state_shocks=state_shocks) + irf = irf[1:] + + # Get the cumulative response if requested + if cumulative: + irf = np.cumsum(irf, axis=0) + + return irf + + +class FilterResults(FrozenRepresentation): + """ + Results from applying the Kalman filter to a state space model. + + Parameters + ---------- + model : Representation + A Statespace representation + + Attributes + ---------- + nobs : int + Number of observations. + k_endog : int + The dimension of the observation series. + k_states : int + The dimension of the unobserved state process. + k_posdef : int + The dimension of a guaranteed positive definite + covariance matrix describing the shocks in the + measurement equation. + dtype : dtype + Datatype of representation matrices + prefix : str + BLAS prefix of representation matrices + shapes : dictionary of name,tuple + A dictionary recording the shapes of each of the + representation matrices as tuples. + endog : array + The observation vector. + design : array + The design matrix, :math:`Z`. + obs_intercept : array + The intercept for the observation equation, :math:`d`. + obs_cov : array + The covariance matrix for the observation equation :math:`H`. + transition : array + The transition matrix, :math:`T`. + state_intercept : array + The intercept for the transition equation, :math:`c`. + selection : array + The selection matrix, :math:`R`. + state_cov : array + The covariance matrix for the state equation :math:`Q`. + missing : array of bool + An array of the same size as `endog`, filled + with boolean values that are True if the + corresponding entry in `endog` is NaN and False + otherwise. + nmissing : array of int + An array of size `nobs`, where the ith entry + is the number (between 0 and `k_endog`) of NaNs in + the ith row of the `endog` array. + time_invariant : bool + Whether or not the representation matrices are time-invariant + initialization : str + Kalman filter initialization method. + initial_state : array_like + The state vector used to initialize the Kalamn filter. + initial_state_cov : array_like + The state covariance matrix used to initialize the Kalamn filter. + filter_method : int + Bitmask representing the Kalman filtering method + inversion_method : int + Bitmask representing the method used to + invert the forecast error covariance matrix. + stability_method : int + Bitmask representing the methods used to promote + numerical stability in the Kalman filter + recursions. + conserve_memory : int + Bitmask representing the selected memory conservation method. + tolerance : float + The tolerance at which the Kalman filter + determines convergence to steady-state. + loglikelihood_burn : int + The number of initial periods during which + the loglikelihood is not recorded. + converged : bool + Whether or not the Kalman filter converged. + period_converged : int + The time period in which the Kalman filter converged. + filtered_state : array + The filtered state vector at each time period. + filtered_state_cov : array + The filtered state covariance matrix at each time period. + predicted_state : array + The predicted state vector at each time period. + predicted_state_cov : array + The predicted state covariance matrix at each time period. + forecasts : array + The one-step-ahead forecasts of observations at each time period. + forecasts_error : array + The forecast errors at each time period. + forecasts_error_cov : array + The forecast error covariance matrices at each time period. + llf_obs : array + The loglikelihood values at each time period. + """ + _filter_attributes = [ + 'filter_method', 'inversion_method', 'stability_method', + 'conserve_memory', 'tolerance', 'loglikelihood_burn', 'converged', + 'period_converged', 'filtered_state', 'filtered_state_cov', + 'predicted_state', 'predicted_state_cov', + 'forecasts', 'forecasts_error', 'forecasts_error_cov', + 'llf_obs' + ] + + _filter_options = ( + KalmanFilter.filter_methods + KalmanFilter.stability_methods + + KalmanFilter.inversion_methods + KalmanFilter.memory_options + ) + + _attributes = FrozenRepresentation._model_attributes + _filter_attributes + + def __init__(self, model): + super(FilterResults, self).__init__(model) + + # Setup caches for uninitialized objects + self._kalman_gain = None + self._standardized_forecasts_error = None + + def update_representation(self, model, only_options=False): + """ + Update the results to match a given model + + Parameters + ---------- + model : Representation + The model object from which to take the updated values. + only_options : boolean, optional + If set to true, only the filter options are updated, and the state + space representation is not updated. Default is False. + + Notes + ----- + This method is rarely required except for internal usage. + """ + if not only_options: + super(FilterResults, self).update_representation(model) + + # Save the options as boolean variables + for name in self._filter_options: + setattr(self, name, getattr(model, name, None)) + + def update_filter(self, kalman_filter): + """ + Update the filter results + + Parameters + ---------- + kalman_filter : KalmanFilter + The model object from which to take the updated values. + + Notes + ----- + This method is rarely required except for internal usage. + """ + # State initialization + self.initial_state = np.array( + kalman_filter.model.initial_state, copy=True + ) + self.initial_state_cov = np.array( + kalman_filter.model.initial_state_cov, copy=True + ) + + # Save Kalman filter parameters + self.filter_method = kalman_filter.filter_method + self.inversion_method = kalman_filter.inversion_method + self.stability_method = kalman_filter.stability_method + self.conserve_memory = kalman_filter.conserve_memory + self.tolerance = kalman_filter.tolerance + self.loglikelihood_burn = kalman_filter.loglikelihood_burn + + # Save Kalman filter output + self.converged = bool(kalman_filter.converged) + self.period_converged = kalman_filter.period_converged + + self.filtered_state = np.array(kalman_filter.filtered_state, copy=True) + self.filtered_state_cov = np.array( + kalman_filter.filtered_state_cov, copy=True + ) + self.predicted_state = np.array( + kalman_filter.predicted_state, copy=True + ) + self.predicted_state_cov = np.array( + kalman_filter.predicted_state_cov, copy=True + ) + + # Reset caches + self._kalman_gain = None + self._standardized_forecasts_error = None + + # Note: use forecasts rather than forecast, so as not to interfer + # with the `forecast` methods in subclasses + self.forecasts = np.array(kalman_filter.forecast, copy=True) + self.forecasts_error = np.array( + kalman_filter.forecast_error, copy=True + ) + self.forecasts_error_cov = np.array( + kalman_filter.forecast_error_cov, copy=True + ) + self.llf_obs = np.array(kalman_filter.loglikelihood, copy=True) + + # If there was missing data, save the original values from the Kalman + # filter output, since below will set the values corresponding to + # the missing observations to nans. + self.missing_forecasts = None + self.missing_forecasts_error = None + self.missing_forecasts_error_cov = None + if np.sum(self.nmissing) > 0: + # Copy the provided arrays (which are as the Kalman filter dataset) + # into new variables + self.missing_forecasts = np.copy(self.forecasts) + self.missing_forecasts_error = np.copy(self.forecasts_error) + self.missing_forecasts_error_cov = ( + np.copy(self.forecasts_error_cov) + ) + + # Fill in missing values in the forecast, forecast error, and + # forecast error covariance matrix (this is required due to how the + # Kalman filter implements observations that are either partly or + # completely missing) + # Construct the predictions, forecasts + if not (self.memory_no_forecast or self.memory_no_predicted): + for t in range(self.nobs): + design_t = 0 if self.design.shape[2] == 1 else t + obs_cov_t = 0 if self.obs_cov.shape[2] == 1 else t + obs_intercept_t = 0 if self.obs_intercept.shape[1] == 1 else t + + # For completely missing observations, the Kalman filter will + # produce forecasts, but forecast errors and the forecast + # error covariance matrix will be zeros - make them nan to + # improve clarity of results. + if self.nmissing[t] > 0: + mask = ~self.missing[:, t].astype(bool) + # We can recover forecasts + # For partially missing observations, the Kalman filter + # will produce all elements (forecasts, forecast errors, + # forecast error covariance matrices) as usual, but their + # dimension will only be equal to the number of non-missing + # elements, and their location in memory will be in the first + # blocks (e.g. for the forecasts_error, the first + # k_endog - nmissing[t] columns will be filled in), regardless + # of which endogenous variables they refer to (i.e. the non- + # missing endogenous variables for that observation). + # Furthermore, the forecast error covariance matrix is only + # valid for those elements. What is done is to set all elements + # to nan for these observations so that they are flagged as + # missing. The variables missing_forecasts, etc. then provide + # the forecasts, etc. provided by the Kalman filter, from which + # the data can be retrieved if desired. + self.forecasts[:, t] = np.dot( + self.design[:, :, design_t], self.predicted_state[:, t] + ) + self.obs_intercept[:, obs_intercept_t] + self.forecasts_error[:, t] = np.nan + self.forecasts_error[mask, t] = ( + self.endog[mask, t] - self.forecasts[mask, t]) + self.forecasts_error_cov[:, :, t] = np.dot( + np.dot(self.design[:, :, design_t], + self.predicted_state_cov[:, :, t]), + self.design[:, :, design_t].T + ) + self.obs_cov[:, :, obs_cov_t] + + @property + def kalman_gain(self): + """ + Kalman gain matrices + """ + if self._kalman_gain is None: + # k x n + self._kalman_gain = np.zeros( + (self.k_states, self.k_endog, self.nobs), dtype=self.dtype) + for t in range(self.nobs): + # In the case of entirely missing observations, let the Kalman + # gain be zeros. + if self.nmissing[t] == self.k_endog: + continue + + design_t = 0 if self.design.shape[2] == 1 else t + transition_t = 0 if self.transition.shape[2] == 1 else t + if self.nmissing[t] == 0: + self._kalman_gain[:, :, t] = np.dot( + np.dot( + self.transition[:, :, transition_t], + self.predicted_state_cov[:, :, t] + ), + np.dot( + np.transpose(self.design[:, :, design_t]), + np.linalg.inv(self.forecasts_error_cov[:, :, t]) + ) + ) + else: + mask = ~self.missing[:, t].astype(bool) + n = self.k_endog - self.nmissing[t] + F = self.forecasts_error_cov[np.ix_(mask, mask, [t])] + self._kalman_gain[:, mask, t] = np.dot( + np.dot( + self.transition[:, :, transition_t], + self.predicted_state_cov[:, :, t] + ), + np.dot( + np.transpose(self.design[mask, :, design_t]), + np.linalg.inv(F[:, :, 0]) + ) + ) + return self._kalman_gain + + @property + def standardized_forecasts_error(self): + """ + Standardized forecast errors + """ + if self._standardized_forecasts_error is None: + from scipy import linalg + self._standardized_forecasts_error = np.zeros( + self.forecasts_error.shape, dtype=self.dtype) + + for t in range(self.forecasts_error_cov.shape[2]): + if self.nmissing[t] > 0: + self._standardized_forecasts_error[:, t] = np.nan + if self.nmissing[t] < self.k_endog: + mask = ~self.missing[:, t].astype(bool) + F = self.forecasts_error_cov[np.ix_(mask, mask, [t])] + upper, _ = linalg.cho_factor(F[:, :, 0]) + self._standardized_forecasts_error[mask, t] = ( + linalg.solve_triangular( + upper, self.forecasts_error[mask, t] + ) + ) + + return self._standardized_forecasts_error + + def predict(self, start=None, end=None, dynamic=None, **kwargs): + """ + In-sample and out-of-sample prediction for state space models generally + + Parameters + ---------- + start : int, optional + Zero-indexed observation number at which to start forecasting, + i.e., the first forecast will be at start. + end : int, optional + Zero-indexed observation number at which to end forecasting, i.e., + the last forecast will be at end. + dynamic : int, optional + Offset relative to `start` at which to begin dynamic prediction. + Prior to this observation, true endogenous values will be used for + prediction; starting with this observation and continuing through + the end of prediction, forecasted endogenous values will be used + instead. + **kwargs + If the prediction range is outside of the sample range, any + of the state space representation matrices that are time-varying + must have updated values provided for the out-of-sample range. + For example, of `obs_intercept` is a time-varying component and + the prediction range extends 10 periods beyond the end of the + sample, a (`k_endog` x 10) matrix must be provided with the new + intercept values. + + Returns + ------- + results : PredictionResults + A PredictionResults object. + + Notes + ----- + All prediction is performed by applying the deterministic part of the + measurement equation using the predicted state variables. + + Out-of-sample prediction first applies the Kalman filter to missing + data for the number of periods desired to obtain the predicted states. + """ + # Cannot predict if we do not have appropriate arrays + if self.memory_no_forecast or self.memory_no_predicted: + raise ValueError('Predict is not possible if memory conservation' + ' has been used to avoid storing forecasts or' + ' predicted values.') + + # Get the start and the end of the entire prediction range + if start is None: + start = 0 + elif start < 0: + raise ValueError('Cannot predict values previous to the sample.') + if end is None: + end = self.nobs + + # Prediction and forecasting is performed by iterating the Kalman + # Kalman filter through the entire range [0, end] + # Then, everything is returned corresponding to the range [start, end]. + # In order to perform the calculations, the range is separately split + # up into the following categories: + # - static: (in-sample) the Kalman filter is run as usual + # - dynamic: (in-sample) the Kalman filter is run, but on missing data + # - forecast: (out-of-sample) the Kalman filter is run, but on missing + # data + + # Short-circuit if end is before start + if end <= start: + raise ValueError('End of prediction must be after start.') + + # Get the number of forecasts to make after the end of the sample + nforecast = max(0, end - self.nobs) + + # Get the number of dynamic prediction periods + + # If `dynamic=True`, then assume that we want to begin dynamic + # prediction at the start of the sample prediction. + if dynamic is True: + dynamic = 0 + # If `dynamic=False`, then assume we want no dynamic prediction + if dynamic is False: + dynamic = None + + ndynamic = 0 + if dynamic is not None: + # Replace the relative dynamic offset with an absolute offset + dynamic = start + dynamic + + # Validate the `dynamic` parameter + if dynamic < 0: + raise ValueError('Dynamic prediction cannot begin prior to the' + ' first observation in the sample.') + elif dynamic > end: + warn('Dynamic prediction specified to begin after the end of' + ' prediction, and so has no effect.', ValueWarning) + dynamic = None + elif dynamic > self.nobs: + warn('Dynamic prediction specified to begin during' + ' out-of-sample forecasting period, and so has no' + ' effect.', ValueWarning) + dynamic = None + + # Get the total size of the desired dynamic forecasting component + # Note: the first `dynamic` periods of prediction are actually + # *not* dynamic, because dynamic prediction begins at observation + # `dynamic`. + if dynamic is not None: + ndynamic = max(0, min(end, self.nobs) - dynamic) + + # Get the number of in-sample static predictions + nstatic = min(end, self.nobs) if dynamic is None else dynamic + + # Construct the design and observation intercept and covariance + # matrices for start-npadded:end. If not time-varying in the original + # model, then they will be copied over if none are provided in + # `kwargs`. Otherwise additional matrices must be provided in `kwargs`. + representation = {} + for name, shape in self.shapes.items(): + if name == 'obs': + continue + representation[name] = getattr(self, name) + + # Update the matrices from kwargs for forecasts + warning = ('Model has time-invariant %s matrix, so the %s' + ' argument to `predict` has been ignored.') + exception = ('Forecasting for models with time-varying %s matrix' + ' requires an updated time-varying matrix for the' + ' period to be forecasted.') + if nforecast > 0: + for name, shape in self.shapes.items(): + if name == 'obs': + continue + if representation[name].shape[-1] == 1: + if name in kwargs: + warn(warning % (name, name), ValueWarning) + elif name not in kwargs: + raise ValueError(exception % name) + else: + mat = np.asarray(kwargs[name]) + if len(shape) == 2: + validate_vector_shape(name, mat.shape, + shape[0], nforecast) + if mat.ndim < 2 or not mat.shape[1] == nforecast: + raise ValueError(exception % name) + representation[name] = np.c_[representation[name], mat] + else: + validate_matrix_shape(name, mat.shape, shape[0], + shape[1], nforecast) + if mat.ndim < 3 or not mat.shape[2] == nforecast: + raise ValueError(exception % name) + representation[name] = np.c_[representation[name], mat] + + # Update the matrices from kwargs for dynamic prediction in the case + # that `end` is less than `nobs` and `dynamic` is less than `end`. In + # this case, any time-varying matrices in the default `representation` + # will be too long, causing an error to be thrown below in the + # KalmanFilter(...) construction call, because the endog has length + # nstatic + ndynamic + nforecast, whereas the time-varying matrices + # from `representation` have length nobs. + if ndynamic > 0 and end < self.nobs: + for name, shape in self.shapes.items(): + if not name == 'obs' and representation[name].shape[-1] > 1: + representation[name] = representation[name][..., :end] + + # Construct the predicted state and covariance matrix for each time + # period depending on whether that time period corresponds to + # one-step-ahead prediction, dynamic prediction, or out-of-sample + # forecasting. + + # If we only have simple prediction, then we can use the already saved + # Kalman filter output + if ndynamic == 0 and nforecast == 0: + results = self + else: + # Construct the new endogenous array. + endog = np.empty((self.k_endog, ndynamic + nforecast)) + endog.fill(np.nan) + endog = np.asfortranarray(np.c_[self.endog[:, :nstatic], endog]) + + # Setup the new statespace representation + model_kwargs = { + 'filter_method': self.filter_method, + 'inversion_method': self.inversion_method, + 'stability_method': self.stability_method, + 'conserve_memory': self.conserve_memory, + 'tolerance': self.tolerance, + 'loglikelihood_burn': self.loglikelihood_burn + } + model_kwargs.update(representation) + model = KalmanFilter( + endog, self.k_states, self.k_posdef, **model_kwargs + ) + model.initialize_known( + self.initial_state, + self.initial_state_cov + ) + model._initialize_filter() + model._initialize_state() + + results = self._predict(nstatic, ndynamic, nforecast, model) + + return PredictionResults(results, start, end, nstatic, ndynamic, + nforecast) + + def _predict(self, nstatic, ndynamic, nforecast, model): + # TODO: this doesn't use self, and can either be a static method or + # moved outside the class altogether. + + # Get the underlying filter + kfilter = model._kalman_filter + + # Save this (which shares memory with the memoryview on which the + # Kalman filter will be operating) so that we can replace actual data + # with predicted data during dynamic forecasting + endog = model._representations[model.prefix]['obs'] + + # print(nstatic, ndynamic, nforecast, model.nobs) + + for t in range(kfilter.model.nobs): + # Run the Kalman filter for the first `nstatic` periods (for + # which dynamic computation will not be performed) + if t < nstatic: + next(kfilter) + # Perform dynamic prediction + elif t < nstatic + ndynamic: + design_t = 0 if model.design.shape[2] == 1 else t + obs_intercept_t = 0 if model.obs_intercept.shape[1] == 1 else t + + # Unconditional value is the intercept (often zeros) + endog[:, t] = model.obs_intercept[:, obs_intercept_t] + # If t > 0, then we can condition the forecast on the state + if t > 0: + # Predict endog[:, t] given `predicted_state` calculated in + # previous iteration (i.e. t-1) + endog[:, t] += np.dot( + model.design[:, :, design_t], + kfilter.predicted_state[:, t] + ) + + # Advance Kalman filter + next(kfilter) + # Perform any (one-step-ahead) forecasting + else: + next(kfilter) + + # Return the predicted state and predicted state covariance matrices + results = FilterResults(model) + results.update_filter(kfilter) + return results + + +class PredictionResults(FilterResults): + """ + Results of in-sample and out-of-sample prediction for state space models + generally + + Parameters + ---------- + results : FilterResults + Output from filtering, corresponding to the prediction desired + start : int + Zero-indexed observation number at which to start forecasting, + i.e., the first forecast will be at start. + end : int + Zero-indexed observation number at which to end forecasting, i.e., + the last forecast will be at end. + nstatic : int + Number of in-sample static predictions (these are always the first + elements of the prediction output). + ndynamic : int + Number of in-sample dynamic predictions (these always follow the static + predictions directly, and are directly followed by the forecasts). + nforecast : int + Number of in-sample forecasts (these always follow the dynamic + predictions directly). + + Attributes + ---------- + npredictions : int + Number of observations in the predicted series; this is not necessarily + the same as the number of observations in the original model from which + prediction was performed. + start : int + Zero-indexed observation number at which to start prediction, + i.e., the first predict will be at `start`; this is relative to the + original model from which prediction was performed. + end : int + Zero-indexed observation number at which to end prediction, + i.e., the last predict will be at `end`; this is relative to the + original model from which prediction was performed. + nstatic : int + Number of in-sample static predictions. + ndynamic : int + Number of in-sample dynamic predictions. + nforecast : int + Number of in-sample forecasts. + endog : array + The observation vector. + design : array + The design matrix, :math:`Z`. + obs_intercept : array + The intercept for the observation equation, :math:`d`. + obs_cov : array + The covariance matrix for the observation equation :math:`H`. + transition : array + The transition matrix, :math:`T`. + state_intercept : array + The intercept for the transition equation, :math:`c`. + selection : array + The selection matrix, :math:`R`. + state_cov : array + The covariance matrix for the state equation :math:`Q`. + filtered_state : array + The filtered state vector at each time period. + filtered_state_cov : array + The filtered state covariance matrix at each time period. + predicted_state : array + The predicted state vector at each time period. + predicted_state_cov : array + The predicted state covariance matrix at each time period. + forecasts : array + The one-step-ahead forecasts of observations at each time period. + forecasts_error : array + The forecast errors at each time period. + forecasts_error_cov : array + The forecast error covariance matrices at each time period. + + Notes + ----- + The provided ranges must be conformable, meaning that it must be that + `end - start == nstatic + ndynamic + nforecast`. + + This class is essentially a view to the FilterResults object, but + returning the appropriate ranges for everything. + + """ + representation_attributes = [ + 'endog', 'design', 'design', 'obs_intercept', + 'obs_cov', 'transition', 'state_intercept', 'selection', + 'state_cov' + ] + filter_attributes = [ + 'filtered_state', 'filtered_state_cov', + 'predicted_state', 'predicted_state_cov', + 'forecasts', 'forecasts_error', 'forecasts_error_cov' + ] + + def __init__(self, results, start, end, nstatic, ndynamic, nforecast): + from scipy import stats + + # Save the filter results object + self.results = results + + # Save prediction ranges + self.npredictions = start - end + self.start = start + self.end = end + self.nstatic = nstatic + self.ndynamic = ndynamic + self.nforecast = nforecast + + def __getattr__(self, attr): + """ + Provide access to the representation and filtered output in the + appropriate range (`start` - `end`). + """ + # Prevent infinite recursive lookups + if attr[0] == '_': + raise AttributeError("'%s' object has no attribute '%s'" % + (self.__class__.__name__, attr)) + + _attr = '_' + attr + + # Cache the attribute + if not hasattr(self, _attr): + if attr == 'endog' or attr in self.filter_attributes: + # Get a copy + value = getattr(self.results, attr).copy() + # Subset to the correct time frame + value = value[..., self.start:self.end] + elif attr in self.representation_attributes: + value = getattr(self.results, attr).copy() + # If a time-invariant matrix, return it. Otherwise, subset to + # the correct period. + if value.shape[-1] == 1: + value = value[..., 0] + else: + value = value[..., self.start:self.end] + else: + raise AttributeError("'%s' object has no attribute '%s'" % + (self.__class__.__name__, attr)) + + setattr(self, _attr, value) + + return getattr(self, _attr) diff --git a/statsmodels/tsa/statespace/kalman_smoother.py b/statsmodels/tsa/statespace/kalman_smoother.py new file mode 100644 index 0000000..271d968 --- /dev/null +++ b/statsmodels/tsa/statespace/kalman_smoother.py @@ -0,0 +1,802 @@ +""" +Kalman Smoother + +Author: Chad Fulton +License: Simplified-BSD +""" +from __future__ import division, absolute_import, print_function + +from collections import namedtuple +import warnings + +import numpy as np + +from statsmodels.tsa.statespace.representation import OptionWrapper +from statsmodels.tsa.statespace.kalman_filter import (KalmanFilter, + FilterResults) +from statsmodels.tools.sm_exceptions import ValueWarning + +SMOOTHER_STATE = 0x01 # Durbin and Koopman (2012), Chapter 4.4.2 +SMOOTHER_STATE_COV = 0x02 # ibid., Chapter 4.4.3 +SMOOTHER_DISTURBANCE = 0x04 # ibid., Chapter 4.5 +SMOOTHER_DISTURBANCE_COV = 0x08 # ibid., Chapter 4.5 +SMOOTHER_ALL = ( + SMOOTHER_STATE | SMOOTHER_STATE_COV | SMOOTHER_DISTURBANCE | + SMOOTHER_DISTURBANCE_COV +) + +_SmootherOutput = namedtuple('_SmootherOutput', ( + 'tmp_L' + ' scaled_smoothed_estimator scaled_smoothed_estimator_cov' + ' smoothing_error' + ' smoothed_state smoothed_state_cov' + ' smoothed_state_disturbance smoothed_state_disturbance_cov' + ' smoothed_measurement_disturbance smoothed_measurement_disturbance_cov' +)) + + +class _KalmanSmoother(object): + + def __init__(self, model, kfilter, smoother_output): + # Save values + self.model = model + self.kfilter = kfilter + self._kfilter = model._kalman_filter + self.smoother_output = smoother_output + + # Create storage + self.scaled_smoothed_estimator = None + self.scaled_smoothed_estimator_cov = None + self.smoothing_error = None + self.smoothed_state = None + self.smoothed_state_cov = None + self.smoothed_state_disturbance = None + self.smoothed_state_disturbance_cov = None + self.smoothed_measurement_disturbance = None + self.smoothed_measurement_disturbance_cov = None + + # Intermediate values + self.tmp_L = np.zeros((model.k_states, model.k_states, model.nobs), + dtype=kfilter.dtype) + + if smoother_output & (SMOOTHER_STATE | SMOOTHER_DISTURBANCE): + self.scaled_smoothed_estimator = ( + np.zeros((model.k_states, model.nobs+1), dtype=kfilter.dtype)) + self.smoothing_error = ( + np.zeros((model.k_endog, model.nobs), dtype=kfilter.dtype)) + if smoother_output & (SMOOTHER_STATE_COV | SMOOTHER_DISTURBANCE_COV): + self.scaled_smoothed_estimator_cov = ( + np.zeros((model.k_states, model.k_states, model.nobs + 1), + dtype=kfilter.dtype)) + + # State smoothing + if smoother_output & SMOOTHER_STATE: + self.smoothed_state = np.zeros((model.k_states, model.nobs), + dtype=kfilter.dtype) + if smoother_output & SMOOTHER_STATE_COV: + self.smoothed_state_cov = ( + np.zeros((model.k_states, model.k_states, model.nobs), + dtype=kfilter.dtype)) + + # Disturbance smoothing + if smoother_output & SMOOTHER_DISTURBANCE: + self.smoothed_state_disturbance = ( + np.zeros((model.k_posdef, model.nobs), dtype=kfilter.dtype)) + self.smoothed_measurement_disturbance = ( + np.zeros((model.k_endog, model.nobs), dtype=kfilter.dtype)) + if smoother_output & SMOOTHER_DISTURBANCE_COV: + self.smoothed_state_disturbance_cov = ( + np.zeros((model.k_posdef, model.k_posdef, model.nobs), + dtype=kfilter.dtype)) + self.smoothed_measurement_disturbance_cov = ( + np.zeros((model.k_endog, model.k_endog, model.nobs), + dtype=kfilter.dtype)) + + def seek(self, t): + if t >= self.model.nobs: + raise IndexError("Observation index out of range") + self.t = t + + def __iter__(self): + return self + + def __call__(self): + self.seek(self.model.nobs-1) + # Perform backwards smoothing iterations + for i in range(self.model.nobs-1, -1, -1): + next(self) + + def next(self): + # next() is required for compatibility with Python2.7. + return self.__next__() + + def __next__(self): + # Check for valid iteration + if not self.t >= 0: + raise StopIteration + + # Get local copies of variables + t = self.t + kfilter = self.kfilter + _kfilter = self._kfilter + model = self.model + smoother_output = self.smoother_output + + scaled_smoothed_estimator = self.scaled_smoothed_estimator + scaled_smoothed_estimator_cov = self.scaled_smoothed_estimator_cov + smoothing_error = self.smoothing_error + smoothed_state = self.smoothed_state + smoothed_state_cov = self.smoothed_state_cov + smoothed_state_disturbance = self.smoothed_state_disturbance + smoothed_state_disturbance_cov = self.smoothed_state_disturbance_cov + smoothed_measurement_disturbance = ( + self.smoothed_measurement_disturbance) + smoothed_measurement_disturbance_cov = ( + self.smoothed_measurement_disturbance_cov) + tmp_L = self.tmp_L + + # Seek the Cython Kalman filter to the right place, setup matrices + _kfilter.seek(t, False) + _kfilter.initialize_statespace_object_pointers() + _kfilter.initialize_filter_object_pointers() + _kfilter.select_missing() + + missing_entire_obs = ( + _kfilter.model.nmissing[t] == _kfilter.model.k_endog) + missing_partial_obs = ( + not missing_entire_obs and _kfilter.model.nmissing[t] > 0) + + # Get the appropriate (possibly time-varying) indices + design_t = 0 if kfilter.design.shape[2] == 1 else t + obs_cov_t = 0 if kfilter.obs_cov.shape[2] == 1 else t + transition_t = 0 if kfilter.transition.shape[2] == 1 else t + selection_t = 0 if kfilter.selection.shape[2] == 1 else t + state_cov_t = 0 if kfilter.state_cov.shape[2] == 1 else t + + # Get endog dimension (can vary if there missing data) + k_endog = _kfilter.k_endog + + # Get references to representation matrices and Kalman filter output + transition = model.transition[:, :, transition_t] + selection = model.selection[:, :, selection_t] + state_cov = model.state_cov[:, :, state_cov_t] + + predicted_state = kfilter.predicted_state[:, t] + predicted_state_cov = kfilter.predicted_state_cov[:, :, t] + + mask = ~kfilter.missing[:, t].astype(bool) + if missing_partial_obs: + design = np.array( + _kfilter.selected_design[:k_endog*model.k_states], copy=True + ).reshape(k_endog, model.k_states, order='F') + obs_cov = np.array( + _kfilter.selected_obs_cov[:k_endog**2], copy=True + ).reshape(k_endog, k_endog) + kalman_gain = kfilter.kalman_gain[:, mask, t] + + forecasts_error_cov = np.array( + _kfilter.forecast_error_cov[:, :, t], copy=True + ).ravel(order='F')[:k_endog**2].reshape(k_endog, k_endog) + forecasts_error = np.array( + _kfilter.forecast_error[:k_endog, t], copy=True) + F_inv = np.linalg.inv(forecasts_error_cov) + else: + if missing_entire_obs: + design = np.zeros(model.design.shape[:-1]) + else: + design = model.design[:, :, design_t] + obs_cov = model.obs_cov[:, :, obs_cov_t] + kalman_gain = kfilter.kalman_gain[:, :, t] + forecasts_error_cov = kfilter.forecasts_error_cov[:, :, t] + forecasts_error = kfilter.forecasts_error[:, t] + F_inv = np.linalg.inv(forecasts_error_cov) + + # Create a temporary matrix + tmp_L[:, :, t] = transition - kalman_gain.dot(design) + L = tmp_L[:, :, t] + + # Perform the recursion + + # Intermediate values + if smoother_output & (SMOOTHER_STATE | SMOOTHER_DISTURBANCE): + if missing_entire_obs: + # smoothing_error is undefined here, keep it as zeros + scaled_smoothed_estimator[:, t - 1] = ( + transition.transpose().dot(scaled_smoothed_estimator[:, t]) + ) + else: + smoothing_error[:k_endog, t] = ( + F_inv.dot(forecasts_error) - + kalman_gain.transpose().dot( + scaled_smoothed_estimator[:, t]) + ) + scaled_smoothed_estimator[:, t - 1] = ( + design.transpose().dot(smoothing_error[:k_endog, t]) + + transition.transpose().dot(scaled_smoothed_estimator[:, t]) + ) + if smoother_output & (SMOOTHER_STATE_COV | SMOOTHER_DISTURBANCE_COV): + if missing_entire_obs: + scaled_smoothed_estimator_cov[:, :, t - 1] = ( + L.transpose().dot( + scaled_smoothed_estimator_cov[:, :, t] + ).dot(L) + ) + else: + scaled_smoothed_estimator_cov[:, :, t - 1] = ( + design.transpose().dot(F_inv).dot(design) + + L.transpose().dot( + scaled_smoothed_estimator_cov[:, :, t] + ).dot(L) + ) + + # State smoothing + if smoother_output & SMOOTHER_STATE: + smoothed_state[:, t] = ( + predicted_state + + predicted_state_cov.dot(scaled_smoothed_estimator[:, t - 1]) + ) + if smoother_output & SMOOTHER_STATE_COV: + smoothed_state_cov[:, :, t] = ( + predicted_state_cov - + predicted_state_cov.dot( + scaled_smoothed_estimator_cov[:, :, t - 1] + ).dot(predicted_state_cov) + ) + + # Disturbance smoothing + if smoother_output & (SMOOTHER_DISTURBANCE | SMOOTHER_DISTURBANCE_COV): + QR = state_cov.dot(selection.transpose()) + + if smoother_output & SMOOTHER_DISTURBANCE: + smoothed_state_disturbance[:, t] = ( + QR.dot(scaled_smoothed_estimator[:, t]) + ) + # measurement disturbance is set to zero when all missing + # (unconditional distribution) + if not missing_entire_obs: + smoothed_measurement_disturbance[mask, t] = ( + obs_cov.dot(smoothing_error[:k_endog, t]) + ) + + if smoother_output & SMOOTHER_DISTURBANCE_COV: + smoothed_state_disturbance_cov[:, :, t] = ( + state_cov - + QR.dot( + scaled_smoothed_estimator_cov[:, :, t] + ).dot(QR.transpose()) + ) + + if missing_entire_obs: + smoothed_measurement_disturbance_cov[:, :, t] = obs_cov + else: + # For non-missing portion, calculate as usual + ix = np.ix_(mask, mask, [t]) + smoothed_measurement_disturbance_cov[ix] = ( + obs_cov - obs_cov.dot( + F_inv + kalman_gain.transpose().dot( + scaled_smoothed_estimator_cov[:, :, t] + ).dot(kalman_gain) + ).dot(obs_cov) + )[:, :, np.newaxis] + + # For missing portion, use unconditional distribution + ix = np.ix_(~mask, ~mask, [t]) + mod_ix = np.ix_(~mask, ~mask, [0]) + smoothed_measurement_disturbance_cov[ix] = np.copy( + model.obs_cov[:, :, obs_cov_t:obs_cov_t+1])[mod_ix] + + # Advance the smoother + self.t -= 1 + + +class KalmanSmoother(KalmanFilter): + r""" + State space representation of a time series process, with Kalman filter + and smoother. + + Parameters + ---------- + k_endog : array_like or integer + The observed time-series process :math:`y` if array like or the + number of variables in the process if an integer. + k_states : int + The dimension of the unobserved state process. + k_posdef : int, optional + The dimension of a guaranteed positive definite covariance matrix + describing the shocks in the measurement equation. Must be less than + or equal to `k_states`. Default is `k_states`. + results_class : class, optional + Default results class to use to save filtering output. Default is + `SmootherResults`. If specified, class must extend from + `SmootherResults`. + **kwargs + Keyword arguments may be used to provide default values for state space + matrices, for Kalman filtering options, or for Kalman smoothing + options. See `Representation` for more details. + """ + + smoother_outputs = [ + 'smoother_state', 'smoother_state_cov', 'smoother_disturbance', + 'smoother_disturbance_cov', 'smoother_all', + ] + + smoother_state = OptionWrapper('smoother_output', SMOOTHER_STATE) + smoother_state_cov = OptionWrapper('smoother_output', SMOOTHER_STATE_COV) + smoother_disturbance = ( + OptionWrapper('smoother_output', SMOOTHER_DISTURBANCE) + ) + smoother_disturbance_cov = ( + OptionWrapper('smoother_output', SMOOTHER_DISTURBANCE_COV) + ) + smoother_all = OptionWrapper('smoother_output', SMOOTHER_ALL) + + # Default smoother options + smoother_output = SMOOTHER_ALL + + def __init__(self, k_endog, k_states, k_posdef=None, results_class=None, + **kwargs): + # Set the default results class + if results_class is None: + results_class = SmootherResults + + super(KalmanSmoother, self).__init__( + k_endog, k_states, k_posdef, results_class=results_class, **kwargs + ) + + # Set the smoother output + self.set_smoother_output(**kwargs) + + def set_smoother_output(self, smoother_output=None, **kwargs): + """ + Set the smoother output + + The smoother can produce several types of results. The smoother output + variable controls which are calculated and returned. + + Parameters + ---------- + smoother_output : integer, optional + Bitmask value to set the smoother output to. See notes for details. + **kwargs + Keyword arguments may be used to influence the smoother output by + setting individual boolean flags. See notes for details. + + Notes + ----- + The smoother output is defined by a collection of boolean flags, and + is internally stored as a bitmask. The methods available are: + + SMOOTHER_STATE = 0x01 + Calculate and return the smoothed states. + SMOOTHER_STATE_COV = 0x02 + Calculate and return the smoothed state covariance matrices. + SMOOTHER_DISTURBANCE = 0x04 + Calculate and return the smoothed state and observation + disturbances. + SMOOTHER_DISTURBANCE_COV = 0x08 + Calculate and return the covariance matrices for the smoothed state + and observation disturbances. + SMOOTHER_ALL + Calculate and return all results. + + If the bitmask is set directly via the `smoother_output` argument, then + the full method must be provided. + + If keyword arguments are used to set individual boolean flags, then + the lowercase of the method must be used as an argument name, and the + value is the desired value of the boolean flag (True or False). + + Note that the smoother output may also be specified by directly + modifying the class attributes which are defined similarly to the + keyword arguments. + + The default smoother output is SMOOTHER_ALL. + + If performance is a concern, only those results which are needed should + be specified as any results that are not specified will not be + calculated. For example, if the smoother output is set to only include + SMOOTHER_STATE, the smoother operates much more quickly than if all + output is required. + + Examples + -------- + >>> mod = sm.tsa.statespace.KalmanSmoother(1,1) + >>> mod.smoother_output + 15 + >>> mod.set_smoother_output(smoother_output=0) + >>> mod.smoother_state = True + >>> mod.smoother_output + 1 + >>> mod.smoother_state + True + """ + if smoother_output is not None: + self.smoother_output = smoother_output + for name in KalmanSmoother.smoother_outputs: + if name in kwargs: + setattr(self, name, kwargs[name]) + + def smooth(self, smoother_output=None, results=None, run_filter=True, + prefix=None, complex_step=False, **kwargs): + """ + Apply the Kalman smoother to the statespace model. + + Parameters + ---------- + smoother_output : int, optional + Determines which Kalman smoother output calculate. Default is all + (including state, disturbances, and all covariances). + results : class or object, optional + If a class, then that class is instantiated and returned with the + result of both filtering and smoothing. + If an object, then that object is updated with the smoothing data. + If None, then a SmootherResults object is returned with both + filtering and smoothing results. + run_filter : bool, optional + Whether or not to run the Kalman filter prior to smoothing. Default + is True. + prefix : string + The prefix of the datatype. Usually only used internally. + + Returns + ------- + SmootherResults object + """ + if smoother_output is None: + smoother_output = self.smoother_output + + # Set the class to be the default results class, if None provided + if results is None: + results = self.results_class + + # Initialize the filter and statespace object if necessary + prefix, dtype, create_filter, create_statespace = ( + self._initialize_filter(**kwargs) + ) + + # Instantiate a new results object, if required + new_results = False + if isinstance(results, type): + if not issubclass(results, SmootherResults): + raise ValueError('Invalid results class provided.') + results = results(self) + new_results = True + + # Run the filter + kfilter = self._kalman_filters[prefix] + if not run_filter and (not kfilter.t == self.nobs or create_filter): + run_filter = True + warnings.warn('Despite `run_filter=False`, Kalman filtering was' + ' performed because filtering was not complete.', + ValueWarning) + if run_filter: + self._initialize_state(prefix=prefix, complex_step=complex_step) + kfilter() + + # Update the results object with filtered output + # Update the model features; unless we had to recreate the + # statespace, only update the filter options + if not new_results: + results.update_representation(self) + if run_filter: + results.update_filter(kfilter) + + # Run the smoother and update the output + smoother = _KalmanSmoother(self, results, smoother_output) + smoother() + + output = _SmootherOutput( + tmp_L=smoother.tmp_L, + scaled_smoothed_estimator=smoother.scaled_smoothed_estimator, + scaled_smoothed_estimator_cov=( + smoother.scaled_smoothed_estimator_cov), + smoothing_error=smoother.smoothing_error, + smoothed_state=smoother.smoothed_state, + smoothed_state_cov=smoother.smoothed_state_cov, + smoothed_state_disturbance=smoother.smoothed_state_disturbance, + smoothed_state_disturbance_cov=( + smoother.smoothed_state_disturbance_cov), + smoothed_measurement_disturbance=( + smoother.smoothed_measurement_disturbance), + smoothed_measurement_disturbance_cov=( + smoother.smoothed_measurement_disturbance_cov), + ) + results.update_smoother(output) + + return results + + +class SmootherResults(FilterResults): + """ + Results from applying the Kalman smoother and/or filter to a state space + model. + + Parameters + ---------- + model : Representation + A Statespace representation + + Attributes + ---------- + nobs : int + Number of observations. + k_endog : int + The dimension of the observation series. + k_states : int + The dimension of the unobserved state process. + k_posdef : int + The dimension of a guaranteed positive definite covariance matrix + describing the shocks in the measurement equation. + dtype : dtype + Datatype of representation matrices + prefix : str + BLAS prefix of representation matrices + shapes : dictionary of name:tuple + A dictionary recording the shapes of each of the representation + matrices as tuples. + endog : array + The observation vector. + design : array + The design matrix, :math:`Z`. + obs_intercept : array + The intercept for the observation equation, :math:`d`. + obs_cov : array + The covariance matrix for the observation equation :math:`H`. + transition : array + The transition matrix, :math:`T`. + state_intercept : array + The intercept for the transition equation, :math:`c`. + selection : array + The selection matrix, :math:`R`. + state_cov : array + The covariance matrix for the state equation :math:`Q`. + missing : array of bool + An array of the same size as `endog`, filled with boolean values that + are True if the corresponding entry in `endog` is NaN and False + otherwise. + nmissing : array of int + An array of size `nobs`, where the ith entry is the number (between 0 + and k_endog) of NaNs in the ith row of the `endog` array. + time_invariant : bool + Whether or not the representation matrices are time-invariant + initialization : str + Kalman filter initialization method. + initial_state : array_like + The state vector used to initialize the Kalamn filter. + initial_state_cov : array_like + The state covariance matrix used to initialize the Kalamn filter. + filter_method : int + Bitmask representing the Kalman filtering method + inversion_method : int + Bitmask representing the method used to invert the forecast error + covariance matrix. + stability_method : int + Bitmask representing the methods used to promote numerical stability in + the Kalman filter recursions. + conserve_memory : int + Bitmask representing the selected memory conservation method. + tolerance : float + The tolerance at which the Kalman filter determines convergence to + steady-state. + loglikelihood_burn : int + The number of initial periods during which the loglikelihood is not + recorded. + converged : bool + Whether or not the Kalman filter converged. + period_converged : int + The time period in which the Kalman filter converged. + filtered_state : array + The filtered state vector at each time period. + filtered_state_cov : array + The filtered state covariance matrix at each time period. + predicted_state : array + The predicted state vector at each time period. + predicted_state_cov : array + The predicted state covariance matrix at each time period. + kalman_gain : array + The Kalman gain at each time period. + forecasts : array + The one-step-ahead forecasts of observations at each time period. + forecasts_error : array + The forecast errors at each time period. + forecasts_error_cov : array + The forecast error covariance matrices at each time period. + loglikelihood : array + The loglikelihood values at each time period. + collapsed_forecasts : array + If filtering using collapsed observations, stores the one-step-ahead + forecasts of collapsed observations at each time period. + collapsed_forecasts_error : array + If filtering using collapsed observations, stores the one-step-ahead + forecast errors of collapsed observations at each time period. + collapsed_forecasts_error_cov : array + If filtering using collapsed observations, stores the one-step-ahead + forecast error covariance matrices of collapsed observations at each + time period. + standardized_forecast_error : array + The standardized forecast errors + smoother_output : int + Bitmask representing the generated Kalman smoothing output + scaled_smoothed_estimator : array + The scaled smoothed estimator at each time period. + scaled_smoothed_estimator_cov : array + The scaled smoothed estimator covariance matrices at each time period. + smoothing_error : array + The smoothing error covariance matrices at each time period. + smoothed_state : array + The smoothed state at each time period. + smoothed_state_cov : array + The smoothed state covariance matrices at each time period. + smoothed_measurement_disturbance : array + The smoothed measurement at each time period. + smoothed_state_disturbance : array + The smoothed state at each time period. + smoothed_measurement_disturbance_cov : array + The smoothed measurement disturbance covariance matrices at each time + period. + smoothed_state_disturbance_cov : array + The smoothed state disturbance covariance matrices at each time period. + """ + + _smoother_attributes = [ + 'smoother_output', 'scaled_smoothed_estimator', + 'scaled_smoothed_estimator_cov', 'smoothing_error', + 'smoothed_state', 'smoothed_state_cov', + 'smoothed_measurement_disturbance', 'smoothed_state_disturbance', + 'smoothed_measurement_disturbance_cov', + 'smoothed_state_disturbance_cov' + ] + + _smoother_options = KalmanSmoother.smoother_outputs + + _attributes = FilterResults._model_attributes + _smoother_attributes + + def update_representation(self, model, only_options=False): + """ + Update the results to match a given model + + Parameters + ---------- + model : Representation + The model object from which to take the updated values. + only_options : boolean, optional + If set to true, only the smoother and filter options are updated, + and the state space representation is not updated. Default is + False. + + Notes + ----- + This method is rarely required except for internal usage. + """ + super(SmootherResults, self).update_representation(model, only_options) + + # Save the options as boolean variables + for name in self._smoother_options: + setattr(self, name, getattr(model, name, None)) + + # Initialize holders for smoothed forecasts + self._smoothed_forecasts = None + self._smoothed_forecasts_error = None + self._smoothed_forecasts_error_cov = None + + def update_smoother(self, smoother): + """ + Update the smoother results + + Parameters + ---------- + smoother : KalmanSmoother + The model object from which to take the updated values. + + Notes + ----- + This method is rarely required except for internal usage. + """ + # Copy the appropriate output + attributes = [] + + # Since update_representation will already have been called, we can + # use the boolean options smoother_* and know they match the smoother + # itself + if self.smoother_state or self.smoother_disturbance: + attributes.append('scaled_smoothed_estimator') + if self.smoother_state_cov or self.smoother_disturbance_cov: + attributes.append('scaled_smoothed_estimator_cov') + if self.smoother_state: + attributes.append('smoothed_state') + if self.smoother_state_cov: + attributes.append('smoothed_state_cov') + if self.smoother_disturbance: + attributes += [ + 'smoothing_error', + 'smoothed_measurement_disturbance', + 'smoothed_state_disturbance' + ] + if self.smoother_disturbance_cov: + attributes += [ + 'smoothed_measurement_disturbance_cov', + 'smoothed_state_disturbance_cov' + ] + + for name in self._smoother_attributes: + if name == 'smoother_output': + pass + elif name in attributes: + setattr( + self, name, + np.array(getattr(smoother, name, None), copy=True) + ) + else: + setattr(self, name, None) + + # Adjustments + + # For r_t (and similarly for N_t), what was calculated was + # r_T, ..., r_{-1}, and stored such that + # scaled_smoothed_estimator[-1] == r_{-1}. We only want r_0, ..., r_T + # so exclude the last element so that the time index is consistent + # with the other returned output + if 'scaled_smoothed_estimator' in attributes: + self.scaled_smoothed_estimator = ( + self.scaled_smoothed_estimator[:, :-1] + ) + if 'scaled_smoothed_estimator_cov' in attributes: + self.scaled_smoothed_estimator_cov = ( + self.scaled_smoothed_estimator_cov[:, :, :-1] + ) + + # Clear the smoothed forecasts + self._smoothed_forecasts = None + self._smoothed_forecasts_error = None + self._smoothed_forecasts_error_cov = None + + def _get_smoothed_forecasts(self): + if self._smoothed_forecasts is None: + # Initialize empty arrays + self._smoothed_forecasts = np.zeros(self.forecasts.shape, + dtype=self.dtype) + self._smoothed_forecasts_error = ( + np.zeros(self.forecasts_error.shape, dtype=self.dtype) + ) + self._smoothed_forecasts_error_cov = ( + np.zeros(self.forecasts_error_cov.shape, dtype=self.dtype) + ) + + for t in range(self.nobs): + design_t = 0 if self.design.shape[2] == 1 else t + obs_cov_t = 0 if self.obs_cov.shape[2] == 1 else t + obs_intercept_t = 0 if self.obs_intercept.shape[1] == 1 else t + + mask = ~self.missing[:, t].astype(bool) + # We can recover forecasts + self._smoothed_forecasts[:, t] = np.dot( + self.design[:, :, design_t], self.smoothed_state[:, t] + ) + self.obs_intercept[:, obs_intercept_t] + if self.nmissing[t] > 0: + self._smoothed_forecasts_error[:, t] = np.nan + self._smoothed_forecasts_error[mask, t] = ( + self.endog[mask, t] - self._smoothed_forecasts[mask, t] + ) + self._smoothed_forecasts_error_cov[:, :, t] = np.dot( + np.dot(self.design[:, :, design_t], + self.smoothed_state_cov[:, :, t]), + self.design[:, :, design_t].T + ) + self.obs_cov[:, :, obs_cov_t] + + return ( + self._smoothed_forecasts, + self._smoothed_forecasts_error, + self._smoothed_forecasts_error_cov + ) + + @property + def smoothed_forecasts(self): + return self._get_smoothed_forecasts()[0] + + @property + def smoothed_forecasts_error(self): + return self._get_smoothed_forecasts()[1] + + @property + def smoothed_forecasts_error_cov(self): + return self._get_smoothed_forecasts()[2] diff --git a/statsmodels/tsa/statespace/mlemodel.py b/statsmodels/tsa/statespace/mlemodel.py new file mode 100644 index 0000000..74cc85b --- /dev/null +++ b/statsmodels/tsa/statespace/mlemodel.py @@ -0,0 +1,2829 @@ +""" +State Space Model + +Author: Chad Fulton +License: Simplified-BSD +""" +from __future__ import division, absolute_import, print_function +from statsmodels.compat.python import long + +import numpy as np +import pandas as pd +from scipy.stats import norm + +from .kalman_smoother import KalmanSmoother, SmootherResults +from .kalman_filter import (KalmanFilter, FilterResults, INVERT_UNIVARIATE, + SOLVE_LU) +import statsmodels.tsa.base.tsa_model as tsbase +import statsmodels.base.wrapper as wrap +from statsmodels.tools.numdiff import (_get_epsilon, approx_hess_cs, + approx_fprime_cs, approx_fprime) +from statsmodels.tools.decorators import cache_readonly, resettable_cache +from statsmodels.tools.eval_measures import aic, bic, hqic +from statsmodels.tools.tools import pinv_extended, Bunch +from statsmodels.tools.sm_exceptions import PrecisionWarning +import statsmodels.genmod._prediction as pred +from statsmodels.genmod.families.links import identity +import warnings + + +class MLEModel(tsbase.TimeSeriesModel): + r""" + State space model for maximum likelihood estimation + + Parameters + ---------- + endog : array_like + The observed time-series process :math:`y` + k_states : int + The dimension of the unobserved state process. + exog : array_like, optional + Array of exogenous regressors, shaped nobs x k. Default is no + exogenous regressors. + dates : array-like of datetime, optional + An array-like object of datetime objects. If a Pandas object is given + for endog, it is assumed to have a DateIndex. + freq : str, optional + The frequency of the time-series. A Pandas offset or 'B', 'D', 'W', + 'M', 'A', or 'Q'. This is optional if dates are given. + **kwargs + Keyword arguments may be used to provide default values for state space + matrices or for Kalman filtering options. See `Representation`, and + `KalmanFilter` for more details. + + Attributes + ---------- + ssm : KalmanFilter + Underlying state space representation. + + Notes + ----- + This class wraps the state space model with Kalman filtering to add in + functionality for maximum likelihood estimation. In particular, it adds + the concept of updating the state space representation based on a defined + set of parameters, through the `update` method or `updater` attribute (see + below for more details on which to use when), and it adds a `fit` method + which uses a numerical optimizer to select the parameters that maximize + the likelihood of the model. + + The `start_params` `update` method must be overridden in the + child class (and the `transform` and `untransform` methods, if needed). + + See Also + -------- + MLEResults + statsmodels.tsa.statespace.kalman_filter.KalmanFilter + statsmodels.tsa.statespace.representation.Representation + """ + + def __init__(self, endog, k_states, exog=None, dates=None, freq=None, + **kwargs): + # Initialize the model base + super(MLEModel, self).__init__(endog=endog, exog=exog, + dates=dates, freq=freq, + missing='none') + + # Store kwargs to recreate model + self._init_kwargs = kwargs + + # Prepared the endog array: C-ordered, shape=(nobs x k_endog) + self.endog, self.exog = self.prepare_data() + + # Dimensions + self.nobs = self.endog.shape[0] + self.k_states = k_states + + # Initialize the state-space representation + self.initialize_statespace(**kwargs) + + def prepare_data(self): + """ + Prepare data for use in the state space representation + """ + endog = np.array(self.data.orig_endog, order='C') + exog = self.data.orig_exog + if exog is not None: + exog = np.array(exog) + + # Base class may allow 1-dim data, whereas we need 2-dim + if endog.ndim == 1: + endog.shape = (endog.shape[0], 1) # this will be C-contiguous + + return endog, exog + + def initialize_statespace(self, **kwargs): + """ + Initialize the state space representation + + Parameters + ---------- + **kwargs + Additional keyword arguments to pass to the state space class + constructor. + + """ + # (Now self.endog is C-ordered and in long format (nobs x k_endog). To + # get F-ordered and in wide format just need to transpose) + endog = self.endog.T + + # Instantiate the state space object + self.ssm = KalmanSmoother(endog.shape[0], self.k_states, **kwargs) + # Bind the data to the model + self.ssm.bind(endog) + + # Other dimensions, now that `ssm` is available + self.k_endog = self.ssm.k_endog + + def __setitem__(self, key, value): + return self.ssm.__setitem__(key, value) + + def __getitem__(self, key): + return self.ssm.__getitem__(key) + + def set_filter_method(self, filter_method=None, **kwargs): + """ + Set the filtering method + + The filtering method controls aspects of which Kalman filtering + approach will be used. + + Parameters + ---------- + filter_method : integer, optional + Bitmask value to set the filter method to. See notes for details. + **kwargs + Keyword arguments may be used to influence the filter method by + setting individual boolean flags. See notes for details. + + Notes + ----- + This method is rarely used. See the corresponding function in the + `KalmanFilter` class for details. + """ + self.ssm.set_filter_method(filter_method, **kwargs) + + def set_inversion_method(self, inversion_method=None, **kwargs): + """ + Set the inversion method + + The Kalman filter may contain one matrix inversion: that of the + forecast error covariance matrix. The inversion method controls how and + if that inverse is performed. + + Parameters + ---------- + inversion_method : integer, optional + Bitmask value to set the inversion method to. See notes for + details. + **kwargs + Keyword arguments may be used to influence the inversion method by + setting individual boolean flags. See notes for details. + + Notes + ----- + This method is rarely used. See the corresponding function in the + `KalmanFilter` class for details. + """ + self.ssm.set_inversion_method(inversion_method, **kwargs) + + def set_stability_method(self, stability_method=None, **kwargs): + """ + Set the numerical stability method + + The Kalman filter is a recursive algorithm that may in some cases + suffer issues with numerical stability. The stability method controls + what, if any, measures are taken to promote stability. + + Parameters + ---------- + stability_method : integer, optional + Bitmask value to set the stability method to. See notes for + details. + **kwargs + Keyword arguments may be used to influence the stability method by + setting individual boolean flags. See notes for details. + + Notes + ----- + This method is rarely used. See the corresponding function in the + `KalmanFilter` class for details. + """ + self.ssm.set_stability_method(stability_method, **kwargs) + + def set_conserve_memory(self, conserve_memory=None, **kwargs): + """ + Set the memory conservation method + + By default, the Kalman filter computes a number of intermediate + matrices at each iteration. The memory conservation options control + which of those matrices are stored. + + Parameters + ---------- + conserve_memory : integer, optional + Bitmask value to set the memory conservation method to. See notes + for details. + **kwargs + Keyword arguments may be used to influence the memory conservation + method by setting individual boolean flags. + + Notes + ----- + This method is rarely used. See the corresponding function in the + `KalmanFilter` class for details. + """ + self.ssm.set_conserve_memory(conserve_memory, **kwargs) + + def set_smoother_output(self, smoother_output=None, **kwargs): + """ + Set the smoother output + + The smoother can produce several types of results. The smoother output + variable controls which are calculated and returned. + + Parameters + ---------- + smoother_output : integer, optional + Bitmask value to set the smoother output to. See notes for details. + **kwargs + Keyword arguments may be used to influence the smoother output by + setting individual boolean flags. + + Notes + ----- + This method is rarely used. See the corresponding function in the + `KalmanSmoother` class for details. + """ + self.ssm.set_smoother_output(smoother_output, **kwargs) + + def initialize_known(self, initial_state, initial_state_cov): + self.ssm.initialize_known(initial_state, initial_state_cov) + + def initialize_approximate_diffuse(self, variance=None): + self.ssm.initialize_approximate_diffuse(variance) + + def initialize_stationary(self): + self.ssm.initialize_stationary() + + @property + def initialization(self): + return self.ssm.initialization + + @property + def initial_variance(self): + return self.ssm.initial_variance + + @initial_variance.setter + def initial_variance(self, value): + self.ssm.initial_variance = value + + @property + def loglikelihood_burn(self): + return self.ssm.loglikelihood_burn + + @loglikelihood_burn.setter + def loglikelihood_burn(self, value): + self.ssm.loglikelihood_burn = value + + @property + def tolerance(self): + return self.ssm.tolerance + + @tolerance.setter + def tolerance(self, value): + self.ssm.tolerance = value + + def fit(self, start_params=None, transformed=True, + cov_type='opg', cov_kwds=None, method='lbfgs', maxiter=50, + full_output=1, disp=5, callback=None, return_params=False, + optim_score=None, optim_complex_step=None, optim_hessian=None, + **kwargs): + """ + Fits the model by maximum likelihood via Kalman filter. + + Parameters + ---------- + start_params : array_like, optional + Initial guess of the solution for the loglikelihood maximization. + If None, the default is given by Model.start_params. + transformed : boolean, optional + Whether or not `start_params` is already transformed. Default is + True. + cov_type : str, optional + The `cov_type` keyword governs the method for calculating the + covariance matrix of parameter estimates. Can be one of: + + - 'opg' for the outer product of gradient estimator + - 'oim' for the observed information matrix estimator, calculated + using the method of Harvey (1989) + - 'approx' for the observed information matrix estimator, + calculated using a numerical approximation of the Hessian matrix. + - 'robust' for an approximate (quasi-maximum likelihood) covariance + matrix that may be valid even in the presense of some + misspecifications. Intermediate calculations use the 'oim' + method. + - 'robust_approx' is the same as 'robust' except that the + intermediate calculations use the 'approx' method. + - 'none' for no covariance matrix calculation. + cov_kwds : dict or None, optional + A dictionary of arguments affecting covariance matrix computation. + + **opg, oim, approx, robust, robust_approx** + + - 'approx_complex_step' : boolean, optional - If True, numerical + approximations are computed using complex-step methods. If False, + numerical approximations are computed using finite difference + methods. Default is True. + - 'approx_centered' : boolean, optional - If True, numerical + approximations computed using finite difference methods use a + centered approximation. Default is False. + method : str, optional + The `method` determines which solver from `scipy.optimize` + is used, and it can be chosen from among the following strings: + + - 'newton' for Newton-Raphson, 'nm' for Nelder-Mead + - 'bfgs' for Broyden-Fletcher-Goldfarb-Shanno (BFGS) + - 'lbfgs' for limited-memory BFGS with optional box constraints + - 'powell' for modified Powell's method + - 'cg' for conjugate gradient + - 'ncg' for Newton-conjugate gradient + - 'basinhopping' for global basin-hopping solver + + The explicit arguments in `fit` are passed to the solver, + with the exception of the basin-hopping solver. Each + solver has several optional arguments that are not the same across + solvers. See the notes section below (or scipy.optimize) for the + available arguments and for the list of explicit arguments that the + basin-hopping solver supports. + maxiter : int, optional + The maximum number of iterations to perform. + full_output : boolean, optional + Set to True to have all available output in the Results object's + mle_retvals attribute. The output is dependent on the solver. + See LikelihoodModelResults notes section for more information. + disp : boolean, optional + Set to True to print convergence messages. + callback : callable callback(xk), optional + Called after each iteration, as callback(xk), where xk is the + current parameter vector. + return_params : boolean, optional + Whether or not to return only the array of maximizing parameters. + Default is False. + optim_score : {'harvey', 'approx'} or None, optional + The method by which the score vector is calculated. 'harvey' uses + the method from Harvey (1989), 'approx' uses either finite + difference or complex step differentiation depending upon the + value of `optim_complex_step`, and None uses the built-in gradient + approximation of the optimizer. Default is None. This keyword is + only relevant if the optimization method uses the score. + optim_complex_step : bool, optional + Whether or not to use complex step differentiation when + approximating the score; if False, finite difference approximation + is used. Default is True. This keyword is only relevant if + `optim_score` is set to 'harvey' or 'approx'. + optim_hessian : {'opg','oim','approx'}, optional + The method by which the Hessian is numerically approximated. 'opg' + uses outer product of gradients, 'oim' uses the information + matrix formula from Harvey (1989), and 'approx' uses numerical + approximation. This keyword is only relevant if the + optimization method uses the Hessian matrix. + **kwargs + Additional keyword arguments to pass to the optimizer. + + Returns + ------- + MLEResults + + See also + -------- + statsmodels.base.model.LikelihoodModel.fit + MLEResults + """ + if start_params is None: + start_params = self.start_params + transformed = True + + # Update the score method + if optim_score is None and method == 'lbfgs': + kwargs.setdefault('approx_grad', True) + kwargs.setdefault('epsilon', 1e-5) + elif optim_score is None: + optim_score = 'approx' + elif optim_score not in ['harvey', 'approx']: + raise NotImplementedError('Invalid method for calculating the' + ' score.') + + # Update the hessian method + if optim_hessian not in [None, 'opg', 'oim', 'approx']: + raise NotImplementedError('Invalid method for calculating the' + ' Hessian.') + + # Check for complex step differentiation + if optim_complex_step is None: + optim_complex_step = not self.ssm._complex_endog + elif optim_complex_step and self.ssm._complex_endog: + raise ValueError('Cannot use complex step derivatives when data' + ' or parameters are complex.') + + # Unconstrain the starting parameters + if transformed: + start_params = self.untransform_params(np.array(start_params)) + + # Maximum likelihood estimation + flags = { + 'transformed': False, + 'score_method': optim_score, + 'approx_complex_step': optim_complex_step + } + if optim_hessian is not None: + flags['hessian_method'] = optim_hessian + fargs = (flags,) + mlefit = super(MLEModel, self).fit(start_params, method=method, + fargs=fargs, + maxiter=maxiter, + full_output=full_output, + disp=disp, callback=callback, + skip_hessian=True, **kwargs) + + # Just return the fitted parameters if requested + if return_params: + return self.transform_params(mlefit.params) + # Otherwise construct the results class if desired + else: + res = self.smooth(mlefit.params, transformed=False, + cov_type=cov_type, cov_kwds=cov_kwds) + + res.mlefit = mlefit + res.mle_retvals = mlefit.mle_retvals + res.mle_settings = mlefit.mle_settings + + return res + + def filter(self, params, transformed=True, complex_step=False, + cov_type=None, cov_kwds=None, return_ssm=False, + results_class=None, results_wrapper_class=None, **kwargs): + """ + Kalman filtering + + Parameters + ---------- + params : array_like + Array of parameters at which to evaluate the loglikelihood + function. + transformed : boolean, optional + Whether or not `params` is already transformed. Default is True. + return_ssm : boolean,optional + Whether or not to return only the state space output or a full + results object. Default is to return a full results object. + cov_type : str, optional + See `MLEResults.fit` for a description of covariance matrix types + for results object. + cov_kwds : dict or None, optional + See `MLEResults.get_robustcov_results` for a description required + keywords for alternative covariance estimators + **kwargs + Additional keyword arguments to pass to the Kalman filter. See + `KalmanFilter.filter` for more details. + """ + params = np.array(params, ndmin=1) + + if not transformed: + params = self.transform_params(params) + self.update(params, transformed=True, complex_step=complex_step) + + # Save the parameter names + self.data.param_names = self.param_names + + if complex_step: + kwargs['inversion_method'] = INVERT_UNIVARIATE | SOLVE_LU + + # Get the state space output + result = self.ssm.filter(complex_step=complex_step, **kwargs) + + # Wrap in a results object + if not return_ssm: + result_kwargs = {} + if cov_type is not None: + result_kwargs['cov_type'] = cov_type + if cov_kwds is not None: + result_kwargs['cov_kwds'] = cov_kwds + + if results_class is None: + results_class = MLEResults + if results_wrapper_class is None: + results_wrapper_class = MLEResultsWrapper + + result = results_wrapper_class( + results_class(self, params, result, **result_kwargs) + ) + + return result + + def smooth(self, params, transformed=True, complex_step=False, + cov_type=None, cov_kwds=None, return_ssm=False, + results_class=None, results_wrapper_class=None, **kwargs): + """ + Kalman smoothing + + Parameters + ---------- + params : array_like + Array of parameters at which to evaluate the loglikelihood + function. + transformed : boolean, optional + Whether or not `params` is already transformed. Default is True. + return_ssm : boolean,optional + Whether or not to return only the state space output or a full + results object. Default is to return a full results object. + cov_type : str, optional + See `MLEResults.fit` for a description of covariance matrix types + for results object. + cov_kwds : dict or None, optional + See `MLEResults.get_robustcov_results` for a description required + keywords for alternative covariance estimators + **kwargs + Additional keyword arguments to pass to the Kalman filter. See + `KalmanFilter.filter` for more details. + """ + params = np.array(params, ndmin=1) + + if not transformed: + params = self.transform_params(params) + self.update(params, transformed=True, complex_step=complex_step) + + # Save the parameter names + self.data.param_names = self.param_names + + if complex_step: + kwargs['inversion_method'] = INVERT_UNIVARIATE | SOLVE_LU + + # Get the state space output + result = self.ssm.smooth(complex_step=complex_step, **kwargs) + + # Wrap in a results object + if not return_ssm: + result_kwargs = {} + if cov_type is not None: + result_kwargs['cov_type'] = cov_type + if cov_kwds is not None: + result_kwargs['cov_kwds'] = cov_kwds + + if results_class is None: + results_class = MLEResults + if results_wrapper_class is None: + results_wrapper_class = MLEResultsWrapper + + result = results_wrapper_class( + results_class(self, params, result, **result_kwargs) + ) + + return result + + def loglike(self, params, *args, **kwargs): + """ + Loglikelihood evaluation + + Parameters + ---------- + params : array_like + Array of parameters at which to evaluate the loglikelihood + function. + transformed : boolean, optional + Whether or not `params` is already transformed. Default is True. + **kwargs + Additional keyword arguments to pass to the Kalman filter. See + `KalmanFilter.filter` for more details. + + Notes + ----- + [1]_ recommend maximizing the average likelihood to avoid scale issues; + this is done automatically by the base Model fit method. + + References + ---------- + .. [1] Koopman, Siem Jan, Neil Shephard, and Jurgen A. Doornik. 1999. + Statistical Algorithms for Models in State Space Using SsfPack 2.2. + Econometrics Journal 2 (1): 107-60. doi:10.1111/1368-423X.00023. + + See Also + -------- + update : modifies the internal state of the state space model to + reflect new params + """ + # We need to handle positional arguments in two ways, in case this was + # called by a Scipy optimization routine + if len(args) > 0: + argnames = ['transformed', 'complex_step'] + # the fit() method will pass a dictionary + if isinstance(args[0], dict): + flags = args[0] + # otherwise, a user may have just used positional arguments... + else: + flags = dict(zip(argnames, args)) + transformed = flags.get('transformed', True) + complex_step = flags.get('complex_step', True) + + for name, value in flags.items(): + if name in kwargs: + raise TypeError("loglike() got multiple values for keyword" + " argument '%s'" % name) + else: + transformed = kwargs.pop('transformed', True) + complex_step = kwargs.pop('complex_step', True) + + if not transformed: + params = self.transform_params(params) + + self.update(params, transformed=True, complex_step=complex_step) + + if complex_step: + kwargs['inversion_method'] = INVERT_UNIVARIATE | SOLVE_LU + + loglike = self.ssm.loglike(complex_step=complex_step, **kwargs) + + # Koopman, Shephard, and Doornik recommend maximizing the average + # likelihood to avoid scale issues, but the averaging is done + # automatically in the base model `fit` method + return loglike + + def loglikeobs(self, params, transformed=True, complex_step=False, + **kwargs): + """ + Loglikelihood evaluation + + Parameters + ---------- + params : array_like + Array of parameters at which to evaluate the loglikelihood + function. + transformed : boolean, optional + Whether or not `params` is already transformed. Default is True. + **kwargs + Additional keyword arguments to pass to the Kalman filter. See + `KalmanFilter.filter` for more details. + + Notes + ----- + [1]_ recommend maximizing the average likelihood to avoid scale issues; + this is done automatically by the base Model fit method. + + References + ---------- + .. [1] Koopman, Siem Jan, Neil Shephard, and Jurgen A. Doornik. 1999. + Statistical Algorithms for Models in State Space Using SsfPack 2.2. + Econometrics Journal 2 (1): 107-60. doi:10.1111/1368-423X.00023. + + See Also + -------- + update : modifies the internal state of the Model to reflect new params + """ + if not transformed: + params = self.transform_params(params) + + # If we're using complex-step differentiation, then we can't use + # Cholesky factorization + if complex_step: + kwargs['inversion_method'] = INVERT_UNIVARIATE | SOLVE_LU + + self.update(params, transformed=True, complex_step=complex_step) + + return self.ssm.loglikeobs(complex_step=complex_step, **kwargs) + + def _forecasts_error_partial_derivatives(self, params, transformed=True, + approx_complex_step=None, + approx_centered=False, + res=None, **kwargs): + params = np.array(params, ndmin=1) + + # We can't use complex-step differentiation with non-transformed + # parameters + if approx_complex_step is None: + approx_complex_step = transformed + if not transformed and approx_complex_step: + raise ValueError("Cannot use complex-step approximations to" + " calculate the observed_information_matrix" + " with untransformed parameters.") + + # If we're using complex-step differentiation, then we can't use + # Cholesky factorization + if approx_complex_step: + kwargs['inversion_method'] = INVERT_UNIVARIATE | SOLVE_LU + + # Get values at the params themselves + if res is None: + self.update(params, transformed=transformed, + complex_step=approx_complex_step) + res = self.ssm.filter(complex_step=approx_complex_step, **kwargs) + + # Setup + n = len(params) + + # Compute partial derivatives w.r.t. forecast error and forecast + # error covariance + partials_forecasts_error = ( + np.zeros((self.k_endog, self.nobs, n)) + ) + partials_forecasts_error_cov = ( + np.zeros((self.k_endog, self.k_endog, self.nobs, n)) + ) + if approx_complex_step: + epsilon = _get_epsilon(params, 2, None, n) + increments = np.identity(n) * 1j * epsilon + + for i, ih in enumerate(increments): + self.update(params + ih, transformed=transformed, + complex_step=True) + _res = self.ssm.filter(complex_step=True, **kwargs) + + partials_forecasts_error[:, :, i] = ( + _res.forecasts_error.imag / epsilon[i] + ) + + partials_forecasts_error_cov[:, :, :, i] = ( + _res.forecasts_error_cov.imag / epsilon[i] + ) + elif not approx_centered: + epsilon = _get_epsilon(params, 2, None, n) + ei = np.zeros((n,), float) + for i in range(n): + ei[i] = epsilon[i] + self.update(params + ei, transformed=transformed, + complex_step=False) + _res = self.ssm.filter(complex_step=False, **kwargs) + + partials_forecasts_error[:, :, i] = ( + _res.forecasts_error - res.forecasts_error) / epsilon[i] + + partials_forecasts_error_cov[:, :, :, i] = ( + _res.forecasts_error_cov - + res.forecasts_error_cov) / epsilon[i] + ei[i] = 0.0 + else: + epsilon = _get_epsilon(params, 3, None, n) / 2. + ei = np.zeros((n,), float) + for i in range(n): + ei[i] = epsilon[i] + + self.update(params + ei, transformed=transformed, + complex_step=False) + _res1 = self.ssm.filter(complex_step=False, **kwargs) + + self.update(params - ei, transformed=transformed, + complex_step=False) + _res2 = self.ssm.filter(complex_step=False, **kwargs) + + partials_forecasts_error[:, :, i] = ( + (_res1.forecasts_error - _res2.forecasts_error) / + (2 * epsilon[i])) + + partials_forecasts_error_cov[:, :, :, i] = ( + (_res1.forecasts_error_cov - _res2.forecasts_error_cov) / + (2 * epsilon[i])) + + ei[i] = 0.0 + + return partials_forecasts_error, partials_forecasts_error_cov + + def observed_information_matrix(self, params, transformed=True, + approx_complex_step=None, + approx_centered=False, **kwargs): + """ + Observed information matrix + + Parameters + ---------- + params : array_like, optional + Array of parameters at which to evaluate the loglikelihood + function. + **kwargs + Additional keyword arguments to pass to the Kalman filter. See + `KalmanFilter.filter` for more details. + + Notes + ----- + This method is from Harvey (1989), which shows that the information + matrix only depends on terms from the gradient. This implementation is + partially analytic and partially numeric approximation, therefore, + because it uses the analytic formula for the information matrix, with + numerically computed elements of the gradient. + + References + ---------- + Harvey, Andrew C. 1990. + Forecasting, Structural Time Series Models and the Kalman Filter. + Cambridge University Press. + + """ + params = np.array(params, ndmin=1) + + # Setup + n = len(params) + + # We can't use complex-step differentiation with non-transformed + # parameters + if approx_complex_step is None: + approx_complex_step = transformed + if not transformed and approx_complex_step: + raise ValueError("Cannot use complex-step approximations to" + " calculate the observed_information_matrix" + " with untransformed parameters.") + + # Get values at the params themselves + self.update(params, transformed=transformed, + complex_step=approx_complex_step) + # If we're using complex-step differentiation, then we can't use + # Cholesky factorization + if approx_complex_step: + kwargs['inversion_method'] = INVERT_UNIVARIATE | SOLVE_LU + res = self.ssm.filter(complex_step=approx_complex_step, **kwargs) + dtype = self.ssm.dtype + + # Save this for inversion later + inv_forecasts_error_cov = res.forecasts_error_cov.copy() + + partials_forecasts_error, partials_forecasts_error_cov = ( + self._forecasts_error_partial_derivatives( + params, transformed=transformed, + approx_complex_step=approx_complex_step, + approx_centered=approx_centered, res=res, **kwargs)) + + # Compute the information matrix + tmp = np.zeros((self.k_endog, self.k_endog, self.nobs, n), dtype=dtype) + + information_matrix = np.zeros((n, n), dtype=dtype) + for t in range(self.ssm.loglikelihood_burn, self.nobs): + inv_forecasts_error_cov[:, :, t] = ( + np.linalg.inv(res.forecasts_error_cov[:, :, t]) + ) + for i in range(n): + tmp[:, :, t, i] = np.dot( + inv_forecasts_error_cov[:, :, t], + partials_forecasts_error_cov[:, :, t, i] + ) + for i in range(n): + for j in range(n): + information_matrix[i, j] += ( + 0.5 * np.trace(np.dot(tmp[:, :, t, i], + tmp[:, :, t, j])) + ) + information_matrix[i, j] += np.inner( + partials_forecasts_error[:, t, i], + np.dot(inv_forecasts_error_cov[:, :, t], + partials_forecasts_error[:, t, j]) + ) + return information_matrix / (self.nobs - self.ssm.loglikelihood_burn) + + def opg_information_matrix(self, params, transformed=True, + approx_complex_step=None, **kwargs): + """ + Outer product of gradients information matrix + + Parameters + ---------- + params : array_like, optional + Array of parameters at which to evaluate the loglikelihood + function. + **kwargs + Additional arguments to the `loglikeobs` method. + + References + ---------- + Berndt, Ernst R., Bronwyn Hall, Robert Hall, and Jerry Hausman. 1974. + Estimation and Inference in Nonlinear Structural Models. + NBER Chapters. National Bureau of Economic Research, Inc. + + """ + # We can't use complex-step differentiation with non-transformed + # parameters + if approx_complex_step is None: + approx_complex_step = transformed + if not transformed and approx_complex_step: + raise ValueError("Cannot use complex-step approximations to" + " calculate the observed_information_matrix" + " with untransformed parameters.") + + score_obs = self.score_obs(params, transformed=transformed, + approx_complex_step=approx_complex_step, + **kwargs).transpose() + return ( + np.inner(score_obs, score_obs) / + (self.nobs - self.ssm.loglikelihood_burn) + ) + + def _score_complex_step(self, params, **kwargs): + # the default epsilon can be too small + # inversion_method = INVERT_UNIVARIATE | SOLVE_LU + epsilon = _get_epsilon(params, 2., None, len(params)) + kwargs['transformed'] = True + kwargs['complex_step'] = True + return approx_fprime_cs(params, self.loglike, epsilon=epsilon, + kwargs=kwargs) + + def _score_finite_difference(self, params, approx_centered=False, + **kwargs): + kwargs['transformed'] = True + return approx_fprime(params, self.loglike, kwargs=kwargs, + centered=approx_centered) + + def _score_harvey(self, params, approx_complex_step=True, **kwargs): + score_obs = self._score_obs_harvey( + params, approx_complex_step=approx_complex_step, **kwargs) + return np.sum(score_obs, axis=0) + + def _score_obs_harvey(self, params, approx_complex_step=True, + approx_centered=False, **kwargs): + """ + Score + + Parameters + ---------- + params : array_like, optional + Array of parameters at which to evaluate the loglikelihood + function. + **kwargs + Additional keyword arguments to pass to the Kalman filter. See + `KalmanFilter.filter` for more details. + + Notes + ----- + This method is from Harvey (1989), section 3.4.5 + + References + ---------- + Harvey, Andrew C. 1990. + Forecasting, Structural Time Series Models and the Kalman Filter. + Cambridge University Press. + + """ + params = np.array(params, ndmin=1) + n = len(params) + + # Get values at the params themselves + self.update(params, transformed=True, complex_step=approx_complex_step) + if approx_complex_step: + kwargs['inversion_method'] = INVERT_UNIVARIATE | SOLVE_LU + res = self.ssm.filter(complex_step=approx_complex_step, **kwargs) + dtype = self.ssm.dtype + + # Get forecasts error partials + partials_forecasts_error, partials_forecasts_error_cov = ( + self._forecasts_error_partial_derivatives( + params, transformed=True, + approx_complex_step=approx_complex_step, + approx_centered=approx_centered, res=res, **kwargs)) + + # Compute partial derivatives w.r.t. likelihood function + partials = np.zeros((self.nobs, n)) + k_endog = self.k_endog + for t in range(self.nobs): + for i in range(n): + inv_forecasts_error_cov = np.linalg.inv( + res.forecasts_error_cov[:, :, t]) + partials[t, i] += np.trace(np.dot( + np.dot(inv_forecasts_error_cov, + partials_forecasts_error_cov[:, :, t, i]), + (np.eye(k_endog) - + np.dot(inv_forecasts_error_cov, + np.outer(res.forecasts_error[:, t], + res.forecasts_error[:, t]))))) + # 2 * dv / di * F^{-1} v_t + # where x = F^{-1} v_t or F x = v + partials[t, i] += 2 * np.dot( + partials_forecasts_error[:, t, i], + np.dot(inv_forecasts_error_cov, res.forecasts_error[:, t])) + + return -partials / 2. + + def score(self, params, *args, **kwargs): + """ + Compute the score function at params. + + Parameters + ---------- + params : array_like + Array of parameters at which to evaluate the score. + *args, **kwargs + Additional arguments to the `loglike` method. + + Returns + ---------- + score : array + Score, evaluated at `params`. + + Notes + ----- + This is a numerical approximation, calculated using first-order complex + step differentiation on the `loglike` method. + + Both \*args and \*\*kwargs are necessary because the optimizer from + `fit` must call this function and only supports passing arguments via + \*args (for example `scipy.optimize.fmin_l_bfgs`). + """ + params = np.array(params, ndmin=1) + + # We were given one positional argument if this was called by a Scipy + # optimization routine + if len(args) > 0: + argnames = ['transformed', 'method', 'approx_complex_step', + 'approx_centered'] + # the fit() method will pass a dictionary + if isinstance(args[0], dict): + flags = args[0] + flags['method'] = flags.get('score_method', 'approx') + # otherwise, a user may have just used positional arguments... + else: + flags = dict(zip(argnames, args)) + transformed = flags.get('transformed', True) + method = flags.get('method', 'approx') + approx_complex_step = flags.get('approx_complex_step', None) + approx_centered = flags.get('approx_centered', True) + + for name, value in flags.items(): + if name in kwargs: + raise TypeError("score() got multiple values for keyword" + " argument '%s'" % name) + else: + transformed = kwargs.pop('transformed', True) + method = kwargs.pop('method', 'approx') + approx_complex_step = kwargs.pop('approx_complex_step', None) + approx_centered = kwargs.pop('approx_centered', False) + + if approx_complex_step is None: + approx_complex_step = not self.ssm._complex_endog + if approx_complex_step and self.ssm._complex_endog: + raise ValueError('Cannot use complex step derivatives when data' + ' or parameters are complex.') + + if not transformed: + transform_score = self.transform_jacobian(params) + params = self.transform_params(params) + + if method == 'harvey': + score = self._score_harvey( + params, approx_complex_step=approx_complex_step, **kwargs) + elif method == 'approx' and approx_complex_step: + score = self._score_complex_step(params, **kwargs) + elif method == 'approx': + score = self._score_finite_difference( + params, approx_centered=approx_centered, **kwargs) + else: + raise NotImplementedError('Invalid score method.') + + if not transformed: + score = np.dot(transform_score, score) + + return score + + def score_obs(self, params, method='approx', transformed=True, + approx_complex_step=None, approx_centered=False, **kwargs): + """ + Compute the score per observation, evaluated at params + + Parameters + ---------- + params : array_like + Array of parameters at which to evaluate the score. + **kwargs + Additional arguments to the `loglike` method. + + Returns + ---------- + score : array (nobs, k_vars) + Score per observation, evaluated at `params`. + + Notes + ----- + This is a numerical approximation, calculated using first-order complex + step differentiation on the `loglikeobs` method. + """ + params = np.array(params, ndmin=1) + + if not transformed and approx_complex_step: + raise ValueError("Cannot use complex-step approximations to" + " calculate the score at each observation" + " with untransformed parameters.") + + if approx_complex_step is None: + approx_complex_step = not self.ssm._complex_endog + if approx_complex_step and self.ssm._complex_endog: + raise ValueError('Cannot use complex step derivatives when data' + ' or parameters are complex.') + + if method == 'harvey': + score = self._score_obs_harvey( + params, transformed=transformed, + approx_complex_step=approx_complex_step, **kwargs) + elif method == 'approx' and approx_complex_step: + # the default epsilon can be too small + epsilon = _get_epsilon(params, 2., None, len(params)) + kwargs['complex_step'] = True + kwargs['transformed'] = True + score = approx_fprime_cs(params, self.loglikeobs, epsilon=epsilon, + kwargs=kwargs) + elif method == 'approx': + kwargs['transformed'] = transformed + score = approx_fprime(params, self.loglikeobs, kwargs=kwargs, + centered=approx_centered) + else: + raise NotImplementedError('Invalid scoreobs method.') + + return score + + def hessian(self, params, *args, **kwargs): + """ + Hessian matrix of the likelihood function, evaluated at the given + parameters + + Parameters + ---------- + params : array_like + Array of parameters at which to evaluate the hessian. + *args, **kwargs + Additional arguments to the `loglike` method. + + Returns + ------- + hessian : array + Hessian matrix evaluated at `params` + + Notes + ----- + This is a numerical approximation. + + Both \*args and \*\*kwargs are necessary because the optimizer from + `fit` must call this function and only supports passing arguments via + \*args (for example `scipy.optimize.fmin_l_bfgs`). + """ + # We were given one positional argument if this was called by a Scipy + # optimization routine + if len(args) > 0: + argnames = ['transformed', 'method', 'approx_complex_step', + 'approx_centered'] + # the fit() method will pass a dictionary + if isinstance(args[0], dict): + flags = args[0] + flags['method'] = flags.get('hessian_method', 'approx') + # otherwise, a user may have just used positional arguments... + else: + flags = dict(zip(argnames, args)) + transformed = flags.get('transformed', True) + method = flags.get('method', 'approx') + approx_complex_step = flags.get('approx_complex_step', None) + approx_centered = flags.get('approx_centered', True) + + for name, value in flags.items(): + if name in kwargs: + raise TypeError("hessian() got multiple values for keyword" + " argument '%s'" % name) + else: + transformed = kwargs.pop('transformed', False) + method = kwargs.pop('method', 'approx') + approx_complex_step = kwargs.pop('approx_complex_step', None) + approx_centered = kwargs.pop('approx_centered', False) + + if not transformed and approx_complex_step: + raise ValueError("Cannot use complex-step approximations to" + " calculate the hessian with untransformed" + " parameters.") + + if approx_complex_step is None: + approx_complex_step = not self.ssm._complex_endog + if approx_complex_step and self.ssm._complex_endog: + raise ValueError('Cannot use complex step derivatives when data' + ' or parameters are complex.') + + if method == 'oim': + hessian = self._hessian_oim( + params, transformed=transformed, + approx_complex_step=approx_complex_step, + approx_centered=approx_centered, **kwargs) + elif method == 'opg': + hessian = self._hessian_opg( + params, transformed=transformed, + approx_complex_step=approx_complex_step, + approx_centered=approx_centered, **kwargs) + elif method == 'approx' and approx_complex_step: + return self._hessian_complex_step( + params, transformed=transformed, **kwargs) + elif method == 'approx': + return self._hessian_finite_difference( + params, transformed=transformed, + approx_centered=approx_centered, **kwargs) + else: + raise NotImplementedError('Invalid Hessian calculation method.') + return hessian + + def _hessian_oim(self, params, **kwargs): + """ + Hessian matrix computed using the Harvey (1989) information matrix + """ + return -self.observed_information_matrix(params, **kwargs) + + def _hessian_opg(self, params, **kwargs): + """ + Hessian matrix computed using the outer product of gradients + information matrix + """ + return -self.opg_information_matrix(params, **kwargs) + + def _hessian_finite_difference(self, params, approx_centered=False, + **kwargs): + params = np.array(params, ndmin=1) + + warnings.warn('Calculation of the Hessian using finite differences' + ' is usually subject to substantial approximation' + ' errors.', PrecisionWarning) + + if not approx_centered: + epsilon = _get_epsilon(params, 3, None, len(params)) + else: + epsilon = _get_epsilon(params, 4, None, len(params)) / 2 + hessian = approx_fprime(params, self._score_finite_difference, + epsilon=epsilon, kwargs=kwargs, centered=approx_centered) + + return hessian / (self.nobs - self.ssm.loglikelihood_burn) + + def _hessian_complex_step(self, params, **kwargs): + """ + Hessian matrix computed by second-order complex-step differentiation + on the `loglike` function. + """ + # the default epsilon can be too small + epsilon = _get_epsilon(params, 3., None, len(params)) + kwargs['transformed'] = True + kwargs['complex_step'] = True + hessian = approx_hess_cs( + params, self.loglike, epsilon=epsilon, kwargs=kwargs) + + return hessian / (self.nobs - self.ssm.loglikelihood_burn) + + @property + def start_params(self): + """ + (array) Starting parameters for maximum likelihood estimation. + """ + if hasattr(self, '_start_params'): + return self._start_params + else: + raise NotImplementedError + + @property + def param_names(self): + """ + (list of str) List of human readable parameter names (for parameters + actually included in the model). + """ + if hasattr(self, '_param_names'): + return self._param_names + else: + try: + names = ['param.%d' % i for i in range(len(self.start_params))] + except NotImplementedError: + names = [] + return names + + def transform_jacobian(self, unconstrained, approx_centered=False): + """ + Jacobian matrix for the parameter transformation function + + Parameters + ---------- + unconstrained : array_like + Array of unconstrained parameters used by the optimizer. + + Returns + ------- + jacobian : array + Jacobian matrix of the transformation, evaluated at `unconstrained` + + Notes + ----- + This is a numerical approximation using finite differences. Note that + in general complex step methods cannot be used because it is not + guaranteed that the `transform_params` method is a real function (e.g. + if Cholesky decomposition is used). + + See Also + -------- + transform_params + """ + return approx_fprime(unconstrained, self.transform_params, + centered=approx_centered) + + def transform_params(self, unconstrained): + """ + Transform unconstrained parameters used by the optimizer to constrained + parameters used in likelihood evaluation + + Parameters + ---------- + unconstrained : array_like + Array of unconstrained parameters used by the optimizer, to be + transformed. + + Returns + ------- + constrained : array_like + Array of constrained parameters which may be used in likelihood + evalation. + + Notes + ----- + This is a noop in the base class, subclasses should override where + appropriate. + """ + return np.array(unconstrained, ndmin=1) + + def untransform_params(self, constrained): + """ + Transform constrained parameters used in likelihood evaluation + to unconstrained parameters used by the optimizer + + Parameters + ---------- + constrained : array_like + Array of constrained parameters used in likelihood evalution, to be + transformed. + + Returns + ------- + unconstrained : array_like + Array of unconstrained parameters used by the optimizer. + + Notes + ----- + This is a noop in the base class, subclasses should override where + appropriate. + """ + return np.array(constrained, ndmin=1) + + def update(self, params, transformed=True, complex_step=False): + """ + Update the parameters of the model + + Parameters + ---------- + params : array_like + Array of new parameters. + transformed : boolean, optional + Whether or not `params` is already transformed. If set to False, + `transform_params` is called. Default is True. + + Returns + ------- + params : array_like + Array of parameters. + + Notes + ----- + Since Model is a base class, this method should be overridden by + subclasses to perform actual updating steps. + """ + params = np.array(params, ndmin=1) + + if not transformed: + params = self.transform_params(params) + + return params + + def simulate(self, params, nsimulations, measurement_shocks=None, + state_shocks=None, initial_state=None): + r""" + Simulate a new time series following the state space model + + Parameters + ---------- + params : array_like + Array of model parameters. + nsimulations : int + The number of observations to simulate. If the model is + time-invariant this can be any number. If the model is + time-varying, then this number must be less than or equal to the + number + measurement_shocks : array_like, optional + If specified, these are the shocks to the measurement equation, + :math:`\varepsilon_t`. If unspecified, these are automatically + generated using a pseudo-random number generator. If specified, + must be shaped `nsimulations` x `k_endog`, where `k_endog` is the + same as in the state space model. + state_shocks : array_like, optional + If specified, these are the shocks to the state equation, + :math:`\eta_t`. If unspecified, these are automatically + generated using a pseudo-random number generator. If specified, + must be shaped `nsimulations` x `k_posdef` where `k_posdef` is the + same as in the state space model. + initial_state : array_like, optional + If specified, this is the state vector at time zero, which should + be shaped (`k_states` x 1), where `k_states` is the same as in the + state space model. If unspecified, but the model has been + initialized, then that initialization is used. If unspecified and + the model has not been initialized, then a vector of zeros is used. + Note that this is not included in the returned `simulated_states` + array. + + Returns + ------- + simulated_obs : array + An (nsimulations x k_endog) array of simulated observations. + """ + self.update(params) + + simulated_obs, simulated_states = self.ssm.simulate( + nsimulations, measurement_shocks, state_shocks, initial_state) + + # Simulated obs is (k_endog x nobs); don't want to squeeze in + # case of npredictions = 1 + if simulated_obs.shape[1] == 1: + simulated_obs = simulated_obs[:, 0] + return simulated_obs + + def impulse_responses(self, params, steps=1, impulse=0, + orthogonalized=False, cumulative=False, **kwargs): + """ + Impulse response function + + Parameters + ---------- + params : array_like + Array of model parameters. + steps : int, optional + The number of steps for which impulse responses are calculated. + Default is 1. Note that the initial impulse is not counted as a + step, so if `steps=1`, the output will have 2 entries. + impulse : int or array_like + If an integer, the state innovation to pulse; must be between 0 + and `k_posdef-1`. Alternatively, a custom impulse vector may be + provided; must be shaped `k_posdef x 1`. + orthogonalized : boolean, optional + Whether or not to perform impulse using orthogonalized innovations. + Note that this will also affect custum `impulse` vectors. Default + is False. + cumulative : boolean, optional + Whether or not to return cumulative impulse responses. Default is + False. + **kwargs + If the model is time-varying and `steps` is greater than the number + of observations, any of the state space representation matrices + that are time-varying must have updated values provided for the + out-of-sample steps. + For example, if `design` is a time-varying component, `nobs` is 10, + and `steps` is 15, a (`k_endog` x `k_states` x 5) matrix must be + provided with the new design matrix values. + + Returns + ------- + impulse_responses : array + Responses for each endogenous variable due to the impulse + given by the `impulse` argument. A (steps + 1 x k_endog) array. + + Notes + ----- + Intercepts in the measurement and state equation are ignored when + calculating impulse responses. + + """ + self.update(params) + irfs = self.ssm.impulse_responses( + steps, impulse, orthogonalized, cumulative, **kwargs) + + # IRF is (nobs x k_endog); don't want to squeeze in case of steps = 1 + if irfs.shape[1] == 1: + irfs = irfs[:, 0] + + return irfs + + @classmethod + def from_formula(cls, formula, data, subset=None): + """ + Not implemented for state space models + """ + raise NotImplementedError + + +class MLEResults(tsbase.TimeSeriesModelResults): + r""" + Class to hold results from fitting a state space model. + + Parameters + ---------- + model : MLEModel instance + The fitted model instance + params : array + Fitted parameters + filter_results : KalmanFilter instance + The underlying state space model and Kalman filter output + + Attributes + ---------- + model : Model instance + A reference to the model that was fit. + filter_results : KalmanFilter instance + The underlying state space model and Kalman filter output + nobs : float + The number of observations used to fit the model. + params : array + The parameters of the model. + scale : float + This is currently set to 1.0 and not used by the model or its results. + + See Also + -------- + MLEModel + statsmodels.tsa.statespace.kalman_filter.FilterResults + statsmodels.tsa.statespace.representation.FrozenRepresentation + """ + def __init__(self, model, params, results, cov_type='opg', + cov_kwds=None, **kwargs): + self.data = model.data + + tsbase.TimeSeriesModelResults.__init__(self, model, params, + normalized_cov_params=None, + scale=1.) + + # Save the state space representation output + self.filter_results = results + if isinstance(results, SmootherResults): + self.smoother_results = results + else: + self.smoother_results = None + + # Dimensions + self.nobs = model.nobs + + # Setup covariance matrix notes dictionary + if not hasattr(self, 'cov_kwds'): + self.cov_kwds = {} + self.cov_type = cov_type + + # Setup the cache + self._cache = resettable_cache() + + # Handle covariance matrix calculation + if cov_kwds is None: + cov_kwds = {} + self._cov_approx_complex_step = ( + cov_kwds.pop('approx_complex_step', True)) + self._cov_approx_centered = cov_kwds.pop('approx_centered', False) + try: + self._rank = None + self._get_robustcov_results(cov_type=cov_type, use_self=True, + **cov_kwds) + except np.linalg.LinAlgError: + self._rank = 0 + k_params = len(self.params) + self.cov_params_default = np.zeros((k_params, k_params)) * np.nan + self.cov_kwds['cov_type'] = ( + 'Covariance matrix could not be calculated: singular.' + ' information matrix.') + + # References of filter and smoother output + for name in ['filtered_state', 'filtered_state_cov', 'predicted_state', + 'predicted_state_cov', 'forecasts', 'forecasts_error', + 'forecasts_error_cov', 'smoothed_state', + 'smoothed_state_cov', 'smoothed_measurement_disturbance', + 'smoothed_state_disturbance', + 'smoothed_measurement_disturbance_cov', + 'smoothed_state_disturbance_cov']: + setattr(self, name, getattr(self.filter_results, name, None)) + + def _get_robustcov_results(self, cov_type='opg', **kwargs): + """ + Create new results instance with specified covariance estimator as + default + + Note: creating new results instance currently not supported. + + Parameters + ---------- + cov_type : string + the type of covariance matrix estimator to use. See Notes below + kwargs : depends on cov_type + Required or optional arguments for covariance calculation. + See Notes below. + + Returns + ------- + results : results instance + This method creates a new results instance with the requested + covariance as the default covariance of the parameters. + Inferential statistics like p-values and hypothesis tests will be + based on this covariance matrix. + + Notes + ----- + The following covariance types and required or optional arguments are + currently available: + + - 'opg' for the outer product of gradient estimator + - 'oim' for the observed information matrix estimator, calculated + using the method of Harvey (1989) + - 'approx' for the observed information matrix estimator, + calculated using a numerical approximation of the Hessian matrix. + Uses complex step approximation by default, or uses finite + differences if `approx_complex_step=False` in the `cov_kwds` + dictionary. + - 'robust' for an approximate (quasi-maximum likelihood) covariance + matrix that may be valid even in the presense of some + misspecifications. Intermediate calculations use the 'oim' + method. + - 'robust_approx' is the same as 'robust' except that the + intermediate calculations use the 'approx' method. + - 'none' for no covariance matrix calculation. + """ + + import statsmodels.stats.sandwich_covariance as sw + + use_self = kwargs.pop('use_self', False) + if use_self: + res = self + else: + raise NotImplementedError + res = self.__class__( + self.model, self.params, + normalized_cov_params=self.normalized_cov_params, + scale=self.scale) + + # Set the new covariance type + res.cov_type = cov_type + res.cov_kwds = {} + + # Calculate the new covariance matrix + approx_complex_step = self._cov_approx_complex_step + if approx_complex_step: + approx_type_str = 'complex-step' + elif self._cov_approx_centered: + approx_type_str = 'centered finite differences' + else: + approx_type_str = 'finite differences' + k_params = len(self.params) + if k_params == 0: + res.cov_params_default = np.zeros((0, 0)) + res._rank = 0 + res.cov_kwds['description'] = ( + 'No parameters estimated.') + elif cov_type == 'custom': + res.cov_type = kwargs['custom_cov_type'] + res.cov_params_default = kwargs['custom_cov_params'] + res.cov_kwds['description'] = kwargs['custom_description'] + res._rank = np.linalg.matrix_rank(res.cov_params_default) + elif cov_type == 'none': + res.cov_params_default = np.zeros((k_params, k_params)) * np.nan + res._rank = np.nan + res.cov_kwds['description'] = ( + 'Covariance matrix not calculated.') + elif self.cov_type == 'approx': + res.cov_params_default = res.cov_params_approx + res.cov_kwds['description'] = ( + 'Covariance matrix calculated using numerical (%s)' + ' differentiation.' % approx_type_str) + elif self.cov_type == 'oim': + res.cov_params_default = res.cov_params_oim + res.cov_kwds['description'] = ( + 'Covariance matrix calculated using the observed information' + ' matrix (%s) described in Harvey (1989).' % approx_type_str) + elif self.cov_type == 'opg': + res.cov_params_default = res.cov_params_opg + res.cov_kwds['description'] = ( + 'Covariance matrix calculated using the outer product of' + ' gradients (%s).' % approx_type_str + ) + elif self.cov_type == 'robust' or self.cov_type == 'robust_oim': + res.cov_params_default = res.cov_params_robust_oim + res.cov_kwds['description'] = ( + 'Quasi-maximum likelihood covariance matrix used for' + ' robustness to some misspecifications; calculated using the' + ' observed information matrix (%s) described in' + ' Harvey (1989).' % approx_type_str) + elif self.cov_type == 'robust_approx': + res.cov_params_default = res.cov_params_robust + res.cov_kwds['description'] = ( + 'Quasi-maximum likelihood covariance matrix used for' + ' robustness to some misspecifications; calculated using' + ' numerical (%s) differentiation.' % approx_type_str) + else: + raise NotImplementedError('Invalid covariance matrix type.') + + return res + + @cache_readonly + def aic(self): + """ + (float) Akaike Information Criterion + """ + # return -2*self.llf + 2*self.params.shape[0] + return aic(self.llf, self.nobs, self.params.shape[0]) + + @cache_readonly + def bic(self): + """ + (float) Bayes Information Criterion + """ + # return -2*self.llf + self.params.shape[0]*np.log(self.nobs) + return bic(self.llf, self.nobs, self.params.shape[0]) + + def _cov_params_approx(self, approx_complex_step=True, + approx_centered=False): + nobs = (self.model.nobs - self.filter_results.loglikelihood_burn) + if approx_complex_step: + evaluated_hessian = self.model._hessian_complex_step( + self.params, transformed=True + ) + else: + evaluated_hessian = self.model._hessian_finite_difference( + self.params, transformed=True, + approx_centered=approx_centered + ) + self.model.update(self.params) + + neg_cov, singular_values = pinv_extended(nobs * evaluated_hessian) + + if self._rank is None: + self._rank = np.linalg.matrix_rank(np.diag(singular_values)) + + return -neg_cov + + @cache_readonly + def cov_params_approx(self): + """ + (array) The variance / covariance matrix. Computed using the numerical + Hessian approximated by complex step or finite differences methods. + """ + return self._cov_params_approx(self._cov_approx_complex_step, + self._cov_approx_centered) + + def _cov_params_oim(self, approx_complex_step=True, + approx_centered=False): + nobs = (self.model.nobs - self.filter_results.loglikelihood_burn) + cov_params, singular_values = pinv_extended( + nobs * self.model.observed_information_matrix( + self.params, transformed=True, + approx_complex_step=approx_complex_step, + approx_centered=approx_centered) + ) + self.model.update(self.params) + + if self._rank is None: + self._rank = np.linalg.matrix_rank(np.diag(singular_values)) + + return cov_params + + @cache_readonly + def cov_params_oim(self): + """ + (array) The variance / covariance matrix. Computed using the method + from Harvey (1989). + """ + return self._cov_params_oim(self._cov_approx_complex_step, + self._cov_approx_centered) + + def _cov_params_opg(self, approx_complex_step=True, + approx_centered=False): + nobs = (self.model.nobs - self.filter_results.loglikelihood_burn) + cov_params, singular_values = pinv_extended( + nobs * self.model.opg_information_matrix( + self.params, transformed=True, + approx_complex_step=approx_complex_step, + approx_centered=approx_centered) + ) + self.model.update(self.params) + + if self._rank is None: + self._rank = np.linalg.matrix_rank(np.diag(singular_values)) + + return cov_params + + @cache_readonly + def cov_params_opg(self): + """ + (array) The variance / covariance matrix. Computed using the outer + product of gradients method. + """ + return self._cov_params_opg(self._cov_approx_complex_step, + self._cov_approx_centered) + + @cache_readonly + def cov_params_robust(self): + """ + (array) The QMLE variance / covariance matrix. Alias for + `cov_params_robust_oim` + """ + return self.cov_params_robust_oim + + + def _cov_params_robust_oim(self, approx_complex_step=True, + approx_centered=False): + nobs = (self.model.nobs - self.filter_results.loglikelihood_burn) + cov_opg = self._cov_params_opg(approx_complex_step=approx_complex_step, + approx_centered=approx_centered) + evaluated_hessian = ( + nobs * self.model.observed_information_matrix( + self.params, transformed=True, + approx_complex_step=approx_complex_step, + approx_centered=approx_centered) + ) + self.model.update(self.params) + cov_params, singular_values = pinv_extended( + np.dot(np.dot(evaluated_hessian, cov_opg), evaluated_hessian) + ) + + if self._rank is None: + self._rank = np.linalg.matrix_rank(np.diag(singular_values)) + + return cov_params + + @cache_readonly + def cov_params_robust_oim(self): + """ + (array) The QMLE variance / covariance matrix. Computed using the + method from Harvey (1989) as the evaluated hessian. + """ + return self._cov_params_robust_oim(self._cov_approx_complex_step, + self._cov_approx_centered) + + def _cov_params_robust_approx(self, approx_complex_step=True, + approx_centered=False): + nobs = (self.model.nobs - self.filter_results.loglikelihood_burn) + cov_opg = self._cov_params_opg(approx_complex_step=approx_complex_step, + approx_centered=approx_centered) + if approx_complex_step: + evaluated_hessian = nobs * self.model._hessian_complex_step( + self.params, transformed=True + ) + else: + evaluated_hessian = nobs * self.model._hessian_finite_difference( + self.params, transformed=True, + approx_centered=approx_centered + ) + self.model.update(self.params) + cov_params, singular_values = pinv_extended( + np.dot(np.dot(evaluated_hessian, cov_opg), evaluated_hessian) + ) + + if self._rank is None: + self._rank = np.linalg.matrix_rank(np.diag(singular_values)) + + return cov_params + + @cache_readonly + def cov_params_robust_approx(self): + """ + (array) The QMLE variance / covariance matrix. Computed using the + numerical Hessian as the evaluated hessian. + """ + return self._cov_params_robust_approx(self._cov_approx_complex_step, + self._cov_approx_centered) + + @cache_readonly + def fittedvalues(self): + """ + (array) The predicted values of the model. An (nobs x k_endog) array. + """ + # This is a (k_endog x nobs array; don't want to squeeze in case of + # the corner case where nobs = 1 (mostly a concern in the predict or + # forecast functions, but here also to maintain consistency) + fittedvalues = self.filter_results.forecasts + if fittedvalues.shape[0] == 1: + fittedvalues = fittedvalues[0, :] + else: + fittedvalues = fittedvalues.T + return fittedvalues + + @cache_readonly + def hqic(self): + """ + (float) Hannan-Quinn Information Criterion + """ + # return -2*self.llf + 2*np.log(np.log(self.nobs))*self.params.shape[0] + return hqic(self.llf, self.nobs, self.params.shape[0]) + + @cache_readonly + def llf_obs(self): + """ + (float) The value of the log-likelihood function evaluated at `params`. + """ + return self.model.loglikeobs(self.params) + + @cache_readonly + def llf(self): + """ + (float) The value of the log-likelihood function evaluated at `params`. + """ + return self.llf_obs[self.filter_results.loglikelihood_burn:].sum() + + @cache_readonly + def loglikelihood_burn(self): + """ + (float) The number of observations during which the likelihood is not + evaluated. + """ + return self.filter_results.loglikelihood_burn + + @cache_readonly + def pvalues(self): + """ + (array) The p-values associated with the z-statistics of the + coefficients. Note that the coefficients are assumed to have a Normal + distribution. + """ + return norm.sf(np.abs(self.zvalues)) * 2 + + @cache_readonly + def resid(self): + """ + (array) The model residuals. An (nobs x k_endog) array. + """ + # This is a (k_endog x nobs array; don't want to squeeze in case of + # the corner case where nobs = 1 (mostly a concern in the predict or + # forecast functions, but here also to maintain consistency) + resid = self.filter_results.forecasts_error + if resid.shape[0] == 1: + resid = resid[0, :] + else: + resid = resid.T + return resid + + @cache_readonly + def zvalues(self): + """ + (array) The z-statistics for the coefficients. + """ + return self.params / self.bse + + def test_normality(self, method): + """ + Test for normality of standardized residuals. + + Null hypothesis is normality. + + Parameters + ---------- + method : string {'jarquebera'} or None + The statistical test for normality. Must be 'jarquebera' for + Jarque-Bera normality test. If None, an attempt is made to select + an appropriate test. + + Notes + ----- + If the first `d` loglikelihood values were burned (i.e. in the + specified model, `loglikelihood_burn=d`), then this test is calculated + ignoring the first `d` residuals. + + In the case of missing data, the maintained hypothesis is that the + data are missing completely at random. This test is then run on the + standardized residuals excluding those corresponding to missing + observations. + + See Also + -------- + statsmodels.stats.stattools.jarque_bera + + """ + if method is None: + method = 'jarquebera' + + if method == 'jarquebera': + from statsmodels.stats.stattools import jarque_bera + d = self.loglikelihood_burn + output = [] + for i in range(self.model.k_endog): + resid = self.filter_results.standardized_forecasts_error[i, d:] + mask = ~np.isnan(resid) + output.append(jarque_bera(resid[mask])) + else: + raise NotImplementedError('Invalid normality test method.') + + return np.array(output) + + def test_heteroskedasticity(self, method, alternative='two-sided', + use_f=True): + r""" + Test for heteroskedasticity of standardized residuals + + Tests whether the sum-of-squares in the first third of the sample is + significantly different than the sum-of-squares in the last third + of the sample. Analogous to a Goldfeld-Quandt test. + + Parameters + ---------- + method : string {'breakvar'} or None + The statistical test for heteroskedasticity. Must be 'breakvar' + for test of a break in the variance. If None, an attempt is + made to select an appropriate test. + alternative : string, 'increasing', 'decreasing' or 'two-sided' + This specifies the alternative for the p-value calculation. Default + is two-sided. + use_f : boolean, optional + Whether or not to compare against the asymptotic distribution + (chi-squared) or the approximate small-sample distribution (F). + Default is True (i.e. default is to compare against an F + distribution). + + Returns + ------- + output : array + An array with `(test_statistic, pvalue)` for each endogenous + variable. The array is then sized `(k_endog, 2)`. If the method is + called as `het = res.test_heteroskedasticity()`, then `het[0]` is + an array of size 2 corresponding to the first endogenous variable, + where `het[0][0]` is the test statistic, and `het[0][1]` is the + p-value. + + Notes + ----- + The null hypothesis is of no heteroskedasticity. That means different + things depending on which alternative is selected: + + - Increasing: Null hypothesis is that the variance is not increasing + throughout the sample; that the sum-of-squares in the later + subsample is *not* greater than the sum-of-squares in the earlier + subsample. + - Decreasing: Null hypothesis is that the variance is not decreasing + throughout the sample; that the sum-of-squares in the earlier + subsample is *not* greater than the sum-of-squares in the later + subsample. + - Two-sided: Null hypothesis is that the variance is not changing + throughout the sample. Both that the sum-of-squares in the earlier + subsample is not greater than the sum-of-squares in the later + subsample *and* that the sum-of-squares in the later subsample is + not greater than the sum-of-squares in the earlier subsample. + + For :math:`h = [T/3]`, the test statistic is: + + .. math:: + + H(h) = \sum_{t=T-h+1}^T \tilde v_t^2 + \Bigg / \sum_{t=d+1}^{d+1+h} \tilde v_t^2 + + where :math:`d` is the number of periods in which the loglikelihood was + burned in the parent model (usually corresponding to diffuse + initialization). + + This statistic can be tested against an :math:`F(h,h)` distribution. + Alternatively, :math:`h H(h)` is asymptotically distributed according + to :math:`\chi_h^2`; this second test can be applied by passing + `asymptotic=True` as an argument. + + See section 5.4 of [1]_ for the above formula and discussion, as well + as additional details. + + TODO + + - Allow specification of :math:`h` + + References + ---------- + .. [1] Harvey, Andrew C. 1990. + Forecasting, Structural Time Series Models and the Kalman Filter. + Cambridge University Press. + + """ + if method is None: + method = 'breakvar' + + if method == 'breakvar': + # Store some values + squared_resid = self.filter_results.standardized_forecasts_error**2 + d = self.loglikelihood_burn + + test_statistics = [] + p_values = [] + for i in range(self.model.k_endog): + h = int(np.round((self.nobs - d) / 3)) + numer_resid = squared_resid[i, -h:] + numer_resid = numer_resid[~np.isnan(numer_resid)] + numer_dof = len(numer_resid) + + denom_resid = squared_resid[i, d:d+h] + denom_resid = denom_resid[~np.isnan(denom_resid)] + denom_dof = len(denom_resid) + + if numer_dof < 2: + raise RuntimeError('Early subset of data has too few' + ' non-missing observations to' + ' calculate test statistic.') + if denom_dof < 2: + raise RuntimeError('Later subset of data has too few' + ' non-missing observations to' + ' calculate test statistic.') + + test_statistic = np.sum(numer_resid) / np.sum(denom_resid) + + # Setup functions to calculate the p-values + if use_f: + from scipy.stats import f + pval_lower = lambda test_statistics: f.cdf( + test_statistics, numer_dof, denom_dof) + pval_upper = lambda test_statistics: f.sf( + test_statistics, numer_dof, denom_dof) + else: + from scipy.stats import chi2 + pval_lower = lambda test_statistics: chi2.cdf( + numer_dof * test_statistics, denom_dof) + pval_upper = lambda test_statistics: chi2.sf( + numer_dof * test_statistics, denom_dof) + + # Calculate the one- or two-sided p-values + alternative = alternative.lower() + if alternative in ['i', 'inc', 'increasing']: + p_value = pval_upper(test_statistic) + elif alternative in ['d', 'dec', 'decreasing']: + test_statistic = 1. / test_statistic + p_value = pval_upper(test_statistic) + elif alternative in ['2', '2-sided', 'two-sided']: + p_value = 2 * np.minimum( + pval_lower(test_statistic), + pval_upper(test_statistic) + ) + else: + raise ValueError('Invalid alternative.') + + test_statistics.append(test_statistic) + p_values.append(p_value) + + output = np.c_[test_statistics, p_values] + else: + raise NotImplementedError('Invalid heteroskedasticity test' + ' method.') + + return output + + def test_serial_correlation(self, method, lags=None): + """ + Ljung-box test for no serial correlation of standardized residuals + + Null hypothesis is no serial correlation. + + Parameters + ---------- + method : string {'ljungbox','boxpierece'} or None + The statistical test for serial correlation. If None, an attempt is + made to select an appropriate test. + lags : None, int or array_like + If lags is an integer then this is taken to be the largest lag + that is included, the test result is reported for all smaller lag + length. + If lags is a list or array, then all lags are included up to the + largest lag in the list, however only the tests for the lags in the + list are reported. + If lags is None, then the default maxlag is 12*(nobs/100)^{1/4} + + Returns + ------- + output : array + An array with `(test_statistic, pvalue)` for each endogenous + variable and each lag. The array is then sized + `(k_endog, 2, lags)`. If the method is called as + `ljungbox = res.test_serial_correlation()`, then `ljungbox[i]` + holds the results of the Ljung-Box test (as would be returned by + `statsmodels.stats.diagnostic.acorr_ljungbox`) for the `i` th + endogenous variable. + + Notes + ----- + If the first `d` loglikelihood values were burned (i.e. in the + specified model, `loglikelihood_burn=d`), then this test is calculated + ignoring the first `d` residuals. + + Output is nan for any endogenous variable which has missing values. + + See Also + -------- + statsmodels.stats.diagnostic.acorr_ljungbox + + """ + if method is None: + method = 'ljungbox' + + if method == 'ljungbox' or method == 'boxpierce': + from statsmodels.stats.diagnostic import acorr_ljungbox + d = self.loglikelihood_burn + output = [] + + # Default lags for acorr_ljungbox is 40, but may not always have + # that many observations + if lags is None: + lags = min(40, self.nobs - d - 1) + + for i in range(self.model.k_endog): + results = acorr_ljungbox( + self.filter_results.standardized_forecasts_error[i][d:], + lags=lags, boxpierce=(method == 'boxpierce')) + if method == 'ljungbox': + output.append(results[0:2]) + else: + output.append(results[2:]) + + output = np.c_[output] + else: + raise NotImplementedError('Invalid serial correlation test' + ' method.') + return output + + def get_prediction(self, start=None, end=None, dynamic=False, **kwargs): + """ + In-sample prediction and out-of-sample forecasting + + Parameters + ---------- + start : int, str, or datetime, optional + Zero-indexed observation number at which to start forecasting, + i.e., the first forecast is start. Can also be a date string to + parse or a datetime type. Default is the the zeroth observation. + end : int, str, or datetime, optional + Zero-indexed observation number at which to end forecasting, i.e., + the last forecast is end. Can also be a date string to + parse or a datetime type. However, if the dates index does not + have a fixed frequency, end must be an integer index if you + want out of sample prediction. Default is the last observation in + the sample. + dynamic : boolean, int, str, or datetime, optional + Integer offset relative to `start` at which to begin dynamic + prediction. Can also be an absolute date string to parse or a + datetime type (these are not interpreted as offsets). + Prior to this observation, true endogenous values will be used for + prediction; starting with this observation and continuing through + the end of prediction, forecasted endogenous values will be used + instead. + **kwargs + Additional arguments may required for forecasting beyond the end + of the sample. See `FilterResults.predict` for more details. + + Returns + ------- + forecast : array + Array of out of in-sample predictions and / or out-of-sample + forecasts. An (npredict x k_endog) array. + """ + if start is None: + start = 0 + + # Handle start and end (e.g. dates) + start = self.model._get_predict_start(start) + end, out_of_sample = self.model._get_predict_end(end) + + # Handle string dynamic + dates = self.data.dates + if isinstance(dynamic, str): + if dates is None: + raise ValueError("Got a string for dynamic and dates is None") + dtdynamic = self.model._str_to_date(dynamic) + try: + dynamic_start = self.model._get_dates_loc(dates, dtdynamic) + + dynamic = dynamic_start - start + except KeyError: + raise ValueError("Dynamic must be in dates. Got %s | %s" % + (str(dynamic), str(dtdynamic))) + + # Perform the prediction + # This is a (k_endog x npredictions) array; don't want to squeeze in + # case of npredictions = 1 + prediction_results = self.filter_results.predict( + start, end+out_of_sample+1, dynamic, **kwargs + ) + + # Return a new mlemodel.PredictionResults object + if self.data.dates is None: + row_labels = self.data.row_labels + else: + row_labels = self.data.predict_dates + return PredictionResultsWrapper( + PredictionResults(self, prediction_results, row_labels=row_labels)) + + def get_forecast(self, steps=1, **kwargs): + """ + Out-of-sample forecasts + + Parameters + ---------- + steps : int, str, or datetime, optional + If an integer, the number of steps to forecast from the end of the + sample. Can also be a date string to parse or a datetime type. + However, if the dates index does not have a fixed frequency, steps + must be an integer. Default + **kwargs + Additional arguments may required for forecasting beyond the end + of the sample. See `FilterResults.predict` for more details. + + Returns + ------- + forecast : array + Array of out of sample forecasts. A (steps x k_endog) array. + """ + if isinstance(steps, (int, long)): + end = self.nobs+steps-1 + else: + end = steps + return self.get_prediction(start=self.nobs, end=end, **kwargs) + + def predict(self, start=None, end=None, dynamic=False, **kwargs): + """ + In-sample prediction and out-of-sample forecasting + + Parameters + ---------- + start : int, str, or datetime, optional + Zero-indexed observation number at which to start forecasting, + i.e., the first forecast is start. Can also be a date string to + parse or a datetime type. Default is the the zeroth observation. + end : int, str, or datetime, optional + Zero-indexed observation number at which to end forecasting, i.e., + the last forecast is end. Can also be a date string to + parse or a datetime type. However, if the dates index does not + have a fixed frequency, end must be an integer index if you + want out of sample prediction. Default is the last observation in + the sample. + dynamic : boolean, int, str, or datetime, optional + Integer offset relative to `start` at which to begin dynamic + prediction. Can also be an absolute date string to parse or a + datetime type (these are not interpreted as offsets). + Prior to this observation, true endogenous values will be used for + prediction; starting with this observation and continuing through + the end of prediction, forecasted endogenous values will be used + instead. + **kwargs + Additional arguments may required for forecasting beyond the end + of the sample. See `FilterResults.predict` for more details. + + Returns + ------- + forecast : array + Array of out of in-sample predictions and / or out-of-sample + forecasts. An (npredict x k_endog) array. + """ + # Perform the prediction + prediction_results = self.get_prediction(start, end, dynamic, **kwargs) + return prediction_results.predicted_mean + + def forecast(self, steps=1, **kwargs): + """ + Out-of-sample forecasts + + Parameters + ---------- + steps : int, str, or datetime, optional + If an integer, the number of steps to forecast from the end of the + sample. Can also be a date string to parse or a datetime type. + However, if the dates index does not have a fixed frequency, steps + must be an integer. Default + **kwargs + Additional arguments may required for forecasting beyond the end + of the sample. See `FilterResults.predict` for more details. + + Returns + ------- + forecast : array + Array of out of sample forecasts. A (steps x k_endog) array. + """ + if isinstance(steps, (int, long)): + end = self.nobs+steps-1 + else: + end = steps + return self.predict(start=self.nobs, end=end, **kwargs) + + def simulate(self, nsimulations, measurement_shocks=None, + state_shocks=None, initial_state=None): + r""" + Simulate a new time series following the state space model + + Parameters + ---------- + nsimulations : int + The number of observations to simulate. If the model is + time-invariant this can be any number. If the model is + time-varying, then this number must be less than or equal to the + number + measurement_shocks : array_like, optional + If specified, these are the shocks to the measurement equation, + :math:`\varepsilon_t`. If unspecified, these are automatically + generated using a pseudo-random number generator. If specified, + must be shaped `nsimulations` x `k_endog`, where `k_endog` is the + same as in the state space model. + state_shocks : array_like, optional + If specified, these are the shocks to the state equation, + :math:`\eta_t`. If unspecified, these are automatically + generated using a pseudo-random number generator. If specified, + must be shaped `nsimulations` x `k_posdef` where `k_posdef` is the + same as in the state space model. + initial_state : array_like, optional + If specified, this is the state vector at time zero, which should + be shaped (`k_states` x 1), where `k_states` is the same as in the + state space model. If unspecified, but the model has been + initialized, then that initialization is used. If unspecified and + the model has not been initialized, then a vector of zeros is used. + Note that this is not included in the returned `simulated_states` + array. + + Returns + ------- + simulated_obs : array + An (nsimulations x k_endog) array of simulated observations. + """ + return self.model.simulate(self.params, nsimulations, + measurement_shocks, state_shocks, + initial_state) + + def impulse_responses(self, steps=1, impulse=0, orthogonalized=False, + cumulative=False, **kwargs): + """ + Impulse response function + + Parameters + ---------- + steps : int, optional + The number of steps for which impulse responses are calculated. + Default is 1. Note that the initial impulse is not counted as a + step, so if `steps=1`, the output will have 2 entries. + impulse : int or array_like + If an integer, the state innovation to pulse; must be between 0 + and `k_posdef-1`. Alternatively, a custom impulse vector may be + provided; must be shaped `k_posdef x 1`. + orthogonalized : boolean, optional + Whether or not to perform impulse using orthogonalized innovations. + Note that this will also affect custum `impulse` vectors. Default + is False. + cumulative : boolean, optional + Whether or not to return cumulative impulse responses. Default is + False. + **kwargs + If the model is time-varying and `steps` is greater than the number + of observations, any of the state space representation matrices + that are time-varying must have updated values provided for the + out-of-sample steps. + For example, if `design` is a time-varying component, `nobs` is 10, + and `steps` is 15, a (`k_endog` x `k_states` x 5) matrix must be + provided with the new design matrix values. + + Returns + ------- + impulse_responses : array + Responses for each endogenous variable due to the impulse + given by the `impulse` argument. A (steps + 1 x k_endog) array. + + Notes + ----- + Intercepts in the measurement and state equation are ignored when + calculating impulse responses. + + """ + return self.model.impulse_responses(self.params, steps, impulse, + orthogonalized, cumulative, + **kwargs) + + def plot_diagnostics(self, variable=0, lags=10, fig=None, figsize=None): + """ + Diagnostic plots for standardized residuals of one endogenous variable + + Parameters + ---------- + variable : integer, optional + Index of the endogenous variable for which the diagnostic plots + should be created. Default is 0. + lags : integer, optional + Number of lags to include in the correlogram. Default is 10. + fig : Matplotlib Figure instance, optional + If given, subplots are created in this figure instead of in a new + figure. Note that the 2x2 grid will be created in the provided + figure using `fig.add_subplot()`. + figsize : tuple, optional + If a figure is created, this argument allows specifying a size. + The tuple is (width, height). + + Notes + ----- + Produces a 2x2 plot grid with the following plots (ordered clockwise + from top left): + + 1. Standardized residuals over time + 2. Histogram plus estimated density of standardized residulas, along + with a Normal(0,1) density plotted for reference. + 3. Normal Q-Q plot, with Normal reference line. + 4. Correlogram + + See Also + -------- + statsmodels.graphics.gofplots.qqplot + statsmodels.graphics.tsaplots.plot_acf + """ + from statsmodels.graphics.utils import _import_mpl, create_mpl_fig + _import_mpl() + fig = create_mpl_fig(fig, figsize) + # Eliminate residuals associated with burned likelihoods + d = self.loglikelihood_burn + resid = self.filter_results.standardized_forecasts_error[variable, d:] + + # Top-left: residuals vs time + ax = fig.add_subplot(221) + if hasattr(self.data, 'dates') and self.data.dates is not None: + x = self.data.dates[self.loglikelihood_burn:]._mpl_repr() + else: + x = np.arange(len(resid)) + ax.plot(x, resid) + ax.hlines(0, x[0], x[-1], alpha=0.5) + ax.set_xlim(x[0], x[-1]) + ax.set_title('Standardized residual') + + # Top-right: histogram, Gaussian kernel density, Normal density + # Can only do histogram and Gaussian kernel density on the non-null + # elements + resid_nonmissing = resid[~(np.isnan(resid))] + ax = fig.add_subplot(222) + ax.hist(resid_nonmissing, normed=True, label='Hist') + from scipy.stats import gaussian_kde, norm + kde = gaussian_kde(resid_nonmissing) + xlim = (-1.96*2, 1.96*2) + x = np.linspace(xlim[0], xlim[1]) + ax.plot(x, kde(x), label='KDE') + ax.plot(x, norm.pdf(x), label='N(0,1)') + ax.set_xlim(xlim) + ax.legend() + ax.set_title('Histogram plus estimated density') + + # Bottom-left: QQ plot + ax = fig.add_subplot(223) + from statsmodels.graphics.gofplots import qqplot + qqplot(resid, line='s', ax=ax) + ax.set_title('Normal Q-Q') + + # Bottom-right: Correlogram + ax = fig.add_subplot(224) + from statsmodels.graphics.tsaplots import plot_acf + plot_acf(resid, ax=ax, lags=lags) + ax.set_title('Correlogram') + + ax.set_ylim(-1, 1) + + return fig + + def summary(self, alpha=.05, start=None, title=None, model_name=None, + display_params=True): + """ + Summarize the Model + + Parameters + ---------- + alpha : float, optional + Significance level for the confidence intervals. Default is 0.05. + start : int, optional + Integer of the start observation. Default is 0. + model_name : string + The name of the model used. Default is to use model class name. + + Returns + ------- + summary : Summary instance + This holds the summary table and text, which can be printed or + converted to various output formats. + + See Also + -------- + statsmodels.iolib.summary.Summary + """ + from statsmodels.iolib.summary import Summary + + # Model specification results + model = self.model + if title is None: + title = 'Statespace Model Results' + + if start is None: + start = 0 + if self.data.dates is not None: + dates = self.data.dates + d = dates[start] + sample = ['%02d-%02d-%02d' % (d.month, d.day, d.year)] + d = dates[-1] + sample += ['- ' + '%02d-%02d-%02d' % (d.month, d.day, d.year)] + else: + sample = [str(start), ' - ' + str(self.model.nobs)] + + # Standardize the model name as a list of str + if model_name is None: + model_name = model.__class__.__name__ + + # Diagnostic tests results + try: + het = self.test_heteroskedasticity(method='breakvar') + except: + het = np.array([[np.nan]*2]) + try: + lb = self.test_serial_correlation(method='ljungbox') + except: + lb = np.array([[np.nan]*2]).reshape(1, 2, 1) + try: + jb = self.test_normality(method='jarquebera') + except: + jb = np.array([[np.nan]*4]) + + # Create the tables + if not isinstance(model_name, list): + model_name = [model_name] + + top_left = [('Dep. Variable:', None)] + top_left.append(('Model:', [model_name[0]])) + for i in range(1, len(model_name)): + top_left.append(('', ['+ ' + model_name[i]])) + top_left += [ + ('Date:', None), + ('Time:', None), + ('Sample:', [sample[0]]), + ('', [sample[1]]) + ] + + top_right = [ + ('No. Observations:', [self.model.nobs]), + ('Log Likelihood', ["%#5.3f" % self.llf]), + ('AIC', ["%#5.3f" % self.aic]), + ('BIC', ["%#5.3f" % self.bic]), + ('HQIC', ["%#5.3f" % self.hqic]) + ] + + if hasattr(self, 'cov_type'): + top_left.append(('Covariance Type:', [self.cov_type])) + + format_str = lambda array: [ + ', '.join(['{0:.2f}'.format(i) for i in array]) + ] + diagn_left = [('Ljung-Box (Q):', format_str(lb[:, 0, -1])), + ('Prob(Q):', format_str(lb[:, 1, -1])), + ('Heteroskedasticity (H):', format_str(het[:, 0])), + ('Prob(H) (two-sided):', format_str(het[:, 1])) + ] + + diagn_right = [('Jarque-Bera (JB):', format_str(jb[:, 0])), + ('Prob(JB):', format_str(jb[:, 1])), + ('Skew:', format_str(jb[:, 2])), + ('Kurtosis:', format_str(jb[:, 3])) + ] + + summary = Summary() + summary.add_table_2cols(self, gleft=top_left, gright=top_right, + title=title) + if len(self.params) > 0 and display_params: + summary.add_table_params(self, alpha=alpha, + xname=self.data.param_names, use_t=False) + summary.add_table_2cols(self, gleft=diagn_left, gright=diagn_right, + title="") + + # Add warnings/notes, added to text format only + etext = [] + if hasattr(self, 'cov_type') and 'description' in self.cov_kwds: + etext.append(self.cov_kwds['description']) + if self._rank < len(self.params): + etext.append("Covariance matrix is singular or near-singular," + " with condition number %6.3g. Standard errors may be" + " unstable." % np.linalg.cond(self.cov_params())) + + if etext: + etext = ["[{0}] {1}".format(i + 1, text) + for i, text in enumerate(etext)] + etext.insert(0, "Warnings:") + summary.add_extra_txt(etext) + + return summary + + +class MLEResultsWrapper(wrap.ResultsWrapper): + _attrs = { + 'zvalues': 'columns', + 'cov_params_approx': 'cov', + 'cov_params_default': 'cov', + 'cov_params_oim': 'cov', + 'cov_params_opg': 'cov', + 'cov_params_robust': 'cov', + 'cov_params_robust_approx': 'cov', + 'cov_params_robust_oim': 'cov', + } + _wrap_attrs = wrap.union_dicts(tsbase.TimeSeriesResultsWrapper._wrap_attrs, + _attrs) + _methods = { + 'forecast': 'dates', + 'simulate': 'ynames', + 'impulse_responses': 'ynames' + } + _wrap_methods = wrap.union_dicts( + tsbase.TimeSeriesResultsWrapper._wrap_methods, _methods) +wrap.populate_wrapper(MLEResultsWrapper, MLEResults) + + +class PredictionResults(pred.PredictionResults): + """ + + Parameters + ---------- + prediction_results : kalman_filter.PredictionResults instance + Results object from prediction after fitting or filtering a state space + model. + row_labels : iterable + Row labels for the predicted data. + + Attributes + ---------- + + """ + def __init__(self, model, prediction_results, row_labels=None): + if model.model.k_endog == 1: + endog = pd.Series(prediction_results.endog[:, 0], + name=model.model.endog_names) + else: + endog = pd.DataFrame(prediction_results.endog.T, + columns=model.model.endog_names) + self.model = Bunch(data=model.data.__class__( + endog=endog, + predict_dates=getattr(model.data, 'predict_dates', None)), + ) + self.prediction_results = prediction_results + + # Get required values + predicted_mean = self.prediction_results.forecasts + if predicted_mean.shape[0] == 1: + predicted_mean = predicted_mean[0, :] + else: + predicted_mean = predicted_mean.transpose() + + var_pred_mean = self.prediction_results.forecasts_error_cov + if var_pred_mean.shape[0] == 1: + var_pred_mean = var_pred_mean[0, 0, :] + else: + var_pred_mean = var_pred_mean.transpose() + + # Initialize + super(PredictionResults, self).__init__(predicted_mean, var_pred_mean, + dist='norm', + row_labels=row_labels, + link=identity()) + + @property + def se_mean(self): + if self.var_pred_mean.ndim == 1: + se_mean = np.sqrt(self.var_pred_mean) + else: + se_mean = np.sqrt(self.var_pred_mean.T.diagonal()) + return se_mean + + def conf_int(self, method='endpoint', alpha=0.05, **kwds): + # TODO: this performs metadata wrapping, and that should be handled + # by attach_* methods. However, they don't currently support + # this use case. + conf_int = super(PredictionResults, self).conf_int( + method, alpha, **kwds) + + # Create a dataframe + if self.model.data.predict_dates is not None: + conf_int = pd.DataFrame(conf_int, + index=self.model.data.predict_dates) + else: + conf_int = pd.DataFrame(conf_int) + + # Attach the endog names + ynames = self.model.data.ynames + if not type(ynames) == list: + ynames = [ynames] + names = (['lower %s' % name for name in ynames] + + ['upper %s' % name for name in ynames]) + conf_int.columns = names + + return conf_int + + def summary_frame(self, endog=0, what='all', alpha=0.05): + # TODO: finish and cleanup + # import pandas as pd + from statsmodels.compat.collections import OrderedDict + # ci_obs = self.conf_int(alpha=alpha, obs=True) # need to split + ci_mean = self.conf_int(alpha=alpha).values + to_include = OrderedDict() + if self.predicted_mean.ndim == 1: + yname = self.model.data.ynames + to_include['mean'] = self.predicted_mean + to_include['mean_se'] = self.se_mean + k_endog = 1 + else: + yname = self.model.data.ynames[endog] + to_include['mean'] = self.predicted_mean[:, endog] + to_include['mean_se'] = self.se_mean[:, endog] + k_endog = self.predicted_mean.shape[1] + to_include['mean_ci_lower'] = ci_mean[:, endog] + to_include['mean_ci_upper'] = ci_mean[:, k_endog + endog] + + self.table = to_include + # OrderedDict doesn't work to preserve sequence + # pandas dict doesn't handle 2d_array + # data = np.column_stack(list(to_include.values())) + # names = .... + res = pd.DataFrame(to_include, index=self.row_labels, + columns=to_include.keys()) + res.columns.name = yname + return res + + +class PredictionResultsWrapper(wrap.ResultsWrapper): + _attrs = { + 'predicted_mean': 'dates', + 'se_mean': 'dates', + 't_values': 'dates', + } + _wrap_attrs = wrap.union_dicts(_attrs) + + _methods = {} + _wrap_methods = wrap.union_dicts(_methods) +wrap.populate_wrapper(PredictionResultsWrapper, PredictionResults) diff --git a/statsmodels/tsa/statespace/representation.py b/statsmodels/tsa/statespace/representation.py new file mode 100644 index 0000000..7148da6 --- /dev/null +++ b/statsmodels/tsa/statespace/representation.py @@ -0,0 +1,844 @@ +""" +State Space Representation + +Author: Chad Fulton +License: Simplified-BSD +""" +from __future__ import division, absolute_import, print_function + +import numpy as np +from .tools import ( + find_best_blas_type, prefix_dtype_map, prefix_statespace_map, + validate_matrix_shape, validate_vector_shape +) + + +class OptionWrapper(object): + def __init__(self, mask_attribute, mask_value): + # Name of the class-level bitmask attribute + self.mask_attribute = mask_attribute + # Value of this option + self.mask_value = mask_value + + def __get__(self, obj, objtype): + # Return True / False based on whether the bit is set in the bitmask + return bool(getattr(obj, self.mask_attribute, 0) & self.mask_value) + + def __set__(self, obj, value): + mask_attribute_value = getattr(obj, self.mask_attribute, 0) + if bool(value): + value = mask_attribute_value | self.mask_value + else: + value = mask_attribute_value & ~self.mask_value + setattr(obj, self.mask_attribute, value) + + +class MatrixWrapper(object): + def __init__(self, name, attribute): + self.name = name + self.attribute = attribute + self._attribute = '_' + attribute + + def __get__(self, obj, objtype): + matrix = getattr(obj, self._attribute, None) + # # Remove last dimension if the array is not actually time-varying + # if matrix is not None and matrix.shape[-1] == 1: + # return np.squeeze(matrix, -1) + return matrix + + def __set__(self, obj, value): + value = np.asarray(value, order="F") + shape = obj.shapes[self.attribute] + + if len(shape) == 3: + value = self._set_matrix(obj, value, shape) + else: + value = self._set_vector(obj, value, shape) + + setattr(obj, self._attribute, value) + + def _set_matrix(self, obj, value, shape): + # Expand 1-dimensional array if possible + if (value.ndim == 1 and shape[0] == 1 + and value.shape[0] == shape[1]): + value = value[None, :] + + # Enforce that the matrix is appropriate size + validate_matrix_shape( + self.name, value.shape, shape[0], shape[1], obj.nobs + ) + + # Expand time-invariant matrix + if value.ndim == 2: + value = np.array(value[:, :, None], order="F") + + return value + + def _set_vector(self, obj, value, shape): + # Enforce that the vector has appropriate length + validate_vector_shape( + self.name, value.shape, shape[0], obj.nobs + ) + + # Expand the time-invariant vector + if value.ndim == 1: + value = np.array(value[:, None], order="F") + + return value + + +class Representation(object): + r""" + State space representation of a time series process + + Parameters + ---------- + k_endog : array_like or integer + The observed time-series process :math:`y` if array like or the + number of variables in the process if an integer. + k_states : int + The dimension of the unobserved state process. + k_posdef : int, optional + The dimension of a guaranteed positive definite covariance matrix + describing the shocks in the measurement equation. Must be less than + or equal to `k_states`. Default is `k_states`. + initial_variance : float, optional + Initial variance used when approximate diffuse initialization is + specified. Default is 1e6. + initialization : {'approximate_diffuse','stationary','known'}, optional + Initialization method for the initial state. + initial_state : array_like, optional + If known initialization is used, the mean of the initial state's + distribution. + initial_state_cov : array_like, optional + If known initialization is used, the covariance matrix of the initial + state's distribution. + nobs : integer, optional + If an endogenous vector is not given (i.e. `k_endog` is an integer), + the number of observations can optionally be specified. If not + specified, they will be set to zero until data is bound to the model. + dtype : dtype, optional + If an endogenous vector is not given (i.e. `k_endog` is an integer), + the default datatype of the state space matrices can optionally be + specified. Default is `np.float64`. + design : array_like, optional + The design matrix, :math:`Z`. Default is set to zeros. + obs_intercept : array_like, optional + The intercept for the observation equation, :math:`d`. Default is set + to zeros. + obs_cov : array_like, optional + The covariance matrix for the observation equation :math:`H`. Default + is set to zeros. + transition : array_like, optional + The transition matrix, :math:`T`. Default is set to zeros. + state_intercept : array_like, optional + The intercept for the transition equation, :math:`c`. Default is set to + zeros. + selection : array_like, optional + The selection matrix, :math:`R`. Default is set to zeros. + state_cov : array_like, optional + The covariance matrix for the state equation :math:`Q`. Default is set + to zeros. + **kwargs + Additional keyword arguments. Not used directly. It is present to + improve compatibility with subclasses, so that they can use `**kwargs` + to specify any default state space matrices (e.g. `design`) without + having to clean out any other keyword arguments they might have been + passed. + + Attributes + ---------- + nobs : int + The number of observations. + k_endog : int + The dimension of the observation series. + k_states : int + The dimension of the unobserved state process. + k_posdef : int + The dimension of a guaranteed positive + definite covariance matrix describing + the shocks in the measurement equation. + shapes : dictionary of name:tuple + A dictionary recording the initial shapes + of each of the representation matrices as + tuples. + initialization : str + Kalman filter initialization method. Default is unset. + initial_variance : float + Initial variance for approximate diffuse + initialization. Default is 1e6. + + Notes + ----- + A general state space model is of the form + + .. math:: + + y_t & = Z_t \alpha_t + d_t + \varepsilon_t \\ + \alpha_t & = T_t \alpha_{t-1} + c_t + R_t \eta_t \\ + + where :math:`y_t` refers to the observation vector at time :math:`t`, + :math:`\alpha_t` refers to the (unobserved) state vector at time + :math:`t`, and where the irregular components are defined as + + .. math:: + + \varepsilon_t \sim N(0, H_t) \\ + \eta_t \sim N(0, Q_t) \\ + + The remaining variables (:math:`Z_t, d_t, H_t, T_t, c_t, R_t, Q_t`) in the + equations are matrices describing the process. Their variable names and + dimensions are as follows + + Z : `design` :math:`(k\_endog \times k\_states \times nobs)` + + d : `obs_intercept` :math:`(k\_endog \times nobs)` + + H : `obs_cov` :math:`(k\_endog \times k\_endog \times nobs)` + + T : `transition` :math:`(k\_states \times k\_states \times nobs)` + + c : `state_intercept` :math:`(k\_states \times nobs)` + + R : `selection` :math:`(k\_states \times k\_posdef \times nobs)` + + Q : `state_cov` :math:`(k\_posdef \times k\_posdef \times nobs)` + + In the case that one of the matrices is time-invariant (so that, for + example, :math:`Z_t = Z_{t+1} ~ \forall ~ t`), its last dimension may + be of size :math:`1` rather than size `nobs`. + + References + ---------- + .. [1] Durbin, James, and Siem Jan Koopman. 2012. + Time Series Analysis by State Space Methods: Second Edition. + Oxford University Press. + """ + + endog = None + r""" + (array) The observation vector, alias for `obs`. + """ + design = MatrixWrapper('design', 'design') + r""" + (array) Design matrix: :math:`Z~(k\_endog \times k\_states \times nobs)` + """ + obs_intercept = MatrixWrapper('observation intercept', 'obs_intercept') + r""" + (array) Observation intercept: :math:`d~(k\_endog \times nobs)` + """ + obs_cov = MatrixWrapper('observation covariance matrix', 'obs_cov') + r""" + (array) Observation covariance matrix: + :math:`H~(k\_endog \times k\_endog \times nobs)` + """ + transition = MatrixWrapper('transition', 'transition') + r""" + (array) Transition matrix: :math:`T~(k\_states \times k\_states \times nobs)` + """ + state_intercept = MatrixWrapper('state intercept', 'state_intercept') + r""" + (array) State intercept: :math:`c~(k\_states \times nobs)` + """ + selection = MatrixWrapper('selection', 'selection') + r""" + (array) Selection matrix: :math:`R~(k\_states \times k\_posdef \times nobs)` + """ + state_cov = MatrixWrapper('state covariance matrix', 'state_cov') + r""" + (array) State covariance matrix: :math:`Q~(k\_posdef \times k\_posdef \times nobs)` + """ + + def __init__(self, k_endog, k_states, k_posdef=None, + initial_variance=1e6, nobs=0, dtype=np.float64, + design=None, obs_intercept=None, obs_cov=None, + transition=None, state_intercept=None, selection=None, + state_cov=None, **kwargs): + self.shapes = {} + + # Check if k_endog is actually the endog array + endog = None + if isinstance(k_endog, np.ndarray): + endog = k_endog + # If so, assume that it is either column-ordered and in wide format + # or row-ordered and in long format + if endog.flags['C_CONTIGUOUS'] and (endog.shape[0] > 1 or nobs == 1): + endog = endog.T + k_endog = endog.shape[0] + + # Endogenous array, dimensions, dtype + self.k_endog = k_endog + if k_endog < 1: + raise ValueError('Number of endogenous variables in statespace' + ' model must be a positive number.') + self.nobs = nobs + + # Get dimensions from transition equation + if k_states < 1: + raise ValueError('Number of states in statespace model must be a' + ' positive number.') + self.k_states = k_states + self.k_posdef = k_posdef if k_posdef is not None else k_states + + # Bind endog, if it was given + if endog is not None: + self.bind(endog) + + # Record the shapes of all of our matrices + # Note: these are time-invariant shapes; in practice the last dimension + # may also be `self.nobs` for any or all of these. + self.shapes = { + 'obs': (self.k_endog, self.nobs), + 'design': (self.k_endog, self.k_states, 1), + 'obs_intercept': (self.k_endog, 1), + 'obs_cov': (self.k_endog, self.k_endog, 1), + 'transition': (self.k_states, self.k_states, 1), + 'state_intercept': (self.k_states, 1), + 'selection': (self.k_states, self.k_posdef, 1), + 'state_cov': (self.k_posdef, self.k_posdef, 1), + } + + # Representation matrices + # These matrices are only used in the Python object as containers, + # which will be copied to the appropriate _statespace object if a + # filter is called. + scope = locals() + for name, shape in self.shapes.items(): + if name == 'obs': + continue + # Create the initial storage array for each matrix + setattr(self, '_' + name, np.zeros(shape, dtype=dtype, order="F")) + + # If we were given an initial value for the matrix, set it + # (notice it is being set via the descriptor) + if scope[name] is not None: + setattr(self, name, scope[name]) + + # Options + self.initial_variance = initial_variance + + # State-space initialization data + self.initialization = kwargs.get('initialization', None) + self._initial_state = None + self._initial_state_cov = None + self._initial_variance = None + + if self.initialization == 'approximate_diffuse': + self.initialize_approximate_diffuse() + elif self.initialization == 'stationary': + self.initialize_stationary() + elif self.initialization == 'known': + if not 'initial_state' in kwargs: + raise ValueError('Initial state must be provided when "known"' + ' is the specified initialization method.') + if not 'initial_state_cov' in kwargs: + raise ValueError('Initial state covariance matrix must be' + ' provided when "known" is the specified' + ' initialization method.') + self.initialize_known(kwargs['initial_state'], + kwargs['initial_state_cov']) + elif self.initialization is not None: + raise ValueError("Invalid state space initialization method.") + + # Matrix representations storage + self._representations = {} + + # Setup the underlying statespace object storage + self._statespaces = {} + + # Caches + self._time_invariant = None + + def __getitem__(self, key): + _type = type(key) + # If only a string is given then we must be getting an entire matrix + if _type is str: + if key not in self.shapes: + raise IndexError('"%s" is an invalid state space matrix name' + % key) + matrix = getattr(self, '_' + key) + + # See note on time-varying arrays, below + if matrix.shape[-1] == 1: + return matrix[[slice(None)]*(matrix.ndim-1) + [0]] + else: + return matrix + # Otherwise if we have a tuple, we want a slice of a matrix + elif _type is tuple: + name, slice_ = key[0], key[1:] + if name not in self.shapes: + raise IndexError('"%s" is an invalid state space matrix name' + % name) + + matrix = getattr(self, '_' + name) + + # Since the model can support time-varying arrays, but often we + # will instead have time-invariant arrays, we want to allow setting + # a matrix slice like mod['transition',0,:] even though technically + # it should be mod['transition',0,:,0]. Thus if the array in + # question is time-invariant but the last slice was excluded, + # add it in as a zero. + if matrix.shape[-1] == 1 and len(slice_) <= matrix.ndim-1: + slice_ = slice_ + (0,) + + return matrix[slice_] + # Otherwise, we have only a single slice index, but it is not a string + else: + raise IndexError('First index must the name of a valid state space' + ' matrix.') + + def __setitem__(self, key, value): + _type = type(key) + # If only a string is given then we must be setting an entire matrix + if _type is str: + if key not in self.shapes: + raise IndexError('"%s" is an invalid state space matrix name' + % key) + setattr(self, key, value) + # If it's a tuple (with a string as the first element) then we must be + # setting a slice of a matrix + elif _type is tuple: + name, slice_ = key[0], key[1:] + if name not in self.shapes: + raise IndexError('"%s" is an invalid state space matrix name' + % key[0]) + + # Change the dtype of the corresponding matrix + dtype = np.array(value).dtype + matrix = getattr(self, '_' + name) + valid_types = ['f', 'd', 'F', 'D'] + if not matrix.dtype == dtype and dtype.char in valid_types: + matrix = getattr(self, '_' + name).real.astype(dtype) + + # Since the model can support time-varying arrays, but often we + # will instead have time-invariant arrays, we want to allow setting + # a matrix slice like mod['transition',0,:] even though technically + # it should be mod['transition',0,:,0]. Thus if the array in + # question is time-invariant but the last slice was excluded, + # add it in as a zero. + if matrix.shape[-1] == 1 and len(slice_) == matrix.ndim-1: + slice_ = slice_ + (0,) + + # Set the new value + matrix[slice_] = value + setattr(self, name, matrix) + # Otherwise we got a single non-string key, (e.g. mod[:]), which is + # invalid + else: + raise IndexError('First index must the name of a valid state space' + ' matrix.') + + @property + def prefix(self): + """ + (str) BLAS prefix of currently active representation matrices + """ + arrays = ( + self._design, self._obs_intercept, self._obs_cov, + self._transition, self._state_intercept, self._selection, + self._state_cov + ) + if self.endog is not None: + arrays = (self.endog,) + arrays + return find_best_blas_type(arrays)[0] + + @property + def dtype(self): + """ + (dtype) Datatype of currently active representation matrices + """ + return prefix_dtype_map[self.prefix] + + @property + def time_invariant(self): + """ + (bool) Whether or not currently active representation matrices are + time-invariant + """ + if self._time_invariant is None: + return ( + self._design.shape[2] == self._obs_intercept.shape[1] == + self._obs_cov.shape[2] == self._transition.shape[2] == + self._state_intercept.shape[1] == self._selection.shape[2] == + self._state_cov.shape[2] + ) + else: + return self._time_invariant + + @property + def _statespace(self): + prefix = self.prefix + if prefix in self._statespaces: + return self._statespaces[prefix] + return None + + @property + def obs(self): + r""" + (array) Observation vector: :math:`y~(k\_endog \times nobs)` + """ + return self.endog + + def bind(self, endog): + """ + Bind data to the statespace representation + + Parameters + ---------- + endog : array + Endogenous data to bind to the model. Must be column-ordered + ndarray with shape (`k_endog`, `nobs`) or row-ordered ndarray with + shape (`nobs`, `k_endog`). + + Notes + ----- + The strict requirements arise because the underlying statespace and + Kalman filtering classes require Fortran-ordered arrays in the wide + format (shaped (`k_endog`, `nobs`)), and this structure is setup to + prevent copying arrays in memory. + + By default, numpy arrays are row (C)-ordered and most time series are + represented in the long format (with time on the 0-th axis). In this + case, no copying or re-ordering needs to be performed, instead the + array can simply be transposed to get it in the right order and shape. + + Although this class (Representation) has stringent `bind` requirements, + it is assumed that it will rarely be used directly. + """ + if not isinstance(endog, np.ndarray): + raise ValueError("Invalid endogenous array; must be an ndarray.") + + # Make sure we have a 2-dimensional array + # Note: reshaping a 1-dim array into a 2-dim array by changing the + # shape tuple always results in a row (C)-ordered array, so it + # must be shaped (nobs, k_endog) + if endog.ndim == 1: + # In the case of nobs x 0 arrays + if self.k_endog == 1: + endog.shape = (endog.shape[0], 1) + # In the case of k_endog x 0 arrays + else: + endog.shape = (1, endog.shape[0]) + if not endog.ndim == 2: + raise ValueError('Invalid endogenous array provided; must be' + ' 2-dimensional.') + + # Check for valid column-ordered arrays + if endog.flags['F_CONTIGUOUS'] and endog.shape[0] == self.k_endog: + pass + # Check for valid row-ordered arrays, and transpose them to be the + # correct column-ordered array + elif endog.flags['C_CONTIGUOUS'] and endog.shape[1] == self.k_endog: + endog = endog.T + # Invalid column-ordered arrays + elif endog.flags['F_CONTIGUOUS']: + raise ValueError('Invalid endogenous array; column-ordered' + ' arrays must have first axis shape of' + ' `k_endog`.') + # Invalid row-ordered arrays + elif endog.flags['C_CONTIGUOUS']: + raise ValueError('Invalid endogenous array; row-ordered' + ' arrays must have last axis shape of' + ' `k_endog`.') + # Non-contiguous arrays + else: + raise ValueError('Invalid endogenous array; must be ordered in' + ' contiguous memory.') + + # In some corner cases (e.g. np.array(1., ndmin=2) with numpy < 1.8) + # we may still have a non-fortran contiguous array, so double-check + # that now + if not endog.flags['F_CONTIGUOUS']: + endog = np.asfortranarray(endog) + + # Set a flag for complex data + self._complex_endog = np.iscomplexobj(endog) + + # Set the data + self.endog = endog + self.nobs = self.endog.shape[1] + + # Reset shapes + if hasattr(self, 'shapes'): + self.shapes['obs'] = self.endog.shape + + def initialize_known(self, initial_state, initial_state_cov): + """ + Initialize the statespace model with known distribution for initial + state. + + These values are assumed to be known with certainty or else + filled with parameters during, for example, maximum likelihood + estimation. + + Parameters + ---------- + initial_state : array_like + Known mean of the initial state vector. + initial_state_cov : array_like + Known covariance matrix of the initial state vector. + """ + initial_state = np.asarray(initial_state, order="F") + initial_state_cov = np.asarray(initial_state_cov, order="F") + + if not initial_state.shape == (self.k_states,): + raise ValueError('Invalid dimensions for initial state vector.' + ' Requires shape (%d,), got %s' % + (self.k_states, str(initial_state.shape))) + if not initial_state_cov.shape == (self.k_states, self.k_states): + raise ValueError('Invalid dimensions for initial covariance' + ' matrix. Requires shape (%d,%d), got %s' % + (self.k_states, self.k_states, + str(initial_state.shape))) + + self._initial_state = initial_state + self._initial_state_cov = initial_state_cov + self.initialization = 'known' + + def initialize_approximate_diffuse(self, variance=None): + """ + Initialize the statespace model with approximate diffuse values. + + Rather than following the exact diffuse treatment (which is developed + for the case that the variance becomes infinitely large), this assigns + an arbitrary large number for the variance. + + Parameters + ---------- + variance : float, optional + The variance for approximating diffuse initial conditions. Default + is 1e6. + """ + if variance is None: + variance = self.initial_variance + + self._initial_variance = variance + self.initialization = 'approximate_diffuse' + + def initialize_stationary(self): + """ + Initialize the statespace model as stationary. + """ + self.initialization = 'stationary' + + def _initialize_representation(self, prefix=None): + if prefix is None: + prefix = self.prefix + dtype = prefix_dtype_map[prefix] + + # If the dtype-specific representation matrices do not exist, create + # them + if prefix not in self._representations: + # Copy the statespace representation matrices + self._representations[prefix] = {} + for matrix in self.shapes.keys(): + if matrix == 'obs': + self._representations[prefix][matrix] = ( + self.obs.astype(dtype) + ) + else: + # Note: this always makes a copy + self._representations[prefix][matrix] = ( + getattr(self, '_' + matrix).astype(dtype) + ) + # If they do exist, update them + else: + for matrix in self.shapes.keys(): + existing = self._representations[prefix][matrix] + if matrix == 'obs': + existing = self.obs.astype(dtype)[:] + else: + new = getattr(self, '_' + matrix).astype(dtype) + if existing.shape == new.shape: + existing[:] = new[:] + else: + existing = new + + + # Determine if we need to (re-)create the _statespace models + # (if time-varying matrices changed) + if prefix in self._statespaces: + ss = self._statespaces[prefix] + create = ( + not ss.obs.shape[1] == self.endog.shape[1] or + not ss.design.shape[2] == self.design.shape[2] or + not ss.obs_intercept.shape[1] == self.obs_intercept.shape[1] or + not ss.obs_cov.shape[2] == self.obs_cov.shape[2] or + not ss.transition.shape[2] == self.transition.shape[2] or + not (ss.state_intercept.shape[1] == + self.state_intercept.shape[1]) or + not ss.selection.shape[2] == self.selection.shape[2] or + not ss.state_cov.shape[2] == self.state_cov.shape[2] + ) + else: + create = True + + # (re-)create if necessary + if create: + if prefix in self._statespaces: + del self._statespaces[prefix] + + # Setup the base statespace object + cls = prefix_statespace_map[prefix] + self._statespaces[prefix] = cls( + self._representations[prefix]['obs'], + self._representations[prefix]['design'], + self._representations[prefix]['obs_intercept'], + self._representations[prefix]['obs_cov'], + self._representations[prefix]['transition'], + self._representations[prefix]['state_intercept'], + self._representations[prefix]['selection'], + self._representations[prefix]['state_cov'] + ) + + return prefix, dtype, create + + def _initialize_state(self, prefix=None, complex_step=False): + if prefix is None: + prefix = self.prefix + dtype = prefix_dtype_map[prefix] + + # (Re-)initialize the statespace model + if self.initialization == 'known': + self._statespaces[prefix].initialize_known( + self._initial_state.astype(dtype), + self._initial_state_cov.astype(dtype) + ) + elif self.initialization == 'approximate_diffuse': + self._statespaces[prefix].initialize_approximate_diffuse( + self._initial_variance + ) + elif self.initialization == 'stationary': + self._statespaces[prefix].initialize_stationary(complex_step) + else: + raise RuntimeError('Statespace model not initialized.') + + +class FrozenRepresentation(object): + """ + Frozen Statespace Model + + Takes a snapshot of a Statespace model. + + Parameters + ---------- + model : Representation + A Statespace representation + + Attributes + ---------- + nobs : int + Number of observations. + k_endog : int + The dimension of the observation series. + k_states : int + The dimension of the unobserved state process. + k_posdef : int + The dimension of a guaranteed positive definite + covariance matrix describing the shocks in the + measurement equation. + dtype : dtype + Datatype of representation matrices + prefix : str + BLAS prefix of representation matrices + shapes : dictionary of name:tuple + A dictionary recording the shapes of each of + the representation matrices as tuples. + endog : array + The observation vector. + design : array + The design matrix, :math:`Z`. + obs_intercept : array + The intercept for the observation equation, :math:`d`. + obs_cov : array + The covariance matrix for the observation equation :math:`H`. + transition : array + The transition matrix, :math:`T`. + state_intercept : array + The intercept for the transition equation, :math:`c`. + selection : array + The selection matrix, :math:`R`. + state_cov : array + The covariance matrix for the state equation :math:`Q`. + missing : array of bool + An array of the same size as `endog`, filled + with boolean values that are True if the + corresponding entry in `endog` is NaN and False + otherwise. + nmissing : array of int + An array of size `nobs`, where the ith entry + is the number (between 0 and `k_endog`) of NaNs in + the ith row of the `endog` array. + time_invariant : bool + Whether or not the representation matrices are time-invariant + initialization : str + Kalman filter initialization method. + initial_state : array_like + The state vector used to initialize the Kalamn filter. + initial_state_cov : array_like + The state covariance matrix used to initialize the Kalamn filter. + """ + _model_attributes = [ + 'model', 'prefix', 'dtype', 'nobs', 'k_endog', 'k_states', + 'k_posdef', 'time_invariant', 'endog', 'design', 'obs_intercept', + 'obs_cov', 'transition', 'state_intercept', 'selection', + 'state_cov', 'missing', 'nmissing', 'shapes', 'initialization', + 'initial_state', 'initial_state_cov', 'initial_variance' + ] + _attributes = _model_attributes + + def __init__(self, model): + # Initialize all attributes to None + for name in self._attributes: + setattr(self, name, None) + + # Update the representation attributes + self.update_representation(model) + + def update_representation(self, model): + # Model + self.model = model + + # Data type + self.prefix = model.prefix + self.dtype = model.dtype + + # Copy the model dimensions + self.nobs = model.nobs + self.k_endog = model.k_endog + self.k_states = model.k_states + self.k_posdef = model.k_posdef + self.time_invariant = model.time_invariant + + # Save the state space representation at the time + self.endog = model.endog + self.design = model._design.copy() + self.obs_intercept = model._obs_intercept.copy() + self.obs_cov = model._obs_cov.copy() + self.transition = model._transition.copy() + self.state_intercept = model._state_intercept.copy() + self.selection = model._selection.copy() + self.state_cov = model._state_cov.copy() + + self.missing = np.array(model._statespaces[self.prefix].missing, + copy=True) + self.nmissing = np.array(model._statespaces[self.prefix].nmissing, + copy=True) + + # Save the final shapes of the matrices + self.shapes = dict(model.shapes) + for name in self.shapes.keys(): + if name == 'obs': + continue + self.shapes[name] = getattr(self, name).shape + self.shapes['obs'] = self.endog.shape + + # Save the state space initialization + self.initialization = model.initialization + + if model.initialization is not None: + model._initialize_state() + self.initial_state = np.array( + model._statespaces[self.prefix].initial_state, copy=True) + self.initial_state_cov = np.array( + model._statespaces[self.prefix].initial_state_cov, copy=True) diff --git a/statsmodels/tsa/statespace/sarimax.py b/statsmodels/tsa/statespace/sarimax.py new file mode 100644 index 0000000..4ee9620 --- /dev/null +++ b/statsmodels/tsa/statespace/sarimax.py @@ -0,0 +1,1995 @@ +""" +SARIMAX Model + +Author: Chad Fulton +License: Simplified-BSD +""" +from __future__ import division, absolute_import, print_function +from statsmodels.compat.python import long + +from warnings import warn + +import numpy as np +import pandas as pd +from .kalman_filter import KalmanFilter, FilterResults +from .mlemodel import MLEModel, MLEResults, MLEResultsWrapper +from .tools import ( + companion_matrix, diff, is_invertible, constrain_stationary_univariate, + unconstrain_stationary_univariate, solve_discrete_lyapunov +) +from statsmodels.tools.tools import Bunch +from statsmodels.tools.data import _is_using_pandas +from statsmodels.tsa.tsatools import lagmat +from statsmodels.tools.decorators import cache_readonly +from statsmodels.tools.sm_exceptions import ValueWarning +import statsmodels.base.wrapper as wrap + + +class SARIMAX(MLEModel): + r""" + Seasonal AutoRegressive Integrated Moving Average with eXogenous regressors + model + + Parameters + ---------- + endog : array_like + The observed time-series process :math:`y` + exog : array_like, optional + Array of exogenous regressors, shaped nobs x k. + order : iterable or iterable of iterables, optional + The (p,d,q) order of the model for the number of AR parameters, + differences, and MA parameters. `d` must be an integer + indicating the integration order of the process, while + `p` and `q` may either be an integers indicating the AR and MA + orders (so that all lags up to those orders are included) or else + iterables giving specific AR and / or MA lags to include. Default is + an AR(1) model: (1,0,0). + seasonal_order : iterable, optional + The (P,D,Q,s) order of the seasonal component of the model for the + AR parameters, differences, MA parameters, and periodicity. + `d` must be an integer indicating the integration order of the process, + while `p` and `q` may either be an integers indicating the AR and MA + orders (so that all lags up to those orders are included) or else + iterables giving specific AR and / or MA lags to include. `s` is an + integer giving the periodicity (number of periods in season), often it + is 4 for quarterly data or 12 for monthly data. Default is no seasonal + effect. + trend : str{'n','c','t','ct'} or iterable, optional + Parameter controlling the deterministic trend polynomial :math:`A(t)`. + Can be specified as a string where 'c' indicates a constant (i.e. a + degree zero component of the trend polynomial), 't' indicates a + linear trend with time, and 'ct' is both. Can also be specified as an + iterable defining the polynomial as in `numpy.poly1d`, where + `[1,1,0,1]` would denote :math:`a + bt + ct^3`. Default is to not + include a trend component. + measurement_error : boolean, optional + Whether or not to assume the endogenous observations `endog` were + measured with error. Default is False. + time_varying_regression : boolean, optional + Used when an explanatory variables, `exog`, are provided provided + to select whether or not coefficients on the exogenous regressors are + allowed to vary over time. Default is False. + mle_regression : boolean, optional + Whether or not to use estimate the regression coefficients for the + exogenous variables as part of maximum likelihood estimation or through + the Kalman filter (i.e. recursive least squares). If + `time_varying_regression` is True, this must be set to False. Default + is True. + simple_differencing : boolean, optional + Whether or not to use partially conditional maximum likelihood + estimation. If True, differencing is performed prior to estimation, + which discards the first :math:`s D + d` initial rows but reuslts in a + smaller state-space formulation. If False, the full SARIMAX model is + put in state-space form so that all datapoints can be used in + estimation. Default is False. + enforce_stationarity : boolean, optional + Whether or not to transform the AR parameters to enforce stationarity + in the autoregressive component of the model. Default is True. + enforce_invertibility : boolean, optional + Whether or not to transform the MA parameters to enforce invertibility + in the moving average component of the model. Default is True. + hamilton_representation : boolean, optional + Whether or not to use the Hamilton representation of an ARMA process + (if True) or the Harvey representation (if False). Default is False. + **kwargs + Keyword arguments may be used to provide default values for state space + matrices or for Kalman filtering options. See `Representation`, and + `KalmanFilter` for more details. + + Attributes + ---------- + measurement_error : boolean + Whether or not to assume the endogenous + observations `endog` were measured with error. + state_error : boolean + Whether or not the transition equation has an error component. + mle_regression : boolean + Whether or not the regression coefficients for + the exogenous variables were estimated via maximum + likelihood estimation. + state_regression : boolean + Whether or not the regression coefficients for + the exogenous variables are included as elements + of the state space and estimated via the Kalman + filter. + time_varying_regression : boolean + Whether or not coefficients on the exogenous + regressors are allowed to vary over time. + simple_differencing : boolean + Whether or not to use partially conditional maximum likelihood + estimation. + enforce_stationarity : boolean + Whether or not to transform the AR parameters + to enforce stationarity in the autoregressive + component of the model. + enforce_invertibility : boolean + Whether or not to transform the MA parameters + to enforce invertibility in the moving average + component of the model. + hamilton_representation : boolean + Whether or not to use the Hamilton representation of an ARMA process. + trend : str{'n','c','t','ct'} or iterable + Parameter controlling the deterministic + trend polynomial :math:`A(t)`. See the class + parameter documentation for more information. + polynomial_ar : array + Array containing autoregressive lag polynomial + coefficients, ordered from lowest degree to highest. + Initialized with ones, unless a coefficient is + constrained to be zero (in which case it is zero). + polynomial_ma : array + Array containing moving average lag polynomial + coefficients, ordered from lowest degree to highest. + Initialized with ones, unless a coefficient is + constrained to be zero (in which case it is zero). + polynomial_seasonal_ar : array + Array containing seasonal moving average lag + polynomial coefficients, ordered from lowest degree + to highest. Initialized with ones, unless a + coefficient is constrained to be zero (in which + case it is zero). + polynomial_seasonal_ma : array + Array containing seasonal moving average lag + polynomial coefficients, ordered from lowest degree + to highest. Initialized with ones, unless a + coefficient is constrained to be zero (in which + case it is zero). + polynomial_trend : array + Array containing trend polynomial coefficients, + ordered from lowest degree to highest. Initialized + with ones, unless a coefficient is constrained to be + zero (in which case it is zero). + k_ar : int + Highest autoregressive order in the model, zero-indexed. + k_ar_params : int + Number of autoregressive parameters to be estimated. + k_diff : int + Order of intergration. + k_ma : int + Highest moving average order in the model, zero-indexed. + k_ma_params : int + Number of moving average parameters to be estimated. + k_seasons : int + Number of periods in a season. + k_seasonal_ar : int + Highest seasonal autoregressive order in the model, zero-indexed. + k_seasonal_ar_params : int + Number of seasonal autoregressive parameters to be estimated. + k_seasonal_diff : int + Order of seasonal intergration. + k_seasonal_ma : int + Highest seasonal moving average order in the model, zero-indexed. + k_seasonal_ma_params : int + Number of seasonal moving average parameters to be estimated. + k_trend : int + Order of the trend polynomial plus one (i.e. the constant polynomial + would have `k_trend=1`). + k_exog : int + Number of exogenous regressors. + + Notes + ----- + The SARIMA model is specified :math:`(p, d, q) \times (P, D, Q)_s`. + + .. math:: + + \phi_p (L) \tilde \phi_P (L^s) \Delta^d \Delta_s^D y_t = A(t) + + \theta_q (L) \tilde \theta_Q (L^s) \zeta_t + + In terms of a univariate structural model, this can be represented as + + .. math:: + + y_t & = u_t + \eta_t \\ + \phi_p (L) \tilde \phi_P (L^s) \Delta^d \Delta_s^D u_t & = A(t) + + \theta_q (L) \tilde \theta_Q (L^s) \zeta_t + + where :math:`\eta_t` is only applicable in the case of measurement error + (although it is also used in the case of a pure regression model, i.e. if + p=q=0). + + In terms of this model, regression with SARIMA errors can be represented + easily as + + .. math:: + + y_t & = \beta_t x_t + u_t \\ + \phi_p (L) \tilde \phi_P (L^s) \Delta^d \Delta_s^D u_t & = A(t) + + \theta_q (L) \tilde \theta_Q (L^s) \zeta_t + + this model is the one used when exogenous regressors are provided. + + Note that the reduced form lag polynomials will be written as: + + .. math:: + + \Phi (L) \equiv \phi_p (L) \tilde \phi_P (L^s) \\ + \Theta (L) \equiv \theta_q (L) \tilde \theta_Q (L^s) + + If `mle_regression` is True, regression coefficients are treated as + additional parameters to be estimated via maximum likelihood. Otherwise + they are included as part of the state with a diffuse initialization. + In this case, however, with approximate diffuse initialization, results + can be sensitive to the initial variance. + + This class allows two different underlying representations of ARMA models + as state space models: that of Hamilton and that of Harvey. Both are + equivalent in the sense that they are analytical representations of the + ARMA model, but the state vectors of each have different meanings. For + this reason, maximum likelihood does not result in identical parameter + estimates and even the same set of parameters will result in different + loglikelihoods. + + The Harvey representation is convenient because it allows integrating + differencing into the state vector to allow using all observations for + estimation. + + In this implementation of differenced models, the Hamilton representation + is not able to accomodate differencing in the state vector, so + `simple_differencing` (which performs differencing prior to estimation so + that the first d + sD observations are lost) must be used. + + Many other packages use the Hamilton representation, so that tests against + Stata and R require using it along with simple differencing (as Stata + does). + + Detailed information about state space models can be found in [1]_. Some + specific references are: + + - Chapter 3.4 describes ARMA and ARIMA models in state space form (using + the Harvey representation), and gives references for basic seasonal + models and models with a multiplicative form (for example the airline + model). It also shows a state space model for a full ARIMA process (this + is what is done here if `simple_differencing=False`). + - Chapter 3.6 describes estimating regression effects via the Kalman filter + (this is performed if `mle_regression` is False), regression with + time-varying coefficients, and regression with ARMA errors (recall from + above that if regression effects are present, the model estimated by this + class is regression with SARIMA errors). + - Chapter 8.4 describes the application of an ARMA model to an example + dataset. A replication of this section is available in an example + IPython notebook in the documentation. + + References + ---------- + .. [1] Durbin, James, and Siem Jan Koopman. 2012. + Time Series Analysis by State Space Methods: Second Edition. + Oxford University Press. + """ + + def __init__(self, endog, exog=None, order=(1, 0, 0), + seasonal_order=(0, 0, 0, 0), trend=None, + measurement_error=False, time_varying_regression=False, + mle_regression=True, simple_differencing=False, + enforce_stationarity=True, enforce_invertibility=True, + hamilton_representation=False, **kwargs): + + # Model parameters + self.k_seasons = seasonal_order[3] + self.measurement_error = measurement_error + self.time_varying_regression = time_varying_regression + self.mle_regression = mle_regression + self.simple_differencing = simple_differencing + self.enforce_stationarity = enforce_stationarity + self.enforce_invertibility = enforce_invertibility + self.hamilton_representation = hamilton_representation + + # Save given orders + self.order = order + self.seasonal_order = seasonal_order + + # Enforce non-MLE coefficients if time varying coefficients is + # specified + if self.time_varying_regression and self.mle_regression: + raise ValueError('Models with time-varying regression coefficients' + ' must integrate the coefficients as part of the' + ' state vector, so that `mle_regression` must' + ' be set to False.') + + # Lag polynomials + # Assume that they are given from lowest degree to highest, that all + # degrees except for the constant are included, and that they are + # boolean vectors (0 for not included, 1 for included). + if isinstance(order[0], (int, long)): + self.polynomial_ar = np.r_[1., np.ones(order[0])] + else: + self.polynomial_ar = np.r_[1., order[0]] + if isinstance(order[2], (int, long)): + self.polynomial_ma = np.r_[1., np.ones(order[2])] + else: + self.polynomial_ma = np.r_[1., order[2]] + # Assume that they are given from lowest degree to highest, that the + # degrees correspond to (1*s, 2*s, ..., P*s), and that they are + # boolean vectors (0 for not included, 1 for included). + if isinstance(seasonal_order[0], (int, long)): + self.polynomial_seasonal_ar = np.r_[ + 1., # constant + ([0] * (self.k_seasons - 1) + [1]) * seasonal_order[0] + ] + else: + self.polynomial_seasonal_ar = np.r_[ + 1., [0] * self.k_seasons * len(seasonal_order[0]) + ] + for i in range(len(seasonal_order[0])): + self.polynomial_seasonal_ar[(i + 1) * self.k_seasons] = ( + seasonal_order[0][i] + ) + if isinstance(seasonal_order[2], (int, long)): + self.polynomial_seasonal_ma = np.r_[ + 1., # constant + ([0] * (self.k_seasons - 1) + [1]) * seasonal_order[2] + ] + else: + self.polynomial_seasonal_ma = np.r_[ + 1., [0] * self.k_seasons * len(seasonal_order[2]) + ] + for i in range(len(seasonal_order[2])): + self.polynomial_seasonal_ma[(i + 1) * self.k_seasons] = ( + seasonal_order[2][i] + ) + + # Deterministic trend polynomial + self.trend = trend + if trend is None or trend == 'n': + self.polynomial_trend = np.ones((0)) + elif trend == 'c': + self.polynomial_trend = np.r_[1] + elif trend == 't': + self.polynomial_trend = np.r_[0, 1] + elif trend == 'ct': + self.polynomial_trend = np.r_[1, 1] + else: + self.polynomial_trend = (np.array(trend) > 0).astype(int) + + # Model orders + # Note: k_ar, k_ma, k_seasonal_ar, k_seasonal_ma do not include the + # constant term, so they may be zero. + # Note: for a typical ARMA(p,q) model, p = k_ar_params = k_ar - 1 and + # q = k_ma_params = k_ma - 1, although this may not be true for models + # with arbitrary log polynomials. + self.k_ar = int(self.polynomial_ar.shape[0] - 1) + self.k_ar_params = int(np.sum(self.polynomial_ar) - 1) + self.k_diff = int(order[1]) + self.k_ma = int(self.polynomial_ma.shape[0] - 1) + self.k_ma_params = int(np.sum(self.polynomial_ma) - 1) + + self.k_seasonal_ar = int(self.polynomial_seasonal_ar.shape[0] - 1) + self.k_seasonal_ar_params = ( + int(np.sum(self.polynomial_seasonal_ar) - 1) + ) + self.k_seasonal_diff = int(seasonal_order[1]) + self.k_seasonal_ma = int(self.polynomial_seasonal_ma.shape[0] - 1) + self.k_seasonal_ma_params = ( + int(np.sum(self.polynomial_seasonal_ma) - 1) + ) + + # Make internal copies of the differencing orders because if we use + # simple differencing, then we will need to internally use zeros after + # the simple differencing has been performed + self._k_diff = self.k_diff + self._k_seasonal_diff = self.k_seasonal_diff + + # We can only use the Hamilton representation if differencing is not + # performed as a part of the state space + if (self.hamilton_representation and not (self.simple_differencing or + self._k_diff == self._k_seasonal_diff == 0)): + raise ValueError('The Hamilton representation is only available' + ' for models in which there is no differencing' + ' integrated into the state vector. Set' + ' `simple_differencing` to True or set' + ' `hamilton_representation` to False') + + # Note: k_trend is not the degree of the trend polynomial, because e.g. + # k_trend = 1 corresponds to the degree zero polynomial (with only a + # constant term). + self.k_trend = int(np.sum(self.polynomial_trend)) + + # Model order + # (this is used internally in a number of locations) + self._k_order = max(self.k_ar + self.k_seasonal_ar, + self.k_ma + self.k_seasonal_ma + 1) + if self._k_order == 1 and self.k_ar + self.k_seasonal_ar == 0: + self._k_order = 0 + + # Exogenous data + self.k_exog = 0 + if exog is not None: + exog_is_using_pandas = _is_using_pandas(exog, None) + if not exog_is_using_pandas: + exog = np.asarray(exog) + + # Make sure we have 2-dimensional array + if exog.ndim < 2: + if not exog_is_using_pandas: + exog = np.atleast_2d(exog).T + else: + exog = pd.DataFrame(exog) + + self.k_exog = exog.shape[1] + # Redefine mle_regression to be true only if it was previously set to + # true and there are exogenous regressors + self.mle_regression = ( + self.mle_regression and exog is not None and self.k_exog > 0 + ) + # State regression is regression with coefficients estiamted within + # the state vector + self.state_regression = ( + not self.mle_regression and exog is not None and self.k_exog > 0 + ) + # If all we have is a regression (so k_ar = k_ma = 0), then put the + # error term as measurement error + if self.state_regression and self._k_order == 0: + self.measurement_error = True + + # Number of states + k_states = self._k_order + if not self.simple_differencing: + k_states += self.k_seasons * self._k_seasonal_diff + self._k_diff + if self.state_regression: + k_states += self.k_exog + + # Number of diffuse states + k_diffuse_states = k_states + if self.enforce_stationarity: + k_diffuse_states -= self._k_order + + # Number of positive definite elements of the state covariance matrix + k_posdef = int(self._k_order > 0) + # Only have an error component to the states if k_posdef > 0 + self.state_error = k_posdef > 0 + if self.state_regression and self.time_varying_regression: + k_posdef += self.k_exog + + # Diffuse initialization can be more sensistive to the variance value + # in the case of state regression, so set a higher than usual default + # variance + if self.state_regression: + kwargs.setdefault('initial_variance', 1e10) + + # Number of parameters + self.k_params = ( + self.k_ar_params + self.k_ma_params + + self.k_seasonal_ar_params + self.k_seasonal_ar_params + + self.k_trend + + self.measurement_error + 1 + ) + if self.mle_regression: + self.k_params += self.k_exog + + # We need to have an array or pandas at this point + self.orig_endog = endog + self.orig_exog = exog + if not _is_using_pandas(endog, None): + endog = np.asanyarray(endog) + + # Update the differencing dimensions if simple differencing is applied + self.orig_k_diff = self._k_diff + self.orig_k_seasonal_diff = self._k_seasonal_diff + if (self.simple_differencing and + (self._k_diff > 0 or self._k_seasonal_diff > 0)): + self._k_diff = 0 + self._k_seasonal_diff = 0 + + # Internally used in several locations + self._k_states_diff = ( + self._k_diff + self.k_seasons * self._k_seasonal_diff + ) + + # Set some model variables now so they will be available for the + # initialize() method, below + self.nobs = len(endog) + self.k_states = k_states + self.k_posdef = k_posdef + + # By default, do not calculate likelihood while it is controlled by + # diffuse initial conditions. + kwargs.setdefault('loglikelihood_burn', k_diffuse_states) + + # Initialize the statespace + super(SARIMAX, self).__init__( + endog, exog=exog, k_states=k_states, k_posdef=k_posdef, **kwargs + ) + + # Set as time-varying model if we have time-trend or exog + if self.k_exog > 0 or len(self.polynomial_trend) > 1: + self.ssm._time_invariant = False + + # Handle kwargs specified initialization + if self.ssm.initialization is not None: + self._manual_initialization = True + + # Initialize the fixed components of the statespace model + self.ssm.design = self.initial_design + self.ssm.state_intercept = self.initial_state_intercept + self.ssm.transition = self.initial_transition + self.ssm.selection = self.initial_selection + + # If we are estimating a simple ARMA model, then we can use a faster + # initialization method (unless initialization was already specified). + if k_diffuse_states == 0 and not self._manual_initialization: + self.initialize_stationary() + + # update _init_keys attached by super + self._init_keys += ['order', 'seasonal_order', 'trend', + 'measurement_error', 'time_varying_regression', + 'mle_regression', 'simple_differencing', + 'enforce_stationarity', 'enforce_invertibility', + 'hamilton_representation'] + list(kwargs.keys()) + # TODO: I think the kwargs or not attached, need to recover from ??? + + def _get_init_kwds(self): + kwds = super(SARIMAX, self)._get_init_kwds() + + for key, value in kwds.items(): + if value is None and hasattr(self.ssm, key): + kwds[key] = getattr(self.ssm, key) + + return kwds + + def prepare_data(self): + endog, exog = super(SARIMAX, self).prepare_data() + + # Perform simple differencing if requested + if (self.simple_differencing and + (self.orig_k_diff > 0 or self.orig_k_seasonal_diff > 0)): + # Save the original length + orig_length = endog.shape[0] + # Perform simple differencing + endog = diff(endog.copy(), self.orig_k_diff, + self.orig_k_seasonal_diff, self.k_seasons) + if exog is not None: + exog = diff(exog.copy(), self.orig_k_diff, + self.orig_k_seasonal_diff, self.k_seasons) + + # Reset the ModelData datasets + self.data.endog, self.data.exog = ( + self.data._convert_endog_exog(endog, exog)) + + # Reset dates, if provided + if self.data.dates is not None: + new_length = self.data.endog.shape[0] + self.data.dates = self.data.dates[orig_length - new_length:] + + # Reset the nobs + self.nobs = endog.shape[0] + + # Cache the arrays for calculating the intercept from the trend + # components + time_trend = np.arange(1, self.nobs + 1) + self._trend_data = np.zeros((self.nobs, self.k_trend)) + i = 0 + for k in self.polynomial_trend.nonzero()[0]: + if k == 0: + self._trend_data[:, i] = np.ones(self.nobs,) + else: + self._trend_data[:, i] = time_trend**k + i += 1 + + return endog, exog + + def initialize(self): + """ + Initialize the SARIMAX model. + + Notes + ----- + These initialization steps must occur following the parent class + __init__ function calls. + """ + super(SARIMAX, self).initialize() + + # Internal flag for whether the default mixed approximate diffuse / + # stationary initialization has been overridden with a user-supplied + # initialization + self._manual_initialization = False + + # Cache the indexes of included polynomial orders (for update below) + # (but we do not want the index of the constant term, so exclude the + # first index) + self._polynomial_ar_idx = np.nonzero(self.polynomial_ar)[0][1:] + self._polynomial_ma_idx = np.nonzero(self.polynomial_ma)[0][1:] + self._polynomial_seasonal_ar_idx = np.nonzero( + self.polynomial_seasonal_ar + )[0][1:] + self._polynomial_seasonal_ma_idx = np.nonzero( + self.polynomial_seasonal_ma + )[0][1:] + + # Save the indices corresponding to the reduced form lag polynomial + # parameters in the transition and selection matrices so that they + # don't have to be recalculated for each update() + start_row = self._k_states_diff + end_row = start_row + self.k_ar + self.k_seasonal_ar + col = self._k_states_diff + if not self.hamilton_representation: + self.transition_ar_params_idx = ( + np.s_['transition', start_row:end_row, col] + ) + else: + self.transition_ar_params_idx = ( + np.s_['transition', col, start_row:end_row] + ) + + start_row += 1 + end_row = start_row + self.k_ma + self.k_seasonal_ma + col = 0 + if not self.hamilton_representation: + self.selection_ma_params_idx = ( + np.s_['selection', start_row:end_row, col] + ) + else: + self.design_ma_params_idx = ( + np.s_['design', col, start_row:end_row] + ) + + # Cache indices for exog variances in the state covariance matrix + if self.state_regression and self.time_varying_regression: + idx = np.diag_indices(self.k_posdef) + self._exog_variance_idx = ('state_cov', idx[0][-self.k_exog:], + idx[1][-self.k_exog:]) + + def initialize_known(self, initial_state, initial_state_cov): + self._manual_initialization = True + self.ssm.initialize_known(initial_state, initial_state_cov) + initialize_known.__doc__ = KalmanFilter.initialize_known.__doc__ + + def initialize_approximate_diffuse(self, variance=None): + self._manual_initialization = True + self.ssm.initialize_approximate_diffuse(variance) + initialize_approximate_diffuse.__doc__ = ( + KalmanFilter.initialize_approximate_diffuse.__doc__ + ) + + def initialize_stationary(self): + self._manual_initialization = True + self.ssm.initialize_stationary() + initialize_stationary.__doc__ = ( + KalmanFilter.initialize_stationary.__doc__ + ) + + def initialize_state(self, variance=None, complex_step=False): + """ + Initialize state and state covariance arrays in preparation for the + Kalman filter. + + Parameters + ---------- + variance : float, optional + The variance for approximating diffuse initial conditions. Default + can be found in the Representation class documentation. + + Notes + ----- + Initializes the ARMA component of the state space to the typical + stationary values and the other components as approximate diffuse. + + Can be overridden be calling one of the other initialization methods + before fitting the model. + """ + # Check if a manual initialization has already been specified + if self._manual_initialization: + return + + # If we're not enforcing stationarity, then we can't initialize a + # stationary component + if not self.enforce_stationarity: + self.initialize_approximate_diffuse(variance) + return + + # Otherwise, create the initial state and state covariance matrix + # as from a combination of diffuse and stationary components + + # Create initialized non-stationary components + if variance is None: + variance = self.ssm.initial_variance + + dtype = self.ssm.transition.dtype + initial_state = np.zeros(self.k_states, dtype=dtype) + initial_state_cov = np.eye(self.k_states, dtype=dtype) * variance + + # Get the offsets (from the bottom or bottom right of the vector / + # matrix) for the stationary component. + if self.state_regression: + start = -(self.k_exog + self._k_order) + end = -self.k_exog if self.k_exog > 0 else None + else: + start = -self._k_order + end = None + + # Add in the initialized stationary components + if self._k_order > 0: + selection_stationary = self.ssm.selection[start:end, :, 0] + selected_state_cov_stationary = np.dot( + np.dot(selection_stationary, self.ssm.state_cov[:, :, 0]), + selection_stationary.T + ) + initial_state_cov_stationary = solve_discrete_lyapunov( + self.ssm.transition[start:end, start:end, 0], + selected_state_cov_stationary, + complex_step=complex_step + ) + + initial_state_cov[start:end, start:end] = ( + initial_state_cov_stationary + ) + + self.ssm.initialize_known(initial_state, initial_state_cov) + + @property + def initial_design(self): + """Initial design matrix""" + # Basic design matrix + design = np.r_[ + [1] * self._k_diff, + ([0] * (self.k_seasons - 1) + [1]) * self._k_seasonal_diff, + [1] * self.state_error, [0] * (self._k_order - 1) + ] + + # If we have exogenous regressors included as part of the state vector + # then the exogenous data is incorporated as a time-varying component + # of the design matrix + if self.state_regression: + if self._k_order > 0: + design = np.c_[ + np.reshape( + np.repeat(design, self.nobs), + (design.shape[0], self.nobs) + ).T, + self.exog + ].T[None, :, :] + else: + design = self.exog.T[None, :, :] + return design + + @property + def initial_state_intercept(self): + """Initial state intercept vector""" + # TODO make this self.k_trend > 1 and adjust the update to take + # into account that if the trend is a constant, it is not time-varying + if self.k_trend > 0: + state_intercept = np.zeros((self.k_states, self.nobs)) + else: + state_intercept = np.zeros((self.k_states,)) + return state_intercept + + @property + def initial_transition(self): + """Initial transition matrix""" + transition = np.zeros((self.k_states, self.k_states)) + + # Exogenous regressors component + if self.state_regression: + start = -self.k_exog + # T_\beta + transition[start:, start:] = np.eye(self.k_exog) + + # Autoregressive component + start = -(self.k_exog + self._k_order) + end = -self.k_exog if self.k_exog > 0 else None + else: + # Autoregressive component + start = -self._k_order + end = None + + # T_c + transition[start:end, start:end] = companion_matrix(self._k_order) + if self.hamilton_representation: + transition[start:end, start:end] = np.transpose( + companion_matrix(self._k_order) + ) + + # Seasonal differencing component + # T^* + if self._k_seasonal_diff > 0: + seasonal_companion = companion_matrix(self.k_seasons).T + seasonal_companion[0, -1] = 1 + for d in range(self._k_seasonal_diff): + start = self._k_diff + d * self.k_seasons + end = self._k_diff + (d + 1) * self.k_seasons + + # T_c^* + transition[start:end, start:end] = seasonal_companion + + # i + for i in range(d + 1, self._k_seasonal_diff): + transition[start, end + self.k_seasons - 1] = 1 + + # \iota + transition[start, self._k_states_diff] = 1 + + # Differencing component + if self._k_diff > 0: + idx = np.triu_indices(self._k_diff) + # T^** + transition[idx] = 1 + # [0 1] + if self.k_seasons > 0: + start = self._k_diff + end = self._k_states_diff + transition[:self._k_diff, start:end] = ( + ([0] * (self.k_seasons - 1) + [1]) * self._k_seasonal_diff + ) + # [1 0] + column = self._k_states_diff + transition[:self._k_diff, column] = 1 + + return transition + + @property + def initial_selection(self): + """Initial selection matrix""" + if not (self.state_regression and self.time_varying_regression): + if self.k_posdef > 0: + selection = np.r_[ + [0] * (self._k_states_diff), + [1] * (self._k_order > 0), [0] * (self._k_order - 1), + [0] * ((1 - self.mle_regression) * self.k_exog) + ][:, None] + else: + selection = np.zeros((self.k_states, 0)) + else: + selection = np.zeros((self.k_states, self.k_posdef)) + # Typical state variance + if self._k_order > 0: + selection[0, 0] = 1 + # Time-varying regression coefficient variances + for i in range(self.k_exog, 0, -1): + selection[-i, -i] = 1 + return selection + + def filter(self, params, **kwargs): + kwargs.setdefault('results_class', SARIMAXResults) + kwargs.setdefault('results_wrapper_class', SARIMAXResultsWrapper) + return super(SARIMAX, self).filter(params, **kwargs) + + def smooth(self, params, **kwargs): + kwargs.setdefault('results_class', SARIMAXResults) + kwargs.setdefault('results_wrapper_class', SARIMAXResultsWrapper) + return super(SARIMAX, self).smooth(params, **kwargs) + + @staticmethod + def _conditional_sum_squares(endog, k_ar, polynomial_ar, k_ma, + polynomial_ma, k_trend=0, trend_data=None): + k = 2 * k_ma + r = max(k + k_ma, k_ar) + + k_params_ar = 0 if k_ar == 0 else len(polynomial_ar.nonzero()[0]) - 1 + k_params_ma = 0 if k_ma == 0 else len(polynomial_ma.nonzero()[0]) - 1 + + residuals = None + if k_ar + k_ma + k_trend > 0: + # If we have MA terms, get residuals from an AR(k) model to use + # as data for conditional sum of squares estimates of the MA + # parameters + if k_ma > 0: + Y = endog[k:] + X = lagmat(endog, k, trim='both') + params_ar = np.linalg.pinv(X).dot(Y) + residuals = Y - np.dot(X, params_ar) + + # Run an ARMA(p,q) model using the just computed residuals as data + Y = endog[r:] + + X = np.empty((Y.shape[0], 0)) + if k_trend > 0: + if trend_data is None: + raise ValueError('Trend data must be provided if' + ' `k_trend` > 0.') + X = np.c_[X, trend_data[:(-r if r > 0 else None), :]] + if k_ar > 0: + cols = polynomial_ar.nonzero()[0][1:] - 1 + X = np.c_[X, lagmat(endog, k_ar)[r:, cols]] + if k_ma > 0: + cols = polynomial_ma.nonzero()[0][1:] - 1 + X = np.c_[X, lagmat(residuals, k_ma)[r-k:, cols]] + + # Get the array of [ar_params, ma_params] + params = np.linalg.pinv(X).dot(Y) + residuals = Y - np.dot(X, params) + + # Default output + params_trend = [] + params_ar = [] + params_ma = [] + params_variance = [] + + # Get the params + offset = 0 + if k_trend > 0: + params_trend = params[offset:k_trend + offset] + offset += k_trend + if k_ar > 0: + params_ar = params[offset:k_params_ar + offset] + offset += k_params_ar + if k_ma > 0: + params_ma = params[offset:k_params_ma + offset] + offset += k_params_ma + if residuals is not None: + params_variance = (residuals[k_params_ma:]**2).mean() + + return (params_trend, params_ar, params_ma, + params_variance) + + @property + def start_params(self): + """ + Starting parameters for maximum likelihood estimation + """ + + # Perform differencing if necessary (i.e. if simple differencing is + # false so that the state-space model will use the entire dataset) + trend_data = self._trend_data + if not self.simple_differencing and ( + self._k_diff > 0 or self._k_seasonal_diff > 0): + endog = diff(self.endog, self._k_diff, + self._k_seasonal_diff, self.k_seasons) + if self.exog is not None: + exog = diff(self.exog, self._k_diff, + self._k_seasonal_diff, self.k_seasons) + else: + exog = None + trend_data = trend_data[:endog.shape[0], :] + else: + endog = self.endog.copy() + exog = self.exog.copy() if self.exog is not None else None + endog = endog.squeeze() + + # Although the Kalman filter can deal with missing values in endog, + # conditional sum of squares cannot + if np.any(np.isnan(endog)): + mask = ~np.isnan(endog).squeeze() + endog = endog[mask] + if exog is not None: + exog = exog[mask] + if trend_data is not None: + trend_data = trend_data[mask] + + # Regression effects via OLS + params_exog = [] + if self.k_exog > 0: + params_exog = np.linalg.pinv(exog).dot(endog) + endog = endog - np.dot(exog, params_exog) + if self.state_regression: + params_exog = [] + + # Non-seasonal ARMA component and trend + (params_trend, params_ar, params_ma, + params_variance) = self._conditional_sum_squares( + endog, self.k_ar, self.polynomial_ar, self.k_ma, + self.polynomial_ma, self.k_trend, trend_data + ) + + # If we have estimated non-stationary start parameters but enforce + # stationarity is on, raise an error + invalid_ar = ( + self.k_ar > 0 and + self.enforce_stationarity and + not is_invertible(np.r_[1, -params_ar]) + ) + if invalid_ar: + raise ValueError('Non-stationary starting autoregressive' + ' parameters found with `enforce_stationarity`' + ' set to True.') + + # If we have estimated non-invertible start parameters but enforce + # invertibility is on, raise an error + invalid_ma = ( + self.k_ma > 0 and + self.enforce_invertibility and + not is_invertible(np.r_[1, params_ma]) + ) + if invalid_ma: + raise ValueError('non-invertible starting MA parameters found' + ' with `enforce_invertibility` set to True.') + + # Seasonal Parameters + _, params_seasonal_ar, params_seasonal_ma, params_seasonal_variance = ( + self._conditional_sum_squares( + endog, self.k_seasonal_ar, self.polynomial_seasonal_ar, + self.k_seasonal_ma, self.polynomial_seasonal_ma + ) + ) + + # If we have estimated non-stationary start parameters but enforce + # stationarity is on, raise an error + invalid_seasonal_ar = ( + self.k_seasonal_ar > 0 and + self.enforce_stationarity and + not is_invertible(np.r_[1, -params_seasonal_ar]) + ) + if invalid_seasonal_ar: + raise ValueError('Non-stationary starting autoregressive' + ' parameters found with `enforce_stationarity`' + ' set to True.') + + # If we have estimated non-invertible start parameters but enforce + # invertibility is on, raise an error + invalid_seasonal_ma = ( + self.k_seasonal_ma > 0 and + self.enforce_invertibility and + not is_invertible(np.r_[1, params_seasonal_ma]) + ) + if invalid_seasonal_ma: + raise ValueError('non-invertible starting seasonal moving average' + ' parameters found with `enforce_invertibility`' + ' set to True.') + + # Variances + params_exog_variance = [] + if self.state_regression and self.time_varying_regression: + # TODO how to set the initial variance parameters? + params_exog_variance = [1] * self.k_exog + if self.state_error and params_variance == []: + if not params_seasonal_variance == []: + params_variance = params_seasonal_variance + elif self.k_exog > 0: + params_variance = np.dot(endog, endog) + else: + params_variance = 1 + params_measurement_variance = 1 if self.measurement_error else [] + + # Combine all parameters + return np.r_[ + params_trend, + params_exog, + params_ar, + params_ma, + params_seasonal_ar, + params_seasonal_ma, + params_exog_variance, + params_measurement_variance, + params_variance + ] + + @property + def endog_names(self, latex=False): + """Names of endogenous variables""" + diff = '' + if self.k_diff > 0: + if self.k_diff == 1: + diff = '\Delta' if latex else 'D' + else: + diff = ('\Delta^%d' if latex else 'D%d') % self.k_diff + + seasonal_diff = '' + if self.k_seasonal_diff > 0: + if self.k_seasonal_diff == 1: + seasonal_diff = (('\Delta_%d' if latex else 'DS%d') % + (self.k_seasons)) + else: + seasonal_diff = (('\Delta_%d^%d' if latex else 'D%dS%d') % + (self.k_seasonal_diff, self.k_seasons)) + endog_diff = self.simple_differencing + if endog_diff and self.k_diff > 0 and self.k_seasonal_diff > 0: + return (('%s%s %s' if latex else '%s.%s.%s') % + (diff, seasonal_diff, self.data.ynames)) + elif endog_diff and self.k_diff > 0: + return (('%s %s' if latex else '%s.%s') % + (diff, self.data.ynames)) + elif endog_diff and self.k_seasonal_diff > 0: + return (('%s %s' if latex else '%s.%s') % + (seasonal_diff, self.data.ynames)) + else: + return self.data.ynames + + params_complete = [ + 'trend', 'exog', 'ar', 'ma', 'seasonal_ar', 'seasonal_ma', + 'exog_variance', 'measurement_variance', 'variance' + ] + + @property + def param_terms(self): + """ + List of parameters actually included in the model, in sorted order. + + TODO Make this an OrderedDict with slice or indices as the values. + """ + model_orders = self.model_orders + # Get basic list from model orders + params = [ + order for order in self.params_complete + if model_orders[order] > 0 + ] + # k_exog may be positive without associated parameters if it is in the + # state vector + if 'exog' in params and not self.mle_regression: + params.remove('exog') + + return params + + @property + def param_names(self): + """ + List of human readable parameter names (for parameters actually + included in the model). + """ + params_sort_order = self.param_terms + model_names = self.model_names + return [ + name for param in params_sort_order for name in model_names[param] + ] + + @property + def model_orders(self): + """ + The orders of each of the polynomials in the model. + """ + return { + 'trend': self.k_trend, + 'exog': self.k_exog, + 'ar': self.k_ar, + 'ma': self.k_ma, + 'seasonal_ar': self.k_seasonal_ar, + 'seasonal_ma': self.k_seasonal_ma, + 'reduced_ar': self.k_ar + self.k_seasonal_ar, + 'reduced_ma': self.k_ma + self.k_seasonal_ma, + 'exog_variance': self.k_exog if ( + self.state_regression and self.time_varying_regression) else 0, + 'measurement_variance': int(self.measurement_error), + 'variance': int(self.state_error), + } + + @property + def model_names(self): + """ + The plain text names of all possible model parameters. + """ + return self._get_model_names(latex=False) + + @property + def model_latex_names(self): + """ + The latex names of all possible model parameters. + """ + return self._get_model_names(latex=True) + + def _get_model_names(self, latex=False): + names = { + 'trend': None, + 'exog': None, + 'ar': None, + 'ma': None, + 'seasonal_ar': None, + 'seasonal_ma': None, + 'reduced_ar': None, + 'reduced_ma': None, + 'exog_variance': None, + 'measurement_variance': None, + 'variance': None, + } + + # Trend + if self.k_trend > 0: + trend_template = 't_%d' if latex else 'trend.%d' + names['trend'] = [] + for i in self.polynomial_trend.nonzero()[0]: + if i == 0: + names['trend'].append('intercept') + elif i == 1: + names['trend'].append('drift') + else: + names['trend'].append(trend_template % i) + + # Exogenous coefficients + if self.k_exog > 0: + names['exog'] = self.exog_names + + # Autoregressive + if self.k_ar > 0: + ar_template = '$\\phi_%d$' if latex else 'ar.L%d' + names['ar'] = [] + for i in self.polynomial_ar.nonzero()[0][1:]: + names['ar'].append(ar_template % i) + + # Moving Average + if self.k_ma > 0: + ma_template = '$\\theta_%d$' if latex else 'ma.L%d' + names['ma'] = [] + for i in self.polynomial_ma.nonzero()[0][1:]: + names['ma'].append(ma_template % i) + + # Seasonal Autoregressive + if self.k_seasonal_ar > 0: + seasonal_ar_template = ( + '$\\tilde \\phi_%d$' if latex else 'ar.S.L%d' + ) + names['seasonal_ar'] = [] + for i in self.polynomial_seasonal_ar.nonzero()[0][1:]: + names['seasonal_ar'].append(seasonal_ar_template % i) + + # Seasonal Moving Average + if self.k_seasonal_ma > 0: + seasonal_ma_template = ( + '$\\tilde \\theta_%d$' if latex else 'ma.S.L%d' + ) + names['seasonal_ma'] = [] + for i in self.polynomial_seasonal_ma.nonzero()[0][1:]: + names['seasonal_ma'].append(seasonal_ma_template % i) + + # Reduced Form Autoregressive + if self.k_ar > 0 or self.k_seasonal_ar > 0: + reduced_polynomial_ar = reduced_polynomial_ar = -np.polymul( + self.polynomial_ar, self.polynomial_seasonal_ar + ) + ar_template = '$\\Phi_%d$' if latex else 'ar.R.L%d' + names['reduced_ar'] = [] + for i in reduced_polynomial_ar.nonzero()[0][1:]: + names['reduced_ar'].append(ar_template % i) + + # Reduced Form Moving Average + if self.k_ma > 0 or self.k_seasonal_ma > 0: + reduced_polynomial_ma = np.polymul( + self.polynomial_ma, self.polynomial_seasonal_ma + ) + ma_template = '$\\Theta_%d$' if latex else 'ma.R.L%d' + names['reduced_ma'] = [] + for i in reduced_polynomial_ma.nonzero()[0][1:]: + names['reduced_ma'].append(ma_template % i) + + # Exogenous variances + if self.state_regression and self.time_varying_regression: + exog_var_template = '$\\sigma_\\text{%s}^2$' if latex else 'var.%s' + names['exog_variance'] = [ + exog_var_template % exog_name for exog_name in self.exog_names + ] + + # Measurement error variance + if self.measurement_error: + meas_var_tpl = ( + '$\\sigma_\\eta^2$' if latex else 'var.measurement_error' + ) + names['measurement_variance'] = [meas_var_tpl] + + # State variance + if self.state_error: + var_tpl = '$\\sigma_\\zeta^2$' if latex else 'sigma2' + names['variance'] = [var_tpl] + + return names + + def transform_params(self, unconstrained): + """ + Transform unconstrained parameters used by the optimizer to constrained + parameters used in likelihood evaluation. + + Used primarily to enforce stationarity of the autoregressive lag + polynomial, invertibility of the moving average lag polynomial, and + positive variance parameters. + + Parameters + ---------- + unconstrained : array_like + Unconstrained parameters used by the optimizer. + + Returns + ------- + constrained : array_like + Constrained parameters used in likelihood evaluation. + + Notes + ----- + If the lag polynomial has non-consecutive powers (so that the + coefficient is zero on some element of the polynomial), then the + constraint function is not onto the entire space of invertible + polynomials, although it only excludes a very small portion very close + to the invertibility boundary. + """ + unconstrained = np.array(unconstrained, ndmin=1) + constrained = np.zeros(unconstrained.shape, unconstrained.dtype) + + start = end = 0 + + # Retain the trend parameters + if self.k_trend > 0: + end += self.k_trend + constrained[start:end] = unconstrained[start:end] + start += self.k_trend + + # Retain any MLE regression coefficients + if self.mle_regression: + end += self.k_exog + constrained[start:end] = unconstrained[start:end] + start += self.k_exog + + # Transform the AR parameters (phi) to be stationary + if self.k_ar_params > 0: + end += self.k_ar_params + if self.enforce_stationarity: + constrained[start:end] = ( + constrain_stationary_univariate(unconstrained[start:end]) + ) + else: + constrained[start:end] = unconstrained[start:end] + start += self.k_ar_params + + # Transform the MA parameters (theta) to be invertible + if self.k_ma_params > 0: + end += self.k_ma_params + if self.enforce_invertibility: + constrained[start:end] = ( + constrain_stationary_univariate(unconstrained[start:end]) + ) + else: + constrained[start:end] = unconstrained[start:end] + start += self.k_ma_params + + # Transform the seasonal AR parameters (\tilde phi) to be stationary + if self.k_seasonal_ar > 0: + end += self.k_seasonal_ar_params + if self.enforce_stationarity: + constrained[start:end] = ( + constrain_stationary_univariate(unconstrained[start:end]) + ) + else: + constrained[start:end] = unconstrained[start:end] + start += self.k_seasonal_ar_params + + # Transform the seasonal MA parameters (\tilde theta) to be invertible + if self.k_seasonal_ma_params > 0: + end += self.k_seasonal_ma_params + if self.enforce_invertibility: + constrained[start:end] = ( + constrain_stationary_univariate(unconstrained[start:end]) + ) + else: + constrained[start:end] = unconstrained[start:end] + start += self.k_seasonal_ma_params + + # Transform the standard deviation parameters to be positive + if self.state_regression and self.time_varying_regression: + end += self.k_exog + constrained[start:end] = unconstrained[start:end]**2 + start += self.k_exog + if self.measurement_error: + constrained[start] = unconstrained[start]**2 + start += 1 + end += 1 + if self.state_error: + constrained[start] = unconstrained[start]**2 + # start += 1 + # end += 1 + + return constrained + + def untransform_params(self, constrained): + """ + Transform constrained parameters used in likelihood evaluation + to unconstrained parameters used by the optimizer + + Used primarily to reverse enforcement of stationarity of the + autoregressive lag polynomial and invertibility of the moving average + lag polynomial. + + Parameters + ---------- + constrained : array_like + Constrained parameters used in likelihood evaluation. + + Returns + ------- + constrained : array_like + Unconstrained parameters used by the optimizer. + + Notes + ----- + If the lag polynomial has non-consecutive powers (so that the + coefficient is zero on some element of the polynomial), then the + constraint function is not onto the entire space of invertible + polynomials, although it only excludes a very small portion very close + to the invertibility boundary. + """ + constrained = np.array(constrained, ndmin=1) + unconstrained = np.zeros(constrained.shape, constrained.dtype) + + start = end = 0 + + # Retain the trend parameters + if self.k_trend > 0: + end += self.k_trend + unconstrained[start:end] = constrained[start:end] + start += self.k_trend + + # Retain any MLE regression coefficients + if self.mle_regression: + end += self.k_exog + unconstrained[start:end] = constrained[start:end] + start += self.k_exog + + # Transform the AR parameters (phi) to be stationary + if self.k_ar_params > 0: + end += self.k_ar_params + if self.enforce_stationarity: + unconstrained[start:end] = ( + unconstrain_stationary_univariate(constrained[start:end]) + ) + else: + unconstrained[start:end] = constrained[start:end] + start += self.k_ar_params + + # Transform the MA parameters (theta) to be invertible + if self.k_ma_params > 0: + end += self.k_ma_params + if self.enforce_invertibility: + unconstrained[start:end] = ( + unconstrain_stationary_univariate(constrained[start:end]) + ) + else: + unconstrained[start:end] = constrained[start:end] + start += self.k_ma_params + + # Transform the seasonal AR parameters (\tilde phi) to be stationary + if self.k_seasonal_ar > 0: + end += self.k_seasonal_ar_params + if self.enforce_stationarity: + unconstrained[start:end] = ( + unconstrain_stationary_univariate(constrained[start:end]) + ) + else: + unconstrained[start:end] = constrained[start:end] + start += self.k_seasonal_ar_params + + # Transform the seasonal MA parameters (\tilde theta) to be invertible + if self.k_seasonal_ma_params > 0: + end += self.k_seasonal_ma_params + if self.enforce_invertibility: + unconstrained[start:end] = ( + unconstrain_stationary_univariate(constrained[start:end]) + ) + else: + unconstrained[start:end] = constrained[start:end] + start += self.k_seasonal_ma_params + + # Untransform the standard deviation + if self.state_regression and self.time_varying_regression: + end += self.k_exog + unconstrained[start:end] = constrained[start:end]**0.5 + start += self.k_exog + if self.measurement_error: + unconstrained[start] = constrained[start]**0.5 + start += 1 + end += 1 + if self.state_error: + unconstrained[start] = constrained[start]**0.5 + # start += 1 + # end += 1 + + return unconstrained + + def update(self, params, transformed=True, complex_step=False): + """ + Update the parameters of the model + + Updates the representation matrices to fill in the new parameter + values. + + Parameters + ---------- + params : array_like + Array of new parameters. + transformed : boolean, optional + Whether or not `params` is already transformed. If set to False, + `transform_params` is called. Default is True.. + + Returns + ------- + params : array_like + Array of parameters. + """ + params = super(SARIMAX, self).update(params, transformed=transformed, + complex_step=False) + + params_trend = None + params_exog = None + params_ar = None + params_ma = None + params_seasonal_ar = None + params_seasonal_ma = None + params_exog_variance = None + params_measurement_variance = None + params_variance = None + + # Extract the parameters + start = end = 0 + end += self.k_trend + params_trend = params[start:end] + start += self.k_trend + if self.mle_regression: + end += self.k_exog + params_exog = params[start:end] + start += self.k_exog + end += self.k_ar_params + params_ar = params[start:end] + start += self.k_ar_params + end += self.k_ma_params + params_ma = params[start:end] + start += self.k_ma_params + end += self.k_seasonal_ar_params + params_seasonal_ar = params[start:end] + start += self.k_seasonal_ar_params + end += self.k_seasonal_ma_params + params_seasonal_ma = params[start:end] + start += self.k_seasonal_ma_params + if self.state_regression and self.time_varying_regression: + end += self.k_exog + params_exog_variance = params[start:end] + start += self.k_exog + if self.measurement_error: + params_measurement_variance = params[start] + start += 1 + end += 1 + if self.state_error: + params_variance = params[start] + # start += 1 + # end += 1 + + # Update lag polynomials + if self.k_ar > 0: + if self.polynomial_ar.dtype == params.dtype: + self.polynomial_ar[self._polynomial_ar_idx] = -params_ar + else: + polynomial_ar = self.polynomial_ar.real.astype(params.dtype) + polynomial_ar[self._polynomial_ar_idx] = -params_ar + self.polynomial_ar = polynomial_ar + + if self.k_ma > 0: + if self.polynomial_ma.dtype == params.dtype: + self.polynomial_ma[self._polynomial_ma_idx] = params_ma + else: + polynomial_ma = self.polynomial_ma.real.astype(params.dtype) + polynomial_ma[self._polynomial_ma_idx] = params_ma + self.polynomial_ma = polynomial_ma + + if self.k_seasonal_ar > 0: + idx = self._polynomial_seasonal_ar_idx + if self.polynomial_seasonal_ar.dtype == params.dtype: + self.polynomial_seasonal_ar[idx] = -params_seasonal_ar + else: + polynomial_seasonal_ar = ( + self.polynomial_seasonal_ar.real.astype(params.dtype) + ) + polynomial_seasonal_ar[idx] = -params_seasonal_ar + self.polynomial_seasonal_ar = polynomial_seasonal_ar + + if self.k_seasonal_ma > 0: + idx = self._polynomial_seasonal_ma_idx + if self.polynomial_seasonal_ma.dtype == params.dtype: + self.polynomial_seasonal_ma[idx] = params_seasonal_ma + else: + polynomial_seasonal_ma = ( + self.polynomial_seasonal_ma.real.astype(params.dtype) + ) + polynomial_seasonal_ma[idx] = params_seasonal_ma + self.polynomial_seasonal_ma = polynomial_seasonal_ma + + # Get the reduced form lag polynomial terms by multiplying the regular + # and seasonal lag polynomials + # Note: that although the numpy np.polymul examples assume that they + # are ordered from highest degree to lowest, whereas our are from + # lowest to highest, it does not matter. + if self.k_seasonal_ar > 0: + reduced_polynomial_ar = -np.polymul( + self.polynomial_ar, self.polynomial_seasonal_ar + ) + else: + reduced_polynomial_ar = -self.polynomial_ar + if self.k_seasonal_ma > 0: + reduced_polynomial_ma = np.polymul( + self.polynomial_ma, self.polynomial_seasonal_ma + ) + else: + reduced_polynomial_ma = self.polynomial_ma + + # Observation intercept + # Exogenous data with MLE estimation of parameters enters through a + # time-varying observation intercept (is equivalent to simply + # subtracting it out of the endogenous variable first) + if self.mle_regression: + self.ssm['obs_intercept'] = np.dot(self.exog, params_exog)[None, :] + + # State intercept (Harvey) or additional observation intercept + # (Hamilton) + # SARIMA trend enters through the a time-varying state intercept, + # associated with the first row of the stationary component of the + # state vector (i.e. the first element of the state vector following + # any differencing elements) + if self.k_trend > 0: + data = np.dot(self._trend_data, params_trend).astype(params.dtype) + if not self.hamilton_representation: + self.ssm['state_intercept', self._k_states_diff, :] = data + else: + # The way the trend enters in the Hamilton representation means + # that the parameter is not an ``intercept'' but instead the + # mean of the process. The trend values in `data` are meant for + # an intercept, and so must be transformed to represent the + # mean instead + if self.hamilton_representation: + data /= np.sum(-reduced_polynomial_ar) + + # If we already set the observation intercept for MLE + # regression, just add to it + if self.mle_regression: + self.ssm.obs_intercept += data[None, :] + # Otherwise set it directly + else: + self.ssm.obs_intercept = data[None, :] + + # Observation covariance matrix + if self.measurement_error: + self.ssm['obs_cov', 0, 0] = params_measurement_variance + + # Transition matrix + if self.k_ar > 0 or self.k_seasonal_ar > 0: + self.ssm[self.transition_ar_params_idx] = reduced_polynomial_ar[1:] + elif not self.ssm.transition.dtype == params.dtype: + # This is required if the transition matrix is not really in use + # (e.g. for an MA(q) process) so that it's dtype never changes as + # the parameters' dtype changes. This changes the dtype manually. + self.ssm.transition = self.ssm.transition.real.astype(params.dtype) + + # Selection matrix (Harvey) or Design matrix (Hamilton) + if self.k_ma > 0 or self.k_seasonal_ma > 0: + if not self.hamilton_representation: + self.ssm[self.selection_ma_params_idx] = ( + reduced_polynomial_ma[1:] + ) + else: + self.ssm[self.design_ma_params_idx] = reduced_polynomial_ma[1:] + + # State covariance matrix + if self.k_posdef > 0: + self.ssm['state_cov', 0, 0] = params_variance + if self.state_regression and self.time_varying_regression: + self.ssm[self._exog_variance_idx] = params_exog_variance + + # Initialize + if not self._manual_initialization: + self.initialize_state(complex_step=complex_step) + + return params + + +class SARIMAXResults(MLEResults): + """ + Class to hold results from fitting an SARIMAX model. + + Parameters + ---------- + model : SARIMAX instance + The fitted model instance + + Attributes + ---------- + specification : dictionary + Dictionary including all attributes from the SARIMAX model instance. + polynomial_ar : array + Array containing autoregressive lag polynomial coefficients, + ordered from lowest degree to highest. Initialized with ones, unless + a coefficient is constrained to be zero (in which case it is zero). + polynomial_ma : array + Array containing moving average lag polynomial coefficients, + ordered from lowest degree to highest. Initialized with ones, unless + a coefficient is constrained to be zero (in which case it is zero). + polynomial_seasonal_ar : array + Array containing seasonal autoregressive lag polynomial coefficients, + ordered from lowest degree to highest. Initialized with ones, unless + a coefficient is constrained to be zero (in which case it is zero). + polynomial_seasonal_ma : array + Array containing seasonal moving average lag polynomial coefficients, + ordered from lowest degree to highest. Initialized with ones, unless + a coefficient is constrained to be zero (in which case it is zero). + polynomial_trend : array + Array containing trend polynomial coefficients, ordered from lowest + degree to highest. Initialized with ones, unless a coefficient is + constrained to be zero (in which case it is zero). + model_orders : list of int + The orders of each of the polynomials in the model. + param_terms : list of str + List of parameters actually included in the model, in sorted order. + + See Also + -------- + statsmodels.tsa.statespace.kalman_filter.FilterResults + statsmodels.tsa.statespace.mlemodel.MLEResults + """ + def __init__(self, model, params, filter_results, cov_type='opg', **kwargs): + super(SARIMAXResults, self).__init__(model, params, filter_results, + cov_type, **kwargs) + + self.df_resid = np.inf # attribute required for wald tests + + # Save _init_kwds + self._init_kwds = self.model._get_init_kwds() + + # Save model specification + self.specification = Bunch(**{ + # Set additional model parameters + 'k_seasons': self.model.k_seasons, + 'measurement_error': self.model.measurement_error, + 'time_varying_regression': self.model.time_varying_regression, + 'simple_differencing': self.model.simple_differencing, + 'enforce_stationarity': self.model.enforce_stationarity, + 'enforce_invertibility': self.model.enforce_invertibility, + 'hamilton_representation': self.model.hamilton_representation, + + 'order': self.model.order, + 'seasonal_order': self.model.seasonal_order, + + # Model order + 'k_diff': self.model.k_diff, + 'k_seasonal_diff': self.model.k_seasonal_diff, + 'k_ar': self.model.k_ar, + 'k_ma': self.model.k_ma, + 'k_seasonal_ar': self.model.k_seasonal_ar, + 'k_seasonal_ma': self.model.k_seasonal_ma, + + # Param Numbers + 'k_ar_params': self.model.k_ar_params, + 'k_ma_params': self.model.k_ma_params, + + # Trend / Regression + 'trend': self.model.trend, + 'k_trend': self.model.k_trend, + 'k_exog': self.model.k_exog, + + 'mle_regression': self.model.mle_regression, + 'state_regression': self.model.state_regression, + }) + + # Polynomials + self.polynomial_trend = self.model.polynomial_trend + self.polynomial_ar = self.model.polynomial_ar + self.polynomial_ma = self.model.polynomial_ma + self.polynomial_seasonal_ar = self.model.polynomial_seasonal_ar + self.polynomial_seasonal_ma = self.model.polynomial_seasonal_ma + self.polynomial_reduced_ar = np.polymul( + self.polynomial_ar, self.polynomial_seasonal_ar + ) + self.polynomial_reduced_ma = np.polymul( + self.polynomial_ma, self.polynomial_seasonal_ma + ) + + # Distinguish parameters + self.model_orders = self.model.model_orders + self.param_terms = self.model.param_terms + start = end = 0 + for name in self.param_terms: + end += self.model_orders[name] + setattr(self, '_params_%s' % name, self.params[start:end]) + start += self.model_orders[name] + + @cache_readonly + def arroots(self): + """ + (array) Roots of the reduced form autoregressive lag polynomial + """ + return np.roots(self.polynomial_reduced_ar)**-1 + + @cache_readonly + def maroots(self): + """ + (array) Roots of the reduced form moving average lag polynomial + """ + return np.roots(self.polynomial_reduced_ma)**-1 + + @cache_readonly + def arfreq(self): + """ + (array) Frequency of the roots of the reduced form autoregressive + lag polynomial + """ + z = self.arroots + if not z.size: + return + return np.arctan2(z.imag, z.real) / (2 * np.pi) + + @cache_readonly + def mafreq(self): + """ + (array) Frequency of the roots of the reduced form moving average + lag polynomial + """ + z = self.maroots + if not z.size: + return + return np.arctan2(z.imag, z.real) / (2 * np.pi) + + @cache_readonly + def arparams(self): + """ + (array) Autoregressive parameters actually estimated in the model. + Does not include parameters whose values are constrained to be zero. + """ + return self._params_ar + + @cache_readonly + def maparams(self): + """ + (array) Moving average parameters actually estimated in the model. + Does not include parameters whose values are constrained to be zero. + """ + return self._params_ma + + def get_prediction(self, start=None, end=None, dynamic=False, exog=None, + **kwargs): + """ + In-sample prediction and out-of-sample forecasting + + Parameters + ---------- + start : int, str, or datetime, optional + Zero-indexed observation number at which to start forecasting, ie., + the first forecast is start. Can also be a date string to + parse or a datetime type. Default is the the zeroth observation. + end : int, str, or datetime, optional + Zero-indexed observation number at which to end forecasting, ie., + the first forecast is start. Can also be a date string to + parse or a datetime type. However, if the dates index does not + have a fixed frequency, end must be an integer index if you + want out of sample prediction. Default is the last observation in + the sample. + exog : array_like, optional + If the model includes exogenous regressors, you must provide + exactly enough out-of-sample values for the exogenous variables if + end is beyond the last observation in the sample. + dynamic : boolean, int, str, or datetime, optional + Integer offset relative to `start` at which to begin dynamic + prediction. Can also be an absolute date string to parse or a + datetime type (these are not interpreted as offsets). + Prior to this observation, true endogenous values will be used for + prediction; starting with this observation and continuing through + the end of prediction, forecasted endogenous values will be used + instead. + full_results : boolean, optional + If True, returns a FilterResults instance; if False returns a + tuple with forecasts, the forecast errors, and the forecast error + covariance matrices. Default is False. + **kwargs + Additional arguments may required for forecasting beyond the end + of the sample. See `FilterResults.predict` for more details. + + Returns + ------- + forecast : array + Array of out of sample forecasts. + """ + if start is None: + start = 0 + + # Handle end (e.g. date) + _start = self.model._get_predict_start(start) + _end, _out_of_sample = self.model._get_predict_end(end) + + # Handle exogenous parameters + if _out_of_sample and (self.model.k_exog + self.model.k_trend > 0): + # Create a new faux SARIMAX model for the extended dataset + nobs = self.model.data.orig_endog.shape[0] + _out_of_sample + endog = np.zeros((nobs, self.model.k_endog)) + + if self.model.k_exog > 0: + if exog is None: + raise ValueError('Out-of-sample forecasting in a model' + ' with a regression component requires' + ' additional exogenous values via the' + ' `exog` argument.') + exog = np.array(exog) + required_exog_shape = (_out_of_sample, self.model.k_exog) + if not exog.shape == required_exog_shape: + raise ValueError('Provided exogenous values are not of the' + ' appropriate shape. Required %s, got %s.' + % (str(required_exog_shape), + str(exog.shape))) + exog = np.c_[self.model.data.orig_exog.T, exog.T].T + + model_kwargs = self._init_kwds.copy() + model_kwargs['exog'] = exog + model = SARIMAX(endog, **model_kwargs) + model.update(self.params) + + # Set the kwargs with the update time-varying state space + # representation matrices + for name in self.filter_results.shapes.keys(): + if name == 'obs': + continue + mat = getattr(model.ssm, name) + if mat.shape[-1] > 1: + if len(mat.shape) == 2: + kwargs[name] = mat[:, -_out_of_sample:] + else: + kwargs[name] = mat[:, :, -_out_of_sample:] + elif self.model.k_exog == 0 and exog is not None: + warn('Exogenous array provided to predict, but additional data not' + ' required. `exog` argument ignored.', ValueWarning) + + return super(SARIMAXResults, self).get_prediction( + start=start, end=end, dynamic=dynamic, exog=exog, **kwargs + ) + + def summary(self, alpha=.05, start=None): + # Create the model name + + # See if we have an ARIMA component + order = '' + if self.model.k_ar + self.model.k_diff + self.model.k_ma > 0: + if self.model.k_ar == self.model.k_ar_params: + order_ar = self.model.k_ar + else: + order_ar = tuple(self.polynomial_ar.nonzero()[0][1:]) + if self.model.k_ma == self.model.k_ma_params: + order_ma = self.model.k_ma + else: + order_ma = tuple(self.polynomial_ma.nonzero()[0][1:]) + # If there is simple differencing, then that is reflected in the + # dependent variable name + k_diff = 0 if self.model.simple_differencing else self.model.k_diff + order = '(%s, %d, %s)' % (order_ar, k_diff, order_ma) + # See if we have an SARIMA component + seasonal_order = '' + has_seasonal = ( + self.model.k_seasonal_ar + + self.model.k_seasonal_diff + + self.model.k_seasonal_ma + ) > 0 + if has_seasonal: + if self.model.k_ar == self.model.k_ar_params: + order_seasonal_ar = ( + int(self.model.k_seasonal_ar / self.model.k_seasons) + ) + else: + order_seasonal_ar = ( + tuple(self.polynomial_seasonal_ar.nonzero()[0][1:]) + ) + if self.model.k_ma == self.model.k_ma_params: + order_seasonal_ma = ( + int(self.model.k_seasonal_ma / self.model.k_seasons) + ) + else: + order_seasonal_ma = ( + tuple(self.polynomial_seasonal_ma.nonzero()[0][1:]) + ) + # If there is simple differencing, then that is reflected in the + # dependent variable name + k_seasonal_diff = self.model.k_seasonal_diff + if self.model.simple_differencing: + k_seasonal_diff = 0 + seasonal_order = ('(%s, %d, %s, %d)' % + (str(order_seasonal_ar), k_seasonal_diff, + str(order_seasonal_ma), self.model.k_seasons)) + if not order == '': + order += 'x' + model_name = ( + '%s%s%s' % (self.model.__class__.__name__, order, seasonal_order) + ) + return super(SARIMAXResults, self).summary( + alpha=alpha, start=start, model_name=model_name + ) + summary.__doc__ = MLEResults.summary.__doc__ + + +class SARIMAXResultsWrapper(MLEResultsWrapper): + _attrs = {} + _wrap_attrs = wrap.union_dicts(MLEResultsWrapper._wrap_attrs, + _attrs) + _methods = {} + _wrap_methods = wrap.union_dicts(MLEResultsWrapper._wrap_methods, + _methods) +wrap.populate_wrapper(SARIMAXResultsWrapper, SARIMAXResults) diff --git a/statsmodels/tsa/statespace/structural.py b/statsmodels/tsa/statespace/structural.py new file mode 100644 index 0000000..678bbf9 --- /dev/null +++ b/statsmodels/tsa/statespace/structural.py @@ -0,0 +1,1572 @@ +""" +Univariate structural time series models + +Author: Chad Fulton +License: Simplified-BSD +""" +from __future__ import division, absolute_import, print_function + +from warnings import warn +from statsmodels.compat.collections import OrderedDict + +import numpy as np +import pandas as pd +from statsmodels.tsa.filters.hp_filter import hpfilter +from statsmodels.tools.data import _is_using_pandas +from statsmodels.tsa.tsatools import lagmat +from .mlemodel import MLEModel, MLEResults, MLEResultsWrapper +from scipy.linalg import solve_discrete_lyapunov +from statsmodels.tools.tools import Bunch +from statsmodels.tools.sm_exceptions import ValueWarning, OutputWarning, SpecificationWarning +from .tools import ( + companion_matrix, constrain_stationary_univariate, + unconstrain_stationary_univariate +) +import statsmodels.base.wrapper as wrap + +_mask_map = { + 1: 'irregular', + 2: 'fixed intercept', + 3: 'deterministic constant', + 6: 'random walk', + 7: 'local level', + 8: 'fixed slope', + 11: 'deterministic trend', + 14: 'random walk with drift', + 15: 'local linear deterministic trend', + 31: 'local linear trend', + 27: 'smooth trend', + 26: 'random trend' +} + + +class UnobservedComponents(MLEModel): + r""" + Univariate unobserved components time series model + + These are also known as structural time series models, and decompose a + (univariate) time series into trend, seasonal, cyclical, and irregular + components. + + Parameters + ---------- + + level : bool or string, optional + Whether or not to include a level component. Default is False. Can also + be a string specification of the level / trend component; see Notes + for available model specification strings. + trend : bool, optional + Whether or not to include a trend component. Default is False. If True, + `level` must also be True. + seasonal_period : int or None, optional + The period of the seasonal component. Default is None. + cycle : bool, optional + Whether or not to include a cycle component. Default is False. + ar : int or None, optional + The order of the autoregressive component. Default is None. + exog : array_like or None, optional + Exoenous variables. + irregular : bool, optional + Whether or not to include an irregular component. Default is False. + stochastic_level : bool, optional + Whether or not any level component is stochastic. Default is False. + stochastic_trend : bool, optional + Whether or not any trend component is stochastic. Default is False. + stochastic_seasonal : bool, optional + Whether or not any seasonal component is stochastic. Default is False. + stochastic_cycle : bool, optional + Whether or not any cycle component is stochastic. Default is False. + damped_cycle : bool, optional + Whether or not the cycle component is damped. Default is False. + cycle_period_bounds : tuple, optional + A tuple with lower and upper allowed bounds for the period of the + cycle. If not provided, the following default bounds are used: + (1) if no date / time information is provided, the frequency is + constrained to be between zero and :math:`\pi`, so the period is + constrained to be in [0.5, infinity]. + (2) If the date / time information is provided, the default bounds + allow the cyclical component to be between 1.5 and 12 years; depending + on the frequency of the endogenous variable, this will imply different + specific bounds. + + Notes + ----- + + Thse models take the general form (see [1]_ Chapter 3.2 for all details) + + .. math:: + + y_t = \mu_t + \gamma_t + c_t + \varepsilon_t + + where :math:`y_t` refers to the observation vector at time :math:`t`, + :math:`\mu_t` refers to the trend component, :math:`\gamma_t` refers to the + seasonal component, :math:`c_t` refers to the cycle, and + :math:`\varepsilon_t` is the irregular. The modeling details of these + components are given below. + + **Trend** + + The trend component is a dynamic extension of a regression model that + includes an intercept and linear time-trend. It can be written: + + .. math:: + + \mu_t = \mu_{t-1} + \beta_{t-1} + \eta_{t-1} \\ + \beta_t = \beta_{t-1} + \zeta_{t-1} + + where the level is a generalization of the intercept term that can + dynamically vary across time, and the trend is a generalization of the + time-trend such that the slope can dynamically vary across time. + + Here :math:`\eta_t \sim N(0, \sigma_\eta^2)` and + :math:`\zeta_t \sim N(0, \sigma_\zeta^2)`. + + For both elements (level and trend), we can consider models in which: + + - The element is included vs excluded (if the trend is included, there must + also be a level included). + - The element is deterministic vs stochastic (i.e. whether or not the + variance on the error term is confined to be zero or not) + + The only additional parameters to be estimated via MLE are the variances of + any included stochastic components. + + The level/trend components can be specified using the boolean keyword + arguments `level`, `stochastic_level`, `trend`, etc., or all at once as a + string argument to `level`. The following table shows the available + model specifications: + + +----------------------------------+--------------------------------------+--------------------+--------------------------------------------------+ + | Model name | Full string syntax | Abbreviated syntax | Model | + +==================================+======================================+====================+==================================================+ + | No trend | `'irregular'` | `'ntrend'` | .. math:: y_t &= \varepsilon_t | + +----------------------------------+--------------------------------------+--------------------+--------------------------------------------------+ + | Fixed intercept | `'fixed intercept'` | | .. math:: y_t &= \mu | + +----------------------------------+--------------------------------------+--------------------+--------------------------------------------------+ + | Deterministic constant | `'deterministic constant'` | `'dconstant'` | .. math:: y_t &= \mu + \varepsilon_t | + +----------------------------------+--------------------------------------+--------------------+--------------------------------------------------+ + | Local level | `'local level'` | `'llevel'` | .. math:: y_t &= \mu_t + \varepsilon_t \\ | + | | | | \mu_t &= \mu_{t-1} + \eta_t | + +----------------------------------+--------------------------------------+--------------------+--------------------------------------------------+ + | Random walk | `'random walk'` | `'rwalk'` | .. math:: y_t &= \mu_t \\ | + | | | | \mu_t &= \mu_{t-1} + \eta_t | + +----------------------------------+--------------------------------------+--------------------+--------------------------------------------------+ + | Fixed slope | `'fixed slope'` | | .. math:: y_t &= \mu_t \\ | + | | | | \mu_t &= \mu_{t-1} + \beta | + +----------------------------------+--------------------------------------+--------------------+--------------------------------------------------+ + | Deterministic trend | `'deterministic trend'` | `'dtrend'` | .. math:: y_t &= \mu_t + \varepsilon_t \\ | + | | | | \mu_t &= \mu_{t-1} + \beta | + +----------------------------------+--------------------------------------+--------------------+--------------------------------------------------+ + | Local linear deterministic trend | `'local linear deterministic trend'` | `'lldtrend'` | .. math:: y_t &= \mu_t + \varepsilon_t \\ | + | | | | \mu_t &= \mu_{t-1} + \beta + \eta_t | + +----------------------------------+--------------------------------------+--------------------+--------------------------------------------------+ + | Random walk with drift | `'random walk with drift'` | `'rwdrift'` | .. math:: y_t &= \mu_t \\ | + | | | | \mu_t &= \mu_{t-1} + \beta + \eta_t | + +----------------------------------+--------------------------------------+--------------------+--------------------------------------------------+ + | Local linear trend | `'local linear trend'` | `'lltrend'` | .. math:: y_t &= \mu_t + \varepsilon_t \\ | + | | | | \mu_t &= \mu_{t-1} + \beta_{t-1} + \eta_t \\ | + | | | | \beta_t &= \beta_{t-1} + \zeta_t | + +----------------------------------+--------------------------------------+--------------------+--------------------------------------------------+ + | Smooth trend | `'smooth trend'` | `'strend'` | .. math:: y_t &= \mu_t + \varepsilon_t \\ | + | | | | \mu_t &= \mu_{t-1} + \beta_{t-1} \\ | + | | | | \beta_t &= \beta_{t-1} + \zeta_t | + +----------------------------------+--------------------------------------+--------------------+--------------------------------------------------+ + | Random trend | `'random trend'` | `'rtrend'` | .. math:: y_t &= \mu_t \\ | + | | | | \mu_t &= \mu_{t-1} + \beta_{t-1} \\ | + | | | | \beta_t &= \beta_{t-1} + \zeta_t | + +----------------------------------+--------------------------------------+--------------------+--------------------------------------------------+ + + Following the fitting of the model, the unobserved level and trend + component time series are available in the results class in the + `level` and `trend` attributes, respectively. + + **Seasonal** + + The seasonal component is modeled as: + + .. math:: + + \gamma_t = - \sum_{j=1}^{s-1} \gamma_{t+1-j} + \omega_t \\ + \omega_t \sim N(0, \sigma_\omega^2) + + The periodicity (number of seasons) is s, and the defining character is + that (without the error term), the seasonal components sum to zero across + one complete cycle. The inclusion of an error term allows the seasonal + effects to vary over time (if this is not desired, :math:`\sigma_\omega^2` + can be set to zero using the `stochastic_seasonal=False` keyword argument). + + This component results in one parameter to be selected via maximum + likelihood: :math:`\sigma_\omega^2`, and one parameter to be chosen, the + number of seasons `s`. + + Following the fitting of the model, the unobserved seasonal component + time series is available in the results class in the `seasonal` + attribute. + + **Cycle** + + The cyclical component is intended to capture cyclical effects at time + frames much longer than captured by the seasonal component. For example, + in economics the cyclical term is often intended to capture the business + cycle, and is then expected to have a period between "1.5 and 12 years" + (see Durbin and Koopman). + + .. math:: + + c_{t+1} & = \rho_c (\tilde c_t \cos \lambda_c t + + \tilde c_t^* \sin \lambda_c) + + \tilde \omega_t \\ + c_{t+1}^* & = \rho_c (- \tilde c_t \sin \lambda_c t + + \tilde c_t^* \cos \lambda_c) + + \tilde \omega_t^* \\ + + where :math:`\omega_t, \tilde \omega_t iid N(0, \sigma_{\tilde \omega}^2)` + + The parameter :math:`\lambda_c` (the frequency of the cycle) is an + additional parameter to be estimated by MLE. + + If the cyclical effect is stochastic (`stochastic_cycle=True`), then there + is another parameter to estimate (the variance of the error term - note + that both of the error terms here share the same variance, but are assumed + to have independent draws). + + If the cycle is damped (`damped_cycle=True`), then there is a third + parameter to estimate, :math:`\rho_c`. + + In order to achieve cycles with the appropriate frequencies, bounds are + imposed on the parameter :math:`\lambda_c` in estimation. These can be + controlled via the keyword argument `cycle_period_bounds`, which, if + specified, must be a tuple of bounds on the **period** `(lower, upper)`. + The bounds on the frequency are then calculated from those bounds. + + The default bounds, if none are provided, are selected in the following + way: + + 1. If no date / time information is provided, the frequency is + constrained to be between zero and :math:`\pi`, so the period is + constrained to be in :math:`[0.5, \infty]`. + 2. If the date / time information is provided, the default bounds + allow the cyclical component to be between 1.5 and 12 years; depending + on the frequency of the endogenous variable, this will imply different + specific bounds. + + Following the fitting of the model, the unobserved cyclical component + time series is available in the results class in the `cycle` + attribute. + + **Irregular** + + The irregular components are independent and identically distributed (iid): + + .. math:: + + \varepsilon_t \sim N(0, \sigma_\varepsilon^2) + + **Autoregressive Irregular** + + An autoregressive component (often used as a replacement for the white + noise irregular term) can be specified as: + + .. math:: + + \varepsilon_t = \rho(L) \varepsilon_{t-1} + \epsilon_t \\ + \epsilon_t \sim N(0, \sigma_\epsilon^2) + + In this case, the AR order is specified via the `autoregressive` keyword, + and the autoregressive coefficients are estimated. + + Following the fitting of the model, the unobserved autoregressive component + time series is available in the results class in the `autoregressive` + attribute. + + **Regression effects** + + Exogenous regressors can be pass to the `exog` argument. The regression + coefficients will be estimated by maximum likelihood unless + `mle_regression=False`, in which case the regression coefficients will be + included in the state vector where they are essentially estimated via + recursive OLS. + + If the regression_coefficients are included in the state vector, the + recursive estimates are available in the results class in the + `regression_coefficients` attribute. + + References + ---------- + + .. [1] Durbin, James, and Siem Jan Koopman. 2012. + Time Series Analysis by State Space Methods: Second Edition. + Oxford University Press. + """ + + def __init__(self, endog, level=False, trend=False, seasonal=None, + cycle=False, autoregressive=None, exog=None, irregular=False, + stochastic_level=False, stochastic_trend=False, + stochastic_seasonal=True, stochastic_cycle=False, + damped_cycle=False, cycle_period_bounds=None, + mle_regression=True, + **kwargs): + + # Model options + self.level = level + self.trend = trend + self.seasonal_period = seasonal if seasonal is not None else 0 + self.seasonal = self.seasonal_period > 0 + self.cycle = cycle + self.ar_order = autoregressive if autoregressive is not None else 0 + self.autoregressive = self.ar_order > 0 + self.irregular = irregular + + self.stochastic_level = stochastic_level + self.stochastic_trend = stochastic_trend + self.stochastic_seasonal = stochastic_seasonal + self.stochastic_cycle = stochastic_cycle + + self.damped_cycle = damped_cycle + self.mle_regression = mle_regression + + # Check for string trend/level specification + self.trend_specification = None + if isinstance(self.level, str): + self.trend_specification = level + self.level = False + + # Check if any of the trend/level components have been set, and + # reset everything to False + trend_attributes = ['irregular', 'level', 'trend', + 'stochastic_level', 'stochastic_trend'] + for attribute in trend_attributes: + if not getattr(self, attribute) is False: + warn("Value of `%s` may be overridden when the trend" + " component is specified using a model string." + % attribute, SpecificationWarning) + setattr(self, attribute, False) + + # Now set the correct specification + spec = self.trend_specification + if spec == 'irregular' or spec == 'ntrend': + self.irregular = True + self.trend_specification = 'irregular' + elif spec == 'fixed intercept': + self.level = True + elif spec == 'deterministic constant' or spec == 'dconstant': + self.irregular = True + self.level = True + self.trend_specification = 'deterministic constant' + elif spec == 'local level' or spec == 'llevel': + self.irregular = True + self.level = True + self.stochastic_level = True + self.trend_specification = 'local level' + elif spec == 'random walk' or spec == 'rwalk': + self.level = True + self.stochastic_level = True + self.trend_specification = 'random walk' + elif spec == 'fixed slope': + self.level = True + self.trend = True + elif spec == 'deterministic trend' or spec == 'dtrend': + self.irregular = True + self.level = True + self.trend = True + self.trend_specification = 'deterministic trend' + elif (spec == 'local linear deterministic trend' or + spec == 'lldtrend'): + self.irregular = True + self.level = True + self.stochastic_level = True + self.trend = True + self.trend_specification = 'local linear deterministic trend' + elif spec == 'random walk with drift' or spec == 'rwdrift': + self.level = True + self.stochastic_level = True + self.trend = True + self.trend_specification = 'random walk with drift' + elif spec == 'local linear trend' or spec == 'lltrend': + self.irregular = True + self.level = True + self.stochastic_level = True + self.trend = True + self.stochastic_trend = True + self.trend_specification = 'local linear trend' + elif spec == 'smooth trend' or spec == 'strend': + self.irregular = True + self.level = True + self.trend = True + self.stochastic_trend = True + self.trend_specification = 'smooth trend' + elif spec == 'random trend' or spec == 'rtrend': + self.level = True + self.trend = True + self.stochastic_trend = True + self.trend_specification = 'random trend' + else: + raise ValueError("Invalid level/trend specification: '%s'" + % spec) + + # Check for a model that makes sense + if trend and not level: + warn("Trend component specified without level component;" + " deterministic level component added.", SpecificationWarning) + self.level = True + self.stochastic_level = False + + if not (self.irregular or + (self.level and self.stochastic_level) or + (self.trend and self.stochastic_trend) or + (self.seasonal and self.stochastic_seasonal) or + (self.cycle and self.stochastic_cycle) or + self.autoregressive): + warn("Specified model does not contain a stochastic element;" + " irregular component added.", SpecificationWarning) + self.irregular = True + + if self.seasonal and self.seasonal_period < 2: + raise ValueError('Seasonal component must have a seasonal period' + ' of at least 2.') + + # Create a bitmask holding the level/trend specification + self.trend_mask = ( + self.irregular * 0x01 | + self.level * 0x02 | + self.level * self.stochastic_level * 0x04 | + self.trend * 0x08 | + self.trend * self.stochastic_trend * 0x10 + ) + + # Create the trend specification, if it wasn't given + if self.trend_specification is None: + # trend specification may be none, e.g. if the model is only + # a stochastic cycle, etc. + self.trend_specification = _mask_map.get(self.trend_mask, None) + + # Exogenous component + self.k_exog = 0 + if exog is not None: + exog_is_using_pandas = _is_using_pandas(exog, None) + if not exog_is_using_pandas: + exog = np.asarray(exog) + + # Make sure we have 2-dimensional array + if exog.ndim < 2: + if not exog_is_using_pandas: + exog = np.atleast_2d(exog).T + else: + exog = pd.DataFrame(exog) + + self.k_exog = exog.shape[1] + self.regression = self.k_exog > 0 + + # Model parameters + k_states = ( + self.level + self.trend + + (self.seasonal_period - 1) * self.seasonal + + self.cycle * 2 + + self.ar_order + + (not self.mle_regression) * self.k_exog + ) + k_posdef = ( + self.stochastic_level * self.level + + self.stochastic_trend * self.trend + + self.stochastic_seasonal * self.seasonal + + self.stochastic_cycle * (self.cycle * 2) + + self.autoregressive + ) + + # We can still estimate the model with just the irregular component, + # just need to have one state that does nothing. + loglikelihood_burn = kwargs.get('loglikelihood_burn', + k_states - self.ar_order) + if k_states == 0: + if not self.irregular: + raise ValueError('Model has no components specified.') + k_states = 1 + if k_posdef == 0: + k_posdef = 1 + + # Setup the representation + super(UnobservedComponents, self).__init__( + endog, k_states, k_posdef=k_posdef, exog=exog, **kwargs + ) + self.setup() + + # Set as time-varying model if we have exog + if self.k_exog > 0: + self.ssm._time_invariant = False + + # Initialize the model + self.ssm.loglikelihood_burn = loglikelihood_burn + + # Need to reset the MLE names (since when they were first set, `setup` + # had not been run (and could not have been at that point)) + self.data.param_names = self.param_names + + # Get bounds for the frequency of the cycle, if we know the frequency + # of the data. + if cycle_period_bounds is None: + freq = self.data.freq[0] if self.data.freq is not None else '' + if freq == 'A': + cycle_period_bounds = (1.5, 12) + elif freq == 'Q': + cycle_period_bounds = (1.5*4, 12*4) + elif freq == 'M': + cycle_period_bounds = (1.5*12, 12*12) + else: + # If we have no information on data frequency, require the + # cycle frequency to be between 0 and pi + cycle_period_bounds = (2, np.inf) + + self.cycle_frequency_bound = ( + 2*np.pi / cycle_period_bounds[1], 2*np.pi / cycle_period_bounds[0] + ) + + # update _init_keys attached by super + self._init_keys += ['level', 'trend', 'seasonal', 'cycle', + 'autoregressive', 'exog', 'irregular', + 'stochastic_level', 'stochastic_trend', + 'stochastic_seasonal', 'stochastic_cycle', + 'damped_cycle', 'cycle_period_bounds', + 'mle_regression'] + list(kwargs.keys()) + # TODO: I think the kwargs or not attached, need to recover from ??? + + def _get_init_kwds(self): + kwds = super(UnobservedComponents, self)._get_init_kwds() + + for key, value in kwds.items(): + if value is None and hasattr(self.ssm, key): + kwds[key] = getattr(self.ssm, key) + + return kwds + + def setup(self): + """ + Setup the structural time series representation + """ + # Initialize the ordered sets of parameters + self.parameters = OrderedDict() + self.parameters_obs_intercept = OrderedDict() + self.parameters_obs_cov = OrderedDict() + self.parameters_transition = OrderedDict() + self.parameters_state_cov = OrderedDict() + + # Initialize the fixed components of the state space matrices, + i = 0 # state offset + j = 0 # state covariance offset + + if self.irregular: + self.parameters_obs_cov['irregular_var'] = 1 + if self.level: + self.ssm['design', 0, i] = 1. + self.ssm['transition', i, i] = 1. + if self.trend: + self.ssm['transition', i, i+1] = 1. + if self.stochastic_level: + self.ssm['selection', i, j] = 1. + self.parameters_state_cov['level_var'] = 1 + j += 1 + i += 1 + if self.trend: + self.ssm['transition', i, i] = 1. + if self.stochastic_trend: + self.ssm['selection', i, j] = 1. + self.parameters_state_cov['trend_var'] = 1 + j += 1 + i += 1 + if self.seasonal: + n = self.seasonal_period - 1 + self.ssm['design', 0, i] = 1. + self.ssm['transition', i:i + n, i:i + n] = ( + companion_matrix(np.r_[1, [1] * n]).transpose() + ) + if self.stochastic_seasonal: + self.ssm['selection', i, j] = 1. + self.parameters_state_cov['seasonal_var'] = 1 + j += 1 + i += n + if self.cycle: + self.ssm['design', 0, i] = 1. + self.parameters_transition['cycle_freq'] = 1 + if self.damped_cycle: + self.parameters_transition['cycle_damp'] = 1 + if self.stochastic_cycle: + self.ssm['selection', i:i+2, j:j+2] = np.eye(2) + self.parameters_state_cov['cycle_var'] = 1 + j += 2 + self._idx_cycle_transition = np.s_['transition', i:i+2, i:i+2] + i += 2 + if self.autoregressive: + self.ssm['design', 0, i] = 1. + self.parameters_transition['ar_coeff'] = self.ar_order + self.parameters_state_cov['ar_var'] = 1 + self.ssm['selection', i, j] = 1 + self.ssm['transition', i:i+self.ar_order, i:i+self.ar_order] = ( + companion_matrix(self.ar_order).T + ) + self._idx_ar_transition = ( + np.s_['transition', i, i:i+self.ar_order] + ) + j += 1 + i += self.ar_order + if self.regression: + if self.mle_regression: + self.parameters_obs_intercept['reg_coeff'] = self.k_exog + else: + design = np.repeat(self.ssm['design', :, :, 0], self.nobs, axis=0) + self.ssm['design'] = design.transpose()[np.newaxis, :, :] + self.ssm['design', 0, i:i+self.k_exog, :] = self.exog.transpose() + self.ssm['transition', i:i+self.k_exog, i:i+self.k_exog] = ( + np.eye(self.k_exog) + ) + + i += self.k_exog + + # Update to get the actual parameter set + self.parameters.update(self.parameters_obs_cov) + self.parameters.update(self.parameters_state_cov) + self.parameters.update(self.parameters_transition) # ordered last + self.parameters.update(self.parameters_obs_intercept) + + self.k_obs_intercept = sum(self.parameters_obs_intercept.values()) + self.k_obs_cov = sum(self.parameters_obs_cov.values()) + self.k_transition = sum(self.parameters_transition.values()) + self.k_state_cov = sum(self.parameters_state_cov.values()) + self.k_params = sum(self.parameters.values()) + + # Other indices + idx = np.diag_indices(self.ssm.k_posdef) + self._idx_state_cov = ('state_cov', idx[0], idx[1]) + + def initialize_state(self): + # Initialize the AR component as stationary, the rest as approximately + # diffuse + initial_state = np.zeros(self.k_states) + initial_state_cov = ( + np.eye(self.k_states, dtype=self.ssm.transition.dtype) * + self.ssm.initial_variance + ) + + if self.autoregressive: + + start = ( + self.level + self.trend + + (self.seasonal_period - 1) * self.seasonal + + self.cycle * 2 + ) + end = start + self.ar_order + selection_stationary = self.ssm.selection[start:end, :, 0] + selected_state_cov_stationary = np.dot( + np.dot(selection_stationary, self.ssm.state_cov[:, :, 0]), + selection_stationary.T + ) + try: + initial_state_cov_stationary = solve_discrete_lyapunov( + self.ssm.transition[start:end, start:end, 0], + selected_state_cov_stationary + ) + except: + initial_state_cov_stationary = solve_discrete_lyapunov( + self.ssm.transition[start:end, start:end, 0], + selected_state_cov_stationary, + method='direct' + ) + + initial_state_cov[start:end, start:end] = ( + initial_state_cov_stationary + ) + + self.ssm.initialize_known(initial_state, initial_state_cov) + + def filter(self, params, **kwargs): + kwargs.setdefault('results_class', UnobservedComponentsResults) + kwargs.setdefault('results_wrapper_class', + UnobservedComponentsResultsWrapper) + return super(UnobservedComponents, self).filter(params, **kwargs) + + def smooth(self, params, **kwargs): + kwargs.setdefault('results_class', UnobservedComponentsResults) + kwargs.setdefault('results_wrapper_class', + UnobservedComponentsResultsWrapper) + return super(UnobservedComponents, self).smooth(params, **kwargs) + + @property + def start_params(self): + if not hasattr(self, 'parameters'): + return [] + + # Eliminate missing data to estimate starting parameters + endog = self.endog + exog = self.exog + if np.any(np.isnan(endog)): + mask = ~np.isnan(endog).squeeze() + endog = endog[mask] + if exog is not None: + exog = exog[mask] + + # Level / trend variances + # (Use the HP filter to get initial estimates of variances) + _start_params = {} + if self.level: + resid, trend1 = hpfilter(endog) + + if self.stochastic_trend: + cycle2, trend2 = hpfilter(trend1) + _start_params['trend_var'] = np.std(trend2)**2 + if self.stochastic_level: + _start_params['level_var'] = np.std(cycle2)**2 + elif self.stochastic_level: + _start_params['level_var'] = np.std(trend1)**2 + else: + resid = self.ssm.endog[0] + + # Regression + if self.regression and self.mle_regression: + _start_params['reg_coeff'] = ( + np.linalg.pinv(exog).dot(resid).tolist() + ) + resid = np.squeeze( + resid - np.dot(exog, _start_params['reg_coeff']) + ) + + # Autoregressive + if self.autoregressive: + Y = resid[self.ar_order:] + X = lagmat(resid, self.ar_order, trim='both') + _start_params['ar_coeff'] = np.linalg.pinv(X).dot(Y).tolist() + resid = np.squeeze(Y - np.dot(X, _start_params['ar_coeff'])) + _start_params['ar_var'] = np.var(resid) + + # The variance of the residual term can be used for all variances, + # just to get something in the right order of magnitude. + var_resid = np.var(resid) + + # Seasonal + if self.stochastic_seasonal: + _start_params['seasonal_var'] = var_resid + + # Cyclical + if self.cycle: + _start_params['cycle_var'] = var_resid + # Clip this to make sure it is postive and strictly stationary + # (i.e. don't want negative or 1) + _start_params['cycle_damp'] = np.clip( + np.linalg.pinv(resid[:-1, None]).dot(resid[1:])[0], 0, 0.99 + ) + + # Set initial period estimate to 3 year, if we know the frequency + # of the data observations + freq = self.data.freq[0] if self.data.freq is not None else '' + if freq == 'A': + _start_params['cycle_freq'] = 2 * np.pi / 3 + elif freq == 'Q': + _start_params['cycle_freq'] = 2 * np.pi / 12 + elif freq == 'M': + _start_params['cycle_freq'] = 2 * np.pi / 36 + else: + if not np.any(np.isinf(self.cycle_frequency_bound)): + _start_params['cycle_freq'] = ( + np.mean(self.cycle_frequency_bound)) + elif np.isinf(self.cycle_frequency_bound[1]): + _start_params['cycle_freq'] = self.cycle_frequency_bound[0] + else: + _start_params['cycle_freq'] = self.cycle_frequency_bound[1] + + # Irregular + if self.irregular: + _start_params['irregular_var'] = var_resid + + # Create the starting parameter list + start_params = [] + for key in self.parameters.keys(): + if np.isscalar(_start_params[key]): + start_params.append(_start_params[key]) + else: + start_params += _start_params[key] + return start_params + + @property + def param_names(self): + if not hasattr(self, 'parameters'): + return [] + param_names = [] + for key in self.parameters.keys(): + if key == 'irregular_var': + param_names.append('sigma2.irregular') + elif key == 'level_var': + param_names.append('sigma2.level') + elif key == 'trend_var': + param_names.append('sigma2.trend') + elif key == 'seasonal_var': + param_names.append('sigma2.seasonal') + elif key == 'cycle_var': + param_names.append('sigma2.cycle') + elif key == 'cycle_freq': + param_names.append('frequency.cycle') + elif key == 'cycle_damp': + param_names.append('damping.cycle') + elif key == 'ar_coeff': + for i in range(self.ar_order): + param_names.append('ar.L%d' % (i+1)) + elif key == 'ar_var': + param_names.append('sigma2.ar') + elif key == 'reg_coeff': + param_names += [ + 'beta.%s' % self.exog_names[i] + for i in range(self.k_exog) + ] + else: + param_names.append(key) + return param_names + + def transform_params(self, unconstrained): + """ + Transform unconstrained parameters used by the optimizer to constrained + parameters used in likelihood evaluation + """ + unconstrained = np.array(unconstrained, ndmin=1) + constrained = np.zeros(unconstrained.shape, dtype=unconstrained.dtype) + + # Positive parameters: obs_cov, state_cov + offset = self.k_obs_cov + self.k_state_cov + constrained[:offset] = unconstrained[:offset]**2 + + # Cycle parameters + if self.cycle: + # Cycle frequency must be between between our bounds + low, high = self.cycle_frequency_bound + constrained[offset] = ( + 1 / (1 + np.exp(-unconstrained[offset])) + ) * (high - low) + low + offset += 1 + + # Cycle damping (if present) must be between 0 and 1 + if self.damped_cycle: + constrained[offset] = ( + 1 / (1 + np.exp(-unconstrained[offset])) + ) + offset += 1 + + # Autoregressive coefficients must be stationary + if self.autoregressive: + constrained[offset:offset + self.ar_order] = ( + constrain_stationary_univariate( + unconstrained[offset:offset + self.ar_order] + ) + ) + offset += self.ar_order + + # Nothing to do with betas + constrained[offset:offset + self.k_exog] = ( + unconstrained[offset:offset + self.k_exog] + ) + + return constrained + + def untransform_params(self, constrained): + """ + Reverse the transformation + """ + constrained = np.array(constrained, ndmin=1) + unconstrained = np.zeros(constrained.shape, dtype=constrained.dtype) + + # Positive parameters: obs_cov, state_cov + offset = self.k_obs_cov + self.k_state_cov + unconstrained[:offset] = constrained[:offset]**0.5 + + # Cycle parameters + if self.cycle: + # Cycle frequency must be between between our bounds + low, high = self.cycle_frequency_bound + x = (constrained[offset] - low) / (high - low) + unconstrained[offset] = np.log( + x / (1 - x) + ) + offset += 1 + + # Cycle damping (if present) must be between 0 and 1 + if self.damped_cycle: + unconstrained[offset] = np.log( + constrained[offset] / (1 - constrained[offset]) + ) + offset += 1 + + # Autoregressive coefficients must be stationary + if self.autoregressive: + unconstrained[offset:offset + self.ar_order] = ( + unconstrain_stationary_univariate( + constrained[offset:offset + self.ar_order] + ) + ) + offset += self.ar_order + + # Nothing to do with betas + unconstrained[offset:offset + self.k_exog] = ( + constrained[offset:offset + self.k_exog] + ) + + return unconstrained + + def update(self, params, **kwargs): + params = super(UnobservedComponents, self).update(params, **kwargs) + + offset = 0 + + # Observation covariance + if self.irregular: + self.ssm['obs_cov', 0, 0] = params[offset] + offset += 1 + + # State covariance + if self.k_state_cov > 0: + variances = params[offset:offset+self.k_state_cov] + if self.stochastic_cycle and self.cycle: + if self.autoregressive: + variances = np.r_[variances[:-1], variances[-2:]] + else: + variances = np.r_[variances, variances[-1]] + self.ssm[self._idx_state_cov] = variances + offset += self.k_state_cov + + # Cycle transition + if self.cycle: + cos_freq = np.cos(params[offset]) + sin_freq = np.sin(params[offset]) + cycle_transition = np.array( + [[cos_freq, sin_freq], + [-sin_freq, cos_freq]] + ) + if self.damped_cycle: + offset += 1 + cycle_transition *= params[offset] + self.ssm[self._idx_cycle_transition] = cycle_transition + offset += 1 + + # AR transition + if self.autoregressive: + self.ssm[self._idx_ar_transition] = ( + params[offset:offset+self.ar_order] + ) + offset += self.ar_order + + # Beta observation intercept + if self.regression: + if self.mle_regression: + self.ssm['obs_intercept'] = np.dot( + self.exog, + params[offset:offset+self.k_exog] + )[None, :] + offset += self.k_exog + + # Initialize the state + self.initialize_state() + + +class UnobservedComponentsResults(MLEResults): + """ + Class to hold results from fitting an unobserved components model. + + Parameters + ---------- + model : UnobservedComponents instance + The fitted model instance + + Attributes + ---------- + specification : dictionary + Dictionary including all attributes from the unobserved components + model instance. + + See Also + -------- + statsmodels.tsa.statespace.kalman_filter.FilterResults + statsmodels.tsa.statespace.mlemodel.MLEResults + """ + + def __init__(self, model, params, filter_results, cov_type='opg', + **kwargs): + super(UnobservedComponentsResults, self).__init__( + model, params, filter_results, cov_type, **kwargs) + + self.df_resid = np.inf # attribute required for wald tests + + # Save _init_kwds + self._init_kwds = self.model._get_init_kwds() + + # Save the model specification + self.specification = Bunch(**{ + # Model options + 'level': self.model.level, + 'trend': self.model.trend, + 'seasonal_period': self.model.seasonal_period, + 'seasonal': self.model.seasonal, + 'cycle': self.model.cycle, + 'ar_order': self.model.ar_order, + 'autoregressive': self.model.autoregressive, + 'irregular': self.model.irregular, + 'stochastic_level': self.model.stochastic_level, + 'stochastic_trend': self.model.stochastic_trend, + 'stochastic_seasonal': self.model.stochastic_seasonal, + 'stochastic_cycle': self.model.stochastic_cycle, + + 'damped_cycle': self.model.damped_cycle, + 'regression': self.model.regression, + 'mle_regression': self.model.mle_regression, + 'k_exog': self.model.k_exog, + + # Check for string trend/level specification + 'trend_specification': self.model.trend_specification + }) + + @property + def level(self): + """ + Estimates of unobserved level component + + Returns + ------- + out: Bunch + Has the following attributes: + + - `filtered`: a time series array with the filtered estimate of + the component + - `filtered_cov`: a time series array with the filtered estimate of + the variance/covariance of the component + - `smoothed`: a time series array with the smoothed estimate of + the component + - `smoothed_cov`: a time series array with the smoothed estimate of + the variance/covariance of the component + - `offset`: an integer giving the offset in the state vector where + this component begins + """ + # If present, level is always the first component of the state vector + out = None + spec = self.specification + if spec.level: + offset = 0 + out = Bunch(filtered=self.filtered_state[offset], + filtered_cov=self.filtered_state_cov[offset, offset], + smoothed=None, smoothed_cov=None, + offset=offset) + if self.smoothed_state is not None: + out.smoothed = self.smoothed_state[offset] + if self.smoothed_state_cov is not None: + out.smoothed_cov = self.smoothed_state_cov[offset, offset] + return out + + @property + def trend(self): + """ + Estimates of of unobserved trend component + + Returns + ------- + out: Bunch + Has the following attributes: + + - `filtered`: a time series array with the filtered estimate of + the component + - `filtered_cov`: a time series array with the filtered estimate of + the variance/covariance of the component + - `smoothed`: a time series array with the smoothed estimate of + the component + - `smoothed_cov`: a time series array with the smoothed estimate of + the variance/covariance of the component + - `offset`: an integer giving the offset in the state vector where + this component begins + """ + # If present, trend is always the second component of the state vector + # (because level is always present if trend is present) + out = None + spec = self.specification + if spec.trend: + offset = int(spec.level) + out = Bunch(filtered=self.filtered_state[offset], + filtered_cov=self.filtered_state_cov[offset, offset], + smoothed=None, smoothed_cov=None, + offset=offset) + if self.smoothed_state is not None: + out.smoothed = self.smoothed_state[offset] + if self.smoothed_state_cov is not None: + out.smoothed_cov = self.smoothed_state_cov[offset, offset] + return out + + @property + def seasonal(self): + """ + Estimates of unobserved seasonal component + + Returns + ------- + out: Bunch + Has the following attributes: + + - `filtered`: a time series array with the filtered estimate of + the component + - `filtered_cov`: a time series array with the filtered estimate of + the variance/covariance of the component + - `smoothed`: a time series array with the smoothed estimate of + the component + - `smoothed_cov`: a time series array with the smoothed estimate of + the variance/covariance of the component + - `offset`: an integer giving the offset in the state vector where + this component begins + """ + # If present, seasonal always follows level/trend (if they are present) + # Note that we return only the first seasonal state, but there are + # in fact seasonal_period-1 seasonal states, however latter states + # are just lagged versions of the first seasonal state. + out = None + spec = self.specification + if spec.seasonal: + offset = int(spec.trend + spec.level) + out = Bunch(filtered=self.filtered_state[offset], + filtered_cov=self.filtered_state_cov[offset, offset], + smoothed=None, smoothed_cov=None, + offset=offset) + if self.smoothed_state is not None: + out.smoothed = self.smoothed_state[offset] + if self.smoothed_state_cov is not None: + out.smoothed_cov = self.smoothed_state_cov[offset, offset] + return out + + @property + def cycle(self): + """ + Estimates of unobserved cycle component + + Returns + ------- + out: Bunch + Has the following attributes: + + - `filtered`: a time series array with the filtered estimate of + the component + - `filtered_cov`: a time series array with the filtered estimate of + the variance/covariance of the component + - `smoothed`: a time series array with the smoothed estimate of + the component + - `smoothed_cov`: a time series array with the smoothed estimate of + the variance/covariance of the component + - `offset`: an integer giving the offset in the state vector where + this component begins + """ + # If present, cycle always follows level/trend and seasonal + # Note that we return only the first cyclical state, but there are + # in fact 2 cyclical states. The second cyclical state is not simply + # a lag of the first cyclical state, but the first cyclical state is + # the one that enters the measurement equation. + out = None + spec = self.specification + if spec.cycle: + offset = int(spec.trend + spec.level + + spec.seasonal * (spec.seasonal_period - 1)) + out = Bunch(filtered=self.filtered_state[offset], + filtered_cov=self.filtered_state_cov[offset, offset], + smoothed=None, smoothed_cov=None, + offset=offset) + if self.smoothed_state is not None: + out.smoothed = self.smoothed_state[offset] + if self.smoothed_state_cov is not None: + out.smoothed_cov = self.smoothed_state_cov[offset, offset] + return out + + @property + def autoregressive(self): + """ + Estimates of unobserved autoregressive component + + Returns + ------- + out: Bunch + Has the following attributes: + + - `filtered`: a time series array with the filtered estimate of + the component + - `filtered_cov`: a time series array with the filtered estimate of + the variance/covariance of the component + - `smoothed`: a time series array with the smoothed estimate of + the component + - `smoothed_cov`: a time series array with the smoothed estimate of + the variance/covariance of the component + - `offset`: an integer giving the offset in the state vector where + this component begins + """ + # If present, autoregressive always follows level/trend, seasonal, and + # cyclical. If it is an AR(p) model, then there are p associated + # states, but the second - pth states are just lags of the first state. + out = None + spec = self.specification + if spec.autoregressive: + offset = int(spec.trend + spec.level + + spec.seasonal * (spec.seasonal_period - 1) + + 2 * spec.cycle) + out = Bunch(filtered=self.filtered_state[offset], + filtered_cov=self.filtered_state_cov[offset, offset], + smoothed=None, smoothed_cov=None, + offset=offset) + if self.smoothed_state is not None: + out.smoothed = self.smoothed_state[offset] + if self.smoothed_state_cov is not None: + out.smoothed_cov = self.smoothed_state_cov[offset, offset] + return out + + @property + def regression_coefficients(self): + """ + Estimates of unobserved regression coefficients + + Returns + ------- + out: Bunch + Has the following attributes: + + - `filtered`: a time series array with the filtered estimate of + the component + - `filtered_cov`: a time series array with the filtered estimate of + the variance/covariance of the component + - `smoothed`: a time series array with the smoothed estimate of + the component + - `smoothed_cov`: a time series array with the smoothed estimate of + the variance/covariance of the component + - `offset`: an integer giving the offset in the state vector where + this component begins + """ + # If present, state-vector regression coefficients always are last + # (i.e. they follow level/trend, seasonal, cyclical, and + # autoregressive states). There is one state associated with each + # regressor, and all are returned here. + out = None + spec = self.specification + if spec.regression: + if spec.mle_regression: + import warnings + warnings.warn('Regression coefficients estimated via maximum' + ' likelihood. Estimated coefficients are' + ' available in the parameters list, not as part' + ' of the state vector.', OutputWarning) + else: + offset = int(spec.trend + spec.level + + spec.seasonal * (spec.seasonal_period - 1) + + spec.cycle * (1 + spec.stochastic_cycle) + + spec.ar_order) + start = offset + end = offset + spec.k_exog + out = Bunch( + filtered=self.filtered_state[start:end], + filtered_cov=self.filtered_state_cov[start:end, start:end], + smoothed=None, smoothed_cov=None, + offset=offset + ) + if self.smoothed_state is not None: + out.smoothed = self.smoothed_state[start:end] + if self.smoothed_state_cov is not None: + out.smoothed_cov = ( + self.smoothed_state_cov[start:end, start:end]) + return out + + def plot_components(self, which=None, alpha=0.05, + observed=True, level=True, trend=True, + seasonal=True, cycle=True, autoregressive=True, + legend_loc='upper right', fig=None, figsize=None): + """ + Plot the estimated components of the model. + + Parameters + ---------- + which : {'filtered', 'smoothed'}, or None, optional + Type of state estimate to plot. Default is 'smoothed' if smoothed + results are available otherwise 'filtered'. + alpha : float, optional + The confidence intervals for the components are (1 - alpha) % + level : boolean, optional + Whether or not to plot the level component, if applicable. + Default is True. + trend : boolean, optional + Whether or not to plot the trend component, if applicable. + Default is True. + seasonal : boolean, optional + Whether or not to plot the seasonal component, if applicable. + Default is True. + cycle : boolean, optional + Whether or not to plot the cyclical component, if applicable. + Default is True. + autoregressive : boolean, optional + Whether or not to plot the autoregressive state, if applicable. + Default is True. + fig : Matplotlib Figure instance, optional + If given, subplots are created in this figure instead of in a new + figure. Note that the grid will be created in the provided + figure using `fig.add_subplot()`. + figsize : tuple, optional + If a figure is created, this argument allows specifying a size. + The tuple is (width, height). + + Notes + ----- + If all options are included in the model and selected, this produces + a 6x1 plot grid with the following plots (ordered top-to-bottom): + + 0. Observed series against predicted series + 1. Level + 2. Trend + 3. Seasonal + 4. Cycle + 5. Autoregressive + + Specific subplots will be removed if the component is not present in + the estimated model or if the corresponding keywork argument is set to + False. + + All plots contain (1 - `alpha`) % confidence intervals. + """ + from scipy.stats import norm + from statsmodels.graphics.utils import _import_mpl, create_mpl_fig + plt = _import_mpl() + fig = create_mpl_fig(fig, figsize) + + # Determine which results we have + if which is None: + which = 'filtered' if self.smoothed_state is None else 'smoothed' + + # Determine which plots we have + spec = self.specification + components = OrderedDict([ + ('level', level and spec.level), + ('trend', trend and spec.trend), + ('seasonal', seasonal and spec.seasonal), + ('cycle', cycle and spec.cycle), + ('autoregressive', autoregressive and spec.autoregressive), + ]) + + llb = self.filter_results.loglikelihood_burn + + # Number of plots + k_plots = observed + np.sum(list(components.values())) + + # Get dates, if applicable + if hasattr(self.data, 'dates') and self.data.dates is not None: + dates = self.data.dates._mpl_repr() + else: + dates = np.arange(len(self.data.endog)) + + # Get the critical value for confidence intervals + critical_value = norm.ppf(1 - alpha / 2.) + + plot_idx = 1 + + # Observed, predicted, confidence intervals + if observed: + ax = fig.add_subplot(k_plots, 1, plot_idx) + plot_idx += 1 + + # Plot the observed dataset + ax.plot(dates[llb:], self.model.endog[llb:], color='k', + label='Observed') + + # Get the predicted values and confidence intervals + predict = self.filter_results.forecasts[0] + std_errors = np.sqrt(self.filter_results.forecasts_error_cov[0, 0]) + ci_lower = predict - critical_value * std_errors + ci_upper = predict + critical_value * std_errors + + # Plot + ax.plot(dates[llb:], predict[llb:], + label='One-step-ahead predictions') + ci_poly = ax.fill_between( + dates[llb:], ci_lower[llb:], ci_upper[llb:], alpha=0.2 + ) + ci_label = '$%.3g \\%%$ confidence interval' % ((1 - alpha) * 100) + + # Proxy artist for fill_between legend entry + # See e.g. http://matplotlib.org/1.3.1/users/legend_guide.html + p = plt.Rectangle((0, 0), 1, 1, fc=ci_poly.get_facecolor()[0]) + + # Legend + handles, labels = ax.get_legend_handles_labels() + handles.append(p) + labels.append(ci_label) + ax.legend(handles, labels, loc=legend_loc) + + ax.set_title('Predicted vs observed') + + # Plot each component + for component, is_plotted in components.items(): + if not is_plotted: + continue + + ax = fig.add_subplot(k_plots, 1, plot_idx) + plot_idx += 1 + + component_bunch = getattr(self, component) + + # Check for a valid estimation type + if which not in component_bunch: + raise ValueError('Invalid type of state estimate.') + + which_cov = '%s_cov' % which + + # Get the predicted values + value = component_bunch[which] + + # Plot + state_label = '%s (%s)' % (component.title(), which) + ax.plot(dates[llb:], value[llb:], label=state_label) + + # Get confidence intervals + if which_cov in component_bunch: + std_errors = np.sqrt(component_bunch['%s_cov' % which]) + ci_lower = value - critical_value * std_errors + ci_upper = value + critical_value * std_errors + ci_poly = ax.fill_between( + dates[llb:], ci_lower[llb:], ci_upper[llb:], alpha=0.2 + ) + ci_label = ('$%.3g \\%%$ confidence interval' + % ((1 - alpha)*100)) + + # Legend + ax.legend(loc=legend_loc) + + ax.set_title('%s component' % component.title()) + + # Add a note if first observations excluded + if llb > 0: + text = ('Note: The first %d observations are not shown, due to' + ' approximate diffuse initialization.') + fig.text(0.1, 0.01, text % llb, fontsize='large') + + return fig + + def get_prediction(self, start=None, end=None, dynamic=False, exog=None, + **kwargs): + """ + In-sample prediction and out-of-sample forecasting + + Parameters + ---------- + start : int, str, or datetime, optional + Zero-indexed observation number at which to start forecasting, ie., + the first forecast is start. Can also be a date string to + parse or a datetime type. Default is the the zeroth observation. + end : int, str, or datetime, optional + Zero-indexed observation number at which to end forecasting, ie., + the first forecast is start. Can also be a date string to + parse or a datetime type. However, if the dates index does not + have a fixed frequency, end must be an integer index if you + want out of sample prediction. Default is the last observation in + the sample. + exog : array_like, optional + If the model includes exogenous regressors, you must provide + exactly enough out-of-sample values for the exogenous variables if + end is beyond the last observation in the sample. + dynamic : boolean, int, str, or datetime, optional + Integer offset relative to `start` at which to begin dynamic + prediction. Can also be an absolute date string to parse or a + datetime type (these are not interpreted as offsets). + Prior to this observation, true endogenous values will be used for + prediction; starting with this observation and continuing through + the end of prediction, forecasted endogenous values will be used + instead. + full_results : boolean, optional + If True, returns a FilterResults instance; if False returns a + tuple with forecasts, the forecast errors, and the forecast error + covariance matrices. Default is False. + **kwargs + Additional arguments may required for forecasting beyond the end + of the sample. See `FilterResults.predict` for more details. + + Returns + ------- + forecast : array + Array of out of sample forecasts. + """ + if start is None: + start = 0 + + # Handle end (e.g. date) + _start = self.model._get_predict_start(start) + _end, _out_of_sample = self.model._get_predict_end(end) + + # Handle exogenous parameters + if _out_of_sample and self.model.k_exog > 0: + # Create a new faux model for the extended dataset + nobs = self.model.data.orig_endog.shape[0] + _out_of_sample + endog = np.zeros((nobs, self.model.k_endog)) + + if self.model.k_exog > 0: + if exog is None: + raise ValueError('Out-of-sample forecasting in a model' + ' with a regression component requires' + ' additional exogenous values via the' + ' `exog` argument.') + exog = np.array(exog) + required_exog_shape = (_out_of_sample, self.model.k_exog) + if not exog.shape == required_exog_shape: + raise ValueError('Provided exogenous values are not of the' + ' appropriate shape. Required %s, got %s.' + % (str(required_exog_shape), + str(exog.shape))) + exog = np.c_[self.model.data.orig_exog.T, exog.T].T + + model_kwargs = self._init_kwds.copy() + model_kwargs['exog'] = exog + model = UnobservedComponents(endog, **model_kwargs) + model.update(self.params) + + # Set the kwargs with the update time-varying state space + # representation matrices + for name in self.filter_results.shapes.keys(): + if name == 'obs': + continue + mat = getattr(model.ssm, name) + if mat.shape[-1] > 1: + if len(mat.shape) == 2: + kwargs[name] = mat[:, -_out_of_sample:] + else: + kwargs[name] = mat[:, :, -_out_of_sample:] + elif self.model.k_exog == 0 and exog is not None: + # TODO: UserWarning + warn('Exogenous array provided to predict, but additional data not' + ' required. `exog` argument ignored.', ValueWarning) + + return super(UnobservedComponentsResults, self).get_prediction( + start=start, end=end, dynamic=dynamic, exog=exog, **kwargs + ) + + def summary(self, alpha=.05, start=None): + # Create the model name + + model_name = [self.specification.trend_specification] + + if self.specification.seasonal: + seasonal_name = 'seasonal(%d)' % self.specification.seasonal_period + if self.specification.stochastic_seasonal: + seasonal_name = 'stochastic ' + seasonal_name + model_name.append(seasonal_name) + + if self.specification.cycle: + cycle_name = 'cycle' + if self.specification.stochastic_cycle: + cycle_name = 'stochastic ' + cycle_name + if self.specification.damped_cycle: + cycle_name = 'damped ' + cycle_name + model_name.append(cycle_name) + + if self.specification.autoregressive: + autoregressive_name = 'AR(%d)' % self.specification.ar_order + model_name.append(autoregressive_name) + + return super(UnobservedComponentsResults, self).summary( + alpha=alpha, start=start, title='Unobserved Components Results', + model_name=model_name + ) + summary.__doc__ = MLEResults.summary.__doc__ + + +class UnobservedComponentsResultsWrapper(MLEResultsWrapper): + _attrs = {} + _wrap_attrs = wrap.union_dicts(MLEResultsWrapper._wrap_attrs, + _attrs) + _methods = {} + _wrap_methods = wrap.union_dicts(MLEResultsWrapper._wrap_methods, + _methods) +wrap.populate_wrapper(UnobservedComponentsResultsWrapper, + UnobservedComponentsResults) diff --git a/statsmodels/tsa/statespace/tests/__init__.py b/statsmodels/tsa/statespace/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/tsa/statespace/tests/results/__init__.py b/statsmodels/tsa/statespace/tests/results/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/tsa/statespace/tests/results/clark1989.csv b/statsmodels/tsa/statespace/tests/results/clark1989.csv new file mode 100644 index 0000000..2e75f89 --- /dev/null +++ b/statsmodels/tsa/statespace/tests/results/clark1989.csv @@ -0,0 +1,195 @@ +1239.5, 0 +1247.199951, 0 +1255, 0 +1269.5, 0 +1284, 3.733333349 +1295.699951, 3.666666667 +1303.800049, 3.766666651 +1316.400024, 3.833333333 +1305.300049, 4.666666667 +1302, 5.866666635 +1312.599976, 6.699999968 +1301.900024, 6.966666698 +1350.900024, 6.400000095 +1393.5, 5.566666762 +1445.199951, 4.633333365 +1484.5, 4.23333327 +1504.099976, 3.500000079 +1548.300049, 3.099999984 +1585.400024, 3.166666587 +1596, 3.366666635 +1607.699951, 3.066666683 +1612.099976, 2.966666698 +1621.900024, 3.233333349 +1657.800049, 2.833333333 +1687.300049, 2.699999968 +1695.300049, 2.566666683 +1687.900024, 2.733333349 +1671.199951, 3.699999968 +1660.800049, 5.266666571 +1658.400024, 5.800000032 +1677.699951, 5.966666698 +1698.300049, 5.333333333 +1742.5, 4.73333327 +1758.599976, 4.399999936 +1778.199951, 4.099999905 +1793.900024, 4.23333327 +1787, 4.033333302 +1798.5, 4.200000127 +1802.199951, 4.133333365 +1826.599976, 4.133333365 +1836.400024, 3.933333317 +1834.800049, 4.100000064 +1851.199951, 4.23333327 +1830.5, 4.933333238 +1790.099976, 6.300000032 +1804.400024, 7.366666794 +1840.900024, 7.333333333 +1880.900024, 6.366666476 +1904.900024, 5.833333333 +1937.5, 5.099999905 +1930.800049, 5.266666571 +1941.900024, 5.600000064 +1976.900024, 5.133333365 +1971.699951, 5.23333327 +1973.699951, 5.533333302 +1961.099976, 6.266666571 +1977.400024, 6.800000032 +2006, 7 +2035.199951, 6.766666571 +2076.5, 6.199999968 +2103.800049, 5.633333365 +2125.699951, 5.533333302 +2142.600098, 5.566666603 +2140.199951, 5.533333302 +2170.899902, 5.766666571 +2199.5, 5.73333327 +2237.600098, 5.5 +2254.5, 5.566666603 +2311.100098, 5.466666698 +2329.899902, 5.199999968 +2357.399902, 5 +2364, 4.966666698 +2410.100098, 4.899999936 +2442.800049, 4.666666667 +2485.5, 4.366666794 +2543.800049, 4.099999905 +2596.800049, 3.866666635 +2601.399902, 3.833333333 +2626.100098, 3.766666651 +2640.5, 3.699999968 +2657.199951, 3.833333333 +2669, 3.833333333 +2699.5, 3.799999952 +2715.100098, 3.900000016 +2752.100098, 3.733333349 +2796.899902, 3.566666683 +2816.800049, 3.533333381 +2821.699951, 3.400000095 +2864.600098, 3.400000095 +2867.800049, 3.433333397 +2884.5, 3.566666683 +2875.100098, 3.566666683 +2867.800049, 4.166666667 +2859.5, 4.76666673 +2895, 5.166666667 +2873.300049, 5.833333333 +2939.899902, 5.933333397 +2944.199951, 5.900000095 +2962.300049, 6.033333302 +2977.300049, 5.933333397 +3037.300049, 5.76666673 +3089.699951, 5.699999809 +3125.800049, 5.566666603 +3175.5, 5.366666635 +3253.300049, 4.933333397 +3267.600098, 4.933333397 +3264.300049, 4.800000191 +3289.100098, 4.76666673 +3259.399902, 5.133333206 +3267.600098, 5.199999968 +3239.100098, 5.633333365 +3226.399902, 6.599999905 +3154, 8.266667048 +3190.399902, 8.866666794 +3249.899902, 8.46666654 +3292.5, 8.299999873 +3356.699951, 7.73333327 +3369.199951, 7.566666603 +3381, 7.733333429 +3416.300049, 7.76666673 +3466.399902, 7.5 +3525, 7.133333206 +3574.399902, 6.900000095 +3567.199951, 6.666666826 +3591.800049, 6.333333492 +3707, 6 +3735.600098, 6.033333302 +3779.600098, 5.900000095 +3780.800049, 5.866666794 +3784.300049, 5.699999968 +3807.5, 5.866666635 +3814.600098, 5.966666698 +3830.800049, 6.300000191 +3732.600098, 7.333333333 +3733.5, 7.666666667 +3808.5, 7.399999936 +3860.5, 7.433333397 +3844.399902, 7.399999936 +3864.5, 7.399999936 +3803.100098, 8.233333429 +3756.100098, 8.833333333 +3771.100098, 9.433333397 +3754.399902, 9.900000254 +3759.600098, 10.66666667 +3783.5, 10.36666648 +3886.5, 10.13333352 +3944.399902, 9.366666476 +4012.100098, 8.53333346 +4089.5, 7.866666794 +4144, 7.433333238 +4166.399902, 7.433333397 +4194.200195, 7.300000032 +4221.799805, 7.23333327 +4254.799805, 7.300000032 +4309, 7.199999968 +4333.5, 7.033333302 +4390.5, 7.033333143 +4387.700195, 7.166666508 +4412.600098, 6.966666698 +4427.100098, 6.833333333 +4460, 6.599999905 +4515.299805, 6.26666673 +4559.299805, 6 +4625.5, 5.833333333 +4655.299805, 5.699999809 +4704.799805, 5.466666698 +4734.5, 5.466666698 +4779.700195, 5.333333492 +4817.600098, 5.199999968 +4839, 5.23333327 +4839, 5.23333327 +4856.700195, 5.366666794 +4898.299805, 5.300000032 +4917.100098, 5.333333333 +4906.5, 5.699999968 +4867.200195, 6.133333365 +4842, 6.600000064 +4867.899902, 6.833333333 +4879.899902, 6.866666794 +4880.799805, 7.100000064 +4918.5, 7.366666794 +4947.5, 7.600000064 +4990.5, 7.633333206 +5060.700195, 7.366666794 +5075.299805, 7.133333365 +5105.399902, 7.066666603 +5139.399902, 6.800000032 +5218, 6.633333365 +5261.100098, 6.633333206 +5314.100098, 6.199999968 +5367, 6 +5433.799805, 5.566666603 +5470.100098, 5.533333302 +5487.799805, 5.633333206 +5544.600098, 5.633333206 \ No newline at end of file diff --git a/statsmodels/tsa/statespace/tests/results/example_ssm_wpi1.m b/statsmodels/tsa/statespace/tests/results/example_ssm_wpi1.m new file mode 100644 index 0000000..7e14fcb --- /dev/null +++ b/statsmodels/tsa/statespace/tests/results/example_ssm_wpi1.m @@ -0,0 +1,53 @@ +% Load the dataset +data = csvread('results_wpi1_ar3_stata.csv', 1, 0); + +% First differences +dwpi1 = diff(data(:,1)); + +% Parameters +ar = [.5270715, .0952613, .2580355]; +sigma2 = .5307459; + +% Create the state space representation +[nobs, k_endog] = size(dwpi1); +k_states = 3; +k_posdef = 1; + +obs = dwpi1'; +obs_intercept = [0]; +design = [1, 0, 0]; +obs_cov = [0]; + +state_intercept = [0; 0]; +transition = [ar; 1, 0, 0; 0, 1, 0]; +selection = [1; 0; 0]; +state_cov = [sigma2]; +selected_state_cov = selection * state_cov * selection'; + +initial_state = [0; 0]; +initial_state_cov = dlyap(conj(transition), selected_state_cov); + +mod = ssmodel('test', ssmat(obs_cov), ssmat(design), ssmat(transition),ssmat(selection),ssmat(state_cov)); +mod.P1 = initial_state_cov; + +% Optionally add missing values +% obs(10:20) = nan; + +% Estimate +[a, P] = kalman(dwpi1', mod); +[alphahat, V] = statesmo(dwpi1', mod); +[eps, eta, epsvar, etavar] = disturbsmo(dwpi1', mod); +% Note: simsmo seems to always crashes MATLAB +%[alphatilde, epstilde, etatilde] = simsmo(dwpi1', mod); + +% Calculate determinants of variance matrices (so that we can compare +% in unit tests) +detP = zeros(1,nobs); +detV = zeros(1,nobs); +for i = 1:nobs+1; + detP(i) = det(P(:,:,i)); + detV(i) = det(V(:,:,i)); +end; + +% Write output +csvwrite('results_wpi1_ar3_matlab_ssm.csv', [a(:,1:end-1) detP(:,1:end-1) alphahat detV eps epsvar eta etavar]); diff --git a/statsmodels/tsa/statespace/tests/results/manufac.dta b/statsmodels/tsa/statespace/tests/results/manufac.dta new file mode 100644 index 0000000000000000000000000000000000000000..d7223da2df9976db77f3a983dde660a858b7f77a GIT binary patch literal 19146 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 literal 0 HcmV?d00001 diff --git a/statsmodels/tsa/statespace/tests/results/results_clark1989_R.csv b/statsmodels/tsa/statespace/tests/results/results_clark1989_R.csv new file mode 100644 index 0000000..b48c796 --- /dev/null +++ b/statsmodels/tsa/statespace/tests/results/results_clark1989_R.csv @@ -0,0 +1,192 @@ +"V1","V2","V3","V4","V5","V6","V7" +3.05311586143239,5.89006643844833,3.64888781556215,3.23102452528435,1.9313118012054,1.96335547948278,1.37829447872922 +-3.5955999803748,4.91254999866502,2.14875076080577,2.42122408272305,2.57911998291172,0.166967750570698,1.45324116499101 +59.846257705582,7.15634059073761,0.0226689604782068,0.0263715297371735,0.0295115986864592,0.00967372640189428,0.0535654431742735 +26.485659017569,7.17949194878965,0.0114474848334981,0.0128473998896558,0.0135965599577913,0.0096833133785767,0.0460620550936838 +15.3882756335756,7.13501121631195,0.0367890878107785,0.0500558534180361,0.0680745718524389,0.0108788537959797,0.0797790940978318 +11.274281167952,7.13461810536652,0.0361332752840362,0.0501726332526735,0.0696668306714096,0.0131339158506836,0.0933838220437774 +8.71844789943065,7.16147182647851,0.0248955579468675,0.0323888645008597,0.0419392495635247,0.0140955272240702,0.089181233928414 +6.93846048629586,7.15970027916565,0.0165513187253069,0.0230063762073781,0.0319789402917848,0.0111266220350792,0.0855583922312727 +5.68782795321106,7.2170043649546,0.0124281548587174,0.00330602030925753,-0.0148287002947952,0.011784051522291,0.0620951436479374 +4.76095145253026,7.24177501771359,0.017573680346687,0.00987608853578487,-0.00650586727483833,0.0120772593273701,0.0561076729924106 +4.04420559034012,7.27332936898265,0.0233527031514802,0.0156625275107381,-0.00158633841299525,0.0129889311252455,0.0500109326303647 +3.47489296260815,7.29356071470478,0.0249759109483025,0.0234019195058055,0.0167957254917598,0.0141293400067671,0.0529741558023842 +3.01268551868752,7.30357003362293,0.0266229550975249,0.0253472254130622,0.0190212509242677,0.0129672833312086,0.0474659001456482 +2.63043866260206,7.33165856582715,0.029612539211467,0.0269672810634832,0.0177475606243886,0.0137129814202304,0.0437721867406596 +2.30947228972778,7.35505848902487,0.0266736542099829,0.02843162046247,0.0274994262901354,0.0148980739461444,0.0471091148821796 +2.03649577246723,7.36451636531048,0.0199954912366055,0.0255634379668718,0.0324319703666643,0.0148240252675994,0.0498832345954165 +1.80178248873188,7.37306051518617,0.0219475081269743,0.0232126312533336,0.0221226959957459,0.0137133117489171,0.0440996063104422 +1.59805587955087,7.37550763454485,0.0193547312222044,0.0226178134653052,0.0254801145198432,0.0128325070156189,0.0431865276061741 +1.41976631927749,7.38579760022282,0.013773806886505,0.0183521508822431,0.0244062233176091,0.0127961558139564,0.0444879584473296 +1.2626083691305,7.40621432783572,0.0227002346013343,0.0196678527061048,0.0108115651268224,0.0126354498271514,0.0378334930103073 +1.12319145011097,7.42159235671843,0.0218510724686383,0.0221558991178462,0.0193708407536051,0.0128633295915056,0.0383968556039018 +0.998809792274693,7.42633578561684,0.0184850316009947,0.0216493371293716,0.0244682167050612,0.0123700985388656,0.0385200009414589 +0.887278360363255,7.42567852533859,0.0113652613992727,0.0172216792318708,0.025918173365877,0.0116597586567288,0.0394543568066188 +0.78681372331025,7.42847812331328,-0.00586917845166284,0.00440102009164559,0.0235809734439601,0.0115819624828229,0.0447581296726012 +0.695946144915452,7.44203816561855,-0.0256423289454414,-0.0147537578538987,0.00853855530098726,0.0122296852892283,0.0512119270276379 +0.613453753020942,7.44737032115595,-0.0242682134322072,-0.0221290855690234,-0.0146244436474465,0.0116326599935814,0.0487314339932781 +0.538312581693835,7.45876126064717,-0.019833567410687,-0.0220729439629558,-0.0230396108216929,0.0115092591145121,0.0473189055560321 +0.469658196814173,7.4616397569477,-0.00788189027746566,-0.0135333890386993,-0.0223955233717962,0.010723309345898,0.043350712229921 +0.406755890536413,7.4782427093985,0.0023872189634805,-0.00426348160890113,-0.0164686277554038,0.0109030851549162,0.0413392731883956 +0.348977294359936,7.48312342061112,0.00064428911809669,-0.000183662007138751,-0.00175595242410666,0.0106664553063006,0.0426736474094064 +0.295781855811861,7.4913500360067,0.00363352639426478,0.00246874620879177,-0.000158514038402786,0.0104619140844113,0.0416592889979983 +0.246702039859934,7.50206056040116,-0.000772999039515797,0.000667098259600898,0.00334891797171362,0.0105803455770489,0.0431908039991471 +0.201331411089488,7.49668230615359,-0.00040850007855489,0.0012466675697805,0.00425590919289391,0.00963545856394214,0.0419216522686671 +0.159314964381904,7.50542907915846,-0.00246940443837749,-0.00111162154442264,0.00168199078208013,0.00960919447836092,0.0422457991728365 +0.120341225599874,7.50676176056618,-0.0016039986339907,-0.00088627730316243,0.000635907435341688,0.0091120906510758,0.0413665617482811 +0.0841357567167695,7.51974256417051,0.000810198548187624,-0.000249069971667919,-0.00225848858921185,0.00928191308042661,0.0408140078791957 +0.0504557836190642,7.52239214716679,0.00235090639569873,0.00206135579059925,0.00118777975994559,0.00889107751327666,0.0401478425421737 +0.0190857275903788,7.52464888976921,-0.00433200170447251,-0.00132432697012175,0.00469058470679488,0.00863377337016533,0.0416316864054893 +-0.0101665310586732,7.53548210318306,-0.00343881343845744,-0.00317150556756751,-0.00217185027781924,0.00872126764539798,0.0411756424404386 +-0.0374727925642454,7.53450664892668,-0.0205730440615201,-0.0137025157704056,0.00166363906833857,0.00845970059598372,0.0452828183488797 +-0.0629871880258809,7.53268879066276,-0.0453579843995839,-0.034415952035778,-0.00802586089578554,0.00824608883791264,0.0507604691354042 +-0.0868484264672511,7.55295090055158,-0.0469027366696696,-0.0460717769611642,-0.0374492127697782,0.00889570475535495,0.0512404180447016 +-0.109181707843348,7.56746859477766,-0.0328581245805268,-0.0404129567207658,-0.048860231410651,0.00904576356727686,0.0487737404149318 +-0.130100358001978,7.57208612594867,-0.0132736345894711,-0.023960387005654,-0.0409666661248252,0.00862006150640749,0.04525268021638 +-0.149707231181235,7.5770040986864,-0.0118990778506457,-0.0163279952362057,-0.0224015246213312,0.00849129810645438,0.046362150640831 +-0.168095917329879,7.58400531177602,-0.000669229434010696,-0.00654855054406899,-0.0169147731248133,0.00830300000445144,0.0443216683336055 +-0.185351784905471,7.58426249524471,-0.0137190263594344,-0.0104902499327705,-0.00265207203794051,0.00808251614751724,0.0478544647412047 +-0.201552884466669,7.5955281829213,-0.0170776810412131,-0.0158167532832912,-0.0109708284248612,0.00828926305940958,0.0486742443816067 +-0.216770734064811,7.60447623122146,-0.000999666437106748,-0.00706113078284577,-0.0177013359409093,0.00812984809650163,0.045040676835907 +-0.231071003928823,7.60353211680739,-0.0113394443664875,-0.00906779572440281,-0.00329618347010668,0.00781295216241788,0.0478107929272704 +-0.244514115077603,7.61003982057545,-0.016720693614219,-0.014569088764484,-0.00819167890735153,0.00780552387737454,0.0489428797104331 +-0.257155764142161,7.61415711174409,-0.0298170728387057,-0.0251276299675863,-0.0122370852582976,0.0077686747277431,0.0518587166774857 +-0.269047384745076,7.6284271983984,-0.0304409606762036,-0.0307681297394627,-0.0267146575290935,0.00812092705875164,0.0522841099600888 +-0.280236554183521,7.64282595077135,-0.0270687406702416,-0.0304830457402648,-0.0324397964789198,0.00844493650920496,0.0523868387552935 +-0.290767352830989,7.65196410625081,-0.0201884393980875,-0.0251672756570643,-0.0309575107307103,0.00844748152419819,0.0517410802937378 +-0.300680682564407,7.66231518361393,-0.00851823922744579,-0.0154128184768143,-0.026391347459077,0.00846330206630818,0.0501328325478718 +-0.310014549594994,7.66700201035792,-0.00288738278707351,-0.00725347568355476,-0.0145875794553989,0.00824799907800862,0.0496518428107296 +-0.318804316301978,7.67685912351917,-0.00581278330137218,-0.00660989292454924,-0.00714389199716869,0.00839281476677372,0.0509308466199465 +-0.327082926012094,7.68584771764775,-0.00759226641346476,-0.00761913444056465,-0.0065107109819325,0.0084532136399064,0.0515453397095943 +-0.33488110411327,7.68461350986917,-0.00893468053683636,-0.00799529471508684,-0.00496201182357513,0.00796367645623853,0.0515536928610765 +-0.342227538421293,7.7014871201578,-0.0093160798372043,-0.0101507200319795,-0.0102180088205129,0.00843933817367703,0.0520724931557307 +-0.349149041319125,7.71307221526828,-0.006480018357857,-0.00849972221691119,-0.011108936335938,0.00858715226259051,0.0518426122234561 +-0.355670695847903,7.72594217355174,-0.000609559008751368,-0.0040160176359298,-0.00998839124079919,0.00876697023113929,0.0510855011807255 +-0.36181598763981,7.73493044337321,-0.0059856364599198,-0.00539344433447352,-0.00342746431614844,0.00885350117759763,0.0526561345252551 +-0.367606924332841,7.75747989991486,0.00133942354219691,-0.0025025012882949,-0.00954704305406045,0.0094984755731902,0.0516877777209457 +-0.37306414389558,7.76158449018137,0.00229184866310906,0.00122113464959747,-0.0010343101704623,0.00922503970906906,0.0516605336591928 +-0.378207013106668,7.7709862504679,0.00457533785407686,0.00354314362080804,0.00100852001388014,0.0092148398674576,0.0512571811554138 +-0.383053717275459,7.77417188365411,0.00134223234721363,0.00287189382063033,0.00539104416287091,0.00893339894875469,0.0517353891914012 +-0.387621342154746,7.79203258750868,0.00678881918993232,0.00472808490997854,2.50422426504599e-05,0.00933711235665684,0.0507507581540481 +-0.391925948878311,7.80174297410661,0.00992964816670736,0.00848780340094014,0.00440836307169925,0.00933055609961753,0.0502097036233239 +-0.395982642655284,7.81489990116163,0.0147642871392182,0.0128115330296111,0.00708612766479499,0.00948230865651565,0.0493314547227213 +-0.399805635862787,7.83418416651968,0.0196081138457205,0.0171756307792267,0.0098583778752134,0.00994547301900224,0.0486741359344262 +-0.403408306104203,7.85199286076645,0.0215763177098188,0.0203766668905128,0.0149547271610193,0.0103343120272572,0.04851892502575 +-0.406803249731788,7.85550965067692,0.0146633944480095,0.0183305825906793,0.0226268607731493,0.01003523030998,0.0494734667520653 +-0.410002331275037,7.86497324029229,0.0169010705448475,0.0182357078385327,0.0180380884536414,0.0099537759442902,0.0483340942643002 +-0.413016729164984,7.86989446627083,0.0165834412035452,0.0185035576553771,0.0193967583209867,0.00967445177921586,0.0477709050500478 +-0.415856978101298,7.87909419661928,0.012737007782762,0.0155986326242145,0.0187539822841921,0.00966463189287253,0.0480767876628141 +-0.418533008368845,7.88415482210439,0.012567330938021,0.0147064124173643,0.0166011131004477,0.00940208511723209,0.04740525060826 +-0.421054182377984,7.89495652890651,0.0147698982084443,0.0152991219330323,0.0139920283989613,0.00943380118119982,0.0465603961157404 +-0.4234293286715,7.90288331476524,0.0105865927562005,0.0130822791815552,0.015913571618027,0.00938149375009737,0.0470746157924251 +-0.425666773617051,7.91400605625889,0.016102789728023,0.0155128655379664,0.0120101346313482,0.00939935058532955,0.0455469818105297 +-0.427774370978643,7.92751901690853,0.0190512630063106,0.0183244340244389,0.0141289069781824,0.00957654600100184,0.044894478430364 +-0.429759529542155,7.93544033177844,0.0152632815008156,0.0174320100458722,0.018968918370412,0.00951555658783972,0.04538384445102 +-0.431629238951913,7.93659246754525,0.0152146465044574,0.0175605979483976,0.0194204588423087,0.00905826368062897,0.0445772788102649 +-0.433390093898616,7.95163464571889,0.0176320477485079,0.017873760478783,0.0156188628171758,0.0093243686411985,0.0438095370826407 +-0.435048316786227,7.95431659510707,0.0127283008191972,0.0159942376060608,0.0198707914966723,0.0090103513459242,0.044251205834416 +-0.43660977899221,7.96299547466522,0.0105463974954681,0.0130996686778587,0.0160396124120582,0.00898828964613086,0.0441320127839574 +-0.438080020825579,7.96043550801873,0.0086432279783107,0.0117919760657877,0.0160820102441524,0.00838471476350112,0.0436247935560906 +-0.439464270276435,7.96781778576723,-0.00390762494149302,0.00191111287337866,0.0128664975018735,0.0084284172734033,0.0457089918613708 +-0.440767460642761,7.97402075570588,-0.0119459608583046,-0.00725623465868079,0.00291313865046912,0.00836245769183101,0.0467271650351511 +-0.441994247113102,7.99037259611001,-0.0107098307605022,-0.010879371879782,-0.00955018957262654,0.00875283422313737,0.0464773479204238 +-0.443149022375183,7.99274390231154,-0.0260410763661642,-0.0209551293436902,-0.00793367251925568,0.00857228192002571,0.0495926503813462 +-0.444235931316859,8.01474672428534,-0.0148561473474052,-0.0194543135297887,-0.0253788446773941,0.0091615979412069,0.0476854458088896 +-0.445258884878085,8.01445570501153,-0.0175517513622147,-0.0181354314270826,-0.0165016359857206,0.00872787790342549,0.0486066659951319 +-0.446221573109157,8.02279134031007,-0.0200784104518362,-0.0203235074975531,-0.0177020675107874,0.00874654365539427,0.0494614237767354 +-0.447127477485767,8.02555388510661,-0.0166368661609397,-0.0183624719512018,-0.0189012096665725,0.00841926816913121,0.0488701796485755 +-0.447979882526911,8.04130659997515,-0.0091946350069519,-0.0138301810060974,-0.0206834853863367,0.00875216097668585,0.0480748354072207 +-0.448781886759079,8.05674984301233,-0.009027967682225,-0.0117931629382835,-0.0153416867306943,0.00912741813332422,0.0489452062506648 +-0.449536413065924,8.06662475090145,-0.0082389217472002,-0.0100004286664358,-0.0118820509447465,0.00917877715093565,0.04925328099161 +-0.450246218460869,8.07899092876585,-0.00355581574282757,-0.00645486361373738,-0.0110750920557397,0.00931568590908938,0.0487335067585142 +-0.450913903316346,8.09568790900513,0.00662986018454369,0.00135919295047495,-0.00903493297625548,0.00962194210908022,0.0472881251951839 +-0.451541920081621,8.10148464182581,-0.00186963431185949,-0.000151894569652166,0.00319127980692052,0.00952166779701051,0.0493445629982003 +-0.452132581518942,8.10003632269661,-0.00178756123130804,-0.000291802571608071,0.00264363475906411,0.00894388148905711,0.0487496946142196 +-0.45268806848566,8.10669752499024,0.000640891520287884,0.000468844728204895,6.49106898352206e-05,0.00879708981797652,0.0480310417372902 +-0.453210437287869,8.10425482983935,-0.011797435709635,-0.00662888853889537,0.00437040684686561,0.00832756302544841,0.0501635704248348 +-0.453701626630248,8.10746580563564,-0.00803514066941179,-0.007643630443149,-0.00572283628206834,0.00801109573334696,0.04883262701621 +-0.454163464184113,8.10506173580548,-0.0186679812136187,-0.014439544693591,-0.00406777039754607,0.00757136843536483,0.0507055299913916 +-0.454597672795573,8.11571930839324,-0.0340334223056019,-0.0287310237926095,-0.0141069826380901,0.0078660714158834,0.0538371588249519 +-0.455005876353121,8.11812604453887,-0.0645448852219932,-0.0538378055870262,-0.0249439846873157,0.00786147142886324,0.0598866369407322 +-0.455389605333852,8.13382039051427,-0.0537192390461809,-0.057753704371126,-0.0567559216542365,0.00816513709277533,0.0578704759769778 +-0.455750302045653,8.14034311625477,-0.0360429349397598,-0.0459878128407468,-0.0582055388826698,0.00797582794916855,0.0554732647929456 +-0.45608932558202,8.14946357775555,-0.0367438952164571,-0.041946353652441,-0.0456134400579991,0.00811479048567791,0.0573022385631651 +-0.45640795650533,8.15930491846424,-0.0244760944612091,-0.0324479299839992,-0.0429142188785379,0.00814337559612594,0.0559962685156514 +-0.456707401272895,8.16059232486147,-0.0280941017370363,-0.0302861006016453,-0.0299103756921532,0.00787563236213108,0.0577185952122781 +-0.456988796420159,8.16707303462208,-0.0326995659288804,-0.0332703691466912,-0.0293067143845649,0.00787586276750566,0.0592982811507887 +-0.457253212513878,8.17645573766656,-0.0288626660256031,-0.0321970280985474,-0.0337382348283894,0.00794532215863154,0.0591581415863098 +-0.45750165788777,8.18501496410896,-0.0207914863504462,-0.0262031016600592,-0.0326720598136754,0.00794002029460952,0.0583457442279391 +-0.45773508217248,8.19512491763977,-0.0140491306136847,-0.0194575056153342,-0.0269475195250711,0.00803169677806192,0.0579562034748546 +-0.457954379630524,8.2054518118378,-0.0123372858705821,-0.0157282916474075,-0.0198870806275054,0.00817093873269867,0.058494740698794 +-0.458160392307293,8.20097433858598,-0.0137116862426054,-0.0138867189600923,-0.01211014773562,0.00755138004888332,0.0588500102024081 +-0.458353913007734,8.20263322281789,-0.00636255297105795,-0.00903550730098874,-0.0128257245128317,0.00718895329007758,0.0573555028137881 +-0.45853568810792,8.2271222628883,0.00576610132123194,-0.00114998744976967,-0.0143422437190798,0.00799407228779353,0.0559182714040049 +-0.458706420210468,8.23636234245489,-0.0033628591205462,-0.00252806574850952,-0.000529568859943964,0.00817052323674878,0.0584803516289879 +-0.458866770652808,8.2469586732032,-0.000127030342855296,-0.00131969400292862,-0.00342388792256789,0.00826549036313151,0.0578753969810232 +-0.459017361875135,8.24714062432722,-0.00280518452342158,-0.00157391792082128,0.00104556943418787,0.00787578701353398,0.0582429677887127 +-0.459158779656776,8.24599485410763,-0.000284385968303856,1.84888100951842e-06,0.000554801066972059,0.00738048182729339,0.0572940117686395 +-0.459291575227151,8.254507140582,-0.00329126664294644,-0.00231354086491303,-7.14557049562582e-05,0.0074655149477655,0.0579284901092934 +-0.459416267258916,8.25804062541075,-0.00540938121556428,-0.00417115124039777,-0.00114266019957971,0.00727835953726385,0.0581614198518056 +-0.459533343748789,8.26714057132696,-0.0105878468790761,-0.0088934433900085,-0.00426408157823707,0.00741817749842145,0.0592494898716621 +-0.459643263793151,8.25860807615783,-0.0373375822695121,-0.0269146734292049,-0.00267034757290567,0.00683305572444155,0.0641147454379306 +-0.459746459263312,8.26183583782361,-0.029573489136566,-0.0301816194961523,-0.0267605107500289,0.0065528078517011,0.0618815445563813 +-0.459843336386333,8.27294867719161,-0.0138715624192553,-0.0212872564492384,-0.0323783484949401,0.00667073092952578,0.0593788973631355 +-0.459934277236654,8.28608267215544,-0.0178783844593274,-0.0204429531722119,-0.0222863893322863,0.00708773123436302,0.0614594097589753 +-0.460019641142714,8.28270985619835,-0.0223805387898029,-0.0217266609113338,-0.0171539923473483,0.00661039782950743,0.062542252491617 +-0.460099766014729,8.28727862706199,-0.0194740619319192,-0.0212001464112017,-0.0213076465181082,0.00649089410386078,0.0621602106416409 +-0.460174969595674,8.28455769139591,-0.0412353352696633,-0.0347531894560985,-0.0169317926688741,0.00623267355856966,0.0667664795147908 +-0.460245550642047,8.28062963083914,-0.0465237770460769,-0.0437409274993028,-0.0317007331970293,0.0057522132070484,0.0674396614255773 +-0.460311790036747,8.2901144748853,-0.0475083263717855,-0.0490171773929424,-0.0444684226522366,0.00597525643354109,0.0682410260745225 +-0.460373951838385,8.29047467804273,-0.0535177840327702,-0.05401142100354,-0.0467398670404291,0.00577951866169217,0.070185267607139 +-0.460432284270574,8.30143035347698,-0.0628071349395936,-0.0631889744912518,-0.0543036459769348,0.00617350517297957,0.0732049755424862 +-0.46048702065432,8.30747758319052,-0.0578241297241173,-0.0629043621534484,-0.0631434166553186,0.00616843490249139,0.0732336406598952 +-0.460538380286808,8.32187406760861,-0.0382145481093821,-0.0501245414802977,-0.0655104342390278,0.00648523745803855,0.0710128471005661 +-0.460586569269641,8.32640133419603,-0.0318622850332176,-0.0399402923864228,-0.0494707426596565,0.00640893619678227,0.0715135430745333 +-0.460631781289116,8.33425218624849,-0.0232531170989765,-0.0307160322831959,-0.0404624405100773,0.00646605554365936,0.0711784317668877 +-0.460674198351591,8.34381291901472,-0.0137599377888015,-0.0210446844015817,-0.031919624157001,0.006590242438113,0.0705298326973555 +-0.460713991476082,8.35000593595934,-0.00935843664722759,-0.0140149981730184,-0.0208807746156054,0.00657415384699854,0.070604771042063 +-0.460751321346784,8.35278595255341,-0.0102279549633268,-0.0115588224574069,-0.0123707711581786,0.006419521043316,0.0712484316757174 +-0.460786338927534,8.35846475857033,-0.00946701213277446,-0.0106175979965746,-0.0112244424734342,0.00638921658395925,0.0713613116731611 +-0.460819186040696,8.36417197520124,-0.00876087377233182,-0.00979390528906465,-0.0102989851608835,0.00636125972904064,0.0714545527266902 +-0.460849995912033,8.37081359097767,-0.00728934011332185,-0.00863784266570424,-0.00992872612683708,0.00637275776504395,0.0714202217022238 +-0.460878893684035,8.38080895041987,-0.00298925536166001,-0.0058265811423956,-0.0104231974332052,0.0065212316616325,0.0710236787843444 +-0.460905996898914,8.38456184102815,-0.00349377701747447,-0.00402308993392955,-0.00443344884482009,0.00640794251982013,0.0712939131805441 +-0.460931415953486,8.39566241156822,0.000643077651950394,-0.00186445341176694,-0.00642705467994664,0.00659956335639851,0.0708865886666761 +-0.460955254527405,8.3946712639794,-0.00369690390699616,-0.00182035113037069,0.00208387366150195,0.00629041762582336,0.071470466748419 +-0.460977609985949,8.40194640063818,-0.00367601953659493,-0.00339661104947861,-0.0023392853543773,0.00633040350529917,0.0714036175319166 +-0.460998573759246,8.40605625188732,-0.00506341090170161,-0.00431568846455824,-0.00221323649995116,0.00624052014885767,0.0715360148173993 +-0.46101823169938,8.41384659095816,-0.00401001613878128,-0.00463949773960263,-0.00514958669933158,0.00630304820444667,0.0714553268651976 +-0.461036664415871,8.42456499665723,-0.000471070215992232,-0.00285753294787014,-0.00703489298585052,0.0064805980694292,0.0712560017985613 +-0.46105394759179,8.43173177365724,0.00124179462268982,-0.000299334453882988,-0.00323243653121243,0.00650810002025723,0.071229370050528 +-0.461070152280918,8.4435400601179,0.00528682962190714,0.00251954078630015,-0.00321277857329377,0.00671984869282695,0.0710543655466478 +-0.461085345187339,8.44769132085028,0.00470596832503811,0.00468782054672946,0.00393881429744084,0.0066175488188307,0.071125568570599 +-0.46109958892841,8.45762979521595,0.00638021808738867,0.0054581266734534,0.00284466763391798,0.00674942019068897,0.0710495897414578 +-0.461112942281983,8.46321206704083,0.00564744456227871,0.0061225401379927,0.00610837278783925,0.00670320375526984,0.0710711323249659 +-0.461125460419292,8.47269791424426,0.00662570655413803,0.00624828812011948,0.00456723378641566,0.00681309955719665,0.0710309942774019 +-0.46113719512336,8.48011451248718,0.00665780859974765,0.00675354070342043,0.00591004285162104,0.00683687512104681,0.0710245063804024 +-0.461148194994886,8.48497632678908,0.00491758738494183,0.00624628228350071,0.00786310357911314,0.00675924227926265,0.0710391393171194 +-0.461158505645495,8.48707907070606,0.00111022408427825,0.00396089042739999,0.00886742614431246,0.00657659434013737,0.0710595119260961 +-0.461168169879557,8.4935914133918,-0.00048965737435514,0.00109717960476921,0.00399711816535089,0.00657407893028271,0.071059616444466 +-0.461177227865168,8.50321364304557,0.000499758100168594,0.000123007281014663,-0.000623908802485016,0.0066932050102896,0.0710622288001567 +-0.461185717294654,8.50711516658999,-0.000961667127048013,-5.66690643922895e-05,0.00170113856741867,0.00658427278578863,0.0710535878596151 +-0.461193673535717,8.50693706453303,-0.00525943659413535,-0.00230015613456461,0.00376983287206248,0.0063207727519194,0.0710190613883627 +-0.461201129773049,8.50340925216386,-0.0120499964890613,-0.00719761477636012,0.00327721106707266,0.00593749525842245,0.0709510592016643 +-0.461208117142131,8.50392227486672,-0.0167300338100496,-0.0131125137339335,-0.00412361649922148,0.00572662363477801,0.0709049086520994 +-0.461214664854144,8.51243854635076,-0.0156819896374789,-0.0161856909540868,-0.0146942480206439,0.00583496394930853,0.0709326075267825 +-0.461220800313961,8.51491929053106,-0.0161088355608708,-0.0163344966636665,-0.0142829962107777,0.00570480711581588,0.0708951004252309 +-0.461226549230645,8.51565036730586,-0.017571578360365,-0.0170740406082554,-0.0135121151913277,0.00551194681243092,0.0708340280135732 +-0.461231935721513,8.52348286677857,-0.0151163472519459,-0.0171221094079774,-0.0183912330687521,0.00560187241777952,0.0708647326804055 +-0.461236982409717,8.52758748233802,-0.0137438958956907,-0.0154059235845297,-0.0162720444422973,0.00554388127677317,0.0708436949376198 +-0.461241710515943,8.5343854407848,-0.0110840647973943,-0.0135016240542994,-0.0161180485535535,0.00559243260385956,0.0708621887583494 +-0.461246139944754,8.54513998761251,-0.00600963575405356,-0.0100876446476973,-0.0164333116725017,0.00579221179821754,0.0709413215003656 +-0.461250289365199,8.54487660679858,-0.0068862527810081,-0.00717780906434207,-0.00664818570477257,0.00555792069224953,0.070845597289523 +-0.46125417628721,8.55048972758368,-0.00616126876610895,-0.00687560878251645,-0.00720916391532687,0.00556005591296025,0.0708464909550641 +-0.461257817132667,8.55636443879348,-0.00512646589930619,-0.00610061252069629,-0.00705434882503799,0.00557222522311138,0.0708516775590453 +-0.461261227302688,8.56941587045049,5.34429039438554e-05,-0.00368495470619765,-0.0103493180025179,0.00586145004762208,0.0709765553728124 +-0.461264421240309,8.57408682903843,0.00130346616017604,-0.000175984512378184,-0.00300866032033818,0.00581541655541651,0.0709565120061284 +-0.46126741248984,8.58226668943437,0.00331664968835029,0.00175911391526883,-0.00151918977354136,0.00590684054940533,0.0709964915290854 +-0.461270213752308,8.59028873411286,0.00506924994728857,0.00372426493747616,0.000557496543415938,0.00598862687350854,0.0710322809543516 +-0.461272836937436,8.60064111404984,0.00785805028183223,0.00591019291617041,0.00124528957244867,0.00615735884350221,0.0711059249261073 +-0.461275293212722,8.6055446525334,0.0075305402250501,0.00761641783589469,0.0066224616281679,0.00610887566915024,0.0710848824997491 +-0.461277593049231,8.60923379274058,0.00551067702201416,0.00706420007272927,0.00899100391509891,0.00601530275371108,0.0710446079960047 +-0.461279746264881,8.62030544317783,0.00716071702084019,0.00648518486877146,0.00419185921417464,0.00621085024969832,0.0711278636375168 diff --git a/statsmodels/tsa/statespace/tests/results/results_dynamic_factor.py b/statsmodels/tsa/statespace/tests/results/results_dynamic_factor.py new file mode 100644 index 0000000..80ff0f2 --- /dev/null +++ b/statsmodels/tsa/statespace/tests/results/results_dynamic_factor.py @@ -0,0 +1,217 @@ +""" +Results for VARMAX tests + +Results from Stata using script `test_varmax_stata.do`. +See also Stata time series documentation, in particular `dfactor`. + +Data from: + +http://www.jmulti.de/download/datasets/e1.dat + +Author: Chad Fulton +License: Simplified-BSD +""" + +lutkepohl_dfm = { + 'params': [ + .0063728, .00660177, .00636009, # Factor loadings + .00203899, .00009016, .00005348, # Idiosyncratic variances + .33101874, .63927819, # Factor transitions + ], + 'bse_oim': [ + .002006, .0012514, .0012128, # Factor loadings + .0003359, .0000184, .0000141, # Idiosyncratic variances + .1196637, .1218577, # Factor transitions + ], + 'loglike': 594.0902026190786, + 'aic': -1172.18, + 'bic': -1153.641, +} + +lutkepohl_dfm2 = { + 'params': [ + .03411188, .03478764, # Factor loadings: y1 + .03553366, .0344871, # Factor loadings: y2 + .03536757, .03433391, # Factor loadings: y3 + .00224401, .00014678, .00010922, # Idiosyncratic variances + .08845946, .08862982, # Factor transitions: Phi, row 1 + .08754759, .08758589 # Phi, row 2 + ], + 'bse_oim': None, + 'loglike': 496.379832917306, + 'aic': -974.7597, + 'bic': -953.9023, +} + +lutkepohl_dfm_exog1 = { + 'params': [ + -.01254697, -.00734604, -.00671296, # Factor loadings + .01803325, .02066737, .01983089, # Beta.constant + .00198667, .00008426, .00005684, # Idiosyncratic variances + .31140829, # Factor transition + ], + 'var_oim': [ + .00004224, 2.730e-06, 3.625e-06, + .00003087, 2.626e-06, 2.013e-06, + 1.170e-07, 5.133e-10, 3.929e-10, + .07412117 + ], + 'loglike': 596.9781590009525, + 'aic': -1173.956, + 'bic': -1150.781, +} + +lutkepohl_dfm_exog2 = { + 'params': [ + .01249096, .00731147, .00680776, # Factor loadings + .02187812, -.00009851, # Betas, y1 + .02302646, -.00006045, # Betas, y2 + .02009233, -6.683e-06, # Betas, y3 + .0019856, .00008378, .00005581, # Idiosyncratic variances + .2995768, # Factor transition + ], + 'var_oim': [ + .00004278, 2.659e-06, 3.766e-06, + .00013003, 6.536e-08, + .00001079, 5.424e-09, + 8.393e-06, 4.217e-09, + 1.168e-07, 5.140e-10, 4.181e-10, + .07578382, + ], + 'loglike': 597.4550537198315, + 'aic': -1168.91, + 'bic': -1138.783, +} + +lutkepohl_dfm_gen = { + 'params': [ + .00312295, .00332555, .00318837, # Factor loadings + # .00195462, # Covariance, lower triangle + # 3.642e-06, .00010047, + # .00007018, .00002565, .00006118 + # Note: the following are the Cholesky of the covariance + # matrix defined just above + .04421108, # Cholesky, lower triangle + .00008238, .01002313, + .00158738, .00254603, .00722343, + .987374, # Factor transition + -.25613562, .00392166, .44859028, # Error transition parameters + .01635544, -.249141, .08170863, + -.02280001, .02059063, -.41808254 + ], + 'var_oim': [ + 1.418e-06, 1.030e-06, 9.314e-07, # Factor loadings + None, # Cholesky, lower triangle + None, None, + None, None, None, + .00021421, # Factor transition + .01307587, .29167522, .43204063, # Error transition parameters + .00076899, .01742173, .0220161, + .00055435, .01456365, .01707167 + ], + 'loglike': 607.7715711926285, + 'aic': -1177.543, + 'bic': -1133.511, +} + +lutkepohl_dfm_ar2 = { + 'params': [ + .00419132, .0044007, .00422976, # Factor loadings + .00188101, .0000786, .0000418, # Idiosyncratic variance + .97855802, # Factor transition + -.28856258, -.14910552, # Error transition parameters + -.41544832, -.26706536, + -.72661178, -.27278821, + ], + 'var_oim': [ + 1.176e-06, 7.304e-07, 6.726e-07, # Factor loadings + 9.517e-08, 2.300e-10, 1.389e-10, # Idiosyncratic variance + .00041159, # Factor transition + .0131511, .01296008, # Error transition parameters + .01748435, .01616862, + .03262051, .02546648, + ], + 'loglike': 607.4203109232711, + 'aic': -1188.841, + 'bic': -1158.713, +} + +lutkepohl_dfm_scalar = { + 'params': [ + .04424851, .00114077, .00275081, # Factor loadings + .01812298, .02071169, .01987196, # Beta.constant + .00012067, # Idiosyncratic variance + -.19915198, # Factor transition + ], + 'var_oim': [ + .00001479, 1.664e-06, 1.671e-06, + .00001985, 1.621e-06, 1.679e-06, + 1.941e-10, + .01409482 + ], + 'loglike': 588.7677809701966, + 'aic': -1161.536, + 'bic': -1142.996, +} + +lutkepohl_sfm = { + 'params': [ + .02177607, .02089956, .02239669, # Factor loadings + .00201477, .00013623, 7.452e-16 # Idiosyncratic variance + ], + 'var_oim': [ + .00003003, 4.729e-06, 3.344e-06, + 1.083e-07, 4.950e-10, 0 + ], + 'loglike': 532.2215594949788, + 'aic': -1054.443, + 'bic': -1042.856, +} + +lutkepohl_sur = { + 'params': [ + .02169026, -.00009184, # Betas, y1 + .0229165, -.00005654, # Betas, y2 + .01998994, -3.049e-06, # Betas, y3 + # .00215703, # Covariance, lower triangle + # .0000484, .00014252, + # .00012772, .00005642, .00010673, + # Note: the following are the Cholesky of the covariance + # matrix defined just above + .04644384, # Cholesky, lower triangle + .00104212, .0118926, + .00274999, .00450315, .00888196, + ], + 'var_oim': [ + .0001221, 6.137e-08, + 8.067e-06, 4.055e-09, + 6.042e-06, 3.036e-09, + None, + None, None, + None, None, None + ], + 'loglike': 597.6181259116113, + 'aic': -1171.236, + 'bic': -1143.426, +} + + +lutkepohl_sur_auto = { + 'params': [ + .02243063, -.00011112, # Betas, y1 + .02286952, -.0000554, # Betas, y2 + .0020338, .00013843, # Idiosyncratic variance + -.21127833, .50884609, # Error transition parameters + .04292935, .00855789, + ], + 'var_oim': [ + .00008357, 4.209e-08, + 8.402e-06, 4.222e-09, + 1.103e-07, 5.110e-10, + .01259537, .19382105, + .00085936, .01321035, + ], + 'loglike': 352.7250284160132, + 'aic': -685.4501, + 'bic': -662.2752 +} diff --git a/statsmodels/tsa/statespace/tests/results/results_dynamic_factor_stata.csv b/statsmodels/tsa/statespace/tests/results/results_dynamic_factor_stata.csv new file mode 100644 index 0000000..5143500 --- /dev/null +++ b/statsmodels/tsa/statespace/tests/results/results_dynamic_factor_stata.csv @@ -0,0 +1,93 @@ +predict_dfm_1,predict_dfm_2,predict_dfm_3,predict_dfm2_1,predict_dfm2_2,predict_dfm2_3,predict_dfm_exog1_1,predict_dfm_exog1_2,predict_dfm_exog1_3,predict_dfm_exog2_1,predict_dfm_exog2_2,predict_dfm_exog2_3,predict_dfm_gen_1,predict_dfm_gen_2,predict_dfm_gen_3,predict_dfm_ar2_1,predict_dfm_ar2_2,predict_dfm_ar2_3,predict_dfm_scalar_1,predict_dfm_scalar_2,predict_dfm_scalar_3,predict_sfm_1,predict_sfm_2,predict_sfm_3,predict_sur_1,predict_sur_2,predict_sur_3,predict_sur_auto_1,predict_sur_auto_2,dyn_predict_dfm_1,dyn_predict_dfm_2,dyn_predict_dfm_3,dyn_predict_dfm2_1,dyn_predict_dfm2_2,dyn_predict_dfm2_3,dyn_predict_dfm_exog1_1,dyn_predict_dfm_exog1_2,dyn_predict_dfm_exog1_3,dyn_predict_dfm_exog2_1,dyn_predict_dfm_exog2_2,dyn_predict_dfm_exog2_3,dyn_predict_dfm_gen_1,dyn_predict_dfm_gen_2,dyn_predict_dfm_gen_3,dyn_predict_dfm_ar2_1,dyn_predict_dfm_ar2_2,dyn_predict_dfm_ar2_3,dyn_predict_dfm_scalar_1,dyn_predict_dfm_scalar_2,dyn_predict_dfm_scalar_3,dyn_predict_sfm_1,dyn_predict_sfm_2,dyn_predict_sfm_3,dyn_predict_sur_1,dyn_predict_sur_2,dyn_predict_sur_3,dyn_predict_sur_auto_1,dyn_predict_sur_auto_2 +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +0,0,0,0,0,0,.0180332,.0206674,.0198309,.0216811,.0229056,.020079,0,0,0,0,0,0,.018123,.0207117,.019872,0,0,0,.0215066,.0228034,.0199838,.0222084,.0227587,0,0,0,0,0,0,.0180332,.0206674,.0198309,.0216811,.0229056,.020079,0,0,0,0,0,0,.018123,.0207117,.019872,0,0,0,.0215066,.0228034,.0199838,.0222084,.0227587 +.0169778,.0175878,.016944,.0034882,.0035454,.0035293,.0181424,.0207313,.0198893,.0212768,.0226661,.0199056,.0218081,.0149934,.0201537,.0242307,.0154454,.0208378,.0225757,.0208265,.0201488,0,0,0,.0214147,.0227469,.0199808,.0319412,.0215776,.0169778,.0175878,.016944,.0034882,.0035454,.0035293,.0181424,.0207313,.0198893,.0212768,.0226661,.0199056,.0218081,.0149934,.0201537,.0242307,.0154454,.0208378,.0225757,.0208265,.0201488,0,0,0,.0214147,.0227469,.0199808,.0319412,.0215776 +.0241789,.0250477,.0241307,.0060078,.0061064,.0060785,.0231217,.0236465,.0225533,.0259392,.0253924,.0224937,.0246422,.0225608,.0228286,.0285884,.0200446,.0263881,.0150727,.0206331,.0196823,0,0,0,.0213229,.0226903,.0199777,.0295647,.0232808,.0241789,.0250477,.0241307,.0060078,.0061064,.0060785,.0231217,.0236465,.0225533,.0259392,.0253924,.0224937,.0246422,.0225608,.0228286,.0285884,.0200446,.0263881,.0150727,.0206331,.0196823,0,0,0,.0213229,.0226903,.0199777,.0295647,.0232808 +.0276292,.0286219,.0275741,.0043475,.0044189,.0043987,.0204694,.0220937,.0211343,.0233326,.0238639,.0211201,.0251868,.0308882,.0236903,.0227159,.0292041,.0227006,.0144884,.020618,.019646,0,0,0,.021231,.0226338,.0199747,.015474,.0231892,.0276292,.0286219,.0275741,.0043475,.0044189,.0043987,.0204694,.0220937,.0211343,.0233326,.0238639,.0211201,.0251868,.0308882,.0236903,.0227159,.0292041,.0227006,.0144884,.020618,.019646,0,0,0,.021231,.0226338,.0199747,.015474,.0231892 +.0253204,.0262301,.0252699,.0049959,.0050779,.0050547,.0214661,.0226772,.0216676,.0241552,.0243426,.0216154,.0070111,.0269893,.0254357,.0066241,.0308553,.0292231,.0038167,.0203429,.0189826,0,0,0,.0211392,.0225772,.0199717,.0112048,.025729,.0252399,.0261467,.0251895,.0007656,.0007782,.0007747,.0187919,.0211115,.0202368,.0218703,.0230052,.0203701,.0244328,.0260137,.0271579,.0254881,.0298339,.0278507,.0188468,.0207304,.019917,0,0,0,.0211392,.0225772,.0199717,.0234199,.0222674 +.0208676,.0216173,.020826,.0011231,.0011416,.0011364,.0138281,.0182053,.017581,.0167051,.019979,.017602,.0246656,.0162025,.0287979,.0218247,.0118644,.0282099,.0300694,.0210197,.0206146,0,0,0,.0210473,.0225207,.0199686,.0348724,.0196662,.0260176,.0269524,.0259657,.0001348,.0001371,.0001364,.0182695,.0208057,.0199573,.0213633,.0227056,.0201408,.0259081,.0271032,.0251578,.0260329,.0251486,.0254403,.0179788,.020708,.019863,0,0,0,.0210473,.0225207,.0199686,.0211657,.0225505 +.0173758,.0180001,.0173412,.0044841,.0045577,.0045369,.0196696,.0216254,.0207064,.0224192,.0233209,.0207633,.030023,.0287653,.0104476,.0262075,.0263581,.0056798,.0166041,.0206725,.0197775,0,0,0,.0209555,.0224642,.0199656,.0104883,.0223705,.0247476,.0256368,.0246983,.0000237,.0000241,.000024,.0181068,.0207104,.0198702,.0211424,.0225735,.0200674,.0243862,.0263015,.0255215,.0246738,.0259547,.0246746,.0181517,.0207124,.0198737,0,0,0,.0209555,.0224642,.0199656,.0216796,.022406 +.0236642,.0245144,.023617,.0042626,.0043325,.0043128,.0198594,.0217365,.0208079,.0223526,.0232792,.020774,.0166716,.0204156,.025431,.0196916,.0249768,.0220287,.0152788,.0206384,.0196951,0,0,0,.0208637,.0224076,.0199625,.0257702,.0229885,.0248244,.0257163,.0247749,4.18e-06,4.25e-06,4.23e-06,.0180562,.0206808,.0198431,.0210072,.0224916,.0200407,.0246882,.02612,.0249322,.0242132,.0259197,.0248002,.0181173,.0207115,.0198716,0,0,0,.0208637,.0224076,.0199625,.0213911,.0223767 +.0201676,.0208922,.0201273,.0033263,.0033809,.0033655,.0181086,.0207115,.0198712,.0206119,.0222575,.0198723,.0054973,.0240132,.0192811,.003153,.0216177,.0233296,.0072843,.0204323,.0191981,0,0,0,.0207718,.0223511,.0199595,.0057966,.0246115,.024038,.0249016,.02399,7.36e-07,7.49e-07,7.45e-07,.0180404,.0206715,.0198347,.0208977,.0224247,.0200281,.0241011,.0257409,.0247183,.0237937,.024788,.0238528,.0181241,.0207117,.019872,0,0,0,.0207718,.0223511,.0199595,.0213307,.0223139 +.0204401,.0211744,.0203993,.0036869,.0037474,.0037303,.0185371,.0209624,.0201005,.0209739,.0224665,.0201166,.0303969,.0231858,.0201242,.020668,.0250062,.0173846,.0232013,.0208426,.0201877,0,0,0,.02068,.0222945,.0199564,.0253964,.0209354,.0238267,.0246828,.0237792,1.30e-07,1.32e-07,1.31e-07,.0180355,.0206687,.0198321,.0207959,.0223624,.0200196,.0239124,.0254319,.0243693,.0232445,.0243565,.0234648,.0181228,.0207117,.0198719,0,0,0,.02068,.0222945,.0199564,.0212051,.0222606 +.0197192,.0204277,.0196798,.0032135,.0032662,.0032514,.0176594,.0204485,.0196308,.0199801,.0218821,.019622,.0149487,.0178207,.0229903,.0223419,.0171047,.0229634,.0174738,.020695,.0198316,0,0,0,.0205881,.022238,.0199534,.0240728,.0222729,.023254,.0240895,.0232077,2.28e-08,2.32e-08,2.31e-08,.0180339,.0206678,.0198313,.0206964,.0223014,.0200124,.0235643,.0251057,.0240747,.0227425,.0239465,.0229853,.018123,.0207117,.019872,0,0,0,.0205881,.022238,.0199534,.0210981,.0222046 +.0176663,.018301,.0176311,.002802,.002848,.002835,.0167584,.019921,.0191488,.0190698,.0213465,.0191729,.0182607,.019092,.0179857,.0169868,.0155282,.0179949,.0191911,.0207392,.0199384,0,0,0,.0204963,.0221814,.0199503,.0193698,.0217336,.0229294,.0237533,.0228837,4.02e-09,4.09e-09,4.07e-09,.0180335,.0206675,.019831,.0205976,.0222407,.0200055,.0232845,.0247903,.0237662,.0222617,.0233597,.0224416,.018123,.0207117,.019872,0,0,0,.0204963,.0221814,.0199503,.0209858,.0221494 +.0143545,.0148703,.0143259,.001044,.0010612,.0010563,.01305,.0177498,.0171647,.015442,.0192202,.0172427,.0508758,.012861,.0214563,.0558045,.0116747,.0142495,.0478621,.0214784,.0217208,0,0,0,.0204044,.0221249,.0199473,.0505911,.0151021,.0224559,.0232627,.0224111,7.08e-10,7.20e-10,7.17e-10,.0180333,.0206674,.0198309,.020499,.0221802,.0199988,.0229839,.0244768,.0234677,.0217829,.0228593,.0219909,.018123,.0207117,.019872,0,0,0,.0204044,.0221249,.0199473,.020875,.0220939 +.0130324,.0135007,.0130064,.003437,.0034934,.0034775,.0176342,.0204337,.0196174,.0197363,.021731,.0196301,-.0317027,.0171761,.0076651,-.015822,.0142627,.0125916,-.0149283,.0198596,.0178173,0,0,0,.0203126,.0220683,.0199442,-.0201266,.0293788,.0220916,.0228853,.0220475,1.25e-10,1.27e-10,1.26e-10,.0180333,.0206674,.0198309,.0204004,.0221198,.0199921,.0226961,.0241679,.0231709,.0213153,.0223885,.0215111,.018123,.0207117,.019872,0,0,0,.0203126,.0220683,.0199442,.0207638,.0220385 +.0158559,.0164255,.0158242,.0028545,.0029014,.0028881,.0168723,.0199876,.0192097,.0189054,.0212419,.0192243,.0090297,.0149999,.0143376,-.0180325,.014702,.0142877,.0153526,.0206403,.0196997,0,0,0,.0202207,.0220118,.0199412,.0156127,.0225772,.0216683,.0224468,.0216251,2.20e-11,2.23e-11,2.22e-11,.0180333,.0206674,.0198309,.0203019,.0220593,.0199854,.0224087,.0238627,.0228785,.0208586,.0219003,.0210476,.018123,.0207117,.019872,0,0,0,.0202207,.0220118,.0199412,.0206527,.0219831 +.0160136,.0165889,.0159816,.003565,.0036235,.003607,.0181552,.0207388,.0198962,.020041,.0219038,.0198902,.016049,.0142579,.0164107,.0148588,.0138369,.0186203,.0186856,.0207262,.0199069,0,0,0,.0201289,.0219553,.0199381,.024468,.0217462,.0212953,.0220604,.0212528,3.87e-12,3.93e-12,3.92e-12,.0180332,.0206674,.0198309,.0202034,.0219989,.0199787,.0221261,.0235614,.0225895,.0204113,.0214289,.0206002,.018123,.0207117,.019872,0,0,0,.0201289,.0219553,.0199381,.0205416,.0219277 +.0207065,.0214505,.0206652,.0048775,.0049575,.0049349,.0208943,.0223425,.0213616,.0226316,.0234174,.0213491,.0305335,.0223299,.0163033,.029066,.0225548,.0166521,.020619,.020776,.0200271,0,0,0,.0200371,.0218987,.0199351,.0248408,.0211681,.0209012,.0216522,.0208595,6.81e-13,6.93e-13,6.90e-13,.0180332,.0206674,.0198309,.0201049,.0219384,.019972,.0218466,.0232639,.0223043,.0199736,.0209724,.0201562,.018123,.0207117,.019872,0,0,0,.0200371,.0218987,.0199351,.0204305,.0218723 +.0185952,.0192633,.0185581,.0014905,.001515,.0015081,.0145824,.018647,.0179846,.0163886,.0197603,.0179936,-.0023948,.0163695,.0221794,.0068538,.016974,.0254079,.0107363,.0205213,.0194128,0,0,0,.0199452,.0218422,.019932,.0097192,.023424,.0205323,.02127,.0204913,1.20e-13,1.22e-13,1.21e-13,.0180332,.0206674,.0198309,.0200064,.021878,.0199654,.0215708,.0229702,.0220227,.0195454,.0205219,.0197246,.018123,.0207117,.019872,0,0,0,.0199452,.0218422,.019932,.0203194,.0218169 +.0135096,.013995,.0134827,.0027441,.0027892,.0027765,.0162898,.0196466,.0188981,.0180448,.020727,.0189433,.0192337,.0174255,.012968,.0093726,.0160603,.0135389,.0203027,.0207679,.0200075,0,0,0,.0198534,.0217856,.019929,.0173219,.0210993,.0201583,.0208825,.020118,2.11e-14,2.15e-14,2.14e-14,.0180332,.0206674,.0198309,.0199079,.0218175,.0199587,.0212985,.0226802,.0217447,.0191263,.0200814,.0193019,.018123,.0207117,.019872,0,0,0,.0198534,.0217856,.019929,.0202083,.0217615 +.0214489,.0222195,.0214061,.0062582,.0063609,.0063319,.0233843,.0238003,.0226938,.0246957,.0246173,.0226151,.0199307,.0160721,.0194353,.0214457,.0159273,.0203706,.0147494,.0206247,.0196622,0,0,0,.0197615,.0217291,.0199259,.0314914,.0225782,.0197986,.02051,.0197591,3.72e-15,3.78e-15,3.77e-15,.0180332,.0206674,.0198309,.0198094,.0217571,.019952,.0210295,.0223938,.0214701,.0187162,.0196512,.0188877,.018123,.0207117,.019872,0,0,0,.0197615,.0217291,.0199259,.0200971,.0217061 +.0246164,.0255009,.0245673,.0037626,.0038244,.0038069,.0192844,.0213999,.0205003,.0206912,.0222705,.0204796,.0342487,.0240777,.0233446,.0359784,.0209906,.0243322,.0253679,.0208985,.0203224,0,0,0,.0196697,.0216725,.0199229,.0284546,.0198939,.0194405,.0201389,.0194017,6.56e-16,6.66e-16,6.63e-16,.0180332,.0206674,.0198309,.0197108,.0216966,.0199453,.020764,.0221111,.021199,.0183149,.0192298,.0184829,.018123,.0207117,.019872,0,0,0,.0196697,.0216725,.0199229,.019986,.0216507 +.0249838,.0258814,.0249339,.0060181,.0061169,.006089,.0233079,.0237556,.022653,.0244759,.024483,.0225893,.0224124,.0270526,.0224996,.0294092,.0314268,.0269118,.0110128,.0205284,.0194299,0,0,0,.0195778,.021616,.0199198,.0192129,.0231855,.019092,.0197779,.0190539,1.15e-16,1.17e-16,1.17e-16,.0180332,.0206674,.0198309,.0196123,.0216362,.0199386,.0205019,.0218319,.0209314,.0179221,.0188174,.0180865,.018123,.0207117,.019872,0,0,0,.0195778,.021616,.0199198,.0198749,.0215953 +.0271066,.0280806,.0270526,.003717,.003778,.0037607,.0192082,.0213553,.0204595,.0204306,.0221124,.0204316,.027937,.0270379,.0276734,.0273628,.0274846,.0275304,.0203258,.0207685,.0200089,0,0,0,.019486,.0215595,.0199168,.0232305,.0209812,.0187477,.0194212,.0187103,2.03e-17,2.07e-17,2.06e-17,.0180332,.0206674,.0198309,.0195138,.0215758,.0199319,.020243,.0215563,.0206671,.0175379,.018414,.0176987,.018123,.0207117,.019872,0,0,0,.019486,.0215595,.0199168,.0197638,.0215399 +.0216137,.0223902,.0215706,.003323,.0033775,.0033621,.017968,.0206292,.019796,.0191911,.0213841,.0198031,.0255884,.0258738,.0234142,.0279285,.0266205,.022483,.0196393,.0207508,.0199662,0,0,0,.0193941,.0215029,.0199137,.0188595,.021009,.0184109,.0190724,.0183742,3.58e-18,3.64e-18,3.62e-18,.0180332,.0206674,.0198309,.0194153,.0215153,.0199253,.0199874,.0212841,.0204062,.0171618,.0180192,.0173192,.018123,.0207117,.019872,0,0,0,.0193941,.0215029,.0199137,.0196527,.0214845 +.0188999,.0195789,.0188622,.0019803,.0020128,.0020036,.0152084,.0190134,.0183195,.0164705,.0197888,.0183673,.0138106,.0237432,.0194941,.0127652,.0233751,.015248,.015625,.0206473,.0197167,0,0,0,.0193023,.0214464,.0199107,.0079858,.0218112,.0180793,.0187289,.0180433,6.31e-19,6.41e-19,6.38e-19,.0180332,.0206674,.0198309,.0193168,.0214549,.0199186,.019735,.0210154,.0201485,.0167938,.0176328,.0169479,.018123,.0207117,.019872,0,0,0,.0193023,.0214464,.0199107,.0195416,.0214291 +.0143991,.0149164,.0143703,.0021199,.0021547,.0021448,.0151029,.0189517,.0182631,.016264,.0196652,.0183018,.0194085,.0156567,.0188887,.0168749,.0154129,.0148563,.0234441,.0208489,.0202028,0,0,0,.0192104,.0213898,.0199076,.0232274,.0200872,.0177543,.0183922,.0177189,1.11e-19,1.13e-19,1.12e-19,.0180332,.0206674,.0198309,.0192183,.0213944,.0199119,.0194859,.02075,.0198941,.0164337,.0172547,.0165845,.018123,.0207117,.019872,0,0,0,.0192104,.0213898,.0199076,.0194304,.0213737 +.0164729,.0170648,.0164401,.00397,.0040352,.0040168,.018696,.0210554,.0201855,.0196003,.0216152,.0201671,.0271108,.0123634,.0189849,.0317349,.0083269,.0177715,.0262387,.0209209,.0203765,0,0,0,.0191186,.0213333,.0199046,.0366001,.0195062,.0174347,.0180611,.0173999,1.96e-20,1.99e-20,1.98e-20,.0180332,.0206674,.0198309,.0191198,.021334,.0199052,.0192398,.020488,.0196429,.0160814,.0168847,.0162289,.018123,.0207117,.019872,0,0,0,.0191186,.0213333,.0199046,.0193193,.0213183 +.0084415,.0087448,.0084246,-.0032768,-.0033306,-.0033154,.0049275,.0129942,.012819,.0063328,.0138465,.0129831,-.0001488,.0124349,.0125503,.0075364,.0052215,.0081562,.0232611,.0208442,.0201914,0,0,0,.0190268,.0212767,.0199015,-.0008669,.0197225,.0171211,.0177363,.017087,3.44e-21,3.50e-21,3.48e-21,.0180332,.0206674,.0198309,.0190213,.0212735,.0198985,.0189969,.0202293,.0193949,.0157366,.0165227,.0158809,.018123,.0207117,.019872,0,0,0,.0190268,.0212767,.0199015,.0192082,.0212629 +.0019079,.0019765,.0019041,.0027742,.0028198,.0028069,.0151784,.0189959,.0183035,.0161848,.0196104,.0183996,.0266932,.0077558,.0026035,.0202117,.0121256,-.0025815,.0289822,.0209917,.020547,0,0,0,.0189349,.0212202,.0198985,.0266455,.0185696,.0168131,.0174171,.0167795,6.07e-22,6.17e-22,6.14e-22,.0180332,.0206674,.0198309,.0189227,.0212131,.0198919,.0187571,.0199739,.01915,.0153991,.0161684,.0155404,.018123,.0207117,.019872,0,0,0,.0189349,.0212202,.0198985,.0190971,.0212075 +.0082657,.0085626,.0082492,-.0004942,-.0005024,-.0005001,.0099021,.0159067,.0154805,.01092,.016526,.0155773,.0163842,.0034037,.0121823,.0273485,-.0005305,.0046977,.0329729,.0210945,.0207951,0,0,0,.0188431,.0211637,.0198954,.0280968,.0176295,.0165106,.0171038,.0164777,1.07e-22,1.09e-22,1.08e-22,.0180332,.0206674,.0198309,.0188242,.0211526,.0198852,.0185202,.0197217,.0189082,.0150689,.0158217,.0152072,.018123,.0207117,.019872,0,0,0,.0188431,.0211637,.0198954,.018986,.0211521 +.0020992,.0021746,.002095,.0013049,.0013263,.0013203,.0129024,.0176633,.0170857,.0137899,.0182031,.0171884,.0125584,.0077644,.0021595,.018514,.0074077,.0020705,.0228673,.020834,.0201669,0,0,0,.0187512,.0211071,.0198924,.0136652,.0197873,.0162135,.0167961,.0161812,1.88e-23,1.91e-23,1.90e-23,.0180332,.0206674,.0198309,.0187257,.0210922,.0198785,.0182864,.0194727,.0186695,.0147458,.0154825,.0148811,.018123,.0207117,.019872,0,0,0,.0187512,.0211071,.0198924,.0188748,.0210967 +.0088823,.0092015,.0088646,.0023893,.0024285,.0024174,.015456,.0191584,.018452,.0160742,.0195374,.0184804,-.01529,.0074154,.0053794,-.0144833,.0086366,.0076454,.0033684,.0203313,.0189547,0,0,0,.0186594,.0210506,.0198893,-.0003998,.0243802,.0159219,.0164939,.0158901,3.31e-24,3.37e-24,3.35e-24,.0180332,.0206674,.0198309,.0186272,.0210317,.0198718,.0180555,.0192269,.0184338,.0144297,.0151505,.014562,.018123,.0207117,.019872,0,0,0,.0186594,.0210506,.0198893,.0187637,.0210413 +.0107841,.0111716,.0107626,.0029968,.003046,.0030321,.016784,.019936,.0191625,.0172527,.0202244,.0191697,.0331874,.006198,.0134589,.0250729,.0059834,.0149128,.0352283,.0211527,.0209354,0,0,0,.0185675,.020994,.0198863,.04262,.0171552,.0156354,.0161972,.0156042,5.83e-25,5.93e-25,5.90e-25,.0180332,.0206674,.0198309,.0185287,.0209713,.0198651,.0178275,.0189841,.018201,.0141203,.0148256,.0142498,.018123,.0207117,.019872,0,0,0,.0185675,.020994,.0198863,.0186526,.0209859 +.0166804,.0172797,.0166471,.0043196,.0043905,.0043705,.0196633,.0216217,.020703,.0199708,.0218126,.0206981,.0182379,.0182423,.0107456,.0293631,.0178758,.0137016,.0152935,.0206387,.0196961,0,0,0,.0184757,.0209375,.0198832,.0147549,.0214704,.0153541,.0159058,.0153235,1.03e-25,1.04e-25,1.04e-25,.0180332,.0206674,.0198309,.0184302,.0209108,.0198584,.0176025,.0187444,.0179712,.0138175,.0145078,.0139442,.018123,.0207117,.019872,0,0,0,.0184757,.0209375,.0198832,.0185415,.0209305 +.0191842,.0198735,.0191459,.0036195,.003679,.0036622,.0186178,.0210096,.0201436,.0188112,.0211311,.0201131,.0093523,.0175751,.0189024,.0121659,.0214188,.0232264,.0127206,.0205724,.0195361,0,0,0,.0183838,.0208809,.0198802,.0152413,.0221585,.0150779,.0156196,.0150478,1.81e-26,1.84e-26,1.83e-26,.0180332,.0206674,.0198309,.0183317,.0208504,.0198518,.0173802,.0185077,.0177443,.0135212,.0141967,.0136452,.018123,.0207117,.019872,0,0,0,.0183838,.0208809,.0198802,.0184304,.0208751 +.0202962,.0210254,.0202557,.0045461,.0046207,.0045996,.0203445,.0220206,.0210675,.0204135,.0220662,.0210334,.0127198,.0221614,.0169775,.0080235,.0231852,.0217451,.0101078,.0205051,.0193737,0,0,0,.018292,.0208244,.0198771,.0107957,.0226635,.0148066,.0153386,.0147771,3.19e-27,3.24e-27,3.22e-27,.0180332,.0206674,.0198309,.0182331,.02079,.0198451,.0171608,.0182741,.0175203,.0132313,.0138923,.0133526,.018123,.0207117,.019872,0,0,0,.018292,.0208244,.0198771,.0183193,.0208197 +.0228339,.0236543,.0227883,.0041318,.0041996,.0041805,.0196487,.0216132,.0206952,.0196521,.0216177,.0206654,.0340847,.0220756,.0232186,.0309806,.0237533,.0225379,.0256251,.0209051,.0203383,0,0,0,.0182002,.0207679,.0198741,.030116,.0190914,.0145402,.0150626,.0145112,5.61e-28,5.70e-28,5.68e-28,.0180332,.0206674,.0198309,.0181346,.0207295,.0198384,.0169441,.0180433,.0172991,.0129476,.0135944,.0130663,.018123,.0207117,.019872,0,0,0,.0182002,.0207679,.0198741,.0182081,.0207643 +.022786,.0236047,.0227405,.0044974,.0045712,.0045504,.0203708,.022036,.0210816,.0202343,.0219557,.0210297,.008876,.0231886,.0218694,.0165014,.0230362,.0257152,.0076373,.0204414,.0192201,0,0,0,.0181083,.0207113,.0198711,.0105515,.0231488,.0142786,.0147916,.0142501,9.88e-29,1.00e-28,1.00e-28,.0180332,.0206674,.0198309,.0180361,.0206691,.0198317,.0167302,.0178155,.0170807,.01267,.0133029,.0127862,.018123,.0207117,.019872,0,0,0,.0181083,.0207113,.0198711,.018097,.0207089 +.0244968,.025377,.024448,.0049408,.0050219,.004999,.0213254,.0225948,.0215923,.0210604,.0224365,.021527,.0117556,.0242376,.0223166,.0043282,.0234206,.0258969,.0082219,.0204564,.0192564,0,0,0,.0180165,.0206548,.019868,.0120754,.0230203,.0140217,.0145255,.0139938,1.74e-29,1.77e-29,1.76e-29,.0180332,.0206674,.0198309,.0179376,.0206086,.019825,.0165189,.0175906,.016865,.0123983,.0130177,.012512,.018123,.0207117,.019872,0,0,0,.0180165,.0206548,.019868,.0179859,.0206535 +.0231144,.0239449,.0230683,.0030933,.003144,.0031297,.0177797,.0205189,.0196952,.01762,.0204199,.0196989,.0238368,.0274123,.0216688,.0157056,.0272497,.0200267,.0180625,.0207101,.0198682,0,0,0,.0179246,.0205982,.019865,.0117973,.0205453,.0137695,.0142642,.013742,3.07e-30,3.12e-30,3.10e-30,.0180332,.0206674,.0198309,.0178391,.0205482,.0198183,.0163104,.0173685,.0166521,.0121325,.0127385,.0122437,.018123,.0207117,.019872,0,0,0,.0179246,.0205982,.019865,.0178748,.0205981 +.0227675,.0235855,.0227221,.0051529,.0052375,.0052136,.0213803,.022627,.0216217,.0209619,.0223733,.0215673,.0282147,.0226927,.0242751,.0296062,.0259312,.0240318,.0193522,.0207434,.0199484,0,0,0,.0178328,.0205417,.0198619,.027501,.0203741,.0135217,.0140076,.0134948,5.40e-31,5.49e-31,5.46e-31,.0180332,.0206674,.0198309,.0177406,.0204877,.0198117,.0161044,.0171492,.0164418,.0118723,.0124654,.0119812,.018123,.0207117,.019872,0,0,0,.0178328,.0205417,.0198619,.0177637,.0205427 +.0273812,.028365,.0273266,.0057787,.0058735,.0058467,.0231493,.0236627,.0225681,.0225244,.0232851,.0224659,-.0040698,.0265505,.0229899,-.0030765,.0234005,.0286407,-.0050971,.0201131,.0184284,0,0,0,.0177409,.0204851,.0198589,-.0004199,.0259349,.0132785,.0137556,.013252,9.51e-32,9.66e-32,9.62e-32,.0180332,.0206674,.0198309,.0176421,.0204273,.019805,.0159011,.0169327,.0162342,.0116177,.0121981,.0117243,.018123,.0207117,.019872,0,0,0,.0177409,.0204851,.0198589,.0176525,.0204873 +.0289403,.02998,.0288825,.0058901,.0059868,.0059595,.0234942,.0238647,.0227526,.022781,.0234325,.0226528,.0241848,.0282601,.0270188,.0086637,.027947,.0309172,.0126898,.0205716,.0195342,0,0,0,.0176491,.0204286,.0198558,.0200746,.0218603,.0130396,.0135081,.0130136,1.67e-32,1.70e-32,1.69e-32,.0180332,.0206674,.0198309,.0175436,.0203668,.0197983,.0157003,.0167189,.0160292,.0113686,.0119366,.0114729,.018123,.0207117,.019872,0,0,0,.0176491,.0204286,.0198558,.0175414,.0204319 +.0300725,.031153,.0300125,.0051751,.00526,.005236,.0221181,.023059,.0220164,.0214195,.0226328,.0219578,.035323,.0331566,.0276769,.0325566,.0341457,.0275366,.0185052,.0207215,.0198957,0,0,0,.0175572,.0203721,.0198528,.0197947,.0203137,.012805,.0132651,.0127794,2.95e-33,3.00e-33,2.98e-33,.0180332,.0206674,.0198309,.017445,.0203064,.0197916,.0155021,.0165078,.0158269,.0111249,.0116806,.0112269,.018123,.0207117,.019872,0,0,0,.0175572,.0203721,.0198528,.0174303,.0203765 +.0241872,.0250562,.024139,.0019947,.0020274,.0020181,.0157211,.0193136,.0185938,.0151878,.0189823,.0186084,.0171845,.0292532,.0269153,.0204838,.03127,.0245386,.0156361,.0206476,.0197174,0,0,0,.0174654,.0203155,.0198497,.0065461,.0208213,.0125746,.0130264,.0125495,5.19e-34,5.28e-34,5.25e-34,.0180332,.0206674,.0198309,.0173465,.0202459,.0197849,.0153064,.0162994,.015627,.0108863,.0114302,.0109862,.018123,.0207117,.019872,0,0,0,.0174654,.0203155,.0198497,.0173192,.0203211 +.0220747,.0228678,.0220306,.0055441,.0056351,.0056094,.0219438,.022957,.0219232,.0210821,.0224297,.0218679,.0217836,.0243044,.0225289,.0167683,.0257142,.0218868,.0132661,.0205865,.01957,0,0,0,.0173736,.020259,.0198467,.0194125,.0215086,.0123484,.012792,.0123237,9.15e-35,9.30e-35,9.25e-35,.0180332,.0206674,.0198309,.017248,.0201855,.0197782,.0151131,.0160936,.0154297,.0106529,.0111851,.0107506,.018123,.0207117,.019872,0,0,0,.0173736,.020259,.0198467,.0172081,.0202657 +.025929,.0268606,.0258773,.0038908,.0039547,.0039366,.0193731,.0214518,.0205477,.0184933,.0209116,.020504,.0292658,.0241922,.0268456,.0278783,.0199592,.0236711,.0222784,.0208188,.0201303,0,0,0,.0172817,.0202024,.0198436,.0253327,.0193612,.0121262,.0125619,.012102,1.61e-35,1.64e-35,1.63e-35,.0180332,.0206674,.0198309,.0171495,.020125,.0197716,.0149223,.0158904,.0152349,.0104245,.0109453,.0105201,.018123,.0207117,.019872,0,0,0,.0172817,.0202024,.0198436,.0170969,.0202103 +.0242,.0250695,.0241517,.005327,.0054144,.0053897,.0219085,.0229363,.0219043,.0208508,.0222888,.0218358,.030861,.0244568,.0252763,.036088,.023875,.0268129,.0197771,.0207543,.0199748,0,0,0,.0171899,.0201459,.0198406,.0271759,.0199064,.0119081,.0123359,.0118843,2.84e-36,2.88e-36,2.87e-36,.0180332,.0206674,.0198309,.017051,.0200646,.0197649,.0147339,.0156897,.0150426,.010201,.0107106,.0102945,.018123,.0207117,.019872,0,0,0,.0171899,.0201459,.0198406,.0169858,.0201549 +.0284554,.0294777,.0283986,.0053854,.0054738,.0054488,.0223761,.02321,.0221544,.0212258,.0225055,.0220872,.0229116,.0304939,.0244885,.0241197,.0297104,.0252502,.0110754,.02053,.0194338,0,0,0,.017098,.0200893,.0198375,.0122418,.0217747,.0116938,.012114,.0116705,5.00e-37,5.08e-37,5.05e-37,.0180332,.0206674,.0198309,.0169525,.0200042,.0197582,.0145478,.0154916,.0148526,.0099822,.0104809,.0100738,.018123,.0207117,.019872,0,0,0,.017098,.0200893,.0198375,.0168747,.0200995 +.0219417,.02273,.0218979,.0013476,.0013697,.0013635,.0144098,.0185459,.0178922,.013433,.0179413,.017887,.0199039,.0201715,.0296934,.0234189,.0198187,.029398,.0243237,.0208716,.0202574,0,0,0,.0170062,.0200328,.0198345,.0223119,.0187303,.0114834,.011896,.0114605,8.80e-38,8.94e-38,8.90e-38,.0180332,.0206674,.0198309,.016854,.0199437,.0197515,.0143642,.015296,.0146651,.0097682,.0102562,.0098578,.018123,.0207117,.019872,0,0,0,.0170062,.0200328,.0198345,.0167636,.0200441 +.0197343,.0204433,.0196949,.0052891,.0053759,.0053514,.0212638,.0225588,.0215593,.0200502,.0218118,.0215405,.0364841,.0246586,.0172109,.0344254,.0228542,.0152188,.0222906,.0208191,.0201311,0,0,0,.0169143,.0199763,.0198314,.0234632,.0190546,.0112768,.011682,.0112543,1.55e-38,1.57e-38,1.57e-38,.0180332,.0206674,.0198309,.0167555,.0198833,.0197448,.0141828,.0151029,.0144799,.0095587,.0100363,.0096464,.018123,.0207117,.019872,0,0,0,.0169143,.0199763,.0198314,.0166525,.0199887 +.0260469,.0269828,.025995,.0044499,.0045229,.0045023,.0204243,.0220673,.0211101,.0190778,.0212399,.0210576,.0227215,.0250928,.0249522,.0277549,.0248881,.0214795,.0160198,.0206575,.0197412,0,0,0,.0168225,.0199197,.0198284,.0183681,.020522,.0110739,.0114718,.0110519,0,0,0,.0180332,.0206674,.0198309,.0166569,.0198228,.0197382,.0140037,.0149122,.0142971,.0093538,.0098211,.0094396,.018123,.0207117,.019872,0,0,0,.0168225,.0199197,.0198284,.0165414,.0199333 +.0248968,.0257913,.0248471,.0053293,.0054167,.005392,.0221196,.0230599,.0220172,.0206496,.0221571,.0219612,.0173481,.0307707,.0215389,.0142107,.03286,.0241754,.0071173,.020428,.0191878,0,0,0,.0167306,.0198632,.0198253,.0049627,.0224546,.0108747,.0112654,.010853,0,0,0,.0180332,.0206674,.0198309,.0165584,.0197624,.0197315,.0138269,.0147239,.0141166,.0091532,.0096105,.0092372,.018123,.0207117,.019872,0,0,0,.0167306,.0198632,.0198253,.0164302,.0198779 +.023106,.0239362,.0230599,.0018356,.0018657,.0018572,.0153287,.0190839,.0183839,.0140106,.0182682,.0183899,.0320488,.0235165,.0283334,.0298057,.025453,.02482,.0290888,.0209944,.0205537,0,0,0,.0166388,.0198066,.0198223,.0250841,.0173864,.0106791,.0110628,.0106578,0,0,0,.0180332,.0206674,.0198309,.0164599,.0197019,.0197248,.0136523,.014538,.0139384,.008957,.0094044,.0090391,.018123,.0207117,.019872,0,0,0,.0166388,.0198066,.0198223,.0163191,.0198225 +.0152302,.0157774,.0151998,.0021568,.0021922,.0021822,.0151773,.0189952,.0183029,.0138013,.0181429,.0183228,.0242602,.0167978,.0210536,.0334588,.0146435,.0188844,.0259652,.0209139,.0203595,0,0,0,.0165469,.0197501,.0198192,.0237445,.0180255,.0104869,.0108637,.010466,0,0,0,.0180332,.0206674,.0198309,.0163614,.0196415,.0197181,.01348,.0143545,.0137624,.0087649,.0092028,.0088453,.018123,.0207117,.019872,0,0,0,.0165469,.0197501,.0198192,.016208,.0197671 +.016846,.0174512,.0168124,.0033186,.0033731,.0033577,.0174574,.0203302,.0195228,.0159224,.0193817,.0195258,.0252499,.0170181,.0168966,.0280643,.0126592,.0126099,.0235118,.0208506,.020207,0,0,0,.0164551,.0196935,.0198162,.0225091,.0185449,.0102983,.0106683,.0102777,0,0,0,.0180332,.0206674,.0198309,.0162629,.019581,.0197114,.0133098,.0141732,.0135886,.008577,.0090054,.0086556,.018123,.0207117,.019872,0,0,0,.0164551,.0196935,.0198162,.0160969,.0197117 +.0177673,.0184056,.0177318,.0033756,.003431,.0034153,.0178972,.0205877,.0197581,.016252,.0195719,.0197525,.0115848,.0204708,.0157055,.0133217,.0192291,.0144273,.0125357,.0205676,.0195246,0,0,0,.0163633,.019637,.0198131,.0070543,.0209758,.010113,.0104763,.0100928,0,0,0,.0180332,.0206674,.0198309,.0161644,.0195206,.0197047,.0131417,.0139943,.013417,.0083931,.0088123,.00847,.018123,.0207117,.019872,0,0,0,.0163633,.019637,.0198131,.0159858,.0196563 +.0180653,.0187144,.0180293,.0031973,.0032498,.0032349,.0174818,.0203445,.0195359,.0157474,.0192737,.0195245,.0383504,.0164183,.0217435,.0380874,.0181256,.0199178,.033324,.0211036,.020817,0,0,0,.0162714,.0195804,.0198101,.0361114,.016276,.009931,.0102879,.0099112,0,0,0,.0180332,.0206674,.0198309,.0160659,.0194601,.0196981,.0129758,.0138176,.0132476,.0082131,.0086234,.0082884,.018123,.0207117,.019872,0,0,0,.0162714,.0195804,.0198101,.0158746,.0196009 +.0211262,.0218853,.0210841,.0051998,.0052851,.005261,.0214308,.0226566,.0216487,.0194503,.0214384,.0215896,.0295296,.0202153,.0202491,.0422758,.0191805,.0217448,.0208079,.0207809,.0200389,0,0,0,.0161796,.0195239,.019807,.0267207,.0190805,.0097524,.0101028,.0097329,0,0,0,.0180332,.0206674,.0198309,.0159674,.0193997,.0196914,.012812,.0136431,.0130804,.008037,.0084385,.0081107,.018123,.0207117,.019872,0,0,0,.0161796,.0195239,.019807,.0157635,.0195455 +.0212747,.0220391,.0212322,.0023344,.0023727,.0023619,.0162493,.0196229,.0188764,.0143624,.0184575,.0188637,.0234998,.0200369,.0236889,.0313104,.0181946,.0237089,.0237336,.0208563,.0202208,0,0,0,.0160877,.0194674,.019804,.020533,.0183052,.0095769,.009921,.0095578,0,0,0,.0180332,.0206674,.0198309,.0158688,.0193392,.0196847,.0126502,.0134709,.0129152,.0078647,.0082576,.0079368,.018123,.0207117,.019872,0,0,0,.0160877,.0194674,.019804,.0156524,.0194901 +.0183605,.0190202,.0183239,.0042146,.0042838,.0042642,.0193637,.0214463,.0205427,.017291,.0201689,.0205068,.0221565,.018923,.0193206,.0268177,.018917,.021363,.0188735,.020731,.0199186,0,0,0,.0159959,.0194108,.0198009,.0207619,.0194177,.0094046,.0097425,.0093859,0,0,0,.0180332,.0206674,.0198309,.0157703,.0192788,.019678,.0124905,.0133008,.0127522,.007696,.0080805,.0077666,.018123,.0207117,.019872,0,0,0,.0159959,.0194108,.0198009,.0155413,.0194347 +.0255004,.0264166,.0254496,.006006,.0061046,.0060767,.0232063,.0236961,.0225986,.0208962,.0222764,.0225187,.043635,.023299,.0233466,.0450076,.0222908,.021926,.0270018,.0209406,.0204239,0,0,0,.015904,.0193543,.0197979,.0357135,.0175622,.0092354,.0095672,.009217,0,0,0,.0180332,.0206674,.0198309,.0156718,.0192184,.0196713,.0123328,.0131329,.0125911,.007531,.0079072,.0076001,.018123,.0207117,.019872,0,0,0,.015904,.0193543,.0197979,.0154302,.0193793 +.0235715,.0244184,.0235245,.002107,.0021416,.0021318,.0160673,.0195163,.018779,.0139811,.0182259,.0187969,.023242,.0300351,.0226003,.03227,.0305798,.0204019,.0182164,.0207141,.0198778,0,0,0,.0158122,.0192977,.0197948,.0041534,.019232,.0090693,.0093951,.0090512,0,0,0,.0180332,.0206674,.0198309,.0155733,.0191579,.0196646,.0121771,.012967,.0124322,.0073695,.0077377,.0074371,.018123,.0207117,.019872,0,0,0,.0158122,.0192977,.0197948,.0153191,.0193239 +.0177382,.0183755,.0177028,.0030822,.0031328,.0031186,.0171524,.0201516,.0193596,.0149378,.0187831,.0193653,.0159395,.0235456,.019906,.0152122,.0297324,.0187284,.0148159,.0206264,.0196664,0,0,0,.0157203,.0192412,.0197918,.0079228,.0201052,.0089061,.0092261,.0088883,0,0,0,.0180332,.0206674,.0198309,.0154748,.0190975,.019658,.0120233,.0128033,.0122752,.0072115,.0075718,.0072777,.018123,.0207117,.019872,0,0,0,.0157203,.0192412,.0197918,.0152079,.0192685 +.0190546,.0197392,.0190166,.0032009,.0032535,.0032386,.0174937,.0203515,.0195422,.0151746,.0189189,.0195413,.0198343,.0221687,.0189588,.0142384,.0215824,.0146631,.0177734,.0207027,.0198502,0,0,0,.0156285,.0191846,.0197887,.0118895,.0193931,.0087459,.0090601,.0087284,0,0,0,.0180332,.0206674,.0198309,.0153763,.019037,.0196513,.0118715,.0126417,.0121202,.0070569,.0074094,.0071216,.018123,.0207117,.019872,0,0,0,.0156285,.0191846,.0197887,.0150968,.0192131 +.0162955,.016881,.016263,.0022079,.0022441,.0022339,.0155903,.019237,.0185238,.0132316,.0177789,.0185294,.0086461,.0185597,.0185226,.0080311,.0175863,.0166669,.0146327,.0206217,.019655,0,0,0,.0155367,.0191281,.0197857,.0071816,.0200696,.0085885,.0088971,.0085714,0,0,0,.0180332,.0206674,.0198309,.0152778,.0189766,.0196446,.0117216,.012482,.0119672,.0069056,.0072506,.0069689,.018123,.0207117,.019872,0,0,0,.0155367,.0191281,.0197857,.0149857,.0191577 +.0149104,.0154461,.0148807,.002776,.0028216,.0028087,.0164247,.0197256,.0189703,.0139489,.0181959,.0189673,.0233003,.0141956,.0178527,.0207477,.0126127,.0164087,.025256,.0208956,.0203154,0,0,0,.0154448,.0190716,.0197826,.0239499,.0176526,.008434,.008737,.0084172,0,0,0,.0180332,.0206674,.0198309,.0151793,.0189161,.0196379,.0115736,.0123244,.0118161,.0067575,.0070951,.0068195,.018123,.0207117,.019872,0,0,0,.0154448,.0190716,.0197826,.0148746,.0191023 +.0170546,.0176673,.0170205,.0036333,.0036929,.0036761,.018287,.0208159,.0199666,.0156893,.0192119,.0199629,.0144304,.0209109,.0130876,.0149992,.0189824,.0117194,.013212,.0205851,.0195667,0,0,0,.015353,.019015,.0197796,.0054209,.0202321,.0082823,.0085798,.0082657,0,0,0,.0180332,.0206674,.0198309,.0150807,.0188557,.0196312,.0114275,.0121688,.0116669,.0066126,.006943,.0066733,.018123,.0207117,.019872,0,0,0,.015353,.019015,.0197796,.0147635,.0190469 +.0159196,.0164915,.0158878,.0017988,.0018283,.0018199,.014892,.0188282,.0181502,.0123091,.0172306,.0181677,.0056969,.0187533,.0164121,.0024588,.0210192,.0154286,.0132849,.020587,.0195712,0,0,0,.0152611,.0189585,.0197765,.002006,.0201934,.0081333,.0084255,.008117,0,0,0,.0180332,.0206674,.0198309,.0149822,.0187952,.0196245,.0112832,.0120152,.0115196,.0064708,.0067941,.0065302,.018123,.0207117,.019872,0,0,0,.0152611,.0189585,.0197765,.0146523,.0189915 +.0142001,.0147103,.0141718,.0030904,.0031411,.0031267,.0169712,.0200455,.0192627,.0142501,.0183639,.0192725,.0281139,.016839,.0154314,.0225986,.0189563,.013515,.0258989,.0209122,.0203554,0,0,0,.0151693,.0189019,.0197735,.021587,.0172961,.0079869,.0082739,.007971,0,0,0,.0180332,.0206674,.0198309,.0148837,.0187348,.0196179,.0111407,.0118635,.0113741,.0063321,.0066484,.0063902,.018123,.0207117,.019872,0,0,0,.0151693,.0189019,.0197735,.0145412,.0189361 +.017362,.0179857,.0173273,.0032974,.0033515,.0033363,.0176504,.0204432,.019626,.0148025,.0186844,.0196206,.0209947,.0191523,.0162971,.0255991,.0192024,.0137356,.0195484,.0207484,.0199606,0,0,0,.0150774,.0188454,.0197704,.0143237,.0186678,.0078432,.008125,.0078276,0,0,0,.0180332,.0206674,.0198309,.0147852,.0186743,.0196112,.0110001,.0117137,.0112305,.0061963,.0065058,.0062531,.018123,.0207117,.019872,0,0,0,.0150774,.0188454,.0197704,.0144301,.0188807 +.017236,.0178553,.0172016,.0032487,.003302,.0032869,.0176413,.0204379,.0196212,.014677,.0186082,.0195992,.0150051,.0182215,.0181246,.0174213,.0193357,.018815,.0166285,.0206732,.0197791,0,0,0,.0149856,.0187888,.0197674,.0129296,.0193485,.0077021,.0079789,.0076868,0,0,0,.0180332,.0206674,.0198309,.0146867,.0186139,.0196045,.0108612,.0115658,.0110887,.0060634,.0063663,.0061191,.018123,.0207117,.019872,0,0,0,.0149856,.0187888,.0197674,.014319,.0188253 +.015856,.0164257,.0158243,.0020742,.0021082,.0020986,.0153373,.0190889,.0183885,.0123841,.0172633,.0183965,.0111921,.0175633,.0166372,.0103869,.0167394,.0168734,.0168917,.0206799,.0197954,0,0,0,.0148937,.0187323,.0197644,.0077795,.0191825,.0075636,.0078353,.0075485,0,0,0,.0180332,.0206674,.0198309,.0145882,.0185534,.0195978,.0107241,.0114198,.0109487,.0059334,.0062298,.0059879,.018123,.0207117,.019872,0,0,0,.0148937,.0187323,.0197644,.0142079,.0187699 +.0144986,.0150195,.0144697,.0029422,.0029905,.0029769,.0167855,.0199368,.0191633,.0137067,.0180347,.0191644,.0112154,.0171462,.0138406,.0072711,.0173434,.0132996,.0149221,.0206292,.019673,0,0,0,.0148019,.0186758,.0197613,.0074589,.0195963,.0074275,.0076944,.0074127,0,0,0,.0180332,.0206674,.0198309,.0144897,.018493,.0195911,.0105887,.0112756,.0108105,.0058062,.0060963,.0058595,.018123,.0207117,.019872,0,0,0,.0148019,.0186758,.0197613,.0140968,.0187145 +.0161838,.0167653,.0161515,.0030924,.0031431,.0031288,.0172245,.0201939,.0193982,.0140019,.0182047,.0193723,.0117111,.0144804,.0168775,.0098295,.0136552,.0170664,.0168402,.0206786,.0197922,0,0,0,.0147101,.0186192,.0197583,.0144368,.0191971,.0072939,.0075559,.0072793,0,0,0,.0180332,.0206674,.0198309,.0143912,.0184326,.0195845,.010455,.0111332,.010674,.0056817,.0059655,.0057338,.018123,.0207117,.019872,0,0,0,.0147101,.0186192,.0197583,.0139856,.0186591 +.0130248,.0134928,.0129988,.0011111,.0011293,.0011242,.0134045,.0179573,.0173544,.0102606,.016012,.0173803,.002699,.014291,.0138751,.0016823,.0112697,.0147331,.0149654,.0206303,.0196757,0,0,0,.0146182,.0185627,.0197552,.0022832,.0194491,.0071626,.00742,.0071483,0,0,0,.0180332,.0206674,.0198309,.0142926,.0183721,.0195778,.010323,.0109927,.0105392,.0055599,.0058376,.0056109,.018123,.0207117,.019872,0,0,0,.0146182,.0185627,.0197552,.0138745,.0186037 +.0106771,.0110608,.0106558,.0001957,.0001989,.000198,.0165918,.0198234,.0190597,.0129862,.0176046,.0189128,.0147783,.0119299,.0113178,.0094027,.0128143,.009256,.0187518,.0207279,.0199111,0,0,0,.0145264,.0185061,.0197522,.0166426,.0180579,.0070338,.0072865,.0070197,0,0,0,.0180332,.0206674,.0198309,.0141941,.0183117,.0195711,.0101926,.0108539,.0104062,.0054407,.0057125,.0054906,.018123,.0207117,.019872,0,0,0,.0145264,.0185061,.0197522,.0137634,.0185483 +.0118608,.012287,.0118372,.0000345,.000035,.0000349,.0175844,.0204046,.0195907,.0137338,.0180394,.0193672,.0104119,.012326,.0118497,.0120183,.0101395,.0103875,.0179977,.0207085,.0198642,0,0,0,.0144345,.0184496,.0197491,.0127945,.0186123,.0069072,.0071554,.0068934,0,0,0,.0180332,.0206674,.0198309,.0140956,.0182512,.0195644,.0100639,.0107168,.0102748,.005324,.00559,.0053728,.018123,.0207117,.019872,0,0,0,.0144345,.0184496,.0197491,.0136523,.0184929 +.0107518,.0111381,.0107304,6.07e-06,6.17e-06,6.14e-06,.0178935,.0205855,.0197561,.0138887,.0181273,.0194986,.0116559,.012021,.0115245,.0097912,.0104422,.0106063,.0181479,.0207123,.0198735,0,0,0,.0143427,.018393,.0197461,.0137832,.0184017,.006783,.0070267,.0067694,0,0,0,.0180332,.0206674,.0198309,.0139971,.0181908,.0195577,.0099369,.0105815,.010145,.0052099,.0054701,.0052576,.018123,.0207117,.019872,0,0,0,.0143427,.018393,.0197461,.0135412,.0184375 +.0111414,.0115417,.0111192,1.07e-06,1.09e-06,1.08e-06,.0179897,.0206419,.0198076,.0138661,.0181113,.0195333,.0110771,.0119146,.011418,.0097295,.0106432,.0096953,.018118,.0207116,.0198717,0,0,0,.0142508,.0183365,.019743,.0133607,.0183922,.0066609,.0069002,.0066476,0,0,0,.0180332,.0206674,.0198309,.0138986,.0181303,.019551,.0098114,.0104479,.010017,.0050981,.0053528,.0051449,.018123,.0207117,.019872,0,0,0,.0142508,.0183365,.019743,.01343,.0183821 +.0105614,.0109409,.0105404,1.88e-07,1.91e-07,1.90e-07,.0180197,.0206594,.0198236,.0137904,.0180642,.0195391,.0110654,.011749,.0112683,.0097717,.0100995,.0098637,.018124,.0207117,.019872,0,0,0,.014159,.01828,.01974,.0133387,.0183238,.0065411,.0067761,.006528,0,0,0,.0180332,.0206674,.0198309,.0138001,.0180699,.0195444,.0096875,.010316,.0098905,.0049888,.0052381,.0050346,.018123,.0207117,.019872,0,0,0,.014159,.01828,.01974,.0133189,.0183267 +.0106185,.011,.0105973,3.31e-08,3.37e-08,3.35e-08,.018029,.0206649,.0198286,.0136987,.0180077,.0195361,.0108903,.011606,.0111251,.0094677,.0099006,.0095653,.0181228,.0207117,.019872,0,0,0,.0140671,.0182234,.0197369,.0132022,.0182721,.0064234,.0066542,.0064106,0,0,0,.0180332,.0206674,.0198309,.0137016,.0180094,.0195377,.0095652,.0101857,.0097656,.0048819,.0051257,.0049266,.018123,.0207117,.019872,0,0,0,.0140671,.0182234,.0197369,.0132078,.0182713 +.0102666,.0106355,.0102461,5.84e-09,5.93e-09,5.91e-09,.0180319,.0206666,.0198302,.0136022,.0179485,.0195305,.0107615,.0114575,.010986,.0092546,.0097652,.0093207,.018123,.0207117,.019872,0,0,0,.0139753,.0181669,.0197339,.0130983,.0182157,.0063078,.0065345,.0062953,0,0,0,.0180332,.0206674,.0198309,.0136031,.017949,.019531,.0094444,.0100571,.0096423,.0047772,.0050158,.004821,.018123,.0207117,.019872,0,0,0,.0139753,.0181669,.0197339,.0130967,.0182159 +.0101866,.0105526,.0101663,1.03e-09,1.04e-09,1.04e-09,.0180328,.0206671,.0198307,.0135043,.0178884,.0195242,.010624,.0113136,.0108465,.0090731,.0095192,.0091732,.018123,.0207117,.019872,0,0,0,.0138834,.0181103,.0197308,.0129851,.0181606,.0061944,.0064169,.006182,0,0,0,.0180332,.0206674,.0198309,.0135045,.0178885,.0195243,.0093252,.0099302,.0095206,.0046747,.0049083,.0047176,.018123,.0207117,.019872,0,0,0,.0138834,.0181103,.0197308,.0129856,.0181605 +.0099352,.0102921,.0099154,1.81e-10,1.84e-10,1.83e-10,.0180331,.0206673,.0198308,.013406,.017828,.0195176,.0104899,.0111705,.0107099,.0088752,.0093097,.0089492,.018123,.0207117,.019872,0,0,0,.0137916,.0180538,.0197278,.0128746,.0181051,.0060829,.0063015,.0060708,0,0,0,.0180332,.0206674,.0198309,.013406,.0178281,.0195176,.0092074,.0098048,.0094003,.0045745,.004803,.0046165,.018123,.0207117,.019872,0,0,0,.0137916,.0180538,.0197278,.0128745,.0181051 +.0098008,.0101529,.0097813,3.19e-11,3.24e-11,3.23e-11,.0180332,.0206673,.0198309,.0133075,.0177676,.0195109,.0103576,.0110295,.0105745,.0086833,.0091221,.0087629,.018123,.0207117,.019872,0,0,0,.0136998,.0179972,.0197247,.0127633,.0180497,.0059735,.0061881,.0059616,0,0,0,.0180332,.0206674,.0198309,.0133075,.0177676,.0195109,.0090912,.009681,.0092817,.0044764,.0047001,.0045175,.018123,.0207117,.019872,0,0,0,.0136998,.0179972,.0197247,.0127633,.0180497 +.0095956,.0099404,.0095765,5.62e-12,5.71e-12,5.68e-12,.0180332,.0206674,.0198309,.013209,.0177072,.0195043,.0102267,.0108902,.0104411,.0084981,.008923,.0085784,.018123,.0207117,.019872,0,0,0,.0136079,.0179407,.0197217,.0126522,.0179943,.005866,.0060768,.0058543,0,0,0,.0180332,.0206674,.0198309,.013209,.0177072,.0195043,.0089764,.0095588,.0091645,.0043804,.0045993,.0044206,.018123,.0207117,.019872,0,0,0,.0136079,.0179407,.0197217,.0126522,.0179943 +.0094418,.009781,.0094229,9.89e-13,1.01e-12,1.00e-12,.0180332,.0206674,.0198309,.0131105,.0176468,.0194976,.0100977,.0107527,.0103092,.0083158,.0087299,.0083905,.018123,.0207117,.019872,0,0,0,.0135161,.0178842,.0197186,.0125411,.0179389,.0057605,.0059674,.005749,0,0,0,.0180332,.0206674,.0198309,.0131105,.0176468,.0194976,.0088631,.0094381,.0090488,.0042865,.0045007,.0043258,.018123,.0207117,.019872,0,0,0,.0135161,.0178842,.0197186,.0125411,.0179389 +.0092597,.0095923,.0092412,1.74e-13,1.77e-13,1.76e-13,.0180332,.0206674,.0198309,.013012,.0175863,.0194909,.0099702,.010617,.010179,.0081374,.0085444,.0082125,.018123,.0207117,.019872,0,0,0,.0134242,.0178276,.0197156,.01243,.0178835,.0056568,.0058601,.0056456,0,0,0,.0180332,.0206674,.0198309,.013012,.0175863,.0194909,.0087512,.0093189,.0089345,.0041946,.0044042,.0042331,.018123,.0207117,.019872,0,0,0,.0134242,.0178276,.0197156,.01243,.0178835 +.009101,.009428,.0090829,3.07e-14,3.12e-14,3.10e-14,.0180332,.0206674,.0198309,.0129135,.0175259,.0194842,.0098443,.0104829,.0100505,.007963,.0083609,.0080361,.018123,.0207117,.019872,0,0,0,.0133324,.0177711,.0197125,.0123189,.0178281,.0055551,.0057547,.005544,0,0,0,.0180332,.0206674,.0198309,.0129135,.0175259,.0194842,.0086407,.0092012,.0088217,.0041047,.0043097,.0041423,.018123,.0207117,.019872,0,0,0,.0133324,.0177711,.0197125,.0123189,.0178281 +.0089321,.009253,.0089143,5.40e-15,5.49e-15,5.47e-15,.0180332,.0206674,.0198309,.012815,.0174654,.0194775,.00972,.0103506,.0099236,.0077922,.0081813,.0078635,.018123,.0207117,.019872,0,0,0,.0132405,.0177145,.0197095,.0122077,.0177727,.0054551,.0056511,.0054442,0,0,0,.0180332,.0206674,.0198309,.012815,.0174654,.0194775,.0085316,.0090851,.0087103,.0040167,.0042173,.0040535,.018123,.0207117,.019872,0,0,0,.0132405,.0177145,.0197095,.0122077,.0177727 diff --git a/statsmodels/tsa/statespace/tests/results/results_kalman_filter.py b/statsmodels/tsa/statespace/tests/results/results_kalman_filter.py new file mode 100644 index 0000000..2699a58 --- /dev/null +++ b/statsmodels/tsa/statespace/tests/results/results_kalman_filter.py @@ -0,0 +1,807 @@ +""" +Results for Kalman Filter + +Author: Chad Fulton +License: Simplified-BSD + +Notes +----- + +There was an error in the loglikelihood computation in the GAUSS code from +Kim and Nelson for the Clark 1989 model, omitting the exponent term on +``2 pi''. Therefore the loglikelihood in the test results for uc_bi is instead +from the FKF R library, which can be replicated using the +``test_clark1989_r.R'' file. + +References +---------- + +Datasets produced using GAUSS code described in Kim and Nelson (1999) and +found at http://econ.korea.ac.kr/~cjkim/SSMARKOV.htm +Accessed 2013-11-18 +Code was run using OxGauss 7. + +Kim, Chang-Jin, and Charles R. Nelson. 1999. +"State-Space Models with Regime Switching: +Classical and Gibbs-Sampling Approaches with Applications". +MIT Press Books. The MIT Press. + +""" + +""" +Clark's (1987) Univariate Unobserved Components model of GDP + +See http://econ.korea.ac.kr/~cjkim/MARKOV/prgmlist.htm#chapter3 + +Gauss Code: UC_UNI.OPT +Dataset: GDP4795.PRN +""" +uc_uni = { + 'data': [ + 1239.5, 1247.19995117, 1255, 1269.5, 1284, 1295.69995117, + 1303.80004883, 1316.40002441, 1305.30004883, 1302, 1312.59997559, + 1301.90002441, 1350.90002441, 1393.5, 1445.19995117, 1484.5, + 1504.09997559, 1548.30004883, 1585.40002441, 1596, 1607.69995117, + 1612.09997559, 1621.90002441, 1657.80004883, 1687.30004883, + 1695.30004883, 1687.90002441, 1671.19995117, 1660.80004883, + 1658.40002441, 1677.69995117, 1698.30004883, 1742.5, 1758.59997559, + 1778.19995117, 1793.90002441, 1787, 1798.5, 1802.19995117, + 1826.59997559, 1836.40002441, 1834.80004883, 1851.19995117, 1830.5, + 1790.09997559, 1804.40002441, 1840.90002441, 1880.90002441, + 1904.90002441, 1937.5, 1930.80004883, 1941.90002441, 1976.90002441, + 1971.69995117, 1973.69995117, 1961.09997559, 1977.40002441, 2006, + 2035.19995117, 2076.5, 2103.80004883, 2125.69995117, 2142.60009766, + 2140.19995117, 2170.89990234, 2199.5, 2237.60009766, 2254.5, + 2311.10009766, 2329.89990234, 2357.39990234, 2364, 2410.10009766, + 2442.80004883, 2485.5, 2543.80004883, 2596.80004883, 2601.39990234, + 2626.10009766, 2640.5, 2657.19995117, 2669, 2699.5, 2715.10009766, + 2752.10009766, 2796.89990234, 2816.80004883, 2821.69995117, + 2864.60009766, 2867.80004883, 2884.5, 2875.10009766, 2867.80004883, + 2859.5, 2895, 2873.30004883, 2939.89990234, 2944.19995117, + 2962.30004883, 2977.30004883, 3037.30004883, 3089.69995117, + 3125.80004883, 3175.5, 3253.30004883, 3267.60009766, 3264.30004883, + 3289.10009766, 3259.39990234, 3267.60009766, 3239.10009766, + 3226.39990234, 3154, 3190.39990234, 3249.89990234, 3292.5, + 3356.69995117, 3369.19995117, 3381, 3416.30004883, 3466.39990234, 3525, + 3574.39990234, 3567.19995117, 3591.80004883, 3707, 3735.60009766, + 3779.60009766, 3780.80004883, 3784.30004883, 3807.5, 3814.60009766, + 3830.80004883, 3732.60009766, 3733.5, 3808.5, 3860.5, 3844.39990234, + 3864.5, 3803.10009766, 3756.10009766, 3771.10009766, 3754.39990234, + 3759.60009766, 3783.5, 3886.5, 3944.39990234, 4012.10009766, 4089.5, + 4144, 4166.39990234, 4194.20019531, 4221.79980469, 4254.79980469, 4309, + 4333.5, 4390.5, 4387.70019531, 4412.60009766, 4427.10009766, 4460, + 4515.29980469, 4559.29980469, 4625.5, 4655.29980469, 4704.79980469, + 4734.5, 4779.70019531, 4817.60009766, 4839, 4839, 4856.70019531, + 4898.29980469, 4917.10009766, 4906.5, 4867.20019531, 4842, + 4867.89990234, 4879.89990234, 4880.79980469, 4918.5, 4947.5, 4990.5, + 5060.70019531, 5075.29980469, 5105.39990234, 5139.39990234, 5218, + 5261.10009766, 5314.10009766, 5367, 5433.79980469, 5470.10009766, + 5487.79980469, 5544.60009766 + ], + 'start': 21-1, + 'parameters': [0.005539, 0.006164, 0.000184, 1.531659, -0.585422], + 'standard_errors': [0.000000, 0.000000, 0.000000, 0.000000, 0.000000], + 'loglike': 578.520887, + 'states': [ + [7.369243, 0.013317, 0.018762], + [7.374220, 0.011073, 0.016581], + [7.385527, 0.005826, 0.015828], + [7.416916, -0.003669, 0.017851], + [7.434130, -0.003245, 0.017775], + [7.433819, 0.001796, 0.015781], + [7.427416, 0.003825, 0.013508], + [7.419109, 0.002189, 0.011420], + [7.419253, -0.004198, 0.010408], + [7.424214, -0.010605, 0.009947], + [7.443116, -0.017937, 0.010663], + [7.455732, -0.018349, 0.010810], + [7.483689, -0.020612, 0.012044], + [7.484287, -0.012014, 0.011259], + [7.493577, -0.010220, 0.011130], + [7.500748, -0.008601, 0.010882], + [7.493715, -0.005422, 0.009805], + [7.504849, -0.010140, 0.009882], + [7.507452, -0.010689, 0.009477], + [7.524476, -0.014264, 0.009882], + [7.527391, -0.011828, 0.009521], + [7.525478, -0.010787, 0.008949], + [7.537758, -0.014169, 0.009110], + [7.523893, -0.011549, 0.008031], + [7.504850, -0.014823, 0.006795], + [7.524920, -0.026937, 0.007384], + [7.547145, -0.029135, 0.008024], + [7.563759, -0.024254, 0.008385], + [7.569019, -0.016834, 0.008257], + [7.582139, -0.012985, 0.008452], + [7.573090, -0.007400, 0.007768], + [7.581280, -0.009858, 0.007784], + [7.600320, -0.011035, 0.008205], + [7.593454, -0.006802, 0.007653], + [7.596716, -0.009050, 0.007495], + [7.592481, -0.011220, 0.007082], + [7.605464, -0.015926, 0.007286], + [7.619716, -0.015818, 0.007523], + [7.630873, -0.012524, 0.007644], + [7.647019, -0.008580, 0.007924], + [7.654471, -0.002971, 0.007909], + [7.661563, 0.000293, 0.007883], + [7.667909, 0.001866, 0.007834], + [7.666825, 0.001830, 0.007557], + [7.683710, -0.000813, 0.007843], + [7.695061, 0.000925, 0.007950], + [7.709743, 0.003416, 0.008151], + [7.714033, 0.006650, 0.008037], + [7.737525, 0.007954, 0.008490], + [7.740667, 0.012914, 0.008335], + [7.751712, 0.013603, 0.008412], + [7.754422, 0.013689, 0.008250], + [7.775189, 0.012235, 0.008603], + [7.785979, 0.014922, 0.008664], + [7.801228, 0.017002, 0.008847], + [7.820961, 0.020453, 0.009147], + [7.836561, 0.025474, 0.009324], + [7.835776, 0.028029, 0.009049], + [7.848074, 0.025181, 0.009137], + [7.855709, 0.023015, 0.009097], + [7.864971, 0.020057, 0.009101], + [7.872361, 0.017098, 0.009056], + [7.886320, 0.014502, 0.009185], + [7.893144, 0.013440, 0.009123], + [7.908033, 0.012086, 0.009274], + [7.923091, 0.013175, 0.009425], + [7.928928, 0.014429, 0.009331], + [7.932574, 0.012521, 0.009184], + [7.950084, 0.010100, 0.009399], + [7.951667, 0.009634, 0.009198], + [7.960694, 0.006413, 0.009194], + [7.960971, 0.002871, 0.008966], + [7.964212, -0.002912, 0.008821], + [7.967149, -0.008747, 0.008671], + [7.983160, -0.012419, 0.008857], + [7.977084, -0.013868, 0.008480], + [8.002177, -0.016046, 0.008899], + [8.000570, -0.012977, 0.008634], + [8.007643, -0.013921, 0.008595], + [8.013407, -0.014635, 0.008524], + [8.032255, -0.013530, 0.008783], + [8.044336, -0.008506, 0.008865], + [8.051776, -0.004330, 0.008829], + [8.064664, -0.001444, 0.008931], + [8.084189, 0.003236, 0.009194], + [8.084259, 0.007552, 0.008967], + [8.085181, 0.005620, 0.008768], + [8.096245, 0.002124, 0.008825], + [8.090934, -0.001635, 0.008474], + [8.099770, -0.007958, 0.008483], + [8.096154, -0.013103, 0.008184], + [8.099051, -0.019929, 0.008054], + [8.084586, -0.028159, 0.007498], + [8.104155, -0.036254, 0.007795], + [8.120386, -0.034007, 0.008003], + [8.127820, -0.028418, 0.007989], + [8.141545, -0.022832, 0.008131], + [8.140564, -0.018133, 0.007906], + [8.143851, -0.017924, 0.007793], + [8.154123, -0.017810, 0.007854], + [8.166200, -0.015328, 0.007958], + [8.178658, -0.011022, 0.008068], + [8.187909, -0.006356, 0.008097], + [8.184427, -0.004891, 0.007813], + [8.193450, -0.007041, 0.007842], + [8.222013, -0.004035, 0.008351], + [8.222792, 0.002872, 0.008165], + [8.232604, 0.004769, 0.008206], + [8.232920, 0.004771, 0.008012], + [8.237120, 0.001496, 0.007919], + [8.246178, -0.001449, 0.007947], + [8.250045, -0.003453, 0.007847], + [8.256698, -0.005869, 0.007817], + [8.236922, -0.012061, 0.007141], + [8.247774, -0.022672, 0.007232], + [8.269118, -0.024127, 0.007578], + [8.277812, -0.019260, 0.007605], + [8.271764, -0.017391, 0.007270], + [8.279040, -0.019452, 0.007271], + [8.266583, -0.023011, 0.006787], + [8.262738, -0.031602, 0.006527], + [8.272654, -0.037532, 0.006610], + [8.270217, -0.039533, 0.006388], + [8.273835, -0.041767, 0.006320], + [8.280077, -0.041673, 0.006319], + [8.301972, -0.036708, 0.006700], + [8.307430, -0.027378, 0.006670], + [8.317328, -0.020258, 0.006749], + [8.329307, -0.013129, 0.006877], + [8.336112, -0.006696, 0.006875], + [8.338223, -0.003415, 0.006758], + [8.344312, -0.002854, 0.006742], + [8.350658, -0.002641, 0.006732], + [8.358162, -0.002359, 0.006751], + [8.369502, -0.001041, 0.006863], + [8.373472, 0.000659, 0.006793], + [8.385533, 0.001666, 0.006922], + [8.384242, 0.002319, 0.006721], + [8.391933, 0.000286, 0.006744], + [8.396505, -0.001005, 0.006691], + [8.404956, -0.002052, 0.006734], + [8.416432, -0.001205, 0.006850], + [8.424022, 0.000903, 0.006868], + [8.436123, 0.003217, 0.006996], + [8.440287, 0.005474, 0.006927], + [8.450172, 0.006167, 0.007000], + [8.455752, 0.006879, 0.006965], + [8.465200, 0.006933, 0.007026], + [8.472627, 0.007404, 0.007035], + [8.477446, 0.007018, 0.006981], + [8.479558, 0.004906, 0.006862], + [8.486204, 0.001911, 0.006857], + [8.496122, 0.000521, 0.006932], + [8.500348, 0.000127, 0.006865], + [8.500417, -0.002101, 0.006699], + [8.497303, -0.007029, 0.006459], + [8.498474, -0.013391, 0.006329], + [8.507865, -0.017447, 0.006404], + [8.511353, -0.018473, 0.006333], + [8.512856, -0.019792, 0.006215], + [8.521315, -0.020556, 0.006270], + [8.526119, -0.019481, 0.006234], + [8.533359, -0.018068, 0.006258], + [8.544398, -0.015138, 0.006375], + [8.544422, -0.012281, 0.006220], + [8.550013, -0.011958, 0.006205], + [8.556038, -0.011346, 0.006200], + [8.569108, -0.009239, 0.006368], + [8.573833, -0.005737, 0.006328], + [8.581719, -0.003600, 0.006366], + [8.589473, -0.001449, 0.006400], + [8.599466, 0.000928, 0.006488], + [8.604040, 0.003012, 0.006441], + [8.607332, 0.002951, 0.006364], + [8.618016, 0.002564, 0.006470] + ] +} + +""" +Clark's (1989) Bivariate Unobserved Components model of GDP + +See http://econ.korea.ac.kr/~cjkim/MARKOV/prgmlist.htm#chapter3 + +Gauss Code: UC_BI.OPT +Datasets: GDP4795.PRN, LHUR.PRN + +""" +uc_bi = { + 'data': [ + [1239.5, 0], [1247.199951, 0], + [1255, 0], [1269.5, 0], + [1284, 3.733333349], [1295.699951, 3.666666667], + [1303.800049, 3.766666651], [1316.400024, 3.833333333], + [1305.300049, 4.666666667], [1302, 5.866666635], + [1312.599976, 6.699999968], [1301.900024, 6.966666698], + [1350.900024, 6.400000095], [1393.5, 5.566666762], + [1445.199951, 4.633333365], [1484.5, 4.23333327], + [1504.099976, 3.500000079], [1548.300049, 3.099999984], + [1585.400024, 3.166666587], [1596, 3.366666635], + [1607.699951, 3.066666683], [1612.099976, 2.966666698], + [1621.900024, 3.233333349], [1657.800049, 2.833333333], + [1687.300049, 2.699999968], [1695.300049, 2.566666683], + [1687.900024, 2.733333349], [1671.199951, 3.699999968], + [1660.800049, 5.266666571], [1658.400024, 5.800000032], + [1677.699951, 5.966666698], [1698.300049, 5.333333333], + [1742.5, 4.73333327], [1758.599976, 4.399999936], + [1778.199951, 4.099999905], [1793.900024, 4.23333327], + [1787, 4.033333302], [1798.5, 4.200000127], + [1802.199951, 4.133333365], [1826.599976, 4.133333365], + [1836.400024, 3.933333317], [1834.800049, 4.100000064], + [1851.199951, 4.23333327], [1830.5, 4.933333238], + [1790.099976, 6.300000032], [1804.400024, 7.366666794], + [1840.900024, 7.333333333], [1880.900024, 6.366666476], + [1904.900024, 5.833333333], [1937.5, 5.099999905], + [1930.800049, 5.266666571], [1941.900024, 5.600000064], + [1976.900024, 5.133333365], [1971.699951, 5.23333327], + [1973.699951, 5.533333302], [1961.099976, 6.266666571], + [1977.400024, 6.800000032], [2006, 7], + [2035.199951, 6.766666571], [2076.5, 6.199999968], + [2103.800049, 5.633333365], [2125.699951, 5.533333302], + [2142.600098, 5.566666603], [2140.199951, 5.533333302], + [2170.899902, 5.766666571], [2199.5, 5.73333327], + [2237.600098, 5.5], [2254.5, 5.566666603], + [2311.100098, 5.466666698], [2329.899902, 5.199999968], + [2357.399902, 5], [2364, 4.966666698], + [2410.100098, 4.899999936], [2442.800049, 4.666666667], + [2485.5, 4.366666794], [2543.800049, 4.099999905], + [2596.800049, 3.866666635], [2601.399902, 3.833333333], + [2626.100098, 3.766666651], [2640.5, 3.699999968], + [2657.199951, 3.833333333], [2669, 3.833333333], + [2699.5, 3.799999952], [2715.100098, 3.900000016], + [2752.100098, 3.733333349], [2796.899902, 3.566666683], + [2816.800049, 3.533333381], [2821.699951, 3.400000095], + [2864.600098, 3.400000095], [2867.800049, 3.433333397], + [2884.5, 3.566666683], [2875.100098, 3.566666683], + [2867.800049, 4.166666667], [2859.5, 4.76666673], + [2895, 5.166666667], [2873.300049, 5.833333333], + [2939.899902, 5.933333397], [2944.199951, 5.900000095], + [2962.300049, 6.033333302], [2977.300049, 5.933333397], + [3037.300049, 5.76666673], [3089.699951, 5.699999809], + [3125.800049, 5.566666603], [3175.5, 5.366666635], + [3253.300049, 4.933333397], [3267.600098, 4.933333397], + [3264.300049, 4.800000191], [3289.100098, 4.76666673], + [3259.399902, 5.133333206], [3267.600098, 5.199999968], + [3239.100098, 5.633333365], [3226.399902, 6.599999905], + [3154, 8.266667048], [3190.399902, 8.866666794], + [3249.899902, 8.46666654], [3292.5, 8.299999873], + [3356.699951, 7.73333327], [3369.199951, 7.566666603], + [3381, 7.733333429], [3416.300049, 7.76666673], + [3466.399902, 7.5], [3525, 7.133333206], + [3574.399902, 6.900000095], [3567.199951, 6.666666826], + [3591.800049, 6.333333492], [3707, 6], + [3735.600098, 6.033333302], [3779.600098, 5.900000095], + [3780.800049, 5.866666794], [3784.300049, 5.699999968], + [3807.5, 5.866666635], [3814.600098, 5.966666698], + [3830.800049, 6.300000191], [3732.600098, 7.333333333], + [3733.5, 7.666666667], [3808.5, 7.399999936], + [3860.5, 7.433333397], [3844.399902, 7.399999936], + [3864.5, 7.399999936], [3803.100098, 8.233333429], + [3756.100098, 8.833333333], [3771.100098, 9.433333397], + [3754.399902, 9.900000254], [3759.600098, 10.66666667], + [3783.5, 10.36666648], [3886.5, 10.13333352], + [3944.399902, 9.366666476], [4012.100098, 8.53333346], + [4089.5, 7.866666794], [4144, 7.433333238], + [4166.399902, 7.433333397], [4194.200195, 7.300000032], + [4221.799805, 7.23333327], [4254.799805, 7.300000032], + [4309, 7.199999968], [4333.5, 7.033333302], + [4390.5, 7.033333143], [4387.700195, 7.166666508], + [4412.600098, 6.966666698], [4427.100098, 6.833333333], + [4460, 6.599999905], [4515.299805, 6.26666673], + [4559.299805, 6], [4625.5, 5.833333333], + [4655.299805, 5.699999809], [4704.799805, 5.466666698], + [4734.5, 5.466666698], [4779.700195, 5.333333492], + [4817.600098, 5.199999968], [4839, 5.23333327], + [4839, 5.23333327], [4856.700195, 5.366666794], + [4898.299805, 5.300000032], [4917.100098, 5.333333333], + [4906.5, 5.699999968], [4867.200195, 6.133333365], + [4842, 6.600000064], [4867.899902, 6.833333333], + [4879.899902, 6.866666794], [4880.799805, 7.100000064], + [4918.5, 7.366666794], [4947.5, 7.600000064], + [4990.5, 7.633333206], [5060.700195, 7.366666794], + [5075.299805, 7.133333365], [5105.399902, 7.066666603], + [5139.399902, 6.800000032], [5218, 6.633333365], + [5261.100098, 6.633333206], [5314.100098, 6.199999968], + [5367, 6], [5433.799805, 5.566666603], + [5470.100098, 5.533333302], [5487.799805, 5.633333206], + [5544.600098, 5.633333206] + ], + 'start': 21-4-1, + 'parameters': [ + 0.004863, 0.00668, 0.000295, 0.001518, 0.000306, 1.43859, -0.517385, + -0.336789, -0.163511, -0.072012 + ], + 'standard_errors': [ + 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, + 0.000000, 0.000000, 0.000000 + ], + # See Notes in the file docstring for more information on the loglikelihood + # 'loglike': 1566.994602, + 'loglike': 1485.41934, + 'states': [ + [7.359396, 0.023164, 0.013713, 0.044071], + [7.362719, 0.022574, 0.012832, 0.043161], + [7.373038, 0.018315, 0.012796, 0.044467], + [7.393634, 0.019613, 0.012635, 0.037801], + [7.408780, 0.022105, 0.012863, 0.038367], + [7.414012, 0.021603, 0.012370, 0.038493], + [7.414058, 0.017182, 0.011659, 0.039431], + [7.416921, 0.004376, 0.011582, 0.044744], + [7.429820, -0.014765, 0.012230, 0.051206], + [7.435752, -0.022143, 0.011632, 0.048723], + [7.447268, -0.022089, 0.011509, 0.047309], + [7.450937, -0.013554, 0.010723, 0.043338], + [7.467363, -0.004287, 0.010903, 0.041325], + [7.472477, -0.000204, 0.010666, 0.042662], + [7.480909, 0.002448, 0.010461, 0.041647], + [7.491498, 0.000649, 0.010580, 0.043180], + [7.487065, 0.001229, 0.009635, 0.041911], + [7.495837, -0.001129, 0.009609, 0.042236], + [7.497666, -0.000903, 0.009111, 0.041357], + [7.510478, -0.000266, 0.009281, 0.040804], + [7.513518, 0.002045, 0.008890, 0.040138], + [7.516030, -0.001339, 0.008633, 0.041623], + [7.526775, -0.003186, 0.008721, 0.041167], + [7.526058, -0.013713, 0.008459, 0.045277], + [7.524449, -0.034422, 0.008246, 0.050757], + [7.544061, -0.046078, 0.008895, 0.051237], + [7.558430, -0.040420, 0.009045, 0.048770], + [7.563474, -0.023969, 0.008620, 0.045247], + [7.568520, -0.016336, 0.008491, 0.046358], + [7.575711, -0.006557, 0.008303, 0.044317], + [7.576186, -0.010497, 0.008082, 0.047851], + [7.587245, -0.015823, 0.008289, 0.048671], + [7.596353, -0.007068, 0.008129, 0.045036], + [7.595725, -0.009074, 0.007813, 0.047808], + [7.602240, -0.014574, 0.007805, 0.048940], + [7.606393, -0.025132, 0.007768, 0.051857], + [7.620310, -0.030772, 0.008121, 0.052282], + [7.634385, -0.030487, 0.008445, 0.052385], + [7.643520, -0.025171, 0.008447, 0.051739], + [7.653856, -0.015416, 0.008463, 0.050131], + [7.658758, -0.007257, 0.008248, 0.049650], + [7.668470, -0.006613, 0.008393, 0.050929], + [7.677398, -0.007622, 0.008453, 0.051544], + [7.676653, -0.007998, 0.007963, 0.051552], + [7.693051, -0.010154, 0.008439, 0.052071], + [7.704488, -0.008503, 0.008587, 0.051841], + [7.717178, -0.004019, 0.008767, 0.051084], + [7.726080, -0.005396, 0.008853, 0.052655], + [7.747984, -0.002505, 0.009499, 0.051686], + [7.752362, 0.001219, 0.009225, 0.051659], + [7.761774, 0.003541, 0.009215, 0.051256], + [7.765241, 0.002870, 0.008933, 0.051734], + [7.782698, 0.004726, 0.009337, 0.050749], + [7.792415, 0.008486, 0.009331, 0.050208], + [7.805420, 0.012809, 0.009482, 0.049330], + [7.824241, 0.017173, 0.009946, 0.048673], + [7.841661, 0.020374, 0.010335, 0.048518], + [7.845477, 0.018328, 0.010035, 0.049472], + [7.855021, 0.018234, 0.009954, 0.048333], + [7.860222, 0.018502, 0.009674, 0.047770], + [7.869432, 0.015597, 0.009665, 0.048076], + [7.874754, 0.014705, 0.009402, 0.047404], + [7.885524, 0.015297, 0.009434, 0.046559], + [7.893504, 0.013081, 0.009381, 0.047074], + [7.904608, 0.015511, 0.009399, 0.045546], + [7.917944, 0.018323, 0.009577, 0.044894], + [7.925926, 0.017430, 0.009516, 0.045383], + [7.927535, 0.017559, 0.009058, 0.044576], + [7.942312, 0.017872, 0.009324, 0.043809], + [7.945307, 0.015993, 0.009010, 0.044250], + [7.954008, 0.013098, 0.008988, 0.044131], + [7.952052, 0.011791, 0.008384, 0.043624], + [7.959391, 0.001910, 0.008428, 0.045708], + [7.965660, -0.007258, 0.008362, 0.046727], + [7.981621, -0.010881, 0.008753, 0.046477], + [7.984173, -0.020957, 0.008572, 0.049592], + [8.005586, -0.019456, 0.009162, 0.047685], + [8.005729, -0.018136, 0.008728, 0.048606], + [8.014046, -0.020325, 0.008746, 0.049461], + [8.017136, -0.018363, 0.008419, 0.048869], + [8.032555, -0.013831, 0.008752, 0.048074], + [8.047624, -0.011794, 0.009127, 0.048945], + [8.057447, -0.010002, 0.009179, 0.049253], + [8.069676, -0.006456, 0.009316, 0.048733], + [8.086067, 0.001358, 0.009622, 0.047288], + [8.091964, -0.000153, 0.009522, 0.049344], + [8.091093, -0.000292, 0.008944, 0.048749], + [8.097901, 0.000468, 0.008797, 0.048031], + [8.095928, -0.006630, 0.008327, 0.050163], + [8.099455, -0.007644, 0.008011, 0.048832], + [8.097491, -0.014440, 0.007571, 0.050705], + [8.107855, -0.028733, 0.007866, 0.053837], + [8.110267, -0.053840, 0.007861, 0.059886], + [8.125657, -0.057755, 0.008165, 0.057870], + [8.132368, -0.045989, 0.007976, 0.055472], + [8.141350, -0.041948, 0.008115, 0.057302], + [8.151163, -0.032449, 0.008143, 0.055996], + [8.152718, -0.030287, 0.007876, 0.057718], + [8.159199, -0.033272, 0.007876, 0.059298], + [8.168512, -0.032198, 0.007945, 0.059157], + [8.177076, -0.026204, 0.007940, 0.058345], + [8.187094, -0.019458, 0.008032, 0.057956], + [8.197282, -0.015729, 0.008171, 0.058494], + [8.193424, -0.013887, 0.007551, 0.058849], + [8.195445, -0.009036, 0.007189, 0.057355], + [8.219129, -0.001151, 0.007994, 0.055918], + [8.228193, -0.002529, 0.008171, 0.058480], + [8.238694, -0.001321, 0.008265, 0.057875], + [8.239265, -0.001575, 0.007876, 0.058242], + [8.238615, 0.000002, 0.007380, 0.057294], + [8.247042, -0.002314, 0.007465, 0.057928], + [8.250763, -0.004172, 0.007278, 0.058161], + [8.259723, -0.008894, 0.007418, 0.059249], + [8.251776, -0.026916, 0.006833, 0.064114], + [8.255284, -0.030182, 0.006553, 0.061881], + [8.266278, -0.021287, 0.006670, 0.059379], + [8.278996, -0.020444, 0.007088, 0.061459], + [8.276100, -0.021727, 0.006610, 0.062542], + [8.280788, -0.021201, 0.006491, 0.062160], + [8.278326, -0.034755, 0.006232, 0.066766], + [8.274878, -0.043742, 0.005752, 0.067439], + [8.284140, -0.049018, 0.005975, 0.068240], + [8.284696, -0.054013, 0.005779, 0.070185], + [8.295259, -0.063191, 0.006173, 0.073204], + [8.294049, -0.055644, 0.005677, 0.070929], + [8.312751, -0.047486, 0.006364, 0.070890], + [8.314987, -0.034935, 0.006106, 0.070042], + [8.319216, -0.022145, 0.005948, 0.068793], + [8.328130, -0.011952, 0.006079, 0.068246], + [8.335603, -0.006186, 0.006168, 0.068566], + [8.342256, -0.007448, 0.006264, 0.070071], + [8.347204, -0.005746, 0.006165, 0.069450], + [8.352469, -0.004453, 0.006117, 0.069428], + [8.361097, -0.005294, 0.006276, 0.069985], + [8.371490, -0.003029, 0.006466, 0.069408], + [8.374839, -0.000708, 0.006297, 0.069321], + [8.387558, -0.000360, 0.006647, 0.069525], + [8.389888, -0.003327, 0.006475, 0.070742], + [8.392638, -0.000419, 0.006204, 0.069151], + [8.393948, 0.001552, 0.005933, 0.068889], + [8.398118, 0.004786, 0.005795, 0.067943], + [8.405206, 0.010021, 0.005807, 0.066720], + [8.411466, 0.013458, 0.005815, 0.066388], + [8.423676, 0.015664, 0.006137, 0.066035], + [8.429154, 0.016608, 0.006101, 0.066025], + [8.436810, 0.019528, 0.006129, 0.064861], + [8.443949, 0.018683, 0.006201, 0.065261], + [8.452078, 0.020055, 0.006258, 0.064296], + [8.458518, 0.021513, 0.006241, 0.063727], + [8.464632, 0.019831, 0.006247, 0.063995], + [8.466064, 0.018399, 0.005975, 0.063618], + [8.472230, 0.015884, 0.005980, 0.063519], + [8.479638, 0.017005, 0.006004, 0.062420], + [8.484587, 0.015887, 0.005959, 0.062648], + [8.489326, 0.008990, 0.005964, 0.064131], + [8.488979, 0.001295, 0.005670, 0.064976], + [8.490673, -0.005590, 0.005482, 0.065457], + [8.497926, -0.007508, 0.005549, 0.064894], + [8.500109, -0.007229, 0.005365, 0.064766], + [8.503909, -0.010844, 0.005337, 0.065932], + [8.514619, -0.013860, 0.005646, 0.066461], + [8.522892, -0.016254, 0.005824, 0.067295], + [8.530933, -0.015642, 0.005937, 0.067215], + [8.539466, -0.010206, 0.006025, 0.066154], + [8.539379, -0.007238, 0.005717, 0.066474], + [8.544783, -0.006729, 0.005709, 0.066661], + [8.547336, -0.002645, 0.005492, 0.065594], + [8.559110, 0.000759, 0.005808, 0.065240], + [8.567654, 0.000441, 0.005997, 0.066197], + [8.571449, 0.006669, 0.005791, 0.064272], + [8.578487, 0.009537, 0.005855, 0.064241], + [8.584874, 0.015520, 0.005811, 0.062693], + [8.592063, 0.014989, 0.005925, 0.063559], + [8.598175, 0.012108, 0.005956, 0.064012], + [8.608197, 0.012383, 0.006133, 0.063200] + ] +} + +""" +Kim and Nelson's (1989) time-varying parameters model of monetary growth + +See http://econ.korea.ac.kr/~cjkim/MARKOV/prgmlist.htm#chapter3 + +Gauss Code: TVP.OPT +Datasets: TVP.PRN + +""" +tvp = { + 'data': [ + [59.300000, 0.751356, 0.226667, 0.191755, 0.103000, 0.828304], + [59.400000, -0.869262, 0.540000, 0.496848, 0.044000, 0.751356], + [60.100000, -0.259896, 0.690000, 0.608136, 0.058000, -0.869262], + [60.200000, -0.165737, -0.356667, 0.113615, 0.188000, -0.259896], + [60.300000, 0.943401, -0.880000, 0.603775, 0.126000, -0.165737], + [60.400000, -0.046962, -0.633333, 0.037615, 0.087000, 0.943401], + [61.100000, 0.538708, -0.053333, 0.637303, 0.096000, -0.046962], + [61.200000, 0.767892, 0.043333, 0.223964, -0.004000, 0.538708], + [61.300000, 0.600882, -0.046667, -0.037292, -0.043000, 0.767892], + [61.400000, 0.940261, 0.000000, 0.409455, -0.034000, 0.600882], + [62.100000, 0.637094, 0.156667, 0.111379, -0.059000, 0.940261], + [62.200000, 0.700645, 0.263333, 0.407333, -0.201000, 0.637094], + [62.300000, -0.112678, -0.010000, 0.368868, -0.169000, 0.700645], + [62.400000, 0.562120, 0.126667, 0.257401, -0.145000, -0.112678], + [63.100000, 1.026110, -0.026667, 0.256739, -0.122000, 0.562120], + [63.200000, 0.949756, 0.093333, 0.329128, -0.070000, 1.026110], + [63.300000, 1.006140, 0.030000, 0.182382, 0.029000, 0.949756], + [63.400000, 0.953003, 0.356667, 0.581397, -0.045000, 1.006140], + [64.100000, 0.687438, 0.203333, 0.289436, -0.076000, 0.953003], + [64.200000, 0.704003, 0.033333, 0.432589, -0.225000, 0.687438], + [64.300000, 1.623650, -0.053333, 0.143781, -0.337000, 0.704003], + [64.400000, 1.288460, 0.020000, 0.179437, -0.220000, 1.623650], + [65.100000, 0.740592, 0.186667, 0.500716, -0.151000, 1.288460], + [65.200000, 0.592627, 0.206667, 0.320570, -0.051000, 0.740592], + [65.300000, 1.154680, -0.016667, 0.638074, -0.105000, 0.592627], + [65.400000, 1.816230, -0.006667, 0.282287, -0.348000, 1.154680], + [66.100000, 1.706090, 0.300000, 0.527149, -0.441000, 1.816230], + [66.200000, 1.063740, 0.443333, 0.941922, -0.397000, 1.706090], + [66.300000, -0.288990, -0.023333, 0.898727, -0.352000, 1.063740], + [66.400000, 0.269746, 0.456667, 0.856609, -0.492000, -0.288990], + [67.100000, 1.014660, 0.166667, 0.815499, -0.547000, 0.269746], + [67.200000, 1.399680, -0.696667, 0.337838, -0.715000, 1.014660], + [67.300000, 2.192170, -0.853333, 0.538179, -0.707000, 1.399680], + [67.400000, 1.586030, 0.640000, 1.034550, -0.749000, 2.192170], + [68.100000, 1.347370, 0.453333, 0.958213, -0.709000, 1.586030], + [68.200000, 1.698550, 0.296667, 1.079320, -0.641000, 1.347370], + [68.300000, 1.928650, 0.470000, 0.971196, -0.763000, 1.698550], + [68.400000, 2.111430, -0.323333, 1.280420, -0.520000, 1.928650], + [69.100000, 1.786810, 0.390000, 1.232830, -0.389000, 2.111430], + [69.200000, 0.807717, 0.506667, 1.217810, -0.147000, 1.786810], + [69.300000, 0.425952, 0.103333, 1.509340, -0.096000, 0.807717], + [69.400000, 0.765415, 0.826667, 1.456780, -0.184000, 0.425952], + [70.100000, 1.048990, 0.330000, 1.435860, -0.136000, 0.765415], + [70.200000, 0.735771, -0.143333, 1.620310, -0.124000, 1.048990], + [70.300000, 1.345490, -0.533333, 1.392940, -0.331000, 0.735771], + [70.400000, 1.776580, -0.346667, 1.117650, -0.380000, 1.345490], + [71.100000, 1.715200, -0.976667, 1.386750, -0.369000, 1.776580], + [71.200000, 2.103440, -1.513330, 0.839635, -0.421000, 1.715200], + [71.300000, 1.709950, 0.410000, 0.943139, -0.474000, 2.103440], + [71.400000, 0.945527, 0.760000, 1.016360, -0.444000, 1.709950], + [72.100000, 1.935680, -0.780000, 0.653775, -0.354000, 0.945527], + [72.200000, 1.633840, -0.793333, 0.892018, -0.213000, 1.935680], + [72.300000, 2.046530, 0.333333, 0.590286, -0.448000, 1.633840], + [72.400000, 2.460580, 0.450000, 0.878951, -0.242000, 2.046530], + [73.100000, 1.996500, 0.643333, 1.002650, -0.614000, 2.460580], + [73.200000, 1.171280, 0.836667, 1.511230, -0.421000, 1.996500], + [73.300000, 1.183290, 0.903333, 2.022340, -0.393000, 1.171280], + [73.400000, 1.245250, 1.720000, 2.031930, -0.234000, 1.183290], + [74.100000, 1.665560, -0.823333, 2.452910, -0.238000, 1.245250], + [74.200000, 0.890214, 0.116667, 2.936820, -0.210000, 1.665560], + [74.300000, 0.894558, 0.536667, 2.601170, -0.253000, 0.890214], + [74.400000, 1.200520, 0.036667, 2.869930, -0.062000, 0.894558], + [75.100000, 0.708670, -0.830000, 3.049490, -0.199000, 1.200520], + [75.200000, 1.543970, -1.610000, 2.053110, -0.328000, 0.708670], + [75.300000, 1.833420, -0.356667, 1.220290, -1.242000, 1.543970], + [75.400000, 0.806734, 0.936667, 1.987640, -0.643000, 1.833420], + [76.100000, 1.334040, -0.703333, 1.848330, -0.680000, 0.806734], + [76.200000, 1.628970, -0.710000, 1.140580, -0.567000, 1.334040], + [76.300000, 1.064080, 0.240000, 0.832182, -0.469000, 1.628970], + [76.400000, 1.943510, -0.006667, 1.546780, -0.528000, 1.064080], + [77.100000, 2.298210, -0.476667, 1.427490, -0.561000, 1.943510], + [77.200000, 1.718220, -0.043333, 1.840840, -0.331000, 2.298210], + [77.300000, 1.689200, 0.210000, 1.770610, -0.441000, 1.718220], + [77.400000, 2.092150, 0.656667, 1.376040, -0.682000, 1.689200], + [78.100000, 1.921800, 0.613333, 1.447210, -0.601000, 2.092150], + [78.200000, 2.193200, 0.283333, 1.691790, -0.572000, 1.921800], + [78.300000, 2.023920, 0.083333, 2.286910, -0.440000, 2.193200], + [78.400000, 1.771440, 0.836667, 2.269530, -0.429000, 2.023920], + [79.100000, 1.221600, 1.256670, 2.318120, -0.417000, 1.771440], + [79.200000, 1.827280, 0.813333, 2.458800, -0.223000, 1.221600], + [79.300000, 3.401510, -0.006667, 3.197490, -0.123000, 1.827280], + [79.400000, 1.120030, 0.296667, 3.143710, -0.306000, 3.401510], + [80.100000, 1.082200, 2.170000, 3.121070, -0.335000, 1.120030], + [80.200000, -1.494280, 1.510000, 3.860710, -0.435000, 1.082200], + [80.300000, 4.787210, -3.736670, 3.323020, -0.454000, -1.494280], + [80.400000, 2.670280, -0.463333, 1.835160, -0.458000, 4.787210], + [81.100000, 0.430245, 4.460000, 2.795170, -0.398000, 2.670280], + [81.200000, 1.647980, 0.776667, 2.693850, -0.226000, 0.430245], + [81.300000, 1.652030, 0.516667, 2.066840, -0.169000, 1.647980], + [81.400000, 1.230860, 0.146666, 2.751290, -0.274000, 1.652030], + [82.100000, 1.807140, -3.303330, 1.615160, -0.440000, 1.230860], + [82.200000, 0.417009, 1.063330, 0.897925, -0.351000, 1.807140], + [82.300000, 2.132120, -0.393333, 1.401560, -0.311000, 0.417009], + [82.400000, 3.936900, -3.103330, 1.736170, -0.630000, 2.132120], + [83.100000, 2.534230, -1.410000, 0.318655, -0.917000, 3.936900], + [83.200000, 2.790380, 0.200000, 0.102209, -0.838000, 2.534230], + [83.300000, 2.733980, 0.290000, 1.151120, -0.803000, 2.790380], + [83.400000, 1.612830, 0.743333, 0.993698, -0.966000, 2.733980], + [84.100000, 1.537230, -0.340000, 0.950915, -1.000000, 1.612830], + [84.200000, 1.581670, 0.370000, 1.290200, -1.044000, 1.537230], + [84.300000, 1.071160, 0.626667, 0.994496, -1.210000, 1.581670], + [84.400000, 1.059810, 0.523333, 0.888801, -1.295000, 1.071160], + [85.100000, 2.663020, -1.516670, 0.817542, -1.419000, 1.059810], + [85.200000, 2.571070, -0.620000, 0.821403, -1.217000, 2.663020], + [85.300000, 3.494150, -0.723333, 1.115930, -1.675000, 2.571070], + [85.400000, 2.674520, -0.353333, 0.579113, -1.619000, 3.494150] + ], + 'start': 11-1, + 'parameters': [ + 0.3712, 0.1112, 0.0171, 0.2720, 0.0378, 0.0224 + ], + 'standard_errors': [ + 0.0632, 0.0627, 0.0342, 0.0607, 0.1642, 0.0374 + ], + 'loglike': -97.092423, + 'states': [ + [0.4965, -0.6580, 0.5813, -3.2549, -0.0724], + [0.5126, -0.6555, 0.5719, -3.3179, -0.0709], + [0.4389, -0.5831, 0.4181, -2.1186, -0.0189], + [0.3019, -0.3959, 0.1196, -0.7239, 0.0207], + [0.3727, -0.4049, 0.0580, -0.9298, -0.0335], + [0.4829, -0.4390, 0.1610, -1.0697, -0.0215], + [0.5108, -0.3993, 0.4471, -0.6918, 0.0572], + [0.6079, -0.3483, 0.4996, -0.1870, 0.0972], + [0.6023, -0.3410, 0.5741, -0.1433, 0.1038], + [0.5729, -0.3442, 0.5667, -0.1220, 0.1003], + [0.5521, -0.3105, 0.4848, 0.1181, 0.1097], + [0.7521, -0.4232, 0.0775, -1.1218, 0.0736], + [0.7626, -0.4281, 0.0718, -1.1584, 0.1052], + [0.7570, -0.4325, -0.1868, -1.2219, 0.0883], + [0.7035, -0.4465, -0.2159, -1.3017, 0.0980], + [0.7138, -0.4792, 0.1306, -1.2976, 0.0794], + [0.7741, -0.5153, 0.1357, -1.7173, 0.0976], + [0.7618, -0.5138, 0.1794, -1.7576, 0.1067], + [0.8309, -0.5206, -0.2358, -1.7412, 0.0927], + [0.7468, -0.3393, -1.2197, -1.5994, 0.1837], + [0.7451, -0.3401, -1.2230, -1.5955, 0.1856], + [0.7666, -0.3655, -1.0822, -1.7327, 0.1726], + [0.7155, -0.2192, -0.9440, -1.2904, 0.1621], + [0.6831, -0.3288, -0.7068, -1.4245, 0.2053], + [0.6554, -0.2914, -0.5176, -1.4186, 0.2319], + [0.6518, -0.2933, -0.5437, -1.4185, 0.2322], + [0.6797, -0.3100, -0.2444, -1.3599, 0.2240], + [0.6891, -0.3016, -0.1704, -1.3899, 0.2279], + [0.6832, -0.3461, 0.0626, -1.2895, 0.2391], + [0.7040, -0.3385, 0.1256, -1.2539, 0.2443], + [0.6050, -0.3543, -0.0651, -1.4003, 0.2434], + [0.5992, -0.3375, -0.2575, -1.4240, 0.2665], + [0.6359, -0.3069, -0.0895, -1.4528, 0.2445], + [0.6479, -0.3149, 0.0208, -1.4431, 0.2468], + [0.6738, -0.2881, -0.1767, -1.4472, 0.2379], + [0.6790, -0.2942, -0.1342, -1.4632, 0.2359], + [0.7273, -0.2934, -0.0569, -1.4789, 0.2475], + [0.7441, -0.2804, -0.1501, -1.4776, 0.2392], + [0.7523, -0.2836, -0.1486, -1.4775, 0.2402], + [0.7538, -0.2824, -0.1460, -1.4781, 0.2406], + [0.6948, -0.3274, -0.3619, -1.4639, 0.2477], + [0.8999, -0.3630, -0.3050, -1.4275, 0.2248], + [0.8989, -0.3619, -0.3151, -1.4319, 0.2236], + [1.0628, -0.3234, -0.3110, -1.4815, 0.2314], + [1.0959, -0.2846, 0.2317, -1.3609, 0.2623], + [1.2113, -0.2943, -0.1348, -1.1898, 0.2490], + [1.3005, -0.2927, -0.5252, -1.1919, 0.2722], + [1.2629, -0.2966, -0.3244, -1.1993, 0.2518], + [1.2894, -0.2782, -0.1285, -1.1538, 0.2469], + [1.2988, -0.2701, -0.1707, -1.1522, 0.2462], + [1.3264, -0.2744, -0.3310, -1.1545, 0.2403], + [1.3314, -0.2734, -0.3105, -1.1558, 0.2387], + [1.3363, -0.2779, -0.1683, -1.1320, 0.2390], + [1.3662, -0.2609, -0.4110, -1.0999, 0.2321], + [1.3796, -0.2636, -0.3915, -1.1038, 0.2307], + [1.3209, -0.2770, -0.5148, -0.7347, 0.2208], + [1.3205, -0.2821, -0.5581, -0.7462, 0.2182], + [1.3302, -0.2880, -0.4981, -0.7492, 0.2119], + [1.3132, -0.2871, -0.5063, -0.7533, 0.2103], + [1.1144, -0.3065, -0.5572, -0.8137, 0.1905], + [1.0196, -0.3003, 0.0227, -0.8400, 0.1677], + [1.0078, -0.3079, 0.1474, -0.8392, 0.1853], + [1.0269, -0.3099, 0.0285, -0.8580, 0.1771], + [1.0267, -0.3100, 0.0262, -0.8578, 0.1772], + [1.0764, -0.2997, 0.1328, -0.8925, 0.1745], + [1.0736, -0.3001, 0.1081, -0.8929, 0.1726], + [1.0678, -0.3024, 0.1891, -0.8931, 0.1719], + [1.0911, -0.3000, 0.0994, -0.8979, 0.1711], + [1.0908, -0.3005, 0.0906, -0.8981, 0.1713], + [1.0801, -0.3069, -0.0355, -0.8981, 0.1765], + [1.1085, -0.3117, 0.1850, -0.8749, 0.1620], + [0.9984, -0.3376, 0.5659, -0.8696, 0.1808], + [1.1165, -0.3357, -0.0249, -0.8350, 0.0692], + [1.1387, -0.3214, 0.0824, -0.8444, 0.0475], + [1.2924, -0.2922, -0.6439, -0.7666, 0.0701], + [1.5698, -0.5257, 0.1098, -0.8641, -0.1011], + [1.6453, -0.5272, 0.2241, -0.8317, -0.0215], + [1.6441, -0.5139, 0.2853, -0.8310, -0.0269], + [1.5947, -0.5017, 0.1260, -0.8471, -0.0137], + [1.5838, -0.5013, 0.1080, -0.8505, -0.0145], + [1.6726, -0.4944, -0.1613, -0.8227, -0.0206], + [1.2829, -0.4045, -0.4496, -0.7630, -0.0195], + [1.1279, -0.4203, -0.4611, -0.7772, -0.0174], + [1.2281, -0.4152, 0.1011, -0.7625, -0.0589], + [1.0691, -0.4452, 0.4701, -0.8390, -0.0221], + [1.0707, -0.4453, 0.4689, -0.8399, -0.0217], + [1.6109, -0.4191, 0.2096, -0.9584, -0.0488], + [1.6012, -0.4095, 0.4301, -0.9771, -0.0446], + [1.5902, -0.4308, 0.0350, -0.8648, -0.0457], + [1.4448, -0.4179, -0.3688, -0.7584, -0.0026], + [1.4450, -0.4180, -0.3791, -0.7575, -0.0023], + [1.4060, -0.4274, -0.5805, -0.6579, 0.0065], + [1.3527, -0.4308, -0.7075, -0.5849, 0.0222], + [1.3832, -0.4496, -0.6074, -0.6392, 0.0158], + [1.4081, -0.4536, -0.3465, -0.6110, 0.0586], + [1.2291, -0.4531, 0.1552, -0.7252, 0.0818] + ] +} + +""" +Real GDP, 1947:1 - 2014:1 + +See http://research.stlouisfed.org/fred2/series/GDPC1 + +Stata Code: test_kalman_filter_gdp.do +R Code: test_kalman_filter_gdp.R + +""" +gdp = { + 'stata_params': [ + 0.40725515, 0.18782621, -0.01514009, -0.01027267, -0.03642297, + 0.11576416, 0.02573029, -.00766572, 0.13506498, 0.08649569, + 0.06942822, -0.10685783, 0.00008 + ], + 'stata_loglike': 883.1262237746861 +} diff --git a/statsmodels/tsa/statespace/tests/results/results_realgdpar_stata.csv b/statsmodels/tsa/statespace/tests/results/results_realgdpar_stata.csv new file mode 100644 index 0000000..a513771 --- /dev/null +++ b/statsmodels/tsa/statespace/tests/results/results_realgdpar_stata.csv @@ -0,0 +1,270 @@ +value,u1,u2,u3,u4,u5,u6,u7,u8,u9,u10,u11,u12,est_u1,est_u2,est_u3,est_u4,est_u5,est_u6,est_u7,est_u8,est_u9,est_u10,est_u11,est_u12,rstd +1932.6,,,,,,,,,,,,,,,,,,,,,,,,, +1930.4,-.0011387,-.0007001,-.0005906,-.0004509,-.0003869,-.0003433,-.0003954,-.0004074,-.0004279,-.0004964,-.0004902,-.0004586,0,0,0,0,0,0,0,0,0,0,0,0,-.093052 +1928.4,-.0010366,-.0011387,-.0007762,-.0006323,-.000503,-.000437,-.0004309,-.0004734,-.0004917,-.0005387,-.0005843,-.0005649,-.0007001,-.0011387,-.0007001,-.0005906,-.0004509,-.0003869,-.0003433,-.0003954,-.0004074,-.0004279,-.0004964,-.0004902,-.0348711 +1958.8,.0156412,-.0010366,-.0011387,-.0004939,.0003143,.0008934,.003088,.0030249,.0030535,.0044029,.0032973,.0021753,-.0007507,-.0010366,-.0011387,-.0007762,-.0006323,-.000503,-.000437,-.0004309,-.0004734,-.0004917,-.0005387,-.0005843,1.743676 +1987.6,.014596,.0156412,-.0010366,-.0011387,-.0001236,.0008948,.002462,.0046356,.0046186,.0052618,.0061318,.0045381,.0071355,.0156412,-.0010366,-.0011387,-.0004939,.0003143,.0008934,.003088,.0030249,.0030535,.0044029,.0032973,.7937142 +2019.9,.01612,.014596,.0156412,-.0010366,-.0011387,.0002068,.002042,.0036374,.0058731,.0063881,.006623,.0071015,.0100651,.014596,.0156412,-.0010366,-.0011387,-.0001236,.0008948,.002462,.0046356,.0046186,.0052618,.0061318,.6449665 +2031.2,.005579,.01612,.014596,.0156412,-.0010366,-.0011387,-.0005558,.0012452,.0027547,.0045608,.0053615,.0059134,.0102171,.01612,.014596,.0156412,-.0010366,-.0011387,.0002068,.002042,.0036374,.0058731,.0063881,.006623,-.494795 +2033.3,.0010333,.005579,.01612,.014596,.0156412,-.0010366,-.0011387,-.0009786,.0007049,.0016981,.0037117,.0047354,.0053072,.005579,.01612,.014596,.0156412,-.0010366,-.0011387,-.0005558,.0012452,.0027547,.0045608,.0053615,-.4622235 +2005.6,-.0137167,.0010333,.005579,.01612,.014596,.0156412,-.0010366,-.0011387,-.0021525,-.0022626,-.0008202,.0018233,.000357,.0010333,.005579,.01612,.014596,.0156412,-.0010366,-.0011387,-.0009786,.0007049,.0016981,.0037117,-1.529596 +1998.8,-.0033965,-.0137167,.0010333,.005579,.01612,.014596,.0156412,-.0010366,-.0011387,-.0018497,-.0020054,-.0006163,-.0051193,-.0137167,.0010333,.005579,.01612,.014596,.0156412,-.0010366,-.0011387,-.0021525,-.0022626,-.0008202,.1878934 +2020.8,.0109468,-.0033965,-.0137167,.0010333,.005579,.01612,.014596,.0156412,-.0010366,-.0011387,-.0007712,-.0012061,-.0029068,-.0033965,-.0137167,.0010333,.005579,.01612,.014596,.0156412,-.0010366,-.0011387,-.0018497,-.0020054,1.534838 +2002.7,-.0089974,.0109468,-.0033965,-.0137167,.0010333,.005579,.01612,.014596,.0156412,-.0010366,-.0011387,-.0011583,.0057726,.0109468,-.0033965,-.0137167,.0010333,.005579,.01612,.014596,.0156412,-.0010366,-.0011387,-.0007712,-1.641364 +2082.5,.039073,-.0089974,.0109468,-.0033965,-.0137167,.0010333,.005579,.01612,.014596,.0156412,-.0010366,-.0011387,.0015629,-.0089974,.0109468,-.0033965,-.0137167,.0010333,.005579,.01612,.014596,.0156412,-.0010366,-.0011387,4.169847 +2145.5,.0298033,.039073,-.0089974,.0109468,-.0033965,-.0137167,.0010333,.005579,.01612,.014596,.0156412,-.0010366,.0181051,.039073,-.0089974,.0109468,-.0033965,-.0137167,.0010333,.005579,.01612,.014596,.0156412,-.0010366,1.307929 +2228.2,.0378218,.0298033,.039073,-.0089974,.0109468,-.0033965,-.0137167,.0010333,.005579,.01612,.014596,.0156412,.0226563,.0298033,.039073,-.0089974,.0109468,-.0033965,-.0137167,.0010333,.005579,.01612,.014596,.0156412,1.695591 +2271.2,.019114,.0378218,.0298033,.039073,-.0089974,.0109468,-.0033965,-.0137167,.0010333,.005579,.01612,.014596,.0208389,.0378218,.0298033,.039073,-.0089974,.0109468,-.0033965,-.0137167,.0010333,.005579,.01612,.014596,-.1928484 +2302.3,.0136003,.019114,.0378218,.0298033,.039073,-.0089974,.0109468,-.0033965,-.0137167,.0010333,.005579,.01612,.0158299,.019114,.0378218,.0298033,.039073,-.0089974,.0109468,-.0033965,-.0137167,.0010333,.005579,.01612,-.2492786 +2342.3,.0172248,.0136003,.019114,.0378218,.0298033,.039073,-.0089974,.0109468,-.0033965,-.0137167,.0010333,.005579,.0029946,.0136003,.019114,.0378218,.0298033,.039073,-.0089974,.0109468,-.0033965,-.0137167,.0010333,.005579,1.591019 +2390.5,.0203691,.0172248,.0136003,.019114,.0378218,.0298033,.039073,-.0089974,.0109468,-.0033965,-.0137167,.0010333,.0098442,.0172248,.0136003,.019114,.0378218,.0298033,.039073,-.0089974,.0109468,-.0033965,-.0137167,.0010333,1.176747 +2395.8,.0022149,.0203691,.0172248,.0136003,.019114,.0378218,.0298033,.039073,-.0089974,.0109468,-.0033965,-.0137167,.0143973,.0203691,.0172248,.0136003,.019114,.0378218,.0298033,.039073,-.0089974,.0109468,-.0033965,-.0137167,-1.362067 +2421.1,.0105047,.0022149,.0203691,.0172248,.0136003,.019114,.0378218,.0298033,.039073,-.0089974,.0109468,-.0033965,.0094384,.0022149,.0203691,.0172248,.0136003,.019114,.0378218,.0298033,.039073,-.0089974,.0109468,-.0033965,.119216 +2426.2,.0021043,.0105047,.0022149,.0203691,.0172248,.0136003,.019114,.0378218,.0298033,.039073,-.0089974,.0109468,.012293,.0105047,.0022149,.0203691,.0172248,.0136003,.019114,.0378218,.0298033,.039073,-.0089974,.0109468,-1.139156 +2443.7,.0071869,.0021043,.0105047,.0022149,.0203691,.0172248,.0136003,.019114,.0378218,.0298033,.039073,-.0089974,.0093468,.0021043,.0105047,.0022149,.0203691,.0172248,.0136003,.019114,.0378218,.0298033,.039073,-.0089974,-.241491 +2523.9,.0322919,.0071869,.0021043,.0105047,.0022149,.0203691,.0172248,.0136003,.019114,.0378218,.0298033,.039073,.0159563,.0071869,.0021043,.0105047,.0022149,.0203691,.0172248,.0136003,.019114,.0378218,.0298033,.039073,1.826415 +2570.9,.0184507,.0322919,.0071869,.0021043,.0105047,.0022149,.0203691,.0172248,.0136003,.019114,.0378218,.0298033,.0207244,.0322919,.0071869,.0021043,.0105047,.0022149,.0203691,.0172248,.0136003,.019114,.0378218,.0298033,-.2542113 +2591,.0077882,.0184507,.0322919,.0071869,.0021043,.0105047,.0022149,.0203691,.0172248,.0136003,.019114,.0378218,.0166462,.0184507,.0322919,.0071869,.0021043,.0105047,.0022149,.0203691,.0172248,.0136003,.019114,.0378218,-.9903859 +2576.4,-.005651,.0077882,.0184507,.0322919,.0071869,.0021043,.0105047,.0022149,.0203691,.0172248,.0136003,.019114,.0079032,.0077882,.0184507,.0322919,.0071869,.0021043,.0105047,.0022149,.0203691,.0172248,.0136003,.019114,-1.515441 +2537.3,-.0152926,-.005651,.0077882,.0184507,.0322919,.0071869,.0021043,.0105047,.0022149,.0203691,.0172248,.0136003,.0019283,-.005651,.0077882,.0184507,.0322919,.0071869,.0021043,.0105047,.0022149,.0203691,.0172248,.0136003,-1.925405 +2525.6,-.004622,-.0152926,-.005651,.0077882,.0184507,.0322919,.0071869,.0021043,.0105047,.0022149,.0203691,.0172248,-.0061639,-.0152926,-.005651,.0077882,.0184507,.0322919,.0071869,.0021043,.0105047,.0022149,.0203691,.0172248,.172391 +2528.3,.0010686,-.004622,-.0152926,-.005651,.0077882,.0184507,.0322919,.0071869,.0021043,.0105047,.0022149,.0203691,-.0003301,-.004622,-.0152926,-.005651,.0077882,.0184507,.0322919,.0071869,.0021043,.0105047,.0022149,.0203691,.1563878 +2556.9,.0112486,.0010686,-.004622,-.0152926,-.005651,.0077882,.0184507,.0322919,.0071869,.0021043,.0105047,.0022149,.0016547,.0010686,-.004622,-.0152926,-.005651,.0077882,.0184507,.0322919,.0071869,.0021043,.0105047,.0022149,1.072655 +2606.8,.0193276,.0112486,.0010686,-.004622,-.0152926,-.005651,.0077882,.0184507,.0322919,.0071869,.0021043,.0105047,.0079888,.0112486,.0010686,-.004622,-.0152926,-.005651,.0077882,.0184507,.0322919,.0071869,.0021043,.0105047,1.267752 +2681.2,.028141,.0193276,.0112486,.0010686,-.004622,-.0152926,-.005651,.0077882,.0184507,.0322919,.0071869,.0021043,.0139839,.0193276,.0112486,.0010686,-.004622,-.0152926,-.005651,.0077882,.0184507,.0322919,.0071869,.0021043,1.582858 +2724.8,.0161309,.028141,.0193276,.0112486,.0010686,-.004622,-.0152926,-.005651,.0077882,.0184507,.0322919,.0071869,.0186617,.028141,.0193276,.0112486,.0010686,-.004622,-.0152926,-.005651,.0077882,.0184507,.0322919,.0071869,-.2829569 +2761.5,.0133786,.0161309,.028141,.0193276,.0112486,.0010686,-.004622,-.0152926,-.005651,.0077882,.0184507,.0322919,.0146445,.0161309,.028141,.0193276,.0112486,.0010686,-.004622,-.0152926,-.005651,.0077882,.0184507,.0322919,-.1415347 +2778.1,.0059934,.0133786,.0161309,.028141,.0193276,.0112486,.0010686,-.004622,-.0152926,-.005651,.0077882,.0184507,.0053068,.0133786,.0161309,.028141,.0193276,.0112486,.0010686,-.004622,-.0152926,-.005651,.0077882,.0184507,.0767654 +2767.4,-.003859,.0059934,.0133786,.0161309,.028141,.0193276,.0112486,.0010686,-.004622,-.0152926,-.005651,.0077882,.0010963,.0059934,.0133786,.0161309,.028141,.0193276,.0112486,.0010686,-.004622,-.0152926,-.005651,.0077882,-.5540426 +2790.2,.0082049,-.003859,.0059934,.0133786,.0161309,.028141,.0193276,.0112486,.0010686,-.004622,-.0152926,-.005651,-.002492,-.003859,.0059934,.0133786,.0161309,.028141,.0193276,.0112486,.0010686,-.004622,-.0152926,-.005651,1.195988 +2787.9,-.0008245,.0082049,-.003859,.0059934,.0133786,.0161309,.028141,.0193276,.0112486,.0010686,-.004622,-.0152926,.0047564,.0082049,-.003859,.0059934,.0133786,.0161309,.028141,.0193276,.0112486,.0010686,-.004622,-.0152926,-.6239759 +2833.5,.0162239,-.0008245,.0082049,-.003859,.0059934,.0133786,.0161309,.028141,.0193276,.0112486,.0010686,-.004622,.0060832,-.0008245,.0082049,-.003859,.0059934,.0133786,.0161309,.028141,.0193276,.0112486,.0010686,-.004622,1.133797 +2851.8,.0064378,.0162239,-.0008245,.0082049,-.003859,.0059934,.0133786,.0161309,.028141,.0193276,.0112486,.0010686,.0120492,.0162239,-.0008245,.0082049,-.003859,.0059934,.0133786,.0161309,.028141,.0193276,.0112486,.0010686,-.6273873 +2845.5,-.0022116,.0064378,.0162239,-.0008245,.0082049,-.003859,.0059934,.0133786,.0161309,.028141,.0193276,.0112486,.0127917,.0064378,.0162239,-.0008245,.0082049,-.003859,.0059934,.0133786,.0161309,.028141,.0193276,.0112486,-1.677452 +2873.2,.0096874,-.0022116,.0064378,.0162239,-.0008245,.0082049,-.003859,.0059934,.0133786,.0161309,.028141,.0193276,.0041301,-.0022116,.0064378,.0162239,-.0008245,.0082049,-.003859,.0059934,.0133786,.0161309,.028141,.0193276,.6213431 +2843.7,-.0103202,.0096874,-.0022116,.0064378,.0162239,-.0008245,.0082049,-.003859,.0059934,.0133786,.0161309,.028141,.0071911,.0096874,-.0022116,.0064378,.0162239,-.0008245,.0082049,-.003859,.0059934,.0133786,.0161309,.028141,-1.957866 +2770,-.0262589,-.0103202,.0096874,-.0022116,.0064378,.0162239,-.0008245,.0082049,-.003859,.0059934,.0133786,.0161309,-.0027822,-.0103202,.0096874,-.0022116,.0064378,.0162239,-.0008245,.0082049,-.003859,.0059934,.0133786,.0161309,-2.624847 +2788.3,.0065851,-.0262589,-.0103202,.0096874,-.0022116,.0064378,.0162239,-.0008245,.0082049,-.003859,.0059934,.0133786,-.0119946,-.0262589,-.0103202,.0096874,-.0022116,.0064378,.0162239,-.0008245,.0082049,-.003859,.0059934,.0133786,2.077324 +2852.7,.0228338,.0065851,-.0262589,-.0103202,.0096874,-.0022116,.0064378,.0162239,-.0008245,.0082049,-.003859,.0059934,-.0011831,.0065851,-.0262589,-.0103202,.0096874,-.0022116,.0064378,.0162239,-.0008245,.0082049,-.003859,.0059934,2.685236 +2919.5,.0231462,.0228338,.0065851,-.0262589,-.0103202,.0096874,-.0022116,.0064378,.0162239,-.0008245,.0082049,-.003859,.010162,.0228338,.0065851,-.0262589,-.0103202,.0096874,-.0022116,.0064378,.0162239,-.0008245,.0082049,-.003859,1.451706 +2973.8,.0184283,.0231462,.0228338,.0065851,-.0262589,-.0103202,.0096874,-.0022116,.0064378,.0162239,-.0008245,.0082049,.0183783,.0231462,.0228338,.0065851,-.0262589,-.0103202,.0096874,-.0022116,.0064378,.0162239,-.0008245,.0082049,.0055912 +3046.1,.0240211,.0184283,.0231462,.0228338,.0065851,-.0262589,-.0103202,.0096874,-.0022116,.0064378,.0162239,-.0008245,.0128059,.0184283,.0231462,.0228338,.0065851,-.0262589,-.0103202,.0096874,-.0022116,.0064378,.0162239,-.0008245,1.253936 +3040.2,-.0019388,.0240211,.0184283,.0231462,.0228338,.0065851,-.0262589,-.0103202,.0096874,-.0022116,.0064378,.0162239,.0105122,.0240211,.0184283,.0231462,.0228338,.0065851,-.0262589,-.0103202,.0096874,-.0022116,.0064378,.0162239,-1.3921 +3052.2,.0039396,-.0019388,.0240211,.0184283,.0231462,.0228338,.0065851,-.0262589,-.0103202,.0096874,-.0022116,.0064378,.00237,-.0019388,.0240211,.0184283,.0231462,.0228338,.0065851,-.0262589,-.0103202,.0096874,-.0022116,.0064378,.1754956 +3120.2,.0220346,.0039396,-.0019388,.0240211,.0184283,.0231462,.0228338,.0065851,-.0262589,-.0103202,.0096874,-.0022116,.0014609,.0039396,-.0019388,.0240211,.0184283,.0231462,.0228338,.0065851,-.0262589,-.0103202,.0096874,-.0022116,2.300277 +3108.4,-.0037889,.0220346,.0039396,-.0019388,.0240211,.0184283,.0231462,.0228338,.0065851,-.0262589,-.0103202,.0096874,.0085112,.0220346,.0039396,-.0019388,.0240211,.0184283,.0231462,.0228338,.0065851,-.0262589,-.0103202,.0096874,-1.375231 +3116.1,.0024738,-.0037889,.0220346,.0039396,-.0019388,.0240211,.0184283,.0231462,.0228338,.0065851,-.0262589,-.0103202,.0011013,-.0037889,.0220346,.0039396,-.0019388,.0240211,.0184283,.0231462,.0228338,.0065851,-.0262589,-.0103202,.1534611 +3078.4,-.0121717,.0024738,-.0037889,.0220346,.0039396,-.0019388,.0240211,.0184283,.0231462,.0228338,.0065851,-.0262589,.0060032,.0024738,-.0037889,.0220346,.0039396,-.0019388,.0240211,.0184283,.0231462,.0228338,.0065851,-.0262589,-2.03207 +3099.3,.0067663,-.0121717,.0024738,-.0037889,.0220346,.0039396,-.0019388,.0240211,.0184283,.0231462,.0228338,.0065851,.0038119,-.0121717,.0024738,-.0037889,.0220346,.0039396,-.0019388,.0240211,.0184283,.0231462,.0228338,.0065851,.3303167 +3156.9,.0184135,.0067663,-.0121717,.0024738,-.0037889,.0220346,.0039396,-.0019388,.0240211,.0184283,.0231462,.0228338,.0052631,.0067663,-.0121717,.0024738,-.0037889,.0220346,.0039396,-.0019388,.0240211,.0184283,.0231462,.0228338,1.470301 +3209.6,.0165558,.0184135,.0067663,-.0121717,.0024738,-.0037889,.0220346,.0039396,-.0019388,.0240211,.0184283,.0231462,.0157392,.0184135,.0067663,-.0121717,.0024738,-.0037889,.0220346,.0039396,-.0019388,.0240211,.0184283,.0231462,.0912951 +3274.6,.02005,.0165558,.0184135,.0067663,-.0121717,.0024738,-.0037889,.0220346,.0039396,-.0019388,.0240211,.0184283,.0108536,.0165558,.0184135,.0067663,-.0121717,.0024738,-.0037889,.0220346,.0039396,-.0019388,.0240211,.0184283,1.028224 +3333.6,.0178566,.02005,.0165558,.0184135,.0067663,-.0121717,.0024738,-.0037889,.0220346,.0039396,-.0019388,.0240211,.0114531,.02005,.0165558,.0184135,.0067663,-.0121717,.0024738,-.0037889,.0220346,.0039396,-.0019388,.0240211,.7159553 +3369.5,.0107117,.0178566,.02005,.0165558,.0184135,.0067663,-.0121717,.0024738,-.0037889,.0220346,.0039396,-.0019388,.0096509,.0178566,.02005,.0165558,.0184135,.0067663,-.0121717,.0024738,-.0037889,.0220346,.0039396,-.0019388,.1185992 +3401.6,.0094814,.0107117,.0178566,.02005,.0165558,.0184135,.0067663,-.0121717,.0024738,-.0037889,.0220346,.0039396,.008898,.0107117,.0178566,.02005,.0165558,.0184135,.0067663,-.0121717,.0024738,-.0037889,.0220346,.0039396,.0652299 +3414.8,.0038729,.0094814,.0107117,.0178566,.02005,.0165558,.0184135,.0067663,-.0121717,.0024738,-.0037889,.0220346,.0083082,.0094814,.0107117,.0178566,.02005,.0165558,.0184135,.0067663,-.0121717,.0024738,-.0037889,.0220346,-.4959019 +3452.8,.0110674,.0038729,.0094814,.0107117,.0178566,.02005,.0165558,.0184135,.0067663,-.0121717,.0024738,-.0037889,.0005731,.0038729,.0094814,.0107117,.0178566,.02005,.0165558,.0184135,.0067663,-.0121717,.0024738,-.0037889,1.17333 +3497.8,.012948,.0110674,.0038729,.0094814,.0107117,.0178566,.02005,.0165558,.0184135,.0067663,-.0121717,.0024738,.0073743,.0110674,.0038729,.0094814,.0107117,.0178566,.02005,.0165558,.0184135,.0067663,-.0121717,.0024738,.6231744 +3566.1,.0193386,.012948,.0110674,.0038729,.0094814,.0107117,.0178566,.02005,.0165558,.0184135,.0067663,-.0121717,.0112247,.012948,.0110674,.0038729,.0094814,.0107117,.0178566,.02005,.0165558,.0184135,.0067663,-.0121717,.9071824 +3591.5,.0070972,.0193386,.012948,.0110674,.0038729,.0094814,.0107117,.0178566,.02005,.0165558,.0184135,.0067663,.0169,.0193386,.012948,.0110674,.0038729,.0094814,.0107117,.0178566,.02005,.0165558,.0184135,.0067663,-1.096013 +3669.2,.0214043,.0070972,.0193386,.012948,.0110674,.0038729,.0094814,.0107117,.0178566,.02005,.0165558,.0184135,.0120037,.0070972,.0193386,.012948,.0110674,.0038729,.0094814,.0107117,.0178566,.02005,.0165558,.0184135,1.051042 +3712.9,.0118389,.0214043,.0070972,.0193386,.012948,.0110674,.0038729,.0094814,.0107117,.0178566,.02005,.0165558,.0131592,.0214043,.0070972,.0193386,.012948,.0110674,.0038729,.0094814,.0107117,.0178566,.02005,.0165558,-.1476137 +3763.3,.013483,.0118389,.0214043,.0070972,.0193386,.012948,.0110674,.0038729,.0094814,.0107117,.0178566,.02005,.0119864,.0118389,.0214043,.0070972,.0193386,.012948,.0110674,.0038729,.0094814,.0107117,.0178566,.02005,.1673331 +3776.6,.0035286,.013483,.0118389,.0214043,.0070972,.0193386,.012948,.0110674,.0038729,.0094814,.0107117,.0178566,.0096717,.013483,.0118389,.0214043,.0070972,.0193386,.012948,.0110674,.0038729,.0094814,.0107117,.0178566,-.6868398 +3869.8,.0243778,.0035286,.013483,.0118389,.0214043,.0070972,.0193386,.012948,.0110674,.0038729,.0094814,.0107117,.0059777,.0035286,.013483,.0118389,.0214043,.0070972,.0193386,.012948,.0110674,.0038729,.0094814,.0107117,2.057248 +3922.7,.0135775,.0243778,.0035286,.013483,.0118389,.0214043,.0070972,.0193386,.012948,.0110674,.0038729,.0094814,.0120488,.0243778,.0035286,.013483,.0118389,.0214043,.0070972,.0193386,.012948,.0110674,.0038729,.0094814,.1709145 +4002.4,.0201139,.0135775,.0243778,.0035286,.013483,.0118389,.0214043,.0070972,.0193386,.012948,.0110674,.0038729,.0139592,.0135775,.0243778,.0035286,.013483,.0118389,.0214043,.0070972,.0193386,.012948,.0110674,.0038729,.6881392 +4096.7,.0232878,.0201139,.0135775,.0243778,.0035286,.013483,.0118389,.0214043,.0070972,.0193386,.012948,.0110674,.0157986,.0201139,.0135775,.0243778,.0035286,.013483,.0118389,.0214043,.0070972,.0193386,.012948,.0110674,.8373353 +4197.9,.0244026,.0232878,.0201139,.0135775,.0243778,.0035286,.013483,.0118389,.0214043,.0070972,.0193386,.012948,.0167265,.0232878,.0201139,.0135775,.0243778,.0035286,.013483,.0118389,.0214043,.0070972,.0193386,.012948,.8582383 +4215.1,.0040894,.0244026,.0232878,.0201139,.0135775,.0243778,.0035286,.013483,.0118389,.0214043,.0070972,.0193386,.0171088,.0244026,.0232878,.0201139,.0135775,.0243778,.0035286,.013483,.0118389,.0214043,.0070972,.0193386,-1.455651 +4245.2,.0071154,.0040894,.0244026,.0232878,.0201139,.0135775,.0243778,.0035286,.013483,.0118389,.0214043,.0070972,.0098813,.0040894,.0244026,.0232878,.0201139,.0135775,.0243778,.0035286,.013483,.0118389,.0214043,.0070972,-.3092494 +4281.6,.0085382,.0071154,.0040894,.0244026,.0232878,.0201139,.0135775,.0243778,.0035286,.013483,.0118389,.0214043,.0080693,.0071154,.0040894,.0244026,.0232878,.0201139,.0135775,.0243778,.0035286,.013483,.0118389,.0214043,.0524299 +4320.9,.0091362,.0085382,.0071154,.0040894,.0244026,.0232878,.0201139,.0135775,.0243778,.0035286,.013483,.0118389,.0063214,.0085382,.0071154,.0040894,.0244026,.0232878,.0201139,.0135775,.0243778,.0035286,.013483,.0118389,.3147117 +4324.7,.0008793,.0091362,.0085382,.0071154,.0040894,.0244026,.0232878,.0201139,.0135775,.0243778,.0035286,.013483,.0106641,.0091362,.0085382,.0071154,.0040894,.0244026,.0232878,.0201139,.0135775,.0243778,.0035286,.013483,-1.094001 +4362,.0085878,.0008793,.0091362,.0085382,.0071154,.0040894,.0244026,.0232878,.0201139,.0135775,.0243778,.0035286,.0077394,.0008793,.0091362,.0085382,.0071154,.0040894,.0244026,.0232878,.0201139,.0135775,.0243778,.0035286,.0948611 +4397.1,.0080147,.0085878,.0008793,.0091362,.0085382,.0071154,.0040894,.0244026,.0232878,.0201139,.0135775,.0243778,.0093067,.0085878,.0008793,.0091362,.0085382,.0071154,.0040894,.0244026,.0232878,.0201139,.0135775,.0243778,-.1444559 +4486.4,.0201054,.0080147,.0085878,.0008793,.0091362,.0085382,.0071154,.0040894,.0244026,.0232878,.0201139,.0135775,.0084236,.0080147,.0085878,.0008793,.0091362,.0085382,.0071154,.0040894,.0244026,.0232878,.0201139,.0135775,1.306095 +4562.2,.0167542,.0201054,.0080147,.0085878,.0008793,.0091362,.0085382,.0071154,.0040894,.0244026,.0232878,.0201139,.0156176,.0201054,.0080147,.0085878,.0008793,.0091362,.0085382,.0071154,.0040894,.0244026,.0232878,.0201139,.1270776 +4595,.007164,.0167542,.0201054,.0080147,.0085878,.0008793,.0091362,.0085382,.0071154,.0040894,.0244026,.0232878,.0137113,.0167542,.0201054,.0080147,.0085878,.0008793,.0091362,.0085382,.0071154,.0040894,.0244026,.0232878,-.7320256 +4615.4,.0044298,.007164,.0167542,.0201054,.0080147,.0085878,.0008793,.0091362,.0085382,.0071154,.0040894,.0244026,.0061568,.007164,.0167542,.0201054,.0080147,.0085878,.0008793,.0091362,.0085382,.0071154,.0040894,.0244026,-.1930911 +4687.1,.0154152,.0044298,.007164,.0167542,.0201054,.0080147,.0085878,.0008793,.0091362,.0085382,.0071154,.0040894,.0027893,.0044298,.007164,.0167542,.0201054,.0080147,.0085878,.0008793,.0091362,.0085382,.0071154,.0040894,1.411656 +4702.1,.0031958,.0154152,.0044298,.007164,.0167542,.0201054,.0080147,.0085878,.0008793,.0091362,.0085382,.0071154,.0092687,.0154152,.0044298,.007164,.0167542,.0201054,.0080147,.0085878,.0008793,.0091362,.0085382,.0071154,-.6789862 +4731.5,.0062332,.0031958,.0154152,.0044298,.007164,.0167542,.0201054,.0080147,.0085878,.0008793,.0091362,.0085382,.0066553,.0031958,.0154152,.0044298,.007164,.0167542,.0201054,.0080147,.0085878,.0008793,.0091362,.0085382,-.0471922 +4711,-.0043421,.0062332,.0031958,.0154152,.0044298,.007164,.0167542,.0201054,.0080147,.0085878,.0008793,.0091362,.0059522,.0062332,.0031958,.0154152,.0044298,.007164,.0167542,.0201054,.0080147,.0085878,.0008793,.0091362,-1.150968 +4702.8,-.0017424,-.0043421,.0062332,.0031958,.0154152,.0044298,.007164,.0167542,.0201054,.0080147,.0085878,.0008793,.0010507,-.0043421,.0062332,.0031958,.0154152,.0044298,.007164,.0167542,.0201054,.0080147,.0085878,.0008793,-.3122848 +4711.1,.0017633,-.0017424,-.0043421,.0062332,.0031958,.0154152,.0044298,.007164,.0167542,.0201054,.0080147,.0085878,.0022659,-.0017424,-.0043421,.0062332,.0031958,.0154152,.0044298,.007164,.0167542,.0201054,.0080147,.0085878,-.0561942 +4752.8,.008812,.0017633,-.0017424,-.0043421,.0062332,.0031958,.0154152,.0044298,.007164,.0167542,.0201054,.0080147,.0057605,.0017633,-.0017424,-.0043421,.0062332,.0031958,.0154152,.0044298,.007164,.0167542,.0201054,.0080147,.3411753 +4703.9,-.0103416,.008812,.0017633,-.0017424,-.0043421,.0062332,.0031958,.0154152,.0044298,.007164,.0167542,.0201054,.0074527,.008812,.0017633,-.0017424,-.0043421,.0062332,.0031958,.0154152,.0044298,.007164,.0167542,.0201054,-1.989519 +4829.9,.0264339,-.0103416,.008812,.0017633,-.0017424,-.0043421,.0062332,.0031958,.0154152,.0044298,.007164,.0167542,-.0014888,-.0103416,.008812,.0017633,-.0017424,-.0043421,.0062332,.0031958,.0154152,.0044298,.007164,.0167542,3.121936 +4857.4,.0056772,.0264339,-.0103416,.008812,.0017633,-.0017424,-.0043421,.0062332,.0031958,.0154152,.0044298,.007164,.0095404,.0264339,-.0103416,.008812,.0017633,-.0017424,-.0043421,.0062332,.0031958,.0154152,.0044298,.007164,-.431924 +4895.3,.0077724,.0056772,.0264339,-.0103416,.008812,.0017633,-.0017424,-.0043421,.0062332,.0031958,.0154152,.0044298,.0082247,.0056772,.0264339,-.0103416,.008812,.0017633,-.0017424,-.0043421,.0062332,.0031958,.0154152,.0044298,-.0505638 +4909.5,.0028963,.0077724,.0056772,.0264339,-.0103416,.008812,.0017633,-.0017424,-.0043421,.0062332,.0031958,.0154152,.0055245,.0077724,.0056772,.0264339,-.0103416,.008812,.0017633,-.0017424,-.0043421,.0062332,.0031958,.0154152,-.2938535 +4997,.0176659,.0028963,.0077724,.0056772,.0264339,-.0103416,.008812,.0017633,-.0017424,-.0043421,.0062332,.0031958,.0022647,.0028963,.0077724,.0056772,.0264339,-.0103416,.008812,.0017633,-.0017424,-.0043421,.0062332,.0031958,1.72194 +5112.7,.0228901,.0176659,.0028963,.0077724,.0056772,.0264339,-.0103416,.008812,.0017633,-.0017424,-.0043421,.0062332,.0050961,.0176659,.0028963,.0077724,.0056772,.0264339,-.0103416,.008812,.0017633,-.0017424,-.0043421,.0062332,1.989477 +5159.8,.0091696,.0228901,.0176659,.0028963,.0077724,.0056772,.0264339,-.0103416,.008812,.0017633,-.0017424,-.0043421,.0141561,.0228901,.0176659,.0028963,.0077724,.0056772,.0264339,-.0103416,.008812,.0017633,-.0017424,-.0043421,-.5575274 +5245.5,.0164728,.0091696,.0228901,.0176659,.0028963,.0077724,.0056772,.0264339,-.0103416,.008812,.0017633,-.0017424,.0105558,.0091696,.0228901,.0176659,.0028963,.0077724,.0056772,.0264339,-.0103416,.008812,.0017633,-.0017424,.6615613 +5374.7,.024333,.0164728,.0091696,.0228901,.0176659,.0028963,.0077724,.0056772,.0264339,-.0103416,.008812,.0017633,.0083146,.0164728,.0091696,.0228901,.0176659,.0028963,.0077724,.0056772,.0264339,-.0103416,.008812,.0017633,1.790953 +5435.6,.0112667,.024333,.0164728,.0091696,.0228901,.0176659,.0028963,.0077724,.0056772,.0264339,-.0103416,.008812,.0155773,.024333,.0164728,.0091696,.0228901,.0176659,.0028963,.0077724,.0056772,.0264339,-.0103416,.008812,-.4819475 +5406.1,-.0054417,.0112667,.024333,.0164728,.0091696,.0228901,.0176659,.0028963,.0077724,.0056772,.0264339,-.0103416,.0114351,.0112667,.024333,.0164728,.0091696,.0228901,.0176659,.0028963,.0077724,.0056772,.0264339,-.0103416,-1.886924 +5456.5,.0092793,-.0054417,.0112667,.024333,.0164728,.0091696,.0228901,.0176659,.0028963,.0077724,.0056772,.0264339,.0065918,-.0054417,.0112667,.024333,.0164728,.0091696,.0228901,.0176659,.0028963,.0077724,.0056772,.0264339,.3004719 +5411.2,-.008337,.0092793,-.0054417,.0112667,.024333,.0164728,.0091696,.0228901,.0176659,.0028963,.0077724,.0056772,.0018844,.0092793,-.0054417,.0112667,.024333,.0164728,.0091696,.0228901,.0176659,.0028963,.0077724,.0056772,-1.14282 +5425.4,.0026207,-.008337,.0092793,-.0054417,.0112667,.024333,.0164728,.0091696,.0228901,.0176659,.0028963,.0077724,.0019649,-.008337,.0092793,-.0054417,.0112667,.024333,.0164728,.0091696,.0228901,.0176659,.0028963,.0077724,.0733202 +5372.8,-.0097418,.0026207,-.008337,.0092793,-.0054417,.0112667,.024333,.0164728,.0091696,.0228901,.0176659,.0028963,.0061671,.0026207,-.008337,.0092793,-.0054417,.0112667,.024333,.0164728,.0091696,.0228901,.0176659,.0028963,-1.778709 +5351.4,-.0039911,-.0097418,.0026207,-.008337,.0092793,-.0054417,.0112667,.024333,.0164728,.0091696,.0228901,.0176659,.0026934,-.0097418,.0026207,-.008337,.0092793,-.0054417,.0112667,.024333,.0164728,.0091696,.0228901,.0176659,-.7473763 +5286.7,-.0121641,-.0039911,-.0097418,.0026207,-.008337,.0092793,-.0054417,.0112667,.024333,.0164728,.0091696,.0228901,-.0015543,-.0039911,-.0097418,.0026207,-.008337,.0092793,-.0054417,.0112667,.024333,.0164728,.0091696,.0228901,-1.186248 +5327.4,.0076694,-.0121641,-.0039911,-.0097418,.0026207,-.008337,.0092793,-.0054417,.0112667,.024333,.0164728,.0091696,-.0015295,-.0121641,-.0039911,-.0097418,.0026207,-.008337,.0092793,-.0054417,.0112667,.024333,.0164728,.0091696,1.028497 +5415.5,.0164013,.0076694,-.0121641,-.0039911,-.0097418,.0026207,-.008337,.0092793,-.0054417,.0112667,.024333,.0164728,.0040093,.0076694,-.0121641,-.0039911,-.0097418,.0026207,-.008337,.0092793,-.0054417,.0112667,.024333,.0164728,1.385495 +5488.5,.0133905,.0164013,.0076694,-.0121641,-.0039911,-.0097418,.0026207,-.008337,.0092793,-.0054417,.0112667,.024333,.0088865,.0164013,.0076694,-.0121641,-.0039911,-.0097418,.0026207,-.008337,.0092793,-.0054417,.0112667,.024333,.5035849 +5612.4,.0223227,.0133905,.0164013,.0076694,-.0121641,-.0039911,-.0097418,.0026207,-.008337,.0092793,-.0054417,.0112667,.0066564,.0133905,.0164013,.0076694,-.0121641,-.0039911,-.0097418,.0026207,-.008337,.0092793,-.0054417,.0112667,1.751579 +5654.8,.0075264,.0223227,.0133905,.0164013,.0076694,-.0121641,-.0039911,-.0097418,.0026207,-.008337,.0092793,-.0054417,.0090841,.0223227,.0133905,.0164013,.0076694,-.0121641,-.0039911,-.0097418,.0026207,-.008337,.0092793,-.0054417,-.1741627 +5683.6,.0050802,.0075264,.0223227,.0133905,.0164013,.0076694,-.0121641,-.0039911,-.0097418,.0026207,-.008337,.0092793,.0060298,.0075264,.0223227,.0133905,.0164013,.0076694,-.0121641,-.0039911,-.0097418,.0026207,-.008337,.0092793,-.1061653 +5726.2,.0074673,.0050802,.0075264,.0223227,.0133905,.0164013,.0076694,-.0121641,-.0039911,-.0097418,.0026207,-.008337,.0003557,.0050802,.0075264,.0223227,.0133905,.0164013,.0076694,-.0121641,-.0039911,-.0097418,.0026207,-.008337,.7951205 +5792.9,.0115814,.0074673,.0050802,.0075264,.0223227,.0133905,.0164013,.0076694,-.0121641,-.0039911,-.0097418,.0026207,.0050447,.0074673,.0050802,.0075264,.0223227,.0133905,.0164013,.0076694,-.0121641,-.0039911,-.0097418,.0026207,.7308451 +5906.6,.0194368,.0115814,.0074673,.0050802,.0075264,.0223227,.0133905,.0164013,.0076694,-.0121641,-.0039911,-.0097418,.0041207,.0115814,.0074673,.0050802,.0075264,.0223227,.0133905,.0164013,.0076694,-.0121641,-.0039911,-.0097418,1.712443 +6011.1,.0175371,.0194368,.0115814,.0074673,.0050802,.0075264,.0223227,.0133905,.0164013,.0076694,-.0121641,-.0039911,.0132023,.0194368,.0115814,.0074673,.0050802,.0075264,.0223227,.0133905,.0164013,.0076694,-.0121641,-.0039911,.4846629 +6011.7,.0001001,.0175371,.0194368,.0115814,.0074673,.0050802,.0075264,.0223227,.0133905,.0164013,.0076694,-.0121641,.0141593,.0175371,.0194368,.0115814,.0074673,.0050802,.0075264,.0223227,.0133905,.0164013,.0076694,-.0121641,-1.571902 +6032.6,.0034704,.0001001,.0175371,.0194368,.0115814,.0074673,.0050802,.0075264,.0223227,.0133905,.0164013,.0076694,.0083197,.0001001,.0175371,.0194368,.0115814,.0074673,.0050802,.0075264,.0223227,.0133905,.0164013,.0076694,-.5421758 +6267.2,.0381517,.0034704,.0001001,.0175371,.0194368,.0115814,.0074673,.0050802,.0075264,.0223227,.0133905,.0164013,.005975,.0034704,.0001001,.0175371,.0194368,.0115814,.0074673,.0050802,.0075264,.0223227,.0133905,.0164013,3.597556 +6328.5,.0097332,.0381517,.0034704,.0001001,.0175371,.0194368,.0115814,.0074673,.0050802,.0075264,.0223227,.0133905,.0189181,.0381517,.0034704,.0001001,.0175371,.0194368,.0115814,.0074673,.0050802,.0075264,.0223227,.0133905,-1.026924 +6413.3,.0133114,.0097332,.0381517,.0034704,.0001001,.0175371,.0194368,.0115814,.0074673,.0050802,.0075264,.0223227,.0143844,.0097332,.0381517,.0034704,.0001001,.0175371,.0194368,.0115814,.0074673,.0050802,.0075264,.0223227,-.1199703 +6426.1,.0019932,.0133114,.0097332,.0381517,.0034704,.0001001,.0175371,.0194368,.0115814,.0074673,.0050802,.0075264,.008659,.0133114,.0097332,.0381517,.0034704,.0001001,.0175371,.0194368,.0115814,.0074673,.0050802,.0075264,-.7452847 +6433.9,.0012131,.0019932,.0133114,.0097332,.0381517,.0034704,.0001001,.0175371,.0194368,.0115814,.0074673,.0050802,.0047187,.0019932,.0133114,.0097332,.0381517,.0034704,.0001001,.0175371,.0194368,.0115814,.0074673,.0050802,-.3919497 +6480.1,.0071554,.0012131,.0019932,.0133114,.0097332,.0381517,.0034704,.0001001,.0175371,.0194368,.0115814,.0074673,.0030497,.0012131,.0019932,.0133114,.0097332,.0381517,.0034704,.0001001,.0175371,.0194368,.0115814,.0074673,.4590413 +6496.8,.002574,.0071554,.0012131,.0019932,.0133114,.0097332,.0381517,.0034704,.0001001,.0175371,.0194368,.0115814,.0111816,.0071554,.0012131,.0019932,.0133114,.0097332,.0381517,.0034704,.0001001,.0175371,.0194368,.0115814,-.9623886 +6517.9,.0032425,.002574,.0071554,.0012131,.0019932,.0133114,.0097332,.0381517,.0034704,.0001001,.0175371,.0194368,.0055927,.002574,.0071554,.0012131,.0019932,.0133114,.0097332,.0381517,.0034704,.0001001,.0175371,.0194368,-.2627645 +6385.7,-.0204916,.0032425,.002574,.0071554,.0012131,.0019932,.0133114,.0097332,.0381517,.0034704,.0001001,.0175371,.0027275,.0032425,.002574,.0071554,.0012131,.0019932,.0133114,.0097332,.0381517,.0034704,.0001001,.0175371,-2.596042 +6376,-.0015202,-.0204916,.0032425,.002574,.0071554,.0012131,.0019932,.0133114,.0097332,.0381517,.0034704,.0001001,-.0038082,-.0204916,.0032425,.002574,.0071554,.0012131,.0019932,.0133114,.0097332,.0381517,.0034704,.0001001,.2558169 +6494.1,.0183535,-.0015202,-.0204916,.0032425,.002574,.0071554,.0012131,.0019932,.0133114,.0097332,.0381517,.0034704,.0001304,-.0015202,-.0204916,.0032425,.002574,.0071554,.0012131,.0019932,.0133114,.0097332,.0381517,.0034704,2.037452 +6628.6,.0204992,.0183535,-.0015202,-.0204916,.0032425,.002574,.0071554,.0012131,.0019932,.0133114,.0097332,.0381517,.0131342,.0183535,-.0015202,-.0204916,.0032425,.002574,.0071554,.0012131,.0019932,.0133114,.0097332,.0381517,.823453 +6580.2,-.007328,.0204992,.0183535,-.0015202,-.0204916,.0032425,.002574,.0071554,.0012131,.0019932,.0133114,.0097332,.0104034,.0204992,.0183535,-.0015202,-.0204916,.0032425,.002574,.0071554,.0012131,.0019932,.0133114,.0097332,-1.982485 +6655.7,.0114088,-.007328,.0204992,.0183535,-.0015202,-.0204916,.0032425,.002574,.0071554,.0012131,.0019932,.0133114,.0019571,-.007328,.0204992,.0183535,-.0015202,-.0204916,.0032425,.002574,.0071554,.0012131,.0019932,.0133114,1.056756 +6578,-.0117435,.0114088,-.007328,.0204992,.0183535,-.0015202,-.0204916,.0032425,.002574,.0071554,.0012131,.0019932,.0003052,.0114088,-.007328,.0204992,.0183535,-.0015202,-.0204916,.0032425,.002574,.0071554,.0012131,.0019932,-1.347124 +6468,-.0168638,-.0117435,.0114088,-.007328,.0204992,.0183535,-.0015202,-.0204916,.0032425,.002574,.0071554,.0012131,-.0032982,-.0117435,.0114088,-.007328,.0204992,.0183535,-.0015202,-.0204916,.0032425,.002574,.0071554,.0012131,-1.516725 +6503.3,.0054426,-.0168638,-.0117435,.0114088,-.007328,.0204992,.0183535,-.0015202,-.0204916,.0032425,.002574,.0071554,-.0066473,-.0168638,-.0117435,.0114088,-.007328,.0204992,.0183535,-.0015202,-.0204916,.0032425,.002574,.0071554,1.351731 +6479.8,-.0036201,.0054426,-.0168638,-.0117435,.0114088,-.007328,.0204992,.0183535,-.0015202,-.0204916,.0032425,.002574,-.0008396,.0054426,-.0168638,-.0117435,.0114088,-.007328,.0204992,.0183535,-.0015202,-.0204916,.0032425,.002574,-.3108825 +6486.2,.000988,-.0036201,.0054426,-.0168638,-.0117435,.0114088,-.007328,.0204992,.0183535,-.0015202,-.0204916,.0032425,-.0029809,-.0036201,.0054426,-.0168638,-.0117435,.0114088,-.007328,.0204992,.0183535,-.0015202,-.0204916,.0032425,.4437471 +6571.1,.0130043,.000988,-.0036201,.0054426,-.0168638,-.0117435,.0114088,-.007328,.0204992,.0183535,-.0015202,-.0204916,.0017943,.000988,-.0036201,.0054426,-.0168638,-.0117435,.0114088,-.007328,.0204992,.0183535,-.0015202,-.0204916,1.253352 +6721.1,.0225706,.0130043,.000988,-.0036201,.0054426,-.0168638,-.0117435,.0114088,-.007328,.0204992,.0183535,-.0015202,.0115254,.0130043,.000988,-.0036201,.0054426,-.0168638,-.0117435,.0114088,-.007328,.0204992,.0183535,-.0015202,1.234924 +6852.7,.0193911,.0225706,.0130043,.000988,-.0036201,.0054426,-.0168638,-.0117435,.0114088,-.007328,.0204992,.0183535,.0113367,.0225706,.0130043,.000988,-.0036201,.0054426,-.0168638,-.0117435,.0114088,-.007328,.0204992,.0183535,.9005253 +6994,.0204096,.0193911,.0225706,.0130043,.000988,-.0036201,.0054426,-.0168638,-.0117435,.0114088,-.007328,.0204992,.0127166,.0193911,.0225706,.0130043,.000988,-.0036201,.0054426,-.0168638,-.0117435,.0114088,-.007328,.0204992,.860128 +7132.9,.0196648,.0204096,.0193911,.0225706,.0130043,.000988,-.0036201,.0054426,-.0168638,-.0117435,.0114088,-.007328,.0079944,.0204096,.0193911,.0225706,.0130043,.000988,-.0036201,.0054426,-.0168638,-.0117435,.0114088,-.007328,1.30482 +7258.2,.0174141,.0196648,.0204096,.0193911,.0225706,.0130043,.000988,-.0036201,.0054426,-.0168638,-.0117435,.0114088,.0091041,.0196648,.0204096,.0193911,.0225706,.0130043,.000988,-.0036201,.0054426,-.0168638,-.0117435,.0114088,.9291069 +7329.6,.0097895,.0174141,.0196648,.0204096,.0193911,.0225706,.0130043,.000988,-.0036201,.0054426,-.0168638,-.0117435,.0082559,.0174141,.0196648,.0204096,.0193911,.0225706,.0130043,.000988,-.0036201,.0054426,-.0168638,-.0117435,.1714669 +7388.1,.0079498,.0097895,.0174141,.0196648,.0204096,.0193911,.0225706,.0130043,.000988,-.0036201,.0054426,-.0168638,.0090497,.0097895,.0174141,.0196648,.0204096,.0193911,.0225706,.0130043,.000988,-.0036201,.0054426,-.0168638,-.1229765 +7461.5,.0098858,.0079498,.0097895,.0174141,.0196648,.0204096,.0193911,.0225706,.0130043,.000988,-.0036201,.0054426,.0085934,.0079498,.0097895,.0174141,.0196648,.0204096,.0193911,.0225706,.0130043,.000988,-.0036201,.0054426,.1445013 +7529.9,.0091248,.0098858,.0079498,.0097895,.0174141,.0196648,.0204096,.0193911,.0225706,.0130043,.000988,-.0036201,.0081734,.0098858,.0079498,.0097895,.0174141,.0196648,.0204096,.0193911,.0225706,.0130043,.000988,-.0036201,.1063623 +7647,.0154324,.0091248,.0098858,.0079498,.0097895,.0174141,.0196648,.0204096,.0193911,.0225706,.0130043,.000988,.0119994,.0091248,.0098858,.0079498,.0097895,.0174141,.0196648,.0204096,.0193911,.0225706,.0130043,.000988,.3838213 +7704.4,.0074778,.0154324,.0091248,.0098858,.0079498,.0097895,.0174141,.0196648,.0204096,.0193911,.0225706,.0130043,.0151449,.0154324,.0091248,.0098858,.0079498,.0097895,.0174141,.0196648,.0204096,.0193911,.0225706,.0130043,-.857237 +7775.8,.0092249,.0074778,.0154324,.0091248,.0098858,.0079498,.0097895,.0174141,.0196648,.0204096,.0193911,.0225706,.0114566,.0074778,.0154324,.0091248,.0098858,.0079498,.0097895,.0174141,.0196648,.0204096,.0193911,.0225706,-.2495166 +7811.5,.0045805,.0092249,.0074778,.0154324,.0091248,.0098858,.0079498,.0097895,.0174141,.0196648,.0204096,.0193911,.0088685,.0092249,.0074778,.0154324,.0091248,.0098858,.0079498,.0097895,.0174141,.0196648,.0204096,.0193911,-.4794197 +7890.1,.0100117,.0045805,.0092249,.0074778,.0154324,.0091248,.0098858,.0079498,.0097895,.0174141,.0196648,.0204096,.0076658,.0045805,.0092249,.0074778,.0154324,.0091248,.0098858,.0079498,.0097895,.0174141,.0196648,.0204096,.2622824 +7931,.0051708,.0100117,.0045805,.0092249,.0074778,.0154324,.0091248,.0098858,.0079498,.0097895,.0174141,.0196648,.0074216,.0100117,.0045805,.0092249,.0074778,.0154324,.0091248,.0098858,.0079498,.0097895,.0174141,.0196648,-.2516547 +7986.4,.0069609,.0051708,.0100117,.0045805,.0092249,.0074778,.0154324,.0091248,.0098858,.0079498,.0097895,.0174141,.0065235,.0051708,.0100117,.0045805,.0092249,.0074778,.0154324,.0091248,.0098858,.0079498,.0097895,.0174141,.0488979 +8076.1,.0111685,.0069609,.0051708,.0100117,.0045805,.0092249,.0074778,.0154324,.0091248,.0098858,.0079498,.0097895,.0053059,.0069609,.0051708,.0100117,.0045805,.0092249,.0074778,.0154324,.0091248,.0098858,.0079498,.0097895,.6554717 +8149.4,.0090351,.0111685,.0069609,.0051708,.0100117,.0045805,.0092249,.0074778,.0154324,.0091248,.0098858,.0079498,.0082433,.0111685,.0069609,.0051708,.0100117,.0045805,.0092249,.0074778,.0154324,.0091248,.0098858,.0079498,.0885319 +8283.8,.0163574,.0090351,.0111685,.0069609,.0051708,.0100117,.0045805,.0092249,.0074778,.0154324,.0091248,.0098858,.0086749,.0090351,.0111685,.0069609,.0051708,.0100117,.0045805,.0092249,.0074778,.0154324,.0091248,.0098858,.8589492 +8330.4,.0056105,.0163574,.0090351,.0111685,.0069609,.0051708,.0100117,.0045805,.0092249,.0074778,.0154324,.0091248,.0110578,.0163574,.0090351,.0111685,.0069609,.0051708,.0100117,.0045805,.0092249,.0074778,.0154324,.0091248,-.609049 +8440.5,.0131302,.0056105,.0163574,.0090351,.0111685,.0069609,.0051708,.0100117,.0045805,.0092249,.0074778,.0154324,.0076624,.0056105,.0163574,.0090351,.0111685,.0069609,.0051708,.0100117,.0045805,.0092249,.0074778,.0154324,.6113306 +8489.2,.0057526,.0131302,.0056105,.0163574,.0090351,.0111685,.0069609,.0051708,.0100117,.0045805,.0092249,.0074778,.0068027,.0131302,.0056105,.0163574,.0090351,.0111685,.0069609,.0051708,.0100117,.0045805,.0092249,.0074778,-.1174083 +8601.6,.013154,.0057526,.0131302,.0056105,.0163574,.0090351,.0111685,.0069609,.0051708,.0100117,.0045805,.0092249,.0072491,.0057526,.0131302,.0056105,.0163574,.0090351,.0111685,.0069609,.0051708,.0100117,.0045805,.0092249,.6602076 +8688.4,.0100403,.013154,.0057526,.0131302,.0056105,.0163574,.0090351,.0111685,.0069609,.0051708,.0100117,.0045805,.0077619,.013154,.0057526,.0131302,.0056105,.0163574,.0090351,.0111685,.0069609,.0051708,.0100117,.0045805,.254738 +8756.7,.0078306,.0100403,.013154,.0057526,.0131302,.0056105,.0163574,.0090351,.0111685,.0069609,.0051708,.0100117,.0097668,.0100403,.013154,.0057526,.0131302,.0056105,.0163574,.0090351,.0111685,.0069609,.0051708,.0100117,-.2164792 +8822.1,.0074406,.0078306,.0100403,.013154,.0057526,.0131302,.0056105,.0163574,.0090351,.0111685,.0069609,.0051708,.0067392,.0078306,.0100403,.013154,.0057526,.0131302,.0056105,.0163574,.0090351,.0111685,.0069609,.0051708,.0784123 +8840.7,.0021057,.0074406,.0078306,.0100403,.013154,.0057526,.0131302,.0056105,.0163574,.0090351,.0111685,.0069609,.0076604,.0074406,.0078306,.0100403,.013154,.0057526,.0131302,.0056105,.0163574,.0090351,.0111685,.0069609,-.6210486 +8937.5,.01089,.0021057,.0074406,.0078306,.0100403,.013154,.0057526,.0131302,.0056105,.0163574,.0090351,.0111685,.0055375,.0021057,.0074406,.0078306,.0100403,.013154,.0057526,.0131302,.0056105,.0163574,.0090351,.0111685,.5984473 +8972.1,.0038643,.01089,.0021057,.0074406,.0078306,.0100403,.013154,.0057526,.0131302,.0056105,.0163574,.0090351,.0074483,.01089,.0021057,.0074406,.0078306,.0100403,.013154,.0057526,.0131302,.0056105,.0163574,.0090351,-.4007184 +8974.3,.0002451,.0038643,.01089,.0021057,.0074406,.0078306,.0100403,.013154,.0057526,.0131302,.0056105,.0163574,.0071112,.0038643,.01089,.0021057,.0074406,.0078306,.0100403,.013154,.0057526,.0131302,.0056105,.0163574,-.7676749 +8897.8,-.0085611,.0002451,.0038643,.01089,.0021057,.0074406,.0078306,.0100403,.013154,.0057526,.0131302,.0056105,.0019864,.0002451,.0038643,.01089,.0021057,.0074406,.0078306,.0100403,.013154,.0057526,.0131302,.0056105,-1.17928 +8856.1,-.0046978,-.0085611,.0002451,.0038643,.01089,.0021057,.0074406,.0078306,.0100403,.013154,.0057526,.0131302,-.0001154,-.0085611,.0002451,.0038643,.01089,.0021057,.0074406,.0078306,.0100403,.013154,.0057526,.0131302,-.5123371 +8924.9,.0077391,-.0046978,-.0085611,.0002451,.0038643,.01089,.0021057,.0074406,.0078306,.0100403,.013154,.0057526,-.0020959,-.0046978,-.0085611,.0002451,.0038643,.01089,.0021057,.0074406,.0078306,.0100403,.013154,.0057526,1.099609 +8967.7,.0047836,.0077391,-.0046978,-.0085611,.0002451,.0038643,.01089,.0021057,.0074406,.0078306,.0100403,.013154,.0057382,.0077391,-.0046978,-.0085611,.0002451,.0038643,.01089,.0021057,.0074406,.0078306,.0100403,.013154,-.1067277 +9006.8,.0043507,.0047836,.0077391,-.0046978,-.0085611,.0002451,.0038643,.01089,.0021057,.0074406,.0078306,.0100403,.0052371,.0047836,.0077391,-.0046978,-.0085611,.0002451,.0038643,.01089,.0021057,.0074406,.0078306,.0100403,-.0991038 +9113.2,.0117445,.0043507,.0047836,.0077391,-.0046978,-.0085611,.0002451,.0038643,.01089,.0021057,.0074406,.0078306,.0033563,.0043507,.0047836,.0077391,-.0046978,-.0085611,.0002451,.0038643,.01089,.0021057,.0074406,.0078306,.9378498 +9213.7,.0109673,.0117445,.0043507,.0047836,.0077391,-.0046978,-.0085611,.0002451,.0038643,.01089,.0021057,.0074406,.0059378,.0117445,.0043507,.0047836,.0077391,-.0046978,-.0085611,.0002451,.0038643,.01089,.0021057,.0074406,.5623255 +9303.3,.0096779,.0109673,.0117445,.0043507,.0047836,.0077391,-.0046978,-.0085611,.0002451,.0038643,.01089,.0021057,.0063245,.0109673,.0117445,.0043507,.0047836,.0077391,-.0046978,-.0085611,.0002451,.0038643,.01089,.0021057,.3749302 +9396.5,.0099678,.0096779,.0109673,.0117445,.0043507,.0047836,.0077391,-.0046978,-.0085611,.0002451,.0038643,.01089,.0073436,.0096779,.0109673,.0117445,.0043507,.0047836,.0077391,-.0046978,-.0085611,.0002451,.0038643,.01089,.2933982 +9414,.0018606,.0099678,.0096779,.0109673,.0117445,.0043507,.0047836,.0077391,-.0046978,-.0085611,.0002451,.0038643,.0041905,.0099678,.0096779,.0109673,.0117445,.0043507,.0047836,.0077391,-.0046978,-.0085611,.0002451,.0038643,-.2604901 +9469.9,.0059204,.0018606,.0099678,.0096779,.0109673,.0117445,.0043507,.0047836,.0077391,-.0046978,-.0085611,.0002451,.0007395,.0018606,.0099678,.0096779,.0109673,.0117445,.0043507,.0047836,.0077391,-.0046978,-.0085611,.0002451,.5792586 +9516.1,.0048666,.0059204,.0018606,.0099678,.0096779,.0109673,.0117445,.0043507,.0047836,.0077391,-.0046978,-.0085611,.003564,.0059204,.0018606,.0099678,.0096779,.0109673,.0117445,.0043507,.0047836,.0077391,-.0046978,-.0085611,.1456355 +9643.1,.013258,.0048666,.0059204,.0018606,.0099678,.0096779,.0109673,.0117445,.0043507,.0047836,.0077391,-.0046978,.0060535,.0048666,.0059204,.0018606,.0099678,.0096779,.0109673,.0117445,.0043507,.0047836,.0077391,-.0046978,.8055044 +9737.6,.0097523,.013258,.0048666,.0059204,.0018606,.0099678,.0096779,.0109673,.0117445,.0043507,.0047836,.0077391,.0091949,.013258,.0048666,.0059204,.0018606,.0099678,.0096779,.0109673,.0117445,.0043507,.0047836,.0077391,.0623229 +9870.7,.0135756,.0097523,.013258,.0048666,.0059204,.0018606,.0099678,.0096779,.0109673,.0117445,.0043507,.0047836,.0090462,.0097523,.013258,.0048666,.0059204,.0018606,.0099678,.0096779,.0109673,.0117445,.0043507,.0047836,.5064127 +9928.9,.0058794,.0135756,.0097523,.013258,.0048666,.0059204,.0018606,.0099678,.0096779,.0109673,.0117445,.0043507,.0095798,.0135756,.0097523,.013258,.0048666,.0059204,.0018606,.0099678,.0096779,.0109673,.0117445,.0043507,-.413727 +10041.6,.0112867,.0058794,.0135756,.0097523,.013258,.0048666,.0059204,.0018606,.0099678,.0096779,.0109673,.0117445,.0077463,.0058794,.0135756,.0097523,.013258,.0048666,.0059204,.0018606,.0099678,.0096779,.0109673,.0117445,.3958473 +10075.9,.0034103,.0112867,.0058794,.0135756,.0097523,.013258,.0048666,.0059204,.0018606,.0099678,.0096779,.0109673,.0073036,.0112867,.0058794,.0135756,.0097523,.013258,.0048666,.0059204,.0018606,.0099678,.0096779,.0109673,-.4352866 +10111.1,.0034866,.0034103,.0112867,.0058794,.0135756,.0097523,.013258,.0048666,.0059204,.0018606,.0099678,.0096779,.0051532,.0034103,.0112867,.0058794,.0135756,.0097523,.013258,.0048666,.0059204,.0018606,.0099678,.0096779,-.1863364 +10197.7,.0085287,.0034866,.0034103,.0112867,.0058794,.0135756,.0097523,.013258,.0048666,.0059204,.0018606,.0099678,.003386,.0034866,.0034103,.0112867,.0058794,.0135756,.0097523,.013258,.0048666,.0059204,.0018606,.0099678,.5749851 +10270.1,.0070744,.0085287,.0034866,.0034103,.0112867,.0058794,.0135756,.0097523,.013258,.0048666,.0059204,.0018606,.0057008,.0085287,.0034866,.0034103,.0112867,.0058794,.0135756,.0097523,.013258,.0048666,.0059204,.0018606,.1535701 +10337.4,.0065317,.0070744,.0085287,.0034866,.0034103,.0112867,.0058794,.0135756,.0097523,.013258,.0048666,.0059204,.0073631,.0070744,.0085287,.0034866,.0034103,.0112867,.0058794,.0135756,.0097523,.013258,.0048666,.0059204,-.0929522 +10517.9,.0173101,.0065317,.0070744,.0085287,.0034866,.0034103,.0112867,.0058794,.0135756,.0097523,.013258,.0048666,.0072227,.0065317,.0070744,.0085287,.0034866,.0034103,.0112867,.0058794,.0135756,.0097523,.013258,.0048666,1.127842 +10615.2,.0092087,.0173101,.0065317,.0070744,.0085287,.0034866,.0034103,.0112867,.0058794,.0135756,.0097523,.013258,.0116725,.0173101,.0065317,.0070744,.0085287,.0034866,.0034103,.0112867,.0058794,.0135756,.0097523,.013258,-.2754648 +10727.4,.0105143,.0092087,.0173101,.0065317,.0070744,.0085287,.0034866,.0034103,.0112867,.0058794,.0135756,.0097523,.0081529,.0092087,.0173101,.0065317,.0070744,.0085287,.0034866,.0034103,.0112867,.0058794,.0135756,.0097523,.2640119 +10809.1,.0075865,.0105143,.0092087,.0173101,.0065317,.0070744,.0085287,.0034866,.0034103,.0112867,.0058794,.0135756,.0084091,.0105143,.0092087,.0173101,.0065317,.0070744,.0085287,.0034866,.0034103,.0112867,.0058794,.0135756,-.0919703 +10972.2,.0149765,.0075865,.0105143,.0092087,.0173101,.0065317,.0070744,.0085287,.0034866,.0034103,.0112867,.0058794,.0059154,.0075865,.0105143,.0092087,.0173101,.0065317,.0070744,.0085287,.0034866,.0034103,.0112867,.0058794,1.013084 +11112,.012661,.0149765,.0075865,.0105143,.0092087,.0173101,.0065317,.0070744,.0085287,.0034866,.0034103,.0112867,.008434,.0149765,.0075865,.0105143,.0092087,.0173101,.0065317,.0070744,.0085287,.0034866,.0034103,.0112867,.4726057 +11198.2,.0077276,.012661,.0149765,.0075865,.0105143,.0092087,.0173101,.0065317,.0070744,.0085287,.0034866,.0034103,.0100129,.012661,.0149765,.0075865,.0105143,.0092087,.0173101,.0065317,.0070744,.0085287,.0034866,.0034103,-.2555064 +11309,.0098457,.0077276,.012661,.0149765,.0075865,.0105143,.0092087,.0173101,.0065317,.0070744,.0085287,.0034866,.0078697,.0077276,.012661,.0149765,.0075865,.0105143,.0092087,.0173101,.0065317,.0070744,.0085287,.0034866,.220928 +11418.7,.009654,.0098457,.0077276,.012661,.0149765,.0075865,.0105143,.0092087,.0173101,.0065317,.0070744,.0085287,.0078744,.0098457,.0077276,.012661,.0149765,.0075865,.0105143,.0092087,.0173101,.0065317,.0070744,.0085287,.1989748 +11568.1,.0129986,.009654,.0098457,.0077276,.012661,.0149765,.0075865,.0105143,.0092087,.0173101,.0065317,.0070744,.0085493,.009654,.0098457,.0077276,.012661,.0149765,.0075865,.0105143,.0092087,.0173101,.0065317,.0070744,.497452 +11757.9,.0162745,.0129986,.009654,.0098457,.0077276,.012661,.0149765,.0075865,.0105143,.0092087,.0173101,.0065317,.0107043,.0129986,.009654,.0098457,.0077276,.012661,.0149765,.0075865,.0105143,.0092087,.0173101,.0065317,.6227744 +11867.8,.0093031,.0162745,.0129986,.009654,.0098457,.0077276,.012661,.0149765,.0075865,.0105143,.0092087,.0173101,.0130539,.0162745,.0129986,.009654,.0098457,.0077276,.012661,.0149765,.0075865,.0105143,.0092087,.0173101,-.4193643 +11967.7,.0083828,.0093031,.0162745,.0129986,.009654,.0098457,.0077276,.012661,.0149765,.0075865,.0105143,.0092087,.0080202,.0093031,.0162745,.0129986,.009654,.0098457,.0077276,.012661,.0149765,.0075865,.0105143,.0092087,.0405419 +12120.1,.0126534,.0083828,.0093031,.0162745,.0129986,.009654,.0098457,.0077276,.012661,.0149765,.0075865,.0105143,.0080963,.0083828,.0093031,.0162745,.0129986,.009654,.0098457,.0077276,.012661,.0149765,.0075865,.0105143,.5095093 +12329.8,.0171537,.0126534,.0083828,.0093031,.0162745,.0129986,.009654,.0098457,.0077276,.012661,.0149765,.0075865,.0096665,.0126534,.0083828,.0093031,.0162745,.0129986,.009654,.0098457,.0077276,.012661,.0149765,.0075865,.8371191 +12365.2,.0028677,.0171537,.0126534,.0083828,.0093031,.0162745,.0129986,.009654,.0098457,.0077276,.012661,.0149765,.012593,.0171537,.0126534,.0083828,.0093031,.0162745,.0129986,.009654,.0098457,.0077276,.012661,.0149765,-1.087348 +12598.7,.0187073,.0028677,.0171537,.0126534,.0083828,.0093031,.0162745,.0129986,.009654,.0098457,.0077276,.012661,.0071946,.0028677,.0171537,.0126534,.0083828,.0093031,.0162745,.0129986,.009654,.0098457,.0077276,.012661,1.287186 +12614.8,.001277,.0187073,.0028677,.0171537,.0126534,.0083828,.0093031,.0162745,.0129986,.009654,.0098457,.0077276,.0101974,.0187073,.0028677,.0171537,.0126534,.0083828,.0093031,.0162745,.0129986,.009654,.0098457,.0077276,-.9973632 +12682,.0053129,.001277,.0187073,.0028677,.0171537,.0126534,.0083828,.0093031,.0162745,.0129986,.009654,.0098457,.0068868,.001277,.0187073,.0028677,.0171537,.0126534,.0083828,.0093031,.0162745,.0129986,.009654,.0098457,-.1759705 +12645.7,-.0028667,.0053129,.001277,.0187073,.0028677,.0171537,.0126534,.0083828,.0093031,.0162745,.0129986,.009654,.0060159,.0053129,.001277,.0187073,.0028677,.0171537,.0126534,.0083828,.0093031,.0162745,.0129986,.009654,-.9931303 +12712.8,.0052929,-.0028667,.0053129,.001277,.0187073,.0028677,.0171537,.0126534,.0083828,.0093031,.0162745,.0129986,.0042966,-.0028667,.0053129,.001277,.0187073,.0028677,.0171537,.0126534,.0083828,.0093031,.0162745,.0129986,.1113912 +12674.1,-.0030489,.0052929,-.0028667,.0053129,.001277,.0187073,.0028677,.0171537,.0126534,.0083828,.0093031,.0162745,.0031963,.0052929,-.0028667,.0053129,.001277,.0187073,.0028677,.0171537,.0126534,.0083828,.0093031,.0162745,-.6982551 +12705.2,.0024509,-.0030489,.0052929,-.0028667,.0053129,.001277,.0187073,.0028677,.0171537,.0126534,.0083828,.0093031,.0031436,-.0030489,.0052929,-.0028667,.0053129,.001277,.0187073,.0028677,.0171537,.0126534,.0083828,.0093031,-.0774485 +12824.6,.0093536,.0024509,-.0030489,.0052929,-.0028667,.0053129,.001277,.0187073,.0028677,.0171537,.0126534,.0083828,.0037877,.0024509,-.0030489,.0052929,-.0028667,.0053129,.001277,.0187073,.0028677,.0171537,.0126534,.0083828,.6223049 +12894.7,.0054512,.0093536,.0024509,-.0030489,.0052929,-.0028667,.0053129,.001277,.0187073,.0028677,.0171537,.0126534,.0067242,.0093536,.0024509,-.0030489,.0052929,-.0028667,.0053129,.001277,.0187073,.0028677,.0171537,.0126534,-.1423236 +12956.7,.004796,.0054512,.0093536,.0024509,-.0030489,.0052929,-.0028667,.0053129,.001277,.0187073,.0028677,.0171537,.006187,.0054512,.0093536,.0024509,-.0030489,.0052929,-.0028667,.0053129,.001277,.0187073,.0028677,.0171537,-.1555138 +12962.9,.0004787,.004796,.0054512,.0093536,.0024509,-.0030489,.0052929,-.0028667,.0053129,.001277,.0187073,.0028677,.0035762,.004796,.0054512,.0093536,.0024509,-.0030489,.0052929,-.0028667,.0053129,.001277,.0187073,.0028677,-.3463191 +13028.6,.0050554,.0004787,.004796,.0054512,.0093536,.0024509,-.0030489,.0052929,-.0028667,.0053129,.001277,.0187073,.0024535,.0004787,.004796,.0054512,.0093536,.0024509,-.0030489,.0052929,-.0028667,.0053129,.001277,.0187073,.2909081 +13151.8,.0094118,.0050554,.0004787,.004796,.0054512,.0093536,.0024509,-.0030489,.0052929,-.0028667,.0053129,.001277,6.17e-06,.0050554,.0004787,.004796,.0054512,.0093536,.0024509,-.0030489,.0052929,-.0028667,.0053129,.001277,1.051609 +13374,.0167542,.0094118,.0050554,.0004787,.004796,.0054512,.0093536,.0024509,-.0030489,.0052929,-.0028667,.0053129,.0063961,.0094118,.0050554,.0004787,.004796,.0054512,.0093536,.0024509,-.0030489,.0052929,-.0028667,.0053129,1.158097 +13525.7,.0112791,.0167542,.0094118,.0050554,.0004787,.004796,.0054512,.0093536,.0024509,-.0030489,.0052929,-.0028667,.008467,.0167542,.0094118,.0050554,.0004787,.004796,.0054512,.0093536,.0024509,-.0030489,.0052929,-.0028667,.3144056 +13606.6,.0059633,.0112791,.0167542,.0094118,.0050554,.0004787,.004796,.0054512,.0093536,.0024509,-.0030489,.0052929,.0088934,.0112791,.0167542,.0094118,.0050554,.0004787,.004796,.0054512,.0093536,.0024509,-.0030489,.0052929,-.3275974 +13710.7,.0076218,.0059633,.0112791,.0167542,.0094118,.0050554,.0004787,.004796,.0054512,.0093536,.0024509,-.0030489,.0048477,.0059633,.0112791,.0167542,.0094118,.0050554,.0004787,.004796,.0054512,.0093536,.0024509,-.0030489,.3101525 +13831,.0087357,.0076218,.0059633,.0112791,.0167542,.0094118,.0050554,.0004787,.004796,.0054512,.0093536,.0024509,.0061405,.0076218,.0059633,.0112791,.0167542,.0094118,.0050554,.0004787,.004796,.0054512,.0093536,.0024509,.2901591 +13947.7,.0084019,.0087357,.0076218,.0059633,.0112791,.0167542,.0094118,.0050554,.0004787,.004796,.0054512,.0093536,.0068956,.0087357,.0076218,.0059633,.0112791,.0167542,.0094118,.0050554,.0004787,.004796,.0054512,.0093536,.1684144 +14100.2,.0108747,.0084019,.0087357,.0076218,.0059633,.0112791,.0167542,.0094118,.0050554,.0004787,.004796,.0054512,.0064764,.0084019,.0087357,.0076218,.0059633,.0112791,.0167542,.0094118,.0050554,.0004787,.004796,.0054512,.4917603 +14177.2,.0054455,.0108747,.0084019,.0087357,.0076218,.0059633,.0112791,.0167542,.0094118,.0050554,.0004787,.004796,.0077185,.0108747,.0084019,.0087357,.0076218,.0059633,.0112791,.0167542,.0094118,.0050554,.0004787,.004796,-.254136 +14292.9,.0081282,.0054455,.0108747,.0084019,.0087357,.0076218,.0059633,.0112791,.0167542,.0094118,.0050554,.0004787,.0058471,.0054455,.0108747,.0084019,.0087357,.0076218,.0059633,.0112791,.0167542,.0094118,.0050554,.0004787,.255042 +14372,.0055189,.0081282,.0054455,.0108747,.0084019,.0087357,.0076218,.0059633,.0112791,.0167542,.0094118,.0050554,.00809,.0081282,.0054455,.0108747,.0084019,.0087357,.0076218,.0059633,.0112791,.0167542,.0094118,.0050554,-.2874659 +14546.4,.0120621,.0055189,.0081282,.0054455,.0108747,.0084019,.0087357,.0076218,.0059633,.0112791,.0167542,.0094118,.0075216,.0055189,.0081282,.0054455,.0108747,.0084019,.0087357,.0076218,.0059633,.0112791,.0167542,.0094118,.5076539 +14591.6,.0031023,.0120621,.0055189,.0081282,.0054455,.0108747,.0084019,.0087357,.0076218,.0059633,.0112791,.0167542,.0084513,.0120621,.0055189,.0081282,.0054455,.0108747,.0084019,.0087357,.0076218,.0059633,.0112791,.0167542,-.5980555 +14604.4,.0008764,.0031023,.0120621,.0055189,.0081282,.0054455,.0108747,.0084019,.0087357,.0076218,.0059633,.0112791,.0051097,.0031023,.0120621,.0055189,.0081282,.0054455,.0108747,.0084019,.0087357,.0076218,.0059633,.0112791,-.4733106 +14718.4,.0077753,.0008764,.0031023,.0120621,.0055189,.0081282,.0054455,.0108747,.0084019,.0087357,.0076218,.0059633,.0022979,.0008764,.0031023,.0120621,.0055189,.0081282,.0054455,.0108747,.0084019,.0087357,.0076218,.0059633,.6124027 +14728.1,.000659,.0077753,.0008764,.0031023,.0120621,.0055189,.0081282,.0054455,.0108747,.0084019,.0087357,.0076218,.0057393,.0077753,.0008764,.0031023,.0120621,.0055189,.0081282,.0054455,.0108747,.0084019,.0087357,.0076218,-.5680088 +14841.5,.0076704,.000659,.0077753,.0008764,.0031023,.0120621,.0055189,.0081282,.0054455,.0108747,.0084019,.0087357,.0040382,.000659,.0077753,.0008764,.0031023,.0120621,.0055189,.0081282,.0054455,.0108747,.0084019,.0087357,.4061052 +14941.5,.0067148,.0076704,.000659,.0077753,.0008764,.0031023,.0120621,.0055189,.0081282,.0054455,.0108747,.0084019,.0058099,.0076704,.000659,.0077753,.0008764,.0031023,.0120621,.0055189,.0081282,.0054455,.0108747,.0084019,.1011773 +14996.1,.0036478,.0067148,.0076704,.000659,.0077753,.0008764,.0031023,.0120621,.0055189,.0081282,.0054455,.0108747,.0061068,.0067148,.0076704,.000659,.0077753,.0008764,.0031023,.0120621,.0055189,.0081282,.0054455,.0108747,-.2749325 +14895.4,-.0067377,.0036478,.0067148,.0076704,.000659,.0077753,.0008764,.0031023,.0120621,.0055189,.0081282,.0054455,.003094,.0036478,.0067148,.0076704,.000659,.0077753,.0008764,.0031023,.0120621,.0055189,.0081282,.0054455,-1.099246 +14969.2,.0049429,-.0067377,.0036478,.0067148,.0076704,.000659,.0077753,.0008764,.0031023,.0120621,.0055189,.0081282,.0007246,-.0067377,.0036478,.0067148,.0076704,.000659,.0077753,.0008764,.0031023,.0120621,.0055189,.0081282,.4716363 +14895.1,-.0049629,.0049429,-.0067377,.0036478,.0067148,.0076704,.000659,.0077753,.0008764,.0031023,.0120621,.0055189,.0015905,.0049429,-.0067377,.0036478,.0067148,.0076704,.000659,.0077753,.0008764,.0031023,.0120621,.0055189,-.732711 +14574.6,-.0217524,-.0049629,.0049429,-.0067377,.0036478,.0067148,.0076704,.000659,.0077753,.0008764,.0031023,.0120621,.0002069,-.0049629,.0049429,-.0067377,.0036478,.0067148,.0076704,.000659,.0077753,.0008764,.0031023,.0120621,-2.455183 +14372.1,-.0139914,-.0217524,-.0049629,.0049429,-.0067377,.0036478,.0067148,.0076704,.000659,.0077753,.0008764,.0031023,-.0089073,-.0217524,-.0049629,.0049429,-.0067377,.0036478,.0067148,.0076704,.000659,.0077753,.0008764,.0031023,-.5684257 +14356.9,-.0010576,-.0139914,-.0217524,-.0049629,.0049429,-.0067377,.0036478,.0067148,.0076704,.000659,.0077753,.0008764,-.0084868,-.0139914,-.0217524,-.0049629,.0049429,-.0067377,.0036478,.0067148,.0076704,.000659,.0077753,.0008764,.830628 +14402.5,.003171,-.0010576,-.0139914,-.0217524,-.0049629,.0049429,-.0067377,.0036478,.0067148,.0076704,.000659,.0077753,-.0020568,-.0010576,-.0139914,-.0217524,-.0049629,.0049429,-.0067377,.0036478,.0067148,.0076704,.000659,.0077753,.5844977 +14540.2,.0095158,.003171,-.0010576,-.0139914,-.0217524,-.0049629,.0049429,-.0067377,.0036478,.0067148,.0076704,.000659,.002865,.003171,-.0010576,-.0139914,-.0217524,-.0049629,.0049429,-.0067377,.0036478,.0067148,.0076704,.000659,.7435994 +14597.7,.0039463,.0095158,.003171,-.0010576,-.0139914,-.0217524,-.0049629,.0049429,-.0067377,.0036478,.0067148,.0076704,.0065629,.0095158,.003171,-.0010576,-.0139914,-.0217524,-.0049629,.0049429,-.0067377,.0036478,.0067148,.0076704,-.2925494 +14738,.0095654,.0039463,.0095158,.003171,-.0010576,-.0139914,-.0217524,-.0049629,.0049429,-.0067377,.0036478,.0067148,.0002352,.0039463,.0095158,.003171,-.0010576,-.0139914,-.0217524,-.0049629,.0049429,-.0067377,.0036478,.0067148,1.043164 +14839.3,.0068493,.0095654,.0039463,.0095158,.003171,-.0010576,-.0139914,-.0217524,-.0049629,.0049429,-.0067377,.0036478,.0019778,.0095654,.0039463,.0095158,.003171,-.0010576,-.0139914,-.0217524,-.0049629,.0049429,-.0067377,.0036478,.5446571 +14942.4,.0069246,.0068493,.0095654,.0039463,.0095158,.003171,-.0010576,-.0139914,-.0217524,-.0049629,.0049429,-.0067377,.002897,.0068493,.0095654,.0039463,.0095158,.003171,-.0010576,-.0139914,-.0217524,-.0049629,.0049429,-.0067377,.4503153 +14894,-.0032444,.0069246,.0068493,.0095654,.0039463,.0095158,.003171,-.0010576,-.0139914,-.0217524,-.0049629,.0049429,.0017176,.0069246,.0068493,.0095654,.0039463,.0095158,.003171,-.0010576,-.0139914,-.0217524,-.0049629,.0049429,-.5547867 +15011.3,.007844,-.0032444,.0069246,.0068493,.0095654,.0039463,.0095158,.003171,-.0010576,-.0139914,-.0217524,-.0049629,-.0038191,-.0032444,.0069246,.0068493,.0095654,.0039463,.0095158,.003171,-.0010576,-.0139914,-.0217524,-.0049629,1.303999 +15062.1,.0033789,.007844,-.0032444,.0069246,.0068493,.0095654,.0039463,.0095158,.003171,-.0010576,-.0139914,-.0217524,.000406,.007844,-.0032444,.0069246,.0068493,.0095654,.0039463,.0095158,.003171,-.0010576,-.0139914,-.0217524,.3323903 +15242.1,.0118799,.0033789,.007844,-.0032444,.0069246,.0068493,.0095654,.0039463,.0095158,.003171,-.0010576,-.0139914,.0054036,.0033789,.007844,-.0032444,.0069246,.0068493,.0095654,.0039463,.0095158,.003171,-.0010576,-.0139914,.7240902 +15381.6,.0091105,.0118799,.0033789,.007844,-.0032444,.0069246,.0068493,.0095654,.0039463,.0095158,.003171,-.0010576,.0091251,.0118799,.0033789,.007844,-.0032444,.0069246,.0068493,.0095654,.0039463,.0095158,.003171,-.0010576,-.0016381 +15427.7,.0029926,.0091105,.0118799,.0033789,.007844,-.0032444,.0069246,.0068493,.0095654,.0039463,.0095158,.003171,.0085219,.0091105,.0118799,.0033789,.007844,-.0032444,.0069246,.0068493,.0095654,.0039463,.0095158,.003171,-.6182016 +15534,.0068665,.0029926,.0091105,.0118799,.0033789,.007844,-.0032444,.0069246,.0068493,.0095654,.0039463,.0095158,.0041349,.0029926,.0091105,.0118799,.0033789,.007844,-.0032444,.0069246,.0068493,.0095654,.0039463,.0095158,.3054095 +15539.6,.0003605,.0068665,.0029926,.0091105,.0118799,.0033789,.007844,-.0032444,.0069246,.0068493,.0095654,.0039463,.0047566,.0068665,.0029926,.0091105,.0118799,.0033789,.007844,-.0032444,.0069246,.0068493,.0095654,.0039463,-.4915072 +15583.9,.0028467,.0003605,.0068665,.0029926,.0091105,.0118799,.0033789,.007844,-.0032444,.0069246,.0068493,.0095654,.0032529,.0003605,.0068665,.0029926,.0091105,.0118799,.0033789,.007844,-.0032444,.0069246,.0068493,.0095654,-.0454117 +15679.7,.0061283,.0028467,.0003605,.0068665,.0029926,.0091105,.0118799,.0033789,.007844,-.0032444,.0069246,.0068493,.0017767,.0028467,.0003605,.0068665,.0029926,.0091105,.0118799,.0033789,.007844,-.0032444,.0069246,.0068493,.4865319 +15839.3,.0101271,.0061283,.0028467,.0003605,.0068665,.0029926,.0091105,.0118799,.0033789,.007844,-.0032444,.0069246,.0047076,.0061283,.0028467,.0003605,.0068665,.0029926,.0091105,.0118799,.0033789,.007844,-.0032444,.0069246,.6059299 +15942.3,.0064821,.0101271,.0061283,.0028467,.0003605,.0068665,.0029926,.0091105,.0118799,.0033789,.007844,-.0032444,.0056379,.0101271,.0061283,.0028467,.0003605,.0068665,.0029926,.0091105,.0118799,.0033789,.007844,-.0032444,.0943921 +15902.9,-.0024748,.0064821,.0101271,.0061283,.0028467,.0003605,.0068665,.0029926,.0091105,.0118799,.0033789,.007844,.007997,.0064821,.0101271,.0061283,.0028467,.0003605,.0068665,.0029926,.0091105,.0118799,.0033789,.007844,-1.17081 diff --git a/statsmodels/tsa/statespace/tests/results/results_sarimax.py b/statsmodels/tsa/statespace/tests/results/results_sarimax.py new file mode 100644 index 0000000..081cee7 --- /dev/null +++ b/statsmodels/tsa/statespace/tests/results/results_sarimax.py @@ -0,0 +1,314 @@ +""" +Results for SARIMAX tests + +Results from Stata using script `test_sarimax_stata.do`. +See also Stata time series documentation. + +Data from: + +http://www.stata-press.com/data/r12/wpi1 +http://www.stata-press.com/data/r12/air2 +http://www.stata-press.com/data/r12/friedman2 + +Author: Chad Fulton +License: Simplified-BSD +""" + +wpi1_data = [ + 30.70000076, 30.79999924, 30.70000076, 30.70000076, + 30.79999924, 30.5 , 30.5 , 30.60000038, + 30.70000076, 30.60000038, 30.70000076, 30.70000076, + 30.60000038, 30.5 , 30.60000038, 30.70000076, + 30.70000076, 30.60000038, 30.70000076, 30.70000076, + 30.89999962, 31.20000076, 31.39999962, 31.60000038, + 32.09999847, 32.20000076, 32.59999847, 32.40000153, + 32.29999924, 32.29999924, 32.40000153, 32.5 , + 32.90000153, 33.09999847, 33.29999924, 33.40000153, + 33.90000153, 34.40000153, 34.70000076, 35. , + 35.5 , 35.70000076, 35.90000153, 35.90000153, + 36.5 , 36.90000153, 37.20000076, 37.20000076, + 37.90000153, 38.29999924, 38.79999924, 39.20000076, + 41.09999847, 43.09999847, 44.90000153, 45.29999924, + 48.29999924, 50. , 53.59999847, 55.40000153, + 55.40000153, 56. , 57.20000076, 57.79999924, + 58.09999847, 59. , 59.70000076, 60.20000076, + 61.59999847, 63. , 63.09999847, 63.90000153, + 65.40000153, 67.40000153, 68.40000153, 70. , + 72.5 , 75.09999847, 77.40000153, 80.19999695, + 83.90000153, 85.59999847, 88.40000153, 90.40000153, + 93.09999847, 95.19999695, 95.90000153, 95.80000305, + 96.59999847, 96.69999695, 97.09999847, 97.19999695, + 97.30000305, 97.59999847, 98.59999847, 99.09999847, + 100.19999695, 100.80000305, 100.59999847, 100.30000305, + 100.09999847, 100.19999695, 99.5 , 100.09999847, + 98.59999847, 96.80000305, 96.30000305, 96.69999695, + 97.80000305, 99.40000153, 100.5 , 101. , + 101.59999847, 103.19999695, 104.69999695, 105.19999695, + 107.5 , 109.40000153, 109. , 109.40000153, + 111. , 110.80000305, 112.80000305, 116.19999695 +] + +wpi1_ar3 = { + 'data': wpi1_data, + 'params_ar': [.52707154, .09526127, .25803547], + 'se_ar': [.09031296, .10143699, .09271067], + 'params_ma': [], + 'se_ma': [], + 'params_mean': [], + 'se_mean': [], + 'params_variance': [.53074593], + 'se_variance': [.067705], + 'loglike': -136.21782, + 'aic': 280.43565, + 'bic': 291.68438, +} + +wpi1_stationary = { + 'data': wpi1_data, + 'params_ar': [.8742288], + 'se_ar_opg': [.0545435], + 'se_ar_oim': [.0637705], + 'se_ar_robust': [.0811246], + 'params_ma': [-.4120458], + 'se_ma_opg': [.1000284], + 'se_ma_oim': [.1220756], + 'se_ma_robust': [.1503862], + 'params_mean': [.7498197], + 'se_mean': [.3340968], + 'se_mean_oim': [.2920992], + 'params_variance': [.7250436**2], + 'se_stddev_opg': [.0368065], + 'se_stddev_oim': [.0462345], + 'loglike': -135.35131, + 'aic': 278.7026, + 'bic': 289.9514, +} + +wpi1_diffuse = { + 'data': wpi1_data, + 'initial_variance': 1e9, + 'params_ar': [.864419], + 'se_ar_opg': [.0563637], + 'se_ar_oim': [.0716638], + 'params_ma': [-.3960891], + 'se_ma_opg': [.1018369], + 'se_ma_oim': [.1384683], + 'params_mean': [.8412064], + 'se_mean_opg': [.3159328], + 'se_mean_oim': [.3052621], + 'params_variance': [.7282775**2], + 'se_stddev_opg': [.0373227], + 'se_stddev_oim': [.0468532], + 'loglike': -154.29177, + 'aic': 316.5835, + 'bic': 327.8323, +} + +wpi1_seasonal = { + 'data': wpi1_data, + 'params_ar': [.7806991], + 'se_ar_opg': [.0944946], + 'se_ar_oim': [.0811792], + 'params_ma': [-.3990039, .3090813], + 'se_ma_opg': [.1258753, .1200945], + 'se_ma_oim': [.1058495, .1054576], + 'params_mean': [.0110493], + 'se_mean_opg': [.0048349], + 'se_mean_oim': [.0037734], + 'params_variance': [.0104394**2], + 'se_stddev_opg': [.0004702], + 'se_stddev_oim': [.0006658], + 'loglike': 386.03357, + 'aic': -762.0671, + 'bic': -748.0062, +} + +air2_data = [ + 112, 118, 132, 129, 121, 135, 148, 148, 136, 119, 104, 118, 115, + 126, 141, 135, 125, 149, 170, 170, 158, 133, 114, 140, 145, 150, + 178, 163, 172, 178, 199, 199, 184, 162, 146, 166, 171, 180, 193, + 181, 183, 218, 230, 242, 209, 191, 172, 194, 196, 196, 236, 235, + 229, 243, 264, 272, 237, 211, 180, 201, 204, 188, 235, 227, 234, + 264, 302, 293, 259, 229, 203, 229, 242, 233, 267, 269, 270, 315, + 364, 347, 312, 274, 237, 278, 284, 277, 317, 313, 318, 374, 413, + 405, 355, 306, 271, 306, 315, 301, 356, 348, 355, 422, 465, 467, + 404, 347, 305, 336, 340, 318, 362, 348, 363, 435, 491, 505, 404, + 359, 310, 337, 360, 342, 406, 396, 420, 472, 548, 559, 463, 407, + 362, 405, 417, 391, 419, 461, 472, 535, 622, 606, 508, 461, 390, 432 +] +air2_stationary = { + 'data': air2_data, + 'params_ma': [-.4018324], + 'se_ma_opg': [.0730307], + 'se_ma_oim': [.0896442], + 'params_seasonal_ma': [-.5569342], + 'se_seasonal_ma_opg': [.0963129], + 'se_seasonal_ma_oim': [.0731055], + 'params_variance': [.0367167**2], + 'se_stddev_opg': [.0020132], + 'se_stddev_oim': [.002277], + 'loglike': 244.69651, + 'aic': -483.393, + 'bic': -474.7674, +} + +friedman2_data = {'consump': [ + 310.3999939 , 316.3999939 , 321.70001221, 323.79998779, + 327.29998779, 333.20001221, 333.1000061 , 335. , + 335.70001221, 340.6000061 , 343.5 , 350.70001221, + 355.29998779, 361.29998779, 365.3999939 , 371.70001221, + 375.1000061 , 379.3999939 , 386.3999939 , 391.1000061 , + 400.5 , 408.29998779, 417.1000061 , 419.79998779, + 430.6000061 , 437.79998779, 447.20001221, 461.5 , + 472. , 477.1000061 , 486.3999939 , 492. , + 496.79998779, 506.20001221, 513.70001221, 521.20001221, + 539.5 , 553.20001221, 569.09997559, 577.5 , + 588.79998779, 599.40002441, 609.20001221, 621.09997559, + 632.40002441, 642.70001221, 655.20001221, 662.09997559, + 681.59997559, 695.79998779, 708.20001221, 724.5 , + 741.90002441, 759.90002441, 778.09997559, 802.90002441, + 827.20001221, 842.09997559, 860.79998779, 876.09997559, + 894.40002441, 922.40002441, 950.09997559, 957.79998779, + 982.70001221, 1012.40002441, 1046.30004883, 1075.09997559, + 1110.19995117, 1130.19995117, 1159.80004883, 1195. , + 1230.69995117, 1259.09997559, 1290.30004883, 1328.09997559, + 1358.30004883, 1417.40002441, 1450.59997559, 1488.69995117, + 1529.30004883, 1563.90002441, 1617.40002441, 1663.5 , + 1713.09997559, 1716.90002441, 1774.90002441, 1836.80004883, + 1890.30004883, 1923.5 , 1967.40002441, 1983.90002441 +], 'm2': [ + 289.1499939 , 294.04998779, 296.73001099, 297.79998779, + 299.3500061 , 302.32998657, 308.45001221, 312.36999512, + 318.29000854, 324.29000854, 329.54000854, 335.5 , + 343.1000061 , 349.25 , 354.86999512, 362.72000122, + 370.66000366, 378.42001343, 386.01998901, 393.23999023, + 399.76000977, 407.07998657, 416.88000488, 424.73999023, + 433.22000122, 440.1000061 , 449.48999023, 459.17001343, + 467.22000122, 471.1499939 , 475.42999268, 480.16000366, + 489.67001343, 502. , 514.65997314, 524.77001953, + 533.16998291, 542.60998535, 553.55999756, 566.84997559, + 574.35998535, 578.4699707 , 582.05999756, 587.90002441, + 587.26000977, 595.15997314, 611.20001221, 626.54998779, + 649.90002441, 672.96002197, 692.4699707 , 710.26000977, + 733.5 , 749.66998291, 778.35998535, 802.2800293 , + 815.30999756, 833.22998047, 839.27001953, 855.52001953, + 870.11999512, 877.82000732, 888.15997314, 902.41998291, + 925.55999756, 963.30999756, 991.7199707 , 1016.98999023, + 1050.0300293 , 1077.70996094, 1111.31005859, 1152.7800293 , + 1188.80004883, 1217.67004395, 1246.90002441, 1271.4699707 , + 1292.86999512, 1318.09997559, 1346.81005859, 1368.01000977, + 1388.9699707 , 1423.2199707 , 1456.85998535, 1475.75 , + 1501.81994629, 1529.52001953, 1576.0300293 , 1601.09997559, + 1638. , 1670.55004883, 1708.38000488, 1756.18994141 +]} + +friedman2_mle = { + 'data': friedman2_data, + 'params_exog': [-36.09872, 1.122029], + 'se_exog_opg': [56.56703, .0363563], + 'se_exog_oim': [33.95924, .0324069], + 'params_ar': [.9348486], + 'se_ar_opg': [.0411323], + 'se_ar_oim': [.039903], + 'params_ma': [.3090592], + 'se_ma_opg': [.0885883], + 'se_ma_oim': [.1125186], + 'params_variance': [9.655308**2], + 'se_stddev_opg': [.5635157], + 'se_stddev_oim': [.7122745], + 'loglike': -340.50774, + 'aic': 691.0155, + 'bic': 703.6244, +} + +# 1959q1 - 1981q4 +friedman2_prediction = [ + 300.7722, 314.699, 318.3328, 322.1395, 324.1479, 329.3138, 338.3326, + 334.2127, 340.1221, 340.1285, 345.7686, 348.9585, 358.8476, 360.8798, + 367.4761, 373.4112, 380.132, 383.0179, 388.0034, 395.276, 398.8789, + 410.393, 419.7131, 426.5234, 429.3965, 440.4875, 449.2072, 459.1391, + 472.4367, 477.6227, 482.9371, 493.2135, 502.3943, 509.5284, 520.3149, + 524.9484, 531.8344, 553.2029, 565.8674, 584.5371, 584.7531, 595.1661, + 604.5025, 616.0223, 620.5868, 641.1515, 656.7986, 668.2184, 683.2755, + 704.2855, 714.1062, 726.3972, 749.7296, 758.9711, 792.2435, 802.7343, + 820.1996, 850.1489, 849.0018, 882.2756, 891.0745, 904.4603, 936.7991, + 965.2041, 977.2533, 1020.77, 1038.109, 1072.798, 1107.716, 1137.204, + 1161.788, 1201.592, 1230.821, 1261.099, 1289.544, 1316.565, 1352.555, + 1384.148, 1450.45, 1466.267, 1508.321, 1560.003, 1589.353, 1631.959, + 1683.234, 1731.301, 1745.414, 1792.131, 1866.122, 1907.568, 1944.034, + 1999.784 +] + +# 1959q1 - 1981q4 +# Dynamic after 1978q1 +friedman2_dynamic_prediction = [ + 300.7722, 314.699, 318.3328, 322.1395, 324.1479, 329.3138, 338.3326, + 334.2127, 340.1221, 340.1285, 345.7686, 348.9585, 358.8476, 360.8798, + 367.4761, 373.4112, 380.132, 383.0179, 388.0034, 395.276, 398.8789, + 410.393, 419.7131, 426.5234, 429.3965, 440.4875, 449.2072, 459.1391, + 472.4367, 477.6227, 482.9371, 493.2135, 502.3943, 509.5284, 520.3149, + 524.9484, 531.8344, 553.2029, 565.8674, 584.5371, 584.7531, 595.1661, + 604.5025, 616.0223, 620.5868, 641.1515, 656.7986, 668.2184, 683.2755, + 704.2855, 714.1062, 726.3972, 749.7296, 758.9711, 792.2435, 802.7343, + 820.1996, 850.1489, 849.0018, 882.2756, 891.0745, 904.4603, 936.7991, + 965.2041, 977.2533, 1020.77, 1038.109, 1072.798, 1107.716, 1137.204, + 1161.788, 1201.592, 1230.821, 1261.099, 1289.544, 1316.565, 1352.555, + 1377.515, 1406.237, 1427.295, 1448.221, 1483.042, 1517.318, 1536.364, + 1562.931, 1591.249, 1639.144, 1664.832, 1702.839, 1736.367, 1775.407, + 1824.832 +] + +# 1959q1 - 1981q4 +# Forecasts after 1978q1 +friedman2_forecast = [ + 300.7722, 314.699, 318.3328, 322.1395, 324.1479, 329.3138, 338.3326, + 334.2127, 340.1221, 340.1285, 345.7686, 348.9585, 358.8476, 360.8798, + 367.4761, 373.4112, 380.132, 383.0179, 388.0034, 395.276, 398.8789, + 410.393, 419.7131, 426.5234, 429.3965, 440.4875, 449.2072, 459.1391, + 472.4367, 477.6227, 482.9371, 493.2135, 502.3943, 509.5284, 520.3149, + 524.9484, 531.8344, 553.2029, 565.8674, 584.5371, 584.7531, 595.1661, + 604.5025, 616.0223, 620.5868, 641.1515, 656.7986, 668.2184, 683.2755, + 704.2855, 714.1062, 726.3972, 749.7296, 758.9711, 792.2435, 802.7343, + 820.1996, 850.1489, 849.0018, 882.2756, 891.0745, 904.4603, 936.7991, + 965.2041, 977.2533, 1020.77, 1038.109, 1072.798, 1107.716, 1137.204, + 1161.788, 1201.592, 1230.821, 1261.099, 1289.544, 1316.565, 1352.555, + 1384.148, 1412.057, 1432.403, 1452.703, 1486.975, 1520.77, 1539.393, + 1565.588, 1593.582, 1641.19, 1666.628, 1704.415, 1737.75, 1776.62, + 1825.897 +] + +# 1959q1 - 1981q4 +# Forecasts after 1978q1 (and dynamic) +# This (the dynamic part) is not necessarily a sensible thing to do, but this +# is just a unit test +friedman2_dynamic_forecast = [ + 300.7722, 314.699, 318.3328, 322.1395, 324.1479, 329.3138, 338.3326, + 334.2127, 340.1221, 340.1285, 345.7686, 348.9585, 358.8476, 360.8798, + 367.4761, 373.4112, 380.132, 383.0179, 388.0034, 395.276, 398.8789, + 410.393, 419.7131, 426.5234, 429.3965, 440.4875, 449.2072, 459.1391, + 472.4367, 477.6227, 482.9371, 493.2135, 502.3943, 509.5284, 520.3149, + 524.9484, 531.8344, 553.2029, 565.8674, 584.5371, 584.7531, 595.1661, + 604.5025, 616.0223, 620.5868, 641.1515, 656.7986, 668.2184, 683.2755, + 704.2855, 714.1062, 726.3972, 749.7296, 758.9711, 792.2435, 802.7343, + 820.1996, 850.1489, 849.0018, 882.2756, 891.0745, 904.4603, 936.7991, + 965.2041, 977.2533, 1020.77, 1038.109, 1072.798, 1107.716, 1137.204, + 1161.788, 1201.592, 1230.821, 1261.099, 1289.544, 1316.565, 1352.555, + 1377.515, 1406.237, 1427.295, 1448.221, 1483.042, 1517.318, 1536.364, + 1562.931, 1591.249, 1639.144, 1664.832, 1702.839, 1736.367, 1775.407, + 1824.832 +] + +friedman2_predict = { + 'data': friedman2_data, + 'predict': friedman2_prediction, + 'dynamic_predict': friedman2_dynamic_prediction, + 'forecast': friedman2_forecast, + 'dynamic_forecast': friedman2_dynamic_forecast, + 'params_exog': [.66189, 1.037905], + 'params_ar': [.8775207], + 'params_ma': [.2770867], + 'params_variance': [5.630046**2], + 'loglike': -243.31642, + 'aic': 496.6328, + 'bic': 508.3519, +} diff --git a/statsmodels/tsa/statespace/tests/results/results_sarimax_coverage.csv b/statsmodels/tsa/statespace/tests/results/results_sarimax_coverage.csv new file mode 100644 index 0000000..a627e55 --- /dev/null +++ b/statsmodels/tsa/statespace/tests/results/results_sarimax_coverage.csv @@ -0,0 +1,54 @@ +mod,llf,parameters +"arima wpi, arima(3,0,0) noconstant vce(oim)",-145.917,"1.600047,-.3624836,-.2377553,.7515501" +"arima wpi c, arima(3,0,0) noconstant vce(oim)",-145.1327,"78.60683,1.599097,-.3606729,-.2392393,.7511453" +"arima wpi c t, arima(3,0,0) noconstant vce(oim)",-139.5423,"19.46176,.768438,1.528349,-.3448674,-.1935674,.7281097" +"arima wpi c t3, arima(3,0,0) noconstant vce(oim)",-138.9533,"38.71439,.0000445,1.530887,-.3313616,-.2082853,.7239346" +"arima wpi, arima(3,2,0) noconstant vce(oim)",-135.9354,"-.4536069,-.3408174,-.0977653,.7363397" +"arima wpi, arima(3,0,0) sarima(0,2,0,4) noconstant vce(oim)",-194.9269,"1.179762,-.3453264,-.0898734,1.289575" +"arima wpi, arima(3,0,0) noconstant vce(oim) diffuse",-159.3091,"1.641477,-.6359852,-.0014474,.7450104" +"arima wpi x, arima(3,0,0) noconstant vce(oim)",-145.7514,".0806147,1.610143,-.382758,-.2275756,.7505294" +"arima wpi, arima(0,0,3) noconstant vce(oim)",-540.8154,"-505.7114,-970.6211,-507.9258,.0357879" +"arima wpi c, arima(0,0,3) noconstant vce(oim)",-379.8598,"62.99608,2.451664,2.39358,.8955524,4.920951" +"arima wpi c t, arima(0,0,3) noconstant vce(oim)",-254.3036,"13.00193,.7996427,2.084224,2.038812,.8249226,1.800869" +"arima wpi c t3, arima(0,0,3) noconstant vce(oim)",-278.1551,"38.14465,.0000501,2.115914,2.078889,.8569969,2.181463" +"arima wpi, arima(0,2,3) noconstant vce(oim)",-136.14,"-.4584812,-.1298735,.0632101,.7375874" +"arima wpi, arima(0,0,3) sarima(0,2,0,4) noconstant vce(oim)",-171.4663,"1.094744,1.094739,1.000001,-1.008989" +"arima wpi, arima(0,0,3) noconstant vce(oim) diffuse",-587.4832,"-27.57705,-55.33257,-29.37171,.6453013" +"arima wpi x, arima(0,0,3) noconstant vce(oim)",-476.4098,".9280385,2.378931,2.378931,.9999992,10.62952" +"arima wpi, arima(3,0,3) noconstant vce(oim)",-142.1485,".9500802,.9998841,-.9501915,.6116305,-.5273701,-.1392938,.7241816" +"arima wpi c, arima(3,0,2) noconstant vce(oim)",-141.6737,"80.5513,1.678086,-.4215884,-.2572052,-.1579189,-.2332231,.7297933" +"arima wpi c t, arima(3,0,2) noconstant vce(oim)",-136.6645,"16.39083,.7941504,1.635404,-.3962173,-.2480547,-.1668943,-.2374508,.7109324" +"arima wpi c t3, arima(3,0,2) noconstant vce(oim)",-135.8174,"37.6362,.0000484,1.6636,-.4328509,-.2383885,-.1989134,-.2353735,.7052346" +"arima wpi, arima(3,2,2) noconstant vce(oim)",-134.3081,".6015591,.0150202,.2054096,-1.094043,.1107661,.7241633" +"arima wpi, arima(3,0,2) sarima(0,2,0,4) noconstant vce(oim)",-179.129,"1.211058,-.7514844,.1956546,-.1231004,1,1.088146" +"arima wpi, arima(3,2,2) sarima(0,2,0,4) noconstant vce(oim)",-190.8858,"-.3645584,.1081667,.1720293,9.66e-08,-1.000001,1.247552" +"arima wpi, arima(3,0,2) noconstant vce(oim) diffuse",-155.478,"2.261425,-1.605342,.3449455,-.7905483,.1561876,.7256975" +"arima wpi x, arima(3,0,2) noconstant vce(oim)",-142.1656,".1367752,1.632881,-.3357823,-.2972526,-.0898929,-.2674371,.7281773" +"arima wpi, sarima(3,0,0,4) noconstant vce(oim)",-302.9966,"1.950329,-1.151533,.199516,2.442114" +"arima wpi c, sarima(3,0,0,4) noconstant vce(oim)",-299.2088,"71.28411,1.937048,-1.128636,.182796,2.42974" +"arima wpi c t, sarima(3,0,0,4) noconstant vce(oim)",-279.8638,"19.09781,.7348265,1.728363,-1.005377,.1971021,2.181769" +"arima wpi c t3, sarima(3,0,0,4) noconstant vce(oim)",-284.7776,"40.37701,.0000402,1.771423,-.9909791,.1655766,2.250117" +"arima wpi, arima(0,2,0) sarima(3,0,0,4) noconstant vce(oim)",-146.5967,".1093829,-.0753548,-.0933771,.8039928" +"arima wpi, sarima(3,2,0,4) noconstant vce(oim)",-268.6161,".0712682,-.3369143,-.1180569,2.438388" +"arima wpi, sarima(3,0,0,4) noconstant vce(oim) diffuse",-355.6312,"1.625832,-.61329,.0032626,2.456462" +"arima wpi x, sarima(3,0,0,4) noconstant vce(oim)",-302.6354,"-.3005221,1.955475,-1.161604,.2044588,2.434233" +"arima wpi, sarima(0,0,3,4) noconstant vce(oim)",-493.3605,"2.612943,2.61295,1.000004,10.63571" +"arima wpi c, sarima(0,0,3,4) noconstant vce(oim)",-407.9579,"63.18759,2.716964,2.792693,1.128853,4.888196" +"arima wpi c t, sarima(0,0,3,4) noconstant vce(oim)",-302.5591,"15.22961,.7746883,1.741946,1.4764,.6085909,2.620034" +"arima wpi c t3, sarima(0,0,3,4) noconstant vce(oim)",-320.6151,"38.83094,.0000473,1.806445,1.633288,.7156993,2.992223" +"arima wpi, arima(0,2,0) sarima(0,0,3,4) noconstant vce(oim)",-146.6127,".1181947,-.0550111,-.0974394,.8041813" +"arima wpi, sarima(0,2,3,4) noconstant vce(oim)",-265.4803,"-.0022288,-.4547194,-.265093,2.352103" +"arima wpi, sarima(0,0,3,4) noconstant vce(oim) diffuse",-594.3781,"2.523607,2.442817,.9009514,11.65001" +"arima wpi x, sarima(0,0,3,4) noconstant vce(oim)",-493.3495,"-.07391,2.613046,2.613045,.9999989,10.63459" +"arima wpi, sarima(3,0,2,4) noconstant vce(oim)",-298.2331,"2.290215,-1.620824,.3299609,1.239569,-1.690899,1.134022" +"arima wpi c, sarima(3,0,2,4) noconstant vce(oim)",-297.3261,"71.09661,.8739118,.628973,-.5235254,3.822714,3.279209,.7281108" +"arima wpi c t, sarima(3,0,2,4) noconstant vce(oim)",-277.6305,"18.52915,.7413986,.0106101,1.414883,-.6965621,1.775,.5448672,2.144826" +"arima wpi c t3, sarima(3,0,2,4) noconstant vce(oim)",-274.1764,"39.50053,.000046,2.077418,-1.276982,.161876,-.487932,-.5120805,1.979523" +"arima wpi, arima(0,2,0) sarima(3,0,2,4) noconstant vce(oim)",-144.272,"-1.510547,-.6593249,-.0585331,1.688265,.8242572,.780077" +"arima wpi, sarima(3,2,2,4) noconstant vce(oim)",-265.2458,".963946,-.4554486,.1971574,-1.021818,.0216137,2.297261" +"arima wpi, arima(0,2,0) sarima(3,2,2,4) noconstant vce(oim)",-166.3303,"-1.501011,-.7561807,-.2807991,.0000117,-.9999927,.9676953" +"arima wpi, sarima(3,0,2,4) noconstant vce(oim) diffuse",-332.4084,"1.138662,-.1033737,-3.58e-08,.5722654,-.0668218,2.400033" +"arima wpi x, sarima(3,0,2,4) noconstant vce(oim)",-300.3242,"-.3366271,1.468002,-.3188579,-.1517738,20.52264,36.0693,.0660329" +"arima wpi x, arima(3,2,2) sarima(3,2,2,4) noconstant vce(oim)",-153.2699,".0895384,.2855166,.1133933,.1913281,-.7379875,-.2619959,-1.222196,-.6400887,-.3323564,-.2370796,-.7629162,.8210427" +"arima wpi x, arima(3,2,2) sarima(3,2,2,4) noconstant vce(oim) diffuse",-225.3551,".0277889,-.7673,-.0694887,.2007625,.6439733,-.4002686,-.3540113,-.0270317,-2.49e-07,.3540135,.0270364,1.231185" +"arima D.wpi2 t32 x, arima(3,0,2) noconstant vce(oim)",-126.8014,"8.88e-07,.2010488,.1937695,-.447184,.6869978,.4204914,.7453312,.742711" diff --git a/statsmodels/tsa/statespace/tests/results/results_smoothing_R.csv b/statsmodels/tsa/statespace/tests/results/results_smoothing_R.csv new file mode 100644 index 0000000..38a5ad6 --- /dev/null +++ b/statsmodels/tsa/statespace/tests/results/results_smoothing_R.csv @@ -0,0 +1,203 @@ +"r1","r2","r3","detN","m1","m2","m3","detPmu","v1","v2","v3","F1","F2","F3","a1","a2","a3","detP","alphahat1","alphahat2","alphahat3","detV","muhat1","muhat2","muhat3","detVmu","etahat1","etahat2","etahat3","detVeta","epshat1","epshat2","epshat3","Veps1","Veps2","Veps3" +3.93104930508059e-05,-4.74927774802766,-12.7383199661869,1.45890760503934e-07,0,0,0,999999999999998592,NA,26.3,23.961,1000001,1000001,1000001,0,26.2999737000263,23.9609760390239,3999999.99996655,39.3104930508059,21.550700701562,11.2226688119232,19.3333660284117,39.3104930508059,21.550700701562,11.2226688119232,19.3333660284117,3.93104930508059e-05,-4.74927774802766,-12.7383199661869,0.3819654489623,0,4.74929929872836,12.7383311888557,1,0.618033606782863,0.618033606782863 +3.93104930508059e-05,-6.04785479474273,7.37902887888031,1.91566448186757e-07,0,26.2999737000263,23.9609760390239,3999999.99996655,NA,-8.19997370002635,-45.5939760390239,1000002,2.99999899999239,2.99999899999239,0,20.8333254777908,-6.43500292095441,2777782.96295929,39.310532361299,16.8014229532848,-1.51565115493282,11.0599216730989,39.310532361299,16.8014229532848,-1.51565115493282,11.0599216730989,3.93104930508059e-05,-6.04785479474273,7.37902887888031,0.316187583657143,0,1.29857704671507,-20.1173488450672,1,0.472135899271045,0.472135899271044 +3.93104930508059e-05,2.80571336379929,3.1124066028278,1.98749623423023e-07,0,20.8333254777908,-6.43500292095441,2777782.96295929,NA,-18.9333254777907,16.5650029209544,1000003,2.66666655555467,2.66666655555467,0,8.99999735000718,3.91812364581185,2640632.87109319,39.310571671792,10.7535681585421,5.86337772394749,9.88188668205834,39.310571671792,10.7535681585421,5.86337772394749,9.88188668205834,3.93104930508059e-05,2.80571336379929,3.1124066028278,0.307109930418793,0,-8.85356815854202,4.26662227605251,1,0.450849710616695,0.450849710616688 +3.93104930508059e-05,-0.435005113859261,-20.2778090703969,1.9980868600128e-07,0,8.99999735000718,3.91812364581185,2640632.87109319,NA,7.80000264999278,28.4478763541881,1000004,2.62499998437488,2.62499998437488,0,13.8285704013631,21.5287137053249,2621325.67066183,39.3106109822851,13.5592815223414,8.97578432677528,9.54576019072231,39.3106109822851,13.5592815223414,8.97578432677528,9.54576019072231,3.93104930508059e-05,-0.435005113859261,-20.2778090703969,0.305796570643906,0,3.24071847765855,23.3902156732247,1,0.447744097546026,0.447744097545979 +3.93104930508059e-05,-9.71072870537721,1.99016618598146,1.99963436392211e-07,0,13.8285704013631,21.5287137053249,2621325.67066183,NA,8.57142959863699,-55.0987137053249,1000005,2.61904761678003,2.61904761678003,0,19.1272723322324,-12.5323092942977,2618525.48818632,39.3106502927781,13.1242764084821,-11.3020247436216,9.3263995714509,39.3106502927781,13.1242764084821,-11.3020247436216,9.3263995714509,3.93104930508059e-05,-9.71072870537721,1.99016618598146,0.305605189290669,0,9.27572359151795,-22.2679752563784,1,0.447290994705697,0.447290994705373 +3.93104930508059e-05,0.802818997727851,-5.54469237165873,1.99986019175244e-07,0,19.1272723322324,-12.5323092942977,2618525.48818632,NA,-26.2272723322326,10.7553092942977,1000006,2.61818181785124,2.61818181785124,0,2.9173609614924,-5.88493063375738,2618119.48933082,39.3106896032712,3.41354770310493,-9.31185855764017,9.12365135493298,39.3106896032712,3.41354770310493,-9.31185855764017,9.12365135493298,3.93104930508059e-05,0.802818997727851,-5.54469237165873,0.305577272137918,0,-10.5135477031051,7.53485855764018,1,0.447224887894063,0.447224887891842 +3.93104930508059e-05,2.61918569856054,16.2097566990424,1.99989314050576e-07,0,2.9173609614924,-5.88493063375738,2618119.48933082,NA,-0.517360961492312,-30.7260693662426,1000007,2.61805555550733,2.61805555550733,0,2.5976126749504,-24.8747825230227,2618062.49742673,39.3107289137642,4.21636670083278,-14.8565509292989,8.92327441084561,39.3107289137642,4.21636670083278,-14.8565509292989,8.92327441084561,3.93104930508059e-05,2.61918569856054,16.2097566990424,0.305573199205235,0,-1.81636670083269,-21.7544490707011,1,0.447215243052953,0.44721524303773 +3.93104930508059e-05,9.95473809795386,10.9219624687859,1.99989794666565e-07,0,2.5976126749504,-24.8747825230227,2618062.49742673,NA,-3.0976126749504,31.5157825230227,1000008,2.61803713527148,2.61803713527148,0,0.683181335825165,-5.39694327377052,2618056.41861809,39.3107682242573,6.83555239939332,1.35320576974347,8.72323568974603,39.3107682242573,6.83555239939332,1.35320576974347,8.72323568974603,3.93104930508059e-05,9.95473809795386,10.9219624687859,0.305572605100859,0,-7.33555239939332,5.2877942302565,1,0.447213835976819,0.447213835872479 +3.93104930508059e-05,0.145028595301123,3.3561307073152,1.99989864087647e-07,0,0.683181335825165,-5.39694327377052,2618056.41861809,NA,25.9168186641747,25.2379432737705,1000009,2.61803444782065,2.61803444782065,0,16.7006578863968,10.200965165936,2618057.76780153,39.3108075347503,16.7902904973472,12.2751682385293,8.52324490716159,39.3108075347503,16.7902904973472,12.2751682385293,8.52324490716159,3.93104930508059e-05,0.145028595301123,3.3561307073152,0.305572519287406,0,9.80970950265274,7.56583176147067,1,0.447213631284988,0.447213630569836 +3.93104930508059e-05,8.28034768794947,-4.99357034684026,1.99989869418906e-07,0,16.7006578863968,10.200965165936,2618057.76780153,NA,-7.90065788639682,13.780034834064,1000010,2.6180340557274,2.6180340557274,0,11.8177827019143,18.717495194202,2618060.20071259,39.3108468452434,16.9353190926483,15.6312989458445,8.3232606848154,39.3108468452434,16.9353190926483,15.6312989458445,8.3232606848154,3.93104930508059e-05,8.28034768794947,-4.99357034684026,0.305572512697281,0,-8.13531909264834,8.34970105415546,1,0.447213605518309,0.447213600616584 +3.93104930508059e-05,-3.00398553145278,0.408158252163961,1.99989837316624e-07,0,11.8177827019143,18.717495194202,2618060.20071259,NA,24.6822172980857,-13.481495194202,1000011,2.61803399852178,2.61803399852178,0,27.0722319450313,10.3854729257963,2618062.79173749,39.3108861557364,25.2156667805978,10.6377285990043,8.12327748689645,39.3108861557364,25.2156667805978,10.6377285990043,8.12327748689645,3.93104930508059e-05,-3.00398553145278,0.408158252163961,0.305572552379852,0,11.2843332194022,-5.40172859900423,1,0.447213629843381,0.447213596246464 +3.93104930508059e-05,-0.592304282307975,-7.3539548966678,1.99989607269397e-07,0,27.0722319450313,10.3854729257963,2618062.79173749,NA,-7.27223194503109,8.42252707420371,1000012,2.61803399017559,2.61803399017559,0,22.5777454274166,15.5908809305723,2618065.40583089,39.3109254662295,22.211681249145,11.0458868511682,7.92329697959605,39.3109254662295,22.211681249145,11.0458868511682,7.92329697959605,3.93104930508059e-05,-0.592304282307975,-7.3539548966678,0.305572836747972,0,-2.4116812491448,7.76211314883176,1,0.447213825885571,0.447213595608872 +3.93104930508059e-05,-2.07292731547087,-0.430022942167345,1.99988029041088e-07,0,22.5777454274166,15.5908809305723,2618065.40583089,NA,0.522254572583279,-18.8228809305724,1000013,2.6180339889579,2.6180339889579,0,22.900516504069,3.95770074871513,2618068.02328996,39.3109647767225,21.619376966837,3.69193195450043,7.72333580055348,39.3109647767225,21.619376966837,3.69193195450043,7.72333580055348,3.93104930508059e-05,-2.07292731547087,-0.430022942167345,0.30557478764224,0,1.4806230331629,-6.92393195450046,1,0.447215173855825,0.447213595515848 +3.93104930508059e-05,2.07352233589517,-3.09111392983426,1.99977211490153e-07,0,22.900516504069,3.95770074871513,2618068.02328996,NA,-7.50051650406891,1.96529925128487,1000014,2.61803398878024,2.61803398878024,0,18.2649423713417,5.1723224840826,2618070.64124007,39.3110040872156,19.5464496513661,3.26190901233308,7.52350577815102,39.3110040872156,19.5464496513661,3.26190901233308,7.52350577815102,3.93104930508059e-05,2.07352233589517,-3.09111392983426,0.305588159534,0,-4.14644965136605,2.66109098766692,1,0.447224413605411,0.447213595502276 +3.93104930508059e-05,-3.50650567684333,8.39168115266457,1.99903066861918e-07,0,18.2649423713417,5.1723224840826,2618070.64124007,NA,8.93505762865815,-16.4843224840826,1000015,2.61803398875432,2.61803398875432,0,23.7871116772972,-5.0155490926052,2618073.25926181,39.3110433977086,21.6199719872613,0.170795082498824,7.32455285080981,39.3110433977086,21.6199719872613,0.170795082498824,7.32455285080981,3.93104930508059e-05,-3.50650567684333,8.39168115266457,0.305679811882048,0,5.5800280127385,-11.4827950824988,1,0.447287743882263,0.447213595500296 +3.93104930508059e-05,1.50696063357452,-1.11684261217206,1.99394872015207e-07,0,23.7871116772972,-5.0155490926052,2618073.25926181,NA,-10.6871116772971,23.0865490926052,1000016,2.61803398875054,2.61803398875054,0,17.1821134191607,9.25272292957005,2618075.87729402,39.3110827082017,18.113466310418,8.5624762351634,7.13144817230428,39.3110827082017,18.113466310418,8.5624762351634,7.13144817230428,3.93104930508059e-05,1.50696063357452,-1.11684261217206,0.306308006426631,0,-5.01346631041785,9.50852376483663,1,0.447721816070641,0.447213595500007 +3.93104930508059e-05,2.42738757756697,1.31979101081927,1.95911652716462e-07,0,17.1821134191607,9.25272292957005,2618075.87729402,NA,1.51788658083933,-4.24372292957004,1000017,2.61803398874999,2.61803398874999,0,18.1202189171868,6.62995792025843,2618078.49532775,39.3111220186947,19.6204269439925,7.44563362299134,6.97729399207268,39.3111220186947,19.6204269439925,7.44563362299134,6.97729399207268,3.93104930508059e-05,2.42738757756697,1.31979101081927,0.310613715890657,0,-0.920426943992456,-2.43663362299133,1,0.450696991112437,0.447213595499965 +3.93104930508059e-05,-2.42479790087341,-1.28678435537008,1.72037312471961e-07,0,18.1202189171868,6.62995792025843,2618078.49532775,NA,8.77978108281306,4.74204207974152,1000018,2.61803398874991,2.61803398874991,0,23.5464220401486,9.56070110162094,2618081.1133617,39.3111613291878,22.0478145215595,8.76542463381061,7.08232425688181,39.3111613291878,22.0478145215595,8.76542463381061,7.08232425688181,3.93104930508059e-05,-2.42479790087341,-1.28678435537008,0.340125487594257,0,4.85218547844039,2.60657536618935,1,0.471089144216628,0.447213595499959 +3.93104930508059e-05,0.398218719812695,1.75985592307045,8.40015005919993e-09,0,23.5464220401486,9.56070110162094,2618081.1133617,NA,-6.74642204014869,-5.12870110162093,1000019,2.6180339887499,2.6180339887499,0,19.3769039168853,6.39098950268018,2618083.73139568,39.3112006396808,19.6230166206861,7.47864027844054,8.91044962716286,39.3112006396808,19.6230166206861,7.47864027844054,8.91044962716286,3.93104930508059e-05,0.398218719812695,1.75985592307045,0.542402180055435,0,-2.82301662068611,-3.04664027844052,1,0.610859040904169,0.447213595499958 +3.93104930508059e-05,0.398218719812695,-3.9906478754186,8.40015005919993e-09,0,19.3769039168853,6.39098950268018,2618083.73139568,NA,NA,8.59801049731985,1000020,2.61803398874989,2.61803398874989,0,19.3769039168853,11.7048522256522,4236152.69885934,39.3112399501739,20.0212353404988,9.23849620151098,22.1829478034946,39.3112399501739,20.0212353404988,9.23849620151098,22.1829478034946,3.93104930508059e-05,0.398218719812695,-3.9906478754186,0.542402180055435,0,0,5.75050379848905,1,1,0.447213595499958 +3.93104930508059e-05,0.398218719812695,3.00220045067378,8.40015005919993e-09,0,19.3769039168853,11.7048522256522,4236152.69885934,NA,NA,-13.4498522256522,1000021,3.61803398874989,2.61803398874989,0,19.3769039168853,3.39238640653573,5854224.90239096,39.3112792606669,20.4194540603115,5.24784832609238,34.0842376340759,39.3112792606669,20.4194540603115,5.24784832609238,34.0842376340759,3.93104930508059e-05,0.398218719812695,3.00220045067378,0.542402180055436,0,0,-6.99284832609238,1,1,0.447213595499958 +3.93104930508059e-05,0.398218719812695,2.27624922743993,8.4001500591999e-09,0,19.3769039168853,3.39238640653573,5854224.90239096,NA,NA,5.58361359346427,1000022,4.61803398874989,2.61803398874989,0,19.3769039168853,6.84324938734259,7472300.34199059,39.31131857116,20.8176727801241,8.25004877676615,44.6647169640579,39.31131857116,20.8176727801241,8.25004877676615,44.6647169640579,3.93104930508059e-05,0.398218719812695,2.27624922743993,0.542402180055438,0,0,0.725951223233845,1,1,0.447213595499959 +3.93104930508059e-05,0.398218719812695,9.64654723164601,8.4001500591996e-09,0,19.3769039168853,6.84324938734259,7472300.34199059,NA,NA,-3.68724938734258,1000023,5.61803398874989,2.61803398874989,0,19.3769039168853,4.56440394096765,9090379.01765818,39.311357881653,21.2158914999368,10.5262980042061,53.9747838399865,39.311357881653,21.2158914999368,10.5262980042061,53.9747838399865,3.93104930508059e-05,0.398218719812695,9.64654723164601,0.542402180055453,0,0,-7.37029800420608,1,1,0.447213595499965 +3.93104930508059e-05,0.398218719812695,-9.41560753250186,8.40015005919763e-09,0,19.3769039168853,4.56440394096765,9090379.01765818,NA,NA,34.6705960590323,1000024,6.61803398874989,2.61803398874989,0,19.3769039168853,25.9920107156678,10708460.9293938,39.3113971921461,21.6141102197495,20.1728452358521,62.0648365106031,39.3113971921461,21.6141102197495,20.1728452358521,62.0648365106031,3.93104930508059e-05,0.398218719812695,-9.41560753250186,0.542402180055557,0,0,19.0621547641479,1,1,0.447213595500005 +3.93104930508059e-05,0.398218719812695,1.36763017084832,8.40015005918399e-09,0,19.3769039168853,25.9920107156678,10708460.9293938,NA,NA,-26.0180107156677,1000025,7.61803398874989,2.61803398874989,0,19.3769039168853,9.91199577372614,12326546.0771973,39.3114365026391,22.0123289395622,10.7572377033502,68.9852734257349,39.3114365026391,22.0123289395622,10.7572377033502,68.9852734257349,3.93104930508059e-05,0.398218719812695,1.36763017084832,0.542402180056268,0,0,-10.7832377033502,1,1,0.447213595500282 +3.93104930508059e-05,0.398218719812695,-1.83250195495311,8.40015005909073e-09,0,19.3769039168853,9.91199577372614,12326546.0771973,NA,NA,5.41300422627384,1000026,8.61803398874989,2.61803398874989,0,19.3769039168853,13.2574163668102,13944634.4610688,39.3114758131322,22.4105476593749,12.1248678741986,74.7864932371879,39.3114758131322,22.4105476593749,12.1248678741986,74.7864932371879,3.93104930508059e-05,0.398218719812695,-1.83250195495311,0.542402180061141,0,0,3.20013212580143,1,1,0.447213595502179 +3.93104930508059e-05,0.398218719812695,6.41086396429236,8.40015005845134e-09,0,19.3769039168853,13.2574163668102,13944634.4610688,NA,NA,-11.2084163668102,1000027,9.61803398874989,2.61803398874989,0,19.3769039168853,6.33023409206088,15562726.0810083,39.3115151236252,22.8087663791876,10.2923659192454,79.518894799867,39.3115151236252,22.8087663791876,10.2923659192454,79.518894799867,3.93104930508059e-05,0.398218719812695,6.41086396429236,0.542402180094541,0,0,-8.24336591924547,1,1,0.447213595515181 +3.93104930508059e-05,0.398218719812695,-14.6369061521699,8.40015005406902e-09,0,19.3769039168853,6.33023409206088,15562726.0810083,NA,NA,31.4207659079392,1000028,10.6180339887499,2.61803398874989,0,19.3769039168853,25.7493353757212,17180820.9370158,39.3115544341183,23.2069850990003,16.7032298835378,83.232877180908,39.3115544341183,23.2069850990003,16.7032298835378,83.232877180908,3.93104930508059e-05,0.398218719812695,-14.6369061521699,0.542402180323468,0,0,21.0477701164622,1,1,0.447213595604297 +3.93104930508059e-05,0.398218719812695,-3.73458242080194,8.4001500240321e-09,0,19.3769039168853,25.7493353757212,17180820.9370158,NA,NA,-34.5853353757212,1000029,11.6180339887499,2.61803398874989,0,19.3769039168853,4.37442260121139,18798919.0290913,39.3115937446113,23.605203818813,2.06632373136792,85.9788397236703,39.3115937446113,23.605203818813,2.06632373136792,85.9788397236703,3.93104930508059e-05,0.398218719812695,-3.73458242080194,0.542402181892556,0,0,-10.9023237313679,1,1,0.44721359621511 +3.93104930508059e-05,0.398218719812695,-0.691841110235955,8.40014981815599e-09,0,19.3769039168853,4.37442260121139,18798919.0290913,NA,NA,-9.0854226012114,1000030,12.6180339887499,2.61803398874989,0,19.3769039168853,-1.24067736849374,20417020.3572346,39.3116330551044,24.0034225386257,-1.66825868943402,87.8071824916291,39.3116330551044,24.0034225386257,-1.66825868943402,87.8071824916291,3.93104930508059e-05,0.398218719812695,-0.691841110235955,0.542402192647247,0,0,-3.04274131056599,1,1,0.447213600401682 +3.93104930508059e-05,0.398218719812695,-5.31194090990592,8.40014840706026e-09,0,19.3769039168853,-1.24067736849374,20417020.3572346,NA,NA,3.50067736849373,1000031,13.6180339887499,2.61803398874989,0,19.3769039168853,0.922860228882926,22035124.9214461,39.3116723655974,24.4016412584384,-2.36009979966998,88.7683093188851,39.3116723655974,24.4016412584384,-2.36009979966998,88.7683093188851,3.93104930508059e-05,0.398218719812695,-5.31194090990592,0.542402266360998,0,0,4.62009979966997,1,1,0.447213629096876 +3.93104930508059e-05,0.398218719812695,-0.0339816194818372,8.40013873526612e-09,0,19.3769039168853,0.922860228882926,22035124.9214461,NA,NA,-13.8728602288829,1000032,14.6180339887499,2.61803398874989,0,19.3769039168853,-7.65103891374336,23653232.7217255,39.3117116760905,24.7998599782511,-7.6720407095759,88.9126485926108,39.3117116760905,24.7998599782511,-7.6720407095759,88.9126485926108,3.93104930508059e-05,0.398218719812695,-0.0339816194818372,0.542402771602562,0,0,-5.27795929042409,1,1,0.447213825776657 +3.93104930508059e-05,0.398218719812695,11.8739960514605,8.40007244380289e-09,0,19.3769039168853,-7.65103891374336,23653232.7217255,NA,NA,-11.9629610862567,1000033,15.6180339887499,2.61803398874989,0,19.3769039168853,-15.0445554711423,25271343.7580728,39.3117509865835,25.1980786980638,-7.70602232905774,88.2907936731136,39.3117509865835,25.1980786980638,-7.70602232905774,88.2907936731136,3.93104930508059e-05,0.398218719812695,11.8739960514605,0.542406234579759,0,0,-11.9079776709423,1,1,0.447215173839934 +3.93104930508059e-05,0.398218719812695,3.40196977386313,8.39961807535446e-09,0,19.3769039168853,-15.0445554711423,25271343.7580728,NA,NA,27.6845554711424,1000034,16.6180339887499,2.61803398874989,0,19.3769039168853,2.06544077345551,26889458.0304881,39.3117902970766,25.5962974178765,4.16797372240271,86.9544440782659,39.3117902970766,25.5962974178765,4.16797372240271,86.9544440782659,3.93104930508059e-05,0.398218719812695,3.40196977386313,0.542429970178574,0,0,8.47202627759733,1,1,0.447224413603093 +3.93104930508059e-05,0.398218719812695,1.17091327012898,8.39650378767862e-09,0,19.3769039168853,2.06544077345551,26889458.0304881,NA,NA,7.73555922654448,1000035,17.6180339887499,2.61803398874989,0,19.3769039168853,6.84627929744785,28507575.5389715,39.3118296075696,25.9945161376892,7.56994349626584,84.9626637047663,39.3118296075696,25.9945161376892,7.56994349626584,84.9626637047663,3.93104930508059e-05,0.398218719812695,1.17091327012898,0.54259265639308,0,0,2.23105650373415,1,1,0.447287743881925 +3.93104930508059e-05,0.398218719812695,-0.161229963476183,8.37515814239612e-09,0,19.3769039168853,6.84627929744785,28507575.5389715,NA,NA,3.22672070255213,1000036,18.6180339887499,2.61803398874989,0,19.3769039168853,8.840502363828,30125696.2835228,39.3118689180627,26.3927348575019,8.74085676639482,82.4231587723746,39.3118689180627,26.3927348575019,8.74085676639482,82.4231587723746,3.93104930508059e-05,0.398218719812695,-0.161229963476183,0.543707724295812,0,0,1.33214323360516,1,1,0.447721816070592 +3.93104930508059e-05,0.398218719812695,-10.7006031605576,8.2288529130945e-09,0,19.3769039168853,8.840502363828,30125696.2835228,NA,NA,10.278497636172,1000037,19.6180339887499,2.61803398874989,0,19.3769039168853,15.1929632562678,31743820.2641421,39.3119082285557,26.7909535773146,8.57962680291863,79.7622737317176,39.3119082285557,26.7909535773146,8.57962680291863,79.7622737317176,3.93104930508059e-05,0.398218719812695,-10.7006031605576,0.551350513400429,0,0,10.5393731970814,1,1,0.45069699111243 +3.93104930508059e-05,0.398218719812695,3.1514204818035,7.22606195326572e-09,0,19.3769039168853,15.1929632562678,31743820.2641421,NA,NA,-31.1659632562678,1000038,20.6180339887499,2.61803398874989,0,19.3769039168853,-4.06866132823607,33361947.4808294,39.3119475390488,27.1891722971273,-2.12097635763894,79.4755276399229,39.3119475390488,27.1891722971273,-2.12097635763894,79.4755276399229,3.93104930508059e-05,0.398218719812695,3.1514204818035,0.603734969230016,0,0,-13.8520236423611,1,1,0.471089144216627 +3.93104930508059e-05,0.398218719812695,-0.763135394031943,3.5283046376582e-10,0,19.3769039168853,-4.06866132823607,33361947.4808294,NA,NA,9.01366132823606,1000039,21.6180339887499,2.61803398874989,0,19.3769039168853,1.50208773569434,34980077.9335846,39.3119868495418,27.58739101694,1.03044412416455,97.3702489498367,39.3119868495418,27.58739101694,1.03044412416455,97.3702489498367,3.93104930508059e-05,0.398218719812695,-0.763135394031943,0.962783370932509,0,0,3.91455587583544,1,1,0.610859040904169 +3.93104930508059e-05,0.398218719812695,-0.763135394031943,3.5283046376582e-10,0,19.3769039168853,1.50208773569434,34980077.9335846,NA,NA,NA,1000040,22.6180339887499,2.61803398874989,0,19.3769039168853,1.50208773569434,59217150.3325171,39.3120261600349,27.9856097367527,0.267308730132611,234.021528812389,39.3120261600349,27.9856097367527,0.267308730132611,234.021528812389,3.93104930508059e-05,0.398218719812695,-0.763135394031943,0.962783370932509,0,0,0,1,1,1 +3.93104930508059e-05,0.398218719812695,-0.763135394031943,3.5283046376582e-10,0,19.3769039168853,1.50208773569434,59217150.3325171,NA,NA,NA,1000041,23.6180339887499,3.61803398874989,0,19.3769039168853,1.50208773569434,85454353.2035861,39.3120654705279,28.3838284565654,-0.495826663899332,343.827227244831,39.3120654705279,28.3838284565654,-0.495826663899332,343.827227244831,3.93104930508059e-05,0.398218719812695,-0.763135394031943,0.962783370932509,0,0,0,1,1,1 +3.93104930508059e-05,0.398218719812695,-0.763135394031943,3.5283046376582e-10,0,19.3769039168853,1.50208773569434,85454353.2035861,NA,NA,NA,1000042,24.6180339887499,4.61803398874989,0,19.3769039168853,1.50208773569434,113691692.54679,39.312104781021,28.782047176378,-1.25896205793127,426.169489039222,39.312104781021,28.782047176378,-1.25896205793127,426.169489039222,3.93104930508059e-05,0.398218719812695,-0.763135394031943,0.962783370932509,0,0,0,1,1,1 +3.93104930508059e-05,0.398218719812695,-0.763135394031943,3.5283046376582e-10,0,19.3769039168853,1.50208773569434,113691692.54679,NA,NA,NA,1000043,25.6180339887499,5.61803398874989,0,19.3769039168853,1.50208773569434,143929174.362131,39.312144091514,29.1802658961907,-2.02209745196322,480.994597127193,39.312144091514,29.1802658961907,-2.02209745196322,480.994597127193,3.93104930508059e-05,0.398218719812695,-0.763135394031943,0.962783370932509,0,0,0,1,1,1 +3.93104930508059e-05,0.398218719812695,-0.763135394031943,3.5283046376582e-10,0,19.3769039168853,1.50208773569434,143929174.362131,NA,NA,NA,1000044,26.6180339887499,6.61803398874989,0,19.3769039168853,1.50208773569434,176166804.649607,39.3121834020071,29.5784846160034,-2.78523284599516,508.770633947839,39.3121834020071,29.5784846160034,-2.78523284599516,508.770633947839,3.93104930508059e-05,0.398218719812695,-0.763135394031943,0.962783370932509,0,0,0,1,1,1 +3.93104930508059e-05,0.398218719812695,-0.763135394031943,3.5283046376582e-10,0,19.3769039168853,1.50208773569434,176166804.649607,NA,NA,NA,1000045,27.6180339887499,7.61803398874989,0,19.3769039168853,1.50208773569434,210404589.409219,39.3122227125001,29.9767033358161,-3.5483682400271,510.445142504558,39.3122227125001,29.9767033358161,-3.5483682400271,510.445142504558,3.93104930508059e-05,0.398218719812695,-0.763135394031943,0.962783370932509,0,0,0,1,1,1 +3.93104930508059e-05,0.398218719812695,-0.763135394031943,3.5283046376582e-10,0,19.3769039168853,1.50208773569434,210404589.409219,NA,NA,NA,1000046,28.6180339887499,8.61803398874989,0,19.3769039168853,1.50208773569434,246642534.640968,39.3122620229932,30.3749220556288,-4.31150363405905,487.402787222299,39.3122620229932,30.3749220556288,-4.31150363405905,487.402787222299,3.93104930508059e-05,0.398218719812695,-0.763135394031943,0.962783370932509,0,0,0,1,1,1 +3.93104930508059e-05,0.398218719812695,-0.763135394031943,3.5283046376582e-10,0,19.3769039168853,1.50208773569434,246642534.640968,NA,NA,NA,1000047,29.6180339887499,9.61803398874989,0,19.3769039168853,1.50208773569434,284880646.344853,39.3123013334862,30.7731407754415,-5.07463902809099,441.423014524865,39.3123013334862,30.7731407754415,-5.07463902809099,441.423014524865,3.93104930508059e-05,0.398218719812695,-0.763135394031943,0.962783370932509,0,0,0,1,1,1 +3.93104930508059e-05,0.398218719812695,-0.763135394031943,3.5283046376582e-10,0,19.3769039168853,1.50208773569434,284880646.344853,NA,NA,NA,1000048,30.6180339887499,10.6180339887499,0,19.3769039168853,1.50208773569434,325118930.520874,39.3123406439793,31.1713594952542,-5.83777442212293,374.637713163081,39.3123406439793,31.1713594952542,-5.83777442212293,374.637713163081,3.93104930508059e-05,0.398218719812695,-0.763135394031943,0.962783370932509,0,0,0,1,1,1 +3.93104930508059e-05,0.398218719812695,-0.763135394031943,3.5283046376582e-10,0,19.3769039168853,1.50208773569434,325118930.520874,NA,NA,NA,1000049,31.6180339887499,11.6180339887499,0,19.3769039168853,1.50208773569434,367357393.16903,39.3123799544723,31.5695782150669,-6.60090981615487,289.488874288941,39.3123799544723,31.5695782150669,-6.60090981615487,289.488874288941,3.93104930508059e-05,0.398218719812695,-0.763135394031943,0.962783370932509,0,0,0,1,1,1 +3.93104930508059e-05,0.398218719812695,-0.763135394031943,3.5283046376582e-10,0,19.3769039168853,1.50208773569434,367357393.16903,NA,NA,NA,1000050,32.6180339887499,12.6180339887499,0,19.3769039168853,1.50208773569434,411596040.289321,39.3124192649654,31.9677969348796,-7.36404521018682,188.6862512757,39.3124192649654,31.9677969348796,-7.36404521018682,188.6862512757,3.93104930508059e-05,0.398218719812695,-0.763135394031943,0.962783370932509,0,0,0,1,1,1 +26.991497888965,0.398218719812695,-0.763135394031943,0.000134776118126662,0,19.3769039168853,1.50208773569434,411596040.289321,12.3209999999999,NA,NA,1000051,33.6180339887499,13.6180339887499,12.3209876796283,19.3769039168853,1.50208773569434,915.622601172475,39.3124585754584,32.3660156546923,-8.12718060421876,75.1650192839404,39.3124585754584,32.3660156546923,-8.12718060421876,75.1650192839404,26.991497888965,0.398218719812695,-0.763135394031943,0.595033301573348,-26.9914585784719,0,0,0.618033606794666,1,1 +13.7904543548196,0.398218719812695,-0.763135394031943,0.000154439637277554,12.3209876796283,19.3769039168853,1.50208773569434,915.622601172475,67.1840123203719,NA,NA,2.99999899999239,34.6180339887499,14.6180339887499,57.1103217615932,19.3769039168853,1.50208773569434,843.412606224117,66.3039564658548,32.764234374505,-8.8903159982507,59.2775451997449,66.3039564658548,32.764234374505,-8.8903159982507,59.2775451997449,13.7904543548196,0.398218719812695,-0.763135394031943,0.541379289550537,13.2010435341454,0,0,0.472135899271044,1,1 +-13.4471348245054,0.398218719812695,-0.763135394031943,0.00015730850605828,57.1103217615932,19.3769039168853,1.50208773569434,843.412606224117,50.2216782384062,NA,NA,2.66666655555467,35.6180339887499,15.6180339887499,88.4988698758771,19.3769039168853,1.50208773569434,903.960947662208,80.0944108206744,33.1624530943177,-9.65345139228264,57.8808899414837,80.0944108206744,33.1624530943177,-9.65345139228264,57.8808899414837,-13.4471348245054,0.398218719812695,-0.763135394031943,0.533551274693594,27.237589179325,0,0,0.450849710616688,1,1 +8.79814117166351,0.398218719812695,-0.763135394031943,0.000157727068372476,88.4988698758771,19.3769039168853,1.50208773569434,903.960947662208,-44.0968698758771,NA,NA,2.62499998437488,36.6180339887499,16.6180339887499,61.2008076717564,19.3769039168853,1.50208773569434,985.222424167378,66.647275996169,33.5606718141304,-10.4165867863146,58.2462236090637,66.647275996169,33.5606718141304,-10.4165867863146,58.2462236090637,8.79814117166351,0.398218719812695,-0.763135394031943,0.532409182717797,-22.2452759961689,0,0,0.447744097545979,1,1 +7.20055833949541,0.398218719812695,-0.763135394031943,0.000157788135791119,61.2008076717564,19.3769039168853,1.50208773569434,985.222424167378,15.8421923282441,NA,NA,2.61904761678003,37.6180339887499,17.6180339887499,70.9941629239793,19.3769039168853,1.50208773569434,1072.45938750696,75.4454171678325,33.9588905339431,-11.1797221803465,58.4423331231985,75.4454171678325,33.9588905339431,-11.1797221803465,58.4423331231985,7.20055833949541,0.398218719812695,-0.763135394031943,0.532242553744166,1.5975828321681,0,0,0.447290994705373,1,1 +-31.7734661531766,0.398218719812695,-0.763135394031943,0.000157797045407426,70.9941629239793,19.3769039168853,1.50208773569434,1072.45938750696,50.6258370760206,NA,NA,2.61818181785124,38.6180339887499,18.6180339887499,102.283742781023,19.3769039168853,1.50208773569434,1163.36878861692,82.6459755073279,34.3571092537558,-11.9428575743785,58.178680559852,82.6459755073279,34.3571092537558,-11.9428575743785,58.178680559852,-31.7734661531766,0.398218719812695,-0.763135394031943,0.532218242904548,38.974024492672,0,0,0.447224887891842,1,1 +-37.3059567990251,0.398218719812695,-0.763135394031943,0.000157798345302926,102.283742781023,19.3769039168853,1.50208773569434,1163.36878861692,-45.878742781023,NA,NA,2.61805555550733,39.6180339887499,19.6180339887499,73.9289760227823,19.3769039168853,1.50208773569434,1257.5836652169,50.8725093541513,34.7553279735685,-12.7059929684104,57.4142905116076,50.8725093541513,34.7553279735685,-12.7059929684104,57.4142905116076,-37.3059567990251,0.398218719812695,-0.763135394031943,0.532214696000849,5.53249064584847,0,0,0.44721524303773,1,1 +2.57959575610067,0.398218719812695,-0.763135394031943,0.000157798534955124,73.9289760227823,19.3769039168853,1.50208773569434,1257.5836652169,-100.247976022782,NA,NA,2.61803713527148,40.6180339887499,20.6180339887499,11.972273516404,19.3769039168853,1.50208773569434,1355.0456094439,13.5665525551262,35.1535466933812,-13.4691283624424,56.1485335277661,13.5665525551262,35.1535466933812,-13.4691283624424,56.1485335277661,2.57959575610067,0.398218719812695,-0.763135394031943,0.532214178514573,-39.8855525551257,0,0,0.447213835872479,1,1 +-28.0722559326722,0.398218719812695,-0.763135394031943,0.000157798562625007,11.972273516404,19.3769039168853,1.50208773569434,1355.0456094439,34.8257264835957,NA,NA,2.61803444782065,41.6180339887499,21.6180339887499,33.495758498714,19.3769039168853,1.50208773569434,1455.74535856208,16.1461483112269,35.5517654131939,-14.2322637564743,54.3899567844765,16.1461483112269,35.5517654131939,-14.2322637564743,54.3899567844765,-28.0722559326722,0.398218719812695,-0.763135394031943,0.532214103014343,30.6518516887729,0,0,0.447213630569836,1,1 +3.43463644588246,0.398218719812695,-0.763135394031943,0.000157798566661988,33.495758498714,19.3769039168853,1.50208773569434,1455.74535856208,-76.928758498714,NA,NA,2.6180340557274,42.6180339887499,22.6180339887499,-14.0488297175627,19.3769039168853,1.50208773569434,1559.68144901313,-11.9261076214453,35.9499841330066,-14.9953991505062,52.1516821863348,-11.9261076214453,35.9499841330066,-14.9953991505062,52.1516821863348,3.43463644588246,0.398218719812695,-0.763135394031943,0.532214091999008,-31.5068923785547,0,0,0.447213600616584,1,1 +-17.6278347296803,0.398218719812695,-0.763135394031943,0.000157798567250976,-14.0488297175627,19.3769039168853,1.50208773569434,1559.68144901313,26.6198297175626,NA,NA,2.61803399852178,43.6180339887499,23.6180339887499,2.40312986057738,19.3769039168853,1.50208773569434,1666.85365033111,-8.49147117556287,36.3482028528193,-15.7585345445382,49.4507328874756,-8.49147117556287,36.3482028528193,-15.7585345445382,49.4507328874756,-17.6278347296803,0.398218719812695,-0.763135394031943,0.532214090391892,21.0624711755628,0,0,0.447213596246464,1,1 +4.92085936507614,0.398218719812695,-0.763135394031943,0.000157798567336908,2.40312986057738,19.3769039168853,1.50208773569434,1666.85365033111,-51.071129860577,NA,NA,2.61803399017559,44.6180339887499,24.6180339887499,-29.1605642477421,19.3769039168853,1.50208773569434,1777.26192633711,-26.1193059052432,36.7464215726319,-16.5216699385701,46.307935587268,-26.1193059052432,36.7464215726319,-16.5216699385701,46.307935587268,4.92085936507614,0.398218719812695,-0.763135394031943,0.532214090157417,-22.5486940947565,0,0,0.447213595608872,1,1 +2.90241282490937,0.398218719812695,-0.763135394031943,0.000157798567349445,-29.1605642477421,19.3769039168853,1.50208773569434,1777.26192633711,9.98056424774176,NA,NA,2.6180339889579,45.6180339887499,25.6180339887499,-22.9922363154327,19.3769039168853,1.50208773569434,1890.90627136785,-21.1984465401671,37.1446402924446,-17.2848053326021,42.7479064808657,-21.1984465401671,37.1446402924446,-17.2848053326021,42.7479064808657,2.90241282490937,0.398218719812695,-0.763135394031943,0.532214090123208,2.01844654016677,0,0,0.447213595515848,1,1 +43.6513791096517,0.398218719812695,-0.763135394031943,0.000157798567351274,-22.9922363154327,19.3769039168853,1.50208773569434,1890.90627136785,-36.0527636845673,NA,NA,2.61803398878024,46.6180339887499,26.6180339887499,-45.2740696610229,19.3769039168853,1.50208773569434,2007.78668453912,-18.2960337152577,37.5428590122573,-18.047940726634,38.7990492573245,-18.2960337152577,37.5428590122573,-18.047940726634,38.7990492573245,43.6513791096517,0.398218719812695,-0.763135394031943,0.532214090118217,-40.7489662847424,0,0,0.447213595502276,1,1 +32.3597245040459,0.398218719812695,-0.763135394031943,0.000157798567351541,-45.2740696610229,19.3769039168853,1.50208773569434,2007.78668453912,81.9210696610228,NA,NA,2.61803398875432,47.6180339887499,27.6180339887499,5.35593578428997,19.3769039168853,1.50208773569434,2127.90316571322,25.355345394394,37.94107773207,-18.811076120666,34.4935548170859,25.355345394394,37.94107773207,-18.811076120666,34.4935548170859,32.3597245040459,0.398218719812695,-0.763135394031943,0.532214090117488,11.2916546056059,0,0,0.447213595500296,1,1 +8.68879440248531,0.398218719812695,-0.763135394031943,0.00015779856735158,5.35593578428997,19.3769039168853,1.50208773569434,2127.90316571322,76.0300642157105,NA,NA,2.61803398875054,48.6180339887499,28.6180339887499,52.3450996364433,19.3769039168853,1.50208773569434,2251.25571486874,57.7150698984399,38.3392964518827,-19.5742115146979,29.8674012325156,57.7150698984399,38.3392964518827,-19.5742115146979,29.8674012325156,8.68879440248531,0.398218719812695,-0.763135394031943,0.532214090117382,23.6709301015605,0,0,0.447213595500007,1,1 +10.9096587034105,0.398218719812695,-0.763135394031943,0.000157798567351586,52.3450996364433,19.3769039168853,1.50208773569434,2251.25571486874,11.8379003635567,NA,NA,2.61803398874999,49.6180339887499,29.6180339887499,59.6613244165562,19.3769039168853,1.50208773569434,2377.84433200237,66.4038643009252,38.7375151716954,-20.3373469087298,24.9603537424539,66.4038643009252,38.7375151716954,-20.3373469087298,24.9603537424539,10.9096587034105,0.398218719812695,-0.763135394031943,0.532214090117367,-2.2208643009252,0,0,0.447213595499965,1,1 +-24.9288182922529,0.398218719812695,-0.763135394031943,0.000157798567351586,59.6613244165562,19.3769039168853,1.50208773569434,2377.84433200237,53.4906755834429,NA,NA,2.61803398874991,50.6180339887499,30.6180339887499,92.7203800083182,19.3769039168853,1.50208773569434,2507.66901711359,77.3135230043357,39.1357338915081,-21.1004823027618,19.8159647514722,77.3135230043357,39.1357338915081,-21.1004823027618,19.8159647514722,-24.9288182922529,0.398218719812695,-0.763135394031943,0.532214090117365,35.8384769956634,0,0,0.447213595499959,1,1 +-10.8281135801707,0.398218719812695,-0.763135394031943,0.000157798567351587,92.7203800083182,19.3769039168853,1.50208773569434,2507.66901711359,-54.4363800083176,NA,NA,2.6180339887499,51.6180339887499,31.6180339887499,59.0768469386726,19.3769039168853,1.50208773569434,2640.72977020233,52.3847047120828,39.5339526113208,-21.8636176967937,14.4815738297741,52.3847047120828,39.5339526113208,-21.8636176967937,14.4815738297741,-10.8281135801707,0.398218719812695,-0.763135394031943,0.532214090117364,-14.1007047120822,0,0,0.447213595499958,1,1 +5.60347755174136,0.398218719812695,-0.763135394031943,0.000157798567351587,59.0768469386726,19.3769039168853,1.50208773569434,2640.72977020233,-33.9518469386726,NA,NA,2.61803398874989,52.6180339887499,32.6180339887499,38.0934515497389,19.3769039168853,1.50208773569434,2777.02659126858,41.5565911319121,39.9321713311335,-22.6267530908257,9.00830771318104,41.5565911319121,39.9321713311335,-22.6267530908257,9.00830771318104,5.60347755174136,0.398218719812695,-0.763135394031943,0.532214090117364,-16.4315911319121,0,0,0.447213595499958,1,1 +15.3365462353951,-3.5713912292413,-0.763135394031943,0.00323175672431719,38.0934515497389,19.3769039168853,1.50208773569434,2777.02659126858,-0.666451549739179,24.9230960831148,NA,2.61803398874989,53.6180339887499,33.6180339887499,37.681561840145,43.8351732574094,1.50208773569434,107.775750230013,47.1600686836534,40.3303900509462,-23.3898884848576,3.45108030313134,47.1600686836534,40.3303900509462,-23.3898884848576,3.45108030313134,15.3365462353951,-3.5713912292413,-0.763135394031943,0.333736816631528,-9.73306868365374,3.969609949054,0,0.447213595499958,0.610859040904168,1 +17.5701611544437,-6.31239240753641,-0.763135394031943,0.00368024117524921,37.681561840145,43.8351732574094,1.50208773569434,107.775750230013,22.5814381598549,-4.33517325740935,NA,2.61803398874989,2.9813495586166,34.6180339887499,51.6376581377892,40.9540976065285,1.50208773569434,93.2384587821971,62.4966149190485,36.7589988217049,-24.1530238788896,2.60999645771893,62.4966149190485,36.7589988217049,-24.1530238788896,2.60999645771893,17.5701611544437,-6.31239240753641,-0.763135394031943,0.304779372685822,-2.23361491904861,2.7410011782951,0,0.447213595499958,0.471089144216627,1 +-6.73206277206464,4.83421400663235,-0.763135394031943,0.00374567417480778,51.6376581377892,40.9540976065285,1.50208773569434,93.2384587821971,52.7313418622114,-21.6540976065288,NA,2.61803398874989,2.66458143188549,35.6180339887499,84.227419681026,27.4266413356357,1.50208773569434,93.6337703373397,80.0667760734922,30.4466064141685,-24.9161592729215,2.4402251811809,80.0667760734922,30.4466064141685,-24.9161592729215,2.4402251811809,-6.73206277206464,4.83421400663235,-0.763135394031943,0.300554538551708,24.3022239265084,-11.1466064141688,0,0.447213595499958,0.45069699111243,1 +-29.187349470637,6.61503442743319,-0.763135394031943,0.00375522072078576,84.227419681026,27.4266413356357,1.50208773569434,93.6337703373397,11.5625803189739,6.07335866436427,NA,2.61803398874989,2.62470653437963,36.6180339887499,91.3734873158025,31.1860808685418,1.50208773569434,95.9247907377673,73.3347133014276,35.2808204208008,-25.6792946669534,2.36017752849888,73.3347133014276,35.2808204208008,-25.6792946669534,2.36017752849888,-29.187349470637,6.61503442743319,-0.763135394031943,0.29993814355862,22.4552866985724,-1.78082042080084,0,0.447213595499958,0.447721816070592,1 +16.0880143601542,-4.88911072433286,-0.763135394031943,0.00375661354307306,91.3734873158025,31.1860808685418,1.50208773569434,95.9247907377673,-92.5014873158031,22.2139191314583,NA,2.61803398874989,2.6190050251708,37.6180339887499,34.2044241447189,44.9181838454055,1.50208773569434,98.4939115799613,44.1473638307906,41.895854848234,-26.4424300609854,2.28649729260917,44.1473638307906,41.895854848234,-26.4424300609854,2.28649729260917,16.0880143601542,-4.88911072433286,-0.763135394031943,0.299848212741115,-45.2753638307912,11.5041451517661,0,0.447213595499958,0.447287743881925,1 +57.7113925510989,11.1176333995683,-0.763135394031943,0.00375681675310613,34.2044241447189,44.9181838454055,1.50208773569434,98.4939115799613,-15.5924241447188,-23.9181838454055,NA,2.61803398874989,2.61817560852722,38.6180339887499,24.5677760562782,30.1354391078679,1.50208773569434,101.104616565445,60.2353781909448,37.0067441239012,-27.2055654550173,2.20727776433504,60.2353781909448,37.0067441239012,-27.2055654550173,2.20727776433504,57.7113925510989,11.1176333995683,-0.763135394031943,0.299835092011667,-41.6233781909447,-16.0067441239012,0,0.447213595499958,0.447224413603093,1 +-39.5058367068581,-18.1579890769623,-0.763135394031943,0.0037568464010504,24.5677760562782,30.1354391078679,1.50208773569434,101.104616565445,190.596223943723,47.2645608921322,NA,2.61803398874989,2.61805464967932,39.6180339887499,142.362720580885,59.3466866751917,1.50208773569434,103.721552780829,117.946770742044,48.1243775234695,-27.9687008490493,2.12082427278623,117.946770742044,48.1243775234695,-27.9687008490493,2.12082427278623,-39.5058367068581,-18.1579890769623,-0.763135394031943,0.299833177723039,97.217229257957,29.2756224765306,0,0.447213595499958,0.447215173839934,1 +-16.7959026716724,-3.69160063045511,-0.763135394031943,0.00375685072662718,142.362720580885,59.3466866751917,1.50208773569434,103.721552780829,-86.6317205808854,-43.8466866751917,NA,2.61803398874989,2.61803700311508,40.6180339887499,88.8213727580142,32.247924732546,1.50208773569434,106.339422442306,78.4409340351855,29.9663884465072,-28.7318362430812,2.02689654487904,78.4409340351855,29.9663884465072,-28.7318362430812,2.02689654487904,-16.7959026716724,-3.69160063045511,-0.763135394031943,0.299832898432092,-22.7099340351857,-14.4663884465072,0,0.447213595499958,0.447213825776657,1 +-31.0728713081588,-7.31681281440313,-0.763135394031943,0.00375685135772032,88.8213727580142,32.247924732546,1.50208773569434,106.339422442306,-12.8993727580146,-2.34792473254589,NA,2.61803398874989,2.61803442853934,41.6180339887499,80.8491219600067,30.7968272941529,1.50208773569434,108.957431848288,61.6450313635131,26.2747878160521,-29.4949716371132,1.92546065628251,61.6450313635131,26.2747878160521,-29.4949716371132,1.92546065628251,-31.0728713081588,-7.31681281440313,-0.763135394031943,0.299832857684092,14.2769686364864,3.62521218394802,0,0.447213595499958,0.447213629096876,1 +-10.2277112528044,-7.25883781275381,-0.763135394031943,0.00375685144979557,80.8491219600067,30.7968272941529,1.50208773569434,108.957431848288,-71.1221219600068,-11.8968272941533,NA,2.61803398874989,2.6180340529143,42.6180339887499,36.8932332367072,23.4441835567071,1.50208773569434,111.575462161788,30.5721600553543,18.9579750016489,-30.2581070311451,1.81651183904215,30.5721600553543,18.9579750016489,-30.2581070311451,1.81651183904215,-10.2277112528044,-7.25883781275381,-0.763135394031943,0.299832851739039,-20.8451600553544,-0.0579750016493122,0,0.447213595499958,0.447213600401682,1 +4.64773754974549,6.64029937614114,-0.763135394031943,0.00375685146322917,36.8932332367072,23.4441835567071,1.50208773569434,111.575462161788,-31.4242332367071,-25.6441835567069,NA,2.61803398874989,2.61803399811135,43.6180339887499,17.4719890260181,7.59520646989574,1.50208773569434,114.193495601389,20.3444488025499,11.6991371888951,-31.021242425177,1.70004942641947,20.3444488025499,11.6991371888951,-31.021242425177,1.70004942641947,4.64773754974549,6.64029937614114,-0.763135394031943,0.299832850871668,-14.8754488025499,-13.899137188895,0,0.447213595499958,0.44721359621511,1 +-12.2770760979595,-11.9202640588227,-0.763135394031943,0.0037568514651891,17.4719890260181,7.59520646989574,1.50208773569434,114.193495601389,24.4450109739823,29.3047935301043,NA,2.61803398874989,2.61803399011571,44.6180339887499,32.5798366633033,25.7065649106378,1.50208773569434,116.811529508131,24.9921863522954,18.3394365650363,-31.784377819209,1.5760733257063,24.9921863522954,18.3394365650363,-31.784377819209,1.5760733257063,-12.2770760979595,-11.9202640588227,-0.763135394031943,0.29983285074512,16.924813647705,18.5605634349638,0,0.447213595499958,0.447213595604297,1 +-15.7219658436233,-15.601091552609,-0.763135394031943,0.00375685146547505,32.5798366633033,25.7065649106378,1.50208773569434,116.811529508131,-16.4198366633034,-15.6065649106379,NA,2.61803398874989,2.61803398894916,45.6180339887499,22.4318195156601,16.0611773477784,1.50208773569434,119.429563484641,12.715110254336,6.41917250621361,-32.5475132132409,1.44458352409442,12.715110254336,6.41917250621361,-32.5475132132409,1.44458352409442,-15.7219658436233,-15.601091552609,-0.763135394031943,0.299832850726657,3.44488974566389,3.6808274937863,0,0.447213595499958,0.447213595515181,1 +-37.7008214329105,-18.1830105990044,-0.763135394031943,0.00375685146551678,22.4318195156601,16.0611773477784,1.50208773569434,119.429563484641,-3.45981951566036,-22.6611773477783,NA,2.61803398874989,2.61803398877897,46.6180339887499,20.2935334600418,2.05579952166608,1.50208773569434,122.047597471565,-3.00685558928739,-9.18191904639536,-33.3106486072729,1.30558001982735,-3.00685558928739,-9.18191904639536,-33.3106486072729,1.30558001982735,-37.7008214329105,-18.1830105990044,-0.763135394031943,0.299832850723963,21.9788555892871,2.58191904639546,0,0.447213595499958,0.447213595502179,1 +42.6855015448917,40.6520597555961,-0.763135394031943,0.00375685146552286,20.2935334600418,2.05579952166608,1.50208773569434,122.047597471565,-141.387533460042,-88.2557995216664,NA,2.61803398874989,2.61803398875414,47.6180339887499,-67.0887678037771,-52.4892842870751,1.50208773569434,124.665631460043,-40.7076770221979,-27.3649296453998,-34.0737840013048,1.15906281266627,-40.7076770221979,-27.3649296453998,-34.0737840013048,1.15906281266627,42.6855015448917,40.6520597555961,-0.763135394031943,0.29983285072357,-80.3863229778022,-58.8350703546005,0,0.447213595499958,0.447213595500282,1 +55.4193260675848,14.1391898657921,-0.763135394031943,0.00375685146552375,-67.0887678037771,-52.4892842870751,1.50208773569434,124.665631460043,56.3327678037777,92.2892842870752,NA,2.61803398874989,2.61803398875051,48.6180339887499,-32.2732026206867,4.54863019974739,1.50208773569434,127.283665448752,1.97782452269378,13.2871301101963,-34.8369193953367,1.00503190257906,1.97782452269378,13.2871301101963,-34.8369193953367,1.00503190257906,55.4193260675848,14.1391898657921,-0.763135394031943,0.299832850723513,-12.7338245226932,26.5128698898039,0,0.447213595499958,0.447213595500005,1 +5.97347665786362,-8.43449015821947,-0.763135394031943,0.00375685146552388,-32.2732026206867,4.54863019974739,1.50208773569434,127.283665448752,139.116202620687,45.4513698002526,NA,2.61803398874989,2.61803398874999,49.6180339887499,53.7053389847148,32.6391215715446,1.50208773569434,129.901699437496,57.3971505902786,27.4263199759884,-35.6000547893687,0.843487289561435,57.3971505902786,27.4263199759884,-35.6000547893687,0.843487289561435,5.97347665786362,-8.43449015821947,-0.763135394031943,0.299832850723505,49.4458494097212,22.5736800240116,0,0.447213595499958,0.447213595499965,1 +-52.9128960939938,-10.2426603404507,-0.763135394031943,0.0037568514655239,53.7053389847148,32.6391215715446,1.50208773569434,129.901699437496,68.5516610152848,-11.8391215715444,NA,2.61803398874989,2.61803398874991,50.6180339887499,96.0725954774219,25.3221420433881,1.50208773569434,132.519733426245,63.3706272481422,18.9918298177689,-36.3631901834006,0.674428973612848,63.3706272481422,18.9918298177689,-36.3631901834006,0.674428973612848,-52.9128960939938,-10.2426603404507,-0.763135394031943,0.299832850723503,58.8863727518574,1.80817018223125,0,0.447213595499958,0.447213595499959,1 +5.46683506015432,-1.49349086313249,-0.763135394031943,0.0037568514655239,96.0725954774219,25.3221420433881,1.50208773569434,132.519733426245,-143.994595477422,-25.3221420433881,NA,2.61803398874989,2.6180339887499,51.6180339887499,7.07904127608354,9.67219759262152,1.50208773569434,135.137767414995,10.4577311541485,8.74916947731822,-37.1263255774326,0.497856954733224,10.4577311541485,8.74916947731822,-37.1263255774326,0.497856954733224,5.46683506015432,-1.49349086313249,-0.763135394031943,0.299832850723503,-58.3797311541481,-8.74916947731822,0,0.447213595499958,0.447213595499958,1 +-50.997598725543,-9.73781224894675,-0.763135394031943,0.0037568514655239,7.07904127608354,9.67219759262152,1.50208773569434,135.137767414995,65.3099587239166,5.82780240737848,NA,2.61803398874989,2.61803398874989,52.6180339887499,47.4428155713167,13.2739775600999,1.50208773569434,137.755801403744,15.9245662143028,7.25567861418573,-37.8894609714645,0.313771232922553,15.9245662143028,7.25567861418573,-37.8894609714645,0.313771232922553,-50.997598725543,-9.73781224894675,-0.763135394031943,0.299832850723503,56.4644337856973,8.24432138581427,0,0.447213595499958,0.447213595499958,1 +-10.9486312367829,16.7800541162922,-8.22673175952849,0.0769413194919331,47.4428155713167,13.2739775600999,1.50208773569434,137.755801403744,-122.564815571317,-42.2739775600999,-32.6910877356943,2.61803398874989,2.61803398874989,53.6180339887499,-28.3064062766196,-12.8527774116922,-30.579296784426,5.18724048805286,-35.0730325112402,-2.48213363476102,-38.6525963654965,0.122171808180833,-35.0730325112402,-2.48213363476102,-38.6525963654965,0.122171808180833,-10.9486312367829,16.7800541162922,-8.22673175952849,0.188016933373469,-40.0489674887601,-26.517866365239,7.46359636549654,0.447213595499958,0.447213595499958,0.610859040904168 +40.7587050151943,6.47797459782351,25.4329401154466,0.0876187894780489,-28.3064062766196,-12.8527774116922,-30.579296784426,5.18724048805286,-69.4225937233807,37.4527774116921,-49.959703215574,2.61803398874989,2.61803398874989,2.9813495586166,-71.211928784844,10.2943120018178,-63.7815878840064,4.35793076571819,-46.0216637480231,14.2979204815312,-46.8793281250249,0.0942178288433253,-46.0216637480231,14.2979204815312,-46.8793281250249,0.0942178288433253,40.7587050151943,6.47797459782351,25.4329401154466,0.171703210890112,-51.7073362519772,10.3020795184687,-33.659671874975,0.447213595499958,0.447213595499958,0.471089144216627 +3.75474628236551,13.4538696771785,4.60055210586819,0.0891766113544512,-71.211928784844,10.2943120018178,-63.7815878840064,4.35793076571819,102.952928784844,3.50568799818189,63.1675878840064,2.61803398874989,2.61803398874989,2.66458143188549,-7.583519554463,12.4609463386468,-24.3203829718682,4.25353692874991,-5.26295873282881,20.7758950793547,-21.4463880095784,0.090139398222486,-5.26295873282881,20.7758950793547,-21.4463880095784,0.090139398222486,3.75474628236551,13.4538696771785,4.60055210586819,0.169323070856642,37.0039587328288,-6.97589507935497,20.8323880095784,0.447213595499958,0.447213595499958,0.45069699111243 +24.950533831902,18.1836344337117,-4.17028379784207,0.0894038945031515,-7.583519554463,12.4609463386468,-24.3203829718682,4.25353692874991,-15.1204804455367,17.0390536613532,16.2453829718683,2.61803398874989,2.61803398874989,2.62470653437963,-16.9284903960328,22.9916606374964,-14.2644092764576,4.23861018385404,-1.50821245046328,34.2297647565332,-16.8458359037102,0.0895443632141184,-1.50821245046328,34.2297647565332,-16.8458359037102,0.0895443632141184,24.950533831902,18.1836344337117,-4.17028379784207,0.168975813105708,-21.1957875495364,-4.72976475653318,8.77083590371026,0.447213595499958,0.447213595499958,0.447721816070592 +43.7618552133403,-0.102966376043776,35.7085965006058,0.0894370546676515,-16.9284903960328,22.9916606374964,-14.2644092764576,4.23861018385404,21.5594903960332,47.7083393625038,-46.6305907235425,2.61803398874989,2.61803398874989,2.6190050251708,-3.60399255115743,52.4770359103383,-43.0903030729671,4.2364387428903,23.4423213814387,52.4133991902448,-21.0161197015523,0.089457548776385,23.4423213814387,52.4133991902448,-21.0161197015523,0.089457548776385,43.7618552133403,-0.102966376043776,35.7085965006058,0.168925148882642,-18.8113213814384,18.2866008097554,-39.8788802984478,0.447213595499958,0.447213595499958,0.447287743881925 +37.9470318081191,13.5074664381575,28.2210732996592,0.0894418926704508,-3.60399255115743,52.4770359103383,-43.0903030729671,4.2364387428903,76.6229925511577,-13.7770359103385,65.2703030729672,2.61803398874989,2.61803398874989,2.61817560852722,43.751621165188,43.9623594535213,-2.74968877274165,4.23612206851525,67.204176594779,52.3104328142011,14.6924767990535,0.0894448827206186,67.204176594779,52.3104328142011,14.6924767990535,0.0894448827206186,37.9470318081191,13.5074664381575,28.2210732996592,0.168917757072116,5.81482340522125,-13.6104328142012,7.48752320094655,0.447213595499958,0.447213595499958,0.447224413603093 +9.49924021101785,0.225365690516086,8.872623398372,0.0894425985255465,43.751621165188,43.9623594535213,-2.74968877274165,4.23612206851525,89.8473788348112,35.1376405464786,65.0116887727416,2.61803398874989,2.61803398874989,2.61805464967932,99.2803550851893,65.6786155957215,37.4299405238141,4.23607586921031,105.151208402898,65.8178992523585,42.9135500987127,0.0894430347679868,105.151208402898,65.8178992523585,42.9135500987127,0.0894430347679868,9.49924021101785,0.225365690516086,8.872623398372,0.168916678621494,28.4477915971012,13.2821007476414,19.3484499012872,0.447213595499958,0.447213595499958,0.447215173839934 +4.30068882493358,-5.63136936660985,13.0937968954567,0.0894427015084171,99.2803550851893,65.6786155957215,37.4299405238141,4.23607586921031,20.5686449148109,6.22138440427905,10.1350594761859,2.61803398874989,2.61803398874989,2.61803700311508,111.99247674507,69.5236426146445,43.6937562153909,4.23606912888351,114.650448613916,66.0432649428746,51.7861734970847,0.0894427651553315,114.650448613916,66.0432649428746,51.7861734970847,0.0894427651553315,4.30068882493358,-5.63136936660985,13.0937968954567,0.168916521277669,5.19855138608427,5.85673505712593,-4.22117349708467,0.447213595499958,0.447213595499958,0.447213825776657 +-4.8541737362167,-10.8194737903445,-1.51623271200194,0.0894427165334155,111.99247674507,69.5236426146445,43.6937562153909,4.23606912888351,16.1135232549297,-3.92364261464502,35.7962437846091,2.61803398874989,2.61803398874989,2.61803442853934,121.951181795128,67.0986981190864,65.8170538407012,4.23606814548438,118.951137438849,60.4118955762648,64.8799703925414,0.0894427258193751,118.951137438849,60.4118955762648,64.8799703925414,0.0894427258193751,-4.8541737362167,-10.8194737903445,-1.51623271200194,0.168916498321514,9.15486256115029,5.18810442373468,14.6100296074586,0.447213595499958,0.447213595499958,0.447213629096876 +-13.4472100335844,2.77294799557572,-25.4884950314625,0.0894427187255332,121.951181795128,67.0986981190864,65.8170538407012,4.23606814548438,0.738818204872047,-31.0986981190864,21.5189461592988,2.61803398874989,2.61803398874989,2.6180340529143,122.407796557247,47.8786456756186,79.1164941706756,4.23606800200841,114.096963702633,49.5924217859203,63.3637376805395,0.0894427200803364,114.096963702633,49.5924217859203,63.3637376805395,0.0894427200803364,-13.4472100335844,2.77294799557572,-25.4884950314625,0.168916494972256,8.59303629736774,-13.5924217859202,23.9722623194606,0.447213595499958,0.447213595499958,0.447213600401682 +-24.127456364536,-5.56168222292813,-18.6912523823855,0.0894427190453587,122.407796557247,47.8786456756186,79.1164941706756,4.23606800200841,-11.0777965572466,12.8213543243813,-48.0384941706757,2.61803398874989,2.61803398874989,2.61803399811135,115.561341764412,55.8026784298916,49.4270719392225,4.23606798107555,100.649753669048,52.365369781496,37.8752426490769,0.089442719243022,100.649753669048,52.365369781496,37.8752426490769,0.089442719243022,-24.127456364536,-5.56168222292813,-18.6912523823855,0.168916494483606,10.6802463309516,8.33463021850385,-6.79724264907696,0.447213595499958,0.447213595499958,0.44721359621511 +-11.3541590600235,8.14200533563934,-21.6552621156942,0.0894427190920199,115.561341764412,55.8026784298916,49.4270719392225,4.23606798107555,-51.8123417644118,-22.7026784298913,-27.2790719392225,2.61803398874989,2.61803398874989,2.61803399011571,83.5395535172794,41.7716515245597,32.5676782937936,4.23606797802149,76.5222973045123,46.8036875585678,19.1839902666914,0.0894427191208598,76.5222973045123,46.8036875585678,19.1839902666914,0.0894427191208598,-11.3541590600235,8.14200533563934,-21.6552621156942,0.168916494412314,-12.7732973045125,-13.7036875585675,2.96400973330863,0.447213595499959,0.447213595499958,0.447213595604298 +-0.107020815535067,5.98769822984614,-8.13053396469699,0.0894427190988224,83.5395535172794,41.7716515245597,32.5676782937936,4.23606797802149,-29.6185535172791,15.3283484754406,-48.5636782937936,2.61803398874989,2.61803398874989,2.61803398894916,65.2342807459932,51.2450918737847,2.55367448810176,4.2360679775759,65.1681382444887,54.9456928942072,-2.47127184900279,0.0894427191030386,65.1681382444887,54.9456928942072,-2.47127184900279,0.0894427191030386,-0.107020815535067,5.98769822984614,-8.13053396469699,0.168916494401921,-11.2471382444885,2.15430710579319,-13.5247281509972,0.447213595499964,0.447213595499958,0.447213595515187 +1.94309661341911,-7.57891064610054,12.8856602216033,0.089442719099779,65.2342807459932,51.2450918737847,2.55367448810176,4.2360679775759,-2.22328074599365,23.2549081262153,-34.1716744881018,2.61803398874989,2.61803398874989,2.61803398877897,63.8602176784359,65.6174155010419,-18.5655817981878,4.23606797751089,65.0611174289537,60.9333911240533,-10.6018058136998,0.0894427191004522,65.0611174289537,60.9333911240533,-10.6018058136998,0.0894427191004522,1.94309661341911,-7.57891064610054,12.8856602216033,0.168916494400459,-2.05011742895418,13.5666088759467,-21.0161941863003,0.447213595499999,0.447213595499958,0.44721359550222 +11.8783106557915,5.17556983185277,-0.838485370493283,0.0894427190996725,63.8602176784359,65.6174155010419,-18.5655817981878,4.23606797751089,-6.79121767843545,-25.0174155010424,34.5735817981878,2.61803398874989,2.61803398874989,2.61803398875414,59.6630143281636,50.1558024107192,2.8020668659384,4.23606797750141,67.0042140423728,53.3544804779528,2.28385440790348,0.0894427191001688,67.0042140423728,53.3544804779528,2.28385440790348,0.0894427191001688,11.8783106557915,5.17556983185277,-0.838485370493283,0.168916494400622,-9.93521404237238,-12.7544804779533,13.7241455920966,0.447213595500239,0.447213595499958,0.447213595500563 +-15.4181646460443,-21.8943798583421,11.030883666917,0.0894427190979703,59.6630143281636,50.1558024107192,2.8020668659384,4.23606797750141,46.5159856718365,35.4441975892812,-13.2260668659385,2.61803398874989,2.61803398874989,2.61803398875051,88.4114744935617,72.061521224862,-5.37209199469158,4.23606797750003,78.8825246981643,58.5300503098055,1.4453690374102,0.0894427191007717,78.8825246981643,58.5300503098055,1.4453690374102,0.0894427191007717,-15.4181646460443,-21.8943798583421,11.030883666917,0.168916494403223,27.2964753018358,27.0699496901948,-11.8693690374103,0.447213595501885,0.447213595499958,0.447213595501932 +-4.34880459392384,4.64129059312198,-12.9678636287558,0.0894427190861617,88.4114744935617,72.061521224862,-5.37209199469158,4.23606797750003,-36.0164744935621,-61.9615212248626,41.8470919946916,2.61803398874989,2.61803398874989,2.61803398874999,66.1520691015966,33.767195113249,20.490833188372,4.23606797749982,63.46436005212,36.6356704514635,12.4762527043272,0.0894427191052753,63.46436005212,36.6356704514635,12.4762527043272,0.0894427191052753,-4.34880459392384,4.64129059312198,-12.9678636287558,0.168916494421265,-11.0693600521205,-26.535670451464,23.9987472956728,0.447213595513164,0.447213595499958,0.447213595513171 +-12.0722491357276,7.51825163770692,-11.4674745531844,0.0894427190052037,66.1520691015966,33.767195113249,20.490833188372,4.23606797749982,0.686930898403332,4.63280488675159,-22.482833188372,2.61803398874989,2.61803398874989,2.61803398874991,66.5766157447324,36.630425996508,6.59567811456392,4.23606797749979,59.1155554581961,41.2769610445855,-0.491610924428599,0.0894427191361975,59.1155554581961,41.2769610445855,-0.491610924428599,0.0894427191361975,-12.0722491357276,7.51825163770692,-11.4674745531844,0.168916494544958,7.72344454180379,-2.87696104458493,-1.50038907557136,0.447213595590472,0.447213595499958,0.447213595590473 +6.75905718674044,6.91346431999968,-1.95656003079747,0.0894427184503062,66.5766157447324,36.630425996508,6.59567811456392,4.23606797749979,-38.3646157447319,12.7695740034916,-28.065678114564,2.61803398874989,2.61803398874989,2.6180339887499,42.8659792491587,44.5224567525229,-10.7498648775507,4.23606797749979,47.0433063224685,48.7952126822924,-11.959085477613,0.0894427193481493,47.0433063224685,48.7952126822924,-11.959085477613,0.0894427193481493,6.75905718674044,6.91346431999968,-1.95656003079747,0.168916495392766,-18.8313063224681,0.60478731770724,-9.51091452238698,0.447213596120352,0.447213595499958,0.447213596120352 +-7.41957930405038,-19.3778586777083,13.7847944607919,0.089442714646982,42.8659792491587,44.5224567525229,-10.7498648775507,4.23606797749979,25.1150207508411,37.4775432474771,-18.9071351224493,2.61803398874989,2.61803398874989,2.61803398874989,58.3879157013374,67.6848522943079,-22.4351170131112,4.23606797749979,53.802363509209,55.7086770022921,-13.9156455084105,0.08944272080089,53.802363509209,55.7086770022921,-13.9156455084105,0.08944272080089,-7.41957930405038,-19.3778586777083,13.7847944607919,0.168916501203728,14.1786364907908,26.2913229977079,-15.7413544915894,0.447213599752204,0.447213595499958,0.447213599752204 +4.55420490110763,-11.7470403531243,12.2329434131734,0.089442688578612,58.3879157013374,67.6848522943079,-22.4351170131112,4.23606797749979,-23.9789157013368,-38.984852294308,23.8561170131112,2.61803398874989,2.61803398874989,2.61803398874989,43.5681307845427,43.5908885300312,-7.6912258594139,4.23606797749979,46.3827842051586,36.3308183245838,-0.13085104761857,0.0894427307581225,46.3827842051586,36.3308183245838,-0.13085104761857,0.0894427307581225,4.55420490110763,-11.7470403531243,12.2329434131734,0.16891654103266,-11.973784205158,-7.63081832458399,1.55185104761851,0.447213624645284,0.447213595499958,0.447213624645284 +15.831194007374,20.1367376183346,-3.70496422127166,0.0894425099034481,43.5681307845427,43.5908885300312,-7.6912258594139,4.23606797749979,-3.90813078454285,-50.8908885300304,35.7312258594139,2.61803398874989,2.61803398874989,2.61803398874989,41.1527731272154,12.1385897007902,14.391886181403,4.23606797749979,50.9369891062662,24.5837779714596,12.1020923655549,0.0894427990060254,50.9369891062662,24.5837779714596,12.1020923655549,0.0894427990060254,15.831194007374,20.1367376183346,-3.70496422127166,0.16891681402435,-11.2769891062664,-31.8837779714588,15.9379076344451,0.447213795264998,0.447213595499958,0.447213795264998 +6.10837712101421,0.657253208128863,3.36816392301147,0.0894412852504598,41.1527731272154,12.1385897007902,14.391886181403,4.23606797749979,35.3382268727846,52.0614102992096,-13.067886181403,2.61803398874989,2.61803398874989,2.61803398874989,62.9929984367512,44.3143107679556,6.31548836018093,4.23606797749979,66.7681831136402,44.7205155897941,8.39712814428321,0.0894432667848113,66.7681831136402,44.7205155897941,8.39712814428321,0.0894432667848113,6.10837712101421,0.657253208128863,3.36816392301147,0.168918685143163,9.72281688635979,19.4794844102057,-7.07312814428314,0.447214964709911,0.447213595499958,0.447214964709911 +15.9369373556688,-8.06497799394761,14.1784559903062,0.0894328915796739,62.9929984367512,44.3143107679556,6.31548836018093,4.23606797749979,0.055001563248581,9.78568923204388,-5.360488360181,2.61803398874989,2.61803398874989,2.61803398874989,63.0269912722732,50.3621993167026,3.00252435729088,4.23606797749979,72.8765602346544,45.377768797923,11.7652920672947,0.0894464730212324,72.8765602346544,45.377768797923,11.7652920672947,0.0894464730212324,15.9369373556688,-8.06497799394761,14.1784559903062,0.168931510261243,-9.82856023465463,8.72223120207647,-10.8102920672948,0.447222980204592,0.447213595499958,0.447222980204592 +-20.7135650540078,17.4478128100276,-33.8027959520929,0.0893753711058825,63.0269912722732,50.3621993167026,3.00252435729088,4.23606797749979,62.4370087277267,-38.5621993167024,70.9224756427092,2.61803398874989,2.61803398874989,2.61803398874989,101.615184821882,26.5294494580325,46.8350248707717,4.23606797749979,88.8134975903233,37.3127908039754,25.9437480576009,0.0894684504393495,88.8134975903233,37.3127908039754,25.9437480576009,0.0894684504393495,-20.7135650540078,17.4478128100276,-33.8027959520929,0.169019428032649,36.6505024096767,-25.5127908039752,47.9812519423991,0.447277919222441,0.447213595499958,0.447277919222441 +8.80836748230714,-9.99158357596927,15.920156153415,0.0889816179650814,101.615184821882,26.5294494580325,46.8350248707717,4.23606797749979,-63.0371848218817,55.6705505419673,-104.417024870772,2.61803398874989,2.61803398874989,2.61803398874989,62.6560620468503,60.9357418653872,-17.6982455035083,4.23606797749979,68.0999325363154,54.760603614003,-7.85904789449202,0.0896191585688449,68.0999325363154,54.760603614003,-7.85904789449202,0.0896191585688449,8.80836748230714,-9.99158357596927,15.920156153415,0.169622641028282,-29.521932536315,27.4393963859969,-49.722952105508,0.447654476852706,0.447213595499958,0.447654476852706 +-10.5643324990703,-1.62256353793613,0.52126441233816,0.0863061916173292,62.6560620468503,60.9357418653872,-17.6982455035083,4.23606797749979,33.6249379531497,-24.5357418653866,41.1582455035082,2.61803398874989,2.61803398874989,2.61803398874989,83.4374165715031,45.7718194533845,7.73894913497231,4.23606797749979,76.9083000186225,44.7690200380337,8.06110825892303,0.0906555411527689,76.9083000186225,44.7690200380337,8.06110825892303,0.0906555411527689,-10.5643324990703,-1.62256353793613,0.52126441233816,0.173786045714678,19.3726999813774,-8.36902003803314,15.3988917410769,0.450235441246711,0.447213595499958,0.450235441246711 +16.578635020482,1.72389296216124,2.75763708359935,0.069067746529926,83.4374165715031,45.7718194533845,7.73894913497231,4.23606797749979,-44.2364165715031,-5.97181945338431,-1.39294913497231,2.61803398874989,2.61803398874989,2.61803398874989,56.0978075898151,42.0810320565152,6.87805922495966,4.23606797749979,66.3439675195523,43.1464565000976,8.58237267126119,0.0979193841636164,66.3439675195523,43.1464565000976,8.58237267126119,0.0979193841636164,16.578635020482,1.72389296216124,2.75763708359935,0.203681131763313,-27.1429675195523,-3.34645650009737,-2.23637267126119,0.467925634374483,0.447213595499958,0.467925634374483 +-2.40776243948335,-13.2057575755792,0.930646838459861,0.00255268378663754,56.0978075898151,42.0810320565152,6.87805922495966,4.23606797749979,45.8111924101845,17.7189679434841,6.28894077504037,2.61803398874989,2.61803398874989,2.61803398874989,84.4106815644704,53.0319564911582,10.7648383771697,4.23606797749979,82.9226025400343,44.8703494622588,11.3400097548605,0.155240533045174,82.9226025400343,44.8703494622588,11.3400097548605,0.155240533045174,-2.40776243948335,-13.2057575755792,0.930646838459861,0.472414411185376,18.9863974599654,14.9296505377405,1.82699024513949,0.589176021874882,0.447213595499958,0.589176021874882 +-2.40776243948335,-0.441165688900204,0.930646838459861,0.00255268378663754,84.4106815644704,53.0319564911582,10.7648383771697,4.23606797749979,NA,-34.1319564911576,NA,2.61803398874989,2.61803398874989,2.61803398874989,84.4106815644704,31.9372472770902,10.7648383771697,11.0901699437495,80.514840100551,31.6645918866796,12.2706565933204,0.902064487461155,80.514840100551,31.6645918866796,12.2706565933204,0.902064487461155,-2.40776243948335,-0.441165688900204,0.930646838459861,0.472414411185376,0,-12.764591886679,0,1,0.447213595499958,1 +-2.40776243948335,7.68226050887971,0.930646838459861,0.00255268378663754,84.4106815644704,31.9372472770902,10.7648383771697,11.0901699437495,NA,-8.8372472770907,NA,3.61803398874989,2.61803398874989,3.61803398874989,84.4106815644704,26.4755280928606,10.7648383771697,21.1803398874989,78.1070776610676,31.2234261977794,13.2013034317803,1.97258534994171,78.1070776610676,31.2234261977794,13.2013034317803,1.97258534994171,-2.40776243948335,7.68226050887971,0.930646838459861,0.472414411185376,0,-8.12342619777991,0,1,0.447213595499958,1 +-2.40776243948335,-7.11205278446195,0.930646838459861,0.00255268378663754,84.4106815644704,26.4755280928606,10.7648383771697,21.1803398874989,NA,27.2244719071401,NA,4.61803398874989,2.61803398874989,4.61803398874989,84.4106815644704,43.3011770572399,10.7648383771697,34.5065778087482,75.6993152215843,38.9056867066591,14.1319502702401,3.09111327153,75.6993152215843,38.9056867066591,14.1319502702401,3.09111327153,-2.40776243948335,-7.11205278446195,0.930646838459861,0.472414411185376,0,14.7943132933417,0,1,0.447213595499958,1 +-2.40776243948335,-0.918418862264285,0.930646838459861,0.00255268378663754,84.4106815644704,43.3011770572399,10.7648383771697,34.5065778087482,NA,-17.7011770572404,NA,5.61803398874989,2.61803398874989,5.61803398874989,84.4106815644704,32.3612479949855,10.7648383771697,51.0688837074973,73.2915527821009,31.7936339221971,15.0625971087,4.04322281414845,73.2915527821009,31.7936339221971,15.0625971087,4.04322281414845,-2.40776243948335,-0.918418862264285,0.930646838459861,0.472414411185376,0,-6.19363392219767,0,1,0.447213595499958,1 +-2.40776243948335,-11.6432038023318,0.930646838459861,0.00255268378663754,84.4106815644704,32.3612479949855,10.7648383771697,51.0688837074973,NA,9.23875200501491,NA,6.61803398874989,2.61803398874989,6.61803398874989,84.4106815644704,38.0711107477159,10.7648383771697,70.8672575837461,70.8837903426176,30.8752150599328,15.9932439471598,4.67575295059883,70.8837903426176,30.8752150599328,15.9932439471598,4.67575295059883,-2.40776243948335,-11.6432038023318,0.930646838459861,0.472414411185376,0,10.7247849400675,0,1,0.447213595499958,1 +-2.40776243948335,-9.91119254473081,0.930646838459861,0.00255268378663754,84.4106815644704,38.0711107477159,10.7648383771697,70.8672575837461,NA,-20.5711107477159,NA,7.61803398874989,2.61803398874989,7.61803398874989,84.4106815644704,25.3574651192892,10.7648383771697,93.9016994374948,68.4760279031342,19.232011257601,16.9238907856197,4.89680706456217,68.4760279031342,19.232011257601,16.9238907856197,4.89680706456217,-2.40776243948335,-9.91119254473081,0.930646838459861,0.472414411185376,0,-1.73201125760101,0,1,0.447213595499958,1 +-2.40776243948335,-20.7903738318604,0.930646838459861,0.00255268378663754,84.4106815644704,25.3574651192892,10.7648383771697,93.9016994374948,NA,-5.1574651192894,NA,8.61803398874989,2.61803398874989,8.61803398874989,84.4106815644704,22.1699763797763,10.7648383771697,120.172209268743,66.0682654636509,9.32081871287021,17.8545376240796,4.67575295059883,66.0682654636509,9.32081871287021,17.8545376240796,4.67575295059883,-2.40776243948335,-20.7903738318604,0.930646838459861,0.472414411185376,0,10.8791812871296,0,1,0.447213595499958,1 +-2.40776243948335,9.24007104914937,0.930646838459861,0.00255268378663754,84.4106815644704,22.1699763797763,10.7648383771697,120.172209268743,NA,-63.6699763797763,NA,9.61803398874989,2.61803398874989,9.61803398874989,84.4106815644704,-17.1802330858284,10.7648383771697,149.678787077491,63.6605030241675,-11.4695551189902,18.7851844625394,4.04322281414845,63.6605030241675,-11.4695551189902,18.7851844625394,4.04322281414845,-2.40776243948335,9.24007104914937,0.930646838459861,0.472414411185376,0,-30.0304448810098,0,1,0.447213595499958,1 +-2.40776243948335,22.1105869793089,0.930646838459861,0.00255268378663754,84.4106815644704,-17.1802330858284,10.7648383771697,149.678787077491,NA,2.08023308582806,NA,10.6180339887499,2.61803398874989,10.6180339887499,84.4106815644704,-15.8945783342646,10.7648383771697,182.421432863739,61.2527405846842,-2.22948406984085,19.7158313009993,3.09111327153,61.2527405846842,-2.22948406984085,19.7158313009993,3.09111327153,-2.40776243948335,22.1105869793089,0.930646838459861,0.472414411185376,0,-12.8705159301595,0,1,0.447213595499958,1 +-2.40776243948335,1.69168988877674,0.930646838459861,0.00255268378663754,84.4106815644704,-15.8945783342646,10.7648383771697,182.421432863739,NA,56.1945783342648,NA,11.6180339887499,2.61803398874989,11.6180339887499,84.4106815644704,18.8355810597795,10.7648383771697,218.400146627487,58.8449781452008,19.881102909468,20.6464781394592,1.97258534994171,58.8449781452008,19.881102909468,20.6464781394592,1.97258534994171,-2.40776243948335,1.69168988877674,0.930646838459861,0.472414411185376,0,20.4188970905321,0,1,0.447213595499958,1 +-2.40776243948335,2.96448268702133,0.930646838459861,0.00255268378663754,84.4106815644704,18.8355810597795,10.7648383771697,218.400146627487,NA,1.4644189402207,NA,12.6180339887499,2.61803398874989,12.6180339887499,84.4106815644704,19.740641738605,10.7648383771697,257.614928368735,56.4372157057175,21.5727927982448,21.577124977919,0.902064487461154,56.4372157057175,21.5727927982448,21.577124977919,0.902064487461154,-2.40776243948335,2.96448268702133,0.930646838459861,0.472414411185376,0,-1.27279279824459,0,1,0.447213595499958,1 +20.1136908267501,29.9017581722871,-11.5485813451612,0.0690677465299261,84.4106815644704,19.740641738605,10.7648383771697,257.614928368735,-52.9026815644696,-22.1406417386046,24.2221616228303,13.6180339887499,2.61803398874989,13.6180339887499,35.3927517643283,6.05697261141276,33.2083172883222,6.00559868349362,54.0294532662341,24.5372754852661,22.5077718163789,0.155240533045174,54.0294532662341,24.5372754852661,22.5077718163789,0.155240533045174,20.1136908267501,29.9017581722871,-11.5485813451612,0.203681131763313,-22.5214532662335,-26.9372754852657,12.4792281836211,0.589176021874882,0.447213595499958,0.589176021874882 +5.68683491973465,-7.5592081701594,20.5056091260563,0.0863061916173293,35.3927517643283,6.05697261141276,33.2083172883222,6.00559868349362,53.1772482356714,85.8430273885869,-54.3033172883221,2.92656796121774,2.61803398874989,2.92656796121774,70.3994845906995,59.1108812347476,-2.53970997839846,4.44954212048734,74.1431440929843,54.4390336575532,10.9591904712176,0.0979193841636164,74.1431440929843,54.4390336575532,10.9591904712176,0.0979193841636164,5.68683491973465,-7.5592081701594,20.5056091260563,0.173786045714678,14.4268559070155,37.4609663424465,-32.0541904712176,0.467925634374483,0.447213595499958,0.467925634374483 +-1.16118606754633,7.12061731723455,-9.14559127666971,0.0889816179650814,70.3994845906995,59.1108812347476,-2.53970997839846,4.44954212048734,16.2785154093004,-26.9108812347478,63.6557099783984,2.65830282663796,2.61803398874989,2.65830282663796,80.5543502614604,42.4790419644617,37.1700035768213,4.26641880048683,79.8299790127189,46.8798254873938,31.464799597274,0.0906555411527689,79.8299790127189,46.8798254873938,31.464799597274,0.0906555411527689,-1.16118606754633,7.12061731723455,-9.14559127666971,0.169622641028282,6.84802098728098,-14.679825487394,29.651200402726,0.450235441246711,0.447213595499958,0.450235441246711 +-7.55939312237467,0.721060121862322,2.95061704393457,0.0893753711058825,80.5543502614604,42.4790419644617,37.1700035768213,4.26641880048683,4.51264973854055,17.9209580355388,-26.9470035768213,2.62382013441835,2.61803398874989,2.62382013441835,83.3471222997938,53.5548031413853,20.4931413192695,4.24047959984035,78.6687929451726,54.0004428046283,22.3192083206042,0.0896191585688449,78.6687929451726,54.0004428046283,22.3192083206042,0.0896191585688449,-7.55939312237467,0.721060121862322,2.95061704393457,0.169019428032649,6.39820705482834,6.39955719537223,-12.0962083206043,0.447654476852706,0.447213595499958,0.447654476852706 +-24.1049932995756,-12.057436951647,-3.40255759152666,0.0894328915796739,83.3471222997938,53.5548031413853,20.4931413192695,4.24047959984035,4.30787770020504,13.9451968586147,11.1298586807305,2.61887631439276,2.61803398874989,2.61887631439276,86.0100663784567,62.1734087798174,27.3731396230272,4.23671127448659,71.1093998227979,54.7215029264906,25.2698253645388,0.0894684504393496,71.1093998227979,54.7215029264906,25.2698253645388,0.0894684504393496,-24.1049932995756,-12.057436951647,-3.40255759152666,0.168931510261243,16.5456001772009,12.7784970735094,6.35317463546123,0.447277919222441,0.447213595499958,0.447277919222441 +7.43041322364576,8.00662902319712,-5.7562898185145,0.0894412852504598,86.0100663784567,62.1734087798174,27.3731396230272,4.23671127448659,-70.5410663784557,-39.573408779818,-3.15213962302719,2.61815684287791,2.61803398874989,2.61815684287791,42.4120254227698,37.7156971031964,25.4249537018578,4.23616182581815,47.0044065232223,42.6640659748436,21.8672677730122,0.0894464730212324,47.0044065232223,42.6640659748436,21.8672677730122,0.0894464730212324,7.43041322364576,8.00662902319712,-5.7562898185145,0.168918685143163,-31.5354065232214,-20.0640659748442,2.35373222698784,0.447222980204592,0.447213595499958,0.447222980204592 +7.91523297051493,4.77732402123731,2.07068813598328,0.0894425099034481,42.4120254227698,37.7156971031964,25.4249537018578,4.23616182581815,11.5379745772291,16.1843028968041,-17.1409537018579,2.61805191208454,2.61803398874989,2.61805191208454,49.5429160441875,47.7181463776448,14.8312168915893,4.2360816696264,54.4348197468681,50.6706949980407,16.1109779544977,0.0894432667848113,54.4348197468681,50.6706949980407,16.1109779544977,0.0894432667848113,7.91523297051493,4.77732402123731,2.07068813598328,0.16891681402435,-0.484819746869168,3.22930500195981,-7.82697795449778,0.447214964709911,0.447213595499958,0.447214964709911 +25.5922856878973,-1.3746569594841,21.0013542264642,0.089442688578612,49.5429160441875,47.7181463776448,14.8312168915893,4.2360816696264,-4.86991604418684,13.8818536223547,-15.5802168915893,2.61803660371128,2.61803398874989,2.61803660371128,46.5331405485642,56.2976037431108,5.20210735636892,4.23606997515077,62.350052717383,55.448019019278,18.1816660904809,0.0894427990060254,62.350052717383,55.448019019278,18.1816660904809,0.0894427990060254,25.5922856878973,-1.3746569594841,21.0013542264642,0.16891654103266,-17.6770527173823,6.15198098072141,-18.930666090481,0.447213795264998,0.447213595499958,0.447213795264998 +0.873624093177445,1.69870510030983,4.11537454340922,0.089442714646982,46.5331405485642,56.2976037431108,5.20210735636892,4.23606997515077,66.1278594514359,-5.29760374311081,50.8668926436313,2.61803437026724,2.61803398874989,2.61803437026724,87.4024089736776,53.0235045709397,36.6395787436097,4.23606826895307,87.9423384052803,54.0733620597939,39.1830203169452,0.0894427307581226,87.9423384052803,54.0733620597939,39.1830203169452,0.0894427307581226,0.873624093177445,1.69870510030983,4.11537454340922,0.168916501203728,24.7186615947198,-3.07336205979394,16.885979683055,0.447213624645284,0.447213595499958,0.447213624645284 +5.53958659163551,-6.92922773958694,-0.848230596236336,0.0894427184503062,87.4024089736776,53.0235045709397,36.6395787436097,4.23606826895307,-3.25240897367794,11.3764954290609,11.6224212563903,2.61803404441252,2.61803398874989,2.61803404441252,85.3923096562164,60.0545654189571,43.8226302060146,4.23606802002225,88.8159624984577,55.7720671601038,43.2983948603544,0.0894427208008899,88.8159624984577,55.7720671601038,43.2983948603544,0.0894427208008899,5.53958659163551,-6.92922773958694,-0.848230596236336,0.168916495392765,-4.66596249845806,8.62793283989677,4.96360513964555,0.447213599752204,0.447213595499958,0.447213599752204 +-19.4888643182713,-1.48638831906973,-26.4080663321183,0.0894427190052038,85.3923096562164,60.0545654189571,43.8226302060146,4.23606802002225,33.9916903437836,-16.6545654189575,24.1873697939854,2.61803399687096,2.61803398874989,2.61803399687096,106.400329664011,49.7614779221828,58.7712468658185,4.23606798370373,94.3555490900932,48.8428394205168,42.4501642641181,0.0894427193481493,94.3555490900932,48.8428394205168,42.4501642641181,0.0894427193481493,-19.4888643182713,-1.48638831906973,-26.4080663321183,0.168916494544957,25.0284509099068,-5.44283942051721,25.5598357358819,0.447213596120352,0.447213595499958,0.447213596120352 +-1.60817954645019,-1.32993721762243,11.8340315998816,0.0894427190861622,106.400329664011,49.7614779221828,58.7712468658185,4.23606798370373,-49.4143296640105,-2.56147792218295,-80.9712468658185,2.61803398993474,2.61803398874989,2.61803398993474,75.8605943918185,48.1783975048412,8.72826417728697,4.23606797840493,74.8666847718219,47.3564511014471,16.0420979319998,0.0894427191361973,74.8666847718219,47.3564511014471,16.0420979319998,0.0894427191361973,-1.60817954645019,-1.32993721762243,11.8340315998816,0.168916494421264,-17.8806847718211,-0.156451101447299,-38.2420979319998,0.447213595590472,0.447213595499958,0.447213595590472 +-27.2406743210781,-13.9034233337981,-16.8248388682372,0.0894427190979739,75.8605943918185,48.1783975048412,8.72826417728697,4.23606797840493,23.0304056081811,10.4216024951591,47.8067358227131,2.61803398892276,2.61803398874989,2.61803398892276,90.0941678329515,54.6193020640903,38.2744518081166,4.23606797763185,73.2585052253717,46.0265138838247,27.8761295318813,0.0894427191052739,73.2585052253717,46.0265138838247,27.8761295318813,0.0894427191052739,-27.2406743210781,-13.9034233337981,-16.8248388682372,0.168916494403217,25.6324947746279,12.5734861161757,28.6588704681187,0.447213595513164,0.447213595499958,0.447213595513164 +-3.30984341678402,11.2196672162285,-18.6735482045929,0.0894427190996972,90.0941678329515,54.6193020640903,38.2744518081166,4.23606797763185,-68.007167832952,-47.6193020640903,-25.3744518081167,2.61803398877512,2.61803398874989,2.61803398877512,48.0634266333184,25.1889548679345,22.5921781447109,4.23606797751906,46.0178309042936,32.1230905500266,11.0512906636442,0.0894427191007623,46.0178309042936,32.1230905500266,11.0512906636442,0.0894427191007623,-3.30984341678402,11.2196672162285,-18.6735482045929,0.168916494400584,-23.9308309042941,-25.1230905500266,1.8487093363557,0.447213595501885,0.447213595499958,0.447213595501885 +19.9971440707257,5.36242498248372,8.18419425445843,0.0894427190999487,48.0634266333184,25.1889548679345,22.5921781447109,4.23606797751906,-28.6624266333186,24.0110451320653,-57.0721781447109,2.61803398875357,2.61803398874989,2.61803398875357,30.3490727738619,40.0285968649586,-12.68036776074,4.2360679775026,42.7079874875096,43.3427577662551,-7.62225754094871,0.089442719100104,42.7079874875096,43.3427577662551,-7.62225754094871,0.089442719100104,19.9971440707257,5.36242498248372,8.18419425445843,0.1689164944002,-23.3069874875098,5.85724223374476,-26.8577424590513,0.447213595500239,0.447213595499958,0.447213595500239 +6.68627562896143,-0.0323922687778753,20.7551309679679,0.0894427190999853,30.3490727738619,40.0285968649586,-12.68036776074,4.2360679775026,45.6669272261377,14.0714031350418,0.671367760740232,2.61803398875043,2.61803398874989,2.61803398875043,58.5727859613866,48.7252022718162,-12.2654396656516,4.2360679775002,62.7051315582353,48.7051827487388,0.56193671350972,0.089442719100008,62.7051315582353,48.7051827487388,0.56193671350972,0.089442719100008,6.68627562896143,-0.0323922687778753,20.7551309679679,0.168916494400144,13.3108684417643,5.39481725126159,-12.5709367135095,0.447213595499999,0.447213595499958,0.447213595499999 +12.4866828161578,5.64039821118302,7.28119864944566,0.0894427190999906,58.5727859613866,48.7252022718162,-12.2654396656516,4.2360679775002,5.01821403861379,-5.72520227181622,47.0564396656515,2.61803398874997,2.61803398874989,2.61803398874997,61.6742128000718,45.1868326753657,16.8170394372803,4.23606797749985,69.3914071871968,48.6727904799609,21.3170676814777,0.089442719099994,69.3914071871968,48.6727904799609,21.3170676814777,0.089442719099994,12.4866828161578,5.64039821118302,7.28119864944566,0.168916494400136,-5.80040718719641,-5.6727904799609,13.4739323185223,0.447213595499964,0.447213595499958,0.447213595499964 +31.451772819512,3.65358690232767,19.1434649803691,0.0894427190999914,61.6742128000718,45.1868326753657,16.8170394372803,4.23606797749985,1.23878719992865,11.1131673246336,-0.0810394372804524,2.61803398874991,2.61803398874989,2.61803398874991,62.439825394456,52.055147804654,16.7669543106118,4.2360679774998,81.8780900033546,54.3131886911439,28.5982663309233,0.089442719099992,81.8780900033546,54.3131886911439,28.5982663309233,0.089442719099992,31.451772819512,3.65358690232767,19.1434649803691,0.168916494400135,-18.9650900033541,1.98681130885535,-11.8622663309234,0.447213595499959,0.447213595499958,0.447213595499959 +-15.0823643576211,-8.57963750420146,0.21819629166137,0.0894427190999916,62.439825394456,52.055147804654,16.7669543106118,4.2360679774998,97.4241746055435,18.1448521953468,49.9000456893883,2.6180339887499,2.61803398874989,2.6180339887499,122.651276626586,63.2692831822214,47.6068785868265,4.23606797749979,113.329862822867,57.9667755934716,47.7417313112924,0.0894427190999916,113.329862822867,57.9667755934716,47.7417313112924,0.0894427190999916,-15.0823643576211,-8.57963750420146,0.21819629166137,0.168916494400135,46.534137177133,12.2332244065291,18.9252686887077,0.447213595499958,0.447213595499958,0.447213595499958 +1.33813410762329,3.30750058506868,-20.0858761053847,0.0894427190999916,122.651276626586,63.2692831822214,47.6068785868265,4.23606797749979,-40.8242766265852,-25.7692831822214,20.6571214131734,2.61803398874989,2.61803398874989,2.61803398874989,97.4204861052288,47.3429903098875,60.3736817299009,4.23606797749979,98.2474984652455,49.3871380892701,47.9599276029538,0.0894427190999916,98.2474984652455,49.3871380892701,47.9599276029538,0.0894427190999916,1.33813410762329,3.30750058506868,-20.0858761053847,0.168916494400135,-16.4204984652444,-11.8871380892701,20.3040723970461,0.447213595499958,0.447213595499958,0.447213595499958 +-2.65523331950765,4.5021392594075,11.6541753921843,0.0894427190999916,97.4204861052288,47.3429903098875,60.3736817299009,4.23606797749979,6.15851389477095,4.15700969011247,-64.2396817299009,2.61803398874989,2.61803398874989,2.61803398874989,101.226657012386,49.9121635899397,20.6713749943465,4.23606797749979,99.5856325728688,52.6946386743388,27.8740514975691,0.0894427190999916,99.5856325728688,52.6946386743388,27.8740514975691,0.0894427190999916,-2.65523331950765,4.5021392594075,11.6541753921843,0.168916494400135,3.99336742713095,-1.19463867433881,-31.740051497569,0.447213595499958,0.447213595499958,0.447213595499958 +20.4981659338534,-2.40108280684565,18.0714022819376,0.0894427190999916,101.226657012386,49.9121635899397,20.6713749943465,4.23606797749979,-27.4496570123857,14.1878364100598,12.4396250056536,2.61803398874989,2.61803398874989,2.61803398874989,84.2618359992045,58.6807287181799,28.3594860551435,4.23606797749979,96.9303992533611,57.1967779337463,39.5282268897534,0.0894427190999916,96.9303992533611,57.1967779337463,39.5282268897534,0.0894427190999916,20.4981659338534,-2.40108280684565,18.0714022819376,0.168916494400135,-23.1533992533611,6.90322206625314,-6.41722688975326,0.447213595499958,0.447213595499958,0.447213595499958 +-5.38926887893093,26.394612320055,-17.0009685463715,0.0894427190999916,84.2618359992045,58.6807287181799,28.3594860551435,4.23606797749979,59.0541640007944,-32.6807287181799,64.3125139448565,2.61803398874989,2.61803398874989,2.61803398874989,120.759316528906,38.4829275932299,68.1068055750164,4.23606797749979,117.428565187215,54.7956951269007,57.5996291716909,0.0894427190999916,117.428565187215,54.7956951269007,57.5996291716909,0.0894427190999916,-5.38926887893093,26.394612320055,-17.0009685463715,0.168916494400135,25.8874348127844,-28.7956951269007,35.0723708283091,0.447213595499958,0.447213595499958,0.447213595499958 +-16.4709725706483,-2.21508023298949,-3.85230792105195,0.0894427190999916,120.759316528906,38.4829275932299,68.1068055750164,4.23606797749979,2.36168347109509,71.3170724067702,-40.6568055750166,2.61803398874989,2.61803398874989,2.61803398874989,122.218917184712,82.5593023187512,42.97951785566,4.23606797749979,112.039296308284,81.1903074469557,40.5986606253194,0.0894427190999916,112.039296308284,81.1903074469557,40.5986606253194,0.0894427190999916,-16.4709725706483,-2.21508023298949,-3.85230792105195,0.168916494400135,11.0817036917174,28.6096925530445,-13.1486606253196,0.447213595499958,0.447213595499958,0.447213595499958 +2.89535116698772,1.66014698097634,7.79704478321552,0.0894427190999916,122.218917184712,82.5593023187512,42.97951785566,4.23606797749979,-46.0169171847122,-7.45930231875086,-17.88251785566,2.61803398874989,2.61803398874989,2.61803398874989,93.7788983070702,77.9491999534023,31.9275140164352,4.23606797749979,95.5683237376353,78.9752272139662,36.7463527042675,0.0894427190999916,95.5683237376353,78.9752272139662,36.7463527042675,0.0894427190999916,2.89535116698772,1.66014698097634,7.79704478321552,0.168916494400135,-19.366323737636,-3.87522721396583,-11.6493527042675,0.447213595499958,0.447213595499958,0.447213595499958 +6.80802607161129,16.1955211759194,-23.8685577293016,0.0894427190999916,93.7788983070702,77.9491999534023,31.9275140164352,4.23606797749979,0.772101692929226,-11.8491999534028,44.2814859835649,2.61803398874989,2.61803398874989,2.61803398874989,94.2560833960718,70.6259916427057,59.2949774266303,4.23606797749979,98.463674904623,80.6353741949425,44.543397487483,0.0894427190999916,98.463674904623,80.6353741949425,44.543397487483,0.0894427190999916,6.80802607161129,16.1955211759194,-23.8685577293016,0.168916494400135,-3.91267490462357,-14.5353741949431,31.6656025125171,0.447213595499958,0.447213595499958,0.447213595499958 +21.2277270478449,-2.3735834532192,16.8222820288799,0.0894427190999916,94.2560833960718,70.6259916427057,59.2949774266303,4.23606797749979,-3.40408339607107,44.7740083572949,-79.3109774266304,2.61803398874989,2.61803398874989,2.61803398874989,92.1522441567607,98.2978506200857,10.2780976959971,4.23606797749979,105.271700976234,96.8308953708619,20.6748397581814,0.0894427190999916,105.271700976234,96.8308953708619,20.6748397581814,0.0894427190999916,21.2277270478449,-2.3735834532192,16.8222820288799,0.168916494400135,-14.4197009762336,18.5691046291386,-40.6908397581815,0.447213595499958,0.447213595499958,0.447213595499958 +13.2171550719238,1.58372846442354,6.96440381594128,0.0894427190999916,92.1522441567607,98.2978506200857,10.2780976959971,4.23606797749979,42.3577558432395,-7.79785062008574,37.0769023040029,2.61803398874989,2.61803398874989,2.61803398874989,118.330776955052,93.4785138976783,33.1928835174302,4.23606797749979,126.499428024079,94.4573119176427,37.4971217870614,0.0894427190999916,126.499428024079,94.4573119176427,37.4971217870614,0.0894427190999916,13.2171550719238,1.58372846442354,6.96440381594128,0.168916494400135,8.01057197592103,-3.95731191764274,9.85787821293866,0.447213595499958,0.447213595499958,0.447213595499958 +-25.8542618320736,-8.37523115351018,-3.24607058105612,0.0894427190999916,118.330776955052,93.4785138976783,33.1928835174302,4.23606797749979,60.4572230449483,12.5214861023217,21.4791164825699,2.61803398874989,2.61803398874989,2.61803398874989,155.695395662264,101.217217898573,46.4677075519764,4.23606797749979,139.716583096003,96.0410403820663,44.4615256030026,0.0894427190999916,139.716583096003,96.0410403820663,44.4615256030026,0.0894427190999916,-25.8542618320736,-8.37523115351018,-3.24607058105612,0.168916494400135,39.0714169039975,9.95895961793372,10.2104743969974,0.447213595499958,0.447213595499958,0.447213595499958 +-5.59594056814363,10.0905780750461,-17.2806155591096,0.0894427190999916,155.695395662264,101.217217898573,46.4677075519764,4.23606797749979,-62.0913956622643,-32.0172178985727,8.78229244802357,2.61803398874989,2.61803398874989,2.61803398874989,117.320802734067,81.4294890120431,51.8954627839965,4.23606797749979,113.862321263929,87.6658092285561,41.2154550219465,0.0894427190999916,113.862321263929,87.6658092285561,41.2154550219465,0.0894427190999916,-5.59594056814363,10.0905780750461,-17.2806155591096,0.168916494400135,-20.25832126393,-18.4658092285563,14.0345449780535,0.447213595499958,0.447213595499958,0.447213595499958 +19.8004401276413,-3.75303462135115,12.9732239037272,0.0894427190999916,117.320802734067,81.4294890120431,51.8954627839965,4.23606797749979,-34.4508027340657,30.1705109879563,-58.2144627839965,2.61803398874989,2.61803398874989,2.61803398874989,96.0290357046961,100.075890260552,15.9169461466709,4.23606797749979,108.266380695786,97.7563873036022,23.9348394628369,0.0894427190999916,108.266380695786,97.7563873036022,23.9348394628369,0.0894427190999916,19.8004401276413,-3.75303462135115,12.9732239037272,0.168916494400135,-25.3963806957849,13.8436126963972,-30.2538394628369,0.447213595499958,0.447213595499958,0.447213595499958 +12.0022609510686,3.75031806089991,4.60628727029129,0.0894427190999916,96.0290357046961,100.075890260552,15.9169461466709,4.23606797749979,39.8359642953037,-13.5758902605523,29.3580538533292,2.61803398874989,2.61803398874989,2.61803398874989,120.649015613821,91.6855286519923,34.0612212715781,4.23606797749979,128.066820823427,94.003352682251,36.9080633665641,0.0894427190999916,128.066820823427,94.003352682251,36.9080633665641,0.0894427190999916,12.0022609510686,3.75031806089991,4.60628727029129,0.168916494400135,7.79817917657273,-7.50335268225105,8.36693663343595,0.447213595499958,0.447213595499958,0.447213595499958 +-42.2686572744359,-1.29601119594932,-19.4973620928532,0.0894427190999916,120.649015613821,91.6855286519923,34.0612212715781,4.23606797749979,73.6909843861791,11.1144713480079,31.5567787284218,2.61803398874989,2.61803398874989,2.61803398874989,166.192548628918,98.554649712048,53.5643831012025,4.23606797749979,140.069081774496,97.753670743151,41.5143506368554,0.0894427190999916,140.069081774496,97.753670743151,41.5143506368554,0.0894427190999916,-42.2686572744359,-1.29601119594932,-19.4973620928532,0.168916494400135,54.2709182255045,5.04632925684922,24.1036493631445,0.447213595499958,0.447213595499958,0.447213595499958 +26.7417672256247,-16.938351648748,29.250626451149,0.0894427190999916,166.192548628918,98.554649712048,53.5643831012025,4.23606797749979,-137.402548628918,13.5453502879523,-80.2953831012025,2.61803398874989,2.61803398874989,2.61803398874989,81.2731034353857,106.926136579526,3.93910720496542,4.23606797749979,97.8004245000597,96.4576595472016,22.0169885440022,0.0894427190999916,97.8004245000597,96.4576595472016,22.0169885440022,0.0894427190999916,26.7417672256247,-16.938351648748,29.250626451149,0.168916494400135,-69.0104245000607,15.6423404527987,-48.7479885440022,0.447213595499958,0.447213595499958,0.447213595499958 +-64.1260410486907,-7.91904375029446,-50.1747585536998,0.0894427190999916,81.2731034353857,106.926136579526,3.93910720496542,4.23606797749979,134.136896564614,-36.4261365795257,126.753892795035,2.61803398874989,2.61803398874989,2.61803398874989,164.174264657746,84.413546094533,82.2773211586572,4.23606797749979,124.542191725684,79.5193078984536,51.2676149951512,0.0894427190999916,124.542191725684,79.5193078984536,51.2676149951512,0.0894427190999916,-64.1260410486907,-7.91904375029446,-50.1747585536998,0.168916494400135,90.8678082743154,-9.01930789845358,79.4253850048488,0.447213595499958,0.447213595499958,0.447213595499958 +-13.1228903716973,-10.4187796021348,-17.5089021122482,0.0894427190999916,164.174264657746,84.413546094533,82.2773211586572,4.23606797749979,-154.761264657746,-10.3135460945335,-113.850321158657,2.61803398874989,2.61803398874989,2.61803398874989,68.5265429573415,78.0394240635725,11.9139530525157,4.23606797749979,60.4161506769938,71.6002641481591,1.09285644145149,0.0894427190999916,60.4161506769938,71.6002641481591,1.09285644145149,0.0894427190999916,-13.1228903716973,-10.4187796021348,-17.5089021122482,0.168916494400135,-51.0031506769933,2.49973585184033,-32.6658564414516,0.447213595499958,0.447213595499958,0.447213595499958 +-32.5066300664006,-16.8372950561108,-34.813947783045,0.0894427190999916,68.5265429573415,78.0394240635725,11.9139530525157,4.23606797749979,-1.84954295734181,-10.4394240635722,-11.0249530525156,2.61803398874989,2.61803398874989,2.61803398874989,67.3834625460512,71.5875051693114,5.10015734168916,4.23606797749979,47.2932603052964,61.1814845460243,-16.4160456707967,0.0894427190999916,47.2932603052964,61.1814845460243,-16.4160456707967,0.0894427190999916,-32.5066300664006,-16.8372950561108,-34.813947783045,0.168916494400135,19.3837396947032,6.41851545397602,17.3050456707968,0.447213595499958,0.447213595499958,0.447213595499958 +19.6530001724948,-3.29310556619747,19.1100587631133,0.0894427190999916,67.3834625460512,71.5875051693114,5.10015734168916,4.23606797749979,-104.756462546051,-40.7875051693112,-110.254157341689,2.61803398874989,2.61803398874989,2.61803398874989,2.6404081513865,46.379440658365,-63.0406592964535,4.23606797749979,14.7866302388958,44.3441894899135,-51.2299934538417,0.0894427190999916,14.7866302388958,44.3441894899135,-51.2299934538417,0.0894427190999916,19.6530001724948,-3.29310556619747,19.1100587631133,0.168916494400135,-52.1596302388954,-13.5441894899133,-53.9240065461583,0.447213595499958,0.447213595499958,0.447213595499958 +-19.9873694161144,8.55797835751877,-6.96887592761521,0.0894427190999916,2.6404081513865,46.379440658365,-63.0406592964535,4.23606797749979,71.4395918486134,-17.1794406583652,56.9996592964536,2.61803398874989,2.61803398874989,2.61803398874989,46.7925040562495,35.7619624237835,-27.8129325040813,4.23606797749979,34.4396304113907,41.0510839237161,-32.1199346907284,0.0894427190999916,34.4396304113907,41.0510839237161,-32.1199346907284,0.0894427190999916,-19.9873694161144,8.55797835751877,-6.96887592761521,0.168916494400135,39.6403695886092,-11.8510839237162,26.0789346907285,0.447213595499958,0.447213595499958,0.447213595499958 +25.6408915791614,23.9670406387538,-6.48168654595882,0.0894427190999916,46.7925040562495,35.7619624237835,-27.8129325040813,4.23606797749979,-77.968504056249,-1.56196242378364,-11.7630674959187,2.61803398874989,2.61803398874989,2.61803398874989,-1.39468150249639,34.796616556735,-35.0829080285182,4.23606797749979,14.4522609952763,49.6090622812348,-39.0888106183436,0.0894427190999916,14.4522609952763,49.6090622812348,-39.0888106183436,0.0894427190999916,25.6408915791614,23.9670406387538,-6.48168654595882,0.168916494400135,-45.6282609952758,-15.409062281235,-0.487189381656387,0.447213595499958,0.447213595499958,0.447213595499958 +25.6810441535992,-24.7568564412578,53.8328162897387,0.0894427190999916,-1.39468150249639,34.796616556735,-35.0829080285182,4.23606797749979,41.4476815024963,87.5033834432652,-70.8020919714818,2.61803398874989,2.61803398874989,2.61803398874989,24.2213944209266,88.8766816552877,-78.84100734149,4.23606797749979,40.0931525744377,73.5761029199886,-45.5704971643025,0.0894427190999916,40.0931525744377,73.5761029199886,-45.5704971643025,0.0894427190999916,25.6810441535992,-24.7568564412578,53.8328162897387,0.168916494400135,-0.0401525744378288,48.7238970800116,-60.3145028356975,0.447213595499958,0.447213595499958,0.447213595499958 +-6.28475911836362,-3.23760996252713,3.95713541517506,0.0894427190999916,24.2213944209266,88.8766816552877,-78.84100734149,4.23606797749979,73.5186055790732,-61.5766816552875,136.97900734149,2.61803398874989,2.61803398874989,2.61803398874989,69.6583914742915,50.8201994778879,5.81667494077215,4.23606797749979,65.7741967280369,48.8192464787308,8.26231912543625,0.0894427190999916,65.7741967280369,48.8192464787308,8.26231912543625,0.0894427190999916,-6.28475911836362,-3.23760996252713,3.95713541517506,0.168916494400135,31.9658032719628,-21.5192464787307,49.8756808745636,0.447213595499958,0.447213595499958,0.447213595499958 +-7.69732150869036,1.84402655367658,-5.27541004421361,0.0894427190999916,69.6583914742915,50.8201994778879,5.81667494077215,4.23606797749979,-8.75639147429143,-10.3201994778879,15.6353250592279,2.61803398874989,2.61803398874989,2.61803398874989,64.2466439243796,44.4419654298742,15.4798372525279,4.23606797749979,59.4894376096733,45.5816365162037,12.2194545406113,0.0894427190999916,59.4894376096733,45.5816365162037,12.2194545406113,0.0894427190999916,-7.69732150869036,1.84402655367658,-5.27541004421361,0.168916494400135,1.41256239032673,-5.08163651620371,9.23254545938867,0.447213595499958,0.447213595499958,0.447213595499958 +-13.5652054077073,-4.93031037644295,-2.08336554781585,0.0894427190999916,64.2466439243796,44.4419654298742,15.4798372525279,4.23606797749979,-6.58664392437971,9.75803457012557,-11.727837252528,2.61803398874989,2.61803398874989,2.61803398874989,60.1758741073199,50.4727624576083,8.23163521593845,4.23606797749979,51.792116100983,47.4256630698803,6.94404449639772,0.0894427190999916,51.792116100983,47.4256630698803,6.94404449639772,0.0894427190999916,-13.5652054077073,-4.93031037644295,-2.08336554781585,0.168916494400135,5.8678838990169,6.77433693011953,-3.19204449639776,0.447213595499958,0.447213595499958,0.447213595499958 +22.2677052855682,8.96504231699402,4.08931340076592,0.0894427190999916,60.1758741073199,50.4727624576083,8.23163521593845,4.23606797749979,-57.7818741073197,-21.872762457608,-9.54363521593835,2.61803398874989,2.61803398874989,2.61803398874989,24.4647119753289,36.9546518309539,2.33334427625811,4.23606797749979,38.2269106932757,42.4953526934373,4.86067894858187,0.0894427190999916,38.2269106932757,42.4953526934373,4.86067894858187,0.0894427190999916,22.2677052855682,8.96504231699402,4.08931340076592,0.168916494400135,-35.8329106932755,-13.895352693437,-6.17267894858177,0.447213595499958,0.447213595499958,0.447213595499958 +35.7673212644131,18.7254373274256,13.1173057501137,0.0894427190999916,24.4647119753289,36.9546518309539,2.33334427625811,4.23606797749979,22.5302880246701,4.7453481690459,-2.41134427625808,2.61803398874989,2.61803398874989,2.61803398874989,38.3891957508997,39.8874382878764,0.843051554953098,4.23606797749979,60.4946159788439,51.4603950104314,8.94999234934779,0.0894427190999916,60.4946159788439,51.4603950104314,8.94999234934779,0.0894427190999916,35.7673212644131,18.7254373274256,13.1173057501137,0.168916494400135,-13.4996159788449,-9.76039501043154,-9.02799234934776,0.447213595499958,0.447213595499958,0.447213595499958 +39.1422585076695,13.4112696652834,24.6276038495751,0.0894427190999916,38.3891957508997,39.8874382878764,0.843051554953098,4.23606797749979,54.4978042491009,35.6125617121227,9.71394844504692,2.61803398874989,2.61803398874989,2.61803398874989,72.0706910890825,61.8972118524213,6.84660185895628,4.23606797749979,96.261937243257,70.1858323378569,22.0672980994615,0.0894427190999916,96.261937243257,70.1858323378569,22.0672980994615,0.0894427190999916,39.1422585076695,13.4112696652834,24.6276038495751,0.168916494400135,-3.37493724325638,5.31416766214218,-11.5102980994615,0.447213595499958,0.447213595499958,0.447213595499958 +-22.2085457414032,-17.2916283315774,5.13750579861184,0.0894427190999916,72.0706910890825,61.8972118524213,6.84660185895628,4.23606797749979,124.684308910917,52.4027881475797,59.3383981410437,2.61803398874989,2.61803398874989,2.61803398874989,149.12983185982,94.2839160328858,43.5197487480948,4.23606797749979,135.404195750926,83.5971020031403,46.6949019490366,0.0894427190999916,135.404195750926,83.5971020031403,46.6949019490366,0.0894427190999916,-22.2085457414032,-17.2916283315774,5.13750579861184,0.168916494400135,61.3508042490727,30.7028979968608,19.4900980509633,0.447213595499958,0.447213595499958,0.447213595499958 +-16.3688957318797,3.11384533998575,-12.9300864537396,0.0894427190999916,149.12983185982,94.2839160328858,43.5197487480948,4.23606797749979,-41.7738318598206,-48.3839160328861,26.380251251905,2.61803398874989,2.61803398874989,2.61803398874989,123.312183930128,64.3810114157412,59.8236406535341,4.23606797749979,113.195650009523,66.3054736715628,51.8324077476485,0.0894427190999916,113.195650009523,66.3054736715628,51.8324077476485,0.0894427190999916,-16.3688957318797,3.11384533998575,-12.9300864537396,0.168916494400135,-5.83965000952353,-20.4054736715632,18.0675922523514,0.447213595499958,0.447213595499958,0.447213595499958 +-4.34814145423654,-7.06683564846604,15.7402348401691,0.0894427190999916,123.312183930128,64.3810114157412,59.8236406535341,4.23606797749979,-38.5061839301275,15.2189885842592,-49.5916406535339,2.61803398874989,2.61803398874989,2.61803398874989,99.5140534842542,73.78686363521,29.1743211717791,4.23606797749979,96.8267542776436,69.4193190115486,38.9023212939089,0.0894427190999916,96.8267542776436,69.4193190115486,38.9023212939089,0.0894427190999916,-4.34814145423654,-7.06683564846604,15.7402348401691,0.168916494400135,-12.0207542776431,10.1806809884518,-28.6703212939087,0.447213595499958,0.447213595499958,0.447213595499958 +1.93547136917085,9.68564771461614,-15.1822090257526,0.0894427190999916,99.5140534842542,73.78686363521,29.1743211717791,4.23606797749979,-13.3190534842545,-28.1868636352096,56.3906788282207,2.61803398874989,2.61803398874989,2.61803398874989,91.2824257330072,56.366423872392,64.0256773362986,4.23606797749979,92.4786128234071,62.3524833630825,54.642556134078,0.0894427190999916,92.4786128234071,62.3524833630825,54.642556134078,0.0894427190999916,1.93547136917085,9.68564771461614,-15.1822090257526,0.168916494400135,-6.28361282340738,-16.7524833630822,30.9224438659218,0.447213595499958,0.447213595499958,0.447213595499958 +6.63455556174864,9.12377879231628,-2.37286191742756,0.0894427190999916,91.2824257330072,56.366423872392,64.0256773362986,4.23606797749979,-1.56742573300707,16.2335761276065,-37.3746773362983,2.61803398874989,2.61803398874989,2.61803398874989,90.3137033551676,66.3993256782118,40.9268564239059,4.23606797749979,94.4140841925779,72.0381310776987,39.4603471083254,0.0894427190999916,94.4140841925779,72.0381310776987,39.4603471083254,0.0894427190999916,6.63455556174864,9.12377879231628,-2.37286191742756,0.168916494400135,-4.6990841925778,0.56186892229986,-12.8093471083251,0.447213595499958,0.447213595499958,0.447213595499958 +0.934195316075438,-8.11431133767021,-8.20637672652955,0.0894427190999915,90.3137033551676,66.3993256782118,40.9268564239059,4.23606797749979,16.4352966448322,32.0006743217897,1.99414357609395,2.61803398874989,2.61803398874989,2.61803398874989,100.471275296861,86.1768300719938,42.1593049323792,4.23606797749979,101.048639754327,81.161909870015,37.0874851908978,0.0894427190999916,101.048639754327,81.161909870015,37.0874851908978,0.0894427190999916,0.934195316075438,-8.11431133767021,-8.20637672652955,0.168916494400135,5.70036024567321,17.2380901299865,5.83351480910199,0.447213595499958,0.447213595499958,0.447213595499958 +-20.9139696135227,0.133287194675265,-24.4722682621612,0.0894427190999914,100.471275296861,86.1768300719938,42.1593049323792,4.23606797749979,23.3597247031391,-21.3768300719945,2.98769506762074,2.61803398874989,2.61803398874989,2.61803398874989,114.908379131242,72.9652225157703,44.0058020321892,4.23606797749979,101.982835070402,73.0475985323448,28.8811084643683,0.0894427190999917,101.982835070402,73.0475985323448,28.8811084643683,0.0894427190999917,-20.9139696135227,0.133287194675265,-24.4722682621612,0.168916494400135,21.8481649295981,-8.24759853234548,16.2658915356317,0.447213595499958,0.447213595499958,0.447213595499958 +6.73289584335623,-10.5858270783044,18.767571940046,0.0894427190999899,114.908379131242,72.9652225157703,44.0058020321892,4.23606797749979,-61.4863791312411,10.9347774842293,-82.8368020321894,2.61803398874989,2.61803398874989,2.61803398874989,76.9077069829723,79.7232866604411,-7.19015714305016,4.23606797749979,81.0688654568794,73.18088572702,4.40884020220707,0.0894427190999922,81.0688654568794,73.18088572702,4.40884020220707,0.0894427190999922,6.73289584335623,-10.5858270783044,18.767571940046,0.168916494400137,-27.6468654568789,10.7191142729796,-43.2398402022072,0.447213595499959,0.447213595499959,0.447213595499959 +-1.08334285640858,-10.6907684295894,18.4629840822989,0.0894427190999803,76.9077069829723,79.7232866604411,-7.19015714305016,4.23606797749979,18.7102930170281,-17.0232866604404,30.6711571430504,2.61803398874989,2.61803398874989,2.61803398874989,88.4713040069655,69.2023169040563,11.7656604456441,4.23606797749979,87.8017613002356,62.5950586487156,23.1764121422531,0.0894427190999959,87.8017613002356,62.5950586487156,23.1764121422531,0.0894427190999959,-1.08334285640858,-10.6907684295894,18.4629840822989,0.168916494400152,7.8162386997648,0.104941351285074,0.30458785774713,0.447213595499965,0.447213595499965,0.447213595499965 +20.0890755874182,18.3135217895371,-17.1416196931493,0.0894427190999141,88.4713040069655,69.2023169040563,11.7656604456441,4.23606797749979,-22.9253040069652,-46.3023169040566,65.478339554356,2.61803398874989,2.61803398874989,2.61803398874989,74.3026869282368,40.5859112994805,52.2334998171428,4.23606797749979,86.718418443827,51.9042902191262,41.639396224552,0.0894427191000212,86.718418443827,51.9042902191262,41.639396224552,0.0894427191000212,20.0890755874182,18.3135217895371,-17.1416196931493,0.168916494400253,-21.1724184438267,-29.0042902191266,35.6046037754482,0.447213595500007,0.447213595500007,0.447213595500007 +-40.3424303813362,-9.56866620179987,-25.1718431617463,0.0894427190994602,74.3026869282368,40.5859112994805,52.2334998171428,4.23606797749979,92.9363130717628,57.5140887005199,-19.705499817143,2.61803398874989,2.61803398874989,2.61803398874989,131.740487195687,76.1315729483781,40.0548311648436,4.23606797749979,106.807494031245,70.2178120086634,24.4977765314027,0.0894427191001945,106.807494031245,70.2178120086634,24.4977765314027,0.0894427191001945,-40.3424303813362,-9.56866620179987,-25.1718431617463,0.168916494400946,60.4315059687544,27.882187991337,8.03022346859707,0.447213595500296,0.447213595500296,0.447213595500296 +-20.4013667314268,2.680479605064,-22.3719097920898,0.0894427190963499,131.740487195687,76.1315729483781,40.0548311648436,4.23606797749979,-85.2164871956879,-27.7315729483784,-43.5288311648437,2.61803398874989,2.61803398874989,2.61803398874989,79.073801706882,58.9925183047831,13.1525340144145,4.23606797749979,66.4650636499089,60.6491458068635,-0.674066630343603,0.0894427191013827,66.4650636499089,60.6491458068635,-0.674066630343603,0.0894427191013827,-20.4013667314268,2.680479605064,-22.3719097920898,0.168916494405699,-19.9410636499095,-12.2491458068639,-2.79993336965655,0.447213595502276,0.447213595502276,0.447213595502276 +22.2083301870556,10.3101050169908,-13.8068862145233,0.0894427190750307,79.073801706882,58.9925183047831,13.1525340144145,4.23606797749979,-75.6198017068823,-3.29251830478233,-44.7635340144143,2.61803398874989,2.61803398874989,2.61803398874989,32.3381940295014,56.9576300838464,-14.5128514630556,4.23606797749979,46.0636969184821,63.3296254119275,-23.0459764224334,0.0894427191095258,46.0636969184821,63.3296254119275,-23.0459764224334,0.0894427191095258,22.2083301870556,10.3101050169908,-13.8068862145233,0.168916494438271,-42.6096969184824,-7.62962541192679,-8.56502357756649,0.447213595515848,0.447213595515848,0.447213595515848 +-4.28264270740754,-6.95016455409055,13.0102511485201,0.0894427189289074,32.3381940295014,56.9576300838464,-14.5128514630556,4.23606797749979,62.4248059704994,33.9423699161532,-49.1571485369445,2.61803398874989,2.61803398874989,2.61803398874989,70.9188458603874,77.935168350751,-44.8936400489145,4.23606797749979,68.2720271055377,73.6397304289183,-36.8528626369567,0.0894427191653399,68.2720271055377,73.6397304289183,-36.8528626369567,0.0894427191653399,-4.28264270740754,-6.95016455409055,13.0102511485201,0.168916494661528,26.4909728944631,17.2602695710813,-26.8171373630434,0.447213595608872,0.447213595608872,0.447213595608872 +20.4847416907229,-23.7605986792628,22.5246396600835,0.0894427179273626,70.9188458603874,77.935168350751,-44.8936400489145,4.23606797749979,-31.6968458603877,5.56483164924899,11.5366400489145,2.61803398874989,2.61803398874989,2.61803398874989,51.3291177825014,81.374423451658,-37.7636043827121,4.23606797749979,63.9893843981302,66.6895658748277,-23.8426114884366,0.089442719547896,63.9893843981302,66.6895658748277,-23.8426114884366,0.089442719547896,20.4847416907229,-23.7605986792628,22.5246396600835,0.168916496191752,-24.7673843981304,16.8104341251723,-9.51438851156338,0.447213596246465,0.447213596246465,0.447213596246465 +0.882867779574944,-7.2316314836975,-8.39833216826967,0.0894427110626729,51.3291177825014,81.374423451658,-37.7636043827121,4.23606797749979,52.7468822174995,-54.9744234516584,67.3686043827121,2.61803398874989,2.61803398874989,2.61803398874989,83.9284837935035,47.3983612466038,3.87248290044914,4.23606797749979,84.474126088853,42.9289671955649,-1.31797182835312,0.0894427221699743,84.474126088853,42.9289671955649,-1.31797182835312,0.0894427221699743,0.882867779574944,-7.2316314836975,-8.39833216826967,0.168916506680065,19.6018739111479,-16.5289671955653,30.9229718283531,0.447213600616596,0.447213600616596,0.447213600616596 +-30.8921383519967,-15.6342957718304,-22.3916361648925,0.0894426640113997,83.9284837935035,47.3983612466038,3.87248290044914,4.23606797749979,33.2035162064961,-3.29836124660346,0.404517099550908,2.61803398874989,2.61803398874989,2.61803398874989,104.449385355126,45.3598618890274,4.12248821700212,4.23606797749979,85.3569938684279,35.6973357118674,-9.71630399662279,0.0894427401419672,85.3569938684279,35.6973357118674,-9.71630399662279,0.0894427401419672,-30.8921383519967,-15.6342957718304,-22.3916361648925,0.168916578568045,31.7750061315716,8.40266428813293,13.9933039966228,0.447213630569915,0.447213630569915,0.447213630569915 +-46.5672828355649,-23.5712558317934,-11.4345763264077,0.0894423415176199,104.449385355126,45.3598618890274,4.12248821700212,4.23606797749979,-34.3093853551267,-17.3598618890274,-47.1874882170022,2.61803398874989,2.61803398874989,2.61803398874989,83.2450190725399,34.6308772016045,-25.0409833448404,4.23606797749979,54.4648555164312,20.063039940037,-32.1079401615153,0.0894428633239045,54.4648555164312,20.063039940037,-32.1079401615153,0.0894428633239045,-46.5672828355649,-23.5712558317934,-11.4345763264077,0.168917071296133,15.6751444835682,7.93696005996298,-10.9570598384848,0.447213835873017,0.447213835873017,0.447213835873017 +-14.2857101546985,-13.0794717235498,-14.4370928143308,0.0894401311332342,83.2450190725399,34.6308772016045,-25.0409833448404,4.23606797749979,-107.62901907254,-48.6308772016045,-15.4990166551596,2.61803398874989,2.61803398874989,2.61803398874989,16.7266271098996,4.57534218829055,-34.6199024299297,4.23606797749979,7.89757268086638,-3.50821589175639,-43.542516487923,0.0894437076285072,7.89757268086638,-3.50821589175639,-43.542516487923,0.0894437076285072,-14.2857101546985,-13.0794717235498,-14.4370928143308,0.168920448530483,-32.2815726808664,-10.4917841082436,3.00251648792307,0.447215243041414,0.447215243041414,0.447215243041414 +-69.0748476285305,-31.0671593388556,-16.0487021165847,0.0894249819134705,16.7266271098996,4.57534218829055,-34.6199024299297,4.23606797749979,31.6743728901003,-3.17534218829092,-21.7480975700702,2.61803398874989,2.61803398874989,2.61803398874989,36.3024661283198,2.6128727900153,-48.0609659188821,4.23606797749979,-6.38813747383213,-16.5876876153062,-57.9796093022538,0.0894494947213581,-6.38813747383213,-16.5876876153062,-57.9796093022538,0.0894494947213581,-69.0748476285305,-31.0671593388556,-16.0487021165847,0.168943597650733,54.789137473832,17.9876876153058,1.6116093022539,0.447224887917093,0.447224887917093,0.447224887917093 +-53.8718327308938,4.5779937069819,-54.2520135354232,0.0893211936581228,36.3024661283198,2.6128727900153,-48.0609659188821,4.23606797749979,-126.968466128319,-85.9128727900146,12.2359659188821,2.61803398874989,2.61803398874989,2.61803398874989,-42.1683614384211,-50.4842026653597,-40.4987230958277,4.23606797749979,-75.4629851023626,-47.6548469541618,-74.0283114188386,0.0894891667648662,-75.4629851023626,-47.6548469541618,-74.0283114188386,0.0894891667648662,-53.8718327308938,4.5779937069819,-54.2520135354232,0.169102321010081,-15.2030148976367,-35.6451530458375,38.2033114188385,0.447290994878445,0.447290994878444,0.447290994878445 +-0.526650564149875,33.9011404598035,-49.5003384896851,0.0886119791166665,-42.1683614384211,-50.4842026653597,-40.4987230958277,4.23606797749979,-140.511638561579,-21.9157973346417,-92.5332769041723,2.61803398874989,2.61803398874989,2.61803398874989,-129.009329884417,-64.0289103087227,-97.6874333130118,4.23606797749979,-129.334817833256,-43.0768532471799,-128.280324954262,0.089761398771559,-129.334817833256,-43.0768532471799,-128.280324954262,0.089761398771559,-0.526650564149875,33.9011404598035,-49.5003384896851,0.170192903770381,-53.3451821667439,-29.3231467528216,-4.75167504573814,0.447744098732229,0.447744098732229,0.447744098732229 +86.121881038444,10.8254276724256,71.8859980663682,0.0838517404088302,-129.009329884417,-64.0289103087227,-97.6874333130118,4.23606797749979,-87.5006701155827,77.9289103087241,-201.479566686988,2.61803398874989,2.61803398874989,2.61803398874989,-183.08771805424,-15.8661950316891,-222.208653564172,4.23606797749979,-129.861468397406,-9.17571278737644,-177.780663443947,0.0916421794821756,-129.861468397406,-9.17571278737644,-177.780663443947,0.0916421794821756,86.121881038444,10.8254276724256,71.8859980663682,0.177794334647952,-86.6485316025939,23.0757127873779,-121.386336556053,0.450849718747371,0.450849718747371,0.450849718747371 +66.2882936794809,32.6751425574754,67.8073326887892,0.0557280900008412,-183.08771805424,-15.8661950316891,-222.208653564172,4.23606797749979,159.181718054241,-4.33380496831163,120.392653564172,2.61803398874989,2.61803398874989,2.61803398874989,-84.7080059091162,-18.5446338027188,-147.801901665722,4.23606797749979,-43.7395873589622,1.64971488504914,-105.894665377579,0.105244939971399,-43.7395873589622,1.64971488504914,-105.894665377579,0.105244939971399,66.2882936794809,32.6751425574754,67.8073326887892,0.23606797749979,19.8335873589632,-21.8497148850499,4.07866537757892,0.472135954999579,0.472135954999579,0.472135954999579 +0,0,0,0,-84.7080059091162,-18.5446338027188,-147.801901665722,4.23606797749979,173.545005909116,85.5446338027188,177.521901665722,2.61803398874989,2.61803398874989,2.61803398874989,22.5487063205186,34.3248574425246,-38.0873326887895,4.23606797749979,22.5487063205186,34.3248574425246,-38.0873326887895,0.23606797749979,22.5487063205186,34.3248574425246,-38.0873326887895,0.23606797749979,0,0,0,1,66.2882936794809,32.6751425574754,67.8073326887892,0.618033988749895,0.618033988749895,0.618033988749895 diff --git a/statsmodels/tsa/statespace/tests/results/results_structural.py b/statsmodels/tsa/statespace/tests/results/results_structural.py new file mode 100644 index 0000000..79ea1bb --- /dev/null +++ b/statsmodels/tsa/statespace/tests/results/results_structural.py @@ -0,0 +1,246 @@ +""" +Results for SARIMAX tests + +Results from R, KFAS library using script `test_ucm.R`. +See also Stata time series documentation. + +Author: Chad Fulton +License: Simplified-BSD +""" +from numpy import pi + +irregular = { + 'models': [ + {'irregular': True}, + {'level': 'irregular'}, + {'level': 'ntrend'}, + ], + 'params': [36.74687342], + 'llf': -653.8562525, + 'kwargs': {} +} + +# this model will issue a warning that there is no stochastic component, and +# will then add an irregular component. Thus it's output will be just like +# the "deterministic constant" model. +fixed_intercept = { + 'models': [ + {'level': True}, + {'level': 'fixed intercept'}, + ], + 'params': [2.127438969], + 'llf': -365.5289923, + 'kwargs': {} +} + +deterministic_constant = { + 'models': [ + {'irregular': True, 'level': True}, + {'level': 'deterministic constant'}, + {'level': 'dconstant'}, + ], + 'params': [2.127438969], + 'llf': -365.5289923, + 'kwargs': {} +} + +local_level = { + 'models': [ + {'irregular': True, 'level': True, 'stochastic_level': True}, + {'level': 'local level'}, + {'level': 'llevel'} + ], + 'params': [4.256647886e-06, 1.182078808e-01], + 'llf': -70.97242557, + 'kwargs': {} +} + +random_walk = { + 'models': [ + {'level': True, 'stochastic_level': True}, + {'level': 'random walk'}, + {'level': 'rwalk'}, + ], + 'params': [0.1182174646], + 'llf': -70.96771641, + 'kwargs': {} +} + + +# this model will issue a warning that there is no stochastic component, and +# will then add an irregular component. Thus it's output will be just like +# the "deterministic trend" model. +fixed_slope = { + 'models': [ + {'level': True, 'trend': True}, + {'level': 'fixed slope'}, + ], + 'params': [2.134137554], + 'llf': -370.7758666, + 'kwargs': {} +} + +deterministic_trend = { + 'models': [ + {'irregular': True, 'level': True, 'trend': True}, + {'level': 'deterministic trend'}, + {'level': 'dtrend'}, + ], + 'params': [2.134137554], + 'llf': -370.7758666, + 'kwargs': {} +} + +local_linear_deterministic_trend = { + 'models': [ + {'irregular': True, 'level': True, 'stochastic_level': True, + 'trend': True}, + {'level': 'local linear deterministic trend'}, + {'level': 'lldtrend'}, + ], + 'params': [4.457592057e-06, 1.184455029e-01], + 'llf': -73.47291031, + 'kwargs': {} +} + +random_walk_with_drift = { + 'models': [ + {'level': True, 'stochastic_level': True, 'trend': True}, + {'level': 'random walk with drift'}, + {'level': 'rwdrift'}, + ], + 'params': [0.1184499547], + 'llf': -73.46798576, + 'kwargs': {} +} + +local_linear_trend = { + 'models': [ + {'irregular': True, 'level': True, 'stochastic_level': True, + 'trend': True, 'stochastic_trend': True}, + {'level': 'local linear trend'}, + {'level': 'lltrend'} + ], + 'params': [1.339852549e-06, 1.008704925e-02, 6.091760810e-02], + 'llf': -31.15640107, + 'kwargs': {} +} + +smooth_trend = { + 'models': [ + {'irregular': True, 'level': True, 'trend': True, + 'stochastic_trend': True}, + {'level': 'smooth trend'}, + {'level': 'strend'}, + ], + 'params': [0.0008824099119, 0.0753064234342], + 'llf': -31.92261408, + 'kwargs': {} +} + +random_trend = { + 'models': [ + {'level': True, 'trend': True, 'stochastic_trend': True}, + {'level': 'random trend'}, + {'level': 'rtrend'}, + ], + 'params': [0.08054724989], + 'llf': -32.05607557, + 'kwargs': {} +} + +cycle = { + 'models': [{'irregular': True, 'cycle': True, 'stochastic_cycle': True, + 'damped_cycle': True}], + 'params': [37.57197224, 0.1, 2*pi/10, 1], + 'llf': -672.3102588, + 'kwargs': { + # Required due to the way KFAS estimated loglikelihood which P1inf is + # set in the R code + 'loglikelihood_burn': 0 + } +} + +seasonal = { + 'models': [{'irregular': True, 'seasonal': 4}], + 'params': [38.1704278, 0.1], + 'llf': -655.3337155, + 'kwargs': {}, + 'rtol': 1e-6 +} + +reg = { + # Note: The test needs to fill in exog=np.log(dta['realgdp']) + 'models': [ + {'irregular': True, 'exog': True, 'mle_regression': False}, + {'level': 'irregular', 'exog': True, 'mle_regression': False}, + {'level': 'ntrend', 'exog': True, 'mle_regression': False}, + {'level': 'ntrend', 'exog': 'numpy', 'mle_regression': False}, + ], + 'params': [2.215447924], + 'llf': -379.6233483, + 'kwargs': { + # Required due to the way KFAS estimated loglikelihood which P1inf is + # set in the R code + 'loglikelihood_burn': 0 + } +} + +rtrend_ar1 = { + 'models': [ + {'level': True, 'trend': True, 'stochastic_trend': True, + 'autoregressive': 1}, + {'level': 'random trend', 'autoregressive': 1}, + {'level': 'rtrend', 'autoregressive': 1} + ], + 'params': [0.0609, 0.0097, 0.9592], + 'llf': -31.15629379, + 'kwargs': {} +} + +lltrend_cycle_seasonal_reg_ar1 = { + # Note: The test needs to fill in exog=np.log(dta['realgdp']) + 'models': [ + # Complete specification + {'irregular': True, 'level': True, 'stochastic_level': True, + 'trend': True, 'stochastic_trend': True, 'cycle': True, + 'stochastic_cycle': True, 'seasonal': 4, 'autoregressive': 1, + 'exog': True, 'mle_regression': False}, + # Verbose string specification + {'level': 'local linear trend', 'autoregressive': 1, 'cycle': True, + 'stochastic_cycle': True, 'seasonal': 4, 'autoregressive': 1, + 'exog': True, 'mle_regression': False}, + # Abbreviated string specification + {'level': 'lltrend', 'autoregressive': 1, 'cycle': True, + 'stochastic_cycle': True, 'seasonal': 4, 'autoregressive': 1, + 'exog': True, 'mle_regression': False}, + # Numpy exog dataset + {'level': 'lltrend', 'autoregressive': 1, 'cycle': True, + 'stochastic_cycle': True, 'seasonal': 4, 'autoregressive': 1, + 'exog': 'numpy', 'mle_regression': False,}, + # Annual frequency dataset + {'level': 'lltrend', 'autoregressive': 1, 'cycle': True, + 'stochastic_cycle': True, 'seasonal': 4, 'autoregressive': 1, + 'exog': True, 'mle_regression': False, 'freq':'AS'}, + # Quarterly frequency dataset + {'level': 'lltrend', 'autoregressive': 1, 'cycle': True, + 'stochastic_cycle': True, 'seasonal': 4, 'autoregressive': 1, + 'exog': True, 'mle_regression': False, 'freq':'QS'}, + # Monthly frequency dataset + {'level': 'lltrend', 'autoregressive': 1, 'cycle': True, + 'stochastic_cycle': True, 'seasonal': 4, 'autoregressive': 1, + 'exog': True, 'mle_regression': False, 'freq':'MS'}, + # Minutely frequency dataset + {'level': 'lltrend', 'autoregressive': 1, 'cycle': True, + 'stochastic_cycle': True, 'seasonal': 4, 'autoregressive': 1, + 'exog': True, 'mle_regression': False, 'freq':'T', + 'cycle_period_bounds': (1.5*12, 12*12)}, + ], + 'params': [0.0001, 0.01, 0.06, 0.0001, 0.0001, 0.1, 2*pi / 10, 0.2], + 'llf': -168.5258709, + 'kwargs': { + # Required due to the way KFAS estimated loglikelihood which P1inf is + # set in the R code + 'loglikelihood_burn': 0 + } +} diff --git a/statsmodels/tsa/statespace/tests/results/results_var_stata.csv b/statsmodels/tsa/statespace/tests/results/results_var_stata.csv new file mode 100644 index 0000000..0b07600 --- /dev/null +++ b/statsmodels/tsa/statespace/tests/results/results_var_stata.csv @@ -0,0 +1,93 @@ +predict_1,predict_2,predict_3,predict_diag1,predict_diag2,predict_diag3,predict_int1,predict_int2,predict_int3,predict_exog1_1,predict_exog1_2,predict_exog1_3,predict_exog2_1,predict_exog2_2,predict_exog2_3,predict_var2_1,predict_var2_2,dyn_predict_1,dyn_predict_2,dyn_predict_3,dyn_predict_diag1,dyn_predict_diag2,dyn_predict_diag3,dyn_predict_int1,dyn_predict_int2,dyn_predict_int3,dyn_predict_var2_1,dyn_predict_var2_2,fcast_exog1_dln_inv,fcast_exog1_dln_inc,fcast_exog1_dln_consump,fcast_exog2_dln_inv,fcast_exog2_dln_inc,fcast_exog2_dln_consump +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +0,0,0,0,0,0,.017993,.0206546,.0198753,,,,,,,0,0,0,0,0,0,0,0,.017993,.0206546,.0198753,0,0,,,,,, +.0219036,.015239,.0205644,.0219323,.015408,.0205827,.0222069,.0178744,.023416,.0240228,.0116697,.0155036,.0274188,.0195343,.0234162,.0291779,.0214276,.0219036,.015239,.0205644,.0219323,.015408,.0205827,.0222069,.0178744,.023416,.0291779,.0214276,,,,,, +.0286807,.0290166,.0307121,.0287198,.0292086,.0308044,.0278614,.0220684,.0228171,.0325758,.0226331,.0217584,.0330271,.0236782,.0228099,.0365168,.0299893,.0286807,.0290166,.0307121,.0287198,.0292086,.0308044,.0278614,.0220684,.0228171,.0365168,.0299893,,,,,, +.0213229,.0250984,.0171728,.021225,.0251252,.0173499,.0211601,.0243908,.0164511,.0246534,.020032,.0101589,.0273071,.0261775,.0163418,.0210618,.0275606,.0213229,.0250984,.0171728,.021225,.0251252,.0173499,.0211601,.0243908,.0164511,.0210618,.0275606,,,,,, +.0053626,.0244219,.022593,.0055324,.0245271,.0226514,.0053418,.0233062,.0212843,.0078678,.0201839,.0167408,.0098265,.0247198,.0213045,.0008339,.025076,.0158976,.0166997,.0180117,.0161077,.0169354,.0181261,.0155766,.0196724,.0214068,.016601,.0195765,,,,,, +.0152812,.001603,.0115397,.0153171,.0017642,.0114732,.0166697,.0134123,.024661,.0152486,.00144,.0112098,.0210356,.0148418,.0246933,.0306755,.0229331,.0155252,.0155309,.0138104,.0156066,.0157223,.0140464,.0195002,.0210119,.0193583,.0213424,.0207717,,,,,, +.0310255,.0307515,.0132727,.0307157,.0306726,.0135935,.0304952,.0281367,.0105641,.0352956,.0246831,.0049285,.0376171,.0300593,.0103376,.0131385,.0096833,.0118529,.0125056,.012006,.0120795,.0127661,.0122276,.0173198,.0205541,.0200522,.0168285,.0177828,,,,,, +.0154957,.0186156,.0234295,.0156176,.0187921,.0234372,.0156334,.0192535,.0240207,.0173325,.0154124,.0189349,.0195353,.0205137,.0240673,.0119374,.0163648,.0104293,.0106435,.009926,.0106197,.0108977,.0101749,.0182681,.0206824,.0198207,.0161775,.0171797,,,,,, +.0016842,.018106,.0124847,.0017576,.0181204,.01257,.0023183,.0230567,.0180721,.0031342,.015819,.0094044,.0068423,.0244065,.0180443,.0064078,.0263343,.0085524,.0088723,.0083608,.0087764,.0091352,.0086051,.0178907,.0206484,.019891,.0148133,.0154455,,,,,, +.0284541,.0204126,.0171175,.0283153,.0204857,.0172589,.0284523,.0214,.0182537,.0309551,.0166898,.0119326,.0336321,.0228894,.0181701,.0121113,.0153868,.0072352,.0074501,.0069959,.0074494,.0077052,.0072372,.0180287,.0206555,.0198713,.0138072,.0144635,,,,,, +.01227,.0136681,.0181741,.0123676,.0138123,.0181713,.0128614,.0182774,.0232453,.0132226,.0119566,.0157784,.0164452,.0194196,.0232869,.0238754,.0188439,.0060418,.0062407,.0058667,.0062548,.0064862,.0060975,.0179814,.0206547,.019876,.0126159,.0132462,,,,,, +.0153997,.0147606,.0130408,.015365,.0148208,.0131198,.0160075,.0202455,.0192012,.0166369,.0129135,.0105026,.0203546,.0215229,.0191646,.0201475,.0194606,.005071,.0052315,.0049165,.0052735,.0054632,.0051347,.0179965,.0206544,.0198752,.0117151,.0122784,,,,,, +.0452093,.0043659,.0115588,.0449143,.0045154,.0116165,.0460012,.0132133,.0214426,.0460411,.0033797,.0100354,.0509036,.0146405,.0213649,.0513044,.0046492,.0042482,.0043847,.0041209,.0044396,.0046009,.0043244,.017992,.0206547,.0198752,.0107843,.0113051,,,,,, +-.0308253,.0183067,.0090861,-.0304762,.0182545,.0091148,-.0296423,.0260625,.0178247,-.0307674,.0179755,.0088939,-.026909,.0269109,.0178838,-.0142943,.0157543,.0035612,.003675,.0034539,.0037394,.0038748,.0036419,.0179932,.0206545,.0198753,.0099649,.0104487,,,,,, +.0084279,.0141093,.0134112,.008477,.0141778,.0134569,.009166,.0201749,.0201967,.009106,.0130421,.0119872,.0126318,.0212072,.0202022,-.0149168,.0217644,.0029847,.0030802,.0028949,.0031491,.0032633,.0030672,.017993,.0206546,.0198752,.0091911,.0096364,,,,,, +.0174139,.016467,.0191551,.0174551,.0166018,.0191911,.0177479,.0192371,.0221892,.0185175,.014658,.0166459,.0209078,.0201936,.0222153,.0193026,.0199788,.0025017,.0025817,.0024264,.0026522,.0027483,.0025831,.017993,.0206546,.0198753,.008487,.0088979,,,,,, +.0333252,.0269773,.0221253,.0331774,.0270646,.0223049,.0327602,.0232518,.0179766,.0362335,.0226783,.016172,.0369761,.0243982,.0179024,.027821,.0212826,.0020968,.0021639,.0020337,.0022336,.0023146,.0021755,.017993,.0206546,.0198752,.0078311,.0082105,,,,,, +-.0098444,.0046119,.0082608,-.0096281,.0046854,.0081933,-.008177,.0175129,.0226559,-.0111728,.0064814,.0109563,-.0061125,.0182001,.0227466,.0090279,.0197315,.0017574,.0018137,.0017045,.0018811,.0019493,.0018321,.017993,.0206546,.0198753,.0072289,.0075791,,,,,, +.0181736,.0159572,.0114471,.0180728,.0159841,.0115675,.0187115,.0212278,.0174139,.0191709,.0146914,.0097642,.0224297,.0222383,.0173572,.0070974,.0139059,.001473,.0015201,.0014287,.0015842,.0016417,.001543,.017993,.0206546,.0198753,.0066716,.0069948,,,,,, +.0277111,.0282975,.0340761,.0278257,.0285451,.0341181,.0268654,.0207146,.0254008,.0301263,.0242147,.0283695,.0288889,.0213492,.0254865,.027889,.0247586,.0012346,.0012741,.0011974,.0013342,.0013826,.0012995,.017993,.0206546,.0198753,.0061579,.0064562,,,,,, +.0314369,.0199549,.0187331,.0312993,.0200574,.0188593,.031378,.0204889,.0193325,.0331166,.0175808,.0154465,.0347659,.0214003,.0192893,.0432999,.0298763,.0010348,.0010679,.0010036,.0011236,.0011644,.0010944,.017993,.0206546,.0198753,.0056834,.0059588,,,,,, +.0249369,.0311732,.0276795,.0249449,.0312988,.027822,.0241242,.0243906,.0200423,.0276228,.0270076,.0219563,.0268023,.0251074,.0200445,.0230672,.0238666,.0008673,.000895,.0008412,.0009463,.0009806,.0009217,.017993,.0206546,.0198753,.0052457,.0054998,,,,,, +.0226227,.0189283,.0183121,.0225767,.0190301,.0184039,.0227616,.0205543,.0201161,.0237223,.0173598,.0161806,.0254098,.0212679,.0201125,.0257267,.0258167,.0007269,.0007502,.0007051,.000797,.0008259,.0007762,.017993,.0206546,.0198753,.0048416,.0050761,,,,,, +.0206391,.0183528,.0147666,.0205545,.018407,.014886,.0209253,.0214154,.0182328,.0215931,.0171426,.0131695,.0237526,.0221437,.0182011,.0198942,.0164757,.0006093,.0006288,.0005909,.0006712,.0006955,.0006537,.017993,.0206546,.0198753,.0044687,.0046851,,,,,, +.0064361,.0123588,.0062243,.0063902,.0123374,.0063249,.007476,.0214799,.0165364,.0062105,.0130622,.0073601,.0101345,.0221494,.0165028,.0023057,.0104471,.0005107,.000527,.0004953,.0005653,.0005858,.0005506,.017993,.0206546,.0198753,.0041244,.0043242,,,,,, +.0155921,.009804,.0120788,.0155744,.0098965,.0121083,.0165001,.0177769,.0209871,.0151424,.0106634,.0133319,.018439,.0182976,.0210128,.0110352,.0084571,.000428,.0004417,.0004151,.0004761,.0004933,.0004637,.017993,.0206546,.0198753,.0038067,.0039911,,,,,, +.0299575,.0169379,.0245207,.0299609,.0171528,.0245389,.0299509,.0171625,.0246345,.0306122,.0158736,.0230132,.031338,.0175545,.0247044,.0403971,.0186751,.0003587,.0003702,.0003479,.0004009,.0004155,.0003905,.017993,.0206546,.0198753,.0035135,.0036837,,,,,, +-.0172722,-.0142972,-.0190914,-.0173296,-.0144513,-.019101,-.0137672,.0156842,.0146928,-.0215492,-.0070201,-.0087462,-.011505,.0162406,.0146565,.0082196,.0043511,.0003007,.0003103,.0002916,.0003377,.0003499,.0003289,.017993,.0206546,.0198753,.0032429,.0034,,,,,, +.0321264,.0165184,.0131974,.0319078,.0165722,.0133468,.0323852,.0202088,.0173925,.0328862,.0158415,.0123208,.0350353,.0208184,.0173281,.0013488,-.0109963,.000252,.0002601,.0002444,.0002844,.0002947,.000277,.017993,.0206546,.0198753,.0029931,.0031381,,,,,, +.0110035,-.0049469,.0022687,.0109659,-.0048623,.0022148,.0130487,.012816,.0221412,.0083397,-.0005477,.0084275,.0142469,.0131323,.022191,.0309398,.0024609,.0002112,.000218,.0002049,.0002395,.0002482,.0002333,.017993,.0206546,.0198753,.0027625,.0028963,,,,,, +.0134224,.0092759,.0041027,.0132885,.0092555,.0042106,.0145848,.0200068,.0162319,.0126186,.0110589,.0067327,.0166764,.0204561,.0161873,.0132994,.0000422,.000177,.0001827,.0001717,.0002017,.000209,.0001964,.017993,.0206546,.0198753,.0025497,.0026732,,,,,, +-.0129232,.0109613,.0095938,-.0126974,.0109935,.0095801,-.0116011,.020808,.0206114,-.0145954,.0135551,.0134188,-.0114635,.020808,.0207159,-.0136073,.010725,.0001484,.0001531,.0001439,.0001699,.000176,.0001654,.017993,.0206546,.0198753,.0023533,.0024673,,,,,, +.0370364,.0124037,.0209094,.0369347,.0126113,.0209344,.0372688,.0153276,.0240707,.0369543,.0127017,.0212882,.0381709,.0155191,.0241228,.0339027,.0177888,.0001244,.0001284,.0001206,.0001431,.0001482,.0001393,.017993,.0206546,.0198753,.002172,.0022773,,,,,, +.02196,.0242538,.0181303,.0218787,.0243028,.0182879,.0218124,.0235982,.0174414,.02292,.0231369,.0167299,.0232184,.0238279,.0174251,.0309038,.0189547,.0001042,.0001076,.0001011,.0001205,.0001248,.0001173,.017993,.0206546,.0198753,.0020047,.0021018,,,,,, +.0088349,.0167866,.0180935,.0089439,.0168989,.0181198,.0093028,.0202276,.0218874,.0082781,.0177047,.0195069,.0093387,.0201608,.021978,.0115932,.0215607,.0000874,.0000902,.0000847,.0001015,.0001051,.0000988,.017993,.0206546,.0198753,.0018503,.0019399,,,,,, +.0138939,.024108,.0195192,.0139224,.0241751,.0196347,.0138397,.0235647,.0189165,.0143786,.0235815,.0189646,.0143731,.0235688,.0189519,.0087818,.0252103,.0000732,.0000756,.000071,.0000855,.0000885,.0000832,.017993,.0206546,.0198753,.0017078,.0017905,,,,,, +.0330778,.0207476,.0218912,.0329739,.0208897,.0219959,.0328737,.0198843,.0208813,.0336476,.0201649,.021145,.0335446,.0199263,.020905,.0286047,.0213656,.0000614,.0000633,.0000595,.000072,.0000746,.0000701,.017993,.0206546,.0198753,.0015762,.0016526,,,,,, +.0081263,.0220489,.0207024,.008251,.0221499,.0207616,.0082445,.0224003,.0210481,.0079643,.0223754,.0213353,.0078801,.0221805,.0211392,.0183623,.0254464,.0000514,.0000531,.0000499,.0000606,.0000628,.000059,.017993,.0206546,.0198753,.0014548,.0015253,,,,,, +.011879,.0244902,.0228246,.0119847,.0246012,.0229009,.0117529,.022899,.0209907,.0120502,.0243161,.0227571,.0113293,.0226466,.0210774,.0087348,.0304176,.0000431,.0000445,.0000418,.000051,.0000529,.0000497,.017993,.0206546,.0198753,.0013427,.0014078,,,,,, +.01809,.0186676,.0116053,.0179731,.0186714,.0117571,.0184724,.022687,.0161985,.0178595,.0195854,.0130797,.0191889,.022664,.016177,.0097604,.0206746,.0000361,.0000373,.0000351,.000043,.0000445,.0000419,.017993,.0206546,.0198753,.0012393,.0012993,,,,,, +.0294821,.0248464,.0270555,.0294779,.0250242,.0271408,.0289747,.0208104,.0224412,.0300641,.0240988,.0261054,.0285244,.0205329,.0225178,.0231262,.0184518,.0000303,.0000313,.0000294,.0000362,.0000375,.0000353,.017993,.0206546,.0198753,.0011438,.0011993,,,,,, +-.0030156,.0281165,.025027,-.0027422,.028219,.0250779,-.0031805,.0251046,.0215796,-.0031445,.02823,.0254405,-.004739,.0245374,.0217254,.0070327,.0371209,.0000254,.0000262,.0000246,.0000305,.0000316,.0000297,.017993,.0206546,.0198753,.0010557,.0011069,,,,,, +.0247474,.0292947,.0285182,.0247861,.0294501,.0286273,.0240233,.0231085,.0215124,.0255774,.0281547,.0270765,.0232244,.0227055,.021594,.0144461,.0374782,.0000213,.000022,.0000206,.0000257,.0000266,.000025,.017993,.0206546,.0198753,.0009744,.0010216,,,,,, +.032296,.0287394,.022822,.0321585,.02882,.0230124,.0316298,.0240781,.0176312,.0333547,.0275965,.0213966,.0317359,.0238476,.0176249,.0270765,.0278669,.0000178,.0000184,.0000173,.0000216,.0000224,.0000211,.017993,.0206546,.0198753,.0008994,.0009429,,,,,, +.0060403,.0119842,.0066905,.0060096,.011973,.0067799,.0070959,.021155,.0170451,.0042349,.0153211,.0115753,.0065944,.0207852,.0170728,.0072685,.0147909,.0000149,.0000154,.0000145,.0000182,.0000189,.0000177,.017993,.0206546,.0198753,.0008301,.0008703,,,,,, +.0238965,.0277514,.0268631,.0239257,.0278966,.0269696,.0233119,.0227999,.0212506,.0243008,.0273343,.0264434,.0221084,.0222571,.0213352,.0101319,.0185324,.0000125,.0000129,.0000122,.0000153,.0000159,.0000149,.017993,.0206546,.0198753,.0007661,.0008032,,,,,, +.0257059,.0188137,.0206921,.0256713,.0189529,.0207645,.0257484,.0195978,.0215147,.0250379,.0201773,.0227175,.0245545,.0190577,.0215911,.0332744,.0268419,.0000105,.0000108,.0000102,.0000129,.0000134,.0000126,.017993,.0206546,.0198753,.0007071,.0007414,,,,,, +.0318195,.0261582,.0275483,.0317902,.0263321,.0276512,.0311918,.0212546,.0219722,.0321183,.0259622,.0273972,.0298251,.0206516,.0220541,.0373762,.0254131,8.80e-06,9.08e-06,8.54e-06,.0000109,.0000113,.0000106,.017993,.0206546,.0198753,.0006526,.0006843,,,,,, +.0218903,.0290997,.0231629,.0218643,.0291771,.0233223,.0213486,.0247748,.0183299,.0222567,.0289444,.0231714,.0201981,.024177,.0183749,.0230677,.0287736,7.38e-06,7.61e-06,7.16e-06,9.16e-06,9.49e-06,8.92e-06,.017993,.0206546,.0198753,.0006024,.0006316,,,,,, +.0093965,.0038019,.0103721,.0094565,.0039227,.0103284,.0107756,.0153209,.0232041,.0061644,.0091049,.0178977,.0085001,.0145141,.02334,.0233293,.0196793,6.18e-06,6.38e-06,6.00e-06,7.72e-06,8.00e-06,7.52e-06,.017993,.0206546,.0198753,.000556,.0005829,,,,,, +.0396162,.0299035,.0237923,.0394114,.0299908,.024008,.0387532,.0240098,.0172291,.0405326,.0291324,.022893,.0380966,.0234911,.0172172,.0289755,.0158416,5.18e-06,5.35e-06,5.03e-06,6.50e-06,6.73e-06,6.33e-06,.017993,.0206546,.0198753,.0005131,.000538,,,,,, +.0207615,.0221776,.0217302,.0207723,.0222983,.0218173,.0206618,.0214347,.0208541,.019973,.0237457,.0241025,.0186189,.0206098,.0209475,.0253772,.022058,4.34e-06,4.48e-06,4.21e-06,5.47e-06,5.67e-06,5.33e-06,.017993,.0206546,.0198753,.0004736,.0004966,,,,,, +.0166964,.0299388,.0208938,.0166778,.0299727,.021074,.0162386,.0262211,.0167821,.0167428,.0303776,.0217919,.0146099,.0254383,.0168224,.0075113,.025614,3.64e-06,3.76e-06,3.53e-06,4.61e-06,4.78e-06,4.49e-06,.017993,.0206546,.0198753,.0004371,.0004583,,,,,, +.0225149,.0088279,.0111192,.0224152,.0089187,.0111686,.0233993,.0171256,.0204085,.0200832,.0131761,.0173285,.0214349,.0163064,.0204778,.0216259,.0155451,3.05e-06,3.15e-06,2.96e-06,3.88e-06,4.02e-06,3.78e-06,.017993,.0206546,.0198753,.0004035,.000423,,,,,, +.0197268,.0098573,.0129679,.0196816,.0099643,.0130003,.0205494,.017301,.021275,.0172224,.0142327,.0192232,.0181442,.0163672,.0213708,.0305007,.0097599,2.56e-06,2.64e-06,2.48e-06,3.27e-06,3.39e-06,3.18e-06,.017993,.0206546,.0198753,.0003724,.0003904,,,,,, +.0251093,.0169877,.017058,.0250292,.0170904,.0171478,.0253514,.0197126,.0200972,.0235762,.0199072,.0213047,.0230891,.0187792,.0201699,.0294964,.0138316,2.14e-06,2.21e-06,2.08e-06,2.75e-06,2.85e-06,2.68e-06,.017993,.0206546,.0198753,.0003437,.0003604,,,,,, +.0102939,.0185643,.0136574,.0102954,.0185956,.0137609,.0107471,.0224621,.0180641,.008459,.0219611,.0186675,.0082324,.0214363,.0181395,.0111789,.016782,1.80e-06,1.85e-06,1.74e-06,2.32e-06,2.40e-06,2.26e-06,.017993,.0206546,.0198753,.0003172,.0003326,,,,,, +.0371635,.0148159,.0200306,.0370272,.0149881,.0200958,.0372791,.0169212,.022318,.0355415,.0178678,.0243836,.0346923,.0159012,.022405,.0352418,.0146963,1.51e-06,1.55e-06,1.46e-06,1.95e-06,2.02e-06,1.90e-06,.017993,.0206546,.0198753,.0002928,.000307,,,,,, +.0329035,.0256919,.0269775,.0328562,.0258623,.0270844,.0323,.0211053,.021763,.0323608,.0269502,.0288964,.0293435,.0199627,.0218662,.0453169,.0219867,1.26e-06,1.30e-06,1.22e-06,1.64e-06,1.70e-06,1.60e-06,.017993,.0206546,.0198753,.0002702,.0002833,,,,,, +.0175841,.0109321,.0130581,.017555,.0110294,.0130963,.0183755,.0179929,.0209435,.0147708,.0158331,.0200841,.0151864,.0167956,.0210526,.0343512,.0213019,1.06e-06,1.09e-06,1.03e-06,1.39e-06,1.44e-06,1.35e-06,.017993,.0206546,.0198753,.0002494,.0002615,,,,,, +.0231837,.0206712,.0215867,.0231778,.020805,.0216642,.0231369,.0205035,.0213443,.0216029,.0235707,.0258312,.0197278,.0192282,.0214622,.0264961,.0183737,8.87e-07,9.15e-07,8.60e-07,1.17e-06,1.21e-06,1.14e-06,.017993,.0206546,.0198753,.0002302,.0002414,,,,,, +.0478456,.0302042,.0318409,.047697,.0304105,.0319928,.0466501,.021283,.0217609,.0480865,.0303495,.0321734,.0436522,.0200803,.0218415,.0478389,.0257753,7.43e-07,7.67e-07,7.21e-07,9.82e-07,1.02e-06,9.57e-07,.017993,.0206546,.0198753,.0002125,.0002228,,,,,, +.0134735,.0150288,.0051387,.0133156,.0149697,.0053058,.0142854,.0228803,.0140899,.011004,.0198226,.0121471,.0118401,.021759,.0140954,.0218153,.0166693,6.23e-07,6.43e-07,6.04e-07,8.27e-07,8.57e-07,8.06e-07,.017993,.0206546,.0198753,.0001961,.0002056,,,,,, +.0117675,.0171662,.0125747,.0117446,.0171953,.0126778,.0123041,.0219279,.0179548,.0092925,.0216689,.0191465,.008818,.0205701,.0180409,-.0038577,.0067066,5.22e-07,5.39e-07,5.06e-07,6.97e-07,7.22e-07,6.79e-07,.017993,.0206546,.0198753,.000181,.0001898,,,,,, +.0168405,.0176618,.013851,.0167841,.0177074,.0139609,.0172437,.0215266,.0182178,.0145031,.0219802,.0201469,.0137103,.0201443,.0182998,.0075227,.0137997,4.38e-07,4.52e-07,4.24e-07,5.87e-07,6.08e-07,5.72e-07,.017993,.0206546,.0198753,.0001671,.0001752,,,,,, +.0038277,.0110742,.0097856,.0038819,.0111158,.0098216,.0048924,.0198479,.0196266,.0001787,.0173113,.0187748,.0006016,.0182908,.0197603,.0048979,.0141053,3.67e-07,3.79e-07,3.56e-07,4.94e-07,5.12e-07,4.81e-07,.017993,.0206546,.0198753,.0001542,.0001617,,,,,, +.0222672,.0127174,.0162343,.0222331,.0128467,.0162722,.0228121,.0177577,.0218282,.0192577,.0179543,.023733,.0184978,.0161946,.0219626,.0218916,.0142841,3.07e-07,3.17e-07,2.98e-07,4.16e-07,4.31e-07,4.05e-07,.017993,.0206546,.0198753,.0001423,.0001492,,,,,, +.0145178,.0212164,.0137079,.014457,.0212256,.0138563,.014758,.0236732,.0165367,.0123504,.0253578,.0198131,.0109737,.0221696,.0166055,.012645,.0160804,2.58e-07,2.66e-07,2.50e-07,3.51e-07,3.63e-07,3.41e-07,.017993,.0206546,.0198753,.0001314,.0001377,,,,,, +.0001037,.01006,.0062556,.0001409,.0100576,.0063083,.0013657,.0205615,.0180768,-.0039597,.0170619,.0163556,-.0031693,.0188924,.0181973,-.0054252,.0121337,2.16e-07,2.23e-07,2.09e-07,2.95e-07,3.06e-07,2.88e-07,.017993,.0206546,.0198753,.0001212,.0001271,,,,,, +.0278626,.0166797,.0154625,.0277276,.0167632,.0155751,.0281202,.0198629,.0190443,.0253616,.0213529,.0222137,.0240366,.0182845,.0191266,.0146551,.0096111,1.81e-07,1.87e-07,1.76e-07,2.49e-07,2.58e-07,2.42e-07,.017993,.0206546,.0198753,.0001119,.0001173,,,,,, +.0200701,.0178867,.0150175,.0199993,.0179488,.0151265,.0203849,.0211145,.018658,.0173967,.022785,.0221285,.0159493,.019433,.0187561,.0209873,.013162,1.52e-07,1.57e-07,1.47e-07,2.09e-07,2.17e-07,2.04e-07,.017993,.0206546,.0198753,.0001033,.0001083,,,,,, +.0135912,.0161049,.0157796,.0136144,.0161919,.0158383,.0140835,.0202714,.020427,.0103678,.0217114,.0238805,.0089485,.0184247,.0205737,.015036,.0166829,1.27e-07,1.31e-07,1.23e-07,1.76e-07,1.83e-07,1.72e-07,.017993,.0206546,.0198753,.0000953,.0000999,,,,,, +.0069156,.0109608,.0089604,.0069239,.0109928,.0090137,.0079612,.0198552,.018955,.0028472,.0179986,.0190904,.0028456,.0179949,.0190867,.0091651,.0154689,1.07e-07,1.10e-07,1.03e-07,1.49e-07,1.54e-07,1.45e-07,.017993,.0206546,.0198753,.000088,.0000922,,,,,, +.0103361,.0158699,.0125043,.0103363,.0159096,.0125879,.0109687,.0213132,.0186319,.0068879,.0219476,.0213064,.0057943,.0194148,.0187582,.0031334,.0128605,8.93e-08,9.22e-08,8.66e-08,1.25e-07,1.30e-07,1.22e-07,.017993,.0206546,.0198753,.0000812,.0000851,,,,,, +.0113839,.014007,.0164222,.0114569,.014122,.016441,.0120115,.0190428,.0220046,.0075665,.0204645,.025704,.0060587,.0169726,.0221908,.0126426,.0178327,7.49e-08,7.73e-08,7.26e-08,1.05e-07,1.09e-07,1.03e-07,.017993,.0206546,.0198753,.0000749,.0000786,.03636742,.00517273,.00598955,.03636742,.00517273,.00598955 +-.0027276,.0058189,.0039237,-.0026716,.0058207,.0039423,-.0011282,.0190754,.0188192,-.0079303,.0146405,.0165778,-.0069024,.0170211,.018973,.0048935,.0154488,6.28e-08,6.48e-08,6.09e-08,8.87e-08,9.19e-08,8.64e-08,.017993,.0206546,.0198753,.0000692,.0000725,-.00793034,.01464049,.01657784,-.00690238,.01702106,.01897295 +.0055591,.003654,.0042742,.0055527,.003699,.0042925,.0215153,.0199098,.0198089,.0305392,.0268776,.0300643,.0268477,.0183287,.0214632,.0067016,.0094511,5.26e-08,5.43e-08,5.10e-08,7.47e-08,7.74e-08,7.28e-08,.017993,.0206546,.0198753,.0000638,.0000669,.0160739,.02012147,.02199483,.0171472,.01792572,.01944241 +.003148,.0036684,.0030844,.0031732,.0037017,.0031332,.016877,.0208053,.0196935,.0107513,.0340083,.0271967,.0065679,.0243204,.0174497,.0125682,.0106929,4.41e-08,4.55e-08,4.28e-08,6.29e-08,6.52e-08,6.13e-08,.017993,.0206546,.0198753,.0000589,.0000618,.01659306,.02444523,.02489617,.01143598,.01863869,.01945406 +.0027846,.0028236,.0027936,.0028279,.0028789,.0028363,.0181704,.020565,.0199521,-.0152357,.0098945,.0187777,-.013672,.0135156,.0224209,.0081393,.0088935,3.69e-08,3.81e-08,3.58e-08,5.30e-08,5.49e-08,5.16e-08,.017993,.0206546,.0198753,.0000544,.000057,.0204207,.02664834,.02723967,.01290555,.0183615,.01965279 +.0023953,.0024608,.0022628,.0024328,.0025122,.0023157,.0179842,.020685,.0198382,.0103497,.025907,.0243547,.0079006,.0202352,.0186483,.0080913,.0087836,3.10e-08,3.20e-08,3.00e-08,4.46e-08,4.62e-08,4.35e-08,.017993,.0206546,.0198753,.0000502,.0000526,.02222549,.02837583,.02855637,.01247984,.01842648,.01954222 +.0019551,.0020296,.0019242,.0020029,.0020858,.0019753,.0179749,.0206433,.0198897,.0226094,.031164,.0267729,.0186704,.0220421,.0175953,.0075642,.0077824,2.60e-08,2.68e-08,2.52e-08,3.76e-08,3.89e-08,3.66e-08,.017993,.0206546,.0198753,.0000463,.0000486,.0234474,.02945931,.02960303,.01236002,.01833018,.01958445 +.0016649,.001712,.0016036,.0017097,.0017663,.0016555,.0180055,.0206582,.0198699,.0027905,.0119682,.0254323,.002643,.0116265,.0250884,.0070135,.0073465,2.18e-08,2.25e-08,2.11e-08,3.17e-08,3.28e-08,3.08e-08,.017993,.0206546,.0198753,.0000428,.0000448,.02436736,.03030084,.03034035,.01225167,.01829402,.01955606 +.0013845,.0014315,.001347,.0014305,.0014846,.0013967,.0179868,.0206534,.0198771,.0115349,.0246337,.0229099,.0093956,.0196794,.0179253,.0063661,.0067022,1.82e-08,1.88e-08,1.77e-08,2.67e-08,2.76e-08,2.60e-08,.017993,.0206546,.0198753,.0000395,.0000414,.02500241,.03094387,.03094928,.01209588,.01823582,.01955612 +.0011646,.0012008,.0011281,.0012082,.0012511,.0011756,.0179957,.0206549,.0198747,.0038793,.0160966,.018469,.0039349,.0162255,.0185986,.0059448,.0062251,1.53e-08,1.58e-08,1.48e-08,2.24e-08,2.33e-08,2.19e-08,.017993,.0206546,.0198753,.0000364,.0000382,.02552945,.03148638,.03146069,.0119706,.01818504,.01954545 +.0009746,.0010062,.0009458,.0010163,.0010534,.0009902,.017992,.0206545,.0198754,.0160767,.0188134,.025874,.0143691,.014859,.0218955,.0054623,.0057248,1.28e-08,1.32e-08,1.24e-08,1.89e-08,1.96e-08,1.84e-08,.017993,.0206546,.0198753,.0000336,.0000353,.02596239,.03196261,.03192055,.0118304,.01813191,.01953856 +.0008174,.0008434,.0007926,.0008563,.0008873,.0008339,.0179934,.0206546,.0198752,-.0035794,.0178074,.0205743,-.0040448,.0167296,.01949,.0050485,.0052949,1.07e-08,1.11e-08,1.04e-08,1.59e-08,1.65e-08,1.55e-08,.017993,.0206546,.0198753,.000031,.0000325,.02635096,.03240093,.03234732,.01169658,.01807946,.01953042 +.0006849,.0007069,.0006644,.000721,.0007472,.0007023,.0179929,.0206546,.0198753,.0124855,.0231741,.0234209,.0103833,.0183059,.0185229,.0046559,.0048813,9.00e-09,9.29e-09,8.73e-09,1.34e-08,1.39e-08,1.31e-08,.017993,.0206546,.0198753,.0000286,.00003,.02670838,.032816,.03275489,.01156026,.01802684,.01952266 +.0005741,.0005925,.0005568,.0006073,.0006293,.0005915,.0179931,.0206546,.0198753,.0180613,.0164314,.0240679,.0168902,.0137195,.0213394,.0043002,.0045082,7.54e-09,7.78e-09,7.32e-09,1.13e-08,1.17e-08,1.10e-08,.017993,.0206546,.0198753,.0000264,.0000277,.02704873,.03321726,.03315077,.01142485,.01797425,.01951479 +.0004812,.0004966,.0004667,.0005114,.00053,.0004981,.017993,.0206546,.0198753,.0087128,.0137087,.020188,.0086932,.0136633,.0201423,.0039671,.0041595,6.32e-09,6.52e-09,6.13e-09,9.51e-09,9.86e-09,9.26e-09,.017993,.0206546,.0198753,.0000244,.0000256,.02737831,.03361022,.03353969,.01128913,.01792166,.01950695 +.0004033,.0004162,.0003912,.0004307,.0004463,.0004195,.017993,.0206546,.0198753,-.0157479,.0118112,.0128117,-.0139929,.0158755,.0169009,.0036624,.0038398,5.30e-09,5.47e-09,5.14e-09,8.01e-09,8.30e-09,7.80e-09,.017993,.0206546,.0198753,.0000225,.0000236,.0277016,.0339982,.03392442,.01115351,.01786907,.0194991 +.000338,.0003489,.0003279,.0003627,.0003759,.0003533,.017993,.0206546,.0198753,-.0025344,.0154519,.018825,-.0025207,.0154837,.018857,.0033799,.0035436,4.44e-09,4.58e-09,4.31e-09,6.75e-09,6.99e-09,6.57e-09,.017993,.0206546,.0198753,.0000208,.0000218,.02802107,.03438319,.03430664,.01101786,.01781647,.01949126 diff --git a/statsmodels/tsa/statespace/tests/results/results_varmax.py b/statsmodels/tsa/statespace/tests/results/results_varmax.py new file mode 100644 index 0000000..20337f0 --- /dev/null +++ b/statsmodels/tsa/statespace/tests/results/results_varmax.py @@ -0,0 +1,234 @@ +""" +Results for VARMAX tests + +Results from Stata using script `test_varmax_stata.do`. +See also Stata time series documentation, in particular `dfactor`. + +Data from: + +http://www.jmulti.de/download/datasets/e1.dat + +Author: Chad Fulton +License: Simplified-BSD +""" + +# See http://www.jmulti.de/download/datasets/e1.dat +# 1960:Q1 - 1982Q4 +lutkepohl_data = [ + [180, 451, 415], [179, 465, 421], [185, 485, 434], [192, 493, 448], + [211, 509, 459], [202, 520, 458], [207, 521, 479], [214, 540, 487], + [231, 548, 497], [229, 558, 510], [234, 574, 516], [237, 583, 525], + [206, 591, 529], [250, 599, 538], [259, 610, 546], [263, 627, 555], + [264, 642, 574], [280, 653, 574], [282, 660, 586], [292, 694, 602], + [286, 709, 617], [302, 734, 639], [304, 751, 653], [307, 763, 668], + [317, 766, 679], [314, 779, 686], [306, 808, 697], [304, 785, 688], + [292, 794, 704], [275, 799, 699], [273, 799, 709], [301, 812, 715], + [280, 837, 724], [289, 853, 746], [303, 876, 758], [322, 897, 779], + [315, 922, 798], [339, 949, 816], [364, 979, 837], [371, 988, 858], + [375, 1025, 881], [432, 1063, 905], [453, 1104, 934], [460, 1131, 968], + [475, 1137, 983], [496, 1178, 1013], [494, 1211, 1034], [498, 1256, 1064], + [526, 1290, 1101], [519, 1314, 1102], [516, 1346, 1145], [531, 1385, 1173], + [573, 1416, 1216], [551, 1436, 1229], [538, 1462, 1242], [532, 1493, 1267], + [558, 1516, 1295], [524, 1557, 1317], [525, 1613, 1355], [519, 1642, 1371], + [526, 1690, 1402], [510, 1759, 1452], [519, 1756, 1485], [538, 1780, 1516], + [549, 1807, 1549], [570, 1831, 1567], [559, 1873, 1588], [584, 1897, 1631], + [611, 1910, 1650], [597, 1943, 1685], [603, 1976, 1722], [619, 2018, 1752], + [635, 2040, 1774], [658, 2070, 1807], [675, 2121, 1831], [700, 2132, 1842], + [692, 2199, 1890], [759, 2253, 1958], [782, 2276, 1948], [816, 2318, 1994], + [844, 2369, 2061], [830, 2423, 2056], [853, 2457, 2102], [852, 2470, 2121], + [833, 2521, 2145], [860, 2545, 2164], [870, 2580, 2206], [830, 2620, 2225], + [801, 2639, 2235], [824, 2618, 2237], [831, 2628, 2250], [830, 2651, 2271], +] + +lutkepohl_var1 = { + 'params': [ + -0.25034303, 0.28759168, 0.81626475, # Phi, row 1 + 0.023383, 0.19048278, 0.66502259, # Phi, row 2 + -0.01492992, 0.53796097, 0.28114733, # Phi, row 3 + # .00199294, # Covariance, lower triangle + # .00006096, .00012986, + # .00018523, .00011695, .00016188, + # Note: the following are the Cholesky of the covariance + # matrix defined just above + 0.04464236, # Cholesky, lower triangle + 0.00136552, 0.01354125, + 0.0029089 , 0.00834324, 0.00915471 + ], + 'var_oim': [ + .01319669, .19413864, .2386643, + .0012437, .01829378, .02234399, + .00107749, .01584584, .01938099, + 1.061e-07, + 4.981e-09, 4.549e-09, + 9.211e-10, 5.825e-10, 7.016e-10], + 'loglike': 587.8481018831948, + 'aic': -1145.696, + 'bic': -1110.934, +} + +lutkepohl_var1_diag = { + 'params': [ + -0.24817904, 0.29283012, 0.80794938, # Phi, row 1 + 0.02282985, 0.19672157, 0.66329776, # Phi, row 2 + -0.01522531, 0.53500874, 0.28859213, # Phi, row 3 + 0.00199106, 0.00018529, 0.00016179 # Variances, diagonal + ], + 'var_oim': [ + .01314245, .1902972, .23400828, + .00124336, .01840132, .02229946, + .00107322, .01558391, .01909303, + 1.057e-07, 9.233e-10, 7.011e-10 + ], + 'loglike': 562.8168476509002, + 'aic': -1101.634, + 'bic': -1073.824 +} + +lutkepohl_var1_diag_meas = { + 'params': [ + -0.24817904, 0.29283012, 0.80794938, # Phi, row 1 + 0.02282985, 0.19672157, 0.66329776, # Phi, row 2 + -0.01522531, 0.53500874, 0.28859213, # Phi, row 3 + 0.00199106, 0.00018529, 0.00016179, # Variances, diagonal + 0, 0, 0 # Measurement error variances + ], + 'var_oim': [ + .01314245, .1902972, .23400828, + .00124336, .01840132, .02229946, + .00107322, .01558391, .01909303, + 1.057e-07, 9.233e-10, 7.011e-10, + None, None, None + ], + 'loglike': 562.8168476509002, + 'aic': None, + 'bic': None +} + +lutkepohl_var1_obs_intercept = { + 'params': [ + -.24762, .25961003, .75992623, # Phi, row 1 + .03186854, -.07271862, .23697765, # Phi, row 2 + -.0053055, .2362571, -.19438311, # Phi, row 3 + .00199116, .00013515, .00009937 # Variances, diagonal + ], + 'obs_intercept': [.01799302, .02065458, .01987525], # Intercepts + 'var_oim': [ + .01317874, .2311403, .33481866, + .00090084, .0157839, .0229119, + .00065737, .01149729, .01661236, + # .00001802, 1.818e-06, 1.086e-06, # Intercept parameters + 1.057e-07, 4.869e-10, 2.630e-10], + 'loglike': 593.5252693885262, + 'aic': -1101.634, + 'bic': -1073.824 +} + +lutkepohl_var1_exog = { + 'params': [ + -.25549409, .31149462, .92674046, # Phi, row 1 + .02935715, .13699757, .5059042, # Phi, row 2 + -.00540021, .4598014, .06065565, # Phi, row 3 + -.00007533, .00012771, .00018224, # exog + # .00200617, # Covariance, lower triangle + # .00007053, .00017216, + # .00013934, .00010021, .00013833 + # Note: the following are the Cholesky of the covariance + # matrix defined just above + .04479029, # Cholesky, lower triangle + .00157467, .01302614, + .00311094, .00731692, .00866687 + ], + 'var_oim': [ + .01350243, .20429977, .29684366, # Phi, row 1 + .00115871, .01753203, .02547371, # Phi, row 2 + .000931, .01408662, .02046759, # Phi, row 3 + 3.720e-08, 3.192e-09, 2.565e-09 # exog + ], + 'loglike': 587.4157014188437, + 'aic': None, + 'bic': None +} + +lutkepohl_var1_exog2 = { + 'params': [ + -.2552236, .21722691, .81525457, # Phi, row 1 + .02998355, -.08130972, .24772266, # Phi, row 2 + -.00476998, .24016112, -.19910237, # Phi, row 3 + .00811096, -.00015244, # exog, y1 + .01878355, -.00005086, # exog, y2 + .01889825, 2.577e-06, # exog, y3 + # .00199918, # Covariance, lower triangle + # .00005435, .00013469, + # .00012306, .00006251, .00010039 + # Note: the following are the Cholesky of the covariance + # matrix defined just above + .04471219, # Cholesky, lower triangle + .00121555, .01102644, + .00275227, .00536569, .00800152 + ], + 'var_oim': None, + # 'loglike': 600.9801664685759, # From Stata + 'loglike': 600.65449034396283, # From VARMAX (regression test) + 'aic': None, + 'bic': None +} + +lutkepohl_var2 = { + 'params': [ + -.25244981, .62528114, # Phi_1, row 1 + -.13011679, .58173748, # Phi_1, row 2 + .05369178, .35716349, # Phi_2, row 1 + .03861472, .43812606, # Phi_2, row 2 + # .00197786, # Covariance, lower triangle + # .00008091, .00018269 + 0.04447314, # Covariance cholesky, lower triangle + 0.0018193, 0.01339329 + ], + 'var_oim': [ + .01315844, .11805816, # Phi_1, row 1 + .01321036, .11300702, # Phi_1, row 2 + .00122666, .01064478, # Phi_2, row 1 + .0012571, .0106738, # Phi_2, row 2 + 1.048e-07, # Covariance, lower triangle + 4.994e-09, 8.940e-10 + ], + 'loglike': 343.3149718445623, + 'aic': -664.6299, + 'bic': -639.1376 +} + +fred_varma11 = { + 'params': [ + .80580312, 0, # Phi_1, row 1 + .17348681, -.48093755, # Phi_1, row 2 + -.51890703, 0, # Theta_1, row 1 + 0, 0, # Theta_1, row 2 + .0000582, .00003815, # Variances + ], + 'var_oim': [ + .00272999, 0, # Phi_1, row 1 + .00164152, .00248576, # Phi_1, row 2 + .0049259, 0, # Theta_1, row 1 + 0, 0, # Theta_1, row 2 + 1.529e-11, 6.572e-12, # Variances + ], + 'loglike': 3156.056423235071, + 'aic': -6300.113, + 'bic': -6275.551 +} + +fred_vma1 = { + 'params': [ + .24803941, 0, # Theta_1, row 1 + 0, 0, # Theta_1, row 2 + .00006514, .00004621, # Variances + ], + 'var_oim': [ + .00154773, 0, # Theta_1, row 1 + 0, 0, # Theta_1, row 2 + 1.916e-11, 9.639e-12, # Variances + ], + 'loglike': 3088.909619417645, + 'aic': -6171.819, + 'bic': -6159.539 +} diff --git a/statsmodels/tsa/statespace/tests/results/results_varmax_stata.csv b/statsmodels/tsa/statespace/tests/results/results_varmax_stata.csv new file mode 100644 index 0000000..8594465 --- /dev/null +++ b/statsmodels/tsa/statespace/tests/results/results_varmax_stata.csv @@ -0,0 +1,450 @@ +predict_varma11_1,predict_varma11_2,predict_vma1_1,predict_vma1_2,dyn_predict_varma11_1,dyn_predict_varma11_2,dyn_predict_vma1_1,dyn_predict_vma1_2 +,,,,,,, +0,0,0,0,0,0,0,0 +.001557,-.001747,.0008617,0,.001557,-.001747,.0008617,0 +.0022958,.0008494,.0009971,0,.0022958,.0008494,.0009971,0 +.0040293,.0004974,.0021633,0,.0040293,.0004974,.0021633,0 +.0017344,-.0002099,-.0008367,0,.0017344,-.0002099,-.0008367,0 +.0012469,-.0009761,.0005076,0,.0012469,-.0009761,.0005076,0 +.0002996,.0009761,-.000426,0,.0002996,.0009761,-.000426,0 +.0029211,.0004861,.0024964,0,.0029211,.0004861,.0024964,0 +.0028885,.0008301,.0005676,0,.0028885,.0008301,.0005676,0 +.0049022,.0008749,.0028016,0,.0049022,.0008749,.0028016,0 +.0052377,.001629,.0016341,0,.0052377,.001629,.0016341,0 +.00605,.0031981,.0024755,0,.00605,.0031981,.0024755,0 +.0041315,.002975,.0002437,0,.0041315,.002975,.0002437,0 +.0060785,-.0035364,.0033413,0,.0060785,-.0035364,.0033413,0 +.0025022,-.0003943,-.0013925,0,.0025022,-.0003943,-.0013925,0 +-.0000102,.0003861,-.0007859,0,-.0000102,.0003861,-.0007859,0 +.0009767,.001774,.0010439,0,.0009767,.001774,.0010439,0 +-.0004751,-.0005938,-.0011079,0,-.0004751,-.0005938,-.0011079,0 +.0004085,.0003961,.0008411,0,.0004085,.0003961,.0008411,0 +-.0017576,-7.87e-06,-.0019114,0,-.0017576,-7.87e-06,-.0019114,0 +.0007302,-.0001901,.0018939,0,.0007302,-.0001901,.0018939,0 +.0020118,.0021705,.000942,0,.0020118,.0021705,.000942,0 +.0020192,.0005898,.0006096,0,.0020192,.0005898,.0006096,0 +.000398,-.0003929,-.000713,0,.000398,-.0003929,-.000713,0 +-.0030649,-.0007922,-.0026514,0,-.0030649,-.0007922,-.0026514,0 +-.0035713,-8.87e-06,-.0010549,0,-.0035713,-8.87e-06,-.0010549,0 +-.0028487,-.000602,-.0005991,0,-.0028487,-.000602,-.0005991,0 +-.0034798,.0096247,-.0015819,0,-.0034798,.0096247,-.0015819,0 +-.0008032,-.0090369,.0012591,0,-.0008032,-.0090369,.0012591,0 +-.0007506,.000993,-.0006009,0,-.0007506,.000993,-.0006009,0 +-.0020643,.0001851,-.0012989,0,-.0020643,.0001851,-.0012989,0 +-.0041107,-.0030359,-.0023057,0,-.0041107,-.0030359,-.0023057,0 +-.0021331,.0023987,.0005719,0,-.0021331,.0023987,.0005719,0 +-.003836,-.0016503,-.0025013,0,-.003836,-.0016503,-.0025013,0 +-.0117522,.0001467,-.0078191,0,-.0117522,.0001467,-.0078191,0 +-.0202734,-.0061304,-.0103158,0,-.0202734,-.0061304,-.0103158,0 +-.016925,-.0026478,-.0029788,0,-.016925,-.0026478,-.0029788,0 +-.0180755,-.0019247,-.0072955,0,-.0180755,-.0019247,-.0072955,0 +-.0137415,-.0013998,-.0019617,0,-.0137415,-.0013998,-.0019617,0 +-.0083318,-.0031991,-.000552,0,-.0083318,-.0031991,-.000552,0 +-.0051271,-.000486,-.0005579,0,-.0051271,-.000486,-.0005579,0 +-.0002563,-.0010062,.0022169,0,-.0002563,-.0010062,.0022169,0 +.0038297,-.0000513,.0028761,0,.0038297,-.0000513,.0028761,0 +.0039483,-.0024623,.000982,0,.0039483,-.0024623,.000982,0 +.0063164,.0013707,.0034461,0,.0063164,.0013707,.0034461,0 +.0044306,-.0005097,.0001421,0,.0044306,-.0005097,.0001421,0 +.0026824,.0002318,.0002961,0,.0026824,.0002318,.0002961,0 +.0040607,-.0019887,.0022339,0,.0040607,-.0019887,.0022339,0 +.0055024,.0008582,.0023813,0,.0055024,.0008582,.0023813,0 +.0065812,.0010612,.0026307,0,.0065812,.0010612,.0026307,0 +.003415,.0023868,-.0006525,0,.003415,.0023868,-.0006525,0 +.0028805,.0079025,.0011201,0,.0028805,.0079025,.0011201,0 +.0022313,-.0079817,.000359,0,.0022313,-.0079817,.000359,0 +.0007898,.0009723,-.0004072,0,.0007898,.0009723,-.0004072,0 +.0018792,-.0003063,.0013714,0,.0018792,-.0003063,.0013714,0 +.0020723,.0018583,.0006084,0,.0020723,.0018583,.0006084,0 +.0010753,1.08e-19,-.0001509,0,.0010753,1.08e-19,-.0001509,0 +-.000173,.0019567,-.0005945,0,-.000173,.0019567,-.0005945,0 +.0028229,.0005605,.0026657,0,.0028229,.0005605,.0026657,0 +.0039894,.0039313,.0015214,0,.0039894,.0039313,.0015214,0 +.0006302,.0051942,-.0016222,0,.0006302,.0051942,-.0016222,0 +.0042695,-.0072834,.0038108,0,.0042695,-.0072834,.0038108,0 +.0057531,.0009443,.0021132,0,.0057531,.0009443,.0021132,0 +.0050871,.0000791,.001293,0,.0050871,.0000791,.001293,0 +.0040324,-.0003468,.0008834,0,.0040324,-.0003468,.0008834,0 +.0034784,.0008381,.0009792,0,.0034784,.0008381,.0009792,0 +.0014591,.0009798,-.0005419,0,.0014591,.0009798,-.0005419,0 +.0014485,.000418,.0007321,0,.0014485,.000418,.0007321,0 +.0004062,-.0002089,-.0004803,0,.0004062,-.0002089,-.0004803,0 +.0002108,-.002375,.0001191,0,.0002108,-.002375,.0001191,0 +-.0005828,.0007675,-.000628,0,-.0005828,.0007675,-.000628,0 +.0021128,.0026495,.0022439,0,.0021128,.0026495,.0022439,0 +-.0041043,.0076902,-.0050529,0,-.0041043,.0076902,-.0050529,0 +-.0021298,-.0048458,.0012533,0,-.0021298,-.0048458,.0012533,0 +.0027179,-.0048665,.0029944,0,.0027179,-.0048665,.0029944,0 +.0055236,.0036763,.0028135,0,.0055236,.0036763,.0028135,0 +.0028662,1.08e-19,-.0006978,0,.0028662,1.08e-19,-.0006978,0 +.0031839,-.0013491,.0016399,0,.0031839,-.0013491,.0016399,0 +.0002957,-.0008203,-.0015795,0,.0002957,-.0008203,-.0015795,0 +.0008325,.0015967,.0009789,0,.0008325,.0015967,.0009789,0 +.0011094,.0004097,.0003429,0,.0011094,.0004097,.0003429,0 +.0019258,.0008164,.0010822,0,.0019258,.0008164,.0010822,0 +.0030126,.0000314,.0014722,0,.0030126,.0000314,.0014722,0 +.0028977,.001993,.0007885,0,.0028977,.001993,.0007885,0 +-.0018441,-.0008354,-.0030899,0,-.0018441,-.0008354,-.0030899,0 +-.0002842,-.0007822,.001348,0,-.0002842,-.0007822,.001348,0 +.0001883,-.000983,-.0000441,0,.0001883,-.000983,-.0000441,0 +-.0049803,.0125808,-.0043793,0,-.0049803,.0125808,-.0043793,0 +.0001351,-.0092452,.0034373,0,.0001351,-.0092452,.0034373,0 +-.0002684,-.0002047,-.0011453,0,-.0002684,-.0002047,-.0011453,0 +-.0008175,-.0004101,-.0003023,0,-.0008175,-.0004101,-.0003023,0 +-.0052173,-.0017006,-.004069,0,-.0052173,-.0017006,-.004069,0 +-.0027073,0,.0010093,0,-.0027073,0,.0010093,0 +-.0010598,-.0009892,.000048,0,-.0010598,-.0009892,.000048,0 +-.0022793,.0001521,-.001507,0,-.0022793,.0001521,-.001507,0 +-.000836,.0002097,.0006735,0,-.000836,.0002097,.0006735,0 +.0002583,.0016194,.0004313,0,.0002583,.0016194,.0004313,0 +-.0009048,-.001829,-.0010051,0,-.0009048,-.001829,-.0010051,0 +-.0032583,.0007183,-.0021618,0,-.0032583,.0007183,-.0021618,0 +-.0087837,-.0030823,-.0055961,0,-.0087837,-.0030823,-.0055961,0 +-.0144204,.0001164,-.0071386,0,-.0144204,.0001164,-.0071386,0 +-.0127334,-.0019497,-.0027687,0,-.0127334,-.0019497,-.0027687,0 +-.0104175,-.0010755,-.0026073,0,-.0104175,-.0010755,-.0026073,0 +-.0042574,-.0042007,.0016395,0,-.0042574,-.0042007,.0016395,0 +.0015858,.0010788,.0028743,0,.0015858,.0010788,.0028743,0 +.0056825,.0005157,.0034885,0,.0056825,.0005157,.0034885,0 +.0073625,.0014622,.0029508,0,.0073625,.0014622,.0029508,0 +.0038205,-.0024047,-.0007319,0,.0038205,-.0024047,-.0007319,0 +.0001516,-.0011071,-.0014014,0,.0001516,-.0011071,-.0014014,0 +-.0025043,.0020496,-.0018856,0,-.0025043,.0020496,-.0018856,0 +-.0009291,-.0021867,.000788,0,-.0009291,-.0021867,.000788,0 +-.0001122,-.0009771,.0001244,0,-.0001122,-.0009771,.0001244,0 +.0010488,-.0005284,.0009262,0,.0010488,-.0005284,.0009262,0 +-.0016741,.0010573,-.0021476,0,-.0016741,.0010573,-.0021476,0 +-.0008687,.0012038,.0005327,0,-.0008687,.0012038,.0005327,0 +-.001194,-.0016533,-.0007747,0,-.001194,-.0016533,-.0007747,0 +-.002861,.0034782,-.0017457,0,-.002861,.0034782,-.0017457,0 +-.0048798,-.0020531,-.0025024,0,-.0048798,-.0020531,-.0025024,0 +-.0071226,-.0003407,-.003348,0,-.0071226,-.0003407,-.003348,0 +-.009146,-.0008481,-.0038814,0,-.009146,-.0008481,-.0038814,0 +-.012312,.0193194,-.0055786,0,-.012312,.0193194,-.0055786,0 +.0003902,-.024678,.0072445,0,.0003902,-.024678,.0072445,0 +-.0025695,.0044349,-.0041935,0,-.0025695,.0044349,-.0041935,0 +-.0037308,-.0014498,-.0010326,0,-.0037308,-.0014498,-.0010326,0 +-.0031422,-.0007294,-.0007868,0,-.0031422,-.0007294,-.0007868,0 +-.0028419,-.001961,-.0008522,0,-.0028419,-.001961,-.0008522,0 +-.0022851,-.0004901,-.0004893,0,-.0022851,-.0004901,-.0004893,0 +-.0040405,.0007338,-.0023467,0,-.0040405,.0007338,-.0023467,0 +-.0037407,-.0009942,-.0008394,0,-.0037407,-.0009942,-.0008394,0 +-.0056752,-.0010232,-.0030201,0,-.0056752,-.0010232,-.0030201,0 +-.0050405,-.002502,-.0010627,0,-.0050405,-.002502,-.0010627,0 +-.0043032,-.0010205,-.0011955,0,-.0043032,-.0010205,-.0011955,0 +.0044588,.0003612,.006082,0,.0044588,.0003612,.006082,0 +.0019,-.0002502,-.0018662,0,.0019,-.0002502,-.0018662,0 +.0038693,-.0019137,.0029558,0,.0038693,-.0019137,.0029558,0 +.005268,.0007585,.0020855,0,.005268,.0007585,.0020855,0 +.0067575,-.0011874,.0029616,0,.0067575,-.0011874,.0029616,0 +.0054975,3.09e-06,.0009867,0,.0054975,3.09e-06,.0009867,0 +.0071847,.0002269,.0035006,0,.0071847,.0002269,.0035006,0 +.0060639,.0014124,.001151,0,.0060639,.0014124,.001151,0 +.0085236,-.0003154,.0043633,0,.0085236,-.0003154,.0043633,0 +.0074509,.001831,.0015356,0,.0074509,.001831,.0015356,0 +.0046184,.0004547,.0002693,0,.0046184,.0004547,.0002693,0 +.0031466,.0016396,.0005817,0,.0031466,.0016396,.0005817,0 +.0064609,.0017336,.0040299,0,.0064609,.0017336,.0040299,0 +.0059191,-.0043347,.0012193,0,.0059191,-.0043347,.0012193,0 +.0041644,.0053645,.0006425,0,.0041644,.0053645,.0006425,0 +.0032497,-.0005218,.000782,0,.0032497,-.0005218,.000782,0 +.0016863,.0011802,-.000194,0,.0016863,.0011802,-.000194,0 +.0015986,.0016207,.0006737,0,.0015986,.0016207,.0006737,0 +.0015513,.0004364,.0004569,0,.0015513,.0004364,.0004569,0 +.0004443,.000968,-.0004251,0,.0004443,.000968,-.0004251,0 +-.0012166,-.0008751,-.0011457,0,-.0012166,-.0008751,-.0011457,0 +-.0002688,.0002192,.0005976,0,-.0002688,.0002192,.0005976,0 +-.0001395,.001189,-.0001482,0,-.0001395,.001189,-.0001482,0 +-.0000724,-.001189,.0000368,0,-.0000724,-.001189,.0000368,0 +-.0018545,.0012822,-.00158,0,-.0018545,.0012822,-.00158,0 +-.0027909,.001287,-.001189,0,-.0027909,.001287,-.001189,0 +-.0003497,-.0029204,.0012447,0,-.0003497,-.0029204,.0012447,0 +-.0020147,-.0022975,-.0018936,0,-.0020147,-.0022975,-.0018936,0 +-.0014135,.0009664,.0001515,0,-.0014135,.0009664,.0001515,0 +-.001102,-.0014118,-.0003562,0,-.001102,-.0014118,-.0003562,0 +-.002793,-.0001542,-.001832,0,-.002793,-.0001542,-.001832,0 +-.000707,-.0019261,.0010962,0,-.000707,-.0019261,.0010962,0 +-.0003669,0,-.0002719,0,-.0003669,0,-.0002719,0 +-.0013045,-.0018569,-.0008958,0,-.0013045,-.0018569,-.0008958,0 +.0004372,.0006737,.0011855,0,.0004372,.0006737,.0011855,0 +.0013367,-.0016864,.0006655,0,.0013367,-.0016864,.0006655,0 +.0032667,.0039135,.0020595,0,.0032667,.0039135,.0020595,0 +-.0001404,-.00111,-.0020978,0,-.0001404,-.00111,-.0020978,0 +-.0011799,-.0006694,-.0004367,0,-.0011799,-.0006694,-.0004367,0 +-.0002428,.0025926,.0004278,0,-.0002428,.0025926,.0004278,0 +-.000126,-.0023692,-.0001061,0,-.000126,-.0023692,-.0001061,0 +-.0011752,-.0006711,-.0009332,0,-.0011752,-.0006711,-.0009332,0 +.0005,.0018542,.001191,0,.0005,.0018542,.001191,0 +.0006285,-.00096,.0000236,0,.0006285,-.00096,.0000236,0 +.0006946,.0002228,.0003128,0,.0006946,.0002228,.0003128,0 +.0010961,.001628,.0005584,0,.0010961,.001628,.0005584,0 +.0013025,-.0007394,.0004959,0,.0013025,-.0007394,.0004959,0 +.0028659,.0001441,.0017704,0,.0028659,.0001441,.0017704,0 +.000029,-.0008818,-.0016998,0,.000029,-.0008818,-.0016998,0 +.0032856,-.0027144,.0032492,0,.0032856,-.0027144,.0032492,0 +.0013434,.0021217,-.0011185,0,.0013434,.0021217,-.0011185,0 +.0014197,.0027888,.0009022,0,.0014197,.0027888,.0009022,0 +.0021766,-.0014811,.0010211,0,.0021766,-.0014811,.0010211,0 +.0014883,.0013914,.000057,0,.0014883,.0013914,.000057,0 +.0022032,-.0003092,.001223,0,.0022032,-.0003092,.001223,0 +.001856,.0016055,.0003129,0,.001856,.0016055,.0003129,0 +.002029,.0018219,.0008439,0,.002029,.0018219,.0008439,0 +.0056264,-.0007577,.0037448,0,.0056264,-.0007577,.0037448,0 +.0039647,.0018036,-.0000253,0,.0039647,.0018036,-.0000253,0 +.003445,.0008391,.001206,0,.003445,.0008391,.001206,0 +.0007475,-.0018005,-.0011984,0,.0007475,-.0018005,-.0011984,0 +.000735,.0002099,.0005974,0,.000735,.0002099,.0005974,0 +.0014203,.0029742,.00075,0,.0014203,.0029742,.00075,0 +.0031464,.0002826,.0018971,0,.0031464,.0002826,.0018971,0 +.0009464,-.000415,-.001064,0,.0009464,-.000415,-.001064,0 +.0008345,-.0009639,.0005608,0,.0008345,-.0009639,.0005608,0 +.000776,.0002074,.0001574,0,.000776,.0002074,.0001574,0 +.0004027,.002346,-.000039,0,.0004027,.002346,-.000039,0 +.0012354,-.0005537,.0008971,0,.0012354,-.0005537,.0008971,0 +.002004,-.0003474,.0009558,0,.002004,-.0003474,.0009558,0 +.0013796,.0002054,.0000566,0,.0013796,.0002054,.0000566,0 +.0017327,.0029609,.000865,0,.0017327,.0029609,.000865,0 +.0025857,-.0013261,.0012436,0,.0025857,-.0013261,.0012436,0 +-.0020415,-.0032146,-.0032335,0,-.0020415,-.0032146,-.0032335,0 +-.0020822,.0005503,-.0000822,0,-.0020822,.0005503,-.0000822,0 +-.0010804,1.08e-19,.0000204,0,-.0010804,1.08e-19,.0000204,0 +-.0036511,-.0006972,-.002677,0,-.0036511,-.0006972,-.002677,0 +-.0018946,.0011745,.000664,0,-.0018946,.0011745,.000664,0 +-.0051562,-.0025235,-.0037726,0,-.0051562,-.0025235,-.0037726,0 +-.0002339,.0014765,.0030467,0,-.0002339,.0014765,.0030467,0 +-.0015141,.0003352,-.0019598,0,-.0015141,.0003352,-.0019598,0 +-.0021852,-.0008463,-.0007238,0,-.0021852,-.0008463,-.0007238,0 +-.0014848,.000968,-.0001239,0,-.0014848,.000968,-.0001239,0 +-.0004196,.0025814,.0003341,0,-.0004196,.0025814,.0003341,0 +-.0016241,-.0008504,-.0012988,0,-.0016241,-.0008504,-.0012988,0 +.0026603,.0009323,.0033507,0,.0026603,.0009323,.0033507,0 +.002076,-.0007625,-.0002298,0,.002076,-.0007625,-.0002298,0 +-.0003155,.0003409,-.0011471,0,-.0003155,.0003409,-.0011471,0 +-.0005129,-.0002112,-.0000174,0,-.0005129,-.0002112,-.0000174,0 +-.0002662,-.0011831,4.32e-06,0,-.0002662,-.0011831,4.32e-06,0 +-.0011884,.000548,-.0009091,0,-.0011884,.000548,-.0009091,0 +-.0006167,.001186,.0002255,0,-.0006167,.001186,.0002255,0 +-.0006709,-.0002122,-.0003593,0,-.0006709,-.0002122,-.0003593,0 +-.0031713,-.0005182,-.0023516,0,-.0031713,-.0005182,-.0023516,0 +-.0055733,.0000117,-.0028124,0,-.0055733,.0000117,-.0028124,0 +-.0057827,-.0029429,-.0018016,0,-.0057827,-.0029429,-.0018016,0 +-.0059208,-.0005709,-.0020777,0,-.0059208,-.0005709,-.0020777,0 +-.0052821,-.0001384,-.0013951,0,-.0052821,-.0001384,-.0013951,0 +-.0049678,-.0001458,-.0015792,0,-.0049678,-.0001458,-.0015792,0 +-.0022055,-.0009757,.0007136,0,-.0022055,-.0009757,.0007136,0 +.0007101,.0011214,.0014264,0,.0007101,.0011214,.0014264,0 +.0029449,-.0032157,.0018736,0,.0029449,-.0032157,.0018736,0 +.0018943,.0002214,-.0001482,0,.0018943,.0002214,-.0001482,0 +.0013487,-.0009649,.0003529,0,.0013487,-.0009649,.0003529,0 +.0032468,.0015402,.0021145,0,.0032468,.0015402,.0021145,0 +.000596,-.0006584,-.0014658,0,.000596,-.0006584,-.0014658,0 +-.0007837,-.0006609,-.0005813,0,-.0007837,-.0006609,-.0005813,0 +-.0011376,-.0016251,-.0004878,0,-.0011376,-.0016251,-.0004878,0 +-.0024259,.0000732,-.001466,0,-.0024259,.0000732,-.001466,0 +.0009425,.000148,.0022667,0,.0009425,.000148,.0022667,0 +.0026735,.001321,.0013264,0,.0026735,.001321,.0013264,0 +.0021118,-.0030939,.0002974,0,.0021118,-.0030939,.0002974,0 +.0021791,.0018295,.0008628,0,.0021791,.0018295,.0008628,0 +.001491,.0013951,.0000974,0,.001491,.0013951,.0000974,0 +.0025679,.001085,.0015271,0,.0025679,.001085,.0015271,0 +-.0008219,-.0013028,-.0022414,0,-.0008219,-.0013028,-.0022414,0 +-.0007871,-.0002181,.0002442,0,-.0007871,-.0002181,.0002442,0 +.0006721,.0006534,.0008737,0,.0006721,.0006534,.0008737,0 +.0007081,-.0009601,.0000939,0,.0007081,-.0009601,.0000939,0 +-.0007118,-.0006526,-.0009564,0,-.0007118,-.0006526,-.0009564,0 +.0017851,-.0010433,.0020998,0,.0017851,-.0010433,.0020998,0 +.0009263,-2.17e-19,-.0005208,0,.0009263,-2.17e-19,-.0005208,0 +-.0005945,.0028732,-.0008004,0,-.0005945,.0028732,-.0008004,0 +.0011242,-.007315,.0014372,0,.0011242,-.007315,.0014372,0 +-.0001321,.0042254,-.000975,0,-.0001321,.0042254,-.000975,0 +-.0007858,.0019123,-.0003783,0,-.0007858,.0019123,-.0003783,0 +-.0000489,-.002129,.0004041,0,-.0000489,-.002129,.0004041,0 +-.0003842,-.0013857,-.0004105,0,-.0003842,-.0013857,-.0004105,0 +.0008758,-.0005157,.0010314,0,.0008758,-.0005157,.0010314,0 +.0025928,.0012931,.0015929,0,.0025928,.0012931,.0015929,0 +.0017003,.0002146,-.0000883,0,.0017003,.0002146,-.0000883,0 +.0019442,-.0005209,.00094,0,.0019442,-.0005209,.00094,0 +.0010089,-1.08e-19,-.0002332,0,.0010089,-1.08e-19,-.0002332,0 +.00017,.00563,-.0002478,0,.00017,.00563,-.0002478,0 +.0032545,-.0074016,.0027989,0,.0032545,-.0074016,.0027989,0 +.0034328,.0010546,.0008136,0,.0034328,.0010546,.0008136,0 +.0028227,-.0005222,.0006985,0,.0028227,-.0005222,.0006985,0 +.0014647,-1.08e-19,-.0001733,0,.0014647,-1.08e-19,-.0001733,0 +.0011063,.0002094,.0003424,0,.0011063,.0002094,.0003424,0 +.0016104,.0017786,.0008111,0,.0016104,.0017786,.0008111,0 +.0004906,.0009461,-.0004995,0,.0004906,.0009461,-.0004995,0 +.0023186,-.0010585,.0019084,0,.0023186,-.0010585,.0019084,0 +.0022296,.0006207,.0004141,0,.0022296,.0006207,.0004141,0 +.0035378,.0014397,.0019557,0,.0035378,.0014397,.0019557,0 +.0018358,0,-.0004851,0,.0018358,0,-.0004851,0 +-.000746,.0001248,-.0013482,0,-.000746,.0001248,-.0013482,0 +-.0010694,.0018996,-.0002555,0,-.0010694,.0018996,-.0002555,0 +-.0022677,.0024535,-.0014175,0,-.0022677,.0024535,-.0014175,0 +-.0022094,-.0006244,-.0005412,0,-.0022094,-.0006244,-.0005412,0 +-.0011465,5.42e-20,.0001342,0,-.0011465,5.42e-20,.0001342,0 +-.0037153,-.0007181,-.002731,0,-.0037153,-.0007181,-.002731,0 +.000502,.0003006,.0027782,0,.000502,.0003006,.0027782,0 +.0012956,.0006259,.0002058,0,.0012956,.0006259,.0002058,0 +-.0014017,-.0012541,-.0018441,0,-.0014017,-.0012541,-.0018441,0 +-.00177,-.0017964,-.000444,0,-.00177,-.0017964,-.000444,0 +-.0005705,.0048911,.000411,0,-.0005705,.0048911,.000411,0 +-.0037948,.0122061,-.0031268,0,-.0037948,.0122061,-.0031268,0 +.0011817,-.0170972,.0034997,0,.0011817,-.0170972,.0034997,0 +-.0018345,.0008546,-.0029842,0,-.0018345,.0008546,-.0029842,0 +.0004493,-.0003214,.0019516,0,.0004493,-.0003214,.0019516,0 +.0002331,-.002329,-.0004841,0,.0002331,-.002329,-.0004841,0 +.0018629,-.0001069,.0016261,0,.0018629,-.0001069,.0016261,0 +.0002712,.0007397,-.0010046,0,.0002712,.0007397,-.0010046,0 +.0001407,-.0011603,.0002492,0,.0001407,-.0011603,.0002492,0 +.000421,-.0009471,.000239,0,.000421,-.0009471,.000239,0 +-.0015256,.0012631,-.0015671,0,-.0015256,.0012631,-.0015671,0 +-.0000928,-.0007377,.0009929,0,-.0000928,-.0007377,.0009929,0 +.0006491,-.0018906,.0003565,0,.0006491,-.0018906,.0003565,0 +-.0010593,.0026283,-.0012954,0,-.0010593,.0026283,-.0012954,0 +.001889,-.0008431,.0024297,0,.001889,-.0008431,.0024297,0 +.0027096,-.0012609,.0008924,0,.0027096,-.0012609,.0008924,0 +-.001018,-.0014658,-.0023171,0,-.001018,-.0014658,-.0023171,0 +.0001664,.001572,.0011753,0,.0001664,.001572,.0011753,0 +-.0002608,.0009448,-.0005916,0,-.0002608,.0009448,-.0005916,0 +-.0004829,-.0002102,-.0001537,0,-.0004829,-.0002102,-.0001537,0 +.0025181,.0016742,.0024318,0,.0025181,.0016742,.0024318,0 +.0016508,.0002081,-.0003056,0,.0016508,.0002081,-.0003056,0 +.0008566,-.0023067,.0000758,0,.0008566,-.0023067,.0000758,0 +.0018172,.0008301,.001168,0,.0018172,.0008301,.001168,0 +.0002574,-.0027102,-.0008824,0,.0002574,-.0027102,-.0008824,0 +.0001336,.0011465,.0002189,0,.0001336,.0011465,.0002189,0 +-.0019972,.0010515,-.0018409,0,-.0019972,.0010515,-.0018409,0 +-.003815,-.0005256,-.0019457,0,-.003815,-.0005256,-.0019457,0 +-.0023289,.0032697,.0001807,0,-.0023289,.0032697,.0001807,0 +-.0015581,-.0025348,-.0003471,0,-.0015581,-.0025348,-.0003471,0 +-.005038,-.0013973,-.0035706,0,-.005038,-.0013973,-.0035706,0 +-.0058278,-.0019432,-.0018927,0,-.0058278,-.0019432,-.0018927,0 +.0026642,.0034398,.0053874,0,.0026642,.0034398,.0053874,0 +-.0010923,-.0003334,-.0034759,0,-.0010923,-.0003334,-.0034759,0 +.0004964,-.0005201,.0017814,0,.0004964,-.0005201,.0017814,0 +-.0008056,-.0006429,-.0013611,0,-.0008056,-.0006429,-.0013611,0 +-.000418,-.0011603,.0003376,0,-.000418,-.0011603,.0003376,0 +-.0005722,.0021085,-.0003909,0,-.0005722,.0021085,-.0003909,0 +.0004132,-.0007337,.0007109,0,.0004132,-.0007337,.0007109,0 +-.0015642,.0000875,-.0017141,0,-.0015642,.0000875,-.0017141,0 +-.0008117,5.42e-20,.0004252,0,-.0008117,5.42e-20,.0004252,0 +.0010026,-.0003021,.0011255,0,.0010026,-.0003021,.0011255,0 +-.0019761,-.0003464,-.0024374,0,-.0019761,-.0003464,-.0024374,0 +-.0006674,-.0009466,.000914,0,-.0006674,-.0009466,.000914,0 +.0000112,-.0009441,.0000824,0,.0000112,-.0009441,.0000824,0 +-.0025061,-.001519,-.0021921,0,-.0025061,-.001519,-.0021921,0 +.0019251,.0031108,.0033325,0,.0019251,.0031108,.0033325,0 +.0017109,.0004305,-.0002111,0,.0017109,.0004305,-.0002111,0 +.0015979,.0004294,.0006663,0,.0015979,.0004294,.0006663,0 +.000119,-.0015897,-.0007792,0,.0012876,.0000707,0,0 +-.000294,-.0013726,-.0001143,0,.0010376,.0001894,0,0 +.0005585,.0027477,.0006431,0,.0008361,.0000889,0,0 +.0006446,-.0009457,.0001473,0,.0006737,.0001023,0,0 +-.0010875,.0014635,-.001266,0,.0005429,.0000677,0,0 +-.001278,-.0004316,-.000303,0,.0004375,.0000616,0,0 +-.001737,-.0029727,-.0008533,0,.0003525,.0000463,0,0 +-.0037847,.004086,-.0022812,0,.000284,.0000389,0,0 +-.0016019,.0002189,.0008788,0,.0002289,.0000306,0,0 +-.003375,-.0027098,-.0024172,0,.0001844,.000025,0,0 +-.0035822,-.0011071,-.0009833,0,.0001486,.00002,0,0 +-.0048127,.0064755,-.0023099,0,.0001198,.0000162,0,0 +-.0051072,-.0051363,-.0016834,0,.0000965,.000013,0,0 +-.005284,.0007765,-.0018595,0,.0000778,.0000105,0,0 +-.0042579,-.0009167,-.0008494,0,.0000627,8.44e-06,0,0 +-.0041157,-.0011527,-.0014374,0,.0000505,6.81e-06,0,0 +-.0052123,-.0006715,-.0023034,0,.0000407,5.48e-06,0,0 +-.0054241,-.0004525,-.0017798,0,.0000328,4.42e-06,0,0 +-.004773,-.0047511,-.0012517,0,.0000264,3.56e-06,0,0 +-.0052411,.0018953,-.0020795,0,.0000213,2.87e-06,0,0 +-.0043113,.0002324,-.0008603,0,.0000172,2.31e-06,0,0 +-.0046413,-.000256,-.0018652,0,.0000138,1.86e-06,0,0 +-.0036181,-.0007315,-.0005832,0,.0000111,1.50e-06,0,0 +-.0018775,-.0023927,.0001447,0,8.98e-06,1.21e-06,0,0 +-.0001672,.0016829,.0006618,0,7.23e-06,9.75e-07,0,0 +-.0000868,-.0011949,-.0001642,0,5.83e-06,7.86e-07,0,0 +.0019627,-.0011668,.0017765,0,4.70e-06,6.33e-07,0,0 +.0014183,.0002418,-.0000949,0,3.78e-06,5.10e-07,0,0 +.0027269,.0000179,.0017449,0,3.05e-06,4.11e-07,0,0 +.0045721,.000726,.0022967,0,2.46e-06,3.31e-07,0,0 +.0007983,.0026062,-.0019307,0,1.98e-06,2.67e-07,0,0 +.0015957,-.0004745,.0015003,0,1.60e-06,2.15e-07,0,0 +.0004347,-.0002378,-.0007122,0,1.29e-06,1.73e-07,0,0 +-.0009575,.0016655,-.0008462,0,1.04e-06,1.40e-07,0,0 +.0010795,-.0002387,.0015727,0,8.35e-07,1.13e-07,0,0 +-.0010162,-.0021422,-.001753,0,6.73e-07,9.07e-08,0,0 +.001049,.0033341,.0017977,0,5.42e-07,7.31e-08,0,0 +.0009371,.0014324,-.0001063,0,4.37e-07,5.89e-08,0,0 +.0012701,-.0019128,.0007041,0,3.52e-07,4.75e-08,0,0 +-.001699,.0033596,-.0022133,0,2.84e-07,3.82e-08,0,0 +-.0004873,-.0021602,.0008899,0,2.29e-07,3.08e-08,0,0 +.0013192,-.0002443,.0011384,0,1.84e-07,2.48e-08,0,0 +.0018579,.0043031,.0007321,0,1.48e-07,2.00e-08,0,0 +.0001824,-.0028714,-.0008575,0,1.20e-07,1.61e-08,0,0 +.0024335,-.0021615,.0022348,0,9.64e-08,1.30e-08,0,0 +.0012627,-.001186,-.0005543,0,7.76e-08,1.05e-08,0,0 +.0037443,-.0016727,.0028082,0,6.26e-08,8.44e-09,0,0 +.0015586,.0021251,-.0010288,0,5.04e-08,6.80e-09,0,0 +.0008088,-.0023575,.0002552,0,4.06e-08,5.48e-09,0,0 +.0019539,-.0002467,.0012631,0,3.27e-08,4.41e-09,0,0 +.0006311,.000943,-.0006442,0,2.64e-08,3.56e-09,0,0 +.0018556,.0021014,.0014809,0,2.13e-08,2.87e-09,0,0 +.0028616,-.0023752,.0012742,0,1.71e-08,2.31e-09,0,0 +-.0007951,.0033249,-.0022872,0,1.38e-08,1.86e-09,0,0 +.0018674,-.0009788,.0025385,0,1.11e-08,1.50e-09,0,0 +.0028553,.0023179,.0010011,0,8.96e-09,1.21e-09,0,0 +.0011054,-.0002275,-.0005736,0,7.22e-09,9.74e-10,0,0 +.0035699,.0041752,.0027328,0,5.82e-09,7.85e-10,0,0 +.0018524,.001186,-.0006778,0,4.69e-09,6.32e-10,0,0 +.0017055,-.000736,.0008116,0,3.78e-09,5.09e-10,0,0 +.0027371,-.0000631,.0014,0,3.04e-09,4.10e-10,0,0 +.0032606,.0022959,.0012438,0,2.45e-09,3.31e-10,0,0 +.0005892,.0017082,-.0012619,0,1.98e-09,2.67e-10,0,0 +.0003057,-.001189,.000313,0,1.59e-09,2.15e-10,0,0 +.0012614,.0018558,.0008758,0,1.28e-09,1.73e-10,0,0 +.0010212,.0002217,.0000998,0,1.03e-09,1.39e-10,0,0 +.0001633,-.0002217,-.0003417,0,8.33e-10,1.12e-10,0,0 +.0008175,-.0007458,.0007183,0,6.72e-10,9.06e-11,0,0 +-.0032587,-.0045962,-.0033623,0,5.41e-10,7.30e-11,0,0 +.0027229,-.0008629,.00465,0,4.36e-10,5.88e-11,0,0 +.0032322,.0022746,.0004195,0,3.51e-10,4.74e-11,0,0 +.0013143,.0009579,-.0004178,0,2.83e-10,3.82e-11,0,0 +.0024921,-.0012572,.0016686,0,2.28e-10,3.08e-11,0,0 +-.000154,-.0020467,-.001665,0,1.84e-10,2.48e-11,0,0 +-.0004428,-.0002195,.0000992,0,1.48e-10,2.00e-11,0,0 +.0008576,-.0005112,.0009155,0,1.19e-10,1.61e-11,0,0 +-.0002795,.0007306,-.0008534,0,9.62e-11,1.30e-11,0,0 +.000941,-.000512,.0011506,0,7.75e-11,1.05e-11,0,0 +.0004883,-.002329,-.0002854,0,6.25e-11,8.42e-12,0,0 +.0009751,.0027654,.0006948,0,5.03e-11,6.79e-12,0,0 +-.0002157,.0007323,-.0007963,0,4.06e-11,5.47e-12,0,0 +-.0022882,-.0024847,-.0016839,0,3.27e-11,4.41e-12,0,0 +-.0019164,.0018995,-.0002127,0,2.63e-11,3.55e-12,0,0 +.0019109,.0005853,.0025646,0,2.12e-11,2.86e-12,0,0 +-.001549,.0008098,-.0028326,0,1.71e-11,2.31e-12,0,0 +-.0008038,0,.0007026,0,1.38e-11,1.86e-12,0,0 +.0010374,-.0026353,.0010832,0,1.11e-11,1.50e-12,0,0 +.0012628,.0016068,.0003577,0,8.95e-12,1.21e-12,0,0 +.0006553,1.08e-19,-.0000887,0,7.21e-12,9.72e-13,0,0 +.0014233,-.0028427,.0009586,0,5.81e-12,7.83e-13,0,0 +.0025351,.0010863,.0013154,0,4.68e-12,6.31e-13,0,0 +-.000481,.0000768,-.0018794,0,3.77e-12,5.09e-13,0,0 +.0001106,-.0009453,.0007776,0,3.04e-12,4.10e-13,0,0 +-.0013861,.0014561,-.0014409,0,2.45e-12,3.30e-13,0,0 +-.0007193,-.0011659,.0003574,0,1.97e-12,2.66e-13,0,0 +-.0007352,.0021157,-.0004016,0,1.59e-12,2.14e-13,0,0 +-.000744,-.0002192,-.0002138,0,1.28e-12,1.73e-13,0,0 +-.0025706,-.001321,-.0018356,0,1.03e-12,1.39e-13,0,0 +-.0013339,-.0011687,.0004553,0,8.32e-13,1.12e-13,0,0 +-.0036309,.0005632,-.0026537,0,6.71e-13,9.04e-14,0,0 +-.0022536,-.0002234,.0003388,0,5.40e-13,7.29e-14,0,0 +-.0019098,-.0004477,-.0007241,0,4.35e-13,5.87e-14,0,0 +-.0017333,-.0004489,-.0004621,0,3.51e-13,4.73e-14,0,0 +-.0042637,-.0008599,-.002794,0,2.83e-13,3.81e-14,0,0 +-.0145044,-.0027063,-.0099341,0,2.28e-13,3.07e-14,0,0 +-.0055708,.0023716,.0041549,0,1.84e-13,2.48e-14,0,0 +-.0099944,-.0031037,-.0071722,0,1.48e-13,1.99e-14,0,0 +-.0120607,.0006404,-.0041645,0,1.19e-13,1.61e-14,0,0 +-.0097185,-.0024004,0,0,9.61e-14,1.30e-14,0,0 +-.0078312,-.0005316,0,0,7.74e-14,1.04e-14,0,0 +-.0063104,-.0011029,0,0,6.24e-14,8.41e-15,0,0 +-.005085,-.0005643,0,0,5.03e-14,6.78e-15,0,0 diff --git a/statsmodels/tsa/statespace/tests/results/results_wpi1_ar3_matlab_ssm.csv b/statsmodels/tsa/statespace/tests/results/results_wpi1_ar3_matlab_ssm.csv new file mode 100644 index 0000000..bcc9733 --- /dev/null +++ b/statsmodels/tsa/statespace/tests/results/results_wpi1_ar3_matlab_ssm.csv @@ -0,0 +1,123 @@ +0,0,0,0.54519,0.1,0.043181,0.0064821,-0,0,0,-0.15849,0.063724 +0.078566,0.1,0.078566,0,-0.1,0.1,0.043181,-0,0,0,0.032039,0.035338 +-0.034324,-0.1,0.1,-0,8.2743e-18,-0.1,0.1,-0,0,0,0.083723,0 +0.016277,0,-0.1,-0,0.1,1.0158e-17,-0.1,0,0,0,-0.3269,0 +0.026904,0.1,1.3354e-18,-0,-0.3,0.1,1.0158e-17,-0,0,0,0.1486,0 +-0.1486,-0.3,0.1,-0,-2.7979e-17,-0.3,0.1,-0,0,0,0.10277,0 +-0.0027748,0,-0.3,-0,0.1,-1.9752e-18,-0.3,-0,0,0,0.1247,0 +-0.024703,0.1,1.6393e-18,-0,0.1,0.1,-1.7263e-18,-0,0,0,-0.16223,0 +0.062233,0.1,0.1,-0,-0.1,0.1,0.1,-0,0,0,0.11738,0 +-0.017377,-0.1,0.1,-0,0.1,-0.1,0.1,-0,0,0,-0.068985,0 +0.068985,0.1,-0.1,-0,1.8162e-19,0.1,-0.1,-0,0,0,-0.083723,0 +-0.016277,0,0.1,-0,-0.1,1.4918e-18,0.1,-0,0,0,-0.073096,0 +-0.026904,-0.1,-1.3354e-18,-0,-0.1,-0.1,6.3736e-19,-0,0,0,0.16223,0 +-0.062233,-0.1,-0.1,-0,0.1,-0.1,-0.1,-0,0,0,0.082623,0 +0.017377,0.1,-0.1,-0,0.1,0.1,-0.1,-0,0,0,-0.03643,0 +0.03643,0.1,0.1,-0,2.9357e-19,0.1,0.1,-0,0,0,-0.13533,0 +0.03533,0,0.1,-0,-0.1,1.4027e-18,0.1,-0,0,0,0.1269,0 +-0.026904,-0.1,-2.1585e-18,-0,0.1,-0.1,-5.5834e-18,-0,0,0,-0.043181,0 +0.043181,0.1,-0.1,-0,-4.6916e-19,0.1,-0.1,-0,0,0,0.21628,0 +-0.016277,0,0.1,-0,0.2,-3.7711e-18,0.1,-0,0,0,0.16878,0 +0.13122,0.2,3.4496e-18,-0,0.3,0.2,-1.1055e-18,-0,0,0,0.022826,0 +0.17717,0.3,0.2,-0,0.2,0.3,0.2,-0,0,0,0.0144,0 +0.1856,0.2,0.3,-0,0.2,0.2,0.3,-0,0,0,0.29812,0 +0.20188,0.2,0.2,-0,0.5,0.2,0.2,-0,0,0,-0.2342,0 +0.3342,0.5,0.2,-0,0.1,0.5,0.2,-0,0,0,0.24806,0 +0.15194,0.1,0.5,-0,0.4,0.1,0.5,-0,0,0,-0.54937,0 +0.34937,0.4,0.1,-0,-0.2,0.4,0.1,-0,0,0,-0.058494,0 +-0.041506,-0.2,0.4,-0,-0.1,-0.2,0.4,-0,0,0,-0.031455,0 +0.031455,-0.1,-0.2,-0,-3.4954e-19,-0.1,-0.2,-0,0,0,0.16113,0 +-0.061133,0,-0.1,-0,0.1,-2.5929e-18,-0.1,-0,0,0,0.073096,0 +0.026904,0.1,2.5701e-18,-0,0.1,0.1,5.9735e-19,-0,0,0,0.33777,0 +0.062233,0.1,0.1,-0,0.4,0.1,0.1,-0,0,0,-0.046158,0 +0.24616,0.4,0.1,-0,0.2,0.4,0.1,-0,0,0,0.030678,0 +0.16932,0.2,0.4,-0,0.2,0.2,0.4,-0,0,0,-0.12768,0 +0.22768,0.2,0.2,-0,0.1,0.2,0.2,-0,0,0,0.37663,0 +0.12337,0.1,0.2,-0,0.5,0.1,0.2,-0,0,0,0.17533,0 +0.32467,0.5,0.1,-0,0.5,0.5,0.1,-0,0,0,-0.03697,0 +0.33697,0.5,0.5,-0,0.3,0.5,0.5,-0,0,0,-0.03477,0 +0.33477,0.3,0.5,-0,0.3,0.3,0.5,-0,0,0,0.18428,0 +0.31572,0.3,0.3,-0,0.5,0.3,0.3,-0,0,0,-0.16952,0 +0.36952,0.5,0.3,-0,0.2,0.5,0.3,-0,0,0,-0.030456,0 +0.23046,0.2,0.5,-0,0.2,0.2,0.5,-0,0,0,-0.25348,0 +0.25348,0.2,0.2,-0,-1.1483e-18,0.2,0.2,-0,0,0,0.52934,0 +0.070659,0,0.2,-0,0.6,-7.662e-18,0.2,-0,0,0,0.03215,0 +0.36785,0.6,8.443e-18,-0,0.4,0.6,7.5753e-18,-0,0,0,0.032015,0 +0.26799,0.4,0.6,-0,0.3,0.4,0.6,-0,0,0,-0.35105,0 +0.35105,0.3,0.4,-0,-1.2326e-18,0.3,0.4,-0,0,0,0.56821,0 +0.13179,0,0.3,-0,0.7,-7.8918e-18,0.3,-0,0,0,-0.046361,0 +0.44636,0.7,9.0629e-18,-0,0.4,0.7,1.0314e-17,-0,0,0,0.22249,0 +0.27751,0.4,0.7,-0,0.5,0.4,0.7,-0,0,0,-0.082265,0 +0.48227,0.5,0.4,-0,0.4,0.5,0.4,-0,0,0,1.5383,0 +0.36167,0.4,0.5,-0,1.9,0.4,0.5,-0,0,0,0.83144,0 +1.1686,1.9,0.4,-0,2,1.9,0.4,-0,0,0,0.46165,0 +1.3384,2,1.9,-0,1.8,2,1.9,-0,0,0,-1.2295,0 +1.6295,1.8,2,-0,0.4,1.8,2,-0,0,0,2.1016,0 +0.89837,0.4,1.8,-0,3,0.4,1.8,-0,0,0,-0.38378,0 +2.0838,3,0.4,-0,1.7,3,0.4,-0,0,0,2.315,0 +1.285,1.7,3,-0,3.6,1.7,3,-0,0,0,-1.0335,0 +2.8335,3.6,1.7,-0,1.8,3.6,1.7,-0,0,0,-1.7303,0 +1.7303,1.8,3.6,-0,1.0855e-18,1.8,3.6,-0,0,0,-0.5004,0 +1.1004,0,1.8,-0,0.6,5.3923e-18,1.8,-0,0,0,0.41929,0 +0.78071,0.6,-7.9814e-18,-0,1.2,0.6,-1.9297e-17,-0,0,0,-0.089643,0 +0.68964,1.2,0.6,-0,0.6,1.2,0.6,-0,0,0,-0.28538,0 +0.58538,0.6,1.2,-0,0.3,0.6,1.2,-0,0,0,0.37508,0 +0.52492,0.3,0.6,-0,0.9,0.3,0.6,-0,0,0,0.042236,0 +0.65776,0.9,0.3,-0,0.7,0.9,0.3,-0,0,0,-0.032096,0 +0.5321,0.7,0.9,-0,0.5,0.7,0.9,-0,0,0,0.83755,0 +0.56245,0.5,0.7,-0,1.4,0.5,0.7,-0,0,0,0.43384,0 +0.96616,1.4,0.5,-0,1.4,1.4,0.5,-0,0,0,-0.90028,0 +1.0003,1.4,1.4,-0,0.1,1.4,1.4,-0,0,0,0.25268,0 +0.54732,0.1,1.4,-0,0.8,0.1,1.4,-0,0,0,0.70757,0 +0.79243,0.8,0.1,-0,1.5,0.8,0.1,-0,0,0,1.1074,0 +0.89262,1.5,0.8,-0,2,1.5,0.8,-0,0,0,-0.40346,0 +1.4035,2,1.5,-0,1,2,1.5,-0,0,0,0.49535,0 +1.1046,1,2,-0,1.6,1,2,-0,0,0,1.0454,0 +1.4546,1.6,1,-0,2.5,1.6,1,-0,0,0,0.87187,0 +1.7281,2.5,1.6,-0,2.6,2.5,1.6,-0,0,0,0.2786,0 +2.0214,2.6,2.5,-0,2.3,2.6,2.5,-0,0,0,0.69497,0 +2.105,2.3,2.6,-0,2.8,2.3,2.6,-0,0,0,1.3342,0 +2.3658,2.8,2.3,-0,3.7,2.8,2.3,-0,0,0,-1.1104,0 +2.8104,3.7,2.8,-0,1.7,3.7,2.8,-0,0,0,0.82901,0 +1.971,1.7,3.7,-0,2.8,1.7,3.7,-0,0,0,-0.59248,0 +2.5925,2.8,1.7,-0,2,2.8,1.7,-0,0,0,0.94047,0 +1.7595,2,2.8,-0,2.7,2,2.8,-0,0,0,-0.23612,0 +2.3361,2.7,2,-0,2.1,2.7,2,-0,0,0,-1.1801,0 +1.8801,2.1,2.7,-0,0.7,2.1,2.7,-0,0,0,-1.3657,0 +1.2657,0.7,2.1,-0,-0.1,0.7,2.1,-0,0,0,0.24415,0 +0.55585,-0.1,0.7,-0,0.8,-0.1,0.7,-0,0,0,-0.49276,0 +0.59276,0.8,-0.1,-0,0.1,0.8,-0.1,-0,0,0,0.29689,0 +0.10311,0.1,0.8,-0,0.4,0.1,0.8,-0,0,0,-0.32678,0 +0.42678,0.4,0.1,-0,0.1,0.4,0.1,-0,0,0,-0.016615,0 +0.11662,0.1,0.4,-0,0.1,0.1,0.4,-0,0,0,0.13455,0 +0.16545,0.1,0.1,-0,0.3,0.1,0.1,-0,0,0,0.80655,0 +0.19345,0.3,0.1,-0,1,0.3,0.1,-0,0,0,-0.081453,0 +0.58145,1,0.3,-0,0.5,1,0.3,-0,0,0,0.66379,0 +0.43621,0.5,1,-0,1.1,0.5,1,-0,0,0,-0.28544,0 +0.88544,1.1,0.5,-0,0.6,1.1,0.5,-0,0,0,-0.75005,0 +0.55005,0.6,1.1,-0,-0.2,0.6,1.1,-0,0,0,-0.53558,0 +0.23558,-0.2,0.6,-0,-0.3,-0.2,0.6,-0,0,0,-0.17765,0 +-0.022352,-0.3,-0.2,-0,-0.2,-0.3,-0.2,-0,0,0,0.2856,0 +-0.1856,-0.2,-0.3,-0,0.1,-0.2,-0.3,-0,0,0,-0.65624,0 +-0.043756,0.1,-0.2,-0,-0.7,0.1,-0.2,-0,0,0,1.011,0 +-0.41103,-0.7,0.1,-0,0.6,-0.7,0.1,-0,0,0,-1.7754,0 +0.27536,0.6,-0.7,-0,-1.5,0.6,-0.7,-0,0,0,-0.88592,0 +-0.91408,-1.5,0.6,-0,-1.8,-1.5,0.6,-0,0,0,0.4368,0 +-0.9368,-1.8,-1.5,-0,-0.5,-1.8,-1.5,-0,0,0,1.2221,0 +-0.82206,-0.5,-1.8,-0,0.4,-0.5,-1.8,-0,0,0,1.4013,0 +-0.30127,0.4,-0.5,-0,1.1,0.4,-0.5,-0,0,0,1.1111,0 +0.48887,1.1,0.4,-0,1.6,1.1,0.4,-0,0,0,0.048684,0 +1.0513,1.6,1.1,-0,1.1,1.6,1.1,-0,0,0,-0.51604,0 +1.016,1.1,1.6,-0,0.5,1.1,1.6,-0,0,0,-0.18118,0 +0.78118,0.5,1.1,-0,0.6,0.5,1.1,-0,0,0,0.95229,0 +0.64771,0.6,0.5,-0,1.6,0.6,0.5,-0,0,0,0.47051,0 +1.0295,1.6,0.6,-0,1.5,1.6,0.6,-0,0,0,-0.59785,0 +1.0978,1.5,1.6,-0,0.5,1.5,1.6,-0,0,0,1.4807,0 +0.81928,0.5,1.5,-0,2.3,0.5,1.5,-0,0,0,0.25305,0 +1.6469,2.3,0.5,-0,1.9,2.3,0.5,-0,0,0,-1.7496,0 +1.3496,1.9,2.3,-0,-0.4,1.9,2.3,-0,0,0,-0.16365,0 +0.56365,-0.4,1.9,-0,0.4,-0.4,1.9,-0,0,0,0.93701,0 +0.66299,0.4,-0.4,-0,1.6,0.4,-0.4,-0,0,0,-0.9782,0 +0.7782,1.6,0.4,-0,-0.2,1.6,0.4,-0,0,0,1.8498,0 +0.15022,-0.2,1.6,-0,2,-0.2,1.6,-0,0,0,1.9521,0 +1.4479,2,-0.2,-0,3.4,2,-0.2,-0,0,0,0,0.53075 diff --git a/statsmodels/tsa/statespace/tests/results/results_wpi1_ar3_regression.csv b/statsmodels/tsa/statespace/tests/results/results_wpi1_ar3_regression.csv new file mode 100644 index 0000000..04ee786 --- /dev/null +++ b/statsmodels/tsa/statespace/tests/results/results_wpi1_ar3_regression.csv @@ -0,0 +1 @@ +measurement_disturbance,state_disturbance,state1,state2,state3 0,-0.012249711,0.099998474,0.138756064,-0.595550581 0,0.007376371,-0.099998474,0.099998474,0.138756064 0,0.083721302,0,-0.099998474,0.099998474 0,-0.326902427,0.099998474,0,-0.099998474 0,0.148595063,-0.299999237,0.099998474,0 0,0.102775543,0,-0.299999237,0.099998474 0,0.124703484,0.100000381,0,-0.299999237 0,-0.162233899,0.100000381,0.100000381,0 0,0.117377918,-0.100000381,0.100000381,0.100000381 0,-0.068984833,0.100000381,-0.100000381,0.100000381 0,-0.083722899,0,0.100000381,-0.100000381 0,-0.073096679,-0.100000381,0,0.100000381 0,0.162233899,-0.100000381,-0.100000381,0 0,0.082622845,0.100000381,-0.100000381,-0.100000381 0,-0.036429869,0.100000381,0.100000381,-0.100000381 0,-0.135330196,0,0.100000381,0.100000381 0,0.126904084,-0.100000381,0,0.100000381 0,-0.043181185,0.100000381,-0.100000381,0 0,0.216276338,0,0.100000381,-0.100000381 0,0.168783799,0.199998856,0,0.100000381 0,0.022824651,0.300001144,0.199998856,0 0,0.014401762,0.199998856,0.300001144,0.199998856 0,0.298120294,0.200000763,0.199998856,0.300001144 0,-0.234191593,0.499998093,0.200000763,0.199998856 0,0.24805159,0.100002289,0.499998093,0.200000763 0,-0.549367948,0.399997711,0.100002289,0.499998093 0,-0.05849804,-0.199996948,0.399997711,0.100002289 0,-0.031453284,-0.100002289,-0.199996948,0.399997711 0,0.161134949,0,-0.100002289,-0.199996948 0,0.073094258,0.100002289,0,-0.100002289 0,0.337768832,0.099998474,0.100002289,0 0,-0.046162581,0.400001526,0.099998474,0.100002289 0,0.03068025,0.199996948,0.400001526,0.099998474 0,-0.127678976,0.200000763,0.199996948,0.400001526 0,0.376632998,0.100002289,0.200000763,0.199996948 0,0.175330605,0.5,0.100002289,0.200000763 0,-0.036971304,0.5,0.5,0.100002289 0,-0.034770211,0.299999237,0.5,0.5 0,0.184282885,0.299999237,0.299999237,0.5 0,-0.169523758,0.5,0.299999237,0.299999237 0,-0.030455042,0.200000763,0.5,0.299999237 0,-0.253484785,0.200000763,0.200000763,0.5 0,0.529338845,0,0.200000763,0.200000763 0,0.032152133,0.599998474,0,0.200000763 0,0.032013198,0.400001526,0.599998474,0 0,-0.35104662,0.299999237,0.400001526,0.599998474 0,0.568207852,5.55E-17,0.299999237,0.400001526 0,-0.046363194,0.700000763,5.55E-17,0.299999237 0,0.222489624,0.399997711,0.700000763,5.55E-17 0,-0.082263573,0.5,0.399997711,0.700000763 0,1.538324048,0.400001526,0.5,0.399997711 0,0.831442941,1.899997711,0.400001526,0.5 0,0.461649206,2,1.899997711,0.400001526 0,-1.229522057,1.800003052,2,1.899997711 0,2.101630976,0.399997711,1.800003052,2 0,-0.383782726,3,0.399997711,1.800003052 0,2.314979013,1.700000763,3,0.399997711 0,-1.033504327,3.599998474,1.700000763,3 0,-1.73033139,1.800003052,3.599998474,1.700000763 0,-0.500399563,0,1.800003052,3.599998474 0,0.41929398,0.599998474,0,1.800003052 0,-0.089644363,1.200000763,0.599998474,0 0,-0.285377398,0.599998474,1.200000763,0.599998474 0,0.375081046,0.299999237,0.599998474,1.200000763 0,0.042236385,0.900001526,0.299999237,0.599998474 0,-0.032096221,0.700000763,0.900001526,0.299999237 0,0.837546635,0.5,0.700000763,0.900001526 0,0.433846935,1.399997711,0.5,0.700000763 0,-0.900285782,1.400001526,1.399997711,0.5 0,0.252681631,0.099998474,1.400001526,1.399997711 0,0.707565113,0.800003052,0.099998474,1.400001526 0,1.107380263,1.5,0.800003052,0.099998474 0,-0.403464137,2,1.5,0.800003052 0,0.495351124,1,2,1.5 0,1.045354104,1.599998474,1,2 0,0.871866289,2.5,1.599998474,1 0,0.2786083,2.599998474,2.5,1.599998474 0,0.694961379,2.300003052,2.599998474,2.5 0,1.334213603,2.799995422,2.300003052,2.599998474 0,-1.110383656,3.700004578,2.799995422,2.300003052 0,0.829017645,1.699996948,3.700004578,2.799995422 0,-0.592478259,2.800003052,1.699996948,3.700004578 0,0.940462455,2,2.800003052,1.699996948 0,-0.236115755,2.699996948,2,2.800003052 0,-1.180120987,2.099998474,2.699996948,2 0,-1.365694584,0.700004578,2.099998474,2.699996948 0,0.244144266,-0.099998474,0.700004578,2.099998474 0,-0.49275636,0.799995422,-0.099998474,0.700004578 0,0.296889732,0.099998474,0.799995422,-0.099998474 0,-0.326784134,0.400001526,0.099998474,0.799995422 0,-0.016608064,0.099998474,0.400001526,0.099998474 0,0.134544477,0.100006104,0.099998474,0.400001526 0,0.806551095,0.299995422,0.100006104,0.099998474 0,-0.081454579,1,0.299995422,0.100006104 0,0.663791955,0.5,1,0.299995422 0,-0.285437892,1.099998474,0.5,1 0,-0.750055729,0.600006104,1.099998474,0.5 0,-0.535574727,-0.200004578,0.600006104,1.099998474 0,-0.177655719,-0.299995422,-0.200004578,0.600006104 0,0.285601422,-0.200004578,-0.299995422,-0.200004578 0,-0.656241129,0.099998474,-0.200004578,-0.299995422 0,1.011029212,-0.699996948,0.099998474,-0.200004578 0,-1.775362633,0.599998474,-0.699996948,0.099998474 0,-0.885920744,-1.5,0.599998474,-0.699996948 0,0.436797331,-1.799995422,-1.5,0.599998474 0,1.2220528,-0.5,-1.799995422,-1.5 0,1.401274089,0.399993896,-0.5,-1.799995422 0,1.111130419,1.100006104,0.399993896,-0.5 0,0.048684242,1.599998474,1.100006104,0.399993896 0,-0.516036405,1.099998474,1.599998474,1.100006104 0,-0.181180967,0.5,1.099998474,1.599998474 0,0.952287072,0.599998474,0.5,1.099998474 0,0.47051202,1.599998474,0.599998474,0.5 0,-0.597846091,1.5,1.599998474,0.599998474 0,1.480718945,0.5,1.5,1.599998474 0,0.253051567,2.300003052,0.5,1.5 0,-1.749557211,1.900001526,2.300003052,0.5 0,-0.163648123,-0.400001526,1.900001526,2.300003052 0,0.937005892,0.400001526,-0.400001526,1.900001526 0,-0.978200616,1.599998474,0.400001526,-0.400001526 0,1.849780163,-0.199996948,1.599998474,0.400001526 0,1.95204646,2,-0.199996948,1.599998474 0,0,3.399993896,2,-0.199996948 ,0,0,0,0 \ No newline at end of file diff --git a/statsmodels/tsa/statespace/tests/results/results_wpi1_ar3_stata.csv b/statsmodels/tsa/statespace/tests/results/results_wpi1_ar3_stata.csv new file mode 100644 index 0000000..6126bd1 --- /dev/null +++ b/statsmodels/tsa/statespace/tests/results/results_wpi1_ar3_stata.csv @@ -0,0 +1 @@ +wpi,t,ln_wpi,dep1,sr1,sp1,sp2,sp3,sf1,sf2,sf3,sm1,sm2,sm3 30.7,1960q1,3.424263,,,,,,,,,,, 30.8,1960q2,3.427515,0,0.0794849,0,0,0,0.0999985,0.0785646,0.0712076,0.0999985,0.0431804,0.006482 30.7,1960q3,3.424263,0.0785646,-0.2294193,0.0785646,0.0999985,0.0785646,-0.0999985,0.0999985,0.0343236,-0.0999985,0.0999985,0.0431804 30.7,1960q4,3.424263,-0.0343236,0.0455185,-0.0343236,-0.0999985,0.0999985,-6.94E-18,-0.0999985,0.0999985,-6.94E-18,-0.0999985,0.0999985 30.8,1961q1,3.427515,0.0162772,0.1149192,0.0162772,0,-0.0999985,0.0999985,0,-0.0999985,0.0999985,0,-0.0999985 30.5,1961q2,3.417727,0.0269032,-0.4487194,0.0269032,0.0999985,0,-0.2999992,0.0999985,0,-0.2999992,0.0999985,0 30.5,1961q3,3.417727,-0.1485951,0.2039676,-0.1485951,-0.2999992,0.0999985,-2.78E-17,-0.2999992,0.0999985,-2.78E-17,-0.2999992,0.0999985 30.6,1961q4,3.421,-0.0027752,0.1410738,-0.0027752,0,-0.2999992,0.1000004,0,-0.2999992,0.1000004,0,-0.2999992 30.7,1962q1,3.424263,-0.0247031,0.171173,-0.0247031,0.1000004,0,0.1000004,0.1000004,0,0.1000004,0.1000004,0 30.6,1962q2,3.421,0.0622335,-0.2226887,0.0622335,0.1000004,0.1000004,-0.1000004,0.1000004,0.1000004,-0.1000004,0.1000004,0.1000004 30.7,1962q3,3.424263,-0.0173775,0.1611176,-0.0173775,-0.1000004,0.1000004,0.1000004,-0.1000004,0.1000004,0.1000004,-0.1000004,0.1000004 30.7,1962q4,3.424263,0.0689848,-0.0946914,0.0689848,0.1000004,-0.1000004,0,0.1000004,-0.1000004,0,0.1000004,-0.1000004 30.6,1963q1,3.421,-0.0162775,-0.1149214,-0.0162775,0,0.1000004,-0.1000004,0,0.1000004,-0.1000004,0,0.1000004 30.5,1963q2,3.417727,-0.0269037,-0.1003354,-0.0269037,-0.1000004,0,-0.1000004,-0.1000004,0,-0.1000004,-0.1000004,0 30.6,1963q3,3.421,-0.0622335,0.2226887,-0.0622335,-0.1000004,-0.1000004,0.1000004,-0.1000004,-0.1000004,0.1000004,-0.1000004,-0.1000004 30.7,1963q4,3.424263,0.0173775,0.1134114,0.0173775,0.1000004,-0.1000004,0.1000004,0.1000004,-0.1000004,0.1000004,0.1000004,-0.1000004 30.7,1964q1,3.424263,0.0364299,-0.0500051,0.0364299,0.1000004,0.1000004,0,0.1000004,0.1000004,0,0.1000004,0.1000004 30.6,1964q2,3.421,0.0353298,-0.1857596,0.0353298,0,0.1000004,-0.1000004,0,0.1000004,-0.1000004,0,0.1000004 30.7,1964q3,3.424263,-0.0269037,0.1741936,-0.0269037,-0.1000004,0,0.1000004,-0.1000004,0,0.1000004,-0.1000004,0 30.7,1964q4,3.424263,0.0431812,-0.0592722,0.0431812,0.1000004,-0.1000004,0,0.1000004,-0.1000004,0,0.1000004,-0.1000004 30.9,1965q1,3.430756,-0.0162775,0.2968695,-0.0162775,0,0.1000004,0.1999989,0,0.1000004,0.1999989,0,0.1000004 31.2,1965q2,3.440418,0.1312173,0.2316794,0.1312173,0.1999989,0,0.3000011,0.1999989,0,0.3000011,0.1999989,0 31.4,1965q3,3.446808,0.1771742,0.03133,0.1771742,0.3000011,0.1999989,0.1999989,0.3000011,0.1999989,0.1999989,0.3000011,0.1999989 31.6,1965q4,3.453157,0.185599,0.0197684,0.185599,0.1999989,0.3000011,0.2000008,0.1999989,0.3000011,0.2000008,0.1999989,0.3000011 32.1,1966q1,3.468856,0.2018778,0.4092119,0.2018778,0.2000008,0.1999989,0.4999981,0.2000008,0.1999989,0.4999981,0.2000008,0.1999989 32.2,1966q2,3.471967,0.3341939,-0.3214608,0.3341939,0.4999981,0.2000008,0.1000023,0.4999981,0.2000008,0.1000023,0.4999981,0.2000008 32.6,1966q3,3.484312,0.1519461,0.3404856,0.1519461,0.1000023,0.4999981,0.3999977,0.1000023,0.4999981,0.3999977,0.1000023,0.4999981 32.4,1966q4,3.478158,0.349371,-0.7540844,0.349371,0.3999977,0.1000023,-0.1999969,0.3999977,0.1000023,-0.1999969,0.3999977,0.1000023 32.3,1967q1,3.475067,-0.0415043,-0.0802967,-0.0415043,-0.1999969,0.3999977,-0.1000023,-0.1999969,0.3999977,-0.1000023,-0.1999969,0.3999977 32.3,1967q2,3.475067,0.0314533,-0.043174,0.0314533,-0.1000023,-0.1999969,0,-0.1000023,-0.1999969,0,-0.1000023,-0.1999969 32.4,1967q3,3.478158,-0.0611327,0.2211803,-0.0611327,0,-0.1000023,0.1000023,0,-0.1000023,0.1000023,0,-0.1000023 32.5,1967q4,3.48124,0.0269042,0.1003321,0.0269042,0.1000023,0,0.0999985,0.1000023,0,0.0999985,0.1000023,0 32.9,1968q1,3.493473,0.0622327,0.463635,0.0622327,0.0999985,0.1000023,0.4000015,0.0999985,0.1000023,0.4000015,0.0999985,0.1000023 33.1,1968q2,3.499533,0.2461595,-0.0633646,0.2461595,0.4000015,0.0999985,0.1999969,0.4000015,0.0999985,0.1999969,0.4000015,0.0999985 33.3,1968q3,3.505557,0.1693205,0.0421129,0.1693205,0.1999969,0.4000015,0.2000008,0.1999969,0.4000015,0.2000008,0.1999969,0.4000015 33.4,1968q4,3.508556,0.2276812,-0.1752573,0.2276812,0.2000008,0.1999969,0.1000023,0.2000008,0.1999969,0.1000023,0.2000008,0.1999969 33.9,1969q1,3.523415,0.123367,0.5169815,0.123367,0.1000023,0.2000008,0.5,0.1000023,0.2000008,0.5,0.1000023,0.2000008 34.4,1969q2,3.538057,0.3246694,0.2406658,0.3246694,0.5,0.1000023,0.5,0.5,0.1000023,0.5,0.5,0.1000023 34.7,1969q3,3.54674,0.3369705,-0.0507483,0.3369705,0.5,0.5,0.2999992,0.5,0.5,0.2999992,0.5,0.5 35,1969q4,3.555348,0.3347694,-0.047727,0.3347694,0.2999992,0.5,0.2999992,0.2999992,0.5,0.2999992,0.2999992,0.5 35.5,1970q1,3.569533,0.3157171,0.2529541,0.3157171,0.2999992,0.2999992,0.5,0.2999992,0.2999992,0.5,0.2999992,0.2999992 35.7,1970q2,3.575151,0.3695245,-0.2326951,0.3695245,0.5,0.2999992,0.2000008,0.5,0.2999992,0.2000008,0.5,0.2999992 35.9,1970q3,3.580737,0.2304558,-0.0418038,0.2304558,0.2000008,0.5,0.2000008,0.2000008,0.5,0.2000008,0.2000008,0.5 35.9,1970q4,3.580737,0.2534848,-0.3479433,0.2534848,0.2000008,0.2000008,0,0.2000008,0.2000008,0,0.2000008,0.2000008 36.5,1971q1,3.597312,0.0706596,0.7265917,0.0706596,0,0.2000008,0.5999985,0,0.2000008,0.5999985,0,0.2000008 36.9,1971q2,3.608212,0.3678494,0.0441333,0.3678494,0.5999985,0,0.4000015,0.5999985,0,0.4000015,0.5999985,0 37.2,1971q3,3.616309,0.267986,0.0439426,0.267986,0.4000015,0.5999985,0.2999992,0.4000015,0.5999985,0.2999992,0.4000015,0.5999985 37.2,1971q4,3.616309,0.3510466,-0.4818606,0.3510466,0.2999992,0.4000015,0,0.2999992,0.4000015,0,0.2999992,0.4000015 37.9,1972q1,3.634951,0.1317929,0.7799449,0.1317929,0,0.2999992,0.7000008,0,0.2999992,0.7000008,0,0.2999992 38.3,1972q2,3.64545,0.4463609,-0.06364,0.4463609,0.7000008,0,0.3999977,0.7000008,0,0.3999977,0.7000008,0 38.8,1972q3,3.65842,0.2775104,0.3053982,0.2775104,0.3999977,0.7000008,0.5,0.3999977,0.7000008,0.5,0.3999977,0.7000008 39.2,1972q4,3.668677,0.4822651,-0.1129183,0.4822651,0.5,0.3999977,0.4000015,0.5,0.3999977,0.4000015,0.5,0.3999977 41.1,1973q1,3.716008,0.3616737,2.111565,0.3616737,0.4000015,0.5,1.899998,0.4000015,0.5,1.899998,0.4000015,0.5 43.1,1973q2,3.763523,1.168557,1.141272,1.168557,1.899998,0.4000015,2,1.899998,0.4000015,2,1.899998,0.4000015 44.9,1973q3,3.804438,1.338354,0.6336781,1.338354,2,1.899998,1.800003,2,1.899998,1.800003,2,1.899998 45.3,1973q4,3.813307,1.62952,-1.687691,1.62952,1.800003,2,0.3999977,1.800003,2,0.3999977,1.800003,2 48.3,1974q1,3.877432,0.898369,2.884783,0.898369,0.3999977,1.800003,3,0.3999977,1.800003,3,0.3999977,1.800003 50,1974q2,3.912023,2.083784,-0.5267956,2.083784,3,0.3999977,1.700001,3,0.3999977,1.700001,3,0.3999977 53.6,1974q3,3.981549,1.285019,3.177633,1.285019,1.700001,3,3.599998,1.700001,3,3.599998,1.700001,3 55.4,1974q4,4.01458,2.833507,-1.418629,2.833507,3.599998,1.700001,1.800003,3.599998,1.700001,1.800003,3.599998,1.700001 55.4,1975q1,4.01458,1.730331,-2.375122,1.730331,1.800003,3.599998,2.22E-16,1.800003,3.599998,2.22E-16,1.800003,3.599998 56,1975q2,4.025352,1.100398,-0.6868683,1.100398,0,1.800003,0.5999985,0,1.800003,0.5999985,0,1.800003 57.2,1975q3,4.046554,0.7807068,0.5755398,0.7807068,0.5999985,0,1.200001,0.5999985,0,1.200001,0.5999985,0 57.8,1975q4,4.056989,0.6896428,-0.1230495,0.6896428,1.200001,0.5999985,0.5999985,1.200001,0.5999985,0.5999985,1.200001,0.5999985 58.1,1976q1,4.062166,0.5853766,-0.3917204,0.5853766,0.5999985,1.200001,0.2999992,0.5999985,1.200001,0.2999992,0.5999985,1.200001 59,1976q2,4.077538,0.5249205,0.5148513,0.5249205,0.2999992,0.5999985,0.9000015,0.2999992,0.5999985,0.9000015,0.2999992,0.5999985 59.7,1976q3,4.089332,0.6577644,0.0579753,0.6577644,0.9000015,0.2999992,0.7000008,0.9000015,0.2999992,0.7000008,0.9000015,0.2999992 60.2,1976q4,4.097672,0.5320962,-0.0440566,0.5320962,0.7000008,0.9000015,0.5,0.7000008,0.9000015,0.5,0.7000008,0.9000015 61.6,1977q1,4.120662,0.5624511,1.14965,0.5624511,0.5,0.7000008,1.399998,0.5,0.7000008,1.399998,0.5,0.7000008 63,1977q2,4.143135,0.9661546,0.5955157,0.9661546,1.399998,0.5,1.400002,1.399998,0.5,1.400002,1.399998,0.5 63.1,1977q3,4.144721,1.000284,-1.235768,1.000284,1.400002,1.399998,0.0999985,1.400002,1.399998,0.0999985,1.400002,1.399998 63.9,1977q4,4.15732,0.5473213,0.346841,0.5473213,0.0999985,1.400002,0.8000031,0.0999985,1.400002,0.8000031,0.0999985,1.400002 65.4,1978q1,4.180522,0.7924349,0.9712322,0.7924349,0.8000031,0.0999985,1.5,0.8000031,0.0999985,1.5,0.8000031,0.0999985 67.4,1978q2,4.210645,0.8926198,1.520034,0.8926198,1.5,0.8000031,2,1.5,0.8000031,2,1.5,0.8000031 68.4,1978q3,4.225373,1.403464,-0.5538111,1.403464,2,1.5,1,2,1.5,1,2,1.5 70,1978q4,4.248495,1.104647,0.6799389,1.104647,1,2,1.599998,1,2,1.599998,1,2 72.5,1979q1,4.283587,1.454646,1.434895,1.454646,1.599998,1,2.5,1.599998,1,2.5,1.599998,1 75.1,1979q2,4.31882,1.728132,1.196759,1.728132,2.5,1.599998,2.599998,2.5,1.599998,2.599998,2.5,1.599998 77.4,1979q3,4.348987,2.021395,0.3824289,2.021395,2.599998,2.5,2.300003,2.599998,2.5,2.300003,2.599998,2.5 80.2,1979q4,4.384523,2.105034,0.9539319,2.105034,2.300003,2.599998,2.799995,2.300003,2.599998,2.799995,2.300003,2.599998 83.9,1980q1,4.429626,2.365791,1.831395,2.365791,2.799995,2.300003,3.700005,2.799995,2.300003,3.700005,2.799995,2.300003 85.6,1980q2,4.449685,2.810381,-1.524157,2.810381,3.700005,2.799995,1.699997,3.700005,2.799995,1.699997,3.700005,2.799995 88.4,1980q3,4.481872,1.970985,1.137943,1.970985,1.699997,3.700005,2.800003,1.699997,3.700005,2.800003,1.699997,3.700005 90.4,1980q4,4.504244,2.592478,-0.8132593,2.592478,2.800003,1.699997,2,2.800003,1.699997,2,2.800003,1.699997 93.1,1981q1,4.533674,1.759534,1.290916,1.759534,2,2.800003,2.699997,2,2.800003,2.699997,2,2.800003 95.2,1981q2,4.55598,2.336114,-0.3241019,2.336114,2.699997,2,2.099998,2.699997,2,2.099998,2.699997,2 95.9,1981q3,4.563306,1.880126,-1.619881,1.880126,2.099998,2.699997,0.7000046,2.099998,2.699997,0.7000046,2.099998,2.699997 95.8,1981q4,4.562263,1.265696,-1.874607,1.265696,0.7000046,2.099998,-0.0999985,0.7000046,2.099998,-0.0999985,0.7000046,2.099998 96.6,1982q1,4.570579,0.555851,0.3351223,0.555851,-0.0999985,0.7000046,0.7999954,-0.0999985,0.7000046,0.7999954,-0.0999985,0.7000046 96.7,1982q2,4.571613,0.5927548,-0.6763771,0.5927548,0.7999954,-0.0999985,0.0999985,0.7999954,-0.0999985,0.0999985,0.7999954,-0.0999985 97.1,1982q3,4.575741,0.1031118,0.4075227,0.1031118,0.0999985,0.7999954,0.4000015,0.0999985,0.7999954,0.4000015,0.0999985,0.7999954 97.2,1982q4,4.576771,0.4267826,-0.448557,0.4267826,0.4000015,0.0999985,0.0999985,0.4000015,0.0999985,0.0999985,0.4000015,0.0999985 97.3,1983q1,4.577799,0.1166142,-0.0227969,0.1166142,0.0999985,0.4000015,0.1000061,0.0999985,0.4000015,0.1000061,0.0999985,0.4000015 97.6,1983q2,4.580877,0.1654509,0.1846811,0.1654509,0.1000061,0.0999985,0.2999954,0.1000061,0.0999985,0.2999954,0.1000061,0.0999985 98.6,1983q3,4.591071,0.1934489,1.107104,0.1934489,0.2999954,0.1000061,1,0.2999954,0.1000061,1,0.2999954,0.1000061 99.1,1983q4,4.596129,0.5814546,-0.1118079,0.5814546,1,0.2999954,0.5,1,0.2999954,0.5,1,0.2999954 100.2,1984q1,4.607168,0.4362065,0.9111474,0.4362065,0.5,1,1.099998,0.5,1,1.099998,0.5,1 100.8,1984q2,4.613138,0.885444,-0.3918035,0.885444,1.099998,0.5,0.6000061,1.099998,0.5,0.6000061,1.099998,0.5 100.6,1984q3,4.611152,0.5500512,-1.029557,0.5500512,0.6000061,1.099998,-0.2000046,0.6000061,1.099998,-0.2000046,0.6000061,1.099998 100.3,1984q4,4.608166,0.2355793,-0.7351512,0.2355793,-0.2000046,0.6000061,-0.2999954,-0.2000046,0.6000061,-0.2999954,-0.2000046,0.6000061 100.1,1985q1,4.60617,-0.0223489,-0.2438573,-0.0223489,-0.2999954,-0.2000046,-0.2000046,-0.2999954,-0.2000046,-0.2000046,-0.2999954,-0.2000046 100.2,1985q2,4.607168,-0.1856029,0.3920279,-0.1856029,-0.2000046,-0.2999954,0.0999985,-0.2000046,-0.2999954,0.0999985,-0.2000046,-0.2999954 99.5,1985q3,4.600158,-0.0437558,-0.9007829,-0.0437558,0.0999985,-0.2000046,-0.6999969,0.0999985,-0.2000046,-0.6999969,0.0999985,-0.2000046 100.1,1985q4,4.60617,-0.4110308,1.387779,-0.4110308,-0.6999969,0.0999985,0.5999985,-0.6999969,0.0999985,0.5999985,-0.6999969,0.0999985 98.6,1986q1,4.591071,0.2753627,-2.436934,0.2753627,0.5999985,-0.6999969,-1.5,0.5999985,-0.6999969,-1.5,0.5999985,-0.6999969 96.8,1986q2,4.572647,-0.9140747,-1.21605,-0.9140747,-1.5,0.5999985,-1.799995,-1.5,0.5999985,-1.799995,-1.5,0.5999985 96.3,1986q3,4.567468,-0.9367974,0.5995656,-0.9367974,-1.799995,-1.5,-0.5,-1.799995,-1.5,-0.5,-1.799995,-1.5 96.7,1986q4,4.571613,-0.8220589,1.677438,-0.8220589,-0.5,-1.799995,0.3999939,-0.5,-1.799995,0.3999939,-0.5,-1.799995 97.8,1987q1,4.582925,-0.3012679,1.923445,-0.3012679,0.3999939,-0.5,1.100006,0.3999939,-0.5,1.100006,0.3999939,-0.5 99.4,1987q2,4.599152,0.4888681,1.525182,0.4888681,1.100006,0.3999939,1.599998,1.100006,0.3999939,1.599998,1.100006,0.3999939 100.5,1987q3,4.610157,1.051314,0.0668259,1.051314,1.599998,1.100006,1.099998,1.599998,1.100006,1.099998,1.599998,1.100006 101,1987q4,4.61512,1.016036,-0.7083322,1.016036,1.099998,1.599998,0.5,1.099998,1.599998,0.5,1.099998,1.599998 101.6,1988q1,4.621044,0.7811794,-0.2486962,0.7811794,0.5,1.099998,0.5999985,0.5,1.099998,0.5999985,0.5,1.099998 103.2,1988q2,4.636669,0.6477114,1.307147,0.6477114,0.5999985,0.5,1.599998,0.5999985,0.5,1.599998,0.5999985,0.5 104.7,1988q3,4.651099,1.029488,0.6458436,1.029488,1.599998,0.5999985,1.5,1.599998,0.5999985,1.5,1.599998,0.5999985 105.2,1988q4,4.655863,1.097846,-0.8206275,1.097846,1.5,1.599998,0.5,1.5,1.599998,0.5,1.5,1.599998 107.5,1989q1,4.677491,0.819284,2.032494,0.819284,0.5,1.5,2.300003,0.5,1.5,2.300003,0.5,1.5 109.4,1989q2,4.695011,1.64695,0.3473487,1.64695,2.300003,0.5,1.900002,2.300003,0.5,1.900002,2.300003,0.5 109,1989q3,4.691348,1.349556,-2.401512,1.349556,1.900002,2.300003,-0.4000015,1.900002,2.300003,-0.4000015,1.900002,2.300003 109.4,1989q4,4.695011,0.5636495,-0.2246298,0.5636495,-0.4000015,1.900002,0.4000015,-0.4000015,1.900002,0.4000015,-0.4000015,1.900002 111,1990q1,4.70953,0.6629925,1.286172,0.6629925,0.4000015,-0.4000015,1.599998,0.4000015,-0.4000015,1.599998,0.4000015,-0.4000015 110.8,1990q2,4.707727,0.7782037,-1.342717,0.7782037,1.599998,0.4000015,-0.1999969,1.599998,0.4000015,-0.1999969,1.599998,0.4000015 112.8,1990q3,4.725616,0.1502198,2.539082,0.1502198,-0.1999969,1.599998,2,-0.1999969,1.599998,2,-0.1999969,1.599998 116.2,1990q4,4.755313,1.447948,2.679457,1.447948,2,-0.1999969,3.399994,2,-0.1999969,3.399994,2,-0.1999969 \ No newline at end of file diff --git a/statsmodels/tsa/statespace/tests/results/results_wpi1_missing_ar3_matlab_ssm.csv b/statsmodels/tsa/statespace/tests/results/results_wpi1_missing_ar3_matlab_ssm.csv new file mode 100644 index 0000000..c64a7aa --- /dev/null +++ b/statsmodels/tsa/statespace/tests/results/results_wpi1_missing_ar3_matlab_ssm.csv @@ -0,0 +1,123 @@ +0,0,0,0.54519,0.1,0.043181,0.0064821,-0,0,0,-0.15849,0.063724 +0.078566,0.1,0.078566,0,-0.1,0.1,0.043181,-0,0,0,0.032039,0.035338 +-0.034324,-0.1,0.1,-0,8.2743e-18,-0.1,0.1,-0,0,0,0.083723,0 +0.016277,0,-0.1,-0,0.1,1.0158e-17,-0.1,0,0,0,-0.3269,0 +0.026904,0.1,1.3354e-18,-0,-0.3,0.1,1.0158e-17,-0,0,0,0.1486,0 +-0.1486,-0.3,0.1,-0,-2.7979e-17,-0.3,0.1,-0,0,0,0.10277,0 +-0.0027748,0,-0.3,-0,0.1,-1.9752e-18,-0.3,-0,0,0,0.1247,0 +-0.024703,0.1,1.6393e-18,-0,0.1,0.1,-1.7263e-18,-0,0,0,-0.16223,0 +0.062233,0.1,0.1,-0,-0.1,0.1,0.1,-0,0,0,0.08702,0.48878 +-0.017377,-0.1,0.1,-0,0.011887,-0.1,0.1,-0,0,0,0.093959,0.48191 +0.0071183,-0.017377,-0.1,0,0.054194,0.011887,-0.1,0,0,0,0.10095,0.47425 +-0.023707,0.0071183,-0.017377,0.14951,0.037833,0.054194,0.011887,0.13553,0,0,0.10805,0.46586 +-0.016301,-0.023707,0.0071183,0.20235,0.064404,0.037833,0.054194,0.1751,0,0,0.11805,0.45406 +-0.0090135,-0.016301,-0.023707,0.24329,0.091489,0.064404,0.037833,0.19869,0,0,0.12693,0.44153 +-0.012421,-0.0090135,-0.016301,0.29005,0.10689,0.091489,0.064404,0.22043,0,0,0.13074,0.43363 +-0.011612,-0.012421,-0.0090135,0.32607,0.12469,0.10689,0.091489,0.22767,0,0,0.14994,0.40902 +-0.0096292,-0.011612,-0.012421,0.35491,0.15111,0.12469,0.10689,0.22043,0,0,0.16952,0.37492 +-0.0093865,-0.0096292,-0.011612,0.3814,0.17795,0.15111,0.12469,0.19869,0,0,0.13783,0.39663 +-0.0088609,-0.0093865,-0.0096292,0.40412,0.17995,0.17795,0.15111,0.1751,0,0,0.18393,0.34315 +-0.0080492,-0.0088609,-0.0093865,0.42335,0.21594,0.17995,0.17795,0.13553,0,0,0.30751,0 +-0.0075086,-0.0080492,-0.0088609,0.4401,0.3,0.21594,0.17995,-0,0,0,0.044932,0 +0.22774,0.3,0.21964,0,0.2,0.3,0.21594,0,0,0,0.068084,0 +0.189,0.2,0.3,-0,0.2,0.2,0.3,-0,0,0,0.29812,0 +0.20188,0.2,0.2,-0,0.5,0.2,0.2,-0,0,0,-0.2342,0 +0.3342,0.5,0.2,-0,0.1,0.5,0.2,-0,0,0,0.24806,0 +0.15194,0.1,0.5,-0,0.4,0.1,0.5,-0,0,0,-0.54937,0 +0.34937,0.4,0.1,-0,-0.2,0.4,0.1,-0,0,0,-0.058494,0 +-0.041506,-0.2,0.4,-0,-0.1,-0.2,0.4,-0,0,0,-0.031455,0 +0.031455,-0.1,-0.2,-0,-5.2088e-19,-0.1,-0.2,-0,0,0,0.16113,0 +-0.061133,0,-0.1,-0,0.1,1.2471e-19,-0.1,-0,0,0,0.073096,0 +0.026904,0.1,3.8299e-18,-0,0.1,0.1,4.3231e-18,-0,0,0,0.33777,0 +0.062233,0.1,0.1,-0,0.4,0.1,0.1,-0,0,0,-0.046158,0 +0.24616,0.4,0.1,-0,0.2,0.4,0.1,-0,0,0,0.030678,0 +0.16932,0.2,0.4,-0,0.2,0.2,0.4,-0,0,0,-0.12768,0 +0.22768,0.2,0.2,-0,0.1,0.2,0.2,-0,0,0,0.37663,0 +0.12337,0.1,0.2,-0,0.5,0.1,0.2,-0,0,0,0.17533,0 +0.32467,0.5,0.1,-0,0.5,0.5,0.1,-0,0,0,-0.03697,0 +0.33697,0.5,0.5,-0,0.3,0.5,0.5,-0,0,0,-0.03477,0 +0.33477,0.3,0.5,-0,0.3,0.3,0.5,-0,0,0,0.18428,0 +0.31572,0.3,0.3,-0,0.5,0.3,0.3,-0,0,0,-0.16952,0 +0.36952,0.5,0.3,-0,0.2,0.5,0.3,-0,0,0,-0.030456,0 +0.23046,0.2,0.5,-0,0.2,0.2,0.5,-0,0,0,-0.25348,0 +0.25348,0.2,0.2,-0,-1.7111e-18,0.2,0.2,-0,0,0,0.52934,0 +0.070659,0,0.2,-0,0.6,1.6852e-18,0.2,-0,0,0,0.03215,0 +0.36785,0.6,1.2582e-17,-0,0.4,0.6,1.2799e-17,-0,0,0,0.032015,0 +0.26799,0.4,0.6,-0,0.3,0.4,0.6,-0,0,0,-0.35105,0 +0.35105,0.3,0.4,-0,-1.8368e-18,0.3,0.4,-0,0,0,0.56821,0 +0.13179,0,0.3,-0,0.7,2.305e-18,0.3,-0,0,0,-0.046361,0 +0.44636,0.7,1.3506e-17,-0,0.4,0.7,1.3193e-17,-0,0,0,0.22249,0 +0.27751,0.4,0.7,-0,0.5,0.4,0.7,-0,0,0,-0.082265,0 +0.48227,0.5,0.4,-0,0.4,0.5,0.4,-0,0,0,1.5383,0 +0.36167,0.4,0.5,-0,1.9,0.4,0.5,-0,0,0,0.83144,0 +1.1686,1.9,0.4,-0,2,1.9,0.4,-0,0,0,0.46165,0 +1.3384,2,1.9,-0,1.8,2,1.9,-0,0,0,-1.2295,0 +1.6295,1.8,2,-0,0.4,1.8,2,-0,0,0,2.1016,0 +0.89837,0.4,1.8,-0,3,0.4,1.8,-0,0,0,-0.38378,0 +2.0838,3,0.4,-0,1.7,3,0.4,-0,0,0,2.315,0 +1.285,1.7,3,-0,3.6,1.7,3,-0,0,0,-1.0335,0 +2.8335,3.6,1.7,-0,1.8,3.6,1.7,-0,0,0,-1.7303,0 +1.7303,1.8,3.6,-0,1.6176e-18,1.8,3.6,-0,0,0,-0.5004,0 +1.1004,0,1.8,-0,0.6,-4.3511e-18,1.8,-0,0,0,0.41929,0 +0.78071,0.6,-1.1894e-17,-0,1.2,0.6,-9.0648e-18,-0,0,0,-0.089643,0 +0.68964,1.2,0.6,-0,0.6,1.2,0.6,-0,0,0,-0.28538,0 +0.58538,0.6,1.2,-0,0.3,0.6,1.2,-0,0,0,0.37508,0 +0.52492,0.3,0.6,-0,0.9,0.3,0.6,-0,0,0,0.042236,0 +0.65776,0.9,0.3,-0,0.7,0.9,0.3,-0,0,0,-0.032096,0 +0.5321,0.7,0.9,-0,0.5,0.7,0.9,-0,0,0,0.83755,0 +0.56245,0.5,0.7,-0,1.4,0.5,0.7,-0,0,0,0.43384,0 +0.96616,1.4,0.5,-0,1.4,1.4,0.5,-0,0,0,-0.90028,0 +1.0003,1.4,1.4,-0,0.1,1.4,1.4,-0,0,0,0.25268,0 +0.54732,0.1,1.4,-0,0.8,0.1,1.4,-0,0,0,0.70757,0 +0.79243,0.8,0.1,-0,1.5,0.8,0.1,-0,0,0,1.1074,0 +0.89262,1.5,0.8,-0,2,1.5,0.8,-0,0,0,-0.40346,0 +1.4035,2,1.5,-0,1,2,1.5,-0,0,0,0.49535,0 +1.1046,1,2,-0,1.6,1,2,-0,0,0,1.0454,0 +1.4546,1.6,1,-0,2.5,1.6,1,-0,0,0,0.87187,0 +1.7281,2.5,1.6,-0,2.6,2.5,1.6,-0,0,0,0.2786,0 +2.0214,2.6,2.5,-0,2.3,2.6,2.5,-0,0,0,0.69497,0 +2.105,2.3,2.6,-0,2.8,2.3,2.6,-0,0,0,1.3342,0 +2.3658,2.8,2.3,-0,3.7,2.8,2.3,-0,0,0,-1.1104,0 +2.8104,3.7,2.8,-0,1.7,3.7,2.8,-0,0,0,0.82901,0 +1.971,1.7,3.7,-0,2.8,1.7,3.7,-0,0,0,-0.59248,0 +2.5925,2.8,1.7,-0,2,2.8,1.7,-0,0,0,0.94047,0 +1.7595,2,2.8,-0,2.7,2,2.8,-0,0,0,-0.23612,0 +2.3361,2.7,2,-0,2.1,2.7,2,-0,0,0,-1.1801,0 +1.8801,2.1,2.7,-0,0.7,2.1,2.7,-0,0,0,-1.3657,0 +1.2657,0.7,2.1,-0,-0.1,0.7,2.1,-0,0,0,0.24415,0 +0.55585,-0.1,0.7,-0,0.8,-0.1,0.7,-0,0,0,-0.49276,0 +0.59276,0.8,-0.1,-0,0.1,0.8,-0.1,-0,0,0,0.29689,0 +0.10311,0.1,0.8,-0,0.4,0.1,0.8,-0,0,0,-0.32678,0 +0.42678,0.4,0.1,-0,0.1,0.4,0.1,-0,0,0,-0.016615,0 +0.11662,0.1,0.4,-0,0.1,0.1,0.4,-0,0,0,0.13455,0 +0.16545,0.1,0.1,-0,0.3,0.1,0.1,-0,0,0,0.80655,0 +0.19345,0.3,0.1,-0,1,0.3,0.1,-0,0,0,-0.081453,0 +0.58145,1,0.3,-0,0.5,1,0.3,-0,0,0,0.66379,0 +0.43621,0.5,1,-0,1.1,0.5,1,-0,0,0,-0.28544,0 +0.88544,1.1,0.5,-0,0.6,1.1,0.5,-0,0,0,-0.75005,0 +0.55005,0.6,1.1,-0,-0.2,0.6,1.1,-0,0,0,-0.53558,0 +0.23558,-0.2,0.6,-0,-0.3,-0.2,0.6,-0,0,0,-0.17765,0 +-0.022352,-0.3,-0.2,-0,-0.2,-0.3,-0.2,-0,0,0,0.2856,0 +-0.1856,-0.2,-0.3,-0,0.1,-0.2,-0.3,-0,0,0,-0.65624,0 +-0.043756,0.1,-0.2,-0,-0.7,0.1,-0.2,-0,0,0,1.011,0 +-0.41103,-0.7,0.1,-0,0.6,-0.7,0.1,-0,0,0,-1.7754,0 +0.27536,0.6,-0.7,-0,-1.5,0.6,-0.7,-0,0,0,-0.88592,0 +-0.91408,-1.5,0.6,-0,-1.8,-1.5,0.6,-0,0,0,0.4368,0 +-0.9368,-1.8,-1.5,-0,-0.5,-1.8,-1.5,-0,0,0,1.2221,0 +-0.82206,-0.5,-1.8,-0,0.4,-0.5,-1.8,-0,0,0,1.4013,0 +-0.30127,0.4,-0.5,-0,1.1,0.4,-0.5,-0,0,0,1.1111,0 +0.48887,1.1,0.4,-0,1.6,1.1,0.4,-0,0,0,0.048684,0 +1.0513,1.6,1.1,-0,1.1,1.6,1.1,-0,0,0,-0.51604,0 +1.016,1.1,1.6,-0,0.5,1.1,1.6,-0,0,0,-0.18118,0 +0.78118,0.5,1.1,-0,0.6,0.5,1.1,-0,0,0,0.95229,0 +0.64771,0.6,0.5,-0,1.6,0.6,0.5,-0,0,0,0.47051,0 +1.0295,1.6,0.6,-0,1.5,1.6,0.6,-0,0,0,-0.59785,0 +1.0978,1.5,1.6,-0,0.5,1.5,1.6,-0,0,0,1.4807,0 +0.81928,0.5,1.5,-0,2.3,0.5,1.5,-0,0,0,0.25305,0 +1.6469,2.3,0.5,-0,1.9,2.3,0.5,-0,0,0,-1.7496,0 +1.3496,1.9,2.3,-0,-0.4,1.9,2.3,-0,0,0,-0.16365,0 +0.56365,-0.4,1.9,-0,0.4,-0.4,1.9,-0,0,0,0.93701,0 +0.66299,0.4,-0.4,-0,1.6,0.4,-0.4,-0,0,0,-0.9782,0 +0.7782,1.6,0.4,-0,-0.2,1.6,0.4,-0,0,0,1.8498,0 +0.15022,-0.2,1.6,-0,2,-0.2,1.6,-0,0,0,1.9521,0 +1.4479,2,-0.2,-0,3.4,2,-0.2,-0,0,0,0,0.53075 diff --git a/statsmodels/tsa/statespace/tests/results/results_wpi1_missing_ar3_regression.csv b/statsmodels/tsa/statespace/tests/results/results_wpi1_missing_ar3_regression.csv new file mode 100644 index 0000000..d57a54e --- /dev/null +++ b/statsmodels/tsa/statespace/tests/results/results_wpi1_missing_ar3_regression.csv @@ -0,0 +1,125 @@ +measurement_disturbance,state_disturbance,state1,state2,state3 +0.0,-0.012249710956473007,0.09999847412109375,0.13875606407813293,-0.5955505810801347 +0.0,0.007376370737491258,-0.09999847412109375,0.09999847412109375,0.13875606407813298 +0.0,0.08372130249481202,0.0,-0.09999847412109378,0.09999847412109375 +0.0,-0.32690242654418944,0.09999847412109375,0.0,-0.09999847412109378 +0.0,0.14859506323356628,-0.2999992370605469,0.09999847412109375,0.0 +0.0,0.10277554252204896,0.0,-0.2999992370605469,0.09999847412109375 +0.0,0.12470348354244232,0.10000038146972656,0.0,-0.2999992370605469 +0.0,-0.1622338988708496,0.10000038146972656,0.10000038146972656,0.0 +0.0,2.282665582823054,-0.10000038146972656,0.10000038146972656,0.10000038146972656 +0.0,0.0,2.2652880465332665,-0.10000038146972656,0.10000038146972656 +0.0,0.0,3.1140941115786447,1.9141087260989509,-0.10000038146972656 +0.0,0.0,3.361014640713929,2.596264805978015,1.592194349034161 +0.0,0.0,3.615453754638013,2.745610667187603,2.1255108917956242 +0.0,0.0,3.6090853559164158,2.88910273940496,2.1917470910139096 +0.0,0.0,3.3282963882441914,2.805063371586638,2.243457392531136 +0.0,0.0,2.8507055661157206,2.493117044793949,2.1015441352980826 +0.0,0.0,2.4014319683282084,2.0329006295467926,1.777249036122312 +0.0,0.0,1.8639494800349843,1.5977448910222989,1.3513965157393526 +0.0,0.0,1.1239874524177647,1.1146150830645312,0.9547952291775712 +0.0,0.0,0.6639305220252271,0.5575632796023778,0.5526142853366915 +0.0,-0.025127064968272772,0.3000011444091797,0.21594404901179493,0.17994716439211986 +0.0,0.01028733644822688,0.1999988555908203,0.3000011444091797,0.2159440490117949 +0.0,0.2981202942474365,0.20000076293945312,0.1999988555908203,0.3000011444091797 +0.0,-0.23419159325294497,0.4999980926513672,0.20000076293945312,0.1999988555908203 +0.0,0.24805158964176177,0.10000228881835938,0.4999980926513672,0.20000076293945312 +0.0,-0.5493679477434158,0.3999977111816406,0.10000228881835938,0.4999980926513672 +0.0,-0.058498039873504624,-0.1999969482421875,0.3999977111816406,0.10000228881835938 +0.0,-0.03145328374710081,-0.10000228881835938,-0.1999969482421875,0.3999977111816406 +0.0,0.1611349493923187,0.0,-0.10000228881835938,-0.1999969482421875 +0.0,0.07309425834655761,0.10000228881835936,0.0,-0.10000228881835938 +0.0,0.3377688320903778,0.09999847412109375,0.10000228881835936,0.0 +0.0,-0.04616258124427797,0.40000152587890625,0.09999847412109375,0.10000228881835936 +0.0,0.030680249807739257,0.1999969482421875,0.40000152587890625,0.09999847412109375 +0.0,-0.1276789763217926,0.20000076293945312,0.1999969482421875,0.40000152587890625 +0.0,0.376632998412323,0.10000228881835938,0.20000076293945312,0.1999969482421875 +0.0,0.17533060509872433,0.5,0.10000228881835938,0.20000076293945312 +0.0,-0.036971303535842874,0.5,0.5,0.10000228881835938 +0.0,-0.03477021081581111,0.2999992370605469,0.5,0.5 +0.0,0.18428288480224608,0.2999992370605469,0.2999992370605469,0.5 +0.0,-0.16952375751647952,0.5,0.2999992370605469,0.2999992370605469 +0.0,-0.03045504231872556,0.20000076293945312,0.5,0.2999992370605469 +0.0,-0.25348478480224607,0.20000076293945312,0.20000076293945312,0.5 +0.0,0.5293388445770264,0.0,0.20000076293945312,0.20000076293945312 +0.0,0.03215213326072697,0.5999984741210938,0.0,0.20000076293945312 +0.0,0.03201319817047121,0.40000152587890625,0.5999984741210938,0.0 +0.0,-0.35104661950263966,0.2999992370605469,0.40000152587890625,0.5999984741210938 +0.0,0.5682078518871307,5.551115123125783e-17,0.2999992370605469,0.40000152587890625 +0.0,-0.046363194076538106,0.7000007629394531,5.551115123125783e-17,0.2999992370605469 +0.0,0.22248962369232178,0.3999977111816406,0.7000007629394531,5.551115123125783e-17 +0.0,-0.08226357295074459,0.5,0.3999977111816406,0.7000007629394531 +0.0,1.5383240475307465,0.40000152587890625,0.5,0.3999977111816406 +0.0,0.8314429410137174,1.8999977111816406,0.40000152587890625,0.5 +0.0,0.4616492060626982,2.0,1.8999977111816406,0.40000152587890625 +0.0,-1.2295220567165375,1.8000030517578125,2.0,1.8999977111816406 +0.0,2.1016309756565095,0.3999977111816406,1.8000030517578125,2.0 +0.0,-0.3837827264865874,3.0,0.3999977111816406,1.8000030517578125 +0.0,2.3149790125938416,1.7000007629394531,3.0,0.3999977111816406 +0.0,-1.0335043266735076,3.5999984741210938,1.7000007629394531,3.0 +0.0,-1.730331390002823,1.8000030517578125,3.5999984741210938,1.7000007629394531 +0.0,-0.5003995628623961,0.0,1.8000030517578125,3.5999984741210938 +0.0,0.419293979724884,0.5999984741210938,0.0,1.8000030517578125 +0.0,-0.08964436264534004,1.2000007629394531,0.5999984741210938,0.0 +0.0,-0.28537739763984676,0.5999984741210938,1.2000007629394531,0.5999984741210938 +0.0,0.3750810464942933,0.29999923706054693,0.5999984741210938,1.2000007629394531 +0.0,0.0422363851016998,0.9000015258789062,0.29999923706054693,0.5999984741210938 +0.0,-0.03209622061538697,0.7000007629394531,0.9000015258789062,0.29999923706054693 +0.0,0.83754663477211,0.5,0.7000007629394531,0.9000015258789062 +0.0,0.4338469353843689,1.3999977111816406,0.5,0.7000007629394531 +0.0,-0.9002857820903778,1.4000015258789062,1.3999977111816406,0.5 +0.0,0.252681631244278,0.09999847412109375,1.4000015258789062,1.3999977111816406 +0.0,0.7075651131317139,0.8000030517578125,0.09999847412109375,1.4000015258789062 +0.0,1.10738026301651,1.5,0.8000030517578125,0.09999847412109375 +0.0,-0.40346413746185306,2.0,1.5,0.8000030517578125 +0.0,0.4953511241210937,1.0,2.0,1.5 +0.0,1.0453541042472838,1.5999984741210938,1.0,2.0 +0.0,0.871866289478302,2.5,1.5999984741210938,1.0 +0.0,0.27860829973602286,2.5999984741210938,2.5,1.5999984741210938 +0.0,0.6949613792259219,2.3000030517578125,2.5999984741210938,2.5 +0.0,1.3342136033950807,2.7999954223632812,2.3000030517578125,2.5999984741210938 +0.0,-1.1103836558898923,3.7000045776367188,2.7999954223632812,2.3000030517578125 +0.0,0.8290176453735352,1.6999969482421875,3.7000045776367188,2.7999954223632812 +0.0,-0.5924782589729309,2.8000030517578125,1.6999969482421875,3.7000045776367188 +0.0,0.9404624549896241,2.0,2.8000030517578125,1.6999969482421875 +0.0,-0.23611575484619118,2.6999969482421875,2.0,2.8000030517578125 +0.0,-1.1801209874015808,2.0999984741210938,2.6999969482421875,2.0 +0.0,-1.3656945840438843,0.7000045776367188,2.0999984741210938,2.6999969482421875 +0.0,0.24414426577529913,-0.09999847412109375,0.7000045776367188,2.0999984741210938 +0.0,-0.49275635968704223,0.7999954223632812,-0.09999847412109375,0.7000045776367188 +0.0,0.29688973246688843,0.09999847412109375,0.7999954223632812,-0.09999847412109375 +0.0,-0.3267841335762024,0.40000152587890625,0.09999847412109375,0.7999954223632812 +0.0,-0.016608063863372793,0.09999847412109375,0.40000152587890625,0.09999847412109375 +0.0,0.13454447700042724,0.100006103515625,0.09999847412109375,0.40000152587890625 +0.0,0.8065510950439452,0.29999542236328125,0.100006103515625,0.09999847412109375 +0.0,-0.08145457885208118,0.9999999999999999,0.29999542236328125,0.100006103515625 +0.0,0.6637919553138734,0.5,0.9999999999999999,0.29999542236328125 +0.0,-0.28543789223709104,1.0999984741210938,0.5,0.9999999999999999 +0.0,-0.7500557292686463,0.600006103515625,1.0999984741210938,0.5 +0.0,-0.5355747273193359,-0.20000457763671875,0.600006103515625,1.0999984741210938 +0.0,-0.17765571923065185,-0.29999542236328125,-0.20000457763671875,0.600006103515625 +0.0,0.2856014219841003,-0.20000457763671875,-0.29999542236328125,-0.20000457763671875 +0.0,-0.6562411291160584,0.09999847412109375,-0.20000457763671875,-0.29999542236328125 +0.0,1.0110292121765136,-0.6999969482421875,0.09999847412109375,-0.20000457763671875 +0.0,-1.775362632736206,0.5999984741210938,-0.6999969482421875,0.09999847412109375 +0.0,-0.8859207444679259,-1.5,0.5999984741210938,-0.6999969482421875 +0.0,0.4367973309890747,-1.7999954223632812,-1.5,0.5999984741210938 +0.0,1.2220528004127502,-0.5,-1.7999954223632812,-1.5 +0.0,1.4012740893119813,0.399993896484375,-0.5,-1.7999954223632812 +0.0,1.1111304185607909,1.100006103515625,0.399993896484375,-0.5 +0.0,0.04868424186325071,1.5999984741210938,1.100006103515625,0.399993896484375 +0.0,-0.5160364053192139,1.0999984741210938,1.5999984741210938,1.100006103515625 +0.0,-0.18118096679077145,0.5,1.0999984741210938,1.5999984741210938 +0.0,0.9522870720993042,0.5999984741210938,0.5,1.0999984741210938 +0.0,0.47051201960449207,1.5999984741210938,0.5999984741210938,0.5 +0.0,-0.5978460909118652,1.5,1.5999984741210938,0.5999984741210938 +0.0,1.480718945488739,0.5,1.5,1.5999984741210938 +0.0,0.25305156738433854,2.3000030517578125,0.5,1.5 +0.0,-1.7495572108406066,1.9000015258789062,2.3000030517578125,0.5 +0.0,-0.16364812269287096,-0.40000152587890625,1.9000015258789062,2.3000030517578125 +0.0,0.9370058915000916,0.40000152587890625,-0.40000152587890625,1.9000015258789062 +0.0,-0.9782006156211852,1.5999984741210938,0.40000152587890625,-0.40000152587890625 +0.0,1.8497801631317137,-0.1999969482421874,1.5999984741210938,0.40000152587890625 +0.0,1.9520464595008853,1.9999999999999998,-0.1999969482421874,1.5999984741210938 +0.0,0.0,3.399993896484375,1.9999999999999998,-0.1999969482421874 +0.0,0.0,0.0,0.0,0.0 diff --git a/statsmodels/tsa/statespace/tests/results/test_clark1989_r.R b/statsmodels/tsa/statespace/tests/results/test_clark1989_r.R new file mode 100644 index 0000000..655fd58 --- /dev/null +++ b/statsmodels/tsa/statespace/tests/results/test_clark1989_r.R @@ -0,0 +1,98 @@ +library(FKF) +library(KFAS) +options(digits=10) + +# Observations +df <- read.csv("clark1989.csv", header=FALSE) +lgdp = log(df$V1[5:nrow(df)]) +unemp = (df$V2 / 100)[5:nrow(df)] + +# True parameters +params <- c( + 0.004863, 0.00668, 0.000295, 0.001518, 0.000306, 1.43859, -0.517385, + -0.336789, -0.163511, -0.072012 +) + +# Dimensions +n = 2 +k = 6 + +# Measurement equation +H = matrix(rep(0, n*k), nrow=n) +H[1,1] = 1 +H[1,2] = 1 +H[2,6] = 1 +obs_intercept = matrix(rep(0,n), nrow=n) +R = matrix(rep(0, n^2), nrow=n) + +# Transition equation + +mu = matrix(rep(0, k), nrow=k) +F = matrix(rep(0, k^2), nrow=k) +F[1,1] = 1 +F[1,5] = 1 +F[3,2] = 1 +F[4,3] = 1 +F[5,5] = 1 +F[6,6] = 1 + +# Q = G Q_star G' +Q = matrix(rep(0, k^2), nrow=k) + +# Update matrices with given parameters +H[2,2] = params[8] +H[2,3] = params[9] +H[2,4] = params[10] +F[2,2] = params[6] +F[2,3] = params[7] +R[2,2] = params[5]^2 +Q[1,1] = params[1]^2 +Q[2,2] = params[2]^2 +Q[5,5] = params[3]^2 +Q[6,6] = params[4]^2 + +# Initialization: Diffuse priors +initial_state = c(mu) +initial_state_cov = diag(k) * 100 + +initial_state_cov = (F %*% initial_state_cov) %*% (t(F)) + +# - FKF --------------------------------------------------------------------- # + +# Filter, complete dataset +dta <- rbind(lgdp,unemp) +ans <- fkf(a0=initial_state, P0=initial_state_cov, + dt=mu, ct=obs_intercept, Tt=F, Zt=H, + HHt=Q, GGt=R, yt=dta) + +# Filter, partially missing dataset (using KFAS) +unemp2 = unemp +n = length(unemp2) +unemp2[(n-50):n] <- NaN +dta2 <- rbind(lgdp,unemp2) +ans2 <- fkf(a0=initial_state, P0=initial_state_cov, + dt=mu, ct=obs_intercept, Tt=F, Zt=H, + HHt=Q, GGt=R, yt=dta2) + +mod <- SSModel(t(dta2) ~ -1+SSMcustom(H, F, diag(6), Q, P1=initial_state_cov), H=R) +fit <- KFS(mod, filtering="state", smoothing="state") + +# Recalculate Kalman gain +# FKF defines the Kalman gain as P Z' F^{-1}, whereas Durbin and Koopman (2012) +# use T P Z' F^{-1}, so premultiply the ans$Kt by the transition matrix +Kt = ans$Kt +for (i in 1:n) { + Kt[,,i] = F %*% Kt[,,i] +} + +# Create output columns +# 1: sum of complete dataset Kalman gain +sum_complete_Kt = colSums(Kt, dims=2) +# 2-7: filtered states from incomplete dataset +# t(ans2$att) + +# Print likelihood from partial missing model +print(fit$logLik) + +out <- matrix(cbind(sum_complete_Kt, t(ans2$att))) +write.csv(out, 'results_clark1989_R.csv', row.names=FALSE) diff --git a/statsmodels/tsa/statespace/tests/results/test_dynamic_factor_stata.do b/statsmodels/tsa/statespace/tests/results/test_dynamic_factor_stata.do new file mode 100644 index 0000000..dfd93a1 --- /dev/null +++ b/statsmodels/tsa/statespace/tests/results/test_dynamic_factor_stata.do @@ -0,0 +1,149 @@ +// Helpful commands: +// matrix list e(b) +// matrix d = vecdiag(e(V)) +// matrix list d + +webuse lutkepohl2, clear +tsset +// use lutkepohl2_s12, clear +// tsset qtr + +// Dynamic factors +dfactor (dln_inv dln_inc dln_consump = , noconstant ) (f = , ar(1/2)) if qtr<=tq(1978q4) + +// These are predict in-sample + forecast out-of-sample (1979q1 is first out-of sample obs) +predict predict_dfm_1, dynamic(tq(1979q1)) equation(dln_inv) +predict predict_dfm_2, dynamic(tq(1979q1)) equation(dln_inc) +predict predict_dfm_3, dynamic(tq(1979q1)) equation(dln_consump) + +// These are predict in-sample for first 3-observations (1960q2-1960q4), then +// dynamic predict for the rest of in-sample observations (1961q1-1978q4), then +// forecast for the remaining periods 1979q1 - 1982q4 +predict dyn_predict_dfm_1, dynamic(tq(1961q1)) equation(dln_inv) +predict dyn_predict_dfm_2, dynamic(tq(1961q1)) equation(dln_inc) +predict dyn_predict_dfm_3, dynamic(tq(1961q1)) equation(dln_consump) + +// Dynamic factors, with 2 factors +// Note: this does not converge even if we do not enforce iter(#), but this is +// good enough for testing +dfactor (dln_inv dln_inc dln_consump = , noconstant ) (f1 f2 = , ar(1) arstructure(general)) if qtr<=tq(1978q4), iter(1) + +// predict + forecast, see above +predict predict_dfm2_1, dynamic(tq(1979q1)) equation(dln_inv) +predict predict_dfm2_2, dynamic(tq(1979q1)) equation(dln_inc) +predict predict_dfm2_3, dynamic(tq(1979q1)) equation(dln_consump) + +// predict + dynamic predict + forecast, see above +predict dyn_predict_dfm2_1, dynamic(tq(1961q1)) equation(dln_inv) +predict dyn_predict_dfm2_2, dynamic(tq(1961q1)) equation(dln_inc) +predict dyn_predict_dfm2_3, dynamic(tq(1961q1)) equation(dln_consump) + +// Dynamic factors, with 1 exog +gen c = 1 +dfactor (dln_inv dln_inc dln_consump = c, noconstant ) (f = , ar(1)) if qtr<=tq(1978q4) + +// predict + forecast, see above +predict predict_dfm_exog1_1, dynamic(tq(1979q1)) equation(dln_inv) +predict predict_dfm_exog1_2, dynamic(tq(1979q1)) equation(dln_inc) +predict predict_dfm_exog1_3, dynamic(tq(1979q1)) equation(dln_consump) + +// predict + dynamic predict + forecast, see above +predict dyn_predict_dfm_exog1_1, dynamic(tq(1961q1)) equation(dln_inv) +predict dyn_predict_dfm_exog1_2, dynamic(tq(1961q1)) equation(dln_inc) +predict dyn_predict_dfm_exog1_3, dynamic(tq(1961q1)) equation(dln_consump) + +// Dynamic factors, with 2 exog +gen t = _n +dfactor (dln_inv dln_inc dln_consump = c t, noconstant ) (f = , ar(1)) if qtr<=tq(1978q4) + +// predict + forecast, see above +predict predict_dfm_exog2_1, dynamic(tq(1979q1)) equation(dln_inv) +predict predict_dfm_exog2_2, dynamic(tq(1979q1)) equation(dln_inc) +predict predict_dfm_exog2_3, dynamic(tq(1979q1)) equation(dln_consump) + +// predict + dynamic predict + forecast, see above +predict dyn_predict_dfm_exog2_1, dynamic(tq(1961q1)) equation(dln_inv) +predict dyn_predict_dfm_exog2_2, dynamic(tq(1961q1)) equation(dln_inc) +predict dyn_predict_dfm_exog2_3, dynamic(tq(1961q1)) equation(dln_consump) + +// Dynamic factors, with general errors (VAR + unstructured), on de-meaned data +// (have to demean, otherwise get non-stationarity start params for the error +// VAR) +dfactor (dln_inv dln_inc dln_consump = , noconstant ar(1) arstructure(general) covstructure(unstructured)) (f = , ar(1)) if qtr<=tq(1978q4) + +// predict + forecast, see above +predict predict_dfm_gen_1, dynamic(tq(1979q1)) equation(dln_inv) +predict predict_dfm_gen_2, dynamic(tq(1979q1)) equation(dln_inc) +predict predict_dfm_gen_3, dynamic(tq(1979q1)) equation(dln_consump) + +// predict + dynamic predict + forecast, see above +predict dyn_predict_dfm_gen_1, dynamic(tq(1961q1)) equation(dln_inv) +predict dyn_predict_dfm_gen_2, dynamic(tq(1961q1)) equation(dln_inc) +predict dyn_predict_dfm_gen_3, dynamic(tq(1961q1)) equation(dln_consump) + +// Dynamic factors, with AR(2) errors +dfactor (dln_inv dln_inc dln_consump = , noconstant ar(1/2)) (f = , ar(1)) if qtr<=tq(1978q4) + +// predict + forecast, see above +predict predict_dfm_ar2_1, dynamic(tq(1979q1)) equation(dln_inv) +predict predict_dfm_ar2_2, dynamic(tq(1979q1)) equation(dln_inc) +predict predict_dfm_ar2_3, dynamic(tq(1979q1)) equation(dln_consump) + +// predict + dynamic predict + forecast, see above +predict dyn_predict_dfm_ar2_1, dynamic(tq(1961q1)) equation(dln_inv) +predict dyn_predict_dfm_ar2_2, dynamic(tq(1961q1)) equation(dln_inc) +predict dyn_predict_dfm_ar2_3, dynamic(tq(1961q1)) equation(dln_consump) + +// Dynamic factors, with scalar error covariance + constant (1 exog) +// Note: estimation does not converge w/o constant term +dfactor (dln_inv dln_inc dln_consump = c, noconstant covstructure(dscalar)) (f = , ar(1)) if qtr<=tq(1978q4) + +// predict + forecast, see above +predict predict_dfm_scalar_1, dynamic(tq(1979q1)) equation(dln_inv) +predict predict_dfm_scalar_2, dynamic(tq(1979q1)) equation(dln_inc) +predict predict_dfm_scalar_3, dynamic(tq(1979q1)) equation(dln_consump) + +// predict + dynamic predict + forecast, see above +predict dyn_predict_dfm_scalar_1, dynamic(tq(1961q1)) equation(dln_inv) +predict dyn_predict_dfm_scalar_2, dynamic(tq(1961q1)) equation(dln_inc) +predict dyn_predict_dfm_scalar_3, dynamic(tq(1961q1)) equation(dln_consump) + +// Static factor (factor with no autocorrelation) +// Note: estimation does not converge w/o constant term +dfactor (dln_inv dln_inc dln_consump = , noconstant) (f = , ) if qtr<=tq(1978q4) + +// predict + forecast, see above +predict predict_sfm_1, dynamic(tq(1979q1)) equation(dln_inv) +predict predict_sfm_2, dynamic(tq(1979q1)) equation(dln_inc) +predict predict_sfm_3, dynamic(tq(1979q1)) equation(dln_consump) + +// predict + dynamic predict + forecast, see above +predict dyn_predict_sfm_1, dynamic(tq(1961q1)) equation(dln_inv) +predict dyn_predict_sfm_2, dynamic(tq(1961q1)) equation(dln_inc) +predict dyn_predict_sfm_3, dynamic(tq(1961q1)) equation(dln_consump) + +// SUR (exog, no autocorrelation, correlated innovations) +dfactor (dln_inv dln_inc dln_consump = c t, noconstant covstructure(unstructured)) if qtr<=tq(1978q4) + +// predict + forecast, see above +predict predict_sur_1, dynamic(tq(1979q1)) equation(dln_inv) +predict predict_sur_2, dynamic(tq(1979q1)) equation(dln_inc) +predict predict_sur_3, dynamic(tq(1979q1)) equation(dln_consump) + +// predict + dynamic predict + forecast, see above +predict dyn_predict_sur_1, dynamic(tq(1961q1)) equation(dln_inv) +predict dyn_predict_sur_2, dynamic(tq(1961q1)) equation(dln_inc) +predict dyn_predict_sur_3, dynamic(tq(1961q1)) equation(dln_consump) + +// SUR (exog, vector error autocorrelation, uncorrelated innovations) +dfactor (dln_inv dln_inc = c t, noconstant ar(1)) if qtr<=tq(1978q4) + +// predict + forecast, see above +predict predict_sur_auto_1, dynamic(tq(1979q1)) equation(dln_inv) +predict predict_sur_auto_2, dynamic(tq(1979q1)) equation(dln_inc) + +// predict + dynamic predict + forecast, see above +predict dyn_predict_sur_auto_1, dynamic(tq(1961q1)) equation(dln_inv) +predict dyn_predict_sur_auto_2, dynamic(tq(1961q1)) equation(dln_inc) + +outsheet pred* dyn* using results_dynamic_factor_stata.csv, comma replace diff --git a/statsmodels/tsa/statespace/tests/results/test_realgdpar_r.R b/statsmodels/tsa/statespace/tests/results/test_realgdpar_r.R new file mode 100644 index 0000000..6725f08 --- /dev/null +++ b/statsmodels/tsa/statespace/tests/results/test_realgdpar_r.R @@ -0,0 +1,51 @@ +library(FKF) + +# Observations +df <- read.csv("results_kalman_filter_stata.csv") +gdp = df$value +lgdp = log(gdp) +dlgdp = diff(lgdp) + +# Stata parameters +params <- c( + 0.40725515, 0.18782621, -0.01514009, -0.01027267, -0.03642297, 0.11576416, + 0.02573029, -.00766572, 0.13506498, 0.08649569, 0.06942822, -0.10685783, + 0.00008 +) + +# Measurement equation +n = 1 +H = matrix(rep(0, 12), nrow=1) +H[1,1] = 1 +R = matrix(c(0), nrow=1) + +# Transition equation +k = 12 +mu = matrix(rep(0,k), nrow=k) +F = matrix(rep(0,k*k), nrow=k) +for (i in 1:11) { + F[i+1,i] = 1 +} + +# Q = G Q_star G' +Q = matrix(rep(0,k*k), nrow=k) + +# Update matrices with given parameters +F[1,1:12] = params[1:12] +Q[1,1] = params[13] + +# Initialization: Unconditional mean priors +initial_state = c(solve(diag(k) - F) %*% mu) +initial_state_cov = solve(diag(k^2) - F %x% F) %*% matrix(c(Q)) +dim(initial_state_cov) <- c(k,k) + +# Filter +ans <- fkf(a0=initial_state, P0=initial_state_cov, + dt=mu, ct=matrix(0), Tt=F, Zt=H, + HHt=Q, GGt=R, yt=rbind(dlgdp)) + +write.csv(t(ans$att), 'results_states_gdp_R.csv', row.names=FALSE) +unlink('results_states_cov_gdp_R.csv') +for (t in 1:length(dlgdp)) { + write.table(t(ans$Ptt[,,t]), 'results_states_cov_gdp_R.csv', sep=",", append=TRUE, row.names=FALSE) +} \ No newline at end of file diff --git a/statsmodels/tsa/statespace/tests/results/test_realgdpar_stata.do b/statsmodels/tsa/statespace/tests/results/test_realgdpar_stata.do new file mode 100644 index 0000000..214dddd --- /dev/null +++ b/statsmodels/tsa/statespace/tests/results/test_realgdpar_stata.do @@ -0,0 +1,70 @@ +clear +insheet using results_realgdpar_stata.csv +keep value + +gen lgdp = log(value) +gen dlgdp = lgdp - lgdp[_n-1] +gen quarter = _n +tsset quarter + +// Estimate an ARMA(3,0) +arima dlgdp if ~missing(dlgdp), arima(3,0,0) noconstant +matrix b = e(b) +matrix b = (b[1,1..3],1,1,1,b[1,4]^2) + +// Estimate via a state-space model +constraint 1 [dlgdp]u1 = 1 +constraint 2 [u2]L.u1 = 1 +constraint 3 [u3]L.u2 = 1 + +sspace (u1 L.u1 L.u2 L.u3, state noconstant) /// + (u2 L.u1, state noconstant noerror) /// + (u3 L.u2, state noconstant noerror) /// + (dlgdp u1, noconstant noerror) if ~missing(dlgdp), /// + constraints(1/3) covstate(diagonal) from(b) + +// Estimate an ARMA(12,0) +arima dlgdp if ~missing(dlgdp), arima(12,0,0) noconstant +matrix b = e(b) +matrix b = (b[1,1..12],1,1,1, 1,1,1, 1,1,1, 1,1,1,b[1,13]^2) + +// Estimate via a state-space model +constraint 1 [dlgdp]u1 = 1 +constraint 2 [u2]L.u1 = 1 +constraint 3 [u3]L.u2 = 1 +constraint 4 [u4]L.u3 = 1 +constraint 5 [u5]L.u4 = 1 +constraint 6 [u6]L.u5 = 1 +constraint 7 [u7]L.u6 = 1 +constraint 8 [u8]L.u7 = 1 +constraint 9 [u9]L.u8 = 1 +constraint 10 [u10]L.u9 = 1 +constraint 11 [u11]L.u10 = 1 +constraint 12 [u12]L.u11 = 1 + +sspace (u1 L.u1 L.u2 L.u3 L.u4 L.u5 L.u6 L.u7 L.u8 L.u9 L.u10 L.u11 L.u12, state noconstant) /// + (u2 L.u1, state noconstant noerror) /// + (u3 L.u2, state noconstant noerror) /// + (u4 L.u3, state noconstant noerror) /// + (u5 L.u4, state noconstant noerror) /// + (u6 L.u5, state noconstant noerror) /// + (u7 L.u6, state noconstant noerror) /// + (u8 L.u7, state noconstant noerror) /// + (u9 L.u8, state noconstant noerror) /// + (u10 L.u9, state noconstant noerror) /// + (u11 L.u10, state noconstant noerror) /// + (u12 L.u11, state noconstant noerror) /// + (dlgdp u1, noconstant noerror) if ~missing(dlgdp), /// + constraints(1/12) covstate(diagonal) from (b) + +// Save the estimated states +predict est_u1-est_u12, states equation(u1 u2 u3 u4 u5 u6 u7 u8 u9 u10 u11 u12) + +// Save the filtered states +predict u1-u12, states equation(u1 u2 u3 u4 u5 u6 u7 u8 u9 u10 u11 u12) smethod(filter) + +// Save the standardized residuals +predict rstd, rstandard + +// Output +outsheet value u1-u12 est_u1-est_u12 rstd using results_realgdpar_stata.csv, comma replace diff --git a/statsmodels/tsa/statespace/tests/results/test_sarimax_coverage.do b/statsmodels/tsa/statespace/tests/results/test_sarimax_coverage.do new file mode 100644 index 0000000..552b5ec --- /dev/null +++ b/statsmodels/tsa/statespace/tests/results/test_sarimax_coverage.do @@ -0,0 +1,273 @@ +// Dataset +use http://www.stata-press.com/data/r12/wpi1, clear +rename t time + +set more off +set maxiter 100 + +// 25, 43, 48, 52 + +// Create data for exog test +gen x = (wpi - floor(wpi))^2 + +// Create data for deterministic trend tests +gen c = 1 +gen t = _n +gen t2 = t^2 +gen t3 = t^3 + +// Dummy column for saving LLFs +gen mod = "" +gen llf = . +gen parameters = "" + +// Program to save the results +program drop save_results +program save_results + args i + replace mod = e(cmdline) in `i' + replace llf = e(ll) in `i' + + matrix b = e(b) + local params = "" + local params = string(b[1,1]) + local nparams = e(k) + if `nparams' > 1 { + foreach j of numlist 2/`nparams' { + local params = "`params'," + string(b[1,`j']) + } + } + replace parameters = "`params'" in `i' +end + +// AR: (p,0,0) x (0,0,0,0) +capture arima wpi, arima(3,0,0) noconstant vce(oim) +save_results 1 + +// AR and deterministic trends ('nc', 'c', 'ct', polynomial) + +// 'c' +capture arima wpi c, arima(3,0,0) noconstant vce(oim) +save_results 2 + +// 'ct' +capture arima wpi c t, arima(3,0,0) noconstant vce(oim) +save_results 3 + +// polynomial [1,0,0,1] +capture arima wpi c t3, arima(3,0,0) noconstant vce(oim) +save_results 4 + +// AR and I(d): (p,d,0) x (0,0,0,0) +capture arima wpi, arima(3,2,0) noconstant vce(oim) +save_results 5 + +// AR and I(D): (p,0,0) x (0,D,0,s) +capture arima wpi, arima(3,0,0) sarima(0,2,0,4) noconstant vce(oim) +save_results 6 + +// AR and diffuse initialization +capture arima wpi, arima(3,0,0) noconstant vce(oim) diffuse +save_results 7 + +// ARX +capture arima wpi x, arima(3,0,0) noconstant vce(oim) +save_results 8 + +// MA: (0,0,q) x (0,0,0,0) +capture arima wpi, arima(0,0,3) noconstant vce(oim) +save_results 9 + +// MA and deterministic trends ('nc', 'c', 'ct', polynomial) + +// 'c' +capture arima wpi c, arima(0,0,3) noconstant vce(oim) +save_results 10 + +// 'ct' +capture arima wpi c t, arima(0,0,3) noconstant vce(oim) +save_results 11 + +// polynomial [1,0,0,1] +capture arima wpi c t3, arima(0,0,3) noconstant vce(oim) +save_results 12 + +// MA and I(d): (0,d,q) x (0,0,0,0) +capture arima wpi, arima(0,2,3) noconstant vce(oim) +save_results 13 + +// MA and I(D): (p,0,0) x (0,D,0,s) +capture arima wpi, arima(0,0,3) sarima(0,2,0,4) noconstant vce(oim) +save_results 14 + +// MA and diffuse initialization +capture arima wpi, arima(0,0,3) noconstant vce(oim) diffuse +save_results 15 + +// MAX +capture arima wpi x, arima(0,0,3) noconstant vce(oim) +save_results 16 + + +// ARMA: (p,0,q) x (0,0,0,0) +capture arima wpi, arima(3,0,3) noconstant vce(oim) +save_results 17 + +// ARMA and deterministic trends ('nc', 'c', 'ct', polynomial) + +// 'c' +capture arima wpi c, arima(3,0,2) noconstant vce(oim) +save_results 18 + +// 'ct' +capture arima wpi c t, arima(3,0,2) noconstant vce(oim) +save_results 19 + +// polynomial [1,0,0,1] +capture arima wpi c t3, arima(3,0,2) noconstant vce(oim) +save_results 20 + +// ARMA and I(d): (p,d,q) x (0,0,0,0) +capture arima wpi, arima(3,2,2) noconstant vce(oim) +save_results 21 + +// ARMA and I(D): (p,0,q) x (0,D,0,s) +capture arima wpi, arima(3,0,2) sarima(0,2,0,4) noconstant vce(oim) +save_results 22 + +// ARMA and I(d) and I(D): (p,d,q) x (0,D,0,s) +capture arima wpi, arima(3,2,2) sarima(0,2,0,4) noconstant vce(oim) +save_results 23 + +// ARMA and diffuse initialization +capture arima wpi, arima(3,0,2) noconstant vce(oim) diffuse +save_results 24 + +// ARMAX +capture arima wpi x, arima(3,0,2) noconstant vce(oim) +save_results 25 + +// SAR: (0,0,0) x (P,0,0,s) +capture arima wpi, sarima(3,0,0,4) noconstant vce(oim) +save_results 26 + +// SAR and deterministic trends ('nc', 'c', 'ct', polynomial) + +// 'c' +capture arima wpi c, sarima(3,0,0,4) noconstant vce(oim) +save_results 27 + +// 'ct' +capture arima wpi c t, sarima(3,0,0,4) noconstant vce(oim) +save_results 28 + +// polynomial [1,0,0,1] +capture arima wpi c t3, sarima(3,0,0,4) noconstant vce(oim) +save_results 29 + +// SAR and I(d): (0,d,0) x (P,0,0,s) +capture arima wpi, arima(0,2,0) sarima(3,0,0,4) noconstant vce(oim) +save_results 30 + +// SAR and I(D): (0,0,0) x (P,D,0,s) +capture arima wpi, sarima(3,2,0,4) noconstant vce(oim) +save_results 31 + +// SAR and diffuse initialization +capture arima wpi, sarima(3,0,0,4) noconstant vce(oim) diffuse +save_results 32 + +// SARX +capture arima wpi x, sarima(3,0,0,4) noconstant vce(oim) +save_results 33 + +// SMA +capture arima wpi, sarima(0,0,3,4) noconstant vce(oim) +save_results 34 + +// SMA and deterministic trends ('nc', 'c', 'ct', polynomial) + +// 'c' +capture arima wpi c, sarima(0,0,3,4) noconstant vce(oim) +save_results 35 + +// 'ct' +capture arima wpi c t, sarima(0,0,3,4) noconstant vce(oim) +save_results 36 + +// polynomial [1,0,0,1] +capture arima wpi c t3, sarima(0,0,3,4) noconstant vce(oim) +save_results 37 + +// SMA and I(d): (0,d,0) x (0,0,Q,s) +capture arima wpi, arima(0,2,0) sarima(0,0,3,4) noconstant vce(oim) +save_results 38 + +// SAR and I(D): (0,0,0) x (0,D,Q,s) + +capture arima wpi, sarima(0,2,3,4) noconstant vce(oim) +save_results 39 + +// SMA and diffuse initialization +capture arima wpi, sarima(0,0,3,4) noconstant vce(oim) diffuse +save_results 40 + +// SMAX +capture arima wpi x, sarima(0,0,3,4) noconstant vce(oim) +save_results 41 + +// SARMA: (0,0,0) x (P,0,Q,s) +capture arima wpi, sarima(3,0,2,4) noconstant vce(oim) +save_results 42 + +// SARMA and deterministic trends ('nc', 'c', 'ct', polynomial) + +// 'c' +capture arima wpi c, sarima(3,0,2,4) noconstant vce(oim) +save_results 43 + +// 'ct' +capture arima wpi c t, sarima(3,0,2,4) noconstant vce(oim) +save_results 44 + +// polynomial [1,0,0,1] +capture arima wpi c t3, sarima(3,0,2,4) noconstant vce(oim) +save_results 45 + +// SARMA and I(d): (0,d,0) x (P,0,Q,s) +capture arima wpi, arima(0,2,0) sarima(3,0,2,4) noconstant vce(oim) +save_results 46 + +// SARMA and I(D): (0,0,0) x (P,D,Q,s) +capture arima wpi, sarima(3,2,2,4) noconstant vce(oim) +save_results 47 + +// SARMA and I(d) and I(D): (0,d,0) x (P,D,Q,s) +capture arima wpi, arima(0,2,0) sarima(3,2,2,4) noconstant vce(oim) +save_results 48 + +// SARMA and diffuse initialization +capture arima wpi, sarima(3,0,2,4) noconstant vce(oim) diffuse +save_results 49 + +// SARMAX +capture arima wpi x, sarima(3,0,2,4) noconstant vce(oim) +save_results 50 + +// SARIMAX and exogenous +capture arima wpi x, arima(3,2,2) sarima(3,2,2,4) noconstant vce(oim) +save_results 51 + +// SARIMAX and exogenous and diffuse +capture arima wpi x, arima(3,2,2) sarima(3,2,2,4) noconstant vce(oim) diffuse +save_results 52 + +// ARMA and exogenous and trend polynomial and missing +gen wpi2 = wpi +gen t32 = (t-1)^3 +replace wpi2 = . in 10/19 +capture arima D.wpi2 t32 x, arima(3,0,2) noconstant vce(oim) +save_results 53 + +// Write results +outsheet mod llf parameters using "results_sarimax_coverage.csv" in 1/53, comma replace diff --git a/statsmodels/tsa/statespace/tests/results/test_sarimax_stata.do b/statsmodels/tsa/statespace/tests/results/test_sarimax_stata.do new file mode 100644 index 0000000..1d66626 --- /dev/null +++ b/statsmodels/tsa/statespace/tests/results/test_sarimax_stata.do @@ -0,0 +1,54 @@ +// Example 1: ARIMA model +use http://www.stata-press.com/data/r12/wpi1, clear +arima wpi, arima(1,1,1) vce(opg) +arima wpi, arima(1,1,1) vce(oim) +arima wpi, arima(1,1,1) vce(robust) +arima wpi, arima(1,1,1) diffuse vce(opg) +arima wpi, arima(1,1,1) diffuse vce(oim) + +// Estimate via a state-space model +constraint 1 [D.wpi]u1 = 1 +constraint 2 [u2]L.u1 = 1 +constraint 3 [u3]L.u2 = 1 + +sspace (u1 L.u1 L.u2 L.u3, state noconstant) /// + (u2 L.u1, state noconstant noerror) /// + (u3 L.u2, state noconstant noerror) /// + (D.wpi u1, noconstant noerror), /// + constraints(1/3) covstate(diagonal) + +predict dep + + +// Example 2: ARIMA model with additive seasonal effects +arima D.ln_wpi, ar(1) ma(1 4) vce(opg) +arima D.ln_wpi, ar(1) ma(1 4) vce(oim) + +// Example 3: Multiplicative SARIMA model +use http://www.stata-press.com/data/r12/air2, clear +generate lnair = ln(air) +arima lnair, arima(0,1,1) sarima(0,1,1,12) noconstant vce(opg) +arima lnair, arima(0,1,1) sarima(0,1,1,12) noconstant vce(oim) + +// Example 4: ARMAX model +use http://www.stata-press.com/data/r12/friedman2, clear +arima consump m2 if tin(, 1981q4), ar(1) ma(1) vce(opg) +arima consump m2 if tin(, 1981q4), ar(1) ma(1) vce(oim) + +// Predict - Example 1: Predict, dynamic forecasts +use http://www.stata-press.com/data/r12/friedman2, clear +keep if time<=tq(1981q4) arima consump m2 if tin(, 1978q1), ar(1) ma(1) +predict chat, y +predict chatdy, dynamic(tq(1978q1)) y +// Predict - Example 1, part 2: Forecasts +// Note: in the previous example, because `consump` +// was still non-missing for the "out-of-sample" component, it simply +// amounts to in-sample prediction with fixed parameter (that happen +// to have been defined by MLE on a subset of the observations) +// Here make those observations missing so that we get true forecasts. +use http://www.stata-press.com/data/r12/friedman2, clear +keep if time<=tq(1981q4) & time>=tq(1959q1) +arima consump m2 if tin(, 1978q1), ar(1) ma(1) +replace consump = . if time>tq(1978q1) +predict chat, y +predict chatdy, dynamic(tq(1978q1)) y diff --git a/statsmodels/tsa/statespace/tests/results/test_smoothing.R b/statsmodels/tsa/statespace/tests/results/test_smoothing.R new file mode 100644 index 0000000..e93fae9 --- /dev/null +++ b/statsmodels/tsa/statespace/tests/results/test_smoothing.R @@ -0,0 +1,53 @@ +library(KFAS) +options(digits=10) + +# should run this from the statsmodels/statsmodels directory +dta <- read.csv('datasets/macrodata/macrodata.csv') + +obs <- diff(data.matrix(dta[c('realgdp','realcons','realinv')])) +obs[1:50,1] <- NaN +obs[20:70,2] <- NaN +obs[40:90,3] <- NaN +obs[120:130,1] <- NaN +obs[120:130,3] <- NaN + +mod <- SSModel(obs ~ -1 + SSMcustom(Z=diag(3), T=diag(3), R=diag(3), Q=diag(3), P1=diag(3)*1e6), H=diag(3)) +kf <- KFS(mod, c("state", "signal", "mean"), c("state", "signal", "mean", "disturbance"), simplify=FALSE) + +# kf$logLik = -205310.9767 + +# r = scaled_smoothed_estimator +# N = scaled_smoothed_estimator_cov +# m = forecasts +# v = forecasts_error +# F = forecasts_error_cov +# a = predicted_state +# P = predicted_state_cov +# mu = filtered_forecasts +# alphahat = smoothed_state +# V = smoothed_state_cov +# muhat = smoothed_forecasts +# etahat = smoothed_state_disturbance +# V_eta = smoothed_state_disturbance_cov +# epshat = smoothed_measurement_disturbance +# V_eps = smoothed_measurement_disturbance_cov + +out <- as.data.frame(with(kf, cbind( + t(r)[2:203,], apply(N, 3, det)[2:203], + m, apply(P_mu, 3, det), v, t(F), + a[2:203,], apply(P, 3, det)[2:203], + alphahat, apply(V, 3, det), + muhat, apply(V_mu, 3, det), + etahat, apply(V_eta, 3, det), epshat, t(V_eps) +))) +names(out) <- c( + "r1", "r2", "r3", "detN", + "m1", "m2", "m3", "detPmu", + "v1", "v2", "v3", "F1", "F2", "F3", + "a1", "a2", "a3", "detP", + "alphahat1", "alphahat2", "alphahat3", "detV", + "muhat1", "muhat2", "muhat3", "detVmu", + "etahat1", "etahat2", "etahat3", "detVeta", + "epshat1", "epshat2", "epshat3", "Veps1", "Veps2", "Veps3" +) +write.csv(out, 'tsa/statespace/tests/results/results_smoothing_R.csv', row.names=FALSE) diff --git a/statsmodels/tsa/statespace/tests/results/test_ucm.R b/statsmodels/tsa/statespace/tests/results/test_ucm.R new file mode 100644 index 0000000..6a2004a --- /dev/null +++ b/statsmodels/tsa/statespace/tests/results/test_ucm.R @@ -0,0 +1,134 @@ +library(KFAS) +library(rucm) +options(digits=10) + +dta <- read.csv('datasets/macrodata/macrodata.csv') + +# Irregular (ntrend) +mod_ntrend <- SSModel(dta$unemp ~ -1 + SSMcustom(Z=matrix(0), matrix(0), matrix(0), matrix(0)), H=matrix(NA)) +res_ntrend <- fitSSM(inits=c(log(var(dta$unemp))), model=mod_ntrend, + method="BFGS", control=list(REPORT=1, trace=1)) + +print(exp(res_ntrend$optim.out$par)) # 36.74687342 +print(res_ntrend$optim.out$value) # 653.8562525 + +# Irregular + Deterministic trend (dconstant) +mod_dconstant <- SSModel(dta$unemp ~ SSMtrend(Q=matrix(0)), H=matrix(NA)) +res_dconstant <- fitSSM(inits=c(log(var(dta$unemp))), model=mod_dconstant, + method="BFGS", control=list(REPORT=1, trace=1)) + +print(exp(res_dconstant$optim.out$par)) # 2.127438969 +print(res_dconstant$optim.out$value) # 365.5289923 + +# Local level (llevel) +mod_llevel <- SSModel(dta$unemp ~ SSMtrend(Q=matrix(NA)), H=matrix(NA)) +res_llevel <- fitSSM(inits=c(log(var(dta$unemp)), log(var(dta$unemp))), model=mod_llevel, + method="BFGS", control=list(REPORT=1, trace=1)) + +print(exp(res_llevel$optim.out$par)) # [1.182078808e-01, 4.256647886e-06] +print(res_llevel$optim.out$value) # 70.97242557 + +# Random walk (rwalk) +mod_rwalk <- SSModel(dta$unemp ~ SSMtrend(Q=matrix(NA)), H=matrix(0)) +res_rwalk <- fitSSM(inits=c(log(var(dta$unemp))), model=mod_rwalk, + method="BFGS", control=list(REPORT=1, trace=1)) + +print(exp(res_rwalk$optim.out$par)) # 0.1182174646 +print(res_rwalk$optim.out$value) # 70.96771641 + +# Deterministic trend (dtrend) +mod_dtrend <- SSModel(dta$unemp ~ SSMtrend(2, Q=list(matrix(0), matrix(0))), H=matrix(NA)) +res_dtrend <- fitSSM(inits=c(log(var(dta$unemp))), model=mod_dtrend, + method="BFGS", control=list(REPORT=1, trace=1)) + +print(exp(res_dtrend$optim.out$par)) # 2.134137554 +print(res_dtrend$optim.out$value) # 370.7758666 + +# Local level with deterministic trend (lldtrend) +mod_lldtrend <- SSModel(dta$unemp ~ SSMtrend(2, Q=list(matrix(NA), matrix(0))), H=matrix(NA)) +res_lldtrend <- fitSSM(inits=c(log(var(dta$unemp)), log(var(dta$unemp))), model=mod_lldtrend, + method="BFGS", control=list(REPORT=1, trace=1)) + +print(exp(res_lldtrend$optim.out$par)) # [1.184455029e-01, 4.457592057e-06] +print(res_lldtrend$optim.out$value) # 73.47291031 + +# Random walk with drift (rwdrift) +mod_rwdrift <- SSModel(dta$unemp ~ SSMtrend(2, Q=list(matrix(NA), matrix(0))), H=matrix(0)) +res_rwdrift <- fitSSM(inits=c(log(var(dta$unemp))), model=mod_rwdrift, + method="BFGS", control=list(REPORT=1, trace=1)) + +print(exp(res_rwdrift$optim.out$par)) # [0.1184499547] +print(res_rwdrift$optim.out$value) # 73.46798576 + +# Local linear trend (lltrend) +mod_lltrend <- SSModel(dta$unemp ~ SSMtrend(2, Q=list(matrix(NA), matrix(NA))), H=matrix(NA)) +res_lltrend <- fitSSM(inits=c(log(var(dta$unemp)), log(var(dta$unemp)), log(var(dta$unemp))), model=mod_lltrend, + method="BFGS", control=list(REPORT=1, trace=1)) + +print(exp(res_lltrend$optim.out$par)) # [1.008704925e-02, 6.091760810e-02, 1.339852549e-06] +print(res_lltrend$optim.out$value) # 31.15640107 + +# Smooth trend (strend) +mod_strend <- SSModel(dta$unemp ~ SSMtrend(2, Q=list(matrix(0), matrix(NA))), H=matrix(NA)) +res_strend <- fitSSM(inits=c(log(var(dta$unemp)), log(var(dta$unemp))), model=mod_strend, + method="BFGS", control=list(REPORT=1, trace=1)) + +print(exp(res_strend$optim.out$par)) # [0.0753064234342, 0.0008824099119] +print(res_strend$optim.out$value) # 31.92261408 + +# Random trend (rtrend) +mod_rtrend <- SSModel(dta$unemp ~ SSMtrend(2, Q=list(matrix(0), matrix(NA))), H=matrix(0)) +res_rtrend <- fitSSM(inits=c(log(var(dta$unemp))), model=mod_rtrend, + method="BFGS", control=list(REPORT=1, trace=1)) + +print(exp(res_rtrend$optim.out$par)) # [0.08054724989] +print(res_rtrend$optim.out$value) # 32.05607557 + +# Cycle (with fixed period=10, cycle variance=0.1) +# Note: matching this requires setting loglikelihood_burn = 0 +mod_cycle <- SSModel(dta$unemp ~ -1 + SSMcycle(10, Q=matrix(0.1), P1=diag(2)*1e6), H=matrix(NA)) +res_cycle <- fitSSM(inits=c(log(var(dta$unemp))), model=mod_cycle, + method="BFGS", control=list(REPORT=1, trace=1)) + +print(exp(res_cycle$optim.out$par)) # [37.57197224] +print(res_cycle$optim.out$value) # 672.3102588 + +# Seasonal (with fixed period=4, seasonal variance=0.1) +mod_seasonal <- SSModel(dta$unemp ~ -1 + SSMseasonal(4, Q=matrix(0.1), sea.type='dummy', P1=diag(1)*1e6), H=matrix(NA)) +res_seasonal <- fitSSM(inits=c(log(var(dta$unemp))), model=mod_seasonal, + method="BFGS", control=list(REPORT=1, trace=1)) + +print(exp(res_seasonal$optim.out$par)) # [38.1704278] +print(res_seasonal$optim.out$value) # 655.3337155 + +# Regression +# Note: matching this requires setting loglikelihood_burn = 0 +mod_reg <- SSModel(dta$unemp ~ -1 + SSMregression(~-1+log(realgdp), data=dta, P1=diag(1)*1e6), H=matrix(NA)) +res_reg <- fitSSM(inits=c(log(var(dta$unemp))), model=mod_reg, + method="BFGS", control=list(REPORT=1, trace=1)) + +print(exp(res_reg$optim.out$par)) # [2.215447924] +print(res_reg$optim.out$value) # 379.6233483 + +# Random trend + AR(1) +# Note: KFAS doesn't want to estimate these parameters, so just fix them +# to the MLE estimates from Statsmodels and compare the loglikelihood +# mod.update([]) +mod_rtrend_ar1 <- SSModel(dta$unemp ~ SSMtrend(2, Q=list(matrix(0), matrix(0.0609))) + SSMarima(ar=c(0.9592), Q=matrix(0.0097)), H=matrix(0)) +out_rtrend_ar1 <- KFS(mod_rtrend_ar1) + +print(out_rtrend_ar1$logLik) # -31.15629379 + +# Local linear trend + Cycle + Seasonal + Regression + AR(1) +# Note: matching this requires setting loglikelihood_burn = 0, and +# mod.update([0.0001, 0.01, 0.06, 0.0001, 0.0001, 0.1, 2*np.pi / 10, 0.2]) +mod_lltrend_cycle_seasonal_reg_ar1 <- SSModel( + dta$unemp ~ SSMtrend(2, Q=list(matrix(0.01), matrix(0.06)), P1=diag(2)*1e6) + + SSMcycle(10, Q=matrix(0.0001), P1=diag(2)*1e6) + + SSMseasonal(4, Q=matrix(0.0001), P1=diag(3)*1e6) + + SSMregression(~-1+log(realgdp), data=dta, P1=diag(1)*1e6) + + SSMarima(ar=c(0.2), Q=matrix(0.1)), +H=matrix(0.0001)) +out_lltrend_cycle_seasonal_reg_ar1 <- KFS(mod_lltrend_cycle_seasonal_reg_ar1) + +print(out_lltrend_cycle_seasonal_reg_ar1$logLik) # -168.5258709 diff --git a/statsmodels/tsa/statespace/tests/results/test_varmax_stata.do b/statsmodels/tsa/statespace/tests/results/test_varmax_stata.do new file mode 100644 index 0000000..0758302 --- /dev/null +++ b/statsmodels/tsa/statespace/tests/results/test_varmax_stata.do @@ -0,0 +1,148 @@ +webuse lutkepohl2, clear +tsset + +// VAR(1) +dfactor (dln_inv dln_inc dln_consump = , ar(1) arstructure(general) noconstant covstructure(unstructured)) if qtr<=tq(1978q4) +estat ic + +// These are predict in-sample + forecast out-of-sample (1979q1 is first out-of sample obs) +predict predict_1, dynamic(tq(1979q1)) equation(dln_inv) +predict predict_2, dynamic(tq(1979q1)) equation(dln_inc) +predict predict_3, dynamic(tq(1979q1)) equation(dln_consump) + +// These are predict in-sample for first 3-observations (1960q2-1960q4), then +// dynamic predict for the rest of in-sample observations (1961q1-1978q4), then +// forecast for the remaining periods 1979q1 - 1982q4 +predict dyn_predict_1, dynamic(tq(1961q1)) equation(dln_inv) +predict dyn_predict_2, dynamic(tq(1961q1)) equation(dln_inc) +predict dyn_predict_3, dynamic(tq(1961q1)) equation(dln_consump) + +// VAR(1), diagonal covariance +dfactor (dln_inv dln_inc dln_consump = , ar(1) arstructure(general) noconstant covstructure(diagonal)) if qtr<=tq(1978q4) +estat ic + +// predict + forecast, see above +predict predict_diag1, dynamic(tq(1979q1)) equation(dln_inv) +predict predict_diag2, dynamic(tq(1979q1)) equation(dln_inc) +predict predict_diag3, dynamic(tq(1979q1)) equation(dln_consump) + +// predict + dynamic predict + forecast, see above +predict dyn_predict_diag1, dynamic(tq(1961q1)) equation(dln_inv) +predict dyn_predict_diag2, dynamic(tq(1961q1)) equation(dln_inc) +predict dyn_predict_diag3, dynamic(tq(1961q1)) equation(dln_consump) + +// VAR(1), diagonal covariance + observation intercept +dfactor (dln_inv dln_inc dln_consump = , ar(1) arstructure(general) covstructure(diagonal)) if qtr<=tq(1978q4) +estat ic + +// predict + forecast, see above +predict predict_int1, dynamic(tq(1979q1)) equation(dln_inv) +predict predict_int2, dynamic(tq(1979q1)) equation(dln_inc) +predict predict_int3, dynamic(tq(1979q1)) equation(dln_consump) + +// predict + dynamic predict + forecast, see above +predict dyn_predict_int1, dynamic(tq(1961q1)) equation(dln_inv) +predict dyn_predict_int2, dynamic(tq(1961q1)) equation(dln_inc) +predict dyn_predict_int3, dynamic(tq(1961q1)) equation(dln_consump) + +// VAR(1), diagonal covariance + 1 exog +gen t = _n +//dfactor (dln_inv dln_inc dln_consump = t, ar(1) arstructure(general) noconstant covstructure(diagonal)) if qtr<=tq(1978q4) +var dln_inv dln_inc dln_consump if qtr<=tq(1978q4), lags(1) noconstant exog(t) + +// predict, see above (Note: uses actual data for forecasting, so we will want +// to ignore the predictions after 1978q4, see below +predict predict_exog1_1, equation(dln_inv) +predict predict_exog1_2, equation(dln_inc) +predict predict_exog1_3, equation(dln_consump) + +// We will want to use these values to compare for forecasting, but note that +// this also includes in the columns the value for 1978q4 (i.e. a VAR(1) needs +// 1 sample from which to compute forecasts. +fcast compute fcast_exog1_ , dynamic(tq(1979q1)) step(16) replace + +// VAR(1), diagonal covariance + 2 exog +gen c = 1 +//dfactor (dln_inv dln_inc dln_consump = t, ar(1) arstructure(general) noconstant covstructure(diagonal)) if qtr<=tq(1978q4) +var dln_inv dln_inc dln_consump if qtr<=tq(1978q4), lags(1) noconstant exog(c t) + +// predict, see above (Note: uses actual data for forecasting, so we will want +// to ignore the predictions after 1978q4, see below +predict predict_exog2_1, equation(dln_inv) +predict predict_exog2_2, equation(dln_inc) +predict predict_exog2_3, equation(dln_consump) + +// We will want to use these values to compare for forecasting, but note that +// this also includes in the columns the value for 1978q4 (i.e. a VAR(1) needs +// 1 sample from which to compute forecasts. +fcast compute fcast_exog2_ , dynamic(tq(1979q1)) step(16) replace + +// VAR(2) +dfactor (dln_inv dln_inc = , ar(1/2) arstructure(general) noconstant covstructure(unstructured)) if qtr<=tq(1978q4) +estat ic + +// predict + forecast, see above +predict predict_var2_1, dynamic(tq(1979q1)) equation(dln_inv) +predict predict_var2_2, dynamic(tq(1979q1)) equation(dln_inc) + +// predict + dynamic predict + forecast, see above +predict dyn_predict_var2_1, dynamic(tq(1961q1)) equation(dln_inv) +predict dyn_predict_var2_2, dynamic(tq(1961q1)) equation(dln_inc) + +outsheet pred* dyn* fcas* using results_var_stata.csv, comma replace + +// VARMA(1,1) +// Note: Stata does not have this built-in, so we need to create the state space form ourselves +// This replicates example 4 from the Stata documentation +use http://www.stata-press.com/data/r12/manufac, clear + +gen dlncaputil = D.lncaputil +gen dlnhours = D.lnhours + +constraint 1 [u1]L.u2 = 1 +constraint 2 [u1]e.u1 = 1 +constraint 3 [u3]e.u3 = 1 +constraint 4 [dlncaputil]u1 = 1 +constraint 5 [dlnhours]u3 = 1 + +sspace (u1 L.u1 L.u2 e.u1, state noconstant) /// + (u2 e.u1, state noconstant) /// + (u3 L.u1 L.u3 e.u3, state noconstant) /// + (dlncaputil u1, noconstant) /// + (dlnhours u3, noconstant), /// + constraints(1/5) technique(nr) covstate(diagonal) + +// in-sample predict + forecast 5 new observations (sample ends at 1999m12) +tsappend, add(5) +predict predict_varma11_1, dynamic(tm(2009m1)) equation(dlncaputil) +predict predict_varma11_2, dynamic(tm(2009m1)) equation(dlnhours) + +// predict + dynamic predict + forecast +predict dyn_predict_varma11_1, dynamic(tm(2000m1)) equation(dlncaputil) +predict dyn_predict_varma11_2, dynamic(tm(2000m1)) equation(dlnhours) + +// VMA(1) +// Note: Stata does not have this built-in, so we need to create the state space form ourselves +constraint 1 [u1]L.u2 = 1 +constraint 2 [u1]e.u1 = 1 +constraint 3 [u3]e.u3 = 1 +constraint 4 [dlncaputil]u1 = 1 +constraint 5 [dlnhours]u3 = 1 + +sspace (u1 L.u2 e.u1, state noconstant) /// + (u2 e.u1, state noconstant) /// + (u3 e.u3, state noconstant) /// + (dlncaputil u1, noconstant) /// + (dlnhours u3, noconstant), /// + constraints(1/5) technique(nr) covstate(diagonal) + +// in-sample predict + forecast 5 new observations (sample ends at 1999m12) +predict predict_vma1_1, dynamic(tm(2009m1)) equation(dlncaputil) +predict predict_vma1_2, dynamic(tm(2009m1)) equation(dlnhours) + +// predict + dynamic predict + forecast +predict dyn_predict_vma1_1, dynamic(tm(2000m1)) equation(dlncaputil) +predict dyn_predict_vma1_2, dynamic(tm(2000m1)) equation(dlnhours) + + +outsheet pred* dyn* using results_varmax_stata.csv, comma replace diff --git a/statsmodels/tsa/statespace/tests/results/test_wpi1_stata.do b/statsmodels/tsa/statespace/tests/results/test_wpi1_stata.do new file mode 100644 index 0000000..bda1793 --- /dev/null +++ b/statsmodels/tsa/statespace/tests/results/test_wpi1_stata.do @@ -0,0 +1,22 @@ +use http://www.stata-press.com/data/r12/wpi1, clear +gen dwpi = D.wpi + +// Estimate an AR(3) via a state-space model +// (to test prediction, standardized residuals, predicted states) +constraint 1 [dwpi]u1 = 1 +constraint 2 [u2]L.u1 = 1 +constraint 3 [u3]L.u2 = 1 + +sspace (u1 L.u1 L.u2 L.u3, state noconstant) /// + (u2 L.u1, state noconstant noerror) /// + (u3 L.u2, state noconstant noerror) /// + (dwpi u1, noconstant noerror), /// + constraints(1/3) covstate(diagonal) + +predict dep* +predict sr*, rstandard +predict sp*, states smethod(onestep) // predicted states +predict sf*, states smethod(filter) // filtered states +predict sm*, states smethod(smooth) // smoothed states + +outsheet using results_wpi1_ar3_stata.csv, comma diff --git a/statsmodels/tsa/statespace/tests/test_dynamic_factor.py b/statsmodels/tsa/statespace/tests/test_dynamic_factor.py new file mode 100644 index 0000000..3e5f7b9 --- /dev/null +++ b/statsmodels/tsa/statespace/tests/test_dynamic_factor.py @@ -0,0 +1,625 @@ +""" +Tests for VARMAX models + +Author: Chad Fulton +License: Simplified-BSD +""" +from __future__ import division, absolute_import, print_function + +import numpy as np +import pandas as pd +import os +import re + +import warnings +from statsmodels.tsa.statespace import dynamic_factor +from .results import results_varmax, results_dynamic_factor +from numpy.testing import assert_equal, assert_almost_equal, assert_raises, assert_allclose +from nose.exc import SkipTest +from statsmodels.iolib.summary import forg + +try: + import matplotlib.pyplot as plt + have_matplotlib = True +except ImportError: + have_matplotlib = False + +current_path = os.path.dirname(os.path.abspath(__file__)) + +output_path = 'results' + os.sep + 'results_dynamic_factor_stata.csv' +output_results = pd.read_csv(current_path + os.sep + output_path) + + +class CheckDynamicFactor(object): + @classmethod + def setup_class(cls, true, k_factors, factor_order, cov_type='approx', + included_vars=['dln_inv', 'dln_inc', 'dln_consump'], + demean=False, filter=True, **kwargs): + cls.true = true + # 1960:Q1 - 1982:Q4 + dta = pd.DataFrame( + results_varmax.lutkepohl_data, columns=['inv', 'inc', 'consump'], + index=pd.date_range('1960-01-01', '1982-10-01', freq='QS')) + + dta['dln_inv'] = np.log(dta['inv']).diff() + dta['dln_inc'] = np.log(dta['inc']).diff() + dta['dln_consump'] = np.log(dta['consump']).diff() + + endog = dta.ix['1960-04-01':'1978-10-01', included_vars] + + if demean: + endog -= dta.ix[1:, included_vars].mean() + + cls.model = dynamic_factor.DynamicFactor(endog, k_factors=k_factors, + factor_order=factor_order, + **kwargs) + + if filter: + cls.results = cls.model.smooth(true['params'], cov_type=cov_type) + + def test_params(self): + # Smoke test to make sure the start_params are well-defined and + # lead to a well-defined model + self.model.filter(self.model.start_params) + # Similarly a smoke test for param_names + assert_equal(len(self.model.start_params), len(self.model.param_names)) + # Finally make sure the transform and untransform do their job + actual = self.model.transform_params(self.model.untransform_params(self.model.start_params)) + assert_allclose(actual, self.model.start_params) + # Also in the case of enforce stationarity = False + self.model.enforce_stationarity = False + actual = self.model.transform_params(self.model.untransform_params(self.model.start_params)) + self.model.enforce_stationarity = True + assert_allclose(actual, self.model.start_params) + + def test_results(self): + # Smoke test for creating the summary + self.results.summary() + + # Test cofficient matrix creation (via a different, more direct, method) + if self.model.factor_order > 0: + coefficients = np.array(self.results.params[self.model._params_factor_transition]).reshape(self.model.k_factors, self.model.k_factors * self.model.factor_order) + coefficient_matrices = np.array([ + coefficients[:self.model.k_factors, i*self.model.k_factors:(i+1)*self.model.k_factors] + for i in range(self.model.factor_order) + ]) + assert_equal(self.results.coefficient_matrices_var, coefficient_matrices) + else: + assert_equal(self.results.coefficient_matrices_var, None) + + # Smoke test for plot_coefficients_of_determination + if have_matplotlib: + fig = self.results.plot_coefficients_of_determination(); + plt.close(fig) + + def test_no_enforce(self): + return + # Test that nothing goes wrong when we don't enforce stationarity + params = self.model.untransform_params(self.true['params']) + params[self.model._params_transition] = ( + self.true['params'][self.model._params_transition]) + self.model.enforce_stationarity = False + results = self.model.filter(params, transformed=False) + self.model.enforce_stationarity = True + assert_allclose(results.llf, self.results.llf, rtol=1e-5) + + def test_mle(self): + with warnings.catch_warnings(record=True) as w: + results = self.model.fit(method='powell', maxiter=100, disp=False) + results = self.model.fit(results.params, maxiter=1000, disp=False) + results = self.model.fit(results.params, method='nm', maxiter=1000, + disp=False) + if not results.llf > self.results.llf: + assert_allclose(results.llf, self.results.llf, rtol=1e-5) + + def test_loglike(self): + assert_allclose(self.results.llf, self.true['loglike'], rtol=1e-6) + + def test_aic(self): + # We only get 3 digits from Stata + assert_allclose(self.results.aic, self.true['aic'], atol=3) + + def test_bic(self): + # We only get 3 digits from Stata + assert_allclose(self.results.bic, self.true['bic'], atol=3) + + def test_predict(self, **kwargs): + # Tests predict + forecast + assert_allclose( + self.results.predict(end='1982-10-01', **kwargs), + self.true['predict'], + atol=1e-6) + + def test_dynamic_predict(self, **kwargs): + # Tests predict + dynamic predict + forecast + assert_allclose( + self.results.predict(end='1982-10-01', dynamic='1961-01-01', **kwargs), + self.true['dynamic_predict'], + atol=1e-6) + +class TestDynamicFactor(CheckDynamicFactor): + """ + Test for a dynamic factor model with 1 AR(2) factor + """ + @classmethod + def setup_class(cls): + true = results_dynamic_factor.lutkepohl_dfm.copy() + true['predict'] = output_results.ix[1:, ['predict_dfm_1', 'predict_dfm_2', 'predict_dfm_3']] + true['dynamic_predict'] = output_results.ix[1:, ['dyn_predict_dfm_1', 'dyn_predict_dfm_2', 'dyn_predict_dfm_3']] + super(TestDynamicFactor, cls).setup_class(true, k_factors=1, factor_order=2) + + def test_bse_approx(self): + bse = self.results._cov_params_approx().diagonal()**0.5 + assert_allclose(bse, self.true['bse_oim'], atol=1e-5) + +class TestDynamicFactor2(CheckDynamicFactor): + """ + Test for a dynamic factor model with two VAR(1) factors + """ + @classmethod + def setup_class(cls): + true = results_dynamic_factor.lutkepohl_dfm2.copy() + true['predict'] = output_results.ix[1:, ['predict_dfm2_1', 'predict_dfm2_2', 'predict_dfm2_3']] + true['dynamic_predict'] = output_results.ix[1:, ['dyn_predict_dfm2_1', 'dyn_predict_dfm2_2', 'dyn_predict_dfm2_3']] + super(TestDynamicFactor2, cls).setup_class(true, k_factors=2, factor_order=1) + + def test_mle(self): + # Stata's MLE on this model doesn't converge, so no reason to check + pass + + def test_bse(self): + # Stata's MLE on this model doesn't converge, and four of their + # params don't even have bse (possibly they are still at starting + # values?), so no reason to check this + pass + + def test_aic(self): + # Stata uses 9 df (i.e. 9 params) here instead of 13, because since the + # model didn't coverge, 4 of the parameters aren't fully estimated + # (possibly they are still at starting values?) so the AIC is off + pass + + def test_bic(self): + # Stata uses 9 df (i.e. 9 params) here instead of 13, because since the + # model didn't coverge, 4 of the parameters aren't fully estimated + # (possibly they are still at starting values?) so the BIC is off + pass + + def test_summary(self): + summary = self.results.summary() + tables = [str(table) for table in summary.tables] + params = self.true['params'] + + # Make sure we have the right number of tables + assert_equal(len(tables), 2 + self.model.k_endog + self.model.k_factors + 1) + + # Check the model overview table + assert_equal(re.search(r'Model:.*DynamicFactor\(factors=2, order=1\)', tables[0]) is None, False) + + # For each endogenous variable, check the output + for i in range(self.model.k_endog): + offset_loading = self.model.k_factors * i + offset_var = self.model.k_factors * self.model.k_endog + table = tables[i + 2] + + # -> Make sure we have the right table / table name + name = self.model.endog_names[i] + assert_equal(re.search('Results for equation %s' % name, table) is None, False) + + # -> Make sure it's the right size + assert_equal(len(table.split('\n')), 7) + + # -> Check that we have the right coefficients + assert_equal(re.search('loading.f1 +' + forg(params[offset_loading + 0], prec=4), table) is None, False) + assert_equal(re.search('loading.f2 +' + forg(params[offset_loading + 1], prec=4), table) is None, False) + + # For each factor, check the output + for i in range(self.model.k_factors): + offset = self.model.k_endog * (self.model.k_factors + 1) + i * self.model.k_factors + table = tables[self.model.k_endog + i + 2] + + # -> Make sure we have the right table / table name + name = self.model.endog_names[i] + assert_equal(re.search('Results for factor equation f%d' % (i+1), table) is None, False) + + # -> Make sure it's the right size + assert_equal(len(table.split('\n')), 7) + + # -> Check that we have the right coefficients + assert_equal(re.search('L1.f1 +' + forg(params[offset + 0], prec=4), table) is None, False) + assert_equal(re.search('L1.f2 +' + forg(params[offset + 1], prec=4), table) is None, False) + + # Check the Error covariance matrix output + table = tables[2 + self.model.k_endog + self.model.k_factors] + + # -> Make sure we have the right table / table name + name = self.model.endog_names[i] + assert_equal(re.search('Error covariance matrix', table) is None, False) + + # -> Make sure it's the right size + assert_equal(len(table.split('\n')), 8) + + # -> Check that we have the right coefficients + offset = self.model.k_endog * self.model.k_factors + for i in range(self.model.k_endog): + assert_equal(re.search('sigma2.%s +%s' % (self.model.endog_names[i], forg(params[offset + i], prec=4)), table) is None, False) + + + +class TestDynamicFactor_exog1(CheckDynamicFactor): + """ + Test for a dynamic factor model with 1 exogenous regressor: a constant + """ + @classmethod + def setup_class(cls): + true = results_dynamic_factor.lutkepohl_dfm_exog1.copy() + true['predict'] = output_results.ix[1:, ['predict_dfm_exog1_1', 'predict_dfm_exog1_2', 'predict_dfm_exog1_3']] + true['dynamic_predict'] = output_results.ix[1:, ['dyn_predict_dfm_exog1_1', 'dyn_predict_dfm_exog1_2', 'dyn_predict_dfm_exog1_3']] + exog = np.ones((75,1)) + super(TestDynamicFactor_exog1, cls).setup_class(true, k_factors=1, factor_order=1, exog=exog) + + def test_predict(self): + exog = np.ones((16, 1)) + super(TestDynamicFactor_exog1, self).test_predict(exog=exog) + + def test_dynamic_predict(self): + exog = np.ones((16, 1)) + super(TestDynamicFactor_exog1, self).test_dynamic_predict(exog=exog) + + def test_bse_approx(self): + bse = self.results._cov_params_approx().diagonal()**0.5 + assert_allclose(bse**2, self.true['var_oim'], atol=1e-5) + +class TestDynamicFactor_exog2(CheckDynamicFactor): + """ + Test for a dynamic factor model with 2 exogenous regressors: a constant + and a time-trend + """ + @classmethod + def setup_class(cls): + true = results_dynamic_factor.lutkepohl_dfm_exog2.copy() + true['predict'] = output_results.ix[1:, ['predict_dfm_exog2_1', 'predict_dfm_exog2_2', 'predict_dfm_exog2_3']] + true['dynamic_predict'] = output_results.ix[1:, ['dyn_predict_dfm_exog2_1', 'dyn_predict_dfm_exog2_2', 'dyn_predict_dfm_exog2_3']] + exog = np.c_[np.ones((75,1)), (np.arange(75) + 2)[:, np.newaxis]] + super(TestDynamicFactor_exog2, cls).setup_class(true, k_factors=1, factor_order=1, exog=exog) + + def test_bse_approx(self): + bse = self.results._cov_params_approx().diagonal()**0.5 + assert_allclose(bse**2, self.true['var_oim'], atol=1e-5) + + def test_predict(self): + exog = np.c_[np.ones((16, 1)), (np.arange(75, 75+16) + 2)[:, np.newaxis]] + super(TestDynamicFactor_exog2, self).test_predict(exog=exog) + + def test_dynamic_predict(self): + exog = np.c_[np.ones((16, 1)), (np.arange(75, 75+16) + 2)[:, np.newaxis]] + super(TestDynamicFactor_exog2, self).test_dynamic_predict(exog=exog) + + def test_summary(self): + summary = self.results.summary() + tables = [str(table) for table in summary.tables] + params = self.true['params'] + + # Make sure we have the right number of tables + assert_equal(len(tables), 2 + self.model.k_endog + self.model.k_factors + 1) + + # Check the model overview table + assert_equal(re.search(r'Model:.*DynamicFactor\(factors=1, order=1\)', tables[0]) is None, False) + assert_equal(re.search(r'.*2 regressors', tables[0]) is None, False) + + # For each endogenous variable, check the output + for i in range(self.model.k_endog): + offset_loading = self.model.k_factors * i + offset_exog = self.model.k_factors * self.model.k_endog + table = tables[i + 2] + + # -> Make sure we have the right table / table name + name = self.model.endog_names[i] + assert_equal(re.search('Results for equation %s' % name, table) is None, False) + + # -> Make sure it's the right size + assert_equal(len(table.split('\n')), 8) + + # -> Check that we have the right coefficients + assert_equal(re.search('loading.f1 +' + forg(params[offset_loading + 0], prec=4), table) is None, False) + assert_equal(re.search('beta.const +' + forg(params[offset_exog + i*2 + 0], prec=4), table) is None, False) + assert_equal(re.search('beta.x1 +' + forg(params[offset_exog + i*2 + 1], prec=4), table) is None, False) + + # For each factor, check the output + for i in range(self.model.k_factors): + offset = self.model.k_endog * (self.model.k_factors + 3) + i * self.model.k_factors + table = tables[self.model.k_endog + i + 2] + + # -> Make sure we have the right table / table name + name = self.model.endog_names[i] + assert_equal(re.search('Results for factor equation f%d' % (i+1), table) is None, False) + + # -> Make sure it's the right size + assert_equal(len(table.split('\n')), 6) + + # -> Check that we have the right coefficients + assert_equal(re.search('L1.f1 +' + forg(params[offset + 0], prec=4), table) is None, False) + + # Check the Error covariance matrix output + table = tables[2 + self.model.k_endog + self.model.k_factors] + + # -> Make sure we have the right table / table name + name = self.model.endog_names[i] + assert_equal(re.search('Error covariance matrix', table) is None, False) + + # -> Make sure it's the right size + assert_equal(len(table.split('\n')), 8) + + # -> Check that we have the right coefficients + offset = self.model.k_endog * (self.model.k_factors + 2) + for i in range(self.model.k_endog): + assert_equal(re.search('sigma2.%s +%s' % (self.model.endog_names[i], forg(params[offset + i], prec=4)), table) is None, False) + +class TestDynamicFactor_general_errors(CheckDynamicFactor): + """ + Test for a dynamic factor model where errors are as general as possible, + meaning: + + - Errors are vector autocorrelated, VAR(1) + - Innovations are correlated + """ + @classmethod + def setup_class(cls): + true = results_dynamic_factor.lutkepohl_dfm_gen.copy() + true['predict'] = output_results.ix[1:, ['predict_dfm_gen_1', 'predict_dfm_gen_2', 'predict_dfm_gen_3']] + true['dynamic_predict'] = output_results.ix[1:, ['dyn_predict_dfm_gen_1', 'dyn_predict_dfm_gen_2', 'dyn_predict_dfm_gen_3']] + super(TestDynamicFactor_general_errors, cls).setup_class(true, k_factors=1, factor_order=1, error_var=True, error_order=1, error_cov_type='unstructured') + + def test_bse_approx(self): + bse = self.results._cov_params_approx().diagonal() + assert_allclose(bse[:3], self.true['var_oim'][:3], atol=1e-5) + assert_allclose(bse[-10:], self.true['var_oim'][-10:], atol=2e-4) + + def test_mle(self): + raise SkipTest("Known failure, no sequence of optimizers has been" + " found which can achieve the maximum.") + # The following gets us to llf=546.53, which is still not good enough + # llf = 300.842477412 + # res = mod.fit(method='lbfgs', maxiter=10000) + # llf = 460.26576722 + # res = mod.fit(res.params, method='nm', maxiter=10000, maxfev=10000) + # llf = 542.245718508 + # res = mod.fit(res.params, method='lbfgs', maxiter=10000) + # llf = 544.035160955 + # res = mod.fit(res.params, method='nm', maxiter=10000, maxfev=10000) + # llf = 557.442240083 + # res = mod.fit(res.params, method='lbfgs', maxiter=10000) + # llf = 558.199513262 + # res = mod.fit(res.params, method='nm', maxiter=10000, maxfev=10000) + # llf = 559.049076604 + # res = mod.fit(res.params, method='nm', maxiter=10000, maxfev=10000) + # llf = 559.049076604 + # ... + + def test_summary(self): + summary = self.results.summary() + tables = [str(table) for table in summary.tables] + params = self.true['params'] + + # Make sure we have the right number of tables + assert_equal(len(tables), 2 + self.model.k_endog + self.model.k_factors + self.model.k_endog + 1) + + # Check the model overview table + assert_equal(re.search(r'Model:.*DynamicFactor\(factors=1, order=1\)', tables[0]) is None, False) + assert_equal(re.search(r'.*VAR\(1\) errors', tables[0]) is None, False) + + # For each endogenous variable, check the output + for i in range(self.model.k_endog): + offset_loading = self.model.k_factors * i + table = tables[i + 2] + + # -> Make sure we have the right table / table name + name = self.model.endog_names[i] + assert_equal(re.search('Results for equation %s' % name, table) is None, False) + + # -> Make sure it's the right size + assert_equal(len(table.split('\n')), 6) + + # -> Check that we have the right coefficients + assert_equal(re.search('loading.f1 +' + forg(params[offset_loading + 0], prec=4), table) is None, False) + + # For each factor, check the output + for i in range(self.model.k_factors): + offset = self.model.k_endog * self.model.k_factors + 6 + i * self.model.k_factors + table = tables[2 + self.model.k_endog + i] + + # -> Make sure we have the right table / table name + name = self.model.endog_names[i] + assert_equal(re.search('Results for factor equation f%d' % (i+1), table) is None, False) + + # -> Make sure it's the right size + assert_equal(len(table.split('\n')), 6) + + # -> Check that we have the right coefficients + assert_equal(re.search('L1.f1 +' + forg(params[offset + 0], prec=4), table) is None, False) + + # For each error equation, check the output + for i in range(self.model.k_endog): + offset = self.model.k_endog * (self.model.k_factors + i) + 6 + self.model.k_factors + table = tables[2 + self.model.k_endog + self.model.k_factors + i] + + # -> Make sure we have the right table / table name + name = self.model.endog_names[i] + assert_equal(re.search('Results for error equation e\(%s\)' % name, table) is None, False) + + # -> Make sure it's the right size + assert_equal(len(table.split('\n')), 8) + + # -> Check that we have the right coefficients + for j in range(self.model.k_endog): + name = self.model.endog_names[j] + assert_equal(re.search('L1.e\(%s\) +%s' % (name, forg(params[offset + j], prec=4)), table) is None, False) + + # Check the Error covariance matrix output + table = tables[2 + self.model.k_endog + self.model.k_factors + self.model.k_endog] + + # -> Make sure we have the right table / table name + name = self.model.endog_names[i] + assert_equal(re.search('Error covariance matrix', table) is None, False) + + # -> Make sure it's the right size + assert_equal(len(table.split('\n')), 11) + + # -> Check that we have the right coefficients + offset = self.model.k_endog * self.model.k_factors + assert_equal(re.search('sqrt.var.dln_inv +' + forg(params[offset + 0], prec=4), table) is None, False) + assert_equal(re.search('sqrt.cov.dln_inv.dln_inc +' + forg(params[offset + 1], prec=4), table) is None, False) + assert_equal(re.search('sqrt.var.dln_inc +' + forg(params[offset + 2], prec=4), table) is None, False) + assert_equal(re.search('sqrt.cov.dln_inv.dln_consump +' + forg(params[offset + 3], prec=4), table) is None, False) + assert_equal(re.search('sqrt.cov.dln_inc.dln_consump +' + forg(params[offset + 4], prec=4), table) is None, False) + assert_equal(re.search('sqrt.var.dln_consump +' + forg(params[offset + 5], prec=4), table) is None, False) + +class TestDynamicFactor_ar2_errors(CheckDynamicFactor): + """ + Test for a dynamic factor model where errors are as general as possible, + meaning: + + - Errors are vector autocorrelated, VAR(1) + - Innovations are correlated + """ + @classmethod + def setup_class(cls): + true = results_dynamic_factor.lutkepohl_dfm_ar2.copy() + true['predict'] = output_results.ix[1:, ['predict_dfm_ar2_1', 'predict_dfm_ar2_2', 'predict_dfm_ar2_3']] + true['dynamic_predict'] = output_results.ix[1:, ['dyn_predict_dfm_ar2_1', 'dyn_predict_dfm_ar2_2', 'dyn_predict_dfm_ar2_3']] + super(TestDynamicFactor_ar2_errors, cls).setup_class(true, k_factors=1, factor_order=1, error_order=2) + + def test_bse_approx(self): + bse = self.results._cov_params_approx().diagonal() + assert_allclose(bse, self.true['var_oim'], atol=1e-5) + + def test_mle(self): + with warnings.catch_warnings(record=True) as w: + # Depending on the system, this test can reach a greater precision, + # but for cross-platform results keep it at 1e-2 + mod = self.model + res1 = mod.fit(maxiter=100, optim_score='approx', disp=False) + res = mod.fit(res1.params, method='nm', maxiter=10000, optim_score='approx', disp=False) + assert_allclose(res.llf, self.results.llf, atol=1e-2) + +class TestDynamicFactor_scalar_error(CheckDynamicFactor): + """ + Test for a dynamic factor model where innovations are uncorrelated and + are forced to have the same variance. + """ + @classmethod + def setup_class(cls): + true = results_dynamic_factor.lutkepohl_dfm_scalar.copy() + true['predict'] = output_results.ix[1:, ['predict_dfm_scalar_1', 'predict_dfm_scalar_2', 'predict_dfm_scalar_3']] + true['dynamic_predict'] = output_results.ix[1:, ['dyn_predict_dfm_scalar_1', 'dyn_predict_dfm_scalar_2', 'dyn_predict_dfm_scalar_3']] + exog = np.ones((75,1)) + super(TestDynamicFactor_scalar_error, cls).setup_class(true, k_factors=1, factor_order=1, exog=exog, error_cov_type='scalar') + + def test_bse_approx(self): + bse = self.results._cov_params_approx().diagonal() + assert_allclose(bse, self.true['var_oim'], atol=1e-5) + + def test_predict(self): + exog = np.ones((16, 1)) + super(TestDynamicFactor_scalar_error, self).test_predict(exog=exog) + + def test_dynamic_predict(self): + exog = np.ones((16, 1)) + super(TestDynamicFactor_scalar_error, self).test_dynamic_predict(exog=exog) + + +class TestStaticFactor(CheckDynamicFactor): + """ + Test for a static factor model (i.e. factors are not autocorrelated). + """ + @classmethod + def setup_class(cls): + true = results_dynamic_factor.lutkepohl_sfm.copy() + true['predict'] = output_results.ix[1:, ['predict_sfm_1', 'predict_sfm_2', 'predict_sfm_3']] + true['dynamic_predict'] = output_results.ix[1:, ['dyn_predict_sfm_1', 'dyn_predict_sfm_2', 'dyn_predict_sfm_3']] + super(TestStaticFactor, cls).setup_class(true, k_factors=1, factor_order=0) + + def test_bse_approx(self): + bse = self.results._cov_params_approx().diagonal() + assert_allclose(bse, self.true['var_oim'], atol=1e-5) + + def test_bic(self): + # Stata uses 5 df (i.e. 5 params) here instead of 6, because one param + # is basically zero. + pass + + +class TestSUR(CheckDynamicFactor): + """ + Test for a seemingly unrelated regression model (i.e. no factors) with + errors cross-sectionally, but not auto-, correlated + """ + @classmethod + def setup_class(cls): + true = results_dynamic_factor.lutkepohl_sur.copy() + true['predict'] = output_results.ix[1:, ['predict_sur_1', 'predict_sur_2', 'predict_sur_3']] + true['dynamic_predict'] = output_results.ix[1:, ['dyn_predict_sur_1', 'dyn_predict_sur_2', 'dyn_predict_sur_3']] + exog = np.c_[np.ones((75,1)), (np.arange(75) + 2)[:, np.newaxis]] + super(TestSUR, cls).setup_class(true, k_factors=0, factor_order=0, exog=exog, error_cov_type='unstructured') + + def test_bse_approx(self): + bse = self.results._cov_params_approx().diagonal() + assert_allclose(bse[:6], self.true['var_oim'][:6], atol=1e-5) + + def test_predict(self): + exog = np.c_[np.ones((16, 1)), (np.arange(75, 75+16) + 2)[:, np.newaxis]] + super(TestSUR, self).test_predict(exog=exog) + + def test_dynamic_predict(self): + exog = np.c_[np.ones((16, 1)), (np.arange(75, 75+16) + 2)[:, np.newaxis]] + super(TestSUR, self).test_dynamic_predict(exog=exog) + + +class TestSUR_autocorrelated_errors(CheckDynamicFactor): + """ + Test for a seemingly unrelated regression model (i.e. no factors) where + the errors are vector autocorrelated, but innovations are uncorrelated. + + """ + @classmethod + def setup_class(cls): + true = results_dynamic_factor.lutkepohl_sur_auto.copy() + true['predict'] = output_results.ix[1:, ['predict_sur_auto_1', 'predict_sur_auto_2']] + true['dynamic_predict'] = output_results.ix[1:, ['dyn_predict_sur_auto_1', 'dyn_predict_sur_auto_2']] + exog = np.c_[np.ones((75,1)), (np.arange(75) + 2)[:, np.newaxis]] + super(TestSUR_autocorrelated_errors, cls).setup_class(true, k_factors=0, factor_order=0, exog=exog, error_order=1, error_var=True, error_cov_type='diagonal', included_vars=['dln_inv', 'dln_inc']) + + def test_bse_approx(self): + bse = self.results._cov_params_approx().diagonal() + assert_allclose(bse, self.true['var_oim'], atol=1e-5) + + def test_predict(self): + exog = np.c_[np.ones((16, 1)), (np.arange(75, 75+16) + 2)[:, np.newaxis]] + super(TestSUR_autocorrelated_errors, self).test_predict(exog=exog) + + def test_dynamic_predict(self): + exog = np.c_[np.ones((16, 1)), (np.arange(75, 75+16) + 2)[:, np.newaxis]] + super(TestSUR_autocorrelated_errors, self).test_dynamic_predict(exog=exog) + + +def test_misspecification(): + # Tests for model specification and misspecification exceptions + endog = np.arange(20).reshape(10,2) + + # Too few endog + assert_raises(ValueError, dynamic_factor.DynamicFactor, endog[:,0], k_factors=0, factor_order=0) + + # Too many factors + assert_raises(ValueError, dynamic_factor.DynamicFactor, endog, k_factors=2, factor_order=1) + + # Bad error_cov_type specification + assert_raises(ValueError, dynamic_factor.DynamicFactor, endog, k_factors=1, factor_order=1, order=(1,0), error_cov_type='') + +def test_miscellaneous(): + # Initialization with 1-dimensional exog array + exog = np.arange(75) + mod = CheckDynamicFactor() + mod.setup_class(true=None, k_factors=1, factor_order=1, exog=exog, filter=False) + exog = pd.Series(np.arange(75), index=pd.date_range(start='1960-04-01', end='1978-10-01', freq='QS')) + mod = CheckDynamicFactor() + mod.setup_class(true=None, k_factors=1, factor_order=1, exog=exog, filter=False) diff --git a/statsmodels/tsa/statespace/tests/test_impulse_responses.py b/statsmodels/tsa/statespace/tests/test_impulse_responses.py new file mode 100644 index 0000000..b7dfafb --- /dev/null +++ b/statsmodels/tsa/statespace/tests/test_impulse_responses.py @@ -0,0 +1,311 @@ +""" +Tests for impulse responses of time series + +Author: Chad Fulton +License: Simplified-BSD +""" + +from __future__ import division, absolute_import, print_function + +import warnings +import numpy as np +import pandas as pd +import os +from scipy.signal import lfilter + +from statsmodels.tsa.statespace import (sarimax, structural, varmax, + dynamic_factor) +from numpy.testing import (assert_allclose, assert_almost_equal, assert_equal, + assert_raises) +from nose.exc import SkipTest + + +def test_sarimax(): + # AR(1) + mod = sarimax.SARIMAX([0], order=(1, 0, 0)) + phi = 0.5 + actual = mod.impulse_responses([phi, 1], steps=10) + desired = np.r_[[phi**i for i in range(11)]] + assert_allclose(actual, desired) + + # MA(1) + mod = sarimax.SARIMAX([0], order=(0, 0, 1)) + theta = 0.5 + actual = mod.impulse_responses([theta, 1], steps=10) + desired = np.r_[1, theta, [0]*9] + assert_allclose(actual, desired) + + # ARMA(2, 2) + constant + # Stata: + # webuse lutkepohl2 + # arima dln_inc, arima(2, 0, 2) + # irf create irf1, set(irf1) step(10) + # irf table irf + params = [.01928228, -.03656216, .7588994, + .27070341, -.72928328, .01122177**0.5] + mod = sarimax.SARIMAX([0], order=(2, 0, 2), trend='c') + actual = mod.impulse_responses(params, steps=10) + desired = [1, .234141, .021055, .17692, .00951, .133917, .002321, .101544, + -.001951, .077133, -.004301] + assert_allclose(actual, desired, atol=1e-6) + + # SARIMAX(1,1,1)x(1,0,1,4) + constant + exog + # Stata: + # webuse lutkepohl2 + # gen exog = _n^2 + # arima inc exog, arima(1,1,1) sarima(1,0,1,4) + # irf create irf2, set(irf2) step(10) + # irf table irf + params = [.12853289, 12.207156, .86384742, -.71463236, + .81878967, -.9533955, 14.043884**0.5] + exog = np.arange(1, 92)**2 + mod = sarimax.SARIMAX(np.zeros(91), order=(1, 1, 1), + seasonal_order=(1, 0, 1, 4), trend='c', exog=exog, + simple_differencing=True) + actual = mod.impulse_responses(params, steps=10) + desired = [1, .149215, .128899, .111349, -.038417, .063007, .054429, + .047018, -.069598, .018641, .016103] + assert_allclose(actual, desired, atol=1e-6) + + +def test_structural(): + steps = 10 + + # AR(1) + mod = structural.UnobservedComponents([0], autoregressive=1) + phi = 0.5 + actual = mod.impulse_responses([1, phi], steps) + desired = np.r_[[phi**i for i in range(steps + 1)]] + assert_allclose(actual, desired) + + # ARX(1) + # This is adequately tested in test_simulate.py, since in the time-varying + # case `impulse_responses` just calls `simulate` + + # Irregular + mod = structural.UnobservedComponents([0], 'irregular') + actual = mod.impulse_responses([1.], steps) + assert_allclose(actual, 0) + + # Fixed intercept + # (in practice this is a deterministic constant, because an irregular + # component must be added) + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + mod = structural.UnobservedComponents([0], 'fixed intercept') + actual = mod.impulse_responses([1.], steps) + assert_allclose(actual, 0) + + # Deterministic constant + mod = structural.UnobservedComponents([0], 'deterministic constant') + actual = mod.impulse_responses([1.], steps) + assert_allclose(actual, 0) + + # Local level + mod = structural.UnobservedComponents([0], 'local level') + actual = mod.impulse_responses([1., 1.], steps) + assert_allclose(actual, 1) + + # Random walk + mod = structural.UnobservedComponents([0], 'random walk') + actual = mod.impulse_responses([1.], steps) + assert_allclose(actual, 1) + + # Fixed slope + # (in practice this is a deterministic trend, because an irregular + # component must be added) + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + mod = structural.UnobservedComponents([0], 'fixed slope') + actual = mod.impulse_responses([1.], steps) + assert_allclose(actual, 0) + + # Deterministic trend + mod = structural.UnobservedComponents([0], 'deterministic trend') + actual = mod.impulse_responses([1.], steps) + assert_allclose(actual, 0) + + # Local linear deterministic trend + mod = structural.UnobservedComponents( + [0], 'local linear deterministic trend') + actual = mod.impulse_responses([1., 1.], steps) + assert_allclose(actual, 1) + + # Random walk with drift + mod = structural.UnobservedComponents([0], 'random walk with drift') + actual = mod.impulse_responses([1.], steps) + assert_allclose(actual, 1) + + # Local linear trend + mod = structural.UnobservedComponents([0], 'local linear trend') + # - shock the level + actual = mod.impulse_responses([1., 1., 1.], steps) + assert_allclose(actual, 1) + # - shock the trend + actual = mod.impulse_responses([1., 1., 1.], steps, impulse=1) + assert_allclose(actual, np.arange(steps + 1)) + + # Smooth trend + mod = structural.UnobservedComponents([0], 'smooth trend') + actual = mod.impulse_responses([1., 1.], steps) + assert_allclose(actual, np.arange(steps + 1)) + + # Random trend + mod = structural.UnobservedComponents([0], 'random trend') + actual = mod.impulse_responses([1., 1.], steps) + assert_allclose(actual, np.arange(steps + 1)) + + # Seasonal (deterministic) + mod = structural.UnobservedComponents([0], 'irregular', seasonal=2, + stochastic_seasonal=False) + actual = mod.impulse_responses([1.], steps) + assert_allclose(actual, 0) + + # Seasonal (stochastic) + mod = structural.UnobservedComponents([0], 'irregular', seasonal=2) + actual = mod.impulse_responses([1., 1.], steps) + desired = np.r_[1, np.tile([-1, 1], steps // 2)] + assert_allclose(actual, desired) + + # Cycle (deterministic) + mod = structural.UnobservedComponents([0], 'irregular', cycle=True) + actual = mod.impulse_responses([1., 1.2], steps) + assert_allclose(actual, 0) + + # Cycle (stochastic) + mod = structural.UnobservedComponents([0], 'irregular', cycle=True, + stochastic_cycle=True) + actual = mod.impulse_responses([1., 1., 1.2], steps=10) + x1 = [np.cos(1.2), np.sin(1.2)] + x2 = [-np.sin(1.2), np.cos(1.2)] + T = np.array([x1, x2]) + desired = np.zeros(steps + 1) + states = [1, 0] + for i in range(steps + 1): + desired[i] += states[0] + states = np.dot(T, states) + assert_allclose(actual, desired) + + +def test_varmax(): + steps = 10 + + # Clear warnings + varmax.__warningregistry__ = {} + + # VAR(2) - single series + mod1 = varmax.VARMAX([[0]], order=(2, 0), trend='nc') + mod2 = sarimax.SARIMAX([0], order=(2, 0, 0)) + actual = mod1.impulse_responses([0.5, 0.2, 1], steps) + desired = mod2.impulse_responses([0.5, 0.2, 1], steps) + assert_allclose(actual, desired) + + # VMA(2) - single series + mod1 = varmax.VARMAX([[0]], order=(0, 2), trend='nc') + mod2 = sarimax.SARIMAX([0], order=(0, 0, 2)) + actual = mod1.impulse_responses([0.5, 0.2, 1], steps) + desired = mod2.impulse_responses([0.5, 0.2, 1], steps) + assert_allclose(actual, desired) + + # VARMA(2, 2) - single series + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + mod1 = varmax.VARMAX([[0]], order=(2, 2), trend='nc') + mod2 = sarimax.SARIMAX([0], order=(2, 0, 2)) + actual = mod1.impulse_responses([0.5, 0.2, 0.1, -0.2, 1], steps) + desired = mod2.impulse_responses([0.5, 0.2, 0.1, -0.2, 1], steps) + assert_allclose(actual, desired) + + # VARMA(2, 2) + trend - single series + mod1 = varmax.VARMAX([[0]], order=(2, 2), trend='c') + mod2 = sarimax.SARIMAX([0], order=(2, 0, 2), trend='c') + actual = mod1.impulse_responses([10, 0.5, 0.2, 0.1, -0.2, 1], steps) + desired = mod2.impulse_responses([10, 0.5, 0.2, 0.1, -0.2, 1], steps) + assert_allclose(actual, desired) + + # VAR(2) + constant + # Stata: + # webuse lutkepohl2 + # var dln_inv dln_inc, lags(1/2) + # irf create irf3, set(irf3) step(10) + # irf table irf + # irf table oirf + params = [-.00122728, .01503679, + -.22741923, .71030531, -.11596357, .51494891, + .05974659, .02094608, .05635125, .08332519, + .04297918, .00159473, .01096298] + irf_00 = [1, -.227419, -.021806, .093362, -.001875, -.00906, .009605, + .001323, -.001041, .000769, .00032] + irf_01 = [0, .059747, .044015, -.008218, .007845, .004629, .000104, + .000451, .000638, .000063, .000042] + irf_10 = [0, .710305, .36829, -.065697, .084398, .043038, .000533, + .005755, .006051, .000548, .000526] + irf_11 = [1, .020946, .126202, .066419, .028735, .007477, .009878, + .003287, .001266, .000986, .0005] + oirf_00 = [0.042979, -0.008642, -0.00035, 0.003908, 0.000054, -0.000321, + 0.000414, 0.000066, -0.000035, 0.000034, 0.000015] + oirf_01 = [0.001595, 0.002601, 0.002093, -0.000247, 0.000383, 0.000211, + 0.00002, 0.000025, 0.000029, 4.30E-06, 2.60E-06] + oirf_10 = [0, 0.007787, 0.004037, -0.00072, 0.000925, 0.000472, 5.80E-06, + 0.000063, 0.000066, 6.00E-06, 5.80E-06] + oirf_11 = [0.010963, 0.00023, 0.001384, 0.000728, 0.000315, 0.000082, + 0.000108, 0.000036, 0.000014, 0.000011, 5.50E-06] + + mod = varmax.VARMAX([[0, 0]], order=(2, 0), trend='c') + + # IRFs + actual = mod.impulse_responses(params, steps, impulse=0) + assert_allclose(actual, np.c_[irf_00, irf_01], atol=1e-6) + + actual = mod.impulse_responses(params, steps, impulse=1) + assert_allclose(actual, np.c_[irf_10, irf_11], atol=1e-6) + + # Orthogonalized IRFs + actual = mod.impulse_responses(params, steps, impulse=0, + orthogonalized=True) + assert_allclose(actual, np.c_[oirf_00, oirf_01], atol=1e-6) + + actual = mod.impulse_responses(params, steps, impulse=1, + orthogonalized=True) + assert_allclose(actual, np.c_[oirf_10, oirf_11], atol=1e-6) + + # VARMA(2, 2) + trend + exog + # TODO: This is just a smoke test + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + mod = varmax.VARMAX( + np.random.normal(size=(steps, 2)), order=(2, 2), trend='c', + exog=np.ones(steps), enforce_stationarity=False, + enforce_invertibility=False) + mod.impulse_responses(mod.start_params, steps) + + +def test_dynamic_factor(): + steps = 10 + exog = np.random.normal(size=steps) + + # DFM: 2 series, AR(2) factor + mod1 = dynamic_factor.DynamicFactor([[0, 0]], k_factors=1, factor_order=2) + mod2 = sarimax.SARIMAX([0], order=(2, 0, 0)) + actual = mod1.impulse_responses([-0.9, 0.8, 1., 1., 0.5, 0.2], steps) + desired = mod2.impulse_responses([0.5, 0.2, 1], steps) + assert_allclose(actual[:, 0], -0.9 * desired) + assert_allclose(actual[:, 1], 0.8 * desired) + + # DFM: 2 series, AR(2) factor, exog + mod1 = dynamic_factor.DynamicFactor(np.zeros((steps, 2)), k_factors=1, + factor_order=2, exog=exog) + mod2 = sarimax.SARIMAX([0], order=(2, 0, 0)) + actual = mod1.impulse_responses( + [-0.9, 0.8, 5, -2, 1., 1., 0.5, 0.2], steps) + desired = mod2.impulse_responses([0.5, 0.2, 1], steps) + assert_allclose(actual[:, 0], -0.9 * desired) + assert_allclose(actual[:, 1], 0.8 * desired) + + # DFM, 3 series, VAR(2) factor, exog, error VAR + # TODO: This is just a smoke test + mod = dynamic_factor.DynamicFactor(np.random.normal(size=(steps, 3)), + k_factors=2, factor_order=2, exog=exog, + error_order=2, error_var=True, + enforce_stationarity=False) + mod.impulse_responses(mod.start_params, steps) \ No newline at end of file diff --git a/statsmodels/tsa/statespace/tests/test_kalman.py b/statsmodels/tsa/statespace/tests/test_kalman.py new file mode 100644 index 0000000..3ff034a --- /dev/null +++ b/statsmodels/tsa/statespace/tests/test_kalman.py @@ -0,0 +1,706 @@ +""" +Tests for _statespace module + +Author: Chad Fulton +License: Simplified-BSD + +References +---------- + +Kim, Chang-Jin, and Charles R. Nelson. 1999. +"State-Space Models with Regime Switching: +Classical and Gibbs-Sampling Approaches with Applications". +MIT Press Books. The MIT Press. + +Hamilton, James D. 1994. +Time Series Analysis. +Princeton, N.J.: Princeton University Press. +""" +from __future__ import division, absolute_import, print_function + +import numpy as np +import pandas as pd +import os + +try: + from scipy.linalg.blas import find_best_blas_type +except ImportError: + # Shim for SciPy 0.11, derived from tag=0.11 scipy.linalg.blas + _type_conv = {'f': 's', 'd': 'd', 'F': 'c', 'D': 'z', 'G': 'z'} + + def find_best_blas_type(arrays): + dtype, index = max( + [(ar.dtype, i) for i, ar in enumerate(arrays)]) + prefix = _type_conv.get(dtype.char, 'd') + return (prefix, dtype, None) + + +from statsmodels.tsa.statespace.sarimax import SARIMAX +from statsmodels.tsa.statespace import _statespace as ss +from .results import results_kalman_filter +from numpy.testing import assert_almost_equal, assert_allclose +from nose.exc import SkipTest + +prefix_statespace_map = { + 's': ss.sStatespace, 'd': ss.dStatespace, + 'c': ss.cStatespace, 'z': ss.zStatespace +} +prefix_kalman_filter_map = { + 's': ss.sKalmanFilter, 'd': ss.dKalmanFilter, + 'c': ss.cKalmanFilter, 'z': ss.zKalmanFilter +} + +current_path = os.path.dirname(os.path.abspath(__file__)) + + +class Clark1987(object): + """ + Clark's (1987) univariate unobserved components model of real GDP (as + presented in Kim and Nelson, 1999) + + Test data produced using GAUSS code described in Kim and Nelson (1999) and + found at http://econ.korea.ac.kr/~cjkim/SSMARKOV.htm + + See `results.results_kalman_filter` for more information. + """ + @classmethod + def setup_class(cls, dtype=float, conserve_memory=0, loglikelihood_burn=0): + cls.true = results_kalman_filter.uc_uni + cls.true_states = pd.DataFrame(cls.true['states']) + + # GDP, Quarterly, 1947.1 - 1995.3 + data = pd.DataFrame( + cls.true['data'], + index=pd.date_range('1947-01-01', '1995-07-01', freq='QS'), + columns=['GDP'] + ) + data['lgdp'] = np.log(data['GDP']) + + # Parameters + cls.conserve_memory = conserve_memory + cls.loglikelihood_burn = loglikelihood_burn + + # Observed data + cls.obs = np.array(data['lgdp'], ndmin=2, dtype=dtype, order="F") + + # Measurement equation + cls.k_endog = k_endog = 1 # dimension of observed data + # design matrix + cls.design = np.zeros((k_endog, 4, 1), dtype=dtype, order="F") + cls.design[:, :, 0] = [1, 1, 0, 0] + # observation intercept + cls.obs_intercept = np.zeros((k_endog, 1), dtype=dtype, order="F") + # observation covariance matrix + cls.obs_cov = np.zeros((k_endog, k_endog, 1), dtype=dtype, order="F") + + # Transition equation + cls.k_states = k_states = 4 # dimension of state space + # transition matrix + cls.transition = np.zeros((k_states, k_states, 1), + dtype=dtype, order="F") + cls.transition[([0, 0, 1, 1, 2, 3], + [0, 3, 1, 2, 1, 3], + [0, 0, 0, 0, 0, 0])] = [1, 1, 0, 0, 1, 1] + # state intercept + cls.state_intercept = np.zeros((k_states, 1), dtype=dtype, order="F") + # selection matrix + cls.selection = np.asfortranarray(np.eye(k_states)[:, :, None], + dtype=dtype) + # state covariance matrix + cls.state_cov = np.zeros((k_states, k_states, 1), + dtype=dtype, order="F") + + # Initialization: Diffuse priors + cls.initial_state = np.zeros((k_states,), dtype=dtype, order="F") + cls.initial_state_cov = np.asfortranarray(np.eye(k_states)*100, + dtype=dtype) + + # Update matrices with given parameters + (sigma_v, sigma_e, sigma_w, phi_1, phi_2) = np.array( + cls.true['parameters'], dtype=dtype + ) + cls.transition[([1, 1], [1, 2], [0, 0])] = [phi_1, phi_2] + cls.state_cov[ + np.diag_indices(k_states)+(np.zeros(k_states, dtype=int),)] = [ + sigma_v**2, sigma_e**2, 0, sigma_w**2 + ] + + # Initialization: modification + # Due to the difference in the way Kim and Nelson (1999) and Durbin + # and Koopman (2012) define the order of the Kalman filter routines, + # we need to modify the initial state covariance matrix to match + # Kim and Nelson's results, since the *Statespace models follow Durbin + # and Koopman. + cls.initial_state_cov = np.asfortranarray( + np.dot( + np.dot(cls.transition[:, :, 0], cls.initial_state_cov), + cls.transition[:, :, 0].T + ) + ) + + @classmethod + def init_filter(cls): + # Use the appropriate Statespace model + prefix = find_best_blas_type((cls.obs,)) + klass = prefix_statespace_map[prefix[0]] + + # Instantiate the statespace model + model = klass( + cls.obs, cls.design, cls.obs_intercept, cls.obs_cov, + cls.transition, cls.state_intercept, cls.selection, + cls.state_cov + ) + model.initialize_known(cls.initial_state, cls.initial_state_cov) + + # Initialize the appropriate Kalman filter + klass = prefix_kalman_filter_map[prefix[0]] + kfilter = klass(model, conserve_memory=cls.conserve_memory, + loglikelihood_burn=cls.loglikelihood_burn) + + return model, kfilter + + @classmethod + def run_filter(cls): + # Filter the data + cls.filter() + + # Get results + return { + 'loglike': lambda burn: np.sum(cls.filter.loglikelihood[burn:]), + 'state': np.array(cls.filter.filtered_state), + } + + def test_loglike(self): + assert_almost_equal( + self.result['loglike'](self.true['start']), self.true['loglike'], 5 + ) + + def test_filtered_state(self): + assert_almost_equal( + self.result['state'][0][self.true['start']:], + self.true_states.iloc[:, 0], 4 + ) + assert_almost_equal( + self.result['state'][1][self.true['start']:], + self.true_states.iloc[:, 1], 4 + ) + assert_almost_equal( + self.result['state'][3][self.true['start']:], + self.true_states.iloc[:, 2], 4 + ) + + +class TestClark1987Single(Clark1987): + """ + Basic single precision test for the loglikelihood and filtered states. + """ + @classmethod + def setup_class(cls): + raise SkipTest('Not implemented') + super(TestClark1987Single, cls).setup_class( + dtype=np.float32, conserve_memory=0 + ) + cls.model, cls.filter = cls.init_filter() + cls.result = cls.run_filter() + + def test_loglike(self): + assert_allclose( + self.result['loglike'](self.true['start']), self.true['loglike'], + rtol=1e-3 + ) + + def test_filtered_state(self): + assert_allclose( + self.result['state'][0][self.true['start']:], + self.true_states.iloc[:, 0], + atol=1e-2 + ) + assert_allclose( + self.result['state'][1][self.true['start']:], + self.true_states.iloc[:, 1], + atol=1e-2 + ) + assert_allclose( + self.result['state'][3][self.true['start']:], + self.true_states.iloc[:, 2], + atol=1e-2 + ) + + +class TestClark1987Double(Clark1987): + """ + Basic double precision test for the loglikelihood and filtered states. + """ + @classmethod + def setup_class(cls): + super(TestClark1987Double, cls).setup_class( + dtype=float, conserve_memory=0 + ) + cls.model, cls.filter = cls.init_filter() + cls.result = cls.run_filter() + + +class TestClark1987SingleComplex(Clark1987): + """ + Basic single precision complex test for the loglikelihood and filtered + states. + """ + @classmethod + def setup_class(cls): + raise SkipTest('Not implemented') + super(TestClark1987SingleComplex, cls).setup_class( + dtype=np.complex64, conserve_memory=0 + ) + cls.model, cls.filter = cls.init_filter() + cls.result = cls.run_filter() + + def test_loglike(self): + assert_allclose( + self.result['loglike'](self.true['start']), self.true['loglike'], + rtol=1e-3 + ) + + def test_filtered_state(self): + assert_allclose( + self.result['state'][0][self.true['start']:], + self.true_states.iloc[:, 0], + atol=1e-2 + ) + assert_allclose( + self.result['state'][1][self.true['start']:], + self.true_states.iloc[:, 1], + atol=1e-2 + ) + assert_allclose( + self.result['state'][3][self.true['start']:], + self.true_states.iloc[:, 2], + atol=1e-2 + ) + + +class TestClark1987DoubleComplex(Clark1987): + """ + Basic double precision complex test for the loglikelihood and filtered + states. + """ + @classmethod + def setup_class(cls): + super(TestClark1987DoubleComplex, cls).setup_class( + dtype=complex, conserve_memory=0 + ) + cls.model, cls.filter = cls.init_filter() + cls.result = cls.run_filter() + + +class TestClark1987Conserve(Clark1987): + """ + Memory conservation test for the loglikelihood and filtered states. + """ + @classmethod + def setup_class(cls): + super(TestClark1987Conserve, cls).setup_class( + dtype=float, conserve_memory=0x01 | 0x02 + ) + cls.model, cls.filter = cls.init_filter() + cls.result = cls.run_filter() + + +class Clark1987Forecast(Clark1987): + """ + Forecasting test for the loglikelihood and filtered states. + """ + @classmethod + def setup_class(cls, dtype=float, nforecast=100, conserve_memory=0): + super(Clark1987Forecast, cls).setup_class( + dtype, conserve_memory + ) + cls.nforecast = nforecast + + # Add missing observations to the end (to forecast) + cls._obs = cls.obs + cls.obs = np.array(np.r_[cls.obs[0, :], [np.nan]*nforecast], + ndmin=2, dtype=dtype, order="F") + + def test_filtered_state(self): + assert_almost_equal( + self.result['state'][0][self.true['start']:-self.nforecast], + self.true_states.iloc[:, 0], 4 + ) + assert_almost_equal( + self.result['state'][1][self.true['start']:-self.nforecast], + self.true_states.iloc[:, 1], 4 + ) + assert_almost_equal( + self.result['state'][3][self.true['start']:-self.nforecast], + self.true_states.iloc[:, 2], 4 + ) + + +class TestClark1987ForecastDouble(Clark1987Forecast): + """ + Basic double forecasting test for the loglikelihood and filtered states. + """ + @classmethod + def setup_class(cls): + super(TestClark1987ForecastDouble, cls).setup_class() + cls.model, cls.filter = cls.init_filter() + cls.result = cls.run_filter() + + +class TestClark1987ForecastDoubleComplex(Clark1987Forecast): + """ + Basic double complex forecasting test for the loglikelihood and filtered + states. + """ + @classmethod + def setup_class(cls): + super(TestClark1987ForecastDoubleComplex, cls).setup_class( + dtype=complex + ) + cls.model, cls.filter = cls.init_filter() + cls.result = cls.run_filter() + + +class TestClark1987ForecastConserve(Clark1987Forecast): + """ + Memory conservation forecasting test for the loglikelihood and filtered + states. + """ + @classmethod + def setup_class(cls): + super(TestClark1987ForecastConserve, cls).setup_class( + dtype=float, conserve_memory=0x01 | 0x02 + ) + cls.model, cls.filter = cls.init_filter() + cls.result = cls.run_filter() + + +class TestClark1987ConserveAll(Clark1987): + """ + Memory conservation forecasting test for the loglikelihood and filtered + states. + """ + @classmethod + def setup_class(cls): + super(TestClark1987ConserveAll, cls).setup_class( + dtype=float, conserve_memory=0x01 | 0x02 | 0x04 | 0x08 + ) + cls.loglikelihood_burn = cls.true['start'] + cls.model, cls.filter = cls.init_filter() + cls.result = cls.run_filter() + + def test_loglike(self): + assert_almost_equal( + self.result['loglike'](0), self.true['loglike'], 5 + ) + + def test_filtered_state(self): + end = self.true_states.shape[0] + assert_almost_equal( + self.result['state'][0][-1], + self.true_states.iloc[end-1, 0], 4 + ) + assert_almost_equal( + self.result['state'][1][-1], + self.true_states.iloc[end-1, 1], 4 + ) + + +class Clark1989(object): + """ + Clark's (1989) bivariate unobserved components model of real GDP (as + presented in Kim and Nelson, 1999) + + Tests two-dimensional observation data. + + Test data produced using GAUSS code described in Kim and Nelson (1999) and + found at http://econ.korea.ac.kr/~cjkim/SSMARKOV.htm + + See `results.results_kalman_filter` for more information. + """ + @classmethod + def setup_class(cls, dtype=float, conserve_memory=0, loglikelihood_burn=0): + cls.true = results_kalman_filter.uc_bi + cls.true_states = pd.DataFrame(cls.true['states']) + + # GDP and Unemployment, Quarterly, 1948.1 - 1995.3 + data = pd.DataFrame( + cls.true['data'], + index=pd.date_range('1947-01-01', '1995-07-01', freq='QS'), + columns=['GDP', 'UNEMP'] + )[4:] + data['GDP'] = np.log(data['GDP']) + data['UNEMP'] = (data['UNEMP']/100) + + # Observed data + cls.obs = np.array(data, ndmin=2, dtype=dtype, order="C").T + + # Parameters + cls.k_endog = k_endog = 2 # dimension of observed data + cls.k_states = k_states = 6 # dimension of state space + cls.conserve_memory = conserve_memory + cls.loglikelihood_burn = loglikelihood_burn + + # Measurement equation + + # design matrix + cls.design = np.zeros((k_endog, k_states, 1), dtype=dtype, order="F") + cls.design[:, :, 0] = [[1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1]] + # observation intercept + cls.obs_intercept = np.zeros((k_endog, 1), dtype=dtype, order="F") + # observation covariance matrix + cls.obs_cov = np.zeros((k_endog, k_endog, 1), dtype=dtype, order="F") + + # Transition equation + + # transition matrix + cls.transition = np.zeros((k_states, k_states, 1), + dtype=dtype, order="F") + cls.transition[([0, 0, 1, 1, 2, 3, 4, 5], + [0, 4, 1, 2, 1, 2, 4, 5], + [0, 0, 0, 0, 0, 0, 0, 0])] = [1, 1, 0, 0, 1, 1, 1, 1] + # state intercept + cls.state_intercept = np.zeros((k_states, 1), dtype=dtype, order="F") + # selection matrix + cls.selection = np.asfortranarray(np.eye(k_states)[:, :, None], + dtype=dtype) + # state covariance matrix + cls.state_cov = np.zeros((k_states, k_states, 1), + dtype=dtype, order="F") + + # Initialization: Diffuse priors + cls.initial_state = np.zeros((k_states,), dtype=dtype) + cls.initial_state_cov = np.asfortranarray(np.eye(k_states)*100, + dtype=dtype) + + # Update matrices with given parameters + (sigma_v, sigma_e, sigma_w, sigma_vl, sigma_ec, + phi_1, phi_2, alpha_1, alpha_2, alpha_3) = np.array( + cls.true['parameters'], dtype=dtype + ) + cls.design[([1, 1, 1], [1, 2, 3], [0, 0, 0])] = [ + alpha_1, alpha_2, alpha_3 + ] + cls.transition[([1, 1], [1, 2], [0, 0])] = [phi_1, phi_2] + cls.obs_cov[1, 1, 0] = sigma_ec**2 + cls.state_cov[ + np.diag_indices(k_states)+(np.zeros(k_states, dtype=int),)] = [ + sigma_v**2, sigma_e**2, 0, 0, sigma_w**2, sigma_vl**2 + ] + + # Initialization: modification + # Due to the difference in the way Kim and Nelson (1999) and Drubin + # and Koopman (2012) define the order of the Kalman filter routines, + # we need to modify the initial state covariance matrix to match + # Kim and Nelson's results, since the *Statespace models follow Durbin + # and Koopman. + cls.initial_state_cov = np.asfortranarray( + np.dot( + np.dot(cls.transition[:, :, 0], cls.initial_state_cov), + cls.transition[:, :, 0].T + ) + ) + + @classmethod + def init_filter(cls): + # Use the appropriate Statespace model + prefix = find_best_blas_type((cls.obs,)) + klass = prefix_statespace_map[prefix[0]] + + # Instantiate the statespace model + model = klass( + cls.obs, cls.design, cls.obs_intercept, cls.obs_cov, + cls.transition, cls.state_intercept, cls.selection, + cls.state_cov + ) + model.initialize_known(cls.initial_state, cls.initial_state_cov) + + # Initialize the appropriate Kalman filter + klass = prefix_kalman_filter_map[prefix[0]] + kfilter = klass(model, conserve_memory=cls.conserve_memory, + loglikelihood_burn=cls.loglikelihood_burn) + + return model, kfilter + + @classmethod + def run_filter(cls): + # Filter the data + cls.filter() + + # Get results + return { + 'loglike': lambda burn: np.sum(cls.filter.loglikelihood[burn:]), + 'state': np.array(cls.filter.filtered_state), + } + + def test_loglike(self): + assert_almost_equal( + # self.result['loglike'](self.true['start']), + self.result['loglike'](0), + self.true['loglike'], 2 + ) + + def test_filtered_state(self): + assert_almost_equal( + self.result['state'][0][self.true['start']:], + self.true_states.iloc[:, 0], 4 + ) + assert_almost_equal( + self.result['state'][1][self.true['start']:], + self.true_states.iloc[:, 1], 4 + ) + assert_almost_equal( + self.result['state'][4][self.true['start']:], + self.true_states.iloc[:, 2], 4 + ) + assert_almost_equal( + self.result['state'][5][self.true['start']:], + self.true_states.iloc[:, 3], 4 + ) + + +class TestClark1989(Clark1989): + """ + Basic double precision test for the loglikelihood and filtered + states with two-dimensional observation vector. + """ + @classmethod + def setup_class(cls): + super(TestClark1989, cls).setup_class(dtype=float, conserve_memory=0) + cls.model, cls.filter = cls.init_filter() + cls.result = cls.run_filter() + + +class TestClark1989Conserve(Clark1989): + """ + Memory conservation test for the loglikelihood and filtered states with + two-dimensional observation vector. + """ + @classmethod + def setup_class(cls): + super(TestClark1989Conserve, cls).setup_class( + dtype=float, conserve_memory=0x01 | 0x02 + ) + cls.model, cls.filter = cls.init_filter() + cls.result = cls.run_filter() + + +class Clark1989Forecast(Clark1989): + """ + Memory conservation test for the loglikelihood and filtered states with + two-dimensional observation vector. + """ + @classmethod + def setup_class(cls, dtype=float, nforecast=100, conserve_memory=0): + super(Clark1989Forecast, cls).setup_class(dtype, conserve_memory) + cls.nforecast = nforecast + + # Add missing observations to the end (to forecast) + cls._obs = cls.obs + cls.obs = np.array( + np.c_[ + cls._obs, + np.r_[[np.nan, np.nan]*nforecast].reshape(2, nforecast) + ], + ndmin=2, dtype=dtype, order="F" + ) + + cls.model, cls.filter = cls.init_filter() + cls.result = cls.run_filter() + + def test_filtered_state(self): + assert_almost_equal( + self.result['state'][0][self.true['start']:-self.nforecast], + self.true_states.iloc[:, 0], 4 + ) + assert_almost_equal( + self.result['state'][1][self.true['start']:-self.nforecast], + self.true_states.iloc[:, 1], 4 + ) + assert_almost_equal( + self.result['state'][4][self.true['start']:-self.nforecast], + self.true_states.iloc[:, 2], 4 + ) + assert_almost_equal( + self.result['state'][5][self.true['start']:-self.nforecast], + self.true_states.iloc[:, 3], 4 + ) + + +class TestClark1989ForecastDouble(Clark1989Forecast): + """ + Basic double forecasting test for the loglikelihood and filtered states. + """ + @classmethod + def setup_class(cls): + super(TestClark1989ForecastDouble, cls).setup_class() + cls.model, cls.filter = cls.init_filter() + cls.result = cls.run_filter() + + +class TestClark1989ForecastDoubleComplex(Clark1989Forecast): + """ + Basic double complex forecasting test for the loglikelihood and filtered + states. + """ + @classmethod + def setup_class(cls): + super(TestClark1989ForecastDoubleComplex, cls).setup_class( + dtype=complex + ) + cls.model, cls.filter = cls.init_filter() + cls.result = cls.run_filter() + + +class TestClark1989ForecastConserve(Clark1989Forecast): + """ + Memory conservation forecasting test for the loglikelihood and filtered + states. + """ + @classmethod + def setup_class(cls): + super(TestClark1989ForecastConserve, cls).setup_class( + dtype=float, conserve_memory=0x01 | 0x02 + ) + cls.model, cls.filter = cls.init_filter() + cls.result = cls.run_filter() + + +class TestClark1989ConserveAll(Clark1989): + """ + Memory conservation forecasting test for the loglikelihood and filtered + states. + """ + @classmethod + def setup_class(cls): + super(TestClark1989ConserveAll, cls).setup_class( + dtype=float, conserve_memory=0x01 | 0x02 | 0x04 | 0x08, + ) + # cls.loglikelihood_burn = cls.true['start'] + cls.loglikelihood_burn = 0 + cls.model, cls.filter = cls.init_filter() + cls.result = cls.run_filter() + + def test_loglike(self): + assert_almost_equal( + self.result['loglike'](0), self.true['loglike'], 2 + ) + + def test_filtered_state(self): + end = self.true_states.shape[0] + assert_almost_equal( + self.result['state'][0][-1], + self.true_states.iloc[end-1, 0], 4 + ) + assert_almost_equal( + self.result['state'][1][-1], + self.true_states.iloc[end-1, 1], 4 + ) + assert_almost_equal( + self.result['state'][4][-1], + self.true_states.iloc[end-1, 2], 4 + ) + assert_almost_equal( + self.result['state'][5][-1], + self.true_states.iloc[end-1, 3], 4 + ) diff --git a/statsmodels/tsa/statespace/tests/test_mlemodel.py b/statsmodels/tsa/statespace/tests/test_mlemodel.py new file mode 100644 index 0000000..d36ad82 --- /dev/null +++ b/statsmodels/tsa/statespace/tests/test_mlemodel.py @@ -0,0 +1,784 @@ +""" +Tests for the generic MLEModel + +Author: Chad Fulton +License: Simplified-BSD +""" +from __future__ import division, absolute_import, print_function + +import numpy as np +import pandas as pd +import os +import re + +import warnings +from statsmodels.tsa.statespace import sarimax, kalman_filter, kalman_smoother +from statsmodels.tsa.statespace.mlemodel import MLEModel, MLEResultsWrapper +from statsmodels.datasets import nile +from numpy.testing import assert_almost_equal, assert_equal, assert_allclose, assert_raises +from nose.exc import SkipTest +from statsmodels.tsa.statespace.tests.results import results_sarimax + +current_path = os.path.dirname(os.path.abspath(__file__)) + +try: + import matplotlib.pyplot as plt + have_matplotlib = True +except ImportError: + have_matplotlib = False + +# Basic kwargs +kwargs = { + 'k_states': 1, 'design': [[1]], 'transition': [[1]], + 'selection': [[1]], 'state_cov': [[1]], + 'initialization': 'approximate_diffuse' +} + + +def get_dummy_mod(fit=True, pandas=False): + # This tests time-varying parameters regression when in fact the parameters + # are not time-varying, and in fact the regression fit is perfect + endog = np.arange(100)*1.0 + exog = 2*endog + + if pandas: + index = pd.date_range('1960-01-01', periods=100, freq='MS') + endog = pd.Series(endog, index=index) + exog = pd.Series(exog, index=index) + + mod = sarimax.SARIMAX(endog, exog=exog, order=(0,0,0), time_varying_regression=True, mle_regression=False) + + if fit: + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + res = mod.fit(disp=-1) + else: + res = None + + return mod, res + + +def test_wrapping(): + # Test the wrapping of various Representation / KalmanFilter / + # KalmanSmoother methods / attributes + mod, _ = get_dummy_mod(fit=False) + + # Test that we can get the design matrix + assert_equal(mod['design', 0, 0], 2.0 * np.arange(100)) + + # Test that we can set individual elements of the design matrix + mod['design', 0, 0, :] = 2 + assert_equal(mod.ssm['design', 0, 0, :], 2) + assert_equal(mod.ssm['design'].shape, (1, 1, 100)) + + # Test that we can set the entire design matrix + mod['design'] = [[3.]] + assert_equal(mod.ssm['design', 0, 0], 3.) + # (Now it's no longer time-varying, so only 2-dim) + assert_equal(mod.ssm['design'].shape, (1, 1)) + + # Test that we can change the following properties: loglikelihood_burn, + # initial_variance, tolerance + assert_equal(mod.loglikelihood_burn, 1) + mod.loglikelihood_burn = 0 + assert_equal(mod.ssm.loglikelihood_burn, 0) + + assert_equal(mod.tolerance, mod.ssm.tolerance) + mod.tolerance = 0.123 + assert_equal(mod.ssm.tolerance, 0.123) + + assert_equal(mod.initial_variance, 1e10) + mod.initial_variance = 1e12 + assert_equal(mod.ssm.initial_variance, 1e12) + + # Test that we can use the following wrappers: initialization, + # initialize_known, initialize_stationary, initialize_approximate_diffuse + + # Initialization starts off as none + assert_equal(mod.initialization, None) + + # Since the SARIMAX model may be fully stationary or may have diffuse + # elements, it uses a custom initialization by default, but it can be + # overridden by users + mod.initialize_state() + # (The default initialization in this case is known because there is a non- + # stationary state corresponding to the time-varying regression parameter) + assert_equal(mod.initialization, 'known') + + mod.initialize_approximate_diffuse(1e5) + assert_equal(mod.initialization, 'approximate_diffuse') + assert_equal(mod.ssm._initial_variance, 1e5) + + mod.initialize_known([5.], [[40]]) + assert_equal(mod.initialization, 'known') + assert_equal(mod.ssm._initial_state, [5.]) + assert_equal(mod.ssm._initial_state_cov, [[40]]) + + mod.initialize_stationary() + assert_equal(mod.initialization, 'stationary') + + # Test that we can use the following wrapper methods: set_filter_method, + # set_stability_method, set_conserve_memory, set_smoother_output + + # The defaults are as follows: + assert_equal(mod.ssm.filter_method, kalman_filter.FILTER_CONVENTIONAL) + assert_equal(mod.ssm.stability_method, kalman_filter.STABILITY_FORCE_SYMMETRY) + assert_equal(mod.ssm.conserve_memory, kalman_filter.MEMORY_STORE_ALL) + assert_equal(mod.ssm.smoother_output, kalman_smoother.SMOOTHER_ALL) + + # Now, create the Cython filter object and assert that they have + # transferred correctly + mod.ssm._initialize_filter() + kf = mod.ssm._kalman_filter + assert_equal(kf.filter_method, kalman_filter.FILTER_CONVENTIONAL) + assert_equal(kf.stability_method, kalman_filter.STABILITY_FORCE_SYMMETRY) + assert_equal(kf.conserve_memory, kalman_filter.MEMORY_STORE_ALL) + # (the smoother object is so far not in Cython, so there is no + # transferring) + + # Change the attributes in the model class + mod.set_filter_method(100) + mod.set_stability_method(101) + mod.set_conserve_memory(102) + mod.set_smoother_output(103) + + # Assert that the changes have occurred in the ssm class + assert_equal(mod.ssm.filter_method, 100) + assert_equal(mod.ssm.stability_method, 101) + assert_equal(mod.ssm.conserve_memory, 102) + assert_equal(mod.ssm.smoother_output, 103) + + # Assert that the changes have *not yet* occurred in the filter object + assert_equal(kf.filter_method, kalman_filter.FILTER_CONVENTIONAL) + assert_equal(kf.stability_method, kalman_filter.STABILITY_FORCE_SYMMETRY) + assert_equal(kf.conserve_memory, kalman_filter.MEMORY_STORE_ALL) + + # Re-initialize the filter object (this would happen automatically anytime + # loglike, filter, etc. were called) + # In this case, an error will be raised since filter_method=100 is not + # valid + assert_raises(NotImplementedError, mod.ssm._initialize_filter) + + # Now, test the setting of the other two methods by resetting the + # filter method to a valid value + mod.set_filter_method(1) + mod.ssm._initialize_filter() + # Retrieve the new kalman filter object (a new object had to be created + # due to the changing filter method) + kf = mod.ssm._kalman_filter + + assert_equal(kf.filter_method, 1) + assert_equal(kf.stability_method, 101) + assert_equal(kf.conserve_memory, 102) + + +def test_fit_misc(): + true = results_sarimax.wpi1_stationary + endog = np.diff(true['data'])[1:] + + mod = sarimax.SARIMAX(endog, order=(1,0,1), trend='c') + + # Test optim_hessian={'opg','oim','approx'} + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + res1 = mod.fit(method='ncg', disp=0, optim_hessian='opg', optim_complex_step=False) + res2 = mod.fit(method='ncg', disp=0, optim_hessian='oim', optim_complex_step=False) + assert_raises(NotImplementedError, mod.fit, method='ncg', disp=False, optim_hessian='a') + # Check that the Hessians broadly result in the same optimum + assert_allclose(res1.llf, res2.llf, rtol=1e-2) + + # Test return_params=True + mod, _ = get_dummy_mod(fit=False) + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + res_params = mod.fit(disp=-1, return_params=True) + + # 5 digits necessary to accommodate 32-bit numpy / scipy with OpenBLAS 0.2.18 + assert_almost_equal(res_params, [0, 0], 5) + + +def test_score_misc(): + mod, res = get_dummy_mod() + + # Test that the score function works + mod.score(res.params) + + +def test_from_formula(): + assert_raises(NotImplementedError, lambda: MLEModel.from_formula(1,2,3)) + + +def test_score_analytic_ar1(): + # Test the score against the analytic score for an AR(1) model with 2 + # observations + # Let endog = [1, 0.5], params=[0, 1] + mod = sarimax.SARIMAX([1, 0.5], order=(1,0,0)) + + def partial_phi(phi, sigma2): + return -0.5 * (phi**2 + 2*phi*sigma2 - 1) / (sigma2 * (1 - phi**2)) + + def partial_sigma2(phi, sigma2): + return -0.5 * (2*sigma2 + phi - 1.25) / (sigma2**2) + + params = np.r_[0., 2] + + # Compute the analytic score + analytic_score = np.r_[ + partial_phi(params[0], params[1]), + partial_sigma2(params[0], params[1])] + + # Check each of the approximations, transformed parameters + approx_cs = mod.score(params, transformed=True, approx_complex_step=True) + assert_allclose(approx_cs, analytic_score) + + approx_fd = mod.score(params, transformed=True, approx_complex_step=False) + assert_allclose(approx_fd, analytic_score, atol=1e-5) + + approx_fd_centered = ( + mod.score(params, transformed=True, approx_complex_step=False, + approx_centered=True)) + assert_allclose(approx_fd, analytic_score, atol=1e-5) + + harvey_cs = mod.score(params, transformed=True, method='harvey', + approx_complex_step=True) + assert_allclose(harvey_cs, analytic_score) + harvey_fd = mod.score(params, transformed=True, method='harvey', + approx_complex_step=False) + assert_allclose(harvey_fd, analytic_score, atol=1e-5) + harvey_fd_centered = mod.score(params, transformed=True, method='harvey', + approx_complex_step=False, + approx_centered=True) + assert_allclose(harvey_fd_centered, analytic_score, atol=1e-5) + + # Check the approximations for untransformed parameters. The analytic + # check now comes from chain rule with the analytic derivative of the + # transformation + # if L* is the likelihood evaluated at untransformed parameters and + # L is the likelihood evaluated at transformed parameters, then we have: + # L*(u) = L(t(u)) + # and then + # L'*(u) = L'(t(u)) * t'(u) + def partial_transform_phi(phi): + return -1. / (1 + phi**2)**(3./2) + + def partial_transform_sigma2(sigma2): + return 2. * sigma2 + + uparams = mod.untransform_params(params) + + analytic_score = np.dot( + np.diag(np.r_[partial_transform_phi(uparams[0]), + partial_transform_sigma2(uparams[1])]), + np.r_[partial_phi(params[0], params[1]), + partial_sigma2(params[0], params[1])]) + + approx_cs = mod.score(uparams, transformed=False, approx_complex_step=True) + assert_allclose(approx_cs, analytic_score) + + approx_fd = mod.score(uparams, transformed=False, + approx_complex_step=False) + assert_allclose(approx_fd, analytic_score, atol=1e-5) + + approx_fd_centered = ( + mod.score(uparams, transformed=False, approx_complex_step=False, + approx_centered=True)) + assert_allclose(approx_fd, analytic_score, atol=1e-5) + + harvey_cs = mod.score(uparams, transformed=False, method='harvey', + approx_complex_step=True) + assert_allclose(harvey_cs, analytic_score) + harvey_fd = mod.score(uparams, transformed=False, method='harvey', + approx_complex_step=False) + assert_allclose(harvey_fd, analytic_score, atol=1e-5) + harvey_fd_centered = mod.score(uparams, transformed=False, method='harvey', + approx_complex_step=False, + approx_centered=True) + assert_allclose(harvey_fd_centered, analytic_score, atol=1e-5) + + # Check the Hessian: these approximations are not very good, particularly + # when phi is close to 0 + params = np.r_[0.5, 1.] + def hessian(phi, sigma2): + hessian = np.zeros((2,2)) + hessian[0,0] = (-phi**2 - 1) / (phi**2 - 1)**2 + hessian[1,0] = hessian[0,1] = -1 / (2 * sigma2**2) + hessian[1,1] = (sigma2 + phi - 1.25) / sigma2**3 + return hessian + + analytic_hessian = hessian(params[0], params[1]) + + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + assert_allclose(mod._hessian_complex_step(params) * 2, + analytic_hessian, atol=1e-1) + assert_allclose(mod._hessian_finite_difference(params) * 2, + analytic_hessian, atol=1e-1) + + +def test_cov_params(): + mod, res = get_dummy_mod() + + # Smoke test for each of the covariance types + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + res = mod.fit(res.params, disp=-1, cov_type='none') + assert_equal(res.cov_kwds['description'], 'Covariance matrix not calculated.') + res = mod.fit(res.params, disp=-1, cov_type='approx') + assert_equal(res.cov_type, 'approx') + assert_equal(res.cov_kwds['description'], 'Covariance matrix calculated using numerical (complex-step) differentiation.') + res = mod.fit(res.params, disp=-1, cov_type='oim') + assert_equal(res.cov_type, 'oim') + assert_equal(res.cov_kwds['description'], 'Covariance matrix calculated using the observed information matrix (complex-step) described in Harvey (1989).') + res = mod.fit(res.params, disp=-1, cov_type='opg') + assert_equal(res.cov_type, 'opg') + assert_equal(res.cov_kwds['description'], 'Covariance matrix calculated using the outer product of gradients (complex-step).') + res = mod.fit(res.params, disp=-1, cov_type='robust') + assert_equal(res.cov_type, 'robust') + assert_equal(res.cov_kwds['description'], 'Quasi-maximum likelihood covariance matrix used for robustness to some misspecifications; calculated using the observed information matrix (complex-step) described in Harvey (1989).') + res = mod.fit(res.params, disp=-1, cov_type='robust_oim') + assert_equal(res.cov_type, 'robust_oim') + assert_equal(res.cov_kwds['description'], 'Quasi-maximum likelihood covariance matrix used for robustness to some misspecifications; calculated using the observed information matrix (complex-step) described in Harvey (1989).') + res = mod.fit(res.params, disp=-1, cov_type='robust_approx') + assert_equal(res.cov_type, 'robust_approx') + assert_equal(res.cov_kwds['description'], 'Quasi-maximum likelihood covariance matrix used for robustness to some misspecifications; calculated using numerical (complex-step) differentiation.') + assert_raises(NotImplementedError, mod.fit, res.params, disp=-1, cov_type='invalid_cov_type') + + +def test_transform(): + # The transforms in MLEModel are noops + mod = MLEModel([1,2], **kwargs) + + # Test direct transform, untransform + assert_allclose(mod.transform_params([2, 3]), [2, 3]) + assert_allclose(mod.untransform_params([2, 3]), [2, 3]) + + # Smoke test for transformation in `filter`, `update`, `loglike`, + # `loglikeobs` + mod.filter([], transformed=False) + mod.update([], transformed=False) + mod.loglike([], transformed=False) + mod.loglikeobs([], transformed=False) + + # Note that mod is an SARIMAX instance, and the two parameters are + # variances + mod, _ = get_dummy_mod(fit=False) + + # Test direct transform, untransform + assert_allclose(mod.transform_params([2, 3]), [4, 9]) + assert_allclose(mod.untransform_params([4, 9]), [2, 3]) + + # Test transformation in `filter` + res = mod.filter([2, 3], transformed=True) + assert_allclose(res.params, [2, 3]) + + res = mod.filter([2, 3], transformed=False) + assert_allclose(res.params, [4, 9]) + + +def test_filter(): + endog = np.array([1., 2.]) + mod = MLEModel(endog, **kwargs) + + # Test return of ssm object + res = mod.filter([], return_ssm=True) + assert_equal(isinstance(res, kalman_filter.FilterResults), True) + + # Test return of full results object + res = mod.filter([]) + assert_equal(isinstance(res, MLEResultsWrapper), True) + assert_equal(res.cov_type, 'opg') + + # Test return of full results object, specific covariance type + res = mod.filter([], cov_type='oim') + assert_equal(isinstance(res, MLEResultsWrapper), True) + assert_equal(res.cov_type, 'oim') + + +def test_params(): + mod = MLEModel([1,2], **kwargs) + + # By default start_params raises NotImplementedError + assert_raises(NotImplementedError, lambda: mod.start_params) + # But param names are by default an empty array + assert_equal(mod.param_names, []) + + # We can set them in the object if we want + mod._start_params = [1] + mod._param_names = ['a'] + + assert_equal(mod.start_params, [1]) + assert_equal(mod.param_names, ['a']) + + +def check_results(pandas): + mod, res = get_dummy_mod(pandas=pandas) + + # Test fitted values + assert_almost_equal(res.fittedvalues[2:], mod.endog[2:].squeeze()) + + # Test residuals + assert_almost_equal(res.resid[2:], np.zeros(mod.nobs-2)) + + # Test loglikelihood_burn + assert_equal(res.loglikelihood_burn, 1) + + +def test_results(pandas=False): + check_results(pandas=False) + check_results(pandas=True) + + +def test_predict(): + dates = pd.date_range(start='1980-01-01', end='1981-01-01', freq='AS') + endog = pd.Series([1,2], index=dates) + mod = MLEModel(endog, **kwargs) + res = mod.filter([]) + + # Test that predict with start=None, end=None does prediction with full + # dataset + predict = res.predict() + assert_equal(predict.shape, (mod.nobs,)) + assert_allclose(res.get_prediction().predicted_mean, predict) + + # Test a string value to the dynamic option + assert_allclose(res.predict(dynamic='1981-01-01'), res.predict()) + + # Test an invalid date string value to the dynamic option + assert_raises(ValueError, res.predict, dynamic='1982-01-01') + + # Test for passing a string to predict when dates are not set + mod = MLEModel([1,2], **kwargs) + res = mod.filter([]) + assert_raises(ValueError, res.predict, dynamic='string') + + +def test_forecast(): + # Numpy + mod = MLEModel([1,2], **kwargs) + res = mod.filter([]) + forecast = res.forecast(steps=10) + assert_allclose(forecast, np.ones((10,)) * 2) + assert_allclose(res.get_forecast(steps=10).predicted_mean, forecast) + + # Pandas + index = pd.date_range('1960-01-01', periods=2, freq='MS') + mod = MLEModel(pd.Series([1,2], index=index), **kwargs) + res = mod.filter([]) + assert_allclose(res.forecast(steps=10), np.ones((10,)) * 2) + assert_allclose(res.forecast(steps='1960-12-01'), np.ones((10,)) * 2) + assert_allclose(res.get_forecast(steps=10).predicted_mean, np.ones((10,)) * 2) + + +def test_summary(): + dates = pd.date_range(start='1980-01-01', end='1984-01-01', freq='AS') + endog = pd.Series([1,2,3,4,5], index=dates) + mod = MLEModel(endog, **kwargs) + res = mod.filter([]) + + # Get the summary + txt = str(res.summary()) + + # Test res.summary when the model has dates + assert_equal(re.search('Sample:\s+01-01-1980', txt) is not None, True) + assert_equal(re.search('\s+- 01-01-1984', txt) is not None, True) + + # Test res.summary when `model_name` was not provided + assert_equal(re.search('Model:\s+MLEModel', txt) is not None, True) + + # Smoke test that summary still works when diagnostic tests fail + res.filter_results._standardized_forecasts_error[:] = np.nan + res.summary() + res.filter_results._standardized_forecasts_error = 1 + res.summary() + res.filter_results._standardized_forecasts_error = 'a' + res.summary() + + +def check_endog(endog, nobs=2, k_endog=1, **kwargs): + # create the model + mod = MLEModel(endog, **kwargs) + # the data directly available in the model is the Statsmodels version of + # the data; it should be 2-dim, C-contiguous, long-shaped: + # (nobs, k_endog) == (2, 1) + assert_equal(mod.endog.ndim, 2) + assert_equal(mod.endog.flags['C_CONTIGUOUS'], True) + assert_equal(mod.endog.shape, (nobs, k_endog)) + # the data in the `ssm` object is the state space version of the data; it + # should be 2-dim, F-contiguous, wide-shaped (k_endog, nobs) == (1, 2) + # and it should share data with mod.endog + assert_equal(mod.ssm.endog.ndim, 2) + assert_equal(mod.ssm.endog.flags['F_CONTIGUOUS'], True) + assert_equal(mod.ssm.endog.shape, (k_endog, nobs)) + assert_equal(mod.ssm.endog.base is mod.endog, True) + + return mod + +def test_basic_endog(): + # Test various types of basic python endog inputs (e.g. lists, scalars...) + + # Check cannot call with non-array-like + # fails due to checks in Statsmodels base classes + assert_raises(ValueError, MLEModel, endog=1, k_states=1) + assert_raises(ValueError, MLEModel, endog='a', k_states=1) + assert_raises(ValueError, MLEModel, endog=True, k_states=1) + + # Check behavior with different types + mod = MLEModel([1], **kwargs) + res = mod.filter([]) + assert_equal(res.filter_results.endog, [[1]]) + + mod = MLEModel([1.], **kwargs) + res = mod.filter([]) + assert_equal(res.filter_results.endog, [[1]]) + + mod = MLEModel([True], **kwargs) + res = mod.filter([]) + assert_equal(res.filter_results.endog, [[1]]) + + mod = MLEModel(['a'], **kwargs) + # raises error due to inability coerce string to numeric + assert_raises(ValueError, mod.filter, []) + + # Check that a different iterable tpyes give the expected result + endog = [1.,2.] + mod = check_endog(endog, **kwargs) + mod.filter([]) + + endog = [[1.],[2.]] + mod = check_endog(endog, **kwargs) + mod.filter([]) + + endog = (1.,2.) + mod = check_endog(endog, **kwargs) + mod.filter([]) + +def test_numpy_endog(): + # Test various types of numpy endog inputs + + # Check behavior of the link maintained between passed `endog` and + # `mod.endog` arrays + endog = np.array([1., 2.]) + mod = MLEModel(endog, **kwargs) + assert_equal(mod.endog.base is not mod.data.orig_endog, True) + assert_equal(mod.endog.base is not endog, True) + assert_equal(mod.data.orig_endog.base is not endog, True) + endog[0] = 2 + # there is no link to mod.endog + assert_equal(mod.endog, np.r_[1, 2].reshape(2,1)) + # there remains a link to mod.data.orig_endog + assert_equal(mod.data.orig_endog, endog) + + # Check behavior with different memory layouts / shapes + + # Example (failure): 0-dim array + endog = np.array(1.) + # raises error due to len(endog) failing in Statsmodels base classes + assert_raises(TypeError, check_endog, endog, **kwargs) + + # Example : 1-dim array, both C- and F-contiguous, length 2 + endog = np.array([1.,2.]) + assert_equal(endog.ndim, 1) + assert_equal(endog.flags['C_CONTIGUOUS'], True) + assert_equal(endog.flags['F_CONTIGUOUS'], True) + assert_equal(endog.shape, (2,)) + mod = check_endog(endog, **kwargs) + mod.filter([]) + + # Example : 2-dim array, C-contiguous, long-shaped: (nobs, k_endog) + endog = np.array([1., 2.]).reshape(2, 1) + assert_equal(endog.ndim, 2) + assert_equal(endog.flags['C_CONTIGUOUS'], True) + # On newer numpy (>= 0.10), this array is (rightly) both C and F contiguous + # assert_equal(endog.flags['F_CONTIGUOUS'], False) + assert_equal(endog.shape, (2, 1)) + mod = check_endog(endog, **kwargs) + mod.filter([]) + + # Example : 2-dim array, C-contiguous, wide-shaped: (k_endog, nobs) + endog = np.array([1., 2.]).reshape(1, 2) + assert_equal(endog.ndim, 2) + assert_equal(endog.flags['C_CONTIGUOUS'], True) + # On newer numpy (>= 0.10), this array is (rightly) both C and F contiguous + # assert_equal(endog.flags['F_CONTIGUOUS'], False) + assert_equal(endog.shape, (1, 2)) + # raises error because arrays are always interpreted as + # (nobs, k_endog), which means that k_endog=2 is incompatibile with shape + # of design matrix (1, 1) + assert_raises(ValueError, check_endog, endog, **kwargs) + + # Example : 2-dim array, F-contiguous, long-shaped (nobs, k_endog) + endog = np.array([1., 2.]).reshape(1, 2).transpose() + assert_equal(endog.ndim, 2) + # On newer numpy (>= 0.10), this array is (rightly) both C and F contiguous + # assert_equal(endog.flags['C_CONTIGUOUS'], False) + assert_equal(endog.flags['F_CONTIGUOUS'], True) + assert_equal(endog.shape, (2, 1)) + mod = check_endog(endog, **kwargs) + mod.filter([]) + + # Example : 2-dim array, F-contiguous, wide-shaped (k_endog, nobs) + endog = np.array([1., 2.]).reshape(2, 1).transpose() + assert_equal(endog.ndim, 2) + # On newer numpy (>= 0.10), this array is (rightly) both C and F contiguous + # assert_equal(endog.flags['C_CONTIGUOUS'], False) + assert_equal(endog.flags['F_CONTIGUOUS'], True) + assert_equal(endog.shape, (1, 2)) + # raises error because arrays are always interpreted as + # (nobs, k_endog), which means that k_endog=2 is incompatibile with shape + # of design matrix (1, 1) + assert_raises(ValueError, check_endog, endog, **kwargs) + + # Example (failure): 3-dim array + endog = np.array([1., 2.]).reshape(2, 1, 1) + # raises error due to direct ndim check in Statsmodels base classes + assert_raises(ValueError, check_endog, endog, **kwargs) + + # Example : np.array with 2 columns + # Update kwargs for k_endog=2 + kwargs2 = { + 'k_states': 1, 'design': [[1], [0.]], 'obs_cov': [[1, 0], [0, 1]], + 'transition': [[1]], 'selection': [[1]], 'state_cov': [[1]], + 'initialization': 'approximate_diffuse' + } + endog = np.array([[1., 2.], [3., 4.]]) + mod = check_endog(endog, k_endog=2, **kwargs2) + mod.filter([]) + +def test_pandas_endog(): + # Test various types of pandas endog inputs (e.g. TimeSeries, etc.) + + # Example (failure): pandas.Series, no dates + endog = pd.Series([1., 2.]) + # raises error due to no dates + warnings.simplefilter('always') + assert_raises(ValueError, check_endog, endog, **kwargs) + + # Example : pandas.Series + dates = pd.date_range(start='1980-01-01', end='1981-01-01', freq='AS') + endog = pd.Series([1., 2.], index=dates) + mod = check_endog(endog, **kwargs) + mod.filter([]) + + # Example : pandas.Series, string datatype + endog = pd.Series(['a'], index=dates) + # raises error due to direct type casting check in Statsmodels base classes + assert_raises(ValueError, check_endog, endog, **kwargs) + + # Example : pandas.Series + endog = pd.Series([1., 2.], index=dates) + mod = check_endog(endog, **kwargs) + mod.filter([]) + + # Example : pandas.DataFrame with 1 column + endog = pd.DataFrame({'a': [1., 2.]}, index=dates) + mod = check_endog(endog, **kwargs) + mod.filter([]) + + # Example (failure): pandas.DataFrame with 2 columns + endog = pd.DataFrame({'a': [1., 2.], 'b': [3., 4.]}, index=dates) + # raises error because 2-columns means k_endog=2, but the design matrix + # set in **kwargs is shaped (1,1) + assert_raises(ValueError, check_endog, endog, **kwargs) + + # Check behavior of the link maintained between passed `endog` and + # `mod.endog` arrays + endog = pd.DataFrame({'a': [1., 2.]}, index=dates) + mod = check_endog(endog, **kwargs) + assert_equal(mod.endog.base is not mod.data.orig_endog, True) + assert_equal(mod.endog.base is not endog, True) + assert_equal(mod.data.orig_endog.values.base is not endog, True) + endog.iloc[0, 0] = 2 + # there is no link to mod.endog + assert_equal(mod.endog, np.r_[1, 2].reshape(2,1)) + # there remains a link to mod.data.orig_endog + assert_allclose(mod.data.orig_endog, endog) + + # Example : pandas.DataFrame with 2 columns + # Update kwargs for k_endog=2 + kwargs2 = { + 'k_states': 1, 'design': [[1], [0.]], 'obs_cov': [[1, 0], [0, 1]], + 'transition': [[1]], 'selection': [[1]], 'state_cov': [[1]], + 'initialization': 'approximate_diffuse' + } + endog = pd.DataFrame({'a': [1., 2.], 'b': [3., 4.]}, index=dates) + mod = check_endog(endog, k_endog=2, **kwargs2) + mod.filter([]) + +def test_diagnostics(): + mod, res = get_dummy_mod() + + # Make sure method=None selects the appropriate test + actual = res.test_normality(method=None) + desired = res.test_normality(method='jarquebera') + assert_allclose(actual, desired) + + actual = res.test_heteroskedasticity(method=None) + desired = res.test_heteroskedasticity(method='breakvar') + assert_allclose(actual, desired) + + actual = res.test_serial_correlation(method=None) + desired = res.test_serial_correlation(method='ljungbox') + assert_allclose(actual, desired) + +def test_diagnostics_nile_eviews(): + # Test the diagnostic tests using the Nile dataset. Results are from + # "Fitting State Space Models with EViews" (Van den Bossche 2011, + # Journal of Statistical Software). + # For parameter values, see Figure 2 + # For Ljung-Box and Jarque-Bera statistics and p-values, see Figure 5 + # The Heteroskedasticity statistic is not provided in this paper. + niledata = nile.data.load_pandas().data + niledata.index = pd.date_range('1871-01-01', '1970-01-01', freq='AS') + + mod = MLEModel(niledata['volume'], k_states=1, + initialization='approximate_diffuse', initial_variance=1e15, + loglikelihood_burn=1) + mod.ssm['design', 0, 0] = 1 + mod.ssm['obs_cov', 0, 0] = np.exp(9.600350) + mod.ssm['transition', 0, 0] = 1 + mod.ssm['selection', 0, 0] = 1 + mod.ssm['state_cov', 0, 0] = np.exp(7.348705) + res = mod.filter([]) + + # Test Ljung-Box + # Note: only 3 digits provided in the reference paper + actual = res.test_serial_correlation(method='ljungbox', lags=10)[0, :, -1] + assert_allclose(actual, [13.117, 0.217], atol=1e-3) + + # Test Jarque-Bera + actual = res.test_normality(method='jarquebera')[0, :2] + assert_allclose(actual, [0.041686, 0.979373], atol=1e-5) + +def test_diagnostics_nile_durbinkoopman(): + # Test the diagnostic tests using the Nile dataset. Results are from + # Durbin and Koopman (2012); parameter values reported on page 37; test + # statistics on page 40 + niledata = nile.data.load_pandas().data + niledata.index = pd.date_range('1871-01-01', '1970-01-01', freq='AS') + + mod = MLEModel(niledata['volume'], k_states=1, + initialization='approximate_diffuse', initial_variance=1e15, + loglikelihood_burn=1) + mod.ssm['design', 0, 0] = 1 + mod.ssm['obs_cov', 0, 0] = 15099. + mod.ssm['transition', 0, 0] = 1 + mod.ssm['selection', 0, 0] = 1 + mod.ssm['state_cov', 0, 0] = 1469.1 + res = mod.filter([]) + + # Test Ljung-Box + # Note: only 3 digits provided in the reference paper + actual = res.test_serial_correlation(method='ljungbox', lags=9)[0, 0, -1] + assert_allclose(actual, [8.84], atol=1e-2) + + # Test Jarque-Bera + # Note: The book reports 0.09 for Kurtosis, because it is reporting the + # statistic less the mean of the Kurtosis distribution (which is 3). + norm = res.test_normality(method='jarquebera')[0] + actual = [norm[0], norm[2], norm[3]] + assert_allclose(actual, [0.05, -0.03, 3.09], atol=1e-2) + + # Test Heteroskedasticity + # Note: only 2 digits provided in the book + actual = res.test_heteroskedasticity(method='breakvar')[0, 0] + assert_allclose(actual, [0.61], atol=1e-2) diff --git a/statsmodels/tsa/statespace/tests/test_options.py b/statsmodels/tsa/statespace/tests/test_options.py new file mode 100644 index 0000000..9de22f2 --- /dev/null +++ b/statsmodels/tsa/statespace/tests/test_options.py @@ -0,0 +1,220 @@ +""" +Miscellaneous Tests + +- Tests for setting options in KalmanFilter, KalmanSmoother, SimulationSmoother + (does not test the filtering, smoothing, or simulation smoothing for each + option) + +Author: Chad Fulton +License: Simplified-BSD +""" +from __future__ import division, absolute_import, print_function + +import numpy as np +from statsmodels.tsa.statespace.kalman_filter import ( + FILTER_CONVENTIONAL, + + INVERT_UNIVARIATE, + SOLVE_LU, + INVERT_LU, + SOLVE_CHOLESKY, + INVERT_CHOLESKY, + + STABILITY_FORCE_SYMMETRY, + + MEMORY_STORE_ALL, + MEMORY_NO_FORECAST, + MEMORY_NO_PREDICTED, + MEMORY_NO_FILTERED, + MEMORY_NO_LIKELIHOOD, + MEMORY_CONSERVE +) +from statsmodels.tsa.statespace.kalman_smoother import ( + KalmanSmoother, + SMOOTHER_STATE, + SMOOTHER_STATE_COV, + SMOOTHER_DISTURBANCE, + SMOOTHER_DISTURBANCE_COV, + SMOOTHER_ALL +) +from numpy.testing import assert_equal + + +class Options(object): + @classmethod + def setup_class(cls, *args, **kwargs): + + # Dummy data + endog = np.arange(10) + k_states = 1 + + cls.model = KalmanSmoother(k_endog=1, k_states=k_states, *args, + **kwargs) + cls.model.bind(endog) + +class TestOptions(Options): + def test_filter_methods(self): + model = self.model + + # TODO test FilterResults for accurante boolean versions of options + + # Clear the filter method + model.filter_method = 0 + + # Try setting via boolean + model.filter_conventional = True + assert_equal(model.filter_method, FILTER_CONVENTIONAL) + model.filter_conventional = False + assert_equal(model.filter_method, 0) + + # Try setting directly via method + model.set_filter_method(FILTER_CONVENTIONAL) + assert_equal(model.filter_method, FILTER_CONVENTIONAL) + + # Try setting via boolean via method + model.set_filter_method(filter_conventional=True) + assert_equal(model.filter_method, FILTER_CONVENTIONAL) + + def test_inversion_methods(self): + model = self.model + + # Clear the inversion method + model.inversion_method = 0 + + # Try setting via boolean + model.invert_univariate = True + assert_equal(model.inversion_method, INVERT_UNIVARIATE) + model.invert_cholesky = True + assert_equal(model.inversion_method, INVERT_UNIVARIATE | INVERT_CHOLESKY) + model.invert_univariate = False + assert_equal(model.inversion_method, INVERT_CHOLESKY) + + # Try setting directly via method + model.set_inversion_method(INVERT_LU) + assert_equal(model.inversion_method, INVERT_LU) + + # Try setting via boolean via method + model.set_inversion_method(invert_cholesky=True, invert_univariate=True, invert_lu=False) + assert_equal(model.inversion_method, INVERT_UNIVARIATE | INVERT_CHOLESKY) + + # Try setting and unsetting all + model.inversion_method = 0 + for name in model.inversion_methods: + setattr(model, name, True) + assert_equal( + model.inversion_method, + INVERT_UNIVARIATE | SOLVE_LU | INVERT_LU | SOLVE_CHOLESKY | + INVERT_CHOLESKY + ) + for name in model.inversion_methods: + setattr(model, name, False) + assert_equal(model.inversion_method, 0) + + def test_stability_methods(self): + model = self.model + + # Clear the stability method + model.stability_method = 0 + + # Try setting via boolean + model.stability_force_symmetry = True + assert_equal(model.stability_method, STABILITY_FORCE_SYMMETRY) + model.stability_force_symmetry = False + assert_equal(model.stability_method, 0) + + # Try setting directly via method + model.stability_method = 0 + model.set_stability_method(STABILITY_FORCE_SYMMETRY) + assert_equal(model.stability_method, STABILITY_FORCE_SYMMETRY) + + # Try setting via boolean via method + model.stability_method = 0 + model.set_stability_method(stability_method=True) + assert_equal(model.stability_method, STABILITY_FORCE_SYMMETRY) + + # Try setting via keyword via method + model.stability_method = 0 + model.set_stability_method(stability_force_symmetry=True) + assert_equal(model.stability_method, STABILITY_FORCE_SYMMETRY) + + def test_conserve_memory(self): + model = self.model + + # Clear the filter method + model.conserve_memory = MEMORY_STORE_ALL + + # Try setting via boolean + model.memory_no_forecast = True + assert_equal(model.conserve_memory, MEMORY_NO_FORECAST) + model.memory_no_filtered = True + assert_equal(model.conserve_memory, MEMORY_NO_FORECAST | MEMORY_NO_FILTERED) + model.memory_no_forecast = False + assert_equal(model.conserve_memory, MEMORY_NO_FILTERED) + + # Try setting directly via method + model.set_conserve_memory(MEMORY_NO_PREDICTED) + assert_equal(model.conserve_memory, MEMORY_NO_PREDICTED) + + # Try setting via boolean via method + model.set_conserve_memory(memory_no_filtered=True, memory_no_predicted=False) + assert_equal(model.conserve_memory, MEMORY_NO_FILTERED) + + # Try setting and unsetting all + model.conserve_memory = 0 + for name in model.memory_options: + if name == 'memory_conserve': + continue + setattr(model, name, True) + assert_equal( + model.conserve_memory, + MEMORY_NO_FORECAST | MEMORY_NO_PREDICTED | MEMORY_NO_FILTERED | + MEMORY_NO_LIKELIHOOD + ) + assert_equal(model.conserve_memory, MEMORY_CONSERVE) + for name in model.memory_options: + if name == 'memory_conserve': + continue + setattr(model, name, False) + assert_equal(model.conserve_memory, 0) + + def test_smoother_outputs(self): + model = self.model + + # TODO test SmootherResults for accurante boolean versions of options + + # Clear the smoother output + model.smoother_output = 0 + + # Try setting via boolean + model.smoother_state = True + assert_equal(model.smoother_output, SMOOTHER_STATE) + model.smoother_disturbance = True + assert_equal(model.smoother_output, SMOOTHER_STATE | SMOOTHER_DISTURBANCE) + model.smoother_state = False + assert_equal(model.smoother_output, SMOOTHER_DISTURBANCE) + + # Try setting directly via method + model.set_smoother_output(SMOOTHER_DISTURBANCE_COV) + assert_equal(model.smoother_output, SMOOTHER_DISTURBANCE_COV) + + # Try setting via boolean via method + model.set_smoother_output(smoother_disturbance=True, smoother_disturbance_cov=False) + assert_equal(model.smoother_output, SMOOTHER_DISTURBANCE) + + # Try setting and unsetting all + model.smoother_output = 0 + for name in model.smoother_outputs: + if name == 'smoother_all': + continue + setattr(model, name, True) + assert_equal( + model.smoother_output, + SMOOTHER_STATE | SMOOTHER_STATE_COV | SMOOTHER_DISTURBANCE | + SMOOTHER_DISTURBANCE_COV + ) + assert_equal(model.smoother_output, SMOOTHER_ALL) + for name in model.smoother_outputs: + if name == 'smoother_all': + continue + setattr(model, name, False) + assert_equal(model.smoother_output, 0) diff --git a/statsmodels/tsa/statespace/tests/test_prediction.py b/statsmodels/tsa/statespace/tests/test_prediction.py new file mode 100644 index 0000000..2d3a244 --- /dev/null +++ b/statsmodels/tsa/statespace/tests/test_prediction.py @@ -0,0 +1,61 @@ +""" +Tests for prediction of state space models + +Author: Chad Fulton +License: Simplified-BSD +""" + +from __future__ import division, absolute_import #, print_function + +import numpy as np +import pandas as pd + +import warnings +from statsmodels.tsa.statespace import sarimax +from numpy.testing import assert_equal, assert_allclose, assert_raises +from nose.exc import SkipTest + + +def test_predict_dates(): + index = pd.date_range(start='1950-01-01', periods=11, freq='D') + np.random.seed(324328) + endog = pd.Series(np.random.normal(size=10), index=index[:-1]) + + # Basic test + mod = sarimax.SARIMAX(endog, order=(1, 0, 0)) + res = mod.filter(mod.start_params) + + # In-sample prediction should have the same index + pred = res.predict() + assert_equal(len(pred), mod.nobs) + assert_equal(pred.index.values, index[:-1].values) + # Out-of-sample forecasting should extend the index appropriately + fcast = res.forecast() + assert_equal(fcast.index[0], index[-1]) + + # Simple differencing in the SARIMAX model should eliminate dates of + # series eliminated due to differencing + mod = sarimax.SARIMAX(endog, order=(1, 1, 0), simple_differencing=True) + res = mod.filter(mod.start_params) + pred = res.predict() + # In-sample prediction should lose the first index value + assert_equal(mod.nobs, endog.shape[0] - 1) + assert_equal(len(pred), mod.nobs) + assert_equal(pred.index.values, index[1:-1].values) + # Out-of-sample forecasting should still extend the index appropriately + fcast = res.forecast() + assert_equal(fcast.index[0], index[-1]) + + # Simple differencing again, this time with a more complex differencing + # structure + mod = sarimax.SARIMAX(endog, order=(1, 2, 0), seasonal_order=(0, 1, 0, 4), + simple_differencing=True) + res = mod.filter(mod.start_params) + pred = res.predict() + # In-sample prediction should lose the first 6 index values + assert_equal(mod.nobs, endog.shape[0] - (4 + 2)) + assert_equal(len(pred), mod.nobs) + assert_equal(pred.index.values, index[4 + 2:-1].values) + # Out-of-sample forecasting should still extend the index appropriately + fcast = res.forecast() + assert_equal(fcast.index[0], index[-1]) diff --git a/statsmodels/tsa/statespace/tests/test_representation.py b/statsmodels/tsa/statespace/tests/test_representation.py new file mode 100644 index 0000000..11734e3 --- /dev/null +++ b/statsmodels/tsa/statespace/tests/test_representation.py @@ -0,0 +1,1294 @@ +""" +Tests for python wrapper of state space representation and filtering + +Author: Chad Fulton +License: Simplified-BSD + +References +---------- + +Kim, Chang-Jin, and Charles R. Nelson. 1999. +"State-Space Models with Regime Switching: +Classical and Gibbs-Sampling Approaches with Applications". +MIT Press Books. The MIT Press. +""" +from __future__ import division, absolute_import, print_function + +import warnings +import numpy as np +import pandas as pd +import os + +from statsmodels.tsa.statespace.representation import Representation +from statsmodels.tsa.statespace.kalman_filter import KalmanFilter, FilterResults, PredictionResults +from statsmodels.tsa.statespace import tools, sarimax +from .results import results_kalman_filter +from numpy.testing import assert_equal, assert_almost_equal, assert_raises, assert_allclose +from nose.exc import SkipTest +from statsmodels.compat.numpy import NumpyVersion + +current_path = os.path.dirname(os.path.abspath(__file__)) + +clark1989_path = 'results' + os.sep + 'results_clark1989_R.csv' +clark1989_results = pd.read_csv(current_path + os.sep + clark1989_path) + + +class Clark1987(object): + """ + Clark's (1987) univariate unobserved components model of real GDP (as + presented in Kim and Nelson, 1999) + + Test data produced using GAUSS code described in Kim and Nelson (1999) and + found at http://econ.korea.ac.kr/~cjkim/SSMARKOV.htm + + See `results.results_kalman_filter` for more information. + """ + @classmethod + def setup_class(cls, dtype=float, **kwargs): + cls.true = results_kalman_filter.uc_uni + cls.true_states = pd.DataFrame(cls.true['states']) + + # GDP, Quarterly, 1947.1 - 1995.3 + data = pd.DataFrame( + cls.true['data'], + index=pd.date_range('1947-01-01', '1995-07-01', freq='QS'), + columns=['GDP'] + ) + data['lgdp'] = np.log(data['GDP']) + + # Construct the statespace representation + k_states = 4 + cls.model = KalmanFilter(k_endog=1, k_states=k_states, **kwargs) + cls.model.bind(data['lgdp'].values) + + cls.model.design[:, :, 0] = [1, 1, 0, 0] + cls.model.transition[([0, 0, 1, 1, 2, 3], + [0, 3, 1, 2, 1, 3], + [0, 0, 0, 0, 0, 0])] = [1, 1, 0, 0, 1, 1] + cls.model.selection = np.eye(cls.model.k_states) + + # Update matrices with given parameters + (sigma_v, sigma_e, sigma_w, phi_1, phi_2) = np.array( + cls.true['parameters'] + ) + cls.model.transition[([1, 1], [1, 2], [0, 0])] = [phi_1, phi_2] + cls.model.state_cov[ + np.diag_indices(k_states)+(np.zeros(k_states, dtype=int),)] = [ + sigma_v**2, sigma_e**2, 0, sigma_w**2 + ] + + # Initialization + initial_state = np.zeros((k_states,)) + initial_state_cov = np.eye(k_states)*100 + + # Initialization: modification + initial_state_cov = np.dot( + np.dot(cls.model.transition[:, :, 0], initial_state_cov), + cls.model.transition[:, :, 0].T + ) + cls.model.initialize_known(initial_state, initial_state_cov) + + @classmethod + def run_filter(cls): + # Filter the data + return cls.model.filter() + + def test_loglike(self): + assert_almost_equal( + self.results.llf_obs[self.true['start']:].sum(), + self.true['loglike'], 5 + ) + + def test_filtered_state(self): + assert_almost_equal( + self.results.filtered_state[0][self.true['start']:], + self.true_states.iloc[:, 0], 4 + ) + assert_almost_equal( + self.results.filtered_state[1][self.true['start']:], + self.true_states.iloc[:, 1], 4 + ) + assert_almost_equal( + self.results.filtered_state[3][self.true['start']:], + self.true_states.iloc[:, 2], 4 + ) + + +class TestClark1987Single(Clark1987): + """ + Basic single precision test for the loglikelihood and filtered states. + """ + @classmethod + def setup_class(cls): + raise SkipTest('Not implemented') + super(TestClark1987Single, cls).setup_class( + dtype=np.float32, conserve_memory=0 + ) + cls.results = cls.run_filter() + + +class TestClark1987Double(Clark1987): + """ + Basic double precision test for the loglikelihood and filtered states. + """ + @classmethod + def setup_class(cls): + super(TestClark1987Double, cls).setup_class( + dtype=float, conserve_memory=0 + ) + cls.results = cls.run_filter() + + +class TestClark1987SingleComplex(Clark1987): + """ + Basic single precision complex test for the loglikelihood and filtered + states. + """ + @classmethod + def setup_class(cls): + raise SkipTest('Not implemented') + super(TestClark1987SingleComplex, cls).setup_class( + dtype=np.complex64, conserve_memory=0 + ) + cls.results = cls.run_filter() + + +class TestClark1987DoubleComplex(Clark1987): + """ + Basic double precision complex test for the loglikelihood and filtered + states. + """ + @classmethod + def setup_class(cls): + super(TestClark1987DoubleComplex, cls).setup_class( + dtype=complex, conserve_memory=0 + ) + cls.results = cls.run_filter() + + +class TestClark1987Conserve(Clark1987): + """ + Memory conservation test for the loglikelihood and filtered states. + """ + @classmethod + def setup_class(cls): + super(TestClark1987Conserve, cls).setup_class( + dtype=float, conserve_memory=0x01 | 0x02 + ) + cls.results = cls.run_filter() + + +class Clark1987Forecast(Clark1987): + """ + Forecasting test for the loglikelihood and filtered states. + """ + @classmethod + def setup_class(cls, dtype=float, nforecast=100, conserve_memory=0): + super(Clark1987Forecast, cls).setup_class( + dtype=dtype, conserve_memory=conserve_memory + ) + cls.nforecast = nforecast + + # Add missing observations to the end (to forecast) + cls.model.endog = np.array( + np.r_[cls.model.endog[0, :], [np.nan]*nforecast], + ndmin=2, dtype=dtype, order="F" + ) + cls.model.nobs = cls.model.endog.shape[1] + + def test_filtered_state(self): + assert_almost_equal( + self.results.filtered_state[0][self.true['start']:-self.nforecast], + self.true_states.iloc[:, 0], 4 + ) + assert_almost_equal( + self.results.filtered_state[1][self.true['start']:-self.nforecast], + self.true_states.iloc[:, 1], 4 + ) + assert_almost_equal( + self.results.filtered_state[3][self.true['start']:-self.nforecast], + self.true_states.iloc[:, 2], 4 + ) + + +class TestClark1987ForecastDouble(Clark1987Forecast): + """ + Basic double forecasting test for the loglikelihood and filtered states. + """ + @classmethod + def setup_class(cls): + super(TestClark1987ForecastDouble, cls).setup_class() + cls.results = cls.run_filter() + + +class TestClark1987ForecastDoubleComplex(Clark1987Forecast): + """ + Basic double complex forecasting test for the loglikelihood and filtered + states. + """ + @classmethod + def setup_class(cls): + super(TestClark1987ForecastDoubleComplex, cls).setup_class( + dtype=complex + ) + cls.results = cls.run_filter() + + +class TestClark1987ForecastConserve(Clark1987Forecast): + """ + Memory conservation forecasting test for the loglikelihood and filtered + states. + """ + @classmethod + def setup_class(cls): + super(TestClark1987ForecastConserve, cls).setup_class( + dtype=float, conserve_memory=0x01 | 0x02 + ) + cls.results = cls.run_filter() + + +class TestClark1987ConserveAll(Clark1987): + """ + Memory conservation forecasting test for the loglikelihood and filtered + states. + """ + @classmethod + def setup_class(cls): + super(TestClark1987ConserveAll, cls).setup_class( + dtype=float, conserve_memory=0x01 | 0x02 | 0x04 | 0x08 + ) + cls.model.loglikelihood_burn = cls.true['start'] + cls.results = cls.run_filter() + + def test_loglike(self): + assert_almost_equal( + self.results.llf_obs[0], self.true['loglike'], 5 + ) + + def test_filtered_state(self): + end = self.true_states.shape[0] + assert_almost_equal( + self.results.filtered_state[0][-1], + self.true_states.iloc[end-1, 0], 4 + ) + assert_almost_equal( + self.results.filtered_state[1][-1], + self.true_states.iloc[end-1, 1], 4 + ) + + +class Clark1989(object): + """ + Clark's (1989) bivariate unobserved components model of real GDP (as + presented in Kim and Nelson, 1999) + + Tests two-dimensional observation data. + + Test data produced using GAUSS code described in Kim and Nelson (1999) and + found at http://econ.korea.ac.kr/~cjkim/SSMARKOV.htm + + See `results.results_kalman_filter` for more information. + """ + @classmethod + def setup_class(cls, dtype=float, **kwargs): + cls.true = results_kalman_filter.uc_bi + cls.true_states = pd.DataFrame(cls.true['states']) + + # GDP and Unemployment, Quarterly, 1948.1 - 1995.3 + data = pd.DataFrame( + cls.true['data'], + index=pd.date_range('1947-01-01', '1995-07-01', freq='QS'), + columns=['GDP', 'UNEMP'] + )[4:] + data['GDP'] = np.log(data['GDP']) + data['UNEMP'] = (data['UNEMP']/100) + + k_states = 6 + cls.model = KalmanFilter(k_endog=2, k_states=k_states, **kwargs) + cls.model.bind(np.ascontiguousarray(data.values)) + + # Statespace representation + cls.model.design[:, :, 0] = [[1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1]] + cls.model.transition[ + ([0, 0, 1, 1, 2, 3, 4, 5], + [0, 4, 1, 2, 1, 2, 4, 5], + [0, 0, 0, 0, 0, 0, 0, 0]) + ] = [1, 1, 0, 0, 1, 1, 1, 1] + cls.model.selection = np.eye(cls.model.k_states) + + # Update matrices with given parameters + (sigma_v, sigma_e, sigma_w, sigma_vl, sigma_ec, + phi_1, phi_2, alpha_1, alpha_2, alpha_3) = np.array( + cls.true['parameters'], + ) + cls.model.design[([1, 1, 1], [1, 2, 3], [0, 0, 0])] = [ + alpha_1, alpha_2, alpha_3 + ] + cls.model.transition[([1, 1], [1, 2], [0, 0])] = [phi_1, phi_2] + cls.model.obs_cov[1, 1, 0] = sigma_ec**2 + cls.model.state_cov[ + np.diag_indices(k_states)+(np.zeros(k_states, dtype=int),)] = [ + sigma_v**2, sigma_e**2, 0, 0, sigma_w**2, sigma_vl**2 + ] + + # Initialization + initial_state = np.zeros((k_states,)) + initial_state_cov = np.eye(k_states)*100 + + # Initialization: cls.modelification + initial_state_cov = np.dot( + np.dot(cls.model.transition[:, :, 0], initial_state_cov), + cls.model.transition[:, :, 0].T + ) + cls.model.initialize_known(initial_state, initial_state_cov) + + @classmethod + def run_filter(cls): + # Filter the data + return cls.model.filter() + + def test_loglike(self): + assert_almost_equal( + # self.results.llf_obs[self.true['start']:].sum(), + self.results.llf_obs[0:].sum(), + self.true['loglike'], 2 + ) + + def test_filtered_state(self): + assert_almost_equal( + self.results.filtered_state[0][self.true['start']:], + self.true_states.iloc[:, 0], 4 + ) + assert_almost_equal( + self.results.filtered_state[1][self.true['start']:], + self.true_states.iloc[:, 1], 4 + ) + assert_almost_equal( + self.results.filtered_state[4][self.true['start']:], + self.true_states.iloc[:, 2], 4 + ) + assert_almost_equal( + self.results.filtered_state[5][self.true['start']:], + self.true_states.iloc[:, 3], 4 + ) + + +class TestClark1989(Clark1989): + """ + Basic double precision test for the loglikelihood and filtered + states with two-dimensional observation vector. + """ + @classmethod + def setup_class(cls): + super(TestClark1989, cls).setup_class(dtype=float, conserve_memory=0) + cls.results = cls.run_filter() + + def test_kalman_gain(self): + assert_allclose(self.results.kalman_gain.sum(axis=1).sum(axis=0), + clark1989_results['V1'], atol=1e-4) + + +class TestClark1989Conserve(Clark1989): + """ + Memory conservation test for the loglikelihood and filtered states with + two-dimensional observation vector. + """ + @classmethod + def setup_class(cls): + super(TestClark1989Conserve, cls).setup_class( + dtype=float, conserve_memory=0x01 | 0x02 + ) + cls.results = cls.run_filter() + + +class Clark1989Forecast(Clark1989): + """ + Memory conservation test for the loglikelihood and filtered states with + two-dimensional observation vector. + """ + @classmethod + def setup_class(cls, dtype=float, nforecast=100, conserve_memory=0): + super(Clark1989Forecast, cls).setup_class( + dtype=dtype, conserve_memory=conserve_memory + ) + cls.nforecast = nforecast + + # Add missing observations to the end (to forecast) + cls.model.endog = np.array( + np.c_[ + cls.model.endog, + np.r_[[np.nan, np.nan]*nforecast].reshape(2, nforecast) + ], + ndmin=2, dtype=dtype, order="F" + ) + cls.model.nobs = cls.model.endog.shape[1] + + cls.results = cls.run_filter() + + def test_filtered_state(self): + assert_almost_equal( + self.results.filtered_state[0][self.true['start']:-self.nforecast], + self.true_states.iloc[:, 0], 4 + ) + assert_almost_equal( + self.results.filtered_state[1][self.true['start']:-self.nforecast], + self.true_states.iloc[:, 1], 4 + ) + assert_almost_equal( + self.results.filtered_state[4][self.true['start']:-self.nforecast], + self.true_states.iloc[:, 2], 4 + ) + assert_almost_equal( + self.results.filtered_state[5][self.true['start']:-self.nforecast], + self.true_states.iloc[:, 3], 4 + ) + + +class TestClark1989ForecastDouble(Clark1989Forecast): + """ + Basic double forecasting test for the loglikelihood and filtered states. + """ + @classmethod + def setup_class(cls): + super(TestClark1989ForecastDouble, cls).setup_class() + cls.results = cls.run_filter() + + +class TestClark1989ForecastDoubleComplex(Clark1989Forecast): + """ + Basic double complex forecasting test for the loglikelihood and filtered + states. + """ + @classmethod + def setup_class(cls): + super(TestClark1989ForecastDoubleComplex, cls).setup_class( + dtype=complex + ) + cls.results = cls.run_filter() + + +class TestClark1989ForecastConserve(Clark1989Forecast): + """ + Memory conservation forecasting test for the loglikelihood and filtered + states. + """ + @classmethod + def setup_class(cls): + super(TestClark1989ForecastConserve, cls).setup_class( + dtype=float, conserve_memory=0x01 | 0x02 + ) + cls.results = cls.run_filter() + + +class TestClark1989ConserveAll(Clark1989): + """ + Memory conservation forecasting test for the loglikelihood and filtered + states. + """ + @classmethod + def setup_class(cls): + super(TestClark1989ConserveAll, cls).setup_class( + dtype=float, conserve_memory=0x01 | 0x02 | 0x04 | 0x08 + ) + # cls.model.loglikelihood_burn = cls.true['start'] + cls.model.loglikelihood_burn = 0 + cls.results = cls.run_filter() + + def test_loglike(self): + assert_almost_equal( + self.results.llf_obs[0], self.true['loglike'], 2 + ) + + def test_filtered_state(self): + end = self.true_states.shape[0] + assert_almost_equal( + self.results.filtered_state[0][-1], + self.true_states.iloc[end-1, 0], 4 + ) + assert_almost_equal( + self.results.filtered_state[1][-1], + self.true_states.iloc[end-1, 1], 4 + ) + assert_almost_equal( + self.results.filtered_state[4][-1], + self.true_states.iloc[end-1, 2], 4 + ) + assert_almost_equal( + self.results.filtered_state[5][-1], + self.true_states.iloc[end-1, 3], 4 + ) + + +class TestClark1989PartialMissing(Clark1989): + @classmethod + def setup_class(cls): + super(TestClark1989PartialMissing, cls).setup_class() + endog = cls.model.endog + endog[1,-51:] = np.NaN + cls.model.bind(endog) + + cls.results = cls.run_filter() + + def test_loglike(self): + assert_allclose(self.results.llf_obs[0:].sum(), 1232.113456) + + def test_filtered_state(self): + # Could do this, but no need really. + pass + + def test_predicted_state(self): + assert_allclose( + self.results.predicted_state.T[1:], clark1989_results.iloc[:,1:], + atol=1e-8 + ) + + +# Miscellaneous coverage-related tests +def test_slice_notation(): + # Test setting and getting state space representation matrices using the + # slice notation. + + endog = np.arange(10)*1.0 + mod = KalmanFilter(k_endog=1, k_states=2) + mod.bind(endog) + + # Test invalid __setitem__ + def set_designs(): + mod['designs'] = 1 + def set_designs2(): + mod['designs',0,0] = 1 + def set_designs3(): + mod[0] = 1 + assert_raises(IndexError, set_designs) + assert_raises(IndexError, set_designs2) + assert_raises(IndexError, set_designs3) + + # Test invalid __getitem__ + assert_raises(IndexError, lambda: mod['designs']) + assert_raises(IndexError, lambda: mod['designs',0,0,0]) + assert_raises(IndexError, lambda: mod[0]) + + # Test valid __setitem__, __getitem__ + assert_equal(mod.design[0,0,0], 0) + mod['design',0,0,0] = 1 + assert_equal(mod['design'].sum(), 1) + assert_equal(mod.design[0,0,0], 1) + assert_equal(mod['design',0,0,0], 1) + + # Test valid __setitem__, __getitem__ with unspecified time index + mod['design'] = np.zeros(mod['design'].shape) + assert_equal(mod.design[0,0], 0) + mod['design',0,0] = 1 + assert_equal(mod.design[0,0], 1) + assert_equal(mod['design',0,0], 1) + + +def test_representation(): + # Test Representation construction + + # Test an invalid number of states + def zero_kstates(): + mod = Representation(1, 0) + assert_raises(ValueError, zero_kstates) + + # Test an invalid endogenous array + def empty_endog(): + endog = np.zeros((0,0)) + mod = Representation(endog, k_states=2) + assert_raises(ValueError, empty_endog) + + # Test a Fortran-ordered endogenous array (which will be assumed to be in + # wide format: k_endog x nobs) + nobs = 10 + k_endog = 2 + endog = np.asfortranarray(np.arange(nobs*k_endog).reshape(k_endog,nobs)*1.) + mod = Representation(endog, k_states=2) + assert_equal(mod.nobs, nobs) + assert_equal(mod.k_endog, k_endog) + + # Test a C-ordered endogenous array (which will be assumed to be in + # tall format: nobs x k_endog) + nobs = 10 + k_endog = 2 + endog = np.arange(nobs*k_endog).reshape(nobs,k_endog)*1. + mod = Representation(endog, k_states=2) + assert_equal(mod.nobs, nobs) + assert_equal(mod.k_endog, k_endog) + + # Test getting the statespace representation + assert_equal(mod._statespace, None) + mod._initialize_representation() + assert_equal(mod._statespace is not None, True) + + +def test_bind(): + # Test binding endogenous data to Kalman filter + + mod = Representation(2, k_states=2) + + # Test invalid endogenous array (it must be ndarray) + assert_raises(ValueError, lambda: mod.bind([1,2,3,4])) + + # Test valid (nobs x 1) endogenous array + mod.bind(np.arange(10).reshape((5,2))*1.) + assert_equal(mod.nobs, 5) + + # Test valid (k_endog x 0) endogenous array + mod.bind(np.zeros((0,2),dtype=np.float64)) + + # Test invalid (3-dim) endogenous array + assert_raises(ValueError, lambda: mod.bind(np.arange(12).reshape(2,2,3)*1.)) + + # Test valid F-contiguous + mod.bind(np.asfortranarray(np.arange(10).reshape(2,5))) + assert_equal(mod.nobs, 5) + + # Test valid C-contiguous + mod.bind(np.arange(10).reshape(5,2)) + assert_equal(mod.nobs, 5) + + # Test invalid F-contiguous + assert_raises(ValueError, lambda: mod.bind(np.asfortranarray(np.arange(10).reshape(5,2)))) + + # Test invalid C-contiguous + assert_raises(ValueError, lambda: mod.bind(np.arange(10).reshape(2,5))) + + +def test_initialization(): + # Test Kalman filter initialization + + mod = Representation(1, k_states=2) + + # Test invalid state initialization + assert_raises(RuntimeError, lambda: mod._initialize_state()) + + # Test valid initialization + initial_state = np.zeros(2,) + 1.5 + initial_state_cov = np.eye(2) * 3. + mod.initialize_known(initial_state, initial_state_cov) + assert_equal(mod._initial_state.sum(), 3) + assert_equal(mod._initial_state_cov.diagonal().sum(), 6) + + # Test invalid initial_state + initial_state = np.zeros(10,) + assert_raises(ValueError, lambda: mod.initialize_known(initial_state, initial_state_cov)) + initial_state = np.zeros((10,10)) + assert_raises(ValueError, lambda: mod.initialize_known(initial_state, initial_state_cov)) + + # Test invalid initial_state_cov + initial_state = np.zeros(2,) + 1.5 + initial_state_cov = np.eye(3) + assert_raises(ValueError, lambda: mod.initialize_known(initial_state, initial_state_cov)) + + +def test_no_endog(): + # Test for RuntimeError when no endog is provided by the time filtering + # is initialized. + + mod = KalmanFilter(k_endog=1, k_states=1) + + # directly call the _initialize_filter function + assert_raises(RuntimeError, mod._initialize_filter) + # indirectly call it through filtering + mod.initialize_approximate_diffuse() + assert_raises(RuntimeError, mod.filter) + + +def test_cython(): + # Test the cython _kalman_filter creation, re-creation, calling, etc. + + # Check that datatypes are correct: + for prefix, dtype in tools.prefix_dtype_map.items(): + endog = np.array(1., ndmin=2, dtype=dtype) + mod = KalmanFilter(k_endog=1, k_states=1, dtype=dtype) + + # Bind data and initialize the ?KalmanFilter object + mod.bind(endog) + mod._initialize_filter() + + # Check that the dtype and prefix are correct + assert_equal(mod.prefix, prefix) + assert_equal(mod.dtype, dtype) + + # Test that a dKalmanFilter instance was created + assert_equal(prefix in mod._kalman_filters, True) + kf = mod._kalman_filters[prefix] + assert_equal(isinstance(kf, tools.prefix_kalman_filter_map[prefix]), True) + + # Test that the default returned _kalman_filter is the above instance + assert_equal(mod._kalman_filter, kf) + + # Check that upcasting datatypes / ?KalmanFilter works (e.g. d -> z) + mod = KalmanFilter(k_endog=1, k_states=1) + + # Default dtype is float + assert_equal(mod.prefix, 'd') + assert_equal(mod.dtype, np.float64) + + # Prior to initialization, no ?KalmanFilter exists + assert_equal(mod._kalman_filter, None) + + # Bind data and initialize the ?KalmanFilter object + endog = np.ascontiguousarray(np.array([1., 2.], dtype=np.float64)) + mod.bind(endog) + mod._initialize_filter() + kf = mod._kalman_filters['d'] + + # Rebind data, still float, check that we haven't changed + mod.bind(endog) + mod._initialize_filter() + assert_equal(mod._kalman_filter, kf) + + # Force creating new ?Statespace and ?KalmanFilter, by changing the + # time-varying character of an array + mod.design = np.zeros((1,1,2)) + mod._initialize_filter() + assert_equal(mod._kalman_filter == kf, False) + kf = mod._kalman_filters['d'] + + # Rebind data, now complex, check that the ?KalmanFilter instance has + # changed + endog = np.ascontiguousarray(np.array([1., 2.], dtype=np.complex128)) + mod.bind(endog) + assert_equal(mod._kalman_filter == kf, False) + + +def test_filter(): + # Tests of invalid calls to the filter function + + endog = np.ones((10,1)) + mod = KalmanFilter(endog, k_states=1, initialization='approximate_diffuse') + mod['design', :] = 1 + mod['selection', :] = 1 + mod['state_cov', :] = 1 + + # Test default filter results + res = mod.filter() + assert_equal(isinstance(res, FilterResults), True) + + # Test specified invalid results class + assert_raises(ValueError, mod.filter, results=object) + + # Test specified valid results class + res = mod.filter(results=FilterResults) + assert_equal(isinstance(res, FilterResults), True) + + +def test_loglike(): + # Tests of invalid calls to the loglike function + + endog = np.ones((10,1)) + mod = KalmanFilter(endog, k_states=1, initialization='approximate_diffuse') + mod['design', :] = 1 + mod['selection', :] = 1 + mod['state_cov', :] = 1 + + # Test that self.memory_no_likelihood = True raises an error + mod.memory_no_likelihood = True + assert_raises(RuntimeError, mod.loglike) + assert_raises(RuntimeError, mod.loglikeobs) + + +def test_predict(): + # Tests of invalid calls to the predict function + + warnings.simplefilter("always") + + endog = np.ones((10,1)) + mod = KalmanFilter(endog, k_states=1, initialization='approximate_diffuse') + mod['design', :] = 1 + mod['obs_intercept'] = np.zeros((1,10)) + mod['selection', :] = 1 + mod['state_cov', :] = 1 + + # Check that we need both forecasts and predicted output for prediction + mod.memory_no_forecast = True + res = mod.filter() + assert_raises(ValueError, res.predict) + mod.memory_no_forecast = False + + mod.memory_no_predicted = True + res = mod.filter() + assert_raises(ValueError, res.predict) + mod.memory_no_predicted = False + + # Now get a clean filter object + res = mod.filter() + + # Check that start < 0 is an error + assert_raises(ValueError, res.predict, start=-1) + + # Check that end < start is an error + assert_raises(ValueError, res.predict, start=2, end=1) + + # Check that dynamic < 0 is an error + assert_raises(ValueError, res.predict, dynamic=-1) + + # Check that dynamic > end is an warning + with warnings.catch_warnings(record=True) as w: + res.predict(end=1, dynamic=2) + message = ('Dynamic prediction specified to begin after the end of' + ' prediction, and so has no effect.') + assert_equal(str(w[0].message), message) + + # Check that dynamic > nobs is an warning + with warnings.catch_warnings(record=True) as w: + res.predict(end=11, dynamic=11, obs_intercept=np.zeros((1,1))) + message = ('Dynamic prediction specified to begin during' + ' out-of-sample forecasting period, and so has no' + ' effect.') + assert_equal(str(w[0].message), message) + + # Check for a warning when providing a non-used statespace matrix + with warnings.catch_warnings(record=True) as w: + res.predict(end=res.nobs+1, design=True, obs_intercept=np.zeros((1,1))) + message = ('Model has time-invariant design matrix, so the design' + ' argument to `predict` has been ignored.') + assert_equal(str(w[0].message), message) + + # Check that an error is raised when a new time-varying matrix is not + # provided + assert_raises(ValueError, res.predict, end=res.nobs+1) + + # Check that an error is raised when a non-two-dimensional obs_intercept + # is given + assert_raises(ValueError, res.predict, end=res.nobs+1, + obs_intercept=np.zeros(1)) + + # Check that an error is raised when an obs_intercept with incorrect length + # is given + assert_raises(ValueError, res.predict, end=res.nobs+1, + obs_intercept=np.zeros(2)) + + # Check that start=None gives start=0 and end=None gives end=nobs + assert_equal(res.predict().forecasts.shape, (1,res.nobs)) + + # Check that dynamic=True begins dynamic prediction immediately + # TODO just a smoke test + res.predict(dynamic=True) + + # Check that on success, PredictionResults object is returned + prediction_results = res.predict(start=3, end=5) + assert_equal(isinstance(prediction_results, PredictionResults), True) + + # Check for correctly subset representation arrays + # (k_endog, npredictions) = (1, 2) + assert_equal(prediction_results.endog.shape, (1, 2)) + # (k_endog, npredictions) = (1, 2) + assert_equal(prediction_results.obs_intercept.shape, (1, 2)) + # (k_endog, k_states) = (1, 1) + assert_equal(prediction_results.design.shape, (1, 1)) + # (k_endog, k_endog) = (1, 1) + assert_equal(prediction_results.obs_cov.shape, (1, 1)) + # (k_state,) = (1,) + assert_equal(prediction_results.state_intercept.shape, (1,)) + # (k_state, npredictions) = (1, 2) + assert_equal(prediction_results.obs_intercept.shape, (1, 2)) + # (k_state, k_state) = (1, 1) + assert_equal(prediction_results.transition.shape, (1, 1)) + # (k_state, k_posdef) = (1, 1) + assert_equal(prediction_results.selection.shape, (1, 1)) + # (k_posdef, k_posdef) = (1, 1) + assert_equal(prediction_results.state_cov.shape, (1, 1)) + + # Check for correctly subset filter output arrays + # (k_endog, npredictions) = (1, 2) + assert_equal(prediction_results.forecasts.shape, (1, 2)) + assert_equal(prediction_results.forecasts_error.shape, (1, 2)) + # (k_states, npredictions) = (1, 2) + assert_equal(prediction_results.filtered_state.shape, (1, 2)) + assert_equal(prediction_results.predicted_state.shape, (1, 2)) + # (k_endog, k_endog, npredictions) = (1, 1, 2) + assert_equal(prediction_results.forecasts_error_cov.shape, (1, 1, 2)) + # (k_states, k_states, npredictions) = (1, 1, 2) + assert_equal(prediction_results.filtered_state_cov.shape, (1, 1, 2)) + assert_equal(prediction_results.predicted_state_cov.shape, (1, 1, 2)) + + # Check for invalid attribute + assert_raises(AttributeError, getattr, prediction_results, 'test') + + # Check that an error is raised when a non-two-dimensional obs_cov + # is given + # ...and... + # Check that an error is raised when an obs_cov with incorrect length + # is given + mod = KalmanFilter(endog, k_states=1, initialization='approximate_diffuse') + mod['design', :] = 1 + mod['obs_cov'] = np.zeros((1,1,10)) + mod['selection', :] = 1 + mod['state_cov', :] = 1 + res = mod.filter() + + assert_raises(ValueError, res.predict, end=res.nobs+1, + obs_cov=np.zeros((1,1))) + assert_raises(ValueError, res.predict, end=res.nobs+1, + obs_cov=np.zeros((1,1,2))) + + +def test_standardized_forecasts_error(): + # Simple test that standardized forecasts errors are calculated correctly. + + # Just uses a different calculation method on a univariate series. + + # Get the dataset + true = results_kalman_filter.uc_uni + data = pd.DataFrame( + true['data'], + index=pd.date_range('1947-01-01', '1995-07-01', freq='QS'), + columns=['GDP'] + ) + data['lgdp'] = np.log(data['GDP']) + + # Fit an ARIMA(1,1,0) to log GDP + mod = sarimax.SARIMAX(data['lgdp'], order=(1,1,0)) + res = mod.fit(disp=-1) + + standardized_forecasts_error = ( + res.filter_results.forecasts_error[0] / + np.sqrt(res.filter_results.forecasts_error_cov[0,0]) + ) + + assert_allclose( + res.filter_results.standardized_forecasts_error[0], + standardized_forecasts_error, + ) + +def test_simulate(): + # Test for simulation of new time-series + from scipy.signal import lfilter + + # Common parameters + nsimulations = 10 + sigma2 = 2 + measurement_shocks = np.zeros(nsimulations) + state_shocks = np.random.normal(scale=sigma2**0.5, size=nsimulations) + + # Random walk model, so simulated series is just the cumulative sum of + # the shocks + mod = KalmanFilter(k_endog=1, k_states=1) + mod['design', 0, 0] = 1. + mod['transition', 0, 0] = 1. + mod['selection', 0, 0] = 1. + + actual = mod.simulate( + nsimulations, measurement_shocks=measurement_shocks, + state_shocks=state_shocks)[0].squeeze() + desired = np.r_[0, np.cumsum(state_shocks)[:-1]] + + assert_allclose(actual, desired) + + # Local level model, so simulated series is just the cumulative sum of + # the shocks plus the measurement shock + mod = KalmanFilter(k_endog=1, k_states=1) + mod['design', 0, 0] = 1. + mod['transition', 0, 0] = 1. + mod['selection', 0, 0] = 1. + + actual = mod.simulate( + nsimulations, measurement_shocks=np.ones(nsimulations), + state_shocks=state_shocks)[0].squeeze() + desired = np.r_[1, np.cumsum(state_shocks)[:-1] + 1] + + assert_allclose(actual, desired) + + # Local level-like model with observation and state intercepts, so + # simulated series is just the cumulative sum of the shocks minus the state + # intercept, plus the observation intercept and the measurement shock + mod = KalmanFilter(k_endog=1, k_states=1) + mod['obs_intercept', 0, 0] = 5. + mod['design', 0, 0] = 1. + mod['state_intercept', 0, 0] = -2. + mod['transition', 0, 0] = 1. + mod['selection', 0, 0] = 1. + + actual = mod.simulate( + nsimulations, measurement_shocks=np.ones(nsimulations), + state_shocks=state_shocks)[0].squeeze() + desired = np.r_[1 + 5, np.cumsum(state_shocks - 2)[:-1] + 1 + 5] + + assert_allclose(actual, desired) + + # Model with time-varying observation intercept + mod = KalmanFilter(k_endog=1, k_states=1, nobs=10) + mod['obs_intercept'] = (np.arange(10)*1.).reshape(1, 10) + mod['design', 0, 0] = 1. + mod['transition', 0, 0] = 1. + mod['selection', 0, 0] = 1. + + actual = mod.simulate( + nsimulations, measurement_shocks=measurement_shocks, + state_shocks=state_shocks)[0].squeeze() + desired = np.r_[0, np.cumsum(state_shocks)[:-1] + np.arange(1,10)] + + assert_allclose(actual, desired) + + # Model with time-varying observation intercept, check that error is raised + # if more simulations are requested than are nobs. + mod = KalmanFilter(k_endog=1, k_states=1, nobs=10) + mod['obs_intercept'] = (np.arange(10)*1.).reshape(1, 10) + mod['design', 0, 0] = 1. + mod['transition', 0, 0] = 1. + mod['selection', 0, 0] = 1. + assert_raises(ValueError, mod.simulate, nsimulations+1, measurement_shocks, + state_shocks) + + # ARMA(1,1): phi = [0.1], theta = [0.5], sigma^2 = 2 + phi = np.r_[0.1] + theta = np.r_[0.5] + mod = sarimax.SARIMAX([0], order=(1,0,1)) + mod.update(np.r_[phi, theta, sigma2]) + + actual = mod.ssm.simulate( + nsimulations, measurement_shocks=measurement_shocks, + state_shocks=state_shocks)[0].squeeze() + desired = lfilter([1, theta], [1, -phi], np.r_[0, state_shocks[:-1]]) + + assert_allclose(actual, desired) + + # SARIMAX(1,0,1)x(1,0,1,4), this time using the results object call + mod = sarimax.SARIMAX([0.1, 0.5, -0.2], order=(1,0,1), + seasonal_order=(1,0,1,4)) + res = mod.filter([0.1, 0.5, 0.2, -0.3, 1]) + + actual = res.simulate( + nsimulations, measurement_shocks=measurement_shocks, + state_shocks=state_shocks) + desired = lfilter( + res.polynomial_reduced_ma, res.polynomial_reduced_ar, + np.r_[0, state_shocks[:-1]]) + + assert_allclose(actual, desired) + +def test_impulse_responses(): + # Test for impulse response functions + + # Random walk: 1-unit impulse response (i.e. non-orthogonalized irf) is 1 + # for all periods + mod = KalmanFilter(k_endog=1, k_states=1) + mod['design', 0, 0] = 1. + mod['transition', 0, 0] = 1. + mod['selection', 0, 0] = 1. + mod['state_cov', 0, 0] = 2. + + actual = mod.impulse_responses(steps=10) + desired = np.ones((11, 1)) + + assert_allclose(actual, desired) + + # Random walk: 2-unit impulse response (i.e. non-orthogonalized irf) is 2 + # for all periods + mod = KalmanFilter(k_endog=1, k_states=1) + mod['design', 0, 0] = 1. + mod['transition', 0, 0] = 1. + mod['selection', 0, 0] = 1. + mod['state_cov', 0, 0] = 2. + + actual = mod.impulse_responses(steps=10, impulse=[2]) + desired = np.ones((11, 1)) * 2 + + assert_allclose(actual, desired) + + # Random walk: 1-standard-deviation response (i.e. orthogonalized irf) is + # sigma for all periods (here sigma^2 = 2) + mod = KalmanFilter(k_endog=1, k_states=1) + mod['design', 0, 0] = 1. + mod['transition', 0, 0] = 1. + mod['selection', 0, 0] = 1. + mod['state_cov', 0, 0] = 2. + + actual = mod.impulse_responses(steps=10, orthogonalized=True) + desired = np.ones((11, 1)) * 2**0.5 + + assert_allclose(actual, desired) + + # Random walk: 1-standard-deviation cumulative response (i.e. cumulative + # orthogonalized irf) + mod = KalmanFilter(k_endog=1, k_states=1) + mod['design', 0, 0] = 1. + mod['transition', 0, 0] = 1. + mod['selection', 0, 0] = 1. + mod['state_cov', 0, 0] = 2. + + actual = mod.impulse_responses(steps=10, orthogonalized=True, + cumulative=True) + desired = np.cumsum(np.ones((11, 1)) * 2**0.5)[:, np.newaxis] + + actual = mod.impulse_responses(steps=10, impulse=[1], orthogonalized=True, + cumulative=True) + desired = np.cumsum(np.ones((11, 1)) * 2**0.5)[:, np.newaxis] + + assert_allclose(actual, desired) + + # Random walk: 1-unit impulse response (i.e. non-orthogonalized irf) is 1 + # for all periods, even when intercepts are present + mod = KalmanFilter(k_endog=1, k_states=1) + mod['state_intercept', 0] = 100. + mod['design', 0, 0] = 1. + mod['obs_intercept', 0] = -1000. + mod['transition', 0, 0] = 1. + mod['selection', 0, 0] = 1. + mod['state_cov', 0, 0] = 2. + + actual = mod.impulse_responses(steps=10) + desired = np.ones((11, 1)) + + assert_allclose(actual, desired) + + # Univariate model (random walk): test that an error is thrown when + # a multivariate or empty "impulse" is sent + mod = KalmanFilter(k_endog=1, k_states=1) + assert_raises(ValueError, mod.impulse_responses, impulse=1) + assert_raises(ValueError, mod.impulse_responses, impulse=[1,1]) + assert_raises(ValueError, mod.impulse_responses, impulse=[]) + + # Univariate model with two uncorrelated shocks + mod = KalmanFilter(k_endog=1, k_states=2) + mod['design', 0, 0:2] = 1. + mod['transition', :, :] = np.eye(2) + mod['selection', :, :] = np.eye(2) + mod['state_cov', :, :] = np.eye(2) + + desired = np.ones((11, 1)) + + actual = mod.impulse_responses(steps=10, impulse=0) + assert_allclose(actual, desired) + + actual = mod.impulse_responses(steps=10, impulse=[1,0]) + assert_allclose(actual, desired) + + actual = mod.impulse_responses(steps=10, impulse=1) + assert_allclose(actual, desired) + + actual = mod.impulse_responses(steps=10, impulse=[0,1]) + assert_allclose(actual, desired) + + # In this case (with sigma=sigma^2=1), orthogonalized is the same as not + actual = mod.impulse_responses(steps=10, impulse=0, orthogonalized=True) + assert_allclose(actual, desired) + + actual = mod.impulse_responses(steps=10, impulse=[1,0], orthogonalized=True) + assert_allclose(actual, desired) + + actual = mod.impulse_responses(steps=10, impulse=[0,1], orthogonalized=True) + assert_allclose(actual, desired) + + # Univariate model with two correlated shocks + mod = KalmanFilter(k_endog=1, k_states=2) + mod['design', 0, 0:2] = 1. + mod['transition', :, :] = np.eye(2) + mod['selection', :, :] = np.eye(2) + mod['state_cov', :, :] = np.array([[1, 0.5], [0.5, 1.25]]) + + desired = np.ones((11, 1)) + + # Non-orthogonalized (i.e. 1-unit) impulses still just generate 1's + actual = mod.impulse_responses(steps=10, impulse=0) + assert_allclose(actual, desired) + + actual = mod.impulse_responses(steps=10, impulse=1) + assert_allclose(actual, desired) + + # Orthogonalized (i.e. 1-std-dev) impulses now generate different responses + actual = mod.impulse_responses(steps=10, impulse=0, orthogonalized=True) + assert_allclose(actual, desired + desired * 0.5) + + actual = mod.impulse_responses(steps=10, impulse=1, orthogonalized=True) + assert_allclose(actual, desired) + + # Multivariate model with two correlated shocks + mod = KalmanFilter(k_endog=2, k_states=2) + mod['design', :, :] = np.eye(2) + mod['transition', :, :] = np.eye(2) + mod['selection', :, :] = np.eye(2) + mod['state_cov', :, :] = np.array([[1, 0.5], [0.5, 1.25]]) + + ones = np.ones((11, 1)) + zeros = np.zeros((11, 1)) + + # Non-orthogonalized (i.e. 1-unit) impulses still just generate 1's, but + # only for the appropriate series + actual = mod.impulse_responses(steps=10, impulse=0) + assert_allclose(actual, np.c_[ones, zeros]) + + actual = mod.impulse_responses(steps=10, impulse=1) + assert_allclose(actual, np.c_[zeros, ones]) + + # Orthogonalized (i.e. 1-std-dev) impulses now generate different + # responses, and only for the appropriate series + actual = mod.impulse_responses(steps=10, impulse=0, orthogonalized=True) + assert_allclose(actual, np.c_[ones, ones * 0.5]) + + actual = mod.impulse_responses(steps=10, impulse=1, orthogonalized=True) + assert_allclose(actual, np.c_[zeros, ones]) + + # AR(1) model generates a geometrically declining series + mod = sarimax.SARIMAX([0.1, 0.5, -0.2], order=(1,0,0)) + phi = 0.5 + mod.update([phi, 1]) + + desired = np.cumprod(np.r_[1, [phi]*10]) + + # Test going through the model directly + actual = mod.ssm.impulse_responses(steps=10) + assert_allclose(actual[:, 0], desired) + + # Test going through the results object + res = mod.filter([phi, 1.]) + actual = res.impulse_responses(steps=10) + assert_allclose(actual, desired) + +def test_missing(): + # Datasets + endog = np.arange(10).reshape(10,1) + endog_pre_na = np.ascontiguousarray(np.c_[ + endog.copy() * np.nan, endog.copy() * np.nan, endog, endog]) + endog_post_na = np.ascontiguousarray(np.c_[ + endog, endog, endog.copy() * np.nan, endog.copy() * np.nan]) + endog_inject_na = np.ascontiguousarray(np.c_[ + endog, endog.copy() * np.nan, endog, endog.copy() * np.nan]) + + # Base model + mod = KalmanFilter(np.ascontiguousarray(np.c_[endog, endog]), k_states=1, + initialization='approximate_diffuse') + mod['design', :, :] = 1 + mod['obs_cov', :, :] = np.eye(mod.k_endog)*0.5 + mod['transition', :, :] = 0.5 + mod['selection', :, :] = 1 + mod['state_cov', :, :] = 0.5 + llf = mod.loglikeobs() + + # Model with prepended nans + mod = KalmanFilter(endog_pre_na, k_states=1, + initialization='approximate_diffuse') + mod['design', :, :] = 1 + mod['obs_cov', :, :] = np.eye(mod.k_endog)*0.5 + mod['transition', :, :] = 0.5 + mod['selection', :, :] = 1 + mod['state_cov', :, :] = 0.5 + llf_pre_na = mod.loglikeobs() + + assert_allclose(llf_pre_na, llf) + + # Model with appended nans + mod = KalmanFilter(endog_post_na, k_states=1, + initialization='approximate_diffuse') + mod['design', :, :] = 1 + mod['obs_cov', :, :] = np.eye(mod.k_endog)*0.5 + mod['transition', :, :] = 0.5 + mod['selection', :, :] = 1 + mod['state_cov', :, :] = 0.5 + llf_post_na = mod.loglikeobs() + + assert_allclose(llf_post_na, llf) + + # Model with injected nans + mod = KalmanFilter(endog_inject_na, k_states=1, + initialization='approximate_diffuse') + mod['design', :, :] = 1 + mod['obs_cov', :, :] = np.eye(mod.k_endog)*0.5 + mod['transition', :, :] = 0.5 + mod['selection', :, :] = 1 + mod['state_cov', :, :] = 0.5 + llf_inject_na = mod.loglikeobs() + + assert_allclose(llf_inject_na, llf) diff --git a/statsmodels/tsa/statespace/tests/test_sarimax.py b/statsmodels/tsa/statespace/tests/test_sarimax.py new file mode 100644 index 0000000..36a9eeb --- /dev/null +++ b/statsmodels/tsa/statespace/tests/test_sarimax.py @@ -0,0 +1,1991 @@ +""" +Tests for SARIMAX models + +Author: Chad Fulton +License: Simplified-BSD +""" +from __future__ import division, absolute_import, print_function + +import numpy as np +import pandas as pd +import os + +import warnings +from statsmodels.tsa.statespace import sarimax, tools +from statsmodels.tsa import arima_model as arima +from .results import results_sarimax +from statsmodels.tools import add_constant +from numpy.testing import assert_equal, assert_almost_equal, assert_raises, assert_allclose +from nose.exc import SkipTest + +current_path = os.path.dirname(os.path.abspath(__file__)) + +realgdp_path = 'results' + os.sep + 'results_realgdpar_stata.csv' +realgdp_results = pd.read_csv(current_path + os.sep + realgdp_path) + +coverage_path = 'results' + os.sep + 'results_sarimax_coverage.csv' +coverage_results = pd.read_csv(current_path + os.sep + coverage_path) + +try: + import matplotlib.pyplot as plt + have_matplotlib = True +except ImportError: + have_matplotlib = False + +IS_WINDOWS = os.name == 'nt' + + +class TestSARIMAXStatsmodels(object): + """ + Test ARIMA model using SARIMAX class against statsmodels ARIMA class + + Notes + ----- + + Standard errors are quite good for the OPG case. + """ + @classmethod + def setup_class(cls): + cls.true = results_sarimax.wpi1_stationary + endog = cls.true['data'] + + cls.model_a = arima.ARIMA(endog, order=(1, 1, 1)) + cls.result_a = cls.model_a.fit(disp=-1) + + cls.model_b = sarimax.SARIMAX(endog, order=(1, 1, 1), trend='c', + simple_differencing=True, + hamilton_representation=True) + cls.result_b = cls.model_b.fit(disp=-1) + + def test_loglike(self): + assert_allclose(self.result_b.llf, self.result_a.llf) + + def test_aic(self): + assert_allclose(self.result_b.aic, self.result_a.aic) + + def test_bic(self): + assert_allclose(self.result_b.bic, self.result_a.bic) + + def test_hqic(self): + assert_allclose(self.result_b.hqic, self.result_a.hqic) + + def test_mle(self): + # ARIMA estimates the mean of the process, whereas SARIMAX estimates + # the intercept. Convert the mean to intercept to compare + params_a = self.result_a.params + params_a[0] = (1 - params_a[1]) * params_a[0] + assert_allclose(self.result_b.params[:-1], params_a, atol=5e-5) + + def test_bse(self): + # Test the complex step approximated BSE values + bse = self.result_b._cov_params_approx(approx_complex_step=True).diagonal()**0.5 + assert_allclose(bse[1:-1], self.result_a.bse[1:], atol=1e-5) + + def test_t_test(self): + import statsmodels.tools._testing as smt + #self.result_b.pvalues + #self.result_b._cache['pvalues'] += 1 # use to trigger failure + smt.check_ttest_tvalues(self.result_b) + smt.check_ftest_pvalues(self.result_b) + + +class TestRealGDPARStata(object): + """ + Includes tests of filtered states and standardized forecast errors. + + Notes + ----- + Could also test the usual things like standard errors, etc. but those are + well-tested elsewhere. + """ + @classmethod + def setup_class(cls): + dlgdp = np.log(realgdp_results['value']).diff()[1:].values + cls.model = sarimax.SARIMAX(dlgdp, order=(12, 0, 0), trend='n', + hamilton_representation=True) + # Estimated by Stata + params = [ + .40725515, .18782621, -.01514009, -.01027267, -.03642297, + .11576416, .02573029, -.00766572, .13506498, .08649569, .06942822, + -.10685783, .00007999607 + ] + cls.results = cls.model.filter(params) + + def test_filtered_state(self): + for i in range(12): + assert_allclose( + realgdp_results.ix[1:, 'u%d' % (i+1)], + self.results.filter_results.filtered_state[i], + atol=1e-6 + ) + + def test_standardized_forecasts_error(self): + assert_allclose( + realgdp_results.ix[1:, 'rstd'], + self.results.filter_results.standardized_forecasts_error[0], + atol=1e-3 + ) + + +class SARIMAXStataTests(object): + def test_loglike(self): + assert_almost_equal( + self.result.llf, + self.true['loglike'], 4 + ) + + def test_aic(self): + assert_almost_equal( + self.result.aic, + self.true['aic'], 3 + ) + + def test_bic(self): + assert_almost_equal( + self.result.bic, + self.true['bic'], 3 + ) + + def test_hqic(self): + hqic = ( + -2*self.result.llf + + 2*np.log(np.log(self.result.nobs)) * + self.result.params.shape[0] + ) + assert_almost_equal( + self.result.hqic, + hqic, 3 + ) + + +class ARIMA(SARIMAXStataTests): + """ + ARIMA model + + Stata arima documentation, Example 1 + """ + @classmethod + def setup_class(cls, true, *args, **kwargs): + cls.true = true + endog = true['data'] + + kwargs.setdefault('simple_differencing', True) + kwargs.setdefault('hamilton_representation', True) + + cls.model = sarimax.SARIMAX(endog, order=(1, 1, 1), trend='c', + *args, **kwargs) + + # Stata estimates the mean of the process, whereas SARIMAX estimates + # the intercept of the process. Get the intercept. + intercept = (1 - true['params_ar'][0]) * true['params_mean'][0] + params = np.r_[intercept, true['params_ar'], true['params_ma'], + true['params_variance']] + + cls.result = cls.model.filter(params) + + def test_mle(self): + result = self.model.fit(disp=-1) + assert_allclose( + result.params, self.result.params, + atol=1e-3 + ) + + +class TestARIMAStationary(ARIMA): + """ + Notes + ----- + + Standard errors are very good for the OPG and complex step approximation + cases. + """ + @classmethod + def setup_class(cls): + super(TestARIMAStationary, cls).setup_class( + results_sarimax.wpi1_stationary + ) + + def test_bse(self): + # test defaults + assert_equal(self.result.cov_type, 'opg') + assert_equal(self.result._cov_approx_complex_step, True) + assert_equal(self.result._cov_approx_centered, False) + # default covariance type (opg) + assert_allclose(self.result.bse[1], self.true['se_ar_opg'], atol=1e-7) + assert_allclose(self.result.bse[2], self.true['se_ma_opg'], atol=1e-7) + + def test_bse_approx(self): + # complex step + bse = self.result._cov_params_approx( + approx_complex_step=True).diagonal()**0.5 + assert_allclose(bse[1], self.true['se_ar_oim'], atol=1e-7) + assert_allclose(bse[2], self.true['se_ma_oim'], atol=1e-7) + + # The below tests pass irregularly; they give a sense of the precision + # available with finite differencing + # finite difference, non-centered + # with warnings.catch_warnings(): + # warnings.simplefilter("ignore") + # bse = self.result._cov_params_approx( + # approx_complex_step=False).diagonal()**0.5 + # assert_allclose(bse[1], self.true['se_ar_oim'], atol=1e-2) + # assert_allclose(bse[2], self.true['se_ma_oim'], atol=1e-1) + + # # finite difference, centered + # bse = self.result._cov_params_approx( + # approx_complex_step=False, approx_centered=True).diagonal()**0.5 + # assert_allclose(bse[1], self.true['se_ar_oim'], atol=1e-3) + # assert_allclose(bse[2], self.true['se_ma_oim'], atol=1e-3) + + def test_bse_oim(self): + # OIM covariance type + oim_bse = self.result.cov_params_oim.diagonal()**0.5 + assert_allclose(oim_bse[1], self.true['se_ar_oim'], atol=1e-3) + assert_allclose(oim_bse[2], self.true['se_ma_oim'], atol=1e-2) + + def test_bse_robust(self): + robust_oim_bse = self.result.cov_params_robust_oim.diagonal()**0.5 + robust_approx_bse = self.result.cov_params_robust_approx.diagonal()**0.5 + true_robust_bse = np.r_[ + self.true['se_ar_robust'], self.true['se_ma_robust'] + ] + + assert_allclose(robust_oim_bse[1:3], true_robust_bse, atol=1e-2) + assert_allclose(robust_approx_bse[1:3], true_robust_bse, atol=1e-3) + + +class TestARIMADiffuse(ARIMA): + """ + Notes + ----- + + Standard errors are very good for the OPG and quite good for the complex + step approximation cases. + """ + @classmethod + def setup_class(cls, **kwargs): + kwargs['initialization'] = 'approximate_diffuse' + kwargs['initial_variance'] = ( + results_sarimax.wpi1_diffuse['initial_variance'] + ) + super(TestARIMADiffuse, cls).setup_class(results_sarimax.wpi1_diffuse, + **kwargs) + + def test_bse(self): + # test defaults + assert_equal(self.result.cov_type, 'opg') + assert_equal(self.result._cov_approx_complex_step, True) + assert_equal(self.result._cov_approx_centered, False) + # default covariance type (opg) + assert_allclose(self.result.bse[1], self.true['se_ar_opg'], atol=1e-7) + assert_allclose(self.result.bse[2], self.true['se_ma_opg'], atol=1e-7) + + def test_bse_approx(self): + # complex step + bse = self.result._cov_params_approx( + approx_complex_step=True).diagonal()**0.5 + assert_allclose(bse[1], self.true['se_ar_oim'], atol=1e-4) + assert_allclose(bse[2], self.true['se_ma_oim'], atol=1e-4) + + # The below tests do not pass + # with warnings.catch_warnings(): + # warnings.simplefilter("ignore") + + # # finite difference, non-centered : failure + # bse = self.result._cov_params_approx( + # approx_complex_step=False).diagonal()**0.5 + # assert_allclose(bse[1], self.true['se_ar_oim'], atol=1e-4) + # assert_allclose(bse[2], self.true['se_ma_oim'], atol=1e-4) + + # # finite difference, centered : failure + # bse = self.result._cov_params_approx( + # approx_complex_step=False, approx_centered=True).diagonal()**0.5 + # assert_allclose(bse[1], self.true['se_ar_oim'], atol=1e-4) + # assert_allclose(bse[2], self.true['se_ma_oim'], atol=1e-4) + + def test_bse_oim(self): + # OIM covariance type + bse = self.result._cov_params_oim().diagonal()**0.5 + assert_allclose(bse[1], self.true['se_ar_oim'], atol=1e-2) + assert_allclose(bse[2], self.true['se_ma_oim'], atol=1e-1) + + +class AdditiveSeasonal(SARIMAXStataTests): + """ + ARIMA model with additive seasonal effects + + Stata arima documentation, Example 2 + """ + @classmethod + def setup_class(cls, true, *args, **kwargs): + cls.true = true + endog = np.log(true['data']) + + kwargs.setdefault('simple_differencing', True) + kwargs.setdefault('hamilton_representation', True) + + cls.model = sarimax.SARIMAX( + endog, order=(1, 1, (1, 0, 0, 1)), trend='c', *args, **kwargs + ) + + # Stata estimates the mean of the process, whereas SARIMAX estimates + # the intercept of the process. Get the intercept. + intercept = (1 - true['params_ar'][0]) * true['params_mean'][0] + params = np.r_[intercept, true['params_ar'], true['params_ma'], + true['params_variance']] + + cls.result = cls.model.filter(params) + + def test_mle(self): + result = self.model.fit(disp=-1) + assert_allclose( + result.params, self.result.params, + atol=1e-3 + ) + + +class TestAdditiveSeasonal(AdditiveSeasonal): + """ + Notes + ----- + + Standard errors are very good for the OPG and quite good for the complex + step approximation cases. + """ + @classmethod + def setup_class(cls): + super(TestAdditiveSeasonal, cls).setup_class( + results_sarimax.wpi1_seasonal + ) + + def test_bse(self): + # test defaults + assert_equal(self.result.cov_type, 'opg') + assert_equal(self.result._cov_approx_complex_step, True) + assert_equal(self.result._cov_approx_centered, False) + # default covariance type (opg) + assert_allclose(self.result.bse[1], self.true['se_ar_opg'], atol=1e-6) + assert_allclose(self.result.bse[2:4], self.true['se_ma_opg'], atol=1e-5) + + def test_bse_approx(self): + # complex step + bse = self.result._cov_params_approx( + approx_complex_step=True).diagonal()**0.5 + assert_allclose(bse[1], self.true['se_ar_oim'], atol=1e-4) + assert_allclose(bse[2:4], self.true['se_ma_oim'], atol=1e-4) + + # The below tests pass irregularly; they give a sense of the precision + # available with finite differencing + # with warnings.catch_warnings(): + # warnings.simplefilter("ignore") + + # # finite difference, non-centered + # bse = self.result._cov_params_approx( + # approx_complex_step=False).diagonal()**0.5 + # assert_allclose(bse[1], self.true['se_ar_oim'], atol=1e-2) + # assert_allclose(bse[2:4], self.true['se_ma_oim'], atol=1e-2) + + # # finite difference, centered + # bse = self.result._cov_params_approx( + # approx_complex_step=False, approx_centered=True).diagonal()**0.5 + # assert_allclose(bse[1], self.true['se_ar_oim'], atol=1e-3) + # assert_allclose(bse[2:4], self.true['se_ma_oim'], atol=1e-3) + + def test_bse_oim(self): + # OIM covariance type + bse = self.result._cov_params_oim().diagonal()**0.5 + assert_allclose(bse[1], self.true['se_ar_oim'], atol=1e-2) + assert_allclose(bse[2:4], self.true['se_ma_oim'], atol=1e-1) + + +class Airline(SARIMAXStataTests): + """ + Multiplicative SARIMA model: "Airline" model + + Stata arima documentation, Example 3 + """ + @classmethod + def setup_class(cls, true, *args, **kwargs): + cls.true = true + endog = np.log(true['data']) + + kwargs.setdefault('simple_differencing', True) + kwargs.setdefault('hamilton_representation', True) + + cls.model = sarimax.SARIMAX( + endog, order=(0, 1, 1), seasonal_order=(0, 1, 1, 12), + trend='n', *args, **kwargs + ) + + params = np.r_[true['params_ma'], true['params_seasonal_ma'], + true['params_variance']] + + cls.result = cls.model.filter(params) + + def test_mle(self): + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + + result = self.model.fit(disp=-1) + assert_allclose( + result.params, self.result.params, + atol=1e-4 + ) + + +class TestAirlineHamilton(Airline): + """ + Notes + ----- + + Standard errors are very good for the OPG and complex step approximation + cases. + """ + @classmethod + def setup_class(cls): + super(TestAirlineHamilton, cls).setup_class( + results_sarimax.air2_stationary + ) + + def test_bse(self): + # test defaults + assert_equal(self.result.cov_type, 'opg') + assert_equal(self.result._cov_approx_complex_step, True) + assert_equal(self.result._cov_approx_centered, False) + # default covariance type (opg) + assert_allclose(self.result.bse[0], self.true['se_ma_opg'], atol=1e-6) + assert_allclose(self.result.bse[1], self.true['se_seasonal_ma_opg'], atol=1e-6) + + def test_bse_approx(self): + # complex step + bse = self.result._cov_params_approx( + approx_complex_step=True).diagonal()**0.5 + assert_allclose(bse[0], self.true['se_ma_oim'], atol=1e-6) + assert_allclose(bse[1], self.true['se_seasonal_ma_oim'], atol=1e-6) + + # The below tests pass irregularly; they give a sense of the precision + # available with finite differencing + # with warnings.catch_warnings(): + # warnings.simplefilter("ignore") + + # # finite difference, non-centered + # bse = self.result._cov_params_approx( + # approx_complex_step=False).diagonal()**0.5 + # assert_allclose(bse[0], self.true['se_ma_oim'], atol=1e-2) + # assert_allclose(bse[1], self.true['se_seasonal_ma_oim'], atol=1e-2) + + # # finite difference, centered + # bse = self.result._cov_params_approx( + # approx_complex_step=False, approx_centered=True).diagonal()**0.5 + # assert_allclose(bse[0], self.true['se_ma_oim'], atol=1e-4) + # assert_allclose(bse[1], self.true['se_seasonal_ma_oim'], atol=1e-4) + + def test_bse_oim(self): + # OIM covariance type + oim_bse = self.result.cov_params_oim.diagonal()**0.5 + assert_allclose(oim_bse[0], self.true['se_ma_oim'], atol=1e-1) + assert_allclose(oim_bse[1], self.true['se_seasonal_ma_oim'], atol=1e-1) + + +class TestAirlineHarvey(Airline): + """ + Notes + ----- + + Standard errors are very good for the OPG and complex step approximation + cases. + """ + @classmethod + def setup_class(cls): + super(TestAirlineHarvey, cls).setup_class( + results_sarimax.air2_stationary, hamilton_representation=False + ) + + def test_bse(self): + # test defaults + assert_equal(self.result.cov_type, 'opg') + assert_equal(self.result._cov_approx_complex_step, True) + assert_equal(self.result._cov_approx_centered, False) + # default covariance type (opg) + assert_allclose(self.result.bse[0], self.true['se_ma_opg'], atol=1e-6) + assert_allclose(self.result.bse[1], self.true['se_seasonal_ma_opg'], atol=1e-6) + + def test_bse_approx(self): + # complex step + bse = self.result._cov_params_approx( + approx_complex_step=True).diagonal()**0.5 + assert_allclose(bse[0], self.true['se_ma_oim'], atol=1e-6) + assert_allclose(bse[1], self.true['se_seasonal_ma_oim'], atol=1e-6) + + # The below tests pass irregularly; they give a sense of the precision + # available with finite differencing + # with warnings.catch_warnings(): + # warnings.simplefilter("ignore") + + # # finite difference, non-centered + # bse = self.result._cov_params_approx( + # approx_complex_step=False).diagonal()**0.5 + # assert_allclose(bse[0], self.true['se_ma_oim'], atol=1e-2) + # assert_allclose(bse[1], self.true['se_seasonal_ma_oim'], atol=1e-2) + + # # finite difference, centered + # bse = self.result._cov_params_approx( + # approx_complex_step=False, approx_centered=True).diagonal()**0.5 + # assert_allclose(bse[0], self.true['se_ma_oim'], atol=1e-4) + # assert_allclose(bse[1], self.true['se_seasonal_ma_oim'], atol=1e-4) + + def test_bse_oim(self): + # OIM covariance type + oim_bse = self.result.cov_params_oim.diagonal()**0.5 + assert_allclose(oim_bse[0], self.true['se_ma_oim'], atol=1e-1) + assert_allclose(oim_bse[1], self.true['se_seasonal_ma_oim'], atol=1e-1) + + +class TestAirlineStateDifferencing(Airline): + """ + Notes + ----- + + Standard errors are very good for the OPG and quite good for the complex + step approximation cases. + """ + @classmethod + def setup_class(cls): + super(TestAirlineStateDifferencing, cls).setup_class( + results_sarimax.air2_stationary, simple_differencing=False, + hamilton_representation=False + ) + + def test_bic(self): + # Due to diffuse component of the state (which technically changes the + # BIC calculation - see Durbin and Koopman section 7.4), this is the + # best we can do for BIC + assert_almost_equal( + self.result.bic, + self.true['bic'], 0 + ) + + def test_mle(self): + result = self.model.fit(disp=-1) + assert_allclose( + result.params, self.result.params, + atol=1e-3 + ) + + def test_bse(self): + # test defaults + assert_equal(self.result.cov_type, 'opg') + assert_equal(self.result._cov_approx_complex_step, True) + assert_equal(self.result._cov_approx_centered, False) + # default covariance type (opg) + assert_allclose(self.result.bse[0], self.true['se_ma_opg'], atol=1e-6) + assert_allclose(self.result.bse[1], self.true['se_seasonal_ma_opg'], atol=1e-6) + + def test_bse_approx(self): + # complex step + bse = self.result._cov_params_approx( + approx_complex_step=True).diagonal()**0.5 + assert_allclose(bse[0], self.true['se_ma_oim'], atol=1e-4) + assert_allclose(bse[1], self.true['se_seasonal_ma_oim'], atol=1e-4) + + # The below tests do not pass + # with warnings.catch_warnings(): + # warnings.simplefilter("ignore") + + # # finite difference, non-centered : failure with NaNs + # bse = self.result._cov_params_approx( + # approx_complex_step=False).diagonal()**0.5 + # assert_allclose(bse[0], self.true['se_ma_oim'], atol=1e-2) + # assert_allclose(bse[1], self.true['se_seasonal_ma_oim'], atol=1e-2) + + # # finite difference, centered : failure with NaNs + # bse = self.result._cov_params_approx( + # approx_complex_step=False, approx_centered=True).diagonal()**0.5 + # assert_allclose(bse[0], self.true['se_ma_oim'], atol=1e-4) + # assert_allclose(bse[1], self.true['se_seasonal_ma_oim'], atol=1e-4) + + def test_bse_oim(self): + # OIM covariance type + oim_bse = self.result.cov_params_oim.diagonal()**0.5 + assert_allclose(oim_bse[0], self.true['se_ma_oim'], atol=1e-1) + assert_allclose(oim_bse[1], self.true['se_seasonal_ma_oim'], atol=1e-1) + + +class Friedman(SARIMAXStataTests): + """ + ARMAX model: Friedman quantity theory of money + + Stata arima documentation, Example 4 + """ + @classmethod + def setup_class(cls, true, exog=None, *args, **kwargs): + cls.true = true + endog = np.r_[true['data']['consump']] + if exog is None: + exog = add_constant(true['data']['m2']) + + kwargs.setdefault('simple_differencing', True) + kwargs.setdefault('hamilton_representation', True) + + cls.model = sarimax.SARIMAX( + endog, exog=exog, order=(1, 0, 1), *args, **kwargs + ) + + params = np.r_[true['params_exog'], true['params_ar'], + true['params_ma'], true['params_variance']] + + cls.result = cls.model.filter(params) + + +class TestFriedmanMLERegression(Friedman): + """ + Notes + ----- + + Standard errors are very good for the OPG and complex step approximation + cases. + """ + @classmethod + def setup_class(cls): + super(TestFriedmanMLERegression, cls).setup_class( + results_sarimax.friedman2_mle + ) + + def test_mle(self): + result = self.model.fit(disp=-1) + assert_allclose( + result.params, self.result.params, + atol=1e-2, rtol=1e-3 + ) + + def test_bse(self): + # test defaults + assert_equal(self.result.cov_type, 'opg') + assert_equal(self.result._cov_approx_complex_step, True) + assert_equal(self.result._cov_approx_centered, False) + # default covariance type (opg) + assert_allclose(self.result.bse[0:2], self.true['se_exog_opg'], atol=1e-4) + assert_allclose(self.result.bse[2], self.true['se_ar_opg'], atol=1e-6) + assert_allclose(self.result.bse[3], self.true['se_ma_opg'], atol=1e-6) + + def test_bse_approx(self): + # complex step + bse = self.result._cov_params_approx( + approx_complex_step=True).diagonal()**0.5 + assert_allclose(bse[0:2], self.true['se_exog_oim'], atol=1e-4) + assert_allclose(bse[2], self.true['se_ar_oim'], atol=1e-6) + assert_allclose(bse[3], self.true['se_ma_oim'], atol=1e-6) + + # The below tests pass irregularly; they give a sense of the precision + # available with finite differencing + # with warnings.catch_warnings(): + # warnings.simplefilter("ignore") + + # # finite difference, non-centered + # bse = self.result._cov_params_approx( + # approx_complex_step=False).diagonal()**0.5 + # assert_allclose(bse[0], self.true['se_exog_oim'][0], rtol=1) + # assert_allclose(bse[1], self.true['se_exog_oim'][1], atol=1e-2) + # assert_allclose(bse[2], self.true['se_ar_oim'], atol=1e-2) + # assert_allclose(bse[3], self.true['se_ma_oim'], atol=1e-2) + + # # finite difference, centered + # bse = self.result._cov_params_approx( + # approx_complex_step=False, approx_centered=True).diagonal()**0.5 + # assert_allclose(bse[0], self.true['se_exog_oim'][0], rtol=1) + # assert_allclose(bse[1], self.true['se_exog_oim'][1], atol=1e-2) + # assert_allclose(bse[2], self.true['se_ar_oim'], atol=1e-2) + # assert_allclose(bse[3], self.true['se_ma_oim'], atol=1e-2) + + def test_bse_oim(self): + # OIM covariance type + bse = self.result.cov_params_oim.diagonal()**0.5 + assert_allclose(bse[0], self.true['se_exog_oim'][0], rtol=1) + assert_allclose(bse[1], self.true['se_exog_oim'][1], atol=1e-2) + assert_allclose(bse[2], self.true['se_ar_oim'], atol=1e-2) + assert_allclose(bse[3], self.true['se_ma_oim'], atol=1e-2) + + +class TestFriedmanStateRegression(Friedman): + """ + Notes + ----- + + MLE is not very close and standard errors are not very close for any set of + parameters. + + This is likely because we're comparing against the model where the + regression coefficients are also estimated by MLE. So this test should be + considered just a very basic "sanity" test. + """ + @classmethod + def setup_class(cls): + # Remove the regression coefficients from the parameters, since they + # will be estimated as part of the state vector + true = dict(results_sarimax.friedman2_mle) + exog = add_constant(true['data']['m2']) / 10. + + true['mle_params_exog'] = true['params_exog'][:] + true['mle_se_exog'] = true['se_exog_opg'][:] + + true['params_exog'] = [] + true['se_exog'] = [] + + super(TestFriedmanStateRegression, cls).setup_class( + true, exog=exog, mle_regression=False + ) + + cls.true_params = np.r_[true['params_exog'], true['params_ar'], + true['params_ma'], true['params_variance']] + + cls.result = cls.model.filter(cls.true_params) + + + def test_mle(self): + result = self.model.fit(disp=-1) + assert_allclose( + result.params, self.result.params, + atol=1e-1, rtol=2e-1 + ) + + def test_regression_parameters(self): + # The regression effects are integrated into the state vector as + # the last two states (thus the index [-2:]). The filtered + # estimates of the state vector produced by the Kalman filter and + # stored in `filtered_state` for these state elements give the + # recursive least squares estimates of the regression coefficients + # at each time period. To get the estimates conditional on the + # entire dataset, use the filtered states from the last time + # period (thus the index [-1]). + assert_almost_equal( + self.result.filter_results.filtered_state[-2:, -1] / 10., + self.true['mle_params_exog'], 1 + ) + + # Loglikelihood (and so aic, bic) is slightly different when states are + # integrated into the state vector + def test_loglike(self): + pass + + def test_aic(self): + pass + + def test_bic(self): + pass + + def test_bse(self): + # test defaults + assert_equal(self.result.cov_type, 'opg') + assert_equal(self.result._cov_approx_complex_step, True) + assert_equal(self.result._cov_approx_centered, False) + # default covariance type (opg) + assert_allclose(self.result.bse[0], self.true['se_ar_opg'], atol=1e-2) + assert_allclose(self.result.bse[1], self.true['se_ma_opg'], atol=1e-2) + + def test_bse_approx(self): + # complex step + bse = self.result._cov_params_approx( + approx_complex_step=True).diagonal()**0.5 + assert_allclose(bse[0], self.true['se_ar_oim'], atol=1e-1) + assert_allclose(bse[1], self.true['se_ma_oim'], atol=1e-1) + + # The below tests do not pass + # with warnings.catch_warnings(): + # warnings.simplefilter("ignore") + + # # finite difference, non-centered : failure (catastrophic cancellation) + # bse = self.result._cov_params_approx( + # approx_complex_step=False).diagonal()**0.5 + # assert_allclose(bse[0], self.true['se_ar_oim'], atol=1e-3) + # assert_allclose(bse[1], self.true['se_ma_oim'], atol=1e-2) + + # # finite difference, centered : failure (nan) + # bse = self.result._cov_params_approx( + # approx_complex_step=False, approx_centered=True).diagonal()**0.5 + # assert_allclose(bse[0], self.true['se_ar_oim'], atol=1e-3) + # assert_allclose(bse[1], self.true['se_ma_oim'], atol=1e-3) + + def test_bse_oim(self): + # OIM covariance type + bse = self.result._cov_params_oim().diagonal()**0.5 + assert_allclose(bse[0], self.true['se_ar_oim'], atol=1e-1) + assert_allclose(bse[1], self.true['se_ma_oim'], atol=1e-1) + + +class TestFriedmanPredict(Friedman): + """ + ARMAX model: Friedman quantity theory of money, prediction + + Stata arima postestimation documentation, Example 1 - Dynamic forecasts + + This follows the given Stata example, although it is not truly forecasting + because it compares using the actual data (which is available in the + example but just not used in the parameter MLE estimation) against dynamic + prediction of that data. Here `test_predict` matches the first case, and + `test_dynamic_predict` matches the second. + """ + @classmethod + def setup_class(cls): + super(TestFriedmanPredict, cls).setup_class( + results_sarimax.friedman2_predict + ) + + # loglike, aic, bic are not the point of this test (they could pass, but we + # would have to modify the data so that they were calculated to + # exclude the last 15 observations) + def test_loglike(self): + pass + + def test_aic(self): + pass + + def test_bic(self): + pass + + def test_predict(self): + assert_almost_equal( + self.result.predict(), + self.true['predict'], 3 + ) + + def test_dynamic_predict(self): + dynamic = len(self.true['data']['consump'])-15-1 + assert_almost_equal( + self.result.predict(dynamic=dynamic), + self.true['dynamic_predict'], 3 + ) + + +class TestFriedmanForecast(Friedman): + """ + ARMAX model: Friedman quantity theory of money, forecasts + + Variation on: + Stata arima postestimation documentation, Example 1 - Dynamic forecasts + + This is a variation of the Stata example, in which the endogenous data is + actually made to be missing so that the predict command must forecast. + + As another unit test, we also compare against the case in State when + predict is used against missing data (so forecasting) with the dynamic + option also included. Note, however, that forecasting in State space models + amounts to running the Kalman filter against missing datapoints, so it is + not clear whether "dynamic" forecasting (where instead of missing + datapoints for lags, we plug in previous forecasted endog values) is + meaningful. + """ + @classmethod + def setup_class(cls): + true = dict(results_sarimax.friedman2_predict) + + true['forecast_data'] = { + 'consump': true['data']['consump'][-15:], + 'm2': true['data']['m2'][-15:] + } + true['data'] = { + 'consump': true['data']['consump'][:-15], + 'm2': true['data']['m2'][:-15] + } + + super(TestFriedmanForecast, cls).setup_class(true) + + cls.result = cls.model.filter(cls.result.params) + + # loglike, aic, bic are not the point of this test (they could pass, but we + # would have to modify the data so that they were calculated to + # exclude the last 15 observations) + def test_loglike(self): + pass + + def test_aic(self): + pass + + def test_bic(self): + pass + + def test_forecast(self): + end = len(self.true['data']['consump'])+15-1 + exog = add_constant(self.true['forecast_data']['m2']) + assert_almost_equal( + self.result.predict(end=end, exog=exog), + self.true['forecast'], 3 + ) + + def test_dynamic_forecast(self): + end = len(self.true['data']['consump'])+15-1 + dynamic = len(self.true['data']['consump'])-1 + exog = add_constant(self.true['forecast_data']['m2']) + assert_almost_equal( + self.result.predict(end=end, dynamic=dynamic, exog=exog), + self.true['dynamic_forecast'], 3 + ) + +class SARIMAXCoverageTest(object): + @classmethod + def setup_class(cls, i, decimal=4, endog=None, *args, **kwargs): + # Dataset + if endog is None: + endog = results_sarimax.wpi1_data + + # Loglikelihood, parameters + cls.true_loglike = coverage_results.loc[i]['llf'] + cls.true_params = np.array([float(x) for x in coverage_results.loc[i]['parameters'].split(',')]) + # Stata reports the standard deviation; make it the variance + cls.true_params[-1] = cls.true_params[-1]**2 + + # Test parameters + cls.decimal = decimal + + # Compare using the Hamilton representation and simple differencing + kwargs.setdefault('simple_differencing', True) + kwargs.setdefault('hamilton_representation', True) + + cls.model = sarimax.SARIMAX(endog, *args, **kwargs) + + def test_loglike(self): + self.result = self.model.filter(self.true_params) + + assert_allclose( + self.result.llf, + self.true_loglike, + atol=0.7 * 10**(-self.decimal) + ) + + def test_start_params(self): + # just a quick test that start_params isn't throwing an exception + # (other than related to invertibility) + + self.model.enforce_stationarity = False + self.model.enforce_invertibility = False + self.model.start_params + self.model.enforce_stationarity = True + self.model.enforce_invertibility = True + + def test_transform_untransform(self): + true_constrained = self.true_params + + # Sometimes the parameters given by Stata are not stationary and / or + # invertible, so we need to skip those transformations for those + # parameter sets + self.model.update(self.true_params) + contracted_polynomial_seasonal_ar = self.model.polynomial_seasonal_ar[self.model.polynomial_seasonal_ar.nonzero()] + self.model.enforce_stationarity = ( + (self.model.k_ar == 0 or tools.is_invertible(np.r_[1, -self.model.polynomial_ar[1:]])) and + (len(contracted_polynomial_seasonal_ar) <= 1 or tools.is_invertible(np.r_[1, -contracted_polynomial_seasonal_ar[1:]])) + ) + contracted_polynomial_seasonal_ma = self.model.polynomial_seasonal_ma[self.model.polynomial_seasonal_ma.nonzero()] + self.model.enforce_invertibility = ( + (self.model.k_ma == 0 or tools.is_invertible(np.r_[1, -self.model.polynomial_ma[1:]])) and + (len(contracted_polynomial_seasonal_ma) <= 1 or tools.is_invertible(np.r_[1, -contracted_polynomial_seasonal_ma[1:]])) + ) + + unconstrained = self.model.untransform_params(true_constrained) + constrained = self.model.transform_params(unconstrained) + + assert_almost_equal(constrained, true_constrained, 4) + + self.model.enforce_stationarity = True + self.model.enforce_invertibility = True + + def test_results(self): + self.result = self.model.filter(self.true_params) + + # Just make sure that no exceptions are thrown during summary + self.result.summary() + + # Make sure that no exceptions are thrown during plot_diagnostics + if have_matplotlib: + fig = self.result.plot_diagnostics() + plt.close(fig) + + # And make sure no expections are thrown calculating any of the + # covariance matrix types + self.result.cov_params_default + self.result.cov_params_approx + self.result.cov_params_oim + self.result.cov_params_opg + self.result.cov_params_robust_oim + self.result.cov_params_robust_approx + + def test_predict(self): + result = self.model.filter(self.true_params) + # Test predict does not throw exceptions, and produces the right shaped + # output + predict = result.predict() + assert_equal(predict.shape, (self.model.nobs,)) + + predict = result.predict(start=10, end=20) + assert_equal(predict.shape, (11,)) + + predict = result.predict(start=10, end=20, dynamic=10) + assert_equal(predict.shape, (11,)) + + # Test forecasts + if self.model.k_exog == 0: + predict = result.predict(start=self.model.nobs, + end=self.model.nobs+10, dynamic=-10) + assert_equal(predict.shape, (11,)) + + predict = result.predict(start=self.model.nobs, + end=self.model.nobs+10, dynamic=-10) + + forecast = result.forecast() + assert_equal(forecast.shape, (1,)) + + forecast = result.forecast(10) + assert_equal(forecast.shape, (10,)) + else: + exog = np.r_[[0]*self.model.k_exog*11].reshape(11, self.model.k_exog) + + predict = result.predict(start=self.model.nobs, + end=self.model.nobs+10, dynamic=-10, + exog=exog) + assert_equal(predict.shape, (11,)) + + predict = result.predict(start=self.model.nobs, + end=self.model.nobs+10, dynamic=-10, + exog=exog) + + exog = np.r_[[0]*self.model.k_exog].reshape(1, self.model.k_exog) + forecast = result.forecast(exog=exog) + assert_equal(forecast.shape, (1,)) + + def test_init_keys_replicate(self): + mod1 = self.model + + kwargs = self.model._get_init_kwds() + endog = mod1.data.orig_endog + exog = mod1.data.orig_exog + + model2 = sarimax.SARIMAX(endog, exog, **kwargs) + res1 = self.model.filter(self.true_params) + res2 = model2.filter(self.true_params) + rtol = 1e-6 if IS_WINDOWS else 1e-13 + assert_allclose(res2.llf, res1.llf, rtol=rtol) + + +class Test_ar(SARIMAXCoverageTest): + # // AR: (p,0,0) x (0,0,0,0) + # arima wpi, arima(3,0,0) noconstant vce(oim) + # save_results 1 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (3,0,0) + super(Test_ar, cls).setup_class(0, *args, **kwargs) + +class Test_ar_as_polynomial(SARIMAXCoverageTest): + # // AR: (p,0,0) x (0,0,0,0) + # arima wpi, arima(3,0,0) noconstant vce(oim) + # save_results 1 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = ([1,1,1],0,0) + super(Test_ar_as_polynomial, cls).setup_class(0, *args, **kwargs) + +class Test_ar_trend_c(SARIMAXCoverageTest): + # // 'c' + # arima wpi c, arima(3,0,0) noconstant vce(oim) + # save_results 2 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (3,0,0) + kwargs['trend'] = 'c' + super(Test_ar_trend_c, cls).setup_class(1, *args, **kwargs) + # Modify true params to convert from mean to intercept form + cls.true_params[0] = (1 - cls.true_params[1:4].sum()) * cls.true_params[0] + +class Test_ar_trend_ct(SARIMAXCoverageTest): + # // 'ct' + # arima wpi c t, arima(3,0,0) noconstant vce(oim) + # save_results 3 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (3,0,0) + kwargs['trend'] = 'ct' + super(Test_ar_trend_ct, cls).setup_class(2, *args, **kwargs) + # Modify true params to convert from mean to intercept form + cls.true_params[:2] = (1 - cls.true_params[2:5].sum()) * cls.true_params[:2] + +class Test_ar_trend_polynomial(SARIMAXCoverageTest): + # // polynomial [1,0,0,1] + # arima wpi c t3, arima(3,0,0) noconstant vce(oim) + # save_results 4 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (3,0,0) + kwargs['trend'] = [1,0,0,1] + super(Test_ar_trend_polynomial, cls).setup_class(3, *args, **kwargs) + # Modify true params to convert from mean to intercept form + cls.true_params[:2] = (1 - cls.true_params[2:5].sum()) * cls.true_params[:2] + +class Test_ar_diff(SARIMAXCoverageTest): + # // AR and I(d): (p,d,0) x (0,0,0,0) + # arima wpi, arima(3,2,0) noconstant vce(oim) + # save_results 5 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (3,2,0) + super(Test_ar_diff, cls).setup_class(4, *args, **kwargs) + +class Test_ar_seasonal_diff(SARIMAXCoverageTest): + # // AR and I(D): (p,0,0) x (0,D,0,s) + # arima wpi, arima(3,0,0) sarima(0,2,0,4) noconstant vce(oim) + # save_results 6 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (3,0,0) + kwargs['seasonal_order'] = (0,2,0,4) + super(Test_ar_seasonal_diff, cls).setup_class(5, *args, **kwargs) + +class Test_ar_diffuse(SARIMAXCoverageTest): + # // AR and diffuse initialization + # arima wpi, arima(3,0,0) noconstant vce(oim) diffuse + # save_results 7 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (3,0,0) + kwargs['initialization'] = 'approximate_diffuse' + kwargs['initial_variance'] = 1e9 + super(Test_ar_diffuse, cls).setup_class(6, *args, **kwargs) + +class Test_ar_no_enforce(SARIMAXCoverageTest): + # // AR: (p,0,0) x (0,0,0,0) + # arima wpi, arima(3,0,0) noconstant vce(oim) + # save_results 1 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (3,0,0) + kwargs['enforce_stationarity'] = False + kwargs['enforce_invertibility'] = False + kwargs['initial_variance'] = 1e9 + # kwargs['loglikelihood_burn'] = 0 + super(Test_ar_no_enforce, cls).setup_class(6, *args, **kwargs) + # Reset loglikelihood burn, which gets automatically set to the number + # of states if enforce_stationarity = False + cls.model.ssm.loglikelihood_burn = 0 + + def test_loglike(self): + # Regression in the state vector gives a different loglikelihood, so + # just check that it's approximately the same + self.result = self.model.filter(self.true_params) + + assert_allclose( + self.result.llf, + self.true_loglike, + atol=2 + ) + +class Test_ar_exogenous(SARIMAXCoverageTest): + # // ARX + # arima wpi x, arima(3,0,0) noconstant vce(oim) + # save_results 8 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (3,0,0) + endog = results_sarimax.wpi1_data + kwargs['exog'] = (endog - np.floor(endog))**2 + super(Test_ar_exogenous, cls).setup_class(7, *args, **kwargs) + +class Test_ar_exogenous_in_state(SARIMAXCoverageTest): + # // ARX + # arima wpi x, arima(3,0,0) noconstant vce(oim) + # save_results 8 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (3,0,0) + endog = results_sarimax.wpi1_data + kwargs['exog'] = (endog - np.floor(endog))**2 + kwargs['mle_regression'] = False + super(Test_ar_exogenous_in_state, cls).setup_class(7, *args, **kwargs) + cls.true_regression_coefficient = cls.true_params[0] + cls.true_params = cls.true_params[1:] + + def test_loglike(self): + # Regression in the state vector gives a different loglikelihood, so + # just check that it's approximately the same + self.result = self.model.filter(self.true_params) + + assert_allclose( + self.result.llf, + self.true_loglike, + atol=2 + ) + + def test_regression_coefficient(self): + # Test that the regression coefficient (estimated as the last filtered + # state estimate for the regression state) is the same as the Stata + # MLE state + self.result = self.model.filter(self.true_params) + + assert_allclose( + self.result.filter_results.filtered_state[3][-1], + self.true_regression_coefficient, + self.decimal + ) + +class Test_ma(SARIMAXCoverageTest): + # // MA: (0,0,q) x (0,0,0,0) + # arima wpi, arima(0,0,3) noconstant vce(oim) + # save_results 9 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (0,0,3) + super(Test_ma, cls).setup_class(8, *args, **kwargs) + +class Test_ma_as_polynomial(SARIMAXCoverageTest): + # // MA: (0,0,q) x (0,0,0,0) + # arima wpi, arima(0,0,3) noconstant vce(oim) + # save_results 9 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (0,0,[1,1,1]) + super(Test_ma_as_polynomial, cls).setup_class(8, *args, **kwargs) + +class Test_ma_trend_c(SARIMAXCoverageTest): + # // 'c' + # arima wpi c, arima(0,0,3) noconstant vce(oim) + # save_results 10 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (0,0,3) + kwargs['trend'] = 'c' + super(Test_ma_trend_c, cls).setup_class(9, *args, **kwargs) + +class Test_ma_trend_ct(SARIMAXCoverageTest): + # // 'ct' + # arima wpi c t, arima(0,0,3) noconstant vce(oim) + # save_results 11 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (0,0,3) + kwargs['trend'] = 'ct' + super(Test_ma_trend_ct, cls).setup_class(10, *args, **kwargs) + +class Test_ma_trend_polynomial(SARIMAXCoverageTest): + # // polynomial [1,0,0,1] + # arima wpi c t3, arima(0,0,3) noconstant vce(oim) + # save_results 12 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (0,0,3) + kwargs['trend'] = [1,0,0,1] + super(Test_ma_trend_polynomial, cls).setup_class(11, *args, **kwargs) + +class Test_ma_diff(SARIMAXCoverageTest): + # // MA and I(d): (0,d,q) x (0,0,0,0) + # arima wpi, arima(0,2,3) noconstant vce(oim) + # save_results 13 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (0,2,3) + super(Test_ma_diff, cls).setup_class(12, *args, **kwargs) + +class Test_ma_seasonal_diff(SARIMAXCoverageTest): + # // MA and I(D): (p,0,0) x (0,D,0,s) + # arima wpi, arima(0,0,3) sarima(0,2,0,4) noconstant vce(oim) + # save_results 14 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (0,0,3) + kwargs['seasonal_order'] = (0,2,0,4) + super(Test_ma_seasonal_diff, cls).setup_class(13, *args, **kwargs) + +class Test_ma_diffuse(SARIMAXCoverageTest): + # // MA and diffuse initialization + # arima wpi, arima(0,0,3) noconstant vce(oim) diffuse + # save_results 15 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (0,0,3) + kwargs['initialization'] = 'approximate_diffuse' + kwargs['initial_variance'] = 1e9 + super(Test_ma_diffuse, cls).setup_class(14, *args, **kwargs) + +class Test_ma_exogenous(SARIMAXCoverageTest): + # // MAX + # arima wpi x, arima(0,0,3) noconstant vce(oim) + # save_results 16 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (0,0,3) + endog = results_sarimax.wpi1_data + kwargs['exog'] = (endog - np.floor(endog))**2 + super(Test_ma_exogenous, cls).setup_class(15, *args, **kwargs) + +class Test_arma(SARIMAXCoverageTest): + # // ARMA: (p,0,q) x (0,0,0,0) + # arima wpi, arima(3,0,3) noconstant vce(oim) + # save_results 17 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (3,0,3) + super(Test_arma, cls).setup_class(16, *args, **kwargs) + +class Test_arma_trend_c(SARIMAXCoverageTest): + # // 'c' + # arima wpi c, arima(3,0,2) noconstant vce(oim) + # save_results 18 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (3,0,2) + kwargs['trend'] = 'c' + super(Test_arma_trend_c, cls).setup_class(17, *args, **kwargs) + # Modify true params to convert from mean to intercept form + cls.true_params[:1] = (1 - cls.true_params[1:4].sum()) * cls.true_params[:1] + +class Test_arma_trend_ct(SARIMAXCoverageTest): + # // 'ct' + # arima wpi c t, arima(3,0,2) noconstant vce(oim) + # save_results 19 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (3,0,2) + kwargs['trend'] = 'ct' + super(Test_arma_trend_ct, cls).setup_class(18, *args, **kwargs) + # Modify true params to convert from mean to intercept form + cls.true_params[:2] = (1 - cls.true_params[2:5].sum()) * cls.true_params[:2] + +class Test_arma_trend_polynomial(SARIMAXCoverageTest): + # // polynomial [1,0,0,1] + # arima wpi c t3, arima(3,0,2) noconstant vce(oim) + # save_results 20 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (3,0,2) + kwargs['trend'] = [1,0,0,1] + super(Test_arma_trend_polynomial, cls).setup_class(19, *args, **kwargs) + # Modify true params to convert from mean to intercept form + cls.true_params[:2] = (1 - cls.true_params[2:5].sum()) * cls.true_params[:2] + +class Test_arma_diff(SARIMAXCoverageTest): + # // ARMA and I(d): (p,d,q) x (0,0,0,0) + # arima wpi, arima(3,2,2) noconstant vce(oim) + # save_results 21 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (3,2,2) + super(Test_arma_diff, cls).setup_class(20, *args, **kwargs) + +class Test_arma_seasonal_diff(SARIMAXCoverageTest): + # // ARMA and I(D): (p,0,q) x (0,D,0,s) + # arima wpi, arima(3,0,2) sarima(0,2,0,4) noconstant vce(oim) + # save_results 22 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (3,0,2) + kwargs['seasonal_order'] = (0,2,0,4) + super(Test_arma_seasonal_diff, cls).setup_class(21, *args, **kwargs) + +class Test_arma_diff_seasonal_diff(SARIMAXCoverageTest): + # // ARMA and I(d) and I(D): (p,d,q) x (0,D,0,s) + # arima wpi, arima(3,2,2) sarima(0,2,0,4) noconstant vce(oim) + # save_results 23 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (3,2,2) + kwargs['seasonal_order'] = (0,2,0,4) + super(Test_arma_diff_seasonal_diff, cls).setup_class(22, *args, **kwargs) + +class Test_arma_diffuse(SARIMAXCoverageTest): + # // ARMA and diffuse initialization + # arima wpi, arima(3,0,2) noconstant vce(oim) diffuse + # save_results 24 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (3,0,2) + kwargs['initialization'] = 'approximate_diffuse' + kwargs['initial_variance'] = 1e9 + super(Test_arma_diffuse, cls).setup_class(23, *args, **kwargs) + +class Test_arma_exogenous(SARIMAXCoverageTest): + # // ARMAX + # arima wpi x, arima(3,0,2) noconstant vce(oim) + # save_results 25 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (3,0,2) + endog = results_sarimax.wpi1_data + kwargs['exog'] = (endog - np.floor(endog))**2 + super(Test_arma_exogenous, cls).setup_class(24, *args, **kwargs) + +class Test_seasonal_ar(SARIMAXCoverageTest): + # // SAR: (0,0,0) x (P,0,0,s) + # arima wpi, sarima(3,0,0,4) noconstant vce(oim) + # save_results 26 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (0,0,0) + kwargs['seasonal_order'] = (3,0,0,4) + super(Test_seasonal_ar, cls).setup_class(25, *args, **kwargs) + +class Test_seasonal_ar_as_polynomial(SARIMAXCoverageTest): + # // SAR: (0,0,0) x (P,0,0,s) + # arima wpi, sarima(3,0,0,4) noconstant vce(oim) + # save_results 26 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (0,0,0) + kwargs['seasonal_order'] = ([1,1,1],0,0,4) + super(Test_seasonal_ar_as_polynomial, cls).setup_class(25, *args, **kwargs) + +class Test_seasonal_ar_trend_c(SARIMAXCoverageTest): + # // 'c' + # arima wpi c, sarima(3,0,0,4) noconstant vce(oim) + # save_results 27 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (0,0,0) + kwargs['seasonal_order'] = (3,0,0,4) + kwargs['trend'] = 'c' + super(Test_seasonal_ar_trend_c, cls).setup_class(26, *args, **kwargs) + # Modify true params to convert from mean to intercept form + cls.true_params[:1] = (1 - cls.true_params[1:4].sum()) * cls.true_params[:1] + +class Test_seasonal_ar_trend_ct(SARIMAXCoverageTest): + # // 'ct' + # arima wpi c t, sarima(3,0,0,4) noconstant vce(oim) + # save_results 28 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (0,0,0) + kwargs['seasonal_order'] = (3,0,0,4) + kwargs['trend'] = 'ct' + super(Test_seasonal_ar_trend_ct, cls).setup_class(27, *args, **kwargs) + # Modify true params to convert from mean to intercept form + cls.true_params[:2] = (1 - cls.true_params[2:5].sum()) * cls.true_params[:2] + +class Test_seasonal_ar_trend_polynomial(SARIMAXCoverageTest): + # // polynomial [1,0,0,1] + # arima wpi c t3, sarima(3,0,0,4) noconstant vce(oim) + # save_results 29 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (0,0,0) + kwargs['seasonal_order'] = (3,0,0,4) + kwargs['trend'] = [1,0,0,1] + super(Test_seasonal_ar_trend_polynomial, cls).setup_class(28, *args, **kwargs) + # Modify true params to convert from mean to intercept form + cls.true_params[:2] = (1 - cls.true_params[2:5].sum()) * cls.true_params[:2] + +class Test_seasonal_ar_diff(SARIMAXCoverageTest): + # // SAR and I(d): (0,d,0) x (P,0,0,s) + # arima wpi, arima(0,2,0) sarima(3,0,0,4) noconstant vce(oim) + # save_results 30 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (0,2,0) + kwargs['seasonal_order'] = (3,0,0,4) + super(Test_seasonal_ar_diff, cls).setup_class(29, *args, **kwargs) + +class Test_seasonal_ar_seasonal_diff(SARIMAXCoverageTest): + # // SAR and I(D): (0,0,0) x (P,D,0,s) + # arima wpi, sarima(3,2,0,4) noconstant vce(oim) + # save_results 31 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (0,0,0) + kwargs['seasonal_order'] = (3,2,0,4) + super(Test_seasonal_ar_seasonal_diff, cls).setup_class(30, *args, **kwargs) + +class Test_seasonal_ar_diffuse(SARIMAXCoverageTest): + # // SAR and diffuse initialization + # arima wpi, sarima(3,0,0,4) noconstant vce(oim) diffuse + # save_results 32 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (0,0,0) + kwargs['seasonal_order'] = (3,0,0,4) + kwargs['initialization'] = 'approximate_diffuse' + kwargs['initial_variance'] = 1e9 + super(Test_seasonal_ar_diffuse, cls).setup_class(31, *args, **kwargs) + +class Test_seasonal_ar_exogenous(SARIMAXCoverageTest): + # // SARX + # arima wpi x, sarima(3,0,0,4) noconstant vce(oim) + # save_results 33 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (0,0,0) + kwargs['seasonal_order'] = (3,0,0,4) + endog = results_sarimax.wpi1_data + kwargs['exog'] = (endog - np.floor(endog))**2 + super(Test_seasonal_ar_exogenous, cls).setup_class(32, *args, **kwargs) + +class Test_seasonal_ma(SARIMAXCoverageTest): + # // SMA + # arima wpi, sarima(0,0,3,4) noconstant vce(oim) + # save_results 34 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (0,0,0) + kwargs['seasonal_order'] = (0,0,3,4) + super(Test_seasonal_ma, cls).setup_class(33, *args, **kwargs) + +class Test_seasonal_ma_as_polynomial(SARIMAXCoverageTest): + # // SMA + # arima wpi, sarima(0,0,3,4) noconstant vce(oim) + # save_results 34 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (0,0,0) + kwargs['seasonal_order'] = (0,0,[1,1,1],4) + super(Test_seasonal_ma_as_polynomial, cls).setup_class(33, *args, **kwargs) + +class Test_seasonal_ma_trend_c(SARIMAXCoverageTest): + # // 'c' + # arima wpi c, sarima(0,0,3,4) noconstant vce(oim) + # save_results 35 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (0,0,0) + kwargs['seasonal_order'] = (0,0,3,4) + kwargs['trend'] = 'c' + kwargs['decimal'] = 3 + super(Test_seasonal_ma_trend_c, cls).setup_class(34, *args, **kwargs) + +class Test_seasonal_ma_trend_ct(SARIMAXCoverageTest): + # // 'ct' + # arima wpi c t, sarima(0,0,3,4) noconstant vce(oim) + # save_results 36 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (0,0,0) + kwargs['seasonal_order'] = (0,0,3,4) + kwargs['trend'] = 'ct' + super(Test_seasonal_ma_trend_ct, cls).setup_class(35, *args, **kwargs) + +class Test_seasonal_ma_trend_polynomial(SARIMAXCoverageTest): + # // polynomial [1,0,0,1] + # arima wpi c t3, sarima(0,0,3,4) noconstant vce(oim) + # save_results 37 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (0,0,0) + kwargs['seasonal_order'] = (0,0,3,4) + kwargs['trend'] = [1,0,0,1] + kwargs['decimal'] = 3 + super(Test_seasonal_ma_trend_polynomial, cls).setup_class(36, *args, **kwargs) + +class Test_seasonal_ma_diff(SARIMAXCoverageTest): + # // SMA and I(d): (0,d,0) x (0,0,Q,s) + # arima wpi, arima(0,2,0) sarima(0,0,3,4) noconstant vce(oim) + # save_results 38 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (0,2,0) + kwargs['seasonal_order'] = (0,0,3,4) + super(Test_seasonal_ma_diff, cls).setup_class(37, *args, **kwargs) + +class Test_seasonal_ma_seasonal_diff(SARIMAXCoverageTest): + # // SMA and I(D): (0,0,0) x (0,D,Q,s) + # arima wpi, sarima(0,2,3,4) noconstant vce(oim) + # save_results 39 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (0,0,0) + kwargs['seasonal_order'] = (0,2,3,4) + super(Test_seasonal_ma_seasonal_diff, cls).setup_class(38, *args, **kwargs) + +class Test_seasonal_ma_diffuse(SARIMAXCoverageTest): + # // SMA and diffuse initialization + # arima wpi, sarima(0,0,3,4) noconstant vce(oim) diffuse + # save_results 40 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (0,0,0) + kwargs['seasonal_order'] = (0,0,3,4) + kwargs['initialization'] = 'approximate_diffuse' + kwargs['initial_variance'] = 1e9 + super(Test_seasonal_ma_diffuse, cls).setup_class(39, *args, **kwargs) + +class Test_seasonal_ma_exogenous(SARIMAXCoverageTest): + # // SMAX + # arima wpi x, sarima(0,0,3,4) noconstant vce(oim) + # save_results 41 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (0,0,0) + kwargs['seasonal_order'] = (0,0,3,4) + endog = results_sarimax.wpi1_data + kwargs['exog'] = (endog - np.floor(endog))**2 + super(Test_seasonal_ma_exogenous, cls).setup_class(40, *args, **kwargs) + +class Test_seasonal_arma(SARIMAXCoverageTest): + # // SARMA: (0,0,0) x (P,0,Q,s) + # arima wpi, sarima(3,0,2,4) noconstant vce(oim) + # save_results 42 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (0,0,0) + kwargs['seasonal_order'] = (3,0,2,4) + super(Test_seasonal_arma, cls).setup_class(41, *args, **kwargs) + +class Test_seasonal_arma_trend_c(SARIMAXCoverageTest): + # // 'c' + # arima wpi c, sarima(3,0,2,4) noconstant vce(oim) + # save_results 43 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (0,0,0) + kwargs['seasonal_order'] = (3,0,2,4) + kwargs['trend'] = 'c' + super(Test_seasonal_arma_trend_c, cls).setup_class(42, *args, **kwargs) + # Modify true params to convert from mean to intercept form + cls.true_params[:1] = (1 - cls.true_params[1:4].sum()) * cls.true_params[:1] + +class Test_seasonal_arma_trend_ct(SARIMAXCoverageTest): + # // 'ct' + # arima wpi c t, sarima(3,0,2,4) noconstant vce(oim) + # save_results 44 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (0,0,0) + kwargs['seasonal_order'] = (3,0,2,4) + kwargs['trend'] = 'ct' + super(Test_seasonal_arma_trend_ct, cls).setup_class(43, *args, **kwargs) + # Modify true params to convert from mean to intercept form + cls.true_params[:2] = (1 - cls.true_params[2:5].sum()) * cls.true_params[:2] + +class Test_seasonal_arma_trend_polynomial(SARIMAXCoverageTest): + # // polynomial [1,0,0,1] + # arima wpi c t3, sarima(3,0,2,4) noconstant vce(oim) + # save_results 45 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (0,0,0) + kwargs['seasonal_order'] = (3,0,2,4) + kwargs['trend'] = [1,0,0,1] + kwargs['decimal'] = 3 + super(Test_seasonal_arma_trend_polynomial, cls).setup_class(44, *args, **kwargs) + # Modify true params to convert from mean to intercept form + cls.true_params[:2] = (1 - cls.true_params[2:5].sum()) * cls.true_params[:2] + + def test_results(self): + self.result = self.model.filter(self.true_params) + + # Just make sure that no exceptions are thrown during summary + self.result.summary() + + # Make sure that no exceptions are thrown during plot_diagnostics + if have_matplotlib: + fig = self.result.plot_diagnostics() + plt.close(fig) + + # And make sure no expections are thrown calculating any of the + # covariance matrix types + self.result.cov_params_default + # Known failure due to the complex step inducing non-stationary + # parameters, causing a failure in the solve_discrete_lyapunov call + # self.result.cov_params_approx + self.result.cov_params_oim + self.result.cov_params_opg + +class Test_seasonal_arma_diff(SARIMAXCoverageTest): + # // SARMA and I(d): (0,d,0) x (P,0,Q,s) + # arima wpi, arima(0,2,0) sarima(3,0,2,4) noconstant vce(oim) + # save_results 46 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (0,2,0) + kwargs['seasonal_order'] = (3,0,2,4) + super(Test_seasonal_arma_diff, cls).setup_class(45, *args, **kwargs) + +class Test_seasonal_arma_seasonal_diff(SARIMAXCoverageTest): + # // SARMA and I(D): (0,0,0) x (P,D,Q,s) + # arima wpi, sarima(3,2,2,4) noconstant vce(oim) + # save_results 47 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (0,0,0) + kwargs['seasonal_order'] = (3,2,2,4) + super(Test_seasonal_arma_seasonal_diff, cls).setup_class(46, *args, **kwargs) + +class Test_seasonal_arma_diff_seasonal_diff(SARIMAXCoverageTest): + # // SARMA and I(d) and I(D): (0,d,0) x (P,D,Q,s) + # arima wpi, arima(0,2,0) sarima(3,2,2,4) noconstant vce(oim) + # save_results 48 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (0,2,0) + kwargs['seasonal_order'] = (3,2,2,4) + super(Test_seasonal_arma_diff_seasonal_diff, cls).setup_class(47, *args, **kwargs) + + def test_results(self): + self.result = self.model.filter(self.true_params) + + # Just make sure that no exceptions are thrown during summary + self.result.summary() + + # Make sure that no exceptions are thrown during plot_diagnostics + if have_matplotlib: + fig = self.result.plot_diagnostics() + plt.close(fig) + + # And make sure no expections are thrown calculating any of the + # covariance matrix types + self.result.cov_params_default + # Known failure due to the complex step inducing non-stationary + # parameters, causing a failure in the solve_discrete_lyapunov call + # self.result.cov_params_approx + self.result.cov_params_oim + self.result.cov_params_opg + +class Test_seasonal_arma_diffuse(SARIMAXCoverageTest): + # // SARMA and diffuse initialization + # arima wpi, sarima(3,0,2,4) noconstant vce(oim) diffuse + # save_results 49 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (0,0,0) + kwargs['seasonal_order'] = (3,0,2,4) + kwargs['decimal'] = 3 + kwargs['initialization'] = 'approximate_diffuse' + kwargs['initial_variance'] = 1e9 + super(Test_seasonal_arma_diffuse, cls).setup_class(48, *args, **kwargs) + +class Test_seasonal_arma_exogenous(SARIMAXCoverageTest): + # // SARMAX + # arima wpi x, sarima(3,0,2,4) noconstant vce(oim) + # save_results 50 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (0,0,0) + kwargs['seasonal_order'] = (3,0,2,4) + endog = results_sarimax.wpi1_data + kwargs['exog'] = (endog - np.floor(endog))**2 + super(Test_seasonal_arma_exogenous, cls).setup_class(49, *args, **kwargs) + +class Test_sarimax_exogenous(SARIMAXCoverageTest): + # // SARIMAX and exogenous + # arima wpi x, arima(3,2,2) sarima(3,2,2,4) noconstant vce(oim) + # save_results 51 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (3,2,2) + kwargs['seasonal_order'] = (3,2,2,4) + endog = results_sarimax.wpi1_data + kwargs['exog'] = (endog - np.floor(endog))**2 + super(Test_sarimax_exogenous, cls).setup_class(50, *args, **kwargs) + +class Test_sarimax_exogenous_not_hamilton(SARIMAXCoverageTest): + # // SARIMAX and exogenous + # arima wpi x, arima(3,2,2) sarima(3,2,2,4) noconstant vce(oim) + # save_results 51 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (3,2,2) + kwargs['seasonal_order'] = (3,2,2,4) + endog = results_sarimax.wpi1_data + kwargs['exog'] = (endog - np.floor(endog))**2 + kwargs['hamilton_representation'] = False + kwargs['simple_differencing'] = False + super(Test_sarimax_exogenous_not_hamilton, cls).setup_class(50, *args, **kwargs) + +class Test_sarimax_exogenous_diffuse(SARIMAXCoverageTest): + # // SARIMAX and exogenous diffuse + # arima wpi x, arima(3,2,2) sarima(3,2,2,4) noconstant vce(oim) diffuse + # save_results 52 + @classmethod + def setup_class(cls, *args, **kwargs): + kwargs['order'] = (3,2,2) + kwargs['seasonal_order'] = (3,2,2,4) + endog = results_sarimax.wpi1_data + kwargs['exog'] = (endog - np.floor(endog))**2 + kwargs['decimal'] = 2 + kwargs['initialization'] = 'approximate_diffuse' + kwargs['initial_variance'] = 1e9 + super(Test_sarimax_exogenous_diffuse, cls).setup_class(51, *args, **kwargs) + +class Test_arma_exog_trend_polynomial_missing(SARIMAXCoverageTest): + # // ARMA and exogenous and trend polynomial and missing + # gen wpi2 = wpi + # replace wpi2 = . in 10/19 + # arima wpi2 x c t3, arima(3,0,2) noconstant vce(oim) + # save_results 53 + @classmethod + def setup_class(cls, *args, **kwargs): + endog = np.r_[results_sarimax.wpi1_data] + # Note we're using the non-missing exog data + kwargs['exog'] = ((endog - np.floor(endog))**2)[1:] + endog[9:19] = np.nan + endog = endog[1:] - endog[:-1] + endog[9] = np.nan + kwargs['order'] = (3,0,2) + kwargs['trend'] = [0,0,0,1] + kwargs['decimal'] = 1 + super(Test_arma_exog_trend_polynomial_missing, cls).setup_class(52, endog=endog, *args, **kwargs) + # Modify true params to convert from mean to intercept form + cls.true_params[0] = (1 - cls.true_params[2:5].sum()) * cls.true_params[0] + +# Miscellaneous coverage tests +def test_simple_time_varying(): + # This tests time-varying parameters regression when in fact the parameters + # are not time-varying, and in fact the regression fit is perfect + endog = np.arange(100)*1.0 + exog = 2*endog + mod = sarimax.SARIMAX(endog, exog=exog, order=(0,0,0), time_varying_regression=True, mle_regression=False) + + # Ignore the warning that MLE doesn't converge + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + res = mod.fit(disp=-1) + + # Test that the estimated variances of the errors are essentially zero + # 5 digits necessary to accommodate 32-bit numpy / scipy with OpenBLAS 0.2.18 + assert_almost_equal(res.params, [0, 0], 5) + + # Test that the time-varying coefficients are all 0.5 (except the first + # one) + assert_almost_equal(res.filter_results.filtered_state[0][1:], [0.5]*99, 9) + +def test_invalid_time_varying(): + assert_raises(ValueError, sarimax.SARIMAX, endog=[1,2,3], mle_regression=True, time_varying_regression=True) + +def test_manual_stationary_initialization(): + endog = results_sarimax.wpi1_data + + # Create the first model to compare against + mod1 = sarimax.SARIMAX(endog, order=(3,0,0)) + res1 = mod1.filter([0.5,0.2,0.1,1]) + + # Create a second model with "known" initialization + mod2 = sarimax.SARIMAX(endog, order=(3,0,0)) + mod2.ssm.initialize_known(res1.filter_results.initial_state, + res1.filter_results.initial_state_cov) + mod2.initialize_state() # a noop in this case (include for coverage) + res2 = mod2.filter([0.5,0.2,0.1,1]) + + # Create a third model with "known" initialization, but specified in kwargs + mod3 = sarimax.SARIMAX(endog, order=(3,0,0), + initialization='known', + initial_state=res1.filter_results.initial_state, + initial_state_cov=res1.filter_results.initial_state_cov) + res3 = mod3.filter([0.5,0.2,0.1,1]) + + # Create the forth model with stationary initialization specified in kwargs + mod4 = sarimax.SARIMAX(endog, order=(3,0,0), initialization='stationary') + res4 = mod4.filter([0.5,0.2,0.1,1]) + + # Just test a couple of things to make sure the results are the same + assert_almost_equal(res1.llf, res2.llf) + assert_almost_equal(res1.filter_results.filtered_state, + res2.filter_results.filtered_state) + + assert_almost_equal(res1.llf, res3.llf) + assert_almost_equal(res1.filter_results.filtered_state, + res3.filter_results.filtered_state) + + assert_almost_equal(res1.llf, res4.llf) + assert_almost_equal(res1.filter_results.filtered_state, + res4.filter_results.filtered_state) + +def test_manual_approximate_diffuse_initialization(): + endog = results_sarimax.wpi1_data + + # Create the first model to compare against + mod1 = sarimax.SARIMAX(endog, order=(3,0,0)) + mod1.ssm.initialize_approximate_diffuse(1e9) + res1 = mod1.filter([0.5,0.2,0.1,1]) + + # Create a second model with "known" initialization + mod2 = sarimax.SARIMAX(endog, order=(3,0,0)) + mod2.ssm.initialize_known(res1.filter_results.initial_state, + res1.filter_results.initial_state_cov) + mod2.initialize_state() # a noop in this case (include for coverage) + res2 = mod2.filter([0.5,0.2,0.1,1]) + + # Create a third model with "known" initialization, but specified in kwargs + mod3 = sarimax.SARIMAX(endog, order=(3,0,0), + initialization='known', + initial_state=res1.filter_results.initial_state, + initial_state_cov=res1.filter_results.initial_state_cov) + res3 = mod3.filter([0.5,0.2,0.1,1]) + + # Create the forth model with approximate diffuse initialization specified + # in kwargs + mod4 = sarimax.SARIMAX(endog, order=(3,0,0), + initialization='approximate_diffuse', + initial_variance=1e9) + res4 = mod4.filter([0.5,0.2,0.1,1]) + + # Just test a couple of things to make sure the results are the same + assert_almost_equal(res1.llf, res2.llf) + assert_almost_equal(res1.filter_results.filtered_state, + res2.filter_results.filtered_state) + + assert_almost_equal(res1.llf, res3.llf) + assert_almost_equal(res1.filter_results.filtered_state, + res3.filter_results.filtered_state) + + assert_almost_equal(res1.llf, res4.llf) + assert_almost_equal(res1.filter_results.filtered_state, + res4.filter_results.filtered_state) + +def test_results(): + endog = results_sarimax.wpi1_data + + mod = sarimax.SARIMAX(endog, order=(1,0,1)) + res = mod.filter([0.5,-0.5,1], cov_type='oim') + + assert_almost_equal(res.arroots, 2.) + assert_almost_equal(res.maroots, 2.) + + assert_almost_equal(res.arfreq, np.arctan2(0, 2) / (2*np.pi)) + assert_almost_equal(res.mafreq, np.arctan2(0, 2) / (2*np.pi)) + + assert_almost_equal(res.arparams, [0.5]) + assert_almost_equal(res.maparams, [-0.5]) + + +def test_misc_exog(): + # Tests for missing data + nobs = 20 + k_endog = 1 + np.random.seed(1208) + endog = np.random.normal(size=(nobs, k_endog)) + endog[:4, 0] = np.nan + exog1 = np.random.normal(size=(nobs, 1)) + exog2 = np.random.normal(size=(nobs, 2)) + + index = pd.date_range('1970-01-01', freq='QS', periods=nobs) + endog_pd = pd.DataFrame(endog, index=index) + exog1_pd = pd.Series(exog1.squeeze(), index=index) + exog2_pd = pd.DataFrame(exog2, index=index) + + models = [ + sarimax.SARIMAX(endog, exog=exog1, order=(1, 1, 0)), + sarimax.SARIMAX(endog, exog=exog2, order=(1, 1, 0)), + sarimax.SARIMAX(endog, exog=exog2, order=(1, 1, 0), + simple_differencing=False), + sarimax.SARIMAX(endog_pd, exog=exog1_pd, order=(1, 1, 0)), + sarimax.SARIMAX(endog_pd, exog=exog2_pd, order=(1, 1, 0)), + sarimax.SARIMAX(endog_pd, exog=exog2_pd, order=(1, 1, 0), + simple_differencing=False), + ] + + for mod in models: + # Smoke tests + mod.start_params + res = mod.fit(disp=False) + res.summary() + res.predict() + res.predict(dynamic=True) + res.get_prediction() + + oos_exog = np.random.normal(size=(1, mod.k_exog)) + res.forecast(steps=1, exog=oos_exog) + res.get_forecast(steps=1, exog=oos_exog) + + # Smoke tests for invalid exog + oos_exog = np.random.normal(size=(1)) + assert_raises(ValueError, res.forecast, steps=1, exog=oos_exog) + + oos_exog = np.random.normal(size=(2, mod.k_exog)) + assert_raises(ValueError, res.forecast, steps=1, exog=oos_exog) + + oos_exog = np.random.normal(size=(1, mod.k_exog + 1)) + assert_raises(ValueError, res.forecast, steps=1, exog=oos_exog) + + # Test invalid model specifications + assert_raises(ValueError, sarimax.SARIMAX, endog, exog=np.zeros((10, 4)), + order=(1, 1, 0)) diff --git a/statsmodels/tsa/statespace/tests/test_simulate.py b/statsmodels/tsa/statespace/tests/test_simulate.py new file mode 100644 index 0000000..427bdcd --- /dev/null +++ b/statsmodels/tsa/statespace/tests/test_simulate.py @@ -0,0 +1,459 @@ +""" +Tests for simulation of time series + +Author: Chad Fulton +License: Simplified-BSD +""" + +from __future__ import division, absolute_import, print_function + +import warnings +import numpy as np +import pandas as pd +import os +from scipy.signal import lfilter + +from statsmodels.tsa.statespace import (sarimax, structural, varmax, + dynamic_factor) +from numpy.testing import (assert_allclose, assert_almost_equal, assert_equal, + assert_raises) +from nose.exc import SkipTest + + +def test_arma_lfilter(): + # Tests of an ARMA model simulation against scipy.signal.lfilter + # Note: the first elements of the generated SARIMAX datasets are based on + # the initial state, so we don't include them in the comparisons + np.random.seed(10239) + nobs = 100 + eps = np.random.normal(size=nobs) + + # AR(1) + mod = sarimax.SARIMAX([0], order=(1, 0, 0)) + actual = mod.simulate([0.5, 1.], nobs + 1, state_shocks=np.r_[eps, 0]) + desired = lfilter([1], [1, -0.5], eps) + assert_allclose(actual[1:], desired) + + # MA(1) + mod = sarimax.SARIMAX([0], order=(0, 0, 1)) + actual = mod.simulate([0.5, 1.], nobs + 1, state_shocks=np.r_[eps, 0]) + desired = lfilter([1, 0.5], [1], eps) + assert_allclose(actual[1:], desired) + + # ARMA(1, 1) + mod = sarimax.SARIMAX([0], order=(1, 0, 1)) + actual = mod.simulate([0.5, 0.2, 1.], nobs + 1, state_shocks=np.r_[eps, 0]) + desired = lfilter([1, 0.2], [1, -0.5], eps) + assert_allclose(actual[1:], desired) + + +def test_arma_direct(): + # Tests of an ARMA model simulation against direct construction + # This is useful for e.g. trend components + # Note: the first elements of the generated SARIMAX datasets are based on + # the initial state, so we don't include them in the comparisons + np.random.seed(10239) + nobs = 100 + eps = np.random.normal(size=nobs) + exog = np.random.normal(size=nobs) + + # AR(1) + mod = sarimax.SARIMAX([0], order=(1, 0, 0)) + actual = mod.simulate([0.5, 1.], nobs + 1, state_shocks=np.r_[eps, 0]) + desired = np.zeros(nobs) + for i in range(nobs): + if i == 0: + desired[i] = eps[i] + else: + desired[i] = 0.5 * desired[i - 1] + eps[i] + assert_allclose(actual[1:], desired) + + # MA(1) + mod = sarimax.SARIMAX([0], order=(0, 0, 1)) + actual = mod.simulate([0.5, 1.], nobs + 1, state_shocks=np.r_[eps, 0]) + desired = np.zeros(nobs) + for i in range(nobs): + if i == 0: + desired[i] = eps[i] + else: + desired[i] = 0.5 * eps[i - 1] + eps[i] + assert_allclose(actual[1:], desired) + + # ARMA(1, 1) + mod = sarimax.SARIMAX([0], order=(1, 0, 1)) + actual = mod.simulate([0.5, 0.2, 1.], nobs + 1, state_shocks=np.r_[eps, 0]) + desired = np.zeros(nobs) + for i in range(nobs): + if i == 0: + desired[i] = eps[i] + else: + desired[i] = 0.5 * desired[i - 1] + 0.2 * eps[i - 1] + eps[i] + assert_allclose(actual[1:], desired) + + # ARMA(1, 1) + intercept + mod = sarimax.SARIMAX([0], order=(1, 0, 1), trend='c') + actual = mod.simulate([1.3, 0.5, 0.2, 1.], nobs + 1, + state_shocks=np.r_[eps, 0]) + desired = np.zeros(nobs) + for i in range(nobs): + trend = 1.3 + if i == 0: + desired[i] = trend + eps[i] + else: + desired[i] = (trend + 0.5 * desired[i - 1] + + 0.2 * eps[i - 1] + eps[i]) + assert_allclose(actual[1:], desired) + + # ARMA(1, 1) + intercept + time trend + # Note: to allow time-varying SARIMAX to simulate 101 observations, need to + # give it 101 observations up front + mod = sarimax.SARIMAX(np.zeros(nobs + 1), order=(1, 0, 1), trend='ct') + actual = mod.simulate([1.3, 0.2, 0.5, 0.2, 1.], nobs + 1, + state_shocks=np.r_[eps, 0]) + desired = np.zeros(nobs) + for i in range(nobs): + trend = 1.3 + 0.2 * (i + 1) + if i == 0: + desired[i] = trend + eps[i] + else: + desired[i] = (trend + 0.5 * desired[i - 1] + + 0.2 * eps[i - 1] + eps[i]) + assert_allclose(actual[1:], desired) + + # ARMA(1, 1) + intercept + time trend + exog + # Note: to allow time-varying SARIMAX to simulate 101 observations, need to + # give it 101 observations up front + # Note: the model is regression with SARIMAX errors, so the exog is + # introduced into the observation equation rather than the ARMA part + mod = sarimax.SARIMAX(np.zeros(nobs + 1), exog=np.r_[0, exog], + order=(1, 0, 1), trend='ct') + actual = mod.simulate([1.3, 0.2, -0.5, 0.5, 0.2, 1.], nobs + 1, + state_shocks=np.r_[eps, 0]) + desired = np.zeros(nobs) + for i in range(nobs): + trend = 1.3 + 0.2 * (i + 1) + if i == 0: + desired[i] = trend + eps[i] + else: + desired[i] = (trend + 0.5 * desired[i - 1] + + 0.2 * eps[i - 1] + eps[i]) + desired = desired - 0.5 * exog + assert_allclose(actual[1:], desired) + + +def test_structural(): + # Clear warnings + structural.__warningregistry__ = {} + + np.random.seed(38947) + nobs = 100 + eps = np.random.normal(size=nobs) + exog = np.random.normal(size=nobs) + + eps1 = np.zeros(nobs) + eps2 = np.zeros(nobs) + eps2[49] = 1 + eps3 = np.zeros(nobs) + eps3[50:] = 1 + + # AR(1) + mod1 = structural.UnobservedComponents([0], autoregressive=1) + mod2 = sarimax.SARIMAX([0], order=(1, 0, 0)) + actual = mod1.simulate([1, 0.5], nobs, state_shocks=eps) + desired = mod2.simulate([0.5, 1], nobs, state_shocks=eps) + assert_allclose(actual, desired) + + # ARX(1) + mod1 = structural.UnobservedComponents(np.zeros(nobs), exog=exog, + autoregressive=1) + mod2 = sarimax.SARIMAX(np.zeros(nobs), exog=exog, order=(1, 0, 0)) + actual = mod1.simulate([1, 0.5, 0.2], nobs, state_shocks=eps) + desired = mod2.simulate([0.2, 0.5, 1], nobs, state_shocks=eps) + assert_allclose(actual, desired) + + # Irregular + mod = structural.UnobservedComponents([0], 'irregular') + actual = mod.simulate([1.], nobs, measurement_shocks=eps) + assert_allclose(actual, eps) + + # Fixed intercept + # (in practice this is a deterministic constant, because an irregular + # component must be added) + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + mod = structural.UnobservedComponents([0], 'fixed intercept') + actual = mod.simulate([1.], nobs, measurement_shocks=eps, + initial_state=[10]) + assert_allclose(actual, 10 + eps) + + # Deterministic constant + mod = structural.UnobservedComponents([0], 'deterministic constant') + actual = mod.simulate([1.], nobs, measurement_shocks=eps, + initial_state=[10]) + assert_allclose(actual, 10 + eps) + + # Local level + mod = structural.UnobservedComponents([0], 'local level') + actual = mod.simulate([1., 1.], nobs, measurement_shocks=eps, + state_shocks=eps2) + assert_allclose(actual, eps + eps3) + + # Random walk + mod = structural.UnobservedComponents([0], 'random walk') + actual = mod.simulate([1.], nobs, measurement_shocks=eps, + state_shocks=eps2) + assert_allclose(actual, eps + eps3) + + # Fixed slope + # (in practice this is a deterministic trend, because an irregular + # component must be added) + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + mod = structural.UnobservedComponents([0], 'fixed slope') + actual = mod.simulate([1., 1.], nobs, measurement_shocks=eps, + state_shocks=eps2, initial_state=[0, 1]) + assert_allclose(actual, eps + np.arange(100)) + + # Deterministic trend + mod = structural.UnobservedComponents([0], 'deterministic trend') + actual = mod.simulate([1.], nobs, measurement_shocks=eps, + state_shocks=eps2, initial_state=[0, 1]) + assert_allclose(actual, eps + np.arange(100)) + + # Local linear deterministic trend + mod = structural.UnobservedComponents( + [0], 'local linear deterministic trend') + actual = mod.simulate([1., 1.], nobs, measurement_shocks=eps, + state_shocks=eps2, initial_state=[0, 1]) + desired = eps + np.r_[np.arange(50), 1 + np.arange(50, 100)] + assert_allclose(actual, desired) + + # Random walk with drift + mod = structural.UnobservedComponents([0], 'random walk with drift') + actual = mod.simulate([1.], nobs, state_shocks=eps2, + initial_state=[0, 1]) + desired = np.r_[np.arange(50), 1 + np.arange(50, 100)] + assert_allclose(actual, desired) + + # Local linear trend + mod = structural.UnobservedComponents([0], 'local linear trend') + actual = mod.simulate([1., 1., 1.], nobs, measurement_shocks=eps, + state_shocks=np.c_[eps2, eps1], initial_state=[0, 1]) + desired = eps + np.r_[np.arange(50), 1 + np.arange(50, 100)] + assert_allclose(actual, desired) + + actual = mod.simulate([1., 1., 1.], nobs, measurement_shocks=eps, + state_shocks=np.c_[eps1, eps2], initial_state=[0, 1]) + desired = eps + np.r_[np.arange(50), np.arange(50, 150, 2)] + assert_allclose(actual, desired) + + # Smooth trend + mod = structural.UnobservedComponents([0], 'smooth trend') + actual = mod.simulate([1., 1.], nobs, measurement_shocks=eps, + state_shocks=eps1, initial_state=[0, 1]) + desired = eps + np.r_[np.arange(100)] + assert_allclose(actual, desired) + + actual = mod.simulate([1., 1.], nobs, measurement_shocks=eps, + state_shocks=eps2, initial_state=[0, 1]) + desired = eps + np.r_[np.arange(50), np.arange(50, 150, 2)] + assert_allclose(actual, desired) + + # Random trend + mod = structural.UnobservedComponents([0], 'random trend') + actual = mod.simulate([1., 1.], nobs, + state_shocks=eps1, initial_state=[0, 1]) + desired = np.r_[np.arange(100)] + assert_allclose(actual, desired) + + actual = mod.simulate([1., 1.], nobs, + state_shocks=eps2, initial_state=[0, 1]) + desired = np.r_[np.arange(50), np.arange(50, 150, 2)] + assert_allclose(actual, desired) + + # Seasonal (deterministic) + mod = structural.UnobservedComponents([0], 'irregular', seasonal=2, + stochastic_seasonal=False) + actual = mod.simulate([1.], nobs, measurement_shocks=eps, + initial_state=[10]) + desired = eps + np.tile([10, -10], 50) + assert_allclose(actual, desired) + + # Seasonal (stochastic) + mod = structural.UnobservedComponents([0], 'irregular', seasonal=2) + actual = mod.simulate([1., 1.], nobs, measurement_shocks=eps, + state_shocks=eps2, initial_state=[10]) + desired = eps + np.r_[np.tile([10, -10], 25), np.tile([11, -11], 25)] + assert_allclose(actual, desired) + + # Cycle (deterministic) + mod = structural.UnobservedComponents([0], 'irregular', cycle=True) + actual = mod.simulate([1., 1.2], nobs, measurement_shocks=eps, + initial_state=[1, 0]) + x1 = [np.cos(1.2), np.sin(1.2)] + x2 = [-np.sin(1.2), np.cos(1.2)] + T = np.array([x1, x2]) + desired = eps + states = [1, 0] + for i in range(nobs): + desired[i] += states[0] + states = np.dot(T, states) + assert_allclose(actual, desired) + + # Cycle (stochastic) + mod = structural.UnobservedComponents([0], 'irregular', cycle=True, + stochastic_cycle=True) + actual = mod.simulate([1., 1., 1.2], nobs, measurement_shocks=eps, + state_shocks=np.c_[eps2, eps2], initial_state=[1, 0]) + x1 = [np.cos(1.2), np.sin(1.2)] + x2 = [-np.sin(1.2), np.cos(1.2)] + T = np.array([x1, x2]) + desired = eps + states = [1, 0] + for i in range(nobs): + desired[i] += states[0] + states = np.dot(T, states) + eps2[i] + assert_allclose(actual, desired) + + +def test_varmax(): + # Clear warnings + varmax.__warningregistry__ = {} + + np.random.seed(371934) + nobs = 100 + eps = np.random.normal(size=nobs) + exog = np.random.normal(size=(nobs, 1)) + + eps1 = np.zeros(nobs) + eps2 = np.zeros(nobs) + eps2[49] = 1 + eps3 = np.zeros(nobs) + eps3[50:] = 1 + + # VAR(2) - single series + mod1 = varmax.VARMAX([[0]], order=(2, 0), trend='nc') + mod2 = sarimax.SARIMAX([0], order=(2, 0, 0)) + actual = mod1.simulate([0.5, 0.2, 1], nobs, state_shocks=eps) + desired = mod2.simulate([0.5, 0.2, 1], nobs, state_shocks=eps) + assert_allclose(actual, desired) + + # VMA(2) - single series + mod1 = varmax.VARMAX([[0]], order=(0, 2), trend='nc') + mod2 = sarimax.SARIMAX([0], order=(0, 0, 2)) + actual = mod1.simulate([0.5, 0.2, 1], nobs, state_shocks=eps) + desired = mod2.simulate([0.5, 0.2, 1], nobs, state_shocks=eps) + assert_allclose(actual, desired) + + # VARMA(2, 2) - single series + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + mod1 = varmax.VARMAX([[0]], order=(2, 2), trend='nc') + mod2 = sarimax.SARIMAX([0], order=(2, 0, 2)) + actual = mod1.simulate([0.5, 0.2, 0.1, -0.2, 1], nobs, state_shocks=eps) + desired = mod2.simulate([0.5, 0.2, 0.1, -0.2, 1], nobs, state_shocks=eps) + assert_allclose(actual, desired) + + # VARMA(2, 2) + trend - single series + mod1 = varmax.VARMAX([[0]], order=(2, 2), trend='c') + mod2 = sarimax.SARIMAX([0], order=(2, 0, 2), trend='c') + actual = mod1.simulate([10, 0.5, 0.2, 0.1, -0.2, 1], nobs, + state_shocks=eps) + desired = mod2.simulate([10, 0.5, 0.2, 0.1, -0.2, 1], nobs, + state_shocks=eps) + assert_allclose(actual, desired) + + # VAR(1) + transition = np.array([[0.5, 0.1], + [-0.1, 0.2]]) + + mod = varmax.VARMAX([[0, 0]], order=(1, 0), trend='nc') + actual = mod.simulate(np.r_[transition.ravel(), 1., 0, 1.], nobs, + state_shocks=np.c_[eps1, eps1]) + assert_allclose(actual, 0) + + actual = mod.simulate(np.r_[transition.ravel(), 1., 0, 1.], nobs, + state_shocks=np.c_[eps1, eps1], initial_state=[1, 1]) + desired = np.zeros((nobs, 2)) + state = np.r_[1, 1] + for i in range(nobs): + desired[i] = state + state = np.dot(transition, state) + assert_allclose(actual, desired) + + # VAR(1) + measurement error + mod = varmax.VARMAX([[0, 0]], order=(1, 0), trend='nc', + measurement_error=True) + actual = mod.simulate(np.r_[transition.ravel(), 1., 0, 1., 1., 1.], nobs, + measurement_shocks=np.c_[eps, eps], + state_shocks=np.c_[eps1, eps1]) + assert_allclose(actual, np.c_[eps, eps]) + + # VARX(1) + mod = varmax.VARMAX(np.zeros((nobs, 2)), order=(1, 0), trend='nc', + exog=exog) + actual = mod.simulate(np.r_[transition.ravel(), 5, -2, 1., 0, 1.], nobs, + state_shocks=np.c_[eps1, eps1], initial_state=[1, 1]) + desired = np.zeros((nobs, 2)) + state = np.r_[1, 1] + for i in range(nobs): + desired[i] = state + state = exog[i] * [5, -2] + np.dot(transition, state) + assert_allclose(actual, desired) + + # VMA(1) + # TODO: This is just a smoke test + mod = varmax.VARMAX( + np.random.normal(size=(nobs, 2)), order=(0, 1), trend='nc') + print(mod.start_params) + mod.simulate(mod.start_params, nobs) + + # VARMA(2, 2) + trend + exog + # TODO: This is just a smoke test + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + mod = varmax.VARMAX( + np.random.normal(size=(nobs, 2)), order=(2, 2), trend='c', + exog=exog) + mod.simulate(mod.start_params, nobs) + + +def test_dynamic_factor(): + np.random.seed(93739) + nobs = 100 + eps = np.random.normal(size=nobs) + exog = np.random.normal(size=(nobs, 1)) + + eps1 = np.zeros(nobs) + eps2 = np.zeros(nobs) + eps2[49] = 1 + eps3 = np.zeros(nobs) + eps3[50:] = 1 + + # DFM: 2 series, AR(2) factor + mod1 = dynamic_factor.DynamicFactor([[0, 0]], k_factors=1, factor_order=2) + mod2 = sarimax.SARIMAX([0], order=(2, 0, 0)) + actual = mod1.simulate([-0.9, 0.8, 1., 1., 0.5, 0.2], nobs, + measurement_shocks=np.c_[eps1, eps1], + state_shocks=eps) + desired = mod2.simulate([0.5, 0.2, 1], nobs, state_shocks=eps) + assert_allclose(actual[:, 0], -0.9 * desired) + assert_allclose(actual[:, 1], 0.8 * desired) + + # DFM: 2 series, AR(2) factor, exog + mod1 = dynamic_factor.DynamicFactor(np.zeros((nobs, 2)), k_factors=1, + factor_order=2, exog=exog) + mod2 = sarimax.SARIMAX([0], order=(2, 0, 0)) + actual = mod1.simulate([-0.9, 0.8, 5, -2, 1., 1., 0.5, 0.2], nobs, + measurement_shocks=np.c_[eps1, eps1], + state_shocks=eps) + desired = mod2.simulate([0.5, 0.2, 1], nobs, state_shocks=eps) + assert_allclose(actual[:, 0], -0.9 * desired + 5 * exog[:, 0]) + assert_allclose(actual[:, 1], 0.8 * desired - 2 * exog[:, 0]) + + # DFM, 3 series, VAR(2) factor, exog, error VAR + # TODO: This is just a smoke test + mod = dynamic_factor.DynamicFactor(np.random.normal(size=(nobs, 3)), + k_factors=2, factor_order=2, exog=exog, + error_order=2, error_var=True) + mod.simulate(mod.start_params, nobs) \ No newline at end of file diff --git a/statsmodels/tsa/statespace/tests/test_smoothing.py b/statsmodels/tsa/statespace/tests/test_smoothing.py new file mode 100644 index 0000000..b51f640 --- /dev/null +++ b/statsmodels/tsa/statespace/tests/test_smoothing.py @@ -0,0 +1,367 @@ +""" +Tests for smoothing and estimation of unobserved states and disturbances + +- Predicted states: :math:`E(\alpha_t | Y_{t-1})` +- Filtered states: :math:`E(\alpha_t | Y_t)` +- Smoothed states: :math:`E(\alpha_t | Y_n)` +- Smoothed disturbances :math:`E(\varepsilon_t | Y_n), E(\eta_t | Y_n)` + +Tested against R (FKF, KalmanRun / KalmanSmooth), Stata (sspace), and +MATLAB (ssm toolbox) + +Author: Chad Fulton +License: Simplified-BSD +""" +from __future__ import division, absolute_import, print_function + +import numpy as np +import pandas as pd +import os + +from statsmodels import datasets +from statsmodels.tsa.statespace import mlemodel, sarimax +from numpy.testing import assert_allclose, assert_almost_equal, assert_raises +from nose.exc import SkipTest + +current_path = os.path.dirname(os.path.abspath(__file__)) + + +class TestStatesAR3(object): + @classmethod + def setup_class(cls, *args, **kwargs): + # Dataset / Stata comparison + path = current_path + os.sep + 'results/results_wpi1_ar3_stata.csv' + cls.stata = pd.read_csv(path) + cls.stata.index = pd.date_range(start='1960-01-01', periods=124, + freq='QS') + # Matlab comparison + path = current_path + os.sep+'results/results_wpi1_ar3_matlab_ssm.csv' + matlab_names = [ + 'a1','a2','a3','detP','alphahat1','alphahat2','alphahat3', + 'detV','eps','epsvar','eta','etavar' + ] + cls.matlab_ssm = pd.read_csv(path, header=None, names=matlab_names) + # Regression tests data + path = current_path + os.sep+'results/results_wpi1_ar3_regression.csv' + cls.regression = pd.read_csv(path) + + cls.model = sarimax.SARIMAX( + cls.stata['wpi'], order=(3, 1, 0), simple_differencing=True, + hamilton_representation=True, *args, **kwargs + ) + + # Parameters from from Stata's sspace MLE estimation + params = np.r_[.5270715, .0952613, .2580355, .5307459] + cls.results = cls.model.smooth(params) + + # Calculate the determinant of the covariance matrices (for easy + # comparison to other languages without having to store 2-dim arrays) + cls.results.det_predicted_state_cov = np.zeros((1, cls.model.nobs)) + cls.results.det_smoothed_state_cov = np.zeros((1, cls.model.nobs)) + for i in range(cls.model.nobs): + cls.results.det_predicted_state_cov[0,i] = np.linalg.det( + cls.results.filter_results.predicted_state_cov[:,:,i]) + cls.results.det_smoothed_state_cov[0,i] = np.linalg.det( + cls.results.smoother_results.smoothed_state_cov[:,:,i]) + + def test_predict_obs(self): + assert_almost_equal( + self.results.filter_results.predict().forecasts[0], + self.stata.ix[1:, 'dep1'], 4 + ) + + def test_standardized_residuals(self): + assert_almost_equal( + self.results.filter_results.standardized_forecasts_error[0], + self.stata.ix[1:, 'sr1'], 4 + ) + + def test_predicted_states(self): + assert_almost_equal( + self.results.filter_results.predicted_state[:,:-1].T, + self.stata.ix[1:, ['sp1', 'sp2', 'sp3']], 4 + ) + assert_almost_equal( + self.results.filter_results.predicted_state[:,:-1].T, + self.matlab_ssm[['a1', 'a2', 'a3']], 4 + ) + + def test_predicted_states_cov(self): + assert_almost_equal( + self.results.det_predicted_state_cov.T, + self.matlab_ssm[['detP']], 4 + ) + + def test_filtered_states(self): + assert_almost_equal( + self.results.filter_results.filtered_state.T, + self.stata.ix[1:, ['sf1', 'sf2', 'sf3']], 4 + ) + + def test_smoothed_states(self): + assert_almost_equal( + self.results.smoother_results.smoothed_state.T, + self.stata.ix[1:, ['sm1', 'sm2', 'sm3']], 4 + ) + assert_almost_equal( + self.results.smoother_results.smoothed_state.T, + self.matlab_ssm[['alphahat1', 'alphahat2', 'alphahat3']], 4 + ) + + def test_smoothed_states_cov(self): + assert_almost_equal( + self.results.det_smoothed_state_cov.T, + self.matlab_ssm[['detV']], 4 + ) + + def test_smoothed_measurement_disturbance(self): + assert_almost_equal( + self.results.smoother_results.smoothed_measurement_disturbance.T, + self.matlab_ssm[['eps']], 4 + ) + + def test_smoothed_measurement_disturbance_cov(self): + res = self.results.smoother_results + assert_almost_equal( + res.smoothed_measurement_disturbance_cov[0].T, + self.matlab_ssm[['epsvar']], 4 + ) + + def test_smoothed_state_disturbance(self): + assert_almost_equal( + self.results.smoother_results.smoothed_state_disturbance.T, + self.matlab_ssm[['eta']], 4 + ) + + def test_smoothed_state_disturbance_cov(self): + assert_almost_equal( + self.results.smoother_results.smoothed_state_disturbance_cov[0].T, + self.matlab_ssm[['etavar']], 4 + ) + + +class TestStatesMissingAR3(object): + @classmethod + def setup_class(cls, *args, **kwargs): + # Dataset + path = current_path + os.sep + 'results/results_wpi1_ar3_stata.csv' + cls.stata = pd.read_csv(path) + cls.stata.index = pd.date_range(start='1960-01-01', periods=124, + freq='QS') + # Matlab comparison + path = current_path + os.sep+'results/results_wpi1_missing_ar3_matlab_ssm.csv' + matlab_names = [ + 'a1','a2','a3','detP','alphahat1','alphahat2','alphahat3', + 'detV','eps','epsvar','eta','etavar' + ] + cls.matlab_ssm = pd.read_csv(path, header=None, names=matlab_names) + # Regression tests data + path = current_path + os.sep+'results/results_wpi1_missing_ar3_regression.csv' + cls.regression = pd.read_csv(path) + + # Create missing observations + cls.stata['dwpi'] = cls.stata['wpi'].diff() + cls.stata.ix[10:21, 'dwpi'] = np.nan + + cls.model = sarimax.SARIMAX( + cls.stata.ix[1:,'dwpi'], order=(3, 0, 0), + hamilton_representation=True, *args, **kwargs + ) + + # Parameters from from Stata's sspace MLE estimation + params = np.r_[.5270715, .0952613, .2580355, .5307459] + cls.results = cls.model.smooth(params, return_ssm=True) + + # Calculate the determinant of the covariance matrices (for easy + # comparison to other languages without having to store 2-dim arrays) + cls.results.det_predicted_state_cov = np.zeros((1, cls.model.nobs)) + cls.results.det_smoothed_state_cov = np.zeros((1, cls.model.nobs)) + for i in range(cls.model.nobs): + cls.results.det_predicted_state_cov[0,i] = np.linalg.det( + cls.results.predicted_state_cov[:,:,i]) + cls.results.det_smoothed_state_cov[0,i] = np.linalg.det( + cls.results.smoothed_state_cov[:,:,i]) + + def test_predicted_states(self): + assert_almost_equal( + self.results.predicted_state[:,:-1].T, + self.matlab_ssm[['a1', 'a2', 'a3']], 4 + ) + + def test_predicted_states_cov(self): + assert_almost_equal( + self.results.det_predicted_state_cov.T, + self.matlab_ssm[['detP']], 4 + ) + + def test_smoothed_states(self): + assert_almost_equal( + self.results.smoothed_state.T, + self.matlab_ssm[['alphahat1', 'alphahat2', 'alphahat3']], 4 + ) + + def test_smoothed_states_cov(self): + assert_almost_equal( + self.results.det_smoothed_state_cov.T, + self.matlab_ssm[['detV']], 4 + ) + + def test_smoothed_measurement_disturbance(self): + assert_almost_equal( + self.results.smoothed_measurement_disturbance.T, + self.matlab_ssm[['eps']], 4 + ) + + def test_smoothed_measurement_disturbance_cov(self): + assert_almost_equal( + self.results.smoothed_measurement_disturbance_cov[0].T, + self.matlab_ssm[['epsvar']], 4 + ) + + +class TestMultivariateMissing(object): + """ + Tests for most filtering and smoothing variables against output from the + R library KFAS. + + Note that KFAS uses the univariate approach which generally will result in + different predicted values and covariance matrices associated with the + measurement equation (e.g. forecasts, etc.). In this case, although the + model is multivariate, each of the series is truly independent so the values + will be the same regardless of whether the univariate approach is used or + not. + """ + @classmethod + def setup_class(cls): + # Results + path = current_path + os.sep + 'results/results_smoothing_R.csv' + cls.desired = pd.read_csv(path) + + # Data + dta = datasets.macrodata.load_pandas().data + dta.index = pd.date_range(start='1959-01-01', end='2009-7-01', freq='QS') + obs = dta[['realgdp','realcons','realinv']].diff().ix[1:] + obs.ix[0:50, 0] = np.nan + obs.ix[19:70, 1] = np.nan + obs.ix[39:90, 2] = np.nan + obs.ix[119:130, 0] = np.nan + obs.ix[119:130, 2] = np.nan + + # Create the model + mod = mlemodel.MLEModel(obs, k_states=3, k_posdef=3) + mod['design'] = np.eye(3) + mod['obs_cov'] = np.eye(3) + mod['transition'] = np.eye(3) + mod['selection'] = np.eye(3) + mod['state_cov'] = np.eye(3) + mod.initialize_approximate_diffuse(1e6) + cls.model = mod + cls.results = mod.smooth([], return_ssm=True) + + # Calculate the determinant of the covariance matrices (for easy + # comparison to other languages without having to store 2-dim arrays) + cls.results.det_scaled_smoothed_estimator_cov = ( + np.zeros((1, cls.model.nobs))) + cls.results.det_predicted_state_cov = np.zeros((1, cls.model.nobs)) + cls.results.det_smoothed_state_cov = np.zeros((1, cls.model.nobs)) + cls.results.det_smoothed_state_disturbance_cov = ( + np.zeros((1, cls.model.nobs))) + + for i in range(cls.model.nobs): + cls.results.det_scaled_smoothed_estimator_cov[0,i] = ( + np.linalg.det( + cls.results.scaled_smoothed_estimator_cov[:,:,i])) + cls.results.det_predicted_state_cov[0,i] = np.linalg.det( + cls.results.predicted_state_cov[:,:,i+1]) + cls.results.det_smoothed_state_cov[0,i] = np.linalg.det( + cls.results.smoothed_state_cov[:,:,i]) + cls.results.det_smoothed_state_disturbance_cov[0,i] = ( + np.linalg.det( + cls.results.smoothed_state_disturbance_cov[:,:,i])) + + def test_loglike(self): + assert_allclose(np.sum(self.results.llf_obs), -205310.9767) + + def test_scaled_smoothed_estimator(self): + assert_allclose( + self.results.scaled_smoothed_estimator.T, + self.desired[['r1', 'r2', 'r3']] + ) + + def test_scaled_smoothed_estimator_cov(self): + assert_allclose( + self.results.det_scaled_smoothed_estimator_cov.T, + self.desired[['detN']] + ) + + def test_forecasts(self): + assert_allclose( + self.results.forecasts.T, + self.desired[['m1', 'm2', 'm3']] + ) + + def test_forecasts_error(self): + assert_allclose( + self.results.forecasts_error.T, + self.desired[['v1', 'v2', 'v3']] + ) + + def test_forecasts_error_cov(self): + assert_allclose( + self.results.forecasts_error_cov.diagonal(), + self.desired[['F1', 'F2', 'F3']] + ) + + def test_predicted_states(self): + assert_allclose( + self.results.predicted_state[:,1:].T, + self.desired[['a1', 'a2', 'a3']] + ) + + def test_predicted_states_cov(self): + assert_allclose( + self.results.det_predicted_state_cov.T, + self.desired[['detP']] + ) + + def test_smoothed_states(self): + assert_allclose( + self.results.smoothed_state.T, + self.desired[['alphahat1', 'alphahat2', 'alphahat3']] + ) + + def test_smoothed_states_cov(self): + assert_allclose( + self.results.det_smoothed_state_cov.T, + self.desired[['detV']] + ) + + def test_smoothed_forecasts(self): + assert_allclose( + self.results.smoothed_forecasts.T, + self.desired[['muhat1','muhat2','muhat3']] + ) + + def test_smoothed_state_disturbance(self): + assert_allclose( + self.results.smoothed_state_disturbance.T, + self.desired[['etahat1','etahat2','etahat3']] + ) + + def test_smoothed_state_disturbance_cov(self): + assert_allclose( + self.results.det_smoothed_state_disturbance_cov.T, + self.desired[['detVeta']] + ) + + def test_smoothed_measurement_disturbance(self): + assert_allclose( + self.results.smoothed_measurement_disturbance.T, + self.desired[['epshat1','epshat2','epshat3']] + ) + + def test_smoothed_measurement_disturbance_cov(self): + assert_allclose( + self.results.smoothed_measurement_disturbance_cov.diagonal(), + self.desired[['Veps1','Veps2','Veps3']] + ) diff --git a/statsmodels/tsa/statespace/tests/test_structural.py b/statsmodels/tsa/statespace/tests/test_structural.py new file mode 100644 index 0000000..86edbb3 --- /dev/null +++ b/statsmodels/tsa/statespace/tests/test_structural.py @@ -0,0 +1,348 @@ +""" +Tests for structural time series models + +Author: Chad Fulton +License: Simplified-BSD +""" +from __future__ import division, absolute_import, print_function + +import numpy as np +import pandas as pd +import os + +import warnings +from statsmodels.datasets import macrodata +from statsmodels.tsa.statespace import structural +from statsmodels.tsa.statespace.structural import UnobservedComponents +from statsmodels.tsa.statespace.tests.results import results_structural +from statsmodels.tools import add_constant +from numpy.testing import assert_equal, assert_almost_equal, assert_raises, assert_allclose +from nose.exc import SkipTest + + +try: + import matplotlib.pyplot as plt + have_matplotlib = True +except ImportError: + have_matplotlib = False + + +dta = macrodata.load_pandas().data +dta.index = pd.date_range(start='1959-01-01', end='2009-07-01', freq='QS') + +def run_ucm(name): + true = getattr(results_structural, name) + + for model in true['models']: + kwargs = model.copy() + kwargs.update(true['kwargs']) + + # Make a copy of the data + values = dta.copy() + + freq = kwargs.pop('freq', None) + if freq is not None: + values.index = pd.date_range(start='1959-01-01', periods=len(dta), + freq=freq) + + # Test pandas exog + if 'exog' in kwargs: + # Default value here is pd.Series object + exog = np.log(values['realgdp']) + + # Also allow a check with a 1-dim numpy array + if kwargs['exog'] == 'numpy': + exog = exog.values.squeeze() + + kwargs['exog'] = exog + + # Create the model + mod = UnobservedComponents(values['unemp'], **kwargs) + + # Smoke test for starting parameters, untransform, transform + # Also test that transform and untransform are inverses + mod.start_params + assert_allclose(mod.start_params, mod.transform_params(mod.untransform_params(mod.start_params))) + + # Fit the model at the true parameters + res_true = mod.filter(true['params']) + + # Check that the cycle bounds were computed correctly + freqstr = freq[0] if freq is not None else values.index.freqstr[0] + if 'cycle_period_bounds' in kwargs: + cycle_period_bounds = kwargs['cycle_period_bounds'] + elif freqstr == 'A': + cycle_period_bounds = (1.5, 12) + elif freqstr == 'Q': + cycle_period_bounds = (1.5*4, 12*4) + elif freqstr == 'M': + cycle_period_bounds = (1.5*12, 12*12) + else: + # If we have no information on data frequency, require the + # cycle frequency to be between 0 and pi + cycle_period_bounds = (2, np.inf) + + # Test that the cycle frequency bound is correct + assert_equal(mod.cycle_frequency_bound, + (2*np.pi / cycle_period_bounds[1], + 2*np.pi / cycle_period_bounds[0]) + ) + + # Test that the likelihood is correct + rtol = true.get('rtol', 1e-7) + atol = true.get('atol', 0) + assert_allclose(res_true.llf, true['llf'], rtol=rtol, atol=atol) + + # Smoke test for plot_components + if have_matplotlib: + fig = res_true.plot_components() + plt.close(fig) + + # Now fit the model via MLE + with warnings.catch_warnings(record=True) as w: + res = mod.fit(disp=-1) + # If we found a higher likelihood, no problem; otherwise check + # that we're very close to that found by R + if res.llf <= true['llf']: + assert_allclose(res.llf, true['llf'], rtol=1e-4) + + # Smoke test for summary + res.summary() + + +def test_irregular(): + run_ucm('irregular') + + +def test_fixed_intercept(): + # Clear warnings + structural.__warningregistry__ = {} + + with warnings.catch_warnings(record=True) as w: + run_ucm('fixed_intercept') + message = ("Specified model does not contain a stochastic element;" + " irregular component added.") + assert_equal(str(w[0].message), message) + + +def test_deterministic_constant(): + run_ucm('deterministic_constant') + + +def test_random_walk(): + run_ucm('random_walk') + + +def test_local_level(): + run_ucm('local_level') + + +def test_fixed_slope(): + run_ucm('fixed_slope') + + +def test_fixed_slope(): + # Clear warnings + structural.__warningregistry__ = {} + + with warnings.catch_warnings(record=True) as w: + run_ucm('fixed_slope') + message = ("Specified model does not contain a stochastic element;" + " irregular component added.") + assert_equal(str(w[0].message), message) + + +def test_deterministic_trend(): + run_ucm('deterministic_trend') + + +def test_random_walk_with_drift(): + run_ucm('random_walk_with_drift') + + +def test_local_linear_deterministic_trend(): + run_ucm('local_linear_deterministic_trend') + + +def test_local_linear_trend(): + run_ucm('local_linear_trend') + + +def test_smooth_trend(): + run_ucm('smooth_trend') + + +def test_random_trend(): + run_ucm('random_trend') + + +def test_cycle(): + run_ucm('cycle') + + +def test_seasonal(): + run_ucm('seasonal') + + +def test_reg(): + run_ucm('reg') + + +def test_rtrend_ar1(): + run_ucm('rtrend_ar1') + + +def test_lltrend_cycle_seasonal_reg_ar1(): + run_ucm('lltrend_cycle_seasonal_reg_ar1') + + +def test_mle_reg(): + endog = np.arange(100)*1.0 + exog = endog*2 + # Make the fit not-quite-perfect + endog[::2] += 0.01 + endog[1::2] -= 0.01 + + with warnings.catch_warnings(record=True) as w: + mod1 = UnobservedComponents(endog, irregular=True, exog=exog, mle_regression=False) + res1 = mod1.fit(disp=-1) + + mod2 = UnobservedComponents(endog, irregular=True, exog=exog, mle_regression=True) + res2 = mod2.fit(disp=-1) + + assert_allclose(res1.regression_coefficients.filtered[0, -1], 0.5, atol=1e-5) + assert_allclose(res2.params[1], 0.5, atol=1e-5) + + +def test_specifications(): + # Clear warnings + structural.__warningregistry__ = {} + + endog = [1, 2] + + # Test that when nothing specified, a warning is issued and the model that + # is fit is one with irregular=True and nothing else. + with warnings.catch_warnings(record=True) as w: + mod = UnobservedComponents(endog) + + message = ("Specified model does not contain a stochastic element;" + " irregular component added.") + assert_equal(str(w[0].message), message) + assert_equal(mod.trend_specification, 'irregular') + + # Test an invalid string trend specification + assert_raises(ValueError, UnobservedComponents, endog, 'invalid spec') + + # Test that if a trend component is specified without a level component, + # a warning is issued and a deterministic level component is added + with warnings.catch_warnings(record=True) as w: + mod = UnobservedComponents(endog, trend=True, irregular=True) + message = ("Trend component specified without level component;" + " deterministic level component added.") + assert_equal(str(w[0].message), message) + assert_equal(mod.trend_specification, 'deterministic trend') + + # Test that if a string specification is provided, a warning is issued if + # the boolean attributes are also specified + trend_attributes = ['irregular', 'trend', 'stochastic_level', + 'stochastic_trend'] + for attribute in trend_attributes: + with warnings.catch_warnings(record=True) as w: + kwargs = {attribute: True} + mod = UnobservedComponents(endog, 'deterministic trend', **kwargs) + + message = ("Value of `%s` may be overridden when the trend" + " component is specified using a model string." + % attribute) + assert_equal(str(w[0].message), message) + + # Test that a seasonal with period less than two is invalid + assert_raises(ValueError, UnobservedComponents, endog, seasonal=1) + +def test_start_params(): + # Test that the behavior is correct for multiple exogenous and / or + # autoregressive components + + # Parameters + nobs = int(1e4) + beta = np.r_[10, -2] + phi = np.r_[0.5, 0.1] + + # Generate data + np.random.seed(1234) + exog = np.c_[np.ones(nobs), np.arange(nobs)*1.0] + eps = np.random.normal(size=nobs) + endog = np.zeros(nobs+2) + for t in range(1, nobs): + endog[t+1] = phi[0] * endog[t] + phi[1] * endog[t-1] + eps[t] + endog = endog[2:] + endog += np.dot(exog, beta) + + # Now just test that the starting parameters are approximately what they + # ought to be (could make this arbitrarily precise by increasing nobs, + # but that would slow down the test for no real gain) + mod = UnobservedComponents(endog, exog=exog, autoregressive=2) + assert_allclose(mod.start_params, [1., 0.5, 0.1, 10, -2], atol=1e-1) + +def test_forecast(): + endog = np.arange(50) + 10 + exog = np.arange(50) + + mod = UnobservedComponents(endog, exog=exog, level='dconstant') + res = mod.smooth([1e-15, 1]) + + actual = res.forecast(10, exog=np.arange(50,60)[:,np.newaxis]) + desired = np.arange(50,60) + 10 + assert_allclose(actual, desired) + + +def test_misc_exog(): + # Tests for missing data + nobs = 20 + k_endog = 1 + np.random.seed(1208) + endog = np.random.normal(size=(nobs, k_endog)) + endog[:4, 0] = np.nan + exog1 = np.random.normal(size=(nobs, 1)) + exog2 = np.random.normal(size=(nobs, 2)) + + index = pd.date_range('1970-01-01', freq='QS', periods=nobs) + endog_pd = pd.DataFrame(endog, index=index) + exog1_pd = pd.Series(exog1.squeeze(), index=index) + exog2_pd = pd.DataFrame(exog2, index=index) + + models = [ + UnobservedComponents(endog, 'llevel', exog=exog1), + UnobservedComponents(endog, 'llevel', exog=exog2), + UnobservedComponents(endog, 'llevel', exog=exog2), + UnobservedComponents(endog_pd, 'llevel', exog=exog1_pd), + UnobservedComponents(endog_pd, 'llevel', exog=exog2_pd), + UnobservedComponents(endog_pd, 'llevel', exog=exog2_pd), + ] + + for mod in models: + # Smoke tests + mod.start_params + res = mod.fit(disp=False) + res.summary() + res.predict() + res.predict(dynamic=True) + res.get_prediction() + + oos_exog = np.random.normal(size=(1, mod.k_exog)) + res.forecast(steps=1, exog=oos_exog) + res.get_forecast(steps=1, exog=oos_exog) + + # Smoke tests for invalid exog + oos_exog = np.random.normal(size=(1)) + assert_raises(ValueError, res.forecast, steps=1, exog=oos_exog) + + oos_exog = np.random.normal(size=(2, mod.k_exog)) + assert_raises(ValueError, res.forecast, steps=1, exog=oos_exog) + + oos_exog = np.random.normal(size=(1, mod.k_exog + 1)) + assert_raises(ValueError, res.forecast, steps=1, exog=oos_exog) + + # Test invalid model specifications + assert_raises(ValueError, UnobservedComponents, endog, 'llevel', + exog=np.zeros((10, 4))) diff --git a/statsmodels/tsa/statespace/tests/test_tools.py b/statsmodels/tsa/statespace/tests/test_tools.py new file mode 100644 index 0000000..3a33a0e --- /dev/null +++ b/statsmodels/tsa/statespace/tests/test_tools.py @@ -0,0 +1,421 @@ +""" +Tests for tools + +Author: Chad Fulton +License: Simplified-BSD +""" +from __future__ import division, absolute_import, print_function + +import numpy as np +import pandas as pd + +from scipy.linalg import solve_discrete_lyapunov +from statsmodels.tsa.statespace import tools +from statsmodels.tsa.api import acovf +# from .results import results_sarimax +from numpy.testing import ( + assert_allclose, assert_equal, assert_array_equal, assert_almost_equal, + assert_raises +) + +class TestCompanionMatrix(object): + + cases = [ + (2, np.array([[0,1],[0,0]])), + ([1,-1,-2], np.array([[1,1], + [2,0]])), + ([1,-1,-2,-3], np.array([[1,1,0], + [2,0,1], + [3,0,0]])), + ([1,-np.array([[1,2],[3,4]]),-np.array([[5,6],[7,8]])], + np.array([[1,2,5,6], + [3,4,7,8], + [1,0,0,0], + [0,1,0,0]]).T) + ] + + def test_cases(self): + for polynomial, result in self.cases: + assert_equal(tools.companion_matrix(polynomial), result) + +class TestDiff(object): + + x = np.arange(10) + cases = [ + # diff = 1 + ([1,2,3], 1, None, 1, [1, 1]), + # diff = 2 + (x, 2, None, 1, [0]*8), + # diff = 1, seasonal_diff=1, k_seasons=4 + (x, 1, 1, 4, [0]*5), + (x**2, 1, 1, 4, [8]*5), + (x**3, 1, 1, 4, [60, 84, 108, 132, 156]), + # diff = 1, seasonal_diff=2, k_seasons=2 + (x, 1, 2, 2, [0]*5), + (x**2, 1, 2, 2, [0]*5), + (x**3, 1, 2, 2, [24]*5), + (x**4, 1, 2, 2, [240, 336, 432, 528, 624]), + ] + + def test_cases(self): + # Basic cases + for series, diff, seasonal_diff, k_seasons, result in self.cases: + + # Test numpy array + x = tools.diff(series, diff, seasonal_diff, k_seasons) + assert_almost_equal(x, result) + + # Test as Pandas Series + series = pd.Series(series) + + # Rewrite to test as n-dimensional array + series = np.c_[series, series] + result = np.c_[result, result] + + # Test Numpy array + x = tools.diff(series, diff, seasonal_diff, k_seasons) + assert_almost_equal(x, result) + + # Test as Pandas Dataframe + series = pd.DataFrame(series) + x = tools.diff(series, diff, seasonal_diff, k_seasons) + assert_almost_equal(x, result) + +class TestSolveDiscreteLyapunov(object): + + def solve_dicrete_lyapunov_direct(self, a, q, complex_step=False): + # This is the discrete Lyapunov solver as "real function of real + # variables": the difference between this and the usual, complex, + # version is that in the Kronecker product the second argument is + # *not* conjugated here. + if not complex_step: + lhs = np.kron(a, a.conj()) + lhs = np.eye(lhs.shape[0]) - lhs + x = np.linalg.solve(lhs, q.flatten()) + else: + lhs = np.kron(a, a) + lhs = np.eye(lhs.shape[0]) - lhs + x = np.linalg.solve(lhs, q.flatten()) + + return np.reshape(x, q.shape) + + def test_univariate(self): + # Real case + a = np.array([[0.5]]) + q = np.array([[10.]]) + actual = tools.solve_discrete_lyapunov(a, q) + desired = solve_discrete_lyapunov(a, q) + assert_allclose(actual, desired) + + # Complex case (where the Lyapunov equation is taken as a complex + # function) + a = np.array([[0.5+1j]]) + q = np.array([[10.]]) + actual = tools.solve_discrete_lyapunov(a, q) + desired = solve_discrete_lyapunov(a, q) + assert_allclose(actual, desired) + + # Complex case (where the Lyapunov equation is taken as a real + # function) + a = np.array([[0.5+1j]]) + q = np.array([[10.]]) + actual = tools.solve_discrete_lyapunov(a, q, complex_step=True) + desired = self.solve_dicrete_lyapunov_direct(a, q, complex_step=True) + assert_allclose(actual, desired) + + def test_multivariate(self): + # Real case + a = tools.companion_matrix([1, -0.4, 0.5]) + q = np.diag([10., 5.]) + actual = tools.solve_discrete_lyapunov(a, q) + desired = solve_discrete_lyapunov(a, q) + assert_allclose(actual, desired) + + # Complex case (where the Lyapunov equation is taken as a complex + # function) + a = tools.companion_matrix([1, -0.4+0.1j, 0.5]) + q = np.diag([10., 5.]) + actual = tools.solve_discrete_lyapunov(a, q, complex_step=False) + desired = self.solve_dicrete_lyapunov_direct(a, q, complex_step=False) + assert_allclose(actual, desired) + + # Complex case (where the Lyapunov equation is taken as a real + # function) + a = tools.companion_matrix([1, -0.4+0.1j, 0.5]) + q = np.diag([10., 5.]) + actual = tools.solve_discrete_lyapunov(a, q, complex_step=True) + desired = self.solve_dicrete_lyapunov_direct(a, q, complex_step=True) + assert_allclose(actual, desired) + +class TestIsInvertible(object): + + cases = [ + ([1, -0.5], True), + ([1, 1-1e-9], True), + ([1, 1], False), + ([1, 0.9,0.1], True), + (np.array([1,0.9,0.1]), True), + (pd.Series([1,0.9,0.1]), True) + ] + + def test_cases(self): + for polynomial, invertible in self.cases: + assert_equal(tools.is_invertible(polynomial), invertible) + +class TestConstrainStationaryUnivariate(object): + + cases = [ + (np.array([2.]), -2./((1+2.**2)**0.5)) + ] + + def test_cases(self): + for unconstrained, constrained in self.cases: + result = tools.constrain_stationary_univariate(unconstrained) + assert_equal(result, constrained) + +class TestUnconstrainStationaryUnivariate(object): + + cases = [ + (np.array([-2./((1+2.**2)**0.5)]), np.array([2.])) + ] + + def test_cases(self): + for constrained, unconstrained in self.cases: + result = tools.unconstrain_stationary_univariate(constrained) + assert_allclose(result, unconstrained) + +class TestStationaryUnivariate(object): + # Test that the constraint and unconstraint functions are inverses + + constrained_cases = [ + np.array([0]), np.array([0.1]), np.array([-0.5]), np.array([0.999])] + unconstrained_cases = [ + np.array([10.]), np.array([-40.42]), np.array([0.123])] + + def test_cases(self): + for constrained in self.constrained_cases: + unconstrained = tools.unconstrain_stationary_univariate(constrained) + reconstrained = tools.constrain_stationary_univariate(unconstrained) + assert_allclose(reconstrained, constrained) + + for unconstrained in self.unconstrained_cases: + constrained = tools.constrain_stationary_univariate(unconstrained) + reunconstrained = tools.unconstrain_stationary_univariate(constrained) + assert_allclose(reunconstrained, unconstrained) + +class TestValidateMatrixShape(object): + # name, shape, nrows, ncols, nobs + valid = [ + ('TEST', (5,2), 5, 2, None), + ('TEST', (5,2), 5, 2, 10), + ('TEST', (5,2,10), 5, 2, 10), + ] + invalid = [ + ('TEST', (5,), 5, None, None), + ('TEST', (5,1,1,1), 5, 1, None), + ('TEST', (5,2), 10, 2, None), + ('TEST', (5,2), 5, 1, None), + ('TEST', (5,2,10), 5, 2, None), + ('TEST', (5,2,10), 5, 2, 5), + ] + + def test_valid_cases(self): + for args in self.valid: + # Just testing that no exception is raised + tools.validate_matrix_shape(*args) + + def test_invalid_cases(self): + for args in self.invalid: + assert_raises( + ValueError, tools.validate_matrix_shape, *args + ) + +class TestValidateVectorShape(object): + # name, shape, nrows, ncols, nobs + valid = [ + ('TEST', (5,), 5, None), + ('TEST', (5,), 5, 10), + ('TEST', (5,10), 5, 10), + ] + invalid = [ + ('TEST', (5,2,10), 5, 10), + ('TEST', (5,), 10, None), + ('TEST', (5,10), 5, None), + ('TEST', (5,10), 5, 5), + ] + + def test_valid_cases(self): + for args in self.valid: + # Just testing that no exception is raised + tools.validate_vector_shape(*args) + + def test_invalid_cases(self): + for args in self.invalid: + assert_raises( + ValueError, tools.validate_vector_shape, *args + ) + +def test_multivariate_acovf(): + _acovf = tools._compute_multivariate_acovf_from_coefficients + + # Test for a VAR(1) process. From Lutkepohl (2007), pages 27-28. + # See (2.1.14) for Phi_1, (2.1.33) for Sigma_u, and (2.1.34) for Gamma_0 + Sigma_u = np.array([[2.25, 0, 0], + [0, 1.0, 0.5], + [0, 0.5, 0.74]]) + Phi_1 = np.array([[0.5, 0, 0], + [0.1, 0.1, 0.3], + [0, 0.2, 0.3]]) + Gamma_0 = np.array([[3.0, 0.161, 0.019], + [0.161, 1.172, 0.674], + [0.019, 0.674, 0.954]]) + assert_allclose(_acovf([Phi_1], Sigma_u)[0], Gamma_0, atol=1e-3) + + # Test for a VAR(2) process. From Lutkepohl (2007), pages 28-29 + # See (2.1.40) for Phi_1, Phi_2, (2.1.14) for Sigma_u, and (2.1.42) for + # Gamma_0, Gamma_1 + Sigma_u = np.diag([0.09, 0.04]) + Phi_1 = np.array([[0.5, 0.1], + [0.4, 0.5]]) + Phi_2 = np.array([[0, 0], + [0.25, 0]]) + Gamma_0 = np.array([[0.131, 0.066], + [0.066, 0.181]]) + Gamma_1 = np.array([[0.072, 0.051], + [0.104, 0.143]]) + Gamma_2 = np.array([[0.046, 0.040], + [0.113, 0.108]]) + Gamma_3 = np.array([[0.035, 0.031], + [0.093, 0.083]]) + + assert_allclose( + _acovf([Phi_1, Phi_2], Sigma_u, maxlag=0), + [Gamma_0], atol=1e-3) + + assert_allclose( + _acovf([Phi_1, Phi_2], Sigma_u, maxlag=1), + [Gamma_0, Gamma_1], atol=1e-3) + + assert_allclose( + _acovf([Phi_1, Phi_2], Sigma_u), + [Gamma_0, Gamma_1], atol=1e-3) + + assert_allclose( + _acovf([Phi_1, Phi_2], Sigma_u, maxlag=2), + [Gamma_0, Gamma_1, Gamma_2], atol=1e-3) + + assert_allclose( + _acovf([Phi_1, Phi_2], Sigma_u, maxlag=3), + [Gamma_0, Gamma_1, Gamma_2, Gamma_3], atol=1e-3) + + # Test sample acovf in the univariate case against sm.tsa.acovf + x = np.arange(20)*1.0 + assert_allclose( + np.squeeze(tools._compute_multivariate_sample_acovf(x, maxlag=4)), + acovf(x)[:5]) + + +def test_multivariate_pacf(): + # Test sample acovf in the univariate case against sm.tsa.acovf + np.random.seed(1234) + x = np.arange(10000) + y = np.random.normal(size=10000) + # Note: could make this test more precise with higher nobs, but no need to + assert_allclose( + tools._compute_multivariate_sample_pacf(np.c_[x, y], maxlag=1)[0], + np.diag([1, 0]), atol=1e-2) + +class TestConstrainStationaryMultivariate(object): + + cases = [ + # This is the same test as the univariate case above, except notice + # the sign difference; this is an array input / output + (np.array([[2.]]), np.eye(1), np.array([[2./((1+2.**2)**0.5)]])), + # Same as above, but now a list input / output + ([np.array([[2.]])], np.eye(1), [np.array([[2./((1+2.**2)**0.5)]])]) + ] + + eigval_cases = [ + [np.array([[0]])], + [np.array([[100]]), np.array([[50]])], + [np.array([[30, 1], [-23, 15]]), np.array([[10, .3], [.5, -30]])], + ] + + def test_cases(self): + # Test against known results + for unconstrained, error_variance, constrained in self.cases: + result = tools.constrain_stationary_multivariate( + unconstrained, error_variance) + assert_allclose(result[0], constrained) + + # Test that the constrained results correspond to companion matrices + # with eigenvalues less than 1 in modulus + for unconstrained in self.eigval_cases: + if type(unconstrained) == list: + cov = np.eye(unconstrained[0].shape[0]) + else: + cov = np.eye(unconstrained.shape[0]) + constrained, _ = tools.constrain_stationary_multivariate(unconstrained, cov) + companion = tools.companion_matrix( + [1] + [-constrained[i] for i in range(len(constrained))] + ).T + assert_equal(np.max(np.abs(np.linalg.eigvals(companion))) < 1, True) + + + +class TestUnconstrainStationaryMultivariate(object): + + cases = [ + # This is the same test as the univariate case above, except notice + # the sign difference; this is an array input / output + (np.array([[2./((1+2.**2)**0.5)]]), np.eye(1), np.array([[2.]])), + # Same as above, but now a list input / output + ([np.array([[2./((1+2.**2)**0.5)]])], np.eye(1), [np.array([[2.]])]) + ] + + def test_cases(self): + for constrained, error_variance, unconstrained in self.cases: + result = tools.unconstrain_stationary_multivariate( + constrained, error_variance) + assert_allclose(result[0], unconstrained) + +class TestStationaryMultivariate(object): + # Test that the constraint and unconstraint functions are inverses + + constrained_cases = [ + np.array([[0]]), np.array([[0.1]]), np.array([[-0.5]]), np.array([[0.999]]), + [np.array([[0]])], + np.array([[0.8, -0.2]]), + [np.array([[0.8]]), np.array([[-0.2]])], + [np.array([[0.3, 0.01], [-0.23, 0.15]]), np.array([[0.1, 0.03], [0.05, -0.3]])], + np.array([[0.3, 0.01, 0.1, 0.03], [-0.23, 0.15, 0.05, -0.3]]) + ] + unconstrained_cases = [ + np.array([[0]]), np.array([[-40.42]]), np.array([[0.123]]), + [np.array([[0]])], + np.array([[100, 50]]), + [np.array([[100]]), np.array([[50]])], + [np.array([[30, 1], [-23, 15]]), np.array([[10, .3], [.5, -30]])], + np.array([[30, 1, 10, .3], [-23, 15, .5, -30]]) + ] + + def test_cases(self): + for constrained in self.constrained_cases: + if type(constrained) == list: + cov = np.eye(constrained[0].shape[0]) + else: + cov = np.eye(constrained.shape[0]) + unconstrained, _ = tools.unconstrain_stationary_multivariate(constrained, cov) + reconstrained, _ = tools.constrain_stationary_multivariate(unconstrained, cov) + assert_allclose(reconstrained, constrained) + + for unconstrained in self.unconstrained_cases: + if type(unconstrained) == list: + cov = np.eye(unconstrained[0].shape[0]) + else: + cov = np.eye(unconstrained.shape[0]) + constrained, _ = tools.constrain_stationary_multivariate(unconstrained, cov) + reunconstrained, _ = tools.unconstrain_stationary_multivariate(constrained, cov) + # Note: low tolerance comes from last example in unconstrained_cases, + # but is not a real problem + assert_allclose(reunconstrained, unconstrained, atol=1e-4) diff --git a/statsmodels/tsa/statespace/tests/test_varmax.py b/statsmodels/tsa/statespace/tests/test_varmax.py new file mode 100644 index 0000000..b082ab6 --- /dev/null +++ b/statsmodels/tsa/statespace/tests/test_varmax.py @@ -0,0 +1,827 @@ +""" +Tests for VARMAX models + +Author: Chad Fulton +License: Simplified-BSD +""" +from __future__ import division, absolute_import, print_function + +import numpy as np +import pandas as pd +import os +import re + +import warnings +from statsmodels.tsa.statespace import mlemodel, varmax +from .results import results_varmax +from numpy.testing import assert_equal, assert_almost_equal, assert_raises, assert_allclose +from nose.exc import SkipTest +from statsmodels.iolib.summary import forg + +current_path = os.path.dirname(os.path.abspath(__file__)) + +var_path = 'results' + os.sep + 'results_var_stata.csv' +var_results = pd.read_csv(current_path + os.sep + var_path) + +varmax_path = 'results' + os.sep + 'results_varmax_stata.csv' +varmax_results = pd.read_csv(current_path + os.sep + varmax_path) + + +class CheckVARMAX(object): + """ + Test Vector Autoregression against Stata's `dfactor` code (Stata's + `var` function uses OLS and not state space / MLE, so we can't get + equivalent log-likelihoods) + """ + + def test_mle(self): + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter('always') + # Fit with all transformations + # results = self.model.fit(method='powell', disp=-1) + results = self.model.fit(maxiter=100, disp=False) + # Fit now without transformations + self.model.enforce_stationarity = False + self.model.enforce_invertibility = False + results = self.model.fit(results.params, method='nm', maxiter=1000, + disp=False) + self.model.enforce_stationarity = True + self.model.enforce_invertibility = True + assert_allclose(results.llf, self.results.llf, rtol=1e-5) + + def test_params(self): + # Smoke test to make sure the start_params are well-defined and + # lead to a well-defined model + self.model.filter(self.model.start_params) + # Similarly a smoke test for param_names + assert_equal(len(self.model.start_params), len(self.model.param_names)) + # Finally make sure the transform and untransform do their job + actual = self.model.transform_params(self.model.untransform_params(self.model.start_params)) + assert_allclose(actual, self.model.start_params) + # Also in the case of enforce invertibility and stationarity = False + self.model.enforce_stationarity = False + self.model.enforce_invertibility = False + actual = self.model.transform_params(self.model.untransform_params(self.model.start_params)) + self.model.enforce_stationarity = True + self.model.enforce_invertibility = True + assert_allclose(actual, self.model.start_params) + + def test_results(self): + # Smoke test for creating the summary + self.results.summary() + + # Test cofficient matrix creation (via a different, more direct, method) + if self.model.k_ar > 0: + coefficients = np.array(self.results.params[self.model._params_ar]).reshape(self.model.k_endog, self.model.k_endog * self.model.k_ar) + coefficient_matrices = np.array([ + coefficients[:self.model.k_endog, i*self.model.k_endog:(i+1)*self.model.k_endog] + for i in range(self.model.k_ar) + ]) + assert_equal(self.results.coefficient_matrices_var, coefficient_matrices) + else: + assert_equal(self.results.coefficient_matrices_var, None) + if self.model.k_ma > 0: + coefficients = np.array(self.results.params[self.model._params_ma]).reshape(self.model.k_endog, self.model.k_endog * self.model.k_ma) + coefficient_matrices = np.array([ + coefficients[:self.model.k_endog, i*self.model.k_endog:(i+1)*self.model.k_endog] + for i in range(self.model.k_ma) + ]) + assert_equal(self.results.coefficient_matrices_vma, coefficient_matrices) + else: + assert_equal(self.results.coefficient_matrices_vma, None) + + def test_loglike(self): + assert_allclose(self.results.llf, self.true['loglike'], rtol=1e-6) + + def test_aic(self): + # We only get 3 digits from Stata + assert_allclose(self.results.aic, self.true['aic'], atol=3) + + def test_bic(self): + # We only get 3 digits from Stata + assert_allclose(self.results.bic, self.true['bic'], atol=3) + + def test_predict(self, end, atol=1e-6, **kwargs): + # Tests predict + forecast + assert_allclose( + self.results.predict(end=end, **kwargs), + self.true['predict'], + atol=atol) + + def test_dynamic_predict(self, end, dynamic, atol=1e-6, **kwargs): + # Tests predict + dynamic predict + forecast + assert_allclose( + self.results.predict(end=end, dynamic=dynamic, **kwargs), + self.true['dynamic_predict'], + atol=atol) + + +class CheckLutkepohl(CheckVARMAX): + @classmethod + def setup_class(cls, true, order, trend, error_cov_type, cov_type='approx', + included_vars=['dln_inv', 'dln_inc', 'dln_consump'], + **kwargs): + cls.true = true + # 1960:Q1 - 1982:Q4 + dta = pd.DataFrame( + results_varmax.lutkepohl_data, columns=['inv', 'inc', 'consump'], + index=pd.date_range('1960-01-01', '1982-10-01', freq='QS')) + + dta['dln_inv'] = np.log(dta['inv']).diff() + dta['dln_inc'] = np.log(dta['inc']).diff() + dta['dln_consump'] = np.log(dta['consump']).diff() + + endog = dta.ix['1960-04-01':'1978-10-01', included_vars] + + cls.model = varmax.VARMAX(endog, order=order, trend=trend, + error_cov_type=error_cov_type, **kwargs) + + cls.results = cls.model.smooth(true['params'], cov_type=cov_type) + + def test_predict(self, **kwargs): + super(CheckLutkepohl, self).test_predict(end='1982-10-01', **kwargs) + + def test_dynamic_predict(self, **kwargs): + super(CheckLutkepohl, self).test_dynamic_predict(end='1982-10-01', dynamic='1961-01-01', **kwargs) + + +class TestVAR(CheckLutkepohl): + @classmethod + def setup_class(cls): + true = results_varmax.lutkepohl_var1.copy() + true['predict'] = var_results.ix[1:, ['predict_1', 'predict_2', 'predict_3']] + true['dynamic_predict'] = var_results.ix[1:, ['dyn_predict_1', 'dyn_predict_2', 'dyn_predict_3']] + super(TestVAR, cls).setup_class( + true, order=(1,0), trend='nc', + error_cov_type="unstructured") + + def test_bse_approx(self): + bse = self.results._cov_params_approx().diagonal()**0.5 + assert_allclose(bse**2, self.true['var_oim'], atol=1e-4) + + def test_bse_oim(self): + bse = self.results._cov_params_oim().diagonal()**0.5 + assert_allclose(bse**2, self.true['var_oim'], atol=1e-2) + + def test_summary(self): + summary = self.results.summary() + tables = [str(table) for table in summary.tables] + params = self.true['params'] + + # Check the model overview table + assert_equal(re.search(r'Model:.*VAR\(1\)', tables[0]) is None, False) + + # For each endogenous variable, check the output + for i in range(self.model.k_endog): + offset = i * self.model.k_endog + table = tables[i+2] + + # -> Make sure we have the right table / table name + name = self.model.endog_names[i] + assert_equal(re.search('Results for equation %s' % name, table) is None, False) + + # -> Make sure it's the right size + assert_equal(len(table.split('\n')), 8) + + # -> Check that we have the right coefficients + assert_equal(re.search('L1.dln_inv +%.4f' % params[offset + 0], table) is None, False) + assert_equal(re.search('L1.dln_inc +%.4f' % params[offset + 1], table) is None, False) + assert_equal(re.search('L1.dln_consump +%.4f' % params[offset + 2], table) is None, False) + + # Test the error covariance matrix table + table = tables[-1] + assert_equal(re.search('Error covariance matrix', table) is None, False) + assert_equal(len(table.split('\n')), 11) + + params = params[self.model._params_state_cov] + names = self.model.param_names[self.model._params_state_cov] + for i in range(len(names)): + assert_equal(re.search('%s +%.4f' % (names[i], params[i]), table) is None, False) + +class TestVAR_diagonal(CheckLutkepohl): + @classmethod + def setup_class(cls): + true = results_varmax.lutkepohl_var1_diag.copy() + true['predict'] = var_results.ix[1:, ['predict_diag1', 'predict_diag2', 'predict_diag3']] + true['dynamic_predict'] = var_results.ix[1:, ['dyn_predict_diag1', 'dyn_predict_diag2', 'dyn_predict_diag3']] + super(TestVAR_diagonal, cls).setup_class( + true, order=(1,0), trend='nc', + error_cov_type="diagonal") + + def test_bse_approx(self): + bse = self.results._cov_params_approx().diagonal()**0.5 + assert_allclose(bse**2, self.true['var_oim'], atol=1e-5) + + def test_bse_oim(self): + bse = self.results._cov_params_oim().diagonal()**0.5 + assert_allclose(bse**2, self.true['var_oim'], atol=1e-2) + + def test_summary(self): + summary = self.results.summary() + tables = [str(table) for table in summary.tables] + params = self.true['params'] + + # Check the model overview table + assert_equal(re.search(r'Model:.*VAR\(1\)', tables[0]) is None, False) + + # For each endogenous variable, check the output + for i in range(self.model.k_endog): + offset = i * self.model.k_endog + table = tables[i+2] + + # -> Make sure we have the right table / table name + name = self.model.endog_names[i] + assert_equal(re.search('Results for equation %s' % name, table) is None, False) + + # -> Make sure it's the right size + assert_equal(len(table.split('\n')), 8) + + # -> Check that we have the right coefficients + assert_equal(re.search('L1.dln_inv +%.4f' % params[offset + 0], table) is None, False) + assert_equal(re.search('L1.dln_inc +%.4f' % params[offset + 1], table) is None, False) + assert_equal(re.search('L1.dln_consump +%.4f' % params[offset + 2], table) is None, False) + + # Test the error covariance matrix table + table = tables[-1] + assert_equal(re.search('Error covariance matrix', table) is None, False) + assert_equal(len(table.split('\n')), 8) + + params = params[self.model._params_state_cov] + names = self.model.param_names[self.model._params_state_cov] + for i in range(len(names)): + assert_equal(re.search('%s +%.4f' % (names[i], params[i]), table) is None, False) + + +class TestVAR_measurement_error(CheckLutkepohl): + """ + Notes + ----- + There does not appear to be a way to get Stata to estimate a VAR with + measurement errors. Thus this test is mostly a smoke test that measurement + errors are setup correctly: it uses the same params from TestVAR_diagonal + and sets the measurement errors variance params to zero to check that the + loglike and predict are the same. + + It also checks that the state-space representation with positive + measurement errors is correct. + """ + @classmethod + def setup_class(cls): + true = results_varmax.lutkepohl_var1_diag_meas.copy() + true['predict'] = var_results.ix[1:, ['predict_diag1', 'predict_diag2', 'predict_diag3']] + true['dynamic_predict'] = var_results.ix[1:, ['dyn_predict_diag1', 'dyn_predict_diag2', 'dyn_predict_diag3']] + super(TestVAR_measurement_error, cls).setup_class( + true, order=(1,0), trend='nc', + error_cov_type="diagonal", measurement_error=True) + + # Create another filter results with positive measurement errors + cls.true_measurement_error_variances = [1., 2., 3.] + params = np.r_[true['params'][:-3], cls.true_measurement_error_variances] + cls.results2 = cls.model.smooth(params) + + def test_mle(self): + # With the additional measurment error parameters, this wouldn't be + # a meaningful test + pass + + def test_bse_approx(self): + # This would just test the same thing as TestVAR_diagonal.test_bse_approx + pass + + def test_bse_oim(self): + # This would just test the same thing as TestVAR_diagonal.test_bse_oim + pass + + def test_aic(self): + # Since the measurement error is added, the number + # of parameters, and hence the aic and bic, will be off + pass + + def test_bic(self): + # Since the measurement error is added, the number + # of parameters, and hence the aic and bic, will be off + pass + + def test_representation(self): + # Test that the state space representation in the measurement error + # case is correct + for name in self.model.ssm.shapes.keys(): + if name == 'obs': + pass + elif name == 'obs_cov': + actual = self.results2.filter_results.obs_cov + desired = np.diag(self.true_measurement_error_variances)[:,:,np.newaxis] + assert_equal(actual, desired) + else: + assert_equal(getattr(self.results2.filter_results, name), + getattr(self.results.filter_results, name)) + + def test_summary(self): + summary = self.results.summary() + tables = [str(table) for table in summary.tables] + params = self.true['params'] + + # Check the model overview table + assert_equal(re.search(r'Model:.*VAR\(1\)', tables[0]) is None, False) + + # For each endogenous variable, check the output + for i in range(self.model.k_endog): + offset = i * self.model.k_endog + table = tables[i+2] + + # -> Make sure we have the right table / table name + name = self.model.endog_names[i] + assert_equal(re.search('Results for equation %s' % name, table) is None, False) + + # -> Make sure it's the right size + assert_equal(len(table.split('\n')), 9) + + # -> Check that we have the right coefficients + assert_equal(re.search('L1.dln_inv +%.4f' % params[offset + 0], table) is None, False) + assert_equal(re.search('L1.dln_inc +%.4f' % params[offset + 1], table) is None, False) + assert_equal(re.search('L1.dln_consump +%.4f' % params[offset + 2], table) is None, False) + assert_equal(re.search('measurement_variance +%.4g' % params[-(i+1)], table) is None, False) + + # Test the error covariance matrix table + table = tables[-1] + assert_equal(re.search('Error covariance matrix', table) is None, False) + assert_equal(len(table.split('\n')), 8) + + params = params[self.model._params_state_cov] + names = self.model.param_names[self.model._params_state_cov] + for i in range(len(names)): + assert_equal(re.search('%s +%.4f' % (names[i], params[i]), table) is None, False) + +class TestVAR_obs_intercept(CheckLutkepohl): + @classmethod + def setup_class(cls): + true = results_varmax.lutkepohl_var1_obs_intercept.copy() + true['predict'] = var_results.ix[1:, ['predict_int1', 'predict_int2', 'predict_int3']] + true['dynamic_predict'] = var_results.ix[1:, ['dyn_predict_int1', 'dyn_predict_int2', 'dyn_predict_int3']] + super(TestVAR_obs_intercept, cls).setup_class( + true, order=(1,0), trend='nc', + error_cov_type="diagonal", obs_intercept=true['obs_intercept']) + + def test_bse_approx(self): + bse = self.results._cov_params_approx().diagonal()**0.5 + assert_allclose(bse**2, self.true['var_oim'], atol=1e-4) + + def test_bse_oim(self): + bse = self.results._cov_params_oim().diagonal()**0.5 + assert_allclose(bse**2, self.true['var_oim'], atol=1e-2) + + def test_aic(self): + # Since the obs_intercept is added in in an ad-hoc way here, the number + # of parameters, and hence the aic and bic, will be off + pass + + def test_bic(self): + # Since the obs_intercept is added in in an ad-hoc way here, the number + # of parameters, and hence the aic and bic, will be off + pass + + +class TestVAR_exog(CheckLutkepohl): + # Note: unlike the other tests in this file, this is against the Stata + # var function rather than the Stata dfactor function + @classmethod + def setup_class(cls): + true = results_varmax.lutkepohl_var1_exog.copy() + true['predict'] = var_results.ix[1:75, ['predict_exog1_1', 'predict_exog1_2', 'predict_exog1_3']] + true['predict'].iloc[0, :] = 0 + true['fcast'] = var_results.ix[76:, ['fcast_exog1_dln_inv', 'fcast_exog1_dln_inc', 'fcast_exog1_dln_consump']] + exog = np.arange(75) + 3 + super(TestVAR_exog, cls).setup_class( + true, order=(1,0), trend='nc', error_cov_type='unstructured', + exog=exog, initialization='approximate_diffuse', loglikelihood_burn=1) + + def test_mle(self): + pass + + def test_aic(self): + # Stata's var calculates AIC differently + pass + + def test_bic(self): + # Stata's var calculates BIC differently + pass + + def test_bse_approx(self): + # Exclude the covariance cholesky terms + bse = self.results._cov_params_approx().diagonal()**0.5 + assert_allclose(bse[:-6]**2, self.true['var_oim'], atol=1e-5) + + def test_bse_oim(self): + # Exclude the covariance cholesky terms + bse = self.results._cov_params_oim().diagonal()**0.5 + assert_allclose(bse[:-6]**2, self.true['var_oim'], atol=1e-5) + + def test_predict(self): + super(CheckLutkepohl, self).test_predict(end='1978-10-01', atol=1e-3) + + def test_dynamic_predict(self): + # Stata's var cannot subsequently use dynamic + pass + + def test_forecast(self): + # Tests forecast + exog = (np.arange(75, 75+16) + 3)[:, np.newaxis] + + # Test it through the results class wrapper + desired = self.results.forecast(steps=16, exog=exog) + assert_allclose(desired, self.true['fcast'], atol=1e-6) + + # Test it directly (i.e. without the wrapping done in + # VARMAXResults.get_prediction which converts exog to state_intercept) + beta = self.results.params[-9:-6] + state_intercept = np.concatenate([ + exog*beta[0], exog*beta[1], exog*beta[2]], axis=1).T + desired = mlemodel.MLEResults.get_prediction( + self.results._results, start=75, end=75+15, + state_intercept=state_intercept).predicted_mean + assert_allclose(desired, self.true['fcast'], atol=1e-6) + + def test_summary(self): + summary = self.results.summary() + tables = [str(table) for table in summary.tables] + params = self.true['params'] + + # Check the model overview table + assert_equal(re.search(r'Model:.*VARX\(1\)', tables[0]) is None, False) + + # For each endogenous variable, check the output + for i in range(self.model.k_endog): + offset = i * self.model.k_endog + table = tables[i+2] + + # -> Make sure we have the right table / table name + name = self.model.endog_names[i] + assert_equal(re.search('Results for equation %s' % name, table) is None, False) + + # -> Make sure it's the right size + assert_equal(len(table.split('\n')), 9) + + # -> Check that we have the right coefficients + assert_equal(re.search('L1.dln_inv +%.4f' % params[offset + 0], table) is None, False) + assert_equal(re.search('L1.dln_inc +%.4f' % params[offset + 1], table) is None, False) + assert_equal(re.search('L1.dln_consump +%.4f' % params[offset + 2], table) is None, False) + assert_equal(re.search('beta.x1 +' + forg(params[self.model._params_regression][i], prec=4), table) is None, False) + + # Test the error covariance matrix table + table = tables[-1] + assert_equal(re.search('Error covariance matrix', table) is None, False) + assert_equal(len(table.split('\n')), 11) + + params = params[self.model._params_state_cov] + names = self.model.param_names[self.model._params_state_cov] + for i in range(len(names)): + assert_equal(re.search('%s +%.4f' % (names[i], params[i]), table) is None, False) + +class TestVAR_exog2(CheckLutkepohl): + # This is a regression test, to make sure that the setup with multiple exog + # works correctly. The params are from Stata, but the loglike is from + # this model. Likely the small discrepancy (see the results file) is from + # the approximate diffuse initialization. + @classmethod + def setup_class(cls): + true = results_varmax.lutkepohl_var1_exog2.copy() + true['predict'] = var_results.ix[1:75, ['predict_exog2_1', 'predict_exog2_2', 'predict_exog2_3']] + true['predict'].iloc[0, :] = 0 + true['fcast'] = var_results.ix[76:, ['fcast_exog2_dln_inv', 'fcast_exog2_dln_inc', 'fcast_exog2_dln_consump']] + exog = np.c_[np.ones((75,1)), (np.arange(75) + 3)[:, np.newaxis]] + super(TestVAR_exog2, cls).setup_class( + true, order=(1,0), trend='nc', error_cov_type='unstructured', + exog=exog, initialization='approximate_diffuse', loglikelihood_burn=1) + + def test_mle(self): + pass + + def test_aic(self): + pass + + def test_bic(self): + pass + + def test_bse_approx(self): + pass + + def test_bse_oim(self): + pass + + def test_predict(self): + super(CheckLutkepohl, self).test_predict(end='1978-10-01', atol=1e-3) + + def test_dynamic_predict(self): + # Stata's var cannot subsequently use dynamic + pass + + def test_forecast(self): + # Tests forecast + exog = np.c_[np.ones((16, 1)), (np.arange(75, 75+16) + 3)[:, np.newaxis]] + + desired = self.results.forecast(steps=16, exog=exog) + assert_allclose(desired, self.true['fcast'], atol=1e-6) + + +class TestVAR2(CheckLutkepohl): + @classmethod + def setup_class(cls): + true = results_varmax.lutkepohl_var2.copy() + true['predict'] = var_results.ix[1:, ['predict_var2_1', 'predict_var2_2']] + true['dynamic_predict'] = var_results.ix[1:, ['dyn_predict_var2_1', 'dyn_predict_var2_2']] + super(TestVAR2, cls).setup_class( + true, order=(2,0), trend='nc', error_cov_type='unstructured', + included_vars=['dln_inv', 'dln_inc']) + + def test_bse_approx(self): + # Exclude the covariance cholesky terms + bse = self.results._cov_params_approx().diagonal()**0.5 + assert_allclose(bse[:-3]**2, self.true['var_oim'][:-3], atol=1e-5) + + def test_bse_oim(self): + # Exclude the covariance cholesky terms + bse = self.results._cov_params_oim().diagonal()**0.5 + assert_allclose(bse[:-3]**2, self.true['var_oim'][:-3], atol=1e-2) + + def test_summary(self): + summary = self.results.summary() + tables = [str(table) for table in summary.tables] + params = self.true['params'] + + # Check the model overview table + assert_equal(re.search(r'Model:.*VAR\(2\)', tables[0]) is None, False) + + # For each endogenous variable, check the output + for i in range(self.model.k_endog): + offset = i * self.model.k_endog * self.model.k_ar + table = tables[i+2] + + # -> Make sure we have the right table / table name + name = self.model.endog_names[i] + assert_equal(re.search('Results for equation %s' % name, table) is None, False) + + # -> Make sure it's the right size + assert_equal(len(table.split('\n')), 9) + + # -> Check that we have the right coefficients + assert_equal(re.search('L1.dln_inv +%.4f' % params[offset + 0], table) is None, False) + assert_equal(re.search('L1.dln_inc +%.4f' % params[offset + 1], table) is None, False) + assert_equal(re.search('L2.dln_inv +%.4f' % params[offset + 2], table) is None, False) + assert_equal(re.search('L2.dln_inc +%.4f' % params[offset + 3], table) is None, False) + + # Test the error covariance matrix table + table = tables[-1] + assert_equal(re.search('Error covariance matrix', table) is None, False) + assert_equal(len(table.split('\n')), 8) + + params = params[self.model._params_state_cov] + names = self.model.param_names[self.model._params_state_cov] + for i in range(len(names)): + assert_equal(re.search('%s +%.4f' % (names[i], params[i]), table) is None, False) + + +class CheckFREDManufacturing(CheckVARMAX): + @classmethod + def setup_class(cls, true, order, trend, error_cov_type, cov_type='approx', + **kwargs): + cls.true = true + # 1960:Q1 - 1982:Q4 + with open(current_path + os.sep + 'results' + os.sep + 'manufac.dta', 'rb') as test_data: + dta = pd.read_stata(test_data) + dta.index = dta.month + dta['dlncaputil'] = dta['lncaputil'].diff() + dta['dlnhours'] = dta['lnhours'].diff() + + endog = dta.ix['1972-02-01':, ['dlncaputil', 'dlnhours']] + + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter('always') + cls.model = varmax.VARMAX(endog, order=order, trend=trend, + error_cov_type=error_cov_type, **kwargs) + + cls.results = cls.model.smooth(true['params'], cov_type=cov_type) + + +class TestVARMA(CheckFREDManufacturing): + """ + Test against the sspace VARMA example with some params set to zeros. + """ + + @classmethod + def setup_class(cls): + true = results_varmax.fred_varma11.copy() + true['predict'] = varmax_results.ix[1:, ['predict_varma11_1', 'predict_varma11_2']] + true['dynamic_predict'] = varmax_results.ix[1:, ['dyn_predict_varma11_1', 'dyn_predict_varma11_2']] + super(TestVARMA, cls).setup_class( + true, order=(1,1), trend='nc', error_cov_type='diagonal') + + def test_mle(self): + # Since the VARMA model here is generic (we're just forcing zeros + # in some params) whereas Stata's is restricted, the MLE test isn't + # meaninful + pass + + def test_bse_approx(self): + # Standard errors do not match Stata's + raise SkipTest('Known failure: standard errors do not match.') + + def test_bse_oim(self): + # Standard errors do not match Stata's + raise SkipTest('Known failure: standard errors do not match.') + + def test_aic(self): + # Since the VARMA model here is generic (we're just putting in zeros + # for some params), Stata assumes a different estimated number of + # parameters; hence the aic and bic, will be off + pass + + def test_bic(self): + # Since the VARMA model here is generic (we're just putting in zeros + # for some params), Stata assumes a different estimated number of + # parameters; hence the aic and bic, will be off + pass + + def test_predict(self): + super(TestVARMA, self).test_predict(end='2009-05-01', atol=1e-4) + + def test_dynamic_predict(self): + super(TestVARMA, self).test_dynamic_predict(end='2009-05-01', dynamic='2000-01-01') + + def test_summary(self): + summary = self.results.summary() + tables = [str(table) for table in summary.tables] + params = self.true['params'] + + # Check the model overview table + assert_equal(re.search(r'Model:.*VARMA\(1,1\)', tables[0]) is None, False) + + # For each endogenous variable, check the output + for i in range(self.model.k_endog): + offset_ar = i * self.model.k_endog + offset_ma = self.model.k_endog**2 * self.model.k_ar + i * self.model.k_endog + table = tables[i+2] + + # -> Make sure we have the right table / table name + name = self.model.endog_names[i] + assert_equal(re.search('Results for equation %s' % name, table) is None, False) + + # -> Make sure it's the right size + assert_equal(len(table.split('\n')), 9) + + # -> Check that we have the right coefficients + assert_equal(re.search('L1.dlncaputil +' + forg(params[offset_ar + 0], prec=4), table) is None, False) + assert_equal(re.search('L1.dlnhours +' + forg(params[offset_ar + 1], prec=4), table) is None, False) + assert_equal(re.search(r'L1.e\(dlncaputil\) +' + forg(params[offset_ma + 0], prec=4), table) is None, False) + assert_equal(re.search(r'L1.e\(dlnhours\) +' + forg(params[offset_ma + 1], prec=4), table) is None, False) + + # Test the error covariance matrix table + table = tables[-1] + assert_equal(re.search('Error covariance matrix', table) is None, False) + assert_equal(len(table.split('\n')), 7) + + params = params[self.model._params_state_cov] + names = self.model.param_names[self.model._params_state_cov] + for i in range(len(names)): + assert_equal(re.search('%s +%s' % (names[i], forg(params[i], prec=4)), table) is None, False) + + +class TestVMA1(CheckFREDManufacturing): + """ + Test against the sspace VARMA example with some params set to zeros. + """ + + @classmethod + def setup_class(cls): + true = results_varmax.fred_vma1.copy() + true['predict'] = varmax_results.ix[1:, ['predict_vma1_1', 'predict_vma1_2']] + true['dynamic_predict'] = varmax_results.ix[1:, ['dyn_predict_vma1_1', 'dyn_predict_vma1_2']] + super(TestVMA1, cls).setup_class( + true, order=(0,1), trend='nc', error_cov_type='diagonal') + + def test_mle(self): + # Since the VARMA model here is generic (we're just forcing zeros + # in some params) whereas Stata's is restricted, the MLE test isn't + # meaninful + pass + + def test_bse_approx(self): + # Standard errors do not match Stata's + raise SkipTest('Known failure: standard errors do not match.') + + def test_bse_oim(self): + # Standard errors do not match Stata's + raise SkipTest('Known failure: standard errors do not match.') + + def test_aic(self): + # Since the VARMA model here is generic (we're just putting in zeros + # for some params), Stata assumes a different estimated number of + # parameters; hence the aic and bic, will be off + pass + + def test_bic(self): + # Since the VARMA model here is generic (we're just putting in zeros + # for some params), Stata assumes a different estimated number of + # parameters; hence the aic and bic, will be off + pass + + def test_predict(self): + super(TestVMA1, self).test_predict(end='2009-05-01', atol=1e-4) + + def test_dynamic_predict(self): + super(TestVMA1, self).test_dynamic_predict(end='2009-05-01', dynamic='2000-01-01') + + +def test_specifications(): + # Tests for model specification and state space creation + endog = np.arange(20).reshape(10,2) + exog = np.arange(10) + exog2 = pd.Series(exog, index=pd.date_range('2000-01-01', '2009-01-01', freq='AS')) + + # Test successful model creation + mod = varmax.VARMAX(endog, exog=exog, order=(1,0)) + + # Test successful model creation with pandas exog + mod = varmax.VARMAX(endog, exog=exog2, order=(1,0)) + + +def test_misspecifications(): + # Clear warnings + varmax.__warningregistry__ = {} + + # Tests for model specification and misspecification exceptions + endog = np.arange(20).reshape(10,2) + + # Bad trend specification + assert_raises(ValueError, varmax.VARMAX, endog, order=(1,0), trend='') + + # Bad error_cov_type specification + assert_raises(ValueError, varmax.VARMAX, endog, order=(1,0), error_cov_type='') + + # Bad order specification + assert_raises(ValueError, varmax.VARMAX, endog, order=(0,0)) + + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter('always') + varmax.VARMAX(endog, order=(1,1)) + + # Warning with VARMA specification + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter('always') + + varmax.VARMAX(endog, order=(1,1)) + + message = ('Estimation of VARMA(p,q) models is not generically robust,' + ' due especially to identification issues.') + assert_equal(str(w[0].message), message) + warnings.resetwarnings() + + +def test_misc_exog(): + # Tests for missing data + nobs = 20 + k_endog = 2 + np.random.seed(1208) + endog = np.random.normal(size=(nobs, k_endog)) + endog[:4, 0] = np.nan + endog[2:6, 1] = np.nan + exog1 = np.random.normal(size=(nobs, 1)) + exog2 = np.random.normal(size=(nobs, 2)) + + index = pd.date_range('1970-01-01', freq='QS', periods=nobs) + endog_pd = pd.DataFrame(endog, index=index) + exog1_pd = pd.Series(exog1.squeeze(), index=index) + exog2_pd = pd.DataFrame(exog2, index=index) + + models = [ + varmax.VARMAX(endog, exog=exog1, order=(1, 0)), + varmax.VARMAX(endog, exog=exog2, order=(1, 0)), + varmax.VARMAX(endog_pd, exog=exog1_pd, order=(1, 0)), + varmax.VARMAX(endog_pd, exog=exog2_pd, order=(1, 0)), + ] + + for mod in models: + # Smoke tests + mod.start_params + res = mod.fit(disp=False) + res.summary() + res.predict() + res.predict(dynamic=True) + res.get_prediction() + + oos_exog = np.random.normal(size=(1, mod.k_exog)) + res.forecast(steps=1, exog=oos_exog) + res.get_forecast(steps=1, exog=oos_exog) + + # Smoke tests for invalid exog + oos_exog = np.random.normal(size=(1)) + assert_raises(ValueError, res.forecast, steps=1, exog=oos_exog) + + oos_exog = np.random.normal(size=(2, mod.k_exog)) + assert_raises(ValueError, res.forecast, steps=1, exog=oos_exog) + + oos_exog = np.random.normal(size=(1, mod.k_exog + 1)) + assert_raises(ValueError, res.forecast, steps=1, exog=oos_exog) + + # Test invalid model specifications + assert_raises(ValueError, varmax.VARMAX, endog, exog=np.zeros((10, 4)), + order=(1, 0)) diff --git a/statsmodels/tsa/statespace/tools.py b/statsmodels/tsa/statespace/tools.py new file mode 100644 index 0000000..2c7bb74 --- /dev/null +++ b/statsmodels/tsa/statespace/tools.py @@ -0,0 +1,1413 @@ +""" +Statespace Tools + +Author: Chad Fulton +License: Simplified-BSD +""" +from __future__ import division, absolute_import, print_function + +import numpy as np +from scipy.linalg import solve_sylvester +from statsmodels.tools.data import _is_using_pandas +from . import _statespace + +has_find_best_blas_type = True +try: + from scipy.linalg.blas import find_best_blas_type +except ImportError: # pragma: no cover + has_find_best_blas_type = False + # Shim for SciPy 0.11, derived from tag=0.11 scipy.linalg.blas + _type_conv = {'f': 's', 'd': 'd', 'F': 'c', 'D': 'z', 'G': 'z'} + + def find_best_blas_type(arrays): + dtype, index = max( + [(ar.dtype, i) for i, ar in enumerate(arrays)]) + prefix = _type_conv.get(dtype.char, 'd') + return prefix, dtype, None + +has_trmm = True +try: + from scipy.linalg.blas import dtrmm +except ImportError: + has_trmm = False + + +prefix_dtype_map = { + 's': np.float32, 'd': np.float64, 'c': np.complex64, 'z': np.complex128 +} +prefix_statespace_map = { + 's': _statespace.sStatespace, 'd': _statespace.dStatespace, + 'c': _statespace.cStatespace, 'z': _statespace.zStatespace +} +prefix_kalman_filter_map = { + 's': _statespace.sKalmanFilter, 'd': _statespace.dKalmanFilter, + 'c': _statespace.cKalmanFilter, 'z': _statespace.zKalmanFilter +} +if has_trmm: + prefix_pacf_map = { + 's': _statespace._scompute_coefficients_from_multivariate_pacf, + 'd': _statespace._dcompute_coefficients_from_multivariate_pacf, + 'c': _statespace._ccompute_coefficients_from_multivariate_pacf, + 'z': _statespace._zcompute_coefficients_from_multivariate_pacf + } + prefix_sv_map = { + 's': _statespace._sconstrain_sv_less_than_one, + 'd': _statespace._dconstrain_sv_less_than_one, + 'c': _statespace._cconstrain_sv_less_than_one, + 'z': _statespace._zconstrain_sv_less_than_one + } + + +def companion_matrix(polynomial): + r""" + Create a companion matrix + + Parameters + ---------- + polynomial : array_like or list + If an iterable, interpreted as the coefficients of the polynomial from + which to form the companion matrix. Polynomial coefficients are in + order of increasing degree, and may be either scalars (as in an AR(p) + model) or coefficient matrices (as in a VAR(p) model). If an integer, + it is interpereted as the size of a companion matrix of a scalar + polynomial, where the polynomial coefficients are initialized to zeros. + If a matrix polynomial is passed, :math:`C_0` may be set to the scalar + value 1 to indicate an identity matrix (doing so will improve the speed + of the companion matrix creation). + + Returns + ------- + companion_matrix : array + + Notes + ----- + Given coefficients of a lag polynomial of the form: + + .. math:: + c(L) = c_0 + c_1 L + \dots + c_p L^p + + returns a matrix of the form + + .. math:: + \begin{bmatrix} + \phi_1 & 1 & 0 & \cdots & 0 \\ + \phi_2 & 0 & 1 & & 0 \\ + \vdots & & & \ddots & 0 \\ + & & & & 1 \\ + \phi_n & 0 & 0 & \cdots & 0 \\ + \end{bmatrix} + + where some or all of the :math:`\phi_i` may be non-zero (if `polynomial` is + None, then all are equal to zero). + + If the coefficients provided are scalars :math:`(c_0, c_1, \dots, c_p)`, + then the companion matrix is an :math:`n \times n` matrix formed with the + elements in the first column defined as + :math:`\phi_i = -\frac{c_i}{c_0}, i \in 1, \dots, p`. + + If the coefficients provided are matrices :math:`(C_0, C_1, \dots, C_p)`, + each of shape :math:`(m, m)`, then the companion matrix is an + :math:`nm \times nm` matrix formed with the elements in the first column + defined as :math:`\phi_i = -C_0^{-1} C_i', i \in 1, \dots, p`. + + It is important to understand the expected signs of the coefficients. A + typical AR(p) model is written as: + + .. math:: + y_t = a_1 y_{t-1} + \dots + a_p y_{t-p} + \varepsilon_t + + This can be rewritten as: + + .. math:: + (1 - a_1 L - \dots - a_p L^p )y_t = \varepsilon_t \\ + (1 + c_1 L + \dots + c_p L^p )y_t = \varepsilon_t \\ + c(L) y_t = \varepsilon_t + + The coefficients from this form are defined to be :math:`c_i = - a_i`, and + it is the :math:`c_i` coefficients that this function expects to be + provided. + + """ + identity_matrix = False + if isinstance(polynomial, int): + n = polynomial + m = 1 + polynomial = None + else: + n = len(polynomial) - 1 + + if n < 1: + raise ValueError("Companion matrix polynomials must include at" + " least two terms.") + + if isinstance(polynomial, list) or isinstance(polynomial, tuple): + try: + # Note: can't use polynomial[0] because of the special behavior + # associated with matrix polynomials and the constant 1, see + # below. + m = len(polynomial[1]) + except TypeError: + m = 1 + + # Check if we just have a scalar polynomial + if m == 1: + polynomial = np.asanyarray(polynomial) + # Check if 1 was passed as the first argument (indicating an + # identity matrix) + elif polynomial[0] == 1: + polynomial[0] = np.eye(m) + identity_matrix = True + else: + m = 1 + polynomial = np.asanyarray(polynomial) + + matrix = np.zeros((n * m, n * m), dtype=np.asanyarray(polynomial).dtype) + idx = np.diag_indices((n - 1) * m) + idx = (idx[0], idx[1] + m) + matrix[idx] = 1 + if polynomial is not None and n > 0: + if m == 1: + matrix[:, 0] = -polynomial[1:] / polynomial[0] + elif identity_matrix: + for i in range(n): + matrix[i * m:(i + 1) * m, :m] = -polynomial[i+1].T + else: + inv = np.linalg.inv(polynomial[0]) + for i in range(n): + matrix[i * m:(i + 1) * m, :m] = -np.dot(inv, polynomial[i+1]).T + return matrix + + +def diff(series, k_diff=1, k_seasonal_diff=None, k_seasons=1): + r""" + Difference a series simply and/or seasonally along the zero-th axis. + + Given a series (denoted :math:`y_t`), performs the differencing operation + + .. math:: + + \Delta^d \Delta_s^D y_t + + where :math:`d =` `diff`, :math:`s =` `k_seasons`, + :math:`D =` `seasonal\_diff`, and :math:`\Delta` is the difference + operator. + + Parameters + ---------- + series : array_like + The series to be differenced. + diff : int, optional + The number of simple differences to perform. Default is 1. + seasonal_diff : int or None, optional + The number of seasonal differences to perform. Default is no seasonal + differencing. + k_seasons : int, optional + The seasonal lag. Default is 1. Unused if there is no seasonal + differencing. + + Returns + ------- + differenced : array + The differenced array. + """ + pandas = _is_using_pandas(series, None) + differenced = np.asanyarray(series) if not pandas else series + + # Seasonal differencing + if k_seasonal_diff is not None: + while k_seasonal_diff > 0: + if not pandas: + differenced = ( + differenced[k_seasons:] - differenced[:-k_seasons] + ) + else: + differenced = differenced.diff(k_seasons)[k_seasons:] + k_seasonal_diff -= 1 + + # Simple differencing + if not pandas: + differenced = np.diff(differenced, k_diff, axis=0) + else: + while k_diff > 0: + differenced = differenced.diff()[1:] + k_diff -= 1 + return differenced + + +def is_invertible(polynomial, threshold=1.): + r""" + Determine if a polynomial is invertible. + + Requires all roots of the polynomial lie inside the unit circle. + + Parameters + ---------- + polynomial : array_like or tuple, list + Coefficients of a polynomial, in order of increasing degree. + For example, `polynomial=[1, -0.5]` corresponds to the polynomial + :math:`1 - 0.5x` which has root :math:`2`. If it is a matrix + polynomial (in which case the coefficients are coefficient matrices), + a tuple or list of matrices should be passed. + threshold : number + Allowed threshold for `is_invertible` to return True. Default is 1. + + Notes + ----- + + If the coefficients provided are scalars :math:`(c_0, c_1, \dots, c_n)`, + then the corresponding polynomial is :math:`c_0 + c_1 L + \dots + c_n L^n`. + + + If the coefficients provided are matrices :math:`(C_0, C_1, \dots, C_n)`, + then the corresponding polynomial is :math:`C_0 + C_1 L + \dots + C_n L^n`. + + There are three equivalent methods of determining if the polynomial + represented by the coefficients is invertible: + + The first method factorizes the polynomial into: + + .. math:: + + C(L) & = c_0 + c_1 L + \dots + c_n L^n \\ + & = constant (1 - \lambda_1 L) + (1 - \lambda_2 L) \dots (1 - \lambda_n L) + + In order for :math:`C(L)` to be invertible, it must be that each factor + :math:`(1 - \lambda_i L)` is invertible; the condition is then that + :math:`|\lambda_i| < 1`, where :math:`\lambda_i` is a root of the + polynomial. + + The second method factorizes the polynomial into: + + .. math:: + + C(L) & = c_0 + c_1 L + \dots + c_n L^n \\ + & = constant (L - \zeta_1) (L - \zeta_2) \dots (L - \zeta_3) + + The condition is now :math:`|\zeta_i| > 1`, where :math:`\zeta_i` is a root + of the polynomial with reversed coefficients and + :math:`\lambda_i = \frac{1}{\zeta_i}`. + + Finally, a companion matrix can be formed using the coefficients of the + polynomial. Then the eigenvalues of that matrix give the roots of the + polynomial. This last method is the one actually used. + + See Also + -------- + companion_matrix + """ + # First method: + # np.all(np.abs(np.roots(np.r_[1, params])) < 1) + # Second method: + # np.all(np.abs(np.roots(np.r_[1, params][::-1])) > 1) + # Final method: + eigvals = np.linalg.eigvals(companion_matrix(polynomial)) + return np.all(np.abs(eigvals) < threshold) + + +def solve_discrete_lyapunov(a, q, complex_step=False): + r""" + Solves the discrete Lyapunov equation using a bilinear transformation. + + Notes + ----- + This is a modification of the version in Scipy (see + https://github.com/scipy/scipy/blob/master/scipy/linalg/_solvers.py) + which allows passing through the complex numbers in the matrix a + (usually the transition matrix) in order to allow complex step + differentiation. + """ + eye = np.eye(a.shape[0]) + if not complex_step: + aH = a.conj().transpose() + aHI_inv = np.linalg.inv(aH + eye) + b = np.dot(aH - eye, aHI_inv) + c = 2*np.dot(np.dot(np.linalg.inv(a + eye), q), aHI_inv) + return solve_sylvester(b.conj().transpose(), b, -c) + else: + aH = a.transpose() + aHI_inv = np.linalg.inv(aH + eye) + b = np.dot(aH - eye, aHI_inv) + c = 2*np.dot(np.dot(np.linalg.inv(a + eye), q), aHI_inv) + return solve_sylvester(b.transpose(), b, -c) + + +def constrain_stationary_univariate(unconstrained): + """ + Transform unconstrained parameters used by the optimizer to constrained + parameters used in likelihood evaluation + + Parameters + ---------- + unconstrained : array + Unconstrained parameters used by the optimizer, to be transformed to + stationary coefficients of, e.g., an autoregressive or moving average + component. + + Returns + ------- + constrained : array + Constrained parameters of, e.g., an autoregressive or moving average + component, to be transformed to arbitrary parameters used by the + optimizer. + + References + ---------- + .. [1] Monahan, John F. 1984. + "A Note on Enforcing Stationarity in + Autoregressive-moving Average Models." + Biometrika 71 (2) (August 1): 403-404. + """ + + n = unconstrained.shape[0] + y = np.zeros((n, n), dtype=unconstrained.dtype) + r = unconstrained/((1 + unconstrained**2)**0.5) + for k in range(n): + for i in range(k): + y[k, i] = y[k - 1, i] + r[k] * y[k - 1, k - i - 1] + y[k, k] = r[k] + return -y[n - 1, :] + + +def unconstrain_stationary_univariate(constrained): + """ + Transform constrained parameters used in likelihood evaluation + to unconstrained parameters used by the optimizer + + Parameters + ---------- + constrained : array + Constrained parameters of, e.g., an autoregressive or moving average + component, to be transformed to arbitrary parameters used by the + optimizer. + + Returns + ------- + unconstrained : array + Unconstrained parameters used by the optimizer, to be transformed to + stationary coefficients of, e.g., an autoregressive or moving average + component. + + References + ---------- + .. [1] Monahan, John F. 1984. + "A Note on Enforcing Stationarity in + Autoregressive-moving Average Models." + Biometrika 71 (2) (August 1): 403-404. + """ + n = constrained.shape[0] + y = np.zeros((n, n), dtype=constrained.dtype) + y[n-1:] = -constrained + for k in range(n-1, 0, -1): + for i in range(k): + y[k-1, i] = (y[k, i] - y[k, k]*y[k, k-i-1]) / (1 - y[k, k]**2) + r = y.diagonal() + x = r / ((1 - r**2)**0.5) + return x + + +def _constrain_sv_less_than_one_python(unconstrained, order=None, + k_endog=None): + """ + Transform arbitrary matrices to matrices with singular values less than + one. + + Parameters + ---------- + unconstrained : list + Arbitrary matrices. Should be a list of length `order`, where each + element is an array sized `k_endog` x `k_endog`. + order : integer, optional + The order of the autoregression. + k_endog : integer, optional + The dimension of the data vector. + + Returns + ------- + constrained : list + Partial autocorrelation matrices. Should be a list of length + `order`, where each element is an array sized `k_endog` x `k_endog`. + + Notes + ----- + Corresponds to Lemma 2.2 in Ansley and Kohn (1986). See + `constrain_stationary_multivariate` for more details. + + There is a Cython implementation of this function that can be much faster, + but which requires SciPy 0.14.0 or greater. See + `constrain_stationary_multivariate` for details. + + """ + + from scipy import linalg + + constrained = [] # P_s, s = 1, ..., p + if order is None: + order = len(unconstrained) + if k_endog is None: + k_endog = unconstrained[0].shape[0] + + eye = np.eye(k_endog) + for i in range(order): + A = unconstrained[i] + B, lower = linalg.cho_factor(eye + np.dot(A, A.T), lower=True) + constrained.append(linalg.solve_triangular(B, A, lower=lower)) + return constrained + + +def _compute_coefficients_from_multivariate_pacf_python( + partial_autocorrelations, error_variance, transform_variance=False, + order=None, k_endog=None): + """ + Transform matrices with singular values less than one to matrices + corresponding to a stationary (or invertible) process. + + Parameters + ---------- + partial_autocorrelations : list + Partial autocorrelation matrices. Should be a list of length `order`, + where each element is an array sized `k_endog` x `k_endog`. + error_variance : array + The variance / covariance matrix of the error term. Should be sized + `k_endog` x `k_endog`. This is used as input in the algorithm even if + is not transformed by it (when `transform_variance` is False). The + error term variance is required input when transformation is used + either to force an autoregressive component to be stationary or to + force a moving average component to be invertible. + transform_variance : boolean, optional + Whether or not to transform the error variance term. This option is + not typically used, and the default is False. + order : integer, optional + The order of the autoregression. + k_endog : integer, optional + The dimension of the data vector. + + Returns + ------- + coefficient_matrices : list + Transformed coefficient matrices leading to a stationary VAR + representation. + + Notes + ----- + Corresponds to Lemma 2.1 in Ansley and Kohn (1986). See + `constrain_stationary_multivariate` for more details. + + There is a Cython implementation of this function that can be much faster, + but which requires SciPy 0.14.0 or greater. See + `constrain_stationary_multivariate` for details. + """ + from scipy import linalg + + if order is None: + order = len(partial_autocorrelations) + if k_endog is None: + k_endog = partial_autocorrelations[0].shape[0] + + # If we want to keep the provided variance but with the constrained + # coefficient matrices, we need to make a copy here, and then after the + # main loop we will transform the coefficients to match the passed variance + if not transform_variance: + initial_variance = error_variance + # Need to make the input variance large enough that the recursions + # don't lead to zero-matrices due to roundoff error, which would case + # exceptions from the Cholesky decompositions. + # Note that this will still not always ensure positive definiteness, + # and for k_endog, order large enough an exception may still be raised + error_variance = np.eye(k_endog) * (order + k_endog)**10 + + forward_variances = [error_variance] # \Sigma_s + backward_variances = [error_variance] # \Sigma_s^*, s = 0, ..., p + autocovariances = [error_variance] # \Gamma_s + # \phi_{s,k}, s = 1, ..., p + # k = 1, ..., s+1 + forwards = [] + # \phi_{s,k}^* + backwards = [] + + error_variance_factor = linalg.cholesky(error_variance, lower=True) + + forward_factors = [error_variance_factor] + backward_factors = [error_variance_factor] + + # We fill in the entries as follows: + # [1,1] + # [2,2], [2,1] + # [3,3], [3,1], [3,2] + # ... + # [p,p], [p,1], ..., [p,p-1] + # the last row, correctly ordered, is then used as the coefficients + for s in range(order): # s = 0, ..., p-1 + prev_forwards = forwards + prev_backwards = backwards + forwards = [] + backwards = [] + + # Create the "last" (k = s+1) matrix + # Note: this is for k = s+1. However, below we then have to fill + # in for k = 1, ..., s in order. + # P L*^{-1} = x + # x L* = P + # L*' x' = P' + forwards.append( + linalg.solve_triangular( + backward_factors[s], partial_autocorrelations[s].T, + lower=True, trans='T')) + forwards[0] = np.dot(forward_factors[s], forwards[0].T) + + # P' L^{-1} = x + # x L = P' + # L' x' = P + backwards.append( + linalg.solve_triangular( + forward_factors[s], partial_autocorrelations[s], + lower=True, trans='T')) + backwards[0] = np.dot(backward_factors[s], backwards[0].T) + + # Update the variance + # Note: if s >= 1, this will be further updated in the for loop + # below + # Also, this calculation will be re-used in the forward variance + tmp = np.dot(forwards[0], backward_variances[s]) + autocovariances.append(tmp.copy().T) + + # Create the remaining k = 1, ..., s matrices, + # only has an effect if s >= 1 + for k in range(s): + forwards.insert(k, prev_forwards[k] - np.dot( + forwards[-1], prev_backwards[s-(k+1)])) + + backwards.insert(k, prev_backwards[k] - np.dot( + backwards[-1], prev_forwards[s-(k+1)])) + + autocovariances[s+1] += np.dot(autocovariances[k+1], + prev_forwards[s-(k+1)].T) + + # Create forward and backwards variances + forward_variances.append( + forward_variances[s] - np.dot(tmp, forwards[s].T) + ) + backward_variances.append( + backward_variances[s] - + np.dot( + np.dot(backwards[s], forward_variances[s]), + backwards[s].T + ) + ) + + # Cholesky factors + forward_factors.append( + linalg.cholesky(forward_variances[s+1], lower=True) + ) + backward_factors.append( + linalg.cholesky(backward_variances[s+1], lower=True) + ) + + # If we do not want to use the transformed variance, we need to + # adjust the constrained matrices, as presented in Lemma 2.3, see above + variance = forward_variances[-1] + if not transform_variance: + # Here, we need to construct T such that: + # variance = T * initial_variance * T' + # To do that, consider the Cholesky of variance (L) and + # input_variance (M) to get: + # L L' = T M M' T' = (TM) (TM)' + # => L = T M + # => L M^{-1} = T + initial_variance_factor = np.linalg.cholesky(initial_variance) + transformed_variance_factor = np.linalg.cholesky(variance) + transform = np.dot(initial_variance_factor, + np.linalg.inv(transformed_variance_factor)) + inv_transform = np.linalg.inv(transform) + + for i in range(order): + forwards[i] = ( + np.dot(np.dot(transform, forwards[i]), inv_transform) + ) + + return forwards, variance + + +def constrain_stationary_multivariate_python(unconstrained, error_variance, + transform_variance=False, + prefix=None): + """ + Transform unconstrained parameters used by the optimizer to constrained + parameters used in likelihood evaluation for a vector autoregression. + + Parameters + ---------- + unconstrained : array or list + Arbitrary matrices to be transformed to stationary coefficient matrices + of the VAR. If a list, should be a list of length `order`, where each + element is an array sized `k_endog` x `k_endog`. If an array, should be + the matrices horizontally concatenated and sized + `k_endog` x `k_endog * order`. + error_variance : array + The variance / covariance matrix of the error term. Should be sized + `k_endog` x `k_endog`. This is used as input in the algorithm even if + is not transformed by it (when `transform_variance` is False). The + error term variance is required input when transformation is used + either to force an autoregressive component to be stationary or to + force a moving average component to be invertible. + transform_variance : boolean, optional + Whether or not to transform the error variance term. This option is + not typically used, and the default is False. + prefix : {'s','d','c','z'}, optional + The appropriate BLAS prefix to use for the passed datatypes. Only + use if absolutely sure that the prefix is correct or an error will + result. + + Returns + ------- + constrained : array or list + Transformed coefficient matrices leading to a stationary VAR + representation. Will match the type of the passed `unconstrained` + variable (so if a list was passed, a list will be returned). + + Notes + ----- + In the notation of [1]_, the arguments `(variance, unconstrained)` are + written as :math:`(\Sigma, A_1, \dots, A_p)`, where :math:`p` is the order + of the vector autoregression, and is here determined by the length of + the `unconstrained` argument. + + There are two steps in the constraining algorithm. + + First, :math:`(A_1, \dots, A_p)` are transformed into + :math:`(P_1, \dots, P_p)` via Lemma 2.2 of [1]_. + + Second, :math:`(\Sigma, P_1, \dots, P_p)` are transformed into + :math:`(\Sigma, \phi_1, \dots, \phi_p)` via Lemmas 2.1 and 2.3 of [1]_. + + If `transform_variance=True`, then only Lemma 2.1 is applied in the second + step. + + While this function can be used even in the univariate case, it is much + slower, so in that case `constrain_stationary_univariate` is preferred. + + References + ---------- + .. [1] Ansley, Craig F., and Robert Kohn. 1986. + "A Note on Reparameterizing a Vector Autoregressive Moving Average Model + to Enforce Stationarity." + Journal of Statistical Computation and Simulation 24 (2): 99-106. + .. [2] Ansley, Craig F, and Paul Newbold. 1979. + "Multivariate Partial Autocorrelations." + In Proceedings of the Business and Economic Statistics Section, 349-53. + American Statistical Association + + """ + + use_list = type(unconstrained) == list + if not use_list: + k_endog, order = unconstrained.shape + order //= k_endog + + unconstrained = [ + unconstrained[:k_endog, i*k_endog:(i+1)*k_endog] + for i in range(order) + ] + + order = len(unconstrained) + k_endog = unconstrained[0].shape[0] + + # Step 1: convert from arbitrary matrices to those with singular values + # less than one. + sv_constrained = _constrain_sv_less_than_one_python( + unconstrained, order, k_endog) + + # Step 2: convert matrices from our "partial autocorrelation matrix" space + # (matrices with singular values less than one) to the space of stationary + # coefficient matrices + constrained, var = _compute_coefficients_from_multivariate_pacf_python( + sv_constrained, error_variance, transform_variance, order, k_endog) + + if not use_list: + constrained = np.concatenate(constrained, axis=1).reshape( + k_endog, k_endog * order) + + return constrained, var + + +# Conditionally use the Cython versions of the multivariate constraint if +# possible (i.e. if Scipy >= 0.14.0 is available.) +if has_trmm: + + def constrain_stationary_multivariate(unconstrained, variance, + transform_variance=False, + prefix=None): + + use_list = type(unconstrained) == list + if use_list: + unconstrained = np.concatenate(unconstrained, axis=1) + + k_endog, order = unconstrained.shape + order //= k_endog + + if order < 1: + raise ValueError('Must have order at least 1') + if k_endog < 1: + raise ValueError('Must have at least 1 endogenous variable') + + if prefix is None: + prefix, dtype, _ = find_best_blas_type( + [unconstrained, variance]) + dtype = prefix_dtype_map[prefix] + + unconstrained = np.asfortranarray(unconstrained, dtype=dtype) + variance = np.asfortranarray(variance, dtype=dtype) + + # Step 1: convert from arbitrary matrices to those with singular values + # less than one. + # sv_constrained = _constrain_sv_less_than_one(unconstrained, order, + # k_endog, prefix) + sv_constrained = prefix_sv_map[prefix](unconstrained, order, k_endog) + + # Step 2: convert matrices from our "partial autocorrelation matrix" + # space (matrices with singular values less than one) to the space of + # stationary coefficient matrices + constrained, variance = prefix_pacf_map[prefix]( + sv_constrained, variance, transform_variance, order, k_endog) + + constrained = np.array(constrained, dtype=dtype) + variance = np.array(variance, dtype=dtype) + + if use_list: + constrained = [ + constrained[:k_endog, i*k_endog:(i+1)*k_endog] + for i in range(order) + ] + + return constrained, variance + constrain_stationary_multivariate.__doc__ = ( + constrain_stationary_multivariate_python.__doc__) + +else: + constrain_stationary_multivariate = ( + constrain_stationary_multivariate_python) + + +def _unconstrain_sv_less_than_one(constrained, order=None, k_endog=None): + """ + Transform matrices with singular values less than one to arbitrary + matrices. + + Parameters + ---------- + constrained : list + The partial autocorrelation matrices. Should be a list of length + `order`, where each element is an array sized `k_endog` x `k_endog`. + order : integer, optional + The order of the autoregression. + k_endog : integer, optional + The dimension of the data vector. + + Returns + ------- + unconstrained : list + Unconstrained matrices. A list of length `order`, where each element is + an array sized `k_endog` x `k_endog`. + + Notes + ----- + Corresponds to the inverse of Lemma 2.2 in Ansley and Kohn (1986). See + `unconstrain_stationary_multivariate` for more details. + + """ + from scipy import linalg + + unconstrained = [] # A_s, s = 1, ..., p + if order is None: + order = len(constrained) + if k_endog is None: + k_endog = constrained[0].shape[0] + + eye = np.eye(k_endog) + for i in range(order): + P = constrained[i] + # B^{-1} B^{-1}' = I - P P' + B_inv, lower = linalg.cho_factor(eye - np.dot(P, P.T), lower=True) + # A = BP + # B^{-1} A = P + unconstrained.append(linalg.solve_triangular(B_inv, P, lower=lower)) + return unconstrained + + +def _compute_multivariate_sample_acovf(endog, maxlag): + """ + Computer multivariate sample autocovariances + + Parameters + ---------- + endog : array_like + Sample data on which to compute sample autocovariances. Shaped + `nobs` x `k_endog`. + + Returns + ------- + sample_autocovariances : list + A list of the first `maxlag` sample autocovariance matrices. Each + matrix is shaped `k_endog` x `k_endog`. + + Notes + ----- + This function computes the forward sample autocovariances: + + .. math:: + + \hat \Gamma(s) = \frac{1}{n} \sum_{t=1}^{n-s} + (Z_t - \bar Z) (Z_{t+s} - \bar Z)' + + See page 353 of Wei (1990). This function is primarily implemented for + checking the partial autocorrelation functions below, and so is quite slow. + + References + ---------- + .. [1] Wei, William. 1990. + Time Series Analysis : Univariate and Multivariate Methods. + Boston: Pearson. + """ + # Get the (demeaned) data as an array + endog = np.array(endog) + if endog.ndim == 1: + endog = endog[:, np.newaxis] + endog -= np.mean(endog, axis=0) + + # Dimensions + nobs, k_endog = endog.shape + + sample_autocovariances = [] + for s in range(maxlag + 1): + sample_autocovariances.append(np.zeros((k_endog, k_endog))) + for t in range(nobs - s): + sample_autocovariances[s] += np.outer(endog[t], endog[t+s]) + sample_autocovariances[s] /= nobs + + return sample_autocovariances + + +def _compute_multivariate_acovf_from_coefficients( + coefficients, error_variance, maxlag=None, + forward_autocovariances=False): + """ + Compute multivariate autocovariances from vector autoregression coefficient + matrices + + Parameters + ---------- + coefficients : array or list + The coefficients matrices. If a list, should be a list of length + `order`, where each element is an array sized `k_endog` x `k_endog`. If + an array, should be the coefficient matrices horizontally concatenated + and sized `k_endog` x `k_endog * order`. + error_variance : array + The variance / covariance matrix of the error term. Should be sized + `k_endog` x `k_endog`. + maxlag : integer, optional + The maximum autocovariance to compute. Default is `order`-1. Can be + zero, in which case it returns the variance. + forward_autocovariances : boolean, optional + Whether or not to compute forward autocovariances + :math:`E(y_t y_{t+j}')`. Default is False, so that backward + autocovariances :math:`E(y_t y_{t-j}')` are returned. + + Returns + ------- + autocovariances : list + A list of the first `maxlag` autocovariance matrices. Each matrix is + shaped `k_endog` x `k_endog`. + + Notes + ----- + Computes + + ..math:: + + \Gamma(j) = E(y_t y_{t-j}') + + for j = 1, ..., `maxlag`, unless `forward_autocovariances` is specified, + in which case it computes: + + ..math:: + + E(y_t y_{t+j}') = \Gamma(j)' + + Coefficients are assumed to be provided from the VAR model: + + .. math:: + y_t = A_1 y_{t-1} + \dots + A_p y_{t-p} + \varepsilon_t + + Autocovariances are calculated by solving the associated discrete Lyapunov + equation of the state space representation of the VAR process. + + """ + from scipy import linalg + + # Convert coefficients to a list of matrices, for use in + # `companion_matrix`; get dimensions + if type(coefficients) == list: + order = len(coefficients) + k_endog = coefficients[0].shape[0] + else: + k_endog, order = coefficients.shape + order //= k_endog + + coefficients = [ + coefficients[:k_endog, i*k_endog:(i+1)*k_endog] + for i in range(order) + ] + + if maxlag is None: + maxlag = order-1 + + # Start with VAR(p): w_{t+1} = phi_1 w_t + ... + phi_p w_{t-p+1} + u_{t+1} + # Then stack the VAR(p) into a VAR(1) in companion matrix form: + # z_{t+1} = F z_t + v_t + companion = companion_matrix( + [1] + [-coefficients[i] for i in range(order)] + ).T + + # Compute the error variance matrix for the stacked form: E v_t v_t' + selected_variance = np.zeros(companion.shape) + selected_variance[:k_endog, :k_endog] = error_variance + + # Compute the unconditional variance of z_t: E z_t z_t' + stacked_cov = linalg.solve_discrete_lyapunov(companion, selected_variance) + + # The first (block) row of the variance of z_t gives the first p-1 + # autocovariances of w_t: \Gamma_i = E w_t w_t+i with \Gamma_0 = Var(w_t) + # Note: these are okay, checked against ArmaProcess + autocovariances = [ + stacked_cov[:k_endog, i*k_endog:(i+1)*k_endog] + for i in range(min(order, maxlag+1)) + ] + + for i in range(maxlag - (order-1)): + stacked_cov = np.dot(companion, stacked_cov) + autocovariances += [ + stacked_cov[:k_endog, -k_endog:] + ] + + if forward_autocovariances: + for i in range(len(autocovariances)): + autocovariances[i] = autocovariances[i].T + + return autocovariances + + +def _compute_multivariate_sample_pacf(endog, maxlag): + """ + Computer multivariate sample partial autocorrelations + + Parameters + ---------- + endog : array_like + Sample data on which to compute sample autocovariances. Shaped + `nobs` x `k_endog`. + maxlag : integer + Maximum lag for which to calculate sample partial autocorrelations. + + Returns + ------- + sample_pacf : list + A list of the first `maxlag` sample partial autocorrelation matrices. + Each matrix is shaped `k_endog` x `k_endog`. + + """ + sample_autocovariances = _compute_multivariate_sample_acovf(endog, maxlag) + + return _compute_multivariate_pacf_from_autocovariances( + sample_autocovariances) + + +def _compute_multivariate_pacf_from_autocovariances(autocovariances, + order=None, k_endog=None): + """ + Compute multivariate partial autocorrelations from autocovariances. + + Parameters + ---------- + autocovariances : list + Autocorrelations matrices. Should be a list of length `order` + 1, + where each element is an array sized `k_endog` x `k_endog`. + order : integer, optional + The order of the autoregression. + k_endog : integer, optional + The dimension of the data vector. + + Returns + ------- + pacf : list + List of first `order` multivariate partial autocorrelations. + + Notes + ----- + Note that this computes multivariate partial autocorrelations. + + Corresponds to the inverse of Lemma 2.1 in Ansley and Kohn (1986). See + `unconstrain_stationary_multivariate` for more details. + + Notes + ----- + Computes sample partial autocorrelations if sample autocovariances are + given. + + """ + from scipy import linalg + + if order is None: + order = len(autocovariances)-1 + if k_endog is None: + k_endog = autocovariances[0].shape[0] + + # Now apply the Ansley and Kohn (1986) algorithm, except that instead of + # calculating phi_{s+1, s+1} = L_s P_{s+1} {L_s^*}^{-1} (which requires + # the partial autocorrelation P_{s+1} which is what we're trying to + # calculate here), we calculate it as in Ansley and Newbold (1979), using + # the autocovariances \Gamma_s and the forwards and backwards residual + # variances \Sigma_s, \Sigma_s^*: + # phi_{s+1, s+1} = [ \Gamma_{s+1}' - \phi_{s,1} \Gamma_s' - ... - + # \phi_{s,s} \Gamma_1' ] {\Sigma_s^*}^{-1} + + # Forward and backward variances + forward_variances = [] # \Sigma_s + backward_variances = [] # \Sigma_s^*, s = 0, ..., p + # \phi_{s,k}, s = 1, ..., p + # k = 1, ..., s+1 + forwards = [] + # \phi_{s,k}^* + backwards = [] + + forward_factors = [] # L_s + backward_factors = [] # L_s^*, s = 0, ..., p + + # Ultimately we want to construct the partial autocorrelation matrices + # Note that this is "1-indexed" in the sense that it stores P_1, ... P_p + # rather than starting with P_0. + partial_autocorrelations = [] + + # We fill in the entries of phi_{s,k} as follows: + # [1,1] + # [2,2], [2,1] + # [3,3], [3,1], [3,2] + # ... + # [p,p], [p,1], ..., [p,p-1] + # the last row, correctly ordered, should be the same as the coefficient + # matrices provided in the argument `constrained` + for s in range(order): # s = 0, ..., p-1 + prev_forwards = list(forwards) + prev_backwards = list(backwards) + forwards = [] + backwards = [] + + # Create forward and backwards variances Sigma_s, Sigma*_s + forward_variance = autocovariances[0].copy() + backward_variance = autocovariances[0].T.copy() + + for k in range(s): + forward_variance -= np.dot(prev_forwards[k], + autocovariances[k+1]) + backward_variance -= np.dot(prev_backwards[k], + autocovariances[k+1].T) + + forward_variances.append(forward_variance) + backward_variances.append(backward_variance) + + # Cholesky factors + forward_factors.append( + linalg.cholesky(forward_variances[s], lower=True) + ) + backward_factors.append( + linalg.cholesky(backward_variances[s], lower=True) + ) + + # Create the intermediate sum term + if s == 0: + # phi_11 = \Gamma_1' \Gamma_0^{-1} + # phi_11 \Gamma_0 = \Gamma_1' + # \Gamma_0 phi_11' = \Gamma_1 + forwards.append(linalg.cho_solve( + (forward_factors[0], True), autocovariances[1]).T) + # backwards.append(forwards[-1]) + # phi_11_star = \Gamma_1 \Gamma_0^{-1} + # phi_11_star \Gamma_0 = \Gamma_1 + # \Gamma_0 phi_11_star' = \Gamma_1' + backwards.append(linalg.cho_solve( + (backward_factors[0], True), autocovariances[1].T).T) + else: + # G := \Gamma_{s+1}' - + # \phi_{s,1} \Gamma_s' - .. - \phi_{s,s} \Gamma_1' + tmp_sum = autocovariances[s+1].T.copy() + + for k in range(s): + tmp_sum -= np.dot(prev_forwards[k], autocovariances[s-k].T) + + # Create the "last" (k = s+1) matrix + # Note: this is for k = s+1. However, below we then have to + # fill in for k = 1, ..., s in order. + # phi = G Sigma*^{-1} + # phi Sigma* = G + # Sigma*' phi' = G' + # Sigma* phi' = G' + # (because Sigma* is symmetric) + forwards.append(linalg.cho_solve( + (backward_factors[s], True), tmp_sum.T).T) + + # phi = G' Sigma^{-1} + # phi Sigma = G' + # Sigma' phi' = G + # Sigma phi' = G + # (because Sigma is symmetric) + backwards.append(linalg.cho_solve( + (forward_factors[s], True), tmp_sum).T) + + # Create the remaining k = 1, ..., s matrices, + # only has an effect if s >= 1 + for k in range(s): + forwards.insert(k, prev_forwards[k] - np.dot( + forwards[-1], prev_backwards[s-(k+1)])) + backwards.insert(k, prev_backwards[k] - np.dot( + backwards[-1], prev_forwards[s-(k+1)])) + + # Partial autocorrelation matrix: P_{s+1} + # P = L^{-1} phi L* + # L P = (phi L*) + partial_autocorrelations.append(linalg.solve_triangular( + forward_factors[s], np.dot(forwards[s], backward_factors[s]), + lower=True)) + + return partial_autocorrelations + + +def _compute_multivariate_pacf_from_coefficients(constrained, error_variance, + order=None, k_endog=None): + """ + Transform matrices corresponding to a stationary (or invertible) process + to matrices with singular values less than one. + + Parameters + ---------- + constrained : array or list + The coefficients matrices. If a list, should be a list of length + `order`, where each element is an array sized `k_endog` x `k_endog`. If + an array, should be the coefficient matrices horizontally concatenated + and sized `k_endog` x `k_endog * order`. + error_variance : array + The variance / covariance matrix of the error term. Should be sized + `k_endog` x `k_endog`. + order : integer, optional + The order of the autoregression. + k_endog : integer, optional + The dimension of the data vector. + + Returns + ------- + pacf : list + List of first `order` multivariate partial autocorrelations. + + Notes + ----- + Note that this computes multivariate partial autocorrelations. + + Corresponds to the inverse of Lemma 2.1 in Ansley and Kohn (1986). See + `unconstrain_stationary_multivariate` for more details. + + Notes + ----- + + Coefficients are assumed to be provided from the VAR model: + + .. math:: + y_t = A_1 y_{t-1} + \dots + A_p y_{t-p} + \varepsilon_t + """ + + if type(constrained) == list: + order = len(constrained) + k_endog = constrained[0].shape[0] + else: + k_endog, order = constrained.shape + order //= k_endog + + # Get autocovariances for the process; these are defined to be + # E z_t z_{t-j}' + # However, we want E z_t z_{t+j}' = (E z_t z_{t-j}')' + _acovf = _compute_multivariate_acovf_from_coefficients + + autocovariances = [ + autocovariance.T for autocovariance in + _acovf(constrained, error_variance, maxlag=order)] + + return _compute_multivariate_pacf_from_autocovariances(autocovariances) + + +def unconstrain_stationary_multivariate(constrained, error_variance): + """ + Transform constrained parameters used in likelihood evaluation + to unconstrained parameters used by the optimizer + + Parameters + ---------- + constrained : array or list + Constrained parameters of, e.g., an autoregressive or moving average + component, to be transformed to arbitrary parameters used by the + optimizer. If a list, should be a list of length `order`, where each + element is an array sized `k_endog` x `k_endog`. If an array, should be + the coefficient matrices horizontally concatenated and sized + `k_endog` x `k_endog * order`. + error_variance : array + The variance / covariance matrix of the error term. Should be sized + `k_endog` x `k_endog`. This is used as input in the algorithm even if + is not transformed by it (when `transform_variance` is False). + + Returns + ------- + unconstrained : array + Unconstrained parameters used by the optimizer, to be transformed to + stationary coefficients of, e.g., an autoregressive or moving average + component. Will match the type of the passed `constrained` + variable (so if a list was passed, a list will be returned). + + Notes + ----- + Uses the list representation internally, even if an array is passed. + + References + ---------- + .. [1] Ansley, Craig F., and Robert Kohn. 1986. + "A Note on Reparameterizing a Vector Autoregressive Moving Average Model + to Enforce Stationarity." + Journal of Statistical Computation and Simulation 24 (2): 99-106. + + """ + + from scipy import linalg + + use_list = type(constrained) == list + if not use_list: + k_endog, order = constrained.shape + order //= k_endog + + constrained = [ + constrained[:k_endog, i*k_endog:(i+1)*k_endog] + for i in range(order) + ] + else: + order = len(constrained) + k_endog = constrained[0].shape[0] + + # Step 1: convert matrices from the space of stationary + # coefficient matrices to our "partial autocorrelation matrix" space + # (matrices with singular values less than one) + partial_autocorrelations = _compute_multivariate_pacf_from_coefficients( + constrained, error_variance, order, k_endog) + + # Step 2: convert from arbitrary matrices to those with singular values + # less than one. + unconstrained = _unconstrain_sv_less_than_one( + partial_autocorrelations, order, k_endog) + + if not use_list: + unconstrained = np.concatenate(unconstrained, axis=1) + + return unconstrained, error_variance + + +def validate_matrix_shape(name, shape, nrows, ncols, nobs): + """ + Validate the shape of a possibly time-varying matrix, or raise an exception + + Parameters + ---------- + name : str + The name of the matrix being validated (used in exception messages) + shape : array_like + The shape of the matrix to be validated. May be of size 2 or (if + the matrix is time-varying) 3. + nrows : int + The expected number of rows. + ncols : int + The expected number of columns. + nobs : int + The number of observations (used to validate the last dimension of a + time-varying matrix) + + Raises + ------ + ValueError + If the matrix is not of the desired shape. + """ + ndim = len(shape) + + # Enforce dimension + if ndim not in [2, 3]: + raise ValueError('Invalid value for %s matrix. Requires a' + ' 2- or 3-dimensional array, got %d dimensions' % + (name, ndim)) + # Enforce the shape of the matrix + if not shape[0] == nrows: + raise ValueError('Invalid dimensions for %s matrix: requires %d' + ' rows, got %d' % (name, nrows, shape[0])) + if not shape[1] == ncols: + raise ValueError('Invalid dimensions for %s matrix: requires %d' + ' columns, got %d' % (name, ncols, shape[1])) + + # If we don't yet know `nobs`, don't allow time-varying arrays + if nobs is None and not (ndim == 2 or shape[-1] == 1): + raise ValueError('Invalid dimensions for %s matrix: time-varying' + ' matrices cannot be given unless `nobs` is specified' + ' (implicitly when a dataset is bound or else set' + ' explicity)' % name) + + # Enforce time-varying array size + if ndim == 3 and nobs is not None and not shape[-1] in [1, nobs]: + raise ValueError('Invalid dimensions for time-varying %s' + ' matrix. Requires shape (*,*,%d), got %s' % + (name, nobs, str(shape))) + + +def validate_vector_shape(name, shape, nrows, nobs): + """ + Validate the shape of a possibly time-varying vector, or raise an exception + + Parameters + ---------- + name : str + The name of the vector being validated (used in exception messages) + shape : array_like + The shape of the vector to be validated. May be of size 1 or (if + the vector is time-varying) 2. + nrows : int + The expected number of rows (elements of the vector). + nobs : int + The number of observations (used to validate the last dimension of a + time-varying vector) + + Raises + ------ + ValueError + If the vector is not of the desired shape. + """ + ndim = len(shape) + # Enforce dimension + if ndim not in [1, 2]: + raise ValueError('Invalid value for %s vector. Requires a' + ' 1- or 2-dimensional array, got %d dimensions' % + (name, ndim)) + # Enforce the shape of the vector + if not shape[0] == nrows: + raise ValueError('Invalid dimensions for %s vector: requires %d' + ' rows, got %d' % (name, nrows, shape[0])) + + # If we don't yet know `nobs`, don't allow time-varying arrays + if nobs is None and not (ndim == 1 or shape[-1] == 1): + raise ValueError('Invalid dimensions for %s vector: time-varying' + ' vectors cannot be given unless `nobs` is specified' + ' (implicitly when a dataset is bound or else set' + ' explicity)' % name) + + # Enforce time-varying array size + if ndim == 2 and not shape[1] in [1, nobs]: + raise ValueError('Invalid dimensions for time-varying %s' + ' vector. Requires shape (*,%d), got %s' % + (name, nobs, str(shape))) diff --git a/statsmodels/tsa/statespace/varmax.py b/statsmodels/tsa/statespace/varmax.py new file mode 100644 index 0000000..958b335 --- /dev/null +++ b/statsmodels/tsa/statespace/varmax.py @@ -0,0 +1,956 @@ +""" +Vector Autoregressive Moving Average with eXogenous regressors model + +Author: Chad Fulton +License: Simplified-BSD +""" +from __future__ import division, absolute_import, print_function + +from warnings import warn +from statsmodels.compat.collections import OrderedDict + +import pandas as pd +import numpy as np +from .kalman_filter import ( + KalmanFilter, FilterResults, INVERT_UNIVARIATE, SOLVE_LU +) +from .mlemodel import MLEModel, MLEResults, MLEResultsWrapper +from .tools import ( + companion_matrix, diff, is_invertible, + constrain_stationary_multivariate, unconstrain_stationary_multivariate +) +from statsmodels.tools.tools import Bunch +from statsmodels.tools.data import _is_using_pandas +from statsmodels.tsa.vector_ar import var_model +import statsmodels.base.wrapper as wrap +from statsmodels.tools.sm_exceptions import (EstimationWarning, ValueWarning) + + +class VARMAX(MLEModel): + r""" + Vector Autoregressive Moving Average with eXogenous regressors model + + Parameters + ---------- + endog : array_like + The observed time-series process :math:`y`, , shaped nobs x k_endog. + exog : array_like, optional + Array of exogenous regressors, shaped nobs x k. + order : iterable + The (p,q) order of the model for the number of AR and MA parameters to + use. + trend : {'nc', 'c'}, optional + Parameter controlling the deterministic trend polynomial. + Can be specified as a string where 'c' indicates a constant intercept + and 'nc' indicates no intercept term. + error_cov_type : {'diagonal', 'unstructured'}, optional + The structure of the covariance matrix of the error term, where + "unstructured" puts no restrictions on the matrix and "diagonal" + requires it to be a diagonal matrix (uncorrelated errors). Default is + "unstructured". + measurement_error : boolean, optional + Whether or not to assume the endogenous observations `endog` were + measured with error. Default is False. + enforce_stationarity : boolean, optional + Whether or not to transform the AR parameters to enforce stationarity + in the autoregressive component of the model. Default is True. + enforce_invertibility : boolean, optional + Whether or not to transform the MA parameters to enforce invertibility + in the moving average component of the model. Default is True. + **kwargs + Keyword arguments may be used to provide default values for state space + matrices or for Kalman filtering options. See `Representation`, and + `KalmanFilter` for more details. + + Attributes + ---------- + order : iterable + The (p,q) order of the model for the number of AR and MA parameters to + use. + trend : {'nc', 'c'}, optional + Parameter controlling the deterministic trend polynomial. + Can be specified as a string where 'c' indicates a constant intercept + and 'nc' indicates no intercept term. + error_cov_type : {'diagonal', 'unstructured'}, optional + The structure of the covariance matrix of the error term, where + "unstructured" puts no restrictions on the matrix and "diagonal" + requires it to be a diagonal matrix (uncorrelated errors). Default is + "unstructured". + measurement_error : boolean, optional + Whether or not to assume the endogenous observations `endog` were + measured with error. Default is False. + enforce_stationarity : boolean, optional + Whether or not to transform the AR parameters to enforce stationarity + in the autoregressive component of the model. Default is True. + enforce_invertibility : boolean, optional + Whether or not to transform the MA parameters to enforce invertibility + in the moving average component of the model. Default is True. + + Notes + ----- + Generically, the VARMAX model is specified (see for example chapter 18 of + [1]_): + + .. math:: + + y_t = \nu + A_1 y_{t-1} + \dots + A_p y_{t-p} + B x_t + \epsilon_t + + M_1 \epsilon_{t-1} + \dots M_q \epsilon_{t-q} + + where :math:`\epsilon_t \sim N(0, \Omega)`, and where :math:`y_t` is a + `k_endog x 1` vector. Additionally, this model allows considering the case + where the variables are measured with error. + + Note that in the full VARMA(p,q) case there is a fundamental identification + problem in that the coefficient matrices :math:`\{A_i, M_j\}` are not + generally unique, meaning that for a given time series process there may + be multiple sets of matrices that equivalently represent it. See Chapter 12 + of [1]_ for more informationl. Although this class can be used to estimate + VARMA(p,q) models, a warning is issued to remind users that no steps have + been taken to ensure identification in this case. + + References + ---------- + .. [1] Lutkepohl, Helmut. 2007. + New Introduction to Multiple Time Series Analysis. + Berlin: Springer. + + """ + + def __init__(self, endog, exog=None, order=(1, 0), trend='c', + error_cov_type='unstructured', measurement_error=False, + enforce_stationarity=True, enforce_invertibility=True, + **kwargs): + + # Model parameters + self.error_cov_type = error_cov_type + self.measurement_error = measurement_error + self.enforce_stationarity = enforce_stationarity + self.enforce_invertibility = enforce_invertibility + + # Save the given orders + self.order = order + self.trend = trend + + # Model orders + self.k_ar = int(order[0]) + self.k_ma = int(order[1]) + self.k_trend = int(self.trend == 'c') + + # Check for valid model + if trend not in ['c', 'nc']: + raise ValueError('Invalid trend specification.') + if error_cov_type not in ['diagonal', 'unstructured']: + raise ValueError('Invalid error covariance matrix type' + ' specification.') + if self.k_ar == 0 and self.k_ma == 0: + raise ValueError('Invalid VARMAX(p,q) specification; at least one' + ' p,q must be greater than zero.') + + # Warn for VARMA model + if self.k_ar > 0 and self.k_ma > 0: + warn('Estimation of VARMA(p,q) models is not generically robust,' + ' due especially to identification issues.', + EstimationWarning) + + # Exogenous data + self.k_exog = 0 + if exog is not None: + exog_is_using_pandas = _is_using_pandas(exog, None) + if not exog_is_using_pandas: + exog = np.asarray(exog) + + # Make sure we have 2-dimensional array + if exog.ndim == 1: + if not exog_is_using_pandas: + exog = exog[:, None] + else: + exog = pd.DataFrame(exog) + + self.k_exog = exog.shape[1] + + # Note: at some point in the future might add state regression, as in + # SARIMAX. + self.mle_regression = self.k_exog > 0 + + # We need to have an array or pandas at this point + if not _is_using_pandas(endog, None): + endog = np.asanyarray(endog) + + # Model order + # Used internally in various places + _min_k_ar = max(self.k_ar, 1) + self._k_order = _min_k_ar + self.k_ma + + # Number of states + k_endog = endog.shape[1] + k_posdef = k_endog + k_states = k_endog * self._k_order + + # By default, initialize as stationary + kwargs.setdefault('initialization', 'stationary') + + # By default, use LU decomposition + kwargs.setdefault('inversion_method', INVERT_UNIVARIATE | SOLVE_LU) + + # Initialize the state space model + super(VARMAX, self).__init__( + endog, exog=exog, k_states=k_states, k_posdef=k_posdef, **kwargs + ) + + # Set as time-varying model if we have time-trend or exog + if self.k_exog > 0 or self.k_trend > 1: + self.ssm._time_invariant = False + + # Initialize the parameters + self.parameters = OrderedDict() + self.parameters['trend'] = self.k_endog * self.k_trend + self.parameters['ar'] = self.k_endog**2 * self.k_ar + self.parameters['ma'] = self.k_endog**2 * self.k_ma + self.parameters['regression'] = self.k_endog * self.k_exog + if self.error_cov_type == 'diagonal': + self.parameters['state_cov'] = self.k_endog + # These parameters fill in a lower-triangular matrix which is then + # dotted with itself to get a positive definite matrix. + elif self.error_cov_type == 'unstructured': + self.parameters['state_cov'] = ( + int(self.k_endog * (self.k_endog + 1) / 2) + ) + self.parameters['obs_cov'] = self.k_endog * self.measurement_error + self.k_params = sum(self.parameters.values()) + + # Initialize known elements of the state space matrices + + # If we have exog effects, then the state intercept needs to be + # time-varying + if self.k_exog > 0: + self.ssm['state_intercept'] = np.zeros((self.k_states, self.nobs)) + + # The design matrix is just an identity for the first k_endog states + idx = np.diag_indices(self.k_endog) + self.ssm[('design',) + idx] = 1 + + # The transition matrix is described in four blocks, where the upper + # left block is in companion form with the autoregressive coefficient + # matrices (so it is shaped k_endog * k_ar x k_endog * k_ar) ... + if self.k_ar > 0: + idx = np.diag_indices((self.k_ar - 1) * self.k_endog) + idx = idx[0] + self.k_endog, idx[1] + self.ssm[('transition',) + idx] = 1 + # ... and the lower right block is in companion form with zeros as the + # coefficient matrices (it is shaped k_endog * k_ma x k_endog * k_ma). + idx = np.diag_indices((self.k_ma - 1) * self.k_endog) + idx = (idx[0] + (_min_k_ar + 1) * self.k_endog, + idx[1] + _min_k_ar * self.k_endog) + self.ssm[('transition',) + idx] = 1 + + # The selection matrix is described in two blocks, where the upper + # block selects the all k_posdef errors in the first k_endog rows + # (the upper block is shaped k_endog * k_ar x k) and the lower block + # also selects all k_posdef errors in the first k_endog rows (the lower + # block is shaped k_endog * k_ma x k). + idx = np.diag_indices(self.k_endog) + self.ssm[('selection',) + idx] = 1 + idx = idx[0] + _min_k_ar * self.k_endog, idx[1] + if self.k_ma > 0: + self.ssm[('selection',) + idx] = 1 + + # Cache some indices + if self.trend == 'c' and self.k_exog == 0: + self._idx_state_intercept = np.s_['state_intercept', :k_endog] + elif self.k_exog > 0: + self._idx_state_intercept = np.s_['state_intercept', :k_endog, :] + if self.k_ar > 0: + self._idx_transition = np.s_['transition', :k_endog, :] + else: + self._idx_transition = np.s_['transition', :k_endog, k_endog:] + if self.error_cov_type == 'diagonal': + self._idx_state_cov = ( + ('state_cov',) + np.diag_indices(self.k_endog)) + elif self.error_cov_type == 'unstructured': + self._idx_lower_state_cov = np.tril_indices(self.k_endog) + if self.measurement_error: + self._idx_obs_cov = ('obs_cov',) + np.diag_indices(self.k_endog) + + # Cache some slices + def _slice(key, offset): + length = self.parameters[key] + param_slice = np.s_[offset:offset + length] + offset += length + return param_slice, offset + + offset = 0 + self._params_trend, offset = _slice('trend', offset) + self._params_ar, offset = _slice('ar', offset) + self._params_ma, offset = _slice('ma', offset) + self._params_regression, offset = _slice('regression', offset) + self._params_state_cov, offset = _slice('state_cov', offset) + self._params_obs_cov, offset = _slice('obs_cov', offset) + + def filter(self, params, **kwargs): + kwargs.setdefault('results_class', VARMAXResults) + kwargs.setdefault('results_wrapper_class', VARMAXResultsWrapper) + return super(VARMAX, self).filter(params, **kwargs) + + def smooth(self, params, **kwargs): + kwargs.setdefault('results_class', VARMAXResults) + kwargs.setdefault('results_wrapper_class', VARMAXResultsWrapper) + return super(VARMAX, self).smooth(params, **kwargs) + + @property + def start_params(self): + params = np.zeros(self.k_params, dtype=np.float64) + + # A. Run a multivariate regression to get beta estimates + endog = self.endog.copy() + exog = self.exog.copy() if self.k_exog > 0 else None + + # Although the Kalman filter can deal with missing values in endog, + # conditional sum of squares cannot + if np.any(np.isnan(endog)): + mask = ~np.any(np.isnan(endog), axis=1) + endog = endog[mask] + if exog is not None: + exog = exog[mask] + + # Regression effects via OLS + exog_params = np.zeros(0) + if self.k_exog > 0: + exog_params = np.linalg.pinv(exog).dot(endog).T + endog -= np.dot(exog, exog_params.T) + + # B. Run a VAR model on endog to get trend, AR parameters + ar_params = [] + k_ar = self.k_ar if self.k_ar > 0 else 1 + mod_ar = var_model.VAR(endog) + res_ar = mod_ar.fit(maxlags=k_ar, ic=None, trend=self.trend) + ar_params = np.array(res_ar.params.T) + if self.trend == 'c': + trend_params = ar_params[:, 0] + if self.k_ar > 0: + ar_params = ar_params[:, 1:].ravel() + else: + ar_params = [] + elif self.k_ar > 0: + ar_params = ar_params.ravel() + else: + ar_params = [] + endog = res_ar.resid + + # Test for stationarity + if self.k_ar > 0 and self.enforce_stationarity: + coefficient_matrices = ( + ar_params.reshape( + self.k_endog * self.k_ar, self.k_endog + ).T + ).reshape(self.k_endog, self.k_endog, self.k_ar).T + + stationary = is_invertible([1] + list(-coefficient_matrices)) + + if not stationary: + raise ValueError('Non-stationary starting autoregressive' + ' parameters found with `enforce_stationarity`' + ' set to True.') + + # C. Run a VAR model on the residuals to get MA parameters + ma_params = [] + if self.k_ma > 0: + mod_ma = var_model.VAR(endog) + res_ma = mod_ma.fit(maxlags=self.k_ma, ic=None, trend='nc') + ma_params = np.array(res_ma.params.T).ravel() + + # Test for invertibility + if self.enforce_invertibility: + coefficient_matrices = ( + ma_params.reshape( + self.k_endog * self.k_ma, self.k_endog + ).T + ).reshape(self.k_endog, self.k_endog, self.k_ma).T + + invertible = is_invertible([1] + list(-coefficient_matrices)) + + if not invertible: + raise ValueError('Non-invertible starting moving-average' + ' parameters found with `enforce_stationarity`' + ' set to True.') + + # 1. Intercept terms + if self.trend == 'c': + params[self._params_trend] = trend_params + + # 2. AR terms + params[self._params_ar] = ar_params + + # 3. MA terms + params[self._params_ma] = ma_params + + # 4. Regression terms + if self.mle_regression: + params[self._params_regression] = exog_params.ravel() + + # 5. State covariance terms + if self.error_cov_type == 'diagonal': + params[self._params_state_cov] = res_ar.sigma_u.diagonal() + elif self.error_cov_type == 'unstructured': + cov_factor = np.linalg.cholesky(res_ar.sigma_u) + params[self._params_state_cov] = ( + cov_factor[self._idx_lower_state_cov].ravel()) + + # 5. Measurement error variance terms + if self.measurement_error: + if self.k_ma > 0: + params[self._params_obs_cov] = res_ma.sigma_u.diagonal() + else: + params[self._params_obs_cov] = res_ar.sigma_u.diagonal() + + return params + + @property + def param_names(self): + param_names = [] + + # 1. Intercept terms + if self.trend == 'c': + param_names += [ + 'const.%s' % self.endog_names[i] + for i in range(self.k_endog) + ] + + # 2. AR terms + param_names += [ + 'L%d.%s.%s' % (i+1, self.endog_names[k], self.endog_names[j]) + for j in range(self.k_endog) + for i in range(self.k_ar) + for k in range(self.k_endog) + ] + + # 3. MA terms + param_names += [ + 'L%d.e(%s).%s' % (i+1, self.endog_names[k], self.endog_names[j]) + for j in range(self.k_endog) + for i in range(self.k_ma) + for k in range(self.k_endog) + ] + + # 4. Regression terms + param_names += [ + 'beta.%s.%s' % (self.exog_names[j], self.endog_names[i]) + for i in range(self.k_endog) + for j in range(self.k_exog) + ] + + # 5. State covariance terms + if self.error_cov_type == 'diagonal': + param_names += [ + 'sigma2.%s' % self.endog_names[i] + for i in range(self.k_endog) + ] + elif self.error_cov_type == 'unstructured': + param_names += [ + ('sqrt.var.%s' % self.endog_names[i] if i == j else + 'sqrt.cov.%s.%s' % (self.endog_names[j], self.endog_names[i])) + for i in range(self.k_endog) + for j in range(i+1) + ] + + # 5. Measurement error variance terms + if self.measurement_error: + param_names += [ + 'measurement_variance.%s' % self.endog_names[i] + for i in range(self.k_endog) + ] + + return param_names + + def transform_params(self, unconstrained): + """ + Transform unconstrained parameters used by the optimizer to constrained + parameters used in likelihood evaluation + + Parameters + ---------- + unconstrained : array_like + Array of unconstrained parameters used by the optimizer, to be + transformed. + + Returns + ------- + constrained : array_like + Array of constrained parameters which may be used in likelihood + evalation. + + Notes + ----- + Constrains the factor transition to be stationary and variances to be + positive. + """ + unconstrained = np.array(unconstrained, ndmin=1) + constrained = np.zeros(unconstrained.shape, dtype=unconstrained.dtype) + + # 1. Intercept terms: nothing to do + constrained[self._params_trend] = unconstrained[self._params_trend] + + # 2. AR terms: optionally force to be stationary + if self.k_ar > 0 and self.enforce_stationarity: + # Create the state covariance matrix + if self.error_cov_type == 'diagonal': + state_cov = np.diag(unconstrained[self._params_state_cov]**2) + elif self.error_cov_type == 'unstructured': + state_cov_lower = np.zeros(self.ssm['state_cov'].shape, + dtype=unconstrained.dtype) + state_cov_lower[self._idx_lower_state_cov] = ( + unconstrained[self._params_state_cov]) + state_cov = np.dot(state_cov_lower, state_cov_lower.T) + + # Transform the parameters + coefficients = unconstrained[self._params_ar].reshape( + self.k_endog, self.k_endog * self.k_ar) + coefficient_matrices, variance = ( + constrain_stationary_multivariate(coefficients, state_cov)) + constrained[self._params_ar] = coefficient_matrices.ravel() + else: + constrained[self._params_ar] = unconstrained[self._params_ar] + + # 3. MA terms: optionally force to be invertible + if self.k_ma > 0 and self.enforce_invertibility: + # Transform the parameters, using an identity variance matrix + state_cov = np.eye(self.k_endog, dtype=unconstrained.dtype) + coefficients = unconstrained[self._params_ma].reshape( + self.k_endog, self.k_endog * self.k_ma) + coefficient_matrices, variance = ( + constrain_stationary_multivariate(coefficients, state_cov)) + constrained[self._params_ma] = coefficient_matrices.ravel() + else: + constrained[self._params_ma] = unconstrained[self._params_ma] + + # 4. Regression terms: nothing to do + constrained[self._params_regression] = ( + unconstrained[self._params_regression]) + + # 5. State covariance terms + # If we have variances, force them to be positive + if self.error_cov_type == 'diagonal': + constrained[self._params_state_cov] = ( + unconstrained[self._params_state_cov]**2) + # Otherwise, nothing needs to be done + elif self.error_cov_type == 'unstructured': + constrained[self._params_state_cov] = ( + unconstrained[self._params_state_cov]) + + # 5. Measurement error variance terms + if self.measurement_error: + # Force these to be positive + constrained[self._params_obs_cov] = ( + unconstrained[self._params_obs_cov]**2) + + return constrained + + def untransform_params(self, constrained): + """ + Transform constrained parameters used in likelihood evaluation + to unconstrained parameters used by the optimizer. + + Parameters + ---------- + constrained : array_like + Array of constrained parameters used in likelihood evalution, to be + transformed. + + Returns + ------- + unconstrained : array_like + Array of unconstrained parameters used by the optimizer. + """ + constrained = np.array(constrained, ndmin=1) + unconstrained = np.zeros(constrained.shape, dtype=constrained.dtype) + + # 1. Intercept terms: nothing to do + unconstrained[self._params_trend] = constrained[self._params_trend] + + # 2. AR terms: optionally were forced to be stationary + if self.k_ar > 0 and self.enforce_stationarity: + # Create the state covariance matrix + if self.error_cov_type == 'diagonal': + state_cov = np.diag(constrained[self._params_state_cov]) + elif self.error_cov_type == 'unstructured': + state_cov_lower = np.zeros(self.ssm['state_cov'].shape, + dtype=constrained.dtype) + state_cov_lower[self._idx_lower_state_cov] = ( + constrained[self._params_state_cov]) + state_cov = np.dot(state_cov_lower, state_cov_lower.T) + + # Transform the parameters + coefficients = constrained[self._params_ar].reshape( + self.k_endog, self.k_endog * self.k_ar) + unconstrained_matrices, variance = ( + unconstrain_stationary_multivariate(coefficients, state_cov)) + unconstrained[self._params_ar] = unconstrained_matrices.ravel() + else: + unconstrained[self._params_ar] = constrained[self._params_ar] + + # 3. MA terms: optionally were forced to be invertible + if self.k_ma > 0 and self.enforce_invertibility: + # Transform the parameters, using an identity variance matrix + state_cov = np.eye(self.k_endog, dtype=constrained.dtype) + coefficients = constrained[self._params_ma].reshape( + self.k_endog, self.k_endog * self.k_ma) + unconstrained_matrices, variance = ( + unconstrain_stationary_multivariate(coefficients, state_cov)) + unconstrained[self._params_ma] = unconstrained_matrices.ravel() + else: + unconstrained[self._params_ma] = constrained[self._params_ma] + + # 4. Regression terms: nothing to do + unconstrained[self._params_regression] = ( + constrained[self._params_regression]) + + # 5. State covariance terms + # If we have variances, then these were forced to be positive + if self.error_cov_type == 'diagonal': + unconstrained[self._params_state_cov] = ( + constrained[self._params_state_cov]**0.5) + # Otherwise, nothing needs to be done + elif self.error_cov_type == 'unstructured': + unconstrained[self._params_state_cov] = ( + constrained[self._params_state_cov]) + + # 5. Measurement error variance terms + if self.measurement_error: + # These were forced to be positive + unconstrained[self._params_obs_cov] = ( + constrained[self._params_obs_cov]**0.5) + + return unconstrained + + def update(self, params, **kwargs): + params = super(VARMAX, self).update(params, **kwargs) + + # 1. State intercept + if self.mle_regression: + exog_params = params[self._params_regression].reshape( + self.k_endog, self.k_exog).T + intercept = np.dot(self.exog, exog_params) + if self.trend == 'c': + intercept += params[self._params_trend] + self.ssm[self._idx_state_intercept] = intercept.T + elif self.trend == 'c': + self.ssm[self._idx_state_intercept] = params[self._params_trend] + + # 2. Transition + ar = params[self._params_ar].reshape( + self.k_endog, self.k_endog * self.k_ar) + ma = params[self._params_ma].reshape( + self.k_endog, self.k_endog * self.k_ma) + self.ssm[self._idx_transition] = np.c_[ar, ma] + + # 3. State covariance + if self.error_cov_type == 'diagonal': + self.ssm[self._idx_state_cov] = ( + params[self._params_state_cov] + ) + elif self.error_cov_type == 'unstructured': + state_cov_lower = np.zeros(self.ssm['state_cov'].shape, + dtype=params.dtype) + state_cov_lower[self._idx_lower_state_cov] = ( + params[self._params_state_cov]) + self.ssm['state_cov'] = np.dot(state_cov_lower, state_cov_lower.T) + + # 4. Observation covariance + if self.measurement_error: + self.ssm[self._idx_obs_cov] = params[self._params_obs_cov] + + +class VARMAXResults(MLEResults): + """ + Class to hold results from fitting an VARMAX model. + + Parameters + ---------- + model : VARMAX instance + The fitted model instance + + Attributes + ---------- + specification : dictionary + Dictionary including all attributes from the VARMAX model instance. + coefficient_matrices_var : array + Array containing autoregressive lag polynomial coefficient matrices, + ordered from lowest degree to highest. + coefficient_matrices_vma : array + Array containing moving average lag polynomial coefficients, + ordered from lowest degree to highest. + + See Also + -------- + statsmodels.tsa.statespace.kalman_filter.FilterResults + statsmodels.tsa.statespace.mlemodel.MLEResults + """ + def __init__(self, model, params, filter_results, cov_type='opg', + **kwargs): + super(VARMAXResults, self).__init__(model, params, filter_results, + cov_type, **kwargs) + + self.df_resid = np.inf # attribute required for wald tests + + self.specification = Bunch(**{ + # Set additional model parameters + 'error_cov_type': self.model.error_cov_type, + 'measurement_error': self.model.measurement_error, + 'enforce_stationarity': self.model.enforce_stationarity, + 'enforce_invertibility': self.model.enforce_invertibility, + + 'order': self.model.order, + + # Model order + 'k_ar': self.model.k_ar, + 'k_ma': self.model.k_ma, + + # Trend / Regression + 'trend': self.model.trend, + 'k_trend': self.model.k_trend, + 'k_exog': self.model.k_exog, + }) + + # Polynomials / coefficient matrices + self.coefficient_matrices_var = None + self.coefficient_matrices_vma = None + if self.model.k_ar > 0: + ar_params = np.array(self.params[self.model._params_ar]) + k_endog = self.model.k_endog + k_ar = self.model.k_ar + self.coefficient_matrices_var = ( + ar_params.reshape(k_endog * k_ar, k_endog).T + ).reshape(k_endog, k_endog, k_ar).T + if self.model.k_ma > 0: + ma_params = np.array(self.params[self.model._params_ma]) + k_endog = self.model.k_endog + k_ma = self.model.k_ma + self.coefficient_matrices_vma = ( + ma_params.reshape(k_endog * k_ma, k_endog).T + ).reshape(k_endog, k_endog, k_ma).T + + def get_prediction(self, start=None, end=None, dynamic=False, exog=None, + **kwargs): + """ + In-sample prediction and out-of-sample forecasting + + Parameters + ---------- + start : int, str, or datetime, optional + Zero-indexed observation number at which to start forecasting, ie., + the first forecast is start. Can also be a date string to + parse or a datetime type. Default is the the zeroth observation. + end : int, str, or datetime, optional + Zero-indexed observation number at which to end forecasting, ie., + the first forecast is start. Can also be a date string to + parse or a datetime type. However, if the dates index does not + have a fixed frequency, end must be an integer index if you + want out of sample prediction. Default is the last observation in + the sample. + exog : array_like, optional + If the model includes exogenous regressors, you must provide + exactly enough out-of-sample values for the exogenous variables if + end is beyond the last observation in the sample. + dynamic : boolean, int, str, or datetime, optional + Integer offset relative to `start` at which to begin dynamic + prediction. Can also be an absolute date string to parse or a + datetime type (these are not interpreted as offsets). + Prior to this observation, true endogenous values will be used for + prediction; starting with this observation and continuing through + the end of prediction, forecasted endogenous values will be used + instead. + **kwargs + Additional arguments may required for forecasting beyond the end + of the sample. See `FilterResults.predict` for more details. + + Returns + ------- + forecast : array + Array of out of sample forecasts. + """ + if start is None: + start = 0 + + # Handle end (e.g. date) + _start = self.model._get_predict_start(start) + _end, _out_of_sample = self.model._get_predict_end(end) + + # Handle exogenous parameters + if _out_of_sample and (self.model.k_exog + self.model.k_trend > 0): + # Create a new faux VARMAX model for the extended dataset + nobs = self.model.data.orig_endog.shape[0] + _out_of_sample + endog = np.zeros((nobs, self.model.k_endog)) + + if self.model.k_exog > 0: + if exog is None: + raise ValueError('Out-of-sample forecasting in a model' + ' with a regression component requires' + ' additional exogenous values via the' + ' `exog` argument.') + exog = np.array(exog) + required_exog_shape = (_out_of_sample, self.model.k_exog) + if not exog.shape == required_exog_shape: + raise ValueError('Provided exogenous values are not of the' + ' appropriate shape. Required %s, got %s.' + % (str(required_exog_shape), + str(exog.shape))) + exog = np.c_[self.model.data.orig_exog.T, exog.T].T + + # TODO replace with init_kwds or specification or similar + model = VARMAX( + endog, + exog=exog, + order=self.model.order, + trend=self.model.trend, + error_cov_type=self.model.error_cov_type, + measurement_error=self.model.measurement_error, + enforce_stationarity=self.model.enforce_stationarity, + enforce_invertibility=self.model.enforce_invertibility + ) + model.update(self.params) + + # Set the kwargs with the update time-varying state space + # representation matrices + for name in self.filter_results.shapes.keys(): + if name == 'obs': + continue + mat = getattr(model.ssm, name) + if mat.shape[-1] > 1: + if len(mat.shape) == 2: + kwargs[name] = mat[:, -_out_of_sample:] + else: + kwargs[name] = mat[:, :, -_out_of_sample:] + elif self.model.k_exog == 0 and exog is not None: + warn('Exogenous array provided to predict, but additional data not' + ' required. `exog` argument ignored.', ValueWarning) + + return super(VARMAXResults, self).get_prediction( + start=start, end=end, dynamic=dynamic, exog=exog, **kwargs + ) + + def summary(self, alpha=.05, start=None, separate_params=True): + from statsmodels.iolib.summary import summary_params + + # Create the model name + spec = self.specification + if spec.k_ar > 0 and spec.k_ma > 0: + model_name = 'VARMA' + order = '(%s,%s)' % (spec.k_ar, spec.k_ma) + elif spec.k_ar > 0: + model_name = 'VAR' + order = '(%s)' % (spec.k_ar) + else: + model_name = 'VMA' + order = '(%s)' % (spec.k_ma) + if spec.k_exog > 0: + model_name += 'X' + model_name = [model_name + order] + + if spec.trend == 'c': + model_name.append('intercept') + + if spec.measurement_error: + model_name.append('measurement error') + + summary = super(VARMAXResults, self).summary( + alpha=alpha, start=start, model_name=model_name, + display_params=not separate_params + ) + + if separate_params: + indices = np.arange(len(self.params)) + + def make_table(self, mask, title, strip_end=True): + res = (self, self.params[mask], self.bse[mask], + self.zvalues[mask], self.pvalues[mask], + self.conf_int(alpha)[mask]) + + param_names = [ + '.'.join(name.split('.')[:-1]) if strip_end else name + for name in + np.array(self.data.param_names)[mask].tolist() + ] + + return summary_params(res, yname=None, xname=param_names, + alpha=alpha, use_t=False, title=title) + + # Add parameter tables for each endogenous variable + k_endog = self.model.k_endog + k_ar = self.model.k_ar + k_ma = self.model.k_ma + k_exog = self.model.k_exog + endog_masks = [] + for i in range(k_endog): + masks = [] + offset = 0 + + # 1. Intercept terms + if self.model.trend == 'c': + masks.append(np.array(i, ndmin=1)) + offset += k_endog + + # 2. AR terms + if k_ar > 0: + start = i * k_endog * k_ar + end = (i + 1) * k_endog * k_ar + masks.append( + offset + np.arange(start, end)) + offset += k_ar * k_endog**2 + + # 3. MA terms + if k_ma > 0: + start = i * k_endog * k_ma + end = (i + 1) * k_endog * k_ma + masks.append( + offset + np.arange(start, end)) + offset += k_ma * k_endog**2 + + # 4. Regression terms + if k_exog > 0: + masks.append( + offset + np.arange(i * k_exog, (i + 1) * k_exog)) + offset += k_endog * k_exog + + # 5. Measurement error variance terms + if self.model.measurement_error: + masks.append(np.array(self.model.k_params - i - 1, ndmin=1)) + + # Create the table + mask = np.concatenate(masks) + endog_masks.append(mask) + + title = "Results for equation %s" % self.model.endog_names[i] + table = make_table(self, mask, title) + summary.tables.append(table) + + # State covariance terms + state_cov_mask = ( + np.arange(len(self.params))[self.model._params_state_cov]) + table = make_table(self, state_cov_mask, "Error covariance matrix", + strip_end=False) + summary.tables.append(table) + + # Add a table for all other parameters + masks = [] + for m in (endog_masks, [state_cov_mask]): + m = np.array(m).flatten() + if len(m) > 0: + masks.append(m) + masks = np.concatenate(masks) + inverse_mask = np.array(list(set(indices).difference(set(masks)))) + if len(inverse_mask) > 0: + table = make_table(self, inverse_mask, "Other parameters", + strip_end=False) + summary.tables.append(table) + + return summary + summary.__doc__ = MLEResults.summary.__doc__ + + +class VARMAXResultsWrapper(MLEResultsWrapper): + _attrs = {} + _wrap_attrs = wrap.union_dicts(MLEResultsWrapper._wrap_attrs, + _attrs) + _methods = {} + _wrap_methods = wrap.union_dicts(MLEResultsWrapper._wrap_methods, + _methods) +wrap.populate_wrapper(VARMAXResultsWrapper, VARMAXResults) diff --git a/statsmodels/tsa/stattools.py b/statsmodels/tsa/stattools.py new file mode 100644 index 0000000..1e12304 --- /dev/null +++ b/statsmodels/tsa/stattools.py @@ -0,0 +1,1279 @@ +""" +Statistical tools for time series analysis +""" +from statsmodels.compat.python import (iteritems, range, lrange, string_types, + lzip, zip, long) +from statsmodels.compat.scipy import _next_regular + +import numpy as np +from numpy.linalg import LinAlgError +from scipy import stats + +from statsmodels.regression.linear_model import OLS, yule_walker +from statsmodels.tools.tools import add_constant, Bunch +from statsmodels.tsa.tsatools import lagmat, lagmat2ds, add_trend +from statsmodels.tsa.adfvalues import mackinnonp, mackinnoncrit +from statsmodels.tsa._bds import bds +from statsmodels.tsa.arima_model import ARMA +from statsmodels.tools.sm_exceptions import InterpolationWarning, MissingDataError + + +__all__ = ['acovf', 'acf', 'pacf', 'pacf_yw', 'pacf_ols', 'ccovf', 'ccf', + 'periodogram', 'q_stat', 'coint', 'arma_order_select_ic', + 'adfuller', 'kpss', 'bds'] + + +#NOTE: now in two places to avoid circular import +#TODO: I like the bunch pattern for this too. +class ResultsStore(object): + def __str__(self): + return self._str # pylint: disable=E1101 + + +def _autolag(mod, endog, exog, startlag, maxlag, method, modargs=(), + fitargs=(), regresults=False): + """ + Returns the results for the lag length that maximizes the info criterion. + + Parameters + ---------- + mod : Model class + Model estimator class + endog : array-like + nobs array containing endogenous variable + exog : array-like + nobs by (startlag + maxlag) array containing lags and possibly other + variables + startlag : int + The first zero-indexed column to hold a lag. See Notes. + maxlag : int + The highest lag order for lag length selection. + method : {'aic', 'bic', 't-stat'} + aic - Akaike Information Criterion + bic - Bayes Information Criterion + t-stat - Based on last lag + modargs : tuple, optional + args to pass to model. See notes. + fitargs : tuple, optional + args to pass to fit. See notes. + regresults : bool, optional + Flag indicating to return optional return results + + Returns + ------- + icbest : float + Best information criteria. + bestlag : int + The lag length that maximizes the information criterion. + results : dict, optional + Dictionary containing all estimation results + + Notes + ----- + Does estimation like mod(endog, exog[:,:i], *modargs).fit(*fitargs) + where i goes from lagstart to lagstart+maxlag+1. Therefore, lags are + assumed to be in contiguous columns from low to high lag length with + the highest lag in the last column. + """ + #TODO: can tcol be replaced by maxlag + 2? + #TODO: This could be changed to laggedRHS and exog keyword arguments if + # this will be more general. + + results = {} + method = method.lower() + for lag in range(startlag, startlag + maxlag + 1): + mod_instance = mod(endog, exog[:, :lag], *modargs) + results[lag] = mod_instance.fit() + + if method == "aic": + icbest, bestlag = min((v.aic, k) for k, v in iteritems(results)) + elif method == "bic": + icbest, bestlag = min((v.bic, k) for k, v in iteritems(results)) + elif method == "t-stat": + #stop = stats.norm.ppf(.95) + stop = 1.6448536269514722 + for lag in range(startlag + maxlag, startlag - 1, -1): + icbest = np.abs(results[lag].tvalues[-1]) + if np.abs(icbest) >= stop: + bestlag = lag + icbest = icbest + break + else: + raise ValueError("Information Criterion %s not understood.") % method + + if not regresults: + return icbest, bestlag + else: + return icbest, bestlag, results + + +#this needs to be converted to a class like HetGoldfeldQuandt, +# 3 different returns are a mess +# See: +#Ng and Perron(2001), Lag length selection and the construction of unit root +#tests with good size and power, Econometrica, Vol 69 (6) pp 1519-1554 +#TODO: include drift keyword, only valid with regression == "c" +# just changes the distribution of the test statistic to a t distribution +#TODO: autolag is untested +def adfuller(x, maxlag=None, regression="c", autolag='AIC', + store=False, regresults=False): + """ + Augmented Dickey-Fuller unit root test + + The Augmented Dickey-Fuller test can be used to test for a unit root in a + univariate process in the presence of serial correlation. + + Parameters + ---------- + x : array_like, 1d + data series + maxlag : int + Maximum lag which is included in test, default 12*(nobs/100)^{1/4} + regression : {'c','ct','ctt','nc'} + Constant and trend order to include in regression + + * 'c' : constant only (default) + * 'ct' : constant and trend + * 'ctt' : constant, and linear and quadratic trend + * 'nc' : no constant, no trend + autolag : {'AIC', 'BIC', 't-stat', None} + * if None, then maxlag lags are used + * if 'AIC' (default) or 'BIC', then the number of lags is chosen + to minimize the corresponding information criterion + * 't-stat' based choice of maxlag. Starts with maxlag and drops a + lag until the t-statistic on the last lag length is significant + using a 5%-sized test + store : bool + If True, then a result instance is returned additionally to + the adf statistic. Default is False + regresults : bool, optional + If True, the full regression results are returned. Default is False + + Returns + ------- + adf : float + Test statistic + pvalue : float + MacKinnon's approximate p-value based on MacKinnon (1994, 2010) + usedlag : int + Number of lags used + nobs : int + Number of observations used for the ADF regression and calculation of + the critical values + critical values : dict + Critical values for the test statistic at the 1 %, 5 %, and 10 % + levels. Based on MacKinnon (2010) + icbest : float + The maximized information criterion if autolag is not None. + resstore : ResultStore, optional + A dummy class with results attached as attributes + + Notes + ----- + The null hypothesis of the Augmented Dickey-Fuller is that there is a unit + root, with the alternative that there is no unit root. If the pvalue is + above a critical size, then we cannot reject that there is a unit root. + + The p-values are obtained through regression surface approximation from + MacKinnon 1994, but using the updated 2010 tables. If the p-value is close + to significant, then the critical values should be used to judge whether + to reject the null. + + The autolag option and maxlag for it are described in Greene. + + Examples + -------- + See example notebook + + References + ---------- + .. [1] W. Green. "Econometric Analysis," 5th ed., Pearson, 2003. + + .. [2] Hamilton, J.D. "Time Series Analysis". Princeton, 1994. + + .. [3] MacKinnon, J.G. 1994. "Approximate asymptotic distribution functions for + unit-root and cointegration tests. `Journal of Business and Economic + Statistics` 12, 167-76. + + .. [4] MacKinnon, J.G. 2010. "Critical Values for Cointegration Tests." Queen's + University, Dept of Economics, Working Papers. Available at + http://ideas.repec.org/p/qed/wpaper/1227.html + """ + + if regresults: + store = True + + trenddict = {None: 'nc', 0: 'c', 1: 'ct', 2: 'ctt'} + if regression is None or isinstance(regression, (int, long)): + regression = trenddict[regression] + regression = regression.lower() + if regression not in ['c', 'nc', 'ct', 'ctt']: + raise ValueError("regression option %s not understood") % regression + x = np.asarray(x) + nobs = x.shape[0] + + if maxlag is None: + #from Greene referencing Schwert 1989 + maxlag = int(np.ceil(12. * np.power(nobs / 100., 1 / 4.))) + + xdiff = np.diff(x) + xdall = lagmat(xdiff[:, None], maxlag, trim='both', original='in') + nobs = xdall.shape[0] # pylint: disable=E1103 + + xdall[:, 0] = x[-nobs - 1:-1] # replace 0 xdiff with level of x + xdshort = xdiff[-nobs:] + + if store: + resstore = ResultsStore() + if autolag: + if regression != 'nc': + fullRHS = add_trend(xdall, regression, prepend=True) + else: + fullRHS = xdall + startlag = fullRHS.shape[1] - xdall.shape[1] + 1 # 1 for level # pylint: disable=E1103 + #search for lag length with smallest information criteria + #Note: use the same number of observations to have comparable IC + #aic and bic: smaller is better + + if not regresults: + icbest, bestlag = _autolag(OLS, xdshort, fullRHS, startlag, + maxlag, autolag) + else: + icbest, bestlag, alres = _autolag(OLS, xdshort, fullRHS, startlag, + maxlag, autolag, + regresults=regresults) + resstore.autolag_results = alres + + bestlag -= startlag # convert to lag not column index + + #rerun ols with best autolag + xdall = lagmat(xdiff[:, None], bestlag, trim='both', original='in') + nobs = xdall.shape[0] # pylint: disable=E1103 + xdall[:, 0] = x[-nobs - 1:-1] # replace 0 xdiff with level of x + xdshort = xdiff[-nobs:] + usedlag = bestlag + else: + usedlag = maxlag + icbest = None + if regression != 'nc': + resols = OLS(xdshort, add_trend(xdall[:, :usedlag + 1], + regression)).fit() + else: + resols = OLS(xdshort, xdall[:, :usedlag + 1]).fit() + + adfstat = resols.tvalues[0] +# adfstat = (resols.params[0]-1.0)/resols.bse[0] + # the "asymptotically correct" z statistic is obtained as + # nobs/(1-np.sum(resols.params[1:-(trendorder+1)])) (resols.params[0] - 1) + # I think this is the statistic that is used for series that are integrated + # for orders higher than I(1), ie., not ADF but cointegration tests. + + # Get approx p-value and critical values + pvalue = mackinnonp(adfstat, regression=regression, N=1) + critvalues = mackinnoncrit(N=1, regression=regression, nobs=nobs) + critvalues = {"1%" : critvalues[0], "5%" : critvalues[1], + "10%" : critvalues[2]} + if store: + resstore.resols = resols + resstore.maxlag = maxlag + resstore.usedlag = usedlag + resstore.adfstat = adfstat + resstore.critvalues = critvalues + resstore.nobs = nobs + resstore.H0 = ("The coefficient on the lagged level equals 1 - " + "unit root") + resstore.HA = "The coefficient on the lagged level < 1 - stationary" + resstore.icbest = icbest + resstore._str = 'Augmented Dickey-Fuller Test Results' + return adfstat, pvalue, critvalues, resstore + else: + if not autolag: + return adfstat, pvalue, usedlag, nobs, critvalues + else: + return adfstat, pvalue, usedlag, nobs, critvalues, icbest + + +def acovf(x, unbiased=False, demean=True, fft=False, missing='none'): + """ + Autocovariance for 1D + + Parameters + ---------- + x : array + Time series data. Must be 1d. + unbiased : bool + If True, then denominators is n-k, otherwise n + demean : bool + If True, then subtract the mean x from each element of x + fft : bool + If True, use FFT convolution. This method should be preferred + for long time series. + missing : str + A string in ['none', 'raise', 'conservative', 'drop'] specifying how the NaNs + are to be treated. + + Returns + ------- + acovf : array + autocovariance function + + References + ----------- + .. [1] Parzen, E., 1963. On spectral analysis with missing observations + and amplitude modulation. Sankhya: The Indian Journal of + Statistics, Series A, pp.383-392. + """ + x = np.squeeze(np.asarray(x)) + if x.ndim > 1: + raise ValueError("x must be 1d. Got %d dims." % x.ndim) + + missing = missing.lower() + if missing not in ['none', 'raise', 'conservative', 'drop']: + raise ValueError("missing option %s not understood" % missing) + if missing == 'none': + deal_with_masked = False + else: + deal_with_masked = has_missing(x) + if deal_with_masked: + if missing == 'raise': + raise MissingDataError("NaNs were encountered in the data") + notmask_bool = ~np.isnan(x) #bool + if missing == 'conservative': + x[~notmask_bool] = 0 + else: #'drop' + x = x[notmask_bool] #copies non-missing + notmask_int = notmask_bool.astype(int) #int + + if demean and deal_with_masked: + # whether 'drop' or 'conservative': + xo = x - x.sum()/notmask_int.sum() + if missing=='conservative': + xo[~notmask_bool] = 0 + elif demean: + xo = x - x.mean() + else: + xo = x + + n = len(x) + if unbiased and deal_with_masked and missing=='conservative': + d = np.correlate(notmask_int, notmask_int, 'full') + elif unbiased: + xi = np.arange(1, n + 1) + d = np.hstack((xi, xi[:-1][::-1])) + elif deal_with_masked: #biased and NaNs given and ('drop' or 'conservative') + d = notmask_int.sum() * np.ones(2*n-1) + else: #biased and no NaNs or missing=='none' + d = n * np.ones(2 * n - 1) + + if fft: + nobs = len(xo) + n = _next_regular(2 * nobs + 1) + Frf = np.fft.fft(xo, n=n) + acov = np.fft.ifft(Frf * np.conjugate(Frf))[:nobs] / d[nobs - 1:] + acov = acov.real + else: + acov = (np.correlate(xo, xo, 'full') / d)[n - 1:] + + if deal_with_masked and missing=='conservative': + # restore data for the user + x[~notmask_bool] = np.nan + + return acov + + + +def q_stat(x, nobs, type="ljungbox"): + """ + Return's Ljung-Box Q Statistic + + x : array-like + Array of autocorrelation coefficients. Can be obtained from acf. + nobs : int + Number of observations in the entire sample (ie., not just the length + of the autocorrelation function results. + + Returns + ------- + q-stat : array + Ljung-Box Q-statistic for autocorrelation parameters + p-value : array + P-value of the Q statistic + + Notes + ------ + Written to be used with acf. + """ + x = np.asarray(x) + if type == "ljungbox": + ret = (nobs * (nobs + 2) * + np.cumsum((1. / (nobs - np.arange(1, len(x) + 1))) * x**2)) + chi2 = stats.chi2.sf(ret, np.arange(1, len(x) + 1)) + return ret, chi2 + + +#NOTE: Changed unbiased to False +#see for example +# http://www.itl.nist.gov/div898/handbook/eda/section3/autocopl.htm +def acf(x, unbiased=False, nlags=40, qstat=False, fft=False, alpha=None, + missing='none'): + """ + Autocorrelation function for 1d arrays. + + Parameters + ---------- + x : array + Time series data + unbiased : bool + If True, then denominators for autocovariance are n-k, otherwise n + nlags: int, optional + Number of lags to return autocorrelation for. + qstat : bool, optional + If True, returns the Ljung-Box q statistic for each autocorrelation + coefficient. See q_stat for more information. + fft : bool, optional + If True, computes the ACF via FFT. + alpha : scalar, optional + If a number is given, the confidence intervals for the given level are + returned. For instance if alpha=.05, 95 % confidence intervals are + returned where the standard deviation is computed according to + Bartlett\'s formula. + missing : str, optional + A string in ['none', 'raise', 'conservative', 'drop'] specifying how the NaNs + are to be treated. + + Returns + ------- + acf : array + autocorrelation function + confint : array, optional + Confidence intervals for the ACF. Returned if confint is not None. + qstat : array, optional + The Ljung-Box Q-Statistic. Returned if q_stat is True. + pvalues : array, optional + The p-values associated with the Q-statistics. Returned if q_stat is + True. + + Notes + ----- + The acf at lag 0 (ie., 1) is returned. + + This is based np.correlate which does full convolution. For very long time + series it is recommended to use fft convolution instead. + + If unbiased is true, the denominator for the autocovariance is adjusted + but the autocorrelation is not an unbiased estimtor. + + References + ---------- + .. [1] Parzen, E., 1963. On spectral analysis with missing observations + and amplitude modulation. Sankhya: The Indian Journal of + Statistics, Series A, pp.383-392. + + """ + nobs = len(x) # should this shrink for missing='drop' and NaNs in x? + avf = acovf(x, unbiased=unbiased, demean=True, fft=fft, missing=missing) + acf = avf[:nlags + 1] / avf[0] + if not (qstat or alpha): + return acf + if alpha is not None: + varacf = np.ones(nlags + 1) / nobs + varacf[0] = 0 + varacf[1] = 1. / nobs + varacf[2:] *= 1 + 2 * np.cumsum(acf[1:-1]**2) + interval = stats.norm.ppf(1 - alpha / 2.) * np.sqrt(varacf) + confint = np.array(lzip(acf - interval, acf + interval)) + if not qstat: + return acf, confint + if qstat: + qstat, pvalue = q_stat(acf[1:], nobs=nobs) # drop lag 0 + if alpha is not None: + return acf, confint, qstat, pvalue + else: + return acf, qstat, pvalue + + +def pacf_yw(x, nlags=40, method='unbiased'): + '''Partial autocorrelation estimated with non-recursive yule_walker + + Parameters + ---------- + x : 1d array + observations of time series for which pacf is calculated + nlags : int + largest lag for which pacf is returned + method : 'unbiased' (default) or 'mle' + method for the autocovariance calculations in yule walker + + Returns + ------- + pacf : 1d array + partial autocorrelations, maxlag+1 elements + + Notes + ----- + This solves yule_walker for each desired lag and contains + currently duplicate calculations. + ''' + pacf = [1.] + for k in range(1, nlags + 1): + pacf.append(yule_walker(x, k, method=method)[0][-1]) + return np.array(pacf) + + +#NOTE: this is incorrect. +def pacf_ols(x, nlags=40): + '''Calculate partial autocorrelations + + Parameters + ---------- + x : 1d array + observations of time series for which pacf is calculated + nlags : int + Number of lags for which pacf is returned. Lag 0 is not returned. + + Returns + ------- + pacf : 1d array + partial autocorrelations, maxlag+1 elements + + Notes + ----- + This solves a separate OLS estimation for each desired lag. + ''' + #TODO: add warnings for Yule-Walker + #NOTE: demeaning and not using a constant gave incorrect answers? + #JP: demeaning should have a better estimate of the constant + #maybe we can compare small sample properties with a MonteCarlo + xlags, x0 = lagmat(x, nlags, original='sep') + #xlags = sm.add_constant(lagmat(x, nlags), prepend=True) + xlags = add_constant(xlags) + pacf = [1.] + for k in range(1, nlags+1): + res = OLS(x0[k:], xlags[k:, :k+1]).fit() + #np.take(xlags[k:], range(1,k+1)+[-1], + + pacf.append(res.params[-1]) + return np.array(pacf) + + +def pacf(x, nlags=40, method='ywunbiased', alpha=None): + '''Partial autocorrelation estimated + + Parameters + ---------- + x : 1d array + observations of time series for which pacf is calculated + nlags : int + largest lag for which pacf is returned + method : 'ywunbiased' (default) or 'ywmle' or 'ols' + specifies which method for the calculations to use: + + - yw or ywunbiased : yule walker with bias correction in denominator + for acovf + - ywm or ywmle : yule walker without bias correction + - ols - regression of time series on lags of it and on constant + - ld or ldunbiased : Levinson-Durbin recursion with bias correction + - ldb or ldbiased : Levinson-Durbin recursion without bias correction + + alpha : scalar, optional + If a number is given, the confidence intervals for the given level are + returned. For instance if alpha=.05, 95 % confidence intervals are + returned where the standard deviation is computed according to + 1/sqrt(len(x)) + + Returns + ------- + pacf : 1d array + partial autocorrelations, nlags elements, including lag zero + confint : array, optional + Confidence intervals for the PACF. Returned if confint is not None. + + Notes + ----- + This solves yule_walker equations or ols for each desired lag + and contains currently duplicate calculations. + ''' + + if method == 'ols': + ret = pacf_ols(x, nlags=nlags) + elif method in ['yw', 'ywu', 'ywunbiased', 'yw_unbiased']: + ret = pacf_yw(x, nlags=nlags, method='unbiased') + elif method in ['ywm', 'ywmle', 'yw_mle']: + ret = pacf_yw(x, nlags=nlags, method='mle') + elif method in ['ld', 'ldu', 'ldunbiase', 'ld_unbiased']: + acv = acovf(x, unbiased=True) + ld_ = levinson_durbin(acv, nlags=nlags, isacov=True) + #print 'ld', ld_ + ret = ld_[2] + # inconsistent naming with ywmle + elif method in ['ldb', 'ldbiased', 'ld_biased']: + acv = acovf(x, unbiased=False) + ld_ = levinson_durbin(acv, nlags=nlags, isacov=True) + ret = ld_[2] + else: + raise ValueError('method not available') + if alpha is not None: + varacf = 1. / len(x) # for all lags >=1 + interval = stats.norm.ppf(1. - alpha / 2.) * np.sqrt(varacf) + confint = np.array(lzip(ret - interval, ret + interval)) + confint[0] = ret[0] # fix confidence interval for lag 0 to varpacf=0 + return ret, confint + else: + return ret + + +def ccovf(x, y, unbiased=True, demean=True): + ''' crosscovariance for 1D + + Parameters + ---------- + x, y : arrays + time series data + unbiased : boolean + if True, then denominators is n-k, otherwise n + + Returns + ------- + ccovf : array + autocovariance function + + Notes + ----- + This uses np.correlate which does full convolution. For very long time + series it is recommended to use fft convolution instead. + ''' + n = len(x) + if demean: + xo = x - x.mean() + yo = y - y.mean() + else: + xo = x + yo = y + if unbiased: + xi = np.ones(n) + d = np.correlate(xi, xi, 'full') + else: + d = n + return (np.correlate(xo, yo, 'full') / d)[n - 1:] + + +def ccf(x, y, unbiased=True): + '''cross-correlation function for 1d + + Parameters + ---------- + x, y : arrays + time series data + unbiased : boolean + if True, then denominators for autocovariance is n-k, otherwise n + + Returns + ------- + ccf : array + cross-correlation function of x and y + + Notes + ----- + This is based np.correlate which does full convolution. For very long time + series it is recommended to use fft convolution instead. + + If unbiased is true, the denominator for the autocovariance is adjusted + but the autocorrelation is not an unbiased estimtor. + + ''' + cvf = ccovf(x, y, unbiased=unbiased, demean=True) + return cvf / (np.std(x) * np.std(y)) + + +def periodogram(X): + """ + Returns the periodogram for the natural frequency of X + + Parameters + ---------- + X : array-like + Array for which the periodogram is desired. + + Returns + ------- + pgram : array + 1./len(X) * np.abs(np.fft.fft(X))**2 + + + References + ---------- + Brockwell and Davis. + """ + X = np.asarray(X) + #if kernel == "bartlett": + # w = 1 - np.arange(M+1.)/M #JP removed integer division + + pergr = 1. / len(X) * np.abs(np.fft.fft(X))**2 + pergr[0] = 0. # what are the implications of this? + return pergr + + +#copied from nitime and statsmodels\sandbox\tsa\examples\try_ld_nitime.py +#TODO: check what to return, for testing and trying out returns everything +def levinson_durbin(s, nlags=10, isacov=False): + '''Levinson-Durbin recursion for autoregressive processes + + Parameters + ---------- + s : array_like + If isacov is False, then this is the time series. If iasacov is true + then this is interpreted as autocovariance starting with lag 0 + nlags : integer + largest lag to include in recursion or order of the autoregressive + process + isacov : boolean + flag to indicate whether the first argument, s, contains the + autocovariances or the data series. + + Returns + ------- + sigma_v : float + estimate of the error variance ? + arcoefs : ndarray + estimate of the autoregressive coefficients + pacf : ndarray + partial autocorrelation function + sigma : ndarray + entire sigma array from intermediate result, last value is sigma_v + phi : ndarray + entire phi array from intermediate result, last column contains + autoregressive coefficients for AR(nlags) with a leading 1 + + Notes + ----- + This function returns currently all results, but maybe we drop sigma and + phi from the returns. + + If this function is called with the time series (isacov=False), then the + sample autocovariance function is calculated with the default options + (biased, no fft). + ''' + s = np.asarray(s) + order = nlags # rename compared to nitime + #from nitime + + ##if sxx is not None and type(sxx) == np.ndarray: + ## sxx_m = sxx[:order+1] + ##else: + ## sxx_m = ut.autocov(s)[:order+1] + if isacov: + sxx_m = s + else: + sxx_m = acovf(s)[:order + 1] # not tested + + phi = np.zeros((order + 1, order + 1), 'd') + sig = np.zeros(order + 1) + # initial points for the recursion + phi[1, 1] = sxx_m[1] / sxx_m[0] + sig[1] = sxx_m[0] - phi[1, 1] * sxx_m[1] + for k in range(2, order + 1): + phi[k, k] = (sxx_m[k] - np.dot(phi[1:k, k-1], + sxx_m[1:k][::-1])) / sig[k-1] + for j in range(1, k): + phi[j, k] = phi[j, k-1] - phi[k, k] * phi[k-j, k-1] + sig[k] = sig[k-1] * (1 - phi[k, k]**2) + + sigma_v = sig[-1] + arcoefs = phi[1:, -1] + pacf_ = np.diag(phi).copy() + pacf_[0] = 1. + return sigma_v, arcoefs, pacf_, sig, phi # return everything + + +def grangercausalitytests(x, maxlag, addconst=True, verbose=True): + """four tests for granger non causality of 2 timeseries + + all four tests give similar results + `params_ftest` and `ssr_ftest` are equivalent based on F test which is + identical to lmtest:grangertest in R + + Parameters + ---------- + x : array, 2d, (nobs,2) + data for test whether the time series in the second column Granger + causes the time series in the first column + maxlag : integer + the Granger causality test results are calculated for all lags up to + maxlag + verbose : bool + print results if true + + Returns + ------- + results : dictionary + all test results, dictionary keys are the number of lags. For each + lag the values are a tuple, with the first element a dictionary with + teststatistic, pvalues, degrees of freedom, the second element are + the OLS estimation results for the restricted model, the unrestricted + model and the restriction (contrast) matrix for the parameter f_test. + + Notes + ----- + TODO: convert to class and attach results properly + + The Null hypothesis for grangercausalitytests is that the time series in + the second column, x2, does NOT Granger cause the time series in the first + column, x1. Grange causality means that past values of x2 have a + statistically significant effect on the current value of x1, taking past + values of x1 into account as regressors. We reject the null hypothesis + that x2 does not Granger cause x1 if the pvalues are below a desired size + of the test. + + The null hypothesis for all four test is that the coefficients + corresponding to past values of the second time series are zero. + + 'params_ftest', 'ssr_ftest' are based on F distribution + + 'ssr_chi2test', 'lrtest' are based on chi-square distribution + + References + ---------- + http://en.wikipedia.org/wiki/Granger_causality + Greene: Econometric Analysis + + """ + from scipy import stats + + x = np.asarray(x) + + if x.shape[0] <= 3 * maxlag + int(addconst): + raise ValueError("Insufficient observations. Maximum allowable " + "lag is {0}".format(int((x.shape[0] - int(addconst)) / + 3) - 1)) + + resli = {} + + for mlg in range(1, maxlag + 1): + result = {} + if verbose: + print('\nGranger Causality') + print('number of lags (no zero)', mlg) + mxlg = mlg + + # create lagmat of both time series + dta = lagmat2ds(x, mxlg, trim='both', dropex=1) + + #add constant + if addconst: + dtaown = add_constant(dta[:, 1:(mxlg + 1)], prepend=False) + dtajoint = add_constant(dta[:, 1:], prepend=False) + else: + raise NotImplementedError('Not Implemented') + #dtaown = dta[:, 1:mxlg] + #dtajoint = dta[:, 1:] + + # Run ols on both models without and with lags of second variable + res2down = OLS(dta[:, 0], dtaown).fit() + res2djoint = OLS(dta[:, 0], dtajoint).fit() + + #print results + #for ssr based tests see: + #http://support.sas.com/rnd/app/examples/ets/granger/index.htm + #the other tests are made-up + + # Granger Causality test using ssr (F statistic) + fgc1 = ((res2down.ssr - res2djoint.ssr) / + res2djoint.ssr / mxlg * res2djoint.df_resid) + if verbose: + print('ssr based F test: F=%-8.4f, p=%-8.4f, df_denom=%d,' + ' df_num=%d' % (fgc1, + stats.f.sf(fgc1, mxlg, + res2djoint.df_resid), + res2djoint.df_resid, mxlg)) + result['ssr_ftest'] = (fgc1, + stats.f.sf(fgc1, mxlg, res2djoint.df_resid), + res2djoint.df_resid, mxlg) + + # Granger Causality test using ssr (ch2 statistic) + fgc2 = res2down.nobs * (res2down.ssr - res2djoint.ssr) / res2djoint.ssr + if verbose: + print('ssr based chi2 test: chi2=%-8.4f, p=%-8.4f, ' + 'df=%d' % (fgc2, stats.chi2.sf(fgc2, mxlg), mxlg)) + result['ssr_chi2test'] = (fgc2, stats.chi2.sf(fgc2, mxlg), mxlg) + + #likelihood ratio test pvalue: + lr = -2 * (res2down.llf - res2djoint.llf) + if verbose: + print('likelihood ratio test: chi2=%-8.4f, p=%-8.4f, df=%d' % + (lr, stats.chi2.sf(lr, mxlg), mxlg)) + result['lrtest'] = (lr, stats.chi2.sf(lr, mxlg), mxlg) + + # F test that all lag coefficients of exog are zero + rconstr = np.column_stack((np.zeros((mxlg, mxlg)), + np.eye(mxlg, mxlg), + np.zeros((mxlg, 1)))) + ftres = res2djoint.f_test(rconstr) + if verbose: + print('parameter F test: F=%-8.4f, p=%-8.4f, df_denom=%d,' + ' df_num=%d' % (ftres.fvalue, ftres.pvalue, ftres.df_denom, + ftres.df_num)) + result['params_ftest'] = (np.squeeze(ftres.fvalue)[()], + np.squeeze(ftres.pvalue)[()], + ftres.df_denom, ftres.df_num) + + resli[mxlg] = (result, [res2down, res2djoint, rconstr]) + + return resli + + +def coint(y0, y1, trend='c', method='aeg', maxlag=None, autolag='aic', + return_results=None): + """Test for no-cointegration of a univariate equation + + The null hypothesis is no cointegration. Variables in y0 and y1 are + assumed to be integrated of order 1, I(1). + + This uses the augmented Engle-Granger two-step cointegration test. + Constant or trend is included in 1st stage regression, i.e. in + cointegrating equation. + + Parameters + ---------- + y1 : array_like, 1d + first element in cointegrating vector + y2 : array_like + remaining elements in cointegrating vector + trend : str {'c', 'ct'} + trend term included in regression for cointegrating equation + * 'c' : constant + * 'ct' : constant and linear trend + * also available quadratic trend 'ctt', and no constant 'nc' + + method : string + currently only 'aeg' for augmented Engle-Granger test is available. + default might change. + maxlag : None or int + keyword for `adfuller`, largest or given number of lags + autolag : string + keyword for `adfuller`, lag selection criterion. + return_results : bool + for future compatibility, currently only tuple available. + If True, then a results instance is returned. Otherwise, a tuple + with the test outcome is returned. + Set `return_results=False` to avoid future changes in return. + + + Returns + ------- + coint_t : float + t-statistic of unit-root test on residuals + pvalue : float + MacKinnon's approximate, asymptotic p-value based on MacKinnon (1994) + crit_value : dict + Critical values for the test statistic at the 1 %, 5 %, and 10 % + levels based on regression curve. This depends on the number of + observations. + + Notes + ----- + The Null hypothesis is that there is no cointegration, the alternative + hypothesis is that there is cointegrating relationship. If the pvalue is + small, below a critical size, then we can reject the hypothesis that there + is no cointegrating relationship. + + P-values and critical values are obtained through regression surface + approximation from MacKinnon 1994 and 2010. + + TODO: We could handle gaps in data by dropping rows with nans in the + auxiliary regressions. Not implemented yet, currently assumes no nans + and no gaps in time series. + + References + ---------- + MacKinnon, J.G. 1994 "Approximate Asymptotic Distribution Functions for + Unit-Root and Cointegration Tests." Journal of Business & Economics + Statistics, 12.2, 167-76. + MacKinnon, J.G. 2010. "Critical Values for Cointegration Tests." + Queen's University, Dept of Economics Working Papers 1227. + http://ideas.repec.org/p/qed/wpaper/1227.html + """ + + trend = trend.lower() + if trend not in ['c', 'nc', 'ct', 'ctt']: + raise ValueError("trend option %s not understood" % trend) + y0 = np.asarray(y0) + y1 = np.asarray(y1) + if y1.ndim < 2: + y1 = y1[:, None] + nobs, k_vars = y1.shape + k_vars += 1 # add 1 for y0 + + if trend == 'nc': + xx = y1 + else: + xx = add_trend(y1, trend=trend, prepend=False) + + res_co = OLS(y0, xx).fit() + + res_adf = adfuller(res_co.resid, maxlag=maxlag, autolag=None, + regression='nc') + # no constant or trend, see egranger in Stata and MacKinnon + if trend == 'nc': + crit = [np.nan] * 3 # 2010 critical values not available + else: + crit = mackinnoncrit(N=k_vars, regression=trend, nobs=nobs - 1) + # nobs - 1, the -1 is to match egranger in Stata, I don't know why. + # TODO: check nobs or df = nobs - k + + pval_asy = mackinnonp(res_adf[0], regression=trend, N=k_vars) + return res_adf[0], pval_asy, crit + + +def _safe_arma_fit(y, order, model_kw, trend, fit_kw, start_params=None): + try: + return ARMA(y, order=order, **model_kw).fit(disp=0, trend=trend, + start_params=start_params, + **fit_kw) + except LinAlgError: + # SVD convergence failure on badly misspecified models + return + + except ValueError as error: + if start_params is not None: # don't recurse again + # user supplied start_params only get one chance + return + # try a little harder, should be handled in fit really + elif ('initial' not in error.args[0] or 'initial' in str(error)): + start_params = [.1] * sum(order) + if trend == 'c': + start_params = [.1] + start_params + return _safe_arma_fit(y, order, model_kw, trend, fit_kw, + start_params) + else: + return + except: # no idea what happened + return + + +def arma_order_select_ic(y, max_ar=4, max_ma=2, ic='bic', trend='c', + model_kw={}, fit_kw={}): + """ + Returns information criteria for many ARMA models + + Parameters + ---------- + y : array-like + Time-series data + max_ar : int + Maximum number of AR lags to use. Default 4. + max_ma : int + Maximum number of MA lags to use. Default 2. + ic : str, list + Information criteria to report. Either a single string or a list + of different criteria is possible. + trend : str + The trend to use when fitting the ARMA models. + model_kw : dict + Keyword arguments to be passed to the ``ARMA`` model + fit_kw : dict + Keyword arguments to be passed to ``ARMA.fit``. + + Returns + ------- + obj : Results object + Each ic is an attribute with a DataFrame for the results. The AR order + used is the row index. The ma order used is the column index. The + minimum orders are available as ``ic_min_order``. + + Examples + -------- + + >>> from statsmodels.tsa.arima_process import arma_generate_sample + >>> import statsmodels.api as sm + >>> import numpy as np + + >>> arparams = np.array([.75, -.25]) + >>> maparams = np.array([.65, .35]) + >>> arparams = np.r_[1, -arparams] + >>> maparam = np.r_[1, maparams] + >>> nobs = 250 + >>> np.random.seed(2014) + >>> y = arma_generate_sample(arparams, maparams, nobs) + >>> res = sm.tsa.arma_order_select_ic(y, ic=['aic', 'bic'], trend='nc') + >>> res.aic_min_order + >>> res.bic_min_order + + Notes + ----- + This method can be used to tentatively identify the order of an ARMA + process, provided that the time series is stationary and invertible. This + function computes the full exact MLE estimate of each model and can be, + therefore a little slow. An implementation using approximate estimates + will be provided in the future. In the meantime, consider passing + {method : 'css'} to fit_kw. + """ + from pandas import DataFrame + + ar_range = lrange(0, max_ar + 1) + ma_range = lrange(0, max_ma + 1) + if isinstance(ic, string_types): + ic = [ic] + elif not isinstance(ic, (list, tuple)): + raise ValueError("Need a list or a tuple for ic if not a string.") + + results = np.zeros((len(ic), max_ar + 1, max_ma + 1)) + + for ar in ar_range: + for ma in ma_range: + if ar == 0 and ma == 0 and trend == 'nc': + results[:, ar, ma] = np.nan + continue + + mod = _safe_arma_fit(y, (ar, ma), model_kw, trend, fit_kw) + if mod is None: + results[:, ar, ma] = np.nan + continue + + for i, criteria in enumerate(ic): + results[i, ar, ma] = getattr(mod, criteria) + + dfs = [DataFrame(res, columns=ma_range, index=ar_range) for res in results] + + res = dict(zip(ic, dfs)) + + # add the minimums to the results dict + min_res = {} + for i, result in iteritems(res): + mins = np.where(result.min().min() == result) + min_res.update({i + '_min_order' : (mins[0][0], mins[1][0])}) + res.update(min_res) + + return Bunch(**res) + +def has_missing(data): + """ + Returns True if 'data' contains missing entries, otherwise False + """ + return np.isnan(np.sum(data)) + + +def kpss(x, regression='c', lags=None, store=False): + """ + Kwiatkowski-Phillips-Schmidt-Shin test for stationarity. + + Computes the Kwiatkowski-Phillips-Schmidt-Shin (KPSS) test for the null + hypothesis that x is level or trend stationary. + + Parameters + ---------- + x : array_like, 1d + Data series + regression : str{'c', 'ct'} + Indicates the null hypothesis for the KPSS test + * 'c' : The data is stationary around a constant (default) + * 'ct' : The data is stationary around a trend + lags : int + Indicates the number of lags to be used. If None (default), + lags is set to int(12 * (n / 100)**(1 / 4)), as outlined in + Schwert (1989). + store : bool + If True, then a result instance is returned additionally to + the KPSS statistic (default is False). + + Returns + ------- + kpss_stat : float + The KPSS test statistic + p_value : float + The p-value of the test. The p-value is interpolated from + Table 1 in Kwiatkowski et al. (1992), and a boundary point + is returned if the test statistic is outside the table of + critical values, that is, if the p-value is outside the + interval (0.01, 0.1). + lags : int + The truncation lag parameter + crit : dict + The critical values at 10%, 5%, 2.5% and 1%. Based on + Kwiatkowski et al. (1992). + resstore : (optional) instance of ResultStore + An instance of a dummy class with results attached as attributes + + Notes + ----- + To estimate sigma^2 the Newey-West estimator is used. If lags is None, + the truncation lag parameter is set to int(12 * (n / 100) ** (1 / 4)), + as outlined in Schwert (1989). The p-values are interpolated from + Table 1 of Kwiatkowski et al. (1992). If the computed statistic is + outside the table of critical values, then a warning message is + generated. + + Missing values are not handled. + + References + ---------- + D. Kwiatkowski, P. C. B. Phillips, P. Schmidt, and Y. Shin (1992): Testing + the Null Hypothesis of Stationarity against the Alternative of a Unit Root. + `Journal of Econometrics` 54, 159-178. + """ + from warnings import warn + + nobs = len(x) + x = np.asarray(x) + hypo = regression.lower() + + # if m is not one, n != m * n + if nobs != x.size: + raise ValueError("x of shape {0} not understood".format(x.shape)) + + if hypo == 'ct': + # p. 162 Kwiatkowski et al. (1992): y_t = beta * t + r_t + e_t, + # where beta is the trend, r_t a random walk and e_t a stationary + # error term. + resids = OLS(x, add_constant(np.arange(1, nobs + 1))).fit().resid + crit = [0.119, 0.146, 0.176, 0.216] + elif hypo == 'c': + # special case of the model above, where beta = 0 (so the null + # hypothesis is that the data is stationary around r_0). + resids = x - x.mean() + crit = [0.347, 0.463, 0.574, 0.739] + else: + raise ValueError("hypothesis '{0}' not understood".format(hypo)) + + if lags is None: + # from Kwiatkowski et al. referencing Schwert (1989) + lags = int(np.ceil(12. * np.power(nobs / 100., 1 / 4.))) + + pvals = [0.10, 0.05, 0.025, 0.01] + + eta = sum(resids.cumsum()**2) / (nobs**2) # eq. 11, p. 165 + s_hat = _sigma_est_kpss(resids, nobs, lags) + + kpss_stat = eta / s_hat + p_value = np.interp(kpss_stat, crit, pvals) + + if p_value == pvals[-1]: + warn("p-value is smaller than the indicated p-value", InterpolationWarning) + elif p_value == pvals[0]: + warn("p-value is greater than the indicated p-value", InterpolationWarning) + + crit_dict = {'10%': crit[0], '5%': crit[1], '2.5%': crit[2], '1%': crit[3]} + + if store: + rstore = ResultsStore() + rstore.lags = lags + rstore.nobs = nobs + + stationary_type = "level" if hypo == 'c' else "trend" + rstore.H0 = "The series is {0} stationary".format(stationary_type) + rstore.HA = "The series is not {0} stationary".format(stationary_type) + + return kpss_stat, p_value, crit_dict, rstore + else: + return kpss_stat, p_value, lags, crit_dict + + +def _sigma_est_kpss(resids, nobs, lags): + """ + Computes equation 10, p. 164 of Kwiatkowski et al. (1992). This is the + consistent estimator for the variance. + """ + s_hat = sum(resids**2) + for i in range(1, lags + 1): + resids_prod = np.dot(resids[i:], resids[:nobs - i]) + s_hat += 2 * resids_prod * (1. - (i / (lags + 1.))) + return s_hat / nobs diff --git a/statsmodels/tsa/tests/__init__.py b/statsmodels/tsa/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/tsa/tests/arima.do b/statsmodels/tsa/tests/arima.do new file mode 100644 index 0000000..7a9c303 --- /dev/null +++ b/statsmodels/tsa/tests/arima.do @@ -0,0 +1,190 @@ +insheet using "/home/skipper/statsmodels/statsmodels-skipper/statsmodels/datasets/macrodata/macrodata.csv" + +gen qtrdate=yq(year,quarter) +format qtrdate %tq +tsset qtrdate + +/* here for safe keeping +arima cpi, arima(4,1,1) from(0.92687596 -0.5558627 0.32086541 0.25225289 0.11362493 0.93914412 0.78437817334640536, copy) +predict xb, xb dynamic(.) +predict y, y dynamic(.) +*/ + +arima cpi, arima(1,1,1) + +mat llf=e(ll) +mat nobs=e(N) +// number of parameters +mat k=e(k) +// number of dependent variables +mat k_exog=e(k_dv) +mat sigma=e(sigma) +mat chi2=e(chi2) +mat df_model=e(df_m) +mat k_ar=e(ar_max) +mat k_ma=e(ma_max) +mat params=e(b) +mat cov_params=e(V) + +// don't append because you'll rewrite the bunch class +// mat2nparray llf nobs k k_exog sigma chi2 df_model k_ar k_ma params cov_params, saving("/home/skipper/statsmodels/statsmodels-skipper/statsmodels/tsa/tests/results/arima_results.py") format("%16.0g") replace + +predict xb +predict y, y +predict resid, resid +predict yr, yr +predict mse, mse +predict stdp, stdp +estat ic + +mat icstats=r(S) +mkmat xb xb +mkmat y y +mkmat yr yr +mkmat mse mse +mkmat stdp stdp +mkmat resid resid + +mat2nparray llf nobs k k_exog sigma chi2 df_model k_ar k_ma params cov_params xb y resid yr mse stdp icstats, saving("/home/skipper/statsmodels/statsmodels-skipper/statsmodels/tsa/tests/results/arima111_results.py") format("%16.0g") replace + +clear + +/* do it with no constant */ + +insheet using "/home/skipper/statsmodels/statsmodels-skipper/statsmodels/datasets/macrodata/macrodata.csv" + +gen qtrdate=yq(year,quarter) +format qtrdate %tq +tsset qtrdate + +arima cpi, arima(1,1,1) noconstant + +mat llf=e(ll) +mat nobs=e(N) +// number of parameters +mat k=e(k) +// number of dependent variables +mat k_exog=e(k_dv) +mat sigma=e(sigma) +mat chi2=e(chi2) +mat df_model=e(df_m) +mat k_ar=e(ar_max) +mat k_ma=e(ma_max) +mat params=e(b) +mat cov_params=e(V) + +// don't append because you'll rewrite the bunch class +// mat2nparray llf nobs k k_exog sigma chi2 df_model k_ar k_ma params cov_params, saving("/home/skipper/statsmodels/statsmodels-skipper/statsmodels/tsa/tests/results/arima_results.py") format("%16.0g") replace + +predict xb +predict y, y +predict resid, resid +predict yr, yr +predict mse, mse +/*predict stdp, stdp*/ +estat ic + +mat icstats=r(S) +mkmat xb xb +mkmat y y +mkmat yr yr +mkmat mse mse +/*mkmat stdp stdp*/ +mkmat resid resid + +mat2nparray llf nobs k k_exog sigma chi2 df_model k_ar k_ma params cov_params xb y resid yr mse stdp icstats, saving("/home/skipper/statsmodels/statsmodels-skipper/statsmodels/tsa/tests/results/arima111nc_results.py") format("%16.0g") replace + +clear + +/* Now do conditional */ + +insheet using "/home/skipper/statsmodels/statsmodels-skipper/statsmodels/datasets/macrodata/macrodata.csv" + +gen qtrdate=yq(year,quarter) +format qtrdate %tq +tsset qtrdate + +arima cpi, arima(1,1,1) condition + +mat llf=e(ll) +mat nobs=e(N) +// number of parameters +mat k=e(k) +// number of dependent variables +mat k_exog=e(k_dv) +mat sigma=e(sigma) +mat chi2=e(chi2) +mat df_model=e(df_m) +mat k_ar=e(ar_max) +mat k_ma=e(ma_max) +mat params=e(b) +mat cov_params=e(V) + +// don't append because you'll rewrite the bunch class +// mat2nparray llf nobs k k_exog sigma chi2 df_model k_ar k_ma params cov_params, saving("/home/skipper/statsmodels/statsmodels-skipper/statsmodels/tsa/tests/results/arima_results.py") format("%16.0g") replace + +predict xb +predict y, y +predict resid, resid +predict yr, yr +predict mse, mse +predict stdp, stdp +estat ic + +mat icstats=r(S) +mkmat xb xb +mkmat y y +mkmat yr yr +mkmat mse mse +mkmat stdp stdp +mkmat resid resid + +mat2nparray llf nobs k k_exog sigma chi2 df_model k_ar k_ma params cov_params xb y resid yr mse stdp icstats, saving("/home/skipper/statsmodels/statsmodels-skipper/statsmodels/tsa/tests/results/arima111_css_results.py") format("%16.0g") replace + +clear + +/* do it with no constant */ + +insheet using "/home/skipper/statsmodels/statsmodels-skipper/statsmodels/datasets/macrodata/macrodata.csv" + +gen qtrdate=yq(year,quarter) +format qtrdate %tq +tsset qtrdate + +arima cpi, arima(1,1,1) noconstant condition + +mat llf=e(ll) +mat nobs=e(N) +// number of parameters +mat k=e(k) +// number of dependent variables +mat k_exog=e(k_dv) +mat sigma=e(sigma) +mat chi2=e(chi2) +mat df_model=e(df_m) +mat k_ar=e(ar_max) +mat k_ma=e(ma_max) +mat params=e(b) +mat cov_params=e(V) + +// don't append because you'll rewrite the bunch class +// mat2nparray llf nobs k k_exog sigma chi2 df_model k_ar k_ma params cov_params, saving("/home/skipper/statsmodels/statsmodels-skipper/statsmodels/tsa/tests/results/arima_results.py") format("%16.0g") replace + +predict xb +predict y, y +predict resid, resid +predict yr, yr +predict mse, mse +predict stdp, stdp +estat ic + +mat icstats=r(S) +mkmat xb xb +mkmat y y +mkmat yr yr +mkmat mse mse +mkmat stdp stdp +mkmat resid resid + +mat2nparray llf nobs k k_exog sigma chi2 df_model k_ar k_ma params cov_params xb y resid yr mse stdp icstats, saving("/home/skipper/statsmodels/statsmodels-skipper/statsmodels/tsa/tests/results/arima111nc_css_results.py") format("%16.0g") replace + diff --git a/statsmodels/tsa/tests/arima112.do b/statsmodels/tsa/tests/arima112.do new file mode 100644 index 0000000..ec88ab7 --- /dev/null +++ b/statsmodels/tsa/tests/arima112.do @@ -0,0 +1,185 @@ +insheet using "/home/skipper/statsmodels/statsmodels-skipper/statsmodels/datasets/macrodata/macrodata.csv" + +gen qtrdate=yq(year,quarter) +format qtrdate %tq +tsset qtrdate + +arima cpi, arima(1,1,2) + +mat llf=e(ll) +mat nobs=e(N) +// number of parameters +mat k=e(k) +// number of dependent variables +mat k_exog=e(k_dv) +mat sigma=e(sigma) +mat chi2=e(chi2) +mat df_model=e(df_m) +mat k_ar=e(ar_max) +mat k_ma=e(ma_max) +mat params=e(b) +mat cov_params=e(V) + +// don't append because you'll rewrite the bunch class +// mat2nparray llf nobs k k_exog sigma chi2 df_model k_ar k_ma params cov_params, saving("/home/skipper/statsmodels/statsmodels-skipper/statsmodels/tsa/tests/results/arima_results.py") format("%16.0g") replace + +predict xb +predict y, y +predict resid, resid +predict yr, yr +predict mse, mse +predict stdp, stdp +estat ic + +mat icstats=r(S) +mkmat xb xb +mkmat y y +mkmat yr yr +mkmat mse mse +mkmat stdp stdp +mkmat resid resid + +mat2nparray llf nobs k k_exog sigma chi2 df_model k_ar k_ma params cov_params xb y resid yr mse stdp icstats, saving("/home/skipper/statsmodels/statsmodels-skipper/statsmodels/tsa/tests/results/arima112_results.py") format("%16.0g") replace + +/* Do it with no constant */ + +clear + +insheet using "/home/skipper/statsmodels/statsmodels-skipper/statsmodels/datasets/macrodata/macrodata.csv" + +gen qtrdate=yq(year,quarter) +format qtrdate %tq +tsset qtrdate + + +arima cpi, arima(1,1,2) noconstant + +mat llf=e(ll) +mat nobs=e(N) +// number of parameters +mat k=e(k) +// number of dependent variables +mat k_exog=e(k_dv) +mat sigma=e(sigma) +mat chi2=e(chi2) +mat df_model=e(df_m) +mat k_ar=e(ar_max) +mat k_ma=e(ma_max) +mat params=e(b) +mat cov_params=e(V) + +// don't append because you'll rewrite the bunch class +// mat2nparray llf nobs k k_exog sigma chi2 df_model k_ar k_ma params cov_params, saving("/home/skipper/statsmodels/statsmodels-skipper/statsmodels/tsa/tests/results/arima_results.py") format("%16.0g") replace + +predict xb +predict y, y +predict resid, resid +predict yr, yr +predict mse, mse +/*predict stdp, stdp*/ +estat ic + +mat icstats=r(S) +mkmat xb xb +mkmat y y +mkmat yr yr +mkmat mse mse +/*mkmat stdp stdp*/ +mkmat resid resid + +mat2nparray llf nobs k k_exog sigma chi2 df_model k_ar k_ma params cov_params xb y resid yr mse icstats, saving("/home/skipper/statsmodels/statsmodels-skipper/statsmodels/tsa/tests/results/arima112nc_results.py") format("%16.0g") replace + +clear + +/* now do conditional */ +insheet using "/home/skipper/statsmodels/statsmodels-skipper/statsmodels/datasets/macrodata/macrodata.csv" + +gen qtrdate=yq(year,quarter) +format qtrdate %tq +tsset qtrdate + +/* still converges to different than x-12-arima */ +arima cpi, arima(1,1,2) condition from(.905322 -.692425 1.07366 0.172024 0.682072819129, copy) gtolerance(.0001) vce(oim) + +mat llf=e(ll) +mat nobs=e(N) +// number of parameters +mat k=e(k) +// number of dependent variables +mat k_exog=e(k_dv) +mat sigma=e(sigma) +mat chi2=e(chi2) +mat df_model=e(df_m) +mat k_ar=e(ar_max) +mat k_ma=e(ma_max) +mat params=e(b) +mat cov_params=e(V) + +// don't append because you'll rewrite the bunch class +// mat2nparray llf nobs k k_exog sigma chi2 df_model k_ar k_ma params cov_params, saving("/home/skipper/statsmodels/statsmodels-skipper/statsmodels/tsa/tests/results/arima_results.py") format("%16.0g") replace + +predict xb +predict y, y +predict resid, resid +predict yr, yr +predict mse, mse +predict stdp, stdp +estat ic + +mat icstats=r(S) +mkmat xb xb +mkmat y y +mkmat yr yr +mkmat mse mse +mkmat stdp stdp +mkmat resid resid + +mat2nparray llf nobs k k_exog sigma chi2 df_model k_ar k_ma params cov_params xb y resid yr mse stdp icstats, saving("/home/skipper/statsmodels/statsmodels-skipper/statsmodels/tsa/tests/results/arima112_css_results.py") format("%16.0g") replace + +/* Do it with no constant */ + +clear + +insheet using "/home/skipper/statsmodels/statsmodels-skipper/statsmodels/datasets/macrodata/macrodata.csv" + +gen qtrdate=yq(year,quarter) +format qtrdate %tq +tsset qtrdate + + +arima cpi, arima(1,1,2) noconstant condition + +mat llf=e(ll) +mat nobs=e(N) +// number of parameters +mat k=e(k) +// number of dependent variables +mat k_exog=e(k_dv) +mat sigma=e(sigma) +mat chi2=e(chi2) +mat df_model=e(df_m) +mat k_ar=e(ar_max) +mat k_ma=e(ma_max) +mat params=e(b) +mat cov_params=e(V) + +// don't append because you'll rewrite the bunch class +// mat2nparray llf nobs k k_exog sigma chi2 df_model k_ar k_ma params cov_params, saving("/home/skipper/statsmodels/statsmodels-skipper/statsmodels/tsa/tests/results/arima_results.py") format("%16.0g") replace + +predict xb +predict y, y +predict resid, resid +predict yr, yr +predict mse, mse +predict stdp, stdp +estat ic + +mat icstats=r(S) +mkmat xb xb +mkmat y y +mkmat yr yr +mkmat mse mse +mkmat stdp stdp +mkmat resid resid + +mat2nparray llf nobs k k_exog sigma chi2 df_model k_ar k_ma params cov_params xb y resid yr mse stdp icstats, saving("/home/skipper/statsmodels/statsmodels-skipper/statsmodels/tsa/tests/results/arima112nc_css_results.py") format("%16.0g") replace diff --git a/statsmodels/tsa/tests/arima211.do b/statsmodels/tsa/tests/arima211.do new file mode 100644 index 0000000..0d2759e --- /dev/null +++ b/statsmodels/tsa/tests/arima211.do @@ -0,0 +1,184 @@ +insheet using "/home/skipper/statsmodels/statsmodels-skipper/statsmodels/datasets/macrodata/macrodata.csv" + +gen qtrdate=yq(year,quarter) +format qtrdate %tq +tsset qtrdate + +arima cpi, arima(2,1,1) + +mat llf=e(ll) +mat nobs=e(N) +// number of parameters +mat k=e(k) +// number of dependent variables +mat k_exog=e(k_dv) +mat sigma=e(sigma) +mat chi2=e(chi2) +mat df_model=e(df_m) +mat k_ar=e(ar_max) +mat k_ma=e(ma_max) +mat params=e(b) +mat cov_params=e(V) + +// don't append because you'll rewrite the bunch class +// mat2nparray llf nobs k k_exog sigma chi2 df_model k_ar k_ma params cov_params, saving("/home/skipper/statsmodels/statsmodels-skipper/statsmodels/tsa/tests/results/arima_results.py") format("%16.0g") replace + +predict xb +predict y, y +predict resid, resid +predict yr, yr +predict mse, mse +predict stdp, stdp +estat ic + +mat icstats=r(S) +mkmat xb xb +mkmat y y +mkmat yr yr +mkmat mse mse +mkmat stdp stdp +mkmat resid resid + +mat2nparray llf nobs k k_exog sigma chi2 df_model k_ar k_ma params cov_params xb y resid yr mse stdp icstats, saving("/home/skipper/statsmodels/statsmodels-skipper/statsmodels/tsa/tests/results/arima211_results.py") format("%16.0g") replace + +clear + +/* do it with no constant */ +insheet using "/home/skipper/statsmodels/statsmodels-skipper/statsmodels/datasets/macrodata/macrodata.csv" + +gen qtrdate=yq(year,quarter) +format qtrdate %tq +tsset qtrdate + +arima cpi, arima(2,1,1) noconstant + +mat llf=e(ll) +mat nobs=e(N) +// number of parameters +mat k=e(k) +// number of dependent variables +mat k_exog=e(k_dv) +mat sigma=e(sigma) +mat chi2=e(chi2) +mat df_model=e(df_m) +mat k_ar=e(ar_max) +mat k_ma=e(ma_max) +mat params=e(b) +mat cov_params=e(V) + +// don't append because you'll rewrite the bunch class +// mat2nparray llf nobs k k_exog sigma chi2 df_model k_ar k_ma params cov_params, saving("/home/skipper/statsmodels/statsmodels-skipper/statsmodels/tsa/tests/results/arima_results.py") format("%16.0g") replace + +predict xb +predict y, y +predict resid, resid +predict yr, yr +predict mse, mse +/* can't do stdp without a constant +predict stdp, stdp */ +estat ic + +mat icstats=r(S) +mkmat xb xb +mkmat y y +mkmat yr yr +mkmat mse mse +/*mkmat stdp stdp*/ +mkmat resid resid + +mat2nparray llf nobs k k_exog sigma chi2 df_model k_ar k_ma params cov_params xb y resid yr mse icstats, saving("/home/skipper/statsmodels/statsmodels-skipper/statsmodels/tsa/tests/results/arima211nc_results.py") format("%16.0g") replace + + +/* now do conditional */ + +clear + + +insheet using "/home/skipper/statsmodels/statsmodels-skipper/statsmodels/datasets/macrodata/macrodata.csv" + +gen qtrdate=yq(year,quarter) +format qtrdate %tq +tsset qtrdate + +arima cpi, arima(2,1,1) condition + +mat llf=e(ll) +mat nobs=e(N) +// number of parameters +mat k=e(k) +// number of dependent variables +mat k_exog=e(k_dv) +mat sigma=e(sigma) +mat chi2=e(chi2) +mat df_model=e(df_m) +mat k_ar=e(ar_max) +mat k_ma=e(ma_max) +mat params=e(b) +mat cov_params=e(V) + +// don't append because you'll rewrite the bunch class +// mat2nparray llf nobs k k_exog sigma chi2 df_model k_ar k_ma params cov_params, saving("/home/skipper/statsmodels/statsmodels-skipper/statsmodels/tsa/tests/results/arima_results.py") format("%16.0g") replace + +predict xb +predict y, y +predict resid, resid +predict yr, yr +predict mse, mse +predict stdp, stdp +estat ic + +mat icstats=r(S) +mkmat xb xb +mkmat y y +mkmat yr yr +mkmat mse mse +mkmat stdp stdp +mkmat resid resid + +mat2nparray llf nobs k k_exog sigma chi2 df_model k_ar k_ma params cov_params xb y resid yr mse stdp icstats, saving("/home/skipper/statsmodels/statsmodels-skipper/statsmodels/tsa/tests/results/arima211_css_results.py") format("%16.0g") replace + +/* do it with no constant */ +clear + +insheet using "/home/skipper/statsmodels/statsmodels-skipper/statsmodels/datasets/macrodata/macrodata.csv" + +gen qtrdate=yq(year,quarter) +format qtrdate %tq +tsset qtrdate + +arima cpi, arima(2,1,1) condition noconstant + +mat llf=e(ll) +mat nobs=e(N) +// number of parameters +mat k=e(k) +// number of dependent variables +mat k_exog=e(k_dv) +mat sigma=e(sigma) +mat chi2=e(chi2) +mat df_model=e(df_m) +mat k_ar=e(ar_max) +mat k_ma=e(ma_max) +mat params=e(b) +mat cov_params=e(V) + +// don't append because you'll rewrite the bunch class +// mat2nparray llf nobs k k_exog sigma chi2 df_model k_ar k_ma params cov_params, saving("/home/skipper/statsmodels/statsmodels-skipper/statsmodels/tsa/tests/results/arima_results.py") format("%16.0g") replace + +predict xb +predict y, y +predict resid, resid +predict yr, yr +predict mse, mse +predict stdp, stdp +estat ic + +mat icstats=r(S) +mkmat xb xb +mkmat y y +mkmat yr yr +mkmat mse mse +mkmat stdp stdp +mkmat resid resid + +mat2nparray llf nobs k k_exog sigma chi2 df_model k_ar k_ma params cov_params xb y resid yr mse stdp icstats, saving("/home/skipper/statsmodels/statsmodels-skipper/statsmodels/tsa/tests/results/arima211nc_css_results.py") format("%16.0g") replace diff --git a/statsmodels/tsa/tests/results/ARMLEConstantPredict.csv b/statsmodels/tsa/tests/results/ARMLEConstantPredict.csv new file mode 100644 index 0000000..c48fad4 --- /dev/null +++ b/statsmodels/tsa/tests/results/ARMLEConstantPredict.csv @@ -0,0 +1,334 @@ +1700, 48.3243 +1701, 12.6633 +1702, 26.1958 +1703, 30.7430 +1704, 35.6854 +1705, 48.6206 +1706, 67.6159 +1707, 16.0018 +1708, 13.3760 +1709, 11.2305 +1710, 9.4877 +1711, 9.0588 +1712, 8.7644 +1713, 11.2268 +1714, 20.9667 +1715, 23.5576 +1716, 36.9585 +1717, 50.0107 +1718, 58.9465 +1719, 46.3827 +1720, 21.4597 +1721, 18.4550 +1722, 22.7606 +1723, 19.9462 +1724, 12.5469 +1725, 33.2339 +1726, 55.8533 +1727, 89.9622 +1728, 120.8949 +1729, 74.1257 +1730, 42.7777 +1731, 31.2814 +1732, 23.3099 +1733, 5.0720 +1734, 12.1647 +1735, 36.4987 +1736, 62.5014 +1737, 93.0209 +1738, 84.6001 +1739, 103.9179 +1740, 81.1555 +1741, 41.0694 +1742, 17.7797 +1743, 11.1391 +1744, 18.9217 +1745, 18.3533 +1746, 29.8649 +1747, 50.0499 +1748, 62.2988 +1749, 73.1959 +1750, 80.7216 +1751, 68.4801 +1752, 24.2343 +1753, 36.7505 +1754, 22.8928 +1755, 5.0187 +1756, 19.4815 +1757, 24.7614 +1758, 52.7583 +1759, 66.4247 +1760, 54.4097 +1761, 63.4711 +1762, 82.9175 +1763, 38.9882 +1764, 27.5613 +1765, 29.6525 +1766, 16.6044 +1767, 17.0212 +1768, 56.0339 +1769, 81.6483 +1770, 113.7808 +1771, 87.3770 +1772, 59.2614 +1773, 51.5278 +1774, 18.2411 +1775, 23.3538 +1776, 8.1929 +1777, 34.2464 +1778, 128.3357 +1779, 165.3934 +1780, 94.6616 +1781, 56.1351 +1782, 51.4397 +1783, 22.6825 +1784, 12.7374 +1785, 10.5643 +1786, 42.5939 +1787, 123.6546 +1788, 149.8687 +1789, 112.0556 +1790, 94.3949 +1791, 62.0904 +1792, 41.9001 +1793, 45.4531 +1794, 34.7052 +1795, 43.7433 +1796, 38.1605 +1797, 38.5734 +1798, 31.0695 +1799, 25.0907 +1800, 25.7435 +1801, 32.0251 +1802, 47.8522 +1803, 52.0917 +1804, 38.1594 +1805, 43.7860 +1806, 34.0097 +1807, 17.4484 +1808, 4.9886 +1809, 11.7416 +1810, 11.3238 +1811, 12.7122 +1812, 16.3944 +1813, 20.4500 +1814, 26.2209 +1815, 23.0268 +1816, 41.8362 +1817, 45.7260 +1818, 31.0652 +1819, 21.0013 +1820, 18.9056 +1821, 12.4379 +1822, 7.9779 +1823, 9.0869 +1824, 12.5842 +1825, 23.4923 +1826, 30.4295 +1827, 46.1351 +1828, 52.3075 +1829, 59.8270 +1830, 55.1892 +1831, 56.2765 +1832, 27.8672 +1833, 13.9741 +1834, 5.2897 +1835, 22.4063 +1836, 75.8426 +1837, 135.2604 +1838, 123.4356 +1839, 73.1759 +1840, 64.5067 +1841, 46.3514 +1842, 16.0159 +1843, 17.6781 +1844, 16.1095 +1845, 39.1884 +1846, 75.7718 +1847, 80.4127 +1848, 108.4728 +1849, 120.3614 +1850, 65.1015 +1851, 39.5009 +1852, 51.7036 +1853, 39.0369 +1854, 30.8453 +1855, 23.0074 +1856, 20.6358 +1857, 32.6021 +1858, 51.0554 +1859, 73.0901 +1860, 102.9663 +1861, 85.1107 +1862, 56.3590 +1863, 41.8000 +1864, 29.0897 +1865, 38.4049 +1866, 23.5480 +1867, 17.2169 +1868, 25.5456 +1869, 64.8925 +1870, 92.1810 +1871, 144.9161 +1872, 81.2455 +1873, 74.2512 +1874, 44.7857 +1875, 24.2016 +1876, 5.2302 +1877, 16.3772 +1878, 26.6953 +1879, 32.5956 +1880, 32.5162 +1881, 63.4612 +1882, 68.1254 +1883, 59.2254 +1884, 55.2588 +1885, 51.3962 +1886, 37.8536 +1887, 10.4133 +1888, 7.7974 +1889, 13.1916 +1890, 19.4783 +1891, 23.2385 +1892, 56.4945 +1893, 88.4361 +1894, 81.8715 +1895, 60.7967 +1896, 45.6953 +1897, 23.6868 +1898, 16.1033 +1899, 24.9201 +1900, 12.9006 +1901, 23.2250 +1902, 23.0700 +1903, 24.7299 +1904, 46.0211 +1905, 53.2488 +1906, 64.2425 +1907, 45.4394 +1908, 52.2379 +1909, 36.7360 +1910, 31.1373 +1911, 8.0110 +1912, 5.4179 +1913, 15.0374 +1914, 18.6514 +1915, 25.9393 +1916, 70.5995 +1917, 60.9699 +1918, 106.9299 +1919, 59.2734 +1920, 35.7445 +1921, 22.7168 +1922, 15.3497 +1923, 9.8045 +1924, 15.2983 +1925, 31.0386 +1926, 72.1485 +1927, 76.1533 +1928, 69.4000 +1929, 71.1905 +1930, 50.0137 +1931, 17.2099 +1932, 13.4715 +1933, 11.0154 +1934, 13.6062 +1935, 26.3285 +1936, 57.2889 +1937, 98.3814 +1938, 116.2272 +1939, 86.8228 +1940, 59.7324 +1941, 43.8037 +1942, 28.2076 +1943, 18.4238 +1944, 15.6238 +1945, 22.8275 +1946, 62.5187 +1947, 121.9892 +1948, 158.7448 +1949, 107.3938 +1950, 104.0028 +1951, 48.3130 +1952, 42.6960 +1953, 14.0014 +1954, 7.2680 +1955, 21.2344 +1956, 78.2456 +1957, 181.3364 +1958, 194.1315 +1959, 143.6808 +1960, 118.8232 +1961, 64.9805 +1962, 13.6226 +1963, 22.7451 +1964, 25.1087 +1965, 28.2275 +1966, 56.5253 +1967, 92.5299 +1968, 125.9856 +1969, 110.9182 +1970, 88.2160 +1971, 85.0722 +1972, 38.5614 +1973, 52.3767 +1974, 22.8371 +1975, 29.6618 +1976, 28.7989 +1977, 31.3542 +1978, 53.3789 +1979, 123.7290 +1980, 158.5133 +1981, 127.2971 +1982, 100.5273 +1983, 81.8967 +1984, 27.4831 +1985, 26.9057 +1986, 9.8930 +1987, 24.9149 +1988, 66.4453 +1989, 140.0824 +1990, 173.7841 +1991, 121.4507 +1992, 118.4088 +1993, 59.0602 +1994, 19.9059 +1995, 19.0615 +1996, 13.8253 +1997, 23.5746 +1998, 59.6311 +1999, 99.0682 +2000, 116.3966 +2001, 120.1556 +2002, 91.5468 +2003, 77.2543 +2004, 34.5889 +2005, 20.0033 +2006, 24.7040 +2007, 20.0261 +2008, 23.4736 +2009, 30.8586 +2010, 61.3354 +2011, 87.0247 +2012, 91.3212 +2013, 79.9216 +2014, 60.7995 +2015, 40.3749 +2016, 24.5290 +2017, 13.5305 +2018, 14.4426 +2019, 26.8251 +2020, 47.5587 +2021, 67.3004 +2022, 78.6904 +2023, 78.4359 +2024, 67.9448 +2025, 52.0910 +2026, 35.7081 +2027, 24.0176 +2028, 20.4849 +2029, 26.4658 +2030, 39.6776 +2031, 55.2300 +2032, 67.4980 +2033, 72.3783 diff --git a/statsmodels/tsa/tests/results/AROLSConstantPredict.csv b/statsmodels/tsa/tests/results/AROLSConstantPredict.csv new file mode 100644 index 0000000..3ffe0df --- /dev/null +++ b/statsmodels/tsa/tests/results/AROLSConstantPredict.csv @@ -0,0 +1,416 @@ +11.9759400 0.0000000 0.0000000 0.0000000 0.0000000 +10.2786500 0.0000000 0.0000000 0.0000000 0.0000000 +9.7529560 0.0000000 0.0000000 0.0000000 0.0000000 +9.5912670 0.0000000 0.0000000 0.0000000 0.0000000 +12.1745500 0.0000000 0.0000000 0.0000000 0.0000000 +22.0220200 0.0000000 0.0000000 0.0000000 0.0000000 +24.6309500 0.0000000 0.0000000 0.0000000 0.0000000 +38.0292300 0.0000000 0.0000000 0.0000000 0.0000000 +51.0138500 0.0000000 0.0000000 0.0000000 0.0000000 +59.8135400 0.0000000 0.0000000 0.0000000 0.0000000 +47.0489200 0.0000000 0.0000000 0.0000000 0.0000000 +22.0033600 0.0000000 0.0000000 0.0000000 0.0000000 +19.0655900 0.0000000 0.0000000 0.0000000 0.0000000 +23.3640300 0.0000000 0.0000000 0.0000000 0.0000000 +20.4725000 0.0000000 0.0000000 0.0000000 0.0000000 +13.0734100 0.0000000 0.0000000 0.0000000 0.0000000 +34.0228200 0.0000000 0.0000000 0.0000000 0.0000000 +56.7262200 0.0000000 0.0000000 0.0000000 0.0000000 +90.8454600 0.0000000 0.0000000 0.0000000 0.0000000 +121.5800000 0.0000000 0.0000000 0.0000000 0.0000000 +74.3104000 0.0000000 0.0000000 0.0000000 0.0000000 +42.9633800 0.0000000 0.0000000 0.0000000 0.0000000 +31.5294900 0.0000000 0.0000000 0.0000000 0.0000000 +23.5693800 0.0000000 0.0000000 0.0000000 0.0000000 +5.1367160 0.0000000 0.0000000 0.0000000 0.0000000 +12.4800100 0.0000000 0.0000000 0.0000000 0.0000000 +37.1129600 0.0000000 0.0000000 0.0000000 0.0000000 +63.3150300 0.0000000 0.0000000 0.0000000 0.0000000 +93.8999400 0.0000000 0.0000000 0.0000000 0.0000000 +85.2563600 0.0000000 0.0000000 0.0000000 0.0000000 +104.6107000 0.0000000 0.0000000 0.0000000 0.0000000 +81.4402600 0.0000000 0.0000000 0.0000000 0.0000000 +41.1985200 0.0000000 0.0000000 0.0000000 0.0000000 +17.8384800 0.0000000 0.0000000 0.0000000 0.0000000 +11.3475900 0.0000000 0.0000000 0.0000000 0.0000000 +19.1989800 0.0000000 0.0000000 0.0000000 0.0000000 +18.6833900 0.0000000 0.0000000 0.0000000 0.0000000 +30.4802500 0.0000000 0.0000000 0.0000000 0.0000000 +50.8808300 0.0000000 0.0000000 0.0000000 0.0000000 +63.2416400 0.0000000 0.0000000 0.0000000 0.0000000 +74.0747700 0.0000000 0.0000000 0.0000000 0.0000000 +81.5033200 0.0000000 0.0000000 0.0000000 0.0000000 +69.0184900 0.0000000 0.0000000 0.0000000 0.0000000 +24.5216100 0.0000000 0.0000000 0.0000000 0.0000000 +37.2684700 0.0000000 0.0000000 0.0000000 0.0000000 +23.2274100 0.0000000 0.0000000 0.0000000 0.0000000 +5.3522780 0.0000000 0.0000000 0.0000000 0.0000000 +19.9662200 0.0000000 0.0000000 0.0000000 0.0000000 +25.4448600 0.0000000 0.0000000 0.0000000 0.0000000 +53.6239300 0.0000000 0.0000000 0.0000000 0.0000000 +67.2308800 0.0000000 0.0000000 0.0000000 0.0000000 +55.1517300 0.0000000 0.0000000 0.0000000 0.0000000 +64.2185500 0.0000000 0.0000000 0.0000000 0.0000000 +83.6496600 0.0000000 0.0000000 0.0000000 0.0000000 +39.2648600 0.0000000 0.0000000 0.0000000 0.0000000 +27.9030000 0.0000000 0.0000000 0.0000000 0.0000000 +30.0447300 0.0000000 0.0000000 0.0000000 0.0000000 +17.0010600 0.0000000 0.0000000 0.0000000 0.0000000 +17.4538600 0.0000000 0.0000000 0.0000000 0.0000000 +56.7539700 0.0000000 0.0000000 0.0000000 0.0000000 +82.3584100 0.0000000 0.0000000 0.0000000 0.0000000 +114.4292000 0.0000000 0.0000000 0.0000000 0.0000000 +87.6790300 0.0000000 0.0000000 0.0000000 0.0000000 +59.5520700 0.0000000 0.0000000 0.0000000 0.0000000 +51.8202600 0.0000000 0.0000000 0.0000000 0.0000000 +18.3619000 0.0000000 0.0000000 0.0000000 0.0000000 +23.5642100 0.0000000 0.0000000 0.0000000 0.0000000 +8.3428510 0.0000000 0.0000000 0.0000000 0.0000000 +34.8153100 0.0000000 0.0000000 0.0000000 0.0000000 +129.2351000 0.0000000 0.0000000 0.0000000 0.0000000 +166.0026000 0.0000000 0.0000000 0.0000000 0.0000000 +94.5698400 0.0000000 0.0000000 0.0000000 0.0000000 +56.1962000 0.0000000 0.0000000 0.0000000 0.0000000 +51.7409200 0.0000000 0.0000000 0.0000000 0.0000000 +22.7223600 0.0000000 0.0000000 0.0000000 0.0000000 +12.6374400 0.0000000 0.0000000 0.0000000 0.0000000 +10.5908700 0.0000000 0.0000000 0.0000000 0.0000000 +43.0951100 0.0000000 0.0000000 0.0000000 0.0000000 +124.5025000 0.0000000 0.0000000 0.0000000 0.0000000 +150.4858000 0.0000000 0.0000000 0.0000000 0.0000000 +112.2361000 0.0000000 0.0000000 0.0000000 0.0000000 +94.5556000 0.0000000 0.0000000 0.0000000 0.0000000 +62.1523700 0.0000000 0.0000000 0.0000000 0.0000000 +41.8596000 0.0000000 0.0000000 0.0000000 0.0000000 +45.3130000 0.0000000 0.0000000 0.0000000 0.0000000 +34.5130900 0.0000000 0.0000000 0.0000000 0.0000000 +43.7741400 0.0000000 0.0000000 0.0000000 0.0000000 +38.3710400 0.0000000 0.0000000 0.0000000 0.0000000 +39.1159500 0.0000000 0.0000000 0.0000000 0.0000000 +31.6996500 0.0000000 0.0000000 0.0000000 0.0000000 +25.8676600 0.0000000 0.0000000 0.0000000 0.0000000 +26.5877400 0.0000000 0.0000000 0.0000000 0.0000000 +32.9734400 0.0000000 0.0000000 0.0000000 0.0000000 +48.8512800 0.0000000 0.0000000 0.0000000 0.0000000 +52.9919000 0.0000000 0.0000000 0.0000000 0.0000000 +38.9382100 0.0000000 0.0000000 0.0000000 0.0000000 +44.5774900 0.0000000 0.0000000 0.0000000 0.0000000 +34.6780100 0.0000000 0.0000000 0.0000000 0.0000000 +18.0106100 0.0000000 0.0000000 0.0000000 0.0000000 +5.5363910 0.0000000 0.0000000 0.0000000 0.0000000 +12.4546200 0.0000000 0.0000000 0.0000000 0.0000000 +12.0475100 0.0000000 0.0000000 0.0000000 0.0000000 +13.5244200 0.0000000 0.0000000 0.0000000 0.0000000 +17.3066800 0.0000000 0.0000000 0.0000000 0.0000000 +21.4727300 0.0000000 0.0000000 0.0000000 0.0000000 +27.2791200 0.0000000 0.0000000 0.0000000 0.0000000 +24.0394000 0.0000000 0.0000000 0.0000000 0.0000000 +42.9192800 0.0000000 0.0000000 0.0000000 0.0000000 +46.6316400 0.0000000 0.0000000 0.0000000 0.0000000 +31.8181400 0.0000000 0.0000000 0.0000000 0.0000000 +21.6993300 0.0000000 0.0000000 0.0000000 0.0000000 +19.6576400 0.0000000 0.0000000 0.0000000 0.0000000 +13.1277700 0.0000000 0.0000000 0.0000000 0.0000000 +8.6515950 0.0000000 0.0000000 0.0000000 0.0000000 +9.8414150 0.0000000 0.0000000 0.0000000 0.0000000 +13.4353800 0.0000000 0.0000000 0.0000000 0.0000000 +24.4590000 0.0000000 0.0000000 0.0000000 0.0000000 +31.4124800 0.0000000 0.0000000 0.0000000 0.0000000 +47.1630100 0.0000000 0.0000000 0.0000000 0.0000000 +53.2122300 0.0000000 0.0000000 0.0000000 0.0000000 +60.6589500 0.0000000 0.0000000 0.0000000 0.0000000 +55.8372900 0.0000000 0.0000000 0.0000000 0.0000000 +56.8512200 0.0000000 0.0000000 0.0000000 0.0000000 +28.1917800 0.0000000 0.0000000 0.0000000 0.0000000 +14.3540700 0.0000000 0.0000000 0.0000000 0.0000000 +5.7102850 0.0000000 0.0000000 0.0000000 0.0000000 +23.0343200 0.0000000 0.0000000 0.0000000 0.0000000 +76.6172400 0.0000000 0.0000000 0.0000000 0.0000000 +135.9928000 0.0000000 0.0000000 0.0000000 0.0000000 +123.7094000 0.0000000 0.0000000 0.0000000 0.0000000 +73.2189500 0.0000000 0.0000000 0.0000000 0.0000000 +64.7666000 0.0000000 0.0000000 0.0000000 0.0000000 +46.4762400 0.0000000 0.0000000 0.0000000 0.0000000 +15.8943300 0.0000000 0.0000000 0.0000000 0.0000000 +17.6160900 0.0000000 0.0000000 0.0000000 0.0000000 +16.2724200 0.0000000 0.0000000 0.0000000 0.0000000 +39.7201900 0.0000000 0.0000000 0.0000000 0.0000000 +76.5358100 0.0000000 0.0000000 0.0000000 0.0000000 +81.1472200 0.0000000 0.0000000 0.0000000 0.0000000 +109.2335000 0.0000000 0.0000000 0.0000000 0.0000000 +120.9095000 0.0000000 0.0000000 0.0000000 0.0000000 +65.2204600 0.0000000 0.0000000 0.0000000 0.0000000 +39.6257500 0.0000000 0.0000000 0.0000000 0.0000000 +51.9503700 0.0000000 0.0000000 0.0000000 0.0000000 +39.0829800 0.0000000 0.0000000 0.0000000 0.0000000 +30.8064600 0.0000000 0.0000000 0.0000000 0.0000000 +23.1325800 0.0000000 0.0000000 0.0000000 0.0000000 +21.0915600 0.0000000 0.0000000 0.0000000 0.0000000 +33.3012400 0.0000000 0.0000000 0.0000000 0.0000000 +51.9048300 0.0000000 0.0000000 0.0000000 0.0000000 +73.9530300 0.0000000 0.0000000 0.0000000 0.0000000 +103.7786000 0.0000000 0.0000000 0.0000000 0.0000000 +85.6079400 0.0000000 0.0000000 0.0000000 0.0000000 +56.7498800 0.0000000 0.0000000 0.0000000 0.0000000 +42.1813100 0.0000000 0.0000000 0.0000000 0.0000000 +29.4044800 0.0000000 0.0000000 0.0000000 0.0000000 +38.6731000 0.0000000 0.0000000 0.0000000 0.0000000 +23.6690500 0.0000000 0.0000000 0.0000000 0.0000000 +17.5451500 0.0000000 0.0000000 0.0000000 0.0000000 +26.1287800 0.0000000 0.0000000 0.0000000 0.0000000 +65.8095000 0.0000000 0.0000000 0.0000000 0.0000000 +92.9647200 0.0000000 0.0000000 0.0000000 0.0000000 +145.6664000 0.0000000 0.0000000 0.0000000 0.0000000 +81.2722500 0.0000000 0.0000000 0.0000000 0.0000000 +74.5430100 0.0000000 0.0000000 0.0000000 0.0000000 +44.8565600 0.0000000 0.0000000 0.0000000 0.0000000 +24.3290200 0.0000000 0.0000000 0.0000000 0.0000000 +5.1214140 0.0000000 0.0000000 0.0000000 0.0000000 +16.5768300 0.0000000 0.0000000 0.0000000 0.0000000 +27.0747900 0.0000000 0.0000000 0.0000000 0.0000000 +33.1977300 0.0000000 0.0000000 0.0000000 0.0000000 +33.3486600 0.0000000 0.0000000 0.0000000 0.0000000 +64.5380700 0.0000000 0.0000000 0.0000000 0.0000000 +69.0776600 0.0000000 0.0000000 0.0000000 0.0000000 +59.9712900 0.0000000 0.0000000 0.0000000 0.0000000 +55.9539800 0.0000000 0.0000000 0.0000000 0.0000000 +52.0260500 0.0000000 0.0000000 0.0000000 0.0000000 +38.3207100 0.0000000 0.0000000 0.0000000 0.0000000 +10.7317100 0.0000000 0.0000000 0.0000000 0.0000000 +8.2646960 0.0000000 0.0000000 0.0000000 0.0000000 +13.7600200 0.0000000 0.0000000 0.0000000 0.0000000 +20.1455600 0.0000000 0.0000000 0.0000000 0.0000000 +23.9805600 0.0000000 0.0000000 0.0000000 0.0000000 +57.4898700 0.0000000 0.0000000 0.0000000 0.0000000 +89.4062200 0.0000000 0.0000000 0.0000000 0.0000000 +82.5605900 0.0000000 0.0000000 0.0000000 0.0000000 +61.2980800 0.0000000 0.0000000 0.0000000 0.0000000 +46.1625400 0.0000000 0.0000000 0.0000000 0.0000000 +24.0584700 0.0000000 0.0000000 0.0000000 0.0000000 +16.4333800 0.0000000 0.0000000 0.0000000 0.0000000 +25.2997200 0.0000000 0.0000000 0.0000000 0.0000000 +13.2566000 0.0000000 0.0000000 0.0000000 0.0000000 +23.8350100 0.0000000 0.0000000 0.0000000 0.0000000 +23.8146600 0.0000000 0.0000000 0.0000000 0.0000000 +25.6611900 0.0000000 0.0000000 0.0000000 0.0000000 +47.0365800 0.0000000 0.0000000 0.0000000 0.0000000 +54.1930900 0.0000000 0.0000000 0.0000000 0.0000000 +65.1149700 0.0000000 0.0000000 0.0000000 0.0000000 +46.0802700 0.0000000 0.0000000 0.0000000 0.0000000 +52.9767200 0.0000000 0.0000000 0.0000000 0.0000000 +37.2364000 0.0000000 0.0000000 0.0000000 0.0000000 +31.6399500 0.0000000 0.0000000 0.0000000 0.0000000 +8.3276520 0.0000000 0.0000000 0.0000000 0.0000000 +5.9585280 0.0000000 0.0000000 0.0000000 0.0000000 +15.6986000 0.0000000 0.0000000 0.0000000 0.0000000 +19.4157400 0.0000000 0.0000000 0.0000000 0.0000000 +26.8004200 0.0000000 0.0000000 0.0000000 0.0000000 +71.6717800 0.0000000 0.0000000 0.0000000 0.0000000 +61.7876800 0.0000000 0.0000000 0.0000000 0.0000000 +107.8738000 0.0000000 0.0000000 0.0000000 0.0000000 +59.6150600 0.0000000 0.0000000 0.0000000 0.0000000 +36.1787000 0.0000000 0.0000000 0.0000000 0.0000000 +23.0118000 0.0000000 0.0000000 0.0000000 0.0000000 +15.7560100 0.0000000 0.0000000 0.0000000 0.0000000 +10.0766500 0.0000000 0.0000000 0.0000000 0.0000000 +15.7355000 0.0000000 0.0000000 0.0000000 0.0000000 +31.7158300 0.0000000 0.0000000 0.0000000 0.0000000 +73.0440800 0.0000000 0.0000000 0.0000000 0.0000000 +76.9345200 0.0000000 0.0000000 0.0000000 0.0000000 +70.0590100 0.0000000 0.0000000 0.0000000 0.0000000 +71.8427700 0.0000000 0.0000000 0.0000000 0.0000000 +50.4651500 0.0000000 0.0000000 0.0000000 0.0000000 +17.5162100 0.0000000 0.0000000 0.0000000 0.0000000 +13.8635900 0.0000000 0.0000000 0.0000000 0.0000000 +11.4670000 0.0000000 0.0000000 0.0000000 0.0000000 +14.1359600 0.0000000 0.0000000 0.0000000 0.0000000 +27.0013800 0.0000000 0.0000000 0.0000000 0.0000000 +58.2015500 0.0000000 0.0000000 0.0000000 0.0000000 +99.3332300 0.0000000 0.0000000 0.0000000 0.0000000 +116.9505000 0.0000000 0.0000000 0.0000000 0.0000000 +87.1665200 0.0000000 0.0000000 0.0000000 0.0000000 +59.9801400 0.0000000 0.0000000 0.0000000 0.0000000 +44.0118200 0.0000000 0.0000000 0.0000000 0.0000000 +28.3064400 0.0000000 0.0000000 0.0000000 0.0000000 +18.4483300 0.0000000 0.0000000 0.0000000 0.0000000 +15.7514600 0.0000000 0.0000000 0.0000000 0.0000000 +23.2148900 0.0000000 0.0000000 0.0000000 0.0000000 +63.2519000 0.0000000 0.0000000 0.0000000 0.0000000 +122.8757000 0.0000000 0.0000000 0.0000000 0.0000000 +159.3815000 0.0000000 0.0000000 0.0000000 0.0000000 +107.4253000 0.0000000 0.0000000 0.0000000 0.0000000 +104.1619000 0.0000000 0.0000000 0.0000000 0.0000000 +48.1259400 0.0000000 0.0000000 0.0000000 0.0000000 +42.6543500 0.0000000 0.0000000 0.0000000 0.0000000 +13.6000500 0.0000000 0.0000000 0.0000000 0.0000000 +7.1715720 0.0000000 0.0000000 0.0000000 0.0000000 +21.3679900 0.0000000 0.0000000 0.0000000 0.0000000 +78.9334300 0.0000000 0.0000000 0.0000000 0.0000000 +182.2746000 0.0000000 0.0000000 0.0000000 0.0000000 +194.4485000 0.0000000 0.0000000 0.0000000 0.0000000 +143.5360000 0.0000000 0.0000000 0.0000000 0.0000000 +118.6101000 0.0000000 0.0000000 0.0000000 0.0000000 +64.6159600 0.0000000 0.0000000 0.0000000 0.0000000 +12.9757800 0.0000000 0.0000000 0.0000000 0.0000000 +22.2453300 0.0000000 0.0000000 0.0000000 0.0000000 +24.7075200 0.0000000 0.0000000 0.0000000 0.0000000 +28.1045400 0.0000000 0.0000000 0.0000000 0.0000000 +56.9165100 0.0000000 0.0000000 0.0000000 0.0000000 +93.3444500 0.0000000 0.0000000 0.0000000 0.0000000 +126.8484000 0.0000000 0.0000000 0.0000000 0.0000000 +111.4046000 0.0000000 0.0000000 0.0000000 0.0000000 +88.5821600 0.0000000 0.0000000 0.0000000 0.0000000 +85.3931800 0.0000000 0.0000000 0.0000000 0.0000000 +38.5716000 0.0000000 0.0000000 0.0000000 0.0000000 +52.5054300 0.0000000 0.0000000 0.0000000 0.0000000 +22.6849600 0.0000000 0.0000000 0.0000000 0.0000000 +29.8208300 0.0000000 0.0000000 0.0000000 0.0000000 +28.9759600 0.0000000 0.0000000 0.0000000 0.0000000 +31.9008800 0.0000000 0.0000000 0.0000000 0.0000000 +54.0814400 0.0000000 0.0000000 0.0000000 0.0000000 +124.7143000 0.0000000 0.0000000 0.0000000 0.0000000 +159.1404000 0.0000000 0.0000000 0.0000000 0.0000000 +127.3744000 0.0000000 0.0000000 0.0000000 0.0000000 +100.5049000 0.0000000 0.0000000 0.0000000 0.0000000 +81.8057200 0.0000000 0.0000000 0.0000000 0.0000000 +27.1036800 0.0000000 0.0000000 0.0000000 0.0000000 +26.5695300 0.0000000 0.0000000 0.0000000 0.0000000 +9.5603100 0.0000000 0.0000000 0.0000000 0.0000000 +24.9834700 0.0000000 0.0000000 0.0000000 0.0000000 +66.8504900 0.0000000 0.0000000 0.0000000 0.0000000 +140.9012000 0.0000000 0.0000000 0.0000000 0.0000000 +174.3067000 0.0000000 0.0000000 0.0000000 0.0000000 +121.4614000 0.0000000 0.0000000 0.0000000 0.0000000 +118.5412000 0.0000000 0.0000000 0.0000000 0.0000000 +58.8262600 0.0000000 0.0000000 0.0000000 0.0000000 +19.6645700 0.0000000 0.0000000 0.0000000 0.0000000 +18.7595800 0.0000000 0.0000000 0.0000000 0.0000000 +13.7100200 0.0000000 0.0000000 0.0000000 0.0000000 +23.6470600 0.0000000 0.0000000 0.0000000 0.0000000 +60.1537000 0.0000000 0.0000000 0.0000000 0.0000000 +99.8869600 0.0000000 0.0000000 0.0000000 0.0000000 +117.1123000 0.0000000 0.0000000 0.0000000 0.0000000 +120.7331000 0.0000000 0.0000000 0.0000000 0.0000000 +91.8149300 0.0000000 0.0000000 0.0000000 0.0000000 +77.4846300 0.0000000 0.0000000 0.0000000 0.0000000 +34.4894300 0.0000000 0.0000000 0.0000000 0.0000000 +20.0033400 0.0000000 0.0000000 0.0000000 0.0000000 +24.7432000 0.0000000 0.0000000 0.0000000 0.0000000 +20.1675900 0.0000000 0.0000000 0.0000000 0.0000000 +23.8157000 0.0000000 0.0000000 0.0000000 0.0000000 +0.0000000 31.4848020 1.8510816 61.1185220 15.1195230 +0.0000000 63.0235290 17.3997540 108.6473000 23.2778640 +0.0000000 89.6490390 35.8613520 143.4367200 27.4432010 +0.0000000 94.3504790 40.4874460 148.2135100 27.4816440 +0.0000000 82.7339400 28.7053700 136.7625100 27.5661030 +0.0000000 63.0438490 8.7092070 117.3784900 27.7222650 +0.0000000 41.9084070 -13.3325960 97.1494110 28.1847030 +0.0000000 25.4306420 -29.9790530 80.8403370 28.2707720 +0.0000000 13.9844080 -41.3907610 69.3595760 28.2531560 +0.0000000 14.8882740 -40.4364050 70.2129520 28.2273950 +0.0000000 27.8979810 -27.3766250 83.1725870 28.2018480 +0.0000000 49.7852650 -5.4406619 105.0111900 28.1770110 +0.0000000 70.8004860 15.6194050 125.9815700 28.1541300 +0.0000000 83.0697780 27.9220460 138.2175100 28.1371150 +0.0000000 83.0085130 27.8770030 138.1400200 28.1288380 +0.0000000 72.0037060 16.8884570 127.1189500 28.1205410 +0.0000000 55.1633520 0.0639279 110.2627800 28.1124680 +0.0000000 37.6503180 -17.4333340 92.7339700 28.1044210 +0.0000000 25.0510430 -30.0174780 80.1195630 28.0967000 +0.0000000 21.1630520 -33.8908540 76.2169590 28.0892440 +0.0000000 27.5284980 -27.5107620 82.5677570 28.0817710 +0.0000000 41.7986650 -13.2259040 96.8232330 28.0742750 +0.0000000 58.7368970 3.7266508 113.7471400 28.0669680 +0.0000000 72.2330030 17.2341670 127.2318400 28.0611460 +0.0000000 77.7530030 22.7623210 132.7436900 28.0569860 +0.0000000 74.0157920 19.0318910 128.9996900 28.0535260 +0.0000000 62.8477370 7.8705108 117.8249600 28.0501210 +0.0000000 48.3854910 -6.5850171 103.3560000 28.0466930 +0.0000000 35.5052140 -19.4585680 90.4689960 28.0432610 +0.0000000 28.4429380 -26.5141250 83.4000000 28.0398330 +0.0000000 29.3889180 -25.5614090 84.3392450 28.0363960 +0.0000000 37.7774620 -17.1660830 92.7210060 28.0329360 +0.0000000 50.4822790 -4.4546141 105.4191700 28.0295420 +0.0000000 62.9729370 8.0419878 117.9038900 28.0265090 +0.0000000 71.0107400 16.0845720 125.9369100 28.0240700 +0.0000000 72.0955920 17.1733080 127.0178800 28.0220880 +0.0000000 66.2249580 11.3062430 121.1436700 28.0202670 +0.0000000 55.7103870 0.7952491 110.6255300 28.0184430 +0.0000000 44.2965600 -10.6149740 99.2080950 28.0166040 +0.0000000 35.8598250 -19.0481480 90.7677980 28.0147870 +0.0000000 33.1263160 -21.7781480 88.0307800 28.0129960 +0.0000000 36.7959480 -18.1049950 91.6968900 28.0112000 +0.0000000 45.3671240 -9.5302849 100.2645300 28.0093970 +0.0000000 55.7318540 0.8377923 110.6259200 28.0076890 +0.0000000 64.3047330 9.4135662 119.1959000 28.0062120 +0.0000000 68.2735480 13.3847730 123.1623200 28.0049920 +0.0000000 66.5136330 11.6269550 121.4003100 28.0039220 +0.0000000 59.8838900 4.9992620 114.7685200 28.0028760 +0.0000000 50.8412620 -4.0412819 105.7238000 28.0018120 +0.0000000 42.5446270 -12.3358520 97.4251060 28.0007590 +0.0000000 37.7651790 -17.1133090 92.6436660 27.9997430 +0.0000000 37.9696230 -16.9069130 92.8461590 27.9987470 +0.0000000 42.8783010 -11.9962670 97.7528690 27.9977430 +0.0000000 50.6315400 -4.2410809 105.5041600 27.9967500 +0.0000000 58.4879240 3.6170904 113.3587600 27.9958380 +0.0000000 63.7920060 8.9226977 118.6613100 27.9950590 +0.0000000 64.8692090 10.0012080 119.7372100 27.9943930 +0.0000000 61.5466670 6.6798941 116.4134400 27.9937660 +0.0000000 55.1434170 0.2778918 110.0089400 27.9931300 +0.0000000 47.9591940 -6.9050753 102.8234600 27.9924890 +0.0000000 42.4562040 -12.4068580 97.3192650 27.9918720 +0.0000000 40.4217560 -14.4401560 95.2836670 27.9912860 +0.0000000 42.3939400 -12.4668360 97.2547170 27.9907070 +0.0000000 47.5337700 -7.3258617 102.3934000 27.9901220 +0.0000000 53.9685690 -0.8899571 108.8271000 27.9895580 +0.0000000 59.4703160 4.6127767 114.3278500 27.9890550 +0.0000000 62.2242340 7.3675403 117.0809300 27.9886230 +0.0000000 61.4234410 6.5675102 116.2793700 27.9882340 +0.0000000 57.4966850 2.6415116 112.3518600 27.9878480 +0.0000000 51.9090100 -2.9453876 106.7634100 27.9874520 +0.0000000 46.6217160 -8.2319210 101.4753500 27.9870640 +0.0000000 43.4085840 -11.4443400 98.2615070 27.9867000 +0.0000000 43.2652130 -11.5870300 98.1174550 27.9863520 +0.0000000 46.1068180 -8.7447447 100.9583800 27.9860050 +0.0000000 50.8441520 -4.0067320 105.6950400 27.9856590 +0.0000000 55.7954810 0.9452331 110.6457300 27.9853340 +0.0000000 59.2806460 4.4309549 114.1303400 27.9850510 +0.0000000 60.1884180 5.3392149 115.0376200 27.9848020 +0.0000000 58.3266800 3.4779434 113.1754200 27.9845640 +0.0000000 54.4468480 -0.4014103 109.2951100 27.9843200 +0.0000000 49.9486890 -4.8990877 104.7964700 27.9840740 +0.0000000 46.3792360 -8.4680827 101.2265600 27.9838400 +0.0000000 44.9039650 -9.9429285 99.7508580 27.9836230 +0.0000000 45.9299740 -8.9165071 100.7764600 27.9834130 +0.0000000 49.0017880 -5.8442793 103.8478600 27.9832020 +0.0000000 52.9930360 -1.8526281 107.8387000 27.9829960 +0.0000000 56.5162980 1.6710007 111.3615900 27.9828090 +0.0000000 58.4031040 3.5581266 113.2480800 27.9826460 +0.0000000 58.0888840 3.2441985 112.9335700 27.9824960 +0.0000000 55.7770660 0.9326740 110.6214600 27.9823470 +0.0000000 52.3366470 -2.5074431 107.1807400 27.9821930 +0.0000000 48.9795230 -5.8642710 103.8233200 27.9820420 +0.0000000 46.8362120 -8.0073067 101.6797300 27.9819010 +0.0000000 46.5776780 -8.2655840 101.4209400 27.9817700 +0.0000000 48.2089350 -6.6340737 103.0519400 27.9816410 +0.0000000 51.0966030 -3.7461536 105.9393600 27.9815120 +0.0000000 54.2108270 -0.6316910 109.0533400 27.9813910 +0.0000000 56.4904620 1.6481558 111.3327700 27.9812830 +0.0000000 57.2027790 2.3606596 112.0449000 27.9811870 +0.0000000 56.1764620 1.3345231 111.0184000 27.9810950 +0.0000000 53.8348010 -1.0069512 108.6765500 27.9810000 +0.0000000 51.0266380 -3.8149243 105.8682000 27.9809030 +0.0000000 48.7210450 -6.1203380 103.5624300 27.9808120 +0.0000000 47.6748050 -7.1664125 102.5160200 27.9807270 +0.0000000 48.1861910 -6.6548697 103.0272500 27.9806470 +0.0000000 50.0143780 -4.8265260 104.8552800 27.9805670 +0.0000000 52.4844480 -2.3563031 107.3252000 27.9804890 +0.0000000 54.7343620 -0.1062499 109.5749700 27.9804180 +0.0000000 56.0142720 1.1737832 110.8547600 27.9803550 +0.0000000 55.9348080 1.0944315 110.7751800 27.9802980 +0.0000000 54.5827200 -0.2575423 109.4229800 27.9802400 +0.0000000 52.4706790 -2.3694654 107.3108200 27.9801790 +0.0000000 50.3454460 -4.4945815 105.1854700 27.9801200 +0.0000000 48.9254290 -5.9144895 103.7653500 27.9800640 +0.0000000 48.6593370 -6.1804815 103.4991600 27.9800130 +0.0000000 49.5865020 -5.2532189 104.4262200 27.9799640 diff --git a/statsmodels/tsa/tests/results/AROLSNoConstantPredict.csv b/statsmodels/tsa/tests/results/AROLSNoConstantPredict.csv new file mode 100644 index 0000000..b4cf1fd --- /dev/null +++ b/statsmodels/tsa/tests/results/AROLSNoConstantPredict.csv @@ -0,0 +1,416 @@ + 7.689620 0.000000 0.000000 0.000000 0.000000 + 6.004791 0.000000 0.000000 0.000000 0.000000 + 5.425601 0.000000 0.000000 0.000000 0.000000 + 4.957486 0.000000 0.000000 0.000000 0.000000 + 7.321750 0.000000 0.000000 0.000000 0.000000 +17.401620 0.000000 0.000000 0.000000 0.000000 +19.274520 0.000000 0.000000 0.000000 0.000000 +32.805440 0.000000 0.000000 0.000000 0.000000 +46.143310 0.000000 0.000000 0.000000 0.000000 +55.631590 0.000000 0.000000 0.000000 0.000000 +43.166180 0.000000 0.000000 0.000000 0.000000 +18.145830 0.000000 0.000000 0.000000 0.000000 +15.618330 0.000000 0.000000 0.000000 0.000000 +20.297310 0.000000 0.000000 0.000000 0.000000 +17.524220 0.000000 0.000000 0.000000 0.000000 + 9.993097 0.000000 0.000000 0.000000 0.000000 +31.326560 0.000000 0.000000 0.000000 0.000000 +54.473470 0.000000 0.000000 0.000000 0.000000 +89.360760 0.000000 0.000000 0.000000 0.000000 +121.006400 0.000000 0.000000 0.000000 0.000000 +73.355040 0.000000 0.000000 0.000000 0.000000 +42.213860 0.000000 0.000000 0.000000 0.000000 +31.141240 0.000000 0.000000 0.000000 0.000000 +23.112790 0.000000 0.000000 0.000000 0.000000 + 4.384809 0.000000 0.000000 0.000000 0.000000 +11.543890 0.000000 0.000000 0.000000 0.000000 +36.350050 0.000000 0.000000 0.000000 0.000000 +62.996840 0.000000 0.000000 0.000000 0.000000 +93.460470 0.000000 0.000000 0.000000 0.000000 +84.112950 0.000000 0.000000 0.000000 0.000000 +104.031300 0.000000 0.000000 0.000000 0.000000 +81.106540 0.000000 0.000000 0.000000 0.000000 +40.482380 0.000000 0.000000 0.000000 0.000000 +17.179010 0.000000 0.000000 0.000000 0.000000 +10.822290 0.000000 0.000000 0.000000 0.000000 +18.809490 0.000000 0.000000 0.000000 0.000000 +18.155790 0.000000 0.000000 0.000000 0.000000 +29.335160 0.000000 0.000000 0.000000 0.000000 +49.751500 0.000000 0.000000 0.000000 0.000000 +61.548490 0.000000 0.000000 0.000000 0.000000 +72.011430 0.000000 0.000000 0.000000 0.000000 +79.355620 0.000000 0.000000 0.000000 0.000000 +66.925320 0.000000 0.000000 0.000000 0.000000 +22.081080 0.000000 0.000000 0.000000 0.000000 +35.481060 0.000000 0.000000 0.000000 0.000000 +21.489370 0.000000 0.000000 0.000000 0.000000 + 3.318968 0.000000 0.000000 0.000000 0.000000 +18.174590 0.000000 0.000000 0.000000 0.000000 +23.336400 0.000000 0.000000 0.000000 0.000000 +51.894910 0.000000 0.000000 0.000000 0.000000 +65.524450 0.000000 0.000000 0.000000 0.000000 +52.421560 0.000000 0.000000 0.000000 0.000000 +61.993100 0.000000 0.000000 0.000000 0.000000 +82.126050 0.000000 0.000000 0.000000 0.000000 +37.100900 0.000000 0.000000 0.000000 0.000000 +26.035300 0.000000 0.000000 0.000000 0.000000 +28.474180 0.000000 0.000000 0.000000 0.000000 +15.428200 0.000000 0.000000 0.000000 0.000000 +15.867260 0.000000 0.000000 0.000000 0.000000 +55.663350 0.000000 0.000000 0.000000 0.000000 +81.614450 0.000000 0.000000 0.000000 0.000000 +114.986800 0.000000 0.000000 0.000000 0.000000 +87.678880 0.000000 0.000000 0.000000 0.000000 +59.286430 0.000000 0.000000 0.000000 0.000000 +51.940800 0.000000 0.000000 0.000000 0.000000 +17.890350 0.000000 0.000000 0.000000 0.000000 +23.135940 0.000000 0.000000 0.000000 0.000000 + 7.577013 0.000000 0.000000 0.000000 0.000000 +34.354690 0.000000 0.000000 0.000000 0.000000 +130.996500 0.000000 0.000000 0.000000 0.000000 +168.541600 0.000000 0.000000 0.000000 0.000000 +95.868110 0.000000 0.000000 0.000000 0.000000 +57.240250 0.000000 0.000000 0.000000 0.000000 +52.791830 0.000000 0.000000 0.000000 0.000000 +23.601930 0.000000 0.000000 0.000000 0.000000 +13.023410 0.000000 0.000000 0.000000 0.000000 +10.448340 0.000000 0.000000 0.000000 0.000000 +43.775790 0.000000 0.000000 0.000000 0.000000 +127.275600 0.000000 0.000000 0.000000 0.000000 +153.095800 0.000000 0.000000 0.000000 0.000000 +113.739300 0.000000 0.000000 0.000000 0.000000 +96.326570 0.000000 0.000000 0.000000 0.000000 +63.625530 0.000000 0.000000 0.000000 0.000000 +43.469390 0.000000 0.000000 0.000000 0.000000 +47.283540 0.000000 0.000000 0.000000 0.000000 +36.297290 0.000000 0.000000 0.000000 0.000000 +46.146390 0.000000 0.000000 0.000000 0.000000 +40.480000 0.000000 0.000000 0.000000 0.000000 +40.069370 0.000000 0.000000 0.000000 0.000000 +31.248850 0.000000 0.000000 0.000000 0.000000 +23.891420 0.000000 0.000000 0.000000 0.000000 +23.501190 0.000000 0.000000 0.000000 0.000000 +29.364930 0.000000 0.000000 0.000000 0.000000 +45.096210 0.000000 0.000000 0.000000 0.000000 +49.273240 0.000000 0.000000 0.000000 0.000000 +34.802510 0.000000 0.000000 0.000000 0.000000 +40.915100 0.000000 0.000000 0.000000 0.000000 +31.065760 0.000000 0.000000 0.000000 0.000000 +14.367250 0.000000 0.000000 0.000000 0.000000 + 1.804234 0.000000 0.000000 0.000000 0.000000 + 8.835206 0.000000 0.000000 0.000000 0.000000 + 8.402061 0.000000 0.000000 0.000000 0.000000 + 9.629216 0.000000 0.000000 0.000000 0.000000 +12.920300 0.000000 0.000000 0.000000 0.000000 +16.771150 0.000000 0.000000 0.000000 0.000000 +22.331190 0.000000 0.000000 0.000000 0.000000 +18.667200 0.000000 0.000000 0.000000 0.000000 +37.767020 0.000000 0.000000 0.000000 0.000000 +41.882580 0.000000 0.000000 0.000000 0.000000 +27.103370 0.000000 0.000000 0.000000 0.000000 +17.177550 0.000000 0.000000 0.000000 0.000000 +15.418280 0.000000 0.000000 0.000000 0.000000 + 8.982916 0.000000 0.000000 0.000000 0.000000 + 4.529599 0.000000 0.000000 0.000000 0.000000 + 5.504591 0.000000 0.000000 0.000000 0.000000 + 9.148726 0.000000 0.000000 0.000000 0.000000 +20.198970 0.000000 0.000000 0.000000 0.000000 +26.931780 0.000000 0.000000 0.000000 0.000000 +42.766720 0.000000 0.000000 0.000000 0.000000 +49.061860 0.000000 0.000000 0.000000 0.000000 +57.016170 0.000000 0.000000 0.000000 0.000000 +52.606090 0.000000 0.000000 0.000000 0.000000 +54.367550 0.000000 0.000000 0.000000 0.000000 +25.688210 0.000000 0.000000 0.000000 0.000000 +12.034550 0.000000 0.000000 0.000000 0.000000 + 3.305187 0.000000 0.000000 0.000000 0.000000 +21.011930 0.000000 0.000000 0.000000 0.000000 +75.704860 0.000000 0.000000 0.000000 0.000000 +136.711200 0.000000 0.000000 0.000000 0.000000 +124.734400 0.000000 0.000000 0.000000 0.000000 +74.031550 0.000000 0.000000 0.000000 0.000000 +65.861300 0.000000 0.000000 0.000000 0.000000 +47.572200 0.000000 0.000000 0.000000 0.000000 +16.441790 0.000000 0.000000 0.000000 0.000000 +18.148870 0.000000 0.000000 0.000000 0.000000 +16.623240 0.000000 0.000000 0.000000 0.000000 +40.576450 0.000000 0.000000 0.000000 0.000000 +77.499090 0.000000 0.000000 0.000000 0.000000 +80.886280 0.000000 0.000000 0.000000 0.000000 +109.288900 0.000000 0.000000 0.000000 0.000000 +121.453700 0.000000 0.000000 0.000000 0.000000 +64.911840 0.000000 0.000000 0.000000 0.000000 +39.473610 0.000000 0.000000 0.000000 0.000000 +52.489780 0.000000 0.000000 0.000000 0.000000 +39.722890 0.000000 0.000000 0.000000 0.000000 +31.693130 0.000000 0.000000 0.000000 0.000000 +23.593740 0.000000 0.000000 0.000000 0.000000 +21.123080 0.000000 0.000000 0.000000 0.000000 +33.064480 0.000000 0.000000 0.000000 0.000000 +50.714550 0.000000 0.000000 0.000000 0.000000 +72.220150 0.000000 0.000000 0.000000 0.000000 +102.731100 0.000000 0.000000 0.000000 0.000000 +84.456970 0.000000 0.000000 0.000000 0.000000 +55.426090 0.000000 0.000000 0.000000 0.000000 +40.969440 0.000000 0.000000 0.000000 0.000000 +28.233020 0.000000 0.000000 0.000000 0.000000 +38.020170 0.000000 0.000000 0.000000 0.000000 +22.908290 0.000000 0.000000 0.000000 0.000000 +16.652440 0.000000 0.000000 0.000000 0.000000 +25.325070 0.000000 0.000000 0.000000 0.000000 +65.198790 0.000000 0.000000 0.000000 0.000000 +92.359810 0.000000 0.000000 0.000000 0.000000 +146.327400 0.000000 0.000000 0.000000 0.000000 +80.990780 0.000000 0.000000 0.000000 0.000000 +75.166020 0.000000 0.000000 0.000000 0.000000 +45.409550 0.000000 0.000000 0.000000 0.000000 +24.722610 0.000000 0.000000 0.000000 0.000000 + 5.078195 0.000000 0.000000 0.000000 0.000000 +16.710680 0.000000 0.000000 0.000000 0.000000 +26.986680 0.000000 0.000000 0.000000 0.000000 +33.214370 0.000000 0.000000 0.000000 0.000000 +31.685590 0.000000 0.000000 0.000000 0.000000 +62.645050 0.000000 0.000000 0.000000 0.000000 +66.380240 0.000000 0.000000 0.000000 0.000000 +56.948010 0.000000 0.000000 0.000000 0.000000 +52.834800 0.000000 0.000000 0.000000 0.000000 +49.328740 0.000000 0.000000 0.000000 0.000000 +35.998940 0.000000 0.000000 0.000000 0.000000 + 8.056849 0.000000 0.000000 0.000000 0.000000 + 5.590196 0.000000 0.000000 0.000000 0.000000 +11.333730 0.000000 0.000000 0.000000 0.000000 +17.695900 0.000000 0.000000 0.000000 0.000000 +21.053320 0.000000 0.000000 0.000000 0.000000 +54.836870 0.000000 0.000000 0.000000 0.000000 +87.348810 0.000000 0.000000 0.000000 0.000000 +80.537830 0.000000 0.000000 0.000000 0.000000 +59.032170 0.000000 0.000000 0.000000 0.000000 +44.106630 0.000000 0.000000 0.000000 0.000000 +22.033150 0.000000 0.000000 0.000000 0.000000 +14.627780 0.000000 0.000000 0.000000 0.000000 +23.682510 0.000000 0.000000 0.000000 0.000000 +11.420180 0.000000 0.000000 0.000000 0.000000 +22.216620 0.000000 0.000000 0.000000 0.000000 +21.582670 0.000000 0.000000 0.000000 0.000000 +22.578440 0.000000 0.000000 0.000000 0.000000 +43.750480 0.000000 0.000000 0.000000 0.000000 +50.512910 0.000000 0.000000 0.000000 0.000000 +61.622790 0.000000 0.000000 0.000000 0.000000 +42.628390 0.000000 0.000000 0.000000 0.000000 +49.993120 0.000000 0.000000 0.000000 0.000000 +34.472370 0.000000 0.000000 0.000000 0.000000 +29.121220 0.000000 0.000000 0.000000 0.000000 + 5.547792 0.000000 0.000000 0.000000 0.000000 + 3.250177 0.000000 0.000000 0.000000 0.000000 +13.035770 0.000000 0.000000 0.000000 0.000000 +16.575800 0.000000 0.000000 0.000000 0.000000 +23.307680 0.000000 0.000000 0.000000 0.000000 +68.966940 0.000000 0.000000 0.000000 0.000000 +58.557240 0.000000 0.000000 0.000000 0.000000 +106.181000 0.000000 0.000000 0.000000 0.000000 +57.205740 0.000000 0.000000 0.000000 0.000000 +33.891700 0.000000 0.000000 0.000000 0.000000 +21.142570 0.000000 0.000000 0.000000 0.000000 +13.938960 0.000000 0.000000 0.000000 0.000000 + 8.229635 0.000000 0.000000 0.000000 0.000000 +14.162580 0.000000 0.000000 0.000000 0.000000 +29.813780 0.000000 0.000000 0.000000 0.000000 +72.273410 0.000000 0.000000 0.000000 0.000000 +75.514260 0.000000 0.000000 0.000000 0.000000 +68.336410 0.000000 0.000000 0.000000 0.000000 +70.150220 0.000000 0.000000 0.000000 0.000000 +48.714730 0.000000 0.000000 0.000000 0.000000 +15.374670 0.000000 0.000000 0.000000 0.000000 +11.739300 0.000000 0.000000 0.000000 0.000000 + 9.280053 0.000000 0.000000 0.000000 0.000000 +12.013810 0.000000 0.000000 0.000000 0.000000 +24.835940 0.000000 0.000000 0.000000 0.000000 +56.146220 0.000000 0.000000 0.000000 0.000000 +98.148690 0.000000 0.000000 0.000000 0.000000 +116.355200 0.000000 0.000000 0.000000 0.000000 +86.263710 0.000000 0.000000 0.000000 0.000000 +59.270300 0.000000 0.000000 0.000000 0.000000 +43.718150 0.000000 0.000000 0.000000 0.000000 +28.217010 0.000000 0.000000 0.000000 0.000000 +18.368270 0.000000 0.000000 0.000000 0.000000 +15.649150 0.000000 0.000000 0.000000 0.000000 +23.125350 0.000000 0.000000 0.000000 0.000000 +63.710110 0.000000 0.000000 0.000000 0.000000 +124.041600 0.000000 0.000000 0.000000 0.000000 +161.256000 0.000000 0.000000 0.000000 0.000000 +108.648300 0.000000 0.000000 0.000000 0.000000 +106.209800 0.000000 0.000000 0.000000 0.000000 +49.756980 0.000000 0.000000 0.000000 0.000000 +44.816780 0.000000 0.000000 0.000000 0.000000 +15.335370 0.000000 0.000000 0.000000 0.000000 + 8.570750 0.000000 0.000000 0.000000 0.000000 +22.960610 0.000000 0.000000 0.000000 0.000000 +81.483880 0.000000 0.000000 0.000000 0.000000 +186.143200 0.000000 0.000000 0.000000 0.000000 +198.913500 0.000000 0.000000 0.000000 0.000000 +147.120400 0.000000 0.000000 0.000000 0.000000 +123.036300 0.000000 0.000000 0.000000 0.000000 +68.618580 0.000000 0.000000 0.000000 0.000000 +16.646950 0.000000 0.000000 0.000000 0.000000 +26.184930 0.000000 0.000000 0.000000 0.000000 +28.390300 0.000000 0.000000 0.000000 0.000000 +32.147380 0.000000 0.000000 0.000000 0.000000 +60.598240 0.000000 0.000000 0.000000 0.000000 +96.052630 0.000000 0.000000 0.000000 0.000000 +129.026000 0.000000 0.000000 0.000000 0.000000 +112.471800 0.000000 0.000000 0.000000 0.000000 +88.666210 0.000000 0.000000 0.000000 0.000000 +86.028050 0.000000 0.000000 0.000000 0.000000 +38.856760 0.000000 0.000000 0.000000 0.000000 +53.510020 0.000000 0.000000 0.000000 0.000000 +23.255470 0.000000 0.000000 0.000000 0.000000 +30.740630 0.000000 0.000000 0.000000 0.000000 +29.992090 0.000000 0.000000 0.000000 0.000000 +32.106240 0.000000 0.000000 0.000000 0.000000 +53.864730 0.000000 0.000000 0.000000 0.000000 +125.634000 0.000000 0.000000 0.000000 0.000000 +160.492100 0.000000 0.000000 0.000000 0.000000 +129.136600 0.000000 0.000000 0.000000 0.000000 +102.486400 0.000000 0.000000 0.000000 0.000000 +84.692280 0.000000 0.000000 0.000000 0.000000 +29.464410 0.000000 0.000000 0.000000 0.000000 +29.397720 0.000000 0.000000 0.000000 0.000000 +11.770590 0.000000 0.000000 0.000000 0.000000 +27.493590 0.000000 0.000000 0.000000 0.000000 +70.012430 0.000000 0.000000 0.000000 0.000000 +144.564800 0.000000 0.000000 0.000000 0.000000 +178.274800 0.000000 0.000000 0.000000 0.000000 +124.404800 0.000000 0.000000 0.000000 0.000000 +121.668400 0.000000 0.000000 0.000000 0.000000 +61.387560 0.000000 0.000000 0.000000 0.000000 +21.726410 0.000000 0.000000 0.000000 0.000000 +21.037120 0.000000 0.000000 0.000000 0.000000 +15.430530 0.000000 0.000000 0.000000 0.000000 +25.636250 0.000000 0.000000 0.000000 0.000000 +62.497190 0.000000 0.000000 0.000000 0.000000 +101.548100 0.000000 0.000000 0.000000 0.000000 +118.717200 0.000000 0.000000 0.000000 0.000000 +121.757000 0.000000 0.000000 0.000000 0.000000 +92.267960 0.000000 0.000000 0.000000 0.000000 +78.211730 0.000000 0.000000 0.000000 0.000000 +34.982700 0.000000 0.000000 0.000000 0.000000 +20.486940 0.000000 0.000000 0.000000 0.000000 +25.476760 0.000000 0.000000 0.000000 0.000000 +20.886050 0.000000 0.000000 0.000000 0.000000 +24.096840 2.900000 0.000000 0.000000 0.000000 + 0.000000 31.170699 1.202378 61.139021 15.290241 + 0.000000 61.821348 15.044909 108.597790 23.865969 + 0.000000 87.520577 31.517249 143.523910 28.573652 + 0.000000 91.001156 34.509773 147.492540 28.822663 + 0.000000 78.311920 21.856670 134.767170 28.804228 + 0.000000 58.041846 1.624501 114.459190 28.784889 + 0.000000 36.859904 -22.344434 96.064243 30.206850 + 0.000000 20.682433 -39.923716 81.288582 30.922073 + 0.000000 9.414619 -51.607721 70.436958 31.134419 + 0.000000 10.536909 -50.551192 71.625010 31.167971 + 0.000000 23.609196 -37.460546 84.678937 31.158604 + 0.000000 45.436093 -15.608040 106.480230 31.145538 + 0.000000 65.975242 4.957875 126.992610 31.131881 + 0.000000 77.322243 16.326538 138.317950 31.120830 + 0.000000 76.093381 15.109016 137.077750 31.115043 + 0.000000 64.046504 3.073681 125.019330 31.109155 + 0.000000 46.626604 -14.336095 107.589300 31.103989 + 0.000000 28.966982 -31.985799 89.919764 31.098930 + 0.000000 16.580093 -44.362994 77.523181 31.093983 + 0.000000 13.078490 -47.855234 74.012214 31.089206 + 0.000000 19.894224 -41.030085 80.818534 31.084403 + 0.000000 34.471178 -26.443709 95.386066 31.079595 + 0.000000 51.359743 -9.545609 112.265090 31.074730 + 0.000000 64.316329 3.419463 125.213200 31.070401 + 0.000000 68.868920 7.978960 129.758880 31.066877 + 0.000000 64.014070 3.130481 124.897660 31.063627 + 0.000000 51.886756 -8.990393 112.763900 31.060341 + 0.000000 36.861263 -24.009398 97.731924 31.057030 + 0.000000 23.883580 -36.980563 84.747722 31.053705 + 0.000000 17.137469 -43.720129 77.995066 31.050365 + 0.000000 18.646278 -42.204727 79.497282 31.047001 + 0.000000 27.602904 -33.241431 88.447240 31.043599 + 0.000000 40.615462 -20.222167 101.453090 31.040177 + 0.000000 52.952878 -7.878302 113.784060 31.036886 + 0.000000 60.339198 -0.486117 121.164510 31.033894 + 0.000000 60.419661 -0.400270 121.239590 31.031147 + 0.000000 53.468188 -7.346521 114.282900 31.028483 + 0.000000 42.088274 -18.721200 102.897750 31.025812 + 0.000000 30.236143 -30.568057 91.040344 31.023121 + 0.000000 21.855750 -38.943150 82.654650 31.020417 + 0.000000 19.583887 -41.209679 80.377453 31.017696 + 0.000000 23.900820 -36.887359 84.689000 31.014947 + 0.000000 33.019388 -27.763374 93.802149 31.012183 + 0.000000 43.574795 -17.202652 104.352240 31.009471 + 0.000000 51.844501 -8.927918 112.616920 31.006906 + 0.000000 55.052211 -5.715525 115.819950 31.004517 + 0.000000 52.268265 -8.495018 113.031550 31.002245 + 0.000000 44.634994 -16.123911 105.393900 31.000011 + 0.000000 34.881416 -25.873096 95.635928 30.997770 + 0.000000 26.336729 -34.413360 87.086819 30.995513 + 0.000000 21.786647 -38.958992 82.532286 30.993243 + 0.000000 22.553079 -38.188072 83.294230 30.990952 + 0.000000 28.100589 -32.636040 88.837218 30.988645 + 0.000000 36.288440 -24.443699 97.020578 30.986354 + 0.000000 44.165322 -16.562476 104.893120 30.984140 + 0.000000 49.009433 -11.714260 109.733130 30.982045 + 0.000000 49.245451 -11.474354 109.965260 30.980062 + 0.000000 44.929072 -15.786966 105.645110 30.978140 + 0.000000 37.657015 -23.055283 98.369313 30.976232 + 0.000000 29.960771 -30.747769 90.669312 30.974314 + 0.000000 24.410826 -36.293932 85.115583 30.972384 + 0.000000 22.744463 -37.956483 83.445408 30.970439 + 0.000000 25.310054 -35.387049 86.007157 30.968479 + 0.000000 31.004958 -29.688302 91.698218 30.966518 + 0.000000 37.709426 -22.980063 98.398914 30.964594 + 0.000000 43.049204 -17.636662 103.735070 30.962745 + 0.000000 45.212829 -15.469590 105.895250 30.960987 + 0.000000 43.542931 -17.136176 104.222040 30.959297 + 0.000000 38.710600 -21.965256 99.386455 30.957638 + 0.000000 32.431979 -28.240629 93.104588 30.955981 + 0.000000 26.842745 -33.826599 87.512089 30.954316 + 0.000000 23.756374 -36.909683 84.422430 30.952638 + 0.000000 24.062184 -36.600561 84.724929 30.950949 + 0.000000 27.461590 -33.197831 88.121011 30.949253 + 0.000000 32.618538 -28.037588 93.274663 30.947571 + 0.000000 37.656119 -22.996798 98.309035 30.945934 + 0.000000 40.816274 -19.833563 101.466110 30.944363 + 0.000000 41.051592 -19.595288 101.698470 30.942854 + 0.000000 38.351113 -22.292889 98.995115 30.941386 + 0.000000 33.700816 -26.940336 94.341968 30.939932 + 0.000000 28.707573 -31.930725 89.345871 30.938476 + 0.000000 25.028123 -35.607306 85.663551 30.937012 + 0.000000 23.804815 -36.827725 84.437355 30.935538 + 0.000000 25.299261 -35.330376 85.928899 30.934057 + 0.000000 28.840073 -31.786670 89.466816 30.932580 + 0.000000 33.089470 -27.534424 93.713364 30.931126 + 0.000000 36.525031 -24.096100 97.146163 30.929717 + 0.000000 37.964081 -22.654389 98.582551 30.928359 + 0.000000 36.950931 -23.664960 97.566821 30.927043 + 0.000000 33.881273 -26.732082 94.494628 30.925749 + 0.000000 29.832497 -30.778334 90.443328 30.924462 + 0.000000 26.169729 -34.438571 86.778029 30.923170 + 0.000000 24.070613 -36.535144 84.676370 30.921873 + 0.000000 24.133438 -36.469764 84.736639 30.920569 + 0.000000 26.198151 -34.402493 86.798796 30.919264 + 0.000000 29.432186 -31.165925 90.030296 30.917971 + 0.000000 32.640961 -27.954669 93.236591 30.916706 + 0.000000 34.688352 -25.904873 95.281576 30.915479 + 0.000000 34.879833 -25.711062 95.470727 30.914290 + 0.000000 33.179822 -27.408793 93.768438 30.913127 + 0.000000 30.196365 -30.389996 90.782726 30.911977 + 0.000000 26.948026 -33.636084 87.532136 30.910828 + 0.000000 24.501160 -36.080693 85.083013 30.909677 + 0.000000 23.606034 -36.973553 84.185621 30.908521 + 0.000000 24.455337 -36.121981 85.032655 30.907363 + 0.000000 26.641956 -33.933101 87.217014 30.906210 + 0.000000 29.322066 -31.250764 89.894895 30.905073 + 0.000000 31.519650 -29.051004 92.090305 30.903963 + 0.000000 32.463237 -28.105303 93.031777 30.902884 + 0.000000 31.839208 -28.727270 92.405686 30.901832 + 0.000000 29.879206 -30.685242 90.443654 30.900796 + 0.000000 27.258857 -33.303574 87.821288 30.899767 + 0.000000 24.850028 -35.710387 85.410443 30.898739 + 0.000000 23.416781 -37.141614 83.975175 30.897708 + 0.000000 23.360550 -37.195821 83.916920 30.896675 + 0.000000 24.598973 -35.955377 85.153324 30.895644 diff --git a/statsmodels/tsa/tests/results/__init__.py b/statsmodels/tsa/tests/results/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/tsa/tests/results/arima.R b/statsmodels/tsa/tests/results/arima.R new file mode 100644 index 0000000..1452ff0 --- /dev/null +++ b/statsmodels/tsa/tests/results/arima.R @@ -0,0 +1,21 @@ +dta <- read.csv("/home/skipper/statsmodels/statsmodels-skipper/statsmodels/datasets/macrodata/macrodata.csv") + +cpi <- dta$cpi + +/* this automatically suppresses the constant */ +mod111 <- arima(cpi, order=c(1,1,1), method="CSS") +/*you can use xreg=1:length(cpi)*/ + +dcpi <- diff(cpi) + +mod111 <- arima(dcpi, order=c(1,0,1), method="CSS") +bse <- sqrt(diag(mod111$var.coef)) +tvalues <- mod111$coef / bse +pvalues <- (1 - pt(abs(tvalues), 198)) * 2 + +/* use starting values from X-ARIMA */ +mod112 <- arima(dcpi, order=c(1,0,2), method="CSS", init=c(-0.692425, 1.07366, 0.172024, 0.905322)) +bse <- sqrt(diag(mod112$var.coef)) +tvalues <- mod112$coef / bse +pvalues <- (1 - pt(abs(tvalues), 198)) * 2 + diff --git a/statsmodels/tsa/tests/results/arima111_css_results.py b/statsmodels/tsa/tests/results/arima111_css_results.py new file mode 100644 index 0000000..3614d33 --- /dev/null +++ b/statsmodels/tsa/tests/results/arima111_css_results.py @@ -0,0 +1,1281 @@ +import numpy as np + +llf = np.array([-242.06033399744]) + +nobs = np.array([ 202]) + +k = np.array([ 4]) + +k_exog = np.array([ 1]) + +sigma = np.array([ .80201496146073]) + +chi2 = np.array([ 348.43324197088]) + +df_model = np.array([ 2]) + +k_ar = np.array([ 1]) + +k_ma = np.array([ 1]) + +params = np.array([ .82960638524364, + .93479332833705, + -.75728342544279, + .64322799840686]) + +cov_params = np.array([ .14317811930738, + -.01646077810033, + .01510986837498, + -.00280799533479, + -.01646077810033, + .00321032468661, + -.00353027620719, + .00097645385252, + .01510986837498, + -.00353027620719, + .00484312817753, + -.00112050648944, + -.00280799533479, + .00097645385252, + -.00112050648944, + .0007715609499]).reshape(4,4) + +xb = np.array([ .82960641384125, + .82960641384125, + .697261095047, + .61113905906677, + .51607495546341, + .47362637519836, + .41342103481293, + .40238001942635, + .37454023957253, + .33222004771233, + .32514902949333, + .31093680858612, + .30019253492355, + .31159669160843, + .29182952642441, + .30349296331406, + .29457464814186, + .28427124023438, + .30664679408073, + .29696446657181, + .31270903348923, + .29268020391464, + .28816330432892, + .29006817936897, + .30216124653816, + .30066826939583, + .31728908419609, + .30679926276207, + .3272570669651, + .37292611598969, + .36668366193771, + .40278288722038, + .36799272894859, + .36827209591866, + .38623574376106, + .39983862638474, + .42789059877396, + .43138384819031, + .46953064203262, + .48066720366478, + .48910140991211, + .53098994493484, + .54496067762375, + .55554050207138, + .58130383491516, + .60081332921982, + .58008605241776, + .58214038610458, + .58369606733322, + .53162068128586, + .54543834924698, + .52040082216263, + .50143963098526, + .48708060383797, + .47620677947998, + .48572361469269, + .51068127155304, + .61833620071411, + .61110657453537, + .76539021730423, + .84672522544861, + .92606955766678, + .96840506792068, + 1.0892199277878, + 1.1097067594528, + 1.0187155008316, + 1.0030621290207, + .97345739603043, + .95103752613068, + .82755368947983, + .84054774045944, + .85038793087006, + .84008830785751, + .92104357481003, + .89359468221664, + .87280809879303, + .91032028198242, + .95647835731506, + 1.0624366998672, + 1.1426770687103, + 1.1679404973984, + 1.311328291893, + 1.473167181015, + 1.5602221488953, + 1.7326545715332, + 1.8809853792191, + 1.7803012132645, + 1.7750589847565, + 1.8420933485031, + 1.7863517999649, + 1.8328944444656, + 1.7793855667114, + 1.5791050195694, + 1.3564316034317, + 1.5250737667084, + 1.3155146837234, + 1.014811873436, + .98235523700714, + .97552710771561, + .97035628557205, + 1.0196926593781, + 1.0393049716949, + .98315137624741, + .97613000869751, + .89980864524841, + .96626943349838, + .91009211540222, + .88530200719833, + .97303456068039, + .57794612646103, + .63377332687378, + .65829831361771, + .76562696695328, + .86465454101563, + .90414637327194, + .95180231332779, + .95238989591599, + .98833626508713, + 1.0333099365234, + 1.0851185321808, + 1.1066001653671, + 1.2293750047684, + 1.233595252037, + 1.1480363607407, + 1.2962552309036, + 1.2842413187027, + 1.3106474876404, + 1.5614050626755, + 1.4672855138779, + 1.2362524271011, + 1.1855486631393, + 1.1294020414352, + 1.1046353578568, + 1.0858771800995, + 1.0716745853424, + 1.0786685943604, + 1.0662157535553, + 1.0390332937241, + .96519494056702, + .9802839756012, + .92070508003235, + .91108840703964, + .95705932378769, + .95637094974518, + .97360169887543, + 1.0221517086029, + .9701629281044, + .94854199886322, + .98542231321335, + 1.048855304718, + 1.0081344842911, + 1.0305507183075, + 1.0475262403488, + .93612504005432, + .85176283121109, + .89438372850418, + .820152759552, + .71068543195724, + .76979607343674, + .76130604743958, + .77262878417969, + .85220617055893, + .84146595001221, + .93983960151672, + .97883212566376, + 1.0793634653091, + 1.1909983158112, + 1.1690304279327, + 1.2411522865295, + 1.1360056400299, + 1.0918840169907, + .9164656996727, + .76586949825287, + .918093085289, + .87360894680023, + .92867678403854, + 1.00588285923, + .92233866453171, + .84132260084152, + .90422683954239, + .9873673915863, + .99707210063934, + 1.1109310388565, + 1.1971517801285, + 1.138188958168, + 1.2710473537445, + 1.1763968467712, + 1.7437561750412, + 1.4101150035858, + 1.3527159690857, + 1.4335050582886, + .99765706062317, + 1.1067585945129, + 1.3086627721786, + 1.2968333959579, + 1.3547962903976, + 1.6768488883972, + 1.5905654430389, + 2.0774590969086, + 1.3218278884888, + .21813294291496, + .30750840902328, + .60612773895264]) + +y = np.array([np.nan, + 29.809606552124, + 29.847261428833, + 29.961139678955, + 29.886075973511, + 30.013628005981, + 29.96342086792, + 30.152379989624, + 30.214540481567, + 30.142219543457, + 30.245149612427, + 30.290935516357, + 30.3401927948, + 30.521595001221, + 30.511829376221, + 30.683492660522, + 30.734575271606, + 30.764270782471, + 30.996646881104, + 31.046964645386, + 31.252710342407, + 31.242681503296, + 31.308164596558, + 31.410068511963, + 31.582162857056, + 31.680667877197, + 31.897289276123, + 31.956798553467, + 32.207256317139, + 32.652923583984, + 32.8166847229, + 33.252780914307, + 33.267993927002, + 33.468269348145, + 33.786235809326, + 34.099838256836, + 34.527889251709, + 34.831386566162, + 35.369533538818, + 35.780666351318, + 36.189102172852, + 36.830989837646, + 37.344959259033, + 37.855541229248, + 38.481304168701, + 39.100814819336, + 39.480087280273, + 39.9821434021, + 40.483695983887, + 40.631618499756, + 41.145435333252, + 41.420402526855, + 41.701438903809, + 41.987079620361, + 42.276206970215, + 42.685726165771, + 43.210681915283, + 44.318336486816, + 44.811107635498, + 46.365386962891, + 47.646724700928, + 49.026069641113, + 50.268405914307, + 52.089218139648, + 53.409706115723, + 54.018714904785, + 55.003063201904, + 55.873458862305, + 56.751037597656, + 56.927551269531, + 57.840549468994, + 58.750389099121, + 59.540088653564, + 60.921043395996, + 61.693592071533, + 62.472805023193, + 63.610321044922, + 64.856483459473, + 66.562438964844, + 68.24267578125, + 69.667938232422, + 71.911323547363, + 74.473167419434, + 76.760215759277, + 79.732650756836, + 82.780990600586, + 84.380302429199, + 86.475059509277, + 89.042091369629, + 90.886352539063, + 93.332893371582, + 95.179389953613, + 95.979103088379, + 96.356430053711, + 99.02507019043, + 99.415512084961, + 98.914810180664, + 99.782356262207, + 100.7755279541, + 101.770362854, + 103.11968994141, + 104.33930969238, + 105.083152771, + 106.07612609863, + 106.59980773926, + 107.96627044678, + 108.61009216309, + 109.38529968262, + 110.87303924561, + 109.27794647217, + 110.13377380371, + 110.85829162598, + 112.16562652588, + 113.56465148926, + 114.70414733887, + 115.95180511475, + 116.95239257813, + 118.188331604, + 119.53330993652, + 120.98512268066, + 122.30659484863, + 124.3293762207, + 125.73359680176, + 126.54803466797, + 128.79624938965, + 130.18423461914, + 131.81065368652, + 134.96139526367, + 136.16728210449, + 136.33625793457, + 137.38554382324, + 138.32939147949, + 139.40463256836, + 140.48587036133, + 141.57167053223, + 142.77867126465, + 143.86622619629, + 144.83903503418, + 145.46519470215, + 146.58029174805, + 147.220703125, + 148.11108398438, + 149.35705566406, + 150.35636901855, + 151.47360229492, + 152.82215881348, + 153.5701751709, + 154.44854736328, + 155.68542480469, + 157.14886474609, + 158.00813293457, + 159.23054504395, + 160.44752502441, + 160.83612060547, + 161.25175476074, + 162.39437866211, + 162.82015991211, + 162.91067504883, + 163.96978759766, + 164.66130065918, + 165.47262573242, + 166.75219726563, + 167.54145812988, + 169.03984069824, + 170.27883911133, + 171.9793548584, + 173.89099121094, + 175.06903076172, + 176.84115600586, + 177.5359954834, + 178.49188232422, + 178.5164642334, + 178.46586608887, + 180.21809387207, + 180.8736114502, + 182.12867736816, + 183.60589599609, + 184.12232971191, + 184.54132080078, + 185.80421447754, + 187.28736877441, + 188.39706420898, + 190.2109375, + 191.99716186523, + 192.93818664551, + 195.07104492188, + 195.8763885498, + 200.94375610352, + 200.81010437012, + 202.05271911621, + 204.13349914551, + 202.89764404297, + 204.68077087402, + 207.22866821289, + 208.63482666016, + 210.48779296875, + 214.17184448242, + 215.58755493164, + 220.68745422363, + 218.21083068848, + 212.39213562012, + 212.978515625, + 215.07511901855]) + +resid = np.array([np.nan, + -.6596063375473, + -.49726036190987, + -.5911386013031, + -.34607490897179, + -.46362805366516, + -.21342028677464, + -.31237986683846, + -.40454092621803, + -.22221945226192, + -.26514956355095, + -.2509354352951, + -.13019436597824, + -.30159646272659, + -.1318296790123, + -.24349159002304, + -.25457563996315, + -.07427024841309, + -.24664734303951, + -.10696394741535, + -.30270880460739, + -.22268049418926, + -.18816292285919, + -.13006833195686, + -.20216277241707, + -.10066751390696, + -.24728938937187, + -.07679972797632, + .07274255156517, + -.20292413234711, + .03331403434277, + -.35277983546257, + -.16799576580524, + -.06826904416084, + -.08623649924994, + .00015908146452, + -.12788754701614, + .06861615926027, + -.06953293830156, + -.08066567778587, + .11089706420898, + -.03098993562162, + -.04496069997549, + .04446176066995, + .01869462057948, + -.20081178843975, + -.08008606731892, + -.08214038610458, + -.38369914889336, + -.03162068501115, + -.24543529748917, + -.22040157020092, + -.20144037902355, + -.18708138167858, + -.07620526105165, + .01427639275789, + .48931872844696, + -.11833623051643, + .78889113664627, + .43461054563522, + .45327401161194, + .27393117547035, + .73159569501877, + .21077930927277, + -.40970605611801, + -.01871551014483, + -.10306061804295, + -.0734596773982, + -.65103828907013, + .0724478662014, + .05945380032063, + -.05038867890835, + .45991089940071, + -.12104434520006, + -.09359546005726, + .22719417512417, + .28968048095703, + .64352011680603, + .53756183385849, + .25732442736626, + .93205803632736, + 1.0886732339859, + .72682982683182, + 1.2397809028625, + 1.1673469543457, + -.18098846077919, + .31969723105431, + .72494095563889, + .05790812522173, + .61364978551865, + .06710703670979, + -.77938556671143, + -.97910648584366, + 1.1435683965683, + -.92507529258728, + -1.5155116319656, + -.11481033265591, + .01764474436641, + .02447287365794, + .32963913679123, + .18031190335751, + -.23930950462818, + .01684862375259, + -.37613153457642, + .40019443631172, + -.2662724852562, + -.11008904129267, + .51469951868057, + -2.1730391979218, + .22205695509911, + .06622361391783, + .54170626401901, + .53436845541, + .2353515625, + .29585054516792, + .04819770529866, + .24760706722736, + .31166675686836, + .36669155955315, + .21487690508366, + .79340130090714, + .17062658071518, + -.33359375596046, + .95196217298508, + .10373862832785, + .31576481461525, + 1.589346408844, + -.26140204071999, + -1.0672763586044, + -.13626158237457, + -.18554861843586, + -.02939598634839, + -.00464448658749, + .01412893645465, + .1283223181963, + .02133745700121, + -.06621573865414, + -.33903631567955, + .13481116294861, + -.28028702735901, + -.02071117423475, + .28890857100487, + .04294065013528, + .14363515377045, + .32640132308006, + -.22214868664742, + -.0701690018177, + .25145494937897, + .41458681225777, + -.14886146783829, + .19186246395111, + .16944620013237, + -.54752624034882, + -.43612506985664, + .2482432872057, + -.39438369870186, + -.62015581130981, + .28931456804276, + -.06979911774397, + .03869699314237, + .4273681640625, + -.05220314115286, + .55854320526123, + .26015737652779, + .62115871906281, + .72063958644867, + .00899865385145, + .53098171949387, + -.44116449356079, + -.13600566983223, + -.89187180995941, + -.81647485494614, + .83413660526276, + -.21809615194798, + .32638800144196, + .47133237123489, + -.4058920443058, + -.42233863472939, + .35867437720299, + .49578228592873, + .11262346804142, + .70294010639191, + .58906590938568, + -.19715182483196, + .86181098222733, + -.37105345726013, + 3.3236031532288, + -1.543759226799, + -.11011194437742, + .64728397130966, + -2.2335081100464, + .67635416984558, + 1.2392344474792, + .10933646559715, + .49816474318504, + 2.0072033405304, + -.17484994232655, + 3.0224411487579, + -3.7984521389008, + -6.0368394851685, + .27887633442879, + 1.4904805421829, + 1.3098726272583]) + +yr = np.array([np.nan, + -.6596063375473, + -.49726036190987, + -.5911386013031, + -.34607490897179, + -.46362805366516, + -.21342028677464, + -.31237986683846, + -.40454092621803, + -.22221945226192, + -.26514956355095, + -.2509354352951, + -.13019436597824, + -.30159646272659, + -.1318296790123, + -.24349159002304, + -.25457563996315, + -.07427024841309, + -.24664734303951, + -.10696394741535, + -.30270880460739, + -.22268049418926, + -.18816292285919, + -.13006833195686, + -.20216277241707, + -.10066751390696, + -.24728938937187, + -.07679972797632, + .07274255156517, + -.20292413234711, + .03331403434277, + -.35277983546257, + -.16799576580524, + -.06826904416084, + -.08623649924994, + .00015908146452, + -.12788754701614, + .06861615926027, + -.06953293830156, + -.08066567778587, + .11089706420898, + -.03098993562162, + -.04496069997549, + .04446176066995, + .01869462057948, + -.20081178843975, + -.08008606731892, + -.08214038610458, + -.38369914889336, + -.03162068501115, + -.24543529748917, + -.22040157020092, + -.20144037902355, + -.18708138167858, + -.07620526105165, + .01427639275789, + .48931872844696, + -.11833623051643, + .78889113664627, + .43461054563522, + .45327401161194, + .27393117547035, + .73159569501877, + .21077930927277, + -.40970605611801, + -.01871551014483, + -.10306061804295, + -.0734596773982, + -.65103828907013, + .0724478662014, + .05945380032063, + -.05038867890835, + .45991089940071, + -.12104434520006, + -.09359546005726, + .22719417512417, + .28968048095703, + .64352011680603, + .53756183385849, + .25732442736626, + .93205803632736, + 1.0886732339859, + .72682982683182, + 1.2397809028625, + 1.1673469543457, + -.18098846077919, + .31969723105431, + .72494095563889, + .05790812522173, + .61364978551865, + .06710703670979, + -.77938556671143, + -.97910648584366, + 1.1435683965683, + -.92507529258728, + -1.5155116319656, + -.11481033265591, + .01764474436641, + .02447287365794, + .32963913679123, + .18031190335751, + -.23930950462818, + .01684862375259, + -.37613153457642, + .40019443631172, + -.2662724852562, + -.11008904129267, + .51469951868057, + -2.1730391979218, + .22205695509911, + .06622361391783, + .54170626401901, + .53436845541, + .2353515625, + .29585054516792, + .04819770529866, + .24760706722736, + .31166675686836, + .36669155955315, + .21487690508366, + .79340130090714, + .17062658071518, + -.33359375596046, + .95196217298508, + .10373862832785, + .31576481461525, + 1.589346408844, + -.26140204071999, + -1.0672763586044, + -.13626158237457, + -.18554861843586, + -.02939598634839, + -.00464448658749, + .01412893645465, + .1283223181963, + .02133745700121, + -.06621573865414, + -.33903631567955, + .13481116294861, + -.28028702735901, + -.02071117423475, + .28890857100487, + .04294065013528, + .14363515377045, + .32640132308006, + -.22214868664742, + -.0701690018177, + .25145494937897, + .41458681225777, + -.14886146783829, + .19186246395111, + .16944620013237, + -.54752624034882, + -.43612506985664, + .2482432872057, + -.39438369870186, + -.62015581130981, + .28931456804276, + -.06979911774397, + .03869699314237, + .4273681640625, + -.05220314115286, + .55854320526123, + .26015737652779, + .62115871906281, + .72063958644867, + .00899865385145, + .53098171949387, + -.44116449356079, + -.13600566983223, + -.89187180995941, + -.81647485494614, + .83413660526276, + -.21809615194798, + .32638800144196, + .47133237123489, + -.4058920443058, + -.42233863472939, + .35867437720299, + .49578228592873, + .11262346804142, + .70294010639191, + .58906590938568, + -.19715182483196, + .86181098222733, + -.37105345726013, + 3.3236031532288, + -1.543759226799, + -.11011194437742, + .64728397130966, + -2.2335081100464, + .67635416984558, + 1.2392344474792, + .10933646559715, + .49816474318504, + 2.0072033405304, + -.17484994232655, + 3.0224411487579, + -3.7984521389008, + -6.0368394851685, + .27887633442879, + 1.4904805421829, + 1.3098726272583]) + +mse = np.array([ 1.0121052265167, + .66349595785141, + .65449619293213, + .64957880973816, + .64683443307877, + .64528465270996, + .64440369606018, + .64390099048615, + .64361357688904, + .64344894886017, + .64335465431213, + .64330065250397, + .64326965808868, + .64325189590454, + .64324170351028, + .6432358622551, + .64323252439499, + .64323055744171, + .64322948455811, + .64322882890701, + .64322847127914, + .64322829246521, + .64322817325592, + .64322811365128, + .64322805404663, + .64322805404663, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199, + .64322799444199]) + +stdp = np.array([ .82960641384125, + .82960641384125, + .697261095047, + .61113905906677, + .51607495546341, + .47362637519836, + .41342103481293, + .40238001942635, + .37454023957253, + .33222004771233, + .32514902949333, + .31093680858612, + .30019253492355, + .31159669160843, + .29182952642441, + .30349296331406, + .29457464814186, + .28427124023438, + .30664679408073, + .29696446657181, + .31270903348923, + .29268020391464, + .28816330432892, + .29006817936897, + .30216124653816, + .30066826939583, + .31728908419609, + .30679926276207, + .3272570669651, + .37292611598969, + .36668366193771, + .40278288722038, + .36799272894859, + .36827209591866, + .38623574376106, + .39983862638474, + .42789059877396, + .43138384819031, + .46953064203262, + .48066720366478, + .48910140991211, + .53098994493484, + .54496067762375, + .55554050207138, + .58130383491516, + .60081332921982, + .58008605241776, + .58214038610458, + .58369606733322, + .53162068128586, + .54543834924698, + .52040082216263, + .50143963098526, + .48708060383797, + .47620677947998, + .48572361469269, + .51068127155304, + .61833620071411, + .61110657453537, + .76539021730423, + .84672522544861, + .92606955766678, + .96840506792068, + 1.0892199277878, + 1.1097067594528, + 1.0187155008316, + 1.0030621290207, + .97345739603043, + .95103752613068, + .82755368947983, + .84054774045944, + .85038793087006, + .84008830785751, + .92104357481003, + .89359468221664, + .87280809879303, + .91032028198242, + .95647835731506, + 1.0624366998672, + 1.1426770687103, + 1.1679404973984, + 1.311328291893, + 1.473167181015, + 1.5602221488953, + 1.7326545715332, + 1.8809853792191, + 1.7803012132645, + 1.7750589847565, + 1.8420933485031, + 1.7863517999649, + 1.8328944444656, + 1.7793855667114, + 1.5791050195694, + 1.3564316034317, + 1.5250737667084, + 1.3155146837234, + 1.014811873436, + .98235523700714, + .97552710771561, + .97035628557205, + 1.0196926593781, + 1.0393049716949, + .98315137624741, + .97613000869751, + .89980864524841, + .96626943349838, + .91009211540222, + .88530200719833, + .97303456068039, + .57794612646103, + .63377332687378, + .65829831361771, + .76562696695328, + .86465454101563, + .90414637327194, + .95180231332779, + .95238989591599, + .98833626508713, + 1.0333099365234, + 1.0851185321808, + 1.1066001653671, + 1.2293750047684, + 1.233595252037, + 1.1480363607407, + 1.2962552309036, + 1.2842413187027, + 1.3106474876404, + 1.5614050626755, + 1.4672855138779, + 1.2362524271011, + 1.1855486631393, + 1.1294020414352, + 1.1046353578568, + 1.0858771800995, + 1.0716745853424, + 1.0786685943604, + 1.0662157535553, + 1.0390332937241, + .96519494056702, + .9802839756012, + .92070508003235, + .91108840703964, + .95705932378769, + .95637094974518, + .97360169887543, + 1.0221517086029, + .9701629281044, + .94854199886322, + .98542231321335, + 1.048855304718, + 1.0081344842911, + 1.0305507183075, + 1.0475262403488, + .93612504005432, + .85176283121109, + .89438372850418, + .820152759552, + .71068543195724, + .76979607343674, + .76130604743958, + .77262878417969, + .85220617055893, + .84146595001221, + .93983960151672, + .97883212566376, + 1.0793634653091, + 1.1909983158112, + 1.1690304279327, + 1.2411522865295, + 1.1360056400299, + 1.0918840169907, + .9164656996727, + .76586949825287, + .918093085289, + .87360894680023, + .92867678403854, + 1.00588285923, + .92233866453171, + .84132260084152, + .90422683954239, + .9873673915863, + .99707210063934, + 1.1109310388565, + 1.1971517801285, + 1.138188958168, + 1.2710473537445, + 1.1763968467712, + 1.7437561750412, + 1.4101150035858, + 1.3527159690857, + 1.4335050582886, + .99765706062317, + 1.1067585945129, + 1.3086627721786, + 1.2968333959579, + 1.3547962903976, + 1.6768488883972, + 1.5905654430389, + 2.0774590969086, + 1.3218278884888, + .21813294291496, + .30750840902328, + .60612773895264]) + +icstats = np.array([ 202, + np.nan, + -242.06033399744, + 4, + 492.12066799488, + 505.35373878448]) + +class Bunch(dict): + def __init__(self, **kw): + dict.__init__(self, kw) + self.__dict__ = self + + +results = Bunch(llf=llf, nobs=nobs, k=k, k_exog=k_exog, sigma=sigma, chi2=chi2, df_model=df_model, k_ar=k_ar, k_ma=k_ma, params=params, cov_params=cov_params, xb=xb, y=y, resid=resid, yr=yr, mse=mse, stdp=stdp, icstats=icstats, ) + diff --git a/statsmodels/tsa/tests/results/arima111_forecasts.csv b/statsmodels/tsa/tests/results/arima111_forecasts.csv new file mode 100644 index 0000000..d6b12be --- /dev/null +++ b/statsmodels/tsa/tests/results/arima111_forecasts.csv @@ -0,0 +1,224 @@ +dates, cpi, predict, stderr, conf1, conf2 +1950:1, 28.980,,,, +1950:2, 29.150, 29.861 ,,, +1950:3, 29.350, 29.803 ,,, +1950:4, 29.370, 29.904 ,,, +1951:1, 29.540, 29.829 ,,, +1951:2, 29.550, 29.968 ,,, +1951:3, 29.750, 29.928 ,,, +1951:4, 29.840, 30.127 ,,, +1952:1, 29.810, 30.197 ,,, +1952:2, 29.920, 30.132 ,,, +1952:3, 29.980, 30.239 ,,, +1952:4, 30.040, 30.289 ,,, +1953:1, 30.210, 30.341 ,,, +1953:2, 30.220, 30.524 ,,, +1953:3, 30.380, 30.517 ,,, +1953:4, 30.440, 30.689 ,,, +1954:1, 30.480, 30.741 ,,, +1954:2, 30.690, 30.772 ,,, +1954:3, 30.750, 31.003 ,,, +1954:4, 30.940, 31.055 ,,, +1955:1, 30.950, 31.260 ,,, +1955:2, 31.020, 31.251 ,,, +1955:3, 31.120, 31.317 ,,, +1955:4, 31.280, 31.419 ,,, +1956:1, 31.380, 31.590 ,,, +1956:2, 31.580, 31.689 ,,, +1956:3, 31.650, 31.905 ,,, +1956:4, 31.880, 31.965 ,,, +1957:1, 32.280, 32.215 ,,, +1957:2, 32.450, 32.659 ,,, +1957:3, 32.850, 32.824 ,,, +1957:4, 32.900, 33.259 ,,, +1958:1, 33.100, 33.276 ,,, +1958:2, 33.400, 33.477 ,,, +1958:3, 33.700, 33.794 ,,, +1958:4, 34.100, 34.108 ,,, +1959:1, 34.400, 34.535 ,,, +1959:2, 34.900, 34.839 ,,, +1959:3, 35.300, 35.376 ,,, +1959:4, 35.700, 35.787 ,,, +1960:1, 36.300, 36.196 ,,, +1960:2, 36.800, 36.837 ,,, +1960:3, 37.300, 37.351 ,,, +1960:4, 37.900, 37.862 ,,, +1961:1, 38.500, 38.488 ,,, +1961:2, 38.900, 39.108 ,,, +1961:3, 39.400, 39.489 ,,, +1961:4, 39.900, 39.991 ,,, +1962:1, 40.100, 40.493 ,,, +1962:2, 40.600, 40.644 ,,, +1962:3, 40.900, 41.157 ,,, +1962:4, 41.200, 41.433 ,,, +1963:1, 41.500, 41.715 ,,, +1963:2, 41.800, 42.000 ,,, +1963:3, 42.200, 42.289 ,,, +1963:4, 42.700, 42.698 ,,, +1964:1, 43.700, 43.221 ,,, +1964:2, 44.200, 44.324 ,,, +1964:3, 45.600, 44.818 ,,, +1964:4, 46.800, 46.366 ,,, +1965:1, 48.100, 47.646 ,,, +1965:2, 49.300, 49.025 ,,, +1965:3, 51.000, 50.269 ,,, +1965:4, 52.300, 52.087 ,,, +1966:1, 53.000, 53.411 ,,, +1966:2, 54.000, 54.027 ,,, +1966:3, 54.900, 55.014 ,,, +1966:4, 55.800, 55.887 ,,, +1967:1, 56.100, 56.766 ,,, +1967:2, 57.000, 56.948 ,,, +1967:3, 57.900, 57.859 ,,, +1967:4, 58.700, 58.767 ,,, +1968:1, 60.000, 59.557 ,,, +1968:2, 60.800, 60.933 ,,, +1968:3, 61.600, 61.707 ,,, +1968:4, 62.700, 62.488 ,,, +1969:1, 63.900, 63.623 ,,, +1969:2, 65.500, 64.867 ,,, +1969:3, 67.100, 66.569 ,,, +1969:4, 68.500, 68.247 ,,, +1970:1, 70.600, 69.674 ,,, +1970:2, 73.000, 71.913 ,,, +1970:3, 75.200, 74.471 ,,, +1970:4, 78.000, 76.758 ,,, +1971:1, 80.900, 79.727 ,,, +1971:2, 82.600, 82.775 ,,, +1971:3, 84.700, 84.385 ,,, +1971:4, 87.200, 86.484 ,,, +1972:1, 89.100, 89.051 ,,, +1972:2, 91.500, 90.901 ,,, +1972:3, 93.400, 93.347 ,,, +1972:4, 94.400, 95.198 ,,, +1973:1, 95.000, 96.008 ,,, +1973:2, 97.500, 96.394 ,,, +1973:3, 98.100, 99.050 ,,, +1973:4, 97.900, 99.449 ,,, +1974:1, 98.800, 98.959 ,,, +1974:2, 99.800, 99.822 ,,, +1974:3, 100.800, 100.810 ,,, +1974:4, 102.100, 101.800 ,,, +1975:1, 103.300, 103.144 ,,, +1975:2, 104.100, 104.360 ,,, +1975:3, 105.100, 105.106 ,,, +1975:4, 105.700, 106.097 ,,, +1976:1, 107.000, 106.623 ,,, +1976:2, 107.700, 107.984 ,,, +1976:3, 108.500, 108.630 ,,, +1976:4, 109.900, 109.405 ,,, +1977:1, 108.700, 110.887 ,,, +1977:2, 109.500, 109.311 ,,, +1977:3, 110.200, 110.159 ,,, +1977:4, 111.400, 110.880 ,,, +1978:1, 112.700, 112.180 ,,, +1978:2, 113.800, 113.574 ,,, +1978:3, 115.000, 114.712 ,,, +1978:4, 116.000, 115.959 ,,, +1979:1, 117.200, 116.961 ,,, +1979:2, 118.500, 118.197 ,,, +1979:3, 119.900, 119.541 ,,, +1979:4, 121.200, 120.992 ,,, +1980:1, 123.100, 122.314 ,,, +1980:2, 124.500, 124.333 ,,, +1980:3, 125.400, 125.740 ,,, +1980:4, 127.500, 126.561 ,,, +1981:1, 128.900, 128.803 ,,, +1981:2, 130.500, 130.194 ,,, +1981:3, 133.400, 131.821 ,,, +1981:4, 134.700, 134.961 ,,, +1982:1, 135.100, 136.176 ,,, +1982:2, 136.200, 136.359 ,,, +1982:3, 137.200, 137.409 ,,, +1982:4, 138.300, 138.354 ,,, +1983:1, 139.400, 139.428 ,,, +1983:2, 140.500, 140.509 ,,, +1983:3, 141.700, 141.594 ,,, +1983:4, 142.800, 142.799 ,,, +1984:1, 143.800, 143.886 ,,, +1984:2, 144.500, 144.859 ,,, +1984:3, 145.600, 145.488 ,,, +1984:4, 146.300, 146.600 ,,, +1985:1, 147.200, 147.242 ,,, +1985:2, 148.400, 148.131 ,,, +1985:3, 149.400, 149.374 ,,, +1985:4, 150.500, 150.373 ,,, +1986:1, 151.800, 151.489 ,,, +1986:2, 152.600, 152.835 ,,, +1986:3, 153.500, 153.586 ,,, +1986:4, 154.700, 154.465 ,,, +1987:1, 156.100, 155.700 ,,, +1987:2, 157.000, 157.160 ,,, +1987:3, 158.200, 158.022 ,,, +1987:4, 159.400, 159.244 ,,, +1988:1, 159.900, 160.460 ,,, +1988:2, 160.400, 160.855 ,,, +1988:3, 161.500, 161.274 ,,, +1988:4, 162.000, 162.412 ,,, +1989:1, 162.200, 162.841 ,,, +1989:2, 163.200, 162.935 ,,, +1989:3, 163.900, 163.988 ,,, +1989:4, 164.700, 164.679 ,,, +1990:1, 165.900, 165.489 ,,, +1990:2, 166.700, 166.764 ,,, +1990:3, 168.100, 167.554 ,,, +1990:4, 169.300, 169.048 ,,, +1991:1, 170.900, 170.286 ,,, +1991:2, 172.700, 171.984 ,,, +1991:3, 173.900, 173.893 ,,, +1991:4, 175.600, 175.075 ,,, +1992:1, 176.400, 176.846 ,,, +1992:2, 177.400, 177.549 ,,, +1992:3, 177.600, 178.508 ,,, +1992:4, 177.700, 178.541 ,,, +1993:1, 179.300, 178.495 ,,, +1993:2, 180.000, 180.236 ,,, +1993:3, 181.200, 180.893 ,,, +1993:4, 182.600, 182.144 ,,, +1994:1, 183.200, 183.617 ,,, +1994:2, 183.700, 184.139 ,,, +1994:3, 184.900, 184.561 ,,, +1994:4, 186.300, 185.819 ,,, +1995:1, 187.400, 187.298 ,,, +1995:2, 189.100, 188.408 ,,, +1995:3, 190.800, 190.218 ,,, +1995:4, 191.800, 192.002 ,,, +1996:1, 193.800, 192.948 ,,, +1996:2, 194.700, 195.076 ,,, +1996:3, 199.200, 195.889 ,,, +1996:4, 199.400, 200.930 ,,, +1997:1, 200.700, 200.820 ,,, +1997:2, 202.700, 202.068 ,,, +1997:3, 201.900, 204.145 ,,, +1997:4, 203.574, 202.932 ,,, +1998:1, 205.920, 204.705 ,,, +1998:2, 207.338, 207.241 ,,, +1998:3, 209.133, 208.649 ,,, +1998:4, 212.495, 210.500 ,,, +1999:1, 213.997, 214.170 ,,, +1999:2, 218.610, 215.595 ,,, +1999:3, 216.889, 220.674 ,,, +1999:4, 212.174, 218.243 ,,, +2000:1, 212.671, 212.474 ,,, +2000:2, 214.469, 213.039 ,,, +2000:3, 216.385, 215.110 ,,, +2000:4,, 217.255, 0.7999, 215.688, 218.823 +2001:1,, 218.127, 1.2305, 215.715, 220.538 +2001:2,, 218.998, 1.6254, 215.813, 222.184 +2001:3,, 219.870, 2.0093, 215.932, 223.809 +2001:4,, 220.743, 2.3897, 216.060, 225.427 +2002:1,, 221.616, 2.7691, 216.189, 227.044 +2002:2,, 222.490, 3.1483, 216.320, 228.661 +2002:3,, 223.364, 3.5276, 216.450, 230.278 +2002:4,, 224.239, 3.9067, 216.582, 231.896 +2003:1,, 225.114, 4.2853, 216.715, 233.513 +2003:2,, 225.989, 4.6630, 216.850, 235.128 +2003:3,, 226.865, 5.0394, 216.988, 236.742 +2003:4,, 227.741, 5.4142, 217.129, 238.352 +2004:1,, 228.617, 5.7870, 217.274, 239.959 +2004:2,, 229.493, 6.1576, 217.425, 241.562 +2004:3,, 230.370, 6.5257, 217.580, 243.160 +2004:4,, 231.247, 6.8911, 217.741, 244.753 +2005:1,, 232.124, 7.2535, 217.908, 246.341 +2005:2,, 233.002, 7.6128, 218.081, 247.923 +2005:3,, 233.879, 7.9689, 218.261, 249.498 diff --git a/statsmodels/tsa/tests/results/arima111_results.py b/statsmodels/tsa/tests/results/arima111_results.py new file mode 100644 index 0000000..cb0a1fe --- /dev/null +++ b/statsmodels/tsa/tests/results/arima111_results.py @@ -0,0 +1,1281 @@ +import numpy as np + +llf = np.array([-241.75576160303]) + +nobs = np.array([ 202]) + +k = np.array([ 4]) + +k_exog = np.array([ 1]) + +sigma = np.array([ .79987660416529]) + +chi2 = np.array([ 342.91413339514]) + +df_model = np.array([ 2]) + +k_ar = np.array([ 1]) + +k_ma = np.array([ 1]) + +params = np.array([ .88084748605315, + .93989719451385, + -.7709851377434, + .79987660416529]) + +cov_params = np.array([ .15020189867396, + -.01642122563089, + .01456018801049, + -.00156750041014, + -.01642122563089, + .0032067778715, + -.00350387326241, + .00059634328354, + .01456018801049, + -.00350387326241, + .00480028434835, + -.00068065418463, + -.00156750041014, + .00059634328354, + -.00068065418463, + .00029322997097]).reshape(4,4) + +xb = np.array([ .88084751367569, + .88084751367569, + .65303039550781, + .55365419387817, + .45908725261688, + .42810925841331, + .37837743759155, + .37686342000961, + .35719576478004, + .3220648765564, + .31943875551224, + .30907514691353, + .30120712518692, + .31383177638054, + .29652059078217, + .30856171250343, + .30095273256302, + .29171526432037, + .31331890821457, + .30463594198227, + .31990340352058, + .30126947164536, + .29703867435455, + .29884466528893, + .31037190556526, + .30912432074547, + .32505416870117, + .31537705659866, + .33494210243225, + .37874156236649, + .37366089224815, + .40859284996986, + .37640652060509, + .37692713737488, + .39422073960304, + .40755322575569, + .43472331762314, + .43878075480461, + .47569087147713, + .48725643754005, + .49617394804955, + .53683114051819, + .55128628015518, + .56243091821671, + .58791494369507, + .60756206512451, + .58892780542374, + .59145200252533, + .59339815378189, + .54422444105148, + .55698639154434, + .53304374217987, + .51458370685577, + .50035130977631, + .48937830328941, + .49780988693237, + .52120143175125, + .62369203567505, + .6182547211647, + .76608312129974, + .84627467393875, + .92499214410782, + .96879118680954, + 1.0870156288147, + 1.1105998754501, + 1.0274360179901, + 1.013991355896, + .98673474788666, + .96571969985962, + .84817039966583, + .85888928174973, + .86715340614319, + .85663330554962, + .93297851085663, + .90738350152969, + .88765007257462, + .92311006784439, + .96734017133713, + 1.0690053701401, + 1.1473876237869, + 1.1740373373032, + 1.3128218650818, + 1.4704967737198, + 1.5582785606384, + 1.7273052930832, + 1.8745132684708, + 1.7853132486343, + 1.7841064929962, + 1.850741147995, + 1.800768494606, + 1.8466963768005, + 1.7976499795914, + 1.6078149080276, + 1.3938897848129, + 1.5498898029327, + 1.3492304086685, + 1.059396147728, + 1.0217411518097, + 1.0096007585526, + 1.0002405643463, + 1.0436969995499, + 1.0603114366531, + 1.0055546760559, + .99712115526199, + .92305397987366, + .9841884970665, + .92997401952744, + .90506774187088, + .9872123003006, + .61137217283249, + .65943044424057, + .67959040403366, + .77959072589874, + .87357920408249, + .91226226091385, + .95897603034973, + .96120971441269, + .99671375751495, + 1.0409790277481, + 1.0919979810715, + 1.1144404411316, + 1.2330915927887, + 1.2401138544083, + 1.161071896553, + 1.3028255701065, + 1.2938764095306, + 1.3207612037659, + 1.5610725879669, + 1.4760913848877, + 1.258552312851, + 1.2090681791306, + 1.1540271043777, + 1.12848341465, + 1.1087870597839, + 1.0936040878296, + 1.0987877845764, + 1.0858948230743, + 1.0590622425079, + .98770052194595, + 1.0002481937408, + .94235575199127, + .93150353431702, + .97381073236465, + .9726470708847, + .98864215612411, + 1.0347559452057, + .98585307598114, + .96503925323486, + .9996662735939, + 1.0601476430893, + 1.022319316864, + 1.043828368187, + 1.0604115724564, + .95495897531509, + .87365657091141, + .91232192516327, + .84078407287598, + .73495537042618, + .78849309682846, + .77909576892853, + .78874284029007, + .8637443780899, + .8540056347847, + .94784545898438, + .98641014099121, + 1.0837067365646, + 1.1925053596497, + 1.1750392913818, + 1.2460317611694, + 1.1487410068512, + 1.1075156927109, + .94060403108597, + .7950227856636, + .93615245819092, + .89293897151947, + .94407802820206, + 1.0172899961472, + .93860250711441, + .86104601621628, + .91948908567429, + .99833220243454, + 1.008442401886, + 1.1175880432129, + 1.2017351388931, + 1.1483734846115, + 1.2761443853378, + 1.188849568367, + 1.7296310663223, + 1.4202431440353, + 1.3675138950348, + 1.445098400116, + 1.031960606575, + 1.1313284635544, + 1.3214453458786, + 1.3112732172012, + 1.367110490799, + 1.674845457077, + 1.5979281663895, + 2.064112663269, + 1.3536450862885, + .30015936493874, + .36831066012383, + .64060544967651]) + +y = np.array([np.nan, + 29.860847473145, + 29.803030014038, + 29.903654098511, + 29.82908821106, + 29.968111038208, + 29.928377151489, + 30.126863479614, + 30.197195053101, + 30.132064819336, + 30.23943901062, + 30.289073944092, + 30.341207504272, + 30.523830413818, + 30.516519546509, + 30.68856048584, + 30.740953445435, + 30.771715164185, + 31.003318786621, + 31.054636001587, + 31.25990486145, + 31.251270294189, + 31.317039489746, + 31.418846130371, + 31.590372085571, + 31.689123153687, + 31.905054092407, + 31.965375900269, + 32.214942932129, + 32.658740997314, + 32.823661804199, + 33.258590698242, + 33.27640914917, + 33.47692489624, + 33.7942237854, + 34.107555389404, + 34.534721374512, + 34.83878326416, + 35.375694274902, + 35.787254333496, + 36.196174621582, + 36.83683013916, + 37.3512840271, + 37.86243057251, + 38.487915039063, + 39.107563018799, + 39.488929748535, + 39.991455078125, + 40.49340057373, + 40.644222259521, + 41.156986236572, + 41.433044433594, + 41.714584350586, + 42.000350952148, + 42.289379119873, + 42.697811126709, + 43.221202850342, + 44.323692321777, + 44.818256378174, + 46.366081237793, + 47.64627456665, + 49.024990081787, + 50.26879119873, + 52.087017059326, + 53.410598754883, + 54.027435302734, + 55.01399230957, + 55.886737823486, + 56.765720367432, + 56.948169708252, + 57.858890533447, + 58.767154693604, + 59.556632995605, + 60.93297958374, + 61.707382202148, + 62.487648010254, + 63.623111724854, + 64.867340087891, + 66.569007873535, + 68.247383117676, + 69.674034118652, + 71.912818908691, + 74.470497131348, + 76.758277893066, + 79.72730255127, + 82.774513244629, + 84.385314941406, + 86.484100341797, + 89.050735473633, + 90.900764465332, + 93.346694946289, + 95.197654724121, + 96.007820129395, + 96.393890380859, + 99.04988861084, + 99.449226379395, + 98.959396362305, + 99.821746826172, + 100.80960083008, + 101.80024719238, + 103.1436920166, + 104.36031341553, + 105.10555267334, + 106.09712219238, + 106.62305450439, + 107.98419189453, + 108.62997436523, + 109.40506744385, + 110.88721466064, + 109.31137084961, + 110.15943145752, + 110.87958526611, + 112.17959594727, + 113.57357788086, + 114.71226501465, + 115.95897674561, + 116.9612121582, + 118.1967086792, + 119.54097747803, + 120.99199676514, + 122.31443786621, + 124.33309173584, + 125.74011230469, + 126.56107330322, + 128.80282592773, + 130.19386291504, + 131.82075500488, + 134.96105957031, + 136.17608642578, + 136.35855102539, + 137.40905761719, + 138.35401916504, + 139.42848205566, + 140.50877380371, + 141.59359741211, + 142.79878234863, + 143.88589477539, + 144.85906982422, + 145.48770141602, + 146.60025024414, + 147.24235534668, + 148.13150024414, + 149.37380981445, + 150.3726348877, + 151.48864746094, + 152.83476257324, + 153.58586120605, + 154.46504211426, + 155.69966125488, + 157.16015625, + 158.0223236084, + 159.24382019043, + 160.46040344238, + 160.85494995117, + 161.27365112305, + 162.41232299805, + 162.84078979492, + 162.93495178223, + 163.98849487305, + 164.67909240723, + 165.48873901367, + 166.76373291016, + 167.55400085449, + 169.0478515625, + 170.2864074707, + 171.98370361328, + 173.89250183105, + 175.07502746582, + 176.84603881836, + 177.54873657227, + 178.50750732422, + 178.5406036377, + 178.49502563477, + 180.23616027832, + 180.89294433594, + 182.14407348633, + 183.61729431152, + 184.13859558105, + 184.56105041504, + 185.81948852539, + 187.29833984375, + 188.40843200684, + 190.21759033203, + 192.00173950195, + 192.9483795166, + 195.07614135742, + 195.88883972168, + 200.92962646484, + 200.82023620605, + 202.06750488281, + 204.1450958252, + 202.93196105957, + 204.70533752441, + 207.24143981934, + 208.6492767334, + 210.50010681152, + 214.16984558105, + 215.59492492676, + 220.67411804199, + 218.24264526367, + 212.47415161133, + 213.03932189941, + 215.10960388184]) + +resid = np.array([np.nan, + -.71084743738174, + -.45302960276604, + -.5336537361145, + -.28908717632294, + -.41811093688011, + -.17837668955326, + -.28686326742172, + -.38719645142555, + -.21206425130367, + -.25943928956985, + -.24907378852367, + -.13120894134045, + -.3038315474987, + -.13652075827122, + -.24856032431126, + -.26095372438431, + -.0817142650485, + -.25331944227219, + -.11463540792465, + -.30990317463875, + -.2312697917223, + -.19703827798367, + -.13884480297565, + -.21037344634533, + -.10912357270718, + -.25505447387695, + -.08537751436234, + .06505750864744, + -.20873957872391, + .02633681893349, + -.35858979821205, + -.1764095723629, + -.07692407816648, + -.09422151744366, + -.00755552388728, + -.13472028076649, + .06121923774481, + -.07569316774607, + -.08725491166115, + .10382451862097, + -.03683112934232, + -.05128625407815, + .03757134452462, + .0120835499838, + -.20756052434444, + -.08892779797316, + -.09145200997591, + -.3934012055397, + -.04422445222735, + -.25698333978653, + -.23304453492165, + -.21458448469639, + -.2003520578146, + -.08937677741051, + .00219011562876, + .47879853844643, + -.12369203567505, + .78174299001694, + .43391767144203, + .4537245631218, + .27500861883163, + .73120957612991, + .21298357844353, + -.41059911251068, + -.02743596211076, + -.11398979276419, + -.08673703670502, + -.66572046279907, + .05183110013604, + .04111221805215, + -.06715416908264, + .44336593151093, + -.13297925889492, + -.1073842421174, + .21235218644142, + .27689066529274, + .63265830278397, + .53099316358566, + .25261387228966, + .92596107721329, + 1.0871796607971, + .72950023412704, + 1.2417244911194, + 1.1726962327957, + -.17451636493206, + .31468516588211, + .71589350700378, + .04926039651036, + .59923303127289, + .05330519750714, + -.79764997959137, + -1.0078164339066, + 1.1061102151871, + -.94989138841629, + -1.5492273569107, + -.15939457714558, + -.02174116671085, + -.00960071571171, + .29975482821465, + .15630762279034, + -.2603160738945, + -.00555467186496, + -.3971226811409, + .37694907188416, + -.28419154882431, + -.12997098267078, + .49493381381035, + -2.1872169971466, + .18863087892532, + .04056651890278, + .52041417360306, + .52040469646454, + .22642692923546, + .28773468732834, + .0410239957273, + .2387872338295, + .30328929424286, + .35902243852615, + .20799747109413, + .78556102514267, + .16690990328789, + -.34011232852936, + .93892657756805, + .0971682742238, + .30612966418266, + 1.5792326927185, + -.26106956601143, + -1.0760822296143, + -.15856145322323, + -.2090682387352, + -.05402099713683, + -.02849259786308, + -.00878097955137, + .10639289021492, + .00121826829854, + -.08589478582144, + -.35906526446342, + .11230555176735, + -.30025118589401, + -.04236188530922, + .26849341392517, + .02618926763535, + .12735903263092, + .31136092543602, + -.23475293815136, + -.08585914969444, + .23495768010616, + .40034285187721, + -.1601537913084, + .17767761647701, + .15616858005524, + -.56041151285172, + -.45495894551277, + .2263495028019, + -.41232195496559, + -.64078712463379, + .26504465937614, + -.08849616348743, + .02090725488961, + .41125410795212, + -.06374131888151, + .54600352048874, + .25215145945549, + .61358070373535, + .71629631519318, + .00749156065285, + .52497291564941, + -.44604399800301, + -.14874097704887, + -.90750348567963, + -.84061318635941, + .80498331785202, + -.23615552484989, + .30705797672272, + .45593112707138, + -.41729912161827, + -.43860253691673, + .33895090222359, + .48052009940147, + .10165861994028, + .69156980514526, + .58240884542465, + -.20173519849777, + .85162657499313, + -.37615045905113, + 3.3111503124237, + -1.5296341180801, + -.12024004757404, + .63248610496521, + -2.2451014518738, + .64205056428909, + 1.2146645784378, + .09655395895243, + .48372489213943, + 1.9948890209198, + -.17284658551216, + 3.0150785446167, + -3.7851057052612, + -6.0686569213867, + .19684991240501, + 1.4296782016754, + 1.2753949165344]) + +yr = np.array([np.nan, + -.71084743738174, + -.45302960276604, + -.5336537361145, + -.28908717632294, + -.41811093688011, + -.17837668955326, + -.28686326742172, + -.38719645142555, + -.21206425130367, + -.25943928956985, + -.24907378852367, + -.13120894134045, + -.3038315474987, + -.13652075827122, + -.24856032431126, + -.26095372438431, + -.0817142650485, + -.25331944227219, + -.11463540792465, + -.30990317463875, + -.2312697917223, + -.19703827798367, + -.13884480297565, + -.21037344634533, + -.10912357270718, + -.25505447387695, + -.08537751436234, + .06505750864744, + -.20873957872391, + .02633681893349, + -.35858979821205, + -.1764095723629, + -.07692407816648, + -.09422151744366, + -.00755552388728, + -.13472028076649, + .06121923774481, + -.07569316774607, + -.08725491166115, + .10382451862097, + -.03683112934232, + -.05128625407815, + .03757134452462, + .0120835499838, + -.20756052434444, + -.08892779797316, + -.09145200997591, + -.3934012055397, + -.04422445222735, + -.25698333978653, + -.23304453492165, + -.21458448469639, + -.2003520578146, + -.08937677741051, + .00219011562876, + .47879853844643, + -.12369203567505, + .78174299001694, + .43391767144203, + .4537245631218, + .27500861883163, + .73120957612991, + .21298357844353, + -.41059911251068, + -.02743596211076, + -.11398979276419, + -.08673703670502, + -.66572046279907, + .05183110013604, + .04111221805215, + -.06715416908264, + .44336593151093, + -.13297925889492, + -.1073842421174, + .21235218644142, + .27689066529274, + .63265830278397, + .53099316358566, + .25261387228966, + .92596107721329, + 1.0871796607971, + .72950023412704, + 1.2417244911194, + 1.1726962327957, + -.17451636493206, + .31468516588211, + .71589350700378, + .04926039651036, + .59923303127289, + .05330519750714, + -.79764997959137, + -1.0078164339066, + 1.1061102151871, + -.94989138841629, + -1.5492273569107, + -.15939457714558, + -.02174116671085, + -.00960071571171, + .29975482821465, + .15630762279034, + -.2603160738945, + -.00555467186496, + -.3971226811409, + .37694907188416, + -.28419154882431, + -.12997098267078, + .49493381381035, + -2.1872169971466, + .18863087892532, + .04056651890278, + .52041417360306, + .52040469646454, + .22642692923546, + .28773468732834, + .0410239957273, + .2387872338295, + .30328929424286, + .35902243852615, + .20799747109413, + .78556102514267, + .16690990328789, + -.34011232852936, + .93892657756805, + .0971682742238, + .30612966418266, + 1.5792326927185, + -.26106956601143, + -1.0760822296143, + -.15856145322323, + -.2090682387352, + -.05402099713683, + -.02849259786308, + -.00878097955137, + .10639289021492, + .00121826829854, + -.08589478582144, + -.35906526446342, + .11230555176735, + -.30025118589401, + -.04236188530922, + .26849341392517, + .02618926763535, + .12735903263092, + .31136092543602, + -.23475293815136, + -.08585914969444, + .23495768010616, + .40034285187721, + -.1601537913084, + .17767761647701, + .15616858005524, + -.56041151285172, + -.45495894551277, + .2263495028019, + -.41232195496559, + -.64078712463379, + .26504465937614, + -.08849616348743, + .02090725488961, + .41125410795212, + -.06374131888151, + .54600352048874, + .25215145945549, + .61358070373535, + .71629631519318, + .00749156065285, + .52497291564941, + -.44604399800301, + -.14874097704887, + -.90750348567963, + -.84061318635941, + .80498331785202, + -.23615552484989, + .30705797672272, + .45593112707138, + -.41729912161827, + -.43860253691673, + .33895090222359, + .48052009940147, + .10165861994028, + .69156980514526, + .58240884542465, + -.20173519849777, + .85162657499313, + -.37615045905113, + 3.3111503124237, + -1.5296341180801, + -.12024004757404, + .63248610496521, + -2.2451014518738, + .64205056428909, + 1.2146645784378, + .09655395895243, + .48372489213943, + 1.9948890209198, + -.17284658551216, + 3.0150785446167, + -3.7851057052612, + -6.0686569213867, + .19684991240501, + 1.4296782016754, + 1.2753949165344]) + +mse = np.array([ .7963672876358, + .7963672876358, + .71457105875015, + .67959600687027, + .66207146644592, + .65259438753128, + .64725720882416, + .644182741642, + .64238852262497, + .64133352041245, + .64071041345596, + .6403414607048, + .64012265205383, + .63999271392822, + .63991558551788, + .63986974954605, + .63984251022339, + .63982629776001, + .6398167014122, + .6398109793663, + .63980758190155, + .63980555534363, + .63980436325073, + .639803647995, + .63980323076248, + .63980293273926, + .63980281352997, + .63980269432068, + .63980263471603, + .63980263471603, + .63980263471603, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139, + .63980257511139]) + +stdp = np.array([ .88084751367569, + .88084751367569, + .65303039550781, + .55365419387817, + .45908725261688, + .42810925841331, + .37837743759155, + .37686342000961, + .35719576478004, + .3220648765564, + .31943875551224, + .30907514691353, + .30120712518692, + .31383177638054, + .29652059078217, + .30856171250343, + .30095273256302, + .29171526432037, + .31331890821457, + .30463594198227, + .31990340352058, + .30126947164536, + .29703867435455, + .29884466528893, + .31037190556526, + .30912432074547, + .32505416870117, + .31537705659866, + .33494210243225, + .37874156236649, + .37366089224815, + .40859284996986, + .37640652060509, + .37692713737488, + .39422073960304, + .40755322575569, + .43472331762314, + .43878075480461, + .47569087147713, + .48725643754005, + .49617394804955, + .53683114051819, + .55128628015518, + .56243091821671, + .58791494369507, + .60756206512451, + .58892780542374, + .59145200252533, + .59339815378189, + .54422444105148, + .55698639154434, + .53304374217987, + .51458370685577, + .50035130977631, + .48937830328941, + .49780988693237, + .52120143175125, + .62369203567505, + .6182547211647, + .76608312129974, + .84627467393875, + .92499214410782, + .96879118680954, + 1.0870156288147, + 1.1105998754501, + 1.0274360179901, + 1.013991355896, + .98673474788666, + .96571969985962, + .84817039966583, + .85888928174973, + .86715340614319, + .85663330554962, + .93297851085663, + .90738350152969, + .88765007257462, + .92311006784439, + .96734017133713, + 1.0690053701401, + 1.1473876237869, + 1.1740373373032, + 1.3128218650818, + 1.4704967737198, + 1.5582785606384, + 1.7273052930832, + 1.8745132684708, + 1.7853132486343, + 1.7841064929962, + 1.850741147995, + 1.800768494606, + 1.8466963768005, + 1.7976499795914, + 1.6078149080276, + 1.3938897848129, + 1.5498898029327, + 1.3492304086685, + 1.059396147728, + 1.0217411518097, + 1.0096007585526, + 1.0002405643463, + 1.0436969995499, + 1.0603114366531, + 1.0055546760559, + .99712115526199, + .92305397987366, + .9841884970665, + .92997401952744, + .90506774187088, + .9872123003006, + .61137217283249, + .65943044424057, + .67959040403366, + .77959072589874, + .87357920408249, + .91226226091385, + .95897603034973, + .96120971441269, + .99671375751495, + 1.0409790277481, + 1.0919979810715, + 1.1144404411316, + 1.2330915927887, + 1.2401138544083, + 1.161071896553, + 1.3028255701065, + 1.2938764095306, + 1.3207612037659, + 1.5610725879669, + 1.4760913848877, + 1.258552312851, + 1.2090681791306, + 1.1540271043777, + 1.12848341465, + 1.1087870597839, + 1.0936040878296, + 1.0987877845764, + 1.0858948230743, + 1.0590622425079, + .98770052194595, + 1.0002481937408, + .94235575199127, + .93150353431702, + .97381073236465, + .9726470708847, + .98864215612411, + 1.0347559452057, + .98585307598114, + .96503925323486, + .9996662735939, + 1.0601476430893, + 1.022319316864, + 1.043828368187, + 1.0604115724564, + .95495897531509, + .87365657091141, + .91232192516327, + .84078407287598, + .73495537042618, + .78849309682846, + .77909576892853, + .78874284029007, + .8637443780899, + .8540056347847, + .94784545898438, + .98641014099121, + 1.0837067365646, + 1.1925053596497, + 1.1750392913818, + 1.2460317611694, + 1.1487410068512, + 1.1075156927109, + .94060403108597, + .7950227856636, + .93615245819092, + .89293897151947, + .94407802820206, + 1.0172899961472, + .93860250711441, + .86104601621628, + .91948908567429, + .99833220243454, + 1.008442401886, + 1.1175880432129, + 1.2017351388931, + 1.1483734846115, + 1.2761443853378, + 1.188849568367, + 1.7296310663223, + 1.4202431440353, + 1.3675138950348, + 1.445098400116, + 1.031960606575, + 1.1313284635544, + 1.3214453458786, + 1.3112732172012, + 1.367110490799, + 1.674845457077, + 1.5979281663895, + 2.064112663269, + 1.3536450862885, + .30015936493874, + .36831066012383, + .64060544967651]) + +icstats = np.array([ 202, + np.nan, + -241.75576160303, + 4, + 491.51152320605, + 504.74459399566]) + +class Bunch(dict): + def __init__(self, **kw): + dict.__init__(self, kw) + self.__dict__ = self + + +results = Bunch(llf=llf, nobs=nobs, k=k, k_exog=k_exog, sigma=sigma, chi2=chi2, df_model=df_model, k_ar=k_ar, k_ma=k_ma, params=params, cov_params=cov_params, xb=xb, y=y, resid=resid, yr=yr, mse=mse, stdp=stdp, icstats=icstats, ) + diff --git a/statsmodels/tsa/tests/results/arima111nc_css_results.py b/statsmodels/tsa/tests/results/arima111nc_css_results.py new file mode 100644 index 0000000..f7366a3 --- /dev/null +++ b/statsmodels/tsa/tests/results/arima111nc_css_results.py @@ -0,0 +1,1273 @@ +import numpy as np + +llf = np.array([-242.89663276735]) + +nobs = np.array([ 202]) + +k = np.array([ 3]) + +k_exog = np.array([ 1]) + +sigma = np.array([ .8053519404535]) + +chi2 = np.array([ 15723.381396967]) + +df_model = np.array([ 2]) + +k_ar = np.array([ 1]) + +k_ma = np.array([ 1]) + +params = np.array([ .99479180506163, + -.84461527652809, + .64859174799221]) + +cov_params = np.array([ .00008904968254, + -.00023560410507, + .00012795903324, + -.00023560410507, + .00131628534915, + -.00022462340695, + .00012795903324, + -.00022462340695, + .0005651128627]).reshape(3,3) + +xb = np.array([ 0, + 0, + .02869686298072, + .05651443824172, + .0503994859755, + .06887971609831, + .05940540507436, + .08067328482866, + .08167565613985, + .06429278105497, + .07087650150061, + .06886467337608, + .06716959923506, + .08230647444725, + .07099691033363, + .08401278406382, + .07996553182602, + .07354256510735, + .09366323798895, + .08811800926924, + .10296355187893, + .08846370875835, + .0852297320962, + .08700425922871, + .09751411527395, + .09737934917212, + .11228405684233, + .1053489819169, + .12352022528648, + .16439816355705, + .1643835157156, + .19891132414341, + .17551273107529, + .17827558517456, + .19562774896622, + .21028305590153, + .23767858743668, + .24580039083958, + .28269505500793, + .29883882403374, + .31247469782829, + .35402658581734, + .37410452961922, + .39106267690659, + .42040377855301, + .44518512487411, + .43608102202415, + .44340893626213, + .44959822297096, + .40977239608765, + .42118826508522, + .40079545974731, + .38357082009315, + .36902260780334, + .35673499107361, + .36137464642525, + .38031083345413, + .47139286994934, + .47323387861252, + .60994738340378, + .69538277387619, + .7825602889061, + .84117436408997, + .9657689332962, + 1.0109325647354, + .95897275209427, + .96013957262039, + .9461076259613, + .9342554807663, + .83413934707642, + .83968591690063, + .84437066316605, + .83330947160721, + .8990553021431, + .87949693202972, + .86297762393951, + .89407861232758, + .93536442518234, + 1.0303052663803, + 1.1104937791824, + 1.1481873989105, + 1.2851470708847, + 1.4458787441254, + 1.5515991449356, + 1.7309991121292, + 1.8975404500961, + 1.8579913377762, + 1.8846583366394, + 1.9672524929047, + 1.9469071626663, + 2.0048115253448, + 1.9786299467087, + 1.8213576078415, + 1.6284521818161, + 1.7508568763733, + 1.5689061880112, + 1.2950873374939, + 1.2290096282959, + 1.1882168054581, + 1.1537625789642, + 1.1697143316269, + 1.1681711673737, + 1.106795668602, + 1.0849931240082, + 1.006507396698, + 1.0453414916992, + .98803448677063, + .95465070009232, + 1.0165599584579, + .67838954925537, + .69311982393265, + .69054269790649, + .76345545053482, + .84005492925644, + .87471830844879, + .91901183128357, + .92638796567917, + .96265280246735, + 1.0083012580872, + 1.0618740320206, + 1.0921038389206, + 1.2077431678772, + 1.2303256988525, + 1.174311041832, + 1.3072115182877, + 1.314337015152, + 1.3503924608231, + 1.5760731697083, + 1.5264053344727, + 1.34929728508, + 1.304829955101, + 1.2522557973862, + 1.222869515419, + 1.198047041893, + 1.1770839691162, + 1.1743944883347, + 1.1571066379547, + 1.1274864673615, + 1.0574153661728, + 1.058304309845, + .99898308515549, + .9789143204689, + 1.0070173740387, + 1.000718832016, + 1.0104174613953, + 1.0486439466476, + 1.0058424472809, + .98470783233643, + 1.0119106769562, + 1.0649236440659, + 1.0346088409424, + 1.0540577173233, + 1.0704846382141, + .97923594713211, + .90216588973999, + .9271782040596, + .85819715261459, + .75488126277924, + .78776079416275, + .77047789096832, + .77089905738831, + .8313245177269, + .82229107618332, + .90476810932159, + .94439232349396, + 1.0379292964935, + 1.1469690799713, + 1.1489590406418, + 1.2257302999496, + 1.1554099321365, + 1.1260533332825, + .9811190366745, + .8436843752861, + .95287209749222, + .90993344783783, + .94875508546829, + 1.0115815401077, + .94450175762177, + .87282890081406, + .91741597652435, + .98511207103729, + .9972335100174, + 1.0975805521011, + 1.1823329925537, + 1.1487929821014, + 1.270641207695, + 1.2083609104156, + 1.696394443512, + 1.4628355503082, + 1.4307631254196, + 1.5087975263596, + 1.1542117595673, + 1.2262620925903, + 1.3880327939987, + 1.3853038549423, + 1.4396153688431, + 1.7208145856857, + 1.678991317749, + 2.110867023468, + 1.524417757988, + .57946246862411, + .56406193971634, + .74643105268478]) + +y = np.array([np.nan, + 28.979999542236, + 29.178695678711, + 29.40651512146, + 29.420400619507, + 29.608880996704, + 29.609405517578, + 29.830673217773, + 29.921676635742, + 29.874292373657, + 29.990877151489, + 30.048864364624, + 30.10717010498, + 30.292304992676, + 30.290996551514, + 30.464012145996, + 30.519966125488, + 30.553541183472, + 30.783664703369, + 30.838117599487, + 31.042964935303, + 31.038463592529, + 31.105230331421, + 31.207004547119, + 31.377513885498, + 31.477378845215, + 31.692283630371, + 31.755348205566, + 32.003520965576, + 32.444396972656, + 32.61438369751, + 33.048908233643, + 33.07551574707, + 33.278274536133, + 33.595630645752, + 33.91028213501, + 34.337677001953, + 34.645801544189, + 35.182697296143, + 35.598838806152, + 36.012474060059, + 36.654026031494, + 37.174102783203, + 37.691062927246, + 38.320404052734, + 38.94518661499, + 39.336082458496, + 39.843410491943, + 40.349597930908, + 40.509769439697, + 41.021186828613, + 41.300796508789, + 41.583572387695, + 41.869022369385, + 42.156734466553, + 42.561374664307, + 43.080310821533, + 44.171394348145, + 44.673233032227, + 46.209945678711, + 47.495380401611, + 48.882556915283, + 50.141174316406, + 51.965770721436, + 53.310932159424, + 53.958972930908, + 54.960140228271, + 55.84610748291, + 56.734252929688, + 56.934139251709, + 57.839687347412, + 58.744373321533, + 59.533309936523, + 60.899055480957, + 61.679496765137, + 62.46297454834, + 63.594078063965, + 64.83536529541, + 66.530303955078, + 68.210494995117, + 69.64818572998, + 71.885147094727, + 74.445877075195, + 76.751594543457, + 79.731002807617, + 82.797538757324, + 84.457992553711, + 86.584655761719, + 89.167251586914, + 91.046905517578, + 93.504814147949, + 95.378631591797, + 96.22135925293, + 96.628448486328, + 99.250854492188, + 99.668907165527, + 99.195091247559, + 100.0290145874, + 100.98822021484, + 101.95376586914, + 103.26971435547, + 104.46817779541, + 105.20679473877, + 106.1849899292, + 106.70650482178, + 108.0453414917, + 108.68803405762, + 109.45465087891, + 110.91656494141, + 109.37838745117, + 110.19312286377, + 110.89054107666, + 112.16345977783, + 113.54005432129, + 114.67472076416, + 115.91901397705, + 116.92639160156, + 118.16265106201, + 119.50830078125, + 120.96187591553, + 122.29209899902, + 124.30773925781, + 125.7303237915, + 126.57431030273, + 128.8072052002, + 130.21432495117, + 131.85038757324, + 134.97607421875, + 136.22640991211, + 136.44931030273, + 137.50482177734, + 138.45225524902, + 139.5228729248, + 140.59803771973, + 141.67707824707, + 142.87438964844, + 143.95710754395, + 144.92749023438, + 145.55741882324, + 146.65830993652, + 147.29898071289, + 148.17890930176, + 149.40701293945, + 150.40071105957, + 151.51042175293, + 152.84864807129, + 153.60585021973, + 154.48471069336, + 155.7119140625, + 157.16493225098, + 158.03460693359, + 159.25405883789, + 160.47047424316, + 160.87922668457, + 161.30215454102, + 162.42718505859, + 162.85820007324, + 162.95487976074, + 163.98776245117, + 164.67047119141, + 165.47090148926, + 166.73132324219, + 167.52229309082, + 169.00477600098, + 170.24440002441, + 171.93792724609, + 173.84696960449, + 175.04895019531, + 176.82572937012, + 177.55540466309, + 178.52604675293, + 178.58113098145, + 178.54368591309, + 180.25286865234, + 180.90992736816, + 182.14875793457, + 183.61158752441, + 184.14450073242, + 184.5728302002, + 185.81741333008, + 187.28511047363, + 188.39723205566, + 190.19758605957, + 191.98233032227, + 192.94879150391, + 195.07064819336, + 195.90835571289, + 200.89639282227, + 200.86282348633, + 202.13075256348, + 204.20880126953, + 203.05419921875, + 204.80026245117, + 207.3080291748, + 208.72329711914, + 210.57261657715, + 214.21580505371, + 215.67597961426, + 220.72087097168, + 218.41342163086, + 212.75346374512, + 213.23506164551, + 215.21542358398]) + +resid = np.array([np.nan, + .17000007629395, + .17130389809608, + -.03651398047805, + .11960058659315, + -.05888139456511, + .14059536159039, + .00932686589658, + -.11167634278536, + .04570783302188, + -.0108770346269, + -.00886330008507, + .10282856971025, + -.07230624556541, + .08900293707848, + -.0240114107728, + -.03996651992202, + .13645842671394, + -.03366377204657, + .10188252478838, + -.09296332299709, + -.01846401393414, + .01477065030485, + .0729955881834, + .00248436117545, + .10262141376734, + -.04228436201811, + .12465056031942, + .27647939324379, + .00560382334515, + .23561419546604, + -.1489082723856, + .02448422275484, + .12172746658325, + .10437148809433, + .18971465528011, + .06232447177172, + .25419962406158, + .11730266362429, + .10116269439459, + .2875237762928, + .14597341418266, + .12589547038078, + .20893961191177, + .17959471046925, + -.04518361017108, + .06391899287701, + .05659105628729, + -.24960128962994, + .09022761881351, + -.12118522822857, + -.10079623758793, + -.08357158303261, + -.06902338564396, + .04326653853059, + .13862533867359, + .61968916654587, + .02860714122653, + .92676383256912, + .59005337953568, + .60461646318436, + .41744044423103, + .85882639884949, + .33423033356667, + -.31093180179596, + .04102724045515, + -.06013804674149, + -.04610994458199, + -.63425624370575, + .06586220860481, + .06031560897827, + -.04437142238021, + .46668976545334, + -.09905604273081, + -.07949769496918, + .23702463507652, + .30592212080956, + .66463404893875, + .56969320774078, + .28950771689415, + .95181107521057, + 1.1148544549942, + .75411820411682, + 1.2484039068222, + 1.1690024137497, + -.1975435167551, + .24200716614723, + .6153416633606, + -.06725100427866, + .45309436321259, + -.10480991750956, + -.97863000631332, + -1.2213591337204, + .8715478181839, + -1.1508584022522, + -1.7689031362534, + -.39508575201035, + -.22900961339474, + -.18821682035923, + .14623281359673, + .03029025532305, + -.36817568540573, + -.10679569840431, + -.48499462008476, + .29349562525749, + -.34534454345703, + -.18803144991398, + .44535079598427, + -2.2165644168854, + .12161350995302, + .00687709869817, + .50946187973022, + .53653997182846, + .25995117425919, + .32527860999107, + .08098815381527, + .27360898256302, + .33735024929047, + .39170032739639, + .23812144994736, + .80789774656296, + .19225835800171, + -.33032417297363, + .92568749189377, + .09278241544962, + .28566908836365, + 1.5496014356613, + -.27607008814812, + -1.1263961791992, + -.24930645525455, + -.30482992529869, + -.15224970877171, + -.12287864089012, + -.09804095327854, + .02291300706565, + -.07438835501671, + -.15710659325123, + -.42748948931694, + .04259072244167, + -.35830733180046, + -.09898918122053, + .22108262777328, + -.00701736938208, + .0992873236537, + .28958559036255, + -.24864092469215, + -.10584850609303, + .21528913080692, + .38809850811958, + -.16492980718613, + .16538816690445, + .1459391862154, + -.57048463821411, + -.47923597693443, + .19784018397331, + -.4271782040596, + -.65820020437241, + .24511873722076, + -.0877638310194, + .02952514961362, + .42909786105156, + -.03132146969438, + .57771807909012, + .29522883892059, + .6555985212326, + .76207375526428, + .05302781611681, + .55105316638947, + -.42574247717857, + -.15540990233421, + -.92604118585587, + -.88112819194794, + .75632172822952, + -.25287514925003, + .29006350040436, + .45125409960747, + -.41159069538116, + -.44450175762177, + .32716807723045, + .48259317874908, + .11487878113985, + .70277869701385, + .60241633653641, + -.18233296275139, + .85120695829391, + -.37064728140831, + 3.2916390895844, + -1.4963974952698, + -.16283248364925, + .56923681497574, + -2.3088004589081, + .51979947090149, + 1.1197309494019, + .02996650896966, + .40969428420067, + 1.9223841428757, + -.21881568431854, + 2.9340152740479, + -3.8318600654602, + -6.239429473877, + -.08245316892862, + 1.2339268922806, + 1.1695692539215]) + +yr = np.array([np.nan, + .17000007629395, + .17130389809608, + -.03651398047805, + .11960058659315, + -.05888139456511, + .14059536159039, + .00932686589658, + -.11167634278536, + .04570783302188, + -.0108770346269, + -.00886330008507, + .10282856971025, + -.07230624556541, + .08900293707848, + -.0240114107728, + -.03996651992202, + .13645842671394, + -.03366377204657, + .10188252478838, + -.09296332299709, + -.01846401393414, + .01477065030485, + .0729955881834, + .00248436117545, + .10262141376734, + -.04228436201811, + .12465056031942, + .27647939324379, + .00560382334515, + .23561419546604, + -.1489082723856, + .02448422275484, + .12172746658325, + .10437148809433, + .18971465528011, + .06232447177172, + .25419962406158, + .11730266362429, + .10116269439459, + .2875237762928, + .14597341418266, + .12589547038078, + .20893961191177, + .17959471046925, + -.04518361017108, + .06391899287701, + .05659105628729, + -.24960128962994, + .09022761881351, + -.12118522822857, + -.10079623758793, + -.08357158303261, + -.06902338564396, + .04326653853059, + .13862533867359, + .61968916654587, + .02860714122653, + .92676383256912, + .59005337953568, + .60461646318436, + .41744044423103, + .85882639884949, + .33423033356667, + -.31093180179596, + .04102724045515, + -.06013804674149, + -.04610994458199, + -.63425624370575, + .06586220860481, + .06031560897827, + -.04437142238021, + .46668976545334, + -.09905604273081, + -.07949769496918, + .23702463507652, + .30592212080956, + .66463404893875, + .56969320774078, + .28950771689415, + .95181107521057, + 1.1148544549942, + .75411820411682, + 1.2484039068222, + 1.1690024137497, + -.1975435167551, + .24200716614723, + .6153416633606, + -.06725100427866, + .45309436321259, + -.10480991750956, + -.97863000631332, + -1.2213591337204, + .8715478181839, + -1.1508584022522, + -1.7689031362534, + -.39508575201035, + -.22900961339474, + -.18821682035923, + .14623281359673, + .03029025532305, + -.36817568540573, + -.10679569840431, + -.48499462008476, + .29349562525749, + -.34534454345703, + -.18803144991398, + .44535079598427, + -2.2165644168854, + .12161350995302, + .00687709869817, + .50946187973022, + .53653997182846, + .25995117425919, + .32527860999107, + .08098815381527, + .27360898256302, + .33735024929047, + .39170032739639, + .23812144994736, + .80789774656296, + .19225835800171, + -.33032417297363, + .92568749189377, + .09278241544962, + .28566908836365, + 1.5496014356613, + -.27607008814812, + -1.1263961791992, + -.24930645525455, + -.30482992529869, + -.15224970877171, + -.12287864089012, + -.09804095327854, + .02291300706565, + -.07438835501671, + -.15710659325123, + -.42748948931694, + .04259072244167, + -.35830733180046, + -.09898918122053, + .22108262777328, + -.00701736938208, + .0992873236537, + .28958559036255, + -.24864092469215, + -.10584850609303, + .21528913080692, + .38809850811958, + -.16492980718613, + .16538816690445, + .1459391862154, + -.57048463821411, + -.47923597693443, + .19784018397331, + -.4271782040596, + -.65820020437241, + .24511873722076, + -.0877638310194, + .02952514961362, + .42909786105156, + -.03132146969438, + .57771807909012, + .29522883892059, + .6555985212326, + .76207375526428, + .05302781611681, + .55105316638947, + -.42574247717857, + -.15540990233421, + -.92604118585587, + -.88112819194794, + .75632172822952, + -.25287514925003, + .29006350040436, + .45125409960747, + -.41159069538116, + -.44450175762177, + .32716807723045, + .48259317874908, + .11487878113985, + .70277869701385, + .60241633653641, + -.18233296275139, + .85120695829391, + -.37064728140831, + 3.2916390895844, + -1.4963974952698, + -.16283248364925, + .56923681497574, + -2.3088004589081, + .51979947090149, + 1.1197309494019, + .02996650896966, + .40969428420067, + 1.9223841428757, + -.21881568431854, + 2.9340152740479, + -3.8318600654602, + -6.239429473877, + -.08245316892862, + 1.2339268922806, + 1.1695692539215]) + +mse = np.array([ 1.1112809181213, + .6632194519043, + .65879660844803, + .65575885772705, + .65364873409271, + .65217137336731, + .65113133192062, + .6503963470459, + .64987552165985, + .64950579404831, + .64924287796021, + .64905577898026, + .64892256259918, + .64882761240005, + .64875996112823, + .64871168136597, + .64867728948593, + .64865279197693, + .64863526821136, + .64862281084061, + .64861387014389, + .64860755205154, + .64860302209854, + .64859980344772, + .64859747886658, + .64859586954117, + .64859467744827, + .64859384298325, + .6485932469368, + .64859282970428, + .64859253168106, + .64859229326248, + .64859211444855, + .64859199523926, + .64859193563461, + .64859187602997, + .64859187602997, + .64859181642532, + .64859181642532, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068, + .64859175682068]) + +stdp = np.array([ 0, + 0, + .02869686298072, + .05651443824172, + .0503994859755, + .06887971609831, + .05940540507436, + .08067328482866, + .08167565613985, + .06429278105497, + .07087650150061, + .06886467337608, + .06716959923506, + .08230647444725, + .07099691033363, + .08401278406382, + .07996553182602, + .07354256510735, + .09366323798895, + .08811800926924, + .10296355187893, + .08846370875835, + .0852297320962, + .08700425922871, + .09751411527395, + .09737934917212, + .11228405684233, + .1053489819169, + .12352022528648, + .16439816355705, + .1643835157156, + .19891132414341, + .17551273107529, + .17827558517456, + .19562774896622, + .21028305590153, + .23767858743668, + .24580039083958, + .28269505500793, + .29883882403374, + .31247469782829, + .35402658581734, + .37410452961922, + .39106267690659, + .42040377855301, + .44518512487411, + .43608102202415, + .44340893626213, + .44959822297096, + .40977239608765, + .42118826508522, + .40079545974731, + .38357082009315, + .36902260780334, + .35673499107361, + .36137464642525, + .38031083345413, + .47139286994934, + .47323387861252, + .60994738340378, + .69538277387619, + .7825602889061, + .84117436408997, + .9657689332962, + 1.0109325647354, + .95897275209427, + .96013957262039, + .9461076259613, + .9342554807663, + .83413934707642, + .83968591690063, + .84437066316605, + .83330947160721, + .8990553021431, + .87949693202972, + .86297762393951, + .89407861232758, + .93536442518234, + 1.0303052663803, + 1.1104937791824, + 1.1481873989105, + 1.2851470708847, + 1.4458787441254, + 1.5515991449356, + 1.7309991121292, + 1.8975404500961, + 1.8579913377762, + 1.8846583366394, + 1.9672524929047, + 1.9469071626663, + 2.0048115253448, + 1.9786299467087, + 1.8213576078415, + 1.6284521818161, + 1.7508568763733, + 1.5689061880112, + 1.2950873374939, + 1.2290096282959, + 1.1882168054581, + 1.1537625789642, + 1.1697143316269, + 1.1681711673737, + 1.106795668602, + 1.0849931240082, + 1.006507396698, + 1.0453414916992, + .98803448677063, + .95465070009232, + 1.0165599584579, + .67838954925537, + .69311982393265, + .69054269790649, + .76345545053482, + .84005492925644, + .87471830844879, + .91901183128357, + .92638796567917, + .96265280246735, + 1.0083012580872, + 1.0618740320206, + 1.0921038389206, + 1.2077431678772, + 1.2303256988525, + 1.174311041832, + 1.3072115182877, + 1.314337015152, + 1.3503924608231, + 1.5760731697083, + 1.5264053344727, + 1.34929728508, + 1.304829955101, + 1.2522557973862, + 1.222869515419, + 1.198047041893, + 1.1770839691162, + 1.1743944883347, + 1.1571066379547, + 1.1274864673615, + 1.0574153661728, + 1.058304309845, + .99898308515549, + .9789143204689, + 1.0070173740387, + 1.000718832016, + 1.0104174613953, + 1.0486439466476, + 1.0058424472809, + .98470783233643, + 1.0119106769562, + 1.0649236440659, + 1.0346088409424, + 1.0540577173233, + 1.0704846382141, + .97923594713211, + .90216588973999, + .9271782040596, + .85819715261459, + .75488126277924, + .78776079416275, + .77047789096832, + .77089905738831, + .8313245177269, + .82229107618332, + .90476810932159, + .94439232349396, + 1.0379292964935, + 1.1469690799713, + 1.1489590406418, + 1.2257302999496, + 1.1554099321365, + 1.1260533332825, + .9811190366745, + .8436843752861, + .95287209749222, + .90993344783783, + .94875508546829, + 1.0115815401077, + .94450175762177, + .87282890081406, + .91741597652435, + .98511207103729, + .9972335100174, + 1.0975805521011, + 1.1823329925537, + 1.1487929821014, + 1.270641207695, + 1.2083609104156, + 1.696394443512, + 1.4628355503082, + 1.4307631254196, + 1.5087975263596, + 1.1542117595673, + 1.2262620925903, + 1.3880327939987, + 1.3853038549423, + 1.4396153688431, + 1.7208145856857, + 1.678991317749, + 2.110867023468, + 1.524417757988, + .57946246862411, + .56406193971634, + .74643105268478]) + +icstats = np.array([ 202, + np.nan, + -242.89663276735, + 3, + 491.79326553469, + 501.7180686269]) + +class Bunch(dict): + def __init__(self, **kw): + dict.__init__(self, kw) + self.__dict__ = self + + +results = Bunch(llf=llf, nobs=nobs, k=k, k_exog=k_exog, sigma=sigma, chi2=chi2, df_model=df_model, k_ar=k_ar, k_ma=k_ma, params=params, cov_params=cov_params, xb=xb, y=y, resid=resid, yr=yr, mse=mse, stdp=stdp, icstats=icstats, ) + diff --git a/statsmodels/tsa/tests/results/arima111nc_results.py b/statsmodels/tsa/tests/results/arima111nc_results.py new file mode 100644 index 0000000..cd61736 --- /dev/null +++ b/statsmodels/tsa/tests/results/arima111nc_results.py @@ -0,0 +1,1273 @@ +import numpy as np + +llf = np.array([-243.77512585356]) + +nobs = np.array([ 202]) + +k = np.array([ 3]) + +k_exog = np.array([ 1]) + +sigma = np.array([ .80556855709271]) + +chi2 = np.array([ 14938.241729056]) + +df_model = np.array([ 2]) + +k_ar = np.array([ 1]) + +k_ma = np.array([ 1]) + +params = np.array([ .99034248845249, + -.83659509233745, + .80556855709271]) + +cov_params = np.array([ .00009906057555, + -.00026616895902, + .00007867120825, + -.00026616895902, + .00137590666911, + -.0001403880509, + .00007867120825, + -.0001403880509, + .0002129852258]).reshape(3,3) + +xb = np.array([ 0, + 0, + .10457526892424, + .14047028124332, + .10415132343769, + .11891452968121, + .09492295235395, + .11409470438957, + .1086763292551, + .08389142900705, + .08740901201963, + .08212262392044, + .07780049741268, + .09159570932388, + .07793674618006, + .08996207267046, + .08444581180811, + .07675409317017, + .09658851474524, + .09001308679581, + .10454939305782, + .08898131549358, + .08520055562258, + .08665482699871, + .09710033237934, + .09660832583904, + .11157563328743, + .10410477221012, + .12245775014162, + .16395011544228, + .16329728066921, + .19811384379864, + .1734282374382, + .17583830654621, + .19323042035103, + .20777989923954, + .23532645404339, + .24299769103527, + .28016451001167, + .29588291049004, + .30903342366219, + .35078409314156, + .37033796310425, + .38669663667679, + .41575729846954, + .44006872177124, + .42965853214264, + .43632391095161, + .44190016388893, + .40044051408768, + .41188025474548, + .3907016813755, + .37298321723938, + .3581600189209, + .3457590341568, + .35075950622559, + .37031736969948, + .46355310082436, + .46467992663383, + .60399496555328, + .68979620933533, + .77695161104202, + .8344908952713, + .95950168371201, + 1.0025858879089, + .94638174772263, + .94548571109772, + .92936158180237, + .91587167978287, + .81233781576157, + .81797075271606, + .8226832151413, + .81125050783157, + .87855970859528, + .85799652338028, + .84079349040985, + .87252616882324, + .9144481420517, + 1.0110183954239, + 1.0918086767197, + 1.1286484003067, + 1.2670909166336, + 1.4290360212326, + 1.533768415451, + 1.7136362791061, + 1.8794873952866, + 1.8337399959564, + 1.8569672107697, + 1.9378981590271, + 1.9133563041687, + 1.969698548317, + 1.939960360527, + 1.7767087221146, + 1.5786340236664, + 1.7050459384918, + 1.5186812877655, + 1.2397723197937, + 1.1755603551865, + 1.1372153759003, + 1.1051361560822, + 1.1244224309921, + 1.1251838207245, + 1.06432056427, + 1.0441527366638, + .96578127145767, + 1.0078399181366, + .95077663660049, + .91841346025467, + .98358678817749, + .63836628198624, + .65705251693726, + .65730959177017, + .73439955711365, + .81426596641541, + .85033398866653, + .89588165283203, + .90323758125305, + .94014054536819, + .98638904094696, + 1.040454864502, + 1.0703103542328, + 1.1875365972519, + 1.2087339162827, + 1.1495937108994, + 1.2846138477325, + 1.2899470329285, + 1.3251601457596, + 1.5544888973236, + 1.5003498792648, + 1.316685795784, + 1.2706536054611, + 1.2167699337006, + 1.1870667934418, + 1.1622149944305, + 1.1414264440536, + 1.1394081115723, + 1.1223464012146, + 1.0926969051361, + 1.0217674970627, + 1.0239287614822, + .96423649787903, + .94504725933075, + .97511827945709, + .96952658891678, + .98022425174713, + 1.0199228525162, + .97626084089279, + .95510673522949, + .98353403806686, + 1.0380674600601, + 1.0068138837814, + 1.0267919301987, + 1.0435055494308, + .94986528158188, + .87152636051178, + .89823776483536, + .82833498716354, + .72372996807098, + .75921636819839, + .74277937412262, + .74440395832062, + .80726110935211, + .79834908246994, + .88314270973206, + .92332923412323, + 1.0184471607208, + 1.12877368927, + 1.1288229227066, + 1.2057402133942, + 1.1317123174667, + 1.100532412529, + .95145136117935, + .81135284900665, + .92477059364319, + .88128125667572, + .92177194356918, + .98639768362045, + .91746246814728, + .84441828727722, + .89093261957169, + .96059763431549, + .97275197505951, + 1.0751719474792, + 1.1608537435532, + 1.124911904335, + 1.2485905885696, + 1.1829364299774, + 1.6815021038055, + 1.4374854564667, + 1.4024653434753, + 1.4807903766632, + 1.1158236265182, + 1.1908674240112, + 1.3569641113281, + 1.3532432317734, + 1.4080929756165, + 1.6949023008347, + 1.6488753557205, + 2.0886788368225, + 1.4827802181244, + .51556593179703, + .5077338218689, + .70120370388031]) + +y = np.array([np.nan, + 28.979999542236, + 29.25457572937, + 29.49047088623, + 29.474151611328, + 29.65891456604, + 29.64492225647, + 29.864093780518, + 29.948677062988, + 29.893890380859, + 30.00740814209, + 30.062122344971, + 30.11780166626, + 30.301595687866, + 30.29793548584, + 30.469961166382, + 30.524446487427, + 30.556753158569, + 30.786588668823, + 30.840013504028, + 31.044549942017, + 31.038982391357, + 31.105201721191, + 31.206655502319, + 31.377101898193, + 31.476608276367, + 31.691576004028, + 31.754104614258, + 32.002456665039, + 32.443950653076, + 32.613296508789, + 33.048110961914, + 33.073429107666, + 33.27583694458, + 33.593231201172, + 33.907779693604, + 34.33532333374, + 34.642997741699, + 35.180164337158, + 35.595882415771, + 36.009033203125, + 36.650783538818, + 37.170337677002, + 37.686695098877, + 38.315757751465, + 38.94006729126, + 39.329658508301, + 39.836326599121, + 40.341899871826, + 40.500438690186, + 41.011878967285, + 41.290702819824, + 41.572982788086, + 41.85816192627, + 42.14575958252, + 42.550758361816, + 43.070316314697, + 44.163555145264, + 44.664680480957, + 46.203994750977, + 47.489795684814, + 48.876949310303, + 50.134490966797, + 51.959503173828, + 53.302585601807, + 53.946380615234, + 54.945484161377, + 55.829364776611, + 56.715869903564, + 56.912334442139, + 57.817970275879, + 58.722682952881, + 59.511249542236, + 60.878559112549, + 61.657997131348, + 62.44079208374, + 63.572528839111, + 64.814453125, + 66.511016845703, + 68.19181060791, + 69.628646850586, + 71.867088317871, + 74.429039001465, + 76.733764648438, + 79.713638305664, + 82.779487609863, + 84.433738708496, + 86.55696105957, + 89.137893676758, + 91.01335144043, + 93.469696044922, + 95.339958190918, + 96.176712036133, + 96.578636169434, + 99.205047607422, + 99.618682861328, + 99.139770507813, + 99.975563049316, + 100.9372177124, + 101.9051361084, + 103.22441864014, + 104.42518615723, + 105.16432189941, + 106.14414978027, + 106.66577911377, + 108.00784301758, + 108.65077209473, + 109.41841125488, + 110.88359069824, + 109.33836364746, + 110.15705108643, + 110.85730743408, + 112.13439941406, + 113.51425933838, + 114.65033721924, + 115.89588165283, + 116.90323638916, + 118.14013671875, + 119.48638916016, + 120.94045257568, + 122.27030944824, + 124.28753662109, + 125.70873260498, + 126.54959869385, + 128.78460693359, + 130.18994140625, + 131.82516479492, + 134.95448303223, + 136.20034790039, + 136.41668701172, + 137.47065734863, + 138.41676330566, + 139.48707580566, + 140.56221008301, + 141.64143371582, + 142.83940124512, + 143.92234802246, + 144.89270019531, + 145.52177429199, + 146.62393188477, + 147.2642364502, + 148.14505004883, + 149.37510681152, + 150.36952209473, + 151.48022460938, + 152.81993103027, + 153.57626342773, + 154.45510864258, + 155.68353271484, + 157.13807678223, + 158.00682067871, + 159.22679138184, + 160.4434967041, + 160.84985351563, + 161.27151489258, + 162.39823913574, + 162.82833862305, + 162.92372131348, + 163.95921325684, + 164.64277648926, + 165.44439697266, + 166.70726013184, + 167.49835205078, + 168.98315429688, + 170.22332763672, + 171.91844177246, + 173.82876586914, + 175.02882385254, + 176.80574035645, + 177.53170776367, + 178.50051879883, + 178.55145263672, + 178.51135253906, + 180.22477722168, + 180.88128662109, + 182.12176513672, + 183.58641052246, + 184.1174621582, + 184.54441833496, + 185.79092407227, + 187.2606048584, + 188.37274169922, + 190.17517089844, + 191.96086120605, + 192.92491149902, + 195.04859924316, + 195.88293457031, + 200.88150024414, + 200.8374786377, + 202.10246276855, + 204.18078613281, + 203.01582336426, + 204.76487731934, + 207.27696228027, + 208.69123840332, + 210.54109191895, + 214.18989562988, + 215.64587402344, + 220.69868469238, + 218.37178039551, + 212.68955993652, + 213.17874145508, + 215.1701965332]) + +resid = np.array([np.nan, + .17000007629395, + .09542549401522, + -.12046983093023, + .06584875285625, + -.108916208148, + .1050778105855, + -.02409455552697, + -.13867701590061, + .02610917761922, + -.02740954607725, + -.02212125435472, + .09219767153263, + -.08159548044205, + .08206310123205, + -.02996070124209, + -.04444679990411, + .13324689865112, + -.03658904880285, + .09998744726181, + -.09454916417599, + -.01898162066936, + .01479982770979, + .0733450204134, + .00289814220741, + .10339243710041, + -.04157593473792, + .12589477002621, + .27754187583923, + .00605186540633, + .23670043051243, + -.14811079204082, + .02656871080399, + .1241647452116, + .10676880925894, + .1922178119421, + .06467659771442, + .25700229406357, + .11983319371939, + .10411861538887, + .29096505045891, + .14921590685844, + .12966203689575, + .21330565214157, + .18424116075039, + -.0400672107935, + .07034146040678, + .06367607414722, + -.24190320074558, + .0995594933629, + -.11187721043825, + -.09070245176554, + -.07298398017883, + -.05816079676151, + .05424249917269, + .14924050867558, + .6296826004982, + .03644690662622, + .93531775474548, + .59600579738617, + .61020302772522, + .42304915189743, + .86550986766815, + .34049755334854, + -.30258512496948, + .05361825972795, + -.0454841889441, + -.02936388924718, + -.61587244272232, + .0876636877656, + .082030788064, + -.0226839594543, + .48874869942665, + -.07856046408415, + -.05799730122089, + .25920879840851, + .32747456431389, + .6855503320694, + .5889800786972, + .30819287896156, + .97135013341904, + 1.1329106092453, + .77096086740494, + 1.2662346363068, + 1.1863652467728, + -.17949041724205, + .26625844836235, + .64303278923035, + -.03789660334587, + .48664516210556, + -.06969699263573, + -.93996042013168, + -1.1767102479935, + .92136597633362, + -1.1050474643707, + -1.7186782360077, + -.33977076411247, + -.17556031048298, + -.13721539080143, + .19485920667648, + .07558213919401, + -.32518845796585, + -.06432051956654, + -.4441542327404, + .33422181010246, + -.30784299969673, + -.15077359974384, + .48158806562424, + -2.1835913658142, + .16163675487041, + .04294444993138, + .54269498586655, + .56559586524963, + .2857401072979, + .34966295957565, + .10411833971739, + .29675936698914, + .35986250638962, + .41361248493195, + .25954058766365, + .82969123125076, + .21246488392353, + -.30873239040375, + .9504047036171, + .11538010835648, + .31005910038948, + 1.5748337507248, + -.25448590517044, + -1.1003407239914, + -.21669489145279, + -.27065354585648, + -.11676382273436, + -.08707597851753, + -.06220890209079, + .05857050418854, + -.039402063936, + -.12234635651112, + -.39269989728928, + .07823857665062, + -.32393181324005, + -.06424260139465, + .25494971871376, + .02488171122968, + .13047952950001, + .31977880001068, + -.21991983056068, + -.07626695930958, + .24489018321037, + .41647511720657, + -.13807360827923, + .19318304955959, + .17320497334003, + -.54350554943085, + -.4498653113842, + .22847975790501, + -.39823773503304, + -.62833803892136, + .27627000212669, + -.05921940878034, + .05722366645932, + .45559296011925, + -.00725806690753, + .6016600728035, + .31685426831245, + .67666161060333, + .78155589103699, + .07122328877449, + .57118928432465, + -.40575236082077, + -.1317123323679, + -.90052020549774, + -.85146051645279, + .78865325450897, + -.224773645401, + .31871569156647, + .47823718190193, + -.38640683889389, + -.41746246814728, + .35557863116264, + .50907653570175, + .13939322531223, + .72726023197174, + .62482494115829, + -.16085371375084, + .87508809566498, + -.34859669208527, + 3.3170635700226, + -1.4815051555634, + -.1374823898077, + .59753465652466, + -2.280793428421, + .5581876039505, + 1.155125617981, + .06103510409594, + .44175490736961, + 1.9539065361023, + -.19290342926979, + 2.9641311168671, + -3.8096718788147, + -6.1977920532227, + -.01855664327741, + 1.2902550697327, + 1.2147966623306]) + +yr = np.array([np.nan, + .17000007629395, + .09542549401522, + -.12046983093023, + .06584875285625, + -.108916208148, + .1050778105855, + -.02409455552697, + -.13867701590061, + .02610917761922, + -.02740954607725, + -.02212125435472, + .09219767153263, + -.08159548044205, + .08206310123205, + -.02996070124209, + -.04444679990411, + .13324689865112, + -.03658904880285, + .09998744726181, + -.09454916417599, + -.01898162066936, + .01479982770979, + .0733450204134, + .00289814220741, + .10339243710041, + -.04157593473792, + .12589477002621, + .27754187583923, + .00605186540633, + .23670043051243, + -.14811079204082, + .02656871080399, + .1241647452116, + .10676880925894, + .1922178119421, + .06467659771442, + .25700229406357, + .11983319371939, + .10411861538887, + .29096505045891, + .14921590685844, + .12966203689575, + .21330565214157, + .18424116075039, + -.0400672107935, + .07034146040678, + .06367607414722, + -.24190320074558, + .0995594933629, + -.11187721043825, + -.09070245176554, + -.07298398017883, + -.05816079676151, + .05424249917269, + .14924050867558, + .6296826004982, + .03644690662622, + .93531775474548, + .59600579738617, + .61020302772522, + .42304915189743, + .86550986766815, + .34049755334854, + -.30258512496948, + .05361825972795, + -.0454841889441, + -.02936388924718, + -.61587244272232, + .0876636877656, + .082030788064, + -.0226839594543, + .48874869942665, + -.07856046408415, + -.05799730122089, + .25920879840851, + .32747456431389, + .6855503320694, + .5889800786972, + .30819287896156, + .97135013341904, + 1.1329106092453, + .77096086740494, + 1.2662346363068, + 1.1863652467728, + -.17949041724205, + .26625844836235, + .64303278923035, + -.03789660334587, + .48664516210556, + -.06969699263573, + -.93996042013168, + -1.1767102479935, + .92136597633362, + -1.1050474643707, + -1.7186782360077, + -.33977076411247, + -.17556031048298, + -.13721539080143, + .19485920667648, + .07558213919401, + -.32518845796585, + -.06432051956654, + -.4441542327404, + .33422181010246, + -.30784299969673, + -.15077359974384, + .48158806562424, + -2.1835913658142, + .16163675487041, + .04294444993138, + .54269498586655, + .56559586524963, + .2857401072979, + .34966295957565, + .10411833971739, + .29675936698914, + .35986250638962, + .41361248493195, + .25954058766365, + .82969123125076, + .21246488392353, + -.30873239040375, + .9504047036171, + .11538010835648, + .31005910038948, + 1.5748337507248, + -.25448590517044, + -1.1003407239914, + -.21669489145279, + -.27065354585648, + -.11676382273436, + -.08707597851753, + -.06220890209079, + .05857050418854, + -.039402063936, + -.12234635651112, + -.39269989728928, + .07823857665062, + -.32393181324005, + -.06424260139465, + .25494971871376, + .02488171122968, + .13047952950001, + .31977880001068, + -.21991983056068, + -.07626695930958, + .24489018321037, + .41647511720657, + -.13807360827923, + .19318304955959, + .17320497334003, + -.54350554943085, + -.4498653113842, + .22847975790501, + -.39823773503304, + -.62833803892136, + .27627000212669, + -.05921940878034, + .05722366645932, + .45559296011925, + -.00725806690753, + .6016600728035, + .31685426831245, + .67666161060333, + .78155589103699, + .07122328877449, + .57118928432465, + -.40575236082077, + -.1317123323679, + -.90052020549774, + -.85146051645279, + .78865325450897, + -.224773645401, + .31871569156647, + .47823718190193, + -.38640683889389, + -.41746246814728, + .35557863116264, + .50907653570175, + .13939322531223, + .72726023197174, + .62482494115829, + -.16085371375084, + .87508809566498, + -.34859669208527, + 3.3170635700226, + -1.4815051555634, + -.1374823898077, + .59753465652466, + -2.280793428421, + .5581876039505, + 1.155125617981, + .06103510409594, + .44175490736961, + 1.9539065361023, + -.19290342926979, + 2.9641311168671, + -3.8096718788147, + -6.1977920532227, + -.01855664327741, + 1.2902550697327, + 1.2147966623306]) + +mse = np.array([ 1.4469859600067, + 1.4469859600067, + .89943557977676, + .77543312311172, + .72303003072739, + .69548159837723, + .67933452129364, + .6692613363266, + .66273111104965, + .65839165449142, + .65546035766602, + .6534583568573, + .65208071470261, + .65112781524658, + .65046626329422, + .65000593662262, + .64968502521515, + .64946103096008, + .64930462837219, + .64919525384903, + .64911878108978, + .64906531572342, + .6490278840065, + .64900171756744, + .6489834189415, + .64897060394287, + .64896160364151, + .64895534515381, + .6489509344101, + .64894789457321, + .64894568920135, + .64894419908524, + .64894318580627, + .64894241094589, + .64894187450409, + .64894151687622, + .64894127845764, + .64894109964371, + .64894098043442, + .64894092082977, + .64894086122513, + .64894080162048, + .64894074201584, + .64894074201584, + .64894074201584, + .64894074201584, + .64894074201584, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119, + .64894068241119]) + +stdp = np.array([ .88084751367569, + .88084751367569, + .65303039550781, + .55365419387817, + .45908725261688, + .42810925841331, + .37837743759155, + .37686342000961, + .35719576478004, + .3220648765564, + .31943875551224, + .30907514691353, + .30120712518692, + .31383177638054, + .29652059078217, + .30856171250343, + .30095273256302, + .29171526432037, + .31331890821457, + .30463594198227, + .31990340352058, + .30126947164536, + .29703867435455, + .29884466528893, + .31037190556526, + .30912432074547, + .32505416870117, + .31537705659866, + .33494210243225, + .37874156236649, + .37366089224815, + .40859284996986, + .37640652060509, + .37692713737488, + .39422073960304, + .40755322575569, + .43472331762314, + .43878075480461, + .47569087147713, + .48725643754005, + .49617394804955, + .53683114051819, + .55128628015518, + .56243091821671, + .58791494369507, + .60756206512451, + .58892780542374, + .59145200252533, + .59339815378189, + .54422444105148, + .55698639154434, + .53304374217987, + .51458370685577, + .50035130977631, + .48937830328941, + .49780988693237, + .52120143175125, + .62369203567505, + .6182547211647, + .76608312129974, + .84627467393875, + .92499214410782, + .96879118680954, + 1.0870156288147, + 1.1105998754501, + 1.0274360179901, + 1.013991355896, + .98673474788666, + .96571969985962, + .84817039966583, + .85888928174973, + .86715340614319, + .85663330554962, + .93297851085663, + .90738350152969, + .88765007257462, + .92311006784439, + .96734017133713, + 1.0690053701401, + 1.1473876237869, + 1.1740373373032, + 1.3128218650818, + 1.4704967737198, + 1.5582785606384, + 1.7273052930832, + 1.8745132684708, + 1.7853132486343, + 1.7841064929962, + 1.850741147995, + 1.800768494606, + 1.8466963768005, + 1.7976499795914, + 1.6078149080276, + 1.3938897848129, + 1.5498898029327, + 1.3492304086685, + 1.059396147728, + 1.0217411518097, + 1.0096007585526, + 1.0002405643463, + 1.0436969995499, + 1.0603114366531, + 1.0055546760559, + .99712115526199, + .92305397987366, + .9841884970665, + .92997401952744, + .90506774187088, + .9872123003006, + .61137217283249, + .65943044424057, + .67959040403366, + .77959072589874, + .87357920408249, + .91226226091385, + .95897603034973, + .96120971441269, + .99671375751495, + 1.0409790277481, + 1.0919979810715, + 1.1144404411316, + 1.2330915927887, + 1.2401138544083, + 1.161071896553, + 1.3028255701065, + 1.2938764095306, + 1.3207612037659, + 1.5610725879669, + 1.4760913848877, + 1.258552312851, + 1.2090681791306, + 1.1540271043777, + 1.12848341465, + 1.1087870597839, + 1.0936040878296, + 1.0987877845764, + 1.0858948230743, + 1.0590622425079, + .98770052194595, + 1.0002481937408, + .94235575199127, + .93150353431702, + .97381073236465, + .9726470708847, + .98864215612411, + 1.0347559452057, + .98585307598114, + .96503925323486, + .9996662735939, + 1.0601476430893, + 1.022319316864, + 1.043828368187, + 1.0604115724564, + .95495897531509, + .87365657091141, + .91232192516327, + .84078407287598, + .73495537042618, + .78849309682846, + .77909576892853, + .78874284029007, + .8637443780899, + .8540056347847, + .94784545898438, + .98641014099121, + 1.0837067365646, + 1.1925053596497, + 1.1750392913818, + 1.2460317611694, + 1.1487410068512, + 1.1075156927109, + .94060403108597, + .7950227856636, + .93615245819092, + .89293897151947, + .94407802820206, + 1.0172899961472, + .93860250711441, + .86104601621628, + .91948908567429, + .99833220243454, + 1.008442401886, + 1.1175880432129, + 1.2017351388931, + 1.1483734846115, + 1.2761443853378, + 1.188849568367, + 1.7296310663223, + 1.4202431440353, + 1.3675138950348, + 1.445098400116, + 1.031960606575, + 1.1313284635544, + 1.3214453458786, + 1.3112732172012, + 1.367110490799, + 1.674845457077, + 1.5979281663895, + 2.064112663269, + 1.3536450862885, + .30015936493874, + .36831066012383, + .64060544967651]) + +icstats = np.array([ 202, + np.nan, + -243.77512585356, + 3, + 493.55025170713, + 503.47505479933]) + +class Bunch(dict): + def __init__(self, **kw): + dict.__init__(self, kw) + self.__dict__ = self + + +results = Bunch(llf=llf, nobs=nobs, k=k, k_exog=k_exog, sigma=sigma, chi2=chi2, df_model=df_model, k_ar=k_ar, k_ma=k_ma, params=params, cov_params=cov_params, xb=xb, y=y, resid=resid, yr=yr, mse=mse, stdp=stdp, icstats=icstats, ) + diff --git a/statsmodels/tsa/tests/results/arima112_css_results.py b/statsmodels/tsa/tests/results/arima112_css_results.py new file mode 100644 index 0000000..b4785c4 --- /dev/null +++ b/statsmodels/tsa/tests/results/arima112_css_results.py @@ -0,0 +1,1291 @@ +import numpy as np + +llf = np.array([ -244.3852892951]) + +nobs = np.array([ 202]) + +k = np.array([ 5]) + +k_exog = np.array([ 1]) + +sigma = np.array([ .81130812929037]) + +chi2 = np.array([ 73901.783883385]) + +df_model = np.array([ 3]) + +k_ar = np.array([ 1]) + +k_ma = np.array([ 2]) + +params = np.array([ .91963917600489, + -.89804855498306, + 1.3032353997768, + .30230174935463, + .65822088065264]) + +cov_params = np.array([ .00622027554245, + .00026933156699, + -.00014478009121, + -.00010527901395, + .00006880952561, + .00026933156699, + .0023661521973, + -.00263264462948, + -.00241927046074, + -.00069258998629, + -.00014478009121, + -.00263264462948, + .003637275855, + .0033625395431, + .00072507981262, + -.00010527901395, + -.00241927046074, + .0033625395431, + .00312013997649, + .00067166747844, + .00006880952561, + -.00069258998629, + .00072507981262, + .00067166747844, + .00108477120916]).reshape(5,5) + +xb = np.array([ .91963917016983, + .91963917016983, + .69261693954468, + .76115423440933, + .63710719347, + .77478265762329, + .61527073383331, + .80501782894135, + .62182641029358, + .72158020734787, + .66619211435318, + .72980058193207, + .64935982227325, + .77660953998566, + .6069877743721, + .79818457365036, + .60795724391937, + .7583304643631, + .68147450685501, + .72765469551086, + .69699174165726, + .69102382659912, + .67753201723099, + .72617518901825, + .69977235794067, + .713603079319, + .72478419542313, + .68503832817078, + .75677126646042, + .79034942388535, + .68609654903412, + .83208250999451, + .60605573654175, + .80849212408066, + .69862711429596, + .80978256464005, + .7383074760437, + .78789436817169, + .79390448331833, + .79169547557831, + .76283228397369, + .87939429283142, + .75783687829971, + .85010063648224, + .80657452344894, + .86508285999298, + .72368890047073, + .86846202611923, + .75351697206497, + .74047154188156, + .82022970914841, + .73184186220169, + .7623735666275, + .74929028749466, + .75702118873596, + .79036456346512, + .81429827213287, + 1.0007030963898, + .70464313030243, + 1.2375881671906, + .82733017206192, + 1.1780800819397, + .83767229318619, + 1.3407131433487, + .7835128903389, + .99667322635651, + .82677388191223, + 1.0330017805099, + .78713357448578, + .80603551864624, + .91298097372055, + .94862020015717, + .83088356256485, + 1.1405943632126, + .72683191299438, + 1.0197489261627, + .88344657421112, + 1.1016070842743, + 1.0485582351685, + 1.1717364788055, + .94894939661026, + 1.418029665947, + 1.2063212394714, + 1.3504880666733, + 1.4053744077682, + 1.5106836557388, + .91192328929901, + 1.4546687602997, + 1.2100585699081, + 1.2459771633148, + 1.2914154529572, + 1.1733019351959, + .80550068616867, + .88859277963638, + 1.5257360935211, + .49089628458023, + .75268715620041, + .92090040445328, + .99410575628281, + .87882828712463, + 1.1253950595856, + .89082646369934, + .9317963719368, + .90858340263367, + .82737028598785, + 1.0978132486343, + .74325948953629, + .98125350475311, + 1.0478370189667, + .03625157848001, + 1.3422871828079, + .51377469301224, + 1.3643686771393, + .70055514574051, + 1.2559896707535, + .71517109870911, + 1.1997950077057, + .75360465049744, + 1.2862613201141, + .79965251684189, + 1.2606881856918, + 1.018030166626, + 1.1752370595932, + .69517260789871, + 1.597958445549, + .65335071086884, + 1.4763361215591, + 1.2708671092987, + 1.0432199239731, + .561203956604, + 1.2630445957184, + .66821777820587, + 1.2384748458862, + .70777904987335, + 1.2246036529541, + .75373476743698, + 1.199233174324, + .69312900304794, + 1.0659650564194, + .80386221408844, + .99243313074112, + .78622406721115, + 1.1766475439072, + .74267518520355, + 1.1679803133011, + .85658311843872, + .99335825443268, + .79920876026154, + 1.1595865488052, + .92043119668961, + .98299539089203, + .94316083192825, + 1.0661553144455, + .6393609046936, + .9456650018692, + .91597771644592, + .80332309007645, + .65838772058487, + 1.1093089580536, + .68860310316086, + 1.0485997200012, + .89771980047226, + .94581252336502, + 1.0480616092682, + 1.0014315843582, + 1.1307729482651, + 1.1770483255386, + .89873492717743, + 1.2652103900909, + .66434383392334, + 1.1431220769882, + .44322970509529, + .9269899725914, + 1.0786435604095, + .82789659500122, + 1.0368362665176, + 1.0712716579437, + .70438456535339, + .88966482877731, + 1.009087562561, + 1.0887442827225, + .88976800441742, + 1.2735350131989, + 1.0157470703125, + .95522791147232, + 1.3003809452057, + .73179203271866, + 2.4736785888672, + -.25176140666008, + 1.9082181453705, + .53501582145691, + .7591078877449, + 1.0281100273132, + 1.6240043640137, + .60095232725143, + 1.6211705207825, + 1.344465970993, + 1.124480009079, + 2.1775946617126, + -.71973150968552, + -.37754261493683, + 1.2329530715942, + 1.127131819725]) + +y = np.array([np.nan, + 29.899639129639, + 29.842617034912, + 30.111154556274, + 30.007108688354, + 30.314783096313, + 30.165269851685, + 30.555017471313, + 30.461826324463, + 30.531579971313, + 30.586193084717, + 30.709800720215, + 30.689361572266, + 30.986608505249, + 30.826986312866, + 31.178184509277, + 31.047958374023, + 31.238330841064, + 31.371475219727, + 31.477655410767, + 31.636991500854, + 31.641023635864, + 31.697532653809, + 31.846176147461, + 31.979772567749, + 32.093601226807, + 32.304782867432, + 32.335037231445, + 32.636772155762, + 33.070346832275, + 33.136096954346, + 33.682079315186, + 33.506057739258, + 33.908489227295, + 34.098628997803, + 34.509784698486, + 34.838306427002, + 35.187896728516, + 35.693904876709, + 36.091693878174, + 36.462833404541, + 37.179393768311, + 37.557834625244, + 38.150100708008, + 38.706577301025, + 39.365081787109, + 39.623691558838, + 40.268463134766, + 40.653518676758, + 40.840469360352, + 41.420227050781, + 41.631843566895, + 41.962375640869, + 42.249290466309, + 42.557022094727, + 42.990364074707, + 43.514297485352, + 44.700702667236, + 44.904644012451, + 46.837585449219, + 47.627330780029, + 49.278079986572, + 50.137672424316, + 52.340713500977, + 53.083511352539, + 53.996673583984, + 54.826774597168, + 55.933002471924, + 56.587131500244, + 56.906032562256, + 57.912979125977, + 58.848621368408, + 59.530883789063, + 61.140594482422, + 61.526832580566, + 62.619747161865, + 63.583446502686, + 65.001609802246, + 66.548561096191, + 68.27173614502, + 69.448951721191, + 72.018028259277, + 74.206321716309, + 76.550483703613, + 79.405372619629, + 82.410682678223, + 83.511924743652, + 86.154663085938, + 88.410057067871, + 90.345977783203, + 92.791412353516, + 94.573303222656, + 95.205505371094, + 95.888595581055, + 99.025733947754, + 98.590896606445, + 98.652687072754, + 99.720901489258, + 100.79410552979, + 101.67883300781, + 103.22539520264, + 104.19082641602, + 105.03179168701, + 106.00858306885, + 106.52736663818, + 108.09781646729, + 108.44326019287, + 109.48125457764, + 110.94783782959, + 108.73625183105, + 110.84228515625, + 110.71376800537, + 112.7643737793, + 113.40055084229, + 115.05599212646, + 115.71517181396, + 117.19979858398, + 117.95359802246, + 119.78626251221, + 120.69965362549, + 122.46068572998, + 124.1180267334, + 125.67523956299, + 126.09517669678, + 129.09796142578, + 129.55334472656, + 131.97633361816, + 134.67086791992, + 135.74320983887, + 135.66120910645, + 137.46304321289, + 137.86820983887, + 139.53848266602, + 140.10777282715, + 141.724609375, + 142.45373535156, + 143.99923706055, + 144.49313354492, + 145.56596374512, + 146.40386962891, + 147.29243469238, + 147.98622131348, + 149.57664489746, + 150.14266967773, + 151.66798400879, + 152.65658569336, + 153.59336853027, + 154.29920959473, + 155.85958862305, + 157.02043151855, + 157.98300170898, + 159.14315795898, + 160.46615600586, + 160.53935241699, + 161.34565734863, + 162.41598510742, + 162.80332946777, + 162.85838317871, + 164.30931091309, + 164.5885925293, + 165.74859619141, + 166.7977142334, + 167.64581298828, + 169.14807128906, + 170.30143737793, + 172.03076171875, + 173.87704467773, + 174.79872131348, + 176.86521911621, + 177.06433105469, + 178.54312133789, + 178.0432434082, + 178.62698364258, + 180.37864685059, + 180.82789611816, + 182.23683166504, + 183.67127990723, + 183.90438842773, + 184.58966064453, + 185.90908813477, + 187.38874816895, + 188.2897644043, + 190.37353515625, + 191.81575012207, + 192.75523376465, + 195.10038757324, + 195.43179321289, + 201.67367553711, + 199.14823913574, + 202.60821533203, + 203.23501586914, + 202.65910339355, + 204.60211181641, + 207.54400634766, + 207.93894958496, + 210.75416564941, + 213.83946228027, + 215.12147521973, + 220.78759765625, + 216.16928100586, + 211.79644775391, + 213.90396118164, + 215.59613037109]) + +resid = np.array([np.nan, + -.74963909387589, + -.49261617660522, + -.74115377664566, + -.46710711717606, + -.76478433609009, + -.41527000069618, + -.71501767635345, + -.65182709693909, + -.61157959699631, + -.6061926484108, + -.66979920864105, + -.47936165332794, + -.76660931110382, + -.44698792695999, + -.73818320035934, + -.56795823574066, + -.54832947254181, + -.62147504091263, + -.53765416145325, + -.68699151277542, + -.6210241317749, + -.57753163576126, + -.56617534160614, + -.59977388381958, + -.51360231637955, + -.65478450059891, + -.45503878593445, + -.35677161812782, + -.62034744024277, + -.2860988676548, + -.78207945823669, + -.40605875849724, + -.50848907232285, + -.39862787723541, + -.40978488326073, + -.43830442428589, + -.28789436817169, + -.39390674233437, + -.3916939496994, + -.16283383965492, + -.37939432263374, + -.25783684849739, + -.25009834766388, + -.20657606422901, + -.46508130431175, + -.22368888556957, + -.36846202611923, + -.55352002382278, + -.24047155678272, + -.52022665739059, + -.43184259533882, + -.46237435936928, + -.44929105043411, + -.35701966285706, + -.29036456346512, + .1857016980648, + -.50070303678513, + .69535458087921, + -.03758737072349, + .47266906499863, + .02192067168653, + .86232846975327, + -.04071394726634, + -.08351214230061, + .0033267585095, + .07322765141726, + -.13300403952599, + -.48713436722755, + .09396601468325, + -.01297946088016, + -.14862097799778, + .4691156744957, + -.34059509634972, + .073167309165, + .08025334775448, + .31655418872833, + .49839133024216, + .55144023895264, + .22826506197453, + 1.1510490179062, + .9819718003273, + .9936757683754, + 1.4495149850845, + 1.4946271181107, + .18931329250336, + 1.1880751848221, + 1.0453312397003, + .68994289636612, + 1.1540243625641, + .60858601331711, + -.17330189049244, + -.20550219714642, + 1.611407160759, + -.92573761940002, + -.69089323282242, + .14731439948082, + .07909959554672, + .00589422974735, + .42116710543633, + .07460948079824, + -.09083105623722, + .06820363551378, + -.30858492851257, + .47263273596764, + -.39781630039215, + .05674355849624, + .41874802112579, + -2.2478415966034, + .76375144720078, + -.64229023456573, + .68622988462448, + -.06437320262194, + .39945095777512, + -.0559926815331, + .28482890129089, + .00020190737268, + .54639840126038, + .11374024301767, + .50034290552139, + .63931334018707, + .38197138905525, + -.27523550391197, + 1.404825925827, + -.1979645639658, + .94665539264679, + 1.4236577749252, + .02913599461317, + -.643210709095, + .53878688812256, + -.26304465532303, + .43178829550743, + -.13848400115967, + .39222705364227, + -.02460673451424, + .34627133607864, + -.19923311471939, + .00686796056107, + .03404098749161, + -.10386525094509, + -.09243924915791, + .41377285122871, + -.17664749920368, + .35733091831207, + .13202276825905, + -.05658006668091, + -.09336434304714, + .40078815817833, + .24042254686356, + -.02043732441962, + .217001542449, + .25683608651161, + -.56615537405014, + -.13936093449593, + .15434110164642, + -.41597774624825, + -.60332614183426, + .34161224961281, + -.40931203961372, + .11139994114637, + .15139718353748, + -.09771674126387, + .45419663190842, + .15193535387516, + .5985592007637, + .66923010349274, + .02294866926968, + .80127727985382, + -.46522265672684, + .33565619587898, + -.94310986995697, + -.34323886036873, + .67301613092422, + -.37864658236504, + .37210035324097, + .3631728887558, + -.47128081321716, + -.20438456535339, + .3103321492672, + .3909215927124, + .01124659087509, + .81024420261383, + .42646199464798, + -.01574708521366, + 1.044772028923, + -.40038701891899, + 3.768208026886, + -2.273681640625, + 1.5517644882202, + .09178187698126, + -1.3350188732147, + .91490334272385, + 1.317883014679, + -.20600511133671, + 1.1940457820892, + 1.7408289909363, + .15753293037415, + 3.4885265827179, + -3.8985877037048, + -3.9952800273895, + .87455189228058, + .56503582000732, + .78886848688126]) + +yr = np.array([np.nan, + -.74963909387589, + -.49261617660522, + -.74115377664566, + -.46710711717606, + -.76478433609009, + -.41527000069618, + -.71501767635345, + -.65182709693909, + -.61157959699631, + -.6061926484108, + -.66979920864105, + -.47936165332794, + -.76660931110382, + -.44698792695999, + -.73818320035934, + -.56795823574066, + -.54832947254181, + -.62147504091263, + -.53765416145325, + -.68699151277542, + -.6210241317749, + -.57753163576126, + -.56617534160614, + -.59977388381958, + -.51360231637955, + -.65478450059891, + -.45503878593445, + -.35677161812782, + -.62034744024277, + -.2860988676548, + -.78207945823669, + -.40605875849724, + -.50848907232285, + -.39862787723541, + -.40978488326073, + -.43830442428589, + -.28789436817169, + -.39390674233437, + -.3916939496994, + -.16283383965492, + -.37939432263374, + -.25783684849739, + -.25009834766388, + -.20657606422901, + -.46508130431175, + -.22368888556957, + -.36846202611923, + -.55352002382278, + -.24047155678272, + -.52022665739059, + -.43184259533882, + -.46237435936928, + -.44929105043411, + -.35701966285706, + -.29036456346512, + .1857016980648, + -.50070303678513, + .69535458087921, + -.03758737072349, + .47266906499863, + .02192067168653, + .86232846975327, + -.04071394726634, + -.08351214230061, + .0033267585095, + .07322765141726, + -.13300403952599, + -.48713436722755, + .09396601468325, + -.01297946088016, + -.14862097799778, + .4691156744957, + -.34059509634972, + .073167309165, + .08025334775448, + .31655418872833, + .49839133024216, + .55144023895264, + .22826506197453, + 1.1510490179062, + .9819718003273, + .9936757683754, + 1.4495149850845, + 1.4946271181107, + .18931329250336, + 1.1880751848221, + 1.0453312397003, + .68994289636612, + 1.1540243625641, + .60858601331711, + -.17330189049244, + -.20550219714642, + 1.611407160759, + -.92573761940002, + -.69089323282242, + .14731439948082, + .07909959554672, + .00589422974735, + .42116710543633, + .07460948079824, + -.09083105623722, + .06820363551378, + -.30858492851257, + .47263273596764, + -.39781630039215, + .05674355849624, + .41874802112579, + -2.2478415966034, + .76375144720078, + -.64229023456573, + .68622988462448, + -.06437320262194, + .39945095777512, + -.0559926815331, + .28482890129089, + .00020190737268, + .54639840126038, + .11374024301767, + .50034290552139, + .63931334018707, + .38197138905525, + -.27523550391197, + 1.404825925827, + -.1979645639658, + .94665539264679, + 1.4236577749252, + .02913599461317, + -.643210709095, + .53878688812256, + -.26304465532303, + .43178829550743, + -.13848400115967, + .39222705364227, + -.02460673451424, + .34627133607864, + -.19923311471939, + .00686796056107, + .03404098749161, + -.10386525094509, + -.09243924915791, + .41377285122871, + -.17664749920368, + .35733091831207, + .13202276825905, + -.05658006668091, + -.09336434304714, + .40078815817833, + .24042254686356, + -.02043732441962, + .217001542449, + .25683608651161, + -.56615537405014, + -.13936093449593, + .15434110164642, + -.41597774624825, + -.60332614183426, + .34161224961281, + -.40931203961372, + .11139994114637, + .15139718353748, + -.09771674126387, + .45419663190842, + .15193535387516, + .5985592007637, + .66923010349274, + .02294866926968, + .80127727985382, + -.46522265672684, + .33565619587898, + -.94310986995697, + -.34323886036873, + .67301613092422, + -.37864658236504, + .37210035324097, + .3631728887558, + -.47128081321716, + -.20438456535339, + .3103321492672, + .3909215927124, + .01124659087509, + .81024420261383, + .42646199464798, + -.01574708521366, + 1.044772028923, + -.40038701891899, + 3.768208026886, + -2.273681640625, + 1.5517644882202, + .09178187698126, + -1.3350188732147, + .91490334272385, + 1.317883014679, + -.20600511133671, + 1.1940457820892, + 1.7408289909363, + .15753293037415, + 3.4885265827179, + -3.8985877037048, + -3.9952800273895, + .87455189228058, + .56503582000732, + .78886848688126]) + +mse = np.array([ 1.8363103866577, + .82643759250641, + .69298559427261, + .67553198337555, + .67162227630615, + .67045229673386, + .66999220848083, + .66973727941513, + .66954612731934, + .66937738656998, + .66921871900558, + .66906636953354, + .66891890764236, + .66877597570419, + .66863715648651, + .66850233078003, + .66837131977081, + .66824388504028, + .6681199669838, + .66799944639206, + .6678820848465, + .66776782274246, + .66765648126602, + .66754806041718, + .66744232177734, + .66733926534653, + .66723877191544, + .66714072227478, + .66704499721527, + .66695153713226, + .66686034202576, + .66677123308182, + .66668421030045, + .66659909486771, + .66651594638824, + .66643464565277, + .66635513305664, + .66627734899521, + .66620123386383, + .66612672805786, + .6660538315773, + .66598242521286, + .66591250896454, + .66584402322769, + .66577690839767, + .66571110486984, + .66564667224884, + .66558349132538, + .66552156209946, + .66546076536179, + .66540116071701, + .66534268856049, + .66528534889221, + .6652290225029, + .66517376899719, + .6651194691658, + .66506624221802, + .6650139093399, + .66496247053146, + .66491198539734, + .66486239433289, + .66481363773346, + .6647657752037, + .66471868753433, + .66467237472534, + .66462683677673, + .66458207368851, + .66453808546066, + .66449475288391, + .6644521355629, + .66441023349762, + .66436898708344, + .66432839632034, + .66428846120834, + .66424912214279, + .66421037912369, + .66417229175568, + .66413474082947, + .66409778594971, + .66406136751175, + .66402548551559, + .66399013996124, + .66395533084869, + .6639209985733, + .66388720273972, + .66385388374329, + .66382104158401, + .66378861665726, + .6637567281723, + .66372525691986, + .66369420289993, + .66366362571716, + .66363340616226, + .66360366344452, + .66357427835464, + .66354531049728, + .66351670026779, + .66348850727081, + .6634606719017, + .66343319416046, + .66340607404709, + .66337931156158, + .66335290670395, + .66332685947418, + .66330111026764, + .66327565908432, + .66325056552887, + .66322582960129, + .66320133209229, + .66317713260651, + .6631532907486, + .66312968730927, + .66310638189316, + .66308337450027, + .66306066513062, + .66303819417953, + .66301596164703, + .66299402713776, + .6629723906517, + .66295093297958, + .66292977333069, + .66290885210037, + .66288816928864, + .66286766529083, + .66284745931625, + .66282749176025, + .66280770301819, + .6627881526947, + .66276878118515, + .66274970769882, + .66273081302643, + .66271209716797, + .66269356012344, + .6626752614975, + .66265720129013, + .66263926029205, + .66262155771255, + .66260403394699, + .66258668899536, + .66256952285767, + .66255259513855, + .66253578662872, + .66251915693283, + .66250270605087, + .6624863743782, + .66247028112411, + .66245430707932, + .66243851184845, + .66242289543152, + .66240739822388, + .66239207983017, + .6623769402504, + .66236186027527, + .66234701871872, + .66233229637146, + .66231769323349, + .66230326890945, + .66228896379471, + .66227477788925, + .66226077079773, + .6622468829155, + .66223311424255, + .6622194647789, + .66220593452454, + .66219258308411, + .66217935085297, + .66216617822647, + .66215318441391, + .66214030981064, + .66212749481201, + .66211485862732, + .66210234165192, + .66208988428116, + .66207760572433, + .66206538677216, + .66205328702927, + .66204130649567, + .66202944517136, + .66201764345169, + .66200596094131, + .66199439764023, + .66198295354843, + .66197156906128, + .66196030378342, + .66194915771484, + .66193807125092, + .66192710399628, + .66191619634628, + .66190540790558, + .66189467906952, + .66188406944275, + .66187357902527, + .66186314821243, + .66185277700424, + .66184252500534, + .66183233261108, + .66182225942612, + .66181224584579, + .66180229187012, + .66179245710373, + .66178268194199, + .66177302598953, + .66176337003708]) + +stdp = np.array([ .91963917016983, + .91963917016983, + .69261693954468, + .76115423440933, + .63710719347, + .77478265762329, + .61527073383331, + .80501782894135, + .62182641029358, + .72158020734787, + .66619211435318, + .72980058193207, + .64935982227325, + .77660953998566, + .6069877743721, + .79818457365036, + .60795724391937, + .7583304643631, + .68147450685501, + .72765469551086, + .69699174165726, + .69102382659912, + .67753201723099, + .72617518901825, + .69977235794067, + .713603079319, + .72478419542313, + .68503832817078, + .75677126646042, + .79034942388535, + .68609654903412, + .83208250999451, + .60605573654175, + .80849212408066, + .69862711429596, + .80978256464005, + .7383074760437, + .78789436817169, + .79390448331833, + .79169547557831, + .76283228397369, + .87939429283142, + .75783687829971, + .85010063648224, + .80657452344894, + .86508285999298, + .72368890047073, + .86846202611923, + .75351697206497, + .74047154188156, + .82022970914841, + .73184186220169, + .7623735666275, + .74929028749466, + .75702118873596, + .79036456346512, + .81429827213287, + 1.0007030963898, + .70464313030243, + 1.2375881671906, + .82733017206192, + 1.1780800819397, + .83767229318619, + 1.3407131433487, + .7835128903389, + .99667322635651, + .82677388191223, + 1.0330017805099, + .78713357448578, + .80603551864624, + .91298097372055, + .94862020015717, + .83088356256485, + 1.1405943632126, + .72683191299438, + 1.0197489261627, + .88344657421112, + 1.1016070842743, + 1.0485582351685, + 1.1717364788055, + .94894939661026, + 1.418029665947, + 1.2063212394714, + 1.3504880666733, + 1.4053744077682, + 1.5106836557388, + .91192328929901, + 1.4546687602997, + 1.2100585699081, + 1.2459771633148, + 1.2914154529572, + 1.1733019351959, + .80550068616867, + .88859277963638, + 1.5257360935211, + .49089628458023, + .75268715620041, + .92090040445328, + .99410575628281, + .87882828712463, + 1.1253950595856, + .89082646369934, + .9317963719368, + .90858340263367, + .82737028598785, + 1.0978132486343, + .74325948953629, + .98125350475311, + 1.0478370189667, + .03625157848001, + 1.3422871828079, + .51377469301224, + 1.3643686771393, + .70055514574051, + 1.2559896707535, + .71517109870911, + 1.1997950077057, + .75360465049744, + 1.2862613201141, + .79965251684189, + 1.2606881856918, + 1.018030166626, + 1.1752370595932, + .69517260789871, + 1.597958445549, + .65335071086884, + 1.4763361215591, + 1.2708671092987, + 1.0432199239731, + .561203956604, + 1.2630445957184, + .66821777820587, + 1.2384748458862, + .70777904987335, + 1.2246036529541, + .75373476743698, + 1.199233174324, + .69312900304794, + 1.0659650564194, + .80386221408844, + .99243313074112, + .78622406721115, + 1.1766475439072, + .74267518520355, + 1.1679803133011, + .85658311843872, + .99335825443268, + .79920876026154, + 1.1595865488052, + .92043119668961, + .98299539089203, + .94316083192825, + 1.0661553144455, + .6393609046936, + .9456650018692, + .91597771644592, + .80332309007645, + .65838772058487, + 1.1093089580536, + .68860310316086, + 1.0485997200012, + .89771980047226, + .94581252336502, + 1.0480616092682, + 1.0014315843582, + 1.1307729482651, + 1.1770483255386, + .89873492717743, + 1.2652103900909, + .66434383392334, + 1.1431220769882, + .44322970509529, + .9269899725914, + 1.0786435604095, + .82789659500122, + 1.0368362665176, + 1.0712716579437, + .70438456535339, + .88966482877731, + 1.009087562561, + 1.0887442827225, + .88976800441742, + 1.2735350131989, + 1.0157470703125, + .95522791147232, + 1.3003809452057, + .73179203271866, + 2.4736785888672, + -.25176140666008, + 1.9082181453705, + .53501582145691, + .7591078877449, + 1.0281100273132, + 1.6240043640137, + .60095232725143, + 1.6211705207825, + 1.344465970993, + 1.124480009079, + 2.1775946617126, + -.71973150968552, + -.37754261493683, + 1.2329530715942, + 1.127131819725]) + +icstats = np.array([ 202, + np.nan, + -244.3852892951, + 5, + 498.7705785902, + 515.31191707721]) + +class Bunch(dict): + def __init__(self, **kw): + dict.__init__(self, kw) + self.__dict__ = self + + +results = Bunch(llf=llf, nobs=nobs, k=k, k_exog=k_exog, sigma=sigma, chi2=chi2, df_model=df_model, k_ar=k_ar, k_ma=k_ma, params=params, cov_params=cov_params, xb=xb, y=y, resid=resid, yr=yr, mse=mse, stdp=stdp, icstats=icstats, ) + diff --git a/statsmodels/tsa/tests/results/arima112_results.py b/statsmodels/tsa/tests/results/arima112_results.py new file mode 100644 index 0000000..af78f59 --- /dev/null +++ b/statsmodels/tsa/tests/results/arima112_results.py @@ -0,0 +1,1291 @@ +import numpy as np + +llf = np.array([-245.40783909604]) + +nobs = np.array([ 202]) + +k = np.array([ 5]) + +k_exog = np.array([ 1]) + +sigma = np.array([ .8100467417583]) + +chi2 = np.array([ 2153.20304012]) + +df_model = np.array([ 3]) + +k_ar = np.array([ 1]) + +k_ma = np.array([ 2]) + +params = np.array([ .92817025087557, + -.89593490671979, + 1.3025011610587, + .30250063082791, + .8100467417583]) + +cov_params = np.array([ .00638581549851, + .0001858475428, + 2.8222806545671, + .8538806860364, + -1.1429127085819, + .0001858475428, + .00132037832566, + -.14420925344502, + -.04447007102804, + .0576156187095, + 2.8222806545671, + -.14420925344502, + 40397.568324803, + 12222.977216556, + -16359.547340433, + .8538806860364, + -.04447007102804, + 12222.977216556, + 3698.2722243412, + -4949.8609964351, + -1.1429127085819, + .0576156187095, + -16359.547340433, + -4949.8609964351, + 6625.0231409853]).reshape(5,5) + +xb = np.array([ .92817026376724, + .92817026376724, + .69511789083481, + .77192437648773, + .66135895252228, + .77525061368942, + .64687132835388, + .79659670591354, + .65842008590698, + .71215486526489, + .69971066713333, + .72092038393021, + .68201982975006, + .76510280370712, + .64253836870193, + .78239262104034, + .64609551429749, + .74087703227997, + .71774411201477, + .7119727730751, + .73067259788513, + .67785596847534, + .70898467302322, + .71334755420685, + .72984194755554, + .7017787694931, + .75292426347733, + .67507487535477, + .78219056129456, + .78040039539337, + .71250075101852, + .82028061151505, + .63505899906158, + .79452306032181, + .72773635387421, + .79555094242096, + .76685506105423, + .77427339553833, + .82101213932037, + .77917188405991, + .78917801380157, + .86641925573349, + .78457218408585, + .83697980642319, + .83281791210175, + .85224026441574, + .75030690431595, + .8551008105278, + .78025943040848, + .72790426015854, + .84552866220474, + .72061747312546, + .78669738769531, + .73868823051453, + .78071022033691, + .78002023696899, + .83737623691559, + .98988044261932, + .72882527112961, + 1.2245427370071, + .85331875085831, + 1.1637357473373, + .86477434635162, + 1.3248475790024, + .81245219707489, + .98008638620377, + .85591268539429, + 1.0162551403046, + .8165408372879, + .78947591781616, + .94166398048401, + .93266606330872, + .85924750566483, + 1.1245046854019, + .75576168298721, + 1.0030617713928, + .91267073154449, + 1.0848042964935, + 1.0778224468231, + 1.1551086902618, + .97817331552505, + 1.4012540578842, + 1.2360861301422, + 1.3335381746292, + 1.4352362155914, + 1.4941285848618, + .9415163397789, + 1.437669634819, + 1.2404690980911, + 1.2285294532776, + 1.3219480514526, + 1.1560415029526, + .83524394035339, + .87116771936417, + 1.5561962127686, + .47358739376068, + .78093349933624, + .90549737215042, + 1.0217791795731, + .86397403478622, + 1.1526786088943, + .87662625312805, + .95803648233414, + .89513635635376, + .85281348228455, + 1.0852742195129, + .76808404922485, + .96872144937515, + 1.0732915401459, + .02145584858954, + 1.3687089681625, + .50049883127213, + 1.3895837068558, + .6889950633049, + 1.2795144319534, + .7050421833992, + 1.2218985557556, + .74481928348541, + 1.3074514865875, + .7919961810112, + 1.2807723283768, + 1.0120536088943, + 1.1938916444778, + .68923074007034, + 1.6174983978271, + .64740318059921, + 1.4949930906296, + 1.2678960561752, + 1.0586776733398, + .55762887001038, + 1.2790743112564, + .66515874862671, + 1.2538269758224, + .70554333925247, + 1.2391568422318, + .75241559743881, + 1.2129040956497, + .69235223531723, + 1.0785228013992, + .8043577671051, + 1.0037930011749, + .78750842809677, + 1.1880930662155, + .74399447441101, + 1.1791603565216, + .85870295763016, + 1.0032330751419, + .8019300699234, + 1.1696527004242, + .92376220226288, + .99186056852341, + .94733852148056, + 1.0748032331467, + .64247089624405, + .95419937372208, + .92043441534042, + .8104555606842, + .66252142190933, + 1.1178470849991, + .69223344326019, + 1.0570795536041, + .90239083766937, + .95320242643356, + 1.0541093349457, + 1.0082466602325, + 1.1376332044601, + 1.1841852664948, + .90440809726715, + 1.2733660936356, + .66835701465607, + 1.1515763998032, + .44600257277489, + .93500959873199, + 1.0847823619843, + .83353632688522, + 1.0442448854446, + 1.077241897583, + .71010553836823, + .89557945728302, + 1.0163468122482, + 1.094814658165, + .89641278982162, + 1.2808450460434, + 1.0223702192307, + .96094745397568, + 1.309353351593, + .73499941825867, + 2.4902238845825, + -.2579345703125, + 1.9272556304932, + .53125941753387, + .7708500623703, + 1.0312130451202, + 1.6360099315643, + .6022145152092, + 1.6338716745377, + 1.3494771718979, + 1.1322995424271, + 2.1901025772095, + -.72639065980911, + -.37026473879814, + 1.2391144037247, + 1.1353877782822]) + +y = np.array([np.nan, + 29.908170700073, + 29.84511756897, + 30.121925354004, + 30.031360626221, + 30.315252304077, + 30.196870803833, + 30.5465965271, + 30.498420715332, + 30.52215385437, + 30.619710922241, + 30.70092010498, + 30.722021102905, + 30.975101470947, + 30.862537384033, + 31.162391662598, + 31.086095809937, + 31.220876693726, + 31.407745361328, + 31.461973190308, + 31.670673370361, + 31.627857208252, + 31.728984832764, + 31.833349227905, + 32.009841918945, + 32.08177947998, + 32.33292388916, + 32.325073242188, + 32.662189483643, + 33.060398101807, + 33.162502288818, + 33.670280456543, + 33.535060882568, + 33.894519805908, + 34.127738952637, + 34.495552062988, + 34.866851806641, + 35.17427444458, + 35.721012115479, + 36.079170227051, + 36.489177703857, + 37.16641998291, + 37.584571838379, + 38.136978149414, + 38.732818603516, + 39.352241516113, + 39.65030670166, + 40.255104064941, + 40.68025970459, + 40.827903747559, + 41.445526123047, + 41.620620727539, + 41.986698150635, + 42.238689422607, + 42.580707550049, + 42.98002243042, + 43.537376403809, + 44.689880371094, + 44.928825378418, + 46.824542999268, + 47.653316497803, + 49.263732910156, + 50.164772033691, + 52.324848175049, + 53.112449645996, + 53.980087280273, + 54.855911254883, + 55.916255950928, + 56.616539001465, + 56.889472961426, + 57.941665649414, + 58.832668304443, + 59.55924987793, + 61.124504089355, + 61.555759429932, + 62.603061676025, + 63.612670898438, + 64.984802246094, + 66.577819824219, + 68.255104064941, + 69.478172302246, + 72.001251220703, + 74.236083984375, + 76.533538818359, + 79.435234069824, + 82.39412689209, + 83.541511535645, + 86.137664794922, + 88.440467834473, + 90.32852935791, + 92.82194519043, + 94.556045532227, + 95.235244750977, + 95.871170043945, + 99.056198120117, + 98.573585510254, + 98.680938720703, + 99.705497741699, + 100.82178497314, + 101.66397857666, + 103.25267791748, + 104.17662811279, + 105.0580368042, + 105.99513244629, + 106.55281066895, + 108.08527374268, + 108.46807861328, + 109.46871948242, + 110.97328948975, + 108.72145080566, + 110.86870574951, + 110.70049285889, + 112.78958892822, + 113.38899230957, + 115.0795211792, + 115.70503997803, + 117.22190093994, + 117.94481658936, + 119.80744934082, + 120.69200134277, + 122.48076629639, + 124.11205291748, + 125.69389343262, + 126.08923339844, + 129.11749267578, + 129.54739379883, + 131.99499511719, + 134.66789245605, + 135.75866699219, + 135.6576385498, + 137.47906494141, + 137.86515808105, + 139.55383300781, + 140.10552978516, + 141.73915100098, + 142.45240783691, + 144.01290893555, + 144.49235534668, + 145.57852172852, + 146.40435791016, + 147.30380249023, + 147.98750305176, + 149.58808898926, + 150.14398193359, + 151.67915344238, + 152.65870666504, + 153.6032409668, + 154.30192565918, + 155.86964416504, + 157.02377319336, + 157.99186706543, + 159.14733886719, + 160.47479248047, + 160.54246520996, + 161.35418701172, + 162.42044067383, + 162.81045532227, + 162.86251831055, + 164.31784057617, + 164.59222412109, + 165.75708007813, + 166.80238342285, + 167.65319824219, + 169.15411376953, + 170.30824279785, + 172.03762817383, + 173.88418579102, + 174.80439758301, + 176.87336730957, + 177.06834411621, + 178.55157470703, + 178.04600524902, + 178.63500976563, + 180.38478088379, + 180.83354187012, + 182.24424743652, + 183.67724609375, + 183.91009521484, + 184.59558105469, + 185.91633605957, + 187.39482116699, + 188.29640197754, + 190.38084411621, + 191.82237243652, + 192.76095581055, + 195.10935974121, + 195.43499755859, + 201.69021606445, + 199.14205932617, + 202.62725830078, + 203.23126220703, + 202.67083740234, + 204.60522460938, + 207.55601501465, + 207.94021606445, + 210.76686096191, + 213.84446716309, + 215.12928771973, + 220.80010986328, + 216.16261291504, + 211.80372619629, + 213.91012573242, + 215.60438537598]) + +resid = np.array([np.nan, + -.7581701874733, + -.49511715769768, + -.75192391872406, + -.49135887622833, + -.76525229215622, + -.44687059521675, + -.70659655332565, + -.68842077255249, + -.60215425491333, + -.63971120119095, + -.66091901063919, + -.51202166080475, + -.75510257482529, + -.48253855109215, + -.72239124774933, + -.60609650611877, + -.53087604045868, + -.65774464607239, + -.52197223901749, + -.7206723690033, + -.60785627365112, + -.6089842915535, + -.55334770679474, + -.62984347343445, + -.50177800655365, + -.68292456865311, + -.44507533311844, + -.38219094276428, + -.61039841175079, + -.31250306963921, + -.77027755975723, + -.4350620508194, + -.494520008564, + -.42773708701134, + -.39555323123932, + -.46685197949409, + -.27427339553833, + -.42101442813873, + -.37917038798332, + -.18917952477932, + -.36641922593117, + -.28457221388817, + -.23697751760483, + -.23281940817833, + -.45223876833916, + -.25030693411827, + -.35510078072548, + -.58026248216629, + -.22790426015854, + -.54552561044693, + -.42061823606491, + -.48669815063477, + -.43868899345398, + -.38070866465569, + -.28002023696899, + .16262374818325, + -.48988044261932, + .67117244005203, + -.02454199641943, + .44668045639992, + .0362650193274, + .83522641658783, + -.02484837733209, + -.11245145648718, + .01991361007094, + .0440888479352, + -.1162573993206, + -.51654160022736, + .11052562296391, + -.04166246205568, + -.13266679644585, + .4407517015934, + -.32450538873672, + .04423752427101, + .0969405695796, + .28733000159264, + .51519411802292, + .52217602729797, + .24489280581474, + 1.1218250989914, + .99874752759933, + .96391087770462, + 1.4664648771286, + 1.4647653102875, + .20586840808392, + 1.1584821939468, + 1.062330365181, + .65953236818314, + 1.1714720726013, + .57805341482162, + -.15604154765606, + -.23524549603462, + 1.6288322210312, + -.95619779825211, + -.67358434200287, + .1190680116415, + .09450265020132, + -.02177914790809, + .43602138757706, + .04732597246766, + -.07663082331419, + .0419635027647, + -.29513788223267, + .44718953967094, + -.38527730107307, + .0319189876318, + .43128004670143, + -2.2732961177826, + .77854722738266, + -.66871201992035, + .69950574636459, + -.08958829939365, + .41101104021072, + -.07951752096415, + .2949578166008, + -.02190163731575, + .5551837682724, + .0925500690937, + .50799924135208, + .61922925710678, + .38794788718224, + -.29389011859894, + 1.4107677936554, + -.21750450134277, + .95260292291641, + 1.4050008058548, + .03210696578026, + -.65866851806641, + .54236197471619, + -.27907428145409, + .43484738469124, + -.15383619070053, + .39446276426315, + -.03915995359421, + .34759050607681, + -.21290412545204, + .00764474179596, + .02148328535259, + -.10436081886292, + -.10379911959171, + .41248852014542, + -.18809306621552, + .35601159930229, + .12084264308214, + -.05869990959764, + -.10323911905289, + .39806687831879, + .2303563952446, + -.02376830019057, + .20813637971878, + .25265842676163, + -.57480323314667, + -.14247089624405, + .14580672979355, + -.4204343855381, + -.61045861244202, + .33747857809067, + -.41785016655922, + .10776958614588, + .14291742444038, + -.1023878082633, + .44680669903755, + .14588765799999, + .59174418449402, + .66236984729767, + .01581169478595, + .7956041097641, + -.47337827086449, + .33164295554161, + -.95156413316727, + -.34601172804832, + .66499650478363, + -.38478538393974, + .36646059155464, + .35576421022415, + -.47725108265877, + -.21010553836823, + .30441749095917, + .38366231322289, + .00517613813281, + .80359941720963, + .41915187239647, + -.02237024717033, + 1.039052605629, + -.409359395504, + 3.7650005817413, + -2.2902269363403, + 1.5579376220703, + .072744384408, + -1.3312624692917, + .90316116809845, + 1.3147799968719, + -.21801064908504, + 1.1927837133408, + 1.7281278371811, + .15252174437046, + 3.4807071685791, + -3.9110956192017, + -3.9886209964752, + .86727404594421, + .55887448787689, + .78061258792877]) + +yr = np.array([np.nan, + -.7581701874733, + -.49511715769768, + -.75192391872406, + -.49135887622833, + -.76525229215622, + -.44687059521675, + -.70659655332565, + -.68842077255249, + -.60215425491333, + -.63971120119095, + -.66091901063919, + -.51202166080475, + -.75510257482529, + -.48253855109215, + -.72239124774933, + -.60609650611877, + -.53087604045868, + -.65774464607239, + -.52197223901749, + -.7206723690033, + -.60785627365112, + -.6089842915535, + -.55334770679474, + -.62984347343445, + -.50177800655365, + -.68292456865311, + -.44507533311844, + -.38219094276428, + -.61039841175079, + -.31250306963921, + -.77027755975723, + -.4350620508194, + -.494520008564, + -.42773708701134, + -.39555323123932, + -.46685197949409, + -.27427339553833, + -.42101442813873, + -.37917038798332, + -.18917952477932, + -.36641922593117, + -.28457221388817, + -.23697751760483, + -.23281940817833, + -.45223876833916, + -.25030693411827, + -.35510078072548, + -.58026248216629, + -.22790426015854, + -.54552561044693, + -.42061823606491, + -.48669815063477, + -.43868899345398, + -.38070866465569, + -.28002023696899, + .16262374818325, + -.48988044261932, + .67117244005203, + -.02454199641943, + .44668045639992, + .0362650193274, + .83522641658783, + -.02484837733209, + -.11245145648718, + .01991361007094, + .0440888479352, + -.1162573993206, + -.51654160022736, + .11052562296391, + -.04166246205568, + -.13266679644585, + .4407517015934, + -.32450538873672, + .04423752427101, + .0969405695796, + .28733000159264, + .51519411802292, + .52217602729797, + .24489280581474, + 1.1218250989914, + .99874752759933, + .96391087770462, + 1.4664648771286, + 1.4647653102875, + .20586840808392, + 1.1584821939468, + 1.062330365181, + .65953236818314, + 1.1714720726013, + .57805341482162, + -.15604154765606, + -.23524549603462, + 1.6288322210312, + -.95619779825211, + -.67358434200287, + .1190680116415, + .09450265020132, + -.02177914790809, + .43602138757706, + .04732597246766, + -.07663082331419, + .0419635027647, + -.29513788223267, + .44718953967094, + -.38527730107307, + .0319189876318, + .43128004670143, + -2.2732961177826, + .77854722738266, + -.66871201992035, + .69950574636459, + -.08958829939365, + .41101104021072, + -.07951752096415, + .2949578166008, + -.02190163731575, + .5551837682724, + .0925500690937, + .50799924135208, + .61922925710678, + .38794788718224, + -.29389011859894, + 1.4107677936554, + -.21750450134277, + .95260292291641, + 1.4050008058548, + .03210696578026, + -.65866851806641, + .54236197471619, + -.27907428145409, + .43484738469124, + -.15383619070053, + .39446276426315, + -.03915995359421, + .34759050607681, + -.21290412545204, + .00764474179596, + .02148328535259, + -.10436081886292, + -.10379911959171, + .41248852014542, + -.18809306621552, + .35601159930229, + .12084264308214, + -.05869990959764, + -.10323911905289, + .39806687831879, + .2303563952446, + -.02376830019057, + .20813637971878, + .25265842676163, + -.57480323314667, + -.14247089624405, + .14580672979355, + -.4204343855381, + -.61045861244202, + .33747857809067, + -.41785016655922, + .10776958614588, + .14291742444038, + -.1023878082633, + .44680669903755, + .14588765799999, + .59174418449402, + .66236984729767, + .01581169478595, + .7956041097641, + -.47337827086449, + .33164295554161, + -.95156413316727, + -.34601172804832, + .66499650478363, + -.38478538393974, + .36646059155464, + .35576421022415, + -.47725108265877, + -.21010553836823, + .30441749095917, + .38366231322289, + .00517613813281, + .80359941720963, + .41915187239647, + -.02237024717033, + 1.039052605629, + -.409359395504, + 3.7650005817413, + -2.2902269363403, + 1.5579376220703, + .072744384408, + -1.3312624692917, + .90316116809845, + 1.3147799968719, + -.21801064908504, + 1.1927837133408, + 1.7281278371811, + .15252174437046, + 3.4807071685791, + -3.9110956192017, + -3.9886209964752, + .86727404594421, + .55887448787689, + .78061258792877]) + +mse = np.array([ .77732294797897, + .77732294797897, + .70387578010559, + .69261533021927, + .68906670808792, + .68708789348602, + .68558460474014, + .68429106473923, + .6831266283989, + .68206071853638, + .68107759952545, + .68016695976257, + .67932069301605, + .67853212356567, + .67779558897018, + .67710596323013, + .67645901441574, + .6758508682251, + .67527812719345, + .67473775148392, + .67422717809677, + .67374390363693, + .67328584194183, + .6728510260582, + .67243778705597, + .67204451560974, + .67166984081268, + .67131245136261, + .67097115516663, + .67064493894577, + .67033278942108, + .67003381252289, + .66974723339081, + .66947221755981, + .66920816898346, + .66895437240601, + .66871029138565, + .66847538948059, + .66824907064438, + .66803097724915, + .66782057285309, + .66761755943298, + .66742146015167, + .66723203659058, + .66704881191254, + .66687160730362, + .66670006513596, + .66653394699097, + .66637301445007, + .66621696949005, + .66606563329697, + .66591882705688, + .66577625274658, + .66563785076141, + .66550332307816, + .66537261009216, + .6652455329895, + .66512185335159, + .66500157117844, + .66488444805145, + .66477036476135, + .66465926170349, + .66455101966858, + .66444545984268, + .6643425822258, + .66424214839935, + .66414421796799, + .66404861211777, + .66395533084869, + .66386413574219, + .66377514600754, + .66368812322617, + .66360312700272, + .66351997852325, + .66343873739243, + .6633592247963, + .66328144073486, + .66320532560349, + .66313081979752, + .66305786371231, + .66298645734787, + .6629164814949, + .66284799575806, + .66278082132339, + .66271501779556, + .66265046596527, + .66258722543716, + .6625252366066, + .66246438026428, + .66240465641022, + .66234612464905, + .66228866577148, + .66223222017288, + .66217684745789, + .66212248802185, + .66206908226013, + .66201663017273, + .661965072155, + .66191446781158, + .6618646979332, + .66181582212448, + .66176778078079, + .66172051429749, + .66167408227921, + .66162836551666, + .66158348321915, + .66153925657272, + .66149580478668, + .66145300865173, + .66141092777252, + .6613695025444, + .66132873296738, + .6612885594368, + .66124904155731, + .66121011972427, + .66117179393768, + .66113406419754, + .6610968708992, + .66106027364731, + .66102415323257, + .66098862886429, + .66095358133316, + .66091907024384, + .66088503599167, + .66085147857666, + .66081839799881, + .66078579425812, + .66075360774994, + .66072189807892, + .66069066524506, + .66065979003906, + .66062939167023, + .66059935092926, + .66056972742081, + .66054052114487, + .6605116724968, + .66048324108124, + .6604551076889, + .66042739152908, + .66040003299713, + .66037303209305, + .66034632921219, + .66032004356384, + .66029399633408, + .66026836633682, + .66024297475815, + .66021794080734, + .66019320487976, + .6601687669754, + .66014462709427, + .66012072563171, + .66009718179703, + .66007387638092, + .66005086898804, + .66002810001373, + .66000562906265, + .65998339653015, + .65996146202087, + .65993976593018, + .65991830825806, + .65989708900452, + .65987610816956, + .65985536575317, + .65983480215073, + .6598145365715, + .65979450941086, + .65977466106415, + .65975499153137, + .65973562002182, + .6597164273262, + .65969741344452, + .65967857837677, + .6596599817276, + .65964162349701, + .65962338447571, + .65960538387299, + .6595875620842, + .65956991910934, + .65955245494843, + .65953516960144, + .65951806306839, + .65950113534927, + .65948438644409, + .6594677567482, + .65945136547089, + .65943509340286, + .65941900014877, + .65940302610397, + .65938723087311, + .65937161445618, + .65935611724854, + .65934079885483, + .65932559967041, + .65931057929993, + .65929567813873, + .65928089618683, + .65926629304886, + .65925180912018, + .65923744440079, + .65922319889069, + .65920913219452, + .65919518470764, + .65918135643005]) + +stdp = np.array([ .92817026376724, + .92817026376724, + .69511789083481, + .77192437648773, + .66135895252228, + .77525061368942, + .64687132835388, + .79659670591354, + .65842008590698, + .71215486526489, + .69971066713333, + .72092038393021, + .68201982975006, + .76510280370712, + .64253836870193, + .78239262104034, + .64609551429749, + .74087703227997, + .71774411201477, + .7119727730751, + .73067259788513, + .67785596847534, + .70898467302322, + .71334755420685, + .72984194755554, + .7017787694931, + .75292426347733, + .67507487535477, + .78219056129456, + .78040039539337, + .71250075101852, + .82028061151505, + .63505899906158, + .79452306032181, + .72773635387421, + .79555094242096, + .76685506105423, + .77427339553833, + .82101213932037, + .77917188405991, + .78917801380157, + .86641925573349, + .78457218408585, + .83697980642319, + .83281791210175, + .85224026441574, + .75030690431595, + .8551008105278, + .78025943040848, + .72790426015854, + .84552866220474, + .72061747312546, + .78669738769531, + .73868823051453, + .78071022033691, + .78002023696899, + .83737623691559, + .98988044261932, + .72882527112961, + 1.2245427370071, + .85331875085831, + 1.1637357473373, + .86477434635162, + 1.3248475790024, + .81245219707489, + .98008638620377, + .85591268539429, + 1.0162551403046, + .8165408372879, + .78947591781616, + .94166398048401, + .93266606330872, + .85924750566483, + 1.1245046854019, + .75576168298721, + 1.0030617713928, + .91267073154449, + 1.0848042964935, + 1.0778224468231, + 1.1551086902618, + .97817331552505, + 1.4012540578842, + 1.2360861301422, + 1.3335381746292, + 1.4352362155914, + 1.4941285848618, + .9415163397789, + 1.437669634819, + 1.2404690980911, + 1.2285294532776, + 1.3219480514526, + 1.1560415029526, + .83524394035339, + .87116771936417, + 1.5561962127686, + .47358739376068, + .78093349933624, + .90549737215042, + 1.0217791795731, + .86397403478622, + 1.1526786088943, + .87662625312805, + .95803648233414, + .89513635635376, + .85281348228455, + 1.0852742195129, + .76808404922485, + .96872144937515, + 1.0732915401459, + .02145584858954, + 1.3687089681625, + .50049883127213, + 1.3895837068558, + .6889950633049, + 1.2795144319534, + .7050421833992, + 1.2218985557556, + .74481928348541, + 1.3074514865875, + .7919961810112, + 1.2807723283768, + 1.0120536088943, + 1.1938916444778, + .68923074007034, + 1.6174983978271, + .64740318059921, + 1.4949930906296, + 1.2678960561752, + 1.0586776733398, + .55762887001038, + 1.2790743112564, + .66515874862671, + 1.2538269758224, + .70554333925247, + 1.2391568422318, + .75241559743881, + 1.2129040956497, + .69235223531723, + 1.0785228013992, + .8043577671051, + 1.0037930011749, + .78750842809677, + 1.1880930662155, + .74399447441101, + 1.1791603565216, + .85870295763016, + 1.0032330751419, + .8019300699234, + 1.1696527004242, + .92376220226288, + .99186056852341, + .94733852148056, + 1.0748032331467, + .64247089624405, + .95419937372208, + .92043441534042, + .8104555606842, + .66252142190933, + 1.1178470849991, + .69223344326019, + 1.0570795536041, + .90239083766937, + .95320242643356, + 1.0541093349457, + 1.0082466602325, + 1.1376332044601, + 1.1841852664948, + .90440809726715, + 1.2733660936356, + .66835701465607, + 1.1515763998032, + .44600257277489, + .93500959873199, + 1.0847823619843, + .83353632688522, + 1.0442448854446, + 1.077241897583, + .71010553836823, + .89557945728302, + 1.0163468122482, + 1.094814658165, + .89641278982162, + 1.2808450460434, + 1.0223702192307, + .96094745397568, + 1.309353351593, + .73499941825867, + 2.4902238845825, + -.2579345703125, + 1.9272556304932, + .53125941753387, + .7708500623703, + 1.0312130451202, + 1.6360099315643, + .6022145152092, + 1.6338716745377, + 1.3494771718979, + 1.1322995424271, + 2.1901025772095, + -.72639065980911, + -.37026473879814, + 1.2391144037247, + 1.1353877782822]) + +icstats = np.array([ 202, + np.nan, + -245.40783909604, + 5, + 500.81567819208, + 517.35701667909]) + +class Bunch(dict): + def __init__(self, **kw): + dict.__init__(self, kw) + self.__dict__ = self + + +results = Bunch(llf=llf, nobs=nobs, k=k, k_exog=k_exog, sigma=sigma, chi2=chi2, df_model=df_model, k_ar=k_ar, k_ma=k_ma, params=params, cov_params=cov_params, xb=xb, y=y, resid=resid, yr=yr, mse=mse, stdp=stdp, icstats=icstats, ) + diff --git a/statsmodels/tsa/tests/results/arima112nc_css_results.py b/statsmodels/tsa/tests/results/arima112nc_css_results.py new file mode 100644 index 0000000..39234fa --- /dev/null +++ b/statsmodels/tsa/tests/results/arima112nc_css_results.py @@ -0,0 +1,1281 @@ +import numpy as np + +llf = np.array([-239.75290561974]) + +nobs = np.array([ 202]) + +k = np.array([ 4]) + +k_exog = np.array([ 1]) + +sigma = np.array([ .79291203639424]) + +chi2 = np.array([ 35036.682546665]) + +df_model = np.array([ 3]) + +k_ar = np.array([ 1]) + +k_ma = np.array([ 2]) + +params = np.array([ .99954097483478, + -.69022779461512, + -.20477682541104, + .62870949745886]) + +cov_params = np.array([ .00007344276568, + -.00016074342677, + -.00018478942445, + 8.040251506e-06, + -.00016074342677, + .00094099304774, + .00017233777676, + -.0000145011098, + -.00018478942445, + .00017233777676, + .00103352686916, + .00030686101903, + 8.040251506e-06, + -.0000145011098, + .00030686101903, + .00067796985496]).reshape(4,4) + +xb = np.array([ 0, + 0, + .05104803293943, + .06663129478693, + .02164618112147, + .0773858949542, + .02606418170035, + .09391833096743, + .05710592120886, + .03083370067179, + .07319989800453, + .05287836492062, + .05776296555996, + .09105986356735, + .04293738678098, + .09576436132193, + .06068528071046, + .06157376244664, + .11172580718994, + .06527806818485, + .11443704366684, + .05653077363968, + .08205550909042, + .08481238037348, + .10436166077852, + .0875685736537, + .12320486456156, + .08366665989161, + .13979130983353, + .1902572363615, + .1306214183569, + .21803694963455, + .11079790443182, + .17274764180183, + .1937662512064, + .20047917962074, + .24034893512726, + .21783453226089, + .29279819130898, + .26804205775261, + .28678458929062, + .35651323199272, + .33659368753433, + .35760068893433, + .39895334839821, + .41131839156151, + .36645981669426, + .40991494059563, + .41024547815323, + .32657703757286, + .42312324047089, + .34933325648308, + .35912537574768, + .35077446699142, + .34701564908028, + .37364318966866, + .40170526504517, + .56070649623871, + .41915491223335, + .73478156328201, + .67748892307281, + .7744625210762, + .77825599908829, + .97586625814438, + .88692498207092, + .76232481002808, + .87376874685287, + .83281141519547, + .84783887863159, + .66423743963242, + .84904235601425, + .81613594293594, + .80033475160599, + .95782464742661, + .80624777078629, + .83626395463943, + .91873735189438, + .95130664110184, + 1.0939226150513, + 1.1171194314957, + 1.1004731655121, + 1.3512066602707, + 1.4703129529953, + 1.4805699586868, + 1.7385860681534, + 1.8268398046494, + 1.5489361286163, + 1.7446503639221, + 1.864644408226, + 1.7200467586517, + 1.9223358631134, + 1.775306224823, + 1.5392524003983, + 1.4067870378494, + 1.9366238117218, + 1.2984343767166, + 1.1080636978149, + 1.3500427007675, + 1.2837564945221, + 1.2670782804489, + 1.3347851037979, + 1.2857422828674, + 1.1625040769577, + 1.2111755609512, + 1.0548515319824, + 1.2553508281708, + 1.0327949523926, + 1.0740388631821, + 1.222040772438, + .40555971860886, + 1.0233588218689, + .84209614992142, + 1.0186324119568, + 1.0319027900696, + .99487775564194, + 1.0439211130142, + .98785293102264, + 1.0620124340057, + 1.0916963815689, + 1.1378232240677, + 1.1243290901184, + 1.3305295705795, + 1.1925677061081, + 1.0872994661331, + 1.4599523544312, + 1.2333589792252, + 1.3584797382355, + 1.7595859766006, + 1.3009568452835, + 1.1157965660095, + 1.2948887348175, + 1.2063180208206, + 1.2332669496536, + 1.2132470607758, + 1.2049551010132, + 1.2260574102402, + 1.1875206232071, + 1.1547852754593, + 1.0519831180573, + 1.1594845056534, + 1.0069926977158, + 1.0675266981125, + 1.1299223899841, + 1.0620901584625, + 1.0999356508255, + 1.1535499095917, + 1.0026944875717, + 1.0428657531738, + 1.1120204925537, + 1.1684119701385, + 1.0258769989014, + 1.1342295408249, + 1.1183958053589, + .91313683986664, + .91156214475632, + 1.0540328025818, + .84359037876129, + .75758427381516, + .96401190757751, + .83226495981216, + .8759680390358, + .98239886760712, + .85917687416077, + 1.0634194612503, + .99442666769028, + 1.153311252594, + 1.2288066148758, + 1.0869039297104, + 1.281947016716, + 1.0067318677902, + 1.1028815507889, + .82448446750641, + .78489726781845, + 1.1850204467773, + .86753690242767, + 1.0692945718765, + 1.1030179262161, + .8791960477829, + .86451041698456, + 1.0455346107483, + 1.085998415947, + 1.0172398090363, + 1.2250980138779, + 1.2316122055054, + 1.062157869339, + 1.3991860151291, + 1.0520887374878, + 2.2203133106232, + .88833123445511, + 1.4289729595184, + 1.5206423997879, + .68520504236221, + 1.4659557342529, + 1.5350053310394, + 1.3178979158401, + 1.4888265132904, + 1.9698411226273, + 1.4406447410583, + 2.517040014267, + .55537897348404, + -.20722626149654, + 1.0899519920349, + 1.164245724678]) + +y = np.array([np.nan, + 28.979999542236, + 29.201047897339, + 29.416631698608, + 29.391647338867, + 29.617385864258, + 29.576063156128, + 29.84391784668, + 29.897106170654, + 29.84083366394, + 29.993200302124, + 30.032876968384, + 30.097763061523, + 30.3010597229, + 30.262937545776, + 30.475763320923, + 30.500686645508, + 30.541572570801, + 30.801725387573, + 30.815279006958, + 31.054437637329, + 31.006530761719, + 31.102056503296, + 31.20481300354, + 31.384363174438, + 31.467567443848, + 31.703205108643, + 31.733665466309, + 32.019790649414, + 32.47025680542, + 32.580623626709, + 33.068035125732, + 33.010799407959, + 33.272747039795, + 33.593769073486, + 33.900478363037, + 34.340347290039, + 34.617835998535, + 35.192798614502, + 35.568042755127, + 35.986785888672, + 36.656513214111, + 37.13659286499, + 37.657600402832, + 38.29895401001, + 38.911319732666, + 39.266460418701, + 39.809917449951, + 40.310245513916, + 40.426574707031, + 41.023120880127, + 41.249336242676, + 41.559127807617, + 41.850772857666, + 42.14701461792, + 42.573642730713, + 43.101707458496, + 44.260707855225, + 44.619155883789, + 46.334781646729, + 47.477489471436, + 48.874462127686, + 50.078254699707, + 51.9758644104, + 53.186923980713, + 53.762325286865, + 54.873767852783, + 55.732814788818, + 56.647838592529, + 56.764236450195, + 57.849040985107, + 58.716136932373, + 59.500335693359, + 60.957824707031, + 61.606246948242, + 62.436264038086, + 63.61873626709, + 64.85131072998, + 66.593925476074, + 68.21711730957, + 69.600471496582, + 71.951202392578, + 74.470314025879, + 76.680564880371, + 79.738586425781, + 82.726844787598, + 84.148933410645, + 86.444648742676, + 89.064643859863, + 90.820045471191, + 93.422332763672, + 95.175308227539, + 95.939254760742, + 96.406784057617, + 99.436622619629, + 99.398429870605, + 99.00806427002, + 100.15004730225, + 101.08376312256, + 102.06707763672, + 103.43478393555, + 104.58574676514, + 105.26250457764, + 106.31117248535, + 106.75485229492, + 108.25534820557, + 108.73279571533, + 109.57403564453, + 111.12203979492, + 109.10556030273, + 110.52336120605, + 111.04209136963, + 112.41863250732, + 113.73190307617, + 114.79488372803, + 116.04392242432, + 116.98785400391, + 118.26200866699, + 119.59169769287, + 121.03782653809, + 122.32432556152, + 124.4305267334, + 125.69256591797, + 126.4873046875, + 128.95994567871, + 130.13334655762, + 131.85847473145, + 135.15957641602, + 136.00096130371, + 136.21580505371, + 137.49488830566, + 138.40631103516, + 139.53326416016, + 140.61323547363, + 141.70495605469, + 142.9260559082, + 143.98751831055, + 144.95478820801, + 145.55198669434, + 146.7594909668, + 147.30699157715, + 148.26751708984, + 149.52992248535, + 150.46208190918, + 151.59992980957, + 152.95355224609, + 153.60270690918, + 154.54286193848, + 155.81201171875, + 157.2684173584, + 158.02587890625, + 159.33422851563, + 160.51838684082, + 160.81312561035, + 161.31155395508, + 162.55403137207, + 162.84359741211, + 162.95758056641, + 164.16400146484, + 164.73225402832, + 165.57595825195, + 166.88238525391, + 167.55917358398, + 169.16342163086, + 170.29443359375, + 172.0532989502, + 173.92880249023, + 174.9868927002, + 176.88195800781, + 177.40672302246, + 178.50286865234, + 178.42448425293, + 178.48489379883, + 180.48501586914, + 180.86753845215, + 182.26928710938, + 183.70301818848, + 184.07919311523, + 184.56451416016, + 185.94552612305, + 187.38600158691, + 188.41723632813, + 190.32510375977, + 192.03161621094, + 192.8621673584, + 195.19918823242, + 195.7520904541, + 201.42030334473, + 200.28833007813, + 202.12896728516, + 204.22064208984, + 202.58520507813, + 205.03996276855, + 207.45500183105, + 208.65589904785, + 210.62182617188, + 214.46484375, + 215.4376373291, + 221.12704467773, + 217.44438171387, + 211.96676635742, + 213.76095581055, + 215.63323974609]) + +resid = np.array([np.nan, + .17000007629395, + .14895272254944, + -.04663083329797, + .14835388958454, + -.067387573421, + .17393657565117, + -.00391817837954, + -.08710660785437, + .07916691154242, + -.01320043392479, + .00712300790474, + .11223520338535, + -.08105963468552, + .11706246435642, + -.03576298803091, + -.0206862706691, + .14842723309994, + -.05172633752227, + .12472246587276, + -.104436814785, + .01346892025322, + .01794487424195, + .07518746703863, + -.00436318712309, + .11243218928576, + -.05320516973734, + .14633287489414, + .26020830869675, + -.02025525644422, + .26937630772591, + -.16803389787674, + .08919904381037, + .12725540995598, + .10623299330473, + .1995185315609, + .05965411290526, + .28216546773911, + .10719951242208, + .13195945322514, + .31321388483047, + .14348678290844, + .16340629756451, + .24240159988403, + .20104511082172, + -.01131687406451, + .13354018330574, + .09008505195379, + -.21024852991104, + .1734229773283, + -.12312019616365, + -.04933403432369, + -.05912613496184, + -.05077522993088, + .05298588424921, + .12635681033134, + .59829473495483, + -.06070650368929, + .98084276914597, + .46521919965744, + .62251031398773, + .42553821206093, + .92174476385117, + .32413294911385, + -.18692423403263, + .23767517507076, + .02623280882835, + .06718628853559, + -.54783964157104, + .23576405644417, + .05095916613936, + -.01613672077656, + .49966445565224, + -.1578253954649, + -.00624855514616, + .26373836398125, + .28126338124275, + .64869183301926, + .50607579946518, + .28288212418556, + .99952530860901, + 1.0487948656082, + .72968405485153, + 1.319433093071, + 1.1614154577255, + -.126842841506, + .55106240510941, + .75534957647324, + .03535716608167, + .67995470762253, + -.02233435213566, + -.775306224823, + -.93925392627716, + 1.0932129621506, + -1.3366253376007, + -1.4984313249588, + -.20806217193604, + -.35004270076752, + -.28375649452209, + .03291719779372, + -.13478049635887, + -.48574689030647, + -.16250413656235, + -.61117708683014, + .24515150487423, + -.55535387992859, + -.23279193043709, + .32596263289452, + -2.4220454692841, + .39444333314896, + -.32336190342903, + .3579084277153, + .28136301040649, + .06810333579779, + .20511920750141, + -.04392115399241, + .2121440321207, + .23799060285091, + .30830511450768, + .16217225790024, + .77567237615585, + .06947190314531, + -.29256621003151, + 1.012699007988, + -.05995841696858, + .36664715409279, + 1.5415141582489, + -.45958289504051, + -.90094763040543, + -.01580573618412, + -.29488867521286, + -.10631188750267, + -.13327611982822, + -.11324090510607, + -.00495810527354, + -.12605135142803, + -.18752062320709, + -.45478835701942, + .04802301898599, + -.45948752760887, + -.1069987937808, + .13247023522854, + -.12992236018181, + .0379159450531, + .20006743073463, + -.35354685783386, + -.10270062834024, + .15713113546371, + .28798860311508, + -.26841807365417, + .17411996424198, + .06576746702194, + -.61839586496353, + -.41313683986664, + .18844394385815, + -.55403280258179, + -.6435934305191, + .24241572618484, + -.26401495933533, + -.03226193040609, + .32402887940407, + -.1823958158493, + .54083228111267, + .13657745718956, + .60556417703629, + .64669179916382, + -.02880969829857, + .61310833692551, + -.48195922374725, + -.00673185009509, + -.90286934375763, + -.72449362277985, + .81510883569717, + -.48502343893051, + .33246004581451, + .33071464300156, + -.50302714109421, + -.3791960477829, + .33548650145531, + .35447460412979, + .01399240642786, + .682772397995, + .474898904562, + -.23161220550537, + .93784213066101, + -.49919214844704, + 3.4479112625122, + -2.020316362381, + .41167178750038, + .57102704048157, + -2.3206453323364, + .98880618810654, + .8800373673439, + -.11700607091188, + .47710022330284, + 1.8731729984283, + -.46784225106239, + 3.1723618507385, + -4.2380332946777, + -5.2703905105591, + .70423555374146, + .70803683996201, + .7517546415329]) + +yr = np.array([np.nan, + .17000007629395, + .14895272254944, + -.04663083329797, + .14835388958454, + -.067387573421, + .17393657565117, + -.00391817837954, + -.08710660785437, + .07916691154242, + -.01320043392479, + .00712300790474, + .11223520338535, + -.08105963468552, + .11706246435642, + -.03576298803091, + -.0206862706691, + .14842723309994, + -.05172633752227, + .12472246587276, + -.104436814785, + .01346892025322, + .01794487424195, + .07518746703863, + -.00436318712309, + .11243218928576, + -.05320516973734, + .14633287489414, + .26020830869675, + -.02025525644422, + .26937630772591, + -.16803389787674, + .08919904381037, + .12725540995598, + .10623299330473, + .1995185315609, + .05965411290526, + .28216546773911, + .10719951242208, + .13195945322514, + .31321388483047, + .14348678290844, + .16340629756451, + .24240159988403, + .20104511082172, + -.01131687406451, + .13354018330574, + .09008505195379, + -.21024852991104, + .1734229773283, + -.12312019616365, + -.04933403432369, + -.05912613496184, + -.05077522993088, + .05298588424921, + .12635681033134, + .59829473495483, + -.06070650368929, + .98084276914597, + .46521919965744, + .62251031398773, + .42553821206093, + .92174476385117, + .32413294911385, + -.18692423403263, + .23767517507076, + .02623280882835, + .06718628853559, + -.54783964157104, + .23576405644417, + .05095916613936, + -.01613672077656, + .49966445565224, + -.1578253954649, + -.00624855514616, + .26373836398125, + .28126338124275, + .64869183301926, + .50607579946518, + .28288212418556, + .99952530860901, + 1.0487948656082, + .72968405485153, + 1.319433093071, + 1.1614154577255, + -.126842841506, + .55106240510941, + .75534957647324, + .03535716608167, + .67995470762253, + -.02233435213566, + -.775306224823, + -.93925392627716, + 1.0932129621506, + -1.3366253376007, + -1.4984313249588, + -.20806217193604, + -.35004270076752, + -.28375649452209, + .03291719779372, + -.13478049635887, + -.48574689030647, + -.16250413656235, + -.61117708683014, + .24515150487423, + -.55535387992859, + -.23279193043709, + .32596263289452, + -2.4220454692841, + .39444333314896, + -.32336190342903, + .3579084277153, + .28136301040649, + .06810333579779, + .20511920750141, + -.04392115399241, + .2121440321207, + .23799060285091, + .30830511450768, + .16217225790024, + .77567237615585, + .06947190314531, + -.29256621003151, + 1.012699007988, + -.05995841696858, + .36664715409279, + 1.5415141582489, + -.45958289504051, + -.90094763040543, + -.01580573618412, + -.29488867521286, + -.10631188750267, + -.13327611982822, + -.11324090510607, + -.00495810527354, + -.12605135142803, + -.18752062320709, + -.45478835701942, + .04802301898599, + -.45948752760887, + -.1069987937808, + .13247023522854, + -.12992236018181, + .0379159450531, + .20006743073463, + -.35354685783386, + -.10270062834024, + .15713113546371, + .28798860311508, + -.26841807365417, + .17411996424198, + .06576746702194, + -.61839586496353, + -.41313683986664, + .18844394385815, + -.55403280258179, + -.6435934305191, + .24241572618484, + -.26401495933533, + -.03226193040609, + .32402887940407, + -.1823958158493, + .54083228111267, + .13657745718956, + .60556417703629, + .64669179916382, + -.02880969829857, + .61310833692551, + -.48195922374725, + -.00673185009509, + -.90286934375763, + -.72449362277985, + .81510883569717, + -.48502343893051, + .33246004581451, + .33071464300156, + -.50302714109421, + -.3791960477829, + .33548650145531, + .35447460412979, + .01399240642786, + .682772397995, + .474898904562, + -.23161220550537, + .93784213066101, + -.49919214844704, + 3.4479112625122, + -2.020316362381, + .41167178750038, + .57102704048157, + -2.3206453323364, + .98880618810654, + .8800373673439, + -.11700607091188, + .47710022330284, + 1.8731729984283, + -.46784225106239, + 3.1723618507385, + -4.2380332946777, + -5.2703905105591, + .70423555374146, + .70803683996201, + .7517546415329]) + +mse = np.array([ .95459979772568, + .71522510051727, + .63122135400772, + .6314896941185, + .63029319047928, + .63014930486679, + .62988424301147, + .62969470024109, + .62953060865402, + .6293950676918, + .62928181886673, + .62918740510941, + .62910866737366, + .62904292345047, + .62898802757263, + .6289421916008, + .62890386581421, + .62887191772461, + .62884521484375, + .6288229227066, + .62880426645279, + .6287887096405, + .6287756562233, + .62876480817795, + .62875574827194, + .62874811887741, + .62874180078506, + .62873649597168, + .62873202562332, + .62872833013535, + .62872523069382, + .62872266769409, + .62872052192688, + .62871867418289, + .62871718406677, + .62871593236923, + .62871485948563, + .62871396541595, + .62871325016022, + .62871265411377, + .62871211767197, + .62871170043945, + .62871134281158, + .62871104478836, + .62871074676514, + .6287105679512, + .62871038913727, + .62871026992798, + .62871015071869, + .6287100315094, + .62870991230011, + .62870985269547, + .62870979309082, + .62870973348618, + .62870973348618, + .62870967388153, + .62870967388153, + .62870961427689, + .62870961427689, + .62870955467224, + .62870955467224, + .62870955467224, + .62870955467224, + .62870955467224, + .62870955467224, + .62870955467224, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676, + .6287094950676]) + +stdp = np.array([ 0, + 0, + .05104803293943, + .06663129478693, + .02164618112147, + .0773858949542, + .02606418170035, + .09391833096743, + .05710592120886, + .03083370067179, + .07319989800453, + .05287836492062, + .05776296555996, + .09105986356735, + .04293738678098, + .09576436132193, + .06068528071046, + .06157376244664, + .11172580718994, + .06527806818485, + .11443704366684, + .05653077363968, + .08205550909042, + .08481238037348, + .10436166077852, + .0875685736537, + .12320486456156, + .08366665989161, + .13979130983353, + .1902572363615, + .1306214183569, + .21803694963455, + .11079790443182, + .17274764180183, + .1937662512064, + .20047917962074, + .24034893512726, + .21783453226089, + .29279819130898, + .26804205775261, + .28678458929062, + .35651323199272, + .33659368753433, + .35760068893433, + .39895334839821, + .41131839156151, + .36645981669426, + .40991494059563, + .41024547815323, + .32657703757286, + .42312324047089, + .34933325648308, + .35912537574768, + .35077446699142, + .34701564908028, + .37364318966866, + .40170526504517, + .56070649623871, + .41915491223335, + .73478156328201, + .67748892307281, + .7744625210762, + .77825599908829, + .97586625814438, + .88692498207092, + .76232481002808, + .87376874685287, + .83281141519547, + .84783887863159, + .66423743963242, + .84904235601425, + .81613594293594, + .80033475160599, + .95782464742661, + .80624777078629, + .83626395463943, + .91873735189438, + .95130664110184, + 1.0939226150513, + 1.1171194314957, + 1.1004731655121, + 1.3512066602707, + 1.4703129529953, + 1.4805699586868, + 1.7385860681534, + 1.8268398046494, + 1.5489361286163, + 1.7446503639221, + 1.864644408226, + 1.7200467586517, + 1.9223358631134, + 1.775306224823, + 1.5392524003983, + 1.4067870378494, + 1.9366238117218, + 1.2984343767166, + 1.1080636978149, + 1.3500427007675, + 1.2837564945221, + 1.2670782804489, + 1.3347851037979, + 1.2857422828674, + 1.1625040769577, + 1.2111755609512, + 1.0548515319824, + 1.2553508281708, + 1.0327949523926, + 1.0740388631821, + 1.222040772438, + .40555971860886, + 1.0233588218689, + .84209614992142, + 1.0186324119568, + 1.0319027900696, + .99487775564194, + 1.0439211130142, + .98785293102264, + 1.0620124340057, + 1.0916963815689, + 1.1378232240677, + 1.1243290901184, + 1.3305295705795, + 1.1925677061081, + 1.0872994661331, + 1.4599523544312, + 1.2333589792252, + 1.3584797382355, + 1.7595859766006, + 1.3009568452835, + 1.1157965660095, + 1.2948887348175, + 1.2063180208206, + 1.2332669496536, + 1.2132470607758, + 1.2049551010132, + 1.2260574102402, + 1.1875206232071, + 1.1547852754593, + 1.0519831180573, + 1.1594845056534, + 1.0069926977158, + 1.0675266981125, + 1.1299223899841, + 1.0620901584625, + 1.0999356508255, + 1.1535499095917, + 1.0026944875717, + 1.0428657531738, + 1.1120204925537, + 1.1684119701385, + 1.0258769989014, + 1.1342295408249, + 1.1183958053589, + .91313683986664, + .91156214475632, + 1.0540328025818, + .84359037876129, + .75758427381516, + .96401190757751, + .83226495981216, + .8759680390358, + .98239886760712, + .85917687416077, + 1.0634194612503, + .99442666769028, + 1.153311252594, + 1.2288066148758, + 1.0869039297104, + 1.281947016716, + 1.0067318677902, + 1.1028815507889, + .82448446750641, + .78489726781845, + 1.1850204467773, + .86753690242767, + 1.0692945718765, + 1.1030179262161, + .8791960477829, + .86451041698456, + 1.0455346107483, + 1.085998415947, + 1.0172398090363, + 1.2250980138779, + 1.2316122055054, + 1.062157869339, + 1.3991860151291, + 1.0520887374878, + 2.2203133106232, + .88833123445511, + 1.4289729595184, + 1.5206423997879, + .68520504236221, + 1.4659557342529, + 1.5350053310394, + 1.3178979158401, + 1.4888265132904, + 1.9698411226273, + 1.4406447410583, + 2.517040014267, + .55537897348404, + -.20722626149654, + 1.0899519920349, + 1.164245724678]) + +icstats = np.array([ 202, + np.nan, + -239.75290561974, + 4, + 487.50581123949, + 500.73888202909]) + +class Bunch(dict): + def __init__(self, **kw): + dict.__init__(self, kw) + self.__dict__ = self + + +results = Bunch(llf=llf, nobs=nobs, k=k, k_exog=k_exog, sigma=sigma, chi2=chi2, df_model=df_model, k_ar=k_ar, k_ma=k_ma, params=params, cov_params=cov_params, xb=xb, y=y, resid=resid, yr=yr, mse=mse, stdp=stdp, icstats=icstats, ) + diff --git a/statsmodels/tsa/tests/results/arima112nc_results.py b/statsmodels/tsa/tests/results/arima112nc_results.py new file mode 100644 index 0000000..7e9a3c8 --- /dev/null +++ b/statsmodels/tsa/tests/results/arima112nc_results.py @@ -0,0 +1,1077 @@ +import numpy as np + +llf = np.array([-240.79351748413]) + +nobs = np.array([ 202]) + +k = np.array([ 4]) + +k_exog = np.array([ 1]) + +sigma = np.array([ .79349479007541]) + +chi2 = np.array([ 31643.977146904]) + +df_model = np.array([ 3]) + +k_ar = np.array([ 1]) + +k_ma = np.array([ 2]) + +params = np.array([ .99502750401315, + -.68630179255403, + -.19840894739396, + .79349479007541]) + +cov_params = np.array([ .00010016992219, + -.00021444523598, + -.00023305572854, + -6.768123591e-06, + -.00021444523598, + .00104186449549, + .00023669747281, + 3.902897504e-06, + -.00023305572854, + .00023669747281, + .0010810935718, + .00020764808165, + -6.768123591e-06, + 3.902897504e-06, + .00020764808165, + .0002668504612]).reshape(4,4) + +xb = np.array([ 0, + 0, + .11361486464739, + .14230862259865, + .07256115227938, + .13274206221104, + .06747215241194, + .13822889328003, + .09585004299879, + .06099047139287, + .10120190680027, + .07761032879353, + .07942545413971, + .11177492141724, + .06088993698359, + .11208334565163, + .0755797252059, + .07422959059477, + .12350624799728, + .07623053342104, + .12391770631075, + .06531815230846, + .08897981792688, + .09103457629681, + .10980048775673, + .09255626052618, + .12732291221619, + .08764986693859, + .14262486994267, + .19330270588398, + .13410428166389, + .2202503234148, + .1138079687953, + .17364008724689, + .19471970200539, + .20120698213577, + .24072274565697, + .21839858591557, + .29251739382744, + .26838713884354, + .28637075424194, + .3556769490242, + .33624804019928, + .35650280117989, + .3974232673645, + .40968126058578, + .36446389555931, + .40641778707504, + .40639826655388, + .32208651304245, + .41636437177658, + .34307014942169, + .3511538207531, + .34216031432152, + .33759200572968, + .36354607343674, + .39148297905922, + .55032896995544, + .4113195836544, + .7244918346405, + .67152947187424, + .76787060499191, + .77276849746704, + .96944856643677, + .88270664215088, + .7563271522522, + .86404490470886, + .82250237464905, + .83520317077637, + .65044301748276, + .83044308423996, + .79827356338501, + .78103590011597, + .93702721595764, + .78709679841995, + .81435388326645, + .89593154191971, + .92867535352707, + 1.0709822177887, + 1.0957812070847, + 1.0792914628983, + 1.3286831378937, + 1.4503024816513, + 1.4619816541672, + 1.7190475463867, + 1.8096150159836, + 1.5324629545212, + 1.721804857254, + 1.8408879041672, + 1.6955831050873, + 1.8928952217102, + 1.7459137439728, + 1.5055395364761, + 1.3664853572845, + 1.8893030881882, + 1.256967663765, + 1.0567245483398, + 1.2921603918076, + 1.2266329526901, + 1.2085332870483, + 1.275726556778, + 1.2278587818146, + 1.1046848297119, + 1.1517647504807, + .99646359682083, + 1.194694519043, + .97580307722092, + 1.0148292779922, + 1.1635760068893, + .35167038440704, + .95728904008865, + .78414303064346, + .95968008041382, + .97746151685715, + .94291216135025, + .99327826499939, + .93940645456314, + 1.013852596283, + 1.0454497337341, + 1.0929356813431, + 1.0810794830322, + 1.2874436378479, + 1.1533098220825, + 1.0470397472382, + 1.4171674251556, + 1.1959022283554, + 1.3181202411652, + 1.7197531461716, + 1.2677561044693, + 1.0768386125565, + 1.2508004903793, + 1.1625586748123, + 1.1872273683548, + 1.1668027639389, + 1.1576874256134, + 1.1782459020615, + 1.1398378610611, + 1.1065219640732, + 1.0032601356506, + 1.1087976694107, + .95788156986237, + 1.0163568258286, + 1.079482793808, + 1.0131409168243, + 1.0506906509399, + 1.1052004098892, + .95601671934128, + .99452114105225, + 1.0641269683838, + 1.1217628717422, + .98107707500458, + 1.0877858400345, + 1.0735836029053, + .86890149116516, + .86449563503265, + 1.0060983896255, + .79812264442444, + .70991164445877, + .91461282968521, + .78625136613846, + .8291689157486, + .93680161237717, + .81633454561234, + 1.0196126699448, + .95442569255829, + 1.1131925582886, + 1.1916073560715, + 1.05200278759, + 1.2451642751694, + .97296446561813, + 1.0647999048233, + .78715896606445, + .74267995357513, + 1.1400059461594, + .82839399576187, + 1.0262999534607, + 1.0628409385681, + .84051495790482, + .82304340600967, + 1.0028872489929, + 1.0457111597061, + .97847640514374, + 1.1855980157852, + 1.195351600647, + 1.0270363092422, + 1.3610677719116, + 1.0189098119736, + 2.1800265312195, + .86722087860107, + 1.3893752098083, + 1.4851142168045, + .65110164880753, + 1.417050242424, + 1.4938380718231, + 1.2786860466003, + 1.446773648262, + 1.9284181594849, + 1.4071846008301, + 2.4745123386383, + .53088372945786, + -.25887301564217, + 1.0166070461273, + 1.1028108596802]) + +y = np.array([np.nan, + 28.979999542236, + 29.263614654541, + 29.492309570313, + 29.442562103271, + 29.672742843628, + 29.617471694946, + 29.888229370117, + 29.935850143433, + 29.870990753174, + 30.021202087402, + 30.057609558105, + 30.119426727295, + 30.321773529053, + 30.280889511108, + 30.492082595825, + 30.515581130981, + 30.554229736328, + 30.813507080078, + 30.826231002808, + 31.063919067383, + 31.015319824219, + 31.108980178833, + 31.21103477478, + 31.389801025391, + 31.472555160522, + 31.707323074341, + 31.737649917603, + 32.022624969482, + 32.473300933838, + 32.584106445313, + 33.070247650146, + 33.013809204102, + 33.273639678955, + 33.594722747803, + 33.901206970215, + 34.340721130371, + 34.61840057373, + 35.192520141602, + 35.568386077881, + 35.98637008667, + 36.65567779541, + 37.136245727539, + 37.65650177002, + 38.297424316406, + 38.909679412842, + 39.264465332031, + 39.806419372559, + 40.306400299072, + 40.42208480835, + 41.016361236572, + 41.243072509766, + 41.551155090332, + 41.84215927124, + 42.137592315674, + 42.563545227051, + 43.091484069824, + 44.250328063965, + 44.611320495605, + 46.324489593506, + 47.471527099609, + 48.867870330811, + 50.072769165039, + 51.9694480896, + 53.182704925537, + 53.756328582764, + 54.864044189453, + 55.722503662109, + 56.635204315186, + 56.750442504883, + 57.830444335938, + 58.698276519775, + 59.481037139893, + 60.937026977539, + 61.587097167969, + 62.414352416992, + 63.595932006836, + 64.828674316406, + 66.570983886719, + 68.195777893066, + 69.579292297363, + 71.928680419922, + 74.450302124023, + 76.661979675293, + 79.719047546387, + 82.709617614746, + 84.132461547852, + 86.421798706055, + 89.040885925293, + 90.79557800293, + 93.39289855957, + 95.14591217041, + 95.905540466309, + 96.366485595703, + 99.389305114746, + 99.356964111328, + 98.956726074219, + 100.09216308594, + 101.02663421631, + 102.00853729248, + 103.37572479248, + 104.52786254883, + 105.20468139648, + 106.25176239014, + 106.69645690918, + 108.19469451904, + 108.67579650879, + 109.51483154297, + 111.06357574463, + 109.05166625977, + 110.45729064941, + 110.98413848877, + 112.35968017578, + 113.6774597168, + 114.74291229248, + 115.99327850342, + 116.93940734863, + 118.21385192871, + 119.54544830322, + 120.99293518066, + 122.28107452393, + 124.38744354248, + 125.65331268311, + 126.44704437256, + 128.91716003418, + 130.09590148926, + 131.81811523438, + 135.11975097656, + 135.96775817871, + 136.17684936523, + 137.45079040527, + 138.36254882813, + 139.48722839355, + 140.56680297852, + 141.65768432617, + 142.87825012207, + 143.93983459473, + 144.9065246582, + 145.50326538086, + 146.70880126953, + 147.25788879395, + 148.21635437012, + 149.47947692871, + 150.41313171387, + 151.55068969727, + 152.90519714355, + 153.55603027344, + 154.49452209473, + 155.76412963867, + 157.22177124023, + 157.98107910156, + 159.28778076172, + 160.47357177734, + 160.76889038086, + 161.26449584961, + 162.50610351563, + 162.7981262207, + 162.90991210938, + 164.11460876465, + 164.6862487793, + 165.5291595459, + 166.83679199219, + 167.5163269043, + 169.11961364746, + 170.25442504883, + 172.01318359375, + 173.8916015625, + 174.95199584961, + 176.84516906738, + 177.37295532227, + 178.46479797363, + 178.38716125488, + 178.44267272949, + 180.44000244141, + 180.8283996582, + 182.22630310059, + 183.66284179688, + 184.04051208496, + 184.52304077148, + 185.90287780762, + 187.34571838379, + 188.37846374512, + 190.28559875488, + 191.99536132813, + 192.82704162598, + 195.16107177734, + 195.71890258789, + 201.3800201416, + 200.26721191406, + 202.08937072754, + 204.18510437012, + 202.55110168457, + 204.99105834961, + 207.41383361816, + 208.61668395996, + 210.57977294922, + 214.4234161377, + 215.40417480469, + 221.08451843262, + 217.41989135742, + 211.91511535645, + 213.68760681152, + 215.57180786133]) + +resid = np.array([np.nan, + .17000007629395, + .08638589829206, + -.12230817228556, + .09743892401457, + -.12274374067783, + .13252860307693, + -.04822873324156, + -.12585072219372, + .04901013895869, + -.04120244085789, + -.01760895550251, + .0905727148056, + -.1017746925354, + .09910991042852, + -.05208196863532, + -.03558072075248, + .13577139377594, + -.0635067820549, + .11377000063658, + -.11391747742891, + .00468154205009, + .01102056354284, + .0689652711153, + -.00980201456696, + .10744450241327, + -.05732321739197, + .14234967529774, + .25737473368645, + -.02330071851611, + .26589342951775, + -.17024727165699, + .08618897944689, + .12636296451092, + .10527954250574, + .19879072904587, + .05928030610085, + .28160139918327, + .10748030990362, + .13161440193653, + .31362771987915, + .14432306587696, + .16375194489956, + .24349948763847, + .20257519185543, + -.00967973750085, + .13553610444069, + .09358221292496, + -.20640131831169, + .17791347205639, + -.11636133491993, + -.04307091236115, + -.05115458369255, + -.04216108098626, + .06240950897336, + .13645392656326, + .60851699113846, + -.05032894387841, + .98867815732956, + .47550892829895, + .62846976518631, + .43213015794754, + .92723226547241, + .33055067062378, + -.18270587921143, + .24367287755013, + .0359565988183, + .07749536633492, + -.53520393371582, + .24955849349499, + .0695584192872, + .00172565307003, + .51896333694458, + -.13702796399593, + .01290242280811, + .28564843535423, + .30406919121742, + .67132312059402, + .5290162563324, + .30422034859657, + 1.0207070112228, + 1.0713183879852, + .74969446659088, + 1.3380213975906, + 1.1809539794922, + -.10961806029081, + .56753551959991, + .77819520235062, + .05911364778876, + .70441842079163, + .0071063125506, + -.74591380357742, + -.90554106235504, + 1.1335146427155, + -1.2893046140671, + -1.4569646120071, + -.15672297775745, + -.29216033220291, + -.22663290798664, + .09146212786436, + -.0757219940424, + -.42786338925362, + -.10468477010727, + -.55176627635956, + .3035394847393, + -.49469754099846, + -.1758000254631, + .38517218828201, + -2.3635804653168, + .44833266735077, + -.25729209184647, + .41586154699326, + .34031534194946, + .1225445792079, + .25708478689194, + .00672172475606, + .26059049367905, + .28615045547485, + .35455179214478, + .2070597410202, + .81892204284668, + .11255792528391, + -.25330832600594, + 1.0529587268829, + -.0171735137701, + .40410390496254, + 1.5818736553192, + -.41975006461143, + -.86774694919586, + .02315225638449, + -.25080046057701, + -.06255260109901, + -.08723650127649, + -.06679660826921, + .04230948910117, + -.07823982834816, + -.13983787596226, + -.40652501583099, + .09674594551325, + -.40880066156387, + -.05788768827915, + .1836401373148, + -.07948285341263, + .08686522394419, + .24931237101555, + -.30519738793373, + -.05602284148335, + .20547580718994, + .33588215708733, + -.22176894545555, + .21891987323761, + .11221113055944, + -.57358360290527, + -.36890152096748, + .23551045358181, + -.50609844923019, + -.59812569618225, + .29008835554123, + -.21461589634418, + .013751687482, + .37082800269127, + -.13679853081703, + .5836746096611, + .18038421869278, + .64556515216827, + .68681055307388, + .00838960427791, + .64800941944122, + -.44517654180527, + .02703555487096, + -.8647877573967, + -.68716812133789, + .85732614994049, + -.44000896811485, + .37160298228264, + .37370926141739, + -.46285009384155, + -.34051498770714, + .37695357203484, + .3971218764782, + .05427964404225, + .72153580188751, + .51439893245697, + -.19535164535046, + .97296363115311, + -.46107393503189, + 3.4810900688171, + -1.9800295829773, + .43278217315674, + .61062479019165, + -2.2851173877716, + 1.0229095220566, + .92894279956818, + -.07583882659674, + .51631212234497, + 1.9152258634567, + -.42641922831535, + 3.2058219909668, + -4.1955056190491, + -5.2458953857422, + .75588232278824, + .7813817858696, + .81318950653076]) + +yr = np.array([np.nan, + .17000007629395, + .08638589829206, + -.12230817228556, + .09743892401457, + -.12274374067783, + .13252860307693, + -.04822873324156, + -.12585072219372, + .04901013895869, + -.04120244085789, + -.01760895550251, + .0905727148056, + -.1017746925354, + .09910991042852, + -.05208196863532, + -.03558072075248, + .13577139377594, + -.0635067820549, + .11377000063658, + -.11391747742891, + .00468154205009, + .01102056354284, + .0689652711153, + -.00980201456696, + .10744450241327, + -.05732321739197, + .14234967529774, + .25737473368645, + -.02330071851611, + .26589342951775, + -.17024727165699, + .08618897944689, + .12636296451092, + .10527954250574, + .19879072904587, + .05928030610085, + .28160139918327, + .10748030990362, + .13161440193653, + .31362771987915, + .14432306587696, + .16375194489956, + .24349948763847, + .20257519185543, + -.00967973750085, + .13553610444069, + .09358221292496, + -.20640131831169, + .17791347205639, + -.11636133491993, + -.04307091236115, + -.05115458369255, + -.04216108098626, + .06240950897336, + .13645392656326, + .60851699113846, + -.05032894387841, + .98867815732956, + .47550892829895, + .62846976518631, + .43213015794754, + .92723226547241, + .33055067062378, + -.18270587921143, + .24367287755013, + .0359565988183, + .07749536633492, + -.53520393371582, + .24955849349499, + .0695584192872, + .00172565307003, + .51896333694458, + -.13702796399593, + .01290242280811, + .28564843535423, + .30406919121742, + .67132312059402, + .5290162563324, + .30422034859657, + 1.0207070112228, + 1.0713183879852, + .74969446659088, + 1.3380213975906, + 1.1809539794922, + -.10961806029081, + .56753551959991, + .77819520235062, + .05911364778876, + .70441842079163, + .0071063125506, + -.74591380357742, + -.90554106235504, + 1.1335146427155, + -1.2893046140671, + -1.4569646120071, + -.15672297775745, + -.29216033220291, + -.22663290798664, + .09146212786436, + -.0757219940424, + -.42786338925362, + -.10468477010727, + -.55176627635956, + .3035394847393, + -.49469754099846, + -.1758000254631, + .38517218828201, + -2.3635804653168, + .44833266735077, + -.25729209184647, + .41586154699326, + .34031534194946, + .1225445792079, + .25708478689194, + .00672172475606, + .26059049367905, + .28615045547485, + .35455179214478, + .2070597410202, + .81892204284668, + .11255792528391, + -.25330832600594, + 1.0529587268829, + -.0171735137701, + .40410390496254, + 1.5818736553192, + -.41975006461143, + -.86774694919586, + .02315225638449, + -.25080046057701, + -.06255260109901, + -.08723650127649, + -.06679660826921, + .04230948910117, + -.07823982834816, + -.13983787596226, + -.40652501583099, + .09674594551325, + -.40880066156387, + -.05788768827915, + .1836401373148, + -.07948285341263, + .08686522394419, + .24931237101555, + -.30519738793373, + -.05602284148335, + .20547580718994, + .33588215708733, + -.22176894545555, + .21891987323761, + .11221113055944, + -.57358360290527, + -.36890152096748, + .23551045358181, + -.50609844923019, + -.59812569618225, + .29008835554123, + -.21461589634418, + .013751687482, + .37082800269127, + -.13679853081703, + .5836746096611, + .18038421869278, + .64556515216827, + .68681055307388, + .00838960427791, + .64800941944122, + -.44517654180527, + .02703555487096, + -.8647877573967, + -.68716812133789, + .85732614994049, + -.44000896811485, + .37160298228264, + .37370926141739, + -.46285009384155, + -.34051498770714, + .37695357203484, + .3971218764782, + .05427964404225, + .72153580188751, + .51439893245697, + -.19535164535046, + .97296363115311, + -.46107393503189, + 3.4810900688171, + -1.9800295829773, + .43278217315674, + .61062479019165, + -2.2851173877716, + 1.0229095220566, + .92894279956818, + -.07583882659674, + .51631212234497, + 1.9152258634567, + -.42641922831535, + 3.2058219909668, + -4.1955056190491, + -5.2458953857422, + .75588232278824, + .7813817858696, + .81318950653076]) + +mse = np.array([ 1.4407075643539, + 1.4407075643539, + .79720854759216, + .75209444761276, + .71109557151794, + .68920749425888, + .67417079210281, + .66374856233597, + .65616118907928, + .65050256252289, + .64619332551956, + .64286160469055, + .64025497436523, + .63819670677185, + .63655960559845, + .6352499127388, + .63419729471207, + .63334810733795, + .63266098499298, + .63210368156433, + .63165074586868, + .63128209114075, + .63098156452179, + .63073641061783, + .63053613901138, + .63037252426147, + .6302387714386, + .63012927770615, + .63003975152969, + .62996637821198, + .62990635633469, + .62985718250275, + .62981688976288, + .62978386878967, + .62975686788559, + .62973469495773, + .62971651554108, + .62970167398453, + .62968945503235, + .62967944145203, + .62967127561569, + .62966454029083, + .62965905666351, + .62965452671051, + .62965083122253, + .62964779138565, + .62964528799057, + .62964326143265, + .62964159250259, + .62964022159576, + .62963908910751, + .62963819503784, + .62963742017746, + .62963682413101, + .62963628768921, + .6296358704567, + .62963551282883, + .62963527441025, + .62963503599167, + .62963485717773, + .6296346783638, + .62963455915451, + .62963443994522, + .62963438034058, + .62963432073593, + .62963426113129, + .62963420152664, + .629634141922, + .629634141922, + .62963408231735, + .62963408231735, + .62963408231735, + .62963402271271, + .62963402271271, + .62963402271271, + .62963402271271, + .62963402271271, + .62963402271271, + .62963402271271, + .62963402271271, + .62963402271271, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806, + .62963396310806]) + +icstats = np.array([ 202, + np.nan, + -240.79351748413, + 4, + 489.58703496826, + 502.82010575786]) + +class Bunch(dict): + def __init__(self, **kw): + dict.__init__(self, kw) + self.__dict__ = self + + +results = Bunch(llf=llf, nobs=nobs, k=k, k_exog=k_exog, sigma=sigma, chi2=chi2, df_model=df_model, k_ar=k_ar, k_ma=k_ma, params=params, cov_params=cov_params, xb=xb, y=y, resid=resid, yr=yr, mse=mse, icstats=icstats, ) + diff --git a/statsmodels/tsa/tests/results/arima211_css_results.py b/statsmodels/tsa/tests/results/arima211_css_results.py new file mode 100644 index 0000000..0403568 --- /dev/null +++ b/statsmodels/tsa/tests/results/arima211_css_results.py @@ -0,0 +1,1291 @@ +import numpy as np + +llf = np.array([-240.29558272688]) + +nobs = np.array([ 202]) + +k = np.array([ 5]) + +k_exog = np.array([ 1]) + +sigma = np.array([ .79494581155191]) + +chi2 = np.array([ 1213.6019521322]) + +df_model = np.array([ 3]) + +k_ar = np.array([ 2]) + +k_ma = np.array([ 1]) + +params = np.array([ .72428568600554, + 1.1464248419014, + -.17024528879204, + -.87113675466923, + .63193884330392]) + +cov_params = np.array([ .31218565961764, + -.01618380799341, + .00226345462929, + .01386291798401, + -.0036338799176, + -.01618380799341, + .00705713030623, + -.00395404914463, + -.00685704952799, + -.00018629958479, + .00226345462929, + -.00395404914463, + .00255884492061, + .00363586332269, + .00039879711931, + .01386291798401, + -.00685704952799, + .00363586332269, + .00751765532203, + .00008982556101, + -.0036338799176, + -.00018629958479, + .00039879711931, + .00008982556101, + .00077550533053]).reshape(5,5) + +xb = np.array([ .72428566217422, + .72428566217422, + .56208884716034, + .53160965442657, + .45030161738396, + .45229381322861, + .38432359695435, + .40517011284828, + .36063131690025, + .30754271149635, + .32044330239296, + .29408219456673, + .27966624498367, + .29743707180023, + .25011941790581, + .27747189998627, + .24822402000427, + .23426930606365, + .27233305573463, + .23524768650532, + .26427435874939, + .21787133812904, + .22461311519146, + .22853142023087, + .24335558712482, + .22953669726849, + .25524401664734, + .22482520341873, + .26450532674789, + .31863233447075, + .27352628111839, + .33670437335968, + .25623551011086, + .28701293468475, + .315819054842, + .3238864839077, + .35844340920448, + .34399557113647, + .40348997712135, + .39373970031738, + .4022718667984, + .46476069092751, + .45762005448341, + .46842387318611, + .50536489486694, + .52051961421967, + .47866532206535, + .50378143787384, + .50863671302795, + .4302790760994, + .49568024277687, + .44652271270752, + .43774726986885, + .43010330200195, + .42344436049461, + .44517293572426, + .47460499405861, + .62086409330368, + .52550911903381, + .77532315254211, + .78466820716858, + .85438597202301, + .87056696414948, + 1.0393311977386, + .99110960960388, + .85202795267105, + .91560190916061, + .89238166809082, + .88917690515518, + .72121334075928, + .84221452474594, + .8454754948616, + .82078683376312, + .95394861698151, + .84718400239944, + .839300096035, + .91501939296722, + .95743554830551, + 1.0874761343002, + 1.1326615810394, + 1.1169674396515, + 1.3300451040268, + 1.4790810346603, + 1.5027786493301, + 1.7226468324661, + 1.8395622968674, + 1.5940405130386, + 1.694568157196, + 1.8241587877274, + 1.7037791013718, + 1.838702917099, + 1.7334734201431, + 1.4791669845581, + 1.3007366657257, + 1.7364456653595, + 1.2694935798645, + .96595168113708, + 1.1405370235443, + 1.1328836679459, + 1.1091921329498, + 1.171138882637, + 1.1465038061142, + 1.0319484472275, + 1.055313706398, + .93150246143341, + 1.0844472646713, + .93333613872528, + .93137633800507, + 1.0778160095215, + .38748729228973, + .77933365106583, + .75266307592392, + .88410103321075, + .94100385904312, + .91849637031555, + .96046274900436, + .92494148015976, + .98310285806656, + 1.0272513628006, + 1.0762135982513, + 1.0743116140366, + 1.254854798317, + 1.1723403930664, + 1.0479376316071, + 1.3550333976746, + 1.2255589962006, + 1.2870025634766, + 1.6643482446671, + 1.3312928676605, + 1.0657893419266, + 1.1804157495499, + 1.1335761547089, + 1.137326002121, + 1.1235628128052, + 1.1115798950195, + 1.1286649703979, + 1.0989991426468, + 1.0626485347748, + .96542054414749, + 1.0419135093689, + .93033194541931, + .95628559589386, + 1.027433514595, + .98328214883804, + 1.0063992738724, + 1.0645687580109, + .94354963302612, + .95077443122864, + 1.0226324796677, + 1.089217543602, + .97552293539047, + 1.0441918373108, + 1.052937746048, + .86785578727722, + .82579529285431, + .95432937145233, + .79897737503052, + .68320548534393, + .85365778207779, + .78336101770401, + .80072748661041, + .9089440703392, + .82500487565994, + .98515397310257, + .96745657920837, + 1.0962044000626, + 1.195325255394, + 1.0824474096298, + 1.2239117622375, + 1.0142554044724, + 1.0399018526077, + .80796521902084, + .7145761847496, + 1.0631860494614, + .86374056339264, + .98086261749268, + 1.0528303384781, + .86123734712601, + .80300676822662, + .96200370788574, + 1.0364016294479, + .98456978797913, + 1.1556725502014, + 1.2025715112686, + 1.0507286787033, + 1.312912106514, + 1.0682457685471, + 2.0334177017212, + 1.0775905847549, + 1.2798084020615, + 1.461397767067, + .72960823774338, + 1.2498733997345, + 1.466894865036, + 1.286082983017, + 1.3903408050537, + 1.8483582735062, + 1.4685434103012, + 2.3107523918152, + .7711226940155, + -.31598940491676, + .68151205778122, + 1.0212944746017]) + +y = np.array([np.nan, + 29.704284667969, + 29.712087631226, + 29.881610870361, + 29.820302963257, + 29.992294311523, + 29.934322357178, + 30.155170440674, + 30.200632095337, + 30.117542266846, + 30.24044418335, + 30.274082183838, + 30.319667816162, + 30.507436752319, + 30.470119476318, + 30.657470703125, + 30.68822479248, + 30.714269638062, + 30.962333679199, + 30.985248565674, + 31.204275131226, + 31.16787147522, + 31.244613647461, + 31.348531723022, + 31.523355484009, + 31.609535217285, + 31.835243225098, + 31.874824523926, + 32.144504547119, + 32.5986328125, + 32.723526000977, + 33.186702728271, + 33.156238555908, + 33.387012481689, + 33.7158203125, + 34.023887634277, + 34.458442687988, + 34.743995666504, + 35.303489685059, + 35.693740844727, + 36.102272033691, + 36.764759063721, + 37.257617950439, + 37.768424987793, + 38.405364990234, + 39.020519256592, + 39.378665924072, + 39.903781890869, + 40.408638000488, + 40.530277252197, + 41.095680236816, + 41.346523284912, + 41.637748718262, + 41.930103302002, + 42.223442077637, + 42.645172119141, + 43.174606323242, + 44.320865631104, + 44.725509643555, + 46.37532043457, + 47.584667205811, + 48.954383850098, + 50.170566558838, + 52.039329528809, + 53.291107177734, + 53.852027893066, + 54.915603637695, + 55.792385101318, + 56.6891746521, + 56.821212768555, + 57.842212677002, + 58.745475769043, + 59.5207862854, + 60.953948974609, + 61.6471824646, + 62.439296722412, + 63.615020751953, + 64.857437133789, + 66.587478637695, + 68.23265838623, + 69.616966247559, + 71.930046081543, + 74.479080200195, + 76.702774047852, + 79.722648620605, + 82.739562988281, + 84.194038391113, + 86.394561767578, + 89.024154663086, + 90.803779602051, + 93.33869934082, + 95.133476257324, + 95.879165649414, + 96.300735473633, + 99.236442565918, + 99.369491577148, + 98.865951538086, + 99.940536499023, + 100.93288421631, + 101.90919494629, + 103.27114105225, + 104.44651031494, + 105.13195037842, + 106.15531158447, + 106.63150024414, + 108.08444976807, + 108.63333129883, + 109.43137359619, + 110.9778137207, + 109.08748626709, + 110.27933502197, + 110.95265960693, + 112.28410339355, + 113.64099884033, + 114.71849822998, + 115.96046447754, + 116.9249420166, + 118.18309783936, + 119.52725219727, + 120.97621154785, + 122.27430725098, + 124.35485076904, + 125.67234039307, + 126.44793701172, + 128.85502624512, + 130.12554931641, + 131.78700256348, + 135.06434631348, + 136.03129577637, + 136.16580200195, + 137.38041687012, + 138.3335723877, + 139.43733215332, + 140.52355957031, + 141.61158752441, + 142.82865905762, + 143.8990020752, + 144.86265563965, + 145.46542358398, + 146.64192199707, + 147.2303314209, + 148.15628051758, + 149.42742919922, + 150.38327026367, + 151.50639343262, + 152.86457824707, + 153.54354858398, + 154.45077514648, + 155.72262573242, + 157.18922424316, + 157.97552490234, + 159.24418640137, + 160.45292663574, + 160.7678527832, + 161.22578430176, + 162.45433044434, + 162.79898071289, + 162.88320922852, + 164.05364990234, + 164.68334960938, + 165.50071716309, + 166.80894470215, + 167.52500915527, + 169.08515930176, + 170.26745605469, + 171.99620056152, + 173.89532470703, + 174.98243713379, + 176.82391357422, + 177.41424560547, + 178.43989562988, + 178.40797424316, + 178.41456604004, + 180.36318969727, + 180.86373901367, + 182.18086242676, + 183.65283203125, + 184.06123352051, + 184.50300598145, + 185.86199951172, + 187.33641052246, + 188.38456726074, + 190.25567626953, + 192.00257873535, + 192.85073852539, + 195.11291503906, + 195.76824951172, + 201.23341369629, + 200.47758483887, + 201.97981262207, + 204.16139221191, + 202.6296081543, + 204.82388305664, + 207.38688659668, + 208.62408447266, + 210.52333068848, + 214.34335327148, + 215.46553039551, + 220.92074584961, + 217.66012573242, + 211.85800170898, + 213.35252380371, + 215.49029541016]) + +resid = np.array([np.nan, + -.55428558588028, + -.36208805441856, + -.5116091966629, + -.28030154109001, + -.4422954916954, + -.18432281911373, + -.31516996026039, + -.39063200354576, + -.19754208624363, + -.26044383645058, + -.23408082127571, + -.10966806858778, + -.2874368429184, + -.09011957794428, + -.21747054159641, + -.20822501182556, + -.02426831051707, + -.21233357489109, + -.0452471524477, + -.25427412986755, + -.14787164330482, + -.12461274117231, + -.06853157281876, + -.14335711300373, + -.02953593060374, + -.18524432182312, + .00517434487119, + .13549427688122, + -.14863033592701, + .12647144496441, + -.28670132160187, + -.05623856931925, + .01299012638628, + -.01581981778145, + .07611121237278, + -.05844036862254, + .15600442886353, + -.00349225639366, + .0062618162483, + .19772660732269, + .03523930162191, + .04237993061543, + .13157841563225, + .09463357180357, + -.12051809579134, + .021334676072, + -.00378143391572, + -.30863979458809, + .06972090899944, + -.19567719101906, + -.14652347564697, + -.13774801790714, + -.13010406494141, + -.02344283089042, + .05482704937458, + .52539497613907, + -.12086410820484, + .87448859214783, + .42467761039734, + .51533102989197, + .34561482071877, + .82943379878998, + .2606680393219, + -.29110881686211, + .14797207713127, + -.01560037955642, + .00761602073908, + -.58917766809464, + .17878817021847, + .05778701230884, + -.04547626897693, + .47921240329742, + -.15394935011864, + -.0471847653389, + .26070219278336, + .28498136997223, + .64256292581558, + .51252233982086, + .2673399746418, + .9830310344696, + 1.0699564218521, + .72091597318649, + 1.2972244024277, + 1.1773546934128, + -.13956540822983, + .50595796108246, + .80543184280396, + .07584273815155, + .6962223649025, + .06129856407642, + -.73347336053848, + -.87916851043701, + 1.1992633342743, + -1.1364471912384, + -1.4694905281067, + -.0659501478076, + -.14053705334663, + -.13288362324238, + .19080325961113, + .02886573970318, + -.34650835394859, + -.03194846212864, + -.45531520247459, + .36850056052208, + -.38445034623146, + -.13333308696747, + .46862518787384, + -2.2778205871582, + .41251575946808, + -.07933671027422, + .4473415017128, + .4158943593502, + .1590022444725, + .28150060772896, + .03953726217151, + .27505549788475, + .31690016388893, + .37275013327599, + .22378182411194, + .82568991184235, + .14514668285847, + -.27233889698982, + 1.052060842514, + .04496052488685, + .37444713711739, + 1.6129913330078, + -.36434525251389, + -.93128365278244, + .03420155867934, + -.1804157346487, + -.03357006236911, + -.03733511269093, + -.02355666831136, + .08841699361801, + -.02865886501968, + -.09899909794331, + -.36265158653259, + .13458555936813, + -.34191656112671, + -.03033804148436, + .24371138215065, + -.02743346057832, + .1167239844799, + .29360374808311, + -.26456567645073, + -.04355576634407, + .24922250211239, + .37737664580345, + -.18922370672226, + .22447402775288, + .15580512583256, + -.55293774604797, + -.36785578727722, + .27421084046364, + -.45432937145233, + -.59898042678833, + .31679451465607, + -.1536608338356, + .01664204336703, + .39926943182945, + -.10894102603197, + .57500427961349, + .21484296023846, + .63253426551819, + .7037987112999, + .00467173522338, + .61756485700607, + -.4239239692688, + -.014255377464, + -.83988964557648, + -.70797437429428, + .88542991876602, + -.36318910121918, + .33625638484955, + .41914650797844, + -.4528394639492, + -.36123737692833, + .39699018001556, + .43800541758537, + .06358920782804, + .71544241905212, + .54432433843613, + -.20257151126862, + .94927132129669, + -.41291815042496, + 3.4317541122437, + -1.8334206342697, + .22241242229939, + .72019159793854, + -2.2614006996155, + .94440299272537, + 1.0961196422577, + -.04889564588666, + .50891524553299, + 1.971658706665, + -.34635934233665, + 3.1444630622864, + -4.0317454338074, + -5.4861345291138, + .81299871206284, + 1.1164767742157, + .89470589160919]) + +yr = np.array([np.nan, + -.55428558588028, + -.36208805441856, + -.5116091966629, + -.28030154109001, + -.4422954916954, + -.18432281911373, + -.31516996026039, + -.39063200354576, + -.19754208624363, + -.26044383645058, + -.23408082127571, + -.10966806858778, + -.2874368429184, + -.09011957794428, + -.21747054159641, + -.20822501182556, + -.02426831051707, + -.21233357489109, + -.0452471524477, + -.25427412986755, + -.14787164330482, + -.12461274117231, + -.06853157281876, + -.14335711300373, + -.02953593060374, + -.18524432182312, + .00517434487119, + .13549427688122, + -.14863033592701, + .12647144496441, + -.28670132160187, + -.05623856931925, + .01299012638628, + -.01581981778145, + .07611121237278, + -.05844036862254, + .15600442886353, + -.00349225639366, + .0062618162483, + .19772660732269, + .03523930162191, + .04237993061543, + .13157841563225, + .09463357180357, + -.12051809579134, + .021334676072, + -.00378143391572, + -.30863979458809, + .06972090899944, + -.19567719101906, + -.14652347564697, + -.13774801790714, + -.13010406494141, + -.02344283089042, + .05482704937458, + .52539497613907, + -.12086410820484, + .87448859214783, + .42467761039734, + .51533102989197, + .34561482071877, + .82943379878998, + .2606680393219, + -.29110881686211, + .14797207713127, + -.01560037955642, + .00761602073908, + -.58917766809464, + .17878817021847, + .05778701230884, + -.04547626897693, + .47921240329742, + -.15394935011864, + -.0471847653389, + .26070219278336, + .28498136997223, + .64256292581558, + .51252233982086, + .2673399746418, + .9830310344696, + 1.0699564218521, + .72091597318649, + 1.2972244024277, + 1.1773546934128, + -.13956540822983, + .50595796108246, + .80543184280396, + .07584273815155, + .6962223649025, + .06129856407642, + -.73347336053848, + -.87916851043701, + 1.1992633342743, + -1.1364471912384, + -1.4694905281067, + -.0659501478076, + -.14053705334663, + -.13288362324238, + .19080325961113, + .02886573970318, + -.34650835394859, + -.03194846212864, + -.45531520247459, + .36850056052208, + -.38445034623146, + -.13333308696747, + .46862518787384, + -2.2778205871582, + .41251575946808, + -.07933671027422, + .4473415017128, + .4158943593502, + .1590022444725, + .28150060772896, + .03953726217151, + .27505549788475, + .31690016388893, + .37275013327599, + .22378182411194, + .82568991184235, + .14514668285847, + -.27233889698982, + 1.052060842514, + .04496052488685, + .37444713711739, + 1.6129913330078, + -.36434525251389, + -.93128365278244, + .03420155867934, + -.1804157346487, + -.03357006236911, + -.03733511269093, + -.02355666831136, + .08841699361801, + -.02865886501968, + -.09899909794331, + -.36265158653259, + .13458555936813, + -.34191656112671, + -.03033804148436, + .24371138215065, + -.02743346057832, + .1167239844799, + .29360374808311, + -.26456567645073, + -.04355576634407, + .24922250211239, + .37737664580345, + -.18922370672226, + .22447402775288, + .15580512583256, + -.55293774604797, + -.36785578727722, + .27421084046364, + -.45432937145233, + -.59898042678833, + .31679451465607, + -.1536608338356, + .01664204336703, + .39926943182945, + -.10894102603197, + .57500427961349, + .21484296023846, + .63253426551819, + .7037987112999, + .00467173522338, + .61756485700607, + -.4239239692688, + -.014255377464, + -.83988964557648, + -.70797437429428, + .88542991876602, + -.36318910121918, + .33625638484955, + .41914650797844, + -.4528394639492, + -.36123737692833, + .39699018001556, + .43800541758537, + .06358920782804, + .71544241905212, + .54432433843613, + -.20257151126862, + .94927132129669, + -.41291815042496, + 3.4317541122437, + -1.8334206342697, + .22241242229939, + .72019159793854, + -2.2614006996155, + .94440299272537, + 1.0961196422577, + -.04889564588666, + .50891524553299, + 1.971658706665, + -.34635934233665, + 3.1444630622864, + -4.0317454338074, + -5.4861345291138, + .81299871206284, + 1.1164767742157, + .89470589160919]) + +mse = np.array([ 1.1115040779114, + .69814515113831, + .63478744029999, + .63409090042114, + .63356643915176, + .63317084312439, + .63287192583084, + .63264590501785, + .63247483968735, + .63234525918961, + .63224703073502, + .63217264413834, + .63211619853973, + .63207340240479, + .63204091787338, + .63201630115509, + .63199764490128, + .63198345899582, + .63197267055511, + .63196450471878, + .63195830583572, + .63195365667343, + .63195008039474, + .63194733858109, + .63194531202316, + .6319437623024, + .6319425702095, + .63194167613983, + .63194096088409, + .63194048404694, + .63194006681442, + .6319397687912, + .63193953037262, + .63193941116333, + .6319392323494, + .63193917274475, + .63193905353546, + .63193899393082, + .63193899393082, + .63193893432617, + .63193893432617, + .63193887472153, + .63193887472153, + .63193887472153, + .63193887472153, + .63193887472153, + .63193887472153, + .63193887472153, + .63193887472153, + .63193887472153, + .63193887472153, + .63193887472153, + .63193887472153, + .63193887472153, + .63193887472153, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688, + .63193881511688]) + +stdp = np.array([ .72428566217422, + .72428566217422, + .56208884716034, + .53160965442657, + .45030161738396, + .45229381322861, + .38432359695435, + .40517011284828, + .36063131690025, + .30754271149635, + .32044330239296, + .29408219456673, + .27966624498367, + .29743707180023, + .25011941790581, + .27747189998627, + .24822402000427, + .23426930606365, + .27233305573463, + .23524768650532, + .26427435874939, + .21787133812904, + .22461311519146, + .22853142023087, + .24335558712482, + .22953669726849, + .25524401664734, + .22482520341873, + .26450532674789, + .31863233447075, + .27352628111839, + .33670437335968, + .25623551011086, + .28701293468475, + .315819054842, + .3238864839077, + .35844340920448, + .34399557113647, + .40348997712135, + .39373970031738, + .4022718667984, + .46476069092751, + .45762005448341, + .46842387318611, + .50536489486694, + .52051961421967, + .47866532206535, + .50378143787384, + .50863671302795, + .4302790760994, + .49568024277687, + .44652271270752, + .43774726986885, + .43010330200195, + .42344436049461, + .44517293572426, + .47460499405861, + .62086409330368, + .52550911903381, + .77532315254211, + .78466820716858, + .85438597202301, + .87056696414948, + 1.0393311977386, + .99110960960388, + .85202795267105, + .91560190916061, + .89238166809082, + .88917690515518, + .72121334075928, + .84221452474594, + .8454754948616, + .82078683376312, + .95394861698151, + .84718400239944, + .839300096035, + .91501939296722, + .95743554830551, + 1.0874761343002, + 1.1326615810394, + 1.1169674396515, + 1.3300451040268, + 1.4790810346603, + 1.5027786493301, + 1.7226468324661, + 1.8395622968674, + 1.5940405130386, + 1.694568157196, + 1.8241587877274, + 1.7037791013718, + 1.838702917099, + 1.7334734201431, + 1.4791669845581, + 1.3007366657257, + 1.7364456653595, + 1.2694935798645, + .96595168113708, + 1.1405370235443, + 1.1328836679459, + 1.1091921329498, + 1.171138882637, + 1.1465038061142, + 1.0319484472275, + 1.055313706398, + .93150246143341, + 1.0844472646713, + .93333613872528, + .93137633800507, + 1.0778160095215, + .38748729228973, + .77933365106583, + .75266307592392, + .88410103321075, + .94100385904312, + .91849637031555, + .96046274900436, + .92494148015976, + .98310285806656, + 1.0272513628006, + 1.0762135982513, + 1.0743116140366, + 1.254854798317, + 1.1723403930664, + 1.0479376316071, + 1.3550333976746, + 1.2255589962006, + 1.2870025634766, + 1.6643482446671, + 1.3312928676605, + 1.0657893419266, + 1.1804157495499, + 1.1335761547089, + 1.137326002121, + 1.1235628128052, + 1.1115798950195, + 1.1286649703979, + 1.0989991426468, + 1.0626485347748, + .96542054414749, + 1.0419135093689, + .93033194541931, + .95628559589386, + 1.027433514595, + .98328214883804, + 1.0063992738724, + 1.0645687580109, + .94354963302612, + .95077443122864, + 1.0226324796677, + 1.089217543602, + .97552293539047, + 1.0441918373108, + 1.052937746048, + .86785578727722, + .82579529285431, + .95432937145233, + .79897737503052, + .68320548534393, + .85365778207779, + .78336101770401, + .80072748661041, + .9089440703392, + .82500487565994, + .98515397310257, + .96745657920837, + 1.0962044000626, + 1.195325255394, + 1.0824474096298, + 1.2239117622375, + 1.0142554044724, + 1.0399018526077, + .80796521902084, + .7145761847496, + 1.0631860494614, + .86374056339264, + .98086261749268, + 1.0528303384781, + .86123734712601, + .80300676822662, + .96200370788574, + 1.0364016294479, + .98456978797913, + 1.1556725502014, + 1.2025715112686, + 1.0507286787033, + 1.312912106514, + 1.0682457685471, + 2.0334177017212, + 1.0775905847549, + 1.2798084020615, + 1.461397767067, + .72960823774338, + 1.2498733997345, + 1.466894865036, + 1.286082983017, + 1.3903408050537, + 1.8483582735062, + 1.4685434103012, + 2.3107523918152, + .7711226940155, + -.31598940491676, + .68151205778122, + 1.0212944746017]) + +icstats = np.array([ 202, + np.nan, + -240.29558272688, + 5, + 490.59116545376, + 507.13250394077]) + +class Bunch(dict): + def __init__(self, **kw): + dict.__init__(self, kw) + self.__dict__ = self + + +results = Bunch(llf=llf, nobs=nobs, k=k, k_exog=k_exog, sigma=sigma, chi2=chi2, df_model=df_model, k_ar=k_ar, k_ma=k_ma, params=params, cov_params=cov_params, xb=xb, y=y, resid=resid, yr=yr, mse=mse, stdp=stdp, icstats=icstats, ) + diff --git a/statsmodels/tsa/tests/results/arima211_results.py b/statsmodels/tsa/tests/results/arima211_results.py new file mode 100644 index 0000000..eca0922 --- /dev/null +++ b/statsmodels/tsa/tests/results/arima211_results.py @@ -0,0 +1,1291 @@ +import numpy as np + +llf = np.array([-239.91961140777]) + +nobs = np.array([ 202]) + +k = np.array([ 5]) + +k_exog = np.array([ 1]) + +sigma = np.array([ .79249918716869]) + +chi2 = np.array([ 907.36856676748]) + +df_model = np.array([ 3]) + +k_ar = np.array([ 2]) + +k_ma = np.array([ 1]) + +params = np.array([ .86132870569126, + 1.1429974468925, + -.16912378249242, + -.87400688606796, + .79249918716869]) + +cov_params = np.array([ .22693223682292, + -.00989623843683, + -.00092349277863, + .00706357033712, + -.00195332705416, + -.00989623843683, + .00771565502349, + -.00405286187622, + -.00748374882497, + -.00006513770699, + -.00092349277863, + -.00405286187622, + .00252946620109, + .00372566422545, + .00024079697522, + .00706357033712, + -.00748374882497, + .00372566422545, + .00812286034649, + 8.202907726e-06, + -.00195332705416, + -.00006513770699, + .00024079697522, + 8.202907726e-06, + .00031052148013]).reshape(5,5) + +xb = np.array([ .86132872104645, + .86132872104645, + .58931648731232, + .53695642948151, + .43875110149384, + .43893754482269, + .36897498369217, + .39383068680763, + .35268598794937, + .30327013134956, + .3206245303154, + .29862868785858, + .2883597612381, + .30968201160431, + .26627779006958, + .29635512828827, + .27021989226341, + .25900682806969, + .29855474829674, + .26389503479004, + .2940701842308, + .24996083974838, + .25805163383484, + .26306444406509, + .27853038907051, + .26575443148613, + .29165366292, + .262396723032, + .30186694860458, + .35503962635994, + .31088310480118, + .37306407094002, + .29435822367668, + .32511350512505, + .35352823138237, + .36144828796387, + .39527052640915, + .38102087378502, + .43927636742592, + .42946752905846, + .43780836462975, + .49889534711838, + .49156260490417, + .50206583738327, + .53814554214478, + .55276554822922, + .51174682378769, + .53661912679672, + .54144555330276, + .4649658203125, + .52955776453018, + .48147654533386, + .47327646613121, + .46611019968987, + .45984682440758, + .48127228021622, + .50998419523239, + .65266174077988, + .5583056807518, + .80249065160751, + .80990171432495, + .87710189819336, + .89202457666397, + 1.0564744472504, + 1.0080462694168, + .87197554111481, + .93521976470947, + .9128600358963, + .91022855043411, + .7465353012085, + .866335272789, + .86956661939621, + .84549117088318, + .97585707902908, + .87074065208435, + .86343002319336, + .93773847818375, + .97884559631348, + 1.1054569482803, + 1.1484670639038, + 1.1322609186172, + 1.3402134180069, + 1.4842771291733, + 1.5056529045105, + 1.719556927681, + 1.8319338560104, + 1.5904501676559, + 1.6899375915527, + 1.8168371915817, + 1.6987046003342, + 1.8314251899719, + 1.7283667325974, + 1.4807628393173, + 1.308970451355, + 1.7375549077988, + 1.2797228097916, + .98571860790253, + 1.1599444150925, + 1.1530816555023, + 1.13017141819, + 1.1908437013626, + 1.1662386655807, + 1.0540459156036, + 1.0774390697479, + .95646268129349, + 1.1066728830338, + .95817422866821, + .95676136016846, + 1.1000070571899, + .42435362935066, + .81153392791748, + .78478264808655, + .91281259059906, + .9670450091362, + .94373846054077, + .98408794403076, + .9486455321312, + 1.0052901506424, + 1.0478744506836, + 1.095078587532, + 1.0925225019455, + 1.2685979604721, + 1.1865184307098, + 1.0648469924927, + 1.3658550977707, + 1.2376955747604, + 1.2978720664978, + 1.6663243770599, + 1.338112950325, + 1.0797605514526, + 1.1944576501846, + 1.1494234800339, + 1.153874874115, + 1.1408479213715, + 1.1294689178467, + 1.1464176177979, + 1.1174235343933, + 1.0820926427841, + .98742854595184, + 1.0630278587341, + .95385235548019, + .97988063097, + 1.049503326416, + 1.0058189630508, + 1.0283635854721, + 1.0849515199661, + .96609032154083, + .97366327047348, + 1.0440692901611, + 1.1086683273315, + .99680209159851, + 1.0642927885056, + 1.0725424289703, + .8914600610733, + .85157895088196, + .97811859846115, + .8258438706398, + .71353197097778, + .88130152225494, + .81193578243256, + .82894796133041, + .9344978928566, + .85150623321533, + 1.0080153942108, + .9895287156105, + 1.1147927045822, + 1.2104271650314, + 1.0987895727158, + 1.23719227314, + 1.0314946174622, + 1.0577303171158, + .8316445350647, + .74243623018265, + 1.0848734378815, + .88838368654251, + 1.0033586025238, + 1.0730868577957, + .88500571250916, + .82902699708939, + .98530465364456, + 1.057307600975, + 1.0057097673416, + 1.1727533340454, + 1.2172684669495, + 1.0678850412369, + 1.3246995210648, + 1.0841422080994, + 2.0282983779907, + 1.0879902839661, + 1.289278626442, + 1.4674614667892, + .75163400173187, + 1.2650294303894, + 1.4760826826096, + 1.2972749471664, + 1.3993507623672, + 1.8463147878647, + 1.4716247320175, + 2.2955448627472, + .7857254743576, + -.26799991726875, + .71938097476959, + 1.0508332252502]) + +y = np.array([np.nan, + 29.841327667236, + 29.739316940308, + 29.886957168579, + 29.808752059937, + 29.978939056396, + 29.918973922729, + 30.143831253052, + 30.192686080933, + 30.113269805908, + 30.24062538147, + 30.27862739563, + 30.32836151123, + 30.519681930542, + 30.486276626587, + 30.67635345459, + 30.710220336914, + 30.73900604248, + 30.988555908203, + 31.01389503479, + 31.234069824219, + 31.199960708618, + 31.278051376343, + 31.383066177368, + 31.558530807495, + 31.645753860474, + 31.871654510498, + 31.912395477295, + 32.181865692139, + 32.635040283203, + 32.760883331299, + 33.223064422607, + 33.194358825684, + 33.425113677979, + 33.753528594971, + 34.061447143555, + 34.495269775391, + 34.781021118164, + 35.339279174805, + 35.729465484619, + 36.137809753418, + 36.798892974854, + 37.291561126709, + 37.802066802979, + 38.438148498535, + 39.052764892578, + 39.41174697876, + 39.936618804932, + 40.44144821167, + 40.564964294434, + 41.129554748535, + 41.381477355957, + 41.673278808594, + 41.966110229492, + 42.259845733643, + 42.681274414063, + 43.209983825684, + 44.352661132813, + 44.758304595947, + 46.402488708496, + 47.609901428223, + 48.977100372314, + 50.192024230957, + 52.05647277832, + 53.308044433594, + 53.871974945068, + 54.935218811035, + 55.81286239624, + 56.710227966309, + 56.846534729004, + 57.86633682251, + 58.769569396973, + 59.545490264893, + 60.975856781006, + 61.670738220215, + 62.463428497314, + 63.637741088867, + 64.878845214844, + 66.605453491211, + 68.248466491699, + 69.632263183594, + 71.940208435059, + 74.484275817871, + 76.70565032959, + 79.71955871582, + 82.73193359375, + 84.190444946289, + 86.389930725098, + 89.016830444336, + 90.798706054688, + 93.331428527832, + 95.128364562988, + 95.880767822266, + 96.308967590332, + 99.23755645752, + 99.379722595215, + 98.885719299316, + 99.959945678711, + 100.95308685303, + 101.93017578125, + 103.29084014893, + 104.4662399292, + 105.15404510498, + 106.17743682861, + 106.65645599365, + 108.10667419434, + 108.65817260742, + 109.45676422119, + 111.00000762939, + 109.12435150146, + 110.31153106689, + 110.98477935791, + 112.31281280518, + 113.66704559326, + 114.74374389648, + 115.98408508301, + 116.94864654541, + 118.20528411865, + 119.54787445068, + 120.99507904053, + 122.29251861572, + 124.36859893799, + 125.68651580811, + 126.46485137939, + 128.86585998535, + 130.1376953125, + 131.79786682129, + 135.06631469727, + 136.03811645508, + 136.17976379395, + 137.39445495605, + 138.34942626953, + 139.45387268066, + 140.54084777832, + 141.6294708252, + 142.84642028809, + 143.91741943359, + 144.88209533691, + 145.48742675781, + 146.66304016113, + 147.25386047363, + 148.17987060547, + 149.4494934082, + 150.40580749512, + 151.52836608887, + 152.88494873047, + 153.56610107422, + 154.47366333008, + 155.74406433105, + 157.20867919922, + 157.9967956543, + 159.26428222656, + 160.47253417969, + 160.79145812988, + 161.25157165527, + 162.47811889648, + 162.82585144043, + 162.91352844238, + 164.08129882813, + 164.71192932129, + 165.52894592285, + 166.83448791504, + 167.55149841309, + 169.10801696777, + 170.28953552246, + 172.0147857666, + 173.9104309082, + 174.99877929688, + 176.83720397949, + 177.43148803711, + 178.45771789551, + 178.43165588379, + 178.44242858887, + 180.38487243652, + 180.88838195801, + 182.20335388184, + 183.67309570313, + 184.08500671387, + 184.5290222168, + 185.88529968262, + 187.35731506348, + 188.40570068359, + 190.27276611328, + 192.01727294922, + 192.8678894043, + 195.12471008301, + 195.78413391113, + 201.22830200195, + 200.48799133301, + 201.98927307129, + 204.16746520996, + 202.65162658691, + 204.83903503418, + 207.39608764648, + 208.63526916504, + 210.53234863281, + 214.34130859375, + 215.4686126709, + 220.9055480957, + 217.67472839355, + 211.90599060059, + 213.39038085938, + 215.51982116699]) + +resid = np.array([np.nan, + -.6913286447525, + -.38931575417519, + -.51695597171783, + -.26875102519989, + -.42893922328949, + -.16897420585155, + -.30383053421974, + -.38268667459488, + -.19326950609684, + -.26062506437302, + -.2386272996664, + -.11836158484221, + -.29968178272247, + -.10627794265747, + -.23635374009609, + -.2302208840847, + -.04900583252311, + -.23855529725552, + -.07389451563358, + -.28406995534897, + -.17996114492416, + -.15805125236511, + -.10306460410357, + -.17853192985058, + -.06575367599726, + -.22165396809578, + -.03239719197154, + .09813265502453, + -.18503764271736, + .08911459892988, + -.32306101918221, + -.09436126798391, + -.02511045895517, + -.05352900549769, + .03854943066835, + -.09526748210192, + .11897913366556, + -.0392786487937, + -.02946598827839, + .16219010949135, + .00110464950558, + .00843739509583, + .09793642908335, + .06185294687748, + -.15276403725147, + -.01174682471901, + -.03661911562085, + -.34144860506058, + .0350341796875, + -.22955468297005, + -.18147730827332, + -.17327722907066, + -.16611096262932, + -.05984530970454, + .01872771047056, + .49001583456993, + -.15266172587872, + .84169203042984, + .39751008152962, + .4900975227356, + .32289886474609, + .80797618627548, + .24352477490902, + -.30804550647736, + .12802444398403, + -.03521826863289, + -.01286232378334, + -.61022931337357, + .15346619486809, + .03366623818874, + -.06956738233566, + .45450806617737, + -.17585784196854, + -.07074139267206, + .236572265625, + .26226228475571, + .62115287780762, + .49454152584076, + .2515344619751, + .96773761510849, + 1.059788107872, + .71571981906891, + 1.2943501472473, + 1.1804445981979, + -.13193695247173, + .50954836606979, + .81006240844727, + .08316437155008, + .70129698514938, + .0685763657093, + -.72836673259735, + -.88076442480087, + 1.191029548645, + -1.1375564336777, + -1.4797197580338, + -.08571709692478, + -.15994438529015, + -.15308164060116, + .16982398927212, + .00916088558733, + -.36624330282211, + -.0540459305048, + -.47744059562683, + .34354037046432, + -.40667590498924, + -.15817116200924, + .44324016571045, + -2.3000116348267, + .37564942240715, + -.11153698712587, + .41522192955017, + .38718286156654, + .13296109437943, + .25625845789909, + .01591204665601, + .25135138630867, + .2947128713131, + .35212710499763, + .20491683483124, + .80747896432877, + .13140361011028, + -.28651690483093, + 1.0351514816284, + .03413881734014, + .36231052875519, + 1.6021218299866, + -.36632135510445, + -.93810379505157, + .02023027092218, + -.19445763528347, + -.04941740259528, + -.05388405546546, + -.04084182903171, + .0705279931426, + -.04641156643629, + -.11742353439331, + -.38209563493729, + .11257757246494, + -.36303088068962, + -.05385848507285, + .22011630237103, + -.04950327426195, + .09418711811304, + .27163949608803, + -.28494849801064, + -.06609643250704, + .22633366286755, + .35593989491463, + -.20867441594601, + .20319482684135, + .13570418953896, + -.57254236936569, + -.3914600610733, + .24842712283134, + -.47811862826347, + -.62584692239761, + .28646802902222, + -.18130460381508, + -.01193272508681, + .37104898691177, + -.13449484109879, + .54850292205811, + .19198158383369, + .61046212911606, + .6852103471756, + -.01043024007231, + .60122263431549, + -.43720445036888, + -.03149457275867, + -.85771811008453, + -.73165369033813, + .85756987333298, + -.38487648963928, + .31161326169968, + .39665061235428, + -.47309604287148, + -.38500571250916, + .3709699511528, + .4147045314312, + .04268322139978, + .69430238008499, + .52724367380142, + -.2172684520483, + .93211495876312, + -.42470565438271, + 3.4158577919006, + -1.8283013105392, + .21201276779175, + .7107213139534, + -2.2674646377563, + .92237722873688, + 1.0809636116028, + -.05808337032795, + .49772322177887, + 1.9626487493515, + -.34431591629982, + 3.1413819789886, + -4.016538143158, + -5.5007371902466, + .76500922441483, + 1.078607916832, + .86516714096069]) + +yr = np.array([np.nan, + -.6913286447525, + -.38931575417519, + -.51695597171783, + -.26875102519989, + -.42893922328949, + -.16897420585155, + -.30383053421974, + -.38268667459488, + -.19326950609684, + -.26062506437302, + -.2386272996664, + -.11836158484221, + -.29968178272247, + -.10627794265747, + -.23635374009609, + -.2302208840847, + -.04900583252311, + -.23855529725552, + -.07389451563358, + -.28406995534897, + -.17996114492416, + -.15805125236511, + -.10306460410357, + -.17853192985058, + -.06575367599726, + -.22165396809578, + -.03239719197154, + .09813265502453, + -.18503764271736, + .08911459892988, + -.32306101918221, + -.09436126798391, + -.02511045895517, + -.05352900549769, + .03854943066835, + -.09526748210192, + .11897913366556, + -.0392786487937, + -.02946598827839, + .16219010949135, + .00110464950558, + .00843739509583, + .09793642908335, + .06185294687748, + -.15276403725147, + -.01174682471901, + -.03661911562085, + -.34144860506058, + .0350341796875, + -.22955468297005, + -.18147730827332, + -.17327722907066, + -.16611096262932, + -.05984530970454, + .01872771047056, + .49001583456993, + -.15266172587872, + .84169203042984, + .39751008152962, + .4900975227356, + .32289886474609, + .80797618627548, + .24352477490902, + -.30804550647736, + .12802444398403, + -.03521826863289, + -.01286232378334, + -.61022931337357, + .15346619486809, + .03366623818874, + -.06956738233566, + .45450806617737, + -.17585784196854, + -.07074139267206, + .236572265625, + .26226228475571, + .62115287780762, + .49454152584076, + .2515344619751, + .96773761510849, + 1.059788107872, + .71571981906891, + 1.2943501472473, + 1.1804445981979, + -.13193695247173, + .50954836606979, + .81006240844727, + .08316437155008, + .70129698514938, + .0685763657093, + -.72836673259735, + -.88076442480087, + 1.191029548645, + -1.1375564336777, + -1.4797197580338, + -.08571709692478, + -.15994438529015, + -.15308164060116, + .16982398927212, + .00916088558733, + -.36624330282211, + -.0540459305048, + -.47744059562683, + .34354037046432, + -.40667590498924, + -.15817116200924, + .44324016571045, + -2.3000116348267, + .37564942240715, + -.11153698712587, + .41522192955017, + .38718286156654, + .13296109437943, + .25625845789909, + .01591204665601, + .25135138630867, + .2947128713131, + .35212710499763, + .20491683483124, + .80747896432877, + .13140361011028, + -.28651690483093, + 1.0351514816284, + .03413881734014, + .36231052875519, + 1.6021218299866, + -.36632135510445, + -.93810379505157, + .02023027092218, + -.19445763528347, + -.04941740259528, + -.05388405546546, + -.04084182903171, + .0705279931426, + -.04641156643629, + -.11742353439331, + -.38209563493729, + .11257757246494, + -.36303088068962, + -.05385848507285, + .22011630237103, + -.04950327426195, + .09418711811304, + .27163949608803, + -.28494849801064, + -.06609643250704, + .22633366286755, + .35593989491463, + -.20867441594601, + .20319482684135, + .13570418953896, + -.57254236936569, + -.3914600610733, + .24842712283134, + -.47811862826347, + -.62584692239761, + .28646802902222, + -.18130460381508, + -.01193272508681, + .37104898691177, + -.13449484109879, + .54850292205811, + .19198158383369, + .61046212911606, + .6852103471756, + -.01043024007231, + .60122263431549, + -.43720445036888, + -.03149457275867, + -.85771811008453, + -.73165369033813, + .85756987333298, + -.38487648963928, + .31161326169968, + .39665061235428, + -.47309604287148, + -.38500571250916, + .3709699511528, + .4147045314312, + .04268322139978, + .69430238008499, + .52724367380142, + -.2172684520483, + .93211495876312, + -.42470565438271, + 3.4158577919006, + -1.8283013105392, + .21201276779175, + .7107213139534, + -2.2674646377563, + .92237722873688, + 1.0809636116028, + -.05808337032795, + .49772322177887, + 1.9626487493515, + -.34431591629982, + 3.1413819789886, + -4.016538143158, + -5.5007371902466, + .76500922441483, + 1.078607916832, + .86516714096069]) + +mse = np.array([ .80370712280273, + .80370712280273, + .67928272485733, + .66423606872559, + .65418779850006, + .64722007513046, + .64226144552231, + .63866710662842, + .63602674007416, + .63406819105148, + .6326048374176, + .63150554895401, + .63067644834518, + .63004916906357, + .62957346439362, + .62921214103699, + .62893730401993, + .62872803211212, + .6285685300827, + .62844693660736, + .62835419178009, + .62828344106674, + .62822943925858, + .62818819284439, + .62815672159195, + .6281327009201, + .62811434268951, + .62810027599335, + .62808960676193, + .6280814409256, + .6280751824379, + .62807041406631, + .62806677818298, + .62806397676468, + .62806183099747, + .62806022167206, + .62805896997452, + .6280580163002, + .62805730104446, + .62805676460266, + .62805634737015, + .62805598974228, + .6280557513237, + .62805557250977, + .62805545330048, + .62805533409119, + .6280552148819, + .62805515527725, + .62805509567261, + .62805509567261, + .62805503606796, + .62805503606796, + .62805503606796, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332, + .62805497646332]) + +stdp = np.array([ .86132872104645, + .86132872104645, + .58931648731232, + .53695642948151, + .43875110149384, + .43893754482269, + .36897498369217, + .39383068680763, + .35268598794937, + .30327013134956, + .3206245303154, + .29862868785858, + .2883597612381, + .30968201160431, + .26627779006958, + .29635512828827, + .27021989226341, + .25900682806969, + .29855474829674, + .26389503479004, + .2940701842308, + .24996083974838, + .25805163383484, + .26306444406509, + .27853038907051, + .26575443148613, + .29165366292, + .262396723032, + .30186694860458, + .35503962635994, + .31088310480118, + .37306407094002, + .29435822367668, + .32511350512505, + .35352823138237, + .36144828796387, + .39527052640915, + .38102087378502, + .43927636742592, + .42946752905846, + .43780836462975, + .49889534711838, + .49156260490417, + .50206583738327, + .53814554214478, + .55276554822922, + .51174682378769, + .53661912679672, + .54144555330276, + .4649658203125, + .52955776453018, + .48147654533386, + .47327646613121, + .46611019968987, + .45984682440758, + .48127228021622, + .50998419523239, + .65266174077988, + .5583056807518, + .80249065160751, + .80990171432495, + .87710189819336, + .89202457666397, + 1.0564744472504, + 1.0080462694168, + .87197554111481, + .93521976470947, + .9128600358963, + .91022855043411, + .7465353012085, + .866335272789, + .86956661939621, + .84549117088318, + .97585707902908, + .87074065208435, + .86343002319336, + .93773847818375, + .97884559631348, + 1.1054569482803, + 1.1484670639038, + 1.1322609186172, + 1.3402134180069, + 1.4842771291733, + 1.5056529045105, + 1.719556927681, + 1.8319338560104, + 1.5904501676559, + 1.6899375915527, + 1.8168371915817, + 1.6987046003342, + 1.8314251899719, + 1.7283667325974, + 1.4807628393173, + 1.308970451355, + 1.7375549077988, + 1.2797228097916, + .98571860790253, + 1.1599444150925, + 1.1530816555023, + 1.13017141819, + 1.1908437013626, + 1.1662386655807, + 1.0540459156036, + 1.0774390697479, + .95646268129349, + 1.1066728830338, + .95817422866821, + .95676136016846, + 1.1000070571899, + .42435362935066, + .81153392791748, + .78478264808655, + .91281259059906, + .9670450091362, + .94373846054077, + .98408794403076, + .9486455321312, + 1.0052901506424, + 1.0478744506836, + 1.095078587532, + 1.0925225019455, + 1.2685979604721, + 1.1865184307098, + 1.0648469924927, + 1.3658550977707, + 1.2376955747604, + 1.2978720664978, + 1.6663243770599, + 1.338112950325, + 1.0797605514526, + 1.1944576501846, + 1.1494234800339, + 1.153874874115, + 1.1408479213715, + 1.1294689178467, + 1.1464176177979, + 1.1174235343933, + 1.0820926427841, + .98742854595184, + 1.0630278587341, + .95385235548019, + .97988063097, + 1.049503326416, + 1.0058189630508, + 1.0283635854721, + 1.0849515199661, + .96609032154083, + .97366327047348, + 1.0440692901611, + 1.1086683273315, + .99680209159851, + 1.0642927885056, + 1.0725424289703, + .8914600610733, + .85157895088196, + .97811859846115, + .8258438706398, + .71353197097778, + .88130152225494, + .81193578243256, + .82894796133041, + .9344978928566, + .85150623321533, + 1.0080153942108, + .9895287156105, + 1.1147927045822, + 1.2104271650314, + 1.0987895727158, + 1.23719227314, + 1.0314946174622, + 1.0577303171158, + .8316445350647, + .74243623018265, + 1.0848734378815, + .88838368654251, + 1.0033586025238, + 1.0730868577957, + .88500571250916, + .82902699708939, + .98530465364456, + 1.057307600975, + 1.0057097673416, + 1.1727533340454, + 1.2172684669495, + 1.0678850412369, + 1.3246995210648, + 1.0841422080994, + 2.0282983779907, + 1.0879902839661, + 1.289278626442, + 1.4674614667892, + .75163400173187, + 1.2650294303894, + 1.4760826826096, + 1.2972749471664, + 1.3993507623672, + 1.8463147878647, + 1.4716247320175, + 2.2955448627472, + .7857254743576, + -.26799991726875, + .71938097476959, + 1.0508332252502]) + +icstats = np.array([ 202, + np.nan, + -239.91961140777, + 5, + 489.83922281554, + 506.38056130255]) + +class Bunch(dict): + def __init__(self, **kw): + dict.__init__(self, kw) + self.__dict__ = self + + +results = Bunch(llf=llf, nobs=nobs, k=k, k_exog=k_exog, sigma=sigma, chi2=chi2, df_model=df_model, k_ar=k_ar, k_ma=k_ma, params=params, cov_params=cov_params, xb=xb, y=y, resid=resid, yr=yr, mse=mse, stdp=stdp, icstats=icstats, ) + diff --git a/statsmodels/tsa/tests/results/arima211nc_css_results.py b/statsmodels/tsa/tests/results/arima211nc_css_results.py new file mode 100644 index 0000000..1f2f274 --- /dev/null +++ b/statsmodels/tsa/tests/results/arima211nc_css_results.py @@ -0,0 +1,1281 @@ +import numpy as np + +llf = np.array([-240.21658671417]) + +nobs = np.array([ 202]) + +k = np.array([ 4]) + +k_exog = np.array([ 1]) + +sigma = np.array([ .79473430527544]) + +chi2 = np.array([ 54633.096432541]) + +df_model = np.array([ 3]) + +k_ar = np.array([ 2]) + +k_ma = np.array([ 1]) + +params = np.array([ 1.1970355174119, + -.19724105359909, + -.91770441432171, + .63160261598163]) + +cov_params = np.array([ .00182362158934, + -.00163271308366, + -.00140915922719, + -.00044400541718, + -.00163271308366, + .00148731108625, + .00117094734518, + .00044939207189, + -.00140915922719, + .00117094734518, + .00181742086472, + .00032737864417, + -.00044400541718, + .00044939207189, + .00032737864417, + .00071193796554]).reshape(4,4) + +xb = np.array([ 0, + 0, + .04999904707074, + .06866559386253, + .02903163060546, + .07047952711582, + .03383458778262, + .08519082516432, + .06387747824192, + .0323903337121, + .0664371997118, + .056028008461, + .05634552612901, + .08741936087608, + .04945361241698, + .0881454795599, + .06608437746763, + .05997726693749, + .1058451384306, + .07246486097574, + .10775856673717, + .06419499218464, + .07649331539869, + .08432687073946, + .10236189514399, + .09031195193529, + .11902847886086, + .08933536708355, + .13242828845978, + .18790599703789, + .1410321444273, + .2076324224472, + .12561346590519, + .16128000617027, + .19236192107201, + .20115886628628, + .23716603219509, + .22255305945873, + .28473255038261, + .27441227436066, + .28466689586639, + .34994292259216, + .3424659371376, + .35532799363136, + .39506548643112, + .41180691123009, + .37130555510521, + .40151777863503, + .40951976180077, + .33306270837784, + .40587121248245, + .35764938592911, + .35284259915352, + .34843212366104, + .34438464045525, + .36860400438309, + .3990384042263, + .54691004753113, + .44432625174522, + .70020270347595, + .70163971185684, + .77033877372742, + .78572767972946, + .95923948287964, + .90811860561371, + .77250319719315, + .85019183158875, + .83438217639923, + .83959633111954, + .67678385972977, + .81331378221512, + .8202628493309, + .79870623350143, + .93831378221512, + .8281461596489, + .8256653547287, + .9071888923645, + .95076316595078, + 1.0827594995499, + 1.1249971389771, + 1.1078934669495, + 1.3271758556366, + 1.4741442203522, + 1.4939774274826, + 1.7192279100418, + 1.8355281352997, + 1.5873348712921, + 1.7079899311066, + 1.8515517711639, + 1.7368041276932, + 1.8895095586777, + 1.7913619279861, + 1.5485136508942, + 1.3914349079132, + 1.8569093942642, + 1.378589630127, + 1.0909280776978, + 1.2919955253601, + 1.2874838113785, + 1.2636196613312, + 1.3255174160004, + 1.2952193021774, + 1.1754019260406, + 1.2002106904984, + 1.0717958211899, + 1.2283787727356, + 1.0664055347443, + 1.0640426874161, + 1.2097471952438, + .49885395169258, + .91795635223389, + .88015007972717, + 1.0048481225967, + 1.0485925674438, + 1.0131514072418, + 1.0480036735535, + 1.0044000148773, + 1.0596977472305, + 1.0989319086075, + 1.1431447267532, + 1.1360602378845, + 1.316884636879, + 1.2248164415359, + 1.0992801189423, + 1.4178918600082, + 1.2780615091324, + 1.3436778783798, + 1.727570772171, + 1.376532793045, + 1.1185711622238, + 1.2548811435699, + 1.2139776945114, + 1.22409760952, + 1.2136551141739, + 1.2040791511536, + 1.2232189178467, + 1.1931306123734, + 1.1573059558868, + 1.0603547096252, + 1.1422899961472, + 1.0268490314484, + 1.0556720495224, + 1.1264756917953, + 1.0764141082764, + 1.0978548526764, + 1.1536711454391, + 1.025780916214, + 1.034966468811, + 1.1074740886688, + 1.1707112789154, + 1.0496238470078, + 1.1209251880646, + 1.1271858215332, + .93740028142929, + .90130144357681, + 1.0357736349106, + .87323325872421, + .75861483812332, + .93606770038605, + .85732334852219, + .87216699123383, + .97779452800751, + .88410341739655, + 1.0446182489395, + 1.0177079439163, + 1.144193649292, + 1.2372444868088, + 1.1155867576599, + 1.2619564533234, + 1.0462523698807, + 1.0816910266876, + .85130125284195, + .76972281932831, + 1.1335872411728, + .92024201154709, + 1.0416384935379, + 1.1102936267853, + .91037821769714, + .85678082704544, + 1.022847533226, + 1.0930491685867, + 1.0342184305191, + 1.2070096731186, + 1.2472279071808, + 1.0886085033417, + 1.3604420423508, + 1.1053978204727, + 2.0939025878906, + 1.0898643732071, + 1.3238569498062, + 1.5171576738358, + .77435439825058, + 1.3360253572464, + 1.5512014627457, + 1.3569095134735, + 1.4669530391693, + 1.9312930107117, + 1.52878677845, + 2.3952746391296, + .80755305290222, + -.2365039139986, + .85178333520889, + 1.1858888864517]) + +y = np.array([np.nan, + 28.979999542236, + 29.199998855591, + 29.4186668396, + 29.399032592773, + 29.610481262207, + 29.583833694458, + 29.835191726685, + 29.903877258301, + 29.842390060425, + 29.986436843872, + 30.036027908325, + 30.096345901489, + 30.29741859436, + 30.269453048706, + 30.468145370483, + 30.506084442139, + 30.539976119995, + 30.795845031738, + 30.822463989258, + 31.047760009766, + 31.014196395874, + 31.096494674683, + 31.204328536987, + 31.382362365723, + 31.470310211182, + 31.699028015137, + 31.739334106445, + 32.012428283691, + 32.467903137207, + 32.591033935547, + 33.057632446289, + 33.025615692139, + 33.261280059814, + 33.592365264893, + 33.901161193848, + 34.33716583252, + 34.622554779053, + 35.184734344482, + 35.574413299561, + 35.984668731689, + 36.649940490723, + 37.142463684082, + 37.655326843262, + 38.295066833496, + 38.911808013916, + 39.271308898926, + 39.801517486572, + 40.309520721436, + 40.433059692383, + 41.005870819092, + 41.257652282715, + 41.552845001221, + 41.848430633545, + 42.144382476807, + 42.568603515625, + 43.099040985107, + 44.246910095215, + 44.644325256348, + 46.300201416016, + 47.501640319824, + 48.870338439941, + 50.08572769165, + 51.959239959717, + 53.208118438721, + 53.77250289917, + 54.850193023682, + 55.734382629395, + 56.639595031738, + 56.776782989502, + 57.813312530518, + 58.720264434814, + 59.498706817627, + 60.938312530518, + 61.628147125244, + 62.425662994385, + 63.607189178467, + 64.850761413574, + 66.58275604248, + 68.224998474121, + 69.607894897461, + 71.927177429199, + 74.474143981934, + 76.693977355957, + 79.719230651855, + 82.735527038574, + 84.18733215332, + 86.407989501953, + 89.051551818848, + 90.836799621582, + 93.389511108398, + 95.191360473633, + 95.948516845703, + 96.39143371582, + 99.356910705566, + 99.478584289551, + 98.990928649902, + 100.09199523926, + 101.08748626709, + 102.063621521, + 103.42551422119, + 104.59522247314, + 105.27539825439, + 106.30020904541, + 106.77178955078, + 108.2283782959, + 108.76640319824, + 109.5640411377, + 111.10974884033, + 109.19885253906, + 110.41795349121, + 111.08014678955, + 112.40484619141, + 113.74858856201, + 114.81315612793, + 116.04800415039, + 117.00440216064, + 118.25969696045, + 119.59893035889, + 121.04314422607, + 122.33605957031, + 124.41688537598, + 125.72481536865, + 126.49928283691, + 128.91789245605, + 130.17805480957, + 131.84367370605, + 135.12756347656, + 136.07652282715, + 136.21858215332, + 137.45487976074, + 138.41397094727, + 139.52409362793, + 140.61364746094, + 141.70408630371, + 142.92321777344, + 143.99313354492, + 144.9573059082, + 145.56034851074, + 146.74229431152, + 147.32685852051, + 148.25567626953, + 149.52647399902, + 150.47640991211, + 151.59785461426, + 152.95367431641, + 153.62579345703, + 154.53497314453, + 155.80746459961, + 157.27072143555, + 158.04962158203, + 159.32092285156, + 160.52717590332, + 160.83738708496, + 161.30130004883, + 162.53576660156, + 162.87322998047, + 162.95861816406, + 164.13606262207, + 164.75732421875, + 165.57215881348, + 166.8777923584, + 167.58410644531, + 169.14462280273, + 170.31771850586, + 172.04418945313, + 173.93724060059, + 175.01557922363, + 176.86196899414, + 177.44624328613, + 178.48168945313, + 178.4513092041, + 178.4697265625, + 180.43359375, + 180.92024230957, + 182.24163818359, + 183.71029663086, + 184.11038208008, + 184.5567779541, + 185.92283630371, + 187.39305114746, + 188.43421936035, + 190.30702209473, + 192.04722595215, + 192.88861083984, + 195.16044616699, + 195.8053894043, + 201.29389953613, + 200.48985290527, + 202.0238494873, + 204.21714782715, + 202.67434692383, + 204.91003417969, + 207.47120666504, + 208.6949005127, + 210.59994506836, + 214.42628479004, + 215.52578735352, + 221.00527954102, + 217.6965637207, + 211.93748474121, + 213.52278137207, + 215.65487670898]) + +resid = np.array([np.nan, + .17000007629395, + .150001719594, + -.04866513609886, + .1409684419632, + -.06048120185733, + .16616617143154, + .00480932369828, + -.09387816488743, + .07761027663946, + -.00643773004413, + .00397336483002, + .1136526465416, + -.07741913199425, + .11054623872042, + -.02814410813153, + -.02608536928892, + .15002372860909, + -.04584567248821, + .11753567308187, + -.09775833785534, + .00580469891429, + .02350706420839, + .07567297667265, + -.00236342288554, + .10968881100416, + -.04902878031135, + .14066417515278, + .2675713300705, + -.01790400780737, + .25896555185318, + -.15762937068939, + .074383482337, + .13872304558754, + .10763731598854, + .19883884489536, + .06283701956272, + .27744692564011, + .11526516824961, + .12558923661709, + .3153315782547, + .15005706250668, + .1575340628624, + .24467428028584, + .20493300259113, + -.01180539745837, + .12869445979595, + .09848223626614, + -.20952282845974, + .166937276721, + -.1058681756258, + -.05765015259385, + -.05284334719181, + -.04843288660049, + .05561690032482, + .13139598071575, + .60096162557602, + -.04691004380584, + .95567148923874, + .49979802966118, + .5983595252037, + .42966198921204, + .91427308320999, + .34075975418091, + -.20811785757542, + .22749677300453, + .049809679389, + .06561553478241, + -.53959709405899, + .2232176810503, + .08668774366379, + -.02026358619332, + .50129300355911, + -.13831453025341, + -.02814690209925, + .27433693408966, + .29281187057495, + .64923530817032, + .51723897457123, + .27500438690186, + .99210506677628, + 1.0728256702423, + .72585266828537, + 1.3060256242752, + 1.1807736158371, + -.13553117215633, + .51266354322433, + .79201000928879, + .0484497398138, + .66319739818573, + .0104919327423, + -.79136198759079, + -.94851511716843, + 1.1085650920868, + -1.2569109201431, + -1.5785865783691, + -.19092650711536, + -.29199549555779, + -.2874838411808, + .03637577593327, + -.12551285326481, + -.49522390961647, + -.17540194094181, + -.60021221637726, + .22820720076561, + -.52838176488876, + -.26640248298645, + .33595886826515, + -2.4097516536713, + .30114910006523, + -.21795941889286, + .31985449790955, + .29514732956886, + .05141358822584, + .18684551119804, + -.04800364747643, + .19559693336487, + .24030530452728, + .30106961727142, + .15685074031353, + .76394122838974, + .08311692625284, + -.32481494545937, + 1.0007183551788, + -.01789797656238, + .32194453477859, + 1.5563160181046, + -.42756772041321, + -.97652357816696, + -.01858037337661, + -.25488117337227, + -.11397163569927, + -.12410674989223, + -.1136489585042, + -.00408222479746, + -.12321277707815, + -.19313062727451, + -.45730903744698, + .03965143114328, + -.44229298830032, + -.12685517966747, + .1443248540163, + -.12647566199303, + .02359197475016, + .20214818418026, + -.35366812348366, + -.12578700482845, + .16503044962883, + .29253509640694, + -.27071738243103, + .15037304162979, + .07907173037529, + -.6271858215332, + -.43740031123161, + .19870468974113, + -.53577369451523, + -.67323631048203, + .24138513207436, + -.23607075214386, + -.05732027813792, + .32782995700836, + -.17779149115086, + .51590573787689, + .15537866950035, + .5822828412056, + .65580940246582, + -.03724759072065, + .58442544937134, + -.46196871995926, + -.04625232890248, + -.88167881965637, + -.75131040811539, + .83028328418732, + -.43359026312828, + .2797549366951, + .35837066173553, + -.51030284166336, + -.41037824749947, + .34321609139442, + .37716165184975, + .00694172456861, + .66579383611679, + .49298724532127, + -.24722795188427, + .91139149665833, + -.46044808626175, + 3.3946022987366, + -1.8939057588577, + .21013870835304, + .67614299058914, + -2.3171606063843, + .89965683221817, + 1.0099676847458, + -.13320215046406, + .43808862566948, + 1.8950464725494, + -.42929407954216, + 3.0842199325562, + -4.1162676811218, + -5.5225644111633, + .73351317644119, + .94620555639267, + .73011147975922]) + +yr = np.array([np.nan, + .17000007629395, + .150001719594, + -.04866513609886, + .1409684419632, + -.06048120185733, + .16616617143154, + .00480932369828, + -.09387816488743, + .07761027663946, + -.00643773004413, + .00397336483002, + .1136526465416, + -.07741913199425, + .11054623872042, + -.02814410813153, + -.02608536928892, + .15002372860909, + -.04584567248821, + .11753567308187, + -.09775833785534, + .00580469891429, + .02350706420839, + .07567297667265, + -.00236342288554, + .10968881100416, + -.04902878031135, + .14066417515278, + .2675713300705, + -.01790400780737, + .25896555185318, + -.15762937068939, + .074383482337, + .13872304558754, + .10763731598854, + .19883884489536, + .06283701956272, + .27744692564011, + .11526516824961, + .12558923661709, + .3153315782547, + .15005706250668, + .1575340628624, + .24467428028584, + .20493300259113, + -.01180539745837, + .12869445979595, + .09848223626614, + -.20952282845974, + .166937276721, + -.1058681756258, + -.05765015259385, + -.05284334719181, + -.04843288660049, + .05561690032482, + .13139598071575, + .60096162557602, + -.04691004380584, + .95567148923874, + .49979802966118, + .5983595252037, + .42966198921204, + .91427308320999, + .34075975418091, + -.20811785757542, + .22749677300453, + .049809679389, + .06561553478241, + -.53959709405899, + .2232176810503, + .08668774366379, + -.02026358619332, + .50129300355911, + -.13831453025341, + -.02814690209925, + .27433693408966, + .29281187057495, + .64923530817032, + .51723897457123, + .27500438690186, + .99210506677628, + 1.0728256702423, + .72585266828537, + 1.3060256242752, + 1.1807736158371, + -.13553117215633, + .51266354322433, + .79201000928879, + .0484497398138, + .66319739818573, + .0104919327423, + -.79136198759079, + -.94851511716843, + 1.1085650920868, + -1.2569109201431, + -1.5785865783691, + -.19092650711536, + -.29199549555779, + -.2874838411808, + .03637577593327, + -.12551285326481, + -.49522390961647, + -.17540194094181, + -.60021221637726, + .22820720076561, + -.52838176488876, + -.26640248298645, + .33595886826515, + -2.4097516536713, + .30114910006523, + -.21795941889286, + .31985449790955, + .29514732956886, + .05141358822584, + .18684551119804, + -.04800364747643, + .19559693336487, + .24030530452728, + .30106961727142, + .15685074031353, + .76394122838974, + .08311692625284, + -.32481494545937, + 1.0007183551788, + -.01789797656238, + .32194453477859, + 1.5563160181046, + -.42756772041321, + -.97652357816696, + -.01858037337661, + -.25488117337227, + -.11397163569927, + -.12410674989223, + -.1136489585042, + -.00408222479746, + -.12321277707815, + -.19313062727451, + -.45730903744698, + .03965143114328, + -.44229298830032, + -.12685517966747, + .1443248540163, + -.12647566199303, + .02359197475016, + .20214818418026, + -.35366812348366, + -.12578700482845, + .16503044962883, + .29253509640694, + -.27071738243103, + .15037304162979, + .07907173037529, + -.6271858215332, + -.43740031123161, + .19870468974113, + -.53577369451523, + -.67323631048203, + .24138513207436, + -.23607075214386, + -.05732027813792, + .32782995700836, + -.17779149115086, + .51590573787689, + .15537866950035, + .5822828412056, + .65580940246582, + -.03724759072065, + .58442544937134, + -.46196871995926, + -.04625232890248, + -.88167881965637, + -.75131040811539, + .83028328418732, + -.43359026312828, + .2797549366951, + .35837066173553, + -.51030284166336, + -.41037824749947, + .34321609139442, + .37716165184975, + .00694172456861, + .66579383611679, + .49298724532127, + -.24722795188427, + .91139149665833, + -.46044808626175, + 3.3946022987366, + -1.8939057588577, + .21013870835304, + .67614299058914, + -2.3171606063843, + .89965683221817, + 1.0099676847458, + -.13320215046406, + .43808862566948, + 1.8950464725494, + -.42929407954216, + 3.0842199325562, + -4.1162676811218, + -5.5225644111633, + .73351317644119, + .94620555639267, + .73011147975922]) + +mse = np.array([ 1.1635265350342, + .70545583963394, + .63365471363068, + .633325278759, + .63304948806763, + .63281834125519, + .63262450695038, + .63246184587479, + .63232523202896, + .63221049308777, + .63211411237717, + .63203299045563, + .63196486234665, + .63190752267838, + .63185924291611, + .63181865215302, + .63178449869156, + .63175576925278, + .631731569767, + .63171118497849, + .63169401884079, + .63167959451675, + .63166743516922, + .63165718317032, + .63164860010147, + .63164132833481, + .6316351890564, + .63163006305695, + .63162571191788, + .63162207603455, + .63161903619766, + .63161641359329, + .63161426782608, + .63161242008209, + .63161087036133, + .63160955905914, + .63160848617554, + .63160753250122, + .63160675764084, + .63160610198975, + .63160556554794, + .63160508871078, + .63160473108292, + .63160437345505, + .63160407543182, + .63160383701324, + .63160365819931, + .63160347938538, + .63160336017609, + .6316032409668, + .63160312175751, + .63160306215286, + .63160300254822, + .63160294294357, + .63160288333893, + .63160282373428, + .63160282373428, + .63160276412964, + .63160276412964, + .63160270452499, + .63160270452499, + .63160270452499, + .63160270452499, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035, + .63160264492035]) + +stdp = np.array([ 0, + 0, + .04999904707074, + .06866559386253, + .02903163060546, + .07047952711582, + .03383458778262, + .08519082516432, + .06387747824192, + .0323903337121, + .0664371997118, + .056028008461, + .05634552612901, + .08741936087608, + .04945361241698, + .0881454795599, + .06608437746763, + .05997726693749, + .1058451384306, + .07246486097574, + .10775856673717, + .06419499218464, + .07649331539869, + .08432687073946, + .10236189514399, + .09031195193529, + .11902847886086, + .08933536708355, + .13242828845978, + .18790599703789, + .1410321444273, + .2076324224472, + .12561346590519, + .16128000617027, + .19236192107201, + .20115886628628, + .23716603219509, + .22255305945873, + .28473255038261, + .27441227436066, + .28466689586639, + .34994292259216, + .3424659371376, + .35532799363136, + .39506548643112, + .41180691123009, + .37130555510521, + .40151777863503, + .40951976180077, + .33306270837784, + .40587121248245, + .35764938592911, + .35284259915352, + .34843212366104, + .34438464045525, + .36860400438309, + .3990384042263, + .54691004753113, + .44432625174522, + .70020270347595, + .70163971185684, + .77033877372742, + .78572767972946, + .95923948287964, + .90811860561371, + .77250319719315, + .85019183158875, + .83438217639923, + .83959633111954, + .67678385972977, + .81331378221512, + .8202628493309, + .79870623350143, + .93831378221512, + .8281461596489, + .8256653547287, + .9071888923645, + .95076316595078, + 1.0827594995499, + 1.1249971389771, + 1.1078934669495, + 1.3271758556366, + 1.4741442203522, + 1.4939774274826, + 1.7192279100418, + 1.8355281352997, + 1.5873348712921, + 1.7079899311066, + 1.8515517711639, + 1.7368041276932, + 1.8895095586777, + 1.7913619279861, + 1.5485136508942, + 1.3914349079132, + 1.8569093942642, + 1.378589630127, + 1.0909280776978, + 1.2919955253601, + 1.2874838113785, + 1.2636196613312, + 1.3255174160004, + 1.2952193021774, + 1.1754019260406, + 1.2002106904984, + 1.0717958211899, + 1.2283787727356, + 1.0664055347443, + 1.0640426874161, + 1.2097471952438, + .49885395169258, + .91795635223389, + .88015007972717, + 1.0048481225967, + 1.0485925674438, + 1.0131514072418, + 1.0480036735535, + 1.0044000148773, + 1.0596977472305, + 1.0989319086075, + 1.1431447267532, + 1.1360602378845, + 1.316884636879, + 1.2248164415359, + 1.0992801189423, + 1.4178918600082, + 1.2780615091324, + 1.3436778783798, + 1.727570772171, + 1.376532793045, + 1.1185711622238, + 1.2548811435699, + 1.2139776945114, + 1.22409760952, + 1.2136551141739, + 1.2040791511536, + 1.2232189178467, + 1.1931306123734, + 1.1573059558868, + 1.0603547096252, + 1.1422899961472, + 1.0268490314484, + 1.0556720495224, + 1.1264756917953, + 1.0764141082764, + 1.0978548526764, + 1.1536711454391, + 1.025780916214, + 1.034966468811, + 1.1074740886688, + 1.1707112789154, + 1.0496238470078, + 1.1209251880646, + 1.1271858215332, + .93740028142929, + .90130144357681, + 1.0357736349106, + .87323325872421, + .75861483812332, + .93606770038605, + .85732334852219, + .87216699123383, + .97779452800751, + .88410341739655, + 1.0446182489395, + 1.0177079439163, + 1.144193649292, + 1.2372444868088, + 1.1155867576599, + 1.2619564533234, + 1.0462523698807, + 1.0816910266876, + .85130125284195, + .76972281932831, + 1.1335872411728, + .92024201154709, + 1.0416384935379, + 1.1102936267853, + .91037821769714, + .85678082704544, + 1.022847533226, + 1.0930491685867, + 1.0342184305191, + 1.2070096731186, + 1.2472279071808, + 1.0886085033417, + 1.3604420423508, + 1.1053978204727, + 2.0939025878906, + 1.0898643732071, + 1.3238569498062, + 1.5171576738358, + .77435439825058, + 1.3360253572464, + 1.5512014627457, + 1.3569095134735, + 1.4669530391693, + 1.9312930107117, + 1.52878677845, + 2.3952746391296, + .80755305290222, + -.2365039139986, + .85178333520889, + 1.1858888864517]) + +icstats = np.array([ 202, + np.nan, + -240.21658671417, + 4, + 488.43317342834, + 501.66624421795]) + +class Bunch(dict): + def __init__(self, **kw): + dict.__init__(self, kw) + self.__dict__ = self + + +results = Bunch(llf=llf, nobs=nobs, k=k, k_exog=k_exog, sigma=sigma, chi2=chi2, df_model=df_model, k_ar=k_ar, k_ma=k_ma, params=params, cov_params=cov_params, xb=xb, y=y, resid=resid, yr=yr, mse=mse, stdp=stdp, icstats=icstats, ) + diff --git a/statsmodels/tsa/tests/results/arima211nc_results.py b/statsmodels/tsa/tests/results/arima211nc_results.py new file mode 100644 index 0000000..d9f01ab --- /dev/null +++ b/statsmodels/tsa/tests/results/arima211nc_results.py @@ -0,0 +1,1077 @@ +import numpy as np + +llf = np.array([-241.25977940638]) + +nobs = np.array([ 202]) + +k = np.array([ 4]) + +k_exog = np.array([ 1]) + +sigma = np.array([ .79533686587485]) + +chi2 = np.array([ 48655.961417345]) + +df_model = np.array([ 3]) + +k_ar = np.array([ 2]) + +k_ma = np.array([ 1]) + +params = np.array([ 1.1870704073154, + -.19095698898571, + -.90853757573555, + .79533686587485]) + +cov_params = np.array([ .00204336743511, + -.00177522179187, + -.00165894353702, + -.00031352141782, + -.00177522179187, + .00157376214003, + .00132907629148, + .00030367391511, + -.00165894353702, + .00132907629148, + .00210988984438, + .00024199988464, + -.00031352141782, + .00030367391511, + .00024199988464, + .00027937875185]).reshape(4,4) + +xb = np.array([ 0, + 0, + .11248598247766, + .14283391833305, + .0800810828805, + .12544548511505, + .07541109621525, + .1297073662281, + .10287435352802, + .06303016841412, + .09501431882381, + .08120259642601, + .07862555980682, + .10874316096306, + .06787430495024, + .10527064651251, + .08142036944628, + .07337106764317, + .11828763782978, + .08380854874849, + .11801292747259, + .07338324189186, + .0842502862215, + .09106454998255, + .10832596570253, + .09570593386889, + .1236881390214, + .09362822026014, + .13587079942226, + .19111332297325, + .14459040760994, + .21043147146702, + .12866979837418, + .16308072209358, + .19356986880302, + .20215991139412, + .23782986402512, + .22326464951038, + .28485587239265, + .27474755048752, + .28465977311134, + .34938132762909, + .3421268761158, + .35463020205498, + .39384591579437, + .41037485003471, + .36968034505844, + .39875456690788, + .40607318282127, + .32915702462196, + .40012913942337, + .35161358118057, + .34572568535805, + .34037715196609, + .3355179131031, + .35895752906799, + .38901025056839, + .53648668527603, + .43572762608528, + .69034379720688, + .69410443305969, + .76356476545334, + .77972346544266, + .95276647806168, + .9030898809433, + .76722019910812, + .84191131591797, + .82463103532791, + .82802563905716, + .66399103403091, + .79665386676788, + .80260843038559, + .78016436100006, + .91813576221466, + .80874294042587, + .80483394861221, + .8848432302475, + .92809981107712, + 1.0597171783447, + 1.1029140949249, + 1.0864543914795, + 1.3046631813049, + 1.4528053998947, + 1.4744025468826, + 1.6993381977081, + 1.816978096962, + 1.5705223083496, + 1.6871707439423, + 1.8281806707382, + 1.7127912044525, + 1.8617957830429, + 1.7624272108078, + 1.5169456005096, + 1.3543643951416, + 1.8122490644455, + 1.3362231254578, + 1.0437293052673, + 1.2371381521225, + 1.2306576967239, + 1.2056746482849, + 1.2665351629257, + 1.2366921901703, + 1.1172571182251, + 1.1408381462097, + 1.0126565694809, + 1.1675561666489, + 1.0074961185455, + 1.0045058727264, + 1.1498116254807, + .44306626915932, + .85451871156693, + .81856834888458, + .94427144527435, + .99084824323654, + .95836746692657, + .994897544384, + .95328682661057, + 1.0093784332275, + 1.0500040054321, + 1.0956697463989, + 1.090208530426, + 1.2714649438858, + 1.1823015213013, + 1.0575052499771, + 1.373840212822, + 1.2371203899384, + 1.3022859096527, + 1.6853868961334, + 1.3395566940308, + 1.0802086591721, + 1.2114092111588, + 1.1690926551819, + 1.1775953769684, + 1.1662193536758, + 1.1558910608292, + 1.1743551492691, + 1.1441857814789, + 1.1080147027969, + 1.0106881856918, + 1.0909667015076, + .97610247135162, + 1.0038343667984, + 1.0743995904922, + 1.0255174636841, + 1.0471519231796, + 1.1034165620804, + .97707790136337, + .9856236577034, + 1.0578545331955, + 1.1219012737274, + 1.0026258230209, + 1.0733016729355, + 1.0802255868912, + .89154416322708, + .85378932952881, + .98660898208618, + .82558387517929, + .71030122041702, + .88567733764648, + .80868631601334, + .82387971878052, + .92999804019928, + .83861750364304, + .99909782409668, + .97461491823196, + 1.1019765138626, + 1.1970175504684, + 1.0780508518219, + 1.2238110303879, + 1.0100719928741, + 1.0434579849243, + .81277370452881, + .72809249162674, + 1.0880596637726, + .87798285484314, + .99824965000153, + 1.0677480697632, + .86986482143402, + .81499886512756, + .97921711206436, + 1.0504562854767, + .99342101812363, + 1.1660186052322, + 1.208247423172, + 1.0516448020935, + 1.3215674161911, + 1.0694575309753, + 2.0531799793243, + 1.0617904663086, + 1.2885792255402, + 1.4795436859131, + .73947989940643, + 1.290878534317, + 1.506583571434, + 1.3157633543015, + 1.424609541893, + 1.8879710435867, + 1.4916514158249, + 2.3532779216766, + .77780252695084, + -.27798706293106, + .7862361073494, + 1.1202166080475]) + +y = np.array([np.nan, + 28.979999542236, + 29.26248550415, + 29.492834091187, + 29.450082778931, + 29.665447235107, + 29.625410079956, + 29.879707336426, + 29.942874908447, + 29.873029708862, + 30.015014648438, + 30.06120300293, + 30.118625640869, + 30.318742752075, + 30.287874221802, + 30.485269546509, + 30.521421432495, + 30.553371429443, + 30.808288574219, + 30.833808898926, + 31.058013916016, + 31.023384094238, + 31.104249954224, + 31.211065292358, + 31.388326644897, + 31.475704193115, + 31.703687667847, + 31.743627548218, + 32.015869140625, + 32.471111297607, + 32.594593048096, + 33.060428619385, + 33.028671264648, + 33.263080596924, + 33.593570709229, + 33.902160644531, + 34.337829589844, + 34.623264312744, + 35.184856414795, + 35.574745178223, + 35.984661102295, + 36.649379730225, + 37.142127990723, + 37.654628753662, + 38.293846130371, + 38.910373687744, + 39.269680023193, + 39.798755645752, + 40.306076049805, + 40.42915725708, + 41.00012588501, + 41.251613616943, + 41.545726776123, + 41.840377807617, + 42.135517120361, + 42.558959960938, + 43.089012145996, + 44.236488342285, + 44.635726928711, + 46.290340423584, + 47.494102478027, + 48.863563537598, + 50.079723358154, + 51.952766418457, + 53.203090667725, + 53.767219543457, + 54.841911315918, + 55.724632263184, + 56.628025054932, + 56.763988494873, + 57.796653747559, + 58.702610015869, + 59.480163574219, + 60.91813659668, + 61.608741760254, + 62.404830932617, + 63.584842681885, + 64.828102111816, + 66.559715270996, + 68.202911376953, + 69.586456298828, + 71.904663085938, + 74.45280456543, + 76.67440032959, + 79.699340820313, + 82.716979980469, + 84.170516967773, + 86.387168884277, + 89.028175354004, + 90.812789916992, + 93.361793518066, + 95.16242980957, + 95.916946411133, + 96.354362487793, + 99.31224822998, + 99.436218261719, + 98.943733215332, + 100.03713989258, + 101.03066253662, + 102.00567626953, + 103.36653137207, + 104.5366973877, + 105.21725463867, + 106.24083709717, + 106.71265411377, + 108.1675567627, + 108.70749664307, + 109.50450897217, + 111.04981231689, + 109.14306640625, + 110.35451507568, + 111.01856231689, + 112.34427642822, + 113.6908416748, + 114.7583694458, + 115.99489593506, + 116.95328521729, + 118.20937347412, + 119.55000305176, + 120.9956741333, + 122.29020690918, + 124.37145996094, + 125.68230438232, + 126.45750427246, + 128.87384033203, + 130.13711547852, + 131.80229187012, + 135.08538818359, + 136.03955078125, + 136.18022155762, + 137.4114074707, + 138.36909484863, + 139.47760009766, + 140.56620788574, + 141.65588378906, + 142.87435913086, + 143.94418334961, + 144.90802001953, + 145.51068115234, + 146.69097900391, + 147.27610778809, + 148.2038269043, + 149.47439575195, + 150.4255065918, + 151.5471496582, + 152.90342712402, + 153.57708740234, + 154.4856262207, + 155.75785827637, + 157.22190856934, + 158.00262451172, + 159.2733001709, + 160.48022460938, + 160.79153442383, + 161.25378417969, + 162.4866027832, + 162.82557678223, + 162.9102935791, + 164.08567810059, + 164.70867919922, + 165.52388000488, + 166.82998657227, + 167.53861999512, + 169.09910583496, + 170.27461242676, + 172.00196838379, + 173.89701843262, + 174.97804260254, + 176.82382202148, + 177.41006469727, + 178.44345092773, + 178.41278076172, + 178.42808532715, + 180.38806152344, + 180.87797546387, + 182.1982421875, + 183.66775512695, + 184.06985473633, + 184.51499938965, + 185.87921142578, + 187.35046386719, + 188.3934173584, + 190.26602172852, + 192.00825500488, + 192.85165405273, + 195.12156677246, + 195.76945495605, + 201.25317382813, + 200.4617767334, + 201.98857116699, + 204.17953491211, + 202.63948059082, + 204.86488342285, + 207.42657470703, + 208.65376281738, + 210.55760192871, + 214.38296508789, + 215.48864746094, + 220.96327209473, + 217.66680908203, + 211.89601135254, + 213.45724487305, + 215.58921813965]) + +resid = np.array([np.nan, + .17000007629395, + .08751478046179, + -.12283346056938, + .08991899341345, + -.11544716358185, + .12458966672421, + -.03970721364021, + -.13287504017353, + .04697044193745, + -.03501485288143, + -.02120122499764, + .09137260913849, + -.09874293208122, + .09212554246187, + -.04526927694678, + -.04142136126757, + .13662992417812, + -.0582881718874, + .10619198530912, + -.10801269859076, + -.00338354869746, + .01575009897351, + .06893529742956, + -.00832748971879, + .10429482907057, + -.05368844047189, + .13637132942677, + .26412883400917, + -.02111134678125, + .2554073035717, + -.16042841970921, + .07132714986801, + .13692232966423, + .1064293757081, + .19783779978752, + .0621731877327, + .27673536539078, + .11514183133841, + .12525399029255, + .31533870100975, + .15061867237091, + .15787313878536, + .24537208676338, + .20615255832672, + -.01037331111729, + .13031965494156, + .10124543309212, + -.20607624948025, + .1708429902792, + -.10012608766556, + -.05161434784532, + -.04572645947337, + -.04037792980671, + .06448362022638, + .14104247093201, + .61098974943161, + -.03648666664958, + .96427005529404, + .50965696573257, + .60589480400085, + .43643599748611, + .9202772974968, + .34723278880119, + -.20308908820152, + .23277981579304, + .05809023976326, + .07536666095257, + -.52802640199661, + .23601049184799, + .1033476293087, + -.00260917330161, + .51983487606049, + -.11813650280237, + -.00874368380755, + .29516834020615, + .31515756249428, + .67189866304398, + .54028129577637, + .29708743095398, + 1.0135440826416, + 1.095338344574, + .74719160795212, + 1.3256005048752, + 1.2006633281708, + -.11698111891747, + .52947622537613, + .81282931566238, + .07182084023952, + .68721032142639, + .03820572793484, + -.7624272108078, + -.91694712638855, + 1.1456356048584, + -1.2122505903244, + -1.5362200737, + -.14372782409191, + -.23713812232018, + -.2306577116251, + .09432080388069, + -.06653053313494, + -.43669676780701, + -.11725706607103, + -.54083967208862, + .28734645247459, + -.467559248209, + -.20749309659004, + .39549562335014, + -2.3498160839081, + .3569367825985, + -.15452179312706, + .38143622875214, + .35572397708893, + .1091578528285, + .24162948131561, + .00510244909674, + .24671010673046, + .29062458872795, + .34999752044678, + .20432561635971, + .80979299545288, + .12853652238846, + -.28230002522469, + 1.042493224144, + .02615367434919, + .36288577318192, + 1.5977079868317, + -.38538381457329, + -.93954759836197, + .01978221163154, + -.21140915155411, + -.06908652186394, + -.07760456204414, + -.06621328741312, + .0441059358418, + -.07434900850058, + -.14418575167656, + -.40801778435707, + .08931794017553, + -.39096972346306, + -.07610860466957, + .19616261124611, + -.07439963519573, + .07448863238096, + .25285106897354, + -.30341354012489, + -.07708399742842, + .21437329053879, + .34215462207794, + -.22190742194653, + .19737112522125, + .12669529020786, + -.58022564649582, + -.3915441930294, + .24621678888798, + -.48660898208618, + -.6255869269371, + .28969877958298, + -.18568041920662, + -.00868325773627, + .37611722946167, + -.12999498844147, + .5613916516304, + .20089910924435, + .6253759264946, + .69802659749985, + .00297940592282, + .621961414814, + -.42382326722145, + -.01007199659944, + -.84344571828842, + -.71278285980225, + .87191361188889, + -.38806268572807, + .32201409339905, + .40175950527191, + -.4677571952343, + -.36986482143402, + .38499811291695, + .42079201340675, + .04953457415104, + .70659118890762, + .53397834300995, + -.20824746787548, + .94835525751114, + -.42157354950905, + 3.4305424690247, + -1.8531830310822, + .23821261525154, + .71142077445984, + -2.2795467376709, + .93453133106232, + 1.0551145076752, + -.08858433365822, + .47923478484154, + 1.9373899698257, + -.38597220182419, + 3.1213552951813, + -4.0742712020874, + -5.4928140640259, + .77499634027481, + 1.0117527246475, + .79578375816345]) + +yr = np.array([np.nan, + .17000007629395, + .08751478046179, + -.12283346056938, + .08991899341345, + -.11544716358185, + .12458966672421, + -.03970721364021, + -.13287504017353, + .04697044193745, + -.03501485288143, + -.02120122499764, + .09137260913849, + -.09874293208122, + .09212554246187, + -.04526927694678, + -.04142136126757, + .13662992417812, + -.0582881718874, + .10619198530912, + -.10801269859076, + -.00338354869746, + .01575009897351, + .06893529742956, + -.00832748971879, + .10429482907057, + -.05368844047189, + .13637132942677, + .26412883400917, + -.02111134678125, + .2554073035717, + -.16042841970921, + .07132714986801, + .13692232966423, + .1064293757081, + .19783779978752, + .0621731877327, + .27673536539078, + .11514183133841, + .12525399029255, + .31533870100975, + .15061867237091, + .15787313878536, + .24537208676338, + .20615255832672, + -.01037331111729, + .13031965494156, + .10124543309212, + -.20607624948025, + .1708429902792, + -.10012608766556, + -.05161434784532, + -.04572645947337, + -.04037792980671, + .06448362022638, + .14104247093201, + .61098974943161, + -.03648666664958, + .96427005529404, + .50965696573257, + .60589480400085, + .43643599748611, + .9202772974968, + .34723278880119, + -.20308908820152, + .23277981579304, + .05809023976326, + .07536666095257, + -.52802640199661, + .23601049184799, + .1033476293087, + -.00260917330161, + .51983487606049, + -.11813650280237, + -.00874368380755, + .29516834020615, + .31515756249428, + .67189866304398, + .54028129577637, + .29708743095398, + 1.0135440826416, + 1.095338344574, + .74719160795212, + 1.3256005048752, + 1.2006633281708, + -.11698111891747, + .52947622537613, + .81282931566238, + .07182084023952, + .68721032142639, + .03820572793484, + -.7624272108078, + -.91694712638855, + 1.1456356048584, + -1.2122505903244, + -1.5362200737, + -.14372782409191, + -.23713812232018, + -.2306577116251, + .09432080388069, + -.06653053313494, + -.43669676780701, + -.11725706607103, + -.54083967208862, + .28734645247459, + -.467559248209, + -.20749309659004, + .39549562335014, + -2.3498160839081, + .3569367825985, + -.15452179312706, + .38143622875214, + .35572397708893, + .1091578528285, + .24162948131561, + .00510244909674, + .24671010673046, + .29062458872795, + .34999752044678, + .20432561635971, + .80979299545288, + .12853652238846, + -.28230002522469, + 1.042493224144, + .02615367434919, + .36288577318192, + 1.5977079868317, + -.38538381457329, + -.93954759836197, + .01978221163154, + -.21140915155411, + -.06908652186394, + -.07760456204414, + -.06621328741312, + .0441059358418, + -.07434900850058, + -.14418575167656, + -.40801778435707, + .08931794017553, + -.39096972346306, + -.07610860466957, + .19616261124611, + -.07439963519573, + .07448863238096, + .25285106897354, + -.30341354012489, + -.07708399742842, + .21437329053879, + .34215462207794, + -.22190742194653, + .19737112522125, + .12669529020786, + -.58022564649582, + -.3915441930294, + .24621678888798, + -.48660898208618, + -.6255869269371, + .28969877958298, + -.18568041920662, + -.00868325773627, + .37611722946167, + -.12999498844147, + .5613916516304, + .20089910924435, + .6253759264946, + .69802659749985, + .00297940592282, + .621961414814, + -.42382326722145, + -.01007199659944, + -.84344571828842, + -.71278285980225, + .87191361188889, + -.38806268572807, + .32201409339905, + .40175950527191, + -.4677571952343, + -.36986482143402, + .38499811291695, + .42079201340675, + .04953457415104, + .70659118890762, + .53397834300995, + -.20824746787548, + .94835525751114, + -.42157354950905, + 3.4305424690247, + -1.8531830310822, + .23821261525154, + .71142077445984, + -2.2795467376709, + .93453133106232, + 1.0551145076752, + -.08858433365822, + .47923478484154, + 1.9373899698257, + -.38597220182419, + 3.1213552951813, + -4.0742712020874, + -5.4928140640259, + .77499634027481, + 1.0117527246475, + .79578375816345]) + +mse = np.array([ 1.4402351379395, + 1.4402351379395, + .80966705083847, + .74677377939224, + .71241801977158, + .69108927249908, + .67678099870682, + .66667699813843, + .6592805981636, + .6537224650383, + .64946305751801, + .64614951610565, + .64354157447815, + .64147007465363, + .639812707901, + .63847899436951, + .63740062713623, + .63652545213699, + .63581293821335, + .63523155450821, + .63475602865219, + .63436657190323, + .63404709100723, + .63378477096558, + .63356912136078, + .63339179754257, + .63324582576752, + .63312560319901, + .63302659988403, + .63294500112534, + .63287770748138, + .63282227516174, + .63277649879456, + .63273876905441, + .63270765542984, + .63268196582794, + .63266080617905, + .63264334201813, + .63262891769409, + .63261699676514, + .63260716199875, + .63259905576706, + .63259238004684, + .63258683681488, + .63258230686188, + .63257849216461, + .63257539272308, + .63257282972336, + .63257074356079, + .63256901502609, + .63256752490997, + .63256633281708, + .63256537914276, + .63256454467773, + .63256388902664, + .63256335258484, + .63256287574768, + .63256251811981, + .63256222009659, + .63256192207336, + .63256174325943, + .6325615644455, + .63256138563156, + .63256126642227, + .63256120681763, + .63256108760834, + .63256102800369, + .63256096839905, + .63256096839905, + .6325609087944, + .63256084918976, + .63256084918976, + .63256084918976, + .63256078958511, + .63256078958511, + .63256078958511, + .63256078958511, + .63256078958511, + .63256078958511, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047, + .63256072998047]) + +icstats = np.array([ 202, + np.nan, + -241.25977940638, + 4, + 490.51955881276, + 503.75262960236]) + +class Bunch(dict): + def __init__(self, **kw): + dict.__init__(self, kw) + self.__dict__ = self + + +results = Bunch(llf=llf, nobs=nobs, k=k, k_exog=k_exog, sigma=sigma, chi2=chi2, df_model=df_model, k_ar=k_ar, k_ma=k_ma, params=params, cov_params=cov_params, xb=xb, y=y, resid=resid, yr=yr, mse=mse, icstats=icstats, ) + diff --git a/statsmodels/tsa/tests/results/arima212_forecast.csv b/statsmodels/tsa/tests/results/arima212_forecast.csv new file mode 100644 index 0000000..a73ec00 --- /dev/null +++ b/statsmodels/tsa/tests/results/arima212_forecast.csv @@ -0,0 +1,224 @@ +dates, cpi, predict, stderr, conf1, conf2 +1950:1, 28.980,,,, +1950:2, 29.150, 29.848,, +1950:3, 29.350, 29.751,, +1950:4, 29.370, 29.925,, +1951:1, 29.540, 29.788,, +1951:2, 29.550, 30.005,, +1951:3, 29.750, 29.872,, +1951:4, 29.840, 30.181,, +1952:1, 29.810, 30.125,, +1952:2, 29.920, 30.154,, +1952:3, 29.980, 30.203,, +1952:4, 30.040, 30.290,, +1953:1, 30.210, 30.306,, +1953:2, 30.220, 30.535,, +1953:3, 30.380, 30.450,, +1953:4, 30.440, 30.721,, +1954:1, 30.480, 30.657,, +1954:2, 30.690, 30.793,, +1954:3, 30.750, 30.955,, +1954:4, 30.940, 31.034,, +1955:1, 30.950, 31.237,, +1955:2, 31.020, 31.194,, +1955:3, 31.120, 31.310,, +1955:4, 31.280, 31.371,, +1956:1, 31.380, 31.588,, +1956:2, 31.580, 31.629,, +1956:3, 31.650, 31.915,, +1956:4, 31.880, 31.882,, +1957:1, 32.280, 32.248,, +1957:2, 32.450, 32.601,, +1957:3, 32.850, 32.794,, +1957:4, 32.900, 33.245,, +1958:1, 33.100, 33.179,, +1958:2, 33.400, 33.502,, +1958:3, 33.700, 33.723,, +1958:4, 34.100, 34.119,, +1959:1, 34.400, 34.481,, +1959:2, 34.900, 34.819,, +1959:3, 35.300, 35.358,, +1959:4, 35.700, 35.737,, +1960:1, 36.300, 36.176,, +1960:2, 36.800, 36.821,, +1960:3, 37.300, 37.301,, +1960:4, 37.900, 37.844,, +1961:1, 38.500, 38.456,, +1961:2, 38.900, 39.082,, +1961:3, 39.400, 39.423,, +1961:4, 39.900, 39.995,, +1962:1, 40.100, 40.436,, +1962:2, 40.600, 40.599,, +1962:3, 40.900, 41.175,, +1962:4, 41.200, 41.354,, +1963:1, 41.500, 41.738,, +1963:2, 41.800, 41.936,, +1963:3, 42.200, 42.311,, +1963:4, 42.700, 42.658,, +1964:1, 43.700, 43.247,, +1964:2, 44.200, 44.354,, +1964:3, 45.600, 44.715,, +1964:4, 46.800, 46.538,, +1965:1, 48.100, 47.464,, +1965:2, 49.300, 49.162,, +1965:3, 51.000, 50.071,, +1965:4, 52.300, 52.276,, +1966:1, 53.000, 53.138,, +1966:2, 54.000, 54.101,, +1966:3, 54.900, 54.875,, +1966:4, 55.800, 55.948,, +1967:1, 56.100, 56.663,, +1967:2, 57.000, 56.919,, +1967:3, 57.900, 57.917,, +1967:4, 58.700, 58.733,, +1968:1, 60.000, 59.585,, +1968:2, 60.800, 60.985,, +1968:3, 61.600, 61.618,, +1968:4, 62.700, 62.545,, +1969:1, 63.900, 63.602,, +1969:2, 65.500, 64.917,, +1969:3, 67.100, 66.596,, +1969:4, 68.500, 68.249,, +1970:1, 70.600, 69.639,, +1970:2, 73.000, 72.023,, +1970:3, 75.200, 74.438,, +1970:4, 78.000, 76.768,, +1971:1, 80.900, 79.775,, +1971:2, 82.600, 82.748,, +1971:3, 84.700, 84.201,, +1971:4, 87.200, 86.591,, +1972:1, 89.100, 88.976,, +1972:2, 91.500, 90.888,, +1972:3, 93.400, 93.401,, +1972:4, 94.400, 95.103,, +1973:1, 95.000, 95.950,, +1973:2, 97.500, 96.342,, +1973:3, 98.100, 99.392,, +1973:4, 97.900, 99.031,, +1974:1, 98.800, 99.216,, +1974:2, 99.800, 99.751,, +1974:3, 100.800, 101.044,, +1974:4, 102.100, 101.727 ,, +1975:1, 103.300, 103.382 ,, +1975:2, 104.100, 104.251 ,, +1975:3, 105.100, 105.233 ,, +1975:4, 105.700, 106.052 ,, +1976:1, 107.000, 106.667 ,, +1976:2, 107.700, 108.081 ,, +1976:3, 108.500, 108.538 ,, +1976:4, 109.900, 109.523 ,, +1977:1, 108.700, 110.907 ,, +1977:2, 109.500, 108.963 ,, +1977:3, 110.200, 110.651 ,, +1977:4, 111.400, 110.524 ,, +1978:1, 112.700, 112.660 ,, +1978:2, 113.800, 113.230 ,, +1978:3, 115.000, 115.051 ,, +1978:4, 116.000, 115.662 ,, +1979:1, 117.200, 117.204 ,, +1979:2, 118.500, 117.975 ,, +1979:3, 119.900, 119.754 ,, +1979:4, 121.200, 120.802 ,, +1980:1, 123.100, 122.467 ,, +1980:2, 124.500, 124.261 ,, +1980:3, 125.400, 125.749 ,, +1980:4, 127.500, 126.429 ,, +1981:1, 128.900, 129.043 ,, +1981:2, 130.500, 129.915 ,, +1981:3, 133.400, 132.075 ,, +1981:4, 134.700, 134.922 ,, +1982:1, 135.100, 136.050 ,, +1982:2, 136.200, 136.239 ,, +1982:3, 137.200, 137.516 ,, +1982:4, 138.300, 138.258 ,, +1983:1, 139.400, 139.559 ,, +1983:2, 140.500, 140.434 ,, +1983:3, 141.700, 141.711 ,, +1983:4, 142.800, 142.753 ,, +1984:1, 143.800, 143.966 ,, +1984:2, 144.500, 144.807 ,, +1984:3, 145.600, 145.519 ,, +1984:4, 146.300, 146.646 ,, +1985:1, 147.200, 147.195 ,, +1985:2, 148.400, 148.223 ,, +1985:3, 149.400, 149.379 ,, +1985:4, 150.500, 150.396 ,, +1986:1, 151.800, 151.507 ,, +1986:2, 152.600, 152.878 ,, +1986:3, 153.500, 153.502 ,, +1986:4, 154.700, 154.540 ,, +1987:1, 156.100, 155.683 ,, +1987:2, 157.000, 157.240 ,, +1987:3, 158.200, 157.903 ,, +1987:4, 159.400, 159.379 ,, +1988:1, 159.900, 160.350 ,, +1988:2, 160.400, 160.856 ,, +1988:3, 161.500, 161.226 ,, +1988:4, 162.000, 162.540 ,, +1989:1, 162.200, 162.682 ,, +1989:2, 163.200, 163.025 ,, +1989:3, 163.900, 164.017 ,, +1989:4, 164.700, 164.677 ,, +1990:1, 165.900, 165.527 ,, +1990:2, 166.700, 166.815 ,, +1990:3, 168.100, 167.488 ,, +1990:4, 169.300, 169.190 ,, +1991:1, 170.900, 170.157 ,, +1991:2, 172.700, 172.157 ,, +1991:3, 173.900, 173.775 ,, +1991:4, 175.600, 175.092 ,, +1992:1, 176.400, 176.843 ,, +1992:2, 177.400, 177.401 ,, +1992:3, 177.600, 178.590 ,, +1992:4, 177.700, 178.310 ,, +1993:1, 179.300, 178.624 ,, +1993:2, 180.000, 180.330 ,, +1993:3, 181.200, 180.791 ,, +1993:4, 182.600, 182.320 ,, +1994:1, 183.200, 183.535 ,, +1994:2, 183.700, 184.132 ,, +1994:3, 184.900, 184.510 ,, +1994:4, 186.300, 185.955 ,, +1995:1, 187.400, 187.256 ,, +1995:2, 189.100, 188.443 ,, +1995:3, 190.800, 190.274 ,, +1995:4, 191.800, 191.988 ,, +1996:1, 193.800, 192.858 ,, +1996:2, 194.700, 195.254 ,, +1996:3, 199.200, 195.589 ,, +1996:4, 199.400, 201.698 ,, +1997:1, 200.700, 199.660 ,, +1997:2, 202.700, 203.065 ,, +1997:3, 201.900, 203.288 ,, +1997:4, 203.574, 203.327 ,, +1998:1, 205.920, 204.543 ,, +1998:2, 207.338, 207.635 ,, +1998:3, 209.133, 208.278 ,, +1998:4, 212.495, 210.909 ,, +1999:1, 213.997, 214.077 ,, +1999:2, 218.610, 215.531 ,, +1999:3, 216.889, 221.137 ,, +1999:4, 212.174, 217.006 ,, +2000:1, 212.671, 212.741 ,, +2000:2, 214.469, 213.240 ,, +2000:3, 216.385, 215.464,,, +2000:4,, 217.291, 0.7691, 215.784, 218.799 +2001:1,, 218.197, 1.2775, 215.693, 220.701 +2001:2,, 219.100, 1.6382, 215.889, 222.311 +2001:3,, 220.002, 2.0322, 216.019, 223.985 +2001:4,, 220.902, 2.3838, 216.230, 225.574 +2002:1,, 221.801, 2.7544, 216.403, 227.200 +2002:2,, 222.699, 3.1082, 216.607, 228.791 +2002:3,, 223.595, 3.4721, 216.790, 230.400 +2002:4,, 224.490, 3.8288, 216.986, 231.994 +2003:1,, 225.384, 4.1908, 217.170, 233.598 +2003:2,, 226.276, 4.5494, 217.360, 235.193 +2003:3,, 227.168, 4.9105, 217.544, 236.793 +2003:4,, 228.059, 5.2698, 217.730, 238.387 +2004:1,, 228.948, 5.6300, 217.914, 239.983 +2004:2,, 229.837, 5.9888, 218.099, 241.574 +2004:3,, 230.724, 6.3475, 218.283, 243.165 +2004:4,, 231.611, 6.7049, 218.470, 244.752 +2005:1,, 232.497, 7.0614, 218.657, 246.337 +2005:2,, 233.382, 7.4165, 218.846, 247.918 +2005:3,, 234.266, 7.7704, 219.037, 249.496 diff --git a/statsmodels/tsa/tests/results/arima_forecast.inp b/statsmodels/tsa/tests/results/arima_forecast.inp new file mode 100644 index 0000000..c24bf30 --- /dev/null +++ b/statsmodels/tsa/tests/results/arima_forecast.inp @@ -0,0 +1,26 @@ +open /home/skipper/statsmodels/statsmodels/statsmodels/datasets/macrodata/macrodata.csv +setobs 4 1959:1 --time-series +dataset addobs 25 + +# (1,1,1) +arima 1 1 1 ; cpi --nc +fcast 2000:1 2015:04 fc111nc +fcast 2000:1 2015:04 fc111ncdyn --dynamic + +arima 1 1 1 ; cpi +fcast 2000:1 2015:04 fc111c +fcast 2000:1 2015:04 fc111cdyn --dynamic + + +# (2,1,1) +arima 2 1 1 ; cpi --nc +fcast 2000:1 2015:04 fc211nc +fcast 2000:1 2015:04 fc211ncdyn --dynamic + +arima 2 1 1 ; cpi +fcast 2000:1 2015:04 fc211c +fcast 2000:1 2015:04 fc211cdyn --dynamic + +smpl 2000:1 2015:04 + +store '/home/skipper/statsmodels/statsmodels-skipper/statsmodels/tsa/tests/results/results_arima_forecasts.csv' fc111nc fc111ncdyn fc111c fc111cdyn fc211nc fc211ncdyn fc211c fc211cdyn --omit-obs diff --git a/statsmodels/tsa/tests/results/arma_forecast.inp b/statsmodels/tsa/tests/results/arma_forecast.inp new file mode 100644 index 0000000..27dc74c --- /dev/null +++ b/statsmodels/tsa/tests/results/arma_forecast.inp @@ -0,0 +1,32 @@ +open \ + /home/skipper/statsmodels/statsmodels/statsmodels/tsa/tests/results/y_arma_data.csv +setobs 12 1980:01 --time-series +dataset addobs 10 + +# (0,0) +arima 1 0 1 ; 1 --nc +fcast 2000:11 2001:08 + +# (4,1) +arima 4 0 1 ; 3 --nc +fcast 2000:11 2001:08 + +# (5,0) +arima 5 0 0 ; 5 --nc +fcast 2000:11 2001:08 + +# (1,1) c +arima 1 0 1 ; 7 +fcast 2000:11 2001:08 + +# (4,1) c +arima 4 0 1 ; 9 +fcast 2000:11 2001:08 + +# (5,0) c +arima 5 0 0 ; 11 +fcast 2000:11 2001:08 + +smpl 2000:11 2001:08 +#store '/home/skipper/statsmodels/statsmodels-git/scikits/statsmodels/tsa/tests/results/results_arma_forecasts.csv' fc11 fe11 fc41 fe41 fc50 fe50 fc11c fe11c fc41c fe41c fc50c fe50c --omit-obs +# no way to capture errors as far as I can tell diff --git a/statsmodels/tsa/tests/results/bds_data.csv b/statsmodels/tsa/tests/results/bds_data.csv new file mode 100644 index 0000000..048831f --- /dev/null +++ b/statsmodels/tsa/tests/results/bds_data.csv @@ -0,0 +1,265 @@ +1,0.585528817843856,1.80509751881082,1770.7 +2,0.709466017509524,-0.481647363694637,1768 +3,-0.109303314681054,0.620379801298422,1766.5 +4,-0.453497173462763,0.612123492650849,1793.3 +5,0.605887455840394,-0.162310976918126,1821.8 +6,-1.81795596770373,0.81187317855386,1855.3 +7,0.630098551068391,2.19683354634753,1865.3 +8,-0.276184105225216,2.04919033740619,1868.2 +9,-0.284159743943371,1.63244563948047,1842.2 +10,-0.919322002474128,0.254271192814055,1835.5 +11,-0.116247806352002,0.491188279272559,1856.1 +12,1.81731204370422,-0.324086578737118,1838.7 +13,0.370627864257954,-1.66205024385863,1913 +14,0.520216457554957,1.76773385087297,1971.2 +15,-0.750531994502331,0.0258010486478081,2048.4 +16,0.816899839520583,1.12851083359018,2084.4 +17,-0.886357521243213,-2.38035806139704,2110.7 +18,-0.331577589942552,-1.06026555215253,2145.7 +19,1.12071265166956,0.937140540182908,2188.5 +20,0.298723699267293,0.854451720330554,2192.2 +21,0.779621924555324,1.46072940310409,2214.3 +22,1.45578508247686,-1.41309877788919,2216.7 +23,-0.644328429231302,0.567403253424482,2231.6 +24,-1.55313740522969,0.583187653435685,2305.3 +25,-1.59770951669631,-1.30679883346442,2348.4 +,,0.294465403072536,2366.2 +,,0.617253665579483,2351.8 +,,0.974274127278477,2314.6 +,,0.618212037952617,2303.5 +,,0.521369193447754,2306.4 +,,0.902503795921803,2332.4 +,,0.637454432668164,2379.1 +,,0.864301132969558,2447.7 +,,0.251117740990594,2488.1 +,,0.21506908070296,2521.4 +,,0.609476044774055,2535.5 +,,0.383444635430351,2523.9 +,,0.755271044559777,2543.8 +,,0.379736242815852,2540.6 +,,0.794972063507885,2582.1 +,,0.905691135907546,2597.9 +,,0.984026173362508,2591.7 +,,0.587947973515838,2616.6 +,,0.00946405157446861,2589.1 +,,0.320792069192976,2519 +,,0.559456733288243,2534.5 +,,0.514917560154572,2593.9 +,,0.0897118621505797,2654.3 +,,0.683250573696569,2708 +,,0.709972049575299,2776.4 +,,,2773.1 +,,,2782.8 +,,,2845.3 +,,,2832 +,,,2836.6 +,,,2800.2 +,,,2816.9 +,,,2869.6 +,,,2915.9 +,,,2975.3 +,,,3028.7 +,,,3062.1 +,,,3090.4 +,,,3097.9 +,,,3138.4 +,,,3177.7 +,,,3237.6 +,,,3262.2 +,,,3335.4 +,,,3373.7 +,,,3419.5 +,,,3429 +,,,3513.3 +,,,3560.9 +,,,3633.2 +,,,3720.8 +,,,3812.2 +,,,3824.9 +,,,3850 +,,,3881.2 +,,,3915.4 +,,,3916.2 +,,,3947.5 +,,,3977.6 +,,,4059.5 +,,,4128.5 +,,,4156.7 +,,,4174.7 +,,,4240.5 +,,,4252.8 +,,,4279.7 +,,,4259.6 +,,,4252.9 +,,,4260.7 +,,,4298.6 +,,,4253 +,,,4370.3 +,,,4395.1 +,,,4430.2 +,,,4442.5 +,,,4521.9 +,,,4629.1 +,,,4673.5 +,,,4750.5 +,,,4872 +,,,4928.4 +,,,4902.1 +,,,4948.8 +,,,4905.4 +,,,4918 +,,,4869.4 +,,,4850.2 +,,,4791.2 +,,,4827.8 +,,,4909.1 +,,,4973.3 +,,,5086.3 +,,,5124.6 +,,,5149.7 +,,,5187.1 +,,,5247.3 +,,,5351.6 +,,,5447.3 +,,,5446.1 +,,,5464.7 +,,,5679.7 +,,,5735.4 +,,,5811.3 +,,,5821 +,,,5826.4 +,,,5868.3 +,,,5884.5 +,,,5903.4 +,,,5782.4 +,,,5771.7 +,,,5878.4 +,,,6000.6 +,,,5952.7 +,,,6025 +,,,5950 +,,,5852.3 +,,,5884 +,,,5861.4 +,,,5866 +,,,5938.9 +,,,6072.4 +,,,6192.2 +,,,6320.2 +,,,6442.8 +,,,6554 +,,,6617.7 +,,,6671.6 +,,,6734.5 +,,,6791.5 +,,,6897.6 +,,,6950 +,,,7016.8 +,,,7045 +,,,7112.9 +,,,7147.3 +,,,7186.9 +,,,7263.3 +,,,7326.3 +,,,7451.7 +,,,7490.2 +,,,7586.4 +,,,7625.6 +,,,7727.4 +,,,7799.9 +,,,7858.3 +,,,7920.6 +,,,7937.9 +,,,8020.8 +,,,8052.7 +,,,8052.6 +,,,7982 +,,,7943.4 +,,,7997 +,,,8030.7 +,,,8062.2 +,,,8150.7 +,,,8237.3 +,,,8322.3 +,,,8409.8 +,,,8425.3 +,,,8479.2 +,,,8523.8 +,,,8636.4 +,,,8720.5 +,,,8839.8 +,,,8896.7 +,,,8995.5 +,,,9017.6 +,,,9037 +,,,9112.9 +,,,9176.4 +,,,9239.3 +,,,9399 +,,,9480.8 +,,,9584.3 +,,,9658 +,,,9801.2 +,,,9924.2 +,,,10000.3 +,,,10094.8 +,,,10185.6 +,,,10320 +,,,10498.6 +,,,10592.1 +,,,10674.9 +,,,10810.7 +,,,11004.8 +,,,11033.6 +,,,11248.8 +,,,11258.3 +,,,11325 +,,,11287.8 +,,,11361.7 +,,,11330.4 +,,,11370 +,,,11467.1 +,,,11528.1 +,,,11586.6 +,,,11590.6 +,,,11638.9 +,,,11737.5 +,,,11930.7 +,,,12038.6 +,,,12117.9 +,,,12195.9 +,,,12286.7 +,,,12387.2 +,,,12515 +,,,12570.7 +,,,12670.5 +,,,12735.6 +,,,12896.4 +,,,12948.7 +,,,12950.4 +,,,13038.4 +,,,13056.1 +,,,13173.6 +,,,13269.8 +,,,13326 +,,,13266.8 +,,,13310.5 +,,,13186.9 +,,,12883.5 +,,,12711 +,,,12701 +,,,12746.7 +,,,12873.1 +,,,12947.6 +,,,13019.6 +,,,13103.5 +,,,13181.2 +,,,13183.8 +,,,13264.7 +,,,13306.9 +,,,13441 +,,,13506.4 +,,,13548.5 +,,,13652.5 +,,,13665.4 +,,,13725.7 diff --git a/statsmodels/tsa/tests/results/bds_results.csv b/statsmodels/tsa/tests/results/bds_results.csv new file mode 100644 index 0000000..370dd42 --- /dev/null +++ b/statsmodels/tsa/tests/results/bds_results.csv @@ -0,0 +1,20 @@ +1.00000000,1.00000000,NaN,NaN,NaN,0.69666667,0.49898551 +1.00000000,2.00000000,36.40567147,0.00000000,0.71739130,0.71739130,0.49898551 +1.00000000,3.00000000,37.73419833,0.00000000,0.73913043,0.73913043,0.49898551 +1.00000000,4.00000000,39.98711582,0.00000000,0.76190476,0.76190476,0.49898551 +1.00000000,5.00000000,43.69162614,0.00000000,0.78571429,0.78571429,0.49898551 +2.00000000,1.00000000,NaN,NaN,NaN,0.69666667,0.50681159 +2.00000000,2.00000000,2.15098566,0.03147733,0.49275362,0.68840580,0.50681159 +2.00000000,3.00000000,2.28830079,0.02212001,0.35177866,0.68379447,0.50681159 +2.00000000,4.00000000,1.53581933,0.12458270,0.23376623,0.67532468,0.50681159 +2.00000000,5.00000000,1.15344705,0.24872694,0.14285714,0.65714286,0.50681159 +3.00000000,1.00000000,NaN,NaN,NaN,0.73877551,0.59656463 +3.00000000,2.00000000,0.67088078,0.50229648,0.56207483,0.74319728,0.59656463 +3.00000000,3.00000000,0.04274706,0.96590317,0.41400709,0.74468085,0.59656463 +3.00000000,4.00000000,0.26226100,0.79312022,0.30804810,0.74005550,0.59656463 +3.00000000,5.00000000,0.97965854,0.32725470,0.24830918,0.73526570,0.59656463 +4.00000000,1.00000000,NaN,NaN,NaN,0.68170383,0.48895534 +4.00000000,2.00000000,72.16152400,0.00000000,0.68069478,0.68222145,0.48895534 +4.00000000,3.00000000,79.04282276,0.00000000,0.68026006,0.68275622,0.48895534 +4.00000000,4.00000000,87.73840060,0.00000000,0.67997426,0.68330847,0.48895534 +4.00000000,5.00000000,100.08086806,0.00000000,0.67975243,0.68387857,0.48895534 diff --git a/statsmodels/tsa/tests/results/corrgram.do b/statsmodels/tsa/tests/results/corrgram.do new file mode 100644 index 0000000..be21354 --- /dev/null +++ b/statsmodels/tsa/tests/results/corrgram.do @@ -0,0 +1,16 @@ +* Stata do file for getting test results +insheet using "/home/skipper/statsmodels/statsmodels-skipper/statsmodels/datasets/macrodata/macrodata.csv", double clear +gen qtrdate=yq(year,quarter) +format qtrdate %tq +tsset qtrdate +ac realgdp, gen(acvar) +ac realgdp, gen(acvarfft) fft +corrgram realgdp +matrix Q = r(Q)' +svmat Q, names(Q) +matrix PAC = r(PAC)' +svmat PAC, names(PAC) +rename PAC1 PACOLS +pac realgdp, yw gen(PACYW) +outsheet acvar acvarfft Q1 PACOLS PACYW using "/home/skipper/statsmodels/statsmodels-skipper/scikits/statsmodels/sandbox/tsa/tests/results/results_corrgram.csv", comma replace + diff --git a/statsmodels/tsa/tests/results/datamlw_tls.py b/statsmodels/tsa/tests/results/datamlw_tls.py new file mode 100644 index 0000000..907d7ee --- /dev/null +++ b/statsmodels/tsa/tests/results/datamlw_tls.py @@ -0,0 +1,376 @@ +import numpy as np +from numpy import array + + +class Holder(object): + pass + + +mlpacf = Holder() +mlpacf.comment = 'mlab.parcorr(x, [], 2, nout=3)' +mlpacf.name = 'mlpacf' +mlpacf.lags1000 = array([[ 0.], + [ 1.], + [ 2.], + [ 3.], + [ 4.], + [ 5.], + [ 6.], + [ 7.], + [ 8.], + [ 9.], + [ 10.], + [ 11.], + [ 12.], + [ 13.], + [ 14.], + [ 15.], + [ 16.], + [ 17.], + [ 18.], + [ 19.], + [ 20.]]) +mlpacf.bounds1000 = array([[ 0.06334064], + [-0.06334064]]) +mlpacf.lags100 = array([[ 0.], + [ 1.], + [ 2.], + [ 3.], + [ 4.], + [ 5.], + [ 6.], + [ 7.], + [ 8.], + [ 9.], + [ 10.], + [ 11.], + [ 12.], + [ 13.], + [ 14.], + [ 15.], + [ 16.], + [ 17.], + [ 18.], + [ 19.], + [ 20.]]) +mlpacf.pacf100 = array([[ 1. ], + [ 0.47253777], + [-0.49466966], + [-0.02689319], + [-0.00122204], + [ 0.08419183], + [ 0.03220774], + [ 0.10404012], + [ 0.05304617], + [-0.04129564], + [-0.04049451], + [ 0.11727754], + [ 0.11804158], + [-0.05864957], + [-0.15681802], + [ 0.11828684], + [ 0.05156002], + [ 0.00694629], + [ 0.01668964], + [ 0.02236851], + [-0.0909443 ]]) +mlpacf.pacf1000 = array([[ 1.00000000e+00], + [ 5.29288262e-01], + [ -5.31849027e-01], + [ 1.17440051e-02], + [ -5.37941905e-02], + [ -4.11119348e-02], + [ -2.40367432e-02], + [ 2.24289891e-02], + [ 3.33007235e-02], + [ 4.59658302e-02], + [ 6.65850553e-03], + [ -3.76714278e-02], + [ 5.27229738e-02], + [ 2.50796558e-02], + [ -4.42597301e-02], + [ -1.95819186e-02], + [ 4.70451394e-02], + [ -1.70963705e-03], + [ 3.04262524e-04], + [ -6.22001614e-03], + [ -1.16694989e-02]]) +mlpacf.bounds100 = array([[ 0.20306923], + [-0.20306923]]) + +mlacf = Holder() +mlacf.comment = 'mlab.autocorr(x, [], 2, nout=3)' +mlacf.name = 'mlacf' +mlacf.acf1000 = array([[ 1. ], + [ 0.5291635 ], + [-0.10186759], + [-0.35798372], + [-0.25894203], + [-0.06398397], + [ 0.0513664 ], + [ 0.08222289], + [ 0.08115406], + [ 0.07674254], + [ 0.04540619], + [-0.03024699], + [-0.05886634], + [-0.01422948], + [ 0.01277825], + [-0.01013384], + [-0.00765693], + [ 0.02183677], + [ 0.03618889], + [ 0.01622553], + [-0.02073507]]) +mlacf.lags1000 = array([[ 0.], + [ 1.], + [ 2.], + [ 3.], + [ 4.], + [ 5.], + [ 6.], + [ 7.], + [ 8.], + [ 9.], + [ 10.], + [ 11.], + [ 12.], + [ 13.], + [ 14.], + [ 15.], + [ 16.], + [ 17.], + [ 18.], + [ 19.], + [ 20.]]) +mlacf.bounds1000 = array([[ 0.0795181], + [-0.0795181]]) +mlacf.lags100 = array([[ 0.], + [ 1.], + [ 2.], + [ 3.], + [ 4.], + [ 5.], + [ 6.], + [ 7.], + [ 8.], + [ 9.], + [ 10.], + [ 11.], + [ 12.], + [ 13.], + [ 14.], + [ 15.], + [ 16.], + [ 17.], + [ 18.], + [ 19.], + [ 20.]]) +mlacf.bounds100 = array([[ 0.24319646], + [-0.24319646]]) +mlacf.acf100 = array([[ 1. ], + [ 0.47024791], + [-0.1348087 ], + [-0.32905777], + [-0.18632437], + [ 0.06223404], + [ 0.16645194], + [ 0.12589966], + [ 0.04805397], + [-0.03785273], + [-0.0956997 ], + [ 0.00644021], + [ 0.17157144], + [ 0.12370327], + [-0.07597526], + [-0.13865131], + [ 0.02730275], + [ 0.13624193], + [ 0.10417949], + [ 0.01114516], + [-0.09727938]]) + +mlccf = Holder() +mlccf.comment = 'mlab.crosscorr(x[4:], x[:-4], [], 2, nout=3)' +mlccf.name = 'mlccf' +mlccf.ccf100 = array([[ 0.20745123], + [ 0.12351939], + [-0.03436893], + [-0.14550879], + [-0.10570855], + [ 0.0108839 ], + [ 0.1108941 ], + [ 0.14562415], + [ 0.02872607], + [-0.14976649], + [-0.08274954], + [ 0.13158485], + [ 0.18350343], + [ 0.00633845], + [-0.10359988], + [-0.0416147 ], + [ 0.05056298], + [ 0.13438945], + [ 0.17832125], + [ 0.06665153], + [-0.19999538], + [-0.31700548], + [-0.09727956], + [ 0.46547234], + [ 0.92934645], + [ 0.44480271], + [-0.09228691], + [-0.21627289], + [-0.05447732], + [ 0.13786254], + [ 0.15409039], + [ 0.07466298], + [-0.01000896], + [-0.06744264], + [-0.0607185 ], + [ 0.04338471], + [ 0.12336618], + [ 0.07712367], + [-0.08739259], + [-0.09319212], + [ 0.04426167]]) +mlccf.lags1000 = array([[-20.], + [-19.], + [-18.], + [-17.], + [-16.], + [-15.], + [-14.], + [-13.], + [-12.], + [-11.], + [-10.], + [ -9.], + [ -8.], + [ -7.], + [ -6.], + [ -5.], + [ -4.], + [ -3.], + [ -2.], + [ -1.], + [ 0.], + [ 1.], + [ 2.], + [ 3.], + [ 4.], + [ 5.], + [ 6.], + [ 7.], + [ 8.], + [ 9.], + [ 10.], + [ 11.], + [ 12.], + [ 13.], + [ 14.], + [ 15.], + [ 16.], + [ 17.], + [ 18.], + [ 19.], + [ 20.]]) +mlccf.bounds1000 = array([[ 0.06337243], + [-0.06337243]]) +mlccf.ccf1000 = array([[ 0.02733339], + [ 0.04372407], + [ 0.01082335], + [-0.02755073], + [-0.02076039], + [ 0.01624263], + [ 0.03622844], + [ 0.02186092], + [-0.00766506], + [-0.0101448 ], + [ 0.01279167], + [-0.01424596], + [-0.05893064], + [-0.03028013], + [ 0.04545462], + [ 0.076825 ], + [ 0.08124118], + [ 0.08231121], + [ 0.05142144], + [-0.06405412], + [-0.25922346], + [-0.35806674], + [-0.1017256 ], + [ 0.5293535 ], + [ 0.99891094], + [ 0.52941977], + [-0.10127572], + [-0.35691466], + [-0.25943369], + [-0.06458511], + [ 0.05026194], + [ 0.08196501], + [ 0.08242852], + [ 0.07775845], + [ 0.04590431], + [-0.03195209], + [-0.06162966], + [-0.01395345], + [ 0.01448736], + [-0.00952503], + [-0.00927344]]) +mlccf.lags100 = array([[-20.], + [-19.], + [-18.], + [-17.], + [-16.], + [-15.], + [-14.], + [-13.], + [-12.], + [-11.], + [-10.], + [ -9.], + [ -8.], + [ -7.], + [ -6.], + [ -5.], + [ -4.], + [ -3.], + [ -2.], + [ -1.], + [ 0.], + [ 1.], + [ 2.], + [ 3.], + [ 4.], + [ 5.], + [ 6.], + [ 7.], + [ 8.], + [ 9.], + [ 10.], + [ 11.], + [ 12.], + [ 13.], + [ 14.], + [ 15.], + [ 16.], + [ 17.], + [ 18.], + [ 19.], + [ 20.]]) +mlccf.bounds100 = array([[ 0.20412415], + [-0.20412415]]) + +mlywar = Holder() +mlywar.comment = "mlab.ar(x100-x100.mean(), 10, 'yw').a.ravel()" +mlywar.arcoef100 = array([ 1. , -0.66685531, 0.43519425, -0.00399862, 0.05521524, + -0.09366752, 0.01093454, -0.00688404, -0.04739089, 0.00127931, + 0.03946846]) +mlywar.arcoef1000 = array([ 1. , -0.81230253, 0.55766432, -0.02370962, 0.02688963, + 0.01110911, 0.02239171, -0.01891209, -0.00240527, -0.01752532, + -0.06348611, 0.0609686 , -0.00717163, -0.0467326 , -0.00122755, + 0.06004768, -0.04893984, 0.00575949, 0.00249315, -0.00560358, + 0.01248498]) +mlywar.name = 'mlywar' + diff --git a/statsmodels/tsa/tests/results/make_arma.py b/statsmodels/tsa/tests/results/make_arma.py new file mode 100644 index 0000000..dcc4404 --- /dev/null +++ b/statsmodels/tsa/tests/results/make_arma.py @@ -0,0 +1,41 @@ +import numpy as np +from statsmodels.tsa.arima_process import arma_generate_sample +from statsmodels.iolib import savetxt + +np.random.seed(12345) + +# no constant +y_arma11 = arma_generate_sample([1., -.75],[1., .35], nsample=250) +y_arma14 = arma_generate_sample([1., -.75],[1., .35, -.75, .1, .35], + nsample=250) +y_arma41 = arma_generate_sample([1., -.75, .25, .25, -.75], [1., .35], + nsample=250) +y_arma22 = arma_generate_sample([1., -.75, .45],[1., .35, -.9], nsample=250) + +y_arma50 = arma_generate_sample([1., -.75, .35, -.3, -.2, .1], [1.], + nsample=250) + +y_arma02 = arma_generate_sample([1.], [1., .35, -.75], nsample=250) + + +# constant +constant = 4.5 +y_arma11c = arma_generate_sample([1., -.75],[1., .35], nsample=250) + constant +y_arma14c = arma_generate_sample([1., -.75],[1., .35, -.75, .1, .35], + nsample=250) + constant +y_arma41c = arma_generate_sample([1., -.75, .25, .25, -.75], [1., .35], + nsample=250) + constant +y_arma22c = arma_generate_sample([1., -.75, .45],[1., .35, -.9], nsample=250) + \ + constant + +y_arma50c = arma_generate_sample([1., -.75, .35, -.3, -.2, .1], [1.], + nsample=250) + constant + +y_arma02c = arma_generate_sample([1.], [1., .35, -.75], nsample=250) + constant + +savetxt('y_arma_data.csv', np.column_stack((y_arma11, y_arma14, y_arma41, + y_arma22,y_arma50, y_arma02,y_arma11c,y_arma14c,y_arma41c,y_arma22c, + y_arma50c,y_arma02c)), names=['y_arma11','y_arma14','y_arma41', + 'y_arma22','y_arma50', 'y_arma02','y_arma11c','y_arma14c', + 'y_arma41c','y_arma22c', 'y_arma50c','y_arma02c'], delimiter=",") + diff --git a/statsmodels/tsa/tests/results/resids_css_c.csv b/statsmodels/tsa/tests/results/resids_css_c.csv new file mode 100644 index 0000000..0b2b971 --- /dev/null +++ b/statsmodels/tsa/tests/results/resids_css_c.csv @@ -0,0 +1,251 @@ +uhat1,uhat2,uhat3,uhat4,uhat5,uhat6 +NA,NA,NA,NA,NA,0.5003943106 +-0.0654604069,1.2630851631,NA,NA,NA,-0.3492146815 +-0.6354860870,-0.3745540861,NA,-0.0568351332,NA,-0.4057551504 +0.2946689399,1.9320851419,NA,0.4708046227,NA,1.1354217062 +0.3069409327,-2.9442407231,1.6018525285,-0.1746956878,NA,0.1874478049 +1.1046618847,-0.4539618378,1.6539689425,-0.2014228655,0.6393283864,1.6055802746 +-0.3828416754,0.1344632210,-1.3129222016,-0.8717798107,-0.7314782509,1.0374903213 +1.4702204261,0.7281252447,-0.5567108484,-2.4315672313,0.4423561929,1.2018542806 +2.0170637341,-1.8582439824,0.6931923024,0.8150557324,0.3026666954,0.7287917939 +-1.6277579917,-0.5102464069,1.5277277726,1.7373173964,1.9681770810,-1.2197099602 +-0.2761238205,0.3649873042,-0.7775647134,0.3466448635,0.3055073018,-1.2953001238 +-0.3025647947,-0.6468237174,0.3357278371,-0.2376379568,-1.2295923846,-1.1459649338 +-1.2846849045,-0.5316460028,2.0697089917,-0.7639490470,1.9033793640,0.2259331476 +-0.1937165378,0.2289905496,-0.2433095548,0.5100208566,0.8134690690,-1.3873492495 +0.0437732898,1.5823375139,-0.0499872936,-0.4584357209,-1.0403646437,0.2258502046 +-0.7085965149,-1.4132676403,-1.6807513582,3.4008022670,-0.8489945586,0.3993469203 +0.6869217259,-0.8486358552,-0.5557220610,-1.6785999705,-0.6749476366,2.1521772635 +-0.9110442088,1.8023461442,0.0422997113,-0.3896198162,-0.7624594802,-1.1114694077 +-1.4100657105,-0.1330189711,-1.9596491770,-1.4344442835,1.8246740205,-1.3731040469 +-0.4980648446,-0.3659419910,0.3192900090,-0.7646484888,-0.6212539753,-0.5343918278 +-0.1963182905,0.3120634472,2.3004050792,-1.0411878963,1.0091729618,-0.3550571047 +0.9418004197,0.7849270531,1.7775243710,2.7319295571,-0.5710783910,0.1157782614 +-0.5088996273,-0.1913695163,-0.7966402442,-0.5348961666,1.8482032661,1.0534313649 +-0.0715461735,-0.5835327992,0.7947619524,0.1219312550,-0.5767933872,0.2132220913 +0.1520909081,0.1397022507,0.9603641674,1.5019044258,-1.1616291842,-1.4513944228 +-0.6864736829,0.1319559890,-0.6002966471,-1.7473751920,0.0078164587,1.3180340915 +0.4828560247,-1.1836012446,1.0716925599,0.1608575427,-1.4868931749,0.3316003442 +-0.3129862942,0.0715293754,0.7365955341,3.2417094068,-0.4098987226,-0.3929225342 +0.1403851586,0.1897035123,-0.0596476798,-1.5798681153,-1.3985600700,1.1626778095 +-0.6032097207,-1.5082408448,0.7000377494,-1.8776160639,1.6758350985,1.2323721377 +2.8737695679,0.7407781954,-0.5782723408,-0.5920917220,0.2527059509,0.1034785314 +-2.6850104137,-1.1661391527,0.7303536686,0.7237072817,-0.0080868097,-0.5095558943 +-0.2719886602,-3.3895763252,-1.6277304594,-1.3923154766,-0.4279533651,-0.8344555187 +-0.7011477493,-0.0298714445,-0.1198199634,0.3133301638,0.3116693135,-0.1733047241 +0.0416515294,0.9737200196,-0.3917202686,-1.0825585473,-0.7950165162,0.5819410626 +1.5149337326,0.2416624934,-1.1947318956,-0.4628348494,1.9146927090,-0.0084117176 +0.7481441984,-0.4375977941,-0.1342210487,0.1968247746,-0.6319537359,-1.0020328996 +-0.6319203993,2.0267610475,0.3996607915,0.5544329061,-1.1313993936,1.3364436916 +0.4715056582,-1.5235522088,-1.7283193075,-0.0819206410,-1.3303897737,0.5075005597 +0.9091893668,-1.0134393903,-1.3735762171,0.9860332103,0.6522772947,2.5312190410 +0.5287709867,-0.6950810352,0.4319451587,-0.3790023987,-0.2159343530,-2.6736528549 +-0.0807173107,-0.6688791267,1.5511740149,0.7564309588,0.3980649655,-2.6144539804 +0.0536032633,-0.8824599745,-0.3967729837,-0.4797359756,-0.4979607052,-0.7626375288 +-0.2460397963,-0.3461595374,-0.2351990573,-2.4095477741,1.1221816621,-0.9082062341 +0.0709363800,-1.0466628618,0.3294003679,0.1844875977,-0.7110086691,-1.1623096473 +0.2399373116,0.6941539535,0.3145399145,-0.2363560438,0.0210786490,-0.1754088571 +-0.2438563526,1.5030015748,-0.4042708849,-0.6632463501,-0.0946388559,-0.8122142899 +0.7157352693,0.0543236131,-0.1575747665,-0.7529692090,0.8677700083,0.5276833203 +-0.5084592767,0.6610466284,0.6077484386,-0.5243826928,0.0024699075,-0.2810590594 +1.0176896459,-0.3607767040,-1.9293078296,-0.7515491068,0.9555308508,0.1584558649 +1.5089485007,1.5219576739,-0.6992680036,1.2154852847,-1.1463576156,-0.4597511790 +1.3383277508,2.2028700891,0.8097337365,1.0794697807,-2.1389688647,-1.5859320795 +0.3962442881,-0.4305160737,-1.3210614991,0.7161741695,0.4642007939,0.0246124486 +-0.7652338955,-0.5166895756,0.2962352092,0.3247205142,-0.8670442336,-0.4772492318 +0.5643576383,0.3956401450,1.4860288420,-0.2779957266,0.3116651464,-1.1239150443 +-0.0374705391,1.0901994506,0.9060165422,0.7509412729,-0.1020081479,0.3405360107 +-1.6275106422,1.1118352132,-0.0734528602,1.5776415179,-1.2972874027,0.8119571278 +1.3248479401,-0.3348267959,0.1975626501,0.5934869165,-1.0050772391,-0.0761280584 +1.6176183007,1.2976915734,-0.6419622802,0.5957844486,-1.4706520720,-1.5533444578 +0.6723751875,0.5086092958,-0.5091309911,-0.9939298251,-1.8872368640,0.5298484455 +-0.3382029836,-2.0506220303,0.2674136308,-0.6903485064,0.4214283863,0.8624606065 +0.8374334442,-0.1375622562,0.9276882431,-0.6083805360,0.2344020489,0.7971587010 +0.9367567624,0.0509525973,-2.0189241276,-0.0578032026,-1.2671869073,0.2221199506 +-2.1890137857,0.5172743480,-0.4207972910,-1.3312228275,-0.9893612183,-0.7007866945 +-1.7673535236,0.5468202195,-0.1092700241,0.5994251816,-0.6039924264,-1.5787524848 +-1.1150896719,-1.6594138211,0.2844613717,1.0520409822,0.9630107978,-0.3000528315 +0.4208490095,1.8080909225,0.9202916640,0.7772313848,0.7211254678,0.7037872606 +-0.1989320555,-0.3298732880,1.2297305855,0.6461123409,0.6427656563,0.3165638628 +-0.0519355019,0.7657112511,-1.2619116037,-0.2808796329,0.7789272390,0.6909305105 +-0.1925658016,1.5984022911,1.6236000333,-0.9923169322,-0.2860970877,0.9115270207 +0.8091183807,0.3246702273,0.7048713981,2.2152386269,-0.2811969367,-0.7492420302 +0.3851042457,-0.3386875670,0.2304304233,-0.3979151000,0.3160027414,0.0304899261 +-0.8874014278,1.1943808482,-0.5023952244,-0.5514781203,-1.0536831017,-0.2179694459 +0.4407832279,0.0523743421,-1.4662354110,0.1411648842,-1.4636188905,-0.8327519395 +-0.2629532039,1.0475402671,0.8756413946,-0.4510054148,-0.7295765080,0.6424046832 +1.3460795119,0.0884779627,-0.5682036973,0.4253867348,-0.2645342719,1.2328297716 +1.4477374179,-1.4880389199,-1.3159218241,-0.5333782667,0.6446414445,-0.6831638605 +-1.1068354262,-0.2210533536,0.6107236387,-0.5849566916,1.0150747633,-1.3747400756 +0.5015683891,-0.6886112105,-0.2150892146,0.2976803070,-1.4526679511,0.9676734086 +1.3303310164,-0.7866728621,-0.0604242534,0.3166514200,1.0591768704,1.9287588832 +-0.4986333991,-2.1896107532,-0.4594879074,0.0076093532,-1.5864349617,-0.2443816202 +0.8371757402,1.0122881194,0.9747158848,2.0868453261,0.8553441826,0.4177749515 +0.2241215687,-1.7957236597,-1.8297964730,-0.3358237607,-0.6192435325,-0.4930144584 +0.7832548194,-0.6043240087,0.1031166441,-0.2043217762,0.6811283663,-0.5666896262 +1.2790309147,-0.8330944969,0.4691860996,1.7424509046,-0.7443373341,-0.7566423659 +1.3729576844,0.2668869648,-0.9865774811,-1.6793688171,0.7530405621,0.7053387848 +-0.1506368009,0.4545469482,-0.2636504852,-0.5801568263,-1.2985993625,-0.0966889466 +0.0701519818,0.0006587644,0.5464727713,-1.1967004895,-1.4686272056,1.6624993654 +-0.4413901802,-0.1794993701,1.2716732496,-0.9997354861,0.3795552275,-1.6629825610 +-1.0406023856,-1.4710415052,0.8852373182,-1.7821439728,0.0616569205,0.5607366268 +0.3438836253,0.3019562062,0.3113134230,-1.1049500709,-0.0472231498,0.6794404966 +0.1872210447,-0.2181383487,0.4269897736,-1.2584207049,0.6435582496,1.8568318491 +-1.1758410195,0.7338825612,-3.2192240590,-0.9539135555,-1.2833358213,0.6347810269 +1.1403879504,0.3664986261,-0.4578789352,-0.0892428031,-0.0676864665,1.1622940267 +-2.0272931103,-0.4575022623,-0.3082829339,0.3606002438,0.0595655194,-1.0267142580 +-1.7216043582,0.8278561949,-1.1425141481,1.1321203795,-0.8611531373,0.7095997481 +-0.2781180874,-0.2103503117,-0.3093247345,-3.0544011602,-0.2876661294,-0.2268230452 +0.8369744273,-0.2404263132,1.1564831203,-0.0204020379,-0.9819839107,1.6852656521 +0.8345610422,0.6952275350,-0.9586613496,0.4466599706,-1.2264246294,-0.9723111255 +2.2012414392,0.5503974375,-0.0033846456,-1.4676175521,0.3063842593,1.0976378745 +0.1668948003,1.1488857035,0.0560980353,-0.5435875677,0.5057279675,-0.3895431008 +0.6347841284,0.0938644735,0.5673224629,-1.7699237338,0.3263993448,0.9743186850 +-0.1553431061,1.3592644799,0.7198606550,1.9037264893,-1.9048706490,-1.4754925348 +-3.6906716246,-0.0173961930,0.9820098802,-2.1575453441,-1.8474039236,1.6980093185 +-1.6246441930,-0.2034884257,-0.6856603162,-0.0524264832,0.2962762330,1.1438618632 +-0.7101009285,-0.3798257888,-1.5237184924,-1.0660490256,-0.8312812097,-2.0446815930 +-1.0044535394,-0.9868949244,1.4125136525,-0.2300446183,-1.4878644354,-0.5410528581 +1.0175707931,-0.2276451208,-1.3301590091,-0.8503675641,-0.3930718284,-0.2417342172 +-0.9277975098,-0.3605600386,-1.4308176138,-0.2850780766,0.8941345586,0.1257221936 +0.9749441738,-0.6689985336,-1.5172439837,-1.1002819723,0.8468866650,-1.4438006595 +-0.5485514540,-1.6122356618,0.3708045184,0.2031677006,0.1980891877,2.7186226492 +1.1328001994,-0.7563402849,0.7085118554,-0.6834515929,1.3106114910,-0.6703471634 +1.6915186471,-0.0293767965,0.0724622141,-0.6891689152,0.6448055491,-0.1027222370 +1.3461835508,1.3628752311,0.0054879873,1.6731019129,1.7467605358,-0.3669118960 +0.9356320892,-0.1014139773,-1.6104735239,0.2973422359,-0.5141566716,-1.1264365217 +-0.1947487268,-1.4536928002,0.0937448813,-0.6403606739,1.8000610462,0.7810284504 +-1.4600276800,0.1380387687,-1.8061353374,1.6649005367,1.1112660846,0.7174777506 +1.4083043461,2.0328868017,0.9597472085,1.2076275681,1.1637810337,-0.5750451086 +0.7555856746,0.3936792347,-0.1533108942,2.0388822750,0.0995127861,2.3014747244 +-1.4173315178,-0.2466246965,0.7282808133,0.5961877815,-1.3592278754,-0.7304096992 +0.8334998949,0.8578275484,0.1959441967,-0.8039929081,0.3348472051,1.1997789442 +-0.4433274388,0.5608159863,0.3833817279,0.5317121769,1.7059099873,0.8695640197 +0.8830003293,-0.0287544451,-1.1798348578,0.0283990325,-0.0075607086,-1.1080249303 +0.2288748073,0.3025092041,-0.0790254304,-0.3743985815,0.4439976621,1.1846266000 +-1.4376024339,-0.0528851411,0.3922379103,-0.6310919354,1.1381526167,-0.9312452941 +0.4263198719,-0.5093831586,-1.8331149527,-1.7010601475,-0.1439891226,-1.1648722060 +0.4095303549,0.2623855068,1.1397336548,0.1345112002,-1.5436360159,0.6243403941 +0.6026472890,1.9744450068,0.2496865676,2.2346628441,0.1908724773,-0.2745090893 +-1.7818182491,-0.4120434810,-0.2632536437,-2.3177995648,-1.6257680004,-0.8080546491 +0.7838696230,-1.5494786851,0.2273804696,1.6270819525,1.0276553113,-0.5285699168 +-0.6802372762,0.2845480423,0.0218113495,-2.1326401865,0.5376776939,-1.5610155178 +-0.2171863926,2.0258778118,-1.2960151431,-2.2676025399,0.8583011420,-2.3088488812 +1.0207864367,1.3306582178,0.2938591851,-1.5721565438,-0.8357929085,0.4556781999 +-0.7537789514,1.6352212305,-0.0151489874,0.6774464253,-1.0391462020,-2.1399472985 +1.4265268043,-0.7758918334,-0.2241536881,-1.0647999645,0.8538391522,-1.4091344475 +2.2954869649,1.4166329867,-0.4534667558,2.3606061022,1.6965210132,-1.6893625294 +-0.8547395145,-1.5696538424,0.4724321463,0.4203755037,1.3122125061,-0.0111738785 +-0.1367933840,-0.1437980542,2.6690983696,-0.5117225562,0.0932130899,2.4842538924 +-0.6437664574,-1.0827215584,-0.8820582782,1.0030601055,0.8981908845,-0.6605924663 +-0.3061163905,-0.8027612404,-0.8063910385,-0.8769579218,1.2042560809,0.4215805113 +0.0898401154,1.0913334529,-0.2899997592,1.9281192377,-1.5271857033,0.3893754154 +0.7661303152,1.3296704729,0.1318332281,2.1268395595,0.6773196461,-0.7394571904 +-0.3234495650,-0.1236231664,1.0164713042,0.6573325551,-1.3279555489,1.9150854662 +1.1182164690,0.4383504719,-1.0796268540,-0.0693358055,-0.3636827717,-0.9618402341 +-0.1513082848,0.4762530971,0.1453786217,1.8459833668,0.8801830575,-1.3358260664 +-0.0497375924,-0.0839629046,0.6457138991,-0.1724376838,-0.6898710128,1.1842964072 +0.0744097740,-0.6911241866,-0.9541048800,-0.1929226937,-0.2993801569,-1.0245419517 +1.0352650335,1.3563860484,0.9459148918,-0.5944905866,0.9041552321,0.8422034007 +0.4096924544,-0.0193972911,-0.7736506866,2.0775471935,-1.4162727891,-1.6497863991 +0.0943655963,0.7782222971,0.6406129989,1.6974461277,-0.8155135681,-0.4469365773 +-0.3711037957,-0.7343844893,0.5458146747,0.1547696934,-0.1926832462,1.5957685199 +0.0261208823,-0.4144498838,-0.9485555425,1.8328896061,1.7245510545,-1.3262079835 +0.2787288490,0.8999609407,-0.1776797926,0.3362813903,0.9277695949,-0.2225264142 +1.5205548430,-1.1618375994,-1.6120446862,1.1679127561,-1.4281646449,2.1441838498 +-0.0510788534,0.8073317833,1.0622504320,-0.4387705333,1.0814239193,0.4906556109 +-0.7538796863,0.8484047828,-0.2981417016,0.2898703199,-0.3453311846,1.7531928586 +-0.2116339647,-0.7586766732,0.0915136072,-1.1960087361,-0.2911666849,0.3717487687 +-0.2529102806,0.3520178510,-0.0858901827,-0.7485222907,1.1877326047,1.0031234877 +0.2456163867,-1.2331999073,-0.4936481908,-1.0632268281,-0.8856496098,1.9105127386 +-0.6362641616,0.2723267435,-0.5629413518,-0.5390147091,-0.1324894073,-0.5131208903 +-0.7312974423,-0.1926411998,0.1681884875,1.9451770347,-0.7387367989,-1.1006053414 +-2.4526678075,0.0513672029,0.1822806980,0.6833954150,0.8251340581,0.8228679401 +1.4051374740,1.0446826442,-0.2343841721,-0.5818054063,1.6449567394,0.4710870876 +-1.0836177088,0.4992480100,0.3298423085,-1.6869269931,0.0116119423,-0.3902740912 +0.4686052927,-0.6594991408,-1.3061028174,0.3413835964,-0.1731830236,-2.0176219748 +0.3875135737,-0.8648295543,0.2051480936,-0.3899822309,0.8137999120,-0.0941055758 +-1.2746838020,-0.2171508047,-0.0934703122,1.0085311455,0.6930428563,0.9398196585 +-0.0732828643,0.0096089247,1.4103248996,-2.4407270503,-1.4791166112,0.3878380761 +0.3280445563,1.3564670299,0.6229334320,0.7072729048,-0.1066012409,-0.8036829693 +1.4361077011,0.4566854308,1.0582892665,1.0822395896,-0.5189104901,0.6797001295 +0.8407963506,-0.1186809136,-0.7886762650,2.8261774623,-1.8358786915,-1.3298562472 +-1.9879799605,-0.2476081815,0.0929762393,1.2413076648,0.2795249959,0.7343187697 +-0.8193344766,0.5881408298,-0.6017948595,0.9095424639,-1.5971009727,1.0674294135 +-0.6236560689,-0.1757291483,-0.1717646416,0.7228680478,0.7349997314,-0.3428481578 +2.0163357996,0.3859701321,0.4797367005,-0.3933024202,0.7150443195,-1.0087617215 +-1.2041036981,-0.7997791706,-0.4380503808,1.4002704867,1.4330761465,0.4402664946 +2.2231380577,-0.1069122017,-0.3061325445,-0.3665506679,0.3548754899,0.5785003847 +0.3545537254,-1.0268623015,-0.6444060136,0.3495957995,0.4699941479,-0.0067370226 +0.0153298725,-0.0019101897,-0.6683476722,0.9242195907,-1.0527221996,-0.0475782924 +-0.5637642729,0.7930434873,-0.3750645923,0.5612822995,-0.4182684221,-0.9368562228 +1.7143352150,0.6172668521,-1.6983834875,1.2822210611,-0.4389647946,0.2394125068 +-0.3849048729,0.7189072487,-0.1193580560,-1.2379096204,-0.0121740577,-0.9745265765 +0.6865256314,0.5271347883,-0.5011161131,0.1015727708,0.2201019568,-0.9346709968 +-0.2185375628,0.0623869353,-0.3592402594,-2.2471186648,-0.8258440844,0.7590790118 +-0.9578096837,-1.3913099180,-0.2973806343,0.0668261193,1.1452412220,-0.2668327880 +-1.8011619760,0.1013152150,0.3188201337,-0.0875343518,1.1524747435,-0.3980427036 +0.0215642213,0.2089892016,1.4141705489,0.4501225865,0.7361446011,-0.7309605209 +-0.6159836505,-0.3177102339,0.1678750570,-0.8061177067,-0.0548224654,-1.0096396327 +-1.3615542033,0.3003290595,-0.8704822622,-1.0720425982,-1.7793666047,-1.1183970178 +-2.1327575451,1.0676916960,-0.2409317675,0.3507073637,-1.6832214282,-1.8839357120 +-0.2660102650,-0.3255397539,1.0651413953,-0.2443446728,1.2697583939,1.0715113773 +-1.6852921588,-0.5377157475,-0.6277614222,0.0273446362,0.4240717497,-0.8115531844 +0.1468537864,0.4572329231,0.8253765423,0.9983826272,0.2546886228,-2.5861107320 +1.2789495728,-0.2613763277,-1.3265492969,0.2360406776,1.0221022437,-0.7281644082 +1.7588458136,-0.4606637459,0.7637610888,0.5932506079,0.5240683251,0.8856090722 +1.7403226649,-1.2725596905,-0.7232641418,0.0722711195,0.0017105943,1.3992283795 +-0.1707061145,-1.0966955901,0.0078381641,-1.1925246733,0.2416447698,-1.0102024683 +1.4119679434,-1.0265466945,-0.6309443484,-0.1982717907,0.1344589218,0.1773641652 +-0.1797045059,-0.4415532095,0.0804869513,-0.0038552510,1.0558303731,1.2832350509 +0.5427117643,0.5693680070,-1.8709898073,0.1610728561,-0.3157664508,1.0618101522 +-0.7059583103,0.6405858962,-0.5007106010,-0.4467612137,-0.2620082547,1.2401043587 +0.4147176075,0.4467494785,0.8512633516,-1.4272053776,1.0126535175,-1.1318362493 +1.5980478335,0.7423948627,1.0389932867,1.6118869843,-1.4641160743,-0.8936642947 +0.8981412825,-0.9305497719,-0.6123093640,-0.5272377006,-0.2440362414,-1.8215769182 +-1.0782329366,1.3536855397,-0.1069587517,2.3963940878,0.2994018406,-0.1564801406 +-0.1616361225,2.5782180361,-1.2840332009,0.7221887541,-2.0211529966,-0.8863623682 +-0.6255630087,-0.6677447735,0.3934055106,0.2604219299,-0.5008685213,0.0373925974 +-1.3239428478,0.6670161896,1.3216434591,-1.2743184119,2.3178510969,-0.2730434154 +-1.4261324736,-1.1271361575,1.2242692550,-1.6065459332,-0.2116766988,0.4732656829 +1.6540626572,0.6450305367,0.5288357410,1.8783805371,0.8678333165,2.1505020661 +0.9049648556,0.5619457083,0.9317900076,1.0307770838,0.6036072437,-0.2931417859 +-1.7562740941,1.0077397180,0.5572208923,-0.7450342693,0.1342637226,-0.9215272221 +-1.0291638066,0.3140716710,-0.5899114804,-0.8691474315,0.7962944337,0.3521567527 +0.7046067471,1.0321860618,0.2477562594,0.9809344431,-0.0250012989,1.1074512127 +-0.6768199736,-1.2747742125,0.0702791394,-0.7424183896,0.3512420108,-1.4669965816 +-1.1193259631,0.1163775893,-0.2649532490,-0.1593216828,0.6020811962,0.0166198364 +-0.5897555426,-0.2642248997,0.3122903511,0.2500378842,0.4154695343,0.1766798048 +-1.2795458214,-2.1263289933,-1.1084389251,0.4863877182,1.2666850897,0.0388239570 +-0.8136131755,0.2395440102,-0.7007470239,0.4879033573,0.2067022807,0.4404893336 +-0.0383409132,-0.1937701299,-0.6008381517,-1.1762107313,0.5602320688,2.1835274973 +0.7253457303,1.2566728107,0.2776813927,-0.0693420804,-0.0852937498,0.3946150533 +0.5561471080,1.2049092997,-0.2609609025,-2.9393301859,1.4466879591,0.1990217008 +-1.4220929761,-0.4796023936,1.8609072882,0.4238918393,0.1673453300,0.8485272457 +1.0697474658,0.5753437966,0.4204402637,3.6302207300,-0.8358716426,0.9278824003 +-0.3118632307,-1.8069977265,0.4128007572,-0.2111010990,-0.0967003696,0.4497190487 +-0.6527555972,-0.4761800670,-0.7078466691,-3.0018017049,2.0046344326,-1.2567268926 +0.5047860564,1.1915399615,1.2194542667,-0.4251351724,-1.1944683161,2.0860574488 +-1.5577543599,-0.0316626042,0.2805415642,0.5266392264,-0.6476576263,0.3398337961 +0.9190848738,-0.3551749010,1.2823032027,-1.8394312099,0.9796230447,-1.1835378154 +-0.7782842766,-2.0497930182,1.1415529071,1.1973102176,-0.7121047526,0.8664399743 +0.8029587753,-2.2914889648,1.3454029705,-0.8112348706,-0.3665337856,-1.7836847897 +1.5320676166,0.0769229836,0.3966975408,0.5868781129,-0.7529574842,1.8896157767 +-0.8404819720,-1.7176799415,0.6591061328,-1.6235239418,-0.9436094661,1.8712553671 +0.2427053048,1.1740067811,-0.2468064529,-2.9586336045,-0.0519853295,1.1167315137 +-0.2010842298,0.4758586357,-0.7467708616,0.2852232976,0.4075181463,-1.3119547353 +0.2462702723,1.8997551045,0.9010785346,-1.0067839544,1.7476702894,0.0069475102 +0.6510138128,-0.2559507584,1.0942588957,1.9007609071,-0.0657134857,-0.8223423084 +-0.5578904074,0.7925319614,1.0371590315,1.4380492818,0.3574715739,-0.2837037645 +-0.9007578168,-0.5965810887,-0.3189386320,1.5790522192,1.7548857902,-0.4445433584 +-0.4834894883,1.2449488088,-0.7235127959,0.6435496262,-2.2060223619,0.3443714891 +-1.3054655211,-1.4375008361,-0.0215691319,0.5327443300,-0.6442383611,1.0888978669 +-0.2954992841,-0.7276140637,1.4175328783,0.7519479231,-0.6154464369,-0.7637871219 +-1.6250918561,-0.1283502017,0.4798477130,0.0476190104,1.3202647421,0.0608765468 +2.2224850491,0.2972667070,-1.0202362204,-0.5128809376,1.2262508621,-0.6891269634 +-2.1695647843,1.2949904167,-0.0271718883,0.1143977269,-0.4436678999,-1.4214801423 +-0.9311508951,-1.2138091101,-0.4685996489,0.1566856410,0.0994080222,0.5991675552 +0.7152955803,-0.5545528668,-0.2558170386,-1.1619941881,0.4434246441,0.7315839124 +0.9191579829,-0.2698486423,0.8089940968,-0.4599040078,-0.6154554160,0.1761666501 +0.3782062673,-3.3114976390,0.2446530955,1.3051330784,-1.0901333002,0.9564792848 +-1.0377224436,1.1560092370,1.1880239505,1.6850164101,-0.2085718088,1.8716570648 diff --git a/statsmodels/tsa/tests/results/resids_css_nc.csv b/statsmodels/tsa/tests/results/resids_css_nc.csv new file mode 100644 index 0000000..546a5e3 --- /dev/null +++ b/statsmodels/tsa/tests/results/resids_css_nc.csv @@ -0,0 +1,251 @@ +uhat1,uhat2,uhat3,uhat4,uhat5,uhat6 +NA,NA,NA,NA,NA,0.6143504692 +0.4157942138,-0.6195877298,NA,NA,NA,0.5351037528 +-0.5216253830,-1.4490222073,NA,0.4543486899,NA,-0.2539693936 +-0.5310064793,-0.0692668747,NA,0.7313844554,NA,0.7355751135 +2.0103391427,-0.4308022634,0.2395313804,1.2285867572,NA,-0.3495442772 +1.2645121536,-0.2447600015,-1.2361455315,-0.7044357534,0.4055978842,1.1511468868 +-0.0253187182,-0.7878130240,-0.8799097019,2.1939759323,0.6278271493,0.8445474524 +0.2087251811,0.1303879633,-0.0141094894,-0.3012801705,-0.0529147298,0.3869796588 +0.6882005063,-1.6834900862,1.6110952249,-0.6027865943,2.1732810594,0.5728797365 +1.1413314243,0.8768146120,-0.7405577296,0.1795173867,0.1558140991,0.2464764059 +0.8603317648,-1.4085517297,-0.7927594239,-0.8555922440,0.8898454599,1.6407965009 +-1.4426224067,1.1233860935,-0.9476274074,-0.9731251937,-0.6363588731,0.5722289416 +0.2861221702,-0.3454575869,1.0870118537,-0.0726147893,-0.1788253738,0.7045477318 +0.1570992704,2.2971488587,0.5001821798,0.5052604801,0.4731307016,-0.7749604074 +1.3155156901,-0.8939871308,-1.2956895347,-0.3161253858,0.2963180845,-1.2093904969 +0.7535071809,-0.7992689415,-0.1627551445,0.5862161004,-1.7250120434,-0.7164589324 +-2.1133716190,-0.4822938588,0.6561719141,-0.5612764185,0.4069028257,1.8876953474 +-0.2926097774,0.3892803055,0.5855102713,3.2532235289,1.8389113887,-0.6930901555 +1.6731594024,-0.4547401237,0.1904184139,-0.8309528381,-0.4898013799,-0.3998662500 +-0.5426090918,0.4522366476,0.0900916861,-0.7140912682,-0.3355850526,0.3977104258 +-0.5268591042,0.4592368221,-1.1959142179,-1.6565224102,-0.1275482235,0.7329020712 +0.4875740446,-0.0807612913,-3.1647350558,-1.2117724685,-0.3538307198,-0.7343233853 +3.2154029184,-2.4784397712,-0.1328122448,3.0213060693,0.0692774349,-0.6014944010 +-1.2679401714,0.0087974496,-0.0956003141,1.3145051551,0.5104114423,2.3273722799 +-0.5676781908,-0.0240708846,1.2305243836,0.6114237075,0.5531441543,-0.3212501750 +0.0892418042,-0.2651283193,-1.5611202854,-0.2366295554,-1.7826025243,0.1943275388 +0.2773288242,-1.1998937638,0.9195354063,0.6210411382,1.0387225515,0.1393420028 +0.4831760574,-0.8718151800,1.9553635427,2.1075071830,1.5819834792,-0.2045096604 +-0.0571795827,-0.1631261522,0.1384356318,-1.0009927582,-0.3064255195,-0.7804604475 +1.3161339989,-0.4656285123,-1.2059144190,0.3320299818,-0.0774840282,2.4246929913 +-0.8406271653,-0.0040910916,0.5970898003,1.5100848420,-0.0514862871,0.6476585082 +-0.8186970009,-0.2947348700,-0.5634325824,1.1868024728,-0.1185819614,-0.2264012754 +-2.3475082672,0.1556172006,-0.8288155833,-0.2136267078,-1.7396707899,0.3127889039 +-1.6805826890,-0.8611425572,0.0471578622,-0.1045372043,-0.4547230696,0.2851109915 +-0.6736780239,0.9312160822,0.4005308901,2.5571575147,1.1030849448,0.0641439758 +0.7256374819,-1.1446932742,0.2570001601,-1.5646383687,2.2585901718,-0.9867862852 +-1.2020924892,-2.5648720017,0.9506695505,0.0567893472,-1.0953282935,-0.3822991006 +0.2909873539,0.9617755778,-0.0247771556,-0.9889880386,0.2327830284,2.4577087649 +-1.0043173816,-0.8921606420,-0.8419210731,-0.5968042239,-1.1202527679,1.6100799411 +0.4843413326,0.5191072345,-0.3612931035,0.6773849018,-0.2417953391,1.1960287410 +-2.3225998778,-0.3545972820,-1.1309574468,-0.2312251876,-0.9973435759,1.2713502671 +0.0369010936,0.5154048391,-0.7706022337,-0.6328224077,-1.5535761341,0.9269641532 +-1.4540263113,-1.1628549131,-0.7174874552,0.1588377569,-1.0920451480,1.4221901743 +-0.7575535521,0.6025957960,-0.7476491922,1.7575299394,-1.0270507496,-1.3023774228 +-1.1469727084,0.0247266427,-0.1197079648,-0.3212578512,0.5449189085,2.0437325273 +0.4938463089,-0.1777957650,0.1414292075,-1.1172004706,-0.0238223989,-0.7595875866 +0.4653114083,1.3437866191,0.3848296626,0.2686400822,-1.2749111020,0.0472791487 +-0.6874807780,1.3950683185,0.0290685352,-1.5792589142,-1.3037309983,2.0508963291 +0.4408613491,-0.2398587783,0.1106466959,-0.9583542893,-0.9761505140,3.5781009407 +1.3765665694,0.8506361157,-0.9881610058,0.8596824341,0.4297714772,1.4244983751 +0.0139239751,1.6952752728,0.8062255633,-1.5571730736,-0.1769185746,1.3061661282 +0.2425111146,-1.4228515277,-0.5031101420,-0.4849495553,0.5768200492,-1.4027688362 +-0.0471469074,-0.4747861914,-1.0762528648,1.2397938111,-0.0212676954,2.0031995217 +0.9940887123,-0.6053235226,1.3736678477,-0.1481125712,-0.2513441425,1.7550806977 +1.2380479220,0.2769191768,-0.6082866490,1.2619270554,-1.0835304315,-1.1890095217 +-1.0437249341,0.1292259583,0.5206296911,1.0316346364,1.3104057417,-2.4658050069 +-1.5381753017,1.4118678566,-0.9492130633,-2.0683610161,-0.3959986113,-2.1653441459 +0.0965413060,-2.1377176586,2.0854283830,-0.5739261536,-0.6381490195,-1.2185073460 +0.7712101752,-0.8847044894,-0.6685720410,0.4166991981,0.9008435423,1.7316468225 +-0.6907882006,-0.6446452654,0.5249226679,1.1142537082,-0.4485779015,0.6200811364 +0.9122321000,1.0027764723,0.4787421578,-0.0903198584,0.4470625528,-2.3510943190 +-0.0716404683,0.9860838940,1.7707933014,1.1877535341,0.9719198675,0.6875588049 +0.0512832622,0.0653292617,1.9577185289,0.2481909653,-0.9155610686,-1.2543860658 +0.6491488628,0.5321889709,1.0469731140,-1.6772296290,0.4757697162,1.4915607850 +0.7961213744,0.2968081952,0.6232777685,0.3527983615,-2.1368293713,-1.1210162648 +-1.0395159143,-0.4185801987,1.9543000415,0.5424269915,0.7729490960,1.9392865848 +0.0095516514,0.2402152236,-0.8568935692,0.0283939308,0.6881152063,-0.9207673336 +-2.3242135235,-0.4635276495,-0.0547833919,0.4325860657,0.4784927247,-0.4970964661 +-0.4786659971,2.0434580744,-0.6522255420,0.3026920742,-0.5934427056,-0.1298033631 +-1.1352833247,1.4598550503,-1.3233228849,0.8671510388,-0.7981516793,-0.4858807852 +-1.1680418631,0.0535361606,-0.1510985420,-1.0553886364,-0.3042178543,-2.0903747983 +1.2457405937,0.7252034022,-0.4013221743,0.3585980598,2.4924374591,-0.6841405366 +0.7398534717,2.0070958748,-0.7003296673,0.0192982834,-1.1914865625,0.5418412291 +0.7021800345,-0.1398060981,-0.2322597214,0.9736402062,-0.6744690208,-1.1973945881 +0.9666376285,-1.0167503113,0.3294955694,1.8082091733,0.7593258832,0.4549699458 +-0.5800130680,0.0971966655,0.6953199463,1.5922986207,-0.3287105231,-0.0008918183 +-0.6127076114,1.0982542550,-1.4143888478,-1.3220668513,-0.1175894156,1.3122947467 +-0.8985128937,-1.4240587646,-0.4360067827,0.3112539428,1.3654879932,1.1850975414 +-0.6528345212,-0.1889142190,0.1095509006,0.1112939852,-0.3666711292,-0.5246544546 +0.3010321297,-0.7926768373,-0.4633518394,0.2850055244,0.3281977015,0.6120110095 +0.0769778566,0.0992458041,-0.4341722868,-0.5689767373,-0.7289513676,-1.0815313859 +-1.1273912108,-1.4775473244,0.1353846794,-1.5574049268,0.0977693100,-0.6788213497 +0.9220938134,-1.1592971620,0.0840834801,-1.5854129909,-0.7175730519,0.7539322781 +0.4081716467,2.5707138630,1.0588659200,1.6267786932,1.9261789318,-1.8907594121 +1.0077314227,-0.5338729734,-0.0913980559,0.7117109820,-0.2367312802,2.1647607203 +1.7455260132,-0.5129501252,-0.5249116074,-0.5845899294,-1.8920416117,1.3816985457 +-1.1532323495,0.5868615366,-0.5047622935,1.1139874489,-0.5228791416,0.3518951335 +0.8638232192,-1.1229705602,-0.2472085616,0.5260240271,-0.0220303434,-1.1998282747 +-0.2451617014,0.5423810558,-1.2152722772,0.0745001739,-1.6350285922,-0.3357604080 +0.8930966584,0.9603142232,0.4770856241,-0.3820829458,0.0562404256,0.3468167569 +0.0790763322,0.7468377100,1.5405700393,0.1170898366,0.9180660926,-2.5051450455 +2.1192061264,-0.7331086584,0.6253647376,1.4143309787,-0.3404500982,0.0657873320 +-0.3246167772,-0.9194914951,-0.6598997505,1.0273002467,1.9393289707,-1.5157229234 +1.9431900774,1.3804629177,-1.0516154954,1.3336454390,1.7818353451,0.5613193313 +-0.2034809263,0.0713772473,0.1693137853,0.5338065620,0.5148412507,1.3189550515 +0.7107281188,1.2554269303,-0.1330393484,-0.6750731146,-0.2362306917,1.1530885411 +-0.0388898821,0.6664360533,0.3046965852,-0.7402870956,-1.0886815140,1.1609143529 +-0.8310594768,-0.4543478187,0.1491373183,0.8185342235,-0.4204032228,-0.6676708069 +0.5666307245,-0.1287171280,-0.1661858769,1.2881687319,-0.6365129989,-1.6446687927 +0.0709081140,-1.2610826529,-0.5334431683,0.2984631805,-0.0458527287,-1.1691359414 +-1.6063052192,-0.3162105944,0.6129340037,-0.0160538847,-0.0342874857,0.0268354771 +-0.4825902901,-1.2936069066,-0.4981277884,0.4985880974,1.2040809017,0.9552718462 +0.0108626857,1.0742780674,-0.6656186768,-2.8443530111,-1.0477419070,-1.7851569526 +-0.8934102686,0.6852966951,0.7194576366,-1.7259883995,-0.6701781794,1.1020176596 +-0.3880438644,1.4889147056,-0.7788506077,1.0360036543,0.7736130415,-0.2183442777 +0.0350962910,1.1391632506,1.5796360596,0.5445093906,-0.0174664553,1.0047395756 +1.1464777133,-0.2834902354,0.3567673669,-1.6427470580,-0.1177955114,-0.2592197216 +0.9380941874,-0.9233563055,-0.0999640650,0.3800754077,0.9219001297,0.4377293142 +-0.6524391093,-0.9177900805,-1.8955303544,-1.3706263794,1.9716795402,-0.3163755052 +1.6003492787,0.9969811775,0.7282055030,-1.5732492358,0.4177304846,0.0116805841 +-0.6640220782,0.3563577308,-0.9517422419,0.4150735300,0.2043118061,0.1768480054 +0.4684171889,0.2047487516,-1.1400420396,0.0243611707,-1.2630795440,-0.4676636143 +0.8557642915,1.0555263456,-0.8369330201,-0.2899885540,0.3530703009,-0.4211398737 +-1.6578907767,-1.0305540541,1.5032866219,-0.9485639945,0.5217356799,-1.2892784438 +-0.9497073409,-0.2706902148,-0.8980093413,1.1631212252,1.0935500306,1.0796816407 +-0.3414418972,1.1900152532,-1.0799740976,0.2900146275,-0.0100502953,1.0155777753 +0.2834596984,-1.6045318586,0.2906201163,-0.9871322391,0.4116869363,-0.4082149648 +-0.1732457581,-1.0662429634,-0.2879301854,1.0817076546,0.0355317584,-1.5120648523 +0.7113390855,1.0805921551,-0.7136948651,0.9553529924,0.0354211219,0.6505845400 +-1.6796197190,-0.1159781223,-0.8934635597,-1.5237477934,-0.8404612305,-1.0101477423 +-2.1220375343,-2.3373441844,0.0403150200,-0.0629744659,-0.4618150240,1.1688349421 +-0.9765593594,-1.0852132916,-0.0154850265,-1.0077406826,0.2096016056,0.7947237220 +0.5248745716,1.4967017985,-0.9828819567,1.2688124028,2.4111180967,0.3357900578 +0.7812493354,0.5912553041,0.5732001327,-1.0404988811,-0.8665555715,0.1770518579 +-0.2450632449,0.3806333998,0.0355312652,0.2831699849,0.7042672076,0.0134086563 +-0.0778809795,-0.4167556345,0.7588097664,0.3876852801,0.0747135795,-0.5778188549 +0.1461696917,-0.4424558259,1.8299467374,-1.4725559309,0.1776614966,-2.1793607198 +-0.5842738457,0.0181184516,0.4249395866,0.7181140222,-0.3318166331,2.0060460272 +-0.3514767097,-1.3793302010,-1.3442318006,-0.8181991154,1.7631750974,-0.2638613543 +0.0383334818,2.0818878381,0.5748390913,-1.6845929985,1.4138134468,-0.7509882353 +-1.1880137366,0.5855819252,0.0198947388,-0.0265453275,0.0240049549,0.1598262980 +-1.6805440069,0.0098068036,-0.1126843004,-0.1543973774,-0.7083382099,-0.4686580079 +1.8110056315,-0.8982515421,-0.1853972236,1.5106556940,-0.8663122916,-2.0338828590 +0.9477973544,-1.0308524046,1.2995939498,-1.0319990716,-0.1633851528,-0.7973186070 +0.4364908981,2.0582724473,-0.2742005014,-1.1473424784,0.8833269716,0.1575596825 +0.5114496521,0.0782996082,1.3136905169,1.6977256629,0.8522886858,1.8775914011 +1.2478167043,1.9547759761,0.9090843157,1.8305582023,-0.2812475860,0.0474545420 +-0.5664901767,-1.5288813900,0.0863410688,0.9917855771,-0.7660657230,-0.7139377067 +-0.3181894497,-0.7490957536,0.2366186446,-0.2434442236,-0.6332979192,-1.5808515696 +0.4743809290,0.3090081408,0.6886522333,1.3989375372,-1.3744032261,-0.3083817737 +-0.8780898229,0.0354019614,-0.9186367636,-0.8308500242,-1.1765088609,0.7943750245 +1.3602935594,3.9091719578,-1.4383323461,-0.4468332095,-0.6574955062,-1.0337447280 +0.4000238548,-0.0729730066,0.6294363465,1.3428537604,0.1323605426,-1.9735270223 +-0.7059475026,1.0818150288,-0.5035482180,0.2487615457,0.0107659603,0.1497439377 +0.1906633534,-0.4661489561,-1.7328381663,0.7965634574,-0.3866043758,0.1034394085 +-0.4261236625,0.0433801867,-0.8349311766,1.5213841840,0.3216975916,0.9601090917 +-0.2527141073,-0.9595669180,-1.1232099478,-1.4789572297,-1.7682026685,1.0866085091 +-0.0035553426,1.1516783933,0.5399332972,-0.3658825978,-1.0455942883,-1.5173270534 +0.6894109505,-0.2508048560,-1.5771593856,-1.9468902089,0.0888163612,-1.5104338236 +0.5918273737,0.4821456099,0.2201814435,-0.7465971372,-0.4669483524,0.1959555041 +-0.8110065663,0.9637677446,0.7719070726,-1.0886754152,-0.9291300286,2.3124247802 +0.7487957344,0.6138606303,-1.2452857726,1.4624990981,0.7211034192,0.4935045932 +-0.3698177375,0.4385171954,-0.8437128666,-1.2729561152,0.5292748517,-0.0976334253 +-1.6629394180,-0.0437726347,1.2517512785,-0.4294600813,-1.0786734936,0.0364557098 +0.5356287635,1.3679128091,-0.7516775842,-0.4308557890,-0.5596133833,0.8426201681 +-1.5687046174,0.4794245973,1.6094031731,1.5625523318,-0.3937905161,0.7153266490 +-0.2170615964,0.4716828373,1.4168838985,-0.5108551177,-1.3284610870,0.0806771238 +1.1110206543,0.0924512981,-1.0893506585,-0.3718661341,0.8314847232,0.8006576763 +1.2052671300,-0.7108565002,-0.4171419497,-0.5969024311,-1.5940543699,0.1411367216 +-0.3146329109,-0.7171853602,1.3051670737,-0.4226940352,0.9931175526,-0.6614542596 +-0.4139957991,3.0434708370,0.1229641514,2.4646627038,0.6341361831,0.0034336747 +-0.1066547025,1.0281641032,-0.6940296917,0.2303098735,-0.7813154721,2.2811849044 +-1.8360115000,-0.7537845730,-3.0369360609,0.9112043628,1.0097369011,-0.4067802497 +2.2112370809,-1.1690586851,-0.3323696085,0.3264913722,-0.4011340791,-0.7060736524 +-0.8954222488,-1.2932270541,1.0246058757,0.4792545779,0.4479802514,-0.6773016545 +1.5168722719,-1.1259537255,-0.4253811418,0.0182270513,-0.8879502546,-0.1543365109 +-0.2318585551,-1.5386327521,0.2097610318,1.9582472825,-0.2734936667,-0.2537046964 +1.2279660829,0.3933073897,0.5357865458,0.5497835001,-0.2250092357,-1.2008815294 +1.7934542977,-1.5127904855,0.6913155972,1.0361197011,-0.2890339382,0.8219999521 +0.5692161743,-0.5508791317,-1.3107824809,-0.6968130860,-2.3050605605,-0.2533684720 +2.0871146897,-0.4419027595,1.6237104970,-0.3835497949,0.6015451805,0.5526474024 +-0.9390581079,-0.4510519585,-0.2760571025,-0.8522843099,-0.3099257898,-0.0501580747 +0.6661210482,0.0589151485,-0.0418956235,1.0105445026,-0.2633349404,0.4760980491 +-1.0270457659,0.3354361904,-1.6881961071,-0.5200056551,-0.6173305806,-0.2071324379 +-1.2172594170,0.3792451695,-0.2622421795,1.4269857459,-1.4729028599,-0.9413573286 +-0.4357501932,1.3080840448,0.0326341486,2.0472364582,0.0497724523,0.4675907916 +-0.8847924817,1.3866771680,2.1546044040,-0.1777226977,-0.3011736281,1.4630989001 +-0.7524325904,0.9429777060,-0.0726247892,0.7570155395,2.2558068470,-1.3697571676 +0.5298758302,-1.4996129001,-1.5317451652,-0.0493324102,-0.2626672671,0.3993090225 +-0.5393092676,-1.7231103886,-0.4039733706,-0.9422666423,-0.5109841086,1.0495947415 +-0.4873732221,-0.0148185486,-0.2730098758,-1.3488812858,-0.3989219886,0.2174888441 +-0.3013485844,0.1648887811,-0.0835155048,-0.0924944500,0.0353216577,-0.2853887069 +-0.8554254700,-0.3608894475,-0.3982400078,-1.0686349042,1.3610645664,1.0093117319 +1.8669763501,0.5080495207,-0.4628156103,-0.5848663073,1.2237354832,0.4098022296 +1.1308503167,-0.1502441442,-0.9965141374,-1.6752095201,-1.9704164757,-0.4451217708 +1.2009883583,-2.1137146408,-0.6081299571,-0.9916185954,0.1409012712,0.1059298182 +-1.1046960974,0.0143665030,0.9343677272,-1.5574874379,-1.6304995697,0.9607652157 +-0.6166246837,0.3997186542,-0.2669064090,-0.1352999455,0.5548602250,-0.8139741895 +-0.3891760695,1.9556991972,0.8084467688,0.3113161852,-1.2380683388,-0.5121763960 +-0.2588528410,2.2292719384,-0.2945029992,0.4260854112,0.2452519790,0.9853431029 +-0.7036778521,0.0140679716,0.0303354921,0.1926679331,-1.1268260613,0.5026842569 +-0.6566840023,0.8263794572,-1.2103455490,0.1201769155,-0.1651787089,-0.0149380965 +0.9207194575,0.0098124926,0.5769556562,-0.7767375653,-0.2064010701,-0.4633051979 +0.2475401817,0.4823959950,-0.2984889052,0.9524258294,1.4111699385,-0.2124780439 +0.7263490806,-1.2627538693,0.3086477669,0.6210454749,-2.0309502823,-0.6085754356 +0.8562603848,-1.6741377120,-1.1096722966,0.6902146135,-0.4959993412,-1.0023591514 +-1.1000414136,0.2998048494,-1.4688724382,-0.3223796228,1.4990587919,-0.0278355482 +-1.3726599753,0.3429401132,-0.2823553613,0.5740467195,1.3858754499,-1.1749160462 +1.3837637914,-1.8110344149,0.9379230306,-0.8624551103,0.8025219859,-0.4062595659 +0.1847182957,0.5617484798,-0.8183807412,1.4402353767,0.3383604543,-2.3895371818 +1.1222421669,-0.8523897345,-0.2418453713,-0.9247643804,0.3484521461,-0.0743660697 +-0.6712054111,-0.1096530994,0.8784250424,1.1683452007,0.4843942125,0.3360951589 +0.3241066514,0.4272393476,-0.4278315132,1.5036928685,-0.0798338699,1.8649406306 +-0.6304409125,-0.5156758925,-0.2747636546,0.3966439953,-0.5451060379,0.1567533124 +-1.1376161294,-0.3147388101,0.5087759028,0.5769315869,-0.7955668645,-0.7132800834 +-0.7476438468,0.5315244182,0.5249617007,0.1322526076,-0.2125942858,-0.5120288512 +-2.5575768613,-1.0123091655,0.1923470503,-0.7847991054,-0.3907136014,1.7816434987 +0.0898822985,1.3741687927,0.1878121229,-2.2190634906,-0.6916917375,-0.8521812012 +-0.6536273246,-1.7285347619,-0.2993094887,0.1239795390,0.1397485235,1.3018111826 +0.0277510539,-0.8950408543,-0.1561100062,-1.9302387320,-0.0532106252,0.7086807088 +1.5465435269,0.5283679843,1.0856205584,-0.2576313274,-1.2806487168,0.1392187027 +0.5782619967,-1.5528318849,-0.6580653208,-1.1916940025,-0.7980019330,-0.2255822838 +-0.5100924442,0.4949377012,-0.4196800943,-0.4170766815,0.4298596698,1.6781968714 +1.2681132747,-0.1804061879,0.3353395215,0.0404778728,-0.3998009067,0.7115186970 +-0.2276560125,-0.5252432045,0.1871399463,-0.5400162811,1.1071643736,-0.7255151667 +1.4272608482,0.1205159168,-0.2475287532,-1.0192519931,-0.1152195912,1.2352514108 +-0.9823532119,-0.2470689970,1.4134906192,-0.1824448066,0.5848243732,-1.9636683432 +0.6306328357,0.4598773607,-1.2411852112,0.4744866483,0.8020047672,-1.3564678055 +1.1809722719,0.6153736267,-1.8954103898,0.4259002242,0.4495935376,0.6588809731 +-0.3659940694,0.6359575290,0.3380617326,-0.8774603377,1.0273616360,1.7343439429 +-0.4779211456,0.1348482607,-0.7083477070,0.4141085507,-2.3148838577,-0.2673177167 +0.4554107296,-0.2999776917,1.7745186276,-1.7924360071,0.3458158950,-1.7574423261 +-1.0151364946,-0.7995908833,-0.5655949165,-0.1132134925,-0.0210212032,-0.8465992867 +-1.7713257213,0.0584883929,0.4729365663,0.6859696077,-3.3620324060,-1.3132843297 +0.7557732373,-0.6027626416,-0.2154031827,0.3534526605,-1.0236978261,0.6837098885 +1.0205722008,0.3803199144,-1.3914981227,-1.1550369092,-0.6165506449,0.3357563981 +1.0741583074,-0.8951352415,1.0278102307,-2.1299612260,-0.4606170217,-0.0425820431 +0.0059764441,-0.0327579331,0.2722290502,-0.9612212717,0.2018840175,-0.4793487548 +-0.3862413896,-1.9331521977,0.9124592725,-0.0836291026,-0.7922112851,-0.0958635656 +0.2073397413,1.3896824649,-0.3759653373,-0.0402504995,0.0528930762,1.5322116195 +-0.9289467390,1.5345958332,-0.9494600337,0.6556296402,-0.2168766994,-0.4801553850 +-1.6880812136,0.7668381423,0.7741792821,-1.3834994151,1.4353042104,2.6287167128 +-0.9217569182,-0.1118683942,0.2294691125,0.4398016950,-0.3973522704,1.2496424756 +1.5604239503,0.8603119339,-0.4467562761,2.2298954779,-0.2382584447,-0.8442079514 +-0.6112578600,0.0335143013,-0.0558707063,-0.3647449453,0.0644332353,-1.2007723410 +-2.3398334022,-1.9725170684,-1.4386335948,0.8643591896,0.0314728944,0.4686878268 +-0.8682607679,-1.1628222070,1.0908999630,-0.0787503937,0.5335001908,-1.5866257298 +0.3860645470,-0.1797634980,-0.0836703934,-0.2459992024,-0.0047370323,1.4335846310 +0.0826482930,0.1076744423,-0.2267897408,-0.0748827365,-0.4451879009,-1.9925088182 +0.1403162572,-0.4001875987,-1.4680779629,-1.2529072583,0.3675557744,-0.2214985633 +-1.3213689468,-0.4787110108,0.2464726802,0.3705237830,-0.7942362089,-1.1602801385 +0.1109008220,0.8275470802,-1.0202822110,0.3422310022,-0.1121557357,-1.5868768585 +0.9937556156,-0.4901796746,-0.6929295049,0.4300532123,0.7235777403,0.8571382920 +-0.6527954444,1.0118288883,0.1505882074,0.8933374202,-1.1431276810,1.2548484058 +1.1092704014,0.7810317999,1.7701827253,1.3569615419,0.1683841628,-2.7035158650 +-1.1447411088,0.0194366680,0.7560886272,-1.7586315990,0.9518227065,0.0868489036 +0.5178515366,2.2795173831,-1.5703332639,1.7826643506,1.1952193469,-1.0432256695 +-0.2646085193,0.5840618191,-0.6546172516,-2.8005946043,-0.2990116754,1.1892415468 +0.6789015094,1.5431321952,-0.9600943991,1.8472248968,1.4795291495,0.7943775576 +-0.3765123975,1.1897454144,1.0208032385,0.3514972300,0.5714942110,1.1640652152 diff --git a/statsmodels/tsa/tests/results/resids_exact_c.csv b/statsmodels/tsa/tests/results/resids_exact_c.csv new file mode 100644 index 0000000..9985d4f --- /dev/null +++ b/statsmodels/tsa/tests/results/resids_exact_c.csv @@ -0,0 +1,251 @@ +uhat1,uhat2,uhat3,uhat4,uhat5,uhat6 +-0.5970431276,1.9644571186,2.8581920718,0.3336822851,-0.9942852808,0.5009863795 +0.0182019932,1.7543008581,2.2466917128,-0.0864473659,1.7501015883,-0.2719219510 +-0.6646218029,0.7882000432,1.3123982015,0.0291953651,-0.0183595554,-0.5588249004 +0.3041627028,1.4260297117,0.4013891725,0.4387285760,-0.6767949950,1.2156408981 +0.3080415611,-2.3612568438,1.3562373892,-0.0887524571,-1.0478225880,0.2279833245 +1.1102135466,-1.3355179523,1.5175137957,-0.2914457219,0.6309651010,1.5542159924 +-0.3750674840,0.6209127991,-1.4835375273,-0.8144600730,-0.7455396506,1.1478549803 +1.4734230995,0.2255282580,-0.7050370159,-2.4979692592,0.4537075911,1.1200774711 +2.0278429631,-1.4427300171,0.5403961356,0.8407341818,0.3140312594,0.8195137122 +-1.6149655785,-0.8089418562,1.3815810688,1.7898138934,1.9679042023,-1.3005530082 +-0.2755977630,0.5980026905,-0.9373441467,0.3815041911,0.3111338100,-1.2695995777 +-0.2975061740,-0.8749236050,0.1779066520,-0.2361575413,-1.1993712521,-1.2018225425 +-1.2825402275,-0.3577104145,1.8995942610,-0.7619536359,1.9261527400,0.2549977510 +-0.1950117688,0.0276080679,-0.4127830466,0.5021540396,0.8049308784,-1.4079837702 +0.0456334419,1.6337230347,-0.2030765577,-0.4451751953,-1.0269237400,0.2297868253 +-0.7064283511,-1.5944080013,-1.8457576875,3.3972990909,-0.8113905379,0.4031928346 +0.6869022133,-0.7487949244,-0.7002970827,-1.6540012043,-0.6685116236,2.1558559783 +-0.9056012206,1.6537578452,-0.0935723229,-0.4177424962,-0.7827922088,-1.0965771746 +-1.4108673168,-0.1526657909,-2.0860459175,-1.4300339212,1.8205676286,-1.3963866243 +-0.5002273043,-0.3399087504,0.2027621991,-0.7811584356,-0.6081202834,-0.5198160208 +-0.1966401225,0.2754314830,2.1606703618,-1.0252276657,1.0305200452,-0.3663237829 +0.9423540691,0.7666956830,1.6216312394,2.7315920650,-0.5669633942,0.1294828415 +-0.5032111555,-0.2136098372,-0.9624645465,-0.5073518362,1.8529743435,1.0464812565 +-0.0706422357,-0.5624932357,0.6417029559,0.1106822327,-0.5648899797,0.2273004765 +0.1555984072,0.1319017330,0.8041912071,1.5043778592,-1.1362093293,-1.4625115106 +-0.6829072554,0.1231105864,-0.7463346850,-1.7556051868,0.0182871309,1.3242897728 +0.4836822472,-1.1677156970,0.9267983681,0.1541236776,-1.4995756981,0.3342838502 +-0.3077717297,0.1065021989,0.5663413950,3.2375541811,-0.4121988713,-0.3936978961 +0.1422450005,0.1446017784,-0.2280636153,-1.5670003785,-1.3965176381,1.1626849759 +-0.5988298111,-1.4965152782,0.5431332398,-1.8950082750,1.6699521931,1.2370800417 +2.8746976404,0.7580957785,-0.7339595217,-0.6008727472,0.2385596845,0.1014095588 +-2.6700228960,-1.2704087440,0.5840693867,0.7222886974,0.0040762785,-0.5102429766 +-0.2782115122,-3.3234438676,-1.7934650536,-1.3785523950,-0.4061594951,-0.8366553692 +-0.6967148976,-0.0363622973,-0.2611968674,0.3129215170,0.3129386265,-0.1726092824 +0.0402046937,0.8792427681,-0.5331476333,-1.0733083099,-0.8044108072,0.5838434960 +1.5180370949,0.2334318433,-1.3171921124,-0.4643530942,1.9215806538,-0.0058033158 +0.7563656945,-0.5134812446,-0.2559645287,0.2040444357,-0.6218164834,-1.0029930496 +-0.6249147390,1.9404407009,0.2665262803,0.5597759687,-1.1149901482,1.3367894108 +0.4744339282,-1.7097702633,-1.8645512156,-0.0736846579,-1.3252181044,0.5140586604 +0.9158104137,-0.9644630048,-1.4817564666,0.9846826489,0.6392910454,2.5267241117 +0.5364609746,-0.8141007853,0.3372000793,-0.3762203642,-0.2293680809,-2.6645523947 +-0.0734802478,-0.6220087695,1.4526685262,0.7493570727,0.4078787234,-2.6336935317 +0.0587578744,-0.8699847497,-0.5242355555,-0.4794854495,-0.4858072680,-0.7477007545 +-0.2407166951,-0.3203468407,-0.3689658970,-2.4165529703,1.1224721133,-0.9147506030 +0.0744741105,-1.0663502156,0.2018525004,0.1787101865,-0.7149062503,-1.1498034333 +0.2444709563,0.6730306720,0.2144755307,-0.2282144195,0.0350468684,-0.1805236338 +-0.2390260915,1.3909419529,-0.5007056884,-0.6534495825,-0.0847841237,-0.7985575032 +0.7188959090,-0.0421098279,-0.2721075638,-0.7473534301,0.8649118003,0.5212385523 +-0.5015783857,0.6049928771,0.4752398468,-0.5198150247,0.0035904764,-0.2662702383 +1.0197207272,-0.4937799065,-2.0519793793,-0.7458038747,0.9733469781,0.1493912332 +1.5174292591,1.5356995338,-0.7742674121,1.2218531030,-1.1312514329,-0.4464500577 +1.3483923243,2.1025617736,0.7357470171,1.0915233924,-2.1303056403,-1.5953693831 +0.4075515335,-0.4022549382,-1.4197719512,0.7209796745,0.4593709476,0.0341408612 +-0.7568619442,-0.4619157424,0.1930412082,0.3217207379,-0.8859414115,-0.4786778739 +0.5681134676,0.4010450399,1.3768139995,-0.2865830408,0.3113651021,-1.1179661508 +-0.0298286223,1.1353451283,0.8122675983,0.7421053835,-0.0951124157,0.3385079057 +-1.6231637691,1.1500085978,-0.1695253546,1.5749876901,-1.2967601255,0.8216667446 +1.3233252145,-0.2943328747,0.0824832495,0.5927644624,-1.0091359254,-0.0784046669 +1.6262580824,1.3479676090,-0.7688615769,0.5870165097,-1.4815829042,-1.5492257821 +0.6818028263,0.4563877043,-0.6063830759,-1.0050973742,-1.9011574220,0.5252749698 +-0.3297340633,-1.9878290183,0.1930280850,-0.7056995477,0.4035505567,0.8734846677 +0.8422795969,-0.0686086486,0.8450008200,-0.6150070433,0.2107718492,0.7923768106 +0.9455943990,0.0316159426,-2.1369601254,-0.0585718305,-1.2734388108,0.2291744885 +-2.1802948840,0.6068394707,-0.5245701971,-1.3260769199,-0.9834878791,-0.7072045861 +-1.7701348833,0.5367533137,-0.1957437854,0.5995379852,-0.6187486557,-1.5745844609 +-1.1176897355,-1.6526597428,0.2334153137,1.0604557797,0.9357929297,-0.3050253953 +0.4175794484,1.8303196766,0.8490840727,0.7817106891,0.7110343481,0.7133295932 +-0.1964943002,-0.4818922767,1.1130594091,0.6450738934,0.6575107120,0.3145902913 +-0.0514206178,0.8556366912,-1.3999812724,-0.2886114710,0.7920136166,0.6960829080 +-0.1901124543,1.4712387562,1.5363387733,-1.0025951076,-0.2843685223,0.9100409074 +0.8109179338,0.3238904846,0.6256522145,2.2061012187,-0.2739236756,-0.7457566458 +0.3913362496,-0.3413491593,0.1478906149,-0.3916413989,0.3251831385,0.0245097168 +-0.8823778411,1.1926748571,-0.6341592270,-0.5589796229,-1.0518769862,-0.2110828624 +0.4418106002,0.0396072932,-1.5983280145,0.1346865785,-1.4612221719,-0.8379460255 +-0.2573625300,1.1205792460,0.7964352244,-0.4552514273,-0.7330815587,0.6475908135 +1.3483117455,0.0788662442,-0.6250567532,0.4237556024,-0.2799573282,1.2334454851 +1.4571156134,-1.4172699378,-1.3825567026,-0.5324836065,0.6324662014,-0.6792444896 +-1.0968867604,-0.1579061348,0.5027972539,-0.5868140914,1.0160881336,-1.3805164027 +0.5033360438,-0.6949098258,-0.3353555331,0.2961763584,-1.4418738692,0.9716975289 +1.3377995909,-0.6933694389,-0.1297336949,0.3198599819,1.0700205073,1.9319119128 +-0.4893687646,-2.1916423650,-0.5084693605,0.0094820413,-1.5954583614,-0.2415163462 +0.8407375180,1.0851282562,0.9076087022,2.0858882110,0.8550737023,0.4121428611 +0.2329189800,-1.9308292403,-1.9471066316,-0.3333486039,-0.6179148116,-0.4876903850 +0.7887634684,-0.5066737936,0.0140685340,-0.2154659055,0.6856316133,-0.5733476235 +1.2876420408,-1.0017008922,0.4047785308,1.7332830849,-0.7434175661,-0.7506038467 +1.3831933237,0.2610588894,-1.0252886762,-1.6814656007,0.7577395814,0.7010080753 +-0.1390007449,0.3206198470,-0.3233859492,-0.5927685850,-1.2963773187,-0.0870908365 +0.0764508525,-0.0681337595,0.4492050165,-1.2001505903,-1.4631666187,1.6555568808 +-0.4344763776,-0.2568228099,1.1778776146,-1.0003945433,0.3741289770,-1.6510829465 +-1.0371316821,-1.5592859356,0.8159671789,-1.7755574720,0.0434710248,0.5449048695 +0.3444787655,0.3090727676,0.2452982560,-1.0989779141,-0.0480727359,0.6981980650 +0.1919641040,-0.3204360708,0.3328934650,-1.2451886319,0.6561994334,1.8427653499 +-1.1720978846,0.7904723055,-3.3362351111,-0.9411742116,-1.2802287987,0.6515088935 +1.1396206811,0.2748270617,-0.5175966998,-0.0735431223,-0.0684056295,1.1448528646 +-2.0195769715,-0.4475420741,-0.3429326238,0.3761768981,0.0537397325,-1.0118614556 +-1.7267046951,0.7766764222,-1.1638093304,1.1458643850,-0.8626962230,0.6895731392 +-0.2814854762,-0.2783129171,-0.3682718240,-3.0456779822,-0.2828212693,-0.2073910030 +0.8362030629,-0.2196532998,1.0696347425,-0.0284164744,-0.9862793221,1.6659680149 +0.8386993754,0.6600397414,-1.0336573298,0.4562314613,-1.2356041607,-0.9510741752 +2.2068096979,0.5415287036,-0.0255683679,-1.4552977819,0.2970715588,1.0732996894 +0.1796356212,1.1528413269,0.0237541456,-0.5372340392,0.4941692266,-0.3645515480 +0.6409734352,0.0604139515,0.5078790903,-1.7618529635,0.3250273463,0.9493556626 +-0.1460513305,1.3828333196,0.6312418683,1.9103277546,-1.8952113459,-1.4503796502 +-3.6857422734,-0.0841685337,0.9063497823,-2.1378477070,-1.8427389423,1.6708728777 +-1.6337658056,-0.1361837568,-0.7428804647,-0.0522557625,0.2745812822,1.1750029750 +-0.7140781271,-0.3864649626,-1.5664856393,-1.0558627049,-0.8611850252,-2.0717990875 +-1.0082497842,-0.9240520934,1.3600650590,-0.2255766020,-1.4888105086,-0.5233934788 +1.0136010064,-0.1609410773,-1.4104734602,-0.8377364876,-0.3904790472,-0.2556220507 +-0.9235316724,-0.3380407315,-1.4787867585,-0.2785107309,0.8689524762,0.1419894719 +0.9725390021,-0.6154797240,-1.5491420218,-1.0885464758,0.8246587658,-1.4542529829 +-0.5418985311,-1.6203629923,0.3603642343,0.2084435025,0.2110502977,2.7283800276 +1.1329756393,-0.7382376568,0.6765107641,-0.6703906994,1.3323909189,-0.6675389623 +1.6999369960,-0.0977837869,0.0180434354,-0.6838520359,0.6449245873,-0.1078982923 +1.3564030901,1.3275009700,-0.0577451096,1.6811608990,1.7515181438,-0.3611869398 +0.9469061220,-0.2135540585,-1.6567969585,0.3088311232,-0.4902417764,-1.1306865884 +-0.1841890502,-1.4853870850,0.0856503011,-0.6379423853,1.8309828227,0.7852357487 +-1.4536915741,0.0632123465,-1.8234177941,1.6595057084,1.1199326538,0.7202726057 +1.4088346446,1.9391106968,0.9451277496,1.2107037403,1.1795972052,-0.5737558057 +0.7655504535,0.3327495520,-0.2048871911,2.0356170778,0.1359660412,2.2997673250 +-1.4104923594,-0.2348042172,0.6975444611,0.5913615874,-1.3257257753,-0.7218283404 +0.8337126103,0.8161613886,0.1639138278,-0.8210989482,0.3452162615,1.1874970675 +-0.4356284910,0.5187057069,0.3577519398,0.5130210011,1.6999147781,0.8832991404 +0.8846465060,-0.0051902623,-1.2255699057,0.0192750213,0.0062405495,-1.1207934975 +0.2369079064,0.3152940534,-0.1138471334,-0.3799238761,0.4837601417,1.1911298640 +-1.4328148841,-0.0354154803,0.3611111888,-0.6364231138,1.1598812716,-0.9336430149 +0.4256491501,-0.4701956609,-1.8513455515,-1.7049516090,-0.1402054173,-1.1659169047 +0.4148241328,0.3010553687,1.1324110281,0.1307862565,-1.5218769161,0.6247000156 +0.6070389717,1.9750231781,0.2070679107,2.2424672508,0.2162197184,-0.2690549140 +-1.7752595172,-0.4413987581,-0.3017539787,-2.3063680339,-1.6303755410,-0.8112068999 +0.7811115012,-1.4894385174,0.1936515932,1.6168949288,1.0209677009,-0.5244542530 +-0.6734067364,0.2657777140,-0.0038243417,-2.1283693967,0.5399643755,-1.5613418114 +-0.2174957932,1.9957083397,-1.3199720918,-2.2776071044,0.8752264806,-2.3067446324 +1.0237897515,1.3155917492,0.2739655446,-1.5709450773,-0.8176618305,0.4567617557 +-0.7471269751,1.6420611482,-0.0489931433,0.6869780486,-1.0269445719,-2.1286931543 +1.4273277054,-0.8369015853,-0.2473552077,-1.0403942178,0.8533151937,-1.4161444193 +2.3053408143,1.4644570088,-0.4750353592,2.3704727317,1.6905771157,-1.6750137235 +-0.8417034145,-1.6563925000,0.4536428058,0.4382360847,1.3272058716,-0.0161537412 +-0.1334965047,0.0348737044,2.6390318650,-0.5154150238,0.1286760028,2.5013499985 +-0.6377388045,-1.1059372897,-0.9406951711,0.9965841407,0.9261273877,-0.6615435409 +-0.3044004944,-0.6419936851,-0.8493417956,-0.8810166806,1.2122951406,0.4227747943 +0.0927762800,1.1187914870,-0.3282395877,1.9232104950,-1.5108539569,0.3924326075 +0.7696331260,1.3128863032,0.1169529873,2.1307136518,0.7106151747,-0.7394879661 +-0.3169533695,-0.1346665759,0.9996726166,0.6566449417,-1.3199045902,1.9146994135 +1.1209568623,0.3780268564,-1.1278817755,-0.0834756235,-0.3652882095,-0.9545461033 +-0.1424351862,0.3947473673,0.0960760957,1.8278147469,0.8827012037,-1.3460305046 +-0.0460696301,-0.1348995761,0.6021925582,-0.1817705347,-0.6821234444,1.1924973402 +0.0794128789,-0.6782448784,-0.9737902055,-0.2084556001,-0.2846151577,-1.0247814478 +1.0396479644,1.3722297706,0.9341845449,-0.6062307263,0.9081820658,0.8416308138 +0.4180619954,-0.0338592385,-0.8266233510,2.0678630552,-1.4185931428,-1.6437071063 +0.1006336771,0.8545344223,0.5923130449,1.7003825860,-0.8028027195,-0.4544195127 +-0.3652576943,-0.7747206319,0.4987438114,0.1485055174,-0.1898679822,1.6070099733 +0.0295764170,-0.3530289029,-0.9733870283,1.8166544249,1.7111368028,-1.3277793325 +0.2832641023,0.8738000118,-0.1992883675,0.3223353066,0.9258268620,-0.2230200504 +1.5255399509,-1.1741505018,-1.6548952594,1.1492836774,-1.3994035634,2.1483503956 +-0.0408371910,0.8899494695,1.0347682699,-0.4528970387,1.1073613208,0.4952797226 +-0.7490403558,0.7502145281,-0.3304993290,0.2717700198,-0.3568045607,1.7485517770 +-0.2088213611,-0.7140297829,0.0793484784,-1.2062147663,-0.2922395886,0.3779819558 +-0.2495819968,0.3352199964,-0.1203674115,-0.7606579127,1.2082274335,0.9937045976 +0.2481018030,-1.2799372351,-0.5358000415,-1.0659413994,-0.8745863760,1.9176582287 +-0.6318424808,0.3281309586,-0.5961626378,-0.5396088147,-0.1263077738,-0.5198788140 +-0.7303715198,-0.2569322658,0.1568709631,1.9514817200,-0.7364148890,-1.1022168783 +-2.4520769710,0.1069101303,0.1698165254,0.6942051151,0.8281460028,0.8191075683 +1.3978509400,1.0023270488,-0.2630521366,-0.5830565394,1.6463523933,0.4771658979 +-1.0767718403,0.4595819916,0.2872482286,-1.6981461284,0.0236185317,-0.3954284632 +0.4651573703,-0.6799042741,-1.3452905761,0.3304140080,-0.1454021729,-2.0146310976 +0.3926464230,-0.8897315892,0.2017895760,-0.3857399256,0.8294236188,-0.1000763585 +-1.2711964311,-0.2252652677,-0.1010781965,1.0126028625,0.6927958655,0.9508566267 +-0.0745022617,-0.0001941124,1.3921424253,-2.4328326521,-1.4652483486,0.3846345342 +0.3307660153,1.3827349811,0.5659697128,0.6993403677,-0.0803432645,-0.7980560932 +1.4395988116,0.4074995902,1.0042474786,1.0907817954,-0.5195176924,0.6740252299 +0.8497971310,-0.1023099568,-0.8369796404,2.8315243105,-1.8466679869,-1.3201306883 +-1.9802586837,-0.3026898409,0.0735763039,1.2480455448,0.2823876789,0.7240756880 +-0.8214792991,0.5728084888,-0.6355821370,0.8955002571,-1.6009133913,1.0827795062 +-0.6226660988,-0.2113479451,-0.2077281285,0.7056288442,0.7282736337,-0.3524923630 +2.0156785834,0.4261317390,0.4354259404,-0.4135615335,0.7043689458,-1.0010273054 +-1.1938678024,-0.8207651393,-0.4750570852,1.3841687075,1.4371266232,0.4323277221 +2.2215920189,-0.0467132122,-0.3308847291,-0.3737980634,0.3733913374,0.5903136898 +0.3681771160,-1.0535392127,-0.6731617493,0.3385852544,0.4905619093,-0.0140872327 +0.0205557877,0.0550704484,-0.6981519338,0.9164293869,-1.0422603599,-0.0400766508 +-0.5570507782,0.7516698280,-0.4000586000,0.5552754565,-0.4110633488,-0.9425706790 +1.7169994409,0.5989763398,-1.7150610826,1.2734600165,-0.4379423364,0.2442528429 +-0.3734919114,0.6851968175,-0.1161592764,-1.2465332445,-0.0133770906,-0.9746076476 +0.6896090510,0.4537162423,-0.5098606858,0.0838134122,0.2215448640,-0.9338181008 +-0.2099379540,0.0266792409,-0.3662486539,-2.2541100586,-0.8204512381,0.7611786034 +-0.9541807107,-1.4262513478,-0.3105062140,0.0570837481,1.1517387198,-0.2610892939 +-1.7998439732,0.1541591827,0.3129387559,-0.0795165036,1.1508103114,-0.4006190215 +0.0179155277,0.1791117886,1.4076575419,0.4558639749,0.7469106230,-0.7259696501 +-0.6138474833,-0.2423150155,0.1448101820,-0.7990435746,-0.0279480236,-1.0117087121 +-1.3626968813,0.3134593972,-0.9013476352,-1.0759731343,-1.7589526155,-1.1135062224 +-2.1358541760,1.0517529184,-0.2649633538,0.3500761332,-1.6815056661,-1.8841675164 +-0.2732300363,-0.3692284382,1.0570174341,-0.2393173079,1.2547959517,1.0756363615 +-1.6862703385,-0.5369078921,-0.6369242805,0.0323463577,0.4108922020,-0.8027437652 +0.1397952975,0.4125397300,0.8116024820,1.0015275666,0.2714761759,-2.5902677539 +1.2800250774,-0.2924960257,-1.3739783929,0.2405021506,1.0444337048,-0.7232994999 +1.7640236604,-0.4289971973,0.7450214645,0.5901412879,0.5279407487,0.8907023481 +1.7501469387,-1.2793636115,-0.7388995388,0.0690156553,0.0097405802,1.4064427134 +-0.1588699363,-1.0513261766,0.0158276195,-1.1994590635,0.2634631013,-1.0082328908 +1.4179499206,-1.0327145289,-0.6527251747,-0.2057569002,0.1497138195,0.1749424460 +-0.1674403107,-0.4211908380,0.0545002618,-0.0034162811,1.0609715609,1.2897029422 +0.5478829553,0.5344159002,-1.8956191514,0.1652145444,-0.3060729049,1.0614935376 +-0.6972611849,0.5745465349,-0.4806010650,-0.4431365401,-0.2385344545,1.2423015750 +0.4170578841,0.3684011031,0.8689572007,-1.4277039840,1.0263180218,-1.1333234801 +1.6047844579,0.6387872114,1.0336837445,1.6093993672,-1.4639886159,-0.8982776163 +0.9084848368,-1.0316255096,-0.6523623006,-0.5171643169,-0.2307658021,-1.8186180420 +-1.0691311273,1.3411372194,-0.1362275714,2.3951997078,0.3063366590,-0.1598231567 +-0.1594467413,2.4700088685,-1.2902530098,0.7283323535,-2.0246034009,-0.8767294071 +-0.6208824069,-0.6707878277,0.4250705465,0.2505395447,-0.4972287407,0.0326843988 +-1.3227916249,0.7401988506,1.3245850449,-1.2859072015,2.3109403148,-0.2619295607 +-1.4277892392,-1.1971949997,1.1866510792,-1.6231891964,-0.2206031215,0.4679058263 +1.6506475833,0.7822523697,0.4685356907,1.8734497391,0.8920071168,2.1613011439 +0.9127046346,0.5193312047,0.8944519172,1.0416669732,0.6268382310,-0.2955578938 +-1.7506028990,1.1154420981,0.5385802794,-0.7407154146,0.1399457702,-0.9221036559 +-1.0312855817,0.2960087960,-0.6126117053,-0.8785785087,0.8049976920,0.3505285777 +0.7040949864,1.0669821155,0.2027328834,0.9724814437,-0.0064729835,1.1121459185 +-0.6724445359,-1.3200321023,0.0108409239,-0.7409356830,0.3716778126,-1.4674551200 +-1.1196089902,0.1887134767,-0.2999337558,-0.1625181957,0.6120763629,0.0132213140 +-0.5910231363,-0.3080587139,0.2990054750,0.2504683844,0.4246433649,0.1831549931 +-1.2800018569,-2.0494955036,-1.1357830616,0.4875943248,1.2861469708,0.0362277151 +-0.8171409789,0.3226359088,-0.7380576527,0.4892498489,0.2283417157,0.4451909641 +-0.0402475420,-0.2484413130,-0.6408356539,-1.1785325637,0.5823003986,2.1822563629 +0.7259021694,1.3331227416,0.2669347700,-0.0772869213,-0.0679861755,0.4012839360 +0.5604639195,1.0802546328,-0.2652451656,-2.9399114367,1.4630189441,0.1901286936 +-1.4171781222,-0.5044145917,1.8442119141,0.4190027434,0.1832869663,0.8541291226 +1.0680050772,0.5036902866,0.3547553156,3.6456233962,-0.8100558715,0.9226095939 +-0.3042454694,-1.8976955112,0.3532691641,-0.1916636207,-0.0753872894,0.4536988019 +-0.6512490544,-0.4032090178,-0.7525208960,-3.0083376522,2.0060822340,-1.2628688071 +0.5065533937,1.1439543588,1.2073612510,-0.4448538043,-1.1900590126,2.0862142834 +-1.5527840959,0.0043282083,0.2409690372,0.5274113259,-0.6138046722,0.3453588486 +0.9161463795,-0.3131544045,1.2232032816,-1.8285927811,0.9955628148,-1.1910306337 +-0.7714986061,-2.0777237007,1.0536951282,1.2016643362,-0.7239032911,0.8684202376 +0.8021314723,-2.2515879086,1.2745807907,-0.7980714505,-0.3571583443,-1.7821450445 +1.5390533021,0.0565577067,0.3332554058,0.5881620129,-0.7325098313,1.8843236245 +-0.8313849011,-1.7561074662,0.5939412040,-1.6180884601,-0.9420944551,1.8843809082 +0.2446278553,1.2329048784,-0.3398292738,-2.9634602546,-0.0645858479,1.1080505945 +-0.1949706130,0.3044473230,-0.8345102768,0.2856082181,0.4019392759,-1.3058739290 +0.2492237720,1.8779287520,0.8369059500,-0.9887666597,1.7562504632,-0.0060916447 +0.6562907872,-0.4703283927,1.0359201419,1.9163817545,-0.0528805817,-0.8103226172 +-0.5514660716,0.7624900677,0.9595106362,1.4577229401,0.3766069911,-0.2956107877 +-0.8984367964,-0.7552247488,-0.4322982493,1.5841627751,1.7671311098,-0.4313412521 +-0.4827093377,1.2875925935,-0.8314207724,0.6394334802,-2.1969883903,0.3348063324 +-1.3043642650,-1.4976414067,-0.0924965644,0.5180522013,-0.6203046507,1.1022608092 +-0.2982226737,-0.5813375780,1.3702563403,0.7390508352,-0.6151849706,-0.7711008212 +-1.6242819707,-0.1316135027,0.3998850173,0.0370333587,1.3034335052,0.0659296197 +2.2173655546,0.3528905441,-1.1387912477,-0.5222782244,1.2257439440,-0.6912874520 +-2.1592264237,1.3140633923,-0.1401834447,0.1051707742,-0.4159006088,-1.4188288959 +-0.9378440991,-1.2792693278,-0.5417741431,0.1537519405,0.1262690351,0.5975162642 +0.7154589499,-0.4995606327,-0.2898683286,-1.1643167185,0.4422724959,0.7407248814 +0.9224622886,-0.3948156070,0.7481846099,-0.4650743378,-0.6175096000,0.1731187469 +0.3842094796,-3.2824482082,0.1299513635,1.3052091945,-1.0710189251,0.9611999243 +-1.0324299367,1.2118891286,1.0702407218,1.6918980125,-0.1971999343,1.8706281041 diff --git a/statsmodels/tsa/tests/results/resids_exact_nc.csv b/statsmodels/tsa/tests/results/resids_exact_nc.csv new file mode 100644 index 0000000..9b35657 --- /dev/null +++ b/statsmodels/tsa/tests/results/resids_exact_nc.csv @@ -0,0 +1,251 @@ +uhat1,uhat2,uhat3,uhat4,uhat5,uhat6 +-0.2047076595,1.3940722262,-0.7618372134,-0.4064523618,-0.9835047174,0.6143504692 +0.4320838837,-0.3455406434,-0.6670905817,-0.1189901168,0.9254493610,0.6210238496 +-0.5096195108,-1.3111654830,-1.7778579702,0.3584445303,-0.5091036181,-0.3345605429 +-0.5396230974,-0.4178846116,1.1813562109,0.7589005653,-1.6248554981,0.6320604181 +2.0098643595,-0.1789029452,0.2211447696,1.1684847509,-0.2758914231,-0.2959574480 +1.2709887256,-0.7759513773,-1.2424911223,-0.7253916916,0.3918998569,0.9818126124 +-0.0171440436,-0.7308450419,-0.8974420734,2.0089387498,0.6212542485,0.9884987186 +0.2141023632,-0.2530641419,-0.0268375715,-0.1436132264,-0.0490454461,0.2362946064 +0.6937806696,-1.5291444672,1.6164250675,-0.8456182900,2.1770966325,0.6699376936 +1.1482776291,0.6494431187,-0.7328696164,0.2935466599,0.1474127099,0.1410878504 +0.8699510318,-1.1875417504,-0.8202661728,-1.0014779666,0.8989275326,1.7124755784 +-1.4326497468,0.9919496849,-0.9742229629,-0.9026181683,-0.6312073760,0.5291111671 +0.2869569982,-0.2079331898,1.0802967062,-0.1784951874,-0.1732826616,0.7402262292 +0.1614765783,2.2269947281,0.5261902275,0.5815151196,0.4686171734,-0.8053661441 +1.3182917243,-0.8841228774,-1.3015784923,-0.3874651459,0.2959072014,-1.2049955699 +0.7617307875,-0.7936263471,-0.2027282619,0.6303738871,-1.7185410217,-0.7465358760 +-2.1056696340,-0.5214487220,0.6287097462,-0.6087998795,0.4139707602,1.8993566764 +-0.2960698771,0.4606380223,0.5981362751,3.2763384093,1.8268337735,-0.6829172285 +1.6724608152,-0.5329217537,0.2095470930,-0.8292457663,-0.4925324988,-0.4200628420 +-0.5366879935,0.5373928201,0.0724274707,-0.7368641806,-0.3178502146,0.4096613289 +-0.5267484576,0.3567899695,-1.2362395784,-1.6598227620,-0.1248158141,0.7245523292 +0.4870251302,-0.0003425296,-3.1862457425,-1.2276826148,-0.3622850442,-0.7207050594 +3.2172556724,-2.5672091918,-0.1179121622,3.0356075234,0.0684246861,-0.6214041116 +-1.2532436593,0.1223403754,-0.0603538258,1.3417688171,0.5154230149,2.3396539632 +-0.5661229629,-0.1212960141,1.2126233609,0.5984719988,0.5544025413,-0.3135168367 +0.0916446522,-0.1749277659,-1.6111675093,-0.2429335180,-1.7828699426,0.1845640907 +0.2790834614,-1.3129124820,0.8629622717,0.5988984163,1.0449345530,0.1496707615 +0.4858449194,-0.7907470022,1.9762941531,2.1195720705,1.5726060391,-0.2129576149 +-0.0534045071,-0.2640903741,0.1672041788,-0.9955798925,-0.3045947162,-0.7742785866 +1.3183137022,-0.4106498101,-1.2256416271,0.3184505630,-0.0632474578,2.4133027759 +-0.8328608363,-0.0903151434,0.5296982250,1.5177710751,-0.0495809494,0.6752910022 +-0.8183166463,-0.2668017401,-0.5833018328,1.1863042942,-0.1234213284,-0.2468830422 +-2.3487089624,0.0969209405,-0.8019065445,-0.2116797666,-1.7384107242,0.3302297281 +-1.6913289208,-0.8501108390,0.0768708971,-0.1200069498,-0.4471985418,0.2714728080 +-0.6861438378,0.9131357710,0.3732470167,2.5596941091,1.0942952117,0.0787483645 +0.7140797305,-1.1641924859,0.2028127773,-1.5521158386,2.2497674269,-0.9995511492 +-1.2075353967,-2.5363528958,0.9254627508,0.0302964310,-1.0894299296,-0.3771235690 +0.2801346114,0.9513538897,0.0001161312,-0.9712862129,0.2530552378,2.4503680429 +-1.0093282435,-0.8966740866,-0.8273010412,-0.6179529516,-1.1275407315,1.6331053331 +0.4746731597,0.5066534705,-0.3880930642,0.6988719655,-0.2464931700,1.1859349404 +-2.3261202921,-0.4111637784,-1.1715211412,-0.2363823482,-0.9990048275,1.2889631913 +0.0224811287,0.5266203431,-0.7813533997,-0.6262688538,-1.5484434888,0.9197430469 +-1.4612021847,-1.2360266585,-0.6930432328,0.1456047888,-1.0974491651,1.4354745520 +-0.7711884631,0.6630386647,-0.7408141640,1.7684289450,-1.0399209284,-1.3046326756 +-1.1582608493,-0.0592082701,-0.1532362927,-0.3177632829,0.5370736674,2.0378671235 +0.4799784338,-0.0970648616,0.0972408868,-1.1262192850,-0.0304610092,-0.7405410286 +0.4581923811,1.2612190605,0.3707443171,0.2612773015,-1.2757458071,0.0253646962 +-0.6924809857,1.4544120307,0.0405914968,-1.5712198376,-1.3072989235,2.0715367664 +0.4337353682,-0.3143978483,0.1045872422,-0.9694692257,-0.9883616982,3.5728136791 +1.3739510630,0.9226771587,-1.0234355368,0.8731322791,0.4165022701,1.4531675298 +0.0167732128,1.6442966450,0.7650708727,-1.5508904664,-0.1871395343,1.2900691387 +0.2431650695,-1.3577222975,-0.5015929718,-0.4953136202,0.5753213374,-1.3786600125 +-0.0449578442,-0.4683393783,-1.0707534116,1.2467469702,-0.0288522649,1.9727894398 +0.9950156649,-0.5556685071,1.3630125090,-0.1417279054,-0.2566037949,1.7964011177 +1.2434183888,0.3022603212,-0.6377742980,1.2564053519,-1.0883649686,-1.2148085601 +-1.0356874807,0.1195753940,0.4831256009,1.0407742865,1.3062949986,-2.4492332709 +-1.5376178829,1.4219420047,-0.9523166355,-2.0771478992,-0.4094520039,-2.1962411117 +0.0923245819,-2.1963076088,2.0823457055,-0.5905922915,-0.6356547923,-1.2044212343 +0.7698304941,-0.8211642489,-0.6625787536,0.4264337417,0.8988141155,1.7104232486 +-0.6892483068,-0.7081522281,0.4809908468,1.1207900043,-0.4596496759,0.6503333204 +0.9095537700,1.0843342250,0.4561338270,-0.0775173820,0.4462375541,-2.3748533120 +-0.0684015261,0.8790417743,1.7613512404,1.1737133872,0.9694611456,0.6940192709 +0.0516317191,0.1260881457,1.9795831186,0.2576829775,-0.9177071744,-1.2561505453 +0.6504828812,0.4384814654,1.0370771069,-1.6954610321,0.4787391040,1.4848624517 +0.7996131227,0.3604824232,0.5907829203,0.3499053805,-2.1438609357,-1.1054579759 +-1.0341072182,-0.4698506672,1.9307251878,0.5513125683,0.7743797928,1.9177389460 +0.0084132213,0.3134080753,-0.8316118187,0.0350316880,0.6740901823,-0.8885692816 +-2.3231670929,-0.4959108335,-0.0336031977,0.4309164058,0.4779216890,-0.5324174051 +-0.4887187899,2.1095101203,-0.6419890733,0.3026549026,-0.5892372759,-0.1007103927 +-1.1415391224,1.3908293675,-1.3436733894,0.8617850916,-0.7957710585,-0.5134496732 +-1.1786705738,0.1044206414,-0.1529017769,-1.0510615863,-0.3121727050,-2.0683736203 +1.2342215798,0.6785464670,-0.3774094130,0.3428728966,2.4847161086,-0.7180292295 +0.7371728224,2.0693865625,-0.6788282588,0.0354305731,-1.1957758288,0.5680192225 +0.7010238874,-0.1717954656,-0.2411502351,0.9635491986,-0.6574118607,-1.2182359456 +0.9685331988,-0.9293953313,0.3067092744,1.8256473994,0.7535271323,0.4660398645 +-0.5752586974,0.0986205067,0.6913787793,1.5847767637,-0.3424126119,-0.0084028498 +-0.6125651990,1.1722364988,-1.3966944706,-1.3184434723,-0.1135291286,1.3189816196 +-0.8997817437,-1.4500809895,-0.4343183589,0.2794996078,1.3708248535,1.1873802150 +-0.6573272152,-0.1234025563,0.1025908745,0.1312776411,-0.3725040314,-0.5189419193 +0.2958189169,-0.8436987523,-0.4760245726,0.2722666858,0.3313235411,0.6036000287 +0.0746948866,0.1605263845,-0.4350690686,-0.5488079310,-0.7280734333,-1.0697440364 +-1.1295189141,-1.5560814995,0.1394089135,-1.5773035703,0.1008449486,-0.6964936341 +0.9156261629,-1.0888119201,0.0849878787,-1.5798205744,-0.7231216659,0.7656609174 +0.4087241368,2.4887512439,1.0464983388,1.6155900101,1.9266007969,-1.8967147247 +1.0079287209,-0.5235547792,-0.1017747896,0.7463459045,-0.2416501059,2.1579199636 +1.7502339842,-0.5570435758,-0.5358552973,-0.6016886501,-1.8805252571,1.4017961850 +-1.1434708973,0.5877246516,-0.5024454871,1.1184488472,-0.5197454171,0.3426057366 +0.8644887958,-1.1257241625,-0.2435653767,0.5189657414,-0.0360723095,-1.1887422750 +-0.2383519863,0.5607917395,-1.2147260621,0.0772990723,-1.6421889584,-0.3534579686 +0.8951540955,0.9494193010,0.4625655195,-0.3890588736,0.0627138243,0.3608617519 +0.0858346521,0.7542339988,1.5369991428,0.1183106517,0.9090053794,-2.5157781480 +2.1230821498,-0.7566950950,0.6239566412,1.4153741169,-0.3503612550,0.0592412758 +-0.3117292325,-0.8869537788,-0.6681180044,1.0384456533,1.9433026338,-1.5096420380 +1.9485584820,1.3749574347,-1.0698346235,1.3268318171,1.7799326619,0.5456364152 +-0.1889609536,0.0797928912,0.1639824917,0.5362350191,0.5191880517,1.3365681247 +0.7177171509,1.2572091702,-0.1175803597,-0.6898367816,-0.2267238827,1.1453279819 +-0.0285699873,0.6421265135,0.3104335993,-0.7446018840,-1.0831585589,1.1755556130 +-0.8247771435,-0.4283842816,0.1354406933,0.8153267041,-0.4211019505,-0.6733323776 +0.5686918775,-0.1354946952,-0.1916629567,1.3050788641,-0.6415285918,-1.6435237891 +0.0759924136,-1.2148974856,-0.5395082480,0.2990961749,-0.0448564446,-1.1807596925 +-1.6032008676,-0.2999637818,0.6243441933,-0.0204987299,-0.0350585973,0.0297287275 +-0.4867780400,-1.2743179250,-0.4848982873,0.4885669596,1.2028836377,0.9525243590 +0.0077274677,1.0889307590,-0.6846444127,-2.8418904592,-1.0505767640,-1.7766210762 +-0.8959887593,0.6340669928,0.6960159576,-1.7493995409,-0.6613410813,1.0825672011 +-0.3939434351,1.4928744499,-0.7801352546,1.0560136400,0.7699553044,-0.1936244093 +0.0300667898,1.0580810805,1.5884705685,0.5572907649,-0.0263766174,0.9806419143 +1.1427263499,-0.2476022253,0.3685830369,-1.6348313201,-0.1137024416,-0.2306722159 +0.9400441213,-0.9508320697,-0.1263607213,0.3582768802,0.9266215006,0.4099997810 +-0.6485014571,-0.8323473636,-1.9182426298,-1.3563428701,1.9677345408,-0.2880958854 +1.5998530580,1.0001373749,0.7201152654,-1.5949515722,0.4174011325,-0.0161846123 +-0.6561566580,0.3950176813,-0.9144062469,0.4320048867,0.2192726082,0.2024630018 +0.4688445493,0.1896013104,-1.1378786680,0.0283903591,-1.2558235957,-0.4899501761 +0.8602553712,1.0536194932,-0.8605194200,-0.2804814163,0.3538760456,-0.4037372865 +-1.6521148140,-1.0519404994,1.4688084374,-0.9574221773,0.5146054472,-1.3079948376 +-0.9530814990,-0.2472938409,-0.8857075420,1.1605731239,1.0994753835,1.0883365845 +-0.3454822524,1.1778780900,-1.0753721895,0.3002754009,-0.0017948467,1.0144284271 +0.2791459751,-1.5874019799,0.2841152397,-0.9922789421,0.4197186378,-0.4005831314 +-0.1750512429,-1.0481981127,-0.3146563013,1.0775085506,0.0351146053,-1.5215890107 +0.7085845178,1.0864987435,-0.7315324345,0.9657933069,0.0401242523,0.6494933054 +-1.6782180440,-0.1222982109,-0.8963594645,-1.5264087824,-0.8343581975,-1.0051073503 +-2.1295110019,-2.3486535644,0.0419580722,-0.0761919510,-0.4567108182,1.1575910496 +-0.9887187052,-1.0723629572,-0.0236253973,-0.9990067273,0.2064741572,0.8124457348 +0.5130407881,1.4793144937,-1.0090349143,1.2598677207,2.4093441792,0.3247674588 +0.7748625778,0.5632838302,0.5455543004,-1.0148155184,-0.8643213136,0.1894703393 +-0.2477656332,0.3483516057,0.0324790519,0.2574023819,0.7238108588,0.0033415794 +-0.0818646011,-0.4474142433,0.7560258095,0.4104085039,0.0723371117,-0.5683737562 +0.1433426253,-0.4314436272,1.8191493724,-1.4915734987,0.1781795621,-2.1916661349 +-0.5860105771,0.0135147968,0.3970936068,0.7233173353,-0.3263377022,2.0031200305 +-0.3555684589,-1.3534492352,-1.3725575478,-0.8150196545,1.7721820606,-0.2484396242 +0.0345071345,2.0950104241,0.5648792334,-1.6871973486,1.4113571824,-0.7667759903 +-1.1907059622,0.5506521627,0.0403095956,-0.0313424853,0.0334228077,0.1693946823 +-1.6879798789,0.0302161277,-0.1109697214,-0.1419402587,-0.6920313426,-0.4764874721 +1.7996276993,-0.9460593240,-0.2080453221,1.5088038825,-0.8596583317,-2.0298222222 +0.9485247521,-0.9662917461,1.2672522652,-1.0153502636,-0.1664029617,-0.8143903697 +0.4377696499,2.0265054432,-0.2711937558,-1.1740645731,0.8824457068,0.1676242068 +0.5142463798,0.1012676827,1.3211104572,1.7063392486,0.8579123675,1.8690039197 +1.2516486968,1.9374328790,0.9162049622,1.8376374341,-0.2718957832,0.0672695794 +-0.5585512299,-1.5538074792,0.0598403187,1.0024804961,-0.7585867445,-0.7317063095 +-0.3160539099,-0.6864002529,0.2159411424,-0.2549113306,-0.6324224899,-1.5691715978 +0.4761779829,0.2761462303,0.6924825801,1.3890565868,-1.3757609059,-0.3294308318 +-0.8746887383,0.1149046679,-0.8922782472,-0.8261329646,-1.1745767793,0.8113681846 +1.3584741012,3.8504692251,-1.4368729853,-0.4619500215,-0.6609797478,-1.0443828951 +0.4061023189,-0.0695104133,0.6119724928,1.3539721812,0.1250768281,-1.9705871987 +-0.7020481437,1.0744288774,-0.5083653430,0.2543048090,0.0056012105,0.1339995813 +0.1910811254,-0.4766183114,-1.7261117406,0.7946842131,-0.3854364472,0.1183947821 +-0.4240532656,0.1270164462,-0.8279395301,1.5207954383,0.3212643107,0.9467829521 +-0.2535685177,-0.9756686126,-1.1264318853,-1.4792899021,-1.7748346691,1.1048502979 +-0.0044491087,1.2683645668,0.5254865348,-0.3879853357,-1.0448986627,-1.5269762817 +0.6887313564,-0.3237867304,-1.5816708169,-1.9344967481,0.0795943643,-1.5113344324 +0.5942857264,0.5880316791,0.2040995229,-0.7626425410,-0.4782593571,0.1868326807 +-0.8075146550,0.8538531976,0.7722615174,-1.0633114154,-0.9316107633,2.3217514692 +0.7475244148,0.7022959183,-1.2575225000,1.4500410878,0.7185195884,0.4998220500 +-0.3661442678,0.3412826366,-0.8654280309,-1.2407978147,0.5166289412,-0.1000183409 +-1.6633141560,0.0470586188,1.2345464975,-0.4670289697,-1.0823314821,0.0382149588 +0.5292729226,1.3167040722,-0.7488196439,-0.4065933570,-0.5558272744,0.8413899605 +-1.5693465854,0.5467665701,1.5972688893,1.5391658761,-0.4026456089,0.7220517943 +-0.2260044202,0.4557250324,1.4063009254,-0.4726582104,-1.3402874848,0.0793820794 +1.1059692814,0.1380403115,-1.1181738457,-0.4068989386,0.8273775201,0.8026261203 +1.2053075634,-0.6979116883,-0.4375892365,-0.5729634201,-1.6040462844,0.1447509717 +-0.3107105525,-0.6781353335,1.3083651168,-0.4498885541,0.9929445646,-0.6635769434 +-0.4135597352,3.0624978839,0.1404871591,2.4899477939,0.6188653588,0.0012913192 +-0.1071461357,0.9908440516,-0.7060856499,0.2318549372,-0.7838517085,2.2832379825 +-1.8366113609,-0.7274125742,-3.0695252737,0.9088803916,1.0127199496,-0.3937556588 +2.2028167310,-1.1930313569,-0.3588650181,0.3205985514,-0.4103883394,-0.7202800787 +-0.8896957326,-1.2155822882,1.0540548537,0.4724530593,0.4458659027,-0.6686730855 +1.5131151514,-1.1304226086,-0.4034496329,0.0191490959,-0.8915687100,-0.1665882363 +-0.2251909477,-1.4775099775,0.1789472072,1.9552989429,-0.2717998482,-0.2435439879 +1.2287893857,0.3666459241,0.4785148582,0.5656995024,-0.2333829398,-1.2119001422 +1.8011269210,-1.5270093001,0.6707415558,1.0200358175,-0.2952917628,0.8241877775 +0.5806251644,-0.5786243696,-1.2834001416,-0.6888134731,-2.3077434605,-0.2502559354 +2.0968726406,-0.4980632422,1.6333355685,-0.4088078515,0.6011325240,0.5480902817 +-0.9224182034,-0.4613038777,-0.2927491129,-0.8382262528,-0.3296429701,-0.0424661608 +0.6721189210,-0.0024376022,-0.0955176064,0.9974935842,-0.2673820114,0.4687485251 +-1.0168014631,0.3378814095,-1.6984072013,-0.4913705481,-0.6181791265,-0.1972942537 +-1.2156252575,0.3272678969,-0.2491161953,1.4029018535,-1.4779598768,-0.9516399619 +-0.4374562909,1.3205837480,0.0614241463,2.0746687198,0.0385898279,0.4709037474 +-0.8870897488,1.3413922191,2.1320542789,-0.1972578350,-0.3157645138,1.4629927882 +-0.7578176147,0.9647753774,-0.1090432943,0.7566195918,2.2523864111,-1.3601533653 +0.5235539003,-1.5167073208,-1.5716612128,-0.0588003768,-0.2702216489,0.3817933903 +-0.5413335104,-1.6460242703,-0.3952413304,-0.9403680333,-0.5044707241,1.0681830468 +-0.4923824798,-0.0006585227,-0.2446740184,-1.3566134923,-0.4033944681,0.2073206655 +-0.3062235086,0.2131195396,-0.0811290337,-0.0886128365,0.0260441967,-0.2744947683 +-0.8603277417,-0.3874583780,-0.4378337945,-1.0612974910,1.3543742559,0.9976336569 +1.8597156093,0.5106315521,-0.5033387008,-0.5881415388,1.2223240186,0.4271427822 +1.1344040194,-0.2023831861,-0.9960413627,-1.6698707908,-1.9657150346,-0.4581305339 +1.2054766346,-2.1099277759,-0.5871088691,-1.0023099421,0.1479530235,0.1151543453 +-1.0963665061,0.0050940706,0.9336504700,-1.5459688479,-1.6457755115,0.9531003685 +-0.6164859565,0.3931490192,-0.3019719104,-0.1424940676,0.5519718959,-0.8006153746 +-0.3894655157,1.9501736871,0.7618926039,0.3320435075,-1.2452011831,-0.5295069881 +-0.2607240737,2.1755925178,-0.2992326285,0.4212581678,0.2481583245,0.9979114484 +-0.7057223395,0.0101075895,0.0398620600,0.2015170363,-1.1384714888,0.4975412160 +-0.6611974924,0.8163837496,-1.2079613544,0.1076369078,-0.1687593401,-0.0068498186 +0.9152771387,0.0406784390,0.5390712449,-0.7718294615,-0.2146633321,-0.4706573744 +0.2478597412,0.5269950639,-0.3212922909,0.9400694677,1.4066791951,-0.2086509410 +0.7260598424,-1.2347390078,0.2983001868,0.6421031847,-2.0385121696,-0.6134475499 +0.8594459054,-1.6026660038,-1.0977870248,0.6797276766,-0.4891342119,-1.0018789489 +-1.0949742509,0.3085621982,-1.4878132019,-0.3119177847,1.4852662291,-0.0349038019 +-1.3742854684,0.3638338922,-0.3101988354,0.5536490305,1.3720348453,-1.1688461344 +1.3784682626,-1.8503939657,0.9192019167,-0.8473801754,0.8075828141,-0.4196370898 +0.1878782427,0.5729213870,-0.8152076887,1.4193717610,0.3490196747,-2.3802287332 +1.1229597403,-0.9215273194,-0.2581855888,-0.8938408694,0.3478147191,-0.0987283939 +-0.6650318751,-0.0752278015,0.8525386034,1.1358908017,0.4796154135,0.3573649845 +0.3241011776,0.3484730782,-0.4540775884,1.5379469531,-0.0767723568,1.8472264331 +-0.6272691107,-0.4719130495,-0.2900577415,0.3723860853,-0.5373928391,0.1848483127 +-1.1390175112,-0.3736632683,0.5035798458,0.5904410773,-0.7950030432,-0.7379174540 +-0.7523212209,0.5772497044,0.5153041443,0.1113531032,-0.2173541316,-0.4940375855 +-2.5633569348,-1.0639164830,0.1697575104,-0.7740171188,-0.3946527750,1.7617869802 +0.0748261362,1.4274338462,0.1605186790,-2.2367262581,-0.6900973161,-0.8225076787 +-0.6615524969,-1.8041462445,-0.3134584881,0.1287480846,0.1388121759,1.2692659231 +0.0171168180,-0.8060236450,-0.1591849540,-1.9199432227,-0.0604592679,0.7469672042 +1.5398098820,0.4431391932,1.0824736729,-0.2642508700,-1.2823894501,0.1089675146 +0.5790403761,-1.4797901619,-0.6711213972,-1.1760608366,-0.7958432350,-0.1967263662 +-0.5090429118,0.4230056471,-0.4503479640,-0.4305478897,0.4214785988,1.6505092355 +1.2666441337,-0.1572940453,0.3218238953,0.0557420447,-0.4110241293,0.7479200698 +-0.2224889623,-0.5727118457,0.1904017811,-0.5469761494,1.1084168093,-0.7538831567 +1.4281400071,0.1207598964,-0.2454713771,-1.0127139304,-0.1180548062,1.2568563957 +-0.9742411068,-0.2725701634,1.3918954662,-0.1924930780,0.5861735858,-1.9752523965 +0.6301610447,0.4588064895,-1.2625596429,0.4877331585,0.7974561743,-1.3583489950 +1.1858271379,0.5947624887,-1.9184186379,0.4248671605,0.4500017705,0.6517087464 +-0.3588966249,0.6342025526,0.3428952826,-0.8707702232,1.0318055939,1.7449582743 +-0.4749571525,0.1214717608,-0.6945244317,0.3987171142,-2.3130564251,-0.2658316070 +0.4566276110,-0.2849459829,1.7604387171,-1.7786650157,0.3533394767,-1.7603570799 +-1.0118306105,-0.7911931294,-0.5917496694,-0.1357077557,-0.0343918560,-0.8552721784 +-1.7739603332,0.0896123405,0.4314768943,0.7128330698,-3.3630712361,-1.3110338116 +0.7478062187,-0.6066083661,-0.2123965255,0.3456176660,-1.0155754808,0.6728418955 +1.0195304985,0.4043492277,-1.3850079359,-1.1419040614,-0.6350471249,0.3497785159 +1.0758947068,-0.9325105091,1.0242572878,-2.1547353095,-0.4770609766,-0.0534222279 +0.0112192283,-0.0028171132,0.2520340049,-0.9568011937,0.1982380834,-0.4697895972 +-0.3833737874,-1.9899074014,0.8840275846,-0.0830147911,-0.7945681044,-0.1078116305 +0.2084150221,1.4497385034,-0.3826427673,-0.0206462472,0.0461333377,1.5424042979 +-0.9267957736,1.4297365276,-0.9539904465,0.6531625487,-0.2304533872,-0.4796195595 +-1.6908947871,0.8191997934,0.7719313466,-1.3744265114,1.4305845127,2.6252419419 +-0.9297695920,-0.2147646615,0.2226420326,0.4155209017,-0.4025136167,1.2699764920 +1.5520045711,0.9490810942,-0.4636747808,2.2503671983,-0.2346598245,-0.8542840206 +-0.6104665251,-0.0369750570,-0.0718750263,-0.3645384358,0.0577303028,-1.1965566103 +-2.3444748918,-1.8625407115,-1.4432198913,0.8588460949,0.0235767637,0.4572494498 +-0.8802265307,-1.1860625649,1.0873505807,-0.0776431517,0.5309276800,-1.5730941995 +0.3756041114,-0.0946943315,-0.0781043471,-0.2557330565,-0.0055637314,1.4109350393 +0.0762942030,0.0623884486,-0.2492628234,-0.0719879835,-0.4455953506,-1.9626100016 +0.1349729302,-0.3853985614,-1.4885562589,-1.2542048528,0.3643667912,-0.2617745557 +-1.3248533169,-0.5362571292,0.2285475719,0.3678037275,-0.8001339176,-1.1250722261 +0.1021162434,0.8216924054,-1.0050056147,0.3538765236,-0.1108005750,-1.6268770378 +0.9893796578,-0.5445479923,-0.6985699887,0.4275870899,0.7186676814,0.8831142972 +-0.6528904987,1.0281908499,0.1322170128,0.8972593946,-1.1487894432,1.2361729916 +1.1052174274,0.7304291994,1.7398796530,1.3531171804,0.1718537295,-2.6784704740 +-1.1416939473,0.0578815886,0.7495743571,-1.7551145060,0.9450348217,0.0463244383 +0.5130557203,2.2522998596,-1.5798575447,1.7569742951,1.1897796354,-1.0059329497 +-0.2635734004,0.6064424763,-0.6732565922,-2.7690659217,-0.2960408405,1.1480267708 +0.6768033834,1.5538048490,-0.9729001401,1.8032642048,1.4887937090,0.8395074269 +-0.3741392058,1.1962552335,1.0153800771,0.4098058451,0.5662269008,1.1278183643 diff --git a/statsmodels/tsa/tests/results/results_ar.py b/statsmodels/tsa/tests/results/results_ar.py new file mode 100644 index 0000000..ca4132c --- /dev/null +++ b/statsmodels/tsa/tests/results/results_ar.py @@ -0,0 +1,218 @@ +import numpy as np +import os + +class ARLagResults(object): + """ + Results are from R vars::VARselect for sunspot data. + + Comands run were + + var_select <- VARselect(SUNACTIVITY, lag.max=16, type=c("const")) + """ + def __init__(self, type="const"): + # order of results is AIC, HQ, SC, FPE + if type == "const": + ic = [6.311751824815273, 6.321813007357017, 6.336872456958734, + 551.009492543133547, 5.647615009344886, 5.662706783157502, + 5.685295957560077, 283.614444209634655, 5.634199640773091, + 5.654322005856580, 5.684440905060013, 279.835333966272003, + 5.639415797766900, 5.664568754121261, 5.702217378125553, + 281.299267441683185, 5.646102475432464, 5.676286023057697, + 5.721464371862848, 283.187210932784524, 5.628416873122441, + 5.663631012018546, 5.716339085624555, 278.223839284844701, + 5.584204185137150, 5.624448915304128, 5.684686713710994, + 266.191975554941564, 5.541163244029505, 5.586438565467356, + 5.654206088675081, 254.979353737235556, 5.483155367013447, + 5.533461279722170, 5.608758527730753, 240.611088468544949, + 5.489939895595428, 5.545276399575022, 5.628103372384465, + 242.251199397394288, 5.496713895370946, 5.557080990621412, + 5.647437688231713, 243.900349905069504, 5.503539311586831, + 5.568936998108170, 5.666823420519329, 245.573823561989144, + 5.510365149977393, 5.580793427769605, 5.686209574981622, + 247.259396991133599, 5.513740912139918, 5.589199781203001, + 5.702145653215877, 248.099655693709479, 5.515627471325321, + 5.596116931659277, 5.716592528473011, 248.572915484827206, + 5.515935627515806, 5.601455679120634, 5.729461000735226, + 248.654927915301300] + self.ic = np.asarray(ic).reshape(4,-1, order='F') + +class ARResultsOLS(object): + """ + Results of fitting an AR(9) model to the sunspot data. + + Results were taken from Stata using the var command. + """ + def __init__(self, constant=True): + self.avobs = 300. + if constant: + self.params = [ 6.7430535917332, 1.1649421971129, -.40535742259304, + -.16653934246587, .14980629416032, -.09462417064796, + .00491001240749, .0504665930841, -.08635349190816, + .25349103194757] +# These are returned by stata VAR, using the (V)AR scale/sigma +# we return the true OLS bse by default +# the stata residuals can be achived by np.sqrt(np.diag(res1.cov_params())) + self.bse_stata = [2.413485601, .0560359041, .0874490762, + .0900894414, .0899348339, .0900100797, + .0898385666, .0896997939, .0869773089, + .0559505756] +# The below are grom gretl's ARIMA command with conditional maxium likelihood + self.bse_gretl = [2.45474, 0.0569939, 0.0889440, 0.0916295, + 0.0914723, 0.0915488, 0.0913744, 0.0912332, + 0.0884642, 0.0569071] + self.rmse = 15.1279294937327 + self.fpe = 236.4827257929261 + self.llf = -1235.559128419549 +#NOTE: we use a different definition of these ic than Stata +# but our order selection results agree with R VARselect +# close to Stata for Lutkepohl but we penalize the ic for the trend terms +# self.bic = 8.427186938618863 +# self.aic = 8.30372752279699 +# self.hqic = 8.353136159250697 + +#NOTE: predictions were taken from gretl, but agree with Stata + # test predict +#TODO: remove one of the files + filename = os.path.join(os.path.dirname(os.path.abspath(__file__)), + "AROLSConstantPredict.csv") + predictresults = np.loadtxt(filename) + fv = predictresults[:300,0] + pv = predictresults[300:,1] + pv_lb = predictresults[300:,2] + pv_ub = predictresults[300:,3] + pv_se = predictresults[300:,4] + del predictresults + + # cases - in sample predict + # n = -1, start = 0 (fitted values) + self.FVOLSnneg1start0 = fv + # n=-1, start=9 + self.FVOLSnneg1start9 = fv + # n=-1, start=100 + self.FVOLSnneg1start100 = fv[100-9:] + # n = 200, start = 0 + self.FVOLSn200start0 = fv[:192] + # n = 200, start = 200 + self.FVOLSn200start200 = np.hstack((fv[200-9:],pv[:101-9])) + # n = 200, start = -109 use above + self.FVOLSn200startneg109 = self.FVOLSn200start200 + # n = 100, start = 325, post-sample forecasting + self.FVOLSn100start325 = np.hstack((fv[-1],pv)) + # n = 301, start = 9 + self.FVOLSn301start9 = np.hstack((fv,pv[:2])) + # n = 301, start = 0 + self.FVOLSdefault = fv + # n = 4, start = 312 + self.FVOLSn4start312 = np.hstack((fv[-1],pv[:8])) + # n = 15, start = 312 + self.FVOLSn15start312 = np.hstack((fv[-1],pv[:19])) + + + elif not constant: + self.params = [1.19582389902985, -0.40591818219637, + -0.15813796884843, 0.16620079925202, + -0.08570200254617, 0.01876298948686, + 0.06130211910707, -0.08461507700047, + 0.27995084653313] + self.bse_stata = [.055645055, .088579237, .0912031179, .0909032462, + .0911161784, .0908611473, .0907743174, .0880993504, + .0558560278] + self.bse_gretl = [0.0564990, 0.0899386, 0.0926027, 0.0922983, + 0.0925145, 0.0922555, 0.0921674, 0.0894513, + 0.0567132] + self.rmse = 15.29712618677774 + self.sigma = 226.9820074869752 + self.llf = -1239.41217278661 +# See note above +# self.bic = 8.433861292817106 +# self.hqic = 8.367215591385756 +# self.aic = 8.322747818577421 + self.fpe = 241.0221316614273 + filename = os.path.join(os.path.dirname(os.path.abspath(__file__)), + "AROLSNoConstantPredict.csv") + predictresults = np.loadtxt(filename) + fv = predictresults[:300,0] + pv = predictresults[300:,1] + pv_lb = predictresults[300:,2] + pv_ub = predictresults[300:,3] + pv_se = predictresults[300:,4] + del predictresults + + # cases - in sample predict + # n = -1, start = 0 (fitted values) + self.FVOLSnneg1start0 = fv + # n=-1, start=9 + self.FVOLSnneg1start9 = fv + # n=-1, start=100 + self.FVOLSnneg1start100 = fv[100-9:] + # n = 200, start = 0 + self.FVOLSn200start0 = fv[:192] + # n = 200, start = 200 + self.FVOLSn200start200 = np.hstack((fv[200-9:],pv[:101-9])) + # n = 200, start = -109 use above + self.FVOLSn200startneg109 = self.FVOLSn200start200 + # n = 100, start = 325, post-sample forecasting + self.FVOLSn100start325 = np.hstack((fv[-1],pv)) + # n = 301, start = 9 + self.FVOLSn301start9 = np.hstack((fv,pv[:2])) + # n = 301, start = 0 + self.FVOLSdefault = fv + # n = 4, start = 312 + self.FVOLSn4start312 = np.hstack((fv[-1],pv[:8])) + # n = 15, start = 312 + self.FVOLSn15start312 = np.hstack((fv[-1],pv[:19])) + + +class ARResultsMLE(object): + """ + Results of fitting an AR(9) model to the sunspot data using exact MLE. + + Results were taken from gretl. + """ + def __init__(self, constant=True): + self.avobs = 300 + if constant: + + # NOTE: Stata's estimated parameters differ from gretl + filename = os.path.join(os.path.dirname(os.path.abspath(__file__)), + "ARMLEConstantPredict.csv") + filename2 = os.path.join(os.path.dirname(os.path.abspath(__file__)), + 'results_ar_forecast_mle_dynamic.csv') + predictresults = np.loadtxt(filename, delimiter=",") + year = predictresults[:,0] + pv = predictresults[:,1] + dynamicpv = np.genfromtxt(filename2, delimiter=",", skip_header=1) + + # cases - in sample predict + # start = 0 (fitted values) + self.FVMLEdefault = pv[:309] + # start=9 + self.FVMLEstart9end308 = pv[9:309] + # start=100, end=309 + self.FVMLEstart100end308 = pv[100:309] + # start = 0, end + self.FVMLEstart0end200 = pv[:201] + # n = 200, start = 200 + self.FVMLEstart200end334 = pv[200:] + # start = 309, end=334 post-sample forecasting + self.FVMLEstart308end334 = pv[308:] + # end = 310, start = 9 + self.FVMLEstart9end309 = pv[9:310] + # end = 301, start = 0 + self.FVMLEstart0end301 = pv[:302] + # end = 312, start = 4 + self.FVMLEstart4end312 = pv[4:313] + # end = 7, start = 2 + self.FVMLEstart2end7 = pv[2:8] + + self.fcdyn = dynamicpv[:,0] + self.fcdyn2 = dynamicpv[:,1] + self.fcdyn3 = dynamicpv[:,2] + self.fcdyn4 = dynamicpv[:,3] + + + else: + pass + + + diff --git a/statsmodels/tsa/tests/results/results_ar_forecast_mle_dynamic.csv b/statsmodels/tsa/tests/results/results_ar_forecast_mle_dynamic.csv new file mode 100644 index 0000000..80bae85 --- /dev/null +++ b/statsmodels/tsa/tests/results/results_ar_forecast_mle_dynamic.csv @@ -0,0 +1,335 @@ +fcdyn,fcdyn2,fcdyn3,fcdyn4,year,index +NA,NA,NA,NA,1700,0 +NA,NA,NA,NA,1701,1 +NA,NA,NA,NA,1702,2 +NA,NA,NA,NA,1703,3 +NA,NA,NA,NA,1704,4 +NA,NA,NA,NA,1705,5 +NA,NA,NA,NA,1706,6 +NA,NA,NA,NA,1707,7 +NA,NA,NA,NA,1708,8 +11.23047,NA,NA,NA,1709,9 +13.23731,NA,NA,NA,1710,10 +19.66407,NA,NA,NA,1711,11 +27.00373,NA,NA,NA,1712,12 +33.57858,NA,NA,NA,1713,13 +44.90784,NA,NA,NA,1714,14 +47.95866,NA,NA,NA,1715,15 +45.09347,NA,NA,NA,1716,16 +36.50656,NA,NA,NA,1717,17 +28.78818,NA,NA,NA,1718,18 +23.48711,NA,NA,NA,1719,19 +22.53206,NA,NA,NA,1720,20 +25.68737,NA,NA,NA,1721,21 +31.07822,NA,NA,NA,1722,22 +38.54836,NA,NA,NA,1723,23 +45.41845,NA,NA,NA,1724,24 +49.67139,NA,NA,NA,1725,25 +49.37283,NA,NA,NA,1726,26 +45.30287,NA,NA,NA,1727,27 +39.27502,NA,NA,NA,1728,28 +33.76503,NA,NA,NA,1729,29 +30.76819,NA,NA,NA,1730,30 +31.00231,NA,NA,NA,1731,31 +34.36712,NA,NA,NA,1732,32 +39.73509,NA,NA,NA,1733,33 +45.49821,NA,NA,NA,1734,34 +49.73386,NA,NA,NA,1735,35 +51.13904,NA,NA,NA,1736,36 +49.42444,NA,NA,NA,1737,37 +45.44374,NA,NA,NA,1738,38 +40.80805,NA,NA,NA,1739,39 +37.19994,NA,NA,NA,1740,40 +35.84322,NA,NA,NA,1741,41 +37.12242,NA,NA,NA,1742,42 +40.5707,NA,NA,NA,1743,43 +45.0109,NA,NA,NA,1744,44 +48.97761,NA,NA,NA,1745,45 +51.20812,NA,NA,NA,1746,46 +51.08132,NA,NA,NA,1747,47 +48.81563,NA,NA,NA,1748,48 +45.34622,NA,NA,NA,1749,49 +41.96479,NA,NA,NA,1750,50 +39.85285,NA,NA,NA,1751,51 +39.70252,NA,NA,NA,1752,52 +41.51253,NA,NA,NA,1753,53 +44.62548,NA,NA,NA,1754,54 +47.97401,NA,NA,NA,1755,55 +50.45678,NA,NA,NA,1756,56 +51.31412,NA,NA,NA,1757,57 +50.37143,NA,NA,NA,1758,58 +48.07163,NA,NA,NA,1759,59 +45.29209,NA,NA,NA,1760,60 +43.02564,NA,NA,NA,1761,61 +42.04014,NA,NA,NA,1762,62 +42.63295,NA,NA,NA,1763,63 +44.55469,NA,NA,NA,1764,64 +47.11933,NA,NA,NA,1765,65 +49.45578,NA,NA,NA,1766,66 +50.81053,NA,NA,NA,1767,67 +50.79702,NA,NA,NA,1768,68 +49.50859,NA,NA,NA,1769,69 +47.46335,NA,NA,NA,1770,70 +45.40802,NA,NA,NA,1771,71 +44.05476,NA,NA,NA,1772,72 +43.84306,NA,NA,NA,1773,73 +44.80533,NA,NA,NA,1774,74 +46.57591,NA,NA,NA,1775,75 +48.53369,NA,NA,NA,1776,76 +50.02399,NA,NA,NA,1777,77 +50.58108,NA,NA,NA,1778,78 +50.07622,NA,NA,NA,1779,79 +48.74461,NA,NA,NA,1780,80 +47.0881,NA,NA,NA,1781,81 +45.69285,NA,NA,NA,1782,82 +45.02758,NA,NA,NA,1783,83 +45.29136,NA,NA,NA,1784,84 +46.35975,NA,NA,NA,1785,85 +47.84262,NA,NA,NA,1786,86 +49.22875,NA,NA,NA,1787,87 +50.06412,NA,NA,NA,1788,88 +50.10232,NA,NA,NA,1789,89 +49.37749,NA,NA,NA,1790,90 +48.17905,NA,NA,NA,1791,91 +46.94158,NA,NA,NA,1792,92 +46.09115,NA,NA,NA,1793,93 +45.9021,NA,NA,NA,1794,94 +46.41197,NA,NA,NA,1795,95 +47.4205,NA,NA,NA,1796,96 +48.5688,NA,NA,NA,1797,97 +49.46817,NA,NA,NA,1798,98 +49.83268,NA,NA,NA,1799,99 +49.57053,25.74347,NA,NA,1800,100 +48.80555,45.07553,NA,NA,1801,101 +47.82483,56.26223,NA,NA,1802,102 +46.97392,58.91456,NA,NA,1803,103 +46.53746,51.91183,NA,NA,1804,104 +46.64617,41.38568,NA,NA,1805,105 +47.24034,29.44033,NA,NA,1806,106 +48.09929,20.594,NA,NA,1807,107 +48.92374,15.65894,NA,NA,1808,108 +49.44053,18.22081,NA,NA,1809,109 +49.49352,27.80714,NA,NA,1810,110 +49.09048,40.67458,NA,NA,1811,111 +48.39246,52.10051,NA,NA,1812,112 +47.65195,57.96601,NA,NA,1813,113 +47.12326,57.18009,NA,NA,1814,114 +46.97669,50.58997,NA,NA,1815,115 +47.24521,41.19133,NA,NA,1816,116 +47.82008,31.97262,NA,NA,1817,117 +48.49449,26.00973,NA,NA,1818,118 +49.0381,25.3424,NA,NA,1819,119 +49.2759,30.23195,NA,NA,1820,120 +49.14449,38.94292,NA,NA,1821,121 +48.708,48.32435,NA,NA,1822,122 +48.13022,55.21302,NA,NA,1823,123 +47.61448,57.45876,NA,NA,1824,124 +47.33314,54.73303,NA,NA,1825,125 +47.371,48.31932,NA,NA,1826,126 +47.70098,40.61562,NA,NA,1827,127 +48.19876,34.30102,NA,NA,1828,128 +48.68947,31.49938,NA,NA,1829,129 +49.00915,33.09014,NA,NA,1830,130 +49.05949,38.4097,NA,NA,1831,131 +48.83779,45.54427,NA,NA,1832,132 +48.43316,52.02924,NA,NA,1833,133 +47.99199,55.75885,NA,NA,1834,134 +47.66576,55.67565,NA,NA,1835,135 +47.55974,52.06329,NA,NA,1836,136 +47.6997,46.36284,NA,NA,1837,137 +48.02718,40.63523,NA,NA,1838,138 +48.42331,36.8523,NA,NA,1839,139 +48.75186,36.24014,NA,NA,1840,140 +48.90604,38.89879,NA,NA,1841,141 +48.84306,43.81192,NA,NA,1842,142 +48.59544,49.24557,NA,NA,1843,143 +48.25633,53.37311,NA,NA,1844,144 +47.94516,54.90133,NA,NA,1845,145 +47.76602,53.47803,NA,NA,1846,146 +47.77337,49.76026,NA,NA,1847,147 +47.95608,45.14231,NA,NA,1848,148 +48.2444,41.25146,NA,NA,1849,149 +48.53638,39.3907,NA,NA,1850,150 +48.73379,40.11474,NA,NA,1851,151 +48.77512,43.07797,NA,NA,1852,152 +48.65446,47.194,NA,NA,1853,153 +48.42082,51.03932,NA,NA,1854,154 +48.15889,53.35115,NA,NA,1855,155 +47.95871,53.44565,NA,NA,1856,156 +47.88509,51.41935,NA,NA,1857,157 +47.95695,48.07774,NA,NA,1858,158 +48.14322,44.62913,NA,NA,1859,159 +48.37574,42.25802,NA,NA,1860,160 +48.5741,41.72712,NA,NA,1861,161 +48.67334,43.14053,NA,NA,1862,162 +48.64509,45.94062,NA,NA,1863,163 +48.50536,49.1286,NA,NA,1864,164 +48.30696,51.62327,NA,NA,1865,165 +48.11988,52.62979,NA,NA,1866,166 +48.00684,51.8937,NA,NA,1867,167 +48.00254,49.76002,NA,NA,1868,168 +48.10326,47.0275,NA,NA,1869,169 +48.27007,44.65717,NA,NA,1870,170 +48.44363,43.44038,NA,NA,1871,171 +48.56524,43.74025,NA,NA,1872,172 +48.59658,45.3902,NA,NA,1873,173 +48.53167,47.77605,NA,NA,1874,174 +48.39723,50.06516,NA,NA,1875,175 +48.24216,51.49802,NA,NA,1876,176 +48.11987,51.64078,NA,NA,1877,177 +48.07012,50.51556,NA,NA,1878,178 +48.10623,48.57068,NA,NA,1879,179 +48.21193,46.50852,NA,NA,1880,180 +48.34826,45.03631,NA,NA,1881,181 +48.46784,44.62735,NA,NA,1882,182 +48.53126,45.37293,NA,NA,1883,183 +48.51997,46.97024,NA,NA,1884,184 +48.44153,48.84385,NA,NA,1885,185 +48.32577,50.35313,NA,NA,1886,186 +48.21362,51.01153,NA,NA,1887,187 +48.14281,50.64309,NA,NA,1888,188 +48.13525,49.42654,NA,NA,1889,189 +48.19046,47.81766,NA,NA,1890,190 +48.28681,46.382,NA,NA,1891,191 +48.38984,45.59878,NA,NA,1892,192 +48.46454,45.70354,NA,NA,1893,193 +48.48717,46.62066,NA,NA,1894,194 +48.45269,48.00411,NA,NA,1895,195 +48.37559,49.36743,NA,NA,1896,196 +48.284,50.25469,NA,NA,1897,197 +48.20957,50.39271,NA,NA,1898,198 +48.1766,49.77424,NA,NA,1899,199 +48.19421,48.64739,NA,NA,1900,200 +48.25402,47.41943,NA,NA,1901,201 +48.33384,46.51162,NA,NA,1902,202 +48.40579,46.21651,NA,NA,1903,203 +48.44604,46.6056,NA,NA,1904,204 +48.4426,47.51603,NA,NA,1905,205 +48.3988,48.61704,NA,NA,1906,206 +48.33142,49.52975,NA,NA,1907,207 +48.26437,49.95725,NA,NA,1908,208 +48.22027,49.78077,NA,NA,1909,209 +48.21289,49.09095,NA,NA,1910,210 +48.24294,48.14704,NA,NA,1911,211 +48.29848,47.28117,NA,NA,1912,212 +48.35955,46.78283,NA,NA,1913,213 +48.4053,46.8033,NA,NA,1914,214 +48.42108,47.31141,NA,NA,1915,215 +48.40305,48.11303,NA,NA,1916,216 +48.35898,48.92453,NA,NA,1917,217 +48.30501,49.4728,NA,NA,1918,218 +48.25985,49.58682,NA,NA,1919,219 +48.23831,49.25039,NA,NA,1920,220 +48.24652,48.59994,NA,NA,1921,221 +48.28025,47.87108,NA,NA,1922,222 +48.3269,47.31424,NA,NA,1923,223 +48.37012,47.10955,NA,NA,1924,224 +48.3955,47.30951,NA,NA,1925,225 +48.39538,47.82753,NA,NA,1926,226 +48.37106,48.474,NA,NA,1927,227 +48.33194,49.02525,NA,NA,1928,228 +48.29195,49.30067,NA,NA,1929,229 +48.26462,49.22147,NA,NA,1930,230 +48.25856,48.83232,NA,NA,1931,231 +48.27478,48.28018,NA,NA,1932,232 +48.30673,47.75973,NA,NA,1933,233 +48.34286,47.44541,NA,NA,1934,234 +48.3708,47.43357,NA,NA,1935,235 +48.38153,47.7138,NA,NA,1936,236 +48.37229,48.17769,NA,NA,1937,237 +48.34718,48.66019,NA,NA,1938,238 +48.31544,48.99806,NA,NA,1939,239 +48.28812,49.0848,NA,NA,1940,240 +48.27422,48.90384,NA,NA,1941,241 +48.27777,48.52964,NA,NA,1942,242 +48.29672,48.09819,NA,NA,1943,243 +48.32394,47.75808,NA,NA,1944,244 +48.34984,47.61982,NA,NA,1945,245 +48.36576,47.7204,NA,NA,1946,246 +48.36682,48.01445,NA,NA,1947,247 +48.3534,48.39355,NA,NA,1948,248 +48.33074,48.72594,NA,NA,1949,249 +48.30694,48.90203,NA,NA,1950,250 +48.29008,48.87032,NA,NA,1951,251 +48.28551,48.6519,NA,NA,1952,252 +48.29417,48.32977,NA,NA,1953,253 +48.3125,48.01783,NA,NA,1954,254 +48.33385,47.82096,NA,NA,1955,255 +48.35086,47.80007,NA,NA,1956,256 +48.35802,47.95373,NA,NA,1957,257 +48.3534,48.22171,NA,NA,1958,258 +48.33914,48.50819,NA,NA,1959,259 +48.32052,48.71578,NA,NA,1960,260 +48.30403,48.77848,NA,NA,1961,261 +48.29514,48.68238,NA,NA,1962,262 +48.29647,48.46779,NA,NA,1963,263 +48.30708,48.21301,NA,NA,1964,264 +48.32293,48.00602,NA,NA,1965,265 +48.33842,47.9144,NA,NA,1966,266 +48.34835,47.96348,NA,NA,1967,267 +48.34964,48.12991,NA,NA,1968,268 +48.34229,48.35188,NA,NA,1969,269 +48.3292,48.55192,NA,NA,1970,270 +48.31506,48.66372,NA,NA,1971,271 +48.3047,48.65398,NA,NA,1972,272 +48.30142,48.53202,NA,NA,1973,273 +48.30599,48.34455,NA,NA,1974,274 +48.31648,48.15806,NA,NA,1975,275 +48.32907,48.03546,NA,NA,1976,276 +48.3394,48.01503,NA,NA,1977,277 +48.34411,48.09869,NA,NA,1978,278 +48.34188,48.25319,NA,NA,1979,279 +48.33381,48.42301,NA,NA,1980,280 +48.3229,48.55017,NA,NA,1981,281 +48.31298,48.59394,NA,NA,1982,282 +48.30734,48.54369,NA,NA,1983,283 +48.30768,48.42102,NA,NA,1984,284 +48.31358,48.27089,NA,NA,1985,285 +48.32279,48.14532,NA,NA,1986,286 +48.33204,48.08548,NA,NA,1987,287 +48.3382,48.10837,NA,NA,1988,288 +48.33936,48.20225,NA,NA,1989,289 +48.33537,48.332,NA,NA,1990,290 +48.32782,48.45215,NA,NA,1991,291 +48.31944,48.52268,NA,NA,1992,292 +48.31309,48.52226,NA,NA,1993,293 +48.31082,48.45455,NA,NA,1994,294 +48.31319,48.3457,NA,NA,1995,295 +48.31918,48.23446,NA,NA,1996,296 +48.32658,48.15849,NA,NA,1997,297 +48.33284,48.1417,NA,NA,1998,298 +48.3359,48.18687,NA,NA,1999,299 +48.33488,48.27574,NA,NA,2000,300 +48.33033,48.37623,NA,NA,2001,301 +48.32396,48.4539,NA,NA,2002,302 +48.318,48.48368,NA,NA,2003,303 +48.31445,48.45791,NA,NA,2004,304 +48.31438,48.38801,NA,NA,2005,305 +48.31765,48.29974,NA,NA,2006,306 +48.32299,48.22377,NA,NA,2007,307 +48.3285,48.18514,23.47364,NA,2008,308 +48.33231,48.19506,54.73861,30.85857,2009,309 +48.33322,48.24781,80.91882,61.33544,2010,310 +48.33107,48.32352,96.89133,87.02467,2011,311 +48.32673,48.39553,94.15365,91.32123,2012,312 +48.32178,48.43977,77.70128,79.9216,2013,313 +48.3179,48.44268,56.33983,60.7995,2014,314 +48.31637,48.40531,36.52842,40.37485,2015,315 +48.31757,48.34226,21.34622,24.52903,2016,316 +48.32098,48.27606,15.74889,13.53051,2017,317 +48.32533,48.22919,23.33969,14.44262,2018,318 +48.32911,48.21651,40.86964,26.82511,2019,319 +48.33107,48.24065,61.94895,47.5587,2020,320 +48.33065,48.29165,78.24312,67.30043,2021,321 +48.3281,48.35101,84.08843,78.69045,2022,322 +48.32438,48.3983,78.31338,78.43595,2023,323 +48.32081,48.41819,64.1858,67.94477,2024,324 +48.31858,48.4053,46.7631,52.09101,2025,325 +48.31839,48.36561,31.46734,35.70807,2026,326 +48.32018,48.31381,23.18735,24.0176,2027,327 +48.32327,48.26797,24.45816,20.48491,2028,328 +48.32655,48.24327,34.63706,26.46583,2029,329 +48.3289,48.247,49.85213,39.67762,2030,330 +48.32957,48.27651,64.55238,55.23003,2031,331 +48.32843,48.3206,73.5886,67.49796,2032,332 +48.32594,48.36368,74.20407,72.37827,2033,333 diff --git a/statsmodels/tsa/tests/results/results_arima.py b/statsmodels/tsa/tests/results/results_arima.py new file mode 100644 index 0000000..7d07a4b --- /dev/null +++ b/statsmodels/tsa/tests/results/results_arima.py @@ -0,0 +1,438 @@ +import os + +import numpy as np +from numpy import genfromtxt +cur_dir = os.path.dirname(os.path.abspath(__file__)) + +forecast_results = genfromtxt(open(cur_dir+"/results_arima_forecasts.csv", + "rb"), names=True, delimiter=",", dtype=float) + +#NOTE: +# stata gives no indication of no convergence for 112 CSS but gives a +# different answer than x12arima, gretl simply fails to converge +# redid stata with starting parameters from x12arima + +# it looks like stata uses a different formula for the CSS likelihood +# they appear to be using a larger sample than R, gretl, or us. +# CSS results are therefore taken from R and gretl + +class ARIMA111(object): + def __init__(self, method="mle"): + self.k_ar = 1 + self.k_diff = 1 + self.k_ma = 1 + if method == "mle": + # from stata + from .arima111_results import results + + # unpack stata results + self.__dict__.update(results) + self.resid = self.resid[1:] + self.params = self.params[:-1] + self.sigma2 = self.sigma**2 + self.aic = self.icstats[4] + self.bic = self.icstats[5] + self.fittedvalues = self.xb[1:] # no idea why this initial value + self.linear = self.y[1:] + #their bse are OPG + #self.bse = np.diag(self.cov_params) ** .5 + + # from gretl + self.arroots = [1.0640 + 0j] + self.maroots = [1.2971 + 0j] + self.hqic = 496.8653 + self.aic_gretl = 491.5112 + self.bic_gretl = 504.7442 + #self.bse = [.205811, .0457010, .0897565] + self.tvalues = [4.280, 20.57, -8.590] + self.pvalues = [1.87e-5, 5.53e-94, 8.73e-18] + self.cov_params = [[0.0423583, -0.00167449, 0.00262911], + [-0.00167449, 0.00208858, -0.0035068], + [0.00262911, -0.0035068, 0.00805622]] + self.bse = np.diag(np.sqrt(self.cov_params)) + # from stata + #forecast = genfromtxt(open(cur_dir+"/arima111_forecasts.csv"), + # delimiter=",", skip_header=1, usecols=[1,2,3,4,5]) + #self.forecast = forecast[203:,1] + #self.fcerr = forecast[203:,2] + #self.fc_conf_int = forecast[203:,3:] + # from gretl + self.forecast = forecast_results['fc111c'][-25:] + self.forecasterr = forecast_results['fc111cse'][-25:] + self.forecast_dyn = forecast_results['fc111cdyn'] + self.forecasterr_dyn = forecast_results['fc111cdynse'] + else: + #from arima111_css_results import results + + # coefs, bse, tvalues, and pvalues taken from R because gretl + # uses mean not constant + self.bse = [0.21583833, 0.03844939, 0.08566390] + self.params = [1.0087257, 0.9455393, -0.8021834] + self.sigma2 = 0.6355913 + self.tvalues = [4.673524, 24.591788, -9.364311] + self.pvalues = [5.464467e-06, 0, 0] + self.cov_params = np.array([ + [ 0.046586183, 0.002331183, -0.004647432 ], + [ 0.002331183, 0.001478356, -0.002726201 ], + [-0.004647432, -0.002726201, 0.007338304 ]]) + + # from gretl + self.llf = -239.6601 + self.aic = 487.3202 + self.bic = 500.5334 + self.hqic = 492.6669 + self.arroots = [1.0578 + 0j] + self.maroots = [1.2473 + 0j] + #cov_params = np.array([[0.00369569, -0.00271777, 0.00269806], + # [0, 0.00209573, -0.00224559], + # [0, 0, 0.00342769]]) + #self.cov_params = cov_params + cov_params.T - \ + # np.diag(np.diag(cov_params)) + #self.bse = np.diag(np.sqrt(self.cov_params)) + self.resid = [-0.015830, -0.236884, -0.093946, -0.281152, + -0.089983, -0.226336, -0.351666, -0.198703, + -0.258418, -0.259026, -0.149513, -0.325703, + -0.165703, -0.279229, -0.295711, -0.120018, + -0.289870, -0.154243, -0.348403, -0.273902, + -0.240894, -0.182791, -0.252930, -0.152441, + -0.296412, -0.128941, 0.024068, -0.243972, + -0.011436, -0.392437, -0.217022, -0.118190, + -0.133489, -0.045755, -0.169953, 0.025010, + -0.107754, -0.119661, 0.070794, -0.065586, + -0.080390, 0.007741, -0.016138, -0.235283, + -0.121907, -0.125546, -0.428463, -0.087713, + -0.298131, -0.277757, -0.261422, -0.248326, + -0.137826, -0.043771, 0.437100, -0.150051, + 0.751890, 0.424180, 0.450514, 0.277089, + 0.732583, 0.225086, -0.403648, -0.040509, + -0.132975, -0.112572, -0.696214, 0.003079, + -0.003491, -0.108758, 0.401383, -0.162302, + -0.141547, 0.175094, 0.245346, 0.607134, 0.519045, + 0.248419, 0.920521, 1.097613, 0.755983, 1.271156, + 1.216969, -0.121014, 0.340712, 0.732750, 0.068915, + 0.603912, 0.060157, -0.803110, -1.044392, 1.040311, + -0.984497, -1.611668, -0.258198, -0.112970, + -0.091071, 0.226487, 0.097475, -0.311423, -0.061105, + -0.449488, 0.317277, -0.329734, -0.181248, 0.443263, + -2.223262, 0.096836, -0.033782, 0.456032, 0.476052, + 0.197564, 0.263362, 0.021578, 0.216803, 0.284249, + 0.343786, 0.196981, 0.773819, 0.169070, -0.343097, + 0.918962, 0.096363, 0.298610, 1.571685, -0.236620, + -1.073822, -0.194208, -0.250742, -0.101530, + -0.076437, -0.056319, 0.059811, -0.041620, + -0.128404, -0.403446, 0.059654, -0.347208, + -0.095257, 0.217668, -0.015057, 0.087431, 0.275062, + -0.263580, -0.122746, 0.195629, 0.367272, + -0.184188, 0.146368, 0.127777, -0.587128, + -0.498538, 0.172490, -0.456741, -0.694000, + 0.199392, -0.140634, -0.029636, 0.364818, + -0.097080, 0.510745, 0.230842, 0.595504, 0.709721, + 0.012218, 0.520223, -0.445174, -0.168341, + -0.935465, -0.894203, 0.733417, -0.279707, + 0.258861, 0.417969, -0.443542, -0.477955, 0.288992, + 0.442126, 0.075826, 0.665759, 0.571509, -0.204055, + 0.835901, -0.375693, 3.292828, -1.469299, + -0.122206, 0.617909, -2.250468, 0.570871, 1.166013, + 0.079873, 0.463372, 1.981434, -0.142869, 3.023376, + -3.713161, -6.120150, -0.007487, 1.267027, 1.176930] + + self.linear = [29.3658, 29.6069, 29.6339, 29.8312, 29.8400, + 30.0663, 30.1617, 30.1187, 30.2384, 30.2990, + 30.3595, 30.5457, 30.5457, 30.7192, 30.7757, + 30.8100, 31.0399, 31.0942, 31.2984, 31.2939, + 31.3609, 31.4628, 31.6329, 31.7324, 31.9464, + 32.0089, 32.2559, 32.6940, 32.8614, 33.2924, + 33.3170, 33.5182, 33.8335, 34.1458, 34.5700, + 34.8750, 35.4078, 35.8197, 36.2292, 36.8656, + 37.3804, 37.8923, 38.5161, 39.1353, 39.5219, + 40.0255, 40.5285, 40.6877, 41.1981, 41.4778, + 41.7614, 42.0483, 42.3378, 42.7438, 43.2629, + 44.3501, 44.8481, 46.3758, 47.6495, 49.0229, + 50.2674, 52.0749, 53.4036, 54.0405, 55.0330, + 55.9126, 56.7962, 56.9969, 57.9035, 58.8088, + 59.5986, 60.9623, 61.7415, 62.5249, 63.6547, + 64.8929, 66.5810, 68.2516, 69.6795, 71.9024, + 74.4440, 76.7288, 79.6830, 82.7210, 84.3593, + 86.4672, 89.0311, 90.8961, 93.3398, 95.2031, + 96.0444, 96.4597, 99.0845, 99.5117, 99.0582, + 99.9130, 100.8911, 101.8735, 103.2025, 104.4114, + 105.1611, 106.1495, 106.6827, 108.0297, 108.6812, + 109.4567, 110.9233, 109.4032, 110.2338, 110.9440, + 112.2239, 113.6024, 114.7366, 115.9784, 116.9832, + 118.2158, 119.5562, 121.0030, 122.3262, 124.3309, + 125.7431, 126.5810, 128.8036, 130.2014, 131.8283, + 134.9366, 136.1738, 136.3942, 137.4507, 138.4015, + 139.4764, 140.5563, 141.6402, 142.8416, 143.9284, + 144.9034, 145.5403, 146.6472, 147.2953, 148.1823, + 149.4151, 150.4126, 151.5249, 152.8636, 153.6227, + 154.5044, 155.7327, 157.1842, 158.0536, 159.2722, + 160.4871, 160.8985, 161.3275, 162.4567, 162.8940, + 163.0006, 164.0406, 164.7296, 165.5352, 166.7971, + 167.5893, 169.0692, 170.3045, 171.9903, 173.8878, + 175.0798, 176.8452, 177.5683, 178.5355, 178.5942, + 178.5666, 180.2797, 180.9411, 182.1820, 183.6435, + 184.1780, 184.6110, 185.8579, 187.3242, 188.4342, + 190.2285, 192.0041, 192.9641, 195.0757, 195.9072, + 200.8693, 200.8222, 202.0821, 204.1505, 203.0031, + 204.7540, 207.2581, 208.6696, 210.5136, 214.1399, + 215.5866, 220.6022, 218.2942, 212.6785, 213.2020, + 215.2081] + # forecasting isn't any different for css + # except you lose the first p+1 observations for in-sample + # these results are from x-12 arima + self.forecast = forecast_results['fc111c_css'][-25:] + self.forecasterr = forecast_results['fc111cse_css'][-25:] + self.forecast_dyn = forecast_results['fc111cdyn_css'] + self.forecasterr_dyn = forecast_results['fc111cdynse_css'] + +class ARIMA211(object): + def __init__(self, method="mle"): + if method == 'mle': + # from stata + from .arima111_results import results + + self.__dict__.update(results) + self.resid = self.resid[1:] + self.params = self.params[:-1] + self.sigma2 = self.sigma**2 + self.aic = self.icstats[4] + self.bic = self.icstats[5] + self.fittedvalues = self.xb[1:] # no idea why this initial value + self.linear = self.y[1:] + self.k_diff = 1 + + #their bse are OPG + #self.bse = np.diag(self.cov_params) ** .5 + # from gretl + self.arroots = [1.027 + 0j, 5.7255+ 0j] + self.maroots = [1.1442+0j] + self.hqic = 496.5314 + self.aic_gretl = 489.8388 + self.bic_gretl = 506.3801 + #self.bse = [0.248376, 0.102617, 0.0871312, 0.0696346] + self.tvalues = [3.468, 11.14, -1.941, 12.55] + self.pvalues = [.0005, 8.14e-29, .0522, 3.91e-36] + cov_params = np.array([ + [0.0616906, -0.00250187, 0.0010129, 0.00260485], + [0, 0.0105302, -0.00867819, -0.00525614], + [ 0 ,0, 0.00759185, 0.00361962], + [ 0 ,0,0, 0.00484898]]) + self.cov_params = cov_params + cov_params.T - \ + np.diag(np.diag(cov_params)) + self.bse = np.diag(np.sqrt(self.cov_params)) + self.forecast = forecast_results['fc211c'][-25:] + self.forecasterr = forecast_results['fc211cse'][-25:] + self.forecast_dyn = forecast_results['fc211cdyn'][-25:] + self.forecasterr_dyn = forecast_results['fc211cdynse'][-25:] + else: + from .arima211_css_results import results + + self.__dict__.update(results) + self.resid = self.resid[1:] + self.params = self.params[:-1] + self.sigma2 = self.sigma**2 + self.aic = self.icstats[4] + self.bic = self.icstats[5] + self.fittedvalues = self.xb[1:] # no idea why this initial value + self.linear = self.y[1:] + self.k_diff = 1 + + # from gretl + self.arroots = [1.0229 + 0j, 4.4501 + 0j] + self.maroots = [1.0604 + 0j] + self.hqic = 489.3225 + self.aic_gretl = 482.6486 + self.bic_gretl = 499.1402 + self.tvalues = [.7206, 22.54, -19.04] + self.pvalues = [.4712, 1.52e-112, 2.19e-10, 8.00e-81] + cov_parmas = np.array([ + [8.20496e-04, -0.0011992, 4.57078e-04, 0.00109907], + [0, 0.00284432, -0.0016752, -0.00220223], + [0, 0, 0.00119783, 0.00108868], + [0, 0, 0, 0.00245324]]) + self.cov_params = cov_params + cov_params.T - \ + np.diag(np.diag(cov_params)) + self.bse = np.diag(np.sqrt(self.cov_params)) + # forecasting isn't any different for css + # except you lose the first p+1 observations for in-sample + self.forecast = forecast_results['fc111c_css'][-25:] + self.forecasterr = forecast_results['fc111cse_css'][-25:] + self.forecast_dyn = forecast_results['fc111cdyn_css'] + self.forecasterr_dyn = forecast_results['fc111cdynse_css'] + +class ARIMA112(object): + def __init__(self, method="mle"): + self.df_model = 3 + self.k = 5 + self.k_ar = 1 + self.k_ma = 2 + self.k_exog = 1 + self.k_diff = 1 + if method == "mle": + from .arima112_results import results + # from gretl + self.arroots = [1.0324 + 0j] + self.maroots = [1.1447 + 0j, -4.8613+0j] + self.hqic = 495.5852 + self.aic_gretl = 488.8925 + self.bic_gretl = 505.4338 + self.tvalues = [3.454, 31.10, -7.994, -2.127] + self.pvalues = [0.0006, 2.1e-212, 1.31e-15, .0334] + cov_params = np.array([ + [0.0620096, -0.00172172, 0.00181301, 0.00103271], + [0, 9.69682e-04, -9.70767e-04, -8.99814e-04], + [0, 0, 0.00698068, -0.00443871], + [0, 0, 0, 0.00713662]]) + self.cov_params = cov_params + cov_params.T - \ + np.diag(np.diag(cov_params)) + self.bse = np.diag(np.sqrt(self.cov_params)) + # from gretl + self.forecast = forecast_results['fc112c'][-25:] + self.forecasterr = forecast_results['fc112cse'][-25:] + self.forecast_dyn = forecast_results['fc112cdyn'] + self.forecasterr_dyn = forecast_results['fc112cdynse'] + + # unpack stata results + self.__dict__ = results + self.resid = self.resid[1:] + self.params = self.params[:-1] + self.sigma2 = self.sigma**2 + self.aic = self.icstats[4] + self.bic = self.icstats[5] + self.fittedvalues = self.xb[1:] # no idea why this initial value + self.linear = self.y[1:] + #their bse are OPG + #self.bse = np.diag(self.cov_params) ** .5 + else: #NOTE: this looks like a "hard" problem + #unable to replicate stata's results even with their starting + #values + # unable to replicate x12 results in stata using their starting + # values. x-12 has better likelihood and we can replicate so + # use their results + #from arima112_css_results import results + + # taken from R using X12-arima values as init params + self.bse = [0.07727588, 0.09356658, 0.10503567, 0.07727970] + self.params = [ 0.9053219, -0.692412, 1.0736728, 0.1720008] + self.sigma2 = 0.6820727 + self.tvalues = [11.715452, -7.400215, 10.221983, 2.225692] + self.pvalues = [0, 3.791634e-12, 0, 2.716275e-02] + self.cov_params = np.array([ + [ 0.0059715623, 0.001327824, -0.001592129, -0.0008061933], + [ 0.0013278238, 0.008754705, -0.008024634, -0.0045933413], + [-0.0015921293,-0.008024634, 0.011032492, 0.0072509641], + [-0.0008061933,-0.004593341, 0.007250964, 0.0059721516]]) + + # from x12arima via gretl + # gretl did not converge for this model... + self.llf = -246.7534 + self.nobs = 202 + #self.params = [.905322, -.692425, 1.07366, 0.172024] + #self.sigma2 = 0.682072819129 + #self.bse = [0.0756430, 0.118440, 0.140691, 0.105266] + + self.resid = resid = [-1.214477, -0.069772, -1.064510, -0.249555, + -0.874206, -0.322177, -1.003579, -0.310040, -0.890506, + -0.421211, -0.715219, -0.564119, -0.636560, -0.580912, + -0.717440, -0.424277, -0.747835, -0.424739, -0.805958, + -0.516877, -0.690127, -0.473072, -0.694766, -0.435627, + -0.736474, -0.388060, -0.429596, -0.557224, -0.342308, + -0.741842, -0.442199, -0.491319, -0.420884, -0.388057, + -0.466176, -0.257193, -0.429646, -0.349683, -0.205870, + -0.335547, -0.290300, -0.216572, -0.234272, -0.427951, + -0.255446, -0.338097, -0.579033, -0.213860, -0.556756, + -0.389907, -0.510060, -0.409759, -0.396778, -0.258727, + 0.160063, -0.467109, 0.688004, -0.021120, 0.503044, + 0.031500, 0.878365, -0.003548, -0.079327, 0.038289, + 0.032773, -0.050780, -0.560124, 0.185655, -0.111981, + -0.020714, 0.363254, -0.218484, -0.006161, 0.165950, + 0.252365, 0.599220, 0.488921, 0.347677, 1.079814, + 1.102745, 0.959907, 1.570836, 1.454934, 0.343521, + 1.125826, 1.154059, 0.666141, 1.269685, 0.551831, + -0.027476, -0.305192, 1.715665, -0.990662, -0.548239, + -0.011636, 0.197796, -0.050128, 0.480031, 0.061198, + -0.049562, 0.064436, -0.300420, 0.494730, -0.411527, + 0.109242, 0.375255, -2.184482, 0.717733, -0.673064, + 0.751681, -0.092543, 0.438016, -0.024881, 0.250085, + 0.096010, 0.452618, 0.265491, 0.374299, 0.820424, + 0.238176, -0.059646, 1.214061, 0.028679, 0.797567, + 1.614444, -0.094717, -0.408067, 0.299198, -0.021561, + 0.231915, 0.084190, 0.199192, 0.201132, 0.148509, + 0.035431, -0.203352, 0.264744, -0.319785, 0.150305, + 0.184628, 0.074637, 0.148340, 0.357372, -0.241250, + 0.119294, 0.204413, 0.458730, -0.190477, 0.416587, + 0.084216, -0.363361, -0.310339, 0.309728, -0.549677, + -0.449092, 0.183025, -0.259015, -0.000883, 0.267255, + -0.188068, 0.577697, 0.049310, 0.746401, 0.565829, + 0.178270, 0.709983, -0.348012, 0.273262, -0.873288, + -0.403100, 0.720072, -0.428076, 0.488246, 0.248152, + -0.313214, -0.323137, 0.414843, 0.308909, 0.134180, + 0.732275, 0.535639, -0.056128, 1.128355, -0.449151, + 3.879123, -2.303860, 1.712549, -0.074407, -1.162052, + 0.848316, 1.262031, 0.009320, 1.017563, 1.978597, + -0.001637, 3.782223, -4.119563, -3.666488, 0.345244, + 0.869998, 0.635321] + + self.linear = [30.5645, 29.4398, 30.6045, 29.7996, 30.6242, + 30.1622, 30.8136, 30.2300, 30.8705, 30.4612, 30.9252, + 30.7841, 31.0166, 31.0209, 31.1974, 31.1143, 31.4978, + 31.3647, 31.7560, 31.5369, 31.8101, 31.7531, 32.0748, + 32.0156, 32.3865, 32.2681, 32.7096, 33.0072, 33.1923, + 33.6418, 33.5422, 33.8913, 34.1209, 34.4881, 34.8662, + 35.1572, 35.7296, 36.0497, 36.5059, 37.1355, 37.5903, + 38.1166, 38.7343, 39.3280, 39.6554, 40.2381, 40.6790, + 40.8139, 41.4568, 41.5899, 42.0101, 42.2098, 42.5968, + 42.9587, 43.5399, 44.6671, 44.9120, 46.8211, 47.5970, + 49.2685, 50.1216, 52.3035, 53.0793, 53.9617, 54.8672, + 55.8508, 56.6601, 56.8143, 58.0120, 58.7207, 59.6367, + 61.0185, 61.6062, 62.5340, 63.6476, 64.9008, 66.6111, + 68.1523, 69.5202, 71.8973, 74.2401, 76.4292, 79.4451, + 82.2565, 83.5742, 86.0459, 88.4339, 90.2303, 92.8482, + 94.4275, 95.3052, 95.7843, 99.0907, 98.4482, 98.8116, + 99.6022, 100.8501, 101.6200, 103.2388, 104.1496, + 105.0356, 106.0004, 106.5053, 108.1115, 108.3908, + 109.5247, 110.8845, 108.7823, 110.8731, 110.6483, + 112.7925, 113.3620, 115.0249, 115.7499, 117.1040, + 118.0474, 119.6345, 120.8257, 122.2796, 124.2618, + 125.4596, 126.2859, 128.8713, 129.7024, 131.7856, + 134.7947, 135.5081, 135.9008, 137.2216, 138.0681, + 139.3158, 140.3008, 141.4989, 142.6515, 143.7646, + 144.7034, 145.3353, 146.6198, 147.0497, 148.2154, + 149.3254, 150.3517, 151.4426, 152.8413, 153.3807, + 154.4956, 155.6413, 157.1905, 157.7834, 159.3158, + 160.2634, 160.7103, 161.1903, 162.5497, 162.6491, + 163.0170, 164.1590, 164.7009, 165.6327, 166.8881, + 167.5223, 169.2507, 170.1536, 172.1342, 173.7217, + 174.8900, 176.7480, 177.1267, 178.4733, 178.1031, + 178.5799, 180.4281, 180.7118, 182.3518, 183.5132, + 184.0231, 184.4852, 185.9911, 187.2658, 188.3677, + 190.2644, 191.8561, 192.6716, 195.1492, 195.3209, + 201.7039, 198.9875, 202.7744, 203.0621, 202.7257, + 204.6580, 207.3287, 208.1154, 210.5164, 213.9986, + 214.8278, 221.0086, 215.8405, 212.3258, 213.5990, + 215.7497] + + self.yr = [] + + self.arroots = [-1.4442 + 0j] + self.maroots = [-1.1394 + 0j, -5.1019+0j] + self.hqic = 510.1902 + self.aic = 503.5069 + self.bic = 520.0234 + #self.tvalues = [11.97, -5.846, 7.631, 1.634] + #self.pvalues = [5.21e-33, 5.03e-9, 2.32e-14, .1022] + #cov_params = np.array([ + # [0.0620096, -0.00172172, 0.00181301, 0.00103271], + # [0, 9.69682e-04, -9.70767e-04, -8.99814e-04], + # [0, 0, 0.00698068, -0.00443871], + # [0, 0, 0, 0.00713662]]) + #self.cov_params = cov_params + cov_params.T - \ + # np.diag(np.diag(cov_params)) + #self.bse = np.diag(np.sqrt(self.cov_params)) + self.forecast = forecast_results['fc112c_css'][-25:] + self.forecasterr = forecast_results['fc112cse_css'][-25:] + self.forecast_dyn = forecast_results['fc112cdyn_css'] + self.forecasterr_dyn = forecast_results['fc112cdynse_css'] + + + diff --git a/statsmodels/tsa/tests/results/results_arima_exog_forecasts_css.csv b/statsmodels/tsa/tests/results/results_arima_exog_forecasts_css.csv new file mode 100644 index 0000000..642c533 --- /dev/null +++ b/statsmodels/tsa/tests/results/results_arima_exog_forecasts_css.csv @@ -0,0 +1,127 @@ +orig_index,year,quarter,y,predict,std_err,lower,upper +0,1950,1,3.198371,,,, +1,1950,2,0.951462,,,, +2,1950,3,2.044147,1.637865,,, +3,1950,4,5.387144,3.026386,,, +4,1951,1,4.278298,4.758931,,, +5,1951,2,2.608896,2.744609,,, +6,1951,3,2.2891,2.190297,,, +7,1951,4,0.542828,2.572409,,, +8,1952,1,1.818848,1.464508,,, +9,1952,2,1.141287,2.995619,,, +10,1952,3,1.390376,1.964605,,, +11,1952,4,3.519065,2.452368,,, +12,1953,1,2.687199,3.739905,,, +13,1953,2,2.72044,2.352415,,, +14,1953,3,3.640325,2.782552,,, +15,1953,4,3.388688,3.337867,,, +16,1954,1,1.285691,2.807582,,, +17,1954,2,1.193271,1.532043,,, +18,1954,3,4.125089,2.281349,,, +19,1954,4,1.826838,4.190755,,, +20,1955,1,1.211262,1.496953,,, +21,1955,2,1.494882,2.104899,,, +22,1955,3,2.407813,2.42813,,, +23,1955,4,3.476123,2.908037,,, +24,1956,1,4.683225,3.270582,,, +25,1956,2,3.209492,3.687261,,, +26,1956,3,3.045272,2.260033,,, +27,1956,4,3.189591,2.771537,,, +28,1957,1,3.223306,2.86421,,, +29,1957,2,2.160318,2.825037,,, +30,1957,3,1.084407,2.10187,,, +31,1957,4,0.698262,1.797678,,, +32,1958,1,1.121673,1.916263,,, +33,1958,2,2.538408,2.308136,,, +34,1958,3,3.671068,3.072406,,, +35,1958,4,3.45499,3.284601,,, +36,1959,1,2.136544,2.743738,,, +37,1959,2,3.821324,1.982434,,, +38,1959,3,4.975221,3.611985,,, +39,1959,4,3.157348,3.662564,,, +40,1960,1,1.30047,2.059906,,, +41,1960,2,1.802575,1.56944,,, +42,1960,3,3.772872,2.555923,,, +43,1960,4,3.770009,3.604042,,, +44,1961,1,3.359749,2.847162,,, +45,1961,2,2.440787,2.64582,,, +46,1961,3,2.682876,2.180379,,, +47,1961,4,4.210082,2.684437,,, +48,1962,1,3.215831,3.570286,,, +49,1962,2,2.501961,2.311421,,, +50,1962,3,2.597237,2.281679,,, +51,1962,4,2.865064,2.576134,,, +52,1963,1,1.27064,2.688936,,, +53,1963,2,-0.23313,1.51842,,, +54,1963,3,0.276246,1.147103,,, +55,1963,4,2.197587,2.011094,,, +56,1964,1,3.4989,3.036608,,, +57,1964,2,2.577512,3.170317,,, +58,1964,3,3.582812,2.110702,,, +59,1964,4,3.0313,3.186722,,, +60,1965,1,2.467222,2.374814,,, +61,1965,2,2.161508,2.255183,,, +62,1965,3,2.460806,2.24175,,, +63,1965,4,3.291564,2.537855,,, +64,1966,1,3.637327,2.960457,,, +65,1966,2,2.015331,2.872379,,, +66,1966,3,3.386468,1.678517,,, +67,1966,4,2.153601,3.241487,,, +68,1967,1,2.037476,1.80477,,, +69,1967,2,2.115952,2.270841,,, +70,1967,3,1.352658,2.308425,,, +71,1967,4,1.847239,1.76327,,, +72,1968,1,1.741011,2.393571,,, +73,1968,2,2.28343,2.091623,,, +74,1968,3,3.006313,2.514739,,, +75,1968,4,4.314375,2.772906,,, +76,1969,1,3.718064,3.380456,,, +77,1969,2,2.029417,2.48767,,, +78,1969,3,1.500418,1.638736,,, +79,1969,4,2.249069,1.917292,,, +80,1970,1,2.751434,2.556965,,, +81,1970,2,4.149486,2.578243,,, +82,1970,3,4.793702,3.342115,,, +83,1970,4,2.970161,3.233744,,, +84,1971,1,1.535665,1.809793,,, +85,1971,2,-0.690842,1.585436,,, +86,1971,3,0.372726,0.581896,,, +87,1971,4,1.280042,2.116903,,, +88,1972,1,1.981304,2.214855,,, +89,1972,2,2.909937,2.372742,,, +90,1972,3,3.050076,2.743802,,, +91,1972,4,2.641661,2.491526,,, +92,1973,1,2.621315,2.193228,,, +93,1973,2,2.422996,2.338137,,, +94,1973,3,2.613121,2.192145,,, +95,1973,4,-0.631347,2.393736,,, +96,1974,1,0.308662,0.135852,,, +97,1974,2,2.14549,2.048404,,, +98,1974,3,2.530416,2.769812,,, +99,1974,4,2.333179,2.349218,,, +100,1975,1,,2.129509,0.943872,0.279554,3.979465 +101,1975,2,,2.074884,1.135543,-0.150738,4.300507 +102,1975,3,,2.105186,1.136638,-0.122583,4.332955 +103,1975,4,,2.134998,1.15044,-0.119824,4.389819 +104,1976,1,,2.136828,1.156371,-0.129617,4.403272 +105,1976,2,,2.12296,1.156401,-0.143544,4.389463 +106,1976,3,,2.109324,1.156884,-0.158127,4.376774 +107,1976,4,,2.100939,1.157087,-0.166909,4.368787 +108,1977,1,,2.095456,1.157087,-0.172394,4.363306 +109,1977,2,,2.089903,1.157105,-0.17798,4.357787 +110,1977,3,,2.083365,1.157111,-0.184532,4.351262 +111,1977,4,,2.076291,1.157111,-0.191606,4.344188 +112,1978,1,,2.069235,1.157112,-0.198663,4.337133 +113,1978,2,,2.062363,1.157112,-0.205535,4.330262 +114,1978,3,,2.055591,1.157112,-0.212308,4.323489 +115,1978,4,,2.048814,1.157112,-0.219084,4.316713 +116,1979,1,,2.042003,1.157112,-0.225896,4.309901 +117,1979,2,,2.035173,1.157112,-0.232725,4.303072 +118,1979,3,,2.028345,1.157112,-0.239554,4.296243 +119,1979,4,,2.021522,1.157112,-0.246376,4.289421 +120,1980,1,,2.014704,1.157112,-0.253195,4.282602 +121,1980,2,,2.007885,1.157112,-0.260014,4.275783 +122,1980,3,,2.001064,1.157112,-0.266834,4.268963 +123,1980,4,,1.994244,1.157112,-0.273655,4.262142 +124,1981,1,,1.987423,1.157112,-0.280476,4.255321 +,,,,1.980602,1.157112,-0.287296,4.248501 diff --git a/statsmodels/tsa/tests/results/results_arima_exog_forecasts_mle.csv b/statsmodels/tsa/tests/results/results_arima_exog_forecasts_mle.csv new file mode 100644 index 0000000..063df68 --- /dev/null +++ b/statsmodels/tsa/tests/results/results_arima_exog_forecasts_mle.csv @@ -0,0 +1,126 @@ +orig_index,year,quarter,y,predict,std_err,lower,upper +0,1950,1,3.198371,2.786912,0,0,0 +1,1950,2,0.951462,2.974749,0,0,0 +2,1950,3,2.044147,1.436963,0,0,0 +3,1950,4,5.387144,3.04366,0,0,0 +4,1951,1,4.278298,4.703375,0,0,0 +5,1951,2,2.608896,2.671842,0,0,0 +6,1951,3,2.2891,2.179081,0,0,0 +7,1951,4,0.542828,2.559835,0,0,0 +8,1952,1,1.818848,1.44334,0,0,0 +9,1952,2,1.141287,2.994511,0,0,0 +10,1952,3,1.390376,1.924747,0,0,0 +11,1952,4,3.519065,2.444375,0,0,0 +12,1953,1,2.687199,3.708894,0,0,0 +13,1953,2,2.72044,2.302143,0,0,0 +14,1953,3,3.640325,2.772049,0,0,0 +15,1953,4,3.388688,3.306912,0,0,0 +16,1954,1,1.285691,2.76964,0,0,0 +17,1954,2,1.193271,1.515752,0,0,0 +18,1954,3,4.125089,2.28757,0,0,0 +19,1954,4,1.826838,4.162606,0,0,0 +20,1955,1,1.211262,1.441483,0,0,0 +21,1955,2,1.494882,2.122148,0,0,0 +22,1955,3,2.407813,2.41238,0,0,0 +23,1955,4,3.476123,2.886529,0,0,0 +24,1956,1,4.683225,3.238772,0,0,0 +25,1956,2,3.209492,3.650045,0,0,0 +26,1956,3,3.045272,2.223427,0,0,0 +27,1956,4,3.189591,2.769419,0,0,0 +28,1957,1,3.223306,2.84062,0,0,0 +29,1957,2,2.160318,2.802709,0,0,0 +30,1957,3,1.084407,2.084095,0,0,0 +31,1957,4,0.698262,1.797552,0,0,0 +32,1958,1,1.121673,1.917181,0,0,0 +33,1958,2,2.538408,2.301813,0,0,0 +34,1958,3,3.671068,3.054365,0,0,0 +35,1958,4,3.45499,3.251589,0,0,0 +36,1959,1,2.136544,2.71492,0,0,0 +37,1959,2,3.821324,1.972191,0,0,0 +38,1959,3,4.975221,3.609349,0,0,0 +39,1959,4,3.157348,3.617571,0,0,0 +40,1960,1,1.30047,2.032269,0,0,0 +41,1960,2,1.802575,1.581756,0,0,0 +42,1960,3,3.772872,2.56424,0,0,0 +43,1960,4,3.770009,3.580948,0,0,0 +44,1961,1,3.359749,2.809913,0,0,0 +45,1961,2,2.440787,2.635187,0,0,0 +46,1961,3,2.682876,2.172471,0,0,0 +47,1961,4,4.210082,2.68386,0,0,0 +48,1962,1,3.215831,3.551058,0,0,0 +49,1962,2,2.501961,2.281018,0,0,0 +50,1962,3,2.597237,2.286959,0,0,0 +51,1962,4,2.865064,2.572783,0,0,0 +52,1963,1,1.27064,2.677956,0,0,0 +53,1963,2,-0.23313,1.511573,0,0,0 +54,1963,3,0.276246,1.169244,0,0,0 +55,1963,4,2.197587,2.029432,0,0,0 +56,1964,1,3.4989,3.027459,0,0,0 +57,1964,2,2.577512,3.143262,0,0,0 +58,1964,3,3.582812,2.093742,0,0,0 +59,1964,4,3.0313,3.192262,0,0,0 +60,1965,1,2.467222,2.353064,0,0,0 +61,1965,2,2.161508,2.260144,0,0,0 +62,1965,3,2.460806,2.244168,0,0,0 +63,1965,4,3.291564,2.538462,0,0,0 +64,1966,1,3.637327,2.952329,0,0,0 +65,1966,2,2.015331,2.85753,0,0,0 +66,1966,3,3.386468,1.674466,0,0,0 +67,1966,4,2.153601,3.258153,0,0,0 +68,1967,1,2.037476,1.783801,0,0,0 +69,1967,2,2.115952,2.291254,0,0,0 +70,1967,3,1.352658,2.308358,0,0,0 +71,1967,4,1.847239,1.767768,0,0,0 +72,1968,1,1.741011,2.40798,0,0,0 +73,1968,2,2.28343,2.089385,0,0,0 +74,1968,3,3.006313,2.522133,0,0,0 +75,1968,4,4.314375,2.768106,0,0,0 +76,1969,1,3.718064,3.37106,0,0,0 +77,1969,2,2.029417,2.471187,0,0,0 +78,1969,3,1.500418,1.651553,0,0,0 +79,1969,4,2.249069,1.942538,0,0,0 +80,1970,1,2.751434,2.566664,0,0,0 +81,1970,2,4.149486,2.574459,0,0,0 +82,1970,3,4.793702,3.339428,0,0,0 +83,1970,4,2.970161,3.215612,0,0,0 +84,1971,1,1.535665,1.806844,0,0,0 +85,1971,2,-0.690842,1.616034,0,0,0 +86,1971,3,0.372726,0.611575,0,0,0 +87,1971,4,1.280042,2.159702,0,0,0 +88,1972,1,1.981304,2.213886,0,0,0 +89,1972,2,2.909937,2.379235,0,0,0 +90,1972,3,3.050076,2.747067,0,0,0 +91,1972,4,2.641661,2.490161,0,0,0 +92,1973,1,2.621315,2.202678,0,0,0 +93,1973,2,2.422996,2.352931,0,0,0 +94,1973,3,2.613121,2.20254,0,0,0 +95,1973,4,-0.631347,2.407679,0,0,0 +96,1974,1,0.308662,0.15372,0,0,0 +97,1974,2,2.14549,2.110661,0,0,0 +98,1974,3,2.530416,2.769133,0,0,0 +99,1974,4,2.333179,2.346634,0,0,0 +100,1975,1,,2.143652,0.954284,0.273289,4.014014 +101,1975,2,,2.102544,1.146611,-0.144772,4.34986 +102,1975,3,,2.136329,1.147121,-0.111987,4.384644 +103,1975,4,,2.16265,1.161904,-0.11464,4.43994 +104,1976,1,,2.161075,1.167047,-0.126294,4.448444 +105,1976,2,,2.147009,1.167047,-0.140361,4.434379 +106,1976,3,,2.135191,1.16758,-0.153225,4.423606 +107,1976,4,,2.12856,1.167729,-0.160146,4.417266 +108,1977,1,,2.123977,1.167729,-0.16473,4.412685 +109,1977,2,,2.11883,1.167748,-0.169914,4.407575 +110,1977,3,,2.112729,1.167753,-0.176024,4.401481 +111,1977,4,,2.106298,1.167753,-0.182456,4.395051 +112,1978,1,,2.099996,1.167753,-0.188758,4.388751 +113,1978,2,,2.093869,1.167753,-0.194886,4.382623 +114,1978,3,,2.087793,1.167753,-0.200962,4.376548 +115,1978,4,,2.081689,1.167753,-0.207066,4.370444 +116,1979,1,,2.075554,1.167753,-0.213201,4.364308 +117,1979,2,,2.069411,1.167753,-0.219344,4.358165 +118,1979,3,,2.063273,1.167753,-0.225481,4.352028 +119,1979,4,,2.057142,1.167753,-0.231613,4.345896 +120,1980,1,,2.051011,1.167753,-0.237744,4.339766 +121,1980,2,,2.044879,1.167753,-0.243875,4.333634 +122,1980,3,,2.038747,1.167753,-0.250008,4.327501 +123,1980,4,,2.032614,1.167753,-0.256141,4.321369 +124,1981,1,,2.026481,1.167753,-0.262273,4.315236 diff --git a/statsmodels/tsa/tests/results/results_arima_forecasts.csv b/statsmodels/tsa/tests/results/results_arima_forecasts.csv new file mode 100644 index 0000000..1bacdf9 --- /dev/null +++ b/statsmodels/tsa/tests/results/results_arima_forecasts.csv @@ -0,0 +1,65 @@ +year,quarter,fc111nc,fc111ncse,fc111ncconf1,fc111ncconf2,fc111ncdyn,fc111ncdynse,fc111ncdynconf1,fc111ncdynconf2,fc111c,fc111cse,fc111cconf1,fc111cconf2,fc111cdyn,fc111cdynse,fc111cdynconf1,fc111cdynconf2,fc211nc,fc211ncse,fc211ncconf1,fc211ncconf2,fc211ncdyn,fc211ncdynse,fc211ncdynconf1,fc211ncdynconf2,fc211c,fc211cse,fc211cconf1,fc211cconf2,fc211cdyn,fc211cdynse,fc211cdynconf1,fc211ncdynconf2,fc111c_css,fc111cse_css,fc111cconf1_css,fc111cconf2_css,fc111cdyn_css,fc111cdynse_css,fc111cdynconf1_css,fc111cdynconf2_css,fc112c_css,fc112cse_css,fc112cconf1_css,fc112cconf2_css,fc112cdyn_css,fc112cdynse_css,fc112cdynconf1_css,fc112cdynconf2_css +2000,1,170.2233243826,,,,170.2233243826,0.8056,168.644,171.802,170.2864191564,,,,170.2864191564,0.7999,168.719,171.854,170.2746065512,,,,170.2746065512,0.7953,168.716,171.833,170.2895305662,,,,170.2895305662,0.7925,168.736,171.843,170.304,,,,170.304,0.7972,168.742,171.867,170.154,,,,170.154,0.8259,168.535,171.772 +2000,2,171.9184524902,,,,171.1377283933,1.23,168.727,173.549,171.9837202702,,,,171.2664932271,1.2305,168.855,173.678,172.0019713519,,,,171.2023842717,1.291,168.672,173.733,172.0147981675,,,,171.2401153995,1.2804,168.731,173.75,171.99,,,,171.309,1.211,168.935,173.682,172.134,,,,171.103,1.4083,168.343,173.863 +2000,3,173.828787093,,,,172.0432982132,1.6186,168.871,175.216,173.892520498,,,,172.2406036174,1.6254,169.055,175.426,173.897011282,,,,172.1176130768,1.7143,168.758,175.478,173.9104306451,,,,172.1817815353,1.698,168.854,175.51,173.888,,,,172.313,1.5831,169.21,175.416,173.722,,,,171.978,1.8547,168.343,175.613 +2000,4,175.0288317109,,,,172.9401191906,1.9993,169.021,176.859,175.0750500309,,,,173.2091088061,2.0093,169.271,177.147,174.9780464837,,,,173.0268876834,2.1027,168.906,177.148,174.9987913625,,,,173.1198404087,2.0819,169.039,177.2,175.08,,,,173.318,1.9403,169.515,177.121,174.89,,,,172.904,2.1881,168.616,177.193 +2001,1,176.8057511331,,,,173.8282758494,2.3815,169.161,178.496,176.8460409347,,,,174.1723457236,2.3897,169.489,178.856,176.823803435,,,,173.9314905347,2.4735,169.084,178.779,176.837192481,,,,174.0552845768,2.4481,169.257,178.854,176.845,,,,174.323,2.2912,169.833,178.814,176.748,,,,173.795,2.4921,168.911,178.679 +2001,2,177.5317122,,,,174.7078518968,2.7692,169.28,180.135,177.5487445729,,,,175.1306310477,2.7691,169.703,180.558,177.4100697987,,,,174.8316846814,2.8356,169.274,180.389,177.4314962031,,,,174.9883502198,2.8046,169.491,180.485,177.568,,,,175.328,2.6392,170.156,180.501,177.127,,,,174.711,2.7534,169.314,180.107 +2001,3,178.5005259429,,,,175.5789302315,3.1643,169.377,181.781,178.5075160891,,,,176.0842624201,3.1483,169.914,182.255,178.4434523593,,,,175.7275374931,3.194,169.467,181.988,178.4577307847,,,,175.9191394228,3.1554,169.735,182.104,178.535,,,,176.334,2.9858,170.482,182.186,178.473,,,,175.609,2.998,169.733,181.485 +2001,4,178.551424957,,,,176.4415929509,3.5677,169.449,183.434,178.5405940261,,,,177.0335195914,3.5276,170.12,183.947,178.4127628861,,,,176.6190787111,3.5515,169.658,183.58,178.431638159,,,,176.8477289245,3.503,169.982,183.713,178.594,,,,177.34,3.3315,170.81,183.869,178.103,,,,176.519,3.2202,170.207,182.831 +2002,1,178.5113144309,,,,177.2959213597,3.9799,169.495,185.096,178.4950101925,,,,177.9786654965,3.9067,170.322,185.636,178.4280846262,,,,177.5063307758,3.91,169.843,185.17,178.4424347618,,,,177.7741891719,3.8486,170.231,185.317,178.567,,,,178.345,3.6766,171.139,185.551,178.58,,,,177.421,3.4306,170.697,184.145 +2002,2,180.2247478027,,,,178.1419959768,4.4009,169.516,186.768,180.2361498037,,,,178.9199472648,4.2853,170.521,187.319,180.3880488337,,,,178.3893146464,4.2706,170.019,186.76,180.384875915,,,,178.6985877074,4.1932,170.48,186.917,180.28,,,,179.351,4.021,171.47,187.232,180.428,,,,178.329,3.6271,171.22,185.438 +2002,3,180.8812555147,,,,178.9798965432,4.8306,169.512,188.448,180.8929359533,,,,179.8575971709,4.663,170.718,188.997,180.8779742943,,,,179.2680509174,4.6342,170.185,188.351,180.8883836647,,,,179.6209898179,4.5371,170.728,188.514,180.941,,,,180.357,4.3645,171.803,188.912,180.712,,,,179.232,3.8146,171.756,186.709 +2002,4,182.1217530645,,,,179.8097020298,5.2691,169.483,190.137,182.1440794946,,,,180.7918335272,5.0394,170.915,190.669,182.1982416071,,,,180.1425600339,5.0013,170.34,189.945,182.2033611924,,,,180.5414587027,4.8808,170.975,190.108,182.182,,,,181.364,4.707,172.138,190.589,182.352,,,,180.139,3.9926,172.313,187.964 +2003,1,183.5863851269,,,,180.6314906442,5.7159,169.428,191.835,183.6172936436,,,,181.7228615235,5.4142,171.111,192.334,183.6677376966,,,,181.0128623329,5.3723,170.483,191.542,183.6730872079,,,,181.4600555571,5.2243,171.221,191.699,183.644,,,,182.37,5.0481,172.476,192.264,183.513,,,,181.043,4.1635,172.883,189.204 +2003,2,184.1174433192,,,,181.4453398387,6.171,169.35,193.54,184.138603356,,,,182.6508740151,5.787,171.308,193.993,184.0698585717,,,,181.8789780516,5.7474,170.614,193.144,184.0850064378,,,,182.376839639,5.5676,171.464,193.289,184.178,,,,183.376,5.3878,172.817,193.936,184.023,,,,181.949,4.3273,173.468,190.43 +2003,3,184.5443919305,,,,182.251326317,6.6341,169.249,195.254,184.561043527,,,,183.5760522653,6.1576,171.507,195.645,184.5149896099,,,,182.7409273298,6.1268,170.733,194.749,184.5290257015,,,,183.2918683299,5.9109,171.707,194.877,184.611,,,,184.383,5.7256,173.161,195.605,184.485,,,,182.854,4.4853,174.063,191.645 +2003,4,185.790913924,,,,183.0495260422,7.1048,169.124,196.975,185.8194914079,,,,184.4985666411,6.5257,171.708,197.289,185.879208987,,,,183.5987302099,6.5106,170.838,196.359,185.885307579,,,,184.2051971955,6.2541,171.947,196.463,185.858,,,,185.39,6.0616,173.509,197.27,185.991,,,,183.76,4.6378,174.67,192.85 +2004,1,187.2605858834,,,,183.840014243,7.583,168.978,198.702,187.2983369795,,,,185.4185772689,6.8911,171.912,198.925,187.3504459251,,,,184.4524066383,6.8989,170.931,197.974,187.3573082078,,,,185.1168800421,6.5971,172.187,198.047,187.324,,,,186.397,6.3954,173.862,198.931,187.266,,,,184.665,4.7856,175.285,194.044 +2004,2,188.3727424216,,,,184.6228654218,8.0684,168.809,200.437,188.4084484474,,,,186.3362346499,7.2535,172.12,200.553,188.3934156532,,,,185.3019764651,7.2916,171.011,199.593,188.4057130567,,,,186.026968973,6.9399,172.425,199.629,188.434,,,,187.403,6.727,174.219,200.588,188.368,,,,185.57,4.9288,175.91,195.231 +2004,3,190.1751707887,,,,185.3981533608,8.5607,168.619,202.177,190.217596201,,,,187.2516802385,7.6128,172.331,202.173,190.2660090321,,,,186.1474594451,7.6889,171.078,201.217,190.2727541662,,,,186.9355144424,7.2823,172.662,201.209,190.228,,,,188.41,7.0562,174.581,202.24,190.264,,,,186.476,5.0681,176.542,196.409 +2004,4,191.9608597652,,,,186.1659511297,9.0598,168.409,203.923,192.0017457862,,,,188.1650469862,7.9689,172.546,203.784,192.0082426728,,,,186.9888752382,8.0906,171.132,202.846,192.0172722694,,,,187.8425653072,7.6243,172.899,202.786,192.004,,,,189.418,7.3829,174.947,203.888,191.856,,,,187.381,5.2036,177.182,197.58 +2005,1,192.9249100574,,,,186.9263310921,9.5653,168.179,205.674,192.9483784061,,,,189.076459853,8.3216,172.766,205.387,192.8516392196,,,,187.8262434093,8.4968,171.173,204.48,192.867884817,,,,188.7481688778,7.9659,173.135,204.361,192.964,,,,190.425,7.7069,175.32,205.53,192.672,,,,188.286,5.3357,177.828,198.744 +2005,2,195.0485996347,,,,187.6793649125,10.077,167.929,207.43,195.0761539867,,,,189.9860362873,8.6709,172.991,206.981,195.1215629644,,,,188.6595834296,8.9073,171.202,206.118,195.1247041843,,,,189.6523709671,8.3068,173.371,205.933,195.076,,,,191.432,8.0282,175.697,207.167,195.149,,,,189.192,5.4645,178.481,199.902 +2005,3,195.8829345899,,,,188.425123563,10.5947,167.66,209.19,195.8888528366,,,,190.8938866775,9.0167,173.222,208.566,195.769454439,,,,189.4889146764,9.3223,171.218,207.76,195.7841430678,,,,190.5552159377,8.6471,173.607,207.503,195.907,,,,192.439,8.3467,176.08,208.798,195.321,,,,190.097,5.5904,179.14,201.054 +2005,4,200.881551968,,,,189.1636773301,11.1182,167.372,210.955,200.9296590393,,,,191.8001147769,9.3588,173.457,210.143,201.2531803919,,,,190.3142564339,9.7415,171.221,209.407,201.2283148262,,,,191.4567467481,8.9866,173.843,209.07,200.869,,,,193.447,8.6623,176.469,210.424,201.704,,,,191.002,5.7136,179.804,202.201 +2006,1,200.8374966075,,,,189.8950958213,11.6472,167.067,212.723,200.8202472437,,,,192.7048181018,9.6974,173.698,211.711,200.4617908111,,,,191.1356278936,10.165,171.212,211.059,200.4879862602,,,,192.3570049969,9.3252,174.08,210.634,200.822,,,,194.454,8.975,176.863,212.045,198.987,,,,191.907,5.8341,180.473,203.342 +2006,2,202.1024666878,,,,190.6194479714,12.1817,166.744,214.495,202.0675124183,,,,193.6080883069,10.0323,173.945,213.271,201.9885761817,,,,191.9530481544,10.5927,171.192,212.714,201.9892792336,,,,193.256030966,9.663,174.317,212.195,202.082,,,,195.462,9.2848,177.264,213.66,202.774,,,,192.813,5.9522,181.147,204.479 +2006,3,204.1807964789,,,,191.3368020496,12.7213,166.404,216.27,204.1450996188,,,,194.5100115376,10.3635,174.198,214.822,204.179541508,,,,192.7665362236,11.0246,171.159,214.374,204.1674660761,,,,194.1538636621,9.9997,174.555,213.753,204.15,,,,196.469,9.5916,177.67,215.268,203.062,,,,193.718,6.068,181.825,205.611 +2006,4,203.0157854602,,,,192.0472256651,13.2659,166.046,218.048,202.9319404185,,,,195.410668761,10.6911,174.457,216.365,202.6394746314,,,,193.5761110169,11.4604,171.114,216.038,202.6516262814,,,,195.0505408572,10.3355,174.793,215.308,203.003,,,,197.477,9.8954,178.082,216.872,202.726,,,,194.623,6.1816,182.508,206.739 +2007,1,204.7648391013,,,,192.7507857741,13.8154,165.673,219.828,204.7053158681,,,,196.3101360771,11.015,174.721,217.899,204.864868405,,,,194.3817913592,11.9003,171.058,217.706,204.8390307301,,,,195.9460991278,10.67,175.033,216.859,204.754,,,,198.485,10.1962,178.5,218.469,204.658,,,,195.529,6.2932,183.194,207.863 +2007,2,207.2769566127,,,,193.447548686,14.3694,165.284,221.611,207.2414456805,,,,197.2084850116,11.3352,174.992,219.425,207.4265796922,,,,195.1835959846,12.3441,170.99,219.378,207.3960909405,,,,196.8405738924,11.0034,175.274,218.407,207.258,,,,199.492,10.494,178.924,220.06,207.329,,,,196.434,6.4029,183.885,208.983 +2007,3,208.6912331435,,,,194.1375800696,14.928,164.879,223.396,208.6492720137,,,,198.105782791,11.6518,175.269,220.943,208.6537586221,,,,195.9815435372,12.7917,170.91,221.053,208.6352773018,,,,197.7339994486,11.3356,175.517,219.951,208.67,,,,200.5,10.7888,179.355,221.646,208.115,,,,197.339,6.5107,184.579,210.1 +2007,4,210.5410872839,,,,194.8209449591,15.4908,164.459,225.182,210.500111343,,,,199.0020926004,11.9647,175.552,222.453,210.5576053658,,,,196.7756525715,13.2432,170.819,222.732,210.532355268,,,,198.626409008,11.6665,175.761,221.492,210.514,,,,201.508,11.0805,179.791,223.225,210.516,,,,198.245,6.6167,185.276,211.213 +2008,1,214.1899253565,,,,195.4977077604,16.0578,164.025,226.971,214.1698597159,,,,199.8974738271,12.2741,175.841,223.954,214.3829696128,,,,197.5659415525,13.6983,170.718,224.414,214.3413261881,,,,199.5178347313,11.996,176.006,223.03,214.14,,,,202.516,11.3693,180.232,224.799,213.999,,,,199.15,6.721,185.977,212.323 +2008,2,215.6458854232,,,,196.1679322573,16.6289,163.576,228.76,215.5949327403,,,,200.7919822885,12.58,176.136,225.448,215.4886503677,,,,198.3524288567,14.1572,170.605,226.1,215.4686267913,,,,200.4083077608,12.3242,176.253,224.563,215.587,,,,203.524,11.6551,180.68,226.367,214.828,,,,200.055,6.8238,186.681,213.43 +2008,3,220.6987299825,,,,196.8316816174,17.2038,163.113,230.55,220.6741351366,,,,201.6856704468,12.8823,176.437,226.935,220.9632787766,,,,199.1351327719,14.6196,170.481,227.789,220.9055597068,,,,201.2978582533,12.6509,176.503,226.093,220.602,,,,204.532,11.9379,181.134,227.93,221.009,,,,200.961,6.925,187.388,214.534 +2008,4,218.3717504048,,,,197.4890183978,17.7824,162.636,232.342,218.2426223953,,,,202.5785876106,13.1812,176.744,228.413,217.6667975573,,,,199.9140714981,15.0855,170.347,229.481,217.6747091231,,,,202.186515411,12.9761,176.754,227.619,218.294,,,,205.54,12.2178,181.593,229.486,215.84,,,,201.866,7.0248,188.098,215.634 +2009,1,212.6894332539,,,,198.1400045515,18.3646,162.146,234.134,212.4740916853,,,,203.4707801248,13.4766,177.057,229.884,211.8959992321,,,,200.6892631477,15.5549,170.202,231.176,211.9059766187,,,,203.0743075115,13.2999,177.007,229.142,212.678,,,,206.548,12.4947,182.059,231.037,212.326,,,,202.771,7.1232,188.81,216.733 +2009,2,213.1786192035,,,,198.7847014328,18.9502,161.643,235.926,213.0392637652,,,,204.3622915483,13.7687,177.376,231.348,213.4572131423,,,,201.460725746,16.0277,170.047,232.874,213.3903799208,,,,203.9612619376,13.6221,177.262,230.66,213.202,,,,207.556,12.7688,182.529,232.582,213.599,,,,203.677,7.2203,189.525,217.828 +2009,3,215.1701293805,,,,199.4231698032,19.5392,161.127,237.719,215.1095875387,,,,205.2531628216,14.0574,177.701,232.805,215.5892010821,,,,202.2284772315,16.5038,169.882,234.575,215.5198428062,,,,204.847405205,13.9428,177.52,232.175,215.208,,,,208.564,13.04,183.006,234.122,215.75,,,,204.582,7.316,190.243,218.921 +2009,4,217.2661592661,0.8056,215.687,218.845,200.0554698373,20.1314,160.599,239.512,217.2554734364,0.7999,215.688,218.823,206.1434324244,14.3429,178.032,234.255,217.5930744392,0.7953,216.034,219.152,202.9925354565,16.9832,169.706,236.279,217.5372491403,0.7925,215.984,219.091,205.7327629904,14.2619,177.78,233.686,217.308,0.7972,215.745,218.871,209.572,13.3085,183.488,235.656,217.422,0.8259,215.804,219.041,205.487,7.4105,190.963,220.012 +2010,1,218.1388055236,1.23,215.728,220.55,200.6816611283,20.7267,160.058,241.305,218.1265713231,1.2305,215.715,220.538,207.0331365232,14.6251,178.368,235.698,218.6612703593,1.291,216.131,221.192,203.7529181874,17.4658,169.521,237.985,218.5527257447,1.2804,216.043,221.062,206.6173601574,14.5794,178.042,235.192,218.236,1.211,215.862,220.609,210.58,13.5741,183.975,237.185,218.346,1.4083,215.585,221.106,206.393,7.5039,191.685,221.1 +2010,2,219.003021018,1.6186,215.831,222.175,201.3018026937,21.3249,159.506,243.098,218.9982561241,1.6254,215.813,222.184,207.9223091109,14.9042,178.711,237.134,219.6986031575,1.7143,216.339,223.059,204.5096431051,17.9516,169.325,239.694,219.5410430132,1.698,216.213,222.869,207.5012207828,14.8952,178.307,236.695,219.168,1.5831,216.065,222.271,211.588,13.837,184.468,238.708,219.238,1.8547,215.603,222.874,207.298,7.596,192.41,222.186 +2010,3,219.8588872002,1.9993,215.94,223.778,201.9159529807,21.9261,158.942,244.89,219.8704925599,2.0093,215.932,223.809,208.8109821365,15.1802,179.058,238.564,220.7260098869,2.1027,216.605,224.847,205.2627278056,18.4404,169.12,241.405,220.5214492212,2.0819,216.441,224.602,208.3843681813,15.2095,178.574,238.194,220.104,1.9403,216.301,223.907,212.597,14.0972,184.967,240.226,220.152,2.1881,215.864,224.441,208.203,7.6871,193.137,223.27 +2010,4,220.706484734,2.3815,216.039,225.374,202.524169872,22.5299,158.366,246.682,220.7432474715,2.3897,216.06,225.427,209.6991856291,15.4531,179.412,239.987,221.7475271771,2.4735,216.9,226.595,206.0121897999,18.9323,168.905,243.119,221.4974064825,2.4481,216.699,226.296,209.2668249293,15.522,178.844,239.689,221.044,2.2912,216.553,225.535,213.605,14.3547,185.47,241.739,221.052,2.4921,216.167,225.936,209.109,7.7771,193.866,224.351 +2011,1,221.545893504,2.7692,216.118,226.973,203.126510691,23.1365,157.78,248.473,221.6164896931,2.7691,216.189,227.044,210.5869478123,15.723,179.771,241.403,222.7639487392,2.8356,217.206,228.322,206.7580465151,19.4272,168.681,244.835,222.4696165704,2.8046,216.973,227.967,210.1486128889,15.8329,179.117,241.18,221.988,2.6392,216.815,227.161,214.613,14.6096,185.979,243.247,221.961,2.7534,216.565,227.358,210.014,7.8661,194.597,225.431 +2011,2,222.3771926233,3.1643,216.175,228.579,203.7230322072,23.7456,157.183,250.264,222.4901899324,3.1483,216.32,228.661,211.4742952135,15.9899,180.135,242.814,223.775445946,3.194,217.515,230.036,207.5003152945,19.9251,168.448,246.553,223.4382960718,3.1554,217.254,229.623,211.0297532299,16.1421,179.392,242.668,222.935,2.9858,217.083,228.787,215.621,14.8619,186.493,244.75,222.864,2.998,216.988,228.74,210.919,7.9541,195.33,226.509 +2011,3,223.2004604401,3.5677,216.208,230.193,204.3137906419,24.3571,156.575,252.053,223.3643206578,3.5276,216.45,230.278,212.3612527653,16.2539,180.504,244.218,224.7820706652,3.5515,217.821,231.743,208.2390133976,20.4258,168.205,248.273,224.4035738561,3.503,217.538,231.269,211.9102664522,16.4495,179.67,244.151,223.886,3.3315,217.357,230.416,216.63,15.1116,187.011,246.248,223.771,3.2202,217.459,230.082,211.825,8.0411,196.064,227.585 +2011,4,224.0157745462,3.9799,216.215,231.816,204.8988416729,24.9711,155.956,253.841,224.2388559925,3.9067,216.582,231.896,213.2478439017,16.5152,180.879,245.617,225.7838517429,3.91,218.12,233.447,208.9741580012,20.9293,167.954,249.995,225.3655605905,3.8486,217.822,232.909,212.7901724066,16.7553,179.95,245.63,224.84,3.6766,217.634,232.046,217.638,15.3588,187.535,247.741,224.675,3.4306,217.951,231.399,212.73,8.1272,196.801,228.659 +2012,1,224.8232117835,4.4009,216.198,233.449,205.4782404403,25.5873,155.328,255.628,225.1137716155,4.2853,216.715,233.513,214.134090648,16.7736,181.258,247.01,226.7808135168,4.2706,218.411,235.151,209.7057661993,21.4356,167.693,251.719,226.3243609722,4.1932,218.106,234.543,213.6694903158,17.0594,180.234,247.105,225.797,4.021,217.916,233.678,218.646,15.6036,188.064,249.229,225.581,3.6271,218.472,232.69,213.635,8.2124,197.539,229.731 +2012,2,225.6228482515,4.8306,216.155,235.091,206.0520415515,26.2056,154.69,257.414,225.9890446675,4.663,216.85,235.128,215.0200137057,17.0293,181.643,248.397,227.7729793693,4.6342,218.69,236.856,210.4338550039,21.9446,167.423,253.444,227.2800759537,4.5371,218.387,236.173,214.5482387938,17.3618,180.52,248.577,226.757,4.3645,218.202,235.311,219.654,15.8459,188.597,250.712,226.486,3.8146,219.009,233.962,214.541,8.2967,198.279,230.802 +2012,3,226.4147593147,5.2691,216.088,236.742,206.6202990863,26.8261,154.042,259.198,226.8646536632,5.0394,216.988,236.742,215.9056325317,17.2823,182.033,249.778,228.7603724093,5.0013,218.958,238.563,211.1584413449,22.4563,167.145,255.172,228.2328032167,4.8808,218.667,237.799,215.4264358655,17.6624,180.809,250.044,227.719,4.707,218.494,236.945,220.663,16.0859,189.135,252.191,227.392,3.9926,219.566,235.217,215.446,8.3802,199.021,231.871 +2012,4,227.1990196094,5.7159,215.996,238.402,207.183066602,27.4486,153.385,260.981,227.740578409,5.4142,217.129,238.352,216.7909654136,17.5327,182.428,251.154,229.7430156036,5.3723,219.213,240.273,211.8795420709,22.9706,166.858,256.901,229.1826373376,5.2243,218.943,239.422,216.304098985,17.9613,181.101,251.508,228.684,5.0481,218.79,238.578,221.671,16.3234,189.678,253.665,228.297,4.1635,220.136,236.457,216.351,8.4628,199.764,232.938 +2013,1,227.9757030506,6.171,215.881,240.071,207.7403971383,28.073,152.718,262.762,228.6167999251,5.787,217.274,239.959,217.6760295396,17.7805,182.827,252.525,230.7209318028,5.7474,219.456,241.986,212.5971739494,23.4874,166.563,258.632,230.1296698969,5.5676,219.217,241.042,217.1812450544,18.2585,181.395,252.967,229.651,5.3878,219.091,240.211,222.68,16.5587,190.225,255.134,229.202,4.3273,220.721,237.683,217.257,8.5447,200.509,234.004 +2013,2,228.7448828395,6.6341,215.742,241.747,208.2923432229,28.6993,152.043,264.542,229.4933003724,6.1576,217.425,241.562,218.5608410646,18.0257,183.231,253.891,231.6941437462,6.1268,219.686,243.702,213.3113536672,24.0068,166.259,260.364,231.0739895756,5.9109,219.489,242.659,218.0578904402,18.5539,181.693,254.423,230.621,5.7256,219.399,241.843,223.688,16.7917,190.777,256.599,230.107,4.4853,221.316,238.898,218.162,8.6257,201.256,235.068 +2013,3,229.50663147,7.1048,215.581,243.432,208.8389568756,29.3273,151.358,266.319,230.3700629844,6.5257,217.58,243.16,219.4454151726,18.2686,183.64,255.251,232.6626740638,6.5106,219.902,245.423,214.0220978309,24.5287,165.947,262.097,232.0156822477,6.2541,219.758,244.274,218.9340509913,18.8477,181.993,255.875,231.592,6.0616,219.712,243.473,224.696,17.0225,191.333,258.06,231.013,4.6378,221.923,240.103,219.067,8.706,202.004,236.131 +2013,4,230.2610207356,7.583,215.399,245.123,209.3802896139,29.957,150.666,268.095,231.2470720022,6.8911,217.741,244.753,220.3297661348,18.5089,184.053,256.607,233.6265452764,6.8989,220.105,247.148,214.7294229673,25.053,165.626,263.832,232.9548310688,6.5971,220.025,245.885,219.8097420547,19.1397,182.297,257.323,232.566,6.3954,220.031,245.101,225.705,17.2511,191.893,259.516,231.918,4.7856,222.538,241.298,219.972,8.7856,202.753,237.192 +2014,1,231.0081217362,8.0684,215.194,246.822,209.9163924575,30.5884,149.964,269.869,232.1243126143,7.2535,217.908,246.341,221.2139073645,18.747,184.471,257.957,234.5857797965,7.2916,220.294,248.877,215.4333455235,25.5797,165.298,265.569,233.8915165624,6.9399,220.29,247.493,220.6849784915,19.43,182.603,258.767,233.542,6.727,220.357,246.726,226.713,17.4776,192.458,260.969,232.823,4.9288,223.163,242.484,220.878,8.8645,203.504,238.252 +2014,2,231.7480048848,8.5607,214.969,248.527,210.4473159331,31.2213,149.255,271.64,233.0017708995,7.6128,218.081,247.923,222.0978514689,18.9827,184.893,259.303,235.5403999291,7.6889,220.471,250.61,216.1338818676,26.1088,164.962,267.306,234.8258167029,7.2823,220.553,249.099,221.5597746927,19.7186,182.912,260.208,234.519,7.0562,220.689,248.349,227.722,17.7019,193.027,262.417,233.729,5.0681,223.795,243.662,221.783,8.9426,204.256,239.31 +2014,3,232.480739914,9.0598,214.724,250.238,210.9731100793,31.8558,148.537,273.409,233.8794337734,7.9689,218.261,249.498,222.9816102973,19.2161,185.319,260.644,236.4904278715,8.0906,220.633,252.348,216.8310482889,26.6402,164.617,269.045,235.7578069968,7.6243,220.814,250.701,222.4341445934,20.0055,183.224,261.644,235.498,7.3829,221.028,249.968,228.73,17.9242,193.599,263.861,234.634,5.2036,224.435,244.833,222.688,9.0201,205.009,240.368 +2014,4,233.206395883,9.5653,214.459,251.954,211.4938244514,32.4916,147.811,275.176,234.7572889381,8.3216,218.447,251.067,223.8651949865,19.4472,185.749,261.981,237.4358857144,8.4968,220.783,254.089,217.5248609985,27.1738,164.265,270.785,236.6875605602,7.9659,221.075,252.3,223.3081016879,20.2907,183.539,263.077,236.479,7.7069,221.374,251.584,229.739,18.1444,194.176,265.301,235.539,5.3357,225.082,245.997,223.594,9.097,205.764,241.423 +2015,1,233.9250411836,10.077,214.175,253.676,212.0095081258,33.1288,147.078,276.941,235.6353248348,8.6709,218.641,252.63,224.7486160043,19.6762,186.184,263.313,238.3767954422,8.9073,220.919,255.835,218.2153361293,27.7096,163.905,272.525,237.6151481949,8.3068,221.334,253.896,224.1816590432,20.5741,183.857,264.506,237.461,8.0282,221.726,253.196,230.747,18.3627,194.757,266.737,236.445,5.4645,225.734,247.155,224.499,9.1731,206.52,242.478 +2015,2,234.6367435468,10.5947,213.872,255.402,212.5202097049,33.7673,146.338,278.703,236.5135305999,9.0167,218.841,254.186,225.6318831888,19.9031,186.623,264.641,239.3131789336,9.3223,221.042,257.585,218.9024897366,28.2477,163.538,274.267,238.5406384615,8.6471,221.593,255.489,225.0548293128,20.8559,184.178,265.932,238.445,8.3467,222.086,254.804,231.755,18.5789,195.341,268.17,237.35,5.5904,226.393,248.307,225.404,9.2487,207.277,243.532 +2015,3,235.3415700494,11.1182,213.55,257.133,213.0259773212,34.407,145.589,280.463,237.3918960223,9.3588,219.049,255.735,226.5150057872,20.1278,187.065,265.965,240.245057962,9.7415,221.152,259.338,219.5863377988,28.7878,163.163,276.009,239.4640977504,8.9866,221.851,257.077,225.9276247493,21.136,184.502,267.354,239.43,8.6623,222.452,256.408,232.764,18.7933,195.93,269.598,238.255,5.7136,227.057,249.454,226.31,9.3237,208.036,244.584 +2015,4,236.0395871201,11.6472,213.211,258.868,213.5268586427,35.0479,144.834,282.22,238.2704115052,9.6974,219.264,257.277,227.3979924905,20.3505,187.512,267.284,241.1724541961,10.165,221.249,261.096,220.2668962169,29.3301,162.781,277.753,240.3855903505,9.3252,222.108,258.663,226.800057218,21.4145,184.828,268.772,240.416,8.975,222.825,258.007,233.772,19.0058,196.522,271.023,239.161,5.8341,227.726,250.595,227.215,9.398,208.795,245.635 diff --git a/statsmodels/tsa/tests/results/results_arima_forecasts_all_css.csv b/statsmodels/tsa/tests/results/results_arima_forecasts_all_css.csv new file mode 100644 index 0000000..6e36d98 --- /dev/null +++ b/statsmodels/tsa/tests/results/results_arima_forecasts_all_css.csv @@ -0,0 +1,231 @@ +fc,fcdyn,fcdyn2,fcdyn3,fcdyn4,orig_index,year,quarter,,,,,, +NA,NA,NA,NA,NA,0,1959,1,,,,,, +NA,NA,NA,NA,NA,1,1959,2,,,,,, +NA,NA,NA,NA,NA,2,1959,3,,,,,, +NA,NA,NA,NA,NA,3,1959,4,,,,,, +NA,NA,NA,NA,NA,4,1960,1,,,,,, +29.7575819218,29.7575819218,NA,NA,NA,5,1960,2,,,,,, +29.6889197051,29.9572171332,NA,NA,NA,6,1960,3,,,,,, +29.9626330839,30.1680969792,NA,NA,NA,7,1960,4,,,,,, +29.9910430709,30.3882531469,NA,NA,NA,8,1961,1,,,,,, +29.9504240714,30.6079779559,NA,NA,NA,9,1961,2,,,,,, +30.0841410663,30.8285844839,NA,NA,NA,10,1961,3,,,,,, +30.1048255382,31.0506468204,NA,NA,NA,11,1961,4,,,,,, +30.1800344216,31.2730827044,NA,NA,NA,12,1962,1,,,,,, +30.3714349362,31.4957681649,NA,NA,NA,13,1962,2,,,,,, +30.3295604942,31.7187987306,NA,NA,NA,14,1962,3,,,,,, +30.5486434278,31.9420751464,NA,NA,NA,15,1962,4,,,,,, +30.5522722863,32.1655550591,NA,NA,NA,16,1963,1,,,,,, +30.6061743416,32.3892452608,NA,NA,NA,17,1963,2,,,,,, +30.8498630373,32.6131379091,NA,NA,NA,18,1963,3,,,,,, +30.8580075917,32.837225959,NA,NA,NA,19,1963,4,,,,,, +31.1110006502,33.0615091134,NA,NA,NA,20,1964,1,,,,,, +31.045159744,33.28598686,NA,NA,NA,21,1964,2,,,,,, +31.1522012578,33.5106583813,NA,NA,NA,22,1964,3,,,,,, +31.2328229409,33.7355235973,NA,NA,NA,23,1964,4,,,,,, +31.4151846198,33.9605825887,31.4151846198,NA,NA,24,1965,1,,,,,, +31.4996864174,34.1858353991,31.5451621646,NA,NA,25,1965,2,,,,,, +31.7379939232,34.411282142,31.6823961791,NA,NA,26,1965,3,,,,,, +31.7603857461,34.6369229685,31.8187238201,NA,NA,27,1965,4,,,,,, +32.0533148842,34.8627580301,31.9539331921,NA,NA,28,1966,1,,,,,, +32.4829850845,35.088787485,32.0898712134,NA,NA,29,1966,2,,,,,, +32.6081136012,35.3150114973,32.2260104566,NA,NA,30,1966,3,,,,,, +33.1082366398,35.5414302325,32.3621085756,NA,NA,31,1966,4,,,,,, +33.0256737089,35.7680438567,32.4983553035,NA,NA,32,1967,1,,,,,, +33.3102788967,35.9948525371,32.634744717,NA,NA,33,1967,2,,,,,, +33.5898710208,36.2218564413,32.7712370524,NA,NA,34,1967,3,,,,,, +33.9093400596,36.4490557371,32.9078459341,NA,NA,35,1967,4,,,,,, +34.3561409186,36.6764505927,33.044575937,NA,NA,36,1968,1,,,,,, +34.6307558557,36.9040411762,33.1814227831,NA,NA,37,1968,2,,,,,, +35.2106795469,37.1318276561,33.3183869295,NA,NA,38,1968,3,,,,,, +35.5711327549,37.3598102011,33.4554693153,NA,NA,39,1968,4,,,,,, +36.0080894273,37.5879889798,33.5926696993,NA,NA,40,1969,1,,,,,, +36.6606355815,37.8163641612,33.7299881027,NA,NA,41,1969,2,,,,,, +37.1360332408,38.0449359144,33.8674247253,NA,NA,42,1969,3,,,,,, +37.6751991393,38.2737044085,34.0049796551,NA,NA,43,1969,4,,,,,, +38.3005703403,38.5026698128,34.1426529764,NA,NA,44,1970,1,,,,,, +38.9079571589,38.7318322969,34.280444799,NA,NA,45,1970,2,,,,,, +39.2733991806,38.9611920304,34.4183552264,NA,NA,46,1970,3,,,,,, +39.8148885174,39.190749183,34.5563843583,NA,NA,47,1970,4,,,,,, +40.2915758461,39.4205039248,34.6945322972,NA,NA,48,1971,1,,,,,, +40.4225895126,39.6504564257,34.8327991459,NA,NA,49,1971,2,,,,,, +41.0185075749,39.880606856,34.9711850064,NA,NA,50,1971,3,,,,,, +41.2142853032,40.110955386,35.1096899812,NA,NA,51,1971,4,,,,,, +41.5594233571,40.3415021864,35.2483141727,NA,NA,52,1972,1,,,,,, +41.8323265312,40.5722474276,35.3870576838,NA,NA,53,1972,2,,,,,, +42.1305292337,40.8031912806,35.5259206169,NA,NA,54,1972,3,,,,,, +42.5580908985,41.0343339163,35.664903075,NA,NA,55,1972,4,,,,,, +43.0849626521,41.2656755057,35.8040051609,NA,NA,56,1973,1,,,,,, +44.2451877539,41.4972162202,35.9432269775,NA,NA,57,1973,2,,,,,, +44.6132865443,41.7289562311,36.082568628,NA,NA,58,1973,3,,,,,, +46.3671644035,41.96089571,36.2220302155,NA,NA,59,1973,4,,,,,, +47.4424883646,42.1930348285,36.3616118431,NA,NA,60,1974,1,,,,,, +48.9233461033,42.4253737585,36.5013136143,NA,NA,61,1974,2,,,,,, +50.0952378443,42.6579126721,36.6411356325,NA,NA,62,1974,3,,,,,, +51.9839926027,42.8906517412,36.7810780011,NA,NA,63,1974,4,,,,,, +53.1741129397,43.1235911382,36.9211408237,NA,NA,64,1975,1,,,,,, +53.8053193308,43.3567310356,37.0613242041,NA,NA,65,1975,2,,,,,, +54.8708705552,43.5900716059,37.2016282459,NA,NA,66,1975,3,,,,,, +55.6636550103,43.8236130218,37.3420530531,NA,NA,67,1975,4,,,,,, +56.6131925387,44.0573554562,37.4825987296,NA,NA,68,1976,1,,,,,, +56.7317375164,44.2912990822,37.6232653794,NA,NA,69,1976,2,,,,,, +57.8182142576,44.5254440728,37.7640531066,NA,NA,70,1976,3,,,,,, +58.6217341651,44.7597906015,37.9049620156,NA,NA,71,1976,4,,,,,, +59.4748652346,44.9943388417,38.0459922105,NA,NA,72,1977,1,,,,,, +60.9283178461,45.2290889671,38.1871437958,NA,NA,73,1977,2,,,,,, +61.5678685585,45.4640411513,38.3284168759,NA,NA,74,1977,3,,,,,, +62.4553462729,45.6991955683,38.4698115555,NA,NA,75,1977,4,,,,,, +63.5810874458,45.9345523923,38.6113279392,NA,NA,76,1978,1,,,,,, +64.8088487972,46.1701117973,38.7529661318,NA,NA,77,1978,2,,,,,, +66.574670652,46.4058739578,38.894726238,NA,NA,78,1978,3,,,,,, +68.1988791307,46.6418390483,39.0366083629,NA,NA,79,1978,4,,,,,, +69.6193084969,46.8780072435,39.1786126114,NA,NA,80,1979,1,,,,,, +71.9524515311,47.1143787182,39.3207390888,NA,NA,81,1979,2,,,,,, +74.4272972721,47.3509536473,39.4629879001,NA,NA,82,1979,3,,,,,, +76.6969861622,47.587732206,39.6053591507,NA,NA,83,1979,4,,,,,, +79.7626789774,47.8247145695,39.747852946,NA,NA,84,1980,1,,,,,, +82.7023745204,48.0619009134,39.8904693914,NA,NA,85,1980,2,,,,,, +84.1860735675,48.299291413,40.0332085926,NA,NA,86,1980,3,,,,,, +86.4851119863,48.5368862443,40.1760706551,NA,NA,87,1980,4,,,,,, +88.9600715276,48.774685583,40.3190556848,NA,NA,88,1981,1,,,,,, +90.7579294804,49.0126896051,40.4621637874,NA,NA,89,1981,2,,,,,, +93.3985342056,49.250898487,40.605395069,NA,NA,90,1981,3,,,,,, +95.0875939832,49.4893124048,40.7487496355,NA,NA,91,1981,4,,,,,, +95.9235330874,49.7279315351,40.8922275931,NA,NA,92,1982,1,,,,,, +96.3626559817,49.9667560544,41.0358290479,NA,NA,93,1982,2,,,,,, +99.2864179014,50.2057861397,41.1795541063,NA,NA,94,1982,3,,,,,, +99.2300903022,50.4450219678,41.3234028746,NA,NA,95,1982,4,,,,,, +99.0871118353,50.6844637159,41.4673754594,NA,NA,96,1983,1,,,,,, +100.0407065582,50.9241115611,41.6114719672,NA,NA,97,1983,2,,,,,, +100.8980464895,51.1639656808,41.7556925046,NA,NA,98,1983,3,,,,,, +102.0174890274,51.4040262527,41.9000371785,NA,NA,99,1983,4,,,,,, +103.4043476538,51.6442934544,42.0445060957,NA,NA,100,1984,1,,,,,, +104.5600649279,51.8847674638,42.1890993631,NA,NA,101,1984,2,,,,,, +105.2807647387,52.1254484588,42.3338170877,NA,NA,102,1984,3,,,,,, +106.3253569782,52.3663366176,42.4786593767,NA,NA,103,1984,4,,,,,, +106.737519722,52.6074321186,42.6236263374,NA,NA,104,1985,1,,,,,, +108.2602223172,52.8487351403,42.7687180769,NA,NA,105,1985,2,,,,,, +108.7043750169,53.0902458611,42.9139347027,NA,NA,106,1985,3,,,,,, +109.6292669028,53.33196446,43.0592763224,NA,NA,107,1985,4,,,,,, +111.10898105,53.5738911158,43.2047430434,NA,NA,108,1986,1,,,,,, +109.1417608292,53.8160260077,43.3503349735,NA,NA,109,1986,2,,,,,, +110.6312393076,54.0583693148,43.4960522204,NA,NA,110,1986,3,,,,,, +110.8711695399,54.3009212166,43.6418948921,NA,NA,111,1986,4,,,,,, +112.4611953035,54.5436818925,43.7878630964,NA,NA,112,1987,1,,,,,, +113.7619230684,54.7866515224,43.9339569414,NA,NA,113,1987,2,,,,,, +114.872703548,55.029830286,44.0801765353,NA,NA,114,1987,3,,,,,, +116.1264796487,55.2732183634,44.2265219863,NA,NA,115,1987,4,,,,,, +117.0443833366,55.5168159347,44.3729934028,NA,NA,116,1988,1,,,,,, +118.3229598189,55.7606231803,44.5195908931,NA,NA,117,1988,2,,,,,, +119.6236408891,56.0046402806,44.6663145657,NA,NA,118,1988,3,,,,,, +121.0829288907,56.2488674162,44.8131645293,NA,NA,119,1988,4,,,,,, +122.3744514495,56.493304768,44.9601408926,NA,NA,120,1989,1,,,,,, +124.4754231074,56.7379525169,45.1072437644,NA,NA,121,1989,2,,,,,, +125.7195119165,56.9828108439,45.2544732536,NA,NA,122,1989,3,,,,,, +126.5820105082,57.2278799304,45.4018294691,NA,NA,123,1989,4,,,,,, +128.983101501,57.4731599577,45.5493125201,NA,NA,124,1990,1,,,,,, +130.0960742545,57.7186511075,45.6969225157,NA,NA,125,1990,2,,,,,, +131.9460422306,57.9643535613,45.8446595651,NA,NA,126,1990,3,,,,,, +135.1435595139,58.2102675012,45.9925237778,NA,NA,127,1990,4,,,,,, +136.0043629578,58.4563931091,46.1405152632,NA,NA,128,1991,1,,,,,, +136.3782657949,58.7027305673,46.2886341308,NA,NA,129,1991,2,,,,,, +137.4870240118,58.949280058,46.4368804902,NA,NA,130,1991,3,,,,,, +138.3043143577,59.1960417638,46.5852544513,NA,NA,131,1991,4,,,,,, +139.5157104478,59.4430158674,46.7337561239,NA,NA,132,1992,1,,,,,, +140.5922877231,59.6902025515,46.8823856178,NA,NA,133,1992,2,,,,,, +141.6991245126,59.9376019992,47.0311430431,NA,NA,134,1992,3,,,,,, +142.9229713399,60.1852143935,47.18002851,NA,NA,135,1992,4,,,,,, +143.9878577919,60.4330399178,47.3290421285,NA,NA,136,1993,1,,,,,, +144.9709017333,60.6810787556,47.4781840091,NA,NA,137,1993,2,,,,,, +145.5666628207,60.9293310903,47.6274542622,NA,NA,138,1993,3,,,,,, +146.7653707636,61.1777971059,47.7768529981,NA,NA,139,1993,4,,,,,, +147.2888384732,61.4264769862,47.9263803276,NA,NA,140,1994,1,,,,,, +148.298099471,61.6753709153,48.0760363612,NA,NA,141,1994,2,,,,,, +149.5166128518,61.9244790774,48.2258212099,NA,NA,142,1994,3,,,,,, +150.47203224,62.1738016569,48.3757349844,NA,NA,143,1994,4,,,,,, +151.6433079514,62.4233388385,48.5257777957,NA,NA,144,1995,1,,,,,, +152.9709949825,62.6730908067,48.6759497549,NA,NA,145,1995,2,,,,,, +153.6348852152,62.9230577466,48.8262509732,NA,NA,146,1995,3,,,,,, +154.5998048257,63.173239843,48.9766815618,NA,NA,147,1995,4,,,,,, +155.81157834,63.4236372813,49.1272416321,NA,NA,148,1996,1,,,,,, +157.2724813018,63.6742502468,49.2779312955,NA,NA,149,1996,2,,,,,, +158.0661035227,63.9250789249,49.4287506635,NA,NA,150,1996,3,,,,,, +159.3937921514,64.1761235014,49.5796998479,NA,NA,151,1996,4,,,,,, +160.5202421296,64.4273841621,49.7307789603,NA,NA,152,1997,1,,,,,, +160.8565697389,64.6788610929,49.8819881126,NA,NA,153,1997,2,,,,,, +161.3652170088,64.9305544801,50.0333274167,NA,NA,154,1997,3,,,,,, +162.5297916151,65.18246451,50.1847969847,NA,NA,155,1997,4,,,,,, +162.8281524936,65.4345913689,50.3363969286,NA,NA,156,1998,1,,,,,, +163.0226515869,65.6869352436,50.4881273607,NA,NA,157,1998,2,,,,,, +164.1632798663,65.9394963209,50.6399883933,NA,NA,158,1998,3,,,,,, +164.7014460432,66.1922747876,50.7919801388,NA,NA,159,1998,4,,,,,, +165.6350262694,66.445270831,50.9441027098,NA,NA,160,1999,1,,,,,, +166.9035944631,66.6984846383,51.0963562188,NA,NA,161,1999,2,,,,,, +167.5904293324,66.9519163969,51.2487407785,NA,NA,162,1999,3,,,,,, +169.2288926091,67.2055662944,51.4012565017,NA,NA,163,1999,4,,,,,, +170.3094477844,67.4594345186,51.5539035014,NA,NA,164,2000,1,,,,,, +172.1201271114,67.7135212574,51.7066818905,NA,NA,165,2000,2,,,,,, +173.9584679578,67.967826699,51.8595917821,NA,NA,166,2000,3,,,,,, +175.0541267019,68.2223510314,52.0126332894,NA,NA,167,2000,4,,,,,, +176.9586562959,68.4770944433,52.1658065257,NA,NA,168,2001,1,,,,,, +177.420494345,68.732057123,52.3191116044,NA,NA,169,2001,2,,,,,, +178.5717445863,68.9872392595,52.472548639,NA,NA,170,2001,3,,,,,, +178.411091699,69.2426410414,52.626117743,NA,NA,171,2001,4,,,,,, +178.5096746985,69.498262658,52.7798190301,NA,NA,172,2002,1,,,,,, +180.4156471624,69.7541042984,52.9336526141,NA,NA,173,2002,2,,,,,, +180.7934320755,70.010166152,53.0876186089,NA,NA,174,2002,3,,,,,, +182.3583506675,70.2664484084,53.2417171284,NA,NA,175,2002,4,,,,,, +183.6878168401,70.5229512573,53.3959482867,NA,NA,176,2003,1,,,,,, +184.1225158875,70.7796748884,53.550312198,NA,NA,177,2003,2,,,,,, +184.6390067688,71.036619492,53.7048089765,NA,NA,178,2003,3,,,,,, +185.9277993512,71.2937852582,53.8594387367,NA,NA,179,2003,4,,,,,, +187.3494506435,71.5511723773,54.0142015929,NA,NA,180,2004,1,,,,,, +188.4563837818,71.8087810398,54.1690976598,NA,NA,181,2004,2,,,,,, +190.3744088899,72.0666114365,54.3241270519,NA,NA,182,2004,3,,,,,, +192.0349209532,72.3246637583,54.4792898841,NA,NA,183,2004,4,,,,,, +192.9306005546,72.5829381961,54.6345862712,NA,NA,184,2005,1,,,,,, +195.2519947289,72.8414349411,54.7900163281,NA,NA,185,2005,2,,,,,, +195.7304228214,73.1001541846,54.94558017,NA,NA,186,2005,3,,,,,, +201.4511830433,73.3590961183,55.1012779119,NA,NA,187,2005,4,,,,,, +200.2171881322,73.6182609337,55.2571096692,NA,NA,188,2006,1,,,,,, +202.4497494481,73.8776488227,55.4130755571,NA,NA,189,2006,2,,,,,, +204.0624368652,74.1372599773,55.5691756912,NA,NA,190,2006,3,,,,,, +202.5774368935,74.3970945897,55.7254101869,NA,NA,191,2006,4,,,,,, +205.1120470848,74.6571528523,55.88177916,NA,NA,192,2007,1,,,,,, +207.2046911252,74.9174349575,56.0382827261,NA,NA,193,2007,2,,,,,, +208.6752448242,75.1779410979,56.1949210012,NA,NA,194,2007,3,,,,,, +210.7138642108,75.4386714665,56.3516941011,NA,NA,195,2007,4,,,,,, +214.4191503991,75.6996262563,56.508602142,NA,NA,196,2008,1,,,,,, +215.4304916717,75.9608056603,56.66564524,NA,NA,197,2008,2,,,,,, +221.2401937797,76.222209872,56.8228235113,NA,NA,198,2008,3,,,,,, +217.4095788942,76.4838390849,56.9801370722,NA,NA,199,2008,4,,,,,, +212.3767448553,76.7456934925,57.1375860393,NA,NA,200,2009,1,,,,,, +213.5008294782,77.0077732888,57.2951705291,NA,NA,201,2009,2,,,,,, +215.0351451855,77.2700786678,57.4528906581,215.035145186,NA,202,2009,3,,,,,, +217.6107800478,77.5326098235,57.6107465433,215.866107044,217.610780048,203,2009,4,,,,,, +218.8257560807,77.7953669504,57.7687383014,216.976310009,218.825756081,204,2010,1,,,,,, +220.0887108488,78.058350243,57.9268660493,217.992256543,220.088710849,205,2010,2,,,,,, +221.2824709779,78.3215598959,58.0851299042,219.003900252,221.282470978,206,2010,3,,,,,, +222.4572282044,78.5849961039,58.2435299831,220.053058373,222.457228204,207,2010,4,,,,,, +223.6375722698,78.8486590621,58.4020664034,221.10058667,223.63757227,208,2011,1,,,,,, +224.8127258778,79.1125489657,58.5607392824,222.145919537,224.812725878,209,2011,2,,,,,, +225.9848578147,79.3766660099,58.7195487375,223.195897724,225.984857815,210,2011,3,,,,,, +227.1579319102,79.6410103903,58.8784948864,224.247504309,227.15793191,211,2011,4,,,,,, +228.3314766936,79.9055823026,59.0375778465,225.299622831,228.331476694,212,2012,1,,,,,, +229.5054345349,80.1703819426,59.1967977358,226.352961097,229.505434535,213,2012,2,,,,,, +230.6802853758,80.4354095063,59.3561546721,227.407384387,230.680285376,214,2012,3,,,,,, +231.8560877219,80.7006651899,59.5156487733,228.462693614,231.856087722,215,2012,4,,,,,, +233.0328239483,80.9661491898,59.6752801576,229.518934044,233.032823948,216,2013,1,,,,,, +234.2105442521,81.2318617024,59.8350489429,230.576111078,234.210544252,217,2013,2,,,,,, +235.3892686376,81.4978029246,59.9949552478,231.63420065,235.389268638,218,2013,3,,,,,, +236.5689976407,81.763973053,60.1549991904,232.693202832,236.568997641,219,2013,4,,,,,, +237.7497368898,82.0303722848,60.3151808893,233.753120079,237.74973689,220,2014,1,,,,,, +238.9314906316,82.2970008172,60.475500463,234.813950663,238.931490632,221,2014,2,,,,,, +240.1142602312,82.5638588475,60.6359580303,235.875694619,240.114260231,222,2014,3,,,,,, +241.2980470639,82.8309465733,60.7965537099,236.93835289,241.298047064,223,2014,4,,,,,, +242.4828524939,83.0982641922,60.9572876206,238.001926038,242.482852494,224,2015,1,,,,,, +243.6686775425,83.3658119022,61.1181598815,239.066414704,243.668677543,225,2015,2,,,,,, +244.8555231546,83.6335899013,61.2791706116,240.131819671,244.855523155,226,2015,3,,,,,, +246.0433902743,83.9015983877,61.4403199302,241.198141708,246.043390274,227,2015,4,,,,,, +,,,,,,,,,,,,227,61.2791706116 +,,,,,,,,,,,,228,61.4403199302 diff --git a/statsmodels/tsa/tests/results/results_arima_forecasts_all_css_diff.csv b/statsmodels/tsa/tests/results/results_arima_forecasts_all_css_diff.csv new file mode 100644 index 0000000..fbf9f39 --- /dev/null +++ b/statsmodels/tsa/tests/results/results_arima_forecasts_all_css_diff.csv @@ -0,0 +1,229 @@ +fc,fcdyn,fcdyn2,fcdyn3,fcdyn4,orig_index,year,quarter +NA,NA,NA,NA,NA,0,1959,1 +NA,NA,NA,NA,NA,1,1959,2 +NA,NA,NA,NA,NA,2,1959,3 +NA,NA,NA,NA,NA,3,1959,4 +NA,NA,NA,NA,NA,4,1960,1 +0.770379010745,0.770379010745,NA,NA,NA,5,1960,2 +0.159960553047,0.453990324197,NA,NA,NA,6,1960,3 +0.763902636357,0.835731904216,NA,NA,NA,7,1960,4 +0.200611089248,0.705191313109,NA,NA,NA,8,1961,1 +0.670090201275,0.878649341133,NA,NA,NA,9,1961,2 +0.245168528115,0.810852023674,NA,NA,NA,10,1961,3 +0.618223678922,0.909437206879,NA,NA,NA,11,1961,4 +0.282923463794,0.866788837448,NA,NA,NA,12,1962,1 +0.635883564254,0.922010172534,NA,NA,NA,13,1962,2 +0.279170332796,0.897571310587,NA,NA,NA,14,1962,3 +0.643061831375,0.927716334514,NA,NA,NA,15,1962,4 +0.287355845649,0.913766102843,NA,NA,NA,16,1963,1 +0.597148109291,0.93039301962,NA,NA,NA,17,1963,2 +0.361195118636,0.922366013779,NA,NA,NA,18,1963,3 +0.558818431023,0.931556196153,NA,NA,NA,19,1963,4 +0.421807086713,0.926960893399,NA,NA,NA,20,1964,1 +0.498754378826,0.93203785154,NA,NA,NA,21,1964,2 +0.411493694656,0.929414312482,NA,NA,NA,22,1964,3 +0.489155194512,0.932222349489,NA,NA,NA,23,1964,4 +0.446951599675,0.930726591642,0.446951599675,NA,NA,24,1965,1 +0.496243085307,0.932281263054,0.630405257081,NA,NA,25,1965,2 +0.489368402982,0.931429947097,0.643761598303,NA,NA,26,1965,3 +0.4681674419,0.932291342811,0.777776477505,NA,NA,27,1965,4 +0.52772975703,0.93180755357,0.789968560438,NA,NA,28,1966,1 +0.566505362972,0.932285198199,0.849816173977,NA,NA,29,1966,2 +0.524692473871,0.932010627185,0.858628330853,NA,NA,30,1966,3 +0.640394605109,0.93227567702,0.890822320917,NA,NA,31,1966,4 +0.430064342168,0.932120030939,0.893594141216,NA,NA,32,1967,1 +0.60512160276,0.932267209981,0.911236513022,NA,NA,33,1967,2 +0.463290054836,0.932179073129,0.912165678359,NA,NA,34,1967,3 +0.627745226416,0.932260852206,0.921540199879,NA,NA,35,1967,4 +0.557677999745,0.932210991288,0.921794627945,NA,NA,36,1968,1 +0.626379486361,0.932256458527,0.926817814232,NA,NA,37,1968,2 +0.63479357732,0.932228275536,0.926795159452,NA,NA,38,1968,3 +0.636990972422,0.932253568383,0.929498781138,NA,NA,39,1968,4 +0.644872375458,0.932237650911,0.929402909137,NA,NA,40,1969,1 +0.710134532495,0.932251728339,0.930858156063,NA,NA,41,1969,2 +0.664847766932,0.932242744672,0.93076242395,NA,NA,42,1969,3 +0.727209717161,0.932250583661,0.93154715447,NA,NA,43,1969,4 +0.703673706075,0.932245516618,0.931471664527,NA,NA,44,1970,1 +0.74665149928,0.932249883719,0.931895643642,NA,NA,45,1970,2 +0.656169792059,0.932247027427,0.931842084649,NA,NA,46,1970,3 +0.724661886465,0.932249461364,0.93207152956,NA,NA,47,1970,4 +0.640947957999,0.932247852124,0.932035726827,NA,NA,48,1971,1 +0.606792931728,0.932249209172,0.932160103317,NA,NA,49,1971,2 +0.668684332178,0.932248302959,0.932137056951,NA,NA,50,1971,3 +0.551525721652,0.93224905986,0.932204590693,NA,NA,51,1971,4 +0.641943695427,0.932248549766,0.932190139193,NA,NA,52,1972,1 +0.53831115973,0.932248972074,0.932226867829,NA,NA,53,1972,2 +0.612089176946,0.932248685065,0.932217978042,NA,NA,54,1972,3 +0.582872466048,0.932248920763,0.932237984669,NA,NA,55,1972,4 +0.680534925403,0.932248759333,0.932232595379,NA,NA,56,1973,1 +0.842528352287,0.932248890919,0.932243510039,NA,NA,57,1973,2 +0.697870627846,0.932248800152,0.932240280052,NA,NA,58,1973,3 +1.16123771239,0.932248873633,0.932246243448,NA,NA,59,1973,4 +0.868472110564,0.932248822613,0.932244325314,NA,NA,60,1974,1 +1.295970462021,0.932248863657,0.932247588207,NA,NA,61,1974,2 +0.940353780865,0.932248834987,0.932246457649,NA,NA,62,1974,3 +1.433625706241,0.932248857918,0.932248245434,NA,NA,63,1974,4 +0.970014205625,0.932248841811,0.932247583225,NA,NA,64,1975,1 +1.157361101681,0.932248854626,0.932248564087,NA,NA,65,1975,2 +0.856660585072,0.932248845579,0.932248178238,NA,NA,66,1975,3 +0.989444399201,0.932248852741,0.932248717075,NA,NA,67,1975,4 +0.849626106286,0.932248847661,0.932248493253,NA,NA,68,1976,1 +0.752229636283,0.932248851665,0.932248789627,NA,NA,69,1976,2 +0.870409319371,0.932248848813,0.932248660289,NA,NA,70,1976,3 +0.795923084138,0.932248851051,0.932248823493,NA,NA,71,1976,4 +0.919465973242,0.93224884945,0.932248749,NA,NA,72,1977,1 +1.031756943989,0.932248850702,0.932248838972,NA,NA,73,1977,2 +0.869240748572,0.932248849803,0.932248796191,NA,NA,74,1977,3 +0.979442748794,0.932248850504,0.932248845843,NA,NA,75,1977,4 +0.915986730044,0.932248849999,0.932248821336,NA,NA,76,1978,1 +1.055430500674,0.932248850391,0.932248848765,NA,NA,77,1978,2 +1.193113232312,0.932248850108,0.932248834757,NA,NA,78,1978,3 +1.253636070397,0.932248850327,0.932248849924,NA,NA,79,1978,4 +1.237003161064,0.932248850168,0.932248841933,NA,NA,80,1979,1 +1.50192411252,0.932248850291,0.932248850326,NA,NA,81,1979,2 +1.546138346398,0.932248850202,0.932248845776,NA,NA,82,1979,3 +1.687679883907,0.932248850271,0.932248850425,NA,NA,83,1979,4 +1.879960751704,0.932248850221,0.932248847838,NA,NA,84,1980,1 +1.913931910998,0.932248850259,0.932248850415,NA,NA,85,1980,2 +1.587588013175,0.932248850231,0.932248848946,NA,NA,86,1980,3 +1.74835279899,0.932248850252,0.932248850376,NA,NA,87,1980,4 +1.577518609117,0.932248850237,0.932248849543,NA,NA,88,1981,1 +1.607276198134,0.932248850249,0.932248850336,NA,NA,89,1981,2 +1.729337563595,0.93224885024,0.932248849864,NA,NA,90,1981,3 +1.468980381219,0.932248850247,0.932248850305,NA,NA,91,1981,4 +1.267245335864,0.932248850242,0.932248850038,NA,NA,92,1982,1 +0.931137515728,0.932248850246,0.932248850283,NA,NA,93,1982,2 +1.555112467159,0.932248850243,0.932248850132,NA,NA,94,1982,3 +0.653657375856,0.932248850245,0.932248850269,NA,NA,95,1982,4 +1.022136154907,0.932248850243,0.932248850183,NA,NA,96,1983,1 +0.554925174321,0.932248850245,0.932248850259,NA,NA,97,1983,2 +0.960506447796,0.932248850244,0.932248850211,NA,NA,98,1983,3 +0.823531392412,0.932248850244,0.932248850253,NA,NA,99,1983,4 +1.210651458454,0.932248850244,0.932248850226,NA,NA,100,1984,1 +0.922900777171,0.932248850244,0.932248850249,NA,NA,101,1984,2 +1.080087538278,0.932248850244,0.932248850234,NA,NA,102,1984,3 +0.890316325546,0.932248850244,0.932248850247,NA,NA,103,1984,4 +0.858082546678,0.932248850244,0.932248850239,NA,NA,104,1985,1 +1.039629514659,0.932248850244,0.932248850246,NA,NA,105,1985,2 +0.781314429462,0.932248850244,0.932248850241,NA,NA,106,1985,3 +1.006658595835,0.932248850244,0.932248850245,NA,NA,107,1985,4 +0.980549828263,0.932248850244,0.932248850242,NA,NA,108,1986,1 +0.153513926076,0.932248850244,0.932248850245,NA,NA,109,1986,2 +1.022200152993,0.932248850244,0.932248850243,NA,NA,110,1986,3 +0.204732775526,0.932248850244,0.932248850244,NA,NA,111,1986,4 +1.365660419996,0.932248850244,0.932248850244,NA,NA,112,1987,1 +0.686049071399,0.932248850244,0.932248850244,NA,NA,113,1987,2 +1.387371677459,0.932248850244,0.932248850244,NA,NA,114,1987,3 +0.796855404679,0.932248850244,0.932248850244,NA,NA,115,1987,4 +1.252967659219,0.932248850244,0.932248850244,NA,NA,116,1988,1 +0.851224474584,0.932248850244,0.932248850244,NA,NA,117,1988,2 +1.281757367744,0.932248850244,0.932248850244,NA,NA,118,1988,3 +0.987614096066,0.932248850244,0.932248850244,NA,NA,119,1988,4 +1.299685315792,0.932248850244,0.932248850244,NA,NA,120,1989,1 +1.249631195825,0.932248850244,0.932248850244,NA,NA,121,1989,2 +1.279393196417,0.932248850244,0.932248850244,NA,NA,122,1989,3 +1.045730799045,0.932248850244,0.932248850244,NA,NA,123,1989,4 +1.496932175978,0.932248850244,0.932248850244,NA,NA,124,1990,1 +1.01045926974,0.932248850244,0.932248850244,NA,NA,125,1990,2 +1.573514752605,0.932248850244,0.932248850244,NA,NA,126,1990,3 +1.567001969786,0.932248850244,0.932248850244,NA,NA,127,1990,4 +1.349008606055,0.932248850244,0.932248850244,NA,NA,128,1991,1 +1.052599747774,0.932248850244,0.932248850244,NA,NA,129,1991,2 +1.02485856054,0.932248850244,0.932248850244,NA,NA,130,1991,3 +0.826255442224,0.932248850244,0.932248850244,NA,NA,131,1991,4 +1.103264402043,0.932248850244,0.932248850244,NA,NA,132,1992,1 +0.929610346126,0.932248850244,0.932248850244,NA,NA,133,1992,2 +1.105007514812,0.932248850244,0.932248850244,NA,NA,134,1992,3 +0.993076541355,0.932248850244,0.932248850244,NA,NA,135,1992,4 +1.089509398065,0.932248850244,0.932248850244,NA,NA,136,1993,1 +0.956400421858,0.932248850244,0.932248850244,NA,NA,137,1993,2 +0.915149001744,0.932248850244,0.932248850244,NA,NA,138,1993,3 +0.974259971098,0.932248850244,0.932248850244,NA,NA,139,1993,4 +0.803643581793,0.932248850244,0.932248850244,NA,NA,140,1994,1 +0.982767992868,0.932248850244,0.932248850244,NA,NA,141,1994,2 +0.935727379917,0.932248850244,0.932248850244,NA,NA,142,1994,3 +1.007651588714,0.932248850244,0.932248850244,NA,NA,143,1994,4 +1.016701279278,0.932248850244,0.932248850244,NA,NA,144,1995,1 +1.09738640548,0.932248850244,0.932248850244,NA,NA,145,1995,2 +0.898845509928,0.932248850244,0.932248850244,NA,NA,146,1995,3 +1.023237765215,0.932248850244,0.932248850244,NA,NA,147,1995,4 +0.946468723079,0.932248850244,0.932248850244,NA,NA,148,1996,1 +1.163232329785,0.932248850244,0.932248850244,NA,NA,149,1996,2 +0.924650165645,0.932248850244,0.932248850244,NA,NA,150,1996,3 +1.184801033993,0.932248850244,0.932248850244,NA,NA,151,1996,4 +0.931330281248,0.932248850244,0.932248850244,NA,NA,152,1997,1 +0.919134674162,0.932248850244,0.932248850244,NA,NA,153,1997,2 +0.737950142031,0.932248850244,0.932248850244,NA,NA,154,1997,3 +0.951868264252,0.932248850244,0.932248850244,NA,NA,155,1997,4 +0.640162611467,0.932248850244,0.932248850244,NA,NA,156,1998,1 +0.776711858234,0.932248850244,0.932248850244,NA,NA,157,1998,2 +0.770413570866,0.932248850244,0.932248850244,NA,NA,158,1998,3 +0.773148559181,0.932248850244,0.932248850244,NA,NA,159,1998,4 +0.891813237097,0.932248850244,0.932248850244,NA,NA,160,1999,1 +0.976518615776,0.932248850244,0.932248850244,NA,NA,161,1999,2 +0.866379311426,0.932248850244,0.932248850244,NA,NA,162,1999,3 +1.187687466079,0.932248850244,0.932248850244,NA,NA,163,1999,4 +0.944916221783,0.932248850244,0.932248850244,NA,NA,164,2000,1 +1.374004755733,0.932248850244,0.932248850244,NA,NA,165,2000,2 +1.196896057424,0.932248850244,0.932248850244,NA,NA,166,2000,3 +1.276094544431,0.932248850244,0.932248850244,NA,NA,167,2000,4 +1.299861238063,0.932248850244,0.932248850244,NA,NA,168,2001,1 +0.953695155871,0.932248850244,0.932248850244,NA,NA,169,2001,2 +1.127831475679,0.932248850244,0.932248850244,NA,NA,170,2001,3 +0.538805881288,0.932248850244,0.932248850244,NA,NA,171,2001,4 +0.740938763678,0.932248850244,0.932248850244,NA,NA,172,2002,1 +0.913239687679,0.932248850244,0.932248850244,NA,NA,173,2002,2 +0.775624092729,0.932248850244,0.932248850244,NA,NA,174,2002,3 +1.191829445117,0.932248850244,0.932248850244,NA,NA,175,2002,4 +0.970976057583,0.932248850244,0.932248850244,NA,NA,176,2003,1 +0.963967235811,0.932248850244,0.932248850244,NA,NA,177,2003,2 +0.781611104879,0.932248850244,0.932248850244,NA,NA,178,2003,3 +0.998342132877,0.932248850244,0.932248850244,NA,NA,179,2003,4 +0.988319280658,0.932248850244,0.932248850244,NA,NA,180,2004,1 +1.119775738948,0.932248850244,0.932248850244,NA,NA,181,2004,2 +1.262824600847,0.932248850244,0.932248850244,NA,NA,182,2004,3 +1.266236815215,0.932248850244,0.932248850244,NA,NA,183,2004,4 +1.118456220708,0.932248850244,0.932248850244,NA,NA,184,2005,1 +1.481082761854,0.932248850244,0.932248850244,NA,NA,185,2005,2 +0.858355967219,0.932248850244,0.932248850244,NA,NA,186,2005,3 +2.658702151815,0.932248850244,0.932248850244,NA,NA,187,2005,4 +0.312832597414,0.932248850244,0.932248850244,NA,NA,188,2006,1 +2.347722707187,0.932248850244,0.932248850244,NA,NA,189,2006,2 +0.352394195822,0.932248850244,0.932248850244,NA,NA,190,2006,3 +1.156900058414,0.932248850244,0.932248850244,NA,NA,191,2006,4 +0.777710696447,0.932248850244,0.932248850244,NA,NA,192,2007,1 +1.517167214051,0.932248850244,0.932248850244,NA,NA,193,2007,2 +1.044783734001,0.932248850244,0.932248850244,NA,NA,194,2007,3 +1.771568384475,0.932248850244,0.932248850244,NA,NA,195,2007,4 +1.657324391142,0.932248850244,0.932248850244,NA,NA,196,2008,1 +1.54578539557,0.932248850244,0.932248850244,NA,NA,197,2008,2 +2.708532318705,0.932248850244,0.932248850244,NA,NA,198,2008,3 +-0.133682222205,0.932248850244,0.932248850244,NA,NA,199,2008,4 +-0.089413477292,0.932248850244,0.932248850244,NA,NA,200,2009,1 +-0.412725484186,0.932248850244,0.932248850244,NA,NA,201,2009,2 +0.58762097819,0.932248850244,0.932248850244,0.58762097819,NA,202,2009,3 +1.183570299308,0.932248850244,0.932248850244,0.6699014917,1.183570299308,203,2009,4 +1.295679884183,0.932248850244,0.932248850244,1.14314607419,1.295679884183,204,2010,1 +1.172205899038,0.932248850244,0.932248850244,0.73792459293,1.172205899038,205,2010,2 +1.093431415153,0.932248850244,0.932248850244,0.99718558439,1.093431415153,206,2010,3 +1.046383010753,0.932248850244,0.932248850244,0.8625857921,1.046383010753,207,2010,4 +1.02568256393,0.932248850244,0.932248850244,0.96171093112,1.02568256393,208,2011,1 +0.987498840379,0.932248850244,0.932248850244,0.89034221344,0.987498840379,209,2011,2 +0.980300525866,0.932248850244,0.932248850244,0.95267807706,0.980300525866,210,2011,3 +0.961338343426,0.932248850244,0.932248850244,0.90815715445,0.961338343426,211,2011,4 +0.956827888488,0.932248850244,0.932248850244,0.94377506166,0.956827888488,212,2012,1 +0.947125117184,0.932248850244,0.932248850244,0.91923666474,0.947125117184,213,2012,2 +0.945069813517,0.932248850244,0.932248850244,0.93873479867,0.945069813517,214,2012,3 +0.93981399433,0.932248850244,0.932248850244,0.92505455088,0.93981399433,215,2012,4 +0.938909436829,0.932248850244,0.932248850244,0.93597743253,0.938909436829,216,2013,1 +0.936114863886,0.932248850244,0.932248850244,0.92825825312,0.936114863886,217,2013,2 +0.935705810698,0.932248850244,0.932248850244,0.93437524527,0.935705810698,218,2013,3 +0.934220814397,0.932248850244,0.932248850244,0.93004135366,0.934220814397,219,2013,4 +0.934046235214,0.932248850244,0.932248850244,0.93345792245,0.934046235214,220,2014,1 +0.933253028912,0.932248850244,0.932248850244,0.93102589872,0.933253028912,221,2014,2 +0.933183912552,0.932248850244,0.932248850244,0.93293607052,0.933183912552,222,2014,3 +0.932759776053,0.932248850244,0.932248850244,0.93157060956,0.932759776053,223,2014,4 +0.932735584257,0.932248850244,0.932248850244,0.93263889295,0.932735584257,224,2015,1 +0.932508472206,0.932248850244,0.932248850244,0.93187249128,0.932508472206,225,2015,2 +0.932502421551,0.932248850244,0.932248850244,0.93246993987,0.932502421551,226,2015,3 +0.932380576436,0.932248850244,0.932248850244,0.93203986296,0.932380576436,227,2015,4 diff --git a/statsmodels/tsa/tests/results/results_arima_forecasts_all_mle.csv b/statsmodels/tsa/tests/results/results_arima_forecasts_all_mle.csv new file mode 100644 index 0000000..83e581d --- /dev/null +++ b/statsmodels/tsa/tests/results/results_arima_forecasts_all_mle.csv @@ -0,0 +1,229 @@ +fc,fcdyn,fcdyn2,fcdyn3,fcdyn4,orig_index,year,quarter +NA,NA,NA,NA,NA,0,1959,1 +29.9068758949,NA,NA,NA,NA,1,1959,2 +29.7836062197,NA,NA,NA,NA,2,1959,3 +29.9509765347,NA,NA,NA,NA,3,1959,4 +29.8231512077,NA,NA,NA,NA,4,1960,1 +30.0713968735,30.3272531516,NA,NA,NA,5,1960,2 +29.958473718,30.7775313774,NA,NA,NA,6,1960,3 +30.3023935599,31.6305620659,NA,NA,NA,7,1960,4 +30.2576517655,32.3243418038,NA,NA,NA,8,1961,1 +30.3009573493,33.221004981,NA,NA,NA,9,1961,2 +30.3488332178,34.0171014659,NA,NA,NA,10,1961,3 +30.4491475914,34.9397887093,NA,NA,NA,11,1961,4 +30.4767369763,35.7929235781,NA,NA,NA,12,1962,1 +30.7203942278,36.7230229888,NA,NA,NA,13,1962,2 +30.6313854794,37.6085297454,NA,NA,NA,14,1962,3 +30.9155665305,38.5403582304,NA,NA,NA,15,1962,4 +30.8422701329,39.4436416064,NA,NA,NA,16,1963,1 +30.9861943136,40.375151647,NA,NA,NA,17,1963,2 +31.1484912231,41.2884303568,NA,NA,NA,18,1963,3 +31.2342409169,42.2189628591,NA,NA,NA,19,1963,4 +31.4416695887,43.1379316426,NA,NA,NA,20,1964,1 +31.3901016046,44.0674727571,NA,NA,NA,21,1964,2 +31.4982759525,44.9897074968,NA,NA,NA,22,1964,3 +31.5624145889,45.9184393518,NA,NA,NA,23,1964,4 +31.7830149053,46.842568315,31.7822801057,NA,NA,24,1965,1 +31.8369304018,47.7706987794,32.3931644836,NA,NA,25,1965,2 +32.1174255896,48.6959367801,33.0720496053,NA,NA,26,1965,3 +32.0860826882,49.6236436781,33.8411417068,NA,NA,27,1965,4 +32.4487713904,50.5495365039,34.6481975356,NA,NA,28,1966,1 +32.8191337921,51.4769549262,35.492588604,NA,NA,29,1966,2 +33.0091645008,52.4032373841,36.3588892238,NA,NA,30,1966,3 +33.4654941183,53.3304637166,37.2448169633,NA,NA,31,1966,4 +33.3639030502,54.2569796051,38.1405962938,NA,NA,32,1967,1 +33.6830295278,55.184080055,39.0469661245,NA,NA,33,1967,2 +33.8954437652,56.1107366334,39.9580505999,NA,NA,34,1967,3 +34.3077742693,57.0377555451,40.8746277311,NA,NA,35,1967,4 +34.6828690181,57.9644973595,41.7934553394,NA,NA,36,1968,1 +35.0114031363,58.8914639149,42.7151870239,NA,NA,37,1968,2 +35.5543081572,59.818257599,43.6379477819,NA,NA,38,1968,3 +35.9260460559,60.745190759,44.5622601267,NA,NA,39,1968,4 +36.3595684128,61.6720161275,45.4870284689,NA,NA,40,1969,1 +37.002182586,62.5989280951,46.4126307524,NA,NA,41,1969,2 +37.4766800724,63.5257728797,47.3384241138,NA,NA,42,1969,3 +38.0189823007,64.4526714527,48.2646701708,NA,NA,43,1969,4 +38.6150653862,65.3795281671,49.1909880785,NA,NA,44,1970,1 +39.239464354,66.3064183006,50.117554258,NA,NA,45,1970,2 +39.5651529036,67.2332823614,51.0441413919,NA,NA,46,1970,3 +40.1204283713,68.1601671908,51.970866102,NA,NA,47,1970,4 +40.5501568429,69.0870357838,52.8975918536,NA,NA,48,1971,1 +40.7036899407,70.0139172862,53.8243946654,NA,NA,49,1971,2 +41.2773766889,70.9407886795,54.7511920613,NA,NA,50,1971,3 +41.4521240046,71.8676680984,55.6780330885,NA,NA,51,1971,4 +41.8471563104,72.7945412241,56.604867682,NA,NA,52,1972,1 +42.0415482723,73.7214193399,57.5317272414,NA,NA,53,1972,2 +42.4179954695,74.6482935384,58.4585812495,NA,NA,54,1972,3 +42.7845257743,75.57517084,59.3854496887,NA,NA,55,1972,4 +43.3863658678,76.5020457035,60.3123138917,NA,NA,56,1973,1 +44.5396593399,77.4289224967,61.2391865163,NA,NA,57,1973,2 +44.9010993318,78.3557977727,62.1660561099,NA,NA,58,1973,3 +46.7532025618,79.2826742488,63.0929306617,NA,NA,59,1973,4 +47.6714418281,80.2095497806,64.0198031279,NA,NA,60,1974,1 +49.3804168279,81.136426059,64.9466785366,NA,NA,61,1974,2 +50.241912904,82.0633017498,65.8735525468,NA,NA,62,1974,3 +52.4218551349,82.9901779049,66.8004283158,NA,NA,63,1974,4 +53.2643941056,83.9170536944,67.7273031638,NA,NA,64,1975,1 +54.1504667554,84.8439297727,68.6541790696,NA,NA,65,1975,2 +54.8540921978,85.7708056235,69.5810543766,NA,NA,66,1975,3 +55.8935577987,86.6976816539,70.5079303234,NA,NA,67,1975,4 +56.6379953641,87.6245575428,71.4348058846,NA,NA,68,1976,1 +56.8629881193,88.5514335435,72.3616818346,NA,NA,69,1976,2 +57.8595118751,89.4783094561,73.2885575382,NA,NA,70,1976,3 +58.7100304388,90.4051854383,74.2154334789,NA,NA,71,1976,4 +59.6013496668,91.3320613656,75.1423092629,NA,NA,72,1977,1 +61.0433146727,92.2589373362,76.0691851921,NA,NA,73,1977,2 +61.6535591485,93.1858132727,76.9960610222,NA,NA,74,1977,3 +62.5860972541,94.112689236,77.9229369414,NA,NA,75,1977,4 +63.6072946291,95.0395651782,78.8498127981,NA,NA,76,1978,1 +64.9590764016,95.9664411371,79.7766887096,NA,NA,77,1978,2 +66.6776058647,96.8933170829,80.7035645818,NA,NA,78,1978,3 +68.3539491015,97.820193039,81.6304404877,NA,NA,79,1978,4 +69.7178599841,98.7470689869,82.5573163691,NA,NA,80,1979,1 +72.1013253134,99.6739449413,83.4841922712,NA,NA,81,1979,2 +74.524250368,100.6008208906,84.411068158,NA,NA,82,1979,3 +76.876176456,101.527696844,85.3379440576,NA,NA,83,1979,4 +79.854504624,102.4545727941,86.2648199475,NA,NA,84,1980,1 +82.8015133793,103.3814487468,87.1916958455,NA,NA,85,1980,2 +84.1581425487,104.3083246974,88.1185717374,NA,NA,86,1980,3 +86.4422907681,105.2352006497,89.0454476342,NA,NA,87,1980,4 +88.7596665668,106.1620766007,89.9723235273,NA,NA,88,1981,1 +90.6941059629,107.0889525527,90.8991994235,NA,NA,89,1981,2 +93.2072347522,108.0158285039,91.8260753173,NA,NA,90,1981,3 +94.8638811502,108.9427044557,92.7529512129,NA,NA,91,1981,4 +95.6449911033,109.869580407,93.6798271072,NA,NA,92,1982,1 +95.939154924,110.7964563587,94.6067030026,NA,NA,93,1982,2 +99.0424265069,111.7233323102,95.5335788971,NA,NA,94,1982,3 +98.7541145954,112.6502082618,96.4604547923,NA,NA,95,1982,4 +98.90592859,113.5770842133,97.3873306869,NA,NA,96,1983,1 +99.3770482109,114.5039601649,98.3142065821,NA,NA,97,1983,2 +100.7534188199,115.4308361164,99.2410824768,NA,NA,98,1983,3 +101.6186175914,116.357712068,100.1679583719,NA,NA,99,1983,4 +103.3104124792,117.2845880195,101.0948342667,NA,NA,100,1984,1 +104.2117547402,118.2114639711,102.0217101617,NA,NA,101,1984,2 +105.1825141885,119.1383399226,102.9485860565,NA,NA,102,1984,3 +105.979318745,120.0652158742,103.8754619515,NA,NA,103,1984,4 +106.568745383,120.9920918257,104.8023378464,NA,NA,104,1985,1 +108.0236266196,121.9189677773,105.7292137413,NA,NA,105,1985,2 +108.4946316835,122.8458437288,106.6560896362,NA,NA,106,1985,3 +109.4866268614,123.7727196804,107.5829655311,NA,NA,107,1985,4 +110.896556764,124.6995956319,108.509841426,NA,NA,108,1986,1 +108.8402692853,125.6264715835,109.436717321,NA,NA,109,1986,2 +110.5394732567,126.553347535,110.3635932159,NA,NA,110,1986,3 +110.4107112037,127.4802234866,111.2904691108,NA,NA,111,1986,4 +112.757673341,128.4070994381,112.2173450057,NA,NA,112,1987,1 +113.3812962699,129.3339753897,113.1442209006,NA,NA,113,1987,2 +115.1867060272,130.2608513412,114.0710967956,NA,NA,114,1987,3 +115.7804175177,131.1877272927,114.9979726905,NA,NA,115,1987,4 +117.2661519035,132.1146032443,115.9248485854,NA,NA,116,1988,1 +118.0249608515,133.0414791958,116.8517244803,NA,NA,117,1988,2 +119.8027159123,133.9683551474,117.7786003752,NA,NA,118,1988,3 +120.8521754028,134.8952310989,118.7054762702,NA,NA,119,1988,4 +122.5230921328,135.8221070505,119.6323521651,NA,NA,120,1989,1 +124.3092179875,136.748983002,120.55922806,NA,NA,121,1989,2 +125.8031780011,137.6758589536,121.4861039549,NA,NA,122,1989,3 +126.4028519011,138.6027349051,122.4129798498,NA,NA,123,1989,4 +129.0264547619,139.5296108567,123.3398557447,NA,NA,124,1990,1 +129.8685188669,140.4564868082,124.2667316397,NA,NA,125,1990,2 +132.0904426122,141.3833627598,125.1936075346,NA,NA,126,1990,3 +134.9285784021,142.3102387113,126.1204834295,NA,NA,127,1990,4 +136.0614658238,143.2371146629,127.0473593244,NA,NA,128,1991,1 +136.1107245131,144.1639906144,127.9742352193,NA,NA,129,1991,2 +137.2637467947,145.090866566,128.9011111142,NA,NA,130,1991,3 +137.9914012445,146.0177425175,129.8279870092,NA,NA,131,1991,4 +139.4277291702,146.9446184691,130.7548629041,NA,NA,132,1992,1 +140.2982675372,147.8714944206,131.681738799,NA,NA,133,1992,2 +141.6276278643,148.7983703722,132.6086146939,NA,NA,134,1992,3 +142.6619161198,149.7252463237,133.5354905888,NA,NA,135,1992,4 +143.9113017237,150.6521222753,134.4623664838,NA,NA,136,1993,1 +144.7258177409,151.5789982268,135.3892423787,NA,NA,137,1993,2 +145.439080145,152.5058741784,136.3161182736,NA,NA,138,1993,3 +146.5470899515,153.4327501299,137.2429941685,NA,NA,139,1993,4 +147.1275628178,154.3596260815,138.1698700634,NA,NA,140,1994,1 +148.1549398159,155.286502033,139.0967459583,NA,NA,141,1994,2 +149.3590207641,156.2133779846,140.0236218533,NA,NA,142,1994,3 +150.3797921444,157.1402539361,140.9504977482,NA,NA,143,1994,4 +151.5328407734,158.0671298877,141.8773736431,NA,NA,144,1995,1 +152.8754001855,158.9940058392,142.804249538,NA,NA,145,1995,2 +153.5104634725,159.9208817908,143.7311254329,NA,NA,146,1995,3 +154.5050713049,160.8477577423,144.6580013279,NA,NA,147,1995,4 +155.6598903736,161.7746336939,145.5848772228,NA,NA,148,1996,1 +157.2436505119,162.7015096454,146.5117531177,NA,NA,149,1996,2 +157.9306440779,163.628385597,147.4386290126,NA,NA,150,1996,3 +159.3697775767,164.5552615485,148.3655049075,NA,NA,151,1996,4 +160.3380549055,165.4821375001,149.2923808024,NA,NA,152,1997,1 +160.8062423104,166.4090134516,150.2192566974,NA,NA,153,1997,2 +161.1456005775,167.3358894032,151.1461325923,NA,NA,154,1997,3 +162.4498580223,168.2627653547,152.0730084872,NA,NA,155,1997,4 +162.6410438272,169.1896413063,152.9998843821,NA,NA,156,1998,1 +162.9749129442,170.1165172578,153.926760277,NA,NA,157,1998,2 +163.9763792071,171.0433932094,154.853636172,NA,NA,158,1998,3 +164.6728592449,171.9702691609,155.7805120669,NA,NA,159,1998,4 +165.5859484189,172.8971451125,156.7073879618,NA,NA,160,1999,1 +166.8803645773,173.824021064,157.6342638567,NA,NA,161,1999,2 +167.5578656479,174.7508970156,158.5611397516,NA,NA,162,1999,3 +169.2867961402,175.6777729671,159.4880156465,NA,NA,163,1999,4 +170.2382948208,176.6046489187,160.4148915415,NA,NA,164,2000,1 +172.2667146382,177.5315248702,161.3417674364,NA,NA,165,2000,2 +173.8870935762,178.4584008218,162.2686433313,NA,NA,166,2000,3 +175.1681640969,179.3852767733,163.1955192262,NA,NA,167,2000,4 +176.8870492083,180.3121527249,164.1223951211,NA,NA,168,2001,1 +177.3561660321,181.2390286764,165.0492710161,NA,NA,169,2001,2 +178.5127418663,182.165904628,165.976146911,NA,NA,170,2001,3 +178.1530273515,183.0927805795,166.9030228059,NA,NA,171,2001,4 +178.4318474996,184.0196565311,167.8298987008,NA,NA,172,2002,1 +180.227667747,184.9465324826,168.7567745957,NA,NA,173,2002,2 +180.7639840071,185.8734084342,169.6836504906,NA,NA,174,2002,3 +182.3875854212,186.8002843857,170.6105263856,NA,NA,175,2002,4 +183.5702614445,187.7271603373,171.5374022805,NA,NA,176,2003,1 +184.1557719712,188.6540362888,172.4642781754,NA,NA,177,2003,2 +184.4816222449,189.5809122404,173.3911540703,NA,NA,178,2003,3 +185.9023069261,190.5077881919,174.3180299652,NA,NA,179,2003,4 +187.2801890545,191.4346641435,175.2449058602,NA,NA,180,2004,1 +188.515364218,192.361540095,176.1717817551,NA,NA,181,2004,2 +190.3521125536,193.2884160466,177.09865765,NA,NA,182,2004,3 +192.0632545458,194.2152919981,178.0255335449,NA,NA,183,2004,4 +192.9017579545,195.1421679496,178.9524094398,NA,NA,184,2005,1 +195.2802770621,196.0690439012,179.8792853347,NA,NA,185,2005,2 +195.5474719269,196.9959198527,180.8061612297,NA,NA,186,2005,3 +201.8413436328,197.9227958043,181.7330371246,NA,NA,187,2005,4 +199.6997920973,198.8496717558,182.6599130195,NA,NA,188,2006,1 +203.0238576373,199.7765477074,183.5867889144,NA,NA,189,2006,2 +203.0685794838,200.7034236589,184.5136648093,NA,NA,190,2006,3 +203.0451761394,201.6302996105,185.4405407042,NA,NA,191,2006,4 +204.3412194526,202.557175562,186.3674165992,NA,NA,192,2007,1 +207.4667905264,203.4840515136,187.2942924941,NA,NA,193,2007,2 +208.3185215168,204.4109274651,188.221168389,NA,NA,194,2007,3 +210.9426858274,205.3378034167,189.1480442839,NA,NA,195,2007,4 +214.0898145255,206.2646793682,190.0749201788,NA,NA,196,2008,1 +215.5731578452,207.1915553198,191.0017960738,NA,NA,197,2008,2 +221.2373748951,208.1184312713,191.9286719687,NA,NA,198,2008,3 +216.8084985317,209.0453072229,192.8555478636,NA,NA,199,2008,4 +212.0300947154,209.9721831744,193.7824237585,NA,NA,200,2009,1 +212.3793480718,210.899059126,194.7092996534,NA,NA,201,2009,2 +215.0121572553,211.8259350775,195.6361755483,215.0121572553,NA,202,2009,3 +217.5813739675,212.7528110291,196.5630514433,215.6823461389,217.5813739675,203,2009,4 +218.8467207845,213.6796869806,197.4899273382,216.7996817388,218.8467207845,204,2010,1 +220.0204169734,214.6065629322,198.4168032331,217.5405134691,220.0204169734,205,2010,2 +221.0990692323,215.5334388837,199.343679128,218.5235662111,221.0990692323,206,2010,3 +222.1367764558,216.4603148353,200.2705550229,219.3783983266,222.1367764558,207,2010,4 +223.1514650688,217.3871907868,201.1974309179,220.338056654,223.1514650688,208,2011,1 +224.1314220995,218.3140667384,202.1243068128,221.2166251733,224.1314220995,209,2011,2 +225.1021713681,219.2409426899,203.0511827077,222.1690819159,225.1021713681,210,2011,3 +226.0564358289,220.1678186415,203.9780586026,223.0663216992,226.0564358289,211,2011,4 +227.0055324897,221.094694593,204.9049344975,224.0094184337,227.0055324897,212,2012,1 +227.9459432706,222.0215705446,205.8318103924,224.9187324865,227.9459432706,213,2012,2 +228.8843194645,222.9484464961,206.7586862874,225.8560058852,228.8843194645,214,2012,3 +229.8178629311,223.8753224477,207.6855621823,226.7721915607,229.8178629311,215,2012,4 +230.750661671,224.8021983992,208.6124380772,227.7057590139,230.750661671,216,2013,1 +231.6808235576,225.7290743508,209.5393139721,228.6261125371,231.6808235576,217,2013,2 +232.6107619653,226.6559503023,210.466189867,229.5572458408,232.6107619653,218,2013,3 +233.5392415434,227.5828262539,211.393065762,230.4801356872,233.5392415434,219,2013,4 +234.4677105499,228.5097022054,212.3199416569,231.4097083732,234.4677105499,220,2014,1 +235.395361359,229.436578157,213.2468175518,232.3341390773,235.395361359,221,2014,2 +236.3230701944,230.3634541085,214.1736934467,233.2627177248,236.3230701944,222,2014,3 +237.2503158177,231.2903300601,215.1005693416,234.1880899048,237.2503158177,223,2014,4 +238.177629948,232.2172060116,216.0274452365,235.1160376292,238.177629948,224,2015,1 +239.1046790387,233.1440819632,216.9543211315,236.0419869337,239.1046790387,225,2015,2 +240.0317871832,234.0709579147,217.8811970264,236.9695359573,240.0317871832,226,2015,3 +240.9587421084,234.9978338663,218.8080729213,237.8958398869,240.9587421084,227,2015,4 diff --git a/statsmodels/tsa/tests/results/results_arima_forecasts_all_mle_diff.csv b/statsmodels/tsa/tests/results/results_arima_forecasts_all_mle_diff.csv new file mode 100644 index 0000000..31c33b3 --- /dev/null +++ b/statsmodels/tsa/tests/results/results_arima_forecasts_all_mle_diff.csv @@ -0,0 +1,229 @@ +fc,fcdyn,fcdyn2,fcdyn3,fcdyn4,orig_index,year,quarter +NA,NA,NA,NA,NA,0,1959,1 +0.926875951549,NA,NA,NA,NA,1,1959,2 +0.633606246971,NA,NA,NA,NA,2,1959,3 +0.600976557475,NA,NA,NA,NA,3,1959,4 +0.453151231155,NA,NA,NA,NA,4,1960,1 +0.531396899407,0.787253151569,NA,NA,NA,5,1960,2 +0.408473743096,0.450278225814,NA,NA,NA,6,1960,3 +0.552393586774,0.853030688488,NA,NA,NA,7,1960,4 +0.417651790939,0.693779737886,NA,NA,NA,8,1961,1 +0.49095737465,0.896663177231,NA,NA,NA,9,1961,2 +0.428833239858,0.79609648489,NA,NA,NA,10,1961,3 +0.469147620504,0.922687243459,NA,NA,NA,11,1961,4 +0.436736999814,0.853134868764,NA,NA,NA,12,1962,1 +0.510394254885,0.930099410742,NA,NA,NA,13,1962,2 +0.411385504482,0.885506756535,NA,NA,NA,14,1962,3 +0.535566555581,0.931828485019,NA,NA,NA,15,1962,4 +0.402270158287,0.903283376045,NA,NA,NA,16,1963,1 +0.506194338861,0.931510040586,NA,NA,NA,17,1963,2 +0.458491247855,0.913278709777,NA,NA,NA,18,1963,3 +0.484240944987,0.930532502277,NA,NA,NA,19,1963,4 +0.501669612343,0.918968783543,NA,NA,NA,20,1964,1 +0.440101630027,0.929541114521,NA,NA,NA,21,1964,2 +0.478275976186,0.922234739649,NA,NA,NA,22,1964,3 +0.442414613977,0.928731855015,NA,NA,NA,23,1964,4 +0.503014933228,0.924128963213,0.502280133605,NA,NA,24,1965,1 +0.456930426173,0.928130464384,0.610884416699,NA,NA,25,1965,2 +0.537425616205,0.925238000735,0.678885168808,NA,NA,26,1965,3 +0.436082712435,0.927706897914,0.769092153842,NA,NA,27,1965,4 +0.568771416789,0.925892825845,0.807055881607,NA,NA,28,1966,1 +0.539133819579,0.927418422325,0.8443911252,NA,NA,29,1966,2 +0.559164529019,0.926282457845,0.866300675959,NA,NA,30,1966,3 +0.615494140728,0.927226332487,0.885927796804,NA,NA,31,1966,4 +0.463903076148,0.926515888507,0.895779387647,NA,NA,32,1967,1 +0.5830295495,0.927100449929,0.906369888149,NA,NA,33,1967,2 +0.495443791961,0.926656578438,0.911084532602,NA,NA,34,1967,3 +0.60777429841,0.927018911675,0.916577188454,NA,NA,35,1967,4 +0.582869042841,0.926741814344,0.918827665409,NA,NA,36,1968,1 +0.61140316355,0.926966555469,0.921731741588,NA,NA,37,1968,2 +0.654308182057,0.926793684079,0.922760814887,NA,NA,38,1968,3 +0.626046083673,0.926933159955,0.924312401736,NA,NA,39,1968,4 +0.659568437175,0.92682536852,0.924768399047,NA,NA,40,1969,1 +0.702182612167,0.926911967617,0.925602340246,NA,NA,41,1969,2 +0.676680100948,0.92684478457,0.925793418185,NA,NA,42,1969,3 +0.718982324355,0.926898573002,0.926246113743,NA,NA,43,1969,4 +0.715065412134,0.926856714388,0.926317964381,NA,NA,44,1970,1 +0.739464381186,0.926890133571,0.926566236201,NA,NA,45,1970,2 +0.665152927376,0.926864060735,0.926587190611,NA,NA,46,1970,3 +0.720428394041,0.926884829459,0.926724766752,NA,NA,47,1970,4 +0.650156869346,0.926868592935,0.926725808206,NA,NA,48,1971,1 +0.603689964031,0.926881502481,0.926802868425,NA,NA,49,1971,2 +0.677376711493,0.926871393255,0.926797452637,NA,NA,50,1971,3 +0.552124032301,0.926879418957,0.92684108383,NA,NA,51,1971,4 +0.647156334215,0.926873125665,0.926834650149,NA,NA,52,1972,1 +0.54154829535,0.926878115805,0.926859615951,NA,NA,53,1972,2 +0.617995496756,0.92687419852,0.926854064781,NA,NA,54,1972,3 +0.584525798927,0.926877301574,0.92686849581,NA,NA,55,1972,4 +0.686365897037,0.926874863483,0.926864259633,NA,NA,56,1973,1 +0.839659370651,0.926876793247,0.926872681224,NA,NA,57,1973,2 +0.701099361701,0.926875275918,0.926869650253,NA,NA,58,1973,3 +1.15320258826,0.926876476108,0.926874608391,NA,NA,59,1973,4 +0.871441863591,0.926875531869,0.926872522849,NA,NA,60,1974,1 +1.280416856594,0.926876278354,0.926875465351,NA,NA,61,1974,2 +0.941912924665,0.926875690783,0.926874066857,NA,NA,62,1974,3 +1.421855168187,0.926876155098,0.926875825659,NA,NA,63,1974,4 +0.964394131175,0.926875789485,0.926874904564,NA,NA,64,1975,1 +1.150466774181,0.926876078301,0.926875962472,NA,NA,65,1975,2 +0.85409221038,0.926875850808,0.926875363632,NA,NA,66,1975,3 +0.993557830512,0.926876030465,0.926876003446,NA,NA,67,1975,4 +0.837995387265,0.926875888918,0.926875617851,NA,NA,68,1976,1 +0.762988138921,0.926876000675,0.926876006629,NA,NA,69,1976,2 +0.859511896751,0.926875912606,0.92687576015,NA,NA,70,1976,3 +0.810030470887,0.926875982127,0.926875997335,NA,NA,71,1976,4 +0.901349696384,0.926875927332,0.926875840663,NA,NA,72,1977,1 +1.043314696339,0.92687597058,0.926875985855,NA,NA,73,1977,2 +0.853559181381,0.926875936489,0.926875886702,NA,NA,74,1977,3 +0.986097269534,0.926875963393,0.926875975834,NA,NA,75,1977,4 +0.907294657184,0.926875942182,0.926875913297,NA,NA,76,1978,1 +1.059076432587,0.926875958919,0.926875968144,NA,NA,77,1978,2 +1.177605897025,0.926875945723,0.926875928809,NA,NA,78,1978,3 +1.253949132154,0.926875956136,0.926875962625,NA,NA,79,1978,4 +1.217860010541,0.926875947925,0.926875937936,NA,NA,80,1979,1 +1.501325339319,0.926875954403,0.926875958819,NA,NA,81,1979,2 +1.524250409429,0.926875949295,0.92687594335,NA,NA,82,1979,3 +1.676176485287,0.926875953325,0.926875956264,NA,NA,83,1979,4 +1.854504652437,0.926875950147,0.926875946585,NA,NA,84,1980,1 +1.901513413987,0.926875952654,0.92687595458,NA,NA,85,1980,2 +1.558142568666,0.926875950677,0.92687594853,NA,NA,86,1980,3 +1.742290774667,0.926875952237,0.926875953484,NA,NA,87,1980,4 +1.559666600933,0.926875951007,0.926875949706,NA,NA,88,1981,1 +1.594105991891,0.926875951977,0.926875952777,NA,NA,89,1981,2 +1.707234772129,0.926875951212,0.92687595042,NA,NA,90,1981,3 +1.463881177096,0.926875951815,0.926875952326,NA,NA,91,1981,4 +1.244991116204,0.926875951339,0.926875950856,NA,NA,92,1982,1 +0.939154925645,0.926875951715,0.926875952039,NA,NA,93,1982,2 +1.542426544743,0.926875951419,0.926875951122,NA,NA,94,1982,3 +0.654114631403,0.926875951652,0.926875951857,NA,NA,95,1982,4 +1.005928586612,0.926875951468,0.926875951286,NA,NA,96,1983,1 +0.5770482181,0.926875951613,0.926875951742,NA,NA,97,1983,2 +0.95341887399,0.926875951499,0.926875951387,NA,NA,98,1983,3 +0.818617614112,0.926875951589,0.92687595167,NA,NA,99,1983,4 +1.210412511227,0.926875951518,0.926875951449,NA,NA,100,1984,1 +0.911754766523,0.926875951574,0.926875951625,NA,NA,101,1984,2 +1.082514212047,0.92687595153,0.926875951487,1.082514212047,NA,102,1984,3 +0.879318762679,0.926875951565,0.926875951597,0.879318762679,NA,103,1984,4 +0.868745408741,0.926875951537,0.926875951511,0.868745408741,NA,104,1985,1 +1.023626645298,0.926875951559,0.926875951579,1.023626645298,NA,105,1985,2 +0.79463171264,0.926875951542,0.926875951525,0.79463171264,NA,106,1985,3 +0.986626882635,0.926875951555,0.926875951568,0.986626882635,NA,107,1985,4 +0.996556789984,0.926875951545,0.926875951534,0.996556789984,NA,108,1986,1 +0.140269302742,0.926875951553,0.926875951561,0.140269302742,NA,109,1986,2 +1.03947325468,0.926875951546,0.92687595154,1.03947325468,NA,110,1986,3 +0.210711254325,0.926875951552,0.926875951556,0.210711254325,NA,111,1986,4 +1.357673381792,0.926875951547,0.926875951544,1.357673381792,NA,112,1987,1 +0.681296293846,0.926875951551,0.926875951554,0.681296293846,NA,113,1987,2 +1.386706062635,0.926875951548,0.926875951546,1.386706062635,NA,114,1987,3 +0.780417533018,0.92687595155,0.926875951552,0.780417533018,NA,115,1987,4 +1.266151933823,0.926875951549,0.926875951547,1.266151933823,NA,116,1988,1 +0.82496087227,0.92687595155,0.926875951551,0.82496087227,NA,117,1988,2 +1.302715943063,0.926875951549,0.926875951548,1.302715943063,NA,118,1988,3 +0.952175431435,0.92687595155,0.92687595155,0.952175431435,NA,119,1988,4 +1.323092157858,0.926875951549,0.926875951548,1.323092157858,NA,120,1989,1 +1.209218019042,0.92687595155,0.92687595155,1.209218019042,NA,121,1989,2 +1.303178028525,0.926875951549,0.926875951549,1.303178028525,NA,122,1989,3 +1.002851919708,0.926875951549,0.92687595155,1.002851919708,NA,123,1989,4 +1.526454782381,0.926875951549,0.926875951549,1.526454782381,NA,124,1990,1 +0.968518911231,0.926875951549,0.92687595155,0.968518911231,NA,125,1990,2 +1.590442626657,0.926875951549,0.926875951549,1.590442626657,NA,126,1990,3 +1.528578442319,0.926875951549,0.926875951549,1.528578442319,NA,127,1990,4 +1.361465855954,0.926875951549,0.926875951549,1.361465855954,NA,128,1991,1 +1.010724509749,0.926875951549,0.926875951549,1.010724509749,NA,129,1991,2 +1.063746800264,0.926875951549,0.926875951549,1.063746800264,NA,130,1991,3 +0.791401287815,0.926875951549,0.926875951549,0.791401287815,NA,131,1991,4 +1.127729190237,0.926875951549,0.926875951549,1.127729190237,NA,132,1992,1 +0.898267568671,0.926875951549,0.926875951549,0.898267568671,NA,133,1992,2 +1.127627885484,0.926875951549,0.926875951549,1.127627885484,NA,134,1992,3 +0.961916150629,0.926875951549,0.926875951549,0.961916150629,NA,135,1992,4 +1.111301745236,0.926875951549,0.926875951549,1.111301745236,NA,136,1993,1 +0.925817768912,0.926875951549,0.926875951549,0.925817768912,NA,137,1993,2 +0.939080160518,0.926875951549,0.926875951549,0.939080160518,NA,138,1993,3 +0.947089980712,0.926875951549,0.926875951549,0.947089980712,NA,139,1993,4 +0.82756283985,0.926875951549,0.926875951549,0.82756283985,NA,140,1994,1 +0.954939844073,0.926875951549,0.926875951549,0.954939844073,NA,141,1994,2 +0.959020786992,0.926875951549,0.926875951549,0.959020786992,NA,142,1994,3 +0.979792181372,0.926875951549,0.926875951549,0.979792181372,NA,143,1994,4 +1.032840789674,0.926875951549,0.926875951549,1.032840789674,NA,144,1995,1 +1.075400219918,0.926875951549,0.926875951549,1.075400219918,NA,145,1995,2 +0.910463491692,0.926875951549,0.926875951549,0.910463491692,NA,146,1995,3 +1.005071328455,0.926875951549,0.926875951549,1.005071328455,NA,147,1995,4 +0.959890396531,0.926875951549,0.926875951549,0.959890396531,NA,148,1996,1 +1.143650550597,0.926875951549,0.926875951549,1.143650550597,NA,149,1996,2 +0.930644097148,0.926875951549,0.926875951549,0.930644097148,NA,150,1996,3 +1.169777601905,0.926875951549,0.926875951549,1.169777601905,NA,151,1996,4 +0.93805492924,0.926875951549,0.926875951549,0.93805492924,NA,152,1997,1 +0.906242336212,0.926875951549,0.926875951549,0.906242336212,NA,153,1997,2 +0.745600585391,0.926875951549,0.926875951549,0.745600585391,NA,154,1997,3 +0.94985805589,0.926875951549,0.926875951549,0.94985805589,NA,155,1997,4 +0.641043854442,0.926875951549,0.926875951549,0.641043854442,NA,156,1998,1 +0.774912961323,0.926875951549,0.926875951549,0.774912961323,NA,157,1998,2 +0.776379228982,0.926875951549,0.926875951549,0.776379228982,NA,158,1998,3 +0.772859284549,0.926875951549,0.926875951549,0.772859284549,NA,159,1998,4 +0.885948439896,0.926875951549,0.926875951549,0.885948439896,NA,160,1999,1 +0.980364607258,0.926875951549,0.926875951549,0.980364607258,NA,161,1999,2 +0.857865677115,0.926875951549,0.926875951549,0.857865677115,NA,162,1999,3 +1.186796165191,0.926875951549,0.926875951549,1.186796165191,NA,163,1999,4 +0.938294852229,0.926875951549,0.926875951549,0.938294852229,NA,164,2000,1 +1.366714667797,0.926875951549,0.926875951549,1.366714667797,NA,165,2000,2 +1.187093606191,0.926875951549,0.926875951549,1.187093606191,NA,166,2000,3 +1.268164124663,0.926875951549,0.926875951549,1.268164124663,NA,167,2000,4 +1.28704922554,0.926875951549,0.926875951549,1.28704922554,NA,168,2001,1 +0.956166057554,0.926875951549,0.926875951549,0.956166057554,NA,169,2001,2 +1.112741880681,0.926875951549,0.926875951549,1.112741880681,NA,170,2001,3 +0.553027367719,0.926875951549,0.926875951549,0.553027367719,NA,171,2001,4 +0.731847516179,0.926875951549,0.926875951549,0.731847516179,NA,172,2002,1 +0.927667777009,0.926875951549,0.926875951549,0.927667777009,NA,173,2002,2 +0.763984054662,0.926875951549,0.926875951549,0.763984054662,NA,174,2002,3 +1.187585436838,0.926875951549,0.926875951549,1.187585436838,NA,175,2002,4 +0.970261476307,0.926875951549,0.926875951549,0.970261476307,NA,176,2003,1 +0.955771997295,0.926875951549,0.926875951549,0.955771997295,NA,177,2003,2 +0.781622253043,0.926875951549,0.926875951549,0.781622253043,NA,178,2003,3 +1.002306955991,0.926875951549,0.926875951549,1.002306955991,NA,179,2003,4 +0.980189093065,0.926875951549,0.926875951549,0.980189093065,NA,180,2004,1 +1.115364246408,0.926875951549,0.926875951549,1.115364246408,NA,181,2004,2 +1.252112578409,0.926875951549,0.926875951549,1.252112578409,NA,182,2004,3 +1.263254580758,0.926875951549,0.926875951549,1.263254580758,NA,183,2004,4 +1.101757976061,0.926875951549,0.926875951549,1.101757976061,NA,184,2005,1 +1.480277083021,0.926875951549,0.926875951549,1.480277083021,NA,185,2005,2 +0.8474719581,0.926875951549,0.926875951549,0.8474719581,NA,186,2005,3 +2.641343677264,0.926875951549,0.926875951549,2.641343677264,NA,187,2005,4 +0.299792134874,0.926875951549,0.926875951549,0.299792134874,NA,188,2006,1 +2.323857621587,0.926875951549,0.926875951549,2.323857621587,NA,189,2006,2 +0.368579502305,0.926875951549,0.926875951549,0.368579502305,NA,190,2006,3 +1.145176180268,0.926875951549,0.926875951549,1.145176180268,NA,191,2006,4 +0.767219433255,0.926875951549,0.926875951549,0.767219433255,NA,192,2007,1 +1.546790605375,0.926875951549,0.926875951549,1.546790605375,NA,193,2007,2 +0.98052154915,0.926875951549,0.926875951549,0.98052154915,NA,194,2007,3 +1.809685838489,0.926875951549,0.926875951549,1.809685838489,NA,195,2007,4 +1.594814571946,0.926875951549,0.926875951549,1.594814571946,NA,196,2008,1 +1.576157878722,0.926875951549,0.926875951549,1.576157878722,NA,197,2008,2 +2.627374926492,0.926875951549,0.926875951549,2.627374926492,NA,198,2008,3 +-0.080501465061,0.926875951549,0.926875951549,-0.080501465061,NA,199,2008,4 +-0.143905364796,0.926875951549,0.926875951549,-0.143905364796,NA,200,2009,1 +-0.291651949853,0.926875951549,0.926875951549,-0.291651949853,NA,201,2009,2 +0.543157406421,0.926875951549,0.926875951549,0.543157406423,NA,202,2009,3 +1.196374008885,0.926875951549,0.926875951549,0.670188970211,1.196374008885,203,2009,4 +1.265346864378,0.926875951549,0.926875951549,1.117335644106,1.265346864378,204,2010,1 +1.173696210516,0.926875951549,0.926875951549,0.740831804756,1.173696210516,205,2010,2 +1.078652308679,0.926875951549,0.926875951549,0.983052812221,1.078652308679,206,2010,3 +1.037707266894,0.926875951549,0.926875951549,0.85483217265,1.037707266894,207,2010,4 +1.014688660435,0.926875951549,0.926875951549,0.959658388297,1.014688660435,208,2011,1 +0.979957079474,0.926875951549,0.926875951549,0.878568582037,0.979957079474,209,2011,2 +0.970749320849,0.926875951549,0.926875951549,0.952456798029,0.970749320849,210,2011,3 +0.954264512229,0.926875951549,0.926875951549,0.89723984453,0.954264512229,211,2011,4 +0.949096714807,0.926875951549,0.926875951549,0.943096789796,0.949096714807,212,2012,1 +0.940410834647,0.926875951549,0.926875951549,0.909314112718,0.940410834647,213,2012,2 +0.938376248966,0.926875951549,0.926875951549,0.937273453716,0.938376248966,214,2012,3 +0.933543521689,0.926875951549,0.926875951549,0.91618573467,0.933543521689,215,2012,4 +0.932798795546,0.926875951549,0.926875951549,0.933567508384,0.932798795546,216,2013,1 +0.930161942404,0.926875951549,0.926875951549,0.920353581631,0.930161942404,217,2013,2 +0.929938463825,0.926875951549,0.926875951549,0.931133359137,0.929938463825,218,2013,3 +0.928479634179,0.926875951549,0.926875951549,0.922889904339,0.928479634179,219,2013,4 +0.928469062843,0.926875951549,0.926875951549,0.929572741746,0.928469062843,220,2014,1 +0.927650865487,0.926875951549,0.926875951549,0.924430761588,0.927650865487,221,2014,2 +0.927708891911,0.926875951549,0.926875951549,0.928578703482,0.927708891911,222,2014,3 +0.927245679784,0.926875951549,0.926875951549,0.925372237336,0.927245679784,223,2014,4 +0.927314186847,0.926875951549,0.926875951549,0.927947780535,0.927314186847,224,2015,1 +0.927049147244,0.926875951549,0.926875951549,0.925949361587,0.927049147244,225,2015,2 +0.927108200998,0.926875951549,0.926875951549,0.927549079877,0.927108200998,226,2015,3 +0.926954981816,0.926875951549,0.926875951549,0.92630398656,0.926954981816,227,2015,4 diff --git a/statsmodels/tsa/tests/results/results_arma.py b/statsmodels/tsa/tests/results/results_arma.py new file mode 100644 index 0000000..67c87d9 --- /dev/null +++ b/statsmodels/tsa/tests/results/results_arma.py @@ -0,0 +1,726 @@ +""" +Results for ARMA models. Produced by gretl. +""" +import os +from numpy import genfromtxt + +current_path = os.path.dirname(os.path.abspath(__file__)) +yhat_mle = genfromtxt(open(current_path+"/yhat_exact_nc.csv", "rb"), delimiter=",", skip_header = 1, dtype=float) + +yhat_css = genfromtxt(open(current_path+"/yhat_css_nc.csv", "rb"), delimiter=",", skip_header = 1, dtype=float) + +yhatc_mle = genfromtxt(open(current_path+"/yhat_exact_c.csv", "rb"), delimiter=",", skip_header = 1, dtype=float) + +yhatc_css = genfromtxt(open(current_path+"/yhat_css_c.csv", "rb"), delimiter=",", skip_header = 1, dtype=float) + +resids_mle = genfromtxt(open(current_path+"/resids_exact_nc.csv", "rb"), delimiter=",", skip_header = 1, dtype=float) + +resids_css = genfromtxt(open(current_path+"/resids_css_nc.csv", "rb"), delimiter=",", skip_header = 1, dtype=float) + +residsc_mle = genfromtxt(open(current_path+"/resids_exact_c.csv", "rb"), delimiter=",", skip_header = 1, dtype=float) + +residsc_css = genfromtxt(open(current_path+"/resids_css_c.csv", "rb"), delimiter=",", skip_header = 1, dtype=float) + +forecast_results = genfromtxt(open(current_path+"/results_arma_forecasts.csv", + "rb"), names=True, delimiter=",", dtype=float) + +class Y_arma11(object): + def __init__(self, method="mle"): + if method == "mle": + self.params = [0.788452102751, 0.381793815167] + self.aic = 714.489820273473 + self.bic = 725.054203027060 + self.arroots = 1.2683 + 0j + self.maroots = -2.6192 + 0j + self.bse = [0.042075906061, 0.060925105865] + self.hqic = 718.741675179309 + self.llf = -354.244910136737 + self.resid = resids_mle[:,0] + self.fittedvalues = yhat_mle[:,0] + self.pvalues = [2.39e-78, 3.69e-10] + self.tvalues = [18.74, 6.267] + self.sigma2 = 0.994743350844 ** 2 + self.cov_params = [[ 0.0017704, -0.0010612], + [-0.0010612, 0.0037119 ]] + self.forecast = forecast_results['fc11'] + self.forecasterr = forecast_results['fe11'] + elif method =="css": + self.params = [0.791515576984, 0.383078056824] + self.aic = 710.994047176570 + self.bic = 721.546405865964 + self.arroots = [ 1.2634 + 0.0000j] + self.maroots = [-2.6104 +0.0000j] +# self.bse = [0.042369318062, 0.065703859674] +#NOTE: bse, cov_params, tvalues taken from R + self.bse = [0.0424015620491, 0.0608752234378] +# self.cov_params = [ +#[ 0.0017952, -0.0010996], +#[ -0.0010996, 0.0043170]] + self.cov_params = [ +[0.00179789246421, -0.00106195321540], +[-0.00106195321540, 0.00370579282860]] + self.hqic = 715.241545108550 + self.llf = -352.497023588285 + self.resid = resids_css[1:,0] + self.fittedvalues = yhat_css[1:,0] + self.pvalues = [ 7.02e-78, 5.53e-09] +# self.tvalues = [18.68, 5.830] + self.tvalues = [18.6671317239, 6.2928857557] + self.sigma2 = 0.996717562780**2 + + +class Y_arma14(object): + def __init__(self, method="mle"): + if method == "mle": + self.params = [0.763798613302, 0.306453049063, -0.835653786888, + 0.151382611965, 0.421169903784] + self.aic = 736.001094752429 + self.bic = 757.129860259603 + self.arroots = 1.3092 + 0j + self.maroots = [1.0392 -0.7070j, 1.0392 + 0.7070j, + -1.2189 -0.1310j, -1.2189 + 0.1310j] + self.bse = [0.064888368113, 0.078031359430, 0.076246826219, + 0.069267771804, 0.071567389557] + self.cov_params = [[ 0.0042105, -0.0031074, -0.0027947, + -0.00027766, -0.00037373 ], +[ -0.0031074, 0.0060889, 0.0033958, -0.0026825, -0.00062289 ], +[ -0.0027947, 0.0033958, 0.0058136, -0.00063747, -0.0028984 ], +[ -0.00027766, -0.0026825, -0.00063747, 0.0047980, 0.0026998 ], +[ -0.00037373, -0.00062289, -0.0028984, 0.0026998, 0.0051219 ]] + self.hqic = 744.504804564101 + self.llf = -362.000547376215 + self.resid = resids_mle[:,1] + self.fittedvalues = yhat_mle[:,1] + self.pvalues = [5.51e-32, 8.59e-05, 5.96e-28, 0.0289, 3.98e-09] + self.tvalues = [11.77, 3.927, -10.96, 2.185, 5.885] + self.sigma2 = 1.022607088673 ** 2 + self.bse = [0.064888368113, 0.078031359430, 0.076246826219, + 0.069267771804, 0.071567389557] + elif method =="css": + self.params = [0.772072791055, 0.283961556581, -0.834797380642, + 0.157773469382, 0.431616426021] + self.aic = 734.294057687460 + self.bic = 755.398775066249 + self.arroots = [1.2952 +0.0000j] + self.maroots = [1.0280 -0.6987j, 1.0280 +0.6987j, + -1.2108 -0.1835j, -1.2108 +0.1835j] +#NOTE: bse, cov_params, and tvalues taken from R +# self.bse = [0.083423762397, 0.086852297123, 0.093883465705, +# 0.068170451942, 0.065938183073] + self.bse = [0.06106330, 0.07381130, 0.07257705, 0.06857992, + 0.07046048] +# self.cov_params = [ +#[ 0.0069595, -0.0053083, -0.0054522, -0.0016324, -0.00099984], +#[ -0.0053083, 0.0075433, 0.0052442, -0.00071680, 0.0010335], +#[ -0.0054522, 0.0052442, 0.0088141, 0.0019754, -0.0018231], +#[ -0.0016324, -0.00071680, 0.0019754, 0.0046472, 0.0011853], +#[ -0.00099984, 0.0010335, -0.0018231, 0.0011853, 0.0043478]] + self.cov_params = [ +[ 0.0037287270, -0.0025337305, -0.0023475489, -0.0001894180, -0.0002716368], +[-0.0025337305, 0.0054481087, 0.0029356374, -0.0027307668, -0.0008073432], +[-0.0023475489, 0.0029356374, 0.0052674275, -0.0007578638, -0.0028534882], +[-0.0001894180, -0.0027307668, -0.0007578638, 0.0047032056, 0.0026710177], +[-0.0002716368, -0.0008073432, -0.0028534882, 0.0026710177, 0.0049646795] + ] + self.hqic = 742.789053551421 + self.llf = -361.147028843730 + self.resid = resids_css[1:,1] + self.fittedvalues = yhat_css[1:,1] + self.pvalues = [2.15e-20, 0.0011, 6.01e-19, 0.0206, 5.92e-11] +# self.tvalues = [9.255, 3.269, -8.892, 2.314, 6.546] + self.tvalues = [ 12.643194, 3.847252, -11.501785, 2.301399, + 6.126120 ] + self.sigma2 = 1.031950951582**2 + +class Y_arma41(object): + def __init__(self, method="mle"): + if method == "mle": + self.params = [0.859167822255, -0.445990454620, -0.094364739597, + 0.633504596270, 0.039251240870] + self.aic = 680.801215465509 + self.bic = 701.929980972682 + self.arroots = [1.0209-0j, 0.2966-0.9835j , 0.2966+0.9835j , + -1.4652 + 0.0000j ] + self.maroots = [-25.4769 + 0.0000] + self.bse = [0.097363938243, 0.136020728785, 0.128467873077, + 0.081059611396, 0.138536155409] + self.cov_params = [ +[ 0.0094797, -0.012908, 0.011870, -0.0073247, -0.011669], +[ -0.012908, 0.018502, -0.017103, 0.010456, 0.015892], +[ 0.011870, -0.017103, 0.016504, -0.010091, -0.014626], +[ -0.0073247, 0.010456, -0.010091, 0.0065707, 0.0089767], +[ -0.011669, 0.015892, -0.014626, 0.0089767, 0.019192]] + self.hqic = 689.304925277181 + self.llf = -334.400607732754 + self.resid = resids_mle[:,2] + self.fittedvalues = yhat_mle[:,2] + self.pvalues = [1.10e-18, 0.0010, 0.4626, 5.48e-15, 0.7769] + self.tvalues = [8.824, -3.279, -.7345, 7.815, .2833] + self.sigma2 = 0.911409665692 ** 2 + self.forecast = forecast_results['fc41'] + self.forecasterr = forecast_results['fe41'] + elif method =="css": + self.params = [0.868370308475, -0.459433478113, -0.086098063077, + 0.635050245511, 0.033645204508] + self.aic = 666.171731561927 + self.bic = 687.203720777521 + self.arroots = [1.0184 +0.0000j, 0.2960 -0.9803j, 0.2960 +0.9803j, + -1.4747 +0.0000j] + self.maroots = [-29.7219 +0.0000j] +#NOTE: bse, cov_params, and t are from R +# self.bse = [0.077822066628, 0.112199961491, 0.104986211369, +# 0.068394652456, 0.113996438269] + self.bse = [0.09554032, 0.13387533, 0.12691479, 0.08045129, + 0.13456419] +# self.cov_params = [ +#[ 0.0060563, -0.0083712, 0.0076270, -0.0047067, -0.0070610], +#[ -0.0083712, 0.012589, -0.011391, 0.0069576, 0.0098601], +#[ 0.0076270, -0.011391, 0.011022, -0.0067771, -0.0089971], +#[ -0.0047067, 0.0069576, -0.0067771, 0.0046778, 0.0054205], +#[ -0.0070610, 0.0098601, -0.0089971, 0.0054205, 0.012995] +# ] + self.cov_params = [ +[ 0.009127952, -0.01243259, 0.011488329, -0.007070855, -0.011031907], +[-0.012432590, 0.01792260, -0.016597806, 0.010136298, 0.015053122], +[ 0.011488329, -0.01659781, 0.016107364, -0.009851695, -0.013923062], +[-0.007070855, 0.01013630, -0.009851695, 0.006472410, 0.008562476], +[-0.011031907, 0.01505312, -0.013923062, 0.008562476, 0.018107521] +] + self.hqic = 674.640335476392 + self.llf = -327.085865780964 + self.resid = resids_css[4:,2] + self.fittedvalues = yhat_css[4:,2] + self.pvalues = [6.51e-29, 4.23e-05, 0.4122, 1.62e-20, 0.7679] +# self.tvalues = [11.16, -4.095, -0.8201, 9.285, 0.2951] + self.tvalues = [9.0887381, -3.4315100, -0.6786792, 7.8938778, + 0.2503143 ] + self.sigma2 = 0.914551777765**2 + +class Y_arma22(object): + def __init__(self, method="mle"): + if method == "mle": + self.params = [0.810898877154, -0.535753742985, 0.101765385197, + -0.691891368356] + self.aic = 756.286535543453 + self.bic = 773.893840132765 + self.arroots = [ 0.7568 -1.1375j, 0.7568 +1.1375j] + self.maroots = [-1.1309, 1.2780] + self.bse = [0.065073834100, 0.060522519771, 0.065569474599, + 0.071275323591] + self.cov_params = [ +[ 0.0042346, -0.0012416, -0.0024319, -0.0012756], +[ -0.0012416, 0.0036630, -0.00022460, -0.0019999], +[ -0.0024319, -0.00022460, 0.0042994, 0.0017842], +[ -0.0012756, -0.0019999, 0.0017842, 0.0050802]] + self.hqic = 763.372960386513 + self.llf = -373.143267771727 + self.resid = resids_mle[:,3] + self.fittedvalues = yhat_mle[:,3] + self.pvalues = [1.22e-35 , 8.59e-19, 0.1207, 2.81e-22] + self.tvalues = [12.46, -8.852, 1.552, -9.707] + self.sigma2 = 1.069529754715**2 + elif method =="css": + self.params = [0.811172493623, -0.538952207139, 0.108020549805, + -0.697398037845] + self.aic = 749.652327535412 + self.bic = 767.219471266237 + self.arroots = [ 0.7525 -1.1354j, 0.7525 +1.1354j] + self.maroots = [-1.1225 +0.0000j, 1.2774 +0.0000j] +#NOTE: bse, cov_params, and tvalues taken from R +# self.bse = [0.063356402845, 0.064719801680, 0.058293106832, +# 0.061453528114] + self.bse = [0.06549657, 0.06127495, 0.06514116, 0.07148213] +# self.cov_params = [ +#[ 0.0040140, -0.0016670, -0.0019069, -0.0011369], +#[ -0.0016670, 0.0041887, -0.00019356, -0.0014322], +#[ -0.0019069, -0.00019356, 0.0033981, 0.0020063], +#[ -0.0011369, -0.0014322, 0.0020063, 0.0037765]] + self.cov_params = [ +[ 0.004289801, -0.0012980774, -0.0024461381, -0.001244467], +[-0.001298077, 0.0037546193, -0.0001725373, -0.002039177], +[-0.002446138, -0.0001725373, 0.0042433713, 0.001720042], +[-0.001244467, -0.0020391767, 0.0017200417, 0.005109695] + ] + self.hqic = 756.724194601530 + self.llf = -369.826163767706 + self.resid = resids_css[2:,3] + self.fittedvalues = yhat_css[2:,3] + self.pvalues = [1.57e-37, 8.26e-17, 0.0639, 7.55e-30] +# self.tvalues = [ 12.80, -8.327, 1.853, -11.35] + self.tvalues = [12.385077, -8.795883, 1.657944, -9.755738] + self.sigma2 = 1.074973483083**2 + +class Y_arma50(object): + def __init__(self, method="mle"): + if method == "mle": + self.params = [0.726892679311, -0.312619864536, 0.323740181610, + 0.226499145083, -0.089562902305] + self.aic = 691.422630427314 + self.bic = 712.551395934487 + self.arroots = [1.0772 +0.0000j, 0.0087 -1.2400j, + 0.0087 + 1.2400j, -1.9764 +0.0000j, + 3.4107 + 0.0000j] + self.maroots = None #TODO: empty array? + self.bse = [0.062942787895, 0.076539691571, 0.076608230545, + 0.077330717503, 0.063499540628] + self.cov_params = [ +[ 0.0039618, -0.0028252, 0.0013351, -0.0013901, -0.00066624], +[ -0.0028252, 0.0058583, -0.0040200, 0.0026059, -0.0014275], +[ 0.0013351, -0.0040200, 0.0058688, -0.0041018, 0.0013917], +[ -0.0013901, 0.0026059, -0.0041018, 0.0059800, -0.0028959], +[ -0.00066624, -0.0014275, 0.0013917, -0.0028959, 0.0040322]] + self.hqic = 699.926340238986 + self.llf = -339.711315213657 + self.resid = resids_mle[:,4] + self.fittedvalues = yhat_mle[:,4] + self.pvalues = [7.51e-31, 4.42e-05, 2.38e-05, 0.0034, 0.1584] + self.tvalues = [11.55, -4.084, 4.226, 2.929, -1.410] + self.sigma2 = 0.938374940397 ** 2 + self.forecast = forecast_results['fc50'] + self.forecasterr = forecast_results['fe50'] + elif method =="css": +#NOTE: some results use x-12 arima because gretl uses LS estimates for AR CSS + self.params = [0.725706505843, -0.305501865989, 0.320719417706, + 0.226552951649, -0.089852608091 ] +# self.aic = 674.817286564674 + self.aic = 676.8173 +# self.bic = 692.323577617397 + self.bic = 697.8248 + self.arroots = [1.0755 +0.0000j,0.0075-1.2434j, 0.0075 +1.2434j, + -1.9686 +0.0000j, 3.3994 +0.0000j] + self.maroots = None + self.bse = [0.064344956583, 0.078060866211, 0.077980166982, + 0.078390791831, 0.064384559496] + self.cov_params = [ +[ 0.0041403, -0.0029335, 0.0013775, -0.0014298, -0.00068813], +[ -0.0029335, 0.0060935, -0.0041786, 0.0026980, -0.0014765], +[ 0.0013775, -0.0041786, 0.0060809, -0.0042177, 0.0014572], +[ -0.0014298, 0.0026980, -0.0042177, 0.0061451, -0.0029853], +[ -0.00068813, -0.0014765, 0.0014572, -0.0029853, 0.0041454]] +# self.hqic = 681.867054880965 + self.hqic = 685.2770 + self.llf = -332.408643282337 + self.resid = resids_css[5:,4] + self.fittedvalues = yhat_css[5:,4] + self.pvalues = [1.68e-29, 9.09e-05, 3.91e-05, 0.0039, 0.1628] + self.tvalues = [11.28, -3.914, 4.113, 2.890, -1.396] +# self.sigma2 = 0.949462810435**2 + self.sigma2 = .939724 ** 2 + + +class Y_arma02(object): + def __init__(self, method="mle"): + if method == "mle": + self.params = [0.169096401142, -0.683713393265] + self.aic = 775.017701544762 + self.bic = 785.582084298349 + self.arroots = None + self.maroots = [-1.0920 + 0j, 1.3393 + 0j] + self.bse = [0.049254112414, 0.050541821979] + self.cov_params = [[0.0024260, 0.00078704], [0.00078704, + 0.0025545]] + self.hqic = 779.269556450598 + self.llf = -384.508850772381 + self.resid = resids_mle[:,5] + self.fittedvalues = yhat_mle[:,5] + self.pvalues = [.0006, 1.07e-41] + self.tvalues = [3.433, -13.53] + self.sigma2 = 1.122887152869 ** 2 + elif method =="css": +# bse, cov_params, tvalues taken from R + self.params = [0.175605240783, -0.688421349504] + self.aic = 773.725350463014 + self.bic = 784.289733216601 + self.arroots = None + self.maroots = [-1.0844 + 0.j, 1.3395 +0.j] +# self.bse = [0.044465497496, 0.045000813836] + self.bse = [0.04850046, 0.05023068] +# self.cov_params = [ +#[ 0.0019772, 0.00090016], +#[ 0.00090016, 0.0020251]] + self.cov_params = [ +[0.0023522942, 0.0007545702], +[0.0007545702, 0.0025231209] +] + self.hqic = 777.977205368850 + self.llf = -383.862675231507 + self.resid = resids_css[:,5] + self.fittedvalues = yhat_css[:,5] + self.pvalues = [7.84e-05, 7.89e-53] +# self.tvalues = [3.949, -15.30] + self.tvalues = [3.620967, -13.705514 ] + self.sigma2 = 1.123571177436**2 + +class Y_arma11c(object): + def __init__(self, method="mle"): + if method == "mle": + self.params = [4.856475759430, 0.664363281011, 0.407547531124] + self.aic = 737.922644877973 + self.bic = 752.008488549422 + self.arroots = [1.5052 + 0j] + self.maroots = [-2.4537 + 0j] + self.bse = [0.273164176960, 0.055495689209, 0.068249092654] + self.cov_params = [ +[ 0.074619, -0.00012834, 1.5413e-05], +[ -0.00012834, 0.0030798, -0.0020242], +[ 1.5413e-05, -0.0020242, 0.0046579]] + self.hqic = 743.591784752421 + self.llf = -364.961322438987 + self.resid = residsc_mle[:,0] + self.fittedvalues = yhatc_mle[:,0] + self.pvalues = [1.04e-70, 5.02e-33, 2.35e-9] + self.tvalues = [17.78, 11.97, 5.971] + self.sigma2 = 1.039168068701 ** 2 + self.forecast = forecast_results['fc11c'] + self.forecasterr = forecast_results['fe11c'] + elif method =="css": +# self.params = [1.625462134333, 0.666386002049, 0.409512270580] +#NOTE: gretl gives the intercept not the mean, x-12-arima and R agree with us +#NOTE: params, bse, cov_params, tvals from R + self.params = [4.872477127267, 0.666395534262, 0.409517026658] + self.aic = 734.613526514951 + self.bic = 748.683338100810 + self.arroots = [1.5006 +0.0000j] + self.maroots = [-2.4419 +0.0000] +# self.bse = [0.294788633992, 0.057503298669, 0.063059352497] + self.bse = [ 0.2777238133284, 0.0557583459688, 0.0681432545482] +# self.cov_params = [ +#[ 0.086900, -0.016074, 0.010536], +#[ -0.016074, 0.0033066, -0.0021977], +#[ 0.010536, -0.0021977, 0.0039765] +# ] + self.cov_params = [ +[7.71305164897e-02, 5.65375305967e-06, 1.29481824075e-06 ], +[5.65375305967e-06, 3.10899314518e-03, -2.02754322743e-03], +[1.29481824075e-06, -2.02754322743e-03, 4.64350314042e-03 ] + ] + self.hqic = 740.276857090925 + self.llf = -363.306763257476 + self.resid = residsc_css[1:,0] + self.fittedvalues = yhatc_css[1:,0] + self.pvalues = [ 3.51e-08, 4.70e-31, 8.35e-11] +# self.tvalues = [5.514, 11.59, 6.494] + self.tvalues = [17.544326, 11.951494, 6.009649] + self.sigma2 = 1.040940645447**2 + + +class Y_arma14c(object): + def __init__(self, method="mle"): + if method == "mle": + self.params = [4.773779823083, 0.591149657917, 0.322267595204, + -0.702933089342, 0.116129490967, 0.323009574097] + self.aic = 720.814886758937 + self.bic = 745.465113183973 + self.arroots = [ 1.6916 +0.0000j] + self.maroots = [1.1071 -0.7821j, 1.1071 +0.7821j, + -1.2868 -0.1705j,-1.2868 +0.1705j] # had to change order? + self.bse = [0.160891073193, 0.151756542096, 0.152996852330, + 0.140231020145, 0.064663675882, 0.065045468010] + self.cov_params = [ +[0.025886, 0.00026606, -0.00020969, -0.00021435, 4.2558e-05, 5.2904e-05], +[0.00026606, 0.023030, -0.021269, -0.018787, 0.0015423, 0.0011363], +[-0.00020969, -0.021269, 0.023408, 0.018469, -0.0035048, -0.0010750], +[-0.00021435, -0.018787, 0.018469, 0.019665, -0.00085717, -0.0033840], +[4.2558e-05, 0.0015423, -0.0035048, -0.00085717, 0.0041814, 0.0014543], +[5.2904e-05, 0.0011363, -0.0010750, -0.0033840, 0.0014543, 0.0042309]] + self.hqic = 730.735881539221 + self.llf = -353.407443379469 + self.resid = residsc_mle[:,1] + self.fittedvalues = yhatc_mle[:,1] + self.pvalues = [1.82e-193, 9.80e-05, 0.0352, 5.37e-07, 0.0725, + 6.84e-07] + self.tvalues = [29.67, 3.895, 2.106, -5.013, 1.796, 4.966] + self.sigma2 = 0.990262659233 ** 2 + elif method =="css": +#NOTE: params, bse, cov_params, and tvalues from R +# self.params = [1.502401748545, 0.683090744792, 0.197636417391, +# -0.763847295045, 0.137000823589, 0.304781097398] + self.params = [4.740785760452, 0.683056278882, 0.197681128402, + -0.763804443884, 0.136991271488, 0.304776424257] + self.aic = 719.977407193363 + self.bic = 744.599577468616 + self.arroots = [1.4639 +0.0000j] + self.maroots = [1.1306-0.7071j, 1.1306+0.7071j, -1.3554 -0.0896j, + -1.3554 +0.0896j] +# self.bse = [0.534723749868, 0.111273280223, 0.119840296133, +# 0.111263606843, 0.070759105676, 0.061783181500] + self.bse = [0.1750455599911, 0.0942341854820, 0.0999988749541, + 0.0929630759694, 0.0628352649371, 0.0645444272345] +# self.cov_params = [ +#[ 0.28593, -0.059175, 0.053968, 0.046974, 0.00085168, 0.0028000 ], +#[ -0.059175, 0.012382, -0.011333, -0.0098375, -0.00012631,-0.00058518 ], +#[ 0.053968, -0.011333, 0.014362, 0.010298, -0.0028117, -0.00011132 ], +#[ 0.046974, -0.0098375, 0.010298, 0.012380, 0.00031018, -0.0021617 ], +#[ 0.00085168, -0.00012631, -0.0028117, 0.00031018, 0.0050069, 0.00079958 ], +#[ .0028000, -0.00058518, -0.00011132, -0.0021617, 0.00079958, 0.0038172 ]] + self.cov_params = [ +[0.030640948072601, -1.61599091345e-03, 0.001707084515950, 0.001163372764659, -1.78587340563e-04, 0.000116062673743], +[-0.001615990913449, 8.88008171345e-03, -0.007454252059003, -0.006468410832237, 5.66645379098e-05, -0.000381880917361], +[0.001707084515950, -7.45425205900e-03, 0.009999774992092, 0.005860013051220, -2.27726197200e-03, 0.000757683049669], +[0.001163372764659, -6.46841083224e-03, 0.005860013051220, 0.008642133493695, 4.40550745987e-04, -0.002170706208320], +[-0.000178587340563, 5.66645379098e-05, -0.002277261972002, 0.000440550745987, 3.94827051971e-03, 0.000884171120090 ], +[0.000116062673743, -3.81880917361e-04, 0.000757683049669, -0.002170706208320, 8.84171120090e-04, 0.004165983087027] +] + self.hqic = 729.888235701317 + self.llf = -352.988703596681 + self.resid = residsc_css[1:,1] + self.fittedvalues = yhatc_css[1:,1] + self.pvalues = [0.0050, 8.31e-10, 0.0991, 6.64e-12, 0.0528, + 8.09e-07] +# self.tvalues = [2.810, 6.139, 1.649, -6.865, 1.936, 4.933] + self.tvalues = [27.08315344127, 7.24849772286, 1.97683352430, + -8.21621311385, 2.18016541548, 4.72196341831] + self.sigma2 = 0.998687642867**2 + + +class Y_arma41c(object): + def __init__(self, method="mle"): + if method == "mle": + self.params = [1.062980233899, 0.768972932892, -0.264824839032, + -0.279936544064, 0.756963578430, 0.231557444097] + self.aic = 686.468309958027 + self.bic = 711.118536383063 + self.arroots = [1.0077 +0j, .3044-.9793j, .3044+.9793j, + -1.2466 +0j] + self.maroots = [-4.3186 + 0.j] + self.bse = [2.781653916478, 0.063404432598, 0.091047664068, + 0.084679571389, 0.054747989396, 0.098952817806] + self.cov_params =[ +[ 7.7376, 0.0080220, -0.0039840, 0.0064925, 0.0022936, -0.0098015], +[ 0.0080220, 0.0040201, -0.0054843, 0.0046548, -0.0029922, -0.0047964], +[ -0.0039840, -0.0054843, 0.0082897, -0.0072913, 0.0043566, 0.0067289], +[ 0.0064925, 0.0046548, -0.0072913, 0.0071706, -0.0043610, -0.0057962], +[ 0.0022936, -0.0029922, 0.0043566, -0.0043610, 0.0029973, 0.0036193], +[ -0.0098015, -0.0047964, 0.0067289, -0.0057962, 0.0036193, 0.0097917]] + self.hqic = 696.389304738311 + self.llf = -336.234154979014 + self.resid = residsc_mle[:,2] + self.fittedvalues = yhatc_mle[:,2] + self.pvalues = [0.7024, 7.50e-34, 0.0036, 0.0009, 1.77e-43, 0.0193] + self.tvalues = [0.3821, 12.13, -2.909, -3.306, 13.83, 2.340] + self.sigma2 = 0.915487643192 ** 2 + self.forecast = forecast_results['fc41c'] + self.forecasterr = forecast_results['fe41c'] + elif method =="css": +# self.params = [-0.077068926631, 0.763816531155, -0.270949972390, +# -0.284496499726, 0.757135838677, 0.225247299659] +#NOTE: params, cov_params, bse, and tvalues from R + self.params = [-2.234160612756, 0.763815335585, -0.270946894536, + -0.284497190744, 0.757136686518, 0.225260672575] + self.aic = 668.907200379791 + self.bic = 693.444521131318 + self.arroots = [1.0141 +0.0000j, 0.3036 -0.9765j, 0.3036 +0.9765j, + -1.2455 +0.0000j] + self.maroots = [-4.4396 +0.0000j] +# self.bse = [0.076048453921, 0.067854052128, 0.098041415680, +# 0.090698349822, 0.057331126067, 0.099985455449] + self.bse = [2.1842857865614, 0.0644148863289, 0.0923502391706, + 0.0860004491012, 0.0558014467639, 0.1003832271008] +# self.cov_params = [ +#[ 0.0057834, 0.00052477, -0.00079965, 0.00061291, -0.00013618, -0.0018963 ], +#[ 0.00052477, 0.0046042, -0.0062505, 0.0053416, -0.0032941, -0.0047957 ], +#[-0.00079965, -0.0062505, 0.0096121, -0.0084500, 0.0047967, 0.0064755 ], +#[ 0.00061291, 0.0053416, -0.0084500, 0.0082262, -0.0048029, -0.0057908 ], +#[-0.00013618, -0.0032941, 0.0047967, -0.0048029, 0.0032869, 0.0035716 ], +#[ -0.0018963, -0.0047957, 0.0064755, -0.0057908, 0.0035716, 0.0099971] +# ] + self.cov_params = [ +[4.77110439737413, -0.00908682223670, 0.00330914414276, -0.00684678121434, -0.00232348925409, 0.00950558295301], +[-0.00908682223670, -0.00562941039954, 0.00852856667488, -0.00749429397372, -0.00304322809665, -0.00494984519949], +[0.00330914414276, -0.00562941039954, 0.00852856667488, -0.00749429397372, 0.00443590637587, 0.00693146988144], +[-0.00684678121434, 0.00482359594764, -0.00749429397372, 0.00739607724561, -0.00448059420947, -0.00600908311031], +[-0.00232348925409, -0.00304322809665, 0.00443590637587, -0.00448059420947, 0.00311380146095, 0.00373734623817 ], +[0.00950558295301, -0.00494984519949, 0.00693146988144, -0.00600908311031, 0.00373734623817, 0.01007679228317]] + self.hqic = 678.787238280001 + self.llf = -327.453600189896 + self.resid = residsc_css[4:,2] + self.fittedvalues = yhatc_css[4:,2] + self.pvalues = [0.3109, 2.15e-29, 0.0057, 0.0017, 8.06e-40, + 0.0243] +# self.tvalues = [-1.013, 11.26, -2.764, -3.137, 13.21, 2.253] + self.tvalues = [-1.02283347101, 11.85774561000, -2.93390571556, + -3.30808959392, 13.56840602577, 2.24400708246] + self.sigma2 = 0.915919923456**2 + + +class Y_arma22c(object): + def __init__(self, method="mle"): + if method == "mle": + self.params = [4.507728587708, 0.788365037622, -0.358656861792, + 0.035886565643, -0.699600200796] + self.aic = 813.417242529788 + self.bic = 834.546008036962 + self.arroots = [1.0991 -1.2571j, 1.0991 +1.2571j] + self.maroots = [-1.1702 +0.0000j, 1.2215 +0.0000j] + self.bse = [0.045346684035, 0.078382496509, 0.07004802526, + 0.069227816205, 0.070668181454] + self.cov_params = [ +[ 0.0020563, -2.3845e-05, -6.3775e-06, 4.6698e-05, 5.8515e-05], +[ -2.3845e-05, 0.0061438, -0.0014403, -0.0035405, -0.0019265], +[ -6.3775e-06, -0.0014403, 0.0049067, -0.00059888, -0.0025716], +[ 4.6698e-05, -0.0035405, -0.00059888, 0.0047925, 0.0022931], +[ 5.8515e-05, -0.0019265, -0.0025716, 0.0022931, 0.0049940]] + self.hqic = 821.920952341460 + self.llf = -400.708621264894 + self.resid = residsc_mle[:,3] + self.fittedvalues = yhatc_mle[:,3] + self.pvalues = [0.0000, 8.48e-24, 3.05e-07, 0.6042, 4.17e-23] + self.tvalues = [99.41, 10.06, -5.120, 0.5184, -9.900] + self.sigma2 = 1.196309833136 ** 2 + elif method =="css": +#NOTE: params, bse, cov_params, and tvalues from R +# self.params = [2.571274348147, 0.793030965872, -0.363511071688, +# 0.033543918525, -0.702593972949] + self.params = [4.507207454494, 0.793055048760, -0.363521072479, + 0.033519062805, -0.702595834943] + self.aic = 806.807171655455 + self.bic = 827.887744132445 +# self.bse = [0.369201481343, 0.076041378729, 0.070029488852, +# 0.062547355221, 0.068166970089] + self.bse = [0.0446913896589, 0.0783060902603, 0.0697866176073, + 0.0681463870772, 0.068958002297] +# self.cov_params = [ +#[ 0.13631, -0.017255, -0.012852, 0.014091, 0.017241], +#[ -0.017255, 0.0057823, -0.0020013, -0.0026493, -0.0014131], +#[ -0.012852, -0.0020013, 0.0049041, -0.00042960, -0.0023845], +#[ 0.014091, -0.0026493, -0.00042960, 0.0039122, 0.0022028], +#[ 0.017241, -0.0014131, -0.0023845, 0.0022028, 0.0046467] +# ] + self.cov_params =[ +[1.99732030964e-03, -2.22972353619e-05, -0.000009957435095, 4.64825632252e-05, 5.98134427402e-05], +[-2.22972353619e-05, 6.13184377186e-03, -0.001435210779968, -3.47284237940e-03, -1.95077811843e-03 ], +[-9.95743509501e-06,-1.43521077997e-03, 0.004870171997068, -6.54767224831e-04, -2.44459075151e-03], +[ 4.64825632252e-05,-3.47284237940e-03, -0.000654767224831, 4.64393007167e-03, 2.34032945541e-03], +[ 5.98134427402e-05,-1.95077811843e-03, -0.002444590751509, 2.34032945541e-03, 4.75520608091e-03]] + self.arroots = [1.0908 -1.2494j, 1.0908 +1.2494j] + self.maroots = [-1.1694 + 0.0000j, 1.2171 +0.0000j] + self.hqic = 815.293412134796 + self.llf = -397.403585827727 + self.resid = residsc_css[2:,3] + self.fittedvalues = yhatc_css[2:,3] + self.pvalues = [3.30e-12, 1.83e-25, 2.09e-07, 0.5918, 6.55e-25] +# self.tvalues = [ 6.964, 10.43, -5.191, 0.5363, -10.31] + self.tvalues = [100.851808120009, 10.127629231947, -5.209036989363, + 0.491868523669, -10.188749840927] + self.sigma2 = 1.201409294941**2 + + +class Y_arma50c(object): + def __init__(self, method="mle"): + if method == "mle": + self.params = [4.562207236168, 0.754284447885, -0.305849188005, + 0.253824706641,0.281161230244,-0.172263847479] + self.aic = 711.817562780112 + self.bic = 736.467789205148 + self.arroots = [-1.6535 + 0.j, .0129 -1.2018j, .0129 + 1.2018j, + 1.1546 + 0.j, 2.1052 + 0j] + self.maroots = None + self.bse = [0.318447388812, 0.062272737541, 0.076600312879, + 0.077310728819, 0.076837326995, 0.062642955733] + self.cov_params = [ +[ 0.10141, -6.6930e-05, -7.3157e-05, -4.4815e-05, 7.7676e-05, -0.00013170], +[-6.6930e-05, 0.0038779, -0.0028465, 0.0013770, -0.0012194, -0.00058978], +[-7.3157e-05, -0.0028465, 0.0058676, -0.0040145, 0.0024694, -0.0012307], +[-4.4815e-05, 0.0013770, -0.0040145, 0.0059769, -0.0040413, 0.0013481], +[ 7.7676e-05, -0.0012194, 0.0024694, -0.0040413, 0.0059040, -0.0028575], +[-0.00013170, -0.00058978, -0.0012307, 0.0013481, -0.0028575, 0.0039241]] + self.hqic = 721.738557560396 + self.llf = -348.908781390056 + self.resid = residsc_mle[:,4] + self.fittedvalues = yhatc_mle[:,4] + self.pvalues = [1.50e-46, 9.06e-34, 6.53e-05, 0.0010, 0.0003, + 0.0060] + self.tvalues = [14.33, 12.11, -3.993, 3.283, 3.659, -2.750] + self.sigma2 = 0.973930886014 ** 2 + self.forecast = forecast_results['fc50c'] + self.forecasterr = forecast_results['fe50c'] + elif method =="css": +#NOTE: params, bse, cov_params, tvalues from R +#likelihood based results from x-12 arima +# self.params = [0.843173779572, 0.755433266689, -0.296886816205, +# 0.253572751789, 0.276975022313, -0.172637420881] + self.params = [4.593494860193, 0.755427402630, -0.296867127441, + 0.253556723526, 0.276987447724, -0.172647993470] +# self.aic = 694.843378847617 + self.aic = 696.8434 +# self.bic = 715.850928110886 + self.bic = 721.3522 + self.arroots = [-1.6539 +0.0000j, 0.0091-1.2069j, 0.0091 +1.2069j, + 1.1508 +0.0000j, 2.0892 +0.0000j] + self.maroots = None +# self.bse = [0.236922950898, 0.063573574389, 0.078206936773, +# 0.078927252266, 0.078183651496, 0.063596048046] + self.bse = [0.3359627893565, 0.0621593755265, 0.0764672280408, + 0.0771715117870, 0.0764444608104, 0.0621813373935] +# self.cov_params = [ +#[ 0.056132, -0.0028895, -0.0012291, -0.0031424, -0.0012502, -0.0028739], +#[ -0.0028895, 0.0040416, -0.0029508, 0.0014229, -0.0012546,-0.00062818], +#[ -0.0012291, -0.0029508, 0.0061163, -0.0041939, 0.0025537, -0.0012585], +#[ -0.0031424, 0.0014229, -0.0041939, 0.0062295, -0.0041928, 0.0014204], +#[ -0.0012502, -0.0012546, 0.0025537, -0.0041928, 0.0061127, -0.0029479], +#[ -0.0028739,-0.00062818, -0.0012585, 0.0014204, -0.0029479, 0.0040445] +# ] + self.cov_params = [ +[ 1.12870995832e-01, 4.32810158586e-05, -1.89697385245e-05, 0.0000465331836881, -0.000024151327384, 0.000109807500875], +[ 4.32810158586e-05, 3.86378796585e-03, -2.82098637123e-03, 0.001360256141301, -0.001199382243647, -0.000600542191229], +[-1.89697385245e-05, -2.82098637123e-03, 5.84723696424e-03, -0.004009391809667, 0.002441359768335, -0.001203154760767], +[ 4.65331836880e-05, 1.36025614130e-03, -4.00939180967e-03, 0.005955442231484, -0.004008307295820, 0.001357917028471], +[-2.41513273840e-05, -1.19938224365e-03, 2.44135976834e-03, -0.004008307295820, 0.005843755588588, -0.002818181279545], +[ 1.09807500875e-04, -6.00542191229e-04, -1.20315476077e-03, 0.001357917028471, -0.002818181279545, 0.003866518720043]] +# self.hqic = 703.303100827167 + self.hqic = 706.7131 + self.llf = -341.421689423809 + self.resid = residsc_css[5:,4] + self.fittedvalues = yhatc_css[5:,4] + self.pvalues = [0.0004, 1.45e-32, 0.0001, 0.0013, 0.0004, 0.0066] +# self.tvalues = [ 3.559, 11.88, -3.796, 3.213, 3.543, -2.715] + self.tvalues = [13.67262984389, 12.15307258528, -3.88227918086, + 3.28562597329, 3.62338153462, -2.77652428699 ] +# self.sigma2 = 0.987100631424**2 + self.sigma2 = 0.974939 ** 2 + +class Y_arma02c(object): + def __init__(self, method="mle"): + if method == "mle": + self.params = [4.519277801954, 0.200385403960, -0.643766305844] + self.aic = 758.051194540770 + self.bic = 772.137038212219 + self.arroots = None + self.maroots = [-1.1004 + 0.j, 1.4117 + 0.j] + self.bse = [0.038397713362, 0.049314652466, 0.048961366071] + self.cov_params = [ +[ 0.0014744, 6.2363e-05, 6.4093e-05 ], +[ 6.2363e-05, 0.0024319, 0.0014083 ], +[ 6.4093e-05, 0.0014083, 0.0023972 ]] + self.hqic = 763.720334415218 + self.llf = -375.025597270385 + self.resid = residsc_mle[:,5] + self.fittedvalues = yhatc_mle[:,5] + self.pvalues = [0.0000, 4.84e-5, 1.74e-39] + self.tvalues = [117.7, 4.063, -13.15] + self.sigma2 = 1.081406299967 ** 2 + elif method =="css": +#NOTE: cov_params and tvalues taken from R + self.params = [4.519869870853, 0.202414429306, -0.647482560461] + self.aic = 756.679105324347 + self.bic = 770.764948995796 + self.arroots = None + self.maroots = [ -1.0962 + 0.0000j, 1.4089 + 0.0000j] + self.bse = [0.038411589816, 0.047983057239, 0.043400749866] +# self.cov_params = [ +#[ 0.0014755, 9.0191e-05, 7.3561e-06], +#[ 9.0191e-05, 0.0023024, 0.0012479], +#[ 7.3561e-06, 0.0012479, 0.0018836]] + self.cov_params = [ +[1.46121526606e-03, 5.30770136338e-05, 5.34796521051e-05], +[5.30770136338e-05, 2.37105883909e-03, 1.41090983316e-03], +[5.34796521051e-05, 1.41090983316e-03, 2.35584355080e-03]] + self.hqic = 762.348245198795 + self.llf = -374.339552662174 + self.resid = residsc_css[:,5] + self.fittedvalues = yhatc_css[:,5] + self.pvalues = [ 0.0000, 2.46e-05, 2.49e-50] +# self.tvalues = [117.7, 4.218, -14.92] + self.tvalues = [118.24120637494, 4.15691796413, -13.33981086206] + self.sigma2 = 1.081576475937**2 + diff --git a/statsmodels/tsa/tests/results/results_arma_forecasts.csv b/statsmodels/tsa/tests/results/results_arma_forecasts.csv new file mode 100644 index 0000000..6c64a1a --- /dev/null +++ b/statsmodels/tsa/tests/results/results_arma_forecasts.csv @@ -0,0 +1,11 @@ +"fc11","fe11","fc41","fe41","fc50","fe50","fc11c","fe11c","fc41c","fe41c","fc50c","fe50c" +-0.0931139795,0.994743,-0.4298095393,0.91141,1.24361,0.938375,4.2276592922,1.03917,-1.3985445949,0.915488,4.779739852,0.973931 +-0.073415913,1.53122,-1.4961938371,1.22521,0.484195,1.16009,4.4387131881,1.52336,3.0228581596,1.29504,4.692859693,1.21992 +-0.057884931,1.78523,-3.770193621,1.2607,0.722602,1.17762,4.5789296469,1.6936,4.071345984,1.37495,3.8280155603,1.24654 +-0.0456394955,1.92633,-3.6148341892,1.27585,1.09664,1.20138,4.6720843135,1.76352,0.8457602276,1.38243,3.9467079457,1.26508 +-0.0359845562,2.00905,-1.5553772244,1.29131,0.854109,1.31833,4.7339728534,1.79351,-2.3126724383,1.39737,4.5998286564,1.37737 +-0.028372099,2.05881,-0.3162209074,1.49296,0.510239,1.39506,4.7750893268,1.80659,-0.833875753,1.5901,4.59173986,1.4486 +-0.0223700411,2.08914,-1.6253254747,1.67599,0.579206,1.41288,4.802405602,1.81234,2.8363368346,1.83677,4.1878148976,1.45879 +-0.017637706,2.10777,-3.3986372227,1.68533,0.721688,1.43171,4.8205535323,1.81487,3.7095186811,1.86802,4.2337457799,1.46621 +-0.0139064864,2.11928,-3.150618693,1.69048,0.60394,1.47332,4.8326103507,1.81598,0.6042207231,1.86845,4.553063531,1.49431 +-0.0109645984,2.1264,-1.2381045022,1.70353,0.43997,1.50507,4.8406204582,1.81647,-1.9229410947,1.87871,4.562562544,1.51482 diff --git a/statsmodels/tsa/tests/results/results_corrgram.csv b/statsmodels/tsa/tests/results/results_corrgram.csv new file mode 100644 index 0000000..dadc099 --- /dev/null +++ b/statsmodels/tsa/tests/results/results_corrgram.csv @@ -0,0 +1,41 @@ +acvar,acvarfft,Q1,PACOLS,PACYW,acvar_lb,acvar_ub +0.98685781,0.98685781,200.6355,1.002988,0.98685781,-0.1375625,0.1375625 +0.97371846,0.97371846,396.9356,-0.3956237,-0.00650592,-0.23618231,0.23618231 +0.96014366,0.96014366,588.7549,-0.1769759,-0.0233345,-0.30276354,0.30276354 +0.94568545,0.94568545,775.7759,0.0742275,-0.04078457,-0.35574695,0.35574695 +0.93054425,0.93054425,957.7706,-0.0580367,-0.0334311,-0.40050362,0.40050362 +0.91484806,0.91484806,1134.57,0.0935246,-0.02818214,-0.43951706,0.43951706 +0.89901438,0.89901438,1306.174,0.0034315,-0.01168091,-0.47418465,0.47418465 +0.8827679,0.8827679,1472.48,0.0385079,-0.02192074,-0.50541068,0.50541068 +0.86649857,0.86649857,1633.539,0.1050301,-0.00748351,-0.53379138,0.53379138 +0.8503736,0.8503736,1789.463,-0.1834061,-0.00143193,-0.55977623,0.55977623 +0.83435254,0.83435254,1940.348,-0.0210358,-0.00310717,-0.58371041,0.58371041 +0.81829961,0.81829961,2086.244,0.0992143,-0.00921395,-0.60585868,0.60585868 +0.80240987,0.80240987,2227.266,0.2540452,-0.0025009,-0.62642442,0.62642442 +0.78635609,0.78635609,2363.419,-0.0080142,-0.01557323,-0.64558168,0.64558168 +0.77024519,0.77024519,2494.745,-0.0524568,-0.01164751,-0.66345953,0.66345953 +0.75437469,0.75437469,2621.388,0.11607,-0.00030521,-0.68017076,0.68017076 +0.73850631,0.73850631,2743.412,-0.1211871,-0.00893237,-0.6958234,0.6958234 +0.72274736,0.72274736,2860.916,0.092306,-0.00507808,-0.71050094,0.71050094 +0.70701465,0.70701465,2973.971,0.0317384,-0.00829011,-0.72427993,0.72427993 +0.69141553,0.69141553,3082.682,-0.0422092,-0.00460458,-0.73722448,0.73722448 +0.67600225,0.67600225,3187.173,0.0628712,-0.00246537,-0.74939498,0.74939498 +0.66067686,0.66067686,3287.53,0.0086186,-0.00610282,-0.76084695,0.76084695 +0.64543953,0.64543953,3383.844,-0.0044266,-0.0068184,-0.77162686,0.77162686 +0.63020869,0.63020869,3476.178,0.001695,-0.00994534,-0.78177665,0.78177665 +0.61518569,0.61518569,3564.658,-0.128714,-0.00216407,-0.79133186,0.79133186 +0.60054983,0.60054983,3649.454,0.0279399,0.00497323,-0.8003308,0.8003308 +0.58608693,0.58608693,3730.674,0.0982797,-0.00302243,-0.80881349,0.80881349 +0.57172016,0.57172016,3808.402,0.0937156,-0.00642863,-0.81681061,0.81681061 +0.55730727,0.55730727,3882.685,-0.1677933,-0.0125645,-0.82434845,0.82434845 +0.54281535,0.54281535,3953.562,-0.116249,-0.01382639,-0.8314477,0.8314477 +0.5282993,0.5282993,4021.09,0.1120091,-0.01135471,-0.83812696,0.83812696 +0.51386026,0.51386026,4085.351,-0.1551635,-0.00700203,-0.84440504,0.84440504 +0.49934969,0.49934969,4146.39,-0.0644834,-0.01242531,-0.85030197,0.85030197 +0.48452688,0.48452688,4204.199,0.2141102,-0.02166683,-0.85583326,0.85583326 +0.4697521,0.4697521,4258.86,0.0573164,-0.0078988,-0.86100856,0.86100856 +0.45473224,0.45473224,4310.389,0.1685996,-0.01871847,-0.86584485,0.86584485 +0.43987621,0.43987621,4358.896,-0.0405992,-0.00300827,-0.87035242,0.87035242 +0.42500013,0.42500013,4404.451,0.041648,-0.0100618,-0.87454923,0.87454923 +0.41057995,0.41057995,4447.228,0.1566605,0.0076425,-0.87844889,0.87844889 +0.3960725,0.3960725,4487.278,-0.0708302,-0.01332486,-0.88207286,0.88207286 diff --git a/statsmodels/tsa/tests/results/results_process.py b/statsmodels/tsa/tests/results/results_process.py new file mode 100644 index 0000000..e5a4da1 --- /dev/null +++ b/statsmodels/tsa/tests/results/results_process.py @@ -0,0 +1,56 @@ +import numpy as np +from numpy import array + + +class Holder(object): + pass + + +armarep = Holder() +armarep.comment = 'mlab.garchma(-res_armarep.ar[1:], res_armarep.ma[1:], 20)' +\ +'mlab.garchar(-res_armarep.ar[1:], res_armarep.ma[1:], 20)' +armarep.marep = array([[-0.1 ], + [-0.77 ], + [-0.305 ], + [ 0.4635 ], + [ 0.47575 ], + [-0.132925 ], + [-0.4470625 ], + [-0.11719125 ], + [ 0.299054375 ], + [ 0.2432801875 ], + [-0.11760340625 ], + [-0.253425853125 ], + [-0.0326302015625 ], + [ 0.18642558171875], + [ 0.11931695210938], + [-0.08948198932031], + [-0.14019455634766], + [ 0.00148831328242], + [ 0.11289980171934], + [ 0.05525925023373]]) +armarep.ar = array([ 1. , -0.5, 0.8]) +armarep.ma = array([ 1. , -0.6 , 0.08]) +armarep.name = 'armarep' +armarep.arrep = array([[ -1.00000000000000e-01], + [ -7.80000000000000e-01], + [ -4.60000000000000e-01], + [ -2.13600000000000e-01], + [ -9.13600000000000e-02], + [ -3.77280000000000e-02], + [ -1.53280000000000e-02], + [ -6.17856000000000e-03], + [ -2.48089600000000e-03], + [ -9.94252799999999e-04], + [ -3.98080000000000e-04], + [ -1.59307776000000e-04], + [ -6.37382655999999e-05], + [ -2.54983372800000e-05], + [ -1.01999411200000e-05], + [ -4.08009768959999e-06], + [ -1.63206332416000e-06], + [ -6.52830179327999e-07], + [ -2.61133041663999e-07], + [ -1.04453410652160e-07]]) + + diff --git a/statsmodels/tsa/tests/results/savedrvs.py b/statsmodels/tsa/tests/results/savedrvs.py new file mode 100644 index 0000000..0e71a7b --- /dev/null +++ b/statsmodels/tsa/tests/results/savedrvs.py @@ -0,0 +1,250 @@ +'''Generated Random Processes for tests + +autogenerated by savervs.py + +''' + + +import numpy as np +from numpy import array + + +class Holder(object): + pass + + +rvsdata = Holder() +rvsdata.comment = 'generated data, divide by 1000, see savervs' +rvsdata.xarma32 = array([-1271, -1222, -840, -169, -1016, -980, -1272, -926, 445, 833, -91, -1974, -2231, + -549, 424, 238, -1665, -1815, 685, 3361, 1912, -1931, -3555, -1817, 387, 730, + -1154, -702, 973, 1340, -161, 276, 200, 1785, 834, -1469, -1593, -134, 555, + -422, -2314, -1326, -2268, -3579, -3049, -930, 1155, 962, -644, -217, -561, 224, + 810, 2445, 2710, 2152, 502, 21, 164, -499, -1093, -492, 531, -605, -1535, + -2081, -3816, -2257, 487, 2134, 1785, 1495, 1259, 1895, 1339, 617, 1143, 385, + -1220, -738, 1171, 1047, -234, -107, -1458, -1244, -2737, 33, 2373, 2749, 2725, + 3331, 1054, 418, 1231, -1171, -1446, -1187, 863, 1386, 757, 734, 283, -735, + 550, 417, -236, 324, 318, -102, 2126, 3246, 2358, 2156, 726, -983, -803, + -242, -500, -13, 49, 308, -227, 243, -612, -2329, -2476, -3441, -5435, -4693, + -2538, -2159, -2656, -906, -211, -288, 1777, 1363, 564, -2035, -1134, -609, -1112, + 560, 658, 1533, 796, 523, 456, 76, -1164, -749, -1084, -3218, -2107, -310, + -686, -1625, 2008, 4155, 1650, -1086, -673, 1634, 1999, 449, -1077, -648, -155, + -327, 228, 1295, 2036, 542, -197, -451, -1554, -2416, -2066, -2146, -1524, -1976, + -2962, -2621, -2313, -2052, -3314, -2363, -1522, -3305, -3445, -3206, -1501, 2029, 1963, + 1168, 2050, 2927, 2019, 84, 213, 1783, 617, -767, -425, 739, 281, 506, + -749, -938, -284, -147, 51, 1296, 3033, 2263, 1409, -1702, -819, -1295, -1831, + -539, 1327, 1954, 1473, -1535, -1187, -1310, 380, 1621, 2035, 2234, 559, 51, + -1071, 590, 2128, 1483, 848, 1198, 2707, 1447, -629, 237, 909, 453, -734, + -802, 1026, 521, -9, 919, 441, -118, -1073, -2428, 98, 823, 102, -438, + -233, -613, 440, 1143, -743, -1345, 186, -1999, -2351, -887, -584, -883, -623, + -1522, 974, 2318, 1329, -523, -2599, -1555, 826, -859, -2790, -2753, 807, 1889, + -95, -1454, 443, 845, -291, 1516, 2804, 1018, 402, -446, -1721, -1824, 1678, + 2889, -663, -560, 628, 1213, 520, -1344, -3029, -3100, -1603, -1480, -1667, -3356, + -4405, -2556, 532, 1602, -15, 646, 2279, 1893, -945, -258, 344, -316, 1130, + 1119, 695, 276, 56, -682, -610, 412, 1058, 259, 746, 1197, 1959, 1896, + 127, -1301, 1036, 3094, 5213, 3846, 1728, 40, -520, -173, 330, -480, 649, + 1621, 1622, -1011, -1851, -2687, -756, 401, 1888, 2372, 4153, 2531, -150, 485, + 2600, 2193, -1238, -2702, -184, 1336, 370, -1196, -1737, 637, 634, 77, -1314, + -688, -1375, -1973, -1229, -1414, -2230, -1922, -584, 93, 180, 2158, 2976, 1433, + -173, -1073, -1362, -446, 242, 7, 354, 332, 2003, 1866, -729, -1446, -294, + 2438, 3955, 1829, 485, 1028, 981, 1335, 513, -1386, -2583, -1063, 465, 1104, + 85, -892, -78, 766, 1995, 891, -170, 2, -428, -562, -1078, -2591, -2077, + -135, -238, -1150, -1207, -185, -46, -1319, -1829, -1409, -926, 576, 1119, 454, + -747, -538, -739, -2994, -3052, -1626, -2472, -1340, -254, -972, -1182, -258, 831, + 876, -244, -724, -208, -428, -110, 188, -2187, -2695, -1161, 597, 1492, 1594, + -403, 695, 1834, 1737, 586, -740, 259, -714, -1607, -1082, -365, 2040, 604, + -1253, -1269, -419, -713, -482, 1379, 2335, 1730, 325, -1377, -1721, -1762, -602, + -1224, -839, 70, -1058, -118, -691, -1397, -245, -291, -648, -1489, -1088, -1083, + -160, 1310, 169, -1539, -1558, -2095, -3421, -1609, -465, -867, 311, 272, -157, + -936, -1003, -492, -1526, -2179, -1237, -662, -144, 638, 596, -629, -1893, -671, + 324, 408, 367, 1438, 4568, 2576, 677, 701, 2667, 1288, 449, -357, 776, + 2250, 2324, 968, 245, 1432, 1597, 843, 88, -274, -256, 830, 348, 534, + 140, -560, -1582, -2012, -287, 1470, -729, -2398, -1433, -1409, -1547, 70, 1438, + 2246, 408, -293, -566, 374, 1793, 2355, 1104, 358, 2301, 2994, 572, 278, + 508, -2406, -2767, -1216, -231, -1717, -1038, 2015, 1469, 1471, 1395, 860, 1148, + 1211, 1189, 494, -536, 383, -136, -2171, -2334, -1181, -294, -841, -2051, -3304, + -2254, -926, -811, 160, 1960, 2945, 2466, 1922, 2833, 2421, 1197, 3025, 4033, + 3210, 1497, 1912, 1138, 174, -630, -2423, -999, 296, 1519, 2061, 1400, -424, + -609, -978, -1747, -1637, -2454, -1547, 885, 2065, 1530, -1956, 846, 2811, 3105, + 2220, 2732, 4631, 3504, 1996, 246, -419, -1541, -1955, -3171, -2742, -811, -318, + -1303, -2002, -997, -487, -2089, -3453, -3373, -1940, -620, 384, 365, -133, -1300, + -833, -1544, -1711, -1981, -315, -155, -1995, -2384, -4010, -5394, -6186, -3794, -1829, + -2637, -4255, -2014, 282, -174, -2623, -2023, -749, -168, -2387, -3959, -4101, -2004, + -2070, -2468, -1831, -1518, 606, 305, 684, 2183, 1218, -1008, -2261, -1276, -99, + 889, 740, -525, -1786, -1716, -452, -872, -1384, -1867, -547, -900, -1464, -1898, + -1493, -990, 965, 810, 636, -335, -57, 1761, 2837, 773, 215, 920, 483, + -234, 1301, 2610, 3083, 2329, 920, -827, 22, 4317, 5366, 3711, 2220, 1356, + 198, -1385, 656, 1163, -370, -1721, -1005, -832, -1455, -1485, 221, -1445, -1502, + -79, -4, -599, -850, -507, 902, 1909, 1642, -326, -3379, -5642, -7068, -4275, + -1044, 528, 548, 249, -1384, -2485, -1533, -1776, -2930, -2058, -1721, -475, -166, + -1761, -2550, -1586, -240, -1584, -1954, 623, 3826, 2094, -1004, -1782, -267, 2490, + 3336, 2293, 189, -108, -315, -965, -125, 1201, 360, -544, -1602, -2150, -901, + 1430, 968, -1100, 505, 2880, 2554, 928, 918, 689, -2829, -2478, -2904, -1615, + -242, 243, -1668, -877, 2385, 543, -2462, -1762, 470, 1344, 1493, 1624, 257, + -1833, -1947, -805, -413, 905, 2909, 3272, 1148, -1473, -2368, -1054, -2143, -4330, + -3257, -1939, -1831, -414, -1157, -1212, -1644, -1360, -2409, -4136, -5747, -3415, -1752, + 373, -1680, -1267, 2267, 2701, 1101, -1714, -3138, -3153, -3256, -3328, -2661, -879, + 2115, 1795, -324, -1930, -1432, -1613, -2301, -1401, 88, 1369, 1063, -854, -2125, + 243, 1683, 2011, 2646, 1289, -938, -1205, -1214, 562, 2641, 3335, 2858, 2650, + 1965, 478, 1391, 486, 255, -1764, -813, 84, -453, -809, -1203, -1590, 730, + 2059, 234, -319, 0, 624, 1273, 1470, 1882, 2215, 1611, 485, -16, 397, + 593, -95, 125, 1435, 2673, 3073, 2262, 1803, 983, 666, 1516, 2821, 2395, + 299, 86, 1150, 1214, 751, -1096, -962, -39, -366, -2125, -2086, -1032, -966, + -863, -1522, -1793, 1228, 207, -2243, -1916, -1320, -1530, -2318, -1050, -663, -1137, + -2035, -1198, -246, 753, -185, -709, -231, -1111, -1121, -11, 976, 555, -1947, + -1304, 807, 529, 231, -285, -553, -695, -2006, -1090, -424, 318, -1113]) +rvsdata.name = 'rvsdata' +rvsdata.xnormal = array([-1271, 176, -296, 327, -973, 228, -819, 107, 975, 82, -477, -1492, -403, + 695, 212, 91, -1549, -45, 1557, 1947, -785, -2139, -1264, 295, 806, 278, + -1244, 787, 752, 173, -738, 969, -646, 1811, -990, -1369, 72, 408, 169, + -587, -1517, 720, -2150, -1233, -121, 682, 1268, -29, -802, 679, -1041, 934, + 344, 1788, 486, 460, -834, 40, -93, -751, -374, 345, 500, -1167, -387, + -966, -2369, 1119, 1148, 1193, 411, 626, 45, 960, -293, 11, 806, -866, + -1043, 574, 1072, -328, -381, 433, -1857, 409, -2190, 2614, 1005, 864, 1243, + 1268, -1701, 680, 560, -2567, 639, -663, 1513, 215, 69, 498, -504, -771, + 1392, -739, -131, 744, -382, -158, 2394, 712, 162, 1064, -1146, -1062, 248, + -171, -411, 665, -236, 350, -503, 645, -1105, -1447, -337, -2050, -2539, -151, + 85, -840, -555, 1235, -427, 106, 2227, -828, 252, -2248, 992, -737, -559, + 1801, -593, 1438, -583, 342, -10, -331, -1053, 466, -1020, -2163, 1003, 224, + -794, -406, 3338, 1021, -1157, -788, 242, 1219, 267, -455, -843, 183, -196, + -181, 699, 822, 825, -920, 110, -482, -1332, -843, -256, -989, 232, -1082, + -1221, -200, -800, -344, -1779, 559, -485, -2241, -84, -1173, 701, 2685, -395, + 644, 1374, 741, -144, -788, 542, 1044, -1150, -296, 281, 485, -495, 829, + -1385, 80, 192, -237, 340, 1213, 1634, -264, 479, -2698, 1282, -1759, -422, + 1003, 1015, 668, 332, -2367, 835, -1347, 1532, 828, 766, 907, -1122, 265, + -1357, 1658, 879, -199, 433, 532, 1482, -925, -812, 1081, -191, -126, -637, + -45, 1306, -863, 326, 954, -806, 42, -885, -1504, 2167, -496, -63, -19, + -61, -654, 1153, 340, -1586, 97, 836, -2868, 439, 380, -652, -34, 197, + -1342, 2507, 481, -228, -748, -1941, 596, 1137, -1978, -857, -546, 2208, 151, + -864, -446, 1297, -507, -417, 2265, 596, -1011, 719, -1112, -1279, -184, 2721, + 371, -2244, 1511, -127, 365, -53, -1399, -1628, -736, 312, -785, -182, -2070, + -1452, 640, 1479, 648, -754, 1396, 1005, -183, -1661, 1296, -547, -532, 1901, + -511, 232, -27, -191, -734, 140, 647, 406, -449, 997, 204, 1035, 352, + -1083, -788, 2025, 1127, 2903, -184, -197, -888, -536, 82, 279, -775, 1426, + 490, 362, -1900, -219, -1753, 1342, 166, 1677, 753, 2518, -1078, -990, 1138, + 1235, -197, -2026, -747, 1329, 255, -323, -722, -716, 1677, -746, 298, -1190, + 509, -1420, -498, 302, -996, -883, -12, 443, 139, 260, 2131, 620, -535, + -443, -870, -671, 535, 213, -172, 612, -169, 1841, -195, -1629, -3, 265, + 2091, 1611, -929, 225, 486, -338, 922, -582, -1433, -1072, 765, 424, 696, + -541, -524, 612, 278, 1405, -777, -163, 188, -805, 36, -692, -1680, 268, + 810, -688, -359, -120, 386, -248, -1015, -387, -273, -158, 1263, 271, -209, + -716, 208, -738, -2268, -37, 5, -1793, 1277, 46, -967, 151, 427, 579, + 178, -621, -189, 167, -563, 481, 93, -2388, -120, 359, 751, 946, 613, + -1484, 1690, 387, 285, -258, -870, 936, -1574, -400, 204, -70, 2254, -1548, + -593, -89, -66, -599, 452, 1518, 658, 195, -496, -1363, -468, -759, 681, + -1159, 579, 368, -1393, 1360, -1277, -474, 959, -779, -77, -864, 141, -632, + 770, 1119, -1125, -857, -153, -1451, -1597, 1318, -337, -436, 1453, -619, -64, + -625, -214, 78, -1334, -519, 313, -293, 446, 719, -93, -860, -1006, 823, + 57, 199, 332, 1112, 3079, -1616, 338, 298, 1515, -1213, 603, -811, 1023, + 1171, 464, -372, -24, 1105, -43, -1, -208, -340, -102, 970, -632, 743, + -459, -520, -977, -671, 1096, 974, -1956, -601, 251, -1197, -108, 1305, 661, + 1135, -1164, 195, -628, 708, 1211, 773, -470, 102, 1923, 405, -1286, 932, + -349, -2927, 277, 144, -19, -1333, 988, 2027, -952, 1495, 91, -288, 784, + 127, 341, -324, -670, 967, -1015, -1599, -98, -9, 157, -541, -1040, -1576, + 297, 67, -285, 1094, 1433, 1051, 440, 491, 1410, -145, -138, 2498, 764, + 408, -237, 1099, -888, -184, -541, -1975, 1272, 87, 1229, 908, -97, -1121, + 168, -949, -891, -88, -1521, 596, 1512, 747, 259, -2640, 3297, 236, 1135, + 500, 1288, 2137, -399, 380, -1022, -439, -1345, -514, -1828, -69, 770, -307, + -693, -606, 370, -290, -1584, -1193, -834, 148, 404, 771, 18, -207, -1068, + 393, -1392, -163, -807, 1152, -564, -1495, -210, -2692, -1930, -2043, 660, -58, + -1329, -1511, 1339, 458, -536, -1669, 511, -210, 167, -2028, -1333, -1271, 661, + -1274, -334, 64, -619, 1818, -811, 1078, 1446, -927, -1106, -984, 181, 235, + 902, 44, -836, -1021, -298, 479, -916, -219, -811, 804, -1060, -300, -710, + -163, -115, 1647, -480, 582, -807, 412, 1486, 972, -1188, 649, 326, -605, + -109, 1607, 847, 1140, 266, -492, -1229, 912, 3582, 914, 580, 283, -375, + -834, -1206, 1985, -468, -814, -702, 211, -700, -608, -113, 1086, -2231, 662, + 581, -565, -131, -197, -39, 1113, 863, 236, -1199, -2557, -2587, -2859, 948, + 822, 911, 448, 71, -1579, -959, 292, -1273, -1206, 474, -908, 929, -126, + -1497, -608, 106, 371, -1552, 61, 1758, 2286, -1107, -1079, -534, 404, 2099, + 1035, 219, -997, 143, -666, -652, 850, 788, -780, -118, -1156, -878, 675, + 1530, -576, -1022, 1862, 1282, 75, -105, 604, -507, -3169, 907, -2181, 792, + 540, 180, -1660, 1113, 2179, -2179, -1223, 567, 560, 544, 906, 580, -1054, + -1474, -186, 110, -189, 1452, 1823, 684, -856, -1508, -974, 353, -1953, -1918, + 418, -598, -513, 1332, -1457, 226, -905, -78, -1575, -1908, -2347, 923, -460, + 1745, -2262, 1119, 2445, -200, 25, -1892, -1465, -1012, -1193, -797, -204, 784, + 2291, -382, -782, -1097, -103, -1085, -802, 521, 547, 1020, 17, -1255, -948, + 1733, 352, 971, 1444, -955, -1251, -38, -844, 1473, 1673, 1071, 687, 818, + -109, -758, 1446, -1260, 507, -2043, 1091, -143, -573, 40, -705, -693, 1992, + 582, -1145, 532, -176, 341, 802, 455, 858, 713, -47, -389, -137, 288, + 63, -443, 499, 1048, 1202, 1044, 157, 472, -423, 135, 978, 1325, 104, + -958, 465, 564, -14, 220, -1498, 330, 158, -601, -1414, -14, -29, -535, + 186, -954, -468, 2492, -1869, -1194, 345, -835, -578, -838, 802, -596, -418, + -898, 414, 91, 851, -824, -34, 193, -1276, 208, 593, 538, -175, -1954, + 860, 843, -610, 617, -511, -339, -261, -1495, 833, -298, 637, -1384]) +rvsdata.xar2 = array([-1271, -841, -333, 481, -422, -350, -889, -428, 1077, 1158, -89, -2142, -2073, + 108, 1335, 1105, -1332, -1663, 892, 3493, 1563, -2635, -4154, -1710, 1515, 2345, + -125, -486, 426, 757, -346, 314, -222, 1476, 302, -1866, -1571, 84, 1022, + 189, -1877, -876, -1912, -2325, -1025, 1024, 2600, 1539, -871, -787, -1235, 339, + 1233, 2604, 1953, 721, -1234, -1307, -522, -514, -525, 183, 908, -532, -1267, + -1713, -3107, -509, 2294, 3282, 1890, 497, -502, 310, 206, 21, 720, -301, + -1644, -591, 1421, 1104, -209, -286, -1981, -1033, -2026, 1509, 3226, 2689, 1781, + 1348, -1514, -1205, 353, -1682, -883, -529, 1531, 1704, 667, 180, -694, -1416, + 607, 454, -71, 460, 22, -371, 2086, 2567, 1172, 719, -1157, -2347, -1052, + 161, 243, 779, 266, 174, -497, 160, -729, -2110, -1661, -2324, -3568, -1843, + 394, 397, -434, 689, 342, 35, 2084, 822, -133, -2765, -1154, -277, -204, + 1777, 931, 1294, -13, -315, -256, -379, -1228, -327, -667, -2533, -690, 938, + 302, -633, 2681, 3483, 289, -2298, -1741, 975, 1918, 592, -1329, -1176, -472, + 29, 959, 1575, 1606, -423, -1031, -1095, -1693, -1649, -729, -748, -1, -709, + -1788, -1275, -926, -447, -1674, -557, -93, -2038, -1667, -1488, 345, 3705, 2396, + 709, 743, 981, 269, -1063, -443, 1222, 48, -868, -438, 569, 180, 689, + -924, -1003, -148, 146, 531, 1564, 2620, 1050, 9, -3216, -1295, -1187, -725, + 1016, 2190, 1911, 766, -2710, -1716, -1364, 1298, 2549, 2156, 1357, -1114, -1305, + -1844, 835, 2470, 1359, 286, 81, 1404, 157, -1388, -108, 416, 261, -636, + -685, 1076, 340, 60, 831, -170, -510, -1208, -2215, 999, 1410, 565, -272, + -561, -967, 660, 1351, -835, -1247, 256, -2040, -1321, 344, 283, 21, 72, + -1294, 1436, 2277, 876, -1185, -3327, -1474, 1622, 57, -1623, -1873, 1521, 2304, + 219, -1423, 50, 244, -246, 1946, 2276, -164, -550, -1471, -2180, -1193, 2857, + 3253, -1070, -971, -369, 556, 576, -1216, -2889, -2439, -195, 279, 139, -2099, + -3201, -871, 2383, 2990, 447, 258, 989, 479, -1772, -361, 50, -312, 1627, + 947, 176, -360, -567, -1008, -383, 845, 1273, 147, 478, 513, 1206, 1061, + -837, -1988, 853, 2803, 4719, 2190, -804, -2626, -2234, -392, 1083, 288, 1115, + 1238, 795, -1883, -2123, -2510, 395, 1737, 2869, 2179, 2827, 94, -2329, -772, + 1781, 1614, -1626, -2855, -142, 1569, 1003, -705, -1781, 605, 628, 498, -1106, + -624, -1367, -1280, -38, -387, -1173, -757, 423, 856, 732, 2289, 2085, -11, + -1494, -2060, -1572, 308, 1245, 670, 525, -84, 1511, 1056, -1540, -1763, -375, + 2672, 3936, 884, -1037, -785, -447, 957, 407, -1586, -2544, -477, 1314, 1986, + 391, -1204, -547, 443, 2033, 628, -676, -667, -1001, -431, -537, -1894, -979, + 974, 581, -382, -716, 4, 113, -926, -1185, -757, -172, 1504, 1560, 287, + -1266, -948, -864, -2485, -1593, -27, -1018, 476, 936, -456, -682, 109, 1007, + 929, -382, -959, -409, -410, 357, 584, -2100, -2092, -265, 1585, 2346, 1697, + -1299, -198, 879, 1087, 172, -1276, -171, -1072, -1172, -197, 358, 2639, 384, + -1606, -1566, -516, -229, 528, 2055, 2038, 798, -876, -2463, -2000, -1127, 780, + 28, 212, 523, -1080, 234, -549, -1030, 410, 64, -231, -1080, -608, -578, + 611, 1897, 87, -1736, -1585, -1852, -2285, 415, 1138, 267, 1097, 125, -512, + -1097, -836, -42, -949, -1257, -219, 161, 683, 1185, 513, -1042, -2096, -333, + 839, 1037, 742, 1187, 3658, 717, -917, -794, 1338, 255, 138, -828, 291, + 1818, 1772, 137, -801, 396, 674, 341, -273, -729, -548, 895, 358, 582, + -172, -949, -1650, -1517, 708, 2298, -472, -2127, -1215, -1106, -385, 1550, 2094, + 2035, -583, -1289, -1367, 258, 2102, 2325, 339, -790, 1122, 1697, -490, -308, + -350, -3053, -1991, 78, 1039, -541, 36, 2326, 890, 1044, 481, -425, 204, + 502, 641, -62, -1041, 166, -362, -1971, -1494, -219, 729, 151, -1283, -2678, + -1204, 443, 671, 1409, 2225, 2127, 1029, 251, 1096, 606, -201, 2034, 2492, + 1384, -376, 106, -615, -729, -816, -2263, -130, 1114, 2185, 2099, 490, -1779, + -1501, -1260, -1148, -377, -1248, -214, 1965, 2425, 1216, -2880, 385, 1984, 2530, + 1532, 1249, 2370, 873, -107, -1544, -1620, -1870, -1200, -1853, -952, 936, 917, + -427, -1407, -542, -20, -1329, -2246, -1967, -303, 1145, 1838, 916, -393, -1841, + -883, -1178, -664, -749, 885, 518, -1523, -1687, -3280, -3711, -3372, -182, 1482, + -52, -2294, -470, 1229, 683, -1737, -1220, -317, 524, -1451, -2756, -2751, -161, + -27, -275, -142, -595, 1413, 617, 865, 1829, 103, -1938, -2586, -919, 793, + 1996, 1244, -839, -2314, -1730, 252, 150, -225, -1066, 63, -476, -713, -1042, + -641, -107, 1883, 1079, 504, -944, -595, 1482, 2455, 36, -550, -132, -435, + -391, 1512, 2252, 2185, 888, -874, -2372, -549, 4330, 4652, 2136, -334, -1711, + -2035, -1979, 1419, 1657, -198, -1689, -1041, -688, -639, -279, 1182, -1146, -845, + 477, 240, -178, -459, -318, 1088, 1893, 1206, -1180, -4105, -5281, -5031, -437, + 2988, 3519, 1770, -273, -2682, -2968, -741, -383, -1141, -248, -535, 625, 641, + -1297, -1966, -818, 700, -584, -756, 1445, 3821, 1227, -2007, -2753, -795, 2840, + 3704, 1762, -1440, -1890, -1458, -873, 881, 1929, 323, -824, -1976, -2047, 26, + 2574, 1471, -1132, 221, 2024, 1584, 150, -68, -636, -3644, -1691, -1712, 268, + 1610, 1334, -1398, -672, 2340, 29, -2370, -1343, 670, 1752, 1973, 1282, -1015, + -2927, -2020, -43, 787, 2103, 3111, 2122, -715, -3141, -3129, -580, -852, -2310, + -1003, -246, -208, 1288, -322, -675, -1284, -768, -1547, -2762, -3783, -722, 853, + 2789, -458, -641, 2161, 1850, 424, -2477, -3659, -2700, -1523, -666, 25, 1137, + 3188, 1600, -1096, -2774, -1774, -1117, -809, 432, 1297, 1841, 842, -1502, -2570, + 428, 1979, 2341, 2327, -264, -2626, -2007, -1137, 1567, 3495, 3083, 1406, 401, + -491, -1351, 610, -96, 125, -1895, -487, 415, 2, -166, -838, -1281, 1387, + 2332, 27, -612, -680, 103, 1224, 1383, 1353, 1104, 160, -813, -868, 0, + 498, -45, 214, 1242, 2089, 2094, 787, 55, -773, -511, 956, 2346, 1502, + -929, -1029, 205, 664, 649, -1310, -1042, -21, -96, -1481, -1150, -208, -127, + 189, -739, -1154, 1938, 258, -1957, -1349, -936, -653, -892, 414, 182, -480, + -1372, -444, 422, 1411, 93, -665, -386, -1252, -600, 739, 1429, 599, -2190, + -1192, 985, 774, 744, -302, -953, -872, -1716, -103, 477, 1071, -766]) + diff --git a/statsmodels/tsa/tests/results/test_bds.m b/statsmodels/tsa/tests/results/test_bds.m new file mode 100644 index 0000000..0978fea --- /dev/null +++ b/statsmodels/tsa/tests/results/test_bds.m @@ -0,0 +1,43 @@ +% +% BDS test for IID time series +% +% Calculates and outputs BDS test statistics and p-values for several +% datasets. +% +% Requires bds function, from Kanzler. +% +% References +% ---------- +% +% Kanzler, Ludwig. 1998. +% BDS: MATLAB Module to Calculate Brock, Dechert & Scheinkman Test for +% Independence. +% Statistical Software Components. Boston College Department of Economics. +% http://ideas.repec.org/c/boc/bocode/t871803.html. +% +% + +in = csvread('bds_data.csv'); + +sequence = in(1:25,1); +normal = in(1:25,2); +combined = in(1:50,3); +gdpc1 = in(1:end,4); + +[w_s, sig_s, c_s, c1_s, k_s] = bds(sequence, 5); +[w_n, sig_n, c_n, c1_n, k_n] = bds(normal, 5); +[w_c, sig_c, c_c, c1_c, k_c] = bds(combined, 5); +[w_g, sig_g, c_g, c1_g, k_g] = bds(gdpc1, 5); + +out_s = [repmat(1,1,5); 1:5; ... + NaN w_s; NaN sig_s; NaN c_s; c1_s; repmat(k_s,1,5)]'; +out_n = [repmat(2,1,5); 1:5; ... + NaN w_n; NaN sig_n; NaN c_n; c1_n; repmat(k_n,1,5)]'; +out_c = [repmat(3,1,5); 1:5; ... + NaN w_c; NaN sig_c; NaN c_c; c1_c; repmat(k_c,1,5)]'; +out_g = [repmat(4,1,5); 1:5; ... + NaN w_g; NaN sig_g; NaN c_g; c1_g; repmat(k_g,1,5)]'; + +out = [out_s; out_n; out_c; out_g]; + +dlmwrite('bds_results.csv', out, 'precision', '%.8f'); diff --git a/statsmodels/tsa/tests/results/y_arma_data.csv b/statsmodels/tsa/tests/results/y_arma_data.csv new file mode 100644 index 0000000..0ee2062 --- /dev/null +++ b/statsmodels/tsa/tests/results/y_arma_data.csv @@ -0,0 +1,251 @@ +y_arma11,y_arma14,y_arma41,y_arma22,y_arma50,y_arma02,y_arma11c,y_arma14c,y_arma41c,y_arma22c,y_arma50c,y_arma02c +-2.047076594847129505e-01,1.394072226185005814e+00,-7.618372133529945911e-01,-4.064523617925941412e-01,-9.835047173983663127e-01,6.143504692328910499e-01,4.259432631872511976e+00,6.738236941732065333e+00,3.921172305736134511e+00,4.841410872820988587e+00,3.567921955380871424e+00,5.020264181479198839e+00 +2.537649126243639586e-01,4.567375047627766360e-01,-1.169637832882710393e+00,-2.904655508294423649e-01,1.933152260847050830e-01,6.429869148939288959e-01,4.398428009976181663e+00,7.368314202772689114e+00,5.710735793018799633e+00,4.558666615338087702e+00,5.627433726992007834e+00,4.271942218168720551e+00 +-1.614848622683232593e-01,-1.272326703442733464e+00,-2.554150415613765990e+00,4.377894222244522737e-01,-3.224625683687642463e-01,-5.829343493568055479e-01,3.894220064383869140e+00,6.410706525591642446e+00,6.653104231835761162e+00,4.369696549146111941e+00,5.441687121317324127e+00,3.719432040526521988e+00 +-8.586475013185908001e-01,-9.458320913213410508e-01,-1.416810339850927747e+00,1.292133237669666590e+00,-2.434714935535151170e+00,3.225999093088858238e-01,4.254945463650283699e+00,6.774751472682821074e+00,5.813209651463687067e+00,4.848351385863497676e+00,3.693440719499076152e+00,5.799271295947738381e+00 +1.127289339992149531e+00,-6.883717809906914065e-02,-2.004237998790745490e-01,1.802924788488174057e+00,-1.990610824223469910e+00,-4.553547958839077037e-02,4.888509710140729325e+00,4.026927273300911381e+00,5.506526563168436361e+00,4.708763021171975538e+00,2.747097130265434117e+00,5.199862796144467225e+00 +2.926896038343052453e+00,-8.584562919036573536e-01,-1.274069813257599826e+00,-3.157042843910952135e-01,-2.664447937057304316e-01,5.833794675456229761e-01,6.113454539016629496e+00,2.075139727032463632e+00,6.999617863858643929e+00,4.004972492948537521e+00,4.783782184444534735e+00,5.428226532398705118e+00 +2.775771947041553389e+00,-1.796823860810985218e+00,-3.435812286850086217e+00,3.328747540357390733e-02,1.713166700014400745e-01,1.287328621636036230e+00,5.768913584533245320e+00,5.364144882553992133e+00,6.220457380072278220e+00,3.279857874780836013e+00,4.382208504444793817e+00,5.760983622424917350e+00 +2.396092869971668371e+00,-1.374140342963603212e+00,-3.324410934220093150e+00,6.241378334643327142e-01,-1.008235022896845523e+00,-2.571874757040343296e-01,6.783227456396678789e+00,6.453556693243496234e+00,4.760031787665699454e+00,1.397159712575776425e+00,3.955895170740389766e+00,4.892141935490703197e+00 +2.664703373581160939e+00,-2.274295006054621204e+00,2.847437087200943573e-01,-1.677062469844210035e+00,1.071593491473753934e+00,5.943089576180543565e-02,8.764846998978599757e+00,3.134175247222279470e+00,4.618905799269997559e+00,3.832999293510881422e+00,4.169523377113049989e+00,4.820177423393641192e+00 +3.514120165236296778e+00,-1.695939107720390027e+00,5.749749943751873982e-01,-1.372251161366488947e+00,1.414936450756299369e+00,8.067203104089537558e-02,6.664487842459541511e+00,2.089710848527895237e+00,7.375027854593720456e+00,8.576140496669221847e+00,6.748639486536131216e+00,2.669498198821129265e+00 +4.079031639245426888e+00,-1.383046694106316643e+00,-2.344893313337678364e+00,-6.250943658791198176e-01,1.328692743772108553e+00,1.289696408214198620e+00,5.123872851709446508e+00,4.754158166466891267e+00,7.226677542929837550e+00,7.811349700243606975e+00,6.399961038027319304e+00,2.505802874791816404e+00 +2.115568895475858469e+00,-1.285696195785905438e+00,-5.410382313438887536e+00,-9.582233749130680822e-01,-4.514660067095999096e-03,6.906817862356203763e-01,4.624298391542022379e+00,4.532322449938698483e+00,5.895034864771226069e+00,4.201755661206154180e+00,3.841171273307598000e+00,3.901458429730415567e+00 +1.407990916849725771e+00,-4.315387699941466426e-01,-2.434441803202210153e+00,-2.143241193463130134e-02,1.991430048897706861e-01,-3.245252085642317263e-01,3.298440951207898930e+00,3.023850958378810461e+00,6.011888360633888873e+00,2.048413650493551952e+00,5.931427026305052586e+00,5.352527421085418347e+00 +1.381153138273853553e+00,1.084288569595046825e+00,1.475497484267840553e+00,1.675123411059225464e+00,1.269439435330158350e+00,-1.045172753525086096e+00,3.103686242816811269e+00,4.080448938513448809e+00,6.668471493814188022e+00,3.319703108792883661e+00,7.769291575371815028e+00,3.920245059994244663e+00 +2.468901196498200612e+00,4.531380836694007819e-01,9.757983087292898539e-02,1.159459620823443338e+00,1.329155575330689176e+00,-1.830503306089610316e+00,3.658159191813463718e+00,6.346035248965537612e+00,7.077166516280438913e+00,4.554699042844648105e+00,5.492605970846351937e+00,4.318612795940402371e+00 +3.211626130273146806e+00,-2.190557335162672814e+00,-4.025770289739019070e+00,2.374106873340324220e-01,-1.204791600774974603e+00,-3.953349523769545404e-01,3.372537397371419665e+00,4.291890175742812730e+00,4.582735795002996326e+00,8.003629851130945383e+00,3.299960257085285065e+00,5.863216575797151719e+00 +7.173325572515190096e-01,-1.440903136015097230e+00,-4.563025185706400144e+00,-7.098001117370973390e-01,-4.208258195771114041e-01,2.594451641987153057e+00,4.269616605460259784e+00,1.966875208797961960e+00,3.226094930911747038e+00,6.020287567355888214e+00,3.980251475991546162e+00,6.606646644611915420e+00 +-5.344161775827541705e-01,6.575126326774392016e-01,-5.766210270892357936e-01,2.080044842860721221e+00,2.597569170595709132e+00,1.316246656649131541e-01,3.840933541237355975e+00,5.846674991729185145e+00,4.098018048564538773e+00,1.600830935090640228e+00,4.628502633768053265e+00,3.585462029244003368e+00 +1.138068288338715872e+00,5.410281705276032138e-02,2.214383099182642756e+00,1.981718727958543980e+00,1.324496153816917321e+00,-1.821106292140853622e+00,2.401856988014751337e+00,6.656277522679868497e+00,4.283437503067081487e+00,1.384202228703339532e+00,5.999512681027482586e+00,1.528291132932186436e+00 +9.991403387521694546e-01,-3.811617114262618733e-01,1.206231109078024222e-01,-2.586171993187719842e+00,-6.952960055817554164e-01,8.046298768301501925e-01,2.150521954723290996e+00,3.733293634828790175e+00,4.514158688834689848e+00,2.548048973349378077e+00,4.355070413414093622e+00,4.427199029031395838e+00 +5.611440100001408027e-02,5.262380750425947884e-01,-4.953603576685280174e+00,-4.320037329811369453e+00,-1.907598969450933768e-01,1.078018569695110784e+00,2.658257906111643365e+00,4.382200981413502561e+00,5.859367423091468297e+00,4.029777956216626933e+00,5.067531354897734097e+00,4.945705073361552628e+00 +3.301613052297280859e-01,1.746862891830231745e-01,-8.118789816136267490e+00,-3.003177430316123164e+00,7.712387043869168846e-01,-8.794142886128656356e-01,4.258293663630687398e+00,6.153065962604464367e+00,7.355119360103516968e+00,8.075010494827537855e+00,4.923466375553967822e+00,4.909788839978878272e+00 +3.663509651997355565e+00,-2.874794400657883831e+00,-3.617695985036168072e+00,3.937863948442860362e+00,5.309231030866365941e-01,-1.234990868812363196e+00,4.339908625421150745e+00,5.340219971922237185e+00,5.515921408322084218e+00,7.798414613260441719e+00,6.873233673651917286e+00,5.826629709744591601e+00 +2.863535086443183886e+00,-2.579467235640812817e+00,9.915726649245641955e-01,7.298812062776931064e+00,3.223797297234989312e-01,2.727270606602266056e+00,4.237569677073842023e+00,3.860558543165812484e+00,4.509396332971866705e+00,4.004854402537130653e+00,5.452430701800734525e+00,4.871357265495228184e+00 +1.213134378267161750e+00,2.413579806889860346e-01,1.303675711696499651e+00,2.444639467618930695e+00,8.915073927774812557e-01,5.015301818356774355e-01,4.572111121969630432e+00,4.512712257921455361e+00,5.355957290748269983e+00,4.794247150280835257e+00,3.660108072753280872e+00,2.429556238521846101e+00 +8.319915033095105494e-01,-5.188516244935171828e-01,-5.687570288109578875e+00,-3.038003124026212642e+00,-8.719733907399780382e-01,-1.464298441207599888e+00,4.048062396070275071e+00,5.403303064625879060e+00,6.407665900443153539e+00,3.134788283354405181e+00,4.228899286686077730e+00,5.406063202984769944e+00 +9.700496358803369912e-01,-2.724024236513598485e+00,-7.053649446370281240e+00,-3.612813816796582422e+00,2.879464430993158297e-01,3.946224160478077891e-01,4.524770878655016482e+00,3.790844656041213234e+00,7.195887404329030623e+00,2.361511342912992362e+00,3.900621344854551253e+00,6.058011910665634048e+00 +1.357224041730048292e+00,-3.094356072793469803e+00,-1.008363536011467332e+00,1.046340672032860963e+00,2.368592569932105540e+00,-3.138197009761437006e-01,4.525455283146966323e+00,3.669994645124985411e+00,6.551577792201502604e+00,7.779296198399537232e+00,3.376143193000717080e+00,3.340663942774611428e+00 +1.202178532925514798e+00,-1.850307710282078189e+00,3.886862348001593581e+00,1.589445207794040638e+00,1.217857516123329376e+00,-9.122994252851901464e-01,4.653375618486451870e+00,5.177928739455077256e+00,5.315906173013112301e+00,6.297915587978545560e+00,1.981820108745978359e+00,5.388309049864337119e+00 +2.245772790529634744e+00,-1.516478417599159467e+00,-3.673322539992257552e-01,-5.204825623456811323e-01,-1.025887496633735574e-01,2.428428862906994556e+00,4.180686233113284800e+00,3.392074251314660671e+00,5.699029251570543408e+00,5.296396093445565612e-01,4.542328457752607740e+00,6.241995262291350599e+00 +1.441119035565789019e+00,-1.826409292124326011e+00,-5.940822212463317875e+00,9.652051478386652894e-01,4.052444759094290805e-01,1.610732939294483357e+00,7.038160704560359804e+00,3.766346935888272185e+00,5.999371763645894085e+00,1.156864407980374487e+00,5.145335831238890378e+00,4.119984700183874970e+00 +-5.465696330630986921e-05,-1.719338771172416180e+00,-6.508425086827775985e+00,2.181828702209119619e+00,1.108177098201627686e+00,-1.781879468348538165e+00,4.807427395222168443e+00,4.255280106544435448e+00,7.009375617216063503e+00,5.319221720194350134e+00,4.137737097068860948e+00,3.233320057309073015e+00 +-2.661176385278094081e+00,-1.395987375772736128e+00,-1.270103392180484292e+00,1.110821262560730549e-01,-1.029079612725556148e+00,-1.728302907832516833e-01,3.457531085129489146e+00,7.444270232949445898e-02,4.591567366097629943e+00,5.417009442651860240e+00,3.131299035156448696e+00,3.515272342145693507e+00 +-4.686224156394166229e+00,-1.850331606786910221e+00,2.184759340112722548e+00,-2.041081623865537598e+00,-1.542782696707952095e+00,4.958978337833580552e-01,3.116982008029290707e+00,1.386033864121762438e+00,3.652533172280716833e+00,4.691688663117650648e+00,4.512583138494862922e+00,4.507587864330768745e+00 +-5.026691791720129920e+00,-9.200819435921128164e-01,-3.295321237037077688e-01,9.793109676417565135e-01,7.543043591655402835e-01,-1.011195992545088074e-01,3.457098235710537537e+00,6.072136861732305491e+00,3.598198391522849260e+00,4.228970068897724310e+00,4.217642302531044329e+00,5.607026952466911851e+00 +-3.511138640213175677e+00,-9.744145346579486944e-01,-5.043254897882222032e+00,6.789267989097660383e-01,3.161919450570618739e+00,-1.171798760336695056e+00,5.461214551316098564e+00,5.287352572723380106e+00,4.399439539341723382e+00,3.500205802814739364e+00,5.656071780409132721e+00,4.741463207851570161e+00 +-3.703237619293762162e+00,-4.488315090217092518e+00,-4.263381366707648112e+00,-1.872655445832931642e+00,1.413418391066825208e-01,-5.997420261799208951e-01,6.633267216554529888e+00,2.943362263037925697e+00,4.342340090444273493e+00,4.751667085587318873e+00,4.529073913784968042e+00,3.139337629007510344e+00 +-3.100678161902562735e+00,-2.501030560910058931e+00,3.785869496888783631e-02,-1.776633578233102639e+00,-6.457530033435663341e-01,3.069899785414676785e+00,5.720232385386712970e+00,5.392964007325414144e+00,4.158870978293464304e+00,5.953350079983978915e+00,3.232746935335669036e+00,5.658934085315204143e+00 +-3.347081575849269797e+00,-1.875566408155554532e-01,1.373805813135958065e+00,-1.175124539027547543e+00,-3.084582261338173481e-01,2.304849343261525796e+00,5.650071425020970040e+00,4.727432440567961081e+00,1.757391563622786812e+00,5.363571028525145223e+00,2.433652791019824235e+00,5.946684745186741949e+00 +-2.549657823098020248e+00,-1.580664376558950091e+00,-2.049692467577199917e+00,1.306927984545027899e+00,4.255303096775274185e-01,-2.131719678615784375e-01,6.492867362025509514e+00,1.882685262636422330e+00,4.711271395093374892e-01,5.254387646473788642e+00,4.361070860586611531e+00,6.288490364663671173e+00 +-4.155153224244511279e+00,-1.638103590486664984e+00,-6.264898634428784696e+00,1.951636392749369397e+00,-1.053489723650152143e+00,3.729657763428336770e-01,6.853313246252220381e+00,3.201130691610448054e+00,2.033728470151813905e+00,4.500078973468650823e+00,4.296945244227881489e+00,2.029974511760805456e+00 +-4.141704456103338927e+00,-1.009012869991860128e+00,-5.401447994645365291e+00,-2.514643434433178060e-01,-2.706026508554485677e+00,3.268482030258671456e-01,6.328235046023614530e+00,4.065915530392780752e+00,5.646001626406992102e+00,4.280884981122723865e+00,3.923160234900610277e+00,-2.746902120133274394e-01 +-4.718113904319099383e+00,-1.802684091603253824e+00,-1.506657146317793128e+00,-1.004083775292140324e+00,-2.609366810774318424e+00,7.097452710287838196e-01,5.863057920820553548e+00,3.192879991044643706e+00,4.833576665416502216e+00,4.142242653072421454e+00,3.255009115094919636e+00,4.959172727951663973e+00 +-5.049019775254445896e+00,-1.381563077028357345e+00,-3.607815631934923606e-01,1.537058909742779589e+00,-2.307742759492474427e+00,-1.690775288074842120e+00,5.308433259777813440e+00,3.269680422232153827e+00,1.538660360555280437e+00,1.342948121733243738e+00,5.136919446565984870e+00,5.150108154036455943e+00 +-5.433552651702444614e+00,2.818885562711463677e-02,-3.279417244823289224e+00,1.545791434687723731e+00,-1.477440056825851222e+00,8.359621473279092996e-01,5.133107815890593173e+00,2.991393703367609014e+00,-1.508745328376193129e-03,2.571244256838248532e+00,4.478464671550294263e+00,3.667520676780307909e+00 +-4.246275329602491766e+00,-6.130663520806225453e-01,-5.845062440614010590e+00,-1.952098650681894476e+00,-1.746264638512076361e+00,4.958869789032507303e-01,5.315079959506445739e+00,3.972743925412632215e+00,2.793269678504992193e+00,5.584940290483441316e+00,3.892535432986085286e+00,4.697240467623889693e+00 +-2.706499974809537523e+00,3.924922185885175718e-01,-4.105156923265349533e+00,-2.044592367564284086e+00,-3.178980144414182973e+00,-1.493057516814380037e+00,5.021757939751064548e+00,6.339447365323519712e+00,4.945394441279040265e+00,5.264834653484440352e+00,3.886343321092996739e+00,4.424725523759203583e+00 +-2.651467077068968337e+00,2.492099512157600394e+00,-7.841257565010852915e-01,-1.377536061630622255e+00,-3.839461700572829983e+00,2.582115106873133392e+00,5.587764431662366249e+00,5.405066853022743700e+00,3.860237202046896243e+00,4.107108869533949935e+00,5.487652977036796109e+00,4.996723475156893635e+00 +-1.921174944783671457e+00,9.412006395738451436e-01,-2.625864606616613028e-01,-1.331777564711734474e+00,-3.478711161053920087e+00,3.905701109020744077e+00,5.133713232906468527e+00,4.494368763835435487e+00,1.307926951608490818e+00,3.830865832317300601e+00,5.178034455680792902e+00,4.871516117668107881e+00 +2.481098347911347979e-02,4.798757746073640806e-01,-4.210669215598827897e+00,1.519657317589789836e+00,-2.204219357018442960e+00,6.409508337405410705e-01,5.855966104246856929e+00,4.718316150574986878e+00,-1.208460825345432532e+00,3.876182703520312245e+00,5.371607561800637143e+00,4.279769579332299401e+00 +5.608947015146614756e-01,3.307660883373833016e+00,-5.302269633643058810e+00,1.154513370240555448e+00,-2.508472975056526444e+00,-9.069255698958078593e-01,7.453500872994089477e+00,6.136685070718774782e+00,1.577779596919119953e-01,5.811348619317231012e+00,4.013359064508622787e+00,4.274173284761452862e+00 +6.918019772089871733e-01,1.466478696550987060e+00,-3.621146700997774914e+00,-1.135210265489079218e+00,-2.270093923835809324e+00,-2.154054312539678939e+00,8.548631459854339809e+00,8.580677927587142761e+00,3.573725713298050888e+00,7.419094220950942287e+00,2.303293360327956396e+00,2.738280109656968442e+00 +5.933258203294380362e-01,-1.131123560438463516e+00,-1.605861339065547178e+00,7.302998686819989205e-01,-2.052409032866207905e+00,8.576733138557379732e-01,8.266456399981672476e+00,6.358139262462048080e+00,2.805261999954581142e+00,6.240747420223197395e+00,3.704750869121015366e+00,4.521147653224271146e+00 +1.445654395659279334e+00,2.089564369019218382e-01,-6.108205565391249259e-01,1.528236749888444823e+00,-2.038589923301223017e+00,3.072549047348906104e+00,6.531145968474424635e+00,3.659707778937812517e+00,1.361490758831767067e-01,4.413772251719586315e+00,3.702561277299750042e+00,5.074465917376252300e+00 +2.763119467305571675e+00,1.169930847882693081e+00,-3.410135203575566543e+00,1.227364972010503097e+00,-3.034243912264597220e+00,-2.259853471281571657e+00,6.228711353324530187e+00,5.390345214270871210e+00,-7.765975881852327234e-02,3.032668654013584320e+00,3.620297372992901330e+00,3.283416564361951284e+00 +1.617596157559101133e+00,9.274198691471612355e-01,-4.341813534124730367e+00,1.443200242866820027e+00,-1.215922849984176546e+00,-3.882836332642096711e+00,5.969829029753539906e+00,7.359973068273208519e+00,2.975172798878381375e+00,3.885288949269857905e+00,3.261339717609220035e+00,4.941919813889841251e+00 +-6.576508653258907877e-01,1.632997792991522257e+00,-4.102480222204741622e+00,-2.327795448610795681e+00,-1.266255394890709596e+00,-1.779812888348156541e+00,3.960817346595896460e+00,7.353020846842392544e+00,4.432314530601574987e+00,6.348169316565152265e+00,2.502149813883460805e+00,6.128471791598121499e+00 +-1.013240803735802942e+00,-8.014628681214892580e-01,3.914986840899605802e-01,-4.182871213923220921e+00,-2.436187298675244861e+00,9.875968433588133699e-02,4.923257732371997264e+00,5.474074476059730188e+00,2.808478061409179549e+00,6.312024025740812228e+00,2.064002107289165000e+00,4.387602522912947833e+00 +6.197151744087525671e-03,-3.149234092173039734e+00,-1.654102488856168396e-01,-3.412852847139776769e-01,-1.374484405133386655e+00,3.008339685703273148e+00,7.066411960496671973e+00,5.893878504480790426e+00,-6.355295163345040521e-01,4.776525929809087856e+00,1.379400472880342399e+00,2.425387915421347351e+00 +-3.904493631610490012e-01,-1.264212846324545669e+00,-2.225130675970304228e+00,3.537047195554293033e+00,-1.110739285306775681e+00,1.763013865152736503e+00,7.669229880295137747e+00,7.033887082352526576e+00,-9.855532089657668138e-01,2.673791490967353468e+00,2.979947600959134135e-01,4.784590574609719482e+00 +3.385595454556616923e-01,8.543168756601026148e-01,-3.998827467911054701e+00,2.792529087814373145e+00,-8.980532521212729602e-01,-3.434307464143248279e+00,6.673272479165506255e+00,3.658839214659449279e+00,2.051941196236151566e+00,1.813070366847800319e+00,1.733569923426339532e+00,6.495342894923719967e+00 +5.457907858885175933e-01,1.406319903308074437e+00,-4.003999994455309519e-01,7.598421744986120219e-01,-2.194432074523073872e-01,-1.521827718638907312e-01,6.771372674723006746e+00,3.146117206284628764e+00,5.052401051425627898e+00,3.103934056600683444e+00,2.788192216146352820e+00,5.148535415200887755e+00 +4.558412795895107061e-01,1.104444297834384775e-01,3.593332594690472170e+00,-4.491949968717319219e-01,-1.249186860862924409e+00,4.848963876141733631e-01,7.417506132955815623e+00,5.706804425219697663e+00,1.215304517010838303e+00,4.780543049014910117e+00,1.268904798642988219e+00,4.344918043171323241e+00 +1.029599828608850798e+00,-3.071971053391180928e-01,3.348362969849801640e+00,-3.252650131375099285e+00,-7.798963774535212501e-01,7.979538575667203260e-01,4.762983994516790887e+00,5.907165620073715928e+00,-2.723269413874934486e+00,4.328361348759193206e+00,2.685950096418165955e-01,3.347897102570498884e+00 +1.859740361719270263e+00,7.446068548254567432e-01,-5.897576147674840064e-01,-2.397830480271299081e+00,-2.495209820399827194e+00,4.455774218736996417e-03,2.135666466920343343e+00,5.503827401310089407e+00,-2.574279522444243185e+00,4.861401535483356184e+00,1.201085947131323994e+00,2.655449252937117421e+00 +7.374741802790536482e-01,2.322398825206865025e-01,-6.388607919241386934e-01,1.558201954142270029e+00,-1.169242667594004859e+00,7.156079652442062233e-01,1.209797746695326470e+00,3.280608636259185751e+00,2.433976210884713609e+00,6.860566217677655843e+00,3.428522783072619262e+00,4.354001919376115026e+00 +1.950582162144144371e-01,1.650484120201193006e-01,9.187050848428093275e-01,2.397232901981297459e+00,8.846211368723200241e-02,1.915130839190936074e-01,2.395860524137094050e+00,4.892194719829086047e+00,5.158820345845164468e+00,6.636110962149698977e+00,3.735949827975016291e+00,6.185136809968994065e+00 +-2.166162878878472142e+00,3.580732411560658135e-01,3.184832216671073635e+00,1.162138682750387897e+00,3.518870334769891306e-02,-1.993834323159580979e+00,3.195440828486001195e+00,6.371795030099142387e+00,3.311349987162778508e+00,5.273050129739965897e+00,3.450213330997202288e+00,5.173169406007716020e+00 +-3.083572858198748712e+00,2.049828050997768880e+00,1.369940080228404966e+00,-1.968064312283646089e-02,-1.465151629194637373e+00,4.167797826275299600e-01,3.621458553235387345e+00,5.113646283697613981e+00,-2.572042403930123733e+00,3.535381998201279075e+00,4.275033910035618945e+00,4.819187497449219038e+00 +-3.759345714741513689e+00,3.866920217978569774e+00,-2.103677830170176399e+00,-4.413827482702367688e-02,-1.884494713061559912e+00,-1.664631160098107854e-01,3.824917394299513163e+00,6.739145715447541818e+00,-1.224305480377219979e+00,2.002436272864535738e+00,4.451854545236884064e+00,5.366281616039342950e+00 +-4.578524685542856076e+00,1.778297781524767363e+00,-2.342573708673762134e+00,-1.198012191420462891e+00,-1.087814814573651923e+00,-2.086338604224302173e+00,4.904593866914863654e+00,6.667415099684595781e+00,3.719124336327230829e+00,5.253414586500423589e+00,3.973608202969439951e+00,3.507768606291574276e+00 +-2.825684221751323832e+00,1.017035095562614178e+00,4.304519462972633548e-01,-1.308161149994459427e+00,1.808840797870643113e+00,-7.167306005669671354e-01,5.610262983927929881e+00,4.565759051248619471e+00,6.723464872045026297e+00,6.383075616093323745e+00,4.233965708217838575e+00,3.808504549699757824e+00 +-1.019503719482324655e+00,4.065875506696980501e+00,1.787319612937320334e+00,3.785871797822472073e-01,-4.859598417414798810e-01,1.860761205100296634e+00,4.634366340916597160e+00,5.953031621103274773e+00,2.001161800363860266e+00,3.602337542990413866e+00,3.525568024920474830e+00,4.793193174110071730e+00 +1.786485900516896486e-01,3.602429925837669522e+00,-3.578127110716060322e-02,1.737775079834362746e+00,-2.223910956932633631e+00,-6.312674771699231524e-01,4.791120446589096638e+00,6.647638521125487365e+00,-3.934713074554867518e+00,3.509959809463994773e+00,2.288498110193316837e+00,3.623256074928376869e+00 +1.377030533515761768e+00,1.868948230854079462e-01,-2.055257803764825919e+00,3.105518687464257077e+00,-2.031096529580538324e-01,-1.283138892990953739e-01,4.735750670689223618e+00,6.241461733830655056e+00,-2.176226623923146697e+00,3.986486597268589449e+00,2.201362078044586390e+00,5.134844960398845970e+00 +8.802257136493027989e-01,6.991610167673095733e-01,-9.424059896640486489e-01,2.691141223314705844e+00,5.549848900595333312e-01,9.033152868585698769e-01,6.019697038791218091e+00,6.081796153028275143e+00,3.477088450765857708e+00,4.767849061984209769e+00,2.942893996062047712e+00,6.421923977825514385e+00 +-1.381855267987889269e-01,3.358675920631863043e+00,-1.269793476586484893e-01,-1.901853822405958461e+00,-6.386590191962151497e-01,9.989271146097629117e-01,7.635877472799797339e+00,3.757307194184470678e+00,4.359092498585783737e+00,4.700958837177121374e+00,3.883273996083135504e+00,3.670302715800173754e+00 +-1.242603731882978346e+00,1.179047161150432732e+00,-6.655607401899660269e-03,-3.935150388695539458e+00,2.071500264828480820e-01,1.416157323149925595e+00,6.199934806643137009e+00,3.645732419870664653e+00,2.646933395806181366e-01,3.664391908397746533e+00,4.501513758231745932e+00,2.208611795199703298e+00 +-1.980575304377616641e+00,-1.023312785625449362e+00,-1.076612247841705505e+00,-1.100154803106146328e+00,3.105740538097445658e-01,-1.219956835939274509e+00,5.805317603722760289e+00,4.728494949076917919e+00,-3.770431797980794641e+00,4.421206940584860412e+00,2.599085846756127083e+00,5.651612737237668327e+00 +-1.516710654879325659e+00,-2.323655834268085751e-01,-1.979048757027758842e+00,1.308402345296667990e+00,4.294516415566841938e-01,-2.959675111221924393e-01,7.029773949233699248e+00,3.801580229547636414e+00,-1.745096512269221911e+00,5.483005158758311737e+00,3.949109605587119098e+00,7.534620038935655018e+00 +-1.008203449196294343e+00,1.018038906638925600e-01,-1.753742555218650301e+00,1.038464361603437247e+00,-6.402963602107262231e-01,-6.128757175426355897e-01,6.356158567751506894e+00,1.796323243505194789e+00,2.363618419278966876e+00,5.121392245046798131e+00,3.177370768889981711e+00,4.039345223032076326e+00 +-1.895911417887633732e+00,-1.353493576124875197e+00,-4.044122617485270688e-01,-1.680421006422703645e+00,-2.941734439100746057e-01,-1.290065374186449842e+00,6.494096475458992046e+00,3.748179576591863071e+00,4.345436684232510061e+00,6.504187099950051731e+00,4.161836780587097273e+00,3.639340715987385177e+00 +-1.010428440734555622e+00,-2.913311355246178458e+00,2.987635913468353333e-02,-3.279635424953385225e+00,-5.459629222529611692e-01,1.379276987703866197e+00,6.519992428468716739e+00,3.821967605340175211e+00,-1.366874441741663837e+00,5.596444265884471747e+00,3.368739435092725110e+00,4.269651927955164794e+00 +-3.836429733507723538e-02,8.992082546887905092e-01,1.676376391647649289e-01,7.869692148824882771e-01,1.483872795671443257e+00,-1.291049843292832788e+00,6.845329173990874594e+00,1.840953010689553970e+00,-4.601262519633497305e+00,2.963292356885109946e+00,4.284365403802066652e+00,3.582885009051825165e+00 +1.133727084981247302e+00,1.667861749572196572e+00,-1.002822474434478472e+00,4.399034951128379056e+00,7.289220369490914120e-01,1.313710382185457881e+00,7.786877049577780596e+00,2.650399780779336911e+00,-2.175503178058280973e+00,4.858432397219559107e+00,3.588870920164624501e+00,3.967739611535218813e+00 +3.028928456183230811e+00,-2.343504079657432015e+00,-1.735220721547378053e+00,1.502014569001267841e+00,-2.000598529814214821e+00,3.063481019302902730e+00,8.711264538275468539e+00,3.939224384803575507e+00,2.306019998494040379e+00,3.869607166962059530e+00,4.493807489500436070e+00,5.438974973144796721e+00 +1.912884418398078878e+00,-1.017257808087804083e+00,-1.563967274598344392e+00,-5.979828118169634443e-01,-1.818763994069724443e+00,-8.957388571460802584e-01,7.842133100651661692e+00,4.706804462653856547e+00,2.062018851046006684e+00,2.013173749054140593e+00,3.174823864850833566e+00,5.055864408312224612e+00 +1.936123025836812950e+00,-2.881807603031397713e-01,-6.322762488805153680e-01,-2.405318421708156351e-01,-1.117212170935863585e-01,-2.089224422518605184e+00,6.859814222292866859e+00,4.305888056446495860e+00,-1.504652401585081734e+00,2.724891608993822878e+00,1.953893529791669970e+00,5.706103435960124592e+00 +1.618221552723499768e+00,-8.002646754975277776e-01,-1.541544171952438314e+00,-5.183997404836993006e-01,-1.770290809661849929e+00,-7.887086637616680385e-01,5.784084225940442359e+00,3.699792675914003404e+00,-2.693492530826773645e+00,3.368124005382250985e+00,3.150094770688928847e+00,3.256005576777363686e+00 +2.080028156160730113e+00,1.305113373605160998e+00,-1.579242564349135458e+00,-1.031759963327423257e+00,-2.296390069112169030e+00,1.113842869659726453e+00,4.258537816670777687e+00,2.666290978369139530e+00,6.042940022593121796e-01,3.276888245125995969e+00,4.134579687760838063e+00,3.667555485766595069e+00 +2.067576750771584759e+00,1.650518389633325311e+00,-4.526871086243544617e-02,-5.336818663506125437e-01,-4.757304941173889912e-01,-2.213097572202314289e+00,4.381036304112623014e+00,3.610682949304262923e+00,3.614310001038989917e+00,3.483275795388367513e+00,3.583129797372695435e+00,6.389563758440964136e+00 +3.786017738921322096e+00,-4.475021169250423814e-01,1.094641211652286561e+00,1.816604243070493174e+00,-4.137960824756630185e-01,-6.128853266638312203e-01,4.872969010800280998e+00,4.909625339754276396e+00,2.644042578184389924e+00,4.099073312922418388e+00,3.757909776778407540e+00,6.151163093415396688e+00 +3.483896602799633424e+00,-1.711015863873070142e+00,-5.104956170019500084e-01,2.859627247942449380e+00,6.568479639301256778e-01,2.204250097643949413e-01,3.773568767145410785e+00,5.060001513972095744e+00,-4.371107711584041766e+00,4.335962442428765939e+00,2.918503197900284896e+00,5.090574584299498717e+00 +4.576394942912266117e+00,9.426496451287436074e-01,-3.019032842906256064e+00,1.798851426301030676e+00,1.871164952159827033e+00,2.498610384954699781e-01,4.798982163132473389e+00,5.230029489935797749e+00,-5.885922879260423457e+00,5.282686299998096580e+00,3.374482995803665730e+00,4.608386496870978455e+00 +4.163200436344271615e+00,2.165441207107301036e+00,-2.376162131368675379e+00,-1.205931204947915392e-01,1.637935602027619009e+00,2.460981688298094383e+00,3.263146420542350601e+00,4.191488902458624821e+00,-1.815598761535369476e+00,6.212258418129863458e+00,3.817028694278706613e+00,3.317411050370447256e+00 +3.928017036429528375e+00,1.333673631104954627e+00,-6.458178088186522503e-02,-2.614809517409371509e+00,5.404482446485152636e-01,9.982797489639411159e-01,1.248171468675098428e+00,4.857115197313684796e+00,2.164447559332584703e+00,6.784390463654808912e+00,3.026009329226857947e+00,4.269082725882513252e+00 +3.342461135564160024e+00,1.813969413192767943e+00,1.271570493954519376e+00,-3.241552141702179313e+00,-4.107566534691114990e-01,4.554059273203925340e-01,1.474089932010938409e+00,5.396862418488867164e+00,-1.335624732277542748e-01,2.423500390873732258e+00,2.723503842105398753e+00,5.101459630326847794e+00 +1.799652716973078714e+00,6.944756218125076597e-01,-4.194005994748716826e-01,-1.083790345331669958e-02,6.616246977677708863e-03,-1.257618932044302529e+00,3.330856688646777641e+00,4.323617273943576755e+00,-3.618646261984716617e+00,1.108704578913732419e+00,2.418932105367774810e+00,5.699769803981489247e+00 +1.672723233610053040e+00,-4.900712705065484592e-02,-2.612987182637256378e+00,3.631112288887047956e+00,-1.299422808443319033e-01,-2.561113511042099944e+00,5.022410746851131869e+00,5.238189687817999207e+00,-5.493461308644604912e+00,5.161521639309378351e+00,1.877491626970969385e+00,4.035544796621502783e+00 +1.611958406255827869e+00,-3.091732562761747571e-01,-2.765880768238858867e+00,2.818067235798883186e+00,-2.986442384781843873e-01,-9.983095628402852695e-01,7.515330779140204420e+00,6.175506103179614570e+00,-1.835135034308899904e+00,4.823193971936775348e+00,2.719501996436998859e+00,4.329517824313737329e+00 +-3.032516886443232806e-01,-5.896004093191060669e-01,2.372919865267558714e-01,-5.532374295282154186e-01,-3.508148009550304258e-01,9.537541883800372267e-01,7.701903546473513273e+00,6.350400019395164186e+00,9.933807002980103995e-01,3.613308445084823628e+00,3.691216874039355833e+00,4.982059011101596546e+00 +-1.337959007393631605e+00,-1.002276626933851666e+00,9.579227200033104683e-01,-1.678868230406534767e+00,1.037460164619667724e+00,1.764842439121176110e+00,7.461032443895634358e+00,5.762777110943723358e+00,5.819435959838257233e-01,2.926436880405554497e+00,3.826542669273639952e+00,4.704638029968001511e+00 +-1.233022460530211362e+00,-5.743711226531966751e-02,-1.380807697986606186e+00,-3.842982498171382044e+00,-3.134900402257079222e-01,-1.635880325408218816e+00,6.701998499399708820e+00,6.226440851859729619e+00,-2.691285694757140412e+00,5.804829449411999853e+00,1.525138823745268990e+00,3.493815860942671936e+00 +-1.865205496337602131e+00,1.431710762843489970e+00,-2.718995054907896503e+00,-4.593443294069448513e+00,-1.383122156873124453e+00,1.309052096583117608e-01,2.337293587335182110e+00,6.260320734918286334e+00,-2.818298318179969009e+00,5.260742496647727862e+00,3.769612237166608537e-01,5.288363853086943678e+00 +-2.206628938695722297e+00,1.551514493449068777e+00,-2.413132556106665660e+00,1.178316695476375520e+00,1.457335410974213152e-01,1.204115957202990028e+00,4.698235367745162705e-02,4.896590014458261031e+00,-1.378430015980652179e+00,3.170740511370718551e+00,2.494619471374078135e+00,6.962789005562388667e+00 +-1.860135976104381417e+00,1.798906615382426022e+00,1.434350091326882515e+00,5.291584491944156809e+00,6.768586675674830300e-01,2.077446917403265036e-01,2.813578563378360542e-01,4.655291061699078803e+00,-8.382086229604519545e-01,3.621502355422674846e+00,2.593844517273804939e+00,1.607291002811817471e+00 +-3.124042680743386313e-01,7.577307867890251680e-01,2.121353399933311845e+00,1.350895633914932281e+00,-2.789513697782862178e-01,6.753067582859945128e-02,5.177064883997037903e-01,4.187754565173992916e+00,-5.103936229277277192e-01,4.061669028788871039e+00,4.315741458371293859e-01,2.824313347012796793e+00 +1.130011797480357849e+00,-8.391072593324183648e-01,-4.237611371298919405e-01,-1.933216574495729256e+00,2.742387868777405036e-01,-2.994752019428656986e-01,2.576689234901710535e+00,4.197275424097892227e+00,-2.993473679205946425e+00,4.366762917006224320e+00,4.797295118434252714e-01,5.492514421382309386e+00 +6.013461290273439674e-01,-7.688129699543496676e-01,-4.897451212908877416e+00,-2.480162142973378891e+00,2.630291790748110259e+00,-6.105555302220355696e-02,2.831441988274062460e+00,4.603751886326594267e+00,-4.760866155975504554e+00,4.405816125861661270e+00,3.255181258612026340e+00,4.946983860710324699e+00 +1.826389000794743867e+00,1.360554260325545606e+00,-2.665441211971080637e+00,-2.956296864889385922e+00,2.293554557599212451e+00,-3.452188178759939552e-01,4.107295149898662956e+00,3.829840697084754275e+00,-5.231379965522782172e+00,3.965474815393268848e+00,4.403908204209738386e+00,3.258035887312124679e+00 +1.394651957441010781e+00,2.188037568200167815e+00,3.918724289346340317e-01,1.396245913849412656e-01,1.029139151119064621e+00,3.966988293802046206e-01,4.213206276829068564e+00,2.317514670608773919e+00,-2.288681983437580669e+00,4.481009799782624370e+00,3.195088291628812360e+00,6.864843505746224928e+00 +1.317933650233626075e+00,6.196489704735804738e-01,5.453711560110501289e-01,2.872940919956571193e+00,-2.861319974669730426e-01,-4.446493412264039269e-01,5.341245468866937074e+00,2.402731574217447097e+00,-5.277416786616697664e-01,4.779774807980386342e+00,4.143791484593146279e+00,5.334646907298598251e+00 +2.078369651602372858e+00,1.055758634535370666e+00,-3.462383431273311274e+00,1.678371156089661920e+00,1.137865298635378108e+00,-6.250099977772415327e-01,7.340207577136370176e+00,3.994784883241460527e+00,-1.744308929395895547e+00,3.878048144569627986e+00,5.605253434021879144e+00,2.521198941506532343e+00 +3.149956991405951090e-01,3.999108922925000975e-01,-3.508493449203125003e+00,-1.183807484020850787e+00,2.048243675682622555e+00,-1.041283196264988664e+00,8.555754908569184636e+00,5.741224396017981846e+00,-4.554342668069114808e+00,6.039359007999831164e+00,7.062085973272534289e+00,4.566203609589495116e+00 +-1.335484915511098825e+00,-9.496044867575319515e-01,-2.101464349861162262e+00,-6.019396382394653910e-01,2.167658385589843473e+00,1.143199269311364175e+00,8.813808214112786033e+00,5.019559988327137567e+00,-6.275070551017204679e+00,6.788630174725600597e+00,5.175258844591393625e+00,3.385675944182517050e+00 +-1.762311053362322077e+00,1.495196654900621480e+00,-6.786751093886460584e-01,1.226921069235455297e+00,1.144931843234056057e+00,2.092742335952447963e+00,7.687264647442435539e+00,2.181909398040426940e+00,-3.808404812229323255e+00,3.953596456987713559e+00,6.473631774814190720e+00,5.310460369457939755e+00 +-1.242235850301085520e+00,4.067472821829554164e-01,-1.266287029602956693e+00,-4.473018400253331306e-01,1.520755709265585010e+00,-9.731500771403120975e-01,5.208368016111156074e+00,3.098806325055673216e+00,-3.095765099554673938e+00,4.673366002556873511e+00,7.936264835799946127e+00,6.124787052766116346e+00 +-1.047907593483522248e+00,-2.688763226369760506e+00,-3.113089820761621773e+00,-2.512693119715510015e-01,1.846380876804381677e+00,-2.282894962031603470e+00,5.906650769498869025e+00,7.191220081857573554e+00,-2.519878654915281402e+00,6.553610623994441831e+00,8.380986906793040703e+00,3.584350310865875411e+00 +-1.844627464125473404e-01,1.122766995630271047e-01,-4.121025287637391621e+00,1.797875294197349483e+00,1.585009272754673182e+00,6.660819244520836957e-01,6.893875111118499710e+00,6.874602615116323534e+00,-4.767729824381190085e+00,6.979311980368485102e+00,6.773564231786926904e+00,6.240392836728278603e+00 +-1.553126461549380499e+00,1.428128698225768156e+00,-3.387762219870578129e+00,-5.811216978785013199e-01,2.980713220670671015e-01,1.450360386619919950e-01,5.111534095669602706e+00,4.052598079611519744e+00,-4.344976218930746370e+00,5.539882879186871278e+00,5.024728618775607281e+00,4.627643543827098860e+00 +-3.994786779790023168e+00,-3.030500860844554722e+00,-1.574365772133774488e+00,-2.334190637396902357e+00,1.041007653499785857e-01,5.435714176373549478e-01,5.284802151532128178e+00,5.099647470951653716e+00,-3.371047890540608272e+00,2.211015009308235690e+00,6.168632169582965119e+00,4.081638605238643080e+00 +-4.951401337488436916e+00,-4.281597413464874435e+00,-1.446965890712374803e+00,-1.532118915967320305e+00,9.840892849850390034e-01,1.695384535337644216e+00,5.045181307419701611e+00,6.578181144299732885e+00,-1.598630209145178505e+00,2.396734116344834131e+00,8.386117100329082419e+00,6.105214003038710757e+00 +-3.768335176734624703e+00,2.821499338348825159e-01,-3.841967183343979908e+00,1.219078443502037423e+00,3.382258767711604719e+00,-3.293032198175086522e-01,5.688952638614140689e+00,5.508928573275908569e+00,-3.851911527026880222e+00,4.279345597822666214e+00,7.042749744856436678e+00,2.811021302569785441e+00 +-2.000378725346092956e+00,1.721205612915869709e+00,-4.147184173872245694e+00,1.613977079281301741e+00,1.245829365421335488e+00,-3.110864252931751506e-01,6.006974816112244930e+00,5.176304910092258460e+00,-5.261539750925154024e+00,4.346664796174861678e+00,5.904321977862433179e+00,4.917188698982512207e+00 +-1.529114688558853796e+00,-5.520735524876592137e-01,-2.656566963244266777e+00,-6.190376217729887109e-02,8.875057108964315988e-01,-1.866651543240889222e-01,4.284550674581560692e+00,5.405435297673074402e+00,-4.775343473267573913e+00,3.799120905352531885e+00,7.318339719949468858e+00,4.545836912879165581e+00 +-1.382077426139134202e+00,-1.460745776425036890e+00,-2.296335121286509073e-01,2.238441972820927328e-01,1.636529721440337148e+00,-6.973505035377320915e-01,4.318230763979286735e+00,4.610885275325962596e+00,-4.158230463276119337e+00,2.544854833773063874e+00,7.518444240314048344e+00,2.399475115996510866e+00 +-9.776006139457309452e-01,-1.267066756597080124e+00,7.938082447649477125e-01,-1.413220720731109603e+00,2.171566498567953474e+00,-2.290059544218771670e+00,5.087184242756512376e+00,4.886844020442945968e+00,-2.652016073078577563e+00,3.729252890668482756e+00,4.806585388871521758e+00,5.511388409605797456e+00 +-1.302065558268684420e+00,-4.226338953756406114e-01,-1.123615705427960965e+00,-9.783303329218313582e-01,1.007122282374927735e+00,2.021121699101357638e+00,5.785845498026464639e+00,7.340906335593324172e+00,-3.094773528188479617e+00,8.037933946174717903e+00,4.708212886471146774e+00,5.125970724634678177e+00 +-1.605904370796716885e+00,-1.232593778691533970e+00,-4.337633722520346069e+00,2.543933438651938550e-01,2.444625552455861772e+00,1.588729289098186337e+00,3.946041794826312454e+00,6.208758917985891301e+00,-4.361938518167198353e+00,5.252633179210799419e+00,4.261297571469822465e+00,3.252001104075056492e+00 +-1.367407857803576876e+00,4.737473641267302416e-01,-2.935007695235578140e+00,-1.540156451526306203e+00,3.867695856989417535e+00,-2.178328585195230538e+00,4.309242335980648875e+00,2.485156214386876172e+00,-4.796033594615051854e+00,3.794170355583786236e+00,5.729969752339677314e+00,4.005477881434223342e+00 +-2.255653640435242302e+00,2.505874133578036123e+00,8.426518445301535432e-02,-1.024343935297204800e+00,2.751911341281242152e+00,2.095966177392705743e-01,4.137847859460531019e+00,3.843512617322950575e+00,-3.612947540317437145e+00,3.221189136472135672e+00,5.671551942901556842e+00,3.375065468211977837e+00 +-3.921030993293422640e+00,1.630507909858670834e-01,9.695086723449175548e-01,1.016718128066200100e+00,9.242379484877115692e-01,7.640466204237250647e-02,3.887114122371945868e+00,7.938872834349187890e+00,-3.930522720000167780e+00,2.642365263037671497e-01,5.839611272192583691e+00,2.237288727564263002e+00 +-1.936331010084744397e+00,-1.525296869443791614e+00,-1.887927094574153530e+00,2.889296467732927809e+00,6.674888846926972930e-01,-2.226209497065793741e+00,5.147626517807525559e+00,8.101203583561597199e+00,-4.036529054131140271e+00,1.460043503492038042e+00,4.555431949381168799e+00,5.518934066493400792e+00 +1.089177159792090732e-01,-1.480781935838115571e+00,-2.662620779159475592e+00,1.034614556451587619e+00,1.577832789279951964e+00,-8.318449178559828017e-01,4.720014009671788635e+00,6.953736907057773919e+00,-4.647597512732412284e+00,5.850995166966205474e+00,3.801198928568325641e+00,3.967097800413919018e+00 +8.857813357540065269e-01,1.626430617356565023e+00,-1.705199505776184621e+00,-3.030289740963192813e+00,2.396803525729377604e+00,1.417714739066025853e+00,5.888658474261237785e+00,5.147574616784824642e+00,-4.378121367908963890e+00,6.743064673446346191e+00,5.278554693669795128e+00,2.382535524532037208e+00 +1.379769462219410325e+00,2.641558084995923483e+00,1.825251076082315738e+00,-7.221922592021288168e-01,2.285832806744356738e+00,2.454150858434434923e+00,8.429248908043021515e+00,5.832642052619546824e+00,-4.493401982967590413e+00,7.640750679033470050e+00,7.192202538343089202e+00,3.930856752560546674e+00 +2.535850865204160254e+00,1.747903449949556043e+00,2.352021208472720559e+00,3.861460703360300784e+00,1.219586203910399957e+00,2.687019828144873168e-01,7.327886179081454010e+00,5.419198983552933058e+00,-3.686637380756415894e+00,7.427129093163848950e+00,7.238967956017155814e+00,5.079134620182847115e+00 +1.918686482430989937e+00,1.901521804749375377e-01,-2.233122763915323938e-01,3.527070754360397853e+00,4.868582213573210415e-01,-1.998178446545642029e+00,6.021843205344657335e+00,4.060183028189632282e+00,-1.173286360505831460e+00,3.527551104234933455e+00,5.874570741275926267e+00,8.095694785062841348e+00 +9.834708323740255498e-01,-1.767532034523958906e+00,-2.275029374245874259e+00,-6.330186885629789373e-01,4.817738872638802627e-01,-1.738891492324635024e+00,4.938549126197735895e+00,4.321312469822547797e+00,-2.291676683720837104e+00,3.359429581762446659e+00,6.659601894279155054e+00,4.369361129868212679e+00 +1.130922016234996885e+00,3.501437177607990003e-01,-2.197358340644391950e-01,-1.733438673028740773e+00,-4.798647781829542547e-01,-9.449763468903303598e-02,4.346695488232400706e+00,3.764062693634334877e+00,-4.867940086837689861e+00,3.469323980260952567e+00,8.250621485366245622e+00,3.199225863983878870e+00 +1.987774937541078035e-01,1.621324503807580752e+00,1.471824066182197965e+00,-1.574909450028733282e+00,-1.444874973655196015e+00,1.828513539814531796e+00,4.486520860130791988e+00,5.335209395860640136e+00,-6.103478888992684759e+00,5.295324495597192538e+00,5.824635096502237985e+00,5.422301366413537771e+00 +1.181252098985606569e+00,4.134968344910459059e+00,-3.613664434624985766e-02,-1.855481006435167224e+00,-1.404220683081923049e+00,-6.819517137232335990e-01,5.418137778231014501e+00,7.113217943178534064e+00,-3.589890359574850365e+00,8.317154553906529912e+00,5.537201981927316830e+00,3.586261854092550827e+00 +1.856101904956906079e+00,3.925455888329151044e+00,-1.552381011240772102e+00,1.217705537328990228e+00,-5.337796791751941994e-01,-2.701922740527604727e+00,5.226323506836971333e+00,5.226959111586891638e+00,-4.693813412962200005e-01,6.616116507490185761e+00,4.891452878561917572e+00,6.033164740847288599e+00 +9.164264286591120579e-01,9.674231528967307536e-01,-2.080074393406138089e+00,2.693222771650090053e+00,-5.630122689619707632e-01,5.148341904779039080e-01,6.093970864738022186e+00,4.375989109329739613e+00,-2.262852418509282870e+00,3.253090895327358734e+00,5.143223292101271049e+00,4.424456203474296245e+00 +6.455961493516636507e-01,1.280927382243076229e+00,-1.905045654688751533e+00,1.415314383325836811e+00,-1.366699782267320806e+00,1.488353364690308878e+00,5.993014095948725029e+00,5.663699500937534381e+00,-5.375949927543592466e+00,4.127864241623477426e+00,5.749506903894103793e+00,1.749369021285917647e+00 +1.579146930776830771e-01,1.672634254975262857e+00,-1.481153727250525964e+00,1.130489333255395579e+00,-8.576220968497063613e-01,8.751866702420707522e-01,5.507422646264366506e+00,5.434873638195527157e+00,-5.476225810067839816e+00,4.600462707919646732e+00,4.738172189305659643e+00,6.056550584723551012e+00 +-2.909607925415798046e-01,8.724720745357827933e-01,-2.368999111916266997e+00,-1.715903225118668995e+00,-2.148380708258881278e+00,1.183998800131415230e+00,5.349573112733391866e+00,4.165787047009397170e+00,-3.323558655156205077e+00,3.223375661647526425e+00,4.119277002685489464e+00,4.599970682298828883e+00 +-3.306645713722670132e-01,1.909979759437071767e+00,-2.031465225505575400e+00,-3.587823934881999577e+00,-2.860600747815385425e+00,-1.987472501142117043e+00,6.256079522580288099e+00,5.830789907284640528e+00,-5.847171202702261539e-01,2.975383640935380214e+00,5.490481902136949977e+00,4.387879926982361845e+00 +4.263228177411126918e-01,2.157561582795937571e+00,-3.316935045948693705e+00,-2.940545435776955152e+00,-1.864903705361835584e+00,-2.524928902417629573e+00,6.628072144779578068e+00,6.395597652102816610e+00,-2.696110597254691044e+00,5.952264941109109309e+00,4.257662994441343329e+00,3.703930638641808493e+00 +1.193366732033157351e+00,9.826325589930737792e-01,-2.516527984552010544e+00,-1.153359427414173854e+00,-1.706924925159805539e+00,9.752757465543318016e-01,6.304456315745788686e+00,5.489217295081757264e+00,-4.712329429705231831e+00,8.394840572117590938e+00,2.978300494010345023e+00,3.193680706741855779e+00 +3.602778714187879761e-01,1.836253113768347767e+00,-1.211580301569618046e+00,8.376741731740589003e-01,-2.925237604631134580e+00,3.386650484928459992e+00,5.494203647555168324e+00,4.661456842424625435e+00,-4.605837326283065636e+00,5.816965219020976186e+00,3.351541411691269179e+00,7.093379900479445332e+00 +7.232824621865587833e-01,2.360273753448378642e+00,-2.119738764212126370e+00,3.166679016710597150e+00,-1.933442555463390722e+00,7.646785509822175975e-01,5.160871861802658778e+00,3.943309158431016037e+00,-2.819566607777573175e+00,4.778156170584292539e+00,6.104584871203494245e+00,3.806052101117367137e+00 +4.895188127295140856e-01,1.598400661269894441e+00,-4.059440643799568704e+00,1.761520509834790804e+00,-6.930824119684197981e-01,-1.602894020209124637e+00,5.354020572274483136e+00,5.675753062682611372e+00,-2.074769113012784771e+00,4.534992326556606557e+00,6.374140926240183802e+00,2.995667537325232388e+00 +-1.417146712806542030e+00,1.162540749823484543e+00,-2.821661381645873767e+00,-1.864701162965589631e+00,-2.148300520105935973e+00,-3.204283294137773574e-01,6.828004225253447856e+00,4.848636180667226014e+00,-4.807445855863754502e+00,4.322166784119967353e+00,3.357618936239717744e+00,7.477707704377309028e+00 +-1.223100535472626760e+00,2.399805049786160716e+00,-1.881675152841982834e+00,-2.051458864990816977e+00,-3.036353204927186411e+00,9.162349161972946909e-01,6.747155584887854829e+00,4.424131394752608415e+00,-5.172862866739350807e+00,3.714503085883650080e+00,4.530739860216478121e+00,5.588621204537695952e+00 +-2.331620117532256398e+00,3.091363422104554726e+00,2.498570506945987368e-01,1.156413474997385782e+00,-2.338453850701846637e+00,8.381982775322298629e-01,5.346875066248663266e+00,6.416893309367024401e+00,-4.329012813825567463e+00,3.400418611958983206e+00,5.652205932632920593e+00,4.984056855741751058e+00 +-2.663511555637592121e+00,2.035013611904984643e+00,2.174964038665803123e-01,2.002099711433644291e+00,-2.770177392028112084e+00,-3.737854810035730058e-01,4.668187886431102385e+00,4.793161363316138512e+00,-2.160875966280075389e+00,3.039640789342107574e+00,5.039753264893064078e+00,4.928799220242923163e+00 +-1.080341765991819303e+00,1.594274693509639906e+00,-2.597492751680845480e+00,-5.159732943759440804e-01,-1.862695010933665074e+00,3.223788650687369195e-01,4.396700210807002129e+00,4.087088907698947615e+00,-2.788140969679977488e+00,2.753411555394968069e+00,5.138471736541990964e+00,4.463078872331661451e+00 +7.757674270661434335e-01,8.185867493298183417e-01,-4.025774562613181118e+00,-1.778381660850697710e+00,-3.344381828802922119e+00,2.261965511720037125e-01,4.697408133444811895e+00,4.072430739626219598e+00,-4.819173401705640458e+00,3.401845223177136557e+00,4.451556870688682999e+00,6.392728433143465949e+00 +7.611104818252114601e-01,-8.286425486551746156e-02,-8.714099597121982566e-01,-1.392322392271790887e+00,-2.010274344700349047e+00,-1.187859749674115672e+00,4.220067923014012123e+00,4.198593555867003779e+00,-6.339609891012745635e+00,4.219375112814422124e+00,4.609282730777004566e+00,3.743959361957657883e+00 +6.790603894908642246e-02,3.587434096184727306e+00,1.621506077846056160e+00,2.664330740287865318e+00,-8.178962447624227305e-01,-2.098826921279402513e-01,3.445800902112551078e+00,4.990575469785755836e+00,-4.415085684552428447e+00,7.354874196964784616e+00,3.987913881285179318e+00,2.078377777453091824e+00 +-2.114987211631105812e-01,5.188606737658716384e+00,-1.843969134213113703e-01,3.702957121339581548e+00,-2.006425116542370102e+00,2.737147109700642122e+00,1.169552537800597314e+00,4.655034887063085769e+00,-2.251466020449346850e+00,7.997480528203591454e+00,4.994447217168600517e+00,5.452196236741163382e+00 +-2.044273108467230760e+00,5.835049444426541054e-01,-6.446928228212241763e+00,7.850216573166128864e-01,-1.431515617724336220e+00,-8.556040301668343950e-03,2.805575485367272748e+00,5.545649097145647133e+00,-2.639006556732358177e+00,4.314394547457116147e+00,6.591809101603595344e+00,5.870140067503667680e+00 +-1.101726457346012822e-01,-1.620274964016493735e+00,-6.641148523763781064e+00,-1.094626423534234005e+00,-1.244275022996923497e+00,-2.347922786427476094e+00,2.986861694153729374e+00,6.013670007454654076e+00,-4.749572626239835671e+00,8.989575797021882586e-01,5.871049258764507783e+00,3.692157962858390707e+00 +-1.355492099570392295e-01,-7.710785816490806077e-01,-7.460042509833926250e-01,-1.431969779711422142e+00,-6.658354460507525108e-01,-5.212556798169548644e-01,3.640715501686690558e+00,4.199800461076788949e+00,-6.923924389413915748e+00,2.409415786856320629e+00,4.723429037241177575e+00,2.118230114873473902e+00 +1.066566345600753696e+00,-7.877368489464272594e-01,2.450416683951243790e+00,-7.293212181132470162e-01,-1.831209305352095917e+00,2.128019456441309631e-01,4.630997173162287872e+00,3.153504864869932423e+00,-5.121705788364117495e+00,4.961928494411546708e+00,5.848549132384527560e+00,4.270064162359655136e+00 +1.193425803725096435e+00,-1.896760202919263172e+00,-8.562759139084471505e-01,1.806142938563724432e+00,-1.942094921675173724e+00,1.854619225282396755e-01,3.595501587468281190e+00,4.159012662003547689e+00,-2.807186266658452389e+00,6.385983535919036669e+00,7.004357507056047538e+00,6.747016245236693521e+00 +2.083761271791886305e+00,-1.276720735151101849e+00,-5.479757520210992716e+00,2.606765689959579468e+00,-1.441777419428688312e+00,-1.139184854626122068e+00,3.426172540266504640e+00,5.032483969662179923e+00,-1.070486597603295564e+00,3.698943296325017283e+00,4.604898685711097173e+00,5.158872725905403023e+00 +3.913190663892308852e+00,-1.838204721789715279e+00,-4.340440974661147422e+00,8.709417064315086998e-01,-1.368377580730800069e+00,7.857745914260003683e-01,4.206649879981476658e+00,6.144795896611343622e+00,-2.978755867683351433e+00,3.100088655314563901e+00,3.913506554336225740e+00,3.186174085507160747e+00 +4.353600527808068499e+00,-3.456748851778082887e+00,-9.091876232287394721e-01,-1.666746966739525604e+00,-3.835541755542447806e+00,7.176915106309048609e-01,5.999160702075048590e+00,6.123954378276296850e+00,-3.942832587262444122e+00,6.505938216379314909e+00,4.494098247601696627e+00,4.785774580268420841e+00 +5.751111549400718559e+00,-2.606365152484285463e+00,2.712259588367511576e+00,-3.002823022246964513e+00,-2.501744939896656028e+00,-5.772774549715806169e-02,7.052118926317236358e+00,4.556194363128761360e+00,-4.652746919986396890e+00,8.969322605193864817e+00,3.338448377151303603e+00,3.847965444282013703e+00 +4.412564108108409044e+00,-2.197886789007060138e+00,-5.546879011168140972e-01,-1.945269973105419936e+00,-1.544695102302105383e+00,2.213139708179573395e-01,4.681231933766181186e+00,4.183559885287595925e+00,-2.610332668439563797e+00,7.894978062034469168e+00,3.369021545659768524e+00,4.544912566977936663e+00 +3.799001718987409681e+00,-2.137054923626828806e+00,-4.457079794441984433e+00,1.226395757840899492e+00,-2.030637715223882811e+00,8.683575779812516271e-02,3.111532903220851853e+00,5.466003107294981511e+00,-2.524675485755767390e+00,4.537313889249458221e+00,2.228549041068664138e+00,6.596994726986956437e+00 +2.235099628414229045e+00,-1.228748151889619278e+00,-6.116059378706810712e+00,2.226761373624125628e+00,-3.167429537191252198e+00,-8.899723588492577941e-02,2.739760515153621956e+00,5.488751323872038235e+00,-3.267075187526828017e+00,3.180835210134046687e+00,3.677150338628789594e+00,3.917626231455117569e+00 +1.584180587095145309e-01,-7.852655966666166609e-01,-1.812135908497644499e+00,1.811381571465614071e+00,-3.868721454666545601e+00,-1.305486931701104858e+00,5.212141177367930034e+00,5.083612625330649948e+00,-4.227537965591771751e+00,2.436317686035841312e+00,4.677542309159430367e+00,2.750568805364736136e+00 +-7.766652041322625877e-01,3.440854525018116616e-01,1.291619621175252419e+00,2.833256115689901211e+00,-2.566560115440099654e+00,4.448779037142117643e-01,4.720370609089600933e+00,4.390812785928678963e+00,-4.009024438940521406e+00,4.226275748530937015e+00,5.640016549047624395e+00,4.977936640280186786e+00 +-1.666461426108118760e+00,1.785540568414713203e+00,1.805973667163951024e+00,3.702551833821285943e-01,-2.318949619335108014e+00,2.193260776215153474e+00,6.501093851038027616e+00,4.097104561187784988e+00,-3.380629817883458621e+00,4.993965235226390575e+00,5.038063111393355165e+00,5.840642169186212485e+00 +-2.410407352193815633e+00,1.827937464828485625e+00,-2.753275686170967518e+00,-1.916569669564210932e+00,-4.188875821867550364e-01,-1.434728816777196769e+00,7.222656113864077909e+00,3.863332368140850015e+00,-3.557266307242549885e+00,4.348824044871342664e+00,5.264486958202708067e+00,4.345164796256563378e+00 +-1.666239550604287967e+00,-6.080677676092065553e-01,-6.016779562497917233e+00,-1.597834161041584933e+00,-1.273227400451314217e+00,-8.484560339955301567e-01,6.599063039814783593e+00,4.026283348567725184e+00,-4.751951651617574157e+00,5.398147519999094257e+00,4.362588794554010718e+00,4.096358997545670455e+00 +-1.655180023490592456e+00,-2.622239271382690529e+00,-3.750602427130766081e+00,-1.738716375420507276e+00,-2.284581807216647942e+00,2.062685576388656017e+00,5.465498868731979876e+00,5.571345962541135677e+00,-5.342053777125773451e+00,5.617987145165654006e+00,4.189733685873055613e+00,3.577745219813466715e+00 +-2.004071539620203346e+00,-5.295128212567417059e-01,6.047322567267358062e-01,-1.965503770718391330e+00,-2.096982664784231787e+00,1.269103252111400681e-01,6.751060902271214914e+00,5.910331031458312623e+00,-6.200308696641878115e+00,5.715923284776542879e+00,4.030748268924964073e+00,4.600455274492318836e+00 +-2.074304412279668330e+00,1.360712017343177704e+00,9.251475424004964587e-01,-2.383440075185935259e-01,-1.083413596973536785e+00,-9.697599544848316544e-01,6.441411052097585355e+00,5.461601793406312133e+00,-5.208872431540392256e+00,3.472725521286179617e+00,4.326691175634730158e+00,4.200401906248015571e+00 +-2.612709753918561972e+00,-1.702468264429593536e-01,-3.373551225247855889e+00,7.280554488963435489e-01,2.319313567379489571e-01,8.094720158030519475e-01,6.446830655778663655e+00,5.538956232612101793e+00,-4.981796819407129817e+00,2.406619465325531948e+00,4.497009142654491143e+00,3.232925210389196558e+00 +-5.287188450741622248e-01,-6.095815948953712260e-01,-6.264637216247125551e+00,8.323919370189192257e-02,6.473154449270844824e-01,7.835103380678738461e-01,5.984142948224764780e+00,5.229714827305749658e+00,-5.223713406750631449e+00,1.843460253666439286e+00,3.559375867868571408e+00,5.720746949205340215e+00 +1.427558787308593757e+00,-1.557302632852491930e-01,-4.597806285564796092e+00,-1.317988961575996321e+00,-2.188784664657661416e+00,-1.067990096138581313e+00,4.565907732054268031e+00,3.579763228869906388e+00,-6.308078353552398099e+00,3.078447130025423473e+00,4.832425975578442667e+00,5.011868797950294052e+00 +2.764127317348216373e+00,-2.686501783861952930e+00,-8.781008760933330937e-01,-1.878669373366243622e+00,-1.627916373166509167e+00,-2.543525014225115344e-01,2.474722339252600101e+00,4.017719734625418759e+00,-5.754602740312238396e+00,5.835979325068624490e+00,6.232338477435537705e+00,3.576325938558922779e+00 +1.543226017616112777e+00,-2.610207787022556847e+00,6.607750716330882401e-01,-1.309906651928841814e+00,-1.785712370039657992e+00,1.285798377024816475e+00,2.558548751022986067e+00,5.707837790419183932e+00,-3.563140784313889142e+00,6.480571766391602040e+00,6.253921768985826191e+00,3.881109340114460515e+00 +1.816779137249918685e-01,3.486292015042397052e-01,-2.840740209899347946e+00,3.379650278242442574e-01,-8.198855256058732444e-01,-7.181831308890092025e-01,2.723290370302909214e+00,4.875980960146384824e+00,-2.913466572202566773e+00,4.859607613288064343e+00,5.097350440448430220e+00,3.619998990410613793e+00 +-4.815905563663037681e-01,1.928041997345812497e+00,-4.815165219484332404e+00,2.363014709460953711e+00,-2.363669136181059116e+00,-1.316525815903691443e+00,1.826417649917365882e+00,4.500876629176228327e+00,-5.308566677002851009e+00,2.653997718300394659e+00,3.362139387239098554e+00,3.670391412629564254e+00 +-7.891240805373729295e-01,3.029472701355132802e+00,-3.758047625023254845e+00,2.288737409872124040e+00,-1.964455413069789991e+00,1.455759453557631034e+00,1.522305917526569630e-01,6.006149330688311139e+00,-7.122756661281028912e+00,3.790575847005788646e+00,2.664256832658303153e+00,3.063278519312641279e+00 +-1.427442697307999442e+00,1.422722195605895079e+00,-3.664943911779382502e-01,6.045914555489941833e-01,-2.351577888029317887e+00,1.028308835477044436e+00,5.875058199155538396e-01,5.281385630745823789e+00,-4.937230596280533845e+00,5.133190913151953083e+00,5.076220016262959156e+00,5.934188040842376388e+00 +-2.056090676664585004e+00,5.489115262117170158e-01,-1.190441230292740515e+00,-8.992542381752988145e-01,-2.054960448025206610e+00,-6.049953351586672134e-01,2.227411624213786467e-01,3.636772975192758217e+00,-3.001759071036718574e+00,5.036880885972359501e+00,5.495733033675129775e+00,5.145021568904277309e+00 +-9.582695723029276413e-01,1.852360103617485931e+00,-3.063441926180963559e+00,-1.953418429471264206e+00,-2.071154166554376896e+00,-8.119869804624716414e-01,1.230599694952299483e+00,4.824080340429043545e+00,-2.341051401377775676e+00,5.870680100001074209e+00,4.469277296861590365e+00,1.075704134029249914e+00 +-1.582376910602060760e-01,2.189889734009316857e+00,-4.747345179362759460e+00,-3.151931765461429835e-01,-4.509538900066918377e-01,-2.835531601968044879e-01,3.784604545548090115e+00,5.318221682007409967e+00,-6.180781124865310616e+00,5.646261655890591591e+00,5.054598689700086744e+00,3.793705868482695642e+00 +6.959286950578849051e-01,6.932436058180180272e-01,-2.546648440975166849e+00,2.062745429629262883e+00,-2.740780178961054858e+00,-3.269385040430629052e-01,6.430060983904160032e+00,4.100766536154779374e+00,-6.582948750427798146e+00,4.814588188534153268e+00,6.198388469805136580e+00,6.932549558323367833e+00 +1.685347181800349592e+00,-1.541952554884603810e+00,-1.621865943421660017e+00,1.936196794573352475e+00,-3.265755400220438531e+00,-9.629537655635460602e-01,8.370956373988427401e+00,3.038401085353682696e+00,-5.588498992214349315e+00,4.263243556096690590e+00,5.805831702509976822e+00,6.569832060772085036e+00 +5.619516977521017420e-01,-2.315973686782937246e-01,-3.281274591059599288e+00,-2.220697764081182579e-01,-4.628198926143993752e-01,2.151012543333026272e-01,7.745727657241503472e+00,2.685129616860215673e+00,-2.731165510437814525e+00,2.595087672753301433e+00,5.201334641044449647e+00,3.219474986801178940e+00 +-1.349268180125596794e+00,1.655809891178515958e+00,-5.231539015833455153e+00,-1.165785651985337124e+00,1.252610657179511477e+00,-4.897586746070302643e-01,8.129168315619942575e+00,2.922562657270405762e+00,-4.085018491545849173e+00,2.790472003681623292e+00,5.383394530934806355e+00,3.586778506060198879e+00 +-2.100389066768324486e-01,-1.494682972458925896e+00,-3.584572825600751411e+00,-1.401587609857073202e+00,2.251384033992794853e-01,-5.934183954548903905e-01,7.441139800707047947e+00,3.377305662599260572e+00,-5.913173941404689771e+00,4.668216539632784823e+00,6.737978412044867582e+00,6.493094468850287626e+00 +5.485587735747301519e-01,-2.068089318784515740e+00,-2.243471552217256360e+00,4.381068794323735860e-01,-5.229656391900302514e-01,-1.652041200608006299e+00,7.053254100833267870e+00,4.537533579414166240e+00,-8.793919469542744949e+00,5.559195251967260276e+00,5.876154813035684654e+00,5.726585109741426649e+00 +1.627196506847609303e+00,-5.942359193839545917e-01,-2.204020140251610194e+00,9.430541241391486862e-01,4.904723649761351667e-01,-2.143035632598147555e-01,5.841940752562459593e+00,5.217452086683557866e+00,-7.019671504862639466e+00,4.844290408304894768e+00,4.823209524717708696e+00,5.144027609039376614e+00 +1.046652319512691109e+00,-1.417153156446207207e+00,-3.026556964533268612e+00,5.928952139307762659e-01,1.397674651075489383e+00,1.968044498640865614e+00,5.644068693543877302e+00,4.831472166896566556e+00,-3.728254800048016904e+00,2.836757308576917325e+00,6.056575880500338904e+00,2.951545081531402381e+00 +8.954242013556753532e-01,-6.795137874097305630e-01,-4.097073586783594124e+00,2.247506211259183928e+00,5.553576947692639987e-01,1.975155891931058783e+00,7.154470288911317866e+00,5.087541508707205118e+00,-1.767290320286429406e+00,4.937862198091091948e+00,4.949358407465503262e+00,2.594159642289888712e+00 +2.024594371026763318e-01,-7.194769430688547907e-01,-3.691388889817488916e+00,1.247845108867251085e+00,-5.504762302810077834e-01,2.528715780911335309e-01,7.945662466242399802e+00,4.113873776637209545e+00,-5.456182505782537717e+00,5.985536488560954993e+00,4.227285404794214330e+00,3.250246637205136402e+00 +-1.218874410964381649e+00,-1.758523559724021856e+00,-1.962711156225795950e+00,-6.279759711458277049e-01,-7.583446693541391337e-01,-1.969618325843885298e+00,6.209907318174950674e+00,5.171693078300720003e+00,-8.264793271933069008e+00,6.769228940532217464e+00,4.723855349476290932e+00,4.573308323698332956e+00 +-2.148197705717832307e+00,-4.649936575244809633e-01,-1.035598528720012679e+00,-1.263971379281882079e+00,-1.440673375841695913e-01,-7.451968988208304001e-01,5.160471704650104741e+00,8.829560451716705671e+00,-8.539634940588666012e+00,6.936680962381640114e+00,3.235429173871033015e+00,4.781272951395972193e+00 +-4.544314759852930763e+00,-8.545989354614920153e-01,-2.071564460370118876e+00,-1.859713842565478226e+00,-4.399036977135762916e-01,2.182765786583092726e+00,4.372573258042296906e+00,6.440370574082606048e+00,-4.042071270042837838e+00,4.212542412812976700e+00,2.781187122013275559e+00,4.479168097457306708e+00 +-4.486765194885098396e+00,-2.890474908541991184e-01,-3.304044548606963172e+00,-3.223399180927805752e+00,-1.384748085255008476e+00,-1.868236729530169393e-01,2.959165170569567849e+00,4.369281965863372363e+00,-1.220165504047932892e+00,1.617402290075530047e+00,5.815718881738204615e+00,4.828299432327773921e+00 +-4.170539930389231209e+00,-7.684023046047836480e-01,-3.367635804336707395e+00,-1.180843434519597057e+00,-8.993294612879940697e-01,-7.435772416320318712e-02,1.629105066454298978e+00,4.767559151104483917e+00,-2.219961471007064091e+00,4.903561968792375936e-01,5.598205773850448708e+00,4.913656571866479084e+00 +-3.523686550790576799e+00,-3.056594155900486331e+00,-2.051846010921451136e+00,4.101145198083537835e-01,-3.884020341704730317e-01,1.523945307494584789e+00,3.781118856231072911e+00,5.366156690733308920e+00,-5.953217837094241460e+00,5.092017483868774619e+00,4.999319843892386039e+00,6.942958589801051517e+00 +-1.231878446629818269e+00,-8.628479855229758133e-01,-1.852650007446912106e-01,4.164919293050346472e-01,-1.818600026041566453e+00,-6.325278618971902356e-01,5.727470622257770927e+00,6.606226639230827757e+00,-5.685092000716643668e+00,8.653686802421905355e+00,5.247871113133442122e+00,4.355589457239776863e+00 +1.956579062862333629e-01,-1.001402484624956735e+00,-1.648018653455826765e+00,2.434358954106604633e-01,-2.561738949798213039e+00,-6.890056798907446822e-01,4.056488502898882409e+00,6.690025192103395746e+00,-2.331567658168778756e+00,5.552714407733484236e+00,6.007846107145587311e+00,2.146593937367936356e+00 +-1.337066816391991875e-01,-2.047520375519126468e+00,-3.749752336434909239e+00,-3.931332829248479488e-01,-1.077515842127684920e+00,1.542742312933534254e+00,2.580269691490353345e+00,5.901132988743353458e+00,-7.691250593657414925e-01,2.210681287616310886e+00,6.434215027836306611e+00,4.875300410899473746e+00 +9.668771311119851442e-01,-6.273495735455852929e-01,-3.464873707554443349e+00,3.764108608449281967e-01,-9.895920052136638612e-01,1.161514522980211739e+00,3.628069278143565946e+00,6.131490020509800409e+00,-2.807926682618690606e+00,3.781176319494426785e+00,5.644086292870081678e+00,6.295275496957128958e+00 +1.023428666895920713e+00,-1.490947232034514069e+00,-1.063370549377949059e+00,2.724388074533869997e-01,-4.805155746626946778e-01,-1.755875309538191154e+00,3.654881850994777803e+00,4.689417980765189675e+00,-5.528393825976275266e+00,4.667400875369982494e+00,5.661798326079645172e+00,3.049022038497731568e+00 +2.150110557047250737e+00,-1.621289848912258469e+00,-2.964810620807755148e-01,-1.087686635188899409e+00,-9.241544841718276615e-01,6.180224836607822736e-01,2.664532191692702057e+00,4.131871114110042598e+00,-5.334562974188926887e+00,4.024744383922982394e+00,6.436296956384975232e+00,3.522493084638647964e+00 +1.266245098542744696e+00,-8.409693056241445142e-01,-4.467070844934712959e-01,-9.450716491339775649e-01,-2.703589839154055818e-01,-1.247291591611538131e+00,2.352935829618759911e+00,5.294486498515911244e+00,-2.184654645284028973e+00,4.832681676656637393e+00,6.616047156565080023e+00,5.649768473177916306e+00 +1.256567595988527186e+00,-5.209123436247662386e-01,-3.554136627479215882e+00,9.851981865032902741e-01,6.066463566938561369e-01,-2.551671700953049182e+00,1.672367682222062335e+00,2.991517995066215185e+00,-1.891614166973339728e+00,5.547414844407583701e+00,7.085151694555714030e+00,4.583695315487106292e+00 +2.417146698983693831e+00,3.423420420221744420e-01,-5.468012133391138896e+00,1.912905303796538226e+00,6.560968323400628854e-01,1.772509328255130079e+00,1.402301657971260163e+00,3.194428186749342480e+00,-4.548483482978877390e+00,5.542356401725575310e+00,6.663883921111593445e+00,4.853820641199992458e+00 +1.999619757842334700e+00,7.041442580822797614e-01,-2.990899524647014918e+00,-1.416389906301699919e-01,1.065260057237635394e+00,2.783868292014194612e+00,2.188410837817223786e+00,5.161519878274964057e+00,-7.214884734592693860e+00,3.448410263284237054e+00,6.816941834764617347e+00,6.767420930176283989e+00 +9.646047438525601203e-01,3.112914907040450485e-01,-7.596712250334166638e-01,-1.123555366811338718e+00,-1.525906179172539012e+00,-4.163455596841435513e-01,3.793433139321964020e+00,5.691750360447885626e+00,-5.329084179349628414e+00,2.839667799187655994e+00,6.447140902238344573e+00,5.071253234787926445e+00 +1.035829306169633535e+00,-2.566617040964844776e-01,6.788594751020946561e-01,-1.970825217969614851e+00,-7.148301052070493711e-01,-2.998344115800775533e+00,5.006537963053346196e+00,6.376420985584982049e+00,-2.529233866513506790e+00,1.454425914995181479e+00,7.646398408348217046e+00,3.384971377637188361e+00 +-2.080360628734734263e-02,-8.295629174762977343e-01,-2.782322861236620426e+00,-1.588768468010897106e+00,3.621706258074112172e-01,-9.711881462604883275e-01,3.767405040453775111e+00,4.703163164051236578e+00,-1.541082078909195019e-01,3.066442966190603858e+00,7.223949483958030271e+00,5.153175615421303313e+00 +-2.176668615489226077e+00,-2.628618509971152317e-01,-4.108035577763894608e+00,1.697196899449041174e+00,-3.187822838173301143e+00,-2.520907834412116078e-01,4.623391059460301378e+00,4.388386902732331230e+00,-2.616420880557068784e+00,1.018395404878577715e+01,5.566905158542308385e+00,5.490643348955582148e+00 +-1.645649893157671961e+00,-1.107320912818145486e-01,-3.029372871602020290e+00,2.739496055782805417e+00,-4.118440239559833849e+00,1.035907301016749438e+00,4.832636701292732262e+00,3.721206062337678144e+00,-4.841557479246949569e+00,9.145626172885091165e+00,5.354959420757586130e+00,4.607999112388111662e+00 +7.534819207450915712e-03,-1.807902225159827014e-01,-1.471331302585488165e+00,-2.877547850274730923e-01,-2.540128763284053015e+00,1.359912408171636944e+00,4.065396168114132180e+00,3.073067398277013140e+00,-5.552206172695045794e+00,5.626049868871110249e-01,8.077022293538270503e+00,2.753384930472553282e+00 +1.471081049679962449e+00,-7.594261866225597846e-01,-3.180930202323744016e-01,-4.211102352125222659e+00,-1.921930323566371390e+00,-4.543019441167683858e-01,4.572059863224049003e+00,6.011934241154983205e+00,-1.318420469346104795e+00,-6.846078514769136092e-01,6.252954475747578122e+00,6.060362421801588795e+00 +1.581846486994021195e+00,-1.260619695530512008e+00,-1.641419606323505143e+00,-3.646624699638710609e+00,-2.492475649143024885e+00,-7.179682574043153576e-01,3.321180551913100132e+00,6.104450065015529781e+00,3.719103162558639042e-01,4.445272293410903686e+00,4.173886015269443917e+00,6.095660541184315662e+00 +8.681041898081029995e-01,-2.368645667974292213e+00,-2.154724203230645063e+00,6.095112830632625212e-01,-3.475142993412908332e+00,-1.507253315314915909e-01,4.119815713223559328e+00,3.784732117363433179e+00,-1.764107174036215753e-01,4.822307205518326256e+00,5.689716050834727312e+00,2.054433501081257329e+00 +7.464971289730815140e-01,-9.377553478592648428e-01,-2.369222972776465763e+00,3.080844885536041744e+00,-2.529406287482803162e+00,1.845371391610271861e+00,3.968941913572073155e+00,2.010025383505255725e+00,-2.710883466293171118e+00,5.545202534322686283e+00,6.088343999382616722e+00,4.926708257184033712e+00 +-2.586553280014266543e-01,2.427463824807717163e+00,-2.090201914853412557e+00,2.880203708208450841e+00,-1.997387761319864730e+00,-1.450964694687729151e-01,4.754551282526016109e+00,8.089492130796367420e-01,-1.601383943903980978e+00,5.737130497143407837e+00,4.782675577584496018e+00,3.677885129263262609e+00 +-2.248670046397965194e+00,1.597540861553059521e+00,-8.412007692607432752e-01,-6.086934482895658416e-01,-7.480078423641318697e-01,1.489591720044582956e+00,6.654717642939098177e+00,3.186448218260451437e+00,4.658021322860088631e-01,4.823697145528843322e+00,3.414984659017686663e+00,5.487437335735822153e+00 +-3.348281158520842737e+00,-5.568998104568737562e-01,-6.790211283644319584e-01,-2.212927024942085374e+00,-1.704558916373672073e+00,2.041808125015635689e+00,5.846991335580540294e+00,3.337831596232551767e+00,2.098744541113711559e+00,3.277236079611692610e+00,3.458622460117518838e+00,7.928515531651342485e+00 +-1.442897591944459768e+00,6.003522344310079362e-01,-1.966815026637589447e+00,1.775244020653421240e+00,-2.148144986929362954e+00,-2.434428890479605201e+00,5.420332938498821918e+00,3.619542836945243813e+00,-2.954857026603994186e-01,-8.673261466362269800e-03,4.306900508165536046e+00,4.791877210409132282e+00 +-1.155569605286546508e+00,1.618056367957397379e+00,-2.721818127545465149e+00,2.202103774385237411e+00,-1.438884608281588706e+00,-2.209300241018751887e+00,5.135802701613227939e+00,5.306944258591969721e+00,-3.018768166747916482e+00,2.699741853299243655e+00,4.617001162087944088e+00,2.222352491173781530e+00 +-3.488644218277279663e+00,-1.118599074445602914e+00,-3.376181105811175254e+00,9.934883595704468995e-02,-8.931507530256683758e-01,8.389966878750507728e-01,5.211812976787111751e+00,6.012687555812719964e+00,-1.814331686260396204e+00,5.796907755573260879e+00,5.797227449713707514e+00,3.538194632175998056e+00 +-4.525915842193184879e+00,-2.527108622493257961e+00,-9.006577877899080153e-01,-8.372490761748259125e-01,-6.829973961814596040e-01,-6.776843756425867671e-01,5.850405858604291964e+00,5.002963190238576274e+00,2.325373448708869972e+00,7.853608908550089751e+00,5.246662491251034233e+00,4.548401650003722096e+00 +-3.528879989993250366e+00,-4.378075977148361830e-01,-2.926237906261348609e-01,-1.590005961376358634e+00,-1.022521221361091692e+00,8.323101314925480665e-01,5.232798442089570123e+00,4.633711673012578913e+00,4.109426929386743588e+00,8.901357845062772611e+00,5.209590230851312675e+00,4.065213765574621441e+00 +-2.562622331885585858e+00,3.925845799236387101e-01,-1.507726935910974619e+00,-8.850671985609452896e-01,-1.397999139484211950e+00,-6.484968177871324180e-01,3.983304983396819043e+00,4.828507420812822915e+00,5.769515094244930253e-01,7.067279836372568624e+00,6.981173134628340549e+00,4.550353080264919470e+00 +-1.856378488901909929e+00,-9.512754879744240721e-01,-4.717032237780617088e+00,-9.504417158092401952e-01,-6.267080868992039866e-01,-1.558303820395119388e+00,3.427519950071115318e+00,5.866323724575988052e+00,-3.580441950275538687e+00,4.626256440073035492e+00,4.503333861719587716e+00,4.957952609674167732e+00 +-2.736969358397962626e+00,-1.946944243544922237e+00,-3.753120219952545078e+00,-6.556130942003135509e-03,-1.224376561236242056e+00,1.725091624855116246e-01,2.406053051552568434e+00,4.804445006333999402e+00,-2.561227109038436645e+00,3.115903428004852316e+00,3.301671559239126807e+00,5.966307568101433034e+00 +-2.561640507428150748e+00,-5.380962687630519437e-01,-2.159943664332669488e+00,1.762954755872925938e+00,-1.427884855214213600e+00,-1.638143791690184425e+00,2.398718774257984521e+00,2.981422967539768543e+00,3.296672324359814610e+00,3.678250983605063418e+00,3.692330793902033115e+00,3.753516855710442357e+00 +-9.913390773313958126e-01,-2.876758355812701340e-01,-1.429933999842839754e+00,1.642212480845887779e+00,-3.644403502179132115e-01,1.377236017855435035e+00,1.477832309500654695e+00,4.353594444037942601e+00,5.389545340331116208e+00,4.054115218922375696e+00,6.148688400590705427e+00,3.721102504340284334e+00 +-1.056769796014828788e+00,-2.885595533548593883e-01,-2.794503445044823398e+00,1.083090011598699220e+00,-1.380432962374760208e+00,2.497806290360156112e+00,4.167258891973620649e+00,5.486485952944832434e+00,2.519490343192760662e-01,3.409630610888273239e+00,6.497457287133940440e+00,4.337604040259845029e+00 +2.274903620720447606e-02,1.178709472965589811e+00,-2.191907922540886844e+00,1.147040859111712274e+00,-1.401092978881083306e+00,-3.073230208175671940e+00,3.143035241306364913e+00,6.164143814132094334e+00,-4.478989164556971048e+00,3.865238097566201070e+00,4.555747830634098605e+00,2.919483985102220736e+00 +-7.017977424499139971e-01,5.864426458347609117e-01,-1.052410741057273169e+00,-1.888349389452816274e+00,2.640406417979324072e-02,-1.251767083818635218e+00,1.900322526990273708e+00,4.288786027707171655e+00,-3.078458539960412743e+00,4.917959417157974578e+00,4.466967039398555883e+00,5.277507025041583866e+00 +-4.761575079868316518e-01,2.033879914173334136e+00,-2.119219470474186462e+00,-1.503623604112065859e+00,1.245419952932540264e+00,8.331834933385302566e-01,3.225788328670577521e+00,2.650018181237939974e+00,2.432707009371110729e+00,3.829198120567822716e+00,6.021729223149659305e+00,6.293117544191258794e+00 +-4.431170435912721306e-01,3.345382851260067625e+00,-3.650137045873923736e+00,-1.583532031681139873e+00,-1.326217744881488247e-01,9.462570124815141703e-01,4.987162622205646656e+00,4.128336989800555301e+00,4.831569541643758292e+00,3.211246100750840160e+00,5.343902502998335358e+00,4.456169118280133290e+00 +2.268017495856458066e-01,2.729099977591017634e+00,-4.479510528684834902e+00,-1.726598591179099307e-01,8.178885935778972271e-01,1.721393428966342398e+00,5.703450235584239358e+00,1.609590439570473652e+00,8.657061566026498234e-01,5.832052241539065207e+00,3.275055400053695998e+00,5.038320002771330408e+00 +6.307699118156784301e-02,3.615462745775235298e+00,-1.710251122774081978e+00,3.217555815846976586e+00,1.736861623118536535e+00,4.848628069717411115e-01,4.543319198418916294e+00,2.863637671601732659e+00,-2.504718404866137504e+00,8.080870330493329590e+00,3.499845759335292961e+00,6.471067310492218283e+00 diff --git a/statsmodels/tsa/tests/results/yhat_css_c.csv b/statsmodels/tsa/tests/results/yhat_css_c.csv new file mode 100644 index 0000000..1ca0ce3 --- /dev/null +++ b/statsmodels/tsa/tests/results/yhat_css_c.csv @@ -0,0 +1,251 @@ +yhat1,yhat2,yhat3,yhat4,yhat5,yhat6 +NA,NA,NA,NA,NA,4.5198698709 +4.4638884169,6.1052290397,NA,NA,NA,4.6211568997 +4.5297061513,6.7852606117,NA,4.4265316823,NA,4.1251871909 +3.9602765237,4.8426663308,NA,4.3775467632,NA,4.6638495898 +4.5815687774,6.9711679964,3.9046740346,4.8834587090,NA,5.0124149912 +5.0087926543,2.5291015649,5.3456489214,4.2063953585,4.1444537981,3.8226462578 +6.1517552599,5.2296816616,7.5333795817,4.1516376855,5.1136867553,4.7234933012 +5.3130070303,5.7254314486,5.3167426361,3.8287269439,3.5135389778,3.6902876549 +6.7477832649,4.9924192296,3.9257134968,3.0179435611,3.8668566817,4.0913856295 +8.2922458342,2.5999572555,5.8473000820,6.8388231003,4.7804624056,3.8892081590 +5.3999966722,4.3891708623,8.0042422563,7.4647048367,6.0944537362,3.8011029986 +4.9268631863,5.1791461674,5.5593070276,4.4393936180,5.0707636579,5.0474233636 +4.5831258557,3.5554969611,3.9421793689,2.8123626975,4.0280476624,5.1265942735 +3.2974027806,3.8514583889,6.9117810486,2.8096822522,6.9558225063,5.3075943095 +3.6143859021,4.7636977351,7.1271538099,5.0131347637,6.5329706146,4.0927625914 +4.0811339123,5.7051578160,6.2634871532,4.6028275842,4.1489548157,5.4638696555 +3.5826948796,2.8155110640,3.7818169919,7.6988875378,4.6551991126,4.4544693811 +4.7519777500,4.0443288475,4.0557183372,1.9904507513,5.3909621140,4.6969314369 +3.8119226985,6.7892964937,6.2430866800,2.8186465122,4.1748386605,2.9013951798 +2.6485867993,4.0992356258,4.1948686798,3.3126974622,4.9763243887,4.9615908568 +2.8545761967,4.0701375342,3.5589623438,5.0709658525,4.0583583931,5.3007621781 +3.3164932439,5.3681389095,5.5775949891,5.3430809377,5.4945447666,4.7940105785 +4.8488082527,5.5315894882,6.3125616525,8.3333107799,5.0250304075,4.7731983448 +4.3091158506,4.4440913423,3.7146343806,3.8829231475,6.0292240890,4.6581351742 +4.4200202139,4.3730100072,4.3955931234,3.2923427245,4.8217372570,3.8809506614 +4.7345360789,5.2713470756,7.0079625475,4.8821634754,4.2210828280,4.0880291115 +4.0419148539,4.9744459007,6.1241948444,2.2006538002,5.3875145198,5.7264115664 +4.8384415774,3.5984652697,5.8149822581,4.5375867916,3.7860419156,3.7335864769 +4.5129904599,4.9882252271,5.3755538528,7.8777837033,3.3803801788,4.2256312404 +4.7838959538,4.9003150961,4.9989915022,2.4072556732,2.8664933593,5.0096231246 +4.1643911367,3.0255687405,6.5776441045,1.7489561300,4.8926298803,4.0165061687 +7.4924378089,5.4214192593,6.2790219486,4.5955144385,4.1458239067,3.7428759516 +3.7295197453,3.4640190275,6.2192978255,6.8093249192,3.5592524003,4.3497278608 +3.8181297573,1.4159053086,3.7723531357,4.3783584993,4.2009138250,4.6808925884 +3.4154467063,5.0984168421,3.9899186601,5.3115286162,5.0126588188,5.0250858899 +3.9462808187,5.0456900794,5.5941714349,3.9630406522,3.7413790714,4.7498749254 +5.8851230181,3.3809600571,4.4765611391,4.5548423110,5.1610276497,4.1413705286 +6.3521527847,3.3662029598,3.7592101868,5.3989171739,4.3641463290,4.3224903938 +5.1785657669,6.2509846494,3.4857108712,5.4454916696,3.7640425647,5.4391841855 +5.5836779952,2.8961246530,1.8447033566,4.2683544362,3.7087935659,3.7572713237 +6.3245422595,3.8962117268,1.6017833114,4.8790813722,4.5128795972,4.7036273666 +6.4089523567,4.7347946571,4.0948276115,3.5244540223,3.5250952694,2.3397637683 +5.8094546575,4.0753399655,5.2303496492,4.6219786287,3.7529698203,5.7218102567 +5.5544730560,3.6158399596,1.7738594178,3.7524958958,4.0147377845,6.0583143881 +5.0621714358,4.0380565651,-0.3309091132,2.3867566591,5.1894733406,4.8298303241 +5.0751426479,3.2785899719,2.4787297640,5.8212963342,3.8714567839,4.8726493248 +5.2656142924,4.8364457905,5.3496653262,5.9280810035,3.9809821770,5.2369398137 +4.8720291624,5.3507432399,4.0178119686,4.8600780785,4.6198829687,4.4690401548 +5.6421725096,3.8333221355,0.7001785130,4.3552485251,5.1755645482,5.1525751771 +4.8382764584,5.0790928546,0.7208470043,4.6277318103,4.4160767110,4.1213137144 +5.9445523723,4.6147273969,0.8570459633,4.5958633347,5.1597166801,4.7339244637 +7.2103037091,6.3778078385,2.7639919768,6.3396244403,4.4422622251,4.3242121892 +7.8702121119,6.7886553362,4.1263234991,5.5245732507,3.2405500752,4.4965352046 +7.2963798640,4.1763973546,-0.1600861333,4.0890517375,4.5696055109,5.5517151492 +5.6643537150,4.9947050692,-1.5636886008,3.3106643806,3.3086322266,4.4073316087 +6.0072995689,6.2697736177,2.0691562566,3.1343476764,3.3633478655,4.6013838031 +5.5883279888,6.2411856337,4.5057673908,4.7705277987,3.7994372166,5.3165146638 +3.5984097923,5.8089012720,2.6109154113,5.7185371092,3.0690793464,4.4637305813 +5.4487936598,4.5961869311,0.0064327638,4.1807414812,2.8500525448,3.9787323732 +6.9968546928,6.5252777865,-0.4764222179,3.6677213161,2.1852316241,4.2547421291 +7.0114754628,5.7094612450,1.7845275654,2.5034188732,1.3121415371,5.6328822884 +5.9339392306,3.2836794624,4.1247128083,3.7123145926,2.5537901672,4.3513767142 +6.4807493706,5.6558518279,3.2342286446,4.8383462516,2.5360917059,4.1227980926 +6.9519977802,5.3898912721,-2.3024721229,5.6595841763,1.2579562279,4.0486837970 +3.9030199906,4.9570071818,-2.4650094984,4.2619763539,1.8050783736,4.2342017377 +2.3248874185,4.9400224574,2.1495148392,5.8085252355,2.4655119853,4.6540547509 +1.9750115146,3.0841037973,4.2385286818,5.8588795773,3.0148243602,5.4813495494 +3.3943728839,6.7016683181,2.0816194017,4.6269377888,2.8074476747,4.8566055432 +3.6733940551,4.3479350326,-1.3101308002,3.8162616311,3.4961066710,4.1282569870 +4.0174831959,5.1407434243,-2.8479055137,2.9947532051,4.7379516330,4.4547545954 +4.0954754862,6.3427448724,3.0142529383,3.0381759596,4.2548051396,4.2570106365 +5.2251587382,4.9044466182,6.4930344488,6.7809907161,3.9179629668,3.7780146236 +5.5217677687,4.7586507729,2.5035570248,4.1538156632,4.5792511266,5.0111626200 +4.3503372187,6.5952641790,-2.4684776635,3.3687949253,3.7521170007,4.4560080145 +4.9987038746,5.1939214668,-3.0518680185,4.4374920121,2.9309385860,4.4924402772 +4.6736175269,5.9933181904,4.0452921481,4.3424623272,3.2074282680,5.1890942062 +6.1881400549,5.2453461141,5.6750143227,5.2343371038,3.2386325515,4.3534665763 +7.3067702328,3.8667857735,-0.3460302991,4.2493486000,3.4864389949,3.5833518708 +5.3037492146,5.4171061595,-3.5553425834,4.1235266336,4.0517537979,4.6839393287 +5.6994429328,4.5882530917,-1.6846722588,5.1663537388,2.8899327352,5.6058611557 +6.8547919668,3.9859339968,2.8231063267,5.1137828918,4.7638057305,4.2837268432 +5.6569207352,2.7358914572,3.3707207994,4.4173417738,3.3064925980,3.2215657645 +6.2958708598,5.6176912651,0.4629220313,5.9322680266,3.9879829676,4.7626663864 +6.0620743546,2.4452770194,-4.7043791637,3.1676141331,3.6032370375,4.1495746353 +6.5078461348,3.4834942777,-2.6446892777,3.1159814926,4.3332082542,4.7243819775 +7.3383068539,3.6723374200,3.2925974796,5.5489759841,3.7407669274,4.7336361884 +7.9927699015,4.2522575144,2.3256693362,2.5933305753,4.4734232274,5.1525533549 +6.7896622405,4.3052292920,-2.0511251729,3.9215920985,3.4225207354,4.0436040705 +6.2254744061,3.8792920460,-3.9651657804,4.3678594915,2.7705395432,4.9189881378 +5.2991402023,4.1373324835,-0.2809433160,5.0590322180,4.0729227673,3.1068188589 +4.0371526789,3.3087267431,3.3029965780,4.5882258663,3.6303529472,5.7101232618 +4.6857479661,5.1277636884,2.2170528046,5.3574940179,3.1143515272,4.2943312443 +4.9494097867,4.3261189528,-1.1518836526,5.2898759980,4.2018390192,4.4557935574 +3.6585942128,4.8635308638,-5.4280439441,5.3719291031,3.4421694623,3.4460924702 +5.2904395308,4.6489911648,-1.5073158276,5.8516581743,3.7574631749,4.3441253084 +2.9697758269,4.0292590024,3.3069617074,5.6522700842,3.8871624665,3.5594829778 +1.7522080194,5.6072127302,0.1757622613,5.4779015510,3.0111699715,5.3282826755 +2.4938822613,4.5640435871,-4.7751293822,1.1291066168,3.4009160161,4.0145041518 +4.1878497046,4.5429621528,-4.5347999590,4.7148616687,3.1039162563,5.0078559221 +5.3140893399,5.6251086656,-1.8317503887,6.2908115240,2.4131177372,3.2318799498 +7.5350087462,5.2015143159,0.9372826650,4.1568960128,3.1854889066,5.3716021119 +6.8262483154,5.6689126374,0.0146211331,4.6963606142,3.5001433245,3.7303193449 +6.8573416055,4.8671763720,-3.4111463497,3.9011029601,3.4300094727,4.9693083958 +6.0279652120,6.2777169279,-3.8003081984,7.4182878407,2.2243651473,3.5903545346 +1.6716265466,5.1000784402,-0.6927696998,3.2231669946,2.1983432384,5.8189271424 +0.9914587848,5.0351168505,0.6855098694,4.6875513810,3.4251257270,3.6519725959 +1.5221600278,5.1746494896,-1.9229072754,4.2917136471,1.9194385813,3.3653662051 +1.5591184418,4.4249205449,-1.6633146701,5.2171304811,0.8728013403,5.7342486385 +3.7592394981,4.9643119249,-3.3300485422,4.6908942025,2.3610467000,4.8212616672 +3.1323509761,4.4988392307,-3.7141359818,5.0657567877,3.5570215392,4.7018365468 +4.7617577308,3.9297503324,-2.6594865018,4.2778420992,2.9969991039,4.1462208565 +4.2084452695,3.1590718591,-1.2362535341,5.4632264009,2.8331799936,6.0049940707 +5.6486889301,4.0241616798,-1.8167711434,4.5672170597,4.9604478849,2.6239211785 +7.2095713578,4.3783491649,-4.5598306554,4.3662570951,5.3153254374,4.9331155056 +7.8781761249,5.1209739656,-4.6645970271,6.4912879388,5.6894155162,4.5121124658 +7.8820133743,3.6356021982,-3.9021496936,4.5939571309,4.6735707286,4.5294319191 +6.6683956961,2.9607675564,-1.2896297622,3.0084654659,6.8249987512,5.4073093021 +4.4983464234,5.1583332802,-3.4796258634,5.3459830559,7.2172058731,4.1593954194 +6.1382894365,6.4809233804,-4.6144189302,4.9404297054,6.6740514457,3.9389181123 +6.5288656135,4.2992227761,-5.0732570322,4.9436950977,6.3839564942,5.3580532430 +4.4513022567,4.2418199226,-3.5669920872,3.0150079174,5.8337849644,2.8818596610 +5.4885087462,6.0173651580,-1.9820119371,1.8650219395,6.6802071130,5.2356499834 +4.8059523093,5.5376830183,-2.6720766692,4.2509465653,7.0503104534,3.9190462329 +5.7781000088,4.8737957060,-5.1825143205,4.7210633777,5.4603243157,3.7325620990 +5.7221531085,5.4583204388,-5.1675813836,4.4302128408,6.1801871032,5.4770822070 +3.8919108920,5.1202684339,-2.3251155105,4.2459149813,7.6624333629,3.5643473220 +4.6776538878,4.6244585137,-3.7917497279,3.5947416904,6.3502214048,4.8870480155 +5.1831982091,5.3664613288,-3.3444600958,5.8032711021,4.5173404092,5.4004798139 +5.7278600439,6.6208023990,-4.0986848745,7.5704327440,5.8870655719,4.0600557532 +3.5253727130,4.0346348995,-5.0234140643,2.1670884031,4.7023144410,4.5340477982 +4.8180851356,3.5589645750,-3.6347588898,5.3538293229,5.1338742490,4.9360809860 +4.1043005150,5.9129950226,-2.6345075769,2.5318390662,4.9813101302,4.5461376088 +4.1268400811,6.7705453658,-4.3303882392,3.0322000473,5.3912248579,5.0632558666 +5.4737929611,5.3185156766,-4.6324485253,5.1735487417,4.8403451305,6.1070450990 +4.4621316700,5.9234664501,-4.1539676798,7.8078646380,4.4247155415,3.7916699721 +6.1337619431,4.4160090659,-4.0399352271,5.2801445768,5.4956815251,5.6202192820 +8.1826256935,6.9888528260,-4.1590695271,7.0067535895,5.9267554499,5.0903084987 +6.1586365894,4.2039810824,-3.8423847301,4.0392736604,5.7813576514,5.6114408927 +5.5823155836,5.4040340282,-1.4096184055,2.3563694763,5.7614110098,5.0299535962 +4.6528118788,4.5668239341,-4.0615490484,4.3462819021,7.0463654044,2.7776453527 +4.3966807447,4.2438759430,-5.8134791298,3.3672052579,7.3518207998,5.0329259510 +4.6520074631,5.7835474703,-3.7217235877,6.1903149944,4.8598823358,4.3257190445 +5.5497730718,5.3505822780,-1.4858526455,5.9587839524,6.2194084275,4.1180792747 +4.9757543957,3.9376386374,-1.1832255645,3.3224267009,5.5069060639,5.3862964375 +6.1443223807,5.1874464038,-5.5213285493,2.2818808748,4.8693238464,3.0851950877 +5.5571602387,5.5188365428,-6.1219397092,4.7729003917,5.4280432021,4.8722541775 +5.2751633388,4.8569112336,-2.3694537752,3.4162983553,4.4186571596,5.6245126340 +5.2208144891,4.4744038589,-1.5306320121,3.5698742275,4.5863266700,3.5456765263 +6.2183796904,6.4149949432,-1.9224599106,3.8747177476,5.6739357835,5.3537170378 +6.2100907194,4.7109949979,-5.3529424286,6.6973944444,3.7938140621,3.6406172841 +5.8653074433,5.3958413317,-5.1516520010,5.6621955256,3.5442246579,5.4976113805 +5.1347509795,4.3577590422,-1.8710110652,2.9452665645,4.3800338167,5.1322600846 +5.0752917232,4.7757921220,-1.8970893204,4.1987109363,5.4463713313,3.2181939515 +5.3074493822,6.0104737801,-3.1954011697,3.1542540281,4.7857835811,5.3335238545 +6.7982344383,3.6167996115,-6.2351132988,4.1532736192,3.4493159409,5.0979655936 +6.1007547525,5.5684885266,-4.0308711123,3.1105482920,5.9975371173,3.2308639971 +4.8798218511,5.5518380365,-2.2523895735,4.2356495254,5.3309199498,4.5570504515 +4.6496104914,3.7350710567,-2.7022507870,3.5019338461,3.9507391318,3.4599553847 +4.4517917468,5.3056306470,-4.3255252110,4.4650720513,5.3372064805,4.4822156945 +4.8563320846,3.9262668124,-5.7766685392,4.7583898219,4.7417721381,4.2570802523 +4.1770983444,5.1832166696,-4.5832741721,5.4096971623,4.7266506802,3.1789831189 +3.6222203453,4.6036676841,-2.4337467185,7.3140851132,4.1693131591,4.6293282967 +1.4004380114,4.5009664530,-2.4046223847,4.8961999537,4.9468523622,5.3990529799 +4.0704794029,5.5144219975,-5.0794149347,2.5858845728,5.8594373165,4.0824320541 +3.1721102090,4.8592996019,-5.6178215720,2.0680321905,4.8966120608,4.1358520897 +4.2434835995,4.0183344192,-5.3268538820,5.3519107253,5.0347492203,4.3641697381 +4.8701853895,4.3761634667,-2.7137159545,5.3774523904,6.3113146507,5.8071965867 +3.4994554045,5.0228750450,-2.4808114972,6.1396703466,6.0840152969,4.7710346498 +3.8786053236,4.7883288667,-3.6016892996,2.3928157505,4.0201077952,3.9898570548 +4.5630530010,5.6672689474,-5.0011218537,5.4236986268,5.0130087377,4.1060744507 +6.2113225757,4.6748752767,-3.8640706550,6.1431451428,5.1743270686,5.1778216914 +6.6692118943,4.4311680667,-2.7033089077,6.6536703972,3.0894965498,3.8105937973 +3.9308673799,4.8778622775,-1.9228806263,3.6277714253,3.8256500137,5.5295653135 +3.3634165841,5.6644804722,-3.0953105459,2.4579671623,2.9421506072,4.2604743892 +3.1958053778,4.6976424932,-4.7072746661,2.8296201063,3.9624979897,3.7593305269 +5.9244743072,5.1905919565,-3.5709740582,2.8260052618,4.2069404026,4.5376701457 +4.2779557933,4.2040167629,-3.0744972733,5.3605159031,4.6831876215,5.2621417844 +6.8681023885,4.8901946696,-2.9128602937,3.9992282454,4.7944928103,4.3519018189 +6.5837331673,4.0281935383,-4.0836039794,4.4739279293,5.4153109941,4.1439372899 +6.0292631416,4.7783024752,-4.9669891849,5.0567048457,4.6080021079,4.5146014426 +5.0367256872,5.2930641793,-4.5019252091,4.4337022236,4.4697130635,4.3610427677 +6.8263159250,4.7426945447,-5.0895143755,4.7106351417,4.3388652333,5.1749284827 +5.7603050244,5.0118214443,-4.4806807063,2.3050466946,4.2769071858,4.1675962072 +6.2026805110,5.1673278920,-4.8644731473,4.0905789184,4.3852199523,4.9616679374 +5.5237174157,4.9710731469,-6.0106977192,3.0116210107,3.6871847536,5.2787015860 +4.2758843153,3.9164045196,-6.0734228740,5.9235136769,5.0798637339,3.9743686422 +2.5369845297,5.4988485888,-4.9773113332,6.0304491799,5.5177771678,4.6120698610 +3.3392740208,5.1936911941,-3.0813416292,5.6657253200,5.1521729059,4.6296386231 +3.1879718533,4.2005475697,-4.4380844148,3.7260403165,5.1415059919,4.7887884304 +2.2849881368,4.9384576347,-6.8818248938,3.4398684833,4.3474782609,4.9472142313 +0.8535160849,5.6069253847,-6.0023719916,5.3775355859,3.8064616224,4.8626766636 +1.9080333212,4.1744887227,-2.3739976489,5.0095362497,5.0716612840,5.9565747533 +1.0837459085,4.3668474174,-3.1664279437,4.8722974728,4.2145886740,3.6618148661 +2.5056549727,5.5795980097,-4.8542318280,5.4102209783,4.0324964460,4.5218702767 +4.6712151703,4.5614302821,-7.3467098392,4.2213375807,5.6743201447,6.0469404861 +6.6306337091,4.3109607759,-4.8652348504,4.1909724366,5.8041211082,5.1706036813 +7.9164337718,3.7818252069,-2.7390036745,3.7876123461,4.9596898712,4.2296774551 +6.7172003722,3.9491093518,-3.4540741432,2.9887437944,5.2489356091,3.4094143409 +7.6208443066,3.8188588721,-5.9936608927,4.6720717907,5.6821480389,5.2098594179 +6.5105423366,3.9681655724,-6.9229296623,5.3981223958,6.1919212638,4.6647749576 +6.5478990629,4.5768661905,-6.5189609039,5.2910516220,5.0852177794,3.9039232504 +5.2293510860,4.3847226884,-4.5795181516,4.2639626862,5.0439223630,4.0833813308 +5.5564224554,4.3451466460,-2.8062836070,3.3259752138,6.4134744817,3.4878239370 +7.0475211837,5.0444235485,-4.8438731418,6.5127741892,4.4713216462,5.0718235554 +7.2881402547,3.8180075386,-8.1578345202,4.3728348528,4.4244535088,4.7297884643 +5.3221078271,6.2513424156,-7.2556017397,6.2144922083,5.2565821705,5.6676353196 +4.9981362668,7.1081153476,-4.4354767807,3.9521204829,3.2820556433,4.4417755000 +4.2831080183,3.7022657762,-2.5418089632,2.8917207020,3.4978677848,5.1013428478 +3.0552375400,5.8946953086,-3.4442307260,2.0969021300,5.8098824727,4.4403908890 +2.1270561991,4.7211261541,-6.4820535781,3.2136369467,4.1314865274,4.7924565237 +4.8225057666,6.0442809309,-6.6168820083,7.6229097186,4.6442638694,4.6487312432 +5.8127625970,5.6822854741,-2.8887885505,6.2977486770,5.8735823845,3.0681211595 +3.6094334981,5.5870613178,-0.1792135789,3.0798287191,5.6379205941,4.5231436582 +2.9234625310,5.0993039588,-3.0556829420,2.8002418764,5.6690875918,5.1878242843 +4.3317018246,5.9641921933,-5.5986729654,5.4098192649,5.3105563152,4.5160186201 +3.7838581548,4.0154935248,-5.0696097252,4.1840660668,5.8342157602,3.5058732482 +2.9426913722,5.5587113982,-2.4969449963,4.5826437925,6.2005776222,5.4730886684 +2.9519135036,5.1178469883,-0.7831752419,5.0610271262,5.8184666048,4.5448713585 +2.2159148334,2.9548841765,-3.8477364591,5.0544530445,6.4571816404,4.4133313076 +2.2267517510,5.3552900082,-6.6140465829,4.6246209946,6.2567097660,4.5838934328 +3.0680874090,4.4350775497,-5.6067655721,2.9090098796,6.5324346520,4.6766381815 +4.4503908551,5.1715116859,-2.2682729640,4.3937561009,6.1997104492,3.1859496768 +5.1894980166,5.1827655577,-2.0150154961,2.6425511269,7.0566041540,4.3046483698 +3.5536435937,3.8130431062,-3.0368611442,6.5537333188,6.4027768011,4.5627609486 +5.1444999320,5.5282037889,-5.2543582364,9.3567272718,5.4516597904,4.1582800637 +4.7181517653,3.5492474653,-4.8443595036,3.5644066918,6.0723878609,4.0101118231 +4.0672738068,4.8203942797,-2.5378747361,-0.2594726791,7.4474227918,3.9743049730 +4.8789349118,6.1361126692,0.0913687520,3.9186330670,4.8215436416,5.7558267451 +3.2007308395,4.1399070184,-1.4587139201,6.6617384155,4.7100930061,3.2379713165 +4.7472261902,4.0598184017,-3.8524363734,4.3478923167,6.8004487520,4.0602682829 +3.9515925072,3.1004381779,-2.9467869144,6.5483653678,5.1492093631,5.4615699189 +5.1226500263,3.1095252346,0.0691045915,4.2368190326,4.1679421433,3.5978215591 +6.6874733076,5.0555115377,1.4396384083,4.9007600215,4.4022319262,6.0572601646 +5.1776276337,2.4455360558,-0.0486792498,2.9499603431,4.3588858377,3.6751456967 +5.3368869314,4.8310856228,-2.2719973052,2.4145185557,4.2094830158,3.5343072265 +4.9655427044,4.1129324513,-2.7154102209,6.8036917100,4.0495571603,3.5312471220 +5.1993920458,5.2589139487,1.2311145530,5.9528480014,5.3123759769,5.3707439584 +5.7906888495,3.8411797117,3.0722678979,7.4633085632,4.8521186569,4.3489175301 +4.8840628002,5.4250885096,0.8958901414,5.4882276172,5.2262873444,4.9948964387 +3.9110094384,4.6213749157,-2.8569291544,3.9827068139,6.7093562236,4.6135811205 +3.7115185727,6.2419458425,-2.5396579772,2.5831590980,3.9459099203,4.8774097012 +2.6942180584,3.7090370313,1.8791394460,2.9263030605,4.3077772308,4.5173039776 +3.1029241656,4.4819446457,4.9096976273,4.0064962085,4.8284236585,3.6602259575 +1.9447738429,5.1892192459,1.2721852547,3.9225115485,5.2712064250,5.0267310037 +5.3126000256,4.8691533974,-4.4518172763,3.7508403707,4.9994157305,4.3409641274 +2.8314734221,5.5025951378,-2.6098588910,4.7612737762,4.3675590171,4.6783394698 +2.5104927484,3.2045710480,2.6885240480,4.9911923086,5.5783045790,5.5615336318 +4.0680046393,4.3981856321,4.0225754449,3.6711501086,5.9593579190,4.2800024682 +5.3252439683,4.9210880785,0.6210530611,4.5269191631,4.3651887002,4.0818407180 +5.5810416420,1.7076284346,-3.6927423554,6.3958539204,3.7084175682,4.5994102457 diff --git a/statsmodels/tsa/tests/results/yhat_css_nc.csv b/statsmodels/tsa/tests/results/yhat_css_nc.csv new file mode 100644 index 0000000..e5684b2 --- /dev/null +++ b/statsmodels/tsa/tests/results/yhat_css_nc.csv @@ -0,0 +1,251 @@ +yhat1,yhat2,yhat3,yhat4,yhat5,yhat6 +NA,NA,NA,NA,NA,0.0000000000 +-0.1620293012,1.0763252346,NA,NA,NA,0.1078831621 +0.3601405207,0.1766955039,NA,-0.0165592677,NA,-0.3289649557 +-0.3276410220,-0.8765652166,NA,0.5607487823,NA,-0.4129752042 +-0.8830498027,0.3619650853,-0.4399551803,0.5743380313,NA,0.3040087976 +1.6623838847,-0.6136962904,-0.0379242817,0.3887314691,-0.6720426779,-0.5677674192 +2.8010906652,-1.0090108368,-2.5559025850,-2.1606884569,-0.4565104793,0.4427811692 +2.1873676889,-1.5045283063,-3.3103014448,0.9254180040,-0.9553202931,-0.6441671345 +1.9765028673,-0.5908049198,-1.3263515162,-1.0742758755,-1.1016875679,-0.5134488407 +2.3727887409,-2.5727537198,1.3155327240,-1.5517685481,1.2591223517,-0.1658043749 +3.2186998744,0.0255050356,-1.5521338895,0.2304978781,0.4388472839,-0.3511000927 +3.5581913022,-2.4090822893,-4.4627549060,0.0149018188,0.6318442131,0.1184528446 +1.1218687467,-0.0860811831,-3.5214536569,0.0511823774,0.3779683787,-1.0290729403 +1.2240538679,-1.2128602891,0.9753153044,1.1698629310,0.7963087337,-0.2702123461 +1.1533855064,1.3471252145,1.3932693656,1.4755850066,1.0328374908,-0.6211128092 +2.4581189494,-1.3912883937,-3.8630151452,-0.3488054131,0.5202204427,0.3211239801 +2.8307041762,-0.9586092772,-5.2191970998,-0.1485236932,-0.8277286453,0.7067562946 +-0.2418064002,0.2682323272,-1.1621312983,-1.1731786861,0.7586577819,0.8247148211 +-0.5350911141,0.5088429408,2.0239646853,2.8126715661,1.8142975337,-1.4212400422 +1.5417494305,-0.8333983591,0.0305314248,-1.8720807250,-0.3597109530,0.4069194511 +0.5829735052,0.0670012529,-3.7576893588,-2.6635149196,-0.0632116734,0.3451164985 +-0.1574127394,0.2554475805,-4.9540547603,-1.7914049618,1.1250694242,-0.1450909033 +0.4481067336,-0.3963546295,-3.4848837402,0.9165578791,0.4616456682,-0.6334964678 +4.1314752579,-2.5882646852,1.0871729791,5.9843069077,-0.1880317125,0.3998983267 +1.7808125691,0.2654288652,0.0731513281,1.8332157601,0.3383632385,0.8227803569 +0.7427496991,-0.2537233052,-4.1264500027,-2.8013735686,0.9106291336,-1.6586259800 +0.6927208117,-1.5241304727,-7.9731848527,-4.2338549550,-0.7507761084,0.2552804133 +0.8740479843,-2.2225408928,-2.9637270787,-1.0611665109,0.7866090908,-0.1093100406 +1.2593581157,-1.6871815581,3.7484267162,2.5904379660,1.5242830356,-0.1318389777 +0.9296387917,-1.0508499053,0.8385821650,-0.8525125442,-0.0251047215,0.0037358716 +2.2817462009,-1.8223182006,-6.5379120128,-0.5448796942,0.4567307630,0.9630744311 +0.8186423439,-1.4246039012,-5.9449925044,0.9950262294,1.2267590596,-1.5554781929 +-0.3136681181,-1.5516045764,-0.4412878089,0.3247088341,0.7105911772,-0.4856191947 +-3.0056414674,-0.9891890496,2.1376014779,-1.9365444196,-1.0880596271,0.2107868423 +-4.3530137678,-1.8512980258,-0.7300630138,-1.5778465471,-0.3487805856,-0.1652635750 +-4.2367761222,0.1702787396,-5.3002550580,2.2435651676,0.9033292788,-0.1850124752 +-2.5011451301,-1.9234430885,-5.2140509172,-1.9294447931,1.2366701326,-0.2174429256 +-3.3916655158,-3.4628061387,0.0626358505,-0.7876455397,-0.8785360318,0.6121910205 +-2.3427641943,0.7046040012,2.2157268862,-0.5783203152,0.8117945418,0.6947694022 +-3.0339991557,-2.0997716110,-1.6883993641,0.6295430828,0.6673256488,-1.4092007089 +-1.8325533464,-1.2835063085,-5.1339411876,2.1828615804,-0.0561461477,-0.8983844908 +-4.1786055497,-1.5244177091,-4.6308457609,0.3813580643,-1.1524503744,-0.6001159502 +-3.2640875930,-0.6398291785,-0.7891696911,-1.1629215322,-1.5173216628,-0.7124449033 +-4.2914662232,-1.9841588730,0.3868676290,-0.2204710296,-1.2806920099,-0.3883978653 +-4.2865799433,0.0034622129,-3.1597092800,1.8670492859,-2.0223589653,-1.2077703800 +-4.7401216386,-0.4352705871,-5.9864916481,-0.8348981801,-1.7224422396,1.2554745655 +-3.1718113831,-0.9512944005,-4.4899865859,-2.3132324498,-1.9040690424,-1.5403366655 +-1.9639862990,1.0970311937,-0.8131942917,0.2017228525,-2.5357307023,0.5312187777 +-2.3620362939,1.1810594179,-0.3732331565,-0.3734232754,-2.5025606470,0.3276001684 +-1.3517555860,-0.3707603411,-3.2225082098,0.6599748835,-2.6339908342,-0.7835475414 +0.5469707264,1.6123856105,-6.1084951970,2.7116864438,-2.3315544004,-2.2130916981 +0.4492908626,2.8893302242,-3.1180365590,-0.6502607102,-2.8469139730,-0.7512854763 +0.6404727277,-0.6563373691,-0.5296084743,-0.5094939424,-2.0311413374,-1.1455262079 +0.4515656834,0.8142799595,-1.9844884043,1.6763493211,-1.7872457808,1.3174683496 +1.5250715453,0.8930116711,-2.8018485546,-0.0345620834,-1.9507134808,-1.0708439496 +2.6613210917,0.7981939109,-4.8624432252,0.4115656065,-2.5263285916,-1.4170313258 +0.8805244364,0.2211299364,-3.1532671589,-0.2594344326,-0.8702567836,0.3855312576 +-1.1097821097,1.3362547905,-1.6939296989,-3.6089450603,-1.7980382791,1.3172670303 +-0.7650130235,-2.2645296027,0.5031617922,-0.7579844828,-2.2753279475,1.2766928632 +0.3003388375,-0.6195675809,-2.7500533439,2.4227934874,-0.6621613838,1.1429327287 +-0.5736725545,-0.1484595966,-4.4775696257,2.8828489462,-1.3451158049,-1.0832131452 +0.6174312542,0.4202360093,-2.1711933008,-0.4279113596,-1.1913630750,-0.8397415767 +0.4045580174,0.0451151681,1.6356140658,-0.6973859621,-0.3336257922,1.7392824534 +0.3804509658,-0.8393860763,2.3013898559,-1.5754205024,-1.2556660937,-0.6936069274 +1.0636189873,0.4477986596,-1.2130353833,-2.7506288418,-0.3583804491,1.1254720390 +1.7769900945,0.6508200812,-2.5931608334,1.0157749627,-1.9421917636,-1.2236786196 +0.1855065648,-0.0751668116,1.7755986541,2.3688389712,-0.5996530926,1.1122804175 +0.1580506446,0.8216008907,3.2396156086,0.7295526170,-0.4433040213,-1.4967378571 +-2.6049068611,0.0063699766,2.0221656222,-0.3223727173,-0.8717089236,0.5465831457 +-2.6240623901,2.4070651677,-0.7803549453,-0.9112893136,-1.0863430337,0.3194176692 +-3.4104828225,1.7247616209,-2.1914751667,-0.1426235550,-0.7835969602,0.0040361941 +-4.0714248154,0.2918316934,0.8317741206,-1.6667592098,-0.6835966612,-0.0325900640 +-1.7593571912,2.0587796319,2.4876492803,0.3592888964,0.7055267207,1.3189199760 +-0.5235314445,3.7422360239,0.1964784503,0.7641348737,-1.5494419361,0.5661271110 +0.4103929050,1.2036451343,-2.3847533732,1.2973095141,-0.9624355362,-0.5832838351 +1.4602387816,0.6019643512,-1.6377259360,1.0988426026,0.8836954131,0.9042071051 +0.4745220846,2.2604216657,1.2874095002,-0.5797869711,-0.5210696036,-0.3133676321 +-0.3440908381,2.6031059258,0.4293511753,-4.2464043315,-1.1583379667,0.2310597817 +-1.3277407832,-0.8343985667,-1.1861631484,-1.2114487883,0.6772451830,-0.6953023813 +-1.8177427846,0.5603112539,-1.5156969177,1.0233968209,0.1012539400,-0.9079785206 +-1.0851813058,0.0025580865,-1.3195702684,1.6074410989,0.0886550074,0.4686556683 +-0.7685202071,0.1240537483,-0.5397969411,-0.1230160796,-0.3919427539,-0.6112440245 +-1.9325222542,-1.7540141932,-0.0542071210,-1.6942224341,0.1716101296,0.6253447096 +-0.4465359440,-1.6715056084,-0.8912282808,-0.8398094783,-0.4423061361,0.5997095689 +0.1259956623,2.2017347230,-0.9114244186,3.6873239692,0.9656533172,-0.8510503381 +1.2834024430,-1.8305539545,-1.2103091141,2.0866044984,-0.1085569181,1.6817824736 +3.0661167679,-1.6041193446,-1.0592049811,-1.7119702607,-1.2958848525,-1.2476339906 +1.0722998066,0.8347897999,-0.3850676873,-0.7665558693,-0.0896908737,-0.8893961478 +1.8633832542,-1.3426457313,-0.3262718947,-0.5928999144,-0.1352622174,-0.4529482558 +1.1869314978,0.3447991504,-2.0563281885,-0.6496770176,-2.3526304947,0.7670261128 +1.9885004186,0.9036806796,-1.5858387501,-0.6507717029,-1.3937965867,0.2920474733 +1.6668116125,0.2856065415,0.4692764740,0.4022732643,-0.0733459842,-0.6786726587 +3.8085133800,-0.7915243687,0.1494041335,1.8323270012,-1.2824810067,1.7361479332 +2.6332048655,-0.4378132726,-1.9674173475,0.4652059873,0.0893296071,-0.3114582928 +4.3666813626,2.0940639598,-2.5454759166,-0.6543996825,1.1230943513,1.1420266368 +3.2172889176,0.0782467008,0.0684575675,-1.9397364028,0.7766789364,-0.1548087922 +3.3813510177,1.1475333599,0.9668739087,-2.5012650461,0.6779248606,-0.7055084256 +2.6307121938,1.1488234405,-0.5685379178,-0.8293721269,0.4270194698,-0.5899481251 +1.1060925092,0.0797100009,-2.4468013057,2.3429435569,0.5065707180,-0.9164447183 +1.5410502922,0.9519093966,-2.2324375999,2.5196040553,-0.2527915098,0.1708263786 +1.3030535305,-0.2733898149,-0.3756420172,-0.5371835448,-0.3165273152,0.9269187113 +-0.8553687173,0.2913302796,1.4560505084,-2.1774563278,-0.1666207370,0.8095705930 +-1.2438851463,-1.1317151797,-0.7151890212,-0.9986294871,0.7342518667,0.1492766272 +-0.9717952277,0.7464140677,-3.4384526915,-2.8674548946,-0.7129439775,-0.9711124500 +-1.8185850743,0.0625997879,-1.6342819484,0.1423130412,-0.6278795004,1.4224602349 +-1.8952322671,0.6597433648,-0.1452859683,4.7470751013,0.6943251229,-0.7969948839 +-1.4588819814,1.0412210222,1.7645860331,2.9936426919,-0.1611558584,0.3267503974 +0.1919176101,0.0842490462,-0.3237970721,-2.3132919822,-0.6476613428,-0.7372045162 +1.2537852383,0.1489771105,-3.0019208585,-1.1095357636,0.6586122505,0.2553199521 +0.2260397221,0.3635730828,-3.3936467150,-1.3830476291,1.8758240730,-0.3568994020 +2.0586740357,1.8316798374,1.3436146708,-0.2754489386,0.8248273450,0.2198508240 +0.8495164614,0.4149002189,1.6854131956,2.8485797493,0.9769475465,0.0230142731 +1.2226053601,0.0002322890,-2.6254504111,1.9683597101,0.7847949977,-0.2038701241 +1.9728864759,1.4304649464,-5.0117800711,-0.2352434895,1.5265079958,0.2479952476 +-0.3857775746,-0.6789142720,-1.2034550085,-1.7650608634,1.0741083549,0.0635176286 +-1.4208691562,0.3051814017,0.4012989882,0.9369064417,1.1549821385,1.0771645607 +-1.5256955487,2.0112791407,-1.5569071459,0.5398303991,1.1090687730,-0.5649351124 +-0.8746618353,-1.6225202630,-2.8251596354,-1.3329769666,1.8108491184,-0.7708301098 +-0.8958018319,-0.9683154555,-3.4073304226,0.8425223018,1.5495881509,0.0154973845 +0.1264932574,1.5441068206,-2.4942986602,0.9426260955,1.1385325525,1.1551837809 +-1.8727492455,-0.6931566765,-1.6146807921,-2.2712161715,0.5659157893,-0.6252635245 +-3.9748419781,-3.1963841219,-1.4314808642,-0.5243782334,0.7744876794,0.9006608134 +-4.2932097483,-1.2145518647,-2.8590852266,-0.0497339593,0.9711406711,-0.6650932777 +-2.7816280607,1.1299503089,-4.7203843066,2.6544759603,2.1123849370,-0.4881382832 +-1.2840514437,-0.9327069523,-2.6920982284,-0.3450737471,0.1832385033,-0.2000738106 +-1.3041964466,-1.0439901420,-0.9884432785,-0.1638410828,1.5618161420,-0.1195316486 +-1.1237703057,-0.8246109307,-1.0361384927,0.0593352102,1.9939050020,-0.1106988244 +-0.7177917125,-0.4407523470,-1.5485552921,-1.6964443552,1.3389389155,0.0150756719 +-1.2544276611,0.1467364223,-2.9934019219,1.0725924592,0.6814504551,1.8525906434 +-1.4057413396,-1.6081404740,-3.5098467865,0.1444365470,2.4538824102,-1.4273403499 +-1.0676399038,1.9202922084,0.0643704456,-0.9977986078,2.7279063863,0.0497703197 +-2.2404869864,0.1532439874,1.0821929727,1.1711155054,1.6325761584,0.5450626700 +-3.7473366416,-0.6270453274,-1.7025298710,1.3786407738,1.5338011763,-0.1923266381 +-0.8388796385,-0.4499295312,-3.9622147290,2.0666136280,1.7412179421,-0.0345263109 +0.4492904376,-0.4318418300,-1.4309990044,-1.8829472626,1.5134765542,1.2601550566 +0.8683198101,2.5632584768,0.5115605591,-2.4199179221,1.4335441209,0.5765594574 +1.2880341609,-0.2068725262,1.4429368928,2.0309025011,1.5008337899,0.2212474408 +2.4851766591,1.7190335705,-0.3096533452,2.5352851772,1.2529239444,-1.2842407399 +1.3016602821,-1.0184362809,-2.5116480189,-0.3895744650,1.1150718064,-0.1580399227 +0.6565410872,0.0411355770,-0.9083880673,-3.1323762102,0.8945384479,0.2138841390 +1.0768673167,1.5859225424,2.3904608298,-0.7440594258,-0.2683661128,1.0341385153 +-0.1790414604,0.2257963871,1.4021957017,-1.4086477970,-0.7467251769,0.3517930142 +1.4560780501,3.9984288949,-2.1818173578,-0.1251482230,-0.6661402218,-0.7283957183 +1.6223739312,-0.1143918759,-1.5765261755,2.4444612260,-0.5737782293,0.3650902527 +0.4549327959,1.7470763383,-0.1722074884,0.6187509259,-0.9800954064,1.3849139562 +0.5840383556,1.6292540683,-0.6462225506,-0.3908948507,-1.1793196884,-0.0849224215 +-0.0382466852,1.8320389925,-1.2457891641,-0.2369459954,-0.3801780397,0.0973902910 +-0.3271092288,0.7583013661,-2.5713985227,-3.2219413371,-1.8150064595,-0.4701454477 +-0.2630881327,2.4083664388,-1.7397756604,-0.9936552269,-1.9537200665,-1.0144950788 +0.6015393583,0.5004869491,-2.7367094281,-0.4067622902,-1.2399765727,0.7793202425 +1.1712844378,0.8724853692,-1.9834873742,1.9263495884,-1.9961075760,1.0742257047 +-0.0255132722,1.7464131231,-0.8744529916,1.7041799186,-2.6545459746,0.2711739578 +0.8593365503,1.1598834659,-3.2157277772,3.0344766251,-1.2223572637,-1.5052605949 +0.2457927052,1.2063133846,-4.0734126601,-1.4352410817,-1.0696270265,-0.3568840392 +-1.7587292989,1.0318922407,-1.1299975686,-1.6206030760,-2.4767398216,0.0736147481 +-0.7629155002,2.6119388248,-1.3595461224,-0.4061388568,-1.9446633346,0.1228716286 +-2.4464499592,1.5633307746,-1.1993874946,2.5129548291,-1.4417163050,-0.4544626048 +-2.1913624203,1.5018233954,-1.5081420931,-0.1441071602,-2.6941797342,-0.4782788113 +-0.4294997029,1.5294432495,-3.6086326129,-1.1814792298,-1.7503274589,0.0850598296 +1.0757433927,0.6343211054,-2.1765770334,-0.9696283571,-3.0033918973,-0.5264054900 +0.4819018380,0.5439632591,1.4985419264,0.1996680365,-1.4520324278,-0.2133163669 +-0.1048440187,4.1604426344,0.5096327782,3.4726472479,-1.2251096444,0.4559622053 +-0.2082616085,1.3372895175,-3.4099921673,-0.1261827055,-2.4412525188,0.3982242094 +-2.3214097267,-0.4512162789,-6.3087789152,-1.4211177958,-0.8431409439,-1.6418491340 +0.7598730389,0.5221484725,-1.7706101267,-1.9112243576,-1.1138156974,0.1560459747 +-0.4503059263,0.3382168765,2.8757978257,-0.7475482694,-0.9432590507,0.3671384565 +1.4252843588,-0.3581274508,-1.0660369457,-0.1521043440,-1.6686012550,0.4391666189 +0.8557951889,-1.6700281249,-6.0155440661,2.0569821898,-1.2167681837,0.0616966748 +2.1197363662,-0.3254142363,-5.0317565719,-0.1651779946,-1.0793436425,-0.0362253607 +3.7843843535,-2.9058697201,0.4015948577,-0.9699338807,-1.5304811950,0.9710599826 +3.6639968597,-2.1644623930,1.0885490913,-2.6192732274,-3.1032901204,-0.6103751479 +5.3516222160,-1.7468348305,-0.2786307986,-1.0929856632,-1.2347693125,0.2714720455 +3.1328806708,-2.1959700722,-4.4151841710,0.2158512552,-1.7673027748,-0.3892622913 +3.2621453943,-1.5641843422,-4.4278632716,2.7467670287,-2.5500989566,0.1181352020 +1.3756774757,-1.1645107661,-1.5498937290,0.3843958256,-2.3958185948,-0.3641296031 +-0.3409150110,-0.9639985923,1.2589854726,0.7860196575,-2.6163325677,-0.0227128879 +-0.7816689444,0.3988634004,-0.3486307368,0.5479778811,-2.0177759913,0.7301618761 +-1.6579747618,0.8849597588,-2.6806508969,-2.6735852090,-2.6746944292,-0.0649716491 +-2.1961153808,0.8915451325,-4.4850343973,-1.5485017509,-1.0105601333,-1.2477650565 +-1.1158707559,-0.8991288828,-3.3466290565,-0.7964497332,-1.7735976986,1.0130908349 +-1.5166983176,-0.5146942726,0.8777421326,-0.6166224849,-1.6980606762,-0.0905785189 +-1.7729558279,1.1958232363,1.0086630472,-0.1458495575,-1.1187352547,-0.6843712475 +-1.7572842839,0.1906426210,-2.9753112175,1.7966903531,-1.1291332097,-0.1998397161 +-2.3956951952,-1.1176311156,-5.8018216059,0.6681055010,-0.5764200383,0.3737081085 +0.2967084706,-0.0054861191,-3.6012921482,0.3572205585,-0.2183681890,-0.6228683254 +1.5631389591,-0.5727871430,-0.2699709190,-0.8870507780,-1.7688176444,-0.3602823197 +2.6479221150,-2.6245742900,-0.2735926556,0.2475807860,-0.1552128003,0.3250331614 +0.7983025974,-0.0510894527,-2.5738338009,0.4732649733,-1.3747457506,0.0957910586 +-0.0924144869,-0.0276571999,-5.6236119883,2.0516985242,-1.1256007974,-0.8043494199 +-0.5302712395,0.8002007630,-3.4635446258,1.8626519987,-2.2097073920,0.4704163506 +-0.7237648452,1.4086542240,-0.3968298833,0.4119235225,-1.2247518267,0.5256245786 +-1.3994066744,-0.2774679310,0.0199043187,-1.0194311537,-1.8897817391,-0.5900572387 +-1.8789890298,1.8425476110,-3.6403975824,-1.1766808641,-1.8647530965,-0.3486817825 +-0.4057778728,1.7074937390,-4.4488562742,-1.2676190060,-1.8621238285,-0.0710751163 +-0.0304203855,1.9559974751,-2.8552962079,1.4416999548,-0.7098298967,0.2816369315 +0.8290867970,0.1321851571,-0.5121936468,1.2459821810,-2.7697560590,0.0394053858 +1.6619931114,-0.5314022181,-1.8124021528,0.1003098464,-1.9618786845,0.2429368025 +0.0233917951,1.3128697780,-4.9491836546,-1.7398323714,-0.1332647927,0.6851573716 +-1.5938026981,0.3163514424,-4.5224958562,-0.5391324996,-0.5773835825,-0.1871588296 +0.3638404779,-2.6298377986,-1.4250908111,-1.0021284973,-0.8613260935,0.7374959812 +0.5049543399,0.2581538151,-1.9621747689,1.8678185046,0.1420202189,-0.1399374936 +1.7178577306,-1.3075000570,-3.9049820069,-0.5754499867,0.9132804385,1.6319493398 +0.5713175500,-1.1067531350,-3.6692420736,0.7438133428,0.6351915647,0.1102152614 +0.8329003496,-0.2038010505,-3.4166252352,0.8512011136,-0.0053701924,0.0961182657 +-0.0812582815,-1.4437847496,-2.4714870590,-1.2049075580,0.0372221952,-1.2563382425 +-1.4005538589,-0.9965180757,-1.5605602294,-1.3962239868,0.0685269483,-0.2331680477 +-1.9867378985,0.1577102300,-2.2639115107,-1.0749147372,-0.0491900963,0.4011222879 +-4.5766474934,-1.6632162835,-3.4918566715,-1.0043356903,-0.6930563478,0.6653575283 +-3.5169126058,0.9601324573,-3.0683263156,-1.3048229736,-1.0390779848,-1.3761689067 +-3.5514376047,-2.1615533016,-1.8957360047,2.3403532519,-0.3351914090,0.8152645987 +-2.7784219735,-1.3912159698,-1.2708855591,0.6741232567,-0.5379513092,-0.7717465646 +-0.3826040904,0.5514294002,-0.9899533327,1.4351298979,-1.7637370168,-0.4634233961 +0.3763857626,-2.5424580767,-3.3300722422,0.0239433986,-1.5073755119,-0.1354545585 +-0.3012361436,-0.4469433857,-3.8002132290,0.3359329880,-0.5897910985,0.4499958259 +1.2510846794,-0.9657040275,-1.2505104957,0.8124550886,-1.5876799482,-1.0303601428 +0.7228497089,-1.7418057657,-0.0489523088,-0.0684346421,-0.8089348930,-0.6172289272 +2.2485983104,-0.5939003086,-1.8601977037,-0.7626268426,-0.8551833571,0.7163767516 +0.6259347602,-0.9807897043,-2.3129514163,0.5107115382,-0.1953584105,-1.1952038954 +1.2361744270,-0.2730315847,-3.5726017436,1.4870050796,0.2065032947,1.1136283552 +2.3656138272,0.0681867291,-3.3289612573,0.7358213471,0.0378984213,1.0495243492 +1.4425258895,0.1764432300,-0.0513235180,-1.5376639175,0.7889776785,-0.1490278429 +0.5804185766,0.0433159876,-1.0956591525,-0.1783892109,-1.0606460002,-1.2409017897 +0.9943328883,-0.0299720342,-2.2167279448,-1.4755549755,0.3831918290,-0.1245888595 +-0.4053428942,-0.3213502439,-4.5809721441,1.0112272917,0.1742095678,1.0611935462 +-2.4014231304,0.4920305503,-2.8139696889,2.3860433953,-3.0947424135,0.3521974125 +-1.0130373816,-0.5611101369,-0.0798331799,0.8672821242,-1.9235781184,1.0241560101 +0.3969227423,0.1357090549,-1.3459032509,-2.0811411261,-1.4613133019,-0.4117199010 +1.5758700429,-1.2278617624,-1.9136486565,-2.6854034279,-2.6943596667,-0.2386195026 +1.2543455794,-0.4354934703,-3.0671834757,0.6931403857,-2.6829317083,-0.0548617659 +0.5391573877,-2.3274378127,-1.9932576354,3.1210953850,-2.5822993637,0.3131597722 +0.6702914110,0.8928679916,-1.1407418811,2.2245740680,-1.7805110619,0.3350589156 +-0.5605888328,0.8307027192,-1.6153800514,0.7748059668,-2.1833120528,-1.1391249928 +-2.4265242403,-0.4450314162,-0.9084902408,-2.6527287200,-1.3072066460,0.7921656495 +-3.0033215422,-0.2599596995,-1.5200587505,-0.4546514573,-1.9098865422,-1.5902209391 +-0.5443117453,1.5845420667,-2.6659474213,2.5668487197,-1.5033178436,-1.0085279000 +-1.1488108161,0.8539179940,-1.9375475110,-0.7650103537,-0.9246236474,0.3703088611 +-3.6576550743,-1.3642864155,-1.9915577508,-0.7584986825,-1.2164975870,0.9089413541 +-3.9149445370,-0.2580440997,-0.2089533972,-1.3440067590,-1.0177841890,-0.6012744995 +-2.6452706249,0.2849101376,-1.2809371951,-0.8101844621,-0.9528112386,1.3440120004 +-1.9966947461,-0.5510878893,-3.2489542748,0.3024655425,-0.9942638613,-1.3368052571 +-1.4156004116,-1.4682332328,-3.9995929002,-0.3770799139,-0.4301403524,1.3327893009 +-2.6725413294,-1.3656433490,-1.1396614533,1.4207237537,-1.3157291195,-0.0512669332 +-1.9850946929,0.2025038390,-0.7370044950,1.2121592685,-1.0880180905,0.5200977259 +-0.4039743516,-1.3003884417,-2.9450916525,0.1897525914,-0.2373052814,1.2429578845 +-1.0865213652,0.3976776731,-3.9620906478,-0.2099206828,-1.5694771417,-0.3697143432 +0.4429433664,0.5670059779,-1.8084993683,-0.1297177905,-0.9254186423,-1.3386159874 +-0.9940090446,-0.2456374690,-0.5488862066,-3.2862879547,0.0502006060,1.8764091628 +-0.1785085243,2.7613210322,-2.9955197942,1.2170625726,0.1663899009,-0.2429845343 +-0.4520997598,1.1859677824,-3.5194161296,-2.0198847559,-0.6616405560,0.9270158714 +0.4395893887,2.4257173314,-2.7310543613,2.8660585859,1.1653674121,-0.6792024082 diff --git a/statsmodels/tsa/tests/results/yhat_exact_c.csv b/statsmodels/tsa/tests/results/yhat_exact_c.csv new file mode 100644 index 0000000..617228b --- /dev/null +++ b/statsmodels/tsa/tests/results/yhat_exact_c.csv @@ -0,0 +1,251 @@ +yhat1,yhat2,yhat3,yhat4,yhat5,yhat6 +4.8564757594,4.7737798231,1.0629802339,4.5077285877,4.5622072362,4.5192778020 +4.3802260168,5.6140133447,3.4640440803,4.6451139813,3.8773321387,4.5438641692 +4.5588418673,5.6225064824,5.3407060303,4.3405011840,5.4600466767,4.2782569409 +3.9507827608,5.3487217610,5.4118204790,4.4096228098,4.3702357145,4.5836303978 +4.5804681490,6.3881841171,4.1502891739,4.7975154783,3.7949197183,4.9718794716 +5.0032409924,3.4106576794,5.4821040681,4.2964182149,4.1528170835,3.8740105400 +6.1439810685,4.7432320834,7.7039949074,4.0943179478,5.1277481550,4.6131286421 +5.3098043569,6.2280284352,5.4650688035,3.8951289718,3.5021875797,3.7720644643 +6.7370040358,4.5769052643,4.0785096637,2.9922651118,3.8554921177,4.0006637112 +8.2794534209,2.8986527047,5.9934467858,6.7863266033,4.7807352842,3.9700512070 +5.3994706147,4.1561554760,8.1640216896,7.4298455092,6.0888272280,3.7754024525 +4.9218045655,5.4072460550,5.7171282128,4.4379132025,5.0405425254,5.1032809723 +4.5809811787,3.3815613729,4.1122940996,2.8103672864,4.0052742863,5.0975296701 +3.2986980116,4.0528408707,7.0812545405,2.8175490692,6.9643606969,5.3282288302 +3.6125257499,4.7123122142,7.2802430740,4.9998742381,6.5195297109,4.0888259706 +4.0789657485,5.8862981771,6.4284934825,4.6063307602,4.1113507949,5.4600237412 +3.5827143922,2.7156701332,3.9263920137,7.6742887717,4.6487630996,4.4507906663 +4.7465347618,4.1929171465,4.1915903715,2.0185734313,5.4112948426,4.6820392038 +3.8127243048,6.8089433136,6.3694834206,2.8142361499,4.1789450524,2.9246777573 +2.6507492591,4.0732023852,4.3113964897,3.3292074089,4.9631906968,4.9470150498 +2.8548980286,4.1067694984,3.6986970613,5.0550056219,4.0370113097,5.3120288563 +3.3159395945,5.3863702796,5.7334881207,5.3434184298,5.4904297697,4.7803059985 +4.8431197809,5.5538298091,6.4783859548,8.3057664495,5.0202593302,4.7801484532 +4.3082119128,4.4230517789,3.8676933770,3.8941721698,6.0173206815,4.6440567890 +4.4165127148,4.3808105249,4.5517660837,3.2898692911,4.7963174021,3.8920677491 +4.7309696514,5.2801924782,7.1540005854,4.8903934701,4.2106121558,4.0817734302 +4.0410886315,4.9585603530,6.2690890362,2.2073876653,5.4001970429,5.7237280604 +4.8332270128,3.5634924463,5.9852363972,4.5417420173,3.7883420643,3.7343618389 +4.5111306180,5.0333269610,5.5439697883,7.8649159665,3.3783377468,4.2256240739 +4.7795160442,4.8885895295,5.1558960118,2.4246478844,2.8723762647,5.0049152206 +4.1634630642,3.0082511574,6.7333312854,1.7577371552,4.9067761467,4.0185751413 +7.4774502912,5.5256888505,6.4253062305,4.5969330228,4.1336608185,3.7435630339 +3.7357425973,3.3978865699,6.3850324197,6.7955618376,3.5374585303,4.3519277114 +3.8136969056,1.4223961614,3.9137300397,4.3787671461,4.1996445120,4.6801971467 +3.4168935420,5.1928940937,4.1313460248,5.3022783788,5.0220531097,5.0231834564 +3.9431774564,5.0539207294,5.7166316517,3.9645588970,3.7344911267,4.7472665236 +5.8769015221,3.4568435077,4.5983046191,4.5476226499,5.1508903972,4.1423306786 +6.3451471244,3.4525233065,3.8923446980,5.3935741113,4.3477370835,4.3221446745 +5.1756374968,6.4372027039,3.6219427792,5.4372556864,3.7588708954,5.4326260847 +5.5770569483,2.8471482674,1.9528836062,4.2697049976,3.7217798152,3.7617662530 +6.3168522717,4.0152314769,1.6965283909,4.8762993376,4.5263133252,4.6945269065 +6.4017152938,4.6879242999,4.1933331002,3.5315279085,3.5152815115,2.3590033197 +5.8043000464,4.0628647407,5.3578122209,4.6217281026,3.7408163831,5.7068734824 +5.5491499549,3.5900272630,1.9076262576,3.7595010920,4.0144473333,6.0648587570 +5.0586337054,4.0577439190,-0.2033612457,2.3925340704,5.1933709218,4.8173241101 +5.0706090032,3.2997132534,2.5787941478,5.8131547100,3.8574885646,4.8777641015 +5.2607840312,4.9485054124,5.4461001297,5.9182842360,3.9711274448,5.2232830270 +4.8688685227,5.4471766809,4.1323447658,4.8544622996,4.6227411767,4.4754849228 +5.6352916186,3.8893758868,0.8326871048,4.3506808570,5.1744439793,5.1377863560 +4.8362453771,5.2120960571,0.8435185540,4.6219865783,4.3982605837,4.1303783461 +5.9360716139,4.6009855369,0.9320453718,4.5894955163,5.1446104974,4.7206233425 +7.2002391355,6.4781161540,2.8379786962,6.3275708285,4.4335990006,4.3336494927 +7.8589048665,6.7603942006,4.2250339511,5.5197677458,3.2453799215,4.4870067920 +7.2880079127,4.1216235213,-0.0568921323,4.0920515138,4.5885026888,5.5531437913 +5.6605978857,4.9893001744,-1.4544737583,3.3192516948,3.3089322709,4.4013827151 +5.9996576521,6.2246279399,2.1629052006,3.1431835658,3.3564521333,4.6034119082 +5.5839811157,6.2030122490,4.6018398852,4.7731816265,3.7989099394,5.3068050470 +3.5999325179,5.7684073507,2.7259948119,5.7192595634,3.0731380327,4.4660071898 +5.4401538781,4.5459108955,0.1333320606,4.1895094201,2.8609833771,3.9746136975 +6.9874270540,6.5774993780,-0.3791701331,3.6788888651,2.1991521821,4.2593156048 +7.0030065424,5.6466682329,1.8589131112,2.5187699145,1.3300193667,5.6218582272 +5.9290930778,3.2147258549,4.2074002314,3.7189410999,2.5774203670,4.3561586046 +6.4719117339,5.6751884826,3.3522646424,4.8391148795,2.5423436095,4.1157435547 +6.9432788786,5.3003261494,-2.1986992167,5.6544382687,1.2520828888,4.0551016887 +3.9058013502,4.9670740876,-2.3785357370,4.2618635503,1.8198346028,4.2300337138 +2.3274874822,4.9332683791,2.2005608972,5.8001104380,2.4927298534,4.6590273147 +1.9782810757,3.0618750432,4.3097362731,5.8544002731,3.0249154799,5.4718072167 +3.3919351286,6.8536873068,2.1982905781,4.6279762364,2.7927026190,4.8585791147 +3.6728791711,4.2580095925,-1.1720611315,3.8239934692,3.4830202934,4.1231045895 +4.0150298486,5.2679069592,-2.7606442537,3.0050313805,4.7362230675,4.4562407086 +4.0936759332,6.3435246151,3.0934721218,3.0473133678,4.2475318785,4.2535252521 +5.2189267343,4.9071082105,6.5755742571,6.7747170150,3.9087825697,3.7839948329 +5.5167441820,4.7603567640,2.6353210273,4.1613171659,4.5774450111,5.0042760365 +4.3493098464,6.6080312279,-2.3363850600,3.3752732310,3.7497202821,4.4612021004 +4.9931132007,5.1208824878,-2.9726618484,4.4417380246,2.9344436368,4.4872541469 +4.6713852933,6.0029299088,4.1021452040,4.3440934596,3.2228513242,5.1884784928 +6.1787618594,5.1745771320,5.7416492012,5.2334424436,3.2508077947,4.3495472054 +7.2968215671,3.8036385547,-0.2381039143,4.2512059998,3.4854256246,3.5891281979 +5.3019815599,5.4234047749,-3.4350762648,4.1250305822,4.0409597160,4.6799152083 +5.6919743584,4.4949496684,-1.6153628173,5.1631451769,2.8790890983,5.6027081261 +6.8455273324,3.9879656085,2.8720877798,5.1119102038,4.7728291303,4.2808615693 +5.6533589575,2.6630513204,3.4378279820,4.4182988889,3.3067630783,3.2271978549 +6.2870734485,5.7527968456,0.5802321899,5.9297928697,3.9866542467,4.7573423130 +6.0565657056,2.3476268043,-4.6153310536,3.1787582624,3.5987337905,4.1562326325 +6.4992350088,3.6521006730,-2.5802817089,3.1251493123,4.3322884862,4.7183434582 +7.3280712146,3.6781654954,3.3313086747,5.5510727677,3.7360679081,4.7379668978 +7.9811338456,4.3861846156,2.3854048002,2.6059423341,4.4712011836,5.1429552448 +6.7833633698,4.3740218160,-1.9538574181,3.9250421993,3.4170601485,4.0505465552 +6.2185606035,3.9566154858,-3.8713701454,4.3685185487,2.7759657937,4.9070885233 +5.2956694987,4.2255769140,-0.2116731766,5.0524457171,4.0911086630,3.1226506162 +4.0365575386,3.3016101817,3.3690117450,4.5822537095,3.6312025332,5.6913656934 +4.6810049068,5.2300614106,2.3111491132,5.3442619448,3.1017103434,4.3083977435 +4.9456666518,4.2695292085,-1.0348726005,5.2771366540,4.1987319966,4.4390656908 +3.6593614820,4.9552024282,-5.3683261795,5.3562294223,3.4428886253,3.4635336323 +5.2827233920,4.6390309766,-1.4726661378,5.8360815201,3.7632889618,4.3292725060 +2.9748761638,4.0804387751,3.3282568897,5.6385260787,3.8887055522,3.5795095867 +1.7555754082,5.6751753356,0.2347093508,5.4691783731,3.0063251114,5.3088506333 +2.4946536258,4.5432705737,-4.6882810045,1.1371210533,3.4052114274,4.0338017891 +4.1837113715,4.5781499465,-4.4598039789,4.7052901780,3.1130957877,4.9866189718 +5.3085210813,5.6339773996,-1.8095666664,6.2784917539,2.4224304377,3.2562181349 +7.5222679253,5.1975586925,0.9696265547,4.1505424843,3.1970476474,5.3466105591 +6.8200590087,5.7023631594,0.0740645056,4.6882898439,3.5015153229,3.7552823674 +6.8480498299,4.8436075323,-3.3225275631,3.8945016948,3.4203501697,4.9441955111 +6.0230358608,6.3444892686,-3.7246481005,7.3985902037,2.2197001661,3.6174909754 +1.6807481593,5.0327737713,-0.6355495512,3.2229962739,2.2200381892,5.7877860305 +0.9954359835,5.0417560243,0.7282770164,4.6773650604,3.4550295425,3.6790900903 +1.5259562726,5.1118066586,-1.8704586819,4.2872456308,1.9203846545,3.3477068258 +1.5630882285,4.3582165014,-1.5830002190,5.2044994046,0.8702085591,5.7481364721 +3.7549736606,4.9417926178,-3.2820793975,4.6843268567,2.3862287825,4.8049943889 +3.1347561478,4.4453204210,-3.6822379437,5.0540212912,3.5792494384,4.7122888702 +4.7551048080,3.9378776629,-2.6490462177,4.2725662973,2.9840379940,4.1364634781 +4.2082698296,3.1409692310,-1.2042524428,5.4501655074,2.8114005656,6.0021858696 +5.6402705812,4.0925686701,-1.7623523648,4.5619001805,4.9603288467,2.6290972338 +7.1993518184,4.4137234260,-4.4965975584,4.3581981090,5.3105678295,4.9273905493 +7.8669020921,5.2331140468,-4.6182735925,6.4797990515,5.6655006210,4.5163625326 +7.8714536976,3.6672964830,-3.8940551133,4.5915388423,4.6426489521,4.5252246208 +6.6620595902,3.0355939785,-1.2723473054,3.0138602942,6.8163321820,5.4045144471 +4.4978161249,5.2521093850,-3.4650064045,5.3429068837,7.2013897016,4.1581061166 +6.1283246576,6.5418530631,-4.5628426333,4.9436949025,6.6375981906,3.9406255118 +6.5220264551,4.2874022968,-5.0425206801,4.9485212918,6.3504543941,5.3494718843 +4.4510895412,4.2834860823,-3.5349617184,3.0321139575,5.8234159081,2.8941415378 +5.4808097984,6.0594754374,-1.9563821489,1.8837131152,6.6862023222,5.2219148626 +4.8043061326,5.5141188355,-2.6263416213,4.2600705765,7.0365091954,3.9318148001 +5.7700669097,4.8610108566,-5.1476926175,4.7265886723,5.4205618362,3.7260588350 +5.7173655586,5.4408507780,-5.1364546621,4.4355440192,6.1584584483,5.4794799277 +3.8925816138,5.0810809362,-2.3068849118,4.2498064428,7.6586496576,3.5653920207 +4.6723601100,4.5857886518,-3.7844271012,3.5984666341,6.3284623050,4.8866883940 +5.1788065263,5.3658831575,-3.3018414389,5.7954666953,4.4919931680,5.3950256386 +5.7213013120,6.6501576761,-4.0601845395,7.5590012131,5.8916731125,4.0632080040 +3.5281308348,3.9745947317,-4.9896851878,2.1772754268,4.7090020514,4.5299321345 +4.8112545959,3.5777349034,-3.6091231986,5.3495585332,5.1315875674,4.9364072796 +4.1046099156,5.9431644946,-2.6105506282,2.5418436307,4.9643847916,4.5440333600 +4.1238367663,6.7856118344,-4.3104945987,3.0309885808,5.3730937799,5.0621723108 +5.4671409847,5.3116757589,-4.5986043694,5.1640171184,4.8281435005,6.0957909547 +4.4613307689,5.9844762021,-4.1307661603,7.7834588913,4.4252395000,3.7986799438 +6.1239080938,4.3681850438,-4.0183666238,5.2702779474,5.5016254226,5.6058704761 +8.1695895936,7.0755914835,-4.1402801866,6.9888930084,5.9117620844,5.0952883614 +6.1553397100,4.0253093238,-3.8123182255,4.0429661280,5.7458947385,5.5943447865 +5.5762879307,5.4272497595,-1.3509815126,2.3628454411,5.7334745066,5.0309046708 +4.6510959827,4.4060563788,-4.0185982913,4.3503406608,7.0383263448,2.7764510697 +4.3937445801,4.2164179089,-5.7752393012,3.3721140006,7.3354890534,5.0298687589 +4.6485046523,5.8003316399,-3.7068433469,6.1864409021,4.8265868072,4.3257498201 +5.5432768763,5.3616256875,-1.4690539579,5.9594715658,6.2113574687,4.1184653273 +4.9730140024,3.9979622530,-1.1349706431,3.3365665189,5.5085115016,5.3790023068 +6.1354492822,5.2689521336,-5.4720260233,2.3000494947,4.8668057001,3.0953995259 +5.5534922764,5.5697732143,-6.0784183683,4.7822332426,5.4202956337,4.8640532445 +5.2701602338,4.8440319254,-2.3497684497,3.4318312617,4.4038921604,5.6247521301 +5.2164315582,4.4585601367,-1.5189016651,3.5816143672,4.5822998363,3.5462491131 +6.2100101494,6.4294568906,-1.8694872463,3.8844018859,5.6762561373,5.3476377449 +6.2038226387,4.6346828728,-5.3046424746,6.6944579861,3.7811032135,3.6481002194 +5.8594613418,5.4361774743,-5.1045811376,5.6684597016,3.5414093939,5.4863699272 +5.1312954448,4.2963380613,-1.8461795794,2.9615017457,4.3934480684,5.1338314336 +5.0707564699,4.8019530509,-1.8754807455,4.2126570200,5.4483140643,3.2186875877 +5.3024642744,6.0227866824,-3.1525505964,3.1728831067,4.7570224997,5.3293573088 +6.7879927759,3.5341819252,-6.2076311366,4.1674001246,3.4233785395,5.0933414819 +6.0959154220,5.6666787812,-3.9985134848,3.1286485921,6.0090104933,3.2355050788 +4.8770092475,5.5071911462,-2.2402244446,4.2458555556,5.3319928535,4.5508172645 +4.6462822076,3.7518689113,-2.6677735581,3.5140694681,3.9302443031,3.4693742748 +4.4493063305,5.3523679747,-4.2833733602,4.4677866226,5.3261432467,4.4750702044 +4.8519104039,3.8704625972,-5.7434472532,4.7589839275,4.7355905046,4.2638381759 +4.1761724219,5.2475077356,-4.5719566477,5.4033924769,4.7243287703,3.1805946558 +3.6216295088,4.5481247568,-2.4212825459,7.3032754131,4.1663012143,4.6330886685 +1.4077245453,4.5433220483,-2.3759544201,4.8974510868,4.9454567083,5.3929741696 +4.0636335345,5.5540880159,-5.0368208549,2.5971037081,5.8474307271,4.0875864261 +3.1755581314,4.8797047351,-5.5786338133,2.0790017788,4.8688312101,4.1328612125 +4.2383507502,4.0432364540,-5.3234953644,5.3476684201,5.0191255136,4.3701405208 +4.8666980186,4.3842779297,-2.7061080702,5.3733806734,6.3115616415,5.7961596186 +3.5006748019,5.0326780821,-2.4626290230,6.1317759485,6.0701470343,4.7742381918 +3.8758838647,4.7620609155,-3.5447255805,2.4007482876,3.9938498188,3.9842301787 +4.5595618905,5.7164547880,-4.9470800659,5.4151564210,5.0136159400,4.1117493504 +6.2023217953,4.6585043199,-3.8157672796,6.1377982947,5.1851163641,5.1680961326 +6.6614906175,4.4862497262,-2.6839089723,6.6469325172,3.0866338668,3.8208368790 +3.9330122023,4.8931946185,-1.8890933487,3.6418136321,3.8294624324,5.5142152207 +3.3624266139,5.7000992690,-3.0593470590,2.4752063660,2.9488767049,4.2701185945 +3.1964625939,4.6574808863,-4.6629639060,2.8498792195,3.9731733634,3.7515961108 +5.9142384115,5.2115779252,-3.5339673537,2.8421070411,4.2028899258,4.5456089182 +4.2795018321,4.1438177734,-3.0497450887,5.3677632986,4.6646717740,5.2503284794 +6.8544789979,4.9168715809,-2.8841045580,4.0102387905,4.7739250489,4.3592520289 +6.5785072521,3.9712129002,-4.0537997178,4.4817181331,5.4048491545,4.1364356484 +6.0225496469,4.8196761345,-4.9419951771,5.0627116887,4.6007970347,4.5203158989 +5.0340614613,5.3113546917,-4.4852476141,4.4424632683,4.4686906053,4.3562024316 +6.8149029635,4.7764049759,-5.0927131551,4.7192587658,4.3400682662,5.1750095538 +5.7572216048,5.0852399903,-4.4719361336,2.3228060531,4.2754642787,4.1667433111 +6.1940809022,5.2030355864,-4.8574647529,4.0975703123,4.3798271060,4.9595683458 +5.5200884428,5.0060145767,-5.9975721396,3.0213633819,3.6806872558,5.2729580918 +4.2745663125,3.8635605519,-6.0675414963,5.9154958287,5.0815281661,3.9769449600 +2.5406332233,5.5287260018,-4.9707983262,6.0247077915,5.5070111460,4.6070789902 +3.3371378536,5.1182959756,-3.0582767542,5.6586511879,5.1252984641,4.6317077025 +3.1891145313,4.1874172320,-4.4072190418,3.7299708526,5.1210920027,4.7838976350 +2.2880847678,4.9543964123,-6.8577933075,3.4404997138,4.3457624987,4.9474460358 +0.8607358563,5.6506140689,-5.9942480303,5.3725082210,3.8214240645,4.8585516794 +1.9090115009,4.1736808673,-2.3648347905,5.0045345282,5.0848408317,5.9477653341 +1.0908043975,4.4115406105,-3.1526538834,4.8691525334,4.1978011210,3.6659718879 +2.5045794681,5.6107177077,-4.8068027320,5.4057595053,4.0101649849,4.5170053684 +4.6660373235,4.5297637335,-7.3279702149,4.2244469007,5.6704477211,6.0418472102 +6.6208094353,4.3177646969,-4.8495994534,4.1942279008,5.7960911223,5.1633893474 +7.9045975935,3.7364557935,-2.7469931299,3.7945467363,4.9378715397,4.2277078776 +6.7112183950,3.9552771862,-3.4322933169,2.9962289039,5.2336807114,3.4118360601 +7.6085801115,3.7984965006,-5.9676742032,4.6716328208,5.6770068511,5.2033915267 +6.5053711455,4.0031176792,-6.8983003181,5.3939807076,6.1822277179,4.6650915721 +6.5392019374,4.6429055517,-6.5390704399,5.2874269484,5.0617439792,3.9017260341 +5.2270108094,4.4630710638,-4.5972120007,4.2644612926,5.0302578587,4.0848685617 +5.5496858310,4.4487542973,-2.8009740648,3.3284628309,6.4133470233,3.4924372586 +7.0371776295,5.1454992863,-4.8038202052,6.5027008055,4.4580512069,5.0688646792 +7.2790384455,3.8305558589,-8.1285657006,4.3740292327,4.4175186905,4.7331314804 +5.3199184459,6.3595515832,-7.2493819308,6.2083486089,5.2600325748,5.6580023585 +4.9934556650,7.1111584018,-4.4671418166,3.9620028681,3.2784158628,4.4464836987 +4.2819567954,3.6290831153,-2.5447505490,2.9033094916,3.5047785669,5.0902289931 +3.0568943057,5.9647541508,-3.4066125502,2.1135453933,5.8188088953,4.4457507456 +2.1304712729,4.5839043211,-6.4217535278,3.2185677448,4.1073127271,4.7816574459 +4.8147659877,6.0868954346,-6.5795439179,7.6120198292,4.6210328822,4.6511473511 +5.8070914019,5.5745830940,-2.8701479375,6.2934298224,5.8679003369,3.0686975933 +3.6115552732,5.6051241927,-0.1565133541,3.0892597963,5.6292173358,4.5247718332 +2.9239742918,5.0645079050,-3.0106595660,2.8086948758,5.6505592764,5.1831295785 +4.3273263869,6.0094500831,-5.5392347499,5.4083365583,5.2901205135,4.5164771585 +3.7841411819,3.9431576374,-5.0346292184,4.1872625796,5.8242205935,3.5092717707 +2.9439589660,5.6025452125,-2.4836601202,4.5822132922,6.1914037917,5.4666134801 +2.9523695391,5.0410134987,-0.7558311054,5.0598205196,5.7990047238,4.5474676004 +2.2194426369,2.8717922780,-3.8104258303,5.0531065528,6.4355422054,4.4086296771 +2.2286583798,5.4099611913,-6.5740490807,4.6269428270,6.2346414362,4.5851645672 +3.0675309699,4.3586276188,-5.5960189493,2.9169547205,6.5151270777,4.6699692987 +4.4460740436,5.2961663528,-2.2639887009,4.3943373517,6.1833794642,3.1948426841 +5.1845831627,5.2075777558,-1.9983201220,2.6474402228,7.0406625177,4.2990464928 +3.5553859823,3.8846966161,-2.9711761962,6.5383306526,6.3769610301,4.5680337551 +5.1368821707,5.6189015736,-5.1948266433,9.3372897936,5.4303467101,4.1543003104 +4.7166452225,3.4762764160,-4.7996852767,3.5709426391,6.0709400596,4.0162537375 +4.0655064696,4.8679798824,-2.5257817203,-0.2397540472,7.4430134883,3.9741481384 +4.8739646478,6.1001218568,0.1309412790,3.9178609675,4.7876906875,5.7503016926 +3.2036693337,4.0978865218,-1.3996139990,6.6508999867,4.6941532361,3.2454641348 +4.7404405197,4.0877490842,-3.7645785945,4.3435381982,6.8122472905,4.0582880196 +3.9524198102,3.0605371217,-2.8759647346,6.5352019477,5.1398339218,5.4600301737 +5.1156643408,3.1298905115,0.1325467265,4.2355351326,4.1474944903,3.6031137112 +6.6783762367,5.0939390625,1.5048033372,4.8953245397,4.4007169152,6.0441346235 +5.1757050832,2.3866379586,0.0443435711,2.9547869931,4.3714863561,3.6838266160 +5.3307733146,5.0024969355,-2.1842578899,2.4141336352,4.2150618862,3.5282264202 +4.9625892048,4.1347588039,-2.6512376363,6.7856744153,4.0409769865,3.5442862768 +5.1941150714,5.4732915830,1.2894533068,5.9372271540,5.2995430730,5.3587242672 +5.7842645137,3.8712216053,3.1499162931,7.4436349050,4.8329832398,4.3608245532 +4.8817417798,5.5837321696,1.0092497588,5.4831170612,5.2140420248,4.9816943324 +3.9102292878,4.5787311311,-2.7490211779,3.9868229598,6.7003222520,4.6231462773 +3.7104173166,6.3020864130,-2.4687305447,2.5978512267,3.9219762100,4.8640467589 +2.6969414480,3.5627605456,1.9264159841,2.9392001484,4.3075157645,4.5246176769 +3.1021142802,4.4852079467,4.9896603230,4.0170818602,4.8452548954,3.6551728846 +1.9498933374,5.1335954089,1.3907402820,3.9319088353,5.2717133432,5.0288914923 +5.3022616650,4.8500804218,-4.3388057198,3.7600673234,4.9716484394,4.3383128810 +2.8381666261,5.5680553555,-2.5366843969,4.7642074766,4.3406980043,4.6799907608 +2.5103293788,3.1495788140,2.7225753380,4.9935148390,5.5794567272,5.5523926628 +4.0647003336,4.5231525968,4.0833849317,3.6763204386,5.9614121030,4.2830503713 +5.3192407560,4.8920386478,0.7357547931,4.5268430470,4.3460743252,4.0771200785 +5.5757491351,1.6517485430,-3.5749591267,6.3889723180,3.6970456936,4.6004392063 diff --git a/statsmodels/tsa/tests/results/yhat_exact_nc.csv b/statsmodels/tsa/tests/results/yhat_exact_nc.csv new file mode 100644 index 0000000..30f3568 --- /dev/null +++ b/statsmodels/tsa/tests/results/yhat_exact_nc.csv @@ -0,0 +1,251 @@ +yhat1,yhat2,yhat3,yhat4,yhat5,yhat6 +0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000 +-0.1783189711,0.8022781482,-0.5025472512,-0.1714754341,-0.7321341350,0.0219630653 +0.3481346485,0.0388387795,-0.7762924454,0.0793448919,0.1866410497,-0.2483738064 +-0.3190244039,-0.5279474797,-2.5981665507,0.5332326724,-0.8098594374,-0.3094605088 +-0.8825750195,0.1100657671,-0.4215685695,0.6344400376,-1.7147194011,0.2504219684 +1.6559073128,-0.0825049146,-0.0315786910,0.4096874072,-0.6583446506,-0.3984331448 +2.7929159906,-1.0659788189,-2.5383702134,-1.9756512744,-0.4499375785,0.2988299030 +2.1819905068,-1.1210762010,-3.2975733628,0.7677510599,-0.9591895768,-0.4934820821 +1.9709227040,-0.7451505389,-1.3316813588,-0.8314441799,-1.1055031411,-0.6105067979 +2.3658425361,-2.3453822264,1.3078446108,-1.6657978212,1.2675237409,-0.0604158194 +3.2090806075,-0.1955049437,-1.5246271406,0.3763836008,0.4297652112,-0.4227791702 +3.5482186423,-2.2776458806,-4.4361593505,-0.0556052066,0.6266927159,0.1615706191 +1.1210339187,-0.2236055802,-3.5147385094,0.1570627755,0.3724256665,-1.0647514377 +1.2196765600,-1.1427061585,0.9493072568,1.0936082914,0.8008222619,-0.2398066095 +1.1506094722,1.3372609611,1.3991583232,1.5469247667,1.0332483739,-0.6255077362 +2.4498953427,-1.3969309880,-3.8230420279,-0.3929631998,0.5137494209,0.3512009236 +2.8230021912,-0.9194544140,-5.1917349319,-0.1010002322,-0.8347965797,0.6950949656 +-0.2383463005,0.1968746103,-1.1747573022,-1.1962935664,0.7707353971,0.8145418941 +-0.5343925269,0.5870245707,2.0048360062,2.8109644942,1.8170286526,-1.4010434502 +1.5358283323,-0.9185545315,0.0481956402,-1.8493078126,-0.3774457909,0.3949685480 +0.5828628586,0.1694481055,-3.7173639983,-2.6602145678,-0.0659440828,0.3534662405 +-0.1568638250,0.1750288187,-4.9325440736,-1.7754948156,1.1335237486,-0.1587092292 +0.4462539796,-0.3075852089,-3.4997838228,0.9022564250,0.4624984170,-0.6135867572 +4.1167787457,-2.7018076111,1.0519264908,5.9570432456,-0.1930432852,0.3876166434 +1.7792573412,0.3626539948,0.0910523508,1.8461674689,0.3371048515,0.8150470185 +0.7403468511,-0.3439238586,-4.0764027788,-2.7950696060,0.9108965518,-1.6488625319 +0.6909661745,-1.4111117545,-7.9166117181,-4.2117122331,-0.7569881099,0.2449516546 +0.8713791223,-2.3036090706,-2.9846576891,-1.0732313985,0.7959865309,-0.1008620861 +1.2555830400,-1.5862173362,3.7196581692,2.5850251003,1.5224522323,-0.1380208387 +0.9274590883,-1.1058286075,0.8583093731,-0.8389331253,-0.0393412919,0.0151260870 +2.2739798719,-1.7360941488,-6.4705204375,-0.5525659273,0.4548254253,0.9354419371 +0.8182619893,-1.4525370311,-5.9251232541,0.9955244080,1.2315984266,-1.5349964262 +-0.3124674229,-1.4929083163,-0.4681968476,0.3227618928,0.7093311114,-0.5030600188 +-2.9948952356,-1.0002207678,2.1078884430,-1.9210746741,-1.0955841550,0.2244250258 +-4.3405479539,-1.8332177146,-0.7027791404,-1.5803831414,-0.3399908525,-0.1798679638 +-4.2252183708,0.1897779513,-5.2460676751,2.2310426375,0.9121520237,-0.1722476111 +-2.4957022226,-1.9519621945,-5.1888441176,-1.9029518769,1.2307717687,-0.2226184572 +-3.3808127733,-3.4523844506,0.0377425637,-0.8053473654,-0.8988082411,0.6195317425 +-2.3377533324,0.7091174458,2.2011068544,-0.5571715875,0.8190825054,0.6717440102 +-3.0243309828,-2.0873178471,-1.6615994034,0.6080560191,0.6720234797,-1.3991069083 +-1.8290329321,-1.2269398121,-5.0933774932,2.1880187410,-0.0544848962,-0.9159974149 +-4.1641855848,-1.5356332131,-4.6200945950,0.3748045104,-1.1575830198,-0.5928948438 +-3.2569117196,-0.5666574331,-0.8136139135,-1.1496885641,-1.5119176456,-0.7257292810 +-4.2778313122,-2.0446017418,0.3800326008,-0.2313700353,-1.2678218311,-0.3861426125 +-4.2752918024,0.0873971257,-3.1261809521,1.8635547176,-2.0145137243,-1.2019049762 +-4.7262537634,-0.5160014905,-5.9423033274,-0.8258793657,-1.7158036293,1.2364280075 +-3.1646923559,-0.8687268419,-4.4759012404,-2.3058696690,-1.9032343373,-1.5184222130 +-1.9589860913,1.0376874814,-0.8247172533,0.1936837760,-2.5321627771,0.5105783404 +-2.3549103130,1.2555984879,-0.3671737029,-0.3623083391,-2.4903494628,0.3328874299 +-1.3491400795,-0.4428013841,-3.1872336788,0.6465250385,-2.6207216272,-0.8122166961 +0.5441214887,1.6633642383,-6.0673405064,2.7054038367,-2.3213334408,-2.1969947086 +0.4486369077,2.8242009941,-3.1195537292,-0.6398966453,-2.8454152613,-0.7753943000 +0.6382836646,-0.6627841821,-0.5351079275,-0.5164471015,-2.0235567680,-1.1151161260 +0.4506387307,0.7646249440,-1.9738330655,1.6699646553,-1.7819861284,1.2761479297 +1.5197010785,0.8676705267,-2.7723609056,-0.0290403799,-1.9458789437,-1.0450449112 +2.6532836382,0.8078444751,-4.8249391350,0.4024259563,-2.5222178486,-1.4336030618 +0.8799670175,0.2110557883,-3.1501635867,-0.2506475494,-0.8568033910,0.4164282234 +-1.1055653857,1.3948447407,-1.6908470214,-3.5922789224,-1.8005325064,1.3031809186 +-0.7636333424,-2.3280698433,0.4971685047,-0.7677190264,-2.2732985207,1.2979164371 +0.2987989437,-0.5560606183,-2.7061215227,2.4162571913,-0.6510896094,1.1126805448 +-0.5709942246,-0.2300173494,-4.4549612949,2.8700464698,-1.3442908063,-1.0594541521 +0.6141923120,0.5272781290,-2.1617512398,-0.4138712127,-1.1889043530,-0.8462020427 +0.4042095605,-0.0156437159,1.6137494761,-0.7068779744,-0.3314796865,1.7410469329 +0.3791169474,-0.7456785708,2.3112858629,-1.5571890993,-1.2586354815,-0.6869085942 +1.0601272390,0.3841244316,-1.1805405351,-2.7477358608,-0.3513488847,1.1099137501 +1.7715813985,0.7020905498,-2.5695859797,1.0068893858,-1.9436224604,-1.2021309808 +0.1866449949,-0.1483596632,1.7503169035,2.3622012140,-0.5856280687,1.0800823655 +0.1570042140,0.8539840747,3.2184354144,0.7312222769,-0.4427329856,-1.4614169181 +-2.5948540683,-0.0596820693,2.0119291535,-0.3223355457,-0.8759143533,0.5174901753 +-2.6178065924,2.4760908505,-0.7600044408,-0.9059233664,-1.0887236546,0.3469865572 +-3.3998541117,1.6738771402,-2.1896719318,-0.1469506051,-0.7756421096,-0.0179649840 +-4.0599058016,0.3384886286,0.8078613592,-1.6510340466,-0.6758753108,0.0012986289 +-1.7566765419,1.9964889442,2.4661478718,0.3431566067,0.7098159871,1.2927419826 +-0.5223752973,3.7742253914,0.2053689640,0.7742258813,-1.5664990963,0.5869684684 +0.4084973347,1.1162901544,-2.3619670781,1.2798712881,-0.9566367853,-0.5943537538 +1.4554844110,0.6005405101,-1.6337847690,1.1063644596,0.8973975020,0.9117181367 +0.4743796722,2.1864394218,1.2697151229,-0.5834103501,-0.5251298906,-0.3200545050 +-0.3428219882,2.6291281507,0.4276627515,-4.2146499965,-1.1636748270,0.2287771081 +-1.3232480892,-0.8999102294,-1.1792031224,-1.2314324443,0.6830780853,-0.7010149167 +-1.8125295718,0.6113331689,-1.5030241844,1.0361356595,0.0981281005,-0.8995675399 +-1.0828983358,-0.0587224939,-1.3186734866,1.5872722926,0.0877770731,0.4568683189 +-0.7663925038,0.2025879234,-0.5438211752,-0.1031174361,-0.3950183925,-0.5935717401 +-1.9260546036,-1.8244994352,-0.0551115196,-1.6998148506,0.1771587437,0.6136160703 +-0.4470884341,-1.5895429892,-0.8788606997,-0.8286207952,-0.4427280013,0.6056648814 +0.1257983641,2.1914165288,-0.9010476848,3.6526890467,0.9705721429,-0.8442095815 +1.2786944720,-1.7864605038,-1.1993654242,2.1037032191,-0.1200732727,1.6616848343 +3.0563553157,-1.6049824597,-1.0615217875,-1.7164316590,-1.2990185770,-1.2383445937 +1.0716342300,0.8375434022,-0.3887108722,-0.7594975836,-0.0756489076,-0.9004821475 +1.8565735390,-1.3610564150,-0.3268181099,-0.5956988128,-0.1281018513,-0.4352506952 +1.1848740607,0.3556940726,-2.0418080839,-0.6427010898,-2.3591038934,0.7529811177 +1.9817420987,0.8962843908,-1.5822678536,-0.6519925180,-1.3847358736,0.3026805758 +1.6629355891,0.3091929780,0.4706845704,0.4012301261,-0.0634348275,-0.6721266025 +3.7956258353,-0.8240620851,0.1576223874,1.8211815947,-1.2864546699,1.7300670478 +2.6278364609,-0.4323077896,-1.9491982194,0.4720196092,0.0912322902,-0.2957753767 +4.3521613900,2.0856483159,-2.5401446231,-0.6568281396,1.1187475503,1.1244135636 +3.2102998856,0.0764644609,0.0529985788,-1.9249727358,0.7671721274,-0.1470482329 +3.3710311228,1.1718428997,0.9611368947,-2.4969502577,0.6724019054,-0.7201496857 +2.6244298605,1.1228599035,-0.5548412927,-0.8261646075,0.4277181974,-0.5842865545 +1.1040313561,0.0864875681,-2.4213242260,2.3260334248,0.5115863109,-0.9175897220 +1.5359659926,0.9057242293,-2.2263725203,2.5189710609,-0.2537877938,0.1824501296 +1.2999491789,-0.2896366275,-0.3870522068,-0.5327386996,-0.3157562036,0.9240254609 +-0.8511809674,0.2720412981,1.4428210073,-2.1674351900,-0.1654234731,0.8123180801 +-1.2407499282,-1.1463678713,-0.6961632853,-1.0010920390,0.7370867238,0.1407407508 +-0.9692167370,0.7976437700,-3.4150110125,-2.8440437532,-0.7217810756,-0.9516619915 +-1.8126855036,0.0586400436,-1.6329973015,0.1223030554,-0.6242217633,1.3977403665 +-1.8902027659,0.7408255349,-0.1541204772,4.7342937270,0.7032352850,-0.7728972226 +-1.4551306180,1.0053330121,1.7527703630,2.9857269540,-0.1652489282,0.2982028917 +0.1899676761,0.1117248104,-0.2974004158,-2.2914934547,-0.6523827137,-0.7094749829 +1.2498475861,0.0635343936,-2.9792085831,-1.1238192728,0.6625572500,0.2270403324 +0.2265359427,0.3604168854,-3.3855564773,-1.3613452927,1.8761534251,-0.3290342055 +2.0508086154,1.7930198869,1.3062786758,-0.2923802953,0.8098665429,0.1942358276 +0.8490891009,0.4300476601,1.6832498240,2.8445505609,0.9696915982,0.0453008348 +1.2181142804,0.0021391413,-2.6018640112,1.9588525724,0.7839892530,-0.2212727113 +1.9671105131,1.4518513917,-4.9773018866,-0.2263853068,1.5336382285,0.2667116413 +-0.3824034165,-0.7023106459,-1.2157568079,-1.7625127621,1.0681830021,0.0548626848 +-1.4168288009,0.3173185649,0.3966970801,0.9266456684,1.1467266899,1.0783139089 +-1.5213818254,1.9941492621,-1.5504022693,0.5449771021,1.1010370714,-0.5725669458 +-0.8728563506,-1.6405651136,-2.7984335195,-1.3287778626,1.8112662715,-0.7613059513 +-0.8930472642,-0.9742220439,-3.3894928531,0.8320819873,1.5448850205,0.0165886191 +0.1250915825,1.5504269091,-2.4914027553,0.9452870846,1.1324295196,1.1501433890 +-1.8652757779,-0.6818472965,-1.6163238444,-2.2579986864,0.5608115835,-0.6140196319 +-3.9626826323,-3.2092344563,-1.4233404934,-0.5331121887,0.7776151278,0.8829388005 +-4.2813759648,-1.1971645598,-2.8329322691,-0.0407892772,0.9729145885,-0.6540706786 +-2.7752413032,1.1579217827,-4.6927384743,2.6287925977,2.1101506790,-0.5005567646 +-1.2813490554,-0.9004251582,-2.6890460151,-0.3193061440,0.1636948521,-0.1900067337 +-1.3002128250,-1.0133315331,-0.9856593216,-0.1865643066,1.5641926098,-0.1289767473 +-1.1209432392,-0.8356231294,-1.0253411276,0.0783527779,1.9933869365,-0.0983934093 +-0.7160549811,-0.4361486921,-1.5207093122,-1.7016476683,1.3334599846,0.0180016686 +-1.2503359119,0.1208554565,-2.9650761748,1.0694129984,0.6724434919,1.8371689133 +-1.4019149923,-1.6212630600,-3.4998869286,0.1470408971,2.4563386746,-1.4115525949 +-1.0649476783,1.9552219709,0.0439555888,-0.9930014500,2.7184885336,0.0402019355 +-2.2330511144,0.1328346633,1.0804783938,1.1586583868,1.6162692911,0.5528921341 +-3.7359587094,-0.5792375455,-1.6798817725,1.3804925853,1.5271472164,-0.1963872748 +-0.8396070361,-0.5144901897,-3.9298730444,2.0499648200,1.7442357509,-0.0174545482 +0.4480116858,-0.4000748258,-1.4340057500,-1.8562251679,1.5143578190,1.2500905323 +0.8655230824,2.5402904023,0.5041406189,-2.4285315078,1.4279204392,0.5851469388 +1.2842021684,-0.1895294291,1.4358162463,2.0238232693,1.4914819871,0.2014324034 +2.4772377123,1.7439596597,-0.2831525951,2.5245902582,1.2454449659,-1.2664721370 +1.2995247423,-1.0811317817,-2.4909705166,-0.3781073580,1.1141963772,-0.1697198945 +0.6547440333,0.0739974874,-0.9122184142,-3.1224952598,0.8958961277,0.2349331971 +1.0734662321,1.5064198359,2.3641023134,-0.7487764855,-0.2702981944,1.0171453552 +-0.1772220022,0.2844991198,1.4007363409,-1.3935309849,-0.7432409353,0.3624311814 +1.4499995860,3.9949663017,-2.1643535040,-0.1362666439,-0.6588565073,-0.7313355419 +1.6184745724,-0.1070057245,-1.5717090504,2.4389179627,-0.5686134794,0.3808346092 +0.4545150240,1.7575456936,-0.1789339141,0.6206301702,-0.9812633351,1.3699585826 +0.5819679587,1.5456178088,-0.6532141971,-0.3903061051,-1.1788864076,-0.0715962819 +-0.0373922749,1.8481406871,-1.2425672267,-0.2366133231,-0.3735460392,0.0791485023 +-0.3262154627,0.6416151927,-2.5569517603,-3.1998385992,-1.8157020851,-0.4604962194 +-0.2624085386,2.4813483132,-1.7352642290,-1.0060486877,-1.9444980697,-1.0135944700 +0.5990810057,0.3946008799,-2.7206275074,-0.3907168865,-1.2286655680,0.7884430659 +1.1677925264,0.9823999162,-1.9838418190,1.9009855885,-1.9936268413,1.0648990157 +-0.0242419526,1.6579778352,-0.8622162642,1.7166379289,-2.6519621439,0.2648565010 +0.8556630805,1.2571180247,-3.1940126129,3.0023183245,-1.2097113532,-1.5028756793 +0.2461674432,1.1154821310,-4.0562078792,-1.3976721932,-1.0659690380,-0.3586432882 +-1.7523734581,1.0831009776,-1.1328555090,-1.6448655080,-2.4805259305,0.0748449557 +-0.7622735321,2.5445968520,-1.3474118386,-0.3827524011,-1.9358082418,0.1161464833 +-2.4375071354,1.5792885795,-1.1888045215,2.4747579219,-1.4298899073,-0.4531675605 +-2.1863110474,1.4562343820,-1.4793189060,-0.1090743558,-2.6900725310,-0.4802472553 +-0.4295401364,1.5164984377,-3.5881853261,-1.2054182408,-1.7403355445,0.0814455794 +1.0718210343,0.5952710786,-2.1797750765,-0.9424338382,-3.0032189093,-0.5242828063 +0.4814657742,0.5249362122,1.4810189187,0.1743829464,-1.4367616036,-0.2111740114 +-0.1043525855,4.1977626861,0.5216887365,3.4711021841,-1.2225734080,0.4539091272 +-0.2076617475,1.3109175187,-3.3774029545,-0.1238587343,-2.4442355674,0.3851996185 +-2.3129893767,-0.4272436071,-6.2822835056,-1.4152249750,-0.8338866836,-1.6276427077 +0.7541465227,0.4445037065,-1.8000591047,-1.9044228390,-1.1117013488,0.1474174057 +-0.4465488058,0.3426857597,2.8538663169,-0.7484703140,-0.9396405954,0.3793901820 +1.4186167514,-0.4192502254,-1.0352231211,-0.1491560044,-1.6702950735,0.4290059104 +0.8549718861,-1.6433666592,-5.9582723784,2.0410661876,-1.2083944797,0.0727152875 +2.1120637429,-0.3111954216,-5.0111825305,-0.1490941110,-1.0730858180,-0.0384131860 +3.7729753634,-2.8781244821,0.3742125184,-0.9779334936,-1.5277982950,0.9679474460 +3.6542389088,-2.1083019103,1.0789240199,-2.5940151708,-3.1028774639,-0.6058180272 +5.3349823115,-1.7365829113,-0.2619387883,-1.1070437203,-1.2150521322,0.2637801316 +3.1268827980,-2.1346173214,-4.3615621881,0.2289021736,-1.7632557039,-0.3819127673 +3.2519010915,-1.5666295614,-4.4176521774,2.7181319217,-2.5492504107,0.1082970178 +1.3740433163,-1.1125334935,-1.5630197132,0.4084797179,-2.3907615779,-0.3538469698 +-0.3392089132,-0.9764982955,1.2301954749,0.7585873959,-2.6051499434,-0.0260258437 +-0.7793716773,0.4441483493,-0.3260806117,0.5675130184,-2.0031851055,0.7302679880 +-1.6525897375,0.8631620874,-2.6442323919,-2.6731892614,-2.6712739933,-0.0745754515 +-2.1897934509,0.9086395532,-4.4451183497,-1.5390337843,-1.0030057516,-1.2302494243 +-1.1138465131,-0.9762150011,-3.3553610967,-0.7983483421,-1.7801110831,0.9945025296 +-1.5116890598,-0.5288542986,0.8494062751,-0.6088902784,-1.6935881967,-0.0804103403 +-1.7680809037,1.1475924778,1.0062765761,-0.1497311711,-1.1094577937,-0.6952651862 +-1.7523820122,0.2172115515,-2.9357174308,1.7893529399,-1.1224428991,-0.1881616411 +-2.3884344544,-1.1202131470,-5.7612985154,0.6713807325,-0.5750085736,0.3563675558 +0.2931547679,0.0466529228,-3.6017649228,0.3518818293,-0.2230696301,-0.6098595622 +1.5586506828,-0.5765740080,-0.2909920070,-0.8763594313,-1.7758693967,-0.3695068467 +2.6395925237,-2.6153018576,-0.2728753983,0.2360621960,-0.1399368585,0.3326980085 +0.7981638702,-0.0445198177,-2.5387682995,0.4804590954,-1.3718574215,0.0824322437 +-0.0921250407,-0.0221316898,-5.5770578234,2.0309712020,-1.1184679531,-0.7870188278 +-0.5284000069,0.8538801836,-3.4588149965,1.8674792420,-2.2126137375,0.4578480052 +-0.7217203578,1.4126146061,-0.4063564512,0.4030744193,-1.2131063992,0.5307676195 +-1.3948931843,-0.2674722234,0.0175201241,-1.0068911460,-1.8862011079,-0.5981455166 +-1.8735467110,1.8116816647,-3.6025131711,-1.1815889680,-1.8564908345,-0.3413296061 +-0.4060974323,1.6628946701,-4.4260528884,-1.2552626442,-1.8576330851,-0.0749022192 +-0.0301311474,1.9279826136,-2.8449486278,1.4206422449,-0.7022680094,0.2865090459 +0.8259012764,0.0607134489,-0.5240789186,1.2564691179,-2.7766211883,0.0389251833 +1.6569259487,-0.5401595669,-1.7934613892,0.0898480083,-1.9480861217,0.2500050562 +0.0250172882,1.2919759990,-4.9213401805,-1.7194346825,-0.1194241881,0.6790874598 +-1.5885071693,0.3557109932,-4.5037747423,-0.5542074345,-0.5824444108,-0.1737813057 +0.3606805309,-2.6410107058,-1.4282638635,-0.9812648815,-0.8719853138,0.7281875326 +0.5042367665,0.3272914000,-1.9458345514,1.8368949935,0.1426576459,-0.1155751694 +1.7116841946,-1.3419253550,-3.8790955680,-0.5429955877,0.9180592376,1.6106795141 +0.5713230237,-1.0279868656,-3.6429959983,0.7095592582,0.6321300515,0.1279294588 +0.8297285478,-0.2475638936,-3.4013311484,0.8754590236,-0.0130833912,0.0680232654 +-0.0798568998,-1.3848602914,-2.4662910020,-1.2184170484,0.0366583738,-1.2317008718 +-1.3958764848,-1.0422433619,-1.5509026730,-1.3753244825,0.0732867940,-0.2511593134 +-1.9809578251,0.2093175475,-2.2413219707,-1.0856967237,-0.0452509227,0.4209788064 +-4.5615913311,-1.7164813371,-3.4645632276,-0.9866729228,-0.6946507691,0.6356840057 +-3.5089874335,1.0357439399,-3.0541773162,-1.3095915191,-1.0381416372,-1.3436236473 +-3.5408033688,-2.2505705109,-1.8926610569,2.3300577425,-0.3279427662,0.7769781033 +-2.7716883286,-1.3059871787,-1.2677386737,0.6807427993,-0.5362105759,-0.7414953765 +-0.3833824698,0.4783876773,-0.9768972562,1.4194967320,-1.7658957148,-0.4922793137 +0.3753362302,-2.4705260227,-3.2994043724,0.0374146068,-1.4989944409,-0.1077669226 +-0.2997670025,-0.4700555282,-3.7866976029,0.3206688162,-0.5785678759,0.4135944532 +1.2459176292,-0.9182353863,-1.2537723305,0.8194149569,-1.5889323840,-1.0019921528 +0.7219705499,-1.7420497454,-0.0510096850,-0.0749727048,-0.8060996780,-0.6388339120 +2.2404862053,-0.5683991422,-1.8386025507,-0.7525785711,-0.8565325697,0.7279608048 +0.6264065513,-0.9797188331,-2.2915769846,0.4974650280,-0.1908098176,-1.1933227060 +1.2313195610,-0.2524204467,-3.5495934954,1.4880381433,0.2060950618,1.1208005818 +2.3585163828,0.0699417054,-3.3337948073,0.7291312325,0.0334544634,1.0389100177 +1.4395618963,0.1898197299,-0.0651467933,-1.5222724810,0.7871502459,-0.1505139527 +0.5792016952,0.0282842788,-1.0815792420,-0.1921602022,-1.0681695819,-1.2379870359 +0.9910270042,-0.0383697880,-2.1905731918,-1.4530607123,0.3965624818,-0.1159159679 +-0.4027082823,-0.3524741915,-4.5395124721,0.9843638297,0.1752483979,1.0589430282 +-2.3934561119,0.4958762748,-2.8169763461,2.3938783898,-3.1028647588,0.3630654055 +-1.0119956793,-0.5851394502,-0.0863233667,0.8541492764,-1.9050816384,1.0101338922 +0.3951863429,0.1730843225,-1.3423503081,-2.0563670427,-1.4448693470,-0.4008797162 +1.5706272587,-1.2578025824,-1.8934536112,-2.6898235059,-2.6907137325,-0.2481786602 +1.2514779772,-0.3787382666,-3.0387517878,0.6925260742,-2.6805748890,-0.0429137010 +0.5380821068,-2.3874938512,-1.9865802055,3.1014911327,-2.5755396252,0.3029670937 +0.6681404456,0.9977272973,-1.1362114684,2.2270411595,-1.7669343741,0.3345230900 +-0.5577752593,0.7783410681,-1.6131321159,0.7657330631,-2.1785923550,-1.1356502219 +-2.4185115665,-0.3421351490,-0.9016631610,-2.6284479266,-1.3020452996,0.7718316330 +-2.9949021630,-0.3487288598,-1.5031402458,-0.4751231777,-1.9134851625,-1.5801448699 +-0.5451030802,1.6550314250,-2.6499431012,2.5666422102,-1.4966149111,-1.0127436307 +-1.1441693265,0.7439416371,-1.9329612145,-0.7594972589,-0.9167275167,0.3817472381 +-3.6456893115,-1.3410460576,-1.9880083685,-0.7596059245,-1.2139250762,0.8954098239 +-3.9044841014,-0.3431132663,-0.2145194435,-1.3342729049,-1.0169574900,-0.5786249078 +-2.6389165349,0.3301961313,-1.2584641125,-0.8130792151,-0.9524037889,1.3141131839 +-1.9913514191,-0.5658769266,-3.2284759789,0.3037631370,-0.9910748781,-1.2965292647 +-1.4121160414,-1.4106871144,-3.9816677919,-0.3743598585,-0.4242426436,1.2975813886 +-2.6637567508,-1.3597886741,-1.1549380496,1.4090782323,-1.3170842802,-0.0112667539 +-1.9807187351,0.2568721567,-0.7313640111,1.2146253910,-1.0831080317,0.4941217206 +-0.4038792973,-1.3167504033,-2.9267204578,0.1858306170,-0.2316435192,1.2616332988 +-1.0824683912,0.4482802736,-3.9317875756,-0.2060763213,-1.5729467084,-0.3947597342 +0.4398962048,0.5285610573,-1.8019850981,-0.1332348834,-0.9186307575,-1.2980915221 +-0.9892132283,-0.2184199454,-0.5393619258,-3.2605978992,0.0556403176,1.8391164431 +-0.1795436432,2.7389403749,-2.9768804536,1.1855338900,0.1634190660,-0.2017697583 +-0.4500016338,1.1752951286,-3.5066103886,-1.9759240640,-0.6709051154,0.8818860021 +0.4372161970,2.4192075123,-2.7256311999,2.8077499707,1.1706347223,-0.6429555574 diff --git a/statsmodels/tsa/tests/test_adfuller_lag.py b/statsmodels/tsa/tests/test_adfuller_lag.py new file mode 100644 index 0000000..8b5ee8e --- /dev/null +++ b/statsmodels/tsa/tests/test_adfuller_lag.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +"""Test for autolag of adfuller, unitroot_adf + +Created on Wed May 30 21:39:46 2012 +Author: Josef Perktold +""" +from statsmodels.compat.python import iteritems +import numpy as np +from numpy.testing import assert_equal, assert_almost_equal +import statsmodels.tsa.stattools as tsast +from statsmodels.datasets import macrodata + +def test_adf_autolag(): + #see issue #246 + #this is mostly a unit test + d2 = macrodata.load().data + + for k_trend, tr in enumerate(['nc', 'c', 'ct', 'ctt']): + #[None:'nc', 0:'c', 1:'ct', 2:'ctt'] + x = np.log(d2['realgdp']) + xd = np.diff(x) + + #check exog + adf3 = tsast.adfuller(x, maxlag=None, autolag='aic', + regression=tr, store=True, regresults=True) + st2 = adf3[-1] + + assert_equal(len(st2.autolag_results), 15 + 1) #+1 for lagged level + for l, res in sorted(iteritems(st2.autolag_results))[:5]: + lag = l-k_trend + #assert correct design matrices in _autolag + assert_equal(res.model.exog[-10:,k_trend], x[-11:-1]) + assert_equal(res.model.exog[-1,k_trend+1:], xd[-lag:-1][::-1]) + #min-ic lag of dfgls in Stata is also 2, or 9 for maic with notrend + assert_equal(st2.usedlag, 2) + + #same result with lag fixed at usedlag of autolag + adf2 = tsast.adfuller(x, maxlag=2, autolag=None, regression=tr) + assert_almost_equal(adf3[:2], adf2[:2], decimal=12) + + + tr = 'c' + #check maxlag with autolag + adf3 = tsast.adfuller(x, maxlag=5, autolag='aic', + regression=tr, store=True, regresults=True) + assert_equal(len(adf3[-1].autolag_results), 5 + 1) + adf3 = tsast.adfuller(x, maxlag=0, autolag='aic', + regression=tr, store=True, regresults=True) + assert_equal(len(adf3[-1].autolag_results), 0 + 1) diff --git a/statsmodels/tsa/tests/test_ar.py b/statsmodels/tsa/tests/test_ar.py new file mode 100644 index 0000000..44da5be --- /dev/null +++ b/statsmodels/tsa/tests/test_ar.py @@ -0,0 +1,335 @@ +""" +Test AR Model +""" +import statsmodels.api as sm +from statsmodels.compat.python import range +from statsmodels.tsa.ar_model import AR +from numpy.testing import (assert_almost_equal, assert_allclose, assert_) +from statsmodels.tools.testing import assert_equal +from .results import results_ar +import numpy as np +import numpy.testing as npt +from pandas import Series, Index, DatetimeIndex + + +DECIMAL_6 = 6 +DECIMAL_5 = 5 +DECIMAL_4 = 4 + +class CheckARMixin(object): + def test_params(self): + assert_almost_equal(self.res1.params, self.res2.params, DECIMAL_6) + + def test_bse(self): + bse = np.sqrt(np.diag(self.res1.cov_params())) # no dof correction + # for compatability with Stata + assert_almost_equal(bse, self.res2.bse_stata, DECIMAL_6) + assert_almost_equal(self.res1.bse, self.res2.bse_gretl, DECIMAL_5) + + def test_llf(self): + assert_almost_equal(self.res1.llf, self.res2.llf, DECIMAL_6) + + def test_fpe(self): + assert_almost_equal(self.res1.fpe, self.res2.fpe, DECIMAL_6) + + def test_pickle(self): + from statsmodels.compat.python import BytesIO + fh = BytesIO() + #test wrapped results load save pickle + self.res1.save(fh) + fh.seek(0,0) + res_unpickled = self.res1.__class__.load(fh) + assert_(type(res_unpickled) is type(self.res1)) + +class TestAROLSConstant(CheckARMixin): + """ + Test AR fit by OLS with a constant. + """ + @classmethod + def setupClass(cls): + data = sm.datasets.sunspots.load() + cls.res1 = AR(data.endog).fit(maxlag=9, method='cmle') + cls.res2 = results_ar.ARResultsOLS(constant=True) + + def test_predict(self): + model = self.res1.model + params = self.res1.params + assert_almost_equal(model.predict(params),self.res2.FVOLSnneg1start0, + DECIMAL_4) + assert_almost_equal(model.predict(params),self.res2.FVOLSnneg1start9, + DECIMAL_4) + assert_almost_equal(model.predict(params, start=100), + self.res2.FVOLSnneg1start100, DECIMAL_4) + assert_almost_equal(model.predict(params, start=9, end=200), + self.res2.FVOLSn200start0, DECIMAL_4) + assert_almost_equal(model.predict(params, start=200, end=400), + self.res2.FVOLSn200start200, DECIMAL_4) + #assert_almost_equal(model.predict(params, n=200,start=-109), + # self.res2.FVOLSn200startneg109, DECIMAL_4) + assert_almost_equal(model.predict(params, start=308, end=424), + self.res2.FVOLSn100start325, DECIMAL_4) + assert_almost_equal(model.predict(params, start=9, end=310), + self.res2.FVOLSn301start9, DECIMAL_4) + assert_almost_equal(model.predict(params), + self.res2.FVOLSdefault, DECIMAL_4) + assert_almost_equal(model.predict(params, start=308, end=316), + self.res2.FVOLSn4start312, DECIMAL_4) + assert_almost_equal(model.predict(params, start=308, end=327), + self.res2.FVOLSn15start312, DECIMAL_4) + + +class TestAROLSNoConstant(CheckARMixin): + """f + Test AR fit by OLS without a constant. + """ + @classmethod + def setupClass(cls): + data = sm.datasets.sunspots.load() + cls.res1 = AR(data.endog).fit(maxlag=9,method='cmle',trend='nc') + cls.res2 = results_ar.ARResultsOLS(constant=False) + + def test_predict(self): + model = self.res1.model + params = self.res1.params + assert_almost_equal(model.predict(params),self.res2.FVOLSnneg1start0, + DECIMAL_4) + assert_almost_equal(model.predict(params),self.res2.FVOLSnneg1start9, + DECIMAL_4) + assert_almost_equal(model.predict(params, start=100), + self.res2.FVOLSnneg1start100, DECIMAL_4) + assert_almost_equal(model.predict(params, start=9, end=200), + self.res2.FVOLSn200start0, DECIMAL_4) + assert_almost_equal(model.predict(params, start=200, end=400), + self.res2.FVOLSn200start200, DECIMAL_4) + #assert_almost_equal(model.predict(params, n=200,start=-109), + # self.res2.FVOLSn200startneg109, DECIMAL_4) + assert_almost_equal(model.predict(params, start=308,end=424), + self.res2.FVOLSn100start325, DECIMAL_4) + assert_almost_equal(model.predict(params, start=9, end=310), + self.res2.FVOLSn301start9, DECIMAL_4) + assert_almost_equal(model.predict(params), + self.res2.FVOLSdefault, DECIMAL_4) + assert_almost_equal(model.predict(params, start=308, end=316), + self.res2.FVOLSn4start312, DECIMAL_4) + assert_almost_equal(model.predict(params, start=308, end=327), + self.res2.FVOLSn15start312, DECIMAL_4) + + #class TestARMLEConstant(CheckAR): + + +class TestARMLEConstant(object): + @classmethod + def setupClass(cls): + data = sm.datasets.sunspots.load() + cls.res1 = AR(data.endog).fit(maxlag=9,method="mle", disp=-1) + cls.res2 = results_ar.ARResultsMLE(constant=True) + + def test_predict(self): + model = self.res1.model + # for some reason convergence is off in 1 out of 10 runs on + # some platforms. i've never been able to replicate. see #910 + params = np.array([ 5.66817602, 1.16071069, -0.39538222, + -0.16634055, 0.15044614, -0.09439266, + 0.00906289, 0.05205291, -0.08584362, + 0.25239198]) + assert_almost_equal(model.predict(params), self.res2.FVMLEdefault, + DECIMAL_4) + assert_almost_equal(model.predict(params, start=9, end=308), + self.res2.FVMLEstart9end308, DECIMAL_4) + assert_almost_equal(model.predict(params, start=100, end=308), + self.res2.FVMLEstart100end308, DECIMAL_4) + assert_almost_equal(model.predict(params, start=0, end=200), + self.res2.FVMLEstart0end200, DECIMAL_4) + + # Note: factor 0.5 in below two tests needed to meet precision on OS X. + assert_almost_equal(0.5 * model.predict(params, start=200, end=333), + 0.5 * self.res2.FVMLEstart200end334, DECIMAL_4) + assert_almost_equal(0.5 * model.predict(params, start=308, end=333), + 0.5 * self.res2.FVMLEstart308end334, DECIMAL_4) + + assert_almost_equal(model.predict(params, start=9,end=309), + self.res2.FVMLEstart9end309, DECIMAL_4) + assert_almost_equal(model.predict(params, end=301), + self.res2.FVMLEstart0end301, DECIMAL_4) + assert_almost_equal(model.predict(params, start=4, end=312), + self.res2.FVMLEstart4end312, DECIMAL_4) + assert_almost_equal(model.predict(params, start=2, end=7), + self.res2.FVMLEstart2end7, DECIMAL_4) + + def test_dynamic_predict(self): + # for some reason convergence is off in 1 out of 10 runs on + # some platforms. i've never been able to replicate. see #910 + params = np.array([ 5.66817602, 1.16071069, -0.39538222, + -0.16634055, 0.15044614, -0.09439266, + 0.00906289, 0.05205291, -0.08584362, + 0.25239198]) + res1 = self.res1 + res2 = self.res2 + + rtol = 8e-6 + # assert_raises pre-sample + + # 9, 51 + start, end = 9, 51 + fv = res1.model.predict(params, start, end, dynamic=True) + assert_allclose(fv, res2.fcdyn[start:end+1], rtol=rtol) + + # 9, 308 + start, end = 9, 308 + fv = res1.model.predict(params, start, end, dynamic=True) + assert_allclose(fv, res2.fcdyn[start:end+1], rtol=rtol) + + # 9, 333 + start, end = 9, 333 + fv = res1.model.predict(params, start, end, dynamic=True) + assert_allclose(fv, res2.fcdyn[start:end+1], rtol=rtol) + + # 100, 151 + start, end = 100, 151 + fv = res1.model.predict(params, start, end, dynamic=True) + assert_allclose(fv, res2.fcdyn2[start:end+1], rtol=rtol) + + # 100, 308 + start, end = 100, 308 + fv = res1.model.predict(params, start, end, dynamic=True) + assert_allclose(fv, res2.fcdyn2[start:end+1], rtol=rtol) + + # 100, 333 + start, end = 100, 333 + fv = res1.model.predict(params, start, end, dynamic=True) + assert_allclose(fv, res2.fcdyn2[start:end+1], rtol=rtol) + + # 308, 308 + start, end = 308, 308 + fv = res1.model.predict(params, start, end, dynamic=True) + assert_allclose(fv, res2.fcdyn3[start:end+1], rtol=rtol) + + # 308, 333 + start, end = 308, 333 + fv = res1.model.predict(params, start, end, dynamic=True) + assert_allclose(fv, res2.fcdyn3[start:end+1], rtol=rtol) + + # 309, 333 + start, end = 309, 333 + fv = res1.model.predict(params, start, end, dynamic=True) + assert_allclose(fv, res2.fcdyn4[start:end+1], rtol=rtol) + + # None, None + start, end = None, None + fv = res1.model.predict(params, dynamic=True) + assert_allclose(fv, res2.fcdyn[9:309], rtol=rtol) + + +class TestAutolagAR(object): + @classmethod + def setupClass(cls): + data = sm.datasets.sunspots.load() + endog = data.endog + results = [] + for lag in range(1,16+1): + endog_tmp = endog[16-lag:] + r = AR(endog_tmp).fit(maxlag=lag) + # See issue #324 for why we're doing these corrections vs. R + # results + k_ar = r.k_ar + k_trend = r.k_trend + log_sigma2 = np.log(r.sigma2) + aic = r.aic + aic = (aic - log_sigma2) * (1 + k_ar)/(1 + k_ar + k_trend) + aic += log_sigma2 + + hqic = r.hqic + hqic = (hqic - log_sigma2) * (1 + k_ar)/(1 + k_ar + k_trend) + hqic += log_sigma2 + + bic = r.bic + bic = (bic - log_sigma2) * (1 + k_ar)/(1 + k_ar + k_trend) + bic += log_sigma2 + + + results.append([aic, hqic, bic, r.fpe]) + res1 = np.asarray(results).T.reshape(4,-1, order='C') + # aic correction to match R + cls.res1 = res1 + cls.res2 = results_ar.ARLagResults("const").ic + + def test_ic(self): + + npt.assert_almost_equal(self.res1, self.res2, DECIMAL_6) + +def test_ar_dates(): + # just make sure they work + data = sm.datasets.sunspots.load() + dates = sm.tsa.datetools.dates_from_range('1700', length=len(data.endog)) + endog = Series(data.endog, index=dates) + ar_model = sm.tsa.AR(endog, freq='A').fit(maxlag=9, method='mle', disp=-1) + pred = ar_model.predict(start='2005', end='2015') + predict_dates = sm.tsa.datetools.dates_from_range('2005', '2015') + predict_dates = DatetimeIndex(predict_dates, freq='infer') + + assert_equal(ar_model.data.predict_dates, predict_dates) + assert_equal(pred.index, predict_dates) + +def test_ar_named_series(): + dates = sm.tsa.datetools.dates_from_range("2011m1", length=72) + y = Series(np.random.randn(72), name="foobar", index=dates) + results = sm.tsa.AR(y).fit(2) + assert_(results.params.index.equals(Index(["const", "L1.foobar", + "L2.foobar"]))) + +def test_ar_start_params(): + # fix 236 + # smoke test + data = sm.datasets.sunspots.load() + res = AR(data.endog).fit(maxlag=9, start_params=0.1*np.ones(10), + method="mle", disp=-1, maxiter=100) + +def test_ar_series(): + # smoke test for 773 + dta = sm.datasets.macrodata.load_pandas().data["cpi"].diff().dropna() + dates = sm.tsa.datetools.dates_from_range("1959Q1", length=len(dta)) + dta.index = dates + ar = AR(dta).fit(maxlags=15) + ar.bse + + +def test_ar_select_order(): + # 2118 + np.random.seed(12345) + y = sm.tsa.arma_generate_sample([1, -.75, .3], [1], 100) + ts = Series(y, index=DatetimeIndex(start='1/1/1990', periods=100, + freq='M')) + ar = AR(ts) + res = ar.select_order(maxlag=12, ic='aic') + assert_(res == 2) + +# GH 2658 +def test_ar_select_order_tstat(): + rs = np.random.RandomState(123) + tau = 25 + y = rs.randn(tau) + ts = Series(y, index=DatetimeIndex(start='1/1/1990', periods=tau, + freq='M')) + + ar = AR(ts) + res = ar.select_order(maxlag=5, ic='t-stat') + assert_equal(res, 0) + + + +#TODO: likelihood for ARX model? +#class TestAutolagARX(object): +# def setup(self): +# data = sm.datasets.macrodata.load() +# endog = data.data.realgdp +# exog = data.data.realint +# results = [] +# for lag in range(1, 26): +# endog_tmp = endog[26-lag:] +# exog_tmp = exog[26-lag:] +# r = AR(endog_tmp, exog_tmp).fit(maxlag=lag, trend='ct') +# results.append([r.aic, r.hqic, r.bic, r.fpe]) +# self.res1 = np.asarray(results).T.reshape(4,-1, order='C') + + + diff --git a/statsmodels/tsa/tests/test_arima.py b/statsmodels/tsa/tests/test_arima.py new file mode 100644 index 0000000..0f42977 --- /dev/null +++ b/statsmodels/tsa/tests/test_arima.py @@ -0,0 +1,2256 @@ +from statsmodels.compat.python import lrange, BytesIO + +import os +import warnings + +from nose.tools import nottest +import numpy as np +from numpy.testing import (assert_almost_equal, assert_, assert_allclose, + assert_raises, dec, TestCase) +import pandas as pd +from pandas import PeriodIndex, DatetimeIndex + +from statsmodels.datasets.macrodata import load as load_macrodata +from statsmodels.datasets.macrodata import load_pandas as load_macrodata_pandas +import statsmodels.sandbox.tsa.fftarma as fa +from statsmodels.tools.testing import assert_equal +from statsmodels.tsa.arma_mle import Arma +from statsmodels.tsa.arima_model import ARMA, ARIMA +from statsmodels.regression.linear_model import OLS +from statsmodels.tsa.base.datetools import dates_from_range +from statsmodels.tsa.tests.results import results_arma, results_arima +from statsmodels.tsa.arima_process import arma_generate_sample + +try: + import matplotlib.pyplot as plt + have_matplotlib = True +except: + have_matplotlib = False + +DECIMAL_4 = 4 +DECIMAL_3 = 3 +DECIMAL_2 = 2 +DECIMAL_1 = 1 + +current_path = os.path.dirname(os.path.abspath(__file__)) +y_arma = np.genfromtxt(open(current_path + '/results/y_arma_data.csv', "rb"), + delimiter=",", skip_header=1, dtype=float) + +cpi_dates = PeriodIndex(start='1959q1', end='2009q3', freq='Q') +sun_dates = PeriodIndex(start='1700', end='2008', freq='A') +cpi_predict_dates = PeriodIndex(start='2009q3', end='2015q4', freq='Q') +sun_predict_dates = PeriodIndex(start='2008', end='2033', freq='A') + + +def test_compare_arma(): + #this is a preliminary test to compare arma_kf, arma_cond_ls and arma_cond_mle + #the results returned by the fit methods are incomplete + #for now without random.seed + + np.random.seed(9876565) + x = fa.ArmaFft([1, -0.5], [1., 0.4], 40).generate_sample(nsample=200, + burnin=1000) + + # this used kalman filter through descriptive + #d = ARMA(x) + #d.fit((1,1), trend='nc') + #dres = d.res + + modkf = ARMA(x, (1,1)) + ##rkf = mkf.fit((1,1)) + ##rkf.params + reskf = modkf.fit(trend='nc', disp=-1) + dres = reskf + + modc = Arma(x) + resls = modc.fit(order=(1,1)) + rescm = modc.fit_mle(order=(1,1), start_params=[0.4,0.4, 1.], disp=0) + + #decimal 1 corresponds to threshold of 5% difference + #still different sign corrcted + #assert_almost_equal(np.abs(resls[0] / d.params), np.ones(d.params.shape), decimal=1) + assert_almost_equal(resls[0] / dres.params, np.ones(dres.params.shape), + decimal=1) + #rescm also contains variance estimate as last element of params + + #assert_almost_equal(np.abs(rescm.params[:-1] / d.params), np.ones(d.params.shape), decimal=1) + assert_almost_equal(rescm.params[:-1] / dres.params, + np.ones(dres.params.shape), decimal=1) + #return resls[0], d.params, rescm.params + + +class CheckArmaResultsMixin(object): + """ + res2 are the results from gretl. They are in results/results_arma. + res1 are from statsmodels + """ + decimal_params = DECIMAL_4 + def test_params(self): + assert_almost_equal(self.res1.params, self.res2.params, + self.decimal_params) + + decimal_aic = DECIMAL_4 + def test_aic(self): + assert_almost_equal(self.res1.aic, self.res2.aic, self.decimal_aic) + + decimal_bic = DECIMAL_4 + def test_bic(self): + assert_almost_equal(self.res1.bic, self.res2.bic, self.decimal_bic) + + decimal_arroots = DECIMAL_4 + def test_arroots(self): + assert_almost_equal(self.res1.arroots, self.res2.arroots, + self.decimal_arroots) + + decimal_maroots = DECIMAL_4 + def test_maroots(self): + assert_almost_equal(self.res1.maroots, self.res2.maroots, + self.decimal_maroots) + + decimal_bse = DECIMAL_2 + def test_bse(self): + assert_almost_equal(self.res1.bse, self.res2.bse, self.decimal_bse) + + decimal_cov_params = DECIMAL_4 + def test_covparams(self): + assert_almost_equal(self.res1.cov_params(), self.res2.cov_params, + self.decimal_cov_params) + + decimal_hqic = DECIMAL_4 + def test_hqic(self): + assert_almost_equal(self.res1.hqic, self.res2.hqic, self.decimal_hqic) + + decimal_llf = DECIMAL_4 + def test_llf(self): + assert_almost_equal(self.res1.llf, self.res2.llf, self.decimal_llf) + + decimal_resid = DECIMAL_4 + def test_resid(self): + assert_almost_equal(self.res1.resid, self.res2.resid, + self.decimal_resid) + + decimal_fittedvalues = DECIMAL_4 + def test_fittedvalues(self): + assert_almost_equal(self.res1.fittedvalues, self.res2.fittedvalues, + self.decimal_fittedvalues) + + decimal_pvalues = DECIMAL_2 + def test_pvalues(self): + assert_almost_equal(self.res1.pvalues, self.res2.pvalues, + self.decimal_pvalues) + + decimal_t = DECIMAL_2 # only 2 decimal places in gretl output + def test_tvalues(self): + assert_almost_equal(self.res1.tvalues, self.res2.tvalues, + self.decimal_t) + + decimal_sigma2 = DECIMAL_4 + def test_sigma2(self): + assert_almost_equal(self.res1.sigma2, self.res2.sigma2, + self.decimal_sigma2) + + def test_summary(self): + # smoke tests + table = self.res1.summary() + + +class CheckForecastMixin(object): + decimal_forecast = DECIMAL_4 + def test_forecast(self): + assert_almost_equal(self.res1.forecast_res, self.res2.forecast, + self.decimal_forecast) + + decimal_forecasterr = DECIMAL_4 + def test_forecasterr(self): + assert_almost_equal(self.res1.forecast_err, self.res2.forecasterr, + self.decimal_forecasterr) + + +class CheckDynamicForecastMixin(object): + decimal_forecast_dyn = 4 + def test_dynamic_forecast(self): + assert_almost_equal(self.res1.forecast_res_dyn, self.res2.forecast_dyn, + self.decimal_forecast_dyn) + + #def test_forecasterr(self): + # assert_almost_equal(self.res1.forecast_err_dyn, + # self.res2.forecasterr_dyn, + # DECIMAL_4) + + +class CheckArimaResultsMixin(CheckArmaResultsMixin): + def test_order(self): + assert self.res1.k_diff == self.res2.k_diff + assert self.res1.k_ar == self.res2.k_ar + assert self.res1.k_ma == self.res2.k_ma + + decimal_predict_levels = DECIMAL_4 + def test_predict_levels(self): + assert_almost_equal(self.res1.predict(typ='levels'), self.res2.linear, + self.decimal_predict_levels) + + +class Test_Y_ARMA11_NoConst(CheckArmaResultsMixin, CheckForecastMixin): + @classmethod + def setupClass(cls): + endog = y_arma[:,0] + cls.res1 = ARMA(endog, order=(1,1)).fit(trend='nc', disp=-1) + (cls.res1.forecast_res, cls.res1.forecast_err, + confint) = cls.res1.forecast(10) + cls.res2 = results_arma.Y_arma11() + + def test_pickle(self): + fh = BytesIO() + #test wrapped results load save pickle + self.res1.save(fh) + fh.seek(0,0) + res_unpickled = self.res1.__class__.load(fh) + assert_(type(res_unpickled) is type(self.res1)) + + +class Test_Y_ARMA14_NoConst(CheckArmaResultsMixin): + @classmethod + def setupClass(cls): + endog = y_arma[:,1] + cls.res1 = ARMA(endog, order=(1,4)).fit(trend='nc', disp=-1) + cls.res2 = results_arma.Y_arma14() + + +@dec.slow +class Test_Y_ARMA41_NoConst(CheckArmaResultsMixin, CheckForecastMixin): + @classmethod + def setupClass(cls): + endog = y_arma[:,2] + cls.res1 = ARMA(endog, order=(4,1)).fit(trend='nc', disp=-1) + (cls.res1.forecast_res, cls.res1.forecast_err, + confint) = cls.res1.forecast(10) + cls.res2 = results_arma.Y_arma41() + cls.decimal_maroots = DECIMAL_3 + + +class Test_Y_ARMA22_NoConst(CheckArmaResultsMixin): + @classmethod + def setupClass(cls): + endog = y_arma[:,3] + cls.res1 = ARMA(endog, order=(2,2)).fit(trend='nc', disp=-1) + cls.res2 = results_arma.Y_arma22() + + +class Test_Y_ARMA50_NoConst(CheckArmaResultsMixin, CheckForecastMixin): + @classmethod + def setupClass(cls): + endog = y_arma[:,4] + cls.res1 = ARMA(endog, order=(5,0)).fit(trend='nc', disp=-1) + (cls.res1.forecast_res, cls.res1.forecast_err, + confint) = cls.res1.forecast(10) + cls.res2 = results_arma.Y_arma50() + + +class Test_Y_ARMA02_NoConst(CheckArmaResultsMixin): + @classmethod + def setupClass(cls): + endog = y_arma[:,5] + cls.res1 = ARMA(endog, order=(0,2)).fit(trend='nc', disp=-1) + cls.res2 = results_arma.Y_arma02() + + +class Test_Y_ARMA11_Const(CheckArmaResultsMixin, CheckForecastMixin): + @classmethod + def setupClass(cls): + endog = y_arma[:,6] + cls.res1 = ARMA(endog, order=(1,1)).fit(trend="c", disp=-1) + (cls.res1.forecast_res, cls.res1.forecast_err, + confint) = cls.res1.forecast(10) + cls.res2 = results_arma.Y_arma11c() + + +class Test_Y_ARMA14_Const(CheckArmaResultsMixin): + @classmethod + def setupClass(cls): + endog = y_arma[:,7] + cls.res1 = ARMA(endog, order=(1,4)).fit(trend="c", disp=-1) + cls.res2 = results_arma.Y_arma14c() + + +class Test_Y_ARMA41_Const(CheckArmaResultsMixin, CheckForecastMixin): + @classmethod + def setupClass(cls): + endog = y_arma[:,8] + cls.res2 = results_arma.Y_arma41c() + cls.res1 = ARMA(endog, order=(4,1)).fit(trend="c", disp=-1, + start_params=cls.res2.params) + (cls.res1.forecast_res, cls.res1.forecast_err, + confint) = cls.res1.forecast(10) + cls.decimal_cov_params = DECIMAL_3 + cls.decimal_fittedvalues = DECIMAL_3 + cls.decimal_resid = DECIMAL_3 + cls.decimal_params = DECIMAL_3 + + +class Test_Y_ARMA22_Const(CheckArmaResultsMixin): + @classmethod + def setupClass(cls): + endog = y_arma[:,9] + cls.res1 = ARMA(endog, order=(2,2)).fit(trend="c", disp=-1) + cls.res2 = results_arma.Y_arma22c() + + +class Test_Y_ARMA50_Const(CheckArmaResultsMixin, CheckForecastMixin): + @classmethod + def setupClass(cls): + endog = y_arma[:,10] + cls.res1 = ARMA(endog, order=(5,0)).fit(trend="c", disp=-1) + (cls.res1.forecast_res, cls.res1.forecast_err, + confint) = cls.res1.forecast(10) + cls.res2 = results_arma.Y_arma50c() + + +class Test_Y_ARMA02_Const(CheckArmaResultsMixin): + @classmethod + def setupClass(cls): + endog = y_arma[:,11] + cls.res1 = ARMA(endog, order=(0,2)).fit(trend="c", disp=-1) + cls.res2 = results_arma.Y_arma02c() + + +# cov_params and tvalues are off still but not as much vs. R +class Test_Y_ARMA11_NoConst_CSS(CheckArmaResultsMixin): + @classmethod + def setupClass(cls): + endog = y_arma[:,0] + cls.res1 = ARMA(endog, order=(1,1)).fit(method="css", trend='nc', + disp=-1) + cls.res2 = results_arma.Y_arma11("css") + cls.decimal_t = DECIMAL_1 + + +# better vs. R +class Test_Y_ARMA14_NoConst_CSS(CheckArmaResultsMixin): + @classmethod + def setupClass(cls): + endog = y_arma[:,1] + cls.res1 = ARMA(endog, order=(1,4)).fit(method="css", trend='nc', + disp=-1) + cls.res2 = results_arma.Y_arma14("css") + cls.decimal_fittedvalues = DECIMAL_3 + cls.decimal_resid = DECIMAL_3 + cls.decimal_t = DECIMAL_1 + + +# bse, etc. better vs. R +# maroot is off because maparams is off a bit (adjust tolerance?) +class Test_Y_ARMA41_NoConst_CSS(CheckArmaResultsMixin): + @classmethod + def setupClass(cls): + endog = y_arma[:,2] + cls.res1 = ARMA(endog, order=(4,1)).fit(method="css", trend='nc', + disp=-1) + cls.res2 = results_arma.Y_arma41("css") + cls.decimal_t = DECIMAL_1 + cls.decimal_pvalues = 0 + cls.decimal_cov_params = DECIMAL_3 + cls.decimal_maroots = DECIMAL_1 + + +#same notes as above +class Test_Y_ARMA22_NoConst_CSS(CheckArmaResultsMixin): + @classmethod + def setupClass(cls): + endog = y_arma[:,3] + cls.res1 = ARMA(endog, order=(2,2)).fit(method="css", trend='nc', + disp=-1) + cls.res2 = results_arma.Y_arma22("css") + cls.decimal_t = DECIMAL_1 + cls.decimal_resid = DECIMAL_3 + cls.decimal_pvalues = DECIMAL_1 + cls.decimal_fittedvalues = DECIMAL_3 + + +#NOTE: gretl just uses least squares for AR CSS +# so BIC, etc. is +# -2*res1.llf + np.log(nobs)*(res1.q+res1.p+res1.k) +# with no adjustment for p and no extra sigma estimate +#NOTE: so our tests use x-12 arima results which agree with us and are +# consistent with the rest of the models +class Test_Y_ARMA50_NoConst_CSS(CheckArmaResultsMixin): + @classmethod + def setupClass(cls): + endog = y_arma[:,4] + cls.res1 = ARMA(endog, order=(5,0)).fit(method="css", trend='nc', + disp=-1) + cls.res2 = results_arma.Y_arma50("css") + cls.decimal_t = 0 + cls.decimal_llf = DECIMAL_1 # looks like rounding error? + + +class Test_Y_ARMA02_NoConst_CSS(CheckArmaResultsMixin): + @classmethod + def setupClass(cls): + endog = y_arma[:,5] + cls.res1 = ARMA(endog, order=(0,2)).fit(method="css", trend='nc', + disp=-1) + cls.res2 = results_arma.Y_arma02("css") + + +#NOTE: our results are close to --x-12-arima option and R +class Test_Y_ARMA11_Const_CSS(CheckArmaResultsMixin): + @classmethod + def setupClass(cls): + endog = y_arma[:,6] + cls.res1 = ARMA(endog, order=(1,1)).fit(trend="c", method="css", + disp=-1) + cls.res2 = results_arma.Y_arma11c("css") + cls.decimal_params = DECIMAL_3 + cls.decimal_cov_params = DECIMAL_3 + cls.decimal_t = DECIMAL_1 + + +class Test_Y_ARMA14_Const_CSS(CheckArmaResultsMixin): + @classmethod + def setupClass(cls): + endog = y_arma[:,7] + cls.res1 = ARMA(endog, order=(1,4)).fit(trend="c", method="css", + disp=-1) + cls.res2 = results_arma.Y_arma14c("css") + cls.decimal_t = DECIMAL_1 + cls.decimal_pvalues = DECIMAL_1 + + +class Test_Y_ARMA41_Const_CSS(CheckArmaResultsMixin): + @classmethod + def setupClass(cls): + endog = y_arma[:,8] + cls.res1 = ARMA(endog, order=(4,1)).fit(trend="c", method="css", + disp=-1) + cls.res2 = results_arma.Y_arma41c("css") + cls.decimal_t = DECIMAL_1 + cls.decimal_cov_params = DECIMAL_1 + cls.decimal_maroots = DECIMAL_3 + cls.decimal_bse = DECIMAL_1 + + +class Test_Y_ARMA22_Const_CSS(CheckArmaResultsMixin): + @classmethod + def setupClass(cls): + endog = y_arma[:,9] + cls.res1 = ARMA(endog, order=(2,2)).fit(trend="c", method="css", + disp=-1) + cls.res2 = results_arma.Y_arma22c("css") + cls.decimal_t = 0 + cls.decimal_pvalues = DECIMAL_1 + + +class Test_Y_ARMA50_Const_CSS(CheckArmaResultsMixin): + @classmethod + def setupClass(cls): + endog = y_arma[:,10] + cls.res1 = ARMA(endog, order=(5,0)).fit(trend="c", method="css", + disp=-1) + cls.res2 = results_arma.Y_arma50c("css") + cls.decimal_t = DECIMAL_1 + cls.decimal_params = DECIMAL_3 + cls.decimal_cov_params = DECIMAL_2 + + +class Test_Y_ARMA02_Const_CSS(CheckArmaResultsMixin): + @classmethod + def setupClass(cls): + endog = y_arma[:,11] + cls.res1 = ARMA(endog, order=(0,2)).fit(trend="c", method="css", + disp=-1) + cls.res2 = results_arma.Y_arma02c("css") + + +def test_reset_trend(): + endog = y_arma[:,0] + mod = ARMA(endog, order=(1,1)) + res1 = mod.fit(trend="c", disp=-1) + res2 = mod.fit(trend="nc", disp=-1) + assert_equal(len(res1.params), len(res2.params)+1) + + +@dec.slow +def test_start_params_bug(): + data = np.array([1368., 1187, 1090, 1439, 2362, 2783, 2869, 2512, 1804, + 1544, 1028, 869, 1737, 2055, 1947, 1618, 1196, 867, 997, 1862, 2525, + 3250, 4023, 4018, 3585, 3004, 2500, 2441, 2749, 2466, 2157, 1847, 1463, + 1146, 851, 993, 1448, 1719, 1709, 1455, 1950, 1763, 2075, 2343, 3570, + 4690, 3700, 2339, 1679, 1466, 998, 853, 835, 922, 851, 1125, 1299, 1105, + 860, 701, 689, 774, 582, 419, 846, 1132, 902, 1058, 1341, 1551, 1167, + 975, 786, 759, 751, 649, 876, 720, 498, 553, 459, 543, 447, 415, 377, + 373, 324, 320, 306, 259, 220, 342, 558, 825, 994, 1267, 1473, 1601, + 1896, 1890, 2012, 2198, 2393, 2825, 3411, 3406, 2464, 2891, 3685, 3638, + 3746, 3373, 3190, 2681, 2846, 4129, 5054, 5002, 4801, 4934, 4903, 4713, + 4745, 4736, 4622, 4642, 4478, 4510, 4758, 4457, 4356, 4170, 4658, 4546, + 4402, 4183, 3574, 2586, 3326, 3948, 3983, 3997, 4422, 4496, 4276, 3467, + 2753, 2582, 2921, 2768, 2789, 2824, 2482, 2773, 3005, 3641, 3699, 3774, + 3698, 3628, 3180, 3306, 2841, 2014, 1910, 2560, 2980, 3012, 3210, 3457, + 3158, 3344, 3609, 3327, 2913, 2264, 2326, 2596, 2225, 1767, 1190, 792, + 669, 589, 496, 354, 246, 250, 323, 495, 924, 1536, 2081, 2660, 2814, 2992, + 3115, 2962, 2272, 2151, 1889, 1481, 955, 631, 288, 103, 60, 82, 107, 185, + 618, 1526, 2046, 2348, 2584, 2600, 2515, 2345, 2351, 2355, 2409, 2449, + 2645, 2918, 3187, 2888, 2610, 2740, 2526, 2383, 2936, 2968, 2635, 2617, + 2790, 3906, 4018, 4797, 4919, 4942, 4656, 4444, 3898, 3908, 3678, 3605, + 3186, 2139, 2002, 1559, 1235, 1183, 1096, 673, 389, 223, 352, 308, 365, + 525, 779, 894, 901, 1025, 1047, 981, 902, 759, 569, 519, 408, 263, 156, + 72, 49, 31, 41, 192, 423, 492, 552, 564, 723, 921, 1525, 2768, 3531, 3824, + 3835, 4294, 4533, 4173, 4221, 4064, 4641, 4685, 4026, 4323, 4585, 4836, + 4822, 4631, 4614, 4326, 4790, 4736, 4104, 5099, 5154, 5121, 5384, 5274, + 5225, 4899, 5382, 5295, 5349, 4977, 4597, 4069, 3733, 3439, 3052, 2626, + 1939, 1064, 713, 916, 832, 658, 817, 921, 772, 764, 824, 967, 1127, 1153, + 824, 912, 957, 990, 1218, 1684, 2030, 2119, 2233, 2657, 2652, 2682, 2498, + 2429, 2346, 2298, 2129, 1829, 1816, 1225, 1010, 748, 627, 469, 576, 532, + 475, 582, 641, 605, 699, 680, 714, 670, 666, 636, 672, 679, 446, 248, 134, + 160, 178, 286, 413, 676, 1025, 1159, 952, 1398, 1833, 2045, 2072, 1798, + 1799, 1358, 727, 353, 347, 844, 1377, 1829, 2118, 2272, 2745, 4263, 4314, + 4530, 4354, 4645, 4547, 5391, 4855, 4739, 4520, 4573, 4305, 4196, 3773, + 3368, 2596, 2596, 2305, 2756, 3747, 4078, 3415, 2369, 2210, 2316, 2263, + 2672, 3571, 4131, 4167, 4077, 3924, 3738, 3712, 3510, 3182, 3179, 2951, + 2453, 2078, 1999, 2486, 2581, 1891, 1997, 1366, 1294, 1536, 2794, 3211, + 3242, 3406, 3121, 2425, 2016, 1787, 1508, 1304, 1060, 1342, 1589, 2361, + 3452, 2659, 2857, 3255, 3322, 2852, 2964, 3132, 3033, 2931, 2636, 2818, + 3310, 3396, 3179, 3232, 3543, 3759, 3503, 3758, 3658, 3425, 3053, 2620, + 1837, 923, 712, 1054, 1376, 1556, 1498, 1523, 1088, 728, 890, 1413, 2524, + 3295, 4097, 3993, 4116, 3874, 4074, 4142, 3975, 3908, 3907, 3918, 3755, + 3648, 3778, 4293, 4385, 4360, 4352, 4528, 4365, 3846, 4098, 3860, 3230, + 2820, 2916, 3201, 3721, 3397, 3055, 2141, 1623, 1825, 1716, 2232, 2939, + 3735, 4838, 4560, 4307, 4975, 5173, 4859, 5268, 4992, 5100, 5070, 5270, + 4760, 5135, 5059, 4682, 4492, 4933, 4737, 4611, 4634, 4789, 4811, 4379, + 4689, 4284, 4191, 3313, 2770, 2543, 3105, 2967, 2420, 1996, 2247, 2564, + 2726, 3021, 3427, 3509, 3759, 3324, 2988, 2849, 2340, 2443, 2364, 1252, + 623, 742, 867, 684, 488, 348, 241, 187, 279, 355, 423, 678, 1375, 1497, + 1434, 2116, 2411, 1929, 1628, 1635, 1609, 1757, 2090, 2085, 1790, 1846, + 2038, 2360, 2342, 2401, 2920, 3030, 3132, 4385, 5483, 5865, 5595, 5485, + 5727, 5553, 5560, 5233, 5478, 5159, 5155, 5312, 5079, 4510, 4628, 4535, + 3656, 3698, 3443, 3146, 2562, 2304, 2181, 2293, 1950, 1930, 2197, 2796, + 3441, 3649, 3815, 2850, 4005, 5305, 5550, 5641, 4717, 5131, 2831, 3518, + 3354, 3115, 3515, 3552, 3244, 3658, 4407, 4935, 4299, 3166, 3335, 2728, + 2488, 2573, 2002, 1717, 1645, 1977, 2049, 2125, 2376, 2551, 2578, 2629, + 2750, 3150, 3699, 4062, 3959, 3264, 2671, 2205, 2128, 2133, 2095, 1964, + 2006, 2074, 2201, 2506, 2449, 2465, 2064, 1446, 1382, 983, 898, 489, 319, + 383, 332, 276, 224, 144, 101, 232, 429, 597, 750, 908, 960, 1076, 951, + 1062, 1183, 1404, 1391, 1419, 1497, 1267, 963, 682, 777, 906, 1149, 1439, + 1600, 1876, 1885, 1962, 2280, 2711, 2591, 2411]) + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + res = ARMA(data, order=(4,1)).fit(disp=-1) + + +class Test_ARIMA101(CheckArmaResultsMixin): + # just make sure this works + @classmethod + def setupClass(cls): + endog = y_arma[:,6] + cls.res1 = ARIMA(endog, (1,0,1)).fit(trend="c", disp=-1) + (cls.res1.forecast_res, cls.res1.forecast_err, + confint) = cls.res1.forecast(10) + cls.res2 = results_arma.Y_arma11c() + cls.res2.k_diff = 0 + cls.res2.k_ar = 1 + cls.res2.k_ma = 1 + + +class Test_ARIMA111(CheckArimaResultsMixin, CheckForecastMixin, + CheckDynamicForecastMixin): + @classmethod + def setupClass(cls): + cpi = load_macrodata().data['cpi'] + cls.res1 = ARIMA(cpi, (1,1,1)).fit(disp=-1) + cls.res2 = results_arima.ARIMA111() + # make sure endog names changes to D.cpi + cls.decimal_llf = 3 + cls.decimal_aic = 3 + cls.decimal_bic = 3 + cls.decimal_cov_params = 2 # this used to be better? + cls.decimal_t = 0 + (cls.res1.forecast_res, + cls.res1.forecast_err, + conf_int) = cls.res1.forecast(25) + #cls.res1.forecast_res_dyn = cls.res1.predict(start=164, end=226, typ='levels', dynamic=True) + #TODO: fix the indexing for the end here, I don't think this is right + # if we're going to treat it like indexing + # the forecast from 2005Q1 through 2009Q4 is indices + # 184 through 227 not 226 + # note that the first one counts in the count so 164 + 64 is 65 + # predictions + cls.res1.forecast_res_dyn = cls.res1.predict(start=164, end=164+63, + typ='levels', dynamic=True) + + def test_freq(self): + assert_almost_equal(self.res1.arfreq, [0.0000], 4) + assert_almost_equal(self.res1.mafreq, [0.0000], 4) + + +class Test_ARIMA111CSS(CheckArimaResultsMixin, CheckForecastMixin, + CheckDynamicForecastMixin): + @classmethod + def setupClass(cls): + cpi = load_macrodata().data['cpi'] + cls.res1 = ARIMA(cpi, (1,1,1)).fit(disp=-1, method='css') + cls.res2 = results_arima.ARIMA111(method='css') + cls.res2.fittedvalues = - cpi[1:-1] + cls.res2.linear + # make sure endog names changes to D.cpi + (cls.res1.forecast_res, + cls.res1.forecast_err, + conf_int) = cls.res1.forecast(25) + cls.decimal_forecast = 2 + cls.decimal_forecast_dyn = 2 + cls.decimal_forecasterr = 3 + cls.res1.forecast_res_dyn = cls.res1.predict(start=164, end=164+63, + typ='levels', dynamic=True) + + # precisions + cls.decimal_arroots = 3 + cls.decimal_cov_params = 3 + cls.decimal_hqic = 3 + cls.decimal_maroots = 3 + cls.decimal_t = 1 + cls.decimal_fittedvalues = 2 # because of rounding when copying + cls.decimal_resid = 2 + #cls.decimal_llf = 3 + #cls.decimal_aic = 3 + #cls.decimal_bic = 3 + cls.decimal_predict_levels = DECIMAL_2 + + +class Test_ARIMA112CSS(CheckArimaResultsMixin): + @classmethod + def setupClass(cls): + cpi = load_macrodata().data['cpi'] + cls.res1 = ARIMA(cpi, (1,1,2)).fit(disp=-1, method='css', + start_params = [.905322, -.692425, 1.07366, + 0.172024]) + cls.res2 = results_arima.ARIMA112(method='css') + cls.res2.fittedvalues = - cpi[1:-1] + cls.res2.linear + # make sure endog names changes to D.cpi + cls.decimal_llf = 3 + cls.decimal_aic = 3 + cls.decimal_bic = 3 + #(cls.res1.forecast_res, + # cls.res1.forecast_err, + # conf_int) = cls.res1.forecast(25) + #cls.res1.forecast_res_dyn = cls.res1.predict(start=164, end=226, typ='levels', dynamic=True) + #TODO: fix the indexing for the end here, I don't think this is right + # if we're going to treat it like indexing + # the forecast from 2005Q1 through 2009Q4 is indices + # 184 through 227 not 226 + # note that the first one counts in the count so 164 + 64 is 65 + # predictions + #cls.res1.forecast_res_dyn = self.predict(start=164, end=164+63, + # typ='levels', dynamic=True) + # since we got from gretl don't have linear prediction in differences + cls.decimal_arroots = 3 + cls.decimal_maroots = 2 + cls.decimal_t = 1 + cls.decimal_resid = 2 + cls.decimal_fittedvalues = 3 + cls.decimal_predict_levels = DECIMAL_3 + + def test_freq(self): + assert_almost_equal(self.res1.arfreq, [0.5000], 4) + assert_almost_equal(self.res1.mafreq, [0.5000, 0.5000], 4) + +#class Test_ARIMADates(CheckArmaResults, CheckForecast, CheckDynamicForecast): +# @classmethod +# def setupClass(cls): +# from statsmodels.tsa.datetools import dates_from_range +# +# cpi = load_macrodata().data['cpi'] +# dates = dates_from_range('1959q1', length=203) +# cls.res1 = ARIMA(cpi, dates=dates, freq='Q').fit(order=(1,1,1), disp=-1) +# cls.res2 = results_arima.ARIMA111() +# # make sure endog names changes to D.cpi +# cls.decimal_llf = 3 +# cls.decimal_aic = 3 +# cls.decimal_bic = 3 +# (cls.res1.forecast_res, +# cls.res1.forecast_err, +# conf_int) = cls.res1.forecast(25) + + +def test_arima_predict_mle_dates(): + cpi = load_macrodata().data['cpi'] + res1 = ARIMA(cpi, (4,1,1), dates=cpi_dates, freq='Q').fit(disp=-1) + + with open(current_path + '/results/results_arima_forecasts_all_mle.csv', "rb") as test_data: + arima_forecasts = np.genfromtxt(test_data, delimiter=",", skip_header=1, dtype=float) + + fc = arima_forecasts[:,0] + fcdyn = arima_forecasts[:,1] + fcdyn2 = arima_forecasts[:,2] + + start, end = 2, 51 + fv = res1.predict('1959Q3', '1971Q4', typ='levels') + assert_almost_equal(fv, fc[start:end+1], DECIMAL_4) + assert_equal(res1.data.predict_dates, cpi_dates[start:end+1]) + + start, end = 202, 227 + fv = res1.predict('2009Q3', '2015Q4', typ='levels') + assert_almost_equal(fv, fc[start:end+1], DECIMAL_4) + assert_equal(res1.data.predict_dates, cpi_predict_dates) + + # make sure dynamic works + + start, end = '1960q2', '1971q4' + fv = res1.predict(start, end, dynamic=True, typ='levels') + assert_almost_equal(fv, fcdyn[5:51+1], DECIMAL_4) + + start, end = '1965q1', '2015q4' + fv = res1.predict(start, end, dynamic=True, typ='levels') + assert_almost_equal(fv, fcdyn2[24:227+1], DECIMAL_4) + + +def test_arma_predict_mle_dates(): + from statsmodels.datasets.sunspots import load + sunspots = load().data['SUNACTIVITY'] + mod = ARMA(sunspots, (9,0), dates=sun_dates, freq='A') + mod.method = 'mle' + + assert_raises(ValueError, mod._get_predict_start, *('1701', True)) + + start, end = 2, 51 + _ = mod._get_predict_start('1702', False) + _ = mod._get_predict_end('1751') + assert_equal(mod.data.predict_dates, sun_dates[start:end+1]) + + start, end = 308, 333 + _ = mod._get_predict_start('2008', False) + _ = mod._get_predict_end('2033') + assert_equal(mod.data.predict_dates, sun_predict_dates) + + +def test_arima_predict_css_dates(): + cpi = load_macrodata().data['cpi'] + res1 = ARIMA(cpi, (4,1,1), dates=cpi_dates, freq='Q').fit(disp=-1, + method='css', trend='nc') + + params = np.array([ 1.231272508473910, + -0.282516097759915, + 0.170052755782440, + -0.118203728504945, + -0.938783134717947]) + + with open(current_path + '/results/results_arima_forecasts_all_css.csv', "rb") as test_data: + arima_forecasts = np.genfromtxt(test_data, delimiter=",", skip_header=1, dtype=float) + + fc = arima_forecasts[:,0] + fcdyn = arima_forecasts[:,1] + fcdyn2 = arima_forecasts[:,2] + + start, end = 5, 51 + fv = res1.model.predict(params, '1960Q2', '1971Q4', typ='levels') + assert_almost_equal(fv, fc[start:end+1], DECIMAL_4) + assert_equal(res1.data.predict_dates, cpi_dates[start:end+1]) + + start, end = 202, 227 + fv = res1.model.predict(params, '2009Q3', '2015Q4', typ='levels') + assert_almost_equal(fv, fc[start:end+1], DECIMAL_4) + assert_equal(res1.data.predict_dates, cpi_predict_dates) + + # make sure dynamic works + start, end = 5, 51 + fv = res1.model.predict(params, '1960Q2', '1971Q4', typ='levels', + dynamic=True) + assert_almost_equal(fv, fcdyn[start:end+1], DECIMAL_4) + + start, end = '1965q1', '2015q4' + fv = res1.model.predict(params, start, end, dynamic=True, typ='levels') + assert_almost_equal(fv, fcdyn2[24:227+1], DECIMAL_4) + + +def test_arma_predict_css_dates(): + from statsmodels.datasets.sunspots import load + sunspots = load().data['SUNACTIVITY'] + mod = ARMA(sunspots, (9,0), dates=sun_dates, freq='A') + mod.method = 'css' + assert_raises(ValueError, mod._get_predict_start, *('1701', False)) + + +def test_arima_predict_mle(): + cpi = load_macrodata().data['cpi'] + res1 = ARIMA(cpi, (4,1,1)).fit(disp=-1) + # fit the model so that we get correct endog length but use + with open(current_path + '/results/results_arima_forecasts_all_mle.csv', "rb") as test_data: + arima_forecasts = np.genfromtxt(test_data, delimiter=",", skip_header=1, dtype=float) + fc = arima_forecasts[:,0] + fcdyn = arima_forecasts[:,1] + fcdyn2 = arima_forecasts[:,2] + fcdyn3 = arima_forecasts[:,3] + fcdyn4 = arima_forecasts[:,4] + + # 0 indicates the first sample-observation below + # ie., the index after the pre-sample, these are also differenced once + # so the indices are moved back once from the cpi in levels + # start < p, end

    0 1959q3 - 1971q4 + start, end = 2, 51 + fv = res1.predict(start, end, typ='levels') + assert_almost_equal(fv, fc[start:end+1], DECIMAL_4) + # start < p, end nobs 1959q3 - 2009q3 + start, end = 2, 202 + fv = res1.predict(start, end, typ='levels') + assert_almost_equal(fv, fc[start:end+1], DECIMAL_4) + # start < p, end >nobs 1959q3 - 2015q4 + start, end = 2, 227 + fv = res1.predict(start, end, typ='levels') + assert_almost_equal(fv, fc[start:end+1], DECIMAL_4) + # start 0, end >0 1960q1 - 1971q4 + start, end = 4, 51 + fv = res1.predict(start, end, typ='levels') + assert_almost_equal(fv, fc[start:end+1], DECIMAL_4) + # start 0, end nobs 1960q1 - 2009q3 + start, end = 4, 202 + fv = res1.predict(start, end, typ='levels') + assert_almost_equal(fv, fc[start:end+1], DECIMAL_4) + # start 0, end >nobs 1960q1 - 2015q4 + start, end = 4, 227 + fv = res1.predict(start, end, typ='levels') + assert_almost_equal(fv, fc[start:end+1], DECIMAL_4) + # start >p, end >0 1965q1 - 1971q4 + start, end = 24, 51 + fv = res1.predict(start, end, typ='levels') + assert_almost_equal(fv, fc[start:end+1], DECIMAL_4) + # start >p, end nobs 1965q1 - 2009q3 + start, end = 24, 202 + fv = res1.predict(start, end, typ='levels') + assert_almost_equal(fv, fc[start:end+1], DECIMAL_4) + # start >p, end >nobs 1965q1 - 2015q4 + start, end = 24, 227 + fv = res1.predict(start, end, typ='levels') + assert_almost_equal(fv, fc[start:end+1], DECIMAL_4) + # start nobs, end nobs 2009q3 - 2009q3 + #NOTE: raises + #start, end = 202, 202 + #fv = res1.predict(start, end, typ='levels') + #assert_almost_equal(fv, []) + # start nobs, end >nobs 2009q3 - 2015q4 + start, end = 202, 227 + fv = res1.predict(start, end, typ='levels') + assert_almost_equal(fv, fc[start:end+1], DECIMAL_3) + # start >nobs, end >nobs 2009q4 - 2015q4 + #NOTE: this raises but shouldn't, dynamic forecasts could start + #one period out + start, end = 203, 227 + fv = res1.predict(start, end, typ='levels') + assert_almost_equal(fv, fc[start:end+1], DECIMAL_4) + # defaults + start, end = None, None + fv = res1.predict(start, end, typ='levels') + assert_almost_equal(fv, fc[1:203], DECIMAL_4) + + #### Dynamic ##### + + # start < p, end

    0 1959q3 - 1971q4 + #start, end = 2, 51 + #fv = res1.predict(start, end, dynamic=True, typ='levels') + #assert_almost_equal(fv, fcdyn[5:end+1], DECIMAL_4) + ## start < p, end nobs 1959q3 - 2009q3 + #start, end = 2, 202 + #fv = res1.predict(start, end, dynamic=True, typ='levels') + #assert_almost_equal(fv, fcdyn[5:end+1], DECIMAL_4) + ## start < p, end >nobs 1959q3 - 2015q4 + #start, end = 2, 227 + #fv = res1.predict(start, end, dynamic=True, typ='levels') + #assert_almost_equal(fv, fcdyn[5:end+1], DECIMAL_4) + # start 0, end >0 1960q1 - 1971q4 + start, end = 5, 51 + fv = res1.predict(start, end, dynamic=True, typ='levels') + assert_almost_equal(fv, fcdyn[start:end+1], DECIMAL_4) + # start 0, end nobs 1960q1 - 2009q3 + start, end = 5, 202 + fv = res1.predict(start, end, dynamic=True, typ='levels') + assert_almost_equal(fv, fcdyn[start:end+1], DECIMAL_4) + # start 0, end >nobs 1960q1 - 2015q4 + start, end = 5, 227 + fv = res1.predict(start, end, dynamic=True, typ='levels') + assert_almost_equal(fv, fcdyn[start:end+1], DECIMAL_4) + # start >p, end >0 1965q1 - 1971q4 + start, end = 24, 51 + fv = res1.predict(start, end, dynamic=True, typ='levels') + assert_almost_equal(fv, fcdyn2[start:end+1], DECIMAL_4) + # start >p, end nobs 1965q1 - 2009q3 + start, end = 24, 202 + fv = res1.predict(start, end, dynamic=True, typ='levels') + assert_almost_equal(fv, fcdyn2[start:end+1], DECIMAL_4) + # start >p, end >nobs 1965q1 - 2015q4 + start, end = 24, 227 + fv = res1.predict(start, end, dynamic=True, typ='levels') + assert_almost_equal(fv, fcdyn2[start:end+1], DECIMAL_4) + # start nobs, end nobs 2009q3 - 2009q3 + start, end = 202, 202 + fv = res1.predict(start, end, dynamic=True, typ='levels') + assert_almost_equal(fv, fcdyn3[start:end+1], DECIMAL_4) + # start nobs, end >nobs 2009q3 - 2015q4 + start, end = 202, 227 + fv = res1.predict(start, end, dynamic=True, typ='levels') + assert_almost_equal(fv, fcdyn3[start:end+1], DECIMAL_4) + # start >nobs, end >nobs 2009q4 - 2015q4 + start, end = 203, 227 + fv = res1.predict(start, end, dynamic=True, typ='levels') + assert_almost_equal(fv, fcdyn4[start:end+1], DECIMAL_4) + # defaults + start, end = None, None + fv = res1.predict(start, end, dynamic=True, typ='levels') + assert_almost_equal(fv, fcdyn[5:203], DECIMAL_4) + + +def _check_start(model, given, expected, dynamic): + start = model._get_predict_start(given, dynamic) + assert_equal(start, expected) + + +def _check_end(model, given, end_expect, out_of_sample_expect): + end, out_of_sample = model._get_predict_end(given) + assert_equal((end, out_of_sample), (end_expect, out_of_sample_expect)) + + +def test_arma_predict_indices(): + from statsmodels.datasets.sunspots import load + sunspots = load().data['SUNACTIVITY'] + model = ARMA(sunspots, (9,0), dates=sun_dates, freq='A') + model.method = 'mle' + + # raises - pre-sample + dynamic + assert_raises(ValueError, model._get_predict_start, *(0, True)) + assert_raises(ValueError, model._get_predict_start, *(8, True)) + assert_raises(ValueError, model._get_predict_start, *('1700', True)) + assert_raises(ValueError, model._get_predict_start, *('1708', True)) + + # raises - start out of sample + assert_raises(ValueError, model._get_predict_start, *(311, True)) + assert_raises(ValueError, model._get_predict_start, *(311, False)) + assert_raises(ValueError, model._get_predict_start, *('2010', True)) + assert_raises(ValueError, model._get_predict_start, *('2010', False)) + + # works - in-sample + # None + # given, expected, dynamic + start_test_cases = [ + (None, 9, True), + # all start get moved back by k_diff + (9, 9, True), + (10, 10, True), + # what about end of sample start - last value is first + # forecast + (309, 309, True), + (308, 308, True), + (0, 0, False), + (1, 1, False), + (4, 4, False), + + # all start get moved back by k_diff + ('1709', 9, True), + ('1710', 10, True), + # what about end of sample start - last value is first + # forecast + ('2008', 308, True), + ('2009', 309, True), + ('1700', 0, False), + ('1708', 8, False), + ('1709', 9, False), + ] + + for case in start_test_cases: + _check_start(*((model,) + case)) + + # the length of sunspot is 309, so last index is 208 + end_test_cases = [(None, 308, 0), + (307, 307, 0), + (308, 308, 0), + (309, 308, 1), + (312, 308, 4), + (51, 51, 0), + (333, 308, 25), + + ('2007', 307, 0), + ('2008', 308, 0), + ('2009', 308, 1), + ('2012', 308, 4), + ('1815', 115, 0), + ('2033', 308, 25), + ] + + for case in end_test_cases: + _check_end(*((model,)+case)) + + +def test_arima_predict_indices(): + cpi = load_macrodata().data['cpi'] + model = ARIMA(cpi, (4,1,1), dates=cpi_dates, freq='Q') + model.method = 'mle' + + # starting indices + + # raises - pre-sample + dynamic + assert_raises(ValueError, model._get_predict_start, *(0, True)) + assert_raises(ValueError, model._get_predict_start, *(4, True)) + assert_raises(ValueError, model._get_predict_start, *('1959Q1', True)) + assert_raises(ValueError, model._get_predict_start, *('1960Q1', True)) + + # raises - index differenced away + assert_raises(ValueError, model._get_predict_start, *(0, False)) + assert_raises(ValueError, model._get_predict_start, *('1959Q1', False)) + + # raises - start out of sample + assert_raises(ValueError, model._get_predict_start, *(204, True)) + assert_raises(ValueError, model._get_predict_start, *(204, False)) + assert_raises(ValueError, model._get_predict_start, *('2010Q1', True)) + assert_raises(ValueError, model._get_predict_start, *('2010Q1', False)) + + # works - in-sample + # None + # given, expected, dynamic + start_test_cases = [ + (None, 4, True), + # all start get moved back by k_diff + (5, 4, True), + (6, 5, True), + # what about end of sample start - last value is first + # forecast + (203, 202, True), + (1, 0, False), + (4, 3, False), + (5, 4, False), + # all start get moved back by k_diff + ('1960Q2', 4, True), + ('1960Q3', 5, True), + # what about end of sample start - last value is first + # forecast + ('2009Q4', 202, True), + ('1959Q2', 0, False), + ('1960Q1', 3, False), + ('1960Q2', 4, False), + ] + + for case in start_test_cases: + _check_start(*((model,) + case)) + + # check raises + #TODO: make sure dates are passing through unmolested + #assert_raises(ValueError, model._get_predict_end, ("2001-1-1",)) + + + # the length of diff(cpi) is 202, so last index is 201 + end_test_cases = [(None, 201, 0), + (201, 200, 0), + (202, 201, 0), + (203, 201, 1), + (204, 201, 2), + (51, 50, 0), + (164+63, 201, 25), + + ('2009Q2', 200, 0), + ('2009Q3', 201, 0), + ('2009Q4', 201, 1), + ('2010Q1', 201, 2), + ('1971Q4', 50, 0), + ('2015Q4', 201, 25), + ] + + for case in end_test_cases: + _check_end(*((model,)+case)) + + # check higher k_diff + + model.k_diff = 2 + # raises - pre-sample + dynamic + assert_raises(ValueError, model._get_predict_start, *(0, True)) + assert_raises(ValueError, model._get_predict_start, *(5, True)) + assert_raises(ValueError, model._get_predict_start, *('1959Q1', True)) + assert_raises(ValueError, model._get_predict_start, *('1960Q1', True)) + + # raises - index differenced away + assert_raises(ValueError, model._get_predict_start, *(1, False)) + assert_raises(ValueError, model._get_predict_start, *('1959Q2', False)) + + start_test_cases = [(None, 4, True), + # all start get moved back by k_diff + (6, 4, True), + # what about end of sample start - last value is first + # forecast + (203, 201, True), + (2, 0, False), + (4, 2, False), + (5, 3, False), + ('1960Q3', 4, True), + # what about end of sample start - last value is first + # forecast + ('2009Q4', 201, True), + ('2009Q4', 201, True), + ('1959Q3', 0, False), + ('1960Q1', 2, False), + ('1960Q2', 3, False), + ] + + for case in start_test_cases: + _check_start(*((model,)+case)) + + end_test_cases = [(None, 200, 0), + (201, 199, 0), + (202, 200, 0), + (203, 200, 1), + (204, 200, 2), + (51, 49, 0), + (164+63, 200, 25), + + ('2009Q2', 199, 0), + ('2009Q3', 200, 0), + ('2009Q4', 200, 1), + ('2010Q1', 200, 2), + ('1971Q4', 49, 0), + ('2015Q4', 200, 25), + ] + + for case in end_test_cases: + _check_end(*((model,)+case)) + + +def test_arima_predict_indices_css(): + cpi = load_macrodata().data['cpi'] + #NOTE: Doing no-constant for now to kick the conditional exogenous + #issue 274 down the road + # go ahead and git the model to set up necessary variables + model = ARIMA(cpi, (4,1,1)) + model.method = 'css' + + assert_raises(ValueError, model._get_predict_start, *(0, False)) + assert_raises(ValueError, model._get_predict_start, *(0, True)) + assert_raises(ValueError, model._get_predict_start, *(2, False)) + assert_raises(ValueError, model._get_predict_start, *(2, True)) + + +def test_arima_predict_css(): + cpi = load_macrodata().data['cpi'] + #NOTE: Doing no-constant for now to kick the conditional exogenous + #issue 274 down the road + # go ahead and git the model to set up necessary variables + res1 = ARIMA(cpi, (4,1,1)).fit(disp=-1, method="css", + trend="nc") + # but use gretl parameters to predict to avoid precision problems + params = np.array([ 1.231272508473910, + -0.282516097759915, + 0.170052755782440, + -0.118203728504945, + -0.938783134717947]) + + with open(current_path + '/results/results_arima_forecasts_all_css.csv', "rb") as test_data: + arima_forecasts = np.genfromtxt(test_data, delimiter=",", skip_header=1, dtype=float) + fc = arima_forecasts[:,0] + fcdyn = arima_forecasts[:,1] + fcdyn2 = arima_forecasts[:,2] + fcdyn3 = arima_forecasts[:,3] + fcdyn4 = arima_forecasts[:,4] + + #NOTE: should raise + #start, end = 1,3 + #fv = res1.model.predict(params, start, end) + ## start < p, end 0 1959q3 - 1960q1 + #start, end = 2, 4 + #fv = res1.model.predict(params, start, end) + ## start < p, end >0 1959q3 - 1971q4 + #start, end = 2, 51 + #fv = res1.model.predict(params, start, end) + ## start < p, end nobs 1959q3 - 2009q3 + #start, end = 2, 202 + #fv = res1.model.predict(params, start, end) + ## start < p, end >nobs 1959q3 - 2015q4 + #start, end = 2, 227 + #fv = res1.model.predict(params, start, end) + # start 0, end >0 1960q1 - 1971q4 + start, end = 5, 51 + fv = res1.model.predict(params, start, end, typ='levels') + assert_almost_equal(fv, fc[start:end+1], DECIMAL_4) + # start 0, end nobs 1960q1 - 2009q3 + start, end = 5, 202 + fv = res1.model.predict(params, start, end, typ='levels') + assert_almost_equal(fv, fc[start:end+1], DECIMAL_4) + # start 0, end >nobs 1960q1 - 2015q4 + #TODO: why detoriating precision? + fv = res1.model.predict(params, start, end, typ='levels') + assert_almost_equal(fv, fc[start:end+1], DECIMAL_4) + # start >p, end >0 1965q1 - 1971q4 + start, end = 24, 51 + fv = res1.model.predict(params, start, end, typ='levels') + assert_almost_equal(fv, fc[start:end+1], DECIMAL_4) + # start >p, end nobs 1965q1 - 2009q3 + start, end = 24, 202 + fv = res1.model.predict(params, start, end, typ='levels') + assert_almost_equal(fv, fc[start:end+1], DECIMAL_4) + # start >p, end >nobs 1965q1 - 2015q4 + start, end = 24, 227 + fv = res1.model.predict(params, start, end, typ='levels') + assert_almost_equal(fv, fc[start:end+1], DECIMAL_4) + # start nobs, end nobs 2009q3 - 2009q3 + start, end = 202, 202 + fv = res1.model.predict(params, start, end, typ='levels') + assert_almost_equal(fv, fc[start:end+1], DECIMAL_4) + # start nobs, end >nobs 2009q3 - 2015q4 + start, end = 202, 227 + fv = res1.model.predict(params, start, end, typ='levels') + assert_almost_equal(fv, fc[start:end+1], DECIMAL_4) + # start >nobs, end >nobs 2009q4 - 2015q4 + start, end = 203, 227 + fv = res1.model.predict(params, start, end, typ='levels') + assert_almost_equal(fv, fc[start:end+1], DECIMAL_4) + # defaults + start, end = None, None + fv = res1.model.predict(params, start, end, typ='levels') + assert_almost_equal(fv, fc[5:203], DECIMAL_4) + + #### Dynamic ##### + + #NOTE: should raise + # start < p, end

    0 1959q3 - 1971q4 + #start, end = 2, 51 + #fv = res1.predict(start, end, dynamic=True) + ## start < p, end nobs 1959q3 - 2009q3 + #start, end = 2, 202 + #fv = res1.predict(start, end, dynamic=True) + ## start < p, end >nobs 1959q3 - 2015q4 + #start, end = 2, 227 + #fv = res1.predict(start, end, dynamic=True) + # start 0, end >0 1960q1 - 1971q4 + start, end = 5, 51 + fv = res1.model.predict(params, start, end, dynamic=True, typ='levels') + assert_almost_equal(fv, fcdyn[start:end+1], DECIMAL_4) + # start 0, end nobs 1960q1 - 2009q3 + start, end = 5, 202 + fv = res1.model.predict(params, start, end, dynamic=True, typ='levels') + assert_almost_equal(fv, fcdyn[start:end+1], DECIMAL_4) + # start 0, end >nobs 1960q1 - 2015q4 + start, end = 5, 227 + fv = res1.model.predict(params, start, end, dynamic=True, typ='levels') + assert_almost_equal(fv, fcdyn[start:end+1], DECIMAL_4) + # start >p, end >0 1965q1 - 1971q4 + start, end = 24, 51 + fv = res1.model.predict(params, start, end, dynamic=True, typ='levels') + assert_almost_equal(fv, fcdyn2[start:end+1], DECIMAL_4) + # start >p, end nobs 1965q1 - 2009q3 + start, end = 24, 202 + fv = res1.model.predict(params, start, end, dynamic=True, typ='levels') + assert_almost_equal(fv, fcdyn2[start:end+1], DECIMAL_4) + # start >p, end >nobs 1965q1 - 2015q4 + start, end = 24, 227 + fv = res1.model.predict(params, start, end, dynamic=True, typ='levels') + assert_almost_equal(fv, fcdyn2[start:end+1], DECIMAL_4) + # start nobs, end nobs 2009q3 - 2009q3 + start, end = 202, 202 + fv = res1.model.predict(params, start, end, dynamic=True, typ='levels') + assert_almost_equal(fv, fcdyn3[start:end+1], DECIMAL_4) + # start nobs, end >nobs 2009q3 - 2015q4 + start, end = 202, 227 + fv = res1.model.predict(params, start, end, dynamic=True, typ='levels') + # start >nobs, end >nobs 2009q4 - 2015q4 + start, end = 203, 227 + fv = res1.model.predict(params, start, end, dynamic=True, typ='levels') + assert_almost_equal(fv, fcdyn4[start:end+1], DECIMAL_4) + # defaults + start, end = None, None + fv = res1.model.predict(params, start, end, dynamic=True, typ='levels') + assert_almost_equal(fv, fcdyn[5:203], DECIMAL_4) + + +def test_arima_predict_css_diffs(): + + cpi = load_macrodata().data['cpi'] + #NOTE: Doing no-constant for now to kick the conditional exogenous + #issue 274 down the road + # go ahead and git the model to set up necessary variables + res1 = ARIMA(cpi, (4,1,1)).fit(disp=-1, method="css", + trend="c") + # but use gretl parameters to predict to avoid precision problems + params = np.array([0.78349893861244, + -0.533444105973324, + 0.321103691668809, + 0.264012463189186, + 0.107888256920655, + 0.920132542916995]) + # we report mean, should we report constant? + params[0] = params[0] / (1 - params[1:5].sum()) + + with open(current_path + '/results/results_arima_forecasts_all_css_diff.csv', "rb") as test_data: + arima_forecasts = np.genfromtxt(test_data, delimiter=",", skip_header=1, dtype=float) + fc = arima_forecasts[:,0] + fcdyn = arima_forecasts[:,1] + fcdyn2 = arima_forecasts[:,2] + fcdyn3 = arima_forecasts[:,3] + fcdyn4 = arima_forecasts[:,4] + + #NOTE: should raise + #start, end = 1,3 + #fv = res1.model.predict(params, start, end) + ## start < p, end 0 1959q3 - 1960q1 + #start, end = 2, 4 + #fv = res1.model.predict(params, start, end) + ## start < p, end >0 1959q3 - 1971q4 + #start, end = 2, 51 + #fv = res1.model.predict(params, start, end) + ## start < p, end nobs 1959q3 - 2009q3 + #start, end = 2, 202 + #fv = res1.model.predict(params, start, end) + ## start < p, end >nobs 1959q3 - 2015q4 + #start, end = 2, 227 + #fv = res1.model.predict(params, start, end) + # start 0, end >0 1960q1 - 1971q4 + start, end = 5, 51 + fv = res1.model.predict(params, start, end) + assert_almost_equal(fv, fc[start:end+1], DECIMAL_4) + # start 0, end nobs 1960q1 - 2009q3 + start, end = 5, 202 + fv = res1.model.predict(params, start, end) + assert_almost_equal(fv, fc[start:end+1], DECIMAL_4) + # start 0, end >nobs 1960q1 - 2015q4 + #TODO: why detoriating precision? + fv = res1.model.predict(params, start, end) + assert_almost_equal(fv, fc[start:end+1], DECIMAL_4) + # start >p, end >0 1965q1 - 1971q4 + start, end = 24, 51 + fv = res1.model.predict(params, start, end) + assert_almost_equal(fv, fc[start:end+1], DECIMAL_4) + # start >p, end nobs 1965q1 - 2009q3 + start, end = 24, 202 + fv = res1.model.predict(params, start, end) + assert_almost_equal(fv, fc[start:end+1], DECIMAL_4) + # start >p, end >nobs 1965q1 - 2015q4 + start, end = 24, 227 + fv = res1.model.predict(params, start, end) + assert_almost_equal(fv, fc[start:end+1], DECIMAL_4) + # start nobs, end nobs 2009q3 - 2009q3 + start, end = 202, 202 + fv = res1.model.predict(params, start, end) + assert_almost_equal(fv, fc[start:end+1], DECIMAL_4) + # start nobs, end >nobs 2009q3 - 2015q4 + start, end = 202, 227 + fv = res1.model.predict(params, start, end) + assert_almost_equal(fv, fc[start:end+1], DECIMAL_4) + # start >nobs, end >nobs 2009q4 - 2015q4 + start, end = 203, 227 + fv = res1.model.predict(params, start, end) + assert_almost_equal(fv, fc[start:end+1], DECIMAL_4) + # defaults + start, end = None, None + fv = res1.model.predict(params, start, end) + assert_almost_equal(fv, fc[5:203], DECIMAL_4) + + #### Dynamic ##### + + #NOTE: should raise + # start < p, end

    0 1959q3 - 1971q4 + #start, end = 2, 51 + #fv = res1.predict(start, end, dynamic=True) + ## start < p, end nobs 1959q3 - 2009q3 + #start, end = 2, 202 + #fv = res1.predict(start, end, dynamic=True) + ## start < p, end >nobs 1959q3 - 2015q4 + #start, end = 2, 227 + #fv = res1.predict(start, end, dynamic=True) + # start 0, end >0 1960q1 - 1971q4 + start, end = 5, 51 + fv = res1.model.predict(params, start, end, dynamic=True) + assert_almost_equal(fv, fcdyn[start:end+1], DECIMAL_4) + # start 0, end nobs 1960q1 - 2009q3 + start, end = 5, 202 + fv = res1.model.predict(params, start, end, dynamic=True) + assert_almost_equal(fv, fcdyn[start:end+1], DECIMAL_4) + # start 0, end >nobs 1960q1 - 2015q4 + start, end = 5, 227 + fv = res1.model.predict(params, start, end, dynamic=True) + assert_almost_equal(fv, fcdyn[start:end+1], DECIMAL_4) + # start >p, end >0 1965q1 - 1971q4 + start, end = 24, 51 + fv = res1.model.predict(params, start, end, dynamic=True) + assert_almost_equal(fv, fcdyn2[start:end+1], DECIMAL_4) + # start >p, end nobs 1965q1 - 2009q3 + start, end = 24, 202 + fv = res1.model.predict(params, start, end, dynamic=True) + assert_almost_equal(fv, fcdyn2[start:end+1], DECIMAL_4) + # start >p, end >nobs 1965q1 - 2015q4 + start, end = 24, 227 + fv = res1.model.predict(params, start, end, dynamic=True) + assert_almost_equal(fv, fcdyn2[start:end+1], DECIMAL_4) + # start nobs, end nobs 2009q3 - 2009q3 + start, end = 202, 202 + fv = res1.model.predict(params, start, end, dynamic=True) + assert_almost_equal(fv, fcdyn3[start:end+1], DECIMAL_4) + # start nobs, end >nobs 2009q3 - 2015q4 + start, end = 202, 227 + fv = res1.model.predict(params, start, end, dynamic=True) + # start >nobs, end >nobs 2009q4 - 2015q4 + start, end = 203, 227 + fv = res1.model.predict(params, start, end, dynamic=True) + assert_almost_equal(fv, fcdyn4[start:end+1], DECIMAL_4) + # defaults + start, end = None, None + fv = res1.model.predict(params, start, end, dynamic=True) + assert_almost_equal(fv, fcdyn[5:203], DECIMAL_4) + + +def test_arima_predict_mle_diffs(): + + cpi = load_macrodata().data['cpi'] + #NOTE: Doing no-constant for now to kick the conditional exogenous + #issue 274 down the road + # go ahead and git the model to set up necessary variables + res1 = ARIMA(cpi, (4,1,1)).fit(disp=-1, trend="c") + # but use gretl parameters to predict to avoid precision problems + params = np.array([0.926875951549299, + -0.555862621524846, + 0.320865492764400, + 0.252253019082800, + 0.113624958031799, + 0.939144026934634]) + + with open(current_path + '/results/results_arima_forecasts_all_mle_diff.csv', "rb") as test_data: + arima_forecasts = np.genfromtxt(test_data, delimiter=",", skip_header=1, dtype=float) + fc = arima_forecasts[:,0] + fcdyn = arima_forecasts[:,1] + fcdyn2 = arima_forecasts[:,2] + fcdyn3 = arima_forecasts[:,3] + fcdyn4 = arima_forecasts[:,4] + + #NOTE: should raise + start, end = 1,3 + fv = res1.model.predict(params, start, end) + ## start < p, end 0 1959q3 - 1960q1 + start, end = 2, 4 + fv = res1.model.predict(params, start, end) + ## start < p, end >0 1959q3 - 1971q4 + start, end = 2, 51 + fv = res1.model.predict(params, start, end) + ## start < p, end nobs 1959q3 - 2009q3 + start, end = 2, 202 + fv = res1.model.predict(params, start, end) + ## start < p, end >nobs 1959q3 - 2015q4 + start, end = 2, 227 + fv = res1.model.predict(params, start, end) + # start 0, end >0 1960q1 - 1971q4 + start, end = 5, 51 + fv = res1.model.predict(params, start, end) + assert_almost_equal(fv, fc[start:end+1], DECIMAL_4) + # start 0, end nobs 1960q1 - 2009q3 + start, end = 5, 202 + fv = res1.model.predict(params, start, end) + assert_almost_equal(fv, fc[start:end+1], DECIMAL_4) + # start 0, end >nobs 1960q1 - 2015q4 + #TODO: why detoriating precision? + fv = res1.model.predict(params, start, end) + assert_almost_equal(fv, fc[start:end+1], DECIMAL_4) + # start >p, end >0 1965q1 - 1971q4 + start, end = 24, 51 + fv = res1.model.predict(params, start, end) + assert_almost_equal(fv, fc[start:end+1], DECIMAL_4) + # start >p, end nobs 1965q1 - 2009q3 + start, end = 24, 202 + fv = res1.model.predict(params, start, end) + assert_almost_equal(fv, fc[start:end+1], DECIMAL_4) + # start >p, end >nobs 1965q1 - 2015q4 + start, end = 24, 227 + fv = res1.model.predict(params, start, end) + assert_almost_equal(fv, fc[start:end+1], DECIMAL_4) + # start nobs, end nobs 2009q3 - 2009q3 + start, end = 202, 202 + fv = res1.model.predict(params, start, end) + assert_almost_equal(fv, fc[start:end+1], DECIMAL_4) + # start nobs, end >nobs 2009q3 - 2015q4 + start, end = 202, 227 + fv = res1.model.predict(params, start, end) + assert_almost_equal(fv, fc[start:end+1], DECIMAL_4) + # start >nobs, end >nobs 2009q4 - 2015q4 + start, end = 203, 227 + fv = res1.model.predict(params, start, end) + assert_almost_equal(fv, fc[start:end+1], DECIMAL_4) + # defaults + start, end = None, None + fv = res1.model.predict(params, start, end) + assert_almost_equal(fv, fc[1:203], DECIMAL_4) + + #### Dynamic ##### + + #NOTE: should raise + # start < p, end

    0 1959q3 - 1971q4 + #start, end = 2, 51 + #fv = res1.predict(start, end, dynamic=True) + ## start < p, end nobs 1959q3 - 2009q3 + #start, end = 2, 202 + #fv = res1.predict(start, end, dynamic=True) + ## start < p, end >nobs 1959q3 - 2015q4 + #start, end = 2, 227 + #fv = res1.predict(start, end, dynamic=True) + # start 0, end >0 1960q1 - 1971q4 + start, end = 5, 51 + fv = res1.model.predict(params, start, end, dynamic=True) + assert_almost_equal(fv, fcdyn[start:end+1], DECIMAL_4) + # start 0, end nobs 1960q1 - 2009q3 + start, end = 5, 202 + fv = res1.model.predict(params, start, end, dynamic=True) + assert_almost_equal(fv, fcdyn[start:end+1], DECIMAL_4) + # start 0, end >nobs 1960q1 - 2015q4 + start, end = 5, 227 + fv = res1.model.predict(params, start, end, dynamic=True) + assert_almost_equal(fv, fcdyn[start:end+1], DECIMAL_4) + # start >p, end >0 1965q1 - 1971q4 + start, end = 24, 51 + fv = res1.model.predict(params, start, end, dynamic=True) + assert_almost_equal(fv, fcdyn2[start:end+1], DECIMAL_4) + # start >p, end nobs 1965q1 - 2009q3 + start, end = 24, 202 + fv = res1.model.predict(params, start, end, dynamic=True) + assert_almost_equal(fv, fcdyn2[start:end+1], DECIMAL_4) + # start >p, end >nobs 1965q1 - 2015q4 + start, end = 24, 227 + fv = res1.model.predict(params, start, end, dynamic=True) + assert_almost_equal(fv, fcdyn2[start:end+1], DECIMAL_4) + # start nobs, end nobs 2009q3 - 2009q3 + start, end = 202, 202 + fv = res1.model.predict(params, start, end, dynamic=True) + assert_almost_equal(fv, fcdyn3[start:end+1], DECIMAL_4) + # start nobs, end >nobs 2009q3 - 2015q4 + start, end = 202, 227 + fv = res1.model.predict(params, start, end, dynamic=True) + # start >nobs, end >nobs 2009q4 - 2015q4 + start, end = 203, 227 + fv = res1.model.predict(params, start, end, dynamic=True) + assert_almost_equal(fv, fcdyn4[start:end+1], DECIMAL_4) + # defaults + start, end = None, None + fv = res1.model.predict(params, start, end, dynamic=True) + assert_almost_equal(fv, fcdyn[5:203], DECIMAL_4) + + +def test_arima_wrapper(): + cpi = load_macrodata_pandas().data['cpi'] + cpi.index = pd.Index(cpi_dates) + res = ARIMA(cpi, (4,1,1), freq='Q').fit(disp=-1) + assert_equal(res.params.index, pd.Index(['const', 'ar.L1.D.cpi', 'ar.L2.D.cpi', + 'ar.L3.D.cpi', 'ar.L4.D.cpi', + 'ma.L1.D.cpi'])) + assert_equal(res.model.endog_names, 'D.cpi') + + +def test_1dexog(): + # smoke test, this will raise an error if broken + dta = load_macrodata_pandas().data + endog = dta['realcons'].values + exog = dta['m1'].values.squeeze() + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + mod = ARMA(endog, (1,1), exog).fit(disp=-1) + mod.predict(193, 203, exog[-10:]) + + # check for dynamic is true and pandas Series see #2589 + mod.predict(193, 202, exog[-10:], dynamic=True) + + dta.index = pd.Index(cpi_dates) + mod = ARMA(dta['realcons'], (1,1), dta['m1']).fit(disp=-1) + mod.predict(dta.index[-10], dta.index[-1], exog=dta['m1'][-10:], dynamic=True) + + mod = ARMA(dta['realcons'], (1,1), dta['m1']).fit(trend='nc', disp=-1) + mod.predict(dta.index[-10], dta.index[-1], exog=dta['m1'][-10:], dynamic=True) + + +def test_arima_predict_bug(): + #predict_start_date wasn't getting set on start = None + from statsmodels.datasets import sunspots + dta = sunspots.load_pandas().data.SUNACTIVITY + dta.index = pd.Index(dates_from_range('1700', '2008')) + arma_mod20 = ARMA(dta, (2,0)).fit(disp=-1) + arma_mod20.predict(None, None) + + # test prediction with time stamp, see #2587 + predict = arma_mod20.predict(dta.index[-20], dta.index[-1]) + assert_(predict.index.equals(dta.index[-20:])) + predict = arma_mod20.predict(dta.index[-20], dta.index[-1], dynamic=True) + assert_(predict.index.equals(dta.index[-20:])) + # partially out of sample + predict_dates = pd.Index(dates_from_range('2000', '2015')) + predict = arma_mod20.predict(predict_dates[0], predict_dates[-1]) + assert_(predict.index.equals(predict_dates)) + #assert_(1 == 0) + + +def test_arima_predict_q2(): + # bug with q > 1 for arima predict + inv = load_macrodata().data['realinv'] + arima_mod = ARIMA(np.log(inv), (1,1,2)).fit(start_params=[0,0,0,0], disp=-1) + fc, stderr, conf_int = arima_mod.forecast(5) + # values copy-pasted from gretl + assert_almost_equal(fc, + [7.306320, 7.313825, 7.321749, 7.329827, 7.337962], + 5) + + +def test_arima_predict_pandas_nofreq(): + # this is issue 712 + dates = ["2010-01-04", "2010-01-05", "2010-01-06", "2010-01-07", + "2010-01-08", "2010-01-11", "2010-01-12", "2010-01-11", + "2010-01-12", "2010-01-13", "2010-01-17"] + close = [626.75, 623.99, 608.26, 594.1, 602.02, 601.11, 590.48, 587.09, + 589.85, 580.0,587.62] + data = pd.DataFrame(close, index=DatetimeIndex(dates), columns=["close"]) + + #TODO: fix this names bug for non-string names names + arma = ARMA(data, order=(1,0)).fit(disp=-1) + + # first check that in-sample prediction works + predict = arma.predict() + assert_(predict.index.equals(data.index)) + + # check that this raises an exception when date not on index + assert_raises(ValueError, arma.predict, start="2010-1-9", end=10) + assert_raises(ValueError, arma.predict, start="2010-1-9", end="2010-1-17") + + # raise because end not on index + assert_raises(ValueError, arma.predict, start="2010-1-4", end="2010-1-10") + # raise because end not on index + assert_raises(ValueError, arma.predict, start=3, end="2010-1-10") + + predict = arma.predict(start="2010-1-7", end=10) # should be of length 10 + assert_(len(predict) == 8) + assert_(predict.index.equals(data.index[3:10+1])) + + predict = arma.predict(start="2010-1-7", end=14) + assert_(predict.index.equals(pd.Index(lrange(3, 15)))) + + predict = arma.predict(start=3, end=14) + assert_(predict.index.equals(pd.Index(lrange(3, 15)))) + + # end can be a date if it's in the sample and on the index + # predict dates is just a slice of the dates index then + predict = arma.predict(start="2010-1-6", end="2010-1-13") + assert_(predict.index.equals(data.index[2:10])) + predict = arma.predict(start=2, end="2010-1-13") + assert_(predict.index.equals(data.index[2:10])) + + +def test_arima_predict_exog(): + # check 625 and 626 + #from statsmodels.tsa.arima_process import arma_generate_sample + #arparams = np.array([1, -.45, .25]) + #maparams = np.array([1, .15]) + #nobs = 100 + #np.random.seed(123) + #y = arma_generate_sample(arparams, maparams, nobs, burnin=100) + + ## make an exogenous trend + #X = np.array(lrange(nobs)) / 20.0 + ## add a constant + #y += 2.5 + + from pandas import read_csv + arima_forecasts = read_csv(current_path + "/results/" + "results_arima_exog_forecasts_mle.csv") + y = arima_forecasts["y"].dropna() + X = np.arange(len(y) + 25)/20. + predict_expected = arima_forecasts["predict"] + arma_res = ARMA(y.values, order=(2,1), exog=X[:100]).fit(trend="c", + disp=-1) + # params from gretl + params = np.array([2.786912485145725, -0.122650190196475, + 0.533223846028938, -0.319344321763337, + 0.132883233000064]) + assert_almost_equal(arma_res.params, params, 5) + # no exog for in-sample + predict = arma_res.predict() + assert_almost_equal(predict, predict_expected.values[:100], 5) + + # check 626 + assert_(len(arma_res.model.exog_names) == 5) + + # exog for out-of-sample and in-sample dynamic + predict = arma_res.model.predict(params, end=124, exog=X[100:]) + assert_almost_equal(predict, predict_expected.values, 6) + + # conditional sum of squares + #arima_forecasts = read_csv(current_path + "/results/" + # "results_arima_exog_forecasts_css.csv") + #predict_expected = arima_forecasts["predict"].dropna() + #arma_res = ARMA(y.values, order=(2,1), exog=X[:100]).fit(trend="c", + # method="css", + # disp=-1) + + #params = np.array([2.152350033809826, -0.103602399018814, + # 0.566716580421188, -0.326208009247944, + # 0.102142932143421]) + #predict = arma_res.model.predict(params) + ## in-sample + #assert_almost_equal(predict, predict_expected.values[:98], 6) + + + #predict = arma_res.model.predict(params, end=124, exog=X[100:]) + ## exog for out-of-sample and in-sample dynamic + #assert_almost_equal(predict, predict_expected.values, 3) + + +def test_arima_no_diff(): + # issue 736 + # smoke test, predict will break if we have ARIMAResults but + # ARMA model, need ARIMA(p, 0, q) to return an ARMA in init. + ar = [1, -.75, .15, .35] + ma = [1, .25, .9] + y = arma_generate_sample(ar, ma, 100) + mod = ARIMA(y, (3, 0, 2)) + assert_(type(mod) is ARMA) + res = mod.fit(disp=-1) + # smoke test just to be sure + res.predict() + + +def test_arima_predict_noma(): + # issue 657 + # smoke test + ar = [1, .75] + ma = [1] + data = arma_generate_sample(ar, ma, 100) + arma = ARMA(data, order=(0,1)) + arma_res = arma.fit(disp=-1) + arma_res.forecast(1) + + +def test_arimax(): + dta = load_macrodata_pandas().data + dates = dates_from_range("1959Q1", length=len(dta)) + dta.index = cpi_dates + dta = dta[["realdpi", "m1", "realgdp"]] + y = dta.pop("realdpi") + + # 1 exog + #X = dta.ix[1:]["m1"] + #res = ARIMA(y, (2, 1, 1), X).fit(disp=-1) + #params = [23.902305009084373, 0.024650911502790, -0.162140641341602, + # 0.165262136028113, -0.066667022903974] + #assert_almost_equal(res.params.values, params, 6) + + + # 2 exog + X = dta + res = ARIMA(y, (2, 1, 1), X).fit(disp=False, solver="nm", maxiter=1000, + ftol=1e-12, xtol=1e-12) + + # from gretl + #params = [13.113976653926638, -0.003792125069387, 0.004123504809217, + # -0.199213760940898, 0.151563643588008, -0.033088661096699] + # from stata using double + stata_llf = -1076.108614859121 + params = [13.1259220104, -0.00376814509403812, 0.00411970083135622, + -0.19921477896158524, 0.15154396192855729, -0.03308400760360837] + # we can get close + assert_almost_equal(res.params.values, params, 4) + + # This shows that it's an optimizer problem and not a problem in the code + assert_almost_equal(res.model.loglike(np.array(params)), stata_llf, 6) + + X = dta.diff() + X.iloc[0] = 0 + res = ARIMA(y, (2, 1, 1), X).fit(disp=False) + + # gretl won't estimate this - looks like maybe a bug on their part, + # but we can just fine, we're close to Stata's answer + # from Stata + params = [19.5656863783347, 0.32653841355833396198, + 0.36286527042965188716, -1.01133792126884, + -0.15722368379307766206, 0.69359822544092153418] + + assert_almost_equal(res.params.values, params, 3) + + +def test_bad_start_params(): + endog = np.array([820.69093, 781.0103028, 785.8786988, 767.64282267, + 778.9837648 , 824.6595702 , 813.01877867, 751.65598567, + 753.431091 , 746.920813 , 795.6201904 , 772.65732833, + 793.4486454 , 868.8457766 , 823.07226547, 783.09067747, + 791.50723847, 770.93086347, 835.34157333, 810.64147947, + 738.36071367, 776.49038513, 822.93272333, 815.26461227, + 773.70552987, 777.3726522 , 811.83444853, 840.95489133, + 777.51031933, 745.90077307, 806.95113093, 805.77521973, + 756.70927733, 749.89091773, 1694.2266924 , 2398.4802244 , + 1434.6728516 , 909.73940427, 929.01291907, 769.07561453, + 801.1112548 , 796.16163313, 817.2496376 , 857.73046447, + 838.849345 , 761.92338873, 731.7842242 , 770.4641844 ]) + mod = ARMA(endog, (15, 0)) + assert_raises(ValueError, mod.fit) + + inv = load_macrodata().data['realinv'] + arima_mod = ARIMA(np.log(inv), (1,1,2)) + assert_raises(ValueError, mod.fit) + + +def test_arima_small_data_bug(): + # Issue 1038, too few observations with given order + from datetime import datetime + import statsmodels.api as sm + + vals = [96.2, 98.3, 99.1, 95.5, 94.0, 87.1, 87.9, 86.7402777504474] + + dr = dates_from_range("1990q1", length=len(vals)) + ts = pd.Series(vals, index=dr) + df = pd.DataFrame(ts) + mod = sm.tsa.ARIMA(df, (2, 0, 2)) + assert_raises(ValueError, mod.fit) + + +def test_arima_dataframe_integer_name(): + # Smoke Test for Issue 1038 + from datetime import datetime + import statsmodels.api as sm + + vals = [96.2, 98.3, 99.1, 95.5, 94.0, 87.1, 87.9, 86.7402777504474, + 94.0, 96.5, 93.3, 97.5, 96.3, 92.] + + dr = dates_from_range("1990q1", length=len(vals)) + ts = pd.Series(vals, index=dr) + df = pd.DataFrame(ts) + mod = sm.tsa.ARIMA(df, (2, 0, 2)) + + +def test_arima_exog_predict_1d(): + # test 1067 + np.random.seed(12345) + y = np.random.random(100) + x = np.random.random(100) + mod = ARMA(y, (2, 1), x).fit(disp=-1) + newx = np.random.random(10) + results = mod.forecast(steps=10, alpha=0.05, exog=newx) + + +def test_arima_1123(): + # test ARMAX predict when trend is none + np.random.seed(12345) + arparams = np.array([.75, -.25]) + maparams = np.array([.65, .35]) + + arparam = np.r_[1, -arparams] + maparam = np.r_[1, maparams] + + nobs = 20 + + dates = dates_from_range('1980',length=nobs) + + y = arma_generate_sample(arparams, maparams, nobs) + + X = np.random.randn(nobs) + y += 5*X + mod = ARMA(y[:-1], order=(1,0), exog=X[:-1]) + res = mod.fit(trend='nc', disp=False) + fc = res.forecast(exog=X[-1:]) + # results from gretl + assert_almost_equal(fc[0], 2.200393, 6) + assert_almost_equal(fc[1], 1.030743, 6) + assert_almost_equal(fc[2][0,0], 0.180175, 6) + assert_almost_equal(fc[2][0,1], 4.220611, 6) + + mod = ARMA(y[:-1], order=(1,1), exog=X[:-1]) + res = mod.fit(trend='nc', disp=False) + fc = res.forecast(exog=X[-1:]) + assert_almost_equal(fc[0], 2.765688, 6) + assert_almost_equal(fc[1], 0.835048, 6) + assert_almost_equal(fc[2][0,0], 1.129023, 6) + assert_almost_equal(fc[2][0,1], 4.402353, 6) + + # make sure this works to. code looked fishy. + mod = ARMA(y[:-1], order=(1,0), exog=X[:-1]) + res = mod.fit(trend='c', disp=False) + fc = res.forecast(exog=X[-1:]) + assert_almost_equal(fc[0], 2.481219, 6) + assert_almost_equal(fc[1], 0.968759, 6) + assert_almost_equal(fc[2][0], [0.582485, 4.379952], 6) + + +def test_small_data(): + # 1146 + y = [-1214.360173, -1848.209905, -2100.918158, -3647.483678, -4711.186773] + + # refuse to estimate these + assert_raises(ValueError, ARIMA, y, (2, 0, 3)) + assert_raises(ValueError, ARIMA, y, (1, 1, 3)) + mod = ARIMA(y, (1, 0, 3)) + assert_raises(ValueError, mod.fit, trend="c") + + # try to estimate these...leave it up to the user to check for garbage + # and be clear, these are garbage parameters. + # X-12 arima will estimate, gretl refuses to estimate likely a problem + # in start params regression. + res = mod.fit(trend="nc", disp=0, start_params=[.1,.1,.1,.1]) + mod = ARIMA(y, (1, 0, 2)) + import warnings + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + res = mod.fit(disp=0, start_params=[np.mean(y), .1, .1, .1]) + + +class TestARMA00(TestCase): + + @classmethod + def setup_class(cls): + from statsmodels.datasets.sunspots import load + + sunspots = load().data['SUNACTIVITY'] + cls.y = y = sunspots + cls.arma_00_model = ARMA(y, order=(0, 0)) + cls.arma_00_res = cls.arma_00_model.fit(disp=-1) + + def test_parameters(self): + params = self.arma_00_res.params + assert_almost_equal(self.y.mean(), params) + + def test_predictions(self): + predictions = self.arma_00_res.predict() + assert_almost_equal(self.y.mean() * np.ones_like(predictions), predictions) + + @nottest + def test_information_criteria(self): + # This test is invalid since the ICs differ due to df_model differences + # between OLS and ARIMA + res = self.arma_00_res + y = self.y + ols_res = OLS(y, np.ones_like(y)).fit(disp=-1) + ols_ic = np.array([ols_res.aic, ols_res.bic]) + arma_ic = np.array([res.aic, res.bic]) + assert_almost_equal(ols_ic, arma_ic, DECIMAL_4) + + def test_arma_00_nc(self): + arma_00 = ARMA(self.y, order=(0, 0)) + assert_raises(ValueError, arma_00.fit, trend='nc', disp=-1) + + def test_css(self): + arma = ARMA(self.y, order=(0, 0)) + fit = arma.fit(method='css', disp=-1) + predictions = fit.predict() + assert_almost_equal(self.y.mean() * np.ones_like(predictions), predictions) + + def test_arima(self): + yi = np.cumsum(self.y) + arima = ARIMA(yi, order=(0, 1, 0)) + fit = arima.fit(disp=-1) + assert_almost_equal(np.diff(yi).mean(), fit.params, DECIMAL_4) + + def test_arma_ols(self): + y = self.y + y_lead = y[1:] + y_lag = y[:-1] + T = y_lag.shape[0] + X = np.hstack((np.ones((T,1)), y_lag[:,None])) + ols_res = OLS(y_lead, X).fit() + arma_res = ARMA(y_lead,order=(0,0),exog=y_lag).fit(trend='c', disp=-1) + assert_almost_equal(ols_res.params, arma_res.params) + + def test_arma_exog_no_constant(self): + y = self.y + y_lead = y[1:] + y_lag = y[:-1] + X = y_lag[:,None] + ols_res = OLS(y_lead, X).fit() + arma_res = ARMA(y_lead,order=(0,0),exog=y_lag).fit(trend='nc', disp=-1) + assert_almost_equal(ols_res.params, arma_res.params) + pass + + +def test_arima_dates_startatend(): + # bug + np.random.seed(18) + x = pd.Series(np.random.random(36), + index=pd.DatetimeIndex(start='1/1/1990', + periods=36, freq='M')) + res = ARIMA(x, (1, 0, 0)).fit(disp=0) + pred = res.predict(start=len(x), end=len(x)) + assert_(pred.index[0] == x.index.shift(1)[-1]) + fc = res.forecast()[0] + assert_almost_equal(pred.values[0], fc) + + +def test_arma_missing(): + from statsmodels.tools.sm_exceptions import MissingDataError + # bug 1343 + y = np.random.random(40) + y[-1] = np.nan + assert_raises(MissingDataError, ARMA, y, (1, 0), missing='raise') + + +@dec.skipif(not have_matplotlib) +def test_plot_predict(): + from statsmodels.datasets.sunspots import load_pandas + + dta = load_pandas().data[['SUNACTIVITY']] + dta.index = DatetimeIndex(start='1700', end='2009', freq='A') + res = ARMA(dta, (3, 0)).fit(disp=-1) + fig = res.plot_predict('1990', '2012', dynamic=True, plot_insample=False) + plt.close(fig) + + res = ARIMA(dta, (3, 1, 0)).fit(disp=-1) + fig = res.plot_predict('1990', '2012', dynamic=True, plot_insample=False) + plt.close(fig) + + + +def test_arima_diff2(): + dta = load_macrodata_pandas().data['cpi'] + dates = dates_from_range("1959Q1", length=len(dta)) + dta.index = cpi_dates + mod = ARIMA(dta, (3, 2, 1)).fit(disp=-1) + fc, fcerr, conf_int = mod.forecast(10) + # forecasts from gretl + conf_int_res = [ (216.139, 219.231), + (216.472, 221.520), + (217.064, 223.649), + (217.586, 225.727), + (218.119, 227.770), + (218.703, 229.784), + (219.306, 231.777), + (219.924, 233.759), + (220.559, 235.735), + (221.206, 237.709)] + + + fc_res = [217.685, 218.996, 220.356, 221.656, 222.945, 224.243, 225.541, + 226.841, 228.147, 229.457] + fcerr_res = [0.7888, 1.2878, 1.6798, 2.0768, 2.4620, 2.8269, 3.1816, + 3.52950, 3.8715, 4.2099] + + assert_almost_equal(fc, fc_res, 3) + assert_almost_equal(fcerr, fcerr_res, 3) + assert_almost_equal(conf_int, conf_int_res, 3) + + predicted = mod.predict('2008Q1', '2012Q1', typ='levels') + + predicted_res = [214.464, 215.478, 221.277, 217.453, 212.419, 213.530, + 215.087, 217.685 , 218.996 , 220.356 , 221.656 , + 222.945 , 224.243 , 225.541 , 226.841 , 228.147 , + 229.457] + assert_almost_equal(predicted, predicted_res, 3) + + +def test_arima111_predict_exog_2127(): + # regression test for issue #2127 + ef = [ 0.03005, 0.03917, 0.02828, 0.03644, 0.03379, 0.02744, + 0.03343, 0.02621, 0.0305 , 0.02455, 0.03261, 0.03507, + 0.02734, 0.05373, 0.02677, 0.03443, 0.03331, 0.02741, + 0.03709, 0.02113, 0.03343, 0.02011, 0.03675, 0.03077, + 0.02201, 0.04844, 0.05518, 0.03765, 0.05433, 0.03049, + 0.04829, 0.02936, 0.04421, 0.02457, 0.04007, 0.03009, + 0.04504, 0.05041, 0.03651, 0.02719, 0.04383, 0.02887, + 0.0344 , 0.03348, 0.02364, 0.03496, 0.02549, 0.03284, + 0.03523, 0.02579, 0.0308 , 0.01784, 0.03237, 0.02078, + 0.03508, 0.03062, 0.02006, 0.02341, 0.02223, 0.03145, + 0.03081, 0.0252 , 0.02683, 0.0172 , 0.02225, 0.01579, + 0.02237, 0.02295, 0.0183 , 0.02356, 0.02051, 0.02932, + 0.03025, 0.0239 , 0.02635, 0.01863, 0.02994, 0.01762, + 0.02837, 0.02421, 0.01951, 0.02149, 0.02079, 0.02528, + 0.02575, 0.01634, 0.02563, 0.01719, 0.02915, 0.01724, + 0.02804, 0.0275 , 0.02099, 0.02522, 0.02422, 0.03254, + 0.02095, 0.03241, 0.01867, 0.03998, 0.02212, 0.03034, + 0.03419, 0.01866, 0.02623, 0.02052] + ue = [ 4.9, 5. , 5. , 5. , 4.9, 4.7, 4.8, 4.7, 4.7, + 4.6, 4.6, 4.7, 4.7, 4.5, 4.4, 4.5, 4.4, 4.6, + 4.5, 4.4, 4.5, 4.4, 4.6, 4.7, 4.6, 4.7, 4.7, + 4.7, 5. , 5. , 4.9, 5.1, 5. , 5.4, 5.6, 5.8, + 6.1, 6.1, 6.5, 6.8, 7.3, 7.8, 8.3, 8.7, 9. , + 9.4, 9.5, 9.5, 9.6, 9.8, 10. , 9.9, 9.9, 9.7, + 9.8, 9.9, 9.9, 9.6, 9.4, 9.5, 9.5, 9.5, 9.5, + 9.8, 9.4, 9.1, 9. , 9. , 9.1, 9. , 9.1, 9. , + 9. , 9. , 8.8, 8.6, 8.5, 8.2, 8.3, 8.2, 8.2, + 8.2, 8.2, 8.2, 8.1, 7.8, 7.8, 7.8, 7.9, 7.9, + 7.7, 7.5, 7.5, 7.5, 7.5, 7.3, 7.2, 7.2, 7.2, + 7. , 6.7, 6.6, 6.7, 6.7, 6.3, 6.3] + + # rescaling results in convergence failure + #model = sm.tsa.ARIMA(np.array(ef)*100, (1,1,1), exog=ue) + model = ARIMA(ef, (1,1,1), exog=ue) + res = model.fit(transparams=False, iprint=0, disp=0) + + predicts = res.predict(start=len(ef), end = len(ef)+10, + exog=ue[-11:], typ = 'levels') + + # regression test, not verified numbers + # if exog=ue in predict, which values are used ? + predicts_res = np.array( + [ 0.02612291, 0.02361929, 0.024966 , 0.02448193, 0.0248772 , + 0.0248762 , 0.02506319, 0.02516542, 0.02531214, 0.02544654, + 0.02559099, 0.02550931]) + + # if exog=ue[-11:] in predict + predicts_res = np.array( + [ 0.02591112, 0.02321336, 0.02436593, 0.02368773, 0.02389767, + 0.02372018, 0.02374833, 0.02367407, 0.0236443 , 0.02362868, + 0.02362312]) + + assert_allclose(predicts, predicts_res, atol=1e-6) + + +def test_ARIMA_exog_predict(): + # test forecasting and dynamic prediction with exog against Stata + + dta = load_macrodata_pandas().data + dates = dates_from_range("1959Q1", length=len(dta)) + cpi_dates = dates_from_range('1959Q1', '2009Q3') + dta.index = cpi_dates + + data = dta + data['loginv'] = np.log(data['realinv']) + data['loggdp'] = np.log(data['realgdp']) + data['logcons'] = np.log(data['realcons']) + + forecast_period = dates_from_range('2008Q2', '2009Q3') + end = forecast_period[0] + data_sample = data.ix[dta.index < end] + + exog_full = data[['loggdp', 'logcons']] + + # pandas + + mod = ARIMA(data_sample['loginv'], (1,0,1), exog=data_sample[['loggdp', 'logcons']]) + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + res = mod.fit(disp=0, solver='bfgs', maxiter=5000) + + predicted_arma_fp = res.predict(start=197, end=202, exog=exog_full.values[197:]).values + predicted_arma_dp = res.predict(start=193, end=202, exog=exog_full[197:], dynamic=True) + + + # numpy + mod2 = ARIMA(np.asarray(data_sample['loginv']), (1,0,1), + exog=np.asarray(data_sample[['loggdp', 'logcons']])) + res2 = mod2.fit(start_params=res.params, disp=0, solver='bfgs', maxiter=5000) + + exog_full = data[['loggdp', 'logcons']] + predicted_arma_f = res2.predict(start=197, end=202, exog=exog_full.values[197:]) + predicted_arma_d = res2.predict(start=193, end=202, exog=exog_full[197:], dynamic=True) + + #ARIMA(1, 1, 1) + ex = np.asarray(data_sample[['loggdp', 'logcons']].diff()) + # The first obsevation is not (supposed to be) used, but I get a Lapack problem + # Intel MKL ERROR: Parameter 5 was incorrect on entry to DLASCL. + ex[0] = 0 + mod111 = ARIMA(np.asarray(data_sample['loginv']), (1,1,1), + # Stata differences also the exog + exog=ex) + + res111 = mod111.fit(disp=0, solver='bfgs', maxiter=5000) + exog_full_d = data[['loggdp', 'logcons']].diff() + res111.predict(start=197, end=202, exog=exog_full_d.values[197:]) + + predicted_arima_f = res111.predict(start=196, end=202, exog=exog_full_d.values[197:], typ='levels') + predicted_arima_d = res111.predict(start=193, end=202, exog=exog_full_d.values[197:], typ='levels', dynamic=True) + + res_f101 = np.array([ 7.73975859954, 7.71660108543, 7.69808978329, 7.70872117504, + 7.6518392758 , 7.69784279784, 7.70290907856, 7.69237782644, + 7.65017785174, 7.66061689028, 7.65980022857, 7.61505314129, + 7.51697158428, 7.5165760663 , 7.5271053284 ]) + res_f111 = np.array([ 7.74460013693, 7.71958207517, 7.69629561172, 7.71208186737, + 7.65758850178, 7.69223472572, 7.70411775588, 7.68896109499, + 7.64016249001, 7.64871881901, 7.62550283402, 7.55814609462, + 7.44431310053, 7.42963968062, 7.43554675427]) + res_d111 = np.array([ 7.74460013693, 7.71958207517, 7.69629561172, 7.71208186737, + 7.65758850178, 7.69223472572, 7.71870821151, 7.7299430215 , + 7.71439447355, 7.72544001101, 7.70521902623, 7.64020040524, + 7.5281927191 , 7.5149442694 , 7.52196378005]) + res_d101 = np.array([ 7.73975859954, 7.71660108543, 7.69808978329, 7.70872117504, + 7.6518392758 , 7.69784279784, 7.72522142662, 7.73962377858, + 7.73245950636, 7.74935432862, 7.74449584691, 7.69589103679, + 7.5941274688 , 7.59021764836, 7.59739267775]) + + assert_allclose(predicted_arma_dp, res_d101[-len(predicted_arma_d):], atol=1e-4) + assert_allclose(predicted_arma_fp, res_f101[-len(predicted_arma_f):], atol=1e-4) + assert_allclose(predicted_arma_d, res_d101[-len(predicted_arma_d):], atol=1e-4) + assert_allclose(predicted_arma_f, res_f101[-len(predicted_arma_f):], atol=1e-4) + assert_allclose(predicted_arima_d, res_d111[-len(predicted_arima_d):], rtol=1e-4, atol=1e-4) + assert_allclose(predicted_arima_f, res_f111[-len(predicted_arima_f):], rtol=1e-4, atol=1e-4) + + + # test for forecast with 0 ar fix in #2457 numbers again from Stata + + res_f002 = np.array([ 7.70178181209, 7.67445481224, 7.6715373765 , 7.6772915319 , + 7.61173201163, 7.67913499878, 7.6727609212 , 7.66275451925, + 7.65199799315, 7.65149983741, 7.65554131408, 7.62213286298, + 7.53795983357, 7.53626130154, 7.54539963934]) + res_d002 = np.array([ 7.70178181209, 7.67445481224, 7.6715373765 , 7.6772915319 , + 7.61173201163, 7.67913499878, 7.67306697759, 7.65287924998, + 7.64904451605, 7.66580449603, 7.66252081172, 7.62213286298, + 7.53795983357, 7.53626130154, 7.54539963934]) + + + mod_002 = ARIMA(np.asarray(data_sample['loginv']), (0,0,2), + exog=np.asarray(data_sample[['loggdp', 'logcons']])) + + # doesn't converge with default starting values + res_002 = mod_002.fit(start_params=np.concatenate((res.params[[0, 1, 2, 4]], [0])), + disp=0, solver='bfgs', maxiter=5000) + + # forecast + fpredict_002 = res_002.predict(start=197, end=202, exog=exog_full.values[197:]) + forecast_002 = res_002.forecast(steps=len(exog_full.values[197:]), + exog=exog_full.values[197:]) + forecast_002 = forecast_002[0] # TODO we are not checking the other results + assert_allclose(fpredict_002, res_f002[-len(fpredict_002):], rtol=1e-4, atol=1e-6) + assert_allclose(forecast_002, res_f002[-len(forecast_002):], rtol=1e-4, atol=1e-6) + + # dynamic predict + dpredict_002 = res_002.predict(start=193, end=202, exog=exog_full.values[197:], + dynamic=True) + assert_allclose(dpredict_002, res_d002[-len(dpredict_002):], rtol=1e-4, atol=1e-6) + + +def test_arima_fit_mutliple_calls(): + y = [-1214.360173, -1848.209905, -2100.918158, -3647.483678, -4711.186773] + mod = ARIMA(y, (1, 0, 2)) + # Make multiple calls to fit + with warnings.catch_warnings(record=True) as w: + mod.fit(disp=0, start_params=[np.mean(y), .1, .1, .1]) + assert_equal(mod.exog_names, ['const', 'ar.L1.y', 'ma.L1.y', 'ma.L2.y']) + with warnings.catch_warnings(record=True) as w: + mod.fit(disp=0, start_params=[np.mean(y), .1, .1, .1]) + assert_equal(mod.exog_names, ['const', 'ar.L1.y', 'ma.L1.y', 'ma.L2.y']) + +def test_long_ar_start_params(): + np.random.seed(12345) + arparams = np.array([1, -.75, .25]) + maparams = np.array([1, .65, .35]) + + nobs = 30 + + y = arma_generate_sample(arparams, maparams, nobs) + + model = ARMA(y, order=(2, 2)) + + res = model.fit(method='css',start_ar_lags=10, disp=0) + res = model.fit(method='css-mle',start_ar_lags=10, disp=0) + res = model.fit(method='mle',start_ar_lags=10, disp=0) + assert_raises(ValueError, model.fit, start_ar_lags=nobs+5, disp=0) + +if __name__ == "__main__": + import nose + nose.runmodule(argv=[__file__, '-vvs', '-x', '--pdb'], exit=False) diff --git a/statsmodels/tsa/tests/test_arima_process.py b/statsmodels/tsa/tests/test_arima_process.py new file mode 100644 index 0000000..881f1ba --- /dev/null +++ b/statsmodels/tsa/tests/test_arima_process.py @@ -0,0 +1,138 @@ + +from statsmodels.compat.python import range +import numpy as np +from numpy.testing import (assert_array_almost_equal, assert_almost_equal, + assert_equal) + + +from statsmodels.tsa.arima_process import (arma_generate_sample, arma_acovf, + arma_acf, arma_impulse_response, lpol_fiar, lpol_fima) +from statsmodels.sandbox.tsa.fftarma import ArmaFft + +from .results.results_process import armarep #benchmarkdata + +arlist = [[1.], + [1, -0.9], #ma representation will need many terms to get high precision + [1, 0.9], + [1, -0.9, 0.3]] + +malist = [[1.], + [1, 0.9], + [1, -0.9], + [1, 0.9, -0.3]] + + +def test_arma_acovf(): + # Check for specific AR(1) + N = 20; + phi = 0.9; + sigma = 1; + # rep 1: from module function + rep1 = arma_acovf([1, -phi], [1], N); + # rep 2: manually + rep2 = [1.*sigma*phi**i/(1-phi**2) for i in range(N)]; + assert_almost_equal(rep1, rep2, 7); # 7 is max precision here + + +def test_arma_acf(): + # Check for specific AR(1) + N = 20; + phi = 0.9; + sigma = 1; + # rep 1: from module function + rep1 = arma_acf([1, -phi], [1], N); + # rep 2: manually + acovf = np.array([1.*sigma*phi**i/(1-phi**2) for i in range(N)]) + rep2 = acovf / (1./(1-phi**2)); + assert_almost_equal(rep1, rep2, 8); # 8 is max precision here + + +def _manual_arma_generate_sample(ar, ma, eta): + T = len(eta); + ar = ar[::-1]; + ma = ma[::-1]; + p,q = len(ar), len(ma); + rep2 = [0]*max(p,q); # initialize with zeroes + for t in range(T): + yt = eta[t]; + if p: + yt += np.dot(rep2[-p:], ar); + if q: + # left pad shocks with zeros + yt += np.dot([0]*(q-t) + list(eta[max(0,t-q):t]), ma); + rep2.append(yt); + return np.array(rep2[max(p,q):]); + +def test_arma_generate_sample(): + # Test that this generates a true ARMA process + # (amounts to just a test that scipy.signal.lfilter does what we want) + T = 100; + dists = [np.random.randn] + for dist in dists: + np.random.seed(1234); + eta = dist(T); + for ar in arlist: + for ma in malist: + # rep1: from module function + np.random.seed(1234); + rep1 = arma_generate_sample(ar, ma, T, distrvs=dist); + # rep2: "manually" create the ARMA process + ar_params = -1*np.array(ar[1:]); + ma_params = np.array(ma[1:]); + rep2 = _manual_arma_generate_sample(ar_params, ma_params, eta) + assert_array_almost_equal(rep1, rep2, 13); + + +def test_fi(): + #test identity of ma and ar representation of fi lag polynomial + n = 100 + mafromar = arma_impulse_response(lpol_fiar(0.4, n=n), [1], n) + assert_array_almost_equal(mafromar, lpol_fima(0.4, n=n), 13) + + +def test_arma_impulse_response(): + arrep = arma_impulse_response(armarep.ma, armarep.ar, nobs=21)[1:] + marep = arma_impulse_response(armarep.ar, armarep.ma, nobs=21)[1:] + assert_array_almost_equal(armarep.marep.ravel(), marep, 14) + #difference in sign convention to matlab for AR term + assert_array_almost_equal(-armarep.arrep.ravel(), arrep, 14) + + +def test_spectrum(): + nfreq = 20 + w = np.linspace(0, np.pi, nfreq, endpoint=False) + for ar in arlist: + for ma in malist: + arma = ArmaFft(ar, ma, 20) + spdr, wr = arma.spdroots(w) + spdp, wp = arma.spdpoly(w, 200) + spdd, wd = arma.spddirect(nfreq*2) + assert_equal(w, wr) + assert_equal(w, wp) + assert_almost_equal(w, wd[:nfreq], decimal=14) + assert_almost_equal(spdr, spdp, decimal=7, + err_msg='spdr spdp not equal for %s, %s' % (ar, ma)) + assert_almost_equal(spdr, spdd[:nfreq], decimal=7, + err_msg='spdr spdd not equal for %s, %s' % (ar, ma)) + +def test_armafft(): + #test other methods + nfreq = 20 + w = np.linspace(0, np.pi, nfreq, endpoint=False) + for ar in arlist: + for ma in malist: + arma = ArmaFft(ar, ma, 20) + ac1 = arma.invpowerspd(1024)[:10] + ac2 = arma.acovf(10)[:10] + assert_almost_equal(ac1, ac2, decimal=7, + err_msg='acovf not equal for %s, %s' % (ar, ma)) + + +if __name__ == '__main__': + test_arma_acovf() + test_arma_acf() + test_arma_generate_sample() + test_fi() + test_arma_impulse_response() + test_spectrum() + test_armafft() diff --git a/statsmodels/tsa/tests/test_bds.py b/statsmodels/tsa/tests/test_bds.py new file mode 100644 index 0000000..696f64f --- /dev/null +++ b/statsmodels/tsa/tests/test_bds.py @@ -0,0 +1,104 @@ +""" +Test for BDS test for IID time series + +References +---------- + +Kanzler, Ludwig. 1998. +BDS: MATLAB Module to Calculate Brock, Dechert & Scheinkman Test for +Independence. +Statistical Software Components. Boston College Department of Economics. +http://ideas.repec.org/c/boc/bocode/t871803.html. + +""" + +import os +import numpy as np +import pandas as pd +from statsmodels.tsa.stattools import bds +from numpy.testing import assert_almost_equal, assert_equal, assert_raises +from numpy import genfromtxt + +DECIMAL_8 = 8 +DECIMAL_6 = 6 +DECIMAL_5 = 5 +DECIMAL_4 = 4 +DECIMAL_3 = 3 +DECIMAL_2 = 2 +DECIMAL_1 = 1 + +curdir = os.path.dirname(os.path.abspath(__file__)) +data_file = os.path.join(curdir, "results/bds_data.csv") +data = pd.read_csv(data_file, header=None) + +res_file = os.path.join(curdir, "results/bds_results.csv") +results = pd.read_csv(res_file, header=None) + + +class CheckBDS(object): + """ + Test BDS + + Test values from Kanzler's MATLAB program bds. + """ + def test_stat(self): + assert_almost_equal(self.res[0], self.bds_stats, DECIMAL_8) + + def test_pvalue(self): + assert_almost_equal(self.res[1], self.pvalues, DECIMAL_8) + + +class TestBDSSequence(CheckBDS): + """ + BDS Test on np.arange(1,26) + """ + def __init__(self): + self.results = results[results[0] == 1] + self.bds_stats = np.array(self.results[2][1:]) + self.pvalues = np.array(self.results[3][1:]) + + self.data = data[0][data[0].notnull()] + self.res = bds(self.data, 5) + + +class TestBDSNormal(CheckBDS): + """ + BDS Test on np.random.normal(size=25) + """ + def __init__(self): + self.results = results[results[0] == 2] + self.bds_stats = np.array(self.results[2][1:]) + self.pvalues = np.array(self.results[3][1:]) + + self.data = data[1][data[1].notnull()] + self.res = bds(self.data, 5) + + +class TestBDSCombined(CheckBDS): + """ + BDS Test on np.r_[np.random.normal(size=25), np.random.uniform(size=25)] + """ + def __init__(self): + self.results = results[results[0] == 3] + self.bds_stats = np.array(self.results[2][1:]) + self.pvalues = np.array(self.results[3][1:]) + + self.data = data[2][data[2].notnull()] + self.res = bds(self.data, 5) + + +class TestBDSGDPC1(CheckBDS): + """ + BDS Test on GDPC1: 1947Q1 - 2013Q1 + + References + ---------- + http://research.stlouisfed.org/fred2/series/GDPC1 + """ + def __init__(self): + self.results = results[results[0] == 4] + self.bds_stats = np.array(self.results[2][1:]) + self.pvalues = np.array(self.results[3][1:]) + + self.data = data[3][data[3].notnull()] + self.res = bds(self.data, 5) diff --git a/statsmodels/tsa/tests/test_seasonal.py b/statsmodels/tsa/tests/test_seasonal.py new file mode 100644 index 0000000..c0c4e47 --- /dev/null +++ b/statsmodels/tsa/tests/test_seasonal.py @@ -0,0 +1,248 @@ +import numpy as np +from numpy.testing import assert_almost_equal, assert_equal, assert_raises +from statsmodels.tsa.seasonal import seasonal_decompose +from pandas import DataFrame, DatetimeIndex + + +class TestDecompose: + @classmethod + def setupClass(cls): + # even + data = [-50, 175, 149, 214, 247, 237, 225, 329, 729, 809, + 530, 489, 540, 457, 195, 176, 337, 239, 128, 102, + 232, 429, 3, 98, 43, -141, -77, -13, 125, 361, -45, 184] + cls.data = DataFrame(data, DatetimeIndex(start='1/1/1951', + periods=len(data), + freq='Q')) + + + def test_ndarray(self): + res_add = seasonal_decompose(self.data.values, freq=4) + seasonal = [62.46, 86.17, -88.38, -60.25, 62.46, 86.17, -88.38, + -60.25, 62.46, 86.17, -88.38, -60.25, 62.46, 86.17, + -88.38, -60.25, 62.46, 86.17, -88.38, -60.25, + 62.46, 86.17, -88.38, -60.25, 62.46, 86.17, -88.38, + -60.25, 62.46, 86.17, -88.38, -60.25] + trend = [np.nan, np.nan, 159.12, 204.00, 221.25, 245.12, 319.75, + 451.50, 561.12, 619.25, 615.62, 548.00, 462.12, 381.12, + 316.62, 264.00, 228.38, 210.75, 188.38, 199.00, 207.12, + 191.00, 166.88, 72.00, -9.25, -33.12, -36.75, 36.25, + 103.00, 131.62, np.nan, np.nan] + random = [np.nan, np.nan, 78.254, 70.254, -36.710, -94.299, -6.371, + -62.246, 105.415, 103.576, 2.754, 1.254, 15.415, -10.299, + -33.246, -27.746, 46.165, -57.924, 28.004, -36.746, + -37.585, 151.826, -75.496, 86.254, -10.210, -194.049, + 48.129, 11.004, -40.460, 143.201, np.nan, np.nan] + assert_almost_equal(res_add.seasonal, seasonal, 2) + assert_almost_equal(res_add.trend, trend, 2) + assert_almost_equal(res_add.resid, random, 3) + + res_mult = seasonal_decompose(np.abs(self.data.values), 'm', freq=4) + + seasonal = [1.0815, 1.5538, 0.6716, 0.6931, 1.0815, 1.5538, 0.6716, + 0.6931, 1.0815, 1.5538, 0.6716, 0.6931, 1.0815, 1.5538, + 0.6716, 0.6931, 1.0815, 1.5538, 0.6716, 0.6931, 1.0815, + 1.5538, 0.6716, 0.6931, 1.0815, 1.5538, 0.6716, 0.6931, + 1.0815, 1.5538, 0.6716, 0.6931] + trend = [np.nan, np.nan, 171.62, 204.00, 221.25, 245.12, 319.75, + 451.50, 561.12, 619.25, 615.62, 548.00, 462.12, 381.12, + 316.62, 264.00, 228.38, 210.75, 188.38, 199.00, 207.12, + 191.00, 166.88, 107.25, 80.50, 79.12, 78.75, 116.50, + 140.00, 157.38, np.nan, np.nan] + random = [np.nan, np.nan, 1.29263, 1.51360, 1.03223, 0.62226, + 1.04771, 1.05139, 1.20124, 0.84080, 1.28182, 1.28752, + 1.08043, 0.77172, 0.91697, 0.96191, 1.36441, 0.72986, + 1.01171, 0.73956, 1.03566, 1.44556, 0.02677, 1.31843, + 0.49390, 1.14688, 1.45582, 0.16101, 0.82555, 1.47633, + np.nan, np.nan] + + assert_almost_equal(res_mult.seasonal, seasonal, 4) + assert_almost_equal(res_mult.trend, trend, 2) + assert_almost_equal(res_mult.resid, random, 4) + + # test odd + res_add = seasonal_decompose(self.data.values[:-1], freq=4) + seasonal = [68.18, 69.02, -82.66, -54.54, 68.18, 69.02, -82.66, + -54.54, 68.18, 69.02, -82.66, -54.54, 68.18, 69.02, + -82.66, -54.54, 68.18, 69.02, -82.66, -54.54, 68.18, + 69.02, -82.66, -54.54, 68.18, 69.02, -82.66, -54.54, + 68.18, 69.02, -82.66] + trend = [np.nan, np.nan, 159.12, 204.00, 221.25, 245.12, 319.75, + 451.50, 561.12, 619.25, 615.62, 548.00, 462.12, 381.12, + 316.62, 264.00, 228.38, 210.75, 188.38, 199.00, 207.12, + 191.00, 166.88, 72.00, -9.25, -33.12, -36.75, 36.25, + 103.00, np.nan, np.nan] + random = [np.nan, np.nan, 72.538, 64.538, -42.426, -77.150, + -12.087, -67.962, 99.699, 120.725, -2.962, -4.462, + 9.699, 6.850, -38.962, -33.462, 40.449, -40.775, 22.288, + -42.462, -43.301, 168.975, -81.212, 80.538, -15.926, + -176.900, 42.413, 5.288, -46.176, np.nan, np.nan] + assert_almost_equal(res_add.seasonal, seasonal, 2) + assert_almost_equal(res_add.trend, trend, 2) + assert_almost_equal(res_add.resid, random, 3) + + def test_pandas(self): + res_add = seasonal_decompose(self.data, freq=4) + freq_override_data = self.data.copy() + freq_override_data.index = DatetimeIndex(start='1/1/1951', periods=len(freq_override_data), freq='A') + res_add_override = seasonal_decompose(freq_override_data, freq=4) + seasonal = [62.46, 86.17, -88.38, -60.25, 62.46, 86.17, -88.38, + -60.25, 62.46, 86.17, -88.38, -60.25, 62.46, 86.17, + -88.38, -60.25, 62.46, 86.17, -88.38, -60.25, + 62.46, 86.17, -88.38, -60.25, 62.46, 86.17, -88.38, + -60.25, 62.46, 86.17, -88.38, -60.25] + trend = [np.nan, np.nan, 159.12, 204.00, 221.25, 245.12, 319.75, + 451.50, 561.12, 619.25, 615.62, 548.00, 462.12, 381.12, + 316.62, 264.00, 228.38, 210.75, 188.38, 199.00, 207.12, + 191.00, 166.88, 72.00, -9.25, -33.12, -36.75, 36.25, + 103.00, 131.62, np.nan, np.nan] + random = [np.nan, np.nan, 78.254, 70.254, -36.710, -94.299, -6.371, + -62.246, 105.415, 103.576, 2.754, 1.254, 15.415, -10.299, + -33.246, -27.746, 46.165, -57.924, 28.004, -36.746, + -37.585, 151.826, -75.496, 86.254, -10.210, -194.049, + 48.129, 11.004, -40.460, 143.201, np.nan, np.nan] + assert_almost_equal(res_add.seasonal.values.squeeze(), seasonal, 2) + assert_almost_equal(res_add.trend.values.squeeze(), trend, 2) + assert_almost_equal(res_add.resid.values.squeeze(), random, 3) + assert_almost_equal(res_add_override.seasonal.values.squeeze(), seasonal, 2) + assert_almost_equal(res_add_override.trend.values.squeeze(), trend, 2) + assert_almost_equal(res_add_override.resid.values.squeeze(), random, 3) + assert_equal(res_add.seasonal.index.values.squeeze(), + self.data.index.values) + + res_mult = seasonal_decompose(np.abs(self.data), 'm', freq=4) + res_mult_override = seasonal_decompose(np.abs(freq_override_data), 'm', freq=4) + seasonal = [1.0815, 1.5538, 0.6716, 0.6931, 1.0815, 1.5538, 0.6716, + 0.6931, 1.0815, 1.5538, 0.6716, 0.6931, 1.0815, 1.5538, + 0.6716, 0.6931, 1.0815, 1.5538, 0.6716, 0.6931, 1.0815, + 1.5538, 0.6716, 0.6931, 1.0815, 1.5538, 0.6716, 0.6931, + 1.0815, 1.5538, 0.6716, 0.6931] + trend = [np.nan, np.nan, 171.62, 204.00, 221.25, 245.12, 319.75, + 451.50, 561.12, 619.25, 615.62, 548.00, 462.12, 381.12, + 316.62, 264.00, 228.38, 210.75, 188.38, 199.00, 207.12, + 191.00, 166.88, 107.25, 80.50, 79.12, 78.75, 116.50, + 140.00, 157.38, np.nan, np.nan] + random = [np.nan, np.nan, 1.29263, 1.51360, 1.03223, 0.62226, + 1.04771, 1.05139, 1.20124, 0.84080, 1.28182, 1.28752, + 1.08043, 0.77172, 0.91697, 0.96191, 1.36441, 0.72986, + 1.01171, 0.73956, 1.03566, 1.44556, 0.02677, 1.31843, + 0.49390, 1.14688, 1.45582, 0.16101, 0.82555, 1.47633, + np.nan, np.nan] + + assert_almost_equal(res_mult.seasonal.values.squeeze(), seasonal, 4) + assert_almost_equal(res_mult.trend.values.squeeze(), trend, 2) + assert_almost_equal(res_mult.resid.values.squeeze(), random, 4) + assert_almost_equal(res_mult_override.seasonal.values.squeeze(), seasonal, 4) + assert_almost_equal(res_mult_override.trend.values.squeeze(), trend, 2) + assert_almost_equal(res_mult_override.resid.values.squeeze(), random, 4) + assert_equal(res_mult.seasonal.index.values.squeeze(), + self.data.index.values) + + + def test_filt(self): + filt = np.array([1/8., 1/4., 1./4, 1/4., 1/8.]) + res_add = seasonal_decompose(self.data.values, filt=filt, freq=4) + seasonal = [62.46, 86.17, -88.38, -60.25, 62.46, 86.17, -88.38, + -60.25, 62.46, 86.17, -88.38, -60.25, 62.46, 86.17, + -88.38, -60.25, 62.46, 86.17, -88.38, -60.25, + 62.46, 86.17, -88.38, -60.25, 62.46, 86.17, -88.38, + -60.25, 62.46, 86.17, -88.38, -60.25] + trend = [np.nan, np.nan, 159.12, 204.00, 221.25, 245.12, 319.75, + 451.50, 561.12, 619.25, 615.62, 548.00, 462.12, 381.12, + 316.62, 264.00, 228.38, 210.75, 188.38, 199.00, 207.12, + 191.00, 166.88, 72.00, -9.25, -33.12, -36.75, 36.25, + 103.00, 131.62, np.nan, np.nan] + random = [np.nan, np.nan, 78.254, 70.254, -36.710, -94.299, -6.371, + -62.246, 105.415, 103.576, 2.754, 1.254, 15.415, -10.299, + -33.246, -27.746, 46.165, -57.924, 28.004, -36.746, + -37.585, 151.826, -75.496, 86.254, -10.210, -194.049, + 48.129, 11.004, -40.460, 143.201, np.nan, np.nan] + assert_almost_equal(res_add.seasonal, seasonal, 2) + assert_almost_equal(res_add.trend, trend, 2) + assert_almost_equal(res_add.resid, random, 3) + + def test_one_sided_moving_average_in_stl_decompose(self): + res_add = seasonal_decompose(self.data.values, freq=4, two_sided=False) + + seasonal = np.array([76.76, 90.03, -114.4, -52.4, 76.76, 90.03, -114.4, + -52.4, 76.76, 90.03, -114.4, -52.4, 76.76, 90.03, + -114.4, -52.4, 76.76, 90.03, -114.4, -52.4, 76.76, + 90.03, -114.4, -52.4, 76.76, 90.03, -114.4, -52.4, + 76.76, 90.03, -114.4, -52.4]) + + trend = np.array([np.nan, np.nan, np.nan, np.nan, 159.12, 204., 221.25, + 245.12, 319.75, 451.5, 561.12, 619.25, 615.62, 548., + 462.12, 381.12, 316.62, 264., 228.38, 210.75, 188.38, + 199., 207.12, 191., 166.88, 72., -9.25, -33.12, + -36.75, 36.25, 103., 131.62]) + + resid = np.array([np.nan, np.nan, np.nan, np.nan, 11.112, -57.031, + 118.147, 136.272, 332.487, 267.469, 83.272, -77.853, + -152.388, -181.031, -152.728, -152.728, -56.388, -115.031, + 14.022, -56.353, -33.138, 139.969, -89.728, -40.603, + -200.638, -303.031, 46.647, 72.522, 84.987, 234.719, + -33.603, 104.772]) + + assert_almost_equal(res_add.seasonal, seasonal, 2) + assert_almost_equal(res_add.trend, trend, 2) + assert_almost_equal(res_add.resid, resid, 3) + + res_mult = seasonal_decompose(np.abs(self.data.values), 'm', freq=4, two_sided=False) + + seasonal = np.array([1.1985, 1.5449, 0.5811, 0.6755, 1.1985, 1.5449, 0.5811, + 0.6755, 1.1985, 1.5449, 0.5811, 0.6755, 1.1985, 1.5449, + 0.5811, 0.6755, 1.1985, 1.5449, 0.5811, 0.6755, 1.1985, + 1.5449, 0.5811, 0.6755, 1.1985, 1.5449, 0.5811, 0.6755, + 1.1985, 1.5449, 0.5811, 0.6755]) + + trend = np.array([np.nan, np.nan, np.nan, np.nan, 171.625, 204., + 221.25, 245.125, 319.75, 451.5, 561.125, 619.25, + 615.625, 548., 462.125, 381.125, 316.625, 264., + 228.375, 210.75, 188.375, 199., 207.125, 191., + 166.875, 107.25, 80.5, 79.125, 78.75, 116.5, + 140., 157.375]) + + resid = np.array([np.nan, np.nan, np.nan, np.nan, 1.2008, 0.752, 1.75, + 1.987, 1.9023, 1.1598, 1.6253, 1.169, 0.7319, 0.5398, + 0.7261, 0.6837, 0.888, 0.586, 0.9645, 0.7165, 1.0276, + 1.3954, 0.0249, 0.7596, 0.215, 0.851, 1.646, 0.2432, + 1.3244, 2.0058, 0.5531, 1.7309]) + + assert_almost_equal(res_mult.seasonal, seasonal, 4) + assert_almost_equal(res_mult.trend, trend, 2) + assert_almost_equal(res_mult.resid, resid, 4) + + # test odd + res_add = seasonal_decompose(self.data.values[:-1], freq=4, two_sided=False) + seasonal = np.array([81.21, 94.48, -109.95, -65.74, 81.21, 94.48, -109.95, + -65.74, 81.21, 94.48, -109.95, -65.74, 81.21, 94.48, + -109.95, -65.74, 81.21, 94.48, -109.95, -65.74, 81.21, + 94.48, -109.95, -65.74, 81.21, 94.48, -109.95, -65.74, + 81.21, 94.48, -109.95]) + + trend = [np.nan, np.nan, np.nan, np.nan, 159.12, 204., 221.25, + 245.12, 319.75, 451.5, 561.12, 619.25, 615.62, 548., + 462.12, 381.12, 316.62, 264., 228.38, 210.75, 188.38, + 199., 207.12, 191., 166.88, 72., -9.25, -33.12, + -36.75, 36.25, 103.] + + random = [np.nan, np.nan, np.nan, np.nan, 6.663, -61.48, + 113.699, 149.618, 328.038, 263.02, 78.824, -64.507, + -156.837, -185.48, -157.176, -139.382, -60.837, -119.48, + 9.574, -43.007, -37.587, 135.52, -94.176, -27.257, + -205.087, -307.48, 42.199, 85.868, 80.538, 230.27, -38.051] + + assert_almost_equal(res_add.seasonal, seasonal, 2) + assert_almost_equal(res_add.trend, trend, 2) + assert_almost_equal(res_add.resid, random, 3) + + + def test_raises(self): + assert_raises(ValueError, seasonal_decompose, self.data.values) + assert_raises(ValueError, seasonal_decompose, self.data, 'm', + freq=4) + x = self.data.astype(float).copy() + x.ix[2] = np.nan + assert_raises(ValueError, seasonal_decompose, x) + + diff --git a/statsmodels/tsa/tests/test_stattools.py b/statsmodels/tsa/tests/test_stattools.py new file mode 100644 index 0000000..2287227 --- /dev/null +++ b/statsmodels/tsa/tests/test_stattools.py @@ -0,0 +1,527 @@ +from statsmodels.compat.python import lrange +from statsmodels.tsa.stattools import (adfuller, acf, pacf_ols, pacf_yw, + pacf, grangercausalitytests, + coint, acovf, kpss, ResultsStore, + arma_order_select_ic) +from statsmodels.tsa.base.datetools import dates_from_range +import numpy as np +from numpy.testing import (assert_almost_equal, assert_equal, assert_warns, + assert_raises, dec, assert_, assert_allclose) +from numpy import genfromtxt +from statsmodels.datasets import macrodata, sunspots +from pandas import Series, Index, DataFrame +import os +import warnings +from statsmodels.tools.sm_exceptions import MissingDataError + +DECIMAL_8 = 8 +DECIMAL_6 = 6 +DECIMAL_5 = 5 +DECIMAL_4 = 4 +DECIMAL_3 = 3 +DECIMAL_2 = 2 +DECIMAL_1 = 1 + +class CheckADF(object): + """ + Test Augmented Dickey-Fuller + + Test values taken from Stata. + """ + levels = ['1%', '5%', '10%'] + data = macrodata.load() + x = data.data['realgdp'] + y = data.data['infl'] + + def test_teststat(self): + assert_almost_equal(self.res1[0], self.teststat, DECIMAL_5) + + def test_pvalue(self): + assert_almost_equal(self.res1[1], self.pvalue, DECIMAL_5) + + def test_critvalues(self): + critvalues = [self.res1[4][lev] for lev in self.levels] + assert_almost_equal(critvalues, self.critvalues, DECIMAL_2) + +class TestADFConstant(CheckADF): + """ + Dickey-Fuller test for unit root + """ + def __init__(self): + self.res1 = adfuller(self.x, regression="c", autolag=None, + maxlag=4) + self.teststat = .97505319 + self.pvalue = .99399563 + self.critvalues = [-3.476, -2.883, -2.573] + +class TestADFConstantTrend(CheckADF): + """ + """ + def __init__(self): + self.res1 = adfuller(self.x, regression="ct", autolag=None, + maxlag=4) + self.teststat = -1.8566374 + self.pvalue = .67682968 + self.critvalues = [-4.007, -3.437, -3.137] + +#class TestADFConstantTrendSquared(CheckADF): +# """ +# """ +# pass +#TODO: get test values from R? + +class TestADFNoConstant(CheckADF): + """ + """ + def __init__(self): + self.res1 = adfuller(self.x, regression="nc", autolag=None, + maxlag=4) + self.teststat = 3.5227498 + self.pvalue = .99999 # Stata does not return a p-value for noconstant. + # Tau^max in MacKinnon (1994) is missing, so it is + # assumed that its right-tail is well-behaved + self.critvalues = [-2.587, -1.950, -1.617] + +# No Unit Root + +class TestADFConstant2(CheckADF): + def __init__(self): + self.res1 = adfuller(self.y, regression="c", autolag=None, + maxlag=1) + self.teststat = -4.3346988 + self.pvalue = .00038661 + self.critvalues = [-3.476, -2.883, -2.573] + +class TestADFConstantTrend2(CheckADF): + def __init__(self): + self.res1 = adfuller(self.y, regression="ct", autolag=None, + maxlag=1) + self.teststat = -4.425093 + self.pvalue = .00199633 + self.critvalues = [-4.006, -3.437, -3.137] + +class TestADFNoConstant2(CheckADF): + def __init__(self): + self.res1 = adfuller(self.y, regression="nc", autolag=None, + maxlag=1) + self.teststat = -2.4511596 + self.pvalue = 0.013747 # Stata does not return a p-value for noconstant + # this value is just taken from our results + self.critvalues = [-2.587,-1.950,-1.617] + _, _1, _2, self.store = adfuller(self.y, regression="nc", autolag=None, + maxlag=1, store=True) + + def test_store_str(self): + assert_equal(self.store.__str__(), 'Augmented Dickey-Fuller Test Results') + +class CheckCorrGram(object): + """ + Set up for ACF, PACF tests. + """ + data = macrodata.load() + x = data.data['realgdp'] + filename = os.path.dirname(os.path.abspath(__file__))+\ + "/results/results_corrgram.csv" + results = genfromtxt(open(filename, "rb"), delimiter=",", names=True,dtype=float) + + #not needed: add 1. for lag zero + #self.results['acvar'] = np.concatenate(([1.], self.results['acvar'])) + + +class TestACF(CheckCorrGram): + """ + Test Autocorrelation Function + """ + def __init__(self): + self.acf = self.results['acvar'] + #self.acf = np.concatenate(([1.], self.acf)) + self.qstat = self.results['Q1'] + self.res1 = acf(self.x, nlags=40, qstat=True, alpha=.05) + self.confint_res = self.results[['acvar_lb','acvar_ub']].view((float, + 2)) + + def test_acf(self): + assert_almost_equal(self.res1[0][1:41], self.acf, DECIMAL_8) + + def test_confint(self): + centered = self.res1[1] - self.res1[1].mean(1)[:,None] + assert_almost_equal(centered[1:41], self.confint_res, DECIMAL_8) + + def test_qstat(self): + assert_almost_equal(self.res1[2][:40], self.qstat, DECIMAL_3) + # 3 decimal places because of stata rounding + +# def pvalue(self): +# pass +#NOTE: shouldn't need testing if Q stat is correct + + +class TestACF_FFT(CheckCorrGram): + # Test Autocorrelation Function using FFT + def __init__(self): + self.acf = self.results['acvarfft'] + self.qstat = self.results['Q1'] + self.res1 = acf(self.x, nlags=40, qstat=True, fft=True) + + def test_acf(self): + assert_almost_equal(self.res1[0][1:], self.acf, DECIMAL_8) + + def test_qstat(self): + #todo why is res1/qstat 1 short + assert_almost_equal(self.res1[1], self.qstat, DECIMAL_3) + +class TestACFMissing(CheckCorrGram): + # Test Autocorrelation Function using Missing + def __init__(self): + self.x = np.concatenate((np.array([np.nan]),self.x)) + self.acf = self.results['acvar'] # drop and conservative + self.qstat = self.results['Q1'] + self.res_drop = acf(self.x, nlags=40, qstat=True, alpha=.05, + missing='drop') + self.res_conservative = acf(self.x, nlags=40, qstat=True, alpha=.05, + missing='conservative') + self.acf_none = np.empty(40) * np.nan # lags 1 to 40 inclusive + self.qstat_none = np.empty(40) * np.nan + self.res_none = acf(self.x, nlags=40, qstat=True, alpha=.05, + missing='none') + + def test_raise(self): + assert_raises(MissingDataError, acf, self.x, nlags=40, + qstat=True, alpha=.05, missing='raise') + + def test_acf_none(self): + assert_almost_equal(self.res_none[0][1:41], self.acf_none, DECIMAL_8) + + def test_acf_drop(self): + assert_almost_equal(self.res_drop[0][1:41], self.acf, DECIMAL_8) + + def test_acf_conservative(self): + assert_almost_equal(self.res_conservative[0][1:41], self.acf, + DECIMAL_8) + + def test_qstat_none(self): + #todo why is res1/qstat 1 short + assert_almost_equal(self.res_none[2], self.qstat_none, DECIMAL_3) + +# how to do this test? the correct q_stat depends on whether nobs=len(x) is +# used when x contains NaNs or whether nobs>> import statsmodels.api as sm + >>> data = sm.datasets.macrodata.load() + >>> data = data.data[['year','quarter','realgdp','cpi']] + >>> data = sm.tsa.add_lag(data, 'realgdp', lags=2) + + Notes + ----- + Trims the array both forward and backward, so that the array returned + so that the length of the returned array is len(`X`) - lags. The lags are + returned in increasing order, ie., t-1,t-2,...,t-lags + """ + if x.dtype.names: + names = x.dtype.names + if not col and np.squeeze(x).ndim > 1: + raise IndexError("col is None and the input array is not 1d") + elif len(names) == 1: + col = names[0] + if isinstance(col, (int, long)): + col = x.dtype.names[col] + contemp = x[col] + + # make names for lags + tmp_names = [col + '_'+'L(%i)' % i for i in range(1,lags+1)] + ndlags = lagmat(contemp, maxlag=lags, trim='Both') + + # get index for return + if insert is True: + ins_idx = list(names).index(col) + 1 + elif insert is False: + ins_idx = len(names) + 1 + else: # insert is an int + if insert > len(names): + import warnings + warnings.warn("insert > number of variables, inserting at the" + " last position", ValueWarning) + ins_idx = insert + + first_names = list(names[:ins_idx]) + last_names = list(names[ins_idx:]) + + if drop: + if col in first_names: + first_names.pop(first_names.index(col)) + else: + last_names.pop(last_names.index(col)) + + if first_names: # only do this if x isn't "empty" + first_arr = nprf.append_fields(x[first_names][lags:],tmp_names, + ndlags.T, usemask=False) + else: + first_arr = np.zeros(len(x)-lags, dtype=lzip(tmp_names, + (x[col].dtype,)*lags)) + for i,name in enumerate(tmp_names): + first_arr[name] = ndlags[:,i] + if last_names: + return nprf.append_fields(first_arr, last_names, + [x[name][lags:] for name in last_names], usemask=False) + else: # lags for last variable + return first_arr + + else: # we have an ndarray + + if x.ndim == 1: # make 2d if 1d + x = x[:,None] + if col is None: + col = 0 + + # handle negative index + if col < 0: + col = x.shape[1] + col + + contemp = x[:,col] + + if insert is True: + ins_idx = col + 1 + elif insert is False: + ins_idx = x.shape[1] + else: + if insert < 0: # handle negative index + insert = x.shape[1] + insert + 1 + if insert > x.shape[1]: + insert = x.shape[1] + import warnings + warnings.warn("insert > number of variables, inserting at the" + " last position", ValueWarning) + ins_idx = insert + + ndlags = lagmat(contemp, lags, trim='Both') + first_cols = lrange(ins_idx) + last_cols = lrange(ins_idx,x.shape[1]) + if drop: + if col in first_cols: + first_cols.pop(first_cols.index(col)) + else: + last_cols.pop(last_cols.index(col)) + return np.column_stack((x[lags:,first_cols],ndlags, + x[lags:,last_cols])) + + +def detrend(x, order=1, axis=0): + """ + Detrend an array with a trend of given order along axis 0 or 1 + + Parameters + ---------- + x : array_like, 1d or 2d + data, if 2d, then each row or column is independently detrended with the + same trendorder, but independent trend estimates + order : int + specifies the polynomial order of the trend, zero is constant, one is + linear trend, two is quadratic trend + axis : int + axis can be either 0, observations by rows, + or 1, observations by columns + + Returns + ------- + detrended data series : ndarray + The detrended series is the residual of the linear regression of the + data on the trend of given order. + """ + if x.ndim == 2 and int(axis) == 1: + x = x.T + elif x.ndim > 2: + raise NotImplementedError('x.ndim > 2 is not implemented until it is needed') + + nobs = x.shape[0] + if order == 0: + # Special case demean + resid = x - x.mean(axis=0) + else: + trends = np.vander(np.arange(float(nobs)), N=order + 1) + beta = np.linalg.pinv(trends).dot(x) + resid = x - np.dot(trends, beta) + + if x.ndim == 2 and int(axis) == 1: + resid = resid.T + + return resid + + +def lagmat(x, maxlag, trim='forward', original='ex', use_pandas=False): + """ + Create 2d array of lags + + Parameters + ---------- + x : array_like, 1d or 2d + data; if 2d, observation in rows and variables in columns + maxlag : int + all lags from zero to maxlag are included + trim : str {'forward', 'backward', 'both', 'none'} or None + * 'forward' : trim invalid observations in front + * 'backward' : trim invalid initial observations + * 'both' : trim invalid observations on both sides + * 'none', None : no trimming of observations + original : str {'ex','sep','in'} + * 'ex' : drops the original array returning only the lagged values. + * 'in' : returns the original array and the lagged values as a single + array. + * 'sep' : returns a tuple (original array, lagged values). The original + array is truncated to have the same number of rows as + the returned lagmat. + use_pandas : bool, optional + If true, returns a DataFrame when the input is a pandas + Series or DataFrame. If false, return numpy ndarrays. + + Returns + ------- + lagmat : 2d array + array with lagged observations + y : 2d array, optional + Only returned if original == 'sep' + + Examples + -------- + >>> from statsmodels.tsa.tsatools import lagmat + >>> import numpy as np + >>> X = np.arange(1,7).reshape(-1,2) + >>> lagmat(X, maxlag=2, trim="forward", original='in') + array([[ 1., 2., 0., 0., 0., 0.], + [ 3., 4., 1., 2., 0., 0.], + [ 5., 6., 3., 4., 1., 2.]]) + + >>> lagmat(X, maxlag=2, trim="backward", original='in') + array([[ 5., 6., 3., 4., 1., 2.], + [ 0., 0., 5., 6., 3., 4.], + [ 0., 0., 0., 0., 5., 6.]]) + + >>> lagmat(X, maxlag=2, trim="both", original='in') + array([[ 5., 6., 3., 4., 1., 2.]]) + + >>> lagmat(X, maxlag=2, trim="none", original='in') + array([[ 1., 2., 0., 0., 0., 0.], + [ 3., 4., 1., 2., 0., 0.], + [ 5., 6., 3., 4., 1., 2.], + [ 0., 0., 5., 6., 3., 4.], + [ 0., 0., 0., 0., 5., 6.]]) + + Notes + ----- + When using a pandas DataFrame or Series with use_pandas=True, trim can only + be 'forward' or 'both' since it is not possible to consistently extend index + values. + """ + # TODO: allow list of lags additional to maxlag + is_pandas = _is_using_pandas(x, None) and use_pandas + trim = 'none' if trim is None else trim + trim = trim.lower() + if is_pandas and trim in ('none', 'backward'): + raise ValueError("trim cannot be 'none' or 'forward' when used on " + "Series or DataFrames") + + xa = np.asarray(x) + dropidx = 0 + if xa.ndim == 1: + xa = xa[:, None] + nobs, nvar = xa.shape + if original in ['ex', 'sep']: + dropidx = nvar + if maxlag >= nobs: + raise ValueError("maxlag should be < nobs") + lm = np.zeros((nobs + maxlag, nvar * (maxlag + 1))) + for k in range(0, int(maxlag + 1)): + lm[maxlag - k:nobs + maxlag - k, + nvar * (maxlag - k):nvar * (maxlag - k + 1)] = xa + + if trim in ('none', 'forward'): + startobs = 0 + elif trim in ('backward', 'both'): + startobs = maxlag + else: + raise ValueError('trim option not valid') + + if trim in ('none', 'backward'): + stopobs = len(lm) + else: + stopobs = nobs + + if is_pandas: + x_columns = x.columns if isinstance(x, DataFrame) else [x.name] + columns = [str(col) for col in x_columns] + for lag in range(maxlag): + lag_str = str(lag + 1) + columns.extend([str(col) + '.L.' + lag_str for col in x_columns]) + lm = DataFrame(lm[:stopobs], index=x.index, columns=columns) + lags = lm.iloc[startobs:] + if original in ('sep', 'ex'): + leads = lags[x_columns] + lags = lags.drop(x_columns, 1) + else: + lags = lm[startobs:stopobs, dropidx:] + if original == 'sep': + leads = lm[startobs:stopobs, :dropidx] + + if original == 'sep': + return lags, leads + else: + return lags + + +def lagmat2ds(x, maxlag0, maxlagex=None, dropex=0, trim='forward', + use_pandas=False): + """ + Generate lagmatrix for 2d array, columns arranged by variables + + Parameters + ---------- + x : array_like, 2d + 2d data, observation in rows and variables in columns + maxlag0 : int + for first variable all lags from zero to maxlag are included + maxlagex : None or int + max lag for all other variables all lags from zero to maxlag are included + dropex : int (default is 0) + exclude first dropex lags from other variables + for all variables, except the first, lags from dropex to maxlagex are + included + trim : string + * 'forward' : trim invalid observations in front + * 'backward' : trim invalid initial observations + * 'both' : trim invalid observations on both sides + * 'none' : no trimming of observations + use_pandas : bool, optional + If true, returns a DataFrame when the input is a pandas + Series or DataFrame. If false, return numpy ndarrays. + + Returns + ------- + lagmat : 2d array + array with lagged observations, columns ordered by variable + + Notes + ----- + Inefficient implementation for unequal lags, implemented for convenience + """ + + if maxlagex is None: + maxlagex = maxlag0 + maxlag = max(maxlag0, maxlagex) + is_pandas = _is_using_pandas(x, None) + + if x.ndim == 1: + if is_pandas: + x = pd.DataFrame(x) + else: + x = x[:, None] + elif x.ndim == 0 or x.ndim > 2: + raise TypeError('Only supports 1 and 2-dimensional data.') + + nobs, nvar = x.shape + + if is_pandas and use_pandas: + lags = lagmat(x.iloc[:, 0], maxlag, trim=trim, + original='in', use_pandas=True) + lagsli = [lags.iloc[:, :maxlag0 + 1]] + for k in range(1, nvar): + lags = lagmat(x.iloc[:, k], maxlag, trim=trim, + original='in', use_pandas=True) + lagsli.append(lags.iloc[:, dropex:maxlagex + 1]) + return pd.concat(lagsli, axis=1) + elif is_pandas: + x = np.asanyarray(x) + + lagsli = [lagmat(x[:, 0], maxlag, trim=trim, original='in')[:, :maxlag0 + 1]] + for k in range(1, nvar): + lagsli.append(lagmat(x[:, k], maxlag, trim=trim, original='in')[:, dropex:maxlagex + 1]) + return np.column_stack(lagsli) + +def vec(mat): + return mat.ravel('F') + +def vech(mat): + # Gets Fortran-order + return mat.T.take(_triu_indices(len(mat))) + +# tril/triu/diag, suitable for ndarray.take + +def _tril_indices(n): + rows, cols = np.tril_indices(n) + return rows * n + cols + +def _triu_indices(n): + rows, cols = np.triu_indices(n) + return rows * n + cols + +def _diag_indices(n): + rows, cols = np.diag_indices(n) + return rows * n + cols + +def unvec(v): + k = int(np.sqrt(len(v))) + assert(k * k == len(v)) + return v.reshape((k, k), order='F') + +def unvech(v): + # quadratic formula, correct fp error + rows = .5 * (-1 + np.sqrt(1 + 8 * len(v))) + rows = int(np.round(rows)) + + result = np.zeros((rows, rows)) + result[np.triu_indices(rows)] = v + result = result + result.T + + # divide diagonal elements by 2 + result[np.diag_indices(rows)] /= 2 + + return result + +def duplication_matrix(n): + """ + Create duplication matrix D_n which satisfies vec(S) = D_n vech(S) for + symmetric matrix S + + Returns + ------- + D_n : ndarray + """ + tmp = np.eye(n * (n + 1) // 2) + return np.array([unvech(x).ravel() for x in tmp]).T + +def elimination_matrix(n): + """ + Create the elimination matrix L_n which satisfies vech(M) = L_n vec(M) for + any matrix M + + Parameters + ---------- + + Returns + ------- + + """ + vech_indices = vec(np.tril(np.ones((n, n)))) + return np.eye(n * n)[vech_indices != 0] + +def commutation_matrix(p, q): + """ + Create the commutation matrix K_{p,q} satisfying vec(A') = K_{p,q} vec(A) + + Parameters + ---------- + p : int + q : int + + Returns + ------- + K : ndarray (pq x pq) + """ + K = np.eye(p * q) + indices = np.arange(p * q).reshape((p, q), order='F') + return K.take(indices.ravel(), axis=0) + +def _ar_transparams(params): + """ + Transforms params to induce stationarity/invertability. + + Parameters + ---------- + params : array + The AR coefficients + + Reference + --------- + Jones(1980) + """ + newparams = ((1-np.exp(-params))/ + (1+np.exp(-params))).copy() + tmp = ((1-np.exp(-params))/ + (1+np.exp(-params))).copy() + for j in range(1,len(params)): + a = newparams[j] + for kiter in range(j): + tmp[kiter] -= a * newparams[j-kiter-1] + newparams[:j] = tmp[:j] + return newparams + +def _ar_invtransparams(params): + """ + Inverse of the Jones reparameterization + + Parameters + ---------- + params : array + The transformed AR coefficients + """ + # AR coeffs + tmp = params.copy() + for j in range(len(params)-1,0,-1): + a = params[j] + for kiter in range(j): + tmp[kiter] = (params[kiter] + a * params[j-kiter-1])/\ + (1-a**2) + params[:j] = tmp[:j] + invarcoefs = -np.log((1-params)/(1+params)) + return invarcoefs + +def _ma_transparams(params): + """ + Transforms params to induce stationarity/invertability. + + Parameters + ---------- + params : array + The ma coeffecients of an (AR)MA model. + + Reference + --------- + Jones(1980) + """ + newparams = ((1-np.exp(-params))/(1+np.exp(-params))).copy() + tmp = ((1-np.exp(-params))/(1+np.exp(-params))).copy() + + # levinson-durbin to get macf + for j in range(1,len(params)): + b = newparams[j] + for kiter in range(j): + tmp[kiter] += b * newparams[j-kiter-1] + newparams[:j] = tmp[:j] + return newparams + +def _ma_invtransparams(macoefs): + """ + Inverse of the Jones reparameterization + + Parameters + ---------- + params : array + The transformed MA coefficients + """ + tmp = macoefs.copy() + for j in range(len(macoefs)-1,0,-1): + b = macoefs[j] + for kiter in range(j): + tmp[kiter] = (macoefs[kiter]-b *macoefs[j-kiter-1])/(1-b**2) + macoefs[:j] = tmp[:j] + invmacoefs = -np.log((1-macoefs)/(1+macoefs)) + return invmacoefs + + +def unintegrate_levels(x, d): + """ + Returns the successive differences needed to unintegrate the series. + + Parameters + ---------- + x : array-like + The original series + d : int + The number of differences of the differenced series. + + Returns + ------- + y : array-like + The increasing differences from 0 to d-1 of the first d elements + of x. + + See Also + -------- + unintegrate + """ + x = x[:d] + return np.asarray([np.diff(x, d - i)[0] for i in range(d, 0, -1)]) + + +def unintegrate(x, levels): + """ + After taking n-differences of a series, return the original series + + Parameters + ---------- + x : array-like + The n-th differenced series + levels : list + A list of the first-value in each differenced series, for + [first-difference, second-difference, ..., n-th difference] + + Returns + ------- + y : array-like + The original series de-differenced + + Examples + -------- + >>> x = np.array([1, 3, 9., 19, 8.]) + >>> levels = unintegrate_levels(x, 2) + >>> levels + array([ 1., 2.]) + >>> unintegrate(np.diff(x, 2), levels) + array([ 1., 3., 9., 19., 8.]) + """ + levels = list(levels)[:] # copy + if len(levels) > 1: + x0 = levels.pop(-1) + return unintegrate(np.cumsum(np.r_[x0, x]), levels) + x0 = levels[0] + return np.cumsum(np.r_[x0, x]) + + +def freq_to_period(freq): + """ + Convert a pandas frequency to a periodicity + + Parameters + ---------- + freq : str or offset + Frequency to convert + + Returns + ------- + period : int + Periodicity of freq + + Notes + ----- + Annual maps to 1, quarterly maps to 4, monthly to 12, weekly to 52. + """ + if not isinstance(freq, offsets.DateOffset): + freq = to_offset(freq) # go ahead and standardize + freq = freq.rule_code.upper() + + if freq == 'A' or freq.startswith(('A-', 'AS-')): + return 1 + elif freq == 'Q' or freq.startswith(('Q-', 'QS-')): + return 4 + elif freq == 'M' or freq.startswith(('M-', 'MS')): + return 12 + elif freq == 'W' or freq.startswith('W-'): + return 52 + elif freq == 'D': + return 7 + elif freq == 'B': + return 5 + elif freq == 'H': + return 24 + else: # pragma : no cover + raise ValueError("freq {} not understood. Please report if you " + "think this in error.".format(freq)) + + +__all__ = ['lagmat', 'lagmat2ds','add_trend', 'duplication_matrix', + 'elimination_matrix', 'commutation_matrix', + 'vec', 'vech', 'unvec', 'unvech'] + diff --git a/statsmodels/tsa/varma_process.py b/statsmodels/tsa/varma_process.py new file mode 100644 index 0000000..68c62c5 --- /dev/null +++ b/statsmodels/tsa/varma_process.py @@ -0,0 +1,726 @@ +# -*- coding: utf-8 -*- +""" Helper and filter functions for VAR and VARMA, and basic VAR class + +Created on Mon Jan 11 11:04:23 2010 +Author: josef-pktd +License: BSD + +This is a new version, I didn't look at the old version again, but similar +ideas. + +not copied/cleaned yet: + * fftn based filtering, creating samples with fft + * Tests: I ran examples but did not convert them to tests + examples look good for parameter estimate and forecast, and filter functions + +main TODOs: +* result statistics +* see whether Bayesian dummy observation can be included without changing + the single call to linalg.lstsq +* impulse response function does not treat correlation, see Hamilton and jplv + +Extensions +* constraints, Bayesian priors/penalization +* Error Correction Form and Cointegration +* Factor Models Stock-Watson, ??? + + +see also VAR section in Notes.txt + +""" +from __future__ import print_function +import numpy as np +from numpy.testing import assert_equal +from scipy import signal +#might not (yet) need the following +from scipy.signal.signaltools import _centered as trim_centered + +from statsmodels.tsa.tsatools import lagmat + + +def varfilter(x, a): + '''apply an autoregressive filter to a series x + + Warning: I just found out that convolve doesn't work as I + thought, this likely doesn't work correctly for + nvars>3 + + + x can be 2d, a can be 1d, 2d, or 3d + + Parameters + ---------- + x : array_like + data array, 1d or 2d, if 2d then observations in rows + a : array_like + autoregressive filter coefficients, ar lag polynomial + see Notes + + Returns + ------- + y : ndarray, 2d + filtered array, number of columns determined by x and a + + Notes + ----- + + In general form this uses the linear filter :: + + y = a(L)x + + where + x : nobs, nvars + a : nlags, nvars, npoly + + Depending on the shape and dimension of a this uses different + Lag polynomial arrays + + case 1 : a is 1d or (nlags,1) + one lag polynomial is applied to all variables (columns of x) + case 2 : a is 2d, (nlags, nvars) + each series is independently filtered with its own + lag polynomial, uses loop over nvar + case 3 : a is 3d, (nlags, nvars, npoly) + the ith column of the output array is given by the linear filter + defined by the 2d array a[:,:,i], i.e. :: + + y[:,i] = a(.,.,i)(L) * x + y[t,i] = sum_p sum_j a(p,j,i)*x(t-p,j) + for p = 0,...nlags-1, j = 0,...nvars-1, + for all t >= nlags + + + Note: maybe convert to axis=1, Not + + TODO: initial conditions + + ''' + x = np.asarray(x) + a = np.asarray(a) + if x.ndim == 1: + x = x[:,None] + if x.ndim > 2: + raise ValueError('x array has to be 1d or 2d') + nvar = x.shape[1] + nlags = a.shape[0] + ntrim = nlags//2 + # for x is 2d with ncols >1 + + if a.ndim == 1: + # case: identical ar filter (lag polynomial) + return signal.convolve(x, a[:,None], mode='valid') + # alternative: + #return signal.lfilter(a,[1],x.astype(float),axis=0) + elif a.ndim == 2: + if min(a.shape) == 1: + # case: identical ar filter (lag polynomial) + return signal.convolve(x, a, mode='valid') + + # case: independent ar + #(a bit like recserar in gauss, but no x yet) + #(no, reserar is inverse filter) + result = np.zeros((x.shape[0]-nlags+1, nvar)) + for i in range(nvar): + # could also use np.convolve, but easier for swiching to fft + result[:,i] = signal.convolve(x[:,i], a[:,i], mode='valid') + return result + + elif a.ndim == 3: + # case: vector autoregressive with lag matrices +# #not necessary: +# if np.any(a.shape[1:] != nvar): +# raise ValueError('if 3d shape of a has to be (nobs,nvar,nvar)') + yf = signal.convolve(x[:,:,None], a) + yvalid = yf[ntrim:-ntrim, yf.shape[1]//2,:] + return yvalid + +def varinversefilter(ar, nobs, version=1): + '''creates inverse ar filter (MA representation) recursively + + The VAR lag polynomial is defined by :: + + ar(L) y_t = u_t or + y_t = -ar_{-1}(L) y_{t-1} + u_t + + the returned lagpolynomial is arinv(L)=ar^{-1}(L) in :: + + y_t = arinv(L) u_t + + + + Parameters + ---------- + ar : array, (nlags,nvars,nvars) + matrix lagpolynomial, currently no exog + first row should be identity + + Returns + ------- + arinv : array, (nobs,nvars,nvars) + + + Notes + ----- + + ''' + nlags, nvars, nvarsex = ar.shape + if nvars != nvarsex: + print('exogenous variables not implemented not tested') + arinv = np.zeros((nobs+1, nvarsex, nvars)) + arinv[0,:,:] = ar[0] + arinv[1:nlags,:,:] = -ar[1:] + if version == 1: + for i in range(2,nobs+1): + tmp = np.zeros((nvars,nvars)) + for p in range(1,nlags): + tmp += np.dot(-ar[p],arinv[i-p,:,:]) + arinv[i,:,:] = tmp + if version == 0: + for i in range(nlags+1,nobs+1): + print(ar[1:].shape, arinv[i-1:i-nlags:-1,:,:].shape) + #arinv[i,:,:] = np.dot(-ar[1:],arinv[i-1:i-nlags:-1,:,:]) + #print(np.tensordot(-ar[1:],arinv[i-1:i-nlags:-1,:,:],axes=([2],[1])).shape + #arinv[i,:,:] = np.tensordot(-ar[1:],arinv[i-1:i-nlags:-1,:,:],axes=([2],[1])) + raise NotImplementedError('waiting for generalized ufuncs or something') + + return arinv + +def vargenerate(ar, u, initvalues=None): + '''generate an VAR process with errors u + + similar to gauss + uses loop + + Parameters + ---------- + ar : array (nlags,nvars,nvars) + matrix lagpolynomial + u : array (nobs,nvars) + exogenous variable, error term for VAR + + Returns + ------- + sar : array (1+nobs,nvars) + sample of var process, inverse filtered u + does not trim initial condition y_0 = 0 + + Examples + -------- + # generate random sample of VAR + nobs, nvars = 10, 2 + u = numpy.random.randn(nobs,nvars) + a21 = np.array([[[ 1. , 0. ], + [ 0. , 1. ]], + + [[-0.8, 0. ], + [ 0., -0.6]]]) + vargenerate(a21,u) + + # Impulse Response to an initial shock to the first variable + imp = np.zeros((nobs, nvars)) + imp[0,0] = 1 + vargenerate(a21,imp) + + ''' + nlags, nvars, nvarsex = ar.shape + nlagsm1 = nlags - 1 + nobs = u.shape[0] + if nvars != nvarsex: + print('exogenous variables not implemented not tested') + if u.shape[1] != nvars: + raise ValueError('u needs to have nvars columns') + if initvalues is None: + sar = np.zeros((nobs+nlagsm1, nvars)) + start = nlagsm1 + else: + start = max(nlagsm1, initvalues.shape[0]) + sar = np.zeros((nobs+start, nvars)) + sar[start-initvalues.shape[0]:start] = initvalues + #sar[nlagsm1:] = u + sar[start:] = u + #if version == 1: + for i in range(start,start+nobs): + for p in range(1,nlags): + sar[i] += np.dot(sar[i-p,:],-ar[p]) + + return sar + + +def padone(x, front=0, back=0, axis=0, fillvalue=0): + '''pad with zeros along one axis, currently only axis=0 + + + can be used sequentially to pad several axis + + Examples + -------- + >>> padone(np.ones((2,3)),1,3,axis=1) + array([[ 0., 1., 1., 1., 0., 0., 0.], + [ 0., 1., 1., 1., 0., 0., 0.]]) + + >>> padone(np.ones((2,3)),1,1, fillvalue=np.nan) + array([[ NaN, NaN, NaN], + [ 1., 1., 1.], + [ 1., 1., 1.], + [ NaN, NaN, NaN]]) + ''' + #primitive version + shape = np.array(x.shape) + shape[axis] += (front + back) + shapearr = np.array(x.shape) + out = np.empty(shape) + out.fill(fillvalue) + startind = np.zeros(x.ndim) + startind[axis] = front + endind = startind + shapearr + myslice = [slice(startind[k], endind[k]) for k in range(len(endind))] + #print(myslice + #print(out.shape + #print(out[tuple(myslice)].shape + out[tuple(myslice)] = x + return out + +def trimone(x, front=0, back=0, axis=0): + '''trim number of array elements along one axis + + + Examples + -------- + >>> xp = padone(np.ones((2,3)),1,3,axis=1) + >>> xp + array([[ 0., 1., 1., 1., 0., 0., 0.], + [ 0., 1., 1., 1., 0., 0., 0.]]) + >>> trimone(xp,1,3,1) + array([[ 1., 1., 1.], + [ 1., 1., 1.]]) + ''' + shape = np.array(x.shape) + shape[axis] -= (front + back) + #print(shape, front, back + shapearr = np.array(x.shape) + startind = np.zeros(x.ndim) + startind[axis] = front + endind = startind + shape + myslice = [slice(startind[k], endind[k]) for k in range(len(endind))] + #print(myslice + #print(shape, endind + #print(x[tuple(myslice)].shape + return x[tuple(myslice)] + + + +def ar2full(ar): + '''make reduced lagpolynomial into a right side lagpoly array + ''' + nlags, nvar,nvarex = ar.shape + return np.r_[np.eye(nvar,nvarex)[None,:,:],-ar] + +def ar2lhs(ar): + '''convert full (rhs) lagpolynomial into a reduced, left side lagpoly array + + this is mainly a reminder about the definition + ''' + return -ar[1:] + + + +class _Var(object): + '''obsolete VAR class, use tsa.VAR instead, for internal use only + + + Examples + -------- + + >>> v = Var(ar2s) + >>> v.fit(1) + >>> v.arhat + array([[[ 1. , 0. ], + [ 0. , 1. ]], + + [[-0.77784898, 0.01726193], + [ 0.10733009, -0.78665335]]]) + + ''' + + def __init__(self, y): + self.y = y + self.nobs, self.nvars = y.shape + + + def fit(self, nlags): + '''estimate parameters using ols + + Parameters + ---------- + nlags : integer + number of lags to include in regression, same for all variables + + Returns + ------- + None, but attaches + + arhat : array (nlags, nvar, nvar) + full lag polynomial array + arlhs : array (nlags-1, nvar, nvar) + reduced lag polynomial for left hand side + other statistics as returned by linalg.lstsq : need to be completed + + + + This currently assumes all parameters are estimated without restrictions. + In this case SUR is identical to OLS + + estimation results are attached to the class instance + + + ''' + self.nlags = nlags # without current period + nvars = self.nvars + #TODO: ar2s looks like a module variable, bug? + #lmat = lagmat(ar2s, nlags, trim='both', original='in') + lmat = lagmat(self.y, nlags, trim='both', original='in') + self.yred = lmat[:,:nvars] + self.xred = lmat[:,nvars:] + res = np.linalg.lstsq(self.xred, self.yred) + self.estresults = res + self.arlhs = res[0].reshape(nlags, nvars, nvars) + self.arhat = ar2full(self.arlhs) + self.rss = res[1] + self.xredrank = res[2] + + def predict(self): + '''calculate estimated timeseries (yhat) for sample + + ''' + + if not hasattr(self, 'yhat'): + self.yhat = varfilter(self.y, self.arhat) + return self.yhat + + def covmat(self): + ''' covariance matrix of estimate + # not sure it's correct, need to check orientation everywhere + # looks ok, display needs getting used to + >>> v.rss[None,None,:]*np.linalg.inv(np.dot(v.xred.T,v.xred))[:,:,None] + array([[[ 0.37247445, 0.32210609], + [ 0.1002642 , 0.08670584]], + + [[ 0.1002642 , 0.08670584], + [ 0.45903637, 0.39696255]]]) + >>> + >>> v.rss[0]*np.linalg.inv(np.dot(v.xred.T,v.xred)) + array([[ 0.37247445, 0.1002642 ], + [ 0.1002642 , 0.45903637]]) + >>> v.rss[1]*np.linalg.inv(np.dot(v.xred.T,v.xred)) + array([[ 0.32210609, 0.08670584], + [ 0.08670584, 0.39696255]]) + ''' + + #check if orientation is same as self.arhat + self.paramcov = (self.rss[None,None,:] * + np.linalg.inv(np.dot(self.xred.T, self.xred))[:,:,None]) + + def forecast(self, horiz=1, u=None): + '''calculates forcast for horiz number of periods at end of sample + + Parameters + ---------- + horiz : int (optional, default=1) + forecast horizon + u : array (horiz, nvars) + error term for forecast periods. If None, then u is zero. + + Returns + ------- + yforecast : array (nobs+horiz, nvars) + this includes the sample and the forecasts + ''' + if u is None: + u = np.zeros((horiz, self.nvars)) + return vargenerate(self.arhat, u, initvalues=self.y) + + +class VarmaPoly(object): + '''class to keep track of Varma polynomial format + + + Examples + -------- + + ar23 = np.array([[[ 1. , 0. ], + [ 0. , 1. ]], + + [[-0.6, 0. ], + [ 0.2, -0.6]], + + [[-0.1, 0. ], + [ 0.1, -0.1]]]) + + ma22 = np.array([[[ 1. , 0. ], + [ 0. , 1. ]], + + [[ 0.4, 0. ], + [ 0.2, 0.3]]]) + + + ''' + def __init__(self, ar, ma=None): + self.ar = ar + self.ma = ma + nlags, nvarall, nvars = ar.shape + self.nlags, self.nvarall, self.nvars = nlags, nvarall, nvars + self.isstructured = not (ar[0,:nvars] == np.eye(nvars)).all() + if self.ma is None: + self.ma = np.eye(nvars)[None,...] + self.isindependent = True + else: + self.isindependent = not (ma[0] == np.eye(nvars)).all() + self.malags = ar.shape[0] + self.hasexog = nvarall > nvars + self.arm1 = -ar[1:] + + + #@property + def vstack(self, a=None, name='ar'): + '''stack lagpolynomial vertically in 2d array + + ''' + if not a is None: + a = a + elif name == 'ar': + a = self.ar + elif name == 'ma': + a = self.ma + else: + raise ValueError('no array or name given') + return a.reshape(-1, self.nvarall) + + #@property + def hstack(self, a=None, name='ar'): + '''stack lagpolynomial horizontally in 2d array + + ''' + if not a is None: + a = a + elif name == 'ar': + a = self.ar + elif name == 'ma': + a = self.ma + else: + raise ValueError('no array or name given') + return a.swapaxes(1,2).reshape(-1, self.nvarall).T + + #@property + def stacksquare(self, a=None, name='ar', orientation='vertical'): + '''stack lagpolynomial vertically in 2d square array with eye + + ''' + if not a is None: + a = a + elif name == 'ar': + a = self.ar + elif name == 'ma': + a = self.ma + else: + raise ValueError('no array or name given') + astacked = a.reshape(-1, self.nvarall) + lenpk, nvars = astacked.shape #[0] + amat = np.eye(lenpk, k=nvars) + amat[:,:nvars] = astacked + return amat + + #@property + def vstackarma_minus1(self): + '''stack ar and lagpolynomial vertically in 2d array + + ''' + a = np.concatenate((self.ar[1:], self.ma[1:]),0) + return a.reshape(-1, self.nvarall) + + #@property + def hstackarma_minus1(self): + '''stack ar and lagpolynomial vertically in 2d array + + this is the Kalman Filter representation, I think + ''' + a = np.concatenate((self.ar[1:], self.ma[1:]),0) + return a.swapaxes(1,2).reshape(-1, self.nvarall) + + def getisstationary(self, a=None): + '''check whether the auto-regressive lag-polynomial is stationary + + Returns + ------- + isstationary : boolean + + *attaches* + + areigenvalues : complex array + eigenvalues sorted by absolute value + + References + ---------- + formula taken from NAG manual + + ''' + if not a is None: + a = a + else: + if self.isstructured: + a = -self.reduceform(self.ar)[1:] + else: + a = -self.ar[1:] + amat = self.stacksquare(a) + ev = np.sort(np.linalg.eigvals(amat))[::-1] + self.areigenvalues = ev + return (np.abs(ev) < 1).all() + + def getisinvertible(self, a=None): + '''check whether the auto-regressive lag-polynomial is stationary + + Returns + ------- + isinvertible : boolean + + *attaches* + + maeigenvalues : complex array + eigenvalues sorted by absolute value + + References + ---------- + formula taken from NAG manual + + ''' + if not a is None: + a = a + else: + if self.isindependent: + a = self.reduceform(self.ma)[1:] + else: + a = self.ma[1:] + if a.shape[0] == 0: + # no ma lags + self.maeigenvalues = np.array([], np.complex) + return True + + + amat = self.stacksquare(a) + ev = np.sort(np.linalg.eigvals(amat))[::-1] + self.maeigenvalues = ev + return (np.abs(ev) < 1).all() + + def reduceform(self, apoly): + ''' + + this assumes no exog, todo + + ''' + if apoly.ndim != 3: + raise ValueError('apoly needs to be 3d') + nlags, nvarsex, nvars = apoly.shape + + a = np.empty_like(apoly) + try: + a0inv = np.linalg.inv(a[0,:nvars, :]) + except np.linalg.LinAlgError: + raise ValueError('matrix not invertible', + 'ask for implementation of pinv') + + for lag in range(nlags): + a[lag] = np.dot(a0inv, apoly[lag]) + + return a + + + + +if __name__ == "__main__": + # some example lag polynomials + a21 = np.array([[[ 1. , 0. ], + [ 0. , 1. ]], + + [[-0.8, 0. ], + [ 0., -0.6]]]) + + a22 = np.array([[[ 1. , 0. ], + [ 0. , 1. ]], + + [[-0.8, 0. ], + [ 0.1, -0.8]]]) + + a23 = np.array([[[ 1. , 0. ], + [ 0. , 1. ]], + + [[-0.8, 0.2], + [ 0.1, -0.6]]]) + + a24 = np.array([[[ 1. , 0. ], + [ 0. , 1. ]], + + [[-0.6, 0. ], + [ 0.2, -0.6]], + + [[-0.1, 0. ], + [ 0.1, -0.1]]]) + + a31 = np.r_[np.eye(3)[None,:,:], 0.8*np.eye(3)[None,:,:]] + a32 = np.array([[[ 1. , 0. , 0. ], + [ 0. , 1. , 0. ], + [ 0. , 0. , 1. ]], + + [[ 0.8, 0. , 0. ], + [ 0.1, 0.6, 0. ], + [ 0. , 0. , 0.9]]]) + + ######## + ut = np.random.randn(1000,2) + ar2s = vargenerate(a22,ut) + #res = np.linalg.lstsq(lagmat(ar2s,1)[:,1:], ar2s) + res = np.linalg.lstsq(lagmat(ar2s,1), ar2s) + bhat = res[0].reshape(1,2,2) + arhat = ar2full(bhat) + #print(maxabs(arhat - a22) + + + v = _Var(ar2s) + v.fit(1) + v.forecast() + v.forecast(25)[-30:] + + + ar23 = np.array([[[ 1. , 0. ], + [ 0. , 1. ]], + + [[-0.6, 0. ], + [ 0.2, -0.6]], + + [[-0.1, 0. ], + [ 0.1, -0.1]]]) + + ma22 = np.array([[[ 1. , 0. ], + [ 0. , 1. ]], + + [[ 0.4, 0. ], + [ 0.2, 0.3]]]) + + ar23ns = np.array([[[ 1. , 0. ], + [ 0. , 1. ]], + + [[-1.9, 0. ], + [ 0.4, -0.6]], + + [[ 0.3, 0. ], + [ 0.1, -0.1]]]) + + vp = VarmaPoly(ar23, ma22) + print(vars(vp)) + print(vp.vstack()) + print(vp.vstack(a24)) + print(vp.hstackarma_minus1()) + print(vp.getisstationary()) + print(vp.getisinvertible()) + + vp2 = VarmaPoly(ar23ns) + print(vp2.getisstationary()) + print(vp2.getisinvertible()) # no ma lags diff --git a/statsmodels/tsa/vector_ar/__init__.py b/statsmodels/tsa/vector_ar/__init__.py new file mode 100644 index 0000000..0123ce8 --- /dev/null +++ b/statsmodels/tsa/vector_ar/__init__.py @@ -0,0 +1,2 @@ +from statsmodels import NoseWrapper as Tester +test = Tester().test diff --git a/statsmodels/tsa/vector_ar/api.py b/statsmodels/tsa/vector_ar/api.py new file mode 100644 index 0000000..3a06805 --- /dev/null +++ b/statsmodels/tsa/vector_ar/api.py @@ -0,0 +1,5 @@ +# pylint: disable=W0611 + +from .var_model import VAR +from .svar_model import SVAR +from .dynamic import DynamicVAR diff --git a/statsmodels/tsa/vector_ar/data/e1.dat b/statsmodels/tsa/vector_ar/data/e1.dat new file mode 100644 index 0000000..09f508d --- /dev/null +++ b/statsmodels/tsa/vector_ar/data/e1.dat @@ -0,0 +1,99 @@ +/*quarterly, seasonally adjusted, West German +fixed investment, disposable income, consumption expenditures +in billions of DM, 1960Q1-1982Q4; +source: Deutsche Bundesbank +*/ +<1960 Q1> +invest income cons +180 451 415 +179 465 421 +185 485 434 +192 493 448 +211 509 459 +202 520 458 +207 521 479 +214 540 487 +231 548 497 +229 558 510 +234 574 516 +237 583 525 +206 591 529 +250 599 538 +259 610 546 +263 627 555 +264 642 574 +280 653 574 +282 660 586 +292 694 602 +286 709 617 +302 734 639 +304 751 653 +307 763 668 +317 766 679 +314 779 686 +306 808 697 +304 785 688 +292 794 704 +275 799 699 +273 799 709 +301 812 715 +280 837 724 +289 853 746 +303 876 758 +322 897 779 +315 922 798 +339 949 816 +364 979 837 +371 988 858 +375 1025 881 +432 1063 905 +453 1104 934 +460 1131 968 +475 1137 983 +496 1178 1013 +494 1211 1034 +498 1256 1064 +526 1290 1101 +519 1314 1102 +516 1346 1145 +531 1385 1173 +573 1416 1216 +551 1436 1229 +538 1462 1242 +532 1493 1267 +558 1516 1295 +524 1557 1317 +525 1613 1355 +519 1642 1371 +526 1690 1402 +510 1759 1452 +519 1756 1485 +538 1780 1516 +549 1807 1549 +570 1831 1567 +559 1873 1588 +584 1897 1631 +611 1910 1650 +597 1943 1685 +603 1976 1722 +619 2018 1752 +635 2040 1774 +658 2070 1807 +675 2121 1831 +700 2132 1842 +692 2199 1890 +759 2253 1958 +782 2276 1948 +816 2318 1994 +844 2369 2061 +830 2423 2056 +853 2457 2102 +852 2470 2121 +833 2521 2145 +860 2545 2164 +870 2580 2206 +830 2620 2225 +801 2639 2235 +824 2618 2237 +831 2628 2250 +830 2651 2271 diff --git a/statsmodels/tsa/vector_ar/data/e2.dat b/statsmodels/tsa/vector_ar/data/e2.dat new file mode 100644 index 0000000..34d39d6 --- /dev/null +++ b/statsmodels/tsa/vector_ar/data/e2.dat @@ -0,0 +1,113 @@ +/*quarterly, seasonally adjusted, U.S. +fixed investment (y1), change in business inventories (y2), +1947Q1-1972Q4; +source: U.S. Department of Commerce, Bureau of Economic Analysis, +The National Income and Product Accounts of the United States, 1929-1974 +*/ + +<1947 Q1> + y1 y2 + 69.6 0.1 + 67.6 -0.9 + 69.5 -2.9 + 74.7 2.7 + 77.1 4.1 + 77.4 5.6 + 76.6 6.9 + 76.1 5.3 + 71.8 -0.3 + 68.9 -7.1 + 68.5 -2.5 + 70.6 -7.7 + 75.4 4.4 + 82.3 7.7 + 88.2 8.0 + 86.9 22.1 + 83.4 13.4 + 80.3 19.9 + 79.4 14.6 + 78.6 7.0 + 79.3 7.3 + 80.3 -2.7 + 75.3 5.4 + 80.6 7.2 + 83.9 3.9 + 84.2 5.1 + 84.4 1.9 + 83.8 -5.0 + 82.8 -3.4 + 84.1 -4.1 + 87.0 -2.7 + 88.5 1.5 + 92.1 5.9 + 96.1 8.0 + 98.3 7.8 + 98.8 9.2 + 96.6 7.5 + 97.4 5.5 + 97.6 4.9 + 96.6 5.4 + 96.2 2.5 + 95.3 2.9 + 96.4 3.7 + 94.9 -3.0 + 90.0 -6.8 + 87.2 -6.2 + 88.0 0.3 + 93.0 5.3 + 98.3 5.0 +101.6 13.0 +102.6 -0.4 +101.4 8.2 +104.9 13.5 +101.8 4.9 + 98.8 3.0 + 98.6 -3.9 + 97.7 -3.8 + 99.2 1.9 +101.3 6.6 +104.6 6.7 +106.1 10.6 +109.9 9.2 +111.1 8.0 +110.1 4.7 +110.7 7.6 +116.0 7.0 +118.5 9.3 +122.0 7.1 +124.0 6.1 +124.0 8.0 +124.9 7.3 +126.4 7.9 +133.4 13.4 +137.9 10.6 +140.1 12.4 +143.8 8.8 +147.5 13.5 +146.2 17.8 +145.0 15.1 +139.7 20.5 +136.4 14.6 +139.6 7.5 +141.1 12.2 +145.5 13.8 +148.9 6.3 +148.9 11.8 +150.7 9.2 +155.0 7.6 +159.1 9.8 +158.4 12.2 +158.1 13.4 +154.3 6.8 +151.8 2.9 +150.0 4.8 +150.4 6.3 +149.5 3.3 +154.3 7.9 +158.4 10.0 +162.1 5.0 +166.0 3.7 +174.3 4.8 +176.1 10.1 +178.2 12.1 +186.7 10.8 diff --git a/statsmodels/tsa/vector_ar/data/e3.dat b/statsmodels/tsa/vector_ar/data/e3.dat new file mode 100644 index 0000000..234434d --- /dev/null +++ b/statsmodels/tsa/vector_ar/data/e3.dat @@ -0,0 +1,146 @@ +/*quarterly, seasonally adjusted real U.S. money (M1), +GNP in 1982 Dollars, +discount rate on 91-day treasury bills (rd), +yield on long term treasury bonds (rb), +1954Q1-1987Q4; +source: Business Conditions Digest +*/ + +<1954 Q1> +M1 gnp rd rb +450.9 1406.8 0.010800000 0.026133333 +453.0 1401.2 0.0081333333 0.025233333 +459.1 1418.0 0.0087000000 0.024900000 +464.6 1438.8 0.010366667 0.025666667 +469.6 1469.6 0.012600000 0.027466667 +473.1 1485.7 0.015133333 0.028166667 +474.6 1505.5 0.018633333 0.029266667 +474.3 1518.7 0.023466667 0.028900000 +475.4 1515.7 0.023800000 0.028866667 +472.9 1522.6 0.025966667 0.029900000 +468.7 1523.7 0.025966667 0.031266667 +467.5 1540.6 0.030633333 0.033000000 +464.7 1553.3 0.031700000 0.032733333 +461.2 1552.4 0.031566667 0.034333333 +457.1 1561.5 0.033800000 0.036300000 +453.0 1537.3 0.033433333 0.035333333 +447.5 1506.1 0.018366667 0.032566667 +449.6 1514.2 0.010200000 0.031533333 +454.2 1550.0 0.017100000 0.035700000 +458.5 1586.7 0.027866667 0.037533333 +464.1 1606.4 0.028000000 0.039166667 +466.3 1637.0 0.030200000 0.040600000 +468.1 1629.5 0.035333333 0.041566667 +460.0 1643.4 0.043000000 0.041666667 +459.2 1671.6 0.039433333 0.042233333 +455.7 1666.8 0.030900000 0.041066667 +459.5 1668.4 0.023933333 0.038300000 +455.9 1654.1 0.023600000 0.039066667 +458.0 1671.3 0.023766667 0.038266667 +461.5 1692.1 0.023266667 0.038033333 +462.2 1716.3 0.023233333 0.039733333 +465.4 1754.9 0.024766667 0.040066667 +467.4 1777.9 0.027400000 0.040600000 +468.5 1796.4 0.027166667 0.038900000 +466.5 1813.1 0.028566667 0.039800000 +467.7 1810.1 0.028033333 0.038766667 +471.9 1834.6 0.029100000 0.039133333 +474.8 1860.0 0.029433333 0.039800000 +477.7 1892.5 0.032800000 0.040133333 +479.9 1906.1 0.034966667 0.041066667 +481.9 1948.7 0.035366667 0.041566667 +484.8 1965.4 0.034800000 0.041633333 +491.3 1985.2 0.035066667 0.041433333 +495.6 1993.7 0.036866667 0.041400000 +498.3 2036.9 0.039000000 0.041500000 +497.6 2066.4 0.038800000 0.041433333 +501.7 2099.3 0.038600000 0.041966667 +507.8 2147.6 0.041566667 0.043500000 +511.8 2190.1 0.046333333 0.045566667 +511.8 2195.8 0.045966667 0.045833333 +506.2 2218.3 0.050500000 0.047800000 +503.1 2229.2 0.045800000 0.046966667 +507.1 2241.8 0.045266667 0.044400000 +510.8 2255.2 0.036566667 0.047100000 +518.0 2287.7 0.043466667 0.049333333 +521.3 2300.6 0.047866667 0.053300000 +521.9 2327.3 0.050633333 0.052433333 +525.4 2366.9 0.055066667 0.053033333 +528.3 2385.3 0.052266667 0.050733333 +533.8 2383.0 0.055800000 0.054200000 +536.5 2416.5 0.061400000 0.058833333 +532.8 2419.8 0.062400000 0.059133333 +527.6 2433.2 0.070466667 0.061366667 +523.2 2423.5 0.073166667 0.065333333 +521.4 2408.6 0.072600000 0.065633333 +518.1 2406.5 0.067533333 0.068200000 +519.4 2435.8 0.063833333 0.066500000 +521.2 2413.8 0.053600000 0.062666667 +524.7 2478.6 0.038600000 0.058233333 +530.8 2478.4 0.042066667 0.058833333 +534.1 2491.1 0.050500000 0.057500000 +536.5 2491.0 0.042333333 0.055200000 +542.6 2545.6 0.034333333 0.056500000 +547.8 2595.1 0.037466667 0.056566667 +554.4 2622.1 0.042400000 0.056266667 +562.5 2671.3 0.048500000 0.056100000 +565.2 2734.0 0.056400000 0.061000000 +560.1 2741.0 0.066100000 0.062266667 +556.1 2738.3 0.083900000 0.065966667 +548.5 2762.8 0.074633333 0.063000000 +542.1 2747.4 0.076033333 0.066366667 +532.8 2755.2 0.082666667 0.070500000 +522.8 2719.3 0.082833333 0.072700000 +511.9 2695.4 0.073333333 0.069733333 +505.3 2642.7 0.058700000 0.067033333 +506.8 2669.6 0.054000000 0.069733333 +505.5 2714.9 0.063333333 0.070933333 +501.0 2752.7 0.056833333 0.072233333 +502.2 2804.4 0.049533333 0.069100000 +505.5 2816.9 0.051666667 0.068866667 +502.6 2828.6 0.051700000 0.067900000 +505.3 2856.8 0.046966667 0.065500000 +508.1 2896.0 0.046233333 0.070133333 +507.7 2942.7 0.048266667 0.070966667 +509.4 3001.8 0.054733333 0.069766667 +513.0 2994.1 0.061366667 0.071600000 +513.7 3020.5 0.064100000 0.075800000 +514.1 3115.9 0.064833333 0.078500000 +512.5 3142.6 0.073166667 0.079333333 +509.7 3181.6 0.086800000 0.081966667 +503.3 3181.7 0.093600000 0.084366667 +496.1 3178.9 0.093733333 0.084366667 +497.2 3207.4 0.096300000 0.084833333 +487.6 3201.3 0.11803333 0.096066667 +474.0 3233.4 0.13460000 0.11150000 +451.2 3157.0 0.10050000 0.10016667 +464.9 3159.1 0.092366667 0.10433333 +465.3 3199.2 0.13710000 0.11640000 +455.3 3261.1 0.14366667 0.12010000 +453.7 3250.2 0.14830000 0.12656667 +448.9 3264.6 0.15086667 0.13600000 +447.1 3219.3 0.12023333 0.13230000 +451.2 3170.4 0.12893333 0.13446667 +447.1 3179.9 0.12360000 0.12943333 +449.1 3154.5 0.097066667 0.12200000 +464.9 3159.3 0.079333333 0.10340000 +475.8 3186.6 0.080800000 0.10436667 +484.3 3258.3 0.084200000 0.10346667 +493.6 3306.4 0.091866667 0.11260000 +496.4 3365.1 0.087933333 0.11323333 +497.5 3451.7 0.091333333 0.11543333 +500.4 3498.0 0.098433333 0.12686667 +501.5 3520.6 0.10343333 0.12340000 +502.2 3535.2 0.089733333 0.11373333 +511.0 3577.5 0.081833333 0.11426667 +518.2 3599.2 0.075233333 0.10913333 +533.9 3635.8 0.071033333 0.10590000 +543.2 3662.4 0.071466667 0.10080000 +553.4 3719.3 0.068866667 0.089033333 +576.8 3711.6 0.061300000 0.079466667 +598.0 3721.3 0.055333333 0.078866667 +620.0 3734.7 0.053400000 0.078400000 +631.9 3776.7 0.055333333 0.076366667 +634.8 3823.0 0.057333333 0.085766667 +630.1 3865.3 0.060333333 0.090833333 +630.5 3923.0 0.060033333 0.092400000 diff --git a/statsmodels/tsa/vector_ar/data/e4.dat b/statsmodels/tsa/vector_ar/data/e4.dat new file mode 100644 index 0000000..fb6f10b --- /dev/null +++ b/statsmodels/tsa/vector_ar/data/e4.dat @@ -0,0 +1,121 @@ +/*quarterly, unadjusted, West German +real per capita disposable income, +personal consumption expenditures, +1960Q1-1987Q4; +source: Deutsches Institut fuer Wirtschaftsforschung, Berlin +*/ + +<1960 Q1> +inc cons +1684.6080 1505.3198 +1757.2068 1632.8338 +1842.7211 1655.8021 +2027.3177 1889.8641 +1859.0561 1600.8018 +1832.6429 1686.0382 +1893.5360 1739.6939 +2098.9234 1958.8067 +1873.2676 1645.0461 +1908.6426 1798.0200 +1989.5797 1805.1480 +2203.5812 2038.5067 +1931.2619 1673.9302 +1980.3270 1829.8065 +2065.5097 1848.9135 +2256.8667 2065.9135 +2040.4667 1758.5866 +2098.8673 1894.7205 +2145.8642 1910.8631 +2427.6995 2165.6707 +2178.3079 1830.4957 +2268.4690 2024.4865 +2313.5771 2040.4966 +2548.2016 2274.2020 +2239.8707 1919.7148 +2286.0157 2070.1321 +2379.5459 2085.6752 +2535.5248 2269.4856 +2247.8021 1942.0016 +2311.8334 2063.5617 +2332.9532 2088.5606 +2579.1389 2320.2063 +2348.2887 1965.2127 +2404.7787 2164.5546 +2478.4108 2182.9295 +2808.6086 2467.3345 +2535.4286 2121.2628 +2605.4529 2307.8719 +2688.1167 2333.5107 +2998.7831 2626.8251 +2695.4440 2252.5326 +2764.9544 2445.3018 +2879.4832 2484.5415 +3255.6348 2810.1885 +2825.4761 2383.4010 +2877.2233 2575.9185 +2955.7203 2578.9525 +3378.4279 2872.9650 +3014.1083 2517.0234 +3030.1896 2645.5602 +3092.0762 2682.6305 +3491.3989 2962.6573 +3098.3107 2607.4582 +3091.6898 2755.3575 +3144.9089 2732.3144 +3535.0880 2988.6982 +3096.3842 2606.4549 +3110.8586 2748.4852 +3222.0775 2775.8346 +3613.9943 3012.7843 +3233.5315 2647.7614 +3319.4594 2854.9956 +3323.1825 2880.3328 +3723.1654 3164.0112 +3312.5138 2808.3615 +3324.6223 2965.6652 +3418.3893 2978.0314 +3824.4625 3280.6247 +3414.6557 2914.1164 +3438.2362 3095.7771 +3487.2942 3122.1189 +3973.8991 3438.6965 +3546.9684 3053.1464 +3553.1513 3216.7262 +3655.2346 3254.8354 +4102.7937 3543.8848 +3680.9675 3130.1370 +3783.8147 3406.7708 +3755.9600 3327.0867 +4261.4059 3669.2334 +3797.3271 3279.6486 +3786.5219 3324.2316 +3790.9261 3369.4241 +4282.9525 3682.5376 +3848.1635 3250.4014 +3764.6489 3308.7353 +3759.0830 3339.1146 +4294.2124 3661.0499 +3811.5833 3224.8444 +3709.8919 3291.6504 +3641.5356 3260.4145 +4180.7126 3611.8419 +3734.1328 3259.6856 +3698.3154 3361.7589 +3664.9417 3347.9925 +4237.3911 3700.2983 +3847.0869 3323.8678 +3766.3393 3424.4785 +3783.3845 3430.6044 +4327.6089 3753.7867 +3887.8617 3335.6273 +3839.1482 3469.0466 +3859.0148 3533.5180 +4431.0216 3859.7411 +4049.0191 3452.2034 +4053.1962 3669.5399 +4077.4384 3673.5696 +4653.9432 3999.3784 +4191.4281 3540.2152 +4163.4328 3750.5110 +4177.7770 3775.5819 +4811.1361 4150.3215 diff --git a/statsmodels/tsa/vector_ar/data/e5.dat b/statsmodels/tsa/vector_ar/data/e5.dat new file mode 100644 index 0000000..036e033 --- /dev/null +++ b/statsmodels/tsa/vector_ar/data/e5.dat @@ -0,0 +1,345 @@ +/*monthly West German +interest rate on 3-months loans in the money market (i_short), +yields on bonds outstanding for total fixed interest securities (i_long), +1960M1-1987M12; +source: Deutsche Bundesbank +*/ + +<1960 M1> + i_short i_long + 4.3600000 6.2000000 + 4.4700000 6.2000000 + 4.7100000 6.2000000 + 4.5900000 6.2000000 + 4.6400000 6.2000000 + 5.2500000 6.4000000 + 5.5800000 6.6000000 + 5.4400000 6.5000000 + 5.6100000 6.4000000 + 6.1000000 6.4000000 + 5.3800000 6.2000000 + 5.0600000 6.2000000 + 4.6600000 6.1000000 + 4.1300000 6.1000000 + 3.7300000 6.0000000 + 3.3400000 5.8000000 + 3.2300000 5.7000000 + 3.1300000 5.7000000 + 3.1600000 5.8000000 + 3.0900000 5.9000000 + 3.0600000 6.0000000 + 4.0500000 6.0000000 + 3.7100000 6.0000000 + 3.8300000 6.0000000 + 2.9300000 5.9000000 + 2.9400000 5.9000000 + 3.0200000 5.8000000 + 3.0800000 5.8000000 + 3.0800000 5.9000000 + 3.1300000 6.0000000 + 3.2900000 6.0000000 + 3.2600000 6.1000000 + 3.2000000 6.1000000 + 4.4500000 6.2000000 + 4.3300000 6.2000000 + 4.3500000 6.2000000 + 3.2900000 6.1000000 + 3.3100000 6.1000000 + 3.5300000 6.1000000 + 3.5600000 6.1000000 + 3.6000000 6.1000000 + 3.8300000 6.1000000 + 3.9800000 6.1000000 + 3.8100000 6.1000000 + 3.7500000 6.1000000 + 5.1300000 6.1000000 + 5.0000000 6.1000000 + 4.9800000 6.1000000 + 3.3300000 6.0000000 + 3.3300000 6.0000000 + 3.4600000 6.0000000 + 3.5500000 6.1000000 + 3.6900000 6.2000000 + 3.7500000 6.2000000 + 3.6900000 6.3000000 + 3.9100000 6.3000000 + 4.0800000 6.3000000 + 5.4200000 6.3000000 + 5.5000000 6.3000000 + 5.3600000 6.3000000 + 3.8800000 6.3000000 + 3.9500000 6.4000000 + 4.2800000 6.4000000 + 4.5200000 6.5000000 + 4.6900000 6.7000000 + 4.8000000 6.8000000 + 5.0800000 6.9000000 + 5.2700000 7.0000000 + 5.3600000 7.1000000 + 6.6600000 7.2000000 + 6.5800000 7.3000000 + 6.5500000 7.4000000 + 5.2300000 7.3000000 + 5.3600000 7.3000000 + 5.6900000 7.4000000 + 6.2100000 7.6000000 + 6.3500000 7.7000000 + 6.8100000 7.9000000 + 6.8900000 8.1000000 + 7.0000000 8.1000000 + 6.8000000 8.1000000 + 7.8800000 8.0000000 + 7.7300000 7.9000000 + 7.5700000 7.6000000 + 5.6900000 7.4000000 + 5.5600000 7.3000000 + 5.0400000 7.2000000 + 4.4800000 6.9000000 + 3.6900000 6.8000000 + 3.9800000 6.9000000 + 3.5100000 6.9000000 + 3.5600000 6.9000000 + 3.4300000 6.9000000 + 4.2000000 6.9000000 + 4.0000000 7.0000000 + 4.0700000 7.0000000 + 3.3200000 6.9000000 + 3.4500000 7.0000000 + 3.5200000 7.0000000 + 3.6400000 6.9000000 + 3.6800000 6.7000000 + 3.7200000 6.7000000 + 3.5900000 6.7000000 + 3.5500000 6.6000000 + 3.5400000 6.5000000 + 4.7500000 6.5000000 + 4.5000000 6.6000000 + 4.4400000 6.5000000 + 3.8700000 6.5000000 + 3.9100000 6.5000000 + 4.2100000 6.6000000 + 4.4000000 6.7000000 + 4.3800000 6.8000000 + 5.5000000 6.9000000 + 5.7800000 7.1000000 + 6.5000000 7.1000000 + 6.9400000 7.2000000 + 7.4200000 7.3000000 + 7.6900000 7.3000000 + 8.8300000 7.4000000 + 9.2900000 7.5000000 + 9.5100000 7.6000000 + 9.8100000 7.9000000 + 9.8600000 8.0000000 + 9.9300000 8.2000000 + 9.8800000 8.6000000 + 9.5900000 8.6000000 + 9.1600000 8.4000000 + 9.3600000 8.4000000 + 9.5300000 8.5000000 + 8.8400000 8.6000000 + 8.1200000 8.3000000 + 7.5000000 7.9000000 + 7.4700000 7.9000000 + 7.4600000 8.0000000 + 6.3600000 8.0000000 + 6.1600000 8.1000000 + 6.8000000 8.3000000 + 7.6600000 8.5000000 + 7.5600000 8.5000000 + 7.5900000 8.4000000 + 7.8000000 8.3000000 + 6.7900000 8.2000000 + 6.6300000 8.1000000 + 5.1900000 7.9000000 + 4.8800000 7.7000000 + 4.8000000 7.8000000 + 4.7800000 8.0000000 + 4.7100000 8.2000000 + 4.6500000 8.3000000 + 4.6500000 8.4000000 + 4.8000000 8.3000000 + 5.3200000 8.3000000 + 6.8800000 8.4000000 + 8.0700000 8.6000000 + 8.6000000 8.7000000 + 7.8900000 8.6000000 + 7.9600000 8.6000000 + 8.7700000 8.7000000 + 10.620000 8.9000000 + 12.420000 9.4000000 + 13.620000 10.200000 + 14.300000 10.300000 + 14.570000 10.100000 + 14.250000 9.8000000 + 14.490000 9.9000000 + 13.620000 9.6000000 + 13.200000 9.7000000 + 12.090000 9.7000000 + 10.670000 10.000000 + 11.200000 10.700000 + 10.070000 10.800000 + 9.1000000 10.800000 + 9.4600000 10.900000 + 9.4800000 10.900000 + 9.6500000 10.900000 + 9.6900000 10.800000 + 9.7800000 10.900000 + 9.0400000 10.600000 + 8.6000000 9.9000000 + 7.7400000 9.4000000 + 6.4300000 9.0000000 + 5.7100000 8.9000000 + 4.8900000 8.8000000 + 4.9900000 8.5000000 + 4.8800000 8.4000000 + 4.6600000 8.4000000 + 3.8800000 8.6000000 + 3.9300000 8.7000000 + 4.0700000 8.7000000 + 4.1200000 8.7000000 + 4.2100000 8.6000000 + 3.9300000 8.4000000 + 3.7200000 8.2000000 + 3.7400000 7.8000000 + 3.6200000 7.8000000 + 3.7700000 8.0000000 + 4.1400000 8.3000000 + 4.4700000 8.4000000 + 4.5600000 8.3000000 + 4.5600000 8.1000000 + 4.8500000 8.0000000 + 4.6900000 7.6000000 + 4.9300000 7.4000000 + 4.7800000 7.2000000 + 4.7100000 7.1000000 + 4.7300000 7.0000000 + 4.6200000 6.6000000 + 4.4400000 6.4000000 + 4.2800000 6.4000000 + 4.2900000 6.3000000 + 4.1200000 6.1000000 + 4.1500000 6.0000000 + 4.1300000 6.0000000 + 4.1500000 6.0000000 + 3.9800000 6.0000000 + 3.5800000 5.8000000 + 3.4600000 5.7000000 + 3.5100000 5.6000000 + 3.5600000 5.6000000 + 3.6000000 5.8000000 + 3.6800000 6.0000000 + 3.7500000 6.3000000 + 3.7000000 6.6000000 + 3.7000000 6.4000000 + 3.9500000 6.3000000 + 3.8500000 6.6000000 + 4.0600000 6.6000000 + 3.8900000 6.7000000 + 4.1500000 7.0000000 + 4.4700000 7.1000000 + 5.5400000 7.2000000 + 5.9200000 7.6000000 + 6.4600000 8.0000000 + 6.8400000 7.9000000 + 7.0900000 7.7000000 + 7.8900000 7.8000000 + 8.7600000 7.9000000 + 9.6500000 8.3000000 + 9.5800000 8.0000000 + 8.8600000 8.1000000 + 8.9700000 8.5000000 + 9.6400000 9.5000000 + 10.220000 9.6000000 + 10.260000 8.8000000 + 10.110000 8.3000000 + 9.7000000 8.0000000 + 8.9800000 7.9000000 + 8.9700000 8.3000000 + 9.0800000 8.5000000 + 9.4500000 9.0000000 + 10.200000 9.1000000 + 9.4700000 9.2000000 + 10.670000 9.9000000 + 13.600000 10.400000 + 13.190000 10.400000 + 13.200000 11.000000 + 13.090000 11.100000 + 12.960000 11.200000 + 12.900000 11.500000 + 12.500000 11.300000 + 11.780000 10.600000 + 11.080000 10.200000 + 10.820000 9.9000000 + 10.460000 10.000000 + 10.270000 9.9000000 + 9.8700000 9.6000000 + 9.3300000 9.1000000 + 9.1800000 8.9000000 + 9.2800000 9.2000000 + 9.4600000 9.5000000 + 9.0000000 9.2000000 + 8.1800000 8.8000000 + 7.5800000 8.4000000 + 7.3100000 8.2000000 + 6.6200000 8.0000000 + 5.8200000 7.7000000 + 5.8300000 7.7000000 + 5.4500000 7.4000000 + 5.2000000 7.4000000 + 5.3300000 7.7000000 + 5.5700000 8.1000000 + 5.5700000 8.2000000 + 5.7100000 8.3000000 + 5.8800000 8.4000000 + 6.1800000 8.2000000 + 6.3000000 8.2000000 + 6.4800000 8.3000000 + 6.1200000 8.2000000 + 5.9500000 8.1000000 + 5.8600000 7.9000000 + 5.8400000 7.9000000 + 6.1000000 8.0000000 + 6.1300000 8.1000000 + 6.1300000 8.1000000 + 6.0200000 7.9000000 + 5.8200000 7.7000000 + 6.0700000 7.4000000 + 5.9600000 7.2000000 + 5.8300000 7.0000000 + 5.8700000 7.1000000 + 6.1600000 7.5000000 + 6.3900000 7.7000000 + 6.0200000 7.3000000 + 5.8400000 7.1000000 + 5.6800000 7.0000000 + 5.3400000 6.8000000 + 4.7900000 6.5000000 + 4.6900000 6.4000000 + 4.8100000 6.6000000 + 4.8400000 6.7000000 + 4.8300000 6.6000000 + 4.6700000 6.4000000 + 4.4900000 6.3000000 + 4.5400000 6.0000000 + 4.4900000 5.6000000 + 4.6000000 5.9000000 + 4.6000000 6.0000000 + 4.6300000 6.0000000 + 4.5700000 5.8000000 + 4.5000000 5.8000000 + 4.5900000 6.0000000 + 4.6900000 6.1000000 + 4.8100000 6.0000000 + 4.4900000 5.9000000 + 3.9700000 5.7000000 + 3.9900000 5.6000000 + 3.8900000 5.5000000 + 3.7600000 5.4000000 + 3.7000000 5.5000000 + 3.8300000 5.8000000 + 3.9500000 6.0000000 + 3.9900000 6.2000000 + 4.7000000 6.5000000 + 3.9400000 6.0000000 + 3.6500000 5.8000000 diff --git a/statsmodels/tsa/vector_ar/data/e6.dat b/statsmodels/tsa/vector_ar/data/e6.dat new file mode 100644 index 0000000..5063953 --- /dev/null +++ b/statsmodels/tsa/vector_ar/data/e6.dat @@ -0,0 +1,118 @@ +/* +sample: 1972Q2 -- 1998Q4 +West German data until 1990Q2, all of Germany aferwards +Dp - \Delta log gdp deflator (source: Deutsches Institut für Wirtschaftsforschung, + Volkswirtschaftliche Gesamtrechnung) +R - nominal long term interest rate (Umlaufsrendite) + (source: Monatsberichte der Deutschen Bundesbank, + quarterly values are values of last month of quarter) +*/ +<1972 Q2> + Dp R +-0.00313258 0.083 +0.0188713 0.083 +0.0248036 0.087 +0.0162776 0.087 +2.89679E-4 0.102 +0.016829 0.098 +0.0385835 0.097 +-0.00144386 0.107 +0.0127239 0.109 +0.0238972 0.108 +0.0427728 0.099 +-0.0103779 0.089 +0.00558424 0.084 +0.00870609 0.087 +0.0389199 0.086 +-0.0196176 0.078 +0.00731993 0.083 +0.0180764 0.081 +0.0237775 0.074 +-0.0144377 0.07 +0.0110059 0.064 +0.0104017 0.06 +0.0354648 0.06 +-0.0157599 0.056 +0.0100193 0.06 +0.0180621 0.064 +0.0256915 0.066 +-0.0170689 0.071 +0.00350475 0.08 +0.0256438 0.078 +0.0315075 0.08 +-0.0132775 0.095 +0.0130968 0.083 +0.0151458 0.083 +0.0312119 0.091 +-0.0207896 0.104 +0.0104489 0.111 +0.018106 0.113 +0.0405002 0.099 +-0.0201483 0.096 +0.00380802 0.092 +0.0215569 0.088 +0.0327106 0.08 +-0.0201726 0.074 +-0.00333166 0.081 +0.0192871 0.084 +0.0345473 0.083 +-0.0262156 0.079 +-0.00519753 0.081 +0.0132318 0.077 +0.0374279 0.07 +-0.0291948 0.077 +-0.00261354 0.07 +0.0172353 0.064 +0.0376387 0.066 +-0.0204763 0.06 +9.00269E-4 0.06 +0.0125732 0.058 +0.0344677 0.06 +-0.0220394 0.056 +-0.00202703 0.055 +0.00173426 0.062 +0.0365901 0.058 +-0.0252557 0.056 +9.2268E-4 0.06 +0.00451374 0.063 +0.0383272 0.062 +-0.0211368 0.07 +-5.33104E-4 0.071 +0.00981092 0.071 +0.0373549 0.078 +-0.016232 0.09 +0.00197124 0.09 +0.00687361 0.091 +0.0274582 0.09 +-0.0140786 0.086 +0.0166497 0.086 +0.0144682 0.088 +0.043004 0.087 +-0.0127769 0.082 +0.00927353 0.084 +0.0179157 0.082 +0.030508 0.074 +-0.0105906 0.065 +0.00747108 0.067 +0.00467587 0.061 +0.0310678 0.056 +-0.0153685 0.062 +8.10146E-4 0.069 +0.00806475 0.074 +0.0287657 0.074 +-0.0183783 0.071 +0.00449467 0.064 +0.00988674 0.061 +0.0245948 0.055 +-0.0185189 0.058 +-0.00590181 0.059 +0.00581503 0.055 +0.0243654 0.051 +-0.0157485 0.051 +-0.00749254 0.05 +0.00388288 0.051 +0.0242448 0.051 +-0.014647 0.047 +-0.00204897 0.047 +0.00247526 0.041 +0.0239234 0.038 diff --git a/statsmodels/tsa/vector_ar/dynamic.py b/statsmodels/tsa/vector_ar/dynamic.py new file mode 100644 index 0000000..e48610c --- /dev/null +++ b/statsmodels/tsa/vector_ar/dynamic.py @@ -0,0 +1,366 @@ +# pylint: disable=W0201 + +from statsmodels.compat.python import iteritems, string_types, range +import numpy as np +from statsmodels.tools.decorators import cache_readonly +import pandas as pd + +from . import var_model as _model +from . import util +from . import plotting + +FULL_SAMPLE = 0 +ROLLING = 1 +EXPANDING = 2 + + +def _get_window_type(window_type): + if window_type in (FULL_SAMPLE, ROLLING, EXPANDING): + return window_type + elif isinstance(window_type, string_types): + window_type_up = window_type.upper() + + if window_type_up in ('FULL SAMPLE', 'FULL_SAMPLE'): + return FULL_SAMPLE + elif window_type_up == 'ROLLING': + return ROLLING + elif window_type_up == 'EXPANDING': + return EXPANDING + + raise Exception('Unrecognized window type: %s' % window_type) + + +class DynamicVAR(object): + """ + Estimates time-varying vector autoregression (VAR(p)) using + equation-by-equation least squares + + Parameters + ---------- + data : pandas.DataFrame + lag_order : int, default 1 + window : int + window_type : {'expanding', 'rolling'} + min_periods : int or None + Minimum number of observations to require in window, defaults to window + size if None specified + trend : {'c', 'nc', 'ct', 'ctt'} + TODO + + Returns + ------- + **Attributes**: + + coefs : Panel + items : coefficient names + major_axis : dates + minor_axis : VAR equation names + """ + def __init__(self, data, lag_order=1, window=None, window_type='expanding', + trend='c', min_periods=None): + self.lag_order = lag_order + + self.names = list(data.columns) + self.neqs = len(self.names) + + self._y_orig = data + + # TODO: deal with trend + self._x_orig = _make_lag_matrix(data, lag_order) + self._x_orig['intercept'] = 1 + + (self.y, self.x, self.x_filtered, self._index, + self._time_has_obs) = _filter_data(self._y_orig, self._x_orig) + + self.lag_order = lag_order + self.trendorder = util.get_trendorder(trend) + + self._set_window(window_type, window, min_periods) + + def _set_window(self, window_type, window, min_periods): + self._window_type = _get_window_type(window_type) + + if self._is_rolling: + if window is None: + raise Exception('Must pass window when doing rolling ' + 'regression') + + if min_periods is None: + min_periods = window + else: + window = len(self.x) + if min_periods is None: + min_periods = 1 + + self._window = int(window) + self._min_periods = min_periods + + @cache_readonly + def T(self): + """ + Number of time periods in results + """ + return len(self.result_index) + + @property + def nobs(self): + # Stub, do I need this? + data = dict((eq, r.nobs) for eq, r in iteritems(self.equations)) + return pd.DataFrame(data) + + @cache_readonly + def equations(self): + eqs = {} + for col, ts in iteritems(self.y): + # TODO: Remove in favor of statsmodels implemetation + model = pd.ols(y=ts, x=self.x, window=self._window, + window_type=self._window_type, + min_periods=self._min_periods) + + eqs[col] = model + + return eqs + + @cache_readonly + def coefs(self): + """ + Return dynamic regression coefficients as Panel + """ + data = {} + for eq, result in iteritems(self.equations): + data[eq] = result.beta + + panel = pd.Panel.fromDict(data) + + # Coefficient names become items + return panel.swapaxes('items', 'minor') + + @property + def result_index(self): + return self.coefs.major_axis + + @cache_readonly + def _coefs_raw(self): + """ + Reshape coefficients to be more amenable to dynamic calculations + + Returns + ------- + coefs : (time_periods x lag_order x neqs x neqs) + """ + coef_panel = self.coefs.copy() + del coef_panel['intercept'] + + coef_values = coef_panel.swapaxes('items', 'major').values + coef_values = coef_values.reshape((len(coef_values), + self.lag_order, + self.neqs, self.neqs)) + + return coef_values + + @cache_readonly + def _intercepts_raw(self): + """ + Similar to _coefs_raw, return intercept values in easy-to-use matrix + form + + Returns + ------- + intercepts : (T x K) + """ + return self.coefs['intercept'].values + + @cache_readonly + def resid(self): + data = {} + for eq, result in iteritems(self.equations): + data[eq] = result.resid + + return pd.DataFrame(data) + + def forecast(self, steps=1): + """ + Produce dynamic forecast + + Parameters + ---------- + steps + + Returns + ------- + forecasts : pandas.DataFrame + """ + output = np.empty((self.T - steps, self.neqs)) + + y_values = self.y.values + y_index_map = dict((d, idx) for idx, d in enumerate(self.y.index)) + result_index_map = dict((d, idx) for idx, d in enumerate(self.result_index)) + + coefs = self._coefs_raw + intercepts = self._intercepts_raw + + # can only produce this many forecasts + forc_index = self.result_index[steps:] + for i, date in enumerate(forc_index): + # TODO: check that this does the right thing in weird cases... + idx = y_index_map[date] - steps + result_idx = result_index_map[date] - steps + + y_slice = y_values[:idx] + + forcs = _model.forecast(y_slice, coefs[result_idx], + intercepts[result_idx], steps) + + output[i] = forcs[-1] + + return pd.DataFrame(output, index=forc_index, columns=self.names) + + def plot_forecast(self, steps=1, figsize=(10, 10)): + """ + Plot h-step ahead forecasts against actual realizations of time + series. Note that forecasts are lined up with their respective + realizations. + + Parameters + ---------- + steps : + """ + import matplotlib.pyplot as plt + + fig, axes = plt.subplots(figsize=figsize, nrows=self.neqs, + sharex=True) + + forc = self.forecast(steps=steps) + dates = forc.index + + y_overlay = self.y.reindex(dates) + + for i, col in enumerate(forc.columns): + ax = axes[i] + + y_ts = y_overlay[col] + forc_ts = forc[col] + + y_handle = ax.plot(dates, y_ts.values, 'k.', ms=2) + forc_handle = ax.plot(dates, forc_ts.values, 'k-') + + lines = (y_handle[0], forc_handle[0]) + labels = ('Y', 'Forecast') + fig.legend(lines,labels) + fig.autofmt_xdate() + + fig.suptitle('Dynamic %d-step forecast' % steps) + + # pretty things up a bit + plotting.adjust_subplots(bottom=0.15, left=0.10) + plt.draw_if_interactive() + + @property + def _is_rolling(self): + return self._window_type == ROLLING + + @cache_readonly + def r2(self): + """Returns the r-squared values.""" + data = dict((eq, r.r2) for eq, r in iteritems(self.equations)) + return pd.DataFrame(data) + +class DynamicPanelVAR(DynamicVAR): + """ + Dynamic (time-varying) panel vector autoregression using panel ordinary + least squares + + Parameters + ---------- + """ + def __init__(self, data, lag_order=1, window=None, window_type='expanding', + trend='c', min_periods=None): + self.lag_order = lag_order + self.neqs = len(data.columns) + + self._y_orig = data + + # TODO: deal with trend + self._x_orig = _make_lag_matrix(data, lag_order) + self._x_orig['intercept'] = 1 + + (self.y, self.x, self.x_filtered, self._index, + self._time_has_obs) = _filter_data(self._y_orig, self._x_orig) + + self.lag_order = lag_order + self.trendorder = util.get_trendorder(trend) + + self._set_window(window_type, window, min_periods) + + +def _filter_data(lhs, rhs): + """ + Data filtering routine for dynamic VAR + + lhs : DataFrame + original data + rhs : DataFrame + lagged variables + + Returns + ------- + + """ + def _has_all_columns(df): + return np.isfinite(df.values).sum(1) == len(df.columns) + + rhs_valid = _has_all_columns(rhs) + if not rhs_valid.all(): + pre_filtered_rhs = rhs[rhs_valid] + else: + pre_filtered_rhs = rhs + + index = lhs.index.union(rhs.index) + if not index.equals(rhs.index) or not index.equals(lhs.index): + rhs = rhs.reindex(index) + lhs = lhs.reindex(index) + + rhs_valid = _has_all_columns(rhs) + + lhs_valid = _has_all_columns(lhs) + valid = rhs_valid & lhs_valid + + if not valid.all(): + filt_index = rhs.index[valid] + filtered_rhs = rhs.reindex(filt_index) + filtered_lhs = lhs.reindex(filt_index) + else: + filtered_rhs, filtered_lhs = rhs, lhs + + return filtered_lhs, filtered_rhs, pre_filtered_rhs, index, valid + +def _make_lag_matrix(x, lags): + data = {} + columns = [] + for i in range(1, 1 + lags): + lagstr = 'L%d.'% i + lag = x.shift(i).rename(columns=lambda c: lagstr + c) + data.update(lag._series) + columns.extend(lag.columns) + + return pd.DataFrame(data, columns=columns) + +class Equation(object): + """ + Stub, estimate one equation + """ + + def __init__(self, y, x): + pass + +if __name__ == '__main__': + import pandas.util.testing as ptest + + ptest.N = 500 + data = ptest.makeTimeDataFrame().cumsum(0) + + var = DynamicVAR(data, lag_order=2, window_type='expanding') + var2 = DynamicVAR(data, lag_order=2, window=10, + window_type='rolling') + + diff --git a/statsmodels/tsa/vector_ar/irf.py b/statsmodels/tsa/vector_ar/irf.py new file mode 100644 index 0000000..cbd8250 --- /dev/null +++ b/statsmodels/tsa/vector_ar/irf.py @@ -0,0 +1,693 @@ +""" +Impulse reponse-related code +""" + +from __future__ import division + +import numpy as np +import numpy.linalg as la +import scipy.linalg as L + +from scipy import stats + +from statsmodels.tools.decorators import cache_readonly +from statsmodels.tools.tools import chain_dot +#from statsmodels.tsa.api import VAR +from statsmodels.compat.python import range +import statsmodels.tsa.tsatools as tsa +import statsmodels.tsa.vector_ar.plotting as plotting +import statsmodels.tsa.vector_ar.util as util + +mat = np.array + +class BaseIRAnalysis(object): + """ + Base class for plotting and computing IRF-related statistics, want to be + able to handle known and estimated processes + """ + + def __init__(self, model, P=None, periods=10, order=None, svar=False): + self.model = model + self.periods = periods + self.neqs, self.lags, self.T = model.neqs, model.k_ar, model.nobs + + self.order = order + + if P is None: + sigma = model.sigma_u + + # TODO, may be difficult at the moment + # if order is not None: + # indexer = [model.get_eq_index(name) for name in order] + # sigma = sigma[:, indexer][indexer, :] + + # if sigma.shape != model.sigma_u.shape: + # raise ValueError('variable order is wrong length') + + P = la.cholesky(sigma) + + self.P = P + + self.svar = svar + + self.irfs = model.ma_rep(periods) + if svar: + self.svar_irfs = model.svar_ma_rep(periods, P=P) + else: + self.orth_irfs = model.orth_ma_rep(periods, P=P) + + self.cum_effects = self.irfs.cumsum(axis=0) + if svar: + self.svar_cum_effects = self.svar_irfs.cumsum(axis=0) + else: + self.orth_cum_effects = self.orth_irfs.cumsum(axis=0) + + self.lr_effects = model.long_run_effects() + if svar: + self.svar_lr_effects = np.dot(model.long_run_effects(), P) + else: + self.orth_lr_effects = np.dot(model.long_run_effects(), P) + + + # auxiliary stuff + self._A = util.comp_matrix(model.coefs) + + def cov(self, *args, **kwargs): + raise NotImplementedError + + def cum_effect_cov(self, *args, **kwargs): + raise NotImplementedError + + def plot(self, orth=False, impulse=None, response=None, + signif=0.05, plot_params=None, subplot_params=None, + plot_stderr=True, stderr_type='asym', repl=1000, + seed=None, component=None): + """ + Plot impulse responses + + Parameters + ---------- + orth : bool, default False + Compute orthogonalized impulse responses + impulse : string or int + variable providing the impulse + response : string or int + variable affected by the impulse + signif : float (0 < signif < 1) + Significance level for error bars, defaults to 95% CI + subplot_params : dict + To pass to subplot plotting funcions. Example: if fonts are too big, + pass {'fontsize' : 8} or some number to your taste. + plot_params : dict + + plot_stderr: bool, default True + Plot standard impulse response error bands + stderr_type: string + 'asym': default, computes asymptotic standard errors + 'mc': monte carlo standard errors (use rpl) + repl: int, default 1000 + Number of replications for Monte Carlo and Sims-Zha standard errors + seed: int + np.random.seed for Monte Carlo replications + component: array or vector of principal component indices + """ + periods = self.periods + model = self.model + svar = self.svar + + if orth and svar: + raise ValueError("For SVAR system, set orth=False") + + if orth: + title = 'Impulse responses (orthogonalized)' + irfs = self.orth_irfs + elif svar: + title = 'Impulse responses (structural)' + irfs = self.svar_irfs + else: + title = 'Impulse responses' + irfs = self.irfs + + if plot_stderr == False: + stderr = None + + elif stderr_type not in ['asym', 'mc', 'sz1', 'sz2','sz3']: + raise ValueError("Error type must be either 'asym', 'mc','sz1','sz2', or 'sz3'") + else: + if stderr_type == 'asym': + stderr = self.cov(orth=orth) + if stderr_type == 'mc': + stderr = self.errband_mc(orth=orth, svar=svar, + repl=repl, signif=signif, + seed=seed) + if stderr_type == 'sz1': + stderr = self.err_band_sz1(orth=orth, svar=svar, + repl=repl, signif=signif, + seed=seed, + component=component) + if stderr_type == 'sz2': + stderr = self.err_band_sz2(orth=orth, svar=svar, + repl=repl, signif=signif, + seed=seed, + component=component) + if stderr_type == 'sz3': + stderr = self.err_band_sz3(orth=orth, svar=svar, + repl=repl, signif=signif, + seed=seed, + component=component) + + plotting.irf_grid_plot(irfs, stderr, impulse, response, + self.model.names, title, signif=signif, + subplot_params=subplot_params, + plot_params=plot_params, stderr_type=stderr_type) + + def plot_cum_effects(self, orth=False, impulse=None, response=None, + signif=0.05, plot_params=None, + subplot_params=None, plot_stderr=True, + stderr_type='asym', repl=1000, seed=None): + """ + Plot cumulative impulse response functions + + Parameters + ---------- + orth : bool, default False + Compute orthogonalized impulse responses + impulse : string or int + variable providing the impulse + response : string or int + variable affected by the impulse + signif : float (0 < signif < 1) + Significance level for error bars, defaults to 95% CI + subplot_params : dict + To pass to subplot plotting funcions. Example: if fonts are too big, + pass {'fontsize' : 8} or some number to your taste. + plot_params : dict + + plot_stderr: bool, default True + Plot standard impulse response error bands + stderr_type: string + 'asym': default, computes asymptotic standard errors + 'mc': monte carlo standard errors (use rpl) + repl: int, default 1000 + Number of replications for monte carlo standard errors + seed: int + np.random.seed for Monte Carlo replications + + """ + + if orth: + title = 'Cumulative responses responses (orthogonalized)' + cum_effects = self.orth_cum_effects + lr_effects = self.orth_lr_effects + else: + title = 'Cumulative responses' + cum_effects = self.cum_effects + lr_effects = self.lr_effects + + if stderr_type not in ['asym', 'mc']: + raise TypeError + else: + if stderr_type == 'asym': + stderr = self.cum_effect_cov(orth=orth) + if stderr_type == 'mc': + stderr = self.cum_errband_mc(orth=orth, repl=repl, + signif=signif, seed=seed) + if not plot_stderr: + stderr = None + + plotting.irf_grid_plot(cum_effects, stderr, impulse, response, + self.model.names, title, signif=signif, + hlines=lr_effects, subplot_params=subplot_params, + plot_params=plot_params, stderr_type=stderr_type) + +class IRAnalysis(BaseIRAnalysis): + """ + Impulse response analysis class. Computes impulse responses, asymptotic + standard errors, and produces relevant plots + + Parameters + ---------- + model : VAR instance + + Notes + ----- + Using Lutkepohl (2005) notation + """ + def __init__(self, model, P=None, periods=10, order=None, svar=False): + BaseIRAnalysis.__init__(self, model, P=P, periods=periods, + order=order, svar=svar) + + self.cov_a = model._cov_alpha + self.cov_sig = model._cov_sigma + + # memoize dict for G matrix function + self._g_memo = {} + + def cov(self, orth=False): + """ + Compute asymptotic standard errors for impulse response coefficients + + Notes + ----- + Lutkepohl eq 3.7.5 + + Returns + ------- + """ + if orth: + return self._orth_cov() + + covs = self._empty_covm(self.periods + 1) + covs[0] = np.zeros((self.neqs ** 2, self.neqs ** 2)) + for i in range(1, self.periods + 1): + Gi = self.G[i - 1] + covs[i] = chain_dot(Gi, self.cov_a, Gi.T) + + return covs + + def errband_mc(self, orth=False, svar=False, repl=1000, + signif=0.05, seed=None, burn=100): + """ + IRF Monte Carlo integrated error bands + """ + model = self.model + periods = self.periods + if svar == True: + return model.sirf_errband_mc(orth=orth, repl=repl, T=periods, + signif=signif, seed=seed, + burn=burn, cum=False) + else: + return model.irf_errband_mc(orth=orth, repl=repl, T=periods, + signif=signif, seed=seed, + burn=burn, cum=False) + def err_band_sz1(self, orth=False, svar=False, repl=1000, + signif=0.05, seed=None, burn=100, component=None): + """ + IRF Sims-Zha error band method 1. Assumes symmetric error bands around + mean. + + Parameters + ---------- + orth : bool, default False + Compute orthogonalized impulse responses + repl : int, default 1000 + Number of MC replications + signif : float (0 < signif < 1) + Significance level for error bars, defaults to 95% CI + seed : int, default None + np.random seed + burn : int, default 100 + Number of initial simulated obs to discard + component : neqs x neqs array, default to largest for each + Index of column of eigenvector/value to use for each error band + Note: period of impulse (t=0) is not included when computing + principle component + + References + ---------- + Sims, Christopher A., and Tao Zha. 1999. "Error Bands for Impulse + Response". Econometrica 67: 1113-1155. + """ + + model = self.model + periods = self.periods + if orth: + irfs = self.orth_irfs + elif svar: + irfs = self.svar_irfs + else: + irfs = self.irfs + neqs = self.neqs + irf_resim = model.irf_resim(orth=orth, repl=repl, T=periods, seed=seed, + burn=100) + q = util.norm_signif_level(signif) + + W, eigva, k =self._eigval_decomp_SZ(irf_resim) + + if component != None: + if np.shape(component) != (neqs,neqs): + raise ValueError("Component array must be " + str(neqs) + " x " + str(neqs)) + if np.argmax(component) >= neqs*periods: + raise ValueError("Atleast one of the components does not exist") + else: + k = component + + # here take the kth column of W, which we determine by finding the largest eigenvalue of the covaraince matrix + lower = np.copy(irfs) + upper = np.copy(irfs) + for i in range(neqs): + for j in range(neqs): + lower[1:,i,j] = irfs[1:,i,j] + W[i,j,:,k[i,j]]*q*np.sqrt(eigva[i,j,k[i,j]]) + upper[1:,i,j] = irfs[1:,i,j] - W[i,j,:,k[i,j]]*q*np.sqrt(eigva[i,j,k[i,j]]) + + + return lower, upper + + def err_band_sz2(self, orth=False, repl=1000, signif=0.05, + seed=None, burn=100, component=None): + """ + IRF Sims-Zha error band method 2. + + This method Does not assume symmetric error bands around mean. + + Parameters + ---------- + orth : bool, default False + Compute orthogonalized impulse responses + repl : int, default 1000 + Number of MC replications + signif : float (0 < signif < 1) + Significance level for error bars, defaults to 95% CI + seed : int, default None + np.random seed + burn : int, default 100 + Number of initial simulated obs to discard + component : neqs x neqs array, default to largest for each + Index of column of eigenvector/value to use for each error band + Note: period of impulse (t=0) is not included when computing + principle component + + References + ---------- + Sims, Christopher A., and Tao Zha. 1999. "Error Bands for Impulse + Response". Econometrica 67: 1113-1155. + """ + model = self.model + periods = self.periods + if orth: + irfs = self.orth_irfs + elif svar: + irfs = self.svar_irfs + else: + irfs = self.irfs + neqs = self.neqs + irf_resim = model.irf_resim(orth=orth, repl=repl, T=periods, seed=seed, + burn=100) + + W, eigva, k = self._eigval_decomp_SZ(irf_resim) + + if component != None: + if np.shape(component) != (neqs,neqs): + raise ValueError("Component array must be " + str(neqs) + " x " + str(neqs)) + if np.argmax(component) >= neqs*periods: + raise ValueError("Atleast one of the components does not exist") + else: + k = component + + gamma = np.zeros((repl, periods+1, neqs, neqs)) + for p in range(repl): + for i in range(neqs): + for j in range(neqs): + gamma[p,1:,i,j] = W[i,j,k[i,j],:] * irf_resim[p,1:,i,j] + + gamma_sort = np.sort(gamma, axis=0) #sort to get quantiles + indx = round(signif/2*repl)-1,round((1-signif/2)*repl)-1 + + lower = np.copy(irfs) + upper = np.copy(irfs) + for i in range(neqs): + for j in range(neqs): + lower[:,i,j] = irfs[:,i,j] + gamma_sort[indx[0],:,i,j] + upper[:,i,j] = irfs[:,i,j] + gamma_sort[indx[1],:,i,j] + + return lower, upper + + def err_band_sz3(self, orth=False, repl=1000, signif=0.05, + seed=None, burn=100, component=None): + """ + IRF Sims-Zha error band method 3. Does not assume symmetric error bands around mean. + + Parameters + ---------- + orth : bool, default False + Compute orthogonalized impulse responses + repl : int, default 1000 + Number of MC replications + signif : float (0 < signif < 1) + Significance level for error bars, defaults to 95% CI + seed : int, default None + np.random seed + burn : int, default 100 + Number of initial simulated obs to discard + component : vector length neqs, default to largest for each + Index of column of eigenvector/value to use for each error band + Note: period of impulse (t=0) is not included when computing + principle component + + References + ---------- + Sims, Christopher A., and Tao Zha. 1999. "Error Bands for Impulse + Response". Econometrica 67: 1113-1155. + """ + + model = self.model + periods = self.periods + if orth: + irfs = self.orth_irfs + elif svar: + irfs = self.svar_irfs + else: + irfs = self.irfs + neqs = self.neqs + irf_resim = model.irf_resim(orth=orth, repl=repl, T=periods, seed=seed, + burn=100) + stack = np.zeros((neqs, repl, periods*neqs)) + + #stack left to right, up and down + + for p in range(repl): + for i in range(neqs): + stack[i, p,:] = np.ravel(irf_resim[p,1:,:,i].T) + + stack_cov=np.zeros((neqs, periods*neqs, periods*neqs)) + W = np.zeros((neqs, periods*neqs, periods*neqs)) + eigva = np.zeros((neqs, periods*neqs)) + k = np.zeros((neqs)) + + if component != None: + if np.size(component) != (neqs): + raise ValueError("Component array must be of length " + str(neqs)) + if np.argmax(component) >= neqs*periods: + raise ValueError("Atleast one of the components does not exist") + else: + k = component + + #compute for eigen decomp for each stack + for i in range(neqs): + stack_cov[i] = np.cov(stack[i],rowvar=0) + W[i], eigva[i], k[i] = util.eigval_decomp(stack_cov[i]) + + gamma = np.zeros((repl, periods+1, neqs, neqs)) + for p in range(repl): + c=0 + for j in range(neqs): + for i in range(neqs): + gamma[p,1:,i,j] = W[j,k[j],i*periods:(i+1)*periods] * irf_resim[p,1:,i,j] + if i == neqs-1: + gamma[p,1:,i,j] = W[j,k[j],i*periods:] * irf_resim[p,1:,i,j] + + gamma_sort = np.sort(gamma, axis=0) #sort to get quantiles + indx = round(signif/2*repl)-1,round((1-signif/2)*repl)-1 + + lower = np.copy(irfs) + upper = np.copy(irfs) + for i in range(neqs): + for j in range(neqs): + lower[:,i,j] = irfs[:,i,j] + gamma_sort[indx[0],:,i,j] + upper[:,i,j] = irfs[:,i,j] + gamma_sort[indx[1],:,i,j] + + return lower, upper + + def _eigval_decomp_SZ(self, irf_resim): + """ + Returns + ------- + W: array of eigenvectors + eigva: list of eigenvalues + k: matrix indicating column # of largest eigenvalue for each c_i,j + + """ + neqs = self.neqs + periods = self.periods + + cov_hold = np.zeros((neqs, neqs, periods, periods)) + for i in range(neqs): + for j in range(neqs): + cov_hold[i,j,:,:] = np.cov(irf_resim[:,1:,i,j],rowvar=0) + + W = np.zeros((neqs, neqs, periods, periods)) + eigva = np.zeros((neqs, neqs, periods, 1)) + k = np.zeros((neqs, neqs)) + + for i in range(neqs): + for j in range(neqs): + W[i,j,:,:], eigva[i,j,:,0], k[i,j] = util.eigval_decomp(cov_hold[i,j,:,:]) + return W, eigva, k + + @cache_readonly + def G(self): + # Gi matrices as defined on p. 111 + + K = self.neqs + + # nlags = self.model.p + # J = np.hstack((np.eye(K),) + (np.zeros((K, K)),) * (nlags - 1)) + + def _make_g(i): + # p. 111 Lutkepohl + G = 0. + for m in range(i): + # be a bit cute to go faster + idx = i - 1 - m + if idx in self._g_memo: + apow = self._g_memo[idx] + else: + apow = la.matrix_power(self._A.T, idx) + # apow = np.dot(J, apow) + apow = apow[:K] + self._g_memo[idx] = apow + + # take first K rows + piece = np.kron(apow, self.irfs[m]) + G = G + piece + + return G + + return [_make_g(i) for i in range(1, self.periods + 1)] + + def _orth_cov(self): + # Lutkepohl 3.7.8 + + Ik = np.eye(self.neqs) + PIk = np.kron(self.P.T, Ik) + H = self.H + + covs = self._empty_covm(self.periods + 1) + for i in range(self.periods + 1): + if i == 0: + apiece = 0 + else: + Ci = np.dot(PIk, self.G[i-1]) + apiece = chain_dot(Ci, self.cov_a, Ci.T) + + Cibar = np.dot(np.kron(Ik, self.irfs[i]), H) + bpiece = chain_dot(Cibar, self.cov_sig, Cibar.T) / self.T + + # Lutkepohl typo, cov_sig correct + covs[i] = apiece + bpiece + + return covs + + def cum_effect_cov(self, orth=False): + """ + Compute asymptotic standard errors for cumulative impulse response + coefficients + + Parameters + ---------- + orth : boolean + + Notes + ----- + eq. 3.7.7 (non-orth), 3.7.10 (orth) + + Returns + ------- + + """ + Ik = np.eye(self.neqs) + PIk = np.kron(self.P.T, Ik) + + F = 0. + covs = self._empty_covm(self.periods + 1) + for i in range(self.periods + 1): + if i > 0: + F = F + self.G[i - 1] + + if orth: + if i == 0: + apiece = 0 + else: + Bn = np.dot(PIk, F) + apiece = chain_dot(Bn, self.cov_a, Bn.T) + + Bnbar = np.dot(np.kron(Ik, self.cum_effects[i]), self.H) + bpiece = chain_dot(Bnbar, self.cov_sig, Bnbar.T) / self.T + + covs[i] = apiece + bpiece + else: + if i == 0: + covs[i] = np.zeros((self.neqs**2, self.neqs**2)) + continue + + covs[i] = chain_dot(F, self.cov_a, F.T) + + return covs + + def cum_errband_mc(self, orth=False, repl=1000, + signif=0.05, seed=None, burn=100): + """ + IRF Monte Carlo integrated error bands of cumulative effect + """ + model = self.model + periods = self.periods + return model.irf_errband_mc(orth=orth, repl=repl, + T=periods, signif=signif, seed=seed, burn=burn, cum=True) + + def lr_effect_cov(self, orth=False): + """ + Returns + ------- + + """ + lre = self.lr_effects + Finfty = np.kron(np.tile(lre.T, self.lags), lre) + Ik = np.eye(self.neqs) + + if orth: + Binf = np.dot(np.kron(self.P.T, np.eye(self.neqs)), Finfty) + Binfbar = np.dot(np.kron(Ik, lre), self.H) + + return (chain_dot(Binf, self.cov_a, Binf.T) + + chain_dot(Binfbar, self.cov_sig, Binfbar.T)) + else: + return chain_dot(Finfty, self.cov_a, Finfty.T) + + def stderr(self, orth=False): + return np.array([tsa.unvec(np.sqrt(np.diag(c))) + for c in self.cov(orth=orth)]) + + def cum_effect_stderr(self, orth=False): + return np.array([tsa.unvec(np.sqrt(np.diag(c))) + for c in self.cum_effect_cov(orth=orth)]) + + def lr_effect_stderr(self, orth=False): + cov = self.lr_effect_cov(orth=orth) + return tsa.unvec(np.sqrt(np.diag(cov))) + + def _empty_covm(self, periods): + return np.zeros((periods, self.neqs ** 2, self.neqs ** 2), + dtype=float) + + @cache_readonly + def H(self): + k = self.neqs + Lk = tsa.elimination_matrix(k) + Kkk = tsa.commutation_matrix(k, k) + Ik = np.eye(k) + + # B = chain_dot(Lk, np.eye(k**2) + commutation_matrix(k, k), + # np.kron(self.P, np.eye(k)), Lk.T) + + # return np.dot(Lk.T, L.inv(B)) + + B = chain_dot(Lk, + np.dot(np.kron(Ik, self.P), Kkk) + np.kron(self.P, Ik), + Lk.T) + + return np.dot(Lk.T, L.inv(B)) + + def fevd_table(self): + pass + + diff --git a/statsmodels/tsa/vector_ar/output.py b/statsmodels/tsa/vector_ar/output.py new file mode 100644 index 0000000..083bfcf --- /dev/null +++ b/statsmodels/tsa/vector_ar/output.py @@ -0,0 +1,278 @@ +from __future__ import print_function +from statsmodels.compat.python import cStringIO, lzip, lrange, StringIO, range +import numpy as np + +from statsmodels.iolib import SimpleTable +import statsmodels.tsa.vector_ar.util as util + +mat = np.array + +_default_table_fmt = dict( + empty_cell = '', + colsep=' ', + row_pre = '', + row_post = '', + table_dec_above='=', + table_dec_below='=', + header_dec_below='-', + header_fmt = '%s', + stub_fmt = '%s', + title_align='c', + header_align = 'r', + data_aligns = 'r', + stubs_align = 'l', + fmt = 'txt' +) + +class VARSummary(object): + default_fmt = dict( + #data_fmts = ["%#12.6g","%#12.6g","%#10.4g","%#5.4g"], + #data_fmts = ["%#10.4g","%#10.4g","%#10.4g","%#6.4g"], + data_fmts = ["%#15.6F","%#15.6F","%#15.3F","%#14.3F"], + empty_cell = '', + #colwidths = 10, + colsep=' ', + row_pre = '', + row_post = '', + table_dec_above='=', + table_dec_below='=', + header_dec_below='-', + header_fmt = '%s', + stub_fmt = '%s', + title_align='c', + header_align = 'r', + data_aligns = 'r', + stubs_align = 'l', + fmt = 'txt' + ) + + part1_fmt = dict(default_fmt, + data_fmts = ["%s"], + colwidths = 15, + colsep=' ', + table_dec_below='', + header_dec_below=None, + ) + part2_fmt = dict(default_fmt, + data_fmts = ["%#12.6g","%#12.6g","%#10.4g","%#5.4g"], + colwidths = None, + colsep=' ', + table_dec_above='-', + table_dec_below='-', + header_dec_below=None, + ) + + def __init__(self, estimator): + self.model = estimator + self.summary = self.make() + + def __repr__(self): + return self.summary + + def make(self, endog_names=None, exog_names=None): + """ + Summary of VAR model + """ + buf = StringIO() + + buf.write(self._header_table() + '\n') + buf.write(self._stats_table() + '\n') + buf.write(self._coef_table() + '\n') + buf.write(self._resid_info() + '\n') + + return buf.getvalue() + + def _header_table(self): + import time + + model = self.model + + t = time.localtime() + + # TODO: change when we allow coef restrictions + # ncoefs = len(model.beta) + + # Header information + part1title = "Summary of Regression Results" + part1data = [[model._model_type], + ["OLS"], #TODO: change when fit methods change + [time.strftime("%a, %d, %b, %Y", t)], + [time.strftime("%H:%M:%S", t)]] + part1header = None + part1stubs = ('Model:', + 'Method:', + 'Date:', + 'Time:') + part1 = SimpleTable(part1data, part1header, part1stubs, + title=part1title, txt_fmt=self.part1_fmt) + + return str(part1) + + def _stats_table(self): + # TODO: do we want individual statistics or should users just + # use results if wanted? + # Handle overall fit statistics + + model = self.model + + + part2Lstubs = ('No. of Equations:', + 'Nobs:', + 'Log likelihood:', + 'AIC:') + part2Rstubs = ('BIC:', + 'HQIC:', + 'FPE:', + 'Det(Omega_mle):') + part2Ldata = [[model.neqs], [model.nobs], [model.llf], [model.aic]] + part2Rdata = [[model.bic], [model.hqic], [model.fpe], [model.detomega]] + part2Lheader = None + part2L = SimpleTable(part2Ldata, part2Lheader, part2Lstubs, + txt_fmt = self.part2_fmt) + part2R = SimpleTable(part2Rdata, part2Lheader, part2Rstubs, + txt_fmt = self.part2_fmt) + part2L.extend_right(part2R) + + return str(part2L) + + def _coef_table(self): + model = self.model + k = model.neqs + + Xnames = self.model.exog_names + + data = lzip(model.params.T.ravel(), + model.stderr.T.ravel(), + model.tvalues.T.ravel(), + model.pvalues.T.ravel()) + + header = ('coefficient','std. error','t-stat','prob') + + buf = StringIO() + dim = k * model.k_ar + model.k_trend + for i in range(k): + section = "Results for equation %s" % model.names[i] + buf.write(section + '\n') + #print >> buf, section + + table = SimpleTable(data[dim * i : dim * (i + 1)], header, + Xnames, title=None, txt_fmt = self.default_fmt) + buf.write(str(table) + '\n') + + if i < k - 1: + buf.write('\n') + + return buf.getvalue() + + def _resid_info(self): + buf = StringIO() + names = self.model.names + + buf.write("Correlation matrix of residuals" + '\n') + buf.write(pprint_matrix(self.model.resid_corr, names, names) + '\n') + + return buf.getvalue() + +def causality_summary(results, variables, equation, kind): + title = "Granger causality %s-test" % kind + null_hyp = 'H_0: %s do not Granger-cause %s' % (variables, equation) + return hypothesis_test_table(results, title, null_hyp) + +def normality_summary(results): + title = "Normality skew/kurtosis Chi^2-test" + null_hyp = 'H_0: data generated by normally-distributed process' + return hypothesis_test_table(results, title, null_hyp) + +def hypothesis_test_table(results, title, null_hyp): + fmt = dict(_default_table_fmt, + data_fmts=["%#15.6F","%#15.6F","%#15.3F", "%s"]) + + buf = StringIO() + table = SimpleTable([[results['statistic'], + results['crit_value'], + results['pvalue'], + str(results['df'])]], + ['Test statistic', 'Critical Value', 'p-value', + 'df'], [''], title=None, txt_fmt=fmt) + + buf.write(title + '\n') + buf.write(str(table) + '\n') + + buf.write(null_hyp + '\n') + + buf.write("Conclusion: %s H_0" % results['conclusion']) + buf.write(" at %.2f%% significance level" % (results['signif'] * 100)) + + return buf.getvalue() + + +def print_ic_table(ics, selected_orders): + """ + For VAR order selection + + """ + # Can factor this out into a utility method if so desired + + cols = sorted(ics) + + data = mat([["%#10.4g" % v for v in ics[c]] for c in cols], + dtype=object).T + + # start minimums + for i, col in enumerate(cols): + idx = int(selected_orders[col]), i + data[idx] = data[idx] + '*' + # data[idx] = data[idx][:-1] + '*' # super hack, ugh + + fmt = dict(_default_table_fmt, + data_fmts=("%s",) * len(cols)) + + buf = StringIO() + table = SimpleTable(data, cols, lrange(len(data)), + title='VAR Order Selection', txt_fmt=fmt) + buf.write(str(table) + '\n') + buf.write('* Minimum' + '\n') + + print(buf.getvalue()) + + +def pprint_matrix(values, rlabels, clabels, col_space=None): + buf = StringIO() + + T, K = len(rlabels), len(clabels) + + if col_space is None: + min_space = 10 + col_space = [max(len(str(c)) + 2, min_space) for c in clabels] + else: + col_space = (col_space,) * K + + row_space = max([len(str(x)) for x in rlabels]) + 2 + + head = _pfixed('', row_space) + + for j, h in enumerate(clabels): + head += _pfixed(h, col_space[j]) + + buf.write(head + '\n') + + for i, rlab in enumerate(rlabels): + line = ('%s' % rlab).ljust(row_space) + + for j in range(K): + line += _pfixed(values[i,j], col_space[j]) + + buf.write(line + '\n') + + return buf.getvalue() + +def _pfixed(s, space, nanRep=None, float_format=None): + if isinstance(s, float): + if float_format: + formatted = float_format(s) + else: + formatted = "%#8.6F" % s + + return formatted.rjust(space) + else: + return ('%s' % s)[:space].rjust(space) diff --git a/statsmodels/tsa/vector_ar/plotting.py b/statsmodels/tsa/vector_ar/plotting.py new file mode 100644 index 0000000..71ebe2c --- /dev/null +++ b/statsmodels/tsa/vector_ar/plotting.py @@ -0,0 +1,261 @@ +from statsmodels.compat.python import lrange, range +import numpy as np +import statsmodels.tsa.vector_ar.util as util + +class MPLConfigurator(object): + + def __init__(self): + self._inverse_actions = [] + + def revert(self): + for action in self._inverse_actions: + action() + + def set_fontsize(self, size): + import matplotlib as mpl + old_size = mpl.rcParams['font.size'] + mpl.rcParams['font.size'] = size + + def revert(): + mpl.rcParams['font.size'] = old_size + + self._inverse_actions.append(revert) + +#------------------------------------------------------------------------------- +# Plotting functions + +def plot_mts(Y, names=None, index=None): + """ + Plot multiple time series + """ + import matplotlib.pyplot as plt + + k = Y.shape[1] + rows, cols = k, 1 + + plt.figure(figsize=(10, 10)) + + for j in range(k): + ts = Y[:, j] + + ax = plt.subplot(rows, cols, j+1) + if index is not None: + ax.plot(index, ts) + else: + ax.plot(ts) + + if names is not None: + ax.set_title(names[j]) + +def plot_var_forc(prior, forc, err_upper, err_lower, + index=None, names=None, plot_stderr=True): + import matplotlib.pyplot as plt + + n, k = prior.shape + rows, cols = k, 1 + + fig = plt.figure(figsize=(10, 10)) + + prange = np.arange(n) + rng_f = np.arange(n - 1, n + len(forc)) + rng_err = np.arange(n, n + len(forc)) + + for j in range(k): + ax = plt.subplot(rows, cols, j+1) + + p1 = ax.plot(prange, prior[:, j], 'k', label='Observed') + p2 = ax.plot(rng_f, np.r_[prior[-1:, j], forc[:, j]], 'k--', + label='Forecast') + + if plot_stderr: + p3 = ax.plot(rng_err, err_upper[:, j], 'k-.', + label='Forc 2 STD err') + ax.plot(rng_err, err_lower[:, j], 'k-.') + + if names is not None: + ax.set_title(names[j]) + + ax.legend(loc='upper right') + +def plot_with_error(y, error, x=None, axes=None, value_fmt='k', + error_fmt='k--', alpha=0.05, stderr_type = 'asym'): + """ + Make plot with optional error bars + + Parameters + ---------- + y : + error : array or None + + """ + import matplotlib.pyplot as plt + + if axes is None: + axes = plt.gca() + + x = x if x is not None else lrange(len(y)) + plot_action = lambda y, fmt: axes.plot(x, y, fmt) + plot_action(y, value_fmt) + + #changed this + if error is not None: + if stderr_type == 'asym': + q = util.norm_signif_level(alpha) + plot_action(y - q * error, error_fmt) + plot_action(y + q * error, error_fmt) + if stderr_type in ('mc','sz1','sz2','sz3'): + plot_action(error[0], error_fmt) + plot_action(error[1], error_fmt) + +def plot_full_acorr(acorr, fontsize=8, linewidth=8, xlabel=None, + err_bound=None): + """ + + Parameters + ---------- + + + + """ + import matplotlib.pyplot as plt + + config = MPLConfigurator() + config.set_fontsize(fontsize) + + k = acorr.shape[1] + fig, axes = plt.subplots(k, k, figsize=(10, 10), squeeze=False) + + for i in range(k): + for j in range(k): + ax = axes[i][j] + acorr_plot(acorr[:, i, j], linewidth=linewidth, + xlabel=xlabel, ax=ax) + + if err_bound is not None: + ax.axhline(err_bound, color='k', linestyle='--') + ax.axhline(-err_bound, color='k', linestyle='--') + + adjust_subplots() + config.revert() + + return fig + +def acorr_plot(acorr, linewidth=8, xlabel=None, ax=None): + import matplotlib.pyplot as plt + + if ax is None: + ax = plt.gca() + + if xlabel is None: + xlabel = np.arange(len(acorr)) + + ax.vlines(xlabel, [0], acorr, lw=linewidth) + + ax.axhline(0, color='k') + ax.set_ylim([-1, 1]) + + # hack? + ax.set_xlim([-1, xlabel[-1] + 1]) + +def plot_acorr_with_error(): + pass + +def adjust_subplots(**kwds): + import matplotlib.pyplot as plt + + passed_kwds = dict(bottom=0.05, top=0.925, + left=0.05, right=0.95, + hspace=0.2) + passed_kwds.update(kwds) + plt.subplots_adjust(**passed_kwds) + +#------------------------------------------------------------------------------- +# Multiple impulse response (cum_effects, etc.) cplots + +def irf_grid_plot(values, stderr, impcol, rescol, names, title, + signif=0.05, hlines=None, subplot_params=None, + plot_params=None, figsize=(10,10), stderr_type='asym'): + """ + Reusable function to make flexible grid plots of impulse responses and + comulative effects + + values : (T + 1) x k x k + stderr : T x k x k + hlines : k x k + """ + import matplotlib.pyplot as plt + + if subplot_params is None: + subplot_params = {} + if plot_params is None: + plot_params = {} + + nrows, ncols, to_plot = _get_irf_plot_config(names, impcol, rescol) + + fig, axes = plt.subplots(nrows=nrows, ncols=ncols, sharex=True, + squeeze=False, figsize=figsize) + + # fill out space + adjust_subplots() + + fig.suptitle(title, fontsize=14) + + subtitle_temp = r'%s$\rightarrow$%s' + + k = len(names) + + rng = lrange(len(values)) + for (j, i, ai, aj) in to_plot: + ax = axes[ai][aj] + + # HACK? + if stderr is not None: + if stderr_type == 'asym': + sig = np.sqrt(stderr[:, j * k + i, j * k + i]) + plot_with_error(values[:, i, j], sig, x=rng, axes=ax, + alpha=signif, value_fmt='b', stderr_type=stderr_type) + if stderr_type in ('mc','sz1','sz2','sz3'): + errs = stderr[0][:, i, j], stderr[1][:, i, j] + plot_with_error(values[:, i, j], errs, x=rng, axes=ax, + alpha=signif, value_fmt='b', stderr_type=stderr_type) + else: + plot_with_error(values[:, i, j], None, x=rng, axes=ax, + value_fmt='b') + + ax.axhline(0, color='k') + + if hlines is not None: + ax.axhline(hlines[i,j], color='k') + + sz = subplot_params.get('fontsize', 12) + ax.set_title(subtitle_temp % (names[j], names[i]), fontsize=sz) + + +def _get_irf_plot_config(names, impcol, rescol): + nrows = ncols = k = len(names) + if impcol is not None and rescol is not None: + # plot one impulse-response pair + nrows = ncols = 1 + j = util.get_index(names, impcol) + i = util.get_index(names, rescol) + to_plot = [(j, i, 0, 0)] + elif impcol is not None: + # plot impacts of impulse in one variable + ncols = 1 + j = util.get_index(names, impcol) + to_plot = [(j, i, i, 0) for i in range(k)] + elif rescol is not None: + # plot only things having impact on particular variable + ncols = 1 + i = util.get_index(names, rescol) + to_plot = [(j, i, j, 0) for j in range(k)] + else: + # plot everything + to_plot = [(j, i, i, j) for i in range(k) for j in range(k)] + + return nrows, ncols, to_plot + +#------------------------------------------------------------------------------- +# Forecast error variance decomposition + + diff --git a/statsmodels/tsa/vector_ar/svar_model.py b/statsmodels/tsa/vector_ar/svar_model.py new file mode 100644 index 0000000..9e3c55e --- /dev/null +++ b/statsmodels/tsa/vector_ar/svar_model.py @@ -0,0 +1,741 @@ +""" +Vector Autoregression (VAR) processes + +References +---------- +Lutkepohl (2005) New Introduction to Multiple Time Series Analysis +""" +from __future__ import print_function, division +from statsmodels.compat.python import range + +import numpy as np +import numpy.linalg as npl +from numpy.linalg import slogdet + +from statsmodels.tools.numdiff import (approx_hess, approx_fprime) +from statsmodels.tools.decorators import cache_readonly +from statsmodels.tsa.vector_ar.irf import IRAnalysis +from statsmodels.tsa.vector_ar.var_model import VARProcess, \ + VARResults + +import statsmodels.tsa.vector_ar.util as util +import statsmodels.tsa.base.tsa_model as tsbase +from statsmodels.compat.numpy import np_matrix_rank + +mat = np.array + +def svar_ckerr(svar_type, A, B): + if A is None and (svar_type == 'A' or svar_type == 'AB'): + raise ValueError('SVAR of type A or AB but A array not given.') + if B is None and (svar_type == 'B' or svar_type == 'AB'): + + raise ValueError('SVAR of type B or AB but B array not given.') + +class SVAR(tsbase.TimeSeriesModel): + """ + Fit VAR and then estimate structural components of A and B, defined: + + .. math:: Ay_t = A_1 y_{t-1} + \ldots + A_p y_{t-p} + B\var(\epsilon_t) + + Parameters + ---------- + endog : array-like + 1-d endogenous response variable. The independent variable. + dates : array-like + must match number of rows of endog + svar_type : str + "A" - estimate structural parameters of A matrix, B assumed = I + "B" - estimate structural parameters of B matrix, A assumed = I + "AB" - estimate structural parameters indicated in both A and B matrix + A : array-like + neqs x neqs with unknown parameters marked with 'E' for estimate + B : array-like + neqs x neqs with unknown parameters marked with 'E' for estimate + + References + ---------- + Hamilton (1994) Time Series Analysis + """ + def __init__(self, endog, svar_type, dates=None, + freq=None, A=None, B=None, missing='none'): + super(SVAR, self).__init__(endog, None, dates, freq, missing=missing) + #(self.endog, self.names, + # self.dates) = data_util.interpret_data(endog, names, dates) + + self.y = self.endog #keep alias for now + self.neqs = self.endog.shape[1] + + types = ['A', 'B', 'AB'] + if svar_type not in types: + raise ValueError('SVAR type not recognized, must be in ' + + str(types)) + self.svar_type = svar_type + + svar_ckerr(svar_type, A, B) + + #initialize A, B as I if not given + #Initialize SVAR masks + if A is None: + A = np.identity(self.neqs) + self.A_mask = A_mask = np.zeros(A.shape, dtype=bool) + else: + A_mask = np.logical_or(A == 'E', A == 'e') + self.A_mask = A_mask + if B is None: + B = np.identity(self.neqs) + self.B_mask = B_mask = np.zeros(B.shape, dtype=bool) + else: + B_mask = np.logical_or(B == 'E', B == 'e') + self.B_mask = B_mask + + # convert A and B to numeric + #TODO: change this when masked support is better or with formula + #integration + Anum = np.zeros(A.shape, dtype=float) + Anum[~A_mask] = A[~A_mask] + Anum[A_mask] = np.nan + self.A = Anum + + Bnum = np.zeros(B.shape, dtype=float) + Bnum[~B_mask] = B[~B_mask] + Bnum[B_mask] = np.nan + self.B = Bnum + + #LikelihoodModel.__init__(self, endog) + + #super(SVAR, self).__init__(endog) + + def fit(self, A_guess=None, B_guess=None, maxlags=None, method='ols', + ic=None, trend='c', verbose=False, s_method='mle', + solver="bfgs", override=False, maxiter=500, maxfun=500): + """ + Fit the SVAR model and solve for structural parameters + + Parameters + ---------- + A_guess : array-like, optional + A vector of starting values for all parameters to be estimated + in A. + B_guess : array-like, optional + A vector of starting values for all parameters to be estimated + in B. + maxlags : int + Maximum number of lags to check for order selection, defaults to + 12 * (nobs/100.)**(1./4), see select_order function + method : {'ols'} + Estimation method to use + ic : {'aic', 'fpe', 'hqic', 'bic', None} + Information criterion to use for VAR order selection. + aic : Akaike + fpe : Final prediction error + hqic : Hannan-Quinn + bic : Bayesian a.k.a. Schwarz + verbose : bool, default False + Print order selection output to the screen + trend, str {"c", "ct", "ctt", "nc"} + "c" - add constant + "ct" - constant and trend + "ctt" - constant, linear and quadratic trend + "nc" - co constant, no trend + Note that these are prepended to the columns of the dataset. + s_method : {'mle'} + Estimation method for structural parameters + solver : {'nm', 'newton', 'bfgs', 'cg', 'ncg', 'powell'} + Solution method + See statsmodels.base for details + override : bool, default False + If True, returns estimates of A and B without checking + order or rank condition + maxiter : int, default 500 + Number of iterations to perform in solution method + maxfun : int + Number of function evaluations to perform + + Notes + ----- + Lutkepohl pp. 146-153 + Hamilton pp. 324-336 + + Returns + ------- + est : SVARResults + """ + lags = maxlags + + if ic is not None: + selections = self.select_order(maxlags=maxlags, verbose=verbose) + if ic not in selections: + raise Exception("%s not recognized, must be among %s" + % (ic, sorted(selections))) + lags = selections[ic] + if verbose: + print('Using %d based on %s criterion' % (lags, ic)) + else: + if lags is None: + lags = 1 + + self.nobs = len(self.endog) - lags + + # initialize starting parameters + start_params = self._get_init_params(A_guess, B_guess) + + return self._estimate_svar(start_params, lags, trend=trend, + solver=solver, override=override, + maxiter=maxiter, maxfun=maxfun) + + + def _get_init_params(self, A_guess, B_guess): + """ + Returns either the given starting or .1 if none are given. + """ + + var_type = self.svar_type.lower() + + n_masked_a = self.A_mask.sum() + if var_type in ['ab', 'a']: + if A_guess is None: + A_guess = np.array([.1]*n_masked_a) + else: + if len(A_guess) != n_masked_a: + msg = 'len(A_guess) = %s, there are %s parameters in A' + raise ValueError(msg % (len(A_guess), n_masked_a)) + else: + A_guess = [] + + n_masked_b = self.B_mask.sum() + if var_type in ['ab', 'b']: + if B_guess is None: + B_guess = np.array([.1]*n_masked_b) + else: + if len(B_guess) != n_masked_b: + msg = 'len(B_guess) = %s, there are %s parameters in B' + raise ValueError(msg % (len(B_guess), n_masked_b)) + else: + B_guess = [] + + return np.r_[A_guess, B_guess] + + def _estimate_svar(self, start_params, lags, maxiter, maxfun, + trend='c', solver="nm", override=False): + """ + lags : int + trend : string or None + As per above + """ + k_trend = util.get_trendorder(trend) + y = self.endog + z = util.get_var_endog(y, lags, trend=trend, has_constant='raise') + y_sample = y[lags:] + + # Lutkepohl p75, about 5x faster than stated formula + var_params = np.linalg.lstsq(z, y_sample)[0] + resid = y_sample - np.dot(z, var_params) + + # Unbiased estimate of covariance matrix $\Sigma_u$ of the white noise + # process $u$ + # equivalent definition + # .. math:: \frac{1}{T - Kp - 1} Y^\prime (I_T - Z (Z^\prime Z)^{-1} + # Z^\prime) Y + # Ref: Lutkepohl p.75 + # df_resid right now is T - Kp - 1, which is a suggested correction + + avobs = len(y_sample) + + df_resid = avobs - (self.neqs * lags + k_trend) + + sse = np.dot(resid.T, resid) + #TODO: should give users the option to use a dof correction or not + omega = sse / df_resid + self.sigma_u = omega + + A, B = self._solve_AB(start_params, override=override, + solver=solver, + maxiter=maxiter, + maxfun=maxfun) + A_mask = self.A_mask + B_mask = self.B_mask + + return SVARResults(y, z, var_params, omega, lags, + names=self.endog_names, trend=trend, + dates=self.data.dates, model=self, + A=A, B=B, A_mask=A_mask, B_mask=B_mask) + + def loglike(self, params): + """ + Loglikelihood for SVAR model + + Notes + ----- + This method assumes that the autoregressive parameters are + first estimated, then likelihood with structural parameters + is estimated + """ + + #TODO: this doesn't look robust if A or B is None + A = self.A + B = self.B + A_mask = self.A_mask + B_mask = self.B_mask + A_len = len(A[A_mask]) + B_len = len(B[B_mask]) + + if A is not None: + A[A_mask] = params[:A_len] + if B is not None: + B[B_mask] = params[A_len:A_len+B_len] + + nobs = self.nobs + neqs = self.neqs + sigma_u = self.sigma_u + + W = np.dot(npl.inv(B),A) + trc_in = np.dot(np.dot(W.T,W),sigma_u) + sign, b_logdet = slogdet(B**2) #numpy 1.4 compat + b_slogdet = sign * b_logdet + + likl = -nobs/2. * (neqs * np.log(2 * np.pi) - \ + np.log(npl.det(A)**2) + b_slogdet + \ + np.trace(trc_in)) + + + return likl + + def score(self, AB_mask): + """ + Return the gradient of the loglike at AB_mask. + + Parameters + ---------- + AB_mask : unknown values of A and B matrix concatenated + + Notes + ----- + Return numerical gradient + """ + loglike = self.loglike + return approx_fprime(AB_mask, loglike, epsilon=1e-8) + + + def hessian(self, AB_mask): + """ + Returns numerical hessian. + """ + loglike = self.loglike + return approx_hess(AB_mask, loglike) + + def _solve_AB(self, start_params, maxiter, maxfun, override=False, + solver='bfgs'): + """ + Solves for MLE estimate of structural parameters + + Parameters + ---------- + + override : bool, default False + If True, returns estimates of A and B without checking + order or rank condition + solver : str or None, optional + Solver to be used. The default is 'nm' (Nelder-Mead). Other + choices are 'bfgs', 'newton' (Newton-Raphson), 'cg' + conjugate, 'ncg' (non-conjugate gradient), and 'powell'. + maxiter : int, optional + The maximum number of iterations. Default is 500. + maxfun : int, optional + The maximum number of function evalutions. + + Returns + ------- + A_solve, B_solve: ML solutions for A, B matrices + + """ + #TODO: this could stand a refactor + A_mask = self.A_mask + B_mask = self.B_mask + A = self.A + B = self.B + A_len = len(A[A_mask]) + + A[A_mask] = start_params[:A_len] + B[B_mask] = start_params[A_len:] + + if override == False: + J = self._compute_J(A, B) + self.check_order(J) + self.check_rank(J) + else: #TODO: change to a warning? + print("Order/rank conditions have not been checked") + + retvals = super(SVAR, self).fit(start_params=start_params, + method=solver, maxiter=maxiter, + maxfun=maxfun, ftol=1e-20, disp=0).params + + + + A[A_mask] = retvals[:A_len] + B[B_mask] = retvals[A_len:] + + return A, B + + def _compute_J(self, A_solve, B_solve): + + #first compute appropriate duplication matrix + # taken from Magnus and Neudecker (1980), + #"The Elimination Matrix: Some Lemmas and Applications + # the creation of the D_n matrix follows MN (1980) directly, + #while the rest follows Hamilton (1994) + + neqs = self.neqs + sigma_u = self.sigma_u + A_mask = self.A_mask + B_mask = self.B_mask + + #first generate duplication matrix, see MN (1980) for notation + + D_nT = np.zeros([int((1.0 / 2) * (neqs) * (neqs + 1)), neqs**2]) + + for j in range(neqs): + i=j + while j <= i < neqs: + u=np.zeros([int((1.0/2)*neqs*(neqs+1)), 1]) + u[int(j * neqs + (i + 1) - (1.0 / 2) * (j + 1) * j - 1)] = 1 + Tij=np.zeros([neqs,neqs]) + Tij[i,j]=1 + Tij[j,i]=1 + D_nT=D_nT+np.dot(u,(Tij.ravel('F')[:,None]).T) + i=i+1 + + D_n=D_nT.T + D_pl=npl.pinv(D_n) + + #generate S_B + S_B = np.zeros((neqs**2, len(A_solve[A_mask]))) + S_D = np.zeros((neqs**2, len(B_solve[B_mask]))) + + j = 0 + j_d = 0 + if len(A_solve[A_mask]) is not 0: + A_vec = np.ravel(A_mask, order='F') + for k in range(neqs**2): + if A_vec[k] == True: + S_B[k,j] = -1 + j += 1 + if len(B_solve[B_mask]) is not 0: + B_vec = np.ravel(B_mask, order='F') + for k in range(neqs**2): + if B_vec[k] == True: + S_D[k,j_d] = 1 + j_d +=1 + + #now compute J + invA = npl.inv(A_solve) + J_p1i = np.dot(np.dot(D_pl, np.kron(sigma_u, invA)), S_B) + J_p1 = -2.0 * J_p1i + J_p2 = np.dot(np.dot(D_pl, np.kron(invA, invA)), S_D) + + J = np.append(J_p1, J_p2, axis=1) + + return J + + def check_order(self, J): + if np.size(J, axis=0) < np.size(J, axis=1): + raise ValueError("Order condition not met: " + "solution may not be unique") + + def check_rank(self, J): + rank = np_matrix_rank(J) + if rank < np.size(J, axis=1): + raise ValueError("Rank condition not met: " + "solution may not be unique.") + +class SVARProcess(VARProcess): + """ + Class represents a known SVAR(p) process + + Parameters + ---------- + coefs : ndarray (p x k x k) + intercept : ndarray (length k) + sigma_u : ndarray (k x k) + names : sequence (length k) + A : neqs x neqs np.ndarray with unknown parameters marked with 'E' + A_mask : neqs x neqs mask array with known parameters masked + B : neqs x neqs np.ndarry with unknown parameters marked with 'E' + B_mask : neqs x neqs mask array with known parameters masked + + Returns + ------- + **Attributes**: + """ + def __init__(self, coefs, intercept, sigma_u, A_solve, B_solve, + names=None): + self.k_ar = len(coefs) + self.neqs = coefs.shape[1] + self.coefs = coefs + self.intercept = intercept + self.sigma_u = sigma_u + self.A_solve = A_solve + self.B_solve = B_solve + self.names = names + + def orth_ma_rep(self, maxn=10, P=None): + + """ + + Unavailable for SVAR + + """ + raise NotImplementedError + + def svar_ma_rep(self, maxn=10, P=None): + """ + + Compute Structural MA coefficient matrices using MLE + of A, B + + """ + if P is None: + A_solve = self.A_solve + B_solve = self.B_solve + P = np.dot(npl.inv(A_solve), B_solve) + + ma_mats = self.ma_rep(maxn=maxn) + return mat([np.dot(coefs, P) for coefs in ma_mats]) + +class SVARResults(SVARProcess, VARResults): + """ + Estimate VAR(p) process with fixed number of lags + + Parameters + ---------- + endog : array + endog_lagged : array + params : array + sigma_u : array + lag_order : int + model : VAR model instance + trend : str {'nc', 'c', 'ct'} + names : array-like + List of names of the endogenous variables in order of appearance in `endog`. + dates + + + Returns + ------- + **Attributes** + aic + bic + bse + coefs : ndarray (p x K x K) + Estimated A_i matrices, A_i = coefs[i-1] + cov_params + dates + detomega + df_model : int + df_resid : int + endog + endog_lagged + fittedvalues + fpe + intercept + info_criteria + k_ar : int + k_trend : int + llf + model + names + neqs : int + Number of variables (equations) + nobs : int + n_totobs : int + params + k_ar : int + Order of VAR process + params : ndarray (Kp + 1) x K + A_i matrices and intercept in stacked form [int A_1 ... A_p] + pvalue + names : list + variables names + resid + sigma_u : ndarray (K x K) + Estimate of white noise process variance Var[u_t] + sigma_u_mle + stderr + trenorder + tvalues + y : + ys_lagged + """ + + _model_type = 'SVAR' + + def __init__(self, endog, endog_lagged, params, sigma_u, lag_order, + A=None, B=None, A_mask=None, B_mask=None, model=None, + trend='c', names=None, dates=None): + + self.model = model + self.y = self.endog = endog #keep alias for now + self.ys_lagged = self.endog_lagged = endog_lagged #keep alias for now + self.dates = dates + + self.n_totobs, self.neqs = self.y.shape + self.nobs = self.n_totobs - lag_order + k_trend = util.get_trendorder(trend) + if k_trend > 0: # make this the polynomial trend order + trendorder = k_trend - 1 + else: + trendorder = None + self.k_trend = k_trend + self.trendorder = trendorder + + self.exog_names = util.make_lag_names(names, lag_order, k_trend) + self.params = params + self.sigma_u = sigma_u + + # Each matrix needs to be transposed + reshaped = self.params[self.k_trend:] + reshaped = reshaped.reshape((lag_order, self.neqs, self.neqs)) + + # Need to transpose each coefficient matrix + intercept = self.params[0] + coefs = reshaped.swapaxes(1, 2).copy() + + #SVAR components + #TODO: if you define these here, you don't also have to define + #them in SVAR process, but I left them for now -ss + self.A = A + self.B = B + self.A_mask = A_mask + self.B_mask = B_mask + + super(SVARResults, self).__init__(coefs, intercept, sigma_u, A, + B, names=names) + + def irf(self, periods=10, var_order=None): + """ + Analyze structural impulse responses to shocks in system + + Parameters + ---------- + periods : int + + Returns + ------- + irf : IRAnalysis + """ + A = self.A + B= self.B + P = np.dot(npl.inv(A), B) + + return IRAnalysis(self, P=P, periods=periods, svar=True) + + def sirf_errband_mc(self, orth=False, repl=1000, T=10, + signif=0.05, seed=None, burn=100, cum=False): + """ + Compute Monte Carlo integrated error bands assuming normally + distributed for impulse response functions + + Parameters + ---------- + orth: bool, default False + Compute orthoganalized impulse response error bands + repl: int + number of Monte Carlo replications to perform + T: int, default 10 + number of impulse response periods + signif: float (0 < signif <1) + Significance level for error bars, defaults to 95% CI + seed: int + np.random.seed for replications + burn: int + number of initial observations to discard for simulation + cum: bool, default False + produce cumulative irf error bands + + Notes + ----- + Lutkepohl (2005) Appendix D + + Returns + ------- + Tuple of lower and upper arrays of ma_rep monte carlo standard errors + + """ + neqs = self.neqs + mean = self.mean() + k_ar = self.k_ar + coefs = self.coefs + sigma_u = self.sigma_u + intercept = self.intercept + df_model = self.df_model + nobs = self.nobs + + ma_coll = np.zeros((repl, T+1, neqs, neqs)) + A = self.A + B = self.B + A_mask = self.A_mask + B_mask = self.B_mask + A_pass = np.zeros(A.shape, dtype='|S1') + B_pass = np.zeros(B.shape, dtype='|S1') + A_pass[~A_mask] = A[~A_mask] + B_pass[~B_mask] = B[~B_mask] + A_pass[A_mask] = 'E' + B_pass[B_mask] = 'E' + if A_mask.sum() == 0: + s_type = 'B' + elif B_mask.sum() == 0: + s_type = 'A' + else: + s_type = 'AB' + g_list = [] + + + for i in range(repl): + #discard first hundred to correct for starting bias + sim = util.varsim(coefs, intercept, sigma_u, + steps=nobs+burn) + sim = sim[burn:] + if cum == True: + if i < 10: + sol = SVAR(sim, svar_type=s_type, A=A_pass, + B=B_pass).fit(maxlags=k_ar) + g_list.append(np.append(sol.A[sol.A_mask].\ + tolist(), + sol.B[sol.B_mask].\ + tolist())) + ma_coll[i] = sol.svar_ma_rep(maxn=T).cumsum(axis=0) + elif i >= 10: + if i == 10: + mean_AB = np.mean(g_list, axis = 0) + split = len(A_pass[A_mask]) + opt_A = mean_AB[:split] + opt_A = mean_AB[split:] + ma_coll[i] = SVAR(sim, svar_type=s_type, A=A_pass, + B=B_pass).fit(maxlags=k_ar,\ + A_guess=opt_A, B_guess=opt_B).\ + svar_ma_rep(maxn=T).cumsum(axis=0) + + + elif cum == False: + if i < 10: + sol = SVAR(sim, svar_type=s_type, A=A_pass, + B=B_pass).fit(maxlags=k_ar) + g_list.append(np.append(sol.A[A_mask].tolist(), + sol.B[B_mask].tolist())) + ma_coll[i] = sol.svar_ma_rep(maxn=T) + elif i >= 10: + if i == 10: + mean_AB = np.mean(g_list, axis = 0) + split = len(A[A_mask]) + opt_A = mean_AB[:split] + opt_B = mean_AB[split:] + ma_coll[i] = SVAR(sim, svar_type=s_type, A=A_pass, + B=B_pass).fit(maxlags=k_ar,\ + A_guess = opt_A, B_guess = opt_B).\ + svar_ma_rep(maxn=T) + + ma_sort = np.sort(ma_coll, axis=0) #sort to get quantiles + index = round(signif/2*repl)-1,round((1-signif/2)*repl)-1 + lower = ma_sort[index[0],:, :, :] + upper = ma_sort[index[1],:, :, :] + return lower, upper + diff --git a/statsmodels/tsa/vector_ar/tests/__init__.py b/statsmodels/tsa/vector_ar/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/statsmodels/tsa/vector_ar/tests/example_svar.py b/statsmodels/tsa/vector_ar/tests/example_svar.py new file mode 100644 index 0000000..f782440 --- /dev/null +++ b/statsmodels/tsa/vector_ar/tests/example_svar.py @@ -0,0 +1,23 @@ +import numpy as np +import statsmodels.api as sm +import pandas as pd + +mdatagen = sm.datasets.macrodata.load().data +mdata = mdatagen[['realgdp','realcons','realinv']] +names = mdata.dtype.names +start = pd.datetime(1959, 3, 31) +end = pd.datetime(2009, 9, 30) +#qtr = pd.DatetimeIndex(start=start, end=end, freq=pd.datetools.BQuarterEnd()) +qtr = pd.DatetimeIndex(start=start, end=end, freq='BQ-MAR') +data = pd.DataFrame(mdata, index=qtr) +data = (np.log(data)).diff().dropna() + +#define structural inputs +A = np.asarray([[1, 0, 0],['E', 1, 0],['E', 'E', 1]]) +B = np.asarray([['E', 0, 0], [0, 'E', 0], [0, 0, 'E']]) +A_guess = np.asarray([0.5, 0.25, -0.38]) +B_guess = np.asarray([0.5, 0.1, 0.05]) +mymodel = SVAR(data, svar_type='AB', A=A, B=B, freq='Q') +res = mymodel.fit(maxlags=3, maxiter=10000, maxfun=10000, solver='bfgs') +res.irf(periods=30).plot(impulse='realgdp', plot_stderr=True, + stderr_type='mc', repl=100) diff --git a/statsmodels/tsa/vector_ar/tests/results/__init__.py b/statsmodels/tsa/vector_ar/tests/results/__init__.py new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/statsmodels/tsa/vector_ar/tests/results/__init__.py @@ -0,0 +1 @@ + diff --git a/statsmodels/tsa/vector_ar/tests/results/results_svar.py b/statsmodels/tsa/vector_ar/tests/results/results_svar.py new file mode 100644 index 0000000..237d3bb --- /dev/null +++ b/statsmodels/tsa/vector_ar/tests/results/results_svar.py @@ -0,0 +1,14 @@ +""" +Test Results for the SVAR model. Obtained from R using svartest.R +""" + +import numpy as np + +class SVARdataResults(object): + def __init__(self): + self.A = ([[1.0, 0.0, 0], + [-0.506802245, 1.0, 0], + [-5.536056520, 3.04117686, 1.0]]) + self.B = ([[0.0075756676, 0.0, 0.0], + [0.0, 0.00512051886, 0.0], + [0.0, 0.0, 0.020708948]]) diff --git a/statsmodels/tsa/vector_ar/tests/results/results_svar_st.py b/statsmodels/tsa/vector_ar/tests/results/results_svar_st.py new file mode 100644 index 0000000..1b33396 --- /dev/null +++ b/statsmodels/tsa/vector_ar/tests/results/results_svar_st.py @@ -0,0 +1,741 @@ +import numpy as np + +class Bunch(dict): + def __init__(self, **kw): + dict.__init__(self, kw) + self.__dict__ = self + + for i,att in enumerate(['params', 'bse', 'tvalues', 'pvalues']): + self[att] = self.params_table[:,i] + + +est = dict( + mlag_var = 3, + fpe_var = 7.47593408072e-13, + aic_var = -19.4085401106207, + hqic_var = -19.20760258859687, + sbic_var = -18.91206199634062, + tparms_var = 30, + k_var = 30, + df_eq_var = 10, + k_aux = 18, + k_eq = 18, + k_eq_var = 3, + k_dv_var = 3, + neqs_var = 3, + k_dv = 3, + neqs = 3, + N_cns = 12, + ic_ml = 9, + rc_ml = 0, + oid_df = 0, + N = 199, + rank = 6, + F_3_var = 9.018236399703298, + df_r3_var = 189, + df_m3_var = 9, + ll_3_var = 364.1156201942387, + r2_3_var = .3004252574875596, + rmse_3_var = .0398398997327694, + k_3_var = 10, + obs_3_var = 199, + F_2_var = 5.002566602091567, + df_r2_var = 189, + df_m2_var = 9, + ll_2_var = 728.0001662442413, + r2_2_var = .1923874161594955, + rmse_2_var = .0064000343524738, + k_2_var = 10, + obs_2_var = 199, + F_1_var = 8.356742395485949, + df_r1_var = 189, + df_m1_var = 9, + ll_1_var = 694.4411801251371, + r2_1_var = .2846617748967589, + rmse_1_var = .0075756675969815, + k_1_var = 10, + obs_1_var = 199, + df_r = 193, + df_r_var = 189, + ll = 1945.759734821802, + ll_var = 1961.149741006759, + detsig_ml_var = 5.52855987611e-13, + detsig_var = 6.45335912865e-13, + T_var = 199, + N_gaps_var = 0, + tmin = 0, + tmax = 198, + cmd = "svar", + cmdline = "svar gdp cons inv, aeq(A) beq(B) lags(1/3) var dfk small", + predict = "svar_p", + dfk_var = "dfk", + vcetype = "EIM", + lags_var = "1 2 3", + depvar_var = "gdp cons inv", + eqnames_var = "gdp cons inv", + endog_var = "gdp cons inv", + timevar = "qtrdate", + tsfmt = "%tq", + small = "small", + title = "Structural vector autoregression", + cns_b = "[b_1_2]_cons = 0:[b_1_3]_cons = 0:[b_2_1]_cons = 0:[b_2_3]_cons = 0:[b_3_1]_cons = 0:[b_3_2]_cons = 0", + cns_a = "[a_1_1]_cons = 1:[a_1_2]_cons = 0:[a_1_3]_cons = 0:[a_2_2]_cons = 1:[a_2_3]_cons = 0:[a_3_3]_cons = 1", + properties = "b V", + ) + +params_table = np.array([ + 1, np.nan, np.nan, np.nan, + np.nan, np.nan, 193, 1.9723316757957, + 0, -.50680224519119, .04791445158754, -10.577231469827, + 6.466439125e-21, -.60130543578568, -.41229905459671, 193, + 1.9723316757957, 0, -5.5360565201616, .24220266982262, + -22.857124259679, 8.232580974e-57, -6.013760517815, -5.0583525225081, + 193, 1.9723316757957, 0, 0, + np.nan, np.nan, np.nan, np.nan, + np.nan, 193, 1.9723316757957, 0, + 1, np.nan, np.nan, np.nan, + np.nan, np.nan, 193, 1.9723316757957, + 0, 3.0411768648574, .28669329203947, 10.607771263929, + 5.260805180e-21, 2.4757226037298, 3.606631125985, 193, + 1.9723316757957, 0, 0, np.nan, + np.nan, np.nan, np.nan, np.nan, + 193, 1.9723316757957, 0, 0, + np.nan, np.nan, np.nan, np.nan, + np.nan, 193, 1.9723316757957, 0, + 1, np.nan, np.nan, np.nan, + np.nan, np.nan, 193, 1.9723316757957, + 0, .00757566759698, .00037973390425, 19.94993734326, + 8.739086225e-49, .00682670638925, .00832462880472, 193, + 1.9723316757957, 0, 0, np.nan, + np.nan, np.nan, np.nan, np.nan, + 193, 1.9723316757957, 0, 0, + np.nan, np.nan, np.nan, np.nan, + np.nan, 193, 1.9723316757957, 0, + 0, np.nan, np.nan, np.nan, + np.nan, np.nan, 193, 1.9723316757957, + 0, .00512051886486, .00025666841839, 19.94993734326, + 8.739086225e-49, .00461428361309, .00562675411662, 193, + 1.9723316757957, 0, 0, np.nan, + np.nan, np.nan, np.nan, np.nan, + 193, 1.9723316757957, 0, 0, + np.nan, np.nan, np.nan, np.nan, + np.nan, 193, 1.9723316757957, 0, + 0, np.nan, np.nan, np.nan, + np.nan, np.nan, 193, 1.9723316757957, + 0, .02070894812762, .00103804577284, 19.94993734326, + 8.739086225e-49, .01866157756892, .02275631868632, 193, + 1.9723316757957, 0]).reshape(18,9) + +params_table_colnames = 'b se t pvalue ll ul df crit eform'.split() + +params_table_rownames = '_cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons'.split() + +b = np.array([ + 1, -.50680224519119, -5.5360565201616, 0, + 1, 3.0411768648574, 0, 0, + 1, .00757566759698, 0, 0, + 0, .00512051886486, 0, 0, + 0, .02070894812762]) + +b_colnames = '_cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons'.split() + +b_rownames = 'y1'.split() + +cov = np.array([ + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, .00229579467093, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, .0586621332692, 0, + 0, -.04165561908647, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + -.04165561908647, 0, 0, .08219304370043, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 1.441978380e-07, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 6.587867700e-08, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 1.077539027e-06 + ]).reshape(18,18) + +cov_colnames = '_cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons'.split() + +cov_rownames = '_cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons'.split() + +constraints = np.array([ + 1, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 1, 0, + 0, 0, 1, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 1, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 1, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 1, + 0, 0, 0, 0, + 0, 0, 0, 1, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 1, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 1, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 1, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 1, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 1, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 1, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 1, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 1, + 0, 0, 0, 0 + ]).reshape(12,19) + +constraints_colnames = '_cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _cons _r'.split() + +constraints_rownames = 'r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12'.split() + +Sigma = np.array([ + .00005739073954, .00002908575565, .00022926345064, .00002908575565, + .00004096043971, .0000364524456, .00022926345064, .0000364524456, + .00158721761072]).reshape(3,3) + +Sigma_colnames = 'gdp cons inv'.split() + +Sigma_rownames = 'gdp cons inv'.split() + +G_var = np.array([ + 1, .00772119249309, .00832845872247, .00812414768988, + .00772450051084, .00839168407728, .00810118500591, .00793331513676, + .00846090823295, .009386666817, .00772119249309, .00013590038218, + .00010436399127, .00039355021854, .00008395547668, .00009296949447, + .0001468047815, .00007985818625, .00008622263703, .00012491817455, + .00832845872247, .00010436399127, .0001177915254, .0001572415776, + .00008140583018, .00008416323485, .00014479739125, .00007884622137, + .0000839417926, .00012879456896, .00812414768988, .00039355021854, + .0001572415776, .00222357091844, .0001852293649, .00023227850984, + .00042852108282, .00014155595459, .00015686829612, .00027431611677, + .00772450051084, .00008395547668, .00008140583018, .0001852293649, + .00013589031191, .00010428130248, .00039335411738, .00008365141811, + .00009289191013, .0001446903813, .00839168407728, .00009296949447, + .00008416323485, .00023227850984, .00010428130248, .000118309348, + .00015273148978, .00008252427592, .00008497769731, .00014704611828, + .00810118500591, .0001468047815, .00014479739125, .00042852108282, + .00039335411738, .00015273148978, .00222677863348, .00017054880362, + .0002272506141, .00033983014403, .00793331513676, .00007985818625, + .00007884622137, .00014155595459, .00008365141811, .00008252427592, + .00017054880362, .00013762976929, .00010632331501, .00038874930061, + .00846090823295, .00008622263703, .0000839417926, .00015686829612, + .00009289191013, .00008497769731, .0002272506141, .00010632331501, + .000119472079, .00016022586575, .009386666817, .00012491817455, + .00012879456896, .00027431611677, .0001446903813, .00014704611828, + .00033983014403, .00038874930061, .00016022586575, .00210416228523 + ]).reshape(10,10) + +G_var_colnames = '_cons L.gdp L.cons L.inv L2.gdp L2.cons L2.inv L3.gdp L3.cons L3.inv'.split() + +G_var_rownames = '_cons L.gdp L.cons L.inv L2.gdp L2.cons L2.inv L3.gdp L3.cons L3.inv'.split() + +bf_var = np.array([ + -.28614799058891, .02569110476595, -.18003096181942, .6738689560015, + .29544106895159, .18370240194258, .03057777928182, -.01444291994803, + .01263245201514, .00128149319157, -.12715587337617, -.08663431448056, + -.35906668730993, .25639388994688, .20570668527827, .41845237867104, + .02404284475263, .00384555072972, .04190581088286, .00483719365525, + -1.8625374877103, .33142498594011, -.48831009148236, 4.4033743272466, + .87819807698004, -.12378698529172, .22371717935155, -.09655522236577, + .03345298758638, -.02059735685585]) + +bf_var_colnames = 'L.gdp L2.gdp L3.gdp L.cons L2.cons L3.cons L.inv L2.inv L3.inv _cons L.gdp L2.gdp L3.gdp L.cons L2.cons L3.cons L.inv L2.inv L3.inv _cons L.gdp L2.gdp L3.gdp L.cons L2.cons L3.cons L.inv L2.inv L3.inv _cons'.split() + +bf_var_rownames = 'r1'.split() + +B = np.array([ + .00757566759698, 0, 0, 0, + .00512051886486, 0, 0, 0, + .02070894812762]).reshape(3,3) + +B_colnames = 'gdp cons inv'.split() + +B_rownames = 'gdp cons inv'.split() + +A = np.array([ + 1, 0, 0, -.50680224519119, + 1, 0, -5.5360565201616, 3.0411768648574, + 1]).reshape(3,3) + +A_colnames = 'gdp cons inv'.split() + +A_rownames = 'gdp cons inv'.split() + +beq = np.array([ + np.nan, 0, 0, 0, + np.nan, 0, 0, 0, + np.nan]).reshape(3,3) + +beq_colnames = 'c1 c2 c3'.split() + +beq_rownames = 'r1 r2 r3'.split() + +aeq = np.array([ + 1, 0, 0, np.nan, + 1, 0, np.nan, np.nan, + 1]).reshape(3,3) + +aeq_colnames = 'c1 c2 c3'.split() + +aeq_rownames = 'r1 r2 r3'.split() + +V_var = np.array([ + .02944043907167, -.00139167936464, -.0010606099932, -.01749947940302, + .00202095994301, -.00138072504574, -.00385176007523, .00038731129816, + .00020334459451, -.00004143863419, .01492048062093, -.00070530622659, + -.00053751952583, -.00886877545113, .00102422703656, -.00069975455317, + -.00195208065406, .0001962902355, .00010305549704, -.00002100119285, + .11760811420253, -.00555945464168, -.00423690492187, -.06990659232715, + .00807329290157, -.00551569453385, -.01538693895515, .00154722391453, + .00081231717487, -.00016553827919, -.00139167936464, .03044262457881, + -.00102187006012, .00135423549927, -.01978648635158, .00141733933507, + .0005786735915, -.00404788575193, .0001576008945, -.00004691846312, + -.00070530622659, .01542839048605, -.00051788604076, .00068632959155, + -.01002783570742, .00071831075721, .0002932730754, -.00205147758736, + .00007987248718, -.00002377838245, -.00555945464168, .12161162608255, + -.0040821473633, .00540987459008, -.07904268481996, .00566196061062, + .00231167441725, -.01617041813247, .00062958109943, -.0001874289971, + -.0010606099932, -.00102187006012, .0305750957042, .00161206604309, + .00123567563375, -.01979131075828, .00006003651469, .00052765232747, + -.00406616514879, -.0000494168379, -.00053751952583, -.00051788604076, + .01549552714982, .00081699869003, .00062624318551, -.01003028072757, + .00003042664044, .00026741538424, -.00206074162672, -.0000250445644, + -.00423690492187, -.0040821473633, .12214081925136, .00643985121405, + .00493625386149, -.07906195726942, .00023983274364, .002107855628, + -.01624344032441, -.00019740945784, -.01749947940302, .00135423549927, + .00161206604309, .0174886287578, -.00252569799616, -.00071586401207, + .00214091625575, -.00039776436038, -.00032773904917, -.00001762895502, + -.00886877545113, .00068632959155, .00081699869003, .00886327631977, + -.00128002941513, -.00036280148857, .00108502116518, -.0002015878709, + -.00016609888596, -8.934393985e-06, -.06990659232715, .00540987459008, + .00643985121405, .06986324637298, -.010089611016, -.00285972013799, + .00855249213135, -.00158898161155, -.00130924581082, -.0000704238191, + .00202095994301, -.01978648635158, .00123567563375, -.00252569799616, + .02190111225253, -.00177986396497, -.00110297152268, .00248014965403, + -.00035987053166, -.00002801274167, .00102422703656, -.01002783570742, + .00062624318551, -.00128002941513, .01109953286177, -.00090203905358, + -.00055898844408, .00125694541307, -.00018238319342, -.00001419692037, + .00807329290157, -.07904268481996, .00493625386149, -.010089611016, + .08749015273475, -.00711016720733, -.00440612996585, .00990765535257, + -.00143760405483, -.00011190477537, -.00138072504574, .00141733933507, + -.01979131075828, -.00071586401207, -.00177986396497, .02191808721673, + .00005751246451, -.00100612185989, .0023961694647, -.00002263401879, + -.00069975455317, .00071831075721, -.01003028072757, -.00036280148857, + -.00090203905358, .01110813581173, .00002914744614, -.00050990481753, + .00121438406457, -.00001147097154, -.00551569453385, .00566196061062, + -.07906195726942, -.00285972013799, -.00711016720733, .08755796400357, + .00022974971529, -.0040192367482, .00957217286629, -.00009041795403, + -.00385176007523, .0005786735915, .00006003651469, .00214091625575, + -.00110297152268, .00005751246451, .0006984186117, -.00009557423262, + -4.697657444e-06, .00001087688008, -.00195208065406, .0002932730754, + .00003042664044, .00108502116518, -.00055898844408, .00002914744614, + .00035396012049, -.00004843723567, -2.380783340e-06, 5.512427248e-06, + -.01538693895515, .00231167441725, .00023983274364, .00855249213135, + -.00440612996585, .00022974971529, .00279002957959, -.00038179815311, + -.00001876611391, .0000434507567, .00038731129816, -.00404788575193, + .00052765232747, -.00039776436038, .00248014965403, -.00100612185989, + -.00009557423262, .0007270051133, -.00006681356415, .00001061820762, + .0001962902355, -.00205147758736, .00026741538424, -.0002015878709, + .00125694541307, -.00050990481753, -.00004843723567, .00036844782368, + -.00003386126432, 5.381331462e-06, .00154722391453, -.01617041813247, + .002107855628, -.00158898161155, .00990765535257, -.0040192367482, + -.00038179815311, .00290422640037, -.00026690557379, .00004241741679, + .00020334459451, .0001576008945, -.00406616514879, -.00032773904917, + -.00035987053166, .0023961694647, -4.697657444e-06, -.00006681356415, + .00069956889753, 8.959242929e-06, .00010305549704, .00007987248718, + -.00206074162672, -.00016609888596, -.00018238319342, .00121438406457, + -2.380783340e-06, -.00003386126432, .00035454308793, 4.540564432e-06, + .00081231717487, .00062958109943, -.01624344032441, -.00130924581082, + -.00143760405483, .00957217286629, -.00001876611391, -.00026690557379, + .00279462471985, .00003579021573, -.00004143863419, -.00004691846312, + -.0000494168379, -.00001762895502, -.00002801274167, -.00002263401879, + .00001087688008, .00001061820762, 8.959242929e-06, 1.677729973e-06, + -.00002100119285, -.00002377838245, -.0000250445644, -8.934393985e-06, + -.00001419692037, -.00001147097154, 5.512427248e-06, 5.381331462e-06, + 4.540564432e-06, 8.502773173e-07, -.00016553827919, -.0001874289971, + -.00019740945784, -.0000704238191, -.00011190477537, -.00009041795403, + .0000434507567, .00004241741679, .00003579021573, 6.702164252e-06, + .01492048062093, -.00070530622659, -.00053751952583, -.00886877545113, + .00102422703656, -.00069975455317, -.00195208065406, .0001962902355, + .00010305549704, -.00002100119285, .021011984501, -.00099325778291, + -.00075696971382, -.01248958241067, .00144238266611, -.00098543955783, + -.0027490460589, .0002764285877, .00014512940713, -.0000295752362, + .01869946288115, -.00088394254441, -.00067365969478, -.0111150130859, + .00128363796975, -.00087698477183, -.00244649355869, .00024600561241, + .00012915686101, -.00002632026649, -.00070530622659, .01542839048605, + -.00051788604076, .00068632959155, -.01002783570742, .00071831075721, + .0002932730754, -.00205147758736, .00007987248718, -.00002377838245, + -.00099325778291, .02172725597817, -.00072932057206, .00096653365977, + -.01412184592548, .00101157160288, .00041300608683, -.00288902324026, + .00011248159528, -.00003348625398, -.00088394254441, .01933601353331, + -.00064905354204, .00086015960527, -.01256763413681, .00090024079538, + .00036755176504, -.00257106523382, .00010010217815, -.00002980084833, + -.00053751952583, -.00051788604076, .01549552714982, .00081699869003, + .00062624318551, -.01003028072757, .00003042664044, .00026741538424, + -.00206074162672, -.0000250445644, -.00075696971382, -.00072932057206, + .02182180216435, .00115055032398, .00088191610191, -.01412528916077, + .00004284876028, .00037659161603, -.00290206945884, -.00003526937318, + -.00067365969478, -.00064905354204, .01942015422449, .00102392389806, + .00078485482469, -.01257069841903, .00003813294276, .00033514497143, + -.00258267562122, -.0000313877223, -.00886877545113, .00068632959155, + .00081699869003, .00886327631977, -.00128002941513, -.00036280148857, + .00108502116518, -.0002015878709, -.00016609888596, -8.934393985e-06, + -.01248958241067, .00096653365977, .00115055032398, .01248183817871, + -.00180262009749, -.00051092048898, .00152799688463, -.00028388906004, + -.00023391117927, -.00001258199067, -.0111150130859, .00086015960527, + .00102392389806, .01110812116296, -.00160422865342, -.00045468997555, + .00135982972124, -.00025264500554, -.00020816755381, -.00001119725114, + .00102422703656, -.01002783570742, .00062624318551, -.00128002941513, + .01109953286177, -.00090203905358, -.00055898844408, .00125694541307, + -.00018238319342, -.00001419692037, .00144238266611, -.01412184592548, + .00088191610191, -.00180262009749, .01563107907748, -.00127030965655, + -.00078720363114, .00177011171483, -.00025684379282, -.00001999302022, + .00128363796975, -.01256763413681, .00078485482469, -.00160422865342, + .01391076521058, -.00113050284561, -.00070056614975, .00157529805457, + -.00022857626656, -.00001779264303, -.00069975455317, .00071831075721, + -.01003028072757, -.00036280148857, -.00090203905358, .01110813581173, + .00002914744614, -.00050990481753, .00121438406457, -.00001147097154, + -.00098543955783, .00101157160288, -.01412528916077, -.00051092048898, + -.00127030965655, .01564319430727, .00004104731625, -.000718080898, + .0017101740749, -.00001615416302, -.00087698477183, .00090024079538, + -.01257069841903, -.00045468997555, -.00113050284561, .01392154707127, + .00003652976074, -.00063905087581, .00152195698757, -.00001437627996, + -.00195208065406, .0002932730754, .00003042664044, .00108502116518, + -.00055898844408, .00002914744614, .00035396012049, -.00004843723567, + -2.380783340e-06, 5.512427248e-06, -.0027490460589, .00041300608683, + .00004284876028, .00152799688463, -.00078720363114, .00004104731625, + .00049846950341, -.00006821244376, -3.352772870e-06, 7.762956089e-06, + -.00244649355869, .00036755176504, .00003813294276, .00135982972124, + -.00070056614975, .00003652976074, .00044360931144, -.00006070516852, + -2.983775846e-06, 6.908586346e-06, .0001962902355, -.00205147758736, + .00026741538424, -.0002015878709, .00125694541307, -.00050990481753, + -.00004843723567, .00036844782368, -.00003386126432, 5.381331462e-06, + .0002764285877, -.00288902324026, .00037659161603, -.00028388906004, + .00177011171483, -.000718080898, -.00006821244376, .00051887202278, + -.00004768561946, 7.578338537e-06, .00024600561241, -.00257106523382, + .00033514497143, -.00025264500554, .00157529805457, -.00063905087581, + -.00006070516852, .00046176638526, -.00004243747044, 6.744287298e-06, + .00010305549704, .00007987248718, -.00206074162672, -.00016609888596, + -.00018238319342, .00121438406457, -2.380783340e-06, -.00003386126432, + .00035454308793, 4.540564432e-06, .00014512940713, .00011248159528, + -.00290206945884, -.00023391117927, -.00025684379282, .0017101740749, + -3.352772870e-06, -.00004768561946, .00049929047581, 6.394316100e-06, + .00012915686101, .00010010217815, -.00258267562122, -.00020816755381, + -.00022857626656, .00152195698757, -2.983775846e-06, -.00004243747044, + .00044433992986, 5.690575137e-06, -.00002100119285, -.00002377838245, + -.0000250445644, -8.934393985e-06, -.00001419692037, -.00001147097154, + 5.512427248e-06, 5.381331462e-06, 4.540564432e-06, 8.502773173e-07, + -.0000295752362, -.00003348625398, -.00003526937318, -.00001258199067, + -.00001999302022, -.00001615416302, 7.762956089e-06, 7.578338537e-06, + 6.394316100e-06, 1.197415436e-06, -.00002632026649, -.00002980084833, + -.0000313877223, -.00001119725114, -.00001779264303, -.00001437627996, + 6.908586346e-06, 6.744287298e-06, 5.690575137e-06, 1.065631164e-06, + .11760811420253, -.00555945464168, -.00423690492187, -.06990659232715, + .00807329290157, -.00551569453385, -.01538693895515, .00154722391453, + .00081231717487, -.00016553827919, .01869946288115, -.00088394254441, + -.00067365969478, -.0111150130859, .00128363796975, -.00087698477183, + -.00244649355869, .00024600561241, .00012915686101, -.00002632026649, + .81421469275997, -.03848875295449, -.02933258697842, -.48397149277921, + .0558923484488, -.03818579662369, -.1065255731616, .01071161163275, + .00562376655253, -.00114604081571, -.00555945464168, .12161162608255, + -.0040821473633, .00540987459008, -.07904268481996, .00566196061062, + .00231167441725, -.01617041813247, .00062958109943, -.0001874289971, + -.00088394254441, .01933601353331, -.00064905354204, .00086015960527, + -.01256763413681, .00090024079538, .00036755176504, -.00257106523382, + .00010010217815, -.00002980084833, -.03848875295449, .84193147248604, + -.02826118234912, .03745319280989, -.54722172676604, .03919841373406, + .01600399163071, -.1119496908934, .00435866338746, -.00129759280914, + -.00423690492187, -.0040821473633, .12214081925136, .00643985121405, + .00493625386149, -.07906195726942, .00023983274364, .002107855628, + -.01624344032441, -.00019740945784, -.00067365969478, -.00064905354204, + .01942015422449, .00102392389806, .00078485482469, -.01257069841903, + .00003813294276, .00033514497143, -.00258267562122, -.0000313877223, + -.02933258697842, -.02826118234912, .84559513852024, .0445838411169, + .03417426126141, -.54735515218165, .00166039005894, .01459293037875, + -.11245523204569, -.00136668870299, -.06990659232715, .00540987459008, + .00643985121405, .06986324637298, -.010089611016, -.00285972013799, + .00855249213135, -.00158898161155, -.00130924581082, -.0000704238191, + -.0111150130859, .00086015960527, .00102392389806, .01110812116296, + -.00160422865342, -.00045468997555, .00135982972124, -.00025264500554, + -.00020816755381, -.00001119725114, -.48397149277921, .03745319280989, + .0445838411169, .48367140368251, -.06985155394389, -.01979817608096, + .05920990061166, -.01100070503994, -.00906406146236, -.00048755231406, + .00807329290157, -.07904268481996, .00493625386149, -.010089611016, + .08749015273475, -.00711016720733, -.00440612996585, .00990765535257, + -.00143760405483, -.00011190477537, .00128363796975, -.01256763413681, + .00078485482469, -.00160422865342, .01391076521058, -.00113050284561, + -.00070056614975, .00157529805457, -.00022857626656, -.00001779264303, + .0558923484488, -.54722172676604, .03417426126141, -.06985155394389, + .60570453247617, -.04922451692591, -.03050415169677, .06859185366219, + -.00995270055771, -.00077472981275, -.00551569453385, .00566196061062, + -.07906195726942, -.00285972013799, -.00711016720733, .08755796400357, + .00022974971529, -.0040192367482, .00957217286629, -.00009041795403, + -.00087698477183, .00090024079538, -.01257069841903, -.00045468997555, + -.00113050284561, .01392154707127, .00003652976074, -.00063905087581, + .00152195698757, -.00001437627996, -.03818579662369, .03919841373406, + -.54735515218165, -.01979817608096, -.04922451692591, .60617399779988, + .00159058407757, -.02782564482269, .06626926927807, -.00062597404237, + -.01538693895515, .00231167441725, .00023983274364, .00855249213135, + -.00440612996585, .00022974971529, .00279002957959, -.00038179815311, + -.00001876611391, .0000434507567, -.00244649355869, .00036755176504, + .00003813294276, .00135982972124, -.00070056614975, .00003652976074, + .00044360931144, -.00006070516852, -2.983775846e-06, 6.908586346e-06, + -.1065255731616, .01600399163071, .00166039005894, .05920990061166, + -.03050415169677, .00159058407757, .01931570021627, -.00264323314799, + -.00012991999552, .00030081465683, .00154722391453, -.01617041813247, + .002107855628, -.00158898161155, .00990765535257, -.0040192367482, + -.00038179815311, .00290422640037, -.00026690557379, .00004241741679, + .00024600561241, -.00257106523382, .00033514497143, -.00025264500554, + .00157529805457, -.00063905087581, -.00006070516852, .00046176638526, + -.00004243747044, 6.744287298e-06, .01071161163275, -.1119496908934, + .01459293037875, -.01100070503994, .06859185366219, -.02782564482269, + -.00264323314799, .02010629812676, -.00184781841992, .00029366072412, + .00081231717487, .00062958109943, -.01624344032441, -.00130924581082, + -.00143760405483, .00957217286629, -.00001876611391, -.00026690557379, + .00279462471985, .00003579021573, .00012915686101, .00010010217815, + -.00258267562122, -.00020816755381, -.00022857626656, .00152195698757, + -2.983775846e-06, -.00004243747044, .00044433992986, 5.690575137e-06, + .00562376655253, .00435866338746, -.11245523204569, -.00906406146236, + -.00995270055771, .06626926927807, -.00012991999552, -.00184781841992, + .01934751290831, .00024777983816, -.00016553827919, -.0001874289971, + -.00019740945784, -.0000704238191, -.00011190477537, -.00009041795403, + .0000434507567, .00004241741679, .00003579021573, 6.702164252e-06, + -.00002632026649, -.00002980084833, -.0000313877223, -.00001119725114, + -.00001779264303, -.00001437627996, 6.908586346e-06, 6.744287298e-06, + 5.690575137e-06, 1.065631164e-06, -.00114604081571, -.00129759280914, + -.00136668870299, -.00048755231406, -.00077472981275, -.00062597404237, + .00030081465683, .00029366072412, .00024777983816, .00004639986487 + ]).reshape(30,30) + +V_var_colnames = 'L.gdp L2.gdp L3.gdp L.cons L2.cons L3.cons L.inv L2.inv L3.inv _cons L.gdp L2.gdp L3.gdp L.cons L2.cons L3.cons L.inv L2.inv L3.inv _cons L.gdp L2.gdp L3.gdp L.cons L2.cons L3.cons L.inv L2.inv L3.inv _cons'.split() + +V_var_rownames = 'L.gdp L2.gdp L3.gdp L.cons L2.cons L3.cons L.inv L2.inv L3.inv _cons L.gdp L2.gdp L3.gdp L.cons L2.cons L3.cons L.inv L2.inv L3.inv _cons L.gdp L2.gdp L3.gdp L.cons L2.cons L3.cons L.inv L2.inv L3.inv _cons'.split() + +b_var = np.array([ + -.28614799058891, .02569110476595, -.18003096181942, .6738689560015, + .29544106895159, .18370240194258, .03057777928182, -.01444291994803, + .01263245201514, .00128149319157, -.12715587337617, -.08663431448056, + -.35906668730993, .25639388994688, .20570668527827, .41845237867104, + .02404284475263, .00384555072972, .04190581088286, .00483719365525, + -1.8625374877103, .33142498594011, -.48831009148236, 4.4033743272466, + .87819807698004, -.12378698529172, .22371717935155, -.09655522236577, + .03345298758638, -.02059735685585]) + +b_var_colnames = 'L.gdp L2.gdp L3.gdp L.cons L2.cons L3.cons L.inv L2.inv L3.inv _cons L.gdp L2.gdp L3.gdp L.cons L2.cons L3.cons L.inv L2.inv L3.inv _cons L.gdp L2.gdp L3.gdp L.cons L2.cons L3.cons L.inv L2.inv L3.inv _cons'.split() + +b_var_rownames = 'y1'.split() + + + +results_svar1_small = Bunch( + params_table=params_table, + params_table_colnames=params_table_colnames, + params_table_rownames=params_table_rownames, + b=b, + b_colnames=b_colnames, + b_rownames=b_rownames, + cov=cov, + cov_colnames=cov_colnames, + cov_rownames=cov_rownames, + constraints=constraints, + constraints_colnames=constraints_colnames, + constraints_rownames=constraints_rownames, + Sigma=Sigma, + Sigma_colnames=Sigma_colnames, + Sigma_rownames=Sigma_rownames, + G_var=G_var, + G_var_colnames=G_var_colnames, + G_var_rownames=G_var_rownames, + bf_var=bf_var, + bf_var_colnames=bf_var_colnames, + bf_var_rownames=bf_var_rownames, + B=B, + B_colnames=B_colnames, + B_rownames=B_rownames, + A=A, + A_colnames=A_colnames, + A_rownames=A_rownames, + beq=beq, + beq_colnames=beq_colnames, + beq_rownames=beq_rownames, + aeq=aeq, + aeq_colnames=aeq_colnames, + aeq_rownames=aeq_rownames, + V_var=V_var, + V_var_colnames=V_var_colnames, + V_var_rownames=V_var_rownames, + b_var=b_var, + b_var_colnames=b_var_colnames, + b_var_rownames=b_var_rownames, + **est + ) + + +results_svar1_small.__doc__ = """ + Scalars + e(N) number of observations + e(N_cns) number of constraints + e(k_eq) number of equations in e(b) + e(k_dv) number of dependent variables + e(k_aux) number of auxiliary parameters + e(ll) log likelihood from svar + e(ll_#) log likelihood for equation # + e(N_gaps_var) number of gaps in the sample + e(k_var) number of coefficients in VAR + e(k_eq_var) number of equations in underlying VAR + e(k_dv_var) number of dependent variables in underlying VAR + e(df_eq_var) average number of parameters in an equation + e(df_m_var) model degrees of freedom + e(df_r_var) if small, residual degrees of freedom + e(obs_#_var) number of observations on equation # + e(k_#_var) number of coefficients in equation # + e(df_m#_var) model degrees of freedom for equation # + e(df_r#_var) residual degrees of freedom for equation # (small only) + e(r2_#_var) R-squared for equation # + e(ll_#_var) log likelihood for equation # VAR + e(chi2_#_var) chi-squared statistic for equation # + e(F_#_var) F statistic for equation # (small only) + e(rmse_#_var) root mean squared error for equation # + e(mlag_var) highest lag in VAR + e(tparms_var) number of parameters in all equations + e(aic_var) Akaike information criterion + e(hqic_var) Hannan-Quinn information criterion + e(sbic_var) Schwarz-Bayesian information criterion + e(fpe_var) final prediction error + e(ll_var) log likelihood from var + e(detsig_var) determinant of e(Sigma) + e(detsig_ml_var) determinant of Sigma_ml hat + e(tmin) first time period in the sample + e(tmax) maximum time + e(chi2_oid) overidentification test + e(oid_df) number of overidentifying restrictions + e(rank) rank of e(V) + e(ic_ml) number of iterations + e(rc_ml) return code from ml + + Matrices + e(b) coefficient vector + e(Cns) constraints matrix + e(Sigma) Sigma hat matrix + e(V) variance-covariance matrix of the estimators + e(b_var) coefficient vector of underlying VAR model + e(V_var) VCE of underlying VAR model + e(bf_var) full coefficient vector with zeros in dropped lags + e(G_var) Gamma matrix saved by var; see Methods and formulas in [TS] var svar + e(aeq) aeq(matrix), if specified + e(acns) acns(matrix), if specified + e(beq) beq(matrix), if specified + e(bcns) bcns(matrix), if specified + e(lreq) lreq(matrix), if specified + e(lrcns) lrcns(matrix), if specified + e(Cns_var) constraint matrix from var, if varconstraints() is specified + e(A) estimated A matrix, if a short-run model + e(B) estimated B matrix + e(C) estimated C matrix, if a long-run model + e(A1) estimated A bar matrix, if a long-run model +""" diff --git a/statsmodels/tsa/vector_ar/tests/results/results_var.py b/statsmodels/tsa/vector_ar/tests/results/results_var.py new file mode 100644 index 0000000..ffe5a82 --- /dev/null +++ b/statsmodels/tsa/vector_ar/tests/results/results_var.py @@ -0,0 +1,71 @@ +""" +Test Results for the VAR model. Obtained from Stata using +datasets/macrodata/var.do +""" + +import numpy as np + +class MacrodataResults(object): + def __init__(self): + params = [-0.2794863875, 0.0082427826, 0.6750534746, 0.2904420695, + 0.0332267098, -0.0073250059, 0.0015269951, -0.1004938623, + -0.1231841792, 0.2686635768, 0.2325045441, 0.0257430635, + 0.0235035714, 0.0054596064, -1.97116e+00, 0.3809752365, + 4.4143364022, 0.8001168377, 0.2255078864, -0.1241109271, + -0.0239026118] + params = np.asarray(params).reshape(3,-1) + params = np.hstack((params[:,-1][:,None],params[:,:-1:2],params[:,1::2])) + self.params = params + self.neqs = 3 + self.nobs = 200 + self.df_eq = 7 + self.nobs_1 = 200 + self.df_model_1 = 6 + self.rmse_1 = .0075573716985351 + self.rsquared_1 = .2739094844780006 + self.llf_1 = 696.8213727557811 + self.nobs_2 = 200 + self.rmse_2 = .0065444260782597 + self.rsquared_2 = .1423626064753714 + self.llf_2 = 725.6033255319256 + self.nobs_3 = 200 + self.rmse_3 = .0395942039671031 + self.rsquared_3 = .2955406949737428 + self.llf_3 = 365.5895183036045 +# These are from Stata. They use the LL based definition +# We return Lutkepohl statistics. See Stata TS manual page 436 +# self.bic = -19.06939794312953 +# self.aic = -19.41572126661708 +# self.hqic = -19.27556951526737 +# These are from R. See var.R in macrodata folder + self.bic = -2.758301611618373e+01 + self.aic = -2.792933943967127e+01 + self.hqic = -2.778918768832157e+01 + self.fpe = 7.421287668357018e-13 + self.detsig = 6.01498432283e-13 + self.llf = 1962.572126661708 + self.chi2_1 = 75.44775165699033 # don't know how they calculate this + # it's not -2 * (ll1 - ll0) + self.chi2_2 = 33.19878716815366 + self.chi2_3 = 83.90568280242312 + bse = [.1666662376, .1704584393, .1289691456, .1433308696, .0257313781, + .0253307796, .0010992645,.1443272761,.1476111934,.1116828804, + .1241196435, .0222824956, .021935591, .0009519255, .8731894193, + .8930573331, .6756886998, .7509319263, .1348105496, .1327117543, + .0057592114] + bse = np.asarray(bse).reshape(3,-1) + bse = np.hstack((bse[:,-1][:,None],bse[:,:-1:2],bse[:,1::2])) + self.bse = bse + + + +#array([[ -2.79434736e-01, 6.75015752e-01, 3.32194508e-02, +# 8.22108491e-03, 2.90457628e-01, -7.32090753e-03, +# 1.52697235e-03], +# [ -1.00467978e-01, 2.68639553e-01, 2.57387265e-02, +# -1.23173928e-01, 2.32499436e-01, 2.35037610e-02, +# 5.45960305e-03], +# [ -1.97097367e+00, 4.41416233e+00, 2.25478953e-01, +# 3.80785849e-01, 8.00280918e-01, -1.24079062e-01, +# -2.39025209e-02]]) + diff --git a/statsmodels/tsa/vector_ar/tests/results/results_var_data.py b/statsmodels/tsa/vector_ar/tests/results/results_var_data.py new file mode 100644 index 0000000..0b3d486 --- /dev/null +++ b/statsmodels/tsa/vector_ar/tests/results/results_var_data.py @@ -0,0 +1,97 @@ +import numpy as np +from numpy import array, rec, inf, nan + + +class Holder(object): + pass + + +var_results = Holder() +var_results.comment = 'VAR test data converted from vars_results.npz' +var_results.causality = array([(9.317172089406967e-08,), (0.5183914225971917,), (4.8960835385969403e-14,)], + dtype=[('causedby', 'float')]) +var_results.name = 'var_results' +var_results.orthirf = array({'realgdp': rec.array([(0.007557357219752236, 0.003948403413668315, 0.02972434157321242), + (0.0015408726821578582, 0.0010664916255201816, 0.00923575489996933), + (0.0015874964105555918, 0.0010551760558416706, 0.006102514196485799), + (0.0007262051539604352, 0.0005562787500837443, 0.003199064883156089), + (0.0005537000868358786, 0.0003520396722562061, 0.0024372344590635623), + (0.0003079984190444812, 0.00021674897409108682, 0.0013369479853037147)], + dtype=[('realgdp', 'float'), ('realcons', 'float'), ('realinv', 'float')]), 'realinv': rec.array([(0.0, 0.0, 0.020741992721114832), + (0.0006890376065674764, 0.0005338724781743238, 0.004676882806534488), + (0.00017134455810606506, 0.000682084896451223, -0.0005205835547221123), + (0.0005217378718553543, 0.00030179909990059973, 0.0026650577026759623), + (0.00034979575853114173, 0.00022249591743758265, 0.0015804716569096742), + (0.00017738402507880077, 0.00013384975583249413, 0.0007585745605878197)], + dtype=[('realgdp', 'float'), ('realcons', 'float'), ('realinv', 'float')]), 'realcons': rec.array([(0.0, 0.005219256972675799, -0.01593559385372415), + (0.0029937089930834665, 0.000991936965470755, 0.019445506482528015), + (0.002111631850388755, 0.0013051320985438103, 0.00901674690789421), + (0.000760821255683657, 0.0006894587307924545, 0.0031531908594739904), + (0.0006879775935656037, 0.0004452087814044681, 0.0029845646103117077), + (0.0003908528054047277, 0.00026799713044743445, 0.0017324202804285334)], + dtype=[('realgdp', 'float'), ('realcons', 'float'), ('realinv', 'float')])}, dtype=object) +var_results.detomega = array([ 6.69357627913858242322e-13]) +var_results.nirfs = array([ 5.]) +var_results.loglike = array([ 1962.57082404432503608405]) +var_results.stderr = array([(0.0011190205021849168, 0.0009690469778955306, 0.0058627441569700095), + (0.169662667084976, 0.14692411307869205, 0.8888923913067142), + (0.13128502534984174, 0.11368992508162204, 0.6878252130006585), + (0.02619387125804535, 0.022683312533087908, 0.13723427351570822), + (0.17352233516355128, 0.15026650017519333, 0.9091138675275061), + (0.14590394087772843, 0.12634958224138662, 0.7644162686828472), + (0.02578605367156698, 0.022330151532965133, 0.13509764584216039)], + dtype=[('realgdp', 'float'), ('realcons', 'float'), ('realinv', 'float')]) +var_results.crit = array({'sic': [-27.583016116183746], 'hqic': [-27.789187688321583], 'fpe': [7.421287668356912e-13], 'aic': [-27.92933943967129]}, dtype=object) +var_results.phis = array([[[ 1. , 0. , 0. ], + [ 0. , 1. , 0. ], + [ 0. , 0. , 1. ]], + + [[-0.27943473587305184269, 0.67501575174854244743, 0.03321945079394677397], + [-0.10046797808205484848, 0.26863955252271337626, 0.02573872652220415141], + [-1.97097367379580989954, 4.41416232699026434005, 0.22547895322388852857]], + + [[-0.04698727419951594098, 0.42980675754266339794, 0.00826075683324488733], + [-0.17281970983411520937, 0.35046409430422942322, 0.03288425107568751504], + [ 0.04364931246903419604, 1.65096193457053663778, -0.02509804924346402399]], + + [[-0.11912577490062775665, 0.22257198988626961111, 0.02515370046023775175], + [-0.07584698388980917749, 0.17652397885529469423, 0.01455014973529403233], + [-0.60265240582682233494, 0.99644320159959076655, 0.12848609767194643649]], + + [[-0.08883245330826733399, 0.18330532474980901214, 0.01686413466798001443], + [-0.05728563445875266974, 0.11805267650029765969, 0.01072683422606196188], + [-0.39750493711843060129, 0.80448318531634888107, 0.07619671254154830597]], + + [[-0.04564844379524263945, 0.10099768165139233478, 0.00855192784337583181], + [-0.03382143062494445684, 0.07105049775782870669, 0.00645308084098585207], + [-0.19869441802790854812, 0.44359103295144985957, 0.03657192299636715521]]]) +var_results.nahead = array([ 5.]) +var_results.totobs = array([ 202.]) +var_results.type = array(['const'], + dtype='|S5') +var_results.obs = array([ 200.]) +var_results.irf = array({'realgdp': rec.array([(1.0, 0.0, 0.0), (-0.27943473587305184, -0.10046797808205485, -1.97097367379581), + (-0.04698727419951594, -0.1728197098341152, 0.043649312469034196), + (-0.11912577490062776, -0.07584698388980918, -0.6026524058268223), + (-0.08883245330826733, -0.05728563445875267, -0.3975049371184306), + (-0.04564844379524264, -0.03382143062494446, -0.19869441802790855)], + dtype=[('realgdp', 'float'), ('realcons', 'float'), ('realinv', 'float')]), 'realinv': rec.array([(0.0, 0.0, 1.0), (0.033219450793946774, 0.02573872652220415, 0.22547895322388853), + (0.008260756833244887, 0.032884251075687515, -0.025098049243464024), + (0.025153700460237752, 0.014550149735294032, 0.12848609767194644), + (0.016864134667980014, 0.010726834226061962, 0.0761967125415483), + (0.008551927843375832, 0.006453080840985852, 0.036571922996367155)], + dtype=[('realgdp', 'float'), ('realcons', 'float'), ('realinv', 'float')]), 'realcons': rec.array([(0.0, 1.0, 0.0), (0.6750157517485424, 0.2686395525227134, 4.414162326990264), + (0.4298067575426634, 0.3504640943042294, 1.6509619345705366), + (0.2225719898862696, 0.1765239788552947, 0.9964432015995908), + (0.183305324749809, 0.11805267650029766, 0.8044831853163489), + (0.10099768165139233, 0.0710504977578287, 0.44359103295144986)], + dtype=[('realgdp', 'float'), ('realcons', 'float'), ('realinv', 'float')])}, dtype=object) +var_results.coefs = array([(0.0015269723529158544, 0.005459603048402539, -0.02390252088527764), + (-0.27943473587305184, -0.10046797808205485, -1.97097367379581), + (0.6750157517485424, 0.2686395525227134, 4.414162326990264), + (0.033219450793946774, 0.02573872652220415, 0.22547895322388853), + (0.008221084912580555, -0.12317392770605443, 0.3807858492371746), + (0.29045762812920883, 0.23249943591732136, 0.8002809175290293), + (-0.007320907532428127, 0.023503761040979707, -0.12407906157659883)], + dtype=[('realgdp', 'float'), ('realcons', 'float'), ('realinv', 'float')]) + diff --git a/statsmodels/tsa/vector_ar/tests/results/vars_results.npz b/statsmodels/tsa/vector_ar/tests/results/vars_results.npz new file mode 100644 index 0000000000000000000000000000000000000000..07de18143720e282ccfc6331315bfbaed37f698d GIT binary patch literal 5696 zcmeHL4OA0X7M?&5h=`(K6;ZJ4DN$2a3n+qcK`fv_eu_aUA|@d)K?qC|P+HKS3#e!p zwSq`>g=+mNZY_w46$Z7U715QdTLjxGREzl6!X7;6>b@a7k_>X%vmVcOd-~wb&zt#j z@4Ij2`|h1kp)uE*U|QGaAaC!oX5$s;nCZh%mx@zW;zYSR-C2>6z9m>RKQxj=_&5Cn(niP!=;*ynWrC1S@tc;a0_xXzxRWdZLBE=~( zbk27XOcFR`I_NbXL1^HJQM&hrosGr&3%&8KTQl@;7sZu6RjE_wr`)p`EVXP}-RXnusvuM_D(HvP64#_6D z`mXB%5Rgal`s@$wv)^xrvJjauCYjk$!?eS4MH*$9OAXJYM({}s68Rs8{kQ7H&ocC% zP)meF4rxhR2}k6R!_dwwCsjBGxrMH*6XoCj_nwlpu9aZ2KX-+TAO&0=T&%ZD*$Ji- zs;O4*NI2V6zkh0a7<@oIGk@#uYS_DI$2`jDU3k0Wv;D{ChC%V1DCf>+E8w}!^3R*< z1HjFL$d31z4ch}sZr*cEfNf;!%`<Kh>V zL^`P^(jO`hHh%ip(wDBUTe@NI7+*-gT<8~h)&)N07yZlhstl}o*B2Jun-1X}l}oE8 zy$O5=^X#6sNT{q25t#TmK|s{kdwlXH!osDUX_DqZCKmncZxD>J1A<{YAQ4ldv#sWvao#m;sT=pzZ?=&AGW$?_=Lj4 zi3LsB?OWi{;nJh>ATb=tSlcl{A_Dik&jMqXuZA!EcDs5$2!wCNha!s#{bAO%M%A$^ za!8uoS|Z5vhtn=UIYqze1zph}-Lp}VFurgeH*v>IXqxWW?wvmkUN0-L3z95G!AKRW zCC-NQQyg?*{vxzuOt(NiR;Er)lEsS$a$1nh=ypO(*%`^O)m>i!dUnYAM4ixam<^&$t$#Nhps#e735Cqea zW)Lbhk{G4F{WLxPM*`Kyq5b+KaL|r1BsX9Xv0eYzuM)Bu{p-e~FD)OxM)VG>i!fc^ zRT~0_JPyaLHC_P~m0rbJN6$c5r06_(@f3_+c3ypvx(CA5lXv{wPz&d0+9}T2R)cVP zoXG*B+wgO3=}-BM+o2(;MpVDjDW(+@mP!|j$S-KnqL zhcgw^yL-w`L1lLR_?d!Q_^vv1+}N}qVe-(b30RNB$({9c?35E+g z>*Lmm_9&K2H$(B1D&=bZX#RfG)L12#MpI@1wVqpj@NShmJPhPP7oUD0*|+p~(GPHEqo%>ps02nw^B>PS zRz-LI!@g5G?J_95c9i=>ZHFfZTMvy}_nd}O|0%ZntbG1Dox5>m%LTamg=x@H%YF2t zBbQvdvYMf1_!?twhX%T;J1%rhsH4qdZgdigYrt*#CffDdE*RrCrqw0#6S!7gGkjq} z51ja-Zu9(#BHF?#qjgK( zVBa+S{`v(6={Bc2p9=RH_|`iotg|~CW}A3!IF`~xyH!ZD!)w~1YWmd8ETuwB%EYmQzHBcc9omP2&E1a+>l=^E2BrejRMm~Jt>{wC@b90cv2Ah4!l z4aJ&?H4;wG8o;~3;`r_2b`Vf4Z{$ABq$6#)hnHAw12<0Lj6J7mI#kFp zvNj(46B%B0O%`)x@WG4?Wq-QTK|e-^dLOdbKz7lo1HNuzSc0;V`WXka{J3edb|Yke z>Bxq$i##37afm_5#|E;CGaYa@0_sXNHjZ6{=x|*~FmXx3MzOPQ9cm_;EY88%DE*l9 zCDgq@O;!vlXmvRm8^_L`bk@E@I9)Eq#<8;=9WDlaLBKf>8^umobg1hH)tA1oLF`0B o2U>_e=k}!?Y!I6wbf88nJ;DeTnxG{l2ut*5ZcGppM=@vr0l7mg0RR91 literal 0 HcmV?d00001 diff --git a/statsmodels/tsa/vector_ar/tests/svar.do b/statsmodels/tsa/vector_ar/tests/svar.do new file mode 100644 index 0000000..bb67d63 --- /dev/null +++ b/statsmodels/tsa/vector_ar/tests/svar.do @@ -0,0 +1,19 @@ +insheet using "/home/skipper/statsmodels/statsmodels-skipper/scikits/statsmodels/datasets/macrodata/macrodata.csv", double clear + +gen qtrdate=yq(year,quarter) +format qtrdate %tq +tsset qtrdate + +gen lgdp = log(realgdp) +gen lcons = log(realcons) +gen linv = log(realinv) + +gen gdp = D.lgdp +gen cons = D.lcons +gen inv = D.linv + +matrix A = (1,0,0\.,1,0\.,.,1) +matrix B = (.,0,0\0,.,0\0,0,.) + +svar gdp cons inv, aeq(A) beq(B) lags(1/3) var + diff --git a/statsmodels/tsa/vector_ar/tests/svartest.R b/statsmodels/tsa/vector_ar/tests/svartest.R new file mode 100644 index 0000000..ca8dca7 --- /dev/null +++ b/statsmodels/tsa/vector_ar/tests/svartest.R @@ -0,0 +1,22 @@ +library("vars") + +#data <- read.csv("/home/skipper/statsmodels/statsmodels-skipper/scikits/statsmodels/datasets/macrodata/macrodata.csv") +#data <- read.csv("/home/bart/statsmodels/scikits/statsmodels/datasets/macrodata/macrodata.csv") +data <- read.csv("C:\\statsmodels\\statsmodels-bartbkr\\scikits\\statsmodels\\datasets\\macrodata\\macrodata.csv") +names <- colnames(data) +data <- log(data[c('realgdp','realcons','realinv')]) +data <- sapply(data, diff) +data = ts(data, start=c(1959,2), frequency=4) + +var <-VAR(data, p=3, type= "const") +amat <- matrix(0,3,3) +amat[1,1] <- 1 +amat[2,1] <- NA +amat[3,1] <- NA +amat[2,2] <- 1 +amat[3,2] <- NA +amat[3,3] <- 1 +bmat <- diag(3) +diag(bmat) <- NA +svar <- SVAR(var, estmethod = 'scoring', Bmat=bmat, Amat=amat) +plot(irf(svar, n.ahead=30, impulse = 'realgdp', runs=100)) diff --git a/statsmodels/tsa/vector_ar/tests/test_svar.py b/statsmodels/tsa/vector_ar/tests/test_svar.py new file mode 100644 index 0000000..0f0082f --- /dev/null +++ b/statsmodels/tsa/vector_ar/tests/test_svar.py @@ -0,0 +1,64 @@ +""" +Test SVAR estimation +""" + +import statsmodels.api as sm +from statsmodels.tsa.vector_ar.svar_model import SVAR +from numpy.testing import assert_almost_equal, assert_equal, assert_allclose +from .results import results_svar +import numpy as np +import numpy.testing as npt + +DECIMAL_6 = 6 +DECIMAL_5 = 5 +DECIMAL_4 = 4 + +class TestSVAR(object): + @classmethod + def setupClass(cls): + mdata = sm.datasets.macrodata.load().data + mdata = mdata[['realgdp','realcons','realinv']] + names = mdata.dtype.names + data = mdata.view((float,3)) + data = np.diff(np.log(data), axis=0) + A = np.asarray([[1, 0, 0],['E', 1, 0],['E', 'E', 1]]) + B = np.asarray([['E', 0, 0], [0, 'E', 0], [0, 0, 'E']]) + results = SVAR(data, svar_type='AB', A=A, B=B).fit(maxlags=3) + cls.res1 = results + #cls.res2 = results_svar.SVARdataResults() + from .results import results_svar_st + cls.res2 = results_svar_st.results_svar1_small + + + def _reformat(self, x): + return x[[1, 4, 7, 2, 5, 8, 3, 6, 9, 0], :].ravel("F") + + + def test_A(self): + assert_almost_equal(self.res1.A, self.res2.A, DECIMAL_4) + + + def test_B(self): + # see issue #3148, adding np.abs to make solution positive + # general case will need positive sqrt of covariance matrix + assert_almost_equal(np.abs(self.res1.B), self.res2.B, DECIMAL_4) + + + def test_basic(self): + res1 = self.res1 + res2 = self.res2 + assert_allclose(self._reformat(res1.params), res2.b_var, atol=1e-12) + bse_st = np.sqrt(np.diag(res2.V_var)) + assert_allclose(self._reformat(res1.bse), bse_st, atol=1e-12) + + + def test_llf_ic(self): + res1 = self.res1 + res2 = self.res2 + assert_allclose(res1.llf, res2.ll_var, atol=1e-12) + # different definition, missing constant term ? + corr_const = -8.51363119922803 + assert_allclose(res1.fpe, res2.fpe_var, atol=1e-12) + assert_allclose(res1.aic - corr_const, res2.aic_var, atol=1e-12) + assert_allclose(res1.bic - corr_const, res2.sbic_var, atol=1e-12) + assert_allclose(res1.hqic - corr_const, res2.hqic_var, atol=1e-12) diff --git a/statsmodels/tsa/vector_ar/tests/test_var.py b/statsmodels/tsa/vector_ar/tests/test_var.py new file mode 100644 index 0000000..427244e --- /dev/null +++ b/statsmodels/tsa/vector_ar/tests/test_var.py @@ -0,0 +1,645 @@ +""" +Test VAR Model +""" +from __future__ import print_function +# pylint: disable=W0612,W0231 +from statsmodels.compat.python import (iteritems, StringIO, lrange, BytesIO, + range) +from nose.tools import assert_raises +import nose +import os +import sys + +import numpy as np + +import statsmodels.api as sm +import statsmodels.tsa.vector_ar.util as util +import statsmodels.tools.data as data_util +from statsmodels.tsa.vector_ar.var_model import VAR + + +from numpy.testing import (assert_almost_equal, assert_equal, assert_, + assert_allclose) + +DECIMAL_12 = 12 +DECIMAL_6 = 6 +DECIMAL_5 = 5 +DECIMAL_4 = 4 +DECIMAL_3 = 3 +DECIMAL_2 = 2 + +class CheckVAR(object): + # just so pylint won't complain + res1 = None + res2 = None + + def test_params(self): + assert_almost_equal(self.res1.params, self.res2.params, DECIMAL_3) + + def test_neqs(self): + assert_equal(self.res1.neqs, self.res2.neqs) + + def test_nobs(self): + assert_equal(self.res1.avobs, self.res2.nobs) + + def test_df_eq(self): + assert_equal(self.res1.df_eq, self.res2.df_eq) + + def test_rmse(self): + results = self.res1.results + for i in range(len(results)): + assert_almost_equal(results[i].mse_resid**.5, + eval('self.res2.rmse_'+str(i+1)), DECIMAL_6) + + def test_rsquared(self): + results = self.res1.results + for i in range(len(results)): + assert_almost_equal(results[i].rsquared, + eval('self.res2.rsquared_'+str(i+1)), DECIMAL_3) + + def test_llf(self): + results = self.res1.results + assert_almost_equal(self.res1.llf, self.res2.llf, DECIMAL_2) + for i in range(len(results)): + assert_almost_equal(results[i].llf, + eval('self.res2.llf_'+str(i+1)), DECIMAL_2) + + def test_aic(self): + assert_almost_equal(self.res1.aic, self.res2.aic) + + def test_bic(self): + assert_almost_equal(self.res1.bic, self.res2.bic) + + def test_hqic(self): + assert_almost_equal(self.res1.hqic, self.res2.hqic) + + def test_fpe(self): + assert_almost_equal(self.res1.fpe, self.res2.fpe) + + def test_detsig(self): + assert_almost_equal(self.res1.detomega, self.res2.detsig) + + def test_bse(self): + assert_almost_equal(self.res1.bse, self.res2.bse, DECIMAL_4) + +def get_macrodata(): + data = sm.datasets.macrodata.load().data[['realgdp','realcons','realinv']] + names = data.dtype.names + nd = data.view((float,3), type=np.ndarray) + nd = np.diff(np.log(nd), axis=0) + return nd.ravel().view(data.dtype, type=np.ndarray) + +def generate_var(): + from rpy2.robjects import r + import pandas.rpy.common as prp + r.source('tests/var.R') + return prp.convert_robj(r['result'], use_pandas=False) + +def write_generate_var(): + result = generate_var() + np.savez('tests/results/vars_results.npz', **result) + +class RResults(object): + """ + Simple interface with results generated by "vars" package in R. + """ + + def __init__(self): + #data = np.load(resultspath + 'vars_results.npz') + from .results.results_var_data import var_results + data = var_results.__dict__ + + self.names = data['coefs'].dtype.names + self.params = data['coefs'].view((float, len(self.names)), type=np.ndarray) + self.stderr = data['stderr'].view((float, len(self.names)), type=np.ndarray) + + self.irf = data['irf'].item() + self.orth_irf = data['orthirf'].item() + + self.nirfs = int(data['nirfs'][0]) + self.nobs = int(data['obs'][0]) + self.totobs = int(data['totobs'][0]) + + crit = data['crit'].item() + self.aic = crit['aic'][0] + self.sic = self.bic = crit['sic'][0] + self.hqic = crit['hqic'][0] + self.fpe = crit['fpe'][0] + + self.detomega = data['detomega'][0] + self.loglike = data['loglike'][0] + + self.nahead = int(data['nahead'][0]) + self.ma_rep = data['phis'] + + self.causality = data['causality'] + +def close_plots(): + try: + import matplotlib.pyplot as plt + plt.close('all') + except ImportError: + pass + +_orig_stdout = None + +def setup_module(): + global _orig_stdout + _orig_stdout = sys.stdout + sys.stdout = StringIO() + +def teardown_module(): + sys.stdout = _orig_stdout + close_plots() + +def have_matplotlib(): + try: + import matplotlib + return True + except ImportError: + return False + +class CheckIRF(object): + + ref = None; res = None; irf = None + k = None + + #--------------------------------------------------------------------------- + # IRF tests + + def test_irf_coefs(self): + self._check_irfs(self.irf.irfs, self.ref.irf) + self._check_irfs(self.irf.orth_irfs, self.ref.orth_irf) + + + def _check_irfs(self, py_irfs, r_irfs): + for i, name in enumerate(self.res.names): + ref_irfs = r_irfs[name].view((float, self.k), type=np.ndarray) + res_irfs = py_irfs[:, :, i] + assert_almost_equal(ref_irfs, res_irfs) + + + def test_plot_irf(self): + if not have_matplotlib(): + raise nose.SkipTest + + import matplotlib.pyplot as plt + self.irf.plot() + plt.close('all') + self.irf.plot(plot_stderr=False) + plt.close('all') + + self.irf.plot(impulse=0, response=1) + plt.close('all') + self.irf.plot(impulse=0) + plt.close('all') + self.irf.plot(response=0) + plt.close('all') + + self.irf.plot(orth=True) + plt.close('all') + self.irf.plot(impulse=0, response=1, orth=True) + close_plots() + + + def test_plot_cum_effects(self): + if not have_matplotlib(): + raise nose.SkipTest + # I need close after every plot to avoid segfault, see #3158 + import matplotlib.pyplot as plt + plt.close('all') + self.irf.plot_cum_effects() + plt.close('all') + self.irf.plot_cum_effects(plot_stderr=False) + plt.close('all') + self.irf.plot_cum_effects(impulse=0, response=1) + plt.close('all') + + self.irf.plot_cum_effects(orth=True) + plt.close('all') + self.irf.plot_cum_effects(impulse=0, response=1, orth=True) + close_plots() + + +class CheckFEVD(object): + + fevd = None + + #--------------------------------------------------------------------------- + # FEVD tests + + def test_fevd_plot(self): + if not have_matplotlib(): + raise nose.SkipTest + + self.fevd.plot() + close_plots() + + def test_fevd_repr(self): + self.fevd + + def test_fevd_summary(self): + self.fevd.summary() + + def test_fevd_cov(self): + # test does not crash + # not implemented + # covs = self.fevd.cov() + + pass + +class TestVARResults(CheckIRF, CheckFEVD): + + @classmethod + def setupClass(cls): + cls.p = 2 + + cls.data = get_macrodata() + cls.model = VAR(cls.data) + cls.names = cls.model.endog_names + + cls.ref = RResults() + cls.k = len(cls.ref.names) + cls.res = cls.model.fit(maxlags=cls.p) + + cls.irf = cls.res.irf(cls.ref.nirfs) + cls.nahead = cls.ref.nahead + + cls.fevd = cls.res.fevd() + + def test_constructor(self): + # make sure this works with no names + ndarr = self.data.view((float, 3), type=np.ndarray) + model = VAR(ndarr) + res = model.fit(self.p) + + def test_names(self): + assert_equal(self.model.endog_names, self.ref.names) + + model2 = VAR(self.data) + assert_equal(model2.endog_names, self.ref.names) + + def test_get_eq_index(self): + assert(type(self.res.names) is list) + + for i, name in enumerate(self.names): + idx = self.res.get_eq_index(i) + idx2 = self.res.get_eq_index(name) + + assert_equal(idx, i) + assert_equal(idx, idx2) + + assert_raises(Exception, self.res.get_eq_index, 'foo') + + def test_repr(self): + # just want this to work + foo = str(self.res) + bar = repr(self.res) + + def test_params(self): + assert_almost_equal(self.res.params, self.ref.params, DECIMAL_3) + + def test_cov_params(self): + # do nothing for now + self.res.cov_params + + def test_cov_ybar(self): + self.res.cov_ybar() + + def test_tstat(self): + self.res.tvalues + + def test_pvalues(self): + self.res.pvalues + + def test_summary(self): + summ = self.res.summary() + + + def test_detsig(self): + assert_almost_equal(self.res.detomega, self.ref.detomega) + + def test_aic(self): + assert_almost_equal(self.res.aic, self.ref.aic) + + def test_bic(self): + assert_almost_equal(self.res.bic, self.ref.bic) + + def test_hqic(self): + assert_almost_equal(self.res.hqic, self.ref.hqic) + + def test_fpe(self): + assert_almost_equal(self.res.fpe, self.ref.fpe) + + def test_lagorder_select(self): + ics = ['aic', 'fpe', 'hqic', 'bic'] + + for ic in ics: + res = self.model.fit(maxlags=10, ic=ic, verbose=True) + + assert_raises(Exception, self.model.fit, ic='foo') + + def test_nobs(self): + assert_equal(self.res.nobs, self.ref.nobs) + + def test_stderr(self): + assert_almost_equal(self.res.stderr, self.ref.stderr, DECIMAL_4) + + def test_loglike(self): + assert_almost_equal(self.res.llf, self.ref.loglike) + + def test_ma_rep(self): + ma_rep = self.res.ma_rep(self.nahead) + assert_almost_equal(ma_rep, self.ref.ma_rep) + + #-------------------------------------------------- + # Lots of tests to make sure stuff works...need to check correctness + + def test_causality(self): + causedby = self.ref.causality['causedby'] + + for i, name in enumerate(self.names): + variables = self.names[:i] + self.names[i + 1:] + result = self.res.test_causality(name, variables, kind='f') + assert_almost_equal(result['pvalue'], causedby[i], DECIMAL_4) + + rng = lrange(self.k) + rng.remove(i) + result2 = self.res.test_causality(i, rng, kind='f') + assert_almost_equal(result['pvalue'], result2['pvalue'], DECIMAL_12) + + # make sure works + result = self.res.test_causality(name, variables, kind='wald') + + # corner cases + _ = self.res.test_causality(self.names[0], self.names[1]) + _ = self.res.test_causality(0, 1) + + assert_raises(Exception,self.res.test_causality, 0, 1, kind='foo') + + def test_select_order(self): + result = self.model.fit(10, ic='aic', verbose=True) + result = self.model.fit(10, ic='fpe', verbose=True) + + # bug + model = VAR(self.model.endog) + model.select_order() + + def test_is_stable(self): + # may not necessarily be true for other datasets + assert(self.res.is_stable(verbose=True)) + + def test_acf(self): + # test that it works...for now + acfs = self.res.acf(10) + + # defaults to nlags=lag_order + acfs = self.res.acf() + assert(len(acfs) == self.p + 1) + + def test_acorr(self): + acorrs = self.res.acorr(10) + + def test_forecast(self): + point = self.res.forecast(self.res.y[-5:], 5) + + def test_forecast_interval(self): + y = self.res.y[:-self.p:] + point, lower, upper = self.res.forecast_interval(y, 5) + + def test_plot_sim(self): + if not have_matplotlib(): + raise nose.SkipTest + + self.res.plotsim(steps=100) + close_plots() + + def test_plot(self): + if not have_matplotlib(): + raise nose.SkipTest + + self.res.plot() + close_plots() + + def test_plot_acorr(self): + if not have_matplotlib(): + raise nose.SkipTest + + self.res.plot_acorr() + close_plots() + + def test_plot_forecast(self): + if not have_matplotlib(): + raise nose.SkipTest + + self.res.plot_forecast(5) + close_plots() + + def test_reorder(self): + #manually reorder + data = self.data.view((float,3), type=np.ndarray) + names = self.names + data2 = np.append(np.append(data[:,2,None], data[:,0,None], axis=1), data[:,1,None], axis=1) + names2 = [] + names2.append(names[2]) + names2.append(names[0]) + names2.append(names[1]) + res2 = VAR(data2).fit(maxlags=self.p) + + #use reorder function + res3 = self.res.reorder(['realinv','realgdp', 'realcons']) + + #check if the main results match + assert_almost_equal(res2.params, res3.params) + assert_almost_equal(res2.sigma_u, res3.sigma_u) + assert_almost_equal(res2.bic, res3.bic) + assert_almost_equal(res2.stderr, res3.stderr) + + def test_pickle(self): + fh = BytesIO() + #test wrapped results load save pickle + self.res.save(fh) + fh.seek(0,0) + res_unpickled = self.res.__class__.load(fh) + assert_(type(res_unpickled) is type(self.res)) + + +class E1_Results(object): + """ + Results from Lutkepohl (2005) using E2 dataset + """ + + def __init__(self): + # Lutkepohl p. 120 results + + # I asked the author about these results and there is probably rounding + # error in the book, so I adjusted these test results to match what is + # coming out of the Python (double-checked) calculations + self.irf_stderr = np.array([[[.125, 0.546, 0.664 ], + [0.032, 0.139, 0.169], + [0.026, 0.112, 0.136]], + + [[0.129, 0.547, 0.663], + [0.032, 0.134, 0.163], + [0.026, 0.108, 0.131]], + + [[0.084, .385, .479], + [.016, .079, .095], + [.016, .078, .103]]]) + + self.cum_irf_stderr = np.array([[[.125, 0.546, 0.664 ], + [0.032, 0.139, 0.169], + [0.026, 0.112, 0.136]], + + [[0.149, 0.631, 0.764], + [0.044, 0.185, 0.224], + [0.033, 0.140, 0.169]], + + [[0.099, .468, .555], + [.038, .170, .205], + [.033, .150, .185]]]) + + self.lr_stderr = np.array([[.134, .645, .808], + [.048, .230, .288], + [.043, .208, .260]]) + +basepath = os.path.split(sm.__file__)[0] +resultspath = basepath + '/tsa/vector_ar/tests/results/' + +def get_lutkepohl_data(name='e2'): + lut_data = basepath + '/tsa/vector_ar/data/' + path = lut_data + '%s.dat' % name + + return util.parse_lutkepohl_data(path) + +def test_lutkepohl_parse(): + files = ['e%d' % i for i in range(1, 7)] + + for f in files: + get_lutkepohl_data(f) + +class TestVARResultsLutkepohl(object): + """ + Verify calculations using results from Lutkepohl's book + """ + + def __init__(self): + self.p = 2 + sdata, dates = get_lutkepohl_data('e1') + + data = data_util.struct_to_ndarray(sdata) + adj_data = np.diff(np.log(data), axis=0) + # est = VAR(adj_data, p=2, dates=dates[1:], names=names) + + self.model = VAR(adj_data[:-16], dates=dates[1:-16], freq='Q') + self.res = self.model.fit(maxlags=self.p) + self.irf = self.res.irf(10) + self.lut = E1_Results() + + def test_approx_mse(self): + # 3.5.18, p. 99 + mse2 = np.array([[25.12, .580, 1.300], + [.580, 1.581, .586], + [1.300, .586, 1.009]]) * 1e-4 + + assert_almost_equal(mse2, self.res.forecast_cov(3)[1], + DECIMAL_3) + + def test_irf_stderr(self): + irf_stderr = self.irf.stderr(orth=False) + for i in range(1, 1 + len(self.lut.irf_stderr)): + assert_almost_equal(np.round(irf_stderr[i], 3), + self.lut.irf_stderr[i-1]) + + def test_cum_irf_stderr(self): + stderr = self.irf.cum_effect_stderr(orth=False) + for i in range(1, 1 + len(self.lut.cum_irf_stderr)): + assert_almost_equal(np.round(stderr[i], 3), + self.lut.cum_irf_stderr[i-1]) + + def test_lr_effect_stderr(self): + stderr = self.irf.lr_effect_stderr(orth=False) + orth_stderr = self.irf.lr_effect_stderr(orth=True) + assert_almost_equal(np.round(stderr, 3), self.lut.lr_stderr) + +def test_get_trendorder(): + results = { + 'c' : 1, + 'nc' : 0, + 'ct' : 2, + 'ctt' : 3 + } + + for t, trendorder in iteritems(results): + assert(util.get_trendorder(t) == trendorder) + + +def test_var_constant(): + # see 2043 + import datetime + from pandas import DataFrame, DatetimeIndex + + series = np.array([[2., 2.], [1, 2.], [1, 2.], [1, 2.], [1., 2.]]) + data = DataFrame(series) + + d = datetime.datetime.now() + delta = datetime.timedelta(days=1) + index = [] + for i in range(data.shape[0]): + index.append(d) + d += delta + + data.index = DatetimeIndex(index) + + model = VAR(data) + assert_raises(ValueError, model.fit, 1) + +def test_var_trend(): + # see 2271 + data = get_macrodata().view((float,3), type=np.ndarray) + + model = sm.tsa.VAR(data) + results = model.fit(4) #, trend = 'c') + irf = results.irf(10) + + + data_nc = data - data.mean(0) + model_nc = sm.tsa.VAR(data_nc) + results_nc = model_nc.fit(4, trend = 'nc') + assert_raises(ValueError, model.fit, 4, trend='t') + + +def test_irf_trend(): + # test for irf with different trend see #1636 + # this is a rough comparison by adding trend or subtracting mean to data + # to get similar AR coefficients and IRF + data = get_macrodata().view((float,3), type=np.ndarray) + + model = sm.tsa.VAR(data) + results = model.fit(4) #, trend = 'c') + irf = results.irf(10) + + + data_nc = data - data.mean(0) + model_nc = sm.tsa.VAR(data_nc) + results_nc = model_nc.fit(4, trend = 'nc') + irf_nc = results_nc.irf(10) + + assert_allclose(irf_nc.stderr()[1:4], irf.stderr()[1:4], rtol=0.01) + + trend = 1e-3 * np.arange(len(data)) / (len(data) - 1) + # for pandas version, currently not used, if data is a pd.DataFrame + #data_t = pd.DataFrame(data.values + trend[:,None], index=data.index, columns=data.columns) + data_t = data + trend[:,None] + + model_t = sm.tsa.VAR(data_t) + results_t = model_t.fit(4, trend = 'ct') + irf_t = results_t.irf(10) + + assert_allclose(irf_t.stderr()[1:4], irf.stderr()[1:4], rtol=0.03) + + +if __name__ == '__main__': + import nose + nose.runmodule(argv=[__file__,'-vvs','-x','--pdb', '--pdb-failure'], + exit=False) diff --git a/statsmodels/tsa/vector_ar/tests/var.R b/statsmodels/tsa/vector_ar/tests/var.R new file mode 100644 index 0000000..486f050 --- /dev/null +++ b/statsmodels/tsa/vector_ar/tests/var.R @@ -0,0 +1,97 @@ +library(vars) + +data <- read.csv('/home/wesm/code/statsmodels/scikits/statsmodels/datasets/macrodata/macrodata.csv') +names <- colnames(data) +data <- log(data[c('realgdp', 'realcons', 'realinv')]) +data <- sapply(data, diff) + +reorder.coefs <- function(coefs) { + n <- dim(coefs)[1] + # put constant first... + coefs[c(n, seq(1:(n-1))),] +} + +extract.mat <- function(lst, i) { + sapply(lst, function(x) x[,i]) +} + +get.coefs <- function(est) { + reorder.coefs(extract.mat(coef(est), 1)) +} + +get.stderr <- function(est) { + reorder.coefs(extract.mat(coef(est), 2)) +} + +reorder.phi <- function(phis) { + # Puts things in more proper C order for comparison purposes in Python + + k <- dim(phis)[1] + n <- dim(phis)[3] + + arr <- array(dim=c(n, k, k)) + + for (i in 1:n) + arr[i,,] <- phis[,,i] + + arr +} + +causality.matrix <- function(est) { + names <- colnames(est$y) + K <- est$K + + # p-values + result <- matrix(0, nrow=K, ncol=) + for (i in 1:K) { + ## # causes + ## result[i,1] <- causality(est, cause=names[i])$Granger$p.value + + # caused by others + result[i,1] <- causality(est, cause=names[-i])$Granger$p.value + } + + colnames(result) <- c("causedby") + + result +} + +get.results <- function(data, p=1) { + sel <- VARselect(data, p) # do at most p + + est <- VAR(data, p=p) + + K <- ncol(data) + + nirfs <- 5 + orth.irf <- irf(est, n.ahead=nirfs, boot=F)$irf + irf <- irf(est, n.ahead=nirfs, boot=F, orth=F)$irf + + crit <- t(sel$criteria) + colnames(crit) <- c('aic', 'hqic', 'sic', 'fpe') + + resid <- resid(est) + detomega <- det(crossprod(resid) / (est$obs - K * p - 1)) + + n.ahead <- 5 + + list(coefs=get.coefs(est), + stderr=get.stderr(est), + obs=est$obs, + totobs=est$totobs, + type=est$type, + crit=as.list(crit[p,]), + nirfs=nirfs, + orthirf=orth.irf, + irf=irf, + causality=causality.matrix(est), + detomega=detomega, + loglike=as.numeric(logLik(est)), + nahead=n.ahead, + phis=Phi(est, n.ahead)) +} + +k <- dim(data)[2] +result <- get.results(data, p=2) + +est = VAR(data, p=2) diff --git a/statsmodels/tsa/vector_ar/util.py b/statsmodels/tsa/vector_ar/util.py new file mode 100644 index 0000000..eaaf02e --- /dev/null +++ b/statsmodels/tsa/vector_ar/util.py @@ -0,0 +1,243 @@ +""" +Miscellaneous utility code for VAR estimation +""" +from statsmodels.compat.python import range, string_types, asbytes, long +import numpy as np +import scipy.stats as stats +import scipy.linalg.decomp as decomp + +import statsmodels.tsa.tsatools as tsa + +#------------------------------------------------------------------------------- +# Auxiliary functions for estimation +def get_var_endog(y, lags, trend='c', has_constant='skip'): + """ + Make predictor matrix for VAR(p) process + + Z := (Z_0, ..., Z_T).T (T x Kp) + Z_t = [1 y_t y_{t-1} ... y_{t - p + 1}] (Kp x 1) + + Ref: Lutkepohl p.70 (transposed) + + has_constant can be 'raise', 'add', or 'skip'. See add_constant. + """ + nobs = len(y) + # Ravel C order, need to put in descending order + Z = np.array([y[t-lags : t][::-1].ravel() for t in range(lags, nobs)]) + + # Add constant, trend, etc. + if trend != 'nc': + Z = tsa.add_trend(Z, prepend=True, trend=trend, + has_constant=has_constant) + + return Z + +def get_trendorder(trend='c'): + # Handle constant, etc. + if trend == 'c': + trendorder = 1 + elif trend == 'nc': + trendorder = 0 + elif trend == 'ct': + trendorder = 2 + elif trend == 'ctt': + trendorder = 3 + return trendorder + +def make_lag_names(names, lag_order, trendorder=1): + """ + Produce list of lag-variable names. Constant / trends go at the beginning + + Examples + -------- + >>> make_lag_names(['foo', 'bar'], 2, 1) + ['const', 'L1.foo', 'L1.bar', 'L2.foo', 'L2.bar'] + + """ + lag_names = [] + if isinstance(names, string_types): + names = [names] + + # take care of lagged endogenous names + for i in range(1, lag_order + 1): + for name in names: + if not isinstance(name, string_types): + name = str(name) # will need consistent unicode handling + lag_names.append('L'+str(i)+'.'+name) + + # handle the constant name + if trendorder != 0: + lag_names.insert(0, 'const') + if trendorder > 1: + lag_names.insert(0, 'trend') + if trendorder > 2: + lag_names.insert(0, 'trend**2') + + return lag_names + +def comp_matrix(coefs): + """ + Return compansion matrix for the VAR(1) representation for a VAR(p) process + (companion form) + + A = [A_1 A_2 ... A_p-1 A_p + I_K 0 0 0 + 0 I_K ... 0 0 + 0 ... I_K 0] + """ + p, k, k2 = coefs.shape + assert(k == k2) + + kp = k * p + + result = np.zeros((kp, kp)) + result[:k] = np.concatenate(coefs, axis=1) + + # Set I_K matrices + if p > 1: + result[np.arange(k, kp), np.arange(kp-k)] = 1 + + return result + +#------------------------------------------------------------------------------- +# Miscellaneous stuff + +def parse_lutkepohl_data(path): # pragma: no cover + """ + Parse data files from Lutkepohl (2005) book + + Source for data files: www.jmulti.de + """ + + from collections import deque + from datetime import datetime + import pandas + import pandas.core.datetools as dt + import re + + regex = re.compile(asbytes('<(.*) (\w)([\d]+)>.*')) + with open(path, 'rb') as f: + lines = deque(f) + + to_skip = 0 + while asbytes('*/') not in lines.popleft(): + #while '*/' not in lines.popleft(): + to_skip += 1 + + while True: + to_skip += 1 + line = lines.popleft() + m = regex.match(line) + if m: + year, freq, start_point = m.groups() + break + + data = np.genfromtxt(path, names=True, skip_header=to_skip+1) + + n = len(data) + + # generate the corresponding date range (using pandas for now) + start_point = int(start_point) + year = int(year) + + offsets = { + asbytes('Q') : dt.BQuarterEnd(), + asbytes('M') : dt.BMonthEnd(), + asbytes('A') : dt.BYearEnd() + } + + # create an instance + offset = offsets[freq] + + inc = offset * (start_point - 1) + start_date = offset.rollforward(datetime(year, 1, 1)) + inc + + offset = offsets[freq] + from pandas import DatetimeIndex # pylint: disable=E0611 + date_range = DatetimeIndex(start=start_date, freq=offset, periods=n) + + return data, date_range + + +def get_logdet(m): + from statsmodels.tools.linalg import logdet_symm + return logdet_symm(m) + + +get_logdet = np.deprecate(get_logdet, + "statsmodels.tsa.vector_ar.util.get_logdet", + "statsmodels.tools.linalg.logdet_symm", + "get_logdet is deprecated and will be removed in " + "0.8.0") + + +def norm_signif_level(alpha=0.05): + return stats.norm.ppf(1 - alpha / 2) + + +def acf_to_acorr(acf): + diag = np.diag(acf[0]) + # numpy broadcasting sufficient + return acf / np.sqrt(np.outer(diag, diag)) + + +def varsim(coefs, intercept, sig_u, steps=100, initvalues=None, seed=None): + """ + Simulate simple VAR(p) process with known coefficients, intercept, white + noise covariance, etc. + """ + rs = np.random.RandomState(seed=seed) + rmvnorm = rs.multivariate_normal + p, k, k = coefs.shape + ugen = rmvnorm(np.zeros(len(sig_u)), sig_u, steps) + result = np.zeros((steps, k)) + result[p:] = intercept + ugen[p:] + + # add in AR terms + for t in range(p, steps): + ygen = result[t] + for j in range(p): + ygen += np.dot(coefs[j], result[t-j-1]) + + return result + +def get_index(lst, name): + try: + result = lst.index(name) + except Exception: + if not isinstance(name, (int, long)): + raise + result = name + return result + #method used repeatedly in Sims-Zha error bands +def eigval_decomp(sym_array): + """ + Returns + ------- + W: array of eigenvectors + eigva: list of eigenvalues + k: largest eigenvector + """ + #check if symmetric, do not include shock period + eigva, W = decomp.eig(sym_array, left=True, right=False) + k = np.argmax(eigva) + return W, eigva, k + +def vech(A): + """ + Simple vech operator + Returns + ------- + vechvec: vector of all elements on and below diagonal + """ + + length=A.shape[1] + vechvec=[] + for i in range(length): + b=i + while b < length: + vechvec.append(A[b,i]) + b=b+1 + vechvec=np.asarray(vechvec) + return vechvec + diff --git a/statsmodels/tsa/vector_ar/var_model.py b/statsmodels/tsa/vector_ar/var_model.py new file mode 100644 index 0000000..6844c79 --- /dev/null +++ b/statsmodels/tsa/vector_ar/var_model.py @@ -0,0 +1,1698 @@ +""" +Vector Autoregression (VAR) processes + +References +---------- +Lutkepohl (2005) New Introduction to Multiple Time Series Analysis +""" + +from __future__ import division, print_function +from statsmodels.compat.python import (range, lrange, string_types, StringIO, iteritems, + cStringIO) + +from collections import defaultdict + +import numpy as np +import numpy.linalg as npl +from numpy.linalg import cholesky as chol, solve +import scipy.stats as stats +import scipy.linalg as L + +from statsmodels.tools.decorators import cache_readonly +from statsmodels.tools.tools import chain_dot +from statsmodels.tools.linalg import logdet_symm +from statsmodels.tsa.tsatools import vec, unvec + +from statsmodels.tsa.vector_ar.irf import IRAnalysis +from statsmodels.tsa.vector_ar.output import VARSummary + +import statsmodels.tsa.tsatools as tsa +import statsmodels.tsa.vector_ar.output as output +import statsmodels.tsa.vector_ar.plotting as plotting +import statsmodels.tsa.vector_ar.util as util +import statsmodels.tsa.base.tsa_model as tsbase +import statsmodels.base.wrapper as wrap + +mat = np.array + +#------------------------------------------------------------------------------- +# VAR process routines + +def ma_rep(coefs, maxn=10): + r""" + MA(\infty) representation of VAR(p) process + + Parameters + ---------- + coefs : ndarray (p x k x k) + maxn : int + Number of MA matrices to compute + + Notes + ----- + VAR(p) process as + + .. math:: y_t = A_1 y_{t-1} + \ldots + A_p y_{t-p} + u_t + + can be equivalently represented as + + .. math:: y_t = \mu + \sum_{i=0}^\infty \Phi_i u_{t-i} + + e.g. can recursively compute the \Phi_i matrices with \Phi_0 = I_k + + Returns + ------- + phis : ndarray (maxn + 1 x k x k) + """ + p, k, k = coefs.shape + phis = np.zeros((maxn+1, k, k)) + phis[0] = np.eye(k) + + # recursively compute Phi matrices + for i in range(1, maxn + 1): + for j in range(1, i+1): + if j > p: + break + + phis[i] += np.dot(phis[i-j], coefs[j-1]) + + return phis + +def is_stable(coefs, verbose=False): + """ + Determine stability of VAR(p) system by examining the eigenvalues of the + VAR(1) representation + + Parameters + ---------- + coefs : ndarray (p x k x k) + + Returns + ------- + is_stable : bool + """ + A_var1 = util.comp_matrix(coefs) + eigs = np.linalg.eigvals(A_var1) + + if verbose: + print('Eigenvalues of VAR(1) rep') + for val in np.abs(eigs): + print(val) + + return (np.abs(eigs) <= 1).all() + +def var_acf(coefs, sig_u, nlags=None): + """ + Compute autocovariance function ACF_y(h) up to nlags of stable VAR(p) + process + + Parameters + ---------- + coefs : ndarray (p x k x k) + Coefficient matrices A_i + sig_u : ndarray (k x k) + Covariance of white noise process u_t + nlags : int, optional + Defaults to order p of system + + Notes + ----- + Ref: Lutkepohl p.28-29 + + Returns + ------- + acf : ndarray, (p, k, k) + """ + p, k, _ = coefs.shape + if nlags is None: + nlags = p + + # p x k x k, ACF for lags 0, ..., p-1 + result = np.zeros((nlags + 1, k, k)) + result[:p] = _var_acf(coefs, sig_u) + + # yule-walker equations + for h in range(p, nlags + 1): + # compute ACF for lag=h + # G(h) = A_1 G(h-1) + ... + A_p G(h-p) + + for j in range(p): + result[h] += np.dot(coefs[j], result[h-j-1]) + + return result + +def _var_acf(coefs, sig_u): + """ + Compute autocovariance function ACF_y(h) for h=1,...,p + + Notes + ----- + Lutkepohl (2005) p.29 + """ + p, k, k2 = coefs.shape + assert(k == k2) + + A = util.comp_matrix(coefs) + # construct VAR(1) noise covariance + SigU = np.zeros((k*p, k*p)) + SigU[:k,:k] = sig_u + + # vec(ACF) = (I_(kp)^2 - kron(A, A))^-1 vec(Sigma_U) + vecACF = L.solve(np.eye((k*p)**2) - np.kron(A, A), vec(SigU)) + + acf = unvec(vecACF) + acf = acf[:k].T.reshape((p, k, k)) + + return acf + +def forecast(y, coefs, intercept, steps): + """ + Produce linear MSE forecast + + Parameters + ---------- + y : + coefs : + intercept : + steps : + + Returns + ------- + forecasts : ndarray (steps x neqs) + + Notes + ----- + Lutkepohl p. 37 + + Also used by DynamicVAR class + """ + p = len(coefs) + k = len(coefs[0]) + # initial value + forcs = np.zeros((steps, k)) + intercept + + # h=0 forecast should be latest observation + # forcs[0] = y[-1] + + # make indices easier to think about + for h in range(1, steps + 1): + # y_t(h) = intercept + sum_1^p A_i y_t_(h-i) + f = forcs[h - 1] + for i in range(1, p + 1): + # slightly hackish + if h - i <= 0: + # e.g. when h=1, h-1 = 0, which is y[-1] + prior_y = y[h - i - 1] + else: + # e.g. when h=2, h-1=1, which is forcs[0] + prior_y = forcs[h - i - 1] + + # i=1 is coefs[0] + f = f + np.dot(coefs[i - 1], prior_y) + forcs[h - 1] = f + + return forcs + +def forecast_cov(ma_coefs, sig_u, steps): + """ + Compute theoretical forecast error variance matrices + + Parameters + ---------- + + Returns + ------- + forc_covs : ndarray (steps x neqs x neqs) + """ + k = len(sig_u) + forc_covs = np.zeros((steps, k, k)) + + prior = np.zeros((k, k)) + for h in range(steps): + # Sigma(h) = Sigma(h-1) + Phi Sig_u Phi' + phi = ma_coefs[h] + var = chain_dot(phi, sig_u, phi.T) + forc_covs[h] = prior = prior + var + + return forc_covs + +def var_loglike(resid, omega, nobs): + r""" + Returns the value of the VAR(p) log-likelihood. + + Parameters + ---------- + resid : ndarray (T x K) + omega : ndarray + Sigma hat matrix. Each element i,j is the average product of the + OLS residual for variable i and the OLS residual for variable j or + np.dot(resid.T,resid)/nobs. There should be no correction for the + degrees of freedom. + nobs : int + + Returns + ------- + llf : float + The value of the loglikelihood function for a VAR(p) model + + Notes + ----- + The loglikelihood function for the VAR(p) is + + .. math:: + + -\left(\frac{T}{2}\right) + \left(\ln\left|\Omega\right|-K\ln\left(2\pi\right)-K\right) + """ + logdet = logdet_symm(np.asarray(omega)) + neqs = len(omega) + part1 = - (nobs * neqs / 2) * np.log(2 * np.pi) + part2 = - (nobs / 2) * (logdet + neqs) + return part1 + part2 + +def _reordered(self, order): + #Create new arrays to hold rearranged results from .fit() + endog = self.endog + endog_lagged = self.endog_lagged + params = self.params + sigma_u = self.sigma_u + names = self.names + k_ar = self.k_ar + endog_new = np.zeros([np.size(endog,0),np.size(endog,1)]) + endog_lagged_new = np.zeros([np.size(endog_lagged,0), np.size(endog_lagged,1)]) + params_new_inc, params_new = [np.zeros([np.size(params,0), np.size(params,1)]) + for i in range(2)] + sigma_u_new_inc, sigma_u_new = [np.zeros([np.size(sigma_u,0), np.size(sigma_u,1)]) + for i in range(2)] + num_end = len(self.params[0]) + names_new = [] + + #Rearrange elements and fill in new arrays + k = self.k_trend + for i, c in enumerate(order): + endog_new[:,i] = self.endog[:,c] + if k > 0: + params_new_inc[0,i] = params[0,i] + endog_lagged_new[:,0] = endog_lagged[:,0] + for j in range(k_ar): + params_new_inc[i+j*num_end+k,:] = self.params[c+j*num_end+k,:] + endog_lagged_new[:,i+j*num_end+k] = endog_lagged[:,c+j*num_end+k] + sigma_u_new_inc[i,:] = sigma_u[c,:] + names_new.append(names[c]) + for i, c in enumerate(order): + params_new[:,i] = params_new_inc[:,c] + sigma_u_new[:,i] = sigma_u_new_inc[:,c] + + return VARResults(endog=endog_new, endog_lagged=endog_lagged_new, + params=params_new, sigma_u=sigma_u_new, + lag_order=self.k_ar, model=self.model, + trend='c', names=names_new, dates=self.dates) + +#------------------------------------------------------------------------------- +# VARProcess class: for known or unknown VAR process + +class VAR(tsbase.TimeSeriesModel): + r""" + Fit VAR(p) process and do lag order selection + + .. math:: y_t = A_1 y_{t-1} + \ldots + A_p y_{t-p} + u_t + + Parameters + ---------- + endog : array-like + 2-d endogenous response variable. The independent variable. + dates : array-like + must match number of rows of endog + + References + ---------- + Lutkepohl (2005) New Introduction to Multiple Time Series Analysis + """ + def __init__(self, endog, dates=None, freq=None, missing='none'): + super(VAR, self).__init__(endog, None, dates, freq, missing=missing) + if self.endog.ndim == 1: + raise ValueError("Only gave one variable to VAR") + self.y = self.endog #keep alias for now + self.neqs = self.endog.shape[1] + + def _get_predict_start(self, start, k_ar): + if start is None: + start = k_ar + return super(VAR, self)._get_predict_start(start) + + def predict(self, params, start=None, end=None, lags=1, trend='c'): + """ + Returns in-sample predictions or forecasts + """ + start = self._get_predict_start(start, lags) + end, out_of_sample = self._get_predict_end(end) + + if end < start: + raise ValueError("end is before start") + if end == start + out_of_sample: + return np.array([]) + + k_trend = util.get_trendorder(trend) + k = self.neqs + k_ar = lags + + predictedvalues = np.zeros((end + 1 - start + out_of_sample, k)) + if k_trend != 0: + intercept = params[:k_trend] + predictedvalues += intercept + + y = self.y + X = util.get_var_endog(y, lags, trend=trend, has_constant='raise') + fittedvalues = np.dot(X, params) + + fv_start = start - k_ar + pv_end = min(len(predictedvalues), len(fittedvalues) - fv_start) + fv_end = min(len(fittedvalues), end-k_ar+1) + predictedvalues[:pv_end] = fittedvalues[fv_start:fv_end] + + if not out_of_sample: + return predictedvalues + + # fit out of sample + y = y[-k_ar:] + coefs = params[k_trend:].reshape((k_ar, k, k)).swapaxes(1,2) + predictedvalues[pv_end:] = forecast(y, coefs, intercept, out_of_sample) + return predictedvalues + + def fit(self, maxlags=None, method='ols', ic=None, trend='c', + verbose=False): + """ + Fit the VAR model + + Parameters + ---------- + maxlags : int + Maximum number of lags to check for order selection, defaults to + 12 * (nobs/100.)**(1./4), see select_order function + method : {'ols'} + Estimation method to use + ic : {'aic', 'fpe', 'hqic', 'bic', None} + Information criterion to use for VAR order selection. + aic : Akaike + fpe : Final prediction error + hqic : Hannan-Quinn + bic : Bayesian a.k.a. Schwarz + verbose : bool, default False + Print order selection output to the screen + trend, str {"c", "ct", "ctt", "nc"} + "c" - add constant + "ct" - constant and trend + "ctt" - constant, linear and quadratic trend + "nc" - co constant, no trend + Note that these are prepended to the columns of the dataset. + + Notes + ----- + Lutkepohl pp. 146-153 + + Returns + ------- + est : VARResults + """ + lags = maxlags + + if trend not in ['c', 'ct', 'ctt', 'nc']: + raise ValueError("trend '{}' not supported for VAR".format(trend)) + + if ic is not None: + selections = self.select_order(maxlags=maxlags, verbose=verbose) + if ic not in selections: + raise Exception("%s not recognized, must be among %s" + % (ic, sorted(selections))) + lags = selections[ic] + if verbose: + print('Using %d based on %s criterion' % (lags, ic)) + else: + if lags is None: + lags = 1 + + k_trend = util.get_trendorder(trend) + self.exog_names = util.make_lag_names(self.endog_names, lags, k_trend) + self.nobs = len(self.endog) - lags + + return self._estimate_var(lags, trend=trend) + + def _estimate_var(self, lags, offset=0, trend='c'): + """ + lags : int + offset : int + Periods to drop from beginning-- for order selection so it's an + apples-to-apples comparison + trend : string or None + As per above + """ + # have to do this again because select_order doesn't call fit + self.k_trend = k_trend = util.get_trendorder(trend) + + if offset < 0: # pragma: no cover + raise ValueError('offset must be >= 0') + + y = self.y[offset:] + + z = util.get_var_endog(y, lags, trend=trend, has_constant='raise') + y_sample = y[lags:] + + # Lutkepohl p75, about 5x faster than stated formula + params = np.linalg.lstsq(z, y_sample)[0] + resid = y_sample - np.dot(z, params) + + # Unbiased estimate of covariance matrix $\Sigma_u$ of the white noise + # process $u$ + # equivalent definition + # .. math:: \frac{1}{T - Kp - 1} Y^\prime (I_T - Z (Z^\prime Z)^{-1} + # Z^\prime) Y + # Ref: Lutkepohl p.75 + # df_resid right now is T - Kp - 1, which is a suggested correction + + avobs = len(y_sample) + + df_resid = avobs - (self.neqs * lags + k_trend) + + sse = np.dot(resid.T, resid) + omega = sse / df_resid + + varfit = VARResults(y, z, params, omega, lags, names=self.endog_names, + trend=trend, dates=self.data.dates, model=self) + return VARResultsWrapper(varfit) + + def select_order(self, maxlags=None, verbose=True): + """ + Compute lag order selections based on each of the available information + criteria + + Parameters + ---------- + maxlags : int + if None, defaults to 12 * (nobs/100.)**(1./4) + verbose : bool, default True + If True, print table of info criteria and selected orders + + Returns + ------- + selections : dict {info_crit -> selected_order} + """ + if maxlags is None: + maxlags = int(round(12*(len(self.endog)/100.)**(1/4.))) + + ics = defaultdict(list) + for p in range(maxlags + 1): + # exclude some periods to same amount of data used for each lag + # order + result = self._estimate_var(p, offset=maxlags-p) + + for k, v in iteritems(result.info_criteria): + ics[k].append(v) + + selected_orders = dict((k, mat(v).argmin()) + for k, v in iteritems(ics)) + + if verbose: + output.print_ic_table(ics, selected_orders) + + return selected_orders + +class VARProcess(object): + """ + Class represents a known VAR(p) process + + Parameters + ---------- + coefs : ndarray (p x k x k) + intercept : ndarray (length k) + sigma_u : ndarray (k x k) + names : sequence (length k) + + Returns + ------- + **Attributes**: + """ + def __init__(self, coefs, intercept, sigma_u, names=None): + self.k_ar = len(coefs) + self.neqs = coefs.shape[1] + self.coefs = coefs + self.intercept = intercept + self.sigma_u = sigma_u + self.names = names + + def get_eq_index(self, name): + "Return integer position of requested equation name" + return util.get_index(self.names, name) + + def __str__(self): + output = ('VAR(%d) process for %d-dimensional response y_t' + % (self.k_ar, self.neqs)) + output += '\nstable: %s' % self.is_stable() + output += '\nmean: %s' % self.mean() + + return output + + def is_stable(self, verbose=False): + """Determine stability based on model coefficients + + Parameters + ---------- + verbose : bool + Print eigenvalues of the VAR(1) companion + + Notes + ----- + Checks if det(I - Az) = 0 for any mod(z) <= 1, so all the eigenvalues of + the companion matrix must lie outside the unit circle + """ + return is_stable(self.coefs, verbose=verbose) + + def plotsim(self, steps=1000): + """ + Plot a simulation from the VAR(p) process for the desired number of + steps + """ + Y = util.varsim(self.coefs, self.intercept, self.sigma_u, steps=steps) + plotting.plot_mts(Y) + + def mean(self): + r"""Mean of stable process + + Lutkepohl eq. 2.1.23 + + .. math:: \mu = (I - A_1 - \dots - A_p)^{-1} \alpha + """ + return solve(self._char_mat, self.intercept) + + def ma_rep(self, maxn=10): + r"""Compute MA(:math:`\infty`) coefficient matrices + + Parameters + ---------- + maxn : int + Number of coefficient matrices to compute + + Returns + ------- + coefs : ndarray (maxn x k x k) + """ + return ma_rep(self.coefs, maxn=maxn) + + def orth_ma_rep(self, maxn=10, P=None): + r"""Compute Orthogonalized MA coefficient matrices using P matrix such + that :math:`\Sigma_u = PP^\prime`. P defaults to the Cholesky + decomposition of :math:`\Sigma_u` + + Parameters + ---------- + maxn : int + Number of coefficient matrices to compute + P : ndarray (k x k), optional + Matrix such that Sigma_u = PP', defaults to Cholesky descomp + + Returns + ------- + coefs : ndarray (maxn x k x k) + """ + if P is None: + P = self._chol_sigma_u + + ma_mats = self.ma_rep(maxn=maxn) + return mat([np.dot(coefs, P) for coefs in ma_mats]) + + def long_run_effects(self): + """Compute long-run effect of unit impulse + + .. math:: + + \Psi_\infty = \sum_{i=0}^\infty \Phi_i + + """ + return L.inv(self._char_mat) + + @cache_readonly + def _chol_sigma_u(self): + return chol(self.sigma_u) + + @cache_readonly + def _char_mat(self): + return np.eye(self.neqs) - self.coefs.sum(0) + + def acf(self, nlags=None): + """Compute theoretical autocovariance function + + Returns + ------- + acf : ndarray (p x k x k) + """ + return var_acf(self.coefs, self.sigma_u, nlags=nlags) + + def acorr(self, nlags=None): + """Compute theoretical autocorrelation function + + Returns + ------- + acorr : ndarray (p x k x k) + """ + return util.acf_to_acorr(self.acf(nlags=nlags)) + + def plot_acorr(self, nlags=10, linewidth=8): + "Plot theoretical autocorrelation function" + plotting.plot_full_acorr(self.acorr(nlags=nlags), linewidth=linewidth) + + def forecast(self, y, steps): + """Produce linear minimum MSE forecasts for desired number of steps + ahead, using prior values y + + Parameters + ---------- + y : ndarray (p x k) + steps : int + + Returns + ------- + forecasts : ndarray (steps x neqs) + + Notes + ----- + Lutkepohl pp 37-38 + """ + return forecast(y, self.coefs, self.intercept, steps) + + def mse(self, steps): + """ + Compute theoretical forecast error variance matrices + + Parameters + ---------- + steps : int + Number of steps ahead + + Notes + ----- + .. math:: \mathrm{MSE}(h) = \sum_{i=0}^{h-1} \Phi \Sigma_u \Phi^T + + Returns + ------- + forc_covs : ndarray (steps x neqs x neqs) + """ + ma_coefs = self.ma_rep(steps) + + k = len(self.sigma_u) + forc_covs = np.zeros((steps, k, k)) + + prior = np.zeros((k, k)) + for h in range(steps): + # Sigma(h) = Sigma(h-1) + Phi Sig_u Phi' + phi = ma_coefs[h] + var = chain_dot(phi, self.sigma_u, phi.T) + forc_covs[h] = prior = prior + var + + return forc_covs + + forecast_cov = mse + + def _forecast_vars(self, steps): + covs = self.forecast_cov(steps) + + # Take diagonal for each cov + inds = np.arange(self.neqs) + return covs[:, inds, inds] + + def forecast_interval(self, y, steps, alpha=0.05): + """Construct forecast interval estimates assuming the y are Gaussian + + Parameters + ---------- + + Notes + ----- + Lutkepohl pp. 39-40 + + Returns + ------- + (lower, mid, upper) : (ndarray, ndarray, ndarray) + """ + assert(0 < alpha < 1) + q = util.norm_signif_level(alpha) + + point_forecast = self.forecast(y, steps) + sigma = np.sqrt(self._forecast_vars(steps)) + + forc_lower = point_forecast - q * sigma + forc_upper = point_forecast + q * sigma + + return point_forecast, forc_lower, forc_upper + + +#------------------------------------------------------------------------------- +# VARResults class + + +class VARResults(VARProcess): + """Estimate VAR(p) process with fixed number of lags + + Parameters + ---------- + endog : array + endog_lagged : array + params : array + sigma_u : array + lag_order : int + model : VAR model instance + trend : str {'nc', 'c', 'ct'} + names : array-like + List of names of the endogenous variables in order of appearance in `endog`. + dates + + + Returns + ------- + **Attributes** + aic + bic + bse + coefs : ndarray (p x K x K) + Estimated A_i matrices, A_i = coefs[i-1] + cov_params + dates + detomega + df_model : int + df_resid : int + endog + endog_lagged + fittedvalues + fpe + intercept + info_criteria + k_ar : int + k_trend : int + llf + model + names + neqs : int + Number of variables (equations) + nobs : int + n_totobs : int + params + k_ar : int + Order of VAR process + params : ndarray (Kp + 1) x K + A_i matrices and intercept in stacked form [int A_1 ... A_p] + pvalues + names : list + variables names + resid + roots : array + The roots of the VAR process are the solution to + (I - coefs[0]*z - coefs[1]*z**2 ... - coefs[p-1]*z**k_ar) = 0. + Note that the inverse roots are returned, and stability requires that + the roots lie outside the unit circle. + sigma_u : ndarray (K x K) + Estimate of white noise process variance Var[u_t] + sigma_u_mle + stderr + trenorder + tvalues + y : + ys_lagged + """ + _model_type = 'VAR' + + def __init__(self, endog, endog_lagged, params, sigma_u, lag_order, + model=None, trend='c', names=None, dates=None): + + self.model = model + self.y = self.endog = endog #keep alias for now + self.ys_lagged = self.endog_lagged = endog_lagged #keep alias for now + self.dates = dates + + self.n_totobs, neqs = self.y.shape + self.nobs = self.n_totobs - lag_order + k_trend = util.get_trendorder(trend) + if k_trend > 0: # make this the polynomial trend order + trendorder = k_trend - 1 + else: + trendorder = None + self.k_trend = k_trend + self.trendorder = trendorder + self.exog_names = util.make_lag_names(names, lag_order, k_trend) + self.params = params + + # Initialize VARProcess parent class + # construct coefficient matrices + # Each matrix needs to be transposed + reshaped = self.params[self.k_trend:] + reshaped = reshaped.reshape((lag_order, neqs, neqs)) + + # Need to transpose each coefficient matrix + intercept = self.params[0] + coefs = reshaped.swapaxes(1, 2).copy() + + super(VARResults, self).__init__(coefs, intercept, sigma_u, names=names) + + def plot(self): + """Plot input time series + """ + plotting.plot_mts(self.y, names=self.names, index=self.dates) + + @property + def df_model(self): + """Number of estimated parameters, including the intercept / trends + """ + return self.neqs * self.k_ar + self.k_trend + + @property + def df_resid(self): + """Number of observations minus number of estimated parameters""" + return self.nobs - self.df_model + + @cache_readonly + def fittedvalues(self): + """The predicted insample values of the response variables of the model. + """ + return np.dot(self.ys_lagged, self.params) + + @cache_readonly + def resid(self): + """Residuals of response variable resulting from estimated coefficients + """ + return self.y[self.k_ar:] - self.fittedvalues + + def sample_acov(self, nlags=1): + return _compute_acov(self.y[self.k_ar:], nlags=nlags) + + def sample_acorr(self, nlags=1): + acovs = self.sample_acov(nlags=nlags) + return _acovs_to_acorrs(acovs) + + def plot_sample_acorr(self, nlags=10, linewidth=8): + "Plot theoretical autocorrelation function" + plotting.plot_full_acorr(self.sample_acorr(nlags=nlags), + linewidth=linewidth) + + def resid_acov(self, nlags=1): + """ + Compute centered sample autocovariance (including lag 0) + + Parameters + ---------- + nlags : int + + Returns + ------- + """ + return _compute_acov(self.resid, nlags=nlags) + + def resid_acorr(self, nlags=1): + """ + Compute sample autocorrelation (including lag 0) + + Parameters + ---------- + nlags : int + + Returns + ------- + """ + acovs = self.resid_acov(nlags=nlags) + return _acovs_to_acorrs(acovs) + + @cache_readonly + def resid_corr(self): + "Centered residual correlation matrix" + return self.resid_acorr(0)[0] + + @cache_readonly + def sigma_u_mle(self): + """(Biased) maximum likelihood estimate of noise process covariance + """ + return self.sigma_u * self.df_resid / self.nobs + + @cache_readonly + def cov_params(self): + """Estimated variance-covariance of model coefficients + + Notes + ----- + Covariance of vec(B), where B is the matrix + [intercept, A_1, ..., A_p] (K x (Kp + 1)) + Adjusted to be an unbiased estimator + Ref: Lutkepohl p.74-75 + """ + z = self.ys_lagged + return np.kron(L.inv(np.dot(z.T, z)), self.sigma_u) + + def cov_ybar(self): + r"""Asymptotically consistent estimate of covariance of the sample mean + + .. math:: + + \sqrt(T) (\bar{y} - \mu) \rightarrow {\cal N}(0, \Sigma_{\bar{y}})\\ + + \Sigma_{\bar{y}} = B \Sigma_u B^\prime, \text{where } B = (I_K - A_1 + - \cdots - A_p)^{-1} + + Notes + ----- + Lutkepohl Proposition 3.3 + """ + + Ainv = L.inv(np.eye(self.neqs) - self.coefs.sum(0)) + return chain_dot(Ainv, self.sigma_u, Ainv.T) + +#------------------------------------------------------------ +# Estimation-related things + + @cache_readonly + def _zz(self): + # Z'Z + return np.dot(self.ys_lagged.T, self.ys_lagged) + + @property + def _cov_alpha(self): + """ + Estimated covariance matrix of model coefficients ex intercept + """ + # drop intercept and trend + return self.cov_params[self.k_trend*self.neqs:, self.k_trend*self.neqs:] + + @cache_readonly + def _cov_sigma(self): + """ + Estimated covariance matrix of vech(sigma_u) + """ + D_K = tsa.duplication_matrix(self.neqs) + D_Kinv = npl.pinv(D_K) + + sigxsig = np.kron(self.sigma_u, self.sigma_u) + return 2 * chain_dot(D_Kinv, sigxsig, D_Kinv.T) + + @cache_readonly + def llf(self): + "Compute VAR(p) loglikelihood" + return var_loglike(self.resid, self.sigma_u_mle, self.nobs) + + @cache_readonly + def stderr(self): + """Standard errors of coefficients, reshaped to match in size + """ + stderr = np.sqrt(np.diag(self.cov_params)) + return stderr.reshape((self.df_model, self.neqs), order='C') + + bse = stderr # statsmodels interface? + + @cache_readonly + def tvalues(self): + """Compute t-statistics. Use Student-t(T - Kp - 1) = t(df_resid) to test + significance. + """ + return self.params / self.stderr + + @cache_readonly + def pvalues(self): + """Two-sided p-values for model coefficients from Student t-distribution + """ + return stats.t.sf(np.abs(self.tvalues), self.df_resid)*2 + + def plot_forecast(self, steps, alpha=0.05, plot_stderr=True): + """ + Plot forecast + """ + mid, lower, upper = self.forecast_interval(self.y[-self.k_ar:], steps, + alpha=alpha) + plotting.plot_var_forc(self.y, mid, lower, upper, names=self.names, + plot_stderr=plot_stderr) + + # Forecast error covariance functions + + def forecast_cov(self, steps=1): + r"""Compute forecast covariance matrices for desired number of steps + + Parameters + ---------- + steps : int + + Notes + ----- + .. math:: \Sigma_{\hat y}(h) = \Sigma_y(h) + \Omega(h) / T + + Ref: Lutkepohl pp. 96-97 + + Returns + ------- + covs : ndarray (steps x k x k) + """ + mse = self.mse(steps) + omegas = self._omega_forc_cov(steps) + return mse + omegas / self.nobs + + #Monte Carlo irf standard errors + def irf_errband_mc(self, orth=False, repl=1000, T=10, + signif=0.05, seed=None, burn=100, cum=False): + """ + Compute Monte Carlo integrated error bands assuming normally + distributed for impulse response functions + + Parameters + ---------- + orth: bool, default False + Compute orthoganalized impulse response error bands + repl: int + number of Monte Carlo replications to perform + T: int, default 10 + number of impulse response periods + signif: float (0 < signif <1) + Significance level for error bars, defaults to 95% CI + seed: int + np.random.seed for replications + burn: int + number of initial observations to discard for simulation + cum: bool, default False + produce cumulative irf error bands + + Notes + ----- + Lutkepohl (2005) Appendix D + + Returns + ------- + Tuple of lower and upper arrays of ma_rep monte carlo standard errors + + """ + neqs = self.neqs + mean = self.mean() + k_ar = self.k_ar + coefs = self.coefs + sigma_u = self.sigma_u + intercept = self.intercept + df_model = self.df_model + nobs = self.nobs + + ma_coll = np.zeros((repl, T+1, neqs, neqs)) + + if (orth == True and cum == True): + fill_coll = lambda sim : VAR(sim).fit(maxlags=k_ar).\ + orth_ma_rep(maxn=T).cumsum(axis=0) + elif (orth == True and cum == False): + fill_coll = lambda sim : VAR(sim).fit(maxlags=k_ar).\ + orth_ma_rep(maxn=T) + elif (orth == False and cum == True): + fill_coll = lambda sim : VAR(sim).fit(maxlags=k_ar).\ + ma_rep(maxn=T).cumsum(axis=0) + elif (orth == False and cum == False): + fill_coll = lambda sim : VAR(sim).fit(maxlags=k_ar).\ + ma_rep(maxn=T) + + for i in range(repl): + #discard first hundred to eliminate correct for starting bias + sim = util.varsim(coefs, intercept, sigma_u, + seed=seed, steps=nobs+burn) + sim = sim[burn:] + ma_coll[i,:,:,:] = fill_coll(sim) + + ma_sort = np.sort(ma_coll, axis=0) #sort to get quantiles + index = round(signif/2*repl)-1,round((1-signif/2)*repl)-1 + lower = ma_sort[index[0],:, :, :] + upper = ma_sort[index[1],:, :, :] + return lower, upper + + def irf_resim(self, orth=False, repl=1000, T=10, + seed=None, burn=100, cum=False): + + """ + Simulates impulse response function, returning an array of simulations. + Used for Sims-Zha error band calculation. + + Parameters + ---------- + orth: bool, default False + Compute orthoganalized impulse response error bands + repl: int + number of Monte Carlo replications to perform + T: int, default 10 + number of impulse response periods + signif: float (0 < signif <1) + Significance level for error bars, defaults to 95% CI + seed: int + np.random.seed for replications + burn: int + number of initial observations to discard for simulation + cum: bool, default False + produce cumulative irf error bands + + Notes + ----- + Sims, Christoper A., and Tao Zha. 1999. "Error Bands for Impulse Response." Econometrica 67: 1113-1155. + + Returns + ------- + Array of simulated impulse response functions + + """ + neqs = self.neqs + mean = self.mean() + k_ar = self.k_ar + coefs = self.coefs + sigma_u = self.sigma_u + intercept = self.intercept + df_model = self.df_model + nobs = self.nobs + + ma_coll = np.zeros((repl, T+1, neqs, neqs)) + + if (orth == True and cum == True): + fill_coll = lambda sim : VAR(sim).fit(maxlags=k_ar).\ + orth_ma_rep(maxn=T).cumsum(axis=0) + elif (orth == True and cum == False): + fill_coll = lambda sim : VAR(sim).fit(maxlags=k_ar).\ + orth_ma_rep(maxn=T) + elif (orth == False and cum == True): + fill_coll = lambda sim : VAR(sim).fit(maxlags=k_ar).\ + ma_rep(maxn=T).cumsum(axis=0) + elif (orth == False and cum == False): + fill_coll = lambda sim : VAR(sim).fit(maxlags=k_ar).\ + ma_rep(maxn=T) + + for i in range(repl): + #discard first hundred to eliminate correct for starting bias + sim = util.varsim(coefs, intercept, sigma_u, + seed=seed, steps=nobs+burn) + sim = sim[burn:] + ma_coll[i,:,:,:] = fill_coll(sim) + + return ma_coll + + + def _omega_forc_cov(self, steps): + # Approximate MSE matrix \Omega(h) as defined in Lut p97 + G = self._zz + Ginv = L.inv(G) + + # memoize powers of B for speedup + # TODO: see if can memoize better + B = self._bmat_forc_cov() + _B = {} + def bpow(i): + if i not in _B: + _B[i] = np.linalg.matrix_power(B, i) + + return _B[i] + + phis = self.ma_rep(steps) + sig_u = self.sigma_u + + omegas = np.zeros((steps, self.neqs, self.neqs)) + for h in range(1, steps + 1): + if h == 1: + omegas[h-1] = self.df_model * self.sigma_u + continue + + om = omegas[h-1] + for i in range(h): + for j in range(h): + Bi = bpow(h - 1 - i) + Bj = bpow(h - 1 - j) + mult = np.trace(chain_dot(Bi.T, Ginv, Bj, G)) + om += mult * chain_dot(phis[i], sig_u, phis[j].T) + omegas[h-1] = om + + return omegas + + def _bmat_forc_cov(self): + # B as defined on p. 96 of Lut + upper = np.zeros((1, self.df_model)) + upper[0,0] = 1 + + lower_dim = self.neqs * (self.k_ar - 1) + I = np.eye(lower_dim) + lower = np.column_stack((np.zeros((lower_dim, 1)), I, + np.zeros((lower_dim, self.neqs)))) + + return np.vstack((upper, self.params.T, lower)) + + def summary(self): + """Compute console output summary of estimates + + Returns + ------- + summary : VARSummary + """ + return VARSummary(self) + + def irf(self, periods=10, var_decomp=None, var_order=None): + """Analyze impulse responses to shocks in system + + Parameters + ---------- + periods : int + var_decomp : ndarray (k x k), lower triangular + Must satisfy Omega = P P', where P is the passed matrix. Defaults to + Cholesky decomposition of Omega + var_order : sequence + Alternate variable order for Cholesky decomposition + + Returns + ------- + irf : IRAnalysis + """ + if var_order is not None: + raise NotImplementedError('alternate variable order not implemented' + ' (yet)') + + return IRAnalysis(self, P=var_decomp, periods=periods) + + def fevd(self, periods=10, var_decomp=None): + """ + Compute forecast error variance decomposition ("fevd") + + Returns + ------- + fevd : FEVD instance + """ + return FEVD(self, P=var_decomp, periods=periods) + + def reorder(self, order): + """Reorder variables for structural specification + """ + if len(order) != len(self.params[0,:]): + raise ValueError("Reorder specification length should match number of endogenous variables") + #This convert order to list of integers if given as strings + if isinstance(order[0], string_types): + order_new = [] + for i, nam in enumerate(order): + order_new.append(self.names.index(order[i])) + order = order_new + return _reordered(self, order) + +#------------------------------------------------------------------------------- +# VAR Diagnostics: Granger-causality, whiteness of residuals, normality, etc. + + def test_causality(self, equation, variables, kind='f', signif=0.05, + verbose=True): + """Compute test statistic for null hypothesis of Granger-noncausality, + general function to test joint Granger-causality of multiple variables + + Parameters + ---------- + equation : string or int + Equation to test for causality + variables : sequence (of strings or ints) + List, tuple, etc. of variables to test for Granger-causality + kind : {'f', 'wald'} + Perform F-test or Wald (chi-sq) test + signif : float, default 5% + Significance level for computing critical values for test, + defaulting to standard 0.95 level + + Notes + ----- + Null hypothesis is that there is no Granger-causality for the indicated + variables. The degrees of freedom in the F-test are based on the + number of variables in the VAR system, that is, degrees of freedom + are equal to the number of equations in the VAR times degree of freedom + of a single equation. + + Returns + ------- + results : dict + """ + if isinstance(variables, (string_types, int, np.integer)): + variables = [variables] + + k, p = self.neqs, self.k_ar + + # number of restrictions + N = len(variables) * self.k_ar + + # Make restriction matrix + C = np.zeros((N, k ** 2 * p + k), dtype=float) + + eq_index = self.get_eq_index(equation) + vinds = mat([self.get_eq_index(v) for v in variables]) + + # remember, vec is column order! + offsets = np.concatenate([k + k ** 2 * j + k * vinds + eq_index + for j in range(p)]) + C[np.arange(N), offsets] = 1 + + # Lutkepohl 3.6.5 + Cb = np.dot(C, vec(self.params.T)) + middle = L.inv(chain_dot(C, self.cov_params, C.T)) + + # wald statistic + lam_wald = statistic = chain_dot(Cb, middle, Cb) + + if kind.lower() == 'wald': + df = N + dist = stats.chi2(df) + elif kind.lower() == 'f': + statistic = lam_wald / N + df = (N, k * self.df_resid) + dist = stats.f(*df) + else: + raise Exception('kind %s not recognized' % kind) + + pvalue = dist.sf(statistic) + crit_value = dist.ppf(1 - signif) + + conclusion = 'fail to reject' if statistic < crit_value else 'reject' + results = { + 'statistic' : statistic, + 'crit_value' : crit_value, + 'pvalue' : pvalue, + 'df' : df, + 'conclusion' : conclusion, + 'signif' : signif + } + + if verbose: + summ = output.causality_summary(results, variables, equation, kind) + + print(summ) + + return results + + def test_whiteness(self, nlags=10, plot=True, linewidth=8): + """ + Test white noise assumption. Sample (Y) autocorrelations are compared + with the standard :math:`2 / \sqrt(T)` bounds. + + Parameters + ---------- + plot : boolean, default True + Plot autocorrelations with 2 / sqrt(T) bounds + """ + acorrs = self.sample_acorr(nlags) + bound = 2 / np.sqrt(self.nobs) + + # TODO: this probably needs some UI work + + if (np.abs(acorrs) > bound).any(): + print('FAIL: Some autocorrelations exceed %.4f bound. ' + 'See plot' % bound) + else: + print('PASS: No autocorrelations exceed %.4f bound' % bound) + + if plot: + fig = plotting.plot_full_acorr(acorrs[1:], + xlabel=np.arange(1, nlags+1), + err_bound=bound, + linewidth=linewidth) + fig.suptitle(r"ACF plots with $2 / \sqrt{T}$ bounds " + "for testing whiteness assumption") + + def test_normality(self, signif=0.05, verbose=True): + """ + Test assumption of normal-distributed errors using Jarque-Bera-style + omnibus Chi^2 test + + Parameters + ---------- + signif : float + Test significance threshold + + Notes + ----- + H0 (null) : data are generated by a Gaussian-distributed process + """ + Pinv = npl.inv(self._chol_sigma_u) + + w = np.array([np.dot(Pinv, u) for u in self.resid]) + + b1 = (w ** 3).sum(0) / self.nobs + lam_skew = self.nobs * np.dot(b1, b1) / 6 + + b2 = (w ** 4).sum(0) / self.nobs - 3 + lam_kurt = self.nobs * np.dot(b2, b2) / 24 + + lam_omni = lam_skew + lam_kurt + + omni_dist = stats.chi2(self.neqs * 2) + omni_pvalue = omni_dist.sf(lam_omni) + crit_omni = omni_dist.ppf(1 - signif) + + conclusion = 'fail to reject' if lam_omni < crit_omni else 'reject' + + results = { + 'statistic' : lam_omni, + 'crit_value' : crit_omni, + 'pvalue' : omni_pvalue, + 'df' : self.neqs * 2, + 'conclusion' : conclusion, + 'signif' : signif + } + + if verbose: + summ = output.normality_summary(results) + print(summ) + + return results + + @cache_readonly + def detomega(self): + r""" + Return determinant of white noise covariance with degrees of freedom + correction: + + .. math:: + + \hat \Omega = \frac{T}{T - Kp - 1} \hat \Omega_{\mathrm{MLE}} + """ + return L.det(self.sigma_u) + + @cache_readonly + def info_criteria(self): + "information criteria for lagorder selection" + nobs = self.nobs + neqs = self.neqs + lag_order = self.k_ar + free_params = lag_order * neqs ** 2 + neqs * self.k_trend + + ld = logdet_symm(self.sigma_u_mle) + + # See Lutkepohl pp. 146-150 + + aic = ld + (2. / nobs) * free_params + bic = ld + (np.log(nobs) / nobs) * free_params + hqic = ld + (2. * np.log(np.log(nobs)) / nobs) * free_params + fpe = ((nobs + self.df_model) / self.df_resid) ** neqs * np.exp(ld) + + return { + 'aic' : aic, + 'bic' : bic, + 'hqic' : hqic, + 'fpe' : fpe + } + + @property + def aic(self): + """Akaike information criterion""" + return self.info_criteria['aic'] + + @property + def fpe(self): + """Final Prediction Error (FPE) + + Lutkepohl p. 147, see info_criteria + """ + return self.info_criteria['fpe'] + + @property + def hqic(self): + """Hannan-Quinn criterion""" + return self.info_criteria['hqic'] + + @property + def bic(self): + """Bayesian a.k.a. Schwarz info criterion""" + return self.info_criteria['bic'] + + @cache_readonly + def roots(self): + neqs = self.neqs + k_ar = self.k_ar + p = neqs * k_ar + arr = np.zeros((p,p)) + arr[:neqs,:] = np.column_stack(self.coefs) + arr[neqs:,:-neqs] = np.eye(p-neqs) + roots = np.linalg.eig(arr)[0]**-1 + idx = np.argsort(np.abs(roots))[::-1] # sort by reverse modulus + return roots[idx] + +class VARResultsWrapper(wrap.ResultsWrapper): + _attrs = {'bse' : 'columns_eq', 'cov_params' : 'cov', + 'params' : 'columns_eq', 'pvalues' : 'columns_eq', + 'tvalues' : 'columns_eq', 'sigma_u' : 'cov_eq', + 'sigma_u_mle' : 'cov_eq', + 'stderr' : 'columns_eq'} + _wrap_attrs = wrap.union_dicts(tsbase.TimeSeriesResultsWrapper._wrap_attrs, + _attrs) + _methods = {} + _wrap_methods = wrap.union_dicts(tsbase.TimeSeriesResultsWrapper._wrap_methods, + _methods) + _wrap_methods.pop('cov_params') # not yet a method in VARResults +wrap.populate_wrapper(VARResultsWrapper, VARResults) + +class FEVD(object): + """ + Compute and plot Forecast error variance decomposition and asymptotic + standard errors + """ + def __init__(self, model, P=None, periods=None): + self.periods = periods + + self.model = model + self.neqs = model.neqs + self.names = model.model.endog_names + + self.irfobj = model.irf(var_decomp=P, periods=periods) + self.orth_irfs = self.irfobj.orth_irfs + + # cumulative impulse responses + irfs = (self.orth_irfs[:periods] ** 2).cumsum(axis=0) + + rng = lrange(self.neqs) + mse = self.model.mse(periods)[:, rng, rng] + + # lag x equation x component + fevd = np.empty_like(irfs) + + for i in range(periods): + fevd[i] = (irfs[i].T / mse[i]).T + + # switch to equation x lag x component + self.decomp = fevd.swapaxes(0, 1) + + def summary(self): + buf = StringIO() + + rng = lrange(self.periods) + for i in range(self.neqs): + ppm = output.pprint_matrix(self.decomp[i], rng, self.names) + + buf.write('FEVD for %s\n' % self.names[i]) + buf.write(ppm + '\n') + + print(buf.getvalue()) + + def cov(self): + """Compute asymptotic standard errors + + Returns + ------- + """ + raise NotImplementedError + + def plot(self, periods=None, figsize=(10,10), **plot_kwds): + """Plot graphical display of FEVD + + Parameters + ---------- + periods : int, default None + Defaults to number originally specified. Can be at most that number + """ + import matplotlib.pyplot as plt + + k = self.neqs + periods = periods or self.periods + + fig, axes = plt.subplots(nrows=k, figsize=figsize) + + fig.suptitle('Forecast error variance decomposition (FEVD)') + + colors = [str(c) for c in np.arange(k, dtype=float) / k] + ticks = np.arange(periods) + + limits = self.decomp.cumsum(2) + + for i in range(k): + ax = axes[i] + + this_limits = limits[i].T + + handles = [] + + for j in range(k): + lower = this_limits[j - 1] if j > 0 else 0 + upper = this_limits[j] + handle = ax.bar(ticks, upper - lower, bottom=lower, + color=colors[j], label=self.names[j], + **plot_kwds) + + handles.append(handle) + + ax.set_title(self.names[i]) + + # just use the last axis to get handles for plotting + handles, labels = ax.get_legend_handles_labels() + fig.legend(handles, labels, loc='upper right') + plotting.adjust_subplots(right=0.85) + +#------------------------------------------------------------------------------- + +def _compute_acov(x, nlags=1): + x = x - x.mean(0) + + result = [] + for lag in range(nlags + 1): + if lag > 0: + r = np.dot(x[lag:].T, x[:-lag]) + else: + r = np.dot(x.T, x) + + result.append(r) + + return np.array(result) / len(x) + +def _acovs_to_acorrs(acovs): + sd = np.sqrt(np.diag(acovs[0])) + return acovs / np.outer(sd, sd) + +if __name__ == '__main__': + import statsmodels.api as sm + from statsmodels.tsa.vector_ar.util import parse_lutkepohl_data + import statsmodels.tools.data as data_util + + np.set_printoptions(linewidth=140, precision=5) + + sdata, dates = parse_lutkepohl_data('data/%s.dat' % 'e1') + + names = sdata.dtype.names + data = data_util.struct_to_ndarray(sdata) + adj_data = np.diff(np.log(data), axis=0) + # est = VAR(adj_data, p=2, dates=dates[1:], names=names) + model = VAR(adj_data[:-16], dates=dates[1:-16], names=names) + # model = VAR(adj_data[:-16], dates=dates[1:-16], names=names) + + est = model.fit(maxlags=2) + irf = est.irf() + + y = est.y[-2:] + """ + # irf.plot_irf() + + # i = 2; j = 1 + # cv = irf.cum_effect_cov(orth=True) + # print np.sqrt(cv[:, j * 3 + i, j * 3 + i]) / 1e-2 + + # data = np.genfromtxt('Canada.csv', delimiter=',', names=True) + # data = data.view((float, 4)) + """ + + ''' + mdata = sm.datasets.macrodata.load().data + mdata2 = mdata[['realgdp','realcons','realinv']] + names = mdata2.dtype.names + data = mdata2.view((float,3)) + data = np.diff(np.log(data), axis=0) + + import pandas as pn + df = pn.DataFrame.fromRecords(mdata) + df = np.log(df.reindex(columns=names)) + df = (df - df.shift(1)).dropna() + + model = VAR(df) + est = model.fit(maxlags=2) + irf = est.irf() + ''' + diff --git a/statsmodels/tsa/x13.py b/statsmodels/tsa/x13.py new file mode 100644 index 0000000..574d07a --- /dev/null +++ b/statsmodels/tsa/x13.py @@ -0,0 +1,634 @@ +""" +Run x12/x13-arima specs in a subprocess from Python and curry results back +into python. + +Notes +----- +Many of the functions are called x12. However, they are also intended to work +for x13. If this is not the case, it's a bug. +""" +from __future__ import print_function +import os +import subprocess +import tempfile +import re +from warnings import warn + +import pandas as pd + +from statsmodels.compat.python import iteritems +from statsmodels.tools.tools import Bunch +from statsmodels.tools.sm_exceptions import (X13NotFoundError, + IOWarning, X13Error, + X13Warning) + +__all__ = ["x13_arima_select_order", "x13_arima_analysis"] + +_binary_names = ('x13as.exe', 'x13as', 'x12a.exe', 'x12a') + + +class _freq_to_period: + def __getitem__(self, key): + if key.startswith('M'): + return 12 + elif key.startswith('Q'): + return 4 + + +_freq_to_period = _freq_to_period() + +_period_to_freq = {12 : 'M', 4 : 'Q'} +_log_to_x12 = {True : 'log', False : 'none', None : 'auto'} +_bool_to_yes_no = lambda x : 'yes' if x else 'no' + + +def _find_x12(x12path=None, prefer_x13=True): + """ + If x12path is not given, then either x13as[.exe] or x12a[.exe] must + be found on the PATH. Otherwise, the environmental variable X12PATH or + X13PATH must be defined. If prefer_x13 is True, only X13PATH is searched + for. If it is false, only X12PATH is searched for. + """ + global _binary_names + if x12path is not None and x12path.endswith(_binary_names): + # remove binary from path if given + x12path = os.path.dirname(x12path) + + if not prefer_x13: # search for x12 first + _binary_names = _binary_names[::-1] + if x12path is None: + x12path = os.getenv("X12PATH", "") + if not x12path: + x12path = os.getenv("X13PATH", "") + elif x12path is None: + x12path = os.getenv("X13PATH", "") + if not x12path: + x12path = os.getenv("X12PATH", "") + + for binary in _binary_names: + x12 = os.path.join(x12path, binary) + try: + subprocess.check_call(x12, stdout=subprocess.PIPE, + stderr=subprocess.PIPE) + return x12 + except OSError: + pass + + else: + return False + + +def _check_x12(x12path=None): + x12path = _find_x12(x12path) + if not x12path: + raise X13NotFoundError("x12a and x13as not found on path. Give the " + "path, put them on PATH, or set the " + "X12PATH or X13PATH environmental variable.") + return x12path + + +def _clean_order(order): + """ + Takes something like (1 1 0)(0 1 1) and returns a arma order, sarma + order tuple. Also accepts (1 1 0) and return arma order and (0, 0, 0) + """ + order = re.findall("\([0-9 ]*?\)", order) + clean = lambda x : tuple(map(int, re.sub("[()]", "", x).split(" "))) + if len(order) > 1: + order, sorder = map(clean, order) + else: + order = clean(order[0]) + sorder = (0, 0, 0) + + return order, sorder + + +def run_spec(x12path, specpath, outname=None, meta=False, datameta=False): + + if meta and datameta: + raise ValueError("Cannot specify both meta and datameta.") + if meta: + args = [x12path, "-m " + specpath] + elif datameta: + args = [x12path, "-d " + specpath] + else: + args = [x12path, specpath] + + if outname: + args += [outname] + + return subprocess.Popen(args, stdout=subprocess.PIPE, + stderr=subprocess.STDOUT) + + +def _make_automdl_options(maxorder, maxdiff, diff): + options = "\n" + options += "maxorder = ({0} {1})\n".format(maxorder[0], maxorder[1]) + if maxdiff is not None: # maxdiff always takes precedence + options += "maxdiff = ({0} {1})\n".format(maxdiff[0], maxdiff[1]) + else: + options += "diff = ({0} {1})\n".format(diff[0], diff[1]) + return options + + +def _make_var_names(exog): + if hasattr(exog, "name"): + var_names = exog.name + elif hasattr(exog, "columns"): + var_names = exog.columns + else: + raise ValueError("exog is not a Series or DataFrame or is unnamed.") + try: + var_names = " ".join(var_names) + except TypeError: # cannot have names that are numbers, pandas default + from statsmodels.base.data import _make_exog_names + if exog.ndim == 1: + var_names = "x1" + else: + var_names = " ".join(_make_exog_names(exog)) + return var_names + + +def _make_regression_options(trading, exog): + if not trading and exog is None: # start regression spec + return "" + + reg_spec = "regression{\n" + if trading: + reg_spec += " variables = (td)\n" + if exog is not None: + var_names = _make_var_names(exog) + reg_spec += " user = ({0})\n".format(var_names) + reg_spec += " data = ({0})\n".format("\n".join(map(str, + exog.values.ravel().tolist()))) + + reg_spec += "}\n" # close out regression spec + return reg_spec + + +def _make_forecast_options(forecast_years): + if forecast_years is None: + return "" + forecast_spec = "forecast{\n" + forecast_spec += "maxlead = ({0})\n}}\n".format(forecast_years) + return forecast_spec + + +def _check_errors(errors): + errors = errors[errors.find("spc:")+4:].strip() + if errors and 'ERROR' in errors: + raise X13Error(errors) + elif errors and 'WARNING' in errors: + warn(errors, X13Warning) + + +def _convert_out_to_series(x, dates, name): + """ + Convert x to a DataFrame where x is a string in the format given by + x-13arima-seats output. + """ + from statsmodels.compat import StringIO + from pandas import read_table + out = read_table(StringIO(x), skiprows=2, header=None) + return out.set_index(dates).rename(columns={1 : name})[name] + + +def _open_and_read(fname): + # opens a file, reads it, and make sure it's closed + with open(fname, 'r') as fin: + fout = fin.read() + return fout + + +class Spec(object): + @property + def spec_name(self): + return self.__class__.__name__.replace("Spec", "") + + def create_spec(self, **kwargs): + spec = """{name} {{ + {options} + }} + """ + return spec.format(name=self.spec_name, + options=self.options) + + def set_options(self, **kwargs): + options = "" + for key, value in iteritems(kwargs): + options += "{0}={1}\n".format(key, value) + self.__dict__.update({key : value}) + self.options = options + + +class SeriesSpec(Spec): + """ + Parameters + ---------- + data + appendbcst : bool + appendfcst : bool + comptype + compwt + decimals + modelspan + name + period + precision + to_print + to_save + span + start + title + type + + Notes + ----- + Rarely used arguments + + divpower + missingcode + missingval + saveprecision + trimzero + + """ + def __init__(self, data, name='Unnamed Series', appendbcst=False, + appendfcst=False, + comptype=None, compwt=1, decimals=0, modelspan=(), + period=12, precision=0, to_print=[], to_save=[], span=(), + start=(1, 1), title='', series_type=None, divpower=None, + missingcode=-99999, missingval=1000000000): + + appendbcst, appendfcst = map(_bool_to_yes_no, [appendbcst, + appendfcst, + ]) + + series_name = "\"{0}\"".format(name[:64]) # trim to 64 characters + title = "\"{0}\"".format(title[:79]) # trim to 79 characters + self.set_options(data=data, appendbcst=appendbcst, + appendfcst=appendfcst, period=period, start=start, + title=title, name=series_name, + ) + + +def pandas_to_series_spec(x): + # from statsmodels.tools.data import _check_period_index + # check_period_index(x) + if hasattr(x, 'columns'): # convert to series + if len(x.columns) > 1: + raise ValueError("Does not handle DataFrame with more than one " + "column") + x = x[x.columns[0]] + + data = "({0})".format("\n".join(map(str, x.values.tolist()))) + + # get periodicity + # get start / first data + # give it a title + try: + period = _freq_to_period[x.index.freqstr] + except (AttributeError, ValueError): + from pandas.tseries.api import infer_freq + period = _freq_to_period[infer_freq(x.index)] + start_date = x.index[0] + if period == 12: + year, stperiod = start_date.year, start_date.month + elif period == 4: + year, stperiod = start_date.year, start_date.quarter + else: # pragma: no cover + raise ValueError("Only monthly and quarterly periods are supported." + " Please report or send a pull request if you want " + "this extended.") + + if hasattr(x, 'name'): + name = x.name or "Unnamed Series" + else: + name = 'Unnamed Series' + series_spec = SeriesSpec(data=data, name=name, period=period, + title=name, start="{0}.{1}".format(year, + stperiod)) + return series_spec + + +def x13_arima_analysis(endog, maxorder=(2, 1), maxdiff=(2, 1), diff=None, + exog=None, log=None, outlier=True, trading=False, + forecast_years=None, retspec=False, + speconly=False, start=None, freq=None, + print_stdout=False, x12path=None, prefer_x13=True): + """ + Perform x13-arima analysis for monthly or quarterly data. + + Parameters + ---------- + endog : array-like, pandas.Series + The series to model. It is best to use a pandas object with a + DatetimeIndex or PeriodIndex. However, you can pass an array-like + object. If your object does not have a dates index then ``start`` and + ``freq`` are not optional. + maxorder : tuple + The maximum order of the regular and seasonal ARMA polynomials to + examine during the model identification. The order for the regular + polynomial must be greater than zero and no larger than 4. The + order for the seaonal polynomial may be 1 or 2. + maxdiff : tuple + The maximum orders for regular and seasonal differencing in the + automatic differencing procedure. Acceptable inputs for regular + differencing are 1 and 2. The maximum order for seasonal differencing + is 1. If ``diff`` is specified then ``maxdiff`` should be None. + Otherwise, ``diff`` will be ignored. See also ``diff``. + diff : tuple + Fixes the orders of differencing for the regular and seasonal + differencing. Regular differencing may be 0, 1, or 2. Seasonal + differencing may be 0 or 1. ``maxdiff`` must be None, otherwise + ``diff`` is ignored. + exog : array-like + Exogenous variables. + log : bool or None + If None, it is automatically determined whether to log the series or + not. If False, logs are not taken. If True, logs are taken. + outlier : bool + Whether or not outliers are tested for and corrected, if detected. + trading : bool + Whether or not trading day effects are tested for. + forecast_years : int + Number of forecasts produced. The default is one year. + retspec : bool + Whether to return the created specification file. Can be useful for + debugging. + speconly : bool + Whether to create the specification file and then return it without + performing the analysis. Can be useful for debugging. + start : str, datetime + Must be given if ``endog`` does not have date information in its index. + Anything accepted by pandas.DatetimeIndex for the start value. + freq : str + Must be givein if ``endog`` does not have date information in its + index. Anything accapted by pandas.DatetimeIndex for the freq value. + print_stdout : bool + The stdout from X12/X13 is suppressed. To print it out, set this + to True. Default is False. + x12path : str or None + The path to x12 or x13 binary. If None, the program will attempt + to find x13as or x12a on the PATH or by looking at X13PATH or + X12PATH depending on the value of prefer_x13. + prefer_x13 : bool + If True, will look for x13as first and will fallback to the X13PATH + environmental variable. If False, will look for x12a first and will + fallback to the X12PATH environmental variable. If x12path points + to the path for the X12/X13 binary, it does nothing. + + + Returns + ------- + res : Bunch + A bunch object with the following attributes: + + - results : str + The full output from the X12/X13 run. + - seasadj : pandas.Series + The final seasonally adjusted ``endog`` + - trend : pandas.Series + The trend-cycle component of ``endog`` + - irregular : pandas.Series + The final irregular component of ``endog`` + - stdout : str + The captured stdout produced by x12/x13. + - spec : str, optional + Returned if ``retspec`` is True. The only thing returned if + ``speconly`` is True. + + Notes + ----- + This works by creating a specification file, writing it to a temporary + directory, invoking X12/X13 in a subprocess, and reading the output + directory, invoking exog12/X13 in a subprocess, and reading the output + back in. + """ + x12path = _check_x12(x12path) + + if not isinstance(endog, (pd.DataFrame, pd.Series)): + if start is None or freq is None: + raise ValueError("start and freq cannot be none if endog is not " + "a pandas object") + endog = pd.Series(endog, index=pd.DatetimeIndex(start=start, + periods=len(endog), + freq=freq)) + spec_obj = pandas_to_series_spec(endog) + spec = spec_obj.create_spec() + spec += "transform{{function={0}}}\n".format(_log_to_x12[log]) + if outlier: + spec += "outlier{}\n" + options = _make_automdl_options(maxorder, maxdiff, diff) + spec += "automdl{{{0}}}\n".format(options) + spec += _make_regression_options(trading, exog) + spec += _make_forecast_options(forecast_years) + spec += "x11{ save=(d11 d12 d13) }" + if speconly: + return spec + # write it to a tempfile + # TODO: make this more robust - give the user some control? + ftempin = tempfile.NamedTemporaryFile(delete=False, suffix='.spc') + ftempout = tempfile.NamedTemporaryFile(delete=False) + try: + ftempin.write(spec.encode('utf8')) + ftempin.close() + ftempout.close() + # call x12 arima + p = run_spec(x12path, ftempin.name[:-4], ftempout.name) + p.wait() + stdout = p.stdout.read() + if print_stdout: + print(p.stdout.read()) + # check for errors + errors = _open_and_read(ftempout.name + '.err') + _check_errors(errors) + + # read in results + results = _open_and_read(ftempout.name + '.out') + seasadj = _open_and_read(ftempout.name + '.d11') + trend = _open_and_read(ftempout.name + '.d12') + irregular = _open_and_read(ftempout.name + '.d13') + finally: + try: # sometimes this gives a permission denied error? + # not sure why. no process should have these open + os.remove(ftempin.name) + os.remove(ftempout.name) + except: + if os.path.exists(ftempin.name): + warn("Failed to delete resource {0}".format(ftempin.name), + IOWarning) + if os.path.exists(ftempout.name): + warn("Failed to delete resource {0}".format(ftempout.name), + IOWarning) + + seasadj = _convert_out_to_series(seasadj, endog.index, 'seasadj') + trend = _convert_out_to_series(trend, endog.index, 'trend') + irregular = _convert_out_to_series(irregular, endog.index, 'irregular') + + # NOTE: there isn't likely anything in stdout that's not in results + # so may be safe to just suppress and remove it + if not retspec: + res = X13ArimaAnalysisResult(observed=endog, results=results, + seasadj=seasadj, trend=trend, + irregular=irregular, stdout=stdout) + else: + res = X13ArimaAnalysisResult(observed=endog, results=results, + seasadj=seasadj, trend=trend, + irregular=irregular, stdout=stdout, + spec=spec) + return res + + +def x13_arima_select_order(endog, maxorder=(2, 1), maxdiff=(2, 1), diff=None, + exog=None, log=None, outlier=True, trading=False, + forecast_years=None, + start=None, freq=None, print_stdout=False, + x12path=None, prefer_x13=True): + """ + Perform automatic seaonal ARIMA order identification using x12/x13 ARIMA. + + Parameters + ---------- + endog : array-like, pandas.Series + The series to model. It is best to use a pandas object with a + DatetimeIndex or PeriodIndex. However, you can pass an array-like + object. If your object does not have a dates index then ``start`` and + ``freq`` are not optional. + maxorder : tuple + The maximum order of the regular and seasonal ARMA polynomials to + examine during the model identification. The order for the regular + polynomial must be greater than zero and no larger than 4. The + order for the seaonal polynomial may be 1 or 2. + maxdiff : tuple + The maximum orders for regular and seasonal differencing in the + automatic differencing procedure. Acceptable inputs for regular + differencing are 1 and 2. The maximum order for seasonal differencing + is 1. If ``diff`` is specified then ``maxdiff`` should be None. + Otherwise, ``diff`` will be ignored. See also ``diff``. + diff : tuple + Fixes the orders of differencing for the regular and seasonal + differencing. Regular differencing may be 0, 1, or 2. Seasonal + differencing may be 0 or 1. ``maxdiff`` must be None, otherwise + ``diff`` is ignored. + exog : array-like + Exogenous variables. + log : bool or None + If None, it is automatically determined whether to log the series or + not. If False, logs are not taken. If True, logs are taken. + outlier : bool + Whether or not outliers are tested for and corrected, if detected. + trading : bool + Whether or not trading day effects are tested for. + forecast_years : int + Number of forecasts produced. The default is one year. + start : str, datetime + Must be given if ``endog`` does not have date information in its index. + Anything accepted by pandas.DatetimeIndex for the start value. + freq : str + Must be givein if ``endog`` does not have date information in its + index. Anything accapted by pandas.DatetimeIndex for the freq value. + print_stdout : bool + The stdout from X12/X13 is suppressed. To print it out, set this + to True. Default is False. + x12path : str or None + The path to x12 or x13 binary. If None, the program will attempt + to find x13as or x12a on the PATH or by looking at X13PATH or X12PATH + depending on the value of prefer_x13. + prefer_x13 : bool + If True, will look for x13as first and will fallback to the X13PATH + environmental variable. If False, will look for x12a first and will + fallback to the X12PATH environmental variable. If x12path points + to the path for the X12/X13 binary, it does nothing. + + Returns + ------- + results : Bunch + A bunch object that has the following attributes: + + - order : tuple + The regular order + - sorder : tuple + The seasonal order + - include_mean : bool + Whether to include a mean or not + - results : str + The full results from the X12/X13 analysis + - stdout : str + The captured stdout from the X12/X13 analysis + + Notes + ----- + This works by creating a specification file, writing it to a temporary + directory, invoking X12/X13 in a subprocess, and reading the output back + in. + """ + results = x13_arima_analysis(endog, x12path=x12path, exog=exog, log=log, + outlier=outlier, trading=trading, + forecast_years=forecast_years, + maxorder=maxorder, maxdiff=maxdiff, diff=diff, + start=start, freq=freq, prefer_x13=prefer_x13) + model = re.search("(?<=Final automatic model choice : ).*", + results.results) + order = model.group() + if re.search("Mean is not significant", results.results): + include_mean = False + elif re.search("Constant", results.results): + include_mean = True + else: + include_mean = False + order, sorder = _clean_order(order) + res = Bunch(order=order, sorder=sorder, include_mean=include_mean, + results=results.results, stdout=results.stdout) + return res + + +class X13ArimaAnalysisResult(object): + def __init__(self, **kwargs): + for key, value in iteritems(kwargs): + setattr(self, key, value) + + def plot(self): + from statsmodels.graphics.utils import _import_mpl + plt = _import_mpl() + fig, axes = plt.subplots(4, 1, sharex=True) + self.observed.plot(ax=axes[0], legend=False) + axes[0].set_ylabel('Observed') + self.seasadj.plot(ax=axes[1], legend=False) + axes[1].set_ylabel('Seas. Adjusted') + self.trend.plot(ax=axes[2], legend=False) + axes[2].set_ylabel('Trend') + self.irregular.plot(ax=axes[3], legend=False) + axes[3].set_ylabel('Irregular') + + fig.tight_layout() + return fig + + +if __name__ == "__main__": + import numpy as np + from statsmodels.tsa.arima_process import ArmaProcess + np.random.seed(123) + ar = [1, .35, .8] + ma = [1, .8] + arma = ArmaProcess(ar, ma, nobs=100) + assert arma.isstationary() + assert arma.isinvertible() + y = arma.generate_sample() + dates = pd.date_range("1/1/1990", periods=len(y), freq='M') + ts = pd.Series(y, index=dates) + + xpath = "/home/skipper/src/x12arima/x12a" + + try: + results = x13_arima_analysis(xpath, ts) + except: + print("Caught exception") + + results = x13_arima_analysis(xpath, ts, log=False) + + # import pandas as pd + # seas_y = pd.read_csv("usmelec.csv") + # seas_y = pd.Series(seas_y["usmelec"].values, + # index=pd.DatetimeIndex(seas_y["date"], freq="MS")) + # results = x13_arima_analysis(xpath, seas_y) diff --git a/tools/R2nparray/DESCRIPTION b/tools/R2nparray/DESCRIPTION new file mode 100644 index 0000000..40e2a56 --- /dev/null +++ b/tools/R2nparray/DESCRIPTION @@ -0,0 +1,13 @@ +Package: R2nparray +Version: 0.1 +Date: 2011-08-23 +Title: R to Numpy Arrays +Author: Skipper Seabold +Maintainer: Skipper Seabold +Description: Writes R matrices, vectors, and scalars to a file as numpy arrays +License: BSD +URL: http://www.github.com/statsmodels/statsmodels +Repository: github +Collate: + 'R2nparray-package.R' + 'R2nparray.R' diff --git a/tools/R2nparray/NAMESPACE b/tools/R2nparray/NAMESPACE new file mode 100644 index 0000000..072671f --- /dev/null +++ b/tools/R2nparray/NAMESPACE @@ -0,0 +1 @@ +exportPattern( "." ) diff --git a/tools/R2nparray/R/R2nparray-package.R b/tools/R2nparray/R/R2nparray-package.R new file mode 100644 index 0000000..1280b18 --- /dev/null +++ b/tools/R2nparray/R/R2nparray-package.R @@ -0,0 +1,5 @@ +#' R2nparray +#' +#' @name R2nparray +#' @docType package +NULL diff --git a/tools/R2nparray/R/R2nparray.R b/tools/R2nparray/R/R2nparray.R new file mode 100644 index 0000000..0bbbc0e --- /dev/null +++ b/tools/R2nparray/R/R2nparray.R @@ -0,0 +1,230 @@ +#' Print R object contents to python expression +#' +#' @param object with names attribute names(object) will be written as python assignments +#' @param prefix string string that is prepended to the variable names +#' @param blacklist list of strings names that are in the blacklist are ignored +#' @param trans named list (dict_like) names that are in trans will be replaced by the corresponding value +#' @param strict skip content that cannot be pretty-printed. Otherwise, will print as str(deparse(x)) +#' @note currently limited type inference, mainly numerical +#' @export +#' @examples +#' mod = lm(rnorm(100) ~ rnorm(100)) +#' cat_items(mod) +cat_items <- function(object, prefix="", strict=TRUE, trans=list(), + blacklist=NULL){ + out = convert_items(object, prefix, strict, trans, blacklist) + cat(out) +} + +#' Same as cat_items() except it returns a string instead of printing it +#' +#' @export +#' @examples +#' mod = lm(rnorm(100) ~ rnorm(100)) +#' convert_items(mod) +convert_items <- function(object, prefix="", strict=TRUE, trans=list(), + blacklist=NULL){ + out = list() + for (n in names(object)){ + if (n %in% blacklist) next + newname = sanitize_name(n) + if (newname %in% names(trans)){ + newname = trans[[newname]] + } + newname = paste(prefix, newname, sep='') + tmp = try(convert(object[[n]], name=newname, strict=strict)) + if (class(tmp) != 'try-error'){ + out[[newname]] = tmp + } + } + out = paste(out, collapse='\n') + return(out) +} + +convert <- function (x, name='default', strict=TRUE) { + UseMethod("convert", x) +} + +convert.default <- function(X, name='default', strict=TRUE){ + head = paste(name, '= ') + mid = paste(deparse(X), collapse='\n') + out = paste(head, "'''", mid, "'''") + if(!strict){ + return(out) + } +} + +convert.data.frame <- function(X, name='default', strict=TRUE){ + X = as.matrix(X) + out = convert(X, name=name) + return(out) +} + +convert.numeric <- function(X, name='default', strict=TRUE) { + if (length(X) > 1){ + head = paste(name, '= np.array([\n') + mid = strwrap(paste(X, collapse=', '), width=76, prefix=' ') + mid = paste(mid, collapse='\n') + tail = "\n ])" + if (is.matrix(X)) { + i <- nrow(X) + j <- ncol(X) + tail = paste(tail, ".reshape(", i, ", ", j, ", order='F')\n", sep='') + } + out = paste(head, mid, tail, collapse='\n') + }else{ + out = paste(name, '=', X) + } + return(out) +} + +convert.character <- function(X, name='default', strict=TRUE) { + if (length(X) > 1){ + head = paste(name, '= np.array([\n') + mid = paste("'", X, "'", sep='') + mid = paste(mid, collapse=', ') + tail = "\n ])" + out = paste(head, mid, tail) + }else{ + out = paste(name, " = '", X, "'", sep='') + } + return(out) +} + +sanitize_name <- function(name) { + #"[%s]" % "]|[".join(map(re.escape, list(string.punctuation.replace("_","") + punctuation <- '[\\!]|[\\"]|[\\#]|[\\$]|[\\%]|[\\&]|[\\\']|[\\(]|[\\)]|[\\*]|[\\+]|[\\,]|[\\-]|[\\.]|[\\/]|[\\:]|[\\;]|[\\<]|[\\=]|[\\>]|[\\?]|[\\@]|[\\[]|[\\\\]|[\\]]|[\\^]|[\\`]|[\\{]|[\\|]|[\\}]|[\\~]' + # handle spaces,tabs,etc. and periods specially + name <- gsub("[[:blank:]\\.]", "_", name) + name <- gsub(punctuation, "", name) + return(name) +} + +get_dimnames <- function(mat, prefix="", asstring=FALSE) { + dimension_names = c('rownames', 'colnames', 3:100) + dimn = dimnames(mat) + if(is.null(dimn)){ + dimn = names(mat) + if(is.null(dimn)){ + dimn = NULL + }else{ + dimn = list(dimn) + } + } + for (i in 1:length(dimn)){ + pref = paste(prefix, dimension_names[i], sep='') + dimn[[i]] = sapply(dimn[[i]], sanitize_name) + dimn[[i]] = paste(dimn[[i]], collapse="', '") + dimn[[i]] = paste(pref, " = ['", dimn[[i]], "']", sep='') + } + dimn = paste(dimn, collapse='\n')[1] + return(dimn) +} + +# Dictionary of lambda functions +d = list() +d$df_resid = function(x) x$df.residual +d$deviance = function(x) x$deviance +d$null_deviance = function(x) x$null.deviance +d$rank = function(x) x$rank +d$aic = function(x) x$aic +d$nobs = function(x) dim(model.matrix(x))[1] +d$conf_int = function(x) as.matrix(confint(x)) +d$resid = function(x) resid(x) +d$predict = function(x) predict(x) +d$fittedvalues = function(x) predict(x) +d$params = function(x) summary(x)$coefficients[,1] +d$bse = function(x) summary(x)$coefficients[,2] +d$tvalues = function(x) summary(x)$coefficients[,3] +d$pvalues = function(x) summary(x)$coefficients[,4] +d$rsquared = function(x) summary(x)$r.squared[1] +d$rsquared_adj = function(x) summary(x)$r.squared[2] +d$fvalue = function(x) summary(x)$fstatistic$statistic +d$f_pvalue = function(x) summary(x)$fstatistic$p.value +d$fstatistic = function(x) summary(x)$fstatistic + +#' Applies functions to an object (skips on error) +#' +#' @param object an object on which we want to apply the lambda functions +#' @param lambdas a named list of lambda functions +#' @export +#' @examples +#' mod = lm(rnorm(100) ~ rnorm(100)) +#' cat_items(apply_functions(mod)) +apply_functions = function(object, lambdas=d){ + out = list() + for (n in names(lambdas)){ + tmp = try(lambdas[[n]](object)) + if (class(tmp) != 'try-error'){ + out[[n]] = tmp + } + } + return(out) +} + +mkhtest <- function(ht, name, distr="f") { + #function to write results of a statistical test of class htest to a python dict + # + #Parameters + #---------- + #ht : instance of ht + # return of many statistical tests + #name : string + # name of variable that holds results dict + #distr : string + # distribution of the test statistic + # + cat(name); cat(" = dict("); + cat("statistic="); cat(ht$statistic); cat(", "); + cat("pvalue="); cat(ht$p.value); cat(", "); + cat("parameters=("); cat(ht$parameter, sep=","); cat(",), "); + cat("distr='"); cat(distr); cat("'"); + cat(")"); + cat("\n\n") +} + +header = " +import numpy as np + +class Bunch(dict): + def __init__(self, **kw): + dict.__init__(self, kw) + self.__dict__ = self + +" +write_header = function(){ + cat(header) +} + +# Example +#library(plm) +#library(systemfit) +#data(Grunfeld) +#panel <- plm.data(Grunfeld, c('firm','year')) +#SUR <- systemfit(inv ~ value + capital, method='SUR',data=panel) + +##translation table for names (could be dict in python) +#translate = list(coefficients="params", + #coefCov="cov_params", + #residCovEst="resid_cov_est", + #residCov="resid_cov", + #df_residual="df_resid", + #df_residual_sys="df_resid_sys", + ##nCoef="k_vars", #not sure about this + #fitted_values="fittedvalues" + #) + +#fname = "tmp_sur_0.py" +#append = FALSE #TRUE +#sink(file=fname, append=append) #redirect output to file +#cat(header) +#cat("\nsur = Bunch()\n") + +#cat_items(SUR, prefix="sur.", blacklist=c("eq", "control"), trans=translate) +#equations = SUR[["eq"]] +#for (ii in c(1:length(equations))) { + #equ_name = paste("sur.equ", ii, sep="") + #cat("\n\n", equ_name, sep=""); cat(" = Bunch()\n") + #cat_items(equations[[ii]], prefix=paste(equ_name, ".", sep=""), trans=translate) +#} +#sink() diff --git a/tools/R2nparray/R/ex_sur.R b/tools/R2nparray/R/ex_sur.R new file mode 100644 index 0000000..b8e2167 --- /dev/null +++ b/tools/R2nparray/R/ex_sur.R @@ -0,0 +1,47 @@ +data <- read.csv('E:\\path_to_repo\\statsmodels\\datasets\\grunfeld\\grunfeld.csv') +#data <- read.csv('../../../statsmodels/datasets/grunfeld/grunfeld.csv') + +data <- data[data$firm %in% c('General Motors','Chrysler','General Electric','Westinghouse','US Steel'),] +attach(data) +library('plm') +library('systemfit') +panel <- plm.data(data,c('firm','year')) +formula <- invest ~ value + capital +SUR <- systemfit(formula,method='SUR',data=panel) +f <- fitted(SUR) +ff <- c(f[,'Chrysler'],f[,'General.Electric'],f[,'General.Motors'],f[,'US.Steel'],f[,'Westinghouse']) + +#save results to python module +#load functions, (windows path separators) +source("E:\\path_to_repo\\tools\\R2nparray\\R\\R2nparray.R") +#source("R2nparray.R") + +#translation table for names (could be dict in python) +translate = list(coefficients="params", + coefCov="cov_params", + residCovEst="resid_cov_est", + residCov="resid_cov", + df_residual="df_resid", + df_residual_sys="df_resid_sys", + #nCoef="k_vars", #not sure about this + fitted_values="fittedvalues" + ) + +fname = "tmp_sur_0.py" +append = FALSE #TRUE + +#redirect output to file +sink(file=fname, append=append) +write_header() +cat("\nsur = Bunch()\n") + +cat_items(SUR, prefix="sur.", blacklist=c("eq", "control"), trans=translate) + +equations = SUR[["eq"]] +for (ii in c(1:length(equations))) { +equ_name = paste("sur.equ", ii, sep="") +cat("\n\n", equ_name, sep=""); cat(" = Bunch()\n") +cat_items(equations[[ii]], prefix=paste(equ_name, ".", sep=""), trans=translate) +} + +sink() diff --git a/tools/R2nparray/README.txt b/tools/R2nparray/README.txt new file mode 100644 index 0000000..0a08859 --- /dev/null +++ b/tools/R2nparray/README.txt @@ -0,0 +1,35 @@ +Using without installing +------------------------ + +To use this script from an R session: + + source('statsmodels/tools/R2nparray/R/R2nparray.R') + +The 3 most useful commands are: cat_items(), convert_items() and +apply_functions(). To print the content of an R regression to file in a format readable in python, you can: + + sink(file='tmp.py') + data(iris) + mod = lm(Sepal.Length ~ Sepal.Width, data=iris) + cat_items(mod) + sink() + +Install the R2nparray package +----------------------------- + +To make full use of the package's functions (including reading docs), you can +install R2nparray in your R library. This first requires installing the +devtools and roxygen2 packages: + + install.packages(c('devtools', 'roxygen2')) + +Then, you need to create a directory to host the documentation. The ``man`` +directory should be located here: + + mkdir statsmodels/tools/R2nparray/man + +Finally, run ``R`` inside the ``statsmodels.tools.R2nparray`` folder, and execute: + + library(devtools) + document() + install() diff --git a/tools/README.txt b/tools/README.txt new file mode 100644 index 0000000..db8f6dc --- /dev/null +++ b/tools/README.txt @@ -0,0 +1,45 @@ +This directory is only of interest to developers. It contains files needed to build the docs automatically and to do code maintenance. The below is just a reminder of the commands to update things. It may not necessarily reflect the current workflow. + +How to update the main entry page +--------------------------------- + +If you want to update the main docs page from the statsmodels-website then +run the following (with your credentials) + +make clean +make html +rsync -avPr -e ssh build/html/* jseabold,statsmodels@web.sourceforge.net:htdocs/ + +How to update the nightly builds +-------------------------------- +Note that this is done automatically with the update_web.py script except for +new releases. They should be done by hand if there are any backported changes. + +Important: Make sure you have the version installed for which you are building +the documentation if done by hand. + +To update devel branch (from the master branch) + +Make sure you have master installed +cd to docs directory +make clean +make html + +rsync -avPr -e ssh build/html/* jseabold,statsmodels@web.sourceforge.net:htdocs/devel + +How to add a new directory +--------------------------- +If you want to create a new directory on the sourceforge site. This can be done on linux as follows + +sftp jseabold,statsmodels@web.sourceforge.net + + +mkdir 0.2 +bye + +Then make sure you have the release installed, cd to the docs directory and run + +make clean +make html + +rsync -avPr -e ssh build/html/* jseabold,statsmodels@web.sourceforge.net:htdocs/0.2 diff --git a/tools/backport_pr.py b/tools/backport_pr.py new file mode 100644 index 0000000..fdc3c81 --- /dev/null +++ b/tools/backport_pr.py @@ -0,0 +1,171 @@ +#!/usr/bin/env python +""" +Backport pull requests to a particular branch. + +Usage: backport_pr.py branch [PR] + +e.g.: + + python tools/backport_pr.py 0.13.1 123 + +to backport PR #123 onto branch 0.13.1 + +or + + python tools/backport_pr.py 1.x + +to see what PRs are marked for backport that have yet to be applied. + +Copied from IPython 9e82bc5 +https://github.com/ipython/ipython/blob/master/tools/backport_pr.py +""" + +from __future__ import print_function + +import os +import re +import sys + +from subprocess import Popen, PIPE, check_call, check_output +from urllib import urlopen + +from gh_api import ( + get_issues_list, + get_pull_request, + get_pull_request_files, + is_pull_request, + get_milestone_id, +) + +from pandas import Series + +def find_rejects(root='.'): + for dirname, dirs, files in os.walk(root): + for fname in files: + if fname.endswith('.rej'): + yield os.path.join(dirname, fname) + +def get_current_branch(): + branches = check_output(['git', 'branch']) + for branch in branches.splitlines(): + if branch.startswith('*'): + return branch[1:].strip() + +def backport_pr(branch, num, project='statsmodels/statsmodels'): + current_branch = get_current_branch() + if branch != current_branch: + check_call(['git', 'checkout', branch]) + check_call(['git', 'pull']) + pr = get_pull_request(project, num, auth=True) + files = get_pull_request_files(project, num, auth=True) + patch_url = pr['patch_url'] + title = pr['title'] + description = pr['body'] + fname = "PR%i.patch" % num + if os.path.exists(fname): + print("using patch from {fname}".format(**locals())) + with open(fname) as f: + patch = f.read() + else: + req = urlopen(patch_url) + patch = req.read() + + msg = "Backport PR #%i: %s" % (num, title) + '\n\n' + description + check = Popen(['git', 'apply', '--check', '--verbose'], stdin=PIPE) + a,b = check.communicate(patch) + + if check.returncode: + print("patch did not apply, saving to {fname}".format(**locals())) + print("edit {fname} until `cat {fname} | git apply --check` succeeds".format(**locals())) + print("then run tools/backport_pr.py {num} again".format(**locals())) + if not os.path.exists(fname): + with open(fname, 'wb') as f: + f.write(patch) + return 1 + + p = Popen(['git', 'apply'], stdin=PIPE) + a,b = p.communicate(patch) + + filenames = [ f['filename'] for f in files ] + + check_call(['git', 'add'] + filenames) + + check_call(['git', 'commit', '-m', msg]) + + print("PR #%i applied, with msg:" % num) + print() + print(msg) + print() + + if branch != current_branch: + check_call(['git', 'checkout', current_branch]) + + return 0 + +backport_re = re.compile(r"[Bb]ackport.*?(\d+)") + +def already_backported(branch, since_tag=None): + """return set of PRs that have been backported already""" + if since_tag is None: + since_tag = check_output(['git','describe', branch, '--abbrev=0']).decode('utf8').strip() + cmd = ['git', 'log', '%s..%s' % (since_tag, branch), '--oneline'] + lines = check_output(cmd).decode('utf8') + return set(int(num) for num in backport_re.findall(lines)) + +def should_backport(labels=None, milestone=None): + """return set of PRs marked for backport""" + if labels is None and milestone is None: + raise ValueError("Specify one of labels or milestone.") + elif labels is not None and milestone is not None: + raise ValueError("Specify only one of labels or milestone.") + if labels is not None: + issues = get_issues_list("statsmodels/statsmodels", + labels=labels, + state='closed', + auth=True, + ) + else: + milestone_id = get_milestone_id("statsmodels/statsmodels", milestone, + auth=True) + issues = get_issues_list("statsmodels/statsmodels", + milestone=milestone_id, + state='closed', + auth=True, + ) + + should_backport = [] + merged_dates = [] + for issue in issues: + if not is_pull_request(issue): + continue + pr = get_pull_request("statsmodels/statsmodels", issue['number'], + auth=True) + if not pr['merged']: + print ("Marked PR closed without merge: %i" % pr['number']) + continue + if pr['number'] not in should_backport: + merged_dates.append(pr['merged_at']) + should_backport.append(pr['number']) + return Series(merged_dates, index=should_backport) + +if __name__ == '__main__': + + if len(sys.argv) < 2: + print(__doc__) + sys.exit(1) + + if len(sys.argv) < 3: + branch = sys.argv[1] + already = already_backported(branch) + #NOTE: change this to the label you've used for marking a backport + should = should_backport(milestone="0.5.1") + print ("The following PRs should be backported:") + to_backport = [] + if already: + should = should.ix[set(should.index).difference(already)] + should.sort() + for pr, date in should.iteritems(): + print (pr) + sys.exit(0) + + sys.exit(backport_pr(sys.argv[1], int(sys.argv[2]))) diff --git a/tools/binstar/README.md b/tools/binstar/README.md new file mode 100644 index 0000000..776b654 --- /dev/null +++ b/tools/binstar/README.md @@ -0,0 +1,27 @@ +Binstar +======= + +[Binstar](http://binstar.org) is Continuum's solution for binary package distribution. This directory contains the files required for building a binstar package: + + * `meta.yaml` - Information about the package and dependencies + * `bld.bat` - Windows batch file called in the build process + * `build.sh` - Linux/OSX batch file called in the build process + +Two other helper files are included to automate building across Python 2.7, 3.3 and 3.4. + + * `binstar_windows.bat` + * `binstar_unix.sh` + +Running either file from statsmodels/binstar will build all three versions and upload them, assuming the account has been authenticated using + +``` +binstar login +``` + +Installing from binstar +----------------------- +The most recent snapshot can be installed using + +``` +conda install -c https://conda.binstar.org/statsmodels statsmodels +``` diff --git a/tools/binstar/binstar_unix.sh b/tools/binstar/binstar_unix.sh new file mode 100644 index 0000000..babece6 --- /dev/null +++ b/tools/binstar/binstar_unix.sh @@ -0,0 +1,26 @@ +#!/bin/bash +cd ../.. + +## detect OS +if [ "$(uname)" == "Darwin" ]; then + export OS=osx-64 +else + export OS=linux-64 +fi + + +## declare Python and Numpy Versions +declare -a PY_VERSIONS=( "27" "33" "34" ) +declare -a NPY_VERSIONS=( "18" "19" ) + +## Loop across Python and Numpy +for PY in "${PY_VERSIONS[@]}" + do + export CONDA_PY=$PY + for NPY in "${NPY_VERSIONS[@]}" + do + export CONDA_NPY=$NPY + binstar remove statsmodels/statsmodels/0.6.0_dev/${OS}/statsmodels-0.6.0_dev-np${NPY}py${PY}_0.tar.bz2 -f + conda build ./tools/binstar + done +done \ No newline at end of file diff --git a/tools/binstar/binstar_windows.bat b/tools/binstar/binstar_windows.bat new file mode 100644 index 0000000..960f26a --- /dev/null +++ b/tools/binstar/binstar_windows.bat @@ -0,0 +1,37 @@ +@echo off +Setlocal EnableDelayedExpansion +REM Get current directory +SET CURRENT_WORKING_DIR=%~dp0 +REM Python and NumPy versions +set PY_VERSION=27 33 34 +set NPY_VERSION=18 19 + + +(for %%P in (%PY_VERSION%) do ( + (for %%N in (%NPY_VERSION%) do ( + + REM Trick to force a delay. Windows sometimes has issues with rapid file deletion + call PING 1.1.1.1 -n 1 -w 5000 >NUL + REM Clean up + robocopy C:\Anaconda\conda-bld\work\ c:\temp\conda-work-trash * /MOVE /S + del c:\temp\conda-work-trash\*.*? /s + rmdir C:\Anaconda\conda-bld\work\.git /S /Q + REM Trick to force a delay. Windows sometimes has issues with rapid file deletion + call PING 1.1.1.1 -n 1 -w 30000 >NUL + + IF %%P==27 ( + call python2_setup.bat + ) ELSE ( + call python3_setup.bat + ) + set CONDA_PY=%%P + set CONDA_NPY=%%N + echo Python: !CONDA_PY!, NumPy: !CONDA_NPY! + + REM Remove from binstar + binstar remove statsmodels/statsmodels/0.6.0_dev/win-64\statsmodels-0.6.0_dev-np!CONDA_NPY!py!CONDA_PY!_0.tar.bz2 --force + cd %CURRENT_WORKING_DIR% + cd ..\.. + conda build .\tools\binstar + )) +)) diff --git a/tools/binstar/bld.bat b/tools/binstar/bld.bat new file mode 100644 index 0000000..762d43b --- /dev/null +++ b/tools/binstar/bld.bat @@ -0,0 +1 @@ +python setup.py install diff --git a/tools/binstar/build.sh b/tools/binstar/build.sh new file mode 100644 index 0000000..6b42b55 --- /dev/null +++ b/tools/binstar/build.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +${PYTHON} setup.py install || exit 1; diff --git a/tools/binstar/meta.yaml b/tools/binstar/meta.yaml new file mode 100644 index 0000000..6ff45f8 --- /dev/null +++ b/tools/binstar/meta.yaml @@ -0,0 +1,35 @@ +package: + name: statsmodels + version: "0.6.0_dev" + +source: + git_url: https://github.com/statsmodels/statsmodels.git + +build: + number: 0 + +requirements: + build: + - python + - distribute + - cython 0.20* + - numpy + - scipy + - pandas + - patsy + + run: + - python + - numpy + - numpy + - scipy + - pandas + - patsy + +test: + imports: + - statsmodels + +about: + home: http://www.statsmodels.org/ + license : BSD License \ No newline at end of file diff --git a/tools/binstar/python2_setup.bat b/tools/binstar/python2_setup.bat new file mode 100644 index 0000000..97e786d --- /dev/null +++ b/tools/binstar/python2_setup.bat @@ -0,0 +1,9 @@ +echo Python 2.x setup +REM Setup compiler +REM The Windows 7 SDK with .Net 3.5 is buggy on Windows 8. These paths are needed to fix these issues +set PATH=C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE;%PATH% +set INCLUDE=C:\Program Files\Microsoft SDKs\Windows\v7.0\Include;C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include;%INCLUDE% +set LIB=C:\Program Files\Microsoft SDKs\Windows\v7.0\Lib\x64;C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\lib\amd64 +set DISTUTILS_USE_SDK=1 +REM This setenv is the setenv that came with SDK7, with the bugs fixed +CALL "C:\temp\setenv" /x64 /release diff --git a/tools/binstar/python3_setup.bat b/tools/binstar/python3_setup.bat new file mode 100644 index 0000000..468ee2c --- /dev/null +++ b/tools/binstar/python3_setup.bat @@ -0,0 +1,6 @@ +echo Python 3.x setup +REM Setup compiler +set PATH=C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE;%PATH% +cd C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin +set DISTUTILS_USE_SDK=1 +CALL "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\setenv" /x64 /release diff --git a/tools/build_win_bdist32-py26.bat b/tools/build_win_bdist32-py26.bat new file mode 100644 index 0000000..cedd030 --- /dev/null +++ b/tools/build_win_bdist32-py26.bat @@ -0,0 +1,6 @@ +setlocal EnableDelayedExpansion +CALL "C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin\SetEnv.cmd" /x86 /release +set DISTUTILS_USE_SDK=1 +C:\Python26_32bit\python.exe C:\Users\skipper\statsmodels\statsmodels\setup.py bdist_wininst +rem bdist_msi uses StrictVersion so can't be used for release candidates +rem C:\Python26_32bit\python.exe C:\Users\skipper\statsmodels\statsmodels\setup.py bdist_msi diff --git a/tools/build_win_bdist32-py27.bat b/tools/build_win_bdist32-py27.bat new file mode 100644 index 0000000..514d803 --- /dev/null +++ b/tools/build_win_bdist32-py27.bat @@ -0,0 +1,6 @@ +setlocal EnableDelayedExpansion +CALL "C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin\SetEnv.cmd" /x86 /release +set DISTUTILS_USE_SDK=1 +C:\Python27_32bit\python.exe C:\Users\skipper\statsmodels\statsmodels\setup.py bdist_wininst +rem bdist_msi uses StrictVersion so can't be used for release candidates +rem C:\Python27_32bit\python.exe C:\Users\skipper\statsmodels\statsmodels\setup.py bdist_msi diff --git a/tools/build_win_bdist32-py32.bat b/tools/build_win_bdist32-py32.bat new file mode 100644 index 0000000..7d02091 --- /dev/null +++ b/tools/build_win_bdist32-py32.bat @@ -0,0 +1,5 @@ +setlocal EnableDelayedExpansion +CALL "C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin\SetEnv.cmd" /x86 /release +set DISTUTILS_USE_SDK=1 +rem C:\Python27_32bit\python.exe C:\Users\skipper\statsmodels\statsmodels\setup.py bdist_msi +C:\Python32_32bit\python.exe C:\Users\skipper\statsmodels\statsmodels\setup.py bdist_wininst diff --git a/tools/build_win_bdist32-py33.bat b/tools/build_win_bdist32-py33.bat new file mode 100644 index 0000000..d5d22c9 --- /dev/null +++ b/tools/build_win_bdist32-py33.bat @@ -0,0 +1,5 @@ +setlocal EnableDelayedExpansion +CALL "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x86 /release +set DISTUTILS_USE_SDK=1 +rem C:\Python27_32bit\python.exe C:\Users\skipper\statsmodels\statsmodels\setup.py bdist_msi +C:\Python33_32bit\python.exe C:\Users\skipper\statsmodels\statsmodels\setup.py bdist_wininst diff --git a/tools/build_win_bdist32-py34.bat b/tools/build_win_bdist32-py34.bat new file mode 100644 index 0000000..fef3543 --- /dev/null +++ b/tools/build_win_bdist32-py34.bat @@ -0,0 +1,5 @@ +setlocal EnableDelayedExpansion +CALL "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x86 /release +set DISTUTILS_USE_SDK=1 +rem C:\Python27_32bit\python.exe C:\Users\skipper\statsmodels\statsmodels\setup.py bdist_msi +C:\Python34_32bit\python.exe C:\Users\skipper\statsmodels\statsmodels\setup.py bdist_wininst diff --git a/tools/build_win_bdist64-py26.bat b/tools/build_win_bdist64-py26.bat new file mode 100644 index 0000000..58b4ae6 --- /dev/null +++ b/tools/build_win_bdist64-py26.bat @@ -0,0 +1,5 @@ +setlocal EnableDelayedExpansion +CALL "C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin\SetEnv.cmd" /x64 /release +set DISTUTILS_USE_SDK=1 +rem C:\Python26_64bit\python.exe C:\Users\skipper\statsmodels\statsmodels\setup.py bdist_msi +C:\Python26_64bit\python.exe C:\Users\skipper\statsmodels\statsmodels\setup.py bdist_wininst diff --git a/tools/build_win_bdist64-py27.bat b/tools/build_win_bdist64-py27.bat new file mode 100644 index 0000000..72fed62 --- /dev/null +++ b/tools/build_win_bdist64-py27.bat @@ -0,0 +1,5 @@ +setlocal EnableDelayedExpansion +CALL "C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin\SetEnv.cmd" /x64 /release +set DISTUTILS_USE_SDK=1 +rem C:\Python27_64bit\python.exe C:\Users\skipper\statsmodels\statsmodels\setup.py bdist_msi +C:\Python27_64bit\python.exe C:\Users\skipper\statsmodels\statsmodels\setup.py bdist_wininst diff --git a/tools/build_win_bdist64-py32.bat b/tools/build_win_bdist64-py32.bat new file mode 100644 index 0000000..ade60bc --- /dev/null +++ b/tools/build_win_bdist64-py32.bat @@ -0,0 +1,5 @@ +setlocal EnableDelayedExpansion +CALL "C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin\SetEnv.cmd" /x64 /release +set DISTUTILS_USE_SDK=1 +rem C:\Python27\python.exe C:\Users\skipper\statsmodels\statsmodels\setup.py bdist_msi +C:\Python32_64bit\python.exe C:\Users\skipper\statsmodels\statsmodels\setup.py bdist_wininst diff --git a/tools/build_win_bdist64-py33.bat b/tools/build_win_bdist64-py33.bat new file mode 100644 index 0000000..4259064 --- /dev/null +++ b/tools/build_win_bdist64-py33.bat @@ -0,0 +1,5 @@ +setlocal EnableDelayedExpansion +CALL "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64 /release +set DISTUTILS_USE_SDK=1 +rem C:\Python27\python.exe C:\Users\skipper\statsmodels\statsmodels\setup.py bdist_msi +C:\Python33_64bit\python.exe C:\Users\skipper\statsmodels\statsmodels\setup.py bdist_wininst diff --git a/tools/build_win_bdist64-py34.bat b/tools/build_win_bdist64-py34.bat new file mode 100644 index 0000000..c6e43f1 --- /dev/null +++ b/tools/build_win_bdist64-py34.bat @@ -0,0 +1,5 @@ +setlocal EnableDelayedExpansion +CALL "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64 /release +set DISTUTILS_USE_SDK=1 +rem C:\Python27\python.exe C:\Users\skipper\statsmodels\statsmodels\setup.py bdist_msi +C:\Python34_64bit\python.exe C:\Users\skipper\statsmodels\statsmodels\setup.py bdist_wininst diff --git a/tools/check_dirs.py b/tools/check_dirs.py new file mode 100644 index 0000000..3abe14d --- /dev/null +++ b/tools/check_dirs.py @@ -0,0 +1,23 @@ +'''helper script to check which directories are not on python path + +all test folders should have and ``__init__.py`` + +''' + +import os + +root = '../statsmodels' + +print('base, dnames, len(fnames), n_py') +for base, dnames, fnames in os.walk(root): + if not '__init__.py' in fnames: + #I have some empty directories when I switch git branches + if (len(dnames) + len(fnames)) != 0: + n_py = len([f for f in fnames if f[-3:] == '.py']) + if n_py > 0: + print(base, dnames, len(fnames), n_py) + + if '__pycache__' in dnames: + dnames.remove('__pycache__') + if 'src' in dnames: + dnames.remove('src') diff --git a/tools/code_maintenance.py b/tools/code_maintenance.py new file mode 100644 index 0000000..445329d --- /dev/null +++ b/tools/code_maintenance.py @@ -0,0 +1,84 @@ +""" +Code maintenance script modified from PyMC +""" + +#!/usr/bin/env python +import sys +import os + +# This is a function, not a test case, because it has to be run from inside +# the source tree to work well. + +mod_strs = ['IPython', 'pylab', 'matplotlib', 'scipy','Pdb'] + +dep_files = {} +for mod_str in mod_strs: + dep_files[mod_str] = [] + +def remove_whitespace(fname): + # Remove trailing whitespace + fd = open(fname,mode='U') # open in universal newline mode + lines = [] + for line in fd.readlines(): + lines.append( line.rstrip() ) + fd.close() + + fd = open(fname,mode='w') + fd.seek(0) + for line in lines: + fd.write(line+'\n') + fd.close() + # print 'Removed whitespace from %s'%fname + +def find_whitespace(fname): + fd = open(fname, mode='U') + for line in fd.readlines(): + #print repr(line) + if ' \n' in line: + print fname + break + + +# print +print_only = True + +# ==================== +# = Strip whitespace = +# ==================== +for dirname, dirs, files in os.walk('.'): + if dirname[1:].find('.')==-1: + # print dirname + for fname in files: + if fname[-2:] in ['c', 'f'] or fname[-3:]=='.py' or fname[-4:] in ['.pyx', '.txt', '.tex', '.sty', '.cls'] or fname.find('.')==-1: + # print fname + if print_only: + find_whitespace(dirname + '/' + fname) + else: + remove_whitespace(dirname + '/' + fname) + + +""" + +# ========================== +# = Check for dependencies = +# ========================== +for dirname, dirs, files in os.walk('pymc'): + for fname in files: + if fname[-3:]=='.py' or fname[-4:]=='.pyx': + if dirname.find('sandbox')==-1 and fname != 'test_dependencies.py'\ + and dirname.find('examples')==-1: + for mod_str in mod_strs: + if file(dirname+'/'+fname).read().find(mod_str)>=0: + dep_files[mod_str].append(dirname+'/'+fname) + + +print 'Instances of optional dependencies found are:' +for mod_str in mod_strs: + print '\t'+mod_str+':' + for fname in dep_files[mod_str]: + print '\t\t'+fname +if len(dep_files['Pdb'])>0: + raise ValueError, 'Looks like Pdb was not commented out in '+', '.join(dep_files[mod_str]) + + +""" diff --git a/tools/cythonize.py b/tools/cythonize.py new file mode 100755 index 0000000..a8be550 --- /dev/null +++ b/tools/cythonize.py @@ -0,0 +1,198 @@ +#!/usr/bin/env python +""" cythonize + +Cythonize pyx files into C files as needed. + +Usage: cythonize [root_dir] + +Default [root_dir] is 'statsmodels'. + +Checks pyx files to see if they have been changed relative to their +corresponding C files. If they have, then runs cython on these files to +recreate the C files. + +The script thinks that the pyx files have changed relative to the C files +by comparing hashes stored in a database file. + +Simple script to invoke Cython (and Tempita) on all .pyx (.pyx.in) +files; while waiting for a proper build system. Uses file hashes to +figure out if rebuild is needed. + +For now, this script should be run by developers when changing Cython files +only, and the resulting C files checked in, so that end-users (and Python-only +developers) do not get the Cython/Tempita dependencies. + +Originally written by Dag Sverre Seljebotn, and copied here from: + +https://raw.github.com/dagss/private-scipy-refactor/cythonize/cythonize.py + +Note: this script does not check any of the dependent C libraries; it only +operates on the Cython .pyx files. +""" + +from __future__ import division, print_function, absolute_import + +import os +import re +import sys +import hashlib +import subprocess + +HASH_FILE = 'cythonize.dat' +DEFAULT_ROOT = 'statsmodels' + +# WindowsError is not defined on unix systems +try: + WindowsError +except NameError: + WindowsError = None + +# +# Rules +# +def process_pyx(fromfile, tofile): + try: + from Cython.Compiler.Version import version as cython_version + from distutils.version import LooseVersion + if LooseVersion(cython_version) < LooseVersion('0.19'): + raise Exception('Building Statsmodels requires Cython >= 0.19') + + except ImportError: + pass + + flags = ['--fast-fail'] + if tofile.endswith('.cxx'): + flags += ['--cplus'] + + try: + try: + r = subprocess.call(['cython'] + flags + ["-o", tofile, fromfile]) + if r != 0: + raise Exception('Cython failed') + except OSError: + # There are ways of installing Cython that don't result in a cython + # executable on the path, see gh-2397. + r = subprocess.call([sys.executable, '-c', + 'import sys; from Cython.Compiler.Main import ' + 'setuptools_main as main; sys.exit(main())'] + flags + + ["-o", tofile, fromfile]) + if r != 0: + raise Exception('Cython failed') + except OSError: + raise OSError('Cython needs to be installed') + +def process_tempita_pyx(fromfile, tofile): + try: + try: + from Cython import Tempita as tempita + except ImportError: + import tempita + except ImportError: + raise Exception('Building Statsmodels requires Tempita: ' + 'pip install --user Tempita') + with open(fromfile, "r") as f: + tmpl = f.read() + pyxcontent = tempita.sub(tmpl) + assert fromfile.endswith('.pyx.in') + pyxfile = fromfile[:-len('.pyx.in')] + '.pyx' + with open(pyxfile, "w") as f: + f.write(pyxcontent) + process_pyx(pyxfile, tofile) + +rules = { + # fromext : function + '.pyx' : process_pyx, + '.pyx.in' : process_tempita_pyx + } +# +# Hash db +# +def load_hashes(filename): + # Return { filename : (sha1 of input, sha1 of output) } + if os.path.isfile(filename): + hashes = {} + with open(filename, 'r') as f: + for line in f: + filename, inhash, outhash = line.split() + hashes[filename] = (inhash, outhash) + else: + hashes = {} + return hashes + +def save_hashes(hash_db, filename): + with open(filename, 'w') as f: + for key, value in sorted(hash_db.items()): + f.write("%s %s %s\n" % (key, value[0], value[1])) + +def sha1_of_file(filename): + h = hashlib.sha1() + with open(filename, "rb") as f: + h.update(f.read()) + return h.hexdigest() + +# +# Main program +# + +def normpath(path): + path = path.replace(os.sep, '/') + if path.startswith('./'): + path = path[2:] + return path + +def get_hash(frompath, topath): + from_hash = sha1_of_file(frompath) + to_hash = sha1_of_file(topath) if os.path.exists(topath) else None + return (from_hash, to_hash) + +def process(path, fromfile, tofile, processor_function, hash_db): + fullfrompath = os.path.join(path, fromfile) + fulltopath = os.path.join(path, tofile) + current_hash = get_hash(fullfrompath, fulltopath) + if current_hash == hash_db.get(normpath(fullfrompath), None): + print('%s has not changed' % fullfrompath) + return + + orig_cwd = os.getcwd() + try: + os.chdir(path) + print('Processing %s' % fullfrompath) + processor_function(fromfile, tofile) + finally: + os.chdir(orig_cwd) + # changed target file, recompute hash + current_hash = get_hash(fullfrompath, fulltopath) + # store hash in db + hash_db[normpath(fullfrompath)] = current_hash + + +def find_process_files(root_dir): + hash_db = load_hashes(HASH_FILE) + for cur_dir, dirs, files in os.walk(root_dir): + for filename in files: + in_file = os.path.join(cur_dir, filename + ".in") + if filename.endswith('.pyx') and os.path.isfile(in_file): + continue + for fromext, function in rules.items(): + if filename.endswith(fromext): + toext = ".c" + with open(os.path.join(cur_dir, filename), 'rb') as f: + data = f.read() + m = re.search(br"^\s*#\s*distutils:\s*language\s*=\s*c\+\+\s*$", data, re.I|re.M) + if m: + toext = ".cxx" + fromfile = filename + tofile = filename[:-len(fromext)] + toext + process(cur_dir, fromfile, tofile, function, hash_db) + save_hashes(hash_db, HASH_FILE) + +def main(): + try: + root_dir = sys.argv[1] + except IndexError: + root_dir = DEFAULT_ROOT + find_process_files(root_dir) + + +if __name__ == '__main__': + main() diff --git a/tools/dataset_rst.py b/tools/dataset_rst.py new file mode 100755 index 0000000..c8cc4d5 --- /dev/null +++ b/tools/dataset_rst.py @@ -0,0 +1,71 @@ +#! /usr/bin/env python +""" +Run this script to convert dataset documentation to ReST files. Relies +on the meta-information from the datasets of the currently installed version. +Ie., it imports the datasets package to scrape the meta-information. +""" + +import statsmodels.api as sm +import os +from os.path import join, realpath, dirname +import inspect +from string import Template + +import hash_funcs + +file_path = dirname(__file__) +dest_dir = realpath(join(file_path, '..', 'docs', 'source', 'datasets', + 'generated')) + +datasets = dict(inspect.getmembers(sm.datasets, inspect.ismodule)) +datasets.pop('utils') + +doc_template = Template(u"""$TITLE +$title_ + +Description +----------- + +$DESCRIPTION + +Notes +----- +$NOTES + +Source +------ +$SOURCE + +Copyright +--------- + +$COPYRIGHT +""") + +if __name__ == "__main__": + + if not os.path.exists(dest_dir): + os.makedirs(dest_dir) + + for dataset in datasets: + write_pth = join(dest_dir, dataset + '.rst') + data_mod = datasets[dataset] + title = getattr(data_mod, 'TITLE') + descr = getattr(data_mod, 'DESCRLONG') + copyr = getattr(data_mod, 'COPYRIGHT') + notes = getattr(data_mod, 'NOTE') + source = getattr(data_mod, 'SOURCE') + write_file = doc_template.substitute(TITLE=title, + title_='='*len(title), + DESCRIPTION=descr, NOTES=notes, + SOURCE=source, COPYRIGHT=copyr) + to_write, filehash = hash_funcs.check_hash(write_file.encode(), + data_mod.__name__.encode()) + if not to_write: + print("Hash has not changed for docstring of dataset " + "{}".format(dataset)) + continue + with open(os.path.realpath(write_pth), 'w') as rst_file: + rst_file.write(write_file) + if filehash is not None: + hash_funcs.update_hash_dict(filehash, data_mod.__name__) diff --git a/tools/estmat2nparray.ado b/tools/estmat2nparray.ado new file mode 100644 index 0000000..a486065 --- /dev/null +++ b/tools/estmat2nparray.ado @@ -0,0 +1,141 @@ +* +* Save estimation results and matrices to a Python module +* +* Based on mat2nparray by Skipper +* Changes by Josef +* +* changes +* ------- +* write also column and row names of matrices to py module +* replace missing values by np.nan in matrices +* make namelist optional +* add estimation results from e(), e(scalars) and e(macros), not the matrices in e +* make estimation result optional +* add aliases for params_table +* don't split col or row names if only 1 - changed my mind: always list + +* Issues +* ------ +* row and colum names if only a single row or column - list or string + +capture program drop estmat2nparray +program define estmat2nparray + version 11.0 + syntax [namelist(min=1)], SAVing(str) [ Format(str) APPend REPlace NOEst] + if "`format'"=="" local format "%16.0g" + local saving: subinstr local saving "." ".", count(local ext) + if !`ext' local saving "`saving'.py" + tempname myfile + file open `myfile' using "`saving'", write text `append' `replace' + file write `myfile' "import numpy as np" _n _n + + /* get results from e()*/ + if "`noest'" == "" { + file write `myfile' "est = dict(" _n + + local escalars : e(scalars) + foreach ii in `escalars'{ + file write `myfile' " " "`ii'" " = " "`e(`ii')'" "," _n + } + + local emacros : e(macros) + foreach ii in `emacros' { + file write `myfile' " " "`ii'" " = " `"""' "`e(`ii')'" `"""' "," _n + } + file write `myfile' " )" _n _n + } + /* end write e()*/ + + + foreach mat of local namelist { + mkarray `mat' `myfile' `format' + } + file write `myfile' "class Bunch(dict):" _n + file write `myfile' " def __init__(self, **kw):" _n + file write `myfile' " dict.__init__(self, kw)" _n + file write `myfile' " self.__dict__ = self" _n _n + + if "`noest'" == "" { + file write `myfile' " for i,att in enumerate(['params', 'bse', 'tvalues', 'pvalues']):" _n + file write `myfile' " self[att] = self.params_table[:,i]" _n _n + } + file write `myfile' "" _n + file write `myfile' "results = Bunch(" _n + foreach mat of local namelist { + file write `myfile' " `mat'=`mat', " _n + file write `myfile' " `mat'_colnames=`mat'_colnames, " _n + file write `myfile' " `mat'_rownames=`mat'_rownames, " _n + } + + if "`noest'" == "" { + file write `myfile' " **est" _n + } + file write `myfile' " )" _n _n +file close `myfile' +end + +capture program drop mkarray +program define mkarray + + args mat myfile fmt + local nrows = rowsof(`mat') + local ncols = colsof(`mat') + local i 1 + local j 1 + file write `myfile' "`mat' = np.array([" + local justifyn = length("`mat' = np.array([") + forvalues i=1/`nrows' { + forvalues j = 1/`ncols' { + if `i' > 1 | `j' > 1 { // then we need to indent + forvalues k=1/`justifyn' { + file write `myfile' " " + } + } + if `i' < `nrows' | `j' < `ncols' { + if mi(`mat'[`i',`j']) { + file write `myfile' "np.nan" ", " _n + } + else { + file write `myfile' `fmt' (`mat'[`i',`j']) ", " _n + } + } + else { + if mi(`mat'[`i',`j']) { + file write `myfile' "np.nan" + } + else { + file write `myfile' `fmt' (`mat'[`i',`j']) + } + } + } + } + + if `nrows' == 1 | `ncols' == 1 { + file write `myfile' "])" _n _n + } + else { + file write `myfile' "]).reshape(`nrows',`ncols')" _n _n + } + capture drop colnms + local colnms: coln `mat' + capture file write `myfile' "`mat'_colnames = '" "`colnms'" "'" + * always split -> return list for single column + * set > 1 to avoid list for single column + if `ncols' > 0 { + file write `myfile' ".split()" _n _n + } + else { + file write `myfile' _n _n + } + + capture drop rownms + local rownms: rown `mat' + capture file write `myfile' "`mat'_rownames = '" "`rownms'" "'" + * always split -> return list for single row + if `nrows' > 0 { + file write `myfile' ".split()" _n _n + } + else { + file write `myfile' _n _n + } +end diff --git a/tools/examples_rst.py b/tools/examples_rst.py new file mode 100755 index 0000000..312ee1e --- /dev/null +++ b/tools/examples_rst.py @@ -0,0 +1,168 @@ +#! /usr/bin/env python + +import os +import sys +import re +import subprocess +import pickle +from StringIO import StringIO + +# 3rd party +from matplotlib import pyplot as plt + +# Ours +import hash_funcs + +#---------------------------------------------------- +# Globals +#---------------------------------------------------- +# these files do not get made into .rst files because of +# some problems, they may need a simple cleaning up +exclude_list = ['run_all.py', + # these need to be cleaned up + 'example_ols_tftest.py', + 'example_glsar.py', + 'example_ols_table.py', + #not finished yet + 'example_arima.py', + 'try_wls.py'] + +file_path = os.path.dirname(__file__) +docs_rst_dir = os.path.realpath(os.path.join(file_path, + '../docs/source/examples/generated/')) +example_dir = os.path.realpath(os.path.join(file_path, + '../examples/')) + +def check_script(filename): + """ + Run all the files in filelist from run_all. Add any with problems + to exclude_list and return it. + """ + + file_to_run = "python -c\"import warnings; " + file_to_run += "warnings.simplefilter('ignore'); " + file_to_run += "from matplotlib import use; use('Agg'); " + file_to_run += "execfile(r'%s')\"" % os.path.join(example_dir, filename) + proc = subprocess.Popen(file_to_run, shell=True, stdout=subprocess.PIPE, + stderr=subprocess.PIPE) + #NOTE: use communicate to wait for process termination + stdout, stderr = proc.communicate() + result = proc.returncode + if result != 0: # raised an error + msg = "Not generating reST from %s. An error occurred.\n" % filename + msg += stderr + print msg + return False + return True + +def parse_docstring(block): + """ + Strips the docstring from a string representation of the file. + Returns the docstring and block without it + """ + ds = "\"{3}|'{3}" + try: + start = re.search(ds, block).end() + end = re.search(ds, block[start:]).start() + except: #TODO: make more informative + raise IOError("File %s does not have a docstring?") + docstring = block[start:start+end] + block = block[start+end+3:] + return docstring.strip(), block + +def parse_file(block): + """ + Block is a raw string file. + """ + docstring, block = parse_docstring(block) + # just get the first line from the docstring + docstring = docstring.split('\n')[0] or docstring.split('\n')[1] + outfile = [docstring,'='*len(docstring),''] + block = block.split('\n') + + # iterate through the rest of block, anything in comments is stripped of # + # anything else is fair game to go in an ipython directive + code_snippet = False + for line in block: + #if not len(line): + # continue + # preserve blank lines + + if line.startswith('#') and not (line.startswith('#%') or + line.startswith('#@')): + # on some ReST text + if code_snippet: # were on a code snippet + outfile.append('') + code_snippet = False + line = line.strip() + # try to remove lines like # hello -> #hello + line = re.sub("(?<=#) (?!\s)", "", line) + # make sure commented out things have a space + line = re.sub("#\.\.(?!\s)", "#.. ", line) + line = re.sub("^#+", "", line) # strip multiple hashes + outfile.append(line) + else: + if not code_snippet: # new code block + outfile.append('\n.. ipython:: python\n') + code_snippet = True + # handle decorators and magic functions + if line.startswith('#%') or line.startswith('#@'): + line = line[1:] + outfile.append(' '+line.strip('\n')) + return '\n'.join(outfile) + +def write_file(outfile, rst_file_pth): + """ + Write outfile to rst_file_pth + """ + print "Writing ", os.path.basename(rst_file_pth) + write_file = open(rst_file_pth, 'w') + write_file.writelines(outfile) + write_file.close() + +def restify(example_file, filehash, fname): + """ + Takes a whole file ie., the result of file.read(), its md5 hash, and + the filename + Parse the file + Write the new .rst + Update the hash_dict + """ + write_filename = os.path.join(docs_rst_dir, fname[:-2] + 'rst') + try: + rst_file = parse_file(example_file) + except IOError as err: + raise IOError(err.message % fname) + write_file(rst_file, write_filename) + if filehash is not None: + hash_funcs.update_hash_dict(filehash, fname) + +if __name__ == "__main__": + sys.path.insert(0, example_dir) + from run_all import filelist + sys.path.remove(example_dir) + + if not os.path.exists(docs_rst_dir): + os.makedirs(docs_rst_dir) + + if len(sys.argv) > 1: # given a file,files to process, no help flag yet + for example_file in sys.argv[1:]: + whole_file = open(example_file, 'r').read() + restify(whole_file, None, example_file) + + else: # process the whole directory + for root, dirnames, filenames in os.walk(example_dir): + if 'notebooks' in root: + continue + for example in filenames: + example_file = os.path.join(root, example) + whole_file = open(example_file, 'r').read() + to_write, filehash = hash_funcs.check_hash(whole_file, + example) + if not to_write: + print "Hash has not changed for file %s" % example + continue + elif (not example.endswith('.py') or example in exclude_list or + not check_script(example_file)): + continue + restify(whole_file, filehash, example) diff --git a/tools/fold_toc.py b/tools/fold_toc.py new file mode 100755 index 0000000..ed2e39e --- /dev/null +++ b/tools/fold_toc.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python +import sys +import re + +# Read doc to string +filename = sys.argv[1] +try: + static_path = sys.argv[2] +except: + static_path = '_static' +doc = open(filename).read() + +# Add mktree to head +pre = '' +post = ''' + + +''' +post = re.sub('static_path', static_path, post) +doc = re.sub(pre, post, doc) + +# TOC class +pre = '''

    +
      ''' +post = '''
      +Expand all. +Collapse all. +
        ''' +toc_n = doc.count('toctree-wrapper') +for i in range(toc_n): + post_n = re.sub('#', str(i), post) + doc = re.sub(pre, post_n, doc, count=1) + +## TOC entries +pre = '
      • ' +post = '
      • ' +doc = re.sub(pre, post, doc) + +# TOC entries 2nd level +pre = '
      • ' +post = '
      • ' +doc = re.sub(pre, post, doc) + +# TOC entries 3rd level +pre = '
      • ' +post = '
      • ' +doc = re.sub(pre, post, doc) + +# TOC entries 4th level +pre = '
      • ' +post = '
      • ' +doc = re.sub(pre, post, doc) + +# Write to file +f = open(filename, 'w') +f.write(doc) +f.close() diff --git a/tools/generate_formula_api.py b/tools/generate_formula_api.py new file mode 100755 index 0000000..f30efe9 --- /dev/null +++ b/tools/generate_formula_api.py @@ -0,0 +1,74 @@ +#! /usr/bin/python +""" +This will generate an API file for formula. in dir/statsmodels/formula/api.py + +It first builds statsmodels in place, then generates the file. It's to be run +by developers to add files to the formula API without having to maintain this +by hand. + +usage + +generate_formula_api /home/skipper/statsmodels/statsmodels/ +""" + +import sys +import os + +def iter_subclasses(cls, _seen=None, template_classes=[]): + """ + Generator to iterate over all the subclasses of Model. Based on + + http://code.activestate.com/recipes/576949-find-all-subclasses-of-a-given-class/ + + Yields class + """ + if not isinstance(cls, type): + raise TypeError('itersubclasses must be called with ' + 'new-style classes, not %.100r' % cls) + if _seen is None: + _seen = set() + try: + subs = cls.__subclasses__() + except TypeError: # fails only when cls is type + subs = cls.__subclasses__(cls) + for sub in subs: + if sub not in _seen and sub.__name__ not in template_classes: + _seen.add(sub) + # we don't want to yield the templates, but we do want to + # recurse on them + yield sub + for sub in iter_subclasses(sub, _seen, template_classes): + yield sub + +def write_formula_api(directory): + template_classes = ['DiscreteModel', 'BinaryModel', 'MultinomialModel', + 'OrderedModel', 'CountModel', + 'LikelihoodModel', 'GenericLikelihoodModel', + 'TimeSeriesModel', + # this class should really be deleted + 'ARIMAProcess', + # these need some more work, so don't expose them + 'ARIMA', 'VAR', 'SVAR', 'AR', 'NBin', 'NbReg', 'ARMA', + ] + + fout = open(os.path.join(directory, 'statsmodels', 'formula', 'api.py'), + 'w') + for model in iter_subclasses(Model, template_classes=template_classes): + print "Generating API for %s" % model.__name__ + fout.write( + 'from '+model.__module__+' import ' + model.__name__ + '\n' + ) + fout.write( + model.__name__.lower() +' = '+ model.__name__ +'.from_formula\n' + ) + fout.close() + +if __name__ == "__main__": + import statsmodels.api as sm + print "Generating formula API for statsmodels version %s" % sm.version.full_version + directory = sys.argv[1] + cur_dir = os.path.dirname(__file__) + os.chdir(directory) + # it needs to be installed to walk the whole subclass chain? + from statsmodels.base.model import Model + write_formula_api(directory) diff --git a/tools/gh_api.py b/tools/gh_api.py new file mode 100644 index 0000000..0bab132 --- /dev/null +++ b/tools/gh_api.py @@ -0,0 +1,281 @@ +"""Functions for Github API requests. + +Copied from IPython 9e82bc5 +https://github.com/ipython/ipython/blob/master/tools/gh_api.py +""" +from __future__ import print_function + +try: + input = raw_input +except NameError: + pass + +import os +import re +import sys +from datetime import datetime + +import requests +import getpass +import json + +try: + import requests_cache +except ImportError: + print("no cache") +else: + requests_cache.install_cache("gh_api") + +# Keyring stores passwords by a 'username', but we're not storing a username and +# password +fake_username = 'statsmodels_tools' + +class Obj(dict): + """Dictionary with attribute access to names.""" + def __getattr__(self, name): + try: + return self[name] + except KeyError: + raise AttributeError(name) + + def __setattr__(self, name, val): + self[name] = val + +token = None +def get_auth_token(): + global token + + if token is not None: + return token + + import keyring + token = keyring.get_password('github', fake_username) + if token is not None: + return token + + print("Please enter your github username and password. These are not " + "stored, only used to get an oAuth token. You can revoke this at " + "any time on Github.") + user = input("Username: ") + pw = getpass.getpass("Password: ") + + auth_request = { + "scopes": [ + "public_repo", + "gist" + ], + "note": "Statsmodels tools - {}".format(datetime.now().isoformat()), + "note_url": "https://github.com/statsmodels/statsmodels/tree/master/tools", + } + response = requests.post('https://api.github.com/authorizations', + auth=(user, pw), data=json.dumps(auth_request)) + response.raise_for_status() + token = json.loads(response.text)['token'] + keyring.set_password('github', fake_username, token) + return token + +def make_auth_header(): + return {'Authorization': 'token ' + get_auth_token()} + +def post_issue_comment(project, num, body): + url = 'https://api.github.com/repos/{project}/issues/{num}/comments'.format(project=project, num=num) + payload = json.dumps({'body': body}) + requests.post(url, data=payload, headers=make_auth_header()) + +def post_gist(content, description='', filename='file', auth=False): + """Post some text to a Gist, and return the URL.""" + post_data = json.dumps({ + "description": description, + "public": True, + "files": { + filename: { + "content": content + } + } + }).encode('utf-8') + + headers = make_auth_header() if auth else {} + response = requests.post("https://api.github.com/gists", data=post_data, headers=headers) + response.raise_for_status() + response_data = json.loads(response.text) + return response_data['html_url'] + +def get_pull_request(project, num, auth=False): + """get pull request info by number + """ + url = "https://api.github.com/repos/{project}/pulls/{num}".format(project=project, num=num) + if auth: + header = make_auth_header() + else: + header = None + response = requests.get(url, headers=header) + response.raise_for_status() + return json.loads(response.text, object_hook=Obj) + +def get_pull_request_files(project, num, auth=False): + """get list of files in a pull request""" + url = "https://api.github.com/repos/{project}/pulls/{num}/files".format(project=project, num=num) + if auth: + header = make_auth_header() + else: + header = None + return get_paged_request(url, headers=header) + +element_pat = re.compile(r'<(.+?)>') +rel_pat = re.compile(r'rel=[\'"](\w+)[\'"]') + +def get_paged_request(url, headers=None, **params): + """get a full list, handling APIv3's paging""" + results = [] + params.setdefault("per_page", 100) + while True: + print("fetching %s with %s" % (url, params), file=sys.stderr) + response = requests.get(url, headers=headers, params=params) + response.raise_for_status() + results.extend(response.json()) + if 'next' in response.links: + url = response.links['next']['url'] + else: + break + return results + +def get_pulls_list(project, auth=False, **params): + """get pull request list""" + params.setdefault("state", "closed") + url = "https://api.github.com/repos/{project}/pulls".format(project=project) + if auth: + headers = make_auth_header() + else: + headers = None + pages = get_paged_request(url, headers=headers, **params) + return pages + +def get_issues_list(project, auth=False, **params): + """get issues list""" + params.setdefault("state", "closed") + url = "https://api.github.com/repos/{project}/issues".format(project=project) + if auth: + headers = make_auth_header() + else: + headers = None + pages = get_paged_request(url, headers=headers, **params) + return pages + +def get_milestones(project, auth=False, **params): + url = "https://api.github.com/repos/{project}/milestones".format(project=project) + if auth: + headers = make_auth_header() + else: + headers = None + pages = get_paged_request(url, headers=headers, **params) + return pages + +def get_milestone_id(project, milestone, auth=False, **params): + pages = get_milestones(project, auth=auth, **params) + for page in pages: + if page['title'] == milestone: + return page['number'] + else: + raise ValueError("milestone %s not found" % milestone) + +def is_pull_request(issue): + """Return True if the given issue is a pull request.""" + return bool(issue.get('pull_request', {}).get('html_url', None)) + +# encode_multipart_formdata is from urllib3.filepost +# The only change is to iter_fields, to enforce S3's required key ordering + +def iter_fields(fields): + fields = fields.copy() + for key in ('key', 'acl', 'Filename', 'success_action_status', 'AWSAccessKeyId', + 'Policy', 'Signature', 'Content-Type', 'file'): + yield (key, fields.pop(key)) + for (k,v) in fields.items(): + yield k,v + +def encode_multipart_formdata(fields, boundary=None): + """ + Encode a dictionary of ``fields`` using the multipart/form-data mime format. + + :param fields: + Dictionary of fields or list of (key, value) field tuples. The key is + treated as the field name, and the value as the body of the form-data + bytes. If the value is a tuple of two elements, then the first element + is treated as the filename of the form-data section. + + Field names and filenames must be unicode. + + :param boundary: + If not specified, then a random boundary will be generated using + :func:`mimetools.choose_boundary`. + """ + # copy requests imports in here: + from io import BytesIO + from requests.packages.urllib3.filepost import ( + choose_boundary, six, writer, b, get_content_type + ) + body = BytesIO() + if boundary is None: + boundary = choose_boundary() + + for fieldname, value in iter_fields(fields): + body.write(b('--%s\r\n' % (boundary))) + + if isinstance(value, tuple): + filename, data = value + writer(body).write('Content-Disposition: form-data; name="%s"; ' + 'filename="%s"\r\n' % (fieldname, filename)) + body.write(b('Content-Type: %s\r\n\r\n' % + (get_content_type(filename)))) + else: + data = value + writer(body).write('Content-Disposition: form-data; name="%s"\r\n' + % (fieldname)) + body.write(b'Content-Type: text/plain\r\n\r\n') + + if isinstance(data, int): + data = str(data) # Backwards compatibility + if isinstance(data, six.text_type): + writer(body).write(data) + else: + body.write(data) + + body.write(b'\r\n') + + body.write(b('--%s--\r\n' % (boundary))) + + content_type = b('multipart/form-data; boundary=%s' % boundary) + + return body.getvalue(), content_type + + +def post_download(project, filename, name=None, description=""): + """Upload a file to the GitHub downloads area""" + if name is None: + name = os.path.basename(filename) + with open(filename, 'rb') as f: + filedata = f.read() + + url = "https://api.github.com/repos/{project}/downloads".format(project=project) + + payload = json.dumps(dict(name=name, size=len(filedata), + description=description)) + response = requests.post(url, data=payload, headers=make_auth_header()) + response.raise_for_status() + reply = json.loads(response.content) + s3_url = reply['s3_url'] + + fields = dict( + key=reply['path'], + acl=reply['acl'], + success_action_status=201, + Filename=reply['name'], + AWSAccessKeyId=reply['accesskeyid'], + Policy=reply['policy'], + Signature=reply['signature'], + file=(reply['name'], filedata), + ) + fields['Content-Type'] = reply['mime_type'] + data, content_type = encode_multipart_formdata(fields) + s3r = requests.post(s3_url, data=data, headers={'Content-Type': content_type}) + return s3r diff --git a/tools/github_stats.py b/tools/github_stats.py new file mode 100644 index 0000000..ed53feb --- /dev/null +++ b/tools/github_stats.py @@ -0,0 +1,202 @@ +#!/usr/bin/env python +"""Simple tools to query github.com and gather stats about issues. + +Copied from IPython 732be29 +https://github.com/ipython/ipython/blob/master/tools/github_stats.py +""" +#----------------------------------------------------------------------------- +# Imports +#----------------------------------------------------------------------------- + +from __future__ import print_function + +import json +import re +import sys + +from datetime import datetime, timedelta +from subprocess import check_output +from gh_api import get_paged_request, make_auth_header, get_pull_request + +#----------------------------------------------------------------------------- +# Globals +#----------------------------------------------------------------------------- + +ISO8601 = "%Y-%m-%dT%H:%M:%SZ" +PER_PAGE = 100 + +#----------------------------------------------------------------------------- +# Functions +#----------------------------------------------------------------------------- + +def get_issues(project="statsmodels/statsmodels", state="closed", pulls=False): + """Get a list of the issues from the Github API.""" + which = 'pulls' if pulls else 'issues' + url = "https://api.github.com/repos/%s/%s?state=%s&per_page=%i" % (project, which, state, PER_PAGE) + return get_paged_request(url, headers=make_auth_header()) + +def round_hour(dt): + return dt.replace(minute=0,second=0,microsecond=0) + +def _parse_datetime(s): + """Parse dates in the format returned by the Github API.""" + if s: + return datetime.strptime(s, ISO8601) + else: + return datetime.fromtimestamp(0) + + +def issues2dict(issues): + """Convert a list of issues to a dict, keyed by issue number.""" + idict = {} + for i in issues: + idict[i['number']] = i + return idict + + +def is_pull_request(issue): + """Return True if the given issue is a pull request.""" + return bool(issue.get('pull_request', {}).get('html_url', None)) + + +def split_pulls(all_issues, project="statsmodels/statsmodels"): + """split a list of closed issues into non-PR Issues and Pull Requests""" + pulls = [] + issues = [] + for i in all_issues: + if is_pull_request(i): + pull = get_pull_request(project, i['number'], auth=True) + pulls.append(pull) + else: + issues.append(i) + return issues, pulls + + + +def issues_closed_since(period=timedelta(days=365), project="statsmodels/statsmodels", pulls=False): + """Get all issues closed since a particular point in time. period + can either be a datetime object, or a timedelta object. In the + latter case, it is used as a time before the present. + """ + + which = 'pulls' if pulls else 'issues' + + if isinstance(period, timedelta): + since = round_hour(datetime.utcnow() - period) + else: + since = period + url = "https://api.github.com/repos/%s/%s?state=closed&sort=updated&since=%s&per_page=%i" % (project, which, since.strftime(ISO8601), PER_PAGE) + allclosed = get_paged_request(url, headers=make_auth_header()) + + filtered = [ i for i in allclosed if _parse_datetime(i['closed_at']) > since ] + if pulls: + filtered = [ i for i in filtered if _parse_datetime(i['merged_at']) > since ] + # filter out PRs not against master (backports) + filtered = [ i for i in filtered if i['base']['ref'] == 'master' ] + else: + filtered = [ i for i in filtered if not is_pull_request(i) ] + + return filtered + + +def sorted_by_field(issues, field='closed_at', reverse=False): + """Return a list of issues sorted by closing date date.""" + return sorted(issues, key = lambda i:i[field], reverse=reverse) + + +def report(issues, show_urls=False): + """Summary report about a list of issues, printing number and title. + """ + # titles may have unicode in them, so we must encode everything below + if show_urls: + for i in issues: + role = 'ghpull' if 'merged_at' in i else 'ghissue' + print(u'* :%s:`%d`: %s' % (role, i['number'], i['title'])) + else: + for i in issues: + print(u'* %d: %s' % (i['number'], i['title'])) + +#----------------------------------------------------------------------------- +# Main script +#----------------------------------------------------------------------------- + +if __name__ == "__main__": + # deal with unicode + import codecs + sys.stdout = codecs.getwriter('utf8')(sys.stdout) + + # Whether to add reST urls for all issues in printout. + show_urls = True + + # By default, search one month back + tag = None + if len(sys.argv) > 1: + try: + days = int(sys.argv[1]) + except: + tag = sys.argv[1] + else: + tag = check_output(['git', 'describe', '--abbrev=0']).strip() + + if tag: + cmd = ['git', 'log', '-1', '--format=%ai', tag] + tagday, tz = check_output(cmd).strip().rsplit(' ', 1) + since = datetime.strptime(tagday, "%Y-%m-%d %H:%M:%S") + h = int(tz[1:3]) + m = int(tz[3:]) + td = timedelta(hours=h, minutes=m) + if tz[0] == '-': + since += td + else: + since -= td + else: + since = datetime.utcnow() - timedelta(days=days) + + since = round_hour(since) + + print("fetching GitHub stats since %s (tag: %s)" % (since, tag), file=sys.stderr) + # turn off to play interactively without redownloading, use %run -i + if 1: + issues = issues_closed_since(since, pulls=False) + pulls = issues_closed_since(since, pulls=True) + + # For regular reports, it's nice to show them in reverse chronological order + issues = sorted_by_field(issues, reverse=True) + pulls = sorted_by_field(pulls, reverse=True) + + n_issues, n_pulls = map(len, (issues, pulls)) + n_total = n_issues + n_pulls + + # Print summary report we can directly include into release notes. + + print() + since_day = since.strftime("%Y/%m/%d") + today = datetime.today().strftime("%Y/%m/%d") + print("GitHub stats for %s - %s (tag: %s)" % (since_day, today, tag)) + print() + print("These lists are automatically generated, and may be incomplete or contain duplicates.") + print() + if tag: + # print git info, in addition to GitHub info: + since_tag = tag+'..' + cmd = ['git', 'log', '--oneline', since_tag] + ncommits = len(check_output(cmd).splitlines()) + + author_cmd = ['git', 'log', "--format='* %aN'", since_tag] + all_authors = check_output(author_cmd).decode('utf-8', 'replace').splitlines() + unique_authors = sorted(set(all_authors), key=lambda s: s.lower()) + print("The following %i authors contributed %i commits." % (len(unique_authors), ncommits)) + print() + print('\n'.join(unique_authors)) + print() + + print() + print("We closed a total of %d issues, %d pull requests and %d regular issues;\n" + "this is the full list (generated with the script \n" + ":file:`tools/github_stats.py`):" % (n_total, n_pulls, n_issues)) + print() + print('Pull Requests (%d):\n' % n_pulls) + report(pulls, show_urls) + print() + print('Issues (%d):\n' % n_issues) + report(issues, show_urls) diff --git a/tools/hash_funcs.py b/tools/hash_funcs.py new file mode 100644 index 0000000..1b455d2 --- /dev/null +++ b/tools/hash_funcs.py @@ -0,0 +1,49 @@ +""" +A collection of utilities to see if new ReST files need to be automatically +generated from certain files in the project (examples, datasets). +""" +import os +from statsmodels.compat import cPickle + +file_path = os.path.dirname(__file__) + +def get_hash(f): + """ + Gets hexadmecimal md5 hash of a string + """ + import hashlib + m = hashlib.md5() + m.update(f) + return m.hexdigest() + +def update_hash_dict(filehash, filename): + """ + Opens the pickled hash dictionary, adds an entry, and dumps it back. + """ + try: + with open(file_path + '/hash_dict.pickle', 'rb') as f: + hash_dict = cPickle.load(f) + except IOError: + hash_dict = {} + hash_dict.update({filename: filehash}) + with open(os.path.join(file_path, 'hash_dict.pickle'), 'wb') as f: + cPickle.dump(hash_dict, f) + +def check_hash(rawfile, filename): + """ + Returns True if hash does not match the previous one. + """ + try: + with open(file_path + '/hash_dict.pickle', 'rb') as f: + hash_dict = cPickle.load(f) + except IOError: + hash_dict = {} + try: + checkhash = hash_dict[filename] + except: + checkhash = None + + filehash = get_hash(rawfile) + if filehash == checkhash: + return False, None + return True, filehash diff --git a/tools/km_cox1.do b/tools/km_cox1.do new file mode 100644 index 0000000..17c58c2 --- /dev/null +++ b/tools/km_cox1.do @@ -0,0 +1,78 @@ +/* Run Survival models and save results + +Author: Josef Perktold +based on example from Stata help + +*/ + +clear +*basic Kaplan-Meier +capture use "E:\Josef\statawork\stan3.dta", clear +if _rc != 0 webuse stan3 +capture save "E:\Josef\statawork\stan3.dta" +capture erase surf.dta +sts list, saving("surf") +use "E:\Josef\statawork\surf.dta", clear +outsheet using "surv_km.csv", comma replace + +* Kaplan-Meier with by +use "E:\Josef\statawork\stan3.dta", clear +capture erase surf2.dta +sts list, by(posttran) saving("surf2") +use "E:\Josef\statawork\surf2.dta", clear +outsheet using "surv_km2.csv", comma replace + + +* Cox Proportional Hazard +use "E:\Josef\statawork\stan3.dta", clear +stcox age posttran , estimate norobust +ereturn list, +matlist e(V) +matlist e(p) + +* the next doesn't work +* predict predictall, hr xb stdp basesurv basechazard basehc mgale csnell deviance ldisplace lmax effects +/* generate in python: +>>> for i in 'hr xb stdp basesurv basechazard basehc mgale csnell deviance ldisplace lmax effects'.split(): print 'predict %s, %s' % (i,i) +*/ +predict hr, hr +predict xb, xb +predict stdp, stdp +predict basesurv, basesurv +predict basechazard, basechazard +predict basehc, basehc +predict mgale, mgale +predict csnell, csnell +predict deviance, deviance +predict ldisplace, ldisplace +predict lmax, lmax +*capture predict effects, effects + +outsheet hr xb stdp basesurv basechazard basehc mgale csnell deviance ldisplace lmax using "surv_coxph.csv", comma replace + +* replay +stcox + +matrix cov = e(V) +svmat cov, names(cov) + +* get the colnames and rownames +capture drop nacol narow +matrix params_table = r(table)' +gen nacol = "`: colnames params_table'" +gen narow = "`: rownames params_table'" +di nacol +di narow + +*2nd version + +capture drop rown2 +local colnms: coln params_table +gen str rown2 = "`colnms'" +di rown2 + +svmat params_table, names(params_table) +estmat2nparray params_table cov, saving("results_coxphrobust.py") format("%16.0g") append +* other options, no matrices or no est results +*estmat2nparray params_table cov, saving("results_coxphrobust_2.py") format("%16.0g") append noest +*estmat2nparray , saving("results_coxphrobust_2.py") format("%16.0g") append diff --git a/tools/matplotlibrc b/tools/matplotlibrc new file mode 100644 index 0000000..fa12a90 --- /dev/null +++ b/tools/matplotlibrc @@ -0,0 +1,385 @@ +### MATPLOTLIBRC FORMAT + +# This is a sample matplotlib configuration file - you can find a copy +# of it on your system in +# site-packages/matplotlib/mpl-data/matplotlibrc. If you edit it +# there, please note that it will be overridden in your next install. +# If you want to keep a permanent local copy that will not be +# over-written, place it in HOME/.matplotlib/matplotlibrc (unix/linux +# like systems) and C:\Documents and Settings\yourname\.matplotlib +# (win32 systems). +# +# This file is best viewed in a editor which supports python mode +# syntax highlighting. Blank lines, or lines starting with a comment +# symbol, are ignored, as are trailing comments. Other lines must +# have the format +# key : val # optional comment +# +# Colors: for the color values below, you can either use - a +# matplotlib color string, such as r, k, or b - an rgb tuple, such as +# (1.0, 0.5, 0.0) - a hex string, such as ff00ff or #ff00ff - a scalar +# grayscale intensity such as 0.75 - a legal html color name, eg red, +# blue, darkslategray + +#### CONFIGURATION BEGINS HERE + +# the default backend; one of GTK GTKAgg GTKCairo CocoaAgg FltkAgg +# MacOSX QtAgg Qt4Agg TkAgg WX WXAgg Agg Cairo GDK PS PDF SVG Template +# You can also deploy your own backend outside of matplotlib by +# referring to the module name (which must be in the PYTHONPATH) as +# 'module://my_backend' +backend : Agg + +# if you are runing pyplot inside a GUI and your backend choice +# conflicts, we will automatically try and find a compatible one for +# you if backend_fallback is True +#backend_fallback: True +interactive : True +toolbar : toolbar2 # None | classic | toolbar2 +#timezone : UTC # a pytz timezone string, eg US/Central or Europe/Paris + +# Where your matplotlib data lives if you installed to a non-default +# location. This is where the matplotlib fonts, bitmaps, etc reside +#datapath : /home/jdhunter/mpldata + + +### LINES +# See http://matplotlib.sourceforge.net/api/artist_api.html#module-matplotlib.lines for more +# information on line properties. +lines.linewidth : 1.0 # line width in points +#lines.linestyle : - # solid line +#lines.color : blue +#lines.marker : None # the default marker +#lines.markeredgewidth : 0.5 # the line width around the marker symbol +#lines.markersize : 6 # markersize, in points +#lines.dash_joinstyle : miter # miter|round|bevel +#lines.dash_capstyle : butt # butt|round|projecting +#lines.solid_joinstyle : miter # miter|round|bevel +#lines.solid_capstyle : projecting # butt|round|projecting +lines.antialiased : True # render lines in antialised (no jaggies) + +### PATCHES +# Patches are graphical objects that fill 2D space, like polygons or +# circles. See +# http://matplotlib.sourceforge.net/api/artist_api.html#module-matplotlib.patches +# information on patch properties +patch.linewidth : 0.5 # edge width in points +patch.facecolor : 348ABD +patch.edgecolor : eeeeee +patch.antialiased : True # render patches in antialised (no jaggies) + +### FONT +# +# font properties used by text.Text. See +# http://matplotlib.sourceforge.net/api/font_manager_api.html for more +# information on font properties. The 6 font properties used for font +# matching are given below with their default values. +# +# The font.family property has five values: 'serif' (e.g. Times), +# 'sans-serif' (e.g. Helvetica), 'cursive' (e.g. Zapf-Chancery), +# 'fantasy' (e.g. Western), and 'monospace' (e.g. Courier). Each of +# these font families has a default list of font names in decreasing +# order of priority associated with them. +# +# The font.style property has three values: normal (or roman), italic +# or oblique. The oblique style will be used for italic, if it is not +# present. +# +# The font.variant property has two values: normal or small-caps. For +# TrueType fonts, which are scalable fonts, small-caps is equivalent +# to using a font size of 'smaller', or about 83% of the current font +# size. +# +# The font.weight property has effectively 13 values: normal, bold, +# bolder, lighter, 100, 200, 300, ..., 900. Normal is the same as +# 400, and bold is 700. bolder and lighter are relative values with +# respect to the current weight. +# +# The font.stretch property has 11 values: ultra-condensed, +# extra-condensed, condensed, semi-condensed, normal, semi-expanded, +# expanded, extra-expanded, ultra-expanded, wider, and narrower. This +# property is not currently implemented. +# +# The font.size property is the default font size for text, given in pts. +# 12pt is the standard value. +# +font.family : monospace +#font.style : normal +#font.variant : normal +#font.weight : medium +#font.stretch : normal +# note that font.size controls default text sizes. To configure +# special text sizes tick labels, axes, labels, title, etc, see the rc +# settings for axes and ticks. Special text sizes can be defined +# relative to font.size, using the following values: xx-small, x-small, +# small, medium, large, x-large, xx-large, larger, or smaller +#font.size : 12.0 +#font.serif : Bitstream Vera Serif, New Century Schoolbook, Century Schoolbook L, Utopia, ITC Bookman, Bookman, Nimbus Roman No9 L, Times New Roman, Times, Palatino, Charter, serif +#font.sans-serif : Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif +#font.cursive : Apple Chancery, Textile, Zapf Chancery, Sand, cursive +#font.fantasy : Comic Sans MS, Chicago, Charcoal, Impact, Western, fantasy +font.monospace : Andale Mono, Nimbus Mono L, Courier New, Courier, Fixed, Terminal, Bitstream Vera Sans Mono, Ubuntu Mono, monospace +### TEXT +# text properties used by text.Text. See +# http://matplotlib.sourceforge.net/api/artist_api.html#module-matplotlib.text for more +# information on text properties + +#text.color : black + +### LaTeX customizations. See http://www.scipy.org/Wiki/Cookbook/Matplotlib/UsingTex +#text.usetex : False # use latex for all text handling. The following fonts + # are supported through the usual rc parameter settings: + # new century schoolbook, bookman, times, palatino, + # zapf chancery, charter, serif, sans-serif, helvetica, + # avant garde, courier, monospace, computer modern roman, + # computer modern sans serif, computer modern typewriter + # If another font is desired which can loaded using the + # LaTeX \usepackage command, please inquire at the + # matplotlib mailing list +#text.latex.unicode : False # use "ucs" and "inputenc" LaTeX packages for handling + # unicode strings. +#text.latex.preamble : # IMPROPER USE OF THIS FEATURE WILL LEAD TO LATEX FAILURES + # AND IS THEREFORE UNSUPPORTED. PLEASE DO NOT ASK FOR HELP + # IF THIS FEATURE DOES NOT DO WHAT YOU EXPECT IT TO. + # preamble is a comma separated list of LaTeX statements + # that are included in the LaTeX document preamble. + # An example: + # text.latex.preamble : \usepackage{bm},\usepackage{euler} + # The following packages are always loaded with usetex, so + # beware of package collisions: color, geometry, graphicx, + # type1cm, textcomp. Adobe Postscript (PSSNFS) font packages + # may also be loaded, depending on your font settings + +#text.dvipnghack : None # some versions of dvipng don't handle alpha + # channel properly. Use True to correct + # and flush ~/.matplotlib/tex.cache + # before testing and False to force + # correction off. None will try and + # guess based on your dvipng version + +#text.hinting : True # If True, text will be hinted, otherwise not. This only + # affects the Agg backend. + +# The following settings allow you to select the fonts in math mode. +# They map from a TeX font name to a fontconfig font pattern. +# These settings are only used if mathtext.fontset is 'custom'. +# Note that this "custom" mode is unsupported and may go away in the +# future. +#mathtext.cal : cursive +#mathtext.rm : serif +#mathtext.tt : monospace +#mathtext.it : serif:italic +#mathtext.bf : serif:bold +#mathtext.sf : sans +#mathtext.fontset : cm # Should be 'cm' (Computer Modern), 'stix', + # 'stixsans' or 'custom' +#mathtext.fallback_to_cm : True # When True, use symbols from the Computer Modern + # fonts when a symbol can not be found in one of + # the custom math fonts. + +#mathtext.default : it # The default font to use for math. + # Can be any of the LaTeX font names, including + # the special name "regular" for the same font + # used in regular text. + +### AXES +# default face and edge color, default tick sizes, +# default fontsizes for ticklabels, and so on. See +# http://matplotlib.sourceforge.net/api/axes_api.html#module-matplotlib.axes +#axes.hold : True # whether to clear the axes by default on +axes.facecolor : eeeeee # axes background color +axes.edgecolor : bcbcbc # axes edge color +axes.linewidth : 1.0 # edge linewidth +axes.grid : True # display grid or not +axes.titlesize : large # fontsize of the axes title +axes.labelsize : large # fontsize of the x any y labels +axes.labelcolor : 555555 +axes.axisbelow : True # whether axis gridlines and ticks are below + # the axes elements (lines, text, etc) +#axes.formatter.limits : -7, 7 # use scientific notation if log10 + # of the axis range is smaller than the + # first or larger than the second +#axes.unicode_minus : True # use unicode for the minus symbol + # rather than hypen. See http://en.wikipedia.org/wiki/Plus_sign#Plus_sign +axes.color_cycle : 348ABD, 7A68A6, A60628, 467821, CF4457, 188487, E24A33 + # E24A33 : orange + # 7A68A6 : purple + # 348ABD : blue + # 188487 : turquoise + # A60628 : red + # CF4457 : pink + # 467821 : green + +#polaraxes.grid : True # display grid on polar axes +#axes3d.grid : True # display grid on 3d axes + +### TICKS +# see http://matplotlib.sourceforge.net/api/axis_api.html#matplotlib.axis.Tick +xtick.major.size : 0 # major tick size in points +xtick.minor.size : 0 # minor tick size in points +xtick.major.pad : 6 # distance to major tick label in points +xtick.minor.pad : 6 # distance to the minor tick label in points +xtick.color : 555555 # color of the tick labels +#xtick.labelsize : medium # fontsize of the tick labels +xtick.direction : in # direction: in or out + +ytick.major.size : 0 # major tick size in points +ytick.minor.size : 0 # minor tick size in points +ytick.major.pad : 6 # distance to major tick label in points +ytick.minor.pad : 6 # distance to the minor tick label in points +ytick.color : 555555 # color of the tick labels +#ytick.labelsize : medium # fontsize of the tick labels +ytick.direction : in # direction: in or out + + +### GRIDS +#grid.color : black # grid color +#grid.linestyle : : # dotted +#grid.linewidth : 0.5 # in points + +### Legend +legend.fancybox : True # if True, use a rounded box for the + # legend, else a rectangle +#legend.isaxes : True +#legend.numpoints : 2 # the number of points in the legend line +#legend.fontsize : large +#legend.pad : 0.0 # deprecated; the fractional whitespace inside the legend border +#legend.borderpad : 0.5 # border whitspace in fontsize units +#legend.markerscale : 1.0 # the relative size of legend markers vs. original +# the following dimensions are in axes coords +#legend.labelsep : 0.010 # the vertical space between the legend entries +#legend.handlelen : 0.05 # the length of the legend lines +#legend.handletextsep : 0.02 # the space between the legend line and legend text +#legend.axespad : 0.02 # the border between the axes and legend edge +#legend.shadow : False + +### FIGURE +# See http://matplotlib.sourceforge.net/api/figure_api.html#matplotlib.figure.Figure +figure.figsize : 8, 6 # figure size in inches +#figure.dpi : 80 # figure dots per inch +figure.facecolor : 0.85 # figure facecolor; 0.75 is scalar gray +figure.edgecolor : 0.5 # figure edgecolor + +# The figure subplot parameters. All dimensions are fraction of the +# figure width or height +#figure.subplot.left : 0.125 # the left side of the subplots of the figure +#figure.subplot.right : 0.9 # the right side of the subplots of the figure +#figure.subplot.bottom : 0.1 # the bottom of the subplots of the figure +#figure.subplot.top : 0.9 # the top of the subplots of the figure +#figure.subplot.wspace : 0.2 # the amount of width reserved for blank space between subplots +figure.subplot.hspace : 0.5 # the amount of height reserved for white space between subplots + +### IMAGES +#image.aspect : equal # equal | auto | a number +#image.interpolation : bilinear # see help(imshow) for options +#image.cmap : jet # gray | jet etc... +#image.lut : 256 # the size of the colormap lookup table +#image.origin : upper # lower | upper +#image.resample : False + +### CONTOUR PLOTS +#contour.negative_linestyle : dashed # dashed | solid + +### Agg rendering +### Warning: experimental, 2008/10/10 +#agg.path.chunksize : 0 # 0 to disable; values in the range + # 10000 to 100000 can improve speed slightly + # and prevent an Agg rendering failure + # when plotting very large data sets, + # especially if they are very gappy. + # It may cause minor artifacts, though. + # A value of 20000 is probably a good + # starting point. +### SAVING FIGURES +#path.simplify : True # When True, simplify paths by removing "invisible" + # points to reduce file size and increase rendering + # speed +#path.simplify_threshold : 0.1 # The threshold of similarity below which + # vertices will be removed in the simplification + # process +#path.snap : True # When True, rectilinear axis-aligned paths will be snapped to + # the nearest pixel when certain criteria are met. When False, + # paths will never be snapped. + +# the default savefig params can be different from the display params +# Eg, you may want a higher resolution, or to make the figure +# background white +#savefig.dpi : 100 # figure dots per inch +#savefig.facecolor : white # figure facecolor when saving +#savefig.edgecolor : white # figure edgecolor when saving +#savefig.extension : auto # what extension to use for savefig('foo'), or 'auto' + +#cairo.format : png # png, ps, pdf, svg + +# tk backend params +#tk.window_focus : False # Maintain shell focus for TkAgg + +# ps backend params +#ps.papersize : letter # auto, letter, legal, ledger, A0-A10, B0-B10 +#ps.useafm : False # use of afm fonts, results in small files +#ps.usedistiller : False # can be: None, ghostscript or xpdf + # Experimental: may produce smaller files. + # xpdf intended for production of publication quality files, + # but requires ghostscript, xpdf and ps2eps +#ps.distiller.res : 6000 # dpi +#ps.fonttype : 3 # Output Type 3 (Type3) or Type 42 (TrueType) + +# pdf backend params +#pdf.compression : 6 # integer from 0 to 9 + # 0 disables compression (good for debugging) +#pdf.fonttype : 3 # Output Type 3 (Type3) or Type 42 (TrueType) + +# svg backend params +#svg.image_inline : True # write raster image data directly into the svg file +#svg.image_noscale : False # suppress scaling of raster data embedded in SVG +#svg.embed_char_paths : True # embed character outlines in the SVG file + +# docstring params +#docstring.hardcopy = False # set this when you want to generate hardcopy docstring + +# Set the verbose flags. This controls how much information +# matplotlib gives you at runtime and where it goes. The verbosity +# levels are: silent, helpful, debug, debug-annoying. Any level is +# inclusive of all the levels below it. If your setting is "debug", +# you'll get all the debug and helpful messages. When submitting +# problems to the mailing-list, please set verbose to "helpful" or "debug" +# and paste the output into your report. +# +# The "fileo" gives the destination for any calls to verbose.report. +# These objects can a filename, or a filehandle like sys.stdout. +# +# You can override the rc default verbosity from the command line by +# giving the flags --verbose-LEVEL where LEVEL is one of the legal +# levels, eg --verbose-helpful. +# +# You can access the verbose instance in your code +# from matplotlib import verbose. +#verbose.level : silent # one of silent, helpful, debug, debug-annoying +#verbose.fileo : sys.stdout # a log filename, sys.stdout or sys.stderr + +# Event keys to interact with figures/plots via keyboard. +# Customize these settings according to your needs. +# Leave the field(s) empty if you don't need a key-map. (i.e., fullscreen : '') + +keymap.fullscreen : f # toggling +keymap.home : h, r, home # home or reset mnemonic +keymap.back : left, c, backspace # forward / backward keys to enable +keymap.forward : right, v # left handed quick navigation +keymap.pan : p # pan mnemonic +keymap.zoom : o # zoom mnemonic +keymap.save : s # saving current figure +keymap.grid : g # switching on/off a grid in current axes +keymap.yscale : l # toggle scaling of y-axes ('log'/'linear') +keymap.xscale : L, k # toggle scaling of x-axes ('log'/'linear') +keymap.all_axes : a # enable all axes + +# Control downloading of example data. Various examples download some +# data from the Matplotlib svn repository to avoid distributing extra +# files, but sometimes you want to avoid that. In that case set +# examples.download to False and examples.directory to the directory +# where you have a checkout of +# https://matplotlib.svn.sourceforge.net/svnroot/matplotlib/trunk/sample_data + +#examples.download : True # False to bypass downloading mechanism +#examples.directory : '' # directory to look in if download is false + diff --git a/tools/migrate_issues_gh.py b/tools/migrate_issues_gh.py new file mode 100644 index 0000000..043b5fc --- /dev/null +++ b/tools/migrate_issues_gh.py @@ -0,0 +1,371 @@ +#!/usr/bin/env python +"""Launchpad to github bug migration script. + +There's a ton of code from Hydrazine copied here: +https://launchpad.net/hydrazine + + +Usage +----- + +This code is meant to port a bug database for a project from Launchpad to +GitHub. It was used to port the IPython bug history. + +The code is meant to be used interactively. I ran it multiple times in one long +IPython session, until the data structures I was getting from Launchpad looked +right. Then I turned off (see 'if 0' markers below) the Launchpad part, and ran +it again with the github part executing and using the 'bugs' variable from my +interactive namespace (via"%run -i" in IPython). + +This code is NOT fire and forget, it's meant to be used with some intelligent +supervision at the wheel. Start by making a test repository (I made one called +ipython/BugsTest) and upload only a few issues into that. Once you are sure +that everything is OK, run it against your real repo with all your issues. + +You should read all the code below and roughly understand what's going on +before using this. Since I didn't intend to use this more than once, it's not +particularly robust or documented. It got the job done and I've never used it +again. + +Configuration +------------- + +To pull things off LP, you need to log in first (see the Hydrazine docs). Your +Hydrazine credentials will be cached locally and this script can reuse them. + +To push to GH, you need to set below the GH repository owner, API token and +repository name you wan to push issues into. See the GH section for the +necessary variables. +""" + +import collections +import os.path +import subprocess +import sys +import time + +from pprint import pformat + +import launchpadlib +from launchpadlib.credentials import Credentials +from launchpadlib.launchpad import ( + Launchpad, STAGING_SERVICE_ROOT, EDGE_SERVICE_ROOT ) + +#----------------------------------------------------------------------------- +# Launchpad configuration +#----------------------------------------------------------------------------- +# The official LP project name +PROJECT_NAME = 'statsmodels' + +# How LP marks your bugs, I don't know where this is stored, but they use it to +# generate bug descriptions and we need to split on this string to create +# shorter Github bug titles +PROJECT_ID = 'statsmodels' + +# Default Launchpad server, see their docs for details +service_root = EDGE_SERVICE_ROOT + +#----------------------------------------------------------------------------- +# Code copied/modified from Hydrazine (https://launchpad.net/hydrazine) +#----------------------------------------------------------------------------- + +# Constants for the names in LP of certain +lp_importances = ['Critical', 'High', 'Medium', 'Low', 'Wishlist', 'Undecided'] + +lp_status = ['Confirmed', 'Triaged', 'Fix Committed', 'Fix Released', + 'In Progress',"Won't Fix", "Incomplete", "Invalid", "New"] + +def squish(a): + return a.lower().replace(' ', '_').replace("'",'') + +lp_importances_c = set(map(squish, lp_importances)) +lp_status_c = set(map(squish, lp_status)) + +def trace(s): + sys.stderr.write(s + '\n') + + +def create_session(): + lplib_cachedir = os.path.expanduser("~/.cache/launchpadlib/") + hydrazine_cachedir = os.path.expanduser("~/.cache/hydrazine/") + rrd_dir = os.path.expanduser("~/.cache/hydrazine/rrd") + for d in [lplib_cachedir, hydrazine_cachedir, rrd_dir]: + if not os.path.isdir(d): + os.makedirs(d, mode=0700) + + hydrazine_credentials_filename = os.path.join(hydrazine_cachedir, + 'credentials') + if os.path.exists(hydrazine_credentials_filename): + credentials = Credentials() + credentials.load(file( + os.path.expanduser("~/.cache/hydrazine/credentials"), + "r")) + trace('loaded existing credentials') + return Launchpad(credentials, service_root, + lplib_cachedir) + # TODO: handle the case of having credentials that have expired etc + else: + launchpad = Launchpad.get_token_and_login( + 'Hydrazine', + service_root, + lplib_cachedir) + trace('saving credentials...') + launchpad.credentials.save(file( + hydrazine_credentials_filename, + "w")) + return launchpad + +def canonical_enum(entered, options): + entered = squish(entered) + return entered if entered in options else None + +def canonical_importance(from_importance): + return canonical_enum(from_importance, lp_importances_c) + +def canonical_status(entered): + return canonical_enum(entered, lp_status_c) + +#----------------------------------------------------------------------------- +# Functions and classes +#----------------------------------------------------------------------------- + +class Base(object): + def __str__(self): + a = dict([(k,v) for (k,v) in self.__dict__.iteritems() + if not k.startswith('_')]) + return pformat(a) + + __repr__ = __str__ + + +class Message(Base): + def __init__(self, m): + self.content = m.content + o = m.owner + self.owner = o.name + self.owner_name = o.display_name + self.date = m.date_created + +class Bug(Base): + def __init__(self, bt): + # Cache a few things for which launchpad will make a web request each + # time. + bug = bt.bug + o = bt.owner + a = bt.assignee + dupe = bug.duplicate_of + # Store from the launchpadlib bug objects only what we want, and as + # local data + self.id = bug.id + self.lp_url = 'https://bugs.launchpad.net/%s/+bug/%i' % \ + (PROJECT_NAME, self.id) + self.title = bt.title + self.description = bug.description + # Every bug has an owner (who created it) + self.owner = o.name + self.owner_name = o.display_name + # Not all bugs have been assigned to someone yet + try: + self.assignee = a.name + self.assignee_name = a.display_name + except AttributeError: + self.assignee = self.assignee_name = None + # Store status/importance in canonical format + self.status = canonical_status(bt.status) + self.importance = canonical_importance(bt.importance) + self.tags = bug.tags + # Store the bug discussion messages, but skip m[0], which is the same + # as the bug description we already stored + self.messages = map(Message, list(bug.messages)[1:]) + self.milestone = getattr(bt.milestone, 'name', None) + + # Duplicate handling disabled, since the default query already filters + # out the duplicates. Keep the code here in case we ever want to look + # into this... + if 0: + # Track duplicates conveniently + try: + self.duplicate_of = dupe.id + self.is_duplicate = True + except AttributeError: + self.duplicate_of = None + self.is_duplicate = False + + # dbg dupe info + if bug.number_of_duplicates > 0: + self.duplicates = [b.id for b in bug.duplicates] + else: + self.duplicates = [] + + # tmp - debug + self._bt = bt + self._bug = bug + +#----------------------------------------------------------------------------- +# Main script +#----------------------------------------------------------------------------- + +#----------------------------------------------------------------------------- +# Launchpad part +#----------------------------------------------------------------------------- +# launchpad = create_session() +launchpad = Launchpad.login_with('statsmodels', 'production') +project = launchpad.projects[PROJECT_NAME] +# Note: by default, this will give us all bugs except duplicates and those +# with status "won't fix" or 'invalid' +bug_tasks = project.searchTasks(status=lp_status) + +bugs = {} +for bt in list(bug_tasks): + b = Bug(bt) + bugs[b.id] = b + print b.title + sys.stdout.flush() + +#----------------------------------------------------------------------------- +# Github part +#----------------------------------------------------------------------------- +#http://pypi.python.org/pypi/github2 +#http://github.com/ask/python-github2 +# Github libraries +from github2 import core, issues, client +for mod in (core, issues, client): + reload(mod) + + +def format_title(bug): + return bug.title.split('{0}: '.format(PROJECT_ID), 1)[1].strip('"') + + +def format_body(bug): + body = \ +"""Original Launchpad bug {bug.id}: {bug.lp_url} +Reported by: {bug.owner} ({owner_name}). + +{description}""".format(bug=bug, owner_name=bug.owner_name.encode('utf-8'), + description=bug.description.encode('utf-8')) + return body + + +def format_message(num, m): + body = \ +"""[ LP comment {num} by: {owner_name}, on {m.date!s} ] + +{content}""".format(num=num, m=m, owner_name=m.owner_name.encode('utf-8'), + content=m.content.encode('utf-8')) + return body + + +# Config +user = 'wesm' +token= '12efaff85b8e17f63ee835c5632b8cf0' + +repo = 'statsmodels/statsmodels' +#repo = 'ipython/ipython' + +# Skip bugs with this status: +# to_skip = set([u'fix_committed', u'incomplete']) +to_skip = set() + +# Only label these importance levels: +gh_importances = set([u'critical', u'high', u'low', u'medium', u'wishlist']) + +# Start script +gh = client.Github(username=user, api_token=token) + +# Filter out the full LP bug dict to process only the ones we want +bugs_todo = dict( (id, b) for (id, b) in bugs.iteritems() + if not b.status in to_skip ) + +# Select which bug ids to run +#bids = bugs_todo.keys()[50:100] +# bids = bugs_todo.keys()[12:] + +bids = bugs_todo.keys() +#bids = bids[:5]+[502787] + +# Start loop over bug ids and file them on Github +nbugs = len(bids) +gh_issues = [] # for reporting at the end +for n, bug_id in enumerate(bids): + bug = bugs[bug_id] + title = format_title(bug) + body = format_body(bug) + + print + if len(title)<65: + print bug.id, '[{0}/{1}]'.format(n+1, nbugs), title + else: + print bug.id, title[:65]+'...' + + # still check bug.status, in case we manually added other bugs to the list + # above (mostly during testing) + if bug.status in to_skip: + print '--- Skipping - status:',bug.status + continue + + print '+++ Filing...', + sys.stdout.flush() + + # Create github issue for this bug + issue = gh.issues.open(repo, title=title, body=body) + print 'created GitHub #', issue.number + gh_issues.append(issue.number) + sys.stdout.flush() + + # Mark status as a label + #status = 'status-{0}'.format(b.status) + #gh.issues.add_label(repo, issue.number, status) + + # Mark any extra tags we might have as labels + for tag in b.tags: + label = 'tag-{0}'.format(tag) + gh.issues.add_label(repo, issue.number, label) + + # If bug has assignee, add it as label + if bug.assignee: + gh.issues.add_label(repo, issue.number, + #bug.assignee + # Github bug, gets confused with dots in labels. + bug.assignee.replace('.','_') + ) + + if bug.importance in gh_importances: + if bug.importance == 'wishlist': + label = bug.importance + else: + label = 'prio-{0}'.format(bug.importance) + gh.issues.add_label(repo, issue.number, label) + + if bug.milestone: + label = 'milestone-{0}'.format(bug.milestone).replace('.','_') + gh.issues.add_label(repo, issue.number, label) + + # Add original message thread + for num, message in enumerate(bug.messages): + # Messages on LP are numbered from 1 + comment = format_message(num+1, message) + gh.issues.comment(repo, issue.number, comment) + time.sleep(0.5) # soft sleep after each message to prevent gh block + + if bug.status in ['fix_committed', 'fix_released', 'invalid']: + gh.issues.close(repo, issue.number) + + # too many fast requests and gh will block us, so sleep for a while + # I just eyeballed these values by trial and error. + time.sleep(1) # soft sleep after each request + # And longer one after every batch + batch_size = 10 + tsleep = 60 + if (len(gh_issues) % batch_size)==0: + print + print '*** SLEEPING for {0} seconds to avoid github blocking... ***'.format(tsleep) + sys.stdout.flush() + time.sleep(tsleep) + +# Summary report +print +print '*'*80 +print 'Summary of GitHub issues filed:' +print gh_issues +print 'Total:', len(gh_issues) diff --git a/tools/nbgenerate.py b/tools/nbgenerate.py new file mode 100755 index 0000000..8028d44 --- /dev/null +++ b/tools/nbgenerate.py @@ -0,0 +1,166 @@ +#! /usr/bin/env python +# -*- coding: utf-8 -*- +import io +import os +import sys +import argparse +from functools import partial +try: + from concurrent import futures + par = True +except ImportError: + par = False + + +import nbformat +from nbconvert import HTMLExporter, RSTExporter +from nbconvert.preprocessors import ExecutePreprocessor + + +EXAMPLE_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", + "examples")) +SOURCE_DIR = os.path.join(EXAMPLE_DIR, "notebooks") +EXECUTED_DIR = os.path.join(EXAMPLE_DIR, "executed") +DST_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", + "docs", "source", "examples", + "notebooks", "generated")) +for dir in [EXECUTED_DIR, DST_DIR]: + if not os.path.exists(dir): + os.makedirs(dir) + + +def execute_nb(src, dst, allow_errors=False, timeout=1000, kernel_name=None): + ''' + Execute notebook in `src` and write the output to `dst` + + Parameters + ---------- + src, dst: str + path to notebook + allow_errors: bool + timeout: int + kernel_name: str + defualts to value set in notebook metadata + + Returns + ------- + dst: str + ''' + with io.open(src, encoding='utf-8') as f: + nb = nbformat.read(f, as_version=4) + + ep = ExecutePreprocessor(allow_errors=allow_errors, + timeout=timeout, + kernel_name=kernel_name) + ep.preprocess(nb, {'metadta': {'path': 'notebooks/'}}) + + with io.open(dst, 'wt', encoding='utf-8') as f: + nbformat.write(nb, f) + return dst + +def convert(src, dst, to='rst'): + ''' + Convert a notebook `src`. + + Parameters + ---------- + src, dst: str + filepaths + to: {'rst', 'html'} + format to export to + ''' + dispatch = {'rst': RSTExporter, 'html': HTMLExporter} + exporter = dispatch[to.lower()]() + + (body, resources) = exporter.from_filename(src) + with io.open(dst, 'wt', encoding='utf-8') as f: + f.write(body) + return dst + +def find_notebooks(directory=None): + if directory is None: + directory = SOURCE_DIR + nbs = (os.path.join(SOURCE_DIR, x) + for x in os.listdir(SOURCE_DIR) + if x.endswith('.ipynb')) + return nbs + +def do_one(nb, to=None, execute=None, allow_errors=None, timeout=None, kernel_name=None): + from traitlets.traitlets import TraitError + import jupyter_client + + name = os.path.basename(nb) + if execute: + dst = os.path.join(EXECUTED_DIR, name) + print("Executeing %s to %s" % (nb, dst)) + nb = execute_nb(nb, dst, allow_errors=allow_errors, timeout=timeout, + kernel_name=kernel_name) + dst = os.path.splitext(os.path.join(DST_DIR, name))[0] + '.' + to + print("Converting %s to %s" % (nb, dst)) + try: + convert(nb, dst, to=to) + except TraitError: + kernels = jupyter_client.kernelspec.find_kernel_specs() + msg = ('Could not find kernel named `%s`, Available kernels:\n %s' + % kernel_name, kernels) + raise ValueError(msg) + return dst + +def do(fp=None, directory=None, to='html', execute=True, + allow_errors=True, timeout=1000, kernel_name=''): + if fp is None: + nbs = find_notebooks(directory) + else: + nbs = [fp] + + if kernel_name is None: + kernel_name = find_kernel_name() + + func = partial(do_one, to=to, execute=execute, allow_errors=allow_errors, + timeout=timeout, kernel_name=kernel_name) + if par: + with futures.ProcessPoolExecutor() as pool: + for dst in pool.map(func, nbs): + print("Finished %s" % dst) + else: + for nb in nbs: + func(nb) + print("Finished %s" % nb) + + +def find_kernel_name(): + import jupyter_client + + kernels = jupyter_client.kernelspec.find_kernel_specs() + kernel_name = 'python%s' % sys.version_info.major + if kernel_name not in kernels: + return '' + return kernel_name + + +parser = argparse.ArgumentParser(description="Process example notebooks") +parser.add_argument("--fp", type=str, default=None, + help="Path to notebook to convert. Converts all notebooks " + "in `directory` by default.") +parser.add_argument("--directory", type=str, default=None, + help="Path to notebook directory to convert") +parser.add_argument("--to", type=str, default="html", + help="Type to convert to. One of `{'html', 'rst'}`") +parser.add_argument("--execute", type=bool, default=True, + help="Execute notebook before converting") +parser.add_argument("--allow_errors", type=bool, default=True, + help="Allow errors while executing") +parser.add_argument("--timeout", type=int, default=1000, + help="Seconds to allow for each cell before timing out") +parser.add_argument("--kernel_name", type=str, default=None, + help="Name of kernel to execute with") + +def main(): + args = parser.parse_args() + do(fp=args.fp, directory=args.directory, to=args.to, execute=args.execute, + allow_errors=args.allow_errors, timeout=args.timeout, + kernel_name=args.kernel_name) + +if __name__ == '__main__': + main() + diff --git a/tools/notebook2python.tpl b/tools/notebook2python.tpl new file mode 100644 index 0000000..2e7887a --- /dev/null +++ b/tools/notebook2python.tpl @@ -0,0 +1,46 @@ +{%- extends 'null.tpl' -%} + +{% block input %} +{{ cell.input | ipython2python }} +{% endblock input %} + +{# Those Two are for error displaying +even if the first one seem to do nothing, +it introduces a new line +#} +{% block pyerr %} +{{ super() }} +{% endblock pyerr %} + +{% block traceback_line %} +{{ line | indent | strip_ansi }} +{% endblock traceback_line %} +{# .... #} + +{% block pyout %} +{{ output.text | indent | comment_lines }} +{% endblock pyout %} + +{% block stream %} +{{ output.text | indent | comment_lines }} +{% endblock stream %} + +{% block display_data scoped %} +# image file: +{% endblock display_data %} + +{% block markdowncell scoped %} +{{ cell.source | comment_lines }} +{% endblock markdowncell %} + +{% block headingcell scoped %} +{{ '#' * cell.level }}{{ cell.source | replace('\n', ' ') | comment_lines }} +{% endblock headingcell %} + +{% block rawcell scoped %} +{{ cell.source | comment_lines }} +{% endblock rawcell %} + +{% block unknowncell scoped %} +unknown type {{ cell.type }} +{% endblock unknowncell %} diff --git a/tools/notebook_output_template.py b/tools/notebook_output_template.py new file mode 100644 index 0000000..835a2ff --- /dev/null +++ b/tools/notebook_output_template.py @@ -0,0 +1,48 @@ +from string import Template + +notebook_template = Template(""" +.. _${name}_notebook: + +`Link to Notebook GitHub `_ + +.. raw:: html + +$body + + + """) diff --git a/tools/update_web.py b/tools/update_web.py new file mode 100755 index 0000000..9e2acf7 --- /dev/null +++ b/tools/update_web.py @@ -0,0 +1,371 @@ +#!/usr/bin/python +""" +This script installs the trunk version, builds the docs, then uploads them +to ... + +Then it installs the devel version, builds the docs, and uploads them to +... + +Depends +------- +virtualenv + +Notes +----- +If you set it up as an anacron job, you should do it as a user, so that it +has access to your ssh keys. +""" +import traceback +import base64 +import subprocess +import os +import re +import shutil +import smtplib +import sys +from urllib2 import urlopen +from email.MIMEText import MIMEText +import logging +logging.basicConfig(filename='/home/skipper/statsmodels/statsmodels/tools/' + 'docs_build_config.log', level=logging.DEBUG, + format="%(asctime)s %(message)s") +sys.stdout = open('/home/skipper/statsmodels/statsmodels/tools/crontab.out', + 'w') +sys.stderr = open('/home/skipper/statsmodels/statsmodels/tools/crontab.err', + 'w') + +# Environment for subprocess calls. Needed for cron execution +env = {'MATPLOTLIBRC' : ('/home/skipper/statsmodels/statsmodels/tools/'), + 'HOME' : '/home/skipper', + 'PATH' : ':'.join((os.getenv('PATH', ''), '/home/skipper/.local/bin')), + # Need this for my openblas setup on my laptop + # maybe no longer necessary with newer numpy + 'LD_LIBRARY_PATH' : os.getenv('LD_LIBRARY_PATH', '')} + + +######### INITIAL SETUP ########## + +#hard-coded "current working directory" ie., you will need file permissions +#for this folder +# follow symbolic links +script = os.path.realpath(sys.argv[0]) +dname = os.path.abspath(os.path.dirname(script)) +gname = 'statsmodels' +gitdname = os.path.join(dname, gname) +os.chdir(dname) + +logging.debug('script: {}'.format(script)) +logging.debug('dname: {}'.format(dname)) + +# sourceforge account for rsync +sf_account = 'jseabold,statsmodels@web.sourceforge.net' + +# hard-coded git branch names +repo = 'git://github.com/statsmodels/statsmodels.git' +stable_trunk = 'master' +last_release = 'v0.5.0' +branches = [stable_trunk] +# change last_release above and uncomment the below to update for a release +#branches = [stable_trunk, last_release] + +# virtual environment directory +virtual_dir = 'BUILDENV' +virtual_dir = os.path.join(dname, virtual_dir) +# this points to the newly installed python in the virtualenv +virtual_python = os.path.join(virtual_dir, 'bin', 'python') + +# my security holes +with open('/home/skipper/statsmodels/gmail.txt') as f: + pwd = f.readline().strip() +gmail_pwd = base64.b64decode(pwd) + +########### EMAIL ############# +email_name = 'statsmodels.dev' + 'AT' + 'gmail' + '.com' +email_name = email_name.replace('AT', '@') +gmail_pwd = gmail_pwd +to_email = [email_name, + ('josef.pktd' + 'AT' + 'gmail' + '.com').replace('AT', '@')] +#to_email = [email_name] + + +########### FUNCTIONS ############### + +def create_virtualenv(): + # make a virtualenv for installation if it doesn't exist + # and easy_install sphinx + if not os.path.exists(virtual_dir): + retcode = subprocess.call(['/home/skipper/.local/bin/virtualenv', + "--system-site-packages", virtual_dir], + stderr=sys.stderr, stdout=sys.stdout) + if retcode != 0: + msg = """There was a problem creating the virtualenv""" + raise Exception(msg) + retcode = subprocess.call([virtual_dir+'/bin/easy_install', 'sphinx']) + if retcode != 0: + msg = """There was a problem installing sphinx""" + raise Exception(msg) + + +def create_update_gitdir(): + """ + Creates a directory for local repo if it doesn't exist, + updates repo otherwise. + """ + if not os.path.exists(gitdname): + retcode = subprocess.call('git clone '+repo, shell=True, + stdout=sys.stdout, stderr=sys.stderr) + if retcode != 0: + msg = """There was a problem cloning the repo""" + raise Exception(msg) + else: # directory exists, can't pull if you're not on a branch + # just delete it and clone again. Lazy but clean solution. + shutil.rmtree(gitdname) + create_update_gitdir() + + +def check_version(branch, latest_hash=None): + if branch == 'master': + remote_dir = 'devel' + regex = ("(?<=This documentation is for version \d{1}\.\d{1}\." + "\d{1}\.dev-)(\w{7})") + else: + remote_dir = 'stable' + regex = ("(?<=This documentation is for the )(\d{1}\.\d{1}\.\d{1})" + "(?= release.)") + base_url = 'http://www.statsmodels.org/{}' + page = urlopen(base_url.format(remote_dir)).read() + + try: + version = re.search(regex, page).group() + except AttributeError: + return True + + if remote_dir == 'stable': + if last_release[1:] == version: + return False + else: + return True + + # get the lastest hash + if latest_hash == version: + return False + else: + return True + + +def getdirs(): + """ + Get current directories of cwd in order to restore to this + """ + dirs = [i for i in os.listdir(dname)] + dirs = filter(lambda x : not os.path.isfile(os.path.join(dname, x)), + dirs) + return dirs + + +def newdir(dirs): + """ + Returns difference in directories between dirs and current directories + + If the difference is greater than one directory it raises an error. + """ + dirs = set(dirs) + newdirs = set([i for i in os.listdir(dname) if not + os.path.isfile(os.path.join(dname, i))]) + newdir = newdirs.difference(dirs) + if len(newdir) != 1: + msg = ("There was more than one directory created. Don't know what " + "to delete.") + raise Exception(msg) + newdir = newdir.pop() + return newdir + + +def install_branch(branch): + """ + Installs the branch in a virtualenv. + """ + # if it's already in the virtualenv, remove it + ver = '.'.join(map(str, (sys.version_info.major, sys.version_info.minor))) + sitepack = os.path.join(virtual_dir, 'lib', 'python'+ver, 'site-packages') + if os.path.exists(sitepack): + dir_list = os.listdir(sitepack) + else: + dir_list = [] + for f in dir_list: + if 'statsmodels' in f: + shutil.rmtree(os.path.join(sitepack, f)) + + # checkout the branch + os.chdir(gitdname) + retcode = subprocess.call('git checkout ' + branch, shell=True, + stdout=sys.stdout, stderr=sys.stderr) + if retcode != 0: + msg = """Could not checkout out branch %s""" % branch + raise Exception(msg) + + p = subprocess.Popen('git rev-parse HEAD ', shell=True, + stdout=subprocess.PIPE, stderr=sys.stderr) + version = p.communicate()[0][:7] + + # build and install + retcode = subprocess.call(" ".join([virtual_python, 'setup.py', 'build']), + shell=True, stdout=sys.stdout, stderr=sys.stderr) + if retcode != 0: + msg = """Could not build branch %s""" % branch + raise Exception(msg) + retcode = subprocess.call(" ".join([virtual_python, os.path.join(gitdname, + 'setup.py'), 'install']), shell=True, + stdout=sys.stdout, stderr=sys.stderr) + if retcode != 0: + os.chdir(dname) + msg = """Could not install branch %s""" % branch + raise Exception(msg) + os.chdir(dname) + return version + + +def print_info(): + subprocess.Popen([virtual_python, os.path.join(gitdname, + "statsmodels", + "tools", + "print_version.py" + )], + stdout=sys.stdout, stderr=sys.stderr) + + +def build_docs(branch): + """ + Changes into gitdname and builds the docs using BUILDENV virtualenv + """ + os.chdir(os.path.join(gitdname, 'docs')) + retcode = subprocess.call("make clean", shell=True, + stdout=sys.stdout, stderr=sys.stderr) + if retcode != 0: + os.chdir(dname) + msg = """Could not clean the html docs for branch %s""" % branch + raise Exception(msg) + #NOTE: The python call in the below makes sure that it uses the Python + # that is referenced after entering the virtualenv + sphinx_call = " ".join(['make', 'html', "SPHINXBUILD=' python " + "/usr/local/bin/sphinx-build'"]) + activate = os.path.join(virtual_dir, "bin", "activate") + activate_virtualenv = ". " + activate + #NOTE: You have to enter virtualenv in the same call. As soon as the + # child process is done, the env variables from activate are lost. + # getting the correct env from bin/activate and passing to env is + # annoying + retcode = subprocess.call(" && ".join([activate_virtualenv, sphinx_call]), + shell=True, env=env, stdout=sys.stdout, + stderr=sys.stderr) + + if retcode != 0: + os.chdir(dname) + msg = """Could not build the html docs for branch %s""" % branch + raise Exception(msg) + os.chdir(dname) + + +def build_pdf(branch): + """ + Changes into new_branch_dir and builds the docs using sphinx in the + BUILDENV virtualenv + """ + os.chdir(os.path.join(gitdname, 'statsmodels', 'docs')) + sphinx_dir = os.path.join(virtual_dir, 'bin') + retcode = subprocess.call(" ".join(['make', 'latexpdf', + 'SPHINXBUILD='+sphinx_dir+'/sphinx-build']), + shell=True) + if retcode != 0: + msg = """Could not build the pdf docs for branch %s""" % branch + raise Exception(msg) + os.chdir(dname) + + +def upload_docs(branch): + if branch == 'master': + remote_dir = 'devel' + else: + remote_dir = 'stable' + os.chdir(os.path.join(gitdname, 'docs')) + retcode = subprocess.call(['rsync', '-avPzh', '--inplace', '-e ssh', + 'build/html/', sf_account + ':htdocs/' + + remote_dir], + stderr=sys.stderr, stdout=sys.stdout) + if retcode != 0: + msg = """Could not upload html to %s for branch %s""" % (remote_dir, + branch) + raise Exception(msg) + os.chdir(dname) + + +#TODO: upload pdf is not tested +def upload_pdf(branch): + if branch == 'master': + remote_dir = 'devel' + else: + remote_dir = 'stable' + os.chdir(os.path.join(dname, new_branch_dir, 'statsmodels','docs')) + retcode = subprocess.call(['rsync', '-avP', '-e ssh', + 'build/latex/statsmodels.pdf', + sf_account + ':htdocs/' + remote_dir + 'pdf/']) + if retcode != 0: + msg = ("Could not upload pdf to %s for branch %s" % + (remote_dir+'/pdf', branch)) + raise Exception(msg) + os.chdir(dname) + + +def email_me(status='ok'): + if status == 'ok': + message = """ + HTML Documentation uploaded successfully. + """ + subject = "Statsmodels HTML Build OK" + else: + message = status + subject = "Statsmodels HTML Build Failed" + + msg = MIMEText(message) + msg['Subject'] = subject + msg['From'] = email_name + msg['To'] = email_name + + server = smtplib.SMTP('smtp.gmail.com', 587) + server.ehlo() + server.starttls() + server.ehlo() + server.login(email_name, gmail_pwd) + server.sendmail(email_name, to_email, msg.as_string()) + server.close() + + +############### MAIN ################### + +def main(): + # get branch, install in virtualenv, build the docs, upload, and cleanup + msg = '' + for branch in branches: + try: + create_virtualenv() + create_update_gitdir() + version = install_branch(branch) + if check_version(branch, version): + print_info() + build_docs(branch) + upload_docs(branch) + else: + msg += ('Latest version already available for branch ' + '{}.\n'.format(branch)) + # build_pdf(new_branch_dir) + # upload_pdf(branch, new_branch_dir) + except: + msg += traceback.format_exc() + + if msg == '': # if it doesn't something went wrong and was caught above + email_me() + else: + email_me(msg) + +if __name__ == "__main__": + main() -- 2.30.2

    nqri{1+AAxi|hh8r^;~ z&|EIL%R;=uirL$Hv2}}}382-$+@QcjBA#PRYfCP|?ki(|x?1A9{4I`PnV-*Uxch)1 zX5RSy+6r22YR;FBTL1`_FU)}!9Xt=eIgk6ZU*)VxcJ%tx2DFgy(ctJU%rVRlHU%_3 zxPg`1j5f$iLMf-iX0{?1u9lzIy-_t3}V_32b`@t9}&CE5=;-KM0g-K|3@ zST|bgU8{9>1$wBnX)tl|^^HFp2wdDy9EDZdHJck~ z;&`b+sDpXT4(p!!#ky-<&UHMd*+I)2y9*=GEIkd;G>2CkhvLPpX*33BZ*9miUy4Yl zO3`E~JX{d{RP?6Kb_C7r)xo-lzQ@K!p^W;_)v6y3cQJP%W{Pwud_g#f&d);uJbFtD-*ZLB>@c8pO;UltU^RM zS$)@&2Fwu&iQLkr{&;1OTS&a5rj(O<73K1A330@NpI8P@AD!k8<7gk&Ath?a1$jeb zvC}1wqv^sLS4l>t!W}SESTQGMU9m1b_X_HhR|S~Abk*r9sCQM))2^bwwz8CGSxG6c zL``t;%cy=Mm3BF5;S*!x!>i>rC>(Q#o&xGqYL|28&c(uo3!RRo+N>r;F%WixU^pf= z87QutOtsnevfjlsst?(BGvTB#H{K}HL2%X=rMe*8ol>SqFg2>&GxTM=9WTaGV(vS1=(c<=tfmWTyhnS5$3P`4?sE8WAQ8bZKZE~lI zVY10cq6A`*5Fd%vpZyzWU-1(D^5o+3q+FL6y{Pdwnjty`UCQN1?;EE}c zxSOlu%BqBRrz4|dI3ZbhC3jss8?_eC{}hZUGKBFpMde}264EjX3qSi5`Blwv^59Nn z-b)EnixVDn^wGJ3w;z`B;AUb%1m=D62?}Fc!YtK*9=k4vCwnh?-3T1Ba39%6J8 zX*s0Y>F^^3P>Jz-9@r6Gf~2huZ~E)6mLDDzV-oZ=n%%)At0Ae#b;oNi1MXSJOyglhntl3?K9{q=4aKCPdDBp$8-hLHx zH|}O9q^9`pAbJiz6@zkJOj^JsptElwVGDzaNgp{kS@;XL~q3S-+~#HszU@b%}gsw5p} zjUS0-Y)VlTF<2fo1FHfF7+x`eY&Pjb8XTOV%uktPexrc;h<+M;#V~i|MFCyAc6H3K z`o0)q>4M7HL}hVx-M1!&o;`bF#flZ~Fj4#Vw1Cs0gENCSfBt-@liaIUFDKESGiQ#Q zM0)q`?evtDzfCa0!JOe^VTw~9zZi5~n=J-0oJp@OkJ`e7!~TTV71#37B0@G`g_CGm zpK^r9sS8GJ;kAVsF2+Qto+X7=y&9eNmhM3CG1$suZ!m<97GO;%0W^3@E4R0FwdJcc zwS`;0wdLmzQ+heoo1CtO_vh!2yFdQ#8rLBa`lB5p9RL(y4tnY1#}wK5s0xZ{>}s2BSW>`QuuC*5}lgY%%SC?FC*qEiEr+ zevY%EB+O!Z%PPxISXPK82~Cg|?;S1`Q!Rm>O`bUgIrw<($C#5l$LT(w+~H(&is^*N z@<_Myc%%;#8!hVl+z$p?H-P}4KwrOAVZjIQV@2LttlC(FZaq3;-Tbf7ZPbMr(kBa5 z1-W?r`NuJ1F)-@93ovRxM-qjS*FxH8o;(vR+V;kP-g9WEzQExZF0R+axNCbJwil4m zt!~6LQ`f9H?I?REMr#VD373+}*hqZ&&P#Z8+LuV93A_G-Pe68R4Cc(5$xBeSA)#G& zG|F3r?Pnb{4MCUIjj?URDolE3BId8G!k7sc;pF~po&9QSw1%e|Uvz8?wyv0iN1u6_ zdQItQ*X}r+I-)-Fcu;laC@zkWLXwrQMF8SU$NR8qaQDq6< zpZFZ!pSKK|*}X7;xOZz_g=z24L(9G$uz@Fq%hEgI^x?;mX{Cjd9UJh%t8Zi8>P_r$ei1o+CLPAt2K78?hyuYFfJ$v^;W}EgH+_M8BiZ|lg)#)Bi%|hzoFjdIYwvS%_cVavw5JKL@Wo^AdWd z#bNil*|_iaiMZglzawqwi}>vuui)=by@d_|;<#?Rn3B@^(D)m=NN+gKWaiNfdaJ&$|lL}J14 zXYtTAKS%C_Ka-&!LvuRp$bl93OVpj{Re2XqBiRetMr^5M^?K}ia4DdEV|}MzzkZI% z(*d(^XA_5oYsW+rr$eV6lQQRSl(`I=0ZELq~1Yi;k!G~VXTytIhpj2I;`+ugf& zubym`r@rZDemxDZ`uY`5Tcu(y%6Rm|98K? zuKdE&JHY&7^c7Pt)e>_S-=5zUhCiL(FF2OBJ;T3i@uRx)$8|5EKXs+EaC=%By@$i_ z$EnS4VU|t|z5H_aE&S>KRv*8m-=DaKkJ5-n{{C58ezk?w1#f@i`t$Io6HZ!4`@j4B z{#Z{P`n0s5aDs63XT}1w|yzQxQ^NV*A)2!!?q8(@)*O>f_ZjBCU0C3)S zj5E^+#@d3lj&c5S~ z{OtCJX?A1_CX?AJ*uDtwe;&lR;T`e&8!pGI3(L?mGah%`{SY=a?txR>QZeHR(s z`;%$Sa9i?Lfl_BkNQlS$kDkW$cRq#D% zZGw$9Dgn_u=i(PXxdVZ$6VS4J1|EC-V~oA>dzk&VKjO|uU%;{r>+s&>m$06a))R*f zMnd@}{PV9bVJoHI#S16l#RU<#VD#~L^$$1U@6Ym*mi24Ncuz!bSsYFq+8@*Za|dqt z$NLyG=49l)F%eI{vJz)rcrxbx_YU0l*eZ-2*9GrCb{95A^~4z`CgXRPj>jF(PepQ4 z4F3DfV|Zt2G%gz556eHDhI^m>8XemfVbW92A=r5gZ$}K^uA8pK%`ePloh9MH|NA38 zSlbQPoZTGPU2p}yu4scH9b@t6O%I}!%>IBLnNAHx9ZNKjliJD7b@TA}htn|jqVv(S z?_ivM`UrGtl8od=sR$G-MC6DcpjXv;mMIB?yLUuJ>y}vY$yXTr>)UbOz$Co*^b};A zFad-5bi{ESd?Mm2G3vBY2(J79x8HIf2$2&K>Sq94IC5#{(( z#Z_p8LMn1lg~pZS*q?(<0ozKnd^OlgLK-d|QMgHpH3sPCk1NSaCQq(QzfV6&5M?u3 zOtU6ceHRlcMq83I`SsIQwB;v;PRzKNOyT9f)lBIXCI(CK1GNRgP&$?04?}n=uDQBsrM9BD`YzQQ;iPod#^l#`KMd7pIE@wGa0{;wYmZ8& ze5@S8&C>Z{s7y*D7`7V}PUHQ7AvodXHyDB=zirUvy3w5H(ovVbGJgwV_#Vr0l<`-^b`r^cSj;dtpU})@38m#y zm9%+tj_%~L`$i#mQldw z=vv15Am3D8#j&z*2k*;>K@2qy%DJ_zyaF^69HbtkaF8DK{7v)m+S1qX`r_A}p7YsV z&&D|&&q0SK9S{>>I$AO-*j?b@tBnhWoNzcAoQLgRFtvi{q7haNdY>{9;|H9F`|kfE zT4oHy-yVDrEzky^J@Ys|+uR&?J^CN~=GNQs&@V^eo3|gwbB{fVyv)<^#MAfVZ-2QD zqX%W6pio;kjDN?a?tur{{z(74d(4YA@!lqxD$q+H-T5nL}2ukdJZ;f5svN5pti}$iUQGDI&A9ZUOEKo`Ycc7y zmvP;XE}%a24!p%hLVlne$?-{Ok{OG)rv4iIrZb4A1qGzktu zE53TB2btuUJ1i8?c%#WvjI0hS+4Iv+Kdti+p$1)JQZzwG{X>(3e-hCI;Rg871f+O! zHonQPe3VA&7fPSYE1flgYl4w2UQKd3WF{%L(#uY@4mirMFnyDM{rdG-wTio5{3d2z zd09Dxhr$fTCSKVqiIBliTrv3uLkB7KGZ^}&IKoF0t82YBNC|r_yl|yAU7@~o}(AK@;7!0LVT$MwI%2W=;6>fr|aOJBq2oL!!uJW2U zZ=Oq|_(o%cp}4|JX$3cVGa6ex8jYxzXXe@lx#sow82rt!#ABNSxa1#vSVKDslD7+QN z+L+;HFjU^~dK65fv6bIn4xO7&xbhHOeKT6A9u0=@(Kmx3x~g0X&t)CR1g?a8T6`Og zm7mpz%CB=*n;Ex&eWje~HuAfJK{y+!o*_nh2lHM3?6bg>DcH)e?JRQ@^WMa=6>))G z&V|v&5Dd{#v=P`<+pP9X{@-yOEi|>>e14vUi8z>oW>_>k1BIG4Ar;F z;@S%7u(Mz%%evWF(^!+c26_2;WW@q5Y&Uti2;OI*xMG~6`ESjJHJGtx2L3tgpLlBS zQ&c}K#h8pS_(ktuU_i?O*qqC{;pHiXMTN*CPb3_Sadwq{6#dz!3WqAgoP04c31~uz z4)3#~KaH!1D8y%_BBppH_XiTujC`k@ZtROFUCBne8I3yhfZI4sX-&yY3NI)LtuAV^ z_7dqYS1yuRaz=EAuS}nV4g*fc@g19>k~+}oEmEnE-5A|_bwG2%*|B{a z$^vm1a?#}|owphlJoL6?{;PO-dLQ(-uoeFH=quzB&o-3>}Ui4QfsO?KmVyv_v+eu z^?2lte*oithhamSV%mobkH|#ugI)PIAc^@D)aR6F1jmP$) zDx7=G@6fdKK$MqM@^YAHES&K^=H^sl%xOc>JT)FGXa5)LT1>!uAN~a>ScLIIeuAf_ zpM{$TtwCvO7P6>@5dl3Ho*u!}8m!q*JxD9dKttjI`jEIDE zG)_uHMH&|~tUHk=mUL}0WHf%9n1PN|PkG{j4-wBBC#Qd$hu*C^U^fS#Q--y}7cb92 z<>=n1%9)MFrY^%(zr7LDAGsUz`uz)ioAWS7QIIUX>{F)kueZe8=PFZ#Ipz+C0vc!Z z(?BYnWvO0BB4JV=4f3)*Yff>+{Aw~;ym+x=E)-vrxxzF7NYbn@H{o%RmWqcambGiw zIyicl(*Q0wdP;xNt^}3@TknD+*uqUxE-~v0lZuEj;F9V{nyNU8EBKNeO3JFdB?Y&M z!gPKWZZIsJ!pv5ya1#u3219WKLwHEiqdb&eFqBq)({WT>r4wvTrlLtW4AIEwskqA5 z@R48N42H_DJXCJMP(1zg-K5F#TONX?xZyBFS1~ub_(JIvM`coc(ckDU82Tm{`zpWH zzv!hM0MW+E;fJ9x(MdQeZ>vXz+kri!tI{c+$|T&3#!6@PsC4=+oDH6z#s))p$!|3F z!!R0K`PFs|hSDjn9k^5+qm{KU#qrZv<+nPpx=|cUr@T~;!q-n@iz|4FtEb_tr^+u} z#qjC7+Jlu}w30K_?VtJp06+jqL_t(qSv~q;2zRSTgCRW4Z!navoWCB8#)@O*P&}i% zzKaHeXEavcitEQs->v+Dp?Xx9aLa0w=_JA|v^%t{aO;nPtF|JxMThLuXzM+i-=jne z(nWa4HDh?h=bs~K#tcM}`3-dHgk+92$}6C@#M=dR@mnP6Xys6S3xB}~uSe0w=wtoD zXsq&E+qQNr9E?`hRzwHoE&KGUKdU!|8I4_B>TbtUU@7&C=2V?ky2@zYC301oC3YhO*>;;=W$dU?Z%Vb6h@JemQHkP z6Y7LhsHn?S8mBeJ?j5_Gv|4x{ZEl|obajE)YNQAH)q5{fTKWoljmg5AwI5>Yf|Ib~ zt0~C6b`1K?|0Axu_7AvlU^*VW^=b6I4Kz_U`#X@wWh%3C()P5j}Z*Kz0H{|{wb zJ|m-8gq2GdQCIkWd*j{LpLeTq-8`6@zm;d$ zHsSLRzrw^@qJ^0C-$^LR8jaKYWMEoU3Mwhp{rKG#_~`R_*b?(7 ze)PZu49edzV!h+@~3F`3xK5+G6|&T002t z!ZSBaz}>Sm@!ITJ7=L^M3f9iX^_O3PygQ#j&)9EJ)U-MJwgvut)9>->yh?oW^sQ)5 z#(L!4eQ@pX|A}9m8iRko`vzKnbsPSC%bgfA_{aEZi=O!X=oG5EOvc0+?_pbWPVA?R z$H^xq;nkO3!@A0Dc;;_6pzNc&G5LwdP?a7@iS)h5Jm-1b_UqFzVR1*Sc=|uMn5Ts&&^pYgZ#;?&_K0Rxl)y)!O-MwuC}=Prb$lu z)&)allJmp$m%|UkAII=f+I_*O4L75uaPz~kxXRP&KrjrR;ihy(WBDzeKd$^@Aof;% z%h#XIU?|LB$gj&d%=yz916CJ}{c+82Fv81U7maI!A$a;J4}W_y7-}n)t~MI0EEZRO z(OgdHB4#hQl@$%PJ4uu;G z;bqRsUrrul+N|05^qVzgh~sePaPC63B10YOk1B`JShk##xJagWSX)lw13(KMMttB^}{LPMIgF4~G&8)o6N^`E);$7LUf z0WAigO>!F-(+LiudFwK7W7a{#*aWJrFfU!6(kQMGigxjkKJhpjUA=XnsrJIdSCu?? zwj5O{S?JiMC%SdYL~=$KbZtxZfo{Wb)r1jPJ$E)1t=NqIm;VC4x#|=&Y1SD7Ddn9% z=PRUT55NWIkDx__);O+57KtdSlk^!q(y3A_X+}=^Hk#z@S3%-dUw#szvXW>;CzCO| zc=&G3l6hFMqd9K4_Lpd#vqwxe~Aei+!Z9gcqYX|S zGa6l5CU_HS;|%IHH^;os=5R#qfJ-jF6dg0DXi-{-{H-~dJ8uy>4w`_ge|R>MD9vuy zGy(Hw&p<`y0GxB~Sl%>Ph7R3&^8_kamXwfo?Kcb~PU^!0fh=D{G#S@2tXs7Vi#LB7oFT4Rn(X6+_f7LO19vOxodIaX%}JK$U*4TF$=+6YcZ3m6C=i-i{aEU4#uRT zN6)tC(y22dcWuO%3vx01jEiyFsV8FK34@TleL1FnG!uD+@i^yu-^ZZNoCpZJVAobG zo;MdoDIM^W>#jrFG~m6rW>I=R3Z3FhP}coa+;-cw$e=!X$4=>(KkH)@M0CW}KN^l0 z4i2pc48^(QMxt=-65_rNy~ckJSN-Hvq@-oy)oD*3S!VZyA_fer=s8R(KxpcT4i1+ayk zK8`yaUAuNiVIH@%$)LB)revP#KrJ#_qHp&MELoL{rmZ@o9S?~{^YCPk6Gl-5hmyk< zX=stz8@+pUaBU>IY8zgTdJ#P;FF{+X6_v4_9<#x5Xofdq?v%R?>Kf!bQEDT}n3z#9 zzM5z>S=iujaW#>MQI?52O}v^6rPr*dH&uMpw~VTfdsX{dIdVVAPgJeQ2zm4sGpQd)Zq#_60-m6lZ_(@W(ZpOD#bv57wqF zjy)}2ZTR@(D4v`@tS-M7bI-W`FfCG5kH*~lza2=K>%ynDa0|1i4h5^ftIr8HIs0Z$ zf0&EFKZfr+Q$NO^U!Q|di<)5eI$krsegy_}&T z0vuE1sw!yulw(XO7xWvb+L6Frok%j!!f1~?d}E7C$Uk-A=?|}OT&0my`K*jm4{?1i z(d%?NlOcmNqIHC0k zIJ3){7}#nclH-zHK4Qw5%t@Pds8CYpqVgioyj_I1yJzY=lAvo$mh;1L0S)vIt)_%# zhguNSB%ldN1DtezJo9QbD>pBRYZlz0!sk|OHtkV%Vi-(`A@2YW&dIhGS}HTE>kBC~8d zsOWd)wBk`tU7vV{hvTm6x=SilUXMnKTcMSQn8#ResEwfid$8t>hgzxSMtz6Suk=B{405veQ7yOi_tV6h4Iy{f-89GgQ?G$6hY}r zNv}xWJ`_uf7&VSK(tdM152ngVkGYH;D%O{u#Vw|;l+5%gHM7#XU=K&_4R&-dNGAUR zv9x!)M+|o0(3XB!FqznRS#?yjKjH(u74Z(>%(iK+w-k(0FooqJ_kcqtcUr%Gw z<|H(4(+)d!?M9RQ#rWq%C!i0_Ush6oSO)-|IGC7jb`eohi%(ZgMM!iikz6vvz- z)62Fk!zXJ$p=GjVNJ~h=No`L;uk>Cnz2bSMc*Qz0wn{@(J7k9A4?qfuNhZ;(~)r=zR zbg3@PC?W$?Nk&pqJa0wfU20MnLsH*KOYthWnkl8;ty|_e9H~M;Q)k7L?gm&%f~apg z1SvFSXS%Yi2)nr;2#|Tzg&=autAu#k4S9Asj4Q8-=S6a5lI0LFv(65pYh22kdb3=O zN-d?3G!ow&MOdyZRqRN+dDzWC5-ds1NeyMHZ-xA(j|@=53Ixj;rqjnBUS5OpbhLuJ zvB$nye4dkK{)HZGm5rl&1j;$^mdJ(<;V7>d>NXVz({S+(e@8Cy$y>7y+qz~#T}gDP zDZl8&G%SQnzLB-01cY{<O28g$4<-rLAy?RmGaX7p76-hcqdh}+Xm}lv^%5Jp^72sA7Ka=rg81qzI0_P%1 zZIiXnGKk($Tv17HPYhKxBgOo5xlZM7(mIqjg1TGf!4&+Y{8ntFC5}QKh?Ks+l`>S= zV~;~j0Zq^|XU=qWr8Xu1kRd~yG}`LWPzYzfTpJ91tnHisyXA2(pMojIA{_R?gi+tT ztgITF8VXK^yWwOwTKJKCY65Qv_2#F6aB4_25^iFiReue|i9U6UbBBuqPc)o_p5@w6O1s&y$uv{TMKy(XiYLZde2tu?D=sgl zs%8$p+DvuTyoK0avK<}MI^yEq7o%&_uGQCcyBh}`sWneWVrMC(+5DFho8s(3ixC%1 z>@pPx!~<0AJ=#3=W}vNL5n_m}-+Zf4kRkDlBwZpM0MRXAmczk)dd!iRxoi%rJ18vL zCkYRS=uhMSRvVtKyzCTi3x|cUZm2^9WNH1$tNrdWnCdrr)My+d>JRk%YEW*4M`lm{ zP^e?1U0D=R9j->LzUaZNiLZX`Y<^VZ=aLcMD5eb!5pHWKAuStcoZC^K>1c9?7BX~8 zqns-c^VAeij3!r%3isiniKec}MtKQWi!Pc+_(aE+kLaS(c;LE?;hCT80bR>{lIcI+=aKc-KCT5-*!K++`n6D!%2%r zsV11Ji-mu;Tn{Xj!Is2Oy9|=}n_7vD3kL>a|5F=IQY+Dxa&~t1{%3L!QwSe9(L?p7 zcbRE4JP#tMdS~UwN$p!(?ozKh(m07m!a+OcI+Us%4JX{Q$wws=J^k+rL>~%D|n&W_TueG zicLbJ7-}w%CsUclpv#5h=feDSb+L|~Kl@~$4|RnfOj1R2>pp@NC`%Uy%c)~V(9%O9 z8FEi0gN@Q_n{|L-6Os5i)H&;jR2{6gBmJlVCDD~UL|L7=F{kXDj=2<2MP`F{DhINT z!E#E<%0P*`oupTBTztjVkBnrbm{LlvrE^_H`;EFa($hWH;>K5)>iD!-$t_H(=(rPrqVzq)VTl=^Q$rmmN|MOd2tOj;Cc58;ra-yc>0L}_XS(Z zL-N$%Q^f-grNWv2j=94}0UK{jA5OOhDooqzc8KusVY7db40oxeh$(CcsuG5iw*Q5f z;bh_aSHgoETXigEry<~E^pMWI@H*1Y@DU#VcJB{A+&KDS>zsi}p#9-T1Sic81l*R4 zYIR%EJX4#~yrYSP=N&i^x@SPUm)tRG*RCCI`SAp-+mM4~syJjzJ!R!8VD@YTxERLS zXX{j>H!tcN8Dy^fbVa1cNDChGwi!bb@wQo6)hZ>2gH8rrbEfo-Widl)8N171vWt1%wP7Bfn6?UMOc;k2G}K(Kd<{P`pw)hIjKtWTGS#+?4nrEw%F{{6b!bx3 zX7^6MmnQu-fA|(kQ`#ewmxKhxxQbaM3s*rM@+z*}qP6-JJT}OPNZJ=&mxDlZb2Lhh zLzNg#DF9RV*D;^$v=Nl*ic|qfR?7>qbNw1bHfhBZwv5mGrP}f>Cq%hI4N@O!=f)jK zXxWN9IT>zVI^&pL>Iau`VIX>lF|NyrW|34CDc?!^l{{n7sC9Eh%J@3VEn-v^@1}_x znT86f*N7g}jovczLzG0dK+A!h5uollE1e*?1;$BVg6lHslRIq`1s?`iTSq?(V2^ZpT1qb*tlemr#nd<~Oy3WyV}EmweNH~< zidVO9&2yrg=1nonVtB>;nj_Q9%JvvuF3#BiX~(z{X*A=eA1wy}&peGF4*>=`bO5g) zmbn%$HRC$J@~fqP8$E0sFs9zZ4TbOWB)8*|)ipmAQ9V_CNldJm=A@V;#M8=@Qwi6ZK%(EGSG(`aY;C%;}Q`cV$yU7t)xQcW4uFThEG*F z4TI}OK~`uCzwy`|WB5Ry5iD=XtcxOk6@rL-UtS+NsSUwRRXcQoeh zh`ezpl{X88IKN0WTB=CMezj|DytPNV$6H^Yh~0fJLYw2d@X(={YF?i5{G-@#??j|s zb2B{1f!N zc>*f8EX6l>{}pAcd6<(D-c~>VJzDq8LS-=r7A+`T2{b6OQ?SET7OciM|F|8ydF^#f zw=w8)=M^kFb*0uW#EL)t7Q2ghLCrmPp&1Q)l$VlOAnqPTU4L@YX-SfIFPwp;cRqsB zE!)ue{GX%C<)AdODeY9gg8jHHvnqKO_yx&p@j|-PAMP zVabY}Tkz&HFJfy<2F~Q=Gfg77sBk*XhIyy}#~%L^6tDqTmlo)xxFn|9wiffJ?S834 z9LV9m!$l-9V7jP4)Jq}oCiKHakGkN936si1HPaJXfYcTLP=;IEld6jt zF-f5<>`=n3D{sM;)10L90CJMnA4z982?w<$S*r;@1bkTWBW*+_Hyg0e$=bhaE_xm1*)}7xvk@3QT85&%JX9yfBZwiF z3)NF~xEJdFYS&CSY0NTdz3+3qy^d*ipv5+;%nrlq^kw88jM2 z_&DS({}OM%u?VBi`3+ho@#;{nuqyJ`VB)(|0d8#!IX)9#Or4G$kxeo7{PAc~xDpRN z{3zOt{4G)w*}zmNIvuDi*t7xpB@t+oNvSN=6 z1`Drv5SxY%MC&YGN85KO8u$JJh55Y6$Ssg0vC{xZ%OxF;N5w{7R=}Jp6v)L(1g(6; z^KzWO{^NdR4;znBt$CGf8SAhb<}uIVq=5Ry;TY`1EbB5AP14dMmQ+w-XYp$GBdrIz zH+ma=#8hZI+1_nT*<0E}_04b)^Cd>r-Wvi=Vp7F~H58mw2fBbmKeh8CO(Sa)>H~5O z2`61bWc0D8;k&<2H>PlG+3#^(^A8!+AQwDAGP!NCvRodHPGW4u7;_AfMGWwpvy#D` zYv;H~$Mor*8U`6$^ync1OSbBsw0#Pkc%m!Y9 ztY63k&4MXU;3s!Y#yOY%5Q)pD;rlV6*;h58iuo5nh;l3l_Za zSDgRwG>jcG2><@)?|{}r@SoGpa;I@6{T54Dtrx6LNEM2r&5QB)oAc4R|NS)A5{n8N z0{{Glhw$Pz(Rl8Oak%~F+tBZd7cfD6v#J=;ElQrJ(DrI@JN`Cy zAnsb<7axE65>DzA&Av%JW-1!fBcG45tyM@JbP8{Jqy}*zCDWCu$QazmrHF3P4$=AVVaX(gp{1tk{6Y9e;!-JZRW_a64>Sw}jTK`yjD-CStjTwejs)96*$W zf3#&2GC}7u;UCBR7Oz4XZBeHUpiS(KEs)URN$lcvoq_fp&@`(nN@(MGZJxGw1k+nh z^MWEY9eoy3%4y<87v@k$BuE|asKjK9`QBw{%i9UbIWvJL^%uNqwHc@CVHg~H9!d(h ziS7^r&_FL3(nXYi(V|68bwhqx;V? zb_+kC0)NNE23z$hiLcakjL7knDr3|TENCK^kPL$5_ z*SmC@#XO6_6@zS2WyO(NhnyBKiX&&R<+ps~4|6Ju@X=0`t_jyp)c&a7NP_EULdDGL zr$c(XN_RQ2n;2QW>z3wds%pyavPpi!tz2y0y&224F2gtZ-{6}~Gz&^TqF3u)7@9Q{ z?Ni&kv?_w|uAp#D>BTe)rqny64k9NeUBnh_gXKOP;GbIS`~dSjT*(^@1MO;trJncl zLs++*mmo;zmW=1xsSo1a&wh?yjyeVXPS}mRZ~h&!w;Yd=SH6nvWd(TVf#)&oCx6BR zmkvYz*=@1vwlA@D(dU@-<{Vt}z_a-2>8(&P?j-#1hd1H1uhydE-4AftA0EM~Is4ERy2yo6;Bqpzsad^o&5b|9+uys#yE>b8f~(>)@b_2W zLEGP4fwN9~7&rav4gBV(V<624G2EyqBIC@}FQ{**jwZ&OHjW3Me{KAQJssODlO2IlVVTNNe5!fqmYy=IZKxwLgu2dTn!BHjjGmLR=$aoPGH(TEvVM3D4a3tmbyE&LgeQGyo@|uQb-41~G#oEg6iS8z5%H+nxdLnc{T8nu zFXahkO4@0f zo~kt7;KWpnQ?Px9Q+e5=lX1|{;H?NH#NUfA2*=#fP5}+#+U^unr3q->ym^kfk`%hG zEo}efE5E&)uCLzJe)RKyx3EJ&GiPd%a2twKxxGbaL&3rn>y@+WRJgI0XU#WozmKbL-(ULYhZiM9XxRUBD{=fA! z5C&SEgSA42sGL&Gru{o0J0%gtasBY8yKYDS&P{oUYyncUJD>^qx?)N{Q=0Lb-WVRJ z+e!&;<1|-+iOIBe${SK*B6ulB#V#5P_jJah5+V>6q~w;2R|Nag_6_S9za7@?+=(r; zi!3%Vj=EDD7rc*GKUs@Y&z^uz%^QINVYvHDsLByXgW;*EY19>FUlaF729rt&lnSI{ zQO-7OV;-sOlRDt2vN*<>KCfIHlxZd=d&q^jY)2GtN{l3al6AY5NT!iYpx)H6#WhMV z7}1o#valsO(MrcHl!*9Lbh-UmWUS+Wao-}At0s(OE^eHB@XDNjF(U0gk% zHs)l+a=}7{4~MIZcI?klO95kgwYA@uHdb|!irPfao;|D8H^L_iYcn?a+PjD#zrEM? zU10~y85~KQWKK)(2J^eXIFPgk&v1|=T&g98qdhI&;d~lSrdDG0*${9twUUED`vak= z(MWj6RGhgZO(VlY2YL+`d)l{sJ&m@yOlc2A-;}ni6%4G;HunwoIT_O&Rb-%naGgWHfQD1yD|Ir?f=*3J{f2~(GDGv*r+}B3B69?R{p~uAZHg1aF^!c zy-((#+lY%WXZA;!{LITZ^P0=ie$l&_GU;)A@T+TZ*);?4gFjw`(iN8?=ZnYj-W!{6 z-Y+k~*a<`NmtS3mU0065!dLIZrnJ5o)29vAop&MraosJrd};@L_VJrI>5^Mqu_Ab# z;ir@TfNTH!IsTq`Ji4CM2NAqI=k14|#>}NNF>BUa`14Hxj5_}!jOdb#-w!?!lkz%Y z!NR{`K%Wulv1T>Cdgk{?=fyGVh}N)mK#x}+l3C5iy+1ky|5-f%A1#@Vp`CTHM*j)E04uzgDkI^1|M;;H{o zMFziY`3!9MBnRyuI0?~Jv{*si>V!@`QStJ#So-ACDEwq5lKT7raa=*P{r;cOTKX2| zh@u)o>VV-`H|rV9zkN2gEr~{_s|P?wCGzLb!G{0-2SwAq!0Lb9i_#0vL1yPp=zRUn z99%3DdTFwbYgjby(*vs?eH8Pi6rv=$53dMs!ySbptbOlwS8Z{hA zT;o(q8qdMOmsNG9x+ukLO0(DVz#*?`-S#!Uf89+O^YeRf-Z(C(c%aegk5s2R<~f=v z;MxM)L;Lpaoi4Ekdrd}uXA_7dJh`C*hf+_FeOjpoh+&keExFaJS3A`OP5L_6qicwz z#vpxa!BSrPat2TF{CT8UH> z#7JAXAO8Nr@Tc|Xw=chamr9A$6I4%9;jr+!@~tb}pU(XD3@?*E55M2yi$+p+k&ds0 zh38@6_N?oBUE%djr}S!{QkRg^74(+Yo(lK-^)9C{Icwi~%GDLOw(sF_{duaNNqxhA z<+%e82BWq-gqbcddHsVKxaWh#*cM0I&GWy(=50H1)rDtLNX1=V_R|Qe_XOE)oiz=@ za_K@qf@Deqg9jtnp*^O(_5r>Q@DO~fp0p;BkLNyFf`Of~(Xvfjx2qeetBOO+aWy__ zZ~TSNIo01o69cgQEO5e6z394}nxUeQ zCt@ik55}Y-n+u92?UHFvT9>0xAFS``=z3ix@;{u9q?0a1<~e5}imEY0$4RwqK+k-O0^l9J}6^!7;kOd1WvTX#-v(+^`-LF=PrL8G{n9t=Kq_q`V z>!2YP^*na^0KT3&32~HITz6p5ccn>KC2!i5W+H45b^MoHV1{!{XP7>eV6 z_fyr6llk>sc?lms({JDHsd%pMF#mlyrKt-COY6_q{Pt8F;bPV<{Av6+7>sau{(Q`D zPk(v~Q~rK`ZSM**oD8nQBnDjWTnLN)Vsy2%WwJV z``(;CAI0;(*X6hTv>2?9vwZyc`_tKXd)D?%VRe1?(<=PRY)fOX?L9m{g-f_pur&`; z7p_BoQadzn)f)NR)A1hX>htoqplL=+PhC*zeq^MBTp$Nlt^`gxsYV|;D+_`2=1zSv zw~%&@6I-AO&8L>};Q8*70B!hlZqcG!l4Z?N;r-0_ZavU&uMb@;KYNCkQ|}rFw8-#} zEeba{?l7L4KZ8!!SW@Q3F|?!+%?X-FnY38(^-oR=uP!)QlE1`Va-w&+4rv{5<#AUc zD<#WGtX*K}kEGLbqI*2Irwd~XQCLxkl;{*k7k!tChHeZLFW|~#Q?rQUf!>3LRtCkD z-<}Ro=#QT^3i7}E{o&t2$&ZQ$7lOW)6o#^H_R*lL$v~1GBU)IrgZL^vJ*x92_y>$2 zZK{?yiIN9M)+=N~SWeeqR}e=}$=&;|zm=3Clrx{2@Jcd{#nj7f6ez?i&pwA~3zuNV zN2~DTU;Po+e!suF3Okl%jbg?@nT4UX2XfGe4?8HQ++|8FDs*_QlxAUKot}s5>xkUF z2-jVC2@0B>iQoU}dSoZ@0v1YG)e7S&DV8gz&E^W4uw%Qc#VIbYuO?joXXy?Hb(u+w zCy5Ji#ah9OSDcMzRUu8}Mbg4Z6}QDaGjC^^CPU5a+n4rv+10d9{nk+xbqFFbtnCA5S`yO-ZuiBzL>%+tUr zAjWoY&W5M(u}9$w6Z5-x@nR?O9XfQVW6E^+P*TM1)PtNpeY%r0OR}h~a7m}dB*{** zq(TD+4s>~Fa#0#F+p?gcZwKNeg%*RTd<|FS=lAa`e}7!RzqWM#@3r|wC+URXw;fELgP4D~qUR#>*Fy*0nPQTjdD~I?cs%fEH8UnD#OL`Z~`(#kE8n&9Qy2 zdlG)dGd)o;ocjo`dX5aAXbjnUKKAjE|pX! zOs&EgX5}ptb*r|o!m6FCuyFH2Cv{G5l#UjSTA*Lce(2e(XI&^bSdu_XvMlL#EO*0& zQ$$Pz5~C>D+7DNsGVd!pe;(%7Zk_G=)U^|}uY8Zx_sHAm>H@AUHdVfUR@l1Y9-MHG zsVt-NaVaZV6)j1w8d(`n*p`%(QXorNlb(x9sQ2rXk^sM0EDhm;% z?7Xt)9H1VrF8L^>1Y1(ss>l=^Kj>6+>70$G?A-A@02$8C>fjP4QLbii{drXGflp28 z@HNtpeJYpgM6 z?bP1w>DpyzG8QAI0a%Q$B+_E2brYcUs8_98<;E{D%wpEnhs7YNKZ|kG)z$_>;gV2m zyb}W@)eyz8a7o>y3L*1)5-jM1z2HegsC06QFBK7OyKCH1eC4&1=PgXNMBfBoW!L1P zcw#J+hw_qT3Nic=T*!{B$|l(QF4~A`5pK#?tB#)6@It!>D!FwtLe6jy1KR(|2DcA@&Hs~-I{w)P>Nd*vft zXq8FnRYt)OT~&Vlto)+C%Brn;(ag%BxT-fl481Gd>QVJ>FqDtz84g3~)t;2E%4$w! zQe5FJ-0G@FYbz>;)uYnYMq`!3>QQhEhS69sL>p_Lssqu%4?{E;?FB>iZS|;jP(oZ| zV^xoNJX4f_#E1$k{d6W`@^aC!GzX)(^V@&GabzsZuyffmH2UZxY-W8{jvR@Y}3n3DPstk(;0E+EFCWXf0c_ z42iLcj)~r~X$vif5O?w*x?;O=63xWzqD||9t;j9S#fK|C#FSN2@X6{=s4Kn@J(~Bx zsCJ_;AY}lCbsUD|K(fOrfj1|5H0C)Z3a@fD<~Rvq=B!0y8W|`hf3s%Q8uB|l z|HOYqyr|8}VdIf#C7P*RDxbbveTSD{ape?W?cYBhSzA$G5xtd{U|4@t8nqSGgTh5` zjZ31XoW_Tv!R=FpWFGo1mte@b8Key7gq+V3x_%8!v8kURKNR0eqy)}9UFg(cbzFT=K6=u*aKY2SM5`#>kMGY7 z1zpdsg@+*XTR=A?@}0D1)EejTahcQ-P6*-g8CCf2flEzp$9zYK0{;4_ZePSDJY4S@ zgvDU!cN`~K={sxiH^x{4wHO=aBMG#=i6PKHt;s=8F(=B)V99SkkwAXMvoJj^JlwB5 z1W&rgnk+Qg`qSyVr3ufYE*SoJme%srH>LB(2@exYF*MQv7sFxYtu3A9@6XSVvmdVc z?Yo|q&YrcwP?+LsLbk(bdao_6!La-cKYLoZJuTeQg+Ki;{C=eu4q}|uE^5QapI10M zpLZT2 z$gl>;{1OmThTt%t2$g|hmF)j9aq$>+@<}+ZE6ujX#vv&=)h)K%4ZfC!Pr3Tg&G5Il zN@rnusyx+Y(nmTMR~YiY{F3-qa-K?Sp5_=#*-_TTBMDInXiC*o<)eQxL8tgSEEtRl zV(pH#n6-Qs7H(RIia1`r5q`>{x)!Gq>an!EU7&UMpqi8DYz@(^Ar)fr`_ zL$G#~auFCzrny@RK&e0NU{KuwIQWB+FS!u;W#|xbM~IyAi_#_lIDX8R|f}~J@aP%`^Z|%Z5&lr zB<(H^=@joZiR-+|dtWfom(bqcOND`ok^I)__au=_}iA98BU5mW_ID9(0G)MgusQ-9N?XEE%b-`R23gWDp&=br&v@||7gV0Jb~dpgZA zl5nd3P>+}$cCTR6hYQ(%6L|h9QggszcADM95X+iH2@mm0Jwk{4b{Fk-40B|ZCx8;8 zD^(4@Q@k&7zQDr#g~;8>U7zR}cd7(FCoe z%)-gW_1{{gPyBVXyNjChTY^^Jq%2BriVmC0v~p_HGjN zq{GUOBfYy-Q27b&9`Ti<3nv8S&q1In6rZ2IuF$Kkw@1DraE%Y*r- zd;*|%S61b~Rct)%wm@LfqGjN`P&?`9pC`vm}W}$A}EC~ zT)zUv90!xL+j8Jy+|ae<)o3{n!#QX~(q6RUmj$W!)|xA6UehinT8wac!ERJiFDzCA zrEr%cp2D?y2ndx4fpYBNfs?2vtThRY=F3I^D(6>2`q*^07aMnF4C#a;k%+OP9KBavi|w)~%ak zqFo>G)sNySOibztyyQntgRg$o{hZ%5DBI;BN+U-4BpybRWLjH};rZ%aOr4ziyFV|3 zsc(DpYl702rKGEN(S*{-?Jb?*qGx^MD&F4GSw6x^Tm34J7_oy1qqZ_BtS;P)uC_HS zbsH^|_EwI%VC=0NejJPr2BR+ABvln&+1c6E_|z5GVC#Fh^TVzUcg45x@VNSBdFz|% zP0s4Au5|u1;r?(K;op_NKi}HED~`g|hNMPWL8ed)wCYo7zXd}H=+qK|RQ+IL1SnZ{ zty^t;>Qn@$O-Ha5)u_086rkN@7gygDmr`zBl;ZN>yV89NhT?_V+9s;C$b6)jLqAT! z+2WYLw(=>CKU~bNW*_~N3sNQ0L*B!qnCGhWN&3t(At!Tlv5~Rd9o4);o}nTF+c)vb z^R|rfq@bZ{aC(bB&@Jxj15=BZIn!!TVWCC zg(Z5YtD>Z}lu}h4G>mtWT`ydJbvUq+7o9}yu|f?xeda1Qy2Qkq!;7WV4+_%eVq&~U zqH;26(ed7DTi>XK&u@FiS9gn$eQ0r{J|}yZURU%562nTK(Bp-e$XlC(ckFeg zoNO%hnOu3)Ihdc7wS?Dim*p(MvroN&V7q>pa4yZjQ7J_{uC~77;%VZIX|z4YocJRi z!QIGz?PVl&7>E|UZajk9Ifc12d-KN|c|%}xbbH`FWMmQow~7kqzkx-!K0tL1-g4A= zB)Z;m1ybTmu>3D~V*UH`(5PcNidL;d+OO|LkJEZ!W4@kY*_pHGgy7+<4C#q7wB@s z_YuPhtcnZ{hck_%)g6>07%zXR!0LN{johir5lHQctl!;)mYtgMA{?Gfe(3+Ob<#&j zzvoGGJ*kJg+$F$)E4X_jawfit*dgQ5l#NKXy5p#ewqeo7cyjXRROvYz=Z)w{$O)xwT0If=EtEfzdxNV zO0>98U8oNI>HKl`<=@wLf4+73Ef2Ma|Hs~W0BBhp|9`Gm;OJF)l`aTUtcf+CvBlnE z)M%QpYgCfUHsG2`!hb@uEL>#9}6*_(Y%TBB?^n? ziTZb!Hc>n@@a;B9pLzbGMV6y)*ROBipqCuzgGMn?o)-a>IJR)5c9QzERgR1TPnya2PO6g05cOds#{iKS0=mjSK99l^@u` z%?pFwWtintd!K5(TK2NGxosgQIOqusd<{(AxrGpQj9|A}xS+SN zd3v8qG!76SUoW+V?MZkdSmgU(at(-qMuI9!73!3W-haaW@aM;^v{_%f>be_jaHlML z=f!{7#E&=F(O(>Isf#|e3DXzZ;U}MM#}4Rdb6$Vg{_@Y4t*XUHyZYLTtxszi9hdpD zDX%?Yug=%RZTJeUAQub+iq(d}E>drdDWlVyzf^>9l@c$`*U<_rJ1d-(6~B z#$Rfeoqw_nATP8(-}AJkh*>>mNEdtm`DblivmSQgS>r9QWV!w0p5NGiKP;roHjJz5M35#@MH>R#;lo*4E*iOKrZ& zRvD~~$l`}CpIQFsLzZ#Gw`{=8BW?N_m)MGDhg*|#23ymi$5@XOFVi*O)i(EvpIBOR zU4&xWZ21FEThmMbYW>fV4egV!vQ2NEYI!Gj)HSPGnb#~*!T=}}IaOPi*`j|uZLMy* zPr6*s+01+XXf2QYv$agAv}TfycNj0JDV?ok z9kAFoMYg2h&9^>(e%=Znz1EgI_>8sr=@sI-ba}<;=UM5;i>-Wp{th^Z)-z;}w|jf3 zai9y!Qbubparw>Lb+*OtTx(CyXkzD_*iZOSD{**m&1k_zPsDtFm z!|MufU!-^3s7kPP%c2P9;rjwdU12zG)Lft|(e6ZDVeX6cv?q2Ca4s?27jWwegFZta zT)u3%{r0h!Z1Oq@wRF?$g(DW(1*e`EbdNRC?ihDLfGQTWGnOw|Vzz9V*)hiu1E&^a zoYhYP^Q?BMN{^)_4o5!s$3klT%lG5J8tt2JR~H8ZiUY>>0?1ofUKp5F7-!7I!5HI* zQRTbjq-*z6^9jH0Cg%X4|B?Z#TxOfLY_gKn5}UeqYPcB?iyAQBBRY<-fo%r{NpsZ3 zbC5QR7U07ubCovI=H|LYEzl@h!QV7F#;`M6`Hbb|AaA_$_RToJ4hy?-0iMd7D1ChX z{rO(s`1hu44Tgb6{Q&cI)1JB4uDs(#yZpMZS?*jhikIJD_dRr%bx7M_zy0|w_JOXU z%zfn^dv1EJO}yv|oBGVJ?ZVriw@WU%$ns~uWygMTiv9P$_gUFLZnx|1dec64*+{$n z`kQTT`I+|Llg8Prci(5v%w1+#lE_r5gCu2+uwUGkXTQDeJ2o}BpIv|1`S$Sd?zBlO zEA8PM#@M>4PuQ&wPqI6|`z5>O>%X)MfA%M9QMuf{@r^5OPGxVqRE+N*e*Rs1ZSIZs z=y!(OEnhgt7WNr!L)-nwZn}52U3l|f>>@G66~$`a>XhD)gM|z+zd4e2%z5%2TbR_w z?zyhBR3@|?leF3XcGnMWLRCBKGxrI5;DxRBycP>MDOFgnlSbJIC-k)}t%SE}4S*zk z$@FJ!z!6`zGjF=n9{$C*EE!83(u1lf&9ZLazS2^fsk}0KhXs+0=54Iq(8Fw5%NGMp zqDqkIhC2MPZj+VgZ?u#Ooi^UE!b)wZwLIyVFhFdc{CBJD(8JpI?jkzMt>tk;Y|Tr* zvpK5-TQ@`I4A2UiLP~`q1~CR1`BKH2RaTiJJKm!@T8lL!#ms(Ss@o6L;S6m-jT~g_?%iai+q9K0`=9N54Yv)V zL&ot!J_cWQERvgbuzok*U@1AO57jyP&gIgbZrY}oU3BswTRmI4Ys$g610L`rrKV#a z%$++{2?x(#>YDz+M2%Voj5N|fcf@V)KQ)1S@_pjd0Dpfv7-%Lb)Jy6*neQ*UeByLz z{QkmI7q~F0)Kl~u*Cqe{NQ=HP3@ei8_;#~D@YM#BcJ7Wv1}>3g+|%sOXP^aDI|*O@ zGwDNnQEJOsod?-w>GwYL-W(e_c$xL<-8)!b3J3SSe~DSMg$vClO){P8Gdt;|oykPX zta{eOufd(sT`p4YFd)Z5YyBG?4`@rSyB-a%H8be+kC`t#HU7Xf(|>a_bO(aU3mj}D zBVmR~X6!)f3)75*+8JlZfl381))uX`g%ZGV30pyOfwgPe&IYv|WJB5wu})1p1+@>) z1FTTT3IHZ}3rY%%i&O%0t)@VD6CJ8|=hAV1=jn`eG%VgvpQC-#mf{5x@o5|1cV7by zgn?$Th^?AtJpVUayENA}tXO3EvgN$)y+>@qc;s;deH4&|y;LueOp(typt8EEqFqhmLodB<_bDeVTn`{Ihm{m2`j=S6)Bp^eo-?4=lNvX9Uja7d2SF6zA2eZ!5k)(jCigfFI`877{mb-1rw=`zYPwRq*QU%E{3RBv8ll^?INs%=t@X_{fB%jeqszdmRc zx)~}tStpSTb))2{3$5MZbZ>|iZQy0M2|icEO5@$iiZIa>)5%Ism${&s|C9t=c0j9g zBpnyyD`WW`ul<(vueF7hQ*-UN%EA>YVervFC#&Ew^LaF<;DnC>Sp#2IYu)0d0o|i~ za@;IwIZQR*CAgaO**bJsE#2=DsR(&mPty3@e>Ff|Bke-k#*<4=_`cjq$acR^H2aT& z&kot!2~0D(*Stfohktg+pFOA30OJgE;qMKBCMIzthE9t=KYM9Edrq$x7-yt&4duH* z2Nqp;)*DU29p()Ul=+&UDr7MtM{0%|;BDI`S(?c&(5_>F^qli`lbCdOT>`9g0QS~f zrUICa8^=|Ou@3}1CN8AT?g+yXUI*uGh9@c<(f8WGIMYl#a}o^fHd+3FQBIYLC%VqS zfoUcV)e9I|&5{8m%&Rl7901%@yea&aXfEV7z=E;@E7s*>xV~Nc+7TU(u&&K?Fj?xD z?x2D1349#zP|<)P54zOStA;l4MkUlqT+C3nDhlu^5BS&>QUm;OF{eiB7)in?X z+N)1YkS_jcHR4bk-n)mD9MZ;q^2=T}uy3s673wCtmc9CjZ=7ih=g+l6TlKIM?GTmg zR-KsBmS6#T&Kj7rWj}NN2hv#*Q#^Z`l_j-Ok|g!vwpNgmr7fp)NuWzCwOKo{ZL(0& zt(^@SHqiQX&9!EiU2EgD0?pyORu@~TI#TaGx`biTi&kVu$h1th7&={SQqz#Dw(4e| z;xtLMb=_#ubepwks|_fhWvkXKvY|B#>onac_{QT8*_4gBcFFl)(3Xst!WxD#O{xXC zIZdSvE&ft^Q-Cepwp9o7dRwQA1-5A36dSJV#bIV?YgnZ4MSd6n#Asy8Jk95h`kb}w z-ACqqf;=_W&jhSe2jm!-^j|L;90VwdP9*ge%hh$EDPl;s>Ev+lqixt@qiyqqr)|!R zhpcJ8-j*h|y+V_3g{})-_sLr8aOG%)2~6>NTk-V!*81nqS^vYT?Y(m@v@NeLw%ilM zRO_~*>ZEL|5}ry85Y^eqmfo~&?BJrlSCz^3<7P3@xxz2gJ4sTfNy$;URdyVp<<~Nq3_l%&nj2W3PV}x%C%N5z4i1AnP$=gMaFo=zhK0i>8~$(ohGDn*yP3hSbeJ}I8AK1 zqv`^Kh)$-5$JgtDcz4_!utMUC8AJ~|5cuP9fE!1<;T!<2wGP?U3r$QMnq!h=p=o5_ zuJ-cmiMDWoRFoxY9oMwjx}qM)jkt`lNS&R5R$H?RE{I8&Q7Nn`Q*0tqf&87qg~)30Lz97A|T?LM;P^cX`2bTUoHu z*6ZBOvVvv74@}f7V7d=$d6*57K&wMm2g~1(Z_Qgs;v|&N6zC8DM(m}#WkI8Ps=T0ml?hq$`@@%liGi+{#`qY1Wr&byX%?0DhGu<@5%@#*?1USng2 z_Oa<7y=N<%53wne-?EC~yv<54xxl)~h<*O_mo5LJg|_yoS1jkWFInp`?X6NB zE;%>dwoH89iVE|r>F|!a0ZOZD*|Katyo0U3<3^i3SQiYe&9(N2Y7h`(-tW7&?o`K^ ztxJ-Aahm~ow*0H#v^8y3=-Tjc*0i-aY}x-@{`?cR;{HdhWOJs?)dHvMxhGoQq2sOT zK)%@yCzWrhfgCPfwEJzw&DUGyqNUdC{O?FwDXIR3wKnIkkJ`F7CRx>jVw+R-73+HJ zXv>fxd2P0-4p@GC+Mx^YChQnAvt$f^-iMFcH*fv3{r>UOkZ&`0xJvh@0sJ2dp$#z* z?@#9gJ%;&VW=_*N0Ja*Rd+xbl<9Xn~fuEWj_a{A{1vd2r%?)W{U{L~-+DOx`zo^#} zsp_+?!0ml)Uv0HJygHRj{XOt(q6ar-ix& zXz;o88Wjz6sy#j51j%!}3v|Z^?!~*e?>e=Cy}1&pXA>^RgcBcU%HM6aK_x3;9 zKOX+4eKLQMbs2WLopJgpmR2;!#(eQQJG|p?>)5`H-TJ^^Y+iv5vL&~+AO7YMd-%b} zY{}X!cKIKEZx@^(6Ljh@SKjfo9W!&jI?M{Iy!{c|mai4LSh$LmX7(+qHXOOGgY{{z zm8_WA)XZERnrvd9yYxFYUIz*{=BHbx%#Rdjb+y~?xLZ1)?X7R$Ywh>l##(1dad8}` zE0T0t7bdbE&>*j?!iBd@-;?dWKmE;m4;?KoQ|cNzq_}f2V*?@V59j+@_8h9icgISV zqexpzV)B)^O7*#Q)n;pb$@SKD{20p=b6Y7!AXx)IYL}tb_gg2(&ZHDBq|a@Y8P@&V zw_3&%|F+_7$+Ez4nGE4K)AiqCt^;Ccv@{W*I-+a5yM6nomiFjBtu%YIbvWw`%aEk5 zLR)58=}oND_-kb5PBkU#Can6aD+H%h`C_BDsK#oEXm8TPdi}qj*_vl3Sjwm~t>cM@ z$?{5>B-WDR>w44NYi_ipVr?g;A(567Es?KHNR5lpS0ELR!eYJ=E+(OV>DSNO&?CNN z7oFKv(&s{HfYfXw#1j3V{p%C(fv5ns8JQ5dsm=#`KWug&@P8H@&`BLJSt8-_cc=fe zz}(wBP6HM=kUaZ)ebYp_P$@w|-;iiRrQ|@i^Id&k|3-e`i?klLt9gDQb=-SR8mwqkYeAc=?{(y;k@}4QfZ03mTJ!Sh zJ!cH4@a_@LI1={cm3r|$NBa1BLefhuz`(-%^5hU8Oe>5tvjkxjX=(maTeN9WkT5UW zvM5-~-~tr%qTA)R3rus@ysp+dr}d|Fpkcrr593#>)~$kyVw(1CvEG5p%gPI|nCJL$ zSqjeET|Dg}axeclO!`|x>2qErFSoxROivj}pj9V!TtdJg$F?bo_5KkOr`|WAewc6v zv`R77GF2y?<=|vSrc#_%jHQwBbW{&=rH|!KY8i#%hcYwD?4>{7ZLdwAW%Cz*Vkdv| zulBWZ1EoN(YrD0=j51ZhGJ_bmOsP`1tCWr6ieybXH9-|((o(g(k1H2rsSOy*@<@f1 z6iQMnb9$R~XyE?){$=x*O|dOaN7&DQ@oVeZR0mT;Q;rTvdj4`rHB;4jYm8%raQ<+} zFG;qZgTwx^ws~T26*{(;Y8&5q(ysjKFKzJU-?i(m8E3gwVnX!=Q>0&&5zOW6`a%{g zk0eV9ovI4(LA6>YamtHz*iHxW7(*CbD@%$ru&AD>C$6eIHEr# zLv+^gv{jf0RK_Ifj&WH^^t)Eb+#okYM#I2TCEc40>5nh?;1#>_>p!+uN8V^p{`PFO z4M`)iOYK)*{jTMmaVR7K!Snh9edEdbx;Yn zug4+B$Ke{rJaj1&Z3D;C8UOBZPytxIdUY^AR^KWoP7~X(fCGjg2DvScN5Dx7qbU`KPc=Lep{2Hrk){@r*k zTC^y%@9057XJ*ka=Jvg2Susg7WVkfgNt&~Mj=jG4bz4!eBGh~P-1gzXA2yjgHtlF# znswP}>;b3GbdCo`JV?2#bP<`%?=D@o)biTqS%w@bXrE9InfZ;ZvdplXxk=VADP7D)W34-7pj-;MJn#*Zhv54}sR!t51 z6S25h@)(V%R+MesWK(rBT8T`jjX3-;tv034sRMlB!WVU5^0VrMjGb}D#+h(qQJ_T( zD$-vVQ_;mW=EPy=dG+#TR#=^B-MSqj&0to%aw>s?&p->f zVY>qyd6hrF@$`h(LJz3;g!vm*+nRMn)>;fx^BhcjsV>D_r^=poQdm@|KB<>Rx8G`D zR}3^r(b>Z>4&i(v2ro5%2*Y`Ma{Wc#JuVvWVV>S$?kffwJJv8^Fscp7WE^_sNS~05 z)u;3Nc9U^@+lI18W%0v~9+K#W;%G}a7(=hSJ)teu&c&K(2>WFIe0%l1k2JSd+p&ia zu>Sq}hOtgPDmK=V$Q}L3-?0Fq#g~-TO<U*d~MQmanjMwWBQJp^x-xTY-rV^P_;( z^vmtA9R5ChdVTQBFUXgWDo27TsVeCo7BRMzY_X=9GTkVl8!8lBG6Li5eV?#d>t@+2 zi(au+1*@!U^R70!lXgg(bO<`l*=Z5soapvTO@Plo^rpeh;Xe){@{ay;I1s4a)pG4_ zX6c+xhV;kX)y%LVzlZJbr`Ho!X6Se9@YQ#pbDI9A8R!Eof!>>j1Y^Z;fI0|$H(k;# zE@VNfTe7#8WC&nbC;B)O-aU-26r0?W)sZqJ3B{F3%37fT3+9=DD#qk%tl^&zP$A`~ z|IoNBF$)&VZnGMo}S;67T=(lAKX=I*vS%>=~ zG7$p}T-ra*`$_zJh>ZKQyEMc*JhJ+`Klhe_c5-0gVZxBAIzE4Tngjhr5CCHjO$}w@ zbedRX)OY>(_n?mWe)VZ{*=g}7Z3)M>tBXU(gfM04k|p+|2cNe|1v-GM_hFfv?FSd1 zV!eCy5<{pf#~A07R$IL>Ni%9J8VtiX(ZM{O<~5r=I~I4w8D=9!gt-UUDKO8_$AW{y zDD~u+E4l29#bHr}E9;qCI7#i+NTR0|OW17J~PH|7l2l z&d1$@nSrifQN%uLJ~U04rqc>ISsF*B!RmwibIM`oZDpPop>a~`_lP@06ka)KqnJP58?IYoF=50Saaa2W9r4j>x(Y%`nAH* z8|3`EA85L~J~l}mfx7C}t=oYn;ZyjWCa#6Yb(B7_hkYt>Tmb2O&X_rWvAwrRXGD4& z8s@>N3#Qxjxr@X=_hc1m)iOhugp^r}EH&5wY5RA8f#w2~F=MQ{r_#4<8D=8dcQY}~ zE%d$}6F9d^A>s(y2d~V+@ysU@VRm$33}-HwX}vo4vTT{yE8|>@{$W*Pds##S2LdOp zm}HZdPqI>3fEwCvs9iGn5<8^XA=@bgCVBV=PU;c{oa?%IB4OrmVXAh(xw@N+QIKr= z&W?X07Cy^VceL*yCgJ&?)3MqAftl~=p&svY!Hii#>KYgW7{@Jse^v4I!Fi?j-c|u zKoU~>pO_>&mS6T5B~>mfk;yep)WNBfZ7f=9#bvq(BsWjnS+AYR^YJ2UY!Imncod?FkM~<@he3-8zJnEp$!`$!mI*eFLmURc6J4x3G zni2^NaA{&3v%)T^VCp61Nh?<9@U^7ehaDDFMpZSl;^;ea2AMKV%fm|QGrprXMuN4BXuAJRG2#-%#J z!J$Bn(nAk=&68J54vceVTBaS*=?ELuX;e4}2wu|oVM5-E%8G&n8+*=3o6&>Dyq!dG zL|e;j77no*PD_pH?}ztTP)Nf#0Hf*)`w*x<@!x58jl+qC?aog;js-n^4gtcR ze5c*P1*WI*XEdxfztcm!*9ZQC%{4FvT1`+5FiUz&vCpmQ)altGNtDy|(K+}gE;`n^ zscG(|FR2JCP7M<_|G8h<*IsC6&ph!v8`e{+!(g$Pgz9uUTv#S)W2WHH1+Wa^QpQSF zt5S=oVU0t2^nsBiRf_q|&Puhn{&}CRY(2)#JFc%*t|^xP@g)24YnRz`X-C*oXWVbY zT9<~yiz#sf9i1{$hu#*9Qfre|EJl0BKpG>w@o!@d{BP8N z53D}e`hXuT9g{fBA?i#>G`V=CTeoiE7DK{5`Q#JprLF3|K_G$C;Lm7Syr2B2gYb-|Cmk*t7WKzsYmbknjrw<&k9dR z=nM=rvCL(PPeMhb=Egv*9pPM`KD;PhqVgpQBYmRqL}4(bg!2!ExiU!?n&=;rV=mvy z(7zmA<^^L*noM2Zg)|z6q?kN&H_WxEYo^+a)iZ+GxHI~nVZ+)D+io(>>kT|em0_;A ztfW}xPjixFB}Ti(F2#1+%mIP^fYaS}`ga5c+T+!x9AA7s&tF?S={=3-jfO?@Mg7q< zo)5kTrXF~^O6&Oi8HH6_zC>xG`J#SL>rbceV0xzfP_8zD5%*KkzJl7n1%-K*bp)9^ zoBi4Y_M;!&W>3Dl(AxFwXWiO0xA|{8WA{DqsHJr5YEvHnrTz4e|FY(N##rwT&1~i? z|F*w8_KI~F)Yg`*TxY|M`l5AfU1rZc^n1JI$G^163pQK7fy1qJvs9b>{9o;_FMn+9 zTBO=zcin0~e|mup8QR-6>avoLG{`JpzSI^kSZHgu=(y4SHX`5UA}tHikFWKtrv8s6;fLM(-C$nPDPaqDweG265NvWuoFR z+HC1+Is*heEEvE{xS9tOzcZ6CxL7uDc))p999~zzS-g00 zkouAre9=0N#{pbu!{G<78qu2L3B!cia` zVTV(AsyA%3!`ip70U1ShOy{Qd#V?*@S?Vj>)E?8--V0xP$;wrR)KgBetw@~JK5)>P zu5{&Epl$=M!i&^aC>L#sI%e@oIlTPdR-oPc3VzB@KI+Q9qnAIlF&%*Sy4t2&a*JhM zDKkCO)@)v*!~5#{QkPh@VO3yoxh=40TT#$0E-%$ZB!W#HF4HZ-=prX&B-z9z6Ybe~ z&)TaCUzMex==Me0l$QezI7rj=hbM$MaFgv^nhSQ(uHb>z?8u4{*Kwj)O8d4qyQjnkheR7y3vGy~I&R z)T@_+@4ye**pc#j0p`Kre34r3w4$B?v-{WW`i!6s|n zwTo?=_b)qj>==7?Zh;1jYFnRQYI9z^%TBuaUMrFHi5GtMCwp~Xk#*{rZ2$bxH|%GR zd}3F9=Vog$>s9;8MYq^S8NX|zt=#vY`KcXs>Ls>NHx`ykPkQa@1@`(g_u3!s{fqtW zzQ5W%cmKhjdhSIl5yL8T!uG;LPur&9C))7?TUj~!)!IVJY1P6G?bgFOgo9=p)MMj% zsK=PP2?rWANMhVLe~GOx?QX|vJ16askv1}~+BR<1gd0}NN~KOn`NNu466;FoR=4QV z(>k@*kOP4Ur5pTr?CbO`Wj#$#WBfXQjS6R zHC@v1&O7gf!I**7)A%6E;Lae-JChY#-ZN&*2m>_}2ZK3|Cj&GCI^p>FMd86nf|E%K zCYXthfge9%;DI*sFexyh;D{$LX-UHtHxmjBIg>0jI^)2Tcfx_igbW^-62h2toXG+{ zcyNRPn>0=vd4Um+gS3tV8kk_we$XK}_tGsgB9FNoA_!JMwK*w;cK_ zRGGKxTdN?pMfoTr{!Lm$W;bnSV+Rkm0Xlr1tGQ;YZVoI^eO9Z#Y?bO$;c>@VwaQ%} zX1!GT0&QxK6~a|2S~ttjJVhCx3DpGpo3{n(mAdlpPx-x$`39sTFFU{ay7HUyV^(g< zX0=^0$VH`EC~R00zSpLLO}1JVl5hpm&)y~zvFI3AY?F{m2L)kh^Ec&(ZJY9AL5yx6Wj^lBT^ag6G!G~nQ3la2WsZPON&N&nVv zS{rCQ2t0eCLSE5 z^|s^ZKYnlkhcr%`mxD0k z$miwozCzmgcI-I3A5&jmPG_70K?l*F-I}qZ^CH=yB7MTz_vJ(XNQZv1O6=B?#@Vtj z{l*^n^6-G>$CsRF<)g2$pImjCz4!Rd_KSDh+QWBVt4o{ZD%aUHC!S&1SO3B8ICF@V z%zMsGyY?0P$*-@oN56NBO(;0b&O2$Wt(f+*Jw9!dJ^cJ6JF!Ql{ordi*_KY9x4UkR z-E>zpZ;n0mySr_sCfIBZ3MIvb*1p#uyW}fZTgTjD`^KebTGh}??e1@V$%<*9VyaWL zbyT?WIs4wzf46hae$lKaDkTP}P7lw@x&JF@x#+`SXLy1x()x>1Hx8 z_m{2NK7IOx0h_Ui9}~ue2@{NiRwtf#Vn{b{-n_uP9&yAGwnP>P_|eDEfhHX~(J;~6 zYKR2daWcUBp&z8QOfpDJz{B{5pNWC=FyKsl#1T$f=*I8NBKn4uk2K`tN4$@vq{r`* z2Y#0nMR8C!j*qm!19vnnaLE&o!*MftLKieq7oHXv;3eN@#o^@u7e8Rfmnn)5+KH#W znT%mrp+8ZXc2!s8fo@|Rt>E$Oa`Qz&fc+u~VpR}ZNd_0}*Mk^elO852;lBYDOJEUl399w;A z{b}n~OO+xyu*=$7O1J)JoEDhp5=nwHQ`Hf*BCXyUTXk*I{q$S4Ez=}jE7kHttoNYf z?dYQi+Qwd8Y}mL;>lzLim#UK;X2%XWE)ZO-EugAg9Y7e;UyQ5pi}5YjB`Pi29U^L= zNrSU=ud*{@CVFD>F*R8A|GX5Puun?2EJ=rv5Ysucb24n&gy-z#x8~XDU;CQO;#5d; zzq@5-t+bWeN;0i*XKdSQC#x(1twlqXz54k5Hf3RkU3J4b;bIgih=>zUvnGO>AzdzB zH3jP*!;Ji?Iof)XbOouk6vLq@GNy!b#s8u4(qJ2!Yp8TJw0dd?^c=`~dzta$ zcqa|c!|;RG`MQwt46Vq?abEJNue?giorWzOh2H_qA?ak#a{ve>>9eDGp#n^EqtC6;Dqzt>XY+_zrw?jc53y`St`yv>aak zXg>e`gw>Wdnh%-|X6OB-p36W(=8}?ZJM(+z+KadT(5_rJ#gdm!wYS&wx5rN$VIREq znBDY~zuV%bGp%S)FB|veui3HvJKLpSKi0ndlS}QA8E0Dl{AX>_o2%^Q`PbOz&N#(x z|K}U_?)y^pm^0mGm$$O9C!J)^|K{iR$Wt%a>$Cr3Q$8MR=bU$$4eZd-PPyWmPt`%O z^sFQcw%*crer=()V)e$wCMmkZe)-I2?2l7_V-IbaYl~j_zTGtZYCE#KuJ5%n`|Ewb zvA<5uvx{!NQKuILBfFJd)M^7tmQA&?O*z&iOM^XT*h1*1 z$lob|2Hg-{L#3-B)>VDebRfQ!PY9@DjF7!qaKadK6QRe2iLa(I*dFCpt*GnKqeplp zFY(cLVE8R_#7AL~i7=P4MC0Ah6Gy&yzr$jJfI0Ux{@hhQPvg(p($*HfyL>Dj+-#rI zU0a!eh4Xao-yIIpc^ZF4!{YtyY(f{`#BuFOK2PJ%c(@+UGwLT@ZDl47$D#|m_60q_ z+ZDdrXj3Nfbvu~#=4oQiXm(PskSH%EJ=Ov+d?hj2)mmgG>F{jz#~+8dr1Q>;=`qv3 zDa+AE2UU(F7-oSk5aJ`>-)SUC)Q?JuJHi1Ho(l9bbATQz7QtRJ z>Kd|`(I&Tz=1_faNs4hf5(ZI_uvn0qhQkPv`hz5TL(v99!aRM=bX&c3b&wEqxUXZA zjyC3yG1fMxt+mK*5zNbxuTs1OG$2XFddG&s4dEalcA=RoqZg@wJN{cc4PK7;cyN#= zK0H1Q#+7FdN`_qUf;gXiD9IleqR>i7mHgCrJ_RU*gwvJjv7ZqxS zE$P?^Bfo1&O&_)CB~9$S0jFE8PWdM3D%7Rge*WbBX7dK)FpMwT{Mavs z5k{R17afyG8y%d9_xz;uc>JEv8DwY3$&<)=dVi8;SANHfG#tq}stM5S;f`ZhFm{Jy zS1=O6b=;^*u$|mSTlYu~J-n{?65*%~Mr~<5J?awZK%z#&q63;dE_n2(HW(i6&%Mp( z^?}|eZ7#Yfs|${3+9*xY@LK(3pgq%8^$&G|S6_R}-hN|hPz^k4SZ_Oa>=Cj$A;}>O zFH%oQmyt%{h`xtFDn^6Bm->+C@!IO^->Ou}Yk^n|81rD>t|srI#fyUNb#5a>(u{ft zHk!$c4mI_T$vYei6zUjP>-X^bsd?^cTCXR@0S@hP9)cY&58v1LLLqij4sYM|H`F*- z;JajcU(!=s9o2?|^jq@32KvAij+G%hP({{j=#kc2zu;tkZd+lw9X|F1{UX(? z!KGMCuQs-9_;IJ}7l~77p)NBy>WmBRsG8vF$}-t(uC~vgcYZXXm|K~*tCSw2uF3wi z(cQ4Lt6fcK+u_ zXwZTwSI5TT?xySQs6$&=g$`0+2CpO~(@yDk zw({|2%l3r}6(LW@g#>ymGOrsbPbPtotS zKk@AeY-n=lZPDNN+p}ijpo$30M75Y*^pK}apJ~5-@k5zy(=Ozu6?Vv!2W;fxPpsKh zUzIRM>Kf!zf3UO8ibScz z)$goeuNeul!wxV-CrmgF+H!MpgZa6%su2QFnS)~wxTG4VKFB(SbWDN-0Z~5bpfCdHc z;ITYnR4dr3(qKV)!9mK+!H8H0p|Jx%(XoWksH4ND=+Hr#I{BK-Ro10FS9VHF%nDjR zcU+zlw4k)w&g9Y+PD>*taNvT2?Ml|YY+*rrfGu6Gbm=j3-~cmzvE&R4J7^DdYA{OC zfVFk)8Y@apx3;ZYNqs{)p$^{(X?!-;z(G_4Q9Vk?cIKE1P(JwJ0~8mp3t zw`9>9R65Xc*1)E2G^=sA7 znrAiNiD3o~-zfa6c>*6bks!^k79%gKRp>OwGtJ~Z5KJ?8+|iCWT)GS$;~DL9 z&{Ll@`S|*O@(>}7cz-p?7_+-`^GXyJOCg37W_su3;VqF=IYpCNT^tRpQuX$r<60>Qu171a82)%yDcnuk zw6|ue`*JRS*^wbWY2$li4II=p00Yb9!{sL&0Hm$MY&RsSZhQs%gy37Zs7tWT?cwq1 z55&9U#sUXs(Ac`&o5jJtpxJ3+cL9|NZf%6A_wapzqpmOYew8PV zLu}jc2dD`PgFSx6a9K!^ehsTfGKndUsatewou>opQrTDrg>lAZc-2j@wna=yNdk9`5Pt;|UE1tJ|5QOHhi$Od8Cf7)$h?4tVoS zK;(W7q7JInVaqgTC9aPs0g=Hn8eE%Suy+qLmYH;wQe9!wYESdjhPE-hu?8A)4Y2iz z4lz1=vE7;K!2GfO*boN&M0MwVl8MQ6jT5D-k1!S=nA3tboYPt#v^Z|QB?}@yt?%LW zL6hTT!Q;CkdqWSqol)*I?5t?~4$hyv1cq4$198%qO`1E`Z1~}3{SUR#LkHO9E7#b> zDT{P~yu?l!*vEz++9%}M&XB`I^TTatM1)8G1EZ{9XCY(nHE)WC2@O(ZS$u*y#&I|g z2{GytnNlSr9*6pcGu23*JGJk$y)DH{nF~q_Z1LvBLCU;p>#Cs3T&9b_fSH?-YkgYv zv4O1z%0gAQPYH^k(HSc0pC1xt91J=PeRjGoI+7oKX5yg}`jXqkRJ}+`DeKF5yP<8j zZQHg%E&Azm^f&Kw^;JjzD|mOyKzn1}QD7QoxwLO(@=X#|ZC2{N{u=8Jy7sTnJH`IR zvU}(ag^t}*+L)rT2I^h|E{SBIKmPdRgAHi5)uU3%hN6P7r=@G`vwK=o^_Pxs_2hszpizN-$Nmg22muWI)Znk8J>GYx{HJ5E= zRYg`-j$QP{lkKDd^Q}b8Scjgy1H*{A;&uj_Ds#peSiI_Aj7{D#FZ-giOlN^$meDT` z{<5NA!NM6=XeSO^$@H_9**bH8I)-q-C=<^=>?ema?ZO8mzC3@q&D%K7mTp;Un@cv^ z){?D(N$b?KlMU}M+}h=~vmPyaY}bhnghFc#?cm4p4qntjibPuzS-f&aABGvcNVuUT zdbM_dqvA&4)h81j3KRF|v$m%=Fnje%{Y2@A`u7U(USw_vG<;U_cgsNU3>d2vy70t` z?GNeqSl5cPY+PkGD@rO3dc8ZRZG3C2fyNqWtbw}KfDiDfZ@l;3d%>Co5V#VTi&2mc zdYZaH-v6ncE@H`8FO0qf318PgX2c$9F+;asV|)BYch43P%A-& z!%f-Mg&xlBAbDOUJ^DKzd&wrQk+r7kayw)0V!Pt(FIW@V7_O3(Ia%dZU;p^x|E)x*8@HW*G@{)P;k45ft0Xx7oBg(`-w%4*#WWw)yMl2h(xD z;LzaUwu6JE40M`XX0_ajVGGQ-@B}uzhHg|waHxGiC-_m*a5Y94WoUyA=*RI64F7IC z*REL`R5*N>B_yneKTZ?+##rOwOa&5O53dK3wxi@iC9Ls81rl{>dO{7^Eum+K8%OSqn8}x*)<<#Rg$hIYk?&MG1Uv&t8Un|Zrx({dHqjsbpuI+R)~Rd!)T z8!JuH6_|}I^ugK=8tHDVfd*9rFnUZxNON6c7Bw*zCDtb_24a{FcQK|$Q?20O;@>?i zMDBw>4j+{hB$+UX^*vEJO-RF#til{N6q-0>g%p}wBkS9FJ#l3`bk+IL7d!y%OcLm# za-9xBhZqJBbp$c9<*04wX3eCho-vaJCA;L3m>LIp&`XDLR(lCQ+OXPk3}oyu8ubI? z6T)N7IWVKnNWv%wNwLzw^rHH}VLBLTT$E8}n)ZCeQFf%j9LnQ%KkP5_TeWRfU~Ge= zS_~>G6zy}{TmLrwb&o-=wQ1JI+P9QF;iMgmF0f#jar8U>RroE6io;wTOfvn{rO~|O zCw zcFRD2x^gAuNvg1ns;)MoI?JXdZLtfjy_&B~s;RLzy2cu4tbxWF_^dVHgF2UMAZ?yF zabjSg`%6mKy?gfn*3&RHF-f5=!KBHJg{UcT1vq{V%`stc=>rohhZ0G@Qd{OQSfq>k6XgR3r`=(Apv&Fv@j3Cp7V4#@STa4r0sm;!jl>`jKCzrI3x8|SeQXY&kl+((oq~p z!5U3SUo+3b^r9=w!9SQ^7-*!;fkBl&%8&v8CKX1TLwOsEHrl$Pb>X1j`oi_Lws5WS zM0J8|v5_PXYd~G^P0_}ZNohKu1~mKPy`Z>^c%*RgM(a*fRW14A9`ggTtjOGiJ;P3^UB^m@#95P9kA2(4;}F zfr$>OtUJf=@6l&;Jaj+loi3ix%GPasxWkFh=i!N-(X_jY_jIIjKToFtRSACn?&+fM ziTu$p&%@Il@$MWS?@mKB4!@@-9tnM-izYm8G;KT_-s^%dnm<}5$3Z-dV4kFfO`GL~ zHsK33&&xBIkK?S5jE@uM;VQw)AA za5T#hqp$BvI1F)KR_wMycm!z0#p(^u&VK(k6 zBzLQ2;Q&99=|zhc1+#cC&BP&@#_t0>@bLS)KRrD9tj$jzXh15C6f^$NV{{UUhrzo$ z$L&wT6Zt(X3OA9Ty5Ybc%vgLKI*i@nh{h+vK|C%BFBYV7ppHWy* zd=Ar}q>qnJ1S1MBQ9NN)YJ24+Vo+r@1Gf`gF^J*%Y{K>1zI0HyMEtQZ)v@lLx4}b) z*kEin<0P3zeIvPWD-{vDMNrS+{7LQ_<}Vhp19z}ZE#2de?K*}iY#uWYbJ&h6vMY7d zEzE9o5y)XYEMj08W6s7oR#;jX^prcd>};(wTL%+zT!}4%W{xi569(BCX_#~H!Yr>| zyV`PcbF5XfR>q-1Ov|Az0!`47ouUO>4YM2o*A&<5b9?=7uSBKVUL`vMx2Gezrmp-6 zT=xT)KF3X^Fs>dRO@rTEZSjf1Jx(v(6`GO{Q4v%;D`!gE0D;&}E zyMpWR92Vm!?FoDE!0_-yFgz?ChKEOKNaRlx=CF8zJNh184zfQfKa{JDW^AzX;rV$* zV~0cC)@G*OYmaH$>V}GoEl=tjXg#sQY;=t^&{zYFHL#~O5M}0kjLFZ}O=X%4QQuf1 z(_S1NWI-Qzmi zEglEuN6!=-_`wTfPCb$j2Yu8Pv_UtxNlSUaiJvl)jvwC&)dX+?gLvwR`touBhdNAz zgYQXMN$YhC3~1ncLL24aNgeoijIU#Es4W%a{K6{}Z05)Ftwml_m8~??bt&Z#{h6w_ z0+nZ*7G7C`w_bHouJTjXtsj19Y1#>?c>8TzKW&<23><7lO228tMyV~N*=8-|id2Ry z?M$pweIu!+eNd)U!748+w~b1hk(m+dn0n?A-HLT9Y+Jt6Gg6ani*6!BN0=XF%F4{L zGCI#K*E-78?^g~a# z;lTBA&2f+q+|&hr`n==d-Er`A9P~TyE8w6Ws1N!ZaB-9$xTFQYe@DtsJ0>4tJ|2h`_=@`@!JqD1m1EsRIK^TkYlK)pkzh71py#hR&1JP!rw-cra8!BaMwU z&{zWvp#~T<8AxI97;qVk2M!z~WrsCzA`3WPXPpdT5YFGf=~rA&F+PU}D5^ zn1}SlGk^n+0oy0qkSOv8TKq>o{5aC%JPto$yps;Pm^8t|#E2sUZ3PQ3p7O8+}H@`OZk^ z_y(RP8t;DMJl_5OJ;3WUdmQ+P{uC)q!zud^gEf^W}z$}T%$ zgdKkP;o$&al^B|8EsUx)`C~~#jmoO^Z3A4|hL|^T3s!y9QBu`tWl5bnTD5MAt(Md_ zNolK8_rX!uY8TaFHk<}|0=+P$IP{a#s?#Kx$_skL&GMRA^JdLsjHhN`%)Mo&>M{|* zUAuX$eYoU9Tc5PvrY@NpR5-e~?{58D_qP$9Mp*Zj-EG@u-PorEL9n2)E#ES7#OUY- zTz=?KqZ5rqjq-}}V86LZZj+!I!ePYLvbcpR2I?Y6o;jFE9Ujt7H`z)58GmY$Y(|T5 zrab)f?}79>)Q_ruds$UJ|2CA>(}uh?->A0m+Vc4~rG0yUj>03}ox|{_;|g@@#p&^I zo{4DpFo)yMXnMvN#sOy*VSaI*)?q~RxZmmF=|9isFrsN`=TUfx($eo~Gt?8zt=CI@ zTF33-4%g`bFE0A-X$i-V^L+T@kbAmd>h!G=#1ZB#UDM2c7*kOl-v5f(oi5Gk@;^-|R zP5G=2#+iePOjJl;>eEH*3FbL!%C0`?0=G*V*-nPZs1H}EZ=a%X|IXz1?E1$(u%eEG z0|Q;Qbf(>UR0linw3EaVYJL*~Ezvt1xY@@an;NE>+D~wVscyAmVs#h$X|bji+8!6F zu)Hu_`HkvBQAJUZGP`;O(p_BZHm$>xYqe*rpJ5-Z`p8xnuC|iO5^I~))_S$-Wj$N; zv|i17g>=zBT4n@>#;@2eC@TmD`Y2p}X}-0{Y!R;OE|=Zv+|<}5D|{2DAqors(xpp7 zpJHL=Z7e>`fqaJsB+xLd@ngz?q$7%pg)1s#99G_&@gxd!Z~csy2q#=$ydiu$q}Po1 zoEu@0(GY0b(|WF>1R6G(3%s+eLuIzEwwAt_LXtS~D|HSWg%1Oc1`=ng3Bw(%tBgQ= z9sg8o^&K;;A3F`btL)L$856nJ6EIY3+uwn)%esuzz2nQUkPo+ALdy z{P6RmU&K4YnJi(PaY$EC2Y^ZBiR;?6>vmmaU?A}vJ9cbf*c`t1H_`)>{)ltNnlPNx zwmU!ZSe9^!ljpB3UlcBB+(p9^`4feaHyZA+s2gZU@ z9|uiQShe|U#SsHiD~v?>Jglgs%qr4!x31=~Tph04D(0t93o0C~Az93G(pzs?^{iPz zS2^jV7-KD>W4g;?Hj~(Gkg%y*za;H^MC&*WefND;ivz%^^D&TZB|q$yGsr zIGVm`Zd2P-yve4mnPwlZ`p_0^S`hS-xu|4h`;peOWluY#sU*U(Y=HxBY!(*nnnREv zb69Xo>6Q?O9cUzfWl3d0XBnoQZ^FUBw5k~0_@NEd_LZB(R{Ix*xy7r z_9Wi(#lz(tTKIOMjnvZLqWK&acz5UDU3?UVr{#GtyE-z^p$aTXow7V7)v|TfXmHwk zD$xMMG?Sv6lhRXD!aRM8gyL3G;F#ig#Gh#Dc*ky|tySE!^SM79S1Y)3m79FkX?@zXf@t zuxj(~goAHgv*_{kVK}WBAU#Y-!q~|(gehKIumRNIZim>3sS|C|?1`44@S!cMZS>G% zLmaS@kUDF3A_)_8m{XL+hwV6kp#@vD+GZ5jcE9qYo&l2zPKP5mY`hf8^Ng+l&L`kHUygp9o%}uy_~_XLsfB zbUf*E!0~<;jjPQc#k)KI?&87mzvSx9Kx?p&JjjyEw%Fu%CfnSlTde2EBW+ms4l*2{ zZi^;8X@CCjV!Qgr>#a*#iR?i#k*UgPM0D8DNi}HJQj0VOZxA6#NFVFQRRPeBj5LCs z(+5NerB$(9NS8>nvkMaR1Ox$_L2pN+*a4pb+aZNe8l_-VRf>7m0%Fyo$@bp#O*Z1l zQP!blj#XB~bR(mfkuWDqYOrbXCpP*0_btCV&yG4~thH~IYw1#v`PW}=v*p<%?b{a~ zZ^bpzkXT*9OmiYy-$8h()G7_a>6#>wEC`bZR;s+(ib^Xj8+)4?NGruvhvZQr8vTtm z&_HT{{zhM8D|Y_;`N7YCk1jL^2{A(#WuQqL?f>3S31e(<=Y81YWSHsr zfsXN0+t)g=6#GdUuf`O{PsZ;y+GfA;oRjUfNmFdY+ zADDIQJqO2t3@$C?!blwEi!k_xycLo%r^-5o-@NCy?I9UvR>OKl)Nw1{!c7b9on`OX z(t@QSO?6SVjp#VSM)nzLdFgpOU5XNzW&yxb2C5yn%#_S^YPQW!^Y2)dIwu9Bxk%86$5iy`STFt(8?=S4v z&&;-tUAx)}*^eCDy%T-Zax!(;p<;yEd5%g)ZRId48^AFN2ROD;G?J-5P2N-_Bp zy6jH%Mn$G*8!cTYj-#$xHYt(qtr03eGBBVL!g< z$9Cy$ciRmY94SUtI&NaD-N8IpYwIi{eU<&<*6-V#qD<>5oyl%}50$wh4emOak(aa0 z)>LWRO_@-$%WaZv6aM{(ZOG_nUpi%|s!}J%rFT~;Vso;yY}V_K*$bbP+Erh<*iwsi z`dLWe!#=N6}_@!41d^;HA(eIMlK&6^iabz@b7ZEcug z>_Ia*;-dW&fAl>*p7$s-o#>sgec_xA^c`KF54aw_FL2ZqhT}#$2VF3#I1jHYynT`0 zakDc3T`sBj@VelDc@E!KJ9m;Eh&h&tH_Z!4>^ekskYSt|LT)*iE{5uW3fpz{v6r zvl?y(+%a{8n**2TFSXh0XWNW5Gr}b#UGuuyFuZfKP~6+F4KAU;e(tzJJ%RY}}X* z_S!%1wmTns&MI2>wQpYgO*?sLH!Iq(>@Ro!!rquwWy4SUl6~WOtwJ|JJ@vbv*nd{6w=ZAuZ5!REqxI_D)l#eT z?dd=M$=+Ms!cI7Uw3uE=G18K3&FuH=9}oW4Rx}-HEpyM2k^Yu8sDH0;2*$Q9wcq~o z_m*?^Pb^P-dST53ap+;4?dz9)-+CN7+%6v0#mdC|rzBWh)Y?KCBN}Vq0MtNq5XEjY zmz;12FJ4;gO!fgF=`*8%W~5IrcFtscW?=g$BMT8|f}Z#V#Xdq&XE08aZ!7N+0B3xa zIE?BVu-D7n+6V7^V5M8P*^nNcty|a54B|V3lO)h)&Ws%dK471E7C8%sPNpBL9 z{z8d{{q3p}dgV&%HQUw%z2?Q67aNzIG?(z{n6Agzptggob&f7wsTrqBib{g5<;-j` z|3c0;++4Id*jYvugn5NFhuvlTP|QDf9_H^nqw&%3J@s=y4#vc_+PHNLvQ^Krlzt#!$}uhV*ce5O9PuZf9+2W_C>D=G?rWM%V{`PlUT$UE>ST3ISZ<{cAnypy;vE3&|_=#8FwZf{{ z+1|iVM(|Zgn%bgsFFT}cmYw^Bv+T_cZS8Y|4^c<0vUmUS6T9WtPukT#{+)emY!mz8 zW#`${jY;;&TMydpPrYs5z2goW)}g}YuUw-MCX81*Ad7H@m1HrZGbg-m&ph*tz4+pb z_WbkD*bC2nXj=-gt;#kBSz-*XZmU8+6z@<&=Aw6|xT__wv_-O65i>`hxZbGBXo zo$G9J^(gz%_ph`m&)#E~{@@YIU;Un4HvVSIPwy@Rk1yK4pL|tguB6HC0{rkt<1!|r zWM6V~q0-3S=lnS~W6pdDP^2qYnPLNn54VCPZ`$7<|8FoCl$KU$AN>1in=*ZkEuKBy z?)=ryZNj7vtWpyAOetG0oc@-5SlHaIIOABI2G^}vl8{tvE3vErpR?1tWZ8p{O$ue( zF|0aKjnBp!Xc#p>pI|UW@(lBggV~ER*A0Wx#8mi1fE5lm!$(RFPn>K2hB|J{>A5Y| zhC&loPp}Naq`pTq`9#au31h3@I;o}n=I_tiA0L0mo_l(tz4O2$R{Wp;gv(6ANb8KW z(n*nC!@H(D9WvGJEt(VbZPdO3ZmDN*FtDU+H`_*=tI-vWwY?-Om#J2MFhyH+NlB?x zEnt$7Hp586$Rb&$zERT%`o{7j{pANUj2XF))_i17&Uw;)|Nigof$0y}vixP%yJc^? ze$@5$y`#Qo$M-nixH{XV)kv7vY+Peo^S1^S4Q~2_a3tK!pFFv~8~iwDjQzVu!$N|+ z_ybIb%Xj1Z;XG_FK<|^Rs3^fi*SGWfK%Ekrc;Y;~KIy~SMVr?I7c`5eupWhhRQC`OqvMyz6lTf{2`6f4xW z3Th>pSs7L-#xps!NP{sdB`EvH26B-iX|!3lfg^1E&~bMCx6ZP8(^Kr4Z(eF!zyFEN zdirTwQ8vi_aL2c;pP2QBe^+WZ{Pa!MMWVi! zY~#OwyRA*ivW3~h?Dp%v5W=fuYgG0JZ1u8v)}m=2J4F1tZhDO|9XipC8$P;^z47Lz zU@-+fZ6=OL)r2&Se;R9`A=dzh2&0xH8seY}O-z#LJ9h2bHS|H=>yuWeiLG07L;bxW z(1cYGetSfd>QM<}O>~PcBH^HQ>sB^#+AMp0X{ntg)wFJs)GlAW(Wd2O+UW7)cW%zw z(Xc*!VpcLxbI@V;s0)X*g`#<<4w5$KShZB~u#pU-oRgkoB@#+t@~&y7E_;yb1Y>BL zm{%mu&@VRG(gkySz1EP5WE%C1S?gv6-R2EN8-k>HaNEJwuXR7`)uPvqJT(NtG=m%F z7$!ZZMNYULn?XA{Ew-S94qPJXGU40l;AI~w9|^eM3QAV#y~SeO`07(YP7ZOCml6ZIAq=@NwhS}lA(JI zs_{++fUF{^FxV&-ONl+wLM}=kY5-9n3S*McJ?o&*nN9M|!E@l}p0= zPXE#NzQ((f<#Vm?;C5zh+r=hkOX?9wpK(nxcGx~n=CpRip^v<3>nht+w8>U&TV=D?%?>)wNTspSeCDBN zTDQDzJ6X@*Ti{Ru0T&iIV7#f5-1JIBI%;{dko8;aVL+t=stXG0l78wwqtr5)FSfffU*n}^bqw%N0H zU2FF|^^$d*`+@!A{y}!t4L8~`gDdRLpWSK`UU}2rn6pND!x!7RXP#wWyZlreH1Y_$ z>!~~KjEfdo;q19~w6!tt!b_8<@aB+^Dg?D zo$yJKY4?XgL9WrKsZQl5< zJu&fkTl?{I_U@?5?W)t;*v%K7ZqE;BXK%c+*e9ewl{?eJC^_QJap zZDq$d?ecTSTGNywn{fZF_NRHH?flCxvqM_xy4@u+?7Ew8x5uWhwmB0fOBeej`}Pf2 zTG3lC+Aa4yXm8G)Z2zCV^8oO>sPg#R-Z#6OO>es?q<08ONFXFMfdEGlQL)RRr<~%Q zE%YQeUwwvH@lK=jG zzbS9tyqVw3ci!*K%$`HBa%<@-x%u`l%he-$%K1|U%X9brP;OoKtgJ5BAz%6aj~#%{ z?Vl%mDqobn`c-YHE+VPa-9P~2xGhT#NkXqIh1WVz&{s#i2?|{(fipq^49*7XR;*az zR{0MeJlLJ&2Y}{q6I(=hMljq46O;p<4REv(wZnppCj)^UmT{DffT6%n)`7&B2?ZeX zaEI-{t4nHrn0Y8ba&F_sNV=IbW%Bq@a^dogvZP?S?swcIlY7R=B=uv#V2lFLmaa|# z1G{dJx589OQuPcb6@b<*NnLc2dZof|%|jQsC#Y_Sba84H(Iuse0~!vfdRW;8eKg9O z4{a9gn2V~59L>^dJ)T$QPfMmqAg{Ec2mUIAfz5#oymK#aEDnf#D9a)BqVERr*Mb);M@FL+?`gV~fFTg{}k zvw6Z^orw=W06ov}+L4aBV$v0~o$t){b28;W&XWjr+cecM7rgt1Y%A0I##$+_NR)|F zr$}D6CRw;(p_*1SNN#4b94ac69(f~V!nh#{x*KH8%EhvL)fO2rbev3_Fj`WYXVO9D zcfB`H-rH5Cvq(LusytpskDnw%`sqq-)x_>yyHMu6Q=qG%Gi2Q4X)>%|t`zOtB}?C3 zqcgpIQrnax)23f219~UvP9Ln^Z|Odpvx#hDcVwesPsAfTB-#{<_I4~^CTn+=xt&JT z;9DBgdPqXuZq-5$l8Jp&W!@{V$hLi@()ZkHGJQmz#Hkv&bl)am2qi(tc*NwstnB5eO#qhmM?lsR&PBd!zWCYQA1VRq8)5P$vV0Dnp#J^n>o_it(_^e;b7f|&wqasu){PcIqxMM>E_Lw zof!ltcriHR=x|$G9Axjab;2j|Oj@+Gw(Zo3YL2Z8c6H33A%D&Uo{p#+{Q}vbCTMZG z-@QYNbi7&*+7KdFSBj&xRUd@%q(0|;^E-;un8d7Zcfj%ZiBQyu8YoAnN~ z8O%s*@$lJv65(+IXx?Mp3NATfR$#Jk)cq%`b+?IBHH8SeYTY_byCw~5-mG0CRP5a% z&prA_*`ys_q6)Q1e=$mhjZ>Qbg%ML!;xv%tP~1twm*xu6kBG>WFI;R!ZyU9g?8i4f)&K z5niJ<;%=X2Y@qeIwx&uud)2_`>g^zpqi({u1W2`t5r+RBACPS*L3SOd zwD!OQZZGGi%Py0c;ltHnSx;1B`_Vv$R;k)#_E!cp13odIVAqS3canJOg?$;~5mvAB=3;D>?j>7aDU=AN@qBgr~2Sy)8#}jE>420Uybv7TTKe`3d zum~ew4eJ|qmR+kru}b@m1{xT1egJf0jcR2}q)ye()wPiWOt3Lyu_3~*(M5@Ln7puP z3ivgsop6Q5#bL4#@dxZi-0?JaOT*RjL#qMJ2pvkId7-J$yO#1c^MYT!g5w%3C+QW1OiaJ= zpJZfdx!TNCqe52`nJVdV<&E;=8+7kS{iIk!-o{olci|)3a zBL6+AF~0B5bLG{8X%d?;P*%LLNfili%7?D~fa~j;)HXUscX?1FatD&(*C|;px`@s2 zB}U6Zr`f3X!Yuw{E4h-I65Tc~)A?Z%fmWF9Fq=TTyuEb0 ztk}LnwjSIn=~?Lx?2?u}l?P@Glo@$5-1c(VCG+!5GJKhm22f0Xj8@RbM1xZUG1Fia zB|Y-M8DHE-#+k@?XW@Q3_1ix2JK9lyyjM768*EPzKL!~OIO;peiI0rZN5`j4xax%D z5iS_l0?7l1EchWO^COMTFr!vpu1kjPJW3>@Q>xS*cipC)JXz?^Yoy8_}&68X2`c|}PQm+S+)T*YH z)BLQVT10H-f*I3+I?$<|7S0_|;tmV(kRtt5%OfukF?sp8w(epyzrdL;8adK=kSbbv znKZ=HBSdkIf6t%tVP_X~u1rT~9Es-A9Oj|fQ%!3c)VL$YEuv^t8M`i~K{wRTLQA82 za_g$~pge>59_yJG0C$*9vn-XTV~Fxtq{Hw~0xc3iQ;NoPrS98npZow3Q>ILDHkS-! zv_XD=;WyrR!)e5(PMzv#EL^zI`Olg)%PmG+zI?e`s789WaC-agw;jMeSGS5pljaYc zEllW*?{D}1I}q)j^z;iXAmn;H=}1eNqR~B;|FOauw0xe(>vZr2U0jeK%}hZ~1T1ae zwOiH{>sPbhgQQDZiWI6=cKO!5@*(Y~Vu}t)V|kfsnkztP5fIJ9h=q@;fo;@9gN@l4 z5})410aNlxPe^yB5KX$x93~N2@mUU(atfdC0Jh~dgGeO%7@O4LRYhJzsB-0iF$$(%M0HWOnpabH02Dm52CF-!H zyD;h19ipN{g0eTdzTEJGK9ezAuwD3Z+jH-T=%4n)wK!aHmN!?scOX<{P^1exIn*qt zYmROnaCl;1X-xa{1Ma=f&F!jN-KMn2f_OOSTUr(qqxI$>B_@IN3#Pe5 zHs<`X*myLMZ2bjs&5wKH@$8o;T3X`b$b+v-e5qowqMz3IHCmArN6H#M;#nO3zOAre zJfrQW3C7_WXL-4Y=0ARzpRTogKW(&opPnBc%^!aJdb9Wz*PhRo>(S`#G;j{=N>m#$ zwxF+O2Cki8Wkr--A+*xzh!V83jL{dfp1tIn8$w%bQ7I|9^^kRM^=j@==N1L3mPySf z8dXbOr~B$fDhX}w;YQpR-J`>fK;kZ#ypOK@qvIV->#$FB8i&K%b*FM-mhWbE+>=QE z*i7$e9@|Cra3rNoT{x|Z4h%YG&>QLCLZ_&we`&p${0}Dz??MS2p9FXp7$5<<44mWi z2xSH?+OL^=_-&a%41eO{NC)ulqkH|bCu~7Mf!j)o{aCTBW-nyS7_hD8xbO)RCLF;a zv~4i<2V2Y2t|V&ho&jR#&YkX)do&Y{*3uaxt%V=UKU%o;Elf0!LEpZ8TgrDl`JHTB z`VN#LxZVnc`=>U^+xvIxAr_ff4b-(8F+HyHmb4WH9ZI<1oyLEAOrIb{axILA- zsvUH{jD9k)&qV2+(c3Nhi>cJzk*ew>yJzI{vQHE3F>Qk06*G|}-N}P5fE;R)m8$!P zYPX1q2R7B1W&o@)-9X#i;F4CB1G>oV*Iz0}j zQKR)2`0@Vn+e{ewt`;f`0z9-P_ft6}HzDbeJmC>b& z@<+q%DB6hTJVM*0YtF~=jx;jOlT7swSLz|+n(y#Oo-UGJiJ?&<6NbZ|z3_B(<>En4 ze-Y+gd_OPlBScgiuhD9CGNPN2I+~3-QQ>PrLZWJVbZ~JrA`FFpLkYA?0%(#{9iYVM zF@Q2~+Tcq6M;zXD22c7y=%9guKl}jV@Wr5vgBIy*&t)`Lgp)66;SCckH0#hNos|W8 z#DzEVAV03bJV=KfA++Gxcq0$X4?pst?A+s!hlNAa&x1V458jcFp9gf>%EQV*9;78M z`NA7zwQ|(zZbz(HNmivsPEw;TxZWX+g`4H7!I|=*D=(H9AKK6)ybzxK{~e5)J>C` z$5qr+NR6&FsnhcUipz9M&^q0(Ll?#q9^0s29Cb_7ay6afq(QXL_$TYBx()D6J?atQ z$ic5iCE_DaxyfGtMMkexiW1L=BtzIkt z^{2OGbNVnTN$V{u)@_u*I!vE4C{N?)yVIO8?Fn8Vd+ae8sVDk=?sK1$XY}j^%C=E= zU|GL@z58Jk&R3O}Uw&EMeDh5=(clzQ_@a+@}7nrqk8qt%JY zExfia0c1tnLvFNt+7s=MK9;(q?r~>}OphMDS}l8ImJo++nRaTNx zM*03#*E)?vwRXgZUoR3woLgnB3o;U`SIED8{X5dwyPx#WIUtj!O_E;SG9_L&qt4Y6 z6O(IUMs1B_Q*^Q2PWkl@o|2K5-yu`R#H*cft?u>Nx_LulvhI9gZ+3IO)%pS@>Zhl8 z4Y1AuFj=kmJXyEfh|$Ji+cVYa5wYy?93bI9X^eLMsY%R!8B8PE85Uh8=&E$xxJVa6 z*6P-Nx{y&j@fvrphrKlOU>D3a=+J_Wd>eJ!!PG>hq>~0TB^=&TtD5)()ttn)2tSgN zLu?XsfW^_MlT>z83kx3W^yJ7i9q^vM?|v!oHB~--(-f(!s+ZK5GP(CBKa@eUJ}1{r zKF7TX_5wIU;h#_fCny01Eq)B7XqWk9N{4IC00_?vXvAZ&6&h#m@dI?@03QGYKnDH{ zu*9L0roGa6b8nqH11o9JRx?NwhkGLO>>!fB<|2{JAk_1_) zUj@d^oGIz5UEaO)9qC?rND8N&D~Ur!E2xc?{reP@rDm&nK$h$~uwT05W;omCU4^@( zq^?9(?Oi2{H!haMYz6;nYmBBkCtY_hs!5iiSwm$&w*jh15g9*dyq=Gu^|b4tbj?-p zR9Yd0hYF=%|9-NsXrKGC)+Mfs9>lUkvQ#5l7pGu(U$OM))k6+d=)o;|T5ZohJ*Bp? z*2%F~pI)+a|4xZ*h?U%~xw21pfdZf-3pAg|2N@%8>ana;!MK73{H;EaC$eI<8DvA9 zQg^Wcz_bI_@*kiD-BA6;Kx$we}Sii?$-k%I&VQ ziq#VqyUMPES~*Vn0u({v69J^OE#4m{&%9&2hwy`Z0k4Y}FP3@p=E?QfUoU_C>t9{_ zo~i8!9s$0;`qi&o+64<1xVCret+&csZ@uNp|Iv?r)J?XL8|Gd4`4P=FdC|5XeDFb+ zC$d6DSLg|qfbsF;$GiM@?b=15LU)1^psiESv@7bF`?D1{v>QO9Aq6zET?vi&E@EEUO^}g;d$>KRd0}zxC01}7*H9u4ed9~A zrP~OZKD>uKdjI#NY3!%vr~mZ@Y1p|$e)9c$XM8Pa>;So!juU(t?SH6)6no97!Y4-TG*X)2dL{OsrQhZhz~OnRCOnRJQ#`<Qh-2-6Z%LaF@{4kAR5P)9*5i85dyMO=wE zNtZ!6gQR~}f9auHjpn4}NLsww4b$Oz4ik*D+%&g1FeW+10phaSGD*!!btei|HL00M zx@vk=S&`j6TQd4(I5Uk@RcJJ2N4|FS>)FpON~D~<)l|U^NXlEEzI|F`Wpbk)DL-+e z$+$&U+QzINk+&~n+RAPYqBHokPpXSi_0K1jg#o)kkw4-23&&z11W4 zemz<_;EDGFdc@(2FRq`q`B7Pm<)t0#rCjT)OYvqIKWT*fLJ1GbQnTZIjgf&mX*wr) zsVv)8poiHcN#FWH8JVxUspwd%$ULHSioDwHePzN4*uv3%$(!~IfaZOskH8NNHD8`s z`(T=7CJ;B=aD#iF@WUY=Krja~;b{M?gLwMsr(OL_pFZ974*>PqdXgpY9zV>nhAtQ7~x^I7>?9fkNI#-p2l~2gBy)klQ{WS`jb??iH zb#mXzAM1-gLk7m|k)JL3H@R-aEP1NnahYFHDY5%rlW!L;mPMM4I%) zZFwmXH>MP-L2lAcCo5idZQY`u^^#?j4x;fXxpLWsL*<*_eN0{)a+Tb1eV)YVruTDS zUMRa1xW?&3pm0;J+nA>r z2!}lMp^er!MHkO(SopYn>$gwKuOEF{w!ic zUbjbPkI`+GbO#VR^U#G7I9>@v2HhBU>L8sfno-&k_K%x3ZE}MohpQNffIfrz=+UE{ zb{DXL#w|ZT-)T3XF>Kf{2QUGBJOc{oycvK23pl^M8c4t&plQzT9e~gQ00-DL=idW1 z45&a4XIFT)xZE3E;@G|ALAU`}Kit2EcWC=@{XB?^GoGO5$0f|q!+66VeuzsRc5iY0 zJTyuR?=9){CKk{`U!Zwfx;p(L))1!)$=`cVDpo9!m=VKu(mqhXl%+_retnEfX_Vxy z3QXBJUtO8nF~7I>J$G0Mhn5_yIOvYk9^7@XoY&_(8K|ZM{WANxxWPZRs1F-yeid~U z&Tbmss~V~#S;q>F;EvaY-0+v$lq&suD@fISK{4ULW=-Mf5extLlE=@QjfVsxonKqElXZ$p-!UL}{z(i4LxjB#NW zhlB>MSU5O;{(Lt9h968VUU=aJdGygo-K2WNh!IZi@P^hN6AStR%rKZpGl}JyLzr+( zwgKYM=gSQ;9Io3TKA_tpUVQPz4n*TeS|;&KZs}8)&;aJ2c;X2MrlDbV;RuI+j!Ob9 z?V`DFJg&rNSmbsCXbN4YFHpacSIX5d<;cM?Ka$^EdAiyoKl*gR+o_FHYTvu$Pvslr^BZ)fbE>`}I^(?NoY`{G!UyHN^Pi9( zylCvCqt)9cNQ?ir%snXRePjf$LZ-;UoU+h|Fy~?M^90_SW0qkmsxZ7NX)1Y z%gyUvl5M?mq;}M&Wz0Ff<-k6*#moMTOw9R}yiwCAg~!T*8la&)|&70@@Wo zjiqTVU3=*oooMl+`8h`Q4`J|x{LqR56565_=%zNqiBhd6{UxY2(xxJHT{E>m z-J|xg@5-wEtJEw*_p{eQfPI!nbsHrE&lxBz{$uau7N=Fh0VDuscDZ1`MxyS%qF>8wrw;hA6R!XOKmbWZK~&1bg1_?0a$PHqX!jTCHi%5H zd8ci%LErMlFMiQYx}n9_C(_PUlZ~~yS2^GrAb-s@*SH0YOvnM&Hi7Z^C4K0QEdgtL z$BudC$2cZ{4mOY`48Y@RWbyVt$jhrTd5TPFG4F+9Ma_b^S>TsTYO*FPb*{penqaO1UdU96gC z=&|JWT08sRULr+%)xJ*6lgrAgr8u@kH7S*HaDTa!C+eg?>Q&}NQlr~1Rg@f*>ZF5m zP!F_;&uEa>fBAE%AA6^K>&}^Sr>_Jb+CnnF3i*NavTrojumQ_kxhB6YX9go`hx%BRD^PLVx*(#_wz7T`}xbZ_lPRviSDg8mE?zU5VG$z2yUaKo6hR z&9#;8SaeT@hVg_QEm}Ijg*oHNuE*j7T8CvuXR07t%c?@r{}Ba5qZ=Qz9<&cH-m*sG za}+2K8>PKeg92P#_}6=Yq+EKv$l#$8uSpwpjm17a-EULTCfzAxlWZ*7C`CGE^hoa^ zdD;1H|K)tW0*2Y!*&Lc-wxz4mz3#C+W_O_Cs$#ciGa$M_6)D6?ONi`-L3oCqU~3Lg z9?b!s(Nwz6{yJ=E$&TpOjwLHU9QyWbSKqI-dy8vzhpi|MaA(fq@ND;X_5E7AKc2Wj z8a(3|RoR*_IZaQz)gR8*1i1(A5BXVnQZseO5_QB?-xly}(TU4DL|X;8(sr3V;Mjo! zZ7>sLiw7_!4qsWUTxhG&JTsxT38R^ASUcv*1RNV@obd-h{?La$zEf z^A1>C%g+%A|D2EnOqM5)IpC&E!ri&UVNW?c)&e!Vcul<;rx4K#F`(fmSVU(-FvqC6v)PRu0vB&?#0yw zb~{$jmoI<$hib3eq-GF*k?FHPA>aJm2j$sE?vvj>{;VE5zDkf5HB;sHzy5)2o8MmwHf@$Mm);~-)t1QbzVYu;GvivhsIM*p)MH)8 zjnqkmy4aW+S@h@sk;m3em)q|6oC4@rDKA_lU%l&Va^=mRl$?XA;mw^aL%_7jI!j;j zJ^AbvH%tGTwX$?&p*;5F^RoWQKgz4gO)_X)lPv%1@1=BhS9$2iKbIxzt7ZI0J}(pN zN@eBVwU#O_yFMYkGSsFyHcLK!)y4AYZ`a93|M^-;&;buSMJ6Bp$M=)Jz4?X?gIB0MdIXfj zs)ng%=O%gYP?cPoO{WMzcL_)ox=;egB>@|Z7_875+cSe80~doG{n23%7a<>fwseGY z??2-gjE~=`aF!2)E`zWQwB~;*@;F`^}XljkcKs zPS7yN=odz|ipxpWEzDGl?6yMHiM?}PcLbouF@|t&V~O)?mJ_Bv099mmOc^<9r}qzh zFmdE+e4gGMkB>UzrAIKy5aUNYp3TqXWbu49 zEX?vWdd82v8$8qBn3kG!MvtrI>(dVJPh0|4A16+s^HR3^DDQgR>o-0wNmo$6F1J5? zl^p7Sr`$E+78%s7j||pT%~e(VbQ_`VQtmoio%O}_kfCbJ7NekUW64&j(hiT~S5#jr zebdj8l!gk~T(Mg}p>>z^n0nPf>k8}Sp1KfZpv37`I0c1kWWOTr0cpe4FTN$5&_e86x9{<;nILdn+E+jSMX(pNtpj!|1m;x$zl z%F-q8%7NM(nQ;Di>6fi1TSaqq#WHWfa@Q%>R_WG6xxHod$PtpHorXe3S-jva*{K6X zS6$?I{&>}>XjwO}S|>Zy_PeA?f$r!DGG>Ub+}16Z;u2ItvS+QXRL+pRfqf-K6*jfi zWwK`NCS6^;M;95Us;%ewlHWH)KSwIK-nK!OtlcWz^7`lttJ?bhx%+H0rD-lb2= z$G>o&{L917%jH87rL4S8KZm8si~swNa`*gndHTtFrKeQtBEq8qOEl4jexU@A0HCGynF|IhFA&Z?w;R=0>yXn*tn_m&(F9 zl}8JNZk7)==@038jh7a0laiz^GBkFt{Ohe($>7OT^|7xr?jzMcInCKB8&B|F zQCs0O&j5H94RVAwdo5#@fkv4)5q=}Un0p^6M*@%i*W|>G6f9`s)4ur~JN2oLVdbJ- z(w2BOAl=b`!{oq3mNrEDVM1p9r@r)uDUv7o0B#LbTd2u_aO1`Nh=ZRw{4I|8+128; zm6o^`k9$8Z&uux<@iTzlR@}D2+Czsp0DSm6+5Fn#r9ENrf-_n1%su@GJTh6u{aqa8 zt<|rGq14D9-ujJfuFDhI`kXwGG+BQ8p)tCpnc8TnjqdQizFnGXV0CLZ(c@J|_nznk zWq;Vgp)n>~&duphZ|6GdyqI%Tt*l$9sd++Ug4(;~Ul@t5wr$n=dB$~*o;HDs;N?p1 z+D|T-IlxHkRTqd`O#vm-$YZGcIchs;SnKr(%+1*m;xWaJG$VkFER9 zD&THVo97(ebF{ky&PqeenxOW7lO~_vLPIwg)f1iAvadlh1`n6Z^>^6O7zevYwC}O~ zu>o(C9@FxgqwtafUiq}CEB47pSCdb>`?OKI&}peWtE+0I_qiXCk6yh}HZ5JI8+T6Ag)~|jIuTh>6f0l6OZa{ghTghuh-R4o(LV_IRwQu5Izt;kF& zTHg_H9Ki#P@Ywa3+bt5ll=(1f-*_DgnosRpB>Ld&2!@x(Y?^{vN`W~$9_f|?{S zp2RAEj#r!D1U1sD(a(l;y7wm_n8cBR5q=w-O<{z#`77{NO^+LZ2+;UW29aCUIO~S| z3UZAGC-_z9iHzo4`N>CJeWh-SPqCW$clAIA!G}lnuc&riU3$soH+)R4{n%|fSf)yXF2ZS4+i^!%%UWHVAh+E4FRm^twVtst zuc}Rw&)oSvNmW}lCJ-Fg9=cEhCo2Kh=4j++nS*Z}pOe}Cs^y*Q#InEx18cG_B4%%Q z?FHO3eTNNlM@U-jOJmrxSo_aP-KiojyQ{|M%c1szIyoL*xI+e&s4aDx?t`3?FIDNi z7Mi*-(XXQ$llq{K)J5)8yqugnKewC6xC;G+d7dAA? zoEnH32K}S!tCU9;3r2c4UEb1c1Kq;+DU_?#6^qSSXlD8Q{C37YeDEd1oV77~?&vH0 znEa2(Ticih9QLAa7;DT0!wGAn{>X!Nzyd+`V`kBynQ|D(XjkJcnw*Sx!YthPgPx`5 zN*sG8jQ7aW@$BF89CW0m41AH|>lRvjGYcWE(;HV z&CmzoZ_em&nOvEuN(zzRAPVTbR-2>eKS`c)#2q6F{4AA_9w%%-mj*r67+^ zw?P4*J8qjNZEV<|9pzf{*EDesNH?eO?g5f0INRf>G@Ehx@oBicqtTqB?=+>Vt%M*VeK#@kNu33hYRN z9OR;lbjFU;gC}V8I+@{M72Z7+ulv)ab={zLg=y((8?Ny+ihgxSk&I-t>k78D&MeO( ziHA?21pYoGU;_sOCMO{B$(@Bz=HD4oumP-57hsnt5XtGTnqqxd8CI=(1faqr%8PP6 zG^DQdfbLR}DK#56O3HpcOk>hi$NHqrC`NDw~ZMZ z8pFh56wA861*{ieV92pkfXE{*@2^?TDGV;+3N>0D>#AOHmG;@fwr{x`}FV+j-@^w=#vJ= zz0u|wvoH>Qx$e5_4)5-w{=qy*6HM#V;b?REl^buo(eV;3{wsQt=b}Z6+yOK6KgJV$ z;H*sKgM$Xnp6xyu4}Xhmae};(20wmS2e3~!dyKPl3C}@ZpmVmnqmf}7B|_%)s_|`> zd5f^xNOFb;MY`rH)%IGMe1_Rtr>#X1e%!PAo{H7Mt+EnRnTVt8c$;%Ci@qRknIHj# z>42x3Bd80(v&kvEh7v%_gx0XF!M-D;WP@O(?%V$StMg^;<{j>s1VI_cXaoRt@|XqqF5>?43jM-+oZ5;uWFk2%Ch0RWLxEO z8Pz3IMhqD&eRUhrep!R0-{5{uTiiw0nwaCOVo7z01H{-ZW6zwMn(It5_yooQB?Gz- zXxT->77YUE4Ky1quJl2t%NcEK)@@&8^E+L6wnf+Vx6OkR8gX--$rC(~e+v)rN1dQ) z(LI;dxHa-jLZ+3e{v-dN*cRc?1 z76$BDVd@&(C+qk;5PSpxLKy5eM`qkfOdS5xoI#~v^rENFZ9jbwt}fO-xxH3|s&)|8wnW%JL|()<-kJg^wEDpZ9mqyd=L_tc#7+ z+~U<|-q3@fw#e*h7do?ygv@Mb8qr0%=rlN14sBU4o8Emvwsuub@vv+;n4pWT7cF$V zU$C{@l!4>qgJUn1?iszMN0&S~yo0l@xlk=PZhysoXS1A|km`2HpeMonB4WCyC&1~R z%s93t%uLU8{?^YTL;iJ^188(cy+tdpwI@s$&J;&ISzWbs`e;!Uq$vt@hvqn5b^AF* zY!LvBhXO$P^Pfd+7DdsSh#se{C^iDVwVj%SHtm*^1Tj|t;Gua3NTMYM5CSGAPoC@! zSs68Ilr!^q^2sONq?O~kzx1Uq2?s6#5;?_@eVp0V2jI+MC>+d$R+N0uDg(rc&%sJe zo&d4G``z!{{?V_#`l?${j434A-4A~7gARaFH-KaIr{Az)gIjnEucYS?CBP><*pcvqc z{Bca?n51xeBlM6P0H5R3Z@yV~4O4(`@$&NWT$w48?|lA!|FiMFO#n?tf^hvA@Yz_% zkmpbWp#@yuX9#r z1+4X|Sz|EYw{wTQvPut{$jz7T-G)f<<`{Wv?FPAce7Phne^<8F>;C%}43~|EHmMDB zp#wNEqv9nlvy1NIKR_nw9?U(v=1H1@-kfAT-rCzsnSJ^9*X)`P*ywQ znRg1XiyiTV2@_<7YH>E$VxE5+*zC06OtU z<9i+h2NiYZHKGz%5teVhc_B|M-vp zaOJq?o_kvMrw5pu_8zcLc>v!`EXW_ekt_Rfn_S3`2@LNnlL00u#6uHJxsU~#_L(zh zI=M0t0L*iQIx;gpx%w{n?1!D{_iX}b8W$Cfv#pQL^a6$ag%SuQaP~-mf#PJHfnYjf z>x}8pafI1`Lm1B%$G<;W9xN}e^p$`e1|r|zJ)HEP=D|nH(F|4GnguIcjqZpPr+YLf zsyS9;Os%BX)Jc!DELo`w^h#>htNFw_Dcbs?JowC;vZtX;YLj)rJ(zJEUQ$?5=nghvPi9W_LyrEIa%i5-v4e&=G|^7K ztnqOy*z+~@(CI8^c>{X<14}xaAMyvlnKM4^xihXu@xZ&L?cM!+h5$;`DOcX};Ja?& zUK(igzB2Iy_^w>J(zP$l4bT(=>Hw|)Tl~yKRD1Hm&h*<>0W^ZOfqZ}l;D&~Y!HG^E4GCHuKnMdZoj!|`&^|F}pt)iYh}MZ) z9$az6Y0o|M;0xOPd^*u+Sl)g-m!am%X>FRZdt^OEB(D1FiFtLk)w)wqqSWecISsmo zAx#(YCF*vSm6c^ut{}Foc%Q5<*(9Zz3#4?*b}6c;m!WE+oPYIr>EC^*Ov@f9y}J*T zjBX0{6$rasE*f>)%K9ovPE3^wy_Qw${?5ARbER%C$^t-6_RCGl)m?ZZ8s;vsT^vs_ zy1S5Cfar+Ke|YBqkzWE_Asn8H)E(dlIRPR}E_Nkud+r_0R^mov6#)rt-TQS4nBvFS z=lcii#&`?T_0zyxYv~AUFAcyKagmcxudTd&J}k|N@?+_^;*56WsrfH}toc20KD1c{ zQ7!kuaKf6~bu)$LsE6ON*|TTMv(G;3Y;L&+P@4@fldp*rC%Q@4=+UFydydUC?>Jgw z`UC0^&}|*!9x45En<^@y*zo`Yg2QJi{9rZ@?*l6x(e;D;nLP zvvxrEx#ynSVn#uqhgrqn{`NNqUacGeS~IJlF5wGv6o5Y<7|lBxYT`4|AU#@UCNS`V zTmZ<}R0Fh;9dW1=Y{+qhW5fO2bI&=sntzb@v;DcvgH-$%?`$t<$bTq-Py+8C30U8R zW`#kBL5x9-1up<(1{G}g&?*7a7_`t9F?gcsp@YxM%X5PkKn|dbhKMh2Xr>r^%~@Xd ze5@;)7Y0zYN5{Jhhs#Sd0J7V_X!)`EWL0^wB$w&-a=O^BTn`pW@0q730cJY$i_-dX z*}tnmcg2_|o8wERw)Bu>G$u;#Nf$_JeY#ZbZjkYPhRU$)Zjz*jV%68FJ*p1w@m=*3 zwJ!GKc3KKIWTCA(v2-VLHC~vE^7FNq;Rj#Ft54Txa}E0AM_T;- z$vpnXKlg-Fzr;m;YarpCWamkB&;-OJ)(7Y^v8%SO54Z3ZlYLYi>+9JCv%B7!z zr*rc4#L)T}sjI1yay6gWTee%a6|a;%DGhQ!7w#46e$26D@u2oI4bDCFLe40B1sZmdO%1p>;8BpOJzWCWaGO#ka za!{uFNSSyhu3sjLOJ3X~6XG#|qO~F}G=nns(-FsH44u~UFy1V#pN>3(c?9bbo-pGu ze*AJ6pMDk2ArXR^Jxde(D<7}ON~a^%zI3Zg!_3I zZ`3)?p6%*9^$%(Avpg*>S4+#i#WTMk9pd1O2g3blYk&CpJO}CUOkMLcXYqqPA~SR3 z>!&liT#cs1<=J-@*Y`Wy?&I!OceXJd@*7GZlt3r}>wx*RiY6MZAzCOtDdGSgXzv(& zh{GpNv`T;vt_-+iMHEk>REbL*CU!rQZ$Ri;>!D)JT?cOCZO|??9Yqu0{D3F(5n=kjhxJjN|UoP*i zd0QH4_sHHu>t#W~%kpyJJXy18p={W;Mt0ZL%GiEm3Qb zqPtw|M$=nUAqRC&=c3{=$?ZEp51*=$;{8R^wM&*9P=B=Vly8@o1NArMU|TS>Z*}!` zvUks37mfxJvluk%EN(;I$O`$`z={m{EDTM)2td~~yDkqcv&oyU1%Os$4-MpsR+`0p z#3c_VJMclcIr1Q1!iWPu$e8*e9pQjM;!ro#qvb(3c?9bbo(l>JT-|X`ewGJyO+8a~ z(vlzbhz8N}KxVW_>XdNW05++V2|4f#4d@aN;6Yr{(;h7kU&f@vAK6kquE>ruK?@mE zet;c$F+n76%Y(LW?HFF+nRJu^dffXmCN6pKS{2QR0~K^r;YEFb@w zd;I-)eq5I@@W)SYH2w5OFObZ&AKIX$M+VWHPm6HN!@oZszKtKt*QdjM&{=%*_xUlN zjaHC1^Czv*X^$WAEuPT~ruY46Lpa_?-a)Q}^IjT{7T-lYgZ~`;-RulzHe@Z7Kq!Gw z0!V-kn@$!0$9}2+2D2{&6ab_M2LRAv(@A4P30MF`kRD(|9KrxI_yK|#DCx)nA^;HL zSmzE9gFb$MEbH)zOIrN72iV2xfm7V8rvn_&!Ym?92MSLA6kU*)sr=RHzXmMEiiEW6L(xO5=om5X@%}$n>blrzHOBcmeMfP_ut|`{j2$S@Xsu;C-j#Jr0_Ti-* zm}+3VoTmIHCMhi~KV^nz{12|Dee#jO-D>LOsjusbLaZflhWkP{NeuM$&@b_g* zT$3?zO~&|JI?IEr34W&&oj@lQFU}xxpJ@@JSv3SSAC6`{f`G`Qwj+H}W8z<-xtBBh1f(Fw4X8Bi!l{ z-YAcigFJ}GuOl2XF`2=q@o0JDXU@Mjzi8JJjRzn6qLtnFH2$LH;rq3A55Inx&wp$F zejM(7d0AL6tv$mx_xwm_&sIkBgO2%GS&cUBgLw8c8Tii@*RI4NoOVY0rmyDtY;J zI&lUCI(2|Hn!P+VzW_9}UubciJ3Pj_$C~O2-62C)!K+zDMOCR}_8X!o zF@NH*+VCTq%f$l}))$lgrV7OQr-Y)_-y)VrJf$IY{)N0r)XHl|2@ zL#ZCMog+1~Nz^|nbUR$LRjHu6kT>m~w z)FZr(C$69HMAP{+j&*-LdH8Yt`%{_6v1px&a3-3(UjTKRXc!nf74&@?(d2}mIRkz6 z?1%Yak8t8zd_SJ=&ppoaTAnS9 zfA2h_{2@-T%ziXK-2APdv}dl-;`x5uqNLuw#g@yi;_b4nOic|A9+CkyDbi=~SXr^K zK%QS6F9*7fl5RCSn-;esCzR-}P;cnrD=~?r; z$GgBpjc0o=?CNMW&n#7s?aE|4`B$UM*CHmr0CslVV6xjDXX*X8(fkNEe@s*;7hk2U z9s22m_m&QSOr7|#YXXqG$aQLz72=6Ald*Ijy8q*#eWo6H4{{&2!K%SSE{W{ubYV4&D>ToV#VLYaZ}g!iduBm)xL-m=x}miUT_( zdEh8Dn^4>9x+>u~>!Q+qvQllA*Ea5x%B=-bm!u{m=M0x2*@I<9{tU@(NR)2nO_Hoz z$4!_vTt@cWr#8-wGHlRPnL1&FG$!iVf4%y;~wX~j>Yp;MSOas^& z4FJd1Z~!;9RYMkp7KW>$b*IpF|2i%UG?-`X4Tu*GF@F#y{9`Km=+ z+Nt>&uh1ooFIJo=$h*b%a5(tGw2ZG<#*6s_O5xGoLwh!!hzCFLNqX|7Tn3CuXL*y> z_XotY-5m=a0m1MQ<%-(g^U9jQyk7fcxKJdg=c1&tG zI0k>p_|0#AQx+{+5lf zdu54i*i|CgS#>h&+B&IG8|GCzS4x5I$y~X8vvfODE8Wi-FB2#HgAD0DOtRICBT-E+ z*ha3QAic+pk?YQ55u<{Hgvg>T$1C~k;Mk;P=hiPP;r_GTGZ>@sVL%VY zaULD`2cD<{z>tB2)15u}nJn7M3n1hJ*0$nyR2a6%$Lrc#-V>o~?+*YNO>&h^4%Z%7 z>)wO77`2Jjf6<)NOlug2@#JOaNiRKGJ{q4^Pka$#Ut~_q;}kvia|gho`DDEV2ZXR+ zG1^YHvV<0kDL?(`PdmW(`s=Sd01mJPd~+1{;>C+ydH^c>9dji3AO7$Mr$PPfXFux} z9s?MOyF`yB=Su{q@c}XoeA<;S6{O|3Z{pay^~^KRxPw_(#7w@tcks%BS=txn!JLf! zl*xng;Kv#bo&lbK_N%YH+Le=X;|E}6KWx(SymaYO2l&aGuQ&kN`|rQsnY4ZCQ=f8x z-s;NUIja}a1IF2f2*+Y-z%Kh<6&)!G7GBydf{P1Et)^5Z+mT!WAAcrvua@ zH+DptKYzaaa$;ZftZrQ<&3~f#`Qc~seF&h>fhvPhqYnN$a!5mUrPP&`NLp5RNk~<#m;!^U+A4W=-W&4pf_YNZD^s#Jt&@3= zKQDc!oGU|f2g}9%FOoj_*GkVC{Zt&^MF$!^PCKiYH0qwqm6&;O&kHSN0cYL25KdI?`0Dt^dsHuP|;`yeg6V1{OG+6C$#p5dML4N#`sOkmM2 zlNV`_De)*XlN91HX~Ap*0M7)4_DGrSa1{7^{PD+~+&DbNT%Nu|?88r7fI4*FZ!QGT z@3$Ha%M(f@a=PvQjWQ<)&2Kj*V@&LBPYOvjJvgL@^erbPFNQyaq!Jr*!6Nr1{} z9Dl7~B%)JR_I0q)M+cxO4EHvG^L)IH!5;f(2I@1#F=)e&Y3@#@e5a~R00(5%*$!D4 z;4oWJcsdhgWU^txhwG8vL%uufyXM`ltF?3gsP|w(K%;?Zw48uoP8|f`{{HvBmzjDh z9%dJ`AHuLfM&k*%1+<}o2JitIvAZQMT32>`V1Y3v8fa0OnD8SW4zNf&ATM*&g)e)n z8)%|w1(4$apyUZJ08dO%&}d`74j^R$iv#e(2S;FIa)Fkd65)#$smVe|6 zOh!w?PoMeOV8-=CoS)7B0(5-;6QO%DX)JH9c7HPTPDNVyFp%Wmp9fF6K*?%cT!r~*2P z1CZq&(1&>le(=FFnriaHag;YE41jdNB40|ZO}Gf&AMykUbHxE+0z(6CcZ96T_2z{~_$5!Zk=UzY&h z{BUj6xr=ZX{s|9KISVT-WI2>TD1lQe0Xp|O9Y7E5E0m0yYKhkYHMXKsO)Pp!eO!ZV zKD0?z7Os$2HoPcv);%u;8y8Boet90yXN1fge3^V;$W?NFzsWLKGNp2p9;9+`mki3) zPt{jX(}8}NvlV40j<`4$B+A07JEi@WVOckgb>}*+Bi1`MNaBO%1g|sEKyo6g@$D9N6 z2DG!73+3hIIkO1vp$Q0N|7%Pb(EI}U@CSraF2JsVLijSrJ?$2{&;&e^j(Xa>d9%wC z8*bvDv4uWB84WqS!82NC1DZUO7r+$|j#iv9!4Kd*KR@5?a)BQc2m`X@fegrlym_Z+ zzi8QwU#|Qp59K9)<7o1xz?d&m`o^ zE3b6rM8giCW-`KrhcX)vOg7*HdErRMWX8T0;Aebue}$8nD-H zK1t7^oV$CPO&Y+r@@|yMbh$lwUGky4!7Q`+XO7mlsG3G4Lu>H;Lpu$lz@`VoI8x!| z{M+=hSe*B3z&ra@HlENBubhvFNiXs1HbomLGFUf&JvOjtCq>5K>hSh`-F(HRZh%_8 z5xxOOt!oV2UM zm0wgB@Lh6My%Mt&xhisyI-GLnZgFZAxt@-I(3yC%@{lAg4~cFFtTLIWZ0B7arkMNg zsk!CkT;1beRrAth!bjI40>&FfbAH&Pa1)LAB^3#0<1_+kR^O2L7#wt;Lgzm7cQb zo2(%tZDYB4rI;gM5mZAFgPgpBA0$ZU;-{4E7FerQaC9=Atm z1rY?%!X|1hPkc{fqQ@)@^*q)&+!~(KZWd*4-!V5rHhS;zAf;6y^X{XpPZ%%=SYPzK zAav(%?o>WXVB2hDzz{}hUI6Of%f2cUqY>p#=I$e@I9o6I9}S-*33_LFMX*w@pj14S z!2$(*0Tg+E1@poY-7P-SB}564J51ioVycNPGBp}&&h%pkHWSGpsM+W(+W<0&%`}^=2{rti^Sd&vXU=BG98`GcO5;T#qlheV*O69dsT-$(9r?6&? zZFpo-MBh7kf!Od%se7;knKZH0`O}R&3f%!A4~g1YLv!vG0_(-^VR9Y^spqe*L6+cE z>TPm`SA%fXwRhM8&758-{$-;P?*khgPlq2inLM8tj6FF>8+90C@8BNsCwh=G8|o=? zX|Z~|>=W!iy+hBi@EOD!)MrE^`7!0mpC!J*Rc#~a+OPixwd7dm)%0S?uUjo*-}NKr z%JI94`1y2U(tJ1by3D|5Z-6P^9t5BgkL?@qyX79!yOL7mfu63_GS zOS8MyW}WZ@c4v8KrF3s1MXUS(b9T~61=XsMvy;0B!E=N!F@0rkT#1T@Hj6%|Uo`0( z1Nm^utiwl;QM*AnWmvdBt1E|SIUVbKI((k&Ly3l@{ct)rjG{W!U1g)B?$nCd`ap^t zJ0>kw%&HH>!p#?6QO)#9tg>v+n%?S8;iRRS&=L zS5aryH=dY<|%E*j~Sg03-z=7RiCrZdg=d;j`4zeVNN%$D>X+4&KB z;y`}gJ>j-qSt%OnKwfz%m;{@0iK?ko{La-GnN3X*;x6x*@brX5_@dytWDi_(e&PK-V)+tAP{ z_ca$Q9kaUfiFY*pAsD8DN&C{()d-6rl-{fS+Tc2(sJV!|3z7d5-=YM9PZb2&ky^({ z;bo5`SjpcBrde5|M@vHKIAWyFPI1I)e9*oo{`^I>m6o?q?kDu{*e{1NU!PP_2SWX7 zJdp}|5F1Hl@QpWl+3Iy%HGm->ija#84rfLg{DMdqTq2SWr~&z_C452Ig4 z6}lostMfxW_?WKgsi94HFkwUXl!!C7*-tR%a1~6N|4z6DKr~F;>WBXU>`l!9{(lu5 zm1%o)vK^y*G}cVr`-0kYLjo}v%pSIDujL?Z3#xa z6!2CdIU4*UT}@mv`~e$s#bP$OVgYV< z5wVufUC=U?t{>K^@i*LT`@gTTmsI?v2+_QoMZKc+&%sU2DzR~0nl3^F2f4Kl@CTo)MH&^a4JNtaa4lFclTK@U0QoZ8(Hv|_(Er-@G^8jB^0Apk2zY5Pxw zza&v)8B~mU+oZ(CNH(xMMon#UPy+I^l&7@b@UoSQSsQgzVL!pPr8m%E?5Fw#qeM2Y z0e)nRu^s&N2W`qWM-6A%j3Z5Q;e}ztEc~5t0xplCXmoiX{E=eIemskSN)J%GgB~(Q zOrRHmAXz;0^~O}u?Y}nP?*7RLZ7ZI)Z&wTSmD4#3 z%71zuI!ByH+@-K@a~-SvRz9xZ?w!*_mkIwPlB#m24@K?q;P~A zJW`}P^(A*)==*KYpPSzlV*R89j5CKYfQIL!GQVEdmMHe17xRb<-70bjSGanzmoN|sHLa4`S_-93x&PA*~`}!5kWJ{cMdZ-Ox zg~$o2Iyc_LTy>}lEt&T)Zp}+EOK8bZTE1!(zNom??=D+$k1jE@YHuGUYwC>kVyr-cq;Ul^*j(lR$TRDU01< zpm!338?n=tVBVxdS!koxcZ!ZPAF&rxTV6{(Y#}~bV$c>;#2JNWCnK4@A8wS*pfuKu z!0SYXnEE5b<1!i`q7Ip-!wB4p;fp!ye#gB!u+Zr`P{IIk!@2Fdpq}pkDwA~T|zbi+sl3RRPAF6BNnJV(*<{}TS zu9LQn-<#jhG=*P6$}}x>fg3+{S0eo62>`%hV{UACDh z3oWP0pqO0eP@DKU;}M$doXd8Gpv9we=SqCsB(GO_c+^?ey`o{($#V{?An$qnafl(kA;L5ds%A zux5ROy~SaI&Yv!J`Fg83L-?UGQkFebp`8*u^&~RZXAN+Fprh>|`zMu{6|$2LkA|es zd#)AHp)xg59FC)D#4`U(2C$(}afFO{cQYtyNjgay41snS1dU9T8q{j@cyKTevb3kSMlO41$8QYE^O(q3Dj@Ql8YL8HP5UIOT^o9<%1!^zm4b?T z&|WfFvtDB{aO?2sfZMv+x|RU<7oZFyFFNT;22jsvl`@Kf%mCUz6g{%s6GabJVk9u! zLsrzg0pb)E5`j2+eR{QBfj|K@;7r33<3dpjfGLqI|Yja^{ov6U_0Jr&>oIX+#oBoKhv;~t|({jhuUummSTRnAosqsFxTWb zZZd&iHbb5yC0gsb;DJ5{Y7@U;B5)T)^W7p$Y)~KrR?;;gtFzpc%L&>`Ot8j~5xps& zHh|*f={-?q9SsSil_&K`@CgTBp z@?e#g2lV@b40KBj=kA{xxRgWzlw}u*odbk73z;tL0ClL85}E}MpH!K32^Z2e6Ks&Q zDZp4dte=JII%>2~kEfYJ~Ng#uv#VB2DPfi>iWprM?hIn-sdr1sz)Qx9~!4>Z> zi4gP*OtQ10N?Q4$*$HBvf6EK7Qu@=?tdJ#1!WrDi?kB7vdx9vT1y(&O&o5m{o@{5b z`{oh;!m;<~18nPl8*x`kXn>Bj3T%hm%wH=hyJz=df+uEFMu})>GQpEZId5-m{*o%m z)TIRGGrZrMc@@PW*GQx3!NeHEJ-OY~b8`8#Tlq~xA9mLB(H8TY=5t9Ysrj$}qznvK z5!?fovy&kDAcl>QT`l$rWv4sd$CQ3;#iE19E@S#H)KJJPq@j->i-qr8xJ9nG95!>) z6+#s)SN6sjwoN0NQO;Zd0m}H-_x5kSC7`W0-ugjD;eg^VkuWEZk*9AF~FDvVlTW<9Sz*|Gpa3RH zs0R&COelUDSNhP&U`X@SEN7DLyUsZ%XL`ZoFdIry6ZGjx-p5!M)r7Sui8I|_cYm|A zVi_-0xV@yKbaod5f>5I}>YH0}%clfxC@Y07`tqOU@7Wtr( z=k=~ewsn7rbUMXL^^uj%ZhWA*a_++y{|u}C$u9fe9KKjBX4Gp!M&HLWrYkLA6M?_s zQa3m8QpX}t8o(_}vODWvTd{UpqGfv2@&j!Ko%*0VfRZS}2K^Lwy*;w2mU&cu&o?Q+ z;_o15pO2fL8$xbW4_1UH-HumfS>|irw9;#4T67wY^(pH%jpBb?utdy@rE%6@jH^_6 zAQN-*1Bqjud3mGyO$=pa{=&{ZXDyPLCX%T8PEPqH^r)s&rcjRDt+*IrlN2lE!T326IgBsm3{@!9~BNcSB{!FNx>?BgBcY%4Syah2{c<}&UnZJ5R0 z65QIdEKG;5D4tV1bJ*BbHue>FDx+|yEe&-_OK!>d1(cu?)&XI=I@lAQ=ClJ-c)!dF zHXzYn=7Ab)?NXz;t9OASF(dVcz&utJ=$&DcW1%U~0(Z4aTT(6N{)AE6C9 z4UOqr3L@Y|q40QsVI|vLfxqk1o_E-g*YgYfe_Wu`G$QdWUy@~9`eL~zj9I=M(GMMq z;p~z95Z1-Mg0|6Py305mx=%hKF6Dd>H%F{gMgh?UPbMNyzD8M!OR^~+ zttQU89TPL#)fYcGHRx2v7*{tIJ)O>1Sq2jtlkEZul{3SC^~7$x5QshktxQ6?M% zcx!AKNXj}EH|>!RVzpWk(Pt(%Ht0_7Fw=i~?|Q}1ag6juN9?4>eqcd*fPDXuTS%-d zA79q623Z*uOmBr#Sj^5m> z-4iC1)w&HU0?WcnXA|YasZA3E_U2k=Dz14?Q8d@)n<}g=WL#M*hdPG%beZtPFuhKP z$cgl*pgA}H3j$&d!L;Iv;Y;jwc>Ve6)el=QgJ1i;+qha#z)*Ms9PghGOz1G$Wg>dol*hlf2#MEY%Nm33;w2iww#HzD3+-XcG*=FMzhA7$3-;H2*jAnnJ=r%WhdvXi z&)--|5KneCQK_`v8n|fNQ}mj_=cY~ga_1wR8cT^`jNss3C0G%#PT z&IRUkB0fLSO7VNEsk12gJ7sswaR%sQC&sOlsINPHKu1fiO+LPGu45u*CpK%2SNJ`h z&Cs44lHWQ(>oR@cw73CLu8Nr_OY`@ovoTpl*)3P@PG=SF@?$tT5DcaLzDtu{Ys>vqA0hLNUA+I(2b0HV)f#_o~mc# zjCR;=ZTseI<1e^!I$UqiNJB*G^4g~&wYN5hA(YY?;-x{Ojk=LcMk|oA>U1vop6?H8 zJNl2&52sdxwmk3!eOV87o39RG>o%dMhm%Xb_$GuIXO0ISMOXoT8ik`=5}Vp`BwnJ4&_} zzHsK_KJBC_D4O&xGGaT-qy79WM1hWm8Uh-&9DR z!Nd@Lf6^P*H+G3qIjdJZ`k0{Uk`$VihPiAvwtT0d?k-|De7M~YDrV1C;~Dv~&Aleb ztS>0jeX>ju5}X3v=4^Q9lo{5J(Dp)Dgk}}b{U#f0ZV-+igy5g+&k&_H>JYN62=lth z!3QBfijR(94*{)w8>@EzPI7RK{zPPss&lN07KxtBer+j-$W16>_vJL)~4k@nwrz%d4N4`oe8I1=f34_o%6rZ)quSA{g7`>pK^{w9cd|!YqfCnWT%2Y z7mID@jX1Au-v~CTYz>D+0qfx*GSqh0cYfzrfr@E??bvd}nnRA>%+b#TRt#ddxFRs;Opcj*FEFP}35qb>k6LrGK=)U`7)UD(iD;NB(e@BW`|syK{Sc z&dXaN)Va;=77XV%@Ps^Cta|qA=hn{q@QO!_a)Mf7j!f1^?-(23ggT$7uO6(8{H9RI z2N2Dt(b_Yd>#b&*7%thkKN10m6IjpxXED{!q};{1)dpWcH&2b|wo2k z;NRzG(aZ{<$vFai7(4o@)nrA~w&kDfj!}?Gmme&1!SQt1GC55n%A-sF^R8K-wf+C5 ztMVe+M_4tT;`3lvxBQX!yw&(mE-g(OpVL)c=Hl41U-hk-KZXdEP|SHGktEB{|x%S_mLzH5T!UaRQW$M l|5x3TjB2R1{~x~GSFFChkWjd#&;_7A=GSeEtFF1m{~t884CDX+ literal 0 HcmV?d00001 diff --git a/docs/source/_static/images/statespace_structural_harvey_jaeger.png b/docs/source/_static/images/statespace_structural_harvey_jaeger.png new file mode 100644 index 0000000000000000000000000000000000000000..3732b5880ecea88ddfe46b827ceac45b45492062 GIT binary patch literal 199300 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